diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..7b8ae826 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "deps/glslang"] + path = deps/glslang + url = https://github.com/KhronosGroup/glslang.git diff --git a/deps/glslang b/deps/glslang new file mode 160000 index 00000000..dcf1aaa6 --- /dev/null +++ b/deps/glslang @@ -0,0 +1 @@ +Subproject commit dcf1aaa6fd7dc2081f17aa0a4f1590a76473d961 diff --git a/deps/glslang/.appveyor.yml b/deps/glslang/.appveyor.yml deleted file mode 100644 index bf8c5726..00000000 --- a/deps/glslang/.appveyor.yml +++ /dev/null @@ -1,108 +0,0 @@ -# Windows Build Configuration for AppVeyor -# http://www.appveyor.com/docs/appveyor-yml - -# build version format -version: "{build}" - -os: Visual Studio 2015 - -platform: - - x64 - -configuration: - - Debug - - Release - -branches: - only: - - master - -# changes to these files don't need to trigger testing -skip_commits: - files: - - README.md - - README-spirv-remap.txt - - LICENSE.txt - - CODE_OF_CONDUCT.md - - BUILD.* - - WORKSPACE - - kokoro/* - - make-revision - - Android.mk - - _config.yml - -# 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: - - C:/Python27/python.exe update_glslang_sources.py - - set PATH=C:\ninja;C:\Python36;%PATH% - - 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 -G "Visual Studio 14 2015 Win64" -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 - bin\spirv-remap.exe - include\glslang\* - lib\GenericCodeGen%SUFFIX%.lib - lib\glslang%SUFFIX%.lib - lib\glslang-default-resource-limits%SUFFIX%.lib - lib\HLSL%SUFFIX%.lib - lib\MachineIndependent%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 2015 diff --git a/deps/glslang/.clang-format b/deps/glslang/.clang-format deleted file mode 100644 index 8c73a52f..00000000 --- a/deps/glslang/.clang-format +++ /dev/null @@ -1,13 +0,0 @@ -Language: Cpp -IndentWidth: 4 -PointerAlignment: Left -BreakBeforeBraces: Custom -BraceWrapping: { AfterFunction: true, AfterControlStatement: false } -IndentCaseLabels: false -ReflowComments: false -ColumnLimit: 120 -AccessModifierOffset: -4 -AlignTrailingComments: true -AllowShortBlocksOnASingleLine: false -AllowShortIfStatementsOnASingleLine: false -AllowShortLoopsOnASingleLine: false diff --git a/deps/glslang/.gitattributes b/deps/glslang/.gitattributes deleted file mode 100644 index 2929e835..00000000 --- a/deps/glslang/.gitattributes +++ /dev/null @@ -1,17 +0,0 @@ -# test files have a mix of lf/crlf, and that's a good thing, for testing, don't mess with it -# bash scripts need lines ending with lf, and that's correct for Windows too, e.g., under Cygwin -# (scripts often don't have a suffix) -* -text -*.sh text eof=lf - -# txt files should be native and normalized -*.txt text - -# source code can be native and normalized, but simpler if lf everywhere; will try that way -*.h text eol=lf -*.c text eol=lf -*.cpp text eol=lf -*.y text eol=lf -*.out text eol=lf -*.conf text eol=lf -*.err text eol=lf diff --git a/deps/glslang/.github/workflows/continuous_deployment.yml b/deps/glslang/.github/workflows/continuous_deployment.yml deleted file mode 100644 index 86f439db..00000000 --- a/deps/glslang/.github/workflows/continuous_deployment.yml +++ /dev/null @@ -1,168 +0,0 @@ -# NOTE: This workflow was ported from Travis. -# Travis was using Ubuntu 14.04. Ubuntu 14.04 is not supportted by GitHub workflows. Ubuntu 20.04 is recommended. -# Travis was using Clang 3.6. The earliest version support by Ubuntu 20.04 is Clang 6.0. -# Travis was caching the clang package. APT package caching is not natively supported by GitHub actions/cache. -# Travis was using Mac OS X 10.13.6 / Xcode 9.4.1 / LLVM 9.1.0 - -# NOTE: The following documentation may be useful to maintainers of this workflow. -# Github actions: https://docs.github.com/en/actions -# Github github-script action: https://github.com/actions/github-script -# GitHub REST API: https://docs.github.com/en/rest -# Octokit front-end to the GitHub REST API: https://octokit.github.io/rest.js/v18 -# Octokit endpoint methods: https://github.com/octokit/plugin-rest-endpoint-methods.js/tree/master/docs/repos - -# TODO: Use actions/upload-artifact and actions/download-artifact to simplify deployment. -# TODO: Use composite actions to refactor redundant code. - -name: Continuous Deployment - -on: - workflow_dispatch: - push: - branches: - - master - -jobs: - linux: - runs-on: ${{matrix.os.genus}} - strategy: - fail-fast: false - matrix: - os: [{genus: ubuntu-20.04, family: linux}] - compiler: [{cc: clang, cxx: clang++}, {cc: gcc, cxx: g++}] - cmake_build_type: [Debug, Release] - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 - with: - python-version: '3.7' - - name: Install Ubuntu Package Dependencies - run: | - sudo apt-get -qq update - sudo apt-get install -y clang-6.0 - - name: Install GoogleTest - run: | - # check out pre-breakage version of googletest; can be deleted when - # issue 3128 is fixed - # git clone --depth=1 https://github.com/google/googletest.git External/googletest - mkdir -p External/googletest - cd External/googletest - git init - git remote add origin https://github.com/google/googletest.git - git fetch --depth 1 origin 0c400f67fcf305869c5fb113dd296eca266c9725 - git reset --hard FETCH_HEAD - cd ../.. - - name: Update Glslang Sources - run: | - ./update_glslang_sources.py - - name: Build - env: - CC: ${{matrix.compiler.cc}} - CXX: ${{matrix.compiler.cxx}} - run: | - mkdir build && cd build - cmake -DCMAKE_BUILD_TYPE=${{matrix.cmake_build_type}} -DCMAKE_INSTALL_PREFIX=`pwd`/install .. - make -j4 install - - name: Test - run: | - cd build - ctest --output-on-failure && - cd ../Test && ./runtests - - name: Zip - if: ${{ matrix.compiler.cc == 'clang' }} - env: - ARCHIVE: glslang-master-${{matrix.os.family}}-${{matrix.cmake_build_type}}.zip - run: | - cd build/install - zip ${ARCHIVE} \ - bin/glslangValidator \ - include/glslang/* \ - lib/libGenericCodeGen${SUFFIX}.a \ - lib/libglslang${SUFFIX}.a \ - lib/libglslang-default-resource-limits${SUFFIX}.a \ - lib/libHLSL${SUFFIX}.a \ - lib/libMachineIndependent${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 - - name: Deploy - if: ${{ matrix.compiler.cc == 'clang' }} - env: - ARCHIVE: glslang-master-${{matrix.os.family}}-${{matrix.cmake_build_type}}.zip - uses: actions/github-script@v5 - with: - script: | - const script = require('.github/workflows/deploy.js') - await script({github, context, core}) - - macos: - runs-on: ${{matrix.os.genus}} - strategy: - fail-fast: false - matrix: - os: [{genus: macos-10.15, family: osx}] - compiler: [{cc: clang, cxx: clang++}] - cmake_build_type: [Debug, Release] - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 - with: - python-version: '3.7' - - name: Install GoogleTest - run: | - # check out pre-breakage version of googletest; can be deleted when - # issue 3128 is fixed - # git clone --depth=1 https://github.com/google/googletest.git External/googletest - mkdir -p External/googletest - cd External/googletest - git init - git remote add origin https://github.com/google/googletest.git - git fetch --depth 1 origin 0c400f67fcf305869c5fb113dd296eca266c9725 - git reset --hard FETCH_HEAD - cd ../.. - - name: Update Glslang Sources - run: | - ./update_glslang_sources.py - - name: Build - env: - CC: ${{matrix.compiler.cc}} - CXX: ${{matrix.compiler.cxx}} - run: | - mkdir build && cd build - cmake -DCMAKE_BUILD_TYPE=${{matrix.cmake_build_type}} -DCMAKE_INSTALL_PREFIX=`pwd`/install .. - make -j4 install - - name: Test - run: | - cd build - ctest --output-on-failure && - cd ../Test && ./runtests - - name: Zip - env: - ARCHIVE: glslang-master-${{matrix.os.family}}-${{matrix.cmake_build_type}}.zip - run: | - cd build/install - zip ${ARCHIVE} \ - bin/glslangValidator \ - include/glslang/* \ - lib/libGenericCodeGen${SUFFIX}.a \ - lib/libglslang${SUFFIX}.a \ - lib/libglslang-default-resource-limits${SUFFIX}.a \ - lib/libHLSL${SUFFIX}.a \ - lib/libMachineIndependent${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 - - name: Deploy - env: - ARCHIVE: glslang-master-${{matrix.os.family}}-${{matrix.cmake_build_type}}.zip - uses: actions/github-script@v5 - with: - script: | - const script = require('.github/workflows/deploy.js') - await script({github, context, core}) diff --git a/deps/glslang/.github/workflows/continuous_integration.yml b/deps/glslang/.github/workflows/continuous_integration.yml deleted file mode 100644 index feec0dc2..00000000 --- a/deps/glslang/.github/workflows/continuous_integration.yml +++ /dev/null @@ -1,157 +0,0 @@ -# NOTE: This workflow was ported from Travis. -# Travis was using Ubuntu 14.04. Ubuntu 14.04 is not supportted by GitHub workflows. Ubuntu 20.04 is recommended. -# Travis was using Clang 3.6. The earliest version support by Ubuntu 20.04 is Clang 6.0. -# Travis was caching the clang package. APT package caching is not natively supported by GitHub actions/cache. -# Travis was using Mac OS X 10.13.6 / Xcode 9.4.1 / LLVM 9.1.0 -# -name: Continuous Integration - -on: - workflow_dispatch: - pull_request: - branches: - - master - -jobs: - linux: - runs-on: ${{matrix.os}} - strategy: - fail-fast: false - matrix: - os: [ubuntu-20.04] - compiler: [{cc: clang, cxx: clang++}, {cc: gcc, cxx: g++}] - cmake_build_type: [Debug, Release] - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 - with: - python-version: '3.7' - - name: Install Ubuntu Package Dependencies - run: | - sudo apt-get -qq update - sudo apt-get install -y clang-6.0 - - name: Install GoogleTest - run: | - # check out pre-breakage version of googletest; can be deleted when - # issue 3128 is fixed - # git clone --depth=1 https://github.com/google/googletest.git External/googletest - mkdir -p External/googletest - cd External/googletest - git init - git remote add origin https://github.com/google/googletest.git - git fetch --depth 1 origin 0c400f67fcf305869c5fb113dd296eca266c9725 - git reset --hard FETCH_HEAD - cd ../.. - - name: Update Glslang Sources - run: | - ./update_glslang_sources.py - - name: Build - env: - CC: ${{matrix.compiler.cc}} - CXX: ${{matrix.compiler.cxx}} - run: | - mkdir build && cd build - cmake -DCMAKE_BUILD_TYPE=${{matrix.cmake_build_type}} -DCMAKE_INSTALL_PREFIX=`pwd`/install .. - make -j4 install - - name: Test - run: | - cd build - ctest --output-on-failure && - cd ../Test && ./runtests - - macos: - runs-on: ${{matrix.os}} - strategy: - fail-fast: false - matrix: - os: [macos-10.15] - compiler: [{cc: clang, cxx: clang++}] - cmake_build_type: [Debug, Release] - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 - with: - python-version: '3.7' - - name: Install GoogleTest - run: | - # check out pre-breakage version of googletest; can be deleted when - # issue 3128 is fixed - # git clone --depth=1 https://github.com/google/googletest.git External/googletest - mkdir -p External/googletest - cd External/googletest - git init - git remote add origin https://github.com/google/googletest.git - git fetch --depth 1 origin 0c400f67fcf305869c5fb113dd296eca266c9725 - git reset --hard FETCH_HEAD - cd ../.. - - name: Update Glslang Sources - run: | - ./update_glslang_sources.py - - name: Build - env: - CC: ${{matrix.compiler.cc}} - CXX: ${{matrix.compiler.cxx}} - run: | - mkdir build && cd build - cmake -DCMAKE_BUILD_TYPE=${{matrix.cmake_build_type}} -DCMAKE_INSTALL_PREFIX=`pwd`/install .. - make -j4 install - - name: Test - run: | - cd build - ctest --output-on-failure && - cd ../Test && ./runtests - - android: - runs-on: ${{matrix.os}} - strategy: - fail-fast: false - matrix: - os: [ubuntu-20.04] - compiler: [{cc: clang, cxx: clang++}] - cmake_build_type: [Release] - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 - with: - python-version: '3.7' - - name: Install Ubuntu Package Dependencies - if: ${{matrix.os == 'ubuntu-20.04'}} - run: | - sudo apt-get -qq update - sudo apt-get install -y clang-6.0 - - name: Install Android NDK - run: | - export ANDROID_NDK=$HOME/android-ndk - git init $ANDROID_NDK - pushd $ANDROID_NDK - git remote add dneto0 https://github.com/dneto0/android-ndk.git - git fetch --depth=1 dneto0 r17b-strip - git checkout FETCH_HEAD - popd - - name: Install GoogleTest - run: | - # check out pre-breakage version of googletest; can be deleted when - # issue 3128 is fixed - # git clone --depth=1 https://github.com/google/googletest.git External/googletest - mkdir -p External/googletest - cd External/googletest - git init - git remote add origin https://github.com/google/googletest.git - git fetch --depth 1 origin 0c400f67fcf305869c5fb113dd296eca266c9725 - git reset --hard FETCH_HEAD - cd ../.. - - name: Update Glslang Sources - run: | - ./update_glslang_sources.py - - name: Build - env: - CC: ${{matrix.compiler.cc}} - CXX: ${{matrix.compiler.cxx}} - run: | - export ANDROID_NDK=$HOME/android-ndk - export TOOLCHAIN_PATH=$ANDROID_NDK/build/cmake/android.toolchain.cmake - echo $ANDROID_NDK - echo $TOOLCHAIN_PATH - mkdir build && cd build - cmake -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_PATH} -DANDROID_NATIVE_API_LEVEL=android-14 -DCMAKE_BUILD_TYPE=${{matrix.cmake_build_type}} -DANDROID_ABI="armeabi-v7a with NEON" -DBUILD_TESTING=OFF .. - make -j4 diff --git a/deps/glslang/.github/workflows/deploy.js b/deps/glslang/.github/workflows/deploy.js deleted file mode 100644 index 82ebb1bd..00000000 --- a/deps/glslang/.github/workflows/deploy.js +++ /dev/null @@ -1,73 +0,0 @@ -module.exports = async ({github, context, core}) => { - try { - await github.rest.git.updateRef({ - owner: context.repo.owner, - repo: context.repo.repo, - ref: 'tags/master-tot', - sha: context.sha - }) - } catch (error) { - core.setFailed(`upload master-tot tag; ${error.name}; ${error.message}`) - } - - let release - try { - release = await github.rest.repos.getReleaseByTag({ - owner: context.repo.owner, - repo: context.repo.repo, - tag: 'master-tot' - }) - } catch (error) { - core.setFailed(`get the master release; ${error.name}; ${error.message}`) - } - - try { - await github.rest.repos.updateRelease({ - owner: context.repo.owner, - repo: context.repo.repo, - release_id: release.data.id - }) - } catch (error) { - core.setFailed(`update the master release; ${error.name}; ${error.message}`) - } - - let release_assets - try { - release_assets = await github.rest.repos.listReleaseAssets({ - owner: context.repo.owner, - repo: context.repo.repo, - release_id: release.data.id - }) - } catch (error) { - core.setFailed(`list release assets; ${error.name}; ${error.message}`) - } - - const { ARCHIVE } = process.env - for (const release_asset of release_assets.data) { - if (release_asset.name === `${ ARCHIVE }`) { - try { - await github.rest.repos.deleteReleaseAsset({ - owner: context.repo.owner, - repo: context.repo.repo, - asset_id: release_asset.id - }) - } catch (error) { - core.setFailed(`delete ${ ARCHIVE }; ${error.name}; ${error.message}`) - } - } - } - - try { - const asset_path = `./build/install/${ ARCHIVE }` - const fs = require("fs") - await github.rest.repos.uploadReleaseAsset({ - owner: context.repo.owner, - repo: context.repo.repo, - release_id: release.data.id, - name: `${ ARCHIVE }`, - data: fs.readFileSync(asset_path) - }) - } catch (error) { - core.setFailed(`upload ${ ARCHIVE }; ${error.name}; ${error.message}`) - } -} diff --git a/deps/glslang/.gitignore b/deps/glslang/.gitignore deleted file mode 100644 index ab25cec2..00000000 --- a/deps/glslang/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -*.o -*.a -*.so -*.exe -.vscode/ -tags -TAGS -bazel-* -build/ -Test/localResults/ -External/googletest -External/spirv-tools -out/ - -# GN generated files -.cipd/ -*.gclient_entries -third_party/ -buildtools/ -tools/ diff --git a/deps/glslang/.gn b/deps/glslang/.gn deleted file mode 100644 index 5befb801..00000000 --- a/deps/glslang/.gn +++ /dev/null @@ -1,39 +0,0 @@ -# Copyright (C) 2020 The Khronos Group 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 The Khronos Group 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. - -buildconfig = "//build/config/BUILDCONFIG.gn" - -default_args = { - clang_use_chrome_plugins = false - use_custom_libcxx = false -} diff --git a/deps/glslang/Android.mk b/deps/glslang/Android.mk deleted file mode 100644 index c9b221f1..00000000 --- a/deps/glslang/Android.mk +++ /dev/null @@ -1,166 +0,0 @@ -# Copyright (C) 2020 The Khronos Group 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 The Khronos Group 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. - -LOCAL_PATH := $(call my-dir) - -# Generate glslang/build_info.h -GLSLANG_GENERATED_INCLUDEDIR:=$(TARGET_OUT)/include -GLSLANG_BUILD_INFO_H:=$(GLSLANG_GENERATED_INCLUDEDIR)/glslang/build_info.h - -define gen_glslang_build_info_h -$(call generate-file-dir,$(GLSLANG_GENERATED_INCLUDEDIR)/dummy_filename) -$(GLSLANG_BUILD_INFO_H): \ - $(LOCAL_PATH)/build_info.py \ - $(LOCAL_PATH)/build_info.h.tmpl \ - $(LOCAL_PATH)/CHANGES.md - @$(HOST_PYTHON) $(LOCAL_PATH)/build_info.py \ - $(LOCAL_PATH) \ - -i $(LOCAL_PATH)/build_info.h.tmpl \ - -o $(GLSLANG_BUILD_INFO_H) - @echo "[$(TARGET_ARCH_ABI)] Generate : $(GLSLANG_BUILD_INFO_H) <= CHANGES.md" -endef -$(eval $(call gen_glslang_build_info_h)) - -GLSLANG_OS_FLAGS := -DGLSLANG_OSINCLUDE_UNIX -# AMD and NV extensions are turned on by default in upstream Glslang. -GLSLANG_DEFINES:= -DAMD_EXTENSIONS -DNV_EXTENSIONS -DENABLE_HLSL $(GLSLANG_OS_FLAGS) - -include $(CLEAR_VARS) -LOCAL_MODULE:=OSDependent -LOCAL_CXXFLAGS:=-std=c++11 -fno-exceptions -fno-rtti $(GLSLANG_DEFINES) -LOCAL_EXPORT_C_INCLUDES:=$(LOCAL_PATH) -LOCAL_SRC_FILES:=glslang/OSDependent/Unix/ossource.cpp -LOCAL_C_INCLUDES:=$(LOCAL_PATH) $(LOCAL_PATH)/glslang/OSDependent/Unix/ -LOCAL_EXPORT_C_INCLUDES:=$(LOCAL_PATH)/glslang/OSDependent/Unix/ -include $(BUILD_STATIC_LIBRARY) - -include $(CLEAR_VARS) -LOCAL_MODULE:=OGLCompiler -LOCAL_CXXFLAGS:=-std=c++11 -fno-exceptions -fno-rtti $(GLSLANG_DEFINES) -LOCAL_EXPORT_C_INCLUDES:=$(LOCAL_PATH) -LOCAL_SRC_FILES:=OGLCompilersDLL/InitializeDll.cpp -LOCAL_C_INCLUDES:=$(LOCAL_PATH)/OGLCompiler -LOCAL_STATIC_LIBRARIES:=OSDependent -include $(BUILD_STATIC_LIBRARY) - -# Build the stubbed HLSL library. -# The HLSL source is now directly referenced by the glslang static library -# instead. -include $(CLEAR_VARS) -LOCAL_MODULE:=HLSL -LOCAL_CXXFLAGS:=-std=c++11 -fno-exceptions -fno-rtti $(GLSLANG_DEFINES) -LOCAL_SRC_FILES:= \ - hlsl/stub.cpp -LOCAL_C_INCLUDES:=$(LOCAL_PATH) \ - $(LOCAL_PATH)/glslang/HLSL -include $(BUILD_STATIC_LIBRARY) - -include $(CLEAR_VARS) -GLSLANG_OUT_PATH=$(if $(call host-path-is-absolute,$(TARGET_OUT)),$(TARGET_OUT),$(abspath $(TARGET_OUT))) - -# ShaderLang.cpp depends on the generated build_info.h -$(LOCAL_PATH)/glslang/MachineIndependent/ShaderLang.cpp: \ - $(GLSLANG_BUILD_INFO_H) - -LOCAL_MODULE:=glslang -LOCAL_CXXFLAGS:=-std=c++11 -fno-exceptions -fno-rtti $(GLSLANG_DEFINES) -LOCAL_EXPORT_C_INCLUDES:=$(LOCAL_PATH) -LOCAL_SRC_FILES:= \ - glslang/GenericCodeGen/CodeGen.cpp \ - glslang/GenericCodeGen/Link.cpp \ - glslang/HLSL/hlslAttributes.cpp \ - glslang/HLSL/hlslGrammar.cpp \ - glslang/HLSL/hlslOpMap.cpp \ - glslang/HLSL/hlslParseables.cpp \ - glslang/HLSL/hlslParseHelper.cpp \ - glslang/HLSL/hlslScanContext.cpp \ - glslang/HLSL/hlslTokenStream.cpp \ - glslang/MachineIndependent/attribute.cpp \ - glslang/MachineIndependent/Constant.cpp \ - glslang/MachineIndependent/glslang_tab.cpp \ - glslang/MachineIndependent/InfoSink.cpp \ - glslang/MachineIndependent/Initialize.cpp \ - glslang/MachineIndependent/Intermediate.cpp \ - glslang/MachineIndependent/intermOut.cpp \ - glslang/MachineIndependent/IntermTraverse.cpp \ - glslang/MachineIndependent/iomapper.cpp \ - glslang/MachineIndependent/limits.cpp \ - glslang/MachineIndependent/linkValidate.cpp \ - glslang/MachineIndependent/parseConst.cpp \ - glslang/MachineIndependent/ParseContextBase.cpp \ - glslang/MachineIndependent/ParseHelper.cpp \ - glslang/MachineIndependent/PoolAlloc.cpp \ - glslang/MachineIndependent/propagateNoContraction.cpp \ - glslang/MachineIndependent/reflection.cpp \ - glslang/MachineIndependent/RemoveTree.cpp \ - glslang/MachineIndependent/Scan.cpp \ - glslang/MachineIndependent/ShaderLang.cpp \ - glslang/MachineIndependent/SpirvIntrinsics.cpp \ - glslang/MachineIndependent/SymbolTable.cpp \ - glslang/MachineIndependent/Versions.cpp \ - glslang/MachineIndependent/preprocessor/PpAtom.cpp \ - glslang/MachineIndependent/preprocessor/PpContext.cpp \ - glslang/MachineIndependent/preprocessor/Pp.cpp \ - glslang/MachineIndependent/preprocessor/PpScanner.cpp \ - glslang/MachineIndependent/preprocessor/PpTokens.cpp -LOCAL_C_INCLUDES:=$(LOCAL_PATH) \ - $(LOCAL_PATH)/glslang/MachineIndependent \ - $(GLSLANG_GENERATED_INCLUDEDIR) \ - $(GLSLANG_OUT_PATH) -LOCAL_STATIC_LIBRARIES:=OSDependent OGLCompiler HLSL -include $(BUILD_STATIC_LIBRARY) - -include $(CLEAR_VARS) - -# GlslangToSpv.cpp depends on the generated build_info.h -$(LOCAL_PATH)/SPIRV/GlslangToSpv.cpp: \ - $(GLSLANG_BUILD_INFO_H) - -LOCAL_MODULE:=SPIRV -LOCAL_CXXFLAGS:=-std=c++11 -fno-exceptions -fno-rtti -Werror $(GLSLANG_DEFINES) -LOCAL_SRC_FILES:= \ - SPIRV/GlslangToSpv.cpp \ - SPIRV/InReadableOrder.cpp \ - SPIRV/Logger.cpp \ - SPIRV/SPVRemapper.cpp \ - SPIRV/SpvBuilder.cpp \ - SPIRV/SpvPostProcess.cpp \ - SPIRV/SpvTools.cpp \ - SPIRV/disassemble.cpp \ - SPIRV/doc.cpp -LOCAL_C_INCLUDES:=$(LOCAL_PATH) \ - $(LOCAL_PATH)/glslang/SPIRV \ - $(GLSLANG_GENERATED_INCLUDEDIR) -LOCAL_EXPORT_C_INCLUDES:=$(LOCAL_PATH)/glslang/SPIRV -LOCAL_STATIC_LIBRARIES:=glslang -include $(BUILD_STATIC_LIBRARY) diff --git a/deps/glslang/BUILD.bazel b/deps/glslang/BUILD.bazel deleted file mode 100644 index 1115b7de..00000000 --- a/deps/glslang/BUILD.bazel +++ /dev/null @@ -1,309 +0,0 @@ -# Copyright (C) 2020 The Khronos Group 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 The Khronos Group 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. - -package( - default_visibility = ["//visibility:public"], -) - -# Description: -# -# Khronos reference front-end for GLSL and ESSL, and sample SPIR-V generator. - -licenses(["notice"]) - -exports_files(["LICENSE"]) - -# Build information generation script -py_binary( - name = "build_info", - srcs = ["build_info.py"], -) - -py_binary( - name = "gen_extension_headers", - srcs = ["gen_extension_headers.py"], -) - -genrule( - name = "gen_build_info_h", - srcs = ["CHANGES.md", "build_info.h.tmpl"], - outs = ["glslang/build_info.h"], - cmd_bash = "$(location build_info) $$(dirname $(location CHANGES.md)) -i $(location build_info.h.tmpl) -o $(location glslang/build_info.h)", - cmd_bat = "for %F in ($(location CHANGES.md)) do $(location build_info) %~dpF -i $(location build_info.h.tmpl) -o $(location glslang/build_info.h)", - tools = [":build_info"], -) - -genrule( - name = "gen_extension_headers_h", - srcs = ["glslang/ExtensionHeaders", "gen_extension_headers.py"], - outs = ["glslang/glsl_intrinsic_header.h"], - cmd_bash = "$(location gen_extension_headers) -i $(location glslang/ExtensionHeaders) -o $(location glslang/glsl_intrinsic_header.h)", - tools = [":gen_extension_headers"], -) - -COMMON_COPTS = select({ - "@bazel_tools//src/conditions:windows": [""], - "//conditions:default": [ - "-Wall", - "-Wuninitialized", - "-Wunused", - "-Wunused-local-typedefs", - "-Wunused-parameter", - "-Wunused-value", - "-Wunused-variable", - "-Wno-reorder", - "-std=c++11", - "-fvisibility=hidden", - "-fvisibility-inlines-hidden", - "-fno-exceptions", - "-fno-rtti", - ], -}) - -cc_library( - name = "glslang", - srcs = glob( - [ - "glslang/GenericCodeGen/*.cpp", - "glslang/HLSL/*.cpp", - "glslang/MachineIndependent/*.cpp", - "glslang/MachineIndependent/preprocessor/*.cpp", - ], - exclude = [ - "glslang/HLSL/pch.h", - "glslang/MachineIndependent/pch.h", - ], - ) + [ - "OGLCompilersDLL/InitializeDll.cpp", - ] + select({ - "@bazel_tools//src/conditions:windows": - ["glslang/OSDependent/Windows/ossource.cpp"], - "//conditions:default": - ["glslang/OSDependent/Unix/ossource.cpp"], - }), - hdrs = glob([ - "glslang/HLSL/*.h", - "glslang/Include/*.h", - "glslang/MachineIndependent/*.h", - "glslang/MachineIndependent/preprocessor/*.h", - ]) + [ - "OGLCompilersDLL/InitializeDll.h", - "StandAlone/DirStackFileIncluder.h", - "glslang/OSDependent/osinclude.h", - "glslang/Public/ShaderLang.h", - ":gen_build_info_h", - ], - copts = COMMON_COPTS, - defines = [ - "AMD_EXTENSIONS", - "ENABLE_HLSL=0", - "ENABLE_OPT=0", - "NV_EXTENSIONS", - ], - linkopts = select({ - "@bazel_tools//src/conditions:windows": [""], - "//conditions:default": ["-lm", "-lpthread"], - }), - linkstatic = 1, -) - -genrule( - name = "export_spirv_headers", - srcs = [ - "SPIRV/GLSL.ext.AMD.h", - "SPIRV/GLSL.ext.EXT.h", - "SPIRV/GLSL.ext.KHR.h", - "SPIRV/GLSL.ext.NV.h", - "SPIRV/GLSL.std.450.h", - "SPIRV/NonSemanticDebugPrintf.h", - "SPIRV/spirv.hpp", - ], - outs = [ - "include/SPIRV/GLSL.ext.AMD.h", - "include/SPIRV/GLSL.ext.EXT.h", - "include/SPIRV/GLSL.ext.KHR.h", - "include/SPIRV/GLSL.ext.NV.h", - "include/SPIRV/GLSL.std.450.h", - "include/SPIRV/NonSemanticDebugPrintf.h", - "include/SPIRV/spirv.hpp", - ], - cmd_bash = "mkdir -p $(@D)/include/SPIRV && cp $(SRCS) $(@D)/include/SPIRV/", - cmd_bat = "(if not exist $(@D)\\include\\SPIRV mkdir $(@D)\\include\\SPIRV) && (for %S in ($(SRCS)) do @xcopy /q %S $(@D)\\include\\SPIRV\\ >NUL)", -) - -cc_library( - name = "SPIRV_headers", - hdrs = [":export_spirv_headers"], - copts = COMMON_COPTS, - includes = [ - "include", - "include/SPIRV", - ], - linkstatic = 1, -) - -cc_library( - name = "SPIRV", - srcs = glob( - ["SPIRV/*.cpp"], - exclude = [ - "SPIRV/SpvTools.cpp", - ], - ), - hdrs = [ - "SPIRV/GlslangToSpv.h", - "SPIRV/Logger.h", - "SPIRV/SPVRemapper.h", - "SPIRV/SpvBuilder.h", - "SPIRV/SpvTools.h", - "SPIRV/bitutils.h", - "SPIRV/disassemble.h", - "SPIRV/doc.h", - "SPIRV/hex_float.h", - "SPIRV/spvIR.h", - ], - copts = COMMON_COPTS, - includes = ["SPIRV"], - linkopts = select({ - "@bazel_tools//src/conditions:windows": [""], - "//conditions:default": ["-lm"], - }), - linkstatic = 1, - deps = [ - ":SPIRV_headers", - ":glslang", - ], -) - -cc_library( - name = "glslang-default-resource-limits", - srcs = ["StandAlone/ResourceLimits.cpp"], - hdrs = ["StandAlone/ResourceLimits.h"], - copts = COMMON_COPTS, - linkstatic = 1, - deps = [":glslang"], -) - -cc_binary( - name = "glslangValidator", - srcs = [ - "StandAlone/StandAlone.cpp", - "StandAlone/Worklist.h", - ":glslang/glsl_intrinsic_header.h" - ], - copts = COMMON_COPTS, - deps = [ - ":SPIRV", - ":glslang", - ":glslang-default-resource-limits", - ], -) - -cc_binary( - name = "spirv-remap", - srcs = ["StandAlone/spirv-remap.cpp"], - copts = COMMON_COPTS, - deps = [ - ":SPIRV", - ":glslang", - ":glslang-default-resource-limits", - ], -) - -filegroup( - name = "test_files", - srcs = glob( - ["Test/**"], - exclude = [ - "Test/bump", - "Test/glslangValidator", - "Test/runtests", - ], - ), -) - -cc_library( - name = "glslang_test_lib", - testonly = 1, - srcs = [ - "gtests/HexFloat.cpp", - "gtests/Initializer.h", - "gtests/Settings.cpp", - "gtests/Settings.h", - "gtests/TestFixture.cpp", - "gtests/TestFixture.h", - "gtests/main.cpp", - ], - copts = COMMON_COPTS, - data = [":test_files"], - defines = select({ - # Unfortunately we can't use $(location) in cc_library at the moment. - # See https://github.com/bazelbuild/bazel/issues/1023 - # So we'll specify the path manually. - "@bazel_tools//src/conditions:windows": - ["GLSLANG_TEST_DIRECTORY='\"../../../../../Test\"'"], - "//conditions:default": - ["GLSLANG_TEST_DIRECTORY='\"Test\"'"], - }), - linkstatic = 1, - deps = [ - ":SPIRV", - ":glslang", - ":glslang-default-resource-limits", - "@com_google_googletest//:gtest", - ], -) - -GLSLANG_TESTS = glob( - ["gtests/*.FromFile.cpp"], - # Since we are not building the SPIRV-Tools dependency, the following tests - # cannot be performed. - exclude = [ - "gtests/Hlsl.FromFile.cpp", - "gtests/Spv.FromFile.cpp", - ], -) - -[cc_test( - name = test_file.replace("gtests/", "").replace(".FromFile.cpp", "") + "_test", - srcs = [test_file], - copts = COMMON_COPTS, - data = [ - ":test_files", - ], - deps = [ - ":SPIRV", - ":glslang", - ":glslang_test_lib", - ], -) for test_file in GLSLANG_TESTS] diff --git a/deps/glslang/BUILD.gn b/deps/glslang/BUILD.gn deleted file mode 100644 index 4dd0a553..00000000 --- a/deps/glslang/BUILD.gn +++ /dev/null @@ -1,353 +0,0 @@ -# Copyright (C) 2018 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. - -import("//build_overrides/glslang.gni") - -# Both Chromium and Fuchsia use by default a set of warning errors -# that is far too strict to compile this project. These are also -# typically appended after |cflags|, overriding target-specific -# definitions. To work around this, determine which configs to -# add and remove in order to succesfully build the project. -if (defined(is_fuchsia_tree) && is_fuchsia_tree) { - _configs_to_remove = [ "//build/config:default_warnings" ] - _configs_to_add = [] -} else { - _configs_to_remove = [ "//build/config/compiler:chromium_code" ] - _configs_to_add = [ "//build/config/compiler:no_chromium_code" ] -} - -action("glslang_build_info") { - script = "build_info.py" - - src_dir = "." - changes_file = "CHANGES.md" - template_file = "build_info.h.tmpl" - out_file = "${target_gen_dir}/include/glslang/build_info.h" - - inputs = [ - changes_file, - script, - template_file, - ] - outputs = [ out_file ] - args = [ - rebase_path(src_dir, root_build_dir), - "-i", - rebase_path(template_file, root_build_dir), - "-o", - rebase_path(out_file, root_build_dir), - ] -} - -action("glslang_extension_headers") { - script = "gen_extension_headers.py" - - out_file = "${target_gen_dir}/include/glslang/glsl_intrinsic_header.h" - - # Fuchsia GN build rules require all GN actions to be hermetic and they - # should correctly and fully state their inputs and outpus (see - # https://fuchsia.dev/fuchsia-src/development/build/hermetic_actions - # for details). All input files of the script should be added to the - # |sources| list. - sources = [ - "glslang/ExtensionHeaders/GL_EXT_shader_realtime_clock.glsl", - ] - - inputs = [ - script - ] - outputs = [ out_file ] - args = [ - "-i", - rebase_path("glslang/ExtensionHeaders", root_build_dir), - "-o", - rebase_path(out_file, root_build_dir), - ] -} - -spirv_tools_dir = glslang_spirv_tools_dir -if (!defined(glslang_angle)) { - glslang_angle = false -} - -config("glslang_public") { - include_dirs = [ "." ] - if (!is_win || is_clang) { - cflags = [ "-Wno-conversion" ] - } -} - -config("glslang_hlsl") { - defines = [ "ENABLE_HLSL=1" ] -} - -template("glslang_sources_common") { - source_set(target_name) { - public_configs = [ ":glslang_public" ] - - if (invoker.enable_hlsl) { - public_configs += [ ":glslang_hlsl" ] - } - - sources = [ - "OGLCompilersDLL/InitializeDll.cpp", - "OGLCompilersDLL/InitializeDll.h", - "SPIRV/GLSL.ext.AMD.h", - "SPIRV/GLSL.ext.EXT.h", - "SPIRV/GLSL.ext.KHR.h", - "SPIRV/GLSL.ext.NV.h", - "SPIRV/GLSL.std.450.h", - "SPIRV/GlslangToSpv.cpp", - "SPIRV/GlslangToSpv.h", - "SPIRV/InReadableOrder.cpp", - "SPIRV/Logger.cpp", - "SPIRV/Logger.h", - "SPIRV/NonSemanticDebugPrintf.h", - "SPIRV/SPVRemapper.cpp", - "SPIRV/SPVRemapper.h", - "SPIRV/SpvBuilder.cpp", - "SPIRV/SpvBuilder.h", - "SPIRV/SpvPostProcess.cpp", - "SPIRV/SpvTools.h", - "SPIRV/bitutils.h", - "SPIRV/disassemble.cpp", - "SPIRV/disassemble.h", - "SPIRV/doc.cpp", - "SPIRV/doc.h", - "SPIRV/hex_float.h", - "SPIRV/spirv.hpp", - "SPIRV/spvIR.h", - "glslang/GenericCodeGen/CodeGen.cpp", - "glslang/GenericCodeGen/Link.cpp", - "glslang/Include/BaseTypes.h", - "glslang/Include/Common.h", - "glslang/Include/ConstantUnion.h", - "glslang/Include/InfoSink.h", - "glslang/Include/InitializeGlobals.h", - "glslang/Include/PoolAlloc.h", - "glslang/Include/ResourceLimits.h", - "glslang/Include/ShHandle.h", - "glslang/Include/SpirvIntrinsics.h", - "glslang/Include/Types.h", - "glslang/Include/arrays.h", - "glslang/Include/intermediate.h", - "glslang/MachineIndependent/Constant.cpp", - "glslang/MachineIndependent/InfoSink.cpp", - "glslang/MachineIndependent/Initialize.cpp", - "glslang/MachineIndependent/Initialize.h", - "glslang/MachineIndependent/IntermTraverse.cpp", - "glslang/MachineIndependent/Intermediate.cpp", - "glslang/MachineIndependent/LiveTraverser.h", - "glslang/MachineIndependent/ParseContextBase.cpp", - "glslang/MachineIndependent/ParseHelper.cpp", - "glslang/MachineIndependent/ParseHelper.h", - "glslang/MachineIndependent/PoolAlloc.cpp", - "glslang/MachineIndependent/RemoveTree.cpp", - "glslang/MachineIndependent/RemoveTree.h", - "glslang/MachineIndependent/Scan.cpp", - "glslang/MachineIndependent/Scan.h", - "glslang/MachineIndependent/ScanContext.h", - "glslang/MachineIndependent/ShaderLang.cpp", - "glslang/MachineIndependent/SpirvIntrinsics.cpp", - "glslang/MachineIndependent/SymbolTable.cpp", - "glslang/MachineIndependent/SymbolTable.h", - "glslang/MachineIndependent/Versions.cpp", - "glslang/MachineIndependent/Versions.h", - "glslang/MachineIndependent/attribute.cpp", - "glslang/MachineIndependent/attribute.h", - "glslang/MachineIndependent/gl_types.h", - "glslang/MachineIndependent/glslang_tab.cpp", - "glslang/MachineIndependent/glslang_tab.cpp.h", - "glslang/MachineIndependent/intermOut.cpp", - "glslang/MachineIndependent/iomapper.cpp", - "glslang/MachineIndependent/iomapper.h", - "glslang/MachineIndependent/limits.cpp", - "glslang/MachineIndependent/linkValidate.cpp", - "glslang/MachineIndependent/localintermediate.h", - "glslang/MachineIndependent/parseConst.cpp", - "glslang/MachineIndependent/parseVersions.h", - "glslang/MachineIndependent/preprocessor/Pp.cpp", - "glslang/MachineIndependent/preprocessor/PpAtom.cpp", - "glslang/MachineIndependent/preprocessor/PpContext.cpp", - "glslang/MachineIndependent/preprocessor/PpContext.h", - "glslang/MachineIndependent/preprocessor/PpScanner.cpp", - "glslang/MachineIndependent/preprocessor/PpTokens.cpp", - "glslang/MachineIndependent/preprocessor/PpTokens.h", - "glslang/MachineIndependent/propagateNoContraction.cpp", - "glslang/MachineIndependent/propagateNoContraction.h", - "glslang/MachineIndependent/reflection.cpp", - "glslang/MachineIndependent/reflection.h", - "glslang/OSDependent/osinclude.h", - "glslang/Public/ShaderLang.h", - ] - - # Workaround gn issue complaining about these not being allowed even though GLSLANG_HLSL is not - # defined. - sources += [ - "glslang/HLSL/hlslParseHelper.h", - "glslang/HLSL/hlslParseables.h", - "glslang/HLSL/hlslScanContext.h", - "glslang/HLSL/hlslTokens.h", - ] - - if (invoker.enable_hlsl) { - sources += [ - "glslang/HLSL/hlslAttributes.cpp", - "glslang/HLSL/hlslAttributes.h", - "glslang/HLSL/hlslGrammar.cpp", - "glslang/HLSL/hlslGrammar.h", - "glslang/HLSL/hlslOpMap.cpp", - "glslang/HLSL/hlslOpMap.h", - "glslang/HLSL/hlslParseHelper.cpp", - "glslang/HLSL/hlslParseables.cpp", - "glslang/HLSL/hlslScanContext.cpp", - "glslang/HLSL/hlslTokenStream.cpp", - "glslang/HLSL/hlslTokenStream.h", - ] - } - - defines = [] - if (invoker.enable_opt) { - sources += [ "SPIRV/SpvTools.cpp" ] - defines += [ "ENABLE_OPT=1" ] - } - if (invoker.is_angle) { - defines += [ "GLSLANG_ANGLE" ] - } - - if (is_win) { - sources += [ "glslang/OSDependent/Windows/ossource.cpp" ] - defines += [ "GLSLANG_OSINCLUDE_WIN32" ] - } else { - sources += [ "glslang/OSDependent/Unix/ossource.cpp" ] - defines += [ "GLSLANG_OSINCLUDE_UNIX" ] - } - - if (is_clang) { - cflags = [ - "-Wno-extra-semi", - "-Wno-ignored-qualifiers", - "-Wno-implicit-fallthrough", - "-Wno-inconsistent-missing-override", - "-Wno-missing-field-initializers", - "-Wno-newline-eof", - "-Wno-sign-compare", - "-Wno-suggest-destructor-override", - "-Wno-suggest-override", - "-Wno-unused-variable", - ] - } - if (is_win && !is_clang) { - cflags = [ - "/wd4018", # signed/unsigned mismatch - "/wd4189", # local variable is initialized but not referenced - ] - } - - include_dirs = [ "${target_gen_dir}/include" ] - - deps = [ ":glslang_build_info" ] - - if (invoker.enable_opt) { - deps += [ - "${spirv_tools_dir}:spvtools_opt", - "${spirv_tools_dir}:spvtools_val", - ] - include_dirs += [ "${spirv_tools_dir}/include" ] - } - - configs -= _configs_to_remove - configs += _configs_to_add - } -} - -glslang_sources_common("glslang_lib_sources") { - enable_opt = !glslang_angle - enable_hlsl = !glslang_angle - is_angle = glslang_angle -} - -glslang_sources_common("glslang_sources") { - enable_opt = true - enable_hlsl = true - is_angle = false -} - -source_set("glslang_default_resource_limits_sources") { - sources = [ - "StandAlone/ResourceLimits.cpp", - "StandAlone/ResourceLimits.h", - "glslang/Include/ResourceLimits.h", - ] - public_configs = [ ":glslang_public" ] - - configs -= _configs_to_remove - configs += _configs_to_add -} - -executable("glslang_validator") { - sources = [ - "StandAlone/DirStackFileIncluder.h", - "StandAlone/StandAlone.cpp", - ] - if (!is_win) { - cflags = [ "-Woverflow" ] - } - defines = [ "ENABLE_OPT=1" ] - deps = [ - ":glslang_build_info", - ":glslang_default_resource_limits_sources", - ":glslang_sources", - ":glslang_extension_headers", - ] - public_configs = [ ":glslang_hlsl" ] - - include_dirs = [ - "${target_gen_dir}/include", - "${spirv_tools_dir}/include", - ] - - configs -= _configs_to_remove - configs += _configs_to_add -} - -executable("spirv-remap") { - sources = [ "StandAlone/spirv-remap.cpp" ] - defines = [ "ENABLE_OPT=1" ] - deps = [ ":glslang_sources" ] - - include_dirs = [ "${spirv_tools_dir}/include" ] - - configs -= _configs_to_remove - configs += _configs_to_add -} diff --git a/deps/glslang/CHANGES.md b/deps/glslang/CHANGES.md deleted file mode 100644 index fb0b0d11..00000000 --- a/deps/glslang/CHANGES.md +++ /dev/null @@ -1,104 +0,0 @@ -# Revision history for `glslang` - -All notable changes to this project will be documented in this file. -This project adheres to [Semantic Versioning](https://semver.org/). - -## 11.9.0 2022-04-06 - -### Other changes -* Add GLSL version override functionality -* Add eliminate-dead-input-components to -Os -* Add enhanced-msgs option -* Explicitly use Python 3 for builds - -## 11.8.0 2022-01-27 - -### Other changes -* Add support for SPIR-V 1.6 -* Add support for Vulkan 1.3 -* Add --hlsl-dx-position-w option - -## 11.7.0 2021-11-11 - -### Other changes -* Add support for targeting Vulkan 1.2 in the C API - -## 11.6.0 2021-08-25 - -### Other changes -* Atomic memory function only for shader storage block member or shared variable -* Add support for gl_MaxVaryingVectors for ogl -* Fix loading bool arrays from interface blocks -* Generate separate stores for partially swizzled memory stores -* Allow layout(std430) uniform with GL_EXT_scalar_block_layout -* Support for pragma STDGL invariant(all) -* Support for GL_NV_ray_tracing_motion_blur - -## 11.5.0 2021-06-23 - -### Other changes -* Implement GLSL_EXT_shader_atomic_float2 -* Implement GL_EXT_spirv_intrinsics -* Fixed SPIR-V remapper not remapping OpExtInst instruction set IDs -* only declare compatibility gl_ variables in compatibility mode -* Add support for float spec const vector initialization -* Implement GL_EXT_subgroup_uniform_control_flow. -* Fix arrays dimensioned with spec constant sized gl_WorkGroupSize -* Add support for 64bit integer scalar and vector types to bitCount() builtin - -## 11.4.0 2021-04-22 - -### Other changes -* Fix to keep source compatible with CMake 3.10.2 - -## 11.3.0 2021-04-21 - -### Other changes -* Added --depfile -* Added --auto-sampled-textures -* Now supports InterpolateAt-based functions -* Supports cross-stage automatic IO mapping -* Supports GL_EXT_vulkan_glsl_relaxed (-R option) - -## 11.2.0 2021-02-18 - -### Other changes -* Removed Python requirement when not building with spirv-tools -* Add support for GL_EXT_shared_memory_block -* Implement GL_EXT_null_initializer -* Add CMake support for Fuschia - -## 11.1.0 2020-12-07 - -### Other changes -* Added ray-tracing extension support - -## 11.0.0 2020-07-20 - -### Breaking changes - -#### Visual Studio 2013 is no longer supported - -[As scheduled](https://github.com/KhronosGroup/glslang/blob/9eef54b2513ca6b40b47b07d24f453848b65c0df/README.md#planned-deprecationsremovals), -Microsoft Visual Studio 2013 is no longer officially supported. Please upgrade -to at least Visual Studio 2015. - -## 10.15.3847 2020-07-20 - -### Breaking changes - -* The following files have been removed: - * `glslang/include/revision.h` - * `glslang/include/revision.template` - -The `GLSLANG_MINOR_VERSION` and `GLSLANG_PATCH_LEVEL` defines have been removed -from the public headers. \ -Instead each build script now uses the new `build_info.py` -script along with the `build_info.h.tmpl` and this `CHANGES.md` file to generate -the glslang build-time generated header `glslang/build_info.h`. - -The new public API to obtain the `glslang` version is `glslang::GetVersion()`. - -### Other changes -* `glslang` shared objects produced by CMake are now `SONAME` versioned using - [Semantic Versioning 2.0.0](https://semver.org/). diff --git a/deps/glslang/CMakeLists.txt b/deps/glslang/CMakeLists.txt deleted file mode 100644 index f3d74479..00000000 --- a/deps/glslang/CMakeLists.txt +++ /dev/null @@ -1,365 +0,0 @@ -# Copyright (C) 2020 The Khronos Group 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 The Khronos Group 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. - -# increase to 3.1 once all major distributions -# include a version of CMake >= 3.1 -cmake_minimum_required(VERSION 2.8.12...4.2.0) -if (POLICY CMP0048) - cmake_policy(SET CMP0048 NEW) -endif() -if(POLICY CMP0054) - cmake_policy(SET CMP0054 NEW) -endif() - -project(glslang LANGUAGES CXX) - -set_property(GLOBAL PROPERTY USE_FOLDERS ON) - -# Enable compile commands database -set(CMAKE_EXPORT_COMPILE_COMMANDS ON) - -# Adhere to GNU filesystem layout conventions -include(GNUInstallDirs) - -# Needed for CMAKE_DEPENDENT_OPTION macro -include(CMakeDependentOption) - -option(BUILD_SHARED_LIBS "Build Shared Libraries" OFF) -option(BUILD_EXTERNAL "Build external dependencies in /External" ON) - -set(LIB_TYPE STATIC) - -if(BUILD_SHARED_LIBS) - set(LIB_TYPE SHARED) -endif() - -if ("${CMAKE_BUILD_TYPE}" STREQUAL "") - # This logic inside SPIRV-Tools, which can upset build target dependencies - # if changed after targets are already defined. To prevent these issues, - # ensure CMAKE_BUILD_TYPE is assigned early and at the glslang root scope. - message(STATUS "No build type selected, default to Debug") - set(CMAKE_BUILD_TYPE "Debug") -endif() - -option(SKIP_GLSLANG_INSTALL "Skip installation" ${SKIP_GLSLANG_INSTALL}) -if(NOT ${SKIP_GLSLANG_INSTALL}) - set(ENABLE_GLSLANG_INSTALL ON) -endif() -option(ENABLE_SPVREMAPPER "Enables building of SPVRemapper" ON) - -option(ENABLE_GLSLANG_BINARIES "Builds glslangValidator and spirv-remap" ON) - -option(ENABLE_GLSLANG_JS - "If using Emscripten, build glslang.js. Otherwise, builds a sample executable for binary-size testing." OFF) -CMAKE_DEPENDENT_OPTION(ENABLE_GLSLANG_WEBMIN - "Reduces glslang to minimum needed for web use" - OFF "ENABLE_GLSLANG_JS" - OFF) -CMAKE_DEPENDENT_OPTION(ENABLE_GLSLANG_WEBMIN_DEVEL - "For ENABLE_GLSLANG_WEBMIN builds, enables compilation error messages" - OFF "ENABLE_GLSLANG_WEBMIN" - OFF) -CMAKE_DEPENDENT_OPTION(ENABLE_EMSCRIPTEN_SINGLE_FILE - "If using Emscripten, enables SINGLE_FILE build" - OFF "ENABLE_GLSLANG_JS AND EMSCRIPTEN" - OFF) -CMAKE_DEPENDENT_OPTION(ENABLE_EMSCRIPTEN_ENVIRONMENT_NODE - "If using Emscripten, builds to run on Node instead of Web" - OFF "ENABLE_GLSLANG_JS AND EMSCRIPTEN" - OFF) - -CMAKE_DEPENDENT_OPTION(ENABLE_HLSL - "Enables HLSL input support" - ON "NOT ENABLE_GLSLANG_WEBMIN" - OFF) - -option(ENABLE_RTTI "Enables RTTI" OFF) -option(ENABLE_EXCEPTIONS "Enables Exceptions" OFF) -option(ENABLE_OPT "Enables spirv-opt capability if present" ON) - -if(MINGW OR (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND ${CMAKE_CXX_COMPILER_ID} MATCHES "GNU")) - # Workaround for CMake behavior on Mac OS with gcc, cmake generates -Xarch_* arguments - # which gcc rejects - option(ENABLE_PCH "Enables Precompiled header" OFF) -else() - option(ENABLE_PCH "Enables Precompiled header" ON) -endif() -option(ENABLE_CTEST "Enables testing" ON) - -if(ENABLE_GLSLANG_INSTALL AND CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT AND WIN32) - set(CMAKE_INSTALL_PREFIX "install" CACHE STRING "..." FORCE) -endif() - -option(USE_CCACHE "Use ccache" OFF) -if(USE_CCACHE) - find_program(CCACHE_FOUND ccache) - if(CCACHE_FOUND) - set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache) - endif() -endif() - -if(ENABLE_CTEST) - include(CTest) -endif() - -if(ENABLE_HLSL) - add_definitions(-DENABLE_HLSL) -endif() - -if(ENABLE_GLSLANG_WEBMIN) - add_definitions(-DGLSLANG_WEB) - if(ENABLE_GLSLANG_WEBMIN_DEVEL) - add_definitions(-DGLSLANG_WEB_DEVEL) - endif() -endif() - -if(WIN32) - set(CMAKE_DEBUG_POSTFIX "d") - option(OVERRIDE_MSVCCRT "Overrides runtime of MSVC " ON) - if(MSVC AND OVERRIDE_MSVCCRT) - include(ChooseMSVCCRT.cmake) - endif() - add_definitions(-DGLSLANG_OSINCLUDE_WIN32) -elseif(UNIX) - add_definitions(-DGLSLANG_OSINCLUDE_UNIX) -else() - message("unknown platform") -endif() - -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. - if(NOT ENABLE_RTTI) - add_compile_options(-fno-rtti) - endif() - if(NOT ENABLE_EXCEPTIONS) - add_compile_options(-fno-exceptions) - endif() - if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "9.0.0") - add_compile_options(-Werror=deprecated-copy) - endif() - - if(NOT CMAKE_VERSION VERSION_LESS "3.13" AND NOT CMAKE_SYSTEM_NAME STREQUAL "Darwin") - # Error if there's symbols that are not found at link time. - # add_link_options() was added in CMake 3.13 - if using an earlier - # version don't set this - it should be caught by presubmits anyway. - add_link_options("-Wl,--no-undefined") - endif() -elseif(${CMAKE_CXX_COMPILER_ID} MATCHES "Clang" AND NOT MSVC) - 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. - if(NOT ENABLE_RTTI) - add_compile_options(-fno-rtti) - endif() - if(NOT ENABLE_EXCEPTIONS) - add_compile_options(-fno-exceptions) - endif() - - if(NOT CMAKE_VERSION VERSION_LESS "3.13") - # Error if there's symbols that are not found at link time. - # add_link_options() was added in CMake 3.13 - if using an earlier - # version don't set this - it should be caught by presubmits anyway. - add_link_options("-Wl,-undefined,error") - endif() -elseif(MSVC) - if(NOT ENABLE_RTTI) - string(FIND "${CMAKE_CXX_FLAGS}" "/GR" MSVC_HAS_GR) - if(MSVC_HAS_GR) - string(REGEX REPLACE "/GR" "/GR-" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") - else() - add_compile_options(/GR-) # Disable RTTI - endif() - endif() - if(ENABLE_EXCEPTIONS) - add_compile_options(/EHsc) # Enable Exceptions - else() - string(REGEX REPLACE "/EHsc" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") # Try to remove default /EHsc cxx_flag - add_compile_options(/D_HAS_EXCEPTIONS=0) - endif() -endif() - -if(ENABLE_GLSLANG_JS) - if(MSVC) - add_compile_options(/Os /GR-) - else() - add_compile_options(-Os -fno-rtti -fno-exceptions) - if(${CMAKE_CXX_COMPILER_ID} MATCHES "Clang" AND NOT MSVC) - add_compile_options(-Wno-unused-parameter) - add_compile_options(-Wno-unused-variable -Wno-unused-const-variable) - endif() - endif() -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 - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -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) - -if(NOT COMMAND find_host_package) - macro(find_host_package) - find_package(${ARGN}) - endmacro() -endif() - -# Root directory for build-time generated include files -set(GLSLANG_GENERATED_INCLUDEDIR "${CMAKE_BINARY_DIR}/include") - -################################################################################ -# Build version information generation -################################################################################ -include(parse_version.cmake) -set(GLSLANG_CHANGES_FILE "${CMAKE_CURRENT_SOURCE_DIR}/CHANGES.md") -set(GLSLANG_BUILD_INFO_H_TMPL "${CMAKE_CURRENT_SOURCE_DIR}/build_info.h.tmpl") -set(GLSLANG_BUILD_INFO_H "${GLSLANG_GENERATED_INCLUDEDIR}/glslang/build_info.h") - -parse_version(${GLSLANG_CHANGES_FILE} GLSLANG) - -function(configurate_version) - set(major ${GLSLANG_VERSION_MAJOR}) - set(minor ${GLSLANG_VERSION_MINOR}) - set(patch ${GLSLANG_VERSION_PATCH}) - set(flavor ${GLSLANG_VERSION_FLAVOR}) - configure_file(${GLSLANG_BUILD_INFO_H_TMPL} ${GLSLANG_BUILD_INFO_H} @ONLY) -endfunction() - -configurate_version() - -# glslang_add_build_info_dependency() adds the glslang-build-info dependency and -# generated include directories to target. -function(glslang_add_build_info_dependency target) - target_include_directories(${target} PUBLIC $) -endfunction() - -# glslang_only_export_explicit_symbols() makes the symbol visibility hidden by -# default for when building shared libraries, and sets the -# GLSLANG_IS_SHARED_LIBRARY define, and GLSLANG_EXPORTING to 1 when specifically -# building . -function(glslang_only_export_explicit_symbols target) - if(BUILD_SHARED_LIBS) - target_compile_definitions(${target} PUBLIC "GLSLANG_IS_SHARED_LIBRARY=1") - if(WIN32) - target_compile_definitions(${target} PRIVATE "GLSLANG_EXPORTING=1") - else() - target_compile_options(${target} PRIVATE "-fvisibility=hidden") - endif() - endif() -endfunction() - -# glslang_pch() adds precompiled header rules to for the pre-compiled -# header file . As target_precompile_headers() was added in CMake 3.16, -# this is a no-op if called on earlier versions of CMake. -if(NOT CMAKE_VERSION VERSION_LESS "3.16" AND ENABLE_PCH) - function(glslang_pch target pch) - target_precompile_headers(${target} PRIVATE ${pch}) - endfunction() -else() - function(glslang_pch target pch) - endfunction() - if(ENABLE_PCH) - message("Your CMake version is ${CMAKE_VERSION}. Update to at least 3.16 to enable precompiled headers to speed up incremental builds") - endif() -endif() - -if(BUILD_EXTERNAL AND IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/External) - find_package(Python3 REQUIRED COMPONENTS Interpreter) - - # We depend on these for later projects, so they should come first. - add_subdirectory(External) -endif() - -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() -if(ENABLE_CTEST) - add_subdirectory(gtests) -endif() - -if(ENABLE_CTEST AND BUILD_TESTING) - # glslang-testsuite runs a bash script on Windows. - # Make sure to use '-o igncr' flag to ignore carriage returns (\r). - set(IGNORE_CR_FLAG "") - if(WIN32) - set(IGNORE_CR_FLAG -o igncr) - endif() - - if (CMAKE_CONFIGURATION_TYPES) - set(RESULTS_PATH ${CMAKE_CURRENT_BINARY_DIR}/$/localResults) - set(VALIDATOR_PATH ${CMAKE_CURRENT_BINARY_DIR}/StandAlone/$/glslangValidator) - set(REMAP_PATH ${CMAKE_CURRENT_BINARY_DIR}/StandAlone/$/spirv-remap) - else() - set(RESULTS_PATH ${CMAKE_CURRENT_BINARY_DIR}/localResults) - set(VALIDATOR_PATH ${CMAKE_CURRENT_BINARY_DIR}/StandAlone/glslangValidator) - set(REMAP_PATH ${CMAKE_CURRENT_BINARY_DIR}/StandAlone/spirv-remap) - endif() - - add_test(NAME glslang-testsuite - COMMAND bash ${IGNORE_CR_FLAG} runtests ${RESULTS_PATH} ${VALIDATOR_PATH} ${REMAP_PATH} - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Test/) -endif() diff --git a/deps/glslang/CODE_OF_CONDUCT.md b/deps/glslang/CODE_OF_CONDUCT.md deleted file mode 100644 index a11610bd..00000000 --- a/deps/glslang/CODE_OF_CONDUCT.md +++ /dev/null @@ -1 +0,0 @@ -A reminder that this issue tracker is managed by the Khronos Group. Interactions here should follow the Khronos Code of Conduct (https://www.khronos.org/developers/code-of-conduct), which prohibits aggressive or derogatory language. Please keep the discussion friendly and civil. diff --git a/deps/glslang/ChooseMSVCCRT.cmake b/deps/glslang/ChooseMSVCCRT.cmake deleted file mode 100644 index b1561263..00000000 --- a/deps/glslang/ChooseMSVCCRT.cmake +++ /dev/null @@ -1,138 +0,0 @@ -# Copyright (C) 2020 The Khronos Group 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 The Khronos Group 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. - -# The macro choose_msvc_crt() takes a list of possible -# C runtimes to choose from, in the form of compiler flags, -# to present to the user. (MTd for /MTd, etc) -# -# The macro is invoked at the end of the file. -# -# CMake already sets CRT flags in the CMAKE_CXX_FLAGS_* and -# CMAKE_C_FLAGS_* variables by default. To let the user -# override that for each build type: -# 1. Detect which CRT is already selected, and reflect this in -# LLVM_USE_CRT_* so the user can have a better idea of what -# changes they're making. -# 2. Replace the flags in both variables with the new flag via a regex. -# 3. set() the variables back into the cache so the changes -# are user-visible. - -### Helper macros: ### -macro(make_crt_regex regex crts) - set(${regex} "") - foreach(crt ${${crts}}) - # Trying to match the beginning or end of the string with stuff - # like [ ^]+ didn't work, so use a bunch of parentheses instead. - set(${regex} "${${regex}}|(^| +)/${crt}($| +)") - endforeach(crt) - string(REGEX REPLACE "^\\|" "" ${regex} "${${regex}}") -endmacro(make_crt_regex) - -macro(get_current_crt crt_current regex flagsvar) - # Find the selected-by-CMake CRT for each build type, if any. - # Strip off the leading slash and any whitespace. - string(REGEX MATCH "${${regex}}" ${crt_current} "${${flagsvar}}") - string(REPLACE "/" " " ${crt_current} "${${crt_current}}") - string(STRIP "${${crt_current}}" ${crt_current}) -endmacro(get_current_crt) - -# Replaces or adds a flag to a variable. -# Expects 'flag' to be padded with spaces. -macro(set_flag_in_var flagsvar regex flag) - string(REGEX MATCH "${${regex}}" current_flag "${${flagsvar}}") - if("${current_flag}" STREQUAL "") - set(${flagsvar} "${${flagsvar}}${${flag}}") - else() - string(REGEX REPLACE "${${regex}}" "${${flag}}" ${flagsvar} "${${flagsvar}}") - endif() - string(STRIP "${${flagsvar}}" ${flagsvar}) - # Make sure this change gets reflected in the cache/gui. - # CMake requires the docstring parameter whenever set() touches the cache, - # so get the existing docstring and re-use that. - get_property(flagsvar_docs CACHE ${flagsvar} PROPERTY HELPSTRING) - set(${flagsvar} "${${flagsvar}}" CACHE STRING "${flagsvar_docs}" FORCE) -endmacro(set_flag_in_var) - - -macro(choose_msvc_crt MSVC_CRT) - if(LLVM_USE_CRT) - message(FATAL_ERROR - "LLVM_USE_CRT is deprecated. Use the CMAKE_BUILD_TYPE-specific -variables (LLVM_USE_CRT_DEBUG, etc) instead.") - endif() - - make_crt_regex(MSVC_CRT_REGEX ${MSVC_CRT}) - - foreach(build_type ${CMAKE_CONFIGURATION_TYPES} ${CMAKE_BUILD_TYPE}) - string(TOUPPER "${build_type}" build) - if (NOT LLVM_USE_CRT_${build}) - get_current_crt(LLVM_USE_CRT_${build} - MSVC_CRT_REGEX - CMAKE_CXX_FLAGS_${build}) - set(LLVM_USE_CRT_${build} - "${LLVM_USE_CRT_${build}}" - CACHE STRING "Specify VC++ CRT to use for ${build_type} configurations." - FORCE) - set_property(CACHE LLVM_USE_CRT_${build} - PROPERTY STRINGS ;${${MSVC_CRT}}) - endif(NOT LLVM_USE_CRT_${build}) - endforeach(build_type) - - foreach(build_type ${CMAKE_CONFIGURATION_TYPES} ${CMAKE_BUILD_TYPE}) - string(TOUPPER "${build_type}" build) - if ("${LLVM_USE_CRT_${build}}" STREQUAL "") - set(flag_string " ") - else() - set(flag_string " /${LLVM_USE_CRT_${build}} ") - list(FIND ${MSVC_CRT} ${LLVM_USE_CRT_${build}} idx) - if (idx LESS 0) - message(FATAL_ERROR - "Invalid value for LLVM_USE_CRT_${build}: ${LLVM_USE_CRT_${build}}. Valid options are one of: ${${MSVC_CRT}}") - endif (idx LESS 0) - message(STATUS "Using ${build_type} VC++ CRT: ${LLVM_USE_CRT_${build}}") - endif() - foreach(lang C CXX) - set_flag_in_var(CMAKE_${lang}_FLAGS_${build} MSVC_CRT_REGEX flag_string) - endforeach(lang) - endforeach(build_type) -endmacro(choose_msvc_crt MSVC_CRT) - - -# List of valid CRTs for MSVC -set(MSVC_CRT - MD - MDd - MT - MTd) - -choose_msvc_crt(MSVC_CRT) diff --git a/deps/glslang/DEPS b/deps/glslang/DEPS deleted file mode 100644 index 2f5fa8ef..00000000 --- a/deps/glslang/DEPS +++ /dev/null @@ -1,82 +0,0 @@ -# Copyright (C) 2020 The Khronos Group 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 The Khronos Group 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. - -use_relative_paths = True - -gclient_gn_args_file = 'build/config/gclient_args.gni' - -vars = { - 'chromium_git': 'https://chromium.googlesource.com', - 'build_with_chromium': False, -} - -deps = { - - './build': { - 'url': '{chromium_git}/chromium/src/build.git@85ee3b7692e5284f08bd3c9459fb5685eed7b838', - 'condition': 'not build_with_chromium', - }, - - './buildtools': { - 'url': '{chromium_git}/chromium/src/buildtools.git@4be464e050b3d05060471788f926b34c641db9fd', - 'condition': 'not build_with_chromium', - }, - - './tools/clang': { - 'url': '{chromium_git}/chromium/src/tools/clang.git@3a982adabb720aa8f3e3885d40bf3fe506990157', - 'condition': 'not build_with_chromium', - }, - -} - -hooks = [ - { - 'name': 'sysroot_x64', - 'pattern': '.', - 'condition': 'checkout_linux and (checkout_x64 and not build_with_chromium)', - 'action': ['python', './build/linux/sysroot_scripts/install-sysroot.py', - '--arch=x64'], - }, - { - # Note: On Win, this should run after win_toolchain, as it may use it. - 'name': 'clang', - 'pattern': '.', - 'action': ['python', './tools/clang/scripts/update.py'], - 'condition': 'not build_with_chromium', - }, -] - -recursedeps = [ - # buildtools provides clang_format, libc++, and libc++abi - 'buildtools', -] diff --git a/deps/glslang/External/CMakeLists.txt b/deps/glslang/External/CMakeLists.txt deleted file mode 100644 index cbabd2e3..00000000 --- a/deps/glslang/External/CMakeLists.txt +++ /dev/null @@ -1,77 +0,0 @@ -# Copyright (C) 2020 The Khronos Group 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 The Khronos Group 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. - -# 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) - # EXCLUDE_FROM_ALL keeps the install target from installing GTEST files. - add_subdirectory(googletest EXCLUDE_FROM_ALL) - 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/LICENSE.txt b/deps/glslang/LICENSE.txt deleted file mode 100644 index 054e68a4..00000000 --- a/deps/glslang/LICENSE.txt +++ /dev/null @@ -1,1016 +0,0 @@ -Here, glslang proper means core GLSL parsing, HLSL parsing, and SPIR-V code -generation. Glslang proper requires use of a number of licenses, one that covers -preprocessing and others that covers non-preprocessing. - -Bison was removed long ago. You can build glslang from the source grammar, -using tools of your choice, without using bison or any bison files. - -Other parts, outside of glslang proper, include: - -- gl_types.h, only needed for OpenGL-like reflection, and can be left out of - a parse and codegen project. See it for its license. - -- update_glslang_sources.py, which is not part of the project proper and does - not need to be used. - -- the SPIR-V "remapper", which is optional, but has the same license as - glslang proper - -- Google tests and SPIR-V tools, and anything in the external subdirectory - are external and optional; see them for their respective licenses. - --------------------------------------------------------------------------------- - -The core of glslang-proper, minus the preprocessor is licenced as follows: - --------------------------------------------------------------------------------- -3-Clause BSD License --------------------------------------------------------------------------------- - -// -// Copyright (C) 2015-2018 Google, Inc. -// Copyright (C) -// -// 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. -// - - --------------------------------------------------------------------------------- -2-Clause BSD License --------------------------------------------------------------------------------- - -Copyright 2020 The Khronos Group Inc - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - -2. 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. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (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 MIT License --------------------------------------------------------------------------------- - -Copyright 2020 The Khronos Group Inc - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - --------------------------------------------------------------------------------- -APACHE LICENSE, VERSION 2.0 --------------------------------------------------------------------------------- - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - --------------------------------------------------------------------------------- -GPL 3 with special bison exception --------------------------------------------------------------------------------- - - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - -Bison Exception - -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. - - END OF TERMS AND CONDITIONS - --------------------------------------------------------------------------------- -================================================================================ --------------------------------------------------------------------------------- - -The preprocessor has the core licenses stated above, plus additional licences: - -/****************************************************************************\ -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. -\****************************************************************************/ - -/* -** Copyright (c) 2014-2016 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a copy -** of this software and/or associated documentation files (the "Materials"), -** to deal in the Materials without restriction, including without limitation -** the rights to use, copy, modify, merge, publish, distribute, sublicense, -** and/or sell copies of the Materials, and to permit persons to whom the -** Materials are furnished to do so, subject to the following conditions: -** -** The above copyright notice and this permission notice shall be included in -** all copies or substantial portions of the Materials. -** -** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS -** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND -** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS -** IN THE MATERIALS. -*/ diff --git a/deps/glslang/OGLCompilersDLL/CMakeLists.txt b/deps/glslang/OGLCompilersDLL/CMakeLists.txt deleted file mode 100644 index 0b007d45..00000000 --- a/deps/glslang/OGLCompilersDLL/CMakeLists.txt +++ /dev/null @@ -1,48 +0,0 @@ -# Copyright (C) 2020 The Khronos Group 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 The Khronos Group 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. - -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 EXPORT OGLCompilerTargets - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) - install(EXPORT OGLCompilerTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) -endif(ENABLE_GLSLANG_INSTALL) diff --git a/deps/glslang/OGLCompilersDLL/InitializeDll.cpp b/deps/glslang/OGLCompilersDLL/InitializeDll.cpp deleted file mode 100644 index abea9108..00000000 --- a/deps/glslang/OGLCompilersDLL/InitializeDll.cpp +++ /dev/null @@ -1,165 +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. -// - -#define SH_EXPORTING - -#include - -#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(); - - if (ThreadInitializeIndex != OS_INVALID_TLS_INDEX) { - // - // Function is re-entrant. - // - - glslang::ReleaseGlobalLock(); - return true; - } - - ThreadInitializeIndex = OS_AllocTLSIndex(); - - if (ThreadInitializeIndex == OS_INVALID_TLS_INDEX) { - assert(0 && "InitProcess(): Failed to allocate TLS area for init flag"); - - glslang::ReleaseGlobalLock(); - return false; - } - - if (! InitializePoolIndex()) { - assert(0 && "InitProcess(): Failed to initialize global pool"); - - glslang::ReleaseGlobalLock(); - return false; - } - - if (! InitThread()) { - assert(0 && "InitProcess(): Failed to initialize thread"); - - glslang::ReleaseGlobalLock(); - return false; - } - - glslang::ReleaseGlobalLock(); - 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() -{ - // - // This function is re-entrant - // - if (ThreadInitializeIndex == OS_INVALID_TLS_INDEX) { - assert(0 && "InitThread(): Process hasn't been initalised."); - return false; - } - - if (OS_GetTLSValue(ThreadInitializeIndex) != 0) - return true; - - 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; - - if (ThreadInitializeIndex == OS_INVALID_TLS_INDEX) - return true; - - // - // Function is re-entrant and this thread may not have been initialized. - // - if (OS_GetTLSValue(ThreadInitializeIndex) != 0) { - if (!OS_SetTLSValue(ThreadInitializeIndex, (void *)0)) { - assert(0 && "DetachThread(): Unable to clear init flag."); - success = false; - } - } - - 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; - - if (ThreadInitializeIndex == OS_INVALID_TLS_INDEX) - return true; - - success = DetachThread(); - - OS_FreeTLSIndex(ThreadInitializeIndex); - ThreadInitializeIndex = OS_INVALID_TLS_INDEX; - - return success; -} - -} // end namespace glslang diff --git a/deps/glslang/OGLCompilersDLL/InitializeDll.h b/deps/glslang/OGLCompilersDLL/InitializeDll.h deleted file mode 100644 index 661cee4d..00000000 --- a/deps/glslang/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/README-spirv-remap.txt b/deps/glslang/README-spirv-remap.txt deleted file mode 100644 index 3e5288aa..00000000 --- a/deps/glslang/README-spirv-remap.txt +++ /dev/null @@ -1,137 +0,0 @@ - -VERSION --------------------------------------------------------------------------------- -spirv-remap 0.97 - -INTRO: --------------------------------------------------------------------------------- -spirv-remap is a utility to improve compression of SPIR-V binary files via -entropy reduction, plus optional stripping of debug information and -load/store optimization. It transforms SPIR-V to SPIR-V, remapping IDs. The -resulting modules have an increased ID range (IDs are not as tightly packed -around zero), but will compress better when multiple modules are compressed -together, since compressor's dictionary can find better cross module -commonality. - -Remapping is accomplished via canonicalization. Thus, modules can be -compressed one at a time with no loss of quality relative to operating on -many modules at once. The command line tool operates on multiple modules -only in the trivial repetition sense, for ease of use. The remapper API -only accepts a single module at a time. - -There are two modes of use: command line, and a C++11 API. Both are -described below. - -spirv-remap is currently in an alpha state. Although there are no known -remapping defects, it has only been exercised on one real world game shader -workload. - - -FEEDBACK --------------------------------------------------------------------------------- -Report defects, enhancements requests, code improvements, etc to: - spvremapper@lunarg.com - - -COMMAND LINE USAGE: --------------------------------------------------------------------------------- -Examples are given with a verbosity of one (-v), but more verbosity can be -had via -vv, -vvv, etc, or an integer parameter to --verbose, such as -"--verbose 4". With no verbosity, the command is silent and returns 0 on -success, and a positive integer error on failure. - -Pre-built binaries for several OSs are available. Examples presented are -for Linux. Command line arguments can be provided in any order. - -1. Basic ID remapping - -Perform ID remapping on all shaders in "*.spv", writing new files with -the same basenames to /tmp/out_dir. - - spirv-remap -v --map all --input *.spv --output /tmp/out_dir - -2. Perform all possible size reductions - - spirv-remap-linux-64 -v --do-everything --input *.spv --output /tmp/out_dir - -Note that --do-everything is a synonym for: - - --map all --dce all --opt all --strip all - -API USAGE: --------------------------------------------------------------------------------- - -The public interface to the remapper is defined in SPIRV/SPVRemapper.h as follows: - -namespace spv { - -class spirvbin_t -{ -public: - enum Options { ... }; - spirvbin_t(int verbose = 0); // construct - - // remap an existing binary in memory - void remap(std::vector& spv, std::uint32_t opts = DO_EVERYTHING); - - // Type for error/log handler functions - typedef std::function errorfn_t; - typedef std::function logfn_t; - - // Register error/log handling functions (can be c/c++ fn, lambda fn, or functor) - static void registerErrorHandler(errorfn_t handler) { errorHandler = handler; } - static void registerLogHandler(logfn_t handler) { logHandler = handler; } -}; - -} // namespace spv - -The class definition is in SPVRemapper.cpp. - -remap() accepts an std::vector of SPIR-V words, modifies them per the -request given in 'opts', and leaves the 'spv' container with the result. -It is safe to instantiate one spirvbin_t per thread and process a different -SPIR-V in each. - -The "opts" parameter to remap() accepts a bit mask of desired remapping -options. See REMAPPING AND OPTIMIZATION OPTIONS. - -On error, the function supplied to registerErrorHandler() will be invoked. -This can be a standard C/C++ function, a lambda function, or a functor. -The default handler simply calls exit(5); The error handler is a static -member, so need only be set up once, not once per spirvbin_t instance. - -Log messages are supplied to registerLogHandler(). By default, log -messages are eaten silently. The log handler is also a static member. - -BUILD DEPENDENCIES: --------------------------------------------------------------------------------- - 1. C++11 compatible compiler - 2. cmake - 3. glslang - - -BUILDING --------------------------------------------------------------------------------- -The standalone remapper is built along side glslangValidator through its -normal build process. - - -REMAPPING AND OPTIMIZATION OPTIONS --------------------------------------------------------------------------------- -API: - These are bits defined under spv::spirvbin_t::, and can be - bitwise or-ed together as desired. - - MAP_TYPES = canonicalize type IDs - MAP_NAMES = canonicalize named data - MAP_FUNCS = canonicalize function bodies - DCE_FUNCS = remove dead functions - DCE_VARS = remove dead variables - DCE_TYPES = remove dead types - OPT_LOADSTORE = optimize unneeded load/stores - MAP_ALL = (MAP_TYPES | MAP_NAMES | MAP_FUNCS) - DCE_ALL = (DCE_FUNCS | DCE_VARS | DCE_TYPES) - OPT_ALL = (OPT_LOADSTORE) - ALL_BUT_STRIP = (MAP_ALL | DCE_ALL | OPT_ALL) - DO_EVERYTHING = (STRIP | ALL_BUT_STRIP) - diff --git a/deps/glslang/README.md b/deps/glslang/README.md deleted file mode 100644 index efe986ca..00000000 --- a/deps/glslang/README.md +++ /dev/null @@ -1,487 +0,0 @@ -# News - -1. Visual Studio 2013 is no longer supported - - [As scheduled](https://github.com/KhronosGroup/glslang/blob/9eef54b2513ca6b40b47b07d24f453848b65c0df/README.md#planned-deprecationsremovals), -Microsoft Visual Studio 2013 is no longer officially supported. \ - Please upgrade to at least Visual Studio 2015. - -2. The versioning scheme is being improved, and you might notice some differences. This is currently WIP, but will be coming soon. See, for example, PR #2277. - -3. If you get a new **compilation error due to a missing header**, it might be caused by this planned removal: - -**SPIRV Folder, 1-May, 2020.** Glslang, when installed through CMake, -will install a `SPIRV` folder into `${CMAKE_INSTALL_INCLUDEDIR}`. -This `SPIRV` folder is being moved to `glslang/SPIRV`. -During the transition the `SPIRV` folder will be installed into both locations. -The old install of `SPIRV/` will be removed as a CMake install target no sooner than May 1, 2020. -See issue #1964. - -If people are only using this location to get spirv.hpp, I recommend they get that from [SPIRV-Headers](https://github.com/KhronosGroup/SPIRV-Headers) instead. - -[![appveyor status](https://ci.appveyor.com/api/projects/status/q6fi9cb0qnhkla68/branch/master?svg=true)](https://ci.appveyor.com/project/Khronoswebmaster/glslang/branch/master) -![Continuous Deployment](https://github.com/KhronosGroup/glslang/actions/workflows/continuous_deployment.yml/badge.svg) - -# Glslang Components and Status - -There are several components: - -### Reference Validator and GLSL/ESSL -> AST Front End - -An OpenGL GLSL and OpenGL|ES GLSL (ESSL) front-end for reference validation and translation of GLSL/ESSL into an internal abstract syntax tree (AST). - -**Status**: Virtually complete, with results carrying similar weight as the specifications. - -### HLSL -> AST Front End - -An HLSL front-end for translation of an approximation of HLSL to glslang's AST form. - -**Status**: Partially complete. Semantics are not reference quality and input is not validated. -This is in contrast to the [DXC project](https://github.com/Microsoft/DirectXShaderCompiler), which receives a much larger investment and attempts to have definitive/reference-level semantics. - -See [issue 362](https://github.com/KhronosGroup/glslang/issues/362) and [issue 701](https://github.com/KhronosGroup/glslang/issues/701) for current status. - -### AST -> SPIR-V Back End - -Translates glslang's AST to the Khronos-specified SPIR-V intermediate language. - -**Status**: Virtually complete. - -### Reflector - -An API for getting reflection information from the AST, reflection types/variables/etc. from the HLL source (not the SPIR-V). - -**Status**: There is a large amount of functionality present, but no specification/goal to measure completeness against. It is accurate for the input HLL and AST, but only approximate for what would later be emitted for SPIR-V. - -### Standalone Wrapper - -`glslangValidator` is command-line tool for accessing the functionality above. - -Status: Complete. - -Tasks waiting to be done are documented as GitHub issues. - -## Other References - -Also see the Khronos landing page for glslang as a reference front end: - -https://www.khronos.org/opengles/sdk/tools/Reference-Compiler/ - -The above page, while not kept up to date, includes additional information regarding glslang as a reference validator. - -# How to Use Glslang - -## Execution of Standalone Wrapper - -To use the standalone binary form, execute `glslangValidator`, and it will print -a usage statement. Basic operation is to give it a file containing a shader, -and it will print out warnings/errors and optionally an AST. - -The applied stage-specific rules are based on the file extension: -* `.vert` for a vertex shader -* `.tesc` for a tessellation control shader -* `.tese` for a tessellation evaluation shader -* `.geom` for a geometry shader -* `.frag` for a fragment shader -* `.comp` for a compute shader - -For ray tracing pipeline shaders: -* `.rgen` for a ray generation shader -* `.rint` for a ray intersection shader -* `.rahit` for a ray any-hit shader -* `.rchit` for a ray closest-hit shader -* `.rmiss` for a ray miss shader -* `.rcall` for a callable shader - -There is also a non-shader extension: -* `.conf` for a configuration file of limits, see usage statement for example - -## Building (CMake) - -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: use 2015 or later.) -* [CMake][cmake]: for generating compilation targets. -* make: _Linux_, ninja is an alternative, if configured. -* [Python 3.x][python]: for executing SPIRV-Tools scripts. (Optional if not using SPIRV-Tools and the 'External' subdirectory does not exist.) -* [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 -git clone https://github.com/KhronosGroup/glslang.git -``` - -#### 2) Check-Out External Projects - -```bash -cd -git clone https://github.com/google/googletest.git External/googletest -``` - -TEMPORARY NOTICE: additionally perform the following to avoid a current -breakage in googletest: - -```bash -cd External/googletest -git checkout 0c400f67fcf305869c5fb113dd296eca266c9725 -cd ../.. -``` - -If you wish to assure that SPIR-V generated from HLSL is legal for Vulkan, -wish to invoke -Os to reduce SPIR-V size from HLSL or GLSL, or wish to run the -integrated test suite, 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: - -```bash -mkdir -p $BUILD_DIR -cd $BUILD_DIR -``` - -For building on Linux: - -```bash -cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$(pwd)/install" $SOURCE_DIR -# "Release" (for CMAKE_BUILD_TYPE) could also be "Debug" or "RelWithDebInfo" -``` - -For building on Android: -```bash -cmake $SOURCE_DIR -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$(pwd)/install" -DANDROID_ABI=arm64-v8a -DCMAKE_BUILD_TYPE=Release -DANDROID_STL=c++_static -DANDROID_PLATFORM=android-24 -DCMAKE_SYSTEM_NAME=Android -DANDROID_TOOLCHAIN=clang -DANDROID_ARM_MODE=arm -DCMAKE_MAKE_PROGRAM=$ANDROID_NDK_HOME/prebuilt/linux-x86_64/bin/make -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake -# If on Windows will be -DCMAKE_MAKE_PROGRAM=%ANDROID_NDK_HOME%\prebuilt\windows-x86_64\bin\make.exe -# -G is needed for building on Windows -# -DANDROID_ABI can also be armeabi-v7a for 32 bit -``` - -For building on Windows: - -```bash -cmake $SOURCE_DIR -DCMAKE_INSTALL_PREFIX="$(pwd)/install" -# The CMAKE_INSTALL_PREFIX part is for testing (explained later). -``` - -The CMake GUI also works for Windows (version 3.4.1 tested). - -Also, consider using `git config --global core.fileMode false` (or with `--local`) on Windows -to prevent the addition of execution permission on files. - -#### 4) Build and Install - -```bash -# for Linux: -make -j4 install - -# for Windows: -cmake --build . --config Release --target install -# "Release" (for --config) could also be "Debug", "MinSizeRel", or "RelWithDebInfo" -``` - -If using MSVC, after running CMake to configure, use the -Configuration Manager to check the `INSTALL` project. - -### Building (GN) - -glslang can also be built with the [GN build system](https://gn.googlesource.com/gn/). - -#### 1) Install `depot_tools` - -Download [depot_tools.zip](https://storage.googleapis.com/chrome-infra/depot_tools.zip), -extract to a directory, and add this directory to your `PATH`. - -#### 2) Synchronize dependencies and generate build files - -This only needs to be done once after updating `glslang`. - -With the current directory set to your `glslang` checkout, type: - -```bash -./update_glslang_sources.py -gclient sync --gclientfile=standalone.gclient -gn gen out/Default -``` - -#### 3) Build - -With the current directory set to your `glslang` checkout, type: - -```bash -cd out/Default -ninja -``` - -### If you need to change the GLSL grammar - -The grammar in `glslang/MachineIndependent/glslang.y` has to be recompiled with -bison if it changes, the output files are committed to the repo to avoid every -developer needing to have bison configured to compile the project when grammar -changes are quite infrequent. For windows you can get binaries from -[GnuWin32][bison-gnu-win32]. - -The command to rebuild is: - -```bash -m4 -P MachineIndependent/glslang.m4 > MachineIndependent/glslang.y -bison --defines=MachineIndependent/glslang_tab.cpp.h - -t MachineIndependent/glslang.y - -o MachineIndependent/glslang_tab.cpp -``` - -The above commands are also available in the bash script in `updateGrammar`, -when executed from the glslang subdirectory of the glslang repository. -With no arguments it builds the full grammar, and with a "web" argument, -the web grammar subset (see more about the web subset in the next section). - -### Building to WASM for the Web and Node -### Building a standalone JS/WASM library for the Web and Node - -Use the steps in [Build Steps](#build-steps), with the following notes/exceptions: -* `emsdk` needs to be present in your executable search path, *PATH* for - Bash-like environments: - + [Instructions located here](https://emscripten.org/docs/getting_started/downloads.html#sdk-download-and-install) -* Wrap cmake call: `emcmake cmake` -* Set `-DBUILD_TESTING=OFF -DENABLE_OPT=OFF -DINSTALL_GTEST=OFF`. -* Set `-DENABLE_HLSL=OFF` if HLSL is not needed. -* For a standalone JS/WASM library, turn on `-DENABLE_GLSLANG_JS=ON`. -* For building a minimum-size web subset of core glslang: - + turn on `-DENABLE_GLSLANG_WEBMIN=ON` (disables HLSL) - + execute `updateGrammar web` from the glslang subdirectory - (or if using your own scripts, `m4` needs a `-DGLSLANG_WEB` argument) - + optionally, for GLSL compilation error messages, turn on - `-DENABLE_GLSLANG_WEBMIN_DEVEL=ON` -* To get a fully minimized build, make sure to use `brotli` to compress the .js - and .wasm files - -Example: - -```sh -emcmake cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_GLSLANG_JS=ON \ - -DENABLE_HLSL=OFF -DBUILD_TESTING=OFF -DENABLE_OPT=OFF -DINSTALL_GTEST=OFF .. -``` - -## Building glslang - Using vcpkg - -You can download and install glslang using the [vcpkg](https://github.com/Microsoft/vcpkg) dependency manager: - - git clone https://github.com/Microsoft/vcpkg.git - cd vcpkg - ./bootstrap-vcpkg.sh - ./vcpkg integrate install - ./vcpkg install glslang - -The glslang port in vcpkg is kept up to date by Microsoft team members and community contributors. If the version is out of date, please [create an issue or pull request](https://github.com/Microsoft/vcpkg) on the vcpkg repository. - -## Testing - -Right now, there are two test harnesses existing in glslang: one is [Google -Test](gtests/), one is the [`runtests` script](Test/runtests). The former -runs unit tests and single-shader single-threaded integration tests, while -the latter runs multiple-shader linking tests and multi-threaded tests. - -### Running tests - -The [`runtests` script](Test/runtests) requires compiled binaries to be -installed into `$BUILD_DIR/install`. Please make sure you have supplied the -correct configuration to CMake (using `-DCMAKE_INSTALL_PREFIX`) when building; -otherwise, you may want to modify the path in the `runtests` script. - -Running Google Test-backed tests: - -```bash -cd $BUILD_DIR - -# for Linux: -ctest - -# for Windows: -ctest -C {Debug|Release|RelWithDebInfo|MinSizeRel} - -# or, run the test binary directly -# (which gives more fine-grained control like filtering): -/glslangtests -``` - -Running `runtests` script-backed tests: - -```bash -cd $SOURCE_DIR/Test && ./runtests -``` - -If some tests fail with validation errors, there may be a mismatch between the -version of `spirv-val` on the system and the version of glslang. In this -case, it is necessary to run `update_glslang_sources.py`. See "Check-Out -External Projects" above for more details. - -### Contributing tests - -Test results should always be included with a pull request that modifies -functionality. - -If you are writing unit tests, please use the Google Test framework and -place the tests under the `gtests/` directory. - -Integration tests are placed in the `Test/` directory. It contains test input -and a subdirectory `baseResults/` that contains the expected results of the -tests. Both the tests and `baseResults/` are under source-code control. - -Google Test runs those integration tests by reading the test input, compiling -them, and then compare against the expected results in `baseResults/`. The -integration tests to run via Google Test is registered in various -`gtests/*.FromFile.cpp` source files. `glslangtests` provides a command-line -option `--update-mode`, which, if supplied, will overwrite the golden files -under the `baseResults/` directory with real output from that invocation. -For more information, please check `gtests/` directory's -[README](gtests/README.md). - -For the `runtests` script, it will generate current results in the -`localResults/` directory and `diff` them against the `baseResults/`. -When you want to update the tracked test results, they need to be -copied from `localResults/` to `baseResults/`. This can be done by -the `bump` shell script. - -You can add your own private list of tests, not tracked publicly, by using -`localtestlist` to list non-tracked tests. This is automatically read -by `runtests` and included in the `diff` and `bump` process. - -## Programmatic Interfaces - -Another piece of software can programmatically translate shaders to an AST -using one of two different interfaces: -* A new C++ class-oriented interface, or -* The original C functional interface - -The `main()` in `StandAlone/StandAlone.cpp` shows examples using both styles. - -### C++ Class Interface (new, preferred) - -This interface is in roughly the last 1/3 of `ShaderLang.h`. It is in the -glslang namespace and contains the following, here with suggested calls -for generating SPIR-V: - -```cxx -const char* GetEsslVersionString(); -const char* GetGlslVersionString(); -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(...); - const char* getInfoLog(); - -class TProgram - void addShader(...); - bool link(...); - const char* getInfoLog(); - Reflection queries -``` - -For just validating (not generating code), substitute these calls: - -```cxx - setEnvInput(EShSourceHlsl or EShSourceGlsl, stage, EShClientNone, 0); - setEnvClient(EShClientNone, 0); - setEnvTarget(EShTargetNone, 0); -``` - -See `ShaderLang.h` and the usage of it in `StandAlone/StandAlone.cpp` for more -details. There is a block comment giving more detail above the calls for -`setEnvInput, setEnvClient, and setEnvTarget`. - -### C Functional Interface (original) - -This interface is in roughly the first 2/3 of `ShaderLang.h`, and referred to -as the `Sh*()` interface, as all the entry points start `Sh`. - -The `Sh*()` interface takes a "compiler" call-back object, which it calls after -building call back that is passed the AST and can then execute a back end on it. - -The following is a simplified resulting run-time call stack: - -```c -ShCompile(shader, compiler) -> compiler(AST) -> -``` - -In practice, `ShCompile()` takes shader strings, default version, and -warning/error and other options for controlling compilation. - -## Basic Internal Operation - -* Initial lexical analysis is done by the preprocessor in - `MachineIndependent/Preprocessor`, and then refined by a GLSL scanner - in `MachineIndependent/Scan.cpp`. There is currently no use of flex. - -* Code is parsed using bison on `MachineIndependent/glslang.y` with the - aid of a symbol table and an AST. The symbol table is not passed on to - the back-end; the intermediate representation stands on its own. - The tree is built by the grammar productions, many of which are - offloaded into `ParseHelper.cpp`, and by `Intermediate.cpp`. - -* The intermediate representation is very high-level, and represented - as an in-memory tree. This serves to lose no information from the - original program, and to have efficient transfer of the result from - parsing to the back-end. In the AST, constants are propagated and - folded, and a very small amount of dead code is eliminated. - - To aid linking and reflection, the last top-level branch in the AST - lists all global symbols. - -* The primary algorithm of the back-end compiler is to traverse the - tree (high-level intermediate representation), and create an internal - object code representation. There is an example of how to do this - in `MachineIndependent/intermOut.cpp`. - -* Reduction of the tree to a linear byte-code style low-level intermediate - representation is likely a good way to generate fully optimized code. - -* There is currently some dead old-style linker-type code still lying around. - -* Memory pool: parsing uses types derived from C++ `std` types, using a - custom allocator that puts them in a memory pool. This makes allocation - of individual container/contents just few cycles and deallocation free. - This pool is popped after the AST is made and processed. - - The use is simple: if you are going to call `new`, there are three cases: - - - the object comes from the pool (its base class has the macro - `POOL_ALLOCATOR_NEW_DELETE` in it) and you do not have to call `delete` - - - it is a `TString`, in which case call `NewPoolTString()`, which gets - it from the pool, and there is no corresponding `delete` - - - the object does not come from the pool, and you have to do normal - C++ memory management of what you `new` - -* Features can be protected by version/extension/stage/profile: - See the comment in `glslang/MachineIndependent/Versions.cpp`. - -[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/SPIRV/CInterface/spirv_c_interface.cpp b/deps/glslang/SPIRV/CInterface/spirv_c_interface.cpp deleted file mode 100644 index a0790f48..00000000 --- a/deps/glslang/SPIRV/CInterface/spirv_c_interface.cpp +++ /dev/null @@ -1,110 +0,0 @@ -/** - This code is based on the glslang_c_interface implementation by Viktor Latypov -**/ - -/** -BSD 2-Clause License - -Copyright (c) 2019, Viktor Latypov -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -2. 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. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (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 "glslang/Include/glslang_c_interface.h" - -#include "SPIRV/GlslangToSpv.h" -#include "SPIRV/Logger.h" -#include "SPIRV/SpvTools.h" - -typedef struct glslang_program_s { - glslang::TProgram* program; - std::vector spirv; - std::string loggerMessages; -} glslang_program_t; - -static EShLanguage c_shader_stage(glslang_stage_t stage) -{ - switch (stage) { - case GLSLANG_STAGE_VERTEX: - return EShLangVertex; - case GLSLANG_STAGE_TESSCONTROL: - return EShLangTessControl; - case GLSLANG_STAGE_TESSEVALUATION: - return EShLangTessEvaluation; - case GLSLANG_STAGE_GEOMETRY: - return EShLangGeometry; - case GLSLANG_STAGE_FRAGMENT: - return EShLangFragment; - case GLSLANG_STAGE_COMPUTE: - return EShLangCompute; - case GLSLANG_STAGE_RAYGEN_NV: - return EShLangRayGen; - case GLSLANG_STAGE_INTERSECT_NV: - return EShLangIntersect; - case GLSLANG_STAGE_ANYHIT_NV: - return EShLangAnyHit; - case GLSLANG_STAGE_CLOSESTHIT_NV: - return EShLangClosestHit; - case GLSLANG_STAGE_MISS_NV: - return EShLangMiss; - case GLSLANG_STAGE_CALLABLE_NV: - return EShLangCallable; - case GLSLANG_STAGE_TASK_NV: - return EShLangTaskNV; - case GLSLANG_STAGE_MESH_NV: - return EShLangMeshNV; - default: - break; - } - return EShLangCount; -} - -GLSLANG_EXPORT void glslang_program_SPIRV_generate(glslang_program_t* program, glslang_stage_t stage) -{ - spv::SpvBuildLogger logger; - glslang::SpvOptions spvOptions; - spvOptions.validate = true; - - const glslang::TIntermediate* intermediate = program->program->getIntermediate(c_shader_stage(stage)); - - glslang::GlslangToSpv(*intermediate, program->spirv, &logger, &spvOptions); - - program->loggerMessages = logger.getAllMessages(); -} - -GLSLANG_EXPORT size_t glslang_program_SPIRV_get_size(glslang_program_t* program) { return program->spirv.size(); } - -GLSLANG_EXPORT void glslang_program_SPIRV_get(glslang_program_t* program, unsigned int* out) -{ - memcpy(out, program->spirv.data(), program->spirv.size() * sizeof(unsigned int)); -} - -GLSLANG_EXPORT unsigned int* glslang_program_SPIRV_get_ptr(glslang_program_t* program) -{ - return program->spirv.data(); -} - -GLSLANG_EXPORT const char* glslang_program_SPIRV_get_messages(glslang_program_t* program) -{ - return program->loggerMessages.empty() ? nullptr : program->loggerMessages.c_str(); -} diff --git a/deps/glslang/SPIRV/CMakeLists.txt b/deps/glslang/SPIRV/CMakeLists.txt deleted file mode 100644 index 775466e0..00000000 --- a/deps/glslang/SPIRV/CMakeLists.txt +++ /dev/null @@ -1,139 +0,0 @@ -# Copyright (C) 2020 The Khronos Group 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 The Khronos Group 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. - -set(SOURCES - GlslangToSpv.cpp - InReadableOrder.cpp - Logger.cpp - SpvBuilder.cpp - SpvPostProcess.cpp - doc.cpp - SpvTools.cpp - disassemble.cpp - CInterface/spirv_c_interface.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 - SpvTools.h - disassemble.h - GLSL.ext.AMD.h - GLSL.ext.NV.h - NonSemanticDebugPrintf.h) - -set(SPVREMAP_HEADERS - SPVRemapper.h - doc.h) - -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 - $ - $) - -glslang_add_build_info_dependency(SPIRV) - -if (ENABLE_SPVREMAPPER) - 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) -endif() - -if(WIN32 AND BUILD_SHARED_LIBS) - set_target_properties(SPIRV PROPERTIES PREFIX "") - if (ENABLE_SPVREMAPPER) - set_target_properties(SPVRemapper PROPERTIES PREFIX "") - endif() -endif() - -if(ENABLE_OPT) - target_include_directories(SPIRV - PRIVATE ${spirv-tools_SOURCE_DIR}/include - PRIVATE ${spirv-tools_SOURCE_DIR}/source - ) - target_link_libraries(SPIRV PRIVATE MachineIndependent SPIRV-Tools-opt) - target_include_directories(SPIRV PUBLIC - $ - $) -else() - target_link_libraries(SPIRV PRIVATE MachineIndependent) -endif() - -if(WIN32) - source_group("Source" FILES ${SOURCES} ${HEADERS}) - source_group("Source" FILES ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS}) -endif() - -if(ENABLE_GLSLANG_INSTALL) - if(BUILD_SHARED_LIBS) - if (ENABLE_SPVREMAPPER) - install(TARGETS SPVRemapper EXPORT SPVRemapperTargets - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) - endif() - install(TARGETS SPIRV EXPORT SPIRVTargets - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) - else() - if (ENABLE_SPVREMAPPER) - install(TARGETS SPVRemapper EXPORT SPVRemapperTargets - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) - endif() - install(TARGETS SPIRV EXPORT SPIRVTargets - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) - endif() - - if (ENABLE_SPVREMAPPER) - install(EXPORT SPVRemapperTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) - endif() - - install(EXPORT SPIRVTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) - - install(FILES ${HEADERS} ${SPVREMAP_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/glslang/SPIRV/) -endif() diff --git a/deps/glslang/SPIRV/GLSL.ext.AMD.h b/deps/glslang/SPIRV/GLSL.ext.AMD.h deleted file mode 100644 index 009d2f1c..00000000 --- a/deps/glslang/SPIRV/GLSL.ext.AMD.h +++ /dev/null @@ -1,108 +0,0 @@ -/* -** Copyright (c) 2014-2016 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a copy -** of this software and/or associated documentation files (the "Materials"), -** to deal in the Materials without restriction, including without limitation -** the rights to use, copy, modify, merge, publish, distribute, sublicense, -** and/or sell copies of the Materials, and to permit persons to whom the -** Materials are furnished to do so, subject to the following conditions: -** -** The above copyright notice and this permission notice shall be included in -** all copies or substantial portions of the Materials. -** -** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS -** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND -** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS -** IN THE MATERIALS. -*/ - -#ifndef GLSLextAMD_H -#define GLSLextAMD_H - -static const int GLSLextAMDVersion = 100; -static const int GLSLextAMDRevision = 7; - -// SPV_AMD_shader_ballot -static const char* const E_SPV_AMD_shader_ballot = "SPV_AMD_shader_ballot"; - -enum ShaderBallotAMD { - ShaderBallotBadAMD = 0, // Don't use - - SwizzleInvocationsAMD = 1, - SwizzleInvocationsMaskedAMD = 2, - WriteInvocationAMD = 3, - MbcntAMD = 4, - - ShaderBallotCountAMD -}; - -// SPV_AMD_shader_trinary_minmax -static const char* const E_SPV_AMD_shader_trinary_minmax = "SPV_AMD_shader_trinary_minmax"; - -enum ShaderTrinaryMinMaxAMD { - ShaderTrinaryMinMaxBadAMD = 0, // Don't use - - FMin3AMD = 1, - UMin3AMD = 2, - SMin3AMD = 3, - FMax3AMD = 4, - UMax3AMD = 5, - SMax3AMD = 6, - FMid3AMD = 7, - UMid3AMD = 8, - SMid3AMD = 9, - - ShaderTrinaryMinMaxCountAMD -}; - -// SPV_AMD_shader_explicit_vertex_parameter -static const char* const E_SPV_AMD_shader_explicit_vertex_parameter = "SPV_AMD_shader_explicit_vertex_parameter"; - -enum ShaderExplicitVertexParameterAMD { - ShaderExplicitVertexParameterBadAMD = 0, // Don't use - - InterpolateAtVertexAMD = 1, - - ShaderExplicitVertexParameterCountAMD -}; - -// SPV_AMD_gcn_shader -static const char* const E_SPV_AMD_gcn_shader = "SPV_AMD_gcn_shader"; - -enum GcnShaderAMD { - GcnShaderBadAMD = 0, // Don't use - - CubeFaceIndexAMD = 1, - CubeFaceCoordAMD = 2, - TimeAMD = 3, - - GcnShaderCountAMD -}; - -// 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/SPIRV/GLSL.ext.EXT.h b/deps/glslang/SPIRV/GLSL.ext.EXT.h deleted file mode 100644 index f48f1304..00000000 --- a/deps/glslang/SPIRV/GLSL.ext.EXT.h +++ /dev/null @@ -1,43 +0,0 @@ -/* -** Copyright (c) 2014-2016 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a copy -** of this software and/or associated documentation files (the "Materials"), -** to deal in the Materials without restriction, including without limitation -** the rights to use, copy, modify, merge, publish, distribute, sublicense, -** and/or sell copies of the Materials, and to permit persons to whom the -** Materials are furnished to do so, subject to the following conditions: -** -** The above copyright notice and this permission notice shall be included in -** all copies or substantial portions of the Materials. -** -** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS -** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND -** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS -** IN THE MATERIALS. -*/ - -#ifndef GLSLextEXT_H -#define GLSLextEXT_H - -static const int GLSLextEXTVersion = 100; -static const int GLSLextEXTRevision = 2; - -static const char* const E_SPV_EXT_shader_stencil_export = "SPV_EXT_shader_stencil_export"; -static const char* const E_SPV_EXT_shader_viewport_index_layer = "SPV_EXT_shader_viewport_index_layer"; -static const char* const E_SPV_EXT_fragment_fully_covered = "SPV_EXT_fragment_fully_covered"; -static const char* const E_SPV_EXT_fragment_invocation_density = "SPV_EXT_fragment_invocation_density"; -static const char* const E_SPV_EXT_demote_to_helper_invocation = "SPV_EXT_demote_to_helper_invocation"; -static const char* const E_SPV_EXT_shader_atomic_float_add = "SPV_EXT_shader_atomic_float_add"; -static const char* const E_SPV_EXT_shader_atomic_float16_add = "SPV_EXT_shader_atomic_float16_add"; -static const char* const E_SPV_EXT_shader_atomic_float_min_max = "SPV_EXT_shader_atomic_float_min_max"; -static const char* const E_SPV_EXT_shader_image_int64 = "SPV_EXT_shader_image_int64"; - -#endif // #ifndef GLSLextEXT_H diff --git a/deps/glslang/SPIRV/GLSL.ext.KHR.h b/deps/glslang/SPIRV/GLSL.ext.KHR.h deleted file mode 100644 index 5eb3e944..00000000 --- a/deps/glslang/SPIRV/GLSL.ext.KHR.h +++ /dev/null @@ -1,56 +0,0 @@ -/* -** Copyright (c) 2014-2020 The Khronos Group Inc. -** Modifications Copyright (C) 2020 Advanced Micro Devices, Inc. All rights reserved. -** -** Permission is hereby granted, free of charge, to any person obtaining a copy -** of this software and/or associated documentation files (the "Materials"), -** to deal in the Materials without restriction, including without limitation -** the rights to use, copy, modify, merge, publish, distribute, sublicense, -** and/or sell copies of the Materials, and to permit persons to whom the -** Materials are furnished to do so, subject to the following conditions: -** -** The above copyright notice and this permission notice shall be included in -** all copies or substantial portions of the Materials. -** -** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS -** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND -** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS -** IN THE MATERIALS. -*/ - -#ifndef GLSLextKHR_H -#define GLSLextKHR_H - -static const int GLSLextKHRVersion = 100; -static const int GLSLextKHRRevision = 2; - -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_8bit_storage = "SPV_KHR_8bit_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"; -static const char* const E_SPV_KHR_vulkan_memory_model = "SPV_KHR_vulkan_memory_model"; -static const char* const E_SPV_EXT_physical_storage_buffer = "SPV_EXT_physical_storage_buffer"; -static const char* const E_SPV_KHR_physical_storage_buffer = "SPV_KHR_physical_storage_buffer"; -static const char* const E_SPV_EXT_fragment_shader_interlock = "SPV_EXT_fragment_shader_interlock"; -static const char* const E_SPV_KHR_shader_clock = "SPV_KHR_shader_clock"; -static const char* const E_SPV_KHR_non_semantic_info = "SPV_KHR_non_semantic_info"; -static const char* const E_SPV_KHR_ray_tracing = "SPV_KHR_ray_tracing"; -static const char* const E_SPV_KHR_ray_query = "SPV_KHR_ray_query"; -static const char* const E_SPV_KHR_fragment_shading_rate = "SPV_KHR_fragment_shading_rate"; -static const char* const E_SPV_KHR_terminate_invocation = "SPV_KHR_terminate_invocation"; -static const char* const E_SPV_KHR_workgroup_memory_explicit_layout = "SPV_KHR_workgroup_memory_explicit_layout"; -static const char* const E_SPV_KHR_subgroup_uniform_control_flow = "SPV_KHR_subgroup_uniform_control_flow"; - -#endif // #ifndef GLSLextKHR_H diff --git a/deps/glslang/SPIRV/GLSL.ext.NV.h b/deps/glslang/SPIRV/GLSL.ext.NV.h deleted file mode 100644 index 93c98bf6..00000000 --- a/deps/glslang/SPIRV/GLSL.ext.NV.h +++ /dev/null @@ -1,84 +0,0 @@ -/* -** Copyright (c) 2014-2017 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a copy -** of this software and/or associated documentation files (the "Materials"), -** to deal in the Materials without restriction, including without limitation -** the rights to use, copy, modify, merge, publish, distribute, sublicense, -** and/or sell copies of the Materials, and to permit persons to whom the -** Materials are furnished to do so, subject to the following conditions: -** -** The above copyright notice and this permission notice shall be included in -** all copies or substantial portions of the Materials. -** -** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS -** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND -** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS -** IN THE MATERIALS. -*/ - -#ifndef GLSLextNV_H -#define GLSLextNV_H - -enum BuiltIn; -enum Decoration; -enum Op; -enum Capability; - -static const int GLSLextNVVersion = 100; -static const int GLSLextNVRevision = 11; - -//SPV_NV_sample_mask_override_coverage -const char* const E_SPV_NV_sample_mask_override_coverage = "SPV_NV_sample_mask_override_coverage"; - -//SPV_NV_geometry_shader_passthrough -const char* const E_SPV_NV_geometry_shader_passthrough = "SPV_NV_geometry_shader_passthrough"; - -//SPV_NV_viewport_array2 -const char* const E_SPV_NV_viewport_array2 = "SPV_NV_viewport_array2"; -const char* const E_ARB_shader_viewport_layer_array = "SPV_ARB_shader_viewport_layer_array"; - -//SPV_NV_stereo_view_rendering -const char* const E_SPV_NV_stereo_view_rendering = "SPV_NV_stereo_view_rendering"; - -//SPV_NVX_multiview_per_view_attributes -const char* const E_SPV_NVX_multiview_per_view_attributes = "SPV_NVX_multiview_per_view_attributes"; - -//SPV_NV_shader_subgroup_partitioned -const char* const E_SPV_NV_shader_subgroup_partitioned = "SPV_NV_shader_subgroup_partitioned"; - -//SPV_NV_fragment_shader_barycentric -const char* const E_SPV_NV_fragment_shader_barycentric = "SPV_NV_fragment_shader_barycentric"; - -//SPV_NV_compute_shader_derivatives -const char* const E_SPV_NV_compute_shader_derivatives = "SPV_NV_compute_shader_derivatives"; - -//SPV_NV_shader_image_footprint -const char* const E_SPV_NV_shader_image_footprint = "SPV_NV_shader_image_footprint"; - -//SPV_NV_mesh_shader -const char* const E_SPV_NV_mesh_shader = "SPV_NV_mesh_shader"; - -//SPV_NV_raytracing -const char* const E_SPV_NV_ray_tracing = "SPV_NV_ray_tracing"; - -//SPV_NV_ray_tracing_motion_blur -const char* const E_SPV_NV_ray_tracing_motion_blur = "SPV_NV_ray_tracing_motion_blur"; - -//SPV_NV_shading_rate -const char* const E_SPV_NV_shading_rate = "SPV_NV_shading_rate"; - -//SPV_NV_cooperative_matrix -const char* const E_SPV_NV_cooperative_matrix = "SPV_NV_cooperative_matrix"; - -//SPV_NV_shader_sm_builtins -const char* const E_SPV_NV_shader_sm_builtins = "SPV_NV_shader_sm_builtins"; - -#endif // #ifndef GLSLextNV_H diff --git a/deps/glslang/SPIRV/GLSL.std.450.h b/deps/glslang/SPIRV/GLSL.std.450.h deleted file mode 100644 index df31092b..00000000 --- a/deps/glslang/SPIRV/GLSL.std.450.h +++ /dev/null @@ -1,131 +0,0 @@ -/* -** Copyright (c) 2014-2016 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a copy -** of this software and/or associated documentation files (the "Materials"), -** to deal in the Materials without restriction, including without limitation -** the rights to use, copy, modify, merge, publish, distribute, sublicense, -** and/or sell copies of the Materials, and to permit persons to whom the -** Materials are furnished to do so, subject to the following conditions: -** -** The above copyright notice and this permission notice shall be included in -** all copies or substantial portions of the Materials. -** -** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS -** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND -** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS -** IN THE MATERIALS. -*/ - -#ifndef GLSLstd450_H -#define GLSLstd450_H - -static const int GLSLstd450Version = 100; -static const int GLSLstd450Revision = 1; - -enum GLSLstd450 { - GLSLstd450Bad = 0, // Don't use - - GLSLstd450Round = 1, - GLSLstd450RoundEven = 2, - GLSLstd450Trunc = 3, - GLSLstd450FAbs = 4, - GLSLstd450SAbs = 5, - GLSLstd450FSign = 6, - GLSLstd450SSign = 7, - GLSLstd450Floor = 8, - GLSLstd450Ceil = 9, - GLSLstd450Fract = 10, - - GLSLstd450Radians = 11, - GLSLstd450Degrees = 12, - GLSLstd450Sin = 13, - GLSLstd450Cos = 14, - GLSLstd450Tan = 15, - GLSLstd450Asin = 16, - GLSLstd450Acos = 17, - GLSLstd450Atan = 18, - GLSLstd450Sinh = 19, - GLSLstd450Cosh = 20, - GLSLstd450Tanh = 21, - GLSLstd450Asinh = 22, - GLSLstd450Acosh = 23, - GLSLstd450Atanh = 24, - GLSLstd450Atan2 = 25, - - GLSLstd450Pow = 26, - GLSLstd450Exp = 27, - GLSLstd450Log = 28, - GLSLstd450Exp2 = 29, - GLSLstd450Log2 = 30, - GLSLstd450Sqrt = 31, - GLSLstd450InverseSqrt = 32, - - GLSLstd450Determinant = 33, - GLSLstd450MatrixInverse = 34, - - GLSLstd450Modf = 35, // second operand needs an OpVariable to write to - GLSLstd450ModfStruct = 36, // no OpVariable operand - GLSLstd450FMin = 37, - GLSLstd450UMin = 38, - GLSLstd450SMin = 39, - GLSLstd450FMax = 40, - GLSLstd450UMax = 41, - GLSLstd450SMax = 42, - GLSLstd450FClamp = 43, - GLSLstd450UClamp = 44, - GLSLstd450SClamp = 45, - GLSLstd450FMix = 46, - GLSLstd450IMix = 47, // Reserved - GLSLstd450Step = 48, - GLSLstd450SmoothStep = 49, - - GLSLstd450Fma = 50, - GLSLstd450Frexp = 51, // second operand needs an OpVariable to write to - GLSLstd450FrexpStruct = 52, // no OpVariable operand - GLSLstd450Ldexp = 53, - - GLSLstd450PackSnorm4x8 = 54, - GLSLstd450PackUnorm4x8 = 55, - GLSLstd450PackSnorm2x16 = 56, - GLSLstd450PackUnorm2x16 = 57, - GLSLstd450PackHalf2x16 = 58, - GLSLstd450PackDouble2x32 = 59, - GLSLstd450UnpackSnorm2x16 = 60, - GLSLstd450UnpackUnorm2x16 = 61, - GLSLstd450UnpackHalf2x16 = 62, - GLSLstd450UnpackSnorm4x8 = 63, - GLSLstd450UnpackUnorm4x8 = 64, - GLSLstd450UnpackDouble2x32 = 65, - - GLSLstd450Length = 66, - GLSLstd450Distance = 67, - GLSLstd450Cross = 68, - GLSLstd450Normalize = 69, - GLSLstd450FaceForward = 70, - GLSLstd450Reflect = 71, - GLSLstd450Refract = 72, - - GLSLstd450FindILsb = 73, - GLSLstd450FindSMsb = 74, - GLSLstd450FindUMsb = 75, - - GLSLstd450InterpolateAtCentroid = 76, - GLSLstd450InterpolateAtSample = 77, - GLSLstd450InterpolateAtOffset = 78, - - GLSLstd450NMin = 79, - GLSLstd450NMax = 80, - GLSLstd450NClamp = 81, - - GLSLstd450Count -}; - -#endif // #ifndef GLSLstd450_H diff --git a/deps/glslang/SPIRV/GlslangToSpv.cpp b/deps/glslang/SPIRV/GlslangToSpv.cpp deleted file mode 100644 index 6cdf2346..00000000 --- a/deps/glslang/SPIRV/GlslangToSpv.cpp +++ /dev/null @@ -1,9463 +0,0 @@ -// -// Copyright (C) 2014-2016 LunarG, Inc. -// Copyright (C) 2015-2020 Google, Inc. -// Copyright (C) 2017 ARM Limited. -// Modifications Copyright (C) 2020 Advanced Micro Devices, 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: -// -// 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. - -// -// Visit the nodes in the glslang intermediate tree representation to -// translate them to SPIR-V. -// - -#include "spirv.hpp" -#include "GlslangToSpv.h" -#include "SpvBuilder.h" -namespace spv { - #include "GLSL.std.450.h" - #include "GLSL.ext.KHR.h" - #include "GLSL.ext.EXT.h" - #include "GLSL.ext.AMD.h" - #include "GLSL.ext.NV.h" - #include "NonSemanticDebugPrintf.h" -} - -// Glslang includes -#include "../glslang/MachineIndependent/localintermediate.h" -#include "../glslang/MachineIndependent/SymbolTable.h" -#include "../glslang/Include/Common.h" - -// Build-time generated includes -#include "glslang/build_info.h" - -#include -#include -#include -#include -#include -#include -#include - -namespace { - -namespace { -class SpecConstantOpModeGuard { -public: - SpecConstantOpModeGuard(spv::Builder* builder) - : builder_(builder) { - previous_flag_ = builder->isInSpecConstCodeGenMode(); - } - ~SpecConstantOpModeGuard() { - previous_flag_ ? builder_->setToSpecConstCodeGenMode() - : builder_->setToNormalCodeGenMode(); - } - void turnOnSpecConstantOpMode() { - builder_->setToSpecConstCodeGenMode(); - } - -private: - spv::Builder* builder_; - bool previous_flag_; -}; - -struct OpDecorations { - public: - OpDecorations(spv::Decoration precision, spv::Decoration noContraction, spv::Decoration nonUniform) : - precision(precision) -#ifndef GLSLANG_WEB - , - noContraction(noContraction), - nonUniform(nonUniform) -#endif - { } - - spv::Decoration precision; - -#ifdef GLSLANG_WEB - void addNoContraction(spv::Builder&, spv::Id) const { } - void addNonUniform(spv::Builder&, spv::Id) const { } -#else - void addNoContraction(spv::Builder& builder, spv::Id t) { builder.addDecoration(t, noContraction); } - void addNonUniform(spv::Builder& builder, spv::Id t) { builder.addDecoration(t, nonUniform); } - protected: - spv::Decoration noContraction; - spv::Decoration nonUniform; -#endif - -}; - -} // namespace - -// -// The main holder of information for translating glslang to SPIR-V. -// -// Derives from the AST walking base class. -// -class TGlslangToSpvTraverser : public glslang::TIntermTraverser { -public: - TGlslangToSpvTraverser(unsigned int spvVersion, const glslang::TIntermediate*, spv::SpvBuildLogger* logger, - glslang::SpvOptions& options); - virtual ~TGlslangToSpvTraverser() { } - - bool visitAggregate(glslang::TVisit, glslang::TIntermAggregate*); - bool visitBinary(glslang::TVisit, glslang::TIntermBinary*); - void visitConstantUnion(glslang::TIntermConstantUnion*); - bool visitSelection(glslang::TVisit, glslang::TIntermSelection*); - bool visitSwitch(glslang::TVisit, glslang::TIntermSwitch*); - void visitSymbol(glslang::TIntermSymbol* symbol); - bool visitUnary(glslang::TVisit, glslang::TIntermUnary*); - bool visitLoop(glslang::TVisit, glslang::TIntermLoop*); - bool visitBranch(glslang::TVisit visit, glslang::TIntermBranch*); - - void finishSpv(); - 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::Decoration TranslateNonUniformDecoration(const spv::Builder::AccessChain::CoherentFlags& coherentFlags); - spv::Builder::AccessChain::CoherentFlags TranslateCoherent(const glslang::TType& type); - spv::MemoryAccessMask TranslateMemoryAccess(const spv::Builder::AccessChain::CoherentFlags &coherentFlags); - spv::ImageOperandsMask TranslateImageOperands(const spv::Builder::AccessChain::CoherentFlags &coherentFlags); - spv::Scope TranslateMemoryScope(const spv::Builder::AccessChain::CoherentFlags &coherentFlags); - 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&, std::vector& operands) const; - spv::StorageClass TranslateStorageClass(const glslang::TType&); - void TranslateLiterals(const glslang::TVector&, std::vector&) const; - void addIndirectionIndexCapabilities(const glslang::TType& baseType, const glslang::TType& indexType); - spv::Id createSpvVariable(const glslang::TIntermSymbol*, spv::Id forcedType); - 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, bool forwardReferenceOnly = false); - spv::Id convertGlslangToSpvType(const glslang::TType& type, glslang::TLayoutPacking, const glslang::TQualifier&, - bool lastBufferBlockMember, bool forwardReferenceOnly = false); - 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, - const glslang::TQualifier&, spv::Id); - spv::Id makeArraySizeId(const glslang::TArraySizes&, int dim); - spv::Id accessChainLoad(const glslang::TType& type); - void accessChainStore(const glslang::TType& type, spv::Id rvalue); - void multiTypeStore(const glslang::TType&, spv::Id rValue); - spv::Id convertLoadedBoolInUniformToUint(const glslang::TType& type, spv::Id nominalTypeId, spv::Id loadedId); - 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 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 collectRayTracingLinkerObjects(); - void visitFunctions(const glslang::TIntermSequence&); - void handleFunctionEntry(const glslang::TIntermAggregate* node); - void translateArguments(const glslang::TIntermAggregate& node, std::vector& arguments, - spv::Builder::AccessChain::CoherentFlags &lvalueCoherentFlags); - void translateArguments(glslang::TIntermUnary& node, std::vector& arguments); - 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, - const spv::Builder::AccessChain::CoherentFlags &lvalueCoherentFlags); - 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, - const spv::Builder::AccessChain::CoherentFlags &lvalueCoherentFlags); - 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 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 addMeshNVDecoration(spv::Id id, int member, const glslang::TQualifier & qualifier); - 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); - spv::Id getExtBuiltins(const char* name); - std::pair getForcedType(glslang::TBuiltInVariable builtIn, const glslang::TType&); - spv::Id translateForcedType(spv::Id object); - spv::Id createCompositeConstruct(spv::Id typeId, std::vector constituents); - - glslang::SpvOptions& options; - spv::Function* shaderEntry; - spv::Function* currentFunction; - spv::Instruction* entryPoint; - int sequenceDepth; - - spv::SpvBuildLogger* logger; - - // There is a 1:1 mapping between a spv builder and a module; this is thread safe - spv::Builder builder; - bool inEntryPoint; - bool entryPointTerminated; - bool linkageOnly; // true when visiting the set of objects in the AST present only for - // establishing interface, whether or not they were statically used - std::set iOSet; // all input/output variables from either static use or declaration of interface - const glslang::TIntermediate* glslangIntermediate; - bool nanMinMaxClamp; // true if use NMin/NMax/NClamp instead of FMin/FMax/FClamp - spv::Id stdBuiltins; - spv::Id nonSemanticDebugPrintf; - std::unordered_map extBuiltinMap; - - std::unordered_map symbolValues; - 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; - // for mapping glslang symbol struct to symbol Id - std::unordered_map glslangTypeToIdMap; - std::stack breakForLoop; // false means break for switch - std::unordered_map counterOriginator; - // Map pointee types for EbtReference to their forward pointers - std::map forwardPointers; - // Type forcing, for when SPIR-V wants a different type than the AST, - // requiring local translation to and from SPIR-V type on every access. - // Maps AST-required-type-id> - std::unordered_map forceType; - - // Used later for generating OpTraceKHR/OpExecuteCallableKHR - std::unordered_map locationToSymbol[2]; -}; - -// -// Helper functions for translating glslang representations to SPIR-V enumerants. -// - -// Translate glslang profile to SPIR-V source language. -spv::SourceLanguage TranslateSourceLanguage(glslang::EShSource source, EProfile profile) -{ -#ifdef GLSLANG_WEB - return spv::SourceLanguageESSL; -#elif defined(GLSLANG_ANGLE) - return spv::SourceLanguageGLSL; -#endif - - switch (source) { - case glslang::EShSourceGlsl: - switch (profile) { - case ENoProfile: - case ECoreProfile: - case ECompatibilityProfile: - return spv::SourceLanguageGLSL; - case EEsProfile: - return spv::SourceLanguageESSL; - default: - return spv::SourceLanguageUnknown; - } - case glslang::EShSourceHlsl: - return spv::SourceLanguageHLSL; - default: - return spv::SourceLanguageUnknown; - } -} - -// Translate glslang language (stage) to SPIR-V execution model. -spv::ExecutionModel TranslateExecutionModel(EShLanguage stage) -{ - switch (stage) { - case EShLangVertex: return spv::ExecutionModelVertex; - case EShLangFragment: return spv::ExecutionModelFragment; - case EShLangCompute: return spv::ExecutionModelGLCompute; -#ifndef GLSLANG_WEB - case EShLangTessControl: return spv::ExecutionModelTessellationControl; - case EShLangTessEvaluation: return spv::ExecutionModelTessellationEvaluation; - case EShLangGeometry: return spv::ExecutionModelGeometry; - case EShLangRayGen: return spv::ExecutionModelRayGenerationKHR; - case EShLangIntersect: return spv::ExecutionModelIntersectionKHR; - case EShLangAnyHit: return spv::ExecutionModelAnyHitKHR; - case EShLangClosestHit: return spv::ExecutionModelClosestHitKHR; - case EShLangMiss: return spv::ExecutionModelMissKHR; - case EShLangCallable: return spv::ExecutionModelCallableKHR; - case EShLangTaskNV: return spv::ExecutionModelTaskNV; - case EShLangMeshNV: return spv::ExecutionModelMeshNV; -#endif - default: - assert(0); - return spv::ExecutionModelFragment; - } -} - -// Translate glslang sampler type to SPIR-V dimensionality. -spv::Dim TranslateDimensionality(const glslang::TSampler& sampler) -{ - switch (sampler.dim) { - case glslang::Esd1D: return spv::Dim1D; - case glslang::Esd2D: return spv::Dim2D; - case glslang::Esd3D: return spv::Dim3D; - case glslang::EsdCube: return spv::DimCube; - case glslang::EsdRect: return spv::DimRect; - case glslang::EsdBuffer: return spv::DimBuffer; - case glslang::EsdSubpass: return spv::DimSubpassData; - default: - assert(0); - return spv::Dim2D; - } -} - -// Translate glslang precision to SPIR-V precision decorations. -spv::Decoration TranslatePrecisionDecoration(glslang::TPrecisionQualifier glslangPrecision) -{ - switch (glslangPrecision) { - case glslang::EpqLow: return spv::DecorationRelaxedPrecision; - case glslang::EpqMedium: return spv::DecorationRelaxedPrecision; - default: - return spv::NoPrecision; - } -} - -// Translate glslang type to SPIR-V precision decorations. -spv::Decoration TranslatePrecisionDecoration(const glslang::TType& type) -{ - return TranslatePrecisionDecoration(type.getQualifier().precision); -} - -// Translate glslang type to SPIR-V block decorations. -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 useStorageBuffer ? spv::DecorationBlock : spv::DecorationBufferBlock; - case glslang::EvqVaryingIn: return spv::DecorationBlock; - case glslang::EvqVaryingOut: return spv::DecorationBlock; - case glslang::EvqShared: return spv::DecorationBlock; -#ifndef GLSLANG_WEB - case glslang::EvqPayload: return spv::DecorationBlock; - case glslang::EvqPayloadIn: return spv::DecorationBlock; - case glslang::EvqHitAttr: return spv::DecorationBlock; - case glslang::EvqCallableData: return spv::DecorationBlock; - case glslang::EvqCallableDataIn: return spv::DecorationBlock; -#endif - default: - assert(0); - break; - } - } - - return spv::DecorationMax; -} - -// Translate glslang type to SPIR-V memory decorations. -void TranslateMemoryDecoration(const glslang::TQualifier& qualifier, std::vector& memory, - bool useVulkanMemoryModel) -{ - if (!useVulkanMemoryModel) { - if (qualifier.isCoherent()) - memory.push_back(spv::DecorationCoherent); - if (qualifier.isVolatile()) { - memory.push_back(spv::DecorationVolatile); - memory.push_back(spv::DecorationCoherent); - } - } - if (qualifier.isRestrict()) - memory.push_back(spv::DecorationRestrict); - if (qualifier.isReadOnly()) - memory.push_back(spv::DecorationNonWritable); - if (qualifier.isWriteOnly()) - memory.push_back(spv::DecorationNonReadable); -} - -// Translate glslang type to SPIR-V layout decorations. -spv::Decoration TranslateLayoutDecoration(const glslang::TType& type, glslang::TLayoutMatrix matrixLayout) -{ - if (type.isMatrix()) { - switch (matrixLayout) { - case glslang::ElmRowMajor: - return spv::DecorationRowMajor; - case glslang::ElmColumnMajor: - return spv::DecorationColMajor; - default: - // opaque layouts don't need a majorness - return spv::DecorationMax; - } - } else { - switch (type.getBasicType()) { - default: - return spv::DecorationMax; - break; - case glslang::EbtBlock: - switch (type.getQualifier().storage) { - case glslang::EvqShared: - case glslang::EvqUniform: - case glslang::EvqBuffer: - switch (type.getQualifier().layoutPacking) { - case glslang::ElpShared: return spv::DecorationGLSLShared; - case glslang::ElpPacked: return spv::DecorationGLSLPacked; - default: - return spv::DecorationMax; - } - case glslang::EvqVaryingIn: - case glslang::EvqVaryingOut: - if (type.getQualifier().isTaskMemory()) { - switch (type.getQualifier().layoutPacking) { - case glslang::ElpShared: return spv::DecorationGLSLShared; - case glslang::ElpPacked: return spv::DecorationGLSLPacked; - default: break; - } - } else { - assert(type.getQualifier().layoutPacking == glslang::ElpNone); - } - return spv::DecorationMax; -#ifndef GLSLANG_WEB - case glslang::EvqPayload: - case glslang::EvqPayloadIn: - case glslang::EvqHitAttr: - case glslang::EvqCallableData: - case glslang::EvqCallableDataIn: - return spv::DecorationMax; -#endif - default: - assert(0); - return spv::DecorationMax; - } - } - } -} - -// Translate glslang type to SPIR-V interpolation decorations. -// Returns spv::DecorationMax when no decoration -// should be applied. -spv::Decoration TGlslangToSpvTraverser::TranslateInterpolationDecoration(const glslang::TQualifier& qualifier) -{ - if (qualifier.smooth) - // Smooth decoration doesn't exist in SPIR-V 1.0 - return spv::DecorationMax; - else if (qualifier.isNonPerspective()) - return spv::DecorationNoPerspective; - else if (qualifier.flat) - return spv::DecorationFlat; - else if (qualifier.isExplicitInterpolation()) { - builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter); - return spv::DecorationExplicitInterpAMD; - } - else - return spv::DecorationMax; -} - -// Translate glslang type to SPIR-V auxiliary storage decorations. -// Returns spv::DecorationMax when no decoration -// should be applied. -spv::Decoration TGlslangToSpvTraverser::TranslateAuxiliaryStorageDecoration(const glslang::TQualifier& qualifier) -{ - if (qualifier.centroid) - return spv::DecorationCentroid; -#ifndef GLSLANG_WEB - else if (qualifier.patch) - return spv::DecorationPatch; - else if (qualifier.sample) { - builder.addCapability(spv::CapabilitySampleRateShading); - return spv::DecorationSample; - } -#endif - - return spv::DecorationMax; -} - -// If glslang type is invariant, return SPIR-V invariant decoration. -spv::Decoration TranslateInvariantDecoration(const glslang::TQualifier& qualifier) -{ - if (qualifier.invariant) - return spv::DecorationInvariant; - else - return spv::DecorationMax; -} - -// If glslang type is noContraction, return SPIR-V NoContraction decoration. -spv::Decoration TranslateNoContractionDecoration(const glslang::TQualifier& qualifier) -{ -#ifndef GLSLANG_WEB - if (qualifier.isNoContraction()) - return spv::DecorationNoContraction; - else -#endif - return spv::DecorationMax; -} - -// If glslang type is nonUniform, return SPIR-V NonUniform decoration. -spv::Decoration TGlslangToSpvTraverser::TranslateNonUniformDecoration(const glslang::TQualifier& qualifier) -{ -#ifndef GLSLANG_WEB - if (qualifier.isNonUniform()) { - builder.addIncorporatedExtension("SPV_EXT_descriptor_indexing", spv::Spv_1_5); - builder.addCapability(spv::CapabilityShaderNonUniformEXT); - return spv::DecorationNonUniformEXT; - } else -#endif - return spv::DecorationMax; -} - -// If lvalue flags contains nonUniform, return SPIR-V NonUniform decoration. -spv::Decoration TGlslangToSpvTraverser::TranslateNonUniformDecoration( - const spv::Builder::AccessChain::CoherentFlags& coherentFlags) -{ -#ifndef GLSLANG_WEB - if (coherentFlags.isNonUniform()) { - builder.addIncorporatedExtension("SPV_EXT_descriptor_indexing", spv::Spv_1_5); - builder.addCapability(spv::CapabilityShaderNonUniformEXT); - return spv::DecorationNonUniformEXT; - } else -#endif - return spv::DecorationMax; -} - -spv::MemoryAccessMask TGlslangToSpvTraverser::TranslateMemoryAccess( - const spv::Builder::AccessChain::CoherentFlags &coherentFlags) -{ - spv::MemoryAccessMask mask = spv::MemoryAccessMaskNone; - -#ifndef GLSLANG_WEB - if (!glslangIntermediate->usingVulkanMemoryModel() || coherentFlags.isImage) - return mask; - - if (coherentFlags.isVolatile() || coherentFlags.anyCoherent()) { - mask = mask | spv::MemoryAccessMakePointerAvailableKHRMask | - spv::MemoryAccessMakePointerVisibleKHRMask; - } - - if (coherentFlags.nonprivate) { - mask = mask | spv::MemoryAccessNonPrivatePointerKHRMask; - } - if (coherentFlags.volatil) { - mask = mask | spv::MemoryAccessVolatileMask; - } - if (mask != spv::MemoryAccessMaskNone) { - builder.addCapability(spv::CapabilityVulkanMemoryModelKHR); - } -#endif - - return mask; -} - -spv::ImageOperandsMask TGlslangToSpvTraverser::TranslateImageOperands( - const spv::Builder::AccessChain::CoherentFlags &coherentFlags) -{ - spv::ImageOperandsMask mask = spv::ImageOperandsMaskNone; - -#ifndef GLSLANG_WEB - if (!glslangIntermediate->usingVulkanMemoryModel()) - return mask; - - if (coherentFlags.volatil || - coherentFlags.anyCoherent()) { - mask = mask | spv::ImageOperandsMakeTexelAvailableKHRMask | - spv::ImageOperandsMakeTexelVisibleKHRMask; - } - if (coherentFlags.nonprivate) { - mask = mask | spv::ImageOperandsNonPrivateTexelKHRMask; - } - if (coherentFlags.volatil) { - mask = mask | spv::ImageOperandsVolatileTexelKHRMask; - } - if (mask != spv::ImageOperandsMaskNone) { - builder.addCapability(spv::CapabilityVulkanMemoryModelKHR); - } -#endif - - return mask; -} - -spv::Builder::AccessChain::CoherentFlags TGlslangToSpvTraverser::TranslateCoherent(const glslang::TType& type) -{ - spv::Builder::AccessChain::CoherentFlags flags = {}; -#ifndef GLSLANG_WEB - flags.coherent = type.getQualifier().coherent; - flags.devicecoherent = type.getQualifier().devicecoherent; - flags.queuefamilycoherent = type.getQualifier().queuefamilycoherent; - // shared variables are implicitly workgroupcoherent in GLSL. - flags.workgroupcoherent = type.getQualifier().workgroupcoherent || - type.getQualifier().storage == glslang::EvqShared; - flags.subgroupcoherent = type.getQualifier().subgroupcoherent; - flags.shadercallcoherent = type.getQualifier().shadercallcoherent; - flags.volatil = type.getQualifier().volatil; - // *coherent variables are implicitly nonprivate in GLSL - flags.nonprivate = type.getQualifier().nonprivate || - flags.anyCoherent() || - flags.volatil; - flags.isImage = type.getBasicType() == glslang::EbtSampler; -#endif - flags.nonUniform = type.getQualifier().nonUniform; - return flags; -} - -spv::Scope TGlslangToSpvTraverser::TranslateMemoryScope( - const spv::Builder::AccessChain::CoherentFlags &coherentFlags) -{ - spv::Scope scope = spv::ScopeMax; - -#ifndef GLSLANG_WEB - if (coherentFlags.volatil || coherentFlags.coherent) { - // coherent defaults to Device scope in the old model, QueueFamilyKHR scope in the new model - scope = glslangIntermediate->usingVulkanMemoryModel() ? spv::ScopeQueueFamilyKHR : spv::ScopeDevice; - } else if (coherentFlags.devicecoherent) { - scope = spv::ScopeDevice; - } else if (coherentFlags.queuefamilycoherent) { - scope = spv::ScopeQueueFamilyKHR; - } else if (coherentFlags.workgroupcoherent) { - scope = spv::ScopeWorkgroup; - } else if (coherentFlags.subgroupcoherent) { - scope = spv::ScopeSubgroup; - } else if (coherentFlags.shadercallcoherent) { - scope = spv::ScopeShaderCallKHR; - } - if (glslangIntermediate->usingVulkanMemoryModel() && scope == spv::ScopeDevice) { - builder.addCapability(spv::CapabilityVulkanMemoryModelDeviceScopeKHR); - } -#endif - - return scope; -} - -// Translate a glslang built-in variable to a SPIR-V built in decoration. Also generate -// associated capabilities when required. For some built-in variables, a capability -// is generated only when using the variable in an executable instruction, but not when -// just declaring a struct member variable with it. This is true for PointSize, -// ClipDistance, and CullDistance. -spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltInVariable builtIn, - bool memberDeclaration) -{ - switch (builtIn) { - case glslang::EbvPointSize: -#ifndef GLSLANG_WEB - // Defer adding the capability until the built-in is actually used. - if (! memberDeclaration) { - switch (glslangIntermediate->getStage()) { - case EShLangGeometry: - builder.addCapability(spv::CapabilityGeometryPointSize); - break; - case EShLangTessControl: - case EShLangTessEvaluation: - builder.addCapability(spv::CapabilityTessellationPointSize); - break; - default: - break; - } - } -#endif - return spv::BuiltInPointSize; - - case glslang::EbvPosition: return spv::BuiltInPosition; - case glslang::EbvVertexId: return spv::BuiltInVertexId; - case glslang::EbvInstanceId: return spv::BuiltInInstanceId; - case glslang::EbvVertexIndex: return spv::BuiltInVertexIndex; - case glslang::EbvInstanceIndex: return spv::BuiltInInstanceIndex; - - case glslang::EbvFragCoord: return spv::BuiltInFragCoord; - case glslang::EbvPointCoord: return spv::BuiltInPointCoord; - case glslang::EbvFace: return spv::BuiltInFrontFacing; - case glslang::EbvFragDepth: return spv::BuiltInFragDepth; - - case glslang::EbvNumWorkGroups: return spv::BuiltInNumWorkgroups; - case glslang::EbvWorkGroupSize: return spv::BuiltInWorkgroupSize; - case glslang::EbvWorkGroupId: return spv::BuiltInWorkgroupId; - case glslang::EbvLocalInvocationId: return spv::BuiltInLocalInvocationId; - case glslang::EbvLocalInvocationIndex: return spv::BuiltInLocalInvocationIndex; - case glslang::EbvGlobalInvocationId: return spv::BuiltInGlobalInvocationId; - -#ifndef GLSLANG_WEB - // These *Distance capabilities logically belong here, but if the member is declared and - // then never used, consumers of SPIR-V prefer the capability not be declared. - // They are now generated when used, rather than here when declared. - // Potentially, the specification should be more clear what the minimum - // use needed is to trigger the capability. - // - case glslang::EbvClipDistance: - if (!memberDeclaration) - builder.addCapability(spv::CapabilityClipDistance); - return spv::BuiltInClipDistance; - - case glslang::EbvCullDistance: - if (!memberDeclaration) - builder.addCapability(spv::CapabilityCullDistance); - return spv::BuiltInCullDistance; - - case glslang::EbvViewportIndex: - if (glslangIntermediate->getStage() == EShLangGeometry || - glslangIntermediate->getStage() == EShLangFragment) { - builder.addCapability(spv::CapabilityMultiViewport); - } - if (glslangIntermediate->getStage() == EShLangVertex || - glslangIntermediate->getStage() == EShLangTessControl || - glslangIntermediate->getStage() == EShLangTessEvaluation) { - - if (builder.getSpvVersion() < spv::Spv_1_5) { - builder.addIncorporatedExtension(spv::E_SPV_EXT_shader_viewport_index_layer, spv::Spv_1_5); - builder.addCapability(spv::CapabilityShaderViewportIndexLayerEXT); - } - else - builder.addCapability(spv::CapabilityShaderViewportIndex); - } - return spv::BuiltInViewportIndex; - - case glslang::EbvSampleId: - builder.addCapability(spv::CapabilitySampleRateShading); - return spv::BuiltInSampleId; - - case glslang::EbvSamplePosition: - builder.addCapability(spv::CapabilitySampleRateShading); - return spv::BuiltInSamplePosition; - - case glslang::EbvSampleMask: - return spv::BuiltInSampleMask; - - case glslang::EbvLayer: - if (glslangIntermediate->getStage() == EShLangMeshNV) { - return spv::BuiltInLayer; - } - if (glslangIntermediate->getStage() == EShLangGeometry || - glslangIntermediate->getStage() == EShLangFragment) { - builder.addCapability(spv::CapabilityGeometry); - } - if (glslangIntermediate->getStage() == EShLangVertex || - glslangIntermediate->getStage() == EShLangTessControl || - glslangIntermediate->getStage() == EShLangTessEvaluation) { - - if (builder.getSpvVersion() < spv::Spv_1_5) { - builder.addIncorporatedExtension(spv::E_SPV_EXT_shader_viewport_index_layer, spv::Spv_1_5); - builder.addCapability(spv::CapabilityShaderViewportIndexLayerEXT); - } else - builder.addCapability(spv::CapabilityShaderLayer); - } - return spv::BuiltInLayer; - - case glslang::EbvBaseVertex: - builder.addIncorporatedExtension(spv::E_SPV_KHR_shader_draw_parameters, spv::Spv_1_3); - builder.addCapability(spv::CapabilityDrawParameters); - return spv::BuiltInBaseVertex; - - case glslang::EbvBaseInstance: - builder.addIncorporatedExtension(spv::E_SPV_KHR_shader_draw_parameters, spv::Spv_1_3); - builder.addCapability(spv::CapabilityDrawParameters); - return spv::BuiltInBaseInstance; - - case glslang::EbvDrawId: - builder.addIncorporatedExtension(spv::E_SPV_KHR_shader_draw_parameters, spv::Spv_1_3); - builder.addCapability(spv::CapabilityDrawParameters); - return spv::BuiltInDrawIndex; - - case glslang::EbvPrimitiveId: - if (glslangIntermediate->getStage() == EShLangFragment) - 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::EbvShadingRateKHR: - builder.addExtension(spv::E_SPV_KHR_fragment_shading_rate); - builder.addCapability(spv::CapabilityFragmentShadingRateKHR); - return spv::BuiltInShadingRateKHR; - - case glslang::EbvPrimitiveShadingRateKHR: - builder.addExtension(spv::E_SPV_KHR_fragment_shading_rate); - builder.addCapability(spv::CapabilityFragmentShadingRateKHR); - return spv::BuiltInPrimitiveShadingRateKHR; - - case glslang::EbvInvocationId: return spv::BuiltInInvocationId; - case glslang::EbvTessLevelInner: return spv::BuiltInTessLevelInner; - case glslang::EbvTessLevelOuter: return spv::BuiltInTessLevelOuter; - case glslang::EbvTessCoord: return spv::BuiltInTessCoord; - case glslang::EbvPatchVertices: return spv::BuiltInPatchVertices; - case glslang::EbvHelperInvocation: return spv::BuiltInHelperInvocation; - - case glslang::EbvSubGroupSize: - builder.addExtension(spv::E_SPV_KHR_shader_ballot); - builder.addCapability(spv::CapabilitySubgroupBallotKHR); - return spv::BuiltInSubgroupSize; - - case glslang::EbvSubGroupInvocation: - builder.addExtension(spv::E_SPV_KHR_shader_ballot); - builder.addCapability(spv::CapabilitySubgroupBallotKHR); - return spv::BuiltInSubgroupLocalInvocationId; - - case glslang::EbvSubGroupEqMask: - builder.addExtension(spv::E_SPV_KHR_shader_ballot); - builder.addCapability(spv::CapabilitySubgroupBallotKHR); - return spv::BuiltInSubgroupEqMask; - - case glslang::EbvSubGroupGeMask: - builder.addExtension(spv::E_SPV_KHR_shader_ballot); - builder.addCapability(spv::CapabilitySubgroupBallotKHR); - return spv::BuiltInSubgroupGeMask; - - case glslang::EbvSubGroupGtMask: - builder.addExtension(spv::E_SPV_KHR_shader_ballot); - builder.addCapability(spv::CapabilitySubgroupBallotKHR); - return spv::BuiltInSubgroupGtMask; - - case glslang::EbvSubGroupLeMask: - builder.addExtension(spv::E_SPV_KHR_shader_ballot); - builder.addCapability(spv::CapabilitySubgroupBallotKHR); - return spv::BuiltInSubgroupLeMask; - - case glslang::EbvSubGroupLtMask: - builder.addExtension(spv::E_SPV_KHR_shader_ballot); - builder.addCapability(spv::CapabilitySubgroupBallotKHR); - return spv::BuiltInSubgroupLtMask; - - 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; - - case glslang::EbvBaryCoordNoPersp: - builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter); - return spv::BuiltInBaryCoordNoPerspAMD; - - case glslang::EbvBaryCoordNoPerspCentroid: - builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter); - return spv::BuiltInBaryCoordNoPerspCentroidAMD; - - case glslang::EbvBaryCoordNoPerspSample: - builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter); - return spv::BuiltInBaryCoordNoPerspSampleAMD; - - case glslang::EbvBaryCoordSmooth: - builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter); - return spv::BuiltInBaryCoordSmoothAMD; - - case glslang::EbvBaryCoordSmoothCentroid: - builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter); - return spv::BuiltInBaryCoordSmoothCentroidAMD; - - case glslang::EbvBaryCoordSmoothSample: - builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter); - return spv::BuiltInBaryCoordSmoothSampleAMD; - - case glslang::EbvBaryCoordPullModel: - builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter); - return spv::BuiltInBaryCoordPullModelAMD; - - case glslang::EbvDeviceIndex: - builder.addIncorporatedExtension(spv::E_SPV_KHR_device_group, spv::Spv_1_3); - builder.addCapability(spv::CapabilityDeviceGroup); - return spv::BuiltInDeviceIndex; - - case glslang::EbvViewIndex: - builder.addIncorporatedExtension(spv::E_SPV_KHR_multiview, spv::Spv_1_3); - builder.addCapability(spv::CapabilityMultiView); - return spv::BuiltInViewIndex; - - case glslang::EbvFragSizeEXT: - builder.addExtension(spv::E_SPV_EXT_fragment_invocation_density); - builder.addCapability(spv::CapabilityFragmentDensityEXT); - return spv::BuiltInFragSizeEXT; - - case glslang::EbvFragInvocationCountEXT: - builder.addExtension(spv::E_SPV_EXT_fragment_invocation_density); - builder.addCapability(spv::CapabilityFragmentDensityEXT); - return spv::BuiltInFragInvocationCountEXT; - - 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; - case glslang::EbvFragmentSizeNV: - builder.addExtension(spv::E_SPV_NV_shading_rate); - builder.addCapability(spv::CapabilityShadingRateNV); - return spv::BuiltInFragmentSizeNV; - case glslang::EbvInvocationsPerPixelNV: - builder.addExtension(spv::E_SPV_NV_shading_rate); - builder.addCapability(spv::CapabilityShadingRateNV); - return spv::BuiltInInvocationsPerPixelNV; - - // ray tracing - case glslang::EbvLaunchId: - return spv::BuiltInLaunchIdKHR; - case glslang::EbvLaunchSize: - return spv::BuiltInLaunchSizeKHR; - case glslang::EbvWorldRayOrigin: - return spv::BuiltInWorldRayOriginKHR; - case glslang::EbvWorldRayDirection: - return spv::BuiltInWorldRayDirectionKHR; - case glslang::EbvObjectRayOrigin: - return spv::BuiltInObjectRayOriginKHR; - case glslang::EbvObjectRayDirection: - return spv::BuiltInObjectRayDirectionKHR; - case glslang::EbvRayTmin: - return spv::BuiltInRayTminKHR; - case glslang::EbvRayTmax: - return spv::BuiltInRayTmaxKHR; - case glslang::EbvInstanceCustomIndex: - return spv::BuiltInInstanceCustomIndexKHR; - case glslang::EbvHitT: - { - // this is a GLSL alias of RayTmax - // in SPV_NV_ray_tracing it has a dedicated builtin - // but in SPV_KHR_ray_tracing it gets mapped to RayTmax - auto& extensions = glslangIntermediate->getRequestedExtensions(); - if (extensions.find("GL_NV_ray_tracing") != extensions.end()) { - return spv::BuiltInHitTNV; - } else { - return spv::BuiltInRayTmaxKHR; - } - } - case glslang::EbvHitKind: - return spv::BuiltInHitKindKHR; - case glslang::EbvObjectToWorld: - case glslang::EbvObjectToWorld3x4: - return spv::BuiltInObjectToWorldKHR; - case glslang::EbvWorldToObject: - case glslang::EbvWorldToObject3x4: - return spv::BuiltInWorldToObjectKHR; - case glslang::EbvIncomingRayFlags: - return spv::BuiltInIncomingRayFlagsKHR; - case glslang::EbvGeometryIndex: - return spv::BuiltInRayGeometryIndexKHR; - case glslang::EbvCurrentRayTimeNV: - builder.addExtension(spv::E_SPV_NV_ray_tracing_motion_blur); - builder.addCapability(spv::CapabilityRayTracingMotionBlurNV); - return spv::BuiltInCurrentRayTimeNV; - - // barycentrics - case glslang::EbvBaryCoordNV: - builder.addExtension(spv::E_SPV_NV_fragment_shader_barycentric); - builder.addCapability(spv::CapabilityFragmentBarycentricNV); - return spv::BuiltInBaryCoordNV; - case glslang::EbvBaryCoordNoPerspNV: - builder.addExtension(spv::E_SPV_NV_fragment_shader_barycentric); - builder.addCapability(spv::CapabilityFragmentBarycentricNV); - return spv::BuiltInBaryCoordNoPerspNV; - - // mesh shaders - case glslang::EbvTaskCountNV: - return spv::BuiltInTaskCountNV; - case glslang::EbvPrimitiveCountNV: - return spv::BuiltInPrimitiveCountNV; - case glslang::EbvPrimitiveIndicesNV: - return spv::BuiltInPrimitiveIndicesNV; - case glslang::EbvClipDistancePerViewNV: - return spv::BuiltInClipDistancePerViewNV; - case glslang::EbvCullDistancePerViewNV: - return spv::BuiltInCullDistancePerViewNV; - case glslang::EbvLayerPerViewNV: - return spv::BuiltInLayerPerViewNV; - case glslang::EbvMeshViewCountNV: - return spv::BuiltInMeshViewCountNV; - case glslang::EbvMeshViewIndicesNV: - return spv::BuiltInMeshViewIndicesNV; - - // sm builtins - case glslang::EbvWarpsPerSM: - builder.addExtension(spv::E_SPV_NV_shader_sm_builtins); - builder.addCapability(spv::CapabilityShaderSMBuiltinsNV); - return spv::BuiltInWarpsPerSMNV; - case glslang::EbvSMCount: - builder.addExtension(spv::E_SPV_NV_shader_sm_builtins); - builder.addCapability(spv::CapabilityShaderSMBuiltinsNV); - return spv::BuiltInSMCountNV; - case glslang::EbvWarpID: - builder.addExtension(spv::E_SPV_NV_shader_sm_builtins); - builder.addCapability(spv::CapabilityShaderSMBuiltinsNV); - return spv::BuiltInWarpIDNV; - case glslang::EbvSMID: - builder.addExtension(spv::E_SPV_NV_shader_sm_builtins); - builder.addCapability(spv::CapabilityShaderSMBuiltinsNV); - return spv::BuiltInSMIDNV; -#endif - - default: - return spv::BuiltInMax; - } -} - -// Translate glslang image layout format to SPIR-V image format. -spv::ImageFormat TGlslangToSpvTraverser::TranslateImageFormat(const glslang::TType& type) -{ - assert(type.getBasicType() == glslang::EbtSampler); - -#ifdef GLSLANG_WEB - return spv::ImageFormatUnknown; -#endif - - // Check for capabilities - switch (type.getQualifier().getFormat()) { - case glslang::ElfRg32f: - case glslang::ElfRg16f: - case glslang::ElfR11fG11fB10f: - case glslang::ElfR16f: - case glslang::ElfRgba16: - case glslang::ElfRgb10A2: - case glslang::ElfRg16: - case glslang::ElfRg8: - case glslang::ElfR16: - case glslang::ElfR8: - case glslang::ElfRgba16Snorm: - case glslang::ElfRg16Snorm: - case glslang::ElfRg8Snorm: - case glslang::ElfR16Snorm: - case glslang::ElfR8Snorm: - - case glslang::ElfRg32i: - case glslang::ElfRg16i: - case glslang::ElfRg8i: - case glslang::ElfR16i: - case glslang::ElfR8i: - - case glslang::ElfRgb10a2ui: - case glslang::ElfRg32ui: - case glslang::ElfRg16ui: - case glslang::ElfRg8ui: - case glslang::ElfR16ui: - case glslang::ElfR8ui: - builder.addCapability(spv::CapabilityStorageImageExtendedFormats); - break; - - case glslang::ElfR64ui: - case glslang::ElfR64i: - builder.addExtension(spv::E_SPV_EXT_shader_image_int64); - builder.addCapability(spv::CapabilityInt64ImageEXT); - default: - break; - } - - // do the translation - switch (type.getQualifier().getFormat()) { - case glslang::ElfNone: return spv::ImageFormatUnknown; - case glslang::ElfRgba32f: return spv::ImageFormatRgba32f; - case glslang::ElfRgba16f: return spv::ImageFormatRgba16f; - case glslang::ElfR32f: return spv::ImageFormatR32f; - case glslang::ElfRgba8: return spv::ImageFormatRgba8; - case glslang::ElfRgba8Snorm: return spv::ImageFormatRgba8Snorm; - case glslang::ElfRg32f: return spv::ImageFormatRg32f; - case glslang::ElfRg16f: return spv::ImageFormatRg16f; - case glslang::ElfR11fG11fB10f: return spv::ImageFormatR11fG11fB10f; - case glslang::ElfR16f: return spv::ImageFormatR16f; - case glslang::ElfRgba16: return spv::ImageFormatRgba16; - case glslang::ElfRgb10A2: return spv::ImageFormatRgb10A2; - case glslang::ElfRg16: return spv::ImageFormatRg16; - case glslang::ElfRg8: return spv::ImageFormatRg8; - case glslang::ElfR16: return spv::ImageFormatR16; - case glslang::ElfR8: return spv::ImageFormatR8; - case glslang::ElfRgba16Snorm: return spv::ImageFormatRgba16Snorm; - case glslang::ElfRg16Snorm: return spv::ImageFormatRg16Snorm; - case glslang::ElfRg8Snorm: return spv::ImageFormatRg8Snorm; - case glslang::ElfR16Snorm: return spv::ImageFormatR16Snorm; - case glslang::ElfR8Snorm: return spv::ImageFormatR8Snorm; - case glslang::ElfRgba32i: return spv::ImageFormatRgba32i; - case glslang::ElfRgba16i: return spv::ImageFormatRgba16i; - case glslang::ElfRgba8i: return spv::ImageFormatRgba8i; - case glslang::ElfR32i: return spv::ImageFormatR32i; - case glslang::ElfRg32i: return spv::ImageFormatRg32i; - case glslang::ElfRg16i: return spv::ImageFormatRg16i; - case glslang::ElfRg8i: return spv::ImageFormatRg8i; - case glslang::ElfR16i: return spv::ImageFormatR16i; - case glslang::ElfR8i: return spv::ImageFormatR8i; - case glslang::ElfRgba32ui: return spv::ImageFormatRgba32ui; - case glslang::ElfRgba16ui: return spv::ImageFormatRgba16ui; - case glslang::ElfRgba8ui: return spv::ImageFormatRgba8ui; - case glslang::ElfR32ui: return spv::ImageFormatR32ui; - case glslang::ElfRg32ui: return spv::ImageFormatRg32ui; - case glslang::ElfRg16ui: return spv::ImageFormatRg16ui; - case glslang::ElfRgb10a2ui: return spv::ImageFormatRgb10a2ui; - case glslang::ElfRg8ui: return spv::ImageFormatRg8ui; - case glslang::ElfR16ui: return spv::ImageFormatR16ui; - case glslang::ElfR8ui: return spv::ImageFormatR8ui; - case glslang::ElfR64ui: return spv::ImageFormatR64ui; - case glslang::ElfR64i: return spv::ImageFormatR64i; - default: return spv::ImageFormatMax; - } -} - -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, - std::vector& operands) 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; - operands.push_back((unsigned int)loopNode.getLoopDependency()); - } - if (glslangIntermediate->getSpv().spv >= glslang::EShTargetSpv_1_4) { - if (loopNode.getMinIterations() > 0) { - control = control | spv::LoopControlMinIterationsMask; - operands.push_back(loopNode.getMinIterations()); - } - if (loopNode.getMaxIterations() < glslang::TIntermLoop::iterationsInfinite) { - control = control | spv::LoopControlMaxIterationsMask; - operands.push_back(loopNode.getMaxIterations()); - } - if (loopNode.getIterationMultiple() > 1) { - control = control | spv::LoopControlIterationMultipleMask; - operands.push_back(loopNode.getIterationMultiple()); - } - if (loopNode.getPeelCount() > 0) { - control = control | spv::LoopControlPeelCountMask; - operands.push_back(loopNode.getPeelCount()); - } - if (loopNode.getPartialCount() > 0) { - control = control | spv::LoopControlPartialCountMask; - operands.push_back(loopNode.getPartialCount()); - } - } - - return control; -} - -// Translate glslang type to SPIR-V storage class. -spv::StorageClass TGlslangToSpvTraverser::TranslateStorageClass(const glslang::TType& type) -{ - if (type.getBasicType() == glslang::EbtRayQuery) - return spv::StorageClassPrivate; -#ifndef GLSLANG_WEB - if (type.getQualifier().isSpirvByReference()) { - if (type.getQualifier().isParamInput() || type.getQualifier().isParamOutput()) - return spv::StorageClassFunction; - } -#endif - 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.isAtomic()) - return spv::StorageClassAtomicCounter; - if (type.containsOpaque()) - return spv::StorageClassUniformConstant; - } - - if (type.getQualifier().isUniformOrBuffer() && - type.getQualifier().isShaderRecord()) { - return spv::StorageClassShaderRecordBufferKHR; - } - - if (glslangIntermediate->usingStorageBuffer() && type.getQualifier().storage == glslang::EvqBuffer) { - builder.addIncorporatedExtension(spv::E_SPV_KHR_storage_buffer_storage_class, spv::Spv_1_3); - return spv::StorageClassStorageBuffer; - } - - if (type.getQualifier().isUniformOrBuffer()) { - if (type.getQualifier().isPushConstant()) - return spv::StorageClassPushConstant; - if (type.getBasicType() == glslang::EbtBlock) - return spv::StorageClassUniform; - return spv::StorageClassUniformConstant; - } - - if (type.getQualifier().storage == glslang::EvqShared && type.getBasicType() == glslang::EbtBlock) { - builder.addExtension(spv::E_SPV_KHR_workgroup_memory_explicit_layout); - builder.addCapability(spv::CapabilityWorkgroupMemoryExplicitLayoutKHR); - return spv::StorageClassWorkgroup; - } - - switch (type.getQualifier().storage) { - case glslang::EvqGlobal: return spv::StorageClassPrivate; - case glslang::EvqConstReadOnly: return spv::StorageClassFunction; - case glslang::EvqTemporary: return spv::StorageClassFunction; - case glslang::EvqShared: return spv::StorageClassWorkgroup; -#ifndef GLSLANG_WEB - case glslang::EvqPayload: return spv::StorageClassRayPayloadKHR; - case glslang::EvqPayloadIn: return spv::StorageClassIncomingRayPayloadKHR; - case glslang::EvqHitAttr: return spv::StorageClassHitAttributeKHR; - case glslang::EvqCallableData: return spv::StorageClassCallableDataKHR; - case glslang::EvqCallableDataIn: return spv::StorageClassIncomingCallableDataKHR; - case glslang::EvqSpirvStorageClass: return static_cast(type.getQualifier().spirvStorageClass); -#endif - default: - assert(0); - break; - } - - return spv::StorageClassFunction; -} - -// Translate glslang constants to SPIR-V literals -void TGlslangToSpvTraverser::TranslateLiterals(const glslang::TVector& constants, - std::vector& literals) const -{ - for (auto constant : constants) { - if (constant->getBasicType() == glslang::EbtFloat) { - float floatValue = static_cast(constant->getConstArray()[0].getDConst()); - unsigned literal = *reinterpret_cast(&floatValue); - literals.push_back(literal); - } else if (constant->getBasicType() == glslang::EbtInt) { - unsigned literal = constant->getConstArray()[0].getIConst(); - literals.push_back(literal); - } else if (constant->getBasicType() == glslang::EbtUint) { - unsigned literal = constant->getConstArray()[0].getUConst(); - literals.push_back(literal); - } else if (constant->getBasicType() == glslang::EbtBool) { - unsigned literal = constant->getConstArray()[0].getBConst(); - literals.push_back(literal); - } else if (constant->getBasicType() == glslang::EbtString) { - auto str = constant->getConstArray()[0].getSConst()->c_str(); - unsigned literal = 0; - char* literalPtr = reinterpret_cast(&literal); - unsigned charCount = 0; - char ch = 0; - do { - ch = *(str++); - *(literalPtr++) = ch; - ++charCount; - if (charCount == 4) { - literals.push_back(literal); - literalPtr = reinterpret_cast(&literal); - charCount = 0; - } - } while (ch != 0); - - // Partial literal is padded with 0 - if (charCount > 0) { - for (; charCount < 4; ++charCount) - *(literalPtr++) = 0; - literals.push_back(literal); - } - } else - assert(0); // Unexpected type - } -} - -// Add capabilities pertaining to how an array is indexed. -void TGlslangToSpvTraverser::addIndirectionIndexCapabilities(const glslang::TType& baseType, - const glslang::TType& indexType) -{ -#ifndef GLSLANG_WEB - if (indexType.getQualifier().isNonUniform()) { - // deal with an asserted non-uniform index - // SPV_EXT_descriptor_indexing already added in TranslateNonUniformDecoration - if (baseType.getBasicType() == glslang::EbtSampler) { - if (baseType.getQualifier().hasAttachment()) - builder.addCapability(spv::CapabilityInputAttachmentArrayNonUniformIndexingEXT); - else if (baseType.isImage() && baseType.getSampler().isBuffer()) - builder.addCapability(spv::CapabilityStorageTexelBufferArrayNonUniformIndexingEXT); - else if (baseType.isTexture() && baseType.getSampler().isBuffer()) - 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.addIncorporatedExtension("SPV_EXT_descriptor_indexing", spv::Spv_1_5); - builder.addCapability(spv::CapabilityInputAttachmentArrayDynamicIndexingEXT); - } else if (baseType.isImage() && baseType.getSampler().isBuffer()) { - builder.addIncorporatedExtension("SPV_EXT_descriptor_indexing", spv::Spv_1_5); - builder.addCapability(spv::CapabilityStorageTexelBufferArrayDynamicIndexingEXT); - } else if (baseType.isTexture() && baseType.getSampler().isBuffer()) { - builder.addIncorporatedExtension("SPV_EXT_descriptor_indexing", spv::Spv_1_5); - builder.addCapability(spv::CapabilityUniformTexelBufferArrayDynamicIndexingEXT); - } - } - } -#endif -} - -// Return whether or not the given type is something that should be tied to a -// descriptor set. -bool IsDescriptorResource(const glslang::TType& type) -{ - // uniform and buffer blocks are included, unless it is a push_constant - if (type.getBasicType() == glslang::EbtBlock) - return type.getQualifier().isUniformOrBuffer() && - ! type.getQualifier().isShaderRecord() && - ! type.getQualifier().isPushConstant(); - - // non block... - // basically samplerXXX/subpass/sampler/texture are all included - // if they are the global-scope-class, not the function parameter - // (or local, if they ever exist) class. - if (type.getBasicType() == glslang::EbtSampler || - type.getBasicType() == glslang::EbtAccStruct) - return type.getQualifier().isUniformOrBuffer(); - - // None of the above. - return false; -} - -void InheritQualifiers(glslang::TQualifier& child, const glslang::TQualifier& parent) -{ - if (child.layoutMatrix == glslang::ElmNone) - child.layoutMatrix = parent.layoutMatrix; - - if (parent.invariant) - child.invariant = true; - if (parent.flat) - child.flat = true; - if (parent.centroid) - child.centroid = true; -#ifndef GLSLANG_WEB - if (parent.nopersp) - child.nopersp = true; - if (parent.explicitInterp) - child.explicitInterp = true; - if (parent.perPrimitiveNV) - child.perPrimitiveNV = true; - if (parent.perViewNV) - child.perViewNV = true; - if (parent.perTaskNV) - child.perTaskNV = true; - if (parent.patch) - child.patch = true; - if (parent.sample) - child.sample = true; - if (parent.coherent) - child.coherent = true; - if (parent.devicecoherent) - child.devicecoherent = true; - if (parent.queuefamilycoherent) - child.queuefamilycoherent = true; - if (parent.workgroupcoherent) - child.workgroupcoherent = true; - if (parent.subgroupcoherent) - child.subgroupcoherent = true; - if (parent.shadercallcoherent) - child.shadercallcoherent = true; - if (parent.nonprivate) - child.nonprivate = true; - if (parent.volatil) - child.volatil = true; - if (parent.restrict) - child.restrict = true; - if (parent.readonly) - child.readonly = true; - if (parent.writeonly) - child.writeonly = true; -#endif - if (parent.nonUniform) - child.nonUniform = true; -} - -bool HasNonLayoutQualifiers(const glslang::TType& type, const glslang::TQualifier& qualifier) -{ - // This should list qualifiers that simultaneous satisfy: - // - struct members might inherit from a struct declaration - // (note that non-block structs don't explicitly inherit, - // only implicitly, meaning no decoration involved) - // - affect decorations on the struct members - // (note smooth does not, and expecting something like volatile - // to effect the whole object) - // - are not part of the offset/st430/etc or row/column-major layout - return qualifier.invariant || (qualifier.hasLocation() && type.getBasicType() == glslang::EbtBlock); -} - -// -// 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), - sequenceDepth(0), logger(buildLogger), - builder(spvVersion, (glslang::GetKhronosToolId() << 16) | glslang::GetSpirvGeneratorVersion(), logger), - inEntryPoint(false), entryPointTerminated(false), linkageOnly(false), - glslangIntermediate(glslangIntermediate), - nanMinMaxClamp(glslangIntermediate->getNanMinMaxClamp()), - nonSemanticDebugPrintf(0) -{ - 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 < glslang::EShTargetSpv_1_1) { - text.append("// OpModuleProcessed "); - text.append(processes[p]); - text.append("\n"); - } else - builder.addModuleProcessed(processes[p]); - } - if (glslangIntermediate->getSpv().spv < glslang::EShTargetSpv_1_1 && (int)processes.size() > 0) - text.append("#line 1\n"); - text.append(glslangIntermediate->getSourceText()); - builder.setSourceText(text); - // Pass name and text for all included files - const std::map& include_txt = glslangIntermediate->getIncludeText(); - for (auto iItr = include_txt.begin(); iItr != include_txt.end(); ++iItr) - builder.addInclude(iItr->first, iItr->second); - } - stdBuiltins = builder.import("GLSL.std.450"); - - spv::AddressingModel addressingModel = spv::AddressingModelLogical; - spv::MemoryModel memoryModel = spv::MemoryModelGLSL450; - - if (glslangIntermediate->usingPhysicalStorageBuffer()) { - addressingModel = spv::AddressingModelPhysicalStorageBuffer64EXT; - builder.addIncorporatedExtension(spv::E_SPV_KHR_physical_storage_buffer, spv::Spv_1_5); - builder.addCapability(spv::CapabilityPhysicalStorageBufferAddressesEXT); - } - if (glslangIntermediate->usingVulkanMemoryModel()) { - memoryModel = spv::MemoryModelVulkanKHR; - builder.addCapability(spv::CapabilityVulkanMemoryModelKHR); - builder.addIncorporatedExtension(spv::E_SPV_KHR_vulkan_memory_model, spv::Spv_1_5); - } - builder.setMemoryModel(addressingModel, memoryModel); - - if (glslangIntermediate->usingVariablePointers()) { - builder.addCapability(spv::CapabilityVariablePointers); - } - - shaderEntry = builder.makeEntryPoint(glslangIntermediate->getEntryPointName().c_str()); - entryPoint = builder.addEntryPoint(executionModel, shaderEntry, glslangIntermediate->getEntryPointName().c_str()); - - // Add the source extensions - const auto& sourceExtensions = glslangIntermediate->getRequestedExtensions(); - for (auto it = sourceExtensions.begin(); it != sourceExtensions.end(); ++it) - builder.addSourceExtension(it->c_str()); - - // Add the top-level modes for this shader. - - if (glslangIntermediate->getXfbMode()) { - builder.addCapability(spv::CapabilityTransformFeedback); - builder.addExecutionMode(shaderEntry, spv::ExecutionModeXfb); - } - - if (glslangIntermediate->getLayoutPrimitiveCulling()) { - builder.addCapability(spv::CapabilityRayTraversalPrimitiveCullingKHR); - } - -#ifndef GLSLANG_WEB - if (glslangIntermediate->getSubgroupUniformControlFlow()) { - builder.addExtension(spv::E_SPV_KHR_subgroup_uniform_control_flow); - builder.addExecutionMode(shaderEntry, spv::ExecutionModeSubgroupUniformControlFlowKHR); - } -#endif - - unsigned int mode; - switch (glslangIntermediate->getStage()) { - case EShLangVertex: - builder.addCapability(spv::CapabilityShader); - break; - - case EShLangFragment: - builder.addCapability(spv::CapabilityShader); - if (glslangIntermediate->getPixelCenterInteger()) - builder.addExecutionMode(shaderEntry, spv::ExecutionModePixelCenterInteger); - - if (glslangIntermediate->getOriginUpperLeft()) - builder.addExecutionMode(shaderEntry, spv::ExecutionModeOriginUpperLeft); - else - builder.addExecutionMode(shaderEntry, spv::ExecutionModeOriginLowerLeft); - - 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); - } - - if (glslangIntermediate->isDepthReplacing()) - builder.addExecutionMode(shaderEntry, spv::ExecutionModeDepthReplacing); - -#ifndef GLSLANG_WEB - - switch(glslangIntermediate->getDepth()) { - case glslang::EldGreater: mode = spv::ExecutionModeDepthGreater; break; - case glslang::EldLess: mode = spv::ExecutionModeDepthLess; break; - case glslang::EldUnchanged: mode = spv::ExecutionModeDepthUnchanged; break; - default: mode = spv::ExecutionModeMax; break; - } - if (mode != spv::ExecutionModeMax) - builder.addExecutionMode(shaderEntry, (spv::ExecutionMode)mode); - switch (glslangIntermediate->getInterlockOrdering()) { - case glslang::EioPixelInterlockOrdered: mode = spv::ExecutionModePixelInterlockOrderedEXT; - break; - case glslang::EioPixelInterlockUnordered: mode = spv::ExecutionModePixelInterlockUnorderedEXT; - break; - case glslang::EioSampleInterlockOrdered: mode = spv::ExecutionModeSampleInterlockOrderedEXT; - break; - case glslang::EioSampleInterlockUnordered: mode = spv::ExecutionModeSampleInterlockUnorderedEXT; - break; - case glslang::EioShadingRateInterlockOrdered: mode = spv::ExecutionModeShadingRateInterlockOrderedEXT; - break; - case glslang::EioShadingRateInterlockUnordered: mode = spv::ExecutionModeShadingRateInterlockUnorderedEXT; - break; - default: mode = spv::ExecutionModeMax; - break; - } - if (mode != spv::ExecutionModeMax) { - builder.addExecutionMode(shaderEntry, (spv::ExecutionMode)mode); - if (mode == spv::ExecutionModeShadingRateInterlockOrderedEXT || - mode == spv::ExecutionModeShadingRateInterlockUnorderedEXT) { - builder.addCapability(spv::CapabilityFragmentShaderShadingRateInterlockEXT); - } else if (mode == spv::ExecutionModePixelInterlockOrderedEXT || - mode == spv::ExecutionModePixelInterlockUnorderedEXT) { - builder.addCapability(spv::CapabilityFragmentShaderPixelInterlockEXT); - } else { - builder.addCapability(spv::CapabilityFragmentShaderSampleInterlockEXT); - } - builder.addExtension(spv::E_SPV_EXT_fragment_shader_interlock); - } -#endif - break; - - case EShLangCompute: - builder.addCapability(spv::CapabilityShader); - if (glslangIntermediate->getSpv().spv >= glslang::EShTargetSpv_1_6) { - std::vector dimConstId; - 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)); - } - } - builder.addExecutionModeId(shaderEntry, spv::ExecutionModeLocalSizeId, dimConstId); - } else { - builder.addExecutionMode(shaderEntry, spv::ExecutionModeLocalSize, glslangIntermediate->getLocalSize(0), - glslangIntermediate->getLocalSize(1), - glslangIntermediate->getLocalSize(2)); - } - if (glslangIntermediate->getLayoutDerivativeModeNone() == glslang::LayoutDerivativeGroupQuads) { - builder.addCapability(spv::CapabilityComputeDerivativeGroupQuadsNV); - builder.addExecutionMode(shaderEntry, spv::ExecutionModeDerivativeGroupQuadsNV); - builder.addExtension(spv::E_SPV_NV_compute_shader_derivatives); - } else if (glslangIntermediate->getLayoutDerivativeModeNone() == glslang::LayoutDerivativeGroupLinear) { - builder.addCapability(spv::CapabilityComputeDerivativeGroupLinearNV); - builder.addExecutionMode(shaderEntry, spv::ExecutionModeDerivativeGroupLinearNV); - builder.addExtension(spv::E_SPV_NV_compute_shader_derivatives); - } - break; -#ifndef GLSLANG_WEB - case EShLangTessEvaluation: - case EShLangTessControl: - builder.addCapability(spv::CapabilityTessellation); - - 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; - default: mode = spv::ExecutionModeMax; break; - } - if (mode != spv::ExecutionModeMax) - builder.addExecutionMode(shaderEntry, (spv::ExecutionMode)mode); - - switch (glslangIntermediate->getVertexSpacing()) { - case glslang::EvsEqual: mode = spv::ExecutionModeSpacingEqual; break; - case glslang::EvsFractionalEven: mode = spv::ExecutionModeSpacingFractionalEven; break; - case glslang::EvsFractionalOdd: mode = spv::ExecutionModeSpacingFractionalOdd; break; - default: mode = spv::ExecutionModeMax; break; - } - if (mode != spv::ExecutionModeMax) - builder.addExecutionMode(shaderEntry, (spv::ExecutionMode)mode); - - switch (glslangIntermediate->getVertexOrder()) { - case glslang::EvoCw: mode = spv::ExecutionModeVertexOrderCw; break; - case glslang::EvoCcw: mode = spv::ExecutionModeVertexOrderCcw; break; - default: mode = spv::ExecutionModeMax; break; - } - if (mode != spv::ExecutionModeMax) - builder.addExecutionMode(shaderEntry, (spv::ExecutionMode)mode); - - if (glslangIntermediate->getPointMode()) - builder.addExecutionMode(shaderEntry, spv::ExecutionModePointMode); - break; - - case EShLangGeometry: - builder.addCapability(spv::CapabilityGeometry); - switch (glslangIntermediate->getInputPrimitive()) { - case glslang::ElgPoints: mode = spv::ExecutionModeInputPoints; break; - case glslang::ElgLines: mode = spv::ExecutionModeInputLines; break; - case glslang::ElgLinesAdjacency: mode = spv::ExecutionModeInputLinesAdjacency; break; - case glslang::ElgTriangles: mode = spv::ExecutionModeTriangles; break; - case glslang::ElgTrianglesAdjacency: mode = spv::ExecutionModeInputTrianglesAdjacency; break; - default: mode = spv::ExecutionModeMax; break; - } - if (mode != spv::ExecutionModeMax) - builder.addExecutionMode(shaderEntry, (spv::ExecutionMode)mode); - - builder.addExecutionMode(shaderEntry, spv::ExecutionModeInvocations, glslangIntermediate->getInvocations()); - - switch (glslangIntermediate->getOutputPrimitive()) { - case glslang::ElgPoints: mode = spv::ExecutionModeOutputPoints; break; - case glslang::ElgLineStrip: mode = spv::ExecutionModeOutputLineStrip; break; - case glslang::ElgTriangleStrip: mode = spv::ExecutionModeOutputTriangleStrip; break; - default: mode = spv::ExecutionModeMax; break; - } - if (mode != spv::ExecutionModeMax) - builder.addExecutionMode(shaderEntry, (spv::ExecutionMode)mode); - builder.addExecutionMode(shaderEntry, spv::ExecutionModeOutputVertices, glslangIntermediate->getVertices()); - break; - - case EShLangRayGen: - case EShLangIntersect: - case EShLangAnyHit: - case EShLangClosestHit: - case EShLangMiss: - case EShLangCallable: - { - auto& extensions = glslangIntermediate->getRequestedExtensions(); - if (extensions.find("GL_NV_ray_tracing") == extensions.end()) { - builder.addCapability(spv::CapabilityRayTracingKHR); - builder.addExtension("SPV_KHR_ray_tracing"); - } - else { - builder.addCapability(spv::CapabilityRayTracingNV); - builder.addExtension("SPV_NV_ray_tracing"); - } - break; - } - case EShLangTaskNV: - case EShLangMeshNV: - builder.addCapability(spv::CapabilityMeshShadingNV); - builder.addExtension(spv::E_SPV_NV_mesh_shader); - if (glslangIntermediate->getSpv().spv >= glslang::EShTargetSpv_1_6) { - std::vector dimConstId; - 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)); - } - } - builder.addExecutionModeId(shaderEntry, spv::ExecutionModeLocalSizeId, dimConstId); - } else { - builder.addExecutionMode(shaderEntry, spv::ExecutionModeLocalSize, glslangIntermediate->getLocalSize(0), - glslangIntermediate->getLocalSize(1), - glslangIntermediate->getLocalSize(2)); - } - if (glslangIntermediate->getStage() == EShLangMeshNV) { - builder.addExecutionMode(shaderEntry, spv::ExecutionModeOutputVertices, - glslangIntermediate->getVertices()); - builder.addExecutionMode(shaderEntry, spv::ExecutionModeOutputPrimitivesNV, - glslangIntermediate->getPrimitives()); - - switch (glslangIntermediate->getOutputPrimitive()) { - case glslang::ElgPoints: mode = spv::ExecutionModeOutputPoints; break; - case glslang::ElgLines: mode = spv::ExecutionModeOutputLinesNV; break; - case glslang::ElgTriangles: mode = spv::ExecutionModeOutputTrianglesNV; break; - default: mode = spv::ExecutionModeMax; break; - } - if (mode != spv::ExecutionModeMax) - builder.addExecutionMode(shaderEntry, (spv::ExecutionMode)mode); - } - break; -#endif - - default: - break; - } - -#ifndef GLSLANG_WEB - // - // Add SPIR-V requirements (GL_EXT_spirv_intrinsics) - // - if (glslangIntermediate->hasSpirvRequirement()) { - const glslang::TSpirvRequirement& spirvRequirement = glslangIntermediate->getSpirvRequirement(); - - // Add SPIR-V extension requirement - for (auto& extension : spirvRequirement.extensions) - builder.addExtension(extension.c_str()); - - // Add SPIR-V capability requirement - for (auto capability : spirvRequirement.capabilities) - builder.addCapability(static_cast(capability)); - } - - // - // Add SPIR-V execution mode qualifiers (GL_EXT_spirv_intrinsics) - // - if (glslangIntermediate->hasSpirvExecutionMode()) { - const glslang::TSpirvExecutionMode spirvExecutionMode = glslangIntermediate->getSpirvExecutionMode(); - - // Add spirv_execution_mode - for (auto& mode : spirvExecutionMode.modes) { - if (!mode.second.empty()) { - std::vector literals; - TranslateLiterals(mode.second, literals); - builder.addExecutionMode(shaderEntry, static_cast(mode.first), literals); - } else - builder.addExecutionMode(shaderEntry, static_cast(mode.first)); - } - - // Add spirv_execution_mode_id - for (auto& modeId : spirvExecutionMode.modeIds) { - std::vector operandIds; - assert(!modeId.second.empty()); - for (auto extraOperand : modeId.second) { - if (extraOperand->getType().getQualifier().isSpecConstant()) - operandIds.push_back(getSymbolId(extraOperand->getAsSymbolNode())); - else - operandIds.push_back(createSpvConstant(*extraOperand)); - } - builder.addExecutionModeId(shaderEntry, static_cast(modeId.first), operandIds); - } - } -#endif -} - -// Finish creating SPV, after the traversal is complete. -void TGlslangToSpvTraverser::finishSpv() -{ - // Finish the entry point function - if (! entryPointTerminated) { - builder.setBuildPoint(shaderEntry->getLastBlock()); - builder.leaveFunction(); - } - - // finish off the entry-point SPV instruction by adding the Input/Output - for (auto it = iOSet.cbegin(); it != iOSet.cend(); ++it) - entryPoint->addIdOperand(*it); - - // Add capabilities, extensions, remove unneeded decorations, etc., - // based on the resulting SPIR-V. - // Note: WebGPU code generation must have the opportunity to aggressively - // prune unreachable merge blocks and continue targets. - builder.postProcess(); -} - -// Write the SPV into 'out'. -void TGlslangToSpvTraverser::dumpSpv(std::vector& out) -{ - builder.dump(out); -} - -// -// Implement the traversal functions. -// -// Return true from interior nodes to have the external traversal -// continue on to children. Return false if children were -// already processed. -// - -// -// Symbols can turn into -// - uniform/input reads -// - output writes -// - complex lvalue base setups: foo.bar[3].... , where we see foo and start up an access chain -// - something simple that degenerates into the last bullet -// -void TGlslangToSpvTraverser::visitSymbol(glslang::TIntermSymbol* symbol) -{ - SpecConstantOpModeGuard spec_constant_op_mode_setter(&builder); - if (symbol->getType().isStruct()) - glslangTypeToIdMap[symbol->getType().getStruct()] = symbol->getId(); - - if (symbol->getType().getQualifier().isSpecConstant()) - spec_constant_op_mode_setter.turnOnSpecConstantOpMode(); - -#ifdef ENABLE_HLSL - // Skip symbol handling if it is string-typed - if (symbol->getBasicType() == glslang::EbtString) - return; -#endif - - // getSymbolId() will set up all the IO decorations on the first call. - // Formal function parameters were mapped during makeFunctions(). - spv::Id id = getSymbolId(symbol); - - if (builder.isPointer(id)) { - if (!symbol->getType().getQualifier().isParamInput() && - !symbol->getType().getQualifier().isParamOutput()) { - // Include all "static use" and "linkage only" interface variables on the OpEntryPoint instruction - // Consider adding to the OpEntryPoint interface list. - // Only looking at structures if they have at least one member. - if (!symbol->getType().isStruct() || symbol->getType().getStruct()->size() > 0) { - spv::StorageClass sc = builder.getStorageClass(id); - // Before SPIR-V 1.4, we only want to include Input and Output. - // Starting with SPIR-V 1.4, we want all globals. - if ((glslangIntermediate->getSpv().spv >= glslang::EShTargetSpv_1_4 && builder.isGlobalStorage(id)) || - (sc == spv::StorageClassInput || sc == spv::StorageClassOutput)) { - iOSet.insert(id); - } - } - } - - // If the SPIR-V type is required to be different than the AST type - // (for ex SubgroupMasks or 3x4 ObjectToWorld/WorldToObject matrices), - // translate now from the SPIR-V type to the AST type, for the consuming - // operation. - // Note this turns it from an l-value to an r-value. - // Currently, all symbols needing this are inputs; avoid the map lookup when non-input. - if (symbol->getType().getQualifier().storage == glslang::EvqVaryingIn) - id = translateForcedType(id); - } - - // Only process non-linkage-only nodes for generating actual static uses - if (! linkageOnly || symbol->getQualifier().isSpecConstant()) { - // Prepare to generate code for the access - - // L-value chains will be computed left to right. We're on the symbol now, - // which is the left-most part of the access chain, so now is "clear" time, - // followed by setting the base. - builder.clearAccessChain(); - - // For now, we consider all user variables as being in memory, so they are pointers, - // except for - // A) R-Value arguments to a function, which are an intermediate object. - // See comments in handleUserFunctionCall(). - // B) Specialization constants (normal constants don't even come in as a variable), - // These are also pure R-values. - // C) R-Values from type translation, see above call to translateForcedType() - glslang::TQualifier qualifier = symbol->getQualifier(); - if (qualifier.isSpecConstant() || rValueParameters.find(symbol->getId()) != rValueParameters.end() || - !builder.isPointerType(builder.getTypeId(id))) - builder.setAccessChainRValue(id); - else - builder.setAccessChainLValue(id); - } - -#ifdef ENABLE_HLSL - // 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); - } - } - } - } - } - } - } -#endif -} - -bool TGlslangToSpvTraverser::visitBinary(glslang::TVisit /* visit */, glslang::TIntermBinary* node) -{ - builder.setLine(node->getLoc().line, node->getLoc().getFilename()); - if (node->getLeft()->getAsSymbolNode() != nullptr && node->getLeft()->getType().isStruct()) { - glslangTypeToIdMap[node->getLeft()->getType().getStruct()] = node->getLeft()->getAsSymbolNode()->getId(); - } - if (node->getRight()->getAsSymbolNode() != nullptr && node->getRight()->getType().isStruct()) { - glslangTypeToIdMap[node->getRight()->getType().getStruct()] = node->getRight()->getAsSymbolNode()->getId(); - } - - SpecConstantOpModeGuard spec_constant_op_mode_setter(&builder); - if (node->getType().getQualifier().isSpecConstant()) - spec_constant_op_mode_setter.turnOnSpecConstantOpMode(); - - // First, handle special cases - switch (node->getOp()) { - case glslang::EOpAssign: - case glslang::EOpAddAssign: - case glslang::EOpSubAssign: - case glslang::EOpMulAssign: - case glslang::EOpVectorTimesMatrixAssign: - case glslang::EOpVectorTimesScalarAssign: - case glslang::EOpMatrixTimesScalarAssign: - case glslang::EOpMatrixTimesMatrixAssign: - case glslang::EOpDivAssign: - case glslang::EOpModAssign: - case glslang::EOpAndAssign: - case glslang::EOpInclusiveOrAssign: - case glslang::EOpExclusiveOrAssign: - case glslang::EOpLeftShiftAssign: - case glslang::EOpRightShiftAssign: - // A bin-op assign "a += b" means the same thing as "a = a + b" - // where a is evaluated before b. For a simple assignment, GLSL - // says to evaluate the left before the right. So, always, left - // node then right node. - { - // get the left l-value, save it away - builder.clearAccessChain(); - node->getLeft()->traverse(this); - spv::Builder::AccessChain lValue = builder.getAccessChain(); - - // evaluate the right - builder.clearAccessChain(); - node->getRight()->traverse(this); - spv::Id rValue = accessChainLoad(node->getRight()->getType()); - - if (node->getOp() != glslang::EOpAssign) { - // the left is also an r-value - builder.setAccessChain(lValue); - spv::Id leftRValue = accessChainLoad(node->getLeft()->getType()); - - // do the operation - spv::Builder::AccessChain::CoherentFlags coherentFlags = TranslateCoherent(node->getLeft()->getType()); - coherentFlags |= TranslateCoherent(node->getRight()->getType()); - OpDecorations decorations = { TranslatePrecisionDecoration(node->getOperationPrecision()), - TranslateNoContractionDecoration(node->getType().getQualifier()), - TranslateNonUniformDecoration(coherentFlags) }; - rValue = createBinaryOperation(node->getOp(), decorations, - convertGlslangToSpvType(node->getType()), leftRValue, rValue, - node->getType().getBasicType()); - - // these all need their counterparts in createBinaryOperation() - assert(rValue != spv::NoResult); - } - - // store the result - builder.setAccessChain(lValue); - multiTypeStore(node->getLeft()->getType(), rValue); - - // assignments are expressions having an rValue after they are evaluated... - builder.clearAccessChain(); - builder.setAccessChainRValue(rValue); - } - return false; - case glslang::EOpIndexDirect: - case glslang::EOpIndexDirectStruct: - { - // Structure, array, matrix, or vector indirection with statically known index. - // Get the left part of the access chain. - node->getLeft()->traverse(this); - - // Add the next element in the chain - - const int glslangIndex = node->getRight()->getAsConstantUnion()->getConstArray()[0].getIConst(); - if (! node->getLeft()->getType().isArray() && - node->getLeft()->getType().isVector() && - node->getOp() == glslang::EOpIndexDirect) { - // Swizzle is uniform so propagate uniform into access chain - spv::Builder::AccessChain::CoherentFlags coherentFlags = TranslateCoherent(node->getLeft()->getType()); - coherentFlags.nonUniform = 0; - // This is essentially a hard-coded vector swizzle of size 1, - // so short circuit the access-chain stuff with a swizzle. - std::vector swizzle; - swizzle.push_back(glslangIndex); - int dummySize; - builder.accessChainPushSwizzle(swizzle, convertGlslangToSpvType(node->getLeft()->getType()), - coherentFlags, - glslangIntermediate->getBaseAlignmentScalar( - node->getLeft()->getType(), dummySize)); - } else { - - // Load through a block reference is performed with a dot operator that - // is mapped to EOpIndexDirectStruct. When we get to the actual reference, - // do a load and reset the access chain. - if (node->getLeft()->isReference() && - !node->getLeft()->getType().isArray() && - node->getOp() == glslang::EOpIndexDirectStruct) - { - spv::Id left = accessChainLoad(node->getLeft()->getType()); - builder.clearAccessChain(); - builder.setAccessChainLValue(left); - } - - int spvIndex = glslangIndex; - if (node->getLeft()->getBasicType() == glslang::EbtBlock && - node->getOp() == glslang::EOpIndexDirectStruct) - { - // This may be, e.g., an anonymous block-member selection, which generally need - // index remapping due to hidden members in anonymous blocks. - long long glslangId = glslangTypeToIdMap[node->getLeft()->getType().getStruct()]; - if (memberRemapper.find(glslangId) != memberRemapper.end()) { - std::vector& remapper = memberRemapper[glslangId]; - assert(remapper.size() > 0); - spvIndex = remapper[glslangIndex]; - } - } - - // Struct reference propagates uniform lvalue - spv::Builder::AccessChain::CoherentFlags coherentFlags = - TranslateCoherent(node->getLeft()->getType()); - coherentFlags.nonUniform = 0; - - // normal case for indexing array or structure or block - builder.accessChainPush(builder.makeIntConstant(spvIndex), - coherentFlags, - node->getLeft()->getType().getBufferReferenceAlignment()); - - // Add capabilities here for accessing PointSize and clip/cull distance. - // We have deferred generation of associated capabilities until now. - if (node->getLeft()->getType().isStruct() && ! node->getLeft()->getType().isArray()) - declareUseOfStructMember(*(node->getLeft()->getType().getStruct()), glslangIndex); - } - } - return false; - case glslang::EOpIndexIndirect: - { - // Array, matrix, or vector indirection with variable index. - // Will use native SPIR-V access-chain for and array indirection; - // matrices are arrays of vectors, so will also work for a matrix. - // Will use the access chain's 'component' for variable index into a vector. - - // This adapter is building access chains left to right. - // Set up the access chain to the left. - node->getLeft()->traverse(this); - - // save it so that computing the right side doesn't trash it - spv::Builder::AccessChain partial = builder.getAccessChain(); - - // compute the next index in the chain - builder.clearAccessChain(); - 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); - - // Only if index is nonUniform should we propagate nonUniform into access chain - spv::Builder::AccessChain::CoherentFlags index_flags = TranslateCoherent(node->getRight()->getType()); - spv::Builder::AccessChain::CoherentFlags coherent_flags = TranslateCoherent(node->getLeft()->getType()); - coherent_flags.nonUniform = index_flags.nonUniform; - - if (! node->getLeft()->getType().isArray() && node->getLeft()->getType().isVector()) { - int dummySize; - builder.accessChainPushComponent( - index, convertGlslangToSpvType(node->getLeft()->getType()), coherent_flags, - glslangIntermediate->getBaseAlignmentScalar(node->getLeft()->getType(), - dummySize)); - } else - builder.accessChainPush(index, coherent_flags, - node->getLeft()->getType().getBufferReferenceAlignment()); - } - return false; - case glslang::EOpVectorSwizzle: - { - node->getLeft()->traverse(this); - std::vector swizzle; - convertSwizzle(*node->getRight()->getAsAggregate(), swizzle); - int dummySize; - builder.accessChainPushSwizzle(swizzle, convertGlslangToSpvType(node->getLeft()->getType()), - TranslateCoherent(node->getLeft()->getType()), - glslangIntermediate->getBaseAlignmentScalar(node->getLeft()->getType(), - dummySize)); - } - return false; - case glslang::EOpMatrixSwizzle: - logger->missingFunctionality("matrix swizzle"); - return true; - case glslang::EOpLogicalOr: - case glslang::EOpLogicalAnd: - { - - // These may require short circuiting, but can sometimes be done as straight - // binary operations. The right operand must be short circuited if it has - // side effects, and should probably be if it is complex. - if (isTrivial(node->getRight()->getAsTyped())) - break; // handle below as a normal binary operation - // otherwise, we need to do dynamic short circuiting on the right operand - spv::Id result = createShortCircuit(node->getOp(), *node->getLeft()->getAsTyped(), - *node->getRight()->getAsTyped()); - builder.clearAccessChain(); - builder.setAccessChainRValue(result); - } - return false; - default: - break; - } - - // Assume generic binary op... - - // get right operand - builder.clearAccessChain(); - node->getLeft()->traverse(this); - spv::Id left = accessChainLoad(node->getLeft()->getType()); - - // get left operand - builder.clearAccessChain(); - node->getRight()->traverse(this); - 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, - convertGlslangToSpvType(node->getType()), left, right, - node->getLeft()->getType().getBasicType()); - - builder.clearAccessChain(); - if (! result) { - logger->missingFunctionality("unknown glslang binary operation"); - return true; // pick up a child as the place-holder result - } else { - builder.setAccessChainRValue(result); - return false; - } -} - -spv::Id TGlslangToSpvTraverser::convertLoadedBoolInUniformToUint(const glslang::TType& type, - spv::Id nominalTypeId, - spv::Id loadedId) -{ - if (builder.isScalarType(nominalTypeId)) { - // Conversion for bool - spv::Id boolType = builder.makeBoolType(); - if (nominalTypeId != boolType) - return builder.createBinOp(spv::OpINotEqual, boolType, loadedId, 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) - loadedId = builder.createBinOp(spv::OpINotEqual, bvecType, loadedId, - makeSmearedConstant(builder.makeUintConstant(0), vecSize)); - } else if (builder.isArrayType(nominalTypeId)) { - // Conversion for bool array - spv::Id boolArrayTypeId = convertGlslangToSpvType(type); - if (nominalTypeId != boolArrayTypeId) - { - // Use OpCopyLogical from SPIR-V 1.4 if available. - if (glslangIntermediate->getSpv().spv >= glslang::EShTargetSpv_1_4) - return builder.createUnaryOp(spv::OpCopyLogical, boolArrayTypeId, loadedId); - - glslang::TType glslangElementType(type, 0); - spv::Id elementNominalTypeId = builder.getContainedTypeId(nominalTypeId); - std::vector constituents; - for (int index = 0; index < type.getOuterArraySize(); ++index) { - // get the element - spv::Id elementValue = builder.createCompositeExtract(loadedId, elementNominalTypeId, index); - - // recursively convert it - spv::Id elementConvertedValue = convertLoadedBoolInUniformToUint(glslangElementType, elementNominalTypeId, elementValue); - constituents.push_back(elementConvertedValue); - } - return builder.createCompositeConstruct(boolArrayTypeId, constituents); - } - } - - return loadedId; -} - -// Figure out what, if any, type changes are needed when accessing a specific built-in. -// Returns . -// Also see comment for 'forceType', regarding tracking SPIR-V-required types. -std::pair TGlslangToSpvTraverser::getForcedType(glslang::TBuiltInVariable glslangBuiltIn, - const glslang::TType& glslangType) -{ - switch(glslangBuiltIn) - { - case glslang::EbvSubGroupEqMask: - case glslang::EbvSubGroupGeMask: - case glslang::EbvSubGroupGtMask: - case glslang::EbvSubGroupLeMask: - case glslang::EbvSubGroupLtMask: { - // these require changing a 64-bit scaler -> a vector of 32-bit components - if (glslangType.isVector()) - break; - spv::Id ivec4_type = builder.makeVectorType(builder.makeUintType(32), 4); - spv::Id uint64_type = builder.makeUintType(64); - std::pair ret(ivec4_type, uint64_type); - return ret; - } - // There are no SPIR-V builtins defined for these and map onto original non-transposed - // builtins. During visitBinary we insert a transpose - case glslang::EbvWorldToObject3x4: - case glslang::EbvObjectToWorld3x4: { - spv::Id mat43 = builder.makeMatrixType(builder.makeFloatType(32), 4, 3); - spv::Id mat34 = builder.makeMatrixType(builder.makeFloatType(32), 3, 4); - std::pair ret(mat43, mat34); - return ret; - } - default: - break; - } - - std::pair ret(spv::NoType, spv::NoType); - return ret; -} - -// For an object previously identified (see getForcedType() and forceType) -// as needing type translations, do the translation needed for a load, turning -// an L-value into in R-value. -spv::Id TGlslangToSpvTraverser::translateForcedType(spv::Id object) -{ - const auto forceIt = forceType.find(object); - if (forceIt == forceType.end()) - return object; - - spv::Id desiredTypeId = forceIt->second; - spv::Id objectTypeId = builder.getTypeId(object); - assert(builder.isPointerType(objectTypeId)); - objectTypeId = builder.getContainedTypeId(objectTypeId); - if (builder.isVectorType(objectTypeId) && - builder.getScalarTypeWidth(builder.getContainedTypeId(objectTypeId)) == 32) { - if (builder.getScalarTypeWidth(desiredTypeId) == 64) { - // handle 32-bit v.xy* -> 64-bit - builder.clearAccessChain(); - builder.setAccessChainLValue(object); - object = builder.accessChainLoad(spv::NoPrecision, spv::DecorationMax, spv::DecorationMax, objectTypeId); - std::vector components; - components.push_back(builder.createCompositeExtract(object, builder.getContainedTypeId(objectTypeId), 0)); - components.push_back(builder.createCompositeExtract(object, builder.getContainedTypeId(objectTypeId), 1)); - - spv::Id vecType = builder.makeVectorType(builder.getContainedTypeId(objectTypeId), 2); - return builder.createUnaryOp(spv::OpBitcast, desiredTypeId, - builder.createCompositeConstruct(vecType, components)); - } else { - logger->missingFunctionality("forcing 32-bit vector type to non 64-bit scalar"); - } - } else if (builder.isMatrixType(objectTypeId)) { - // There are no SPIR-V builtins defined for 3x4 variants of ObjectToWorld/WorldToObject - // and we insert a transpose after loading the original non-transposed builtins - builder.clearAccessChain(); - builder.setAccessChainLValue(object); - object = builder.accessChainLoad(spv::NoPrecision, spv::DecorationMax, spv::DecorationMax, objectTypeId); - return builder.createUnaryOp(spv::OpTranspose, desiredTypeId, object); - - } else { - logger->missingFunctionality("forcing non 32-bit vector type"); - } - - return object; -} - -bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TIntermUnary* node) -{ - builder.setLine(node->getLoc().line, node->getLoc().getFilename()); - - SpecConstantOpModeGuard spec_constant_op_mode_setter(&builder); - if (node->getType().getQualifier().isSpecConstant()) - spec_constant_op_mode_setter.turnOnSpecConstantOpMode(); - - spv::Id result = spv::NoResult; - - // try texturing first - result = createImageTextureFunctionCall(node); - if (result != spv::NoResult) { - builder.clearAccessChain(); - builder.setAccessChainRValue(result); - - return false; // done with this node - } - - // Non-texturing. - - 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. - - spv::Id length; - if (node->getOperand()->getType().isCoopMat()) { - spec_constant_op_mode_setter.turnOnSpecConstantOpMode(); - - spv::Id typeId = convertGlslangToSpvType(node->getOperand()->getType()); - assert(builder.isCooperativeMatrixType(typeId)); - - length = builder.createCooperativeMatrixLength(typeId); - } else { - glslang::TIntermTyped* block = node->getOperand()->getAsBinaryNode()->getLeft(); - block->traverse(this); - unsigned int member = node->getOperand()->getAsBinaryNode()->getRight()->getAsConstantUnion() - ->getConstArray()[0].getUConst(); - length = builder.createArrayLength(builder.accessChainGetLValue(), member); - } - - // GLSL semantics say the result of .length() is an int, while SPIR-V says - // signedness must be 0. So, convert from SPIR-V unsigned back to GLSL's - // AST expectation of a signed result. - if (glslangIntermediate->getSource() == glslang::EShSourceGlsl) { - if (builder.isInSpecConstCodeGenMode()) { - length = builder.createBinOp(spv::OpIAdd, builder.makeIntType(32), length, builder.makeIntConstant(0)); - } else { - length = builder.createUnaryOp(spv::OpBitcast, builder.makeIntType(32), length); - } - } - - builder.clearAccessChain(); - builder.setAccessChainRValue(length); - - return false; - } - - // Start by evaluating the operand - - // Does it need a swizzle inversion? If so, evaluation is inverted; - // operate first on the swizzle base, then apply the swizzle. - spv::Id invertedType = spv::NoType; - auto resultType = [&invertedType, &node, this](){ return invertedType != spv::NoType ? - invertedType : convertGlslangToSpvType(node->getType()); }; - if (node->getOp() == glslang::EOpInterpolateAtCentroid) - invertedType = getInvertedSwizzleType(*node->getOperand()); - - builder.clearAccessChain(); - TIntermNode *operandNode; - if (invertedType != spv::NoType) - operandNode = node->getOperand()->getAsBinaryNode()->getLeft(); - else - operandNode = node->getOperand(); - - operandNode->traverse(this); - - spv::Id operand = spv::NoResult; - - spv::Builder::AccessChain::CoherentFlags lvalueCoherentFlags; - -#ifndef GLSLANG_WEB - if (node->getOp() == glslang::EOpAtomicCounterIncrement || - node->getOp() == glslang::EOpAtomicCounterDecrement || - node->getOp() == glslang::EOpAtomicCounter || - (node->getOp() == glslang::EOpInterpolateAtCentroid && - glslangIntermediate->getSource() != glslang::EShSourceHlsl) || - node->getOp() == glslang::EOpRayQueryProceed || - node->getOp() == glslang::EOpRayQueryGetRayTMin || - node->getOp() == glslang::EOpRayQueryGetRayFlags || - node->getOp() == glslang::EOpRayQueryGetWorldRayOrigin || - node->getOp() == glslang::EOpRayQueryGetWorldRayDirection || - node->getOp() == glslang::EOpRayQueryGetIntersectionCandidateAABBOpaque || - node->getOp() == glslang::EOpRayQueryTerminate || - node->getOp() == glslang::EOpRayQueryConfirmIntersection || - (node->getOp() == glslang::EOpSpirvInst && operandNode->getAsTyped()->getQualifier().isSpirvByReference())) { - operand = builder.accessChainGetLValue(); // Special case l-value operands - lvalueCoherentFlags = builder.getAccessChain().coherentFlags; - lvalueCoherentFlags |= TranslateCoherent(operandNode->getAsTyped()->getType()); - } else if (operandNode->getAsTyped()->getQualifier().isSpirvLiteral()) { - // Will be translated to a literal value, make a placeholder here - operand = spv::NoResult; - } else -#endif - { - operand = accessChainLoad(node->getOperand()->getType()); - } - - OpDecorations decorations = { TranslatePrecisionDecoration(node->getOperationPrecision()), - TranslateNoContractionDecoration(node->getType().getQualifier()), - TranslateNonUniformDecoration(node->getType().getQualifier()) }; - - // it could be a conversion - if (! result) - result = createConversion(node->getOp(), decorations, resultType(), operand, - node->getOperand()->getBasicType()); - - // if not, then possibly an operation - if (! result) - result = createUnaryOperation(node->getOp(), decorations, resultType(), operand, - node->getOperand()->getBasicType(), lvalueCoherentFlags); - -#ifndef GLSLANG_WEB - // it could be attached to a SPIR-V intruction - if (!result) { - if (node->getOp() == glslang::EOpSpirvInst) { - const auto& spirvInst = node->getSpirvInstruction(); - if (spirvInst.set == "") { - spv::IdImmediate idImmOp = {true, operand}; - if (operandNode->getAsTyped()->getQualifier().isSpirvLiteral()) { - // Translate the constant to a literal value - std::vector literals; - glslang::TVector constants; - constants.push_back(operandNode->getAsConstantUnion()); - TranslateLiterals(constants, literals); - idImmOp = {false, literals[0]}; - } - - if (node->getBasicType() == glslang::EbtVoid) - builder.createNoResultOp(static_cast(spirvInst.id), {idImmOp}); - else - result = builder.createOp(static_cast(spirvInst.id), resultType(), {idImmOp}); - } else { - result = builder.createBuiltinCall( - resultType(), spirvInst.set == "GLSL.std.450" ? stdBuiltins : getExtBuiltins(spirvInst.set.c_str()), - spirvInst.id, {operand}); - } - - if (node->getBasicType() == glslang::EbtVoid) - return false; // done with this node - } - } -#endif - - if (result) { - if (invertedType) { - result = createInvertedSwizzle(decorations.precision, *node->getOperand(), result); - decorations.addNonUniform(builder, result); - } - - builder.clearAccessChain(); - builder.setAccessChainRValue(result); - - return false; // done with this node - } - - // it must be a special case, check... - switch (node->getOp()) { - case glslang::EOpPostIncrement: - case glslang::EOpPostDecrement: - case glslang::EOpPreIncrement: - case glslang::EOpPreDecrement: - { - // we need the integer value "1" or the floating point "1.0" to add/subtract - spv::Id one = 0; - if (node->getBasicType() == glslang::EbtFloat) - one = builder.makeFloatConstant(1.0F); -#ifndef GLSLANG_WEB - else if (node->getBasicType() == glslang::EbtDouble) - one = builder.makeDoubleConstant(1.0); - 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); - else if (node->getBasicType() == glslang::EbtInt64 || node->getBasicType() == glslang::EbtUint64) - one = builder.makeInt64Constant(1); -#endif - else - one = builder.makeIntConstant(1); - glslang::TOperator op; - if (node->getOp() == glslang::EOpPreIncrement || - node->getOp() == glslang::EOpPostIncrement) - op = glslang::EOpAdd; - else - op = glslang::EOpSub; - - spv::Id result = createBinaryOperation(op, decorations, - convertGlslangToSpvType(node->getType()), operand, one, - node->getType().getBasicType()); - assert(result != spv::NoResult); - - // The result of operation is always stored, but conditionally the - // consumed result. The consumed result is always an r-value. - builder.accessChainStore(result, - TranslateNonUniformDecoration(builder.getAccessChain().coherentFlags)); - builder.clearAccessChain(); - if (node->getOp() == glslang::EOpPreIncrement || - node->getOp() == glslang::EOpPreDecrement) - builder.setAccessChainRValue(result); - else - builder.setAccessChainRValue(operand); - } - - return false; - -#ifndef GLSLANG_WEB - case glslang::EOpEmitStreamVertex: - builder.createNoResultOp(spv::OpEmitStreamVertex, operand); - return false; - case glslang::EOpEndStreamPrimitive: - builder.createNoResultOp(spv::OpEndStreamPrimitive, operand); - return false; - case glslang::EOpRayQueryTerminate: - builder.createNoResultOp(spv::OpRayQueryTerminateKHR, operand); - return false; - case glslang::EOpRayQueryConfirmIntersection: - builder.createNoResultOp(spv::OpRayQueryConfirmIntersectionKHR, operand); - return false; -#endif - - default: - logger->missingFunctionality("unknown glslang unary"); - return true; // pick up operand as placeholder result - } -} - -// Construct a composite object, recursively copying members if their types don't match -spv::Id TGlslangToSpvTraverser::createCompositeConstruct(spv::Id resultTypeId, std::vector constituents) -{ - for (int c = 0; c < (int)constituents.size(); ++c) { - spv::Id& constituent = constituents[c]; - spv::Id lType = builder.getContainedTypeId(resultTypeId, c); - spv::Id rType = builder.getTypeId(constituent); - if (lType != rType) { - if (glslangIntermediate->getSpv().spv >= glslang::EShTargetSpv_1_4) { - constituent = builder.createUnaryOp(spv::OpCopyLogical, lType, constituent); - } else if (builder.isStructType(rType)) { - std::vector rTypeConstituents; - int numrTypeConstituents = builder.getNumTypeConstituents(rType); - for (int i = 0; i < numrTypeConstituents; ++i) { - rTypeConstituents.push_back(builder.createCompositeExtract(constituent, - builder.getContainedTypeId(rType, i), i)); - } - constituents[c] = createCompositeConstruct(lType, rTypeConstituents); - } else { - assert(builder.isArrayType(rType)); - std::vector rTypeConstituents; - int numrTypeConstituents = builder.getNumTypeConstituents(rType); - - spv::Id elementRType = builder.getContainedTypeId(rType); - for (int i = 0; i < numrTypeConstituents; ++i) { - rTypeConstituents.push_back(builder.createCompositeExtract(constituent, elementRType, i)); - } - constituents[c] = createCompositeConstruct(lType, rTypeConstituents); - } - } - } - return builder.createCompositeConstruct(resultTypeId, constituents); -} - -bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TIntermAggregate* node) -{ - SpecConstantOpModeGuard spec_constant_op_mode_setter(&builder); - if (node->getType().getQualifier().isSpecConstant()) - spec_constant_op_mode_setter.turnOnSpecConstantOpMode(); - - spv::Id result = spv::NoResult; - spv::Id invertedType = spv::NoType; // to use to override the natural type of the node - std::vector complexLvalues; // for holding swizzling l-values too complex for - // SPIR-V, for an out parameter - std::vector temporaryLvalues; // temporaries to pass, as proxies for complexLValues - - auto resultType = [&invertedType, &node, this](){ return invertedType != spv::NoType ? - invertedType : - convertGlslangToSpvType(node->getType()); }; - - // try texturing - result = createImageTextureFunctionCall(node); - if (result != spv::NoResult) { - builder.clearAccessChain(); - builder.setAccessChainRValue(result); - - return false; - } -#ifndef GLSLANG_WEB - else if (node->getOp() == glslang::EOpImageStore || - node->getOp() == glslang::EOpImageStoreLod || - node->getOp() == glslang::EOpImageAtomicStore) { - // "imageStore" is a special case, which has no result - return false; - } -#endif - - glslang::TOperator binOp = glslang::EOpNull; - bool reduceComparison = true; - bool isMatrix = false; - bool noReturnValue = false; - bool atomic = false; - - spv::Builder::AccessChain::CoherentFlags lvalueCoherentFlags; - - assert(node->getOp()); - - spv::Decoration precision = TranslatePrecisionDecoration(node->getOperationPrecision()); - - switch (node->getOp()) { - case glslang::EOpSequence: - { - if (preVisit) - ++sequenceDepth; - else - --sequenceDepth; - - if (sequenceDepth == 1) { - // If this is the parent node of all the functions, we want to see them - // early, so all call points have actual SPIR-V functions to reference. - // In all cases, still let the traverser visit the children for us. - makeFunctions(node->getAsAggregate()->getSequence()); - - // Also, we want all globals initializers to go into the beginning of the entry point, before - // anything else gets there, so visit out of order, doing them all now. - makeGlobalInitializers(node->getAsAggregate()->getSequence()); - - //Pre process linker objects for ray tracing stages - if (glslangIntermediate->isRayTracingStage()) - collectRayTracingLinkerObjects(); - - // Initializers are done, don't want to visit again, but functions and link objects need to be processed, - // so do them manually. - visitFunctions(node->getAsAggregate()->getSequence()); - - return false; - } - - return true; - } - case glslang::EOpLinkerObjects: - { - if (visit == glslang::EvPreVisit) - linkageOnly = true; - else - linkageOnly = false; - - return true; - } - case glslang::EOpComma: - { - // processing from left to right naturally leaves the right-most - // lying around in the access chain - glslang::TIntermSequence& glslangOperands = node->getSequence(); - for (int i = 0; i < (int)glslangOperands.size(); ++i) - glslangOperands[i]->traverse(this); - - return false; - } - case glslang::EOpFunction: - if (visit == glslang::EvPreVisit) { - if (isShaderEntryPoint(node)) { - inEntryPoint = true; - builder.setBuildPoint(shaderEntry->getLastBlock()); - currentFunction = shaderEntry; - } else { - handleFunctionEntry(node); - } - } else { - if (inEntryPoint) - entryPointTerminated = true; - builder.leaveFunction(); - inEntryPoint = false; - } - - return true; - case glslang::EOpParameters: - // Parameters will have been consumed by EOpFunction processing, but not - // the body, so we still visited the function node's children, making this - // child redundant. - return false; - case glslang::EOpFunctionCall: - { - builder.setLine(node->getLoc().line, node->getLoc().getFilename()); - if (node->isUserDefined()) - result = handleUserFunctionCall(node); - if (result) { - builder.clearAccessChain(); - builder.setAccessChainRValue(result); - } else - logger->missingFunctionality("missing user function; linker needs to catch that"); - - return false; - } - case glslang::EOpConstructMat2x2: - case glslang::EOpConstructMat2x3: - case glslang::EOpConstructMat2x4: - case glslang::EOpConstructMat3x2: - case glslang::EOpConstructMat3x3: - case glslang::EOpConstructMat3x4: - case glslang::EOpConstructMat4x2: - case glslang::EOpConstructMat4x3: - case glslang::EOpConstructMat4x4: - case glslang::EOpConstructDMat2x2: - case glslang::EOpConstructDMat2x3: - case glslang::EOpConstructDMat2x4: - case glslang::EOpConstructDMat3x2: - case glslang::EOpConstructDMat3x3: - case glslang::EOpConstructDMat3x4: - 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: - case glslang::EOpConstructF16Mat2x2: - case glslang::EOpConstructF16Mat2x3: - case glslang::EOpConstructF16Mat2x4: - case glslang::EOpConstructF16Mat3x2: - case glslang::EOpConstructF16Mat3x3: - case glslang::EOpConstructF16Mat3x4: - case glslang::EOpConstructF16Mat4x2: - case glslang::EOpConstructF16Mat4x3: - case glslang::EOpConstructF16Mat4x4: - isMatrix = true; - // fall through - case glslang::EOpConstructFloat: - case glslang::EOpConstructVec2: - case glslang::EOpConstructVec3: - case glslang::EOpConstructVec4: - case glslang::EOpConstructDouble: - case glslang::EOpConstructDVec2: - case glslang::EOpConstructDVec3: - case glslang::EOpConstructDVec4: - case glslang::EOpConstructFloat16: - case glslang::EOpConstructF16Vec2: - case glslang::EOpConstructF16Vec3: - case glslang::EOpConstructF16Vec4: - 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: - case glslang::EOpConstructIVec4: - case glslang::EOpConstructUint: - case glslang::EOpConstructUVec2: - case glslang::EOpConstructUVec3: - case glslang::EOpConstructUVec4: - case glslang::EOpConstructInt64: - case glslang::EOpConstructI64Vec2: - case glslang::EOpConstructI64Vec3: - case glslang::EOpConstructI64Vec4: - case glslang::EOpConstructUint64: - case glslang::EOpConstructU64Vec2: - case glslang::EOpConstructU64Vec3: - case glslang::EOpConstructU64Vec4: - case glslang::EOpConstructStruct: - case glslang::EOpConstructTextureSampler: - case glslang::EOpConstructReference: - case glslang::EOpConstructCooperativeMatrix: - { - builder.setLine(node->getLoc().line, node->getLoc().getFilename()); - std::vector arguments; - translateArguments(*node, arguments, lvalueCoherentFlags); - spv::Id constructed; - if (node->getOp() == glslang::EOpConstructTextureSampler) - constructed = builder.createOp(spv::OpSampledImage, resultType(), arguments); - else if (node->getOp() == glslang::EOpConstructStruct || - node->getOp() == glslang::EOpConstructCooperativeMatrix || - node->getType().isArray()) { - std::vector constituents; - for (int c = 0; c < (int)arguments.size(); ++c) - constituents.push_back(arguments[c]); - constructed = createCompositeConstruct(resultType(), constituents); - } else if (isMatrix) - constructed = builder.createMatrixConstructor(precision, arguments, resultType()); - else - constructed = builder.createConstructor(precision, arguments, resultType()); - - if (node->getType().getQualifier().isNonUniform()) { - builder.addDecoration(constructed, spv::DecorationNonUniformEXT); - } - - builder.clearAccessChain(); - builder.setAccessChainRValue(constructed); - - return false; - } - - // These six are component-wise compares with component-wise results. - // Forward on to createBinaryOperation(), requesting a vector result. - case glslang::EOpLessThan: - case glslang::EOpGreaterThan: - case glslang::EOpLessThanEqual: - case glslang::EOpGreaterThanEqual: - case glslang::EOpVectorEqual: - case glslang::EOpVectorNotEqual: - { - // Map the operation to a binary - binOp = node->getOp(); - reduceComparison = false; - switch (node->getOp()) { - case glslang::EOpVectorEqual: binOp = glslang::EOpVectorEqual; break; - case glslang::EOpVectorNotEqual: binOp = glslang::EOpVectorNotEqual; break; - default: binOp = node->getOp(); break; - } - - break; - } - case glslang::EOpMul: - // component-wise matrix multiply - binOp = glslang::EOpMul; - break; - case glslang::EOpOuterProduct: - // two vectors multiplied to make a matrix - binOp = glslang::EOpOuterProduct; - break; - case glslang::EOpDot: - { - // for scalar dot product, use multiply - glslang::TIntermSequence& glslangOperands = node->getSequence(); - if (glslangOperands[0]->getAsTyped()->getVectorSize() == 1) - binOp = glslang::EOpMul; - break; - } - case glslang::EOpMod: - // when an aggregate, this is the floating-point mod built-in function, - // which can be emitted by the one in createBinaryOperation() - binOp = glslang::EOpMod; - break; - - case glslang::EOpEmitVertex: - case glslang::EOpEndPrimitive: - case glslang::EOpBarrier: - case glslang::EOpMemoryBarrier: - case glslang::EOpMemoryBarrierAtomicCounter: - case glslang::EOpMemoryBarrierBuffer: - case glslang::EOpMemoryBarrierImage: - case glslang::EOpMemoryBarrierShared: - case glslang::EOpGroupMemoryBarrier: - case glslang::EOpDeviceMemoryBarrier: - case glslang::EOpAllMemoryBarrierWithGroupSync: - 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; - - case glslang::EOpAtomicAdd: - case glslang::EOpAtomicSubtract: - case glslang::EOpAtomicMin: - case glslang::EOpAtomicMax: - case glslang::EOpAtomicAnd: - case glslang::EOpAtomicOr: - case glslang::EOpAtomicXor: - case glslang::EOpAtomicExchange: - case glslang::EOpAtomicCompSwap: - atomic = true; - break; - -#ifndef GLSLANG_WEB - case glslang::EOpAtomicStore: - noReturnValue = true; - // fallthrough - case glslang::EOpAtomicLoad: - 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; - - case glslang::EOpAbsDifference: - case glslang::EOpAddSaturate: - case glslang::EOpSubSaturate: - case glslang::EOpAverage: - case glslang::EOpAverageRounded: - case glslang::EOpMul32x16: - builder.addCapability(spv::CapabilityIntegerFunctions2INTEL); - builder.addExtension("SPV_INTEL_shader_integer_functions2"); - binOp = node->getOp(); - break; - - case glslang::EOpIgnoreIntersectionNV: - case glslang::EOpTerminateRayNV: - case glslang::EOpTraceNV: - case glslang::EOpTraceRayMotionNV: - case glslang::EOpTraceKHR: - case glslang::EOpExecuteCallableNV: - case glslang::EOpExecuteCallableKHR: - case glslang::EOpWritePackedPrimitiveIndices4x8NV: - noReturnValue = true; - break; - case glslang::EOpRayQueryInitialize: - case glslang::EOpRayQueryTerminate: - case glslang::EOpRayQueryGenerateIntersection: - case glslang::EOpRayQueryConfirmIntersection: - builder.addExtension("SPV_KHR_ray_query"); - builder.addCapability(spv::CapabilityRayQueryKHR); - noReturnValue = true; - break; - case glslang::EOpRayQueryProceed: - case glslang::EOpRayQueryGetIntersectionType: - case glslang::EOpRayQueryGetRayTMin: - case glslang::EOpRayQueryGetRayFlags: - case glslang::EOpRayQueryGetIntersectionT: - case glslang::EOpRayQueryGetIntersectionInstanceCustomIndex: - case glslang::EOpRayQueryGetIntersectionInstanceId: - case glslang::EOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffset: - case glslang::EOpRayQueryGetIntersectionGeometryIndex: - case glslang::EOpRayQueryGetIntersectionPrimitiveIndex: - case glslang::EOpRayQueryGetIntersectionBarycentrics: - case glslang::EOpRayQueryGetIntersectionFrontFace: - case glslang::EOpRayQueryGetIntersectionCandidateAABBOpaque: - case glslang::EOpRayQueryGetIntersectionObjectRayDirection: - case glslang::EOpRayQueryGetIntersectionObjectRayOrigin: - case glslang::EOpRayQueryGetWorldRayDirection: - case glslang::EOpRayQueryGetWorldRayOrigin: - case glslang::EOpRayQueryGetIntersectionObjectToWorld: - case glslang::EOpRayQueryGetIntersectionWorldToObject: - builder.addExtension("SPV_KHR_ray_query"); - builder.addCapability(spv::CapabilityRayQueryKHR); - break; - case glslang::EOpCooperativeMatrixLoad: - case glslang::EOpCooperativeMatrixStore: - noReturnValue = true; - break; - case glslang::EOpBeginInvocationInterlock: - case glslang::EOpEndInvocationInterlock: - builder.addExtension(spv::E_SPV_EXT_fragment_shader_interlock); - noReturnValue = true; - break; -#endif - - case glslang::EOpDebugPrintf: - noReturnValue = true; - break; - - default: - break; - } - - // - // See if it maps to a regular operation. - // - if (binOp != glslang::EOpNull) { - glslang::TIntermTyped* left = node->getSequence()[0]->getAsTyped(); - glslang::TIntermTyped* right = node->getSequence()[1]->getAsTyped(); - assert(left && right); - - builder.clearAccessChain(); - left->traverse(this); - spv::Id leftId = accessChainLoad(left->getType()); - - builder.clearAccessChain(); - right->traverse(this); - spv::Id rightId = accessChainLoad(right->getType()); - - builder.setLine(node->getLoc().line, node->getLoc().getFilename()); - OpDecorations decorations = { precision, - TranslateNoContractionDecoration(node->getType().getQualifier()), - TranslateNonUniformDecoration(node->getType().getQualifier()) }; - result = createBinaryOperation(binOp, decorations, - resultType(), leftId, rightId, - left->getType().getBasicType(), reduceComparison); - - // code above should only make binOp that exists in createBinaryOperation - assert(result != spv::NoResult); - builder.clearAccessChain(); - builder.setAccessChainRValue(result); - - return false; - } - - // - // Create the list of operands. - // - glslang::TIntermSequence& glslangOperands = node->getSequence(); - std::vector operands; - std::vector memoryAccessOperands; - for (int arg = 0; arg < (int)glslangOperands.size(); ++arg) { - // special case l-value operands; there are just a few - bool lvalue = false; - switch (node->getOp()) { - case glslang::EOpModf: - if (arg == 1) - lvalue = true; - break; - - case glslang::EOpRayQueryInitialize: - case glslang::EOpRayQueryTerminate: - case glslang::EOpRayQueryConfirmIntersection: - case glslang::EOpRayQueryProceed: - case glslang::EOpRayQueryGenerateIntersection: - case glslang::EOpRayQueryGetIntersectionType: - case glslang::EOpRayQueryGetIntersectionT: - case glslang::EOpRayQueryGetIntersectionInstanceCustomIndex: - case glslang::EOpRayQueryGetIntersectionInstanceId: - case glslang::EOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffset: - case glslang::EOpRayQueryGetIntersectionGeometryIndex: - case glslang::EOpRayQueryGetIntersectionPrimitiveIndex: - case glslang::EOpRayQueryGetIntersectionBarycentrics: - case glslang::EOpRayQueryGetIntersectionFrontFace: - case glslang::EOpRayQueryGetIntersectionObjectRayDirection: - case glslang::EOpRayQueryGetIntersectionObjectRayOrigin: - case glslang::EOpRayQueryGetIntersectionObjectToWorld: - case glslang::EOpRayQueryGetIntersectionWorldToObject: - if (arg == 0) - lvalue = true; - break; - - case glslang::EOpAtomicAdd: - case glslang::EOpAtomicSubtract: - case glslang::EOpAtomicMin: - case glslang::EOpAtomicMax: - case glslang::EOpAtomicAnd: - case glslang::EOpAtomicOr: - case glslang::EOpAtomicXor: - case glslang::EOpAtomicExchange: - case glslang::EOpAtomicCompSwap: - if (arg == 0) - lvalue = true; - break; - -#ifndef GLSLANG_WEB - case glslang::EOpFrexp: - if (arg == 1) - lvalue = true; - break; - case glslang::EOpInterpolateAtSample: - case glslang::EOpInterpolateAtOffset: - case glslang::EOpInterpolateAtVertex: - if (arg == 0) { - // If GLSL, use the address of the interpolant argument. - // If HLSL, use an internal version of OpInterolates that takes - // the rvalue of the interpolant. A fixup pass in spirv-opt - // legalization will remove the OpLoad and convert to an lvalue. - // Had to do this because legalization will only propagate a - // builtin into an rvalue. - lvalue = glslangIntermediate->getSource() != glslang::EShSourceHlsl; - - // Does it need a swizzle inversion? If so, evaluation is inverted; - // operate first on the swizzle base, then apply the swizzle. - // That is, we transform - // - // interpolate(v.zy) -> interpolate(v).zy - // - if (glslangOperands[0]->getAsOperator() && - glslangOperands[0]->getAsOperator()->getOp() == glslang::EOpVectorSwizzle) - invertedType = convertGlslangToSpvType( - glslangOperands[0]->getAsBinaryNode()->getLeft()->getType()); - } - break; - case glslang::EOpAtomicLoad: - case glslang::EOpAtomicStore: - 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; - case glslang::EOpAddCarry: - case glslang::EOpSubBorrow: - if (arg == 2) - lvalue = true; - break; - case glslang::EOpUMulExtended: - case glslang::EOpIMulExtended: - if (arg >= 2) - lvalue = true; - break; - case glslang::EOpCooperativeMatrixLoad: - if (arg == 0 || arg == 1) - lvalue = true; - break; - case glslang::EOpCooperativeMatrixStore: - if (arg == 1) - lvalue = true; - break; - case glslang::EOpSpirvInst: - if (glslangOperands[arg]->getAsTyped()->getQualifier().isSpirvByReference()) - lvalue = true; - break; -#endif - default: - break; - } - builder.clearAccessChain(); - if (invertedType != spv::NoType && arg == 0) - glslangOperands[0]->getAsBinaryNode()->getLeft()->traverse(this); - else - glslangOperands[arg]->traverse(this); - -#ifndef GLSLANG_WEB - if (node->getOp() == glslang::EOpCooperativeMatrixLoad || - node->getOp() == glslang::EOpCooperativeMatrixStore) { - - if (arg == 1) { - // fold "element" parameter into the access chain - spv::Builder::AccessChain save = builder.getAccessChain(); - builder.clearAccessChain(); - glslangOperands[2]->traverse(this); - - spv::Id elementId = accessChainLoad(glslangOperands[2]->getAsTyped()->getType()); - - builder.setAccessChain(save); - - // Point to the first element of the array. - builder.accessChainPush(elementId, - TranslateCoherent(glslangOperands[arg]->getAsTyped()->getType()), - glslangOperands[arg]->getAsTyped()->getType().getBufferReferenceAlignment()); - - spv::Builder::AccessChain::CoherentFlags coherentFlags = builder.getAccessChain().coherentFlags; - unsigned int alignment = builder.getAccessChain().alignment; - - int memoryAccess = TranslateMemoryAccess(coherentFlags); - if (node->getOp() == glslang::EOpCooperativeMatrixLoad) - memoryAccess &= ~spv::MemoryAccessMakePointerAvailableKHRMask; - if (node->getOp() == glslang::EOpCooperativeMatrixStore) - memoryAccess &= ~spv::MemoryAccessMakePointerVisibleKHRMask; - if (builder.getStorageClass(builder.getAccessChain().base) == - spv::StorageClassPhysicalStorageBufferEXT) { - memoryAccess = (spv::MemoryAccessMask)(memoryAccess | spv::MemoryAccessAlignedMask); - } - - memoryAccessOperands.push_back(spv::IdImmediate(false, memoryAccess)); - - if (memoryAccess & spv::MemoryAccessAlignedMask) { - memoryAccessOperands.push_back(spv::IdImmediate(false, alignment)); - } - - if (memoryAccess & - (spv::MemoryAccessMakePointerAvailableKHRMask | spv::MemoryAccessMakePointerVisibleKHRMask)) { - memoryAccessOperands.push_back(spv::IdImmediate(true, - builder.makeUintConstant(TranslateMemoryScope(coherentFlags)))); - } - } else if (arg == 2) { - continue; - } - } -#endif - - // for l-values, pass the address, for r-values, pass the value - if (lvalue) { - if (invertedType == spv::NoType && !builder.isSpvLvalue()) { - // SPIR-V cannot represent an l-value containing a swizzle that doesn't - // reduce to a simple access chain. So, we need a temporary vector to - // receive the result, and must later swizzle that into the original - // l-value. - complexLvalues.push_back(builder.getAccessChain()); - temporaryLvalues.push_back(builder.createVariable( - spv::NoPrecision, spv::StorageClassFunction, - builder.accessChainGetInferredType(), "swizzleTemp")); - operands.push_back(temporaryLvalues.back()); - } else { - operands.push_back(builder.accessChainGetLValue()); - } - lvalueCoherentFlags = builder.getAccessChain().coherentFlags; - lvalueCoherentFlags |= TranslateCoherent(glslangOperands[arg]->getAsTyped()->getType()); - } else { - builder.setLine(node->getLoc().line, node->getLoc().getFilename()); - glslang::TOperator glslangOp = node->getOp(); - if (arg == 1 && - (glslangOp == glslang::EOpRayQueryGetIntersectionType || - glslangOp == glslang::EOpRayQueryGetIntersectionT || - glslangOp == glslang::EOpRayQueryGetIntersectionInstanceCustomIndex || - glslangOp == glslang::EOpRayQueryGetIntersectionInstanceId || - glslangOp == glslang::EOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffset || - glslangOp == glslang::EOpRayQueryGetIntersectionGeometryIndex || - glslangOp == glslang::EOpRayQueryGetIntersectionPrimitiveIndex || - glslangOp == glslang::EOpRayQueryGetIntersectionBarycentrics || - glslangOp == glslang::EOpRayQueryGetIntersectionFrontFace || - glslangOp == glslang::EOpRayQueryGetIntersectionObjectRayDirection || - glslangOp == glslang::EOpRayQueryGetIntersectionObjectRayOrigin || - glslangOp == glslang::EOpRayQueryGetIntersectionObjectToWorld || - glslangOp == glslang::EOpRayQueryGetIntersectionWorldToObject - )) { - bool cond = glslangOperands[arg]->getAsConstantUnion()->getConstArray()[0].getBConst(); - operands.push_back(builder.makeIntConstant(cond ? 1 : 0)); - } else if ((arg == 10 && glslangOp == glslang::EOpTraceKHR) || - (arg == 11 && glslangOp == glslang::EOpTraceRayMotionNV) || - (arg == 1 && glslangOp == glslang::EOpExecuteCallableKHR)) { - const int opdNum = glslangOp == glslang::EOpTraceKHR ? 10 : (glslangOp == glslang::EOpTraceRayMotionNV ? 11 : 1); - const int set = glslangOp == glslang::EOpExecuteCallableKHR ? 1 : 0; - - const int location = glslangOperands[opdNum]->getAsConstantUnion()->getConstArray()[0].getUConst(); - auto itNode = locationToSymbol[set].find(location); - visitSymbol(itNode->second); - spv::Id symId = getSymbolId(itNode->second); - operands.push_back(symId); -#ifndef GLSLANG_WEB - } else if (glslangOperands[arg]->getAsTyped()->getQualifier().isSpirvLiteral()) { - // Will be translated to a literal value, make a placeholder here - operands.push_back(spv::NoResult); -#endif - } else { - operands.push_back(accessChainLoad(glslangOperands[arg]->getAsTyped()->getType())); - } - } - } - - builder.setLine(node->getLoc().line, node->getLoc().getFilename()); -#ifndef GLSLANG_WEB - if (node->getOp() == glslang::EOpCooperativeMatrixLoad) { - std::vector idImmOps; - - idImmOps.push_back(spv::IdImmediate(true, operands[1])); // buf - idImmOps.push_back(spv::IdImmediate(true, operands[2])); // stride - idImmOps.push_back(spv::IdImmediate(true, operands[3])); // colMajor - idImmOps.insert(idImmOps.end(), memoryAccessOperands.begin(), memoryAccessOperands.end()); - // get the pointee type - spv::Id typeId = builder.getContainedTypeId(builder.getTypeId(operands[0])); - assert(builder.isCooperativeMatrixType(typeId)); - // do the op - spv::Id result = builder.createOp(spv::OpCooperativeMatrixLoadNV, typeId, idImmOps); - // store the result to the pointer (out param 'm') - builder.createStore(result, operands[0]); - result = 0; - } else if (node->getOp() == glslang::EOpCooperativeMatrixStore) { - std::vector idImmOps; - - idImmOps.push_back(spv::IdImmediate(true, operands[1])); // buf - idImmOps.push_back(spv::IdImmediate(true, operands[0])); // object - idImmOps.push_back(spv::IdImmediate(true, operands[2])); // stride - idImmOps.push_back(spv::IdImmediate(true, operands[3])); // colMajor - idImmOps.insert(idImmOps.end(), memoryAccessOperands.begin(), memoryAccessOperands.end()); - - builder.createNoResultOp(spv::OpCooperativeMatrixStoreNV, idImmOps); - result = 0; - } else -#endif - if (atomic) { - // Handle all atomics - glslang::TBasicType typeProxy = (node->getOp() == glslang::EOpAtomicStore) - ? node->getSequence()[0]->getAsTyped()->getBasicType() : node->getBasicType(); - result = createAtomicOperation(node->getOp(), precision, resultType(), operands, typeProxy, - lvalueCoherentFlags); -#ifndef GLSLANG_WEB - } else if (node->getOp() == glslang::EOpSpirvInst) { - const auto& spirvInst = node->getSpirvInstruction(); - if (spirvInst.set == "") { - std::vector idImmOps; - for (unsigned int i = 0; i < glslangOperands.size(); ++i) { - if (glslangOperands[i]->getAsTyped()->getQualifier().isSpirvLiteral()) { - // Translate the constant to a literal value - std::vector literals; - glslang::TVector constants; - constants.push_back(glslangOperands[i]->getAsConstantUnion()); - TranslateLiterals(constants, literals); - idImmOps.push_back({false, literals[0]}); - } else - idImmOps.push_back({true, operands[i]}); - } - - if (node->getBasicType() == glslang::EbtVoid) - builder.createNoResultOp(static_cast(spirvInst.id), idImmOps); - else - result = builder.createOp(static_cast(spirvInst.id), resultType(), idImmOps); - } else { - result = builder.createBuiltinCall( - resultType(), spirvInst.set == "GLSL.std.450" ? stdBuiltins : getExtBuiltins(spirvInst.set.c_str()), - spirvInst.id, operands); - } - noReturnValue = node->getBasicType() == glslang::EbtVoid; -#endif - } else if (node->getOp() == glslang::EOpDebugPrintf) { - if (!nonSemanticDebugPrintf) { - nonSemanticDebugPrintf = builder.import("NonSemantic.DebugPrintf"); - } - result = builder.createBuiltinCall(builder.makeVoidType(), nonSemanticDebugPrintf, spv::NonSemanticDebugPrintfDebugPrintf, operands); - builder.addExtension(spv::E_SPV_KHR_non_semantic_info); - } else { - // Pass through to generic operations. - switch (glslangOperands.size()) { - case 0: - 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(), lvalueCoherentFlags); - } - break; - default: - result = createMiscOperation(node->getOp(), precision, resultType(), operands, node->getBasicType()); - break; - } - - if (invertedType != spv::NoResult) - result = createInvertedSwizzle(precision, *glslangOperands[0]->getAsBinaryNode(), result); - - for (unsigned int i = 0; i < temporaryLvalues.size(); ++i) { - builder.setAccessChain(complexLvalues[i]); - builder.accessChainStore(builder.createLoad(temporaryLvalues[i], spv::NoPrecision), - TranslateNonUniformDecoration(complexLvalues[i].coherentFlags)); - } - } - - if (noReturnValue) - return false; - - if (! result) { - logger->missingFunctionality("unknown glslang aggregate"); - return true; // pick up a child as a placeholder operand - } else { - builder.clearAccessChain(); - builder.setAccessChainRValue(result); - return false; - } -} - -// 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 OpSelect can handle it - const auto isOpSelectable = [&]() { - if (node->getBasicType() == glslang::EbtVoid) - return false; - // OpSelect can do all other types starting with SPV 1.4 - if (glslangIntermediate->getSpv().spv < glslang::EShTargetSpv_1_4) { - // pre-1.4, only scalars and vectors can be handled - if ((!node->getType().isScalar() && !node->getType().isVector())) - return false; - } - return true; - }; - - // 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... - - if (!isOpSelectable()) - 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, node->getLoc().getFilename()); - - // done if void - if (node->getBasicType() == glslang::EbtVoid) - return; - - // emit code to select between trueValue and falseValue - - // see if OpSelect can handle it - if (isOpSelectable()) { - // Emit OpSelect for this selection. - - // smear condition to vector, if necessary (AST is always scalar) - // Before 1.4, smear like for mix(), starting with 1.4, keep it scalar - if (glslangIntermediate->getSpv().spv < glslang::EShTargetSpv_1_4 && 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(TranslatePrecisionDecoration(node->getType()), - 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(TranslatePrecisionDecoration(node->getType()), 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; -} - -bool TGlslangToSpvTraverser::visitSwitch(glslang::TVisit /* visit */, glslang::TIntermSwitch* node) -{ - // emit and get the condition before doing anything with switch - 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; - glslang::TIntermSequence& sequence = node->getBody()->getSequence(); - std::vector caseValues; - std::vector valueIndexToSegment(sequence.size()); // note: probably not all are used, it is an overestimate - for (glslang::TIntermSequence::iterator c = sequence.begin(); c != sequence.end(); ++c) { - TIntermNode* child = *c; - if (child->getAsBranchNode() && child->getAsBranchNode()->getFlowOp() == glslang::EOpDefault) - defaultSegment = (int)codeSegments.size(); - else if (child->getAsBranchNode() && child->getAsBranchNode()->getFlowOp() == glslang::EOpCase) { - valueIndexToSegment[caseValues.size()] = (int)codeSegments.size(); - caseValues.push_back(child->getAsBranchNode()->getExpression()->getAsConstantUnion() - ->getConstArray()[0].getIConst()); - } else - codeSegments.push_back(child); - } - - // handle the case where the last code segment is missing, due to no code - // statements between the last case and the end of the switch statement - if ((caseValues.size() && (int)codeSegments.size() == valueIndexToSegment[caseValues.size() - 1]) || - (int)codeSegments.size() == defaultSegment) - codeSegments.push_back(nullptr); - - // 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); - - // emit all the code in the segments - breakForLoop.push(false); - for (unsigned int s = 0; s < codeSegments.size(); ++s) { - builder.nextSwitchSegment(segmentBlocks, s); - if (codeSegments[s]) - codeSegments[s]->traverse(this); - else - builder.addSwitchBreak(); - } - breakForLoop.pop(); - - builder.endSwitch(segmentBlocks); - - return false; -} - -void TGlslangToSpvTraverser::visitConstantUnion(glslang::TIntermConstantUnion* node) -{ -#ifndef GLSLANG_WEB - if (node->getQualifier().isSpirvLiteral()) - return; // Translated to a literal value, skip further processing -#endif - - int nextConst = 0; - spv::Id constant = createSpvConstantFromConstUnionArray(node->getType(), node->getConstArray(), nextConst, false); - - builder.clearAccessChain(); - builder.setAccessChainRValue(constant); -} - -bool TGlslangToSpvTraverser::visitLoop(glslang::TVisit /* visit */, glslang::TIntermLoop* node) -{ - auto blocks = builder.makeNewLoop(); - builder.createBranch(&blocks.head); - - // Loop control: - std::vector operands; - const spv::LoopControlMask control = TranslateLoopControl(*node, operands); - - // 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, node->getLoc().getFilename()); - builder.setBuildPoint(&blocks.head); - builder.createLoopMerge(&blocks.merge, &blocks.continue_target, control, operands); - 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()); - builder.createConditionalBranch(condition, &blocks.body, &blocks.merge); - - builder.setBuildPoint(&blocks.body); - breakForLoop.push(true); - if (node->getBody()) - node->getBody()->traverse(this); - builder.createBranch(&blocks.continue_target); - breakForLoop.pop(); - - builder.setBuildPoint(&blocks.continue_target); - if (node->getTerminal()) - node->getTerminal()->traverse(this); - builder.createBranch(&blocks.head); - } else { - builder.setLine(node->getLoc().line, node->getLoc().getFilename()); - builder.createBranch(&blocks.body); - - breakForLoop.push(true); - builder.setBuildPoint(&blocks.body); - if (node->getBody()) - node->getBody()->traverse(this); - builder.createBranch(&blocks.continue_target); - breakForLoop.pop(); - - builder.setBuildPoint(&blocks.continue_target); - if (node->getTerminal()) - node->getTerminal()->traverse(this); - if (node->getTest()) { - node->getTest()->traverse(this); - spv::Id condition = - accessChainLoad(node->getTest()->getType()); - builder.createConditionalBranch(condition, &blocks.head, &blocks.merge); - } else { - // TODO: unless there was a break/return/discard instruction - // somewhere in the body, this is an infinite loop, so we should - // issue a warning. - builder.createBranch(&blocks.head); - } - } - builder.setBuildPoint(&blocks.merge); - builder.closeLoop(); - return false; -} - -bool TGlslangToSpvTraverser::visitBranch(glslang::TVisit /* visit */, glslang::TIntermBranch* node) -{ - if (node->getExpression()) - node->getExpression()->traverse(this); - - builder.setLine(node->getLoc().line, node->getLoc().getFilename()); - - switch (node->getFlowOp()) { - case glslang::EOpKill: - if (glslangIntermediate->getSpv().spv >= glslang::EShTargetSpv_1_6) { - if (glslangIntermediate->getSource() == glslang::EShSourceHlsl) { - builder.addCapability(spv::CapabilityDemoteToHelperInvocation); - builder.createNoResultOp(spv::OpDemoteToHelperInvocationEXT); - } else { - builder.makeStatementTerminator(spv::OpTerminateInvocation, "post-terminate-invocation"); - } - } else { - builder.makeStatementTerminator(spv::OpKill, "post-discard"); - } - break; - case glslang::EOpTerminateInvocation: - builder.addExtension(spv::E_SPV_KHR_terminate_invocation); - builder.makeStatementTerminator(spv::OpTerminateInvocation, "post-terminate-invocation"); - break; - case glslang::EOpBreak: - if (breakForLoop.top()) - builder.createLoopExit(); - else - builder.addSwitchBreak(); - break; - case glslang::EOpContinue: - builder.createLoopContinue(); - break; - case glslang::EOpReturn: - if (node->getExpression() != nullptr) { - const glslang::TType& glslangReturnType = node->getExpression()->getType(); - spv::Id returnId = accessChainLoad(glslangReturnType); - if (builder.getTypeId(returnId) != currentFunction->getReturnType() || - TranslatePrecisionDecoration(glslangReturnType) != currentFunction->getReturnPrecision()) { - builder.clearAccessChain(); - spv::Id copyId = builder.createVariable(currentFunction->getReturnPrecision(), - spv::StorageClassFunction, currentFunction->getReturnType()); - builder.setAccessChainLValue(copyId); - multiTypeStore(glslangReturnType, returnId); - returnId = builder.createLoad(copyId, currentFunction->getReturnPrecision()); - } - builder.makeReturn(false, returnId); - } else - builder.makeReturn(false); - - builder.clearAccessChain(); - break; - -#ifndef GLSLANG_WEB - case glslang::EOpDemote: - builder.createNoResultOp(spv::OpDemoteToHelperInvocationEXT); - builder.addExtension(spv::E_SPV_EXT_demote_to_helper_invocation); - builder.addCapability(spv::CapabilityDemoteToHelperInvocationEXT); - break; - case glslang::EOpTerminateRayKHR: - builder.makeStatementTerminator(spv::OpTerminateRayKHR, "post-terminateRayKHR"); - break; - case glslang::EOpIgnoreIntersectionKHR: - builder.makeStatementTerminator(spv::OpIgnoreIntersectionKHR, "post-ignoreIntersectionKHR"); - break; -#endif - - default: - assert(0); - break; - } - - return false; -} - -spv::Id TGlslangToSpvTraverser::createSpvVariable(const glslang::TIntermSymbol* node, spv::Id forcedType) -{ - // First, steer off constants, which are not SPIR-V variables, but - // can still have a mapping to a SPIR-V Id. - // This includes specialization constants. - if (node->getQualifier().isConstant()) { - spv::Id result = createSpvConstant(*node); - if (result != spv::NoResult) - return result; - } - - // Now, handle actual variables - spv::StorageClass storageClass = TranslateStorageClass(node->getType()); - spv::Id spvType = forcedType == spv::NoType ? convertGlslangToSpvType(node->getType()) - : forcedType; - - const bool contains16BitType = node->getType().contains16BitFloat() || - node->getType().contains16BitInt(); - if (contains16BitType) { - switch (storageClass) { - case spv::StorageClassInput: - case spv::StorageClassOutput: - builder.addIncorporatedExtension(spv::E_SPV_KHR_16bit_storage, spv::Spv_1_3); - builder.addCapability(spv::CapabilityStorageInputOutput16); - break; - case spv::StorageClassUniform: - builder.addIncorporatedExtension(spv::E_SPV_KHR_16bit_storage, spv::Spv_1_3); - if (node->getType().getQualifier().storage == glslang::EvqBuffer) - builder.addCapability(spv::CapabilityStorageUniformBufferBlock16); - else - builder.addCapability(spv::CapabilityStorageUniform16); - break; -#ifndef GLSLANG_WEB - case spv::StorageClassPushConstant: - builder.addIncorporatedExtension(spv::E_SPV_KHR_16bit_storage, spv::Spv_1_3); - builder.addCapability(spv::CapabilityStoragePushConstant16); - break; - case spv::StorageClassStorageBuffer: - case spv::StorageClassPhysicalStorageBufferEXT: - builder.addIncorporatedExtension(spv::E_SPV_KHR_16bit_storage, spv::Spv_1_3); - builder.addCapability(spv::CapabilityStorageUniformBufferBlock16); - break; -#endif - default: - if (storageClass == spv::StorageClassWorkgroup && - node->getType().getBasicType() == glslang::EbtBlock) { - builder.addCapability(spv::CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR); - break; - } - if (node->getType().contains16BitFloat()) - builder.addCapability(spv::CapabilityFloat16); - if (node->getType().contains16BitInt()) - builder.addCapability(spv::CapabilityInt16); - break; - } - } - - if (node->getType().contains8BitInt()) { - if (storageClass == spv::StorageClassPushConstant) { - builder.addIncorporatedExtension(spv::E_SPV_KHR_8bit_storage, spv::Spv_1_5); - builder.addCapability(spv::CapabilityStoragePushConstant8); - } else if (storageClass == spv::StorageClassUniform) { - builder.addIncorporatedExtension(spv::E_SPV_KHR_8bit_storage, spv::Spv_1_5); - builder.addCapability(spv::CapabilityUniformAndStorageBuffer8BitAccess); - } else if (storageClass == spv::StorageClassStorageBuffer) { - builder.addIncorporatedExtension(spv::E_SPV_KHR_8bit_storage, spv::Spv_1_5); - builder.addCapability(spv::CapabilityStorageBuffer8BitAccess); - } else if (storageClass == spv::StorageClassWorkgroup && - node->getType().getBasicType() == glslang::EbtBlock) { - builder.addCapability(spv::CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR); - } else { - builder.addCapability(spv::CapabilityInt8); - } - } - - const char* name = node->getName().c_str(); - if (glslang::IsAnonymous(name)) - name = ""; - - spv::Id initializer = spv::NoResult; - - if (node->getType().getQualifier().storage == glslang::EvqUniform && !node->getConstArray().empty()) { - int nextConst = 0; - initializer = createSpvConstantFromConstUnionArray(node->getType(), - node->getConstArray(), - nextConst, - false /* specConst */); - } else if (node->getType().getQualifier().isNullInit()) { - initializer = builder.makeNullConstant(spvType); - } - - return builder.createVariable(spv::NoPrecision, storageClass, spvType, name, initializer); -} - -// Return type Id of the sampled type. -spv::Id TGlslangToSpvTraverser::getSampledType(const glslang::TSampler& sampler) -{ - switch (sampler.type) { - case glslang::EbtInt: return builder.makeIntType(32); - case glslang::EbtUint: return builder.makeUintType(32); - case glslang::EbtFloat: return builder.makeFloatType(32); -#ifndef GLSLANG_WEB - case glslang::EbtFloat16: - builder.addExtension(spv::E_SPV_AMD_gpu_shader_half_float_fetch); - builder.addCapability(spv::CapabilityFloat16ImageAMD); - return builder.makeFloatType(16); - case glslang::EbtInt64: - builder.addExtension(spv::E_SPV_EXT_shader_image_int64); - builder.addCapability(spv::CapabilityInt64ImageEXT); - return builder.makeIntType(64); - case glslang::EbtUint64: - builder.addExtension(spv::E_SPV_EXT_shader_image_int64); - builder.addCapability(spv::CapabilityInt64ImageEXT); - return builder.makeUintType(64); -#endif - default: - assert(0); - return builder.makeFloatType(32); - } -} - -// If node is a swizzle operation, return the type that should be used if -// the swizzle base is first consumed by another operation, before the swizzle -// is applied. -spv::Id TGlslangToSpvTraverser::getInvertedSwizzleType(const glslang::TIntermTyped& node) -{ - if (node.getAsOperator() && - node.getAsOperator()->getOp() == glslang::EOpVectorSwizzle) - return convertGlslangToSpvType(node.getAsBinaryNode()->getLeft()->getType()); - else - return spv::NoType; -} - -// When inverting a swizzle with a parent op, this function -// will apply the swizzle operation to a completed parent operation. -spv::Id TGlslangToSpvTraverser::createInvertedSwizzle(spv::Decoration precision, const glslang::TIntermTyped& node, - spv::Id parentResult) -{ - std::vector swizzle; - convertSwizzle(*node.getAsBinaryNode()->getRight()->getAsAggregate(), swizzle); - return builder.createRvalueSwizzle(precision, convertGlslangToSpvType(node.getType()), parentResult, swizzle); -} - -// Convert a glslang AST swizzle node to a swizzle vector for building SPIR-V. -void TGlslangToSpvTraverser::convertSwizzle(const glslang::TIntermAggregate& node, std::vector& swizzle) -{ - const glslang::TIntermSequence& swizzleSequence = node.getSequence(); - for (int i = 0; i < (int)swizzleSequence.size(); ++i) - swizzle.push_back(swizzleSequence[i]->getAsConstantUnion()->getConstArray()[0].getIConst()); -} - -// Convert from a glslang type to an SPV type, by calling into a -// recursive version of this function. This establishes the inherited -// layout state rooted from the top-level type. -spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& type, bool forwardReferenceOnly) -{ - return convertGlslangToSpvType(type, getExplicitLayout(type), type.getQualifier(), false, forwardReferenceOnly); -} - -// 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, bool forwardReferenceOnly) -{ - spv::Id spvType = spv::NoResult; - - switch (type.getBasicType()) { - case glslang::EbtVoid: - spvType = builder.makeVoidType(); - assert (! type.isArray()); - break; - case glslang::EbtBool: - // "transparent" bool doesn't exist in SPIR-V. The GLSL convention is - // a 32-bit int where non-0 means true. - if (explicitLayout != glslang::ElpNone) - spvType = builder.makeUintType(32); - else - spvType = builder.makeBoolType(); - break; - case glslang::EbtInt: - spvType = builder.makeIntType(32); - break; - case glslang::EbtUint: - spvType = builder.makeUintType(32); - break; - case glslang::EbtFloat: - spvType = builder.makeFloatType(32); - break; -#ifndef GLSLANG_WEB - case glslang::EbtDouble: - spvType = builder.makeFloatType(64); - break; - case glslang::EbtFloat16: - spvType = builder.makeFloatType(16); - break; - case glslang::EbtInt8: - spvType = builder.makeIntType(8); - break; - case glslang::EbtUint8: - spvType = builder.makeUintType(8); - break; - case glslang::EbtInt16: - spvType = builder.makeIntType(16); - break; - case glslang::EbtUint16: - spvType = builder.makeUintType(16); - break; - case glslang::EbtInt64: - spvType = builder.makeIntType(64); - break; - case glslang::EbtUint64: - spvType = builder.makeUintType(64); - break; - case glslang::EbtAtomicUint: - builder.addCapability(spv::CapabilityAtomicStorage); - spvType = builder.makeUintType(32); - break; - case glslang::EbtAccStruct: - switch (glslangIntermediate->getStage()) { - case EShLangRayGen: - case EShLangIntersect: - case EShLangAnyHit: - case EShLangClosestHit: - case EShLangMiss: - case EShLangCallable: - // these all should have the RayTracingNV/KHR capability already - break; - default: - { - auto& extensions = glslangIntermediate->getRequestedExtensions(); - if (extensions.find("GL_EXT_ray_query") != extensions.end()) { - builder.addExtension(spv::E_SPV_KHR_ray_query); - builder.addCapability(spv::CapabilityRayQueryKHR); - } - } - break; - } - spvType = builder.makeAccelerationStructureType(); - break; - case glslang::EbtRayQuery: - { - auto& extensions = glslangIntermediate->getRequestedExtensions(); - if (extensions.find("GL_EXT_ray_query") != extensions.end()) { - builder.addExtension(spv::E_SPV_KHR_ray_query); - builder.addCapability(spv::CapabilityRayQueryKHR); - } - spvType = builder.makeRayQueryType(); - } - break; - case glslang::EbtReference: - { - // Make the forward pointer, then recurse to convert the structure type, then - // patch up the forward pointer with a real pointer type. - if (forwardPointers.find(type.getReferentType()) == forwardPointers.end()) { - spv::Id forwardId = builder.makeForwardPointer(spv::StorageClassPhysicalStorageBufferEXT); - forwardPointers[type.getReferentType()] = forwardId; - } - spvType = forwardPointers[type.getReferentType()]; - if (!forwardReferenceOnly) { - spv::Id referentType = convertGlslangToSpvType(*type.getReferentType()); - builder.makePointerFromForwardPointer(spv::StorageClassPhysicalStorageBufferEXT, - forwardPointers[type.getReferentType()], - referentType); - } - } - break; -#endif - case glslang::EbtSampler: - { - const glslang::TSampler& sampler = type.getSampler(); - if (sampler.isPureSampler()) { - spvType = builder.makeSamplerType(); - } else { - // an image is present, make its type - spvType = builder.makeImageType(getSampledType(sampler), TranslateDimensionality(sampler), - sampler.isShadow(), sampler.isArrayed(), sampler.isMultiSample(), - sampler.isImageClass() ? 2 : 1, TranslateImageFormat(type)); - if (sampler.isCombined()) { - // already has both image and sampler, make the combined type - spvType = builder.makeSampledImageType(spvType); - } - } - } - break; - case glslang::EbtStruct: - case glslang::EbtBlock: - { - // If we've seen this struct type, return it - const glslang::TTypeList* glslangMembers = type.getStruct(); - - // Try to share structs for different layouts, but not yet for other - // kinds of qualification (primarily not yet including interpolant qualification). - if (! HasNonLayoutQualifiers(type, qualifier)) - spvType = structMap[explicitLayout][qualifier.layoutMatrix][glslangMembers]; - if (spvType != spv::NoResult) - break; - - // else, we haven't seen it... - if (type.getBasicType() == glslang::EbtBlock) - memberRemapper[glslangTypeToIdMap[glslangMembers]].resize(glslangMembers->size()); - spvType = convertGlslangStructToSpvType(type, glslangMembers, explicitLayout, qualifier); - } - break; - case glslang::EbtString: - // no type used for OpString - return 0; -#ifndef GLSLANG_WEB - case glslang::EbtSpirvType: { - // GL_EXT_spirv_intrinsics - const auto& spirvType = type.getSpirvType(); - const auto& spirvInst = spirvType.spirvInst; - - std::vector operands; - for (const auto& typeParam : spirvType.typeParams) { - // Constant expression - if (typeParam.constant->isLiteral()) { - if (typeParam.constant->getBasicType() == glslang::EbtFloat) { - float floatValue = static_cast(typeParam.constant->getConstArray()[0].getDConst()); - unsigned literal = *reinterpret_cast(&floatValue); - operands.push_back({false, literal}); - } else if (typeParam.constant->getBasicType() == glslang::EbtInt) { - unsigned literal = typeParam.constant->getConstArray()[0].getIConst(); - operands.push_back({false, literal}); - } else if (typeParam.constant->getBasicType() == glslang::EbtUint) { - unsigned literal = typeParam.constant->getConstArray()[0].getUConst(); - operands.push_back({false, literal}); - } else if (typeParam.constant->getBasicType() == glslang::EbtBool) { - unsigned literal = typeParam.constant->getConstArray()[0].getBConst(); - operands.push_back({false, literal}); - } else if (typeParam.constant->getBasicType() == glslang::EbtString) { - auto str = typeParam.constant->getConstArray()[0].getSConst()->c_str(); - unsigned literal = 0; - char* literalPtr = reinterpret_cast(&literal); - unsigned charCount = 0; - char ch = 0; - do { - ch = *(str++); - *(literalPtr++) = ch; - ++charCount; - if (charCount == 4) { - operands.push_back({false, literal}); - literalPtr = reinterpret_cast(&literal); - charCount = 0; - } - } while (ch != 0); - - // Partial literal is padded with 0 - if (charCount > 0) { - for (; charCount < 4; ++charCount) - *(literalPtr++) = 0; - operands.push_back({false, literal}); - } - } else - assert(0); // Unexpected type - } else - operands.push_back({true, createSpvConstant(*typeParam.constant)}); - } - - assert(spirvInst.set == ""); // Currently, couldn't be extended instructions. - spvType = builder.makeGenericType(static_cast(spirvInst.id), operands); - - break; - } -#endif - default: - assert(0); - break; - } - - if (type.isMatrix()) - spvType = builder.makeMatrixType(spvType, type.getMatrixCols(), type.getMatrixRows()); - else { - // If this variable has a vector element count greater than 1, create a SPIR-V vector - if (type.getVectorSize() > 1) - spvType = builder.makeVectorType(spvType, type.getVectorSize()); - } - - if (type.isCoopMat()) { - builder.addCapability(spv::CapabilityCooperativeMatrixNV); - builder.addExtension(spv::E_SPV_NV_cooperative_matrix); - if (type.getBasicType() == glslang::EbtFloat16) - builder.addCapability(spv::CapabilityFloat16); - if (type.getBasicType() == glslang::EbtUint8 || - type.getBasicType() == glslang::EbtInt8) { - builder.addCapability(spv::CapabilityInt8); - } - - spv::Id scope = makeArraySizeId(*type.getTypeParameters(), 1); - spv::Id rows = makeArraySizeId(*type.getTypeParameters(), 2); - spv::Id cols = makeArraySizeId(*type.getTypeParameters(), 3); - - spvType = builder.makeCooperativeMatrixType(spvType, scope, rows, cols); - } - - if (type.isArray()) { - int stride = 0; // keep this 0 unless doing an explicit layout; 0 will mean no decoration, no stride - - // Do all but the outer dimension - if (type.getArraySizes()->getNumDims() > 1) { - // We need to decorate array strides for types needing explicit layout, except blocks. - if (explicitLayout != glslang::ElpNone && type.getBasicType() != glslang::EbtBlock) { - // 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(); - - // Will compute the higher-order strides here, rather than making a whole - // pile of types and doing repetitive recursion on their contents. - stride = getArrayStride(simpleArrayType, explicitLayout, qualifier.layoutMatrix); - } - - // make the arrays - for (int dim = type.getArraySizes()->getNumDims() - 1; dim > 0; --dim) { - spvType = builder.makeArrayType(spvType, makeArraySizeId(*type.getArraySizes(), dim), stride); - if (stride > 0) - builder.addDecoration(spvType, spv::DecorationArrayStride, stride); - stride *= type.getArraySizes()->getDimSize(dim); - } - } else { - // single-dimensional array, and don't yet have stride - - // We need to decorate array strides for types needing explicit layout, except blocks. - if (explicitLayout != glslang::ElpNone && type.getBasicType() != glslang::EbtBlock) - 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 { -#ifndef GLSLANG_WEB - if (!lastBufferBlockMember) { - builder.addIncorporatedExtension("SPV_EXT_descriptor_indexing", spv::Spv_1_5); - builder.addCapability(spv::CapabilityRuntimeDescriptorArrayEXT); - } -#endif - spvType = builder.makeRuntimeArray(spvType); - } - if (stride > 0) - builder.addDecoration(spvType, spv::DecorationArrayStride, stride); - } - - 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) -{ -#ifndef GLSLANG_WEB - auto& extensions = glslangIntermediate->getRequestedExtensions(); - - 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 (glslangIntermediate->getStage() != EShLangMeshNV) { - if (member.getFieldName() == "gl_ViewportMask" && - extensions.find("GL_NV_viewport_array2") == 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; - } -#endif - - 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. -// Mutually recursive with convertGlslangToSpvType(). -spv::Id TGlslangToSpvTraverser::convertGlslangStructToSpvType(const glslang::TType& type, - const glslang::TTypeList* glslangMembers, - glslang::TLayoutPacking explicitLayout, - const glslang::TQualifier& qualifier) -{ - // Create a vector of struct types for SPIR-V to consume - std::vector spvMembers; - int memberDelta = 0; // how much the member's index changes from glslang to SPIR-V, normally 0, - // except sometimes for blocks - std::vector > deferredForwardPointers; - for (int i = 0; i < (int)glslangMembers->size(); i++) { - glslang::TType& glslangMember = *(*glslangMembers)[i].type; - if (glslangMember.hiddenMember()) { - ++memberDelta; - if (type.getBasicType() == glslang::EbtBlock) - memberRemapper[glslangTypeToIdMap[glslangMembers]][i] = -1; - } else { - if (type.getBasicType() == glslang::EbtBlock) { - if (filterMember(glslangMember)) { - memberDelta++; - memberRemapper[glslangTypeToIdMap[glslangMembers]][i] = -1; - continue; - } - memberRemapper[glslangTypeToIdMap[glslangMembers]][i] = i - memberDelta; - } - // modify just this child's view of the qualifier - glslang::TQualifier memberQualifier = glslangMember.getQualifier(); - InheritQualifiers(memberQualifier, qualifier); - - // manually inherit location - if (! memberQualifier.hasLocation() && qualifier.hasLocation()) - memberQualifier.layoutLocation = qualifier.layoutLocation; - - // recurse - bool lastBufferBlockMember = qualifier.storage == glslang::EvqBuffer && - i == (int)glslangMembers->size() - 1; - - // Make forward pointers for any pointer members, and create a list of members to - // convert to spirv types after creating the struct. - if (glslangMember.isReference()) { - if (forwardPointers.find(glslangMember.getReferentType()) == forwardPointers.end()) { - deferredForwardPointers.push_back(std::make_pair(&glslangMember, memberQualifier)); - } - spvMembers.push_back( - convertGlslangToSpvType(glslangMember, explicitLayout, memberQualifier, lastBufferBlockMember, - true)); - } else { - spvMembers.push_back( - convertGlslangToSpvType(glslangMember, explicitLayout, memberQualifier, lastBufferBlockMember, - false)); - } - } - } - - // Make the SPIR-V type - spv::Id spvType = builder.makeStructType(spvMembers, type.getTypeName().c_str()); - if (! HasNonLayoutQualifiers(type, qualifier)) - structMap[explicitLayout][qualifier.layoutMatrix][glslangMembers] = spvType; - - // Decorate it - decorateStructType(type, glslangMembers, explicitLayout, qualifier, spvType); - - for (int i = 0; i < (int)deferredForwardPointers.size(); ++i) { - auto it = deferredForwardPointers[i]; - convertGlslangToSpvType(*it.first, explicitLayout, it.second, false); - } - - return spvType; -} - -void TGlslangToSpvTraverser::decorateStructType(const glslang::TType& type, - const glslang::TTypeList* glslangMembers, - glslang::TLayoutPacking explicitLayout, - const glslang::TQualifier& qualifier, - spv::Id spvType) -{ - // Name and decorate the non-hidden members - int offset = -1; - bool memberLocationInvalid = type.isArrayOfArrays() || - (type.isArray() && (type.getQualifier().isArrayedIo(glslangIntermediate->getStage()) == false)); - for (int i = 0; i < (int)glslangMembers->size(); i++) { - glslang::TType& glslangMember = *(*glslangMembers)[i].type; - int member = i; - if (type.getBasicType() == glslang::EbtBlock) { - member = memberRemapper[glslangTypeToIdMap[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)); -#ifndef GLSLANG_WEB - addMeshNVDecoration(spvType, member, memberQualifier); -#endif - } - } - builder.addMemberDecoration(spvType, member, TranslateInvariantDecoration(memberQualifier)); - -#ifndef GLSLANG_WEB - 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, glslangIntermediate->usingVulkanMemoryModel()); - for (unsigned int i = 0; i < memory.size(); ++i) - builder.addMemberDecoration(spvType, member, memory[i]); - } - -#endif - - // 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 (!memberLocationInvalid && memberQualifier.hasLocation()) - builder.addMemberDecoration(spvType, member, spv::DecorationLocation, memberQualifier.layoutLocation); - - // 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); - -#ifndef GLSLANG_WEB - // 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); - } - - 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); - } - - // - // Add SPIR-V decorations for members (GL_EXT_spirv_intrinsics) - // - if (glslangMember.getQualifier().hasSprivDecorate()) { - const glslang::TSpirvDecorate& spirvDecorate = glslangMember.getQualifier().getSpirvDecorate(); - - // Add spirv_decorate - for (auto& decorate : spirvDecorate.decorates) { - if (!decorate.second.empty()) { - std::vector literals; - TranslateLiterals(decorate.second, literals); - builder.addMemberDecoration(spvType, member, static_cast(decorate.first), literals); - } - else - builder.addMemberDecoration(spvType, member, static_cast(decorate.first)); - } - - // spirv_decorate_id not applied to members - assert(spirvDecorate.decorateIds.empty()); - - // Add spirv_decorate_string - for (auto& decorateString : spirvDecorate.decorateStrings) { - std::vector strings; - assert(!decorateString.second.empty()); - for (auto extraOperand : decorateString.second) { - const char* string = extraOperand->getConstArray()[0].getSConst()->c_str(); - strings.push_back(string); - } - builder.addDecoration(spvType, static_cast(decorateString.first), strings); - } - } -#endif - } - - // Decorate the structure - builder.addDecoration(spvType, TranslateLayoutDecoration(type, qualifier.layoutMatrix)); - builder.addDecoration(spvType, TranslateBlockDecoration(type, glslangIntermediate->usingStorageBuffer())); -} - -// Turn the expression forming the array size into an id. -// This is not quite trivial, because of specialization constants. -// Sometimes, a raw constant is turned into an Id, and sometimes -// a specialization constant expression is. -spv::Id TGlslangToSpvTraverser::makeArraySizeId(const glslang::TArraySizes& arraySizes, int dim) -{ - // First, see if this is sized with a node, meaning a specialization constant: - glslang::TIntermTyped* specNode = arraySizes.getDimNode(dim); - if (specNode != nullptr) { - builder.clearAccessChain(); - SpecConstantOpModeGuard spec_constant_op_mode_setter(&builder); - spec_constant_op_mode_setter.turnOnSpecConstantOpMode(); - specNode->traverse(this); - return accessChainLoad(specNode->getAsTyped()->getType()); - } - - // Otherwise, need a compile-time (front end) size, get it: - int size = arraySizes.getDimSize(dim); - assert(size > 0); - return builder.makeUintConstant(size); -} - -// Wrap the builder's accessChainLoad to: -// - localize handling of RelaxedPrecision -// - use the SPIR-V inferred type instead of another conversion of the glslang type -// (avoids unnecessary work and possible type punning for structures) -// - do conversion of concrete to abstract type -spv::Id TGlslangToSpvTraverser::accessChainLoad(const glslang::TType& type) -{ - spv::Id nominalTypeId = builder.accessChainGetInferredType(); - - spv::Builder::AccessChain::CoherentFlags coherentFlags = builder.getAccessChain().coherentFlags; - coherentFlags |= TranslateCoherent(type); - - unsigned int alignment = builder.getAccessChain().alignment; - alignment |= type.getBufferReferenceAlignment(); - - spv::Id loadedId = builder.accessChainLoad(TranslatePrecisionDecoration(type), - TranslateNonUniformDecoration(builder.getAccessChain().coherentFlags), - TranslateNonUniformDecoration(type.getQualifier()), - nominalTypeId, - spv::MemoryAccessMask(TranslateMemoryAccess(coherentFlags) & ~spv::MemoryAccessMakePointerAvailableKHRMask), - TranslateMemoryScope(coherentFlags), - alignment); - - // Need to convert to abstract types when necessary - if (type.getBasicType() == glslang::EbtBool) { - loadedId = convertLoadedBoolInUniformToUint(type, nominalTypeId, loadedId); - } - - return loadedId; -} - -// Wrap the builder's accessChainStore to: -// - do conversion of concrete to abstract type -// -// Implicitly uses the existing builder.accessChain as the storage target. -void TGlslangToSpvTraverser::accessChainStore(const glslang::TType& type, spv::Id rvalue) -{ - // Need to convert to abstract types when necessary - if (type.getBasicType() == glslang::EbtBool) { - spv::Id nominalTypeId = builder.accessChainGetInferredType(); - - if (builder.isScalarType(nominalTypeId)) { - // 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); - 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); - 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)); - } - } - - spv::Builder::AccessChain::CoherentFlags coherentFlags = builder.getAccessChain().coherentFlags; - coherentFlags |= TranslateCoherent(type); - - unsigned int alignment = builder.getAccessChain().alignment; - alignment |= type.getBufferReferenceAlignment(); - - builder.accessChainStore(rvalue, TranslateNonUniformDecoration(builder.getAccessChain().coherentFlags), - spv::MemoryAccessMask(TranslateMemoryAccess(coherentFlags) & - ~spv::MemoryAccessMakePointerVisibleKHRMask), - TranslateMemoryScope(coherentFlags), alignment); -} - -// For storing when types match at the glslang level, but not might match at the -// SPIR-V level. -// -// This especially happens when a single glslang type expands to multiple -// SPIR-V types, like a struct that is used in a member-undecorated way as well -// as in a member-decorated way. -// -// NOTE: This function can handle any store request; if it's not special it -// simplifies to a simple OpStore. -// -// Implicitly uses the existing builder.accessChain as the storage target. -void TGlslangToSpvTraverser::multiTypeStore(const glslang::TType& type, spv::Id rValue) -{ - // we only do the complex path here if it's an aggregate - if (! type.isStruct() && ! type.isArray()) { - accessChainStore(type, rValue); - return; - } - - // and, it has to be a case of type aliasing - spv::Id rType = builder.getTypeId(rValue); - spv::Id lValue = builder.accessChainGetLValue(); - spv::Id lType = builder.getContainedTypeId(builder.getTypeId(lValue)); - if (lType == rType) { - accessChainStore(type, rValue); - return; - } - - // Recursively (as needed) copy an aggregate type to a different aggregate type, - // where the two types were the same type in GLSL. This requires member - // by member copy, recursively. - - // SPIR-V 1.4 added an instruction to do help do this. - if (glslangIntermediate->getSpv().spv >= glslang::EShTargetSpv_1_4) { - // However, bool in uniform space is changed to int, so - // OpCopyLogical does not work for that. - // TODO: It would be more robust to do a full recursive verification of the types satisfying SPIR-V rules. - bool rBool = builder.containsType(builder.getTypeId(rValue), spv::OpTypeBool, 0); - bool lBool = builder.containsType(lType, spv::OpTypeBool, 0); - if (lBool == rBool) { - spv::Id logicalCopy = builder.createUnaryOp(spv::OpCopyLogical, lType, rValue); - accessChainStore(type, logicalCopy); - return; - } - } - - // If an array, copy element by element. - if (type.isArray()) { - glslang::TType glslangElementType(type, 0); - spv::Id elementRType = builder.getContainedTypeId(rType); - for (int index = 0; index < type.getOuterArraySize(); ++index) { - // get the source member - spv::Id elementRValue = builder.createCompositeExtract(rValue, elementRType, index); - - // set up the target storage - builder.clearAccessChain(); - builder.setAccessChainLValue(lValue); - builder.accessChainPush(builder.makeIntConstant(index), TranslateCoherent(type), - type.getBufferReferenceAlignment()); - - // store the member - multiTypeStore(glslangElementType, elementRValue); - } - } else { - assert(type.isStruct()); - - // loop over structure members - const glslang::TTypeList& members = *type.getStruct(); - for (int m = 0; m < (int)members.size(); ++m) { - const glslang::TType& glslangMemberType = *members[m].type; - - // get the source member - spv::Id memberRType = builder.getContainedTypeId(rType, m); - spv::Id memberRValue = builder.createCompositeExtract(rValue, memberRType, m); - - // set up the target storage - builder.clearAccessChain(); - builder.setAccessChainLValue(lValue); - builder.accessChainPush(builder.makeIntConstant(m), TranslateCoherent(type), - type.getBufferReferenceAlignment()); - - // store the member - multiTypeStore(glslangMemberType, memberRValue); - } - } -} - -// Decide whether or not this type should be -// decorated with offsets and strides, and if so -// whether std140 or std430 rules should be applied. -glslang::TLayoutPacking TGlslangToSpvTraverser::getExplicitLayout(const glslang::TType& type) const -{ - // has to be a block - if (type.getBasicType() != glslang::EbtBlock) - return glslang::ElpNone; - - // has to be a uniform or buffer block or task in/out blocks - if (type.getQualifier().storage != glslang::EvqUniform && - type.getQualifier().storage != glslang::EvqBuffer && - type.getQualifier().storage != glslang::EvqShared && - !type.getQualifier().isTaskMemory()) - return glslang::ElpNone; - - // return the layout to use - switch (type.getQualifier().layoutPacking) { - case glslang::ElpStd140: - case glslang::ElpStd430: - case glslang::ElpScalar: - return type.getQualifier().layoutPacking; - default: - return glslang::ElpNone; - } -} - -// Given an array type, returns the integer stride required for that array -int TGlslangToSpvTraverser::getArrayStride(const glslang::TType& arrayType, glslang::TLayoutPacking explicitLayout, - glslang::TLayoutMatrix matrixLayout) -{ - int size; - int stride; - glslangIntermediate->getMemberAlignment(arrayType, size, stride, explicitLayout, - matrixLayout == glslang::ElmRowMajor); - - return stride; -} - -// Given a matrix type, or array (of array) of matrixes type, returns the integer stride required for that matrix -// when used as a member of an interface block -int TGlslangToSpvTraverser::getMatrixStride(const glslang::TType& matrixType, glslang::TLayoutPacking explicitLayout, - glslang::TLayoutMatrix matrixLayout) -{ - glslang::TType elementType; - elementType.shallowCopy(matrixType); - elementType.clearArraySizes(); - - int size; - int stride; - glslangIntermediate->getMemberAlignment(elementType, size, stride, explicitLayout, - matrixLayout == glslang::ElmRowMajor); - - return stride; -} - -// Given a member type of a struct, realign the current offset for it, and compute -// the next (not yet aligned) offset for the next member, which will get aligned -// on the next call. -// '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, glslang::TLayoutPacking explicitLayout, glslang::TLayoutMatrix matrixLayout) -{ - // this will get a positive value when deemed necessary - nextOffset = -1; - - // override anything in currentOffset with user-set offset - if (memberType.getQualifier().hasOffset()) - currentOffset = memberType.getQualifier().layoutOffset; - - // It could be that current linker usage in glslang updated all the layoutOffset, - // in which case the following code does not matter. But, that's not quite right - // once cross-compilation unit GLSL validation is done, as the original user - // settings are needed in layoutOffset, and then the following will come into play. - - if (explicitLayout == glslang::ElpNone) { - if (! memberType.getQualifier().hasOffset()) - currentOffset = -1; - - return; - } - - // Getting this far means we need explicit offsets - if (currentOffset < 0) - currentOffset = 0; - - // Now, currentOffset is valid (either 0, or from a previous nextOffset), - // but possibly not yet correctly aligned. - - int memberSize; - int dummyStride; - int memberAlignment = glslangIntermediate->getMemberAlignment(memberType, memberSize, dummyStride, explicitLayout, - 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 (explicitLayout != glslang::ElpScalar && glslangIntermediate->improperStraddle(memberType, memberSize, - currentOffset)) - glslang::RoundToPow2(currentOffset, 16); - - nextOffset = currentOffset + memberSize; -} - -void TGlslangToSpvTraverser::declareUseOfStructMember(const glslang::TTypeList& members, int glslangMember) -{ - const glslang::TBuiltInVariable glslangBuiltIn = members[glslangMember].type->getQualifier().builtIn; - switch (glslangBuiltIn) - { - case glslang::EbvPointSize: -#ifndef GLSLANG_WEB - case glslang::EbvClipDistance: - case glslang::EbvCullDistance: - case glslang::EbvViewportMaskNV: - case glslang::EbvSecondaryPositionNV: - case glslang::EbvSecondaryViewportMaskNV: - case glslang::EbvPositionPerViewNV: - case glslang::EbvViewportMaskPerViewNV: - case glslang::EbvTaskCountNV: - case glslang::EbvPrimitiveCountNV: - case glslang::EbvPrimitiveIndicesNV: - case glslang::EbvClipDistancePerViewNV: - case glslang::EbvCullDistancePerViewNV: - case glslang::EbvLayerPerViewNV: - case glslang::EbvMeshViewCountNV: - case glslang::EbvMeshViewIndicesNV: -#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. - TranslateBuiltInDecoration(glslangBuiltIn, false); - break; - default: - // Capabilities were already generated when the struct was declared. - break; - } -} - -bool TGlslangToSpvTraverser::isShaderEntryPoint(const glslang::TIntermAggregate* node) -{ - 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::EvqUniform || - qualifier == glslang::EvqConstReadOnly); - return qualifier != glslang::EvqConstReadOnly && - qualifier != glslang::EvqUniform; -} - -// 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. -#ifndef GLSLANG_WEB - paramType.getQualifier().isSpirvByReference() || // spirv_by_reference -#endif - (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, - bool useVulkanMemoryModel) { - spv::Decoration paramPrecision = TranslatePrecisionDecoration(type); - if (paramPrecision != spv::NoPrecision) - decorations.push_back(paramPrecision); - TranslateMemoryDecoration(type.getQualifier(), decorations, useVulkanMemoryModel); - if (type.isReference()) { - // Original and non-writable params pass the pointer directly and - // use restrict/aliased, others are stored to a pointer in Function - // memory and use RestrictPointer/AliasedPointer. - if (originalParam(type.getQualifier().storage, type, false) || - !writableParam(type.getQualifier().storage)) { - decorations.push_back(type.getQualifier().isRestrict() ? spv::DecorationRestrict : - spv::DecorationAliased); - } else { - decorations.push_back(type.getQualifier().isRestrict() ? spv::DecorationRestrictPointerEXT : - spv::DecorationAliasedPointerEXT); - } - } - }; - - for (int f = 0; f < (int)glslFunctions.size(); ++f) { - glslang::TIntermAggregate* glslFunction = glslFunctions[f]->getAsAggregate(); - if (! glslFunction || glslFunction->getOp() != glslang::EOpFunction || isShaderEntryPoint(glslFunction)) - continue; - - // We're on a user function. Set up the basic interface for the function now, - // so that it's available to call. Translating the body will happen later. - // - // Typically (except for a "const in" parameter), an address will be passed to the - // function. What it is an address of varies: - // - // - "in" parameters not marked as "const" can be written to without modifying the calling - // argument so that write needs to be to a copy, hence the address of a copy works. - // - // - "const in" parameters can just be the r-value, as no writes need occur. - // - // - "out" and "inout" arguments can't be done as pointers to the calling argument, because - // 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 - glslang::TIntermSequence& parameters = glslFunction->getSequence()[0]->getAsAggregate()->getSequence(); - -#ifdef ENABLE_HLSL - bool implicitThis = (int)parameters.size() > 0 && parameters[0]->getAsSymbolNode()->getName() == - glslangIntermediate->implicitThisName; -#else - bool implicitThis = false; -#endif - - 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)) - typeId = builder.makePointer(TranslateStorageClass(paramType), typeId); - else if (writableParam(paramType.getQualifier().storage)) - typeId = builder.makePointer(spv::StorageClassFunction, typeId); - else - rValueParameters.insert(parameters[p]->getAsSymbolNode()->getId()); - getParamDecorations(paramDecorations[p], paramType, glslangIntermediate->usingVulkanMemoryModel()); - 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(); - - // Track function to emit/call later - functionMap[glslFunction->getName().c_str()] = function; - - // Set the parameter id's - for (int p = 0; p < (int)parameters.size(); ++p) { - symbolValues[parameters[p]->getAsSymbolNode()->getId()] = function->getParamId(p); - // give a name too - builder.addName(function->getParamId(p), parameters[p]->getAsSymbolNode()->getName().c_str()); - - const glslang::TType& paramType = parameters[p]->getAsTyped()->getType(); - if (paramType.contains8BitInt()) - builder.addCapability(spv::CapabilityInt8); - if (paramType.contains16BitInt()) - builder.addCapability(spv::CapabilityInt16); - if (paramType.contains16BitFloat()) - builder.addCapability(spv::CapabilityFloat16); - } - } -} - -// Process all the initializers, while skipping the functions and link objects -void TGlslangToSpvTraverser::makeGlobalInitializers(const glslang::TIntermSequence& initializers) -{ - builder.setBuildPoint(shaderEntry->getLastBlock()); - for (int i = 0; i < (int)initializers.size(); ++i) { - glslang::TIntermAggregate* initializer = initializers[i]->getAsAggregate(); - if (initializer && initializer->getOp() != glslang::EOpFunction && initializer->getOp() != - glslang::EOpLinkerObjects) { - - // We're on a top-level node that's not a function. Treat as an initializer, whose - // code goes into the beginning of the entry point. - initializer->traverse(this); - } - } -} -// Walk over all linker objects to create a map for payload and callable data linker objects -// and their location to be used during codegen for OpTraceKHR and OpExecuteCallableKHR -// This is done here since it is possible that these linker objects are not be referenced in the AST -void TGlslangToSpvTraverser::collectRayTracingLinkerObjects() -{ - glslang::TIntermAggregate* linkerObjects = glslangIntermediate->findLinkerObjects(); - for (auto& objSeq : linkerObjects->getSequence()) { - auto objNode = objSeq->getAsSymbolNode(); - if (objNode != nullptr) { - if (objNode->getQualifier().hasLocation()) { - unsigned int location = objNode->getQualifier().layoutLocation; - auto st = objNode->getQualifier().storage; - int set; - switch (st) - { - case glslang::EvqPayload: - case glslang::EvqPayloadIn: - set = 0; - break; - case glslang::EvqCallableData: - case glslang::EvqCallableDataIn: - set = 1; - break; - - default: - set = -1; - } - if (set != -1) - locationToSymbol[set].insert(std::make_pair(location, objNode)); - } - } - } -} -// Process all the functions, while skipping initializers. -void TGlslangToSpvTraverser::visitFunctions(const glslang::TIntermSequence& glslFunctions) -{ - for (int f = 0; f < (int)glslFunctions.size(); ++f) { - glslang::TIntermAggregate* node = glslFunctions[f]->getAsAggregate(); - if (node && (node->getOp() == glslang::EOpFunction || node->getOp() == glslang::EOpLinkerObjects)) - node->traverse(this); - } -} - -void TGlslangToSpvTraverser::handleFunctionEntry(const glslang::TIntermAggregate* node) -{ - // SPIR-V functions should already be in the functionMap from the prepass - // that called makeFunctions(). - currentFunction = functionMap[node->getName().c_str()]; - spv::Block* functionBlock = currentFunction->getEntryBlock(); - builder.setBuildPoint(functionBlock); -} - -void TGlslangToSpvTraverser::translateArguments(const glslang::TIntermAggregate& node, std::vector& arguments, - spv::Builder::AccessChain::CoherentFlags &lvalueCoherentFlags) -{ - const glslang::TIntermSequence& glslangArguments = node.getSequence(); - - glslang::TSampler sampler = {}; - bool cubeCompare = false; -#ifndef GLSLANG_WEB - bool f16ShadowCompare = false; -#endif - if (node.isTexture() || node.isImage()) { - sampler = glslangArguments[0]->getAsTyped()->getType().getSampler(); - cubeCompare = sampler.dim == glslang::EsdCube && sampler.arrayed && sampler.shadow; -#ifndef GLSLANG_WEB - f16ShadowCompare = sampler.shadow && - glslangArguments[1]->getAsTyped()->getType().getBasicType() == glslang::EbtFloat16; -#endif - } - - for (int i = 0; i < (int)glslangArguments.size(); ++i) { - builder.clearAccessChain(); - glslangArguments[i]->traverse(this); - -#ifndef GLSLANG_WEB - // Special case l-value operands - bool lvalue = false; - switch (node.getOp()) { - case glslang::EOpImageAtomicAdd: - case glslang::EOpImageAtomicMin: - case glslang::EOpImageAtomicMax: - case glslang::EOpImageAtomicAnd: - case glslang::EOpImageAtomicOr: - case glslang::EOpImageAtomicXor: - case glslang::EOpImageAtomicExchange: - case glslang::EOpImageAtomicCompSwap: - case glslang::EOpImageAtomicLoad: - case glslang::EOpImageAtomicStore: - if (i == 0) - lvalue = true; - break; - case glslang::EOpSparseImageLoad: - if ((sampler.ms && i == 3) || (! sampler.ms && i == 2)) - lvalue = true; - break; - 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; - case glslang::EOpSparseTextureFetch: - if ((sampler.dim != glslang::EsdRect && i == 3) || (sampler.dim == glslang::EsdRect && i == 2)) - lvalue = true; - break; - case glslang::EOpSparseTextureFetchOffset: - if ((sampler.dim != glslang::EsdRect && i == 4) || (sampler.dim == glslang::EsdRect && i == 3)) - lvalue = true; - break; - 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; - case glslang::EOpSparseTextureGather: - if ((sampler.shadow && i == 3) || (! sampler.shadow && i == 2)) - lvalue = true; - break; - case glslang::EOpSparseTextureGatherOffset: - case glslang::EOpSparseTextureGatherOffsets: - if ((sampler.shadow && i == 4) || (! sampler.shadow && i == 3)) - lvalue = true; - break; - 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; - case glslang::EOpImageSampleFootprintNV: - if (i == 4) - lvalue = true; - break; - case glslang::EOpImageSampleFootprintClampNV: - case glslang::EOpImageSampleFootprintLodNV: - if (i == 5) - lvalue = true; - break; - case glslang::EOpImageSampleFootprintGradNV: - if (i == 6) - lvalue = true; - break; - case glslang::EOpImageSampleFootprintGradClampNV: - if (i == 7) - lvalue = true; - break; - default: - break; - } - - if (lvalue) { - spv::Id lvalue_id = builder.accessChainGetLValue(); - arguments.push_back(lvalue_id); - lvalueCoherentFlags = builder.getAccessChain().coherentFlags; - builder.addDecoration(lvalue_id, TranslateNonUniformDecoration(lvalueCoherentFlags)); - lvalueCoherentFlags |= TranslateCoherent(glslangArguments[i]->getAsTyped()->getType()); - } else -#endif - arguments.push_back(accessChainLoad(glslangArguments[i]->getAsTyped()->getType())); - } -} - -void TGlslangToSpvTraverser::translateArguments(glslang::TIntermUnary& node, std::vector& arguments) -{ - builder.clearAccessChain(); - node.getOperand()->traverse(this); - arguments.push_back(accessChainLoad(node.getOperand()->getType())); -} - -spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermOperator* node) -{ - if (! node->isImage() && ! node->isTexture()) - return spv::NoResult; - - builder.setLine(node->getLoc().line, node->getLoc().getFilename()); - - // Process a GLSL texturing op (will be SPV image) - - const glslang::TType &imageType = node->getAsAggregate() - ? node->getAsAggregate()->getSequence()[0]->getAsTyped()->getType() - : node->getAsUnaryNode()->getOperand()->getAsTyped()->getType(); - const glslang::TSampler sampler = imageType.getSampler(); -#ifdef GLSLANG_WEB - const bool f16ShadowCompare = false; -#else - bool f16ShadowCompare = (sampler.shadow && node->getAsAggregate()) - ? node->getAsAggregate()->getSequence()[1]->getAsTyped()->getType().getBasicType() == glslang::EbtFloat16 - : false; -#endif - - const auto signExtensionMask = [&]() { - if (builder.getSpvVersion() >= spv::Spv_1_4) { - if (sampler.type == glslang::EbtUint) - return spv::ImageOperandsZeroExtendMask; - else if (sampler.type == glslang::EbtInt) - return spv::ImageOperandsSignExtendMask; - } - return spv::ImageOperandsMaskNone; - }; - - spv::Builder::AccessChain::CoherentFlags lvalueCoherentFlags; - - std::vector arguments; - if (node->getAsAggregate()) - translateArguments(*node->getAsAggregate(), arguments, lvalueCoherentFlags); - else - translateArguments(*node->getAsUnaryNode(), arguments); - spv::Decoration precision = TranslatePrecisionDecoration(node->getType()); - - spv::Builder::TextureParameters params = { }; - params.sampler = arguments[0]; - - glslang::TCrackedTextureOp cracked; - node->crackTexture(sampler, cracked); - - const bool isUnsignedResult = node->getType().getBasicType() == glslang::EbtUint; - - if (builder.isSampledImage(params.sampler) && - ((cracked.query && node->getOp() != glslang::EOpTextureQueryLod) || cracked.fragMask || cracked.fetch)) { - params.sampler = builder.createUnaryOp(spv::OpImage, builder.getImageType(params.sampler), params.sampler); - if (imageType.getQualifier().isNonUniform()) { - builder.addDecoration(params.sampler, spv::DecorationNonUniformEXT); - } - } - // Check for queries - if (cracked.query) { - switch (node->getOp()) { - case glslang::EOpImageQuerySize: - case glslang::EOpTextureQuerySize: - if (arguments.size() > 1) { - params.lod = arguments[1]; - return builder.createTextureQueryCall(spv::OpImageQuerySizeLod, params, isUnsignedResult); - } else - return builder.createTextureQueryCall(spv::OpImageQuerySize, params, isUnsignedResult); -#ifndef GLSLANG_WEB - case glslang::EOpImageQuerySamples: - case glslang::EOpTextureQuerySamples: - return builder.createTextureQueryCall(spv::OpImageQuerySamples, params, isUnsignedResult); - case glslang::EOpTextureQueryLod: - params.coords = arguments[1]; - return builder.createTextureQueryCall(spv::OpImageQueryLod, params, isUnsignedResult); - case glslang::EOpTextureQueryLevels: - return builder.createTextureQueryCall(spv::OpImageQueryLevels, params, isUnsignedResult); - case glslang::EOpSparseTexelsResident: - return builder.createUnaryOp(spv::OpImageSparseTexelsResident, builder.makeBoolType(), arguments[0]); -#endif - default: - assert(0); - break; - } - } - - int components = node->getType().getVectorSize(); - - if (node->getOp() == glslang::EOpImageLoad || - node->getOp() == glslang::EOpImageLoadLod || - node->getOp() == glslang::EOpTextureFetch || - node->getOp() == glslang::EOpTextureFetchOffset) { - // 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; - auto opIt = arguments.begin(); - spv::IdImmediate image = { true, *(opIt++) }; - operands.push_back(image); - - // Handle subpass operations - // TODO: GLSL should change to have the "MS" only on the type rather than the - // built-in function. - if (cracked.subpass) { - // add on the (0,0) coordinate - spv::Id zero = builder.makeIntConstant(0); - std::vector comps; - comps.push_back(zero); - comps.push_back(zero); - spv::IdImmediate coord = { true, - builder.makeCompositeConstant(builder.makeVectorType(builder.makeIntType(32), 2), comps) }; - operands.push_back(coord); - spv::IdImmediate imageOperands = { false, spv::ImageOperandsMaskNone }; - imageOperands.word = imageOperands.word | signExtensionMask(); - if (sampler.isMultiSample()) { - imageOperands.word = imageOperands.word | spv::ImageOperandsSampleMask; - } - if (imageOperands.word != spv::ImageOperandsMaskNone) { - operands.push_back(imageOperands); - if (sampler.isMultiSample()) { - spv::IdImmediate imageOperand = { true, *(opIt++) }; - operands.push_back(imageOperand); - } - } - spv::Id result = builder.createOp(spv::OpImageRead, resultType(), operands); - builder.setPrecision(result, precision); - return result; - } - - spv::IdImmediate coord = { true, *(opIt++) }; - operands.push_back(coord); - if (node->getOp() == glslang::EOpImageLoad || node->getOp() == glslang::EOpImageLoadLod) { - spv::ImageOperandsMask mask = spv::ImageOperandsMaskNone; - if (sampler.isMultiSample()) { - mask = mask | spv::ImageOperandsSampleMask; - } - if (cracked.lod) { - builder.addExtension(spv::E_SPV_AMD_shader_image_load_store_lod); - builder.addCapability(spv::CapabilityImageReadWriteLodAMD); - mask = mask | spv::ImageOperandsLodMask; - } - mask = mask | TranslateImageOperands(TranslateCoherent(imageType)); - mask = (spv::ImageOperandsMask)(mask & ~spv::ImageOperandsMakeTexelAvailableKHRMask); - mask = mask | signExtensionMask(); - if (mask != spv::ImageOperandsMaskNone) { - spv::IdImmediate imageOperands = { false, (unsigned int)mask }; - operands.push_back(imageOperands); - } - if (mask & spv::ImageOperandsSampleMask) { - spv::IdImmediate imageOperand = { true, *opIt++ }; - operands.push_back(imageOperand); - } - if (mask & spv::ImageOperandsLodMask) { - spv::IdImmediate imageOperand = { true, *opIt++ }; - operands.push_back(imageOperand); - } - if (mask & spv::ImageOperandsMakeTexelVisibleKHRMask) { - spv::IdImmediate imageOperand = { true, - builder.makeUintConstant(TranslateMemoryScope(TranslateCoherent(imageType))) }; - operands.push_back(imageOperand); - } - - if (builder.getImageTypeFormat(builder.getImageType(operands.front().word)) == 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]; - } else if (node->getOp() == glslang::EOpImageStore || node->getOp() == glslang::EOpImageStoreLod) { - - // Push the texel value before the operands - if (sampler.isMultiSample() || cracked.lod) { - spv::IdImmediate texel = { true, *(opIt + 1) }; - operands.push_back(texel); - } else { - spv::IdImmediate texel = { true, *opIt }; - operands.push_back(texel); - } - - spv::ImageOperandsMask mask = spv::ImageOperandsMaskNone; - if (sampler.isMultiSample()) { - mask = mask | spv::ImageOperandsSampleMask; - } - if (cracked.lod) { - builder.addExtension(spv::E_SPV_AMD_shader_image_load_store_lod); - builder.addCapability(spv::CapabilityImageReadWriteLodAMD); - mask = mask | spv::ImageOperandsLodMask; - } - mask = mask | TranslateImageOperands(TranslateCoherent(imageType)); - mask = (spv::ImageOperandsMask)(mask & ~spv::ImageOperandsMakeTexelVisibleKHRMask); - mask = mask | signExtensionMask(); - if (mask != spv::ImageOperandsMaskNone) { - spv::IdImmediate imageOperands = { false, (unsigned int)mask }; - operands.push_back(imageOperands); - } - if (mask & spv::ImageOperandsSampleMask) { - spv::IdImmediate imageOperand = { true, *opIt++ }; - operands.push_back(imageOperand); - } - if (mask & spv::ImageOperandsLodMask) { - spv::IdImmediate imageOperand = { true, *opIt++ }; - operands.push_back(imageOperand); - } - if (mask & spv::ImageOperandsMakeTexelAvailableKHRMask) { - spv::IdImmediate imageOperand = { true, - builder.makeUintConstant(TranslateMemoryScope(TranslateCoherent(imageType))) }; - operands.push_back(imageOperand); - } - - builder.createNoResultOp(spv::OpImageWrite, operands); - if (builder.getImageTypeFormat(builder.getImageType(operands.front().word)) == spv::ImageFormatUnknown) - builder.addCapability(spv::CapabilityStorageImageWriteWithoutFormat); - return spv::NoResult; - } else if (node->getOp() == glslang::EOpSparseImageLoad || - node->getOp() == glslang::EOpSparseImageLoadLod) { - builder.addCapability(spv::CapabilitySparseResidency); - if (builder.getImageTypeFormat(builder.getImageType(operands.front().word)) == spv::ImageFormatUnknown) - builder.addCapability(spv::CapabilityStorageImageReadWithoutFormat); - - spv::ImageOperandsMask mask = spv::ImageOperandsMaskNone; - if (sampler.isMultiSample()) { - mask = mask | spv::ImageOperandsSampleMask; - } - if (cracked.lod) { - builder.addExtension(spv::E_SPV_AMD_shader_image_load_store_lod); - builder.addCapability(spv::CapabilityImageReadWriteLodAMD); - - mask = mask | spv::ImageOperandsLodMask; - } - mask = mask | TranslateImageOperands(TranslateCoherent(imageType)); - mask = (spv::ImageOperandsMask)(mask & ~spv::ImageOperandsMakeTexelAvailableKHRMask); - mask = mask | signExtensionMask(); - if (mask != spv::ImageOperandsMaskNone) { - spv::IdImmediate imageOperands = { false, (unsigned int)mask }; - operands.push_back(imageOperands); - } - if (mask & spv::ImageOperandsSampleMask) { - spv::IdImmediate imageOperand = { true, *opIt++ }; - operands.push_back(imageOperand); - } - if (mask & spv::ImageOperandsLodMask) { - spv::IdImmediate imageOperand = { true, *opIt++ }; - operands.push_back(imageOperand); - } - if (mask & spv::ImageOperandsMakeTexelVisibleKHRMask) { - spv::IdImmediate imageOperand = { true, builder.makeUintConstant(TranslateMemoryScope( - TranslateCoherent(imageType))) }; - operands.push_back(imageOperand); - } - - // Create the return type that was a special structure - spv::Id texelOut = *opIt; - spv::Id typeId0 = resultType(); - spv::Id typeId1 = builder.getDerefTypeId(texelOut); - spv::Id resultTypeId = builder.makeStructResultType(typeId0, typeId1); - - spv::Id resultId = builder.createOp(spv::OpImageSparseRead, resultTypeId, operands); - - // Decode the return type - builder.createStore(builder.createCompositeExtract(resultId, typeId1, 1), texelOut); - return builder.createCompositeExtract(resultId, typeId0, 0); - } else { - // Process image atomic operations - - // GLSL "IMAGE_PARAMS" will involve in constructing an image texel pointer and this pointer, - // as the first source operand, is required by SPIR-V atomic operations. - // For non-MS, the sample value should be 0 - spv::IdImmediate sample = { true, sampler.isMultiSample() ? *(opIt++) : builder.makeUintConstant(0) }; - operands.push_back(sample); - - spv::Id resultTypeId; - // imageAtomicStore has a void return type so base the pointer type on - // the type of the value operand. - if (node->getOp() == glslang::EOpImageAtomicStore) { - resultTypeId = builder.makePointer(spv::StorageClassImage, builder.getTypeId(*opIt)); - } else { - resultTypeId = builder.makePointer(spv::StorageClassImage, resultType()); - } - spv::Id pointer = builder.createOp(spv::OpImageTexelPointer, resultTypeId, operands); - if (imageType.getQualifier().nonUniform) { - builder.addDecoration(pointer, spv::DecorationNonUniformEXT); - } - - std::vector operands; - operands.push_back(pointer); - for (; opIt != arguments.end(); ++opIt) - operands.push_back(*opIt); - - return createAtomicOperation(node->getOp(), precision, resultType(), operands, node->getBasicType(), - lvalueCoherentFlags); - } - } - -#ifndef GLSLANG_WEB - // Check for fragment mask functions other than queries - if (cracked.fragMask) { - assert(sampler.ms); - - auto opIt = arguments.begin(); - std::vector operands; - - 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 imageFootprint = node->isImageFootprint(); - bool cubeCompare = sampler.dim == glslang::EsdCube && sampler.isArrayed() && sampler.isShadow(); - - // check for bias argument - bool bias = false; - if (! cracked.lod && ! cracked.grad && ! cracked.fetch && ! cubeCompare) { - int nonBiasArgCount = 2; - if (cracked.gather) - ++nonBiasArgCount; // comp argument should be present when bias argument is present - - if (f16ShadowCompare) - ++nonBiasArgCount; - if (cracked.offset) - ++nonBiasArgCount; - else if (cracked.offsets) - ++nonBiasArgCount; - if (cracked.grad) - nonBiasArgCount += 2; - if (cracked.lodClamp) - ++nonBiasArgCount; - if (sparse) - ++nonBiasArgCount; - if (imageFootprint) - //Following three extra arguments - // int granularity, bool coarse, out gl_TextureFootprint2DNV footprint - nonBiasArgCount += 3; - if ((int)arguments.size() > nonBiasArgCount) - bias = true; - } - -#ifndef GLSLANG_WEB - 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]; - int extraArgs = 0; - bool noImplicitLod = false; - - // sort out where Dref is coming from - if (cubeCompare || f16ShadowCompare) { - params.Dref = arguments[2]; - ++extraArgs; - } else if (sampler.shadow && cracked.gather) { - params.Dref = arguments[2]; - ++extraArgs; - } else if (sampler.shadow) { - std::vector indexes; - int dRefComp; - if (cracked.proj) - dRefComp = 2; // "The resulting 3rd component of P in the shadow forms is used as Dref" - else - dRefComp = builder.getNumComponents(params.coords) - 1; - indexes.push_back(dRefComp); - params.Dref = builder.createCompositeExtract(params.coords, - builder.getScalarTypeId(builder.getTypeId(params.coords)), indexes); - } - - // lod - if (cracked.lod) { - params.lod = arguments[2 + extraArgs]; - ++extraArgs; - } else if (glslangIntermediate->getStage() != EShLangFragment && - !(glslangIntermediate->getStage() == EShLangCompute && - glslangIntermediate->hasLayoutDerivativeModeNone())) { - // we need to invent the default lod for an explicit lod instruction for a non-fragment stage - noImplicitLod = true; - } - - // multisample - if (sampler.isMultiSample()) { - params.sample = arguments[2 + extraArgs]; // For MS, "sample" should be specified - ++extraArgs; - } - - // gradient - if (cracked.grad) { - params.gradX = arguments[2 + extraArgs]; - params.gradY = arguments[3 + extraArgs]; - extraArgs += 2; - } - - // offset and offsets - if (cracked.offset) { - params.offset = arguments[2 + extraArgs]; - ++extraArgs; - } else if (cracked.offsets) { - params.offsets = arguments[2 + extraArgs]; - ++extraArgs; - } - -#ifndef GLSLANG_WEB - // lod clamp - if (cracked.lodClamp) { - params.lodClamp = arguments[2 + extraArgs]; - ++extraArgs; - } - // sparse - if (sparse) { - params.texelOut = 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 - params.component = builder.makeIntConstant(0); - } - spv::Id resultStruct = spv::NoResult; - if (imageFootprint) { - //Following three extra arguments - // int granularity, bool coarse, out gl_TextureFootprint2DNV footprint - params.granularity = arguments[2 + extraArgs]; - params.coarse = arguments[3 + extraArgs]; - resultStruct = arguments[4 + extraArgs]; - extraArgs += 3; - } -#endif - // bias - if (bias) { - params.bias = arguments[2 + extraArgs]; - ++extraArgs; - } - -#ifndef GLSLANG_WEB - if (imageFootprint) { - builder.addExtension(spv::E_SPV_NV_shader_image_footprint); - builder.addCapability(spv::CapabilityImageFootprintNV); - - - //resultStructType(OpenGL type) contains 5 elements: - //struct gl_TextureFootprint2DNV { - // uvec2 anchor; - // uvec2 offset; - // uvec2 mask; - // uint lod; - // uint granularity; - //}; - //or - //struct gl_TextureFootprint3DNV { - // uvec3 anchor; - // uvec3 offset; - // uvec2 mask; - // uint lod; - // uint granularity; - //}; - spv::Id resultStructType = builder.getContainedTypeId(builder.getTypeId(resultStruct)); - assert(builder.isStructType(resultStructType)); - - //resType (SPIR-V type) contains 6 elements: - //Member 0 must be a Boolean type scalar(LOD), - //Member 1 must be a vector of integer type, whose Signedness operand is 0(anchor), - //Member 2 must be a vector of integer type, whose Signedness operand is 0(offset), - //Member 3 must be a vector of integer type, whose Signedness operand is 0(mask), - //Member 4 must be a scalar of integer type, whose Signedness operand is 0(lod), - //Member 5 must be a scalar of integer type, whose Signedness operand is 0(granularity). - std::vector members; - members.push_back(resultType()); - for (int i = 0; i < 5; i++) { - members.push_back(builder.getContainedTypeId(resultStructType, i)); - } - spv::Id resType = builder.makeStructType(members, "ResType"); - - //call ImageFootprintNV - spv::Id res = builder.createTextureCall(precision, resType, sparse, cracked.fetch, cracked.proj, - cracked.gather, noImplicitLod, params, signExtensionMask()); - - //copy resType (SPIR-V type) to resultStructType(OpenGL type) - for (int i = 0; i < 5; i++) { - builder.clearAccessChain(); - builder.setAccessChainLValue(resultStruct); - - //Accessing to a struct we created, no coherent flag is set - spv::Builder::AccessChain::CoherentFlags flags; - flags.clear(); - - builder.accessChainPush(builder.makeIntConstant(i), flags, 0); - builder.accessChainStore(builder.createCompositeExtract(res, builder.getContainedTypeId(resType, i+1), - i+1), TranslateNonUniformDecoration(imageType.getQualifier())); - } - return builder.createCompositeExtract(res, resultType(), 0); - } -#endif - - // projective component (might not to move) - // GLSL: "The texture coordinates consumed from P, not including the last component of P, - // are divided by the last component of P." - // SPIR-V: "... (u [, v] [, w], q)... It may be a vector larger than needed, but all - // unused components will appear after all used components." - if (cracked.proj) { - int projSourceComp = builder.getNumComponents(params.coords) - 1; - int projTargetComp; - switch (sampler.dim) { - case glslang::Esd1D: projTargetComp = 1; break; - case glslang::Esd2D: projTargetComp = 2; break; - case glslang::EsdRect: projTargetComp = 2; break; - default: projTargetComp = projSourceComp; break; - } - // copy the projective coordinate if we have to - if (projTargetComp != projSourceComp) { - spv::Id projComp = builder.createCompositeExtract(params.coords, - builder.getScalarTypeId(builder.getTypeId(params.coords)), projSourceComp); - params.coords = builder.createCompositeInsert(projComp, params.coords, - builder.getTypeId(params.coords), projTargetComp); - } - } - -#ifndef GLSLANG_WEB - // nonprivate - if (imageType.getQualifier().nonprivate) { - params.nonprivate = true; - } - - // volatile - if (imageType.getQualifier().volatil) { - params.volatil = true; - } -#endif - - std::vector result( 1, - builder.createTextureCall(precision, resultType(), sparse, cracked.fetch, cracked.proj, cracked.gather, - noImplicitLod, params, signExtensionMask()) - ); - - 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) -{ - // Grab the function's pointer from the previously created function - spv::Function* function = functionMap[node->getName().c_str()]; - if (! function) - return 0; - - const glslang::TIntermSequence& glslangArgs = node->getSequence(); - const glslang::TQualifierList& qualifiers = node->getQualifierList(); - - // See comments in makeFunctions() for details about the semantics for parameter passing. - // - // These imply we need a four step process: - // 1. Evaluate the arguments - // 2. Allocate and make copies of in, out, and inout arguments - // 3. Make the call - // 4. Copy back the results - - // 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) { - argTypes.push_back(&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])) { - // save l-value - lValues.push_back(builder.getAccessChain()); - } else { - // process r-value - rValues.push_back(accessChainLoad(*argTypes.back())); - } - } - - // 2. Allocate space for anything needing a copy, and if it's "in" or "inout" - // copy the original into that space. - // - // Also, build up the list of actual arguments to pass in for the call - int lValueCount = 0; - int rValueCount = 0; - std::vector spvArgs; - for (int a = 0; a < (int)glslangArgs.size(); ++a) { - spv::Id arg; - if (originalParam(qualifiers[a], *argTypes[a], function->hasImplicitThis() && a == 0)) { - builder.setAccessChain(lValues[lValueCount]); - arg = builder.accessChainGetLValue(); - ++lValueCount; - } else if (writableParam(qualifiers[a])) { - // need space to hold the copy - arg = builder.createVariable(function->getParamPrecision(a), 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(*argTypes[a], copy); - } - ++lValueCount; - } else { - // process r-value, which involves a copy for a type mismatch - if (function->getParamType(a) != builder.getTypeId(rValues[rValueCount]) || - TranslatePrecisionDecoration(*argTypes[a]) != function->getParamPrecision(a)) - { - spv::Id argCopy = builder.createVariable(function->getParamPrecision(a), spv::StorageClassFunction, function->getParamType(a), "arg"); - builder.clearAccessChain(); - builder.setAccessChainLValue(argCopy); - multiTypeStore(*argTypes[a], rValues[rValueCount]); - arg = builder.createLoad(argCopy, function->getParamPrecision(a)); - } else - arg = rValues[rValueCount]; - ++rValueCount; - } - spvArgs.push_back(arg); - } - - // 3. Make the call. - spv::Id result = builder.createFunctionCall(function, spvArgs); - builder.setPrecision(result, TranslatePrecisionDecoration(node->getType())); - builder.addDecoration(result, TranslateNonUniformDecoration(node->getType().getQualifier())); - - // 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])) { - if (qualifiers[a] == glslang::EvqOut || qualifiers[a] == glslang::EvqInOut) { - spv::Id copy = builder.createLoad(spvArgs[a], spv::NoPrecision); - builder.addDecoration(copy, TranslateNonUniformDecoration(argTypes[a]->getQualifier())); - builder.setAccessChain(lValues[lValueCount]); - multiTypeStore(*argTypes[a], copy); - } - ++lValueCount; - } - } - - return result; -} - -// Translate AST operation to SPV operation, already having SPV-based operands/types. -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 = isTypeUnsignedInt(typeProxy); - bool isFloat = isTypeFloat(typeProxy); - bool isBool = typeProxy == glslang::EbtBool; - - spv::Op binOp = spv::OpNop; - bool needMatchingVectors = true; // for non-matrix ops, would a scalar need to smear to match a vector? - bool comparison = false; - - switch (op) { - case glslang::EOpAdd: - case glslang::EOpAddAssign: - if (isFloat) - binOp = spv::OpFAdd; - else - binOp = spv::OpIAdd; - break; - case glslang::EOpSub: - case glslang::EOpSubAssign: - if (isFloat) - binOp = spv::OpFSub; - else - binOp = spv::OpISub; - break; - case glslang::EOpMul: - case glslang::EOpMulAssign: - if (isFloat) - binOp = spv::OpFMul; - else - binOp = spv::OpIMul; - break; - case glslang::EOpVectorTimesScalar: - case glslang::EOpVectorTimesScalarAssign: - if (isFloat && (builder.isVector(left) || builder.isVector(right))) { - if (builder.isVector(right)) - std::swap(left, right); - assert(builder.isScalar(right)); - needMatchingVectors = false; - binOp = spv::OpVectorTimesScalar; - } else if (isFloat) - binOp = spv::OpFMul; - else - binOp = spv::OpIMul; - break; - case glslang::EOpVectorTimesMatrix: - case glslang::EOpVectorTimesMatrixAssign: - binOp = spv::OpVectorTimesMatrix; - break; - case glslang::EOpMatrixTimesVector: - binOp = spv::OpMatrixTimesVector; - break; - case glslang::EOpMatrixTimesScalar: - case glslang::EOpMatrixTimesScalarAssign: - binOp = spv::OpMatrixTimesScalar; - break; - case glslang::EOpMatrixTimesMatrix: - case glslang::EOpMatrixTimesMatrixAssign: - binOp = spv::OpMatrixTimesMatrix; - break; - case glslang::EOpOuterProduct: - binOp = spv::OpOuterProduct; - needMatchingVectors = false; - break; - - case glslang::EOpDiv: - case glslang::EOpDivAssign: - if (isFloat) - binOp = spv::OpFDiv; - else if (isUnsigned) - binOp = spv::OpUDiv; - else - binOp = spv::OpSDiv; - break; - case glslang::EOpMod: - case glslang::EOpModAssign: - if (isFloat) - binOp = spv::OpFMod; - else if (isUnsigned) - binOp = spv::OpUMod; - else - binOp = spv::OpSMod; - break; - case glslang::EOpRightShift: - case glslang::EOpRightShiftAssign: - if (isUnsigned) - binOp = spv::OpShiftRightLogical; - else - binOp = spv::OpShiftRightArithmetic; - break; - case glslang::EOpLeftShift: - case glslang::EOpLeftShiftAssign: - binOp = spv::OpShiftLeftLogical; - break; - case glslang::EOpAnd: - case glslang::EOpAndAssign: - binOp = spv::OpBitwiseAnd; - break; - case glslang::EOpLogicalAnd: - needMatchingVectors = false; - binOp = spv::OpLogicalAnd; - break; - case glslang::EOpInclusiveOr: - case glslang::EOpInclusiveOrAssign: - binOp = spv::OpBitwiseOr; - break; - case glslang::EOpLogicalOr: - needMatchingVectors = false; - binOp = spv::OpLogicalOr; - break; - case glslang::EOpExclusiveOr: - case glslang::EOpExclusiveOrAssign: - binOp = spv::OpBitwiseXor; - break; - case glslang::EOpLogicalXor: - needMatchingVectors = false; - binOp = spv::OpLogicalNotEqual; - break; - - case glslang::EOpAbsDifference: - binOp = isUnsigned ? spv::OpAbsUSubINTEL : spv::OpAbsISubINTEL; - break; - - case glslang::EOpAddSaturate: - binOp = isUnsigned ? spv::OpUAddSatINTEL : spv::OpIAddSatINTEL; - break; - - case glslang::EOpSubSaturate: - binOp = isUnsigned ? spv::OpUSubSatINTEL : spv::OpISubSatINTEL; - break; - - case glslang::EOpAverage: - binOp = isUnsigned ? spv::OpUAverageINTEL : spv::OpIAverageINTEL; - break; - - case glslang::EOpAverageRounded: - binOp = isUnsigned ? spv::OpUAverageRoundedINTEL : spv::OpIAverageRoundedINTEL; - break; - - case glslang::EOpMul32x16: - binOp = isUnsigned ? spv::OpUMul32x16INTEL : spv::OpIMul32x16INTEL; - break; - - case glslang::EOpLessThan: - case glslang::EOpGreaterThan: - case glslang::EOpLessThanEqual: - case glslang::EOpGreaterThanEqual: - case glslang::EOpEqual: - case glslang::EOpNotEqual: - case glslang::EOpVectorEqual: - case glslang::EOpVectorNotEqual: - comparison = true; - break; - default: - break; - } - - // handle mapped binary operations (should be non-comparison) - if (binOp != spv::OpNop) { - assert(comparison == false); - if (builder.isMatrix(left) || builder.isMatrix(right) || - builder.isCooperativeMatrix(left) || builder.isCooperativeMatrix(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(decorations.precision, left, right); - - spv::Id result = builder.createBinOp(binOp, typeId, left, right); - decorations.addNoContraction(builder, result); - decorations.addNonUniform(builder, result); - return builder.setPrecision(result, decorations.precision); - } - - if (! comparison) - return 0; - - // 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); - decorations.addNonUniform(builder, result); - return result; - } - - switch (op) { - case glslang::EOpLessThan: - if (isFloat) - binOp = spv::OpFOrdLessThan; - else if (isUnsigned) - binOp = spv::OpULessThan; - else - binOp = spv::OpSLessThan; - break; - case glslang::EOpGreaterThan: - if (isFloat) - binOp = spv::OpFOrdGreaterThan; - else if (isUnsigned) - binOp = spv::OpUGreaterThan; - else - binOp = spv::OpSGreaterThan; - break; - case glslang::EOpLessThanEqual: - if (isFloat) - binOp = spv::OpFOrdLessThanEqual; - else if (isUnsigned) - binOp = spv::OpULessThanEqual; - else - binOp = spv::OpSLessThanEqual; - break; - case glslang::EOpGreaterThanEqual: - if (isFloat) - binOp = spv::OpFOrdGreaterThanEqual; - else if (isUnsigned) - binOp = spv::OpUGreaterThanEqual; - else - binOp = spv::OpSGreaterThanEqual; - break; - case glslang::EOpEqual: - case glslang::EOpVectorEqual: - if (isFloat) - binOp = spv::OpFOrdEqual; - else if (isBool) - binOp = spv::OpLogicalEqual; - else - binOp = spv::OpIEqual; - break; - case glslang::EOpNotEqual: - case glslang::EOpVectorNotEqual: - if (isFloat) - binOp = spv::OpFUnordNotEqual; - else if (isBool) - binOp = spv::OpLogicalNotEqual; - else - binOp = spv::OpINotEqual; - break; - default: - break; - } - - if (binOp != spv::OpNop) { - spv::Id result = builder.createBinOp(binOp, typeId, left, right); - decorations.addNoContraction(builder, result); - decorations.addNonUniform(builder, result); - return builder.setPrecision(result, decorations.precision); - } - - return 0; -} - -// -// Translate AST matrix operation to SPV operation, already having SPV-based operands/types. -// These can be any of: -// -// matrix * scalar -// scalar * matrix -// matrix * matrix linear algebraic -// matrix * vector -// vector * matrix -// matrix * matrix componentwise -// matrix op matrix op in {+, -, /} -// 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) -{ - bool firstClass = true; - - // First, handle first-class matrix operations (* and matrix/scalar) - switch (op) { - 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); - op = spv::OpMatrixTimesScalar; - } else - firstClass = false; - break; - case spv::OpMatrixTimesScalar: - if (builder.isMatrix(right) || builder.isCooperativeMatrix(right)) - std::swap(left, right); - assert(builder.isScalar(right)); - break; - case spv::OpVectorTimesMatrix: - assert(builder.isVector(left)); - assert(builder.isMatrix(right)); - break; - case spv::OpMatrixTimesVector: - assert(builder.isMatrix(left)); - assert(builder.isVector(right)); - break; - case spv::OpMatrixTimesMatrix: - assert(builder.isMatrix(left)); - assert(builder.isMatrix(right)); - break; - default: - firstClass = false; - break; - } - - if (builder.isCooperativeMatrix(left) || builder.isCooperativeMatrix(right)) - firstClass = true; - - if (firstClass) { - spv::Id result = builder.createBinOp(op, typeId, left, right); - decorations.addNoContraction(builder, result); - decorations.addNonUniform(builder, result); - return builder.setPrecision(result, decorations.precision); - } - - // Handle component-wise +, -, *, %, and / for all combinations of type. - // The result type of all of them is the same type as the (a) matrix operand. - // The algorithm is to: - // - break the matrix(es) into vectors - // - smear any scalar to a vector - // - do vector operations - // - make a matrix out the vector results - switch (op) { - case spv::OpFAdd: - case spv::OpFSub: - case spv::OpFDiv: - case spv::OpFMod: - case spv::OpFMul: - { - // one time set up... - bool leftMat = builder.isMatrix(left); - bool rightMat = builder.isMatrix(right); - unsigned int numCols = leftMat ? builder.getNumColumns(left) : builder.getNumColumns(right); - int numRows = leftMat ? builder.getNumRows(left) : builder.getNumRows(right); - spv::Id scalarType = builder.getScalarTypeId(typeId); - spv::Id vecType = builder.makeVectorType(scalarType, numRows); - std::vector results; - spv::Id smearVec = spv::NoResult; - if (builder.isScalar(left)) - smearVec = builder.smearScalar(decorations.precision, left, vecType); - else if (builder.isScalar(right)) - smearVec = builder.smearScalar(decorations.precision, right, vecType); - - // do each vector op - for (unsigned int c = 0; c < numCols; ++c) { - std::vector indexes; - indexes.push_back(c); - 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); - decorations.addNoContraction(builder, result); - decorations.addNonUniform(builder, result); - results.push_back(builder.setPrecision(result, decorations.precision)); - } - - // put the pieces together - spv::Id result = builder.setPrecision(builder.createCompositeConstruct(typeId, results), decorations.precision); - decorations.addNonUniform(builder, result); - return result; - } - default: - assert(0); - return spv::NoResult; - } -} - -spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, OpDecorations& decorations, spv::Id typeId, - spv::Id operand, glslang::TBasicType typeProxy, const spv::Builder::AccessChain::CoherentFlags &lvalueCoherentFlags) -{ - spv::Op unaryOp = spv::OpNop; - int extBuiltins = -1; - int libCall = -1; - 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, decorations, typeId, operand, typeProxy); - } else - unaryOp = spv::OpSNegate; - break; - - case glslang::EOpLogicalNot: - case glslang::EOpVectorLogicalNot: - unaryOp = spv::OpLogicalNot; - break; - case glslang::EOpBitwiseNot: - unaryOp = spv::OpNot; - break; - - case glslang::EOpDeterminant: - libCall = spv::GLSLstd450Determinant; - break; - case glslang::EOpMatrixInverse: - libCall = spv::GLSLstd450MatrixInverse; - break; - case glslang::EOpTranspose: - unaryOp = spv::OpTranspose; - break; - - case glslang::EOpRadians: - libCall = spv::GLSLstd450Radians; - break; - case glslang::EOpDegrees: - libCall = spv::GLSLstd450Degrees; - break; - case glslang::EOpSin: - libCall = spv::GLSLstd450Sin; - break; - case glslang::EOpCos: - libCall = spv::GLSLstd450Cos; - break; - case glslang::EOpTan: - libCall = spv::GLSLstd450Tan; - break; - case glslang::EOpAcos: - libCall = spv::GLSLstd450Acos; - break; - case glslang::EOpAsin: - libCall = spv::GLSLstd450Asin; - break; - case glslang::EOpAtan: - libCall = spv::GLSLstd450Atan; - break; - - case glslang::EOpAcosh: - libCall = spv::GLSLstd450Acosh; - break; - case glslang::EOpAsinh: - libCall = spv::GLSLstd450Asinh; - break; - case glslang::EOpAtanh: - libCall = spv::GLSLstd450Atanh; - break; - case glslang::EOpTanh: - libCall = spv::GLSLstd450Tanh; - break; - case glslang::EOpCosh: - libCall = spv::GLSLstd450Cosh; - break; - case glslang::EOpSinh: - libCall = spv::GLSLstd450Sinh; - break; - - case glslang::EOpLength: - libCall = spv::GLSLstd450Length; - break; - case glslang::EOpNormalize: - libCall = spv::GLSLstd450Normalize; - break; - - case glslang::EOpExp: - libCall = spv::GLSLstd450Exp; - break; - case glslang::EOpLog: - libCall = spv::GLSLstd450Log; - break; - case glslang::EOpExp2: - libCall = spv::GLSLstd450Exp2; - break; - case glslang::EOpLog2: - libCall = spv::GLSLstd450Log2; - break; - case glslang::EOpSqrt: - libCall = spv::GLSLstd450Sqrt; - break; - case glslang::EOpInverseSqrt: - libCall = spv::GLSLstd450InverseSqrt; - break; - - case glslang::EOpFloor: - libCall = spv::GLSLstd450Floor; - break; - case glslang::EOpTrunc: - libCall = spv::GLSLstd450Trunc; - break; - case glslang::EOpRound: - libCall = spv::GLSLstd450Round; - break; - case glslang::EOpRoundEven: - libCall = spv::GLSLstd450RoundEven; - break; - case glslang::EOpCeil: - libCall = spv::GLSLstd450Ceil; - break; - case glslang::EOpFract: - libCall = spv::GLSLstd450Fract; - break; - - case glslang::EOpIsNan: - unaryOp = spv::OpIsNan; - break; - case glslang::EOpIsInf: - unaryOp = spv::OpIsInf; - break; - case glslang::EOpIsFinite: - unaryOp = spv::OpIsFinite; - break; - - case glslang::EOpFloatBitsToInt: - case glslang::EOpFloatBitsToUint: - case glslang::EOpIntBitsToFloat: - case glslang::EOpUintBitsToFloat: - case glslang::EOpDoubleBitsToInt64: - 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; - - case glslang::EOpPackSnorm2x16: - libCall = spv::GLSLstd450PackSnorm2x16; - break; - case glslang::EOpUnpackSnorm2x16: - libCall = spv::GLSLstd450UnpackSnorm2x16; - break; - case glslang::EOpPackUnorm2x16: - libCall = spv::GLSLstd450PackUnorm2x16; - break; - case glslang::EOpUnpackUnorm2x16: - libCall = spv::GLSLstd450UnpackUnorm2x16; - break; - case glslang::EOpPackHalf2x16: - libCall = spv::GLSLstd450PackHalf2x16; - break; - case glslang::EOpUnpackHalf2x16: - libCall = spv::GLSLstd450UnpackHalf2x16; - break; -#ifndef GLSLANG_WEB - case glslang::EOpPackSnorm4x8: - libCall = spv::GLSLstd450PackSnorm4x8; - break; - case glslang::EOpUnpackSnorm4x8: - libCall = spv::GLSLstd450UnpackSnorm4x8; - break; - case glslang::EOpPackUnorm4x8: - libCall = spv::GLSLstd450PackUnorm4x8; - break; - case glslang::EOpUnpackUnorm4x8: - libCall = spv::GLSLstd450UnpackUnorm4x8; - break; - case glslang::EOpPackDouble2x32: - libCall = spv::GLSLstd450PackDouble2x32; - break; - case glslang::EOpUnpackDouble2x32: - libCall = spv::GLSLstd450UnpackDouble2x32; - break; -#endif - - case glslang::EOpPackInt2x32: - 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: - case glslang::EOpPackFloat2x16: - case glslang::EOpUnpackFloat2x16: - unaryOp = spv::OpBitcast; - break; - - case glslang::EOpDPdx: - unaryOp = spv::OpDPdx; - break; - case glslang::EOpDPdy: - unaryOp = spv::OpDPdy; - break; - case glslang::EOpFwidth: - unaryOp = spv::OpFwidth; - break; - - case glslang::EOpAny: - unaryOp = spv::OpAny; - break; - case glslang::EOpAll: - unaryOp = spv::OpAll; - break; - - case glslang::EOpAbs: - if (isFloat) - libCall = spv::GLSLstd450FAbs; - else - libCall = spv::GLSLstd450SAbs; - break; - case glslang::EOpSign: - if (isFloat) - libCall = spv::GLSLstd450FSign; - else - libCall = spv::GLSLstd450SSign; - break; - -#ifndef GLSLANG_WEB - case glslang::EOpDPdxFine: - unaryOp = spv::OpDPdxFine; - break; - case glslang::EOpDPdyFine: - unaryOp = spv::OpDPdyFine; - break; - case glslang::EOpFwidthFine: - unaryOp = spv::OpFwidthFine; - break; - case glslang::EOpDPdxCoarse: - unaryOp = spv::OpDPdxCoarse; - break; - case glslang::EOpDPdyCoarse: - unaryOp = spv::OpDPdyCoarse; - break; - case glslang::EOpFwidthCoarse: - unaryOp = spv::OpFwidthCoarse; - break; - case glslang::EOpRayQueryProceed: - unaryOp = spv::OpRayQueryProceedKHR; - break; - case glslang::EOpRayQueryGetRayTMin: - unaryOp = spv::OpRayQueryGetRayTMinKHR; - break; - case glslang::EOpRayQueryGetRayFlags: - unaryOp = spv::OpRayQueryGetRayFlagsKHR; - break; - case glslang::EOpRayQueryGetWorldRayOrigin: - unaryOp = spv::OpRayQueryGetWorldRayOriginKHR; - break; - case glslang::EOpRayQueryGetWorldRayDirection: - unaryOp = spv::OpRayQueryGetWorldRayDirectionKHR; - break; - case glslang::EOpRayQueryGetIntersectionCandidateAABBOpaque: - unaryOp = spv::OpRayQueryGetIntersectionCandidateAABBOpaqueKHR; - break; - case glslang::EOpInterpolateAtCentroid: - if (typeProxy == glslang::EbtFloat16) - builder.addExtension(spv::E_SPV_AMD_gpu_shader_half_float); - libCall = spv::GLSLstd450InterpolateAtCentroid; - break; - case glslang::EOpAtomicCounterIncrement: - case glslang::EOpAtomicCounterDecrement: - case glslang::EOpAtomicCounter: - { - // 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, lvalueCoherentFlags); - } - - case glslang::EOpBitFieldReverse: - unaryOp = spv::OpBitReverse; - break; - case glslang::EOpBitCount: - unaryOp = spv::OpBitCount; - break; - case glslang::EOpFindLSB: - libCall = spv::GLSLstd450FindILsb; - break; - case glslang::EOpFindMSB: - if (isUnsigned) - libCall = spv::GLSLstd450FindUMsb; - else - libCall = spv::GLSLstd450FindSMsb; - break; - - case glslang::EOpCountLeadingZeros: - builder.addCapability(spv::CapabilityIntegerFunctions2INTEL); - builder.addExtension("SPV_INTEL_shader_integer_functions2"); - unaryOp = spv::OpUCountLeadingZerosINTEL; - break; - - case glslang::EOpCountTrailingZeros: - builder.addCapability(spv::CapabilityIntegerFunctions2INTEL); - builder.addExtension("SPV_INTEL_shader_integer_functions2"); - unaryOp = spv::OpUCountTrailingZerosINTEL; - break; - - case glslang::EOpBallot: - case glslang::EOpReadFirstInvocation: - case glslang::EOpAnyInvocation: - case glslang::EOpAllInvocations: - case glslang::EOpAllInvocationsEqual: - case glslang::EOpMinInvocations: - case glslang::EOpMaxInvocations: - case glslang::EOpAddInvocations: - 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: - { - 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); - } - case glslang::EOpMbcnt: - extBuiltins = getExtBuiltins(spv::E_SPV_AMD_shader_ballot); - libCall = spv::MbcntAMD; - break; - - case glslang::EOpCubeFaceIndex: - extBuiltins = getExtBuiltins(spv::E_SPV_AMD_gcn_shader); - libCall = spv::CubeFaceIndexAMD; - break; - - case glslang::EOpCubeFaceCoord: - extBuiltins = getExtBuiltins(spv::E_SPV_AMD_gcn_shader); - libCall = spv::CubeFaceCoordAMD; - break; - case glslang::EOpSubgroupPartition: - unaryOp = spv::OpGroupNonUniformPartitionNV; - break; - case glslang::EOpConstructReference: - unaryOp = spv::OpBitcast; - break; - - case glslang::EOpConvUint64ToAccStruct: - case glslang::EOpConvUvec2ToAccStruct: - unaryOp = spv::OpConvertUToAccelerationStructureKHR; - break; -#endif - - case glslang::EOpCopyObject: - unaryOp = spv::OpCopyObject; - break; - - default: - return 0; - } - - spv::Id id; - if (libCall >= 0) { - std::vector args; - args.push_back(operand); - id = builder.createBuiltinCall(typeId, extBuiltins >= 0 ? extBuiltins : stdBuiltins, libCall, args); - } else { - id = builder.createUnaryOp(unaryOp, typeId, operand); - } - - decorations.addNoContraction(builder, id); - decorations.addNonUniform(builder, id); - return builder.setPrecision(id, decorations.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 */) -{ - // Handle unary operations vector by vector. - // The result type is the same type as the original type. - // The algorithm is to: - // - break the matrix into vectors - // - apply the operation to each vector - // - make a matrix out the vector results - - // get the types sorted out - int numCols = builder.getNumColumns(operand); - int numRows = builder.getNumRows(operand); - spv::Id srcVecType = builder.makeVectorType(builder.getScalarTypeId(builder.getTypeId(operand)), numRows); - spv::Id destVecType = builder.makeVectorType(builder.getScalarTypeId(typeId), numRows); - std::vector results; - - // do each vector op - for (int c = 0; c < numCols; ++c) { - std::vector indexes; - indexes.push_back(c); - spv::Id srcVec = builder.createCompositeExtract(operand, srcVecType, indexes); - spv::Id destVec = builder.createUnaryOp(op, destVecType, srcVec); - decorations.addNoContraction(builder, destVec); - decorations.addNonUniform(builder, destVec); - results.push_back(builder.setPrecision(destVec, decorations.precision)); - } - - // put the pieces together - spv::Id result = builder.setPrecision(builder.createCompositeConstruct(typeId, results), decorations.precision); - decorations.addNonUniform(builder, result); - return result; -} - -// 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; - - int vectorSize = builder.isVectorType(destType) ? builder.getNumTypeComponents(destType) : 0; - - switch (op) { - case glslang::EOpConvIntToBool: - case glslang::EOpConvUintToBool: - zero = builder.makeUintConstant(0); - zero = makeSmearedConstant(zero, vectorSize); - return builder.createBinOp(spv::OpINotEqual, destType, operand, zero); - case glslang::EOpConvFloatToBool: - zero = builder.makeFloatConstant(0.0F); - zero = makeSmearedConstant(zero, vectorSize); - return builder.createBinOp(spv::OpFUnordNotEqual, destType, operand, zero); - case glslang::EOpConvBoolToFloat: - convOp = spv::OpSelect; - zero = builder.makeFloatConstant(0.0F); - one = builder.makeFloatConstant(1.0F); - break; - - case glslang::EOpConvBoolToInt: - case glslang::EOpConvBoolToInt64: -#ifndef GLSLANG_WEB - if (op == glslang::EOpConvBoolToInt64) { - zero = builder.makeInt64Constant(0); - one = builder.makeInt64Constant(1); - } else -#endif - { - zero = builder.makeIntConstant(0); - one = builder.makeIntConstant(1); - } - - convOp = spv::OpSelect; - break; - - case glslang::EOpConvBoolToUint: - case glslang::EOpConvBoolToUint64: -#ifndef GLSLANG_WEB - if (op == glslang::EOpConvBoolToUint64) { - zero = builder.makeUint64Constant(0); - one = builder.makeUint64Constant(1); - } else -#endif - { - zero = builder.makeUintConstant(0); - 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: - case glslang::EOpConvInt64ToFloat16: - 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: - case glslang::EOpConvUint64ToFloat16: - convOp = spv::OpConvertUToF; - 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: - 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. -#ifndef GLSLANG_WEB - 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 -#endif - { - zero = builder.makeUintConstant(0); - } - zero = makeSmearedConstant(zero, vectorSize); - // Use OpIAdd, instead of OpBitcast to do the conversion when - // generating for OpSpecConstantOp instruction. - return builder.createBinOp(spv::OpIAdd, destType, operand, zero); - } - // For normal run-time conversion instruction, use OpBitcast. - 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: - case glslang::EOpConvFloat16ToUint64: - convOp = spv::OpConvertFToU; - break; - -#ifndef GLSLANG_WEB - 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::EOpConvInt64ToBool: - case glslang::EOpConvUint64ToBool: - zero = builder.makeUint64Constant(0); - zero = makeSmearedConstant(zero, vectorSize); - return builder.createBinOp(spv::OpINotEqual, destType, operand, zero); - case glslang::EOpConvDoubleToBool: - zero = builder.makeDoubleConstant(0.0); - zero = makeSmearedConstant(zero, vectorSize); - return builder.createBinOp(spv::OpFUnordNotEqual, destType, operand, zero); - case glslang::EOpConvFloat16ToBool: - zero = builder.makeFloat16Constant(0.0F); - zero = makeSmearedConstant(zero, vectorSize); - return builder.createBinOp(spv::OpFUnordNotEqual, destType, operand, zero); - case glslang::EOpConvBoolToDouble: - convOp = spv::OpSelect; - zero = builder.makeDoubleConstant(0.0); - one = builder.makeDoubleConstant(1.0); - break; - 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; - case glslang::EOpConvDoubleToFloat: - case glslang::EOpConvFloatToDouble: - case glslang::EOpConvDoubleToFloat16: - case glslang::EOpConvFloat16ToDouble: - case glslang::EOpConvFloatToFloat16: - case glslang::EOpConvFloat16ToFloat: - convOp = spv::OpFConvert; - if (builder.isMatrixType(destType)) - return createUnaryMatrixOperation(convOp, decorations, destType, operand, typeProxy); - 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: - // OpSConvert/OpUConvert + OpBitCast - operand = createIntWidthConversion(op, operand, vectorSize); - - 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 = makeSmearedConstant(zero, vectorSize); - // Use OpIAdd, instead of OpBitcast to do the conversion when - // generating for OpSpecConstantOp instruction. - return builder.createBinOp(spv::OpIAdd, destType, operand, zero); - } - // For normal run-time conversion instruction, use OpBitcast. - convOp = spv::OpBitcast; - break; - case glslang::EOpConvUint64ToPtr: - convOp = spv::OpConvertUToPtr; - break; - case glslang::EOpConvPtrToUint64: - convOp = spv::OpConvertPtrToU; - break; - case glslang::EOpConvPtrToUvec2: - case glslang::EOpConvUvec2ToPtr: - convOp = spv::OpBitcast; - break; -#endif - - default: - break; - } - - spv::Id result = 0; - if (convOp == spv::OpNop) - return result; - - if (convOp == spv::OpSelect) { - zero = makeSmearedConstant(zero, vectorSize); - one = makeSmearedConstant(one, vectorSize); - result = builder.createTriOp(convOp, destType, operand, one, zero); - } else - result = builder.createUnaryOp(convOp, destType, operand); - - result = builder.setPrecision(result, decorations.precision); - decorations.addNonUniform(builder, result); - return result; -} - -spv::Id TGlslangToSpvTraverser::makeSmearedConstant(spv::Id constant, int vectorSize) -{ - if (vectorSize == 0) - return constant; - - spv::Id vectorTypeId = builder.makeVectorType(builder.getTypeId(constant), vectorSize); - std::vector components; - for (int c = 0; c < vectorSize; ++c) - components.push_back(constant); - return builder.makeCompositeConstant(vectorTypeId, components); -} - -// For glslang ops that map to SPV atomic opCodes -spv::Id TGlslangToSpvTraverser::createAtomicOperation(glslang::TOperator op, spv::Decoration /*precision*/, - spv::Id typeId, std::vector& operands, glslang::TBasicType typeProxy, - const spv::Builder::AccessChain::CoherentFlags &lvalueCoherentFlags) -{ - spv::Op opCode = spv::OpNop; - - switch (op) { - case glslang::EOpAtomicAdd: - case glslang::EOpImageAtomicAdd: - case glslang::EOpAtomicCounterAdd: - opCode = spv::OpAtomicIAdd; - if (typeProxy == glslang::EbtFloat16 || typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble) { - opCode = spv::OpAtomicFAddEXT; - builder.addExtension(spv::E_SPV_EXT_shader_atomic_float_add); - if (typeProxy == glslang::EbtFloat16) { - builder.addExtension(spv::E_SPV_EXT_shader_atomic_float16_add); - builder.addCapability(spv::CapabilityAtomicFloat16AddEXT); - } else if (typeProxy == glslang::EbtFloat) { - builder.addCapability(spv::CapabilityAtomicFloat32AddEXT); - } else { - builder.addCapability(spv::CapabilityAtomicFloat64AddEXT); - } - } - break; - case glslang::EOpAtomicSubtract: - case glslang::EOpAtomicCounterSubtract: - opCode = spv::OpAtomicISub; - break; - case glslang::EOpAtomicMin: - case glslang::EOpImageAtomicMin: - case glslang::EOpAtomicCounterMin: - if (typeProxy == glslang::EbtFloat16 || typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble) { - opCode = spv::OpAtomicFMinEXT; - builder.addExtension(spv::E_SPV_EXT_shader_atomic_float_min_max); - if (typeProxy == glslang::EbtFloat16) - builder.addCapability(spv::CapabilityAtomicFloat16MinMaxEXT); - else if (typeProxy == glslang::EbtFloat) - builder.addCapability(spv::CapabilityAtomicFloat32MinMaxEXT); - else - builder.addCapability(spv::CapabilityAtomicFloat64MinMaxEXT); - } else if (typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64) { - opCode = spv::OpAtomicUMin; - } else { - opCode = spv::OpAtomicSMin; - } - break; - case glslang::EOpAtomicMax: - case glslang::EOpImageAtomicMax: - case glslang::EOpAtomicCounterMax: - if (typeProxy == glslang::EbtFloat16 || typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble) { - opCode = spv::OpAtomicFMaxEXT; - builder.addExtension(spv::E_SPV_EXT_shader_atomic_float_min_max); - if (typeProxy == glslang::EbtFloat16) - builder.addCapability(spv::CapabilityAtomicFloat16MinMaxEXT); - else if (typeProxy == glslang::EbtFloat) - builder.addCapability(spv::CapabilityAtomicFloat32MinMaxEXT); - else - builder.addCapability(spv::CapabilityAtomicFloat64MinMaxEXT); - } else if (typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64) { - opCode = spv::OpAtomicUMax; - } else { - opCode = 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: - opCode = spv::OpAtomicIIncrement; - break; - case glslang::EOpAtomicCounterDecrement: - opCode = spv::OpAtomicIDecrement; - break; - case glslang::EOpAtomicCounter: - case glslang::EOpImageAtomicLoad: - case glslang::EOpAtomicLoad: - opCode = spv::OpAtomicLoad; - break; - case glslang::EOpAtomicStore: - case glslang::EOpImageAtomicStore: - opCode = spv::OpAtomicStore; - break; - default: - assert(0); - 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 that are optional in glslang - // - compare-exchange swaps the value and comparator - // - compare-exchange has an extra memory semantics - // - EOpAtomicCounterDecrement needs a post decrement - spv::Id pointerId = 0, compareId = 0, valueId = 0; - // scope defaults to Device in the old model, QueueFamilyKHR in the new model - spv::Id scopeId; - if (glslangIntermediate->usingVulkanMemoryModel()) { - scopeId = builder.makeUintConstant(spv::ScopeQueueFamilyKHR); - } else { - scopeId = builder.makeUintConstant(spv::ScopeDevice); - } - // semantics default to relaxed - spv::Id semanticsId = builder.makeUintConstant(lvalueCoherentFlags.isVolatile() && - glslangIntermediate->usingVulkanMemoryModel() ? - spv::MemorySemanticsVolatileMask : - spv::MemorySemanticsMaskNone); - spv::Id semanticsId2 = semanticsId; - - pointerId = operands[0]; - if (opCode == spv::OpAtomicIIncrement || opCode == spv::OpAtomicIDecrement) { - // no additional operands - } else if (opCode == spv::OpAtomicCompareExchange) { - compareId = operands[1]; - valueId = operands[2]; - if (operands.size() > 3) { - scopeId = operands[3]; - semanticsId = builder.makeUintConstant( - builder.getConstantScalar(operands[4]) | builder.getConstantScalar(operands[5])); - semanticsId2 = builder.makeUintConstant( - builder.getConstantScalar(operands[6]) | builder.getConstantScalar(operands[7])); - } - } else if (opCode == spv::OpAtomicLoad) { - if (operands.size() > 1) { - scopeId = operands[1]; - semanticsId = builder.makeUintConstant( - builder.getConstantScalar(operands[2]) | builder.getConstantScalar(operands[3])); - } - } else { - // atomic store or RMW - valueId = operands[1]; - if (operands.size() > 2) { - scopeId = operands[2]; - semanticsId = builder.makeUintConstant - (builder.getConstantScalar(operands[3]) | builder.getConstantScalar(operands[4])); - } - } - - // Check for capabilities - unsigned semanticsImmediate = builder.getConstantScalar(semanticsId) | builder.getConstantScalar(semanticsId2); - if (semanticsImmediate & (spv::MemorySemanticsMakeAvailableKHRMask | - spv::MemorySemanticsMakeVisibleKHRMask | - spv::MemorySemanticsOutputMemoryKHRMask | - spv::MemorySemanticsVolatileMask)) { - builder.addCapability(spv::CapabilityVulkanMemoryModelKHR); - } - - if (builder.getConstantScalar(scopeId) == spv::ScopeQueueFamily) { - builder.addCapability(spv::CapabilityVulkanMemoryModelKHR); - } - - if (glslangIntermediate->usingVulkanMemoryModel() && builder.getConstantScalar(scopeId) == spv::ScopeDevice) { - builder.addCapability(spv::CapabilityVulkanMemoryModelDeviceScopeKHR); - } - - std::vector spvAtomicOperands; // hold the spv operands - spvAtomicOperands.push_back(pointerId); - spvAtomicOperands.push_back(scopeId); - spvAtomicOperands.push_back(semanticsId); - if (opCode == spv::OpAtomicCompareExchange) { - spvAtomicOperands.push_back(semanticsId2); - spvAtomicOperands.push_back(valueId); - spvAtomicOperands.push_back(compareId); - } else if (opCode != spv::OpAtomicLoad && opCode != spv::OpAtomicIIncrement && opCode != spv::OpAtomicIDecrement) { - spvAtomicOperands.push_back(valueId); - } - - if (opCode == spv::OpAtomicStore) { - builder.createNoResultOp(opCode, spvAtomicOperands); - return 0; - } else { - 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) -{ - bool isUnsigned = isTypeUnsignedInt(typeProxy); - bool isFloat = isTypeFloat(typeProxy); - - spv::Op opCode = spv::OpNop; - std::vector spvGroupOperands; - 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); - 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) - builder.addExtension(spv::E_SPV_AMD_shader_ballot); - - switch (op) { - case glslang::EOpMinInvocations: - case glslang::EOpMaxInvocations: - case glslang::EOpAddInvocations: - case glslang::EOpMinInvocationsNonUniform: - case glslang::EOpMaxInvocationsNonUniform: - case glslang::EOpAddInvocationsNonUniform: - groupOperation = spv::GroupOperationReduce; - break; - case glslang::EOpMinInvocationsInclusiveScan: - case glslang::EOpMaxInvocationsInclusiveScan: - case glslang::EOpAddInvocationsInclusiveScan: - case glslang::EOpMinInvocationsInclusiveScanNonUniform: - case glslang::EOpMaxInvocationsInclusiveScanNonUniform: - case glslang::EOpAddInvocationsInclusiveScanNonUniform: - groupOperation = spv::GroupOperationInclusiveScan; - break; - case glslang::EOpMinInvocationsExclusiveScan: - case glslang::EOpMaxInvocationsExclusiveScan: - case glslang::EOpAddInvocationsExclusiveScan: - case glslang::EOpMinInvocationsExclusiveScanNonUniform: - case glslang::EOpMaxInvocationsExclusiveScanNonUniform: - case glslang::EOpAddInvocationsExclusiveScanNonUniform: - groupOperation = spv::GroupOperationExclusiveScan; - break; - default: - break; - } - spv::IdImmediate scope = { true, builder.makeUintConstant(spv::ScopeSubgroup) }; - spvGroupOperands.push_back(scope); - if (groupOperation != spv::GroupOperationMax) { - spv::IdImmediate groupOp = { false, (unsigned)groupOperation }; - spvGroupOperands.push_back(groupOp); - } - } - - for (auto opIt = operands.begin(); opIt != operands.end(); ++opIt) { - spv::IdImmediate op = { true, *opIt }; - spvGroupOperands.push_back(op); - } - - switch (op) { - case glslang::EOpAnyInvocation: - opCode = spv::OpSubgroupAnyKHR; - break; - case glslang::EOpAllInvocations: - opCode = spv::OpSubgroupAllKHR; - break; - case glslang::EOpAllInvocationsEqual: - opCode = spv::OpSubgroupAllEqualKHR; - break; - case glslang::EOpReadInvocation: - opCode = spv::OpSubgroupReadInvocationKHR; - if (builder.isVectorType(typeId)) - return CreateInvocationsVectorOperation(opCode, groupOperation, typeId, operands); - break; - case glslang::EOpReadFirstInvocation: - opCode = spv::OpSubgroupFirstInvocationKHR; - if (builder.isVectorType(typeId)) - return CreateInvocationsVectorOperation(opCode, groupOperation, typeId, operands); - break; - case glslang::EOpBallot: - { - // NOTE: According to the spec, the result type of "OpSubgroupBallotKHR" must be a 4 component vector of 32 - // bit integer types. The GLSL built-in function "ballotARB()" assumes the maximum number of invocations in - // a subgroup is 64. Thus, we have to convert uvec4.xy to uint64_t as follow: - // - // result = Bitcast(SubgroupBallotKHR(Predicate).xy) - // - spv::Id uintType = builder.makeUintType(32); - spv::Id uvec4Type = builder.makeVectorType(uintType, 4); - spv::Id result = builder.createOp(spv::OpSubgroupBallotKHR, uvec4Type, spvGroupOperands); - - std::vector components; - components.push_back(builder.createCompositeExtract(result, uintType, 0)); - components.push_back(builder.createCompositeExtract(result, uintType, 1)); - - spv::Id uvec2Type = builder.makeVectorType(uintType, 2); - return builder.createUnaryOp(spv::OpBitcast, typeId, - builder.createCompositeConstruct(uvec2Type, components)); - } - - 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 (isFloat) - opCode = spv::OpGroupFMin; - else { - if (isUnsigned) - opCode = spv::OpGroupUMin; - else - opCode = spv::OpGroupSMin; - } - } else if (op == glslang::EOpMaxInvocations || - op == glslang::EOpMaxInvocationsInclusiveScan || - op == glslang::EOpMaxInvocationsExclusiveScan) { - if (isFloat) - opCode = spv::OpGroupFMax; - else { - if (isUnsigned) - opCode = spv::OpGroupUMax; - else - opCode = spv::OpGroupSMax; - } - } else { - if (isFloat) - opCode = spv::OpGroupFAdd; - else - opCode = spv::OpGroupIAdd; - } - - if (builder.isVectorType(typeId)) - return CreateInvocationsVectorOperation(opCode, groupOperation, 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 (isFloat) - opCode = spv::OpGroupFMinNonUniformAMD; - else { - if (isUnsigned) - opCode = spv::OpGroupUMinNonUniformAMD; - else - opCode = spv::OpGroupSMinNonUniformAMD; - } - } - else if (op == glslang::EOpMaxInvocationsNonUniform || - op == glslang::EOpMaxInvocationsInclusiveScanNonUniform || - op == glslang::EOpMaxInvocationsExclusiveScanNonUniform) { - if (isFloat) - opCode = spv::OpGroupFMaxNonUniformAMD; - else { - if (isUnsigned) - opCode = spv::OpGroupUMaxNonUniformAMD; - else - opCode = spv::OpGroupSMaxNonUniformAMD; - } - } - else { - if (isFloat) - opCode = spv::OpGroupFAddNonUniformAMD; - else - opCode = spv::OpGroupIAddNonUniformAMD; - } - - if (builder.isVectorType(typeId)) - return CreateInvocationsVectorOperation(opCode, groupOperation, typeId, operands); - - break; - default: - logger->missingFunctionality("invocation operation"); - return spv::NoResult; - } - - assert(opCode != spv::OpNop); - return builder.createOp(opCode, typeId, spvGroupOperands); -} - -// Create group invocation operations on a vector -spv::Id TGlslangToSpvTraverser::CreateInvocationsVectorOperation(spv::Op op, spv::GroupOperation groupOperation, - spv::Id typeId, std::vector& operands) -{ - 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::OpSubgroupFirstInvocationKHR || - op == spv::OpGroupFMinNonUniformAMD || op == spv::OpGroupUMinNonUniformAMD || - op == spv::OpGroupSMinNonUniformAMD || - op == spv::OpGroupFMaxNonUniformAMD || op == spv::OpGroupUMaxNonUniformAMD || - op == spv::OpGroupSMaxNonUniformAMD || - op == spv::OpGroupFAddNonUniformAMD || op == spv::OpGroupIAddNonUniformAMD); - - // Handle group invocation operations scalar by scalar. - // The result type is the same type as the original type. - // The algorithm is to: - // - break the vector into scalars - // - apply the operation to each scalar - // - make a vector out the scalar results - - // get the types sorted out - int numComponents = builder.getNumComponents(operands[0]); - spv::Id scalarType = builder.getScalarTypeId(builder.getTypeId(operands[0])); - std::vector results; - - // do each scalar op - for (int comp = 0; comp < numComponents; ++comp) { - std::vector indexes; - indexes.push_back(comp); - spv::IdImmediate scalar = { true, builder.createCompositeExtract(operands[0], scalarType, indexes) }; - std::vector spvGroupOperands; - if (op == spv::OpSubgroupReadInvocationKHR) { - spvGroupOperands.push_back(scalar); - spv::IdImmediate operand = { true, operands[1] }; - spvGroupOperands.push_back(operand); - } else if (op == spv::OpSubgroupFirstInvocationKHR) { - spvGroupOperands.push_back(scalar); - } else if (op == spv::OpGroupBroadcast) { - spv::IdImmediate scope = { true, builder.makeUintConstant(spv::ScopeSubgroup) }; - spvGroupOperands.push_back(scope); - spvGroupOperands.push_back(scalar); - spv::IdImmediate operand = { true, operands[1] }; - spvGroupOperands.push_back(operand); - } else { - spv::IdImmediate scope = { true, builder.makeUintConstant(spv::ScopeSubgroup) }; - spvGroupOperands.push_back(scope); - spv::IdImmediate groupOp = { false, (unsigned)groupOperation }; - spvGroupOperands.push_back(groupOp); - spvGroupOperands.push_back(scalar); - } - - results.push_back(builder.createOp(op, scalarType, spvGroupOperands)); - } - - // put the pieces together - 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; - 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; - default: assert(0 && "Unhandled subgroup operation!"); - } - - - const bool isUnsigned = isTypeUnsignedInt(typeProxy); - const bool isFloat = isTypeFloat(typeProxy); - 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: - case glslang::EOpSubgroupPartitionedAdd: - case glslang::EOpSubgroupPartitionedInclusiveAdd: - case glslang::EOpSubgroupPartitionedExclusiveAdd: - if (isFloat) { - opCode = spv::OpGroupNonUniformFAdd; - } else { - opCode = spv::OpGroupNonUniformIAdd; - } - break; - case glslang::EOpSubgroupMul: - case glslang::EOpSubgroupInclusiveMul: - case glslang::EOpSubgroupExclusiveMul: - case glslang::EOpSubgroupClusteredMul: - case glslang::EOpSubgroupPartitionedMul: - case glslang::EOpSubgroupPartitionedInclusiveMul: - case glslang::EOpSubgroupPartitionedExclusiveMul: - if (isFloat) { - opCode = spv::OpGroupNonUniformFMul; - } else { - opCode = spv::OpGroupNonUniformIMul; - } - break; - case glslang::EOpSubgroupMin: - case glslang::EOpSubgroupInclusiveMin: - case glslang::EOpSubgroupExclusiveMin: - case glslang::EOpSubgroupClusteredMin: - case glslang::EOpSubgroupPartitionedMin: - case glslang::EOpSubgroupPartitionedInclusiveMin: - case glslang::EOpSubgroupPartitionedExclusiveMin: - 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: - case glslang::EOpSubgroupPartitionedMax: - case glslang::EOpSubgroupPartitionedInclusiveMax: - case glslang::EOpSubgroupPartitionedExclusiveMax: - 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: - case glslang::EOpSubgroupPartitionedAnd: - case glslang::EOpSubgroupPartitionedInclusiveAnd: - case glslang::EOpSubgroupPartitionedExclusiveAnd: - if (isBool) { - opCode = spv::OpGroupNonUniformLogicalAnd; - } else { - opCode = spv::OpGroupNonUniformBitwiseAnd; - } - break; - case glslang::EOpSubgroupOr: - case glslang::EOpSubgroupInclusiveOr: - case glslang::EOpSubgroupExclusiveOr: - case glslang::EOpSubgroupClusteredOr: - case glslang::EOpSubgroupPartitionedOr: - case glslang::EOpSubgroupPartitionedInclusiveOr: - case glslang::EOpSubgroupPartitionedExclusiveOr: - if (isBool) { - opCode = spv::OpGroupNonUniformLogicalOr; - } else { - opCode = spv::OpGroupNonUniformBitwiseOr; - } - break; - case glslang::EOpSubgroupXor: - case glslang::EOpSubgroupInclusiveXor: - case glslang::EOpSubgroupExclusiveXor: - case glslang::EOpSubgroupClusteredXor: - case glslang::EOpSubgroupPartitionedXor: - case glslang::EOpSubgroupPartitionedInclusiveXor: - case glslang::EOpSubgroupPartitionedExclusiveXor: - 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!"); - } - - // get the right Group Operation - spv::GroupOperation groupOperation = spv::GroupOperationMax; - 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: - groupOperation = 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: - groupOperation = 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: - groupOperation = spv::GroupOperationExclusiveScan; - break; - case glslang::EOpSubgroupClusteredAdd: - case glslang::EOpSubgroupClusteredMul: - case glslang::EOpSubgroupClusteredMin: - case glslang::EOpSubgroupClusteredMax: - case glslang::EOpSubgroupClusteredAnd: - case glslang::EOpSubgroupClusteredOr: - case glslang::EOpSubgroupClusteredXor: - groupOperation = spv::GroupOperationClusteredReduce; - break; - case glslang::EOpSubgroupPartitionedAdd: - case glslang::EOpSubgroupPartitionedMul: - case glslang::EOpSubgroupPartitionedMin: - case glslang::EOpSubgroupPartitionedMax: - case glslang::EOpSubgroupPartitionedAnd: - case glslang::EOpSubgroupPartitionedOr: - case glslang::EOpSubgroupPartitionedXor: - groupOperation = spv::GroupOperationPartitionedReduceNV; - break; - case glslang::EOpSubgroupPartitionedInclusiveAdd: - case glslang::EOpSubgroupPartitionedInclusiveMul: - case glslang::EOpSubgroupPartitionedInclusiveMin: - case glslang::EOpSubgroupPartitionedInclusiveMax: - case glslang::EOpSubgroupPartitionedInclusiveAnd: - case glslang::EOpSubgroupPartitionedInclusiveOr: - case glslang::EOpSubgroupPartitionedInclusiveXor: - groupOperation = spv::GroupOperationPartitionedInclusiveScanNV; - break; - case glslang::EOpSubgroupPartitionedExclusiveAdd: - case glslang::EOpSubgroupPartitionedExclusiveMul: - case glslang::EOpSubgroupPartitionedExclusiveMin: - case glslang::EOpSubgroupPartitionedExclusiveMax: - case glslang::EOpSubgroupPartitionedExclusiveAnd: - case glslang::EOpSubgroupPartitionedExclusiveOr: - case glslang::EOpSubgroupPartitionedExclusiveXor: - groupOperation = spv::GroupOperationPartitionedExclusiveScanNV; - break; - } - - // build the instruction - std::vector spvGroupOperands; - - // Every operation begins with the Execution Scope operand. - spv::IdImmediate executionScope = { true, builder.makeUintConstant(spv::ScopeSubgroup) }; - spvGroupOperands.push_back(executionScope); - - // Next, for all operations that use a Group Operation, push that as an operand. - if (groupOperation != spv::GroupOperationMax) { - spv::IdImmediate groupOperand = { false, (unsigned)groupOperation }; - spvGroupOperands.push_back(groupOperand); - } - - // Push back the operands next. - for (auto opIt = operands.cbegin(); opIt != operands.cend(); ++opIt) { - spv::IdImmediate operand = { true, *opIt }; - spvGroupOperands.push_back(operand); - } - - // Some opcodes have additional operands. - spv::Id directionId = spv::NoResult; - switch (op) { - default: break; - case glslang::EOpSubgroupQuadSwapHorizontal: directionId = builder.makeUintConstant(0); break; - case glslang::EOpSubgroupQuadSwapVertical: directionId = builder.makeUintConstant(1); break; - case glslang::EOpSubgroupQuadSwapDiagonal: directionId = builder.makeUintConstant(2); break; - } - if (directionId != spv::NoResult) { - spv::IdImmediate direction = { true, directionId }; - spvGroupOperands.push_back(direction); - } - - 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); - - spv::Op opCode = spv::OpNop; - int extBuiltins = -1; - int libCall = -1; - size_t consumedOperands = operands.size(); - 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) { - case glslang::EOpMin: - if (isFloat) - libCall = nanMinMaxClamp ? spv::GLSLstd450NMin : spv::GLSLstd450FMin; - else if (isUnsigned) - libCall = spv::GLSLstd450UMin; - else - libCall = spv::GLSLstd450SMin; - builder.promoteScalar(precision, operands.front(), operands.back()); - break; - case glslang::EOpModf: - libCall = spv::GLSLstd450Modf; - break; - case glslang::EOpMax: - if (isFloat) - libCall = nanMinMaxClamp ? spv::GLSLstd450NMax : spv::GLSLstd450FMax; - else if (isUnsigned) - libCall = spv::GLSLstd450UMax; - else - libCall = spv::GLSLstd450SMax; - builder.promoteScalar(precision, operands.front(), operands.back()); - break; - case glslang::EOpPow: - libCall = spv::GLSLstd450Pow; - break; - case glslang::EOpDot: - opCode = spv::OpDot; - break; - case glslang::EOpAtan: - libCall = spv::GLSLstd450Atan2; - break; - - case glslang::EOpClamp: - if (isFloat) - libCall = nanMinMaxClamp ? spv::GLSLstd450NClamp : spv::GLSLstd450FClamp; - else if (isUnsigned) - libCall = spv::GLSLstd450UClamp; - else - libCall = spv::GLSLstd450SClamp; - builder.promoteScalar(precision, operands.front(), operands[1]); - builder.promoteScalar(precision, operands.front(), operands[2]); - break; - case glslang::EOpMix: - if (! builder.isBoolType(builder.getScalarTypeId(builder.getTypeId(operands.back())))) { - assert(isFloat); - libCall = spv::GLSLstd450FMix; - } else { - opCode = spv::OpSelect; - std::swap(operands.front(), operands.back()); - } - builder.promoteScalar(precision, operands.front(), operands.back()); - break; - case glslang::EOpStep: - libCall = spv::GLSLstd450Step; - builder.promoteScalar(precision, operands.front(), operands.back()); - break; - case glslang::EOpSmoothStep: - libCall = spv::GLSLstd450SmoothStep; - builder.promoteScalar(precision, operands[0], operands[2]); - builder.promoteScalar(precision, operands[1], operands[2]); - break; - - case glslang::EOpDistance: - libCall = spv::GLSLstd450Distance; - break; - case glslang::EOpCross: - libCall = spv::GLSLstd450Cross; - break; - case glslang::EOpFaceForward: - libCall = spv::GLSLstd450FaceForward; - break; - case glslang::EOpReflect: - libCall = spv::GLSLstd450Reflect; - break; - case glslang::EOpRefract: - libCall = spv::GLSLstd450Refract; - break; - case glslang::EOpBarrier: - { - // This is for the extended controlBarrier function, with four operands. - // The unextended barrier() goes through createNoArgOperation. - assert(operands.size() == 4); - unsigned int executionScope = builder.getConstantScalar(operands[0]); - unsigned int memoryScope = builder.getConstantScalar(operands[1]); - unsigned int semantics = builder.getConstantScalar(operands[2]) | builder.getConstantScalar(operands[3]); - builder.createControlBarrier((spv::Scope)executionScope, (spv::Scope)memoryScope, - (spv::MemorySemanticsMask)semantics); - if (semantics & (spv::MemorySemanticsMakeAvailableKHRMask | - spv::MemorySemanticsMakeVisibleKHRMask | - spv::MemorySemanticsOutputMemoryKHRMask | - spv::MemorySemanticsVolatileMask)) { - builder.addCapability(spv::CapabilityVulkanMemoryModelKHR); - } - if (glslangIntermediate->usingVulkanMemoryModel() && (executionScope == spv::ScopeDevice || - memoryScope == spv::ScopeDevice)) { - builder.addCapability(spv::CapabilityVulkanMemoryModelDeviceScopeKHR); - } - return 0; - } - break; - case glslang::EOpMemoryBarrier: - { - // This is for the extended memoryBarrier function, with three operands. - // The unextended memoryBarrier() goes through createNoArgOperation. - assert(operands.size() == 3); - unsigned int memoryScope = builder.getConstantScalar(operands[0]); - unsigned int semantics = builder.getConstantScalar(operands[1]) | builder.getConstantScalar(operands[2]); - builder.createMemoryBarrier((spv::Scope)memoryScope, (spv::MemorySemanticsMask)semantics); - if (semantics & (spv::MemorySemanticsMakeAvailableKHRMask | - spv::MemorySemanticsMakeVisibleKHRMask | - spv::MemorySemanticsOutputMemoryKHRMask | - spv::MemorySemanticsVolatileMask)) { - builder.addCapability(spv::CapabilityVulkanMemoryModelKHR); - } - if (glslangIntermediate->usingVulkanMemoryModel() && memoryScope == spv::ScopeDevice) { - builder.addCapability(spv::CapabilityVulkanMemoryModelDeviceScopeKHR); - } - return 0; - } - break; - -#ifndef GLSLANG_WEB - case glslang::EOpInterpolateAtSample: - if (typeProxy == glslang::EbtFloat16) - builder.addExtension(spv::E_SPV_AMD_gpu_shader_half_float); - libCall = spv::GLSLstd450InterpolateAtSample; - break; - case glslang::EOpInterpolateAtOffset: - if (typeProxy == glslang::EbtFloat16) - builder.addExtension(spv::E_SPV_AMD_gpu_shader_half_float); - libCall = spv::GLSLstd450InterpolateAtOffset; - break; - case glslang::EOpAddCarry: - opCode = spv::OpIAddCarry; - typeId = builder.makeStructResultType(typeId0, typeId0); - consumedOperands = 2; - break; - case glslang::EOpSubBorrow: - opCode = spv::OpISubBorrow; - typeId = builder.makeStructResultType(typeId0, typeId0); - consumedOperands = 2; - break; - case glslang::EOpUMulExtended: - opCode = spv::OpUMulExtended; - typeId = builder.makeStructResultType(typeId0, typeId0); - consumedOperands = 2; - break; - case glslang::EOpIMulExtended: - opCode = spv::OpSMulExtended; - typeId = builder.makeStructResultType(typeId0, typeId0); - consumedOperands = 2; - break; - case glslang::EOpBitfieldExtract: - if (isUnsigned) - opCode = spv::OpBitFieldUExtract; - else - opCode = spv::OpBitFieldSExtract; - break; - case glslang::EOpBitfieldInsert: - opCode = spv::OpBitFieldInsert; - break; - - case glslang::EOpFma: - libCall = spv::GLSLstd450Fma; - break; - case glslang::EOpFrexp: - { - libCall = spv::GLSLstd450FrexpStruct; - assert(builder.isPointerType(typeId1)); - typeId1 = builder.getContainedTypeId(typeId1); - int width = builder.getScalarTypeWidth(typeId1); - if (width == 16) - // Using 16-bit exp operand, enable extension SPV_AMD_gpu_shader_int16 - builder.addExtension(spv::E_SPV_AMD_gpu_shader_int16); - 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; - break; - - 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: - 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: - return createSubgroupOperation(op, typeId, operands, typeProxy); - - case glslang::EOpSwizzleInvocations: - extBuiltins = getExtBuiltins(spv::E_SPV_AMD_shader_ballot); - libCall = spv::SwizzleInvocationsAMD; - break; - case glslang::EOpSwizzleInvocationsMasked: - extBuiltins = getExtBuiltins(spv::E_SPV_AMD_shader_ballot); - libCall = spv::SwizzleInvocationsMaskedAMD; - break; - case glslang::EOpWriteInvocation: - extBuiltins = getExtBuiltins(spv::E_SPV_AMD_shader_ballot); - libCall = spv::WriteInvocationAMD; - break; - - case glslang::EOpMin3: - extBuiltins = getExtBuiltins(spv::E_SPV_AMD_shader_trinary_minmax); - if (isFloat) - libCall = spv::FMin3AMD; - else { - if (isUnsigned) - libCall = spv::UMin3AMD; - else - libCall = spv::SMin3AMD; - } - break; - case glslang::EOpMax3: - extBuiltins = getExtBuiltins(spv::E_SPV_AMD_shader_trinary_minmax); - if (isFloat) - libCall = spv::FMax3AMD; - else { - if (isUnsigned) - libCall = spv::UMax3AMD; - else - libCall = spv::SMax3AMD; - } - break; - case glslang::EOpMid3: - extBuiltins = getExtBuiltins(spv::E_SPV_AMD_shader_trinary_minmax); - if (isFloat) - libCall = spv::FMid3AMD; - else { - if (isUnsigned) - libCall = spv::UMid3AMD; - else - libCall = spv::SMid3AMD; - } - 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; - - case glslang::EOpReportIntersection: - typeId = builder.makeBoolType(); - opCode = spv::OpReportIntersectionKHR; - break; - case glslang::EOpTraceNV: - builder.createNoResultOp(spv::OpTraceNV, operands); - return 0; - case glslang::EOpTraceRayMotionNV: - builder.addExtension(spv::E_SPV_NV_ray_tracing_motion_blur); - builder.addCapability(spv::CapabilityRayTracingMotionBlurNV); - builder.createNoResultOp(spv::OpTraceRayMotionNV, operands); - return 0; - case glslang::EOpTraceKHR: - builder.createNoResultOp(spv::OpTraceRayKHR, operands); - return 0; - case glslang::EOpExecuteCallableNV: - builder.createNoResultOp(spv::OpExecuteCallableNV, operands); - return 0; - case glslang::EOpExecuteCallableKHR: - builder.createNoResultOp(spv::OpExecuteCallableKHR, operands); - return 0; - - case glslang::EOpRayQueryInitialize: - builder.createNoResultOp(spv::OpRayQueryInitializeKHR, operands); - return 0; - case glslang::EOpRayQueryTerminate: - builder.createNoResultOp(spv::OpRayQueryTerminateKHR, operands); - return 0; - case glslang::EOpRayQueryGenerateIntersection: - builder.createNoResultOp(spv::OpRayQueryGenerateIntersectionKHR, operands); - return 0; - case glslang::EOpRayQueryConfirmIntersection: - builder.createNoResultOp(spv::OpRayQueryConfirmIntersectionKHR, operands); - return 0; - case glslang::EOpRayQueryProceed: - typeId = builder.makeBoolType(); - opCode = spv::OpRayQueryProceedKHR; - break; - case glslang::EOpRayQueryGetIntersectionType: - typeId = builder.makeUintType(32); - opCode = spv::OpRayQueryGetIntersectionTypeKHR; - break; - case glslang::EOpRayQueryGetRayTMin: - typeId = builder.makeFloatType(32); - opCode = spv::OpRayQueryGetRayTMinKHR; - break; - case glslang::EOpRayQueryGetRayFlags: - typeId = builder.makeIntType(32); - opCode = spv::OpRayQueryGetRayFlagsKHR; - break; - case glslang::EOpRayQueryGetIntersectionT: - typeId = builder.makeFloatType(32); - opCode = spv::OpRayQueryGetIntersectionTKHR; - break; - case glslang::EOpRayQueryGetIntersectionInstanceCustomIndex: - typeId = builder.makeIntType(32); - opCode = spv::OpRayQueryGetIntersectionInstanceCustomIndexKHR; - break; - case glslang::EOpRayQueryGetIntersectionInstanceId: - typeId = builder.makeIntType(32); - opCode = spv::OpRayQueryGetIntersectionInstanceIdKHR; - break; - case glslang::EOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffset: - typeId = builder.makeUintType(32); - opCode = spv::OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR; - break; - case glslang::EOpRayQueryGetIntersectionGeometryIndex: - typeId = builder.makeIntType(32); - opCode = spv::OpRayQueryGetIntersectionGeometryIndexKHR; - break; - case glslang::EOpRayQueryGetIntersectionPrimitiveIndex: - typeId = builder.makeIntType(32); - opCode = spv::OpRayQueryGetIntersectionPrimitiveIndexKHR; - break; - case glslang::EOpRayQueryGetIntersectionBarycentrics: - typeId = builder.makeVectorType(builder.makeFloatType(32), 2); - opCode = spv::OpRayQueryGetIntersectionBarycentricsKHR; - break; - case glslang::EOpRayQueryGetIntersectionFrontFace: - typeId = builder.makeBoolType(); - opCode = spv::OpRayQueryGetIntersectionFrontFaceKHR; - break; - case glslang::EOpRayQueryGetIntersectionCandidateAABBOpaque: - typeId = builder.makeBoolType(); - opCode = spv::OpRayQueryGetIntersectionCandidateAABBOpaqueKHR; - break; - case glslang::EOpRayQueryGetIntersectionObjectRayDirection: - typeId = builder.makeVectorType(builder.makeFloatType(32), 3); - opCode = spv::OpRayQueryGetIntersectionObjectRayDirectionKHR; - break; - case glslang::EOpRayQueryGetIntersectionObjectRayOrigin: - typeId = builder.makeVectorType(builder.makeFloatType(32), 3); - opCode = spv::OpRayQueryGetIntersectionObjectRayOriginKHR; - break; - case glslang::EOpRayQueryGetWorldRayDirection: - typeId = builder.makeVectorType(builder.makeFloatType(32), 3); - opCode = spv::OpRayQueryGetWorldRayDirectionKHR; - break; - case glslang::EOpRayQueryGetWorldRayOrigin: - typeId = builder.makeVectorType(builder.makeFloatType(32), 3); - opCode = spv::OpRayQueryGetWorldRayOriginKHR; - break; - case glslang::EOpRayQueryGetIntersectionObjectToWorld: - typeId = builder.makeMatrixType(builder.makeFloatType(32), 4, 3); - opCode = spv::OpRayQueryGetIntersectionObjectToWorldKHR; - break; - case glslang::EOpRayQueryGetIntersectionWorldToObject: - typeId = builder.makeMatrixType(builder.makeFloatType(32), 4, 3); - opCode = spv::OpRayQueryGetIntersectionWorldToObjectKHR; - break; - case glslang::EOpWritePackedPrimitiveIndices4x8NV: - builder.createNoResultOp(spv::OpWritePackedPrimitiveIndices4x8NV, operands); - return 0; - case glslang::EOpCooperativeMatrixMulAdd: - opCode = spv::OpCooperativeMatrixMulAddNV; - break; -#endif // GLSLANG_WEB - default: - return 0; - } - - spv::Id id = 0; - if (libCall >= 0) { - // Use an extended instruction from the standard library. - // Construct the call arguments, without modifying the original operands vector. - // We might need the remaining arguments, e.g. in the EOpFrexp case. - std::vector callArguments(operands.begin(), operands.begin() + consumedOperands); - id = builder.createBuiltinCall(typeId, extBuiltins >= 0 ? extBuiltins : stdBuiltins, libCall, callArguments); - } else if (opCode == spv::OpDot && !isFloat) { - // int dot(int, int) - // NOTE: never called for scalar/vector1, this is turned into simple mul before this can be reached - const int componentCount = builder.getNumComponents(operands[0]); - spv::Id mulOp = builder.createBinOp(spv::OpIMul, builder.getTypeId(operands[0]), operands[0], operands[1]); - builder.setPrecision(mulOp, precision); - id = builder.createCompositeExtract(mulOp, typeId, 0); - for (int i = 1; i < componentCount; ++i) { - builder.setPrecision(id, precision); - id = builder.createBinOp(spv::OpIAdd, typeId, id, builder.createCompositeExtract(mulOp, typeId, i)); - } - } else { - switch (consumedOperands) { - case 0: - // should all be handled by visitAggregate and createNoArgOperation - assert(0); - return 0; - case 1: - // should all be handled by createUnaryOperation - assert(0); - return 0; - case 2: - id = builder.createBinOp(opCode, typeId, operands[0], operands[1]); - break; - default: - // anything 3 or over doesn't have l-value operands, so all should be consumed - assert(consumedOperands == operands.size()); - id = builder.createOp(opCode, typeId, operands); - break; - } - } - -#ifndef GLSLANG_WEB - // Decode the return types that were structures - switch (op) { - case glslang::EOpAddCarry: - case glslang::EOpSubBorrow: - builder.createStore(builder.createCompositeExtract(id, typeId0, 1), operands[2]); - id = builder.createCompositeExtract(id, typeId0, 0); - break; - case glslang::EOpUMulExtended: - case glslang::EOpIMulExtended: - builder.createStore(builder.createCompositeExtract(id, typeId0, 0), operands[3]); - 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); - } - break; - default: - break; - } -#endif - - return builder.setPrecision(id, precision); -} - -// Intrinsics with no arguments (or no return value, and no precision). -spv::Id TGlslangToSpvTraverser::createNoArgOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId) -{ - // GLSL memory barriers use queuefamily scope in new model, device scope in old model - spv::Scope memoryBarrierScope = glslangIntermediate->usingVulkanMemoryModel() ? - spv::ScopeQueueFamilyKHR : spv::ScopeDevice; - - switch (op) { - case glslang::EOpBarrier: - if (glslangIntermediate->getStage() == EShLangTessControl) { - if (glslangIntermediate->usingVulkanMemoryModel()) { - builder.createControlBarrier(spv::ScopeWorkgroup, spv::ScopeWorkgroup, - spv::MemorySemanticsOutputMemoryKHRMask | - spv::MemorySemanticsAcquireReleaseMask); - builder.addCapability(spv::CapabilityVulkanMemoryModelKHR); - } else { - builder.createControlBarrier(spv::ScopeWorkgroup, spv::ScopeInvocation, spv::MemorySemanticsMaskNone); - } - } else { - builder.createControlBarrier(spv::ScopeWorkgroup, spv::ScopeWorkgroup, - spv::MemorySemanticsWorkgroupMemoryMask | - spv::MemorySemanticsAcquireReleaseMask); - } - return 0; - case glslang::EOpMemoryBarrier: - builder.createMemoryBarrier(memoryBarrierScope, spv::MemorySemanticsAllMemory | - spv::MemorySemanticsAcquireReleaseMask); - return 0; - case glslang::EOpMemoryBarrierBuffer: - builder.createMemoryBarrier(memoryBarrierScope, spv::MemorySemanticsUniformMemoryMask | - spv::MemorySemanticsAcquireReleaseMask); - return 0; - case glslang::EOpMemoryBarrierShared: - builder.createMemoryBarrier(memoryBarrierScope, spv::MemorySemanticsWorkgroupMemoryMask | - spv::MemorySemanticsAcquireReleaseMask); - return 0; - case glslang::EOpGroupMemoryBarrier: - builder.createMemoryBarrier(spv::ScopeWorkgroup, spv::MemorySemanticsAllMemory | - spv::MemorySemanticsAcquireReleaseMask); - return 0; -#ifndef GLSLANG_WEB - case glslang::EOpMemoryBarrierAtomicCounter: - builder.createMemoryBarrier(memoryBarrierScope, spv::MemorySemanticsAtomicCounterMemoryMask | - spv::MemorySemanticsAcquireReleaseMask); - return 0; - case glslang::EOpMemoryBarrierImage: - builder.createMemoryBarrier(memoryBarrierScope, spv::MemorySemanticsImageMemoryMask | - spv::MemorySemanticsAcquireReleaseMask); - return 0; - case glslang::EOpAllMemoryBarrierWithGroupSync: - builder.createControlBarrier(spv::ScopeWorkgroup, spv::ScopeDevice, - spv::MemorySemanticsAllMemory | - spv::MemorySemanticsAcquireReleaseMask); - 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); - return 0; - case glslang::EOpWorkgroupMemoryBarrier: - builder.createMemoryBarrier(spv::ScopeWorkgroup, spv::MemorySemanticsWorkgroupMemoryMask | - spv::MemorySemanticsAcquireReleaseMask); - return 0; - case glslang::EOpWorkgroupMemoryBarrierWithGroupSync: - 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::EOpEmitVertex: - builder.createNoResultOp(spv::OpEmitVertex); - return 0; - case glslang::EOpEndPrimitive: - builder.createNoResultOp(spv::OpEndPrimitive); - return 0; - - case glslang::EOpSubgroupElect: { - std::vector operands; - return createSubgroupOperation(op, typeId, operands, glslang::EbtVoid); - } - case glslang::EOpTime: - { - std::vector args; // Dummy arguments - spv::Id id = builder.createBuiltinCall(typeId, getExtBuiltins(spv::E_SPV_AMD_gcn_shader), spv::TimeAMD, args); - return builder.setPrecision(id, precision); - } - case glslang::EOpIgnoreIntersectionNV: - builder.createNoResultOp(spv::OpIgnoreIntersectionNV); - return 0; - case glslang::EOpTerminateRayNV: - builder.createNoResultOp(spv::OpTerminateRayNV); - return 0; - case glslang::EOpRayQueryInitialize: - builder.createNoResultOp(spv::OpRayQueryInitializeKHR); - return 0; - case glslang::EOpRayQueryTerminate: - builder.createNoResultOp(spv::OpRayQueryTerminateKHR); - return 0; - case glslang::EOpRayQueryGenerateIntersection: - builder.createNoResultOp(spv::OpRayQueryGenerateIntersectionKHR); - return 0; - case glslang::EOpRayQueryConfirmIntersection: - builder.createNoResultOp(spv::OpRayQueryConfirmIntersectionKHR); - return 0; - case glslang::EOpBeginInvocationInterlock: - builder.createNoResultOp(spv::OpBeginInvocationInterlockEXT); - return 0; - case glslang::EOpEndInvocationInterlock: - builder.createNoResultOp(spv::OpEndInvocationInterlockEXT); - return 0; - - case glslang::EOpIsHelperInvocation: - { - std::vector args; // Dummy arguments - builder.addExtension(spv::E_SPV_EXT_demote_to_helper_invocation); - builder.addCapability(spv::CapabilityDemoteToHelperInvocationEXT); - return builder.createOp(spv::OpIsHelperInvocationEXT, typeId, args); - } - - case glslang::EOpReadClockSubgroupKHR: { - std::vector args; - args.push_back(builder.makeUintConstant(spv::ScopeSubgroup)); - builder.addExtension(spv::E_SPV_KHR_shader_clock); - builder.addCapability(spv::CapabilityShaderClockKHR); - return builder.createOp(spv::OpReadClockKHR, typeId, args); - } - - case glslang::EOpReadClockDeviceKHR: { - std::vector args; - args.push_back(builder.makeUintConstant(spv::ScopeDevice)); - builder.addExtension(spv::E_SPV_KHR_shader_clock); - builder.addCapability(spv::CapabilityShaderClockKHR); - return builder.createOp(spv::OpReadClockKHR, typeId, args); - } -#endif - default: - break; - } - - logger->missingFunctionality("unknown operation with no arguments"); - - return 0; -} - -spv::Id TGlslangToSpvTraverser::getSymbolId(const glslang::TIntermSymbol* symbol) -{ - auto iter = symbolValues.find(symbol->getId()); - spv::Id id; - if (symbolValues.end() != iter) { - id = iter->second; - return id; - } - - // it was not found, create it - spv::BuiltIn builtIn = TranslateBuiltInDecoration(symbol->getQualifier().builtIn, false); - auto forcedType = getForcedType(symbol->getQualifier().builtIn, symbol->getType()); - id = createSpvVariable(symbol, forcedType.first); - symbolValues[symbol->getId()] = id; - if (forcedType.second != spv::NoType) - forceType[id] = forcedType.second; - - 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())); -#ifndef GLSLANG_WEB - addMeshNVDecoration(id, /*member*/ -1, symbol->getType().getQualifier()); - if (symbol->getQualifier().hasComponent()) - builder.addDecoration(id, spv::DecorationComponent, symbol->getQualifier().layoutComponent); - if (symbol->getQualifier().hasIndex()) - builder.addDecoration(id, spv::DecorationIndex, symbol->getQualifier().layoutIndex); -#endif - if (symbol->getType().getQualifier().hasSpecConstantId()) - builder.addDecoration(id, spv::DecorationSpecId, symbol->getType().getQualifier().layoutSpecConstantId); - // atomic counters use this: - if (symbol->getQualifier().hasOffset()) - builder.addDecoration(id, spv::DecorationOffset, symbol->getQualifier().layoutOffset); - } - - if (symbol->getQualifier().hasLocation()) { - if (!(glslangIntermediate->isRayTracingStage() && glslangIntermediate->IsRequestedExtension(glslang::E_GL_EXT_ray_tracing) - && (builder.getStorageClass(id) == spv::StorageClassRayPayloadKHR || - builder.getStorageClass(id) == spv::StorageClassIncomingRayPayloadKHR || - builder.getStorageClass(id) == spv::StorageClassCallableDataKHR || - builder.getStorageClass(id) == spv::StorageClassIncomingCallableDataKHR))) { - // Location values are used to link TraceRayKHR and ExecuteCallableKHR to corresponding variables - // but are not valid in SPIRV since they are supported only for Input/Output Storage classes. - builder.addDecoration(id, spv::DecorationLocation, symbol->getQualifier().layoutLocation); - } - } - - 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); - } - if (symbol->getQualifier().hasSet()) - builder.addDecoration(id, spv::DecorationDescriptorSet, symbol->getQualifier().layoutSet); - else if (IsDescriptorResource(symbol->getType())) { - // default to 0 - builder.addDecoration(id, spv::DecorationDescriptorSet, 0); - } - if (symbol->getQualifier().hasBinding()) - builder.addDecoration(id, spv::DecorationBinding, symbol->getQualifier().layoutBinding); - else if (IsDescriptorResource(symbol->getType())) { - // default to 0 - builder.addDecoration(id, spv::DecorationBinding, 0); - } - if (symbol->getQualifier().hasAttachment()) - builder.addDecoration(id, spv::DecorationInputAttachmentIndex, symbol->getQualifier().layoutAttachment); - if (glslangIntermediate->getXfbMode()) { - builder.addCapability(spv::CapabilityTransformFeedback); - 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); - } - - // add built-in variable decoration - if (builtIn != spv::BuiltInMax) { - // WorkgroupSize deprecated in spirv1.6 - if (glslangIntermediate->getSpv().spv < glslang::EShTargetSpv_1_6 || - builtIn != spv::BuiltInWorkgroupSize) - builder.addDecoration(id, spv::DecorationBuiltIn, (int)builtIn); - } - - // Add volatile decoration to HelperInvocation for spirv1.6 and beyond - if (builtIn == spv::BuiltInHelperInvocation && - glslangIntermediate->getSpv().spv >= glslang::EShTargetSpv_1_6) { - builder.addDecoration(id, spv::DecorationVolatile); - } - -#ifndef GLSLANG_WEB - // Subgroup builtins which have input storage class are volatile for ray tracing stages. - if (symbol->getType().isImage() || symbol->getQualifier().isPipeInput()) { - std::vector memory; - TranslateMemoryDecoration(symbol->getType().getQualifier(), memory, - glslangIntermediate->usingVulkanMemoryModel()); - for (unsigned int i = 0; i < memory.size(); ++i) - builder.addDecoration(id, memory[i]); - } - - 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.addCapability(spv::CapabilitySampleMaskOverrideCoverageNV); - 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); - } - if (symbol->getQualifier().pervertexNV) { - builder.addDecoration(id, spv::DecorationPerVertexNV); - builder.addCapability(spv::CapabilityFragmentBarycentricNV); - builder.addExtension(spv::E_SPV_NV_fragment_shader_barycentric); - } - - 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); - } - - if (symbol->isReference()) { - builder.addDecoration(id, symbol->getType().getQualifier().restrict ? - spv::DecorationRestrictPointerEXT : spv::DecorationAliasedPointerEXT); - } - - // - // Add SPIR-V decorations for structure (GL_EXT_spirv_intrinsics) - // - if (symbol->getType().getQualifier().hasSprivDecorate()) { - const glslang::TSpirvDecorate& spirvDecorate = symbol->getType().getQualifier().getSpirvDecorate(); - - // Add spirv_decorate - for (auto& decorate : spirvDecorate.decorates) { - if (!decorate.second.empty()) { - std::vector literals; - TranslateLiterals(decorate.second, literals); - builder.addDecoration(id, static_cast(decorate.first), literals); - } - else - builder.addDecoration(id, static_cast(decorate.first)); - } - - // Add spirv_decorate_id - for (auto& decorateId : spirvDecorate.decorateIds) { - std::vector operandIds; - assert(!decorateId.second.empty()); - for (auto extraOperand : decorateId.second) { - if (extraOperand->getQualifier().isSpecConstant()) - operandIds.push_back(getSymbolId(extraOperand->getAsSymbolNode())); - else - operandIds.push_back(createSpvConstant(*extraOperand)); - } - builder.addDecorationId(id, static_cast(decorateId.first), operandIds); - } - - // Add spirv_decorate_string - for (auto& decorateString : spirvDecorate.decorateStrings) { - std::vector strings; - assert(!decorateString.second.empty()); - for (auto extraOperand : decorateString.second) { - const char* string = extraOperand->getConstArray()[0].getSConst()->c_str(); - strings.push_back(string); - } - builder.addDecoration(id, static_cast(decorateString.first), strings); - } - } -#endif - - return id; -} - -#ifndef GLSLANG_WEB -// add per-primitive, per-view. per-task decorations to a struct member (member >= 0) or an object -void TGlslangToSpvTraverser::addMeshNVDecoration(spv::Id id, int member, const glslang::TQualifier& qualifier) -{ - if (member >= 0) { - if (qualifier.perPrimitiveNV) { - // Need to add capability/extension for fragment shader. - // Mesh shader already adds this by default. - if (glslangIntermediate->getStage() == EShLangFragment) { - builder.addCapability(spv::CapabilityMeshShadingNV); - builder.addExtension(spv::E_SPV_NV_mesh_shader); - } - builder.addMemberDecoration(id, (unsigned)member, spv::DecorationPerPrimitiveNV); - } - if (qualifier.perViewNV) - builder.addMemberDecoration(id, (unsigned)member, spv::DecorationPerViewNV); - if (qualifier.perTaskNV) - builder.addMemberDecoration(id, (unsigned)member, spv::DecorationPerTaskNV); - } else { - if (qualifier.perPrimitiveNV) { - // Need to add capability/extension for fragment shader. - // Mesh shader already adds this by default. - if (glslangIntermediate->getStage() == EShLangFragment) { - builder.addCapability(spv::CapabilityMeshShadingNV); - builder.addExtension(spv::E_SPV_NV_mesh_shader); - } - builder.addDecoration(id, spv::DecorationPerPrimitiveNV); - } - if (qualifier.perViewNV) - builder.addDecoration(id, spv::DecorationPerViewNV); - if (qualifier.perTaskNV) - builder.addDecoration(id, spv::DecorationPerTaskNV); - } -} -#endif - -// Make a full tree of instructions to build a SPIR-V specialization constant, -// or regular constant if possible. -// -// TBD: this is not yet done, nor verified to be the best design, it does do the leaf symbols though -// -// Recursively walk the nodes. The nodes form a tree whose leaves are -// regular constants, which themselves are trees that createSpvConstant() -// recursively walks. So, this function walks the "top" of the tree: -// - emit specialization constant-building instructions for specConstant -// - when running into a non-spec-constant, switch to createSpvConstant() -spv::Id TGlslangToSpvTraverser::createSpvConstant(const glslang::TIntermTyped& node) -{ - assert(node.getQualifier().isConstant()); - - // Handle front-end constants first (non-specialization constants). - if (! node.getQualifier().specConstant) { - // hand off to the non-spec-constant path - assert(node.getAsConstantUnion() != nullptr || node.getAsSymbolNode() != nullptr); - int nextConst = 0; - return createSpvConstantFromConstUnionArray(node.getType(), node.getAsConstantUnion() ? - node.getAsConstantUnion()->getConstArray() : node.getAsSymbolNode()->getConstArray(), - nextConst, false); - } - - // We now know we have a specialization constant to build - - // Extra capabilities may be needed. - if (node.getType().contains8BitInt()) - builder.addCapability(spv::CapabilityInt8); - if (node.getType().contains16BitFloat()) - builder.addCapability(spv::CapabilityFloat16); - if (node.getType().contains16BitInt()) - builder.addCapability(spv::CapabilityInt16); - if (node.getType().contains64BitInt()) - builder.addCapability(spv::CapabilityInt64); - if (node.getType().containsDouble()) - builder.addCapability(spv::CapabilityFloat64); - - // gl_WorkGroupSize is a special case until the front-end handles hierarchical specialization constants, - // even then, it's specialization ids are handled by special case syntax in GLSL: layout(local_size_x = ... - if (node.getType().getQualifier().builtIn == glslang::EbvWorkGroupSize) { - std::vector dimConstId; - 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)); - } - } - return builder.makeCompositeConstant(builder.makeVectorType(builder.makeUintType(32), 3), dimConstId, true); - } - - // An AST node labelled as specialization constant should be a symbol node. - // Its initializer should either be a sub tree with constant nodes, or a constant union array. - if (auto* sn = node.getAsSymbolNode()) { - spv::Id result; - if (auto* sub_tree = sn->getConstSubtree()) { - // Traverse the constant constructor sub tree like generating normal run-time instructions. - // During the AST traversal, if the node is marked as 'specConstant', SpecConstantOpModeGuard - // will set the builder into spec constant op instruction generating mode. - sub_tree->traverse(this); - result = accessChainLoad(sub_tree->getType()); - } else if (auto* const_union_array = &sn->getConstArray()) { - int nextConst = 0; - result = createSpvConstantFromConstUnionArray(sn->getType(), *const_union_array, nextConst, true); - } else { - logger->missingFunctionality("Invalid initializer for spec onstant."); - return spv::NoResult; - } - builder.addName(result, sn->getName().c_str()); - return result; - } - - // Neither a front-end constant node, nor a specialization constant node with constant union array or - // constant sub tree as initializer. - logger->missingFunctionality("Neither a front-end constant nor a spec constant."); - return spv::NoResult; -} - -// Use 'consts' as the flattened glslang source of scalar constants to recursively -// build the aggregate SPIR-V constant. -// -// If there are not enough elements present in 'consts', 0 will be substituted; -// an empty 'consts' can be used to create a fully zeroed SPIR-V constant. -// -spv::Id TGlslangToSpvTraverser::createSpvConstantFromConstUnionArray(const glslang::TType& glslangType, - const glslang::TConstUnionArray& consts, int& nextConst, bool specConstant) -{ - // vector of constants for SPIR-V - std::vector spvConsts; - - // Type is used for struct and array constants - spv::Id typeId = convertGlslangToSpvType(glslangType); - - if (glslangType.isArray()) { - glslang::TType elementType(glslangType, 0); - for (int i = 0; i < glslangType.getOuterArraySize(); ++i) - spvConsts.push_back(createSpvConstantFromConstUnionArray(elementType, consts, nextConst, false)); - } else if (glslangType.isMatrix()) { - glslang::TType vectorType(glslangType, 0); - for (int col = 0; col < glslangType.getMatrixCols(); ++col) - spvConsts.push_back(createSpvConstantFromConstUnionArray(vectorType, consts, nextConst, false)); - } else if (glslangType.isCoopMat()) { - glslang::TType componentType(glslangType.getBasicType()); - spvConsts.push_back(createSpvConstantFromConstUnionArray(componentType, consts, nextConst, false)); - } else if (glslangType.isStruct()) { - glslang::TVector::const_iterator iter; - for (iter = glslangType.getStruct()->begin(); iter != glslangType.getStruct()->end(); ++iter) - spvConsts.push_back(createSpvConstantFromConstUnionArray(*iter->type, consts, nextConst, false)); - } else if (glslangType.getVectorSize() > 1) { - for (unsigned int i = 0; i < (unsigned int)glslangType.getVectorSize(); ++i) { - bool zero = nextConst >= consts.size(); - switch (glslangType.getBasicType()) { - case glslang::EbtInt: - spvConsts.push_back(builder.makeIntConstant(zero ? 0 : consts[nextConst].getIConst())); - break; - case glslang::EbtUint: - spvConsts.push_back(builder.makeUintConstant(zero ? 0 : consts[nextConst].getUConst())); - break; - case glslang::EbtFloat: - spvConsts.push_back(builder.makeFloatConstant(zero ? 0.0F : (float)consts[nextConst].getDConst())); - break; - case glslang::EbtBool: - spvConsts.push_back(builder.makeBoolConstant(zero ? false : consts[nextConst].getBConst())); - break; -#ifndef GLSLANG_WEB - case glslang::EbtInt8: - builder.addCapability(spv::CapabilityInt8); - spvConsts.push_back(builder.makeInt8Constant(zero ? 0 : consts[nextConst].getI8Const())); - break; - case glslang::EbtUint8: - builder.addCapability(spv::CapabilityInt8); - spvConsts.push_back(builder.makeUint8Constant(zero ? 0 : consts[nextConst].getU8Const())); - break; - case glslang::EbtInt16: - builder.addCapability(spv::CapabilityInt16); - spvConsts.push_back(builder.makeInt16Constant(zero ? 0 : consts[nextConst].getI16Const())); - break; - case glslang::EbtUint16: - builder.addCapability(spv::CapabilityInt16); - spvConsts.push_back(builder.makeUint16Constant(zero ? 0 : consts[nextConst].getU16Const())); - break; - case glslang::EbtInt64: - spvConsts.push_back(builder.makeInt64Constant(zero ? 0 : consts[nextConst].getI64Const())); - break; - case glslang::EbtUint64: - spvConsts.push_back(builder.makeUint64Constant(zero ? 0 : consts[nextConst].getU64Const())); - break; - case glslang::EbtDouble: - spvConsts.push_back(builder.makeDoubleConstant(zero ? 0.0 : consts[nextConst].getDConst())); - break; - case glslang::EbtFloat16: - builder.addCapability(spv::CapabilityFloat16); - spvConsts.push_back(builder.makeFloat16Constant(zero ? 0.0F : (float)consts[nextConst].getDConst())); - break; -#endif - default: - assert(0); - break; - } - ++nextConst; - } - } else { - // we have a non-aggregate (scalar) constant - bool zero = nextConst >= consts.size(); - spv::Id scalar = 0; - switch (glslangType.getBasicType()) { - case glslang::EbtInt: - scalar = builder.makeIntConstant(zero ? 0 : consts[nextConst].getIConst(), specConstant); - break; - case glslang::EbtUint: - scalar = builder.makeUintConstant(zero ? 0 : consts[nextConst].getUConst(), specConstant); - break; - case glslang::EbtFloat: - scalar = builder.makeFloatConstant(zero ? 0.0F : (float)consts[nextConst].getDConst(), specConstant); - break; - case glslang::EbtBool: - scalar = builder.makeBoolConstant(zero ? false : consts[nextConst].getBConst(), specConstant); - break; -#ifndef GLSLANG_WEB - case glslang::EbtInt8: - builder.addCapability(spv::CapabilityInt8); - scalar = builder.makeInt8Constant(zero ? 0 : consts[nextConst].getI8Const(), specConstant); - break; - case glslang::EbtUint8: - builder.addCapability(spv::CapabilityInt8); - scalar = builder.makeUint8Constant(zero ? 0 : consts[nextConst].getU8Const(), specConstant); - break; - case glslang::EbtInt16: - builder.addCapability(spv::CapabilityInt16); - scalar = builder.makeInt16Constant(zero ? 0 : consts[nextConst].getI16Const(), specConstant); - break; - case glslang::EbtUint16: - builder.addCapability(spv::CapabilityInt16); - scalar = builder.makeUint16Constant(zero ? 0 : consts[nextConst].getU16Const(), specConstant); - break; - case glslang::EbtInt64: - scalar = builder.makeInt64Constant(zero ? 0 : consts[nextConst].getI64Const(), specConstant); - break; - case glslang::EbtUint64: - scalar = builder.makeUint64Constant(zero ? 0 : consts[nextConst].getU64Const(), specConstant); - break; - case glslang::EbtDouble: - scalar = builder.makeDoubleConstant(zero ? 0.0 : consts[nextConst].getDConst(), specConstant); - break; - case glslang::EbtFloat16: - builder.addCapability(spv::CapabilityFloat16); - scalar = builder.makeFloat16Constant(zero ? 0.0F : (float)consts[nextConst].getDConst(), specConstant); - break; - case glslang::EbtReference: - scalar = builder.makeUint64Constant(zero ? 0 : consts[nextConst].getU64Const(), specConstant); - scalar = builder.createUnaryOp(spv::OpBitcast, typeId, scalar); - break; -#endif - case glslang::EbtString: - scalar = builder.getStringId(consts[nextConst].getSConst()->c_str()); - break; - default: - assert(0); - break; - } - ++nextConst; - return scalar; - } - - return builder.makeCompositeConstant(typeId, spvConsts); -} - -// Return true if the node is a constant or symbol whose reading has no -// non-trivial observable cost or effect. -bool TGlslangToSpvTraverser::isTrivialLeaf(const glslang::TIntermTyped* node) -{ - // don't know what this is - if (node == nullptr) - return false; - - // a constant is safe - if (node->getAsConstantUnion() != nullptr) - return true; - - // not a symbol means non-trivial - if (node->getAsSymbolNode() == nullptr) - return false; - - // a symbol, depends on what's being read - switch (node->getType().getQualifier().storage) { - case glslang::EvqTemporary: - case glslang::EvqGlobal: - case glslang::EvqIn: - case glslang::EvqInOut: - case glslang::EvqConst: - case glslang::EvqConstReadOnly: - case glslang::EvqUniform: - return true; - default: - return false; - } -} - -// 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. -// 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; - - // otherwise, it needs to be a simple operation or one or two leaf nodes - - // not a simple operation - const glslang::TIntermBinary* binaryNode = node->getAsBinaryNode(); - const glslang::TIntermUnary* unaryNode = node->getAsUnaryNode(); - if (binaryNode == nullptr && unaryNode == nullptr) - return false; - - // not on leaf nodes - if (binaryNode && (! isTrivialLeaf(binaryNode->getLeft()) || ! isTrivialLeaf(binaryNode->getRight()))) - return false; - - if (unaryNode && ! isTrivialLeaf(unaryNode->getOperand())) { - return false; - } - - switch (node->getAsOperator()->getOp()) { - case glslang::EOpLogicalNot: - case glslang::EOpConvIntToBool: - case glslang::EOpConvUintToBool: - case glslang::EOpConvFloatToBool: - case glslang::EOpConvDoubleToBool: - case glslang::EOpEqual: - case glslang::EOpNotEqual: - case glslang::EOpLessThan: - case glslang::EOpGreaterThan: - case glslang::EOpLessThanEqual: - case glslang::EOpGreaterThanEqual: - case glslang::EOpIndexDirect: - case glslang::EOpIndexDirectStruct: - case glslang::EOpLogicalXor: - case glslang::EOpAny: - case glslang::EOpAll: - return true; - default: - return false; - } -} - -// Emit short-circuiting code, where 'right' is never evaluated unless -// the left side is true (for &&) or false (for ||). -spv::Id TGlslangToSpvTraverser::createShortCircuit(glslang::TOperator op, glslang::TIntermTyped& left, - glslang::TIntermTyped& right) -{ - spv::Id boolTypeId = builder.makeBoolType(); - - // emit left operand - builder.clearAccessChain(); - left.traverse(this); - spv::Id leftId = accessChainLoad(left.getType()); - - // Operands to accumulate OpPhi operands - std::vector phiOperands; - // accumulate left operand's phi information - phiOperands.push_back(leftId); - phiOperands.push_back(builder.getBuildPoint()->getId()); - - // Make the two kinds of operation symmetric with a "!" - // || => emit "if (! left) result = right" - // && => emit "if ( left) result = right" - // - // TODO: this runtime "not" for || could be avoided by adding functionality - // to 'builder' to have an "else" without an "then" - if (op == glslang::EOpLogicalOr) - leftId = builder.createUnaryOp(spv::OpLogicalNot, boolTypeId, leftId); - - // make an "if" based on the left value - spv::Builder::If ifBuilder(leftId, spv::SelectionControlMaskNone, builder); - - // emit right operand as the "then" part of the "if" - builder.clearAccessChain(); - right.traverse(this); - spv::Id rightId = accessChainLoad(right.getType()); - - // accumulate left operand's phi information - phiOperands.push_back(rightId); - phiOperands.push_back(builder.getBuildPoint()->getId()); - - // finish the "if" - ifBuilder.makeEndIf(); - - // phi together the two results - return builder.createOp(spv::OpPhi, boolTypeId, phiOperands); -} - -#ifndef GLSLANG_WEB -// 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) -{ - if (extBuiltinMap.find(name) != extBuiltinMap.end()) - return extBuiltinMap[name]; - else { - builder.addExtension(name); - spv::Id extBuiltins = builder.import(name); - extBuiltinMap[name] = extBuiltins; - return extBuiltins; - } -} -#endif - -}; // end anonymous namespace - -namespace glslang { - -void GetSpirvVersion(std::string& version) -{ - const int bufSize = 100; - char buf[bufSize]; - snprintf(buf, bufSize, "0x%08x, Revision %d", spv::Version, spv::Revision); - 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 - // return 8; // switch to new dead block eliminator; use OpUnreachable - // return 9; // don't include opaque function parameters in OpEntryPoint global's operand list - return 10; // Generate OpFUnordNotEqual for != comparisons -} - -// 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); - } - out.close(); -} - -// 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) -{ -#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) - 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// " << - GetSpirvGeneratorVersion() << - GLSLANG_VERSION_MAJOR << "." << GLSLANG_VERSION_MINOR << "." << GLSLANG_VERSION_PATCH << - GLSLANG_VERSION_FLAVOR << 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"; - for (int j = 0; j < WORDS_PER_LINE && i + j < (int)spirv.size(); ++j) { - const unsigned int word = spirv[i + j]; - out << "0x" << std::hex << std::setw(8) << std::setfill('0') << word; - if (i + j + 1 < (int)spirv.size()) { - out << ","; - } - } - out << std::endl; - } - if (varName != nullptr) { - out << "};"; - out << std::endl; - } - out.close(); -#endif -} - -// -// Set up the glslang traversal -// -void GlslangToSpv(const TIntermediate& intermediate, std::vector& spirv, SpvOptions* options) -{ - spv::SpvBuildLogger logger; - GlslangToSpv(intermediate, spirv, &logger, options); -} - -void GlslangToSpv(const TIntermediate& intermediate, std::vector& spirv, - spv::SpvBuildLogger* logger, SpvOptions* options) -{ - TIntermNode* root = intermediate.getTreeRoot(); - - if (root == 0) - return; - - SpvOptions defaultOptions; - if (options == nullptr) - options = &defaultOptions; - - GetThreadPoolAllocator().push(); - - 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. - bool prelegalization = intermediate.getSource() == EShSourceHlsl; - if ((prelegalization || options->optimizeSize) && !options->disableOptimizer) { - SpirvToolsTransform(intermediate, spirv, logger, options); - prelegalization = false; - } - else if (options->stripDebugInfo) { - // Strip debug info even if optimization is disabled. - SpirvToolsStripDebugInfo(intermediate, spirv, logger); - } - - if (options->validate) - SpirvToolsValidate(intermediate, spirv, logger, prelegalization); - - if (options->disassemble) - SpirvToolsDisassemble(std::cout, spirv); - -#endif - - GetThreadPoolAllocator().pop(); -} - -}; // end namespace glslang diff --git a/deps/glslang/SPIRV/GlslangToSpv.h b/deps/glslang/SPIRV/GlslangToSpv.h deleted file mode 100644 index 3907be43..00000000 --- a/deps/glslang/SPIRV/GlslangToSpv.h +++ /dev/null @@ -1,61 +0,0 @@ -// -// Copyright (C) 2014 LunarG, Inc. -// Copyright (C) 2015-2018 Google, Inc. -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// Neither the name of 3Dlabs Inc. Ltd. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. - -#pragma once - -#if defined(_MSC_VER) && _MSC_VER >= 1900 - #pragma warning(disable : 4464) // relative include path contains '..' -#endif - -#include "SpvTools.h" -#include "glslang/Include/intermediate.h" - -#include -#include - -#include "Logger.h" - -namespace glslang { - -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/SPIRV/InReadableOrder.cpp b/deps/glslang/SPIRV/InReadableOrder.cpp deleted file mode 100644 index 9d9410be..00000000 --- a/deps/glslang/SPIRV/InReadableOrder.cpp +++ /dev/null @@ -1,131 +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 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. - -// The SPIR-V spec requires code blocks to appear in an order satisfying the -// dominator-tree direction (ie, dominator before the dominated). This is, -// actually, easy to achieve: any pre-order CFG traversal algorithm will do it. -// Because such algorithms visit a block only after traversing some path to it -// from the root, they necessarily visit the block's idom first. -// -// But not every graph-traversal algorithm outputs blocks in an order that -// appears logical to human readers. The problem is that unrelated branches may -// be interspersed with each other, and merge blocks may come before some of the -// branches being merged. -// -// A good, human-readable order of blocks may be achieved by performing -// depth-first search but delaying merge nodes until after all their branches -// have been visited. This is implemented below by the inReadableOrder() -// function. - -#include "spvIR.h" - -#include -#include - -using spv::Block; -using spv::Id; - -namespace { -// Traverses CFG in a readable order, invoking a pre-set callback on each block. -// Use by calling visit() on the root block. -class ReadableOrderTraverser { -public: - ReadableOrderTraverser(std::function callback) - : callback_(callback) {} - // Visits the block if it hasn't been visited already and isn't currently - // being delayed. Invokes callback(block, why, header), then descends into its - // successors. Delays merge-block and continue-block processing until all - // the branches have been completed. If |block| is an unreachable merge block or - // an unreachable continue target, then |header| is the corresponding header block. - void visit(Block* block, spv::ReachReason why, Block* header) - { - assert(block); - if (why == spv::ReachViaControlFlow) { - reachableViaControlFlow_.insert(block); - } - if (visited_.count(block) || delayed_.count(block)) - return; - callback_(block, why, header); - 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_.insert(mergeBlock); - if (mergeInst->getOpCode() == spv::OpLoopMerge) { - Id continueId = mergeInst->getIdOperand(1); - continueBlock = - block->getParent().getParent().getInstruction(continueId)->getBlock(); - delayed_.insert(continueBlock); - } - } - if (why == spv::ReachViaControlFlow) { - const auto& successors = block->getSuccessors(); - for (auto it = successors.cbegin(); it != successors.cend(); ++it) - visit(*it, why, nullptr); - } - if (continueBlock) { - const spv::ReachReason continueWhy = - (reachableViaControlFlow_.count(continueBlock) > 0) - ? spv::ReachViaControlFlow - : spv::ReachDeadContinue; - delayed_.erase(continueBlock); - visit(continueBlock, continueWhy, block); - } - if (mergeBlock) { - const spv::ReachReason mergeWhy = - (reachableViaControlFlow_.count(mergeBlock) > 0) - ? spv::ReachViaControlFlow - : spv::ReachDeadMerge; - delayed_.erase(mergeBlock); - visit(mergeBlock, mergeWhy, block); - } - } - -private: - std::function callback_; - // Whether a block has already been visited or is being delayed. - std::unordered_set visited_, delayed_; - - // The set of blocks that actually are reached via control flow. - std::unordered_set reachableViaControlFlow_; -}; -} - -void spv::inReadableOrder(Block* root, std::function callback) -{ - ReadableOrderTraverser(callback).visit(root, spv::ReachViaControlFlow, nullptr); -} diff --git a/deps/glslang/SPIRV/Logger.cpp b/deps/glslang/SPIRV/Logger.cpp deleted file mode 100644 index cdc8469c..00000000 --- a/deps/glslang/SPIRV/Logger.cpp +++ /dev/null @@ -1,72 +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. - -#ifndef GLSLANG_WEB - -#include "Logger.h" - -#include -#include -#include - -namespace spv { - -void SpvBuildLogger::tbdFunctionality(const std::string& f) -{ - if (std::find(std::begin(tbdFeatures), std::end(tbdFeatures), f) == std::end(tbdFeatures)) - tbdFeatures.push_back(f); -} - -void SpvBuildLogger::missingFunctionality(const std::string& f) -{ - if (std::find(std::begin(missingFeatures), std::end(missingFeatures), f) == std::end(missingFeatures)) - missingFeatures.push_back(f); -} - -std::string SpvBuildLogger::getAllMessages() const { - std::ostringstream messages; - for (auto it = tbdFeatures.cbegin(); it != tbdFeatures.cend(); ++it) - messages << "TBD functionality: " << *it << "\n"; - for (auto it = missingFeatures.cbegin(); it != missingFeatures.cend(); ++it) - messages << "Missing functionality: " << *it << "\n"; - for (auto it = warnings.cbegin(); it != warnings.cend(); ++it) - messages << "warning: " << *it << "\n"; - for (auto it = errors.cbegin(); it != errors.cend(); ++it) - messages << "error: " << *it << "\n"; - return messages.str(); -} - -} // end spv namespace - -#endif diff --git a/deps/glslang/SPIRV/Logger.h b/deps/glslang/SPIRV/Logger.h deleted file mode 100644 index 411367c0..00000000 --- a/deps/glslang/SPIRV/Logger.h +++ /dev/null @@ -1,83 +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. - -#ifndef GLSLANG_SPIRV_LOGGER_H -#define GLSLANG_SPIRV_LOGGER_H - -#include -#include - -namespace spv { - -// A class for holding all SPIR-V build status messages, including -// missing/TBD functionalities, warnings, and errors. -class SpvBuildLogger { -public: - SpvBuildLogger() {} - -#ifdef GLSLANG_WEB - void tbdFunctionality(const std::string& f) { } - void missingFunctionality(const std::string& f) { } - void warning(const std::string& w) { } - void error(const std::string& e) { errors.push_back(e); } - std::string getAllMessages() { return ""; } -#else - - // Registers a TBD functionality. - void tbdFunctionality(const std::string& f); - // Registers a missing functionality. - void missingFunctionality(const std::string& f); - - // Logs a warning. - void warning(const std::string& w) { warnings.push_back(w); } - // Logs an error. - void error(const std::string& e) { errors.push_back(e); } - - // Returns all messages accumulated in the order of: - // TBD functionalities, missing functionalities, warnings, errors. - std::string getAllMessages() const; -#endif - -private: - SpvBuildLogger(const SpvBuildLogger&); - - std::vector tbdFeatures; - std::vector missingFeatures; - std::vector warnings; - std::vector errors; -}; - -} // end spv namespace - -#endif // GLSLANG_SPIRV_LOGGER_H diff --git a/deps/glslang/SPIRV/NonSemanticDebugPrintf.h b/deps/glslang/SPIRV/NonSemanticDebugPrintf.h deleted file mode 100644 index 83796d75..00000000 --- a/deps/glslang/SPIRV/NonSemanticDebugPrintf.h +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright (c) 2020 The Khronos Group Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and/or associated documentation files (the -// "Materials"), to deal in the Materials without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Materials, and to -// permit persons to whom the Materials are furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Materials. -// -// MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS -// KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS -// SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT -// https://www.khronos.org/registry/ -// -// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -// MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -// - -#ifndef SPIRV_UNIFIED1_NonSemanticDebugPrintf_H_ -#define SPIRV_UNIFIED1_NonSemanticDebugPrintf_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -enum { - NonSemanticDebugPrintfRevision = 1, - NonSemanticDebugPrintfRevision_BitWidthPadding = 0x7fffffff -}; - -enum NonSemanticDebugPrintfInstructions { - NonSemanticDebugPrintfDebugPrintf = 1, - NonSemanticDebugPrintfInstructionsMax = 0x7fffffff -}; - - -#ifdef __cplusplus -} -#endif - -#endif // SPIRV_UNIFIED1_NonSemanticDebugPrintf_H_ diff --git a/deps/glslang/SPIRV/SPVRemapper.cpp b/deps/glslang/SPIRV/SPVRemapper.cpp deleted file mode 100644 index fdfbeb90..00000000 --- a/deps/glslang/SPIRV/SPVRemapper.cpp +++ /dev/null @@ -1,1507 +0,0 @@ -// -// Copyright (C) 2015 LunarG, Inc. -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// Neither the name of 3Dlabs Inc. Ltd. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -// - -#include "SPVRemapper.h" -#include "doc.h" - -#if !defined (use_cpp11) -// ... not supported before C++11 -#else // defined (use_cpp11) - -#include -#include -#include "../glslang/Include/Common.h" - -namespace spv { - - // By default, just abort on error. Can be overridden via RegisterErrorHandler - spirvbin_t::errorfn_t spirvbin_t::errorHandler = [](const std::string&) { exit(5); }; - // By default, eat log messages. Can be overridden via RegisterLogHandler - spirvbin_t::logfn_t spirvbin_t::logHandler = [](const std::string&) { }; - - // This can be overridden to provide other message behavior if needed - void spirvbin_t::msg(int minVerbosity, int indent, const std::string& txt) const - { - if (verbose >= minVerbosity) - logHandler(std::string(indent, ' ') + txt); - } - - // hash opcode, with special handling for OpExtInst - std::uint32_t spirvbin_t::asOpCodeHash(unsigned word) - { - const spv::Op opCode = asOpCode(word); - - std::uint32_t offset = 0; - - switch (opCode) { - case spv::OpExtInst: - offset += asId(word + 4); break; - default: - break; - } - - return opCode * 19 + offset; // 19 = small prime - } - - spirvbin_t::range_t spirvbin_t::literalRange(spv::Op opCode) const - { - static const int maxCount = 1<<30; - - switch (opCode) { - case spv::OpTypeFloat: // fall through... - case spv::OpTypePointer: return range_t(2, 3); - case spv::OpTypeInt: return range_t(2, 4); - // TODO: case spv::OpTypeImage: - // TODO: case spv::OpTypeSampledImage: - case spv::OpTypeSampler: return range_t(3, 8); - case spv::OpTypeVector: // fall through - case spv::OpTypeMatrix: // ... - case spv::OpTypePipe: return range_t(3, 4); - case spv::OpConstant: return range_t(3, maxCount); - default: return range_t(0, 0); - } - } - - spirvbin_t::range_t spirvbin_t::typeRange(spv::Op opCode) const - { - static const int maxCount = 1<<30; - - if (isConstOp(opCode)) - return range_t(1, 2); - - switch (opCode) { - case spv::OpTypeVector: // fall through - 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); - case spv::OpTypePointer: return range_t(3, 4); - default: return range_t(0, 0); - } - } - - spirvbin_t::range_t spirvbin_t::constRange(spv::Op opCode) const - { - static const int maxCount = 1<<30; - - switch (opCode) { - case spv::OpTypeArray: // fall through... - case spv::OpTypeRuntimeArray: return range_t(3, 4); - case spv::OpConstantComposite: return range_t(3, maxCount); - default: return range_t(0, 0); - } - } - - // Return the size of a type in 32-bit words. This currently only - // handles ints and floats, and is only invoked by queries which must be - // integer types. If ever needed, it can be generalized. - unsigned spirvbin_t::typeSizeInWords(spv::Id id) const - { - 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; - default: - return 0; - } - } - - // Looks up the type of a given const or variable ID, and - // returns its size in 32-bit words. - unsigned spirvbin_t::idTypeSizeInWords(spv::Id id) const - { - const auto tid_it = idTypeSizeMap.find(id); - if (tid_it == idTypeSizeMap.end()) { - error("type size for ID not found"); - return 0; - } - - return tid_it->second; - } - - // Is this an opcode we should remove when using --strip? - bool spirvbin_t::isStripOp(spv::Op opCode) const - { - switch (opCode) { - case spv::OpSource: - case spv::OpSourceExtension: - case spv::OpName: - case spv::OpMemberName: - case spv::OpLine: return true; - default: return false; - } - } - - // Return true if this opcode is flow control - bool spirvbin_t::isFlowCtrl(spv::Op opCode) const - { - switch (opCode) { - case spv::OpBranchConditional: - case spv::OpBranch: - case spv::OpSwitch: - case spv::OpLoopMerge: - case spv::OpSelectionMerge: - case spv::OpLabel: - case spv::OpFunction: - case spv::OpFunctionEnd: return true; - default: return false; - } - } - - // Return true if this opcode defines a type - bool spirvbin_t::isTypeOp(spv::Op opCode) const - { - switch (opCode) { - case spv::OpTypeVoid: - case spv::OpTypeBool: - case spv::OpTypeInt: - case spv::OpTypeFloat: - case spv::OpTypeVector: - case spv::OpTypeMatrix: - case spv::OpTypeImage: - case spv::OpTypeSampler: - case spv::OpTypeArray: - case spv::OpTypeRuntimeArray: - case spv::OpTypeStruct: - case spv::OpTypeOpaque: - case spv::OpTypePointer: - case spv::OpTypeFunction: - case spv::OpTypeEvent: - case spv::OpTypeDeviceEvent: - case spv::OpTypeReserveId: - case spv::OpTypeQueue: - case spv::OpTypeSampledImage: - case spv::OpTypePipe: return true; - default: return false; - } - } - - // Return true if this opcode defines a constant - bool spirvbin_t::isConstOp(spv::Op opCode) const - { - switch (opCode) { - 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; - } - } - - const auto inst_fn_nop = [](spv::Op, unsigned) { return false; }; - const auto op_fn_nop = [](spv::Id&) { }; - - // g++ doesn't like these defined in the class proper in an anonymous namespace. - // Dunno why. Also MSVC doesn't like the constexpr keyword. Also dunno why. - // Defining them externally seems to please both compilers, so, here they are. - const spv::Id spirvbin_t::unmapped = spv::Id(-10000); - const spv::Id spirvbin_t::unused = spv::Id(-10001); - const int spirvbin_t::header_size = 5; - - spv::Id spirvbin_t::nextUnusedId(spv::Id id) - { - while (isNewIdMapped(id)) // search for an unused ID - ++id; - - return id; - } - - 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; - } - - if (id >= idMapL.size()) - idMapL.resize(id+1, unused); - - if (newId != unmapped && newId != unused) { - if (isOldIdUnused(id)) { - error(std::string("ID unused in module: ") + std::to_string(id)); - return spirvbin_t::unused; - } - - if (!isOldIdUnmapped(id)) { - error(std::string("ID already mapped: ") + std::to_string(id) + " -> " - + std::to_string(localId(id))); - - 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); - largestNewId = std::max(largestNewId, newId); - } - - return idMapL[id] = newId; - } - - // Parse a literal string from the SPIR binary and return it as an std::string - // Due to C++11 RValue references, this doesn't copy the result string. - std::string spirvbin_t::literalString(unsigned word) const - { - std::string literal; - const spirword_t * pos = spv.data() + word; - - literal.reserve(16); - - do { - spirword_t word = *pos; - for (int i = 0; i < 4; i++) { - char c = word & 0xff; - if (c == '\0') - return literal; - literal += c; - word >>= 8; - } - pos++; - } while (true); - } - - void spirvbin_t::applyMap() - { - msg(3, 2, std::string("Applying map: ")); - - // Map local IDs through the ID map - 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() - { - msg(3, 2, std::string("Remapping remainder: ")); - - spv::Id unusedId = 1; // can't use 0: that's NoResult - spirword_t maxBound = 0; - - for (spv::Id id = 0; id < idMapL.size(); ++id) { - if (isOldIdUnused(id)) - continue; - - // Find a new mapping for any used but unmapped IDs - if (isOldIdUnmapped(id)) { - localId(id, unusedId = nextUnusedId(unusedId)); - if (errorLatch) - return; - } - - 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. - process( - [&](spv::Op opCode, unsigned start) { - // remember opcodes we want to strip later - if (isStripOp(opCode)) - stripInst(start); - return true; - }, - 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: ")); - - mapped.clear(); - idMapL.clear(); -// preserve nameMap, so we don't clear that. - fnPos.clear(); - fnCalls.clear(); - typeConstPos.clear(); - idPosR.clear(); - entryPoint = spv::NoResult; - largestNewId = 0; - - idMapL.resize(bound(), unused); - - int fnStart = 0; - spv::Id fnRes = spv::NoResult; - - // build local Id and name maps - process( - [&](spv::Op opCode, unsigned start) { - unsigned word = start+1; - spv::Id typeId = spv::NoResult; - - if (spv::InstructionDesc[opCode].hasType()) - typeId = asId(word++); - - // If there's a result ID, remember the size of its type - 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; - } - } - - if (opCode == spv::Op::OpName) { - const spv::Id target = asId(start+1); - const std::string name = literalString(start+2); - nameMap[name] = target; - - } else if (opCode == spv::Op::OpFunctionCall) { - ++fnCalls[asId(start + 3)]; - } else if (opCode == spv::Op::OpEntryPoint) { - entryPoint = asId(start + 2); - } else if (opCode == spv::Op::OpFunction) { - 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) { - 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)) { - assert(asId(start + 1) != spv::NoResult); - typeConstPos.insert(start); - } - - return false; - }, - - [this](spv::Id& id) { localId(id, unmapped); } - ); - } - - // Validate the SPIR header - void spirvbin_t::validate() const - { - msg(2, 2, std::string("validating: ")); - - if (spv.size() < header_size) { - error("file too short: "); - return; - } - - if (magic() != spv::MagicNumber) { - error("bad magic number"); - return; - } - - // field 1 = version - // field 2 = generator magic - // field 3 = result bound - - 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 int nextInst = word++ + wordCount; - spv::Op opCode = asOpCode(instructionStart); - - 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; - - if (instFn(opCode, instructionStart)) - return nextInst; - - // Read type and result ID from instruction desc table - if (spv::InstructionDesc[opCode].hasType()) { - idFn(asId(word++)); - --numOperands; - } - - if (spv::InstructionDesc[opCode].hasResult()) { - idFn(asId(word++)); - --numOperands; - } - - // Extended instructions: currently, assume everything is an ID. - // TODO: add whatever data we need for exceptions to that - if (opCode == spv::OpExtInst) { - - idFn(asId(word)); // Instruction set is an ID that also needs to be mapped - - word += 2; // instruction set, and instruction from set - numOperands -= 2; - - for (unsigned op=0; op < numOperands; ++op) - idFn(asId(word++)); // ID - - return nextInst; - } - - // Circular buffer so we can look back at previous unmapped values during the mapping pass. - static const unsigned idBufferSize = 4; - spv::Id idBuffer[idBufferSize]; - unsigned idBufferPos = 0; - - // 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: - case spv::OperandMemorySemantics: - idBuffer[idBufferPos] = asId(word); - idBufferPos = (idBufferPos + 1) % idBufferSize; - idFn(asId(word++)); - break; - - case spv::OperandVariableIds: - for (unsigned i = 0; i < numOperands; ++i) - idFn(asId(word++)); - return nextInst; - - case spv::OperandVariableLiterals: - // for clarity - // if (opCode == spv::OpDecorate && asDecoration(word - 1) == spv::DecorationBuiltIn) { - // ++word; - // --numOperands; - // } - // word += numOperands; - return nextInst; - - case spv::OperandVariableLiteralId: { - if (opCode == OpSwitch) { - // word-2 is the position of the selector ID. OpSwitch Literals match its type. - // In case the IDs are currently being remapped, we get the word[-2] ID from - // the circular idBuffer. - const unsigned literalSizePos = (idBufferPos+idBufferSize-2) % idBufferSize; - const unsigned literalSize = idTypeSizeInWords(idBuffer[literalSizePos]); - const unsigned numLiteralIdPairs = (nextInst-word) / (1+literalSize); - - if (errorLatch) - return -1; - - for (unsigned arg=0; arg instPos; - instPos.reserve(unsigned(spv.size()) / 16); // initial estimate; can grow if needed. - - // Build local table of instruction start positions - process( - [&](spv::Op, unsigned start) { instPos.push_back(start); return true; }, - op_fn_nop); - - if (errorLatch) - return; - - // Window size for context-sensitive canonicalization values - // Empirical best size from a single data set. TODO: Would be a good tunable. - // We essentially perform a little convolution around each instruction, - // to capture the flavor of nearby code, to hopefully match to similar - // code in other modules. - static const unsigned windowSize = 2; - - for (unsigned entry = 0; entry < unsigned(instPos.size()); ++entry) { - const unsigned start = instPos[entry]; - const spv::Op opCode = asOpCode(start); - - if (opCode == spv::OpFunction) - fnId = asId(start + 2); - - if (opCode == spv::OpFunctionEnd) - fnId = spv::NoResult; - - if (fnId != spv::NoResult) { // if inside a function - if (spv::InstructionDesc[opCode].hasResult()) { - const unsigned word = start + (spv::InstructionDesc[opCode].hasType() ? 2 : 1); - const spv::Id resId = asId(word); - std::uint32_t hashval = fnId * 17; // small prime - - for (unsigned i = entry-1; i >= entry-windowSize; --i) { - if (asOpCode(instPos[i]) == spv::OpFunction) - break; - hashval = hashval * 30103 + asOpCodeHash(instPos[i]); // 30103 = semiarbitrary prime - } - - for (unsigned i = entry; i <= entry + windowSize; ++i) { - if (asOpCode(instPos[i]) == spv::OpFunctionEnd) - break; - hashval = hashval * 30103 + asOpCodeHash(instPos[i]); // 30103 = semiarbitrary prime - } - - if (isOldIdUnmapped(resId)) { - localId(resId, nextUnusedId(hashval % softTypeIdLimit + firstMappedID)); - if (errorLatch) - return; - } - - } - } - } - - spv::Op thisOpCode(spv::OpNop); - std::unordered_map opCounter; - int idCounter(0); - fnId = spv::NoResult; - - process( - [&](spv::Op opCode, unsigned start) { - switch (opCode) { - case spv::OpFunction: - // Reset counters at each function - idCounter = 0; - opCounter.clear(); - fnId = asId(start + 2); - break; - - case spv::OpImageSampleImplicitLod: - case spv::OpImageSampleExplicitLod: - case spv::OpImageSampleDrefImplicitLod: - case spv::OpImageSampleDrefExplicitLod: - case spv::OpImageSampleProjImplicitLod: - case spv::OpImageSampleProjExplicitLod: - case spv::OpImageSampleProjDrefImplicitLod: - case spv::OpImageSampleProjDrefExplicitLod: - case spv::OpDot: - case spv::OpCompositeExtract: - case spv::OpCompositeInsert: - case spv::OpVectorShuffle: - case spv::OpLabel: - case spv::OpVariable: - - case spv::OpAccessChain: - case spv::OpLoad: - case spv::OpStore: - case spv::OpCompositeConstruct: - case spv::OpFunctionCall: - ++opCounter[opCode]; - idCounter = 0; - thisOpCode = opCode; - break; - default: - thisOpCode = spv::OpNop; - } - - return false; - }, - - [&](spv::Id& id) { - if (thisOpCode != spv::OpNop) { - ++idCounter; - const std::uint32_t hashval = - // Explicitly cast operands to unsigned int to avoid integer - // promotion to signed int followed by integer overflow, - // which would result in undefined behavior. - static_cast(opCounter[thisOpCode]) - * thisOpCode - * 50047 - + idCounter - + static_cast(fnId) * 117; - - if (isOldIdUnmapped(id)) - localId(id, nextUnusedId(hashval % softTypeIdLimit + firstMappedID)); - } - }); - } - - // EXPERIMENTAL: forward IO and uniform load/stores into operands - // This produces invalid Schema-0 SPIRV - void spirvbin_t::forwardLoadStores() - { - idset_t fnLocalVars; // set of function local vars - idmap_t idMap; // Map of load result IDs to what they load - - // EXPERIMENTAL: Forward input and access chain loads into consumptions - process( - [&](spv::Op opCode, unsigned start) { - // Add inputs and uniforms to the map - if ((opCode == spv::OpVariable && asWordCount(start) == 4) && - (spv[start+3] == spv::StorageClassUniform || - spv[start+3] == spv::StorageClassUniformConstant || - spv[start+3] == spv::StorageClassInput)) - fnLocalVars.insert(asId(start+2)); - - if (opCode == spv::OpAccessChain && fnLocalVars.count(asId(start+3)) > 0) - fnLocalVars.insert(asId(start+2)); - - if (opCode == spv::OpLoad && fnLocalVars.count(asId(start+3)) > 0) { - idMap[asId(start+2)] = asId(start+3); - stripInst(start); - } - - return false; - }, - - [&](spv::Id& id) { if (idMap.find(id) != idMap.end()) id = idMap[id]; } - ); - - if (errorLatch) - return; - - // EXPERIMENTAL: Implicit output stores - fnLocalVars.clear(); - idMap.clear(); - - process( - [&](spv::Op opCode, unsigned start) { - // Add inputs and uniforms to the map - if ((opCode == spv::OpVariable && asWordCount(start) == 4) && - (spv[start+3] == spv::StorageClassOutput)) - fnLocalVars.insert(asId(start+2)); - - if (opCode == spv::OpStore && fnLocalVars.count(asId(start+1)) > 0) { - idMap[asId(start+2)] = asId(start+1); - stripInst(start); - } - - return false; - }, - op_fn_nop); - - if (errorLatch) - return; - - process( - inst_fn_nop, - [&](spv::Id& id) { if (idMap.find(id) != idMap.end()) id = idMap[id]; } - ); - - if (errorLatch) - return; - - strip(); // strip out data we decided to eliminate - } - - // optimize loads and stores - void spirvbin_t::optLoadStore() - { - idset_t fnLocalVars; // candidates for removal (only locals) - idmap_t idMap; // Map of load result IDs to what they load - blockmap_t blockMap; // Map of IDs to blocks they first appear in - int blockNum = 0; // block count, to avoid crossing flow control - - // Find all the function local pointers stored at most once, and not via access chains - process( - [&](spv::Op opCode, unsigned start) { - const int wordCount = asWordCount(start); - - // Count blocks, so we can avoid crossing flow control - if (isFlowCtrl(opCode)) - ++blockNum; - - // Add local variables to the map - if ((opCode == spv::OpVariable && spv[start+3] == spv::StorageClassFunction && asWordCount(start) == 4)) { - fnLocalVars.insert(asId(start+2)); - return true; - } - - // Ignore process vars referenced via access chain - if ((opCode == spv::OpAccessChain || opCode == spv::OpInBoundsAccessChain) && fnLocalVars.count(asId(start+3)) > 0) { - fnLocalVars.erase(asId(start+3)); - idMap.erase(asId(start+3)); - return true; - } - - if (opCode == spv::OpLoad && fnLocalVars.count(asId(start+3)) > 0) { - const spv::Id varId = asId(start+3); - - // Avoid loads before stores - if (idMap.find(varId) == idMap.end()) { - fnLocalVars.erase(varId); - idMap.erase(varId); - } - - // don't do for volatile references - if (wordCount > 4 && (spv[start+4] & spv::MemoryAccessVolatileMask)) { - fnLocalVars.erase(varId); - idMap.erase(varId); - } - - // Handle flow control - if (blockMap.find(varId) == blockMap.end()) { - blockMap[varId] = blockNum; // track block we found it in. - } else if (blockMap[varId] != blockNum) { - fnLocalVars.erase(varId); // Ignore if crosses flow control - idMap.erase(varId); - } - - return true; - } - - if (opCode == spv::OpStore && fnLocalVars.count(asId(start+1)) > 0) { - const spv::Id varId = asId(start+1); - - if (idMap.find(varId) == idMap.end()) { - idMap[varId] = asId(start+2); - } else { - // Remove if it has more than one store to the same pointer - fnLocalVars.erase(varId); - idMap.erase(varId); - } - - // don't do for volatile references - if (wordCount > 3 && (spv[start+3] & spv::MemoryAccessVolatileMask)) { - fnLocalVars.erase(asId(start+3)); - idMap.erase(asId(start+3)); - } - - // Handle flow control - if (blockMap.find(varId) == blockMap.end()) { - blockMap[varId] = blockNum; // track block we found it in. - } else if (blockMap[varId] != blockNum) { - fnLocalVars.erase(varId); // Ignore if crosses flow control - idMap.erase(varId); - } - - return true; - } - - return false; - }, - - // If local var id used anywhere else, don't eliminate - [&](spv::Id& id) { - if (fnLocalVars.count(id) > 0) { - fnLocalVars.erase(id); - idMap.erase(id); - } - } - ); - - if (errorLatch) - return; - - process( - [&](spv::Op opCode, unsigned start) { - if (opCode == spv::OpLoad && fnLocalVars.count(asId(start+3)) > 0) - idMap[asId(start+2)] = idMap[asId(start+3)]; - return false; - }, - 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 - // 4 = store 3 - // 5 = load 4 - // We want to replace uses of 5 with 1. - for (const auto& idPair : idMap) { - spv::Id id = idPair.first; - while (idMap.find(id) != idMap.end()) // Chase to end of chain - id = idMap[id]; - - idMap[idPair.first] = id; // replace with final result - } - - // Remove the load/store/variables for the ones we've discovered - process( - [&](spv::Op opCode, unsigned start) { - if ((opCode == spv::OpLoad && fnLocalVars.count(asId(start+3)) > 0) || - (opCode == spv::OpStore && fnLocalVars.count(asId(start+1)) > 0) || - (opCode == spv::OpVariable && fnLocalVars.count(asId(start+2)) > 0)) { - - stripInst(start); - return true; - } - - return false; - }, - - [&](spv::Id& id) { - if (idMap.find(id) != idMap.end()) id = idMap[id]; - } - ); - - if (errorLatch) - return; - - strip(); // strip out data we decided to eliminate - } - - // remove bodies of uncalled functions - void spirvbin_t::dceFuncs() - { - msg(3, 2, std::string("Removing Dead Functions: ")); - - // TODO: There are more efficient ways to do this. - bool changed = true; - - while (changed) { - changed = false; - - for (auto fn = fnPos.begin(); fn != fnPos.end(); ) { - if (fn->first == entryPoint) { // don't DCE away the entry point! - ++fn; - continue; - } - - const auto call_it = fnCalls.find(fn->first); - - if (call_it == fnCalls.end() || call_it->second == 0) { - changed = true; - stripRange.push_back(fn->second); - - // decrease counts of called functions - process( - [&](spv::Op opCode, unsigned start) { - if (opCode == spv::Op::OpFunctionCall) { - const auto call_it = fnCalls.find(asId(start + 3)); - if (call_it != fnCalls.end()) { - if (--call_it->second <= 0) - fnCalls.erase(call_it); - } - } - - return true; - }, - op_fn_nop, - fn->second.first, - fn->second.second); - - if (errorLatch) - return; - - fn = fnPos.erase(fn); - } else ++fn; - } - } - } - - // remove unused function variables + decorations - void spirvbin_t::dceVars() - { - msg(3, 2, std::string("DCE Vars: ")); - - std::unordered_map varUseCount; - - // Count function variable use - process( - [&](spv::Op opCode, unsigned start) { - if (opCode == spv::OpVariable) { - ++varUseCount[asId(start+2)]; - return true; - } else if (opCode == spv::OpEntryPoint) { - const int wordCount = asWordCount(start); - for (int i = 4; i < wordCount; i++) { - ++varUseCount[asId(start+i)]; - } - return true; - } else - return false; - }, - - [&](spv::Id& id) { if (varUseCount[id]) ++varUseCount[id]; } - ); - - 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); - - return true; - }, - op_fn_nop); - } - - // remove unused types - void spirvbin_t::dceTypes() - { - std::vector isType(bound(), false); - - // for speed, make O(1) way to get to type query (map is log(n)) - for (const auto typeStart : typeConstPos) - isType[asTypeConstId(typeStart)] = true; - - std::unordered_map typeUseCount; - - // This is not the most efficient algorithm, but this is an offline tool, and - // it's easy to write this way. Can be improved opportunistically if needed. - bool changed = true; - while (changed) { - changed = false; - strip(); - typeUseCount.clear(); - - // Count total type usage - process(inst_fn_nop, - [&](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); - if (typeUseCount[typeId] == 1) { - changed = true; - --typeUseCount[typeId]; - stripInst(typeStart); - } - } - - if (errorLatch) - return; - } - } - -#ifdef NOTDEF - bool spirvbin_t::matchType(const spirvbin_t::globaltypes_t& globalTypes, spv::Id lt, spv::Id gt) const - { - // Find the local type id "lt" and global type id "gt" - const auto lt_it = typeConstPosR.find(lt); - if (lt_it == typeConstPosR.end()) - return false; - - const auto typeStart = lt_it->second; - - // Search for entry in global table - const auto gtype = globalTypes.find(gt); - if (gtype == globalTypes.end()) - return false; - - const auto& gdata = gtype->second; - - // local wordcount and opcode - const int wordCount = asWordCount(typeStart); - const spv::Op opCode = asOpCode(typeStart); - - // no type match if opcodes don't match, or operand count doesn't match - if (opCode != opOpCode(gdata[0]) || wordCount != opWordCount(gdata[0])) - return false; - - const unsigned numOperands = wordCount - 2; // all types have a result - - const auto cmpIdRange = [&](range_t range) { - for (int x=range.first; xsecond; - } - - // Hash types to canonical values. This can return ID collisions (it's a bit - // inevitable): it's up to the caller to handle that gracefully. - std::uint32_t spirvbin_t::hashType(unsigned typeStart) const - { - const unsigned wordCount = asWordCount(typeStart); - const spv::Op opCode = asOpCode(typeStart); - - switch (opCode) { - case spv::OpTypeVoid: return 0; - case spv::OpTypeBool: return 1; - case spv::OpTypeInt: return 3 + (spv[typeStart+3]); - case spv::OpTypeFloat: return 5; - case spv::OpTypeVector: - return 6 + hashType(idPos(spv[typeStart+2])) * (spv[typeStart+3] - 1); - case spv::OpTypeMatrix: - return 30 + hashType(idPos(spv[typeStart+2])) * (spv[typeStart+3] - 1); - case spv::OpTypeImage: - return 120 + hashType(idPos(spv[typeStart+2])) + - spv[typeStart+3] + // dimensionality - spv[typeStart+4] * 8 * 16 + // depth - spv[typeStart+5] * 4 * 16 + // arrayed - spv[typeStart+6] * 2 * 16 + // multisampled - spv[typeStart+7] * 1 * 16; // format - case spv::OpTypeSampler: - return 500; - case spv::OpTypeSampledImage: - return 502; - case spv::OpTypeArray: - return 501 + hashType(idPos(spv[typeStart+2])) * spv[typeStart+3]; - case spv::OpTypeRuntimeArray: - return 5000 + hashType(idPos(spv[typeStart+2])); - case spv::OpTypeStruct: - { - std::uint32_t hash = 10000; - for (unsigned w=2; w < wordCount; ++w) - hash += w * hashType(idPos(spv[typeStart+w])); - return hash; - } - - case spv::OpTypeOpaque: return 6000 + spv[typeStart+2]; - case spv::OpTypePointer: return 100000 + hashType(idPos(spv[typeStart+3])); - case spv::OpTypeFunction: - { - std::uint32_t hash = 200000; - for (unsigned w=2; w < wordCount; ++w) - hash += w * hashType(idPos(spv[typeStart+w])); - return hash; - } - - case spv::OpTypeEvent: return 300000; - case spv::OpTypeDeviceEvent: return 300001; - case spv::OpTypeReserveId: return 300002; - case spv::OpTypeQueue: return 300003; - case spv::OpTypePipe: return 300004; - case spv::OpConstantTrue: return 300007; - case spv::OpConstantFalse: return 300008; - case spv::OpConstantComposite: - { - std::uint32_t hash = 300011 + hashType(idPos(spv[typeStart+1])); - for (unsigned w=3; w < wordCount; ++w) - hash += w * hashType(idPos(spv[typeStart+w])); - return hash; - } - case spv::OpConstant: - { - std::uint32_t hash = 400011 + hashType(idPos(spv[typeStart+1])); - for (unsigned w=3; w < wordCount; ++w) - 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"); - return 0; - } - } - - void spirvbin_t::mapTypeConst() - { - globaltypes_t globalTypeMap; - - msg(3, 2, std::string("Remapping Consts & Types: ")); - - static const std::uint32_t softTypeIdLimit = 3011; // small prime. TODO: get from options - static const std::uint32_t firstMappedID = 8; // offset into ID space - - for (auto& typeStart : typeConstPos) { - const spv::Id resId = asTypeConstId(typeStart); - const std::uint32_t hashval = hashType(typeStart); - - 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() - { - if (stripRange.empty()) // nothing to do - return; - - // Sort strip ranges in order of traversal - std::sort(stripRange.begin(), stripRange.end()); - - // Allocate a new binary big enough to hold old binary - // We'll step this iterator through the strip ranges as we go through the binary - auto strip_it = stripRange.begin(); - - int strippedPos = 0; - for (unsigned word = 0; word < unsigned(spv.size()); ++word) { - while (strip_it != stripRange.end() && word >= strip_it->second) - ++strip_it; - - if (strip_it == stripRange.end() || word < strip_it->first || word >= strip_it->second) - spv[strippedPos++] = spv[word]; - } - - spv.resize(strippedPos); - stripRange.clear(); - - buildLocalMaps(); - } - - // Strip a single binary by removing ranges given in stripRange - void spirvbin_t::remap(std::uint32_t opts) - { - options = opts; - - // Set up opcode tables from SpvDoc - spv::Parameterize(); - - 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(); - 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 (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; - } - } - - // remap from a memory image - void spirvbin_t::remap(std::vector& in_spv, std::uint32_t opts) - { - spv.swap(in_spv); - remap(opts); - spv.swap(in_spv); - } - -} // namespace SPV - -#endif // defined (use_cpp11) - diff --git a/deps/glslang/SPIRV/SPVRemapper.h b/deps/glslang/SPIRV/SPVRemapper.h deleted file mode 100644 index d6b9c346..00000000 --- a/deps/glslang/SPIRV/SPVRemapper.h +++ /dev/null @@ -1,304 +0,0 @@ -// -// Copyright (C) 2015 LunarG, Inc. -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// Neither the name of 3Dlabs Inc. Ltd. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -// - -#ifndef SPIRVREMAPPER_H -#define SPIRVREMAPPER_H - -#include -#include -#include -#include - -namespace spv { - -// MSVC defines __cplusplus as an older value, even when it supports almost all of 11. -// We handle that here by making our own symbol. -#if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1700) -# define use_cpp11 1 -#endif - -class spirvbin_base_t -{ -public: - enum Options { - NONE = 0, - STRIP = (1<<0), - MAP_TYPES = (1<<1), - MAP_NAMES = (1<<2), - MAP_FUNCS = (1<<3), - DCE_FUNCS = (1<<4), - DCE_VARS = (1<<5), - DCE_TYPES = (1<<6), - OPT_LOADSTORE = (1<<7), - OPT_FWD_LS = (1<<8), // EXPERIMENTAL: PRODUCES INVALID SCHEMA-0 SPIRV - MAP_ALL = (MAP_TYPES | MAP_NAMES | MAP_FUNCS), - DCE_ALL = (DCE_FUNCS | DCE_VARS | DCE_TYPES), - OPT_ALL = (OPT_LOADSTORE), - - ALL_BUT_STRIP = (MAP_ALL | DCE_ALL | OPT_ALL), - DO_EVERYTHING = (STRIP | ALL_BUT_STRIP) - }; -}; - -} // namespace SPV - -#if !defined (use_cpp11) -#include -#include - -namespace spv { -class spirvbin_t : public spirvbin_base_t -{ -public: - spirvbin_t(int /*verbose = 0*/) { } - - void remap(std::vector& /*spv*/, unsigned int /*opts = 0*/) - { - printf("Tool not compiled for C++11, which is required for SPIR-V remapping.\n"); - exit(5); - } -}; - -} // namespace SPV - -#else // defined (use_cpp11) - -#include -#include -#include -#include -#include -#include -#include - -#include "spirv.hpp" -#include "spvIR.h" - -namespace spv { - -// class to hold SPIR-V binary data for remapping, DCE, and debug stripping -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() { } - - // remap on an existing binary in memory - void remap(std::vector& spv, std::uint32_t opts = DO_EVERYTHING); - - // Type for error/log handler functions - typedef std::function errorfn_t; - typedef std::function logfn_t; - - // Register error/log handling functions (can be lambda fn / functor / etc) - static void registerErrorHandler(errorfn_t handler) { errorHandler = handler; } - static void registerLogHandler(logfn_t handler) { logHandler = handler; } - -protected: - // This can be overridden to provide other message behavior if needed - virtual void msg(int minVerbosity, int indent, const std::string& txt) const; - -private: - // Local to global, or global to local ID map - typedef std::unordered_map idmap_t; - typedef std::unordered_set idset_t; - typedef std::unordered_map blockmap_t; - - void remap(std::uint32_t opts = DO_EVERYTHING); - - // Map of names to IDs - typedef std::unordered_map namemap_t; - - typedef std::uint32_t spirword_t; - - typedef std::pair range_t; - typedef std::function idfn_t; - typedef std::function instfn_t; - - // Special Values for ID map: - static const spv::Id unmapped; // unchanged from default value - static const spv::Id unused; // unused ID - static const int header_size; // SPIR header = 5 words - - class id_iterator_t; - - // For mapping type entries between different shaders - typedef std::vector typeentry_t; - typedef std::map globaltypes_t; - - // A set that preserves position order, and a reverse map - typedef std::set posmap_t; - typedef std::unordered_map posmap_rev_t; - - // Maps and ID to the size of its base type, if known. - typedef std::unordered_map typesize_map_t; - - // handle error - void error(const std::string& txt) const { errorLatch = true; errorHandler(txt); } - - bool isConstOp(spv::Op opCode) const; - bool isTypeOp(spv::Op opCode) const; - bool isStripOp(spv::Op opCode) const; - bool isFlowCtrl(spv::Op opCode) const; - range_t literalRange(spv::Op opCode) const; - range_t typeRange(spv::Op opCode) const; - range_t constRange(spv::Op opCode) const; - unsigned typeSizeInWords(spv::Id id) const; - unsigned idTypeSizeInWords(spv::Id id) const; - - spv::Id& asId(unsigned word) { return spv[word]; } - const spv::Id& asId(unsigned word) const { return spv[word]; } - spv::Op asOpCode(unsigned word) const { return opOpCode(spv[word]); } - std::uint32_t asOpCodeHash(unsigned word); - spv::Decoration asDecoration(unsigned word) const { return spv::Decoration(spv[word]); } - unsigned asWordCount(unsigned word) const { return opWordCount(spv[word]); } - spv::Id asTypeConstId(unsigned word) const { return asId(word + (isTypeOp(asOpCode(word)) ? 1 : 2)); } - unsigned idPos(spv::Id id) const; - - static unsigned opWordCount(spirword_t data) { return data >> spv::WordCountShift; } - static spv::Op opOpCode(spirword_t data) { return spv::Op(data & spv::OpCodeMask); } - - // Header access & set methods - spirword_t magic() const { return spv[0]; } // return magic number - spirword_t bound() const { return spv[3]; } // return Id bound from header - spirword_t bound(spirword_t b) { return spv[3] = b; } - spirword_t genmagic() const { return spv[2]; } // generator magic - spirword_t genmagic(spirword_t m) { return spv[2] = m; } - spirword_t schemaNum() const { return spv[4]; } // schema number from header - - // Mapping fns: get - spv::Id localId(spv::Id id) const { return idMapL[id]; } - - // Mapping fns: set - inline spv::Id localId(spv::Id id, spv::Id newId); - void countIds(spv::Id id); - - // Return next unused new local ID. - // NOTE: boost::dynamic_bitset would be more efficient due to find_next(), - // which std::vector doens't have. - inline spv::Id nextUnusedId(spv::Id id); - - void buildLocalMaps(); - std::string literalString(unsigned word) const; // Return literal as a std::string - int literalStringWords(const std::string& str) const { return (int(str.size())+4)/4; } - - bool isNewIdMapped(spv::Id newId) const { return isMapped(newId); } - bool isOldIdUnmapped(spv::Id oldId) const { return localId(oldId) == unmapped; } - bool isOldIdUnused(spv::Id oldId) const { return localId(oldId) == unused; } - bool isOldIdMapped(spv::Id oldId) const { return !isOldIdUnused(oldId) && !isOldIdUnmapped(oldId); } - bool isFunction(spv::Id oldId) const { return fnPos.find(oldId) != fnPos.end(); } - - // bool matchType(const globaltypes_t& globalTypes, spv::Id lt, spv::Id gt) const; - // spv::Id findType(const globaltypes_t& globalTypes, spv::Id lt) const; - std::uint32_t hashType(unsigned typeStart) const; - - spirvbin_t& process(instfn_t, idfn_t, unsigned begin = 0, unsigned end = 0); - int processInstruction(unsigned word, instfn_t, idfn_t); - - void validate() const; - void mapTypeConst(); - void mapFnBodies(); - void optLoadStore(); - void dceFuncs(); - void dceVars(); - void dceTypes(); - void mapNames(); - void foldIds(); // fold IDs to smallest space - void forwardLoadStores(); // load store forwarding (EXPERIMENTAL) - void offsetIds(); // create relative offset IDs - - 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 strip(); // remove debug symbols - - std::vector spv; // SPIR words - - namemap_t nameMap; // ID names from OpName - - // Since we want to also do binary ops, we can't use std::vector. we could use - // boost::dynamic_bitset, but we're trying to avoid a boost dependency. - typedef std::uint64_t bits_t; - std::vector mapped; // which new IDs have been mapped - static const int mBits = sizeof(bits_t) * 4; - - bool isMapped(spv::Id id) const { return id < maxMappedId() && ((mapped[id/mBits] & (1LL<<(id%mBits))) != 0); } - void setMapped(spv::Id id) { resizeMapped(id); mapped[id/mBits] |= (1LL<<(id%mBits)); } - void resizeMapped(spv::Id id) { if (id >= maxMappedId()) mapped.resize(id/mBits+1, 0); } - size_t maxMappedId() const { return mapped.size() * mBits; } - - // Add a strip range for a given instruction starting at 'start' - // Note: avoiding brace initializers to please older versions os MSVC. - void stripInst(unsigned start) { stripRange.push_back(range_t(start, start + asWordCount(start))); } - - // Function start and end. use unordered_map because we'll have - // many fewer functions than IDs. - std::unordered_map fnPos; - - // Which functions are called, anywhere in the module, with a call count - std::unordered_map fnCalls; - - posmap_t typeConstPos; // word positions that define types & consts (ordered) - posmap_rev_t idPosR; // reverse map from IDs to positions - typesize_map_t idTypeSizeMap; // maps each ID to its type size, if known. - - std::vector idMapL; // ID {M}ap from {L}ocal to {G}lobal IDs - - spv::Id entryPoint; // module entry point - spv::Id largestNewId; // biggest new ID we have mapped anything to - - // Sections of the binary to strip, given as [begin,end) - std::vector stripRange; - - // processing options: - 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; -}; - -} // namespace SPV - -#endif // defined (use_cpp11) -#endif // SPIRVREMAPPER_H diff --git a/deps/glslang/SPIRV/SpvBuilder.cpp b/deps/glslang/SPIRV/SpvBuilder.cpp deleted file mode 100644 index 36a3f097..00000000 --- a/deps/glslang/SPIRV/SpvBuilder.cpp +++ /dev/null @@ -1,3332 +0,0 @@ -// -// Copyright (C) 2014-2015 LunarG, Inc. -// Copyright (C) 2015-2018 Google, Inc. -// Modifications Copyright (C) 2020 Advanced Micro Devices, 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: -// -// 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. - -// -// Helper for making SPIR-V IR. Generally, this is documented in the header -// SpvBuilder.h. -// - -#include -#include - -#include -#include - -#include "SpvBuilder.h" - -#ifndef GLSLANG_WEB -#include "hex_float.h" -#endif - -#ifndef _WIN32 - #include -#endif - -namespace spv { - -Builder::Builder(unsigned int spvVersion, unsigned int magicNumber, SpvBuildLogger* buildLogger) : - spvVersion(spvVersion), - source(SourceLanguageUnknown), - sourceVersion(0), - sourceFileStringId(NoResult), - currentLine(0), - currentFile(nullptr), - emitOpLines(false), - addressModel(AddressingModelLogical), - memoryModel(MemoryModelGLSL450), - builderNumber(magicNumber), - buildPoint(0), - uniqueId(0), - entryPointFunction(0), - generatingOpCodeForSpecConst(false), - logger(buildLogger) -{ - clearAccessChain(); -} - -Builder::~Builder() -{ -} - -Id Builder::import(const char* name) -{ - Instruction* import = new Instruction(getUniqueId(), NoType, OpExtInstImport); - import->addStringOperand(name); - module.mapInstruction(import); - - imports.push_back(std::unique_ptr(import)); - return import->getResultId(); -} - -// Emit instruction for non-filename-based #line directives (ie. no filename -// seen yet): 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); - } -} - -// If no filename, do non-filename-based #line emit. Else do filename-based emit. -// Emit OpLine if we've been asked to emit OpLines and the line number or filename -// has changed since the last time, and line number is valid. -void Builder::setLine(int lineNum, const char* filename) -{ - if (filename == nullptr) { - setLine(lineNum); - return; - } - if ((lineNum != 0 && lineNum != currentLine) || currentFile == nullptr || - strncmp(filename, currentFile, strlen(currentFile) + 1) != 0) { - currentLine = lineNum; - currentFile = filename; - if (emitOpLines) { - spv::Id strId = getStringId(filename); - addLine(strId, 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() -{ - Instruction* type; - if (groupedTypes[OpTypeVoid].size() == 0) { - type = new Instruction(getUniqueId(), NoType, OpTypeVoid); - groupedTypes[OpTypeVoid].push_back(type); - constantsTypesGlobals.push_back(std::unique_ptr(type)); - module.mapInstruction(type); - } else - type = groupedTypes[OpTypeVoid].back(); - - return type->getResultId(); -} - -Id Builder::makeBoolType() -{ - Instruction* type; - if (groupedTypes[OpTypeBool].size() == 0) { - type = new Instruction(getUniqueId(), NoType, OpTypeBool); - groupedTypes[OpTypeBool].push_back(type); - constantsTypesGlobals.push_back(std::unique_ptr(type)); - module.mapInstruction(type); - } else - type = groupedTypes[OpTypeBool].back(); - - return type->getResultId(); -} - -Id Builder::makeSamplerType() -{ - Instruction* type; - if (groupedTypes[OpTypeSampler].size() == 0) { - type = new Instruction(getUniqueId(), NoType, OpTypeSampler); - groupedTypes[OpTypeSampler].push_back(type); - constantsTypesGlobals.push_back(std::unique_ptr(type)); - module.mapInstruction(type); - } else - type = groupedTypes[OpTypeSampler].back(); - - return type->getResultId(); -} - -Id Builder::makePointer(StorageClass storageClass, Id pointee) -{ - // try to find it - Instruction* type; - for (int t = 0; t < (int)groupedTypes[OpTypePointer].size(); ++t) { - type = groupedTypes[OpTypePointer][t]; - if (type->getImmediateOperand(0) == (unsigned)storageClass && - type->getIdOperand(1) == pointee) - return type->getResultId(); - } - - // not found, make it - type = new Instruction(getUniqueId(), NoType, OpTypePointer); - type->addImmediateOperand(storageClass); - type->addIdOperand(pointee); - groupedTypes[OpTypePointer].push_back(type); - constantsTypesGlobals.push_back(std::unique_ptr(type)); - module.mapInstruction(type); - - return type->getResultId(); -} - -Id Builder::makeForwardPointer(StorageClass storageClass) -{ - // Caching/uniquifying doesn't work here, because we don't know the - // pointee type and there can be multiple forward pointers of the same - // storage type. Somebody higher up in the stack must keep track. - Instruction* type = new Instruction(getUniqueId(), NoType, OpTypeForwardPointer); - type->addImmediateOperand(storageClass); - constantsTypesGlobals.push_back(std::unique_ptr(type)); - module.mapInstruction(type); - - return type->getResultId(); -} - -Id Builder::makePointerFromForwardPointer(StorageClass storageClass, Id forwardPointerType, Id pointee) -{ - // try to find it - Instruction* type; - for (int t = 0; t < (int)groupedTypes[OpTypePointer].size(); ++t) { - type = groupedTypes[OpTypePointer][t]; - if (type->getImmediateOperand(0) == (unsigned)storageClass && - type->getIdOperand(1) == pointee) - return type->getResultId(); - } - - type = new Instruction(forwardPointerType, NoType, OpTypePointer); - type->addImmediateOperand(storageClass); - type->addIdOperand(pointee); - groupedTypes[OpTypePointer].push_back(type); - constantsTypesGlobals.push_back(std::unique_ptr(type)); - module.mapInstruction(type); - - return type->getResultId(); -} - -Id Builder::makeIntegerType(int width, bool hasSign) -{ -#ifdef GLSLANG_WEB - assert(width == 32); - width = 32; -#endif - - // try to find it - Instruction* type; - for (int t = 0; t < (int)groupedTypes[OpTypeInt].size(); ++t) { - type = groupedTypes[OpTypeInt][t]; - if (type->getImmediateOperand(0) == (unsigned)width && - type->getImmediateOperand(1) == (hasSign ? 1u : 0u)) - return type->getResultId(); - } - - // not found, make it - type = new Instruction(getUniqueId(), NoType, OpTypeInt); - type->addImmediateOperand(width); - type->addImmediateOperand(hasSign ? 1 : 0); - groupedTypes[OpTypeInt].push_back(type); - constantsTypesGlobals.push_back(std::unique_ptr(type)); - module.mapInstruction(type); - - // deal with capabilities - switch (width) { - case 8: - case 16: - // these are currently handled by storage-type declarations and post processing - break; - case 64: - addCapability(CapabilityInt64); - break; - default: - break; - } - - return type->getResultId(); -} - -Id Builder::makeFloatType(int width) -{ -#ifdef GLSLANG_WEB - assert(width == 32); - width = 32; -#endif - - // try to find it - Instruction* type; - for (int t = 0; t < (int)groupedTypes[OpTypeFloat].size(); ++t) { - type = groupedTypes[OpTypeFloat][t]; - if (type->getImmediateOperand(0) == (unsigned)width) - return type->getResultId(); - } - - // not found, make it - type = new Instruction(getUniqueId(), NoType, OpTypeFloat); - type->addImmediateOperand(width); - groupedTypes[OpTypeFloat].push_back(type); - constantsTypesGlobals.push_back(std::unique_ptr(type)); - module.mapInstruction(type); - - // deal with capabilities - switch (width) { - case 16: - // currently handled by storage-type declarations and post processing - break; - case 64: - addCapability(CapabilityFloat64); - break; - default: - break; - } - - return type->getResultId(); -} - -// Make a struct without checking for duplication. -// See makeStructResultType() for non-decorated structs -// needed as the result of some instructions, which does -// check for duplicates. -Id Builder::makeStructType(const std::vector& members, const char* name) -{ - // Don't look for previous one, because in the general case, - // structs can be duplicated except for decorations. - - // not found, make it - Instruction* type = new Instruction(getUniqueId(), NoType, OpTypeStruct); - for (int op = 0; op < (int)members.size(); ++op) - type->addIdOperand(members[op]); - groupedTypes[OpTypeStruct].push_back(type); - constantsTypesGlobals.push_back(std::unique_ptr(type)); - module.mapInstruction(type); - addName(type->getResultId(), name); - - return type->getResultId(); -} - -// Make a struct for the simple results of several instructions, -// checking for duplication. -Id Builder::makeStructResultType(Id type0, Id type1) -{ - // try to find it - Instruction* type; - for (int t = 0; t < (int)groupedTypes[OpTypeStruct].size(); ++t) { - type = groupedTypes[OpTypeStruct][t]; - if (type->getNumOperands() != 2) - continue; - if (type->getIdOperand(0) != type0 || - type->getIdOperand(1) != type1) - continue; - return type->getResultId(); - } - - // not found, make it - std::vector members; - members.push_back(type0); - members.push_back(type1); - - return makeStructType(members, "ResType"); -} - -Id Builder::makeVectorType(Id component, int size) -{ - // try to find it - Instruction* type; - for (int t = 0; t < (int)groupedTypes[OpTypeVector].size(); ++t) { - type = groupedTypes[OpTypeVector][t]; - if (type->getIdOperand(0) == component && - type->getImmediateOperand(1) == (unsigned)size) - return type->getResultId(); - } - - // not found, make it - type = new Instruction(getUniqueId(), NoType, OpTypeVector); - type->addIdOperand(component); - type->addImmediateOperand(size); - groupedTypes[OpTypeVector].push_back(type); - constantsTypesGlobals.push_back(std::unique_ptr(type)); - module.mapInstruction(type); - - return type->getResultId(); -} - -Id Builder::makeMatrixType(Id component, int cols, int rows) -{ - assert(cols <= maxMatrixSize && rows <= maxMatrixSize); - - Id column = makeVectorType(component, rows); - - // try to find it - Instruction* type; - for (int t = 0; t < (int)groupedTypes[OpTypeMatrix].size(); ++t) { - type = groupedTypes[OpTypeMatrix][t]; - if (type->getIdOperand(0) == column && - type->getImmediateOperand(1) == (unsigned)cols) - return type->getResultId(); - } - - // not found, make it - type = new Instruction(getUniqueId(), NoType, OpTypeMatrix); - type->addIdOperand(column); - type->addImmediateOperand(cols); - groupedTypes[OpTypeMatrix].push_back(type); - constantsTypesGlobals.push_back(std::unique_ptr(type)); - module.mapInstruction(type); - - return type->getResultId(); -} - -Id Builder::makeCooperativeMatrixType(Id component, Id scope, Id rows, Id cols) -{ - // try to find it - Instruction* type; - for (int t = 0; t < (int)groupedTypes[OpTypeCooperativeMatrixNV].size(); ++t) { - type = groupedTypes[OpTypeCooperativeMatrixNV][t]; - if (type->getIdOperand(0) == component && - type->getIdOperand(1) == scope && - type->getIdOperand(2) == rows && - type->getIdOperand(3) == cols) - return type->getResultId(); - } - - // not found, make it - type = new Instruction(getUniqueId(), NoType, OpTypeCooperativeMatrixNV); - type->addIdOperand(component); - type->addIdOperand(scope); - type->addIdOperand(rows); - type->addIdOperand(cols); - groupedTypes[OpTypeCooperativeMatrixNV].push_back(type); - constantsTypesGlobals.push_back(std::unique_ptr(type)); - module.mapInstruction(type); - - return type->getResultId(); -} - -Id Builder::makeGenericType(spv::Op opcode, std::vector& operands) -{ - // try to find it - Instruction* type; - for (int t = 0; t < (int)groupedTypes[opcode].size(); ++t) { - type = groupedTypes[opcode][t]; - if (static_cast(type->getNumOperands()) != operands.size()) - continue; // Number mismatch, find next - - bool match = true; - for (int op = 0; match && op < (int)operands.size(); ++op) { - match = (operands[op].isId ? type->getIdOperand(op) : type->getImmediateOperand(op)) == operands[op].word; - } - if (match) - return type->getResultId(); - } - - // not found, make it - type = new Instruction(getUniqueId(), NoType, opcode); - for (size_t op = 0; op < operands.size(); ++op) { - if (operands[op].isId) - type->addIdOperand(operands[op].word); - else - type->addImmediateOperand(operands[op].word); - } - groupedTypes[opcode].push_back(type); - constantsTypesGlobals.push_back(std::unique_ptr(type)); - module.mapInstruction(type); - - return type->getResultId(); -} - -// TODO: performance: track arrays per stride -// If a stride is supplied (non-zero) make an array. -// If no stride (0), reuse previous array types. -// 'size' is an Id of a constant or specialization constant of the array size -Id Builder::makeArrayType(Id element, Id sizeId, int stride) -{ - Instruction* type; - if (stride == 0) { - // try to find existing type - for (int t = 0; t < (int)groupedTypes[OpTypeArray].size(); ++t) { - type = groupedTypes[OpTypeArray][t]; - if (type->getIdOperand(0) == element && - type->getIdOperand(1) == sizeId) - return type->getResultId(); - } - } - - // not found, make it - type = new Instruction(getUniqueId(), NoType, OpTypeArray); - type->addIdOperand(element); - type->addIdOperand(sizeId); - groupedTypes[OpTypeArray].push_back(type); - constantsTypesGlobals.push_back(std::unique_ptr(type)); - module.mapInstruction(type); - - return type->getResultId(); -} - -Id Builder::makeRuntimeArray(Id element) -{ - Instruction* type = new Instruction(getUniqueId(), NoType, OpTypeRuntimeArray); - type->addIdOperand(element); - constantsTypesGlobals.push_back(std::unique_ptr(type)); - module.mapInstruction(type); - - return type->getResultId(); -} - -Id Builder::makeFunctionType(Id returnType, const std::vector& paramTypes) -{ - // try to find it - Instruction* type; - for (int t = 0; t < (int)groupedTypes[OpTypeFunction].size(); ++t) { - type = groupedTypes[OpTypeFunction][t]; - if (type->getIdOperand(0) != returnType || (int)paramTypes.size() != type->getNumOperands() - 1) - continue; - bool mismatch = false; - for (int p = 0; p < (int)paramTypes.size(); ++p) { - if (paramTypes[p] != type->getIdOperand(p + 1)) { - mismatch = true; - break; - } - } - if (! mismatch) - return type->getResultId(); - } - - // not found, make it - type = new Instruction(getUniqueId(), NoType, OpTypeFunction); - type->addIdOperand(returnType); - for (int p = 0; p < (int)paramTypes.size(); ++p) - type->addIdOperand(paramTypes[p]); - groupedTypes[OpTypeFunction].push_back(type); - constantsTypesGlobals.push_back(std::unique_ptr(type)); - module.mapInstruction(type); - - return type->getResultId(); -} - -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) { - type = groupedTypes[OpTypeImage][t]; - if (type->getIdOperand(0) == sampledType && - type->getImmediateOperand(1) == (unsigned int)dim && - type->getImmediateOperand(2) == ( depth ? 1u : 0u) && - type->getImmediateOperand(3) == (arrayed ? 1u : 0u) && - type->getImmediateOperand(4) == ( ms ? 1u : 0u) && - type->getImmediateOperand(5) == sampled && - type->getImmediateOperand(6) == (unsigned int)format) - return type->getResultId(); - } - - // not found, make it - type = new Instruction(getUniqueId(), NoType, OpTypeImage); - type->addIdOperand(sampledType); - type->addImmediateOperand( dim); - type->addImmediateOperand( depth ? 1 : 0); - type->addImmediateOperand(arrayed ? 1 : 0); - type->addImmediateOperand( ms ? 1 : 0); - type->addImmediateOperand(sampled); - type->addImmediateOperand((unsigned int)format); - - groupedTypes[OpTypeImage].push_back(type); - constantsTypesGlobals.push_back(std::unique_ptr(type)); - module.mapInstruction(type); - -#ifndef GLSLANG_WEB - // deal with capabilities - switch (dim) { - case DimBuffer: - if (sampled == 1) - addCapability(CapabilitySampledBuffer); - else - addCapability(CapabilityImageBuffer); - break; - case Dim1D: - if (sampled == 1) - addCapability(CapabilitySampled1D); - else - addCapability(CapabilityImage1D); - break; - case DimCube: - if (arrayed) { - if (sampled == 1) - addCapability(CapabilitySampledCubeArray); - else - addCapability(CapabilityImageCubeArray); - } - break; - case DimRect: - if (sampled == 1) - addCapability(CapabilitySampledRect); - else - addCapability(CapabilityImageRect); - break; - case DimSubpassData: - addCapability(CapabilityInputAttachment); - break; - default: - break; - } - - 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); - } - } -#endif - - return type->getResultId(); -} - -Id Builder::makeSampledImageType(Id imageType) -{ - // try to find it - Instruction* type; - for (int t = 0; t < (int)groupedTypes[OpTypeSampledImage].size(); ++t) { - type = groupedTypes[OpTypeSampledImage][t]; - if (type->getIdOperand(0) == imageType) - return type->getResultId(); - } - - // not found, make it - type = new Instruction(getUniqueId(), NoType, OpTypeSampledImage); - type->addIdOperand(imageType); - - groupedTypes[OpTypeSampledImage].push_back(type); - constantsTypesGlobals.push_back(std::unique_ptr(type)); - module.mapInstruction(type); - - return type->getResultId(); -} - -#ifndef GLSLANG_WEB -Id Builder::makeAccelerationStructureType() -{ - Instruction *type; - if (groupedTypes[OpTypeAccelerationStructureKHR].size() == 0) { - type = new Instruction(getUniqueId(), NoType, OpTypeAccelerationStructureKHR); - groupedTypes[OpTypeAccelerationStructureKHR].push_back(type); - constantsTypesGlobals.push_back(std::unique_ptr(type)); - module.mapInstruction(type); - } else { - type = groupedTypes[OpTypeAccelerationStructureKHR].back(); - } - - return type->getResultId(); -} - -Id Builder::makeRayQueryType() -{ - Instruction *type; - if (groupedTypes[OpTypeRayQueryKHR].size() == 0) { - type = new Instruction(getUniqueId(), NoType, OpTypeRayQueryKHR); - groupedTypes[OpTypeRayQueryKHR].push_back(type); - constantsTypesGlobals.push_back(std::unique_ptr(type)); - module.mapInstruction(type); - } else { - type = groupedTypes[OpTypeRayQueryKHR].back(); - } - - return type->getResultId(); -} -#endif - -Id Builder::getDerefTypeId(Id resultId) const -{ - Id typeId = getTypeId(resultId); - assert(isPointerType(typeId)); - - return module.getInstruction(typeId)->getIdOperand(1); -} - -Op Builder::getMostBasicTypeClass(Id typeId) const -{ - Instruction* instr = module.getInstruction(typeId); - - Op typeClass = instr->getOpCode(); - switch (typeClass) - { - case OpTypeVector: - case OpTypeMatrix: - case OpTypeArray: - case OpTypeRuntimeArray: - return getMostBasicTypeClass(instr->getIdOperand(0)); - case OpTypePointer: - return getMostBasicTypeClass(instr->getIdOperand(1)); - default: - return typeClass; - } -} - -int Builder::getNumTypeConstituents(Id typeId) const -{ - Instruction* instr = module.getInstruction(typeId); - - switch (instr->getOpCode()) - { - case OpTypeBool: - case OpTypeInt: - case OpTypeFloat: - case OpTypePointer: - return 1; - case OpTypeVector: - case OpTypeMatrix: - return instr->getImmediateOperand(1); - case OpTypeArray: - { - Id lengthId = instr->getIdOperand(1); - return module.getInstruction(lengthId)->getImmediateOperand(0); - } - case OpTypeStruct: - return instr->getNumOperands(); - case OpTypeCooperativeMatrixNV: - // has only one constituent when used with OpCompositeConstruct. - return 1; - default: - assert(0); - return 1; - } -} - -// Return the lowest-level type of scalar that an homogeneous composite is made out of. -// Typically, this is just to find out if something is made out of ints or floats. -// However, it includes returning a structure, if say, it is an array of structure. -Id Builder::getScalarTypeId(Id typeId) const -{ - Instruction* instr = module.getInstruction(typeId); - - Op typeClass = instr->getOpCode(); - switch (typeClass) - { - case OpTypeVoid: - case OpTypeBool: - case OpTypeInt: - case OpTypeFloat: - case OpTypeStruct: - return instr->getResultId(); - case OpTypeVector: - case OpTypeMatrix: - case OpTypeArray: - case OpTypeRuntimeArray: - case OpTypePointer: - return getScalarTypeId(getContainedTypeId(typeId)); - default: - assert(0); - return NoResult; - } -} - -// Return the type of 'member' of a composite. -Id Builder::getContainedTypeId(Id typeId, int member) const -{ - Instruction* instr = module.getInstruction(typeId); - - Op typeClass = instr->getOpCode(); - switch (typeClass) - { - case OpTypeVector: - case OpTypeMatrix: - case OpTypeArray: - case OpTypeRuntimeArray: - case OpTypeCooperativeMatrixNV: - return instr->getIdOperand(0); - case OpTypePointer: - return instr->getIdOperand(1); - case OpTypeStruct: - return instr->getIdOperand(member); - default: - assert(0); - return NoResult; - } -} - -// Figure out the final resulting type of the access chain. -Id Builder::getResultingAccessChainType() const -{ - assert(accessChain.base != NoResult); - Id typeId = getTypeId(accessChain.base); - - assert(isPointerType(typeId)); - typeId = getContainedTypeId(typeId); - - for (int i = 0; i < (int)accessChain.indexChain.size(); ++i) { - if (isStructType(typeId)) { - assert(isConstantScalar(accessChain.indexChain[i])); - typeId = getContainedTypeId(typeId, getConstantScalar(accessChain.indexChain[i])); - } else - typeId = getContainedTypeId(typeId, accessChain.indexChain[i]); - } - - return typeId; -} - -// Return the immediately contained type of a given composite type. -Id Builder::getContainedTypeId(Id typeId) const -{ - return getContainedTypeId(typeId, 0); -} - -// Returns true if 'typeId' is or contains a scalar type declared with 'typeOp' -// of width 'width'. The 'width' is only consumed for int and float types. -// Returns false otherwise. -bool Builder::containsType(Id typeId, spv::Op typeOp, unsigned int width) const -{ - const Instruction& instr = *module.getInstruction(typeId); - - Op typeClass = instr.getOpCode(); - switch (typeClass) - { - case OpTypeInt: - case OpTypeFloat: - return typeClass == typeOp && instr.getImmediateOperand(0) == width; - case OpTypeStruct: - for (int m = 0; m < instr.getNumOperands(); ++m) { - if (containsType(instr.getIdOperand(m), typeOp, width)) - return true; - } - return false; - case OpTypePointer: - return false; - case OpTypeVector: - case OpTypeMatrix: - case OpTypeArray: - case OpTypeRuntimeArray: - return containsType(getContainedTypeId(typeId), typeOp, width); - default: - return typeClass == typeOp; - } -} - -// return true if the type is a pointer to PhysicalStorageBufferEXT or an -// array of such pointers. These require restrict/aliased decorations. -bool Builder::containsPhysicalStorageBufferOrArray(Id typeId) const -{ - const Instruction& instr = *module.getInstruction(typeId); - - Op typeClass = instr.getOpCode(); - switch (typeClass) - { - case OpTypePointer: - return getTypeStorageClass(typeId) == StorageClassPhysicalStorageBufferEXT; - case OpTypeArray: - return containsPhysicalStorageBufferOrArray(getContainedTypeId(typeId)); - default: - return false; - } -} - -// 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) -{ - Instruction* constant; - for (int i = 0; i < (int)groupedConstants[typeClass].size(); ++i) { - constant = groupedConstants[typeClass][i]; - if (constant->getOpCode() == opcode && - constant->getTypeId() == typeId && - constant->getImmediateOperand(0) == value) - return constant->getResultId(); - } - - return 0; -} - -// 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) -{ - Instruction* constant; - for (int i = 0; i < (int)groupedConstants[typeClass].size(); ++i) { - constant = groupedConstants[typeClass][i]; - if (constant->getOpCode() == opcode && - constant->getTypeId() == typeId && - constant->getImmediateOperand(0) == v1 && - constant->getImmediateOperand(1) == v2) - return constant->getResultId(); - } - - return 0; -} - -// Return true if consuming 'opcode' means consuming a constant. -// "constant" here means after final transform to executable code, -// the value consumed will be a constant, so includes specialization. -bool Builder::isConstantOpCode(Op opcode) const -{ - switch (opcode) { - case OpUndef: - case OpConstantTrue: - case OpConstantFalse: - case OpConstant: - case OpConstantComposite: - case OpConstantSampler: - case OpConstantNull: - case OpSpecConstantTrue: - case OpSpecConstantFalse: - case OpSpecConstant: - case OpSpecConstantComposite: - case OpSpecConstantOp: - return true; - default: - return false; - } -} - -// Return true if consuming 'opcode' means consuming a specialization constant. -bool Builder::isSpecConstantOpCode(Op opcode) const -{ - switch (opcode) { - case OpSpecConstantTrue: - case OpSpecConstantFalse: - case OpSpecConstant: - case OpSpecConstantComposite: - case OpSpecConstantOp: - return true; - default: - return false; - } -} - -Id Builder::makeNullConstant(Id typeId) -{ - Instruction* constant; - - // See if we already made it. - Id existing = NoResult; - for (int i = 0; i < (int)nullConstants.size(); ++i) { - constant = nullConstants[i]; - if (constant->getTypeId() == typeId) - existing = constant->getResultId(); - } - - if (existing != NoResult) - return existing; - - // Make it - Instruction* c = new Instruction(getUniqueId(), typeId, OpConstantNull); - constantsTypesGlobals.push_back(std::unique_ptr(c)); - nullConstants.push_back(c); - module.mapInstruction(c); - - return c->getResultId(); -} - -Id Builder::makeBoolConstant(bool b, bool specConstant) -{ - Id typeId = makeBoolType(); - Instruction* constant; - Op opcode = specConstant ? (b ? OpSpecConstantTrue : OpSpecConstantFalse) : (b ? OpConstantTrue : OpConstantFalse); - - // See if we already made it. Applies only to regular constants, because specialization constants - // must remain distinct for the purpose of applying a SpecId decoration. - if (! specConstant) { - Id existing = 0; - for (int i = 0; i < (int)groupedConstants[OpTypeBool].size(); ++i) { - constant = groupedConstants[OpTypeBool][i]; - if (constant->getTypeId() == typeId && constant->getOpCode() == opcode) - existing = constant->getResultId(); - } - - if (existing) - return existing; - } - - // Make it - Instruction* c = new Instruction(getUniqueId(), typeId, opcode); - constantsTypesGlobals.push_back(std::unique_ptr(c)); - groupedConstants[OpTypeBool].push_back(c); - module.mapInstruction(c); - - return c->getResultId(); -} - -Id Builder::makeIntConstant(Id typeId, unsigned value, bool specConstant) -{ - Op opcode = specConstant ? OpSpecConstant : OpConstant; - - // See if we already made it. Applies only to regular constants, because specialization constants - // must remain distinct for the purpose of applying a SpecId decoration. - if (! specConstant) { - Id existing = findScalarConstant(OpTypeInt, opcode, typeId, value); - if (existing) - return existing; - } - - Instruction* c = new Instruction(getUniqueId(), typeId, opcode); - c->addImmediateOperand(value); - constantsTypesGlobals.push_back(std::unique_ptr(c)); - groupedConstants[OpTypeInt].push_back(c); - module.mapInstruction(c); - - return c->getResultId(); -} - -Id Builder::makeInt64Constant(Id typeId, unsigned long long value, bool specConstant) -{ - Op opcode = specConstant ? OpSpecConstant : OpConstant; - - unsigned op1 = value & 0xFFFFFFFF; - unsigned op2 = value >> 32; - - // See if we already made it. Applies only to regular constants, because specialization constants - // must remain distinct for the purpose of applying a SpecId decoration. - if (! specConstant) { - Id existing = findScalarConstant(OpTypeInt, opcode, typeId, op1, op2); - if (existing) - return existing; - } - - Instruction* c = new Instruction(getUniqueId(), typeId, opcode); - c->addImmediateOperand(op1); - c->addImmediateOperand(op2); - constantsTypesGlobals.push_back(std::unique_ptr(c)); - groupedConstants[OpTypeInt].push_back(c); - module.mapInstruction(c); - - return c->getResultId(); -} - -Id Builder::makeFloatConstant(float f, bool specConstant) -{ - Op opcode = specConstant ? OpSpecConstant : OpConstant; - Id typeId = makeFloatType(32); - union { float fl; unsigned int ui; } u; - u.fl = f; - unsigned value = u.ui; - - // See if we already made it. Applies only to regular constants, because specialization constants - // must remain distinct for the purpose of applying a SpecId decoration. - if (! specConstant) { - Id existing = findScalarConstant(OpTypeFloat, opcode, typeId, value); - if (existing) - return existing; - } - - Instruction* c = new Instruction(getUniqueId(), typeId, opcode); - c->addImmediateOperand(value); - constantsTypesGlobals.push_back(std::unique_ptr(c)); - groupedConstants[OpTypeFloat].push_back(c); - module.mapInstruction(c); - - return c->getResultId(); -} - -Id Builder::makeDoubleConstant(double d, bool specConstant) -{ -#ifdef GLSLANG_WEB - assert(0); - return NoResult; -#else - Op opcode = specConstant ? OpSpecConstant : OpConstant; - Id typeId = makeFloatType(64); - union { double db; unsigned long long ull; } u; - u.db = d; - unsigned long long value = u.ull; - unsigned op1 = value & 0xFFFFFFFF; - unsigned op2 = value >> 32; - - // See if we already made it. Applies only to regular constants, because specialization constants - // must remain distinct for the purpose of applying a SpecId decoration. - if (! specConstant) { - Id existing = findScalarConstant(OpTypeFloat, opcode, typeId, op1, op2); - if (existing) - return existing; - } - - Instruction* c = new Instruction(getUniqueId(), typeId, opcode); - c->addImmediateOperand(op1); - c->addImmediateOperand(op2); - constantsTypesGlobals.push_back(std::unique_ptr(c)); - groupedConstants[OpTypeFloat].push_back(c); - module.mapInstruction(c); - - return c->getResultId(); -#endif -} - -Id Builder::makeFloat16Constant(float f16, bool specConstant) -{ -#ifdef GLSLANG_WEB - assert(0); - return NoResult; -#else - Op opcode = specConstant ? OpSpecConstant : OpConstant; - Id typeId = makeFloatType(16); - - spvutils::HexFloat> fVal(f16); - spvutils::HexFloat> f16Val(0); - fVal.castTo(f16Val, spvutils::kRoundToZero); - - unsigned value = f16Val.value().getAsFloat().get_value(); - - // See if we already made it. Applies only to regular constants, because specialization constants - // must remain distinct for the purpose of applying a SpecId decoration. - if (!specConstant) { - Id existing = findScalarConstant(OpTypeFloat, opcode, typeId, value); - if (existing) - return existing; - } - - Instruction* c = new Instruction(getUniqueId(), typeId, opcode); - c->addImmediateOperand(value); - constantsTypesGlobals.push_back(std::unique_ptr(c)); - groupedConstants[OpTypeFloat].push_back(c); - module.mapInstruction(c); - - return c->getResultId(); -#endif -} - -Id Builder::makeFpConstant(Id type, double d, bool specConstant) -{ -#ifdef GLSLANG_WEB - const int width = 32; - assert(width == getScalarTypeWidth(type)); -#else - const int width = getScalarTypeWidth(type); -#endif - - assert(isFloatType(type)); - - switch (width) { - 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, Id typeId, const std::vector& comps) -{ - Instruction* constant = 0; - bool found = false; - for (int i = 0; i < (int)groupedConstants[typeClass].size(); ++i) { - constant = groupedConstants[typeClass][i]; - - if (constant->getTypeId() != typeId) - continue; - - // 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; -} - -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) -{ - Op opcode = specConstant ? OpSpecConstantComposite : OpConstantComposite; - assert(typeId); - Op typeClass = getTypeClass(typeId); - - switch (typeClass) { - case OpTypeVector: - case OpTypeArray: - case OpTypeMatrix: - case OpTypeCooperativeMatrixNV: - if (! specConstant) { - Id existing = findCompositeConstant(typeClass, typeId, 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); - } - - 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); - module.mapInstruction(c); - - return c->getResultId(); -} - -Instruction* Builder::addEntryPoint(ExecutionModel model, Function* function, const char* name) -{ - Instruction* entryPoint = new Instruction(OpEntryPoint); - entryPoint->addImmediateOperand(model); - entryPoint->addIdOperand(function->getId()); - entryPoint->addStringOperand(name); - - entryPoints.push_back(std::unique_ptr(entryPoint)); - - return entryPoint; -} - -// Currently relying on the fact that all 'value' of interest are small non-negative values. -void Builder::addExecutionMode(Function* entryPoint, ExecutionMode mode, int value1, int value2, int value3) -{ - Instruction* instr = new Instruction(OpExecutionMode); - instr->addIdOperand(entryPoint->getId()); - instr->addImmediateOperand(mode); - if (value1 >= 0) - instr->addImmediateOperand(value1); - if (value2 >= 0) - instr->addImmediateOperand(value2); - if (value3 >= 0) - instr->addImmediateOperand(value3); - - executionModes.push_back(std::unique_ptr(instr)); -} - -void Builder::addExecutionMode(Function* entryPoint, ExecutionMode mode, const std::vector& literals) -{ - Instruction* instr = new Instruction(OpExecutionMode); - instr->addIdOperand(entryPoint->getId()); - instr->addImmediateOperand(mode); - for (auto literal : literals) - instr->addImmediateOperand(literal); - - executionModes.push_back(std::unique_ptr(instr)); -} - -void Builder::addExecutionModeId(Function* entryPoint, ExecutionMode mode, const std::vector& operandIds) -{ - Instruction* instr = new Instruction(OpExecutionModeId); - instr->addIdOperand(entryPoint->getId()); - instr->addImmediateOperand(mode); - for (auto operandId : operandIds) - instr->addIdOperand(operandId); - - executionModes.push_back(std::unique_ptr(instr)); -} - -void Builder::addName(Id id, const char* string) -{ - Instruction* name = new Instruction(OpName); - name->addIdOperand(id); - name->addStringOperand(string); - - names.push_back(std::unique_ptr(name)); -} - -void Builder::addMemberName(Id id, int memberNumber, const char* string) -{ - Instruction* name = new Instruction(OpMemberName); - name->addIdOperand(id); - name->addImmediateOperand(memberNumber); - name->addStringOperand(string); - - names.push_back(std::unique_ptr(name)); -} - -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); - if (num >= 0) - dec->addImmediateOperand(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(OpDecorateString); - dec->addIdOperand(id); - dec->addImmediateOperand(decoration); - dec->addStringOperand(s); - - decorations.push_back(std::unique_ptr(dec)); -} - -void Builder::addDecoration(Id id, Decoration decoration, const std::vector& literals) -{ - if (decoration == spv::DecorationMax) - return; - - Instruction* dec = new Instruction(OpDecorate); - dec->addIdOperand(id); - dec->addImmediateOperand(decoration); - for (auto literal : literals) - dec->addImmediateOperand(literal); - - decorations.push_back(std::unique_ptr(dec)); -} - -void Builder::addDecoration(Id id, Decoration decoration, const std::vector& strings) -{ - if (decoration == spv::DecorationMax) - return; - - Instruction* dec = new Instruction(OpDecorateString); - dec->addIdOperand(id); - dec->addImmediateOperand(decoration); - for (auto string : strings) - dec->addStringOperand(string); - - 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::addDecorationId(Id id, Decoration decoration, const std::vector& operandIds) -{ - if(decoration == spv::DecorationMax) - return; - - Instruction* dec = new Instruction(OpDecorateId); - dec->addIdOperand(id); - dec->addImmediateOperand(decoration); - - for (auto operandId : operandIds) - dec->addIdOperand(operandId); - - 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); - dec->addImmediateOperand(decoration); - if (num >= 0) - dec->addImmediateOperand(num); - - 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)); -} - -void Builder::addMemberDecoration(Id id, unsigned int member, Decoration decoration, const std::vector& literals) -{ - if (decoration == spv::DecorationMax) - return; - - Instruction* dec = new Instruction(OpMemberDecorate); - dec->addIdOperand(id); - dec->addImmediateOperand(member); - dec->addImmediateOperand(decoration); - for (auto literal : literals) - dec->addImmediateOperand(literal); - - decorations.push_back(std::unique_ptr(dec)); -} - -void Builder::addMemberDecoration(Id id, unsigned int member, Decoration decoration, const std::vector& strings) -{ - if (decoration == spv::DecorationMax) - return; - - Instruction* dec = new Instruction(OpMemberDecorateString); - dec->addIdOperand(id); - dec->addImmediateOperand(member); - dec->addImmediateOperand(decoration); - for (auto string : strings) - dec->addStringOperand(string); - - decorations.push_back(std::unique_ptr(dec)); -} - -// Comments in header -Function* Builder::makeEntryPoint(const char* entryPoint) -{ - assert(! entryPointFunction); - - Block* entry; - std::vector params; - std::vector> decorations; - - 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>& decorations, Block **entry) -{ - // Make the function and initial instructions in it - Id typeId = makeFunctionType(returnType, paramTypes); - Id firstParamId = paramTypes.size() == 0 ? 0 : getUniqueIds((int)paramTypes.size()); - Function* function = new Function(getUniqueId(), returnType, typeId, firstParamId, module); - - // Set up the precisions - setPrecision(function->getId(), precision); - function->setReturnPrecision(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]); - function->addParamPrecision(p, decorations[p][d]); - } - } - - // CFG - if (entry) { - *entry = new Block(getUniqueId(), *function); - function->addBlock(*entry); - setBuildPoint(*entry); - } - - if (name) - addName(function->getId(), name); - - functions.push_back(std::unique_ptr(function)); - - return function; -} - -// Comments in header -void Builder::makeReturn(bool implicit, Id retVal) -{ - if (retVal) { - Instruction* inst = new Instruction(NoResult, NoType, OpReturnValue); - inst->addIdOperand(retVal); - buildPoint->addInstruction(std::unique_ptr(inst)); - } else - buildPoint->addInstruction(std::unique_ptr(new Instruction(NoResult, NoType, OpReturn))); - - if (! implicit) - createAndSetNoPredecessorBlock("post-return"); -} - -// Comments in header -void Builder::leaveFunction() -{ - Block* block = buildPoint; - Function& function = buildPoint->getParent(); - assert(block); - - // If our function did not contain a return, add a return void now. - if (! block->isTerminated()) { - if (function.getReturnType() == makeVoidType()) - makeReturn(true); - else { - makeReturn(true, createUndefined(function.getReturnType())); - } - } -} - -// Comments in header -void Builder::makeStatementTerminator(spv::Op opcode, const char *name) -{ - buildPoint->addInstruction(std::unique_ptr(new Instruction(opcode))); - createAndSetNoPredecessorBlock(name); -} - -// Comments in header -Id Builder::createVariable(Decoration precision, StorageClass storageClass, Id type, const char* name, Id initializer) -{ - Id pointerType = makePointer(storageClass, type); - Instruction* inst = new Instruction(getUniqueId(), pointerType, OpVariable); - inst->addImmediateOperand(storageClass); - if (initializer != NoResult) - inst->addIdOperand(initializer); - - switch (storageClass) { - case StorageClassFunction: - // Validation rules require the declaration in the entry block - buildPoint->getParent().addLocalVariable(std::unique_ptr(inst)); - break; - - default: - constantsTypesGlobals.push_back(std::unique_ptr(inst)); - module.mapInstruction(inst); - break; - } - - if (name) - addName(inst->getResultId(), name); - setPrecision(inst->getResultId(), precision); - - return inst->getResultId(); -} - -// Comments in header -Id Builder::createUndefined(Id type) -{ - Instruction* inst = new Instruction(getUniqueId(), type, OpUndef); - buildPoint->addInstruction(std::unique_ptr(inst)); - return inst->getResultId(); -} - -// av/vis/nonprivate are unnecessary and illegal for some storage classes. -spv::MemoryAccessMask Builder::sanitizeMemoryAccessForStorageClass(spv::MemoryAccessMask memoryAccess, StorageClass sc) - const -{ - switch (sc) { - case spv::StorageClassUniform: - case spv::StorageClassWorkgroup: - case spv::StorageClassStorageBuffer: - case spv::StorageClassPhysicalStorageBufferEXT: - break; - default: - memoryAccess = spv::MemoryAccessMask(memoryAccess & - ~(spv::MemoryAccessMakePointerAvailableKHRMask | - spv::MemoryAccessMakePointerVisibleKHRMask | - spv::MemoryAccessNonPrivatePointerKHRMask)); - break; - } - return memoryAccess; -} - -// Comments in header -void Builder::createStore(Id rValue, Id lValue, spv::MemoryAccessMask memoryAccess, spv::Scope scope, - unsigned int alignment) -{ - Instruction* store = new Instruction(OpStore); - store->addIdOperand(lValue); - store->addIdOperand(rValue); - - memoryAccess = sanitizeMemoryAccessForStorageClass(memoryAccess, getStorageClass(lValue)); - - if (memoryAccess != MemoryAccessMaskNone) { - store->addImmediateOperand(memoryAccess); - if (memoryAccess & spv::MemoryAccessAlignedMask) { - store->addImmediateOperand(alignment); - } - if (memoryAccess & spv::MemoryAccessMakePointerAvailableKHRMask) { - store->addIdOperand(makeUintConstant(scope)); - } - } - - buildPoint->addInstruction(std::unique_ptr(store)); -} - -// Comments in header -Id Builder::createLoad(Id lValue, spv::Decoration precision, spv::MemoryAccessMask memoryAccess, - spv::Scope scope, unsigned int alignment) -{ - Instruction* load = new Instruction(getUniqueId(), getDerefTypeId(lValue), OpLoad); - load->addIdOperand(lValue); - - memoryAccess = sanitizeMemoryAccessForStorageClass(memoryAccess, getStorageClass(lValue)); - - if (memoryAccess != MemoryAccessMaskNone) { - load->addImmediateOperand(memoryAccess); - if (memoryAccess & spv::MemoryAccessAlignedMask) { - load->addImmediateOperand(alignment); - } - if (memoryAccess & spv::MemoryAccessMakePointerVisibleKHRMask) { - load->addIdOperand(makeUintConstant(scope)); - } - } - - buildPoint->addInstruction(std::unique_ptr(load)); - setPrecision(load->getResultId(), precision); - - return load->getResultId(); -} - -// Comments in header -Id Builder::createAccessChain(StorageClass storageClass, Id base, const std::vector& offsets) -{ - // Figure out the final resulting type. - Id typeId = getResultingAccessChainType(); - typeId = makePointer(storageClass, typeId); - - // Make the instruction - Instruction* chain = new Instruction(getUniqueId(), typeId, OpAccessChain); - chain->addIdOperand(base); - for (int i = 0; i < (int)offsets.size(); ++i) - chain->addIdOperand(offsets[i]); - buildPoint->addInstruction(std::unique_ptr(chain)); - - return chain->getResultId(); -} - -Id Builder::createArrayLength(Id base, unsigned int member) -{ - spv::Id intType = makeUintType(32); - Instruction* length = new Instruction(getUniqueId(), intType, OpArrayLength); - length->addIdOperand(base); - length->addImmediateOperand(member); - buildPoint->addInstruction(std::unique_ptr(length)); - - return length->getResultId(); -} - -Id Builder::createCooperativeMatrixLength(Id type) -{ - spv::Id intType = makeUintType(32); - - // Generate code for spec constants if in spec constant operation - // generation mode. - if (generatingOpCodeForSpecConst) { - return createSpecConstantOp(OpCooperativeMatrixLengthNV, intType, std::vector(1, type), std::vector()); - } - - Instruction* length = new Instruction(getUniqueId(), intType, OpCooperativeMatrixLengthNV); - length->addIdOperand(type); - buildPoint->addInstruction(std::unique_ptr(length)); - - return length->getResultId(); -} - -Id Builder::createCompositeExtract(Id composite, Id typeId, unsigned index) -{ - // Generate code for spec constants if in spec constant operation - // generation mode. - if (generatingOpCodeForSpecConst) { - return createSpecConstantOp(OpCompositeExtract, typeId, std::vector(1, composite), - std::vector(1, index)); - } - Instruction* extract = new Instruction(getUniqueId(), typeId, OpCompositeExtract); - extract->addIdOperand(composite); - extract->addImmediateOperand(index); - buildPoint->addInstruction(std::unique_ptr(extract)); - - return extract->getResultId(); -} - -Id Builder::createCompositeExtract(Id composite, Id typeId, const std::vector& indexes) -{ - // Generate code for spec constants if in spec constant operation - // generation mode. - if (generatingOpCodeForSpecConst) { - return createSpecConstantOp(OpCompositeExtract, typeId, std::vector(1, composite), indexes); - } - Instruction* extract = new Instruction(getUniqueId(), typeId, OpCompositeExtract); - extract->addIdOperand(composite); - for (int i = 0; i < (int)indexes.size(); ++i) - extract->addImmediateOperand(indexes[i]); - buildPoint->addInstruction(std::unique_ptr(extract)); - - return extract->getResultId(); -} - -Id Builder::createCompositeInsert(Id object, Id composite, Id typeId, unsigned index) -{ - Instruction* insert = new Instruction(getUniqueId(), typeId, OpCompositeInsert); - insert->addIdOperand(object); - insert->addIdOperand(composite); - insert->addImmediateOperand(index); - buildPoint->addInstruction(std::unique_ptr(insert)); - - return insert->getResultId(); -} - -Id Builder::createCompositeInsert(Id object, Id composite, Id typeId, const std::vector& indexes) -{ - Instruction* insert = new Instruction(getUniqueId(), typeId, OpCompositeInsert); - insert->addIdOperand(object); - insert->addIdOperand(composite); - for (int i = 0; i < (int)indexes.size(); ++i) - insert->addImmediateOperand(indexes[i]); - buildPoint->addInstruction(std::unique_ptr(insert)); - - return insert->getResultId(); -} - -Id Builder::createVectorExtractDynamic(Id vector, Id typeId, Id componentIndex) -{ - Instruction* extract = new Instruction(getUniqueId(), typeId, OpVectorExtractDynamic); - extract->addIdOperand(vector); - extract->addIdOperand(componentIndex); - buildPoint->addInstruction(std::unique_ptr(extract)); - - return extract->getResultId(); -} - -Id Builder::createVectorInsertDynamic(Id vector, Id typeId, Id component, Id componentIndex) -{ - Instruction* insert = new Instruction(getUniqueId(), typeId, OpVectorInsertDynamic); - insert->addIdOperand(vector); - insert->addIdOperand(component); - insert->addIdOperand(componentIndex); - buildPoint->addInstruction(std::unique_ptr(insert)); - - return insert->getResultId(); -} - -// An opcode that has no operands, no result id, and no type -void Builder::createNoResultOp(Op opCode) -{ - Instruction* op = new Instruction(opCode); - buildPoint->addInstruction(std::unique_ptr(op)); -} - -// An opcode that has one id operand, no result id, and no type -void Builder::createNoResultOp(Op opCode, Id operand) -{ - Instruction* op = new Instruction(opCode); - op->addIdOperand(operand); - buildPoint->addInstruction(std::unique_ptr(op)); -} - -// An opcode that has one or more operands, no result id, and no type -void Builder::createNoResultOp(Op opCode, const std::vector& operands) -{ - Instruction* op = new Instruction(opCode); - for (auto it = operands.cbegin(); it != operands.cend(); ++it) { - op->addIdOperand(*it); - } - buildPoint->addInstruction(std::unique_ptr(op)); -} - -// An opcode that has multiple operands, no result id, and no type -void Builder::createNoResultOp(Op opCode, const std::vector& operands) -{ - Instruction* op = new Instruction(opCode); - for (auto it = operands.cbegin(); it != operands.cend(); ++it) { - if (it->isId) - op->addIdOperand(it->word); - else - op->addImmediateOperand(it->word); - } - buildPoint->addInstruction(std::unique_ptr(op)); -} - -void Builder::createControlBarrier(Scope execution, Scope memory, MemorySemanticsMask semantics) -{ - Instruction* op = new Instruction(OpControlBarrier); - op->addIdOperand(makeUintConstant(execution)); - op->addIdOperand(makeUintConstant(memory)); - op->addIdOperand(makeUintConstant(semantics)); - buildPoint->addInstruction(std::unique_ptr(op)); -} - -void Builder::createMemoryBarrier(unsigned executionScope, unsigned memorySemantics) -{ - Instruction* op = new Instruction(OpMemoryBarrier); - op->addIdOperand(makeUintConstant(executionScope)); - op->addIdOperand(makeUintConstant(memorySemantics)); - buildPoint->addInstruction(std::unique_ptr(op)); -} - -// An opcode that has one operands, a result id, and a type -Id Builder::createUnaryOp(Op opCode, Id typeId, Id operand) -{ - // Generate code for spec constants if in spec constant operation - // generation mode. - if (generatingOpCodeForSpecConst) { - return createSpecConstantOp(opCode, typeId, std::vector(1, operand), std::vector()); - } - Instruction* op = new Instruction(getUniqueId(), typeId, opCode); - op->addIdOperand(operand); - buildPoint->addInstruction(std::unique_ptr(op)); - - return op->getResultId(); -} - -Id Builder::createBinOp(Op opCode, Id typeId, Id left, Id right) -{ - // Generate code for spec constants if in spec constant operation - // generation mode. - if (generatingOpCodeForSpecConst) { - std::vector operands(2); - operands[0] = left; operands[1] = right; - return createSpecConstantOp(opCode, typeId, operands, std::vector()); - } - Instruction* op = new Instruction(getUniqueId(), typeId, opCode); - op->addIdOperand(left); - op->addIdOperand(right); - buildPoint->addInstruction(std::unique_ptr(op)); - - return op->getResultId(); -} - -Id Builder::createTriOp(Op opCode, Id typeId, Id op1, Id op2, Id op3) -{ - // Generate code for spec constants if in spec constant operation - // generation mode. - if (generatingOpCodeForSpecConst) { - std::vector operands(3); - operands[0] = op1; - operands[1] = op2; - operands[2] = op3; - return createSpecConstantOp( - opCode, typeId, operands, std::vector()); - } - Instruction* op = new Instruction(getUniqueId(), typeId, opCode); - op->addIdOperand(op1); - op->addIdOperand(op2); - op->addIdOperand(op3); - buildPoint->addInstruction(std::unique_ptr(op)); - - return op->getResultId(); -} - -Id Builder::createOp(Op opCode, Id typeId, const std::vector& operands) -{ - Instruction* op = new Instruction(getUniqueId(), typeId, opCode); - for (auto it = operands.cbegin(); it != operands.cend(); ++it) - op->addIdOperand(*it); - buildPoint->addInstruction(std::unique_ptr(op)); - - return op->getResultId(); -} - -Id Builder::createOp(Op opCode, Id typeId, const std::vector& operands) -{ - Instruction* op = new Instruction(getUniqueId(), typeId, opCode); - for (auto it = operands.cbegin(); it != operands.cend(); ++it) { - if (it->isId) - op->addIdOperand(it->word); - else - op->addImmediateOperand(it->word); - } - buildPoint->addInstruction(std::unique_ptr(op)); - - return op->getResultId(); -} - -Id Builder::createSpecConstantOp(Op opCode, Id typeId, const std::vector& operands, - const std::vector& literals) -{ - Instruction* op = new Instruction(getUniqueId(), typeId, OpSpecConstantOp); - op->addImmediateOperand((unsigned) opCode); - for (auto it = operands.cbegin(); it != operands.cend(); ++it) - op->addIdOperand(*it); - for (auto it = literals.cbegin(); it != literals.cend(); ++it) - op->addImmediateOperand(*it); - module.mapInstruction(op); - constantsTypesGlobals.push_back(std::unique_ptr(op)); - - return op->getResultId(); -} - -Id Builder::createFunctionCall(spv::Function* function, const std::vector& args) -{ - Instruction* op = new Instruction(getUniqueId(), function->getReturnType(), OpFunctionCall); - op->addIdOperand(function->getId()); - for (int a = 0; a < (int)args.size(); ++a) - op->addIdOperand(args[a]); - buildPoint->addInstruction(std::unique_ptr(op)); - - return op->getResultId(); -} - -// Comments in header -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); - - if (generatingOpCodeForSpecConst) { - std::vector operands(2); - operands[0] = operands[1] = source; - return setPrecision(createSpecConstantOp(OpVectorShuffle, typeId, operands, channels), precision); - } - Instruction* swizzle = new Instruction(getUniqueId(), typeId, OpVectorShuffle); - assert(isVector(source)); - swizzle->addIdOperand(source); - swizzle->addIdOperand(source); - for (int i = 0; i < (int)channels.size(); ++i) - swizzle->addImmediateOperand(channels[i]); - buildPoint->addInstruction(std::unique_ptr(swizzle)); - - return setPrecision(swizzle->getResultId(), precision); -} - -// Comments in header -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); - - 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]; - int numTargetComponents = getNumComponents(target); - for (int i = 0; i < numTargetComponents; ++i) - components[i] = i; - - // Punch in the l-value swizzle - for (int i = 0; i < (int)channels.size(); ++i) - components[channels[i]] = numTargetComponents + i; - - // finish the instruction with these components selectors - for (int i = 0; i < numTargetComponents; ++i) - swizzle->addImmediateOperand(components[i]); - buildPoint->addInstruction(std::unique_ptr(swizzle)); - - return swizzle->getResultId(); -} - -// Comments in header -void Builder::promoteScalar(Decoration precision, Id& left, Id& right) -{ - int direction = getNumComponents(right) - getNumComponents(left); - - if (direction > 0) - left = smearScalar(precision, left, makeVectorType(getTypeId(left), getNumComponents(right))); - else if (direction < 0) - right = smearScalar(precision, right, makeVectorType(getTypeId(right), getNumComponents(left))); - - return; -} - -// Comments in header -Id Builder::smearScalar(Decoration precision, Id scalar, Id vectorType) -{ - assert(getNumComponents(scalar) == 1); - assert(getTypeId(scalar) == getScalarTypeId(vectorType)); - - int numComponents = getNumTypeComponents(vectorType); - if (numComponents == 1) - return scalar; - - Instruction* smear = nullptr; - if (generatingOpCodeForSpecConst) { - auto members = std::vector(numComponents, scalar); - // Sometime even in spec-constant-op mode, the temporary vector created by - // promoting a scalar might not be a spec constant. This should depend on - // the scalar. - // e.g.: - // const vec2 spec_const_result = a_spec_const_vec2 + a_front_end_const_scalar; - // In such cases, the temporary vector created from a_front_end_const_scalar - // is not a spec constant vector, even though the binary operation node is marked - // as 'specConstant' and we are in spec-constant-op mode. - auto result_id = makeCompositeConstant(vectorType, members, isSpecConstant(scalar)); - smear = module.getInstruction(result_id); - } else { - smear = new Instruction(getUniqueId(), vectorType, OpCompositeConstruct); - for (int c = 0; c < numComponents; ++c) - smear->addIdOperand(scalar); - buildPoint->addInstruction(std::unique_ptr(smear)); - } - - return setPrecision(smear->getResultId(), precision); -} - -// Comments in header -Id Builder::createBuiltinCall(Id resultType, Id builtins, int entryPoint, const std::vector& args) -{ - Instruction* inst = new Instruction(getUniqueId(), resultType, OpExtInst); - inst->addIdOperand(builtins); - inst->addImmediateOperand(entryPoint); - for (int arg = 0; arg < (int)args.size(); ++arg) - inst->addIdOperand(args[arg]); - - buildPoint->addInstruction(std::unique_ptr(inst)); - - return inst->getResultId(); -} - -// 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, ImageOperandsMask signExtensionMask) -{ - static const int maxTextureArgs = 10; - Id texArgs[maxTextureArgs] = {}; - - // - // Set up the fixed arguments - // - int numArgs = 0; - bool explicitLod = false; - texArgs[numArgs++] = parameters.sampler; - texArgs[numArgs++] = parameters.coords; - if (parameters.Dref != NoResult) - texArgs[numArgs++] = parameters.Dref; - if (parameters.component != NoResult) - texArgs[numArgs++] = parameters.component; - -#ifndef GLSLANG_WEB - if (parameters.granularity != NoResult) - texArgs[numArgs++] = parameters.granularity; - if (parameters.coarse != NoResult) - texArgs[numArgs++] = parameters.coarse; -#endif - - // - // Set up the optional arguments - // - int optArgNum = numArgs; // track which operand, if it exists, is the mask of optional arguments - ++numArgs; // speculatively make room for the mask operand - ImageOperandsMask mask = ImageOperandsMaskNone; // the mask operand - if (parameters.bias) { - mask = (ImageOperandsMask)(mask | ImageOperandsBiasMask); - texArgs[numArgs++] = parameters.bias; - } - if (parameters.lod) { - mask = (ImageOperandsMask)(mask | ImageOperandsLodMask); - texArgs[numArgs++] = parameters.lod; - explicitLod = true; - } else if (parameters.gradX) { - mask = (ImageOperandsMask)(mask | ImageOperandsGradMask); - texArgs[numArgs++] = parameters.gradX; - texArgs[numArgs++] = parameters.gradY; - explicitLod = true; - } else if (noImplicitLod && ! fetch && ! gather) { - // have to explicitly use lod of 0 if not allowed to have them be implicit, and - // we would otherwise be about to issue an implicit instruction - mask = (ImageOperandsMask)(mask | ImageOperandsLodMask); - texArgs[numArgs++] = makeFloatConstant(0.0); - explicitLod = true; - } - if (parameters.offset) { - if (isConstant(parameters.offset)) - mask = (ImageOperandsMask)(mask | ImageOperandsConstOffsetMask); - else { - addCapability(CapabilityImageGatherExtended); - mask = (ImageOperandsMask)(mask | ImageOperandsOffsetMask); - } - texArgs[numArgs++] = parameters.offset; - } - if (parameters.offsets) { - addCapability(CapabilityImageGatherExtended); - mask = (ImageOperandsMask)(mask | ImageOperandsConstOffsetsMask); - texArgs[numArgs++] = parameters.offsets; - } -#ifndef GLSLANG_WEB - if (parameters.sample) { - mask = (ImageOperandsMask)(mask | ImageOperandsSampleMask); - texArgs[numArgs++] = parameters.sample; - } - if (parameters.lodClamp) { - // capability if this bit is used - addCapability(CapabilityMinLod); - - mask = (ImageOperandsMask)(mask | ImageOperandsMinLodMask); - texArgs[numArgs++] = parameters.lodClamp; - } - if (parameters.nonprivate) { - mask = mask | ImageOperandsNonPrivateTexelKHRMask; - } - if (parameters.volatil) { - mask = mask | ImageOperandsVolatileTexelKHRMask; - } -#endif - mask = mask | signExtensionMask; - if (mask == ImageOperandsMaskNone) - --numArgs; // undo speculative reservation for the mask argument - else - texArgs[optArgNum] = mask; - - // - // Set up the instruction - // - Op opCode = OpNop; // All paths below need to set this - if (fetch) { - if (sparse) - opCode = OpImageSparseFetch; - else - opCode = OpImageFetch; -#ifndef GLSLANG_WEB - } else if (parameters.granularity && parameters.coarse) { - opCode = OpImageSampleFootprintNV; - } else if (gather) { - if (parameters.Dref) - if (sparse) - opCode = OpImageSparseDrefGather; - else - opCode = OpImageDrefGather; - else - if (sparse) - opCode = OpImageSparseGather; - else - opCode = OpImageGather; -#endif - } else if (explicitLod) { - if (parameters.Dref) { - if (proj) - if (sparse) - opCode = OpImageSparseSampleProjDrefExplicitLod; - else - opCode = OpImageSampleProjDrefExplicitLod; - else - if (sparse) - opCode = OpImageSparseSampleDrefExplicitLod; - else - opCode = OpImageSampleDrefExplicitLod; - } else { - if (proj) - if (sparse) - opCode = OpImageSparseSampleProjExplicitLod; - else - opCode = OpImageSampleProjExplicitLod; - else - if (sparse) - opCode = OpImageSparseSampleExplicitLod; - else - opCode = OpImageSampleExplicitLod; - } - } else { - if (parameters.Dref) { - if (proj) - if (sparse) - opCode = OpImageSparseSampleProjDrefImplicitLod; - else - opCode = OpImageSampleProjDrefImplicitLod; - else - if (sparse) - opCode = OpImageSparseSampleDrefImplicitLod; - else - opCode = OpImageSampleDrefImplicitLod; - } else { - if (proj) - if (sparse) - opCode = OpImageSparseSampleProjImplicitLod; - else - opCode = OpImageSampleProjImplicitLod; - else - if (sparse) - opCode = OpImageSparseSampleImplicitLod; - else - opCode = OpImageSampleImplicitLod; - } - } - - // See if the result type is expecting a smeared result. - // This happens when a legacy shadow*() call is made, which - // gets a vec4 back instead of a float. - Id smearedType = resultType; - if (! isScalarType(resultType)) { - switch (opCode) { - case OpImageSampleDrefImplicitLod: - case OpImageSampleDrefExplicitLod: - case OpImageSampleProjDrefImplicitLod: - case OpImageSampleProjDrefExplicitLod: - resultType = getScalarTypeId(resultType); - break; - default: - break; - } - } - - Id typeId0 = 0; - Id typeId1 = 0; - - if (sparse) { - typeId0 = resultType; - typeId1 = getDerefTypeId(parameters.texelOut); - resultType = makeStructResultType(typeId0, typeId1); - } - - // Build the SPIR-V instruction - Instruction* textureInst = new Instruction(getUniqueId(), resultType, opCode); - for (int op = 0; op < optArgNum; ++op) - textureInst->addIdOperand(texArgs[op]); - if (optArgNum < numArgs) - textureInst->addImmediateOperand(texArgs[optArgNum]); - for (int op = optArgNum + 1; op < numArgs; ++op) - textureInst->addIdOperand(texArgs[op]); - setPrecision(textureInst->getResultId(), precision); - buildPoint->addInstruction(std::unique_ptr(textureInst)); - - Id resultId = textureInst->getResultId(); - - if (sparse) { - // set capability - addCapability(CapabilitySparseResidency); - - // Decode the return type that was a special structure - createStore(createCompositeExtract(resultId, typeId1, 1), parameters.texelOut); - resultId = createCompositeExtract(resultId, typeId0, 0); - setPrecision(resultId, precision); - } else { - // When a smear is needed, do it, as per what was computed - // above when resultType was changed to a scalar type. - if (resultType != smearedType) - resultId = smearScalar(precision, resultId, smearedType); - } - - return resultId; -} - -// Comments in header -Id Builder::createTextureQueryCall(Op opCode, const TextureParameters& parameters, bool isUnsignedResult) -{ - // Figure out the result type - Id resultType = 0; - switch (opCode) { - case OpImageQuerySize: - case OpImageQuerySizeLod: - { - int numComponents = 0; - switch (getTypeDimensionality(getImageType(parameters.sampler))) { - case Dim1D: - case DimBuffer: - numComponents = 1; - break; - case Dim2D: - case DimCube: - case DimRect: - case DimSubpassData: - numComponents = 2; - break; - case Dim3D: - numComponents = 3; - break; - - default: - assert(0); - break; - } - if (isArrayedImageType(getImageType(parameters.sampler))) - ++numComponents; - - Id intType = isUnsignedResult ? makeUintType(32) : makeIntType(32); - if (numComponents == 1) - resultType = intType; - else - resultType = makeVectorType(intType, numComponents); - - break; - } - case OpImageQueryLod: - resultType = makeVectorType(getScalarTypeId(getTypeId(parameters.coords)), 2); - break; - case OpImageQueryLevels: - case OpImageQuerySamples: - resultType = isUnsignedResult ? makeUintType(32) : makeIntType(32); - break; - default: - assert(0); - break; - } - - Instruction* query = new Instruction(getUniqueId(), resultType, opCode); - query->addIdOperand(parameters.sampler); - if (parameters.coords) - query->addIdOperand(parameters.coords); - if (parameters.lod) - query->addIdOperand(parameters.lod); - buildPoint->addInstruction(std::unique_ptr(query)); - addCapability(CapabilityImageQuery); - - return query->getResultId(); -} - -// External comments in header. -// Operates recursively to visit the composite's hierarchy. -Id Builder::createCompositeCompare(Decoration precision, Id value1, Id value2, bool equal) -{ - Id boolType = makeBoolType(); - Id valueType = getTypeId(value1); - - Id resultId = NoResult; - - int numConstituents = getNumTypeConstituents(valueType); - - // Scalars and Vectors - - if (isScalarType(valueType) || isVectorType(valueType)) { - assert(valueType == getTypeId(value2)); - // These just need a single comparison, just have - // to figure out what it is. - Op op; - switch (getMostBasicTypeClass(valueType)) { - case OpTypeFloat: - op = equal ? OpFOrdEqual : OpFUnordNotEqual; - break; - case OpTypeInt: - default: - op = equal ? OpIEqual : OpINotEqual; - break; - case OpTypeBool: - op = equal ? OpLogicalEqual : OpLogicalNotEqual; - precision = NoPrecision; - break; - } - - if (isScalarType(valueType)) { - // scalar - resultId = createBinOp(op, boolType, value1, value2); - } else { - // vector - resultId = createBinOp(op, makeVectorType(boolType, numConstituents), value1, value2); - setPrecision(resultId, precision); - // reduce vector compares... - resultId = createUnaryOp(equal ? OpAll : OpAny, boolType, resultId); - } - - return setPrecision(resultId, precision); - } - - // Only structs, arrays, and matrices should be left. - // They share in common the reduction operation across their constituents. - assert(isAggregateType(valueType) || isMatrixType(valueType)); - - // Compare each pair of constituents - for (int constituent = 0; constituent < numConstituents; ++constituent) { - std::vector indexes(1, constituent); - Id constituentType1 = getContainedTypeId(getTypeId(value1), constituent); - Id constituentType2 = getContainedTypeId(getTypeId(value2), constituent); - Id constituent1 = createCompositeExtract(value1, constituentType1, indexes); - Id constituent2 = createCompositeExtract(value2, constituentType2, indexes); - - Id subResultId = createCompositeCompare(precision, constituent1, constituent2, equal); - - if (constituent == 0) - resultId = subResultId; - else - resultId = setPrecision(createBinOp(equal ? OpLogicalAnd : OpLogicalOr, boolType, resultId, subResultId), - precision); - } - - return resultId; -} - -// OpCompositeConstruct -Id Builder::createCompositeConstruct(Id typeId, const std::vector& constituents) -{ - assert(isAggregateType(typeId) || (getNumTypeConstituents(typeId) > 1 && - getNumTypeConstituents(typeId) == (int)constituents.size())); - - if (generatingOpCodeForSpecConst) { - // Sometime, even in spec-constant-op mode, the constant composite to be - // constructed may not be a specialization constant. - // e.g.: - // const mat2 m2 = mat2(a_spec_const, a_front_end_const, another_front_end_const, third_front_end_const); - // The first column vector should be a spec constant one, as a_spec_const is a spec constant. - // The second column vector should NOT be spec constant, as it does not contain any spec constants. - // To handle such cases, we check the constituents of the constant vector to determine whether this - // vector should be created as a spec constant. - return makeCompositeConstant(typeId, constituents, - std::any_of(constituents.begin(), constituents.end(), - [&](spv::Id id) { return isSpecConstant(id); })); - } - - Instruction* op = new Instruction(getUniqueId(), typeId, OpCompositeConstruct); - for (int c = 0; c < (int)constituents.size(); ++c) - op->addIdOperand(constituents[c]); - buildPoint->addInstruction(std::unique_ptr(op)); - - return op->getResultId(); -} - -// Vector or scalar constructor -Id Builder::createConstructor(Decoration precision, const std::vector& sources, Id resultTypeId) -{ - Id result = NoResult; - unsigned int numTargetComponents = getNumTypeComponents(resultTypeId); - unsigned int targetComponent = 0; - - // Special case: when calling a vector constructor with a single scalar - // argument, smear the scalar - 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. - for (unsigned int i = 0; i < sources.size(); ++i) { - - if (isScalar(sources[i]) || isPointer(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); - - return setPrecision(result, precision); -} - -// Comments in header -Id Builder::createMatrixConstructor(Decoration precision, const std::vector& sources, Id resultTypeId) -{ - Id componentTypeId = getScalarTypeId(resultTypeId); - int numCols = getTypeNumColumns(resultTypeId); - int numRows = getTypeNumRows(resultTypeId); - - Instruction* instr = module.getInstruction(componentTypeId); -#ifdef GLSLANG_WEB - const unsigned bitCount = 32; - assert(bitCount == instr->getImmediateOperand(0)); -#else - const unsigned bitCount = instr->getImmediateOperand(0); -#endif - - // Optimize matrix constructed from a bigger matrix - if (isMatrix(sources[0]) && getNumColumns(sources[0]) >= numCols && getNumRows(sources[0]) >= numRows) { - // To truncate the matrix to a smaller number of rows/columns, we need to: - // 1. For each column, extract the column and truncate it to the required size using shuffle - // 2. Assemble the resulting matrix from all columns - Id matrix = sources[0]; - Id columnTypeId = getContainedTypeId(resultTypeId); - Id sourceColumnTypeId = getContainedTypeId(getTypeId(matrix)); - - std::vector channels; - for (int row = 0; row < numRows; ++row) - channels.push_back(row); - - std::vector matrixColumns; - for (int col = 0; col < numCols; ++col) { - std::vector indexes; - indexes.push_back(col); - Id colv = createCompositeExtract(matrix, sourceColumnTypeId, indexes); - setPrecision(colv, precision); - - if (numRows != getNumRows(matrix)) { - matrixColumns.push_back(createRvalueSwizzle(precision, columnTypeId, colv, channels)); - } else { - matrixColumns.push_back(colv); - } - } - - return setPrecision(createCompositeConstruct(resultTypeId, matrixColumns), precision); - } - - // Otherwise, will use a two step process - // 1. make a compile-time 2D array of values - // 2. construct a matrix from that array - - // Step 1. - - // initialize the array to the identity matrix - Id ids[maxMatrixSize][maxMatrixSize]; - Id one = (bitCount == 64 ? makeDoubleConstant(1.0) : makeFloatConstant(1.0)); - Id zero = (bitCount == 64 ? makeDoubleConstant(0.0) : makeFloatConstant(0.0)); - for (int col = 0; col < 4; ++col) { - for (int row = 0; row < 4; ++row) { - if (col == row) - ids[col][row] = one; - else - ids[col][row] = zero; - } - } - - // modify components as dictated by the arguments - if (sources.size() == 1 && isScalar(sources[0])) { - // a single scalar; resets the diagonals - for (int col = 0; col < 4; ++col) - ids[col][col] = sources[0]; - } else if (isMatrix(sources[0])) { - // constructing from another matrix; copy over the parts that exist in both the argument and constructee - Id matrix = sources[0]; - int minCols = std::min(numCols, getNumColumns(matrix)); - int minRows = std::min(numRows, getNumRows(matrix)); - for (int col = 0; col < minCols; ++col) { - std::vector indexes; - indexes.push_back(col); - for (int row = 0; row < minRows; ++row) { - indexes.push_back(row); - ids[col][row] = createCompositeExtract(matrix, componentTypeId, indexes); - indexes.pop_back(); - setPrecision(ids[col][row], precision); - } - } - } else { - // fill in the matrix in column-major order with whatever argument components are available - int row = 0; - int col = 0; - - for (int arg = 0; arg < (int)sources.size() && col < numCols; ++arg) { - Id argComp = sources[arg]; - for (int comp = 0; comp < getNumComponents(sources[arg]); ++comp) { - if (getNumComponents(sources[arg]) > 1) { - argComp = createCompositeExtract(sources[arg], componentTypeId, comp); - setPrecision(argComp, precision); - } - ids[col][row++] = argComp; - if (row == numRows) { - row = 0; - col++; - } - if (col == numCols) { - // If more components are provided than fit the matrix, discard the rest. - break; - } - } - } - } - - // Step 2: Construct a matrix from that array. - // First make the column vectors, then make the matrix. - - // make the column vectors - Id columnTypeId = getContainedTypeId(resultTypeId); - std::vector matrixColumns; - for (int col = 0; col < numCols; ++col) { - std::vector vectorComponents; - for (int row = 0; row < numRows; ++row) - vectorComponents.push_back(ids[col][row]); - Id column = createCompositeConstruct(columnTypeId, vectorComponents); - setPrecision(column, precision); - matrixColumns.push_back(column); - } - - // make the matrix - return setPrecision(createCompositeConstruct(resultTypeId, matrixColumns), precision); -} - -// Comments in header -Builder::If::If(Id cond, unsigned int ctrl, Builder& gb) : - builder(gb), - condition(cond), - control(ctrl), - elseBlock(0) -{ - function = &builder.getBuildPoint()->getParent(); - - // make the blocks, but only put the then-block into the function, - // the else-block and merge-block will be added later, in order, after - // earlier code is emitted - thenBlock = new Block(builder.getUniqueId(), *function); - mergeBlock = new Block(builder.getUniqueId(), *function); - - // Save the current block, so that we can add in the flow control split when - // makeEndIf is called. - headerBlock = builder.getBuildPoint(); - - function->addBlock(thenBlock); - builder.setBuildPoint(thenBlock); -} - -// Comments in header -void Builder::If::makeBeginElse() -{ - // Close out the "then" by having it jump to the mergeBlock - builder.createBranch(mergeBlock); - - // Make the first else block and add it to the function - elseBlock = new Block(builder.getUniqueId(), *function); - function->addBlock(elseBlock); - - // Start building the else block - builder.setBuildPoint(elseBlock); -} - -// Comments in header -void Builder::If::makeEndIf() -{ - // jump to the merge block - builder.createBranch(mergeBlock); - - // Go back to the headerBlock and make the flow control split - builder.setBuildPoint(headerBlock); - builder.createSelectionMerge(mergeBlock, control); - if (elseBlock) - builder.createConditionalBranch(condition, thenBlock, elseBlock); - else - builder.createConditionalBranch(condition, thenBlock, mergeBlock); - - // add the merge block to the function - function->addBlock(mergeBlock); - builder.setBuildPoint(mergeBlock); -} - -// Comments in header -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(); - - // make all the blocks - for (int s = 0; s < numSegments; ++s) - segmentBlocks.push_back(new Block(getUniqueId(), function)); - - Block* mergeBlock = new Block(getUniqueId(), function); - - // make and insert the switch's selection-merge instruction - createSelectionMerge(mergeBlock, control); - - // make the switch instruction - Instruction* switchInst = new Instruction(NoResult, NoType, OpSwitch); - switchInst->addIdOperand(selector); - auto defaultOrMerge = (defaultSegment >= 0) ? segmentBlocks[defaultSegment] : mergeBlock; - switchInst->addIdOperand(defaultOrMerge->getId()); - defaultOrMerge->addPredecessor(buildPoint); - for (int i = 0; i < (int)caseValues.size(); ++i) { - switchInst->addImmediateOperand(caseValues[i]); - switchInst->addIdOperand(segmentBlocks[valueIndexToSegment[i]]->getId()); - segmentBlocks[valueIndexToSegment[i]]->addPredecessor(buildPoint); - } - buildPoint->addInstruction(std::unique_ptr(switchInst)); - - // push the merge block - switchMerges.push(mergeBlock); -} - -// Comments in header -void Builder::addSwitchBreak() -{ - // branch to the top of the merge block stack - createBranch(switchMerges.top()); - createAndSetNoPredecessorBlock("post-switch-break"); -} - -// Comments in header -void Builder::nextSwitchSegment(std::vector& segmentBlock, int nextSegment) -{ - int lastSegment = nextSegment - 1; - if (lastSegment >= 0) { - // Close out previous segment by jumping, if necessary, to next segment - if (! buildPoint->isTerminated()) - createBranch(segmentBlock[nextSegment]); - } - Block* block = segmentBlock[nextSegment]; - block->getParent().addBlock(block); - setBuildPoint(block); -} - -// Comments in header -void Builder::endSwitch(std::vector& /*segmentBlock*/) -{ - // Close out previous segment by jumping, if necessary, to next segment - if (! buildPoint->isTerminated()) - addSwitchBreak(); - - switchMerges.top()->getParent().addBlock(switchMerges.top()); - setBuildPoint(switchMerges.top()); - - switchMerges.pop(); -} - -Block& Builder::makeNewBlock() -{ - Function& function = buildPoint->getParent(); - auto block = new Block(getUniqueId(), function); - function.addBlock(block); - return *block; -} - -Builder::LoopBlocks& Builder::makeNewLoop() -{ - // This verbosity is needed to simultaneously get the same behavior - // everywhere (id's in the same order), have a syntax that works - // across lots of versions of C++, have no warnings from pedantic - // compilation modes, and leave the rest of the code alone. - Block& head = makeNewBlock(); - Block& body = makeNewBlock(); - Block& merge = makeNewBlock(); - Block& continue_target = makeNewBlock(); - LoopBlocks blocks(head, body, merge, continue_target); - loops.push(blocks); - return loops.top(); -} - -void Builder::createLoopContinue() -{ - createBranch(&loops.top().continue_target); - // Set up a block for dead code. - createAndSetNoPredecessorBlock("post-loop-continue"); -} - -void Builder::createLoopExit() -{ - createBranch(&loops.top().merge); - // Set up a block for dead code. - createAndSetNoPredecessorBlock("post-loop-break"); -} - -void Builder::closeLoop() -{ - loops.pop(); -} - -void Builder::clearAccessChain() -{ - accessChain.base = NoResult; - accessChain.indexChain.clear(); - accessChain.instr = NoResult; - accessChain.swizzle.clear(); - accessChain.component = NoResult; - accessChain.preSwizzleBaseType = NoType; - accessChain.isRValue = false; - accessChain.coherentFlags.clear(); - accessChain.alignment = 0; -} - -// Comments in header -void Builder::accessChainPushSwizzle(std::vector& swizzle, Id preSwizzleBaseType, - AccessChain::CoherentFlags coherentFlags, unsigned int alignment) -{ - accessChain.coherentFlags |= coherentFlags; - accessChain.alignment |= alignment; - - // swizzles can be stacked in GLSL, but simplified to a single - // one here; the base type doesn't change - if (accessChain.preSwizzleBaseType == NoType) - accessChain.preSwizzleBaseType = preSwizzleBaseType; - - // if needed, propagate the swizzle for the current access chain - 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 - accessChain.swizzle = swizzle; - - // determine if we need to track this swizzle anymore - simplifyAccessChainSwizzle(); -} - -// Comments in header -void Builder::accessChainStore(Id rvalue, Decoration nonUniform, spv::MemoryAccessMask memoryAccess, spv::Scope scope, unsigned int alignment) -{ - assert(accessChain.isRValue == false); - - transferAccessChainSwizzle(true); - - // If a swizzle exists and is not full and is not dynamic, then the swizzle will be broken into individual stores. - if (accessChain.swizzle.size() > 0 && - getNumTypeComponents(getResultingAccessChainType()) != (int)accessChain.swizzle.size() && - accessChain.component == NoResult) { - for (unsigned int i = 0; i < accessChain.swizzle.size(); ++i) { - accessChain.indexChain.push_back(makeUintConstant(accessChain.swizzle[i])); - accessChain.instr = NoResult; - - Id base = collapseAccessChain(); - addDecoration(base, nonUniform); - - accessChain.indexChain.pop_back(); - accessChain.instr = NoResult; - - // dynamic component should be gone - assert(accessChain.component == NoResult); - - Id source = createCompositeExtract(rvalue, getContainedTypeId(getTypeId(rvalue)), i); - - // take LSB of alignment - alignment = alignment & ~(alignment & (alignment-1)); - if (getStorageClass(base) == StorageClassPhysicalStorageBufferEXT) { - memoryAccess = (spv::MemoryAccessMask)(memoryAccess | spv::MemoryAccessAlignedMask); - } - - createStore(source, base, memoryAccess, scope, alignment); - } - } - else { - Id base = collapseAccessChain(); - addDecoration(base, nonUniform); - - Id source = rvalue; - - // dynamic component should be gone - assert(accessChain.component == NoResult); - - // If swizzle still exists, it may be out-of-order, we must load the target vector, - // extract and insert elements to perform writeMask and/or swizzle. - if (accessChain.swizzle.size() > 0) { - Id tempBaseId = createLoad(base, spv::NoPrecision); - source = createLvalueSwizzle(getTypeId(tempBaseId), tempBaseId, source, accessChain.swizzle); - } - - // take LSB of alignment - alignment = alignment & ~(alignment & (alignment-1)); - if (getStorageClass(base) == StorageClassPhysicalStorageBufferEXT) { - memoryAccess = (spv::MemoryAccessMask)(memoryAccess | spv::MemoryAccessAlignedMask); - } - - createStore(source, base, memoryAccess, scope, alignment); - } -} - -// Comments in header -Id Builder::accessChainLoad(Decoration precision, Decoration l_nonUniform, - Decoration r_nonUniform, Id resultType, spv::MemoryAccessMask memoryAccess, - spv::Scope scope, unsigned int alignment) -{ - Id id; - - if (accessChain.isRValue) { - // transfer access chain, but try to stay in registers - transferAccessChainSwizzle(false); - if (accessChain.indexChain.size() > 0) { - Id swizzleBase = accessChain.preSwizzleBaseType != NoType ? accessChain.preSwizzleBaseType : resultType; - - // if all the accesses are constants, we can use OpCompositeExtract - std::vector indexes; - bool constant = true; - for (int i = 0; i < (int)accessChain.indexChain.size(); ++i) { - if (isConstantScalar(accessChain.indexChain[i])) - indexes.push_back(getConstantScalar(accessChain.indexChain[i])); - else { - constant = false; - break; - } - } - - if (constant) { - id = createCompositeExtract(accessChain.base, swizzleBase, indexes); - setPrecision(id, precision); - } else { - Id lValue = NoResult; - if (spvVersion >= Spv_1_4 && isValidInitializer(accessChain.base)) { - // make a new function variable for this r-value, using an initializer, - // and mark it as NonWritable so that downstream it can be detected as a lookup - // table - lValue = createVariable(NoPrecision, StorageClassFunction, getTypeId(accessChain.base), - "indexable", accessChain.base); - addDecoration(lValue, DecorationNonWritable); - } else { - lValue = createVariable(NoPrecision, StorageClassFunction, getTypeId(accessChain.base), - "indexable"); - // store into it - createStore(accessChain.base, lValue); - } - // move base to the new variable - accessChain.base = lValue; - accessChain.isRValue = false; - - // load through the access chain - id = createLoad(collapseAccessChain(), precision); - } - } else - id = accessChain.base; // no precision, it was set when this was defined - } else { - transferAccessChainSwizzle(true); - - // take LSB of alignment - alignment = alignment & ~(alignment & (alignment-1)); - if (getStorageClass(accessChain.base) == StorageClassPhysicalStorageBufferEXT) { - memoryAccess = (spv::MemoryAccessMask)(memoryAccess | spv::MemoryAccessAlignedMask); - } - - // load through the access chain - id = collapseAccessChain(); - // Apply nonuniform both to the access chain and the loaded value. - // Buffer accesses need the access chain decorated, and this is where - // loaded image types get decorated. TODO: This should maybe move to - // createImageTextureFunctionCall. - addDecoration(id, l_nonUniform); - id = createLoad(id, precision, memoryAccess, scope, alignment); - addDecoration(id, r_nonUniform); - } - - // Done, unless there are swizzles to do - if (accessChain.swizzle.size() == 0 && accessChain.component == NoResult) - return id; - - // Do remaining swizzling - - // 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); - } - - // Do the dynamic component - if (accessChain.component != NoResult) - id = setPrecision(createVectorExtractDynamic(id, resultType, accessChain.component), precision); - - addDecoration(id, r_nonUniform); - return id; -} - -Id Builder::accessChainGetLValue() -{ - assert(accessChain.isRValue == false); - - transferAccessChainSwizzle(true); - Id lvalue = collapseAccessChain(); - - // If swizzle 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. This does not - // go with getting a direct l-value pointer. - assert(accessChain.swizzle.size() == 0); - assert(accessChain.component == NoResult); - - return lvalue; -} - -// comment in header -Id Builder::accessChainGetInferredType() -{ - // anything to operate on? - if (accessChain.base == NoResult) - return NoType; - Id type = getTypeId(accessChain.base); - - // do initial dereference - if (! accessChain.isRValue) - type = getContainedTypeId(type); - - // dereference each index - for (auto it = accessChain.indexChain.cbegin(); it != accessChain.indexChain.cend(); ++it) { - if (isStructType(type)) - type = getContainedTypeId(type, getConstantScalar(*it)); - else - type = getContainedTypeId(type); - } - - // dereference swizzle - if (accessChain.swizzle.size() == 1) - type = getContainedTypeId(type); - else if (accessChain.swizzle.size() > 1) - type = makeVectorType(getContainedTypeId(type), (int)accessChain.swizzle.size()); - - // dereference component selection - if (accessChain.component) - type = getContainedTypeId(type); - - return type; -} - -void Builder::dump(std::vector& out) const -{ - // Header, before first instructions: - out.push_back(MagicNumber); - out.push_back(spvVersion); - out.push_back(builderNumber); - out.push_back(uniqueId + 1); - out.push_back(0); - - // Capabilities - for (auto it = capabilities.cbegin(); it != capabilities.cend(); ++it) { - Instruction capInst(0, 0, OpCapability); - capInst.addImmediateOperand(*it); - capInst.dump(out); - } - - for (auto it = extensions.cbegin(); it != extensions.cend(); ++it) { - Instruction extInst(0, 0, OpExtension); - extInst.addStringOperand(it->c_str()); - extInst.dump(out); - } - - dumpInstructions(out, imports); - Instruction memInst(0, 0, OpMemoryModel); - memInst.addImmediateOperand(addressModel); - memInst.addImmediateOperand(memoryModel); - memInst.dump(out); - - // Instructions saved up while building: - dumpInstructions(out, entryPoints); - dumpInstructions(out, executionModes); - - // Debug instructions - 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); - dumpModuleProcesses(out); - - // Annotation instructions - dumpInstructions(out, decorations); - - dumpInstructions(out, constantsTypesGlobals); - dumpInstructions(out, externals); - - // The functions - module.dump(out); -} - -// -// Protected methods. -// - -// 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. -// -// Can generate code. -Id Builder::collapseAccessChain() -{ - assert(accessChain.isRValue == false); - - // did we already emit an access chain for this? - if (accessChain.instr != NoResult) - 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) - 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(); - } -} - -// clear out swizzle if it is redundant, that is reselecting the same components -// that would be present without the swizzle. -void Builder::simplifyAccessChainSwizzle() -{ - // If the swizzle has fewer components than the vector, it is subsetting, and must stay - // to preserve that fact. - if (getNumTypeComponents(accessChain.preSwizzleBaseType) > (int)accessChain.swizzle.size()) - return; - - // if components are out of order, it is a swizzle - for (unsigned int i = 0; i < accessChain.swizzle.size(); ++i) { - if (i != accessChain.swizzle[i]) - return; - } - - // otherwise, there is no need to track this swizzle - accessChain.swizzle.clear(); - if (accessChain.component == NoResult) - accessChain.preSwizzleBaseType = NoType; -} - -// 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. -// -// Does not generate code. just updates the access chain. -void Builder::transferAccessChainSwizzle(bool dynamic) -{ - // 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) - return; - - // single component, either in the swizzle and/or dynamic component - if (accessChain.swizzle.size() == 1) { - assert(accessChain.component == NoResult); - // handle static component selection - accessChain.indexChain.push_back(makeUintConstant(accessChain.swizzle.front())); - accessChain.swizzle.clear(); - accessChain.preSwizzleBaseType = NoType; - } else if (dynamic && accessChain.component != NoResult) { - assert(accessChain.swizzle.size() == 0); - // handle dynamic component - accessChain.indexChain.push_back(accessChain.component); - accessChain.preSwizzleBaseType = NoType; - accessChain.component = NoResult; - } -} - -// Utility method for creating a new block and setting the insert point to -// be in it. This is useful for flow-control operations that need a "dummy" -// block proceeding them (e.g. instructions after a discard, etc). -void Builder::createAndSetNoPredecessorBlock(const char* /*name*/) -{ - Block* block = new Block(getUniqueId(), buildPoint->getParent()); - block->setUnreachable(); - buildPoint->getParent().addBlock(block); - setBuildPoint(block); - - // if (name) - // addName(block->getId(), name); -} - -// Comments in header -void Builder::createBranch(Block* block) -{ - Instruction* branch = new Instruction(OpBranch); - branch->addIdOperand(block->getId()); - buildPoint->addInstruction(std::unique_ptr(branch)); - block->addPredecessor(buildPoint); -} - -void Builder::createSelectionMerge(Block* mergeBlock, unsigned int control) -{ - Instruction* merge = new Instruction(OpSelectionMerge); - merge->addIdOperand(mergeBlock->getId()); - merge->addImmediateOperand(control); - buildPoint->addInstruction(std::unique_ptr(merge)); -} - -void Builder::createLoopMerge(Block* mergeBlock, Block* continueBlock, unsigned int control, - const std::vector& operands) -{ - Instruction* merge = new Instruction(OpLoopMerge); - merge->addIdOperand(mergeBlock->getId()); - merge->addIdOperand(continueBlock->getId()); - merge->addImmediateOperand(control); - for (int op = 0; op < (int)operands.size(); ++op) - merge->addImmediateOperand(operands[op]); - buildPoint->addInstruction(std::unique_ptr(merge)); -} - -void Builder::createConditionalBranch(Id condition, Block* thenBlock, Block* elseBlock) -{ - Instruction* branch = new Instruction(OpBranchConditional); - branch->addIdOperand(condition); - branch->addIdOperand(thenBlock->getId()); - branch->addIdOperand(elseBlock->getId()); - buildPoint->addInstruction(std::unique_ptr(branch)); - thenBlock->addPredecessor(buildPoint); - elseBlock->addPredecessor(buildPoint); -} - -// OpSource -// [OpSourceContinued] -// ... -void Builder::dumpSourceInstructions(const spv::Id fileId, const std::string& text, - 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 (fileId != NoResult) { - sourceInst.addIdOperand(fileId); - // Source operand - if (text.size() > 0) { - int nextByte = 0; - std::string subString; - while ((int)text.size() - nextByte > 0) { - subString = text.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); - } -} - -// Dump an OpSource[Continued] sequence for the source and every include file -void Builder::dumpSourceInstructions(std::vector& out) const -{ - dumpSourceInstructions(sourceFileStringId, sourceText, out); - for (auto iItr = includeFiles.begin(); iItr != includeFiles.end(); ++iItr) - dumpSourceInstructions(iItr->first, *iItr->second, out); -} - -void Builder::dumpInstructions(std::vector& out, - const std::vector >& instructions) const -{ - for (int i = 0; i < (int)instructions.size(); ++i) { - instructions[i]->dump(out); - } -} - -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/SPIRV/SpvBuilder.h b/deps/glslang/SPIRV/SpvBuilder.h deleted file mode 100644 index c72d9b28..00000000 --- a/deps/glslang/SPIRV/SpvBuilder.h +++ /dev/null @@ -1,865 +0,0 @@ -// -// Copyright (C) 2014-2015 LunarG, Inc. -// Copyright (C) 2015-2020 Google, Inc. -// Copyright (C) 2017 ARM Limited. -// Modifications Copyright (C) 2020 Advanced Micro Devices, 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: -// -// 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. - -// -// "Builder" is an interface to fully build SPIR-V IR. Allocate one of -// these to build (a thread safe) internal SPIR-V representation (IR), -// and then dump it as a binary stream according to the SPIR-V specification. -// -// A Builder has a 1:1 relationship with a SPIR-V module. -// - -#pragma once -#ifndef SpvBuilder_H -#define SpvBuilder_H - -#include "Logger.h" -#include "spirv.hpp" -#include "spvIR.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -namespace spv { - -typedef enum { - Spv_1_0 = (1 << 16), - Spv_1_1 = (1 << 16) | (1 << 8), - Spv_1_2 = (1 << 16) | (2 << 8), - Spv_1_3 = (1 << 16) | (3 << 8), - Spv_1_4 = (1 << 16) | (4 << 8), - Spv_1_5 = (1 << 16) | (5 << 8), -} SpvVersion; - -class Builder { -public: - 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; - } - spv::Id getStringId(const std::string& str) - { - auto sItr = stringIds.find(str); - if (sItr != stringIds.end()) - return sItr->second; - spv::Id strId = getUniqueId(); - Instruction* fileString = new Instruction(strId, NoType, OpString); - const char* file_c_str = str.c_str(); - fileString->addStringOperand(file_c_str); - strings.push_back(std::unique_ptr(fileString)); - module.mapInstruction(fileString); - stringIds[file_c_str] = strId; - return strId; - } - void setSourceFile(const std::string& file) - { - sourceFileStringId = getStringId(file); - } - 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); } - void removeExtension(const char* ext) - { - extensions.erase(ext); - } - void addIncorporatedExtension(const char* ext, SpvVersion incorporatedVersion) - { - if (getSpvVersion() < static_cast(incorporatedVersion)) - addExtension(ext); - } - void promoteIncorporatedExtension(const char* baseExt, const char* promoExt, SpvVersion incorporatedVersion) - { - removeExtension(baseExt); - addIncorporatedExtension(promoExt, incorporatedVersion); - } - void addInclude(const std::string& name, const std::string& text) - { - spv::Id incId = getStringId(name); - includeFiles[incId] = &text; - } - Id import(const char*); - void setMemoryModel(spv::AddressingModel addr, spv::MemoryModel mem) - { - addressModel = addr; - memoryModel = mem; - } - - void addCapability(spv::Capability cap) { capabilities.insert(cap); } - - // To get a new for anything needing a new one. - Id getUniqueId() { return ++uniqueId; } - - // To get a set of new s, e.g., for a set of function parameters - Id getUniqueIds(int numIds) - { - Id id = uniqueId + 1; - uniqueId += numIds; - return id; - } - - // Generate OpLine for non-filename-based #line directives (ie no filename - // seen yet): Log the current line, and if different than the last one, - // issue a new OpLine using the new line and current source file name. - void setLine(int line); - - // If filename null, generate OpLine for non-filename-based line directives, - // else do filename-based: Log the current line and file, and if different - // than the last one, issue a new OpLine using the new line and file - // name. - void setLine(int line, const char* filename); - // 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(); - Id makePointer(StorageClass, Id pointee); - Id makeForwardPointer(StorageClass); - Id makePointerFromForwardPointer(StorageClass, Id forwardPointerType, Id pointee); - Id makeIntegerType(int width, bool hasSign); // generic - Id makeIntType(int width) { return makeIntegerType(width, true); } - Id makeUintType(int width) { return makeIntegerType(width, false); } - Id makeFloatType(int width); - Id makeStructType(const std::vector& members, const char*); - Id makeStructResultType(Id type0, Id type1); - Id makeVectorType(Id component, int size); - Id makeMatrixType(Id component, int cols, int rows); - Id makeArrayType(Id element, Id sizeId, int stride); // 0 stride means no stride decoration - Id makeRuntimeArray(Id element); - Id makeFunctionType(Id returnType, const std::vector& paramTypes); - Id makeImageType(Id sampledType, Dim, bool depth, bool arrayed, bool ms, unsigned sampled, ImageFormat format); - Id makeSamplerType(); - Id makeSampledImageType(Id imageType); - Id makeCooperativeMatrixType(Id component, Id scope, Id rows, Id cols); - Id makeGenericType(spv::Op opcode, std::vector& operands); - - // accelerationStructureNV type - Id makeAccelerationStructureType(); - // rayQueryEXT type - Id makeRayQueryType(); - - // For querying about types. - Id getTypeId(Id resultId) const { return module.getTypeId(resultId); } - Id getDerefTypeId(Id resultId) const; - Op getOpCode(Id id) const { return module.getInstruction(id)->getOpCode(); } - Op getTypeClass(Id typeId) const { return getOpCode(typeId); } - Op getMostBasicTypeClass(Id typeId) const; - int getNumComponents(Id resultId) const { return getNumTypeComponents(getTypeId(resultId)); } - int getNumTypeConstituents(Id typeId) const; - int getNumTypeComponents(Id typeId) const { return getNumTypeConstituents(typeId); } - Id getScalarTypeId(Id typeId) const; - Id getContainedTypeId(Id typeId) const; - Id getContainedTypeId(Id typeId, int) const; - StorageClass getTypeStorageClass(Id typeId) const { return module.getStorageClass(typeId); } - ImageFormat getImageTypeFormat(Id typeId) const - { return (ImageFormat)module.getInstruction(typeId)->getImmediateOperand(6); } - Id getResultingAccessChainType() const; - - bool isPointer(Id resultId) const { return isPointerType(getTypeId(resultId)); } - bool isScalar(Id resultId) const { return isScalarType(getTypeId(resultId)); } - bool isVector(Id resultId) const { return isVectorType(getTypeId(resultId)); } - bool isMatrix(Id resultId) const { return isMatrixType(getTypeId(resultId)); } - bool isCooperativeMatrix(Id resultId)const { return isCooperativeMatrixType(getTypeId(resultId)); } - 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 isPointerType(Id typeId) const { return getTypeClass(typeId) == OpTypePointer; } - bool isScalarType(Id typeId) const - { return getTypeClass(typeId) == OpTypeFloat || getTypeClass(typeId) == OpTypeInt || - getTypeClass(typeId) == OpTypeBool; } - bool isVectorType(Id typeId) const { return getTypeClass(typeId) == OpTypeVector; } - bool isMatrixType(Id typeId) const { return getTypeClass(typeId) == OpTypeMatrix; } - bool isStructType(Id typeId) const { return getTypeClass(typeId) == OpTypeStruct; } - bool isArrayType(Id typeId) const { return getTypeClass(typeId) == OpTypeArray; } -#ifdef GLSLANG_WEB - bool isCooperativeMatrixType(Id typeId)const { return false; } -#else - bool isCooperativeMatrixType(Id typeId)const { return getTypeClass(typeId) == OpTypeCooperativeMatrixNV; } -#endif - bool isAggregateType(Id typeId) const - { return isArrayType(typeId) || isStructType(typeId) || isCooperativeMatrixType(typeId); } - bool isImageType(Id typeId) const { return getTypeClass(typeId) == OpTypeImage; } - bool isSamplerType(Id typeId) const { return getTypeClass(typeId) == OpTypeSampler; } - bool isSampledImageType(Id typeId) const { return getTypeClass(typeId) == OpTypeSampledImage; } - bool containsType(Id typeId, Op typeOp, unsigned int width) const; - bool containsPhysicalStorageBufferOrArray(Id typeId) const; - - bool isConstantOpCode(Op opcode) const; - bool isSpecConstantOpCode(Op opcode) const; - bool isConstant(Id resultId) const { return isConstantOpCode(getOpCode(resultId)); } - bool isConstantScalar(Id resultId) const { return getOpCode(resultId) == OpConstant; } - bool isSpecConstant(Id resultId) const { return isSpecConstantOpCode(getOpCode(resultId)); } - unsigned int getConstantScalar(Id resultId) const - { return module.getInstruction(resultId)->getImmediateOperand(0); } - StorageClass getStorageClass(Id resultId) const { return getTypeStorageClass(getTypeId(resultId)); } - - bool isVariableOpCode(Op opcode) const { return opcode == OpVariable; } - bool isVariable(Id resultId) const { return isVariableOpCode(getOpCode(resultId)); } - bool isGlobalStorage(Id resultId) const { return getStorageClass(resultId) != StorageClassFunction; } - bool isGlobalVariable(Id resultId) const { return isVariable(resultId) && isGlobalStorage(resultId); } - // See if a resultId is valid for use as an initializer. - bool isValidInitializer(Id resultId) const { return isConstant(resultId) || isGlobalVariable(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)); - return getNumTypeConstituents(typeId); - } - int getNumColumns(Id resultId) const { return getTypeNumColumns(getTypeId(resultId)); } - int getTypeNumRows(Id typeId) const - { - assert(isMatrixType(typeId)); - return getNumTypeComponents(getContainedTypeId(typeId)); - } - int getNumRows(Id resultId) const { return getTypeNumRows(getTypeId(resultId)); } - - Dim getTypeDimensionality(Id typeId) const - { - assert(isImageType(typeId)); - return (Dim)module.getInstruction(typeId)->getImmediateOperand(1); - } - Id getImageType(Id resultId) const - { - Id typeId = getTypeId(resultId); - assert(isImageType(typeId) || isSampledImageType(typeId)); - return isSampledImageType(typeId) ? module.getInstruction(typeId)->getIdOperand(0) : typeId; - } - bool isArrayedImageType(Id typeId) const - { - assert(isImageType(typeId)); - return module.getInstruction(typeId)->getImmediateOperand(3) != 0; - } - - // For making new constants (will return old constant if the requested one was already made). - Id makeNullConstant(Id typeId); - 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); - Id makeFloat16Constant(float f16, bool specConstant = false); - 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, 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 addExecutionMode(Function*, ExecutionMode mode, const std::vector& literals); - void addExecutionModeId(Function*, ExecutionMode mode, const std::vector& operandIds); - void addName(Id, const char* name); - void addMemberName(Id, int member, const char* name); - void addDecoration(Id, Decoration, int num = -1); - void addDecoration(Id, Decoration, const char*); - void addDecoration(Id, Decoration, const std::vector& literals); - void addDecoration(Id, Decoration, const std::vector& strings); - void addDecorationId(Id id, Decoration, Id idDecoration); - void addDecorationId(Id id, Decoration, const std::vector& operandIds); - void addMemberDecoration(Id, unsigned int member, Decoration, int num = -1); - void addMemberDecoration(Id, unsigned int member, Decoration, const char*); - void addMemberDecoration(Id, unsigned int member, Decoration, const std::vector& literals); - void addMemberDecoration(Id, unsigned int member, Decoration, const std::vector& strings); - - // At the end of what block do the next create*() instructions go? - void setBuildPoint(Block* bp) { buildPoint = bp; } - Block* getBuildPoint() const { return buildPoint; } - - // Make the entry-point function. The returned pointer is only valid - // for the lifetime of this builder. - Function* makeEntryPoint(const char*); - - // Make a shader-style function, and create its entry block if entry is non-zero. - // Return the function, pass back the entry. - // The returned pointer is only valid for the lifetime of this builder. - Function* makeFunctionEntry(Decoration precision, Id returnType, const char* name, - const std::vector& paramTypes, const std::vector>& precisions, Block **entry = 0); - - // 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. - void makeReturn(bool implicit, Id retVal = 0); - - // Generate all the code needed to finish up a function. - void leaveFunction(); - - // Create block terminator instruction for certain statements like - // discard, terminate-invocation, terminateRayEXT, or ignoreIntersectionEXT - void makeStatementTerminator(spv::Op opcode, const char *name); - - // Create a global or function local or IO variable. - Id createVariable(Decoration precision, StorageClass, Id type, const char* name = nullptr, - Id initializer = NoResult); - - // Create an intermediate with an undefined value. - Id createUndefined(Id type); - - // Store into an Id and return the l-value - void createStore(Id rValue, Id lValue, spv::MemoryAccessMask memoryAccess = spv::MemoryAccessMaskNone, - spv::Scope scope = spv::ScopeMax, unsigned int alignment = 0); - - // Load from an Id and return it - Id createLoad(Id lValue, spv::Decoration precision, - spv::MemoryAccessMask memoryAccess = spv::MemoryAccessMaskNone, - spv::Scope scope = spv::ScopeMax, unsigned int alignment = 0); - - // Create an OpAccessChain instruction - Id createAccessChain(StorageClass, Id base, const std::vector& offsets); - - // Create an OpArrayLength instruction - Id createArrayLength(Id base, unsigned int member); - - // Create an OpCooperativeMatrixLengthNV instruction - Id createCooperativeMatrixLength(Id type); - - // Create an OpCompositeExtract instruction - Id createCompositeExtract(Id composite, Id typeId, unsigned index); - 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, const std::vector& indexes); - - Id createVectorExtractDynamic(Id vector, Id typeId, Id componentIndex); - Id createVectorInsertDynamic(Id vector, Id typeId, Id component, Id componentIndex); - - void createNoResultOp(Op); - void createNoResultOp(Op, Id operand); - void createNoResultOp(Op, const std::vector& operands); - void createNoResultOp(Op, const std::vector& operands); - void createControlBarrier(Scope execution, Scope memory, MemorySemanticsMask); - void createMemoryBarrier(unsigned executionScope, unsigned memorySemantics); - Id createUnaryOp(Op, Id typeId, Id operand); - 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 createOp(Op, Id typeId, const std::vector& operands); - 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, 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, const std::vector& channels); - - // If both the id and precision are valid, the id - // gets tagged with the requested precision. - // The passed in id is always the returned id, to simplify use patterns. - Id setPrecision(Id id, Decoration precision) - { - if (precision != NoPrecision && id != NoResult) - addDecoration(id, precision); - - return id; - } - - // Can smear a scalar to a vector for the following forms: - // - promoteScalar(scalar, vector) // smear scalar to width of vector - // - promoteScalar(vector, scalar) // smear scalar to width of vector - // - promoteScalar(pointer, scalar) // smear scalar to width of what pointer points to - // - promoteScalar(scalar, scalar) // do nothing - // Other forms are not allowed. - // - // Generally, the type of 'scalar' does not need to be the same type as the components in 'vector'. - // The type of the created vector is a vector of components of the same type as the scalar. - // - // Note: One of the arguments will change, with the result coming back that way rather than - // through the return value. - void promoteScalar(Decoration precision, Id& left, Id& right); - - // Make a value by smearing the scalar to fill the type. - // vectorType should be the correct type for making a vector of scalarVal. - // (No conversions are done.) - 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); - - // List of parameters used to create a texture operation - struct TextureParameters { - Id sampler; - Id coords; - Id bias; - Id lod; - Id Dref; - Id offset; - Id offsets; - Id gradX; - Id gradY; - Id sample; - Id component; - Id texelOut; - Id lodClamp; - Id granularity; - Id coarse; - bool nonprivate; - bool volatil; - }; - - // Select the correct texture operation based on all inputs, and emit the correct instruction - Id createTextureCall(Decoration precision, Id resultType, bool sparse, bool fetch, bool proj, bool gather, - bool noImplicit, const TextureParameters&, ImageOperandsMask); - - // 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 createSamplePositionCall(Decoration precision, Id, Id); - - Id createBitFieldExtractCall(Decoration precision, Id, Id, Id, bool isSigned); - Id createBitFieldInsertCall(Decoration precision, Id, Id, Id, Id); - - // Reduction comparison for composites: For equal and not-equal resulting in a scalar. - Id createCompositeCompare(Decoration precision, Id, Id, bool /* true if for equal, false if for not-equal */); - - // OpCompositeConstruct - Id createCompositeConstruct(Id typeId, const std::vector& constituents); - - // vector or scalar constructor - Id createConstructor(Decoration precision, const std::vector& sources, Id resultTypeId); - - // matrix constructor - Id createMatrixConstructor(Decoration precision, const std::vector& sources, Id constructee); - - // Helper to use for building nested control flow with if-then-else. - class If { - public: - If(Id condition, unsigned int ctrl, Builder& builder); - ~If() {} - - void makeBeginElse(); - void makeEndIf(); - - private: - If(const If&); - If& operator=(If&); - - Builder& builder; - Id condition; - unsigned int control; - Function* function; - Block* headerBlock; - Block* thenBlock; - Block* elseBlock; - Block* mergeBlock; - }; - - // Make a switch statement. A switch has 'numSegments' of pieces of code, not containing - // any case/default labels, all separated by one or more case/default labels. Each possible - // case value v is a jump to the caseValues[v] segment. The defaultSegment is also in this - // number space. How to compute the value is given by 'condition', as in switch(condition). - // - // The SPIR-V Builder will maintain the stack of post-switch merge blocks for nested switches. - // - // Use a defaultSegment < 0 if there is no default segment (to branch to post switch). - // - // 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); - - // Add a branch to the innermost switch's merge block. - void addSwitchBreak(); - - // Move to the next code segment, passing in the return argument in makeSwitch() - void nextSwitchSegment(std::vector& segmentBB, int segment); - - // Finish off the innermost switch. - void endSwitch(std::vector& segmentBB); - - struct LoopBlocks { - LoopBlocks(Block& head, Block& body, Block& merge, Block& continue_target) : - head(head), body(body), merge(merge), continue_target(continue_target) { } - Block &head, &body, &merge, &continue_target; - private: - LoopBlocks(); - LoopBlocks& operator=(const LoopBlocks&) = delete; - }; - - // Start a new loop and prepare the builder to generate code for it. Until - // closeLoop() is called for this loop, createLoopContinue() and - // createLoopExit() will target its corresponding blocks. - LoopBlocks& makeNewLoop(); - - // Create a new block in the function containing the build point. Memory is - // owned by the function object. - Block& makeNewBlock(); - - // Add a branch to the continue_target of the current (innermost) loop. - void createLoopContinue(); - - // Add an exit (e.g. "break") from the innermost loop that we're currently - // in. - void createLoopExit(); - - // Close the innermost loop that you're in - void closeLoop(); - - // - // Access chain design for an R-Value vs. L-Value: - // - // There is a single access chain the builder is building at - // any particular time. Such a chain can be used to either to a load or - // a store, when desired. - // - // Expressions can be r-values, l-values, or both, or only r-values: - // a[b.c].d = .... // l-value - // ... = a[b.c].d; // r-value, that also looks like an l-value - // ++a[b.c].d; // r-value and l-value - // (x + y)[2]; // r-value only, can't possibly be l-value - // - // Computing an r-value means generating code. Hence, - // r-values should only be computed when they are needed, not speculatively. - // - // Computing an l-value means saving away information for later use in the compiler, - // no code is generated until the l-value is later dereferenced. It is okay - // to speculatively generate an l-value, just not okay to speculatively dereference it. - // - // The base of the access chain (the left-most variable or expression - // from which everything is based) can be set either as an l-value - // or as an r-value. Most efficient would be to set an l-value if one - // is available. If an expression was evaluated, the resulting r-value - // can be set as the chain base. - // - // The users of this single access chain can save and restore if they - // want to nest or manage multiple chains. - // - - struct AccessChain { - Id base; // for l-values, pointer to the base object, for r-values, the base object - std::vector indexChain; - Id instr; // cache the instruction that generates this access chain - std::vector swizzle; // each std::vector element selects the next GLSL component number - Id component; // a dynamic component index, can coexist with a swizzle, - // done after the swizzle, NoResult if not present - Id preSwizzleBaseType; // dereferenced type, before swizzle or component is applied; - // NoType unless a swizzle or component is present - bool isRValue; // true if 'base' is an r-value, otherwise, base is an l-value - unsigned int alignment; // bitwise OR of alignment values passed in. Accumulates worst alignment. - // Only tracks base and (optional) component selection alignment. - - // Accumulate whether anything in the chain of structures has coherent decorations. - struct CoherentFlags { - CoherentFlags() { clear(); } -#ifdef GLSLANG_WEB - void clear() { } - bool isVolatile() const { return false; } - CoherentFlags operator |=(const CoherentFlags &other) { return *this; } -#else - bool isVolatile() const { return volatil; } - bool isNonUniform() const { return nonUniform; } - bool anyCoherent() const { - return coherent || devicecoherent || queuefamilycoherent || workgroupcoherent || - subgroupcoherent || shadercallcoherent; - } - - unsigned coherent : 1; - unsigned devicecoherent : 1; - unsigned queuefamilycoherent : 1; - unsigned workgroupcoherent : 1; - unsigned subgroupcoherent : 1; - unsigned shadercallcoherent : 1; - unsigned nonprivate : 1; - unsigned volatil : 1; - unsigned isImage : 1; - unsigned nonUniform : 1; - - void clear() { - coherent = 0; - devicecoherent = 0; - queuefamilycoherent = 0; - workgroupcoherent = 0; - subgroupcoherent = 0; - shadercallcoherent = 0; - nonprivate = 0; - volatil = 0; - isImage = 0; - nonUniform = 0; - } - - CoherentFlags operator |=(const CoherentFlags &other) { - coherent |= other.coherent; - devicecoherent |= other.devicecoherent; - queuefamilycoherent |= other.queuefamilycoherent; - workgroupcoherent |= other.workgroupcoherent; - subgroupcoherent |= other.subgroupcoherent; - shadercallcoherent |= other.shadercallcoherent; - nonprivate |= other.nonprivate; - volatil |= other.volatil; - isImage |= other.isImage; - nonUniform |= other.nonUniform; - return *this; - } -#endif - }; - CoherentFlags coherentFlags; - }; - - // - // the SPIR-V builder maintains a single active chain that - // the following methods operate on - // - - // for external save and restore - AccessChain getAccessChain() { return accessChain; } - void setAccessChain(AccessChain newChain) { accessChain = newChain; } - - // clear accessChain - void clearAccessChain(); - - // set new base as an l-value base - void setAccessChainLValue(Id lValue) - { - assert(isPointer(lValue)); - accessChain.base = lValue; - } - - // set new base value as an r-value - void setAccessChainRValue(Id rValue) - { - accessChain.isRValue = true; - accessChain.base = rValue; - } - - // push offset onto the end of the chain - void accessChainPush(Id offset, AccessChain::CoherentFlags coherentFlags, unsigned int alignment) - { - accessChain.indexChain.push_back(offset); - accessChain.coherentFlags |= coherentFlags; - accessChain.alignment |= alignment; - } - - // push new swizzle onto the end of any existing swizzle, merging into a single swizzle - void accessChainPushSwizzle(std::vector& swizzle, Id preSwizzleBaseType, - AccessChain::CoherentFlags coherentFlags, unsigned int alignment); - - // 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::CoherentFlags coherentFlags, - unsigned int alignment) - { - if (accessChain.swizzle.size() != 1) { - accessChain.component = component; - if (accessChain.preSwizzleBaseType == NoType) - accessChain.preSwizzleBaseType = preSwizzleBaseType; - } - accessChain.coherentFlags |= coherentFlags; - accessChain.alignment |= alignment; - } - - // use accessChain and swizzle to store value - void accessChainStore(Id rvalue, Decoration nonUniform, - spv::MemoryAccessMask memoryAccess = spv::MemoryAccessMaskNone, - spv::Scope scope = spv::ScopeMax, unsigned int alignment = 0); - - // use accessChain and swizzle to load an r-value - Id accessChainLoad(Decoration precision, Decoration l_nonUniform, Decoration r_nonUniform, Id ResultType, - spv::MemoryAccessMask memoryAccess = spv::MemoryAccessMaskNone, spv::Scope scope = spv::ScopeMax, - unsigned int alignment = 0); - - // Return whether or not the access chain can be represented in SPIR-V - // as an l-value. - // E.g., a[3].yx cannot be, while a[3].y and a[3].y[x] can be. - bool isSpvLvalue() const { return accessChain.swizzle.size() <= 1; } - - // get the direct pointer for an l-value - Id accessChainGetLValue(); - - // Get the inferred SPIR-V type of the result of the current access chain, - // based on the type of the base and the chain of dereferences. - Id accessChainGetInferredType(); - - // Add capabilities, extensions, remove unneeded decorations, etc., - // based on the resulting SPIR-V. - void postProcess(); - - // Prune unreachable blocks in the CFG and remove unneeded decorations. - void postProcessCFG(); - -#ifndef GLSLANG_WEB - // Add capabilities, extensions based on instructions in the module. - void postProcessFeatures(); - // Hook to visit each instruction in a block in a function - void postProcess(Instruction&); - // Hook to visit each non-32-bit sized float/int operation in a block. - void postProcessType(const Instruction&, spv::Id typeId); -#endif - - void dump(std::vector&) const; - - void createBranch(Block* block); - void createConditionalBranch(Id condition, Block* thenBlock, Block* elseBlock); - void createLoopMerge(Block* mergeBlock, Block* continueBlock, unsigned int control, - const std::vector& operands); - - // Sets to generate opcode for specialization constants. - void setToSpecConstCodeGenMode() { generatingOpCodeForSpecConst = true; } - // Sets to generate opcode for non-specialization constants (normal mode). - void setToNormalCodeGenMode() { generatingOpCodeForSpecConst = false; } - // Check if the builder is generating code for spec constants. - bool isInSpecConstCodeGenMode() { return generatingOpCodeForSpecConst; } - - 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, Id typeId, 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 dumpSourceInstructions(const spv::Id fileId, const std::string& text, std::vector&) const; - void dumpInstructions(std::vector&, const std::vector >&) const; - void dumpModuleProcesses(std::vector&) const; - spv::MemoryAccessMask sanitizeMemoryAccessForStorageClass(spv::MemoryAccessMask memoryAccess, StorageClass sc) - 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; - const char* currentFile; - bool emitOpLines; - std::set extensions; - std::vector sourceExtensions; - std::vector moduleProcesses; - AddressingModel addressModel; - MemoryModel memoryModel; - std::set capabilities; - int builderNumber; - Module module; - Block* buildPoint; - Id uniqueId; - Function* entryPointFunction; - bool generatingOpCodeForSpecConst; - 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 > decorations; - std::vector > constantsTypesGlobals; - std::vector > externals; - std::vector > functions; - - // not output, internally used for quick & dirty canonical (unique) creation - - // map type opcodes to constant inst. - std::unordered_map> groupedConstants; - // map struct-id to constant instructions - std::unordered_map> groupedStructConstants; - // map type opcodes to type instructions - std::unordered_map> groupedTypes; - // list of OpConstantNull instructions - std::vector nullConstants; - - // stack of switches - std::stack switchMerges; - - // Our loop stack. - std::stack loops; - - // map from strings to their string ids - std::unordered_map stringIds; - - // map from include file name ids to their contents - std::map includeFiles; - - // The stream for outputting warnings and errors. - SpvBuildLogger* logger; -}; // end Builder class - -}; // end spv namespace - -#endif // SpvBuilder_H diff --git a/deps/glslang/SPIRV/SpvPostProcess.cpp b/deps/glslang/SPIRV/SpvPostProcess.cpp deleted file mode 100644 index dd6dabce..00000000 --- a/deps/glslang/SPIRV/SpvPostProcess.cpp +++ /dev/null @@ -1,495 +0,0 @@ -// -// Copyright (C) 2018 Google, Inc. -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// Neither the name of 3Dlabs Inc. Ltd. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. - -// -// Post-processing for SPIR-V IR, in internal form, not standard binary form. -// - -#include -#include - -#include -#include -#include - -#include "SpvBuilder.h" -#include "spirv.hpp" - -namespace spv { - #include "GLSL.std.450.h" - #include "GLSL.ext.KHR.h" - #include "GLSL.ext.EXT.h" - #include "GLSL.ext.AMD.h" - #include "GLSL.ext.NV.h" -} - -namespace spv { - -#ifndef GLSLANG_WEB -// Hook to visit each operand type and result type of an instruction. -// Will be called multiple times for one instruction, once for each typed -// operand and the result. -void Builder::postProcessType(const Instruction& inst, Id typeId) -{ - // Characterize the type being questioned - Id basicTypeOp = getMostBasicTypeClass(typeId); - int width = 0; - if (basicTypeOp == OpTypeFloat || basicTypeOp == OpTypeInt) - width = getScalarTypeWidth(typeId); - - // Do opcode-specific checks - switch (inst.getOpCode()) { - case OpLoad: - case OpStore: - if (basicTypeOp == OpTypeStruct) { - if (containsType(typeId, OpTypeInt, 8)) - addCapability(CapabilityInt8); - if (containsType(typeId, OpTypeInt, 16)) - addCapability(CapabilityInt16); - if (containsType(typeId, OpTypeFloat, 16)) - addCapability(CapabilityFloat16); - } else { - StorageClass storageClass = getStorageClass(inst.getIdOperand(0)); - if (width == 8) { - switch (storageClass) { - case StorageClassPhysicalStorageBufferEXT: - case StorageClassUniform: - case StorageClassStorageBuffer: - case StorageClassPushConstant: - break; - default: - addCapability(CapabilityInt8); - break; - } - } else if (width == 16) { - switch (storageClass) { - case StorageClassPhysicalStorageBufferEXT: - case StorageClassUniform: - case StorageClassStorageBuffer: - case StorageClassPushConstant: - case StorageClassInput: - case StorageClassOutput: - break; - default: - if (basicTypeOp == OpTypeInt) - addCapability(CapabilityInt16); - if (basicTypeOp == OpTypeFloat) - addCapability(CapabilityFloat16); - break; - } - } - } - break; - case OpCopyObject: - break; - case OpFConvert: - case OpSConvert: - case OpUConvert: - // Look for any 8/16-bit storage capabilities. If there are none, assume that - // the convert instruction requires the Float16/Int8/16 capability. - if (containsType(typeId, OpTypeFloat, 16) || containsType(typeId, OpTypeInt, 16)) { - bool foundStorage = false; - for (auto it = capabilities.begin(); it != capabilities.end(); ++it) { - spv::Capability cap = *it; - if (cap == spv::CapabilityStorageInputOutput16 || - cap == spv::CapabilityStoragePushConstant16 || - cap == spv::CapabilityStorageUniformBufferBlock16 || - cap == spv::CapabilityStorageUniform16) { - foundStorage = true; - break; - } - } - if (!foundStorage) { - if (containsType(typeId, OpTypeFloat, 16)) - addCapability(CapabilityFloat16); - if (containsType(typeId, OpTypeInt, 16)) - addCapability(CapabilityInt16); - } - } - if (containsType(typeId, OpTypeInt, 8)) { - bool foundStorage = false; - for (auto it = capabilities.begin(); it != capabilities.end(); ++it) { - spv::Capability cap = *it; - if (cap == spv::CapabilityStoragePushConstant8 || - cap == spv::CapabilityUniformAndStorageBuffer8BitAccess || - cap == spv::CapabilityStorageBuffer8BitAccess) { - foundStorage = true; - break; - } - } - if (!foundStorage) { - addCapability(CapabilityInt8); - } - } - break; - case OpExtInst: - switch (inst.getImmediateOperand(1)) { - case GLSLstd450Frexp: - case GLSLstd450FrexpStruct: - if (getSpvVersion() < spv::Spv_1_3 && containsType(typeId, OpTypeInt, 16)) - addExtension(spv::E_SPV_AMD_gpu_shader_int16); - break; - case GLSLstd450InterpolateAtCentroid: - case GLSLstd450InterpolateAtSample: - case GLSLstd450InterpolateAtOffset: - if (getSpvVersion() < spv::Spv_1_3 && containsType(typeId, OpTypeFloat, 16)) - addExtension(spv::E_SPV_AMD_gpu_shader_half_float); - break; - default: - break; - } - break; - case OpAccessChain: - case OpPtrAccessChain: - if (isPointerType(typeId)) - break; - if (basicTypeOp == OpTypeInt) { - if (width == 16) - addCapability(CapabilityInt16); - else if (width == 8) - addCapability(CapabilityInt8); - } - default: - if (basicTypeOp == OpTypeInt) { - if (width == 16) - addCapability(CapabilityInt16); - else if (width == 8) - addCapability(CapabilityInt8); - else if (width == 64) - addCapability(CapabilityInt64); - } else if (basicTypeOp == OpTypeFloat) { - if (width == 16) - addCapability(CapabilityFloat16); - else if (width == 64) - addCapability(CapabilityFloat64); - } - break; - } -} - -// Called for each instruction that resides in a block. -void Builder::postProcess(Instruction& inst) -{ - // Add capabilities based simply on the opcode. - switch (inst.getOpCode()) { - case OpExtInst: - switch (inst.getImmediateOperand(1)) { - case GLSLstd450InterpolateAtCentroid: - case GLSLstd450InterpolateAtSample: - case GLSLstd450InterpolateAtOffset: - addCapability(CapabilityInterpolationFunction); - break; - default: - break; - } - break; - case OpDPdxFine: - case OpDPdyFine: - case OpFwidthFine: - case OpDPdxCoarse: - case OpDPdyCoarse: - case OpFwidthCoarse: - addCapability(CapabilityDerivativeControl); - break; - - case OpImageQueryLod: - case OpImageQuerySize: - case OpImageQuerySizeLod: - case OpImageQuerySamples: - case OpImageQueryLevels: - addCapability(CapabilityImageQuery); - break; - - case OpGroupNonUniformPartitionNV: - addExtension(E_SPV_NV_shader_subgroup_partitioned); - addCapability(CapabilityGroupNonUniformPartitionedNV); - break; - - case OpLoad: - case OpStore: - { - // For any load/store to a PhysicalStorageBufferEXT, walk the accesschain - // index list to compute the misalignment. The pre-existing alignment value - // (set via Builder::AccessChain::alignment) only accounts for the base of - // the reference type and any scalar component selection in the accesschain, - // and this function computes the rest from the SPIR-V Offset decorations. - Instruction *accessChain = module.getInstruction(inst.getIdOperand(0)); - if (accessChain->getOpCode() == OpAccessChain) { - Instruction *base = module.getInstruction(accessChain->getIdOperand(0)); - // Get the type of the base of the access chain. It must be a pointer type. - Id typeId = base->getTypeId(); - Instruction *type = module.getInstruction(typeId); - assert(type->getOpCode() == OpTypePointer); - if (type->getImmediateOperand(0) != StorageClassPhysicalStorageBufferEXT) { - break; - } - // Get the pointee type. - typeId = type->getIdOperand(1); - type = module.getInstruction(typeId); - // Walk the index list for the access chain. For each index, find any - // misalignment that can apply when accessing the member/element via - // Offset/ArrayStride/MatrixStride decorations, and bitwise OR them all - // together. - int alignment = 0; - for (int i = 1; i < accessChain->getNumOperands(); ++i) { - Instruction *idx = module.getInstruction(accessChain->getIdOperand(i)); - if (type->getOpCode() == OpTypeStruct) { - assert(idx->getOpCode() == OpConstant); - unsigned int c = idx->getImmediateOperand(0); - - const auto function = [&](const std::unique_ptr& decoration) { - if (decoration.get()->getOpCode() == OpMemberDecorate && - decoration.get()->getIdOperand(0) == typeId && - decoration.get()->getImmediateOperand(1) == c && - (decoration.get()->getImmediateOperand(2) == DecorationOffset || - decoration.get()->getImmediateOperand(2) == DecorationMatrixStride)) { - alignment |= decoration.get()->getImmediateOperand(3); - } - }; - std::for_each(decorations.begin(), decorations.end(), function); - // get the next member type - typeId = type->getIdOperand(c); - type = module.getInstruction(typeId); - } else if (type->getOpCode() == OpTypeArray || - type->getOpCode() == OpTypeRuntimeArray) { - const auto function = [&](const std::unique_ptr& decoration) { - if (decoration.get()->getOpCode() == OpDecorate && - decoration.get()->getIdOperand(0) == typeId && - decoration.get()->getImmediateOperand(1) == DecorationArrayStride) { - alignment |= decoration.get()->getImmediateOperand(2); - } - }; - std::for_each(decorations.begin(), decorations.end(), function); - // Get the element type - typeId = type->getIdOperand(0); - type = module.getInstruction(typeId); - } else { - // Once we get to any non-aggregate type, we're done. - break; - } - } - assert(inst.getNumOperands() >= 3); - unsigned int memoryAccess = inst.getImmediateOperand((inst.getOpCode() == OpStore) ? 2 : 1); - assert(memoryAccess & MemoryAccessAlignedMask); - static_cast(memoryAccess); - // Compute the index of the alignment operand. - int alignmentIdx = 2; - if (inst.getOpCode() == OpStore) - alignmentIdx++; - // Merge new and old (mis)alignment - alignment |= inst.getImmediateOperand(alignmentIdx); - // Pick the LSB - alignment = alignment & ~(alignment & (alignment-1)); - // update the Aligned operand - inst.setImmediateOperand(alignmentIdx, alignment); - } - break; - } - - default: - break; - } - - // Checks based on type - if (inst.getTypeId() != NoType) - postProcessType(inst, inst.getTypeId()); - for (int op = 0; op < inst.getNumOperands(); ++op) { - if (inst.isIdOperand(op)) { - // In blocks, these are always result ids, but we are relying on - // getTypeId() to return NoType for things like OpLabel. - if (getTypeId(inst.getIdOperand(op)) != NoType) - postProcessType(inst, getTypeId(inst.getIdOperand(op))); - } - } -} -#endif - -// comment in header -void Builder::postProcessCFG() -{ - // reachableBlocks is the set of blockss reached via control flow, or which are - // unreachable continue targert or unreachable merge. - std::unordered_set reachableBlocks; - std::unordered_map headerForUnreachableContinue; - std::unordered_set unreachableMerges; - std::unordered_set unreachableDefinitions; - // Collect IDs defined in unreachable blocks. For each function, label the - // reachable blocks first. Then for each unreachable block, collect the - // result IDs of the instructions in it. - for (auto fi = module.getFunctions().cbegin(); fi != module.getFunctions().cend(); fi++) { - Function* f = *fi; - Block* entry = f->getEntryBlock(); - inReadableOrder(entry, - [&reachableBlocks, &unreachableMerges, &headerForUnreachableContinue] - (Block* b, ReachReason why, Block* header) { - reachableBlocks.insert(b); - if (why == ReachDeadContinue) headerForUnreachableContinue[b] = header; - if (why == ReachDeadMerge) unreachableMerges.insert(b); - }); - for (auto bi = f->getBlocks().cbegin(); bi != f->getBlocks().cend(); bi++) { - Block* b = *bi; - if (unreachableMerges.count(b) != 0 || headerForUnreachableContinue.count(b) != 0) { - auto ii = b->getInstructions().cbegin(); - ++ii; // Keep potential decorations on the label. - for (; ii != b->getInstructions().cend(); ++ii) - unreachableDefinitions.insert(ii->get()->getResultId()); - } else if (reachableBlocks.count(b) == 0) { - // The normal case for unreachable code. All definitions are considered dead. - for (auto ii = b->getInstructions().cbegin(); ii != b->getInstructions().cend(); ++ii) - unreachableDefinitions.insert(ii->get()->getResultId()); - } - } - } - - // Modify unreachable merge blocks and unreachable continue targets. - // Delete their contents. - for (auto mergeIter = unreachableMerges.begin(); mergeIter != unreachableMerges.end(); ++mergeIter) { - (*mergeIter)->rewriteAsCanonicalUnreachableMerge(); - } - for (auto continueIter = headerForUnreachableContinue.begin(); - continueIter != headerForUnreachableContinue.end(); - ++continueIter) { - Block* continue_target = continueIter->first; - Block* header = continueIter->second; - continue_target->rewriteAsCanonicalUnreachableContinue(header); - } - - // Remove unneeded decorations, for unreachable instructions - decorations.erase(std::remove_if(decorations.begin(), decorations.end(), - [&unreachableDefinitions](std::unique_ptr& I) -> bool { - Id decoration_id = I.get()->getIdOperand(0); - return unreachableDefinitions.count(decoration_id) != 0; - }), - decorations.end()); -} - -#ifndef GLSLANG_WEB -// comment in header -void Builder::postProcessFeatures() { - // Add per-instruction capabilities, extensions, etc., - - // Look for any 8/16 bit type in physical storage buffer class, and set the - // appropriate capability. This happens in createSpvVariable for other storage - // classes, but there isn't always a variable for physical storage buffer. - for (int t = 0; t < (int)groupedTypes[OpTypePointer].size(); ++t) { - Instruction* type = groupedTypes[OpTypePointer][t]; - if (type->getImmediateOperand(0) == (unsigned)StorageClassPhysicalStorageBufferEXT) { - if (containsType(type->getIdOperand(1), OpTypeInt, 8)) { - addIncorporatedExtension(spv::E_SPV_KHR_8bit_storage, spv::Spv_1_5); - addCapability(spv::CapabilityStorageBuffer8BitAccess); - } - if (containsType(type->getIdOperand(1), OpTypeInt, 16) || - containsType(type->getIdOperand(1), OpTypeFloat, 16)) { - addIncorporatedExtension(spv::E_SPV_KHR_16bit_storage, spv::Spv_1_3); - addCapability(spv::CapabilityStorageBuffer16BitAccess); - } - } - } - - // process all block-contained instructions - for (auto fi = module.getFunctions().cbegin(); fi != module.getFunctions().cend(); fi++) { - Function* f = *fi; - for (auto bi = f->getBlocks().cbegin(); bi != f->getBlocks().cend(); bi++) { - Block* b = *bi; - for (auto ii = b->getInstructions().cbegin(); ii != b->getInstructions().cend(); ii++) - postProcess(*ii->get()); - - // For all local variables that contain pointers to PhysicalStorageBufferEXT, check whether - // there is an existing restrict/aliased decoration. If we don't find one, add Aliased as the - // default. - for (auto vi = b->getLocalVariables().cbegin(); vi != b->getLocalVariables().cend(); vi++) { - const Instruction& inst = *vi->get(); - Id resultId = inst.getResultId(); - if (containsPhysicalStorageBufferOrArray(getDerefTypeId(resultId))) { - bool foundDecoration = false; - const auto function = [&](const std::unique_ptr& decoration) { - if (decoration.get()->getIdOperand(0) == resultId && - decoration.get()->getOpCode() == OpDecorate && - (decoration.get()->getImmediateOperand(1) == spv::DecorationAliasedPointerEXT || - decoration.get()->getImmediateOperand(1) == spv::DecorationRestrictPointerEXT)) { - foundDecoration = true; - } - }; - std::for_each(decorations.begin(), decorations.end(), function); - if (!foundDecoration) { - addDecoration(resultId, spv::DecorationAliasedPointerEXT); - } - } - } - } - } - - // If any Vulkan memory model-specific functionality is used, update the - // OpMemoryModel to match. - if (capabilities.find(spv::CapabilityVulkanMemoryModelKHR) != capabilities.end()) { - memoryModel = spv::MemoryModelVulkanKHR; - addIncorporatedExtension(spv::E_SPV_KHR_vulkan_memory_model, spv::Spv_1_5); - } - - // Add Aliased decoration if there's more than one Workgroup Block variable. - if (capabilities.find(spv::CapabilityWorkgroupMemoryExplicitLayoutKHR) != capabilities.end()) { - assert(entryPoints.size() == 1); - auto &ep = entryPoints[0]; - - std::vector workgroup_variables; - for (int i = 0; i < (int)ep->getNumOperands(); i++) { - if (!ep->isIdOperand(i)) - continue; - - const Id id = ep->getIdOperand(i); - const Instruction *instr = module.getInstruction(id); - if (instr->getOpCode() != spv::OpVariable) - continue; - - if (instr->getImmediateOperand(0) == spv::StorageClassWorkgroup) - workgroup_variables.push_back(id); - } - - if (workgroup_variables.size() > 1) { - for (size_t i = 0; i < workgroup_variables.size(); i++) - addDecoration(workgroup_variables[i], spv::DecorationAliased); - } - } -} -#endif - -// comment in header -void Builder::postProcess() { - postProcessCFG(); -#ifndef GLSLANG_WEB - postProcessFeatures(); -#endif -} - -}; // end spv namespace diff --git a/deps/glslang/SPIRV/SpvTools.cpp b/deps/glslang/SPIRV/SpvTools.cpp deleted file mode 100644 index 8cc17cca..00000000 --- a/deps/glslang/SPIRV/SpvTools.cpp +++ /dev/null @@ -1,247 +0,0 @@ -// -// Copyright (C) 2014-2016 LunarG, Inc. -// Copyright (C) 2018-2020 Google, Inc. -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// Neither the name of 3Dlabs Inc. Ltd. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. - -// -// Call into SPIRV-Tools to disassemble, validate, and optimize. -// - -#if ENABLE_OPT - -#include -#include - -#include "SpvTools.h" -#include "spirv-tools/optimizer.hpp" - -namespace glslang { - -// Translate glslang's view of target versioning to what SPIRV-Tools uses. -spv_target_env MapToSpirvToolsEnv(const SpvVersion& spvVersion, spv::SpvBuildLogger* logger) -{ - switch (spvVersion.vulkan) { - case glslang::EShTargetVulkan_1_0: - return spv_target_env::SPV_ENV_VULKAN_1_0; - case glslang::EShTargetVulkan_1_1: - switch (spvVersion.spv) { - case EShTargetSpv_1_0: - case EShTargetSpv_1_1: - case EShTargetSpv_1_2: - case EShTargetSpv_1_3: - return spv_target_env::SPV_ENV_VULKAN_1_1; - case EShTargetSpv_1_4: - return spv_target_env::SPV_ENV_VULKAN_1_1_SPIRV_1_4; - default: - logger->missingFunctionality("Target version for SPIRV-Tools validator"); - return spv_target_env::SPV_ENV_VULKAN_1_1; - } - case glslang::EShTargetVulkan_1_2: - return spv_target_env::SPV_ENV_VULKAN_1_2; - case glslang::EShTargetVulkan_1_3: - return spv_target_env::SPV_ENV_VULKAN_1_3; - default: - break; - } - - if (spvVersion.openGl > 0) - return spv_target_env::SPV_ENV_OPENGL_4_5; - - logger->missingFunctionality("Target version for SPIRV-Tools validator"); - return spv_target_env::SPV_ENV_UNIVERSAL_1_0; -} - -// Callback passed to spvtools::Optimizer::SetMessageConsumer -void OptimizerMesssageConsumer(spv_message_level_t level, const char *source, - const spv_position_t &position, const char *message) -{ - auto &out = std::cerr; - switch (level) - { - case SPV_MSG_FATAL: - case SPV_MSG_INTERNAL_ERROR: - case SPV_MSG_ERROR: - out << "error: "; - break; - case SPV_MSG_WARNING: - out << "warning: "; - break; - case SPV_MSG_INFO: - case SPV_MSG_DEBUG: - out << "info: "; - break; - default: - break; - } - if (source) - { - out << source << ":"; - } - out << position.line << ":" << position.column << ":" << position.index << ":"; - if (message) - { - out << " " << message; - } - out << std::endl; -} - -// Use the SPIRV-Tools disassembler to print SPIR-V using a SPV_ENV_UNIVERSAL_1_3 environment. -void SpirvToolsDisassemble(std::ostream& out, const std::vector& spirv) -{ - SpirvToolsDisassemble(out, spirv, spv_target_env::SPV_ENV_UNIVERSAL_1_3); -} - -// Use the SPIRV-Tools disassembler to print SPIR-V with a provided SPIR-V environment. -void SpirvToolsDisassemble(std::ostream& out, const std::vector& spirv, - spv_target_env requested_context) -{ - // disassemble - spv_context context = spvContextCreate(requested_context); - spv_text text; - spv_diagnostic diagnostic = nullptr; - spvBinaryToText(context, spirv.data(), spirv.size(), - SPV_BINARY_TO_TEXT_OPTION_FRIENDLY_NAMES | SPV_BINARY_TO_TEXT_OPTION_INDENT, - &text, &diagnostic); - - // dump - if (diagnostic == nullptr) - out << text->str; - else - spvDiagnosticPrint(diagnostic); - - // teardown - spvDiagnosticDestroy(diagnostic); - spvContextDestroy(context); -} - -// Apply the SPIRV-Tools validator to generated SPIR-V. -void SpirvToolsValidate(const glslang::TIntermediate& intermediate, std::vector& spirv, - spv::SpvBuildLogger* logger, bool prelegalization) -{ - // validate - spv_context context = spvContextCreate(MapToSpirvToolsEnv(intermediate.getSpv(), logger)); - spv_const_binary_t binary = { spirv.data(), spirv.size() }; - spv_diagnostic diagnostic = nullptr; - spv_validator_options options = spvValidatorOptionsCreate(); - spvValidatorOptionsSetRelaxBlockLayout(options, intermediate.usingHlslOffsets()); - spvValidatorOptionsSetBeforeHlslLegalization(options, prelegalization); - spvValidatorOptionsSetScalarBlockLayout(options, intermediate.usingScalarBlockLayout()); - spvValidatorOptionsSetWorkgroupScalarBlockLayout(options, intermediate.usingScalarBlockLayout()); - spvValidateWithOptions(context, options, &binary, &diagnostic); - - // report - if (diagnostic != nullptr) { - logger->error("SPIRV-Tools Validation Errors"); - logger->error(diagnostic->error); - } - - // tear down - spvValidatorOptionsDestroy(options); - spvDiagnosticDestroy(diagnostic); - spvContextDestroy(context); -} - -// Apply the SPIRV-Tools optimizer to generated SPIR-V. HLSL SPIR-V is legalized in the process. -void SpirvToolsTransform(const glslang::TIntermediate& intermediate, std::vector& spirv, - spv::SpvBuildLogger* logger, const SpvOptions* options) -{ - spv_target_env target_env = MapToSpirvToolsEnv(intermediate.getSpv(), logger); - - spvtools::Optimizer optimizer(target_env); - optimizer.SetMessageConsumer(OptimizerMesssageConsumer); - - // If debug (specifically source line info) is being generated, propagate - // line information into all SPIR-V instructions. This avoids loss of - // information when instructions are deleted or moved. Later, remove - // redundant information to minimize final SPRIR-V size. - if (options->stripDebugInfo) { - optimizer.RegisterPass(spvtools::CreateStripDebugInfoPass()); - } - optimizer.RegisterPass(spvtools::CreateWrapOpKillPass()); - optimizer.RegisterPass(spvtools::CreateDeadBranchElimPass()); - optimizer.RegisterPass(spvtools::CreateMergeReturnPass()); - optimizer.RegisterPass(spvtools::CreateInlineExhaustivePass()); - optimizer.RegisterPass(spvtools::CreateEliminateDeadFunctionsPass()); - optimizer.RegisterPass(spvtools::CreateScalarReplacementPass()); - optimizer.RegisterPass(spvtools::CreateLocalAccessChainConvertPass()); - optimizer.RegisterPass(spvtools::CreateLocalSingleBlockLoadStoreElimPass()); - optimizer.RegisterPass(spvtools::CreateLocalSingleStoreElimPass()); - optimizer.RegisterPass(spvtools::CreateSimplificationPass()); - optimizer.RegisterPass(spvtools::CreateAggressiveDCEPass()); - optimizer.RegisterPass(spvtools::CreateVectorDCEPass()); - optimizer.RegisterPass(spvtools::CreateDeadInsertElimPass()); - optimizer.RegisterPass(spvtools::CreateAggressiveDCEPass()); - optimizer.RegisterPass(spvtools::CreateDeadBranchElimPass()); - optimizer.RegisterPass(spvtools::CreateBlockMergePass()); - optimizer.RegisterPass(spvtools::CreateLocalMultiStoreElimPass()); - optimizer.RegisterPass(spvtools::CreateIfConversionPass()); - optimizer.RegisterPass(spvtools::CreateSimplificationPass()); - optimizer.RegisterPass(spvtools::CreateAggressiveDCEPass()); - optimizer.RegisterPass(spvtools::CreateVectorDCEPass()); - optimizer.RegisterPass(spvtools::CreateDeadInsertElimPass()); - optimizer.RegisterPass(spvtools::CreateInterpolateFixupPass()); - if (options->optimizeSize) { - optimizer.RegisterPass(spvtools::CreateRedundancyEliminationPass()); - optimizer.RegisterPass(spvtools::CreateEliminateDeadInputComponentsPass()); - } - optimizer.RegisterPass(spvtools::CreateAggressiveDCEPass()); - optimizer.RegisterPass(spvtools::CreateCFGCleanupPass()); - - spvtools::OptimizerOptions spvOptOptions; - optimizer.SetTargetEnv(MapToSpirvToolsEnv(intermediate.getSpv(), logger)); - spvOptOptions.set_run_validator(false); // The validator may run as a separate step later on - optimizer.Run(spirv.data(), spirv.size(), &spirv, spvOptOptions); -} - -// Apply the SPIRV-Tools optimizer to strip debug info from SPIR-V. This is implicitly done by -// SpirvToolsTransform if spvOptions->stripDebugInfo is set, but can be called separately if -// optimization is disabled. -void SpirvToolsStripDebugInfo(const glslang::TIntermediate& intermediate, - std::vector& spirv, spv::SpvBuildLogger* logger) -{ - spv_target_env target_env = MapToSpirvToolsEnv(intermediate.getSpv(), logger); - - spvtools::Optimizer optimizer(target_env); - optimizer.SetMessageConsumer(OptimizerMesssageConsumer); - - optimizer.RegisterPass(spvtools::CreateStripDebugInfoPass()); - - spvtools::OptimizerOptions spvOptOptions; - optimizer.SetTargetEnv(MapToSpirvToolsEnv(intermediate.getSpv(), logger)); - spvOptOptions.set_run_validator(false); // The validator may run as a separate step later on - optimizer.Run(spirv.data(), spirv.size(), &spirv, spvOptOptions); -} - -}; // end namespace glslang - -#endif diff --git a/deps/glslang/SPIRV/SpvTools.h b/deps/glslang/SPIRV/SpvTools.h deleted file mode 100644 index 3fb3cbac..00000000 --- a/deps/glslang/SPIRV/SpvTools.h +++ /dev/null @@ -1,93 +0,0 @@ -// -// Copyright (C) 2014-2016 LunarG, Inc. -// Copyright (C) 2018 Google, Inc. -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// Neither the name of 3Dlabs Inc. Ltd. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. - -// -// Call into SPIRV-Tools to disassemble, validate, and optimize. -// - -#pragma once -#ifndef GLSLANG_SPV_TOOLS_H -#define GLSLANG_SPV_TOOLS_H - -#if ENABLE_OPT -#include -#include -#include "spirv-tools/libspirv.h" -#endif - -#include "glslang/MachineIndependent/localintermediate.h" -#include "Logger.h" - -namespace glslang { - -struct SpvOptions { - SpvOptions() : generateDebugInfo(false), stripDebugInfo(false), disableOptimizer(true), - optimizeSize(false), disassemble(false), validate(false) { } - bool generateDebugInfo; - bool stripDebugInfo; - bool disableOptimizer; - bool optimizeSize; - bool disassemble; - bool validate; -}; - -#if ENABLE_OPT - -// Use the SPIRV-Tools disassembler to print SPIR-V using a SPV_ENV_UNIVERSAL_1_3 environment. -void SpirvToolsDisassemble(std::ostream& out, const std::vector& spirv); - -// Use the SPIRV-Tools disassembler to print SPIR-V with a provided SPIR-V environment. -void SpirvToolsDisassemble(std::ostream& out, const std::vector& spirv, - spv_target_env requested_context); - -// Apply the SPIRV-Tools validator to generated SPIR-V. -void SpirvToolsValidate(const glslang::TIntermediate& intermediate, std::vector& spirv, - spv::SpvBuildLogger*, bool prelegalization); - -// Apply the SPIRV-Tools optimizer to generated SPIR-V. HLSL SPIR-V is legalized in the process. -void SpirvToolsTransform(const glslang::TIntermediate& intermediate, std::vector& spirv, - spv::SpvBuildLogger*, const SpvOptions*); - -// Apply the SPIRV-Tools optimizer to strip debug info from SPIR-V. This is implicitly done by -// SpirvToolsTransform if spvOptions->stripDebugInfo is set, but can be called separately if -// optimization is disabled. -void SpirvToolsStripDebugInfo(const glslang::TIntermediate& intermediate, - std::vector& spirv, spv::SpvBuildLogger*); - -#endif - -} // end namespace glslang - -#endif // GLSLANG_SPV_TOOLS_H diff --git a/deps/glslang/SPIRV/bitutils.h b/deps/glslang/SPIRV/bitutils.h deleted file mode 100644 index 22e44cec..00000000 --- a/deps/glslang/SPIRV/bitutils.h +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright (c) 2015-2016 The Khronos Group Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#ifndef LIBSPIRV_UTIL_BITUTILS_H_ -#define LIBSPIRV_UTIL_BITUTILS_H_ - -#include -#include - -namespace spvutils { - -// Performs a bitwise copy of source to the destination type Dest. -template -Dest BitwiseCast(Src source) { - Dest dest; - static_assert(sizeof(source) == sizeof(dest), - "BitwiseCast: Source and destination must have the same size"); - std::memcpy(static_cast(&dest), &source, sizeof(dest)); - return dest; -} - -// SetBits returns an integer of type with bits set -// for position through , counting from the least -// significant bit. In particular when Num == 0, no positions are set to 1. -// A static assert will be triggered if First + Num > sizeof(T) * 8, that is, -// a bit that will not fit in the underlying type is set. -template -struct SetBits { - static_assert(First < sizeof(T) * 8, - "Tried to set a bit that is shifted too far."); - const static T get = (T(1) << First) | SetBits::get; -}; - -template -struct SetBits { - const static T get = T(0); -}; - -// This is all compile-time so we can put our tests right here. -static_assert(SetBits::get == uint32_t(0x00000000), - "SetBits failed"); -static_assert(SetBits::get == uint32_t(0x00000001), - "SetBits failed"); -static_assert(SetBits::get == uint32_t(0x80000000), - "SetBits failed"); -static_assert(SetBits::get == uint32_t(0x00000006), - "SetBits failed"); -static_assert(SetBits::get == uint32_t(0xc0000000), - "SetBits failed"); -static_assert(SetBits::get == uint32_t(0x7FFFFFFF), - "SetBits failed"); -static_assert(SetBits::get == uint32_t(0xFFFFFFFF), - "SetBits failed"); -static_assert(SetBits::get == uint32_t(0xFFFF0000), - "SetBits failed"); - -static_assert(SetBits::get == uint64_t(0x0000000000000001LL), - "SetBits failed"); -static_assert(SetBits::get == uint64_t(0x8000000000000000LL), - "SetBits failed"); -static_assert(SetBits::get == uint64_t(0xc000000000000000LL), - "SetBits failed"); -static_assert(SetBits::get == uint64_t(0x0000000080000000LL), - "SetBits failed"); -static_assert(SetBits::get == uint64_t(0x00000000FFFF0000LL), - "SetBits failed"); - -} // namespace spvutils - -#endif // LIBSPIRV_UTIL_BITUTILS_H_ diff --git a/deps/glslang/SPIRV/disassemble.cpp b/deps/glslang/SPIRV/disassemble.cpp deleted file mode 100644 index 74dd6054..00000000 --- a/deps/glslang/SPIRV/disassemble.cpp +++ /dev/null @@ -1,761 +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. -// - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "disassemble.h" -#include "doc.h" - -namespace spv { - extern "C" { - // Include C-based headers that don't have a namespace - #include "GLSL.std.450.h" - #include "GLSL.ext.AMD.h" - #include "GLSL.ext.NV.h" - } -} -const char* GlslStd450DebugNames[spv::GLSLstd450Count]; - -namespace spv { - -static const char* GLSLextAMDGetDebugNames(const char*, unsigned); -static const char* GLSLextNVGetDebugNames(const char*, unsigned); - -static void Kill(std::ostream& out, const char* message) -{ - out << std::endl << "Disassembly failed: " << message << std::endl; - exit(1); -} - -// used to identify the extended instruction library imported when printing -enum ExtInstSet { - GLSL450Inst, - GLSLextAMDInst, - GLSLextNVInst, - OpenCLExtInst, - NonSemanticDebugPrintfExtInst, -}; - -// Container class for a single instance of a SPIR-V stream, with methods for disassembly. -class SpirvStream { -public: - SpirvStream(std::ostream& out, const std::vector& stream) : out(out), stream(stream), word(0), nextNestedControl(0) { } - virtual ~SpirvStream() { } - - void validate(); - void processInstructions(); - -protected: - SpirvStream(const SpirvStream&); - SpirvStream& operator=(const SpirvStream&); - Op getOpCode(int id) const { return idInstruction[id] ? (Op)(stream[idInstruction[id]] & OpCodeMask) : OpNop; } - - // Output methods - void outputIndent(); - void formatId(Id id, std::stringstream&); - void outputResultId(Id id); - void outputTypeId(Id id); - void outputId(Id id); - void outputMask(OperandClass operandClass, unsigned mask); - void disassembleImmediates(int numOperands); - void disassembleIds(int numOperands); - std::pair decodeString(); - int disassembleString(); - void disassembleInstruction(Id resultId, Id typeId, Op opCode, int numOperands); - - // Data - std::ostream& out; // where to write the disassembly - const std::vector& stream; // the actual word stream - int size; // the size of the word stream - int word; // the next word of the stream to read - - // map each to the instruction that created it - Id bound; - std::vector idInstruction; // the word offset into the stream where the instruction for result [id] starts; 0 if not yet seen (forward reference or function parameter) - - std::vector idDescriptor; // the best text string known for explaining the - - // schema - unsigned int schema; - - // stack of structured-merge points - std::stack nestedControl; - Id nextNestedControl; // need a slight delay for when we are nested -}; - -void SpirvStream::validate() -{ - size = (int)stream.size(); - if (size < 4) - Kill(out, "stream is too short"); - - // Magic number - if (stream[word++] != MagicNumber) { - out << "Bad magic number"; - return; - } - - // Version - out << "// Module Version " << std::hex << stream[word++] << std::endl; - - // Generator's magic number - out << "// Generated by (magic number): " << std::hex << stream[word++] << std::dec << std::endl; - - // Result bound - bound = stream[word++]; - idInstruction.resize(bound); - idDescriptor.resize(bound); - out << "// Id's are bound by " << bound << std::endl; - out << std::endl; - - // Reserved schema, must be 0 for now - schema = stream[word++]; - if (schema != 0) - Kill(out, "bad schema, must be 0"); -} - -// Loop over all the instructions, in order, processing each. -// Boiler plate for each is handled here directly, the rest is dispatched. -void SpirvStream::processInstructions() -{ - // Instructions - while (word < size) { - int instructionStart = word; - - // Instruction wordCount and opcode - unsigned int firstWord = stream[word]; - unsigned wordCount = firstWord >> WordCountShift; - Op opCode = (Op)(firstWord & OpCodeMask); - int nextInst = word + wordCount; - ++word; - - // Presence of full instruction - if (nextInst > size) - Kill(out, "stream instruction terminated too early"); - - // Base for computing number of operands; will be updated as more is learned - unsigned numOperands = wordCount - 1; - - // Type - Id typeId = 0; - if (InstructionDesc[opCode].hasType()) { - typeId = stream[word++]; - --numOperands; - } - - // Result - Id resultId = 0; - if (InstructionDesc[opCode].hasResult()) { - resultId = stream[word++]; - --numOperands; - - // save instruction for future reference - idInstruction[resultId] = instructionStart; - } - - outputResultId(resultId); - outputTypeId(typeId); - outputIndent(); - - // Hand off the Op and all its operands - disassembleInstruction(resultId, typeId, opCode, numOperands); - if (word != nextInst) { - out << " ERROR, incorrect number of operands consumed. At " << word << " instead of " << nextInst << " instruction start was " << instructionStart; - word = nextInst; - } - out << std::endl; - } -} - -void SpirvStream::outputIndent() -{ - for (int i = 0; i < (int)nestedControl.size(); ++i) - out << " "; -} - -void SpirvStream::formatId(Id id, std::stringstream& idStream) -{ - if (id != 0) { - // On instructions with no IDs, this is called with "0", which does not - // have to be within ID bounds on null shaders. - if (id >= bound) - Kill(out, "Bad "); - - idStream << id; - if (idDescriptor[id].size() > 0) - idStream << "(" << idDescriptor[id] << ")"; - } -} - -void SpirvStream::outputResultId(Id id) -{ - const int width = 16; - std::stringstream idStream; - formatId(id, idStream); - out << std::setw(width) << std::right << idStream.str(); - if (id != 0) - out << ":"; - else - out << " "; - - if (nestedControl.size() && id == nestedControl.top()) - nestedControl.pop(); -} - -void SpirvStream::outputTypeId(Id id) -{ - const int width = 12; - std::stringstream idStream; - formatId(id, idStream); - out << std::setw(width) << std::right << idStream.str() << " "; -} - -void SpirvStream::outputId(Id id) -{ - if (id >= bound) - Kill(out, "Bad "); - - out << id; - if (idDescriptor[id].size() > 0) - out << "(" << idDescriptor[id] << ")"; -} - -void SpirvStream::outputMask(OperandClass operandClass, unsigned mask) -{ - if (mask == 0) - out << "None"; - else { - for (int m = 0; m < OperandClassParams[operandClass].ceiling; ++m) { - if (mask & (1 << m)) - out << OperandClassParams[operandClass].getName(m) << " "; - } - } -} - -void SpirvStream::disassembleImmediates(int numOperands) -{ - for (int i = 0; i < numOperands; ++i) { - out << stream[word++]; - if (i < numOperands - 1) - out << " "; - } -} - -void SpirvStream::disassembleIds(int numOperands) -{ - for (int i = 0; i < numOperands; ++i) { - outputId(stream[word++]); - if (i < numOperands - 1) - out << " "; - } -} - -// decode string from words at current position (non-consuming) -std::pair SpirvStream::decodeString() -{ - std::string res; - int wordPos = word; - char c; - bool done = false; - - do { - unsigned int content = stream[wordPos]; - for (int charCount = 0; charCount < 4; ++charCount) { - c = content & 0xff; - content >>= 8; - if (c == '\0') { - done = true; - break; - } - res += c; - } - ++wordPos; - } while(! done); - - return std::make_pair(wordPos - word, res); -} - -// return the number of operands consumed by the string -int SpirvStream::disassembleString() -{ - out << " \""; - - std::pair decoderes = decodeString(); - - out << decoderes.second; - out << "\""; - - word += decoderes.first; - - return decoderes.first; -} - -void SpirvStream::disassembleInstruction(Id resultId, Id /*typeId*/, Op opCode, int numOperands) -{ - // Process the opcode - - out << (OpcodeString(opCode) + 2); // leave out the "Op" - - if (opCode == OpLoopMerge || opCode == OpSelectionMerge) - nextNestedControl = stream[word]; - else if (opCode == OpBranchConditional || opCode == OpSwitch) { - if (nextNestedControl) { - nestedControl.push(nextNestedControl); - nextNestedControl = 0; - } - } else if (opCode == OpExtInstImport) { - idDescriptor[resultId] = decodeString().second; - } - else { - 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; - } - 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; - } - break; - case OpTypeBool: - idDescriptor[resultId] = "bool"; - break; - case OpTypeStruct: - idDescriptor[resultId] = "struct"; - break; - case OpTypePointer: - idDescriptor[resultId] = "ptr"; - break; - case OpTypeVector: - 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; - case 3: idDescriptor[resultId].append("3"); break; - case 4: idDescriptor[resultId].append("4"); break; - case 8: idDescriptor[resultId].append("8"); break; - case 16: idDescriptor[resultId].append("16"); break; - case 32: idDescriptor[resultId].append("32"); break; - default: break; - } - break; - default: - break; - } - } - } - - // Process the operands. Note, a new context-dependent set could be - // swapped in mid-traversal. - - // Handle images specially, so can put out helpful strings. - if (opCode == OpTypeImage) { - out << " "; - disassembleIds(1); - out << " " << DimensionString((Dim)stream[word++]); - out << (stream[word++] != 0 ? " depth" : ""); - out << (stream[word++] != 0 ? " array" : ""); - out << (stream[word++] != 0 ? " multi-sampled" : ""); - switch (stream[word++]) { - case 0: out << " runtime"; break; - case 1: out << " sampled"; break; - case 2: out << " nonsampled"; break; - } - out << " format:" << ImageFormatString((ImageFormat)stream[word++]); - - if (numOperands == 8) { - out << " " << AccessQualifierString(stream[word++]); - } - return; - } - - // Handle all the parameterized operands - for (int op = 0; op < InstructionDesc[opCode].operands.getNum() && numOperands > 0; ++op) { - out << " "; - OperandClass operandClass = InstructionDesc[opCode].operands.getClass(op); - switch (operandClass) { - case OperandId: - case OperandScope: - case OperandMemorySemantics: - disassembleIds(1); - --numOperands; - // Get names for printing "(XXX)" for readability, *after* this id - if (opCode == OpName) - idDescriptor[stream[word - 1]] = decodeString().second; - break; - case OperandVariableIds: - disassembleIds(numOperands); - return; - case OperandImageOperands: - outputMask(OperandImageOperands, stream[word++]); - --numOperands; - disassembleIds(numOperands); - return; - case OperandOptionalLiteral: - case OperandVariableLiterals: - if ((opCode == OpDecorate && stream[word - 1] == DecorationBuiltIn) || - (opCode == OpMemberDecorate && stream[word - 1] == DecorationBuiltIn)) { - out << BuiltInString(stream[word++]); - --numOperands; - ++op; - } - disassembleImmediates(numOperands); - return; - case OperandVariableIdLiteral: - while (numOperands > 0) { - out << std::endl; - outputResultId(0); - outputTypeId(0); - outputIndent(); - out << " Type "; - disassembleIds(1); - out << ", member "; - disassembleImmediates(1); - numOperands -= 2; - } - return; - case OperandVariableLiteralId: - while (numOperands > 0) { - out << std::endl; - outputResultId(0); - outputTypeId(0); - outputIndent(); - out << " case "; - disassembleImmediates(1); - out << ": "; - disassembleIds(1); - numOperands -= 2; - } - return; - case OperandLiteralNumber: - disassembleImmediates(1); - --numOperands; - if (opCode == OpExtInst) { - ExtInstSet extInstSet = GLSL450Inst; - const char* name = idDescriptor[stream[word - 2]].c_str(); - if (strcmp("OpenCL.std", name) == 0) { - extInstSet = OpenCLExtInst; - } else if (strcmp("OpenCL.DebugInfo.100", name) == 0) { - extInstSet = OpenCLExtInst; - } else if (strcmp("NonSemantic.DebugPrintf", name) == 0) { - extInstSet = NonSemanticDebugPrintfExtInst; - } else if (strcmp(spv::E_SPV_AMD_shader_ballot, name) == 0 || - strcmp(spv::E_SPV_AMD_shader_trinary_minmax, name) == 0 || - strcmp(spv::E_SPV_AMD_shader_explicit_vertex_parameter, name) == 0 || - strcmp(spv::E_SPV_AMD_gcn_shader, name) == 0) { - extInstSet = GLSLextAMDInst; - } 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 || - strcmp(spv::E_SPV_NV_fragment_shader_barycentric, name) == 0 || - strcmp(spv::E_SPV_NV_mesh_shader, name) == 0) { - extInstSet = GLSLextNVInst; - } - unsigned entrypoint = stream[word - 1]; - if (extInstSet == GLSL450Inst) { - if (entrypoint < GLSLstd450Count) { - out << "(" << GlslStd450DebugNames[entrypoint] << ")"; - } - } else if (extInstSet == GLSLextAMDInst) { - out << "(" << GLSLextAMDGetDebugNames(name, entrypoint) << ")"; - } - else if (extInstSet == GLSLextNVInst) { - out << "(" << GLSLextNVGetDebugNames(name, entrypoint) << ")"; - } else if (extInstSet == NonSemanticDebugPrintfExtInst) { - out << "(DebugPrintf)"; - } - } - break; - case OperandOptionalLiteralString: - case OperandLiteralString: - numOperands -= disassembleString(); - break; - case OperandVariableLiteralStrings: - while (numOperands > 0) - numOperands -= disassembleString(); - return; - case OperandMemoryAccess: - outputMask(OperandMemoryAccess, stream[word++]); - --numOperands; - // Aligned is the only memory access operand that uses an immediate - // value, and it is also the first operand that uses a value at all. - if (stream[word-1] & MemoryAccessAlignedMask) { - disassembleImmediates(1); - numOperands--; - if (numOperands) - out << " "; - } - disassembleIds(numOperands); - return; - default: - assert(operandClass >= OperandSource && operandClass < OperandOpcode); - - if (OperandClassParams[operandClass].bitmask) - outputMask(operandClass, stream[word++]); - else - out << OperandClassParams[operandClass].getName(stream[word++]); - --numOperands; - - break; - } - } - - return; -} - -static void GLSLstd450GetDebugNames(const char** names) -{ - for (int i = 0; i < GLSLstd450Count; ++i) - names[i] = "Unknown"; - - names[GLSLstd450Round] = "Round"; - names[GLSLstd450RoundEven] = "RoundEven"; - names[GLSLstd450Trunc] = "Trunc"; - names[GLSLstd450FAbs] = "FAbs"; - names[GLSLstd450SAbs] = "SAbs"; - names[GLSLstd450FSign] = "FSign"; - names[GLSLstd450SSign] = "SSign"; - names[GLSLstd450Floor] = "Floor"; - names[GLSLstd450Ceil] = "Ceil"; - names[GLSLstd450Fract] = "Fract"; - names[GLSLstd450Radians] = "Radians"; - names[GLSLstd450Degrees] = "Degrees"; - names[GLSLstd450Sin] = "Sin"; - names[GLSLstd450Cos] = "Cos"; - names[GLSLstd450Tan] = "Tan"; - names[GLSLstd450Asin] = "Asin"; - names[GLSLstd450Acos] = "Acos"; - names[GLSLstd450Atan] = "Atan"; - names[GLSLstd450Sinh] = "Sinh"; - names[GLSLstd450Cosh] = "Cosh"; - names[GLSLstd450Tanh] = "Tanh"; - names[GLSLstd450Asinh] = "Asinh"; - names[GLSLstd450Acosh] = "Acosh"; - names[GLSLstd450Atanh] = "Atanh"; - names[GLSLstd450Atan2] = "Atan2"; - names[GLSLstd450Pow] = "Pow"; - names[GLSLstd450Exp] = "Exp"; - names[GLSLstd450Log] = "Log"; - names[GLSLstd450Exp2] = "Exp2"; - names[GLSLstd450Log2] = "Log2"; - names[GLSLstd450Sqrt] = "Sqrt"; - names[GLSLstd450InverseSqrt] = "InverseSqrt"; - names[GLSLstd450Determinant] = "Determinant"; - names[GLSLstd450MatrixInverse] = "MatrixInverse"; - names[GLSLstd450Modf] = "Modf"; - names[GLSLstd450ModfStruct] = "ModfStruct"; - names[GLSLstd450FMin] = "FMin"; - names[GLSLstd450SMin] = "SMin"; - names[GLSLstd450UMin] = "UMin"; - names[GLSLstd450FMax] = "FMax"; - names[GLSLstd450SMax] = "SMax"; - names[GLSLstd450UMax] = "UMax"; - names[GLSLstd450FClamp] = "FClamp"; - names[GLSLstd450SClamp] = "SClamp"; - names[GLSLstd450UClamp] = "UClamp"; - names[GLSLstd450FMix] = "FMix"; - names[GLSLstd450Step] = "Step"; - names[GLSLstd450SmoothStep] = "SmoothStep"; - names[GLSLstd450Fma] = "Fma"; - names[GLSLstd450Frexp] = "Frexp"; - names[GLSLstd450FrexpStruct] = "FrexpStruct"; - names[GLSLstd450Ldexp] = "Ldexp"; - names[GLSLstd450PackSnorm4x8] = "PackSnorm4x8"; - names[GLSLstd450PackUnorm4x8] = "PackUnorm4x8"; - names[GLSLstd450PackSnorm2x16] = "PackSnorm2x16"; - names[GLSLstd450PackUnorm2x16] = "PackUnorm2x16"; - names[GLSLstd450PackHalf2x16] = "PackHalf2x16"; - names[GLSLstd450PackDouble2x32] = "PackDouble2x32"; - names[GLSLstd450UnpackSnorm2x16] = "UnpackSnorm2x16"; - names[GLSLstd450UnpackUnorm2x16] = "UnpackUnorm2x16"; - names[GLSLstd450UnpackHalf2x16] = "UnpackHalf2x16"; - names[GLSLstd450UnpackSnorm4x8] = "UnpackSnorm4x8"; - names[GLSLstd450UnpackUnorm4x8] = "UnpackUnorm4x8"; - names[GLSLstd450UnpackDouble2x32] = "UnpackDouble2x32"; - names[GLSLstd450Length] = "Length"; - names[GLSLstd450Distance] = "Distance"; - names[GLSLstd450Cross] = "Cross"; - names[GLSLstd450Normalize] = "Normalize"; - names[GLSLstd450FaceForward] = "FaceForward"; - names[GLSLstd450Reflect] = "Reflect"; - names[GLSLstd450Refract] = "Refract"; - names[GLSLstd450FindILsb] = "FindILsb"; - names[GLSLstd450FindSMsb] = "FindSMsb"; - names[GLSLstd450FindUMsb] = "FindUMsb"; - names[GLSLstd450InterpolateAtCentroid] = "InterpolateAtCentroid"; - names[GLSLstd450InterpolateAtSample] = "InterpolateAtSample"; - names[GLSLstd450InterpolateAtOffset] = "InterpolateAtOffset"; - names[GLSLstd450NMin] = "NMin"; - names[GLSLstd450NMax] = "NMax"; - names[GLSLstd450NClamp] = "NClamp"; -} - -static const char* GLSLextAMDGetDebugNames(const char* name, unsigned entrypoint) -{ - if (strcmp(name, spv::E_SPV_AMD_shader_ballot) == 0) { - switch (entrypoint) { - case SwizzleInvocationsAMD: return "SwizzleInvocationsAMD"; - case SwizzleInvocationsMaskedAMD: return "SwizzleInvocationsMaskedAMD"; - case WriteInvocationAMD: return "WriteInvocationAMD"; - case MbcntAMD: return "MbcntAMD"; - default: return "Bad"; - } - } else if (strcmp(name, spv::E_SPV_AMD_shader_trinary_minmax) == 0) { - switch (entrypoint) { - case FMin3AMD: return "FMin3AMD"; - case UMin3AMD: return "UMin3AMD"; - case SMin3AMD: return "SMin3AMD"; - case FMax3AMD: return "FMax3AMD"; - case UMax3AMD: return "UMax3AMD"; - case SMax3AMD: return "SMax3AMD"; - case FMid3AMD: return "FMid3AMD"; - case UMid3AMD: return "UMid3AMD"; - case SMid3AMD: return "SMid3AMD"; - default: return "Bad"; - } - } else if (strcmp(name, spv::E_SPV_AMD_shader_explicit_vertex_parameter) == 0) { - switch (entrypoint) { - case InterpolateAtVertexAMD: return "InterpolateAtVertexAMD"; - default: return "Bad"; - } - } - else if (strcmp(name, spv::E_SPV_AMD_gcn_shader) == 0) { - switch (entrypoint) { - case CubeFaceIndexAMD: return "CubeFaceIndexAMD"; - case CubeFaceCoordAMD: return "CubeFaceCoordAMD"; - case TimeAMD: return "TimeAMD"; - default: - break; - } - } - - return "Bad"; -} - -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(name, spv::E_SPV_NVX_multiview_per_view_attributes) == 0 || - strcmp(name, spv::E_SPV_NV_fragment_shader_barycentric) == 0 || - strcmp(name, spv::E_SPV_NV_mesh_shader) == 0 || - strcmp(name, spv::E_SPV_NV_shader_image_footprint) == 0) { - switch (entrypoint) { - // NV builtins - case BuiltInViewportMaskNV: return "ViewportMaskNV"; - case BuiltInSecondaryPositionNV: return "SecondaryPositionNV"; - case BuiltInSecondaryViewportMaskNV: return "SecondaryViewportMaskNV"; - case BuiltInPositionPerViewNV: return "PositionPerViewNV"; - case BuiltInViewportMaskPerViewNV: return "ViewportMaskPerViewNV"; - case BuiltInBaryCoordNV: return "BaryCoordNV"; - case BuiltInBaryCoordNoPerspNV: return "BaryCoordNoPerspNV"; - case BuiltInTaskCountNV: return "TaskCountNV"; - case BuiltInPrimitiveCountNV: return "PrimitiveCountNV"; - case BuiltInPrimitiveIndicesNV: return "PrimitiveIndicesNV"; - case BuiltInClipDistancePerViewNV: return "ClipDistancePerViewNV"; - case BuiltInCullDistancePerViewNV: return "CullDistancePerViewNV"; - case BuiltInLayerPerViewNV: return "LayerPerViewNV"; - case BuiltInMeshViewCountNV: return "MeshViewCountNV"; - case BuiltInMeshViewIndicesNV: return "MeshViewIndicesNV"; - - // NV Capabilities - case CapabilityGeometryShaderPassthroughNV: return "GeometryShaderPassthroughNV"; - case CapabilityShaderViewportMaskNV: return "ShaderViewportMaskNV"; - case CapabilityShaderStereoViewNV: return "ShaderStereoViewNV"; - case CapabilityPerViewAttributesNV: return "PerViewAttributesNV"; - case CapabilityFragmentBarycentricNV: return "FragmentBarycentricNV"; - case CapabilityMeshShadingNV: return "MeshShadingNV"; - case CapabilityImageFootprintNV: return "ImageFootprintNV"; - case CapabilitySampleMaskOverrideCoverageNV:return "SampleMaskOverrideCoverageNV"; - - // NV Decorations - case DecorationOverrideCoverageNV: return "OverrideCoverageNV"; - case DecorationPassthroughNV: return "PassthroughNV"; - case DecorationViewportRelativeNV: return "ViewportRelativeNV"; - case DecorationSecondaryViewportRelativeNV: return "SecondaryViewportRelativeNV"; - case DecorationPerVertexNV: return "PerVertexNV"; - case DecorationPerPrimitiveNV: return "PerPrimitiveNV"; - case DecorationPerViewNV: return "PerViewNV"; - case DecorationPerTaskNV: return "PerTaskNV"; - - default: return "Bad"; - } - } - return "Bad"; -} - -void Disassemble(std::ostream& out, const std::vector& stream) -{ - SpirvStream SpirvStream(out, stream); - spv::Parameterize(); - GLSLstd450GetDebugNames(GlslStd450DebugNames); - SpirvStream.validate(); - SpirvStream.processInstructions(); -} - -}; // end namespace spv diff --git a/deps/glslang/SPIRV/disassemble.h b/deps/glslang/SPIRV/disassemble.h deleted file mode 100644 index b6a46357..00000000 --- a/deps/glslang/SPIRV/disassemble.h +++ /dev/null @@ -1,53 +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 { - - // disassemble with glslang custom disassembler - void Disassemble(std::ostream& out, const std::vector&); - -} // end namespace spv - -#endif // disassembler_H diff --git a/deps/glslang/SPIRV/doc.cpp b/deps/glslang/SPIRV/doc.cpp deleted file mode 100644 index 9a569e0d..00000000 --- a/deps/glslang/SPIRV/doc.cpp +++ /dev/null @@ -1,3008 +0,0 @@ -// -// Copyright (C) 2014-2015 LunarG, Inc. -// Modifications Copyright (C) 2020 Advanced Micro Devices, 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: -// -// 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. - -// -// 1) Programmatically fill in instruction/operand information. -// This can be used for disassembly, printing documentation, etc. -// -// 2) Print documentation from this parameterization. -// - -#include "doc.h" - -#include -#include -#include - -namespace spv { - extern "C" { - // Include C-based headers that don't have a namespace - #include "GLSL.ext.KHR.h" - #include "GLSL.ext.EXT.h" - #include "GLSL.ext.AMD.h" - #include "GLSL.ext.NV.h" - } -} - -namespace spv { - -// -// Whole set of functions that translate enumerants to their text strings for -// 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. -// 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) -// - the number of bits consumed by the set of masks -// (for non-sparse mask enums, this is the number of enumerants) -// - -const char* SourceString(int source) -{ - switch (source) { - case 0: return "Unknown"; - case 1: return "ESSL"; - case 2: return "GLSL"; - case 3: return "OpenCL_C"; - case 4: return "OpenCL_CPP"; - case 5: return "HLSL"; - - default: return "Bad"; - } -} - -const char* ExecutionModelString(int model) -{ - switch (model) { - case 0: return "Vertex"; - case 1: return "TessellationControl"; - case 2: return "TessellationEvaluation"; - case 3: return "Geometry"; - case 4: return "Fragment"; - case 5: return "GLCompute"; - case 6: return "Kernel"; - case ExecutionModelTaskNV: return "TaskNV"; - case ExecutionModelMeshNV: return "MeshNV"; - - default: return "Bad"; - - case ExecutionModelRayGenerationKHR: return "RayGenerationKHR"; - case ExecutionModelIntersectionKHR: return "IntersectionKHR"; - case ExecutionModelAnyHitKHR: return "AnyHitKHR"; - case ExecutionModelClosestHitKHR: return "ClosestHitKHR"; - case ExecutionModelMissKHR: return "MissKHR"; - case ExecutionModelCallableKHR: return "CallableKHR"; - } -} - -const char* AddressingString(int addr) -{ - switch (addr) { - case 0: return "Logical"; - case 1: return "Physical32"; - case 2: return "Physical64"; - - case AddressingModelPhysicalStorageBuffer64EXT: return "PhysicalStorageBuffer64EXT"; - - default: return "Bad"; - } -} - -const char* MemoryString(int mem) -{ - switch (mem) { - case MemoryModelSimple: return "Simple"; - case MemoryModelGLSL450: return "GLSL450"; - case MemoryModelOpenCL: return "OpenCL"; - case MemoryModelVulkanKHR: return "VulkanKHR"; - - default: return "Bad"; - } -} - -const int ExecutionModeCeiling = 40; - -const char* ExecutionModeString(int mode) -{ - switch (mode) { - case 0: return "Invocations"; - case 1: return "SpacingEqual"; - case 2: return "SpacingFractionalEven"; - case 3: return "SpacingFractionalOdd"; - case 4: return "VertexOrderCw"; - case 5: return "VertexOrderCcw"; - case 6: return "PixelCenterInteger"; - case 7: return "OriginUpperLeft"; - case 8: return "OriginLowerLeft"; - case 9: return "EarlyFragmentTests"; - case 10: return "PointMode"; - case 11: return "Xfb"; - case 12: return "DepthReplacing"; - case 13: return "Bad"; - case 14: return "DepthGreater"; - case 15: return "DepthLess"; - case 16: return "DepthUnchanged"; - case 17: return "LocalSize"; - case 18: return "LocalSizeHint"; - case 19: return "InputPoints"; - case 20: return "InputLines"; - case 21: return "InputLinesAdjacency"; - case 22: return "Triangles"; - case 23: return "InputTrianglesAdjacency"; - case 24: return "Quads"; - case 25: return "Isolines"; - case 26: return "OutputVertices"; - case 27: return "OutputPoints"; - case 28: return "OutputLineStrip"; - case 29: return "OutputTriangleStrip"; - case 30: return "VecTypeHint"; - case 31: return "ContractionOff"; - case 32: return "Bad"; - - case ExecutionModeInitializer: return "Initializer"; - case ExecutionModeFinalizer: return "Finalizer"; - case ExecutionModeSubgroupSize: return "SubgroupSize"; - case ExecutionModeSubgroupsPerWorkgroup: return "SubgroupsPerWorkgroup"; - case ExecutionModeSubgroupsPerWorkgroupId: return "SubgroupsPerWorkgroupId"; - case ExecutionModeLocalSizeId: return "LocalSizeId"; - case ExecutionModeLocalSizeHintId: return "LocalSizeHintId"; - - case ExecutionModePostDepthCoverage: return "PostDepthCoverage"; - case ExecutionModeDenormPreserve: return "DenormPreserve"; - case ExecutionModeDenormFlushToZero: return "DenormFlushToZero"; - case ExecutionModeSignedZeroInfNanPreserve: return "SignedZeroInfNanPreserve"; - case ExecutionModeRoundingModeRTE: return "RoundingModeRTE"; - case ExecutionModeRoundingModeRTZ: return "RoundingModeRTZ"; - case ExecutionModeStencilRefReplacingEXT: return "StencilRefReplacingEXT"; - case ExecutionModeSubgroupUniformControlFlowKHR: return "SubgroupUniformControlFlow"; - - case ExecutionModeOutputLinesNV: return "OutputLinesNV"; - case ExecutionModeOutputPrimitivesNV: return "OutputPrimitivesNV"; - case ExecutionModeOutputTrianglesNV: return "OutputTrianglesNV"; - case ExecutionModeDerivativeGroupQuadsNV: return "DerivativeGroupQuadsNV"; - case ExecutionModeDerivativeGroupLinearNV: return "DerivativeGroupLinearNV"; - - case ExecutionModePixelInterlockOrderedEXT: return "PixelInterlockOrderedEXT"; - case ExecutionModePixelInterlockUnorderedEXT: return "PixelInterlockUnorderedEXT"; - case ExecutionModeSampleInterlockOrderedEXT: return "SampleInterlockOrderedEXT"; - case ExecutionModeSampleInterlockUnorderedEXT: return "SampleInterlockUnorderedEXT"; - case ExecutionModeShadingRateInterlockOrderedEXT: return "ShadingRateInterlockOrderedEXT"; - case ExecutionModeShadingRateInterlockUnorderedEXT: return "ShadingRateInterlockUnorderedEXT"; - - case ExecutionModeMaxWorkgroupSizeINTEL: return "MaxWorkgroupSizeINTEL"; - case ExecutionModeMaxWorkDimINTEL: return "MaxWorkDimINTEL"; - case ExecutionModeNoGlobalOffsetINTEL: return "NoGlobalOffsetINTEL"; - case ExecutionModeNumSIMDWorkitemsINTEL: return "NumSIMDWorkitemsINTEL"; - - case ExecutionModeCeiling: - default: return "Bad"; - } -} - -const char* StorageClassString(int StorageClass) -{ - switch (StorageClass) { - case 0: return "UniformConstant"; - case 1: return "Input"; - case 2: return "Uniform"; - case 3: return "Output"; - case 4: return "Workgroup"; - case 5: return "CrossWorkgroup"; - case 6: return "Private"; - case 7: return "Function"; - case 8: return "Generic"; - case 9: return "PushConstant"; - case 10: return "AtomicCounter"; - case 11: return "Image"; - case 12: return "StorageBuffer"; - - case StorageClassRayPayloadKHR: return "RayPayloadKHR"; - case StorageClassHitAttributeKHR: return "HitAttributeKHR"; - case StorageClassIncomingRayPayloadKHR: return "IncomingRayPayloadKHR"; - case StorageClassShaderRecordBufferKHR: return "ShaderRecordBufferKHR"; - case StorageClassCallableDataKHR: return "CallableDataKHR"; - case StorageClassIncomingCallableDataKHR: return "IncomingCallableDataKHR"; - - case StorageClassPhysicalStorageBufferEXT: return "PhysicalStorageBufferEXT"; - - default: return "Bad"; - } -} - -const int DecorationCeiling = 45; - -const char* DecorationString(int decoration) -{ - switch (decoration) { - case 0: return "RelaxedPrecision"; - case 1: return "SpecId"; - case 2: return "Block"; - case 3: return "BufferBlock"; - case 4: return "RowMajor"; - case 5: return "ColMajor"; - case 6: return "ArrayStride"; - case 7: return "MatrixStride"; - case 8: return "GLSLShared"; - case 9: return "GLSLPacked"; - case 10: return "CPacked"; - case 11: return "BuiltIn"; - case 12: return "Bad"; - case 13: return "NoPerspective"; - case 14: return "Flat"; - case 15: return "Patch"; - case 16: return "Centroid"; - case 17: return "Sample"; - case 18: return "Invariant"; - case 19: return "Restrict"; - case 20: return "Aliased"; - case 21: return "Volatile"; - case 22: return "Constant"; - case 23: return "Coherent"; - case 24: return "NonWritable"; - case 25: return "NonReadable"; - case 26: return "Uniform"; - case 27: return "Bad"; - case 28: return "SaturatedConversion"; - case 29: return "Stream"; - case 30: return "Location"; - case 31: return "Component"; - case 32: return "Index"; - case 33: return "Binding"; - case 34: return "DescriptorSet"; - case 35: return "Offset"; - case 36: return "XfbBuffer"; - case 37: return "XfbStride"; - case 38: return "FuncParamAttr"; - case 39: return "FP Rounding Mode"; - case 40: return "FP Fast Math Mode"; - case 41: return "Linkage Attributes"; - case 42: return "NoContraction"; - case 43: return "InputAttachmentIndex"; - case 44: return "Alignment"; - - case DecorationCeiling: - default: return "Bad"; - - case DecorationExplicitInterpAMD: return "ExplicitInterpAMD"; - case DecorationOverrideCoverageNV: return "OverrideCoverageNV"; - case DecorationPassthroughNV: return "PassthroughNV"; - case DecorationViewportRelativeNV: return "ViewportRelativeNV"; - case DecorationSecondaryViewportRelativeNV: return "SecondaryViewportRelativeNV"; - case DecorationPerPrimitiveNV: return "PerPrimitiveNV"; - case DecorationPerViewNV: return "PerViewNV"; - case DecorationPerTaskNV: return "PerTaskNV"; - case DecorationPerVertexNV: return "PerVertexNV"; - - case DecorationNonUniformEXT: return "DecorationNonUniformEXT"; - case DecorationHlslCounterBufferGOOGLE: return "DecorationHlslCounterBufferGOOGLE"; - case DecorationHlslSemanticGOOGLE: return "DecorationHlslSemanticGOOGLE"; - case DecorationRestrictPointerEXT: return "DecorationRestrictPointerEXT"; - case DecorationAliasedPointerEXT: return "DecorationAliasedPointerEXT"; - } -} - -const char* BuiltInString(int builtIn) -{ - switch (builtIn) { - case 0: return "Position"; - case 1: return "PointSize"; - case 2: return "Bad"; - case 3: return "ClipDistance"; - case 4: return "CullDistance"; - case 5: return "VertexId"; - case 6: return "InstanceId"; - case 7: return "PrimitiveId"; - case 8: return "InvocationId"; - case 9: return "Layer"; - case 10: return "ViewportIndex"; - case 11: return "TessLevelOuter"; - case 12: return "TessLevelInner"; - case 13: return "TessCoord"; - case 14: return "PatchVertices"; - case 15: return "FragCoord"; - case 16: return "PointCoord"; - case 17: return "FrontFacing"; - case 18: return "SampleId"; - case 19: return "SamplePosition"; - case 20: return "SampleMask"; - case 21: return "Bad"; - case 22: return "FragDepth"; - case 23: return "HelperInvocation"; - case 24: return "NumWorkgroups"; - case 25: return "WorkgroupSize"; - case 26: return "WorkgroupId"; - case 27: return "LocalInvocationId"; - case 28: return "GlobalInvocationId"; - case 29: return "LocalInvocationIndex"; - case 30: return "WorkDim"; - case 31: return "GlobalSize"; - case 32: return "EnqueuedWorkgroupSize"; - case 33: return "GlobalOffset"; - case 34: return "GlobalLinearId"; - case 35: return "Bad"; - case 36: return "SubgroupSize"; - case 37: return "SubgroupMaxSize"; - case 38: return "NumSubgroups"; - case 39: return "NumEnqueuedSubgroups"; - case 40: return "SubgroupId"; - case 41: return "SubgroupLocalInvocationId"; - case 42: return "VertexIndex"; // TBD: put next to VertexId? - case 43: return "InstanceIndex"; // TBD: put next to InstanceId? - - 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 4432: return "PrimitiveShadingRateKHR"; - case 4444: return "ShadingRateKHR"; - case 5014: return "FragStencilRefEXT"; - - case 4992: return "BaryCoordNoPerspAMD"; - case 4993: return "BaryCoordNoPerspCentroidAMD"; - case 4994: return "BaryCoordNoPerspSampleAMD"; - case 4995: return "BaryCoordSmoothAMD"; - case 4996: return "BaryCoordSmoothCentroidAMD"; - case 4997: return "BaryCoordSmoothSampleAMD"; - case 4998: return "BaryCoordPullModelAMD"; - case BuiltInLaunchIdKHR: return "LaunchIdKHR"; - case BuiltInLaunchSizeKHR: return "LaunchSizeKHR"; - case BuiltInWorldRayOriginKHR: return "WorldRayOriginKHR"; - case BuiltInWorldRayDirectionKHR: return "WorldRayDirectionKHR"; - case BuiltInObjectRayOriginKHR: return "ObjectRayOriginKHR"; - case BuiltInObjectRayDirectionKHR: return "ObjectRayDirectionKHR"; - case BuiltInRayTminKHR: return "RayTminKHR"; - case BuiltInRayTmaxKHR: return "RayTmaxKHR"; - case BuiltInInstanceCustomIndexKHR: return "InstanceCustomIndexKHR"; - case BuiltInRayGeometryIndexKHR: return "RayGeometryIndexKHR"; - case BuiltInObjectToWorldKHR: return "ObjectToWorldKHR"; - case BuiltInWorldToObjectKHR: return "WorldToObjectKHR"; - case BuiltInHitTNV: return "HitTNV"; - case BuiltInHitKindKHR: return "HitKindKHR"; - case BuiltInIncomingRayFlagsKHR: return "IncomingRayFlagsKHR"; - case BuiltInViewportMaskNV: return "ViewportMaskNV"; - case BuiltInSecondaryPositionNV: return "SecondaryPositionNV"; - case BuiltInSecondaryViewportMaskNV: return "SecondaryViewportMaskNV"; - case BuiltInPositionPerViewNV: return "PositionPerViewNV"; - case BuiltInViewportMaskPerViewNV: return "ViewportMaskPerViewNV"; -// case BuiltInFragmentSizeNV: return "FragmentSizeNV"; // superseded by BuiltInFragSizeEXT -// case BuiltInInvocationsPerPixelNV: return "InvocationsPerPixelNV"; // superseded by BuiltInFragInvocationCountEXT - case BuiltInBaryCoordNV: return "BaryCoordNV"; - case BuiltInBaryCoordNoPerspNV: return "BaryCoordNoPerspNV"; - - case BuiltInFragSizeEXT: return "FragSizeEXT"; - case BuiltInFragInvocationCountEXT: return "FragInvocationCountEXT"; - - case 5264: return "FullyCoveredEXT"; - - case BuiltInTaskCountNV: return "TaskCountNV"; - case BuiltInPrimitiveCountNV: return "PrimitiveCountNV"; - case BuiltInPrimitiveIndicesNV: return "PrimitiveIndicesNV"; - case BuiltInClipDistancePerViewNV: return "ClipDistancePerViewNV"; - case BuiltInCullDistancePerViewNV: return "CullDistancePerViewNV"; - case BuiltInLayerPerViewNV: return "LayerPerViewNV"; - case BuiltInMeshViewCountNV: return "MeshViewCountNV"; - case BuiltInMeshViewIndicesNV: return "MeshViewIndicesNV"; - case BuiltInWarpsPerSMNV: return "WarpsPerSMNV"; - case BuiltInSMCountNV: return "SMCountNV"; - case BuiltInWarpIDNV: return "WarpIDNV"; - case BuiltInSMIDNV: return "SMIDNV"; - case BuiltInCurrentRayTimeNV: return "CurrentRayTimeNV"; - - default: return "Bad"; - } -} - -const char* DimensionString(int dim) -{ - switch (dim) { - case 0: return "1D"; - case 1: return "2D"; - case 2: return "3D"; - case 3: return "Cube"; - case 4: return "Rect"; - case 5: return "Buffer"; - case 6: return "SubpassData"; - - default: return "Bad"; - } -} - -const char* SamplerAddressingModeString(int mode) -{ - switch (mode) { - case 0: return "None"; - case 1: return "ClampToEdge"; - case 2: return "Clamp"; - case 3: return "Repeat"; - case 4: return "RepeatMirrored"; - - default: return "Bad"; - } -} - -const char* SamplerFilterModeString(int mode) -{ - switch (mode) { - case 0: return "Nearest"; - case 1: return "Linear"; - - default: return "Bad"; - } -} - -const char* ImageFormatString(int format) -{ - switch (format) { - case 0: return "Unknown"; - - // ES/Desktop float - case 1: return "Rgba32f"; - case 2: return "Rgba16f"; - case 3: return "R32f"; - case 4: return "Rgba8"; - case 5: return "Rgba8Snorm"; - - // Desktop float - case 6: return "Rg32f"; - case 7: return "Rg16f"; - case 8: return "R11fG11fB10f"; - case 9: return "R16f"; - case 10: return "Rgba16"; - case 11: return "Rgb10A2"; - case 12: return "Rg16"; - case 13: return "Rg8"; - case 14: return "R16"; - case 15: return "R8"; - case 16: return "Rgba16Snorm"; - case 17: return "Rg16Snorm"; - case 18: return "Rg8Snorm"; - case 19: return "R16Snorm"; - case 20: return "R8Snorm"; - - // ES/Desktop int - case 21: return "Rgba32i"; - case 22: return "Rgba16i"; - case 23: return "Rgba8i"; - case 24: return "R32i"; - - // Desktop int - case 25: return "Rg32i"; - case 26: return "Rg16i"; - case 27: return "Rg8i"; - case 28: return "R16i"; - case 29: return "R8i"; - - // ES/Desktop uint - case 30: return "Rgba32ui"; - case 31: return "Rgba16ui"; - case 32: return "Rgba8ui"; - case 33: return "R32ui"; - - // Desktop uint - case 34: return "Rgb10a2ui"; - case 35: return "Rg32ui"; - case 36: return "Rg16ui"; - case 37: return "Rg8ui"; - case 38: return "R16ui"; - case 39: return "R8ui"; - case 40: return "R64ui"; - case 41: return "R64i"; - - default: - return "Bad"; - } -} - -const char* ImageChannelOrderString(int format) -{ - switch (format) { - case 0: return "R"; - case 1: return "A"; - case 2: return "RG"; - case 3: return "RA"; - case 4: return "RGB"; - case 5: return "RGBA"; - case 6: return "BGRA"; - case 7: return "ARGB"; - case 8: return "Intensity"; - case 9: return "Luminance"; - case 10: return "Rx"; - case 11: return "RGx"; - case 12: return "RGBx"; - case 13: return "Depth"; - case 14: return "DepthStencil"; - case 15: return "sRGB"; - case 16: return "sRGBx"; - case 17: return "sRGBA"; - case 18: return "sBGRA"; - - default: - return "Bad"; - } -} - -const char* ImageChannelDataTypeString(int type) -{ - switch (type) - { - case 0: return "SnormInt8"; - case 1: return "SnormInt16"; - case 2: return "UnormInt8"; - case 3: return "UnormInt16"; - case 4: return "UnormShort565"; - case 5: return "UnormShort555"; - case 6: return "UnormInt101010"; - case 7: return "SignedInt8"; - case 8: return "SignedInt16"; - case 9: return "SignedInt32"; - case 10: return "UnsignedInt8"; - case 11: return "UnsignedInt16"; - case 12: return "UnsignedInt32"; - case 13: return "HalfFloat"; - case 14: return "Float"; - case 15: return "UnormInt24"; - case 16: return "UnormInt101010_2"; - - default: - return "Bad"; - } -} - -const int ImageOperandsCeiling = 14; - -const char* ImageOperandsString(int format) -{ - switch (format) { - case ImageOperandsBiasShift: return "Bias"; - case ImageOperandsLodShift: return "Lod"; - case ImageOperandsGradShift: return "Grad"; - case ImageOperandsConstOffsetShift: return "ConstOffset"; - case ImageOperandsOffsetShift: return "Offset"; - case ImageOperandsConstOffsetsShift: return "ConstOffsets"; - case ImageOperandsSampleShift: return "Sample"; - case ImageOperandsMinLodShift: return "MinLod"; - case ImageOperandsMakeTexelAvailableKHRShift: return "MakeTexelAvailableKHR"; - case ImageOperandsMakeTexelVisibleKHRShift: return "MakeTexelVisibleKHR"; - case ImageOperandsNonPrivateTexelKHRShift: return "NonPrivateTexelKHR"; - case ImageOperandsVolatileTexelKHRShift: return "VolatileTexelKHR"; - case ImageOperandsSignExtendShift: return "SignExtend"; - case ImageOperandsZeroExtendShift: return "ZeroExtend"; - - case ImageOperandsCeiling: - default: - return "Bad"; - } -} - -const char* FPFastMathString(int mode) -{ - switch (mode) { - case 0: return "NotNaN"; - case 1: return "NotInf"; - case 2: return "NSZ"; - case 3: return "AllowRecip"; - case 4: return "Fast"; - - default: return "Bad"; - } -} - -const char* FPRoundingModeString(int mode) -{ - switch (mode) { - case 0: return "RTE"; - case 1: return "RTZ"; - case 2: return "RTP"; - case 3: return "RTN"; - - default: return "Bad"; - } -} - -const char* LinkageTypeString(int type) -{ - switch (type) { - case 0: return "Export"; - case 1: return "Import"; - - default: return "Bad"; - } -} - -const char* FuncParamAttrString(int attr) -{ - switch (attr) { - case 0: return "Zext"; - case 1: return "Sext"; - case 2: return "ByVal"; - case 3: return "Sret"; - case 4: return "NoAlias"; - case 5: return "NoCapture"; - case 6: return "NoWrite"; - case 7: return "NoReadWrite"; - - default: return "Bad"; - } -} - -const char* AccessQualifierString(int attr) -{ - switch (attr) { - case 0: return "ReadOnly"; - case 1: return "WriteOnly"; - case 2: return "ReadWrite"; - - default: return "Bad"; - } -} - -const int SelectControlCeiling = 2; - -const char* SelectControlString(int cont) -{ - switch (cont) { - case 0: return "Flatten"; - case 1: return "DontFlatten"; - - case SelectControlCeiling: - default: return "Bad"; - } -} - -const int LoopControlCeiling = LoopControlPartialCountShift + 1; - -const char* LoopControlString(int cont) -{ - switch (cont) { - case LoopControlUnrollShift: return "Unroll"; - case LoopControlDontUnrollShift: return "DontUnroll"; - case LoopControlDependencyInfiniteShift: return "DependencyInfinite"; - case LoopControlDependencyLengthShift: return "DependencyLength"; - case LoopControlMinIterationsShift: return "MinIterations"; - case LoopControlMaxIterationsShift: return "MaxIterations"; - case LoopControlIterationMultipleShift: return "IterationMultiple"; - case LoopControlPeelCountShift: return "PeelCount"; - case LoopControlPartialCountShift: return "PartialCount"; - - case LoopControlCeiling: - default: return "Bad"; - } -} - -const int FunctionControlCeiling = 4; - -const char* FunctionControlString(int cont) -{ - switch (cont) { - case 0: return "Inline"; - case 1: return "DontInline"; - case 2: return "Pure"; - case 3: return "Const"; - - case FunctionControlCeiling: - default: return "Bad"; - } -} - -const char* MemorySemanticsString(int mem) -{ - // Note: No bits set (None) means "Relaxed" - switch (mem) { - case 0: return "Bad"; // Note: this is a placeholder for 'Consume' - case 1: return "Acquire"; - case 2: return "Release"; - case 3: return "AcquireRelease"; - case 4: return "SequentiallyConsistent"; - case 5: return "Bad"; // Note: reserved for future expansion - case 6: return "UniformMemory"; - case 7: return "SubgroupMemory"; - case 8: return "WorkgroupMemory"; - case 9: return "CrossWorkgroupMemory"; - case 10: return "AtomicCounterMemory"; - case 11: return "ImageMemory"; - - default: return "Bad"; - } -} - -const int MemoryAccessCeiling = 6; - -const char* MemoryAccessString(int mem) -{ - switch (mem) { - case MemoryAccessVolatileShift: return "Volatile"; - case MemoryAccessAlignedShift: return "Aligned"; - case MemoryAccessNontemporalShift: return "Nontemporal"; - case MemoryAccessMakePointerAvailableKHRShift: return "MakePointerAvailableKHR"; - case MemoryAccessMakePointerVisibleKHRShift: return "MakePointerVisibleKHR"; - case MemoryAccessNonPrivatePointerKHRShift: return "NonPrivatePointerKHR"; - - default: return "Bad"; - } -} - -const char* ScopeString(int mem) -{ - switch (mem) { - case 0: return "CrossDevice"; - case 1: return "Device"; - case 2: return "Workgroup"; - case 3: return "Subgroup"; - case 4: return "Invocation"; - - default: return "Bad"; - } -} - -const char* GroupOperationString(int gop) -{ - - switch (gop) - { - case GroupOperationReduce: return "Reduce"; - case GroupOperationInclusiveScan: return "InclusiveScan"; - case GroupOperationExclusiveScan: return "ExclusiveScan"; - case GroupOperationClusteredReduce: return "ClusteredReduce"; - case GroupOperationPartitionedReduceNV: return "PartitionedReduceNV"; - case GroupOperationPartitionedInclusiveScanNV: return "PartitionedInclusiveScanNV"; - case GroupOperationPartitionedExclusiveScanNV: return "PartitionedExclusiveScanNV"; - - default: return "Bad"; - } -} - -const char* KernelEnqueueFlagsString(int flag) -{ - switch (flag) - { - case 0: return "NoWait"; - case 1: return "WaitKernel"; - case 2: return "WaitWorkGroup"; - - default: return "Bad"; - } -} - -const char* KernelProfilingInfoString(int info) -{ - switch (info) - { - case 0: return "CmdExecTime"; - - default: return "Bad"; - } -} - -const char* CapabilityString(int info) -{ - switch (info) - { - case 0: return "Matrix"; - case 1: return "Shader"; - case 2: return "Geometry"; - case 3: return "Tessellation"; - case 4: return "Addresses"; - case 5: return "Linkage"; - case 6: return "Kernel"; - case 7: return "Vector16"; - case 8: return "Float16Buffer"; - case 9: return "Float16"; - case 10: return "Float64"; - case 11: return "Int64"; - case 12: return "Int64Atomics"; - case 13: return "ImageBasic"; - case 14: return "ImageReadWrite"; - case 15: return "ImageMipmap"; - case 16: return "Bad"; - case 17: return "Pipes"; - case 18: return "Groups"; - case 19: return "DeviceEnqueue"; - case 20: return "LiteralSampler"; - case 21: return "AtomicStorage"; - case 22: return "Int16"; - case 23: return "TessellationPointSize"; - case 24: return "GeometryPointSize"; - case 25: return "ImageGatherExtended"; - case 26: return "Bad"; - case 27: return "StorageImageMultisample"; - case 28: return "UniformBufferArrayDynamicIndexing"; - case 29: return "SampledImageArrayDynamicIndexing"; - case 30: return "StorageBufferArrayDynamicIndexing"; - case 31: return "StorageImageArrayDynamicIndexing"; - case 32: return "ClipDistance"; - case 33: return "CullDistance"; - case 34: return "ImageCubeArray"; - case 35: return "SampleRateShading"; - case 36: return "ImageRect"; - case 37: return "SampledRect"; - case 38: return "GenericPointer"; - case 39: return "Int8"; - case 40: return "InputAttachment"; - case 41: return "SparseResidency"; - case 42: return "MinLod"; - case 43: return "Sampled1D"; - case 44: return "Image1D"; - case 45: return "SampledCubeArray"; - case 46: return "SampledBuffer"; - case 47: return "ImageBuffer"; - case 48: return "ImageMSArray"; - case 49: return "StorageImageExtendedFormats"; - case 50: return "ImageQuery"; - case 51: return "DerivativeControl"; - case 52: return "InterpolationFunction"; - case 53: return "TransformFeedback"; - case 54: return "GeometryStreams"; - 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 CapabilityStorageBuffer8BitAccess: return "StorageBuffer8BitAccess"; - case CapabilityUniformAndStorageBuffer8BitAccess: return "UniformAndStorageBuffer8BitAccess"; - case CapabilityStoragePushConstant8: return "StoragePushConstant8"; - - case CapabilityDeviceGroup: return "DeviceGroup"; - case CapabilityMultiView: return "MultiView"; - - case CapabilityDenormPreserve: return "DenormPreserve"; - case CapabilityDenormFlushToZero: return "DenormFlushToZero"; - case CapabilitySignedZeroInfNanPreserve: return "SignedZeroInfNanPreserve"; - case CapabilityRoundingModeRTE: return "RoundingModeRTE"; - case CapabilityRoundingModeRTZ: return "RoundingModeRTZ"; - - case CapabilityStencilExportEXT: return "StencilExportEXT"; - - case CapabilityFloat16ImageAMD: return "Float16ImageAMD"; - case CapabilityImageGatherBiasLodAMD: return "ImageGatherBiasLodAMD"; - case CapabilityFragmentMaskAMD: return "FragmentMaskAMD"; - case CapabilityImageReadWriteLodAMD: return "ImageReadWriteLodAMD"; - - case CapabilityAtomicStorageOps: return "AtomicStorageOps"; - - case CapabilitySampleMaskPostDepthCoverage: return "SampleMaskPostDepthCoverage"; - case CapabilityGeometryShaderPassthroughNV: return "GeometryShaderPassthroughNV"; - case CapabilityShaderViewportIndexLayerNV: return "ShaderViewportIndexLayerNV"; - case CapabilityShaderViewportMaskNV: return "ShaderViewportMaskNV"; - case CapabilityShaderStereoViewNV: return "ShaderStereoViewNV"; - case CapabilityPerViewAttributesNV: return "PerViewAttributesNV"; - case CapabilityGroupNonUniformPartitionedNV: return "GroupNonUniformPartitionedNV"; - case CapabilityRayTracingNV: return "RayTracingNV"; - case CapabilityRayTracingMotionBlurNV: return "RayTracingMotionBlurNV"; - case CapabilityRayTracingKHR: return "RayTracingKHR"; - case CapabilityRayQueryKHR: return "RayQueryKHR"; - case CapabilityRayTracingProvisionalKHR: return "RayTracingProvisionalKHR"; - case CapabilityRayTraversalPrimitiveCullingKHR: return "RayTraversalPrimitiveCullingKHR"; - case CapabilityComputeDerivativeGroupQuadsNV: return "ComputeDerivativeGroupQuadsNV"; - case CapabilityComputeDerivativeGroupLinearNV: return "ComputeDerivativeGroupLinearNV"; - case CapabilityFragmentBarycentricNV: return "FragmentBarycentricNV"; - case CapabilityMeshShadingNV: return "MeshShadingNV"; - case CapabilityImageFootprintNV: return "ImageFootprintNV"; -// case CapabilityShadingRateNV: return "ShadingRateNV"; // superseded by FragmentDensityEXT - case CapabilitySampleMaskOverrideCoverageNV: return "SampleMaskOverrideCoverageNV"; - case CapabilityFragmentDensityEXT: return "FragmentDensityEXT"; - - case CapabilityFragmentFullyCoveredEXT: return "FragmentFullyCoveredEXT"; - - case CapabilityShaderNonUniformEXT: return "ShaderNonUniformEXT"; - case CapabilityRuntimeDescriptorArrayEXT: return "RuntimeDescriptorArrayEXT"; - case CapabilityInputAttachmentArrayDynamicIndexingEXT: return "InputAttachmentArrayDynamicIndexingEXT"; - case CapabilityUniformTexelBufferArrayDynamicIndexingEXT: return "UniformTexelBufferArrayDynamicIndexingEXT"; - case CapabilityStorageTexelBufferArrayDynamicIndexingEXT: return "StorageTexelBufferArrayDynamicIndexingEXT"; - case CapabilityUniformBufferArrayNonUniformIndexingEXT: return "UniformBufferArrayNonUniformIndexingEXT"; - case CapabilitySampledImageArrayNonUniformIndexingEXT: return "SampledImageArrayNonUniformIndexingEXT"; - case CapabilityStorageBufferArrayNonUniformIndexingEXT: return "StorageBufferArrayNonUniformIndexingEXT"; - case CapabilityStorageImageArrayNonUniformIndexingEXT: return "StorageImageArrayNonUniformIndexingEXT"; - case CapabilityInputAttachmentArrayNonUniformIndexingEXT: return "InputAttachmentArrayNonUniformIndexingEXT"; - case CapabilityUniformTexelBufferArrayNonUniformIndexingEXT: return "UniformTexelBufferArrayNonUniformIndexingEXT"; - case CapabilityStorageTexelBufferArrayNonUniformIndexingEXT: return "StorageTexelBufferArrayNonUniformIndexingEXT"; - - case CapabilityVulkanMemoryModelKHR: return "VulkanMemoryModelKHR"; - case CapabilityVulkanMemoryModelDeviceScopeKHR: return "VulkanMemoryModelDeviceScopeKHR"; - - case CapabilityPhysicalStorageBufferAddressesEXT: return "PhysicalStorageBufferAddressesEXT"; - - case CapabilityVariablePointers: return "VariablePointers"; - - case CapabilityCooperativeMatrixNV: return "CooperativeMatrixNV"; - case CapabilityShaderSMBuiltinsNV: return "ShaderSMBuiltinsNV"; - - case CapabilityFragmentShaderSampleInterlockEXT: return "CapabilityFragmentShaderSampleInterlockEXT"; - case CapabilityFragmentShaderPixelInterlockEXT: return "CapabilityFragmentShaderPixelInterlockEXT"; - case CapabilityFragmentShaderShadingRateInterlockEXT: return "CapabilityFragmentShaderShadingRateInterlockEXT"; - - case CapabilityFragmentShadingRateKHR: return "FragmentShadingRateKHR"; - - case CapabilityDemoteToHelperInvocationEXT: return "DemoteToHelperInvocationEXT"; - case CapabilityShaderClockKHR: return "ShaderClockKHR"; - case CapabilityInt64ImageEXT: return "Int64ImageEXT"; - - case CapabilityIntegerFunctions2INTEL: return "CapabilityIntegerFunctions2INTEL"; - - case CapabilityAtomicFloat16AddEXT: return "AtomicFloat16AddEXT"; - case CapabilityAtomicFloat32AddEXT: return "AtomicFloat32AddEXT"; - case CapabilityAtomicFloat64AddEXT: return "AtomicFloat64AddEXT"; - case CapabilityAtomicFloat16MinMaxEXT: return "AtomicFloat16MinMaxEXT"; - case CapabilityAtomicFloat32MinMaxEXT: return "AtomicFloat32MinMaxEXT"; - case CapabilityAtomicFloat64MinMaxEXT: return "AtomicFloat64MinMaxEXT"; - - case CapabilityWorkgroupMemoryExplicitLayoutKHR: return "CapabilityWorkgroupMemoryExplicitLayoutKHR"; - case CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR: return "CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR"; - case CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR: return "CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR"; - - default: return "Bad"; - } -} - -const char* OpcodeString(int op) -{ - switch (op) { - case 0: return "OpNop"; - case 1: return "OpUndef"; - case 2: return "OpSourceContinued"; - case 3: return "OpSource"; - case 4: return "OpSourceExtension"; - case 5: return "OpName"; - case 6: return "OpMemberName"; - case 7: return "OpString"; - case 8: return "OpLine"; - case 9: return "Bad"; - case 10: return "OpExtension"; - case 11: return "OpExtInstImport"; - case 12: return "OpExtInst"; - case 13: return "Bad"; - case 14: return "OpMemoryModel"; - case 15: return "OpEntryPoint"; - case 16: return "OpExecutionMode"; - case 17: return "OpCapability"; - case 18: return "Bad"; - case 19: return "OpTypeVoid"; - case 20: return "OpTypeBool"; - case 21: return "OpTypeInt"; - case 22: return "OpTypeFloat"; - case 23: return "OpTypeVector"; - case 24: return "OpTypeMatrix"; - case 25: return "OpTypeImage"; - case 26: return "OpTypeSampler"; - case 27: return "OpTypeSampledImage"; - case 28: return "OpTypeArray"; - case 29: return "OpTypeRuntimeArray"; - case 30: return "OpTypeStruct"; - case 31: return "OpTypeOpaque"; - case 32: return "OpTypePointer"; - case 33: return "OpTypeFunction"; - case 34: return "OpTypeEvent"; - case 35: return "OpTypeDeviceEvent"; - case 36: return "OpTypeReserveId"; - case 37: return "OpTypeQueue"; - case 38: return "OpTypePipe"; - case 39: return "OpTypeForwardPointer"; - case 40: return "Bad"; - case 41: return "OpConstantTrue"; - case 42: return "OpConstantFalse"; - case 43: return "OpConstant"; - case 44: return "OpConstantComposite"; - case 45: return "OpConstantSampler"; - case 46: return "OpConstantNull"; - case 47: return "Bad"; - case 48: return "OpSpecConstantTrue"; - case 49: return "OpSpecConstantFalse"; - case 50: return "OpSpecConstant"; - case 51: return "OpSpecConstantComposite"; - case 52: return "OpSpecConstantOp"; - case 53: return "Bad"; - case 54: return "OpFunction"; - case 55: return "OpFunctionParameter"; - case 56: return "OpFunctionEnd"; - case 57: return "OpFunctionCall"; - case 58: return "Bad"; - case 59: return "OpVariable"; - case 60: return "OpImageTexelPointer"; - case 61: return "OpLoad"; - case 62: return "OpStore"; - case 63: return "OpCopyMemory"; - case 64: return "OpCopyMemorySized"; - case 65: return "OpAccessChain"; - case 66: return "OpInBoundsAccessChain"; - case 67: return "OpPtrAccessChain"; - case 68: return "OpArrayLength"; - case 69: return "OpGenericPtrMemSemantics"; - case 70: return "OpInBoundsPtrAccessChain"; - case 71: return "OpDecorate"; - case 72: return "OpMemberDecorate"; - case 73: return "OpDecorationGroup"; - case 74: return "OpGroupDecorate"; - case 75: return "OpGroupMemberDecorate"; - case 76: return "Bad"; - case 77: return "OpVectorExtractDynamic"; - case 78: return "OpVectorInsertDynamic"; - case 79: return "OpVectorShuffle"; - case 80: return "OpCompositeConstruct"; - case 81: return "OpCompositeExtract"; - case 82: return "OpCompositeInsert"; - case 83: return "OpCopyObject"; - case 84: return "OpTranspose"; - case OpCopyLogical: return "OpCopyLogical"; - case 85: return "Bad"; - case 86: return "OpSampledImage"; - case 87: return "OpImageSampleImplicitLod"; - case 88: return "OpImageSampleExplicitLod"; - case 89: return "OpImageSampleDrefImplicitLod"; - case 90: return "OpImageSampleDrefExplicitLod"; - case 91: return "OpImageSampleProjImplicitLod"; - case 92: return "OpImageSampleProjExplicitLod"; - case 93: return "OpImageSampleProjDrefImplicitLod"; - case 94: return "OpImageSampleProjDrefExplicitLod"; - case 95: return "OpImageFetch"; - case 96: return "OpImageGather"; - case 97: return "OpImageDrefGather"; - case 98: return "OpImageRead"; - case 99: return "OpImageWrite"; - case 100: return "OpImage"; - case 101: return "OpImageQueryFormat"; - case 102: return "OpImageQueryOrder"; - case 103: return "OpImageQuerySizeLod"; - case 104: return "OpImageQuerySize"; - case 105: return "OpImageQueryLod"; - case 106: return "OpImageQueryLevels"; - case 107: return "OpImageQuerySamples"; - case 108: return "Bad"; - case 109: return "OpConvertFToU"; - case 110: return "OpConvertFToS"; - case 111: return "OpConvertSToF"; - case 112: return "OpConvertUToF"; - case 113: return "OpUConvert"; - case 114: return "OpSConvert"; - case 115: return "OpFConvert"; - case 116: return "OpQuantizeToF16"; - case 117: return "OpConvertPtrToU"; - case 118: return "OpSatConvertSToU"; - case 119: return "OpSatConvertUToS"; - case 120: return "OpConvertUToPtr"; - case 121: return "OpPtrCastToGeneric"; - case 122: return "OpGenericCastToPtr"; - case 123: return "OpGenericCastToPtrExplicit"; - case 124: return "OpBitcast"; - case 125: return "Bad"; - case 126: return "OpSNegate"; - case 127: return "OpFNegate"; - case 128: return "OpIAdd"; - case 129: return "OpFAdd"; - case 130: return "OpISub"; - case 131: return "OpFSub"; - case 132: return "OpIMul"; - case 133: return "OpFMul"; - case 134: return "OpUDiv"; - case 135: return "OpSDiv"; - case 136: return "OpFDiv"; - case 137: return "OpUMod"; - case 138: return "OpSRem"; - case 139: return "OpSMod"; - case 140: return "OpFRem"; - case 141: return "OpFMod"; - case 142: return "OpVectorTimesScalar"; - case 143: return "OpMatrixTimesScalar"; - case 144: return "OpVectorTimesMatrix"; - case 145: return "OpMatrixTimesVector"; - case 146: return "OpMatrixTimesMatrix"; - case 147: return "OpOuterProduct"; - case 148: return "OpDot"; - case 149: return "OpIAddCarry"; - case 150: return "OpISubBorrow"; - case 151: return "OpUMulExtended"; - case 152: return "OpSMulExtended"; - case 153: return "Bad"; - case 154: return "OpAny"; - case 155: return "OpAll"; - case 156: return "OpIsNan"; - case 157: return "OpIsInf"; - case 158: return "OpIsFinite"; - case 159: return "OpIsNormal"; - case 160: return "OpSignBitSet"; - case 161: return "OpLessOrGreater"; - case 162: return "OpOrdered"; - case 163: return "OpUnordered"; - case 164: return "OpLogicalEqual"; - case 165: return "OpLogicalNotEqual"; - case 166: return "OpLogicalOr"; - case 167: return "OpLogicalAnd"; - case 168: return "OpLogicalNot"; - case 169: return "OpSelect"; - case 170: return "OpIEqual"; - case 171: return "OpINotEqual"; - case 172: return "OpUGreaterThan"; - case 173: return "OpSGreaterThan"; - case 174: return "OpUGreaterThanEqual"; - case 175: return "OpSGreaterThanEqual"; - case 176: return "OpULessThan"; - case 177: return "OpSLessThan"; - case 178: return "OpULessThanEqual"; - case 179: return "OpSLessThanEqual"; - case 180: return "OpFOrdEqual"; - case 181: return "OpFUnordEqual"; - case 182: return "OpFOrdNotEqual"; - case 183: return "OpFUnordNotEqual"; - case 184: return "OpFOrdLessThan"; - case 185: return "OpFUnordLessThan"; - case 186: return "OpFOrdGreaterThan"; - case 187: return "OpFUnordGreaterThan"; - case 188: return "OpFOrdLessThanEqual"; - case 189: return "OpFUnordLessThanEqual"; - case 190: return "OpFOrdGreaterThanEqual"; - case 191: return "OpFUnordGreaterThanEqual"; - case 192: return "Bad"; - case 193: return "Bad"; - case 194: return "OpShiftRightLogical"; - case 195: return "OpShiftRightArithmetic"; - case 196: return "OpShiftLeftLogical"; - case 197: return "OpBitwiseOr"; - case 198: return "OpBitwiseXor"; - case 199: return "OpBitwiseAnd"; - case 200: return "OpNot"; - case 201: return "OpBitFieldInsert"; - case 202: return "OpBitFieldSExtract"; - case 203: return "OpBitFieldUExtract"; - case 204: return "OpBitReverse"; - case 205: return "OpBitCount"; - case 206: return "Bad"; - case 207: return "OpDPdx"; - case 208: return "OpDPdy"; - case 209: return "OpFwidth"; - case 210: return "OpDPdxFine"; - case 211: return "OpDPdyFine"; - case 212: return "OpFwidthFine"; - case 213: return "OpDPdxCoarse"; - case 214: return "OpDPdyCoarse"; - case 215: return "OpFwidthCoarse"; - case 216: return "Bad"; - case 217: return "Bad"; - case 218: return "OpEmitVertex"; - case 219: return "OpEndPrimitive"; - case 220: return "OpEmitStreamVertex"; - case 221: return "OpEndStreamPrimitive"; - case 222: return "Bad"; - case 223: return "Bad"; - case 224: return "OpControlBarrier"; - case 225: return "OpMemoryBarrier"; - case 226: return "Bad"; - case 227: return "OpAtomicLoad"; - case 228: return "OpAtomicStore"; - case 229: return "OpAtomicExchange"; - case 230: return "OpAtomicCompareExchange"; - case 231: return "OpAtomicCompareExchangeWeak"; - case 232: return "OpAtomicIIncrement"; - case 233: return "OpAtomicIDecrement"; - case 234: return "OpAtomicIAdd"; - case 235: return "OpAtomicISub"; - case 236: return "OpAtomicSMin"; - case 237: return "OpAtomicUMin"; - case 238: return "OpAtomicSMax"; - case 239: return "OpAtomicUMax"; - case 240: return "OpAtomicAnd"; - case 241: return "OpAtomicOr"; - case 242: return "OpAtomicXor"; - case 243: return "Bad"; - case 244: return "Bad"; - case 245: return "OpPhi"; - case 246: return "OpLoopMerge"; - case 247: return "OpSelectionMerge"; - case 248: return "OpLabel"; - case 249: return "OpBranch"; - case 250: return "OpBranchConditional"; - case 251: return "OpSwitch"; - case 252: return "OpKill"; - case 253: return "OpReturn"; - case 254: return "OpReturnValue"; - case 255: return "OpUnreachable"; - case 256: return "OpLifetimeStart"; - case 257: return "OpLifetimeStop"; - case 258: return "Bad"; - case 259: return "OpGroupAsyncCopy"; - case 260: return "OpGroupWaitEvents"; - case 261: return "OpGroupAll"; - case 262: return "OpGroupAny"; - case 263: return "OpGroupBroadcast"; - case 264: return "OpGroupIAdd"; - case 265: return "OpGroupFAdd"; - case 266: return "OpGroupFMin"; - case 267: return "OpGroupUMin"; - case 268: return "OpGroupSMin"; - case 269: return "OpGroupFMax"; - case 270: return "OpGroupUMax"; - case 271: return "OpGroupSMax"; - case 272: return "Bad"; - case 273: return "Bad"; - case 274: return "OpReadPipe"; - case 275: return "OpWritePipe"; - case 276: return "OpReservedReadPipe"; - case 277: return "OpReservedWritePipe"; - case 278: return "OpReserveReadPipePackets"; - case 279: return "OpReserveWritePipePackets"; - case 280: return "OpCommitReadPipe"; - case 281: return "OpCommitWritePipe"; - case 282: return "OpIsValidReserveId"; - case 283: return "OpGetNumPipePackets"; - case 284: return "OpGetMaxPipePackets"; - case 285: return "OpGroupReserveReadPipePackets"; - case 286: return "OpGroupReserveWritePipePackets"; - case 287: return "OpGroupCommitReadPipe"; - case 288: return "OpGroupCommitWritePipe"; - case 289: return "Bad"; - case 290: return "Bad"; - case 291: return "OpEnqueueMarker"; - case 292: return "OpEnqueueKernel"; - case 293: return "OpGetKernelNDrangeSubGroupCount"; - case 294: return "OpGetKernelNDrangeMaxSubGroupSize"; - case 295: return "OpGetKernelWorkGroupSize"; - case 296: return "OpGetKernelPreferredWorkGroupSizeMultiple"; - case 297: return "OpRetainEvent"; - case 298: return "OpReleaseEvent"; - case 299: return "OpCreateUserEvent"; - case 300: return "OpIsValidEvent"; - case 301: return "OpSetUserEventStatus"; - case 302: return "OpCaptureEventProfilingInfo"; - case 303: return "OpGetDefaultQueue"; - case 304: return "OpBuildNDRange"; - case 305: return "OpImageSparseSampleImplicitLod"; - case 306: return "OpImageSparseSampleExplicitLod"; - case 307: return "OpImageSparseSampleDrefImplicitLod"; - case 308: return "OpImageSparseSampleDrefExplicitLod"; - case 309: return "OpImageSparseSampleProjImplicitLod"; - case 310: return "OpImageSparseSampleProjExplicitLod"; - case 311: return "OpImageSparseSampleProjDrefImplicitLod"; - case 312: return "OpImageSparseSampleProjDrefExplicitLod"; - case 313: return "OpImageSparseFetch"; - case 314: return "OpImageSparseGather"; - case 315: return "OpImageSparseDrefGather"; - case 316: return "OpImageSparseTexelsResident"; - case 317: return "OpNoLine"; - case 318: return "OpAtomicFlagTestAndSet"; - case 319: return "OpAtomicFlagClear"; - case 320: return "OpImageSparseRead"; - - case OpModuleProcessed: return "OpModuleProcessed"; - case OpExecutionModeId: return "OpExecutionModeId"; - 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 OpTerminateInvocation: return "OpTerminateInvocation"; - - case 4421: return "OpSubgroupBallotKHR"; - case 4422: return "OpSubgroupFirstInvocationKHR"; - case 4428: return "OpSubgroupAllKHR"; - case 4429: return "OpSubgroupAnyKHR"; - case 4430: return "OpSubgroupAllEqualKHR"; - case 4432: return "OpSubgroupReadInvocationKHR"; - - case OpAtomicFAddEXT: return "OpAtomicFAddEXT"; - case OpAtomicFMinEXT: return "OpAtomicFMinEXT"; - case OpAtomicFMaxEXT: return "OpAtomicFMaxEXT"; - - case 5000: return "OpGroupIAddNonUniformAMD"; - case 5001: return "OpGroupFAddNonUniformAMD"; - case 5002: return "OpGroupFMinNonUniformAMD"; - case 5003: return "OpGroupUMinNonUniformAMD"; - case 5004: return "OpGroupSMinNonUniformAMD"; - case 5005: return "OpGroupFMaxNonUniformAMD"; - case 5006: return "OpGroupUMaxNonUniformAMD"; - case 5007: return "OpGroupSMaxNonUniformAMD"; - - case 5011: return "OpFragmentMaskFetchAMD"; - case 5012: return "OpFragmentFetchAMD"; - - case OpReadClockKHR: return "OpReadClockKHR"; - - case OpDecorateStringGOOGLE: return "OpDecorateStringGOOGLE"; - case OpMemberDecorateStringGOOGLE: return "OpMemberDecorateStringGOOGLE"; - - case OpReportIntersectionKHR: return "OpReportIntersectionKHR"; - case OpIgnoreIntersectionNV: return "OpIgnoreIntersectionNV"; - case OpIgnoreIntersectionKHR: return "OpIgnoreIntersectionKHR"; - case OpTerminateRayNV: return "OpTerminateRayNV"; - case OpTerminateRayKHR: return "OpTerminateRayKHR"; - case OpTraceNV: return "OpTraceNV"; - case OpTraceRayMotionNV: return "OpTraceRayMotionNV"; - case OpTraceRayKHR: return "OpTraceRayKHR"; - case OpTypeAccelerationStructureKHR: return "OpTypeAccelerationStructureKHR"; - case OpExecuteCallableNV: return "OpExecuteCallableNV"; - case OpExecuteCallableKHR: return "OpExecuteCallableKHR"; - case OpConvertUToAccelerationStructureKHR: return "OpConvertUToAccelerationStructureKHR"; - - case OpGroupNonUniformPartitionNV: return "OpGroupNonUniformPartitionNV"; - case OpImageSampleFootprintNV: return "OpImageSampleFootprintNV"; - case OpWritePackedPrimitiveIndices4x8NV: return "OpWritePackedPrimitiveIndices4x8NV"; - - case OpTypeRayQueryKHR: return "OpTypeRayQueryKHR"; - case OpRayQueryInitializeKHR: return "OpRayQueryInitializeKHR"; - case OpRayQueryTerminateKHR: return "OpRayQueryTerminateKHR"; - case OpRayQueryGenerateIntersectionKHR: return "OpRayQueryGenerateIntersectionKHR"; - case OpRayQueryConfirmIntersectionKHR: return "OpRayQueryConfirmIntersectionKHR"; - case OpRayQueryProceedKHR: return "OpRayQueryProceedKHR"; - case OpRayQueryGetIntersectionTypeKHR: return "OpRayQueryGetIntersectionTypeKHR"; - case OpRayQueryGetRayTMinKHR: return "OpRayQueryGetRayTMinKHR"; - case OpRayQueryGetRayFlagsKHR: return "OpRayQueryGetRayFlagsKHR"; - case OpRayQueryGetIntersectionTKHR: return "OpRayQueryGetIntersectionTKHR"; - case OpRayQueryGetIntersectionInstanceCustomIndexKHR: return "OpRayQueryGetIntersectionInstanceCustomIndexKHR"; - case OpRayQueryGetIntersectionInstanceIdKHR: return "OpRayQueryGetIntersectionInstanceIdKHR"; - case OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: return "OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR"; - case OpRayQueryGetIntersectionGeometryIndexKHR: return "OpRayQueryGetIntersectionGeometryIndexKHR"; - case OpRayQueryGetIntersectionPrimitiveIndexKHR: return "OpRayQueryGetIntersectionPrimitiveIndexKHR"; - case OpRayQueryGetIntersectionBarycentricsKHR: return "OpRayQueryGetIntersectionBarycentricsKHR"; - case OpRayQueryGetIntersectionFrontFaceKHR: return "OpRayQueryGetIntersectionFrontFaceKHR"; - case OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: return "OpRayQueryGetIntersectionCandidateAABBOpaqueKHR"; - case OpRayQueryGetIntersectionObjectRayDirectionKHR: return "OpRayQueryGetIntersectionObjectRayDirectionKHR"; - case OpRayQueryGetIntersectionObjectRayOriginKHR: return "OpRayQueryGetIntersectionObjectRayOriginKHR"; - case OpRayQueryGetWorldRayDirectionKHR: return "OpRayQueryGetWorldRayDirectionKHR"; - case OpRayQueryGetWorldRayOriginKHR: return "OpRayQueryGetWorldRayOriginKHR"; - case OpRayQueryGetIntersectionObjectToWorldKHR: return "OpRayQueryGetIntersectionObjectToWorldKHR"; - case OpRayQueryGetIntersectionWorldToObjectKHR: return "OpRayQueryGetIntersectionWorldToObjectKHR"; - - case OpTypeCooperativeMatrixNV: return "OpTypeCooperativeMatrixNV"; - case OpCooperativeMatrixLoadNV: return "OpCooperativeMatrixLoadNV"; - case OpCooperativeMatrixStoreNV: return "OpCooperativeMatrixStoreNV"; - case OpCooperativeMatrixMulAddNV: return "OpCooperativeMatrixMulAddNV"; - case OpCooperativeMatrixLengthNV: return "OpCooperativeMatrixLengthNV"; - case OpDemoteToHelperInvocationEXT: return "OpDemoteToHelperInvocationEXT"; - case OpIsHelperInvocationEXT: return "OpIsHelperInvocationEXT"; - - case OpBeginInvocationInterlockEXT: return "OpBeginInvocationInterlockEXT"; - case OpEndInvocationInterlockEXT: return "OpEndInvocationInterlockEXT"; - - default: - return "Bad"; - } -} - -// The set of objects that hold all the instruction/operand -// parameterization information. -InstructionParameters InstructionDesc[OpCodeMask + 1]; -OperandParameters ExecutionModeOperands[ExecutionModeCeiling]; -OperandParameters DecorationOperands[DecorationCeiling]; - -EnumDefinition OperandClassParams[OperandCount]; -EnumParameters ExecutionModeParams[ExecutionModeCeiling]; -EnumParameters ImageOperandsParams[ImageOperandsCeiling]; -EnumParameters DecorationParams[DecorationCeiling]; -EnumParameters LoopControlParams[FunctionControlCeiling]; -EnumParameters SelectionControlParams[SelectControlCeiling]; -EnumParameters FunctionControlParams[FunctionControlCeiling]; -EnumParameters MemoryAccessParams[MemoryAccessCeiling]; - -// Set up all the parameterizing descriptions of the opcodes, operands, etc. -void Parameterize() -{ - // only do this once. - static bool initialized = false; - if (initialized) - return; - initialized = true; - - // Exceptions to having a result and a resulting type . - // (Everything is initialized to have both). - - InstructionDesc[OpNop].setResultAndType(false, false); - InstructionDesc[OpSource].setResultAndType(false, false); - InstructionDesc[OpSourceContinued].setResultAndType(false, false); - InstructionDesc[OpSourceExtension].setResultAndType(false, false); - InstructionDesc[OpExtension].setResultAndType(false, false); - InstructionDesc[OpExtInstImport].setResultAndType(true, false); - InstructionDesc[OpCapability].setResultAndType(false, false); - InstructionDesc[OpMemoryModel].setResultAndType(false, false); - InstructionDesc[OpEntryPoint].setResultAndType(false, false); - InstructionDesc[OpExecutionMode].setResultAndType(false, false); - InstructionDesc[OpExecutionModeId].setResultAndType(false, false); - InstructionDesc[OpTypeVoid].setResultAndType(true, false); - InstructionDesc[OpTypeBool].setResultAndType(true, false); - InstructionDesc[OpTypeInt].setResultAndType(true, false); - InstructionDesc[OpTypeFloat].setResultAndType(true, false); - InstructionDesc[OpTypeVector].setResultAndType(true, false); - InstructionDesc[OpTypeMatrix].setResultAndType(true, false); - InstructionDesc[OpTypeImage].setResultAndType(true, false); - InstructionDesc[OpTypeSampler].setResultAndType(true, false); - InstructionDesc[OpTypeSampledImage].setResultAndType(true, false); - InstructionDesc[OpTypeArray].setResultAndType(true, false); - InstructionDesc[OpTypeRuntimeArray].setResultAndType(true, false); - InstructionDesc[OpTypeStruct].setResultAndType(true, false); - InstructionDesc[OpTypeOpaque].setResultAndType(true, false); - InstructionDesc[OpTypePointer].setResultAndType(true, false); - InstructionDesc[OpTypeForwardPointer].setResultAndType(false, false); - InstructionDesc[OpTypeFunction].setResultAndType(true, false); - InstructionDesc[OpTypeEvent].setResultAndType(true, false); - InstructionDesc[OpTypeDeviceEvent].setResultAndType(true, false); - InstructionDesc[OpTypeReserveId].setResultAndType(true, false); - InstructionDesc[OpTypeQueue].setResultAndType(true, false); - InstructionDesc[OpTypePipe].setResultAndType(true, false); - InstructionDesc[OpFunctionEnd].setResultAndType(false, false); - InstructionDesc[OpStore].setResultAndType(false, false); - 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); - InstructionDesc[OpMemberName].setResultAndType(false, false); - InstructionDesc[OpString].setResultAndType(true, false); - InstructionDesc[OpLine].setResultAndType(false, false); - InstructionDesc[OpNoLine].setResultAndType(false, false); - InstructionDesc[OpCopyMemory].setResultAndType(false, false); - InstructionDesc[OpCopyMemorySized].setResultAndType(false, false); - InstructionDesc[OpEmitVertex].setResultAndType(false, false); - InstructionDesc[OpEndPrimitive].setResultAndType(false, false); - InstructionDesc[OpEmitStreamVertex].setResultAndType(false, false); - InstructionDesc[OpEndStreamPrimitive].setResultAndType(false, false); - InstructionDesc[OpControlBarrier].setResultAndType(false, false); - InstructionDesc[OpMemoryBarrier].setResultAndType(false, false); - InstructionDesc[OpAtomicStore].setResultAndType(false, false); - InstructionDesc[OpLoopMerge].setResultAndType(false, false); - InstructionDesc[OpSelectionMerge].setResultAndType(false, false); - InstructionDesc[OpLabel].setResultAndType(true, false); - InstructionDesc[OpBranch].setResultAndType(false, false); - InstructionDesc[OpBranchConditional].setResultAndType(false, false); - InstructionDesc[OpSwitch].setResultAndType(false, false); - InstructionDesc[OpKill].setResultAndType(false, false); - InstructionDesc[OpTerminateInvocation].setResultAndType(false, false); - InstructionDesc[OpReturn].setResultAndType(false, false); - InstructionDesc[OpReturnValue].setResultAndType(false, false); - InstructionDesc[OpUnreachable].setResultAndType(false, false); - InstructionDesc[OpLifetimeStart].setResultAndType(false, false); - InstructionDesc[OpLifetimeStop].setResultAndType(false, false); - InstructionDesc[OpCommitReadPipe].setResultAndType(false, false); - InstructionDesc[OpCommitWritePipe].setResultAndType(false, false); - InstructionDesc[OpGroupCommitWritePipe].setResultAndType(false, false); - InstructionDesc[OpGroupCommitReadPipe].setResultAndType(false, false); - InstructionDesc[OpCaptureEventProfilingInfo].setResultAndType(false, false); - InstructionDesc[OpSetUserEventStatus].setResultAndType(false, false); - InstructionDesc[OpRetainEvent].setResultAndType(false, false); - InstructionDesc[OpReleaseEvent].setResultAndType(false, false); - InstructionDesc[OpGroupWaitEvents].setResultAndType(false, false); - InstructionDesc[OpAtomicFlagClear].setResultAndType(false, false); - InstructionDesc[OpModuleProcessed].setResultAndType(false, false); - InstructionDesc[OpTypeCooperativeMatrixNV].setResultAndType(true, false); - InstructionDesc[OpCooperativeMatrixStoreNV].setResultAndType(false, false); - InstructionDesc[OpBeginInvocationInterlockEXT].setResultAndType(false, false); - InstructionDesc[OpEndInvocationInterlockEXT].setResultAndType(false, false); - - // Specific additional context-dependent operands - - ExecutionModeOperands[ExecutionModeInvocations].push(OperandLiteralNumber, "'Number of <>'"); - - ExecutionModeOperands[ExecutionModeLocalSize].push(OperandLiteralNumber, "'x size'"); - ExecutionModeOperands[ExecutionModeLocalSize].push(OperandLiteralNumber, "'y size'"); - ExecutionModeOperands[ExecutionModeLocalSize].push(OperandLiteralNumber, "'z size'"); - - ExecutionModeOperands[ExecutionModeLocalSizeHint].push(OperandLiteralNumber, "'x size'"); - ExecutionModeOperands[ExecutionModeLocalSizeHint].push(OperandLiteralNumber, "'y size'"); - ExecutionModeOperands[ExecutionModeLocalSizeHint].push(OperandLiteralNumber, "'z size'"); - - ExecutionModeOperands[ExecutionModeOutputVertices].push(OperandLiteralNumber, "'Vertex count'"); - ExecutionModeOperands[ExecutionModeVecTypeHint].push(OperandLiteralNumber, "'Vector type'"); - - DecorationOperands[DecorationStream].push(OperandLiteralNumber, "'Stream Number'"); - DecorationOperands[DecorationLocation].push(OperandLiteralNumber, "'Location'"); - DecorationOperands[DecorationComponent].push(OperandLiteralNumber, "'Component'"); - DecorationOperands[DecorationIndex].push(OperandLiteralNumber, "'Index'"); - DecorationOperands[DecorationBinding].push(OperandLiteralNumber, "'Binding Point'"); - DecorationOperands[DecorationDescriptorSet].push(OperandLiteralNumber, "'Descriptor Set'"); - DecorationOperands[DecorationOffset].push(OperandLiteralNumber, "'Byte Offset'"); - DecorationOperands[DecorationXfbBuffer].push(OperandLiteralNumber, "'XFB Buffer Number'"); - DecorationOperands[DecorationXfbStride].push(OperandLiteralNumber, "'XFB Stride'"); - DecorationOperands[DecorationArrayStride].push(OperandLiteralNumber, "'Array Stride'"); - DecorationOperands[DecorationMatrixStride].push(OperandLiteralNumber, "'Matrix Stride'"); - DecorationOperands[DecorationBuiltIn].push(OperandLiteralNumber, "See <>"); - DecorationOperands[DecorationFPRoundingMode].push(OperandFPRoundingMode, "'Floating-Point Rounding Mode'"); - DecorationOperands[DecorationFPFastMathMode].push(OperandFPFastMath, "'Fast-Math Mode'"); - DecorationOperands[DecorationLinkageAttributes].push(OperandLiteralString, "'Name'"); - DecorationOperands[DecorationLinkageAttributes].push(OperandLinkageType, "'Linkage Type'"); - DecorationOperands[DecorationFuncParamAttr].push(OperandFuncParamAttr, "'Function Parameter Attribute'"); - DecorationOperands[DecorationSpecId].push(OperandLiteralNumber, "'Specialization Constant ID'"); - 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[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[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[OperandDecoration].set(DecorationCeiling, DecorationString, DecorationParams); - OperandClassParams[OperandDecoration].setOperands(DecorationOperands); - 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(0, MemorySemanticsString, nullptr, true); - OperandClassParams[OperandMemoryAccess].set(MemoryAccessCeiling, MemoryAccessString, MemoryAccessParams, 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 - - InstructionDesc[OpSource].operands.push(OperandSource, ""); - InstructionDesc[OpSource].operands.push(OperandLiteralNumber, "'Version'"); - InstructionDesc[OpSource].operands.push(OperandId, "'File'", true); - InstructionDesc[OpSource].operands.push(OperandLiteralString, "'Source'", true); - - InstructionDesc[OpSourceContinued].operands.push(OperandLiteralString, "'Continued Source'"); - - InstructionDesc[OpSourceExtension].operands.push(OperandLiteralString, "'Extension'"); - - InstructionDesc[OpName].operands.push(OperandId, "'Target'"); - InstructionDesc[OpName].operands.push(OperandLiteralString, "'Name'"); - - InstructionDesc[OpMemberName].operands.push(OperandId, "'Type'"); - InstructionDesc[OpMemberName].operands.push(OperandLiteralNumber, "'Member'"); - InstructionDesc[OpMemberName].operands.push(OperandLiteralString, "'Name'"); - - InstructionDesc[OpString].operands.push(OperandLiteralString, "'String'"); - - InstructionDesc[OpLine].operands.push(OperandId, "'File'"); - InstructionDesc[OpLine].operands.push(OperandLiteralNumber, "'Line'"); - InstructionDesc[OpLine].operands.push(OperandLiteralNumber, "'Column'"); - - InstructionDesc[OpExtension].operands.push(OperandLiteralString, "'Name'"); - - InstructionDesc[OpExtInstImport].operands.push(OperandLiteralString, "'Name'"); - - InstructionDesc[OpCapability].operands.push(OperandCapability, "'Capability'"); - - InstructionDesc[OpMemoryModel].operands.push(OperandAddressing, ""); - InstructionDesc[OpMemoryModel].operands.push(OperandMemory, ""); - - InstructionDesc[OpEntryPoint].operands.push(OperandExecutionModel, ""); - InstructionDesc[OpEntryPoint].operands.push(OperandId, "'Entry Point'"); - InstructionDesc[OpEntryPoint].operands.push(OperandLiteralString, "'Name'"); - InstructionDesc[OpEntryPoint].operands.push(OperandVariableIds, "'Interface'"); - - InstructionDesc[OpExecutionMode].operands.push(OperandId, "'Entry Point'"); - InstructionDesc[OpExecutionMode].operands.push(OperandExecutionMode, "'Mode'"); - InstructionDesc[OpExecutionMode].operands.push(OperandOptionalLiteral, "See <>"); - - InstructionDesc[OpExecutionModeId].operands.push(OperandId, "'Entry Point'"); - InstructionDesc[OpExecutionModeId].operands.push(OperandExecutionMode, "'Mode'"); - InstructionDesc[OpExecutionModeId].operands.push(OperandVariableIds, "See <>"); - - InstructionDesc[OpTypeInt].operands.push(OperandLiteralNumber, "'Width'"); - InstructionDesc[OpTypeInt].operands.push(OperandLiteralNumber, "'Signedness'"); - - InstructionDesc[OpTypeFloat].operands.push(OperandLiteralNumber, "'Width'"); - - InstructionDesc[OpTypeVector].operands.push(OperandId, "'Component Type'"); - InstructionDesc[OpTypeVector].operands.push(OperandLiteralNumber, "'Component Count'"); - - InstructionDesc[OpTypeMatrix].operands.push(OperandId, "'Column Type'"); - InstructionDesc[OpTypeMatrix].operands.push(OperandLiteralNumber, "'Column Count'"); - - InstructionDesc[OpTypeImage].operands.push(OperandId, "'Sampled Type'"); - InstructionDesc[OpTypeImage].operands.push(OperandDimensionality, ""); - InstructionDesc[OpTypeImage].operands.push(OperandLiteralNumber, "'Depth'"); - InstructionDesc[OpTypeImage].operands.push(OperandLiteralNumber, "'Arrayed'"); - InstructionDesc[OpTypeImage].operands.push(OperandLiteralNumber, "'MS'"); - InstructionDesc[OpTypeImage].operands.push(OperandLiteralNumber, "'Sampled'"); - InstructionDesc[OpTypeImage].operands.push(OperandSamplerImageFormat, ""); - InstructionDesc[OpTypeImage].operands.push(OperandAccessQualifier, "", true); - - InstructionDesc[OpTypeSampledImage].operands.push(OperandId, "'Image Type'"); - - InstructionDesc[OpTypeArray].operands.push(OperandId, "'Element Type'"); - InstructionDesc[OpTypeArray].operands.push(OperandId, "'Length'"); - - InstructionDesc[OpTypeRuntimeArray].operands.push(OperandId, "'Element Type'"); - - InstructionDesc[OpTypeStruct].operands.push(OperandVariableIds, "'Member 0 type', +\n'member 1 type', +\n..."); - - InstructionDesc[OpTypeOpaque].operands.push(OperandLiteralString, "The name of the opaque type."); - - InstructionDesc[OpTypePointer].operands.push(OperandStorage, ""); - InstructionDesc[OpTypePointer].operands.push(OperandId, "'Type'"); - - InstructionDesc[OpTypeForwardPointer].operands.push(OperandId, "'Pointer Type'"); - InstructionDesc[OpTypeForwardPointer].operands.push(OperandStorage, ""); - - InstructionDesc[OpTypePipe].operands.push(OperandAccessQualifier, "'Qualifier'"); - - InstructionDesc[OpTypeFunction].operands.push(OperandId, "'Return Type'"); - InstructionDesc[OpTypeFunction].operands.push(OperandVariableIds, "'Parameter 0 Type', +\n'Parameter 1 Type', +\n..."); - - InstructionDesc[OpConstant].operands.push(OperandVariableLiterals, "'Value'"); - - InstructionDesc[OpConstantComposite].operands.push(OperandVariableIds, "'Constituents'"); - - InstructionDesc[OpConstantSampler].operands.push(OperandSamplerAddressingMode, ""); - InstructionDesc[OpConstantSampler].operands.push(OperandLiteralNumber, "'Param'"); - InstructionDesc[OpConstantSampler].operands.push(OperandSamplerFilterMode, ""); - - InstructionDesc[OpSpecConstant].operands.push(OperandVariableLiterals, "'Value'"); - - InstructionDesc[OpSpecConstantComposite].operands.push(OperandVariableIds, "'Constituents'"); - - InstructionDesc[OpSpecConstantOp].operands.push(OperandLiteralNumber, "'Opcode'"); - InstructionDesc[OpSpecConstantOp].operands.push(OperandVariableIds, "'Operands'"); - - InstructionDesc[OpVariable].operands.push(OperandStorage, ""); - InstructionDesc[OpVariable].operands.push(OperandId, "'Initializer'", true); - - InstructionDesc[OpFunction].operands.push(OperandFunction, ""); - InstructionDesc[OpFunction].operands.push(OperandId, "'Function Type'"); - - InstructionDesc[OpFunctionCall].operands.push(OperandId, "'Function'"); - InstructionDesc[OpFunctionCall].operands.push(OperandVariableIds, "'Argument 0', +\n'Argument 1', +\n..."); - - InstructionDesc[OpExtInst].operands.push(OperandId, "'Set'"); - InstructionDesc[OpExtInst].operands.push(OperandLiteralNumber, "'Instruction'"); - InstructionDesc[OpExtInst].operands.push(OperandVariableIds, "'Operand 1', +\n'Operand 2', +\n..."); - - InstructionDesc[OpLoad].operands.push(OperandId, "'Pointer'"); - InstructionDesc[OpLoad].operands.push(OperandMemoryAccess, "", true); - InstructionDesc[OpLoad].operands.push(OperandLiteralNumber, "", true); - InstructionDesc[OpLoad].operands.push(OperandId, "", true); - - InstructionDesc[OpStore].operands.push(OperandId, "'Pointer'"); - InstructionDesc[OpStore].operands.push(OperandId, "'Object'"); - InstructionDesc[OpStore].operands.push(OperandMemoryAccess, "", true); - InstructionDesc[OpStore].operands.push(OperandLiteralNumber, "", true); - InstructionDesc[OpStore].operands.push(OperandId, "", true); - - InstructionDesc[OpPhi].operands.push(OperandVariableIds, "'Variable, Parent, ...'"); - - InstructionDesc[OpDecorate].operands.push(OperandId, "'Target'"); - 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(OperandVariableLiteralStrings, "'Literal Strings'"); - - 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(OperandVariableLiteralStrings, "'Literal Strings'"); - - InstructionDesc[OpGroupDecorate].operands.push(OperandId, "'Decoration Group'"); - InstructionDesc[OpGroupDecorate].operands.push(OperandVariableIds, "'Targets'"); - - InstructionDesc[OpGroupMemberDecorate].operands.push(OperandId, "'Decoration Group'"); - InstructionDesc[OpGroupMemberDecorate].operands.push(OperandVariableIdLiteral, "'Targets'"); - - InstructionDesc[OpVectorExtractDynamic].operands.push(OperandId, "'Vector'"); - InstructionDesc[OpVectorExtractDynamic].operands.push(OperandId, "'Index'"); - - InstructionDesc[OpVectorInsertDynamic].operands.push(OperandId, "'Vector'"); - InstructionDesc[OpVectorInsertDynamic].operands.push(OperandId, "'Component'"); - InstructionDesc[OpVectorInsertDynamic].operands.push(OperandId, "'Index'"); - - InstructionDesc[OpVectorShuffle].operands.push(OperandId, "'Vector 1'"); - InstructionDesc[OpVectorShuffle].operands.push(OperandId, "'Vector 2'"); - InstructionDesc[OpVectorShuffle].operands.push(OperandVariableLiterals, "'Components'"); - - InstructionDesc[OpCompositeConstruct].operands.push(OperandVariableIds, "'Constituents'"); - - InstructionDesc[OpCompositeExtract].operands.push(OperandId, "'Composite'"); - InstructionDesc[OpCompositeExtract].operands.push(OperandVariableLiterals, "'Indexes'"); - - InstructionDesc[OpCompositeInsert].operands.push(OperandId, "'Object'"); - InstructionDesc[OpCompositeInsert].operands.push(OperandId, "'Composite'"); - InstructionDesc[OpCompositeInsert].operands.push(OperandVariableLiterals, "'Indexes'"); - - InstructionDesc[OpCopyObject].operands.push(OperandId, "'Operand'"); - - InstructionDesc[OpCopyMemory].operands.push(OperandId, "'Target'"); - InstructionDesc[OpCopyMemory].operands.push(OperandId, "'Source'"); - InstructionDesc[OpCopyMemory].operands.push(OperandMemoryAccess, "", true); - - InstructionDesc[OpCopyMemorySized].operands.push(OperandId, "'Target'"); - InstructionDesc[OpCopyMemorySized].operands.push(OperandId, "'Source'"); - InstructionDesc[OpCopyMemorySized].operands.push(OperandId, "'Size'"); - InstructionDesc[OpCopyMemorySized].operands.push(OperandMemoryAccess, "", true); - - InstructionDesc[OpSampledImage].operands.push(OperandId, "'Image'"); - InstructionDesc[OpSampledImage].operands.push(OperandId, "'Sampler'"); - - InstructionDesc[OpImage].operands.push(OperandId, "'Sampled Image'"); - - InstructionDesc[OpImageRead].operands.push(OperandId, "'Image'"); - InstructionDesc[OpImageRead].operands.push(OperandId, "'Coordinate'"); - InstructionDesc[OpImageRead].operands.push(OperandImageOperands, "", true); - InstructionDesc[OpImageRead].operands.push(OperandVariableIds, "", true); - - InstructionDesc[OpImageWrite].operands.push(OperandId, "'Image'"); - InstructionDesc[OpImageWrite].operands.push(OperandId, "'Coordinate'"); - InstructionDesc[OpImageWrite].operands.push(OperandId, "'Texel'"); - InstructionDesc[OpImageWrite].operands.push(OperandImageOperands, "", true); - InstructionDesc[OpImageWrite].operands.push(OperandVariableIds, "", true); - - InstructionDesc[OpImageSampleImplicitLod].operands.push(OperandId, "'Sampled Image'"); - InstructionDesc[OpImageSampleImplicitLod].operands.push(OperandId, "'Coordinate'"); - InstructionDesc[OpImageSampleImplicitLod].operands.push(OperandImageOperands, "", true); - InstructionDesc[OpImageSampleImplicitLod].operands.push(OperandVariableIds, "", true); - - InstructionDesc[OpImageSampleExplicitLod].operands.push(OperandId, "'Sampled Image'"); - InstructionDesc[OpImageSampleExplicitLod].operands.push(OperandId, "'Coordinate'"); - InstructionDesc[OpImageSampleExplicitLod].operands.push(OperandImageOperands, "", true); - InstructionDesc[OpImageSampleExplicitLod].operands.push(OperandVariableIds, "", true); - - InstructionDesc[OpImageSampleDrefImplicitLod].operands.push(OperandId, "'Sampled Image'"); - InstructionDesc[OpImageSampleDrefImplicitLod].operands.push(OperandId, "'Coordinate'"); - InstructionDesc[OpImageSampleDrefImplicitLod].operands.push(OperandId, "'D~ref~'"); - InstructionDesc[OpImageSampleDrefImplicitLod].operands.push(OperandImageOperands, "", true); - InstructionDesc[OpImageSampleDrefImplicitLod].operands.push(OperandVariableIds, "", true); - - 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[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[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[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[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[OpImageFetch].operands.push(OperandId, "'Image'"); - InstructionDesc[OpImageFetch].operands.push(OperandId, "'Coordinate'"); - InstructionDesc[OpImageFetch].operands.push(OperandImageOperands, "", true); - InstructionDesc[OpImageFetch].operands.push(OperandVariableIds, "", true); - - InstructionDesc[OpImageGather].operands.push(OperandId, "'Sampled Image'"); - InstructionDesc[OpImageGather].operands.push(OperandId, "'Coordinate'"); - InstructionDesc[OpImageGather].operands.push(OperandId, "'Component'"); - InstructionDesc[OpImageGather].operands.push(OperandImageOperands, "", true); - InstructionDesc[OpImageGather].operands.push(OperandVariableIds, "", true); - - 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[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[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[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[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[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[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[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[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[OpImageSparseFetch].operands.push(OperandId, "'Image'"); - InstructionDesc[OpImageSparseFetch].operands.push(OperandId, "'Coordinate'"); - InstructionDesc[OpImageSparseFetch].operands.push(OperandImageOperands, "", true); - InstructionDesc[OpImageSparseFetch].operands.push(OperandVariableIds, "", true); - - 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[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[OpImageSparseRead].operands.push(OperandId, "'Image'"); - InstructionDesc[OpImageSparseRead].operands.push(OperandId, "'Coordinate'"); - InstructionDesc[OpImageSparseRead].operands.push(OperandImageOperands, "", true); - InstructionDesc[OpImageSparseRead].operands.push(OperandVariableIds, "", true); - - InstructionDesc[OpImageSparseTexelsResident].operands.push(OperandId, "'Resident Code'"); - - InstructionDesc[OpImageQuerySizeLod].operands.push(OperandId, "'Image'"); - InstructionDesc[OpImageQuerySizeLod].operands.push(OperandId, "'Level of Detail'"); - - InstructionDesc[OpImageQuerySize].operands.push(OperandId, "'Image'"); - - InstructionDesc[OpImageQueryLod].operands.push(OperandId, "'Image'"); - InstructionDesc[OpImageQueryLod].operands.push(OperandId, "'Coordinate'"); - - InstructionDesc[OpImageQueryLevels].operands.push(OperandId, "'Image'"); - - InstructionDesc[OpImageQuerySamples].operands.push(OperandId, "'Image'"); - - InstructionDesc[OpImageQueryFormat].operands.push(OperandId, "'Image'"); - - InstructionDesc[OpImageQueryOrder].operands.push(OperandId, "'Image'"); - - InstructionDesc[OpAccessChain].operands.push(OperandId, "'Base'"); - InstructionDesc[OpAccessChain].operands.push(OperandVariableIds, "'Indexes'"); - - InstructionDesc[OpInBoundsAccessChain].operands.push(OperandId, "'Base'"); - InstructionDesc[OpInBoundsAccessChain].operands.push(OperandVariableIds, "'Indexes'"); - - InstructionDesc[OpPtrAccessChain].operands.push(OperandId, "'Base'"); - InstructionDesc[OpPtrAccessChain].operands.push(OperandId, "'Element'"); - InstructionDesc[OpPtrAccessChain].operands.push(OperandVariableIds, "'Indexes'"); - - InstructionDesc[OpInBoundsPtrAccessChain].operands.push(OperandId, "'Base'"); - InstructionDesc[OpInBoundsPtrAccessChain].operands.push(OperandId, "'Element'"); - InstructionDesc[OpInBoundsPtrAccessChain].operands.push(OperandVariableIds, "'Indexes'"); - - InstructionDesc[OpSNegate].operands.push(OperandId, "'Operand'"); - - InstructionDesc[OpFNegate].operands.push(OperandId, "'Operand'"); - - InstructionDesc[OpNot].operands.push(OperandId, "'Operand'"); - - InstructionDesc[OpAny].operands.push(OperandId, "'Vector'"); - - InstructionDesc[OpAll].operands.push(OperandId, "'Vector'"); - - InstructionDesc[OpConvertFToU].operands.push(OperandId, "'Float Value'"); - - InstructionDesc[OpConvertFToS].operands.push(OperandId, "'Float Value'"); - - InstructionDesc[OpConvertSToF].operands.push(OperandId, "'Signed Value'"); - - InstructionDesc[OpConvertUToF].operands.push(OperandId, "'Unsigned Value'"); - - InstructionDesc[OpUConvert].operands.push(OperandId, "'Unsigned Value'"); - - InstructionDesc[OpSConvert].operands.push(OperandId, "'Signed Value'"); - - InstructionDesc[OpFConvert].operands.push(OperandId, "'Float Value'"); - - InstructionDesc[OpSatConvertSToU].operands.push(OperandId, "'Signed Value'"); - - InstructionDesc[OpSatConvertUToS].operands.push(OperandId, "'Unsigned Value'"); - - InstructionDesc[OpConvertPtrToU].operands.push(OperandId, "'Pointer'"); - - InstructionDesc[OpConvertUToPtr].operands.push(OperandId, "'Integer Value'"); - - InstructionDesc[OpPtrCastToGeneric].operands.push(OperandId, "'Pointer'"); - - InstructionDesc[OpGenericCastToPtr].operands.push(OperandId, "'Pointer'"); - - InstructionDesc[OpGenericCastToPtrExplicit].operands.push(OperandId, "'Pointer'"); - InstructionDesc[OpGenericCastToPtrExplicit].operands.push(OperandStorage, "'Storage'"); - - InstructionDesc[OpGenericPtrMemSemantics].operands.push(OperandId, "'Pointer'"); - - InstructionDesc[OpBitcast].operands.push(OperandId, "'Operand'"); - - InstructionDesc[OpQuantizeToF16].operands.push(OperandId, "'Value'"); - - InstructionDesc[OpTranspose].operands.push(OperandId, "'Matrix'"); - - InstructionDesc[OpCopyLogical].operands.push(OperandId, "'Operand'"); - - InstructionDesc[OpIsNan].operands.push(OperandId, "'x'"); - - InstructionDesc[OpIsInf].operands.push(OperandId, "'x'"); - - InstructionDesc[OpIsFinite].operands.push(OperandId, "'x'"); - - InstructionDesc[OpIsNormal].operands.push(OperandId, "'x'"); - - InstructionDesc[OpSignBitSet].operands.push(OperandId, "'x'"); - - InstructionDesc[OpLessOrGreater].operands.push(OperandId, "'x'"); - InstructionDesc[OpLessOrGreater].operands.push(OperandId, "'y'"); - - InstructionDesc[OpOrdered].operands.push(OperandId, "'x'"); - InstructionDesc[OpOrdered].operands.push(OperandId, "'y'"); - - 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[OpIAdd].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpIAdd].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpFAdd].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpFAdd].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpISub].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpISub].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpFSub].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpFSub].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpIMul].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpIMul].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpFMul].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpFMul].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpUDiv].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpUDiv].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpSDiv].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpSDiv].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpFDiv].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpFDiv].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpUMod].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpUMod].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpSRem].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpSRem].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpSMod].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpSMod].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpFRem].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpFRem].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpFMod].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpFMod].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpVectorTimesScalar].operands.push(OperandId, "'Vector'"); - InstructionDesc[OpVectorTimesScalar].operands.push(OperandId, "'Scalar'"); - - InstructionDesc[OpMatrixTimesScalar].operands.push(OperandId, "'Matrix'"); - InstructionDesc[OpMatrixTimesScalar].operands.push(OperandId, "'Scalar'"); - - InstructionDesc[OpVectorTimesMatrix].operands.push(OperandId, "'Vector'"); - InstructionDesc[OpVectorTimesMatrix].operands.push(OperandId, "'Matrix'"); - - InstructionDesc[OpMatrixTimesVector].operands.push(OperandId, "'Matrix'"); - InstructionDesc[OpMatrixTimesVector].operands.push(OperandId, "'Vector'"); - - InstructionDesc[OpMatrixTimesMatrix].operands.push(OperandId, "'LeftMatrix'"); - InstructionDesc[OpMatrixTimesMatrix].operands.push(OperandId, "'RightMatrix'"); - - InstructionDesc[OpOuterProduct].operands.push(OperandId, "'Vector 1'"); - InstructionDesc[OpOuterProduct].operands.push(OperandId, "'Vector 2'"); - - InstructionDesc[OpDot].operands.push(OperandId, "'Vector 1'"); - InstructionDesc[OpDot].operands.push(OperandId, "'Vector 2'"); - - InstructionDesc[OpIAddCarry].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpIAddCarry].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpISubBorrow].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpISubBorrow].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpUMulExtended].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpUMulExtended].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpSMulExtended].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpSMulExtended].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpShiftRightLogical].operands.push(OperandId, "'Base'"); - InstructionDesc[OpShiftRightLogical].operands.push(OperandId, "'Shift'"); - - InstructionDesc[OpShiftRightArithmetic].operands.push(OperandId, "'Base'"); - InstructionDesc[OpShiftRightArithmetic].operands.push(OperandId, "'Shift'"); - - InstructionDesc[OpShiftLeftLogical].operands.push(OperandId, "'Base'"); - InstructionDesc[OpShiftLeftLogical].operands.push(OperandId, "'Shift'"); - - InstructionDesc[OpLogicalOr].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpLogicalOr].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpLogicalAnd].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpLogicalAnd].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpLogicalEqual].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpLogicalEqual].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpLogicalNotEqual].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpLogicalNotEqual].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpLogicalNot].operands.push(OperandId, "'Operand'"); - - InstructionDesc[OpBitwiseOr].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpBitwiseOr].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpBitwiseXor].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpBitwiseXor].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpBitwiseAnd].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpBitwiseAnd].operands.push(OperandId, "'Operand 2'"); - - 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].operands.push(OperandId, "'Base'"); - InstructionDesc[OpBitFieldSExtract].operands.push(OperandId, "'Offset'"); - InstructionDesc[OpBitFieldSExtract].operands.push(OperandId, "'Count'"); - - InstructionDesc[OpBitFieldUExtract].operands.push(OperandId, "'Base'"); - InstructionDesc[OpBitFieldUExtract].operands.push(OperandId, "'Offset'"); - InstructionDesc[OpBitFieldUExtract].operands.push(OperandId, "'Count'"); - - InstructionDesc[OpBitReverse].operands.push(OperandId, "'Base'"); - - InstructionDesc[OpBitCount].operands.push(OperandId, "'Base'"); - - InstructionDesc[OpSelect].operands.push(OperandId, "'Condition'"); - InstructionDesc[OpSelect].operands.push(OperandId, "'Object 1'"); - InstructionDesc[OpSelect].operands.push(OperandId, "'Object 2'"); - - InstructionDesc[OpIEqual].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpIEqual].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpFOrdEqual].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpFOrdEqual].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpFUnordEqual].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpFUnordEqual].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpINotEqual].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpINotEqual].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpFOrdNotEqual].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpFOrdNotEqual].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpFUnordNotEqual].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpFUnordNotEqual].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpULessThan].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpULessThan].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpSLessThan].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpSLessThan].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpFOrdLessThan].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpFOrdLessThan].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpFUnordLessThan].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpFUnordLessThan].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpUGreaterThan].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpUGreaterThan].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpSGreaterThan].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpSGreaterThan].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpFOrdGreaterThan].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpFOrdGreaterThan].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpFUnordGreaterThan].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpFUnordGreaterThan].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpULessThanEqual].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpULessThanEqual].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpSLessThanEqual].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpSLessThanEqual].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpFOrdLessThanEqual].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpFOrdLessThanEqual].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpFUnordLessThanEqual].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpFUnordLessThanEqual].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpUGreaterThanEqual].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpUGreaterThanEqual].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpSGreaterThanEqual].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpSGreaterThanEqual].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpFOrdGreaterThanEqual].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpFOrdGreaterThanEqual].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpFUnordGreaterThanEqual].operands.push(OperandId, "'Operand 1'"); - InstructionDesc[OpFUnordGreaterThanEqual].operands.push(OperandId, "'Operand 2'"); - - InstructionDesc[OpDPdx].operands.push(OperandId, "'P'"); - - InstructionDesc[OpDPdy].operands.push(OperandId, "'P'"); - - InstructionDesc[OpFwidth].operands.push(OperandId, "'P'"); - - InstructionDesc[OpDPdxFine].operands.push(OperandId, "'P'"); - - InstructionDesc[OpDPdyFine].operands.push(OperandId, "'P'"); - - InstructionDesc[OpFwidthFine].operands.push(OperandId, "'P'"); - - InstructionDesc[OpDPdxCoarse].operands.push(OperandId, "'P'"); - - InstructionDesc[OpDPdyCoarse].operands.push(OperandId, "'P'"); - - InstructionDesc[OpFwidthCoarse].operands.push(OperandId, "'P'"); - - InstructionDesc[OpEmitStreamVertex].operands.push(OperandId, "'Stream'"); - - InstructionDesc[OpEndStreamPrimitive].operands.push(OperandId, "'Stream'"); - - InstructionDesc[OpControlBarrier].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpControlBarrier].operands.push(OperandScope, "'Memory'"); - InstructionDesc[OpControlBarrier].operands.push(OperandMemorySemantics, "'Semantics'"); - - InstructionDesc[OpMemoryBarrier].operands.push(OperandScope, "'Memory'"); - InstructionDesc[OpMemoryBarrier].operands.push(OperandMemorySemantics, "'Semantics'"); - - InstructionDesc[OpImageTexelPointer].operands.push(OperandId, "'Image'"); - InstructionDesc[OpImageTexelPointer].operands.push(OperandId, "'Coordinate'"); - InstructionDesc[OpImageTexelPointer].operands.push(OperandId, "'Sample'"); - - InstructionDesc[OpAtomicLoad].operands.push(OperandId, "'Pointer'"); - InstructionDesc[OpAtomicLoad].operands.push(OperandScope, "'Scope'"); - InstructionDesc[OpAtomicLoad].operands.push(OperandMemorySemantics, "'Semantics'"); - - InstructionDesc[OpAtomicStore].operands.push(OperandId, "'Pointer'"); - InstructionDesc[OpAtomicStore].operands.push(OperandScope, "'Scope'"); - InstructionDesc[OpAtomicStore].operands.push(OperandMemorySemantics, "'Semantics'"); - InstructionDesc[OpAtomicStore].operands.push(OperandId, "'Value'"); - - InstructionDesc[OpAtomicExchange].operands.push(OperandId, "'Pointer'"); - InstructionDesc[OpAtomicExchange].operands.push(OperandScope, "'Scope'"); - InstructionDesc[OpAtomicExchange].operands.push(OperandMemorySemantics, "'Semantics'"); - InstructionDesc[OpAtomicExchange].operands.push(OperandId, "'Value'"); - - InstructionDesc[OpAtomicCompareExchange].operands.push(OperandId, "'Pointer'"); - InstructionDesc[OpAtomicCompareExchange].operands.push(OperandScope, "'Scope'"); - InstructionDesc[OpAtomicCompareExchange].operands.push(OperandMemorySemantics, "'Equal'"); - InstructionDesc[OpAtomicCompareExchange].operands.push(OperandMemorySemantics, "'Unequal'"); - InstructionDesc[OpAtomicCompareExchange].operands.push(OperandId, "'Value'"); - InstructionDesc[OpAtomicCompareExchange].operands.push(OperandId, "'Comparator'"); - - InstructionDesc[OpAtomicCompareExchangeWeak].operands.push(OperandId, "'Pointer'"); - InstructionDesc[OpAtomicCompareExchangeWeak].operands.push(OperandScope, "'Scope'"); - InstructionDesc[OpAtomicCompareExchangeWeak].operands.push(OperandMemorySemantics, "'Equal'"); - InstructionDesc[OpAtomicCompareExchangeWeak].operands.push(OperandMemorySemantics, "'Unequal'"); - InstructionDesc[OpAtomicCompareExchangeWeak].operands.push(OperandId, "'Value'"); - InstructionDesc[OpAtomicCompareExchangeWeak].operands.push(OperandId, "'Comparator'"); - - InstructionDesc[OpAtomicIIncrement].operands.push(OperandId, "'Pointer'"); - InstructionDesc[OpAtomicIIncrement].operands.push(OperandScope, "'Scope'"); - InstructionDesc[OpAtomicIIncrement].operands.push(OperandMemorySemantics, "'Semantics'"); - - InstructionDesc[OpAtomicIDecrement].operands.push(OperandId, "'Pointer'"); - InstructionDesc[OpAtomicIDecrement].operands.push(OperandScope, "'Scope'"); - InstructionDesc[OpAtomicIDecrement].operands.push(OperandMemorySemantics, "'Semantics'"); - - InstructionDesc[OpAtomicIAdd].operands.push(OperandId, "'Pointer'"); - InstructionDesc[OpAtomicIAdd].operands.push(OperandScope, "'Scope'"); - InstructionDesc[OpAtomicIAdd].operands.push(OperandMemorySemantics, "'Semantics'"); - InstructionDesc[OpAtomicIAdd].operands.push(OperandId, "'Value'"); - - InstructionDesc[OpAtomicFAddEXT].operands.push(OperandId, "'Pointer'"); - InstructionDesc[OpAtomicFAddEXT].operands.push(OperandScope, "'Scope'"); - InstructionDesc[OpAtomicFAddEXT].operands.push(OperandMemorySemantics, "'Semantics'"); - InstructionDesc[OpAtomicFAddEXT].operands.push(OperandId, "'Value'"); - - InstructionDesc[OpAtomicISub].operands.push(OperandId, "'Pointer'"); - InstructionDesc[OpAtomicISub].operands.push(OperandScope, "'Scope'"); - InstructionDesc[OpAtomicISub].operands.push(OperandMemorySemantics, "'Semantics'"); - InstructionDesc[OpAtomicISub].operands.push(OperandId, "'Value'"); - - InstructionDesc[OpAtomicUMin].operands.push(OperandId, "'Pointer'"); - InstructionDesc[OpAtomicUMin].operands.push(OperandScope, "'Scope'"); - InstructionDesc[OpAtomicUMin].operands.push(OperandMemorySemantics, "'Semantics'"); - InstructionDesc[OpAtomicUMin].operands.push(OperandId, "'Value'"); - - InstructionDesc[OpAtomicUMax].operands.push(OperandId, "'Pointer'"); - InstructionDesc[OpAtomicUMax].operands.push(OperandScope, "'Scope'"); - InstructionDesc[OpAtomicUMax].operands.push(OperandMemorySemantics, "'Semantics'"); - InstructionDesc[OpAtomicUMax].operands.push(OperandId, "'Value'"); - - InstructionDesc[OpAtomicSMin].operands.push(OperandId, "'Pointer'"); - InstructionDesc[OpAtomicSMin].operands.push(OperandScope, "'Scope'"); - InstructionDesc[OpAtomicSMin].operands.push(OperandMemorySemantics, "'Semantics'"); - InstructionDesc[OpAtomicSMin].operands.push(OperandId, "'Value'"); - - InstructionDesc[OpAtomicSMax].operands.push(OperandId, "'Pointer'"); - InstructionDesc[OpAtomicSMax].operands.push(OperandScope, "'Scope'"); - InstructionDesc[OpAtomicSMax].operands.push(OperandMemorySemantics, "'Semantics'"); - InstructionDesc[OpAtomicSMax].operands.push(OperandId, "'Value'"); - - InstructionDesc[OpAtomicFMinEXT].operands.push(OperandId, "'Pointer'"); - InstructionDesc[OpAtomicFMinEXT].operands.push(OperandScope, "'Scope'"); - InstructionDesc[OpAtomicFMinEXT].operands.push(OperandMemorySemantics, "'Semantics'"); - InstructionDesc[OpAtomicFMinEXT].operands.push(OperandId, "'Value'"); - - InstructionDesc[OpAtomicFMaxEXT].operands.push(OperandId, "'Pointer'"); - InstructionDesc[OpAtomicFMaxEXT].operands.push(OperandScope, "'Scope'"); - InstructionDesc[OpAtomicFMaxEXT].operands.push(OperandMemorySemantics, "'Semantics'"); - InstructionDesc[OpAtomicFMaxEXT].operands.push(OperandId, "'Value'"); - - InstructionDesc[OpAtomicAnd].operands.push(OperandId, "'Pointer'"); - InstructionDesc[OpAtomicAnd].operands.push(OperandScope, "'Scope'"); - InstructionDesc[OpAtomicAnd].operands.push(OperandMemorySemantics, "'Semantics'"); - InstructionDesc[OpAtomicAnd].operands.push(OperandId, "'Value'"); - - InstructionDesc[OpAtomicOr].operands.push(OperandId, "'Pointer'"); - InstructionDesc[OpAtomicOr].operands.push(OperandScope, "'Scope'"); - InstructionDesc[OpAtomicOr].operands.push(OperandMemorySemantics, "'Semantics'"); - InstructionDesc[OpAtomicOr].operands.push(OperandId, "'Value'"); - - InstructionDesc[OpAtomicXor].operands.push(OperandId, "'Pointer'"); - InstructionDesc[OpAtomicXor].operands.push(OperandScope, "'Scope'"); - InstructionDesc[OpAtomicXor].operands.push(OperandMemorySemantics, "'Semantics'"); - InstructionDesc[OpAtomicXor].operands.push(OperandId, "'Value'"); - - InstructionDesc[OpAtomicFlagTestAndSet].operands.push(OperandId, "'Pointer'"); - InstructionDesc[OpAtomicFlagTestAndSet].operands.push(OperandScope, "'Scope'"); - InstructionDesc[OpAtomicFlagTestAndSet].operands.push(OperandMemorySemantics, "'Semantics'"); - - InstructionDesc[OpAtomicFlagClear].operands.push(OperandId, "'Pointer'"); - InstructionDesc[OpAtomicFlagClear].operands.push(OperandScope, "'Scope'"); - InstructionDesc[OpAtomicFlagClear].operands.push(OperandMemorySemantics, "'Semantics'"); - - 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, ""); - - InstructionDesc[OpBranch].operands.push(OperandId, "'Target Label'"); - - InstructionDesc[OpBranchConditional].operands.push(OperandId, "'Condition'"); - InstructionDesc[OpBranchConditional].operands.push(OperandId, "'True Label'"); - InstructionDesc[OpBranchConditional].operands.push(OperandId, "'False Label'"); - InstructionDesc[OpBranchConditional].operands.push(OperandVariableLiterals, "'Branch weights'"); - - InstructionDesc[OpSwitch].operands.push(OperandId, "'Selector'"); - InstructionDesc[OpSwitch].operands.push(OperandId, "'Default'"); - InstructionDesc[OpSwitch].operands.push(OperandVariableLiteralId, "'Target'"); - - - InstructionDesc[OpReturnValue].operands.push(OperandId, "'Value'"); - - InstructionDesc[OpLifetimeStart].operands.push(OperandId, "'Pointer'"); - InstructionDesc[OpLifetimeStart].operands.push(OperandLiteralNumber, "'Size'"); - - InstructionDesc[OpLifetimeStop].operands.push(OperandId, "'Pointer'"); - InstructionDesc[OpLifetimeStop].operands.push(OperandLiteralNumber, "'Size'"); - - InstructionDesc[OpGroupAsyncCopy].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupAsyncCopy].operands.push(OperandId, "'Destination'"); - InstructionDesc[OpGroupAsyncCopy].operands.push(OperandId, "'Source'"); - InstructionDesc[OpGroupAsyncCopy].operands.push(OperandId, "'Num Elements'"); - InstructionDesc[OpGroupAsyncCopy].operands.push(OperandId, "'Stride'"); - InstructionDesc[OpGroupAsyncCopy].operands.push(OperandId, "'Event'"); - - InstructionDesc[OpGroupWaitEvents].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupWaitEvents].operands.push(OperandId, "'Num Events'"); - InstructionDesc[OpGroupWaitEvents].operands.push(OperandId, "'Events List'"); - - InstructionDesc[OpGroupAll].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupAll].operands.push(OperandId, "'Predicate'"); - - InstructionDesc[OpGroupAny].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupAny].operands.push(OperandId, "'Predicate'"); - - InstructionDesc[OpGroupBroadcast].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupBroadcast].operands.push(OperandId, "'Value'"); - InstructionDesc[OpGroupBroadcast].operands.push(OperandId, "'LocalId'"); - - InstructionDesc[OpGroupIAdd].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupIAdd].operands.push(OperandGroupOperation, "'Operation'"); - InstructionDesc[OpGroupIAdd].operands.push(OperandId, "'X'"); - - InstructionDesc[OpGroupFAdd].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupFAdd].operands.push(OperandGroupOperation, "'Operation'"); - InstructionDesc[OpGroupFAdd].operands.push(OperandId, "'X'"); - - InstructionDesc[OpGroupUMin].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupUMin].operands.push(OperandGroupOperation, "'Operation'"); - InstructionDesc[OpGroupUMin].operands.push(OperandId, "'X'"); - - InstructionDesc[OpGroupSMin].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupSMin].operands.push(OperandGroupOperation, "'Operation'"); - InstructionDesc[OpGroupSMin].operands.push(OperandId, "X"); - - InstructionDesc[OpGroupFMin].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupFMin].operands.push(OperandGroupOperation, "'Operation'"); - InstructionDesc[OpGroupFMin].operands.push(OperandId, "X"); - - InstructionDesc[OpGroupUMax].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupUMax].operands.push(OperandGroupOperation, "'Operation'"); - InstructionDesc[OpGroupUMax].operands.push(OperandId, "X"); - - InstructionDesc[OpGroupSMax].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupSMax].operands.push(OperandGroupOperation, "'Operation'"); - InstructionDesc[OpGroupSMax].operands.push(OperandId, "X"); - - InstructionDesc[OpGroupFMax].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupFMax].operands.push(OperandGroupOperation, "'Operation'"); - InstructionDesc[OpGroupFMax].operands.push(OperandId, "X"); - - 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].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].operands.push(OperandId, "'Pipe'"); - InstructionDesc[OpReservedReadPipe].operands.push(OperandId, "'Reserve Id'"); - InstructionDesc[OpReservedReadPipe].operands.push(OperandId, "'Index'"); - InstructionDesc[OpReservedReadPipe].operands.push(OperandId, "'Pointer'"); - InstructionDesc[OpReservedReadPipe].operands.push(OperandId, "'Packet Size'"); - InstructionDesc[OpReservedReadPipe].operands.push(OperandId, "'Packet Alignment'"); - - InstructionDesc[OpReservedWritePipe].operands.push(OperandId, "'Pipe'"); - InstructionDesc[OpReservedWritePipe].operands.push(OperandId, "'Reserve Id'"); - InstructionDesc[OpReservedWritePipe].operands.push(OperandId, "'Index'"); - InstructionDesc[OpReservedWritePipe].operands.push(OperandId, "'Pointer'"); - InstructionDesc[OpReservedWritePipe].operands.push(OperandId, "'Packet Size'"); - InstructionDesc[OpReservedWritePipe].operands.push(OperandId, "'Packet Alignment'"); - - 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].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].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].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].operands.push(OperandId, "'Reserve Id'"); - - InstructionDesc[OpGetNumPipePackets].operands.push(OperandId, "'Pipe'"); - InstructionDesc[OpGetNumPipePackets].operands.push(OperandId, "'Packet Size'"); - InstructionDesc[OpGetNumPipePackets].operands.push(OperandId, "'Packet Alignment'"); - - InstructionDesc[OpGetMaxPipePackets].operands.push(OperandId, "'Pipe'"); - InstructionDesc[OpGetMaxPipePackets].operands.push(OperandId, "'Packet Size'"); - InstructionDesc[OpGetMaxPipePackets].operands.push(OperandId, "'Packet Alignment'"); - - 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].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].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].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].operands.push(OperandId, "'GlobalWorkSize'"); - InstructionDesc[OpBuildNDRange].operands.push(OperandId, "'LocalWorkSize'"); - InstructionDesc[OpBuildNDRange].operands.push(OperandId, "'GlobalWorkOffset'"); - - InstructionDesc[OpCaptureEventProfilingInfo].operands.push(OperandId, "'Event'"); - InstructionDesc[OpCaptureEventProfilingInfo].operands.push(OperandId, "'Profiling Info'"); - InstructionDesc[OpCaptureEventProfilingInfo].operands.push(OperandId, "'Value'"); - - InstructionDesc[OpSetUserEventStatus].operands.push(OperandId, "'Event'"); - InstructionDesc[OpSetUserEventStatus].operands.push(OperandId, "'Status'"); - - InstructionDesc[OpIsValidEvent].operands.push(OperandId, "'Event'"); - - InstructionDesc[OpRetainEvent].operands.push(OperandId, "'Event'"); - - InstructionDesc[OpReleaseEvent].operands.push(OperandId, "'Event'"); - - 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].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].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].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].operands.push(OperandId, "'Queue'"); - InstructionDesc[OpEnqueueKernel].operands.push(OperandId, "'Flags'"); - InstructionDesc[OpEnqueueKernel].operands.push(OperandId, "'ND Range'"); - InstructionDesc[OpEnqueueKernel].operands.push(OperandId, "'Num Events'"); - InstructionDesc[OpEnqueueKernel].operands.push(OperandId, "'Wait Events'"); - InstructionDesc[OpEnqueueKernel].operands.push(OperandId, "'Ret Event'"); - InstructionDesc[OpEnqueueKernel].operands.push(OperandId, "'Invoke'"); - InstructionDesc[OpEnqueueKernel].operands.push(OperandId, "'Param'"); - InstructionDesc[OpEnqueueKernel].operands.push(OperandId, "'Param Size'"); - InstructionDesc[OpEnqueueKernel].operands.push(OperandId, "'Param Align'"); - InstructionDesc[OpEnqueueKernel].operands.push(OperandVariableIds, "'Local Size'"); - - 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(OperandId, "'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'"); - - InstructionDesc[OpGroupIAddNonUniformAMD].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupIAddNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'"); - InstructionDesc[OpGroupIAddNonUniformAMD].operands.push(OperandId, "'X'"); - - InstructionDesc[OpGroupFAddNonUniformAMD].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupFAddNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'"); - InstructionDesc[OpGroupFAddNonUniformAMD].operands.push(OperandId, "'X'"); - - InstructionDesc[OpGroupUMinNonUniformAMD].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupUMinNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'"); - InstructionDesc[OpGroupUMinNonUniformAMD].operands.push(OperandId, "'X'"); - - InstructionDesc[OpGroupSMinNonUniformAMD].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupSMinNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'"); - InstructionDesc[OpGroupSMinNonUniformAMD].operands.push(OperandId, "X"); - - InstructionDesc[OpGroupFMinNonUniformAMD].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupFMinNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'"); - InstructionDesc[OpGroupFMinNonUniformAMD].operands.push(OperandId, "X"); - - InstructionDesc[OpGroupUMaxNonUniformAMD].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupUMaxNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'"); - InstructionDesc[OpGroupUMaxNonUniformAMD].operands.push(OperandId, "X"); - - InstructionDesc[OpGroupSMaxNonUniformAMD].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupSMaxNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'"); - InstructionDesc[OpGroupSMaxNonUniformAMD].operands.push(OperandId, "X"); - - 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'"); - - InstructionDesc[OpGroupNonUniformPartitionNV].operands.push(OperandId, "X"); - - InstructionDesc[OpTypeAccelerationStructureKHR].setResultAndType(true, false); - - InstructionDesc[OpTraceNV].operands.push(OperandId, "'Acceleration Structure'"); - InstructionDesc[OpTraceNV].operands.push(OperandId, "'Ray Flags'"); - InstructionDesc[OpTraceNV].operands.push(OperandId, "'Cull Mask'"); - InstructionDesc[OpTraceNV].operands.push(OperandId, "'SBT Record Offset'"); - InstructionDesc[OpTraceNV].operands.push(OperandId, "'SBT Record Stride'"); - InstructionDesc[OpTraceNV].operands.push(OperandId, "'Miss Index'"); - InstructionDesc[OpTraceNV].operands.push(OperandId, "'Ray Origin'"); - InstructionDesc[OpTraceNV].operands.push(OperandId, "'TMin'"); - InstructionDesc[OpTraceNV].operands.push(OperandId, "'Ray Direction'"); - InstructionDesc[OpTraceNV].operands.push(OperandId, "'TMax'"); - InstructionDesc[OpTraceNV].operands.push(OperandId, "'Payload'"); - InstructionDesc[OpTraceNV].setResultAndType(false, false); - - InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Acceleration Structure'"); - InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Ray Flags'"); - InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Cull Mask'"); - InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'SBT Record Offset'"); - InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'SBT Record Stride'"); - InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Miss Index'"); - InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Ray Origin'"); - InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'TMin'"); - InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Ray Direction'"); - InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'TMax'"); - InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Time'"); - InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Payload'"); - InstructionDesc[OpTraceRayMotionNV].setResultAndType(false, false); - - InstructionDesc[OpTraceRayKHR].operands.push(OperandId, "'Acceleration Structure'"); - InstructionDesc[OpTraceRayKHR].operands.push(OperandId, "'Ray Flags'"); - InstructionDesc[OpTraceRayKHR].operands.push(OperandId, "'Cull Mask'"); - InstructionDesc[OpTraceRayKHR].operands.push(OperandId, "'SBT Record Offset'"); - InstructionDesc[OpTraceRayKHR].operands.push(OperandId, "'SBT Record Stride'"); - InstructionDesc[OpTraceRayKHR].operands.push(OperandId, "'Miss Index'"); - InstructionDesc[OpTraceRayKHR].operands.push(OperandId, "'Ray Origin'"); - InstructionDesc[OpTraceRayKHR].operands.push(OperandId, "'TMin'"); - InstructionDesc[OpTraceRayKHR].operands.push(OperandId, "'Ray Direction'"); - InstructionDesc[OpTraceRayKHR].operands.push(OperandId, "'TMax'"); - InstructionDesc[OpTraceRayKHR].operands.push(OperandId, "'Payload'"); - InstructionDesc[OpTraceRayKHR].setResultAndType(false, false); - - InstructionDesc[OpReportIntersectionKHR].operands.push(OperandId, "'Hit Parameter'"); - InstructionDesc[OpReportIntersectionKHR].operands.push(OperandId, "'Hit Kind'"); - - InstructionDesc[OpIgnoreIntersectionNV].setResultAndType(false, false); - - InstructionDesc[OpIgnoreIntersectionKHR].setResultAndType(false, false); - - InstructionDesc[OpTerminateRayNV].setResultAndType(false, false); - - InstructionDesc[OpTerminateRayKHR].setResultAndType(false, false); - - InstructionDesc[OpExecuteCallableNV].operands.push(OperandId, "SBT Record Index"); - InstructionDesc[OpExecuteCallableNV].operands.push(OperandId, "CallableData ID"); - InstructionDesc[OpExecuteCallableNV].setResultAndType(false, false); - - InstructionDesc[OpExecuteCallableKHR].operands.push(OperandId, "SBT Record Index"); - InstructionDesc[OpExecuteCallableKHR].operands.push(OperandId, "CallableData"); - InstructionDesc[OpExecuteCallableKHR].setResultAndType(false, false); - - InstructionDesc[OpConvertUToAccelerationStructureKHR].operands.push(OperandId, "Value"); - InstructionDesc[OpConvertUToAccelerationStructureKHR].setResultAndType(true, true); - - // Ray Query - InstructionDesc[OpTypeAccelerationStructureKHR].setResultAndType(true, false); - InstructionDesc[OpTypeRayQueryKHR].setResultAndType(true, false); - - InstructionDesc[OpRayQueryInitializeKHR].operands.push(OperandId, "'RayQuery'"); - InstructionDesc[OpRayQueryInitializeKHR].operands.push(OperandId, "'AccelerationS'"); - InstructionDesc[OpRayQueryInitializeKHR].operands.push(OperandId, "'RayFlags'"); - InstructionDesc[OpRayQueryInitializeKHR].operands.push(OperandId, "'CullMask'"); - InstructionDesc[OpRayQueryInitializeKHR].operands.push(OperandId, "'Origin'"); - InstructionDesc[OpRayQueryInitializeKHR].operands.push(OperandId, "'Tmin'"); - InstructionDesc[OpRayQueryInitializeKHR].operands.push(OperandId, "'Direction'"); - InstructionDesc[OpRayQueryInitializeKHR].operands.push(OperandId, "'Tmax'"); - InstructionDesc[OpRayQueryInitializeKHR].setResultAndType(false, false); - - InstructionDesc[OpRayQueryTerminateKHR].operands.push(OperandId, "'RayQuery'"); - InstructionDesc[OpRayQueryTerminateKHR].setResultAndType(false, false); - - InstructionDesc[OpRayQueryGenerateIntersectionKHR].operands.push(OperandId, "'RayQuery'"); - InstructionDesc[OpRayQueryGenerateIntersectionKHR].operands.push(OperandId, "'THit'"); - InstructionDesc[OpRayQueryGenerateIntersectionKHR].setResultAndType(false, false); - - InstructionDesc[OpRayQueryConfirmIntersectionKHR].operands.push(OperandId, "'RayQuery'"); - InstructionDesc[OpRayQueryConfirmIntersectionKHR].setResultAndType(false, false); - - InstructionDesc[OpRayQueryProceedKHR].operands.push(OperandId, "'RayQuery'"); - InstructionDesc[OpRayQueryProceedKHR].setResultAndType(true, true); - - InstructionDesc[OpRayQueryGetIntersectionTypeKHR].operands.push(OperandId, "'RayQuery'"); - InstructionDesc[OpRayQueryGetIntersectionTypeKHR].operands.push(OperandId, "'Committed'"); - InstructionDesc[OpRayQueryGetIntersectionTypeKHR].setResultAndType(true, true); - - InstructionDesc[OpRayQueryGetRayTMinKHR].operands.push(OperandId, "'RayQuery'"); - InstructionDesc[OpRayQueryGetRayTMinKHR].setResultAndType(true, true); - - InstructionDesc[OpRayQueryGetRayFlagsKHR].operands.push(OperandId, "'RayQuery'"); - InstructionDesc[OpRayQueryGetRayFlagsKHR].setResultAndType(true, true); - - InstructionDesc[OpRayQueryGetIntersectionTKHR].operands.push(OperandId, "'RayQuery'"); - InstructionDesc[OpRayQueryGetIntersectionTKHR].operands.push(OperandId, "'Committed'"); - InstructionDesc[OpRayQueryGetIntersectionTKHR].setResultAndType(true, true); - - InstructionDesc[OpRayQueryGetIntersectionInstanceCustomIndexKHR].operands.push(OperandId, "'RayQuery'"); - InstructionDesc[OpRayQueryGetIntersectionInstanceCustomIndexKHR].operands.push(OperandId, "'Committed'"); - InstructionDesc[OpRayQueryGetIntersectionInstanceCustomIndexKHR].setResultAndType(true, true); - - InstructionDesc[OpRayQueryGetIntersectionInstanceIdKHR].operands.push(OperandId, "'RayQuery'"); - InstructionDesc[OpRayQueryGetIntersectionInstanceIdKHR].operands.push(OperandId, "'Committed'"); - InstructionDesc[OpRayQueryGetIntersectionInstanceIdKHR].setResultAndType(true, true); - - InstructionDesc[OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR].operands.push(OperandId, "'RayQuery'"); - InstructionDesc[OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR].operands.push(OperandId, "'Committed'"); - InstructionDesc[OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR].setResultAndType(true, true); - - InstructionDesc[OpRayQueryGetIntersectionGeometryIndexKHR].operands.push(OperandId, "'RayQuery'"); - InstructionDesc[OpRayQueryGetIntersectionGeometryIndexKHR].operands.push(OperandId, "'Committed'"); - InstructionDesc[OpRayQueryGetIntersectionGeometryIndexKHR].setResultAndType(true, true); - - InstructionDesc[OpRayQueryGetIntersectionPrimitiveIndexKHR].operands.push(OperandId, "'RayQuery'"); - InstructionDesc[OpRayQueryGetIntersectionPrimitiveIndexKHR].operands.push(OperandId, "'Committed'"); - InstructionDesc[OpRayQueryGetIntersectionPrimitiveIndexKHR].setResultAndType(true, true); - - InstructionDesc[OpRayQueryGetIntersectionBarycentricsKHR].operands.push(OperandId, "'RayQuery'"); - InstructionDesc[OpRayQueryGetIntersectionBarycentricsKHR].operands.push(OperandId, "'Committed'"); - InstructionDesc[OpRayQueryGetIntersectionBarycentricsKHR].setResultAndType(true, true); - - InstructionDesc[OpRayQueryGetIntersectionFrontFaceKHR].operands.push(OperandId, "'RayQuery'"); - InstructionDesc[OpRayQueryGetIntersectionFrontFaceKHR].operands.push(OperandId, "'Committed'"); - InstructionDesc[OpRayQueryGetIntersectionFrontFaceKHR].setResultAndType(true, true); - - InstructionDesc[OpRayQueryGetIntersectionCandidateAABBOpaqueKHR].operands.push(OperandId, "'RayQuery'"); - InstructionDesc[OpRayQueryGetIntersectionCandidateAABBOpaqueKHR].setResultAndType(true, true); - - InstructionDesc[OpRayQueryGetIntersectionObjectRayDirectionKHR].operands.push(OperandId, "'RayQuery'"); - InstructionDesc[OpRayQueryGetIntersectionObjectRayDirectionKHR].operands.push(OperandId, "'Committed'"); - InstructionDesc[OpRayQueryGetIntersectionObjectRayDirectionKHR].setResultAndType(true, true); - - InstructionDesc[OpRayQueryGetIntersectionObjectRayOriginKHR].operands.push(OperandId, "'RayQuery'"); - InstructionDesc[OpRayQueryGetIntersectionObjectRayOriginKHR].operands.push(OperandId, "'Committed'"); - InstructionDesc[OpRayQueryGetIntersectionObjectRayOriginKHR].setResultAndType(true, true); - - InstructionDesc[OpRayQueryGetWorldRayDirectionKHR].operands.push(OperandId, "'RayQuery'"); - InstructionDesc[OpRayQueryGetWorldRayDirectionKHR].setResultAndType(true, true); - - InstructionDesc[OpRayQueryGetWorldRayOriginKHR].operands.push(OperandId, "'RayQuery'"); - InstructionDesc[OpRayQueryGetWorldRayOriginKHR].setResultAndType(true, true); - - InstructionDesc[OpRayQueryGetIntersectionObjectToWorldKHR].operands.push(OperandId, "'RayQuery'"); - InstructionDesc[OpRayQueryGetIntersectionObjectToWorldKHR].operands.push(OperandId, "'Committed'"); - InstructionDesc[OpRayQueryGetIntersectionObjectToWorldKHR].setResultAndType(true, true); - - InstructionDesc[OpRayQueryGetIntersectionWorldToObjectKHR].operands.push(OperandId, "'RayQuery'"); - InstructionDesc[OpRayQueryGetIntersectionWorldToObjectKHR].operands.push(OperandId, "'Committed'"); - InstructionDesc[OpRayQueryGetIntersectionWorldToObjectKHR].setResultAndType(true, true); - - InstructionDesc[OpImageSampleFootprintNV].operands.push(OperandId, "'Sampled Image'"); - InstructionDesc[OpImageSampleFootprintNV].operands.push(OperandId, "'Coordinate'"); - InstructionDesc[OpImageSampleFootprintNV].operands.push(OperandId, "'Granularity'"); - InstructionDesc[OpImageSampleFootprintNV].operands.push(OperandId, "'Coarse'"); - InstructionDesc[OpImageSampleFootprintNV].operands.push(OperandImageOperands, "", true); - InstructionDesc[OpImageSampleFootprintNV].operands.push(OperandVariableIds, "", true); - - InstructionDesc[OpWritePackedPrimitiveIndices4x8NV].operands.push(OperandId, "'Index Offset'"); - InstructionDesc[OpWritePackedPrimitiveIndices4x8NV].operands.push(OperandId, "'Packed Indices'"); - - InstructionDesc[OpTypeCooperativeMatrixNV].operands.push(OperandId, "'Component Type'"); - InstructionDesc[OpTypeCooperativeMatrixNV].operands.push(OperandId, "'Scope'"); - InstructionDesc[OpTypeCooperativeMatrixNV].operands.push(OperandId, "'Rows'"); - InstructionDesc[OpTypeCooperativeMatrixNV].operands.push(OperandId, "'Columns'"); - - InstructionDesc[OpCooperativeMatrixLoadNV].operands.push(OperandId, "'Pointer'"); - InstructionDesc[OpCooperativeMatrixLoadNV].operands.push(OperandId, "'Stride'"); - InstructionDesc[OpCooperativeMatrixLoadNV].operands.push(OperandId, "'Column Major'"); - InstructionDesc[OpCooperativeMatrixLoadNV].operands.push(OperandMemoryAccess, "'Memory Access'"); - InstructionDesc[OpCooperativeMatrixLoadNV].operands.push(OperandLiteralNumber, "", true); - InstructionDesc[OpCooperativeMatrixLoadNV].operands.push(OperandId, "", true); - - InstructionDesc[OpCooperativeMatrixStoreNV].operands.push(OperandId, "'Pointer'"); - InstructionDesc[OpCooperativeMatrixStoreNV].operands.push(OperandId, "'Object'"); - InstructionDesc[OpCooperativeMatrixStoreNV].operands.push(OperandId, "'Stride'"); - InstructionDesc[OpCooperativeMatrixStoreNV].operands.push(OperandId, "'Column Major'"); - InstructionDesc[OpCooperativeMatrixStoreNV].operands.push(OperandMemoryAccess, "'Memory Access'"); - InstructionDesc[OpCooperativeMatrixStoreNV].operands.push(OperandLiteralNumber, "", true); - InstructionDesc[OpCooperativeMatrixStoreNV].operands.push(OperandId, "", true); - - InstructionDesc[OpCooperativeMatrixMulAddNV].operands.push(OperandId, "'A'"); - InstructionDesc[OpCooperativeMatrixMulAddNV].operands.push(OperandId, "'B'"); - InstructionDesc[OpCooperativeMatrixMulAddNV].operands.push(OperandId, "'C'"); - - InstructionDesc[OpCooperativeMatrixLengthNV].operands.push(OperandId, "'Type'"); - - InstructionDesc[OpDemoteToHelperInvocationEXT].setResultAndType(false, false); - - InstructionDesc[OpReadClockKHR].operands.push(OperandScope, "'Scope'"); -} - -}; // end spv namespace diff --git a/deps/glslang/SPIRV/doc.h b/deps/glslang/SPIRV/doc.h deleted file mode 100644 index 2a0b28c6..00000000 --- a/deps/glslang/SPIRV/doc.h +++ /dev/null @@ -1,259 +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. - -// -// Parameterize the SPIR-V enumerants. -// - -#pragma once - -#include "spirv.hpp" - -#include - -namespace spv { - -// Fill in all the parameters -void Parameterize(); - -// Return the English names of all the enums. -const char* SourceString(int); -const char* AddressingString(int); -const char* MemoryString(int); -const char* ExecutionModelString(int); -const char* ExecutionModeString(int); -const char* StorageClassString(int); -const char* DecorationString(int); -const char* BuiltInString(int); -const char* DimensionString(int); -const char* SelectControlString(int); -const char* LoopControlString(int); -const char* FunctionControlString(int); -const char* SamplerAddressingModeString(int); -const char* SamplerFilterModeString(int); -const char* ImageFormatString(int); -const char* ImageChannelOrderString(int); -const char* ImageChannelTypeString(int); -const char* ImageChannelDataTypeString(int type); -const char* ImageOperandsString(int format); -const char* ImageOperands(int); -const char* FPFastMathString(int); -const char* FPRoundingModeString(int); -const char* LinkageTypeString(int); -const char* FuncParamAttrString(int); -const char* AccessQualifierString(int); -const char* MemorySemanticsString(int); -const char* MemoryAccessString(int); -const char* ExecutionScopeString(int); -const char* GroupOperationString(int); -const char* KernelEnqueueFlagsString(int); -const char* KernelProfilingInfoString(int); -const char* CapabilityString(int); -const char* OpcodeString(int); -const char* ScopeString(int mem); - -// For grouping opcodes into subsections -enum OpcodeClass { - OpClassMisc, - OpClassDebug, - OpClassAnnotate, - OpClassExtension, - OpClassMode, - OpClassType, - OpClassConstant, - OpClassMemory, - OpClassFunction, - OpClassImage, - OpClassConvert, - OpClassComposite, - OpClassArithmetic, - OpClassBit, - OpClassRelationalLogical, - OpClassDerivative, - OpClassFlowControl, - OpClassAtomic, - OpClassPrimitive, - OpClassBarrier, - OpClassGroup, - OpClassDeviceSideEnqueue, - OpClassPipe, - - OpClassCount, - OpClassMissing // all instructions start out as missing -}; - -// For parameterizing operands. -enum OperandClass { - OperandNone, - OperandId, - OperandVariableIds, - OperandOptionalLiteral, - OperandOptionalLiteralString, - OperandVariableLiterals, - OperandVariableIdLiteral, - OperandVariableLiteralId, - OperandLiteralNumber, - OperandLiteralString, - OperandVariableLiteralStrings, - OperandSource, - OperandExecutionModel, - OperandAddressing, - OperandMemory, - OperandExecutionMode, - OperandStorage, - OperandDimensionality, - OperandSamplerAddressingMode, - OperandSamplerFilterMode, - OperandSamplerImageFormat, - OperandImageChannelOrder, - OperandImageChannelDataType, - OperandImageOperands, - OperandFPFastMath, - OperandFPRoundingMode, - OperandLinkageType, - OperandAccessQualifier, - OperandFuncParamAttr, - OperandDecoration, - OperandBuiltIn, - OperandSelect, - OperandLoop, - OperandFunction, - OperandMemorySemantics, - OperandMemoryAccess, - OperandScope, - OperandGroupOperation, - OperandKernelEnqueueFlags, - OperandKernelProfilingInfo, - OperandCapability, - - OperandOpcode, - - OperandCount -}; - -// Any specific enum can have a set of capabilities that allow it: -typedef std::vector EnumCaps; - -// Parameterize a set of operands with their OperandClass(es) and descriptions. -class OperandParameters { -public: - OperandParameters() { } - void push(OperandClass oc, const char* d, bool opt = false) - { - opClass.push_back(oc); - desc.push_back(d); - optional.push_back(opt); - } - void setOptional(); - OperandClass getClass(int op) const { return opClass[op]; } - const char* getDesc(int op) const { return desc[op]; } - bool isOptional(int op) const { return optional[op]; } - int getNum() const { return (int)opClass.size(); } - -protected: - std::vector opClass; - std::vector desc; - std::vector optional; -}; - -// Parameterize an enumerant -class EnumParameters { -public: - EnumParameters() : desc(0) { } - const char* desc; -}; - -// Parameterize a set of enumerants that form an enum -class EnumDefinition : public EnumParameters { -public: - EnumDefinition() : - ceiling(0), bitmask(false), getName(0), enumParams(0), operandParams(0) { } - void set(int ceil, const char* (*name)(int), EnumParameters* ep, bool mask = false) - { - ceiling = ceil; - getName = name; - bitmask = mask; - enumParams = ep; - } - void setOperands(OperandParameters* op) { operandParams = op; } - int ceiling; // ceiling of enumerants - bool bitmask; // true if these enumerants combine into a bitmask - const char* (*getName)(int); // a function that returns the name for each enumerant value (or shift) - EnumParameters* enumParams; // parameters for each individual enumerant - OperandParameters* operandParams; // sets of operands -}; - -// Parameterize an instruction's logical format, including its known set of operands, -// per OperandParameters above. -class InstructionParameters { -public: - InstructionParameters() : - opDesc("TBD"), - opClass(OpClassMissing), - typePresent(true), // most normal, only exceptions have to be spelled out - resultPresent(true) // most normal, only exceptions have to be spelled out - { } - - void setResultAndType(bool r, bool t) - { - resultPresent = r; - typePresent = t; - } - - bool hasResult() const { return resultPresent != 0; } - bool hasType() const { return typePresent != 0; } - - const char* opDesc; - OpcodeClass opClass; - OperandParameters operands; - -protected: - int typePresent : 1; - int resultPresent : 1; -}; - -// The set of objects that hold all the instruction/operand -// parameterization information. -extern InstructionParameters InstructionDesc[]; - -// These hold definitions of the enumerants used for operands -extern EnumDefinition OperandClassParams[]; - -const char* GetOperandDesc(OperandClass operand); -void PrintImmediateRow(int imm, const char* name, const EnumParameters* enumParams, bool caps, bool hex = false); -const char* AccessQualifierString(int attr); - -void PrintOperands(const OperandParameters& operands, int reservedOperands); - -} // end namespace spv diff --git a/deps/glslang/SPIRV/hex_float.h b/deps/glslang/SPIRV/hex_float.h deleted file mode 100644 index 8be8e9f7..00000000 --- a/deps/glslang/SPIRV/hex_float.h +++ /dev/null @@ -1,1078 +0,0 @@ -// Copyright (c) 2015-2016 The Khronos Group Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#ifndef LIBSPIRV_UTIL_HEX_FLOAT_H_ -#define LIBSPIRV_UTIL_HEX_FLOAT_H_ - -#include -#include -#include -#include -#include -#include -#include - -#if defined(_MSC_VER) && _MSC_VER < 1800 -namespace std { -bool isnan(double f) -{ - return ::_isnan(f) != 0; -} -bool isinf(double f) -{ - return ::_finite(f) == 0; -} -} -#endif - -#include "bitutils.h" - -namespace spvutils { - -class Float16 { - public: - Float16(uint16_t v) : val(v) {} - Float16() {} - static bool isNan(const Float16& val) { - return ((val.val & 0x7C00) == 0x7C00) && ((val.val & 0x3FF) != 0); - } - // Returns true if the given value is any kind of infinity. - static bool isInfinity(const Float16& val) { - return ((val.val & 0x7C00) == 0x7C00) && ((val.val & 0x3FF) == 0); - } - Float16(const Float16& other) { val = other.val; } - uint16_t get_value() const { return val; } - - // Returns the maximum normal value. - static Float16 max() { return Float16(0x7bff); } - // Returns the lowest normal value. - static Float16 lowest() { return Float16(0xfbff); } - - private: - uint16_t val; -}; - -// To specialize this type, you must override uint_type to define -// an unsigned integer that can fit your floating point type. -// You must also add a isNan function that returns true if -// a value is Nan. -template -struct FloatProxyTraits { - typedef void uint_type; -}; - -template <> -struct FloatProxyTraits { - typedef uint32_t uint_type; - static bool isNan(float f) { return std::isnan(f); } - // Returns true if the given value is any kind of infinity. - static bool isInfinity(float f) { return std::isinf(f); } - // Returns the maximum normal value. - static float max() { return std::numeric_limits::max(); } - // Returns the lowest normal value. - static float lowest() { return std::numeric_limits::lowest(); } -}; - -template <> -struct FloatProxyTraits { - typedef uint64_t uint_type; - static bool isNan(double f) { return std::isnan(f); } - // Returns true if the given value is any kind of infinity. - static bool isInfinity(double f) { return std::isinf(f); } - // Returns the maximum normal value. - static double max() { return std::numeric_limits::max(); } - // Returns the lowest normal value. - static double lowest() { return std::numeric_limits::lowest(); } -}; - -template <> -struct FloatProxyTraits { - typedef uint16_t uint_type; - static bool isNan(Float16 f) { return Float16::isNan(f); } - // Returns true if the given value is any kind of infinity. - static bool isInfinity(Float16 f) { return Float16::isInfinity(f); } - // Returns the maximum normal value. - static Float16 max() { return Float16::max(); } - // Returns the lowest normal value. - static Float16 lowest() { return Float16::lowest(); } -}; - -// Since copying a floating point number (especially if it is NaN) -// does not guarantee that bits are preserved, this class lets us -// store the type and use it as a float when necessary. -template -class FloatProxy { - public: - typedef typename FloatProxyTraits::uint_type uint_type; - - // Since this is to act similar to the normal floats, - // do not initialize the data by default. - FloatProxy() {} - - // Intentionally non-explicit. This is a proxy type so - // implicit conversions allow us to use it more transparently. - FloatProxy(T val) { data_ = BitwiseCast(val); } - - // Intentionally non-explicit. This is a proxy type so - // implicit conversions allow us to use it more transparently. - FloatProxy(uint_type val) { data_ = val; } - - // This is helpful to have and is guaranteed not to stomp bits. - FloatProxy operator-() const { - return static_cast(data_ ^ - (uint_type(0x1) << (sizeof(T) * 8 - 1))); - } - - // Returns the data as a floating point value. - T getAsFloat() const { return BitwiseCast(data_); } - - // Returns the raw data. - uint_type data() const { return data_; } - - // Returns true if the value represents any type of NaN. - bool isNan() { return FloatProxyTraits::isNan(getAsFloat()); } - // Returns true if the value represents any type of infinity. - bool isInfinity() { return FloatProxyTraits::isInfinity(getAsFloat()); } - - // Returns the maximum normal value. - static FloatProxy max() { - return FloatProxy(FloatProxyTraits::max()); - } - // Returns the lowest normal value. - static FloatProxy lowest() { - return FloatProxy(FloatProxyTraits::lowest()); - } - - private: - uint_type data_; -}; - -template -bool operator==(const FloatProxy& first, const FloatProxy& second) { - return first.data() == second.data(); -} - -// Reads a FloatProxy value as a normal float from a stream. -template -std::istream& operator>>(std::istream& is, FloatProxy& value) { - T float_val; - is >> float_val; - value = FloatProxy(float_val); - return is; -} - -// This is an example traits. It is not meant to be used in practice, but will -// be the default for any non-specialized type. -template -struct HexFloatTraits { - // Integer type that can store this hex-float. - typedef void uint_type; - // Signed integer type that can store this hex-float. - typedef void int_type; - // The numerical type that this HexFloat represents. - typedef void underlying_type; - // The type needed to construct the underlying type. - typedef void native_type; - // The number of bits that are actually relevant in the uint_type. - // This allows us to deal with, for example, 24-bit values in a 32-bit - // integer. - static const uint32_t num_used_bits = 0; - // Number of bits that represent the exponent. - static const uint32_t num_exponent_bits = 0; - // Number of bits that represent the fractional part. - static const uint32_t num_fraction_bits = 0; - // The bias of the exponent. (How much we need to subtract from the stored - // value to get the correct value.) - static const uint32_t exponent_bias = 0; -}; - -// Traits for IEEE float. -// 1 sign bit, 8 exponent bits, 23 fractional bits. -template <> -struct HexFloatTraits> { - typedef uint32_t uint_type; - typedef int32_t int_type; - typedef FloatProxy underlying_type; - typedef float native_type; - static const uint_type num_used_bits = 32; - static const uint_type num_exponent_bits = 8; - static const uint_type num_fraction_bits = 23; - static const uint_type exponent_bias = 127; -}; - -// Traits for IEEE double. -// 1 sign bit, 11 exponent bits, 52 fractional bits. -template <> -struct HexFloatTraits> { - typedef uint64_t uint_type; - typedef int64_t int_type; - typedef FloatProxy underlying_type; - typedef double native_type; - static const uint_type num_used_bits = 64; - static const uint_type num_exponent_bits = 11; - static const uint_type num_fraction_bits = 52; - static const uint_type exponent_bias = 1023; -}; - -// Traits for IEEE half. -// 1 sign bit, 5 exponent bits, 10 fractional bits. -template <> -struct HexFloatTraits> { - typedef uint16_t uint_type; - typedef int16_t int_type; - typedef uint16_t underlying_type; - typedef uint16_t native_type; - static const uint_type num_used_bits = 16; - static const uint_type num_exponent_bits = 5; - static const uint_type num_fraction_bits = 10; - static const uint_type exponent_bias = 15; -}; - -enum round_direction { - kRoundToZero, - kRoundToNearestEven, - kRoundToPositiveInfinity, - kRoundToNegativeInfinity -}; - -// Template class that houses a floating pointer number. -// It exposes a number of constants based on the provided traits to -// assist in interpreting the bits of the value. -template > -class HexFloat { - public: - typedef typename Traits::uint_type uint_type; - typedef typename Traits::int_type int_type; - typedef typename Traits::underlying_type underlying_type; - typedef typename Traits::native_type native_type; - - explicit HexFloat(T f) : value_(f) {} - - T value() const { return value_; } - void set_value(T f) { value_ = f; } - - // These are all written like this because it is convenient to have - // compile-time constants for all of these values. - - // Pass-through values to save typing. - static const uint32_t num_used_bits = Traits::num_used_bits; - static const uint32_t exponent_bias = Traits::exponent_bias; - static const uint32_t num_exponent_bits = Traits::num_exponent_bits; - static const uint32_t num_fraction_bits = Traits::num_fraction_bits; - - // Number of bits to shift left to set the highest relevant bit. - static const uint32_t top_bit_left_shift = num_used_bits - 1; - // How many nibbles (hex characters) the fractional part takes up. - static const uint32_t fraction_nibbles = (num_fraction_bits + 3) / 4; - // If the fractional part does not fit evenly into a hex character (4-bits) - // then we have to left-shift to get rid of leading 0s. This is the amount - // we have to shift (might be 0). - static const uint32_t num_overflow_bits = - fraction_nibbles * 4 - num_fraction_bits; - - // The representation of the fraction, not the actual bits. This - // includes the leading bit that is usually implicit. - static const uint_type fraction_represent_mask = - spvutils::SetBits::get; - - // The topmost bit in the nibble-aligned fraction. - static const uint_type fraction_top_bit = - uint_type(1) << (num_fraction_bits + num_overflow_bits - 1); - - // The least significant bit in the exponent, which is also the bit - // immediately to the left of the significand. - static const uint_type first_exponent_bit = uint_type(1) - << (num_fraction_bits); - - // The mask for the encoded fraction. It does not include the - // implicit bit. - static const uint_type fraction_encode_mask = - spvutils::SetBits::get; - - // The bit that is used as a sign. - static const uint_type sign_mask = uint_type(1) << top_bit_left_shift; - - // The bits that represent the exponent. - static const uint_type exponent_mask = - spvutils::SetBits::get; - - // How far left the exponent is shifted. - static const uint32_t exponent_left_shift = num_fraction_bits; - - // How far from the right edge the fraction is shifted. - static const uint32_t fraction_right_shift = - static_cast(sizeof(uint_type) * 8) - num_fraction_bits; - - // The maximum representable unbiased exponent. - static const int_type max_exponent = - (exponent_mask >> num_fraction_bits) - exponent_bias; - // The minimum representable exponent for normalized numbers. - static const int_type min_exponent = -static_cast(exponent_bias); - - // Returns the bits associated with the value. - uint_type getBits() const { return spvutils::BitwiseCast(value_); } - - // Returns the bits associated with the value, without the leading sign bit. - uint_type getUnsignedBits() const { - return static_cast(spvutils::BitwiseCast(value_) & - ~sign_mask); - } - - // Returns the bits associated with the exponent, shifted to start at the - // lsb of the type. - const uint_type getExponentBits() const { - return static_cast((getBits() & exponent_mask) >> - num_fraction_bits); - } - - // Returns the exponent in unbiased form. This is the exponent in the - // human-friendly form. - const int_type getUnbiasedExponent() const { - return static_cast(getExponentBits() - exponent_bias); - } - - // Returns just the significand bits from the value. - const uint_type getSignificandBits() const { - return getBits() & fraction_encode_mask; - } - - // If the number was normalized, returns the unbiased exponent. - // If the number was denormal, normalize the exponent first. - const int_type getUnbiasedNormalizedExponent() const { - if ((getBits() & ~sign_mask) == 0) { // special case if everything is 0 - return 0; - } - int_type exp = getUnbiasedExponent(); - if (exp == min_exponent) { // We are in denorm land. - uint_type significand_bits = getSignificandBits(); - while ((significand_bits & (first_exponent_bit >> 1)) == 0) { - significand_bits = static_cast(significand_bits << 1); - exp = static_cast(exp - 1); - } - significand_bits &= fraction_encode_mask; - } - return exp; - } - - // Returns the signficand after it has been normalized. - const uint_type getNormalizedSignificand() const { - int_type unbiased_exponent = getUnbiasedNormalizedExponent(); - uint_type significand = getSignificandBits(); - for (int_type i = unbiased_exponent; i <= min_exponent; ++i) { - significand = static_cast(significand << 1); - } - significand &= fraction_encode_mask; - return significand; - } - - // Returns true if this number represents a negative value. - bool isNegative() const { return (getBits() & sign_mask) != 0; } - - // Sets this HexFloat from the individual components. - // Note this assumes EVERY significand is normalized, and has an implicit - // leading one. This means that the only way that this method will set 0, - // is if you set a number so denormalized that it underflows. - // Do not use this method with raw bits extracted from a subnormal number, - // since subnormals do not have an implicit leading 1 in the significand. - // The significand is also expected to be in the - // lowest-most num_fraction_bits of the uint_type. - // The exponent is expected to be unbiased, meaning an exponent of - // 0 actually means 0. - // If underflow_round_up is set, then on underflow, if a number is non-0 - // and would underflow, we round up to the smallest denorm. - void setFromSignUnbiasedExponentAndNormalizedSignificand( - bool negative, int_type exponent, uint_type significand, - bool round_denorm_up) { - bool significand_is_zero = significand == 0; - - if (exponent <= min_exponent) { - // If this was denormalized, then we have to shift the bit on, meaning - // the significand is not zero. - significand_is_zero = false; - significand |= first_exponent_bit; - significand = static_cast(significand >> 1); - } - - while (exponent < min_exponent) { - significand = static_cast(significand >> 1); - ++exponent; - } - - if (exponent == min_exponent) { - if (significand == 0 && !significand_is_zero && round_denorm_up) { - significand = static_cast(0x1); - } - } - - uint_type new_value = 0; - if (negative) { - new_value = static_cast(new_value | sign_mask); - } - exponent = static_cast(exponent + exponent_bias); - assert(exponent >= 0); - - // put it all together - exponent = static_cast((exponent << exponent_left_shift) & - exponent_mask); - significand = static_cast(significand & fraction_encode_mask); - new_value = static_cast(new_value | (exponent | significand)); - value_ = BitwiseCast(new_value); - } - - // Increments the significand of this number by the given amount. - // If this would spill the significand into the implicit bit, - // carry is set to true and the significand is shifted to fit into - // the correct location, otherwise carry is set to false. - // All significands and to_increment are assumed to be within the bounds - // for a valid significand. - static uint_type incrementSignificand(uint_type significand, - uint_type to_increment, bool* carry) { - significand = static_cast(significand + to_increment); - *carry = false; - if (significand & first_exponent_bit) { - *carry = true; - // The implicit 1-bit will have carried, so we should zero-out the - // top bit and shift back. - significand = static_cast(significand & ~first_exponent_bit); - significand = static_cast(significand >> 1); - } - return significand; - } - - // These exist because MSVC throws warnings on negative right-shifts - // even if they are not going to be executed. Eg: - // constant_number < 0? 0: constant_number - // These convert the negative left-shifts into right shifts. - - template - uint_type negatable_left_shift(int_type N, uint_type val) - { - if(N >= 0) - return val << N; - - return val >> -N; - } - - template - uint_type negatable_right_shift(int_type N, uint_type val) - { - if(N >= 0) - return val >> N; - - return val << -N; - } - - // Returns the significand, rounded to fit in a significand in - // other_T. This is shifted so that the most significant - // bit of the rounded number lines up with the most significant bit - // of the returned significand. - template - typename other_T::uint_type getRoundedNormalizedSignificand( - round_direction dir, bool* carry_bit) { - typedef typename other_T::uint_type other_uint_type; - static const int_type num_throwaway_bits = - static_cast(num_fraction_bits) - - static_cast(other_T::num_fraction_bits); - - static const uint_type last_significant_bit = - (num_throwaway_bits < 0) - ? 0 - : negatable_left_shift(num_throwaway_bits, 1u); - static const uint_type first_rounded_bit = - (num_throwaway_bits < 1) - ? 0 - : negatable_left_shift(num_throwaway_bits - 1, 1u); - - static const uint_type throwaway_mask_bits = - num_throwaway_bits > 0 ? num_throwaway_bits : 0; - static const uint_type throwaway_mask = - spvutils::SetBits::get; - - *carry_bit = false; - other_uint_type out_val = 0; - uint_type significand = getNormalizedSignificand(); - // If we are up-casting, then we just have to shift to the right location. - if (num_throwaway_bits <= 0) { - out_val = static_cast(significand); - uint_type shift_amount = static_cast(-num_throwaway_bits); - out_val = static_cast(out_val << shift_amount); - return out_val; - } - - // If every non-representable bit is 0, then we don't have any casting to - // do. - if ((significand & throwaway_mask) == 0) { - return static_cast( - negatable_right_shift(num_throwaway_bits, significand)); - } - - bool round_away_from_zero = false; - // We actually have to narrow the significand here, so we have to follow the - // rounding rules. - switch (dir) { - case kRoundToZero: - break; - case kRoundToPositiveInfinity: - round_away_from_zero = !isNegative(); - break; - case kRoundToNegativeInfinity: - round_away_from_zero = isNegative(); - break; - case kRoundToNearestEven: - // Have to round down, round bit is 0 - if ((first_rounded_bit & significand) == 0) { - break; - } - if (((significand & throwaway_mask) & ~first_rounded_bit) != 0) { - // If any subsequent bit of the rounded portion is non-0 then we round - // up. - round_away_from_zero = true; - break; - } - // We are exactly half-way between 2 numbers, pick even. - if ((significand & last_significant_bit) != 0) { - // 1 for our last bit, round up. - round_away_from_zero = true; - break; - } - break; - } - - if (round_away_from_zero) { - return static_cast( - negatable_right_shift(num_throwaway_bits, incrementSignificand( - significand, last_significant_bit, carry_bit))); - } else { - return static_cast( - negatable_right_shift(num_throwaway_bits, significand)); - } - } - - // Casts this value to another HexFloat. If the cast is widening, - // then round_dir is ignored. If the cast is narrowing, then - // the result is rounded in the direction specified. - // This number will retain Nan and Inf values. - // It will also saturate to Inf if the number overflows, and - // underflow to (0 or min depending on rounding) if the number underflows. - template - void castTo(other_T& other, round_direction round_dir) { - other = other_T(static_cast(0)); - bool negate = isNegative(); - if (getUnsignedBits() == 0) { - if (negate) { - other.set_value(-other.value()); - } - return; - } - uint_type significand = getSignificandBits(); - bool carried = false; - typename other_T::uint_type rounded_significand = - getRoundedNormalizedSignificand(round_dir, &carried); - - int_type exponent = getUnbiasedExponent(); - if (exponent == min_exponent) { - // If we are denormal, normalize the exponent, so that we can encode - // easily. - exponent = static_cast(exponent + 1); - for (uint_type check_bit = first_exponent_bit >> 1; check_bit != 0; - check_bit = static_cast(check_bit >> 1)) { - exponent = static_cast(exponent - 1); - if (check_bit & significand) break; - } - } - - bool is_nan = - (getBits() & exponent_mask) == exponent_mask && significand != 0; - bool is_inf = - !is_nan && - ((exponent + carried) > static_cast(other_T::exponent_bias) || - (significand == 0 && (getBits() & exponent_mask) == exponent_mask)); - - // If we are Nan or Inf we should pass that through. - if (is_inf) { - other.set_value(BitwiseCast( - static_cast( - (negate ? other_T::sign_mask : 0) | other_T::exponent_mask))); - return; - } - if (is_nan) { - typename other_T::uint_type shifted_significand; - shifted_significand = static_cast( - negatable_left_shift( - static_cast(other_T::num_fraction_bits) - - static_cast(num_fraction_bits), significand)); - - // We are some sort of Nan. We try to keep the bit-pattern of the Nan - // as close as possible. If we had to shift off bits so we are 0, then we - // just set the last bit. - other.set_value(BitwiseCast( - static_cast( - (negate ? other_T::sign_mask : 0) | other_T::exponent_mask | - (shifted_significand == 0 ? 0x1 : shifted_significand)))); - return; - } - - bool round_underflow_up = - isNegative() ? round_dir == kRoundToNegativeInfinity - : round_dir == kRoundToPositiveInfinity; - typedef typename other_T::int_type other_int_type; - // setFromSignUnbiasedExponentAndNormalizedSignificand will - // zero out any underflowing value (but retain the sign). - other.setFromSignUnbiasedExponentAndNormalizedSignificand( - negate, static_cast(exponent), rounded_significand, - round_underflow_up); - return; - } - - private: - T value_; - - static_assert(num_used_bits == - Traits::num_exponent_bits + Traits::num_fraction_bits + 1, - "The number of bits do not fit"); - static_assert(sizeof(T) == sizeof(uint_type), "The type sizes do not match"); -}; - -// Returns 4 bits represented by the hex character. -inline uint8_t get_nibble_from_character(int character) { - const char* dec = "0123456789"; - const char* lower = "abcdef"; - const char* upper = "ABCDEF"; - const char* p = nullptr; - if ((p = strchr(dec, character))) { - return static_cast(p - dec); - } else if ((p = strchr(lower, character))) { - return static_cast(p - lower + 0xa); - } else if ((p = strchr(upper, character))) { - return static_cast(p - upper + 0xa); - } - - assert(false && "This was called with a non-hex character"); - return 0; -} - -// Outputs the given HexFloat to the stream. -template -std::ostream& operator<<(std::ostream& os, const HexFloat& value) { - typedef HexFloat HF; - typedef typename HF::uint_type uint_type; - typedef typename HF::int_type int_type; - - static_assert(HF::num_used_bits != 0, - "num_used_bits must be non-zero for a valid float"); - static_assert(HF::num_exponent_bits != 0, - "num_exponent_bits must be non-zero for a valid float"); - static_assert(HF::num_fraction_bits != 0, - "num_fractin_bits must be non-zero for a valid float"); - - const uint_type bits = spvutils::BitwiseCast(value.value()); - const char* const sign = (bits & HF::sign_mask) ? "-" : ""; - const uint_type exponent = static_cast( - (bits & HF::exponent_mask) >> HF::num_fraction_bits); - - uint_type fraction = static_cast((bits & HF::fraction_encode_mask) - << HF::num_overflow_bits); - - const bool is_zero = exponent == 0 && fraction == 0; - const bool is_denorm = exponent == 0 && !is_zero; - - // exponent contains the biased exponent we have to convert it back into - // the normal range. - int_type int_exponent = static_cast(exponent - HF::exponent_bias); - // If the number is all zeros, then we actually have to NOT shift the - // exponent. - int_exponent = is_zero ? 0 : int_exponent; - - // If we are denorm, then start shifting, and decreasing the exponent until - // our leading bit is 1. - - if (is_denorm) { - while ((fraction & HF::fraction_top_bit) == 0) { - fraction = static_cast(fraction << 1); - int_exponent = static_cast(int_exponent - 1); - } - // Since this is denormalized, we have to consume the leading 1 since it - // will end up being implicit. - fraction = static_cast(fraction << 1); // eat the leading 1 - fraction &= HF::fraction_represent_mask; - } - - uint_type fraction_nibbles = HF::fraction_nibbles; - // We do not have to display any trailing 0s, since this represents the - // fractional part. - while (fraction_nibbles > 0 && (fraction & 0xF) == 0) { - // Shift off any trailing values; - fraction = static_cast(fraction >> 4); - --fraction_nibbles; - } - - const auto saved_flags = os.flags(); - const auto saved_fill = os.fill(); - - os << sign << "0x" << (is_zero ? '0' : '1'); - if (fraction_nibbles) { - // Make sure to keep the leading 0s in place, since this is the fractional - // part. - os << "." << std::setw(static_cast(fraction_nibbles)) - << std::setfill('0') << std::hex << fraction; - } - os << "p" << std::dec << (int_exponent >= 0 ? "+" : "") << int_exponent; - - os.flags(saved_flags); - os.fill(saved_fill); - - return os; -} - -// Returns true if negate_value is true and the next character on the -// input stream is a plus or minus sign. In that case we also set the fail bit -// on the stream and set the value to the zero value for its type. -template -inline bool RejectParseDueToLeadingSign(std::istream& is, bool negate_value, - HexFloat& value) { - if (negate_value) { - auto next_char = is.peek(); - if (next_char == '-' || next_char == '+') { - // Fail the parse. Emulate standard behaviour by setting the value to - // the zero value, and set the fail bit on the stream. - value = HexFloat(typename HexFloat::uint_type(0)); - is.setstate(std::ios_base::failbit); - return true; - } - } - return false; -} - -// Parses a floating point number from the given stream and stores it into the -// value parameter. -// If negate_value is true then the number may not have a leading minus or -// plus, and if it successfully parses, then the number is negated before -// being stored into the value parameter. -// If the value cannot be correctly parsed or overflows the target floating -// point type, then set the fail bit on the stream. -// TODO(dneto): Promise C++11 standard behavior in how the value is set in -// the error case, but only after all target platforms implement it correctly. -// In particular, the Microsoft C++ runtime appears to be out of spec. -template -inline std::istream& ParseNormalFloat(std::istream& is, bool negate_value, - HexFloat& value) { - if (RejectParseDueToLeadingSign(is, negate_value, value)) { - return is; - } - T val; - is >> val; - if (negate_value) { - val = -val; - } - value.set_value(val); - // In the failure case, map -0.0 to 0.0. - if (is.fail() && value.getUnsignedBits() == 0u) { - value = HexFloat(typename HexFloat::uint_type(0)); - } - if (val.isInfinity()) { - // Fail the parse. Emulate standard behaviour by setting the value to - // the closest normal value, and set the fail bit on the stream. - value.set_value((value.isNegative() || negate_value) ? T::lowest() - : T::max()); - is.setstate(std::ios_base::failbit); - } - return is; -} - -// Specialization of ParseNormalFloat for FloatProxy values. -// This will parse the float as it were a 32-bit floating point number, -// and then round it down to fit into a Float16 value. -// The number is rounded towards zero. -// If negate_value is true then the number may not have a leading minus or -// plus, and if it successfully parses, then the number is negated before -// being stored into the value parameter. -// If the value cannot be correctly parsed or overflows the target floating -// point type, then set the fail bit on the stream. -// TODO(dneto): Promise C++11 standard behavior in how the value is set in -// the error case, but only after all target platforms implement it correctly. -// In particular, the Microsoft C++ runtime appears to be out of spec. -template <> -inline std::istream& -ParseNormalFloat, HexFloatTraits>>( - std::istream& is, bool negate_value, - HexFloat, HexFloatTraits>>& value) { - // First parse as a 32-bit float. - HexFloat> float_val(0.0f); - ParseNormalFloat(is, negate_value, float_val); - - // Then convert to 16-bit float, saturating at infinities, and - // rounding toward zero. - float_val.castTo(value, kRoundToZero); - - // Overflow on 16-bit behaves the same as for 32- and 64-bit: set the - // fail bit and set the lowest or highest value. - if (Float16::isInfinity(value.value().getAsFloat())) { - value.set_value(value.isNegative() ? Float16::lowest() : Float16::max()); - is.setstate(std::ios_base::failbit); - } - return is; -} - -// Reads a HexFloat from the given stream. -// If the float is not encoded as a hex-float then it will be parsed -// as a regular float. -// This may fail if your stream does not support at least one unget. -// Nan values can be encoded with "0x1.p+exponent_bias". -// This would normally overflow a float and round to -// infinity but this special pattern is the exact representation for a NaN, -// and therefore is actually encoded as the correct NaN. To encode inf, -// either 0x0p+exponent_bias can be specified or any exponent greater than -// exponent_bias. -// Examples using IEEE 32-bit float encoding. -// 0x1.0p+128 (+inf) -// -0x1.0p-128 (-inf) -// -// 0x1.1p+128 (+Nan) -// -0x1.1p+128 (-Nan) -// -// 0x1p+129 (+inf) -// -0x1p+129 (-inf) -template -std::istream& operator>>(std::istream& is, HexFloat& value) { - using HF = HexFloat; - using uint_type = typename HF::uint_type; - using int_type = typename HF::int_type; - - value.set_value(static_cast(0.f)); - - if (is.flags() & std::ios::skipws) { - // If the user wants to skip whitespace , then we should obey that. - while (std::isspace(is.peek())) { - is.get(); - } - } - - auto next_char = is.peek(); - bool negate_value = false; - - if (next_char != '-' && next_char != '0') { - return ParseNormalFloat(is, negate_value, value); - } - - if (next_char == '-') { - negate_value = true; - is.get(); - next_char = is.peek(); - } - - if (next_char == '0') { - is.get(); // We may have to unget this. - auto maybe_hex_start = is.peek(); - if (maybe_hex_start != 'x' && maybe_hex_start != 'X') { - is.unget(); - return ParseNormalFloat(is, negate_value, value); - } else { - is.get(); // Throw away the 'x'; - } - } else { - return ParseNormalFloat(is, negate_value, value); - } - - // This "looks" like a hex-float so treat it as one. - bool seen_p = false; - bool seen_dot = false; - uint_type fraction_index = 0; - - uint_type fraction = 0; - int_type exponent = HF::exponent_bias; - - // Strip off leading zeros so we don't have to special-case them later. - while ((next_char = is.peek()) == '0') { - is.get(); - } - - bool is_denorm = - true; // Assume denorm "representation" until we hear otherwise. - // NB: This does not mean the value is actually denorm, - // it just means that it was written 0. - bool bits_written = false; // Stays false until we write a bit. - while (!seen_p && !seen_dot) { - // Handle characters that are left of the fractional part. - if (next_char == '.') { - seen_dot = true; - } else if (next_char == 'p') { - seen_p = true; - } else if (::isxdigit(next_char)) { - // We know this is not denormalized since we have stripped all leading - // zeroes and we are not a ".". - is_denorm = false; - int number = get_nibble_from_character(next_char); - for (int i = 0; i < 4; ++i, number <<= 1) { - uint_type write_bit = (number & 0x8) ? 0x1 : 0x0; - if (bits_written) { - // If we are here the bits represented belong in the fractional - // part of the float, and we have to adjust the exponent accordingly. - fraction = static_cast( - fraction | - static_cast( - write_bit << (HF::top_bit_left_shift - fraction_index++))); - exponent = static_cast(exponent + 1); - } - bits_written |= write_bit != 0; - } - } else { - // We have not found our exponent yet, so we have to fail. - is.setstate(std::ios::failbit); - return is; - } - is.get(); - next_char = is.peek(); - } - bits_written = false; - while (seen_dot && !seen_p) { - // Handle only fractional parts now. - if (next_char == 'p') { - seen_p = true; - } else if (::isxdigit(next_char)) { - int number = get_nibble_from_character(next_char); - for (int i = 0; i < 4; ++i, number <<= 1) { - uint_type write_bit = (number & 0x8) ? 0x01 : 0x00; - bits_written |= write_bit != 0; - if (is_denorm && !bits_written) { - // Handle modifying the exponent here this way we can handle - // an arbitrary number of hex values without overflowing our - // integer. - exponent = static_cast(exponent - 1); - } else { - fraction = static_cast( - fraction | - static_cast( - write_bit << (HF::top_bit_left_shift - fraction_index++))); - } - } - } else { - // We still have not found our 'p' exponent yet, so this is not a valid - // hex-float. - is.setstate(std::ios::failbit); - return is; - } - is.get(); - next_char = is.peek(); - } - - bool seen_sign = false; - int8_t exponent_sign = 1; - int_type written_exponent = 0; - while (true) { - if ((next_char == '-' || next_char == '+')) { - if (seen_sign) { - is.setstate(std::ios::failbit); - return is; - } - seen_sign = true; - exponent_sign = (next_char == '-') ? -1 : 1; - } else if (::isdigit(next_char)) { - // Hex-floats express their exponent as decimal. - written_exponent = static_cast(written_exponent * 10); - written_exponent = - static_cast(written_exponent + (next_char - '0')); - } else { - break; - } - is.get(); - next_char = is.peek(); - } - - written_exponent = static_cast(written_exponent * exponent_sign); - exponent = static_cast(exponent + written_exponent); - - bool is_zero = is_denorm && (fraction == 0); - if (is_denorm && !is_zero) { - fraction = static_cast(fraction << 1); - exponent = static_cast(exponent - 1); - } else if (is_zero) { - exponent = 0; - } - - if (exponent <= 0 && !is_zero) { - fraction = static_cast(fraction >> 1); - fraction |= static_cast(1) << HF::top_bit_left_shift; - } - - fraction = (fraction >> HF::fraction_right_shift) & HF::fraction_encode_mask; - - const int_type max_exponent = - SetBits::get; - - // Handle actual denorm numbers - while (exponent < 0 && !is_zero) { - fraction = static_cast(fraction >> 1); - exponent = static_cast(exponent + 1); - - fraction &= HF::fraction_encode_mask; - if (fraction == 0) { - // We have underflowed our fraction. We should clamp to zero. - is_zero = true; - exponent = 0; - } - } - - // We have overflowed so we should be inf/-inf. - if (exponent > max_exponent) { - exponent = max_exponent; - fraction = 0; - } - - uint_type output_bits = static_cast( - static_cast(negate_value ? 1 : 0) << HF::top_bit_left_shift); - output_bits |= fraction; - - uint_type shifted_exponent = static_cast( - static_cast(exponent << HF::exponent_left_shift) & - HF::exponent_mask); - output_bits |= shifted_exponent; - - T output_float = spvutils::BitwiseCast(output_bits); - value.set_value(output_float); - - return is; -} - -// Writes a FloatProxy value to a stream. -// Zero and normal numbers are printed in the usual notation, but with -// enough digits to fully reproduce the value. Other values (subnormal, -// NaN, and infinity) are printed as a hex float. -template -std::ostream& operator<<(std::ostream& os, const FloatProxy& value) { - auto float_val = value.getAsFloat(); - switch (std::fpclassify(float_val)) { - case FP_ZERO: - case FP_NORMAL: { - auto saved_precision = os.precision(); - os.precision(std::numeric_limits::digits10); - os << float_val; - os.precision(saved_precision); - } break; - default: - os << HexFloat>(value); - break; - } - return os; -} - -template <> -inline std::ostream& operator<<(std::ostream& os, - const FloatProxy& value) { - os << HexFloat>(value); - return os; -} -} - -#endif // LIBSPIRV_UTIL_HEX_FLOAT_H_ diff --git a/deps/glslang/SPIRV/spirv.hpp b/deps/glslang/SPIRV/spirv.hpp deleted file mode 100644 index a8642006..00000000 --- a/deps/glslang/SPIRV/spirv.hpp +++ /dev/null @@ -1,2509 +0,0 @@ -// Copyright (c) 2014-2020 The Khronos Group Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and/or associated documentation files (the "Materials"), -// to deal in the Materials without restriction, including without limitation -// the rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Materials, and to permit persons to whom the -// Materials are furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Materials. -// -// MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS -// STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND -// HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ -// -// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS -// IN THE MATERIALS. - -// This header is automatically generated by the same tool that creates -// the Binary Section of the SPIR-V specification. - -// Enumeration tokens for SPIR-V, in various styles: -// C, C++, C++11, JSON, Lua, Python, C#, D -// -// - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL -// - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL -// - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL -// - Lua will use tables, e.g.: spv.SourceLanguage.GLSL -// - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] -// - C# will use enum classes in the Specification class located in the "Spv" namespace, -// e.g.: Spv.Specification.SourceLanguage.GLSL -// - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL -// -// Some tokens act like mask values, which can be OR'd together, -// while others are mutually exclusive. The mask-like ones have -// "Mask" in their name, and a parallel enum that has the shift -// amount (1 << x) for each corresponding enumerant. - -#ifndef spirv_HPP -#define spirv_HPP - -namespace spv { - -typedef unsigned int Id; - -#define SPV_VERSION 0x10600 -#define SPV_REVISION 1 - -static const unsigned int MagicNumber = 0x07230203; -static const unsigned int Version = 0x00010600; -static const unsigned int Revision = 1; -static const unsigned int OpCodeMask = 0xffff; -static const unsigned int WordCountShift = 16; - -enum SourceLanguage { - SourceLanguageUnknown = 0, - SourceLanguageESSL = 1, - SourceLanguageGLSL = 2, - SourceLanguageOpenCL_C = 3, - SourceLanguageOpenCL_CPP = 4, - SourceLanguageHLSL = 5, - SourceLanguageCPP_for_OpenCL = 6, - SourceLanguageMax = 0x7fffffff, -}; - -enum ExecutionModel { - ExecutionModelVertex = 0, - ExecutionModelTessellationControl = 1, - ExecutionModelTessellationEvaluation = 2, - ExecutionModelGeometry = 3, - ExecutionModelFragment = 4, - ExecutionModelGLCompute = 5, - ExecutionModelKernel = 6, - ExecutionModelTaskNV = 5267, - ExecutionModelMeshNV = 5268, - ExecutionModelRayGenerationKHR = 5313, - ExecutionModelRayGenerationNV = 5313, - ExecutionModelIntersectionKHR = 5314, - ExecutionModelIntersectionNV = 5314, - ExecutionModelAnyHitKHR = 5315, - ExecutionModelAnyHitNV = 5315, - ExecutionModelClosestHitKHR = 5316, - ExecutionModelClosestHitNV = 5316, - ExecutionModelMissKHR = 5317, - ExecutionModelMissNV = 5317, - ExecutionModelCallableKHR = 5318, - ExecutionModelCallableNV = 5318, - ExecutionModelMax = 0x7fffffff, -}; - -enum AddressingModel { - AddressingModelLogical = 0, - AddressingModelPhysical32 = 1, - AddressingModelPhysical64 = 2, - AddressingModelPhysicalStorageBuffer64 = 5348, - AddressingModelPhysicalStorageBuffer64EXT = 5348, - AddressingModelMax = 0x7fffffff, -}; - -enum MemoryModel { - MemoryModelSimple = 0, - MemoryModelGLSL450 = 1, - MemoryModelOpenCL = 2, - MemoryModelVulkan = 3, - MemoryModelVulkanKHR = 3, - MemoryModelMax = 0x7fffffff, -}; - -enum ExecutionMode { - ExecutionModeInvocations = 0, - ExecutionModeSpacingEqual = 1, - ExecutionModeSpacingFractionalEven = 2, - ExecutionModeSpacingFractionalOdd = 3, - ExecutionModeVertexOrderCw = 4, - ExecutionModeVertexOrderCcw = 5, - ExecutionModePixelCenterInteger = 6, - ExecutionModeOriginUpperLeft = 7, - ExecutionModeOriginLowerLeft = 8, - ExecutionModeEarlyFragmentTests = 9, - ExecutionModePointMode = 10, - ExecutionModeXfb = 11, - ExecutionModeDepthReplacing = 12, - ExecutionModeDepthGreater = 14, - ExecutionModeDepthLess = 15, - ExecutionModeDepthUnchanged = 16, - ExecutionModeLocalSize = 17, - ExecutionModeLocalSizeHint = 18, - ExecutionModeInputPoints = 19, - ExecutionModeInputLines = 20, - ExecutionModeInputLinesAdjacency = 21, - ExecutionModeTriangles = 22, - ExecutionModeInputTrianglesAdjacency = 23, - ExecutionModeQuads = 24, - ExecutionModeIsolines = 25, - ExecutionModeOutputVertices = 26, - ExecutionModeOutputPoints = 27, - ExecutionModeOutputLineStrip = 28, - ExecutionModeOutputTriangleStrip = 29, - ExecutionModeVecTypeHint = 30, - ExecutionModeContractionOff = 31, - ExecutionModeInitializer = 33, - ExecutionModeFinalizer = 34, - ExecutionModeSubgroupSize = 35, - ExecutionModeSubgroupsPerWorkgroup = 36, - ExecutionModeSubgroupsPerWorkgroupId = 37, - ExecutionModeLocalSizeId = 38, - ExecutionModeLocalSizeHintId = 39, - ExecutionModeSubgroupUniformControlFlowKHR = 4421, - ExecutionModePostDepthCoverage = 4446, - ExecutionModeDenormPreserve = 4459, - ExecutionModeDenormFlushToZero = 4460, - ExecutionModeSignedZeroInfNanPreserve = 4461, - ExecutionModeRoundingModeRTE = 4462, - ExecutionModeRoundingModeRTZ = 4463, - ExecutionModeStencilRefReplacingEXT = 5027, - ExecutionModeOutputLinesNV = 5269, - ExecutionModeOutputPrimitivesNV = 5270, - ExecutionModeDerivativeGroupQuadsNV = 5289, - ExecutionModeDerivativeGroupLinearNV = 5290, - ExecutionModeOutputTrianglesNV = 5298, - ExecutionModePixelInterlockOrderedEXT = 5366, - ExecutionModePixelInterlockUnorderedEXT = 5367, - ExecutionModeSampleInterlockOrderedEXT = 5368, - ExecutionModeSampleInterlockUnorderedEXT = 5369, - ExecutionModeShadingRateInterlockOrderedEXT = 5370, - ExecutionModeShadingRateInterlockUnorderedEXT = 5371, - ExecutionModeSharedLocalMemorySizeINTEL = 5618, - ExecutionModeRoundingModeRTPINTEL = 5620, - ExecutionModeRoundingModeRTNINTEL = 5621, - ExecutionModeFloatingPointModeALTINTEL = 5622, - ExecutionModeFloatingPointModeIEEEINTEL = 5623, - ExecutionModeMaxWorkgroupSizeINTEL = 5893, - ExecutionModeMaxWorkDimINTEL = 5894, - ExecutionModeNoGlobalOffsetINTEL = 5895, - ExecutionModeNumSIMDWorkitemsINTEL = 5896, - ExecutionModeSchedulerTargetFmaxMhzINTEL = 5903, - ExecutionModeMax = 0x7fffffff, -}; - -enum StorageClass { - StorageClassUniformConstant = 0, - StorageClassInput = 1, - StorageClassUniform = 2, - StorageClassOutput = 3, - StorageClassWorkgroup = 4, - StorageClassCrossWorkgroup = 5, - StorageClassPrivate = 6, - StorageClassFunction = 7, - StorageClassGeneric = 8, - StorageClassPushConstant = 9, - StorageClassAtomicCounter = 10, - StorageClassImage = 11, - StorageClassStorageBuffer = 12, - StorageClassCallableDataKHR = 5328, - StorageClassCallableDataNV = 5328, - StorageClassIncomingCallableDataKHR = 5329, - StorageClassIncomingCallableDataNV = 5329, - StorageClassRayPayloadKHR = 5338, - StorageClassRayPayloadNV = 5338, - StorageClassHitAttributeKHR = 5339, - StorageClassHitAttributeNV = 5339, - StorageClassIncomingRayPayloadKHR = 5342, - StorageClassIncomingRayPayloadNV = 5342, - StorageClassShaderRecordBufferKHR = 5343, - StorageClassShaderRecordBufferNV = 5343, - StorageClassPhysicalStorageBuffer = 5349, - StorageClassPhysicalStorageBufferEXT = 5349, - StorageClassCodeSectionINTEL = 5605, - StorageClassDeviceOnlyINTEL = 5936, - StorageClassHostOnlyINTEL = 5937, - StorageClassMax = 0x7fffffff, -}; - -enum Dim { - Dim1D = 0, - Dim2D = 1, - Dim3D = 2, - DimCube = 3, - DimRect = 4, - DimBuffer = 5, - DimSubpassData = 6, - DimMax = 0x7fffffff, -}; - -enum SamplerAddressingMode { - SamplerAddressingModeNone = 0, - SamplerAddressingModeClampToEdge = 1, - SamplerAddressingModeClamp = 2, - SamplerAddressingModeRepeat = 3, - SamplerAddressingModeRepeatMirrored = 4, - SamplerAddressingModeMax = 0x7fffffff, -}; - -enum SamplerFilterMode { - SamplerFilterModeNearest = 0, - SamplerFilterModeLinear = 1, - SamplerFilterModeMax = 0x7fffffff, -}; - -enum ImageFormat { - ImageFormatUnknown = 0, - ImageFormatRgba32f = 1, - ImageFormatRgba16f = 2, - ImageFormatR32f = 3, - ImageFormatRgba8 = 4, - ImageFormatRgba8Snorm = 5, - ImageFormatRg32f = 6, - ImageFormatRg16f = 7, - ImageFormatR11fG11fB10f = 8, - ImageFormatR16f = 9, - ImageFormatRgba16 = 10, - ImageFormatRgb10A2 = 11, - ImageFormatRg16 = 12, - ImageFormatRg8 = 13, - ImageFormatR16 = 14, - ImageFormatR8 = 15, - ImageFormatRgba16Snorm = 16, - ImageFormatRg16Snorm = 17, - ImageFormatRg8Snorm = 18, - ImageFormatR16Snorm = 19, - ImageFormatR8Snorm = 20, - ImageFormatRgba32i = 21, - ImageFormatRgba16i = 22, - ImageFormatRgba8i = 23, - ImageFormatR32i = 24, - ImageFormatRg32i = 25, - ImageFormatRg16i = 26, - ImageFormatRg8i = 27, - ImageFormatR16i = 28, - ImageFormatR8i = 29, - ImageFormatRgba32ui = 30, - ImageFormatRgba16ui = 31, - ImageFormatRgba8ui = 32, - ImageFormatR32ui = 33, - ImageFormatRgb10a2ui = 34, - ImageFormatRg32ui = 35, - ImageFormatRg16ui = 36, - ImageFormatRg8ui = 37, - ImageFormatR16ui = 38, - ImageFormatR8ui = 39, - ImageFormatR64ui = 40, - ImageFormatR64i = 41, - ImageFormatMax = 0x7fffffff, -}; - -enum ImageChannelOrder { - ImageChannelOrderR = 0, - ImageChannelOrderA = 1, - ImageChannelOrderRG = 2, - ImageChannelOrderRA = 3, - ImageChannelOrderRGB = 4, - ImageChannelOrderRGBA = 5, - ImageChannelOrderBGRA = 6, - ImageChannelOrderARGB = 7, - ImageChannelOrderIntensity = 8, - ImageChannelOrderLuminance = 9, - ImageChannelOrderRx = 10, - ImageChannelOrderRGx = 11, - ImageChannelOrderRGBx = 12, - ImageChannelOrderDepth = 13, - ImageChannelOrderDepthStencil = 14, - ImageChannelOrdersRGB = 15, - ImageChannelOrdersRGBx = 16, - ImageChannelOrdersRGBA = 17, - ImageChannelOrdersBGRA = 18, - ImageChannelOrderABGR = 19, - ImageChannelOrderMax = 0x7fffffff, -}; - -enum ImageChannelDataType { - ImageChannelDataTypeSnormInt8 = 0, - ImageChannelDataTypeSnormInt16 = 1, - ImageChannelDataTypeUnormInt8 = 2, - ImageChannelDataTypeUnormInt16 = 3, - ImageChannelDataTypeUnormShort565 = 4, - ImageChannelDataTypeUnormShort555 = 5, - ImageChannelDataTypeUnormInt101010 = 6, - ImageChannelDataTypeSignedInt8 = 7, - ImageChannelDataTypeSignedInt16 = 8, - ImageChannelDataTypeSignedInt32 = 9, - ImageChannelDataTypeUnsignedInt8 = 10, - ImageChannelDataTypeUnsignedInt16 = 11, - ImageChannelDataTypeUnsignedInt32 = 12, - ImageChannelDataTypeHalfFloat = 13, - ImageChannelDataTypeFloat = 14, - ImageChannelDataTypeUnormInt24 = 15, - ImageChannelDataTypeUnormInt101010_2 = 16, - ImageChannelDataTypeMax = 0x7fffffff, -}; - -enum ImageOperandsShift { - ImageOperandsBiasShift = 0, - ImageOperandsLodShift = 1, - ImageOperandsGradShift = 2, - ImageOperandsConstOffsetShift = 3, - ImageOperandsOffsetShift = 4, - ImageOperandsConstOffsetsShift = 5, - ImageOperandsSampleShift = 6, - ImageOperandsMinLodShift = 7, - ImageOperandsMakeTexelAvailableShift = 8, - ImageOperandsMakeTexelAvailableKHRShift = 8, - ImageOperandsMakeTexelVisibleShift = 9, - ImageOperandsMakeTexelVisibleKHRShift = 9, - ImageOperandsNonPrivateTexelShift = 10, - ImageOperandsNonPrivateTexelKHRShift = 10, - ImageOperandsVolatileTexelShift = 11, - ImageOperandsVolatileTexelKHRShift = 11, - ImageOperandsSignExtendShift = 12, - ImageOperandsZeroExtendShift = 13, - ImageOperandsNontemporalShift = 14, - ImageOperandsOffsetsShift = 16, - ImageOperandsMax = 0x7fffffff, -}; - -enum ImageOperandsMask { - ImageOperandsMaskNone = 0, - ImageOperandsBiasMask = 0x00000001, - ImageOperandsLodMask = 0x00000002, - ImageOperandsGradMask = 0x00000004, - ImageOperandsConstOffsetMask = 0x00000008, - ImageOperandsOffsetMask = 0x00000010, - ImageOperandsConstOffsetsMask = 0x00000020, - ImageOperandsSampleMask = 0x00000040, - ImageOperandsMinLodMask = 0x00000080, - ImageOperandsMakeTexelAvailableMask = 0x00000100, - ImageOperandsMakeTexelAvailableKHRMask = 0x00000100, - ImageOperandsMakeTexelVisibleMask = 0x00000200, - ImageOperandsMakeTexelVisibleKHRMask = 0x00000200, - ImageOperandsNonPrivateTexelMask = 0x00000400, - ImageOperandsNonPrivateTexelKHRMask = 0x00000400, - ImageOperandsVolatileTexelMask = 0x00000800, - ImageOperandsVolatileTexelKHRMask = 0x00000800, - ImageOperandsSignExtendMask = 0x00001000, - ImageOperandsZeroExtendMask = 0x00002000, - ImageOperandsNontemporalMask = 0x00004000, - ImageOperandsOffsetsMask = 0x00010000, -}; - -enum FPFastMathModeShift { - FPFastMathModeNotNaNShift = 0, - FPFastMathModeNotInfShift = 1, - FPFastMathModeNSZShift = 2, - FPFastMathModeAllowRecipShift = 3, - FPFastMathModeFastShift = 4, - FPFastMathModeAllowContractFastINTELShift = 16, - FPFastMathModeAllowReassocINTELShift = 17, - FPFastMathModeMax = 0x7fffffff, -}; - -enum FPFastMathModeMask { - FPFastMathModeMaskNone = 0, - FPFastMathModeNotNaNMask = 0x00000001, - FPFastMathModeNotInfMask = 0x00000002, - FPFastMathModeNSZMask = 0x00000004, - FPFastMathModeAllowRecipMask = 0x00000008, - FPFastMathModeFastMask = 0x00000010, - FPFastMathModeAllowContractFastINTELMask = 0x00010000, - FPFastMathModeAllowReassocINTELMask = 0x00020000, -}; - -enum FPRoundingMode { - FPRoundingModeRTE = 0, - FPRoundingModeRTZ = 1, - FPRoundingModeRTP = 2, - FPRoundingModeRTN = 3, - FPRoundingModeMax = 0x7fffffff, -}; - -enum LinkageType { - LinkageTypeExport = 0, - LinkageTypeImport = 1, - LinkageTypeLinkOnceODR = 2, - LinkageTypeMax = 0x7fffffff, -}; - -enum AccessQualifier { - AccessQualifierReadOnly = 0, - AccessQualifierWriteOnly = 1, - AccessQualifierReadWrite = 2, - AccessQualifierMax = 0x7fffffff, -}; - -enum FunctionParameterAttribute { - FunctionParameterAttributeZext = 0, - FunctionParameterAttributeSext = 1, - FunctionParameterAttributeByVal = 2, - FunctionParameterAttributeSret = 3, - FunctionParameterAttributeNoAlias = 4, - FunctionParameterAttributeNoCapture = 5, - FunctionParameterAttributeNoWrite = 6, - FunctionParameterAttributeNoReadWrite = 7, - FunctionParameterAttributeMax = 0x7fffffff, -}; - -enum Decoration { - DecorationRelaxedPrecision = 0, - DecorationSpecId = 1, - DecorationBlock = 2, - DecorationBufferBlock = 3, - DecorationRowMajor = 4, - DecorationColMajor = 5, - DecorationArrayStride = 6, - DecorationMatrixStride = 7, - DecorationGLSLShared = 8, - DecorationGLSLPacked = 9, - DecorationCPacked = 10, - DecorationBuiltIn = 11, - DecorationNoPerspective = 13, - DecorationFlat = 14, - DecorationPatch = 15, - DecorationCentroid = 16, - DecorationSample = 17, - DecorationInvariant = 18, - DecorationRestrict = 19, - DecorationAliased = 20, - DecorationVolatile = 21, - DecorationConstant = 22, - DecorationCoherent = 23, - DecorationNonWritable = 24, - DecorationNonReadable = 25, - DecorationUniform = 26, - DecorationUniformId = 27, - DecorationSaturatedConversion = 28, - DecorationStream = 29, - DecorationLocation = 30, - DecorationComponent = 31, - DecorationIndex = 32, - DecorationBinding = 33, - DecorationDescriptorSet = 34, - DecorationOffset = 35, - DecorationXfbBuffer = 36, - DecorationXfbStride = 37, - DecorationFuncParamAttr = 38, - DecorationFPRoundingMode = 39, - DecorationFPFastMathMode = 40, - DecorationLinkageAttributes = 41, - DecorationNoContraction = 42, - DecorationInputAttachmentIndex = 43, - DecorationAlignment = 44, - DecorationMaxByteOffset = 45, - DecorationAlignmentId = 46, - DecorationMaxByteOffsetId = 47, - DecorationNoSignedWrap = 4469, - DecorationNoUnsignedWrap = 4470, - DecorationExplicitInterpAMD = 4999, - DecorationOverrideCoverageNV = 5248, - DecorationPassthroughNV = 5250, - DecorationViewportRelativeNV = 5252, - DecorationSecondaryViewportRelativeNV = 5256, - DecorationPerPrimitiveNV = 5271, - DecorationPerViewNV = 5272, - DecorationPerTaskNV = 5273, - DecorationPerVertexKHR = 5285, - DecorationPerVertexNV = 5285, - DecorationNonUniform = 5300, - DecorationNonUniformEXT = 5300, - DecorationRestrictPointer = 5355, - DecorationRestrictPointerEXT = 5355, - DecorationAliasedPointer = 5356, - DecorationAliasedPointerEXT = 5356, - DecorationBindlessSamplerNV = 5398, - DecorationBindlessImageNV = 5399, - DecorationBoundSamplerNV = 5400, - DecorationBoundImageNV = 5401, - DecorationSIMTCallINTEL = 5599, - DecorationReferencedIndirectlyINTEL = 5602, - DecorationClobberINTEL = 5607, - DecorationSideEffectsINTEL = 5608, - DecorationVectorComputeVariableINTEL = 5624, - DecorationFuncParamIOKindINTEL = 5625, - DecorationVectorComputeFunctionINTEL = 5626, - DecorationStackCallINTEL = 5627, - DecorationGlobalVariableOffsetINTEL = 5628, - DecorationCounterBuffer = 5634, - DecorationHlslCounterBufferGOOGLE = 5634, - DecorationHlslSemanticGOOGLE = 5635, - DecorationUserSemantic = 5635, - DecorationUserTypeGOOGLE = 5636, - DecorationFunctionRoundingModeINTEL = 5822, - DecorationFunctionDenormModeINTEL = 5823, - DecorationRegisterINTEL = 5825, - DecorationMemoryINTEL = 5826, - DecorationNumbanksINTEL = 5827, - DecorationBankwidthINTEL = 5828, - DecorationMaxPrivateCopiesINTEL = 5829, - DecorationSinglepumpINTEL = 5830, - DecorationDoublepumpINTEL = 5831, - DecorationMaxReplicatesINTEL = 5832, - DecorationSimpleDualPortINTEL = 5833, - DecorationMergeINTEL = 5834, - DecorationBankBitsINTEL = 5835, - DecorationForcePow2DepthINTEL = 5836, - DecorationBurstCoalesceINTEL = 5899, - DecorationCacheSizeINTEL = 5900, - DecorationDontStaticallyCoalesceINTEL = 5901, - DecorationPrefetchINTEL = 5902, - DecorationStallEnableINTEL = 5905, - DecorationFuseLoopsInFunctionINTEL = 5907, - DecorationBufferLocationINTEL = 5921, - DecorationIOPipeStorageINTEL = 5944, - DecorationFunctionFloatingPointModeINTEL = 6080, - DecorationSingleElementVectorINTEL = 6085, - DecorationVectorComputeCallableFunctionINTEL = 6087, - DecorationMediaBlockIOINTEL = 6140, - DecorationMax = 0x7fffffff, -}; - -enum BuiltIn { - BuiltInPosition = 0, - BuiltInPointSize = 1, - BuiltInClipDistance = 3, - BuiltInCullDistance = 4, - BuiltInVertexId = 5, - BuiltInInstanceId = 6, - BuiltInPrimitiveId = 7, - BuiltInInvocationId = 8, - BuiltInLayer = 9, - BuiltInViewportIndex = 10, - BuiltInTessLevelOuter = 11, - BuiltInTessLevelInner = 12, - BuiltInTessCoord = 13, - BuiltInPatchVertices = 14, - BuiltInFragCoord = 15, - BuiltInPointCoord = 16, - BuiltInFrontFacing = 17, - BuiltInSampleId = 18, - BuiltInSamplePosition = 19, - BuiltInSampleMask = 20, - BuiltInFragDepth = 22, - BuiltInHelperInvocation = 23, - BuiltInNumWorkgroups = 24, - BuiltInWorkgroupSize = 25, - BuiltInWorkgroupId = 26, - BuiltInLocalInvocationId = 27, - BuiltInGlobalInvocationId = 28, - BuiltInLocalInvocationIndex = 29, - BuiltInWorkDim = 30, - BuiltInGlobalSize = 31, - BuiltInEnqueuedWorkgroupSize = 32, - BuiltInGlobalOffset = 33, - BuiltInGlobalLinearId = 34, - BuiltInSubgroupSize = 36, - BuiltInSubgroupMaxSize = 37, - BuiltInNumSubgroups = 38, - BuiltInNumEnqueuedSubgroups = 39, - BuiltInSubgroupId = 40, - 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, - BuiltInPrimitiveShadingRateKHR = 4432, - BuiltInDeviceIndex = 4438, - BuiltInViewIndex = 4440, - BuiltInShadingRateKHR = 4444, - 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, - BuiltInTaskCountNV = 5274, - BuiltInPrimitiveCountNV = 5275, - BuiltInPrimitiveIndicesNV = 5276, - BuiltInClipDistancePerViewNV = 5277, - BuiltInCullDistancePerViewNV = 5278, - BuiltInLayerPerViewNV = 5279, - BuiltInMeshViewCountNV = 5280, - BuiltInMeshViewIndicesNV = 5281, - BuiltInBaryCoordKHR = 5286, - BuiltInBaryCoordNV = 5286, - BuiltInBaryCoordNoPerspKHR = 5287, - BuiltInBaryCoordNoPerspNV = 5287, - BuiltInFragSizeEXT = 5292, - BuiltInFragmentSizeNV = 5292, - BuiltInFragInvocationCountEXT = 5293, - BuiltInInvocationsPerPixelNV = 5293, - BuiltInLaunchIdKHR = 5319, - BuiltInLaunchIdNV = 5319, - BuiltInLaunchSizeKHR = 5320, - BuiltInLaunchSizeNV = 5320, - BuiltInWorldRayOriginKHR = 5321, - BuiltInWorldRayOriginNV = 5321, - BuiltInWorldRayDirectionKHR = 5322, - BuiltInWorldRayDirectionNV = 5322, - BuiltInObjectRayOriginKHR = 5323, - BuiltInObjectRayOriginNV = 5323, - BuiltInObjectRayDirectionKHR = 5324, - BuiltInObjectRayDirectionNV = 5324, - BuiltInRayTminKHR = 5325, - BuiltInRayTminNV = 5325, - BuiltInRayTmaxKHR = 5326, - BuiltInRayTmaxNV = 5326, - BuiltInInstanceCustomIndexKHR = 5327, - BuiltInInstanceCustomIndexNV = 5327, - BuiltInObjectToWorldKHR = 5330, - BuiltInObjectToWorldNV = 5330, - BuiltInWorldToObjectKHR = 5331, - BuiltInWorldToObjectNV = 5331, - BuiltInHitTNV = 5332, - BuiltInHitKindKHR = 5333, - BuiltInHitKindNV = 5333, - BuiltInCurrentRayTimeNV = 5334, - BuiltInIncomingRayFlagsKHR = 5351, - BuiltInIncomingRayFlagsNV = 5351, - BuiltInRayGeometryIndexKHR = 5352, - BuiltInWarpsPerSMNV = 5374, - BuiltInSMCountNV = 5375, - BuiltInWarpIDNV = 5376, - BuiltInSMIDNV = 5377, - BuiltInMax = 0x7fffffff, -}; - -enum SelectionControlShift { - SelectionControlFlattenShift = 0, - SelectionControlDontFlattenShift = 1, - SelectionControlMax = 0x7fffffff, -}; - -enum SelectionControlMask { - SelectionControlMaskNone = 0, - SelectionControlFlattenMask = 0x00000001, - SelectionControlDontFlattenMask = 0x00000002, -}; - -enum LoopControlShift { - LoopControlUnrollShift = 0, - LoopControlDontUnrollShift = 1, - LoopControlDependencyInfiniteShift = 2, - LoopControlDependencyLengthShift = 3, - LoopControlMinIterationsShift = 4, - LoopControlMaxIterationsShift = 5, - LoopControlIterationMultipleShift = 6, - LoopControlPeelCountShift = 7, - LoopControlPartialCountShift = 8, - LoopControlInitiationIntervalINTELShift = 16, - LoopControlMaxConcurrencyINTELShift = 17, - LoopControlDependencyArrayINTELShift = 18, - LoopControlPipelineEnableINTELShift = 19, - LoopControlLoopCoalesceINTELShift = 20, - LoopControlMaxInterleavingINTELShift = 21, - LoopControlSpeculatedIterationsINTELShift = 22, - LoopControlNoFusionINTELShift = 23, - LoopControlMax = 0x7fffffff, -}; - -enum LoopControlMask { - LoopControlMaskNone = 0, - LoopControlUnrollMask = 0x00000001, - LoopControlDontUnrollMask = 0x00000002, - LoopControlDependencyInfiniteMask = 0x00000004, - LoopControlDependencyLengthMask = 0x00000008, - LoopControlMinIterationsMask = 0x00000010, - LoopControlMaxIterationsMask = 0x00000020, - LoopControlIterationMultipleMask = 0x00000040, - LoopControlPeelCountMask = 0x00000080, - LoopControlPartialCountMask = 0x00000100, - LoopControlInitiationIntervalINTELMask = 0x00010000, - LoopControlMaxConcurrencyINTELMask = 0x00020000, - LoopControlDependencyArrayINTELMask = 0x00040000, - LoopControlPipelineEnableINTELMask = 0x00080000, - LoopControlLoopCoalesceINTELMask = 0x00100000, - LoopControlMaxInterleavingINTELMask = 0x00200000, - LoopControlSpeculatedIterationsINTELMask = 0x00400000, - LoopControlNoFusionINTELMask = 0x00800000, -}; - -enum FunctionControlShift { - FunctionControlInlineShift = 0, - FunctionControlDontInlineShift = 1, - FunctionControlPureShift = 2, - FunctionControlConstShift = 3, - FunctionControlOptNoneINTELShift = 16, - FunctionControlMax = 0x7fffffff, -}; - -enum FunctionControlMask { - FunctionControlMaskNone = 0, - FunctionControlInlineMask = 0x00000001, - FunctionControlDontInlineMask = 0x00000002, - FunctionControlPureMask = 0x00000004, - FunctionControlConstMask = 0x00000008, - FunctionControlOptNoneINTELMask = 0x00010000, -}; - -enum MemorySemanticsShift { - MemorySemanticsAcquireShift = 1, - MemorySemanticsReleaseShift = 2, - MemorySemanticsAcquireReleaseShift = 3, - MemorySemanticsSequentiallyConsistentShift = 4, - MemorySemanticsUniformMemoryShift = 6, - MemorySemanticsSubgroupMemoryShift = 7, - MemorySemanticsWorkgroupMemoryShift = 8, - MemorySemanticsCrossWorkgroupMemoryShift = 9, - MemorySemanticsAtomicCounterMemoryShift = 10, - MemorySemanticsImageMemoryShift = 11, - MemorySemanticsOutputMemoryShift = 12, - MemorySemanticsOutputMemoryKHRShift = 12, - MemorySemanticsMakeAvailableShift = 13, - MemorySemanticsMakeAvailableKHRShift = 13, - MemorySemanticsMakeVisibleShift = 14, - MemorySemanticsMakeVisibleKHRShift = 14, - MemorySemanticsVolatileShift = 15, - MemorySemanticsMax = 0x7fffffff, -}; - -enum MemorySemanticsMask { - MemorySemanticsMaskNone = 0, - MemorySemanticsAcquireMask = 0x00000002, - MemorySemanticsReleaseMask = 0x00000004, - MemorySemanticsAcquireReleaseMask = 0x00000008, - MemorySemanticsSequentiallyConsistentMask = 0x00000010, - MemorySemanticsUniformMemoryMask = 0x00000040, - MemorySemanticsSubgroupMemoryMask = 0x00000080, - MemorySemanticsWorkgroupMemoryMask = 0x00000100, - MemorySemanticsCrossWorkgroupMemoryMask = 0x00000200, - MemorySemanticsAtomicCounterMemoryMask = 0x00000400, - MemorySemanticsImageMemoryMask = 0x00000800, - MemorySemanticsOutputMemoryMask = 0x00001000, - MemorySemanticsOutputMemoryKHRMask = 0x00001000, - MemorySemanticsMakeAvailableMask = 0x00002000, - MemorySemanticsMakeAvailableKHRMask = 0x00002000, - MemorySemanticsMakeVisibleMask = 0x00004000, - MemorySemanticsMakeVisibleKHRMask = 0x00004000, - MemorySemanticsVolatileMask = 0x00008000, -}; - -enum MemoryAccessShift { - MemoryAccessVolatileShift = 0, - MemoryAccessAlignedShift = 1, - MemoryAccessNontemporalShift = 2, - MemoryAccessMakePointerAvailableShift = 3, - MemoryAccessMakePointerAvailableKHRShift = 3, - MemoryAccessMakePointerVisibleShift = 4, - MemoryAccessMakePointerVisibleKHRShift = 4, - MemoryAccessNonPrivatePointerShift = 5, - MemoryAccessNonPrivatePointerKHRShift = 5, - MemoryAccessMax = 0x7fffffff, -}; - -enum MemoryAccessMask { - MemoryAccessMaskNone = 0, - MemoryAccessVolatileMask = 0x00000001, - MemoryAccessAlignedMask = 0x00000002, - MemoryAccessNontemporalMask = 0x00000004, - MemoryAccessMakePointerAvailableMask = 0x00000008, - MemoryAccessMakePointerAvailableKHRMask = 0x00000008, - MemoryAccessMakePointerVisibleMask = 0x00000010, - MemoryAccessMakePointerVisibleKHRMask = 0x00000010, - MemoryAccessNonPrivatePointerMask = 0x00000020, - MemoryAccessNonPrivatePointerKHRMask = 0x00000020, -}; - -enum Scope { - ScopeCrossDevice = 0, - ScopeDevice = 1, - ScopeWorkgroup = 2, - ScopeSubgroup = 3, - ScopeInvocation = 4, - ScopeQueueFamily = 5, - ScopeQueueFamilyKHR = 5, - ScopeShaderCallKHR = 6, - ScopeMax = 0x7fffffff, -}; - -enum GroupOperation { - GroupOperationReduce = 0, - GroupOperationInclusiveScan = 1, - GroupOperationExclusiveScan = 2, - GroupOperationClusteredReduce = 3, - GroupOperationPartitionedReduceNV = 6, - GroupOperationPartitionedInclusiveScanNV = 7, - GroupOperationPartitionedExclusiveScanNV = 8, - GroupOperationMax = 0x7fffffff, -}; - -enum KernelEnqueueFlags { - KernelEnqueueFlagsNoWait = 0, - KernelEnqueueFlagsWaitKernel = 1, - KernelEnqueueFlagsWaitWorkGroup = 2, - KernelEnqueueFlagsMax = 0x7fffffff, -}; - -enum KernelProfilingInfoShift { - KernelProfilingInfoCmdExecTimeShift = 0, - KernelProfilingInfoMax = 0x7fffffff, -}; - -enum KernelProfilingInfoMask { - KernelProfilingInfoMaskNone = 0, - KernelProfilingInfoCmdExecTimeMask = 0x00000001, -}; - -enum Capability { - CapabilityMatrix = 0, - CapabilityShader = 1, - CapabilityGeometry = 2, - CapabilityTessellation = 3, - CapabilityAddresses = 4, - CapabilityLinkage = 5, - CapabilityKernel = 6, - CapabilityVector16 = 7, - CapabilityFloat16Buffer = 8, - CapabilityFloat16 = 9, - CapabilityFloat64 = 10, - CapabilityInt64 = 11, - CapabilityInt64Atomics = 12, - CapabilityImageBasic = 13, - CapabilityImageReadWrite = 14, - CapabilityImageMipmap = 15, - CapabilityPipes = 17, - CapabilityGroups = 18, - CapabilityDeviceEnqueue = 19, - CapabilityLiteralSampler = 20, - CapabilityAtomicStorage = 21, - CapabilityInt16 = 22, - CapabilityTessellationPointSize = 23, - CapabilityGeometryPointSize = 24, - CapabilityImageGatherExtended = 25, - CapabilityStorageImageMultisample = 27, - CapabilityUniformBufferArrayDynamicIndexing = 28, - CapabilitySampledImageArrayDynamicIndexing = 29, - CapabilityStorageBufferArrayDynamicIndexing = 30, - CapabilityStorageImageArrayDynamicIndexing = 31, - CapabilityClipDistance = 32, - CapabilityCullDistance = 33, - CapabilityImageCubeArray = 34, - CapabilitySampleRateShading = 35, - CapabilityImageRect = 36, - CapabilitySampledRect = 37, - CapabilityGenericPointer = 38, - CapabilityInt8 = 39, - CapabilityInputAttachment = 40, - CapabilitySparseResidency = 41, - CapabilityMinLod = 42, - CapabilitySampled1D = 43, - CapabilityImage1D = 44, - CapabilitySampledCubeArray = 45, - CapabilitySampledBuffer = 46, - CapabilityImageBuffer = 47, - CapabilityImageMSArray = 48, - CapabilityStorageImageExtendedFormats = 49, - CapabilityImageQuery = 50, - CapabilityDerivativeControl = 51, - CapabilityInterpolationFunction = 52, - CapabilityTransformFeedback = 53, - CapabilityGeometryStreams = 54, - 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, - CapabilityShaderLayer = 69, - CapabilityShaderViewportIndex = 70, - CapabilityUniformDecoration = 71, - CapabilityFragmentShadingRateKHR = 4422, - CapabilitySubgroupBallotKHR = 4423, - CapabilityDrawParameters = 4427, - CapabilityWorkgroupMemoryExplicitLayoutKHR = 4428, - CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR = 4429, - CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR = 4430, - 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, - CapabilityStorageBuffer8BitAccess = 4448, - CapabilityUniformAndStorageBuffer8BitAccess = 4449, - CapabilityStoragePushConstant8 = 4450, - CapabilityDenormPreserve = 4464, - CapabilityDenormFlushToZero = 4465, - CapabilitySignedZeroInfNanPreserve = 4466, - CapabilityRoundingModeRTE = 4467, - CapabilityRoundingModeRTZ = 4468, - CapabilityRayQueryProvisionalKHR = 4471, - CapabilityRayQueryKHR = 4472, - CapabilityRayTraversalPrimitiveCullingKHR = 4478, - CapabilityRayTracingKHR = 4479, - CapabilityFloat16ImageAMD = 5008, - CapabilityImageGatherBiasLodAMD = 5009, - CapabilityFragmentMaskAMD = 5010, - CapabilityStencilExportEXT = 5013, - CapabilityImageReadWriteLodAMD = 5015, - CapabilityInt64ImageEXT = 5016, - CapabilityShaderClockKHR = 5055, - CapabilitySampleMaskOverrideCoverageNV = 5249, - CapabilityGeometryShaderPassthroughNV = 5251, - CapabilityShaderViewportIndexLayerEXT = 5254, - CapabilityShaderViewportIndexLayerNV = 5254, - CapabilityShaderViewportMaskNV = 5255, - CapabilityShaderStereoViewNV = 5259, - CapabilityPerViewAttributesNV = 5260, - CapabilityFragmentFullyCoveredEXT = 5265, - CapabilityMeshShadingNV = 5266, - CapabilityImageFootprintNV = 5282, - CapabilityFragmentBarycentricKHR = 5284, - CapabilityFragmentBarycentricNV = 5284, - CapabilityComputeDerivativeGroupQuadsNV = 5288, - CapabilityFragmentDensityEXT = 5291, - CapabilityShadingRateNV = 5291, - CapabilityGroupNonUniformPartitionedNV = 5297, - CapabilityShaderNonUniform = 5301, - CapabilityShaderNonUniformEXT = 5301, - CapabilityRuntimeDescriptorArray = 5302, - CapabilityRuntimeDescriptorArrayEXT = 5302, - CapabilityInputAttachmentArrayDynamicIndexing = 5303, - CapabilityInputAttachmentArrayDynamicIndexingEXT = 5303, - CapabilityUniformTexelBufferArrayDynamicIndexing = 5304, - CapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304, - CapabilityStorageTexelBufferArrayDynamicIndexing = 5305, - CapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305, - CapabilityUniformBufferArrayNonUniformIndexing = 5306, - CapabilityUniformBufferArrayNonUniformIndexingEXT = 5306, - CapabilitySampledImageArrayNonUniformIndexing = 5307, - CapabilitySampledImageArrayNonUniformIndexingEXT = 5307, - CapabilityStorageBufferArrayNonUniformIndexing = 5308, - CapabilityStorageBufferArrayNonUniformIndexingEXT = 5308, - CapabilityStorageImageArrayNonUniformIndexing = 5309, - CapabilityStorageImageArrayNonUniformIndexingEXT = 5309, - CapabilityInputAttachmentArrayNonUniformIndexing = 5310, - CapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310, - CapabilityUniformTexelBufferArrayNonUniformIndexing = 5311, - CapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311, - CapabilityStorageTexelBufferArrayNonUniformIndexing = 5312, - CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312, - CapabilityRayTracingNV = 5340, - CapabilityRayTracingMotionBlurNV = 5341, - CapabilityVulkanMemoryModel = 5345, - CapabilityVulkanMemoryModelKHR = 5345, - CapabilityVulkanMemoryModelDeviceScope = 5346, - CapabilityVulkanMemoryModelDeviceScopeKHR = 5346, - CapabilityPhysicalStorageBufferAddresses = 5347, - CapabilityPhysicalStorageBufferAddressesEXT = 5347, - CapabilityComputeDerivativeGroupLinearNV = 5350, - CapabilityRayTracingProvisionalKHR = 5353, - CapabilityCooperativeMatrixNV = 5357, - CapabilityFragmentShaderSampleInterlockEXT = 5363, - CapabilityFragmentShaderShadingRateInterlockEXT = 5372, - CapabilityShaderSMBuiltinsNV = 5373, - CapabilityFragmentShaderPixelInterlockEXT = 5378, - CapabilityDemoteToHelperInvocation = 5379, - CapabilityDemoteToHelperInvocationEXT = 5379, - CapabilityBindlessTextureNV = 5390, - CapabilitySubgroupShuffleINTEL = 5568, - CapabilitySubgroupBufferBlockIOINTEL = 5569, - CapabilitySubgroupImageBlockIOINTEL = 5570, - CapabilitySubgroupImageMediaBlockIOINTEL = 5579, - CapabilityRoundToInfinityINTEL = 5582, - CapabilityFloatingPointModeINTEL = 5583, - CapabilityIntegerFunctions2INTEL = 5584, - CapabilityFunctionPointersINTEL = 5603, - CapabilityIndirectReferencesINTEL = 5604, - CapabilityAsmINTEL = 5606, - CapabilityAtomicFloat32MinMaxEXT = 5612, - CapabilityAtomicFloat64MinMaxEXT = 5613, - CapabilityAtomicFloat16MinMaxEXT = 5616, - CapabilityVectorComputeINTEL = 5617, - CapabilityVectorAnyINTEL = 5619, - CapabilityExpectAssumeKHR = 5629, - CapabilitySubgroupAvcMotionEstimationINTEL = 5696, - CapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697, - CapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698, - CapabilityVariableLengthArrayINTEL = 5817, - CapabilityFunctionFloatControlINTEL = 5821, - CapabilityFPGAMemoryAttributesINTEL = 5824, - CapabilityFPFastMathModeINTEL = 5837, - CapabilityArbitraryPrecisionIntegersINTEL = 5844, - CapabilityArbitraryPrecisionFloatingPointINTEL = 5845, - CapabilityUnstructuredLoopControlsINTEL = 5886, - CapabilityFPGALoopControlsINTEL = 5888, - CapabilityKernelAttributesINTEL = 5892, - CapabilityFPGAKernelAttributesINTEL = 5897, - CapabilityFPGAMemoryAccessesINTEL = 5898, - CapabilityFPGAClusterAttributesINTEL = 5904, - CapabilityLoopFuseINTEL = 5906, - CapabilityFPGABufferLocationINTEL = 5920, - CapabilityArbitraryPrecisionFixedPointINTEL = 5922, - CapabilityUSMStorageClassesINTEL = 5935, - CapabilityIOPipesINTEL = 5943, - CapabilityBlockingPipesINTEL = 5945, - CapabilityFPGARegINTEL = 5948, - CapabilityDotProductInputAll = 6016, - CapabilityDotProductInputAllKHR = 6016, - CapabilityDotProductInput4x8Bit = 6017, - CapabilityDotProductInput4x8BitKHR = 6017, - CapabilityDotProductInput4x8BitPacked = 6018, - CapabilityDotProductInput4x8BitPackedKHR = 6018, - CapabilityDotProduct = 6019, - CapabilityDotProductKHR = 6019, - CapabilityBitInstructions = 6025, - CapabilityAtomicFloat32AddEXT = 6033, - CapabilityAtomicFloat64AddEXT = 6034, - CapabilityLongConstantCompositeINTEL = 6089, - CapabilityOptNoneINTEL = 6094, - CapabilityAtomicFloat16AddEXT = 6095, - CapabilityDebugInfoModuleINTEL = 6114, - CapabilityMax = 0x7fffffff, -}; - -enum RayFlagsShift { - RayFlagsOpaqueKHRShift = 0, - RayFlagsNoOpaqueKHRShift = 1, - RayFlagsTerminateOnFirstHitKHRShift = 2, - RayFlagsSkipClosestHitShaderKHRShift = 3, - RayFlagsCullBackFacingTrianglesKHRShift = 4, - RayFlagsCullFrontFacingTrianglesKHRShift = 5, - RayFlagsCullOpaqueKHRShift = 6, - RayFlagsCullNoOpaqueKHRShift = 7, - RayFlagsSkipTrianglesKHRShift = 8, - RayFlagsSkipAABBsKHRShift = 9, - RayFlagsMax = 0x7fffffff, -}; - -enum RayFlagsMask { - RayFlagsMaskNone = 0, - RayFlagsOpaqueKHRMask = 0x00000001, - RayFlagsNoOpaqueKHRMask = 0x00000002, - RayFlagsTerminateOnFirstHitKHRMask = 0x00000004, - RayFlagsSkipClosestHitShaderKHRMask = 0x00000008, - RayFlagsCullBackFacingTrianglesKHRMask = 0x00000010, - RayFlagsCullFrontFacingTrianglesKHRMask = 0x00000020, - RayFlagsCullOpaqueKHRMask = 0x00000040, - RayFlagsCullNoOpaqueKHRMask = 0x00000080, - RayFlagsSkipTrianglesKHRMask = 0x00000100, - RayFlagsSkipAABBsKHRMask = 0x00000200, -}; - -enum RayQueryIntersection { - RayQueryIntersectionRayQueryCandidateIntersectionKHR = 0, - RayQueryIntersectionRayQueryCommittedIntersectionKHR = 1, - RayQueryIntersectionMax = 0x7fffffff, -}; - -enum RayQueryCommittedIntersectionType { - RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR = 0, - RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR = 1, - RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR = 2, - RayQueryCommittedIntersectionTypeMax = 0x7fffffff, -}; - -enum RayQueryCandidateIntersectionType { - RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR = 0, - RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR = 1, - RayQueryCandidateIntersectionTypeMax = 0x7fffffff, -}; - -enum FragmentShadingRateShift { - FragmentShadingRateVertical2PixelsShift = 0, - FragmentShadingRateVertical4PixelsShift = 1, - FragmentShadingRateHorizontal2PixelsShift = 2, - FragmentShadingRateHorizontal4PixelsShift = 3, - FragmentShadingRateMax = 0x7fffffff, -}; - -enum FragmentShadingRateMask { - FragmentShadingRateMaskNone = 0, - FragmentShadingRateVertical2PixelsMask = 0x00000001, - FragmentShadingRateVertical4PixelsMask = 0x00000002, - FragmentShadingRateHorizontal2PixelsMask = 0x00000004, - FragmentShadingRateHorizontal4PixelsMask = 0x00000008, -}; - -enum FPDenormMode { - FPDenormModePreserve = 0, - FPDenormModeFlushToZero = 1, - FPDenormModeMax = 0x7fffffff, -}; - -enum FPOperationMode { - FPOperationModeIEEE = 0, - FPOperationModeALT = 1, - FPOperationModeMax = 0x7fffffff, -}; - -enum QuantizationModes { - QuantizationModesTRN = 0, - QuantizationModesTRN_ZERO = 1, - QuantizationModesRND = 2, - QuantizationModesRND_ZERO = 3, - QuantizationModesRND_INF = 4, - QuantizationModesRND_MIN_INF = 5, - QuantizationModesRND_CONV = 6, - QuantizationModesRND_CONV_ODD = 7, - QuantizationModesMax = 0x7fffffff, -}; - -enum OverflowModes { - OverflowModesWRAP = 0, - OverflowModesSAT = 1, - OverflowModesSAT_ZERO = 2, - OverflowModesSAT_SYM = 3, - OverflowModesMax = 0x7fffffff, -}; - -enum PackedVectorFormat { - PackedVectorFormatPackedVectorFormat4x8Bit = 0, - PackedVectorFormatPackedVectorFormat4x8BitKHR = 0, - PackedVectorFormatMax = 0x7fffffff, -}; - -enum Op { - OpNop = 0, - OpUndef = 1, - OpSourceContinued = 2, - OpSource = 3, - OpSourceExtension = 4, - OpName = 5, - OpMemberName = 6, - OpString = 7, - OpLine = 8, - OpExtension = 10, - OpExtInstImport = 11, - OpExtInst = 12, - OpMemoryModel = 14, - OpEntryPoint = 15, - OpExecutionMode = 16, - OpCapability = 17, - OpTypeVoid = 19, - OpTypeBool = 20, - OpTypeInt = 21, - OpTypeFloat = 22, - OpTypeVector = 23, - OpTypeMatrix = 24, - OpTypeImage = 25, - OpTypeSampler = 26, - OpTypeSampledImage = 27, - OpTypeArray = 28, - OpTypeRuntimeArray = 29, - OpTypeStruct = 30, - OpTypeOpaque = 31, - OpTypePointer = 32, - OpTypeFunction = 33, - OpTypeEvent = 34, - OpTypeDeviceEvent = 35, - OpTypeReserveId = 36, - OpTypeQueue = 37, - OpTypePipe = 38, - OpTypeForwardPointer = 39, - OpConstantTrue = 41, - OpConstantFalse = 42, - OpConstant = 43, - OpConstantComposite = 44, - OpConstantSampler = 45, - OpConstantNull = 46, - OpSpecConstantTrue = 48, - OpSpecConstantFalse = 49, - OpSpecConstant = 50, - OpSpecConstantComposite = 51, - OpSpecConstantOp = 52, - OpFunction = 54, - OpFunctionParameter = 55, - OpFunctionEnd = 56, - OpFunctionCall = 57, - OpVariable = 59, - OpImageTexelPointer = 60, - OpLoad = 61, - OpStore = 62, - OpCopyMemory = 63, - OpCopyMemorySized = 64, - OpAccessChain = 65, - OpInBoundsAccessChain = 66, - OpPtrAccessChain = 67, - OpArrayLength = 68, - OpGenericPtrMemSemantics = 69, - OpInBoundsPtrAccessChain = 70, - OpDecorate = 71, - OpMemberDecorate = 72, - OpDecorationGroup = 73, - OpGroupDecorate = 74, - OpGroupMemberDecorate = 75, - OpVectorExtractDynamic = 77, - OpVectorInsertDynamic = 78, - OpVectorShuffle = 79, - OpCompositeConstruct = 80, - OpCompositeExtract = 81, - OpCompositeInsert = 82, - OpCopyObject = 83, - OpTranspose = 84, - OpSampledImage = 86, - OpImageSampleImplicitLod = 87, - OpImageSampleExplicitLod = 88, - OpImageSampleDrefImplicitLod = 89, - OpImageSampleDrefExplicitLod = 90, - OpImageSampleProjImplicitLod = 91, - OpImageSampleProjExplicitLod = 92, - OpImageSampleProjDrefImplicitLod = 93, - OpImageSampleProjDrefExplicitLod = 94, - OpImageFetch = 95, - OpImageGather = 96, - OpImageDrefGather = 97, - OpImageRead = 98, - OpImageWrite = 99, - OpImage = 100, - OpImageQueryFormat = 101, - OpImageQueryOrder = 102, - OpImageQuerySizeLod = 103, - OpImageQuerySize = 104, - OpImageQueryLod = 105, - OpImageQueryLevels = 106, - OpImageQuerySamples = 107, - OpConvertFToU = 109, - OpConvertFToS = 110, - OpConvertSToF = 111, - OpConvertUToF = 112, - OpUConvert = 113, - OpSConvert = 114, - OpFConvert = 115, - OpQuantizeToF16 = 116, - OpConvertPtrToU = 117, - OpSatConvertSToU = 118, - OpSatConvertUToS = 119, - OpConvertUToPtr = 120, - OpPtrCastToGeneric = 121, - OpGenericCastToPtr = 122, - OpGenericCastToPtrExplicit = 123, - OpBitcast = 124, - OpSNegate = 126, - OpFNegate = 127, - OpIAdd = 128, - OpFAdd = 129, - OpISub = 130, - OpFSub = 131, - OpIMul = 132, - OpFMul = 133, - OpUDiv = 134, - OpSDiv = 135, - OpFDiv = 136, - OpUMod = 137, - OpSRem = 138, - OpSMod = 139, - OpFRem = 140, - OpFMod = 141, - OpVectorTimesScalar = 142, - OpMatrixTimesScalar = 143, - OpVectorTimesMatrix = 144, - OpMatrixTimesVector = 145, - OpMatrixTimesMatrix = 146, - OpOuterProduct = 147, - OpDot = 148, - OpIAddCarry = 149, - OpISubBorrow = 150, - OpUMulExtended = 151, - OpSMulExtended = 152, - OpAny = 154, - OpAll = 155, - OpIsNan = 156, - OpIsInf = 157, - OpIsFinite = 158, - OpIsNormal = 159, - OpSignBitSet = 160, - OpLessOrGreater = 161, - OpOrdered = 162, - OpUnordered = 163, - OpLogicalEqual = 164, - OpLogicalNotEqual = 165, - OpLogicalOr = 166, - OpLogicalAnd = 167, - OpLogicalNot = 168, - OpSelect = 169, - OpIEqual = 170, - OpINotEqual = 171, - OpUGreaterThan = 172, - OpSGreaterThan = 173, - OpUGreaterThanEqual = 174, - OpSGreaterThanEqual = 175, - OpULessThan = 176, - OpSLessThan = 177, - OpULessThanEqual = 178, - OpSLessThanEqual = 179, - OpFOrdEqual = 180, - OpFUnordEqual = 181, - OpFOrdNotEqual = 182, - OpFUnordNotEqual = 183, - OpFOrdLessThan = 184, - OpFUnordLessThan = 185, - OpFOrdGreaterThan = 186, - OpFUnordGreaterThan = 187, - OpFOrdLessThanEqual = 188, - OpFUnordLessThanEqual = 189, - OpFOrdGreaterThanEqual = 190, - OpFUnordGreaterThanEqual = 191, - OpShiftRightLogical = 194, - OpShiftRightArithmetic = 195, - OpShiftLeftLogical = 196, - OpBitwiseOr = 197, - OpBitwiseXor = 198, - OpBitwiseAnd = 199, - OpNot = 200, - OpBitFieldInsert = 201, - OpBitFieldSExtract = 202, - OpBitFieldUExtract = 203, - OpBitReverse = 204, - OpBitCount = 205, - OpDPdx = 207, - OpDPdy = 208, - OpFwidth = 209, - OpDPdxFine = 210, - OpDPdyFine = 211, - OpFwidthFine = 212, - OpDPdxCoarse = 213, - OpDPdyCoarse = 214, - OpFwidthCoarse = 215, - OpEmitVertex = 218, - OpEndPrimitive = 219, - OpEmitStreamVertex = 220, - OpEndStreamPrimitive = 221, - OpControlBarrier = 224, - OpMemoryBarrier = 225, - OpAtomicLoad = 227, - OpAtomicStore = 228, - OpAtomicExchange = 229, - OpAtomicCompareExchange = 230, - OpAtomicCompareExchangeWeak = 231, - OpAtomicIIncrement = 232, - OpAtomicIDecrement = 233, - OpAtomicIAdd = 234, - OpAtomicISub = 235, - OpAtomicSMin = 236, - OpAtomicUMin = 237, - OpAtomicSMax = 238, - OpAtomicUMax = 239, - OpAtomicAnd = 240, - OpAtomicOr = 241, - OpAtomicXor = 242, - OpPhi = 245, - OpLoopMerge = 246, - OpSelectionMerge = 247, - OpLabel = 248, - OpBranch = 249, - OpBranchConditional = 250, - OpSwitch = 251, - OpKill = 252, - OpReturn = 253, - OpReturnValue = 254, - OpUnreachable = 255, - OpLifetimeStart = 256, - OpLifetimeStop = 257, - OpGroupAsyncCopy = 259, - OpGroupWaitEvents = 260, - OpGroupAll = 261, - OpGroupAny = 262, - OpGroupBroadcast = 263, - OpGroupIAdd = 264, - OpGroupFAdd = 265, - OpGroupFMin = 266, - OpGroupUMin = 267, - OpGroupSMin = 268, - OpGroupFMax = 269, - OpGroupUMax = 270, - OpGroupSMax = 271, - OpReadPipe = 274, - OpWritePipe = 275, - OpReservedReadPipe = 276, - OpReservedWritePipe = 277, - OpReserveReadPipePackets = 278, - OpReserveWritePipePackets = 279, - OpCommitReadPipe = 280, - OpCommitWritePipe = 281, - OpIsValidReserveId = 282, - OpGetNumPipePackets = 283, - OpGetMaxPipePackets = 284, - OpGroupReserveReadPipePackets = 285, - OpGroupReserveWritePipePackets = 286, - OpGroupCommitReadPipe = 287, - OpGroupCommitWritePipe = 288, - OpEnqueueMarker = 291, - OpEnqueueKernel = 292, - OpGetKernelNDrangeSubGroupCount = 293, - OpGetKernelNDrangeMaxSubGroupSize = 294, - OpGetKernelWorkGroupSize = 295, - OpGetKernelPreferredWorkGroupSizeMultiple = 296, - OpRetainEvent = 297, - OpReleaseEvent = 298, - OpCreateUserEvent = 299, - OpIsValidEvent = 300, - OpSetUserEventStatus = 301, - OpCaptureEventProfilingInfo = 302, - OpGetDefaultQueue = 303, - OpBuildNDRange = 304, - OpImageSparseSampleImplicitLod = 305, - OpImageSparseSampleExplicitLod = 306, - OpImageSparseSampleDrefImplicitLod = 307, - OpImageSparseSampleDrefExplicitLod = 308, - OpImageSparseSampleProjImplicitLod = 309, - OpImageSparseSampleProjExplicitLod = 310, - OpImageSparseSampleProjDrefImplicitLod = 311, - OpImageSparseSampleProjDrefExplicitLod = 312, - OpImageSparseFetch = 313, - OpImageSparseGather = 314, - OpImageSparseDrefGather = 315, - OpImageSparseTexelsResident = 316, - OpNoLine = 317, - 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, - OpCopyLogical = 400, - OpPtrEqual = 401, - OpPtrNotEqual = 402, - OpPtrDiff = 403, - OpTerminateInvocation = 4416, - OpSubgroupBallotKHR = 4421, - OpSubgroupFirstInvocationKHR = 4422, - OpSubgroupAllKHR = 4428, - OpSubgroupAnyKHR = 4429, - OpSubgroupAllEqualKHR = 4430, - OpSubgroupReadInvocationKHR = 4432, - OpTraceRayKHR = 4445, - OpExecuteCallableKHR = 4446, - OpConvertUToAccelerationStructureKHR = 4447, - OpIgnoreIntersectionKHR = 4448, - OpTerminateRayKHR = 4449, - OpSDot = 4450, - OpSDotKHR = 4450, - OpUDot = 4451, - OpUDotKHR = 4451, - OpSUDot = 4452, - OpSUDotKHR = 4452, - OpSDotAccSat = 4453, - OpSDotAccSatKHR = 4453, - OpUDotAccSat = 4454, - OpUDotAccSatKHR = 4454, - OpSUDotAccSat = 4455, - OpSUDotAccSatKHR = 4455, - OpTypeRayQueryKHR = 4472, - OpRayQueryInitializeKHR = 4473, - OpRayQueryTerminateKHR = 4474, - OpRayQueryGenerateIntersectionKHR = 4475, - OpRayQueryConfirmIntersectionKHR = 4476, - OpRayQueryProceedKHR = 4477, - OpRayQueryGetIntersectionTypeKHR = 4479, - OpGroupIAddNonUniformAMD = 5000, - OpGroupFAddNonUniformAMD = 5001, - OpGroupFMinNonUniformAMD = 5002, - OpGroupUMinNonUniformAMD = 5003, - OpGroupSMinNonUniformAMD = 5004, - OpGroupFMaxNonUniformAMD = 5005, - OpGroupUMaxNonUniformAMD = 5006, - OpGroupSMaxNonUniformAMD = 5007, - OpFragmentMaskFetchAMD = 5011, - OpFragmentFetchAMD = 5012, - OpReadClockKHR = 5056, - OpImageSampleFootprintNV = 5283, - OpGroupNonUniformPartitionNV = 5296, - OpWritePackedPrimitiveIndices4x8NV = 5299, - OpReportIntersectionKHR = 5334, - OpReportIntersectionNV = 5334, - OpIgnoreIntersectionNV = 5335, - OpTerminateRayNV = 5336, - OpTraceNV = 5337, - OpTraceMotionNV = 5338, - OpTraceRayMotionNV = 5339, - OpTypeAccelerationStructureKHR = 5341, - OpTypeAccelerationStructureNV = 5341, - OpExecuteCallableNV = 5344, - OpTypeCooperativeMatrixNV = 5358, - OpCooperativeMatrixLoadNV = 5359, - OpCooperativeMatrixStoreNV = 5360, - OpCooperativeMatrixMulAddNV = 5361, - OpCooperativeMatrixLengthNV = 5362, - OpBeginInvocationInterlockEXT = 5364, - OpEndInvocationInterlockEXT = 5365, - OpDemoteToHelperInvocation = 5380, - OpDemoteToHelperInvocationEXT = 5380, - OpIsHelperInvocationEXT = 5381, - OpConvertUToImageNV = 5391, - OpConvertUToSamplerNV = 5392, - OpConvertImageToUNV = 5393, - OpConvertSamplerToUNV = 5394, - OpConvertUToSampledImageNV = 5395, - OpConvertSampledImageToUNV = 5396, - OpSamplerImageAddressingModeNV = 5397, - OpSubgroupShuffleINTEL = 5571, - OpSubgroupShuffleDownINTEL = 5572, - OpSubgroupShuffleUpINTEL = 5573, - OpSubgroupShuffleXorINTEL = 5574, - OpSubgroupBlockReadINTEL = 5575, - OpSubgroupBlockWriteINTEL = 5576, - OpSubgroupImageBlockReadINTEL = 5577, - OpSubgroupImageBlockWriteINTEL = 5578, - OpSubgroupImageMediaBlockReadINTEL = 5580, - OpSubgroupImageMediaBlockWriteINTEL = 5581, - OpUCountLeadingZerosINTEL = 5585, - OpUCountTrailingZerosINTEL = 5586, - OpAbsISubINTEL = 5587, - OpAbsUSubINTEL = 5588, - OpIAddSatINTEL = 5589, - OpUAddSatINTEL = 5590, - OpIAverageINTEL = 5591, - OpUAverageINTEL = 5592, - OpIAverageRoundedINTEL = 5593, - OpUAverageRoundedINTEL = 5594, - OpISubSatINTEL = 5595, - OpUSubSatINTEL = 5596, - OpIMul32x16INTEL = 5597, - OpUMul32x16INTEL = 5598, - OpConstantFunctionPointerINTEL = 5600, - OpFunctionPointerCallINTEL = 5601, - OpAsmTargetINTEL = 5609, - OpAsmINTEL = 5610, - OpAsmCallINTEL = 5611, - OpAtomicFMinEXT = 5614, - OpAtomicFMaxEXT = 5615, - OpAssumeTrueKHR = 5630, - OpExpectKHR = 5631, - OpDecorateString = 5632, - OpDecorateStringGOOGLE = 5632, - OpMemberDecorateString = 5633, - OpMemberDecorateStringGOOGLE = 5633, - OpVmeImageINTEL = 5699, - OpTypeVmeImageINTEL = 5700, - OpTypeAvcImePayloadINTEL = 5701, - OpTypeAvcRefPayloadINTEL = 5702, - OpTypeAvcSicPayloadINTEL = 5703, - OpTypeAvcMcePayloadINTEL = 5704, - OpTypeAvcMceResultINTEL = 5705, - OpTypeAvcImeResultINTEL = 5706, - OpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707, - OpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708, - OpTypeAvcImeSingleReferenceStreaminINTEL = 5709, - OpTypeAvcImeDualReferenceStreaminINTEL = 5710, - OpTypeAvcRefResultINTEL = 5711, - OpTypeAvcSicResultINTEL = 5712, - OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713, - OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714, - OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715, - OpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716, - OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717, - OpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718, - OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719, - OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720, - OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721, - OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722, - OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723, - OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724, - OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725, - OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726, - OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727, - OpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728, - OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729, - OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730, - OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731, - OpSubgroupAvcMceConvertToImePayloadINTEL = 5732, - OpSubgroupAvcMceConvertToImeResultINTEL = 5733, - OpSubgroupAvcMceConvertToRefPayloadINTEL = 5734, - OpSubgroupAvcMceConvertToRefResultINTEL = 5735, - OpSubgroupAvcMceConvertToSicPayloadINTEL = 5736, - OpSubgroupAvcMceConvertToSicResultINTEL = 5737, - OpSubgroupAvcMceGetMotionVectorsINTEL = 5738, - OpSubgroupAvcMceGetInterDistortionsINTEL = 5739, - OpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740, - OpSubgroupAvcMceGetInterMajorShapeINTEL = 5741, - OpSubgroupAvcMceGetInterMinorShapeINTEL = 5742, - OpSubgroupAvcMceGetInterDirectionsINTEL = 5743, - OpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744, - OpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745, - OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746, - OpSubgroupAvcImeInitializeINTEL = 5747, - OpSubgroupAvcImeSetSingleReferenceINTEL = 5748, - OpSubgroupAvcImeSetDualReferenceINTEL = 5749, - OpSubgroupAvcImeRefWindowSizeINTEL = 5750, - OpSubgroupAvcImeAdjustRefOffsetINTEL = 5751, - OpSubgroupAvcImeConvertToMcePayloadINTEL = 5752, - OpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753, - OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754, - OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755, - OpSubgroupAvcImeSetWeightedSadINTEL = 5756, - OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757, - OpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758, - OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759, - OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760, - OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761, - OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762, - OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763, - OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764, - OpSubgroupAvcImeConvertToMceResultINTEL = 5765, - OpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766, - OpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767, - OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768, - OpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769, - OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770, - OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771, - OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772, - OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773, - OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774, - OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775, - OpSubgroupAvcImeGetBorderReachedINTEL = 5776, - OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777, - OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778, - OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779, - OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780, - OpSubgroupAvcFmeInitializeINTEL = 5781, - OpSubgroupAvcBmeInitializeINTEL = 5782, - OpSubgroupAvcRefConvertToMcePayloadINTEL = 5783, - OpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784, - OpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785, - OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786, - OpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787, - OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788, - OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789, - OpSubgroupAvcRefConvertToMceResultINTEL = 5790, - OpSubgroupAvcSicInitializeINTEL = 5791, - OpSubgroupAvcSicConfigureSkcINTEL = 5792, - OpSubgroupAvcSicConfigureIpeLumaINTEL = 5793, - OpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794, - OpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795, - OpSubgroupAvcSicConvertToMcePayloadINTEL = 5796, - OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797, - OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798, - OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799, - OpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800, - OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801, - OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802, - OpSubgroupAvcSicEvaluateIpeINTEL = 5803, - OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804, - OpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805, - OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806, - OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807, - OpSubgroupAvcSicConvertToMceResultINTEL = 5808, - OpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809, - OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810, - OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811, - OpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812, - OpSubgroupAvcSicGetIpeChromaModeINTEL = 5813, - OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814, - OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815, - OpSubgroupAvcSicGetInterRawSadsINTEL = 5816, - OpVariableLengthArrayINTEL = 5818, - OpSaveMemoryINTEL = 5819, - OpRestoreMemoryINTEL = 5820, - OpArbitraryFloatSinCosPiINTEL = 5840, - OpArbitraryFloatCastINTEL = 5841, - OpArbitraryFloatCastFromIntINTEL = 5842, - OpArbitraryFloatCastToIntINTEL = 5843, - OpArbitraryFloatAddINTEL = 5846, - OpArbitraryFloatSubINTEL = 5847, - OpArbitraryFloatMulINTEL = 5848, - OpArbitraryFloatDivINTEL = 5849, - OpArbitraryFloatGTINTEL = 5850, - OpArbitraryFloatGEINTEL = 5851, - OpArbitraryFloatLTINTEL = 5852, - OpArbitraryFloatLEINTEL = 5853, - OpArbitraryFloatEQINTEL = 5854, - OpArbitraryFloatRecipINTEL = 5855, - OpArbitraryFloatRSqrtINTEL = 5856, - OpArbitraryFloatCbrtINTEL = 5857, - OpArbitraryFloatHypotINTEL = 5858, - OpArbitraryFloatSqrtINTEL = 5859, - OpArbitraryFloatLogINTEL = 5860, - OpArbitraryFloatLog2INTEL = 5861, - OpArbitraryFloatLog10INTEL = 5862, - OpArbitraryFloatLog1pINTEL = 5863, - OpArbitraryFloatExpINTEL = 5864, - OpArbitraryFloatExp2INTEL = 5865, - OpArbitraryFloatExp10INTEL = 5866, - OpArbitraryFloatExpm1INTEL = 5867, - OpArbitraryFloatSinINTEL = 5868, - OpArbitraryFloatCosINTEL = 5869, - OpArbitraryFloatSinCosINTEL = 5870, - OpArbitraryFloatSinPiINTEL = 5871, - OpArbitraryFloatCosPiINTEL = 5872, - OpArbitraryFloatASinINTEL = 5873, - OpArbitraryFloatASinPiINTEL = 5874, - OpArbitraryFloatACosINTEL = 5875, - OpArbitraryFloatACosPiINTEL = 5876, - OpArbitraryFloatATanINTEL = 5877, - OpArbitraryFloatATanPiINTEL = 5878, - OpArbitraryFloatATan2INTEL = 5879, - OpArbitraryFloatPowINTEL = 5880, - OpArbitraryFloatPowRINTEL = 5881, - OpArbitraryFloatPowNINTEL = 5882, - OpLoopControlINTEL = 5887, - OpFixedSqrtINTEL = 5923, - OpFixedRecipINTEL = 5924, - OpFixedRsqrtINTEL = 5925, - OpFixedSinINTEL = 5926, - OpFixedCosINTEL = 5927, - OpFixedSinCosINTEL = 5928, - OpFixedSinPiINTEL = 5929, - OpFixedCosPiINTEL = 5930, - OpFixedSinCosPiINTEL = 5931, - OpFixedLogINTEL = 5932, - OpFixedExpINTEL = 5933, - OpPtrCastToCrossWorkgroupINTEL = 5934, - OpCrossWorkgroupCastToPtrINTEL = 5938, - OpReadPipeBlockingINTEL = 5946, - OpWritePipeBlockingINTEL = 5947, - OpFPGARegINTEL = 5949, - OpRayQueryGetRayTMinKHR = 6016, - OpRayQueryGetRayFlagsKHR = 6017, - OpRayQueryGetIntersectionTKHR = 6018, - OpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019, - OpRayQueryGetIntersectionInstanceIdKHR = 6020, - OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021, - OpRayQueryGetIntersectionGeometryIndexKHR = 6022, - OpRayQueryGetIntersectionPrimitiveIndexKHR = 6023, - OpRayQueryGetIntersectionBarycentricsKHR = 6024, - OpRayQueryGetIntersectionFrontFaceKHR = 6025, - OpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026, - OpRayQueryGetIntersectionObjectRayDirectionKHR = 6027, - OpRayQueryGetIntersectionObjectRayOriginKHR = 6028, - OpRayQueryGetWorldRayDirectionKHR = 6029, - OpRayQueryGetWorldRayOriginKHR = 6030, - OpRayQueryGetIntersectionObjectToWorldKHR = 6031, - OpRayQueryGetIntersectionWorldToObjectKHR = 6032, - OpAtomicFAddEXT = 6035, - OpTypeBufferSurfaceINTEL = 6086, - OpTypeStructContinuedINTEL = 6090, - OpConstantCompositeContinuedINTEL = 6091, - OpSpecConstantCompositeContinuedINTEL = 6092, - OpMax = 0x7fffffff, -}; - -#ifdef SPV_ENABLE_UTILITY_CODE -inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) { - *hasResult = *hasResultType = false; - switch (opcode) { - default: /* unknown opcode */ break; - case OpNop: *hasResult = false; *hasResultType = false; break; - case OpUndef: *hasResult = true; *hasResultType = true; break; - case OpSourceContinued: *hasResult = false; *hasResultType = false; break; - case OpSource: *hasResult = false; *hasResultType = false; break; - case OpSourceExtension: *hasResult = false; *hasResultType = false; break; - case OpName: *hasResult = false; *hasResultType = false; break; - case OpMemberName: *hasResult = false; *hasResultType = false; break; - case OpString: *hasResult = true; *hasResultType = false; break; - case OpLine: *hasResult = false; *hasResultType = false; break; - case OpExtension: *hasResult = false; *hasResultType = false; break; - case OpExtInstImport: *hasResult = true; *hasResultType = false; break; - case OpExtInst: *hasResult = true; *hasResultType = true; break; - case OpMemoryModel: *hasResult = false; *hasResultType = false; break; - case OpEntryPoint: *hasResult = false; *hasResultType = false; break; - case OpExecutionMode: *hasResult = false; *hasResultType = false; break; - case OpCapability: *hasResult = false; *hasResultType = false; break; - case OpTypeVoid: *hasResult = true; *hasResultType = false; break; - case OpTypeBool: *hasResult = true; *hasResultType = false; break; - case OpTypeInt: *hasResult = true; *hasResultType = false; break; - case OpTypeFloat: *hasResult = true; *hasResultType = false; break; - case OpTypeVector: *hasResult = true; *hasResultType = false; break; - case OpTypeMatrix: *hasResult = true; *hasResultType = false; break; - case OpTypeImage: *hasResult = true; *hasResultType = false; break; - case OpTypeSampler: *hasResult = true; *hasResultType = false; break; - case OpTypeSampledImage: *hasResult = true; *hasResultType = false; break; - case OpTypeArray: *hasResult = true; *hasResultType = false; break; - case OpTypeRuntimeArray: *hasResult = true; *hasResultType = false; break; - case OpTypeStruct: *hasResult = true; *hasResultType = false; break; - case OpTypeOpaque: *hasResult = true; *hasResultType = false; break; - case OpTypePointer: *hasResult = true; *hasResultType = false; break; - case OpTypeFunction: *hasResult = true; *hasResultType = false; break; - case OpTypeEvent: *hasResult = true; *hasResultType = false; break; - case OpTypeDeviceEvent: *hasResult = true; *hasResultType = false; break; - case OpTypeReserveId: *hasResult = true; *hasResultType = false; break; - case OpTypeQueue: *hasResult = true; *hasResultType = false; break; - case OpTypePipe: *hasResult = true; *hasResultType = false; break; - case OpTypeForwardPointer: *hasResult = false; *hasResultType = false; break; - case OpConstantTrue: *hasResult = true; *hasResultType = true; break; - case OpConstantFalse: *hasResult = true; *hasResultType = true; break; - case OpConstant: *hasResult = true; *hasResultType = true; break; - case OpConstantComposite: *hasResult = true; *hasResultType = true; break; - case OpConstantSampler: *hasResult = true; *hasResultType = true; break; - case OpConstantNull: *hasResult = true; *hasResultType = true; break; - case OpSpecConstantTrue: *hasResult = true; *hasResultType = true; break; - case OpSpecConstantFalse: *hasResult = true; *hasResultType = true; break; - case OpSpecConstant: *hasResult = true; *hasResultType = true; break; - case OpSpecConstantComposite: *hasResult = true; *hasResultType = true; break; - case OpSpecConstantOp: *hasResult = true; *hasResultType = true; break; - case OpFunction: *hasResult = true; *hasResultType = true; break; - case OpFunctionParameter: *hasResult = true; *hasResultType = true; break; - case OpFunctionEnd: *hasResult = false; *hasResultType = false; break; - case OpFunctionCall: *hasResult = true; *hasResultType = true; break; - case OpVariable: *hasResult = true; *hasResultType = true; break; - case OpImageTexelPointer: *hasResult = true; *hasResultType = true; break; - case OpLoad: *hasResult = true; *hasResultType = true; break; - case OpStore: *hasResult = false; *hasResultType = false; break; - case OpCopyMemory: *hasResult = false; *hasResultType = false; break; - case OpCopyMemorySized: *hasResult = false; *hasResultType = false; break; - case OpAccessChain: *hasResult = true; *hasResultType = true; break; - case OpInBoundsAccessChain: *hasResult = true; *hasResultType = true; break; - case OpPtrAccessChain: *hasResult = true; *hasResultType = true; break; - case OpArrayLength: *hasResult = true; *hasResultType = true; break; - case OpGenericPtrMemSemantics: *hasResult = true; *hasResultType = true; break; - case OpInBoundsPtrAccessChain: *hasResult = true; *hasResultType = true; break; - case OpDecorate: *hasResult = false; *hasResultType = false; break; - case OpMemberDecorate: *hasResult = false; *hasResultType = false; break; - case OpDecorationGroup: *hasResult = true; *hasResultType = false; break; - case OpGroupDecorate: *hasResult = false; *hasResultType = false; break; - case OpGroupMemberDecorate: *hasResult = false; *hasResultType = false; break; - case OpVectorExtractDynamic: *hasResult = true; *hasResultType = true; break; - case OpVectorInsertDynamic: *hasResult = true; *hasResultType = true; break; - case OpVectorShuffle: *hasResult = true; *hasResultType = true; break; - case OpCompositeConstruct: *hasResult = true; *hasResultType = true; break; - case OpCompositeExtract: *hasResult = true; *hasResultType = true; break; - case OpCompositeInsert: *hasResult = true; *hasResultType = true; break; - case OpCopyObject: *hasResult = true; *hasResultType = true; break; - case OpTranspose: *hasResult = true; *hasResultType = true; break; - case OpSampledImage: *hasResult = true; *hasResultType = true; break; - case OpImageSampleImplicitLod: *hasResult = true; *hasResultType = true; break; - case OpImageSampleExplicitLod: *hasResult = true; *hasResultType = true; break; - case OpImageSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break; - case OpImageSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break; - case OpImageSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break; - case OpImageSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break; - case OpImageSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break; - case OpImageSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break; - case OpImageFetch: *hasResult = true; *hasResultType = true; break; - case OpImageGather: *hasResult = true; *hasResultType = true; break; - case OpImageDrefGather: *hasResult = true; *hasResultType = true; break; - case OpImageRead: *hasResult = true; *hasResultType = true; break; - case OpImageWrite: *hasResult = false; *hasResultType = false; break; - case OpImage: *hasResult = true; *hasResultType = true; break; - case OpImageQueryFormat: *hasResult = true; *hasResultType = true; break; - case OpImageQueryOrder: *hasResult = true; *hasResultType = true; break; - case OpImageQuerySizeLod: *hasResult = true; *hasResultType = true; break; - case OpImageQuerySize: *hasResult = true; *hasResultType = true; break; - case OpImageQueryLod: *hasResult = true; *hasResultType = true; break; - case OpImageQueryLevels: *hasResult = true; *hasResultType = true; break; - case OpImageQuerySamples: *hasResult = true; *hasResultType = true; break; - case OpConvertFToU: *hasResult = true; *hasResultType = true; break; - case OpConvertFToS: *hasResult = true; *hasResultType = true; break; - case OpConvertSToF: *hasResult = true; *hasResultType = true; break; - case OpConvertUToF: *hasResult = true; *hasResultType = true; break; - case OpUConvert: *hasResult = true; *hasResultType = true; break; - case OpSConvert: *hasResult = true; *hasResultType = true; break; - case OpFConvert: *hasResult = true; *hasResultType = true; break; - case OpQuantizeToF16: *hasResult = true; *hasResultType = true; break; - case OpConvertPtrToU: *hasResult = true; *hasResultType = true; break; - case OpSatConvertSToU: *hasResult = true; *hasResultType = true; break; - case OpSatConvertUToS: *hasResult = true; *hasResultType = true; break; - case OpConvertUToPtr: *hasResult = true; *hasResultType = true; break; - case OpPtrCastToGeneric: *hasResult = true; *hasResultType = true; break; - case OpGenericCastToPtr: *hasResult = true; *hasResultType = true; break; - case OpGenericCastToPtrExplicit: *hasResult = true; *hasResultType = true; break; - case OpBitcast: *hasResult = true; *hasResultType = true; break; - case OpSNegate: *hasResult = true; *hasResultType = true; break; - case OpFNegate: *hasResult = true; *hasResultType = true; break; - case OpIAdd: *hasResult = true; *hasResultType = true; break; - case OpFAdd: *hasResult = true; *hasResultType = true; break; - case OpISub: *hasResult = true; *hasResultType = true; break; - case OpFSub: *hasResult = true; *hasResultType = true; break; - case OpIMul: *hasResult = true; *hasResultType = true; break; - case OpFMul: *hasResult = true; *hasResultType = true; break; - case OpUDiv: *hasResult = true; *hasResultType = true; break; - case OpSDiv: *hasResult = true; *hasResultType = true; break; - case OpFDiv: *hasResult = true; *hasResultType = true; break; - case OpUMod: *hasResult = true; *hasResultType = true; break; - case OpSRem: *hasResult = true; *hasResultType = true; break; - case OpSMod: *hasResult = true; *hasResultType = true; break; - case OpFRem: *hasResult = true; *hasResultType = true; break; - case OpFMod: *hasResult = true; *hasResultType = true; break; - case OpVectorTimesScalar: *hasResult = true; *hasResultType = true; break; - case OpMatrixTimesScalar: *hasResult = true; *hasResultType = true; break; - case OpVectorTimesMatrix: *hasResult = true; *hasResultType = true; break; - case OpMatrixTimesVector: *hasResult = true; *hasResultType = true; break; - case OpMatrixTimesMatrix: *hasResult = true; *hasResultType = true; break; - case OpOuterProduct: *hasResult = true; *hasResultType = true; break; - case OpDot: *hasResult = true; *hasResultType = true; break; - case OpIAddCarry: *hasResult = true; *hasResultType = true; break; - case OpISubBorrow: *hasResult = true; *hasResultType = true; break; - case OpUMulExtended: *hasResult = true; *hasResultType = true; break; - case OpSMulExtended: *hasResult = true; *hasResultType = true; break; - case OpAny: *hasResult = true; *hasResultType = true; break; - case OpAll: *hasResult = true; *hasResultType = true; break; - case OpIsNan: *hasResult = true; *hasResultType = true; break; - case OpIsInf: *hasResult = true; *hasResultType = true; break; - case OpIsFinite: *hasResult = true; *hasResultType = true; break; - case OpIsNormal: *hasResult = true; *hasResultType = true; break; - case OpSignBitSet: *hasResult = true; *hasResultType = true; break; - case OpLessOrGreater: *hasResult = true; *hasResultType = true; break; - case OpOrdered: *hasResult = true; *hasResultType = true; break; - case OpUnordered: *hasResult = true; *hasResultType = true; break; - case OpLogicalEqual: *hasResult = true; *hasResultType = true; break; - case OpLogicalNotEqual: *hasResult = true; *hasResultType = true; break; - case OpLogicalOr: *hasResult = true; *hasResultType = true; break; - case OpLogicalAnd: *hasResult = true; *hasResultType = true; break; - case OpLogicalNot: *hasResult = true; *hasResultType = true; break; - case OpSelect: *hasResult = true; *hasResultType = true; break; - case OpIEqual: *hasResult = true; *hasResultType = true; break; - case OpINotEqual: *hasResult = true; *hasResultType = true; break; - case OpUGreaterThan: *hasResult = true; *hasResultType = true; break; - case OpSGreaterThan: *hasResult = true; *hasResultType = true; break; - case OpUGreaterThanEqual: *hasResult = true; *hasResultType = true; break; - case OpSGreaterThanEqual: *hasResult = true; *hasResultType = true; break; - case OpULessThan: *hasResult = true; *hasResultType = true; break; - case OpSLessThan: *hasResult = true; *hasResultType = true; break; - case OpULessThanEqual: *hasResult = true; *hasResultType = true; break; - case OpSLessThanEqual: *hasResult = true; *hasResultType = true; break; - case OpFOrdEqual: *hasResult = true; *hasResultType = true; break; - case OpFUnordEqual: *hasResult = true; *hasResultType = true; break; - case OpFOrdNotEqual: *hasResult = true; *hasResultType = true; break; - case OpFUnordNotEqual: *hasResult = true; *hasResultType = true; break; - case OpFOrdLessThan: *hasResult = true; *hasResultType = true; break; - case OpFUnordLessThan: *hasResult = true; *hasResultType = true; break; - case OpFOrdGreaterThan: *hasResult = true; *hasResultType = true; break; - case OpFUnordGreaterThan: *hasResult = true; *hasResultType = true; break; - case OpFOrdLessThanEqual: *hasResult = true; *hasResultType = true; break; - case OpFUnordLessThanEqual: *hasResult = true; *hasResultType = true; break; - case OpFOrdGreaterThanEqual: *hasResult = true; *hasResultType = true; break; - case OpFUnordGreaterThanEqual: *hasResult = true; *hasResultType = true; break; - case OpShiftRightLogical: *hasResult = true; *hasResultType = true; break; - case OpShiftRightArithmetic: *hasResult = true; *hasResultType = true; break; - case OpShiftLeftLogical: *hasResult = true; *hasResultType = true; break; - case OpBitwiseOr: *hasResult = true; *hasResultType = true; break; - case OpBitwiseXor: *hasResult = true; *hasResultType = true; break; - case OpBitwiseAnd: *hasResult = true; *hasResultType = true; break; - case OpNot: *hasResult = true; *hasResultType = true; break; - case OpBitFieldInsert: *hasResult = true; *hasResultType = true; break; - case OpBitFieldSExtract: *hasResult = true; *hasResultType = true; break; - case OpBitFieldUExtract: *hasResult = true; *hasResultType = true; break; - case OpBitReverse: *hasResult = true; *hasResultType = true; break; - case OpBitCount: *hasResult = true; *hasResultType = true; break; - case OpDPdx: *hasResult = true; *hasResultType = true; break; - case OpDPdy: *hasResult = true; *hasResultType = true; break; - case OpFwidth: *hasResult = true; *hasResultType = true; break; - case OpDPdxFine: *hasResult = true; *hasResultType = true; break; - case OpDPdyFine: *hasResult = true; *hasResultType = true; break; - case OpFwidthFine: *hasResult = true; *hasResultType = true; break; - case OpDPdxCoarse: *hasResult = true; *hasResultType = true; break; - case OpDPdyCoarse: *hasResult = true; *hasResultType = true; break; - case OpFwidthCoarse: *hasResult = true; *hasResultType = true; break; - case OpEmitVertex: *hasResult = false; *hasResultType = false; break; - case OpEndPrimitive: *hasResult = false; *hasResultType = false; break; - case OpEmitStreamVertex: *hasResult = false; *hasResultType = false; break; - case OpEndStreamPrimitive: *hasResult = false; *hasResultType = false; break; - case OpControlBarrier: *hasResult = false; *hasResultType = false; break; - case OpMemoryBarrier: *hasResult = false; *hasResultType = false; break; - case OpAtomicLoad: *hasResult = true; *hasResultType = true; break; - case OpAtomicStore: *hasResult = false; *hasResultType = false; break; - case OpAtomicExchange: *hasResult = true; *hasResultType = true; break; - case OpAtomicCompareExchange: *hasResult = true; *hasResultType = true; break; - case OpAtomicCompareExchangeWeak: *hasResult = true; *hasResultType = true; break; - case OpAtomicIIncrement: *hasResult = true; *hasResultType = true; break; - case OpAtomicIDecrement: *hasResult = true; *hasResultType = true; break; - case OpAtomicIAdd: *hasResult = true; *hasResultType = true; break; - case OpAtomicISub: *hasResult = true; *hasResultType = true; break; - case OpAtomicSMin: *hasResult = true; *hasResultType = true; break; - case OpAtomicUMin: *hasResult = true; *hasResultType = true; break; - case OpAtomicSMax: *hasResult = true; *hasResultType = true; break; - case OpAtomicUMax: *hasResult = true; *hasResultType = true; break; - case OpAtomicAnd: *hasResult = true; *hasResultType = true; break; - case OpAtomicOr: *hasResult = true; *hasResultType = true; break; - case OpAtomicXor: *hasResult = true; *hasResultType = true; break; - case OpPhi: *hasResult = true; *hasResultType = true; break; - case OpLoopMerge: *hasResult = false; *hasResultType = false; break; - case OpSelectionMerge: *hasResult = false; *hasResultType = false; break; - case OpLabel: *hasResult = true; *hasResultType = false; break; - case OpBranch: *hasResult = false; *hasResultType = false; break; - case OpBranchConditional: *hasResult = false; *hasResultType = false; break; - case OpSwitch: *hasResult = false; *hasResultType = false; break; - case OpKill: *hasResult = false; *hasResultType = false; break; - case OpReturn: *hasResult = false; *hasResultType = false; break; - case OpReturnValue: *hasResult = false; *hasResultType = false; break; - case OpUnreachable: *hasResult = false; *hasResultType = false; break; - case OpLifetimeStart: *hasResult = false; *hasResultType = false; break; - case OpLifetimeStop: *hasResult = false; *hasResultType = false; break; - case OpGroupAsyncCopy: *hasResult = true; *hasResultType = true; break; - case OpGroupWaitEvents: *hasResult = false; *hasResultType = false; break; - case OpGroupAll: *hasResult = true; *hasResultType = true; break; - case OpGroupAny: *hasResult = true; *hasResultType = true; break; - case OpGroupBroadcast: *hasResult = true; *hasResultType = true; break; - case OpGroupIAdd: *hasResult = true; *hasResultType = true; break; - case OpGroupFAdd: *hasResult = true; *hasResultType = true; break; - case OpGroupFMin: *hasResult = true; *hasResultType = true; break; - case OpGroupUMin: *hasResult = true; *hasResultType = true; break; - case OpGroupSMin: *hasResult = true; *hasResultType = true; break; - case OpGroupFMax: *hasResult = true; *hasResultType = true; break; - case OpGroupUMax: *hasResult = true; *hasResultType = true; break; - case OpGroupSMax: *hasResult = true; *hasResultType = true; break; - case OpReadPipe: *hasResult = true; *hasResultType = true; break; - case OpWritePipe: *hasResult = true; *hasResultType = true; break; - case OpReservedReadPipe: *hasResult = true; *hasResultType = true; break; - case OpReservedWritePipe: *hasResult = true; *hasResultType = true; break; - case OpReserveReadPipePackets: *hasResult = true; *hasResultType = true; break; - case OpReserveWritePipePackets: *hasResult = true; *hasResultType = true; break; - case OpCommitReadPipe: *hasResult = false; *hasResultType = false; break; - case OpCommitWritePipe: *hasResult = false; *hasResultType = false; break; - case OpIsValidReserveId: *hasResult = true; *hasResultType = true; break; - case OpGetNumPipePackets: *hasResult = true; *hasResultType = true; break; - case OpGetMaxPipePackets: *hasResult = true; *hasResultType = true; break; - case OpGroupReserveReadPipePackets: *hasResult = true; *hasResultType = true; break; - case OpGroupReserveWritePipePackets: *hasResult = true; *hasResultType = true; break; - case OpGroupCommitReadPipe: *hasResult = false; *hasResultType = false; break; - case OpGroupCommitWritePipe: *hasResult = false; *hasResultType = false; break; - case OpEnqueueMarker: *hasResult = true; *hasResultType = true; break; - case OpEnqueueKernel: *hasResult = true; *hasResultType = true; break; - case OpGetKernelNDrangeSubGroupCount: *hasResult = true; *hasResultType = true; break; - case OpGetKernelNDrangeMaxSubGroupSize: *hasResult = true; *hasResultType = true; break; - case OpGetKernelWorkGroupSize: *hasResult = true; *hasResultType = true; break; - case OpGetKernelPreferredWorkGroupSizeMultiple: *hasResult = true; *hasResultType = true; break; - case OpRetainEvent: *hasResult = false; *hasResultType = false; break; - case OpReleaseEvent: *hasResult = false; *hasResultType = false; break; - case OpCreateUserEvent: *hasResult = true; *hasResultType = true; break; - case OpIsValidEvent: *hasResult = true; *hasResultType = true; break; - case OpSetUserEventStatus: *hasResult = false; *hasResultType = false; break; - case OpCaptureEventProfilingInfo: *hasResult = false; *hasResultType = false; break; - case OpGetDefaultQueue: *hasResult = true; *hasResultType = true; break; - case OpBuildNDRange: *hasResult = true; *hasResultType = true; break; - case OpImageSparseSampleImplicitLod: *hasResult = true; *hasResultType = true; break; - case OpImageSparseSampleExplicitLod: *hasResult = true; *hasResultType = true; break; - case OpImageSparseSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break; - case OpImageSparseSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break; - case OpImageSparseSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break; - case OpImageSparseSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break; - case OpImageSparseSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break; - case OpImageSparseSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break; - case OpImageSparseFetch: *hasResult = true; *hasResultType = true; break; - case OpImageSparseGather: *hasResult = true; *hasResultType = true; break; - case OpImageSparseDrefGather: *hasResult = true; *hasResultType = true; break; - case OpImageSparseTexelsResident: *hasResult = true; *hasResultType = true; break; - case OpNoLine: *hasResult = false; *hasResultType = false; break; - case OpAtomicFlagTestAndSet: *hasResult = true; *hasResultType = true; break; - case OpAtomicFlagClear: *hasResult = false; *hasResultType = false; break; - case OpImageSparseRead: *hasResult = true; *hasResultType = true; break; - case OpSizeOf: *hasResult = true; *hasResultType = true; break; - case OpTypePipeStorage: *hasResult = true; *hasResultType = false; break; - case OpConstantPipeStorage: *hasResult = true; *hasResultType = true; break; - case OpCreatePipeFromPipeStorage: *hasResult = true; *hasResultType = true; break; - case OpGetKernelLocalSizeForSubgroupCount: *hasResult = true; *hasResultType = true; break; - case OpGetKernelMaxNumSubgroups: *hasResult = true; *hasResultType = true; break; - case OpTypeNamedBarrier: *hasResult = true; *hasResultType = false; break; - case OpNamedBarrierInitialize: *hasResult = true; *hasResultType = true; break; - case OpMemoryNamedBarrier: *hasResult = false; *hasResultType = false; break; - case OpModuleProcessed: *hasResult = false; *hasResultType = false; break; - case OpExecutionModeId: *hasResult = false; *hasResultType = false; break; - case OpDecorateId: *hasResult = false; *hasResultType = false; break; - case OpGroupNonUniformElect: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformAll: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformAny: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformAllEqual: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformBroadcast: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformBroadcastFirst: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformBallot: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformInverseBallot: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformBallotBitExtract: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformBallotBitCount: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformBallotFindLSB: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformBallotFindMSB: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformShuffle: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformShuffleXor: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformShuffleUp: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformShuffleDown: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformIAdd: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformFAdd: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformIMul: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformFMul: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformSMin: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformUMin: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformFMin: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformSMax: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformUMax: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformFMax: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformBitwiseAnd: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformBitwiseOr: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformBitwiseXor: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformLogicalAnd: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformLogicalOr: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformLogicalXor: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformQuadBroadcast: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformQuadSwap: *hasResult = true; *hasResultType = true; break; - case OpCopyLogical: *hasResult = true; *hasResultType = true; break; - case OpPtrEqual: *hasResult = true; *hasResultType = true; break; - case OpPtrNotEqual: *hasResult = true; *hasResultType = true; break; - case OpPtrDiff: *hasResult = true; *hasResultType = true; break; - case OpTerminateInvocation: *hasResult = false; *hasResultType = false; break; - case OpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break; - case OpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break; - case OpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break; - case OpTraceRayKHR: *hasResult = false; *hasResultType = false; break; - case OpExecuteCallableKHR: *hasResult = false; *hasResultType = false; break; - case OpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break; - case OpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break; - case OpTerminateRayKHR: *hasResult = false; *hasResultType = false; break; - case OpSDot: *hasResult = true; *hasResultType = true; break; - case OpUDot: *hasResult = true; *hasResultType = true; break; - case OpSUDot: *hasResult = true; *hasResultType = true; break; - case OpSDotAccSat: *hasResult = true; *hasResultType = true; break; - case OpUDotAccSat: *hasResult = true; *hasResultType = true; break; - case OpSUDotAccSat: *hasResult = true; *hasResultType = true; break; - case OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break; - case OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break; - case OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break; - case OpRayQueryGenerateIntersectionKHR: *hasResult = false; *hasResultType = false; break; - case OpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break; - case OpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break; - case OpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break; - case OpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break; - case OpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break; - case OpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break; - case OpGroupUMinNonUniformAMD: *hasResult = true; *hasResultType = true; break; - case OpGroupSMinNonUniformAMD: *hasResult = true; *hasResultType = true; break; - case OpGroupFMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break; - case OpGroupUMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break; - case OpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break; - case OpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break; - case OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break; - case OpReadClockKHR: *hasResult = true; *hasResultType = true; break; - case OpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break; - case OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break; - case OpReportIntersectionNV: *hasResult = true; *hasResultType = true; break; - case OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break; - case OpTerminateRayNV: *hasResult = false; *hasResultType = false; break; - case OpTraceNV: *hasResult = false; *hasResultType = false; break; - case OpTraceMotionNV: *hasResult = false; *hasResultType = false; break; - case OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break; - case OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break; - case OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break; - case OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break; - case OpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break; - case OpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break; - case OpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break; - case OpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break; - case OpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break; - case OpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break; - case OpDemoteToHelperInvocation: *hasResult = false; *hasResultType = false; break; - case OpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break; - case OpConvertUToImageNV: *hasResult = true; *hasResultType = true; break; - case OpConvertUToSamplerNV: *hasResult = true; *hasResultType = true; break; - case OpConvertImageToUNV: *hasResult = true; *hasResultType = true; break; - case OpConvertSamplerToUNV: *hasResult = true; *hasResultType = true; break; - case OpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break; - case OpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break; - case OpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break; - case OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupShuffleXorINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupBlockReadINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupBlockWriteINTEL: *hasResult = false; *hasResultType = false; break; - case OpSubgroupImageBlockReadINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break; - case OpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break; - case OpUCountLeadingZerosINTEL: *hasResult = true; *hasResultType = true; break; - case OpUCountTrailingZerosINTEL: *hasResult = true; *hasResultType = true; break; - case OpAbsISubINTEL: *hasResult = true; *hasResultType = true; break; - case OpAbsUSubINTEL: *hasResult = true; *hasResultType = true; break; - case OpIAddSatINTEL: *hasResult = true; *hasResultType = true; break; - case OpUAddSatINTEL: *hasResult = true; *hasResultType = true; break; - case OpIAverageINTEL: *hasResult = true; *hasResultType = true; break; - case OpUAverageINTEL: *hasResult = true; *hasResultType = true; break; - case OpIAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break; - case OpUAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break; - case OpISubSatINTEL: *hasResult = true; *hasResultType = true; break; - case OpUSubSatINTEL: *hasResult = true; *hasResultType = true; break; - case OpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break; - case OpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break; - case OpConstantFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break; - case OpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break; - case OpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break; - case OpAsmINTEL: *hasResult = true; *hasResultType = true; break; - case OpAsmCallINTEL: *hasResult = true; *hasResultType = true; break; - case OpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break; - case OpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break; - case OpAssumeTrueKHR: *hasResult = false; *hasResultType = false; break; - case OpExpectKHR: *hasResult = true; *hasResultType = true; break; - case OpDecorateString: *hasResult = false; *hasResultType = false; break; - case OpMemberDecorateString: *hasResult = false; *hasResultType = false; break; - case OpVmeImageINTEL: *hasResult = true; *hasResultType = true; break; - case OpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break; - case OpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break; - case OpTypeAvcRefPayloadINTEL: *hasResult = true; *hasResultType = false; break; - case OpTypeAvcSicPayloadINTEL: *hasResult = true; *hasResultType = false; break; - case OpTypeAvcMcePayloadINTEL: *hasResult = true; *hasResultType = false; break; - case OpTypeAvcMceResultINTEL: *hasResult = true; *hasResultType = false; break; - case OpTypeAvcImeResultINTEL: *hasResult = true; *hasResultType = false; break; - case OpTypeAvcImeResultSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break; - case OpTypeAvcImeResultDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break; - case OpTypeAvcImeSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break; - case OpTypeAvcImeDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break; - case OpTypeAvcRefResultINTEL: *hasResult = true; *hasResultType = false; break; - case OpTypeAvcSicResultINTEL: *hasResult = true; *hasResultType = false; break; - case OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceSetInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceSetInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceSetAcOnlyHaarINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceConvertToImePayloadINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceConvertToImeResultINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceConvertToRefPayloadINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceConvertToRefResultINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceConvertToSicPayloadINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceConvertToSicResultINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceGetMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceGetInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceGetBestInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceGetInterMajorShapeINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceGetInterMinorShapeINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceGetInterDirectionsINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceGetInterMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceGetInterReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeInitializeINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeSetSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeSetDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeRefWindowSizeINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeAdjustRefOffsetINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeSetMaxMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeSetWeightedSadINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeGetSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeGetDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeStripDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeGetBorderReachedINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcFmeInitializeINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcBmeInitializeINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcRefConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcRefSetBidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcRefSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcRefEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcRefConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicInitializeINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicConfigureSkcINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicConfigureIpeLumaINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicConfigureIpeLumaChromaINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicGetMotionVectorMaskINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicEvaluateIpeINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicGetIpeLumaShapeINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicGetPackedIpeLumaModesINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicGetIpeChromaModeINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break; - case OpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break; - case OpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break; - case OpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break; - case OpArbitraryFloatSinCosPiINTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatCastINTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatCastFromIntINTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatCastToIntINTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatAddINTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatSubINTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatMulINTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatDivINTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatGTINTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatGEINTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatLTINTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatLEINTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatEQINTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatRecipINTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatRSqrtINTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatCbrtINTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatHypotINTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatSqrtINTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatLog1pINTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatExpINTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatExp2INTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatExp10INTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatExpm1INTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatSinINTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatCosINTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatSinCosINTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatSinPiINTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatCosPiINTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatASinINTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatASinPiINTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatACosINTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatACosPiINTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatATanINTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatATanPiINTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatATan2INTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatPowINTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatPowRINTEL: *hasResult = true; *hasResultType = true; break; - case OpArbitraryFloatPowNINTEL: *hasResult = true; *hasResultType = true; break; - case OpLoopControlINTEL: *hasResult = false; *hasResultType = false; break; - case OpFixedSqrtINTEL: *hasResult = true; *hasResultType = true; break; - case OpFixedRecipINTEL: *hasResult = true; *hasResultType = true; break; - case OpFixedRsqrtINTEL: *hasResult = true; *hasResultType = true; break; - case OpFixedSinINTEL: *hasResult = true; *hasResultType = true; break; - case OpFixedCosINTEL: *hasResult = true; *hasResultType = true; break; - case OpFixedSinCosINTEL: *hasResult = true; *hasResultType = true; break; - case OpFixedSinPiINTEL: *hasResult = true; *hasResultType = true; break; - case OpFixedCosPiINTEL: *hasResult = true; *hasResultType = true; break; - case OpFixedSinCosPiINTEL: *hasResult = true; *hasResultType = true; break; - case OpFixedLogINTEL: *hasResult = true; *hasResultType = true; break; - case OpFixedExpINTEL: *hasResult = true; *hasResultType = true; break; - case OpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break; - case OpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break; - case OpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break; - case OpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break; - case OpFPGARegINTEL: *hasResult = true; *hasResultType = true; break; - case OpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break; - case OpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break; - case OpRayQueryGetIntersectionTKHR: *hasResult = true; *hasResultType = true; break; - case OpRayQueryGetIntersectionInstanceCustomIndexKHR: *hasResult = true; *hasResultType = true; break; - case OpRayQueryGetIntersectionInstanceIdKHR: *hasResult = true; *hasResultType = true; break; - case OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: *hasResult = true; *hasResultType = true; break; - case OpRayQueryGetIntersectionGeometryIndexKHR: *hasResult = true; *hasResultType = true; break; - case OpRayQueryGetIntersectionPrimitiveIndexKHR: *hasResult = true; *hasResultType = true; break; - case OpRayQueryGetIntersectionBarycentricsKHR: *hasResult = true; *hasResultType = true; break; - case OpRayQueryGetIntersectionFrontFaceKHR: *hasResult = true; *hasResultType = true; break; - case OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: *hasResult = true; *hasResultType = true; break; - case OpRayQueryGetIntersectionObjectRayDirectionKHR: *hasResult = true; *hasResultType = true; break; - case OpRayQueryGetIntersectionObjectRayOriginKHR: *hasResult = true; *hasResultType = true; break; - case OpRayQueryGetWorldRayDirectionKHR: *hasResult = true; *hasResultType = true; break; - case OpRayQueryGetWorldRayOriginKHR: *hasResult = true; *hasResultType = true; break; - case OpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break; - case OpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break; - case OpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break; - case OpTypeBufferSurfaceINTEL: *hasResult = true; *hasResultType = false; break; - case OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break; - case OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break; - case OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break; - } -} -#endif /* SPV_ENABLE_UTILITY_CODE */ - -// Overload operator| for mask bit combining - -inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); } -inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); } -inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); } -inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); } -inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); } -inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); } -inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); } -inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); } -inline RayFlagsMask operator|(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) | unsigned(b)); } -inline FragmentShadingRateMask operator|(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) | unsigned(b)); } - -} // end namespace spv - -#endif // #ifndef spirv_HPP - diff --git a/deps/glslang/SPIRV/spvIR.h b/deps/glslang/SPIRV/spvIR.h deleted file mode 100644 index 5249a5ba..00000000 --- a/deps/glslang/SPIRV/spvIR.h +++ /dev/null @@ -1,504 +0,0 @@ -// -// Copyright (C) 2014 LunarG, Inc. -// Copyright (C) 2015-2018 Google, Inc. -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// Neither the name of 3Dlabs Inc. Ltd. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. - -// SPIRV-IR -// -// Simple in-memory representation (IR) of SPIRV. Just for holding -// Each function's CFG of blocks. Has this hierarchy: -// - Module, which is a list of -// - Function, which is a list of -// - Block, which is a list of -// - Instruction -// - -#pragma once -#ifndef spvIR_H -#define spvIR_H - -#include "spirv.hpp" - -#include -#include -#include -#include -#include -#include -#include - -namespace spv { - -class Block; -class Function; -class Module; - -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 | - MemorySemanticsWorkgroupMemoryMask | - MemorySemanticsAtomicCounterMemoryMask | - MemorySemanticsImageMemoryMask); - -struct IdImmediate { - bool isId; // true if word is an Id, false if word is an immediate - unsigned word; - IdImmediate(bool i, unsigned w) : isId(i), word(w) {} -}; - -// -// SPIR-V IR instruction. -// - -class Instruction { -public: - Instruction(Id resultId, Id typeId, Op opCode) : resultId(resultId), typeId(typeId), opCode(opCode), block(nullptr) { } - explicit Instruction(Op opCode) : resultId(NoResult), typeId(NoType), opCode(opCode), block(nullptr) { } - virtual ~Instruction() {} - void addIdOperand(Id id) { - operands.push_back(id); - idOperand.push_back(true); - } - void addImmediateOperand(unsigned int immediate) { - operands.push_back(immediate); - idOperand.push_back(false); - } - void setImmediateOperand(unsigned idx, unsigned int immediate) { - assert(!idOperand[idx]); - operands[idx] = immediate; - } - - void addStringOperand(const char* str) - { - unsigned int word = 0; - unsigned int shiftAmount = 0; - char c; - - do { - c = *(str++); - word |= ((unsigned int)c) << shiftAmount; - shiftAmount += 8; - if (shiftAmount == 32) { - addImmediateOperand(word); - word = 0; - shiftAmount = 0; - } - } while (c != 0); - - // deal with partial last word - if (shiftAmount > 0) { - addImmediateOperand(word); - } - } - bool isIdOperand(int op) const { return idOperand[op]; } - void setBlock(Block* b) { block = b; } - Block* getBlock() const { return block; } - Op getOpCode() const { return opCode; } - int getNumOperands() const - { - assert(operands.size() == idOperand.size()); - return (int)operands.size(); - } - Id getResultId() const { return resultId; } - Id getTypeId() const { return typeId; } - Id getIdOperand(int op) const { - assert(idOperand[op]); - return operands[op]; - } - unsigned int getImmediateOperand(int op) const { - assert(!idOperand[op]); - return operands[op]; - } - - // Write out the binary form. - void dump(std::vector& out) const - { - // Compute the wordCount - unsigned int wordCount = 1; - if (typeId) - ++wordCount; - if (resultId) - ++wordCount; - wordCount += (unsigned int)operands.size(); - - // Write out the beginning of the instruction - out.push_back(((wordCount) << WordCountShift) | opCode); - if (typeId) - out.push_back(typeId); - if (resultId) - out.push_back(resultId); - - // Write out the operands - for (int op = 0; op < (int)operands.size(); ++op) - out.push_back(operands[op]); - } - -protected: - Instruction(const Instruction&); - Id resultId; - Id typeId; - Op opCode; - std::vector operands; // operands, both and immediates (both are unsigned int) - std::vector idOperand; // true for operands that are , false for immediates - Block* block; -}; - -// -// SPIR-V IR block. -// - -class Block { -public: - Block(Id id, Function& parent); - virtual ~Block() - { - } - - Id getId() { return instructions.front()->getResultId(); } - - Function& getParent() const { return parent; } - void addInstruction(std::unique_ptr inst); - void addPredecessor(Block* pred) { predecessors.push_back(pred); pred->successors.push_back(this);} - void addLocalVariable(std::unique_ptr inst) { localVariables.push_back(std::move(inst)); } - const std::vector& getPredecessors() const { return predecessors; } - const std::vector& getSuccessors() const { return successors; } - const std::vector >& getInstructions() const { - return instructions; - } - const std::vector >& getLocalVariables() const { return localVariables; } - void setUnreachable() { unreachable = true; } - bool isUnreachable() const { return unreachable; } - // Returns the block's merge instruction, if one exists (otherwise null). - const Instruction* getMergeInstruction() const { - if (instructions.size() < 2) return nullptr; - const Instruction* nextToLast = (instructions.cend() - 2)->get(); - switch (nextToLast->getOpCode()) { - case OpSelectionMerge: - case OpLoopMerge: - return nextToLast; - default: - return nullptr; - } - return nullptr; - } - - // Change this block into a canonical dead merge block. Delete instructions - // as necessary. A canonical dead merge block has only an OpLabel and an - // OpUnreachable. - void rewriteAsCanonicalUnreachableMerge() { - assert(localVariables.empty()); - // Delete all instructions except for the label. - assert(instructions.size() > 0); - instructions.resize(1); - successors.clear(); - addInstruction(std::unique_ptr(new Instruction(OpUnreachable))); - } - // Change this block into a canonical dead continue target branching to the - // given header ID. Delete instructions as necessary. A canonical dead continue - // target has only an OpLabel and an unconditional branch back to the corresponding - // header. - void rewriteAsCanonicalUnreachableContinue(Block* header) { - assert(localVariables.empty()); - // Delete all instructions except for the label. - assert(instructions.size() > 0); - instructions.resize(1); - successors.clear(); - // Add OpBranch back to the header. - assert(header != nullptr); - Instruction* branch = new Instruction(OpBranch); - branch->addIdOperand(header->getId()); - addInstruction(std::unique_ptr(branch)); - successors.push_back(header); - } - - bool isTerminated() const - { - switch (instructions.back()->getOpCode()) { - case OpBranch: - case OpBranchConditional: - case OpSwitch: - case OpKill: - case OpTerminateInvocation: - case OpReturn: - case OpReturnValue: - case OpUnreachable: - return true; - default: - return false; - } - } - - void dump(std::vector& out) const - { - instructions[0]->dump(out); - for (int i = 0; i < (int)localVariables.size(); ++i) - localVariables[i]->dump(out); - for (int i = 1; i < (int)instructions.size(); ++i) - instructions[i]->dump(out); - } - -protected: - Block(const Block&); - Block& operator=(Block&); - - // To enforce keeping parent and ownership in sync: - friend Function; - - std::vector > instructions; - std::vector predecessors, successors; - std::vector > localVariables; - Function& parent; - - // track whether this block is known to be uncreachable (not necessarily - // true for all unreachable blocks, but should be set at least - // for the extraneous ones introduced by the builder). - bool unreachable; -}; - -// The different reasons for reaching a block in the inReadableOrder traversal. -enum ReachReason { - // Reachable from the entry block via transfers of control, i.e. branches. - ReachViaControlFlow = 0, - // A continue target that is not reachable via control flow. - ReachDeadContinue, - // A merge block that is not reachable via control flow. - ReachDeadMerge -}; - -// Traverses the control-flow graph rooted at root in an order suited for -// readable code generation. Invokes callback at every node in the traversal -// order. The callback arguments are: -// - the block, -// - the reason we reached the block, -// - if the reason was that block is an unreachable continue or unreachable merge block -// then the last parameter is the corresponding header block. -void inReadableOrder(Block* root, std::function callback); - -// -// SPIR-V IR Function. -// - -class Function { -public: - Function(Id id, Id resultType, Id functionType, Id firstParam, Module& parent); - virtual ~Function() - { - for (int i = 0; i < (int)parameterInstructions.size(); ++i) - delete parameterInstructions[i]; - - for (int i = 0; i < (int)blocks.size(); ++i) - 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(); } - - void addBlock(Block* block) { blocks.push_back(block); } - void removeBlock(Block* block) - { - auto found = find(blocks.begin(), blocks.end(), block); - assert(found != blocks.end()); - blocks.erase(found); - delete block; - } - - Module& getParent() const { return parent; } - Block* getEntryBlock() const { return blocks.front(); } - Block* getLastBlock() const { return blocks.back(); } - const std::vector& getBlocks() const { return blocks; } - void addLocalVariable(std::unique_ptr inst); - Id getReturnType() const { return functionInstruction.getTypeId(); } - void setReturnPrecision(Decoration precision) - { - if (precision == DecorationRelaxedPrecision) - reducedPrecisionReturn = true; - } - Decoration getReturnPrecision() const - { return reducedPrecisionReturn ? DecorationRelaxedPrecision : NoPrecision; } - - void setImplicitThis() { implicitThis = true; } - bool hasImplicitThis() const { return implicitThis; } - - void addParamPrecision(unsigned param, Decoration precision) - { - if (precision == DecorationRelaxedPrecision) - reducedPrecisionParams.insert(param); - } - Decoration getParamPrecision(unsigned param) const - { - return reducedPrecisionParams.find(param) != reducedPrecisionParams.end() ? - DecorationRelaxedPrecision : NoPrecision; - } - - void dump(std::vector& out) const - { - // OpFunction - functionInstruction.dump(out); - - // OpFunctionParameter - for (int p = 0; p < (int)parameterInstructions.size(); ++p) - parameterInstructions[p]->dump(out); - - // Blocks - inReadableOrder(blocks[0], [&out](const Block* b, ReachReason, Block*) { b->dump(out); }); - Instruction end(0, 0, OpFunctionEnd); - end.dump(out); - } - -protected: - Function(const Function&); - Function& operator=(Function&); - - Module& parent; - 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 - bool reducedPrecisionReturn; - std::set reducedPrecisionParams; // list of parameter indexes that need a relaxed precision arg -}; - -// -// SPIR-V IR Module. -// - -class Module { -public: - Module() {} - virtual ~Module() - { - // TODO delete things - } - - void addFunction(Function *fun) { functions.push_back(fun); } - - void mapInstruction(Instruction *instruction) - { - spv::Id resultId = instruction->getResultId(); - // map the instruction's result id - if (resultId >= idToInstruction.size()) - idToInstruction.resize(resultId + 16); - idToInstruction[resultId] = instruction; - } - - Instruction* getInstruction(Id id) const { return idToInstruction[id]; } - const std::vector& getFunctions() const { return functions; } - spv::Id getTypeId(Id resultId) const { - return idToInstruction[resultId] == nullptr ? NoType : idToInstruction[resultId]->getTypeId(); - } - StorageClass getStorageClass(Id typeId) const - { - assert(idToInstruction[typeId]->getOpCode() == spv::OpTypePointer); - return (StorageClass)idToInstruction[typeId]->getImmediateOperand(0); - } - - void dump(std::vector& out) const - { - for (int f = 0; f < (int)functions.size(); ++f) - functions[f]->dump(out); - } - -protected: - Module(const Module&); - std::vector functions; - - // map from result id to instruction having that result id - std::vector idToInstruction; - - // map from a result id to its type id -}; - -// -// Implementation (it's here due to circular type definitions). -// - -// Add both -// - 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), - reducedPrecisionReturn(false) -{ - // OpFunction - functionInstruction.addImmediateOperand(FunctionControlMaskNone); - functionInstruction.addIdOperand(functionType); - parent.mapInstruction(&functionInstruction); - parent.addFunction(this); - - // OpFunctionParameter - Instruction* typeInst = parent.getInstruction(functionType); - int numParams = typeInst->getNumOperands() - 1; - for (int p = 0; p < numParams; ++p) { - Instruction* param = new Instruction(firstParamId + p, typeInst->getIdOperand(p + 1), OpFunctionParameter); - parent.mapInstruction(param); - parameterInstructions.push_back(param); - } -} - -__inline void Function::addLocalVariable(std::unique_ptr inst) -{ - Instruction* raw_instruction = inst.get(); - blocks[0]->addLocalVariable(std::move(inst)); - parent.mapInstruction(raw_instruction); -} - -__inline Block::Block(Id id, Function& parent) : parent(parent), unreachable(false) -{ - instructions.push_back(std::unique_ptr(new Instruction(id, NoType, OpLabel))); - instructions.back()->setBlock(this); - parent.getParent().mapInstruction(instructions.back().get()); -} - -__inline void Block::addInstruction(std::unique_ptr inst) -{ - Instruction* raw_instruction = inst.get(); - instructions.push_back(std::move(inst)); - raw_instruction->setBlock(this); - if (raw_instruction->getResultId()) - parent.getParent().mapInstruction(raw_instruction); -} - -} // end spv namespace - -#endif // spvIR_H diff --git a/deps/glslang/StandAlone/CMakeLists.txt b/deps/glslang/StandAlone/CMakeLists.txt deleted file mode 100644 index f026d31f..00000000 --- a/deps/glslang/StandAlone/CMakeLists.txt +++ /dev/null @@ -1,127 +0,0 @@ -# Copyright (C) 2020 The Khronos Group 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 The Khronos Group 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. - -find_package(Python3 REQUIRED COMPONENTS Interpreter) - -set(GLSLANG_INTRINSIC_H "${GLSLANG_GENERATED_INCLUDEDIR}/glslang/glsl_intrinsic_header.h") -set(GLSLANG_INTRINSIC_PY "${CMAKE_CURRENT_SOURCE_DIR}/../gen_extension_headers.py") -set(GLSLANG_INTRINSIC_HEADER_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../glslang/ExtensionHeaders") - -add_custom_command( - OUTPUT ${GLSLANG_INTRINSIC_H} - COMMAND ${PYTHON_EXECUTABLE} "${GLSLANG_INTRINSIC_PY}" - "-i" ${GLSLANG_INTRINSIC_HEADER_DIR} - "-o" ${GLSLANG_INTRINSIC_H} - DEPENDS ${GLSLANG_INTRINSIC_PY} - COMMENT "Generating ${GLSLANG_INTRINSIC_H}") - -#add_custom_target(glslangValidator DEPENDS ${GLSLANG_INTRINSIC_H}) - -add_library(glslang-default-resource-limits - ${CMAKE_CURRENT_SOURCE_DIR}/ResourceLimits.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/resource_limits_c.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 $ - PUBLIC $) - -set(SOURCES StandAlone.cpp DirStackFileIncluder.h ${GLSLANG_INTRINSIC_H}) - -add_executable(glslangValidator ${SOURCES}) -set_property(TARGET glslangValidator PROPERTY FOLDER tools) -glslang_set_link_args(glslangValidator) - -set(LIBRARIES - glslang - SPIRV - glslang-default-resource-limits) - -if(ENABLE_SPVREMAPPER) - set(LIBRARIES ${LIBRARIES} SPVRemapper) -endif() - -if(WIN32) - set(LIBRARIES ${LIBRARIES} psapi) -elseif(UNIX) - if(NOT ANDROID) - set(LIBRARIES ${LIBRARIES} pthread) - endif() -endif() - -target_link_libraries(glslangValidator ${LIBRARIES}) -target_include_directories(glslangValidator PUBLIC - $ - $) - -if(ENABLE_OPT) - target_include_directories(glslangValidator - PRIVATE ${spirv-tools_SOURCE_DIR}/include - ) -endif() - -if(ENABLE_SPVREMAPPER) - set(REMAPPER_SOURCES spirv-remap.cpp) - add_executable(spirv-remap ${REMAPPER_SOURCES}) - set_property(TARGET spirv-remap PROPERTY FOLDER tools) - glslang_set_link_args(spirv-remap) - target_link_libraries(spirv-remap ${LIBRARIES}) -endif() - -if(WIN32) - source_group("Source" FILES ${SOURCES}) -endif() - -if(ENABLE_GLSLANG_INSTALL) - install(TARGETS glslangValidator EXPORT glslangValidatorTargets - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) - install(EXPORT glslangValidatorTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) - - if(ENABLE_SPVREMAPPER) - install(TARGETS spirv-remap EXPORT spirv-remapTargets - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) - install(EXPORT spirv-remapTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) - endif() - - if(BUILD_SHARED_LIBS) - install(TARGETS glslang-default-resource-limits EXPORT glslang-default-resource-limitsTargets - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) - else() - install(TARGETS glslang-default-resource-limits EXPORT glslang-default-resource-limitsTargets - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) - endif() - install(EXPORT glslang-default-resource-limitsTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) -endif() diff --git a/deps/glslang/StandAlone/DirStackFileIncluder.h b/deps/glslang/StandAlone/DirStackFileIncluder.h deleted file mode 100644 index 5a33c78f..00000000 --- a/deps/glslang/StandAlone/DirStackFileIncluder.h +++ /dev/null @@ -1,149 +0,0 @@ -// -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2017 Google, Inc. -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// Neither the name of 3Dlabs Inc. Ltd. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -// - -#pragma once - -#include -#include -#include -#include -#include - -#include "./../glslang/Public/ShaderLang.h" - -// Default include class for normal include convention of search backward -// through the stack of active include paths (for nested includes). -// Can be overridden to customize. -class DirStackFileIncluder : public glslang::TShader::Includer { -public: - DirStackFileIncluder() : externalLocalDirectoryCount(0) { } - - virtual IncludeResult* includeLocal(const char* headerName, - const char* includerName, - size_t inclusionDepth) override - { - return readLocalPath(headerName, includerName, (int)inclusionDepth); - } - - virtual IncludeResult* includeSystem(const char* headerName, - const char* /*includerName*/, - size_t /*inclusionDepth*/) override - { - return readSystemPath(headerName); - } - - // Externally set directories. E.g., from a command-line -I. - // - Most-recently pushed are checked first. - // - All these are checked after the parse-time stack of local directories - // is checked. - // - This only applies to the "local" form of #include. - // - Makes its own copy of the path. - virtual void pushExternalLocalDirectory(const std::string& dir) - { - directoryStack.push_back(dir); - externalLocalDirectoryCount = (int)directoryStack.size(); - } - - virtual void releaseInclude(IncludeResult* result) override - { - if (result != nullptr) { - delete [] static_cast(result->userData); - delete result; - } - } - - virtual std::set getIncludedFiles() - { - return includedFiles; - } - - virtual ~DirStackFileIncluder() override { } - -protected: - typedef char tUserDataElement; - std::vector directoryStack; - int externalLocalDirectoryCount; - std::set includedFiles; - - // Search for a valid "local" path based on combining the stack of include - // directories and the nominal name of the header. - virtual IncludeResult* readLocalPath(const char* headerName, const char* includerName, int depth) - { - // Discard popped include directories, and - // initialize when at parse-time first level. - directoryStack.resize(depth + externalLocalDirectoryCount); - if (depth == 1) - directoryStack.back() = getDirectory(includerName); - - // Find a directory that works, using a reverse search of the include stack. - for (auto it = directoryStack.rbegin(); it != directoryStack.rend(); ++it) { - std::string path = *it + '/' + headerName; - std::replace(path.begin(), path.end(), '\\', '/'); - std::ifstream file(path, std::ios_base::binary | std::ios_base::ate); - if (file) { - directoryStack.push_back(getDirectory(path)); - includedFiles.insert(path); - return newIncludeResult(path, file, (int)file.tellg()); - } - } - - return nullptr; - } - - // Search for a valid path. - // Not implemented yet; returning nullptr signals failure to find. - virtual IncludeResult* readSystemPath(const char* /*headerName*/) const - { - return nullptr; - } - - // Do actual reading of the file, filling in a new include result. - virtual IncludeResult* newIncludeResult(const std::string& path, std::ifstream& file, int length) const - { - char* content = new tUserDataElement [length]; - file.seekg(0, file.beg); - file.read(content, length); - return new IncludeResult(path, content, length, content); - } - - // If no path markers, return current working directory. - // Otherwise, strip file name and return path leading up to it. - virtual std::string getDirectory(const std::string path) const - { - size_t last = path.find_last_of("/\\"); - return last == std::string::npos ? "." : path.substr(0, last); - } -}; diff --git a/deps/glslang/StandAlone/ResourceLimits.cpp b/deps/glslang/StandAlone/ResourceLimits.cpp deleted file mode 100644 index 7c7f4c4e..00000000 --- a/deps/glslang/StandAlone/ResourceLimits.cpp +++ /dev/null @@ -1,496 +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 -#include -#include -#include - -#include "ResourceLimits.h" - -namespace glslang { - -const TBuiltInResource DefaultTBuiltInResource = { - /* .MaxLights = */ 32, - /* .MaxClipPlanes = */ 6, - /* .MaxTextureUnits = */ 32, - /* .MaxTextureCoords = */ 32, - /* .MaxVertexAttribs = */ 64, - /* .MaxVertexUniformComponents = */ 4096, - /* .MaxVaryingFloats = */ 64, - /* .MaxVertexTextureImageUnits = */ 32, - /* .MaxCombinedTextureImageUnits = */ 80, - /* .MaxTextureImageUnits = */ 32, - /* .MaxFragmentUniformComponents = */ 4096, - /* .MaxDrawBuffers = */ 32, - /* .MaxVertexUniformVectors = */ 128, - /* .MaxVaryingVectors = */ 8, - /* .MaxFragmentUniformVectors = */ 16, - /* .MaxVertexOutputVectors = */ 16, - /* .MaxFragmentInputVectors = */ 15, - /* .MinProgramTexelOffset = */ -8, - /* .MaxProgramTexelOffset = */ 7, - /* .MaxClipDistances = */ 8, - /* .MaxComputeWorkGroupCountX = */ 65535, - /* .MaxComputeWorkGroupCountY = */ 65535, - /* .MaxComputeWorkGroupCountZ = */ 65535, - /* .MaxComputeWorkGroupSizeX = */ 1024, - /* .MaxComputeWorkGroupSizeY = */ 1024, - /* .MaxComputeWorkGroupSizeZ = */ 64, - /* .MaxComputeUniformComponents = */ 1024, - /* .MaxComputeTextureImageUnits = */ 16, - /* .MaxComputeImageUniforms = */ 8, - /* .MaxComputeAtomicCounters = */ 8, - /* .MaxComputeAtomicCounterBuffers = */ 1, - /* .MaxVaryingComponents = */ 60, - /* .MaxVertexOutputComponents = */ 64, - /* .MaxGeometryInputComponents = */ 64, - /* .MaxGeometryOutputComponents = */ 128, - /* .MaxFragmentInputComponents = */ 128, - /* .MaxImageUnits = */ 8, - /* .MaxCombinedImageUnitsAndFragmentOutputs = */ 8, - /* .MaxCombinedShaderOutputResources = */ 8, - /* .MaxImageSamples = */ 0, - /* .MaxVertexImageUniforms = */ 0, - /* .MaxTessControlImageUniforms = */ 0, - /* .MaxTessEvaluationImageUniforms = */ 0, - /* .MaxGeometryImageUniforms = */ 0, - /* .MaxFragmentImageUniforms = */ 8, - /* .MaxCombinedImageUniforms = */ 8, - /* .MaxGeometryTextureImageUnits = */ 16, - /* .MaxGeometryOutputVertices = */ 256, - /* .MaxGeometryTotalOutputComponents = */ 1024, - /* .MaxGeometryUniformComponents = */ 1024, - /* .MaxGeometryVaryingComponents = */ 64, - /* .MaxTessControlInputComponents = */ 128, - /* .MaxTessControlOutputComponents = */ 128, - /* .MaxTessControlTextureImageUnits = */ 16, - /* .MaxTessControlUniformComponents = */ 1024, - /* .MaxTessControlTotalOutputComponents = */ 4096, - /* .MaxTessEvaluationInputComponents = */ 128, - /* .MaxTessEvaluationOutputComponents = */ 128, - /* .MaxTessEvaluationTextureImageUnits = */ 16, - /* .MaxTessEvaluationUniformComponents = */ 1024, - /* .MaxTessPatchComponents = */ 120, - /* .MaxPatchVertices = */ 32, - /* .MaxTessGenLevel = */ 64, - /* .MaxViewports = */ 16, - /* .MaxVertexAtomicCounters = */ 0, - /* .MaxTessControlAtomicCounters = */ 0, - /* .MaxTessEvaluationAtomicCounters = */ 0, - /* .MaxGeometryAtomicCounters = */ 0, - /* .MaxFragmentAtomicCounters = */ 8, - /* .MaxCombinedAtomicCounters = */ 8, - /* .MaxAtomicCounterBindings = */ 1, - /* .MaxVertexAtomicCounterBuffers = */ 0, - /* .MaxTessControlAtomicCounterBuffers = */ 0, - /* .MaxTessEvaluationAtomicCounterBuffers = */ 0, - /* .MaxGeometryAtomicCounterBuffers = */ 0, - /* .MaxFragmentAtomicCounterBuffers = */ 1, - /* .MaxCombinedAtomicCounterBuffers = */ 1, - /* .MaxAtomicCounterBufferSize = */ 16384, - /* .MaxTransformFeedbackBuffers = */ 4, - /* .MaxTransformFeedbackInterleavedComponents = */ 64, - /* .MaxCullDistances = */ 8, - /* .MaxCombinedClipAndCullDistances = */ 8, - /* .MaxSamples = */ 4, - /* .maxMeshOutputVerticesNV = */ 256, - /* .maxMeshOutputPrimitivesNV = */ 512, - /* .maxMeshWorkGroupSizeX_NV = */ 32, - /* .maxMeshWorkGroupSizeY_NV = */ 1, - /* .maxMeshWorkGroupSizeZ_NV = */ 1, - /* .maxTaskWorkGroupSizeX_NV = */ 32, - /* .maxTaskWorkGroupSizeY_NV = */ 1, - /* .maxTaskWorkGroupSizeZ_NV = */ 1, - /* .maxMeshViewCountNV = */ 4, - /* .maxDualSourceDrawBuffersEXT = */ 1, - - /* .limits = */ { - /* .nonInductiveForLoops = */ 1, - /* .whileLoops = */ 1, - /* .doWhileLoops = */ 1, - /* .generalUniformIndexing = */ 1, - /* .generalAttributeMatrixVectorIndexing = */ 1, - /* .generalVaryingIndexing = */ 1, - /* .generalSamplerIndexing = */ 1, - /* .generalVariableIndexing = */ 1, - /* .generalConstantMatrixVectorIndexing = */ 1, - }}; - -std::string GetDefaultTBuiltInResourceString() -{ - std::ostringstream ostream; - - ostream << "MaxLights " << DefaultTBuiltInResource.maxLights << "\n" - << "MaxClipPlanes " << DefaultTBuiltInResource.maxClipPlanes << "\n" - << "MaxTextureUnits " << DefaultTBuiltInResource.maxTextureUnits << "\n" - << "MaxTextureCoords " << DefaultTBuiltInResource.maxTextureCoords << "\n" - << "MaxVertexAttribs " << DefaultTBuiltInResource.maxVertexAttribs << "\n" - << "MaxVertexUniformComponents " << DefaultTBuiltInResource.maxVertexUniformComponents << "\n" - << "MaxVaryingFloats " << DefaultTBuiltInResource.maxVaryingFloats << "\n" - << "MaxVertexTextureImageUnits " << DefaultTBuiltInResource.maxVertexTextureImageUnits << "\n" - << "MaxCombinedTextureImageUnits " << DefaultTBuiltInResource.maxCombinedTextureImageUnits << "\n" - << "MaxTextureImageUnits " << DefaultTBuiltInResource.maxTextureImageUnits << "\n" - << "MaxFragmentUniformComponents " << DefaultTBuiltInResource.maxFragmentUniformComponents << "\n" - << "MaxDrawBuffers " << DefaultTBuiltInResource.maxDrawBuffers << "\n" - << "MaxVertexUniformVectors " << DefaultTBuiltInResource.maxVertexUniformVectors << "\n" - << "MaxVaryingVectors " << DefaultTBuiltInResource.maxVaryingVectors << "\n" - << "MaxFragmentUniformVectors " << DefaultTBuiltInResource.maxFragmentUniformVectors << "\n" - << "MaxVertexOutputVectors " << DefaultTBuiltInResource.maxVertexOutputVectors << "\n" - << "MaxFragmentInputVectors " << DefaultTBuiltInResource.maxFragmentInputVectors << "\n" - << "MinProgramTexelOffset " << DefaultTBuiltInResource.minProgramTexelOffset << "\n" - << "MaxProgramTexelOffset " << DefaultTBuiltInResource.maxProgramTexelOffset << "\n" - << "MaxClipDistances " << DefaultTBuiltInResource.maxClipDistances << "\n" - << "MaxComputeWorkGroupCountX " << DefaultTBuiltInResource.maxComputeWorkGroupCountX << "\n" - << "MaxComputeWorkGroupCountY " << DefaultTBuiltInResource.maxComputeWorkGroupCountY << "\n" - << "MaxComputeWorkGroupCountZ " << DefaultTBuiltInResource.maxComputeWorkGroupCountZ << "\n" - << "MaxComputeWorkGroupSizeX " << DefaultTBuiltInResource.maxComputeWorkGroupSizeX << "\n" - << "MaxComputeWorkGroupSizeY " << DefaultTBuiltInResource.maxComputeWorkGroupSizeY << "\n" - << "MaxComputeWorkGroupSizeZ " << DefaultTBuiltInResource.maxComputeWorkGroupSizeZ << "\n" - << "MaxComputeUniformComponents " << DefaultTBuiltInResource.maxComputeUniformComponents << "\n" - << "MaxComputeTextureImageUnits " << DefaultTBuiltInResource.maxComputeTextureImageUnits << "\n" - << "MaxComputeImageUniforms " << DefaultTBuiltInResource.maxComputeImageUniforms << "\n" - << "MaxComputeAtomicCounters " << DefaultTBuiltInResource.maxComputeAtomicCounters << "\n" - << "MaxComputeAtomicCounterBuffers " << DefaultTBuiltInResource.maxComputeAtomicCounterBuffers << "\n" - << "MaxVaryingComponents " << DefaultTBuiltInResource.maxVaryingComponents << "\n" - << "MaxVertexOutputComponents " << DefaultTBuiltInResource.maxVertexOutputComponents << "\n" - << "MaxGeometryInputComponents " << DefaultTBuiltInResource.maxGeometryInputComponents << "\n" - << "MaxGeometryOutputComponents " << DefaultTBuiltInResource.maxGeometryOutputComponents << "\n" - << "MaxFragmentInputComponents " << DefaultTBuiltInResource.maxFragmentInputComponents << "\n" - << "MaxImageUnits " << DefaultTBuiltInResource.maxImageUnits << "\n" - << "MaxCombinedImageUnitsAndFragmentOutputs " << DefaultTBuiltInResource.maxCombinedImageUnitsAndFragmentOutputs << "\n" - << "MaxCombinedShaderOutputResources " << DefaultTBuiltInResource.maxCombinedShaderOutputResources << "\n" - << "MaxImageSamples " << DefaultTBuiltInResource.maxImageSamples << "\n" - << "MaxVertexImageUniforms " << DefaultTBuiltInResource.maxVertexImageUniforms << "\n" - << "MaxTessControlImageUniforms " << DefaultTBuiltInResource.maxTessControlImageUniforms << "\n" - << "MaxTessEvaluationImageUniforms " << DefaultTBuiltInResource.maxTessEvaluationImageUniforms << "\n" - << "MaxGeometryImageUniforms " << DefaultTBuiltInResource.maxGeometryImageUniforms << "\n" - << "MaxFragmentImageUniforms " << DefaultTBuiltInResource.maxFragmentImageUniforms << "\n" - << "MaxCombinedImageUniforms " << DefaultTBuiltInResource.maxCombinedImageUniforms << "\n" - << "MaxGeometryTextureImageUnits " << DefaultTBuiltInResource.maxGeometryTextureImageUnits << "\n" - << "MaxGeometryOutputVertices " << DefaultTBuiltInResource.maxGeometryOutputVertices << "\n" - << "MaxGeometryTotalOutputComponents " << DefaultTBuiltInResource.maxGeometryTotalOutputComponents << "\n" - << "MaxGeometryUniformComponents " << DefaultTBuiltInResource.maxGeometryUniformComponents << "\n" - << "MaxGeometryVaryingComponents " << DefaultTBuiltInResource.maxGeometryVaryingComponents << "\n" - << "MaxTessControlInputComponents " << DefaultTBuiltInResource.maxTessControlInputComponents << "\n" - << "MaxTessControlOutputComponents " << DefaultTBuiltInResource.maxTessControlOutputComponents << "\n" - << "MaxTessControlTextureImageUnits " << DefaultTBuiltInResource.maxTessControlTextureImageUnits << "\n" - << "MaxTessControlUniformComponents " << DefaultTBuiltInResource.maxTessControlUniformComponents << "\n" - << "MaxTessControlTotalOutputComponents " << DefaultTBuiltInResource.maxTessControlTotalOutputComponents << "\n" - << "MaxTessEvaluationInputComponents " << DefaultTBuiltInResource.maxTessEvaluationInputComponents << "\n" - << "MaxTessEvaluationOutputComponents " << DefaultTBuiltInResource.maxTessEvaluationOutputComponents << "\n" - << "MaxTessEvaluationTextureImageUnits " << DefaultTBuiltInResource.maxTessEvaluationTextureImageUnits << "\n" - << "MaxTessEvaluationUniformComponents " << DefaultTBuiltInResource.maxTessEvaluationUniformComponents << "\n" - << "MaxTessPatchComponents " << DefaultTBuiltInResource.maxTessPatchComponents << "\n" - << "MaxPatchVertices " << DefaultTBuiltInResource.maxPatchVertices << "\n" - << "MaxTessGenLevel " << DefaultTBuiltInResource.maxTessGenLevel << "\n" - << "MaxViewports " << DefaultTBuiltInResource.maxViewports << "\n" - << "MaxVertexAtomicCounters " << DefaultTBuiltInResource.maxVertexAtomicCounters << "\n" - << "MaxTessControlAtomicCounters " << DefaultTBuiltInResource.maxTessControlAtomicCounters << "\n" - << "MaxTessEvaluationAtomicCounters " << DefaultTBuiltInResource.maxTessEvaluationAtomicCounters << "\n" - << "MaxGeometryAtomicCounters " << DefaultTBuiltInResource.maxGeometryAtomicCounters << "\n" - << "MaxFragmentAtomicCounters " << DefaultTBuiltInResource.maxFragmentAtomicCounters << "\n" - << "MaxCombinedAtomicCounters " << DefaultTBuiltInResource.maxCombinedAtomicCounters << "\n" - << "MaxAtomicCounterBindings " << DefaultTBuiltInResource.maxAtomicCounterBindings << "\n" - << "MaxVertexAtomicCounterBuffers " << DefaultTBuiltInResource.maxVertexAtomicCounterBuffers << "\n" - << "MaxTessControlAtomicCounterBuffers " << DefaultTBuiltInResource.maxTessControlAtomicCounterBuffers << "\n" - << "MaxTessEvaluationAtomicCounterBuffers " << DefaultTBuiltInResource.maxTessEvaluationAtomicCounterBuffers << "\n" - << "MaxGeometryAtomicCounterBuffers " << DefaultTBuiltInResource.maxGeometryAtomicCounterBuffers << "\n" - << "MaxFragmentAtomicCounterBuffers " << DefaultTBuiltInResource.maxFragmentAtomicCounterBuffers << "\n" - << "MaxCombinedAtomicCounterBuffers " << DefaultTBuiltInResource.maxCombinedAtomicCounterBuffers << "\n" - << "MaxAtomicCounterBufferSize " << DefaultTBuiltInResource.maxAtomicCounterBufferSize << "\n" - << "MaxTransformFeedbackBuffers " << DefaultTBuiltInResource.maxTransformFeedbackBuffers << "\n" - << "MaxTransformFeedbackInterleavedComponents " << DefaultTBuiltInResource.maxTransformFeedbackInterleavedComponents << "\n" - << "MaxCullDistances " << DefaultTBuiltInResource.maxCullDistances << "\n" - << "MaxCombinedClipAndCullDistances " << DefaultTBuiltInResource.maxCombinedClipAndCullDistances << "\n" - << "MaxSamples " << DefaultTBuiltInResource.maxSamples << "\n" - << "MaxMeshOutputVerticesNV " << DefaultTBuiltInResource.maxMeshOutputVerticesNV << "\n" - << "MaxMeshOutputPrimitivesNV " << DefaultTBuiltInResource.maxMeshOutputPrimitivesNV << "\n" - << "MaxMeshWorkGroupSizeX_NV " << DefaultTBuiltInResource.maxMeshWorkGroupSizeX_NV << "\n" - << "MaxMeshWorkGroupSizeY_NV " << DefaultTBuiltInResource.maxMeshWorkGroupSizeY_NV << "\n" - << "MaxMeshWorkGroupSizeZ_NV " << DefaultTBuiltInResource.maxMeshWorkGroupSizeZ_NV << "\n" - << "MaxTaskWorkGroupSizeX_NV " << DefaultTBuiltInResource.maxTaskWorkGroupSizeX_NV << "\n" - << "MaxTaskWorkGroupSizeY_NV " << DefaultTBuiltInResource.maxTaskWorkGroupSizeY_NV << "\n" - << "MaxTaskWorkGroupSizeZ_NV " << DefaultTBuiltInResource.maxTaskWorkGroupSizeZ_NV << "\n" - << "MaxMeshViewCountNV " << DefaultTBuiltInResource.maxMeshViewCountNV << "\n" - << "MaxDualSourceDrawBuffersEXT " << DefaultTBuiltInResource.maxDualSourceDrawBuffersEXT << "\n" - << "nonInductiveForLoops " << DefaultTBuiltInResource.limits.nonInductiveForLoops << "\n" - << "whileLoops " << DefaultTBuiltInResource.limits.whileLoops << "\n" - << "doWhileLoops " << DefaultTBuiltInResource.limits.doWhileLoops << "\n" - << "generalUniformIndexing " << DefaultTBuiltInResource.limits.generalUniformIndexing << "\n" - << "generalAttributeMatrixVectorIndexing " << DefaultTBuiltInResource.limits.generalAttributeMatrixVectorIndexing << "\n" - << "generalVaryingIndexing " << DefaultTBuiltInResource.limits.generalVaryingIndexing << "\n" - << "generalSamplerIndexing " << DefaultTBuiltInResource.limits.generalSamplerIndexing << "\n" - << "generalVariableIndexing " << DefaultTBuiltInResource.limits.generalVariableIndexing << "\n" - << "generalConstantMatrixVectorIndexing " << DefaultTBuiltInResource.limits.generalConstantMatrixVectorIndexing << "\n" - ; - - return ostream.str(); -} - -void DecodeResourceLimits(TBuiltInResource* resources, char* config) -{ - static const char* delims = " \t\n\r"; - - size_t pos = 0; - std::string configStr(config); - - while ((pos = configStr.find_first_not_of(delims, pos)) != std::string::npos) { - const size_t token_s = pos; - const size_t token_e = configStr.find_first_of(delims, token_s); - const size_t value_s = configStr.find_first_not_of(delims, token_e); - const size_t value_e = configStr.find_first_of(delims, value_s); - pos = value_e; - - // Faster to use compare(), but prefering readability. - const std::string tokenStr = configStr.substr(token_s, token_e-token_s); - const std::string valueStr = configStr.substr(value_s, value_e-value_s); - - if (value_s == std::string::npos || ! (valueStr[0] == '-' || isdigit(valueStr[0]))) { - printf("Error: '%s' bad .conf file. Each name must be followed by one number.\n", - valueStr.c_str()); - return; - } - - const int value = std::atoi(valueStr.c_str()); - - if (tokenStr == "MaxLights") - resources->maxLights = value; - else if (tokenStr == "MaxClipPlanes") - resources->maxClipPlanes = value; - else if (tokenStr == "MaxTextureUnits") - resources->maxTextureUnits = value; - else if (tokenStr == "MaxTextureCoords") - resources->maxTextureCoords = value; - else if (tokenStr == "MaxVertexAttribs") - resources->maxVertexAttribs = value; - else if (tokenStr == "MaxVertexUniformComponents") - resources->maxVertexUniformComponents = value; - else if (tokenStr == "MaxVaryingFloats") - resources->maxVaryingFloats = value; - else if (tokenStr == "MaxVertexTextureImageUnits") - resources->maxVertexTextureImageUnits = value; - else if (tokenStr == "MaxCombinedTextureImageUnits") - resources->maxCombinedTextureImageUnits = value; - else if (tokenStr == "MaxTextureImageUnits") - resources->maxTextureImageUnits = value; - else if (tokenStr == "MaxFragmentUniformComponents") - resources->maxFragmentUniformComponents = value; - else if (tokenStr == "MaxDrawBuffers") - resources->maxDrawBuffers = value; - else if (tokenStr == "MaxVertexUniformVectors") - resources->maxVertexUniformVectors = value; - else if (tokenStr == "MaxVaryingVectors") - resources->maxVaryingVectors = value; - else if (tokenStr == "MaxFragmentUniformVectors") - resources->maxFragmentUniformVectors = value; - else if (tokenStr == "MaxVertexOutputVectors") - resources->maxVertexOutputVectors = value; - else if (tokenStr == "MaxFragmentInputVectors") - resources->maxFragmentInputVectors = value; - else if (tokenStr == "MinProgramTexelOffset") - resources->minProgramTexelOffset = value; - else if (tokenStr == "MaxProgramTexelOffset") - resources->maxProgramTexelOffset = value; - else if (tokenStr == "MaxClipDistances") - resources->maxClipDistances = value; - else if (tokenStr == "MaxComputeWorkGroupCountX") - resources->maxComputeWorkGroupCountX = value; - else if (tokenStr == "MaxComputeWorkGroupCountY") - resources->maxComputeWorkGroupCountY = value; - else if (tokenStr == "MaxComputeWorkGroupCountZ") - resources->maxComputeWorkGroupCountZ = value; - else if (tokenStr == "MaxComputeWorkGroupSizeX") - resources->maxComputeWorkGroupSizeX = value; - else if (tokenStr == "MaxComputeWorkGroupSizeY") - resources->maxComputeWorkGroupSizeY = value; - else if (tokenStr == "MaxComputeWorkGroupSizeZ") - resources->maxComputeWorkGroupSizeZ = value; - else if (tokenStr == "MaxComputeUniformComponents") - resources->maxComputeUniformComponents = value; - else if (tokenStr == "MaxComputeTextureImageUnits") - resources->maxComputeTextureImageUnits = value; - else if (tokenStr == "MaxComputeImageUniforms") - resources->maxComputeImageUniforms = value; - else if (tokenStr == "MaxComputeAtomicCounters") - resources->maxComputeAtomicCounters = value; - else if (tokenStr == "MaxComputeAtomicCounterBuffers") - resources->maxComputeAtomicCounterBuffers = value; - else if (tokenStr == "MaxVaryingComponents") - resources->maxVaryingComponents = value; - else if (tokenStr == "MaxVertexOutputComponents") - resources->maxVertexOutputComponents = value; - else if (tokenStr == "MaxGeometryInputComponents") - resources->maxGeometryInputComponents = value; - else if (tokenStr == "MaxGeometryOutputComponents") - resources->maxGeometryOutputComponents = value; - else if (tokenStr == "MaxFragmentInputComponents") - resources->maxFragmentInputComponents = value; - else if (tokenStr == "MaxImageUnits") - resources->maxImageUnits = value; - else if (tokenStr == "MaxCombinedImageUnitsAndFragmentOutputs") - resources->maxCombinedImageUnitsAndFragmentOutputs = value; - else if (tokenStr == "MaxCombinedShaderOutputResources") - resources->maxCombinedShaderOutputResources = value; - else if (tokenStr == "MaxImageSamples") - resources->maxImageSamples = value; - else if (tokenStr == "MaxVertexImageUniforms") - resources->maxVertexImageUniforms = value; - else if (tokenStr == "MaxTessControlImageUniforms") - resources->maxTessControlImageUniforms = value; - else if (tokenStr == "MaxTessEvaluationImageUniforms") - resources->maxTessEvaluationImageUniforms = value; - else if (tokenStr == "MaxGeometryImageUniforms") - resources->maxGeometryImageUniforms = value; - else if (tokenStr == "MaxFragmentImageUniforms") - resources->maxFragmentImageUniforms = value; - else if (tokenStr == "MaxCombinedImageUniforms") - resources->maxCombinedImageUniforms = value; - else if (tokenStr == "MaxGeometryTextureImageUnits") - resources->maxGeometryTextureImageUnits = value; - else if (tokenStr == "MaxGeometryOutputVertices") - resources->maxGeometryOutputVertices = value; - else if (tokenStr == "MaxGeometryTotalOutputComponents") - resources->maxGeometryTotalOutputComponents = value; - else if (tokenStr == "MaxGeometryUniformComponents") - resources->maxGeometryUniformComponents = value; - else if (tokenStr == "MaxGeometryVaryingComponents") - resources->maxGeometryVaryingComponents = value; - else if (tokenStr == "MaxTessControlInputComponents") - resources->maxTessControlInputComponents = value; - else if (tokenStr == "MaxTessControlOutputComponents") - resources->maxTessControlOutputComponents = value; - else if (tokenStr == "MaxTessControlTextureImageUnits") - resources->maxTessControlTextureImageUnits = value; - else if (tokenStr == "MaxTessControlUniformComponents") - resources->maxTessControlUniformComponents = value; - else if (tokenStr == "MaxTessControlTotalOutputComponents") - resources->maxTessControlTotalOutputComponents = value; - else if (tokenStr == "MaxTessEvaluationInputComponents") - resources->maxTessEvaluationInputComponents = value; - else if (tokenStr == "MaxTessEvaluationOutputComponents") - resources->maxTessEvaluationOutputComponents = value; - else if (tokenStr == "MaxTessEvaluationTextureImageUnits") - resources->maxTessEvaluationTextureImageUnits = value; - else if (tokenStr == "MaxTessEvaluationUniformComponents") - resources->maxTessEvaluationUniformComponents = value; - else if (tokenStr == "MaxTessPatchComponents") - resources->maxTessPatchComponents = value; - else if (tokenStr == "MaxPatchVertices") - resources->maxPatchVertices = value; - else if (tokenStr == "MaxTessGenLevel") - resources->maxTessGenLevel = value; - else if (tokenStr == "MaxViewports") - resources->maxViewports = value; - else if (tokenStr == "MaxVertexAtomicCounters") - resources->maxVertexAtomicCounters = value; - else if (tokenStr == "MaxTessControlAtomicCounters") - resources->maxTessControlAtomicCounters = value; - else if (tokenStr == "MaxTessEvaluationAtomicCounters") - resources->maxTessEvaluationAtomicCounters = value; - else if (tokenStr == "MaxGeometryAtomicCounters") - resources->maxGeometryAtomicCounters = value; - else if (tokenStr == "MaxFragmentAtomicCounters") - resources->maxFragmentAtomicCounters = value; - else if (tokenStr == "MaxCombinedAtomicCounters") - resources->maxCombinedAtomicCounters = value; - else if (tokenStr == "MaxAtomicCounterBindings") - resources->maxAtomicCounterBindings = value; - else if (tokenStr == "MaxVertexAtomicCounterBuffers") - resources->maxVertexAtomicCounterBuffers = value; - else if (tokenStr == "MaxTessControlAtomicCounterBuffers") - resources->maxTessControlAtomicCounterBuffers = value; - else if (tokenStr == "MaxTessEvaluationAtomicCounterBuffers") - resources->maxTessEvaluationAtomicCounterBuffers = value; - else if (tokenStr == "MaxGeometryAtomicCounterBuffers") - resources->maxGeometryAtomicCounterBuffers = value; - else if (tokenStr == "MaxFragmentAtomicCounterBuffers") - resources->maxFragmentAtomicCounterBuffers = value; - else if (tokenStr == "MaxCombinedAtomicCounterBuffers") - resources->maxCombinedAtomicCounterBuffers = value; - else if (tokenStr == "MaxAtomicCounterBufferSize") - resources->maxAtomicCounterBufferSize = value; - else if (tokenStr == "MaxTransformFeedbackBuffers") - resources->maxTransformFeedbackBuffers = value; - else if (tokenStr == "MaxTransformFeedbackInterleavedComponents") - resources->maxTransformFeedbackInterleavedComponents = value; - else if (tokenStr == "MaxCullDistances") - resources->maxCullDistances = value; - else if (tokenStr == "MaxCombinedClipAndCullDistances") - resources->maxCombinedClipAndCullDistances = value; - else if (tokenStr == "MaxSamples") - resources->maxSamples = value; - else if (tokenStr == "MaxMeshOutputVerticesNV") - resources->maxMeshOutputVerticesNV = value; - else if (tokenStr == "MaxMeshOutputPrimitivesNV") - resources->maxMeshOutputPrimitivesNV = value; - else if (tokenStr == "MaxMeshWorkGroupSizeX_NV") - resources->maxMeshWorkGroupSizeX_NV = value; - else if (tokenStr == "MaxMeshWorkGroupSizeY_NV") - resources->maxMeshWorkGroupSizeY_NV = value; - else if (tokenStr == "MaxMeshWorkGroupSizeZ_NV") - resources->maxMeshWorkGroupSizeZ_NV = value; - else if (tokenStr == "MaxTaskWorkGroupSizeX_NV") - resources->maxTaskWorkGroupSizeX_NV = value; - else if (tokenStr == "MaxTaskWorkGroupSizeY_NV") - resources->maxTaskWorkGroupSizeY_NV = value; - else if (tokenStr == "MaxTaskWorkGroupSizeZ_NV") - resources->maxTaskWorkGroupSizeZ_NV = value; - else if (tokenStr == "MaxMeshViewCountNV") - resources->maxMeshViewCountNV = value; - else if (tokenStr == "nonInductiveForLoops") - resources->limits.nonInductiveForLoops = (value != 0); - else if (tokenStr == "whileLoops") - resources->limits.whileLoops = (value != 0); - else if (tokenStr == "doWhileLoops") - resources->limits.doWhileLoops = (value != 0); - else if (tokenStr == "generalUniformIndexing") - resources->limits.generalUniformIndexing = (value != 0); - else if (tokenStr == "generalAttributeMatrixVectorIndexing") - resources->limits.generalAttributeMatrixVectorIndexing = (value != 0); - else if (tokenStr == "generalVaryingIndexing") - resources->limits.generalVaryingIndexing = (value != 0); - else if (tokenStr == "generalSamplerIndexing") - resources->limits.generalSamplerIndexing = (value != 0); - else if (tokenStr == "generalVariableIndexing") - resources->limits.generalVariableIndexing = (value != 0); - else if (tokenStr == "generalConstantMatrixVectorIndexing") - resources->limits.generalConstantMatrixVectorIndexing = (value != 0); - else - printf("Warning: unrecognized limit (%s) in configuration file.\n", tokenStr.c_str()); - - } -} - -} // end namespace glslang diff --git a/deps/glslang/StandAlone/ResourceLimits.h b/deps/glslang/StandAlone/ResourceLimits.h deleted file mode 100644 index 736248eb..00000000 --- a/deps/glslang/StandAlone/ResourceLimits.h +++ /dev/null @@ -1,57 +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. - -#ifndef _STAND_ALONE_RESOURCE_LIMITS_INCLUDED_ -#define _STAND_ALONE_RESOURCE_LIMITS_INCLUDED_ - -#include - -#include "../glslang/Include/ResourceLimits.h" - -namespace glslang { - -// These are the default resources for TBuiltInResources, used for both -// - parsing this string for the case where the user didn't supply one, -// - dumping out a template for user construction of a config file. -extern const TBuiltInResource DefaultTBuiltInResource; - -// Returns the DefaultTBuiltInResource as a human-readable string. -std::string GetDefaultTBuiltInResourceString(); - -// Decodes the resource limits from |config| to |resources|. -void DecodeResourceLimits(TBuiltInResource* resources, char* config); - -} // end namespace glslang - -#endif // _STAND_ALONE_RESOURCE_LIMITS_INCLUDED_ diff --git a/deps/glslang/StandAlone/StandAlone.cpp b/deps/glslang/StandAlone/StandAlone.cpp deleted file mode 100644 index 37282f2d..00000000 --- a/deps/glslang/StandAlone/StandAlone.cpp +++ /dev/null @@ -1,2118 +0,0 @@ -// -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2013-2016 LunarG, Inc. -// Copyright (C) 2016-2020 Google, Inc. -// Modifications Copyright(C) 2021 Advanced Micro Devices, 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: -// -// 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/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 - -#include "../glslang/OSDependent/osinclude.h" - -// Build-time generated includes -#include "glslang/build_info.h" - -#include "glslang/glsl_intrinsic_header.h" - -extern "C" { - GLSLANG_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; -bool SpvToolsDisassembler = false; -bool SpvToolsValidate = false; -bool NaNClamp = false; -bool stripDebugInfo = false; -bool beQuiet = false; -bool VulkanRulesRelaxed = false; -bool autoSampledTextures = 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; -#ifndef GLSLANG_WEB - else { - char* configString = ReadFileData(ConfigFile.c_str()); - glslang::DecodeResourceLimits(&Resources, configString); - FreeFileData(configString); - } -#endif -} - -int ReflectOptions = EShReflectionDefault; -int Options = 0; -const char* ExecutableName = nullptr; -const char* binaryFileName = nullptr; -const char* depencyFileName = nullptr; -const char* entryPointName = nullptr; -const char* sourceEntryPointName = nullptr; -const char* shaderStageName = nullptr; -const char* variableName = nullptr; -bool HlslEnable16BitTypes = false; -bool HlslDX9compatible = false; -bool HlslDxPositionW = false; -bool EnhancedMsgs = false; -bool DumpBuiltinSymbols = false; -std::vector IncludeDirectoryList; - -// Source environment -// (source 'Client' is currently the same as target 'Client') -int ClientInputSemanticsVersion = 100; - -// Target environment -glslang::EShClient Client = glslang::EShClientNone; // will stay EShClientNone if only validating -glslang::EShTargetClientVersion ClientVersion; // not valid until Client is set -glslang::EShTargetLanguage TargetLanguage = glslang::EShTargetNone; -glslang::EShTargetLanguageVersion TargetVersion; // not valid until TargetLanguage is set - -// GLSL version -int GlslVersion = 0; // GLSL version specified on CLI, overrides #version in shader source - -std::vector Processes; // what should be recorded by OpModuleProcessed, or equivalent - -// Per descriptor-set binding base data -typedef std::map TPerSetBaseBinding; - -std::vector> uniformLocationOverrides; -int uniformBase = 0; - -std::array, glslang::EResCount> baseBinding; -std::array, glslang::EResCount> baseBindingForSet; -std::array, EShLangCount> baseResourceSetBinding; - -std::vector> blockStorageOverrides; - -bool setGlobalUniformBlock = false; -std::string globalUniformName; -unsigned int globalUniformBinding; -unsigned int globalUniformSet; - -bool setGlobalBufferBlock = false; -std::string atomicCounterBlockName; -unsigned int atomicCounterBlockSet; - -// 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("define-macro "); - 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("undef-macro "); - 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 -}; - -// Track the user's #define and #undef from the command line. -TPreamble UserPreamble; -std::string PreambleString; - -// -// 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; - case EShLangRayGen: name = "rgen.spv"; break; - case EShLangIntersect: name = "rint.spv"; break; - case EShLangAnyHit: name = "rahit.spv"; break; - case EShLangClosestHit: name = "rchit.spv"; break; - case EShLangMiss: name = "rmiss.spv"; break; - case EShLangCallable: name = "rcall.spv"; break; - case EShLangMeshNV: name = "mesh.spv"; break; - case EShLangTaskNV: name = "task.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, const char* detail = nullptr) -{ - fprintf(stderr, "%s: Error: ", ExecutableName); - if (detail != nullptr) - fprintf(stderr, "%s: ", detail); - fprintf(stderr, "%s (use -h for usage)\n", 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 - do { - const int baseNum = atoi(argv[arg++]); - const int setNum = atoi(argv[arg++]); - perSetBase[setNum] = baseNum; - } while ((argc - arg) >= 2 && isdigit(argv[arg + 0][0]) && isdigit(argv[arg + 1][0])); - } 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].insert(perSetBase.begin(), perSetBase.end()); - 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>& storage) -{ - if (argc < 3) - usage(); - - glslang::TBlockStorageClass blockStorage = glslang::EbsNone; - - std::string strBacking(argv[2]); - if (strBacking == "uniform") - blockStorage = glslang::EbsUniform; - else if (strBacking == "buffer") - blockStorage = glslang::EbsStorageBuffer; - else if (strBacking == "push_constant") - blockStorage = glslang::EbsPushConstant; - else { - printf("%s: invalid block storage\n", strBacking.c_str()); - usage(); - } - - storage.push_back(std::make_pair(std::string(argv[1]), blockStorage)); - - argc -= 2; - argv += 2; -} - -inline bool isNonDigit(char c) { - // a non-digit character valid in a glsl identifier - return (c == '_') || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'); -} - -// whether string isa valid identifier to be used in glsl -bool isValidIdentifier(const char* str) { - std::string idn(str); - - if (idn.length() == 0) { - return false; - } - - if (idn.length() >= 3 && idn.substr(0, 3) == "gl_") { - // identifiers startin with "gl_" are reserved - return false; - } - - if (!isNonDigit(idn[0])) { - return false; - } - - for (unsigned int i = 1; i < idn.length(); ++i) { - if (!(isdigit(idn[i]) || isNonDigit(idn[i]))) { - return false; - } - } - - return true; -} - -// Process settings for either the global buffer block or global unfirom block -// of the form: -// --argname name set binding -void ProcessGlobalBlockSettings(int& argc, char**& argv, std::string* name, unsigned int* set, unsigned int* binding) -{ - if (argc < 4) - usage(); - - unsigned int curArg = 1; - - assert(name || set || binding); - - if (name) { - if (!isValidIdentifier(argv[curArg])) { - printf("%s: invalid identifier\n", argv[curArg]); - usage(); - } - *name = argv[curArg]; - - curArg++; - } - - if (set) { - errno = 0; - int setVal = ::strtol(argv[curArg], NULL, 10); - if (errno || setVal < 0) { - printf("%s: invalid set\n", argv[curArg]); - usage(); - } - *set = setVal; - - curArg++; - } - - if (binding) { - errno = 0; - int bindingVal = ::strtol(argv[curArg], NULL, 10); - if (errno || bindingVal < 0) { - printf("%s: invalid binding\n", argv[curArg]); - usage(); - } - *binding = bindingVal; - - curArg++; - } - - argc -= (curArg - 1); - argv += (curArg - 1); -} - -// -// Do all command-line argument parsing. This includes building up the work-items -// to be processed later, and saving all the command-line options. -// -// Does not return (it exits) if command-line is fatally flawed. -// -void ProcessArguments(std::vector>& 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 = []() { - if (Client == glslang::EShClientNone) - ClientVersion = glslang::EShTargetVulkan_1_0; - Client = glslang::EShClientVulkan; - Options |= EOptionSpv; - Options |= EOptionVulkanRules; - Options |= EOptionLinkProgram; - }; - - // minimum needed (without overriding something else) to target OpenGL SPIR-V - const auto setOpenGlSpv = []() { - if (Client == glslang::EShClientNone) - ClientVersion = glslang::EShTargetOpenGL_450; - Client = glslang::EShClientOpenGL; - Options |= EOptionSpv; - Options |= EOptionLinkProgram; - // undo a -H default to Vulkan - Options &= ~EOptionVulkanRules; - }; - - const auto getUniformOverride = [getStringOperand]() { - const char *arg = getStringOperand("-u:"); - const char *split = strchr(arg, ':'); - if (split == NULL) { - printf("%s: missing location\n", arg); - exit(EFailUsage); - } - errno = 0; - int location = ::strtol(split + 1, NULL, 10); - if (errno) { - printf("%s: invalid location\n", arg); - exit(EFailUsage); - } - return std::make_pair(std::string(arg, split - arg), location); - }; - - 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 == "uniform-base") { - if (argc <= 1) - Error("no provided", lowerword.c_str()); - uniformBase = ::strtol(argv[1], NULL, 10); - bumpArg(); - break; - } else if (lowerword == "client") { - if (argc > 1) { - if (strcmp(argv[1], "vulkan100") == 0) - setVulkanSpv(); - else if (strcmp(argv[1], "opengl100") == 0) - setOpenGlSpv(); - else - Error("expects vulkan100 or opengl100", lowerword.c_str()); - } else - Error("expects vulkan100 or opengl100", lowerword.c_str()); - bumpArg(); - } else if (lowerword == "define-macro" || - lowerword == "d") { - if (argc > 1) - UserPreamble.addDef(argv[1]); - else - Error("expects ", argv[0]); - bumpArg(); - } else if (lowerword == "dump-builtin-symbols") { - DumpBuiltinSymbols = true; - } else if (lowerword == "entry-point") { - entryPointName = argv[1]; - if (argc <= 1) - Error("no provided", lowerword.c_str()); - bumpArg(); - } else if (lowerword == "flatten-uniform-arrays" || // synonyms - lowerword == "flatten-uniform-array" || - lowerword == "fua") { - Options |= EOptionFlattenUniformArrays; - } else if (lowerword == "glsl-version") { - if (argc > 1) { - if (strcmp(argv[1], "100") == 0) { - GlslVersion = 100; - } else if (strcmp(argv[1], "110") == 0) { - GlslVersion = 110; - } else if (strcmp(argv[1], "120") == 0) { - GlslVersion = 120; - } else if (strcmp(argv[1], "130") == 0) { - GlslVersion = 130; - } else if (strcmp(argv[1], "140") == 0) { - GlslVersion = 140; - } else if (strcmp(argv[1], "150") == 0) { - GlslVersion = 150; - } else if (strcmp(argv[1], "300es") == 0) { - GlslVersion = 300; - } else if (strcmp(argv[1], "310es") == 0) { - GlslVersion = 310; - } else if (strcmp(argv[1], "320es") == 0) { - GlslVersion = 320; - } else if (strcmp(argv[1], "330") == 0) { - GlslVersion = 330; - } else if (strcmp(argv[1], "400") == 0) { - GlslVersion = 400; - } else if (strcmp(argv[1], "410") == 0) { - GlslVersion = 410; - } else if (strcmp(argv[1], "420") == 0) { - GlslVersion = 420; - } else if (strcmp(argv[1], "430") == 0) { - GlslVersion = 430; - } else if (strcmp(argv[1], "440") == 0) { - GlslVersion = 440; - } else if (strcmp(argv[1], "450") == 0) { - GlslVersion = 450; - } else if (strcmp(argv[1], "460") == 0) { - GlslVersion = 460; - } else - Error("--glsl-version expected one of: 100, 110, 120, 130, 140, 150,\n" - "300es, 310es, 320es, 330\n" - "400, 410, 420, 430, 440, 450, 460"); - } - bumpArg(); - } 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 == "hlsl-dx9-compatible") { - HlslDX9compatible = true; - } else if (lowerword == "hlsl-dx-position-w") { - HlslDxPositionW = true; - } else if (lowerword == "enhanced-msgs") { - EnhancedMsgs = true; - } else if (lowerword == "auto-sampled-textures") { - autoSampledTextures = true; - } else if (lowerword == "invert-y" || // synonyms - lowerword == "iy") { - Options |= EOptionInvertY; - } else if (lowerword == "keep-uncalled" || // synonyms - lowerword == "ku") { - Options |= EOptionKeepUncalled; - } else if (lowerword == "nan-clamp") { - NaNClamp = true; - } else if (lowerword == "no-storage-format" || // synonyms - lowerword == "nsf") { - Options |= EOptionNoStorageFormat; - } else if (lowerword == "relaxed-errors") { - Options |= EOptionRelaxedErrors; - } else if (lowerword == "reflect-strict-array-suffix") { - ReflectOptions |= EShReflectionStrictArraySuffix; - } else if (lowerword == "reflect-basic-array-suffix") { - ReflectOptions |= EShReflectionBasicArraySuffix; - } else if (lowerword == "reflect-intermediate-io") { - ReflectOptions |= EShReflectionIntermediateIO; - } else if (lowerword == "reflect-separate-buffers") { - ReflectOptions |= EShReflectionSeparateBuffers; - } else if (lowerword == "reflect-all-block-variables") { - ReflectOptions |= EShReflectionAllBlockVariables; - } else if (lowerword == "reflect-unwrap-io-blocks") { - ReflectOptions |= EShReflectionUnwrapIOBlocks; - } else if (lowerword == "reflect-all-io-variables") { - ReflectOptions |= EShReflectionAllIOVariables; - } else if (lowerword == "reflect-shared-std140-ubo") { - ReflectOptions |= EShReflectionSharedStd140UBO; - } else if (lowerword == "reflect-shared-std140-ssbo") { - ReflectOptions |= EShReflectionSharedStd140SSBO; - } else if (lowerword == "resource-set-bindings" || // synonyms - lowerword == "resource-set-binding" || - lowerword == "rsb") { - ProcessResourceSetBindingBase(argc, argv, baseResourceSetBinding); - } else if (lowerword == "set-block-storage" || - lowerword == "sbs") { - ProcessBlockStorage(argc, argv, blockStorageOverrides); - } else if (lowerword == "set-atomic-counter-block" || - lowerword == "sacb") { - ProcessGlobalBlockSettings(argc, argv, &atomicCounterBlockName, &atomicCounterBlockSet, nullptr); - setGlobalBufferBlock = true; - } else if (lowerword == "set-default-uniform-block" || - lowerword == "sdub") { - ProcessGlobalBlockSettings(argc, argv, &globalUniformName, &globalUniformSet, &globalUniformBinding); - setGlobalUniformBlock = true; - } 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", lowerword.c_str()); - sourceEntryPointName = argv[1]; - bumpArg(); - break; - } else if (lowerword == "spirv-dis") { - SpvToolsDisassembler = true; - } else if (lowerword == "spirv-val") { - SpvToolsValidate = true; - } 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(); - ClientVersion = glslang::EShTargetVulkan_1_0; - } else if (strcmp(argv[1], "vulkan1.1") == 0) { - setVulkanSpv(); - ClientVersion = glslang::EShTargetVulkan_1_1; - } else if (strcmp(argv[1], "vulkan1.2") == 0) { - setVulkanSpv(); - ClientVersion = glslang::EShTargetVulkan_1_2; - } else if (strcmp(argv[1], "vulkan1.3") == 0) { - setVulkanSpv(); - ClientVersion = glslang::EShTargetVulkan_1_3; - } else if (strcmp(argv[1], "opengl") == 0) { - setOpenGlSpv(); - ClientVersion = glslang::EShTargetOpenGL_450; - } else if (strcmp(argv[1], "spirv1.0") == 0) { - TargetLanguage = glslang::EShTargetSpv; - TargetVersion = glslang::EShTargetSpv_1_0; - } else if (strcmp(argv[1], "spirv1.1") == 0) { - TargetLanguage = glslang::EShTargetSpv; - TargetVersion = glslang::EShTargetSpv_1_1; - } else if (strcmp(argv[1], "spirv1.2") == 0) { - TargetLanguage = glslang::EShTargetSpv; - TargetVersion = glslang::EShTargetSpv_1_2; - } else if (strcmp(argv[1], "spirv1.3") == 0) { - TargetLanguage = glslang::EShTargetSpv; - TargetVersion = glslang::EShTargetSpv_1_3; - } else if (strcmp(argv[1], "spirv1.4") == 0) { - TargetLanguage = glslang::EShTargetSpv; - TargetVersion = glslang::EShTargetSpv_1_4; - } else if (strcmp(argv[1], "spirv1.5") == 0) { - TargetLanguage = glslang::EShTargetSpv; - TargetVersion = glslang::EShTargetSpv_1_5; - } else if (strcmp(argv[1], "spirv1.6") == 0) { - TargetLanguage = glslang::EShTargetSpv; - TargetVersion = glslang::EShTargetSpv_1_6; - } else - Error("--target-env expected one of: vulkan1.0, vulkan1.1, vulkan1.2,\n" - "vulkan1.3, opengl, spirv1.0, spirv1.1, spirv1.2, spirv1.3,\n" - "spirv1.4, spirv1.5 or spirv1.6"); - } - bumpArg(); - } else if (lowerword == "undef-macro" || - lowerword == "u") { - if (argc > 1) - UserPreamble.addUndef(argv[1]); - else - Error("expects ", argv[0]); - bumpArg(); - } else if (lowerword == "variable-name" || // synonyms - lowerword == "vn") { - Options |= EOptionOutputHexadecimal; - if (argc <= 1) - Error("no provided", lowerword.c_str()); - variableName = argv[1]; - bumpArg(); - break; - } else if (lowerword == "quiet") { - beQuiet = true; - } else if (lowerword == "depfile") { - if (argc <= 1) - Error("no provided", lowerword.c_str()); - depencyFileName = argv[1]; - bumpArg(); - } else if (lowerword == "version") { - Options |= EOptionDumpVersions; - } else if (lowerword == "help") { - usage(); - break; - } else { - Error("unrecognized command-line option", argv[0]); - } - } - break; - case 'C': - Options |= EOptionCascadingErrors; - break; - case 'D': - if (argv[0][2] == 0) - Options |= EOptionReadHlsl; - else - UserPreamble.addDef(getStringOperand("-D")); - break; - case 'u': - uniformLocationOverrides.push_back(getUniformOverride()); - break; - case 'E': - Options |= EOptionOutputPreprocessed; - break; - case 'G': - // OpenGL client - setOpenGlSpv(); - if (argv[0][2] != 0) - ClientInputSemanticsVersion = getAttachedNumber("-G client input semantics"); - if (ClientInputSemanticsVersion != 100) - Error("unknown client version for -G, should be 100"); - 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 'R': - VulkanRulesRelaxed = true; - break; - case 'S': - if (argc <= 1) - Error("no specified for -S"); - shaderStageName = argv[1]; - bumpArg(); - break; - case 'U': - UserPreamble.addUndef(getStringOperand("-U")); - break; - case 'V': - setVulkanSpv(); - if (argv[0][2] != 0) - ClientInputSemanticsVersion = getAttachedNumber("-V client input semantics"); - if (ClientInputSemanticsVersion != 100) - Error("unknown client version for -V, should be 100"); - 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': - 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': - // Override previous -g or -g0 argument - stripDebugInfo = false; - Options &= ~EOptionDebug; - if (argv[0][2] == '0') - stripDebugInfo = true; - else - 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: - Error("unrecognized command-line option", argv[0]); - 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) - // Or things that require linking - if (Options & EOptionOutputPreprocessed) { - if (Options & EOptionLinkProgram) - Error("can't use -E when linking is selected"); - if (Options & EOptionDumpReflection) - Error("reflection requires linking, which can't be used when -E when is selected"); - } - - // reflection requires linking - if ((Options & EOptionDumpReflection) && !(Options & EOptionLinkProgram)) - Error("reflection requires -l for linking"); - - // -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."); - - if ((Options & EOptionReadHlsl) && (Client == glslang::EShClientOpenGL)) { - Error("Using HLSL input under OpenGL semantics is not currently supported."); - } - - // rationalize client and target language - if (TargetLanguage == glslang::EShTargetNone) { - switch (ClientVersion) { - case glslang::EShTargetVulkan_1_0: - TargetLanguage = glslang::EShTargetSpv; - TargetVersion = glslang::EShTargetSpv_1_0; - break; - case glslang::EShTargetVulkan_1_1: - TargetLanguage = glslang::EShTargetSpv; - TargetVersion = glslang::EShTargetSpv_1_3; - break; - case glslang::EShTargetVulkan_1_2: - TargetLanguage = glslang::EShTargetSpv; - TargetVersion = glslang::EShTargetSpv_1_5; - break; - case glslang::EShTargetVulkan_1_3: - TargetLanguage = glslang::EShTargetSpv; - TargetVersion = glslang::EShTargetSpv_1_6; - break; - case glslang::EShTargetOpenGL_450: - TargetLanguage = glslang::EShTargetSpv; - TargetVersion = glslang::EShTargetSpv_1_0; - break; - default: - break; - } - } - if (TargetLanguage != glslang::EShTargetNone && Client == glslang::EShClientNone) - Error("To generate SPIR-V, also specify client semantics. See -G and -V."); -} - -// -// 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); - if (HlslDX9compatible) - messages = (EShMessages)(messages | EShMsgHlslDX9Compatible); - if (DumpBuiltinSymbols) - messages = (EShMessages)(messages | EShMsgBuiltinSymbolTable); - if (EnhancedMsgs) - messages = (EShMessages)(messages | EShMsgEnhanced); -} - -// -// 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) { - if (worklist.remove(workItem)) { - ShHandle compiler = ShConstructCompiler(FindLanguage("stdin"), Options); - if (compiler == nullptr) - 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; - } -}; - -// Writes a string into a depfile, escaping some special characters following the Makefile rules. -static void writeEscapedDepString(std::ofstream& file, const std::string& str) -{ - for (char c : str) { - switch (c) { - case ' ': - case ':': - case '#': - case '[': - case ']': - case '\\': - file << '\\'; - break; - case '$': - file << '$'; - break; - } - file << c; - } -} - -// Writes a depfile similar to gcc -MMD foo.c -bool writeDepFile(std::string depfile, std::vector& binaryFiles, const std::vector& sources) -{ - std::ofstream file(depfile); - if (file.fail()) - return false; - - for (auto binaryFile = binaryFiles.begin(); binaryFile != binaryFiles.end(); binaryFile++) { - writeEscapedDepString(file, *binaryFile); - file << ":"; - for (auto sourceFile = sources.begin(); sourceFile != sources.end(); sourceFile++) { - file << " "; - writeEscapedDepString(file, *sourceFile); - } - file << std::endl; - } - return true; -} - -// -// 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); - - DirStackFileIncluder includer; - std::for_each(IncludeDirectoryList.rbegin(), IncludeDirectoryList.rend(), [&includer](const std::string& dir) { - includer.pushExternalLocalDirectory(dir); }); - - std::vector sources; - - // - // Per-shader processing... - // - - glslang::TProgram& program = *new glslang::TProgram; - for (auto it = compUnits.cbegin(); it != compUnits.cend(); ++it) { - const auto &compUnit = *it; - for (int i = 0; i < compUnit.count; i++) { - sources.push_back(compUnit.fileNameList[i]); - } - glslang::TShader* shader = new glslang::TShader(compUnit.stage); - shader->setStringsWithLengthsAndNames(compUnit.text, NULL, compUnit.fileNameList, compUnit.count); - if (entryPointName) - 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); - } - - shader->setOverrideVersion(GlslVersion); - - std::string intrinsicString = getIntrinsic(compUnit.text, compUnit.count); - - PreambleString = ""; - if (UserPreamble.isSet()) - PreambleString.append(UserPreamble.get()); - - if (!intrinsicString.empty()) - PreambleString.append(intrinsicString); - - shader->setPreamble(PreambleString.c_str()); - shader->addProcesses(Processes); - -#ifndef GLSLANG_WEB - // 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->setNoStorageFormat((Options & EOptionNoStorageFormat) != 0); - shader->setResourceSetBinding(baseResourceSetBinding[compUnit.stage]); - - if (autoSampledTextures) - shader->setTextureSamplerTransformMode(EShTexSampTransUpgradeTextureRemoveSampler); - - if (Options & EOptionAutoMapBindings) - shader->setAutoMapBindings(true); - - if (Options & EOptionAutoMapLocations) - shader->setAutoMapLocations(true); - - for (auto& uniOverride : uniformLocationOverrides) { - shader->addUniformLocationOverride(uniOverride.first.c_str(), - uniOverride.second); - } - - shader->setUniformLocationBase(uniformBase); -#endif - - if (VulkanRulesRelaxed) { - for (auto& storageOverride : blockStorageOverrides) { - shader->addBlockStorageOverride(storageOverride.first.c_str(), - storageOverride.second); - } - - if (setGlobalBufferBlock) { - shader->setAtomicCounterBlockName(atomicCounterBlockName.c_str()); - shader->setAtomicCounterBlockSet(atomicCounterBlockSet); - } - - if (setGlobalUniformBlock) { - shader->setGlobalUniformBlockName(globalUniformName.c_str()); - shader->setGlobalUniformSet(globalUniformSet); - shader->setGlobalUniformBinding(globalUniformBinding); - } - } - - shader->setNanMinMaxClamp(NaNClamp); - -#ifdef ENABLE_HLSL - shader->setFlattenUniformArrays((Options & EOptionFlattenUniformArrays) != 0); - if (Options & EOptionHlslIoMapping) - shader->setHlslIoMapping(true); -#endif - - if (Options & EOptionInvertY) - shader->setInvertY(true); - - if (HlslDxPositionW) - shader->setDxPositionW(true); - - if (EnhancedMsgs) - shader->setEnhancedMsgs(); - - // Set up the environment, some subsettings take precedence over earlier - // ways of setting things. - if (Options & EOptionSpv) { - shader->setEnvInput((Options & EOptionReadHlsl) ? glslang::EShSourceHlsl - : glslang::EShSourceGlsl, - compUnit.stage, Client, ClientInputSemanticsVersion); - shader->setEnvClient(Client, ClientVersion); - shader->setEnvTarget(TargetLanguage, TargetVersion); -#ifdef ENABLE_HLSL - if (targetHlslFunctionality1) - shader->setEnvTargetHlslFunctionality1(); -#endif - if (VulkanRulesRelaxed) - shader->setEnvInputVulkanRulesRelaxed(); - } - - shaders.push_back(shader); - - const int defaultVersion = Options & EOptionDefaultDesktop ? 110 : 100; - -#ifndef GLSLANG_WEB - 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; - } -#endif - - if (! shader->parse(&Resources, defaultVersion, false, messages, includer)) - CompileFailed = true; - - program.addShader(shader); - - if (! (Options & EOptionSuppressInfolog) && - ! (Options & EOptionMemoryLeakMode)) { - if (!beQuiet) - PutsIfNonEmpty(compUnit.fileName[0].c_str()); - PutsIfNonEmpty(shader->getInfoLog()); - PutsIfNonEmpty(shader->getInfoDebugLog()); - } - } - - // - // Program-level processing... - // - - // Link - if (! (Options & EOptionOutputPreprocessed) && ! program.link(messages)) - LinkFailed = true; - -#ifndef GLSLANG_WEB - // Map IO - if (Options & EOptionSpv) { - if (!program.mapIO()) - LinkFailed = true; - } -#endif - - // Report - if (! (Options & EOptionSuppressInfolog) && - ! (Options & EOptionMemoryLeakMode)) { - PutsIfNonEmpty(program.getInfoLog()); - PutsIfNonEmpty(program.getInfoDebugLog()); - } - -#ifndef GLSLANG_WEB - // Reflect - if (Options & EOptionDumpReflection) { - program.buildReflection(ReflectOptions); - program.dumpReflection(); - } -#endif - - std::vector outputFiles; - - // 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; - spv::SpvBuildLogger logger; - glslang::SpvOptions spvOptions; - if (Options & EOptionDebug) - spvOptions.generateDebugInfo = true; - else if (stripDebugInfo) - spvOptions.stripDebugInfo = true; - spvOptions.disableOptimizer = (Options & EOptionOptimizeDisable) != 0; - spvOptions.optimizeSize = (Options & EOptionOptimizeSize) != 0; - spvOptions.disassemble = SpvToolsDisassembler; - spvOptions.validate = SpvToolsValidate; - 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)); - } - - outputFiles.push_back(GetBinaryName((EShLanguage)stage)); -#ifndef GLSLANG_WEB - if (!SpvToolsDisassembler && (Options & EOptionHumanReadableSpv)) - spv::Disassemble(std::cout, spirv); -#endif - } - } - } - } - } - - if (depencyFileName && !(CompileFailed || LinkFailed)) { - std::set includedFiles = includer.getIncludedFiles(); - sources.insert(sources.end(), includedFiles.begin(), includedFiles.end()); - - writeDepFile(depencyFileName, outputFiles, sources); - } - - // 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()); - }); - -#ifndef GLSLANG_WEB - if (Options & EOptionDumpConfig) { - printf("%s", glslang::GetDefaultTBuiltInResourceString().c_str()); - if (workList.empty()) - return ESuccess; - } -#endif - - if (Options & EOptionDumpBareVersion) { - printf("%d:%d.%d.%d%s\n", glslang::GetSpirvGeneratorVersion(), GLSLANG_VERSION_MAJOR, GLSLANG_VERSION_MINOR, - GLSLANG_VERSION_PATCH, GLSLANG_VERSION_FLAVOR); - if (workList.empty()) - return ESuccess; - } else if (Options & EOptionDumpVersions) { - printf("Glslang Version: %d:%d.%d.%d%s\n", glslang::GetSpirvGeneratorVersion(), GLSLANG_VERSION_MAJOR, - GLSLANG_VERSION_MINOR, GLSLANG_VERSION_PATCH, GLSLANG_VERSION_FLAVOR); - 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(); - - if ((Options & EOptionReadHlsl) && !((Options & EOptionOutputPreprocessed) || (Options & EOptionSpv))) - Error("HLSL requires SPIR-V code generation (or preprocessing only)"); - - // - // 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 | 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 -// .rgen = ray generation -// .rint = ray intersection -// .rahit = ray any hit -// .rchit = ray closest hit -// .rmiss = ray miss -// .rcall = ray callable -// .mesh = mesh -// .task = task -// 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; - else if (stageName == "rgen") - return EShLangRayGen; - else if (stageName == "rint") - return EShLangIntersect; - else if (stageName == "rahit") - return EShLangAnyHit; - else if (stageName == "rchit") - return EShLangClosestHit; - else if (stageName == "rmiss") - return EShLangMiss; - else if (stageName == "rcall") - return EShLangCallable; - else if (stageName == "mesh") - return EShLangMeshNV; - else if (stageName == "task") - return EShLangTaskNV; - - 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" - " .mesh for a mesh shader\n" - " .task for a task shader\n" - " .rgen for a ray generation shader\n" - " .rint for a ray intersection shader\n" - " .rahit for a ray any hit shader\n" - " .rchit for a ray closest hit shader\n" - " .rmiss for a ray miss shader\n" - " .rcall for a ray callable 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 (this is the default when any suffix is .hlsl)\n" - " -D | --define-macro | --D \n" - " 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" - " currently only supports GLSL\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" - " -R use relaxed verification rules for generating Vulkan SPIR-V,\n" - " allowing the use of default uniforms, atomic_uints, and\n" - " gl_VertexID and gl_InstanceID keywords.\n" - " -S uses specified stage rather than parsing the file extension\n" - " choices for are vert, tesc, tese, geom, frag, or comp\n" - " -U | --undef-macro | --U \n" - " 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 | --entry-point \n" - " specify as the entry-point function name\n" - " -f{hlsl_functionality1}\n" - " 'hlsl_functionality1' enables use of the\n" - " SPV_GOOGLE_hlsl_functionality1 extension\n" - " -g generate debug information\n" - " -g0 strip 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; requires -l for linking\n" - " -r | --relaxed-errors" - " relaxed GLSL semantic error-checking mode\n" - " -s silence syntax and semantic error reporting\n" - " -t multi-threaded mode\n" - " -v | --version\n" - " print version strings\n" - " -w | --suppress-warnings\n" - " suppress GLSL warnings, except as required by \"#extension : warn\"\n" - " -x save binary output as text-based 32-bit hexadecimal numbers\n" - " -u: specify a uniform location override for --aml\n" - " --uniform-base set a base to use for generated uniform locations\n" - " --auto-map-bindings | --amb automatically bind uniform variables\n" - " without explicit bindings\n" - " --auto-map-locations | --aml automatically locate input/output lacking\n" - " 'location' (fragile, not cross stage)\n" - " --auto-sampled-textures Removes sampler variables and converts\n" - " existing textures to sampled textures\n" - " --client {vulkan|opengl} see -V and -G\n" - " --depfile writes depfile for build systems\n" - " --dump-builtin-symbols prints builtin symbol table prior each compile\n" - " -dumpfullversion | -dumpversion print bare major.minor.patchlevel\n" - " --flatten-uniform-arrays | --fua flatten uniform texture/sampler arrays to\n" - " scalars\n" - " --glsl-version {100 | 110 | 120 | 130 | 140 | 150 |\n" - " 300es | 310es | 320es | 330\n" - " 400 | 410 | 420 | 430 | 440 | 450 | 460}\n" - " set GLSL version, overrides #version\n" - " in shader sourcen\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 16-bit types in SPIR-V for HLSL\n" - " --hlsl-dx9-compatible interprets sampler declarations as a\n" - " texture/sampler combo like DirectX9 would,\n" - " and recognizes DirectX9-specific semantics\n" - " --hlsl-dx-position-w W component of SV_Position in HLSL fragment\n" - " shaders compatible with DirectX\n" - " --invert-y | --iy invert position.Y output in vertex shader\n" - " --enhanced-msgs print more readable error messages (GLSL only)\n" - " --keep-uncalled | --ku don't eliminate uncalled functions\n" - " --nan-clamp favor non-NaN operand in min, max, and clamp\n" - " --no-storage-format | --nsf use Unknown image format\n" - " --quiet do not print anything to stdout, unless\n" - " requested by another option\n" - " --reflect-strict-array-suffix use strict array suffix rules when\n" - " reflecting\n" - " --reflect-basic-array-suffix arrays of basic types will have trailing [0]\n" - " --reflect-intermediate-io reflection includes inputs/outputs of linked\n" - " shaders rather than just vertex/fragment\n" - " --reflect-separate-buffers reflect buffer variables and blocks\n" - " separately to uniforms\n" - " --reflect-all-block-variables reflect all variables in blocks, whether\n" - " inactive or active\n" - " --reflect-unwrap-io-blocks unwrap input/output blocks the same as\n" - " uniform blocks\n" - " --resource-set-binding [stage] name set binding\n" - " set descriptor set and binding for\n" - " individual resources\n" - " --resource-set-binding [stage] set\n" - " set descriptor set for all resources\n" - " --rsb synonym for --resource-set-binding\n" - " --set-block-backing name {uniform|buffer|push_constant}\n" - " changes the backing type of a uniform, buffer,\n" - " or push_constant block declared in\n" - " in the program, when using -R option.\n" - " This can be used to change the backing\n" - " for existing blocks as well as implicit ones\n" - " such as 'gl_DefaultUniformBlock'.\n" - " --sbs synonym for set-block-storage\n" - " --set-atomic-counter-block name set\n" - " set name, and descriptor set for\n" - " atomic counter blocks, with -R opt\n" - " --sacb synonym for set-atomic-counter-block\n" - " --set-default-uniform-block name set binding\n" - " set name, descriptor set, and binding for\n" - " global default-uniform-block, with -R opt\n" - " --sdub synonym for set-default-uniform-block\n" - " --shift-image-binding [stage] num\n" - " base binding number for images (uav)\n" - " --shift-image-binding [stage] [num set]...\n" - " per-descriptor-set shift values\n" - " --sib synonym for --shift-image-binding\n" - " --shift-sampler-binding [stage] num\n" - " base binding number for samplers\n" - " --shift-sampler-binding [stage] [num set]...\n" - " per-descriptor-set shift values\n" - " --ssb synonym for --shift-sampler-binding\n" - " --shift-ssbo-binding [stage] num base binding number for SSBOs\n" - " --shift-ssbo-binding [stage] [num set]...\n" - " per-descriptor-set shift values\n" - " --sbb synonym for --shift-ssbo-binding\n" - " --shift-texture-binding [stage] num\n" - " base binding number for textures\n" - " --shift-texture-binding [stage] [num set]...\n" - " per-descriptor-set shift values\n" - " --stb synonym for --shift-texture-binding\n" - " --shift-uav-binding [stage] num base binding number for UAVs\n" - " --shift-uav-binding [stage] [num set]...\n" - " per-descriptor-set shift values\n" - " --suavb synonym for --shift-uav-binding\n" - " --shift-UBO-binding [stage] num base binding number for UBOs\n" - " --shift-UBO-binding [stage] [num set]...\n" - " per-descriptor-set shift values\n" - " --sub synonym for --shift-UBO-binding\n" - " --shift-cbuffer-binding | --scb synonyms for --shift-UBO-binding\n" - " --spirv-dis output standard-form disassembly; works only\n" - " when a SPIR-V generation option is also used\n" - " --spirv-val execute the SPIRV-Tools validator\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" - " requires providing the shader stage using -S\n" - " --target-env {vulkan1.0 | vulkan1.1 | vulkan1.2 | vulkan1.3 | opengl |\n" - " spirv1.0 | spirv1.1 | spirv1.2 | spirv1.3 | spirv1.4 |\n" - " spirv1.5 | spirv1.6}\n" - " Set the execution environment that the\n" - " generated code will be executed in.\n" - " Defaults to:\n" - " * vulkan1.0 under --client vulkan\n" - " * opengl under --client opengl\n" - " * spirv1.0 under --target-env vulkan1.0\n" - " * spirv1.3 under --target-env vulkan1.1\n" - " * spirv1.5 under --target-env vulkan1.2\n" - " * spirv1.6 under --target-env vulkan1.3\n" - " Multiple --target-env can be specified.\n" - " --variable-name \n" - " --vn creates a C header file that contains a\n" - " uint32_t array named \n" - " initialized with the shader binary code\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/StandAlone/Worklist.h b/deps/glslang/StandAlone/Worklist.h deleted file mode 100644 index 91b6f516..00000000 --- a/deps/glslang/StandAlone/Worklist.h +++ /dev/null @@ -1,95 +0,0 @@ -// -// Copyright (C) 2013 LunarG, Inc. -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// Neither the name of 3Dlabs Inc. Ltd. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -// -#ifndef WORKLIST_H_INCLUDED -#define WORKLIST_H_INCLUDED - -#include "../glslang/OSDependent/osinclude.h" -#include -#include -#include - -namespace glslang { - - class TWorkItem { - public: - TWorkItem() { } - explicit TWorkItem(const std::string& s) : - name(s) { } - std::string name; - std::string results; - std::string resultsIndex; - }; - - class TWorklist { - public: - TWorklist() { } - virtual ~TWorklist() { } - - void add(TWorkItem* item) - { - std::lock_guard guard(mutex); - worklist.push_back(item); - } - - bool remove(TWorkItem*& item) - { - std::lock_guard guard(mutex); - - if (worklist.empty()) - return false; - item = worklist.front(); - worklist.pop_front(); - - return true; - } - - int size() - { - return (int)worklist.size(); - } - - bool empty() - { - return worklist.empty(); - } - - protected: - std::mutex mutex; - std::list worklist; - }; - -} // end namespace glslang - -#endif // WORKLIST_H_INCLUDED diff --git a/deps/glslang/StandAlone/resource_limits_c.cpp b/deps/glslang/StandAlone/resource_limits_c.cpp deleted file mode 100644 index a1f681c7..00000000 --- a/deps/glslang/StandAlone/resource_limits_c.cpp +++ /dev/null @@ -1,65 +0,0 @@ -/** -BSD 2-Clause License - -Copyright (c) 2020, Travis Fort -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -2. 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. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (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 "resource_limits_c.h" -#include "ResourceLimits.h" -#include -#include -#include - -const glslang_resource_t* glslang_default_resource(void) -{ - return reinterpret_cast(&glslang::DefaultTBuiltInResource); -} - -#if defined(__clang__) || defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" -#elif defined(_MSC_VER) -#pragma warning(push) -#pragma warning(disable : 4996) -#endif - -const char* glslang_default_resource_string() -{ - std::string cpp_str = glslang::GetDefaultTBuiltInResourceString(); - char* c_str = (char*)malloc(cpp_str.length() + 1); - strcpy(c_str, cpp_str.c_str()); - return c_str; -} - -#if defined(__clang__) || defined(__GNUC__) -#pragma GCC diagnostic pop -#elif defined(_MSC_VER) -#pragma warning(pop) -#endif - -void glslang_decode_resource_limits(glslang_resource_t* resources, char* config) -{ - glslang::DecodeResourceLimits(reinterpret_cast(resources), config); -} diff --git a/deps/glslang/StandAlone/resource_limits_c.h b/deps/glslang/StandAlone/resource_limits_c.h deleted file mode 100644 index 108fd5e2..00000000 --- a/deps/glslang/StandAlone/resource_limits_c.h +++ /dev/null @@ -1,54 +0,0 @@ -/** -BSD 2-Clause License - -Copyright (c) 2020, Travis Fort -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -2. 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. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -**/ - -#ifndef _STAND_ALONE_RESOURCE_LIMITS_C_INCLUDED_ -#define _STAND_ALONE_RESOURCE_LIMITS_C_INCLUDED_ - -#include "../glslang/Include/glslang_c_interface.h" - -#ifdef __cplusplus -extern "C" { -#endif - -// These are the default resources for TBuiltInResources, used for both -// - parsing this string for the case where the user didn't supply one, -// - dumping out a template for user construction of a config file. -const glslang_resource_t* glslang_default_resource(void); - -// Returns the DefaultTBuiltInResource as a human-readable string. -// NOTE: User is responsible for freeing this string. -const char* glslang_default_resource_string(); - -// Decodes the resource limits from |config| to |resources|. -void glslang_decode_resource_limits(glslang_resource_t* resources, char* config); - -#ifdef __cplusplus -} -#endif - -#endif // _STAND_ALONE_RESOURCE_LIMITS_C_INCLUDED_ diff --git a/deps/glslang/StandAlone/spirv-remap.cpp b/deps/glslang/StandAlone/spirv-remap.cpp deleted file mode 100644 index 48878c3a..00000000 --- a/deps/glslang/StandAlone/spirv-remap.cpp +++ /dev/null @@ -1,341 +0,0 @@ -// -// Copyright (C) 2015 LunarG, Inc. -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// Neither the name of 3Dlabs Inc. Ltd. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -// - -#include -#include -#include -#include - -#include "../SPIRV/SPVRemapper.h" - -namespace { - - typedef unsigned int SpvWord; - - // Poor man's basename: given a complete path, return file portion. - // E.g: - // Linux: /foo/bar/test -> test - // Win: c:\foo\bar\test -> test - // It's not very efficient, but that doesn't matter for our minimal-duty use. - // Using boost::filesystem would be better in many ways, but want to avoid that dependency. - - // OS dependent path separator (avoiding boost::filesystem dependency) -#if defined(_WIN32) - char path_sep_char() { return '\\'; } -#else - char path_sep_char() { return '/'; } -#endif - - std::string basename(const std::string filename) - { - const size_t sepLoc = filename.find_last_of(path_sep_char()); - - return (sepLoc == filename.npos) ? filename : filename.substr(sepLoc+1); - } - - void errHandler(const std::string& str) { - std::cout << str << std::endl; - exit(5); - } - - void logHandler(const std::string& str) { - std::cout << str << std::endl; - } - - // Read word stream from disk - void read(std::vector& spv, const std::string& inFilename, int verbosity) - { - std::ifstream fp; - - if (verbosity > 0) - logHandler(std::string(" reading: ") + inFilename); - - spv.clear(); - fp.open(inFilename, std::fstream::in | std::fstream::binary); - - if (fp.fail()) - errHandler("error opening file for read: "); - - // Reserve space (for efficiency, not for correctness) - fp.seekg(0, fp.end); - spv.reserve(size_t(fp.tellg()) / sizeof(SpvWord)); - fp.seekg(0, fp.beg); - - while (!fp.eof()) { - SpvWord inWord; - fp.read((char *)&inWord, sizeof(inWord)); - - if (!fp.eof()) { - spv.push_back(inWord); - if (fp.fail()) - errHandler(std::string("error reading file: ") + inFilename); - } - } - } - - void write(std::vector& spv, const std::string& outFile, int verbosity) - { - if (outFile.empty()) - errHandler("missing output filename."); - - std::ofstream fp; - - if (verbosity > 0) - logHandler(std::string(" writing: ") + outFile); - - fp.open(outFile, std::fstream::out | std::fstream::binary); - - if (fp.fail()) - errHandler(std::string("error opening file for write: ") + outFile); - - for (auto it = spv.cbegin(); it != spv.cend(); ++it) { - SpvWord word = *it; - fp.write((char *)&word, sizeof(word)); - if (fp.fail()) - errHandler(std::string("error writing file: ") + outFile); - } - - // file is closed by destructor - } - - // Print helpful usage message to stdout, and exit - void usage(const char* const name, const char* const msg = 0) - { - if (msg) - std::cout << msg << std::endl << std::endl; - - std::cout << "Usage: " << std::endl; - - std::cout << " " << basename(name) - << " [-v[v[...]] | --verbose [int]]" - << " [--map (all|types|names|funcs)]" - << " [--dce (all|types|funcs)]" - << " [--opt (all|loadstore)]" - << " [--strip-all | --strip all | -s]" - << " [--do-everything]" - << " --input | -i file1 [file2...] --output|-o DESTDIR" - << std::endl; - - std::cout << " " << basename(name) << " [--version | -V]" << std::endl; - std::cout << " " << basename(name) << " [--help | -?]" << std::endl; - - exit(5); - } - - // grind through each SPIR in turn - void execute(const std::vector& inputFile, const std::string& outputDir, - int opts, int verbosity) - { - for (auto it = inputFile.cbegin(); it != inputFile.cend(); ++it) { - const std::string &filename = *it; - std::vector spv; - read(spv, filename, verbosity); - spv::spirvbin_t(verbosity).remap(spv, opts); - - const std::string outfile = outputDir + path_sep_char() + basename(filename); - - write(spv, outfile, verbosity); - } - - if (verbosity > 0) - std::cout << "Done: " << inputFile.size() << " file(s) processed" << std::endl; - } - - // Parse command line options - void parseCmdLine(int argc, char** argv, std::vector& inputFile, - std::string& outputDir, - int& options, - int& verbosity) - { - if (argc < 2) - usage(argv[0]); - - verbosity = 0; - options = spv::spirvbin_t::NONE; - - // Parse command line. - // boost::program_options would be quite a bit nicer, but we don't want to - // introduce a dependency on boost. - for (int a=1; a= argc) - usage(argv[0], "--output requires an argument"); - if (!outputDir.empty()) - usage(argv[0], "--output can be provided only once"); - - outputDir = argv[a++]; - - // Remove trailing directory separator characters - while (!outputDir.empty() && outputDir.back() == path_sep_char()) - outputDir.pop_back(); - - } - else if (arg == "-vv") { verbosity = 2; ++a; } // verbosity shortcuts - else if (arg == "-vvv") { verbosity = 3; ++a; } // ... - else if (arg == "-vvvv") { verbosity = 4; ++a; } // ... - else if (arg == "-vvvvv") { verbosity = 5; ++a; } // ... - - else if (arg == "--verbose" || arg == "-v") { - ++a; - verbosity = 1; - - if (a < argc) { - char* end_ptr = 0; - int verb = ::strtol(argv[a], &end_ptr, 10); - // If we have not read to the end of the string or - // the string contained no elements, then we do not want to - // store the value. - if (*end_ptr == '\0' && end_ptr != argv[a]) { - verbosity = verb; - ++a; - } - } - } - else if (arg == "--version" || arg == "-V") { - std::cout << basename(argv[0]) << " version 0.97" << std::endl; - exit(0); - } else if (arg == "--input" || arg == "-i") { - // Collect input files - for (++a; a < argc && argv[a][0] != '-'; ++a) - inputFile.push_back(argv[a]); - } else if (arg == "--do-everything") { - ++a; - options = options | spv::spirvbin_t::DO_EVERYTHING; - } else if (arg == "--strip-all" || arg == "-s") { - ++a; - options = options | spv::spirvbin_t::STRIP; - } else if (arg == "--strip") { - ++a; - if (strncmp(argv[a], "all", 3) == 0) { - options = options | spv::spirvbin_t::STRIP; - ++a; - } - } else if (arg == "--dce") { - // Parse comma (or colon, etc) separated list of things to dce - ++a; - for (const char* c = argv[a]; *c; ++c) { - if (strncmp(c, "all", 3) == 0) { - options = (options | spv::spirvbin_t::DCE_ALL); - c += 3; - } else if (strncmp(c, "*", 1) == 0) { - options = (options | spv::spirvbin_t::DCE_ALL); - c += 1; - } else if (strncmp(c, "funcs", 5) == 0) { - options = (options | spv::spirvbin_t::DCE_FUNCS); - c += 5; - } else if (strncmp(c, "types", 5) == 0) { - options = (options | spv::spirvbin_t::DCE_TYPES); - c += 5; - } - } - ++a; - } else if (arg == "--map") { - // Parse comma (or colon, etc) separated list of things to map - ++a; - for (const char* c = argv[a]; *c; ++c) { - if (strncmp(c, "all", 3) == 0) { - options = (options | spv::spirvbin_t::MAP_ALL); - c += 3; - } else if (strncmp(c, "*", 1) == 0) { - options = (options | spv::spirvbin_t::MAP_ALL); - c += 1; - } else if (strncmp(c, "types", 5) == 0) { - options = (options | spv::spirvbin_t::MAP_TYPES); - c += 5; - } else if (strncmp(c, "names", 5) == 0) { - options = (options | spv::spirvbin_t::MAP_NAMES); - c += 5; - } else if (strncmp(c, "funcs", 5) == 0) { - options = (options | spv::spirvbin_t::MAP_FUNCS); - c += 5; - } - } - ++a; - } else if (arg == "--opt") { - ++a; - for (const char* c = argv[a]; *c; ++c) { - if (strncmp(c, "all", 3) == 0) { - options = (options | spv::spirvbin_t::OPT_ALL); - c += 3; - } else if (strncmp(c, "*", 1) == 0) { - options = (options | spv::spirvbin_t::OPT_ALL); - c += 1; - } else if (strncmp(c, "loadstore", 9) == 0) { - options = (options | spv::spirvbin_t::OPT_LOADSTORE); - c += 9; - } - } - ++a; - } else if (arg == "--help" || arg == "-?") { - usage(argv[0]); - } else { - usage(argv[0], "Unknown command line option"); - } - } - } - -} // namespace - -int main(int argc, char** argv) -{ - std::vector inputFile; - std::string outputDir; - int opts; - int verbosity; - -#ifdef use_cpp11 - // handle errors by exiting - spv::spirvbin_t::registerErrorHandler(errHandler); - - // Log messages to std::cout - spv::spirvbin_t::registerLogHandler(logHandler); -#endif - - if (argc < 2) - usage(argv[0]); - - parseCmdLine(argc, argv, inputFile, outputDir, opts, verbosity); - - if (outputDir.empty()) - usage(argv[0], "Output directory required"); - - // Main operations: read, remap, and write. - execute(inputFile, outputDir, opts, verbosity); - - // If we get here, everything went OK! Nothing more to be done. -} diff --git a/deps/glslang/Test/100.conf b/deps/glslang/Test/100.conf deleted file mode 100644 index 3899d343..00000000 --- a/deps/glslang/Test/100.conf +++ /dev/null @@ -1,28 +0,0 @@ -MaxLights 32 -MaxClipPlanes 6 -MaxTextureUnits 32 -MaxTextureCoords 32 -MaxVertexAttribs 8 -MaxVertexUniformComponents 4096 -MaxVaryingFloats 64 -MaxVertexTextureImageUnits 0 -MaxCombinedTextureImageUnits 8 -MaxTextureImageUnits 8 -MaxFragmentUniformComponents 4096 -MaxDrawBuffers 1 -MaxVertexUniformVectors 16 -MaxVaryingVectors 8 -MaxFragmentUniformVectors 16 -MaxVertexOutputVectors 16 -MaxFragmentInputVectors 15 -MinProgramTexelOffset -8 -MaxProgramTexelOffset 7 -nonInductiveForLoops 0 -whileLoops 0 -doWhileLoops 0 -generalUniformIndexing 0 -generalAttributeMatrixVectorIndexing 0 -generalVaryingIndexing 0 -generalSamplerIndexing 0 -generalVariableIndexing 0 -generalConstantMatrixVectorIndexing 0 diff --git a/deps/glslang/Test/100.frag b/deps/glslang/Test/100.frag deleted file mode 100644 index 439fc6ca..00000000 --- a/deps/glslang/Test/100.frag +++ /dev/null @@ -1,243 +0,0 @@ -// okay -#version 100 -int a[3] = { 2, 3, 4, }; // ERROR (lots) -#version 100 -int uint; - -attribute vec4 v[3]; // ERROR - -float f = 2; // ERROR - -uniform block { // ERROR - int x; -}; - -void foo(float); - -void main() -{ - foo(3); // ERROR - int s = 1 << 4; // ERROR - s = 16 >> 2; // ERROR - if (a == a); // ERROR - int b, c; - b = c & 4; // ERROR - b = c % 4; // ERROR - b = c | 4; // ERROR - b >>= 2; // ERROR - b <<= 2; // ERROR - b %= 3; // ERROR - - struct S { - float f; - float a[10]; - } s1, s2; - - s1 = s2; // ERROR - if (s1 == s2); // ERROR - if (s1 != s2); // ERROR - - switch(b) { // ERROR - } -} - -invariant gl_FragColor; -float fa[]; // ERROR -float f13; -invariant f13; // ERROR -struct S { int a; }; -invariant S; // ERROR, not an input or output -invariant float fi; // ERROR -varying vec4 av; -invariant av; // okay in v100 - -void foo10() -{ - invariant f; // ERROR - invariant float f2; // ERROR - float f3; - invariant f3; // ERROR -} - -uniform vec2 uv2; -invariant uv2; // ERROR -invariant uniform vec3 uv3; // ERROR - -sampler2D glob2D; // ERROR -void f11(sampler2D p2d) -{ - sampler2D v2D; // ERROR -} -varying sampler2D vary2D; // ERROR - -struct sp { - highp float f; - in float g; // ERROR - uniform float h; // ERROR - invariant float i; // ERROR -}; - -uniform sampler3D s3D; // ERROR - -#extension GL_OES_texture_3D : enable - -precision highp sampler3D; -uniform sampler3D s3D2; - -void foo234() -{ - texture3D(s3D2, vec3(0.2), 0.2); - texture3DProj(s3D2, v[1], 0.4); - dFdx(v[0]); // ERROR - dFdy(3.2); // ERROR - fwidth(f13); // ERROR -} - -#extension GL_OES_standard_derivatives : enable - -void foo236() -{ - dFdx(v[0]); - dFdy(3.2); - fwidth(f13); - gl_FragDepth = f13; // ERROR - gl_FragDepthEXT = f13; // ERROR -} - -#extension GL_EXT_frag_depth : enable - -void foo239() -{ - gl_FragDepth = f13; // ERROR - gl_FragDepthEXT = f13; -} - -#extension GL_OES_EGL_image_external : enable - -uniform samplerExternalOES sExt; - -void foo245() -{ - texture2D(sExt, vec2(0.2)); - texture2DProj(sExt, vec3(f13)); - texture2DProj(sExt, v[2]); -} - -precision mediump samplerExternalOES; -uniform samplerExternalOES mediumExt; -uniform highp samplerExternalOES highExt; - -void foo246() -{ - texture2D(mediumExt, vec2(0.2)); - texture2DProj(highExt, v[2]); - texture3D(sExt, vec3(f13)); // ERROR - texture2DProjLod(sExt, vec3(f13), f13); // ERROR - int a; - ~a; // ERROR - a | a; // ERROR - a & a; // ERROR -} - -#extension GL_OES_EGL_image_external : disable -uniform sampler2D s2Dg; - -int foo203940(int a, float b, float a) // ERROR, a redefined -{ - texture2DProjGradEXT(s2Dg, vec3(f13), uv2, uv2); // ERROR, extension not enabled - return a; -} - -float f123 = 4.0f; // ERROR -float f124 = 5e10F; // ERROR - -#extension GL_EXT_shader_texture_lod : enable - -uniform samplerCube sCube; - -void foo323433() -{ - texture2DLodEXT(s2Dg, uv2, f13); - texture2DProjGradEXT(s2Dg, vec3(f13), uv2, uv2); - texture2DGradEXT(s2Dg, uv2, uv2, uv2); - textureCubeGradEXT(sCube, vec3(f13), vec3(f13), vec3(f13)); -} - -int fgfg(float f, mediump int i); -int fgfg(float f, highp int i) { return 2; } // ERROR, precision qualifier difference - -int fffg(float f); -int fffg(float f); // ERROR, can't have multiple prototypes - -int gggf(float f); -int gggf(float f) { return 2; } - -int agggf(float f) { return 2; } -int agggf(float f); -int agggf(float f); // ERROR, second prototype - -varying struct SSS { float f; } s; // ERROR - -int vf(void); -int vf2(); -int vf3(void v); // ERROR -int vf4(int, void); // ERROR -int vf5(int, void v); // ERROR - -void badswizzle() -{ - vec3 a[5]; - a.y; // ERROR, no array swizzle - a.zy; // ERROR, no array swizzle - a.nothing; // ERROR - a.length(); // ERROR, not this version - a.method(); // ERROR -} - -float fooinit(); - -float fooinittest() -{ - return fooinit(); -} - -// Test extension GL_EXT_blend_func_extended -void blendFuncFail() // Error since extension GL_EXT_blend_func_extended is disabled -{ - gl_SecondaryFragColorEXT = vec4(1.0); - gl_SecondaryFragDataEXT[gl_MaxDualSourceDrawBuffersEXT - 1] = vec4(0.1); -} -#extension GL_EXT_blend_func_extended : enable -void blendFunc() -{ - gl_SecondaryFragColorEXT = vec4(1.0); - gl_SecondaryFragDataEXT[gl_MaxDualSourceDrawBuffersEXT - 1] = vec4(0.1); -} - -// Test extra-function initializers -const float fi1 = 3.0; -const float fi2 = 4.0; -const float fi3 = 5.0; - -float fooinit() -{ - return fi1 + fi2 + fi3; // should make a constant of 12.0 -} - -int init1 = gl_FrontFacing ? 1 : 2; // ERROR, non-const initializer - -#ifdef GL_EXT_shader_non_constant_global_initializers -#extension GL_EXT_shader_non_constant_global_initializers : enable -#endif - -int init2 = gl_FrontFacing ? 1 : 2; - -#define A__B // error -int a__b; // error - -#pragma STDGL invariant(all) - -#line 3000 -#error line of this error should be 3000 - -uniform samplerExternalOES badExt; // syntax ERROR diff --git a/deps/glslang/Test/100Limits.vert b/deps/glslang/Test/100Limits.vert deleted file mode 100644 index d23b7e89..00000000 --- a/deps/glslang/Test/100Limits.vert +++ /dev/null @@ -1,76 +0,0 @@ -#version 100 - -int ga, gb; -float f; - -uniform sampler2D fsa[3]; -uniform float fua[10]; -attribute mat3 am3; -attribute vec2 av2; -varying vec4 va[4]; - -const mat2 m2 = mat2(1.0); -const vec3 v3 = vec3(2.0); - -void foo(inout float a) {} - -int bar() -{ - return 1; -} - -void main() -{ - while (ga < gb) { } - - do { } while (false); - - for ( ; ; ); // ERROR - for ( ; ga==gb; ); // ERROR - for ( ; ; f++); // ERROR - for ( ga = 0; ; ); // ERROR - for ( bool a = false; ; ); // ERROR - for (float a = 0.0; a == sin(f); ); // ERROR - for ( int a = 0; a < 10; a *= 2); // ERROR - for ( int a = 0; a <= 20; a++) --a; // ERROR - for ( int a = 0; a <= 20; a++) { if (ga==0) a = 4; } // ERROR - for (float a = 0.0; a <= 20.0; a += 2.0); - for (float a = 0.0; a != 20.0; a -= 2.0) { if (ga==0) ga = 4; } - for (float a = 0.0; a == 20.0; a--) for (float a = 0.0; a == 20.0; a--); // two different 'a's, everything okay - for (float a = 0.0; a <= 20.0; a += 2.0); - for (float a = 0.0; a <= 20.0; a += 2.0); - for (float a = 0.0; a > 2.0 * 20.0; a += v3.y); - for (float a = 0.0; a >= 20.0; a += 2.0) foo(a); // ERROR - - int ia[9]; - - fsa[ga]; // ERROR - fua[ga]; - am3[ga]; // ERROR - av2[ga]; // ERROR - va[2+ga]; // ERROR - m2[ga]; // ERROR - v3[ga/2]; // ERROR - ia[ga]; // ERROR - - for (int a = 3; a >= 0; a--) { - fsa[a]; - fua[a+2]; - am3[3*a]; - av2[3*a]; - va[a-1]; - m2[a/2]; - v3[a]; - ia[a]; - ia[bar()]; // ERROR - } - - fsa[2]; - fua[3]; - am3[2]; - av2[1]; - va[1]; - m2[1]; - v3[1]; - ia[3]; -} diff --git a/deps/glslang/Test/100samplerExternal.frag b/deps/glslang/Test/100samplerExternal.frag deleted file mode 100644 index 9f6f397e..00000000 --- a/deps/glslang/Test/100samplerExternal.frag +++ /dev/null @@ -1,41 +0,0 @@ -#version 100 - -#extension GL_OES_EGL_image_external : enable - -uniform samplerExternalOES sExt; -precision mediump samplerExternalOES; -uniform samplerExternalOES mediumExt; -uniform highp samplerExternalOES highExt; - -void main() -{ - texture2D(sExt, vec2(0.2)); - texture2D(mediumExt, vec2(0.2)); - texture2D(highExt, vec2(0.2)); - texture2DProj(sExt, vec3(0.3)); - texture2DProj(sExt, vec4(0.3)); - - int lod = 0; - highp float bias = 0.01; - textureSize(sExt, lod); // ERROR - texture(sExt, vec2(0.2)); // ERROR - texture(sExt, vec2(0.2), bias); // ERROR - textureProj(sExt, vec3(0.2)); // ERROR - textureProj(sExt, vec3(0.2), bias); // ERROR - textureProj(sExt, vec4(0.2)); // ERROR - textureProj(sExt, vec4(0.2), bias); // ERROR - texelFetch(sExt, ivec2(4), lod); // ERROR - - texture3D(sExt, vec3(0.3)); // ERROR - texture2DProjLod(sExt, vec3(0.3), 0.3); // ERROR - texture(sExt, vec3(0.3)); // ERROR - textureProjLod(sExt, vec3(0.3), 0.3); // ERROR -} - -#extension GL_OES_EGL_image_external : disable - -#extension GL_OES_EGL_image_external_essl3 : enable -uniform samplerExternalOES badExt; // ERROR -#extension GL_OES_EGL_image_external_essl3 : disable - -uniform samplerExternalOES badExt; // ERROR diff --git a/deps/glslang/Test/100scope.vert b/deps/glslang/Test/100scope.vert deleted file mode 100644 index 6643730c..00000000 --- a/deps/glslang/Test/100scope.vert +++ /dev/null @@ -1,76 +0,0 @@ -#version 100 - -int f(int a, int b, int c) -{ - int a = b; - - { - float a = float(a) + 1.0; - } - - return a; -} - -int f(int a, int b, int c); // okay to redeclare - -bool b; -float b(int a); // ERROR: redefinition - -float c(int a); -bool c; // ERROR: redefinition - -float f; // ERROR: redefinition -float tan; // okay, built-in is in an outer scope -float sin(float x); // ERROR: can't redefine built-in functions -float cos(float x) // ERROR: can't redefine built-in functions -{ - return 1.0; -} -bool radians(bool x) // okay, can overload built-in functions -{ - return true; -} - -invariant gl_Position; - -void main() -{ - int g(); // ERROR: no local function declarations - g(); - - float sin; // okay - sin; - sin(0.7); // ERROR, use of hidden function - f(1,2,3); - - float f; // hides f() - f = 3.0; - - gl_Position = vec4(f); - - for (int f = 0; f < 10; ++f) - ++f; - - int x = 1; - { - float x = 2.0, /* 2nd x visible here */ y = x; // y is initialized to 2 - int z = z; // ERROR: z not previously defined. - } - { - int x = x; // x is initialized to '1' - } - - struct S - { - int x; - }; - { - S S = S(0); // 'S' is only visible as a struct and constructor - S.x; // 'S' is now visible as a variable - } - - int degrees; - degrees(3.2); // ERROR, use of hidden built-in function -} - -varying struct SSS { float f; } s; // ERROR diff --git a/deps/glslang/Test/110scope.vert b/deps/glslang/Test/110scope.vert deleted file mode 100644 index 86c27a58..00000000 --- a/deps/glslang/Test/110scope.vert +++ /dev/null @@ -1,87 +0,0 @@ -#version 110 - -int f(int a, int b, int c) -{ - int a = b; // ERROR, redefinition - - { - float a = float(a) + 1.0; // okay - } - - return a; -} - -int f(int a, int b, int c); // okay to redeclare - -bool b; -float b(int a); // okay, b and b() are different - -float c(int a); -bool c; // okay, and c() are different - -float f; // okay f and f() are different -float tan; // okay, hides built-in function -float sin(float x); // okay, can redefine built-in functions -float cos(float x) // okay, can redefine built-in functions -{ - return 1.0; -} -bool radians(bool x) // okay, can overload built-in functions -{ - return true; -} - -int gi = f(1,2,3); // ERROR, can't call user-defined function from global scope - -void main() -{ - int g(); // okay - g(); - - float sin; // okay - sin; - sin(0.7); // okay - f(1,2,3); - - float f; - f = 3.0; - - gl_Position = vec4(f); - - for (int f = 0; f < 10; ++f) - ++f; - - int x = 1; - { - float x = 2.0, /* 2nd x visible here */ y = x; // y is initialized to 2 - int z = z; // ERROR: z not previously defined. - } - { - int x = x; // x is initialized to '1' - } - - struct S - { - int x; - }; - { - S S = S(0); // 'S' is only visible as a struct and constructor - S.x; // 'S' is now visible as a variable - } - - int degrees; - degrees(3.2); - - { - S s; - s.x = 3; - struct S { // okay, hides S - bool b; - }; - S t; - t.b = true; - struct S { // ERROR, redefinition of struct S - float f; - }; - } -} diff --git a/deps/glslang/Test/120.frag b/deps/glslang/Test/120.frag deleted file mode 100644 index ea35b80e..00000000 --- a/deps/glslang/Test/120.frag +++ /dev/null @@ -1,248 +0,0 @@ -#version 120 - -float lowp; -float mediump; -float highp; - -float precision; - -in vec4 i; -out vec4 o; - -uniform sampler2D s2D; -centroid varying vec2 centTexCoord; - -uniform mat4x2 m; - -struct s { - float f; -}; - -void main() -{ - mat2x3 m23 = mat2x3(m); - - int a; - bool b; - s sv = s(a); - float[2] ia = float[2](3, i.y); - float f1 = 1; - float f = a; - f = a; - ivec3 iv3; - vec3 v3 = iv3; - f = f + a; - f = a - f; - f += a; - f = a - f; - v3 *= iv3; - v3 = iv3 / 2.0f; - v3 = 3.0 * iv3; - v3 = 2 * v3; - v3 = v3 - 2; - if (f < a || - a <= f || - f > a || - f >= a || - a == f || - f != a); - f = b ? a : f; - f = b ? f : a; - f = b ? a : a; - s news = sv; - - i.xy + i.xyz; // ERROR - m * i.xyz; // ERROR - m + i; // ERROR - int aoeu = 1.0; // ERROR - f = b; // ERROR - f = a + b; // ERROR - f = b * a; // ERROR - b = a; // ERROR - b = b + f; // ERROR - f |= b; // ERROR - - gl_FragColor = texture2D(s2D, centTexCoord); - - float flat; - float smooth; - float noperspective; - float uvec2; - float uvec3; - float uvec4; - //packed; // ERROR, reserved word - - { - mat4 m; - vec4 v; - bool b; - gl_FragColor += b ? v : m; // ERROR, types don't match around ":" - } - - gl_FragColor.xr; // ERROR, swizzlers not from same field space - gl_FragColor.xyxyx.xy; // ERROR, cannot make a vec5, even temporarily - centTexCoord.z; // ERROR, swizzler out of range - (a,b) = true; // ERROR, not an l-value -} - -float imageBuffer; -float uimage2DRect; - -int main() {} // ERROR -void main(int a) {} // ERROR - -const int a; // ERROR - -int foo(in float a); -int foo(out float a) // ERROR -{ - return 3.2; // ERROR - foo(a); // ERROR -} - -bool gen(vec3 v) -{ - if (abs(v[0]) < 1e-4F && abs(v[1]) < 1e-4) - return true; -} - -void v1() -{ -} - -void v2() -{ - return v1(); // ERROR, no expression allowed, even though void -} - -void atest() -{ - vec4 v = gl_TexCoord[1]; - v += gl_TexCoord[3]; -} - -varying vec4 gl_TexCoord[6]; // okay, assigning a size -varying vec4 gl_TexCoord[5]; // ERROR, changing size - -mat2x2 m22; -mat2x3 m23; -mat2x4 m24; - -mat3x2 m32; -mat3x3 m33; -mat3x4 m34; - -mat4x2 m42; -mat4x3 m43; -mat4x4 m44; - -void foo123() -{ - mat2 r2 = matrixCompMult(m22, m22); - mat3 r3 = matrixCompMult(m33, m33); - mat4 r4 = matrixCompMult(m44, m44); - - mat2x3 r23 = matrixCompMult(m23, m23); - mat2x4 r24 = matrixCompMult(m24, m24); - mat3x2 r32 = matrixCompMult(m32, m32); - mat3x4 r34 = matrixCompMult(m34, m34); - mat4x2 r42 = matrixCompMult(m42, m42); - mat4x3 r43 = matrixCompMult(m43, m43); - - mat3x2 rfoo1 = matrixCompMult(m23, m32); // ERROR - mat3x4 rfoo2 = matrixCompMult(m34, m44); // ERROR -} - -void matConst() -{ - vec2 v2; - vec3 v3; - mat4 m4b1 = mat4(v2, v3); // ERROR, not enough - mat4 m4b2 = mat4(v2, v3, v3, v3, v3, v2, v2); // ERROR, too much - mat4 m4g = mat4(v2, v3, v3, v3, v3, v3); - mat4 m4 = mat4(v2, v3, v3, v3, v3, v2); - mat3 m3 = mat3(m4); - mat3 m3b1 = mat3(m4, v2); // ERROR, extra arg - mat3 m3b2 = mat3(m4, m4); // ERROR, extra arg - mat3x2 m32 = mat3x2(m4); - mat4 m4c = mat4(m32); - mat3 m3s = mat3(v2.x); - - mat3 m3a1[2] = mat3[2](m3s, m3s); - mat3 m3a2[2] = mat3[2](m3s, m3s, m3s); // ERROR, too many args -} - -uniform sampler3D s3D; -uniform sampler1D s1D; -uniform sampler2DShadow s2DS; - -void foo2323() -{ - vec4 v; - vec2 v2; - float f; - v = texture2DLod(s2D, v2, f); // ERROR - v = texture3DProjLod(s3D, v, f); // ERROR - v = texture1DProjLod(s1D, v, f); // ERROR - v = shadow2DProjLod(s2DS, v, f); // ERROR - - v = texture1DGradARB(s1D, f, f, f); // ERROR - v = texture2DProjGradARB(s2D, v, v2, v2); // ERROR - v = shadow2DProjGradARB(s2DS, v, v2, v2); // ERROR -} - -#extension GL_ARB_shader_texture_lod : require - -void foo2324() -{ - vec4 v; - vec2 v2; - float f; - v = texture2DLod(s2D, v2, f); - v = texture3DProjLod(s3D, v, f); - v = texture1DProjLod(s1D, v, f); - v = shadow2DProjLod(s2DS, v, f); - - v = texture1DGradARB(s1D, f, f, f); - v = texture2DProjGradARB(s2D, v, v2, v2); - v = shadow2DProjGradARB(s2DS, v, v2, v2); - v = shadow2DRectProjGradARB(s2DS, v, v2, v2); // ERROR -} - -uniform sampler2DRect s2DRbad; // ERROR - -void foo121111() -{ - vec2 v2; - vec4 v = texture2DRect(s2DRbad, v2); -} - -#extension GL_ARB_texture_rectangle : enable - -uniform sampler2DRect s2DR; -uniform sampler2DRectShadow s2DRS; - -void foo12111() -{ - vec2 v2; - vec3 v3; - vec4 v4; - vec4 v; - v = texture2DRect(s2DR, v2); - v = texture2DRectProj(s2DR, v3); - v = texture2DRectProj(s2DR, v4); - v = shadow2DRect(s2DRS, v3); - v = shadow2DRectProj(s2DRS, v4); - - v = shadow2DRectProjGradARB(s2DRS, v, v2, v2); -} - -void voidTernary() -{ - bool b; - b ? foo121111() : foo12111(); - b ? foo121111() : 4; // ERROR - b ? 3 : foo12111(); // ERROR -} - -float halfFloat1 = 1.0h; // syntax ERROR diff --git a/deps/glslang/Test/120.vert b/deps/glslang/Test/120.vert deleted file mode 100644 index 7b98492b..00000000 --- a/deps/glslang/Test/120.vert +++ /dev/null @@ -1,215 +0,0 @@ -#version 120 - -in vec4 i; // ERROR -out vec4 o; // ERROR - -attribute vec2 attv2; -attribute vec4 attv4; -uniform sampler2D s2D; -invariant varying vec2 centTexCoord; -invariant gl_Position; -centroid gl_Position; // ERROR -centroid centroid foo; // ERROR -invariant gl_Position, gl_PointSize; - -void main() -{ - centTexCoord = attv2; - gl_Position = attv4; - - gl_ClipVertex = attv4; - gl_ClipDistance[1] = 0.2; // ERROR - - vec3[12] a; - vec4[a.length()] b; - gl_Position = b[b.length()-1]; - - float f[]; - int a1 = f.length(); // ERROR - float f[7]; - int aa = f.length(); - int a2 = f.length; // ERROR - int a3 = f.length(a); // ERROR - int a4 = f.flizbit; // ERROR - int a4 = f.flizbit(); // ERROR - float md[2][4]; // ERROR - float[2] md2[4]; // ERROR - float[2][4] md3; // ERROR - float md5, md6[2][3]; // ERROR - float[2] md4, md7[4]; // ERROR - float md9[2][3] = float[2][3](1, 2, 3, 4, 5, 6); // ERROR - float md10, md11[2][3] = float[2][3](1, 2, 3, 4, 5, 6); // ERROR - - gl_PointSize = 3.8; -} - -uniform float initted = 3.4; // okay - -const float concall = sin(0.3); - -int[2][3] foo( // ERROR - float[2][3] a, // ERROR - float[2] b[3], // ERROR - float c[2][3]); // ERROR - -int overloadA(in float f); -int overloadA(out float f); // ERROR, different qualifiers -float overloadA(float); // ERROR, different return value for same signature -float overloadA(out float f, int); -float overloadA(int i); - -void overloadB(float, const in float) { } - -vec2 overloadC(int, int); -vec2 overloadC(const in int, float); -vec2 overloadC(float, int); -vec2 overloadC(vec2, vec2); - -vec3 overloadD(int, float); -vec3 overloadD(float, in int); - -vec3 overloadE(float[2]); -vec3 overloadE(mat2 m); -vec3 overloadE(vec2 v); - -vec3 overloadF(int); -vec3 overloadF(float); - -void foo() -{ - float f; - int i; - - overloadB(f, f); - overloadB(f, 2); - overloadB(1, i); - - overloadC(1); // ERROR - overloadC(1, i); - overloadC(vec2(1), vec2(2)); - overloadC(f, 3.0); // ERROR, no way - overloadC(ivec2(1), vec2(2)); - - overloadD(i, f); - overloadD(f, i); - overloadD(i, i); // ERROR, ambiguous - - int overloadB; // hiding - overloadB(1, i); // ERROR - - sin(1); - texture2D(s2D, ivec2(0)); - clamp(attv4, 0, 1); - clamp(ivec4(attv4), 0, 1); - - int a[2]; - overloadC(a, 3); // ERROR - overloadE(a); // ERROR - overloadE(3.3); // ERROR - overloadE(vec2(3.3)); - overloadE(mat2(0.5)); - overloadE(ivec4(1)); // ERROR - overloadE(ivec2(1)); - - float b[2]; - overloadE(b); - - overloadF(1, 1); // ERROR - overloadF(1); -} - -varying vec4 gl_TexCoord[35]; // ERROR, size too big - -// tests for output conversions -void outFun(in float, out ivec2, in int, out float); -int outFunRet(in float, out int, const in int, out ivec4); -ivec2 outFunRet(in float, out ivec4, in int, out ivec4); - -void foo2() -{ - vec2 v2; - vec4 v4; - float f; - int i; - - outFun(i, v2, i, f); - outFunRet(i, f, i, v4); - float ret = outFunRet(i, f, i, v4); - vec2 ret2 = outFunRet(i, v4, i, v4); - bool b = any(lessThan(v4, attv4)); // tests aggregate arg to unary built-in -} - -void noise() -{ - float f1 = noise1(1.0); - vec2 f2 = noise2(vec2(1.0)); - vec3 f3 = noise3(vec3(1.0)); - vec4 f4 = noise4(vec4(1.0)); -} - -// version 130 features - -uniform int c; - -attribute ivec2 x; -attribute vec2 v2a; -attribute float c1D; -attribute vec2 c2D; -attribute vec3 c3D; - -uniform vec4 v4; - -void foo213() -{ - float f = 3; - switch (c) { // ERRORs... - case 1: - f = sin(f); - break; - case 2: - f = f * f; - default: - f = 3.0; - } - - int i; - i << 3 | 0x8A >> 1 & 0xFF; // ERRORs... - - vec3 modfOut, modfIn; - vec3 v11 = modf(modfIn, modfOut); // ERRORS... - float t = trunc(f); - vec2 v12 = round(v2a); - vec2 v13 = roundEven(v2a); - bvec2 b10 = isnan(v2a); - bvec4 b11 = isinf(v4); - - sinh(c1D) + // ERRORS... - cosh(c1D) * tanh(c2D); - asinh(c4D) + acosh(c4D); - atanh(c3D); - - int id = gl_VertexID; // ERROR - gl_ClipDistance[1] = 0.3; // ERROR -} - -int gl_ModelViewMatrix[] = 0; - -// token pasting (ERRORS...) - -#define mac abc##def -int mac; - -#define macr(A,B) A ## B -int macr(qrs,tuv); - -layout(std140) uniform BlockName // ERROR -{ - int test; -}; - -#extension GL_ARB_uniform_buffer_object : enable - -layout(std140) uniform BlockName -{ - int test; -}; \ No newline at end of file diff --git a/deps/glslang/Test/130.frag b/deps/glslang/Test/130.frag deleted file mode 100644 index c352df42..00000000 --- a/deps/glslang/Test/130.frag +++ /dev/null @@ -1,181 +0,0 @@ -#version 130 - -lowp vec3 a; -mediump float b; -highp int c; - -precision highp float; - -in vec4 i; -out vec4 o; - -flat in float fflat; -smooth in float fsmooth; -noperspective in float fnop; - -void main() -{ - float clip = gl_ClipDistance[3]; -} - -uniform samplerCube sampC; - -void foo() -{ - vec4 s = textureGather(sampC, vec3(0.2)); -} - -#extension GL_ARB_texture_gather : enable - -void bar() -{ - vec4 s = textureGather(sampC, vec3(0.2)); -} - -flat in vec3 gl_Color; // ERROR, type -in vec4 gl_Color; -flat in vec4 gl_Color; -flat in vec4 gl_Color[2]; // ERROR, array -vec4 gl_Color; // ERROR, storage - -#extension GL_ARB_texture_gather : warn - -void bar2() -{ - vec4 s = textureGather(sampC, vec3(0.2)); - - uvec3 uv3; - bvec3 b3; - b3 = lessThan(uv3, uv3); - b3 = equal(uv3, uv3); - const bvec2 bl1 = greaterThanEqual(uvec2(2, 3), uvec2(3,3)); - const bvec2 bl2 = equal(uvec2(2, 3), uvec2(3,3)); - const bvec2 bl3 = equal(bl1, bl2); // yes, equal - int a1[int(bl3.x)]; - int a2[int(bl3.y)]; - a1[0]; // size 1 - a2[0]; // size 1 - const bvec4 bl4 = notEqual(greaterThan(uvec4(1,2,3,4), uvec4(0,2,0,6)), lessThanEqual(uvec4(7,8,9,10), uvec4(6, 8, 0, 11))); // compare (t,f,t,f) with (f,t,f,t) - int a3[int(bl4.x)+int(bl4.y)+int(bl4.z)+int(bl4.w)]; - a3[3]; // size 4 - b3 != b3; - b3 < b3; // ERROR - uv3 > uv3; // ERROR - uvec2(2, 3) >= uvec2(3,3); // ERROR - int samples = gl_NumSamples; // ERROR - int(bl4) <= int(bl4); // true - int(bl4.x) > int(bl4.y); // false -} - -#extension GL_ARB_texture_gather : enable -#extension GL_ARB_texture_rectangle : enable -#extension GL_ARB_sample_shading : enable - -uniform sampler2D samp2D; -uniform sampler2DShadow samp2DS; -uniform sampler2DRect samp2DR; -uniform sampler2DArray samp2DA; - -void bar23() -{ - vec4 s; - s = textureGatherOffset(sampC, vec3(0.3), ivec2(1)); // ERROR - s = textureGatherOffset(samp2DR, vec2(0.3), ivec2(1)); // ERROR - s = textureGatherOffset(samp2D, vec2(0.3), ivec2(1)); - s = textureGatherOffset(samp2DA, vec3(0.3), ivec2(1)); - s = textureGatherOffset(samp2DS, vec2(0.3), 1.3, ivec2(1)); // ERROR - s = textureGatherOffset(samp2D, vec2(0.3), ivec2(1), 2); // ERROR - int samples = gl_NumSamples; -} - -#extension GL_ARB_gpu_shader5 : enable - -void bar234() -{ - vec4 s; - s = textureGatherOffset(samp2D, vec2(0.3), ivec2(1)); - s = textureGatherOffset(samp2DA, vec3(0.3), ivec2(1)); - s = textureGatherOffset(samp2DR, vec2(0.3), ivec2(1)); - s = textureGatherOffset(samp2DS, vec2(0.3), 1.3, ivec2(1)); - s = textureGatherOffset(samp2D, vec2(0.3), ivec2(1), 2); -} - -#extension GL_ARB_texture_cube_map_array : enable - -uniform samplerCubeArray Sca; -uniform isamplerCubeArray Isca; -uniform usamplerCubeArray Usca; -uniform samplerCubeArrayShadow Scas; - -void bar235() -{ - ivec3 a = textureSize(Sca, 3); - vec4 b = texture(Sca, i); - ivec4 c = texture(Isca, i, 0.7); - uvec4 d = texture(Usca, i); - - b = textureLod(Sca, i, 1.7); - a = textureSize(Scas, a.x); - float f = texture(Scas, i, b.y); - c = textureGrad(Isca, i, vec3(0.1), vec3(0.2)); -} - -int \ - x; // ERROR until 420pack is turned on - -#extension GL_ARB_shading_language_420pack : enable - -const int ai[3] = { 10, 23, 32 }; -layout(binding=0) uniform blockname { int a; } instanceName; // ERROR -uniform layout(binding=0) sampler2D bounds; - -void bar23444() -{ - mat4x3 m43; \ - float a1 = m43[3].y; - vec3 v3; - int a2 = m43.length(); - a2 += m43[1].length(); - a2 += v3.length(); - const float b = 2 * a1; - a.x = gl_MinProgramTexelOffset + gl_MaxProgramTexelOffset; - bool boolb; - boolb.length(); // ERROR - m43[3][1].length(); // ERROR - v3.length; // ERROR - v3.length(b); // ERROR -} - -in float gl_FogFragCoord; - -#extension GL_ARB_separate_shader_objects : enable - -in float gl_FogFragCoord; -in int gl_FogFragCoord; // ERROR - -layout(early_fragment_tests) in; // ERROR -layout(r32i) uniform iimage2D iimg2Dbad; // ERROR - -#extension GL_ARB_shader_image_load_store : enable - -layout(early_fragment_tests) in; - -layout(r32i) uniform iimage2D iimg2D; - -void qux2() -{ - int i; - imageAtomicCompSwap(iimg2D, ivec2(i,i), i, i); - ivec4 pos = imageLoad(iimg2D, ivec2(i,i)); -} - -layout(early_fragment_tests) out; // ERROR - -#extension GL_ARB_explicit_uniform_location : enable - -layout(location = 3) uniform vec4 ucolor0; // ERROR: explicit attrib location is also required for version < 330 - -#extension GL_ARB_explicit_attrib_location : enable - -layout(location = 4) uniform vec4 ucolor1; - diff --git a/deps/glslang/Test/130.vert b/deps/glslang/Test/130.vert deleted file mode 100644 index d5208cb1..00000000 --- a/deps/glslang/Test/130.vert +++ /dev/null @@ -1,78 +0,0 @@ -#version 130 - -uniform int c; -uniform usampler2D us2D; - -in ivec2 x; -in vec2 v2a; -in float c1D; -in vec2 c2D; -in vec3 c3D; -smooth vec4 c4D; // ?? - -uniform vec4 v4; - -void main() -{ - float f = 3; - switch (c) { // full switch testing in switch.frag - case 1: - f = sin(f); - break; - case 2: - f = f * f; - default: - f = 3.0; - } - - uint i; - i = texture(us2D, x).w; // full uint testing in uint.frag - i << 3u | 0x8Au >> 1u & 0xFFu; - - vec3 modfOut, modfIn; - vec3 v11 = modf(modfIn, modfOut); - float t = trunc(f); - vec2 v12 = round(v2a); - vec2 v13 = roundEven(v2a); - bvec2 b10 = isnan(v2a); - bvec4 b11 = isinf(v4); - - sinh(c1D) + - cosh(c1D) * tanh(c2D); - asinh(c4D) + acosh(c4D); - atanh(c3D); - - int id = gl_VertexID; - gl_ClipDistance[1] = 0.3; -} - -// version 140 features - -//uniform isamplerBuffer sbuf; - -//layout(std140) uniform blockName { -// int anonMem; -//}; - -void foo88() -{ - int id = gl_InstanceID; // ERROR - //id += anonMem; - id += texelFetch(id, 8); - - gl_ClipVertex; // these are all present... - gl_Color; - gl_LightSource[0]; - gl_DepthRange.far; - gl_TexCoord; - gl_FogFragCoord; - gl_FrontColor; -} - -// token pasting - -#define mac abc##def -int mac; - -#define macr(A,B) A##B -int macr(qrs,tuv); diff --git a/deps/glslang/Test/140.frag b/deps/glslang/Test/140.frag deleted file mode 100644 index 5efdbed7..00000000 --- a/deps/glslang/Test/140.frag +++ /dev/null @@ -1,60 +0,0 @@ -#version 140 - -varying vec4 v; - -in vec4 i; -out vec4 o; - -in float gl_ClipDistance[5]; - -void main() -{ - float clip = gl_ClipDistance[2]; -} -#ifdef GL_ES -#error GL_ES is set -#else -#error GL_ES is not set -#endif - - -in struct S { float f; } s; // ERROR - -float patch = 3.1; - -layout(location=3) in vec4 vl; // ERROR - -layout(location = 3) out vec4 factorBad; // ERROR - -#extension GL_ARB_explicit_attrib_location : enable - -layout(location = 5) out vec4 factor; - -#extension GL_ARB_separate_shader_objects : enable - -layout(location=4) in vec4 vl2; - -float fooi(); - -void foo() -{ - vec2 r1 = modf(v.xy, v.zw); // ERROR, v.zw not l-value - vec2 r2 = modf(o.xy, o.zw); - o.z = fooi(); -} - -// Test extra-function initializers - -float i1 = gl_FrontFacing ? -2.0 : 2.0; -float i2 = 102; - -float fooi() -{ - return i1 + i2; -} - -uniform sampler2DMS aaa1; // ERROR - -#extension GL_ARB_texture_multisample : enable - -uniform sampler2DMS aaa2; diff --git a/deps/glslang/Test/140.vert b/deps/glslang/Test/140.vert deleted file mode 100644 index 8035144a..00000000 --- a/deps/glslang/Test/140.vert +++ /dev/null @@ -1,79 +0,0 @@ -#version 140 - -uniform isamplerBuffer sbuf; - -layout(std140) uniform blockName { - int anonMem; -}; - -void main() -{ - int id = gl_InstanceID; - id += anonMem; - id += texelFetch(sbuf, 8).w; - gl_ClipVertex; // could be ERROR, but compiling under compatibility profile - gl_Color; // could be ERROR, but compiling under compatibility profile - gl_LightSource[0]; // could be ERROR, but compiling under compatibility profile - gl_DepthRange.far; - gl_TexCoord; // could be ERROR, but compiling under compatibility profile - gl_FogFragCoord; // could be ERROR, but compiling under compatibility profile - gl_FrontColor; // could be ERROR, but compiling under compatibility profile -} - -out vec4 gl_Position; // ERROR - -layout(location = 9) in vec4 locBad; // ERROR - -#extension GL_ARB_explicit_attrib_location : enable - -layout(location = 9) in vec4 loc; - -#extension GL_ARB_separate_shader_objects : enable - -out vec4 gl_Position; -in vec4 gl_Position; // ERROR -out vec3 gl_Position; // ERROR - -out float gl_PointSize; -out vec4 gl_ClipVertex; -out float gl_FogFragCoord; - -uniform sampler2DRect s2dr; -uniform sampler2DRectShadow s2drs; -in ivec2 itloc2; -in vec2 tloc2; -in vec3 tloc3; -in vec4 tloc4; - -void foo() -{ - vec4 v = texelFetch(s2dr, itloc2); - v += texelFetch(s2dr, itloc2, 0.2); // ERROR, no lod - v += texture(s2dr, tloc2); - v += texture(s2dr, tloc2, 0.3); // ERROR, no bias - v += texture(s2drs, tloc3); - v += textureProj(s2dr, tloc3); - v += textureProj(s2dr, tloc4); - v += textureProjGradOffset(s2dr, tloc4, ivec2(0.0), ivec2(0.0), ivec2(1,2)); - v += textureProjGradOffset(s2drs, tloc4, ivec2(0.0), ivec2(0.0), ivec2(1,2)); -} - -void devi() -{ - gl_DeviceIndex; // ERROR, no extension - gl_ViewIndex; // ERROR, no extension -} - -#ifdef GL_EXT_device_group -#extension GL_EXT_device_group : enable -#endif - -#ifdef GL_EXT_multiview -#extension GL_EXT_multiview : enable -#endif - -void devie() -{ - gl_DeviceIndex; - gl_ViewIndex; -} diff --git a/deps/glslang/Test/150.frag b/deps/glslang/Test/150.frag deleted file mode 100644 index 90b1e274..00000000 --- a/deps/glslang/Test/150.frag +++ /dev/null @@ -1,184 +0,0 @@ -#version 150 core - -in vec4 gl_FragCoord; -layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord; // ERROR -layout(pixel_center_integer) in vec4 gl_FragCoord; // ERROR -layout(origin_upper_left) in vec4 foo; // ERROR -layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord; - -void main() -{ - vec4 c = gl_FragCoord; -} - -layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord; // ERROR, declared after use - -in struct S { float f; } s; - -float patch = 3.1; - -uniform sampler2DMS sms; -uniform isampler2DMS isms; -uniform usampler2DMS usms; -uniform sampler2DMSArray smsa; -uniform isampler2DMSArray ismsa; -uniform usampler2DMSArray usmsa; - -flat in ivec2 p2; -flat in ivec3 p3; -flat in int samp; - -void barWxyz() -{ - ivec2 t11 = textureSize( sms); - ivec2 t12 = textureSize(isms); - ivec2 t13 = textureSize(usms); - ivec3 t21 = textureSize( smsa); - ivec3 t22 = textureSize(ismsa); - ivec3 t23 = textureSize(usmsa); - vec4 t31 = texelFetch( sms, p2, samp); - ivec4 t32 = texelFetch(isms, p2, samp); - uvec4 t33 = texelFetch(usms, p2, 3); - vec4 t41 = texelFetch( smsa, p3, samp); - ivec4 t42 = texelFetch(ismsa, ivec3(2), samp); - uvec4 t43 = texelFetch(usmsa, p3, samp); -} - -int primitiveID() -{ - return gl_PrimitiveID; - gl_PerFragment; // ERROR, block name can't get reused -} - -in double type1; // ERROR -#extension GL_ARB_gpu_shader_fp64 : enable -double type2; -double type3 = 2.0; -int absTest = sqrt(type3); -double absTest2 = sqrt(type3); -double absTest3 = sqrt(2); -float dk = sqrt(11); - -#extension GL_ARB_shader_bit_encoding: enable - -float f; -vec4 v4; -ivec4 iv4a; -uvec2 uv2c; -void bitEncodingPass() -{ - int i = floatBitsToInt(f); - uvec4 uv11 = floatBitsToUint(v4); - vec4 v14 = intBitsToFloat(iv4a); - vec2 v15 = uintBitsToFloat(uv2c); -} - -#extension GL_ARB_shader_bit_encoding: disable - -void bitEncodingFail() -{ - int i = floatBitsToInt(f); // Error, extention GL_ARB_bit_encoding is diabled -} - -#extension GL_ARB_shading_language_packing : enable -vec2 v2a; -uint uy; - -void packingPass() -{ - uint u19 = packSnorm2x16(v2a); - vec2 v20 = unpackSnorm2x16(uy); - uint u15 = packUnorm2x16(v2a); - vec2 v16 = unpackUnorm2x16(uy); - uint u17 = packHalf2x16(v2a); - vec2 v18 = unpackHalf2x16(uy); -} - -#extension GL_ARB_shading_language_packing : disable -void packingFail() -{ - uint u19 = packSnorm2x16(v2a); // Error, extension GL_ARB_shading_language_packing is disabled -} - -// Testing extension GL_ARB_texture_query_lod -uniform sampler1D samp1D; -uniform sampler2DShadow samp2Ds; - -void qlodFail() -{ - vec2 lod; - float pf; - vec2 pf2; - vec3 pf3; - - lod = textureQueryLOD(samp1D, pf); // ERROR, extension GL_ARB_texture_query_lod needed - lod = textureQueryLOD(samp2Ds, pf2); // ERROR, extension GL_ARB_texture_query_lod needed -} - -#extension GL_ARB_texture_query_lod : enable - -uniform isampler2D isamp2D; -uniform usampler3D usamp3D; -uniform samplerCube sampCube; -uniform isampler1DArray isamp1DA; -uniform usampler2DArray usamp2DA; - -uniform sampler1DShadow samp1Ds; -uniform samplerCubeShadow sampCubes; -uniform sampler1DArrayShadow samp1DAs; -uniform sampler2DArrayShadow samp2DAs; - -uniform samplerBuffer sampBuf; -uniform sampler2DRect sampRect; - -void qlodPass() -{ - vec2 lod; - float pf; - vec2 pf2; - vec3 pf3; - - lod = textureQueryLOD(samp1D, pf); - lod = textureQueryLOD(isamp2D, pf2); - lod = textureQueryLOD(usamp3D, pf3); - lod = textureQueryLOD(sampCube, pf3); - lod = textureQueryLOD(isamp1DA, pf); - lod = textureQueryLOD(usamp2DA, pf2); - - lod = textureQueryLOD(samp1Ds, pf); - lod = textureQueryLOD(samp2Ds, pf2); - lod = textureQueryLOD(sampCubes, pf3); - lod = textureQueryLOD(samp1DAs, pf); - lod = textureQueryLOD(samp2DAs, pf2); - - lod = textureQueryLOD(sampBuf, pf); // ERROR - lod = textureQueryLOD(sampRect, pf2); // ERROR -} - -// Test extension GL_EXT_shader_integer_mix -#extension GL_EXT_shader_integer_mix : enable -bool b1, b2, b; -int x,y; -uint z,w; - -void testmix() -{ - int ival = mix(x, y, b); - ivec2 iv2 = mix(ivec2(x), ivec2(y), bvec2(b)); - ivec3 iv3 = mix(ivec3(x), ivec3(y), bvec3(b)); - ivec4 iv4 = mix(ivec4(x), ivec4(x), bvec4(b)); - uint uiv = mix(z, w, b); - uvec2 uv2 = mix(uvec2(z), uvec2(z), bvec2(b)); - uvec3 uv3 = mix(uvec3(z), uvec3(z), bvec3(b)); - uvec4 uv4 = mix(uvec4(z), uvec4(z), bvec4(b)); - bool bv = mix(b1, b2, b); - bvec2 bv2 = mix(bvec2(b1), bvec2(b2), bvec2(b)); - bvec3 bv3 = mix(bvec3(b1), bvec3(b2), bvec3(b)); - bvec4 bv4 = mix(bvec4(b1), bvec4(b2), bvec4(b)); -} - -#extension GL_EXT_shader_integer_mix : disable -void testmixFail() -{ - int ival = mix(x, y, b); // Error since extenson GL_EXT_shader_integer_mix is disabled -} diff --git a/deps/glslang/Test/150.geom b/deps/glslang/Test/150.geom deleted file mode 100644 index d5b3c9b3..00000000 --- a/deps/glslang/Test/150.geom +++ /dev/null @@ -1,139 +0,0 @@ -#version 150 core - -in fromVertex { - in vec3 color; -} fromV[]; - -out toFragment { - out vec3 color; -} toF; - -out fromVertex { // okay to reuse a block name for another block name - vec3 color; -}; - -out fooB { - vec2 color; -} fromVertex; // ERROR, cannot reuse block name as block instance - -int fromVertex; // ERROR, cannot reuse a block name for something else - -out fooC { - vec2 color; -} fooC; // ERROR, cannot have same name for block and instance name - -void main() -{ - EmitVertex(); - EndPrimitive(); - EmitStreamVertex(1); // ERROR - EndStreamPrimitive(0); // ERROR - - color = fromV[0].color; - gl_ClipDistance[3] = gl_in[1].gl_ClipDistance[2]; - gl_Position = gl_in[0].gl_Position; - gl_PointSize = gl_in[3].gl_PointSize; - gl_PrimitiveID = gl_PrimitiveIDIn; - gl_Layer = 2; -} - -out vec4 ov0; // stream should be 0 -layout(stream = 4) out vec4 ov4; -out vec4 o1v0; // stream should be 0 - -layout(stream = 3) uniform; // ERROR -layout(stream = 3) in; // ERROR -layout(stream = 3) uniform int ua; // ERROR -layout(stream = 3) uniform ubb { int ua; } ibb; // ERROR - -layout(line_strip, points, triangle_strip, stream = 3, points, triangle_strip) out; // just means "stream = 3, triangle_strip" -layout(stream = 3, triangle_strip) out; -out vec4 ov3; // stream should be 3 - -layout(stream = 6) out ooutb { vec4 a; } ouuaa6; - -layout(stream = 6) out ooutb2 { - layout(stream = 6) vec4 a; -} ouua6; - -layout(stream = 7) out ooutb3 { - layout(stream = 6) vec4 a; // ERROR -} ouua7; - -out vec4 ov2s3; // stream should be 3 - -layout(max_vertices = 200) out; -layout(max_vertices = 300) out; // ERROR, too big -void foo(layout(max_vertices = 4) int a) // ERROR -{ - ouuaa6.a = vec4(1.0); -} - -layout(line_strip, points, triangle_strip, stream = 3, points) out; // ERROR, changing output primitive -layout(line_strip, points, stream = 3) out; // ERROR, changing output primitive -layout(triangle_strip) in; // ERROR, not an input primitive -layout(triangle_strip) uniform; // ERROR -layout(triangle_strip) out vec4 badv4; // ERROR, not on a variable -layout(triangle_strip) in vec4 bad2v4[]; // ERROR, not on a variable or input -layout(invocations = 3) out outbn { int a; }; // 2 ERROR, not on a block, not until 4.0 -out outbn2 { - layout(invocations = 3) int a; // 2 ERRORs, not on a block member, not until 4.0 - layout(max_vertices = 3) int b; // ERROR, not on a block member - layout(triangle_strip) int c; // ERROR, not on a block member -} outbi; - -layout(lines) out; // ERROR, not on output -layout(lines_adjacency) in; -layout(triangles) in; // ERROR, can't change it -layout(triangles_adjacency) in; // ERROR, can't change it -layout(invocations = 4) in; // ERROR, not until 4.0 - -in inbn { - layout(stream = 2) int a; // ERROR, stream on input -} inbi[]; - -in sameName { - int a15; -} insn[]; - -out sameName { - float f15; -}; - -uniform sameName { - bool b15; -}; - -float summ = gl_MaxVertexAttribs + - gl_MaxVertexUniformComponents + - gl_MaxVaryingFloats + - gl_MaxVaryingComponents + - gl_MaxVertexOutputComponents + - gl_MaxGeometryInputComponents + - gl_MaxGeometryOutputComponents + - gl_MaxFragmentInputComponents + - gl_MaxVertexTextureImageUnits + - gl_MaxCombinedTextureImageUnits + - gl_MaxTextureImageUnits + - gl_MaxFragmentUniformComponents + - gl_MaxDrawBuffers + - gl_MaxClipDistances + - gl_MaxGeometryTextureImageUnits + - gl_MaxGeometryOutputVertices + - gl_MaxGeometryTotalOutputComponents + - gl_MaxGeometryUniformComponents + - gl_MaxGeometryVaryingComponents; - -void fooe1() -{ - gl_ViewportIndex = gl_MaxViewports - 1; -} - -#extension GL_ARB_viewport_array : enable - -void fooe2() -{ - gl_ViewportIndex = gl_MaxViewports - 1; -} - -out int gl_ViewportIndex; diff --git a/deps/glslang/Test/150.tesc b/deps/glslang/Test/150.tesc deleted file mode 100644 index 66c0f3ea..00000000 --- a/deps/glslang/Test/150.tesc +++ /dev/null @@ -1,34 +0,0 @@ -#version 150 - -#extension GL_ARB_tessellation_shader : enable - -layout(vertices = 4) out; -int outa[gl_out.length()]; - -patch out vec4 patchOut; - -void main() -{ - barrier(); - - int a = gl_MaxTessControlInputComponents + - gl_MaxTessControlOutputComponents + - gl_MaxTessControlTextureImageUnits + - gl_MaxTessControlUniformComponents + - gl_MaxTessControlTotalOutputComponents; - - vec4 p = gl_in[1].gl_Position; - float ps = gl_in[1].gl_PointSize; - float cd = gl_in[1].gl_ClipDistance[2]; - - int pvi = gl_PatchVerticesIn; - int pid = gl_PrimitiveID; - int iid = gl_InvocationID; - - gl_out[gl_InvocationID].gl_Position = p; - gl_out[gl_InvocationID].gl_PointSize = ps; - gl_out[gl_InvocationID].gl_ClipDistance[1] = cd; - - gl_TessLevelOuter[3] = 3.2; - gl_TessLevelInner[1] = 1.3; -} diff --git a/deps/glslang/Test/150.tese b/deps/glslang/Test/150.tese deleted file mode 100644 index aea65e81..00000000 --- a/deps/glslang/Test/150.tese +++ /dev/null @@ -1,35 +0,0 @@ -#version 150 - -#extension GL_ARB_tessellation_shader : enable - -layout(quads, cw) in; -layout(fractional_odd_spacing) in; -layout(point_mode) in; -patch in vec4 patchIn; - -void main() -{ - barrier(); // ERROR - - int a = gl_MaxTessEvaluationInputComponents + - gl_MaxTessEvaluationOutputComponents + - gl_MaxTessEvaluationTextureImageUnits + - gl_MaxTessEvaluationUniformComponents + - gl_MaxTessPatchComponents + - gl_MaxPatchVertices + - gl_MaxTessGenLevel; - - vec4 p = gl_in[1].gl_Position; - float ps = gl_in[1].gl_PointSize; - float cd = gl_in[1].gl_ClipDistance[2]; - - int pvi = gl_PatchVerticesIn; - int pid = gl_PrimitiveID; - vec3 tc = gl_TessCoord; - float tlo = gl_TessLevelOuter[3]; - float tli = gl_TessLevelInner[1]; - - gl_Position = p; - gl_PointSize = ps; - gl_ClipDistance[2] = cd; -} diff --git a/deps/glslang/Test/150.vert b/deps/glslang/Test/150.vert deleted file mode 100644 index f9a920ce..00000000 --- a/deps/glslang/Test/150.vert +++ /dev/null @@ -1,45 +0,0 @@ -#version 150 core - -#ifndef GL_core_profile -# error standard macro GL_core_profile not defined -#endif - -in vec4 iv4; - -uniform float ps; - -invariant gl_Position; - -void main() -{ - gl_Position = iv4; - gl_PointSize = ps; - gl_ClipDistance[2] = iv4.x; - gl_ClipVertex = iv4; -} - -out float gl_ClipDistance[4]; - -uniform foob { - int a[]; -}; -int a[5]; // ERROR, resizing user-block member - -in double dvarerr; // Error since extension GL_ARB_vertex_attrib_64bit is not enabled -#extension GL_ARB_vertex_attrib_64bit: enable -in double dvar; -in dvec2 dv2var; -in dvec3 dv3var; -in dvec4 dv4var; -in dmat2 dmat2var; -in dmat3 dmat3var; -in dmat4 dmat4var; -in dmat2x3 dmat23var; -in dmat2x4 dmat24var; -in dmat3x2 dmat32var; -in dmat3x4 dmat34var; -in dmat4x2 dmat42var; -in dmat4x3 dmat43var; - -#line 3000 -#error line of this error should be 3001 diff --git a/deps/glslang/Test/300.frag b/deps/glslang/Test/300.frag deleted file mode 100644 index 279864a9..00000000 --- a/deps/glslang/Test/300.frag +++ /dev/null @@ -1,194 +0,0 @@ -#version 300 es -void nodef1(float f); // ERROR, no default precision -uniform sampler2D s2D; -uniform lowp sampler3D s3D; -uniform samplerCube sCube; -uniform lowp samplerCubeShadow sCubeShadow; -uniform lowp sampler2DShadow s2DShadow; -uniform lowp sampler2DArray s2DArray; -uniform lowp sampler2DArrayShadow s2DArrayShadow; - -uniform lowp isampler2D is2D; -uniform lowp isampler3D is3D; -uniform lowp isamplerCube isCube; -uniform lowp isampler2DArray is2DArray; - -uniform lowp usampler2D us2D; -uniform lowp usampler3D us3D; -uniform lowp usamplerCube usCube; -uniform lowp usampler2DArray us2DArray; -precision lowp float; -in float c1D; -in vec2 c2D; -in vec3 c3D; -smooth vec4 c4D; - -flat in int ic1D; -flat in ivec2 ic2D; -flat in ivec3 ic3D; -flat in ivec4 ic4D; -noperspective in vec4 badv; // ERROR -in sampler2D bads; // ERROR -precision lowp uint; // ERROR - -struct s { - int i; - sampler2D s; -}; - -in s badout; // ERROR, can't contain a sampler - // ERROR, can't have int in struct without flat -struct S2 { - vec3 c; - float f; -}; - -in S2 s2; - -out vec3 sc; -out float sf; - -uniform sampler2D arrayedSampler[5]; - -void main() -{ - float f; - vec4 v; - v = texture(s2D, c2D); - v = textureProj(s3D, c4D); - v = textureLod(s2DArray, c3D, 1.2); - f = textureOffset(s2DShadow, c3D, ic2D, c1D); // ERROR, offset argument not constant - v = texelFetch(s3D, ic3D, ic1D); - v = texelFetchOffset(arrayedSampler[2], ic2D, 4, ic2D); // ERROR, offset argument not constant - f = textureLodOffset(s2DShadow, c3D, c1D, ic2D); - v = textureProjLodOffset(s2D, c3D, c1D, ic2D); - v = textureGrad(sCube, c3D, c3D, c3D); - f = textureGradOffset(s2DArrayShadow, c4D, c2D, c2D, ic2D); - v = textureProjGrad(s3D, c4D, c3D, c3D); - v = textureProjGradOffset(s2D, c3D, c2D, c2D, ic2D); - v = texture(arrayedSampler[ic1D], c2D); // ERROR - - ivec4 iv; - iv = texture(is2D, c2D); - iv = textureProjOffset(is2D, c4D, ic2D); - iv = textureProjLod(is2D, c3D, c1D); - iv = textureProjGrad(is2D, c3D, c2D, c2D); - iv = texture(is3D, c3D, 4.2); - iv = textureLod(isCube, c3D, c1D); - iv = texelFetch(is2DArray, ic3D, ic1D); - - iv.xy = textureSize(sCubeShadow, 2); - - float precise; - double boo; // ERROR - dvec2 boo2; // ERROR - dvec3 boo3; // ERROR - dvec4 boo4; // ERROR - - f += gl_FragCoord.y; - gl_FragDepth = f; - - sc = s2.c; - sf = s2.f; - - sinh(c1D) + - cosh(c1D) * tanh(c2D); - asinh(c4D) + acosh(c4D); - atanh(c3D); -} - -uniform multi { - int[2] a[3]; // ERROR - int[2][3] b; // ERROR - int c[2][3]; // ERROR -} multiInst[2][3]; // ERROR - -out vec4 colors[4]; - -void foo() -{ - colors[2] = c4D; - colors[ic1D] = c4D; // ERROR -} - -uniform s st1; -uniform s st2; - -void foo13(s inSt2) -{ - if (st1 == st2); // ERROR - if (st1 != st2); // ERROR - st1.s == st2.s; // ERROR - inSt2 = st1; // ERROR - inSt2 == st1; // ERROR -} - -void foo23() -{ - textureOffset(s2DShadow, c3D, ivec2(-8, 7), c1D); - textureOffset(s2DShadow, c3D, ivec2(-9, 8), c1D); -} - -void foo324(void) -{ - float p = pow(3.2, 4.6); - p += sin(0.4); - p += distance(vec2(10.0, 11.0), vec2(13.0, 15.0)); // 5 - p += dot(vec3(2,3,5), vec3(-2,-1,4)); // 13 - vec3 c3 = cross(vec3(3,-3,1), vec3(4,9,2)); // (-15, -2, 39) - c3 += faceforward(vec3(1,2,3), vec3(2,3,5), vec3(-2,-1,4)); // (-1,-2,-3) - c3 += faceforward(vec3(1,2,3), vec3(-2,-3,-5), vec3(-2,-1,4)); // (1,2,3) - vec2 c2 = reflect(vec2(1,3), vec2(0,1)); // (1,-3) - c2 += refract(vec2(1,3), vec2(0,1), 1.0); // (1,-3) - c2 += refract(vec2(1,3), vec2(0,1), 3.0); - c2 += refract(vec2(1,0.1), vec2(0,1), 5.0); // (0,0) - mat3x2 m32 = outerProduct(vec2(2,3), vec3(5,7,11));// rows: (10, 14, 22), (15, 21, 33) -} - -uniform mediump; // ERROR - -layout(early_fragment_tests) in; // ERROR - -// Test extension GL_EXT_shader_integer_mix -#extension GL_EXT_shader_integer_mix : enable -bool b1, b2, b; -int x,y; -uint z,w; - -void testmix() -{ - int ival = mix(x, y, b); - ivec2 iv2 = mix(ivec2(x), ivec2(y), bvec2(b)); - ivec3 iv3 = mix(ivec3(x), ivec3(y), bvec3(b)); - ivec4 iv4 = mix(ivec4(x), ivec4(x), bvec4(b)); - uint uiv = mix(z, w, b); - uvec2 uv2 = mix(uvec2(z), uvec2(z), bvec2(b)); - uvec3 uv3 = mix(uvec3(z), uvec3(z), bvec3(b)); - uvec4 uv4 = mix(uvec4(z), uvec4(z), bvec4(b)); - bool bv = mix(b1, b2, b); - bvec2 bv2 = mix(bvec2(b1), bvec2(b2), bvec2(b)); - bvec3 bv3 = mix(bvec3(b1), bvec3(b2), bvec3(b)); - bvec4 bv4 = mix(bvec4(b1), bvec4(b2), bvec4(b)); -} - -#extension GL_EXT_shader_integer_mix : disable -void testmixFail() -{ - int ival = mix(x, y, b); // Error since extenson GL_EXT_shader_integer_mix is disabled -} - -// Test layout qualifier "index" with extension GL_EXT_blend_func_extended -layout(location = 0, index = 1) out vec4 outVarFail; // Error Index supported with extension GL_EXT_blend_func_extended enabled -#extension GL_EXT_blend_func_extended : enable -layout(location = 0, index = 2) out vec4 outVarPass; - -#ifndef GL_FRAGMENT_PRECISION_HIGH -#error missing GL_FRAGMENT_PRECISION_HIGH -#endif - -invariant in; // ERROR -invariant in vec4; // ERROR -invariant in vec4 fooinv; // ERROR - -float imageBuffer; // ERROR, reserved -float uimage2DRect; // ERROR, reserved diff --git a/deps/glslang/Test/300.vert b/deps/glslang/Test/300.vert deleted file mode 100644 index daf98b83..00000000 --- a/deps/glslang/Test/300.vert +++ /dev/null @@ -1,204 +0,0 @@ -#version 300 es - -uniform mat4x3 m43; -uniform mat3x3 m33; -uniform mat4x4 m44; - -in vec3 v3; -varying vec2 v2; // ERROR, varying reserved -in vec4 bad[10]; // ERROR, no arrayed inputs -highp in vec4 badorder; // ERROR, incorrect qualifier order -out invariant vec4 badorder2; // ERROR, incorrect qualifier order -in centroid vec4 badorder4; // ERROR, incorrect qualifier order -out flat vec4 badorder3; // ERROR, incorrect qualifier order -void bar(in const float a); // ERROR, incorrect qualifier order -void bar2(highp in float b); // ERROR, incorrect qualifier order -smooth flat out vec4 rep; // ERROR, replicating interpolation qualification -centroid sample out vec4 rep2; // ERROR, replicating auxiliary qualification -in uniform vec4 rep3; // ERROR, replicating storage qualification - -struct S { - vec3 c; - float f; -}; - -out S s; - -void main() -{ - int id = gl_VertexID + gl_InstanceID; - - int c0 = gl_MaxVertexAttribs; - int c1 = gl_MaxVertexUniformVectors; - int c2 = gl_MaxVertexOutputVectors; - int c3 = gl_MaxFragmentInputVectors; - int c4 = gl_MaxVertexTextureImageUnits; - int c5 = gl_MaxCombinedTextureImageUnits; - int c6 = gl_MaxTextureImageUnits; - int c7 = gl_MaxFragmentUniformVectors; - int c8 = gl_MaxDrawBuffers; - int c9 = gl_MinProgramTexelOffset; - int c10 = gl_MaxProgramTexelOffset; - - mat3x4 tm = transpose(m43); - highp float dm = determinant(m44); - mat3x3 im = inverse(m33); - - mat3x2 op = outerProduct(v2, v3); - - gl_Position = m44[2]; - gl_PointSize = v2.y; - - s.c = v3; - s.f = dm; - -#ifdef GL_ES -#error GL_ES is set -#else -#error GL_ES is not set -#endif -} - -float badsize[]; // ERROR -float[] badsize2; // ERROR -uniform ub { - int a[]; // ERROR -} ubInst[]; // ERROR -void foo(int a[]); // ERROR -float okayA[] = float[](3.0f, 4.0F); // Okay - -out vec3 newV; -void newVFun() -{ - newV = v3; -} - -invariant newV; // ERROR, variable already used -in vec4 invIn; -invariant invIn; // ERROR, in v300 -out S s2; -invariant s2; -invariant out S s3; -flat out int; - -uniform ub2 { - float f; -} a; - -uniform ub2 { // ERROR redeclaration of block name (same instance name) - float g; -} a; - -uniform ub2 { // ERROR redeclaration of block name (different instance name) - float f; -} c; - -uniform ub2 { // ERROR redeclaration of block name (no instance name) - float f123; -}; - -uniform ub3 { - bool b23; -}; - -uniform ub3 { // ERROR redeclaration of block name (no instance name in first or declared) - bool b234; -}; - -precision lowp sampler3D; -precision lowp sampler2DShadow; -precision lowp sampler2DArrayShadow; - -uniform sampler2D s2D; -uniform sampler3D s3D; -uniform sampler2DShadow s2DS; -uniform sampler2DArrayShadow s2DAS; -in vec2 c2D; - -void foo23() -{ - ivec2 x1 = textureSize(s2D, 2); - textureSize(s2D); // ERROR, no lod - ivec3 x3 = textureSize(s2DAS, -1); - textureSize(s2DAS); // ERROR, no lod - vec4 x4 = texture(s2D, c2D); - texture(s2D, c2D, 0.2); // ERROR, bias - vec4 x5 = textureProjOffset(s3D, vec4(0.2), ivec3(1)); - textureProjOffset(s3D, vec4(0.2), ivec3(1), .03); // ERROR, bias - float x6 = textureProjGradOffset(s2DS, invIn, vec2(4.2), vec2(5.3), ivec2(1)); -} - -int fgfg(float f, mediump int i); -int fgfg(float f, highp int i); // ERROR, precision qualifier difference - -int fgfgh(float f, const in mediump int i); -int fgfgh(float f, in mediump int i); // ERROR, precision qualifier difference - -void foo2349() -{ - float[] x = float[] (1.0, 2.0, 3.0); - float[] y = x; - float[3] z = x; - float[3] w; - w = y; -} - -int[] foo213234(); // ERROR -int foo234234(float[]); // ERROR -int foo234235(vec2[] v); // ERROR -precision highp float[2]; // ERROR - -int fffg(float f); -int fffg(float f); - -int gggf(float f); -int gggf(float f) { return 2; } -int gggf(float f); - -int agggf(float f) { return 2; } -int agggf(float f); - -out struct Ssss { float f; } ssss; - -uniform Bblock { - int a; -} Binst; -int Bfoo; - -layout(std140) Binst; // ERROR -layout(std140) Bblock; // ERROR -layout(std140) Bfoo; // ERROR - -layout(std430) uniform B430 { int a; } B430i; // ERROR - -struct SNA { - int a[]; // ERROR -}; - -void fooDeeparray() -{ - float[] x = float[] (1.0, 2.0, 3.0), - y = float[] (1.0, 2.0, 3.0, 4.0); - float xp[3], yp[4]; - xp = x; - yp = y; - xp = y; // ERROR, wrong size - yp = x; // ERROR, wrong size -} - -layout(num_views = 2) in; // ERROR, no extension - -void mwErr() -{ - gl_ViewID_OVR; // ERROR, no extension -} - -#extension GL_OVR_multiview : enable - -layout(num_views = 2) uniform float mwUniform; // ERROR, must be global -layout(num_views = 2) in; // OK - -void mwOk() -{ - gl_ViewID_OVR; -} diff --git a/deps/glslang/Test/300BuiltIns.frag b/deps/glslang/Test/300BuiltIns.frag deleted file mode 100644 index 89233e26..00000000 --- a/deps/glslang/Test/300BuiltIns.frag +++ /dev/null @@ -1,76 +0,0 @@ -#version 300 es - -int imax, imin; -uint umax, umin; - -vec3 x, y; // ERROR, needs default precision -bvec3 bv; - -uint uy; -uvec2 uv2c; -uvec2 uv2y; -uvec2 uv2x; -uvec4 uv4y; - -ivec3 iv3a; -ivec3 iv3b; - -ivec4 iv4a; -ivec4 iv4b; - -float f; - -vec2 v2a, v2b; -vec4 v4; - -void main() -{ - // 1.3 int - vec3 v = mix(x, y, bv); - ivec4 iv10 = abs(iv4a); - ivec4 iv11 = sign(iv4a); - ivec4 iv12 = min(iv4a, iv4b); - ivec4 iv13 = min(iv4a, imin); - uvec2 u = min(uv2x, uv2y); - uvec4 uv = min(uv4y, uy); - ivec3 iv14 = max(iv3a, iv3b); - ivec4 iv15 = max(iv4a, imax); - uvec2 u10 = max(uv2x, uv2y); - uvec2 u11 = max(uv2x, uy); - ivec4 iv16 = clamp(iv4a, iv4a, iv4b); - ivec4 iv17 = clamp(iv4a, imin, imax); - uvec2 u12 = clamp(uv2x, uv2y, uv2c); - uvec4 uv10 = clamp(uv4y, umin, umax); - - // 1.3 float - vec3 modfOut; - vec3 v11 = modf(x, modfOut); - - float t = trunc(f); - vec2 v12 = round(v2a); - vec2 v13 = roundEven(v2a); - bvec2 b10 = isnan(v2a); - bvec4 b11 = isinf(v4); - - // 3.3 float - int i = floatBitsToInt(f); - uvec4 uv11 = floatBitsToUint(v4); - vec4 v14 = intBitsToFloat(iv4a); - vec2 v15 = uintBitsToFloat(uv2c); - - // 4.0 pack - uint u19 = packSnorm2x16(v2a); - vec2 v20 = unpackSnorm2x16(uy); - uint u15 = packUnorm2x16(v2a); - vec2 v16 = unpackUnorm2x16(uy); - uint u17 = packHalf2x16(v2b); - vec2 v18 = unpackHalf2x16(uy); - - // not present - noise2(v18); // ERROR, not present - - float t__; // ERROR, no __ until revision 310 - - // ERROR, no __ until revision 310 - #define __D -} diff --git a/deps/glslang/Test/300block.frag b/deps/glslang/Test/300block.frag deleted file mode 100644 index 9820e2a9..00000000 --- a/deps/glslang/Test/300block.frag +++ /dev/null @@ -1,58 +0,0 @@ -#version 300 es - -precision mediump float; - -struct S { - vec4 u; - uvec4 v; - lowp isampler3D sampler; - vec3 w; - struct T1 { // ERROR - int a; - } t; -}; - -uniform S s; - -uniform fooBlock { - uvec4 bv; - uniform mat2 bm2; - lowp isampler2D sampler; // ERROR - struct T2 { // ERROR - int a; - } t; - S fbs; // ERROR, contains a sampler -}; - -uniform barBlock { - uvec4 nbv; - int ni; -} inst; - -uniform barBlockArray { - uvec4 nbv; - int ni; -} insts[4]; - -uniform unreferenced { - float f; - uint u; -}; - -void main() -{ - texture(s.sampler, vec3(inst.ni, bv.y, insts[2].nbv.z)); - insts[s.v.x]; // ERROR - fooBlock; // ERROR - mat4(s); // ERROR - int insts; - float barBlock; - mat4(barBlock); - mat4(unreferenced); // ERROR, bad type - ++s; // ERROR - inst - 1; // ERROR - ++barBlock; - 2 * barBlockArray; // ERROR -} - -int fooBlock; // ERROR, redef. diff --git a/deps/glslang/Test/300layout.frag b/deps/glslang/Test/300layout.frag deleted file mode 100644 index 32a6b026..00000000 --- a/deps/glslang/Test/300layout.frag +++ /dev/null @@ -1,19 +0,0 @@ -#version 300 es -precision mediump float; -in vec4 pos; -layout (location = 2) in vec4 color; // ERROR - -layout(location = 1) out vec4 c; -layout(location = 3) out vec4 p; -layout(location = 4) out vec4 q[2]; - -void main() -{ - c = color; - p = pos; - q[1] = pos; -} - -layout(location = 40) out float ca[4]; // ERROR, overlap, ERROR too big -layout(location = 41) out float cb[2]; // ERROR, overlap, ERROR too big -layout(location = 39) out float cc[6]; // ERROR, overlap, ERROR too big diff --git a/deps/glslang/Test/300layout.vert b/deps/glslang/Test/300layout.vert deleted file mode 100644 index 06d1206d..00000000 --- a/deps/glslang/Test/300layout.vert +++ /dev/null @@ -1,57 +0,0 @@ -#version 300 es - -struct s { vec4 v; }; - -layout(location = 7) in vec3 c; -layout(LocatioN = 3) in vec4 p; -layout(LocatioN = 9) in vec4 q[4]; // ERROR, no array -layout(LocatioN = 10) in s r[4]; // ERROR, no struct, ERROR, location overlap -out vec4 pos; -out vec3 color; - -layout(shared, column_major) uniform mat4 badm4; // ERROR -layout(shared, column_major, row_major) uniform; // default is now shared and row_major - -layout(std140) uniform Transform { // layout of this block is std140 - mat4 M1; // row_major - layout(column_major) mat4 M2; // column major - mat3 N1; // row_major - centroid float badf; // ERROR - in float badg; // ERROR - layout(std140) float bad1; - layout(shared) float bad2; - layout(packed) float bad3; -} tblock; - -uniform T2 { // layout of this block is shared - bool b; - mat4 t2m; -}; - -layout(column_major) uniform T3 { // shared and column_major - mat4 M3; // column_major - layout(row_major) mat4 M4; // row major - mat3 N2; // column_major - int b; // ERROR, redefinition (needs to be last member of block for testing, following members are skipped) -}; - -out badout { // ERROR - float f; -}; - -layout (location = 10) out vec4 badoutA; // ERROR - -void main() -{ - pos = p * (tblock.M1 + tblock.M2 + M4 + M3 + t2m); - color = c * tblock.N1; -} - -shared vec4 compute_only; // ERROR - -layout(packed) uniform; - -layout(packed) uniform float aoeuntaoeu; // ERROR, packed on variable - -layout(location = 40) in float cd; -layout(location = 37) in mat4x3 ce; // ERROR, overlap diff --git a/deps/glslang/Test/300link.frag b/deps/glslang/Test/300link.frag deleted file mode 100644 index 5d39cc0f..00000000 --- a/deps/glslang/Test/300link.frag +++ /dev/null @@ -1,8 +0,0 @@ -#version 300 es - -precision highp float; - -out vec4 color1; -out vec4 color2; - -void main() {} diff --git a/deps/glslang/Test/300link2.frag b/deps/glslang/Test/300link2.frag deleted file mode 100644 index 7800ac9b..00000000 --- a/deps/glslang/Test/300link2.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 300 es -precision mediump float; -in vec4 pos; - -layout(location = 1) out vec4 c; -layout(location = 5) out vec4 p; -layout(location = 9) out vec4 q[2]; - -void main() -{ -} diff --git a/deps/glslang/Test/300link3.frag b/deps/glslang/Test/300link3.frag deleted file mode 100644 index 410592c6..00000000 --- a/deps/glslang/Test/300link3.frag +++ /dev/null @@ -1,7 +0,0 @@ -#version 300 es - -precision highp float; - -out vec4 color1; - -void main() {} diff --git a/deps/glslang/Test/300operations.frag b/deps/glslang/Test/300operations.frag deleted file mode 100644 index 5992987a..00000000 --- a/deps/glslang/Test/300operations.frag +++ /dev/null @@ -1,135 +0,0 @@ -#version 300 es - -uniform block { - mediump float f; -} instanceName; - -struct S { - int i; -} s; - -float a[5]; - -void main() -{ - bool b; - float f; - int i; - uint u; - bvec3 b3; - vec3 v3; - ivec3 iv3; - uvec3 uv3; - vec4 v4; - ivec4 iv4; - uvec4 uv4; - mat2 m2; - mat4 m4; - - // These are all errors: - instanceName + instanceName; - s + s; - i + f; - u + f; - u + i; - iv3 *= iv4; - iv4 / uv4; - i - v3; - iv3 + uv3; - a * a; - b / b; - - f % f; - i % f; - f % u; - instanceName++; - ++s; - a--; - ++b3; - - iv3 < uv3; - m2 > m2; - m2 != m4; - i >= u; - a <= a; - b > b; - - b && b3; - b3 ^^ b3; - b3 || b; - i && i; - u || u; - m2 ^^ m2; - - !u; - !i; - !m2; - !v3; - !a; - - ~f; - ~m4; - ~v3; - ~a; - ~instanceName; - - i << iv3; - u << uv3; - i >> f; - f >> i; - m4 >> i; - a >> u; - iv3 >> iv4; - - i & u; - u &= uv3; - i | uv3; - u & f; - m2 | m2; - s ^ s; - (f = f) = f; - - // These are all okay: - f * v4; - u + u; - uv4 / u; - iv3 -= iv3; - - i %= 3; - uv3 % 4u; - --m2; - iv4++; - - m4 != m4; - m2 == m2; - i <= i; - a == a; - s != s; - - b && b; - b || b; - b ^^ b; - - !b, uv3; - - ~i; - ~u; - ~uv3; - ~iv3; - - uv3 <<= i; - i >> i; - u << u; - iv3 >> iv3; - - i & i; - u | u; - iv3 ^ iv3; - u & uv3; - uv3 | u; - uv3 &= u; - int arr[0x222 & 0xf]; - arr[1]; // size 2 - int arr2[(uvec2(0, 0x2) | 0x1u).y]; - arr2[2]; // size 3 -} diff --git a/deps/glslang/Test/300samplerExternal.frag b/deps/glslang/Test/300samplerExternal.frag deleted file mode 100644 index 3724f8e0..00000000 --- a/deps/glslang/Test/300samplerExternal.frag +++ /dev/null @@ -1,41 +0,0 @@ -#version 300 es - -#extension GL_OES_EGL_image_external_essl3 : enable - -uniform samplerExternalOES sExt; -precision mediump samplerExternalOES; -uniform samplerExternalOES mediumExt; -uniform highp samplerExternalOES highExt; - -void main() -{ - texture2D(sExt, vec2(0.2)); // ERROR - texture2D(mediumExt, vec2(0.2)); // ERROR - texture2D(highExt, vec2(0.2)); // ERROR - texture2DProj(sExt, vec3(0.3)); // ERROR - texture2DProj(sExt, vec4(0.3)); // ERROR - - int lod = 0; - highp float bias = 0.01; - textureSize(sExt, lod); - texture(sExt, vec2(0.2)); - texture(sExt, vec2(0.2), bias); - textureProj(sExt, vec3(0.2)); - textureProj(sExt, vec3(0.2), bias); - textureProj(sExt, vec4(0.2)); - textureProj(sExt, vec4(0.2), bias); - texelFetch(sExt, ivec2(4), lod); - - texture3D(sExt, vec3(0.3)); // ERROR - texture2DProjLod(sExt, vec3(0.3), 0.3); // ERROR - texture(sExt, vec3(0.3)); // ERROR - textureProjLod(sExt, vec3(0.3), 0.3); // ERROR -} - -#extension GL_OES_EGL_image_external_essl3 : disable - -#extension GL_OES_EGL_image_external : enable -uniform samplerExternalOES badExt; // ERROR -#extension GL_OES_EGL_image_external : disable - -uniform samplerExternalOES badExt; // ERROR diff --git a/deps/glslang/Test/300samplerExternalYUV.frag b/deps/glslang/Test/300samplerExternalYUV.frag deleted file mode 100644 index add21285..00000000 --- a/deps/glslang/Test/300samplerExternalYUV.frag +++ /dev/null @@ -1,38 +0,0 @@ -#version 300 es - -#extension GL_EXT_YUV_target : enable - -uniform __samplerExternal2DY2YEXT sExt; -precision mediump __samplerExternal2DY2YEXT; -uniform __samplerExternal2DY2YEXT mediumExt; -uniform highp __samplerExternal2DY2YEXT highExt; - -void main() -{ - texture2D(sExt, vec2(0.2)); // ERROR - texture2D(mediumExt, vec2(0.2)); // ERROR - texture2D(highExt, vec2(0.2)); // ERROR - texture2DProj(sExt, vec3(0.3)); // ERROR - texture2DProj(sExt, vec4(0.3)); // ERROR - - int lod = 0; - highp float bias = 0.01; - textureSize(sExt, lod); - texture(sExt, vec2(0.2)); - texture(sExt, vec2(0.2), bias); - textureProj(sExt, vec3(0.2)); - textureProj(sExt, vec3(0.2), bias); - textureProj(sExt, vec4(0.2)); - textureProj(sExt, vec4(0.2), bias); - texelFetch(sExt, ivec2(4), lod); - - texture3D(sExt, vec3(0.3)); // ERROR - texture2DProjLod(sExt, vec3(0.3), 0.3); // ERROR - texture(sExt, vec3(0.3)); // ERROR - textureProjLod(sExt, vec3(0.3), 0.3); // ERROR -} - -#extension GL_EXT_YUV_target : disable - -uniform __samplerExternal2DY2YEXT badExt; // ERROR - diff --git a/deps/glslang/Test/300scope.vert b/deps/glslang/Test/300scope.vert deleted file mode 100644 index 162e9982..00000000 --- a/deps/glslang/Test/300scope.vert +++ /dev/null @@ -1,74 +0,0 @@ -#version 300 es - -int f(int a, int b, int c) -{ - int a = b; // ERROR, redefinition - - { - float a = float(a) + 1.0; - } - - return a; -} - -int f(int a, int b, int c); // okay to redeclare - -bool b; -float b(int a); // ERROR: redefinition - -float c(int a); -bool c; // ERROR: redefinition - -float f; // ERROR: redefinition -float tan; // ERROR: redefines built-in function -float sin(float x); // ERROR: can't redefine built-in functions -float cos(float x) // ERROR: can't redefine built-in functions -{ - return 1.0; -} -bool radians(bool x) // ERROR: can't overload built-in functions -{ - return true; -} - -invariant gl_Position; - -void main() -{ - int g(); // ERROR: no local function declarations - g(); - - float sin; // okay - sin; - sin(0.7); // ERROR, use of hidden function - f(1,2,3); - - float f; // hides f() - f = 3.0; - - gl_Position = vec4(f); - - for (int f = 0; f < 10; ++f) - ++f; - - int x = 1; - { - float x = 2.0, /* 2nd x visible here */ y = x; // y is initialized to 2 - int z = z; // ERROR: z not previously defined. - } - { - int x = x; // x is initialized to '1' - } - - struct S - { - int x; - }; - { - S S = S(0); // 'S' is only visible as a struct and constructor - S.x; // 'S' is now visible as a variable - } - - int degrees; - degrees(3.2); // ERROR, use of hidden built-in function -} diff --git a/deps/glslang/Test/310.comp b/deps/glslang/Test/310.comp deleted file mode 100644 index 33ecbf01..00000000 --- a/deps/glslang/Test/310.comp +++ /dev/null @@ -1,256 +0,0 @@ -#version 310 es - -layout(local_size_x = 2) in; -layout(local_size_x = 16) in; // ERROR, changing -layout(local_size_z = 4096) in; // ERROR, too large -layout(local_size_x = 2) in; -layout(local_size_y = 0) in; // ERROR, 0 not allowed -const int total = gl_MaxComputeWorkGroupCount.y - + gl_MaxComputeUniformComponents - + gl_MaxComputeTextureImageUnits - + gl_MaxComputeImageUniforms - + gl_MaxComputeAtomicCounters - + gl_MaxComputeAtomicCounterBuffers; - -buffer ShaderStorageBlock -{ - int value; - float values[]; -}; - -buffer InvalidShaderStorageBlock -{ - float values[]; // ERROR - int value; -} invalid; - -void main() -{ - barrier(); - memoryBarrier(); - memoryBarrierAtomicCounter(); - memoryBarrierBuffer(); - memoryBarrierShared(); - memoryBarrierImage(); - groupMemoryBarrier(); - value = int(values[gl_LocalInvocationIndex]); -} - -layout(location = 2) in vec3 v3; // ERROR -in float f; // ERROR -out float fo; // ERROR - -shared vec4 s; -layout(location = 2) shared vec4 sl; // ERROR -shared float fs = 4.2; // ERROR - -layout(local_size_x = 2, local_size_y = 3, local_size_z = 4) out; // ERROR - -int arrX[gl_WorkGroupSize.x]; -int arrY[gl_WorkGroupSize.y]; -int arrZ[gl_WorkGroupSize.z]; - -readonly buffer roblock -{ - int value; - float values[]; -} ro; - -void foo() -{ - ro.values[2] = 4.7; // ERROR, readonly - ro.values.length(); - ++s; -} - -buffer vec4 v; // ERROR - -uniform usampler2D us2dbad; // ERROR, default precision - -precision highp usampler2D; -precision highp iimage2DArray; -precision highp iimage2D; - -uniform usampler2D us2d; - -uniform iimage2DArray ii2dabad; // ERROR, not writeonly -uniform writeonly iimage2DArray ii2da; - -layout(r32i) uniform iimage2D iimg2D; -layout(rgba32i) uniform readonly iimage2D iimg2Drgba; -layout(rgba32f) uniform readonly image2D img2Drgba; // ERROR, no default -layout(r32ui) uniform uimage2D uimg2D; // ERROR, no default - -void qux() -{ - int i = 4; - imageAtomicCompSwap(iimg2D, ivec2(i,i), i, i);// ERROR no longer in 310 - imageAtomicAdd(uimg2D, ivec2(i,i), uint(i)); // ERROR no longer in 310 - imageAtomicMin(iimg2Drgba, ivec2(i,i), i); // ERROR no longer in 310 // ERROR iimg2Drgba does not have r32i layout - imageAtomicMax(img2Drgba, ivec2(i,i), i); // ERROR no longer in 310 // ERROR img2Drgba is not integer image - ivec4 pos = imageLoad(iimg2D, ivec2(i,i)); - imageStore(ii2da, ivec3(i,i,i), ivec4(0)); - imageLoad(img2Drgba, ivec2(i,i)); - imageLoad(ii2da, ivec3(i,i,i)); // ERROR, drops writeonly -} - -volatile float vol; // ERROR, not an image -readonly int vol2; // ERROR, not an image - -void passr(coherent readonly iimage2D image) -{ -} - -layout(r32i) coherent readonly uniform iimage2D qualim1; -layout(r32i) coherent restrict readonly uniform iimage2D qualim2; - -void passrc() -{ - passr(qualim1); // ERROR, changing formats - passr(qualim2); // ERROR, drops restrict, ERROR, changing formats - passr(iimg2D); // ERROR, changing formats -} - -highp layout(rg8i) uniform readonly uimage2D i1bad; // ERROR, type mismatch -highp layout(rgba32i) uniform readonly image2D i2bad; // ERROR, type mismatch -highp layout(rgba32f) uniform readonly uimage2D i3bad; // ERROR, type mismatch -layout(r8_snorm) uniform readonly iimage2D i4bad; // ERROR, type mismatch -layout(rgba32ui) uniform readonly iimage2D i5bad; // ERROR, type mismatch -layout(r8ui) uniform readonly iimage2D i6bad; // ERROR, type mismatch - -layout(binding = 0) uniform atomic_uint counter; - -uint func(atomic_uint c) -{ - return atomicCounterIncrement(c); -} - -uint func2(out atomic_uint c) // ERROR, output -{ - return counter; // ERROR, type mismatch - return atomicCounter(counter); -} - -void mainAC() -{ - atomic_uint non_uniform_counter; // ERROR - uint val = atomicCounter(counter); - atomicCounterDecrement(counter); -} - -layout(binding = 1) uniform mediump atomic_uint counterBad; // ERROR, not highp - -layout(binding = 2, offset = 4) uniform atomic_uint countArr[4]; -uniform int i; - -void opac() -{ - int a[3]; - a[counter]; // ERROR, non-integer - countArr[2]; - countArr[i]; -} - -shared int atomi; -shared uint atomu; - -void atoms() -{ - int origi = atomicAdd(atomi, 3); - uint origu = atomicAnd(atomu, 7u); - origi = atomicExchange(atomi, 4); - origu = atomicCompSwap(atomu, 10u, 8u); -} - -precision highp atomic_uint; -precision lowp atomic_uint; // ERROR - -precise int pfoo; // ERROR, reserved - -dmat2x4 dm; // ERROR -uniform samplerCubeArray sca; // ERROR -uniform iimage2DRect i2dr; // ERROR -highp uniform image2DMS i2dms; // ERROR -uniform uimage2DMSArray u2dmsa; // ERROR - -highp layout(r32f) coherent volatile restrict readonly writeonly uniform image2D okay1; - layout(r32i) coherent volatile restrict readonly uniform iimage2D okay2; -highp layout(r32ui) coherent volatile restrict writeonly uniform uimage2D okay3; -highp layout(r32f) coherent volatile restrict uniform image2D okay4; - -highp layout(rgba32f) coherent volatile restrict uniform image2D badQ1; // ERROR, bad qualifiers - layout(rgba8i) coherent volatile restrict uniform iimage2D badQ2; // ERROR, bad qualifiers -highp layout(rgba16ui) coherent volatile restrict uniform uimage2D badQ3; // ERROR, bad qualifiers - -writeonly buffer woblock -{ - int value; - float values[]; -} wo; - -void foowo() -{ - float g; - g = wo.values[2]; // ERROR, writeonly - float f = wo.values[2]; // ERROR, writeonly - ++wo.values[2]; // ERROR, writeonly - wo.values[2]--; // ERROR, writeonly - f + wo.values[2]; // ERROR, writeonly - wo.values[2] - f; // ERROR, writeonly - bool b; - b ? f : wo.values[2]; // ERROR, writeonly - b ? wo.values[2] : f; // ERROR, writeonly - if (f == wo.values[2]) // ERROR, writeonly - ++f; - if (f >= wo.values[2]) // ERROR, writeonly - ++f; - f = vec3(wo.values[2]).x; // ERROR, writeonly - ~wo.value; // ERROR, writeonly - wo.values[2] = 3.4; -} - -buffer multioblock -{ - readonly int value; - writeonly float values[]; -} multio; - -void foomultio() -{ - float g; - g = wo.values[2]; // ERROR, writeonly - ~wo.value; - wo.values[2] = 3.4; - wo.value = 2; // ERROR, readonly -} - -in inb { // ERROR - int a; -} inbi; - -out outb { // ERROR - int a; -} outbi; - -float t__; // ERROR, no __ until revision 310 - - // ERROR, no __ until revision 310 -#define __D - -shared vec4 arr[2][3][4]; - -void devi() -{ - gl_DeviceIndex; // ERROR, no extension - gl_ViewIndex; // ERROR, never this stage -} - -#ifdef GL_EXT_device_group -#extension GL_EXT_device_group : enable -#endif - -void devie() -{ - gl_DeviceIndex; - gl_ViewIndex; // ERROR, never this stage -} diff --git a/deps/glslang/Test/310.frag b/deps/glslang/Test/310.frag deleted file mode 100644 index 5cdcca7c..00000000 --- a/deps/glslang/Test/310.frag +++ /dev/null @@ -1,487 +0,0 @@ -#version 310 es -highp float nodef3(float); // ERROR, no default precision -precision mediump float; -precision highp usampler2D; -precision highp sampler2D; -precision highp isampler2DArray; - -layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord; // ERROR, not supported - -layout(location = 2) in vec3 v3; -layout(location = 2) in mat4 yi; // ERROR, locations conflict with xi - -uniform sampler2D arrayedSampler[5]; -uniform usampler2D usamp2d; -uniform usampler2DRect samp2dr; // ERROR, reserved -uniform isampler2DArray isamp2DA; - -in vec2 c2D; -uniform int i; - -void main() -{ - vec4 v = texture(arrayedSampler[i], c2D); // ERROR - - ivec2 offsets[4]; - const ivec2 constOffsets[4] = ivec2[4](ivec2(1,2), ivec2(3,4), ivec2(15,16), ivec2(-2,0)); - uvec4 uv4 = textureGatherOffsets(samp2dr, c2D, offsets, 2); // ERROR, not supported - vec4 v4 = textureGather(arrayedSampler[0], c2D); - ivec4 iv4 = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(1), 3); - iv4 = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(1), i); // ERROR, last argument not const - iv4 = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(1), 4); // ERROR, last argument out of range - iv4 = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(1), 1+2); - iv4 = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(0.5)); - iv4 = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(i)); // ERROR, offset not constant -} - -out vec4 outp; -void foo23() -{ - const ivec2[3] offsets = ivec2[3](ivec2(1,2), ivec2(3,4), ivec2(15,16)); - - textureProjGradOffset(usamp2d, outp, vec2(0.0), vec2(0.0), ivec2(c2D)); // ERROR, offset not constant - textureProjGradOffset(usamp2d, outp, vec2(0.0), vec2(0.0), offsets[1]); - textureProjGradOffset(usamp2d, outp, vec2(0.0), vec2(0.0), offsets[2]); // ERROR, offset out of range - textureProjGradOffset(usamp2d, outp, vec2(0.0), vec2(0.0), ivec2(-10, 20)); // ERROR, offset out of range - - if (gl_HelperInvocation) - ++outp; - - int sum = gl_MaxVertexImageUniforms + - gl_MaxFragmentImageUniforms + - gl_MaxComputeImageUniforms + - gl_MaxCombinedImageUniforms + - gl_MaxCombinedShaderOutputResources; - - bool b1, b2, b3, b; - - b1 = mix(b2, b3, b); - uvec3 um3 = mix(uvec3(i), uvec3(i), bvec3(b)); - ivec4 im4 = mix(ivec4(i), ivec4(i), bvec4(b)); - 1 << mix(1u, 1u, false); // does not require folding -} -layout(binding=3) uniform sampler2D s1; -layout(binding=3) uniform sampler2D s2; // ERROR: overlapping bindings? Don't see that in the 310 spec. -highp layout(binding=2) uniform writeonly image2D i2D; - layout(binding=4) uniform readonly image3D i3D; // ERROR, no default precision - layout(binding=5) uniform imageCube iCube; // ERROR, no default precision - layout(binding=6) uniform image2DArray i2DA; // ERROR, no default precision - layout(binding=6) uniform coherent volatile restrict image2D i2Dqualified; // ERROR, no default precision - -layout(binding = 1) uniform bb { - int foo; - layout(binding = 2) float f; // ERROR -} bbi; - -in centroid vec4 centroidIn; -layout(location = 200000) uniform vec4 bigl; // ERROR, location too big - -layout(early_fragment_tests) in; - -layout(location = 40) out vec4 bigout1; // ERROR, too big -layout(location = 40) out vec4 bigout2; // ERROR, overlap -layout(location = -2) out vec4 neg; // ERROR, negative - -layout(std430) buffer b430 { - int i; -} b430i; - -layout(shared) uniform bshar { - int i; -} bshari; - -in smooth vec4 smoothIn; -in flat int flatIn; - -uniform sampler2DMS s2dms; // ERROR, no default precision qualifier - -void foots() -{ - highp ivec2 v2 = textureSize(s1, 2); - highp ivec3 v3 = textureSize(isamp2DA, 3); - v2 = textureSize(s2dms); - v2 = imageSize(i2D); - v3 = imageSize(i3D); - v2 = imageSize(iCube); - v3 = imageSize(i2DA); - v2 = imageSize(i2Dqualified); -} - -out bool bout; // ERROR -highp out image2D imageOut; // ERROR -out mat2x3 mout; // ERROR - -in bool inb; // ERROR -in sampler2D ino; // ERROR -in float ina[4]; -in float inaa[4][2]; // ERROR -struct S { float f; }; -in S ins; -in S[4] inasa; // ERROR -in S insa[4]; // ERROR -struct SA { float f[4]; }; -in SA inSA; // ERROR -struct SS { float f; S s; }; -in SS inSS; // ERROR - -#ifndef GL_EXT_shader_io_blocks -#error GL_EXT_shader_io_blocks not defined -#endif - -#extension GL_EXT_shader_io_blocks : enable - -out outbname { int a; } outbinst; // ERROR, not out block in fragment shader - -in inbname { - int a; - vec4 v; - struct { int b; } s; // ERROR, nested struct definition -} inbinst; - -in inbname2 { - layout(location = 12) int aAnon; - layout(location = 13) centroid in vec4 vAnon; -}; - -in layout(location = 13) vec4 aliased; // ERROR, aliased - -in inbname2 { // ERROR, reuse of block name - int aAnon; - centroid in vec4 vAnon; -}; - -in badmember { // ERROR, aAnon already in global scope - int aAnon; -}; - -int inbname; // ERROR, redefinition of block name - -vec4 vAnon; // ERROR, anon in global scope; redefinition - -in arrayed { - float f; -} arrayedInst[4]; - -void fooIO() -{ - vec4 v = inbinst.v + vAnon; - v *= arrayedInst[2].f; - v *= arrayedInst[i].f; -} - -in vec4 gl_FragCoord; -layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord; // ERROR, non-ES - -layout(early_fragment_tests) in; -out float gl_FragDepth; -layout(depth_any) out float gl_FragDepth; // ERROR, non-ES - -void foo_IO() -{ - gl_FragDepth = 0.2; // ERROR, early_fragment_tests declared - gl_Layer; // ERROR, not present - gl_PrimitiveID; // ERROR, not present - bool f = gl_FrontFacing; -} - -out float gl_FragDepth; - -#extension GL_OES_geometry_shader : enable - -void foo_GS() -{ - highp int l = gl_Layer; - highp int p = gl_PrimitiveID; -} - -in vec2 inf, ing; -uniform ivec2 offsets[4]; -uniform sampler2D sArray[4]; -uniform int sIndex; -layout(binding = 0) uniform atomic_uint auArray[2]; -uniform ubName { int i; } ubInst[4]; -buffer bbName { int i; } bbInst[4]; -highp uniform writeonly image2D iArray[5]; -const ivec2 constOffsets[4] = ivec2[4](ivec2(0.1), ivec2(0.2), ivec2(0.3), ivec2(0.4)); - -void pfooBad() -{ - precise vec2 h; // ERROR reserved - h = fma(inf, ing, h); // ERROR, not available - textureGatherOffset(sArray[0], vec2(0.1), ivec2(inf)); // ERROR, offset not constant - textureGatherOffsets(sArray[0], vec2(0.1), constOffsets); // ERROR, not available -} - -#extension GL_OES_gpu_shader5 : enable - -void pfoo() -{ - precise vec2 h; - h = fma(inf, ing, h); - textureGatherOffset(sArray[0], vec2(0.1), ivec2(inf)); - textureGatherOffsets(sArray[0], vec2(0.1), constOffsets); - textureGatherOffsets(sArray[0], vec2(0.1), offsets); // ERROR, offset not constant -} - -#extension GL_EXT_texture_cube_map_array : enable - -precision highp imageCubeArray ; -precision highp iimageCubeArray ; -precision highp uimageCubeArray ; - -precision highp samplerCubeArray ; -precision highp samplerCubeArrayShadow; -precision highp isamplerCubeArray ; -precision highp usamplerCubeArray ; - -uniform writeonly imageCubeArray CA1; -uniform writeonly iimageCubeArray CA2; -uniform writeonly uimageCubeArray CA3; - -#ifdef GL_EXT_texture_cube_map_array -uniform samplerCubeArray CA4; -uniform samplerCubeArrayShadow CA5; -uniform isamplerCubeArray CA6; -uniform usamplerCubeArray CA7; -#endif - -void CAT() -{ - highp vec4 b4 = texture(CA4, vec4(0.5), 0.24); - highp ivec4 b6 = texture(CA6, vec4(0.5), 0.26); - highp uvec4 b7 = texture(CA7, vec4(0.5), 0.27); -} - -void badSample() -{ - lowp int a1 = gl_SampleID; // ERROR, need extension - mediump vec2 a2 = gl_SamplePosition; // ERROR, need extension - highp int a3 = gl_SampleMaskIn[0]; // ERROR, need extension - gl_SampleMask[0] = a3; // ERROR, need extension - mediump int n = gl_NumSamples; // ERROR, need extension -} - -#ifdef GL_OES_sample_variables -#extension GL_OES_sample_variables : enable -#endif - -void goodSample() -{ - lowp int a1 = gl_SampleID; - mediump vec2 a2 = gl_SamplePosition; - highp int a3 = gl_SampleMaskIn[0]; - gl_SampleMask[0] = a3; - mediump int n1 = gl_MaxSamples; - mediump int n2 = gl_NumSamples; -} - -uniform layout(r32f) highp image2D im2Df; -uniform layout(r32ui) highp uimage2D im2Du; -uniform layout(r32i) highp iimage2D im2Di; -uniform ivec2 P; - -void badImageAtom() -{ - float datf; - int dati; - uint datu; - - imageAtomicAdd( im2Di, P, dati); // ERROR, need extension - imageAtomicAdd( im2Du, P, datu); // ERROR, need extension - imageAtomicMin( im2Di, P, dati); // ERROR, need extension - imageAtomicMin( im2Du, P, datu); // ERROR, need extension - imageAtomicMax( im2Di, P, dati); // ERROR, need extension - imageAtomicMax( im2Du, P, datu); // ERROR, need extension - imageAtomicAnd( im2Di, P, dati); // ERROR, need extension - imageAtomicAnd( im2Du, P, datu); // ERROR, need extension - imageAtomicOr( im2Di, P, dati); // ERROR, need extension - imageAtomicOr( im2Du, P, datu); // ERROR, need extension - imageAtomicXor( im2Di, P, dati); // ERROR, need extension - imageAtomicXor( im2Du, P, datu); // ERROR, need extension - imageAtomicExchange(im2Di, P, dati); // ERROR, need extension - imageAtomicExchange(im2Du, P, datu); // ERROR, need extension - imageAtomicExchange(im2Df, P, datf); // ERROR, need extension - imageAtomicCompSwap(im2Di, P, 3, dati); // ERROR, need extension - imageAtomicCompSwap(im2Du, P, 5u, datu); // ERROR, need extension -} - -#ifdef GL_OES_shader_image_atomic -#extension GL_OES_shader_image_atomic : enable -#endif - -uniform layout(rgba32f) highp image2D badIm2Df; // ERROR, needs readonly or writeonly -uniform layout(rgba8ui) highp uimage2D badIm2Du; // ERROR, needs readonly or writeonly -uniform layout(rgba16i) highp iimage2D badIm2Di; // ERROR, needs readonly or writeonly - -void goodImageAtom() -{ - float datf; - int dati; - uint datu; - - imageAtomicAdd( im2Di, P, dati); - imageAtomicAdd( im2Du, P, datu); - imageAtomicMin( im2Di, P, dati); - imageAtomicMin( im2Du, P, datu); - imageAtomicMax( im2Di, P, dati); - imageAtomicMax( im2Du, P, datu); - imageAtomicAnd( im2Di, P, dati); - imageAtomicAnd( im2Du, P, datu); - imageAtomicOr( im2Di, P, dati); - imageAtomicOr( im2Du, P, datu); - imageAtomicXor( im2Di, P, dati); - imageAtomicXor( im2Du, P, datu); - imageAtomicExchange(im2Di, P, dati); - imageAtomicExchange(im2Du, P, datu); - imageAtomicExchange(im2Df, P, datf); - imageAtomicCompSwap(im2Di, P, 3, dati); - imageAtomicCompSwap(im2Du, P, 5u, datu); - - imageAtomicMax(badIm2Di, P, dati); // ERROR, not an allowed layout() on the image - imageAtomicMax(badIm2Du, P, datu); // ERROR, not an allowed layout() on the image - imageAtomicExchange(badIm2Df, P, datf); // ERROR, not an allowed layout() on the image -} - -sample in vec4 colorSampInBad; // ERROR, reserved -centroid out vec4 colorCentroidBad; // ERROR -flat out vec4 colorBadFlat; // ERROR -smooth out vec4 colorBadSmooth; // ERROR -noperspective out vec4 colorBadNo; // ERROR -flat centroid in vec2 colorfc; -in float scalarIn; - -void badInterp() -{ - interpolateAtCentroid(colorfc); // ERROR, need extension - interpolateAtSample(colorfc, 1); // ERROR, need extension - interpolateAtOffset(colorfc, vec2(0.2)); // ERROR, need extension -} - -#if defined GL_OES_shader_multisample_interpolation -#extension GL_OES_shader_multisample_interpolation : enable -#endif - -sample in vec4 colorSampIn; -sample out vec4 colorSampleBad; // ERROR -flat sample in vec4 colorfsi; -sample in vec3 sampInArray[4]; - -void interp() -{ - float res; - vec2 res2; - vec3 res3; - vec4 res4; - - res2 = interpolateAtCentroid(colorfc); - res4 = interpolateAtCentroid(colorSampIn); - res4 = interpolateAtCentroid(colorfsi); - res = interpolateAtCentroid(scalarIn); - res3 = interpolateAtCentroid(sampInArray); // ERROR - res3 = interpolateAtCentroid(sampInArray[2]); - res2 = interpolateAtCentroid(sampInArray[2].xy); // ERROR - - res3 = interpolateAtSample(sampInArray, 1); // ERROR - res3 = interpolateAtSample(sampInArray[i], 0); - res2 = interpolateAtSample(sampInArray[2].xy, 2); // ERROR - res = interpolateAtSample(scalarIn, 1); - - res3 = interpolateAtOffset(sampInArray, vec2(0.2)); // ERROR - res3 = interpolateAtOffset(sampInArray[2], vec2(0.2)); - res2 = interpolateAtOffset(sampInArray[2].xy, vec2(0.2)); // ERROR, no swizzle - res = interpolateAtOffset(scalarIn + scalarIn, vec2(0.2)); // ERROR, no binary ops other than dereference - res = interpolateAtOffset(scalarIn, vec2(0.2)); - - float f; - res = interpolateAtCentroid(f); // ERROR, not interpolant - res4 = interpolateAtSample(outp, 0); // ERROR, not interpolant -} - -layout(blend_support_softlight) out; // ERROR, need extension - -#ifdef GL_KHR_blend_equation_advanced -#extension GL_KHR_blend_equation_advanced : enable -#endif - -layout(blend_support_multiply) out; -layout(blend_support_screen) out; -layout(blend_support_overlay) out; -layout(blend_support_darken, blend_support_lighten) out; -layout(blend_support_colordodge) layout(blend_support_colorburn) out; -layout(blend_support_hardlight) out; -layout(blend_support_softlight) out; -layout(blend_support_difference) out; -layout(blend_support_exclusion) out; -layout(blend_support_hsl_hue) out; -layout(blend_support_hsl_saturation) out; -layout(blend_support_hsl_color) out; -layout(blend_support_hsl_luminosity) out; -layout(blend_support_all_equations) out; - -layout(blend_support_hsl_luminosity) out; // okay to repeat - -layout(blend_support_hsl_luminosity) in; // ERROR, only on "out" -layout(blend_support_hsl_luminosity) out vec4; // ERROR, only on standalone -layout(blend_support_hsl_luminosity) out vec4 badout; // ERROR, only on standalone -layout(blend_support_hsl_luminosity) struct badS {int i;}; // ERROR, only on standalone -layout(blend_support_hsl_luminosity) void blendFoo() { } // ERROR, only on standalone -void blendFoo(layout(blend_support_hsl_luminosity) vec3 v) { } // ERROR, only on standalone -layout(blend_support_flizbit) out; // ERROR, no flizbit - -out vec4 outAA[2][2]; // ERROR - -void devi() -{ - gl_DeviceIndex; // ERROR, no extension - gl_ViewIndex; // ERROR, no extension -} - -#ifdef GL_EXT_device_group -#extension GL_EXT_device_group : enable -#endif - -#ifdef GL_EXT_multiview -#extension GL_EXT_multiview : enable -#endif - -void devie() -{ - gl_DeviceIndex; - gl_ViewIndex; -} - -#extension GL_EXT_shader_implicit_conversions : enable - -// Test function overloading -void func(uint a, uvec4 b) -{ - -} - -int func(uint a, uvec4 b) // Error function overloading because of same signature and different return type -{ - return 0; -} - -int b; - -void testimplicit() { - - uint a = b; // int->uint - mediump vec4 col = vec4(1, 2, 3, 4); // ivec4 -> vec4 - int b = a + 2; // ERROR: cannot convert from ' temp uint' to ' temp int' - - // Test binary ops - uint c = b * 3; - uint d = b * 3u; - uint e = b%3; - uint f = (b > 3)? b : c; - func(b, ivec4(1,2,3,4)); -} - -#extension GL_EXT_shader_implicit_conversions : disable - -void testimplicitFail() { - uint a = b; // Error GL_EXT_shader_implicit_conversions is disabled -} - diff --git a/deps/glslang/Test/310.geom b/deps/glslang/Test/310.geom deleted file mode 100644 index bf0b1ae0..00000000 --- a/deps/glslang/Test/310.geom +++ /dev/null @@ -1,152 +0,0 @@ -#version 310 es - -#ifdef GL_EXT_geometry_shader -#extension GL_EXT_geometry_shader : enable -#else -#error no GL_EXT_geometry_shader -#endif - -#ifndef GL_OES_geometry_shader -#error no GL_OES_geometry_shader -#endif - -precision mediump float; - -in fromVertex { - in vec3 color; -} fromV[]; - -in vec4 nonBlockUnsized[]; - -out toFragment { - out vec3 color; -} toF; - -out fromVertex { // okay to reuse a block name for another block name - vec3 color; -}; - -out fooB { // ERROR, cannot reuse block name as block instance - vec2 color; -} fromVertex; - -int fromVertex; // ERROR, cannot reuse a block name for something else - -out fooC { // ERROR, cannot have same name for block and instance name - vec2 color; -} fooC; - -void main() -{ - EmitVertex(); - EndPrimitive(); - EmitStreamVertex(1); // ERROR - EndStreamPrimitive(0); // ERROR - - color = fromV[0].color; - gl_ClipDistance[3] = // ERROR, no ClipDistance - gl_in[1].gl_ClipDistance[2]; // ERROR, no ClipDistance - gl_Position = gl_in[0].gl_Position; - - gl_PrimitiveID = gl_PrimitiveIDIn; - gl_Layer = 2; -} - -layout(stream = 4) out vec4 ov4; // ERROR, no streams - -layout(line_strip, points, triangle_strip, points, triangle_strip) out; // just means triangle_strip" - -out ooutb { vec4 a; } ouuaa6; - -layout(max_vertices = 200) out; -layout(max_vertices = 300) out; // ERROR, too big -void foo(layout(max_vertices = 4) int a) // ERROR -{ - ouuaa6.a = vec4(1.0); -} - -layout(line_strip, points, triangle_strip, points) out; // ERROR, changing output primitive -layout(line_strip, points) out; // ERROR, changing output primitive -layout(triangle_strip) in; // ERROR, not an input primitive -layout(triangle_strip) uniform; // ERROR -layout(triangle_strip) out vec4 badv4; // ERROR, not on a variable -layout(triangle_strip) in vec4 bad2v4[]; // ERROR, not on a variable or input -layout(invocations = 3) out outbn { int a; }; // 2 ERROR, not on a block, not until 4.0 -out outbn2 { - layout(invocations = 3) int a; // 2 ERRORs, not on a block member, not until 4.0 - layout(max_vertices = 3) int b; // ERROR, not on a block member - layout(triangle_strip) int c; // ERROR, not on a block member -} outbi; - -layout(lines) out; // ERROR, not on output -layout(lines_adjacency) in; -layout(triangles) in; // ERROR, can't change it -layout(triangles_adjacency) in; // ERROR, can't change it -layout(invocations = 4) in; - -in sameName { - int a15; -} insn[]; - -out sameName { - float f15; -}; - -uniform sameName { - bool b15; -}; - -const int summ = gl_MaxVertexAttribs + - gl_MaxGeometryInputComponents + - gl_MaxGeometryOutputComponents + - gl_MaxGeometryImageUniforms + - gl_MaxGeometryTextureImageUnits + - gl_MaxGeometryOutputVertices + - gl_MaxGeometryTotalOutputComponents + - gl_MaxGeometryUniformComponents + - gl_MaxGeometryAtomicCounters + - gl_MaxGeometryAtomicCounterBuffers + - gl_MaxVertexTextureImageUnits + - gl_MaxCombinedTextureImageUnits + - gl_MaxTextureImageUnits + - gl_MaxDrawBuffers; - -void fooe1() -{ - gl_ViewportIndex; // ERROR, not in ES - gl_MaxViewports; // ERROR, not in ES - insn.length(); // 4: lines_adjacency - int inv = gl_InvocationID; -} - -in vec4 explArray[4]; -in vec4 explArrayBad[5]; // ERROR, wrong size -in vec4 nonArrayed; // ERROR, not an array -flat out vec3 myColor1; -centroid out vec3 myColor2; -centroid in vec3 centr[]; -sample out vec4 perSampleColor; // ERROR without sample extensions - -layout(max_vertices = 200) out; // matching redecl - -layout(location = 7, component = 2) in float comp[]; // ERROR, es has no component - -void notHere() -{ - gl_MaxGeometryVaryingComponents; // ERROR, not in ES - gl_VerticesIn; // ERROR, not in ES -} - -void pointSize1() -{ - highp float ps = gl_in[3].gl_PointSize; // ERROR, need point_size extension - gl_PointSize = ps; // ERROR, need point_size extension -} - -#extension GL_OES_geometry_point_size : enable - -void pointSize2() -{ - highp float ps = gl_in[3].gl_PointSize; - gl_PointSize = ps; -} diff --git a/deps/glslang/Test/310.inheritMemory.frag b/deps/glslang/Test/310.inheritMemory.frag deleted file mode 100644 index bdf12832..00000000 --- a/deps/glslang/Test/310.inheritMemory.frag +++ /dev/null @@ -1,43 +0,0 @@ -#version 310 es -precision mediump float; - -struct S { - float buff[10]; -}; - -layout(std430, binding=2) readonly buffer RoBuff { - float buff_ro[10]; - S s_ro; -} ro_buffer; - -layout(std430, binding=2) buffer Buff { - float buff[10]; - S s; -} non_ro_buffer; - -void non_ro_fun(float[10] buff) { } -void non_ro_funf(float el) { } -void non_ro_funS(S s) { } - -out vec4 fragColor; - -void main() -{ - S s; - - non_ro_fun(s.buff); - non_ro_funf(s.buff[3]); - non_ro_funS(s); - - non_ro_fun(non_ro_buffer.buff); - non_ro_fun(non_ro_buffer.s.buff); - non_ro_funf(non_ro_buffer.buff[3]); - non_ro_funf(non_ro_buffer.s.buff[3]); - non_ro_funS(non_ro_buffer.s); - - non_ro_fun(ro_buffer.buff_ro); - non_ro_fun(ro_buffer.s_ro.buff); - non_ro_funf(ro_buffer.buff_ro[3]); - non_ro_funf(ro_buffer.s_ro.buff[3]); - non_ro_funS(ro_buffer.s_ro); -} diff --git a/deps/glslang/Test/310.tesc b/deps/glslang/Test/310.tesc deleted file mode 100644 index 7b8d0db8..00000000 --- a/deps/glslang/Test/310.tesc +++ /dev/null @@ -1,184 +0,0 @@ -#version 310 es - -#extension GL_OES_tessellation_shader : enable - -layout(vertices = 4) out; -out int outa[gl_out.length()]; - -layout(quads) in; // ERROR -layout(ccw) out; // ERROR -layout(fractional_even_spacing) in; // ERROR - -patch in vec4 patchIn; // ERROR -patch out vec4 patchOut; - -void main() -{ - barrier(); - - int a = gl_MaxTessControlInputComponents + - gl_MaxTessControlOutputComponents + - gl_MaxTessControlTextureImageUnits + - gl_MaxTessControlUniformComponents + - gl_MaxTessControlTotalOutputComponents; - - vec4 p = gl_in[1].gl_Position; - float ps = gl_in[1].gl_PointSize; // ERROR, need point_size extension - float cd = gl_in[1].gl_ClipDistance[2]; // ERROR, not in ES - - int pvi = gl_PatchVerticesIn; - int pid = gl_PrimitiveID; - int iid = gl_InvocationID; - - gl_out[gl_InvocationID].gl_Position = p; - gl_out[gl_InvocationID].gl_PointSize = ps; // ERROR, need point_size extension - gl_out[gl_InvocationID].gl_ClipDistance[1] = cd; // ERROR, not in ES - - gl_TessLevelOuter[3] = 3.2; - gl_TessLevelInner[1] = 1.3; - - if (a > 10) - barrier(); // ERROR - else - barrier(); // ERROR - - barrier(); - - do { - barrier(); // ERROR - } while (a > 10); - - switch (a) { - default: - barrier(); // ERROR - break; - } - a < 12 ? a : (barrier(), a); // ERROR - { - barrier(); - } - - return; - - barrier(); // ERROR -} - -layout(vertices = 4) in; // ERROR, not on in -layout(vertices = 5) out; // ERROR, changing # - -void foo() -{ - gl_out[4].gl_Position; // ERROR, out of range - - barrier(); // ERROR, not in main -} - -in vec2 ina; // ERROR, not array -in vec2 inb[]; -in vec2 inc[18]; // ERROR, wrong size -in vec2 ind[gl_MaxPatchVertices]; -patch out float implA[]; // ERROR, not sized - -#extension GL_ARB_separate_shader_objects : enable - -layout(location = 3) in vec4 ivla[]; -layout(location = 4) in vec4 ivlb[]; -layout(location = 4) in vec4 ivlc[]; // ERROR, overlapping - -layout(location = 3) out vec4 ovla[]; -layout(location = 4) out vec4 ovlb[]; -layout(location = 4) out vec4 ovlc[]; // ERROR, overlapping - -void foop() -{ - precise float d; // ERROR without gpu_shader5 - d = fma(d, d, d); // ERROR without gpu_shader5 -} - -patch out pinbn { - int a; -} pinbi; - -centroid out vec3 myColor2[]; -centroid in vec3 centr[]; -sample out vec4 perSampleColor[]; // ERROR without sample extensions - -layout(vertices = 4) out float badlay[]; // ERROR, not on a variable -out float misSized[5]; // ERROR, size doesn't match -out float okaySize[4]; - -#extension GL_OES_tessellation_point_size : enable - -void pointSize2() -{ - float ps = gl_in[1].gl_PointSize; - gl_out[gl_InvocationID].gl_PointSize = ps; -} - -#extension GL_OES_gpu_shader5 : enable - -precise vec3 pv3; - -void goodfoop() -{ - precise float d; - - pv3 *= pv3; - pv3 = fma(pv3, pv3, pv3); - d = fma(d, d, d); -} - -void bbextBad() -{ - gl_BoundingBoxEXT; // ERROR without GL_EXT_primitive_bounding_box - gl_BoundingBox; // ERROR, version < 320 -} - -#extension GL_EXT_primitive_bounding_box : enable - -void bbext() -{ - gl_BoundingBoxEXT[0] = vec4(0.0); - gl_BoundingBoxEXT[1] = vec4(1.0); - gl_BoundingBoxEXT[2] = vec4(2.0); // ERROR, overflow -} - -void bbBad() -{ - gl_BoundingBoxOES; // ERROR without GL_OES_primitive_bounding_box -} - -#extension GL_OES_primitive_bounding_box : enable - -void bb() -{ - gl_BoundingBoxOES[0] = vec4(0.0); - gl_BoundingBoxOES[1] = vec4(1.0); - gl_BoundingBoxOES[2] = vec4(2.0); // ERROR, overflow -} - -out patch badpatchBName { // ERROR, array size required - float f; -} badpatchIName[]; - -out patch patchBName { - float f; -} patchIName[4]; - -void outputtingOutparam(out int a) -{ - a = 2; -} - -void outputting() -{ - outa[gl_InvocationID] = 2; - outa[1] = 2; // ERROR, not gl_InvocationID - gl_out[0].gl_Position = vec4(1.0); // ERROR, not gl_InvocationID - outa[1]; - gl_out[0]; - outputtingOutparam(outa[0]); // ERROR, not gl_InvocationID - outputtingOutparam(outa[gl_InvocationID]); - patchIName[1].f = 3.14; - outa[(gl_InvocationID)] = 2; -} diff --git a/deps/glslang/Test/310.tese b/deps/glslang/Test/310.tese deleted file mode 100644 index bbeaa87f..00000000 --- a/deps/glslang/Test/310.tese +++ /dev/null @@ -1,128 +0,0 @@ -#version 310 es - -#extension GL_EXT_tessellation_shader : enable -#extension GL_OES_tessellation_shader : enable -#extension GL_EXT_tessellation_shader : disable - -layout(vertices = 4) out; // ERROR -layout(quads, cw) in; -layout(triangles) in; // ERROR -layout(isolines) in; // ERROR - -layout(ccw) in; // ERROR -layout(cw) in; - -layout(fractional_odd_spacing) in; -layout(equal_spacing) in; // ERROR -layout(fractional_even_spacing) in; // ERROR - -layout(point_mode) in; - -patch in vec4 patchIn; -patch out vec4 patchOut; // ERROR - -void main() -{ - barrier(); // ERROR - - int a = gl_MaxTessEvaluationInputComponents + - gl_MaxTessEvaluationOutputComponents + - gl_MaxTessEvaluationTextureImageUnits + - gl_MaxTessEvaluationUniformComponents + - gl_MaxTessPatchComponents + - gl_MaxPatchVertices + - gl_MaxTessGenLevel; - - vec4 p = gl_in[1].gl_Position; - float ps = gl_in[1].gl_PointSize; // ERROR, need point_size extension - float cd = gl_in[1].gl_ClipDistance[2]; // ERROR, not in ES - - int pvi = gl_PatchVerticesIn; - int pid = gl_PrimitiveID; - vec3 tc = gl_TessCoord; - float tlo = gl_TessLevelOuter[3]; - float tli = gl_TessLevelInner[1]; - - gl_Position = p; - gl_PointSize = ps; // ERROR, need point_size extension - gl_ClipDistance[2] = cd; // ERROR, not in ES -} - -smooth patch in vec4 badp1; // ERROR -flat patch in vec4 badp2; // ERROR -noperspective patch in vec4 badp3; // ERROR -patch sample in vec3 badp4; // ERROR - -#extension GL_ARB_separate_shader_objects : enable - -in gl_PerVertex -{ - vec4 gl_Position; -} gl_in[]; - -in gl_PerVertex // ERROR, second redeclaration of gl_in -{ - vec4 gl_Position; -} gl_in[]; - -layout(quads, cw) out; // ERROR -layout(triangles) out; // ERROR -layout(isolines) out; // ERROR -layout(cw) out; // ERROR -layout(fractional_odd_spacing) out; // ERROR -layout(equal_spacing) out; // ERROR -layout(fractional_even_spacing) out; // ERROR -layout(point_mode) out; // ERROR - -in vec2 ina; // ERROR, not array -in vec2 inb[]; -in vec2 inc[18]; // ERROR, wrong size -in vec2 ind[gl_MaxPatchVertices]; - -in testbla { // ERROR, not array - int f; -} bla; - -in testblb { - int f; -} blb[]; - -in testblc { // ERROR wrong size - int f; -} blc[18]; - -in testbld { - int f; -} bld[gl_MaxPatchVertices]; - -layout(location = 23) in vec4 ivla[]; -layout(location = 24) in vec4 ivlb[]; -layout(location = 24) in vec4 ivlc[]; // ERROR, overlap - -layout(location = 23) out vec4 ovla[2]; -layout(location = 24) out vec4 ovlb[2]; // ERROR, overlap - -in float gl_TessLevelOuter[4]; // ERROR, can't redeclare - -patch in pinbn { - int a; -} pinbi; - -centroid out vec3 myColor2; -centroid in vec3 centr[]; -sample out vec4 perSampleColor; // ERROR without sample extensions - -#extension GL_OES_tessellation_point_size : enable - -void pointSize2() -{ - float ps = gl_in[1].gl_PointSize; // ERROR, not in the redeclaration, but no error on use of gl_PointSize - gl_PointSize = ps; -} - -#extension GL_EXT_primitive_bounding_box : enable - -void bbbad() -{ - gl_BoundingBoxOES; // ERROR, wrong stage -} diff --git a/deps/glslang/Test/310.vert b/deps/glslang/Test/310.vert deleted file mode 100644 index 92a50e2e..00000000 --- a/deps/glslang/Test/310.vert +++ /dev/null @@ -1,403 +0,0 @@ -#version 310 es - -shared vec4 s; // ERROR -layout(local_size_x = 2) out; // ERROR -buffer vec4 v; // ERROR -in int ini; -layout(location = 2) uniform mat4 x; -layout(location = 3) uniform mat4 y; -layout(location = 2) out mat4 xi; -layout(location = 3) out mat4 yi; // ERROR, locations conflict with xi - -void main() -{ - uvec2 u2; - u2 = uaddCarry(u2, u2, u2); - uint u1; - u1 = usubBorrow(u1, u1, u1); - uvec4 u4; - umulExtended(u4, u4, u4, u4); - ivec4 i4; - imulExtended(i4, i4, i4, i4); - int i1; - i1 = bitfieldExtract(i1, 4, 5); - uvec3 u3; - u3 = bitfieldExtract(u3, 4, 5); - ivec3 i3; - i3 = bitfieldInsert(i3, i3, 4, 5); - u1 = bitfieldInsert(u1, u1, 4, 5); - ivec2 i2; - i2 = bitfieldReverse(i2); - u4 = bitfieldReverse(u4); - i1 = bitCount(i1); - i3 = bitCount(u3); - i2 = findLSB(i2); - i4 = findLSB(u4); - i1 = findMSB(i1); - i2 = findMSB(u2); - - vec3 v3; - v3 = frexp(v3, i3); - vec2 v2; - v2 = ldexp(v2, i2); - - mediump vec4 v4; - u1 = packUnorm4x8(v4); - u1 = packSnorm4x8(v4); - v4 = unpackUnorm4x8(u1); - v4 = unpackSnorm4x8(u1); -} - -precision highp sampler2DMS; -precision highp isampler2DMS; -precision highp usampler2DMS; - -uniform sampler2DMS s2dms; -uniform isampler2DMS is2dms; -uniform usampler2DMS us2dms; -uniform usampler2DMSArray us2dmsa; // ERROR - -void foo() -{ - ivec2 v2; - v2 = textureSize(s2dms); - v2 = textureSize(us2dms); - vec4 v4 = texelFetch(s2dms, v2, 2); - ivec4 iv4 = texelFetch(is2dms, v2, 2); - textureSamples(s2dms); // ERROR - float f; - frexp(f, ini); // ERROR, i not writable -} - -out bool outb; // ERROR -out sampler2D outo; // ERROR -out float outa[4]; -out float outaa[4][2]; // ERROR -struct S { float f; }; -out S outs; -out S[4] outasa; // ERROR -out S outsa[4]; // ERROR -struct SA { float f[4]; }; -out SA outSA; // ERROR -struct SS { float f; S s; }; -out SS outSS; // ERROR - -layout(std430) uniform U430 { int a; } U430i; // ERROR -layout(std430) buffer B430 { int a; } B430i; - -#ifndef GL_OES_shader_io_blocks -#error GL_OES_shader_io_blocks not defined -#endif - -#extension GL_OES_shader_io_blocks : enable - -out outbname { - int a; - out vec4 v; - highp sampler2D s; // ERROR, opaque type -} outbinst; - -out outbname2 { - layout(location = 12) int aAnon; - layout(location = 13) vec4 vAnon; -}; - -layout(location = 12) out highp int aliased; // ERROR, aliasing location - -in inbname { int a; } inbinst; // ERROR, no in block in vertex shader - -out gl_PerVertex { // ERROR, has extra member - highp vec4 gl_Position; - highp vec4 t; -}; - -void foo_IO() -{ - int sum = gl_VertexID + - gl_InstanceID; - gl_Position = vec4(1.0); - gl_PointSize = 2.0; // ERROR, removed by redeclaration -} - -out gl_PerVertex { // ERROR, already used and already redeclared - highp vec4 gl_Position; - highp vec4 t; -}; - -smooth out smo { // ERROR, no smooth on a block - int i; -} smon; - -flat out fmo { // ERROR, no flat on a block - int i; -} fmon; - -centroid out cmo { // ERROR, no centroid on a block - int i; -} cmon; - -invariant out imo { // ERROR, no invariant on a block - int i; -} imon; - -in vec2 inf, ing; -uniform ivec2 offsets[4]; -uniform sampler2D sArray[4]; -uniform int sIndex; -layout(binding = 0) uniform atomic_uint auArray[2]; -uniform ubName { int i; } ubInst[4]; -buffer bbName { int i; } bbInst[4]; -highp uniform writeonly image2D iArray[5]; -const ivec2 constOffsets[4] = ivec2[4](ivec2(0.1), ivec2(0.2), ivec2(0.3), ivec2(0.4)); - -void pfooBad() -{ - precise vec2 h; // ERROR reserved - h = fma(inf, ing, h); // ERROR, not available - sArray[sIndex + 1]; // ERRRO, not supported - auArray[sIndex + 1]; - ubInst[1]; - bbInst[2]; - ubInst[sIndex + 1]; // ERROR, not supported - bbInst[sIndex]; // ERROR, not supported - iArray[2]; - iArray[sIndex * 2]; // ERROR, not supported - textureGatherOffset(sArray[0], vec2(0.1), ivec2(inf)); // ERROR, offset not constant - textureGatherOffsets(sArray[0], vec2(0.1), constOffsets); // ERROR, not available -} - -#extension GL_OES_gpu_shader5 : enable - -void pfoo() -{ - precise vec2 h; - h = fma(inf, ing, h); - sArray[sIndex + 1]; - ubInst[sIndex + 1]; - bbInst[sIndex - 2]; // ERROR, still not supported - iArray[2]; - iArray[sIndex - 2]; - textureGatherOffset(sArray[0], vec2(0.1), ivec2(inf)); - textureGatherOffsets(sArray[0], vec2(0.1), constOffsets); - textureGatherOffsets(sArray[0], vec2(0.1), offsets); // ERROR, offset not constant -} - -uniform samplerBuffer badSamp1; // ERROR, reserved -uniform isamplerBuffer badSamp2; // ERROR, reserved -uniform usamplerBuffer badSamp3; // ERROR, reserved -uniform writeonly imageBuffer badSamp4; // ERROR, reserved -uniform writeonly iimageBuffer badSamp5; // ERROR, reserved -uniform writeonly uimageBuffer badSamp6; // ERROR, reserved - -#extension GL_OES_texture_buffer : enable -#extension GL_EXT_texture_buffer : enable - -uniform samplerBuffer noPreSamp1; // ERROR, no default precision -uniform isamplerBuffer noPreSamp2; // ERROR, no default precision -uniform usamplerBuffer noPreSamp3; // ERROR, no default precision -uniform writeonly imageBuffer noPreSamp4; // ERROR, no default precision -uniform writeonly iimageBuffer noPreSamp5; // ERROR, no default precision -uniform writeonly uimageBuffer noPreSamp6; // ERROR, no default precision - -precision highp samplerBuffer; -precision highp isamplerBuffer; -precision highp usamplerBuffer; -precision highp imageBuffer; -precision highp iimageBuffer; -precision highp uimageBuffer; - -#ifdef GL_OES_texture_buffer -uniform samplerBuffer bufSamp1; -uniform isamplerBuffer bufSamp2; -uniform usamplerBuffer bufSamp3; -#endif -#ifdef GL_EXT_texture_buffer -uniform writeonly imageBuffer bufSamp4; -uniform writeonly iimageBuffer bufSamp5; -uniform writeonly uimageBuffer bufSamp6; -#endif - -void bufferT() -{ - highp int s1 = textureSize(bufSamp1); - highp int s2 = textureSize(bufSamp2); - highp int s3 = textureSize(bufSamp3); - - highp int s4 = imageSize(bufSamp4); - highp int s5 = imageSize(bufSamp5); - highp int s6 = imageSize(bufSamp6); - - highp vec4 f1 = texelFetch(bufSamp1, s1); - highp ivec4 f2 = texelFetch(bufSamp2, s2); - highp uvec4 f3 = texelFetch(bufSamp3, s3); -} - -uniform writeonly imageCubeArray badCA1; // ERROR, reserved -uniform writeonly iimageCubeArray badCA2; // ERROR, reserved -uniform writeonly uimageCubeArray badCA3; // ERROR, reserved - -uniform samplerCubeArray badCA4; // ERROR, reserved -uniform samplerCubeArrayShadow badCA5; // ERROR, reserved -uniform isamplerCubeArray badCA6; // ERROR, reserved -uniform usamplerCubeArray badCA7; // ERROR, reserved - -#extension GL_OES_texture_cube_map_array : enable - -uniform writeonly imageCubeArray noPreCA1; // ERROR, no default precision -uniform writeonly iimageCubeArray noPreCA2; // ERROR, no default precision -uniform writeonly uimageCubeArray noPreCA3; // ERROR, no default precision - -uniform samplerCubeArray noPreCA4; // ERROR, no default precision -uniform samplerCubeArrayShadow noPreCA5; // ERROR, no default precision -uniform isamplerCubeArray noPreCA6; // ERROR, no default precision -uniform usamplerCubeArray noPreCA7; // ERROR, no default precision - -precision highp imageCubeArray ; -precision highp iimageCubeArray ; -precision highp uimageCubeArray ; - -precision highp samplerCubeArray ; -precision highp samplerCubeArrayShadow; -precision highp isamplerCubeArray ; -precision highp usamplerCubeArray ; - -uniform writeonly imageCubeArray CA1; -uniform writeonly iimageCubeArray CA2; -uniform writeonly uimageCubeArray CA3; - -layout(rgba16f) uniform readonly imageCubeArray rCA1; -layout(rgba32i) uniform readonly iimageCubeArray rCA2; -layout(r32ui) uniform readonly uimageCubeArray rCA3; - -#ifdef GL_OES_texture_cube_map_array -uniform samplerCubeArray CA4; -uniform samplerCubeArrayShadow CA5; -uniform isamplerCubeArray CA6; -uniform usamplerCubeArray CA7; -#endif - -void CAT() -{ - highp ivec3 s4 = textureSize(CA4, 1); - highp ivec3 s5 = textureSize(CA5, 1); - highp ivec3 s6 = textureSize(CA6, 1); - highp ivec3 s7 = textureSize(CA7, 1); - - highp vec4 t4 = texture(CA4, vec4(0.5)); - highp float t5 = texture(CA5, vec4(0.5), 3.0); - highp ivec4 t6 = texture(CA6, vec4(0.5)); - highp uvec4 t7 = texture(CA7, vec4(0.5)); - - highp vec4 L4 = textureLod(CA4, vec4(0.5), 0.24); - highp ivec4 L6 = textureLod(CA6, vec4(0.5), 0.26); - highp uvec4 L7 = textureLod(CA7, vec4(0.5), 0.27); - - highp vec4 g4 = textureGrad(CA4, vec4(0.5), vec3(0.1), vec3(0.2)); - highp ivec4 g6 = textureGrad(CA6, vec4(0.5), vec3(0.1), vec3(0.2)); - highp uvec4 g7 = textureGrad(CA7, vec4(0.5), vec3(0.1), vec3(0.2)); - - highp vec4 gath4 = textureGather(CA4, vec4(0.5)); - highp vec4 gathC4 = textureGather(CA4, vec4(0.5), 2); - highp ivec4 gath6 = textureGather(CA6, vec4(0.5)); - highp ivec4 gathC6 = textureGather(CA6, vec4(0.5), 1); - highp uvec4 gath7 = textureGather(CA7, vec4(0.5)); - highp uvec4 gathC7 = textureGather(CA7, vec4(0.5), 0); - - highp vec4 gath5 = textureGather(CA5, vec4(0.5), 2.5); - - highp ivec3 s1 = imageSize(CA1); - highp ivec3 s2 = imageSize(CA2); - highp ivec3 s3 = imageSize(CA3); - - imageStore(CA1, s3, vec4(1)); - imageStore(CA2, s3, ivec4(1)); - imageStore(CA3, s3, uvec4(1)); - - highp vec4 cl1 = imageLoad(rCA1, s3); - highp ivec4 cl2 = imageLoad(rCA2, s3); - highp uvec4 cl3 = imageLoad(rCA3, s3); -} - -uniform sampler2DMSArray bad2DMS; // ERROR, reserved -uniform isampler2DMSArray bad2DMSi; // ERROR, reserved -uniform usampler2DMSArray bad2DMSu; // ERROR, reserved - -#extension GL_OES_texture_storage_multisample_2d_array : enable - -#ifdef GL_OES_texture_storage_multisample_2d_array - -uniform sampler2DMSArray noPrec2DMS; // ERROR, no default -uniform isampler2DMSArray noPrec2DMSi; // ERROR, no default -uniform usampler2DMSArray noPrec2DMSu; // ERROR, no default - -#endif - -precision highp sampler2DMSArray; -precision highp isampler2DMSArray; -precision highp usampler2DMSArray; - -uniform sampler2DMSArray samp2DMSA; -uniform isampler2DMSArray samp2DMSAi; -uniform usampler2DMSArray samp2DMSAu; - -void MSA() -{ - vec4 tf = texelFetch(samp2DMSA, ivec3(5), 2); - ivec4 tfi = texelFetch(samp2DMSAi, ivec3(5), 2); - uvec4 tfu = texelFetch(samp2DMSAu, ivec3(5), 2); - - ivec3 tfs = textureSize(samp2DMSA); - ivec3 tfsi = textureSize(samp2DMSAi); - ivec3 tfsb = textureSize(samp2DMSAi, 4); // ERROR, no lod - ivec3 tfsu = textureSize(samp2DMSAu); -} - -#ifdef GL_OES_shader_image_atomic -#extension GL_OES_shader_image_atomic : enable -#endif - -uniform layout(r32f) highp image2D im2Df; -uniform layout(r32ui) highp uimage2D im2Du; -uniform layout(r32i) highp iimage2D im2Di; -uniform ivec2 P; - -void goodImageAtom() -{ - float datf; - int dati; - uint datu; - - imageAtomicAdd( im2Di, P, dati); - imageAtomicAdd( im2Du, P, datu); - imageAtomicMin( im2Di, P, dati); - imageAtomicMin( im2Du, P, datu); - imageAtomicMax( im2Di, P, dati); - imageAtomicMax( im2Du, P, datu); - imageAtomicAnd( im2Di, P, dati); - imageAtomicAnd( im2Du, P, datu); - imageAtomicOr( im2Di, P, dati); - imageAtomicOr( im2Du, P, datu); - imageAtomicXor( im2Di, P, dati); - imageAtomicXor( im2Du, P, datu); - imageAtomicExchange(im2Di, P, dati); - imageAtomicExchange(im2Du, P, datu); - imageAtomicExchange(im2Df, P, datf); - imageAtomicCompSwap(im2Di, P, 3, dati); - imageAtomicCompSwap(im2Du, P, 5u, datu); -} - -sample out vec4 colorSampInBad; // ERROR, reserved - -#extension GL_OES_shader_multisample_interpolation : enable - -sample out vec4 colorSample; -flat sample out vec4 colorfsi; -sample out vec3 sampInArray[4]; -in vec4 inv4; - -void badInterp() -{ - interpolateAtCentroid(inv4); // ERROR, wrong stage - interpolateAtSample(inv4, 1); // ERROR, need extension - interpolateAtOffset(inv4, vec2(0.2)); // ERROR, need extension -} diff --git a/deps/glslang/Test/310AofA.vert b/deps/glslang/Test/310AofA.vert deleted file mode 100644 index fba29772..00000000 --- a/deps/glslang/Test/310AofA.vert +++ /dev/null @@ -1,121 +0,0 @@ -#version 310 es - -// Check name mangling of functions with parameters that are multi-dimensional arrays. - -#define NX 2 -#define NY 3 -#define NZ 4 -void f(bool a, float b, uint[4] c, int[NY][NX] d) { -} - -void main() { - int[NY][NX] d; - f(false, 12.1, uint[NZ](uint(0),uint(1),uint(1),uint(2)), d); -} - -buffer b { - float u[]; // ERROR - vec4 v[]; -} name[3]; - -uniform ub { - float u; - vec4 v[]; // ERROR -} uname[3]; - -buffer b2 { - float u; - vec4 v[][]; // ERROR -} name2[3]; - -buffer b3 { - float u; - vec4 v[][7]; -} name3[3]; - -// General arrays of arrays - -float[4][5][6] many[1][2][3]; - -float gu[][7]; // ERROR, size required -float g4[4][7]; -float g5[5][7]; - -float[4][7] foo(float a[5][7]) -{ - float r[7]; - r = a[2]; - float[](a[0], a[1], r, a[3]); // ERROR, too few dims - float[4][7][4](a[0], a[1], r, a[3]); // ERROR, too many dims - return float[4][7](a[0], a[1], r, a[3]); - return float[][](a[0], a[1], r, a[3]); - return float[][7](a[0], a[1], a[2], a[3]); -} - -void bar(float[5][7]) {} - -void foo2() -{ - { - float gu[3][4][2]; - - gu[2][4][1] = 4.0; // ERROR, overflow - } - vec4 ca4[3][2] = vec4[][](vec4[2](vec4(0.0), vec4(1.0)), - vec4[2](vec4(0.0), vec4(1.0)), - vec4[2](vec4(0.0), vec4(1.0))); - vec4 caim[][2] = vec4[][](vec4[2](vec4(4.0), vec4(2.0)), - vec4[2](vec4(4.0), vec4(2.0)), - vec4[2](vec4(4.0), vec4(2.0))); - vec4 caim2[][] = vec4[][](vec4[2](vec4(4.0), vec4(2.0)), - vec4[2](vec4(4.0), vec4(2.0)), - vec4[2](vec4(4.0), vec4(2.0))); - vec4 caim3[3][] = vec4[][](vec4[2](vec4(4.0), vec4(2.0)), - vec4[2](vec4(4.0), vec4(2.0)), - vec4[2](vec4(4.0), vec4(2.0))); - - g4 = foo(g5); - g5 = g4; // ERROR, wrong types - gu = g4; // ERROR, not yet sized - - foo(gu); // ERROR, not yet sized - bar(g5); - - if (foo(g5) == g4) - ; - if (foo(g5) == g5) // ERROR, different types - ; - - float u[5][7]; - u[5][2] = 5.0; // ERROR - foo(u); - - vec4 badAss[3]; - name[1].v[-1]; // ERROR - name[1].v[1] = vec4(4.3); - name[1].v = badAss; // ERROR, bad assignemnt - - name3[0].v[1].length(); // 7 - name3[0].v.length(); // run time -} - -struct badS { - int sa[]; // ERROR - int a[][]; // ERROR - int b[][2]; // ERROR - int c[2][]; // ERROR - int d[][4]; // ERROR -}; - -in float inArray[2][3]; // ERROR -out float outArray[2][3]; // ERROR - -uniform ubaa { - int a; -} ubaaname[2][3]; // ERROR - -vec3 func(in mat3[2] x[3]) -{ - mat3 a0 = x[2][1]; - return a0[2]; -} diff --git a/deps/glslang/Test/310implicitSizeArrayError.vert b/deps/glslang/Test/310implicitSizeArrayError.vert deleted file mode 100644 index 7aa0ee1b..00000000 --- a/deps/glslang/Test/310implicitSizeArrayError.vert +++ /dev/null @@ -1,8 +0,0 @@ -#version 310 es -layout (binding=0) uniform Block { - highp int a[]; -} uni; -layout (location=0) out highp int o; -void main() { - o = uni.a[2]; -} diff --git a/deps/glslang/Test/310runtimeArray.vert b/deps/glslang/Test/310runtimeArray.vert deleted file mode 100644 index 3d7b018e..00000000 --- a/deps/glslang/Test/310runtimeArray.vert +++ /dev/null @@ -1,18 +0,0 @@ -#version 310 es - -precision highp float; -layout(location=0) out float o; - -struct S { float f; }; -buffer b1 { S s[]; }; -buffer b2 { S s[]; } b2name; -buffer b3 { S s[]; } b3name[]; -buffer b4 { S s[]; } b4name[4]; - -void main() -{ - o = s[5].f; - o += b2name.s[6].f; - o += b3name[3].s[7].f; - o += b4name[2].s[8].f; -} diff --git a/deps/glslang/Test/320.comp b/deps/glslang/Test/320.comp deleted file mode 100644 index 5b389959..00000000 --- a/deps/glslang/Test/320.comp +++ /dev/null @@ -1,17 +0,0 @@ -#version 320 es - -float fX; -float fY; - -void main() -{ - dFdx(fX); - dFdy(fY); - fwidth(fX); - dFdxCoarse(fX); - dFdyCoarse(fY); - fwidthCoarse(fX); - dFdxFine(fX); - dFdyFine(fY); - fwidthFine(fX); -} diff --git a/deps/glslang/Test/320.frag b/deps/glslang/Test/320.frag deleted file mode 100644 index bed3f120..00000000 --- a/deps/glslang/Test/320.frag +++ /dev/null @@ -1,225 +0,0 @@ -#version 320 es - -out outbname { int a; } outbinst; // ERROR, not out block in fragment shader - -in inbname { - int a; - vec4 v; - struct { int b; } s; // ERROR, nested struct definition -} inbinst; - -in inbname2 { - layout(location = 12) int aAnon; - layout(location = 13) centroid in vec4 vAnon; -}; - -in layout(location = 13) vec4 aliased; // ERROR, aliased - -in inbname2 { // ERROR, reuse of block name - int aAnon; - centroid in vec4 vAnon; -}; - -in badmember { // ERROR, aAnon already in global scope - int aAnon; -}; - -int inbname; // ERROR, redefinition of block name - -vec4 vAnon; // ERROR, anon in global scope; redefinition - -in arrayed { - float f; -} arrayedInst[4]; -uniform int i; -void fooIO() -{ - vec4 v = inbinst.v + vAnon; - v *= arrayedInst[2].f; - v *= arrayedInst[i].f; -} - -in vec4 gl_FragCoord; -layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord; // ERROR, non-ES - -layout(early_fragment_tests) in; -out float gl_FragDepth; -layout(depth_any) out float gl_FragDepth; // ERROR, non-ES - -void main() -{ - gl_FragDepth = 0.2; // ERROR, early_fragment_tests declared - bool f = gl_FrontFacing; -} - -out float gl_FragDepth; - -void foo_GS() -{ - highp int l = gl_Layer; - highp int p = gl_PrimitiveID; -} - -in vec2 inf, ing; -uniform ivec2 offsets[4]; -uniform sampler2D sArray[4]; -uniform int sIndex; -layout(binding = 0) uniform atomic_uint auArray[2]; -uniform ubName { int i; } ubInst[4]; -buffer bbName { int i; } bbInst[4]; -highp uniform writeonly image2D iArray[5]; -const ivec2 constOffsets[4] = ivec2[4](ivec2(0.1), ivec2(0.2), ivec2(0.3), ivec2(0.4)); - -void pfoo() -{ - precise vec2 h; - h = fma(inf, ing, h); - textureGatherOffset(sArray[0], vec2(0.1), ivec2(inf)); - textureGatherOffsets(sArray[0], vec2(0.1), constOffsets); - textureGatherOffsets(sArray[0], vec2(0.1), offsets); // ERROR, offset not constant -} - -precision highp imageCubeArray ; -precision highp iimageCubeArray ; -precision highp uimageCubeArray ; - -precision highp samplerCubeArray ; -precision highp samplerCubeArrayShadow; -precision highp isamplerCubeArray ; -precision highp usamplerCubeArray ; - -uniform writeonly imageCubeArray CA1; -uniform writeonly iimageCubeArray CA2; -uniform writeonly uimageCubeArray CA3; - -#ifdef GL_EXT_texture_cube_map_array -uniform samplerCubeArray CA4; -uniform samplerCubeArrayShadow CA5; -uniform isamplerCubeArray CA6; -uniform usamplerCubeArray CA7; -#endif - -void CAT() -{ - highp vec4 b4 = texture(CA4, vec4(0.5), 0.24); - highp ivec4 b6 = texture(CA6, vec4(0.5), 0.26); - highp uvec4 b7 = texture(CA7, vec4(0.5), 0.27); -} - -void goodSample() -{ - lowp int a1 = gl_SampleID; - mediump vec2 a2 = gl_SamplePosition; - highp int a3 = gl_SampleMaskIn[0]; - gl_SampleMask[0] = a3; - mediump int n1 = gl_MaxSamples; - mediump int n2 = gl_NumSamples; -} - -uniform layout(r32f) highp image2D im2Df; -uniform layout(r32ui) highp uimage2D im2Du; -uniform layout(r32i) highp iimage2D im2Di; -uniform ivec2 P; - -uniform layout(rgba32f) highp image2D badIm2Df; // ERROR, needs readonly or writeonly -uniform layout(rgba8ui) highp uimage2D badIm2Du; // ERROR, needs readonly or writeonly -uniform layout(rgba16i) highp iimage2D badIm2Di; // ERROR, needs readonly or writeonly - -void goodImageAtom() -{ - float datf; - int dati; - uint datu; - - imageAtomicAdd( im2Di, P, dati); - imageAtomicAdd( im2Du, P, datu); - imageAtomicMin( im2Di, P, dati); - imageAtomicMin( im2Du, P, datu); - imageAtomicMax( im2Di, P, dati); - imageAtomicMax( im2Du, P, datu); - imageAtomicAnd( im2Di, P, dati); - imageAtomicAnd( im2Du, P, datu); - imageAtomicOr( im2Di, P, dati); - imageAtomicOr( im2Du, P, datu); - imageAtomicXor( im2Di, P, dati); - imageAtomicXor( im2Du, P, datu); - imageAtomicExchange(im2Di, P, dati); - imageAtomicExchange(im2Du, P, datu); - imageAtomicExchange(im2Df, P, datf); - imageAtomicCompSwap(im2Di, P, 3, dati); - imageAtomicCompSwap(im2Du, P, 5u, datu); - - imageAtomicMax(badIm2Di, P, dati); // ERROR, not an allowed layout() on the image - imageAtomicMax(badIm2Du, P, datu); // ERROR, not an allowed layout() on the image - imageAtomicExchange(badIm2Df, P, datf); // ERROR, not an allowed layout() on the image -} - -centroid out vec4 colorCentroidBad; // ERROR -flat out vec4 colorBadFlat; // ERROR -smooth out vec4 colorBadSmooth; // ERROR -noperspective out vec4 colorBadNo; // ERROR -flat centroid in vec2 colorfc; -in float scalarIn; - -sample in vec4 colorSampIn; -sample out vec4 colorSampleBad; // ERROR -flat sample in vec4 colorfsi; -sample in vec3 sampInArray[4]; - -void interp() -{ - float res; - vec2 res2; - vec3 res3; - vec4 res4; - - res2 = interpolateAtCentroid(colorfc); - res4 = interpolateAtCentroid(colorSampIn); - res4 = interpolateAtCentroid(colorfsi); - res = interpolateAtCentroid(scalarIn); - res3 = interpolateAtCentroid(sampInArray); // ERROR - res3 = interpolateAtCentroid(sampInArray[2]); - res2 = interpolateAtCentroid(sampInArray[2].xy); // ERROR - - res3 = interpolateAtSample(sampInArray, 1); // ERROR - res3 = interpolateAtSample(sampInArray[i], 0); - res2 = interpolateAtSample(sampInArray[2].xy, 2); // ERROR - res = interpolateAtSample(scalarIn, 1); - - res3 = interpolateAtOffset(sampInArray, vec2(0.2)); // ERROR - res3 = interpolateAtOffset(sampInArray[2], vec2(0.2)); - res2 = interpolateAtOffset(sampInArray[2].xy, vec2(0.2)); // ERROR, no swizzle - res = interpolateAtOffset(scalarIn + scalarIn, vec2(0.2)); // ERROR, no binary ops other than dereference - res = interpolateAtOffset(scalarIn, vec2(0.2)); - - float f; - res = interpolateAtCentroid(f); // ERROR, not interpolant - res4 = interpolateAtSample(outp, 0); // ERROR, not interpolant -} - -layout(blend_support_multiply) out; -layout(blend_support_screen) out; -layout(blend_support_overlay) out; -layout(blend_support_darken, blend_support_lighten) out; -layout(blend_support_colordodge) layout(blend_support_colorburn) out; -layout(blend_support_hardlight) out; -layout(blend_support_softlight) out; -layout(blend_support_difference) out; -layout(blend_support_exclusion) out; -layout(blend_support_hsl_hue) out; -layout(blend_support_hsl_saturation) out; -layout(blend_support_hsl_color) out; -layout(blend_support_hsl_luminosity) out; -layout(blend_support_all_equations) out; - -layout(blend_support_hsl_luminosity) out; // okay to repeat - -layout(blend_support_hsl_luminosity) in; // ERROR, only on "out" -layout(blend_support_hsl_luminosity) out vec4; // ERROR, only on standalone -layout(blend_support_hsl_luminosity) out vec4 badout; // ERROR, only on standalone -layout(blend_support_hsl_luminosity) struct badS {int i;}; // ERROR, only on standalone -layout(blend_support_hsl_luminosity) void blendFoo() { } // ERROR, only on standalone -void blendFoo(layout(blend_support_hsl_luminosity) vec3 v) { } // ERROR, only on standalone -layout(blend_support_flizbit) out; // ERROR, no flizbit - -out vec4 outAA[2][2]; // ERROR diff --git a/deps/glslang/Test/320.geom b/deps/glslang/Test/320.geom deleted file mode 100644 index 38d71c31..00000000 --- a/deps/glslang/Test/320.geom +++ /dev/null @@ -1,134 +0,0 @@ -#version 320 es - -precision mediump float; - -in fromVertex { - in vec3 color; -} fromV[]; - -in vec4 nonBlockUnsized[]; - -out toFragment { - out vec3 color; -} toF; - -out fromVertex { // okay to reuse a block name for another block name - vec3 color; -}; - -out fooB { // ERROR, cannot reuse block name as block instance - vec2 color; -} fromVertex; - -int fromVertex; // ERROR, cannot reuse a block name for something else - -out fooC { // ERROR, cannot have same name for block and instance name - vec2 color; -} fooC; - -void main() -{ - EmitVertex(); - EndPrimitive(); - EmitStreamVertex(1); // ERROR - EndStreamPrimitive(0); // ERROR - - color = fromV[0].color; - gl_ClipDistance[3] = // ERROR, no ClipDistance - gl_in[1].gl_ClipDistance[2]; // ERROR, no ClipDistance - gl_Position = gl_in[0].gl_Position; - - gl_PrimitiveID = gl_PrimitiveIDIn; - gl_Layer = 2; -} - -layout(stream = 4) out vec4 ov4; // ERROR, no streams - -layout(line_strip, points, triangle_strip, points, triangle_strip) out; // just means triangle_strip" - -out ooutb { vec4 a; } ouuaa6; - -layout(max_vertices = 200) out; -layout(max_vertices = 300) out; // ERROR, too big -void foo(layout(max_vertices = 4) int a) // ERROR -{ - ouuaa6.a = vec4(1.0); -} - -layout(line_strip, points, triangle_strip, points) out; // ERROR, changing output primitive -layout(line_strip, points) out; // ERROR, changing output primitive -layout(triangle_strip) in; // ERROR, not an input primitive -layout(triangle_strip) uniform; // ERROR -layout(triangle_strip) out vec4 badv4; // ERROR, not on a variable -layout(triangle_strip) in vec4 bad2v4[]; // ERROR, not on a variable or input -layout(invocations = 3) out outbn { int a; }; // 2 ERROR, not on a block, not until 4.0 -out outbn2 { - layout(invocations = 3) int a; // 2 ERRORs, not on a block member, not until 4.0 - layout(max_vertices = 3) int b; // ERROR, not on a block member - layout(triangle_strip) int c; // ERROR, not on a block member -} outbi; - -layout(lines) out; // ERROR, not on output -layout(lines_adjacency) in; -layout(triangles) in; // ERROR, can't change it -layout(triangles_adjacency) in; // ERROR, can't change it -layout(invocations = 4) in; - -in sameName { - int a15; -} insn[]; - -out sameName { - float f15; -}; - -uniform sameName { - bool b15; -}; - -const int summ = gl_MaxVertexAttribs + - gl_MaxGeometryInputComponents + - gl_MaxGeometryOutputComponents + - gl_MaxGeometryImageUniforms + - gl_MaxGeometryTextureImageUnits + - gl_MaxGeometryOutputVertices + - gl_MaxGeometryTotalOutputComponents + - gl_MaxGeometryUniformComponents + - gl_MaxGeometryAtomicCounters + - gl_MaxGeometryAtomicCounterBuffers + - gl_MaxVertexTextureImageUnits + - gl_MaxCombinedTextureImageUnits + - gl_MaxTextureImageUnits + - gl_MaxDrawBuffers; - -void fooe1() -{ - gl_ViewportIndex; // ERROR, not in ES - gl_MaxViewports; // ERROR, not in ES - insn.length(); // 4: lines_adjacency - int inv = gl_InvocationID; -} - -in vec4 explArray[4]; -in vec4 explArrayBad[5]; // ERROR, wrong size -in vec4 nonArrayed; // ERROR, not an array -flat out vec3 myColor1; -centroid out vec3 myColor2; -centroid in vec3 centr[]; -sample out vec4 perSampleColor; // ERROR without sample extensions - -layout(max_vertices = 200) out; // matching redecl - -layout(location = 7, component = 2) in float comp[]; // ERROR, es has no component - -void notHere() -{ - gl_MaxGeometryVaryingComponents; // ERROR, not in ES - gl_VerticesIn; // ERROR, not in ES -} - -void pointSize2() -{ - highp float ps = gl_in[3].gl_PointSize; // ERROR, need extension - gl_PointSize = ps; // ERROR, need extension -} diff --git a/deps/glslang/Test/320.tesc b/deps/glslang/Test/320.tesc deleted file mode 100644 index fbe0463e..00000000 --- a/deps/glslang/Test/320.tesc +++ /dev/null @@ -1,161 +0,0 @@ -#version 320 es - -layout(vertices = 4) out; -out int outa[gl_out.length()]; - -layout(quads) in; // ERROR -layout(ccw) out; // ERROR -layout(fractional_even_spacing) in; // ERROR - -patch in vec4 patchIn; // ERROR -patch out vec4 patchOut; - -void main() -{ - barrier(); - - int a = gl_MaxTessControlInputComponents + - gl_MaxTessControlOutputComponents + - gl_MaxTessControlTextureImageUnits + - gl_MaxTessControlUniformComponents + - gl_MaxTessControlTotalOutputComponents; - - vec4 p = gl_in[1].gl_Position; - float ps = gl_in[1].gl_PointSize; // ERROR, need point_size extension - float cd = gl_in[1].gl_ClipDistance[2]; // ERROR, not in ES - - int pvi = gl_PatchVerticesIn; - int pid = gl_PrimitiveID; - int iid = gl_InvocationID; - - gl_out[gl_InvocationID].gl_Position = p; - gl_out[gl_InvocationID].gl_PointSize = ps; // ERROR, need point_size extension - gl_out[gl_InvocationID].gl_ClipDistance[1] = cd; // ERROR, not in ES - - gl_TessLevelOuter[3] = 3.2; - gl_TessLevelInner[1] = 1.3; - - if (a > 10) - barrier(); // ERROR - else - barrier(); // ERROR - - barrier(); - - do { - barrier(); // ERROR - } while (a > 10); - - switch (a) { - default: - barrier(); // ERROR - break; - } - a < 12 ? a : (barrier(), a); // ERROR - { - barrier(); - } - - return; - - barrier(); // ERROR -} - -layout(vertices = 4) in; // ERROR, not on in -layout(vertices = 5) out; // ERROR, changing # - -void foo() -{ - gl_out[4].gl_Position; // ERROR, out of range - - barrier(); // ERROR, not in main -} - -in vec2 ina; // ERROR, not array -in vec2 inb[]; -in vec2 inc[18]; // ERROR, wrong size -in vec2 ind[gl_MaxPatchVertices]; -patch out float implA[]; // ERROR, not sized - -#extension GL_ARB_separate_shader_objects : enable - -layout(location = 3) in vec4 ivla[]; -layout(location = 4) in vec4 ivlb[]; -layout(location = 4) in vec4 ivlc[]; // ERROR, overlapping - -layout(location = 3) out vec4 ovla[]; -layout(location = 4) out vec4 ovlb[]; -layout(location = 4) out vec4 ovlc[]; // ERROR, overlapping - -patch out pinbn { - int a; -} pinbi; - -centroid out vec3 myColor2[]; -centroid in vec3 centr[]; -sample out vec4 perSampleColor[]; - -layout(vertices = 4) out float badlay[]; // ERROR, not on a variable -out float misSized[5]; // ERROR, size doesn't match -out float okaySize[4]; - -void pointSize2() -{ - float ps = gl_in[1].gl_PointSize; // ERROR, need point_size extension - gl_out[gl_InvocationID].gl_PointSize = ps; // ERROR, need point_size extension -} - -precise vec3 pv3; - -void goodfoop() -{ - precise float d; - - pv3 *= pv3; - pv3 = fma(pv3, pv3, pv3); - d = fma(d, d, d); -} - -void bb() -{ - gl_BoundingBoxEXT[0] = vec4(0.0); // ERROR without GL_EXT_primitive_bounding_box - gl_BoundingBoxOES[0] = vec4(0.0); // ERROR without GL_OES_primitive_bounding_box - gl_BoundingBox[0] = vec4(1.0); - gl_BoundingBox[1] = vec4(1.0); - gl_BoundingBox[2] = vec4(2.0); // ERROR, overflow -} - -#extension GL_EXT_primitive_bounding_box : enable -#extension GL_OES_primitive_bounding_box : enable - -void bbext() -{ - gl_BoundingBoxEXT[1] = vec4(0.0); - gl_BoundingBoxOES[1] = vec4(0.0); -} - -out patch badpatchBName { // ERROR, array size required - float f; -} badpatchIName[]; - -out patch patchBName { - float f; -} patchIName[4]; - -void outputtingOutparam(out int a) -{ - a = 2; -} - -void outputting() -{ - outa[gl_InvocationID] = 2; - outa[1] = 2; // ERROR, not gl_InvocationID - gl_out[0].gl_Position = vec4(1.0); // ERROR, not gl_InvocationID - outa[1]; - gl_out[0]; - outputtingOutparam(outa[0]); // ERROR, not gl_InvocationID - outputtingOutparam(outa[gl_InvocationID]); - patchIName[1].f = 3.14; - outa[(gl_InvocationID)] = 2; -} diff --git a/deps/glslang/Test/320.tese b/deps/glslang/Test/320.tese deleted file mode 100644 index cce2637c..00000000 --- a/deps/glslang/Test/320.tese +++ /dev/null @@ -1,114 +0,0 @@ -#version 320 es - -layout(vertices = 4) out; // ERROR -layout(quads, cw) in; -layout(triangles) in; // ERROR -layout(isolines) in; // ERROR - -layout(ccw) in; // ERROR -layout(cw) in; - -layout(fractional_odd_spacing) in; -layout(equal_spacing) in; // ERROR -layout(fractional_even_spacing) in; // ERROR - -layout(point_mode) in; - -patch in vec4 patchIn; -patch out vec4 patchOut; // ERROR - -void main() -{ - barrier(); // ERROR - - int a = gl_MaxTessEvaluationInputComponents + - gl_MaxTessEvaluationOutputComponents + - gl_MaxTessEvaluationTextureImageUnits + - gl_MaxTessEvaluationUniformComponents + - gl_MaxTessPatchComponents + - gl_MaxPatchVertices + - gl_MaxTessGenLevel; - - vec4 p = gl_in[1].gl_Position; - float ps = gl_in[1].gl_PointSize; // ERROR, need point_size extension - float cd = gl_in[1].gl_ClipDistance[2]; // ERROR, not in ES - - int pvi = gl_PatchVerticesIn; - int pid = gl_PrimitiveID; - vec3 tc = gl_TessCoord; - float tlo = gl_TessLevelOuter[3]; - float tli = gl_TessLevelInner[1]; - - gl_Position = p; - gl_PointSize = ps; // ERROR, need point_size extension - gl_ClipDistance[2] = cd; // ERROR, not in ES -} - -smooth patch in vec4 badp1; // ERROR -flat patch in vec4 badp2; // ERROR -noperspective patch in vec4 badp3; // ERROR -patch sample in vec3 badp4; // ERROR - -#extension GL_ARB_separate_shader_objects : enable - -in gl_PerVertex -{ - vec4 gl_Position; -} gl_in[]; - -in gl_PerVertex // ERROR, second redeclaration of gl_in -{ - vec4 gl_Position; -} gl_in[]; - -layout(quads, cw) out; // ERROR -layout(triangles) out; // ERROR -layout(isolines) out; // ERROR -layout(cw) out; // ERROR -layout(fractional_odd_spacing) out; // ERROR -layout(equal_spacing) out; // ERROR -layout(fractional_even_spacing) out; // ERROR -layout(point_mode) out; // ERROR - -in vec2 ina; // ERROR, not array -in vec2 inb[]; -in vec2 inc[18]; // ERROR, wrong size -in vec2 ind[gl_MaxPatchVertices]; - -in testbla { // ERROR, not array - int f; -} bla; - -in testblb { - int f; -} blb[]; - -in testblc { // ERROR wrong size - int f; -} blc[18]; - -in testbld { - int f; -} bld[gl_MaxPatchVertices]; - -layout(location = 23) in vec4 ivla[]; -layout(location = 24) in vec4 ivlb[]; -layout(location = 24) in vec4 ivlc[]; // ERROR, overlap - -layout(location = 23) out vec4 ovla[2]; -layout(location = 24) out vec4 ovlb[2]; // ERROR, overlap - -in float gl_TessLevelOuter[4]; // ERROR, can't redeclare - -patch in pinbn { - int a; -} pinbi; - -centroid out vec3 myColor2; -centroid in vec3 centr[]; -sample out vec4 perSampleColor; - -void bbbad() -{ - gl_BoundingBoxOES; // ERROR, wrong stage -} diff --git a/deps/glslang/Test/320.vert b/deps/glslang/Test/320.vert deleted file mode 100644 index 42f1515c..00000000 --- a/deps/glslang/Test/320.vert +++ /dev/null @@ -1,255 +0,0 @@ -#version 320 es - -out outbname { - int a; - out vec4 v; - highp sampler2D s; // ERROR, opaque type -} outbinst; - -out outbname2 { - layout(location = 12) int aAnon; - layout(location = 13) vec4 vAnon; -}; - -layout(location = 12) out highp int aliased; // ERROR, aliasing location - -in inbname { int a; } inbinst; // ERROR, no in block in vertex shader - -out gl_PerVertex { // ERROR, has extra member - highp vec4 gl_Position; - highp vec4 t; -}; - -void main() -{ - int sum = gl_VertexID + - gl_InstanceID; - gl_Position = vec4(1.0); - gl_PointSize = 2.0; // ERROR, removed by redeclaration -} - -out gl_PerVertex { // ERROR, already used and already redeclared - highp vec4 gl_Position; - highp vec4 t; -}; - -smooth out smo { // ERROR, no smooth on a block - int i; -} smon; - -flat out fmo { // ERROR, no flat on a block - int i; -} fmon; - -centroid out cmo { // ERROR, no centroid on a block - int i; -} cmon; - -invariant out imo { // ERROR, no invariant on a block - int i; -} imon; - -in vec2 inf, ing; -uniform ivec2 offsets[4]; -uniform sampler2D sArray[4]; -uniform int sIndex; -layout(binding = 0) uniform atomic_uint auArray[2]; -uniform ubName { int i; } ubInst[4]; -buffer bbName { int i; } bbInst[4]; -highp uniform writeonly image2D iArray[5]; -const ivec2 constOffsets[4] = ivec2[4](ivec2(0.1), ivec2(0.2), ivec2(0.3), ivec2(0.4)); - -void pfoo() -{ - precise vec2 h; - h = fma(inf, ing, h); - sArray[sIndex + 1]; - ubInst[sIndex + 1]; - bbInst[sIndex - 2]; // ERROR, still not supported - iArray[2]; - iArray[sIndex - 2]; - textureGatherOffset(sArray[0], vec2(0.1), ivec2(inf)); - textureGatherOffsets(sArray[0], vec2(0.1), constOffsets); - textureGatherOffsets(sArray[0], vec2(0.1), offsets); // ERROR, offset not constant -} - -uniform samplerBuffer noPreSamp1; // ERROR, no default precision -uniform isamplerBuffer noPreSamp2; // ERROR, no default precision -uniform usamplerBuffer noPreSamp3; // ERROR, no default precision -uniform writeonly imageBuffer noPreSamp4; // ERROR, no default precision -uniform writeonly iimageBuffer noPreSamp5; // ERROR, no default precision -uniform writeonly uimageBuffer noPreSamp6; // ERROR, no default precision - -precision highp samplerBuffer; -precision highp isamplerBuffer; -precision highp usamplerBuffer; -precision highp imageBuffer; -precision highp iimageBuffer; -precision highp uimageBuffer; - -#ifdef GL_OES_texture_buffer -uniform samplerBuffer bufSamp1; -uniform isamplerBuffer bufSamp2; -uniform usamplerBuffer bufSamp3; -#endif -#ifdef GL_EXT_texture_buffer -uniform writeonly imageBuffer bufSamp4; -uniform writeonly iimageBuffer bufSamp5; -uniform writeonly uimageBuffer bufSamp6; -#endif - -void bufferT() -{ - highp int s1 = textureSize(bufSamp1); - highp int s2 = textureSize(bufSamp2); - highp int s3 = textureSize(bufSamp3); - - highp int s4 = imageSize(bufSamp4); - highp int s5 = imageSize(bufSamp5); - highp int s6 = imageSize(bufSamp6); - - highp vec4 f1 = texelFetch(bufSamp1, s1); - highp ivec4 f2 = texelFetch(bufSamp2, s2); - highp uvec4 f3 = texelFetch(bufSamp3, s3); -} - -uniform writeonly imageCubeArray noPreCA1; // ERROR, no default precision -uniform writeonly iimageCubeArray noPreCA2; // ERROR, no default precision -uniform writeonly uimageCubeArray noPreCA3; // ERROR, no default precision - -uniform samplerCubeArray noPreCA4; // ERROR, no default precision -uniform samplerCubeArrayShadow noPreCA5; // ERROR, no default precision -uniform isamplerCubeArray noPreCA6; // ERROR, no default precision -uniform usamplerCubeArray noPreCA7; // ERROR, no default precision - -precision highp imageCubeArray ; -precision highp iimageCubeArray ; -precision highp uimageCubeArray ; - -precision highp samplerCubeArray ; -precision highp samplerCubeArrayShadow; -precision highp isamplerCubeArray ; -precision highp usamplerCubeArray ; - -uniform writeonly imageCubeArray CA1; -uniform writeonly iimageCubeArray CA2; -uniform writeonly uimageCubeArray CA3; - -layout(rgba16f) uniform readonly imageCubeArray rCA1; -layout(rgba32i) uniform readonly iimageCubeArray rCA2; -layout(r32ui) uniform readonly uimageCubeArray rCA3; - -#ifdef GL_OES_texture_cube_map_array -uniform samplerCubeArray CA4; -uniform samplerCubeArrayShadow CA5; -uniform isamplerCubeArray CA6; -uniform usamplerCubeArray CA7; -#endif - -void CAT() -{ - highp ivec3 s4 = textureSize(CA4, 1); - highp ivec3 s5 = textureSize(CA5, 1); - highp ivec3 s6 = textureSize(CA6, 1); - highp ivec3 s7 = textureSize(CA7, 1); - - highp vec4 t4 = texture(CA4, vec4(0.5)); - highp float t5 = texture(CA5, vec4(0.5), 3.0); - highp ivec4 t6 = texture(CA6, vec4(0.5)); - highp uvec4 t7 = texture(CA7, vec4(0.5)); - - highp vec4 L4 = textureLod(CA4, vec4(0.5), 0.24); - highp ivec4 L6 = textureLod(CA6, vec4(0.5), 0.26); - highp uvec4 L7 = textureLod(CA7, vec4(0.5), 0.27); - - highp vec4 g4 = textureGrad(CA4, vec4(0.5), vec3(0.1), vec3(0.2)); - highp ivec4 g6 = textureGrad(CA6, vec4(0.5), vec3(0.1), vec3(0.2)); - highp uvec4 g7 = textureGrad(CA7, vec4(0.5), vec3(0.1), vec3(0.2)); - - highp vec4 gath4 = textureGather(CA4, vec4(0.5)); - highp vec4 gathC4 = textureGather(CA4, vec4(0.5), 2); - highp ivec4 gath6 = textureGather(CA6, vec4(0.5)); - highp ivec4 gathC6 = textureGather(CA6, vec4(0.5), 1); - highp uvec4 gath7 = textureGather(CA7, vec4(0.5)); - highp uvec4 gathC7 = textureGather(CA7, vec4(0.5), 0); - - highp vec4 gath5 = textureGather(CA5, vec4(0.5), 2.5); - - highp ivec3 s1 = imageSize(CA1); - highp ivec3 s2 = imageSize(CA2); - highp ivec3 s3 = imageSize(CA3); - - imageStore(CA1, s3, vec4(1)); - imageStore(CA2, s3, ivec4(1)); - imageStore(CA3, s3, uvec4(1)); - - highp vec4 cl1 = imageLoad(rCA1, s3); - highp ivec4 cl2 = imageLoad(rCA2, s3); - highp uvec4 cl3 = imageLoad(rCA3, s3); -} - -uniform sampler2DMSArray noPrec2DMS; // ERROR, no default -uniform isampler2DMSArray noPrec2DMSi; // ERROR, no default -uniform usampler2DMSArray noPrec2DMSu; // ERROR, no default - -precision highp sampler2DMSArray; -precision highp isampler2DMSArray; -precision highp usampler2DMSArray; - -uniform sampler2DMSArray samp2DMSA; -uniform isampler2DMSArray samp2DMSAi; -uniform usampler2DMSArray samp2DMSAu; - -void MSA() -{ - vec4 tf = texelFetch(samp2DMSA, ivec3(5), 2); - ivec4 tfi = texelFetch(samp2DMSAi, ivec3(5), 2); - uvec4 tfu = texelFetch(samp2DMSAu, ivec3(5), 2); - - ivec3 tfs = textureSize(samp2DMSA); - ivec3 tfsi = textureSize(samp2DMSAi); - ivec3 tfsb = textureSize(samp2DMSAi, 4); // ERROR, no lod - ivec3 tfsu = textureSize(samp2DMSAu); -} - -uniform layout(r32f) highp image2D im2Df; -uniform layout(r32ui) highp uimage2D im2Du; -uniform layout(r32i) highp iimage2D im2Di; -uniform ivec2 P; - -void goodImageAtom() -{ - float datf; - int dati; - uint datu; - - imageAtomicAdd( im2Di, P, dati); - imageAtomicAdd( im2Du, P, datu); - imageAtomicMin( im2Di, P, dati); - imageAtomicMin( im2Du, P, datu); - imageAtomicMax( im2Di, P, dati); - imageAtomicMax( im2Du, P, datu); - imageAtomicAnd( im2Di, P, dati); - imageAtomicAnd( im2Du, P, datu); - imageAtomicOr( im2Di, P, dati); - imageAtomicOr( im2Du, P, datu); - imageAtomicXor( im2Di, P, dati); - imageAtomicXor( im2Du, P, datu); - imageAtomicExchange(im2Di, P, dati); - imageAtomicExchange(im2Du, P, datu); - imageAtomicExchange(im2Df, P, datf); - imageAtomicCompSwap(im2Di, P, 3, dati); - imageAtomicCompSwap(im2Du, P, 5u, datu); -} - -sample out vec4 colorSample; -flat sample out vec4 colorfsi; -sample out vec3 sampInArray[4]; -in vec4 inv4; - -void badInterp() -{ - interpolateAtCentroid(inv4); // ERROR, wrong stage - interpolateAtSample(inv4, 1); // ERROR, need extension - interpolateAtOffset(inv4, vec2(0.2)); // ERROR, need extension -} diff --git a/deps/glslang/Test/330.frag b/deps/glslang/Test/330.frag deleted file mode 100644 index cf22d7a4..00000000 --- a/deps/glslang/Test/330.frag +++ /dev/null @@ -1,155 +0,0 @@ -#version 330 compatibility - -in vec4 inVar; -layout(location=0, index=0) out vec4 outVar; - -varying vec4 varyingVar; - -void main() -{ - gl_FragColor = varyingVar; // link ERROR: user output was used - gl_FragData[1] = inVar; // link ERROR: user output was used - int buffer = 4; -} - -#extension GL_ARB_separate_shader_objects : enable - -in gl_PerFragment { - vec4 gl_Color; -}; - -void foo() -{ - vec4 c = gl_Color; - outVar = inVar; -} - -in gl_block { // ERROR - int gl_i; -} gl_name; - -in myBlock { - int gl_i; // ERROR -} gl_name; // ERROR - -in gl_PerVertex { // ERROR - vec4 gl_FragCoord; -} gl_in[]; - -in gl_PerVertex { // ERROR - vec4 gl_FragCoord; -}; // ERROR - -const int start = 6; -layout(location = -2) in vec4 v1; // ERROR -layout(location = start + 2) in vec4 v2; // ERROR -layout(location = 4.7e10) in vec4 v20; // ERROR -layout(location = +60) in float v21; // ERROR -layout(location = (2)) in float v22; // ERROR - -struct S { - float f1; - layout(location = 3) float f2; // ERROR -}; - -layout(location = 1) in inblock { // ERROR - float f1; - layout(location = 3) float f2; // ERROR -}; - -layout(location = 1) uniform ublock { // ERROR - float f1; - layout(location = 3) float f2; // ERROR -} uinst; - -#extension GL_ARB_enhanced_layouts : enable - -layout(location = start) in vec4 v3; -layout(location = -2) in vec4 v4; // ERROR -layout(location = -start) in vec4 v5; // ERROR -layout(location = start*start - 2 - 4) in vec4 v6; -layout(location = +61) in float v23; -layout(location = (62)) in float v24; - -struct S2 { - float f1; - layout(location = 3) float f2; // ERROR -}; - -layout(location = 28) in inblock2 { - bool b1; - float f1; - layout(location = 25) float f2; - vec4 f3; - layout(location = 21) S2 s2; - vec4 f4; - vec4 f5; -} ininst2; - -layout(location = 13) uniform ublock2 { // ERROR - float f1; - layout(location = 3) float f2; // ERROR -} uinst2; - -in inblock3 { // ERROR, mix of location internal with no location external - float f1; - layout(location = 40) float f2; -} in3; - -in ublock4 { - layout(location = 50) float f1; - layout(location = 51) float f2; -} in4; - -layout(location = 33) in struct SS { - vec3 a; // gets location 33 - mat2 b; // gets locations 34 and 35 - vec4 c[2]; // gets locations 36 and 37 - layout (location = 38) vec2 A; // ERROR, can't use on struct member -} s; - -layout(location = 44) in block { - vec4 d; // gets location 44 - vec4 e; // gets location 45 - layout(location = 47) vec4 f; // gets location 47 - vec4 g; // gets location 48 - layout (location = 41) vec4 h; // gets location 41 - vec4 i; // gets location 42 - vec4 j; // gets location 43 - vec4 k; // ERROR, location 44 already used -}; - -layout(index=0) out vec4 outVar2; // ERROR: missing explicit location -layout(location=0, index=1) out vec4 outVar3; // no error even though location is overlapping -layout(location=0, index=1) out vec4 outVar4; // ERROR overlapping -layout(location=27, index=0) in vec4 indexIn; // ERROR, not on in -layout(location=0, index=0) in; // ERROR, not just on in -layout(location=0, index=0) out; // ERROR, need a variable -layout(location=26, index=0) out indexBlock { int a; } indexBlockI; // ERROR, not on a block - -int precise; // okay, not a keyword yet -struct SKeyMem { int precise; } KeyMem; // okay, not a keyword yet - -void fooKeyMem() -{ - KeyMem.precise; -} - -layout(location=28, index=2) out vec4 outIndex2; // ERROR index out of range - -layout(location=4) uniform vec4 ucolor0; // ERROR: extension is not enabled - -#extension GL_ARB_explicit_uniform_location : enable - -layout(location=5) uniform vec4 ucolor1; - -layout(location=6) uniform ColorsBuffer // ERROR: location cannot be applied in uniform buffer block -{ - vec4 colors[128]; -} colorsBuffer; - - -void testOverload() { - float overloadTest = 42; - overloadTest = smoothstep(0, 1, overloadTest); -} \ No newline at end of file diff --git a/deps/glslang/Test/330comp.frag b/deps/glslang/Test/330comp.frag deleted file mode 100644 index 50b037da..00000000 --- a/deps/glslang/Test/330comp.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 330 compatibility - -in vec4 inVar; -out vec4 outVar; - -varying vec4 varyingVar; - -void main() -{ - gl_FragColor = varyingVar; - gl_FragData[1] = inVar * gl_ModelViewMatrix; -} diff --git a/deps/glslang/Test/400.frag b/deps/glslang/Test/400.frag deleted file mode 100644 index 039d4809..00000000 --- a/deps/glslang/Test/400.frag +++ /dev/null @@ -1,201 +0,0 @@ -#version 400 core - -in vec2 c2D; -flat in int i; -out vec4 outp; -uniform sampler2D arrayedSampler[5]; -uniform usampler2DRect samp2dr; -uniform isampler2DArray isamp2DA; - -void main() -{ - vec4 v; - v = texture(arrayedSampler[i], c2D); - outp.x = gl_ClipDistance[1]; - - ivec2 offsets[4]; - const ivec2 constOffsets[4] = ivec2[4](ivec2(1,2), ivec2(3,4), ivec2(15,16), ivec2(-2,0)); - uvec4 uv4 = textureGatherOffsets(samp2dr, c2D, offsets, 2); // ERROR, offsets not constant - uv4 = textureGatherOffsets(samp2dr, c2D, constOffsets, 2); - vec4 v4 = textureGather(arrayedSampler[0], c2D); - ivec4 iv4 = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(1), 3); - iv4 = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(1), i); // ERROR, last argument not const - iv4 = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(1), 4); // ERROR, last argument out of range - iv4 = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(1), 1+2); - iv4 = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(i)); - - vec4 c = gl_FragCoord; -} - -layout(location = 4) in vec4 vl; // ERROR, not supported - -#ifdef GL_ARB_separate_shader_objects -#extension GL_ARB_separate_shader_objects : enable -#endif - -layout(location = 6) in vec4 vl2; - -layout(location = 3) uniform vec3 uv3; - -layout(location = 5) in vec4 gl_Color; // ERROR, layout -noperspective in float gl_ClipDistance[4]; // ERROR, can't change qualifier - -layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord; // ERROR, declared after use - -uniform sampler2DRectShadow u2drs; - -void foo23() -{ - const ivec2[3] offsets = ivec2[3](ivec2(1,2), ivec2(3,4), ivec2(15,16)); - - textureProjGradOffset(u2drs, outp, vec2(0.0), vec2(0.0), ivec2(c2D)); // ERROR, offset not constant - textureProjGradOffset(u2drs, outp, vec2(0.0), vec2(0.0), offsets[1]); - textureProjGradOffset(u2drs, outp, vec2(0.0), vec2(0.0), offsets[2]); // ERROR, offset out of range - textureProjGradOffset(u2drs, outp, vec2(0.0), vec2(0.0), ivec2(-10, 20)); // ERROR, offset out of range -} - -patch in vec4 patchIn; // ERROR -patch out vec4 patchOut; // ERROR - -void foo24() -{ - dvec3 df, di; - df = modf(dvec3(outp.xyz), di); -} - -in float in1; -in vec2 in2; -in vec3 in3; -in vec4 in4; - -void foodc1() -{ - vec2 v2 = dFdxFine(in2); // ERROR - vec3 v3 = dFdyCoarse(in3); // ERROR - vec4 v4 = fwidthCoarse(in4) + fwidthFine(in4); // ERROR -} - -#extension GL_ARB_derivative_control : enable - -void foodc2() -{ - vec2 v2 = dFdxFine(in2); - vec3 v3 = dFdyCoarse(in3); - vec4 v4 = fwidthCoarse(in4) + fwidthFine(in4); - - uint u1; - ivec3 i3; - ivec2 i2; - v2 = frexp(v2, i2); - v3 = ldexp(v3, i3); - - u1 = packUnorm4x8(v4); - u1 = packSnorm4x8(v4); - v4 = unpackUnorm4x8(u1); - v4 = unpackSnorm4x8(u1); - - double d; - uvec2 u2; - d = packDouble2x32(u2); - u2 = unpackDouble2x32(d); -} - -sample in vec4 colorSampIn; -sample out vec4 colorSampleBad; // ERROR -noperspective in vec4 colorfsi; -sample in vec3 sampInArray[4]; -smooth in float scalarIn; -flat centroid in vec2 colorfc; - -struct S { - float x; -}; - -in S s1; -sample S s2; - -void interp() -{ - interpolateAtCentroid(colorfc); - interpolateAtCentroid(colorSampIn); - interpolateAtCentroid(colorfsi); - interpolateAtCentroid(scalarIn); - interpolateAtCentroid(sampInArray); // ERROR - interpolateAtCentroid(sampInArray[2]); - interpolateAtCentroid(sampInArray[2].xy); // ERROR - - interpolateAtSample(sampInArray, 1); // ERROR - interpolateAtSample(sampInArray[i], 0); - interpolateAtSample(s1.x, 2); - interpolateAtSample(scalarIn, 1); - - interpolateAtOffset(sampInArray, vec2(0.2)); // ERROR - interpolateAtOffset(sampInArray[2], vec2(0.2)); - interpolateAtOffset(sampInArray[2].xy, vec2(0.2)); // ERROR, no swizzle - interpolateAtOffset(scalarIn + scalarIn, vec2(0.2)); // ERROR, no binary ops other than dereference - interpolateAtOffset(s2.x, vec2(0.2)); // ERROR - - float f; - interpolateAtCentroid(f); // ERROR, not interpolant - interpolateAtSample(outp, 0); // ERROR, not interpolant -} - -uniform sampler1D samp1D; -uniform isampler2D isamp2D; -uniform usampler3D usamp3D; -uniform samplerCube sampCube; -uniform isampler1DArray isamp1DA; -uniform usampler2DArray usamp2DA; -uniform isamplerCubeArray isampCubeA; - -uniform sampler1DShadow samp1Ds; -uniform sampler2DShadow samp2Ds; -uniform samplerCubeShadow sampCubes; -uniform sampler1DArrayShadow samp1DAs; -uniform sampler2DArrayShadow samp2DAs; -uniform samplerCubeArrayShadow sampCubeAs; - -uniform samplerBuffer sampBuf; -uniform sampler2DRect sampRect; - -void qlod() -{ - vec2 lod; - float pf; - vec2 pf2; - vec3 pf3; - - lod = textureQueryLod(samp1D, pf); - lod = textureQueryLod(isamp2D, pf2); - lod = textureQueryLod(usamp3D, pf3); - lod = textureQueryLod(sampCube, pf3); - lod = textureQueryLod(isamp1DA, pf); - lod = textureQueryLod(usamp2DA, pf2); - lod = textureQueryLod(isampCubeA, pf3); - - lod = textureQueryLod(samp1Ds, pf); - lod = textureQueryLod(samp2Ds, pf2); - lod = textureQueryLod(sampCubes, pf3); - lod = textureQueryLod(samp1DAs, pf); - lod = textureQueryLod(samp2DAs, pf2); - lod = textureQueryLod(sampCubeAs, pf3); - - lod = textureQueryLod(sampBuf, pf); // ERROR - lod = textureQueryLod(sampRect, pf2); // ERROR -} - -uniform uint uu; -out uint iout; - -void bitwiseConv() -{ - iout = uu & i; - iout += uu ^ i; - iout += i | uu; -} - -subroutine(subT1, subT2); -subroutine float subT1() { return 1.0; } -subroutine float subT2() { return 1.0; } - -struct SKeyMem { int precise; } KeyMem; // ERROR, keyword can't be a member diff --git a/deps/glslang/Test/400.geom b/deps/glslang/Test/400.geom deleted file mode 100644 index f8e89558..00000000 --- a/deps/glslang/Test/400.geom +++ /dev/null @@ -1,330 +0,0 @@ -#version 400 core - -void main() -{ - EmitStreamVertex(1); - EndStreamPrimitive(0); - EmitVertex(); - EndPrimitive(); - int id = gl_InvocationID; -} - -layout(invocations = 4) in outbn { int a; } bn[]; // ERROR, not on a block -layout(max_vertices = 127) out; -layout(invocations = 4) in; - -#extension GL_ARB_separate_shader_objects : enable - -in gl_PerVertex { // testing input arrays with a block redeclaration, see 420.geom for without - vec4 gl_Position; - layout(std140, location = 3) patch float gl_PointSize; // ERRORs... -} gl_in[]; - -void foo() -{ - gl_in.length(); // ERROR - gl_in[1].gl_Position; -} - -in vec4 color[]; -in vec4 color2[]; -in vec4 colorS[3]; -in vec4 colorBad[4]; - -void foo2() -{ - color.length(); // ERROR - colorS.length(); -} - -layout(triangles) in; // give ERROR just for colorBad - -in vec4 color[3]; -in vec4 color2[3]; -in vec4 colorbad2[2]; // ERROR - -void foo3() -{ - gl_in.length(); - color.length(); - color2.length(); - colorS.length(); -} - -layout(location = 4) in vec4 cva[3]; -layout(location = 5) in vec4 cvb[3]; -layout(location = 2) in mat3 cmc[3]; // ERROR, collision - -patch in vec4 patchIn[]; // ERROR -patch out vec4 patchOut; // ERROR - -in float scalar; // ERROR, no array - -layout(max_vertices = 127, invocations = 4) out; // ERROR -layout(invocations = 4, max_vertices = 127) in; // ERROR -layout(max_vertices = 127, invocations = 4) uniform; // 2 ERRORs - -in inblockscalar { - int a; -} inbls; // ERROR, not an array - -in inblocka { - int a; -} inbla[17]; // ERROR, wrong array size - -void bits() -{ - uvec2 u2; - u2 = uaddCarry(u2, u2, u2); - uint u1; - u1 = usubBorrow(u1, u1, u1); - uvec4 u4; - umulExtended(u4, u4, u4, u4); - ivec4 i4; - imulExtended(i4, i4, i4, i4); - int i1; - i1 = bitfieldExtract(i1, 4, 5); - uvec3 u3; - u3 = bitfieldExtract(u3, 4, 5); - ivec3 i3; - i3 = bitfieldInsert(i3, i3, 4, 5); - u1 = bitfieldInsert(u1, u1, 4, 5); - ivec2 i2; - i2 = bitfieldReverse(i2); - u4 = bitfieldReverse(u4); - i1 = bitCount(i1); - i3 = bitCount(u3); - i2 = findLSB(i2); - i4 = findLSB(u4); - i1 = findMSB(i1); - i2 = findMSB(u2); -} - -layout(location = 7, index = 1) out vec4 indexedOut; - -uniform sampler1D samp1D; -uniform sampler2DShadow samp2Ds; - -void qlod() -{ - vec2 lod; - float pf; - vec2 pf2; - vec3 pf3; - - lod = textureQueryLod(samp1D, pf); // ERROR, only in fragment - lod = textureQueryLod(samp2Ds, pf2); // ERROR, only in fragment -} - -void doubles() -{ - double doublev; - dvec2 dvec2v; - dvec3 dvec3v; - dvec4 dvec4v; - - bool boolv; - bvec2 bvec2v; - bvec3 bvec3v; - bvec4 bvec4v; - - doublev = sqrt(2.9); - dvec2v = sqrt(dvec2(2.7)); - dvec3v = sqrt(dvec3(2.0)); - dvec4v = sqrt(dvec4(2.1)); - - doublev += inversesqrt(doublev); - dvec2v += inversesqrt(dvec2v); - dvec3v += inversesqrt(dvec3v); - dvec4v += inversesqrt(dvec4v); - - doublev += abs(doublev); - dvec2v += abs(dvec2v); - dvec3v += abs(dvec3v); - dvec4v += abs(dvec4v); - - doublev += sign(doublev); - dvec2v += sign(dvec2v); - dvec3v += sign(dvec3v); - dvec4v += sign(dvec4v); - - doublev += floor(doublev); - dvec2v += floor(dvec2v); - dvec3v += floor(dvec3v); - dvec4v += floor(dvec4v); - - doublev += trunc(doublev); - dvec2v += trunc(dvec2v); - dvec3v += trunc(dvec3v); - dvec4v += trunc(dvec4v); - - doublev += round(doublev); - dvec2v += round(dvec2v); - dvec3v += round(dvec3v); - dvec4v += round(dvec4v); - - doublev += roundEven(doublev); - dvec2v += roundEven(dvec2v); - dvec3v += roundEven(dvec3v); - dvec4v += roundEven(dvec4v); - - doublev += ceil(doublev); - dvec2v += ceil(dvec2v); - dvec3v += ceil(dvec3v); - dvec4v += ceil(dvec4v); - - doublev += fract(doublev); - dvec2v += fract(dvec2v); - dvec3v += fract(dvec3v); - dvec4v += fract(dvec4v); - - doublev += mod(doublev, doublev); - dvec2v += mod(dvec2v, doublev); - dvec3v += mod(dvec3v, doublev); - dvec4v += mod(dvec4v, doublev); - dvec2v += mod(dvec2v, dvec2v); - dvec3v += mod(dvec3v, dvec3v); - dvec4v += mod(dvec4v, dvec4v); - - doublev += modf(doublev, doublev); - dvec2v += modf(dvec2v, dvec2v); - dvec3v += modf(dvec3v, dvec3v); - dvec4v += modf(dvec4v, dvec4v); - - doublev += min(doublev, doublev); - dvec2v += min(dvec2v, doublev); - dvec3v += min(dvec3v, doublev); - dvec4v += min(dvec4v, doublev); - dvec2v += min(dvec2v, dvec2v); - dvec3v += min(dvec3v, dvec3v); - dvec4v += min(dvec4v, dvec4v); - - doublev += max(doublev, doublev); - dvec2v += max(dvec2v, doublev); - dvec3v += max(dvec3v, doublev); - dvec4v += max(dvec4v, doublev); - dvec2v += max(dvec2v, dvec2v); - dvec3v += max(dvec3v, dvec3v); - dvec4v += max(dvec4v, dvec4v); - - doublev += clamp(doublev, doublev, doublev); - dvec2v += clamp(dvec2v, doublev, doublev); - dvec3v += clamp(dvec3v, doublev, doublev); - dvec4v += clamp(dvec4v, doublev, doublev); - dvec2v += clamp(dvec2v, dvec2v, dvec2v); - dvec3v += clamp(dvec3v, dvec3v, dvec3v); - dvec4v += clamp(dvec4v, dvec4v, dvec4v); - - doublev += mix(doublev, doublev, doublev); - dvec2v += mix(dvec2v, dvec2v, doublev); - dvec3v += mix(dvec3v, dvec3v, doublev); - dvec4v += mix(dvec4v, dvec4v, doublev); - dvec2v += mix(dvec2v, dvec2v, dvec2v); - dvec3v += mix(dvec3v, dvec3v, dvec3v); - dvec4v += mix(dvec4v, dvec4v, dvec4v); - doublev += mix(doublev, doublev, boolv); - dvec2v += mix(dvec2v, dvec2v, bvec2v); - dvec3v += mix(dvec3v, dvec3v, bvec3v); - dvec4v += mix(dvec4v, dvec4v, bvec4v); - - doublev += step(doublev, doublev); - dvec2v += step(dvec2v, dvec2v); - dvec3v += step(dvec3v, dvec3v); - dvec4v += step(dvec4v, dvec4v); - dvec2v += step(doublev, dvec2v); - dvec3v += step(doublev, dvec3v); - dvec4v += step(doublev, dvec4v); - - doublev += smoothstep(doublev, doublev, doublev); - dvec2v += smoothstep(dvec2v, dvec2v, dvec2v); - dvec3v += smoothstep(dvec3v, dvec3v, dvec3v); - dvec4v += smoothstep(dvec4v, dvec4v, dvec4v); - dvec2v += smoothstep(doublev, doublev, dvec2v); - dvec3v += smoothstep(doublev, doublev, dvec3v); - dvec4v += smoothstep(doublev, doublev, dvec4v); - - boolv = isnan(doublev); - bvec2v = isnan(dvec2v); - bvec3v = isnan(dvec3v); - bvec4v = isnan(dvec4v); - - boolv = boolv ? isinf(doublev) : false; - bvec2v = boolv ? isinf(dvec2v) : bvec2(false); - bvec3v = boolv ? isinf(dvec3v) : bvec3(false); - bvec4v = boolv ? isinf(dvec4v) : bvec4(false); - - doublev += length(doublev); - doublev += length(dvec2v); - doublev += length(dvec3v); - doublev += length(dvec4v); - - doublev += distance(doublev, doublev); - doublev += distance(dvec2v, dvec2v); - doublev += distance(dvec3v, dvec3v); - doublev += distance(dvec4v, dvec4v); - - doublev += dot(doublev, doublev); - doublev += dot(dvec2v, dvec2v); - doublev += dot(dvec3v, dvec3v); - doublev += dot(dvec4v, dvec4v); - - dvec3v += cross(dvec3v, dvec3v); - - doublev += normalize(doublev); - dvec2v += normalize(dvec2v); - dvec3v += normalize(dvec3v); - dvec4v += normalize(dvec4v); - - doublev += faceforward(doublev, doublev, doublev); - dvec2v += faceforward(dvec2v, dvec2v, dvec2v); - dvec3v += faceforward(dvec3v, dvec3v, dvec3v); - dvec4v += faceforward(dvec4v, dvec4v, dvec4v); - - doublev += reflect(doublev, doublev); - dvec2v += reflect(dvec2v, dvec2v); - dvec3v += reflect(dvec3v, dvec3v); - dvec4v += reflect(dvec4v, dvec4v); - - doublev += refract(doublev, doublev, doublev); - dvec2v += refract(dvec2v, dvec2v, doublev); - dvec3v += refract(dvec3v, dvec3v, doublev); - dvec4v += refract(dvec4v, dvec4v, doublev); - - dmat2 dmat2v = outerProduct(dvec2v, dvec2v); - dmat3 dmat3v = outerProduct(dvec3v, dvec3v); - dmat4 dmat4v = outerProduct(dvec4v, dvec4v); - dmat2x3 dmat2x3v = outerProduct(dvec3v, dvec2v); - dmat3x2 dmat3x2v = outerProduct(dvec2v, dvec3v); - dmat2x4 dmat2x4v = outerProduct(dvec4v, dvec2v); - dmat4x2 dmat4x2v = outerProduct(dvec2v, dvec4v); - dmat3x4 dmat3x4v = outerProduct(dvec4v, dvec3v); - dmat4x3 dmat4x3v = outerProduct(dvec3v, dvec4v); - - dmat2v *= matrixCompMult(dmat2v, dmat2v); - dmat3v *= matrixCompMult(dmat3v, dmat3v); - dmat4v *= matrixCompMult(dmat4v, dmat4v); - dmat2x3v = matrixCompMult(dmat2x3v, dmat2x3v); - dmat2x4v = matrixCompMult(dmat2x4v, dmat2x4v); - dmat3x2v = matrixCompMult(dmat3x2v, dmat3x2v); - dmat3x4v = matrixCompMult(dmat3x4v, dmat3x4v); - dmat4x2v = matrixCompMult(dmat4x2v, dmat4x2v); - dmat4x3v = matrixCompMult(dmat4x3v, dmat4x3v); - - dmat2v *= transpose(dmat2v); - dmat3v *= transpose(dmat3v); - dmat4v *= transpose(dmat4v); - dmat2x3v = transpose(dmat3x2v); - dmat3x2v = transpose(dmat2x3v); - dmat2x4v = transpose(dmat4x2v); - dmat4x2v = transpose(dmat2x4v); - dmat3x4v = transpose(dmat4x3v); - dmat4x3v = transpose(dmat3x4v); - - doublev += determinant(dmat2v); - doublev += determinant(dmat3v); - doublev += determinant(dmat4v); - - dmat2v *= inverse(dmat2v); - dmat3v *= inverse(dmat3v); - dmat4v *= inverse(dmat4v); -} diff --git a/deps/glslang/Test/400.tesc b/deps/glslang/Test/400.tesc deleted file mode 100644 index 6d609d58..00000000 --- a/deps/glslang/Test/400.tesc +++ /dev/null @@ -1,125 +0,0 @@ -#version 400 core - -layout(vertices = 4) out; -int outa[gl_out.length()]; - -layout(quads) in; // ERROR -layout(ccw) out; // ERROR -layout(fractional_even_spacing) in; // ERROR - -patch in vec4 patchIn; // ERROR -patch out vec4 patchOut; - -void main() -{ - barrier(); - - int a = gl_MaxTessControlInputComponents + - gl_MaxTessControlOutputComponents + - gl_MaxTessControlTextureImageUnits + - gl_MaxTessControlUniformComponents + - gl_MaxTessControlTotalOutputComponents; - - vec4 p = gl_in[1].gl_Position; - float ps = gl_in[1].gl_PointSize; - float cd = gl_in[1].gl_ClipDistance[2]; - - int pvi = gl_PatchVerticesIn; - int pid = gl_PrimitiveID; - int iid = gl_InvocationID; - - gl_out[gl_InvocationID].gl_Position = p; - gl_out[gl_InvocationID].gl_PointSize = ps; - gl_out[gl_InvocationID].gl_ClipDistance[1] = cd; - - gl_TessLevelOuter[3] = 3.2; - gl_TessLevelInner[1] = 1.3; - - if (a > 10) - barrier(); // ERROR - else - barrier(); // ERROR - - barrier(); - - do { - barrier(); // ERROR - } while (a > 10); - - switch (a) { - default: - barrier(); // ERROR - break; - } - a < 12 ? a : (barrier(), a); // ERROR - { - barrier(); - } - - return; - - barrier(); // ERROR -} - -layout(vertices = 4) in; // ERROR -layout(vertices = 5) out; // ERROR - -void foo() -{ - gl_out[4].gl_PointSize; // ERROR - - barrier(); // ERROR -} - -in vec2 ina; // ERROR, not array -in vec2 inb[]; -in vec2 inc[18]; // ERROR, wrong size -in vec2 ind[gl_MaxPatchVertices]; - -#extension GL_ARB_separate_shader_objects : enable - -layout(location = 3) in vec4 ivla[]; -layout(location = 4) in vec4 ivlb[]; -layout(location = 4) in vec4 ivlc[]; // ERROR, overlapping - -layout(location = 3) out vec4 ovla[]; -layout(location = 4) out vec4 ovlb[]; -layout(location = 4) out vec4 ovlc[]; // ERROR, overlapping - -precise vec3 pv3; - -void foop() -{ - precise double d; - - pv3 *= pv3; - pv3 = fma(pv3, pv3, pv3); - d = fma(d, d, d); -} - -patch out pinbn { - int a; -} pinbi; - -invariant precise out vec4 badOrder[]; // ERROR, precise must appear first -void badp(out precise float f); // ERROR, precise must appear first - -void devi() -{ - gl_DeviceIndex; // ERROR, no extension - gl_ViewIndex; // ERROR, no extension -} - -#ifdef GL_EXT_device_group -#extension GL_EXT_device_group : enable -#endif - -#ifdef GL_EXT_multiview -#extension GL_EXT_multiview : enable -#endif - -void devie() -{ - gl_DeviceIndex; - gl_ViewIndex; -} diff --git a/deps/glslang/Test/400.tese b/deps/glslang/Test/400.tese deleted file mode 100644 index a3d30fea..00000000 --- a/deps/glslang/Test/400.tese +++ /dev/null @@ -1,125 +0,0 @@ -#version 400 core - -layout(vertices = 4) out; // ERROR -layout(quads, cw) in; -layout(triangles) in; // ERROR -layout(isolines) in; // ERROR - -layout(ccw) in; // ERROR -layout(cw) in; - -layout(fractional_odd_spacing) in; -layout(equal_spacing) in; // ERROR -layout(fractional_even_spacing) in; // ERROR - -layout(point_mode) in; - -patch in vec4 patchIn; -patch out vec4 patchOut; // ERROR - -void main() -{ - barrier(); // ERROR - - int a = gl_MaxTessEvaluationInputComponents + - gl_MaxTessEvaluationOutputComponents + - gl_MaxTessEvaluationTextureImageUnits + - gl_MaxTessEvaluationUniformComponents + - gl_MaxTessPatchComponents + - gl_MaxPatchVertices + - gl_MaxTessGenLevel; - - vec4 p = gl_in[1].gl_Position; - float ps = gl_in[1].gl_PointSize; - float cd = gl_in[1].gl_ClipDistance[2]; - - int pvi = gl_PatchVerticesIn; - int pid = gl_PrimitiveID; - vec3 tc = gl_TessCoord; - float tlo = gl_TessLevelOuter[3]; - float tli = gl_TessLevelInner[1]; - - gl_Position = p; - gl_PointSize = ps; - gl_ClipDistance[2] = cd; -} - -smooth patch in vec4 badp1; // ERROR -flat patch in vec4 badp2; // ERROR -noperspective patch in vec4 badp3; // ERROR -patch sample in vec3 badp4; // ERROR - -#extension GL_ARB_separate_shader_objects : enable - -in gl_PerVertex -{ - float gl_ClipDistance[1]; -} gl_in[]; - -in gl_PerVertex // ERROR, second redeclaration of gl_in -{ - float gl_ClipDistance[1]; -} gl_in[]; - -layout(quads, cw) out; // ERROR -layout(triangles) out; // ERROR -layout(isolines) out; // ERROR -layout(cw) out; // ERROR -layout(fractional_odd_spacing) out; // ERROR -layout(equal_spacing) out; // ERROR -layout(fractional_even_spacing) out; // ERROR -layout(point_mode) out; // ERROR - -in vec2 ina; // ERROR, not array -in vec2 inb[]; -in vec2 inc[18]; // ERROR, wrong size -in vec2 ind[gl_MaxPatchVertices]; - -in testbla { - int f; -} bla; // ERROR, not array - -in testblb { - int f; -} blb[]; - -in testblc { - int f; -} blc[18]; // ERROR wrong size - -in testbld { - int f; -} bld[gl_MaxPatchVertices]; - -layout(location = 23) in vec4 ivla[]; -layout(location = 24) in vec4 ivlb[]; -layout(location = 24) in vec4 ivlc[]; // ERROR - -layout(location = 23) out vec4 ovla[2]; -layout(location = 24) out vec4 ovlb[2]; // ERROR - -in float gl_TessLevelOuter[4]; // ERROR, can't redeclare - -patch in pinbn { - int a; -} pinbi; - -void devi() -{ - gl_DeviceIndex; // ERROR, no extension - gl_ViewIndex; // ERROR, no extension -} - -#ifdef GL_EXT_device_group -#extension GL_EXT_device_group : enable -#endif - -#ifdef GL_EXT_multiview -#extension GL_EXT_multiview : enable -#endif - -void devie() -{ - gl_DeviceIndex; - gl_ViewIndex; -} diff --git a/deps/glslang/Test/400.vert b/deps/glslang/Test/400.vert deleted file mode 100644 index 315c7ea0..00000000 --- a/deps/glslang/Test/400.vert +++ /dev/null @@ -1,106 +0,0 @@ -#version 400 core - -in double d; // ERROR, no doubles -in dvec3 d3; // ERROR, no doubles -in dmat4 dm4; // ERROR, no doubles - -// function selection under type conversion -void foo1(double a, uint b) {} -void foo1(double a, int b) {} -void foo1(double a, float b) {} -void foo1(double a, double b){} - -void foo2(double a, float b) {} -void foo2(double a, double b){} - -void foo3(double a, float b) {} -void foo3(float a, double b) {} - -void ftd( int, float, double) {} -void ftd( uint, float, double) {} -void ftd(float, double, double) {} - -void main() -{ - double d; - uint u; - int i; - float f; - - foo1(d, d); - foo1(d, u); - foo1(d, i); - foo1(d, f); - - foo1(f, d); - foo1(f, u); - foo1(f, i); - foo1(f, f); - - foo1(u, d); - foo1(u, u); - foo1(u, i); - foo1(u, f); - - foo1(i, d); - foo1(i, u); - foo1(i, i); - foo1(i, f); - - foo2(d, d); - foo2(d, u); - foo2(d, i); - foo2(d, f); - - foo2(f, d); - foo2(f, u); - foo2(f, i); - foo2(f, f); - - foo2(u, d); - foo2(u, u); - foo2(u, i); - foo2(u, f); - - foo2(i, d); - foo2(i, u); - foo2(i, i); - foo2(i, f); - - foo3(d, d); // ERROR, no match - foo3(d, u); - foo3(d, i); - foo3(d, f); - - foo3(f, d); - foo3(f, u); // ERROR, ambiguous - foo3(f, i); // ERROR, ambiguous - foo3(f, f); // ERROR, ambiguous - - foo3(u, d); - foo3(u, u); // ERROR, ambiguous - foo3(u, i); // ERROR, ambiguous - foo3(u, f); // ERROR, ambiguous - - foo3(i, d); - foo3(i, u); // ERROR, ambiguous - foo3(i, i); // ERROR, ambiguous - foo3(i, f); // ERROR, ambiguous - - ftd(i, f, f); - ftd(u, f, f); -} - -void itf(int, float, int); -void itf(int, double, int); - -void tf() -{ - double d; - uint u; - int i; - float f; - - itf(i, i, i); - itf(i, u, i); -} diff --git a/deps/glslang/Test/410.geom b/deps/glslang/Test/410.geom deleted file mode 100644 index 8775aeb1..00000000 --- a/deps/glslang/Test/410.geom +++ /dev/null @@ -1,39 +0,0 @@ -#version 410 core - -void main() -{ - gl_ViewportIndex = 7; -} - -in gl_PerVertex { - float gl_PointSize; -} myIn[]; // ERROR, can't redeclare a different name - -in gl_PerVertex { - float gl_PointSize; -} gl_myIn[]; // ERROR, can't redeclare a different name - -in gl_PerVertex { - float gl_PointSize; -} gl_in[]; - -in gl_PerVertex { - float gl_PointSize; -} gl_in[]; // ERROR, can't do it again - -out gl_PerVertex { - float gl_PointSize; -}; - -void foo() -{ - float p = gl_in[1].gl_PointSize; // use of redeclared - gl_PointSize = p; // use of redeclared - vec4 v = gl_in[1].gl_Position; // ERROR, not included in the redeclaration - gl_Position = vec4(1.0); // ERROR, not included in the redeclaration -} - -float foo5() -{ - return 4; // implicit conversion of return type -} diff --git a/deps/glslang/Test/410.tesc b/deps/glslang/Test/410.tesc deleted file mode 100644 index d96a2700..00000000 --- a/deps/glslang/Test/410.tesc +++ /dev/null @@ -1,11 +0,0 @@ -#version 400 core - -// no layout(vertices = ...) out; -int outa[gl_out.length()]; // ERROR - -patch out vec4 patchOut; - -void main() -{ - -} diff --git a/deps/glslang/Test/410.vert b/deps/glslang/Test/410.vert deleted file mode 100644 index 1891a670..00000000 --- a/deps/glslang/Test/410.vert +++ /dev/null @@ -1,10 +0,0 @@ -#version 410 core - -in double d; -in dvec3 d3; -in dmat4 dm4; - -void main() -{ - int test = gl_MaxFragmentUniformVectors; -} diff --git a/deps/glslang/Test/420.comp b/deps/glslang/Test/420.comp deleted file mode 100644 index d92e6f0d..00000000 --- a/deps/glslang/Test/420.comp +++ /dev/null @@ -1,30 +0,0 @@ -#version 420 - -layout(local_size_x = 2) in; // ERROR, no compute - -#extension GL_ARB_compute_shader : enable - -layout(local_size_x = 2, local_size_y = 4, local_size_z = 6) in; - -shared vec3 sfoo; - -void main() -{ - sfoo = vec3(gl_WorkGroupSize.x, gl_WorkGroupSize.y, gl_WorkGroupSize.z); - sfoo += gl_WorkGroupSize + gl_NumWorkGroups + gl_WorkGroupID + gl_LocalInvocationID + gl_GlobalInvocationID; - sfoo *= gl_LocalInvocationIndex; - sfoo += gl_MaxComputeWorkGroupCount + gl_MaxComputeWorkGroupSize; - sfoo *= gl_MaxComputeUniformComponents + - gl_MaxComputeTextureImageUnits + - gl_MaxComputeImageUniforms + - gl_MaxComputeAtomicCounters + - gl_MaxComputeAtomicCounterBuffers; - - barrier(); - memoryBarrier(); - memoryBarrierAtomicCounter(); - memoryBarrierBuffer(); - memoryBarrierImage(); - memoryBarrierShared(); - groupMemoryBarrier(); -} \ No newline at end of file diff --git a/deps/glslang/Test/420.frag b/deps/glslang/Test/420.frag deleted file mode 100644 index 4c0b15fc..00000000 --- a/deps/glslang/Test/420.frag +++ /dev/null @@ -1,57 +0,0 @@ -#version 420 core - -layout(depth_any) out float gl_FragDepth; -layout(depth_greater) out float gl_FragDepth; // ERROR: redeclaration with different qualifier - -void main() -{ - gl_FragDepth = 0.3; -} - -layout(depth_less) in float depth; // ERROR: depth_less only applies to gl_FragDepth -layout(depth_any) out float gl_FragDepth; // ERROR, done after use - -layout(binding=0) uniform atomic_uint a[]; - -uniform writeonly image2D i2D; -ivec2 iv2dim = imageSize(i2D); // ERROR: imageSize called without enabling GL_ARB_shader_image_size extension -#extension GL_ARB_shader_image_size : enable -ivec2 iv2dim1 = imageSize(i2D); - -#extension GL_ARB_shader_storage_buffer_object : enable - -layout(binding = 0,std430) buffer Buffer -{ - int atomi; - uint atomu; -}; - -void atomicOpPass() -{ - int origi = atomicAdd(atomi, 3); - uint origu = atomicAnd(atomu, 7u); - origi = atomicExchange(atomi, 4); - origu = atomicCompSwap(atomu, 10u, 8u); -} - -layout(binding = 2,std430) buffer ssboElem01 -{ - int member01; - int memberArr01[2]; - int memberUnsizedArr01[]; -} ssboStd430Arr[2]; - -// if turns on EShReflectionSharedStd140SSBO, SPIR-V would be different -layout(binding = 3,shared) buffer ssboElem02 -{ - int member02; - int memberArr02[2]; - int memberUnsizedArr02[]; -} ssboSharedArr[2]; - -#extension GL_ARB_shader_storage_buffer_object : disable - -layout(binding = 1,std430) buffer BufferFail // Error std430 and "buffer" block support disabled -{ - int atom1i; -}; diff --git a/deps/glslang/Test/420.geom b/deps/glslang/Test/420.geom deleted file mode 100644 index 43903bc7..00000000 --- a/deps/glslang/Test/420.geom +++ /dev/null @@ -1,55 +0,0 @@ -#version 420 core - -// testing input arrays without a gl_in[] block redeclaration, see 400.geom for with - -int i; - -void foo() -{ - gl_in.length(); // ERROR - gl_in[1].gl_Position; - gl_in[i].gl_Position; // ERROR -} - -layout(triangles) in; - -in vec4 color3[3]; - -void foo3() -{ - gl_in.length(); - gl_in[i].gl_Position; - color3.length(); -} - -uniform sampler2D s2D; -in vec2 coord[]; -uniform vec4 v4; - -void foo4() -{ - const ivec2 offsets[5] = - { - ivec2(0,1), - ivec2(1,-2), - ivec2(0,3), - ivec2(-3,0), - ivec2(2,1) - }; - - vec4 v = textureGatherOffset(s2D, coord[0], offsets[i].xy); - - offsets[i].xy = ivec2(3); // ERROR - v4.x = 3.2; // ERROR - v4.xy; // should have non-uniform type -} - -out gl_PerVertex { - float gl_PointSize[1]; // ERROR, adding array - float gl_ClipDistance; // ERROR, removing array -}; - -float foo5() -{ - return i; // implicit conversion of return type -} diff --git a/deps/glslang/Test/420.tesc b/deps/glslang/Test/420.tesc deleted file mode 100644 index b9fd21c2..00000000 --- a/deps/glslang/Test/420.tesc +++ /dev/null @@ -1,43 +0,0 @@ -#version 420 core - -#extension GL_ARB_separate_shader_objects : enable - -layout(vertices = 4) out; - -out gl_PerVertex { - vec4 gl_Position; -} gl_out[3]; // ERROR, wrong size - -out int a[gl_out.length()]; -out int outb[5]; // ERROR, wrong size -out int outc[]; - -void main() -{ - vec4 p = gl_in[1].gl_Position; - float ps = gl_in[1].gl_PointSize; - float cd = gl_in[1].gl_ClipDistance[2]; - - int pvi = gl_PatchVerticesIn; - int pid = gl_PrimitiveID; - int iid = gl_InvocationID; - - gl_out[gl_InvocationID].gl_Position = p; - gl_out[gl_InvocationID].gl_PointSize = ps; // ERROR -} - -out float outf; // ERROR, no array - -layout (location = 0) in dmat2x4 vs_tcs_first[]; -layout (location = 12) in dmat2x4 vs_tcs_last[]; - -void foo() -{ - if ((dmat2x4(dvec4(-0.625, -0.5, -0.375lf, -0.25), dvec4(-0.375, -0.25, -0.125, 0)) != vs_tcs_first[0]) || - (dmat2x4(dvec4(0.375, 0.5, 0.625, 0.75), dvec4(0.625, 0.75, 0.875, -0.625)) != vs_tcs_last[0])) - { - ; - } -} - -layout(vertices = 0) out; // ERROR, can't be 0 diff --git a/deps/glslang/Test/420.tese b/deps/glslang/Test/420.tese deleted file mode 100644 index 4c3693a8..00000000 --- a/deps/glslang/Test/420.tese +++ /dev/null @@ -1,90 +0,0 @@ -#version 420 core - -const mat2x2 a = mat2( vec2( 1.0, 0.0 ), vec2( 0.0, 1.0 ) ); -mat2x2 b = { vec2( 1.0, 0.0 ), vec2( 0.0, 1.0 ) }; -const mat2x2 c = { { 1.0, 0.0, }, { 0.0, 1.0 } }; - -float a2[2] = { 3.4, 4.2, 5.0 }; // illegal -vec2 b2 = { 1.0, 2.0, 3.0 }; // illegal -mat3x3 c2 = { vec3(0.0), vec3(1.0), vec3(2.0), vec3(3.0) }; // illegal -mat2x2 d = { 1.0, 0.0, 0.0, 1.0 }; // illegal, can't flatten nesting - -struct { - float a; - int b; -} e = { 1.2, 2, }; - -struct { - float a; - int b; -} e2 = { 1, 3 }; // legal, first initializer is converted - -struct { - float a; - int b; -} e3 = { 1.2, 2, 3 }; // illegal - -int a3 = true; // illegal -vec4 b3[2] = { vec4(0.0), 1.0 }; // illegal -vec4 b4[2] = vec4[2](vec4(0.0), mat2x2(1.0)); // illegal -mat4x2 c3 = { vec3(0.0), vec3(1.0) }; // illegal - -struct S1 { - vec4 a; - vec4 b; -}; - -struct { - float s; - float t; -} d2[] = { S1(vec4(0.0), vec4(1.1)) }; // illegal - -float b5[] = { 3.4, 4.2, 5.0, 5.2, 1.1 }; - -struct S3 { - float f; - mat2x3 m23; -}; - -struct S4 { - uvec2 uv2; - S3 s[2]; -}; - -struct Single1 { int f; }; -Single1 single1 = { 10 }; - -struct Single2 { uvec2 v; }; -Single2 single2 = { { 1, 2 } }; - -struct Single3 { Single1 s1; }; -Single3 single3 = { { 3 } }; - -struct Single4 { Single2 s1; }; -Single4 single4 = { { { 4u, 5u } } }; - -const S4 constructed = S4(uvec2(1, 2), - S3[2](S3(3.0, mat2x3(4.0)), - S3(5.0, mat2x3(6.0)))); - -const S4 curlybad1 = { {1, 2}, - { {3, {4.0, 0, 0.0}, {0.0, 4.0, 0.0 } }, // ERROR, the mat2x3 isn't isolated - {5.0, {6, 0.0, 0.0}, {0.0, 6.0, 0.0 } } } }; - -const S4 curlyInit = { {1, 2}, - { {3, { {4.0, 0, 0.0}, {0.0, 4.0, 0.0 } } }, - {5.0, { {6, 0.0, 0.0}, {0.0, 6.0, 0.0 } } } } }; - -float vc1, vc2, vc3; -vec3 av3 = vec3(vc1, vc2, vc3); -vec3 bv3 = { vc1, vc2, vc3 }; - -void main() -{ - memoryBarrier(); - - if (constructed == curlybad1) - ; - if (constructed == curlyInit) - ; -} diff --git a/deps/glslang/Test/420.vert b/deps/glslang/Test/420.vert deleted file mode 100644 index cfae71f4..00000000 --- a/deps/glslang/Test/420.vert +++ /dev/null @@ -1,162 +0,0 @@ -#version 420 core -#version 420 core -varying vec2 v2; // ERROR, varying reserved -in vec4 bad[10]; -highp in vec4 badorder; -out invariant vec4 badorder2; -in centroid vec4 badorder4; // ERROR, no centroid input to vertex stage -out flat vec4 badorder3; -void bar(in const float a); -void bar2(highp in float b); -smooth flat out vec4 rep; // ERROR, replicating interpolation qualification -centroid sample out vec4 rep2; // ERROR, replicating auxiliary qualification -in uniform vec4 rep3; // ERROR, replicating storage qualification - -int anonconst; -const int aconst = 5; -const int a = aconst; -const int b = anonconst; // ERROR at global scope - -const int foo() // ERROR, no const functions -{ - const int a = aconst; - const int b = anonconst; - const int c = a; // still compile-time const - const int d = b; // not a compile-time const - float x[c]; // okay - float y[d]; // ERROR - - return b; -} - -void main() -{ - int i; - if (i == 3) - int j = i; - else - int k = j; // ERROR, j is undeclared - int m = k; // ERROR, k is undeclared - int n = j; // ERROR, j is undeclared - - while (true) - int jj; - int kk = jj; // ERROR, jj is undeclared -} - -const float cx = 4.20; -const float dx = 4.20; - -void bar(in highp volatile vec4 v) -{ - int s; - s.x; // okay - s.y; // ERROR - if (bad[0].x == cx.x) - ; - if (cx.x == dx.x) - badorder3 = bad[0]; - - float f; - vec3 smeared = f.xxx; - f.xxxxx; // ERROR - f.xxy; // ERROR -} - -layout(binding = 3) uniform; // ERROR -layout(binding = 3) uniform boundblock { int aoeu; } boundInst; -layout(binding = 7) uniform anonblock { int aoeu; } ; -layout(location = 1) in; // ERROR -layout(binding = 1) in inblock { int aoeua; }; // ERROR -layout(binding = 100000) uniform anonblock2 { int aooeu; } ; -layout(binding = 4) uniform sampler2D sampb1; -layout(binding = 5) uniform sampler2D sampb2[10]; -layout(binding = 80) uniform sampler2D sampb3; // ERROR, binding too big -layout(binding = 31) uniform sampler2D sampb4; -layout(binding = 79) uniform sampler2D sampb5[2]; // ERROR, binding too big - -int fgfg(float f, mediump int i); -int fgfg(float f, highp int i); - -out gl_PerVertex { - float gl_ClipDistance[4]; -}; - -patch in vec4 patchIn; // ERROR -patch out vec4 patchOut; // ERROR - -void bar23444() -{ - mat4x3 m43; \ - float a1 = m43[3].y; - vec3 v3; - int a2 = m43.length(); - a2 += m43[1].length(); - a2 += v3.length(); - const float b = 2 * a1; - int a = gl_MinProgramTexelOffset + gl_MaxProgramTexelOffset; -} - -const int comma0 = (2, 3); // ERROR -int comma1[(2, 3)]; // ERROR - -layout(r32i) uniform iimage2D iimg2D; -layout(rgba32i) uniform iimage2D iimg2Drgba; -layout(rgba32f) uniform image2D img2Drgba; -layout(r32ui) uniform uimage2D uimg2D; -uniform image2DMS img2DMS; // ERROR image variables not declared writeonly must have format layout qualifier -uniform writeonly image2DMS img2DMSWO; -void qux() -{ - int i = aoeu; - imageAtomicCompSwap(iimg2D, ivec2(i,i), i, i); - imageAtomicAdd(uimg2D, ivec2(i,i), uint(i)); - imageAtomicMin(iimg2Drgba, ivec2(i,i), i); // ERROR iimg2Drgba does not have r32i layout - imageAtomicMax(img2Drgba, ivec2(i,i), i); // ERROR img2Drgba is not integer image - ivec4 pos = imageLoad(iimg2D, ivec2(i,i)); - vec4 col = imageLoad(img2DMS, ivec2(i,i), i); - imageStore(img2DMSWO, ivec2(i,i), i, vec4(0)); - imageLoad(img2DMSWO, ivec2(i,i), i); // ERROR, drops writeonly -} - -volatile float vol; // ERROR, not an image -readonly int vol2; // ERROR, not an image - -void passr(coherent readonly iimage2D image) -{ -} - -layout(r32i) coherent readonly uniform iimage2D qualim1; -layout(r32i) coherent volatile readonly uniform iimage2D qualim2; - -void passrc() -{ - passr(qualim1); // ERROR, changing formats - passr(qualim2); // ERROR, drops volatile, ERROR, changing formats - passr(iimg2D); // ERROR, changing formats -} - -layout(rg8i) uniform uimage2D i1bad; // ERROR, type mismatch -layout(rgba32i) uniform image2D i2bad; // ERROR, type mismatch -layout(rgba32f) uniform uimage2D i3bad; // ERROR, type mismatch -layout(r8_snorm) uniform iimage2D i4bad; // ERROR, type mismatch -layout(rgba32ui) uniform iimage2D i5bad; // ERROR, type mismatch -layout(r8ui) uniform iimage2D i6bad; // ERROR, type mismatch - -uniform offcheck { - layout(offset = 16) int foo; // ERROR -} offcheckI; - -uniform sampler1D samp1D; -uniform sampler1DShadow samp1Ds; - -void qlod() -{ - int levels; - - levels = textureQueryLevels(samp1D); // ERROR, not until 430 - levels = textureQueryLevels(samp1Ds); // ERROR, not until 430 -} - -layout(binding=0) writeonly uniform image1D badArray[]; -layout(binding = 74) uniform sampler2D u_sampler0[6]; diff --git a/deps/glslang/Test/420_size_gl_in.geom b/deps/glslang/Test/420_size_gl_in.geom deleted file mode 100644 index b709d5aa..00000000 --- a/deps/glslang/Test/420_size_gl_in.geom +++ /dev/null @@ -1,21 +0,0 @@ -#version 420 core - -// testing input arrays without a gl_in[] block redeclaration, see 400.geom for with - -int i; - -layout(triangles) in; -in vec4 colorun[]; -in vec4 color3[3]; - -void foo() -{ - gl_in.length(); - gl_in[1].gl_Position; - gl_in.length(); - gl_in[i].gl_Position; // should be sized to 3 by 'triangles' -} - -in gl_PerVertex { // ERROR, already used - vec4 gl_Position; -} gl_in[]; diff --git a/deps/glslang/Test/430.comp b/deps/glslang/Test/430.comp deleted file mode 100644 index 178b9942..00000000 --- a/deps/glslang/Test/430.comp +++ /dev/null @@ -1,90 +0,0 @@ -#version 430 core - -layout(local_size_x = 2) in; -layout(local_size_x = 16) in; // ERROR, changing -layout(local_size_z = 4096) in; // ERROR, too large -layout(local_size_x = 2) in; - -const int total = gl_MaxComputeWorkGroupCount.y - + gl_MaxComputeUniformComponents - + gl_MaxComputeTextureImageUnits - + gl_MaxComputeImageUniforms - + gl_MaxComputeAtomicCounters - + gl_MaxComputeAtomicCounterBuffers; - -buffer ShaderStorageBlock -{ - int value; - float values[]; -}; - -buffer InvalidShaderStorageBlock -{ - float values[]; - int value; -} invalid; - -void main() -{ - barrier(); - memoryBarrier(); - memoryBarrierAtomicCounter(); - memoryBarrierBuffer(); - memoryBarrierShared(); - memoryBarrierImage(); - groupMemoryBarrier(); - value = int(values[gl_LocalInvocationIndex]); - - int a; - if (a > 10) - barrier(); -} - -layout(location = 2) in vec3 v3; // ERROR -in float f; // ERROR -out float fo; // ERROR - -shared vec4 s; -layout(location = 2) shared vec4 sl; // ERROR -shared float fs = 4.2; // ERROR - -layout(local_size_y = 1) in; -layout(local_size_y = 2) in; // ERROR, changing -layout(local_size_y = 1) in; -layout(local_size_x = 2, local_size_y = 3, local_size_z = 4) out; // ERROR - -int arrX[gl_WorkGroupSize.x]; -int arrY[gl_WorkGroupSize.y]; -int arrZ[gl_WorkGroupSize.z]; - -readonly buffer roblock -{ - int value; - float values[]; -} ro; - -void foo() -{ - ro.values[2] = 4.7; // ERROR, readonly - ro.values.length(); - barrier(); -} - -uniform double roll; -uniform writeonly image2D destTex; -void fooaoeu() { - ivec2 storePos = ivec2(gl_GlobalInvocationID.xy); - double localCoef = length(vec2(ivec2(gl_LocalInvocationID.xy)-8)/8.0); - dvec4 aa = dvec4(0.4, 0.2, 0.3, 0.4); - double globalCoef = 1.0; - int i = globalCoef; // ERROR, can't convert from double to int - double di = i; -} - -in inb { // ERROR - int a; -} inbi; - -out outb { // ERROR - int a; -} outbi; diff --git a/deps/glslang/Test/430.vert b/deps/glslang/Test/430.vert deleted file mode 100644 index 84c32208..00000000 --- a/deps/glslang/Test/430.vert +++ /dev/null @@ -1,223 +0,0 @@ -#version 430 core - -layout(location = 3) vec4 v4; // ERROR - -layout(location = 4) uniform vec4 uv4; - -layout(location = 2) in inb1 { vec4 v; } b1; // ERROR -layout(location = 2) out outb1 { vec4 v; } b2; // ERROR - -out gl_PerVertex { - float gl_ClipDistance[]; -}; - -void foo() -{ - gl_ClipDistance[2] = 3.7; -} - -struct sp { - highp float f; - in float g; // ERROR - uniform float h; // ERROR - invariant float i; // ERROR - volatile float j; // ERROR - layout(row_major) mat3 m3; // ERROR -}; - -void foo3(invariant vec4 v4, // ERROR - volatile vec3 v3, - layout(location = 3) vec2 v2, // ERROR - centroid vec3 cv3) // ERROR -{ -} - -struct S { - mat3x2 m[7]; // needs 7*3 locations - float f; // needs 1 location -}; // needs 22 locations - -layout(location = 10) out S cs[2]; // 10 through 10 + 2 * 22 - 1 = 53 -layout(location = 54) out float cf; -layout(location = 53) out float cg; // ERROR, collision at 31 - -layout(location = 10) in vec4 alias1; -layout(location = 10) in vec4 alias2; // okay for vertex input on desktop - -out float gl_ClipDistance[17]; // ERROR, size too big - -// enhanced_layouts (most tests are in 440.*) - -layout(location = start*start - 2 - 4) in vec4 v6e; // ERROR - -layout(location = 28) in inblock2e { - layout(location = 25) float f2; // ERROR -} ininst2e; - -in ublock4e { - layout(location = 50) float f1; // ERROR - layout(location = 51) float f2; // ERROR -} in4e; - -layout(align=16, std140) uniform ubl4e { int a; } inst4e;// ERROR - -layout(align=32) uniform ubl9e { // ERROR - layout(offset=12, align=4) float f; // ERROR - layout(offset=20) float g; // ERROR -} inst9e; - -layout(std140) uniform blocke { - vec4 a; - layout(offset = 32) vec3 b; // ERROR -} spinste; - -int aconste[gl_MaxTransformFeedbackBuffers]; // ERROR -int bconste[gl_MaxTransformFeedbackInterleavedComponents]; // ERROR - -out bblck2 { - layout(xfb_offset=64) vec4 bbv; // ERROR -} bbinst2; - -layout(xfb_buffer = 3, xfb_stride = 64) out; // ERROR - -layout(xfb_buffer=2, xfb_offset=48, xfb_stride=80) out vec4 bge; // ERROR -layout( xfb_offset=32, xfb_stride=64) out vec4 bhe; // ERROR - -layout(xfb_stride=80, xfb_buffer=2, xfb_offset=16) out bblck4e { // ERROR - vec4 bbv1; - vec4 bbv2; -} bbinst4e; - -out bblck5e { - layout(xfb_offset=0) vec4 bbv1; // ERROR - layout(xfb_stride=64, xfb_buffer=3, xfb_offset=48) vec4 bbv2; // ERROR -} bbinst5e; - -#extension GL_ARB_enhanced_layouts : enable - -layout(align=16, std140) uniform ubl4 { int a; } inst4; -layout(std430) uniform; - -layout(align=32) uniform ubl9 { - layout(offset=12, align=4) float f; - layout(offset=20) float g; -} inst9; - -layout(std140) uniform block { - vec4 a; // a takes offsets 0-15 - layout(offset = 32) vec3 b; // b takes offsets 32-43 -} spinst; - -int aconst[gl_MaxTransformFeedbackBuffers]; -int bconst[gl_MaxTransformFeedbackInterleavedComponents]; - -const int start2 = 5; -layout(location = start2 * start2 - 2 - 4) in vec4 v6; - -layout(location = 28) in inblock2 { // ERROR, input block in vertex shader, other errors are valid checks still... - bool b1; - float f1; - layout(location = 25) float f2; -} ininst2; - -in ublock4 { // ERROR, input block in vertex shader, other errors are valid checks still... - layout(location = 50) float f1; - layout(location = 51) float f2; -} in4; - -out bblck2g { - layout(xfb_offset=64) vec4 bbv; -} bbinst2g; - -layout(xfb_buffer = 1, xfb_stride = 80) out; // default buffer is 3 - -layout(xfb_buffer=1, xfb_offset=48, xfb_stride=80) out vec4 bg; -layout( xfb_offset=32, xfb_stride=80) out vec4 bh; - -layout(xfb_stride=80, xfb_buffer=1, xfb_offset=16) out bblck4 { - vec4 bbv1; -} bbinst4; - -out bblck5 { - layout(xfb_offset=0) vec4 bbv1; - layout(xfb_stride=80, xfb_buffer=1, xfb_offset=64) vec4 bbv2; -} bbinst5; - -shared vec4 sharedv; // ERROR - -void fooBarrier() -{ - barrier(); // ERROR - memoryBarrier(); - memoryBarrierAtomicCounter(); - memoryBarrierBuffer(); - memoryBarrierShared(); // ERROR - memoryBarrierImage(); - groupMemoryBarrier(); // ERROR -} - -buffer vec4 v; // ERROR - -uniform sampler2DMS s2dms; -uniform usampler2DMSArray us2dmsa; -layout(rgba32i) uniform iimage2DMS ii2dms; -layout(rgba32f) uniform image2DMSArray i2dmsa; - -void fooq() -{ - int s = textureSamples(s2dms); // ERROR - s += textureSamples(us2dmsa); // ERROR - s += imageSamples(ii2dms); // ERROR - s += imageSamples(i2dmsa); // ERROR -} - -#extension GL_ARB_shader_texture_image_samples : enable - -void fooq2() -{ - int s = textureSamples(s2dms); - s += textureSamples(us2dmsa); - s += imageSamples(ii2dms); - s += imageSamples(i2dmsa); -} - -uniform sampler1D samp1D; -uniform usampler2D usamp2D; -uniform isampler3D isamp3D; -uniform isamplerCube isampCube; -uniform isampler1DArray isamp1DA; -uniform sampler2DArray samp2DA; -uniform usamplerCubeArray usampCubeA; - -uniform sampler1DShadow samp1Ds; -uniform sampler2DShadow samp2Ds; -uniform samplerCubeShadow sampCubes; -uniform sampler1DArrayShadow samp1DAs; -uniform sampler2DArrayShadow samp2DAs; -uniform samplerCubeArrayShadow sampCubeAs; - -uniform samplerBuffer sampBuf; -uniform sampler2DRect sampRect; - -void qlod() -{ - int levels; - - levels = textureQueryLevels(samp1D); - levels = textureQueryLevels(usamp2D); - levels = textureQueryLevels(isamp3D); - levels = textureQueryLevels(isampCube); - levels = textureQueryLevels(isamp1DA); - levels = textureQueryLevels(samp2DA); - levels = textureQueryLevels(usampCubeA); - - levels = textureQueryLevels(samp1Ds); - levels = textureQueryLevels(samp2Ds); - levels = textureQueryLevels(sampCubes); - levels = textureQueryLevels(samp1DAs); - levels = textureQueryLevels(samp2DAs); - levels = textureQueryLevels(sampCubeAs); - - levels = textureQueryLevels(sampBuf); // ERROR - levels = textureQueryLevels(sampRect); // ERROR -} diff --git a/deps/glslang/Test/430AofA.frag b/deps/glslang/Test/430AofA.frag deleted file mode 100644 index 54d09230..00000000 --- a/deps/glslang/Test/430AofA.frag +++ /dev/null @@ -1,108 +0,0 @@ -#version 430 - -float[4][5][6] many[1][2][3]; - -float gu[][7]; -float gimp[][]; // ERROR, implicit inner -float g4[4][7]; -float g5[5][7]; - -float[4][7] foo(float a[5][7]) -{ - float r[7]; - r = a[2]; - float[](a[0], a[1], r, a[3]); // ERROR, too few dims - float[4][7][4](a[0], a[1], r, a[3]); // ERROR, too many dims - return float[4][7](a[0], a[1], r, a[3]); - return float[][](a[0], a[1], r, a[3]); - return float[][7](a[0], a[1], a[2], a[3]); -} - -void bar(float[5][7]) {} - -void main() -{ - { - float gu[3][4][2]; - - gu[2][4][1] = 4.0; // ERROR, overflow - } - vec4 ca4[3][2] = vec4[][](vec4[2](vec4(0.0), vec4(1.0)), - vec4[2](vec4(0.0), vec4(1.0)), - vec4[2](vec4(0.0), vec4(1.0))); - vec4 caim[][2] = vec4[][](vec4[2](vec4(4.0), vec4(2.0)), - vec4[2](vec4(4.0), vec4(2.0)), - vec4[2](vec4(4.0), vec4(2.0))); - vec4 caim2[][] = vec4[][](vec4[2](vec4(4.0), vec4(2.0)), - vec4[2](vec4(4.0), vec4(2.0)), - vec4[2](vec4(4.0), vec4(2.0))); - vec4 caim3[3][] = vec4[][](vec4[2](vec4(4.0), vec4(2.0)), - vec4[2](vec4(4.0), vec4(2.0)), - vec4[2](vec4(4.0), vec4(2.0))); - - vec4 a4[3][2] = {vec4[](vec4(0.0), vec4(1.0)), - vec4[2](vec4(0.0), vec4(1.0)), - vec4[2](vec4(0.0), vec4(1.0)) }; - vec4 aim[][2] = {vec4[2](vec4(4.0), vec4(2.0)), - vec4[](vec4(4.0), vec4(2.0)), - vec4[2](vec4(4.0), vec4(2.0)) }; - vec4 aim2[][] = {vec4[2](vec4(4.0), vec4(2.0)), - vec4[2](vec4(4.0), vec4(2.0)), - vec4[](vec4(4.0), vec4(2.0)) }; - vec4 aim3[3][] = {vec4[2](vec4(4.0), vec4(2.0)), - vec4[2](vec4(4.0), vec4(2.0)), - vec4[2](vec4(4.0), vec4(2.0)) }; - - vec4 bad2[3][] = {vec4[2](vec4(4.0), vec4(2.0)), // ERROR - vec4[3](vec4(4.0), vec4(2.0), vec4(5.0)), - vec4[2](vec4(4.0), vec4(2.0)) }; - - vec4 bad3[3][] = {vec4[3](vec4(4.0), vec4(2.0), vec4(5.0)), // ERROR - vec4[2](vec4(4.0), vec4(2.0)), - vec4[2](vec4(4.0), vec4(2.0)) }; - - vec4 bad4[4][] = {vec4[2](vec4(4.0), vec4(2.0)), // ERROR - vec4[2](vec4(4.0), vec4(2.0)), - vec4[2](vec4(4.0), vec4(2.0)) }; - - - g4 = foo(g5); - g5 = g4; // ERROR, wrong types - gu = g4; // ERROR, not yet sized - - foo(gu); // ERROR, not yet sized - bar(g5); - - if (foo(g5) == g4) - ; - if (foo(g5) == g5) // ERROR, different types - ; - - float u[][7]; - u[2][2] = 3.0; - float u[5][7]; - u[5][2] = 5.0; // ERROR - foo(u); -} - -void foo3() -{ - float resize1[][5][7]; - resize1.length(); // ERROR - resize1[1][4][5] = 2.0; - resize1.length(); // ERROR - float resize1[3][5][7]; - resize1.length(); // 3 in AST - resize1[1].length(); // 5 in AST - resize1[1][1].length(); // 7 in AST - resize1[1][1][1].length(); // ERROR - - float resize2[][5][7]; - float resize2[3][4][7]; // ERROR, inner dim change - - float resize3[][5][7]; - float resize3[3][5][9]; // ERROR, inner dim changed - - float resize4[][5][7]; - int resize4[3][5][7]; // ERROR, element type -} diff --git a/deps/glslang/Test/430scope.vert b/deps/glslang/Test/430scope.vert deleted file mode 100644 index 7efa1623..00000000 --- a/deps/glslang/Test/430scope.vert +++ /dev/null @@ -1,74 +0,0 @@ -#version 430 core - -int f(int a, int b, int c) -{ - int a = b; // ERROR, redefinition - - { - float a = float(a) + 1.0; // okay - } - - return a; -} - -int f(int a, int b, int c); // okay to redeclare - -bool b; -float b(int a); // ERROR: redefinition - -float c(int a); -bool c; // ERROR: redefinition - -float f; // ERROR: redefinition -float tan; // okay, hides built-in function -float sin(float x); // okay, can redefine built-in functions -float cos(float x) // okay, can redefine built-in functions -{ - return 1.0; -} -bool radians(bool x) // okay, can overload built-in functions -{ - return true; -} - -invariant gl_Position; - -void main() -{ - int g(); // okay - g(); - - float sin; // okay - sin; - sin(0.7); // ERROR, use of hidden function - f(1,2,3); - - float f; // hides f() - f = 3.0; - - gl_Position = vec4(f); - - for (int f = 0; f < 10; ++f) - ++f; - - int x = 1; - { - float x = 2.0, /* 2nd x visible here */ y = x; // y is initialized to 2 - int z = z; // ERROR: z not previously defined. - } - { - int x = x; // x is initialized to '1' - } - - struct S - { - int x; - }; - { - S S = S(0); // 'S' is only visible as a struct and constructor - S.x; // 'S' is now visible as a variable - } - - int degrees; - degrees(3.2); // ERROR, use of hidden built-in function -} diff --git a/deps/glslang/Test/435.vert b/deps/glslang/Test/435.vert deleted file mode 100644 index bf27ce96..00000000 --- a/deps/glslang/Test/435.vert +++ /dev/null @@ -1,2 +0,0 @@ -#version 435 -void main() {} \ No newline at end of file diff --git a/deps/glslang/Test/440.frag b/deps/glslang/Test/440.frag deleted file mode 100644 index a3ec89de..00000000 --- a/deps/glslang/Test/440.frag +++ /dev/null @@ -1,168 +0,0 @@ -#version 440 - -// Note 'location'-only tests for enhanced layouts are in 330.frag -// Generic 'component' tests are in 440.vert - -// a consumes components 2 and 3 of location 4 -layout(location = 4, component = 2) in vec2 a; - -// b consumes component 1 of location 4 -layout(location = 4, component = 1) in float b; -layout(location = 4, component = 2) in vec2 h; // ERROR, component overlap not okay for fragment in - -layout(location = 3, component = 2) in vec3 c; // ERROR: c overflows components 2 and 3 - -// e consumes beginning (components 0, 1 and 2) of each of 6 slots -layout(location = 20, component = 0) in vec3 e[6]; - -// f consumes last component of the same 6 slots -layout(location = 20, component = 3) in float f[6]; - -layout(location = 30, component = 3) out int be; -layout(location = 30, component = 0) out vec3 bf; // ERROR, not the same basic type - -writeonly uniform; // ERROR -readonly in; // ERROR -flat out; // ERROR -mediump uniform; - -layout(offset=12) uniform; // ERROR -layout(offset=12) in; // ERROR -layout(offset=12) out; // ERROR - -layout(align=16) uniform; // ERROR -layout(align=16) in; // ERROR -layout(align=16) out; // ERROR - -layout(offset=12) uniform ubl1 { int a; } inst1; // ERROR -layout(offset=12) in inbl2 { int a; } inst2; // ERROR -layout(offset=12) out inbl3 { int a; } inst3; // ERROR - -layout(align=16, std140) uniform ubl4 { int a; } inst4; -layout(align=16) uniform ubl8 { int a; } inst8; // ERROR, no packing -layout(align=16) in inbl5 { int a; } inst5; // ERROR -layout(align=16) out inbl6 { int a; } inst6; // ERROR - -layout(offset=12) uniform vec4 v1; // ERROR -layout(offset=12) in vec4 v2; // ERROR -layout(offset=12) out vec4 v3; // ERROR - -layout(align=16) uniform vec4 v4; // ERROR -layout(align=16) in vec4 v5; // ERROR -layout(align=16) out vec4 v6; // ERROR - -layout(std140) in; // ERROR -layout(std140) uniform vec4 v7; // ERROR - -layout(align=48) uniform ubl7 { // ERROR, not power of 2 - layout(offset=12, align=4) float f; // ERROR, no packing -} inst7; - -in ibl10 { - layout(offset=12) float f; // ERROR - layout(align=4) float g; // ERROR -} inst10; - -layout(std430) uniform; - -layout(align=32) uniform ubl9 { - float e; - layout(offset=12, align=4) float f; - layout(offset=20) float g; - float h; -} inst9; - -uniform ubl11 { - layout(offset=12, align=4) float f; - float g; -} inst11; - -layout(std140) uniform block { - vec4 a; // a takes offsets 0-15 - layout(offset = 32) vec3 b; // b takes offsets 32-43 - layout(offset = 40) vec2 c; // ERROR, lies within previous member - layout(align = 6) double g; // ERROR, 6 is not a power of 2 - layout(offset=68) double h; // ERROR, offset not aligned -} specExampleErrors; - -layout(std140) uniform block2 { - vec4 a; // a takes offsets 0-15 - layout(offset = 32) vec3 b; // b takes offsets 32-43 - layout(offset = 48) vec2 d; // d takes offsets 48-55 - layout(align = 16) float e; // e takes offsets 64-67 - layout(align = 2) double f; // f takes offsets 72-79 - layout(offset = 80) float h; // h takes offsets 80-83 - layout(align = 64) dvec3 i; // i takes offsets 128-151 - layout(offset = 164, align = 8) float j; // j takes offsets 168-171 -} specExample; - -layout(std430) buffer block430 { - vec4 a; // a takes offsets 0-15 - layout(offset = 32) vec3 b; // b takes offsets 32-43 - layout(offset = 40) vec2 c; // ERROR, lies within previous member - layout(align = 6) double g; // ERROR, 6 is not a power of 2 - layout(offset=68) double h; // ERROR, offset not aligned - layout(align = 0) double i; // ERROR, 0 not a power of 2 -} specExampleErrors430; - -layout(std430) buffer block2430 { - vec4 a; // a takes offsets 0-15 - layout(offset = 32) vec3 b; // b takes offsets 32-43 - layout(offset = 48) vec2 d; // d takes offsets 48-55 - layout(align = 16) float e; // e takes offsets 64-67 - layout(align = 2) double f; // f takes offsets 72-79 - layout(offset = 80) float h; // h takes offsets 80-83 - layout(align = 64) dvec3 i; // i takes offsets 128-151 - layout(offset = 164, align = 8) float j; // j takes offsets 168-171 -} specExample430; - -layout(std430, align = 128) buffer block24300 { - vec4 a; - vec3 b; - vec2 d; - float e; - double f; - float h; - dvec3 i; -} specExample4300; - -layout(std430, align = 128) buffer block24301 { - vec4 a; - vec3 b; - vec2 d; - layout(offset=388) float e; - layout(align=8) double f; - float h; - dvec3 i; -} specExample4301; - -int aconst[gl_MaxTransformFeedbackBuffers]; -int bconst[gl_MaxTransformFeedbackInterleavedComponents]; - -sample in vec3 sampInArray[4]; - -void interp() -{ - interpolateAtCentroid(sampInArray[2].xy); - interpolateAtSample(sampInArray[2].x.x, 2); -} - -int layer() -{ - return gl_Layer; -} - -// The std140 layout qualifier should NOT propagate all the way down to -// the vec3. It is unnecessary and it breaks downstream AST consumers, -// notably LunarGlass. - -struct PointLight_t -{ - vec3 vPositionWs ; -} ; - -layout( std140, row_major ) uniform PerViewLightData_t -{ - - PointLight_t g_pointLightData [ 128 ] ; -} ; diff --git a/deps/glslang/Test/440.vert b/deps/glslang/Test/440.vert deleted file mode 100644 index 4ab6f2ee..00000000 --- a/deps/glslang/Test/440.vert +++ /dev/null @@ -1,197 +0,0 @@ -#version 440 - -// Note 'location' tests for enhanced layouts are in 330.frag - -layout(location = 2, component = 2) in vec2 a; -layout(location = 2, component = 1) in float b; - -layout(location = 3, component = 2) in vec3 c; // ERROR: c overflows components 2 and 3 - -layout(location = 0, component = 3) in float d[4]; - -layout(location = 4, component = 0) in vec3 e[5]; -layout(location = 4, component = 3) in float f[5]; - -layout(location = 9, component = 4) in float g[6]; // ERROR, component too big - -layout(location = 4, component = 2) in vec2 h; // component overlap okay for vertex in - -layout(location = 3, component = 2) out vec2 i; -layout(location = 3, component = 0) out vec2 j; - -layout(location = 4, component = 2) out vec2 k; -layout(location = 4, component = 2) out vec2 m; // ERROR, component overlap - -layout(location = 2, component = 2) out vec2 n; -layout(location = 2, component = 0) out vec3 p; // ERROR, component overlap - -layout(location = 10, component = 3) out float q[6]; -layout(location = 10, component = 0) out vec3 r[6]; - -layout(location = 15, component = 3) out float s; // ERROR, overlap -layout(location = 10, component = 1) out float t; // ERROR, overlap - -layout(location = 20, component = 2) out float u; -layout(location = 20, component = 0) out float v; -layout(location = 20, component = 3) out float w; -layout(location = 20, component = 1) out vec2 x; // ERROR, overlap - -layout(location = 30, component = 3) out vec2 y; // ERROR, goes to component 4 -layout(location = 31, component = 1) out vec4 z; // ERROR, goes to component 4 - -layout(location = 32, component = 1) out mat4 ba; // ERROR -layout(location = 33, component = 1) out struct S {int a;} Ss; // ERROR -layout(location = 34, component = 1) out bn { int a;} bb; // ERROR - -layout(component = 1) out float bc; // ERROR, no location - -out blockname { - layout(location = 40, component = 2) out float u; - layout(location = 40, component = 0) out float v; - layout(location = 40, component = 3) out float w; - layout(location = 40, component = 1) out vec2 x; // ERROR, overlap - - layout(location = 41, component = 3) out vec2 y; // ERROR, goes to component 4 - layout(location = 42, component = 1) out vec4 z; // ERROR, goes to component 4 - - layout(location = 42, component = 1) out mat4 ba; // ERROR - layout(location = 43, component = 1) out S Ss; // ERROR -} bd; - -layout(location = 1, component = 1) out; // ERROR, no global setting - -layout(location = 50, component = 3) out int be; -layout(location = 50, component = 0) out vec3 bf; - -layout(location = 51, component = 1) out double dfo; // ERROR, odd component -layout(location = 52, component = 2) out dvec2 dvo; // ERROR, overflow -layout(location = 53) out double dfo2; -layout(location = 53, component = 2) out vec2 ffv2; // okay, fits -layout(location = 54) out dvec4 dvec4out; // uses up location 55 too -layout(location = 55) out float overf; // ERROR, collides with previous dvec4 -layout(location = 56, component = 1) out vec2 df2o; -layout(location = 56, component = 3) out float sf2o; -layout(location = 57, component = 2) out vec2 dv3o; -layout(location = 57, component = 3) out float sf4o; // ERROR, overlapping component -layout(location=58) out flat dvec3 dv3o2; // uses part of location 59 -layout(location=59, component=2) out flat double dfo3; // okay, fits -layout(location=59, component=0) out flat double dfo4; // ERROR, overlaps the dvec3 in starting in 58 - -out bblck1 { - vec4 bbv; -} bbinst1; - -out bblck2 { - layout(xfb_offset=64) vec4 bbv; -} bbinst2; - -layout(xfb_buffer = 3, xfb_stride = 64) out; // default buffer is 3 - -out bblck3 { - layout(xfb_offset=16) vec4 bbv; // in xfb_buffer 3 -} bbinst3; - -uniform ubblck3 { - layout(xfb_offset=16) vec4 bbv; // ERROR, not in a uniform -} ubbinst3; - -layout(xfb_buffer=2, xfb_offset=48, xfb_stride=80) out vec4 bg; -layout( xfb_offset=32, xfb_stride=64) out vec4 bh; - -layout(xfb_offset=48) out; // ERROR - -layout(xfb_stride=80, xfb_buffer=2, xfb_offset=16) out bblck4 { - vec4 bbv1; - vec4 bbv2; -} bbinst4; - -out bblck5 { - layout(xfb_offset=0) vec4 bbv1; - layout(xfb_stride=64, xfb_buffer=3, xfb_offset=48) vec4 bbv2; - layout(xfb_buffer=2) vec4 bbv3; // ERROR, wrong buffer -} bbinst5; - -out layout(xfb_buffer=2) bblck6 { - layout(xfb_offset=0) vec4 bbv1; - layout(xfb_stride=64, xfb_buffer=3, xfb_offset=32) vec4 bbv2; // ERROR, overlap 32 from bh, and buffer contradiction - layout(xfb_buffer=2, xfb_offset=0) vec4 bbv3; // ERROR, overlap 0 from bbinst5 - layout(xfb_buffer=2) vec4 bbv5; - layout(xfb_offset=24) float bbf6; // ERROR, overlap 24 from bbv1 in bbinst4 -} bbinst6; - -layout(xfb_stride=48) out; // ERROR, stride of buffer 3 - -layout(xfb_buffer=1) out; // default buffer is 1 -layout(xfb_offset=4) out float bj; -layout(xfb_offset=0) out ivec2 bk; // ERROR, overlap 4 - -layout(xfb_buffer=3, xfb_stride=48) out; // ERROR, stride of buffer 3 (default is now 3) -layout(xfb_stride=48) out float bl; // ERROR, stride of buffer 3 - -layout(xfb_stride=48) out bblck7 { // ERROR, stride of buffer 3 - layout(xfb_stride=64) vec4 bbv1; - layout(xfb_stride=32) vec4 bbv2; // ERROR, stride of buffer 3 -} bbinst7; - -struct S5 { - int i; // 4 bytes plus 4 byte hole - double d; // 8 bytes - float f; // 4 bytes -}; // total size = 20 - -struct T { - bool b; // 4 plus 4 byte hole - S5 s; // 20 - vec2 v2; // 8 -}; // total size = 36 - -out layout(xfb_buffer=0, xfb_offset=0, xfb_stride=92) bblck8 { // ERROR, stride not multiple of 8 - bool b; // offset 0 - T t; // offset 8, size 40 - int i; // offset 40 + 4 = 48 - mat3x3 m3; // offset 52 - float f; // offset 52 + 9*4 = 88 - float g; // ERROR, overflow stride -} bbinst8; - -out layout(xfb_buffer=4) bblck9 { - layout(xfb_offset=1) bool b; // ERROR - layout(xfb_offset=12) T t; // ERROR - layout(xfb_offset=52) mat3x3 m3; // non-multiple of 8 okay - layout(xfb_offset=90) int i; // ERROR - layout(xfb_offset=98) double d; // ERROR - layout(xfb_offset=108) S s; // non-multiple of 8 okay -} bbinst9; - -layout(xfb_buffer=5, xfb_stride=6) out; // link ERROR, stride not multiple of 4 -layout(xfb_offset=0) out float bm; - -layout(xfb_buffer=6, xfb_stride=2000) out; // ERROR, stride too big - -out layout(xfb_buffer=7, xfb_offset=0) bblck10 { // link ERROR, implicit stride too big - dmat4x4 m1; - dmat4x4 m2; - float f; -} bbinst10; - -layout(xfb_buffer = 3) out; -layout(xfb_offset = 32) out gl_PerVertex { - layout(xfb_buffer = 2) float gl_PointSize; // ERROR, change in xfb_buffer - vec4 gl_Position; -}; - -int drawParamsBad() -{ - return gl_BaseVertexARB + gl_BaseInstanceARB + gl_DrawIDARB; // ERROR, extension not requested -} - -#extension GL_ARB_shader_draw_parameters: enable - -int drawParams() -{ - return gl_BaseVertexARB + gl_BaseInstanceARB + gl_DrawIDARB; - gl_BaseVertexARB = 3; // ERROR, can't write to shader 'in' - gl_BaseInstanceARB = 3; // ERROR, can't write to shader 'in' - gl_DrawIDARB = 3; // ERROR, can't write to shader 'in' - glBaseInstanceARB; // ERROR, not defined -} diff --git a/deps/glslang/Test/450.comp b/deps/glslang/Test/450.comp deleted file mode 100644 index 316674dd..00000000 --- a/deps/glslang/Test/450.comp +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 core -layout(local_size_x = 0) in; // ERROR, 0 not allowed - -layout(binding=10000) uniform atomic_uint; // ERROR - -void main() -{ - shared float f; // ERROR shared must be global -} diff --git a/deps/glslang/Test/450.frag b/deps/glslang/Test/450.frag deleted file mode 100644 index abab34d7..00000000 --- a/deps/glslang/Test/450.frag +++ /dev/null @@ -1,93 +0,0 @@ -#version 450 core - -in float in1; -in vec2 in2; -in vec3 in3; -in vec4 in4; - -void main() -{ - vec2 v2 = dFdxFine(in2); - vec3 v3 = dFdyCoarse(in3); - vec4 v4 = fwidth(in4); - v4 = dFdyFine(in4); - v3 = dFdyFine(in3); - float f = dFdx(in1) + dFdxFine(in1) + dFdxCoarse(in1); - v4 = fwidthCoarse(in4) + fwidthFine(in4); - - float cull = gl_CullDistance[2]; - float consts = gl_MaxCullDistances + gl_MaxCombinedClipAndCullDistances + gl_MaxSamples; - - if (gl_HelperInvocation) - ++v4; - - int sum = gl_MaxVertexImageUniforms + - gl_MaxFragmentImageUniforms + - gl_MaxComputeImageUniforms + - gl_MaxCombinedImageUniforms + - gl_MaxCombinedShaderOutputResources; - - bool b1, b3, b; - uint uin; - bvec2 b2 = mix(bvec2(b1), bvec2(b3), bvec2(b)); - uint um = mix(uin, uin, b); - ivec3 im3 = mix(ivec3(uin), ivec3(uin), bvec3(b)); -} - -uniform sampler2DMS s2dms; -uniform usampler2DMSArray us2dmsa; -layout(rgba32i) uniform iimage2DMS ii2dms; -layout(rgba32f) uniform image2DMSArray i2dmsa; - -void foo() -{ - int s = textureSamples(s2dms); - s += textureSamples(us2dmsa); - s += imageSamples(ii2dms); - s += imageSamples(i2dmsa); - float f = imageAtomicExchange(i2dmsa, ivec3(in3), 2, 4.5); -} - -#extension GL_ARB_sparse_texture2: enable - -uniform sampler2D s2D; -uniform isampler2DArray is2DArray; -uniform sampler2DRectShadow s2DRectShadow; - -in flat ivec2 offsets[4]; -in vec2 c2; -in vec3 c3; - -void testOffsets() -{ - vec4 texel = vec4(0.0); - ivec4 itexel = ivec4(0); - const ivec2 constOffsets[4] = ivec2[4](ivec2(1,2), ivec2(3,4), ivec2(15,16), ivec2(-2,0)); - sparseTextureGatherOffsetsARB(s2D, c2, constOffsets, texel); - sparseTextureGatherOffsetsARB(is2DArray, c3, constOffsets, itexel, 2); - sparseTextureGatherOffsetsARB(s2DRectShadow, c2, 2.0, constOffsets, texel); - - sparseTextureGatherOffsetsARB(s2D, c2, offsets, texel); // Error : Non constant offsets - sparseTextureGatherOffsetsARB(is2DArray, c3, offsets, itexel, 2); // Error : Non constant offsets - sparseTextureGatherOffsetsARB(s2DRectShadow, c2, 2.0, offsets, texel); // Error : Non constant offsets - -} - -in float gl_CullDistance[6]; - -float cull(int i) -{ - return (i >= 6) ? gl_CullDistance[5] : gl_CullDistance[i]; -} - -layout(location = 6) in bName1 { - float f; - layout(location = 7) float g; - mat4 m; -} bInst1; -layout(location = 12) in bName2 { - float f; - layout(location = 13) float g; // ERROR, location on array -} bInst2[3]; - -layout(early_fragment_tests) in float f; // ERROR, must be standalone diff --git a/deps/glslang/Test/450.geom b/deps/glslang/Test/450.geom deleted file mode 100644 index 45cbecba..00000000 --- a/deps/glslang/Test/450.geom +++ /dev/null @@ -1,19 +0,0 @@ -#version 450 core - -in gl_PerVertex { - float gl_CullDistance[3]; -} gl_in[]; - -out gl_PerVertex { - float gl_CullDistance[3]; -}; - -layout(triangles) in; - -void main() -{ - gl_in[3].gl_Position; // ERROR, out of range - gl_CullDistance[2] = gl_in[1].gl_CullDistance[2]; -} - -layout(points) in float f[3]; // ERROR, must be standalone diff --git a/deps/glslang/Test/450.tesc b/deps/glslang/Test/450.tesc deleted file mode 100644 index bf5c0837..00000000 --- a/deps/glslang/Test/450.tesc +++ /dev/null @@ -1,23 +0,0 @@ -#version 450 core - -in gl_PerVertex { - float gl_CullDistance[3]; -} gl_in[gl_MaxPatchVertices]; - -out gl_PerVertex { - float gl_CullDistance[3]; -} gl_out[4]; - -void main() -{ - gl_out[gl_InvocationID].gl_CullDistance[2] = gl_in[1].gl_CullDistance[2]; -} - -layout(location = 4) out bName1 { - float f; - layout(location = 5) float g; -} bInst1[2]; -layout(location = 6) out bName2 { - float f; - layout(location = 7) float g; // ERROR, location on array -} bInst2[2][3]; diff --git a/deps/glslang/Test/450.tese b/deps/glslang/Test/450.tese deleted file mode 100644 index 8cdeb207..00000000 --- a/deps/glslang/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/Test/450.vert b/deps/glslang/Test/450.vert deleted file mode 100644 index e99a133c..00000000 --- a/deps/glslang/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/Test/460.frag b/deps/glslang/Test/460.frag deleted file mode 100644 index 23f8eea6..00000000 --- a/deps/glslang/Test/460.frag +++ /dev/null @@ -1,32 +0,0 @@ -#version 460 core - -struct S { - float f; - vec4 v; -}; - -in S s; - -void main() -{ - interpolateAtCentroid(s.v); - bool b1; - b1 = anyInvocation(b1); - b1 = allInvocations(b1); - b1 = allInvocationsEqual(b1); -} - -void attExtBad() -{ - // ERRORs, not enabled - [[dependency_length(1+3)]] for (int i = 0; i < 8; ++i) { } - [[flatten]] if (true) { } else { } -} - -#extension GL_EXT_control_flow_attributes : enable - -void attExt() -{ - [[dependency_length(-3)]] do { } while(true); // ERROR, not positive - [[dependency_length(0)]] do { } while(true); // ERROR, not positive -} diff --git a/deps/glslang/Test/460.vert b/deps/glslang/Test/460.vert deleted file mode 100644 index cf4f4ada..00000000 --- a/deps/glslang/Test/460.vert +++ /dev/null @@ -1,16 +0,0 @@ -#version 460 core - -int i; -; // extraneous semicolon okay -float f;;; - -void main() -{ - bool b1; - float array[int(mod(float (7.1), float (4.0)))]; - b1 = anyInvocation(b1); - b1 = allInvocations(b1); - b1 = allInvocationsEqual(b1); -} -; -; diff --git a/deps/glslang/Test/BestMatchFunction.vert b/deps/glslang/Test/BestMatchFunction.vert deleted file mode 100644 index eb092339..00000000 --- a/deps/glslang/Test/BestMatchFunction.vert +++ /dev/null @@ -1,20 +0,0 @@ -#version 150 -#extension GL_ARB_gpu_shader5 : require - -uniform ivec4 u1; -uniform uvec4 u2; -out vec4 result; -vec4 f(in vec4 a, in vec4 b){ return a * b;} // choice 1 -vec4 f(in uvec4 a, in uvec4 b){ return vec4(a - b);} // choice 2 - -void main() -{ - result = f(u1, u2); // should match choice 2. which have less implicit conversion. - switch (gl_VertexID) - { - case 0: gl_Position = vec4(-1.0, 1.0, 0.0, 1.0); break; - case 1: gl_Position = vec4( 1.0, 1.0, 0.0, 1.0); break; - case 2: gl_Position = vec4(-1.0,-1.0, 0.0, 1.0); break; - case 3: gl_Position = vec4( 1.0,-1.0, 0.0, 1.0); break; - } -} diff --git a/deps/glslang/Test/EndStreamPrimitive.geom b/deps/glslang/Test/EndStreamPrimitive.geom deleted file mode 100644 index a654ebc4..00000000 --- a/deps/glslang/Test/EndStreamPrimitive.geom +++ /dev/null @@ -1,20 +0,0 @@ -#version 150 core -#extension GL_ARB_gpu_shader5 : require -layout(points) in; -layout(points, max_vertices = 1) out; -layout(stream=0) out float output1; -layout(stream=0) out float output2; -layout(stream=1) out float output3; -layout(stream=1) out float output4; -uniform uint stream; -void main() { - - output1 = 1.0; - output2 = 2.0; - EmitStreamVertex(0); - EndStreamPrimitive(0); - output3 = 3.0; - output4 = 4.0; - EmitStreamVertex(1); - EndStreamPrimitive(1); -} \ No newline at end of file diff --git a/deps/glslang/Test/GL_ARB_draw_instanced.vert b/deps/glslang/Test/GL_ARB_draw_instanced.vert deleted file mode 100644 index 6e390866..00000000 --- a/deps/glslang/Test/GL_ARB_draw_instanced.vert +++ /dev/null @@ -1,18 +0,0 @@ -#version 150 -#extension GL_ARB_draw_instanced : require -#define ID gl_InstanceID - -uniform mat4 gtf_ModelViewProjectionMatrix; -uniform vec3 instanceOffsets[3]; -in vec4 va[gl_MaxVertexAttribs]; -out vec4 color; - -void main (void) -{ - vec4 vertex = vec4(va[0].xy / 3.0, va[0].zw) + vec4(instanceOffsets[ID], 1.0); - color = vec4(0, 0, 0, 0); - for (int i = 1; i < gl_MaxVertexAttribs; i++) - color += va[i]; - gl_Position = gtf_ModelViewProjectionMatrix * vertex; - gl_PointSize = 1.0; -} diff --git a/deps/glslang/Test/GL_ARB_fragment_coord_conventions.vert b/deps/glslang/Test/GL_ARB_fragment_coord_conventions.vert deleted file mode 100644 index 962734f4..00000000 --- a/deps/glslang/Test/GL_ARB_fragment_coord_conventions.vert +++ /dev/null @@ -1,27 +0,0 @@ -#version 140 - -#extension GL_ARB_fragment_coord_conventions: require -#extension GL_ARB_explicit_attrib_location : enable - - -#if !defined GL_ARB_fragment_coord_conventions -# error GL_ARB_fragment_coord_conventions is not defined -#elif GL_ARB_fragment_coord_conventions != 1 -# error GL_ARB_fragment_coord_conventions is not equal to 1 -#endif - - -layout (location = 0) in vec4 pos; -out vec4 i; - -uniform float gtf_windowWidth; -uniform float gtf_windowHeight; -uniform float n; -uniform float f; - -void main() -{ - gl_Position = pos; - i = vec4((pos.x+1.0)*0.5*gtf_windowWidth, (pos.y+1.0)*0.5*gtf_windowHeight, (f-n)*0.5*pos.z + (f+n)*0.5, pos.w); -} - diff --git a/deps/glslang/Test/GL_ARB_gpu_shader5.u2i.vert b/deps/glslang/Test/GL_ARB_gpu_shader5.u2i.vert deleted file mode 100644 index 0caa9bcf..00000000 --- a/deps/glslang/Test/GL_ARB_gpu_shader5.u2i.vert +++ /dev/null @@ -1,11 +0,0 @@ -#version 150 -#extension GL_ARB_gpu_shader5 : require - -uniform int u1; -uniform int u2; -out vec4 result; -void main() -{ - uint v = 0; - v = uint(u2) - u1; // implicit conversions -} diff --git a/deps/glslang/Test/GL_EXT_shader_integer_mix.vert b/deps/glslang/Test/GL_EXT_shader_integer_mix.vert deleted file mode 100644 index 3616e58c..00000000 --- a/deps/glslang/Test/GL_EXT_shader_integer_mix.vert +++ /dev/null @@ -1,13 +0,0 @@ -#version 330 -#extension GL_EXT_shader_integer_mix: require - - -#if !defined GL_EXT_shader_integer_mix -# error GL_EXT_shader_integer_mix is not defined -#elif GL_EXT_shader_integer_mix != 1 -# error GL_EXT_shader_integer_mix is not equal to 1 -#endif - -void main(void) { - gl_Position = vec4(0); -} diff --git a/deps/glslang/Test/Operations.frag b/deps/glslang/Test/Operations.frag deleted file mode 100644 index ca06a752..00000000 --- a/deps/glslang/Test/Operations.frag +++ /dev/null @@ -1,166 +0,0 @@ -#version 130 - -uniform ivec4 uiv4; -uniform vec4 uv4; -uniform bool ub; -uniform bvec4 ub41, ub42; -uniform float uf; -uniform int ui; - - -uniform uvec4 uuv4; -uniform uint uui; - - -void main() -{ - vec4 v; - float f; - bool b; - bvec4 bv4; - int i; - - uint u; - - - // floating point - v = radians(uv4); - v += degrees(v); - v += (i = ui*ui, sin(v)); - v += cos(v); - v += tan(v); - v += asin(v); - v += acos(v); - - v += atan(v); - v += sinh(v); - v += cosh(v); - v += tanh(v); - v += asinh(v); - v += acosh(v); - v += atanh(v); - - v += pow(v, v); - v += exp(v); - v += log(v); - v += exp2(v); - v += log2(v); - v += sqrt(v); - v += inversesqrt(v); - v += abs(v); - v += sign(v); - v += floor(v); - - - v += trunc(v); - v += round(v); - v += roundEven(v); - - - v += ceil(v); - v += fract(v); - v += mod(v, v); - v += mod(v, v.x); - - - v += modf(v, v); - - - v += min(v, uv4); - v += max(v, uv4); - v += clamp(v, uv4, uv4); - v += mix(v,v,v); - - - v += mix(v,v,bv4); - v += intBitsToFloat(ivec4(i)); - v += uintBitsToFloat(uv4); - v += fma(v,v,v); - v += frexp(v); - v += ldexp(v); - v += unpackUnorm2x16(v); - v += unpackUnorm4x8(v); - v += unpackSnorm4x8(v); - - - v += step(v,v); - v += smoothstep(v,v,v); - v += step(uf,v); - v += smoothstep(uf,uf,v); - v += normalize(v); - v += faceforward(v, v, v); - v += reflect(v, v); - v += refract(v, v, uf); - v += dFdx(v); - v += dFdy(v); - v += fwidth(v); - //noise*(v); - - - // signed integer - i += abs(ui); - i += sign(i); - i += min(i, ui); - i += max(i, ui); - i += clamp(i, ui, ui); - - floatsBitsToInt(v); - packUnorm2x16(v); - packUnorm4x8(v); - packSnorm4x8(v); - - // unsigned integer - u = abs(uui); - u += sign(u); - u += min(u, uui); - u += max(u, uui); - u += clamp(u, uui, uui); - u += floatsBitToInt(v); - u += packUnorm2x16(v); - u += packUnorm4x8(v); - i += uui & i; // ERRORs, no int/uint conversions before 400 - i += uui ^ i; - i += i | uui; - - // bool - - b = isnan(uf); - b = isinf(v.y); - - b = any(lessThan(v, uv4)); - b = (b && any(lessThanEqual(v, uv4))); - b = (b && any(greaterThan(v, uv4))); - b = (b && any(greaterThanEqual(v, uv4))); - b = (b && any(equal(ub41, ub42))); - b = (b && any(notEqual(ub41, ub42))); - b = (b && any(ub41)); - b = (b && all(ub41)); - b = (b && any(not(ub41))); - - i = ((i + ui) * i - ui) / i; - i = i % ui; - if (i == ui || i != ui && i == ui ^^ i != 2) - ++i; - - f = ((uf + uf) * uf - uf) / uf; - - f += length(v); - f += distance(v, v); - f += dot(v, v); - f += dot(f, uf); - f += cross(v.xyz, v.xyz).x; - - if (f == uf || f != uf && f != 2.0) - ++f; - - i &= ui; - i |= 0x42; - i ^= ui; - i %= 17; - i >>= 2; - i <<= ui; - i = ~i; - b = !b; - - gl_FragColor = b ? vec4(i) + vec4(f) + v : v; -} diff --git a/deps/glslang/Test/aggOps.frag b/deps/glslang/Test/aggOps.frag deleted file mode 100644 index a0450dca..00000000 --- a/deps/glslang/Test/aggOps.frag +++ /dev/null @@ -1,51 +0,0 @@ -#version 130 - -uniform sampler2D sampler; -varying mediump vec2 coord; - -varying vec4 u, w; - -struct s1 { - int i; - float f; -}; - -struct s2 { - int i; - float f; - s1 s1_1; -}; - -uniform s1 foo1; -uniform s2 foo2a; -uniform s2 foo2b; - -void main() -{ - vec4 v; - s1 a[3], b[3]; - a = s1[3](s1(int(u.x), u.y), s1(int(u.z), u.w), s1(14, 14.0)); - b = s1[3](s1(17, 17.0), s1(int(w.x), w.y), s1(int(w.z), w.w)); - - if (foo2a == foo2b) - v = texture2D(sampler, coord); - else - v = texture2D(sampler, 2.0*coord); - - if (u == v) - v *= 3.0; - - if (u != v) - v *= 4.0; - - if (coord == v.yw) - v *= 5.0; - - if (a == b) - v *= 6.0; - - if (a != b) - v *= 7.0; - - gl_FragColor = v; -} diff --git a/deps/glslang/Test/always-discard.frag b/deps/glslang/Test/always-discard.frag deleted file mode 100644 index cea4ceec..00000000 --- a/deps/glslang/Test/always-discard.frag +++ /dev/null @@ -1,36 +0,0 @@ -#version 110 -varying vec2 tex_coord; - -void main (void) -{ - vec4 white = vec4(1.0); - vec4 black = vec4(0.2); - vec4 color = white; - - // First, cut out our circle - float x = tex_coord.x*2.0 - 1.0; - float y = tex_coord.y*2.0 - 1.0; - - float radius = sqrt(x*x + y*y); - if (radius > 1.0) { - if (radius > 1.1) { - ++color; - } - - gl_FragColor = color; - - if (radius > 1.2) { - ++color; - } - - } - - discard; - - // If we're near an edge, darken us a tiny bit - if (radius >= 0.75) - color -= abs(pow(radius, 16.0)/2.0); - - gl_FragColor = color; - -} diff --git a/deps/glslang/Test/always-discard2.frag b/deps/glslang/Test/always-discard2.frag deleted file mode 100644 index a619369d..00000000 --- a/deps/glslang/Test/always-discard2.frag +++ /dev/null @@ -1,19 +0,0 @@ -#version 110 -varying vec2 tex_coord; - -void main (void) -{ - vec4 white = vec4(1.0); - vec4 black = vec4(0.2); - vec4 color = white; - - // First, cut out our circle - float x = tex_coord.x*2.0 - 1.0; - float y = tex_coord.y*2.0 - 1.0; - - discard; - - - gl_FragColor = color; - -} diff --git a/deps/glslang/Test/array.frag b/deps/glslang/Test/array.frag deleted file mode 100644 index a7b96a44..00000000 --- a/deps/glslang/Test/array.frag +++ /dev/null @@ -1,113 +0,0 @@ -#version 130 - -float gu[]; -float g4[4]; -float g5[5]; - -uniform int a; - -float[4] foo(float a[5]) -{ - return float[](a[0], a[1], a[2], a[3]); -} - -void bar(float[5]) {} - -void main() -{ - { - float gu[2]; // okay, new scope - - gu[2] = 4.0; // ERROR, overflow - } - - gu[2] = 4.0; // okay - - gu[3] = 3.0; - gu[a] = 5.0; // ERROR - - g4 = foo(g5); - g5 = g4; // ERROR - gu = g4; // ERROR - - foo(gu); // ERROR - bar(g5); - - if (float[4](1.0, 2.0, 3.0, 4.0) == g4) - gu[0] = 2.0; - - float u[]; - u[2] = 3.0; // okay - float u[5]; - u[5] = 5.0; // ERROR - foo(u); // okay - - gl_FragData[1000] = vec4(1.0); // ERROR - gl_FragData[-1] = vec4(1.0); // ERROR - gl_FragData[3] = vec4(1.0); - - const int ca[] = int[](3, 2); - int sum = ca[0]; - sum += ca[1]; - sum += ca[2]; // ERROR - - const int ca3[3] = int[](3, 2); // ERROR - int ica[] = int[](3, 2); - int ica3[3] = int[](3, 2); // ERROR - ica[3.1] = 3; // ERROR - ica[u[1]] = 4; // ERROR -} - -int[] foo213234(); // ERROR -int foo234234(float[]); // ERROR -int foo234235(vec2[] v); // ERROR - -vec3 guns[]; -float f = guns[7]; - -void foo() -{ - int uns[]; - uns[3] = 40; - uns[1] = 30; - guns[2] = vec3(2.4); - - float unsf[]; - bar(unsf); // ERROR -} - -float[] foo2() // ERROR -{ - float f[]; - return f; - float g[9]; - return g; // ERROR -} - -float gUnusedUnsized[]; - -void foo3() -{ - float resize1[]; - resize1[2] = 4.0; - resize1.length(); // ERROR - float resize1[3]; - resize1.length(); - - float resize2[]; - resize2[5] = 4.0; - float resize2[5]; // should be ERROR, but is not - resize2.length(); - resize2[5] = 4.0; // ERROR -} - -int[] i = int[](); // ERROR, need constructor arguments -float emptyA[]; -float b = vec4(emptyA); // ERROR, array can't be a constructor argument -uniform sampler2D s2d[]; - -void foo4() -{ - s2d[a]; // ERROR, can't variably index unsized array - float local[] = gUnusedUnsized; // ERROR, can initialize with runtime-sized array -} diff --git a/deps/glslang/Test/array100.frag b/deps/glslang/Test/array100.frag deleted file mode 100644 index b77aedf6..00000000 --- a/deps/glslang/Test/array100.frag +++ /dev/null @@ -1,70 +0,0 @@ -#version 100 - -float gu[]; // ERROR -float g4[4]; -float g5[5]; - -uniform int a; - -float[4] foo(float[5] a) // ERROR // ERROR -{ - return float[](a[0], a[1], a[2], a[3]); // ERROR -} - -void bar(float[5]) {} - -void main() -{ - { - float gu[2]; // okay, new scope - - gu[2] = 4.0; // ERROR, overflow - } - - g4 = foo(g5); // ERROR - g5 = g4; // ERROR - gu = g4; // ERROR - - foo(gu); // ERROR - bar(g5); - - if (float[4](1.0, 2.0, 3.0, 4.0) == g4) // ERROR - gu[0] = 2.0; - - float u[5]; - u[5] = 5.0; // ERROR - foo(u); // okay - - gl_FragData[1000] = vec4(1.0); // ERROR - gl_FragData[-1] = vec4(1.0); // ERROR - gl_FragData[3] = vec4(1.0); -} - -struct SA { - vec3 v3; - vec2 v2[4]; -}; - -struct SB { - vec4 v4; - SA sa; -}; - -SB bar9() -{ - SB s; - return s; // ERROR -} - -void bar10(SB s) // okay -{ -} - -void bar11() -{ - SB s1, s2; - s1 = s2; // ERROR - bar10(s1); - s2 = bar9(); // ERROR - SB initSb = s1; // ERROR -} diff --git a/deps/glslang/Test/atomicAdd.comp b/deps/glslang/Test/atomicAdd.comp deleted file mode 100644 index 27dfa13b..00000000 --- a/deps/glslang/Test/atomicAdd.comp +++ /dev/null @@ -1,19 +0,0 @@ -#version 320 es -layout(local_size_x = 1) in; - -struct structType{ - int y[3]; -}; - -layout(std430) buffer t2 { - structType f; -} t; - -buffer coherent Buffer { int x; }; -int z; - -void main() { - atomicAdd(x, 1); - atomicAdd(t.f.y[1], 1); - atomicAdd(z, 1); -} \ No newline at end of file diff --git a/deps/glslang/Test/atomicCounterARBOps.vert b/deps/glslang/Test/atomicCounterARBOps.vert deleted file mode 100644 index 5eb66371..00000000 --- a/deps/glslang/Test/atomicCounterARBOps.vert +++ /dev/null @@ -1,28 +0,0 @@ -#version 450 core -#extension GL_ARB_shader_atomic_counters: enable -#extension GL_ARB_shader_atomic_counter_ops:enable - -layout(binding = 0) uniform atomic_uint counter; - -out highp vec4 vsColor; - -void main(){ - vec4 outColor = vec4(1.0); - uint ret; - - ret = atomicCounterAddARB(counter, 4u); - ret = atomicCounterSubtractARB(counter, 4u); - ret = atomicCounterMinARB(counter, 4u); - ret = atomicCounterMaxARB(counter, 4u); - ret = atomicCounterAndARB(counter, 4u); - ret = atomicCounterOrARB(counter, 4u); - ret = atomicCounterXorARB(counter, 4u); - ret = atomicCounterExchangeARB(counter, 4u); - ret = atomicCounterCompSwapARB(counter, 4u, 4u); - - uint after = atomicCounter(counter); - if (after == ret) - outColor = vec4(0.0); - - vsColor = outColor; -} \ No newline at end of file diff --git a/deps/glslang/Test/atomic_uint.frag b/deps/glslang/Test/atomic_uint.frag deleted file mode 100644 index 41552144..00000000 --- a/deps/glslang/Test/atomic_uint.frag +++ /dev/null @@ -1,49 +0,0 @@ -#version 420 core - -layout(binding = 0) uniform atomic_uint counter; -layout(binding = 0, offset = 9) uniform atomic_uint counter; - -uint func(atomic_uint c) -{ - return atomicCounterIncrement(c); -} - -uint func2(out atomic_uint c) // ERROR -{ - return counter; // ERROR, type mismatch - return atomicCounter(counter); -} - -void main() -{ - atomic_uint non_uniform_counter; // ERROR - uint val = atomicCounter(counter); - atomicCounterDecrement(counter); -} - -layout(binding = 1, offset = 3) uniform atomic_uint countArr[4]; -uniform int i; - -void opac() -{ - counter + counter; // ERROR - -counter; // ERROR - int a[3]; - a[counter]; // ERROR - countArr[2]; - countArr[i]; - counter = 4; // ERROR -} - -in atomic_uint acin; // ERROR -atomic_uint acg; // ERROR -uniform atomic_uint; -uniform atomic_uint aNoBind; // ERROR, no binding -layout(binding=0, offset=32) uniform atomic_uint aOffset; -layout(binding=0, offset=4) uniform atomic_uint; -layout(binding=0) uniform atomic_uint bar3; // offset is 4 -layout(binding=0) uniform atomic_uint ac[2]; // offset = 8 -layout(binding=0) uniform atomic_uint ad; // offset = 20 -layout(offset=8) uniform atomic_uint bar4; // ERROR, no binding -layout(binding = 0, offset = 12) uniform atomic_uint overlap; // ERROR, overlapping offsets -layout(binding = 20) uniform atomic_uint bigBind; // ERROR, binding too big diff --git a/deps/glslang/Test/badChars.frag b/deps/glslang/Test/badChars.frag deleted file mode 100644 index 3e9700d9..00000000 --- a/deps/glslang/Test/badChars.frag +++ /dev/null @@ -1,7 +0,0 @@ -#ifþ -#endif -#error AÿB -#if -#endif -int aÿ -#define A "ÿ \ No newline at end of file diff --git a/deps/glslang/Test/badMacroArgs.frag b/deps/glslang/Test/badMacroArgs.frag deleted file mode 100644 index 7d7de870..00000000 --- a/deps/glslang/Test/badMacroArgs.frag +++ /dev/null @@ -1,4 +0,0 @@ -#version 400 - -#define m(a) a -m() \ No newline at end of file diff --git a/deps/glslang/Test/bar.h b/deps/glslang/Test/bar.h deleted file mode 100644 index c206a325..00000000 --- a/deps/glslang/Test/bar.h +++ /dev/null @@ -1 +0,0 @@ -float4 i1; diff --git a/deps/glslang/Test/baseLegalResults/hlsl.aliasOpaque.frag.out b/deps/glslang/Test/baseLegalResults/hlsl.aliasOpaque.frag.out deleted file mode 100644 index 2afdb104..00000000 --- a/deps/glslang/Test/baseLegalResults/hlsl.aliasOpaque.frag.out +++ /dev/null @@ -1,48 +0,0 @@ -hlsl.aliasOpaque.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 89 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 62 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 47 "gss" - Name 51 "gtex" - Name 62 "@entryPointOutput" - Decorate 47(gss) DescriptorSet 0 - Decorate 47(gss) Binding 0 - Decorate 51(gtex) DescriptorSet 0 - Decorate 51(gtex) Binding 2 - Decorate 62(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeSampler - 7: TypeFloat 32 - 8: TypeImage 7(float) 2D sampled format:Unknown - 11: TypeVector 7(float) 4 - 32: TypeSampledImage 8 - 34: TypeVector 7(float) 2 - 35: 7(float) Constant 1045220557 - 36: 7(float) Constant 1050253722 - 37: 34(fvec2) ConstantComposite 35 36 - 43: TypePointer UniformConstant 6 - 47(gss): 43(ptr) Variable UniformConstant - 50: TypePointer UniformConstant 8 - 51(gtex): 50(ptr) Variable UniformConstant - 54: 7(float) Constant 1077936128 - 61: TypePointer Output 11(fvec4) -62(@entryPointOutput): 61(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 71: 6 Load 47(gss) - 73: 8 Load 51(gtex) - 86: 32 SampledImage 73 71 - 87: 11(fvec4) ImageSampleImplicitLod 86 37 - 88: 11(fvec4) VectorTimesScalar 87 54 - Store 62(@entryPointOutput) 88 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseLegalResults/hlsl.flattenOpaque.frag.out b/deps/glslang/Test/baseLegalResults/hlsl.flattenOpaque.frag.out deleted file mode 100644 index 7bb33e60..00000000 --- a/deps/glslang/Test/baseLegalResults/hlsl.flattenOpaque.frag.out +++ /dev/null @@ -1,69 +0,0 @@ -hlsl.flattenOpaque.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 190 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 120 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 38 "tex" - Name 82 "s.s2D" - Name 97 "s2.s2D" - Name 100 "s2.tex" - Name 120 "@entryPointOutput" - Decorate 38(tex) DescriptorSet 0 - Decorate 38(tex) Binding 0 - Decorate 82(s.s2D) DescriptorSet 0 - Decorate 82(s.s2D) Binding 1 - Decorate 97(s2.s2D) DescriptorSet 0 - Decorate 97(s2.s2D) Binding 2 - Decorate 100(s2.tex) DescriptorSet 0 - Decorate 100(s2.tex) Binding 3 - Decorate 120(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeSampler - 9: TypeFloat 32 - 10: TypeVector 9(float) 4 - 15: TypeVector 9(float) 2 - 22: TypeImage 9(float) 2D sampled format:Unknown - 37: TypePointer UniformConstant 22 - 38(tex): 37(ptr) Variable UniformConstant - 45: TypeSampledImage 22 - 47: 9(float) Constant 1045220557 - 48: 9(float) Constant 1050253722 - 49: 15(fvec2) ConstantComposite 47 48 - 81: TypePointer UniformConstant 6 - 82(s.s2D): 81(ptr) Variable UniformConstant - 97(s2.s2D): 81(ptr) Variable UniformConstant - 100(s2.tex): 37(ptr) Variable UniformConstant - 119: TypePointer Output 10(fvec4) -120(@entryPointOutput): 119(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 135: 6 Load 82(s.s2D) - 160: 22 Load 38(tex) - 163: 45 SampledImage 160 135 - 164: 10(fvec4) ImageSampleImplicitLod 163 49 - 139: 6 Load 82(s.s2D) - 167: 22 Load 38(tex) - 170: 45 SampledImage 167 139 - 172: 10(fvec4) ImageSampleImplicitLod 170 49 - 143: 10(fvec4) FAdd 164 172 - 144: 6 Load 97(s2.s2D) - 146: 22 Load 100(s2.tex) - 179: 45 SampledImage 146 144 - 180: 10(fvec4) ImageSampleImplicitLod 179 49 - 150: 10(fvec4) FAdd 143 180 - 151: 6 Load 97(s2.s2D) - 153: 22 Load 100(s2.tex) - 187: 45 SampledImage 153 151 - 189: 10(fvec4) ImageSampleImplicitLod 187 49 - 157: 10(fvec4) FAdd 150 189 - Store 120(@entryPointOutput) 157 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseLegalResults/hlsl.flattenOpaqueInit.vert.out b/deps/glslang/Test/baseLegalResults/hlsl.flattenOpaqueInit.vert.out deleted file mode 100644 index 0e8583f9..00000000 --- a/deps/glslang/Test/baseLegalResults/hlsl.flattenOpaqueInit.vert.out +++ /dev/null @@ -1,54 +0,0 @@ -hlsl.flattenOpaqueInit.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 139 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 80 - Source HLSL 500 - Name 4 "main" - Name 43 "g_tInputTexture_sampler" - Name 47 "g_tInputTexture" - Name 80 "@entryPointOutput" - Decorate 43(g_tInputTexture_sampler) DescriptorSet 0 - Decorate 43(g_tInputTexture_sampler) Binding 0 - Decorate 47(g_tInputTexture) DescriptorSet 0 - Decorate 47(g_tInputTexture) Binding 1 - Decorate 80(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeSampler - 7: TypeFloat 32 - 8: TypeImage 7(float) 2D sampled format:Unknown - 11: TypeVector 7(float) 4 - 31: TypeSampledImage 8 - 33: TypeVector 7(float) 2 - 34: 7(float) Constant 1050253722 - 35: 7(float) Constant 1053609165 - 36: 33(fvec2) ConstantComposite 34 35 - 37: 7(float) Constant 0 - 42: TypePointer UniformConstant 6 -43(g_tInputTexture_sampler): 42(ptr) Variable UniformConstant - 46: TypePointer UniformConstant 8 -47(g_tInputTexture): 46(ptr) Variable UniformConstant - 79: TypePointer Output 11(fvec4) -80(@entryPointOutput): 79(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 91: 6 Load 43(g_tInputTexture_sampler) - 92: 8 Load 47(g_tInputTexture) - 113: 31 SampledImage 92 91 - 114: 11(fvec4) ImageSampleExplicitLod 113 36 Lod 37 - 118: 6 Load 43(g_tInputTexture_sampler) - 120: 8 Load 47(g_tInputTexture) - 129: 31 SampledImage 120 118 - 130: 11(fvec4) ImageSampleExplicitLod 129 36 Lod 37 - 100: 11(fvec4) FAdd 114 130 - 137: 31 SampledImage 92 91 - 138: 11(fvec4) ImageSampleExplicitLod 137 36 Lod 37 - 105: 11(fvec4) FAdd 100 138 - Store 80(@entryPointOutput) 105 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseLegalResults/hlsl.flattenOpaqueInitMix.vert.out b/deps/glslang/Test/baseLegalResults/hlsl.flattenOpaqueInitMix.vert.out deleted file mode 100644 index fe858efd..00000000 --- a/deps/glslang/Test/baseLegalResults/hlsl.flattenOpaqueInitMix.vert.out +++ /dev/null @@ -1,45 +0,0 @@ -hlsl.flattenOpaqueInitMix.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 99 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 57 - Source HLSL 500 - Name 4 "main" - Name 44 "g_tInputTexture_sampler" - Name 47 "g_tInputTexture" - Name 57 "@entryPointOutput" - Decorate 44(g_tInputTexture_sampler) DescriptorSet 0 - Decorate 44(g_tInputTexture_sampler) Binding 0 - Decorate 47(g_tInputTexture) DescriptorSet 0 - Decorate 47(g_tInputTexture) Binding 1 - Decorate 57(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeSampler - 7: TypeFloat 32 - 8: TypeImage 7(float) 2D sampled format:Unknown - 11: TypeVector 7(float) 4 - 28: TypeSampledImage 8 - 36: TypeVector 7(float) 2 - 38: 7(float) Constant 0 - 43: TypePointer UniformConstant 6 -44(g_tInputTexture_sampler): 43(ptr) Variable UniformConstant - 46: TypePointer UniformConstant 8 -47(g_tInputTexture): 46(ptr) Variable UniformConstant - 49: 7(float) Constant 1056964608 - 56: TypePointer Output 11(fvec4) -57(@entryPointOutput): 56(ptr) Variable Output - 98: 36(fvec2) ConstantComposite 49 49 - 4(main): 2 Function None 3 - 5: Label - 64: 6 Load 44(g_tInputTexture_sampler) - 65: 8 Load 47(g_tInputTexture) - 75: 28 SampledImage 65 64 - 81: 11(fvec4) ImageSampleExplicitLod 75 98 Lod 38 - Store 57(@entryPointOutput) 81 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseLegalResults/hlsl.flattenSubset.frag.out b/deps/glslang/Test/baseLegalResults/hlsl.flattenSubset.frag.out deleted file mode 100644 index 46d3afba..00000000 --- a/deps/glslang/Test/baseLegalResults/hlsl.flattenSubset.frag.out +++ /dev/null @@ -1,45 +0,0 @@ -hlsl.flattenSubset.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 67 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 50 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 21 "samp" - Name 33 "tex" - Name 50 "@entryPointOutput" - Decorate 21(samp) DescriptorSet 0 - Decorate 21(samp) Binding 0 - Decorate 33(tex) DescriptorSet 0 - Decorate 33(tex) Binding 1 - Decorate 50(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 13: TypeSampler - 20: TypePointer UniformConstant 13 - 21(samp): 20(ptr) Variable UniformConstant - 31: TypeImage 6(float) 2D sampled format:Unknown - 32: TypePointer UniformConstant 31 - 33(tex): 32(ptr) Variable UniformConstant - 37: TypeSampledImage 31 - 39: TypeVector 6(float) 2 - 40: 6(float) Constant 1056964608 - 41: 39(fvec2) ConstantComposite 40 40 - 49: TypePointer Output 7(fvec4) -50(@entryPointOutput): 49(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 58: 13 Load 21(samp) - 62: 31 Load 33(tex) - 65: 37 SampledImage 62 58 - 66: 7(fvec4) ImageSampleImplicitLod 65 41 - Store 50(@entryPointOutput) 66 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseLegalResults/hlsl.flattenSubset2.frag.out b/deps/glslang/Test/baseLegalResults/hlsl.flattenSubset2.frag.out deleted file mode 100644 index 408c0eac..00000000 --- a/deps/glslang/Test/baseLegalResults/hlsl.flattenSubset2.frag.out +++ /dev/null @@ -1,27 +0,0 @@ -hlsl.flattenSubset2.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 53 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 52 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 52 "@entryPointOutput" - Decorate 52(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 43: 6(float) Constant 0 - 44: 7(fvec4) ConstantComposite 43 43 43 43 - 51: TypePointer Output 7(fvec4) -52(@entryPointOutput): 51(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - Store 52(@entryPointOutput) 44 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseLegalResults/hlsl.intrinsics.evalfns.frag.out b/deps/glslang/Test/baseLegalResults/hlsl.intrinsics.evalfns.frag.out deleted file mode 100644 index 564f0f4c..00000000 --- a/deps/glslang/Test/baseLegalResults/hlsl.intrinsics.evalfns.frag.out +++ /dev/null @@ -1,110 +0,0 @@ -hlsl.intrinsics.evalfns.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 274 - - Capability Shader - Capability InterpolationFunction - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 138 142 146 150 154 157 161 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 138 "inF1" - Name 142 "inF2" - Name 146 "inF3" - Name 150 "inF4" - Name 154 "inI2" - Name 157 "i.vPos" - Name 161 "@entryPointOutput" - Decorate 138(inF1) Location 0 - Decorate 142(inF2) Location 1 - Decorate 146(inF3) Location 2 - Decorate 150(inF4) Location 3 - Decorate 154(inI2) Flat - Decorate 154(inI2) Location 4 - Decorate 157(i.vPos) Location 5 - Decorate 161(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 8: TypeVector 6(float) 2 - 10: TypeVector 6(float) 3 - 12: TypeVector 6(float) 4 - 14: TypeInt 32 1 - 15: TypeVector 14(int) 2 - 30: 6(float) Constant 3204448256 - 31: 6(float) Constant 3179282432 - 32: 8(fvec2) ConstantComposite 30 31 - 36: 6(float) Constant 0 - 37: 6(float) Constant 1031798784 - 38: 8(fvec2) ConstantComposite 36 37 - 42: 6(float) Constant 1044381696 - 43: 6(float) Constant 3200253952 - 44: 8(fvec2) ConstantComposite 42 43 - 48: 6(float) Constant 1054867456 - 49: 8(fvec2) ConstantComposite 48 30 - 53: 14(int) Constant 28 - 64: TypeInt 32 0 - 65: 64(int) Constant 3 - 137: TypePointer Input 6(float) - 138(inF1): 137(ptr) Variable Input - 141: TypePointer Input 8(fvec2) - 142(inF2): 141(ptr) Variable Input - 145: TypePointer Input 10(fvec3) - 146(inF3): 145(ptr) Variable Input - 149: TypePointer Input 12(fvec4) - 150(inF4): 149(ptr) Variable Input - 153: TypePointer Input 15(ivec2) - 154(inI2): 153(ptr) Variable Input - 157(i.vPos): 141(ptr) Variable Input - 160: TypePointer Output 12(fvec4) -161(@entryPointOutput): 160(ptr) Variable Output - 273: 15(ivec2) ConstantComposite 53 53 - 4(main): 2 Function None 3 - 5: Label - 155: 15(ivec2) Load 154(inI2) - 183: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 138(inF1) 32 - 185: 8(fvec2) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 142(inF2) 38 - 187: 10(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 146(inF3) 44 - 189: 12(fvec4) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 150(inF4) 49 - 193: 15(ivec2) ShiftLeftLogical 155 273 - 195: 15(ivec2) ShiftRightArithmetic 193 273 - 196: 8(fvec2) ConvertSToF 195 - 197: 8(fvec2) VectorTimesScalar 196 37 - 198: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 138(inF1) 197 - 200: 6(float) FAdd 183 198 - 202: 6(float) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 138(inF1) 65 - 204: 6(float) FAdd 200 202 - 206: 8(fvec2) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 142(inF2) 65 - 208: 8(fvec2) FAdd 185 206 - 210: 10(fvec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 146(inF3) 65 - 212: 10(fvec3) FAdd 187 210 - 214: 12(fvec4) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 150(inF4) 65 - 216: 12(fvec4) FAdd 189 214 - 219: 14(int) CompositeExtract 155 0 - 220: 64(int) Bitcast 219 - 221: 6(float) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 138(inF1) 220 - 223: 6(float) FAdd 204 221 - 225: 6(float) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 138(inF1) - 227: 6(float) FAdd 223 225 - 229: 8(fvec2) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 142(inF2) - 231: 8(fvec2) FAdd 208 229 - 233: 10(fvec3) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 146(inF3) - 235: 10(fvec3) FAdd 212 233 - 237: 12(fvec4) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 150(inF4) - 239: 12(fvec4) FAdd 216 237 - 242: 8(fvec2) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 157(i.vPos) 38 - 244: 8(fvec2) FAdd 231 242 - 247: 8(fvec2) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 157(i.vPos) 65 - 249: 8(fvec2) FAdd 244 247 - 252: 8(fvec2) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 157(i.vPos) - 254: 8(fvec2) FAdd 249 252 - 257: 6(float) CompositeExtract 254 1 - 259: 6(float) CompositeExtract 235 2 - 261: 6(float) CompositeExtract 239 3 - 262: 12(fvec4) CompositeConstruct 227 257 259 261 - Store 161(@entryPointOutput) 262 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseLegalResults/hlsl.partialFlattenLocal.vert.out b/deps/glslang/Test/baseLegalResults/hlsl.partialFlattenLocal.vert.out deleted file mode 100644 index f45a7688..00000000 --- a/deps/glslang/Test/baseLegalResults/hlsl.partialFlattenLocal.vert.out +++ /dev/null @@ -1,86 +0,0 @@ -hlsl.partialFlattenLocal.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 164 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 86 89 - Source HLSL 500 - Name 4 "main" - Name 86 "pos" - Name 89 "@entryPointOutput" - Decorate 86(pos) Location 0 - Decorate 89(@entryPointOutput) BuiltIn Position - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 14: TypeVector 6(float) 3 - 15: TypeInt 32 0 - 16: 15(int) Constant 3 - 17: TypeArray 14(fvec3) 16 - 18: TypeVector 6(float) 2 - 19: 15(int) Constant 2 - 20: TypeArray 18(fvec2) 19 - 21: TypeInt 32 1 - 25: 21(int) Constant 0 - 31: 21(int) Constant 1 - 32: 6(float) Constant 0 - 33: 14(fvec3) ConstantComposite 32 32 32 - 34: TypePointer Function 14(fvec3) - 37: 6(float) Constant 1065353216 - 38: 18(fvec2) ConstantComposite 32 37 - 39: TypePointer Function 18(fvec2) - 42: TypePointer Function 6(float) - 54: TypeBool - 64: 15(int) Constant 0 - 67: 15(int) Constant 1 - 85: TypePointer Input 7(fvec4) - 86(pos): 85(ptr) Variable Input - 88: TypePointer Output 7(fvec4) -89(@entryPointOutput): 88(ptr) Variable Output - 135: TypePointer Function 17 - 137: TypePointer Function 20 - 4(main): 2 Function None 3 - 5: Label - 138: 137(ptr) Variable Function - 136: 135(ptr) Variable Function - 87: 7(fvec4) Load 86(pos) - 141: 34(ptr) AccessChain 136 25 - Store 141 33 - 142: 39(ptr) AccessChain 138 25 - Store 142 38 - Branch 104 - 104: Label - 163: 21(int) Phi 25 5 123 108 - 107: 54(bool) SLessThan 163 31 - LoopMerge 124 108 None - BranchConditional 107 108 124 - 108: Label - 143: 39(ptr) AccessChain 138 163 - 112: 18(fvec2) Load 143 - 144: 34(ptr) AccessChain 136 163 - 114: 14(fvec3) Load 144 - 115: 18(fvec2) VectorShuffle 114 114 0 1 - 116: 18(fvec2) FAdd 115 112 - 145: 42(ptr) AccessChain 136 163 64 - 118: 6(float) CompositeExtract 116 0 - Store 145 118 - 146: 42(ptr) AccessChain 136 163 67 - 120: 6(float) CompositeExtract 116 1 - Store 146 120 - 123: 21(int) IAdd 163 31 - Branch 104 - 124: Label - 148: 17 Load 136 - 162: 14(fvec3) CompositeExtract 148 0 - 129: 6(float) CompositeExtract 162 0 - 130: 6(float) CompositeExtract 162 1 - 131: 6(float) CompositeExtract 162 2 - 132: 7(fvec4) CompositeConstruct 129 130 131 32 - 133: 7(fvec4) FAdd 87 132 - Store 89(@entryPointOutput) 133 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseLegalResults/hlsl.partialFlattenMixed.vert.out b/deps/glslang/Test/baseLegalResults/hlsl.partialFlattenMixed.vert.out deleted file mode 100644 index 8975ed2a..00000000 --- a/deps/glslang/Test/baseLegalResults/hlsl.partialFlattenMixed.vert.out +++ /dev/null @@ -1,29 +0,0 @@ -hlsl.partialFlattenMixed.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 36 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 32 35 - Source HLSL 500 - Name 4 "main" - Name 32 "pos" - Name 35 "@entryPointOutput" - Decorate 32(pos) Location 0 - Decorate 35(@entryPointOutput) BuiltIn Position - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 31: TypePointer Input 7(fvec4) - 32(pos): 31(ptr) Variable Input - 34: TypePointer Output 7(fvec4) -35(@entryPointOutput): 34(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 33: 7(fvec4) Load 32(pos) - Store 35(@entryPointOutput) 33 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/100.frag.out b/deps/glslang/Test/baseResults/100.frag.out deleted file mode 100644 index 2ac60541..00000000 --- a/deps/glslang/Test/baseResults/100.frag.out +++ /dev/null @@ -1,625 +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:207: 'gl_SecondaryFragColorEXT' : required extension not requested: GL_EXT_blend_func_extended -ERROR: 0:208: 'gl_SecondaryFragDataEXT' : required extension not requested: GL_EXT_blend_func_extended -ERROR: 0:208: 'gl_MaxDualSourceDrawBuffersEXT' : required extension not requested: GL_EXT_blend_func_extended -ERROR: 0:227: 'non-constant global initializer (needs GL_EXT_shader_non_constant_global_initializers)' : not supported for this version or the enabled extensions -ERROR: 0:235: '#define' : names containing consecutive underscores are reserved, and an error if version < 300: A__B -ERROR: 0:236: 'a__b' : identifiers containing consecutive underscores ("__") are reserved, and an error if version < 300 -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: 82 compilation errors. No code generated. - - -Shader version: 100 -Requested GL_EXT_blend_func_extended -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:205 Function Definition: blendFuncFail( ( global void) -0:205 Function Parameters: -0:207 Sequence -0:207 move second child to first child ( temp mediump 4-component vector of float) -0:207 'gl_SecondaryFragColorEXT' ( out mediump 4-component vector of float SecondaryFragColorEXT) -0:207 Constant: -0:207 1.000000 -0:207 1.000000 -0:207 1.000000 -0:207 1.000000 -0:208 move second child to first child ( temp mediump 4-component vector of float) -0:208 direct index ( temp mediump 4-component vector of float SecondaryFragDataEXT) -0:208 'gl_SecondaryFragDataEXT' ( out 1-element array of mediump 4-component vector of float SecondaryFragDataEXT) -0:208 Constant: -0:208 0 (const int) -0:208 Constant: -0:208 0.100000 -0:208 0.100000 -0:208 0.100000 -0:208 0.100000 -0:211 Function Definition: blendFunc( ( global void) -0:211 Function Parameters: -0:213 Sequence -0:213 move second child to first child ( temp mediump 4-component vector of float) -0:213 'gl_SecondaryFragColorEXT' ( out mediump 4-component vector of float SecondaryFragColorEXT) -0:213 Constant: -0:213 1.000000 -0:213 1.000000 -0:213 1.000000 -0:213 1.000000 -0:214 move second child to first child ( temp mediump 4-component vector of float) -0:214 direct index ( temp mediump 4-component vector of float SecondaryFragDataEXT) -0:214 'gl_SecondaryFragDataEXT' ( out 1-element array of mediump 4-component vector of float SecondaryFragDataEXT) -0:214 Constant: -0:214 0 (const int) -0:214 Constant: -0:214 0.100000 -0:214 0.100000 -0:214 0.100000 -0:214 0.100000 -0:222 Function Definition: fooinit( ( global mediump float) -0:222 Function Parameters: -0:224 Sequence -0:224 Branch: Return with expression -0:224 Constant: -0:224 12.000000 -0:227 Sequence -0:227 move second child to first child ( temp mediump int) -0:227 'init1' ( global mediump int) -0:227 Test condition and select ( temp mediump int) -0:227 Condition -0:227 'gl_FrontFacing' ( gl_FrontFacing bool Face) -0:227 true case -0:227 Constant: -0:227 1 (const int) -0:227 false case -0:227 Constant: -0:227 2 (const int) -0:233 Sequence -0:233 move second child to first child ( temp mediump int) -0:233 'init2' ( global mediump int) -0:233 Test condition and select ( temp mediump int) -0:233 Condition -0:233 'gl_FrontFacing' ( gl_FrontFacing bool Face) -0:233 true case -0:233 Constant: -0:233 1 (const int) -0:233 false case -0:233 Constant: -0:233 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) -0:? 'a__b' ( global mediump int) - - -Linked fragment stage: - - -Shader version: 100 -Requested GL_EXT_blend_func_extended -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:227 Sequence -0:227 move second child to first child ( temp mediump int) -0:227 'init1' ( global mediump int) -0:227 Test condition and select ( temp mediump int) -0:227 Condition -0:227 'gl_FrontFacing' ( gl_FrontFacing bool Face) -0:227 true case -0:227 Constant: -0:227 1 (const int) -0:227 false case -0:227 Constant: -0:227 2 (const int) -0:233 Sequence -0:233 move second child to first child ( temp mediump int) -0:233 'init2' ( global mediump int) -0:233 Test condition and select ( temp mediump int) -0:233 Condition -0:233 'gl_FrontFacing' ( gl_FrontFacing bool Face) -0:233 true case -0:233 Constant: -0:233 1 (const int) -0:233 false case -0:233 Constant: -0:233 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) -0:? 'a__b' ( global mediump int) - diff --git a/deps/glslang/Test/baseResults/100Limits.vert.out b/deps/glslang/Test/baseResults/100Limits.vert.out deleted file mode 100644 index ab0ff1ee..00000000 --- a/deps/glslang/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/Test/baseResults/100LimitsConf.vert.out b/deps/glslang/Test/baseResults/100LimitsConf.vert.out deleted file mode 100644 index 46cb8453..00000000 --- a/deps/glslang/Test/baseResults/100LimitsConf.vert.out +++ /dev/null @@ -1,24 +0,0 @@ -100Limits.vert -ERROR: 0:24: 'limitation' : while loops not available -ERROR: 0:26: 'limitation' : do-while loops not available -ERROR: 0:28: 'limitations' : inductive-loop init-declaration requires the form "type-specifier loop-index = constant-expression" -ERROR: 0:29: 'limitations' : inductive-loop init-declaration requires the form "type-specifier loop-index = constant-expression" -ERROR: 0:30: 'limitations' : inductive-loop init-declaration requires the form "type-specifier loop-index = constant-expression" -ERROR: 0:31: 'limitations' : inductive-loop init-declaration requires the form "type-specifier loop-index = constant-expression" -ERROR: 0:32: 'limitations' : inductive loop requires a scalar 'int' or 'float' loop index -ERROR: 0:33: 'limitations' : inductive-loop condition requires the form "loop-index constant-expression" -ERROR: 0:34: 'limitations' : inductive-loop termination requires the form "loop-index++, loop-index--, loop-index += constant-expression, or loop-index -= constant-expression" -ERROR: 0:35: 'limitations' : inductive loop index modified -ERROR: 0:36: 'limitations' : inductive loop index modified -ERROR: 0:43: 'limitations' : inductive loop index modified -ERROR: 0:47: 'limitations' : Non-constant-index-expression -ERROR: 0:49: 'limitations' : Non-constant-index-expression -ERROR: 0:50: 'limitations' : Non-constant-index-expression -ERROR: 0:51: 'limitations' : Non-constant-index-expression -ERROR: 0:52: 'limitations' : Non-constant-index-expression -ERROR: 0:53: 'limitations' : Non-constant-index-expression -ERROR: 0:54: 'limitations' : Non-constant-index-expression -ERROR: 0:65: 'limitations' : Non-constant-index-expression -ERROR: 20 compilation errors. No code generated. - - diff --git a/deps/glslang/Test/baseResults/100samplerExternal.frag.out b/deps/glslang/Test/baseResults/100samplerExternal.frag.out deleted file mode 100644 index 8b689c76..00000000 --- a/deps/glslang/Test/baseResults/100samplerExternal.frag.out +++ /dev/null @@ -1,172 +0,0 @@ -100samplerExternal.frag -ERROR: 0:20: 'textureSize' : no matching overloaded function found -ERROR: 0:21: 'texture' : no matching overloaded function found -ERROR: 0:22: 'texture' : no matching overloaded function found -ERROR: 0:23: 'textureProj' : no matching overloaded function found -ERROR: 0:24: 'textureProj' : no matching overloaded function found -ERROR: 0:25: 'textureProj' : no matching overloaded function found -ERROR: 0:26: 'textureProj' : no matching overloaded function found -ERROR: 0:27: 'texelFetch' : no matching overloaded function found -ERROR: 0:29: 'texture3D' : no matching overloaded function found -ERROR: 0:30: 'texture2DProjLod' : no matching overloaded function found -ERROR: 0:31: 'texture' : no matching overloaded function found -ERROR: 0:32: 'textureProjLod' : no matching overloaded function found -ERROR: 0:38: 'samplerExternalOES' : required extension not requested: GL_OES_EGL_image_external -ERROR: 0:41: '' : syntax error, unexpected IDENTIFIER, expecting LEFT_BRACE or COMMA or SEMICOLON -ERROR: 14 compilation errors. No code generated. - - -Shader version: 100 -Requested GL_OES_EGL_image_external -Requested GL_OES_EGL_image_external_essl3 -ERROR: node is still EOpNull! -0:10 Function Definition: main( ( global void) -0:10 Function Parameters: -0:12 Sequence -0:12 texture ( global lowp 4-component vector of float) -0:12 'sExt' ( uniform lowp samplerExternalOES) -0:12 Constant: -0:12 0.200000 -0:12 0.200000 -0:13 texture ( global mediump 4-component vector of float) -0:13 'mediumExt' ( uniform mediump samplerExternalOES) -0:13 Constant: -0:13 0.200000 -0:13 0.200000 -0:14 texture ( global highp 4-component vector of float) -0:14 'highExt' ( uniform highp samplerExternalOES) -0:14 Constant: -0:14 0.200000 -0:14 0.200000 -0:15 textureProj ( global lowp 4-component vector of float) -0:15 'sExt' ( uniform lowp samplerExternalOES) -0:15 Constant: -0:15 0.300000 -0:15 0.300000 -0:15 0.300000 -0:16 textureProj ( global lowp 4-component vector of float) -0:16 'sExt' ( uniform lowp samplerExternalOES) -0:16 Constant: -0:16 0.300000 -0:16 0.300000 -0:16 0.300000 -0:16 0.300000 -0:18 Sequence -0:18 move second child to first child ( temp mediump int) -0:18 'lod' ( temp mediump int) -0:18 Constant: -0:18 0 (const int) -0:19 Sequence -0:19 move second child to first child ( temp highp float) -0:19 'bias' ( temp highp float) -0:19 Constant: -0:19 0.010000 -0:20 Constant: -0:20 0.000000 -0:21 Constant: -0:21 0.000000 -0:22 Constant: -0:22 0.000000 -0:23 Constant: -0:23 0.000000 -0:24 Constant: -0:24 0.000000 -0:25 Constant: -0:25 0.000000 -0:26 Constant: -0:26 0.000000 -0:27 Constant: -0:27 0.000000 -0:29 Constant: -0:29 0.000000 -0:30 Constant: -0:30 0.000000 -0:31 Constant: -0:31 0.000000 -0:32 Constant: -0:32 0.000000 -0:? Linker Objects -0:? 'sExt' ( uniform lowp samplerExternalOES) -0:? 'mediumExt' ( uniform mediump samplerExternalOES) -0:? 'highExt' ( uniform highp samplerExternalOES) -0:? 'badExt' ( uniform mediump samplerExternalOES) - - -Linked fragment stage: - - -Shader version: 100 -Requested GL_OES_EGL_image_external -Requested GL_OES_EGL_image_external_essl3 -ERROR: node is still EOpNull! -0:10 Function Definition: main( ( global void) -0:10 Function Parameters: -0:12 Sequence -0:12 texture ( global lowp 4-component vector of float) -0:12 'sExt' ( uniform lowp samplerExternalOES) -0:12 Constant: -0:12 0.200000 -0:12 0.200000 -0:13 texture ( global mediump 4-component vector of float) -0:13 'mediumExt' ( uniform mediump samplerExternalOES) -0:13 Constant: -0:13 0.200000 -0:13 0.200000 -0:14 texture ( global highp 4-component vector of float) -0:14 'highExt' ( uniform highp samplerExternalOES) -0:14 Constant: -0:14 0.200000 -0:14 0.200000 -0:15 textureProj ( global lowp 4-component vector of float) -0:15 'sExt' ( uniform lowp samplerExternalOES) -0:15 Constant: -0:15 0.300000 -0:15 0.300000 -0:15 0.300000 -0:16 textureProj ( global lowp 4-component vector of float) -0:16 'sExt' ( uniform lowp samplerExternalOES) -0:16 Constant: -0:16 0.300000 -0:16 0.300000 -0:16 0.300000 -0:16 0.300000 -0:18 Sequence -0:18 move second child to first child ( temp mediump int) -0:18 'lod' ( temp mediump int) -0:18 Constant: -0:18 0 (const int) -0:19 Sequence -0:19 move second child to first child ( temp highp float) -0:19 'bias' ( temp highp float) -0:19 Constant: -0:19 0.010000 -0:20 Constant: -0:20 0.000000 -0:21 Constant: -0:21 0.000000 -0:22 Constant: -0:22 0.000000 -0:23 Constant: -0:23 0.000000 -0:24 Constant: -0:24 0.000000 -0:25 Constant: -0:25 0.000000 -0:26 Constant: -0:26 0.000000 -0:27 Constant: -0:27 0.000000 -0:29 Constant: -0:29 0.000000 -0:30 Constant: -0:30 0.000000 -0:31 Constant: -0:31 0.000000 -0:32 Constant: -0:32 0.000000 -0:? Linker Objects -0:? 'sExt' ( uniform lowp samplerExternalOES) -0:? 'mediumExt' ( uniform mediump samplerExternalOES) -0:? 'highExt' ( uniform highp samplerExternalOES) -0:? 'badExt' ( uniform mediump samplerExternalOES) - diff --git a/deps/glslang/Test/baseResults/100scope.vert.out b/deps/glslang/Test/baseResults/100scope.vert.out deleted file mode 100644 index 1696a2e1..00000000 --- a/deps/glslang/Test/baseResults/100scope.vert.out +++ /dev/null @@ -1,235 +0,0 @@ -100scope.vert -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: 13 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:5 Sequence -0:5 Sequence -0:5 move second child to first child ( temp highp int) -0:5 'a' ( temp highp int) -0:5 'b' ( in highp int) -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' ( temp highp int) -0:8 Constant: -0:8 1.000000 -0:11 Branch: Return with expression -0:11 'a' ( temp 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:5 Sequence -0:5 Sequence -0:5 move second child to first child ( temp highp int) -0:5 'a' ( temp highp int) -0:5 'b' ( in highp int) -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' ( temp highp int) -0:8 Constant: -0:8 1.000000 -0:11 Branch: Return with expression -0:11 'a' ( temp 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/Test/baseResults/110scope.vert.out b/deps/glslang/Test/baseResults/110scope.vert.out deleted file mode 100644 index e23d3c0f..00000000 --- a/deps/glslang/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/Test/baseResults/120.frag.out b/deps/glslang/Test/baseResults/120.frag.out deleted file mode 100644 index 835cd9e7..00000000 --- a/deps/glslang/Test/baseResults/120.frag.out +++ /dev/null @@ -1,698 +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: 'half floating-point suffix' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_half_float -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_float16 -ERROR: 0:248: '' : syntax error, unexpected IDENTIFIER, expecting COMMA or SEMICOLON -ERROR: 55 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/Test/baseResults/120.vert.out b/deps/glslang/Test/baseResults/120.vert.out deleted file mode 100644 index 6c42b75e..00000000 --- a/deps/glslang/Test/baseResults/120.vert.out +++ /dev/null @@ -1,506 +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: 0:205: '' : syntax error, unexpected IDENTIFIER -ERROR: 81 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/Test/baseResults/130.frag.out b/deps/glslang/Test/baseResults/130.frag.out deleted file mode 100644 index 6115f69c..00000000 --- a/deps/glslang/Test/baseResults/130.frag.out +++ /dev/null @@ -1,480 +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:65: 'gl_NumSamples' : required extension not requested: GL_ARB_sample_shading -ERROR: 0:82: 'textureGatherOffset' : no matching overloaded function found -ERROR: 0:82: 'assign' : cannot convert from ' const float' to ' temp 4-component vector of float' -ERROR: 0:83: 'textureGatherOffset(...)' : not supported for this version or the enabled extensions -ERROR: 0:86: 'textureGatherOffset(...)' : not supported for this version or the enabled extensions -ERROR: 0:87: 'textureGatherOffset(...)' : not supported for this version or the enabled extensions -WARNING: 0:91: '#extension' : extension is only partially supported: GL_ARB_gpu_shader5 -ERROR: 0:123: 'line continuation' : not supported for this version or the enabled extensions -ERROR: 0:129: 'uniform block' : not supported for this version or the enabled extensions -ERROR: 0:143: 'length' : does not operate on this type: temp bool -ERROR: 0:143: 'boolb' : can't use function syntax on variable -ERROR: 0:144: 'length' : does not operate on this type: temp float -ERROR: 0:144: '' : function call, method, or subroutine call expected -ERROR: 0:144: '' : no matching overloaded function found -ERROR: 0:145: 'length' : incomplete method syntax -ERROR: 0:146: 'length' : method does not accept any arguments -ERROR: 0:149: 'gl_FogFragCoord' : identifiers starting with "gl_" are reserved -ERROR: 0:154: 'int' : must be qualified as flat in -ERROR: 0:154: 'redeclaration' : cannot change the type of gl_FogFragCoord -ERROR: 0:156: 'early_fragment_tests' : not supported for this version or the enabled extensions -ERROR: 0:157: 'image load store' : not supported for this version or the enabled extensions -ERROR: 0:157: 'iimage2D' : Reserved word. -ERROR: 0:172: 'early_fragment_tests' : can only apply to 'in' -ERROR: 0:176: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions -ERROR: 30 compilation errors. No code generated. - - -Shader version: 130 -Requested GL_ARB_explicit_attrib_location -Requested GL_ARB_explicit_uniform_location -Requested GL_ARB_gpu_shader5 -Requested GL_ARB_sample_shading -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 Sequence -0:65 move second child to first child ( temp int) -0:65 'samples' ( temp int) -0:65 'gl_NumSamples' ( uniform int SampleMaskIn) -0:66 Constant: -0:66 true (const bool) -0:67 Constant: -0:67 false (const bool) -0:79 Function Definition: bar23( ( global void) -0:79 Function Parameters: -0:? Sequence -0:82 's' ( temp 4-component vector of float) -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 'samp2DR' ( uniform sampler2DRect) -0:83 Constant: -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 'samp2D' ( uniform sampler2D) -0:84 Constant: -0:84 0.300000 -0:84 0.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 'samp2DA' ( uniform sampler2DArray) -0:85 Constant: -0:85 0.300000 -0:85 0.300000 -0:85 0.300000 -0:85 Constant: -0:85 1 (const int) -0:85 1 (const int) -0:86 move second child to first child ( temp 4-component vector of float) -0:86 's' ( temp 4-component vector of float) -0:86 textureGatherOffset ( global 4-component vector of float) -0:86 'samp2DS' ( uniform sampler2DShadow) -0:86 Constant: -0:86 0.300000 -0:86 0.300000 -0:86 Constant: -0:86 1.300000 -0:86 Constant: -0:86 1 (const int) -0:86 1 (const int) -0:87 move second child to first child ( temp 4-component vector of float) -0:87 's' ( temp 4-component vector of float) -0:87 textureGatherOffset ( global 4-component vector of float) -0:87 'samp2D' ( uniform sampler2D) -0:87 Constant: -0:87 0.300000 -0:87 0.300000 -0:87 Constant: -0:87 1 (const int) -0:87 1 (const int) -0:87 Constant: -0:87 2 (const int) -0:88 Sequence -0:88 move second child to first child ( temp int) -0:88 'samples' ( temp int) -0:88 'gl_NumSamples' ( uniform int SampleMaskIn) -0:93 Function Definition: bar234( ( global void) -0:93 Function Parameters: -0:? Sequence -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 'samp2D' ( uniform sampler2D) -0:96 Constant: -0:96 0.300000 -0:96 0.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 'samp2DA' ( uniform sampler2DArray) -0:97 Constant: -0:97 0.300000 -0:97 0.300000 -0:97 0.300000 -0:97 Constant: -0:97 1 (const int) -0:97 1 (const int) -0:98 move second child to first child ( temp 4-component vector of float) -0:98 's' ( temp 4-component vector of float) -0:98 textureGatherOffset ( global 4-component vector of float) -0:98 'samp2DR' ( uniform sampler2DRect) -0:98 Constant: -0:98 0.300000 -0:98 0.300000 -0:98 Constant: -0:98 1 (const int) -0:98 1 (const int) -0:99 move second child to first child ( temp 4-component vector of float) -0:99 's' ( temp 4-component vector of float) -0:99 textureGatherOffset ( global 4-component vector of float) -0:99 'samp2DS' ( uniform sampler2DShadow) -0:99 Constant: -0:99 0.300000 -0:99 0.300000 -0:99 Constant: -0:99 1.300000 -0:99 Constant: -0:99 1 (const int) -0:99 1 (const int) -0:100 move second child to first child ( temp 4-component vector of float) -0:100 's' ( temp 4-component vector of float) -0:100 textureGatherOffset ( global 4-component vector of float) -0:100 'samp2D' ( uniform sampler2D) -0:100 Constant: -0:100 0.300000 -0:100 0.300000 -0:100 Constant: -0:100 1 (const int) -0:100 1 (const int) -0:100 Constant: -0:100 2 (const int) -0:110 Function Definition: bar235( ( global void) -0:110 Function Parameters: -0:112 Sequence -0:112 Sequence -0:112 move second child to first child ( temp 3-component vector of int) -0:112 'a' ( temp 3-component vector of int) -0:112 textureSize ( global 3-component vector of int) -0:112 'Sca' ( uniform samplerCubeArray) -0:112 Constant: -0:112 3 (const int) -0:113 Sequence -0:113 move second child to first child ( temp 4-component vector of float) -0:113 'b' ( temp 4-component vector of float) -0:113 texture ( global 4-component vector of float) -0:113 'Sca' ( uniform samplerCubeArray) -0:113 'i' ( smooth in 4-component vector of float) -0:114 Sequence -0:114 move second child to first child ( temp 4-component vector of int) -0:114 'c' ( temp 4-component vector of int) -0:114 texture ( global 4-component vector of int) -0:114 'Isca' ( uniform isamplerCubeArray) -0:114 'i' ( smooth in 4-component vector of float) -0:114 Constant: -0:114 0.700000 -0:115 Sequence -0:115 move second child to first child ( temp 4-component vector of uint) -0:115 'd' ( temp 4-component vector of uint) -0:115 texture ( global 4-component vector of uint) -0:115 'Usca' ( uniform usamplerCubeArray) -0:115 'i' ( smooth in 4-component vector of float) -0:117 move second child to first child ( temp 4-component vector of float) -0:117 'b' ( temp 4-component vector of float) -0:117 textureLod ( global 4-component vector of float) -0:117 'Sca' ( uniform samplerCubeArray) -0:117 'i' ( smooth in 4-component vector of float) -0:117 Constant: -0:117 1.700000 -0:118 move second child to first child ( temp 3-component vector of int) -0:118 'a' ( temp 3-component vector of int) -0:118 textureSize ( global 3-component vector of int) -0:118 'Scas' ( uniform samplerCubeArrayShadow) -0:118 direct index ( temp int) -0:118 'a' ( temp 3-component vector of int) -0:118 Constant: -0:118 0 (const int) -0:119 Sequence -0:119 move second child to first child ( temp float) -0:119 'f' ( temp float) -0:119 texture ( global float) -0:119 'Scas' ( uniform samplerCubeArrayShadow) -0:119 'i' ( smooth in 4-component vector of float) -0:119 direct index ( temp float) -0:119 'b' ( temp 4-component vector of float) -0:119 Constant: -0:119 1 (const int) -0:120 move second child to first child ( temp 4-component vector of int) -0:120 'c' ( temp 4-component vector of int) -0:120 textureGrad ( global 4-component vector of int) -0:120 'Isca' ( uniform isamplerCubeArray) -0:120 'i' ( smooth in 4-component vector of float) -0:120 Constant: -0:120 0.100000 -0:120 0.100000 -0:120 0.100000 -0:120 Constant: -0:120 0.200000 -0:120 0.200000 -0:120 0.200000 -0:132 Function Definition: bar23444( ( global void) -0:132 Function Parameters: -0:? Sequence -0:135 Sequence -0:135 move second child to first child ( temp float) -0:135 'a1' ( temp float) -0:135 direct index ( temp float) -0:135 direct index ( temp 3-component vector of float) -0:135 'm43' ( temp 4X3 matrix of float) -0:135 Constant: -0:135 3 (const int) -0:135 Constant: -0:135 1 (const int) -0:137 Sequence -0:137 move second child to first child ( temp int) -0:137 'a2' ( temp int) -0:137 Constant: -0:137 4 (const int) -0:138 add second child into first child ( temp int) -0:138 'a2' ( temp int) -0:138 Constant: -0:138 3 (const int) -0:139 add second child into first child ( temp int) -0:139 'a2' ( temp int) -0:139 Constant: -0:139 3 (const int) -0:140 Sequence -0:140 move second child to first child ( temp float) -0:140 'b' ( const (read only) float) -0:140 component-wise multiply ( temp float) -0:140 Constant: -0:140 2.000000 -0:140 'a1' ( temp float) -0:141 move second child to first child ( temp float) -0:141 direct index ( temp float) -0:141 'a' ( global 3-component vector of float) -0:141 Constant: -0:141 0 (const int) -0:141 Constant: -0:141 -1.000000 -0:143 Constant: -0:143 0.000000 -0:144 Constant: -0:144 0.000000 -0:146 Constant: -0:146 1 (const int) -0:165 Function Definition: qux2( ( global void) -0:165 Function Parameters: -0:? Sequence -0:168 imageAtomicCompSwap ( global int) -0:168 'iimg2D' (layout( r32i) uniform iimage2D) -0:168 Construct ivec2 ( temp 2-component vector of int) -0:168 'i' ( temp int) -0:168 'i' ( temp int) -0:168 'i' ( temp int) -0:168 'i' ( temp int) -0:169 Sequence -0:169 move second child to first child ( temp 4-component vector of int) -0:169 'pos' ( temp 4-component vector of int) -0:169 imageLoad ( global 4-component vector of int) -0:169 'iimg2D' (layout( r32i) uniform iimage2D) -0:169 Construct ivec2 ( temp 2-component vector of int) -0:169 'i' ( temp int) -0:169 '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) -0:? 'ucolor0' (layout( location=3) uniform 4-component vector of float) -0:? 'ucolor1' (layout( location=4) uniform 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 130 -Requested GL_ARB_explicit_attrib_location -Requested GL_ARB_explicit_uniform_location -Requested GL_ARB_gpu_shader5 -Requested GL_ARB_sample_shading -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) -0:? 'ucolor0' (layout( location=3) uniform 4-component vector of float) -0:? 'ucolor1' (layout( location=4) uniform 4-component vector of float) - diff --git a/deps/glslang/Test/baseResults/130.vert.out b/deps/glslang/Test/baseResults/130.vert.out deleted file mode 100644 index e38043c6..00000000 --- a/deps/glslang/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/Test/baseResults/140.frag.out b/deps/glslang/Test/baseResults/140.frag.out deleted file mode 100644 index 702718a2..00000000 --- a/deps/glslang/Test/baseResults/140.frag.out +++ /dev/null @@ -1,170 +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:21: 'fragment-shader struct input' : not supported for this version or the enabled extensions -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:27: 'location' : not supported for this version or the enabled extensions -ERROR: 0:27: 'location qualifier on output' : not supported for this version or the enabled extensions -ERROR: 0:41: 'assign' : l-value required "v" (can't modify shader input) -ERROR: 0:41: 'out' : Non-L-value cannot be passed for 'out' or 'inout' parameters. -ERROR: 0:56: '' : syntax error, unexpected IDENTIFIER, expecting LEFT_BRACE or COMMA or SEMICOLON -ERROR: 9 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:23 Sequence -0:23 move second child to first child ( temp float) -0:23 'patch' ( global float) -0:23 Constant: -0:23 3.100000 -0:39 Function Definition: foo( ( global void) -0:39 Function Parameters: -0:41 Sequence -0:41 Sequence -0:41 move second child to first child ( temp 2-component vector of float) -0:41 'r1' ( 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 'v' ( smooth in 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 'v' ( smooth in 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 Sequence -0:42 move second child to first child ( temp 2-component vector of float) -0:42 'r2' ( temp 2-component vector of float) -0:42 modf ( global 2-component vector of float) -0:42 vector swizzle ( temp 2-component vector of float) -0:42 'o' ( out 4-component vector of float) -0:42 Sequence -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 vector swizzle ( temp 2-component vector of float) -0:42 'o' ( out 4-component vector of float) -0:42 Sequence -0:42 Constant: -0:42 2 (const int) -0:42 Constant: -0:42 3 (const int) -0:43 move second child to first child ( temp float) -0:43 direct index ( temp float) -0:43 'o' ( out 4-component vector of float) -0:43 Constant: -0:43 2 (const int) -0:43 Function Call: fooi( ( global float) -0:48 Sequence -0:48 move second child to first child ( temp float) -0:48 'i1' ( global float) -0:48 Test condition and select ( temp float) -0:48 Condition -0:48 'gl_FrontFacing' ( gl_FrontFacing bool Face) -0:48 true case -0:48 Constant: -0:48 -2.000000 -0:48 false case -0:48 Constant: -0:48 2.000000 -0:49 Sequence -0:49 move second child to first child ( temp float) -0:49 'i2' ( global float) -0:49 Constant: -0:49 102.000000 -0:51 Function Definition: fooi( ( global float) -0:51 Function Parameters: -0:53 Sequence -0:53 Branch: Return with expression -0:53 add ( temp float) -0:53 'i1' ( global float) -0:53 '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:23 Sequence -0:23 move second child to first child ( temp float) -0:23 'patch' ( global float) -0:23 Constant: -0:23 3.100000 -0:48 Sequence -0:48 move second child to first child ( temp float) -0:48 'i1' ( global float) -0:48 Test condition and select ( temp float) -0:48 Condition -0:48 'gl_FrontFacing' ( gl_FrontFacing bool Face) -0:48 true case -0:48 Constant: -0:48 -2.000000 -0:48 false case -0:48 Constant: -0:48 2.000000 -0:49 Sequence -0:49 move second child to first child ( temp float) -0:49 'i2' ( global float) -0:49 Constant: -0:49 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/Test/baseResults/140.vert.out b/deps/glslang/Test/baseResults/140.vert.out deleted file mode 100644 index 020afd08..00000000 --- a/deps/glslang/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/Test/baseResults/150.frag.out b/deps/glslang/Test/baseResults/150.frag.out deleted file mode 100644 index ba15b5cb..00000000 --- a/deps/glslang/Test/baseResults/150.frag.out +++ /dev/null @@ -1,559 +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:50: 'gl_PerFragment' : undeclared identifier -ERROR: 0:53: 'double' : Reserved word. -ERROR: 0:53: 'double' : not supported for this version or the enabled extensions -ERROR: 0:53: 'double' : must be qualified as flat in -ERROR: 0:57: '=' : cannot convert from ' global double' to ' global int' -ERROR: 0:80: 'floatBitsToInt' : required extension not requested: Possible extensions include: -GL_ARB_shader_bit_encoding -GL_ARB_gpu_shader5 -ERROR: 0:100: 'packSnorm2x16' : required extension not requested: GL_ARB_shading_language_packing -ERROR: 0:114: 'textureQueryLOD' : required extension not requested: GL_ARB_texture_query_lod -ERROR: 0:115: 'textureQueryLOD' : required extension not requested: GL_ARB_texture_query_lod -ERROR: 0:154: 'textureQueryLOD' : no matching overloaded function found -ERROR: 0:154: 'assign' : cannot convert from ' const float' to ' temp 2-component vector of float' -ERROR: 0:155: 'textureQueryLOD' : no matching overloaded function found -ERROR: 0:155: 'assign' : cannot convert from ' const float' to ' temp 2-component vector of float' -ERROR: 0:183: 'mix' : required extension not requested: GL_EXT_shader_integer_mix -ERROR: 17 compilation errors. No code generated. - - -Shader version: 150 -Requested GL_ARB_gpu_shader_fp64 -Requested GL_ARB_shader_bit_encoding -Requested GL_ARB_shading_language_packing -Requested GL_ARB_texture_query_lod -Requested GL_EXT_shader_integer_mix -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:50 'gl_PerFragment' ( temp float) -0:56 Sequence -0:56 move second child to first child ( temp double) -0:56 'type3' ( global double) -0:56 Constant: -0:56 2.000000 -0:58 Sequence -0:58 move second child to first child ( temp double) -0:58 'absTest2' ( global double) -0:58 sqrt ( global double) -0:58 'type3' ( global double) -0:59 Sequence -0:59 move second child to first child ( temp double) -0:59 'absTest3' ( global double) -0:59 Constant: -0:59 1.414214 -0:60 Sequence -0:60 move second child to first child ( temp float) -0:60 'dk' ( global float) -0:60 Constant: -0:60 3.316625 -0:68 Function Definition: bitEncodingPass( ( global void) -0:68 Function Parameters: -0:70 Sequence -0:70 Sequence -0:70 move second child to first child ( temp int) -0:70 'i' ( temp int) -0:70 floatBitsToInt ( global int) -0:70 'f' ( global float) -0:71 Sequence -0:71 move second child to first child ( temp 4-component vector of uint) -0:71 'uv11' ( temp 4-component vector of uint) -0:71 floatBitsToUint ( global 4-component vector of uint) -0:71 'v4' ( global 4-component vector of float) -0:72 Sequence -0:72 move second child to first child ( temp 4-component vector of float) -0:72 'v14' ( temp 4-component vector of float) -0:72 intBitsToFloat ( global 4-component vector of float) -0:72 'iv4a' ( global 4-component vector of int) -0:73 Sequence -0:73 move second child to first child ( temp 2-component vector of float) -0:73 'v15' ( temp 2-component vector of float) -0:73 uintBitsToFloat ( global 2-component vector of float) -0:73 'uv2c' ( global 2-component vector of uint) -0:78 Function Definition: bitEncodingFail( ( global void) -0:78 Function Parameters: -0:80 Sequence -0:80 Sequence -0:80 move second child to first child ( temp int) -0:80 'i' ( temp int) -0:80 floatBitsToInt ( global int) -0:80 'f' ( global float) -0:87 Function Definition: packingPass( ( global void) -0:87 Function Parameters: -0:89 Sequence -0:89 Sequence -0:89 move second child to first child ( temp uint) -0:89 'u19' ( temp uint) -0:89 packSnorm2x16 ( global uint) -0:89 'v2a' ( global 2-component vector of float) -0:90 Sequence -0:90 move second child to first child ( temp 2-component vector of float) -0:90 'v20' ( temp 2-component vector of float) -0:90 unpackSnorm2x16 ( global 2-component vector of float) -0:90 'uy' ( global uint) -0:91 Sequence -0:91 move second child to first child ( temp uint) -0:91 'u15' ( temp uint) -0:91 packUnorm2x16 ( global uint) -0:91 'v2a' ( global 2-component vector of float) -0:92 Sequence -0:92 move second child to first child ( temp 2-component vector of float) -0:92 'v16' ( temp 2-component vector of float) -0:92 unpackUnorm2x16 ( global 2-component vector of float) -0:92 'uy' ( global uint) -0:93 Sequence -0:93 move second child to first child ( temp uint) -0:93 'u17' ( temp uint) -0:93 packHalf2x16 ( global uint) -0:93 'v2a' ( global 2-component vector of float) -0:94 Sequence -0:94 move second child to first child ( temp 2-component vector of float) -0:94 'v18' ( temp 2-component vector of float) -0:94 unpackHalf2x16 ( global 2-component vector of float) -0:94 'uy' ( global uint) -0:98 Function Definition: packingFail( ( global void) -0:98 Function Parameters: -0:100 Sequence -0:100 Sequence -0:100 move second child to first child ( temp uint) -0:100 'u19' ( temp uint) -0:100 packSnorm2x16 ( global uint) -0:100 'v2a' ( global 2-component vector of float) -0:107 Function Definition: qlodFail( ( global void) -0:107 Function Parameters: -0:? Sequence -0:114 move second child to first child ( temp 2-component vector of float) -0:114 'lod' ( temp 2-component vector of float) -0:114 textureQueryLod ( global 2-component vector of float) -0:114 'samp1D' ( uniform sampler1D) -0:114 'pf' ( temp float) -0:115 move second child to first child ( temp 2-component vector of float) -0:115 'lod' ( temp 2-component vector of float) -0:115 textureQueryLod ( global 2-component vector of float) -0:115 'samp2Ds' ( uniform sampler2DShadow) -0:115 'pf2' ( temp 2-component vector of float) -0:134 Function Definition: qlodPass( ( global void) -0:134 Function Parameters: -0:? Sequence -0:141 move second child to first child ( temp 2-component vector of float) -0:141 'lod' ( temp 2-component vector of float) -0:141 textureQueryLod ( global 2-component vector of float) -0:141 'samp1D' ( uniform sampler1D) -0:141 'pf' ( temp float) -0:142 move second child to first child ( temp 2-component vector of float) -0:142 'lod' ( temp 2-component vector of float) -0:142 textureQueryLod ( global 2-component vector of float) -0:142 'isamp2D' ( uniform isampler2D) -0:142 'pf2' ( temp 2-component vector of float) -0:143 move second child to first child ( temp 2-component vector of float) -0:143 'lod' ( temp 2-component vector of float) -0:143 textureQueryLod ( global 2-component vector of float) -0:143 'usamp3D' ( uniform usampler3D) -0:143 'pf3' ( temp 3-component vector of float) -0:144 move second child to first child ( temp 2-component vector of float) -0:144 'lod' ( temp 2-component vector of float) -0:144 textureQueryLod ( global 2-component vector of float) -0:144 'sampCube' ( uniform samplerCube) -0:144 'pf3' ( temp 3-component vector of float) -0:145 move second child to first child ( temp 2-component vector of float) -0:145 'lod' ( temp 2-component vector of float) -0:145 textureQueryLod ( global 2-component vector of float) -0:145 'isamp1DA' ( uniform isampler1DArray) -0:145 'pf' ( temp float) -0:146 move second child to first child ( temp 2-component vector of float) -0:146 'lod' ( temp 2-component vector of float) -0:146 textureQueryLod ( global 2-component vector of float) -0:146 'usamp2DA' ( uniform usampler2DArray) -0:146 'pf2' ( temp 2-component vector of float) -0:148 move second child to first child ( temp 2-component vector of float) -0:148 'lod' ( temp 2-component vector of float) -0:148 textureQueryLod ( global 2-component vector of float) -0:148 'samp1Ds' ( uniform sampler1DShadow) -0:148 'pf' ( temp float) -0:149 move second child to first child ( temp 2-component vector of float) -0:149 'lod' ( temp 2-component vector of float) -0:149 textureQueryLod ( global 2-component vector of float) -0:149 'samp2Ds' ( uniform sampler2DShadow) -0:149 'pf2' ( temp 2-component vector of float) -0:150 move second child to first child ( temp 2-component vector of float) -0:150 'lod' ( temp 2-component vector of float) -0:150 textureQueryLod ( global 2-component vector of float) -0:150 'sampCubes' ( uniform samplerCubeShadow) -0:150 'pf3' ( temp 3-component vector of float) -0:151 move second child to first child ( temp 2-component vector of float) -0:151 'lod' ( temp 2-component vector of float) -0:151 textureQueryLod ( global 2-component vector of float) -0:151 'samp1DAs' ( uniform sampler1DArrayShadow) -0:151 'pf' ( temp float) -0:152 move second child to first child ( temp 2-component vector of float) -0:152 'lod' ( temp 2-component vector of float) -0:152 textureQueryLod ( global 2-component vector of float) -0:152 'samp2DAs' ( uniform sampler2DArrayShadow) -0:152 'pf2' ( temp 2-component vector of float) -0:154 'lod' ( temp 2-component vector of float) -0:155 'lod' ( temp 2-component vector of float) -0:164 Function Definition: testmix( ( global void) -0:164 Function Parameters: -0:166 Sequence -0:166 Sequence -0:166 move second child to first child ( temp int) -0:166 'ival' ( temp int) -0:166 mix ( global int) -0:166 'x' ( global int) -0:166 'y' ( global int) -0:166 'b' ( global bool) -0:167 Sequence -0:167 move second child to first child ( temp 2-component vector of int) -0:167 'iv2' ( temp 2-component vector of int) -0:167 mix ( global 2-component vector of int) -0:167 Construct ivec2 ( temp 2-component vector of int) -0:167 'x' ( global int) -0:167 Construct ivec2 ( temp 2-component vector of int) -0:167 'y' ( global int) -0:167 Construct bvec2 ( temp 2-component vector of bool) -0:167 'b' ( global bool) -0:168 Sequence -0:168 move second child to first child ( temp 3-component vector of int) -0:168 'iv3' ( temp 3-component vector of int) -0:168 mix ( global 3-component vector of int) -0:168 Construct ivec3 ( temp 3-component vector of int) -0:168 'x' ( global int) -0:168 Construct ivec3 ( temp 3-component vector of int) -0:168 'y' ( global int) -0:168 Construct bvec3 ( temp 3-component vector of bool) -0:168 'b' ( global bool) -0:169 Sequence -0:169 move second child to first child ( temp 4-component vector of int) -0:169 'iv4' ( temp 4-component vector of int) -0:169 mix ( global 4-component vector of int) -0:169 Construct ivec4 ( temp 4-component vector of int) -0:169 'x' ( global int) -0:169 Construct ivec4 ( temp 4-component vector of int) -0:169 'x' ( global int) -0:169 Construct bvec4 ( temp 4-component vector of bool) -0:169 'b' ( global bool) -0:170 Sequence -0:170 move second child to first child ( temp uint) -0:170 'uiv' ( temp uint) -0:170 mix ( global uint) -0:170 'z' ( global uint) -0:170 'w' ( global uint) -0:170 'b' ( global bool) -0:171 Sequence -0:171 move second child to first child ( temp 2-component vector of uint) -0:171 'uv2' ( temp 2-component vector of uint) -0:171 mix ( global 2-component vector of uint) -0:171 Construct uvec2 ( temp 2-component vector of uint) -0:171 'z' ( global uint) -0:171 Construct uvec2 ( temp 2-component vector of uint) -0:171 'z' ( global uint) -0:171 Construct bvec2 ( temp 2-component vector of bool) -0:171 'b' ( global bool) -0:172 Sequence -0:172 move second child to first child ( temp 3-component vector of uint) -0:172 'uv3' ( temp 3-component vector of uint) -0:172 mix ( global 3-component vector of uint) -0:172 Construct uvec3 ( temp 3-component vector of uint) -0:172 'z' ( global uint) -0:172 Construct uvec3 ( temp 3-component vector of uint) -0:172 'z' ( global uint) -0:172 Construct bvec3 ( temp 3-component vector of bool) -0:172 'b' ( global bool) -0:173 Sequence -0:173 move second child to first child ( temp 4-component vector of uint) -0:173 'uv4' ( temp 4-component vector of uint) -0:173 mix ( global 4-component vector of uint) -0:173 Construct uvec4 ( temp 4-component vector of uint) -0:173 'z' ( global uint) -0:173 Construct uvec4 ( temp 4-component vector of uint) -0:173 'z' ( global uint) -0:173 Construct bvec4 ( temp 4-component vector of bool) -0:173 'b' ( global bool) -0:174 Sequence -0:174 move second child to first child ( temp bool) -0:174 'bv' ( temp bool) -0:174 mix ( global bool) -0:174 'b1' ( global bool) -0:174 'b2' ( global bool) -0:174 'b' ( global bool) -0:175 Sequence -0:175 move second child to first child ( temp 2-component vector of bool) -0:175 'bv2' ( temp 2-component vector of bool) -0:175 mix ( global 2-component vector of bool) -0:175 Construct bvec2 ( temp 2-component vector of bool) -0:175 'b1' ( global bool) -0:175 Construct bvec2 ( temp 2-component vector of bool) -0:175 'b2' ( global bool) -0:175 Construct bvec2 ( temp 2-component vector of bool) -0:175 'b' ( global bool) -0:176 Sequence -0:176 move second child to first child ( temp 3-component vector of bool) -0:176 'bv3' ( temp 3-component vector of bool) -0:176 mix ( global 3-component vector of bool) -0:176 Construct bvec3 ( temp 3-component vector of bool) -0:176 'b1' ( global bool) -0:176 Construct bvec3 ( temp 3-component vector of bool) -0:176 'b2' ( global bool) -0:176 Construct bvec3 ( temp 3-component vector of bool) -0:176 'b' ( global bool) -0:177 Sequence -0:177 move second child to first child ( temp 4-component vector of bool) -0:177 'bv4' ( temp 4-component vector of bool) -0:177 mix ( global 4-component vector of bool) -0:177 Construct bvec4 ( temp 4-component vector of bool) -0:177 'b1' ( global bool) -0:177 Construct bvec4 ( temp 4-component vector of bool) -0:177 'b2' ( global bool) -0:177 Construct bvec4 ( temp 4-component vector of bool) -0:177 'b' ( global bool) -0:181 Function Definition: testmixFail( ( global void) -0:181 Function Parameters: -0:183 Sequence -0:183 Sequence -0:183 move second child to first child ( temp int) -0:183 'ival' ( temp int) -0:183 mix ( global int) -0:183 'x' ( global int) -0:183 'y' ( global int) -0:183 'b' ( global bool) -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:? 'type1' ( smooth in double) -0:? 'type2' ( global double) -0:? 'type3' ( global double) -0:? 'absTest' ( global int) -0:? 'absTest2' ( global double) -0:? 'absTest3' ( global double) -0:? 'dk' ( global float) -0:? 'f' ( global float) -0:? 'v4' ( global 4-component vector of float) -0:? 'iv4a' ( global 4-component vector of int) -0:? 'uv2c' ( global 2-component vector of uint) -0:? 'v2a' ( global 2-component vector of float) -0:? 'uy' ( global uint) -0:? 'samp1D' ( uniform sampler1D) -0:? 'samp2Ds' ( uniform sampler2DShadow) -0:? 'isamp2D' ( uniform isampler2D) -0:? 'usamp3D' ( uniform usampler3D) -0:? 'sampCube' ( uniform samplerCube) -0:? 'isamp1DA' ( uniform isampler1DArray) -0:? 'usamp2DA' ( uniform usampler2DArray) -0:? 'samp1Ds' ( uniform sampler1DShadow) -0:? 'sampCubes' ( uniform samplerCubeShadow) -0:? 'samp1DAs' ( uniform sampler1DArrayShadow) -0:? 'samp2DAs' ( uniform sampler2DArrayShadow) -0:? 'sampBuf' ( uniform samplerBuffer) -0:? 'sampRect' ( uniform sampler2DRect) -0:? 'b1' ( global bool) -0:? 'b2' ( global bool) -0:? 'b' ( global bool) -0:? 'x' ( global int) -0:? 'y' ( global int) -0:? 'z' ( global uint) -0:? 'w' ( global uint) - - -Linked fragment stage: - - -Shader version: 150 -Requested GL_ARB_gpu_shader_fp64 -Requested GL_ARB_shader_bit_encoding -Requested GL_ARB_shading_language_packing -Requested GL_ARB_texture_query_lod -Requested GL_EXT_shader_integer_mix -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:56 Sequence -0:56 move second child to first child ( temp double) -0:56 'type3' ( global double) -0:56 Constant: -0:56 2.000000 -0:58 Sequence -0:58 move second child to first child ( temp double) -0:58 'absTest2' ( global double) -0:58 sqrt ( global double) -0:58 'type3' ( global double) -0:59 Sequence -0:59 move second child to first child ( temp double) -0:59 'absTest3' ( global double) -0:59 Constant: -0:59 1.414214 -0:60 Sequence -0:60 move second child to first child ( temp float) -0:60 'dk' ( global float) -0:60 Constant: -0:60 3.316625 -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:? 'type1' ( smooth in double) -0:? 'type2' ( global double) -0:? 'type3' ( global double) -0:? 'absTest' ( global int) -0:? 'absTest2' ( global double) -0:? 'absTest3' ( global double) -0:? 'dk' ( global float) -0:? 'f' ( global float) -0:? 'v4' ( global 4-component vector of float) -0:? 'iv4a' ( global 4-component vector of int) -0:? 'uv2c' ( global 2-component vector of uint) -0:? 'v2a' ( global 2-component vector of float) -0:? 'uy' ( global uint) -0:? 'samp1D' ( uniform sampler1D) -0:? 'samp2Ds' ( uniform sampler2DShadow) -0:? 'isamp2D' ( uniform isampler2D) -0:? 'usamp3D' ( uniform usampler3D) -0:? 'sampCube' ( uniform samplerCube) -0:? 'isamp1DA' ( uniform isampler1DArray) -0:? 'usamp2DA' ( uniform usampler2DArray) -0:? 'samp1Ds' ( uniform sampler1DShadow) -0:? 'sampCubes' ( uniform samplerCubeShadow) -0:? 'samp1DAs' ( uniform sampler1DArrayShadow) -0:? 'samp2DAs' ( uniform sampler2DArrayShadow) -0:? 'sampBuf' ( uniform samplerBuffer) -0:? 'sampRect' ( uniform sampler2DRect) -0:? 'b1' ( global bool) -0:? 'b2' ( global bool) -0:? 'b' ( global bool) -0:? 'x' ( global int) -0:? 'y' ( global int) -0:? 'z' ( global uint) -0:? 'w' ( global uint) - diff --git a/deps/glslang/Test/baseResults/150.geom.out b/deps/glslang/Test/baseResults/150.geom.out deleted file mode 100644 index c5a31f55..00000000 --- a/deps/glslang/Test/baseResults/150.geom.out +++ /dev/null @@ -1,293 +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: 'if the verison is 150 , the EmitStreamVertex and EndStreamPrimitive only support at extension GL_ARB_gpu_shader5' : required extension not requested: GL_ARB_gpu_shader5 -ERROR: 0:30: 'if the verison is 150 , the EmitStreamVertex and EndStreamPrimitive only support at extension GL_ARB_gpu_shader5' : required extension not requested: GL_ARB_gpu_shader5 -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 EmitStreamVertex ( global void) -0:29 Constant: -0:29 1 (const int) -0:30 EndStreamPrimitive ( global void) -0:30 Constant: -0:30 0 (const int) -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 EmitStreamVertex ( global void) -0:29 Constant: -0:29 1 (const int) -0:30 EndStreamPrimitive ( global void) -0:30 Constant: -0:30 0 (const int) -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/Test/baseResults/150.tesc.out b/deps/glslang/Test/baseResults/150.tesc.out deleted file mode 100644 index 78b32da2..00000000 --- a/deps/glslang/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 'gl_out' -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: 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 and tessellation control stages: Array sizes must be compatible: - tessellation control stage: " int outa[4]" - tessellation control stage: " int outa[1]" -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 and tessellation control stages: tessellation control block member has no corresponding member in tessellation control block: - tessellation control stage: Block: gl_PerVertex, Member: gl_PointSize - tessellation control stage: Block: gl_PerVertex, Member: n/a - -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 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/Test/baseResults/150.vert.out b/deps/glslang/Test/baseResults/150.vert.out deleted file mode 100644 index 408db367..00000000 --- a/deps/glslang/Test/baseResults/150.vert.out +++ /dev/null @@ -1,119 +0,0 @@ -150.vert -ERROR: 0:18: 'gl_ClipVertex' : undeclared identifier -ERROR: 0:18: 'assign' : cannot convert from ' in 4-component vector of float' to ' temp float' -ERROR: 0:26: 'a' : cannot redeclare a user-block member array -ERROR: 0:28: 'double' : Reserved word. -ERROR: 0:28: 'double' : not supported for this version or the enabled extensions -ERROR: 0:28: 'vertex-shader `double` type input' : not supported for this version or the enabled extensions -ERROR: 0:3001: '#error' : line of this error should be 3001 -ERROR: 7 compilation errors. No code generated. - - -Shader version: 150 -Requested GL_ARB_vertex_attrib_64bit -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}) -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}) -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}) -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 'gl_ClipVertex' ( temp 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:? 'dvarerr' ( in double) -0:? 'dvar' ( in double) -0:? 'dv2var' ( in 2-component vector of double) -0:? 'dv3var' ( in 3-component vector of double) -0:? 'dv4var' ( in 4-component vector of double) -0:? 'dmat2var' ( in 2X2 matrix of double) -0:? 'dmat3var' ( in 3X3 matrix of double) -0:? 'dmat4var' ( in 4X4 matrix of double) -0:? 'dmat23var' ( in 2X3 matrix of double) -0:? 'dmat24var' ( in 2X4 matrix of double) -0:? 'dmat32var' ( in 3X2 matrix of double) -0:? 'dmat34var' ( in 3X4 matrix of double) -0:? 'dmat42var' ( in 4X2 matrix of double) -0:? 'dmat43var' ( in 4X3 matrix of double) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - - -Linked vertex stage: - - -Shader version: 150 -Requested GL_ARB_vertex_attrib_64bit -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}) -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}) -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}) -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 'gl_ClipVertex' ( temp 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:? 'dvarerr' ( in double) -0:? 'dvar' ( in double) -0:? 'dv2var' ( in 2-component vector of double) -0:? 'dv3var' ( in 3-component vector of double) -0:? 'dv4var' ( in 4-component vector of double) -0:? 'dmat2var' ( in 2X2 matrix of double) -0:? 'dmat3var' ( in 3X3 matrix of double) -0:? 'dmat4var' ( in 4X4 matrix of double) -0:? 'dmat23var' ( in 2X3 matrix of double) -0:? 'dmat24var' ( in 2X4 matrix of double) -0:? 'dmat32var' ( in 3X2 matrix of double) -0:? 'dmat34var' ( in 3X4 matrix of double) -0:? 'dmat42var' ( in 4X2 matrix of double) -0:? 'dmat43var' ( in 4X3 matrix of double) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - diff --git a/deps/glslang/Test/baseResults/300.frag.out b/deps/glslang/Test/baseResults/300.frag.out deleted file mode 100644 index 50a6b075..00000000 --- a/deps/glslang/Test/baseResults/300.frag.out +++ /dev/null @@ -1,781 +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:177: 'specific signature of builtin mix' : required extension not requested: GL_EXT_shader_integer_mix -ERROR: 0:181: 'index layout qualifier on fragment output' : not supported for this version or the enabled extensions -ERROR: 0:183: 'index' : value must be 0 or 1 -ERROR: 0:189: 'invariant' : can only apply to an output -ERROR: 0:190: 'invariant' : can only apply to an output -ERROR: 0:191: 'invariant' : can only apply to an output -ERROR: 0:193: 'imageBuffer' : Reserved word. -ERROR: 0:193: '' : syntax error, unexpected IMAGEBUFFER, expecting COMMA or SEMICOLON -ERROR: 49 compilation errors. No code generated. - - -Shader version: 300 -Requested GL_EXT_blend_func_extended -Requested GL_EXT_shader_integer_mix -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:158 Function Definition: testmix( ( global void) -0:158 Function Parameters: -0:160 Sequence -0:160 Sequence -0:160 move second child to first child ( temp mediump int) -0:160 'ival' ( temp mediump int) -0:160 mix ( global mediump int) -0:160 'x' ( global mediump int) -0:160 'y' ( global mediump int) -0:160 'b' ( global bool) -0:161 Sequence -0:161 move second child to first child ( temp mediump 2-component vector of int) -0:161 'iv2' ( temp mediump 2-component vector of int) -0:161 mix ( global mediump 2-component vector of int) -0:161 Construct ivec2 ( temp mediump 2-component vector of int) -0:161 'x' ( global mediump int) -0:161 Construct ivec2 ( temp mediump 2-component vector of int) -0:161 'y' ( global mediump int) -0:161 Construct bvec2 ( temp 2-component vector of bool) -0:161 'b' ( global bool) -0:162 Sequence -0:162 move second child to first child ( temp mediump 3-component vector of int) -0:162 'iv3' ( temp mediump 3-component vector of int) -0:162 mix ( global mediump 3-component vector of int) -0:162 Construct ivec3 ( temp mediump 3-component vector of int) -0:162 'x' ( global mediump int) -0:162 Construct ivec3 ( temp mediump 3-component vector of int) -0:162 'y' ( global mediump int) -0:162 Construct bvec3 ( temp 3-component vector of bool) -0:162 'b' ( global bool) -0:163 Sequence -0:163 move second child to first child ( temp mediump 4-component vector of int) -0:163 'iv4' ( temp mediump 4-component vector of int) -0:163 mix ( global mediump 4-component vector of int) -0:163 Construct ivec4 ( temp mediump 4-component vector of int) -0:163 'x' ( global mediump int) -0:163 Construct ivec4 ( temp mediump 4-component vector of int) -0:163 'x' ( global mediump int) -0:163 Construct bvec4 ( temp 4-component vector of bool) -0:163 'b' ( global bool) -0:164 Sequence -0:164 move second child to first child ( temp mediump uint) -0:164 'uiv' ( temp mediump uint) -0:164 mix ( global mediump uint) -0:164 'z' ( global mediump uint) -0:164 'w' ( global mediump uint) -0:164 'b' ( global bool) -0:165 Sequence -0:165 move second child to first child ( temp mediump 2-component vector of uint) -0:165 'uv2' ( temp mediump 2-component vector of uint) -0:165 mix ( global mediump 2-component vector of uint) -0:165 Construct uvec2 ( temp mediump 2-component vector of uint) -0:165 'z' ( global mediump uint) -0:165 Construct uvec2 ( temp mediump 2-component vector of uint) -0:165 'z' ( global mediump uint) -0:165 Construct bvec2 ( temp 2-component vector of bool) -0:165 'b' ( global bool) -0:166 Sequence -0:166 move second child to first child ( temp mediump 3-component vector of uint) -0:166 'uv3' ( temp mediump 3-component vector of uint) -0:166 mix ( global mediump 3-component vector of uint) -0:166 Construct uvec3 ( temp mediump 3-component vector of uint) -0:166 'z' ( global mediump uint) -0:166 Construct uvec3 ( temp mediump 3-component vector of uint) -0:166 'z' ( global mediump uint) -0:166 Construct bvec3 ( temp 3-component vector of bool) -0:166 'b' ( global bool) -0:167 Sequence -0:167 move second child to first child ( temp mediump 4-component vector of uint) -0:167 'uv4' ( temp mediump 4-component vector of uint) -0:167 mix ( global mediump 4-component vector of uint) -0:167 Construct uvec4 ( temp mediump 4-component vector of uint) -0:167 'z' ( global mediump uint) -0:167 Construct uvec4 ( temp mediump 4-component vector of uint) -0:167 'z' ( global mediump uint) -0:167 Construct bvec4 ( temp 4-component vector of bool) -0:167 'b' ( global bool) -0:168 Sequence -0:168 move second child to first child ( temp bool) -0:168 'bv' ( temp bool) -0:168 mix ( global bool) -0:168 'b1' ( global bool) -0:168 'b2' ( global bool) -0:168 'b' ( global bool) -0:169 Sequence -0:169 move second child to first child ( temp 2-component vector of bool) -0:169 'bv2' ( temp 2-component vector of bool) -0:169 mix ( global 2-component vector of bool) -0:169 Construct bvec2 ( temp 2-component vector of bool) -0:169 'b1' ( global bool) -0:169 Construct bvec2 ( temp 2-component vector of bool) -0:169 'b2' ( global bool) -0:169 Construct bvec2 ( temp 2-component vector of bool) -0:169 'b' ( global bool) -0:170 Sequence -0:170 move second child to first child ( temp 3-component vector of bool) -0:170 'bv3' ( temp 3-component vector of bool) -0:170 mix ( global 3-component vector of bool) -0:170 Construct bvec3 ( temp 3-component vector of bool) -0:170 'b1' ( global bool) -0:170 Construct bvec3 ( temp 3-component vector of bool) -0:170 'b2' ( global bool) -0:170 Construct bvec3 ( temp 3-component vector of bool) -0:170 'b' ( global bool) -0:171 Sequence -0:171 move second child to first child ( temp 4-component vector of bool) -0:171 'bv4' ( temp 4-component vector of bool) -0:171 mix ( global 4-component vector of bool) -0:171 Construct bvec4 ( temp 4-component vector of bool) -0:171 'b1' ( global bool) -0:171 Construct bvec4 ( temp 4-component vector of bool) -0:171 'b2' ( global bool) -0:171 Construct bvec4 ( temp 4-component vector of bool) -0:171 'b' ( global bool) -0:175 Function Definition: testmixFail( ( global void) -0:175 Function Parameters: -0:177 Sequence -0:177 Sequence -0:177 move second child to first child ( temp mediump int) -0:177 'ival' ( temp mediump int) -0:177 mix ( global mediump int) -0:177 'x' ( global mediump int) -0:177 'y' ( global mediump int) -0:177 'b' ( global bool) -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:? 'b1' ( global bool) -0:? 'b2' ( global bool) -0:? 'b' ( global bool) -0:? 'x' ( global mediump int) -0:? 'y' ( global mediump int) -0:? 'z' ( global mediump uint) -0:? 'w' ( global mediump uint) -0:? 'outVarFail' (layout( location=0 index=1) out lowp 4-component vector of float) -0:? 'outVarPass' (layout( location=0 index=0) out lowp 4-component vector of float) -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 -Requested GL_EXT_blend_func_extended -Requested GL_EXT_shader_integer_mix -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:? 'b1' ( global bool) -0:? 'b2' ( global bool) -0:? 'b' ( global bool) -0:? 'x' ( global mediump int) -0:? 'y' ( global mediump int) -0:? 'z' ( global mediump uint) -0:? 'w' ( global mediump uint) -0:? 'outVarFail' (layout( location=0 index=1) out lowp 4-component vector of float) -0:? 'outVarPass' (layout( location=0 index=0) out lowp 4-component vector of float) -0:? 'fooinv' ( invariant smooth in lowp 4-component vector of float) - diff --git a/deps/glslang/Test/baseResults/300.vert.out b/deps/glslang/Test/baseResults/300.vert.out deleted file mode 100644 index d8c9e16b..00000000 --- a/deps/glslang/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' : required extension not requested: GL_EXT_scalar_block_layout -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/Test/baseResults/300BuiltIns.frag.out b/deps/glslang/Test/baseResults/300BuiltIns.frag.out deleted file mode 100644 index 54ecfa5f..00000000 --- a/deps/glslang/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 -WARNING: 0:72: 't__' : identifiers containing consecutive underscores ("__") are reserved -WARNING: 0:75: '#define' : names containing consecutive underscores are reserved: __D -ERROR: 2 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/Test/baseResults/300block.frag.out b/deps/glslang/Test/baseResults/300block.frag.out deleted file mode 100644 index 1a5bd9b6..00000000 --- a/deps/glslang/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, operation at mediump) -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 mediump 3-component vector of float) -0:44 Convert int to float ( temp mediump 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 mediump 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, layout( column_major) 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 mediump 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, layout( column_major) 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, operation at mediump) -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 mediump 3-component vector of float) -0:44 Convert int to float ( temp mediump 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 mediump 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, layout( column_major) 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 mediump 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, layout( column_major) 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/Test/baseResults/300layout.frag.out b/deps/glslang/Test/baseResults/300layout.frag.out deleted file mode 100644 index 3266d9b7..00000000 --- a/deps/glslang/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/Test/baseResults/300layout.vert.out b/deps/glslang/Test/baseResults/300layout.vert.out deleted file mode 100644 index 527425b3..00000000 --- a/deps/glslang/Test/baseResults/300layout.vert.out +++ /dev/null @@ -1,148 +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: 's' : A structure containing an array is not allowed as input in ES -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: 20 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/Test/baseResults/300link.frag.out b/deps/glslang/Test/baseResults/300link.frag.out deleted file mode 100644 index dc54e765..00000000 --- a/deps/glslang/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/Test/baseResults/300link2.frag.out b/deps/glslang/Test/baseResults/300link2.frag.out deleted file mode 100644 index 6bbb287e..00000000 --- a/deps/glslang/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/Test/baseResults/300link3.frag.out b/deps/glslang/Test/baseResults/300link3.frag.out deleted file mode 100644 index e6114c5f..00000000 --- a/deps/glslang/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/Test/baseResults/300operations.frag.out b/deps/glslang/Test/baseResults/300operations.frag.out deleted file mode 100644 index 27772cb2..00000000 --- a/deps/glslang/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/Test/baseResults/300samplerExternal.frag.out b/deps/glslang/Test/baseResults/300samplerExternal.frag.out deleted file mode 100644 index 9074552e..00000000 --- a/deps/glslang/Test/baseResults/300samplerExternal.frag.out +++ /dev/null @@ -1,197 +0,0 @@ -300samplerExternal.frag -ERROR: 0:12: 'texture2D' : no matching overloaded function found -ERROR: 0:13: 'texture2D' : no matching overloaded function found -ERROR: 0:14: 'texture2D' : no matching overloaded function found -ERROR: 0:15: 'texture2DProj' : no matching overloaded function found -ERROR: 0:16: 'texture2DProj' : no matching overloaded function found -ERROR: 0:29: 'texture3D' : no matching overloaded function found -ERROR: 0:30: 'texture2DProjLod' : no matching overloaded function found -ERROR: 0:31: 'texture' : no matching overloaded function found -ERROR: 0:32: 'textureProjLod' : no matching overloaded function found -ERROR: 0:38: 'samplerExternalOES' : required extension not requested: GL_OES_EGL_image_external_essl3 -ERROR: 0:41: '' : syntax error, unexpected IDENTIFIER, expecting LEFT_BRACE or COMMA or SEMICOLON -ERROR: 11 compilation errors. No code generated. - - -Shader version: 300 -Requested GL_OES_EGL_image_external -Requested GL_OES_EGL_image_external_essl3 -ERROR: node is still EOpNull! -0:10 Function Definition: main( ( global void) -0:10 Function Parameters: -0:12 Sequence -0:12 Constant: -0:12 0.000000 -0:13 Constant: -0:13 0.000000 -0:14 Constant: -0:14 0.000000 -0:15 Constant: -0:15 0.000000 -0:16 Constant: -0:16 0.000000 -0:18 Sequence -0:18 move second child to first child ( temp mediump int) -0:18 'lod' ( temp mediump int) -0:18 Constant: -0:18 0 (const int) -0:19 Sequence -0:19 move second child to first child ( temp highp float) -0:19 'bias' ( temp highp float) -0:19 Constant: -0:19 0.010000 -0:20 textureSize ( global highp 2-component vector of int, operation at mediump) -0:20 'sExt' ( uniform lowp samplerExternalOES) -0:20 'lod' ( temp mediump int) -0:21 texture ( global lowp 4-component vector of float) -0:21 'sExt' ( uniform lowp samplerExternalOES) -0:21 Constant: -0:21 0.200000 -0:21 0.200000 -0:22 texture ( global lowp 4-component vector of float, operation at highp) -0:22 'sExt' ( uniform lowp samplerExternalOES) -0:22 Constant: -0:22 0.200000 -0:22 0.200000 -0:22 'bias' ( temp highp float) -0:23 textureProj ( global lowp 4-component vector of float) -0:23 'sExt' ( uniform lowp samplerExternalOES) -0:23 Constant: -0:23 0.200000 -0:23 0.200000 -0:23 0.200000 -0:24 textureProj ( global lowp 4-component vector of float, operation at highp) -0:24 'sExt' ( uniform lowp samplerExternalOES) -0:24 Constant: -0:24 0.200000 -0:24 0.200000 -0:24 0.200000 -0:24 'bias' ( temp highp float) -0:25 textureProj ( global lowp 4-component vector of float) -0:25 'sExt' ( uniform lowp samplerExternalOES) -0:25 Constant: -0:25 0.200000 -0:25 0.200000 -0:25 0.200000 -0:25 0.200000 -0:26 textureProj ( global lowp 4-component vector of float, operation at highp) -0:26 'sExt' ( uniform lowp samplerExternalOES) -0:26 Constant: -0:26 0.200000 -0:26 0.200000 -0:26 0.200000 -0:26 0.200000 -0:26 'bias' ( temp highp float) -0:27 textureFetch ( global lowp 4-component vector of float, operation at mediump) -0:27 'sExt' ( uniform lowp samplerExternalOES) -0:27 Constant: -0:27 4 (const int) -0:27 4 (const int) -0:27 'lod' ( temp mediump int) -0:29 Constant: -0:29 0.000000 -0:30 Constant: -0:30 0.000000 -0:31 Constant: -0:31 0.000000 -0:32 Constant: -0:32 0.000000 -0:? Linker Objects -0:? 'sExt' ( uniform lowp samplerExternalOES) -0:? 'mediumExt' ( uniform mediump samplerExternalOES) -0:? 'highExt' ( uniform highp samplerExternalOES) -0:? 'badExt' ( uniform mediump samplerExternalOES) - - -Linked fragment stage: - - -Shader version: 300 -Requested GL_OES_EGL_image_external -Requested GL_OES_EGL_image_external_essl3 -ERROR: node is still EOpNull! -0:10 Function Definition: main( ( global void) -0:10 Function Parameters: -0:12 Sequence -0:12 Constant: -0:12 0.000000 -0:13 Constant: -0:13 0.000000 -0:14 Constant: -0:14 0.000000 -0:15 Constant: -0:15 0.000000 -0:16 Constant: -0:16 0.000000 -0:18 Sequence -0:18 move second child to first child ( temp mediump int) -0:18 'lod' ( temp mediump int) -0:18 Constant: -0:18 0 (const int) -0:19 Sequence -0:19 move second child to first child ( temp highp float) -0:19 'bias' ( temp highp float) -0:19 Constant: -0:19 0.010000 -0:20 textureSize ( global highp 2-component vector of int, operation at mediump) -0:20 'sExt' ( uniform lowp samplerExternalOES) -0:20 'lod' ( temp mediump int) -0:21 texture ( global lowp 4-component vector of float) -0:21 'sExt' ( uniform lowp samplerExternalOES) -0:21 Constant: -0:21 0.200000 -0:21 0.200000 -0:22 texture ( global lowp 4-component vector of float, operation at highp) -0:22 'sExt' ( uniform lowp samplerExternalOES) -0:22 Constant: -0:22 0.200000 -0:22 0.200000 -0:22 'bias' ( temp highp float) -0:23 textureProj ( global lowp 4-component vector of float) -0:23 'sExt' ( uniform lowp samplerExternalOES) -0:23 Constant: -0:23 0.200000 -0:23 0.200000 -0:23 0.200000 -0:24 textureProj ( global lowp 4-component vector of float, operation at highp) -0:24 'sExt' ( uniform lowp samplerExternalOES) -0:24 Constant: -0:24 0.200000 -0:24 0.200000 -0:24 0.200000 -0:24 'bias' ( temp highp float) -0:25 textureProj ( global lowp 4-component vector of float) -0:25 'sExt' ( uniform lowp samplerExternalOES) -0:25 Constant: -0:25 0.200000 -0:25 0.200000 -0:25 0.200000 -0:25 0.200000 -0:26 textureProj ( global lowp 4-component vector of float, operation at highp) -0:26 'sExt' ( uniform lowp samplerExternalOES) -0:26 Constant: -0:26 0.200000 -0:26 0.200000 -0:26 0.200000 -0:26 0.200000 -0:26 'bias' ( temp highp float) -0:27 textureFetch ( global lowp 4-component vector of float, operation at mediump) -0:27 'sExt' ( uniform lowp samplerExternalOES) -0:27 Constant: -0:27 4 (const int) -0:27 4 (const int) -0:27 'lod' ( temp mediump int) -0:29 Constant: -0:29 0.000000 -0:30 Constant: -0:30 0.000000 -0:31 Constant: -0:31 0.000000 -0:32 Constant: -0:32 0.000000 -0:? Linker Objects -0:? 'sExt' ( uniform lowp samplerExternalOES) -0:? 'mediumExt' ( uniform mediump samplerExternalOES) -0:? 'highExt' ( uniform highp samplerExternalOES) -0:? 'badExt' ( uniform mediump samplerExternalOES) - diff --git a/deps/glslang/Test/baseResults/300samplerExternalYUV.frag.out b/deps/glslang/Test/baseResults/300samplerExternalYUV.frag.out deleted file mode 100644 index b76e706f..00000000 --- a/deps/glslang/Test/baseResults/300samplerExternalYUV.frag.out +++ /dev/null @@ -1,192 +0,0 @@ -300samplerExternalYUV.frag -ERROR: 0:12: 'texture2D' : no matching overloaded function found -ERROR: 0:13: 'texture2D' : no matching overloaded function found -ERROR: 0:14: 'texture2D' : no matching overloaded function found -ERROR: 0:15: 'texture2DProj' : no matching overloaded function found -ERROR: 0:16: 'texture2DProj' : no matching overloaded function found -ERROR: 0:29: 'texture3D' : no matching overloaded function found -ERROR: 0:30: 'texture2DProjLod' : no matching overloaded function found -ERROR: 0:31: 'texture' : no matching overloaded function found -ERROR: 0:32: 'textureProjLod' : no matching overloaded function found -ERROR: 0:37: '' : syntax error, unexpected IDENTIFIER, expecting LEFT_BRACE or COMMA or SEMICOLON -ERROR: 10 compilation errors. No code generated. - - -Shader version: 300 -Requested GL_EXT_YUV_target -ERROR: node is still EOpNull! -0:10 Function Definition: main( ( global void) -0:10 Function Parameters: -0:12 Sequence -0:12 Constant: -0:12 0.000000 -0:13 Constant: -0:13 0.000000 -0:14 Constant: -0:14 0.000000 -0:15 Constant: -0:15 0.000000 -0:16 Constant: -0:16 0.000000 -0:18 Sequence -0:18 move second child to first child ( temp mediump int) -0:18 'lod' ( temp mediump int) -0:18 Constant: -0:18 0 (const int) -0:19 Sequence -0:19 move second child to first child ( temp highp float) -0:19 'bias' ( temp highp float) -0:19 Constant: -0:19 0.010000 -0:20 textureSize ( global highp 2-component vector of int, operation at mediump) -0:20 'sExt' ( uniform lowp __samplerExternal2DY2YEXT) -0:20 'lod' ( temp mediump int) -0:21 texture ( global lowp 4-component vector of float) -0:21 'sExt' ( uniform lowp __samplerExternal2DY2YEXT) -0:21 Constant: -0:21 0.200000 -0:21 0.200000 -0:22 texture ( global lowp 4-component vector of float, operation at highp) -0:22 'sExt' ( uniform lowp __samplerExternal2DY2YEXT) -0:22 Constant: -0:22 0.200000 -0:22 0.200000 -0:22 'bias' ( temp highp float) -0:23 textureProj ( global lowp 4-component vector of float) -0:23 'sExt' ( uniform lowp __samplerExternal2DY2YEXT) -0:23 Constant: -0:23 0.200000 -0:23 0.200000 -0:23 0.200000 -0:24 textureProj ( global lowp 4-component vector of float, operation at highp) -0:24 'sExt' ( uniform lowp __samplerExternal2DY2YEXT) -0:24 Constant: -0:24 0.200000 -0:24 0.200000 -0:24 0.200000 -0:24 'bias' ( temp highp float) -0:25 textureProj ( global lowp 4-component vector of float) -0:25 'sExt' ( uniform lowp __samplerExternal2DY2YEXT) -0:25 Constant: -0:25 0.200000 -0:25 0.200000 -0:25 0.200000 -0:25 0.200000 -0:26 textureProj ( global lowp 4-component vector of float, operation at highp) -0:26 'sExt' ( uniform lowp __samplerExternal2DY2YEXT) -0:26 Constant: -0:26 0.200000 -0:26 0.200000 -0:26 0.200000 -0:26 0.200000 -0:26 'bias' ( temp highp float) -0:27 textureFetch ( global lowp 4-component vector of float, operation at mediump) -0:27 'sExt' ( uniform lowp __samplerExternal2DY2YEXT) -0:27 Constant: -0:27 4 (const int) -0:27 4 (const int) -0:27 'lod' ( temp mediump int) -0:29 Constant: -0:29 0.000000 -0:30 Constant: -0:30 0.000000 -0:31 Constant: -0:31 0.000000 -0:32 Constant: -0:32 0.000000 -0:? Linker Objects -0:? 'sExt' ( uniform lowp __samplerExternal2DY2YEXT) -0:? 'mediumExt' ( uniform mediump __samplerExternal2DY2YEXT) -0:? 'highExt' ( uniform highp __samplerExternal2DY2YEXT) - - -Linked fragment stage: - - -Shader version: 300 -Requested GL_EXT_YUV_target -ERROR: node is still EOpNull! -0:10 Function Definition: main( ( global void) -0:10 Function Parameters: -0:12 Sequence -0:12 Constant: -0:12 0.000000 -0:13 Constant: -0:13 0.000000 -0:14 Constant: -0:14 0.000000 -0:15 Constant: -0:15 0.000000 -0:16 Constant: -0:16 0.000000 -0:18 Sequence -0:18 move second child to first child ( temp mediump int) -0:18 'lod' ( temp mediump int) -0:18 Constant: -0:18 0 (const int) -0:19 Sequence -0:19 move second child to first child ( temp highp float) -0:19 'bias' ( temp highp float) -0:19 Constant: -0:19 0.010000 -0:20 textureSize ( global highp 2-component vector of int, operation at mediump) -0:20 'sExt' ( uniform lowp __samplerExternal2DY2YEXT) -0:20 'lod' ( temp mediump int) -0:21 texture ( global lowp 4-component vector of float) -0:21 'sExt' ( uniform lowp __samplerExternal2DY2YEXT) -0:21 Constant: -0:21 0.200000 -0:21 0.200000 -0:22 texture ( global lowp 4-component vector of float, operation at highp) -0:22 'sExt' ( uniform lowp __samplerExternal2DY2YEXT) -0:22 Constant: -0:22 0.200000 -0:22 0.200000 -0:22 'bias' ( temp highp float) -0:23 textureProj ( global lowp 4-component vector of float) -0:23 'sExt' ( uniform lowp __samplerExternal2DY2YEXT) -0:23 Constant: -0:23 0.200000 -0:23 0.200000 -0:23 0.200000 -0:24 textureProj ( global lowp 4-component vector of float, operation at highp) -0:24 'sExt' ( uniform lowp __samplerExternal2DY2YEXT) -0:24 Constant: -0:24 0.200000 -0:24 0.200000 -0:24 0.200000 -0:24 'bias' ( temp highp float) -0:25 textureProj ( global lowp 4-component vector of float) -0:25 'sExt' ( uniform lowp __samplerExternal2DY2YEXT) -0:25 Constant: -0:25 0.200000 -0:25 0.200000 -0:25 0.200000 -0:25 0.200000 -0:26 textureProj ( global lowp 4-component vector of float, operation at highp) -0:26 'sExt' ( uniform lowp __samplerExternal2DY2YEXT) -0:26 Constant: -0:26 0.200000 -0:26 0.200000 -0:26 0.200000 -0:26 0.200000 -0:26 'bias' ( temp highp float) -0:27 textureFetch ( global lowp 4-component vector of float, operation at mediump) -0:27 'sExt' ( uniform lowp __samplerExternal2DY2YEXT) -0:27 Constant: -0:27 4 (const int) -0:27 4 (const int) -0:27 'lod' ( temp mediump int) -0:29 Constant: -0:29 0.000000 -0:30 Constant: -0:30 0.000000 -0:31 Constant: -0:31 0.000000 -0:32 Constant: -0:32 0.000000 -0:? Linker Objects -0:? 'sExt' ( uniform lowp __samplerExternal2DY2YEXT) -0:? 'mediumExt' ( uniform mediump __samplerExternal2DY2YEXT) -0:? 'highExt' ( uniform highp __samplerExternal2DY2YEXT) - diff --git a/deps/glslang/Test/baseResults/300scope.vert.out b/deps/glslang/Test/baseResults/300scope.vert.out deleted file mode 100644 index 5a12020e..00000000 --- a/deps/glslang/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/Test/baseResults/310.comp.out b/deps/glslang/Test/baseResults/310.comp.out deleted file mode 100644 index ac76cbdf..00000000 --- a/deps/glslang/Test/baseResults/310.comp.out +++ /dev/null @@ -1,629 +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 block' : not supported for this version or the enabled extensions -ERROR: 0:44: 'location' : can only apply to uniform, buffer, in, or out storage qualifiers -ERROR: 0:45: 'shared' : initializer can only be a null initializer ('{}') -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:109: 'format' : image formats must match -ERROR: 0:110: 'format' : image formats must match -ERROR: 0:111: 'format' : image formats must match -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: 85 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:45 Sequence -0:45 move second child to first child ( temp highp float) -0:45 'fs' ( shared highp float) -0:45 Constant: -0:45 4.200000 -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) readonly temp highp float) -0:61 values: direct index for structure (layout( column_major shared) readonly buffer unsized 3-element array of highp float) -0:61 'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) readonly buffer highp int value, layout( column_major shared) readonly 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) readonly buffer unsized 3-element array of highp float) -0:62 'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) readonly buffer highp int value, layout( column_major shared) readonly 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 highp 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, operation at highp) -0:93 'img2Drgba' (layout( rgba32f) readonly uniform mediump image2D) -0:93 Construct ivec2 ( temp highp 2-component vector of int) -0:93 'i' ( temp highp int) -0:93 'i' ( temp highp int) -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) writeonly temp highp float) -0:194 values: direct index for structure (layout( column_major shared) writeonly buffer unsized 3-element array of highp float) -0:194 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) writeonly buffer highp int value, layout( column_major shared) writeonly 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) writeonly temp highp float) -0:195 values: direct index for structure (layout( column_major shared) writeonly buffer unsized 3-element array of highp float) -0:195 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) writeonly buffer highp int value, layout( column_major shared) writeonly 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) writeonly temp highp float) -0:196 values: direct index for structure (layout( column_major shared) writeonly buffer unsized 3-element array of highp float) -0:196 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) writeonly buffer highp int value, layout( column_major shared) writeonly 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) writeonly temp highp float) -0:197 values: direct index for structure (layout( column_major shared) writeonly buffer unsized 3-element array of highp float) -0:197 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) writeonly buffer highp int value, layout( column_major shared) writeonly 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) writeonly temp highp float) -0:198 values: direct index for structure (layout( column_major shared) writeonly buffer unsized 3-element array of highp float) -0:198 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) writeonly buffer highp int value, layout( column_major shared) writeonly 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) writeonly temp highp float) -0:199 values: direct index for structure (layout( column_major shared) writeonly buffer unsized 3-element array of highp float) -0:199 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) writeonly buffer highp int value, layout( column_major shared) writeonly 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) writeonly temp highp float) -0:201 values: direct index for structure (layout( column_major shared) writeonly buffer unsized 3-element array of highp float) -0:201 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) writeonly buffer highp int value, layout( column_major shared) writeonly 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) writeonly temp highp float) -0:202 values: direct index for structure (layout( column_major shared) writeonly buffer unsized 3-element array of highp float) -0:202 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) writeonly buffer highp int value, layout( column_major shared) writeonly 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) writeonly temp highp float) -0:203 values: direct index for structure (layout( column_major shared) writeonly buffer unsized 3-element array of highp float) -0:203 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) writeonly buffer highp int value, layout( column_major shared) writeonly 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) writeonly temp highp float) -0:205 values: direct index for structure (layout( column_major shared) writeonly buffer unsized 3-element array of highp float) -0:205 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) writeonly buffer highp int value, layout( column_major shared) writeonly 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) writeonly temp highp float) -0:207 values: direct index for structure (layout( column_major shared) writeonly buffer unsized 3-element array of highp float) -0:207 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) writeonly buffer highp int value, layout( column_major shared) writeonly 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) writeonly buffer highp int) -0:208 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) writeonly buffer highp int value, layout( column_major shared) writeonly 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) writeonly temp highp float) -0:209 values: direct index for structure (layout( column_major shared) writeonly buffer unsized 3-element array of highp float) -0:209 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) writeonly buffer highp int value, layout( column_major shared) writeonly 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) writeonly temp highp float) -0:221 values: direct index for structure (layout( column_major shared) writeonly buffer unsized 3-element array of highp float) -0:221 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) writeonly buffer highp int value, layout( column_major shared) writeonly 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) writeonly buffer highp int) -0:222 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) writeonly buffer highp int value, layout( column_major shared) writeonly 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) writeonly temp highp float) -0:223 values: direct index for structure (layout( column_major shared) writeonly buffer unsized 3-element array of highp float) -0:223 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) writeonly buffer highp int value, layout( column_major shared) writeonly 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) writeonly buffer highp int) -0:224 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) writeonly buffer highp int value, layout( column_major shared) writeonly 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) readonly buffer highp int value, layout( column_major shared) readonly 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) writeonly buffer highp int value, layout( column_major shared) writeonly 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:45 Sequence -0:45 move second child to first child ( temp highp float) -0:45 'fs' ( shared highp float) -0:45 Constant: -0:45 4.200000 -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) readonly buffer highp int value, layout( column_major shared) readonly 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) writeonly buffer highp int value, layout( column_major shared) writeonly 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/Test/baseResults/310.frag.out b/deps/glslang/Test/baseResults/310.frag.out deleted file mode 100644 index e43a887c..00000000 --- a/deps/glslang/Test/baseResults/310.frag.out +++ /dev/null @@ -1,1334 +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: 'S' : A structure containing an array is not allowed as input in ES -ERROR: 0:120: 'fragment-shader array-of-struct input' : not supported with this profile: es -ERROR: 0:121: 'S' : A structure containing an array is not allowed as input in 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:123: 'SA' : A structure containing an array is not allowed as input in ES -ERROR: 0:125: 'fragment-shader struct input containing structure' : not supported with this profile: es -ERROR: 0:125: 'SS' : A structure containing an struct is not allowed as input in 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: 0:461: 'func' : overloaded functions must have the same return type -ERROR: 0:461: 'func' : function already has a body -ERROR: 0:463: 'return' : void function cannot return a value -ERROR: 0:472: '=' : cannot convert from ' temp mediump uint' to ' temp mediump int' -ERROR: 0:485: '=' : cannot convert from ' global mediump int' to ' temp mediump uint' -ERROR: 136 compilation errors. No code generated. - - -Shader version: 310 -Requested GL_EXT_device_group -Requested GL_EXT_multiview -Requested GL_EXT_shader_implicit_conversions -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 mediump 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:61 left-shift ( temp int) -0:61 Constant: -0:61 1 (const int) -0:61 mix ( global uint) -0:61 Constant: -0:61 1 (const uint) -0:61 Constant: -0:61 1 (const uint) -0:61 Constant: -0:61 false (const 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 mediump 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 mediump 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:456 Function Definition: func(u1;vu4; ( global void) -0:456 Function Parameters: -0:456 'a' ( in mediump uint) -0:456 'b' ( in mediump 4-component vector of uint) -0:461 Function Definition: func(u1;vu4; ( global mediump int) -0:461 Function Parameters: -0:461 'a' ( in mediump uint) -0:461 'b' ( in mediump 4-component vector of uint) -0:463 Sequence -0:463 Branch: Return -0:468 Function Definition: testimplicit( ( global void) -0:468 Function Parameters: -0:470 Sequence -0:470 Sequence -0:470 move second child to first child ( temp mediump uint) -0:470 'a' ( temp mediump uint) -0:470 Convert int to uint ( temp mediump uint) -0:470 'b' ( global mediump int) -0:471 Sequence -0:471 move second child to first child ( temp mediump 4-component vector of float) -0:471 'col' ( temp mediump 4-component vector of float) -0:471 Constant: -0:471 1.000000 -0:471 2.000000 -0:471 3.000000 -0:471 4.000000 -0:475 Sequence -0:475 move second child to first child ( temp mediump uint) -0:475 'c' ( temp mediump uint) -0:475 Convert int to uint ( temp mediump uint) -0:475 component-wise multiply ( temp mediump int) -0:475 'b' ( temp mediump int) -0:475 Constant: -0:475 3 (const int) -0:476 Sequence -0:476 move second child to first child ( temp mediump uint) -0:476 'd' ( temp mediump uint) -0:476 component-wise multiply ( temp mediump uint) -0:476 Convert int to uint ( temp mediump uint) -0:476 'b' ( temp mediump int) -0:476 Constant: -0:476 3 (const uint) -0:477 Sequence -0:477 move second child to first child ( temp mediump uint) -0:477 'e' ( temp mediump uint) -0:477 Convert int to uint ( temp mediump uint) -0:477 mod ( temp mediump int) -0:477 'b' ( temp mediump int) -0:477 Constant: -0:477 3 (const int) -0:478 Sequence -0:478 move second child to first child ( temp mediump uint) -0:478 'f' ( temp mediump uint) -0:478 Test condition and select ( temp mediump uint) -0:478 Condition -0:478 Compare Greater Than ( temp bool) -0:478 'b' ( temp mediump int) -0:478 Constant: -0:478 3 (const int) -0:478 true case -0:478 Convert int to uint ( temp uint) -0:478 'b' ( temp mediump int) -0:478 false case -0:478 'c' ( temp mediump uint) -0:479 Function Call: func(u1;vu4; ( global void) -0:479 Convert int to uint ( temp uint) -0:479 'b' ( temp mediump int) -0:479 Constant: -0:479 1 (const uint) -0:479 2 (const uint) -0:479 3 (const uint) -0:479 4 (const uint) -0:484 Function Definition: testimplicitFail( ( global void) -0:484 Function Parameters: -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) -0:? 'b' ( global mediump int) - - -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_implicit_conversions -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) -0:? 'b' ( global mediump int) - diff --git a/deps/glslang/Test/baseResults/310.geom.out b/deps/glslang/Test/baseResults/310.geom.out deleted file mode 100644 index 2fa5d111..00000000 --- a/deps/glslang/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 'gl_in' -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/Test/baseResults/310.inheritMemory.frag.out b/deps/glslang/Test/baseResults/310.inheritMemory.frag.out deleted file mode 100644 index e74d4abd..00000000 --- a/deps/glslang/Test/baseResults/310.inheritMemory.frag.out +++ /dev/null @@ -1,221 +0,0 @@ -310.inheritMemory.frag -Shader version: 310 -0:? Sequence -0:18 Function Definition: non_ro_fun(f1[10]; ( global void) -0:18 Function Parameters: -0:18 'buff' ( in 10-element array of mediump float) -0:19 Function Definition: non_ro_funf(f1; ( global void) -0:19 Function Parameters: -0:19 'el' ( in mediump float) -0:20 Function Definition: non_ro_funS(struct-S-f1[10]1; ( global void) -0:20 Function Parameters: -0:20 's' ( in structure{ global 10-element array of mediump float buff}) -0:24 Function Definition: main( ( global void) -0:24 Function Parameters: -0:? Sequence -0:28 Function Call: non_ro_fun(f1[10]; ( global void) -0:28 buff: direct index for structure ( global 10-element array of mediump float) -0:28 's' ( temp structure{ global 10-element array of mediump float buff}) -0:28 Constant: -0:28 0 (const int) -0:29 Function Call: non_ro_funf(f1; ( global void) -0:29 direct index ( temp mediump float) -0:29 buff: direct index for structure ( global 10-element array of mediump float) -0:29 's' ( temp structure{ global 10-element array of mediump float buff}) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 3 (const int) -0:30 Function Call: non_ro_funS(struct-S-f1[10]1; ( global void) -0:30 's' ( temp structure{ global 10-element array of mediump float buff}) -0:32 Function Call: non_ro_fun(f1[10]; ( global void) -0:32 buff: direct index for structure (layout( column_major std430 offset=0) buffer 10-element array of mediump float) -0:32 'non_ro_buffer' (layout( binding=2 column_major std430) buffer block{layout( column_major std430 offset=0) buffer 10-element array of mediump float buff, layout( column_major std430 offset=40) buffer structure{layout( std430) global 10-element array of mediump float buff} s}) -0:32 Constant: -0:32 0 (const int) -0:33 Function Call: non_ro_fun(f1[10]; ( global void) -0:33 buff: direct index for structure (layout( std430) global 10-element array of mediump float) -0:33 s: direct index for structure (layout( column_major std430 offset=40) buffer structure{layout( std430) global 10-element array of mediump float buff}) -0:33 'non_ro_buffer' (layout( binding=2 column_major std430) buffer block{layout( column_major std430 offset=0) buffer 10-element array of mediump float buff, layout( column_major std430 offset=40) buffer structure{layout( std430) global 10-element array of mediump float buff} s}) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 0 (const int) -0:34 Function Call: non_ro_funf(f1; ( global void) -0:34 direct index (layout( column_major std430 offset=0) temp mediump float) -0:34 buff: direct index for structure (layout( column_major std430 offset=0) buffer 10-element array of mediump float) -0:34 'non_ro_buffer' (layout( binding=2 column_major std430) buffer block{layout( column_major std430 offset=0) buffer 10-element array of mediump float buff, layout( column_major std430 offset=40) buffer structure{layout( std430) global 10-element array of mediump float buff} s}) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 3 (const int) -0:35 Function Call: non_ro_funf(f1; ( global void) -0:35 direct index (layout( std430) temp mediump float) -0:35 buff: direct index for structure (layout( std430) global 10-element array of mediump float) -0:35 s: direct index for structure (layout( column_major std430 offset=40) buffer structure{layout( std430) global 10-element array of mediump float buff}) -0:35 'non_ro_buffer' (layout( binding=2 column_major std430) buffer block{layout( column_major std430 offset=0) buffer 10-element array of mediump float buff, layout( column_major std430 offset=40) buffer structure{layout( std430) global 10-element array of mediump float buff} s}) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 3 (const int) -0:36 Function Call: non_ro_funS(struct-S-f1[10]1; ( global void) -0:36 s: direct index for structure (layout( column_major std430 offset=40) buffer structure{layout( std430) global 10-element array of mediump float buff}) -0:36 'non_ro_buffer' (layout( binding=2 column_major std430) buffer block{layout( column_major std430 offset=0) buffer 10-element array of mediump float buff, layout( column_major std430 offset=40) buffer structure{layout( std430) global 10-element array of mediump float buff} s}) -0:36 Constant: -0:36 1 (const int) -0:38 Function Call: non_ro_fun(f1[10]; ( global void) -0:38 buff_ro: direct index for structure (layout( column_major std430 offset=0) readonly buffer 10-element array of mediump float) -0:38 'ro_buffer' (layout( binding=2 column_major std430) readonly buffer block{layout( column_major std430 offset=0) readonly buffer 10-element array of mediump float buff_ro, layout( column_major std430 offset=40) readonly buffer structure{layout( std430) global 10-element array of mediump float buff} s_ro}) -0:38 Constant: -0:38 0 (const int) -0:39 Function Call: non_ro_fun(f1[10]; ( global void) -0:39 buff: direct index for structure (layout( std430) readonly global 10-element array of mediump float) -0:39 s_ro: direct index for structure (layout( column_major std430 offset=40) readonly buffer structure{layout( std430) global 10-element array of mediump float buff}) -0:39 'ro_buffer' (layout( binding=2 column_major std430) readonly buffer block{layout( column_major std430 offset=0) readonly buffer 10-element array of mediump float buff_ro, layout( column_major std430 offset=40) readonly buffer structure{layout( std430) global 10-element array of mediump float buff} s_ro}) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 0 (const int) -0:40 Function Call: non_ro_funf(f1; ( global void) -0:40 direct index (layout( column_major std430 offset=0) readonly temp mediump float) -0:40 buff_ro: direct index for structure (layout( column_major std430 offset=0) readonly buffer 10-element array of mediump float) -0:40 'ro_buffer' (layout( binding=2 column_major std430) readonly buffer block{layout( column_major std430 offset=0) readonly buffer 10-element array of mediump float buff_ro, layout( column_major std430 offset=40) readonly buffer structure{layout( std430) global 10-element array of mediump float buff} s_ro}) -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 3 (const int) -0:41 Function Call: non_ro_funf(f1; ( global void) -0:41 direct index (layout( std430) readonly temp mediump float) -0:41 buff: direct index for structure (layout( std430) readonly global 10-element array of mediump float) -0:41 s_ro: direct index for structure (layout( column_major std430 offset=40) readonly buffer structure{layout( std430) global 10-element array of mediump float buff}) -0:41 'ro_buffer' (layout( binding=2 column_major std430) readonly buffer block{layout( column_major std430 offset=0) readonly buffer 10-element array of mediump float buff_ro, layout( column_major std430 offset=40) readonly buffer structure{layout( std430) global 10-element array of mediump float buff} s_ro}) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 3 (const int) -0:42 Function Call: non_ro_funS(struct-S-f1[10]1; ( global void) -0:42 s_ro: direct index for structure (layout( column_major std430 offset=40) readonly buffer structure{layout( std430) global 10-element array of mediump float buff}) -0:42 'ro_buffer' (layout( binding=2 column_major std430) readonly buffer block{layout( column_major std430 offset=0) readonly buffer 10-element array of mediump float buff_ro, layout( column_major std430 offset=40) readonly buffer structure{layout( std430) global 10-element array of mediump float buff} s_ro}) -0:42 Constant: -0:42 1 (const int) -0:? Linker Objects -0:? 'ro_buffer' (layout( binding=2 column_major std430) readonly buffer block{layout( column_major std430 offset=0) readonly buffer 10-element array of mediump float buff_ro, layout( column_major std430 offset=40) readonly buffer structure{layout( std430) global 10-element array of mediump float buff} s_ro}) -0:? 'non_ro_buffer' (layout( binding=2 column_major std430) buffer block{layout( column_major std430 offset=0) buffer 10-element array of mediump float buff, layout( column_major std430 offset=40) buffer structure{layout( std430) global 10-element array of mediump float buff} s}) -0:? 'fragColor' ( out mediump 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 310 -0:? Sequence -0:18 Function Definition: non_ro_fun(f1[10]; ( global void) -0:18 Function Parameters: -0:18 'buff' ( in 10-element array of mediump float) -0:19 Function Definition: non_ro_funf(f1; ( global void) -0:19 Function Parameters: -0:19 'el' ( in mediump float) -0:20 Function Definition: non_ro_funS(struct-S-f1[10]1; ( global void) -0:20 Function Parameters: -0:20 's' ( in structure{ global 10-element array of mediump float buff}) -0:24 Function Definition: main( ( global void) -0:24 Function Parameters: -0:? Sequence -0:28 Function Call: non_ro_fun(f1[10]; ( global void) -0:28 buff: direct index for structure ( global 10-element array of mediump float) -0:28 's' ( temp structure{ global 10-element array of mediump float buff}) -0:28 Constant: -0:28 0 (const int) -0:29 Function Call: non_ro_funf(f1; ( global void) -0:29 direct index ( temp mediump float) -0:29 buff: direct index for structure ( global 10-element array of mediump float) -0:29 's' ( temp structure{ global 10-element array of mediump float buff}) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 3 (const int) -0:30 Function Call: non_ro_funS(struct-S-f1[10]1; ( global void) -0:30 's' ( temp structure{ global 10-element array of mediump float buff}) -0:32 Function Call: non_ro_fun(f1[10]; ( global void) -0:32 buff: direct index for structure (layout( column_major std430 offset=0) buffer 10-element array of mediump float) -0:32 'non_ro_buffer' (layout( binding=2 column_major std430) buffer block{layout( column_major std430 offset=0) buffer 10-element array of mediump float buff, layout( column_major std430 offset=40) buffer structure{layout( std430) global 10-element array of mediump float buff} s}) -0:32 Constant: -0:32 0 (const int) -0:33 Function Call: non_ro_fun(f1[10]; ( global void) -0:33 buff: direct index for structure (layout( std430) global 10-element array of mediump float) -0:33 s: direct index for structure (layout( column_major std430 offset=40) buffer structure{layout( std430) global 10-element array of mediump float buff}) -0:33 'non_ro_buffer' (layout( binding=2 column_major std430) buffer block{layout( column_major std430 offset=0) buffer 10-element array of mediump float buff, layout( column_major std430 offset=40) buffer structure{layout( std430) global 10-element array of mediump float buff} s}) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 0 (const int) -0:34 Function Call: non_ro_funf(f1; ( global void) -0:34 direct index (layout( column_major std430 offset=0) temp mediump float) -0:34 buff: direct index for structure (layout( column_major std430 offset=0) buffer 10-element array of mediump float) -0:34 'non_ro_buffer' (layout( binding=2 column_major std430) buffer block{layout( column_major std430 offset=0) buffer 10-element array of mediump float buff, layout( column_major std430 offset=40) buffer structure{layout( std430) global 10-element array of mediump float buff} s}) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 3 (const int) -0:35 Function Call: non_ro_funf(f1; ( global void) -0:35 direct index (layout( std430) temp mediump float) -0:35 buff: direct index for structure (layout( std430) global 10-element array of mediump float) -0:35 s: direct index for structure (layout( column_major std430 offset=40) buffer structure{layout( std430) global 10-element array of mediump float buff}) -0:35 'non_ro_buffer' (layout( binding=2 column_major std430) buffer block{layout( column_major std430 offset=0) buffer 10-element array of mediump float buff, layout( column_major std430 offset=40) buffer structure{layout( std430) global 10-element array of mediump float buff} s}) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 3 (const int) -0:36 Function Call: non_ro_funS(struct-S-f1[10]1; ( global void) -0:36 s: direct index for structure (layout( column_major std430 offset=40) buffer structure{layout( std430) global 10-element array of mediump float buff}) -0:36 'non_ro_buffer' (layout( binding=2 column_major std430) buffer block{layout( column_major std430 offset=0) buffer 10-element array of mediump float buff, layout( column_major std430 offset=40) buffer structure{layout( std430) global 10-element array of mediump float buff} s}) -0:36 Constant: -0:36 1 (const int) -0:38 Function Call: non_ro_fun(f1[10]; ( global void) -0:38 buff_ro: direct index for structure (layout( column_major std430 offset=0) readonly buffer 10-element array of mediump float) -0:38 'ro_buffer' (layout( binding=2 column_major std430) readonly buffer block{layout( column_major std430 offset=0) readonly buffer 10-element array of mediump float buff_ro, layout( column_major std430 offset=40) readonly buffer structure{layout( std430) global 10-element array of mediump float buff} s_ro}) -0:38 Constant: -0:38 0 (const int) -0:39 Function Call: non_ro_fun(f1[10]; ( global void) -0:39 buff: direct index for structure (layout( std430) readonly global 10-element array of mediump float) -0:39 s_ro: direct index for structure (layout( column_major std430 offset=40) readonly buffer structure{layout( std430) global 10-element array of mediump float buff}) -0:39 'ro_buffer' (layout( binding=2 column_major std430) readonly buffer block{layout( column_major std430 offset=0) readonly buffer 10-element array of mediump float buff_ro, layout( column_major std430 offset=40) readonly buffer structure{layout( std430) global 10-element array of mediump float buff} s_ro}) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 0 (const int) -0:40 Function Call: non_ro_funf(f1; ( global void) -0:40 direct index (layout( column_major std430 offset=0) readonly temp mediump float) -0:40 buff_ro: direct index for structure (layout( column_major std430 offset=0) readonly buffer 10-element array of mediump float) -0:40 'ro_buffer' (layout( binding=2 column_major std430) readonly buffer block{layout( column_major std430 offset=0) readonly buffer 10-element array of mediump float buff_ro, layout( column_major std430 offset=40) readonly buffer structure{layout( std430) global 10-element array of mediump float buff} s_ro}) -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 3 (const int) -0:41 Function Call: non_ro_funf(f1; ( global void) -0:41 direct index (layout( std430) readonly temp mediump float) -0:41 buff: direct index for structure (layout( std430) readonly global 10-element array of mediump float) -0:41 s_ro: direct index for structure (layout( column_major std430 offset=40) readonly buffer structure{layout( std430) global 10-element array of mediump float buff}) -0:41 'ro_buffer' (layout( binding=2 column_major std430) readonly buffer block{layout( column_major std430 offset=0) readonly buffer 10-element array of mediump float buff_ro, layout( column_major std430 offset=40) readonly buffer structure{layout( std430) global 10-element array of mediump float buff} s_ro}) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 3 (const int) -0:42 Function Call: non_ro_funS(struct-S-f1[10]1; ( global void) -0:42 s_ro: direct index for structure (layout( column_major std430 offset=40) readonly buffer structure{layout( std430) global 10-element array of mediump float buff}) -0:42 'ro_buffer' (layout( binding=2 column_major std430) readonly buffer block{layout( column_major std430 offset=0) readonly buffer 10-element array of mediump float buff_ro, layout( column_major std430 offset=40) readonly buffer structure{layout( std430) global 10-element array of mediump float buff} s_ro}) -0:42 Constant: -0:42 1 (const int) -0:? Linker Objects -0:? 'ro_buffer' (layout( binding=2 column_major std430) readonly buffer block{layout( column_major std430 offset=0) readonly buffer 10-element array of mediump float buff_ro, layout( column_major std430 offset=40) readonly buffer structure{layout( std430) global 10-element array of mediump float buff} s_ro}) -0:? 'non_ro_buffer' (layout( binding=2 column_major std430) buffer block{layout( column_major std430 offset=0) buffer 10-element array of mediump float buff, layout( column_major std430 offset=40) buffer structure{layout( std430) global 10-element array of mediump float buff} s}) -0:? 'fragColor' ( out mediump 4-component vector of float) - diff --git a/deps/glslang/Test/baseResults/310.tesc.out b/deps/glslang/Test/baseResults/310.tesc.out deleted file mode 100644 index bd4c1bdc..00000000 --- a/deps/glslang/Test/baseResults/310.tesc.out +++ /dev/null @@ -1,583 +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 'gl_in' -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 'gl_out' -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_BoundingBoxEXT' : required extension not requested: GL_EXT_primitive_bounding_box -ERROR: 0:134: 'gl_BoundingBox' : undeclared identifier -ERROR: 0:143: '[' : array index out of range '2' -ERROR: 0:148: 'gl_BoundingBoxOES' : required extension not requested: GL_OES_primitive_bounding_box -ERROR: 0:157: '[' : array index out of range '2' -ERROR: 0:160: '' : array size required -ERROR: 0:176: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID -ERROR: 0:177: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID -ERROR: 0:180: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID -ERROR: 41 compilation errors. No code generated. - - -Shader version: 310 -Requested GL_ARB_separate_shader_objects -Requested GL_EXT_primitive_bounding_box -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 SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV 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 SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV 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 SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV 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 SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV 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 SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV 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 SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV 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: bbextBad( ( global void) -0:131 Function Parameters: -0:133 Sequence -0:133 'gl_BoundingBoxEXT' ( patch out 2-element array of highp 4-component vector of float BoundingBox) -0:134 'gl_BoundingBox' ( temp float) -0:139 Function Definition: bbext( ( global void) -0:139 Function Parameters: -0:141 Sequence -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_BoundingBoxEXT' ( patch out 2-element array of highp 4-component vector of float BoundingBox) -0:141 Constant: -0:141 0 (const int) -0:141 Constant: -0:141 0.000000 -0:141 0.000000 -0:141 0.000000 -0:141 0.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_BoundingBoxEXT' ( patch out 2-element array of highp 4-component vector of float BoundingBox) -0:142 Constant: -0:142 1 (const int) -0:142 Constant: -0:142 1.000000 -0:142 1.000000 -0:142 1.000000 -0:142 1.000000 -0:143 move second child to first child ( temp highp 4-component vector of float) -0:143 direct index ( patch temp highp 4-component vector of float BoundingBox) -0:143 'gl_BoundingBoxEXT' ( patch out 2-element array of highp 4-component vector of float BoundingBox) -0:143 Constant: -0:143 2 (const int) -0:143 Constant: -0:143 2.000000 -0:143 2.000000 -0:143 2.000000 -0:143 2.000000 -0:146 Function Definition: bbBad( ( global void) -0:146 Function Parameters: -0:148 Sequence -0:148 'gl_BoundingBoxOES' ( patch out 2-element array of highp 4-component vector of float BoundingBox) -0:153 Function Definition: bb( ( global void) -0:153 Function Parameters: -0:155 Sequence -0:155 move second child to first child ( temp highp 4-component vector of float) -0:155 direct index ( patch temp highp 4-component vector of float BoundingBox) -0:155 'gl_BoundingBoxOES' ( patch out 2-element array of highp 4-component vector of float BoundingBox) -0:155 Constant: -0:155 0 (const int) -0:155 Constant: -0:155 0.000000 -0:155 0.000000 -0:155 0.000000 -0:155 0.000000 -0:156 move second child to first child ( temp highp 4-component vector of float) -0:156 direct index ( patch temp highp 4-component vector of float BoundingBox) -0:156 'gl_BoundingBoxOES' ( patch out 2-element array of highp 4-component vector of float BoundingBox) -0:156 Constant: -0:156 1 (const int) -0:156 Constant: -0:156 1.000000 -0:156 1.000000 -0:156 1.000000 -0:156 1.000000 -0:157 move second child to first child ( temp highp 4-component vector of float) -0:157 direct index ( patch temp highp 4-component vector of float BoundingBox) -0:157 'gl_BoundingBoxOES' ( patch out 2-element array of highp 4-component vector of float BoundingBox) -0:157 Constant: -0:157 2 (const int) -0:157 Constant: -0:157 2.000000 -0:157 2.000000 -0:157 2.000000 -0:157 2.000000 -0:168 Function Definition: outputtingOutparam(i1; ( global void) -0:168 Function Parameters: -0:168 'a' ( out highp int) -0:170 Sequence -0:170 move second child to first child ( temp highp int) -0:170 'a' ( out highp int) -0:170 Constant: -0:170 2 (const int) -0:173 Function Definition: outputting( ( global void) -0:173 Function Parameters: -0:175 Sequence -0:175 move second child to first child ( temp highp int) -0:175 indirect index ( temp highp int) -0:175 'outa' ( out 4-element array of highp int) -0:175 'gl_InvocationID' ( in highp int InvocationID) -0:175 Constant: -0:175 2 (const int) -0:176 move second child to first child ( temp highp int) -0:176 direct index ( temp highp int) -0:176 'outa' ( out 4-element array of highp int) -0:176 Constant: -0:176 1 (const int) -0:176 Constant: -0:176 2 (const int) -0:177 move second child to first child ( temp highp 4-component vector of float) -0:177 gl_Position: direct index for structure ( out highp 4-component vector of float Position) -0:177 direct index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) -0:177 '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:177 Constant: -0:177 0 (const int) -0:177 Constant: -0:177 0 (const int) -0:177 Constant: -0:177 1.000000 -0:177 1.000000 -0:177 1.000000 -0:177 1.000000 -0:178 direct index ( temp highp int) -0:178 'outa' ( out 4-element array of highp int) -0:178 Constant: -0:178 1 (const int) -0:179 direct index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) -0:179 '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:179 Constant: -0:179 0 (const int) -0:180 Function Call: outputtingOutparam(i1; ( global void) -0:180 direct index ( temp highp int) -0:180 'outa' ( out 4-element array of highp int) -0:180 Constant: -0:180 0 (const int) -0:181 Function Call: outputtingOutparam(i1; ( global void) -0:181 indirect index ( temp highp int) -0:181 'outa' ( out 4-element array of highp int) -0:181 'gl_InvocationID' ( in highp int InvocationID) -0:182 move second child to first child ( temp highp float) -0:182 f: direct index for structure ( out highp float) -0:182 direct index ( patch temp block{ out highp float f}) -0:182 'patchIName' ( patch out 4-element array of block{ out highp float f}) -0:182 Constant: -0:182 1 (const int) -0:182 Constant: -0:182 0 (const int) -0:182 Constant: -0:182 3.140000 -0:183 move second child to first child ( temp highp int) -0:183 indirect index ( temp highp int) -0:183 'outa' ( out 4-element array of highp int) -0:183 'gl_InvocationID' ( in highp int InvocationID) -0:183 Constant: -0:183 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_EXT_primitive_bounding_box -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 SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float PositionPerViewNV 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 SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float PositionPerViewNV 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 SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float PositionPerViewNV 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 SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float PositionPerViewNV 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/Test/baseResults/310.tese.out b/deps/glslang/Test/baseResults/310.tese.out deleted file mode 100644 index 5eecaffa..00000000 --- a/deps/glslang/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 'gl_in' -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 'gl_in' -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 SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV 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 SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV 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 SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV 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 SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV 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 SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float PositionPerViewNV 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 SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float PositionPerViewNV 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 SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float PositionPerViewNV 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 SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float PositionPerViewNV 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/Test/baseResults/310.vert.out b/deps/glslang/Test/baseResults/310.vert.out deleted file mode 100644 index 13a88dff..00000000 --- a/deps/glslang/Test/baseResults/310.vert.out +++ /dev/null @@ -1,1273 +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' : required extension not requested: GL_EXT_scalar_block_layout -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' : l-value required "gl_PerVertex" (can't modify void) -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: 94 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, operation at highp) -0:165 direct index ( temp lowp sampler2D) -0:165 'sArray' ( uniform 4-element array of lowp sampler2D) -0:165 Constant: -0:165 0 (const int) -0:165 Constant: -0:165 0.100000 -0:165 0.100000 -0:165 Convert float to int ( temp highp 2-component vector of int) -0:165 '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, operation at highp) -0:180 direct index ( temp lowp sampler2D) -0:180 'sArray' ( uniform 4-element array of lowp sampler2D) -0:180 Constant: -0:180 0 (const int) -0:180 Constant: -0:180 0.100000 -0:180 0.100000 -0:180 Convert float to int ( temp highp 2-component vector of int) -0:180 '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/Test/baseResults/310AofA.vert.out b/deps/glslang/Test/baseResults/310AofA.vert.out deleted file mode 100644 index eec22cc6..00000000 --- a/deps/glslang/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 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 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 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 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 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 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/Test/baseResults/310implicitSizeArrayError.vert.out b/deps/glslang/Test/baseResults/310implicitSizeArrayError.vert.out deleted file mode 100644 index 6975cde2..00000000 --- a/deps/glslang/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/Test/baseResults/310runtimeArray.vert.out b/deps/glslang/Test/baseResults/310runtimeArray.vert.out deleted file mode 100644 index 84c731ed..00000000 --- a/deps/glslang/Test/baseResults/310runtimeArray.vert.out +++ /dev/null @@ -1,145 +0,0 @@ -310runtimeArray.vert -ERROR: 0:9: '' : array size required -ERROR: 1 compilation errors. No code generated. - - -Shader version: 310 -ERROR: node is still EOpNull! -0:12 Function Definition: main( ( global void) -0:12 Function Parameters: -0:14 Sequence -0:14 move second child to first child ( temp highp float) -0:14 'o' (layout( location=0) smooth out highp float) -0:14 f: direct index for structure ( global highp float) -0:14 direct index (layout( column_major shared) temp structure{ global highp float f}) -0:14 s: direct index for structure (layout( column_major shared) buffer unsized 6-element array of structure{ global highp float f}) -0:14 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer unsized 6-element array of structure{ global highp float f} s}) -0:14 Constant: -0:14 0 (const uint) -0:14 Constant: -0:14 5 (const int) -0:14 Constant: -0:14 0 (const int) -0:15 add second child into first child ( temp highp float) -0:15 'o' (layout( location=0) smooth out highp float) -0:15 f: direct index for structure ( global highp float) -0:15 direct index (layout( column_major shared) temp structure{ global highp float f}) -0:15 s: direct index for structure (layout( column_major shared) buffer unsized 7-element array of structure{ global highp float f}) -0:15 'b2name' (layout( column_major shared) buffer block{layout( column_major shared) buffer unsized 7-element array of structure{ global highp float f} s}) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 6 (const int) -0:15 Constant: -0:15 0 (const int) -0:16 add second child into first child ( temp highp float) -0:16 'o' (layout( location=0) smooth out highp float) -0:16 f: direct index for structure ( global highp float) -0:16 direct index (layout( column_major shared) temp structure{ global highp float f}) -0:16 s: direct index for structure (layout( column_major shared) buffer unsized 8-element array of structure{ global highp float f}) -0:16 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer unsized 8-element array of structure{ global highp float f} s}) -0:16 'b3name' (layout( column_major shared) buffer unsized 4-element array of block{layout( column_major shared) buffer unsized 8-element array of structure{ global highp float f} s}) -0:16 Constant: -0:16 3 (const int) -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 7 (const int) -0:16 Constant: -0:16 0 (const int) -0:17 add second child into first child ( temp highp float) -0:17 'o' (layout( location=0) smooth out highp float) -0:17 f: direct index for structure ( global highp float) -0:17 direct index (layout( column_major shared) temp structure{ global highp float f}) -0:17 s: direct index for structure (layout( column_major shared) buffer unsized 9-element array of structure{ global highp float f}) -0:17 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer unsized 9-element array of structure{ global highp float f} s}) -0:17 'b4name' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer unsized 9-element array of structure{ global highp float f} s}) -0:17 Constant: -0:17 2 (const int) -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 8 (const int) -0:17 Constant: -0:17 0 (const int) -0:? Linker Objects -0:? 'o' (layout( location=0) smooth out highp float) -0:? 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer unsized 6-element array of structure{ global highp float f} s}) -0:? 'b2name' (layout( column_major shared) buffer block{layout( column_major shared) buffer unsized 7-element array of structure{ global highp float f} s}) -0:? 'b3name' (layout( column_major shared) buffer unsized 4-element array of block{layout( column_major shared) buffer unsized 8-element array of structure{ global highp float f} s}) -0:? 'b4name' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer unsized 9-element array of structure{ global highp float f} s}) -0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) - - -Linked vertex stage: - - -Shader version: 310 -ERROR: node is still EOpNull! -0:12 Function Definition: main( ( global void) -0:12 Function Parameters: -0:14 Sequence -0:14 move second child to first child ( temp highp float) -0:14 'o' (layout( location=0) smooth out highp float) -0:14 f: direct index for structure ( global highp float) -0:14 direct index (layout( column_major shared) temp structure{ global highp float f}) -0:14 s: direct index for structure (layout( column_major shared) buffer unsized 6-element array of structure{ global highp float f}) -0:14 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer unsized 6-element array of structure{ global highp float f} s}) -0:14 Constant: -0:14 0 (const uint) -0:14 Constant: -0:14 5 (const int) -0:14 Constant: -0:14 0 (const int) -0:15 add second child into first child ( temp highp float) -0:15 'o' (layout( location=0) smooth out highp float) -0:15 f: direct index for structure ( global highp float) -0:15 direct index (layout( column_major shared) temp structure{ global highp float f}) -0:15 s: direct index for structure (layout( column_major shared) buffer unsized 7-element array of structure{ global highp float f}) -0:15 'b2name' (layout( column_major shared) buffer block{layout( column_major shared) buffer unsized 7-element array of structure{ global highp float f} s}) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 6 (const int) -0:15 Constant: -0:15 0 (const int) -0:16 add second child into first child ( temp highp float) -0:16 'o' (layout( location=0) smooth out highp float) -0:16 f: direct index for structure ( global highp float) -0:16 direct index (layout( column_major shared) temp structure{ global highp float f}) -0:16 s: direct index for structure (layout( column_major shared) buffer unsized 8-element array of structure{ global highp float f}) -0:16 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer unsized 8-element array of structure{ global highp float f} s}) -0:16 'b3name' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer unsized 8-element array of structure{ global highp float f} s}) -0:16 Constant: -0:16 3 (const int) -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 7 (const int) -0:16 Constant: -0:16 0 (const int) -0:17 add second child into first child ( temp highp float) -0:17 'o' (layout( location=0) smooth out highp float) -0:17 f: direct index for structure ( global highp float) -0:17 direct index (layout( column_major shared) temp structure{ global highp float f}) -0:17 s: direct index for structure (layout( column_major shared) buffer unsized 9-element array of structure{ global highp float f}) -0:17 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer unsized 9-element array of structure{ global highp float f} s}) -0:17 'b4name' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer unsized 9-element array of structure{ global highp float f} s}) -0:17 Constant: -0:17 2 (const int) -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 8 (const int) -0:17 Constant: -0:17 0 (const int) -0:? Linker Objects -0:? 'o' (layout( location=0) smooth out highp float) -0:? 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer unsized 6-element array of structure{ global highp float f} s}) -0:? 'b2name' (layout( column_major shared) buffer block{layout( column_major shared) buffer unsized 7-element array of structure{ global highp float f} s}) -0:? 'b3name' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer unsized 8-element array of structure{ global highp float f} s}) -0:? 'b4name' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer unsized 9-element array of structure{ global highp float f} s}) -0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) - diff --git a/deps/glslang/Test/baseResults/320.comp.out b/deps/glslang/Test/baseResults/320.comp.out deleted file mode 100644 index 00865be4..00000000 --- a/deps/glslang/Test/baseResults/320.comp.out +++ /dev/null @@ -1,73 +0,0 @@ -320.comp -ERROR: 0:8: 'dFdx' : required extension not requested: GL_NV_compute_shader_derivatives -ERROR: 0:9: 'dFdy' : required extension not requested: GL_NV_compute_shader_derivatives -ERROR: 0:10: 'fwidth' : required extension not requested: GL_NV_compute_shader_derivatives -ERROR: 0:11: 'dFdxCoarse' : required extension not requested: GL_NV_compute_shader_derivatives -ERROR: 0:12: 'dFdyCoarse' : required extension not requested: GL_NV_compute_shader_derivatives -ERROR: 0:13: 'fwidthCoarse' : required extension not requested: GL_NV_compute_shader_derivatives -ERROR: 0:14: 'dFdxFine' : required extension not requested: GL_NV_compute_shader_derivatives -ERROR: 0:15: 'dFdyFine' : required extension not requested: GL_NV_compute_shader_derivatives -ERROR: 0:16: 'fwidthFine' : required extension not requested: GL_NV_compute_shader_derivatives -ERROR: 9 compilation errors. No code generated. - - -Shader version: 320 -local_size = (1, 1, 1) -ERROR: node is still EOpNull! -0:6 Function Definition: main( ( global void) -0:6 Function Parameters: -0:8 Sequence -0:8 dPdx ( global highp float) -0:8 'fX' ( global highp float) -0:9 dPdy ( global highp float) -0:9 'fY' ( global highp float) -0:10 fwidth ( global highp float) -0:10 'fX' ( global highp float) -0:11 dPdxCoarse ( global highp float) -0:11 'fX' ( global highp float) -0:12 dPdyCoarse ( global highp float) -0:12 'fY' ( global highp float) -0:13 fwidthCoarse ( global highp float) -0:13 'fX' ( global highp float) -0:14 dPdxFine ( global highp float) -0:14 'fX' ( global highp float) -0:15 dPdyFine ( global highp float) -0:15 'fY' ( global highp float) -0:16 fwidthFine ( global highp float) -0:16 'fX' ( global highp float) -0:? Linker Objects -0:? 'fX' ( global highp float) -0:? 'fY' ( global highp float) - - -Linked compute stage: - - -Shader version: 320 -local_size = (1, 1, 1) -ERROR: node is still EOpNull! -0:6 Function Definition: main( ( global void) -0:6 Function Parameters: -0:8 Sequence -0:8 dPdx ( global highp float) -0:8 'fX' ( global highp float) -0:9 dPdy ( global highp float) -0:9 'fY' ( global highp float) -0:10 fwidth ( global highp float) -0:10 'fX' ( global highp float) -0:11 dPdxCoarse ( global highp float) -0:11 'fX' ( global highp float) -0:12 dPdyCoarse ( global highp float) -0:12 'fY' ( global highp float) -0:13 fwidthCoarse ( global highp float) -0:13 'fX' ( global highp float) -0:14 dPdxFine ( global highp float) -0:14 'fX' ( global highp float) -0:15 dPdyFine ( global highp float) -0:15 'fY' ( global highp float) -0:16 fwidthFine ( global highp float) -0:16 'fX' ( global highp float) -0:? Linker Objects -0:? 'fX' ( global highp float) -0:? 'fY' ( global highp float) - diff --git a/deps/glslang/Test/baseResults/320.frag.out b/deps/glslang/Test/baseResults/320.frag.out deleted file mode 100644 index 9f4a817b..00000000 --- a/deps/glslang/Test/baseResults/320.frag.out +++ /dev/null @@ -1,576 +0,0 @@ -320.frag -ERROR: 0:3: 'output block' : not supported in this stage: fragment -ERROR: 0:7: 'float' : type requires declaration of default precision qualifier -ERROR: 0:8: '' : cannot nest a structure definition inside a structure or block -ERROR: 0:16: 'location' : overlapping use of location 13 -ERROR: 0:18: 'inbname2' : Cannot reuse block name within the same interface: in -ERROR: 0:23: 'badmember' : nameless block contains a member that already has a name at global scope -ERROR: 0:27: 'inbname' : redefinition -ERROR: 0:29: 'vAnon' : redefinition -ERROR: 0:43: 'origin_upper_left' : not supported with this profile: es -ERROR: 0:43: 'pixel_center_integer' : not supported with this profile: es -ERROR: 0:43: 'redeclaration' : cannot redeclare with different qualification: gl_FragCoord -ERROR: 0:47: 'depth layout qualifier' : not supported with this profile: es -ERROR: 0:51: 'assign' : l-value required "gl_FragDepth" (can't modify gl_FragDepth if using early_fragment_tests) -ERROR: 0:79: 'textureGatherOffsets(...)' : must be a compile-time constant: offsets argument -ERROR: 0:124: 'rgba32f' : format requires readonly or writeonly memory qualifier -ERROR: 0:125: 'rgba8ui' : format requires readonly or writeonly memory qualifier -ERROR: 0:126: 'rgba16i' : format requires readonly or writeonly memory qualifier -ERROR: 0:152: 'imageAtomicMax' : only supported on image with format r32i or r32ui -ERROR: 0:153: 'imageAtomicMax' : only supported on image with format r32i or r32ui -ERROR: 0:154: 'imageAtomicExchange' : only supported on image with format r32f -ERROR: 0:157: 'centroid/sample/patch' : can't use auxiliary qualifier on a fragment output -ERROR: 0:158: 'flat/smooth/noperspective' : can't use interpolation qualifier on a fragment output -ERROR: 0:159: 'flat/smooth/noperspective' : can't use interpolation qualifier on a fragment output -ERROR: 0:160: 'noperspective' : Reserved word. -ERROR: 0:160: 'noperspective' : not supported for this version or the enabled extensions -ERROR: 0:160: 'flat/smooth/noperspective' : can't use interpolation qualifier on a fragment output -ERROR: 0:165: 'centroid/sample/patch' : can't use auxiliary qualifier on a fragment output -ERROR: 0:180: 'interpolateAtCentroid' : no matching overloaded function found -ERROR: 0:180: 'assign' : cannot convert from ' const float' to ' temp mediump 3-component vector of float' -ERROR: 0:182: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element -ERROR: 0:184: 'interpolateAtSample' : no matching overloaded function found -ERROR: 0:184: 'assign' : cannot convert from ' const float' to ' temp mediump 3-component vector of float' -ERROR: 0:186: 'interpolateAtSample' : first argument must be an interpolant, or interpolant-array element -ERROR: 0:189: 'interpolateAtOffset' : no matching overloaded function found -ERROR: 0:189: 'assign' : cannot convert from ' const float' to ' temp mediump 3-component vector of float' -ERROR: 0:191: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element -ERROR: 0:192: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element -ERROR: 0:196: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element -ERROR: 0:197: 'outp' : undeclared identifier -ERROR: 0:197: 'interpolateAtSample' : first argument must be an interpolant, or interpolant-array element -ERROR: 0:197: 'assign' : cannot convert from ' global float' to ' temp mediump 4-component vector of float' -ERROR: 0:217: 'blend equation' : can only apply to 'out' -ERROR: 0:218: 'blend equation' : can only apply to a standalone qualifier -ERROR: 0:219: 'blend equation' : can only apply to a standalone qualifier -ERROR: 0:220: 'blend equation' : can only apply to a standalone qualifier -ERROR: 0:221: 'blend equation' : can only apply to a standalone qualifier -ERROR: 0:222: 'blend equation' : can only apply to a standalone qualifier -ERROR: 0:223: 'blend_support' : unknown blend equation -ERROR: 0:225: 'fragment-shader array-of-array output' : not supported with this profile: es -ERROR: 49 compilation errors. No code generated. - - -Shader version: 320 -gl_FragCoord pixel center is integer -gl_FragCoord origin is upper left -using early_fragment_tests -using depth_any -using blend_support_multiply blend_support_screen blend_support_overlay blend_support_darken blend_support_lighten blend_support_colordodge blend_support_colorburn blend_support_hardlight blend_support_softlight blend_support_difference blend_support_exclusion blend_support_hsl_hue blend_support_hsl_saturation blend_support_hsl_color blend_support_hsl_luminosity blend_support_all_equations -ERROR: node is still EOpNull! -0:35 Function Definition: fooIO( ( global void) -0:35 Function Parameters: -0:37 Sequence -0:37 Sequence -0:37 move second child to first child ( temp mediump 4-component vector of float) -0:37 'v' ( temp mediump 4-component vector of float) -0:37 add ( temp mediump 4-component vector of float) -0:37 v: direct index for structure ( in mediump 4-component vector of float) -0:37 'inbinst' ( in block{ in mediump int a, in mediump 4-component vector of float v, in structure{ global mediump int b} s}) -0:37 Constant: -0:37 1 (const int) -0:37 vAnon: direct index for structure (layout( location=13) centroid in mediump 4-component vector of float) -0:37 'anon@0' ( in block{layout( location=12) in mediump int aAnon, layout( location=13) centroid in mediump 4-component vector of float vAnon}) -0:37 Constant: -0:37 1 (const uint) -0:38 vector scale second child into first child ( temp mediump 4-component vector of float) -0:38 'v' ( temp mediump 4-component vector of float) -0:38 f: direct index for structure ( in mediump float) -0:38 direct index ( temp block{ in mediump float f}) -0:38 'arrayedInst' ( in 4-element array of block{ in mediump float f}) -0:38 Constant: -0:38 2 (const int) -0:38 Constant: -0:38 0 (const int) -0:39 vector scale second child into first child ( temp mediump 4-component vector of float) -0:39 'v' ( temp mediump 4-component vector of float) -0:39 f: direct index for structure ( in mediump float) -0:39 indirect index ( temp block{ in mediump float f}) -0:39 'arrayedInst' ( in 4-element array of block{ in mediump float f}) -0:39 'i' ( uniform mediump int) -0:39 Constant: -0:39 0 (const int) -0:49 Function Definition: main( ( global void) -0:49 Function Parameters: -0:51 Sequence -0:51 move second child to first child ( temp highp float) -0:51 'gl_FragDepth' ( gl_FragDepth highp float FragDepth) -0:51 Constant: -0:51 0.200000 -0:52 Sequence -0:52 move second child to first child ( temp bool) -0:52 'f' ( temp bool) -0:52 'gl_FrontFacing' ( gl_FrontFacing bool Face) -0:57 Function Definition: foo_GS( ( global void) -0:57 Function Parameters: -0:59 Sequence -0:59 Sequence -0:59 move second child to first child ( temp highp int) -0:59 'l' ( temp highp int) -0:59 'gl_Layer' ( flat in highp int Layer) -0:60 Sequence -0:60 move second child to first child ( temp highp int) -0:60 'p' ( temp highp int) -0:60 'gl_PrimitiveID' ( flat in highp int PrimitiveID) -0:73 Function Definition: pfoo( ( global void) -0:73 Function Parameters: -0:? Sequence -0:76 move second child to first child ( temp mediump 2-component vector of float) -0:76 'h' ( noContraction temp mediump 2-component vector of float) -0:76 fma ( global mediump 2-component vector of float) -0:76 'inf' ( smooth in mediump 2-component vector of float) -0:76 'ing' ( smooth in mediump 2-component vector of float) -0:76 'h' ( noContraction temp mediump 2-component vector of float) -0:77 textureGatherOffset ( global lowp 4-component vector of float, operation at mediump) -0:77 direct index ( temp lowp sampler2D) -0:77 'sArray' ( uniform 4-element array of lowp sampler2D) -0:77 Constant: -0:77 0 (const int) -0:77 Constant: -0:77 0.100000 -0:77 0.100000 -0:77 Convert float to int ( temp mediump 2-component vector of int) -0:77 'inf' ( smooth in mediump 2-component vector of float) -0:78 textureGatherOffsets ( global lowp 4-component vector of float, operation at mediump) -0:78 direct index ( temp lowp sampler2D) -0:78 'sArray' ( uniform 4-element array of lowp sampler2D) -0:78 Constant: -0:78 0 (const int) -0:78 Constant: -0:78 0.100000 -0:78 0.100000 -0:78 Constant: -0:78 0 (const int) -0:78 0 (const int) -0:78 0 (const int) -0:78 0 (const int) -0:78 0 (const int) -0:78 0 (const int) -0:78 0 (const int) -0:78 0 (const int) -0:79 textureGatherOffsets ( global lowp 4-component vector of float, operation at mediump) -0:79 direct index ( temp lowp sampler2D) -0:79 'sArray' ( uniform 4-element array of lowp sampler2D) -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 0.100000 -0:79 0.100000 -0:79 'offsets' ( uniform 4-element array of mediump 2-component vector of int) -0:102 Function Definition: CAT( ( global void) -0:102 Function Parameters: -0:104 Sequence -0:104 Sequence -0:104 move second child to first child ( temp highp 4-component vector of float) -0:104 'b4' ( temp highp 4-component vector of float) -0:104 texture ( global highp 4-component vector of float) -0:104 'CA4' ( uniform highp samplerCubeArray) -0:104 Constant: -0:104 0.500000 -0:104 0.500000 -0:104 0.500000 -0:104 0.500000 -0:104 Constant: -0:104 0.240000 -0:105 Sequence -0:105 move second child to first child ( temp highp 4-component vector of int) -0:105 'b6' ( temp highp 4-component vector of int) -0:105 texture ( global highp 4-component vector of int) -0:105 'CA6' ( uniform highp isamplerCubeArray) -0:105 Constant: -0:105 0.500000 -0:105 0.500000 -0:105 0.500000 -0:105 0.500000 -0:105 Constant: -0:105 0.260000 -0:106 Sequence -0:106 move second child to first child ( temp highp 4-component vector of uint) -0:106 'b7' ( temp highp 4-component vector of uint) -0:106 texture ( global highp 4-component vector of uint) -0:106 'CA7' ( uniform highp usamplerCubeArray) -0:106 Constant: -0:106 0.500000 -0:106 0.500000 -0:106 0.500000 -0:106 0.500000 -0:106 Constant: -0:106 0.270000 -0:109 Function Definition: goodSample( ( global void) -0:109 Function Parameters: -0:111 Sequence -0:111 Sequence -0:111 move second child to first child ( temp lowp int) -0:111 'a1' ( temp lowp int) -0:111 'gl_SampleID' ( flat in lowp int SampleId) -0:112 Sequence -0:112 move second child to first child ( temp mediump 2-component vector of float) -0:112 'a2' ( temp mediump 2-component vector of float) -0:112 'gl_SamplePosition' ( smooth in mediump 2-component vector of float SamplePosition) -0:113 Sequence -0:113 move second child to first child ( temp highp int) -0:113 'a3' ( temp highp int) -0:113 direct index ( flat temp highp int SampleMaskIn) -0:113 'gl_SampleMaskIn' ( flat in unsized 1-element array of highp int SampleMaskIn) -0:113 Constant: -0:113 0 (const int) -0:114 move second child to first child ( temp highp int) -0:114 direct index ( temp highp int SampleMaskIn) -0:114 'gl_SampleMask' ( out unsized 1-element array of highp int SampleMaskIn) -0:114 Constant: -0:114 0 (const int) -0:114 'a3' ( temp highp int) -0:115 Sequence -0:115 move second child to first child ( temp mediump int) -0:115 'n1' ( temp mediump int) -0:115 Constant: -0:115 4 (const int) -0:116 Sequence -0:116 move second child to first child ( temp mediump int) -0:116 'n2' ( temp mediump int) -0:116 'gl_NumSamples' ( uniform lowp int) -0:128 Function Definition: goodImageAtom( ( global void) -0:128 Function Parameters: -0:? Sequence -0:134 imageAtomicAdd ( global highp int) -0:134 'im2Di' (layout( r32i) uniform highp iimage2D) -0:134 'P' ( uniform mediump 2-component vector of int) -0:134 'dati' ( temp mediump int) -0:135 imageAtomicAdd ( global highp uint) -0:135 'im2Du' (layout( r32ui) uniform highp uimage2D) -0:135 'P' ( uniform mediump 2-component vector of int) -0:135 'datu' ( temp mediump uint) -0:136 imageAtomicMin ( global highp int) -0:136 'im2Di' (layout( r32i) uniform highp iimage2D) -0:136 'P' ( uniform mediump 2-component vector of int) -0:136 'dati' ( temp mediump int) -0:137 imageAtomicMin ( global highp uint) -0:137 'im2Du' (layout( r32ui) uniform highp uimage2D) -0:137 'P' ( uniform mediump 2-component vector of int) -0:137 'datu' ( temp mediump uint) -0:138 imageAtomicMax ( global highp int) -0:138 'im2Di' (layout( r32i) uniform highp iimage2D) -0:138 'P' ( uniform mediump 2-component vector of int) -0:138 'dati' ( temp mediump int) -0:139 imageAtomicMax ( global highp uint) -0:139 'im2Du' (layout( r32ui) uniform highp uimage2D) -0:139 'P' ( uniform mediump 2-component vector of int) -0:139 'datu' ( temp mediump uint) -0:140 imageAtomicAnd ( global highp int) -0:140 'im2Di' (layout( r32i) uniform highp iimage2D) -0:140 'P' ( uniform mediump 2-component vector of int) -0:140 'dati' ( temp mediump int) -0:141 imageAtomicAnd ( global highp uint) -0:141 'im2Du' (layout( r32ui) uniform highp uimage2D) -0:141 'P' ( uniform mediump 2-component vector of int) -0:141 'datu' ( temp mediump uint) -0:142 imageAtomicOr ( global highp int) -0:142 'im2Di' (layout( r32i) uniform highp iimage2D) -0:142 'P' ( uniform mediump 2-component vector of int) -0:142 'dati' ( temp mediump int) -0:143 imageAtomicOr ( global highp uint) -0:143 'im2Du' (layout( r32ui) uniform highp uimage2D) -0:143 'P' ( uniform mediump 2-component vector of int) -0:143 'datu' ( temp mediump uint) -0:144 imageAtomicXor ( global highp int) -0:144 'im2Di' (layout( r32i) uniform highp iimage2D) -0:144 'P' ( uniform mediump 2-component vector of int) -0:144 'dati' ( temp mediump int) -0:145 imageAtomicXor ( global highp uint) -0:145 'im2Du' (layout( r32ui) uniform highp uimage2D) -0:145 'P' ( uniform mediump 2-component vector of int) -0:145 'datu' ( temp mediump uint) -0:146 imageAtomicExchange ( global highp int) -0:146 'im2Di' (layout( r32i) uniform highp iimage2D) -0:146 'P' ( uniform mediump 2-component vector of int) -0:146 'dati' ( temp mediump int) -0:147 imageAtomicExchange ( global highp uint) -0:147 'im2Du' (layout( r32ui) uniform highp uimage2D) -0:147 'P' ( uniform mediump 2-component vector of int) -0:147 'datu' ( temp mediump uint) -0:148 imageAtomicExchange ( global highp float) -0:148 'im2Df' (layout( r32f) uniform highp image2D) -0:148 'P' ( uniform mediump 2-component vector of int) -0:148 'datf' ( temp mediump float) -0:149 imageAtomicCompSwap ( global highp int) -0:149 'im2Di' (layout( r32i) uniform highp iimage2D) -0:149 'P' ( uniform mediump 2-component vector of int) -0:149 Constant: -0:149 3 (const int) -0:149 'dati' ( temp mediump int) -0:150 imageAtomicCompSwap ( global highp uint) -0:150 'im2Du' (layout( r32ui) uniform highp uimage2D) -0:150 'P' ( uniform mediump 2-component vector of int) -0:150 Constant: -0:150 5 (const uint) -0:150 'datu' ( temp mediump uint) -0:152 imageAtomicMax ( global highp int) -0:152 'badIm2Di' (layout( rgba16i) uniform highp iimage2D) -0:152 'P' ( uniform mediump 2-component vector of int) -0:152 'dati' ( temp mediump int) -0:153 imageAtomicMax ( global highp uint) -0:153 'badIm2Du' (layout( rgba8ui) uniform highp uimage2D) -0:153 'P' ( uniform mediump 2-component vector of int) -0:153 'datu' ( temp mediump uint) -0:154 imageAtomicExchange ( global highp float) -0:154 'badIm2Df' (layout( rgba32f) uniform highp image2D) -0:154 'P' ( uniform mediump 2-component vector of int) -0:154 'datf' ( temp mediump float) -0:169 Function Definition: interp( ( global void) -0:169 Function Parameters: -0:? Sequence -0:176 move second child to first child ( temp mediump 2-component vector of float) -0:176 'res2' ( temp mediump 2-component vector of float) -0:176 interpolateAtCentroid ( global mediump 2-component vector of float) -0:176 'colorfc' ( centroid flat in mediump 2-component vector of float) -0:177 move second child to first child ( temp mediump 4-component vector of float) -0:177 'res4' ( temp mediump 4-component vector of float) -0:177 interpolateAtCentroid ( global mediump 4-component vector of float) -0:177 'colorSampIn' ( smooth sample in mediump 4-component vector of float) -0:178 move second child to first child ( temp mediump 4-component vector of float) -0:178 'res4' ( temp mediump 4-component vector of float) -0:178 interpolateAtCentroid ( global mediump 4-component vector of float) -0:178 'colorfsi' ( flat sample in mediump 4-component vector of float) -0:179 move second child to first child ( temp mediump float) -0:179 'res' ( temp mediump float) -0:179 interpolateAtCentroid ( global mediump float) -0:179 'scalarIn' ( smooth in mediump float) -0:180 'res3' ( temp mediump 3-component vector of float) -0:181 move second child to first child ( temp mediump 3-component vector of float) -0:181 'res3' ( temp mediump 3-component vector of float) -0:181 interpolateAtCentroid ( global mediump 3-component vector of float) -0:181 direct index ( smooth sample temp mediump 3-component vector of float) -0:181 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) -0:181 Constant: -0:181 2 (const int) -0:182 move second child to first child ( temp mediump 2-component vector of float) -0:182 'res2' ( temp mediump 2-component vector of float) -0:182 interpolateAtCentroid ( global mediump 2-component vector of float) -0:182 vector swizzle ( temp mediump 2-component vector of float) -0:182 direct index ( smooth sample temp mediump 3-component vector of float) -0:182 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) -0:182 Constant: -0:182 2 (const int) -0:182 Sequence -0:182 Constant: -0:182 0 (const int) -0:182 Constant: -0:182 1 (const int) -0:184 'res3' ( temp mediump 3-component vector of float) -0:185 move second child to first child ( temp mediump 3-component vector of float) -0:185 'res3' ( temp mediump 3-component vector of float) -0:185 interpolateAtSample ( global mediump 3-component vector of float) -0:185 indirect index ( smooth sample temp mediump 3-component vector of float) -0:185 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) -0:185 'i' ( uniform mediump int) -0:185 Constant: -0:185 0 (const int) -0:186 move second child to first child ( temp mediump 2-component vector of float) -0:186 'res2' ( temp mediump 2-component vector of float) -0:186 interpolateAtSample ( global mediump 2-component vector of float) -0:186 vector swizzle ( temp mediump 2-component vector of float) -0:186 direct index ( smooth sample temp mediump 3-component vector of float) -0:186 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) -0:186 Constant: -0:186 2 (const int) -0:186 Sequence -0:186 Constant: -0:186 0 (const int) -0:186 Constant: -0:186 1 (const int) -0:186 Constant: -0:186 2 (const int) -0:187 move second child to first child ( temp mediump float) -0:187 'res' ( temp mediump float) -0:187 interpolateAtSample ( global mediump float) -0:187 'scalarIn' ( smooth in mediump float) -0:187 Constant: -0:187 1 (const int) -0:189 'res3' ( temp mediump 3-component vector of float) -0:190 move second child to first child ( temp mediump 3-component vector of float) -0:190 'res3' ( temp mediump 3-component vector of float) -0:190 interpolateAtOffset ( global mediump 3-component vector of float) -0:190 direct index ( smooth sample temp mediump 3-component vector of float) -0:190 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) -0:190 Constant: -0:190 2 (const int) -0:190 Constant: -0:190 0.200000 -0:190 0.200000 -0:191 move second child to first child ( temp mediump 2-component vector of float) -0:191 'res2' ( temp mediump 2-component vector of float) -0:191 interpolateAtOffset ( global mediump 2-component vector of float) -0:191 vector swizzle ( temp mediump 2-component vector of float) -0:191 direct index ( smooth sample temp mediump 3-component vector of float) -0:191 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) -0:191 Constant: -0:191 2 (const int) -0:191 Sequence -0:191 Constant: -0:191 0 (const int) -0:191 Constant: -0:191 1 (const int) -0:191 Constant: -0:191 0.200000 -0:191 0.200000 -0:192 move second child to first child ( temp mediump float) -0:192 'res' ( temp mediump float) -0:192 interpolateAtOffset ( global mediump float) -0:192 add ( temp mediump float) -0:192 'scalarIn' ( smooth in mediump float) -0:192 'scalarIn' ( smooth in mediump float) -0:192 Constant: -0:192 0.200000 -0:192 0.200000 -0:193 move second child to first child ( temp mediump float) -0:193 'res' ( temp mediump float) -0:193 interpolateAtOffset ( global mediump float) -0:193 'scalarIn' ( smooth in mediump float) -0:193 Constant: -0:193 0.200000 -0:193 0.200000 -0:196 move second child to first child ( temp mediump float) -0:196 'res' ( temp mediump float) -0:196 interpolateAtCentroid ( global mediump float) -0:196 'f' ( temp mediump float) -0:197 'res4' ( temp mediump 4-component vector of float) -0:221 Function Definition: blendFoo( ( temp void) -0:221 Function Parameters: -0:222 Function Definition: blendFoo(vf3; ( global void) -0:222 Function Parameters: -0:222 'v' ( in mediump 3-component vector of float) -0:? Linker Objects -0:? 'outbinst' ( out block{ out mediump int a}) -0:? 'inbinst' ( in block{ in mediump int a, in mediump 4-component vector of float v, in structure{ global mediump int b} s}) -0:? 'anon@0' ( in block{layout( location=12) in mediump int aAnon, layout( location=13) centroid in mediump 4-component vector of float vAnon}) -0:? 'aliased' (layout( location=13) smooth in mediump 4-component vector of float) -0:? 'arrayedInst' ( in 4-element array of block{ in mediump float f}) -0:? 'i' ( uniform mediump int) -0:? 'gl_FragCoord' ( gl_FragCoord highp 4-component vector of float FragCoord) -0:? 'gl_FragDepth' ( gl_FragDepth highp float FragDepth) -0:? 'inf' ( smooth in mediump 2-component vector of float) -0:? 'ing' ( smooth in mediump 2-component vector of float) -0:? 'offsets' ( uniform 4-element array of mediump 2-component vector of int) -0:? 'sArray' ( uniform 4-element array of lowp sampler2D) -0:? 'sIndex' ( uniform mediump int) -0:? 'auArray' (layout( binding=0 offset=0) uniform 2-element array of highp atomic_uint) -0:? 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform mediump int i}) -0:? 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer mediump int i}) -0:? 'iArray' ( writeonly uniform 5-element array of highp image2D) -0:? 'constOffsets' ( const 4-element array of mediump 2-component vector of int) -0:? 0 (const int) -0:? 0 (const int) -0:? 0 (const int) -0:? 0 (const int) -0:? 0 (const int) -0:? 0 (const int) -0:? 0 (const int) -0:? 0 (const int) -0:? 'CA1' ( writeonly uniform highp imageCubeArray) -0:? 'CA2' ( writeonly uniform highp iimageCubeArray) -0:? 'CA3' ( writeonly uniform highp uimageCubeArray) -0:? 'CA4' ( uniform highp samplerCubeArray) -0:? 'CA5' ( uniform highp samplerCubeArrayShadow) -0:? 'CA6' ( uniform highp isamplerCubeArray) -0:? 'CA7' ( uniform highp usamplerCubeArray) -0:? 'gl_SampleMaskIn' ( flat in unsized 1-element array of highp int SampleMaskIn) -0:? 'gl_SampleMask' ( out unsized 1-element array of highp int SampleMaskIn) -0:? 'im2Df' (layout( r32f) uniform highp image2D) -0:? 'im2Du' (layout( r32ui) uniform highp uimage2D) -0:? 'im2Di' (layout( r32i) uniform highp iimage2D) -0:? 'P' ( uniform mediump 2-component vector of int) -0:? 'badIm2Df' (layout( rgba32f) uniform highp image2D) -0:? 'badIm2Du' (layout( rgba8ui) uniform highp uimage2D) -0:? 'badIm2Di' (layout( rgba16i) uniform highp iimage2D) -0:? 'colorCentroidBad' ( centroid out mediump 4-component vector of float) -0:? 'colorBadFlat' ( flat out mediump 4-component vector of float) -0:? 'colorBadSmooth' ( smooth out mediump 4-component vector of float) -0:? 'colorBadNo' ( noperspective out mediump 4-component vector of float) -0:? 'colorfc' ( centroid flat in mediump 2-component vector of float) -0:? 'scalarIn' ( smooth in mediump float) -0:? 'colorSampIn' ( smooth sample in mediump 4-component vector of float) -0:? 'colorSampleBad' ( sample out mediump 4-component vector of float) -0:? 'colorfsi' ( flat sample in mediump 4-component vector of float) -0:? 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) -0:? 'badout' ( out mediump 4-component vector of float) -0:? 'outAA' ( out 2-element array of 2-element array of mediump 4-component vector of float) - - -Linked fragment stage: - -ERROR: Linking fragment stage: when more than one fragment shader output, all must have location qualifiers - -Shader version: 320 -gl_FragCoord pixel center is integer -gl_FragCoord origin is upper left -using early_fragment_tests -using depth_any -using blend_support_multiply blend_support_screen blend_support_overlay blend_support_darken blend_support_lighten blend_support_colordodge blend_support_colorburn blend_support_hardlight blend_support_softlight blend_support_difference blend_support_exclusion blend_support_hsl_hue blend_support_hsl_saturation blend_support_hsl_color blend_support_hsl_luminosity blend_support_all_equations -ERROR: node is still EOpNull! -0:49 Function Definition: main( ( global void) -0:49 Function Parameters: -0:51 Sequence -0:51 move second child to first child ( temp highp float) -0:51 'gl_FragDepth' ( gl_FragDepth highp float FragDepth) -0:51 Constant: -0:51 0.200000 -0:52 Sequence -0:52 move second child to first child ( temp bool) -0:52 'f' ( temp bool) -0:52 'gl_FrontFacing' ( gl_FrontFacing bool Face) -0:? Linker Objects -0:? 'outbinst' ( out block{ out mediump int a}) -0:? 'inbinst' ( in block{ in mediump int a, in mediump 4-component vector of float v, in structure{ global mediump int b} s}) -0:? 'anon@0' ( in block{layout( location=12) in mediump int aAnon, layout( location=13) centroid in mediump 4-component vector of float vAnon}) -0:? 'aliased' (layout( location=13) smooth in mediump 4-component vector of float) -0:? 'arrayedInst' ( in 4-element array of block{ in mediump float f}) -0:? 'i' ( uniform mediump int) -0:? 'gl_FragCoord' ( gl_FragCoord highp 4-component vector of float FragCoord) -0:? 'gl_FragDepth' ( gl_FragDepth highp float FragDepth) -0:? 'inf' ( smooth in mediump 2-component vector of float) -0:? 'ing' ( smooth in mediump 2-component vector of float) -0:? 'offsets' ( uniform 4-element array of mediump 2-component vector of int) -0:? 'sArray' ( uniform 4-element array of lowp sampler2D) -0:? 'sIndex' ( uniform mediump int) -0:? 'auArray' (layout( binding=0 offset=0) uniform 2-element array of highp atomic_uint) -0:? 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform mediump int i}) -0:? 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer mediump int i}) -0:? 'iArray' ( writeonly uniform 5-element array of highp image2D) -0:? 'constOffsets' ( const 4-element array of mediump 2-component vector of int) -0:? 0 (const int) -0:? 0 (const int) -0:? 0 (const int) -0:? 0 (const int) -0:? 0 (const int) -0:? 0 (const int) -0:? 0 (const int) -0:? 0 (const int) -0:? 'CA1' ( writeonly uniform highp imageCubeArray) -0:? 'CA2' ( writeonly uniform highp iimageCubeArray) -0:? 'CA3' ( writeonly uniform highp uimageCubeArray) -0:? 'CA4' ( uniform highp samplerCubeArray) -0:? 'CA5' ( uniform highp samplerCubeArrayShadow) -0:? 'CA6' ( uniform highp isamplerCubeArray) -0:? 'CA7' ( uniform highp usamplerCubeArray) -0:? 'gl_SampleMaskIn' ( flat in 1-element array of highp int SampleMaskIn) -0:? 'gl_SampleMask' ( out 1-element array of highp int SampleMaskIn) -0:? 'im2Df' (layout( r32f) uniform highp image2D) -0:? 'im2Du' (layout( r32ui) uniform highp uimage2D) -0:? 'im2Di' (layout( r32i) uniform highp iimage2D) -0:? 'P' ( uniform mediump 2-component vector of int) -0:? 'badIm2Df' (layout( rgba32f) uniform highp image2D) -0:? 'badIm2Du' (layout( rgba8ui) uniform highp uimage2D) -0:? 'badIm2Di' (layout( rgba16i) uniform highp iimage2D) -0:? 'colorCentroidBad' ( centroid out mediump 4-component vector of float) -0:? 'colorBadFlat' ( flat out mediump 4-component vector of float) -0:? 'colorBadSmooth' ( smooth out mediump 4-component vector of float) -0:? 'colorBadNo' ( noperspective out mediump 4-component vector of float) -0:? 'colorfc' ( centroid flat in mediump 2-component vector of float) -0:? 'scalarIn' ( smooth in mediump float) -0:? 'colorSampIn' ( smooth sample in mediump 4-component vector of float) -0:? 'colorSampleBad' ( sample out mediump 4-component vector of float) -0:? 'colorfsi' ( flat sample in mediump 4-component vector of float) -0:? 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) -0:? 'badout' ( out mediump 4-component vector of float) -0:? 'outAA' ( out 2-element array of 2-element array of mediump 4-component vector of float) - diff --git a/deps/glslang/Test/baseResults/320.geom.out b/deps/glslang/Test/baseResults/320.geom.out deleted file mode 100644 index cdaacb91..00000000 --- a/deps/glslang/Test/baseResults/320.geom.out +++ /dev/null @@ -1,251 +0,0 @@ -320.geom -ERROR: 0:19: 'fromVertex' : block instance name redefinition -ERROR: 0:23: 'fromVertex' : redefinition -ERROR: 0:25: 'fooC' : block instance name redefinition -ERROR: 0:33: 'EmitStreamVertex' : no matching overloaded function found -ERROR: 0:34: 'EndStreamPrimitive' : no matching overloaded function found -ERROR: 0:37: 'gl_ClipDistance' : undeclared identifier -ERROR: 0:37: 'gl_ClipDistance' : left of '[' is not of type array, matrix, or vector -ERROR: 0:38: 'gl_ClipDistance' : no such field in structure 'gl_in' -ERROR: 0:38: 'expression' : left of '[' is not of type array, matrix, or vector -ERROR: 0:37: 'assign' : l-value required (can't modify a const) -ERROR: 0:45: 'selecting output stream' : not supported with this profile: es -ERROR: 0:52: 'max_vertices' : too large, must be less than gl_MaxGeometryOutputVertices -ERROR: 0:52: 'max_vertices' : cannot change previously set layout value -ERROR: 0:53: 'max_vertices' : can only apply to a standalone qualifier -ERROR: 0:58: 'points' : cannot change previously set output primitive -ERROR: 0:59: 'points' : cannot change previously set output primitive -ERROR: 0:60: 'triangle_strip' : cannot apply to input -ERROR: 0:61: 'triangle_strip' : cannot apply to: uniform -ERROR: 0:62: 'triangle_strip' : can only apply to a standalone qualifier -ERROR: 0:63: 'triangle_strip' : can only apply to a standalone qualifier -ERROR: 0:64: 'invocations' : can only apply to a standalone qualifier -ERROR: 0:66: 'invocations' : can only apply to a standalone qualifier -ERROR: 0:67: 'max_vertices' : can only apply to a standalone qualifier -ERROR: 0:68: 'triangle_strip' : can only apply to a standalone qualifier -ERROR: 0:71: 'lines' : cannot apply to 'out' -ERROR: 0:73: 'triangles' : cannot change previously set input primitive -ERROR: 0:74: 'triangles_adjacency' : cannot change previously set input primitive -ERROR: 0:106: 'gl_ViewportIndex' : undeclared identifier -ERROR: 0:107: 'gl_MaxViewports' : undeclared identifier -ERROR: 0:113: 'lines_adjacency' : inconsistent input primitive for array size of explArrayBad -ERROR: 0:114: 'in' : type must be an array: nonArrayed -ERROR: 0:122: 'component' : not supported with this profile: es -ERROR: 0:126: 'gl_MaxGeometryVaryingComponents' : undeclared identifier -ERROR: 0:127: 'gl_VerticesIn' : undeclared identifier -ERROR: 0:132: 'gl_PointSize' : required extension not requested: Possible extensions include: -GL_EXT_geometry_point_size -GL_OES_geometry_point_size -ERROR: 0:133: 'gl_PointSize' : required extension not requested: Possible extensions include: -GL_EXT_geometry_point_size -GL_OES_geometry_point_size -ERROR: 36 compilation errors. No code generated. - - -Shader version: 320 -invocations = 4 -max_vertices = 200 -input primitive = lines_adjacency -output primitive = triangle_strip -ERROR: node is still EOpNull! -0:29 Function Definition: main( ( global void) -0:29 Function Parameters: -0:31 Sequence -0:31 EmitVertex ( global void) -0:32 EndPrimitive ( global void) -0:33 Constant: -0:33 0.000000 -0:34 Constant: -0:34 0.000000 -0:36 move second child to first child ( temp mediump 3-component vector of float) -0:36 color: direct index for structure (layout( stream=0) out mediump 3-component vector of float) -0:36 'anon@0' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color}) -0:36 Constant: -0:36 0 (const uint) -0:36 color: direct index for structure ( in mediump 3-component vector of float) -0:36 direct index ( temp block{ in mediump 3-component vector of float color}) -0:36 'fromV' ( in 4-element array of block{ in mediump 3-component vector of float color}) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 0 (const int) -0:37 move second child to first child ( temp float) -0:37 Constant: -0:37 0.000000 -0:38 Constant: -0:38 0.000000 -0:39 move second child to first child ( temp highp 4-component vector of float) -0:39 gl_Position: direct index for structure (layout( stream=0) gl_Position highp 4-component vector of float Position) -0:39 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position highp 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize highp float PointSize gl_PointSize}) -0:39 Constant: -0:39 0 (const uint) -0:39 gl_Position: direct index for structure ( in highp 4-component vector of float Position) -0:39 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) -0:39 'gl_in' ( in 4-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 0 (const int) -0:41 move second child to first child ( temp highp int) -0:41 'gl_PrimitiveID' (layout( stream=0) out highp int PrimitiveID) -0:41 'gl_PrimitiveIDIn' ( in highp int PrimitiveID) -0:42 move second child to first child ( temp highp int) -0:42 'gl_Layer' (layout( stream=0) out highp int Layer) -0:42 Constant: -0:42 2 (const int) -0:53 Function Definition: foo(i1; ( global void) -0:53 Function Parameters: -0:53 'a' ( in highp int) -0:55 Sequence -0:55 move second child to first child ( temp mediump 4-component vector of float) -0:55 a: direct index for structure (layout( stream=0) out mediump 4-component vector of float) -0:55 'ouuaa6' (layout( stream=0) out block{layout( stream=0) out mediump 4-component vector of float a}) -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1.000000 -0:55 1.000000 -0:55 1.000000 -0:55 1.000000 -0:104 Function Definition: fooe1( ( global void) -0:104 Function Parameters: -0:106 Sequence -0:106 'gl_ViewportIndex' ( temp float) -0:107 'gl_MaxViewports' ( temp float) -0:108 Constant: -0:108 4 (const int) -0:109 Sequence -0:109 move second child to first child ( temp highp int) -0:109 'inv' ( temp highp int) -0:109 'gl_InvocationID' ( in highp int InvocationID) -0:124 Function Definition: notHere( ( global void) -0:124 Function Parameters: -0:126 Sequence -0:126 'gl_MaxGeometryVaryingComponents' ( temp float) -0:127 'gl_VerticesIn' ( temp float) -0:130 Function Definition: pointSize2( ( global void) -0:130 Function Parameters: -0:132 Sequence -0:132 Sequence -0:132 move second child to first child ( temp highp float) -0:132 'ps' ( temp highp float) -0:132 gl_PointSize: direct index for structure ( in highp float PointSize) -0:132 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) -0:132 'gl_in' ( in 4-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) -0:132 Constant: -0:132 3 (const int) -0:132 Constant: -0:132 1 (const int) -0:133 move second child to first child ( temp highp float) -0:133 gl_PointSize: direct index for structure (layout( stream=0) gl_PointSize highp float PointSize) -0:133 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position highp 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize highp float PointSize gl_PointSize}) -0:133 Constant: -0:133 1 (const uint) -0:133 'ps' ( temp highp float) -0:? Linker Objects -0:? 'fromV' ( in 4-element array of block{ in mediump 3-component vector of float color}) -0:? 'nonBlockUnsized' ( in 4-element array of mediump 4-component vector of float) -0:? 'toF' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color}) -0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color}) -0:? 'gl_in' ( in 4-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) -0:? 'ov4' (layout( stream=4) out mediump 4-component vector of float) -0:? 'ouuaa6' (layout( stream=0) out block{layout( stream=0) out mediump 4-component vector of float a}) -0:? 'badv4' (layout( stream=0) out mediump 4-component vector of float) -0:? 'bad2v4' ( in 4-element array of mediump 4-component vector of float) -0:? 'anon@1' (layout( stream=0) out block{layout( stream=0) out highp int a}) -0:? 'outbi' (layout( stream=0) out block{layout( stream=0) out highp int a, layout( stream=0) out highp int b, layout( stream=0) out highp int c}) -0:? 'insn' ( in 4-element array of block{ in highp int a15}) -0:? 'anon@2' (layout( stream=0) out block{layout( stream=0) out mediump float f15}) -0:? 'anon@3' (layout( column_major shared) uniform block{layout( column_major shared) uniform bool b15}) -0:? 'summ' ( const highp int) -0:? 2752 (const int) -0:? 'explArray' ( in 4-element array of mediump 4-component vector of float) -0:? 'explArrayBad' ( in 5-element array of mediump 4-component vector of float) -0:? 'nonArrayed' ( in mediump 4-component vector of float) -0:? 'myColor1' (layout( stream=0) flat out mediump 3-component vector of float) -0:? 'myColor2' (layout( stream=0) centroid out mediump 3-component vector of float) -0:? 'centr' ( centroid in 4-element array of mediump 3-component vector of float) -0:? 'perSampleColor' (layout( stream=0) sample out mediump 4-component vector of float) -0:? 'comp' (layout( location=7 component=2) in 4-element array of mediump float) - - -Linked geometry stage: - - -Shader version: 320 -invocations = 4 -max_vertices = 200 -input primitive = lines_adjacency -output primitive = triangle_strip -ERROR: node is still EOpNull! -0:29 Function Definition: main( ( global void) -0:29 Function Parameters: -0:31 Sequence -0:31 EmitVertex ( global void) -0:32 EndPrimitive ( global void) -0:33 Constant: -0:33 0.000000 -0:34 Constant: -0:34 0.000000 -0:36 move second child to first child ( temp mediump 3-component vector of float) -0:36 color: direct index for structure (layout( stream=0) out mediump 3-component vector of float) -0:36 'anon@0' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color}) -0:36 Constant: -0:36 0 (const uint) -0:36 color: direct index for structure ( in mediump 3-component vector of float) -0:36 direct index ( temp block{ in mediump 3-component vector of float color}) -0:36 'fromV' ( in 4-element array of block{ in mediump 3-component vector of float color}) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 0 (const int) -0:37 move second child to first child ( temp float) -0:37 Constant: -0:37 0.000000 -0:38 Constant: -0:38 0.000000 -0:39 move second child to first child ( temp highp 4-component vector of float) -0:39 gl_Position: direct index for structure (layout( stream=0) gl_Position highp 4-component vector of float Position) -0:39 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position highp 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize highp float PointSize gl_PointSize}) -0:39 Constant: -0:39 0 (const uint) -0:39 gl_Position: direct index for structure ( in highp 4-component vector of float Position) -0:39 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) -0:39 'gl_in' ( in 4-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 0 (const int) -0:41 move second child to first child ( temp highp int) -0:41 'gl_PrimitiveID' (layout( stream=0) out highp int PrimitiveID) -0:41 'gl_PrimitiveIDIn' ( in highp int PrimitiveID) -0:42 move second child to first child ( temp highp int) -0:42 'gl_Layer' (layout( stream=0) out highp int Layer) -0:42 Constant: -0:42 2 (const int) -0:? Linker Objects -0:? 'fromV' ( in 4-element array of block{ in mediump 3-component vector of float color}) -0:? 'nonBlockUnsized' ( in 4-element array of mediump 4-component vector of float) -0:? 'toF' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color}) -0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color}) -0:? 'gl_in' ( in 4-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) -0:? 'ov4' (layout( stream=4) out mediump 4-component vector of float) -0:? 'ouuaa6' (layout( stream=0) out block{layout( stream=0) out mediump 4-component vector of float a}) -0:? 'badv4' (layout( stream=0) out mediump 4-component vector of float) -0:? 'bad2v4' ( in 4-element array of mediump 4-component vector of float) -0:? 'anon@1' (layout( stream=0) out block{layout( stream=0) out highp int a}) -0:? 'outbi' (layout( stream=0) out block{layout( stream=0) out highp int a, layout( stream=0) out highp int b, layout( stream=0) out highp int c}) -0:? 'insn' ( in 4-element array of block{ in highp int a15}) -0:? 'anon@2' (layout( stream=0) out block{layout( stream=0) out mediump float f15}) -0:? 'anon@3' (layout( column_major shared) uniform block{layout( column_major shared) uniform bool b15}) -0:? 'summ' ( const highp int) -0:? 2752 (const int) -0:? 'explArray' ( in 4-element array of mediump 4-component vector of float) -0:? 'explArrayBad' ( in 5-element array of mediump 4-component vector of float) -0:? 'nonArrayed' ( in mediump 4-component vector of float) -0:? 'myColor1' (layout( stream=0) flat out mediump 3-component vector of float) -0:? 'myColor2' (layout( stream=0) centroid out mediump 3-component vector of float) -0:? 'centr' ( centroid in 4-element array of mediump 3-component vector of float) -0:? 'perSampleColor' (layout( stream=0) sample out mediump 4-component vector of float) -0:? 'comp' (layout( location=7 component=2) in 4-element array of mediump float) - diff --git a/deps/glslang/Test/baseResults/320.tesc.out b/deps/glslang/Test/baseResults/320.tesc.out deleted file mode 100644 index 67848d9b..00000000 --- a/deps/glslang/Test/baseResults/320.tesc.out +++ /dev/null @@ -1,565 +0,0 @@ -320.tesc -ERROR: 0:6: 'quads' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) -ERROR: 0:7: 'ccw' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) -ERROR: 0:8: 'fractional_even_spacing' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) -ERROR: 0:10: 'patch' : can only use on output in tessellation-control shader -ERROR: 0:24: 'gl_PointSize' : required extension not requested: Possible extensions include: -GL_EXT_tessellation_point_size -GL_OES_tessellation_point_size -ERROR: 0:25: 'gl_ClipDistance' : no such field in structure 'gl_in' -ERROR: 0:25: 'expression' : left of '[' is not of type array, matrix, or vector -ERROR: 0:32: 'gl_PointSize' : required extension not requested: Possible extensions include: -GL_EXT_tessellation_point_size -GL_OES_tessellation_point_size -ERROR: 0:33: 'gl_ClipDistance' : no such field in structure 'gl_out' -ERROR: 0:33: 'expression' : left of '[' is not of type array, matrix, or vector -ERROR: 0:33: 'assign' : l-value required (can't modify a const) -ERROR: 0:39: '' : tessellation control barrier() cannot be placed within flow control -ERROR: 0:41: '' : tessellation control barrier() cannot be placed within flow control -ERROR: 0:46: '' : tessellation control barrier() cannot be placed within flow control -ERROR: 0:51: '' : tessellation control barrier() cannot be placed within flow control -ERROR: 0:54: '' : tessellation control barrier() cannot be placed within flow control -ERROR: 0:61: '' : tessellation control barrier() cannot be placed after a return from main() -ERROR: 0:64: 'vertices' : can only apply to 'out' -ERROR: 0:65: 'vertices' : cannot change previously set layout value -ERROR: 0:69: '[' : array index out of range '4' -ERROR: 0:71: '' : tessellation control barrier() must be in main() -ERROR: 0:74: 'in' : type must be an array: ina -ERROR: 0:76: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized -ERROR: 0:78: '' : array size required -ERROR: 0:84: 'location' : overlapping use of location 4 -ERROR: 0:88: 'location' : overlapping use of location 4 -ERROR: 0:98: 'vertices' : can only apply to a standalone qualifier -ERROR: 0:99: 'vertices' : inconsistent output number of vertices for array size of misSized -ERROR: 0:104: 'gl_PointSize' : required extension not requested: Possible extensions include: -GL_EXT_tessellation_point_size -GL_OES_tessellation_point_size -ERROR: 0:105: 'gl_PointSize' : required extension not requested: Possible extensions include: -GL_EXT_tessellation_point_size -GL_OES_tessellation_point_size -ERROR: 0:121: 'gl_BoundingBoxEXT' : required extension not requested: GL_EXT_primitive_bounding_box -ERROR: 0:122: 'gl_BoundingBoxOES' : required extension not requested: GL_OES_primitive_bounding_box -ERROR: 0:125: '[' : array index out of range '2' -ERROR: 0:137: '' : array size required -ERROR: 0:153: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID -ERROR: 0:154: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID -ERROR: 0:157: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID -ERROR: 37 compilation errors. No code generated. - - -Shader version: 320 -Requested GL_ARB_separate_shader_objects -Requested GL_EXT_primitive_bounding_box -Requested GL_OES_primitive_bounding_box -vertices = 4 -ERROR: node is still EOpNull! -0:13 Function Definition: main( ( global void) -0:13 Function Parameters: -0:15 Sequence -0:15 Barrier ( global void) -0:17 Sequence -0:17 move second child to first child ( temp highp int) -0:17 'a' ( temp highp int) -0:17 Constant: -0:17 5392 (const int) -0:23 Sequence -0:23 move second child to first child ( temp highp 4-component vector of float) -0:23 'p' ( temp highp 4-component vector of float) -0:23 gl_Position: direct index for structure ( in highp 4-component vector of float Position) -0:23 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV gl_PositionPerViewNV}) -0:23 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV gl_PositionPerViewNV}) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 0 (const int) -0:24 Sequence -0:24 move second child to first child ( temp highp float) -0:24 'ps' ( temp highp float) -0:24 gl_PointSize: direct index for structure ( in highp float PointSize) -0:24 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV gl_PositionPerViewNV}) -0:24 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV gl_PositionPerViewNV}) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 1 (const int) -0:25 Sequence -0:25 move second child to first child ( temp highp float) -0:25 'cd' ( temp highp float) -0:25 Constant: -0:25 0.000000 -0:27 Sequence -0:27 move second child to first child ( temp highp int) -0:27 'pvi' ( temp highp int) -0:27 'gl_PatchVerticesIn' ( in highp int PatchVertices) -0:28 Sequence -0:28 move second child to first child ( temp highp int) -0:28 'pid' ( temp highp int) -0:28 'gl_PrimitiveID' ( in highp int PrimitiveID) -0:29 Sequence -0:29 move second child to first child ( temp highp int) -0:29 'iid' ( temp highp int) -0:29 'gl_InvocationID' ( in highp int InvocationID) -0:31 move second child to first child ( temp highp 4-component vector of float) -0:31 gl_Position: direct index for structure ( out highp 4-component vector of float Position) -0:31 indirect index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) -0:31 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) -0:31 'gl_InvocationID' ( in highp int InvocationID) -0:31 Constant: -0:31 0 (const int) -0:31 'p' ( temp highp 4-component vector of float) -0:32 move second child to first child ( temp highp float) -0:32 gl_PointSize: direct index for structure ( out highp float PointSize) -0:32 indirect index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) -0:32 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) -0:32 'gl_InvocationID' ( in highp int InvocationID) -0:32 Constant: -0:32 1 (const int) -0:32 'ps' ( temp highp float) -0:33 move second child to first child ( temp highp float) -0:33 Constant: -0:33 0.000000 -0:33 'cd' ( temp highp float) -0:35 move second child to first child ( temp highp float) -0:35 direct index ( patch temp highp float TessLevelOuter) -0:35 'gl_TessLevelOuter' ( patch out 4-element array of highp float TessLevelOuter) -0:35 Constant: -0:35 3 (const int) -0:35 Constant: -0:35 3.200000 -0:36 move second child to first child ( temp highp float) -0:36 direct index ( patch temp highp float TessLevelInner) -0:36 'gl_TessLevelInner' ( patch out 2-element array of highp float TessLevelInner) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 1.300000 -0:38 Test condition and select ( temp void) -0:38 Condition -0:38 Compare Greater Than ( temp bool) -0:38 'a' ( temp highp int) -0:38 Constant: -0:38 10 (const int) -0:38 true case -0:39 Barrier ( global void) -0:38 false case -0:41 Barrier ( global void) -0:43 Barrier ( global void) -0:47 Loop with condition not tested first -0:47 Loop Condition -0:47 Compare Greater Than ( temp bool) -0:47 'a' ( temp highp int) -0:47 Constant: -0:47 10 (const int) -0:47 Loop Body -0:46 Sequence -0:46 Barrier ( global void) -0:49 switch -0:49 condition -0:49 'a' ( temp highp int) -0:49 body -0:49 Sequence -0:50 default: -0:? Sequence -0:51 Barrier ( global void) -0:52 Branch: Break -0:54 Test condition and select ( temp highp int) -0:54 Condition -0:54 Compare Less Than ( temp bool) -0:54 'a' ( temp highp int) -0:54 Constant: -0:54 12 (const int) -0:54 true case -0:54 'a' ( temp highp int) -0:54 false case -0:54 Comma ( temp highp int) -0:54 Barrier ( global void) -0:54 'a' ( temp highp int) -0:56 Sequence -0:56 Barrier ( global void) -0:59 Branch: Return -0:61 Barrier ( global void) -0:67 Function Definition: foo( ( global void) -0:67 Function Parameters: -0:69 Sequence -0:69 gl_Position: direct index for structure ( out highp 4-component vector of float Position) -0:69 direct index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) -0:69 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) -0:69 Constant: -0:69 4 (const int) -0:69 Constant: -0:69 0 (const int) -0:71 Barrier ( global void) -0:102 Function Definition: pointSize2( ( global void) -0:102 Function Parameters: -0:104 Sequence -0:104 Sequence -0:104 move second child to first child ( temp highp float) -0:104 'ps' ( temp highp float) -0:104 gl_PointSize: direct index for structure ( in highp float PointSize) -0:104 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV gl_PositionPerViewNV}) -0:104 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV gl_PositionPerViewNV}) -0:104 Constant: -0:104 1 (const int) -0:104 Constant: -0:104 1 (const int) -0:105 move second child to first child ( temp highp float) -0:105 gl_PointSize: direct index for structure ( out highp float PointSize) -0:105 indirect index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) -0:105 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) -0:105 'gl_InvocationID' ( in highp int InvocationID) -0:105 Constant: -0:105 1 (const int) -0:105 'ps' ( temp highp float) -0:110 Function Definition: goodfoop( ( global void) -0:110 Function Parameters: -0:? Sequence -0:114 multiply second child into first child ( temp highp 3-component vector of float) -0:114 'pv3' ( noContraction temp highp 3-component vector of float) -0:114 'pv3' ( noContraction temp highp 3-component vector of float) -0:115 move second child to first child ( temp highp 3-component vector of float) -0:115 'pv3' ( noContraction temp highp 3-component vector of float) -0:115 fma ( global highp 3-component vector of float) -0:115 'pv3' ( noContraction temp highp 3-component vector of float) -0:115 'pv3' ( noContraction temp highp 3-component vector of float) -0:115 'pv3' ( noContraction temp highp 3-component vector of float) -0:116 move second child to first child ( temp highp float) -0:116 'd' ( noContraction temp highp float) -0:116 fma ( global highp float) -0:116 'd' ( noContraction temp highp float) -0:116 'd' ( noContraction temp highp float) -0:116 'd' ( noContraction temp highp float) -0:119 Function Definition: bb( ( global void) -0:119 Function Parameters: -0:121 Sequence -0:121 move second child to first child ( temp highp 4-component vector of float) -0:121 direct index ( patch temp highp 4-component vector of float BoundingBox) -0:121 'gl_BoundingBoxEXT' ( patch out 2-element array of highp 4-component vector of float BoundingBox) -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 0.000000 -0:121 0.000000 -0:121 0.000000 -0:121 0.000000 -0:122 move second child to first child ( temp highp 4-component vector of float) -0:122 direct index ( patch temp highp 4-component vector of float BoundingBox) -0:122 'gl_BoundingBoxOES' ( patch out 2-element array of highp 4-component vector of float BoundingBox) -0:122 Constant: -0:122 0 (const int) -0:122 Constant: -0:122 0.000000 -0:122 0.000000 -0:122 0.000000 -0:122 0.000000 -0:123 move second child to first child ( temp highp 4-component vector of float) -0:123 direct index ( patch temp highp 4-component vector of float BoundingBox) -0:123 'gl_BoundingBox' ( patch out 2-element array of highp 4-component vector of float BoundingBox) -0:123 Constant: -0:123 0 (const int) -0:123 Constant: -0:123 1.000000 -0:123 1.000000 -0:123 1.000000 -0:123 1.000000 -0:124 move second child to first child ( temp highp 4-component vector of float) -0:124 direct index ( patch temp highp 4-component vector of float BoundingBox) -0:124 'gl_BoundingBox' ( patch out 2-element array of highp 4-component vector of float BoundingBox) -0:124 Constant: -0:124 1 (const int) -0:124 Constant: -0:124 1.000000 -0:124 1.000000 -0:124 1.000000 -0:124 1.000000 -0:125 move second child to first child ( temp highp 4-component vector of float) -0:125 direct index ( patch temp highp 4-component vector of float BoundingBox) -0:125 'gl_BoundingBox' ( patch out 2-element array of highp 4-component vector of float BoundingBox) -0:125 Constant: -0:125 2 (const int) -0:125 Constant: -0:125 2.000000 -0:125 2.000000 -0:125 2.000000 -0:125 2.000000 -0:131 Function Definition: bbext( ( global void) -0:131 Function Parameters: -0:133 Sequence -0:133 move second child to first child ( temp highp 4-component vector of float) -0:133 direct index ( patch temp highp 4-component vector of float BoundingBox) -0:133 'gl_BoundingBoxEXT' ( patch out 2-element array of highp 4-component vector of float BoundingBox) -0:133 Constant: -0:133 1 (const int) -0:133 Constant: -0:133 0.000000 -0:133 0.000000 -0:133 0.000000 -0:133 0.000000 -0:134 move second child to first child ( temp highp 4-component vector of float) -0:134 direct index ( patch temp highp 4-component vector of float BoundingBox) -0:134 'gl_BoundingBoxOES' ( patch out 2-element array of highp 4-component vector of float BoundingBox) -0:134 Constant: -0:134 1 (const int) -0:134 Constant: -0:134 0.000000 -0:134 0.000000 -0:134 0.000000 -0:134 0.000000 -0:145 Function Definition: outputtingOutparam(i1; ( global void) -0:145 Function Parameters: -0:145 'a' ( out highp int) -0:147 Sequence -0:147 move second child to first child ( temp highp int) -0:147 'a' ( out highp int) -0:147 Constant: -0:147 2 (const int) -0:150 Function Definition: outputting( ( global void) -0:150 Function Parameters: -0:152 Sequence -0:152 move second child to first child ( temp highp int) -0:152 indirect index ( temp highp int) -0:152 'outa' ( out 4-element array of highp int) -0:152 'gl_InvocationID' ( in highp int InvocationID) -0:152 Constant: -0:152 2 (const int) -0:153 move second child to first child ( temp highp int) -0:153 direct index ( temp highp int) -0:153 'outa' ( out 4-element array of highp int) -0:153 Constant: -0:153 1 (const int) -0:153 Constant: -0:153 2 (const int) -0:154 move second child to first child ( temp highp 4-component vector of float) -0:154 gl_Position: direct index for structure ( out highp 4-component vector of float Position) -0:154 direct index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) -0:154 '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:154 Constant: -0:154 0 (const int) -0:154 Constant: -0:154 0 (const int) -0:154 Constant: -0:154 1.000000 -0:154 1.000000 -0:154 1.000000 -0:154 1.000000 -0:155 direct index ( temp highp int) -0:155 'outa' ( out 4-element array of highp int) -0:155 Constant: -0:155 1 (const int) -0:156 direct index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) -0:156 '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:156 Constant: -0:156 0 (const int) -0:157 Function Call: outputtingOutparam(i1; ( global void) -0:157 direct index ( temp highp int) -0:157 'outa' ( out 4-element array of highp int) -0:157 Constant: -0:157 0 (const int) -0:158 Function Call: outputtingOutparam(i1; ( global void) -0:158 indirect index ( temp highp int) -0:158 'outa' ( out 4-element array of highp int) -0:158 'gl_InvocationID' ( in highp int InvocationID) -0:159 move second child to first child ( temp highp float) -0:159 f: direct index for structure ( out highp float) -0:159 direct index ( patch temp block{ out highp float f}) -0:159 'patchIName' ( patch out 4-element array of block{ out highp float f}) -0:159 Constant: -0:159 1 (const int) -0:159 Constant: -0:159 0 (const int) -0:159 Constant: -0:159 3.140000 -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:? Linker Objects -0:? 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) -0:? 'outa' ( out 4-element array of highp int) -0:? 'patchIn' ( patch in highp 4-component vector of float) -0:? 'patchOut' ( patch out highp 4-component vector of float) -0:? 'ina' ( in highp 2-component vector of float) -0:? 'inb' ( in 32-element array of highp 2-component vector of float) -0:? 'inc' ( in 32-element array of highp 2-component vector of float) -0:? 'ind' ( in 32-element array of highp 2-component vector of float) -0:? 'implA' ( patch out unsized 1-element array of highp float) -0:? 'ivla' (layout( location=3) in 32-element array of highp 4-component vector of float) -0:? 'ivlb' (layout( location=4) in 32-element array of highp 4-component vector of float) -0:? 'ivlc' (layout( location=4) in 32-element array of highp 4-component vector of float) -0:? 'ovla' (layout( location=3) out 4-element array of highp 4-component vector of float) -0:? 'ovlb' (layout( location=4) out 4-element array of highp 4-component vector of float) -0:? 'ovlc' (layout( location=4) out 4-element array of highp 4-component vector of float) -0:? 'pinbi' ( patch out block{ out highp int a}) -0:? 'myColor2' ( centroid out 4-element array of highp 3-component vector of float) -0:? 'centr' ( centroid in 32-element array of highp 3-component vector of float) -0:? 'perSampleColor' ( sample out 4-element array of highp 4-component vector of float) -0:? 'badlay' ( out 4-element array of highp float) -0:? 'misSized' ( out 5-element array of highp float) -0:? 'okaySize' ( out 4-element array of highp float) -0:? 'pv3' ( noContraction temp highp 3-component vector of float) -0:? 'badpatchIName' ( patch out unsized 1-element array of block{ out highp float f}) -0:? 'patchIName' ( patch out 4-element array of block{ out highp float f}) - - -Linked tessellation control stage: - - -Shader version: 320 -Requested GL_ARB_separate_shader_objects -Requested GL_EXT_primitive_bounding_box -Requested GL_OES_primitive_bounding_box -vertices = 4 -ERROR: node is still EOpNull! -0:13 Function Definition: main( ( global void) -0:13 Function Parameters: -0:15 Sequence -0:15 Barrier ( global void) -0:17 Sequence -0:17 move second child to first child ( temp highp int) -0:17 'a' ( temp highp int) -0:17 Constant: -0:17 5392 (const int) -0:23 Sequence -0:23 move second child to first child ( temp highp 4-component vector of float) -0:23 'p' ( temp highp 4-component vector of float) -0:23 gl_Position: direct index for structure ( in highp 4-component vector of float Position) -0:23 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float PositionPerViewNV gl_PositionPerViewNV}) -0:23 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float PositionPerViewNV gl_PositionPerViewNV}) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 0 (const int) -0:24 Sequence -0:24 move second child to first child ( temp highp float) -0:24 'ps' ( temp highp float) -0:24 gl_PointSize: direct index for structure ( in highp float PointSize) -0:24 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float PositionPerViewNV gl_PositionPerViewNV}) -0:24 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float PositionPerViewNV gl_PositionPerViewNV}) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 1 (const int) -0:25 Sequence -0:25 move second child to first child ( temp highp float) -0:25 'cd' ( temp highp float) -0:25 Constant: -0:25 0.000000 -0:27 Sequence -0:27 move second child to first child ( temp highp int) -0:27 'pvi' ( temp highp int) -0:27 'gl_PatchVerticesIn' ( in highp int PatchVertices) -0:28 Sequence -0:28 move second child to first child ( temp highp int) -0:28 'pid' ( temp highp int) -0:28 'gl_PrimitiveID' ( in highp int PrimitiveID) -0:29 Sequence -0:29 move second child to first child ( temp highp int) -0:29 'iid' ( temp highp int) -0:29 'gl_InvocationID' ( in highp int InvocationID) -0:31 move second child to first child ( temp highp 4-component vector of float) -0:31 gl_Position: direct index for structure ( out highp 4-component vector of float Position) -0:31 indirect index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) -0:31 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) -0:31 'gl_InvocationID' ( in highp int InvocationID) -0:31 Constant: -0:31 0 (const int) -0:31 'p' ( temp highp 4-component vector of float) -0:32 move second child to first child ( temp highp float) -0:32 gl_PointSize: direct index for structure ( out highp float PointSize) -0:32 indirect index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) -0:32 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) -0:32 'gl_InvocationID' ( in highp int InvocationID) -0:32 Constant: -0:32 1 (const int) -0:32 'ps' ( temp highp float) -0:33 move second child to first child ( temp highp float) -0:33 Constant: -0:33 0.000000 -0:33 'cd' ( temp highp float) -0:35 move second child to first child ( temp highp float) -0:35 direct index ( patch temp highp float TessLevelOuter) -0:35 'gl_TessLevelOuter' ( patch out 4-element array of highp float TessLevelOuter) -0:35 Constant: -0:35 3 (const int) -0:35 Constant: -0:35 3.200000 -0:36 move second child to first child ( temp highp float) -0:36 direct index ( patch temp highp float TessLevelInner) -0:36 'gl_TessLevelInner' ( patch out 2-element array of highp float TessLevelInner) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 1.300000 -0:38 Test condition and select ( temp void) -0:38 Condition -0:38 Compare Greater Than ( temp bool) -0:38 'a' ( temp highp int) -0:38 Constant: -0:38 10 (const int) -0:38 true case -0:39 Barrier ( global void) -0:38 false case -0:41 Barrier ( global void) -0:43 Barrier ( global void) -0:47 Loop with condition not tested first -0:47 Loop Condition -0:47 Compare Greater Than ( temp bool) -0:47 'a' ( temp highp int) -0:47 Constant: -0:47 10 (const int) -0:47 Loop Body -0:46 Sequence -0:46 Barrier ( global void) -0:49 switch -0:49 condition -0:49 'a' ( temp highp int) -0:49 body -0:49 Sequence -0:50 default: -0:? Sequence -0:51 Barrier ( global void) -0:52 Branch: Break -0:54 Test condition and select ( temp highp int) -0:54 Condition -0:54 Compare Less Than ( temp bool) -0:54 'a' ( temp highp int) -0:54 Constant: -0:54 12 (const int) -0:54 true case -0:54 'a' ( temp highp int) -0:54 false case -0:54 Comma ( temp highp int) -0:54 Barrier ( global void) -0:54 'a' ( temp highp int) -0:56 Sequence -0:56 Barrier ( global void) -0:59 Branch: Return -0:61 Barrier ( global void) -0:? Linker Objects -0:? 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) -0:? 'outa' ( out 4-element array of highp int) -0:? 'patchIn' ( patch in highp 4-component vector of float) -0:? 'patchOut' ( patch out highp 4-component vector of float) -0:? 'ina' ( in highp 2-component vector of float) -0:? 'inb' ( in 32-element array of highp 2-component vector of float) -0:? 'inc' ( in 32-element array of highp 2-component vector of float) -0:? 'ind' ( in 32-element array of highp 2-component vector of float) -0:? 'implA' ( patch out 1-element array of highp float) -0:? 'ivla' (layout( location=3) in 32-element array of highp 4-component vector of float) -0:? 'ivlb' (layout( location=4) in 32-element array of highp 4-component vector of float) -0:? 'ivlc' (layout( location=4) in 32-element array of highp 4-component vector of float) -0:? 'ovla' (layout( location=3) out 4-element array of highp 4-component vector of float) -0:? 'ovlb' (layout( location=4) out 4-element array of highp 4-component vector of float) -0:? 'ovlc' (layout( location=4) out 4-element array of highp 4-component vector of float) -0:? 'pinbi' ( patch out block{ out highp int a}) -0:? 'myColor2' ( centroid out 4-element array of highp 3-component vector of float) -0:? 'centr' ( centroid in 32-element array of highp 3-component vector of float) -0:? 'perSampleColor' ( sample out 4-element array of highp 4-component vector of float) -0:? 'badlay' ( out 4-element array of highp float) -0:? 'misSized' ( out 5-element array of highp float) -0:? 'okaySize' ( out 4-element array of highp float) -0:? 'pv3' ( noContraction temp highp 3-component vector of float) -0:? 'badpatchIName' ( patch out 1-element array of block{ out highp float f}) -0:? 'patchIName' ( patch out 4-element array of block{ out highp float f}) - diff --git a/deps/glslang/Test/baseResults/320.tese.out b/deps/glslang/Test/baseResults/320.tese.out deleted file mode 100644 index ba51b9c8..00000000 --- a/deps/glslang/Test/baseResults/320.tese.out +++ /dev/null @@ -1,275 +0,0 @@ -320.tese -ERROR: 0:3: 'vertices' : there is no such layout identifier for this stage taking an assigned value -ERROR: 0:5: 'triangles' : cannot change previously set input primitive -ERROR: 0:6: 'isolines' : cannot change previously set input primitive -ERROR: 0:8: 'ccw' : cannot change previously set vertex order -ERROR: 0:12: 'equal_spacing' : cannot change previously set vertex spacing -ERROR: 0:13: 'fractional_even_spacing' : cannot change previously set vertex spacing -ERROR: 0:18: 'patch' : can only use on input in tessellation-evaluation shader -ERROR: 0:22: 'barrier' : no matching overloaded function found -ERROR: 0:33: 'gl_PointSize' : required extension not requested: Possible extensions include: -GL_EXT_tessellation_point_size -GL_OES_tessellation_point_size -ERROR: 0:34: 'gl_ClipDistance' : no such field in structure 'gl_in' -ERROR: 0:34: 'expression' : left of '[' is not of type array, matrix, or vector -ERROR: 0:43: 'gl_PointSize' : required extension not requested: Possible extensions include: -GL_EXT_tessellation_point_size -GL_OES_tessellation_point_size -ERROR: 0:44: 'gl_ClipDistance' : undeclared identifier -ERROR: 0:44: 'gl_ClipDistance' : left of '[' is not of type array, matrix, or vector -ERROR: 0:44: 'assign' : l-value required (can't modify a const) -ERROR: 0:47: 'patch' : cannot use interpolation qualifiers with patch -ERROR: 0:48: 'patch' : cannot use interpolation qualifiers with patch -ERROR: 0:49: 'noperspective' : Reserved word. -ERROR: 0:49: 'noperspective' : not supported for this version or the enabled extensions -ERROR: 0:49: 'patch' : cannot use interpolation qualifiers with patch -ERROR: 0:50: '' : can only have one auxiliary qualifier (centroid, patch, and sample) -ERROR: 0:59: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use -ERROR: 0:64: 'quads' : cannot apply to 'out' -ERROR: 0:64: 'cw' : can only apply to 'in' -ERROR: 0:65: 'triangles' : cannot apply to 'out' -ERROR: 0:66: 'isolines' : cannot apply to 'out' -ERROR: 0:67: 'cw' : can only apply to 'in' -ERROR: 0:68: 'fractional_odd_spacing' : can only apply to 'in' -ERROR: 0:69: 'equal_spacing' : can only apply to 'in' -ERROR: 0:70: 'fractional_even_spacing' : can only apply to 'in' -ERROR: 0:71: 'point_mode' : can only apply to 'in' -ERROR: 0:73: 'in' : type must be an array: ina -ERROR: 0:75: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized -ERROR: 0:78: 'in' : type must be an array: bla -ERROR: 0:86: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized -ERROR: 0:96: 'location' : overlapping use of location 24 -ERROR: 0:99: 'location' : overlapping use of location 24 -ERROR: 0:101: 'gl_TessLevelOuter' : identifiers starting with "gl_" are reserved -ERROR: 0:113: 'gl_BoundingBoxOES' : undeclared identifier -ERROR: 39 compilation errors. No code generated. - - -Shader version: 320 -Requested GL_ARB_separate_shader_objects -input primitive = quads -vertex spacing = fractional_odd_spacing -triangle order = cw -using point mode -ERROR: node is still EOpNull! -0:20 Function Definition: main( ( global void) -0:20 Function Parameters: -0:22 Sequence -0:22 Constant: -0:22 0.000000 -0:24 Sequence -0:24 move second child to first child ( temp highp int) -0:24 'a' ( temp highp int) -0:24 Constant: -0:24 1512 (const int) -0:32 Sequence -0:32 move second child to first child ( temp highp 4-component vector of float) -0:32 'p' ( temp highp 4-component vector of float) -0:32 gl_Position: direct index for structure ( in highp 4-component vector of float Position) -0:32 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV gl_PositionPerViewNV}) -0:32 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV gl_PositionPerViewNV}) -0:32 Constant: -0:32 1 (const int) -0:32 Constant: -0:32 0 (const int) -0:33 Sequence -0:33 move second child to first child ( temp highp float) -0:33 'ps' ( temp highp float) -0:33 gl_PointSize: direct index for structure ( in highp float PointSize) -0:33 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV gl_PositionPerViewNV}) -0:33 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV gl_PositionPerViewNV}) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 1 (const int) -0:34 Sequence -0:34 move second child to first child ( temp highp float) -0:34 'cd' ( temp highp float) -0:34 Constant: -0:34 0.000000 -0:36 Sequence -0:36 move second child to first child ( temp highp int) -0:36 'pvi' ( temp highp int) -0:36 'gl_PatchVerticesIn' ( in highp int PatchVertices) -0:37 Sequence -0:37 move second child to first child ( temp highp int) -0:37 'pid' ( temp highp int) -0:37 'gl_PrimitiveID' ( in highp int PrimitiveID) -0:38 Sequence -0:38 move second child to first child ( temp highp 3-component vector of float) -0:38 'tc' ( temp highp 3-component vector of float) -0:38 'gl_TessCoord' ( in highp 3-component vector of float TessCoord) -0:39 Sequence -0:39 move second child to first child ( temp highp float) -0:39 'tlo' ( temp highp float) -0:39 direct index ( patch temp highp float TessLevelOuter) -0:39 'gl_TessLevelOuter' ( patch in 4-element array of highp float TessLevelOuter) -0:39 Constant: -0:39 3 (const int) -0:40 Sequence -0:40 move second child to first child ( temp highp float) -0:40 'tli' ( temp highp float) -0:40 direct index ( patch temp highp float TessLevelInner) -0:40 'gl_TessLevelInner' ( patch in 2-element array of highp float TessLevelInner) -0:40 Constant: -0:40 1 (const int) -0:42 move second child to first child ( temp highp 4-component vector of float) -0:42 gl_Position: direct index for structure ( gl_Position highp 4-component vector of float Position) -0:42 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize}) -0:42 Constant: -0:42 0 (const uint) -0:42 'p' ( temp highp 4-component vector of float) -0:43 move second child to first child ( temp highp float) -0:43 gl_PointSize: direct index for structure ( gl_PointSize highp float PointSize) -0:43 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize}) -0:43 Constant: -0:43 1 (const uint) -0:43 'ps' ( temp highp float) -0:44 move second child to first child ( temp highp float) -0:44 Constant: -0:44 0.000000 -0:44 'cd' ( temp highp float) -0:111 Function Definition: bbbad( ( global void) -0:111 Function Parameters: -0:113 Sequence -0:113 'gl_BoundingBoxOES' ( temp float) -0:? Linker Objects -0:? 'patchIn' ( patch in highp 4-component vector of float) -0:? 'patchOut' ( patch out highp 4-component vector of float) -0:? 'badp1' ( smooth patch in highp 4-component vector of float) -0:? 'badp2' ( flat patch in highp 4-component vector of float) -0:? 'badp3' ( noperspective patch in highp 4-component vector of float) -0:? 'badp4' ( patch sample in highp 3-component vector of float) -0:? 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position}) -0:? 'ina' ( in highp 2-component vector of float) -0:? 'inb' ( in 32-element array of highp 2-component vector of float) -0:? 'inc' ( in 32-element array of highp 2-component vector of float) -0:? 'ind' ( in 32-element array of highp 2-component vector of float) -0:? 'bla' ( in block{ in highp int f}) -0:? 'blb' ( in 32-element array of block{ in highp int f}) -0:? 'blc' ( in 32-element array of block{ in highp int f}) -0:? 'bld' ( in 32-element array of block{ in highp int f}) -0:? 'ivla' (layout( location=23) in 32-element array of highp 4-component vector of float) -0:? 'ivlb' (layout( location=24) in 32-element array of highp 4-component vector of float) -0:? 'ivlc' (layout( location=24) in 32-element array of highp 4-component vector of float) -0:? 'ovla' (layout( location=23) out 2-element array of highp 4-component vector of float) -0:? 'ovlb' (layout( location=24) out 2-element array of highp 4-component vector of float) -0:? 'pinbi' ( patch in block{ in highp int a}) -0:? 'myColor2' ( centroid out highp 3-component vector of float) -0:? 'centr' ( centroid in 32-element array of highp 3-component vector of float) -0:? 'perSampleColor' ( sample out highp 4-component vector of float) - - -Linked tessellation evaluation stage: - - -Shader version: 320 -Requested GL_ARB_separate_shader_objects -input primitive = quads -vertex spacing = fractional_odd_spacing -triangle order = cw -using point mode -ERROR: node is still EOpNull! -0:20 Function Definition: main( ( global void) -0:20 Function Parameters: -0:22 Sequence -0:22 Constant: -0:22 0.000000 -0:24 Sequence -0:24 move second child to first child ( temp highp int) -0:24 'a' ( temp highp int) -0:24 Constant: -0:24 1512 (const int) -0:32 Sequence -0:32 move second child to first child ( temp highp 4-component vector of float) -0:32 'p' ( temp highp 4-component vector of float) -0:32 gl_Position: direct index for structure ( in highp 4-component vector of float Position) -0:32 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float PositionPerViewNV gl_PositionPerViewNV}) -0:32 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float PositionPerViewNV gl_PositionPerViewNV}) -0:32 Constant: -0:32 1 (const int) -0:32 Constant: -0:32 0 (const int) -0:33 Sequence -0:33 move second child to first child ( temp highp float) -0:33 'ps' ( temp highp float) -0:33 gl_PointSize: direct index for structure ( in highp float PointSize) -0:33 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float PositionPerViewNV gl_PositionPerViewNV}) -0:33 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float PositionPerViewNV gl_PositionPerViewNV}) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 1 (const int) -0:34 Sequence -0:34 move second child to first child ( temp highp float) -0:34 'cd' ( temp highp float) -0:34 Constant: -0:34 0.000000 -0:36 Sequence -0:36 move second child to first child ( temp highp int) -0:36 'pvi' ( temp highp int) -0:36 'gl_PatchVerticesIn' ( in highp int PatchVertices) -0:37 Sequence -0:37 move second child to first child ( temp highp int) -0:37 'pid' ( temp highp int) -0:37 'gl_PrimitiveID' ( in highp int PrimitiveID) -0:38 Sequence -0:38 move second child to first child ( temp highp 3-component vector of float) -0:38 'tc' ( temp highp 3-component vector of float) -0:38 'gl_TessCoord' ( in highp 3-component vector of float TessCoord) -0:39 Sequence -0:39 move second child to first child ( temp highp float) -0:39 'tlo' ( temp highp float) -0:39 direct index ( patch temp highp float TessLevelOuter) -0:39 'gl_TessLevelOuter' ( patch in 4-element array of highp float TessLevelOuter) -0:39 Constant: -0:39 3 (const int) -0:40 Sequence -0:40 move second child to first child ( temp highp float) -0:40 'tli' ( temp highp float) -0:40 direct index ( patch temp highp float TessLevelInner) -0:40 'gl_TessLevelInner' ( patch in 2-element array of highp float TessLevelInner) -0:40 Constant: -0:40 1 (const int) -0:42 move second child to first child ( temp highp 4-component vector of float) -0:42 gl_Position: direct index for structure ( gl_Position highp 4-component vector of float Position) -0:42 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize}) -0:42 Constant: -0:42 0 (const uint) -0:42 'p' ( temp highp 4-component vector of float) -0:43 move second child to first child ( temp highp float) -0:43 gl_PointSize: direct index for structure ( gl_PointSize highp float PointSize) -0:43 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize}) -0:43 Constant: -0:43 1 (const uint) -0:43 'ps' ( temp highp float) -0:44 move second child to first child ( temp highp float) -0:44 Constant: -0:44 0.000000 -0:44 'cd' ( temp highp float) -0:? Linker Objects -0:? 'patchIn' ( patch in highp 4-component vector of float) -0:? 'patchOut' ( patch out highp 4-component vector of float) -0:? 'badp1' ( smooth patch in highp 4-component vector of float) -0:? 'badp2' ( flat patch in highp 4-component vector of float) -0:? 'badp3' ( noperspective patch in highp 4-component vector of float) -0:? 'badp4' ( patch sample in highp 3-component vector of float) -0:? 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position}) -0:? 'ina' ( in highp 2-component vector of float) -0:? 'inb' ( in 32-element array of highp 2-component vector of float) -0:? 'inc' ( in 32-element array of highp 2-component vector of float) -0:? 'ind' ( in 32-element array of highp 2-component vector of float) -0:? 'bla' ( in block{ in highp int f}) -0:? 'blb' ( in 32-element array of block{ in highp int f}) -0:? 'blc' ( in 32-element array of block{ in highp int f}) -0:? 'bld' ( in 32-element array of block{ in highp int f}) -0:? 'ivla' (layout( location=23) in 32-element array of highp 4-component vector of float) -0:? 'ivlb' (layout( location=24) in 32-element array of highp 4-component vector of float) -0:? 'ivlc' (layout( location=24) in 32-element array of highp 4-component vector of float) -0:? 'ovla' (layout( location=23) out 2-element array of highp 4-component vector of float) -0:? 'ovlb' (layout( location=24) out 2-element array of highp 4-component vector of float) -0:? 'pinbi' ( patch in block{ in highp int a}) -0:? 'myColor2' ( centroid out highp 3-component vector of float) -0:? 'centr' ( centroid in 32-element array of highp 3-component vector of float) -0:? 'perSampleColor' ( sample out highp 4-component vector of float) - diff --git a/deps/glslang/Test/baseResults/320.vert.out b/deps/glslang/Test/baseResults/320.vert.out deleted file mode 100644 index 5e80d141..00000000 --- a/deps/glslang/Test/baseResults/320.vert.out +++ /dev/null @@ -1,798 +0,0 @@ -320.vert -ERROR: 0:6: 's' : member of block cannot be or contain a sampler, image, or atomic_uint type -ERROR: 0:14: 'location' : overlapping use of location 12 -ERROR: 0:16: 'input block' : not supported in this stage: vertex -ERROR: 0:18: 'gl_PerVertex' : block redeclaration has extra members -ERROR: 0:28: 'gl_PointSize' : member of nameless block was not redeclared -ERROR: 0:28: 'assign' : l-value required "gl_PerVertex" (can't modify void) -ERROR: 0:28: 'assign' : cannot convert from ' const float' to ' gl_PointSize highp void PointSize' -ERROR: 0:31: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use -ERROR: 0:36: 'flat/smooth/noperspective' : cannot use interpolation qualifiers on an interface block -ERROR: 0:40: 'flat/smooth/noperspective' : cannot use interpolation qualifiers on an interface block -ERROR: 0:44: 'centroid' : cannot use centroid qualifier on an interface block -ERROR: 0:48: 'invariant' : cannot use invariant qualifier on an interface block -ERROR: 0:68: 'variable indexing buffer block array' : not supported with this profile: es -ERROR: 0:73: 'textureGatherOffsets(...)' : must be a compile-time constant: offsets argument -ERROR: 0:76: 'sampler/image' : type requires declaration of default precision qualifier -ERROR: 0:77: 'sampler/image' : type requires declaration of default precision qualifier -ERROR: 0:78: 'sampler/image' : type requires declaration of default precision qualifier -ERROR: 0:79: 'sampler/image' : type requires declaration of default precision qualifier -ERROR: 0:80: 'sampler/image' : type requires declaration of default precision qualifier -ERROR: 0:81: 'sampler/image' : type requires declaration of default precision qualifier -ERROR: 0:116: 'sampler/image' : type requires declaration of default precision qualifier -ERROR: 0:117: 'sampler/image' : type requires declaration of default precision qualifier -ERROR: 0:118: 'sampler/image' : type requires declaration of default precision qualifier -ERROR: 0:120: 'sampler/image' : type requires declaration of default precision qualifier -ERROR: 0:121: 'sampler/image' : type requires declaration of default precision qualifier -ERROR: 0:122: 'sampler/image' : type requires declaration of default precision qualifier -ERROR: 0:123: 'sampler/image' : type requires declaration of default precision qualifier -ERROR: 0:191: 'sampler/image' : type requires declaration of default precision qualifier -ERROR: 0:192: 'sampler/image' : type requires declaration of default precision qualifier -ERROR: 0:193: 'sampler/image' : type requires declaration of default precision qualifier -ERROR: 0:211: 'textureSize' : no matching overloaded function found -ERROR: 0:211: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int' -ERROR: 0:252: 'interpolateAtCentroid' : no matching overloaded function found -ERROR: 0:253: 'interpolateAtSample' : no matching overloaded function found -ERROR: 0:254: 'interpolateAtOffset' : no matching overloaded function found -ERROR: 35 compilation errors. No code generated. - - -Shader version: 320 -ERROR: node is still EOpNull! -0:23 Function Definition: main( ( global void) -0:23 Function Parameters: -0:25 Sequence -0:25 Sequence -0:25 move second child to first child ( temp highp int) -0:25 'sum' ( temp highp int) -0:25 add ( temp highp int) -0:25 'gl_VertexID' ( gl_VertexId highp int VertexId) -0:26 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) -0:27 move second child to first child ( temp highp 4-component vector of float) -0:27 gl_Position: direct index for structure ( gl_Position highp 4-component vector of float Position) -0:27 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position}) -0:27 Constant: -0:27 0 (const uint) -0:27 Constant: -0:27 1.000000 -0:27 1.000000 -0:27 1.000000 -0:27 1.000000 -0:28 gl_PointSize: direct index for structure ( gl_PointSize highp void PointSize) -0:28 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position}) -0:28 Constant: -0:28 1 (const uint) -0:62 Function Definition: pfoo( ( global void) -0:62 Function Parameters: -0:? Sequence -0:65 move second child to first child ( temp highp 2-component vector of float) -0:65 'h' ( noContraction temp highp 2-component vector of float) -0:65 fma ( global highp 2-component vector of float) -0:65 'inf' ( in highp 2-component vector of float) -0:65 'ing' ( in highp 2-component vector of float) -0:65 'h' ( noContraction temp highp 2-component vector of float) -0:66 indirect index ( temp lowp sampler2D) -0:66 'sArray' ( uniform 4-element array of lowp sampler2D) -0:66 add ( temp highp int) -0:66 'sIndex' ( uniform highp int) -0:66 Constant: -0:66 1 (const int) -0:67 indirect index (layout( column_major shared) temp block{layout( column_major shared) uniform highp int i}) -0:67 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform highp int i}) -0:67 add ( temp highp int) -0:67 'sIndex' ( uniform highp int) -0:67 Constant: -0:67 1 (const int) -0:68 indirect index (layout( column_major shared) temp block{layout( column_major shared) buffer highp int i}) -0:68 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp int i}) -0:68 subtract ( temp highp int) -0:68 'sIndex' ( uniform highp int) -0:68 Constant: -0:68 2 (const int) -0:69 direct index ( writeonly temp highp image2D) -0:69 'iArray' ( writeonly uniform 5-element array of highp image2D) -0:69 Constant: -0:69 2 (const int) -0:70 indirect index ( writeonly temp highp image2D) -0:70 'iArray' ( writeonly uniform 5-element array of highp image2D) -0:70 subtract ( temp highp int) -0:70 'sIndex' ( uniform highp int) -0:70 Constant: -0:70 2 (const int) -0:71 textureGatherOffset ( global lowp 4-component vector of float, operation at highp) -0:71 direct index ( temp lowp sampler2D) -0:71 'sArray' ( uniform 4-element array of lowp sampler2D) -0:71 Constant: -0:71 0 (const int) -0:71 Constant: -0:71 0.100000 -0:71 0.100000 -0:71 Convert float to int ( temp highp 2-component vector of int) -0:71 'inf' ( in highp 2-component vector of float) -0:72 textureGatherOffsets ( global lowp 4-component vector of float, operation at highp) -0:72 direct index ( temp lowp sampler2D) -0:72 'sArray' ( uniform 4-element array of lowp sampler2D) -0:72 Constant: -0:72 0 (const int) -0:72 Constant: -0:72 0.100000 -0:72 0.100000 -0:72 Constant: -0:72 0 (const int) -0:72 0 (const int) -0:72 0 (const int) -0:72 0 (const int) -0:72 0 (const int) -0:72 0 (const int) -0:72 0 (const int) -0:72 0 (const int) -0:73 textureGatherOffsets ( global lowp 4-component vector of float, operation at highp) -0:73 direct index ( temp lowp sampler2D) -0:73 'sArray' ( uniform 4-element array of lowp sampler2D) -0:73 Constant: -0:73 0 (const int) -0:73 Constant: -0:73 0.100000 -0:73 0.100000 -0:73 'offsets' ( uniform 4-element array of highp 2-component vector of int) -0:101 Function Definition: bufferT( ( global void) -0:101 Function Parameters: -0:103 Sequence -0:103 Sequence -0:103 move second child to first child ( temp highp int) -0:103 's1' ( temp highp int) -0:103 textureSize ( global highp int) -0:103 'bufSamp1' ( uniform highp samplerBuffer) -0:104 Sequence -0:104 move second child to first child ( temp highp int) -0:104 's2' ( temp highp int) -0:104 textureSize ( global highp int) -0:104 'bufSamp2' ( uniform highp isamplerBuffer) -0:105 Sequence -0:105 move second child to first child ( temp highp int) -0:105 's3' ( temp highp int) -0:105 textureSize ( global highp int) -0:105 'bufSamp3' ( uniform highp usamplerBuffer) -0:107 Sequence -0:107 move second child to first child ( temp highp int) -0:107 's4' ( temp highp int) -0:107 imageQuerySize ( global highp int) -0:107 'bufSamp4' ( writeonly uniform highp imageBuffer) -0:108 Sequence -0:108 move second child to first child ( temp highp int) -0:108 's5' ( temp highp int) -0:108 imageQuerySize ( global highp int) -0:108 'bufSamp5' ( writeonly uniform highp iimageBuffer) -0:109 Sequence -0:109 move second child to first child ( temp highp int) -0:109 's6' ( temp highp int) -0:109 imageQuerySize ( global highp int) -0:109 'bufSamp6' ( writeonly uniform highp uimageBuffer) -0:111 Sequence -0:111 move second child to first child ( temp highp 4-component vector of float) -0:111 'f1' ( temp highp 4-component vector of float) -0:111 textureFetch ( global highp 4-component vector of float) -0:111 'bufSamp1' ( uniform highp samplerBuffer) -0:111 's1' ( temp highp int) -0:112 Sequence -0:112 move second child to first child ( temp highp 4-component vector of int) -0:112 'f2' ( temp highp 4-component vector of int) -0:112 textureFetch ( global highp 4-component vector of int) -0:112 'bufSamp2' ( uniform highp isamplerBuffer) -0:112 's2' ( temp highp int) -0:113 Sequence -0:113 move second child to first child ( temp highp 4-component vector of uint) -0:113 'f3' ( temp highp 4-component vector of uint) -0:113 textureFetch ( global highp 4-component vector of uint) -0:113 'bufSamp3' ( uniform highp usamplerBuffer) -0:113 's3' ( temp highp int) -0:149 Function Definition: CAT( ( global void) -0:149 Function Parameters: -0:151 Sequence -0:151 Sequence -0:151 move second child to first child ( temp highp 3-component vector of int) -0:151 's4' ( temp highp 3-component vector of int) -0:151 textureSize ( global highp 3-component vector of int) -0:151 'CA4' ( uniform highp samplerCubeArray) -0:151 Constant: -0:151 1 (const int) -0:152 Sequence -0:152 move second child to first child ( temp highp 3-component vector of int) -0:152 's5' ( temp highp 3-component vector of int) -0:152 textureSize ( global highp 3-component vector of int) -0:152 'CA5' ( uniform highp samplerCubeArrayShadow) -0:152 Constant: -0:152 1 (const int) -0:153 Sequence -0:153 move second child to first child ( temp highp 3-component vector of int) -0:153 's6' ( temp highp 3-component vector of int) -0:153 textureSize ( global highp 3-component vector of int) -0:153 'CA6' ( uniform highp isamplerCubeArray) -0:153 Constant: -0:153 1 (const int) -0:154 Sequence -0:154 move second child to first child ( temp highp 3-component vector of int) -0:154 's7' ( temp highp 3-component vector of int) -0:154 textureSize ( global highp 3-component vector of int) -0:154 'CA7' ( uniform highp usamplerCubeArray) -0:154 Constant: -0:154 1 (const int) -0:156 Sequence -0:156 move second child to first child ( temp highp 4-component vector of float) -0:156 't4' ( temp highp 4-component vector of float) -0:156 texture ( global highp 4-component vector of float) -0:156 'CA4' ( uniform highp samplerCubeArray) -0:156 Constant: -0:156 0.500000 -0:156 0.500000 -0:156 0.500000 -0:156 0.500000 -0:157 Sequence -0:157 move second child to first child ( temp highp float) -0:157 't5' ( temp highp float) -0:157 texture ( global highp float) -0:157 'CA5' ( uniform highp samplerCubeArrayShadow) -0:157 Constant: -0:157 0.500000 -0:157 0.500000 -0:157 0.500000 -0:157 0.500000 -0:157 Constant: -0:157 3.000000 -0:158 Sequence -0:158 move second child to first child ( temp highp 4-component vector of int) -0:158 't6' ( temp highp 4-component vector of int) -0:158 texture ( global highp 4-component vector of int) -0:158 'CA6' ( uniform highp isamplerCubeArray) -0:158 Constant: -0:158 0.500000 -0:158 0.500000 -0:158 0.500000 -0:158 0.500000 -0:159 Sequence -0:159 move second child to first child ( temp highp 4-component vector of uint) -0:159 't7' ( temp highp 4-component vector of uint) -0:159 texture ( global highp 4-component vector of uint) -0:159 'CA7' ( uniform highp usamplerCubeArray) -0:159 Constant: -0:159 0.500000 -0:159 0.500000 -0:159 0.500000 -0:159 0.500000 -0:161 Sequence -0:161 move second child to first child ( temp highp 4-component vector of float) -0:161 'L4' ( temp highp 4-component vector of float) -0:161 textureLod ( global highp 4-component vector of float) -0:161 'CA4' ( uniform highp samplerCubeArray) -0:161 Constant: -0:161 0.500000 -0:161 0.500000 -0:161 0.500000 -0:161 0.500000 -0:161 Constant: -0:161 0.240000 -0:162 Sequence -0:162 move second child to first child ( temp highp 4-component vector of int) -0:162 'L6' ( temp highp 4-component vector of int) -0:162 textureLod ( global highp 4-component vector of int) -0:162 'CA6' ( uniform highp isamplerCubeArray) -0:162 Constant: -0:162 0.500000 -0:162 0.500000 -0:162 0.500000 -0:162 0.500000 -0:162 Constant: -0:162 0.260000 -0:163 Sequence -0:163 move second child to first child ( temp highp 4-component vector of uint) -0:163 'L7' ( temp highp 4-component vector of uint) -0:163 textureLod ( global highp 4-component vector of uint) -0:163 'CA7' ( uniform highp usamplerCubeArray) -0:163 Constant: -0:163 0.500000 -0:163 0.500000 -0:163 0.500000 -0:163 0.500000 -0:163 Constant: -0:163 0.270000 -0:165 Sequence -0:165 move second child to first child ( temp highp 4-component vector of float) -0:165 'g4' ( temp highp 4-component vector of float) -0:165 textureGrad ( global highp 4-component vector of float) -0:165 'CA4' ( uniform highp samplerCubeArray) -0:165 Constant: -0:165 0.500000 -0:165 0.500000 -0:165 0.500000 -0:165 0.500000 -0:165 Constant: -0:165 0.100000 -0:165 0.100000 -0:165 0.100000 -0:165 Constant: -0:165 0.200000 -0:165 0.200000 -0:165 0.200000 -0:166 Sequence -0:166 move second child to first child ( temp highp 4-component vector of int) -0:166 'g6' ( temp highp 4-component vector of int) -0:166 textureGrad ( global highp 4-component vector of int) -0:166 'CA6' ( uniform highp isamplerCubeArray) -0:166 Constant: -0:166 0.500000 -0:166 0.500000 -0:166 0.500000 -0:166 0.500000 -0:166 Constant: -0:166 0.100000 -0:166 0.100000 -0:166 0.100000 -0:166 Constant: -0:166 0.200000 -0:166 0.200000 -0:166 0.200000 -0:167 Sequence -0:167 move second child to first child ( temp highp 4-component vector of uint) -0:167 'g7' ( temp highp 4-component vector of uint) -0:167 textureGrad ( global highp 4-component vector of uint) -0:167 'CA7' ( uniform highp usamplerCubeArray) -0:167 Constant: -0:167 0.500000 -0:167 0.500000 -0:167 0.500000 -0:167 0.500000 -0:167 Constant: -0:167 0.100000 -0:167 0.100000 -0:167 0.100000 -0:167 Constant: -0:167 0.200000 -0:167 0.200000 -0:167 0.200000 -0:169 Sequence -0:169 move second child to first child ( temp highp 4-component vector of float) -0:169 'gath4' ( temp highp 4-component vector of float) -0:169 textureGather ( global highp 4-component vector of float) -0:169 'CA4' ( uniform highp samplerCubeArray) -0:169 Constant: -0:169 0.500000 -0:169 0.500000 -0:169 0.500000 -0:169 0.500000 -0:170 Sequence -0:170 move second child to first child ( temp highp 4-component vector of float) -0:170 'gathC4' ( temp highp 4-component vector of float) -0:170 textureGather ( global highp 4-component vector of float) -0:170 'CA4' ( uniform highp samplerCubeArray) -0:170 Constant: -0:170 0.500000 -0:170 0.500000 -0:170 0.500000 -0:170 0.500000 -0:170 Constant: -0:170 2 (const int) -0:171 Sequence -0:171 move second child to first child ( temp highp 4-component vector of int) -0:171 'gath6' ( temp highp 4-component vector of int) -0:171 textureGather ( global highp 4-component vector of int) -0:171 'CA6' ( uniform highp isamplerCubeArray) -0:171 Constant: -0:171 0.500000 -0:171 0.500000 -0:171 0.500000 -0:171 0.500000 -0:172 Sequence -0:172 move second child to first child ( temp highp 4-component vector of int) -0:172 'gathC6' ( temp highp 4-component vector of int) -0:172 textureGather ( global highp 4-component vector of int) -0:172 'CA6' ( uniform highp isamplerCubeArray) -0:172 Constant: -0:172 0.500000 -0:172 0.500000 -0:172 0.500000 -0:172 0.500000 -0:172 Constant: -0:172 1 (const int) -0:173 Sequence -0:173 move second child to first child ( temp highp 4-component vector of uint) -0:173 'gath7' ( temp highp 4-component vector of uint) -0:173 textureGather ( global highp 4-component vector of uint) -0:173 'CA7' ( uniform highp usamplerCubeArray) -0:173 Constant: -0:173 0.500000 -0:173 0.500000 -0:173 0.500000 -0:173 0.500000 -0:174 Sequence -0:174 move second child to first child ( temp highp 4-component vector of uint) -0:174 'gathC7' ( temp highp 4-component vector of uint) -0:174 textureGather ( global highp 4-component vector of uint) -0:174 'CA7' ( uniform highp usamplerCubeArray) -0:174 Constant: -0:174 0.500000 -0:174 0.500000 -0:174 0.500000 -0:174 0.500000 -0:174 Constant: -0:174 0 (const int) -0:176 Sequence -0:176 move second child to first child ( temp highp 4-component vector of float) -0:176 'gath5' ( temp highp 4-component vector of float) -0:176 textureGather ( global highp 4-component vector of float) -0:176 'CA5' ( uniform highp samplerCubeArrayShadow) -0:176 Constant: -0:176 0.500000 -0:176 0.500000 -0:176 0.500000 -0:176 0.500000 -0:176 Constant: -0:176 2.500000 -0:178 Sequence -0:178 move second child to first child ( temp highp 3-component vector of int) -0:178 's1' ( temp highp 3-component vector of int) -0:178 imageQuerySize ( global highp 3-component vector of int) -0:178 'CA1' ( writeonly uniform highp imageCubeArray) -0:179 Sequence -0:179 move second child to first child ( temp highp 3-component vector of int) -0:179 's2' ( temp highp 3-component vector of int) -0:179 imageQuerySize ( global highp 3-component vector of int) -0:179 'CA2' ( writeonly uniform highp iimageCubeArray) -0:180 Sequence -0:180 move second child to first child ( temp highp 3-component vector of int) -0:180 's3' ( temp highp 3-component vector of int) -0:180 imageQuerySize ( global highp 3-component vector of int) -0:180 'CA3' ( writeonly uniform highp uimageCubeArray) -0:182 imageStore ( global highp void) -0:182 'CA1' ( writeonly uniform highp imageCubeArray) -0:182 's3' ( temp highp 3-component vector of int) -0:182 Constant: -0:182 1.000000 -0:182 1.000000 -0:182 1.000000 -0:182 1.000000 -0:183 imageStore ( global highp void) -0:183 'CA2' ( writeonly uniform highp iimageCubeArray) -0:183 's3' ( temp highp 3-component vector of int) -0:183 Constant: -0:183 1 (const int) -0:183 1 (const int) -0:183 1 (const int) -0:183 1 (const int) -0:184 imageStore ( global highp void) -0:184 'CA3' ( writeonly uniform highp uimageCubeArray) -0:184 's3' ( temp highp 3-component vector of int) -0:184 Constant: -0:184 1 (const uint) -0:184 1 (const uint) -0:184 1 (const uint) -0:184 1 (const uint) -0:186 Sequence -0:186 move second child to first child ( temp highp 4-component vector of float) -0:186 'cl1' ( temp highp 4-component vector of float) -0:186 imageLoad ( global highp 4-component vector of float) -0:186 'rCA1' (layout( rgba16f) readonly uniform highp imageCubeArray) -0:186 's3' ( temp highp 3-component vector of int) -0:187 Sequence -0:187 move second child to first child ( temp highp 4-component vector of int) -0:187 'cl2' ( temp highp 4-component vector of int) -0:187 imageLoad ( global highp 4-component vector of int) -0:187 'rCA2' (layout( rgba32i) readonly uniform highp iimageCubeArray) -0:187 's3' ( temp highp 3-component vector of int) -0:188 Sequence -0:188 move second child to first child ( temp highp 4-component vector of uint) -0:188 'cl3' ( temp highp 4-component vector of uint) -0:188 imageLoad ( global highp 4-component vector of uint) -0:188 'rCA3' (layout( r32ui) readonly uniform highp uimageCubeArray) -0:188 's3' ( temp highp 3-component vector of int) -0:203 Function Definition: MSA( ( global void) -0:203 Function Parameters: -0:205 Sequence -0:205 Sequence -0:205 move second child to first child ( temp highp 4-component vector of float) -0:205 'tf' ( temp highp 4-component vector of float) -0:205 textureFetch ( global highp 4-component vector of float) -0:205 'samp2DMSA' ( uniform highp sampler2DMSArray) -0:205 Constant: -0:205 5 (const int) -0:205 5 (const int) -0:205 5 (const int) -0:205 Constant: -0:205 2 (const int) -0:206 Sequence -0:206 move second child to first child ( temp highp 4-component vector of int) -0:206 'tfi' ( temp highp 4-component vector of int) -0:206 textureFetch ( global highp 4-component vector of int) -0:206 'samp2DMSAi' ( uniform highp isampler2DMSArray) -0:206 Constant: -0:206 5 (const int) -0:206 5 (const int) -0:206 5 (const int) -0:206 Constant: -0:206 2 (const int) -0:207 Sequence -0:207 move second child to first child ( temp highp 4-component vector of uint) -0:207 'tfu' ( temp highp 4-component vector of uint) -0:207 textureFetch ( global highp 4-component vector of uint) -0:207 'samp2DMSAu' ( uniform highp usampler2DMSArray) -0:207 Constant: -0:207 5 (const int) -0:207 5 (const int) -0:207 5 (const int) -0:207 Constant: -0:207 2 (const int) -0:209 Sequence -0:209 move second child to first child ( temp highp 3-component vector of int) -0:209 'tfs' ( temp highp 3-component vector of int) -0:209 textureSize ( global highp 3-component vector of int) -0:209 'samp2DMSA' ( uniform highp sampler2DMSArray) -0:210 Sequence -0:210 move second child to first child ( temp highp 3-component vector of int) -0:210 'tfsi' ( temp highp 3-component vector of int) -0:210 textureSize ( global highp 3-component vector of int) -0:210 'samp2DMSAi' ( uniform highp isampler2DMSArray) -0:212 Sequence -0:212 move second child to first child ( temp highp 3-component vector of int) -0:212 'tfsu' ( temp highp 3-component vector of int) -0:212 textureSize ( global highp 3-component vector of int) -0:212 'samp2DMSAu' ( uniform highp usampler2DMSArray) -0:220 Function Definition: goodImageAtom( ( global void) -0:220 Function Parameters: -0:? Sequence -0:226 imageAtomicAdd ( global highp int) -0:226 'im2Di' (layout( r32i) uniform highp iimage2D) -0:226 'P' ( uniform highp 2-component vector of int) -0:226 'dati' ( temp highp int) -0:227 imageAtomicAdd ( global highp uint) -0:227 'im2Du' (layout( r32ui) uniform highp uimage2D) -0:227 'P' ( uniform highp 2-component vector of int) -0:227 'datu' ( temp highp uint) -0:228 imageAtomicMin ( global highp int) -0:228 'im2Di' (layout( r32i) uniform highp iimage2D) -0:228 'P' ( uniform highp 2-component vector of int) -0:228 'dati' ( temp highp int) -0:229 imageAtomicMin ( global highp uint) -0:229 'im2Du' (layout( r32ui) uniform highp uimage2D) -0:229 'P' ( uniform highp 2-component vector of int) -0:229 'datu' ( temp highp uint) -0:230 imageAtomicMax ( global highp int) -0:230 'im2Di' (layout( r32i) uniform highp iimage2D) -0:230 'P' ( uniform highp 2-component vector of int) -0:230 'dati' ( temp highp int) -0:231 imageAtomicMax ( global highp uint) -0:231 'im2Du' (layout( r32ui) uniform highp uimage2D) -0:231 'P' ( uniform highp 2-component vector of int) -0:231 'datu' ( temp highp uint) -0:232 imageAtomicAnd ( global highp int) -0:232 'im2Di' (layout( r32i) uniform highp iimage2D) -0:232 'P' ( uniform highp 2-component vector of int) -0:232 'dati' ( temp highp int) -0:233 imageAtomicAnd ( global highp uint) -0:233 'im2Du' (layout( r32ui) uniform highp uimage2D) -0:233 'P' ( uniform highp 2-component vector of int) -0:233 'datu' ( temp highp uint) -0:234 imageAtomicOr ( global highp int) -0:234 'im2Di' (layout( r32i) uniform highp iimage2D) -0:234 'P' ( uniform highp 2-component vector of int) -0:234 'dati' ( temp highp int) -0:235 imageAtomicOr ( global highp uint) -0:235 'im2Du' (layout( r32ui) uniform highp uimage2D) -0:235 'P' ( uniform highp 2-component vector of int) -0:235 'datu' ( temp highp uint) -0:236 imageAtomicXor ( global highp int) -0:236 'im2Di' (layout( r32i) uniform highp iimage2D) -0:236 'P' ( uniform highp 2-component vector of int) -0:236 'dati' ( temp highp int) -0:237 imageAtomicXor ( global highp uint) -0:237 'im2Du' (layout( r32ui) uniform highp uimage2D) -0:237 'P' ( uniform highp 2-component vector of int) -0:237 'datu' ( temp highp uint) -0:238 imageAtomicExchange ( global highp int) -0:238 'im2Di' (layout( r32i) uniform highp iimage2D) -0:238 'P' ( uniform highp 2-component vector of int) -0:238 'dati' ( temp highp int) -0:239 imageAtomicExchange ( global highp uint) -0:239 'im2Du' (layout( r32ui) uniform highp uimage2D) -0:239 'P' ( uniform highp 2-component vector of int) -0:239 'datu' ( temp highp uint) -0:240 imageAtomicExchange ( global highp float) -0:240 'im2Df' (layout( r32f) uniform highp image2D) -0:240 'P' ( uniform highp 2-component vector of int) -0:240 'datf' ( temp highp float) -0:241 imageAtomicCompSwap ( global highp int) -0:241 'im2Di' (layout( r32i) uniform highp iimage2D) -0:241 'P' ( uniform highp 2-component vector of int) -0:241 Constant: -0:241 3 (const int) -0:241 'dati' ( temp highp int) -0:242 imageAtomicCompSwap ( global highp uint) -0:242 'im2Du' (layout( r32ui) uniform highp uimage2D) -0:242 'P' ( uniform highp 2-component vector of int) -0:242 Constant: -0:242 5 (const uint) -0:242 'datu' ( temp highp uint) -0:250 Function Definition: badInterp( ( global void) -0:250 Function Parameters: -0:252 Sequence -0:252 Constant: -0:252 0.000000 -0:253 Constant: -0:253 0.000000 -0:254 Constant: -0:254 0.000000 -0:? Linker Objects -0:? 'outbinst' ( out block{ out highp int a, out highp 4-component vector of float v, out highp sampler2D s}) -0:? 'anon@0' ( out block{layout( location=12) out highp int aAnon, layout( location=13) out highp 4-component vector of float vAnon}) -0:? 'aliased' (layout( location=12) smooth out highp int) -0:? 'inbinst' ( in block{ in highp int a}) -0:? 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position}) -0:? 'smon' ( smooth out block{ out highp int i}) -0:? 'fmon' ( flat out block{ out highp int i}) -0:? 'cmon' ( centroid out block{ out highp int i}) -0:? 'imon' ( invariant out block{ out highp int i}) -0:? 'inf' ( in highp 2-component vector of float) -0:? 'ing' ( in highp 2-component vector of float) -0:? 'offsets' ( uniform 4-element array of highp 2-component vector of int) -0:? 'sArray' ( uniform 4-element array of lowp sampler2D) -0:? 'sIndex' ( uniform highp int) -0:? 'auArray' (layout( binding=0 offset=0) uniform 2-element array of highp atomic_uint) -0:? 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform highp int i}) -0:? 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp int i}) -0:? 'iArray' ( writeonly uniform 5-element array of highp image2D) -0:? 'constOffsets' ( const 4-element array of highp 2-component vector of int) -0:? 0 (const int) -0:? 0 (const int) -0:? 0 (const int) -0:? 0 (const int) -0:? 0 (const int) -0:? 0 (const int) -0:? 0 (const int) -0:? 0 (const int) -0:? 'noPreSamp1' ( uniform mediump samplerBuffer) -0:? 'noPreSamp2' ( uniform mediump isamplerBuffer) -0:? 'noPreSamp3' ( uniform mediump usamplerBuffer) -0:? 'noPreSamp4' ( writeonly uniform mediump imageBuffer) -0:? 'noPreSamp5' ( writeonly uniform mediump iimageBuffer) -0:? 'noPreSamp6' ( writeonly uniform mediump uimageBuffer) -0:? 'bufSamp1' ( uniform highp samplerBuffer) -0:? 'bufSamp2' ( uniform highp isamplerBuffer) -0:? 'bufSamp3' ( uniform highp usamplerBuffer) -0:? 'bufSamp4' ( writeonly uniform highp imageBuffer) -0:? 'bufSamp5' ( writeonly uniform highp iimageBuffer) -0:? 'bufSamp6' ( writeonly uniform highp uimageBuffer) -0:? 'noPreCA1' ( writeonly uniform mediump imageCubeArray) -0:? 'noPreCA2' ( writeonly uniform mediump iimageCubeArray) -0:? 'noPreCA3' ( writeonly uniform mediump uimageCubeArray) -0:? 'noPreCA4' ( uniform mediump samplerCubeArray) -0:? 'noPreCA5' ( uniform mediump samplerCubeArrayShadow) -0:? 'noPreCA6' ( uniform mediump isamplerCubeArray) -0:? 'noPreCA7' ( uniform mediump usamplerCubeArray) -0:? 'CA1' ( writeonly uniform highp imageCubeArray) -0:? 'CA2' ( writeonly uniform highp iimageCubeArray) -0:? 'CA3' ( writeonly uniform highp uimageCubeArray) -0:? 'rCA1' (layout( rgba16f) readonly uniform highp imageCubeArray) -0:? 'rCA2' (layout( rgba32i) readonly uniform highp iimageCubeArray) -0:? 'rCA3' (layout( r32ui) readonly uniform highp uimageCubeArray) -0:? 'CA4' ( uniform highp samplerCubeArray) -0:? 'CA5' ( uniform highp samplerCubeArrayShadow) -0:? 'CA6' ( uniform highp isamplerCubeArray) -0:? 'CA7' ( uniform highp usamplerCubeArray) -0:? 'noPrec2DMS' ( uniform mediump sampler2DMSArray) -0:? 'noPrec2DMSi' ( uniform mediump isampler2DMSArray) -0:? 'noPrec2DMSu' ( uniform mediump usampler2DMSArray) -0:? 'samp2DMSA' ( uniform highp sampler2DMSArray) -0:? 'samp2DMSAi' ( uniform highp isampler2DMSArray) -0:? 'samp2DMSAu' ( uniform highp usampler2DMSArray) -0:? 'im2Df' (layout( r32f) uniform highp image2D) -0:? 'im2Du' (layout( r32ui) uniform highp uimage2D) -0:? 'im2Di' (layout( r32i) uniform highp iimage2D) -0:? 'P' ( uniform highp 2-component vector of int) -0:? 'colorSample' ( smooth sample out highp 4-component vector of float) -0:? 'colorfsi' ( flat sample out highp 4-component vector of float) -0:? 'sampInArray' ( smooth sample out 4-element array of highp 3-component vector of float) -0:? 'inv4' ( in highp 4-component vector of float) -0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) - - -Linked vertex stage: - - -Shader version: 320 -ERROR: node is still EOpNull! -0:23 Function Definition: main( ( global void) -0:23 Function Parameters: -0:25 Sequence -0:25 Sequence -0:25 move second child to first child ( temp highp int) -0:25 'sum' ( temp highp int) -0:25 add ( temp highp int) -0:25 'gl_VertexID' ( gl_VertexId highp int VertexId) -0:26 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) -0:27 move second child to first child ( temp highp 4-component vector of float) -0:27 gl_Position: direct index for structure ( gl_Position highp 4-component vector of float Position) -0:27 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position}) -0:27 Constant: -0:27 0 (const uint) -0:27 Constant: -0:27 1.000000 -0:27 1.000000 -0:27 1.000000 -0:27 1.000000 -0:28 gl_PointSize: direct index for structure ( gl_PointSize highp void PointSize) -0:28 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position}) -0:28 Constant: -0:28 1 (const uint) -0:? Linker Objects -0:? 'outbinst' ( out block{ out highp int a, out highp 4-component vector of float v, out highp sampler2D s}) -0:? 'anon@0' ( out block{layout( location=12) out highp int aAnon, layout( location=13) out highp 4-component vector of float vAnon}) -0:? 'aliased' (layout( location=12) smooth out highp int) -0:? 'inbinst' ( in block{ in highp int a}) -0:? 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position}) -0:? 'smon' ( smooth out block{ out highp int i}) -0:? 'fmon' ( flat out block{ out highp int i}) -0:? 'cmon' ( centroid out block{ out highp int i}) -0:? 'imon' ( invariant out block{ out highp int i}) -0:? 'inf' ( in highp 2-component vector of float) -0:? 'ing' ( in highp 2-component vector of float) -0:? 'offsets' ( uniform 4-element array of highp 2-component vector of int) -0:? 'sArray' ( uniform 4-element array of lowp sampler2D) -0:? 'sIndex' ( uniform highp int) -0:? 'auArray' (layout( binding=0 offset=0) uniform 2-element array of highp atomic_uint) -0:? 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform highp int i}) -0:? 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp int i}) -0:? 'iArray' ( writeonly uniform 5-element array of highp image2D) -0:? 'constOffsets' ( const 4-element array of highp 2-component vector of int) -0:? 0 (const int) -0:? 0 (const int) -0:? 0 (const int) -0:? 0 (const int) -0:? 0 (const int) -0:? 0 (const int) -0:? 0 (const int) -0:? 0 (const int) -0:? 'noPreSamp1' ( uniform mediump samplerBuffer) -0:? 'noPreSamp2' ( uniform mediump isamplerBuffer) -0:? 'noPreSamp3' ( uniform mediump usamplerBuffer) -0:? 'noPreSamp4' ( writeonly uniform mediump imageBuffer) -0:? 'noPreSamp5' ( writeonly uniform mediump iimageBuffer) -0:? 'noPreSamp6' ( writeonly uniform mediump uimageBuffer) -0:? 'bufSamp1' ( uniform highp samplerBuffer) -0:? 'bufSamp2' ( uniform highp isamplerBuffer) -0:? 'bufSamp3' ( uniform highp usamplerBuffer) -0:? 'bufSamp4' ( writeonly uniform highp imageBuffer) -0:? 'bufSamp5' ( writeonly uniform highp iimageBuffer) -0:? 'bufSamp6' ( writeonly uniform highp uimageBuffer) -0:? 'noPreCA1' ( writeonly uniform mediump imageCubeArray) -0:? 'noPreCA2' ( writeonly uniform mediump iimageCubeArray) -0:? 'noPreCA3' ( writeonly uniform mediump uimageCubeArray) -0:? 'noPreCA4' ( uniform mediump samplerCubeArray) -0:? 'noPreCA5' ( uniform mediump samplerCubeArrayShadow) -0:? 'noPreCA6' ( uniform mediump isamplerCubeArray) -0:? 'noPreCA7' ( uniform mediump usamplerCubeArray) -0:? 'CA1' ( writeonly uniform highp imageCubeArray) -0:? 'CA2' ( writeonly uniform highp iimageCubeArray) -0:? 'CA3' ( writeonly uniform highp uimageCubeArray) -0:? 'rCA1' (layout( rgba16f) readonly uniform highp imageCubeArray) -0:? 'rCA2' (layout( rgba32i) readonly uniform highp iimageCubeArray) -0:? 'rCA3' (layout( r32ui) readonly uniform highp uimageCubeArray) -0:? 'CA4' ( uniform highp samplerCubeArray) -0:? 'CA5' ( uniform highp samplerCubeArrayShadow) -0:? 'CA6' ( uniform highp isamplerCubeArray) -0:? 'CA7' ( uniform highp usamplerCubeArray) -0:? 'noPrec2DMS' ( uniform mediump sampler2DMSArray) -0:? 'noPrec2DMSi' ( uniform mediump isampler2DMSArray) -0:? 'noPrec2DMSu' ( uniform mediump usampler2DMSArray) -0:? 'samp2DMSA' ( uniform highp sampler2DMSArray) -0:? 'samp2DMSAi' ( uniform highp isampler2DMSArray) -0:? 'samp2DMSAu' ( uniform highp usampler2DMSArray) -0:? 'im2Df' (layout( r32f) uniform highp image2D) -0:? 'im2Du' (layout( r32ui) uniform highp uimage2D) -0:? 'im2Di' (layout( r32i) uniform highp iimage2D) -0:? 'P' ( uniform highp 2-component vector of int) -0:? 'colorSample' ( smooth sample out highp 4-component vector of float) -0:? 'colorfsi' ( flat sample out highp 4-component vector of float) -0:? 'sampInArray' ( smooth sample out 4-element array of highp 3-component vector of float) -0:? 'inv4' ( in highp 4-component vector of float) -0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) - diff --git a/deps/glslang/Test/baseResults/330.frag.out b/deps/glslang/Test/baseResults/330.frag.out deleted file mode 100644 index d95cd307..00000000 --- a/deps/glslang/Test/baseResults/330.frag.out +++ /dev/null @@ -1,207 +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:138: 'index' : value must be 0 or 1 -ERROR: 0:140: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions -ERROR: 0:146: 'location' : cannot apply to uniform or buffer block -ERROR: 39 compilation errors. No code generated. - - -Shader version: 330 -Requested GL_ARB_enhanced_layouts -Requested GL_ARB_explicit_uniform_location -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: fooKeyMem( ( global void) -0:133 Function Parameters: -0:135 Sequence -0:135 precise: direct index for structure ( global int) -0:135 'KeyMem' ( global structure{ global int precise}) -0:135 Constant: -0:135 0 (const int) -0:152 Function Definition: testOverload( ( global void) -0:152 Function Parameters: -0:153 Sequence -0:153 Sequence -0:153 move second child to first child ( temp float) -0:153 'overloadTest' ( temp float) -0:153 Constant: -0:153 42.000000 -0:154 move second child to first child ( temp float) -0:154 'overloadTest' ( temp float) -0:154 smoothstep ( global float) -0:154 Constant: -0:154 0.000000 -0:154 Constant: -0:154 1.000000 -0:154 'overloadTest' ( temp float) -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:? 'precise' ( global int) -0:? 'KeyMem' ( global structure{ global int precise}) -0:? 'outIndex2' (layout( location=28 index=0) out 4-component vector of float) -0:? 'ucolor0' (layout( location=4) uniform 4-component vector of float) -0:? 'ucolor1' (layout( location=5) uniform 4-component vector of float) -0:? 'colorsBuffer' (layout( location=6 column_major shared) uniform block{layout( column_major shared) uniform 128-element array of 4-component vector of float colors}) - - -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_explicit_uniform_location -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:? 'precise' ( global int) -0:? 'KeyMem' ( global structure{ global int precise}) -0:? 'outIndex2' (layout( location=28 index=0) out 4-component vector of float) -0:? 'ucolor0' (layout( location=4) uniform 4-component vector of float) -0:? 'ucolor1' (layout( location=5) uniform 4-component vector of float) -0:? 'colorsBuffer' (layout( location=6 column_major shared) uniform block{layout( column_major shared) uniform 128-element array of 4-component vector of float colors}) - diff --git a/deps/glslang/Test/baseResults/330comp.frag.out b/deps/glslang/Test/baseResults/330comp.frag.out deleted file mode 100644 index 1b8ded12..00000000 --- a/deps/glslang/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/Test/baseResults/400.frag.out b/deps/glslang/Test/baseResults/400.frag.out deleted file mode 100644 index db3cd243..00000000 --- a/deps/glslang/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: 'gl_Color' : identifiers starting with "gl_" are reserved -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', 'out' or 'shared' 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:? 'gl_Color' (layout( location=5) smooth in 4-component vector of float) -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:? 'gl_Color' (layout( location=5) smooth in 4-component vector of float) -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/Test/baseResults/400.geom.out b/deps/glslang/Test/baseResults/400.geom.out deleted file mode 100644 index 52ebebce..00000000 --- a/deps/glslang/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/Test/baseResults/400.tesc.out b/deps/glslang/Test/baseResults/400.tesc.out deleted file mode 100644 index 0475741f..00000000 --- a/deps/glslang/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/Test/baseResults/400.tese.out b/deps/glslang/Test/baseResults/400.tese.out deleted file mode 100644 index 9580e857..00000000 --- a/deps/glslang/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/Test/baseResults/400.vert.out b/deps/glslang/Test/baseResults/400.vert.out deleted file mode 100644 index 05f58e2d..00000000 --- a/deps/glslang/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/Test/baseResults/410.geom.out b/deps/glslang/Test/baseResults/410.geom.out deleted file mode 100644 index 3cc7900c..00000000 --- a/deps/glslang/Test/baseResults/410.geom.out +++ /dev/null @@ -1,83 +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 'gl_in' -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' : l-value required "gl_PerVertex" (can't modify void) -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: 8 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/Test/baseResults/410.tesc.out b/deps/glslang/Test/baseResults/410.tesc.out deleted file mode 100644 index 0a397fdd..00000000 --- a/deps/glslang/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/Test/baseResults/410.vert.out b/deps/glslang/Test/baseResults/410.vert.out deleted file mode 100644 index 79268bc9..00000000 --- a/deps/glslang/Test/baseResults/410.vert.out +++ /dev/null @@ -1,39 +0,0 @@ -410.vert -Shader version: 410 -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 int) -0:9 'test' ( temp int) -0:9 Constant: -0:9 16 (const 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: 410 -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 int) -0:9 'test' ( temp int) -0:9 Constant: -0:9 16 (const 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) - diff --git a/deps/glslang/Test/baseResults/420.comp.out b/deps/glslang/Test/baseResults/420.comp.out deleted file mode 100644 index 4e091acf..00000000 --- a/deps/glslang/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/Test/baseResults/420.frag.out b/deps/glslang/Test/baseResults/420.frag.out deleted file mode 100644 index 19b5c9b9..00000000 --- a/deps/glslang/Test/baseResults/420.frag.out +++ /dev/null @@ -1,124 +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: 0:17: 'imageSize' : required extension not requested: GL_ARB_shader_image_size -ERROR: 0:54: 'std430' : not supported for this version or the enabled extensions -ERROR: 0:54: '' : syntax error, unexpected IDENTIFIER, expecting LEFT_BRACE or COMMA or SEMICOLON -ERROR: 7 compilation errors. No code generated. - - -Shader version: 420 -Requested GL_ARB_shader_image_size -Requested GL_ARB_shader_storage_buffer_object -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:17 Sequence -0:17 move second child to first child ( temp 2-component vector of int) -0:17 'iv2dim' ( global 2-component vector of int) -0:17 imageQuerySize ( global 2-component vector of int) -0:17 'i2D' ( writeonly uniform image2D) -0:19 Sequence -0:19 move second child to first child ( temp 2-component vector of int) -0:19 'iv2dim1' ( global 2-component vector of int) -0:19 imageQuerySize ( global 2-component vector of int) -0:19 'i2D' ( writeonly uniform image2D) -0:29 Function Definition: atomicOpPass( ( global void) -0:29 Function Parameters: -0:31 Sequence -0:31 Sequence -0:31 move second child to first child ( temp int) -0:31 'origi' ( temp int) -0:31 AtomicAdd ( global int) -0:31 atomi: direct index for structure (layout( column_major std430 offset=0) buffer int) -0:31 'anon@0' (layout( binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer int atomi, layout( column_major std430 offset=4) buffer uint atomu}) -0:31 Constant: -0:31 0 (const uint) -0:31 Constant: -0:31 3 (const int) -0:32 Sequence -0:32 move second child to first child ( temp uint) -0:32 'origu' ( temp uint) -0:32 AtomicAnd ( global uint) -0:32 atomu: direct index for structure (layout( column_major std430 offset=4) buffer uint) -0:32 'anon@0' (layout( binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer int atomi, layout( column_major std430 offset=4) buffer uint atomu}) -0:32 Constant: -0:32 1 (const uint) -0:32 Constant: -0:32 7 (const uint) -0:33 move second child to first child ( temp int) -0:33 'origi' ( temp int) -0:33 AtomicExchange ( global int) -0:33 atomi: direct index for structure (layout( column_major std430 offset=0) buffer int) -0:33 'anon@0' (layout( binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer int atomi, layout( column_major std430 offset=4) buffer uint atomu}) -0:33 Constant: -0:33 0 (const uint) -0:33 Constant: -0:33 4 (const int) -0:34 move second child to first child ( temp uint) -0:34 'origu' ( temp uint) -0:34 AtomicCompSwap ( global uint) -0:34 atomu: direct index for structure (layout( column_major std430 offset=4) buffer uint) -0:34 'anon@0' (layout( binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer int atomi, layout( column_major std430 offset=4) buffer uint atomu}) -0:34 Constant: -0:34 1 (const uint) -0:34 Constant: -0:34 10 (const uint) -0:34 Constant: -0:34 8 (const uint) -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) -0:? 'i2D' ( writeonly uniform image2D) -0:? 'iv2dim' ( global 2-component vector of int) -0:? 'iv2dim1' ( global 2-component vector of int) -0:? 'anon@0' (layout( binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer int atomi, layout( column_major std430 offset=4) buffer uint atomu}) -0:? 'ssboStd430Arr' (layout( binding=2 column_major std430) buffer 2-element array of block{layout( column_major std430 offset=0) buffer int member01, layout( column_major std430 offset=4) buffer 2-element array of int memberArr01, layout( column_major std430 offset=12) buffer unsized 1-element array of int memberUnsizedArr01}) -0:? 'ssboSharedArr' (layout( binding=3 column_major shared) buffer 2-element array of block{layout( column_major shared) buffer int member02, layout( column_major shared) buffer 2-element array of int memberArr02, layout( column_major shared) buffer unsized 1-element array of int memberUnsizedArr02}) - - -Linked fragment stage: - - -Shader version: 420 -Requested GL_ARB_shader_image_size -Requested GL_ARB_shader_storage_buffer_object -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:17 Sequence -0:17 move second child to first child ( temp 2-component vector of int) -0:17 'iv2dim' ( global 2-component vector of int) -0:17 imageQuerySize ( global 2-component vector of int) -0:17 'i2D' ( writeonly uniform image2D) -0:19 Sequence -0:19 move second child to first child ( temp 2-component vector of int) -0:19 'iv2dim1' ( global 2-component vector of int) -0:19 imageQuerySize ( global 2-component vector of int) -0:19 'i2D' ( writeonly uniform image2D) -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:? 'i2D' ( writeonly uniform image2D) -0:? 'iv2dim' ( global 2-component vector of int) -0:? 'iv2dim1' ( global 2-component vector of int) -0:? 'anon@0' (layout( binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer int atomi, layout( column_major std430 offset=4) buffer uint atomu}) -0:? 'ssboStd430Arr' (layout( binding=2 column_major std430) buffer 2-element array of block{layout( column_major std430 offset=0) buffer int member01, layout( column_major std430 offset=4) buffer 2-element array of int memberArr01, layout( column_major std430 offset=12) buffer unsized 1-element array of int memberUnsizedArr01}) -0:? 'ssboSharedArr' (layout( binding=3 column_major shared) buffer 2-element array of block{layout( column_major shared) buffer int member02, layout( column_major shared) buffer 2-element array of int memberArr02, layout( column_major shared) buffer unsized 1-element array of int memberUnsizedArr02}) - diff --git a/deps/glslang/Test/baseResults/420.geom.out b/deps/glslang/Test/baseResults/420.geom.out deleted file mode 100644 index 6bf6eb37..00000000 --- a/deps/glslang/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/Test/baseResults/420.tesc.out b/deps/glslang/Test/baseResults/420.tesc.out deleted file mode 100644 index 4410c846..00000000 --- a/deps/glslang/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 'gl_out' -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/Test/baseResults/420.tese.out b/deps/glslang/Test/baseResults/420.tese.out deleted file mode 100644 index 71fca85e..00000000 --- a/deps/glslang/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/Test/baseResults/420.vert.out b/deps/glslang/Test/baseResults/420.vert.out deleted file mode 100644 index b3d9e702..00000000 --- a/deps/glslang/Test/baseResults/420.vert.out +++ /dev/null @@ -1,395 +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:134: 'format' : image formats must match -ERROR: 0:135: 'volatile' : argument cannot drop memory qualifier when passed to formal parameter -ERROR: 0:135: 'format' : image formats must match -ERROR: 0:136: 'format' : image formats must match -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, std430, or scalar 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: 54 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:? 'u_sampler0' (layout( binding=74) uniform 6-element array of sampler2D) -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:? 'u_sampler0' (layout( binding=74) uniform 6-element array of sampler2D) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - diff --git a/deps/glslang/Test/baseResults/420_size_gl_in.geom.out b/deps/glslang/Test/baseResults/420_size_gl_in.geom.out deleted file mode 100644 index 9d95495b..00000000 --- a/deps/glslang/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/Test/baseResults/430.comp.out b/deps/glslang/Test/baseResults/430.comp.out deleted file mode 100644 index 4d8495bc..00000000 --- a/deps/glslang/Test/baseResults/430.comp.out +++ /dev/null @@ -1,220 +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 block' : not supported for this version or the enabled extensions -ERROR: 0:48: 'location' : can only apply to uniform, buffer, in, or out storage qualifiers -ERROR: 0:49: 'shared' : initializer can only be a null initializer ('{}') -ERROR: 0:52: 'local_size' : cannot change previously set size -ERROR: 0:54: 'local_size' : can only apply to 'in' -ERROR: 0:54: 'local_size' : can only apply to 'in' -ERROR: 0:54: 'local_size' : can only apply to 'in' -ERROR: 0:68: 'assign' : l-value required "ro" (can't modify a readonly buffer) -ERROR: 0:80: '=' : cannot convert from ' temp double' to ' temp int' -ERROR: 0:84: 'input block' : not supported in this stage: compute -ERROR: 0:88: 'output block' : not supported in this stage: compute -ERROR: 17 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:49 Sequence -0:49 move second child to first child ( temp float) -0:49 'fs' ( shared float) -0:49 Constant: -0:49 4.200000 -0:66 Function Definition: foo( ( global void) -0:66 Function Parameters: -0:68 Sequence -0:68 move second child to first child ( temp float) -0:68 direct index (layout( column_major shared) readonly temp float) -0:68 values: direct index for structure (layout( column_major shared) readonly buffer unsized 3-element array of float) -0:68 'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) readonly buffer int value, layout( column_major shared) readonly buffer unsized 3-element array of float values}) -0:68 Constant: -0:68 1 (const int) -0:68 Constant: -0:68 2 (const int) -0:68 Constant: -0:68 4.700000 -0:69 array length ( temp int) -0:69 values: direct index for structure (layout( column_major shared) readonly buffer unsized 3-element array of float) -0:69 'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) readonly buffer int value, layout( column_major shared) readonly buffer unsized 3-element array of float values}) -0:69 Constant: -0:69 1 (const int) -0:70 Barrier ( global void) -0:75 Function Definition: fooaoeu( ( global void) -0:75 Function Parameters: -0:76 Sequence -0:76 Sequence -0:76 move second child to first child ( temp 2-component vector of int) -0:76 'storePos' ( temp 2-component vector of int) -0:76 Convert uint to int ( temp 2-component vector of int) -0:76 vector swizzle ( temp 2-component vector of uint) -0:76 'gl_GlobalInvocationID' ( in 3-component vector of uint GlobalInvocationID) -0:76 Sequence -0:76 Constant: -0:76 0 (const int) -0:76 Constant: -0:76 1 (const int) -0:77 Sequence -0:77 move second child to first child ( temp double) -0:77 'localCoef' ( temp double) -0:77 Convert float to double ( temp double) -0:77 length ( global float) -0:77 divide ( temp 2-component vector of float) -0:77 Convert int to float ( temp 2-component vector of float) -0:77 subtract ( temp 2-component vector of int) -0:77 Convert uint to int ( temp 2-component vector of int) -0:77 vector swizzle ( temp 2-component vector of uint) -0:77 'gl_LocalInvocationID' ( in 3-component vector of uint LocalInvocationID) -0:77 Sequence -0:77 Constant: -0:77 0 (const int) -0:77 Constant: -0:77 1 (const int) -0:77 Constant: -0:77 8 (const int) -0:77 Constant: -0:77 8.000000 -0:78 Sequence -0:78 move second child to first child ( temp 4-component vector of double) -0:78 'aa' ( temp 4-component vector of double) -0:78 Constant: -0:78 0.400000 -0:78 0.200000 -0:78 0.300000 -0:78 0.400000 -0:79 Sequence -0:79 move second child to first child ( temp double) -0:79 'globalCoef' ( temp double) -0:79 Constant: -0:79 1.000000 -0:81 Sequence -0:81 move second child to first child ( temp double) -0:81 'di' ( temp double) -0:81 Convert int to double ( temp double) -0:81 '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) readonly buffer int value, layout( column_major shared) readonly 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:49 Sequence -0:49 move second child to first child ( temp float) -0:49 'fs' ( shared float) -0:49 Constant: -0:49 4.200000 -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) readonly buffer int value, layout( column_major shared) readonly 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/Test/baseResults/430.vert.out b/deps/glslang/Test/baseResults/430.vert.out deleted file mode 100644 index db56eab9..00000000 --- a/deps/glslang/Test/baseResults/430.vert.out +++ /dev/null @@ -1,341 +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:51: 'location' : needs a literal integer -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, std430, or scalar layout packing -ERROR: 0:65: 'offset/align' : can only be used with std140, std430, or scalar layout packing -ERROR: 0:66: 'offset/align' : can only be used with std140, std430, or scalar 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: 65 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/Test/baseResults/430AofA.frag.out b/deps/glslang/Test/baseResults/430AofA.frag.out deleted file mode 100644 index ac23dacb..00000000 --- a/deps/glslang/Test/baseResults/430AofA.frag.out +++ /dev/null @@ -1,774 +0,0 @@ -430AofA.frag -ERROR: 0:6: '[]' : only outermost dimension of an array of arrays can be implicitly sized -ERROR: 0:14: 'constructor' : constructing non-array constituent from array argument -ERROR: 0:15: 'constructor' : array constructor argument not correct type to construct array element -ERROR: 0:28: '[' : array index out of range '4' -ERROR: 0:56: 'constructor' : cannot convert parameter 2 from ' const 3-element array of 4-component vector of float' to ' temp 2-element array of 4-component vector of float' -ERROR: 0:60: 'constructor' : cannot convert parameter 2 from ' const 2-element array of 4-component vector of float' to ' temp 3-element array of 4-component vector of float' -ERROR: 0:64: '=' : cannot convert from ' const 3-element array of 2-element array of 4-component vector of float' to ' temp 4-element array of 2-element array of 4-component vector of float' -ERROR: 0:70: 'assign' : cannot convert from ' global 4-element array of 7-element array of float' to ' global 5-element array of 7-element array of float' -ERROR: 0:71: 'assign' : cannot convert from ' global 4-element array of 7-element array of float' to ' global unsized 1-element array of 7-element array of float' -ERROR: 0:73: 'foo' : no matching overloaded function found -ERROR: 0:78: '==' : wrong operand types: no operation '==' exists that takes a left-hand operand of type ' global 4-element array of 7-element array of float' and a right operand of type ' global 5-element array of 7-element array of float' (or there is no acceptable conversion) -ERROR: 0:84: '[' : array index out of range '5' -ERROR: 0:91: 'length' : array must be declared with a size before using this method -ERROR: 0:93: 'length' : array must be declared with a size before using this method -ERROR: 0:98: 'length' : does not operate on this type: temp float -ERROR: 0:98: '' : function call, method, or subroutine call expected -ERROR: 0:98: '' : no matching overloaded function found -ERROR: 0:101: 'resize2' : redeclaration of array with a different array dimensions or sizes -ERROR: 0:104: 'resize3' : redeclaration of array with a different array dimensions or sizes -ERROR: 0:107: 'resize4' : redeclaration of array with a different element type -ERROR: 20 compilation errors. No code generated. - - -Shader version: 430 -ERROR: node is still EOpNull! -0:10 Function Definition: foo(f1[5][7]; ( global 4-element array of 7-element array of float) -0:10 Function Parameters: -0:10 'a' ( in 5-element array of 7-element array of float) -0:? Sequence -0:13 move second child to first child ( temp 7-element array of float) -0:13 'r' ( temp 7-element array of float) -0:13 direct index ( temp 7-element array of float) -0:13 'a' ( in 5-element array of 7-element array of float) -0:13 Constant: -0:13 2 (const int) -0:14 Constant: -0:14 0.000000 -0:15 Constant: -0:15 0.000000 -0:16 Branch: Return with expression -0:16 Construct float ( temp 4-element array of 7-element array of float) -0:16 direct index ( temp 7-element array of float) -0:16 'a' ( in 5-element array of 7-element array of float) -0:16 Constant: -0:16 0 (const int) -0:16 direct index ( temp 7-element array of float) -0:16 'a' ( in 5-element array of 7-element array of float) -0:16 Constant: -0:16 1 (const int) -0:16 'r' ( temp 7-element array of float) -0:16 direct index ( temp 7-element array of float) -0:16 'a' ( in 5-element array of 7-element array of float) -0:16 Constant: -0:16 3 (const int) -0:17 Branch: Return with expression -0:17 Construct float ( temp 4-element array of 7-element array of float) -0:17 direct index ( temp 7-element array of float) -0:17 'a' ( in 5-element array of 7-element array of float) -0:17 Constant: -0:17 0 (const int) -0:17 direct index ( temp 7-element array of float) -0:17 'a' ( in 5-element array of 7-element array of float) -0:17 Constant: -0:17 1 (const int) -0:17 'r' ( temp 7-element array of float) -0:17 direct index ( temp 7-element array of float) -0:17 'a' ( in 5-element array of 7-element array of float) -0:17 Constant: -0:17 3 (const int) -0:18 Branch: Return with expression -0:18 Construct float ( temp 4-element array of 7-element array of float) -0:18 direct index ( temp 7-element array of float) -0:18 'a' ( in 5-element array of 7-element array of float) -0:18 Constant: -0:18 0 (const int) -0:18 direct index ( temp 7-element array of float) -0:18 'a' ( in 5-element array of 7-element array of float) -0:18 Constant: -0:18 1 (const int) -0:18 direct index ( temp 7-element array of float) -0:18 'a' ( in 5-element array of 7-element array of float) -0:18 Constant: -0:18 2 (const int) -0:18 direct index ( temp 7-element array of float) -0:18 'a' ( in 5-element array of 7-element array of float) -0:18 Constant: -0:18 3 (const int) -0:21 Function Definition: bar(f1[5][7]; ( global void) -0:21 Function Parameters: -0:21 '' ( in 5-element array of 7-element array of float) -0:23 Function Definition: main( ( global void) -0:23 Function Parameters: -0:? Sequence -0:? Sequence -0:28 move second child to first child ( temp float) -0:28 direct index ( temp float) -0:28 direct index ( temp 2-element array of float) -0:28 direct index ( temp 4-element array of 2-element array of float) -0:28 'gu' ( temp 3-element array of 4-element array of 2-element array of float) -0:28 Constant: -0:28 2 (const int) -0:28 Constant: -0:28 4 (const int) -0:28 Constant: -0:28 1 (const int) -0:28 Constant: -0:28 4.000000 -0:30 Sequence -0:30 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) -0:30 'ca4' ( temp 3-element array of 2-element array of 4-component vector of float) -0:32 Constant: -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:32 1.000000 -0:32 1.000000 -0:32 1.000000 -0:32 1.000000 -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:32 1.000000 -0:32 1.000000 -0:32 1.000000 -0:32 1.000000 -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:32 1.000000 -0:32 1.000000 -0:32 1.000000 -0:32 1.000000 -0:33 Sequence -0:33 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) -0:33 'caim' ( temp 3-element array of 2-element array of 4-component vector of float) -0:35 Constant: -0:35 4.000000 -0:35 4.000000 -0:35 4.000000 -0:35 4.000000 -0:35 2.000000 -0:35 2.000000 -0:35 2.000000 -0:35 2.000000 -0:35 4.000000 -0:35 4.000000 -0:35 4.000000 -0:35 4.000000 -0:35 2.000000 -0:35 2.000000 -0:35 2.000000 -0:35 2.000000 -0:35 4.000000 -0:35 4.000000 -0:35 4.000000 -0:35 4.000000 -0:35 2.000000 -0:35 2.000000 -0:35 2.000000 -0:35 2.000000 -0:36 Sequence -0:36 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) -0:36 'caim2' ( temp 3-element array of 2-element array of 4-component vector of float) -0:38 Constant: -0:38 4.000000 -0:38 4.000000 -0:38 4.000000 -0:38 4.000000 -0:38 2.000000 -0:38 2.000000 -0:38 2.000000 -0:38 2.000000 -0:38 4.000000 -0:38 4.000000 -0:38 4.000000 -0:38 4.000000 -0:38 2.000000 -0:38 2.000000 -0:38 2.000000 -0:38 2.000000 -0:38 4.000000 -0:38 4.000000 -0:38 4.000000 -0:38 4.000000 -0:38 2.000000 -0:38 2.000000 -0:38 2.000000 -0:38 2.000000 -0:39 Sequence -0:39 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) -0:39 'caim3' ( temp 3-element array of 2-element array of 4-component vector of float) -0:41 Constant: -0:41 4.000000 -0:41 4.000000 -0:41 4.000000 -0:41 4.000000 -0:41 2.000000 -0:41 2.000000 -0:41 2.000000 -0:41 2.000000 -0:41 4.000000 -0:41 4.000000 -0:41 4.000000 -0:41 4.000000 -0:41 2.000000 -0:41 2.000000 -0:41 2.000000 -0:41 2.000000 -0:41 4.000000 -0:41 4.000000 -0:41 4.000000 -0:41 4.000000 -0:41 2.000000 -0:41 2.000000 -0:41 2.000000 -0:41 2.000000 -0:43 Sequence -0:43 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) -0:43 'a4' ( temp 3-element array of 2-element array of 4-component vector of float) -0:43 Constant: -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 1.000000 -0:43 1.000000 -0:43 1.000000 -0:43 1.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 1.000000 -0:43 1.000000 -0:43 1.000000 -0:43 1.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 1.000000 -0:43 1.000000 -0:43 1.000000 -0:43 1.000000 -0:46 Sequence -0:46 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) -0:46 'aim' ( temp 3-element array of 2-element array of 4-component vector of float) -0:46 Constant: -0:46 4.000000 -0:46 4.000000 -0:46 4.000000 -0:46 4.000000 -0:46 2.000000 -0:46 2.000000 -0:46 2.000000 -0:46 2.000000 -0:46 4.000000 -0:46 4.000000 -0:46 4.000000 -0:46 4.000000 -0:46 2.000000 -0:46 2.000000 -0:46 2.000000 -0:46 2.000000 -0:46 4.000000 -0:46 4.000000 -0:46 4.000000 -0:46 4.000000 -0:46 2.000000 -0:46 2.000000 -0:46 2.000000 -0:46 2.000000 -0:49 Sequence -0:49 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) -0:49 'aim2' ( temp 3-element array of 2-element array of 4-component vector of float) -0:49 Constant: -0:49 4.000000 -0:49 4.000000 -0:49 4.000000 -0:49 4.000000 -0:49 2.000000 -0:49 2.000000 -0:49 2.000000 -0:49 2.000000 -0:49 4.000000 -0:49 4.000000 -0:49 4.000000 -0:49 4.000000 -0:49 2.000000 -0:49 2.000000 -0:49 2.000000 -0:49 2.000000 -0:49 4.000000 -0:49 4.000000 -0:49 4.000000 -0:49 4.000000 -0:49 2.000000 -0:49 2.000000 -0:49 2.000000 -0:49 2.000000 -0:52 Sequence -0:52 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) -0:52 'aim3' ( temp 3-element array of 2-element array of 4-component vector of float) -0:52 Constant: -0:52 4.000000 -0:52 4.000000 -0:52 4.000000 -0:52 4.000000 -0:52 2.000000 -0:52 2.000000 -0:52 2.000000 -0:52 2.000000 -0:52 4.000000 -0:52 4.000000 -0:52 4.000000 -0:52 4.000000 -0:52 2.000000 -0:52 2.000000 -0:52 2.000000 -0:52 2.000000 -0:52 4.000000 -0:52 4.000000 -0:52 4.000000 -0:52 4.000000 -0:52 2.000000 -0:52 2.000000 -0:52 2.000000 -0:52 2.000000 -0:69 move second child to first child ( temp 4-element array of 7-element array of float) -0:69 'g4' ( global 4-element array of 7-element array of float) -0:69 Function Call: foo(f1[5][7]; ( global 4-element array of 7-element array of float) -0:69 'g5' ( global 5-element array of 7-element array of float) -0:70 'g5' ( global 5-element array of 7-element array of float) -0:71 'gu' ( global unsized 1-element array of 7-element array of float) -0:73 Constant: -0:73 0.000000 -0:74 Function Call: bar(f1[5][7]; ( global void) -0:74 'g5' ( global 5-element array of 7-element array of float) -0:76 Test condition and select ( temp void) -0:76 Condition -0:76 Compare Equal ( temp bool) -0:76 Function Call: foo(f1[5][7]; ( global 4-element array of 7-element array of float) -0:76 'g5' ( global 5-element array of 7-element array of float) -0:76 'g4' ( global 4-element array of 7-element array of float) -0:76 true case is null -0:78 Test condition and select ( temp void) -0:78 Condition -0:78 Constant: -0:78 false (const bool) -0:78 true case is null -0:82 move second child to first child ( temp float) -0:82 direct index ( temp float) -0:82 direct index ( temp 7-element array of float) -0:82 'u' ( temp 5-element array of 7-element array of float) -0:82 Constant: -0:82 2 (const int) -0:82 Constant: -0:82 2 (const int) -0:82 Constant: -0:82 3.000000 -0:84 move second child to first child ( temp float) -0:84 direct index ( temp float) -0:84 direct index ( temp 7-element array of float) -0:84 'u' ( temp 5-element array of 7-element array of float) -0:84 Constant: -0:84 5 (const int) -0:84 Constant: -0:84 2 (const int) -0:84 Constant: -0:84 5.000000 -0:85 Function Call: foo(f1[5][7]; ( global 4-element array of 7-element array of float) -0:85 'u' ( temp 5-element array of 7-element array of float) -0:88 Function Definition: foo3( ( global void) -0:88 Function Parameters: -0:? Sequence -0:91 Constant: -0:91 1 (const int) -0:92 move second child to first child ( temp float) -0:92 direct index ( temp float) -0:92 direct index ( temp 7-element array of float) -0:92 direct index ( temp 5-element array of 7-element array of float) -0:92 'resize1' ( temp 3-element array of 5-element array of 7-element array of float) -0:92 Constant: -0:92 1 (const int) -0:92 Constant: -0:92 4 (const int) -0:92 Constant: -0:92 5 (const int) -0:92 Constant: -0:92 2.000000 -0:93 Constant: -0:93 1 (const int) -0:95 Constant: -0:95 3 (const int) -0:96 Constant: -0:96 5 (const int) -0:97 Constant: -0:97 7 (const int) -0:98 Constant: -0:98 0.000000 -0:? Linker Objects -0:? 'many' ( global 1-element array of 2-element array of 3-element array of 4-element array of 5-element array of 6-element array of float) -0:? 'gu' ( global unsized 1-element array of 7-element array of float) -0:? 'gimp' ( global unsized 1-element array of 1-element array of float) -0:? 'g4' ( global 4-element array of 7-element array of float) -0:? 'g5' ( global 5-element array of 7-element array of float) - - -Linked fragment stage: - - -Shader version: 430 -ERROR: node is still EOpNull! -0:10 Function Definition: foo(f1[5][7]; ( global 4-element array of 7-element array of float) -0:10 Function Parameters: -0:10 'a' ( in 5-element array of 7-element array of float) -0:? Sequence -0:13 move second child to first child ( temp 7-element array of float) -0:13 'r' ( temp 7-element array of float) -0:13 direct index ( temp 7-element array of float) -0:13 'a' ( in 5-element array of 7-element array of float) -0:13 Constant: -0:13 2 (const int) -0:14 Constant: -0:14 0.000000 -0:15 Constant: -0:15 0.000000 -0:16 Branch: Return with expression -0:16 Construct float ( temp 4-element array of 7-element array of float) -0:16 direct index ( temp 7-element array of float) -0:16 'a' ( in 5-element array of 7-element array of float) -0:16 Constant: -0:16 0 (const int) -0:16 direct index ( temp 7-element array of float) -0:16 'a' ( in 5-element array of 7-element array of float) -0:16 Constant: -0:16 1 (const int) -0:16 'r' ( temp 7-element array of float) -0:16 direct index ( temp 7-element array of float) -0:16 'a' ( in 5-element array of 7-element array of float) -0:16 Constant: -0:16 3 (const int) -0:17 Branch: Return with expression -0:17 Construct float ( temp 4-element array of 7-element array of float) -0:17 direct index ( temp 7-element array of float) -0:17 'a' ( in 5-element array of 7-element array of float) -0:17 Constant: -0:17 0 (const int) -0:17 direct index ( temp 7-element array of float) -0:17 'a' ( in 5-element array of 7-element array of float) -0:17 Constant: -0:17 1 (const int) -0:17 'r' ( temp 7-element array of float) -0:17 direct index ( temp 7-element array of float) -0:17 'a' ( in 5-element array of 7-element array of float) -0:17 Constant: -0:17 3 (const int) -0:18 Branch: Return with expression -0:18 Construct float ( temp 4-element array of 7-element array of float) -0:18 direct index ( temp 7-element array of float) -0:18 'a' ( in 5-element array of 7-element array of float) -0:18 Constant: -0:18 0 (const int) -0:18 direct index ( temp 7-element array of float) -0:18 'a' ( in 5-element array of 7-element array of float) -0:18 Constant: -0:18 1 (const int) -0:18 direct index ( temp 7-element array of float) -0:18 'a' ( in 5-element array of 7-element array of float) -0:18 Constant: -0:18 2 (const int) -0:18 direct index ( temp 7-element array of float) -0:18 'a' ( in 5-element array of 7-element array of float) -0:18 Constant: -0:18 3 (const int) -0:21 Function Definition: bar(f1[5][7]; ( global void) -0:21 Function Parameters: -0:21 '' ( in 5-element array of 7-element array of float) -0:23 Function Definition: main( ( global void) -0:23 Function Parameters: -0:? Sequence -0:? Sequence -0:28 move second child to first child ( temp float) -0:28 direct index ( temp float) -0:28 direct index ( temp 2-element array of float) -0:28 direct index ( temp 4-element array of 2-element array of float) -0:28 'gu' ( temp 3-element array of 4-element array of 2-element array of float) -0:28 Constant: -0:28 2 (const int) -0:28 Constant: -0:28 4 (const int) -0:28 Constant: -0:28 1 (const int) -0:28 Constant: -0:28 4.000000 -0:30 Sequence -0:30 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) -0:30 'ca4' ( temp 3-element array of 2-element array of 4-component vector of float) -0:32 Constant: -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:32 1.000000 -0:32 1.000000 -0:32 1.000000 -0:32 1.000000 -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:32 1.000000 -0:32 1.000000 -0:32 1.000000 -0:32 1.000000 -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:32 1.000000 -0:32 1.000000 -0:32 1.000000 -0:32 1.000000 -0:33 Sequence -0:33 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) -0:33 'caim' ( temp 3-element array of 2-element array of 4-component vector of float) -0:35 Constant: -0:35 4.000000 -0:35 4.000000 -0:35 4.000000 -0:35 4.000000 -0:35 2.000000 -0:35 2.000000 -0:35 2.000000 -0:35 2.000000 -0:35 4.000000 -0:35 4.000000 -0:35 4.000000 -0:35 4.000000 -0:35 2.000000 -0:35 2.000000 -0:35 2.000000 -0:35 2.000000 -0:35 4.000000 -0:35 4.000000 -0:35 4.000000 -0:35 4.000000 -0:35 2.000000 -0:35 2.000000 -0:35 2.000000 -0:35 2.000000 -0:36 Sequence -0:36 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) -0:36 'caim2' ( temp 3-element array of 2-element array of 4-component vector of float) -0:38 Constant: -0:38 4.000000 -0:38 4.000000 -0:38 4.000000 -0:38 4.000000 -0:38 2.000000 -0:38 2.000000 -0:38 2.000000 -0:38 2.000000 -0:38 4.000000 -0:38 4.000000 -0:38 4.000000 -0:38 4.000000 -0:38 2.000000 -0:38 2.000000 -0:38 2.000000 -0:38 2.000000 -0:38 4.000000 -0:38 4.000000 -0:38 4.000000 -0:38 4.000000 -0:38 2.000000 -0:38 2.000000 -0:38 2.000000 -0:38 2.000000 -0:39 Sequence -0:39 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) -0:39 'caim3' ( temp 3-element array of 2-element array of 4-component vector of float) -0:41 Constant: -0:41 4.000000 -0:41 4.000000 -0:41 4.000000 -0:41 4.000000 -0:41 2.000000 -0:41 2.000000 -0:41 2.000000 -0:41 2.000000 -0:41 4.000000 -0:41 4.000000 -0:41 4.000000 -0:41 4.000000 -0:41 2.000000 -0:41 2.000000 -0:41 2.000000 -0:41 2.000000 -0:41 4.000000 -0:41 4.000000 -0:41 4.000000 -0:41 4.000000 -0:41 2.000000 -0:41 2.000000 -0:41 2.000000 -0:41 2.000000 -0:43 Sequence -0:43 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) -0:43 'a4' ( temp 3-element array of 2-element array of 4-component vector of float) -0:43 Constant: -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 1.000000 -0:43 1.000000 -0:43 1.000000 -0:43 1.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 1.000000 -0:43 1.000000 -0:43 1.000000 -0:43 1.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 1.000000 -0:43 1.000000 -0:43 1.000000 -0:43 1.000000 -0:46 Sequence -0:46 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) -0:46 'aim' ( temp 3-element array of 2-element array of 4-component vector of float) -0:46 Constant: -0:46 4.000000 -0:46 4.000000 -0:46 4.000000 -0:46 4.000000 -0:46 2.000000 -0:46 2.000000 -0:46 2.000000 -0:46 2.000000 -0:46 4.000000 -0:46 4.000000 -0:46 4.000000 -0:46 4.000000 -0:46 2.000000 -0:46 2.000000 -0:46 2.000000 -0:46 2.000000 -0:46 4.000000 -0:46 4.000000 -0:46 4.000000 -0:46 4.000000 -0:46 2.000000 -0:46 2.000000 -0:46 2.000000 -0:46 2.000000 -0:49 Sequence -0:49 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) -0:49 'aim2' ( temp 3-element array of 2-element array of 4-component vector of float) -0:49 Constant: -0:49 4.000000 -0:49 4.000000 -0:49 4.000000 -0:49 4.000000 -0:49 2.000000 -0:49 2.000000 -0:49 2.000000 -0:49 2.000000 -0:49 4.000000 -0:49 4.000000 -0:49 4.000000 -0:49 4.000000 -0:49 2.000000 -0:49 2.000000 -0:49 2.000000 -0:49 2.000000 -0:49 4.000000 -0:49 4.000000 -0:49 4.000000 -0:49 4.000000 -0:49 2.000000 -0:49 2.000000 -0:49 2.000000 -0:49 2.000000 -0:52 Sequence -0:52 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) -0:52 'aim3' ( temp 3-element array of 2-element array of 4-component vector of float) -0:52 Constant: -0:52 4.000000 -0:52 4.000000 -0:52 4.000000 -0:52 4.000000 -0:52 2.000000 -0:52 2.000000 -0:52 2.000000 -0:52 2.000000 -0:52 4.000000 -0:52 4.000000 -0:52 4.000000 -0:52 4.000000 -0:52 2.000000 -0:52 2.000000 -0:52 2.000000 -0:52 2.000000 -0:52 4.000000 -0:52 4.000000 -0:52 4.000000 -0:52 4.000000 -0:52 2.000000 -0:52 2.000000 -0:52 2.000000 -0:52 2.000000 -0:69 move second child to first child ( temp 4-element array of 7-element array of float) -0:69 'g4' ( global 4-element array of 7-element array of float) -0:69 Function Call: foo(f1[5][7]; ( global 4-element array of 7-element array of float) -0:69 'g5' ( global 5-element array of 7-element array of float) -0:70 'g5' ( global 5-element array of 7-element array of float) -0:71 'gu' ( global 1-element array of 7-element array of float) -0:73 Constant: -0:73 0.000000 -0:74 Function Call: bar(f1[5][7]; ( global void) -0:74 'g5' ( global 5-element array of 7-element array of float) -0:76 Test condition and select ( temp void) -0:76 Condition -0:76 Compare Equal ( temp bool) -0:76 Function Call: foo(f1[5][7]; ( global 4-element array of 7-element array of float) -0:76 'g5' ( global 5-element array of 7-element array of float) -0:76 'g4' ( global 4-element array of 7-element array of float) -0:76 true case is null -0:78 Test condition and select ( temp void) -0:78 Condition -0:78 Constant: -0:78 false (const bool) -0:78 true case is null -0:82 move second child to first child ( temp float) -0:82 direct index ( temp float) -0:82 direct index ( temp 7-element array of float) -0:82 'u' ( temp 5-element array of 7-element array of float) -0:82 Constant: -0:82 2 (const int) -0:82 Constant: -0:82 2 (const int) -0:82 Constant: -0:82 3.000000 -0:84 move second child to first child ( temp float) -0:84 direct index ( temp float) -0:84 direct index ( temp 7-element array of float) -0:84 'u' ( temp 5-element array of 7-element array of float) -0:84 Constant: -0:84 5 (const int) -0:84 Constant: -0:84 2 (const int) -0:84 Constant: -0:84 5.000000 -0:85 Function Call: foo(f1[5][7]; ( global 4-element array of 7-element array of float) -0:85 'u' ( temp 5-element array of 7-element array of float) -0:? Linker Objects -0:? 'many' ( global 1-element array of 2-element array of 3-element array of 4-element array of 5-element array of 6-element array of float) -0:? 'gu' ( global 1-element array of 7-element array of float) -0:? 'gimp' ( global 1-element array of 1-element array of float) -0:? 'g4' ( global 4-element array of 7-element array of float) -0:? 'g5' ( global 5-element array of 7-element array of float) - diff --git a/deps/glslang/Test/baseResults/430scope.vert.out b/deps/glslang/Test/baseResults/430scope.vert.out deleted file mode 100644 index ad831417..00000000 --- a/deps/glslang/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}) -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}) -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/Test/baseResults/435.vert.out b/deps/glslang/Test/baseResults/435.vert.out deleted file mode 100644 index 188a0a43..00000000 --- a/deps/glslang/Test/baseResults/435.vert.out +++ /dev/null @@ -1,25 +0,0 @@ -435.vert -ERROR: version not supported -ERROR: 1 compilation errors. No code generated. - - -Shader version: 450 -ERROR: node is still EOpNull! -0:2 Function Definition: main( ( global void) -0:2 Function Parameters: -0:? Linker Objects -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - - -Linked vertex stage: - - -Shader version: 450 -ERROR: node is still EOpNull! -0:2 Function Definition: main( ( global void) -0:2 Function Parameters: -0:? Linker Objects -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - diff --git a/deps/glslang/Test/baseResults/440.frag.out b/deps/glslang/Test/baseResults/440.frag.out deleted file mode 100644 index c7ff7284..00000000 --- a/deps/glslang/Test/baseResults/440.frag.out +++ /dev/null @@ -1,167 +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, std430, or scalar layout packing -ERROR: 0:43: 'align' : can only be used with std140, std430, or scalar 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, std430, or scalar 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, std430, or scalar layout packing -ERROR: 0:62: 'offset/align' : can only be used with std140, std430, or scalar layout packing -ERROR: 0:63: 'offset/align' : can only be used with std140, std430, or scalar 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) -0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140 offset=0) uniform 128-element array of structure{ global 3-component vector of float vPositionWs} g_pointLightData}) - - -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) -0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140 offset=0) uniform 128-element array of structure{ global 3-component vector of float vPositionWs} g_pointLightData}) - diff --git a/deps/glslang/Test/baseResults/440.vert.out b/deps/glslang/Test/baseResults/440.vert.out deleted file mode 100644 index 6c975c09..00000000 --- a/deps/glslang/Test/baseResults/440.vert.out +++ /dev/null @@ -1,247 +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 or 64-bit integer; 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 or 64-bit integer; 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 or 64-bit integer: -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 6, components (1/4 stride) needed are 500, gl_MaxTransformFeedbackInterleavedComponents is 64 -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/Test/baseResults/450.comp.out b/deps/glslang/Test/baseResults/450.comp.out deleted file mode 100644 index ce95f8db..00000000 --- a/deps/glslang/Test/baseResults/450.comp.out +++ /dev/null @@ -1,25 +0,0 @@ -450.comp -ERROR: 0:2: 'local_size_x' : must be at least 1 -ERROR: 0:4: 'binding' : atomic_uint binding is too large -ERROR: 0:8: 'shared' : not allowed in nested scope -ERROR: 3 compilation errors. No code generated. - - -Shader version: 450 -local_size = (1, 1, 1) -ERROR: node is still EOpNull! -0:6 Function Definition: main( ( global void) -0:6 Function Parameters: -0:? Linker Objects - - -Linked compute stage: - - -Shader version: 450 -local_size = (1, 1, 1) -ERROR: node is still EOpNull! -0:6 Function Definition: main( ( global void) -0:6 Function Parameters: -0:? Linker Objects - diff --git a/deps/glslang/Test/baseResults/450.frag.out b/deps/glslang/Test/baseResults/450.frag.out deleted file mode 100644 index ec184ac9..00000000 --- a/deps/glslang/Test/baseResults/450.frag.out +++ /dev/null @@ -1,383 +0,0 @@ -450.frag -ERROR: 0:70: 'offsets' : argument must be compile-time constant -ERROR: 0:71: 'offsets' : argument must be compile-time constant -ERROR: 0:72: 'offsets' : argument must be compile-time constant -ERROR: 0:88: 'location' : cannot use in a block array where new locations are needed for each block element -ERROR: 0:93: 'early_fragment_tests' : can only apply to a standalone qualifier -ERROR: 5 compilation errors. No code generated. - - -Shader version: 450 -Requested GL_ARB_sparse_texture2 -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:61 Function Definition: testOffsets( ( global void) -0:61 Function Parameters: -0:63 Sequence -0:63 Sequence -0:63 move second child to first child ( temp 4-component vector of float) -0:63 'texel' ( temp 4-component vector of float) -0:63 Constant: -0:63 0.000000 -0:63 0.000000 -0:63 0.000000 -0:63 0.000000 -0:64 Sequence -0:64 move second child to first child ( temp 4-component vector of int) -0:64 'itexel' ( temp 4-component vector of int) -0:64 Constant: -0:64 0 (const int) -0:64 0 (const int) -0:64 0 (const int) -0:64 0 (const int) -0:66 sparseTextureGatherOffsets ( global int) -0:66 's2D' ( uniform sampler2D) -0:66 'c2' ( smooth in 2-component vector of float) -0:66 Constant: -0:66 1 (const int) -0:66 2 (const int) -0:66 3 (const int) -0:66 4 (const int) -0:66 15 (const int) -0:66 16 (const int) -0:66 -2 (const int) -0:66 0 (const int) -0:66 'texel' ( temp 4-component vector of float) -0:67 sparseTextureGatherOffsets ( global int) -0:67 'is2DArray' ( uniform isampler2DArray) -0:67 'c3' ( smooth in 3-component vector of float) -0:67 Constant: -0:67 1 (const int) -0:67 2 (const int) -0:67 3 (const int) -0:67 4 (const int) -0:67 15 (const int) -0:67 16 (const int) -0:67 -2 (const int) -0:67 0 (const int) -0:67 'itexel' ( temp 4-component vector of int) -0:67 Constant: -0:67 2 (const int) -0:68 sparseTextureGatherOffsets ( global int) -0:68 's2DRectShadow' ( uniform sampler2DRectShadow) -0:68 'c2' ( smooth in 2-component vector of float) -0:68 Constant: -0:68 2.000000 -0:68 Constant: -0:68 1 (const int) -0:68 2 (const int) -0:68 3 (const int) -0:68 4 (const int) -0:68 15 (const int) -0:68 16 (const int) -0:68 -2 (const int) -0:68 0 (const int) -0:68 'texel' ( temp 4-component vector of float) -0:70 sparseTextureGatherOffsets ( global int) -0:70 's2D' ( uniform sampler2D) -0:70 'c2' ( smooth in 2-component vector of float) -0:70 'offsets' ( flat in 4-element array of 2-component vector of int) -0:70 'texel' ( temp 4-component vector of float) -0:71 sparseTextureGatherOffsets ( global int) -0:71 'is2DArray' ( uniform isampler2DArray) -0:71 'c3' ( smooth in 3-component vector of float) -0:71 'offsets' ( flat in 4-element array of 2-component vector of int) -0:71 'itexel' ( temp 4-component vector of int) -0:71 Constant: -0:71 2 (const int) -0:72 sparseTextureGatherOffsets ( global int) -0:72 's2DRectShadow' ( uniform sampler2DRectShadow) -0:72 'c2' ( smooth in 2-component vector of float) -0:72 Constant: -0:72 2.000000 -0:72 'offsets' ( flat in 4-element array of 2-component vector of int) -0:72 'texel' ( temp 4-component vector of float) -0:78 Function Definition: cull(i1; ( global float) -0:78 Function Parameters: -0:78 'i' ( in int) -0:80 Sequence -0:80 Branch: Return with expression -0:80 Test condition and select ( temp float) -0:80 Condition -0:80 Compare Greater Than or Equal ( temp bool) -0:80 'i' ( in int) -0:80 Constant: -0:80 6 (const int) -0:80 true case -0:80 direct index ( smooth temp float CullDistance) -0:80 'gl_CullDistance' ( smooth in 6-element array of float CullDistance) -0:80 Constant: -0:80 5 (const int) -0:80 false case -0:80 indirect index ( smooth temp float CullDistance) -0:80 'gl_CullDistance' ( smooth in 6-element array of float CullDistance) -0:80 '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:? 's2D' ( uniform sampler2D) -0:? 'is2DArray' ( uniform isampler2DArray) -0:? 's2DRectShadow' ( uniform sampler2DRectShadow) -0:? 'offsets' ( flat in 4-element array of 2-component vector of int) -0:? 'c2' ( smooth in 2-component vector of float) -0:? 'c3' ( smooth in 3-component vector of float) -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 -Requested GL_ARB_sparse_texture2 -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:? 's2D' ( uniform sampler2D) -0:? 'is2DArray' ( uniform isampler2DArray) -0:? 's2DRectShadow' ( uniform sampler2DRectShadow) -0:? 'offsets' ( flat in 4-element array of 2-component vector of int) -0:? 'c2' ( smooth in 2-component vector of float) -0:? 'c3' ( smooth in 3-component vector of float) -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/Test/baseResults/450.geom.out b/deps/glslang/Test/baseResults/450.geom.out deleted file mode 100644 index b51a674f..00000000 --- a/deps/glslang/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 'gl_in' -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/Test/baseResults/450.tesc.out b/deps/glslang/Test/baseResults/450.tesc.out deleted file mode 100644 index b3f4e252..00000000 --- a/deps/glslang/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/Test/baseResults/450.tese.out b/deps/glslang/Test/baseResults/450.tese.out deleted file mode 100644 index 796d6f16..00000000 --- a/deps/glslang/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/Test/baseResults/450.vert.out b/deps/glslang/Test/baseResults/450.vert.out deleted file mode 100644 index b3451c00..00000000 --- a/deps/glslang/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 3 (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 3 (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/Test/baseResults/460.frag.out b/deps/glslang/Test/baseResults/460.frag.out deleted file mode 100644 index 8670e6e1..00000000 --- a/deps/glslang/Test/baseResults/460.frag.out +++ /dev/null @@ -1,101 +0,0 @@ -460.frag -ERROR: 0:22: 'attribute' : required extension not requested: GL_EXT_control_flow_attributes -ERROR: 0:23: 'attribute' : required extension not requested: GL_EXT_control_flow_attributes -ERROR: 0:30: 'dependency_length' : must be positive -ERROR: 0:31: 'dependency_length' : must be positive -ERROR: 4 compilation errors. No code generated. - - -Shader version: 460 -Requested GL_EXT_control_flow_attributes -ERROR: node is still EOpNull! -0:10 Function Definition: main( ( global void) -0:10 Function Parameters: -0:12 Sequence -0:12 interpolateAtCentroid ( global 4-component vector of float) -0:12 v: direct index for structure ( global 4-component vector of float) -0:12 's' ( smooth in structure{ global float f, global 4-component vector of float v}) -0:12 Constant: -0:12 1 (const int) -0:14 move second child to first child ( temp bool) -0:14 'b1' ( temp bool) -0:14 anyInvocation ( global bool) -0:14 'b1' ( temp bool) -0:15 move second child to first child ( temp bool) -0:15 'b1' ( temp bool) -0:15 allInvocations ( global bool) -0:15 'b1' ( temp bool) -0:16 move second child to first child ( temp bool) -0:16 'b1' ( temp bool) -0:16 allInvocationsEqual ( global bool) -0:16 'b1' ( temp bool) -0:19 Function Definition: attExtBad( ( global void) -0:19 Function Parameters: -0:22 Sequence -0:22 Sequence -0:22 Sequence -0:22 move second child to first child ( temp int) -0:22 'i' ( temp int) -0:22 Constant: -0:22 0 (const int) -0:22 Loop with condition tested first: Dependency 4 -0:22 Loop Condition -0:22 Compare Less Than ( temp bool) -0:22 'i' ( temp int) -0:22 Constant: -0:22 8 (const int) -0:22 No loop body -0:22 Loop Terminal Expression -0:22 Pre-Increment ( temp int) -0:22 'i' ( temp int) -0:23 Test condition and select ( temp void): Flatten -0:23 Condition -0:23 Constant: -0:23 true (const bool) -0:23 true case is null -0:28 Function Definition: attExt( ( global void) -0:28 Function Parameters: -0:30 Sequence -0:30 Loop with condition not tested first -0:30 Loop Condition -0:30 Constant: -0:30 true (const bool) -0:30 No loop body -0:31 Loop with condition not tested first -0:31 Loop Condition -0:31 Constant: -0:31 true (const bool) -0:31 No loop body -0:? Linker Objects -0:? 's' ( smooth in structure{ global float f, global 4-component vector of float v}) - - -Linked fragment stage: - - -Shader version: 460 -Requested GL_EXT_control_flow_attributes -ERROR: node is still EOpNull! -0:10 Function Definition: main( ( global void) -0:10 Function Parameters: -0:12 Sequence -0:12 interpolateAtCentroid ( global 4-component vector of float) -0:12 v: direct index for structure ( global 4-component vector of float) -0:12 's' ( smooth in structure{ global float f, global 4-component vector of float v}) -0:12 Constant: -0:12 1 (const int) -0:14 move second child to first child ( temp bool) -0:14 'b1' ( temp bool) -0:14 anyInvocation ( global bool) -0:14 'b1' ( temp bool) -0:15 move second child to first child ( temp bool) -0:15 'b1' ( temp bool) -0:15 allInvocations ( global bool) -0:15 'b1' ( temp bool) -0:16 move second child to first child ( temp bool) -0:16 'b1' ( temp bool) -0:16 allInvocationsEqual ( global bool) -0:16 'b1' ( temp bool) -0:? Linker Objects -0:? 's' ( smooth in structure{ global float f, global 4-component vector of float v}) - diff --git a/deps/glslang/Test/baseResults/460.vert.out b/deps/glslang/Test/baseResults/460.vert.out deleted file mode 100644 index 7f4093bf..00000000 --- a/deps/glslang/Test/baseResults/460.vert.out +++ /dev/null @@ -1,51 +0,0 @@ -460.vert -Shader version: 460 -0:? Sequence -0:7 Function Definition: main( ( global void) -0:7 Function Parameters: -0:? Sequence -0:11 move second child to first child ( temp bool) -0:11 'b1' ( temp bool) -0:11 anyInvocation ( global bool) -0:11 'b1' ( temp bool) -0:12 move second child to first child ( temp bool) -0:12 'b1' ( temp bool) -0:12 allInvocations ( global bool) -0:12 'b1' ( temp bool) -0:13 move second child to first child ( temp bool) -0:13 'b1' ( temp bool) -0:13 allInvocationsEqual ( global bool) -0:13 'b1' ( temp bool) -0:? Linker Objects -0:? 'i' ( global int) -0:? 'f' ( global float) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - - -Linked vertex stage: - - -Shader version: 460 -0:? Sequence -0:7 Function Definition: main( ( global void) -0:7 Function Parameters: -0:? Sequence -0:11 move second child to first child ( temp bool) -0:11 'b1' ( temp bool) -0:11 anyInvocation ( global bool) -0:11 'b1' ( temp bool) -0:12 move second child to first child ( temp bool) -0:12 'b1' ( temp bool) -0:12 allInvocations ( global bool) -0:12 'b1' ( temp bool) -0:13 move second child to first child ( temp bool) -0:13 'b1' ( temp bool) -0:13 allInvocationsEqual ( global bool) -0:13 'b1' ( temp bool) -0:? Linker Objects -0:? 'i' ( global int) -0:? 'f' ( global float) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - diff --git a/deps/glslang/Test/baseResults/BestMatchFunction.vert.out b/deps/glslang/Test/baseResults/BestMatchFunction.vert.out deleted file mode 100644 index 843ffd79..00000000 --- a/deps/glslang/Test/baseResults/BestMatchFunction.vert.out +++ /dev/null @@ -1,206 +0,0 @@ -BestMatchFunction.vert -WARNING: 0:2: '#extension' : extension is only partially supported: GL_ARB_gpu_shader5 - -Shader version: 150 -Requested GL_ARB_gpu_shader5 -0:? Sequence -0:7 Function Definition: f(vf4;vf4; ( global 4-component vector of float) -0:7 Function Parameters: -0:7 'a' ( in 4-component vector of float) -0:7 'b' ( in 4-component vector of float) -0:7 Sequence -0:7 Branch: Return with expression -0:7 component-wise multiply ( temp 4-component vector of float) -0:7 'a' ( in 4-component vector of float) -0:7 'b' ( in 4-component vector of float) -0:8 Function Definition: f(vu4;vu4; ( global 4-component vector of float) -0:8 Function Parameters: -0:8 'a' ( in 4-component vector of uint) -0:8 'b' ( in 4-component vector of uint) -0:8 Sequence -0:8 Branch: Return with expression -0:8 Convert uint to float ( temp 4-component vector of float) -0:8 subtract ( temp 4-component vector of uint) -0:8 'a' ( in 4-component vector of uint) -0:8 'b' ( in 4-component vector of uint) -0:10 Function Definition: main( ( global void) -0:10 Function Parameters: -0:12 Sequence -0:12 move second child to first child ( temp 4-component vector of float) -0:12 'result' ( smooth out 4-component vector of float) -0:12 Function Call: f(vu4;vu4; ( global 4-component vector of float) -0:12 Convert int to uint ( temp 4-component vector of uint) -0:12 'u1' ( uniform 4-component vector of int) -0:12 'u2' ( uniform 4-component vector of uint) -0:13 switch -0:13 condition -0:13 'gl_VertexID' ( gl_VertexId int VertexId) -0:13 body -0:13 Sequence -0:15 case: with expression -0:15 Constant: -0:15 0 (const int) -0:? Sequence -0:15 move second child to first child ( temp 4-component vector of float) -0:15 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:15 '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}) -0:15 Constant: -0:15 0 (const uint) -0:15 Constant: -0:15 -1.000000 -0:15 1.000000 -0:15 0.000000 -0:15 1.000000 -0:15 Branch: Break -0:16 case: with expression -0:16 Constant: -0:16 1 (const int) -0:? Sequence -0:16 move second child to first child ( temp 4-component vector of float) -0:16 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:16 '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}) -0:16 Constant: -0:16 0 (const uint) -0:16 Constant: -0:16 1.000000 -0:16 1.000000 -0:16 0.000000 -0:16 1.000000 -0:16 Branch: Break -0:17 case: with expression -0:17 Constant: -0:17 2 (const int) -0:? Sequence -0:17 move second child to first child ( temp 4-component vector of float) -0:17 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:17 '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}) -0:17 Constant: -0:17 0 (const uint) -0:17 Constant: -0:17 -1.000000 -0:17 -1.000000 -0:17 0.000000 -0:17 1.000000 -0:17 Branch: Break -0:18 case: with expression -0:18 Constant: -0:18 3 (const int) -0:? Sequence -0:18 move second child to first child ( temp 4-component vector of float) -0:18 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:18 '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}) -0:18 Constant: -0:18 0 (const uint) -0:18 Constant: -0:18 1.000000 -0:18 -1.000000 -0:18 0.000000 -0:18 1.000000 -0:18 Branch: Break -0:? Linker Objects -0:? 'u1' ( uniform 4-component vector of int) -0:? 'u2' ( uniform 4-component vector of uint) -0:? 'result' ( smooth 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 1-element array of float ClipDistance gl_ClipDistance}) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - - -Linked vertex stage: - - -Shader version: 150 -Requested GL_ARB_gpu_shader5 -0:? Sequence -0:8 Function Definition: f(vu4;vu4; ( global 4-component vector of float) -0:8 Function Parameters: -0:8 'a' ( in 4-component vector of uint) -0:8 'b' ( in 4-component vector of uint) -0:8 Sequence -0:8 Branch: Return with expression -0:8 Convert uint to float ( temp 4-component vector of float) -0:8 subtract ( temp 4-component vector of uint) -0:8 'a' ( in 4-component vector of uint) -0:8 'b' ( in 4-component vector of uint) -0:10 Function Definition: main( ( global void) -0:10 Function Parameters: -0:12 Sequence -0:12 move second child to first child ( temp 4-component vector of float) -0:12 'result' ( smooth out 4-component vector of float) -0:12 Function Call: f(vu4;vu4; ( global 4-component vector of float) -0:12 Convert int to uint ( temp 4-component vector of uint) -0:12 'u1' ( uniform 4-component vector of int) -0:12 'u2' ( uniform 4-component vector of uint) -0:13 switch -0:13 condition -0:13 'gl_VertexID' ( gl_VertexId int VertexId) -0:13 body -0:13 Sequence -0:15 case: with expression -0:15 Constant: -0:15 0 (const int) -0:? Sequence -0:15 move second child to first child ( temp 4-component vector of float) -0:15 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:15 '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}) -0:15 Constant: -0:15 0 (const uint) -0:15 Constant: -0:15 -1.000000 -0:15 1.000000 -0:15 0.000000 -0:15 1.000000 -0:15 Branch: Break -0:16 case: with expression -0:16 Constant: -0:16 1 (const int) -0:? Sequence -0:16 move second child to first child ( temp 4-component vector of float) -0:16 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:16 '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}) -0:16 Constant: -0:16 0 (const uint) -0:16 Constant: -0:16 1.000000 -0:16 1.000000 -0:16 0.000000 -0:16 1.000000 -0:16 Branch: Break -0:17 case: with expression -0:17 Constant: -0:17 2 (const int) -0:? Sequence -0:17 move second child to first child ( temp 4-component vector of float) -0:17 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:17 '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}) -0:17 Constant: -0:17 0 (const uint) -0:17 Constant: -0:17 -1.000000 -0:17 -1.000000 -0:17 0.000000 -0:17 1.000000 -0:17 Branch: Break -0:18 case: with expression -0:18 Constant: -0:18 3 (const int) -0:? Sequence -0:18 move second child to first child ( temp 4-component vector of float) -0:18 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:18 '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}) -0:18 Constant: -0:18 0 (const uint) -0:18 Constant: -0:18 1.000000 -0:18 -1.000000 -0:18 0.000000 -0:18 1.000000 -0:18 Branch: Break -0:? Linker Objects -0:? 'u1' ( uniform 4-component vector of int) -0:? 'u2' ( uniform 4-component vector of uint) -0:? 'result' ( smooth 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 1-element array of float ClipDistance gl_ClipDistance}) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - diff --git a/deps/glslang/Test/baseResults/EndStreamPrimitive.geom.out b/deps/glslang/Test/baseResults/EndStreamPrimitive.geom.out deleted file mode 100644 index 702c3f97..00000000 --- a/deps/glslang/Test/baseResults/EndStreamPrimitive.geom.out +++ /dev/null @@ -1,97 +0,0 @@ -EndStreamPrimitive.geom -WARNING: 0:2: '#extension' : extension is only partially supported: GL_ARB_gpu_shader5 - -Shader version: 150 -Requested GL_ARB_gpu_shader5 -invocations = -1 -max_vertices = 1 -input primitive = points -output primitive = points -0:? Sequence -0:10 Function Definition: main( ( global void) -0:10 Function Parameters: -0:12 Sequence -0:12 move second child to first child ( temp float) -0:12 'output1' (layout( stream=0) out float) -0:12 Constant: -0:12 1.000000 -0:13 move second child to first child ( temp float) -0:13 'output2' (layout( stream=0) out float) -0:13 Constant: -0:13 2.000000 -0:14 EmitStreamVertex ( global void) -0:14 Constant: -0:14 0 (const int) -0:15 EndStreamPrimitive ( global void) -0:15 Constant: -0:15 0 (const int) -0:16 move second child to first child ( temp float) -0:16 'output3' (layout( stream=1) out float) -0:16 Constant: -0:16 3.000000 -0:17 move second child to first child ( temp float) -0:17 'output4' (layout( stream=1) out float) -0:17 Constant: -0:17 4.000000 -0:18 EmitStreamVertex ( global void) -0:18 Constant: -0:18 1 (const int) -0:19 EndStreamPrimitive ( global void) -0:19 Constant: -0:19 1 (const int) -0:? Linker Objects -0:? 'output1' (layout( stream=0) out float) -0:? 'output2' (layout( stream=0) out float) -0:? 'output3' (layout( stream=1) out float) -0:? 'output4' (layout( stream=1) out float) -0:? 'stream' ( uniform uint) - - -Linked geometry stage: - - -Shader version: 150 -Requested GL_ARB_gpu_shader5 -invocations = 1 -max_vertices = 1 -input primitive = points -output primitive = points -0:? Sequence -0:10 Function Definition: main( ( global void) -0:10 Function Parameters: -0:12 Sequence -0:12 move second child to first child ( temp float) -0:12 'output1' (layout( stream=0) out float) -0:12 Constant: -0:12 1.000000 -0:13 move second child to first child ( temp float) -0:13 'output2' (layout( stream=0) out float) -0:13 Constant: -0:13 2.000000 -0:14 EmitStreamVertex ( global void) -0:14 Constant: -0:14 0 (const int) -0:15 EndStreamPrimitive ( global void) -0:15 Constant: -0:15 0 (const int) -0:16 move second child to first child ( temp float) -0:16 'output3' (layout( stream=1) out float) -0:16 Constant: -0:16 3.000000 -0:17 move second child to first child ( temp float) -0:17 'output4' (layout( stream=1) out float) -0:17 Constant: -0:17 4.000000 -0:18 EmitStreamVertex ( global void) -0:18 Constant: -0:18 1 (const int) -0:19 EndStreamPrimitive ( global void) -0:19 Constant: -0:19 1 (const int) -0:? Linker Objects -0:? 'output1' (layout( stream=0) out float) -0:? 'output2' (layout( stream=0) out float) -0:? 'output3' (layout( stream=1) out float) -0:? 'output4' (layout( stream=1) out float) -0:? 'stream' ( uniform uint) - diff --git a/deps/glslang/Test/baseResults/GL_ARB_draw_instanced.vert.out b/deps/glslang/Test/baseResults/GL_ARB_draw_instanced.vert.out deleted file mode 100644 index e601bc86..00000000 --- a/deps/glslang/Test/baseResults/GL_ARB_draw_instanced.vert.out +++ /dev/null @@ -1,189 +0,0 @@ -GL_ARB_draw_instanced.vert -Shader version: 150 -Requested GL_ARB_draw_instanced -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 'vertex' ( temp 4-component vector of float) -0:12 add ( temp 4-component vector of float) -0:12 Construct vec4 ( temp 4-component vector of float) -0:12 divide ( temp 2-component vector of float) -0:12 vector swizzle ( temp 2-component vector of float) -0:12 direct index ( temp 4-component vector of float) -0:12 'va' ( in 64-element array of 4-component vector of float) -0:12 Constant: -0:12 0 (const int) -0:12 Sequence -0:12 Constant: -0:12 0 (const int) -0:12 Constant: -0:12 1 (const int) -0:12 Constant: -0:12 3.000000 -0:12 vector swizzle ( temp 2-component vector of float) -0:12 direct index ( temp 4-component vector of float) -0:12 'va' ( in 64-element array of 4-component vector of float) -0:12 Constant: -0:12 0 (const int) -0:12 Sequence -0:12 Constant: -0:12 2 (const int) -0:12 Constant: -0:12 3 (const int) -0:12 Construct vec4 ( temp 4-component vector of float) -0:12 indirect index ( temp 3-component vector of float) -0:12 'instanceOffsets' ( uniform 3-element array of 3-component vector of float) -0:12 'gl_InstanceID' ( gl_InstanceId int InstanceId) -0:12 Constant: -0:12 1.000000 -0:13 move second child to first child ( temp 4-component vector of float) -0:13 'color' ( smooth out 4-component vector of float) -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 int) -0:14 'i' ( temp int) -0:14 Constant: -0:14 1 (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 Constant: -0:14 64 (const int) -0:14 Loop Body -0:15 add second child into first child ( temp 4-component vector of float) -0:15 'color' ( smooth out 4-component vector of float) -0:15 indirect index ( temp 4-component vector of float) -0:15 'va' ( in 64-element array of 4-component vector of float) -0:15 'i' ( temp int) -0:14 Loop Terminal Expression -0:14 Post-Increment ( temp int) -0:14 'i' ( temp int) -0:16 move second child to first child ( temp 4-component vector of float) -0:16 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:16 '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}) -0:16 Constant: -0:16 0 (const uint) -0:16 matrix-times-vector ( temp 4-component vector of float) -0:16 'gtf_ModelViewProjectionMatrix' ( uniform 4X4 matrix of float) -0:16 'vertex' ( temp 4-component vector of float) -0:17 move second child to first child ( temp float) -0:17 gl_PointSize: direct index for structure ( gl_PointSize float PointSize) -0:17 '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}) -0:17 Constant: -0:17 1 (const uint) -0:17 Constant: -0:17 1.000000 -0:? Linker Objects -0:? 'gtf_ModelViewProjectionMatrix' ( uniform 4X4 matrix of float) -0:? 'instanceOffsets' ( uniform 3-element array of 3-component vector of float) -0:? 'va' ( in 64-element array of 4-component vector of float) -0:? 'color' ( smooth 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 1-element array of float ClipDistance gl_ClipDistance}) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - - -Linked vertex stage: - - -Shader version: 150 -Requested GL_ARB_draw_instanced -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 'vertex' ( temp 4-component vector of float) -0:12 add ( temp 4-component vector of float) -0:12 Construct vec4 ( temp 4-component vector of float) -0:12 divide ( temp 2-component vector of float) -0:12 vector swizzle ( temp 2-component vector of float) -0:12 direct index ( temp 4-component vector of float) -0:12 'va' ( in 64-element array of 4-component vector of float) -0:12 Constant: -0:12 0 (const int) -0:12 Sequence -0:12 Constant: -0:12 0 (const int) -0:12 Constant: -0:12 1 (const int) -0:12 Constant: -0:12 3.000000 -0:12 vector swizzle ( temp 2-component vector of float) -0:12 direct index ( temp 4-component vector of float) -0:12 'va' ( in 64-element array of 4-component vector of float) -0:12 Constant: -0:12 0 (const int) -0:12 Sequence -0:12 Constant: -0:12 2 (const int) -0:12 Constant: -0:12 3 (const int) -0:12 Construct vec4 ( temp 4-component vector of float) -0:12 indirect index ( temp 3-component vector of float) -0:12 'instanceOffsets' ( uniform 3-element array of 3-component vector of float) -0:12 'gl_InstanceID' ( gl_InstanceId int InstanceId) -0:12 Constant: -0:12 1.000000 -0:13 move second child to first child ( temp 4-component vector of float) -0:13 'color' ( smooth out 4-component vector of float) -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 int) -0:14 'i' ( temp int) -0:14 Constant: -0:14 1 (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 Constant: -0:14 64 (const int) -0:14 Loop Body -0:15 add second child into first child ( temp 4-component vector of float) -0:15 'color' ( smooth out 4-component vector of float) -0:15 indirect index ( temp 4-component vector of float) -0:15 'va' ( in 64-element array of 4-component vector of float) -0:15 'i' ( temp int) -0:14 Loop Terminal Expression -0:14 Post-Increment ( temp int) -0:14 'i' ( temp int) -0:16 move second child to first child ( temp 4-component vector of float) -0:16 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:16 '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}) -0:16 Constant: -0:16 0 (const uint) -0:16 matrix-times-vector ( temp 4-component vector of float) -0:16 'gtf_ModelViewProjectionMatrix' ( uniform 4X4 matrix of float) -0:16 'vertex' ( temp 4-component vector of float) -0:17 move second child to first child ( temp float) -0:17 gl_PointSize: direct index for structure ( gl_PointSize float PointSize) -0:17 '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}) -0:17 Constant: -0:17 1 (const uint) -0:17 Constant: -0:17 1.000000 -0:? Linker Objects -0:? 'gtf_ModelViewProjectionMatrix' ( uniform 4X4 matrix of float) -0:? 'instanceOffsets' ( uniform 3-element array of 3-component vector of float) -0:? 'va' ( in 64-element array of 4-component vector of float) -0:? 'color' ( smooth 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 1-element array of float ClipDistance gl_ClipDistance}) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - diff --git a/deps/glslang/Test/baseResults/GL_ARB_fragment_coord_conventions.vert.out b/deps/glslang/Test/baseResults/GL_ARB_fragment_coord_conventions.vert.out deleted file mode 100644 index 3b55ae0d..00000000 --- a/deps/glslang/Test/baseResults/GL_ARB_fragment_coord_conventions.vert.out +++ /dev/null @@ -1,143 +0,0 @@ -GL_ARB_fragment_coord_conventions.vert -Shader version: 140 -Requested GL_ARB_explicit_attrib_location -Requested GL_ARB_fragment_coord_conventions -0:? Sequence -0:22 Function Definition: main( ( global void) -0:22 Function Parameters: -0:24 Sequence -0:24 move second child to first child ( temp 4-component vector of float) -0:24 'gl_Position' ( gl_Position 4-component vector of float Position) -0:24 'pos' (layout( location=0) in 4-component vector of float) -0:25 move second child to first child ( temp 4-component vector of float) -0:25 'i' ( smooth out 4-component vector of float) -0:25 Construct vec4 ( temp 4-component vector of float) -0:25 component-wise multiply ( temp float) -0:25 component-wise multiply ( temp float) -0:25 add ( temp float) -0:25 direct index ( temp float) -0:25 'pos' (layout( location=0) in 4-component vector of float) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1.000000 -0:25 Constant: -0:25 0.500000 -0:25 'gtf_windowWidth' ( uniform float) -0:25 component-wise multiply ( temp float) -0:25 component-wise multiply ( temp float) -0:25 add ( temp float) -0:25 direct index ( temp float) -0:25 'pos' (layout( location=0) in 4-component vector of float) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 1.000000 -0:25 Constant: -0:25 0.500000 -0:25 'gtf_windowHeight' ( uniform float) -0:25 add ( temp float) -0:25 component-wise multiply ( temp float) -0:25 component-wise multiply ( temp float) -0:25 subtract ( temp float) -0:25 'f' ( uniform float) -0:25 'n' ( uniform float) -0:25 Constant: -0:25 0.500000 -0:25 direct index ( temp float) -0:25 'pos' (layout( location=0) in 4-component vector of float) -0:25 Constant: -0:25 2 (const int) -0:25 component-wise multiply ( temp float) -0:25 add ( temp float) -0:25 'f' ( uniform float) -0:25 'n' ( uniform float) -0:25 Constant: -0:25 0.500000 -0:25 direct index ( temp float) -0:25 'pos' (layout( location=0) in 4-component vector of float) -0:25 Constant: -0:25 3 (const int) -0:? Linker Objects -0:? 'pos' (layout( location=0) in 4-component vector of float) -0:? 'i' ( smooth out 4-component vector of float) -0:? 'gtf_windowWidth' ( uniform float) -0:? 'gtf_windowHeight' ( uniform float) -0:? 'n' ( uniform float) -0:? 'f' ( uniform 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_fragment_coord_conventions -0:? Sequence -0:22 Function Definition: main( ( global void) -0:22 Function Parameters: -0:24 Sequence -0:24 move second child to first child ( temp 4-component vector of float) -0:24 'gl_Position' ( gl_Position 4-component vector of float Position) -0:24 'pos' (layout( location=0) in 4-component vector of float) -0:25 move second child to first child ( temp 4-component vector of float) -0:25 'i' ( smooth out 4-component vector of float) -0:25 Construct vec4 ( temp 4-component vector of float) -0:25 component-wise multiply ( temp float) -0:25 component-wise multiply ( temp float) -0:25 add ( temp float) -0:25 direct index ( temp float) -0:25 'pos' (layout( location=0) in 4-component vector of float) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1.000000 -0:25 Constant: -0:25 0.500000 -0:25 'gtf_windowWidth' ( uniform float) -0:25 component-wise multiply ( temp float) -0:25 component-wise multiply ( temp float) -0:25 add ( temp float) -0:25 direct index ( temp float) -0:25 'pos' (layout( location=0) in 4-component vector of float) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 1.000000 -0:25 Constant: -0:25 0.500000 -0:25 'gtf_windowHeight' ( uniform float) -0:25 add ( temp float) -0:25 component-wise multiply ( temp float) -0:25 component-wise multiply ( temp float) -0:25 subtract ( temp float) -0:25 'f' ( uniform float) -0:25 'n' ( uniform float) -0:25 Constant: -0:25 0.500000 -0:25 direct index ( temp float) -0:25 'pos' (layout( location=0) in 4-component vector of float) -0:25 Constant: -0:25 2 (const int) -0:25 component-wise multiply ( temp float) -0:25 add ( temp float) -0:25 'f' ( uniform float) -0:25 'n' ( uniform float) -0:25 Constant: -0:25 0.500000 -0:25 direct index ( temp float) -0:25 'pos' (layout( location=0) in 4-component vector of float) -0:25 Constant: -0:25 3 (const int) -0:? Linker Objects -0:? 'pos' (layout( location=0) in 4-component vector of float) -0:? 'i' ( smooth out 4-component vector of float) -0:? 'gtf_windowWidth' ( uniform float) -0:? 'gtf_windowHeight' ( uniform float) -0:? 'n' ( uniform float) -0:? 'f' ( uniform float) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - diff --git a/deps/glslang/Test/baseResults/GL_ARB_gpu_shader5.u2i.vert.out b/deps/glslang/Test/baseResults/GL_ARB_gpu_shader5.u2i.vert.out deleted file mode 100644 index c7b34556..00000000 --- a/deps/glslang/Test/baseResults/GL_ARB_gpu_shader5.u2i.vert.out +++ /dev/null @@ -1,57 +0,0 @@ -GL_ARB_gpu_shader5.u2i.vert -WARNING: 0:2: '#extension' : extension is only partially supported: GL_ARB_gpu_shader5 - -Shader version: 150 -Requested GL_ARB_gpu_shader5 -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 uint) -0:9 'v' ( temp uint) -0:9 Constant: -0:9 0 (const uint) -0:10 move second child to first child ( temp uint) -0:10 'v' ( temp uint) -0:10 subtract ( temp uint) -0:10 Convert int to uint ( temp uint) -0:10 'u2' ( uniform int) -0:10 Convert int to uint ( temp uint) -0:10 'u1' ( uniform int) -0:? Linker Objects -0:? 'u1' ( uniform int) -0:? 'u2' ( uniform int) -0:? 'result' ( smooth out 4-component vector of float) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - - -Linked vertex stage: - - -Shader version: 150 -Requested GL_ARB_gpu_shader5 -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 uint) -0:9 'v' ( temp uint) -0:9 Constant: -0:9 0 (const uint) -0:10 move second child to first child ( temp uint) -0:10 'v' ( temp uint) -0:10 subtract ( temp uint) -0:10 Convert int to uint ( temp uint) -0:10 'u2' ( uniform int) -0:10 Convert int to uint ( temp uint) -0:10 'u1' ( uniform int) -0:? Linker Objects -0:? 'u1' ( uniform int) -0:? 'u2' ( uniform int) -0:? 'result' ( smooth out 4-component vector of float) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - diff --git a/deps/glslang/Test/baseResults/GL_EXT_shader_integer_mix.vert.out b/deps/glslang/Test/baseResults/GL_EXT_shader_integer_mix.vert.out deleted file mode 100644 index 4a62b579..00000000 --- a/deps/glslang/Test/baseResults/GL_EXT_shader_integer_mix.vert.out +++ /dev/null @@ -1,47 +0,0 @@ -GL_EXT_shader_integer_mix.vert -Shader version: 330 -Requested GL_EXT_shader_integer_mix -0:? Sequence -0:11 Function Definition: main( ( global void) -0:11 Function Parameters: -0:12 Sequence -0:12 move second child to first child ( temp 4-component vector of float) -0:12 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:12 '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}) -0:12 Constant: -0:12 0 (const uint) -0:12 Constant: -0:12 0.000000 -0:12 0.000000 -0:12 0.000000 -0:12 0.000000 -0:? Linker Objects -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}) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - - -Linked vertex stage: - - -Shader version: 330 -Requested GL_EXT_shader_integer_mix -0:? Sequence -0:11 Function Definition: main( ( global void) -0:11 Function Parameters: -0:12 Sequence -0:12 move second child to first child ( temp 4-component vector of float) -0:12 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:12 '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}) -0:12 Constant: -0:12 0 (const uint) -0:12 Constant: -0:12 0.000000 -0:12 0.000000 -0:12 0.000000 -0:12 0.000000 -0:? Linker Objects -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}) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - diff --git a/deps/glslang/Test/baseResults/Operations.frag.out b/deps/glslang/Test/baseResults/Operations.frag.out deleted file mode 100644 index 680eb265..00000000 --- a/deps/glslang/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/Test/baseResults/aggOps.frag.out b/deps/glslang/Test/baseResults/aggOps.frag.out deleted file mode 100644 index eba1bf78..00000000 --- a/deps/glslang/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/Test/baseResults/always-discard.frag.out b/deps/glslang/Test/baseResults/always-discard.frag.out deleted file mode 100644 index 17cd443e..00000000 --- a/deps/glslang/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/Test/baseResults/always-discard2.frag.out b/deps/glslang/Test/baseResults/always-discard2.frag.out deleted file mode 100644 index 3c7c06f3..00000000 --- a/deps/glslang/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/Test/baseResults/array.frag.out b/deps/glslang/Test/baseResults/array.frag.out deleted file mode 100644 index 2af9f27f..00000000 --- a/deps/glslang/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/Test/baseResults/array100.frag.out b/deps/glslang/Test/baseResults/array100.frag.out deleted file mode 100644 index ecb55f9d..00000000 --- a/deps/glslang/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 mediump 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 mediump 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/Test/baseResults/atomicAdd.comp.out b/deps/glslang/Test/baseResults/atomicAdd.comp.out deleted file mode 100644 index 6752a713..00000000 --- a/deps/glslang/Test/baseResults/atomicAdd.comp.out +++ /dev/null @@ -1,87 +0,0 @@ -atomicAdd.comp -ERROR: 0:18: 'atomicAdd' : Atomic memory function can only be used for shader storage block member or shared variable. -ERROR: 1 compilation errors. No code generated. - - -Shader version: 320 -local_size = (1, 1, 1) -ERROR: node is still EOpNull! -0:15 Function Definition: main( ( global void) -0:15 Function Parameters: -0:16 Sequence -0:16 AtomicAdd ( global highp int) -0:16 x: direct index for structure (layout( column_major shared) coherent buffer highp int) -0:16 'anon@0' (layout( column_major shared) coherent buffer block{layout( column_major shared) coherent buffer highp int x}) -0:16 Constant: -0:16 0 (const uint) -0:16 Constant: -0:16 1 (const int) -0:17 AtomicAdd ( global highp int) -0:17 direct index (layout( std430) temp highp int) -0:17 y: direct index for structure (layout( std430) global 3-element array of highp int) -0:17 f: direct index for structure (layout( column_major std430 offset=0) buffer structure{layout( std430) global 3-element array of highp int y}) -0:17 't' (layout( column_major std430) buffer block{layout( column_major std430 offset=0) buffer structure{layout( std430) global 3-element array of highp int y} f}) -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 1 (const int) -0:17 Constant: -0:17 1 (const int) -0:18 AtomicAdd ( global highp int) -0:18 'z' ( global highp int) -0:18 Constant: -0:18 1 (const int) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const highp 3-component vector of uint WorkGroupSize) -0:? 1 (const uint) -0:? 1 (const uint) -0:? 1 (const uint) -0:? 't' (layout( column_major std430) buffer block{layout( column_major std430 offset=0) buffer structure{layout( std430) global 3-element array of highp int y} f}) -0:? 'anon@0' (layout( column_major shared) coherent buffer block{layout( column_major shared) coherent buffer highp int x}) -0:? 'z' ( global highp int) - - -Linked compute stage: - - -Shader version: 320 -local_size = (1, 1, 1) -ERROR: node is still EOpNull! -0:15 Function Definition: main( ( global void) -0:15 Function Parameters: -0:16 Sequence -0:16 AtomicAdd ( global highp int) -0:16 x: direct index for structure (layout( column_major shared) coherent buffer highp int) -0:16 'anon@0' (layout( column_major shared) coherent buffer block{layout( column_major shared) coherent buffer highp int x}) -0:16 Constant: -0:16 0 (const uint) -0:16 Constant: -0:16 1 (const int) -0:17 AtomicAdd ( global highp int) -0:17 direct index (layout( std430) temp highp int) -0:17 y: direct index for structure (layout( std430) global 3-element array of highp int) -0:17 f: direct index for structure (layout( column_major std430 offset=0) buffer structure{layout( std430) global 3-element array of highp int y}) -0:17 't' (layout( column_major std430) buffer block{layout( column_major std430 offset=0) buffer structure{layout( std430) global 3-element array of highp int y} f}) -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 1 (const int) -0:17 Constant: -0:17 1 (const int) -0:18 AtomicAdd ( global highp int) -0:18 'z' ( global highp int) -0:18 Constant: -0:18 1 (const int) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const highp 3-component vector of uint WorkGroupSize) -0:? 1 (const uint) -0:? 1 (const uint) -0:? 1 (const uint) -0:? 't' (layout( column_major std430) buffer block{layout( column_major std430 offset=0) buffer structure{layout( std430) global 3-element array of highp int y} f}) -0:? 'anon@0' (layout( column_major shared) coherent buffer block{layout( column_major shared) coherent buffer highp int x}) -0:? 'z' ( global highp int) - diff --git a/deps/glslang/Test/baseResults/atomicCounterARBOps.vert.out b/deps/glslang/Test/baseResults/atomicCounterARBOps.vert.out deleted file mode 100644 index ebb4411f..00000000 --- a/deps/glslang/Test/baseResults/atomicCounterARBOps.vert.out +++ /dev/null @@ -1,201 +0,0 @@ -atomicCounterARBOps.vert -Shader version: 450 -Requested GL_ARB_shader_atomic_counter_ops -Requested GL_ARB_shader_atomic_counters -0:? Sequence -0:9 Function Definition: main( ( global void) -0:9 Function Parameters: -0:10 Sequence -0:10 Sequence -0:10 move second child to first child ( temp 4-component vector of float) -0:10 'outColor' ( temp 4-component vector of float) -0:10 Constant: -0:10 1.000000 -0:10 1.000000 -0:10 1.000000 -0:10 1.000000 -0:13 move second child to first child ( temp uint) -0:13 'ret' ( temp uint) -0:13 AtomicCounterAdd ( global uint) -0:13 'counter' (layout( binding=0 offset=0) uniform atomic_uint) -0:13 Constant: -0:13 4 (const uint) -0:14 move second child to first child ( temp uint) -0:14 'ret' ( temp uint) -0:14 AtomicCounterSubtract ( global uint) -0:14 'counter' (layout( binding=0 offset=0) uniform atomic_uint) -0:14 Constant: -0:14 4 (const uint) -0:15 move second child to first child ( temp uint) -0:15 'ret' ( temp uint) -0:15 AtomicCounterMin ( global uint) -0:15 'counter' (layout( binding=0 offset=0) uniform atomic_uint) -0:15 Constant: -0:15 4 (const uint) -0:16 move second child to first child ( temp uint) -0:16 'ret' ( temp uint) -0:16 AtomicCounterMax ( global uint) -0:16 'counter' (layout( binding=0 offset=0) uniform atomic_uint) -0:16 Constant: -0:16 4 (const uint) -0:17 move second child to first child ( temp uint) -0:17 'ret' ( temp uint) -0:17 AtomicCounterAnd ( global uint) -0:17 'counter' (layout( binding=0 offset=0) uniform atomic_uint) -0:17 Constant: -0:17 4 (const uint) -0:18 move second child to first child ( temp uint) -0:18 'ret' ( temp uint) -0:18 AtomicCounterOr ( global uint) -0:18 'counter' (layout( binding=0 offset=0) uniform atomic_uint) -0:18 Constant: -0:18 4 (const uint) -0:19 move second child to first child ( temp uint) -0:19 'ret' ( temp uint) -0:19 AtomicCounterXor ( global uint) -0:19 'counter' (layout( binding=0 offset=0) uniform atomic_uint) -0:19 Constant: -0:19 4 (const uint) -0:20 move second child to first child ( temp uint) -0:20 'ret' ( temp uint) -0:20 AtomicCounterExchange ( global uint) -0:20 'counter' (layout( binding=0 offset=0) uniform atomic_uint) -0:20 Constant: -0:20 4 (const uint) -0:21 move second child to first child ( temp uint) -0:21 'ret' ( temp uint) -0:21 AtomicCounterCompSwap ( global uint) -0:21 'counter' (layout( binding=0 offset=0) uniform atomic_uint) -0:21 Constant: -0:21 4 (const uint) -0:21 Constant: -0:21 4 (const uint) -0:23 Sequence -0:23 move second child to first child ( temp uint) -0:23 'after' ( temp uint) -0:23 AtomicCounter ( global uint) -0:23 'counter' (layout( binding=0 offset=0) uniform atomic_uint) -0:24 Test condition and select ( temp void) -0:24 Condition -0:24 Compare Equal ( temp bool) -0:24 'after' ( temp uint) -0:24 'ret' ( temp uint) -0:24 true case -0:25 move second child to first child ( temp 4-component vector of float) -0:25 'outColor' ( temp 4-component vector of float) -0:25 Constant: -0:25 0.000000 -0:25 0.000000 -0:25 0.000000 -0:25 0.000000 -0:27 move second child to first child ( temp 4-component vector of float) -0:27 'vsColor' ( smooth out 4-component vector of float) -0:27 'outColor' ( temp 4-component vector of float) -0:? Linker Objects -0:? 'counter' (layout( binding=0 offset=0) uniform atomic_uint) -0:? 'vsColor' ( smooth out 4-component vector of float) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - - -Linked vertex stage: - - -Shader version: 450 -Requested GL_ARB_shader_atomic_counter_ops -Requested GL_ARB_shader_atomic_counters -0:? Sequence -0:9 Function Definition: main( ( global void) -0:9 Function Parameters: -0:10 Sequence -0:10 Sequence -0:10 move second child to first child ( temp 4-component vector of float) -0:10 'outColor' ( temp 4-component vector of float) -0:10 Constant: -0:10 1.000000 -0:10 1.000000 -0:10 1.000000 -0:10 1.000000 -0:13 move second child to first child ( temp uint) -0:13 'ret' ( temp uint) -0:13 AtomicCounterAdd ( global uint) -0:13 'counter' (layout( binding=0 offset=0) uniform atomic_uint) -0:13 Constant: -0:13 4 (const uint) -0:14 move second child to first child ( temp uint) -0:14 'ret' ( temp uint) -0:14 AtomicCounterSubtract ( global uint) -0:14 'counter' (layout( binding=0 offset=0) uniform atomic_uint) -0:14 Constant: -0:14 4 (const uint) -0:15 move second child to first child ( temp uint) -0:15 'ret' ( temp uint) -0:15 AtomicCounterMin ( global uint) -0:15 'counter' (layout( binding=0 offset=0) uniform atomic_uint) -0:15 Constant: -0:15 4 (const uint) -0:16 move second child to first child ( temp uint) -0:16 'ret' ( temp uint) -0:16 AtomicCounterMax ( global uint) -0:16 'counter' (layout( binding=0 offset=0) uniform atomic_uint) -0:16 Constant: -0:16 4 (const uint) -0:17 move second child to first child ( temp uint) -0:17 'ret' ( temp uint) -0:17 AtomicCounterAnd ( global uint) -0:17 'counter' (layout( binding=0 offset=0) uniform atomic_uint) -0:17 Constant: -0:17 4 (const uint) -0:18 move second child to first child ( temp uint) -0:18 'ret' ( temp uint) -0:18 AtomicCounterOr ( global uint) -0:18 'counter' (layout( binding=0 offset=0) uniform atomic_uint) -0:18 Constant: -0:18 4 (const uint) -0:19 move second child to first child ( temp uint) -0:19 'ret' ( temp uint) -0:19 AtomicCounterXor ( global uint) -0:19 'counter' (layout( binding=0 offset=0) uniform atomic_uint) -0:19 Constant: -0:19 4 (const uint) -0:20 move second child to first child ( temp uint) -0:20 'ret' ( temp uint) -0:20 AtomicCounterExchange ( global uint) -0:20 'counter' (layout( binding=0 offset=0) uniform atomic_uint) -0:20 Constant: -0:20 4 (const uint) -0:21 move second child to first child ( temp uint) -0:21 'ret' ( temp uint) -0:21 AtomicCounterCompSwap ( global uint) -0:21 'counter' (layout( binding=0 offset=0) uniform atomic_uint) -0:21 Constant: -0:21 4 (const uint) -0:21 Constant: -0:21 4 (const uint) -0:23 Sequence -0:23 move second child to first child ( temp uint) -0:23 'after' ( temp uint) -0:23 AtomicCounter ( global uint) -0:23 'counter' (layout( binding=0 offset=0) uniform atomic_uint) -0:24 Test condition and select ( temp void) -0:24 Condition -0:24 Compare Equal ( temp bool) -0:24 'after' ( temp uint) -0:24 'ret' ( temp uint) -0:24 true case -0:25 move second child to first child ( temp 4-component vector of float) -0:25 'outColor' ( temp 4-component vector of float) -0:25 Constant: -0:25 0.000000 -0:25 0.000000 -0:25 0.000000 -0:25 0.000000 -0:27 move second child to first child ( temp 4-component vector of float) -0:27 'vsColor' ( smooth out 4-component vector of float) -0:27 'outColor' ( temp 4-component vector of float) -0:? Linker Objects -0:? 'counter' (layout( binding=0 offset=0) uniform atomic_uint) -0:? 'vsColor' ( smooth out 4-component vector of float) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - diff --git a/deps/glslang/Test/baseResults/atomic_uint.frag.out b/deps/glslang/Test/baseResults/atomic_uint.frag.out deleted file mode 100644 index a0c6773b..00000000 --- a/deps/glslang/Test/baseResults/atomic_uint.frag.out +++ /dev/null @@ -1,108 +0,0 @@ -atomic_uint.frag -ERROR: 0:4: 'counter' : redefinition -ERROR: 0:11: 'atomic_uint' : samplers and atomic_uints cannot be output parameters -ERROR: 0:13: 'return' : type does not match, or is not convertible to, the function's return type -ERROR: 0:19: 'atomic_uint' : atomic_uints can only be used in uniform variables or function parameters: non_uniform_counter -ERROR: 0:24: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings -ERROR: 0:29: '+' : 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:30: '-' : 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:32: '[]' : scalar integer expression required -ERROR: 0:35: 'assign' : l-value required "counter" (can't modify a uniform) -ERROR: 0:35: 'assign' : cannot convert from ' const int' to 'layout( binding=0 offset=0) uniform atomic_uint' -ERROR: 0:38: 'atomic_uint' : atomic_uints can only be used in uniform variables or function parameters: acin -ERROR: 0:39: 'atomic_uint' : atomic_uints can only be used in uniform variables or function parameters: acg -ERROR: 0:48: 'offset' : atomic counters sharing the same offset: 12 -ERROR: 0:49: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings -ERROR: 14 compilation errors. No code generated. - - -Shader version: 420 -ERROR: node is still EOpNull! -0:6 Function Definition: func(au1; ( global uint) -0:6 Function Parameters: -0:6 'c' ( in atomic_uint) -0:8 Sequence -0:8 Branch: Return with expression -0:8 AtomicCounterIncrement ( global uint) -0:8 'c' ( in atomic_uint) -0:11 Function Definition: func2(au1; ( global uint) -0:11 Function Parameters: -0:11 'c' ( out atomic_uint) -0:13 Sequence -0:13 Branch: Return with expression -0:13 'counter' (layout( binding=0 offset=0) uniform atomic_uint) -0:14 Branch: Return with expression -0:14 AtomicCounter ( global uint) -0:14 'counter' (layout( binding=0 offset=0) uniform atomic_uint) -0:17 Function Definition: main( ( global void) -0:17 Function Parameters: -0:? Sequence -0:20 Sequence -0:20 move second child to first child ( temp uint) -0:20 'val' ( temp uint) -0:20 AtomicCounter ( global uint) -0:20 'counter' (layout( binding=0 offset=0) uniform atomic_uint) -0:21 AtomicCounterDecrement ( global uint) -0:21 'counter' (layout( binding=0 offset=0) uniform atomic_uint) -0:27 Function Definition: opac( ( global void) -0:27 Function Parameters: -0:29 Sequence -0:29 'counter' (layout( binding=0 offset=0) uniform atomic_uint) -0:30 'counter' (layout( binding=0 offset=0) uniform atomic_uint) -0:32 indirect index ( temp int) -0:32 'a' ( temp 3-element array of int) -0:32 'counter' (layout( binding=0 offset=0) uniform atomic_uint) -0:33 direct 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 Constant: -0:33 2 (const int) -0:34 indirect index (layout( binding=1 offset=3) temp atomic_uint) -0:34 'countArr' (layout( binding=1 offset=3) uniform 4-element array of atomic_uint) -0:34 'i' ( uniform int) -0:35 '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 2-element array of atomic_uint) -0:? 'ad' (layout( binding=0 offset=16) 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:17 Function Definition: main( ( global void) -0:17 Function Parameters: -0:? Sequence -0:20 Sequence -0:20 move second child to first child ( temp uint) -0:20 'val' ( temp uint) -0:20 AtomicCounter ( global uint) -0:20 'counter' (layout( binding=0 offset=0) uniform atomic_uint) -0:21 AtomicCounterDecrement ( global uint) -0:21 '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 2-element array of atomic_uint) -0:? 'ad' (layout( binding=0 offset=16) 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/Test/baseResults/badChars.frag.out b/deps/glslang/Test/baseResults/badChars.frag.out deleted file mode 100644 index e3fec617..00000000 --- a/deps/glslang/Test/baseResults/badChars.frag.out +++ /dev/null @@ -1,27 +0,0 @@ -badChars.frag -ERROR: 0:1: 'preprocessor evaluation' : bad expression -ERROR: 0:1: '#if' : unexpected tokens following directive -ERROR: 0:3: '#error' : A B -ERROR: 0:4: 'preprocessor evaluation' : bad expression -ERROR: 0:4: '#if' : unexpected tokens following directive -ERROR: 0:6: '€' : unexpected token -ERROR: 0:7: 'string' : End of line in string -ERROR: 0:7: '' : syntax error, unexpected INT, expecting COMMA or SEMICOLON -ERROR: 8 compilation errors. No code generated. - - -Shader version: 100 -ERROR: node is still EOpNull! -0:? Linker Objects -0:? 'a' ( global mediump int) - - -Linked fragment stage: - -ERROR: Linking fragment stage: Missing entry point: Each stage requires one entry point - -Shader version: 100 -ERROR: node is still EOpNull! -0:? Linker Objects -0:? 'a' ( global mediump int) - diff --git a/deps/glslang/Test/baseResults/badMacroArgs.frag.out b/deps/glslang/Test/baseResults/badMacroArgs.frag.out deleted file mode 100644 index 5e6233f8..00000000 --- a/deps/glslang/Test/baseResults/badMacroArgs.frag.out +++ /dev/null @@ -1,6 +0,0 @@ -badMacroArgs.frag -ERROR: 0:4: 'macro expansion' : Too few args in Macro m -ERROR: 0:4: '' : compilation terminated -ERROR: 2 compilation errors. No code generated. - - diff --git a/deps/glslang/Test/baseResults/comment.frag.out b/deps/glslang/Test/baseResults/comment.frag.out deleted file mode 100644 index b1a00ff5..00000000 --- a/deps/glslang/Test/baseResults/comment.frag.out +++ /dev/null @@ -1,22 +0,0 @@ -comment.frag -WARNING: 0:10: 'line continuation' : used at end of comment; the following line is still part of the comment -WARNING: 0:12: 'line continuation' : used at end of comment; the following line is still part of the comment - -Shader version: 430 -0:? Sequence -0:17 Function Definition: main( ( global void) -0:17 Function Parameters: -0:? Linker Objects -0:? 'v' ( smooth in 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 430 -0:? Sequence -0:17 Function Definition: main( ( global void) -0:17 Function Parameters: -0:? Linker Objects -0:? 'v' ( smooth in 4-component vector of float) - diff --git a/deps/glslang/Test/baseResults/compoundsuffix.frag.hlsl b/deps/glslang/Test/baseResults/compoundsuffix.frag.hlsl deleted file mode 100644 index 5a62488a..00000000 --- a/deps/glslang/Test/baseResults/compoundsuffix.frag.hlsl +++ /dev/null @@ -1,45 +0,0 @@ -compoundsuffix.frag.hlsl -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 22 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 20 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 11 "@main(vf4;" - Name 10 "fragColor" - Name 15 "fragColor" - Name 16 "param" - Name 20 "fragColor" - Decorate 20(fragColor) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 9: TypeFunction 2 8(ptr) - 13: 6(float) Constant 1065353216 - 14: 7(fvec4) ConstantComposite 13 13 13 13 - 19: TypePointer Output 7(fvec4) - 20(fragColor): 19(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 15(fragColor): 8(ptr) Variable Function - 16(param): 8(ptr) Variable Function - 17: 2 FunctionCall 11(@main(vf4;) 16(param) - 18: 7(fvec4) Load 16(param) - Store 15(fragColor) 18 - 21: 7(fvec4) Load 15(fragColor) - Store 20(fragColor) 21 - Return - FunctionEnd - 11(@main(vf4;): 2 Function None 9 - 10(fragColor): 8(ptr) FunctionParameter - 12: Label - Store 10(fragColor) 14 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/compoundsuffix.vert.glsl b/deps/glslang/Test/baseResults/compoundsuffix.vert.glsl deleted file mode 100644 index 58354a40..00000000 --- a/deps/glslang/Test/baseResults/compoundsuffix.vert.glsl +++ /dev/null @@ -1,15 +0,0 @@ -compoundsuffix.vert.glsl -Shader version: 100 -0:? Sequence -0:1 Function Definition: main( ( global void) -0:1 Function Parameters: -0:3 Sequence -0:3 move second child to first child ( temp highp 4-component vector of float) -0:3 'gl_Position' ( gl_Position highp 4-component vector of float Position) -0:3 Constant: -0:3 1.000000 -0:3 1.000000 -0:3 1.000000 -0:3 1.000000 -0:? Linker Objects - diff --git a/deps/glslang/Test/baseResults/conditionalDiscard.frag.out b/deps/glslang/Test/baseResults/conditionalDiscard.frag.out deleted file mode 100644 index 255d9c4d..00000000 --- a/deps/glslang/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/Test/baseResults/constErrors.frag.out b/deps/glslang/Test/baseResults/constErrors.frag.out deleted file mode 100644 index 21774849..00000000 --- a/deps/glslang/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/Test/baseResults/constFold.frag.out b/deps/glslang/Test/baseResults/constFold.frag.out deleted file mode 100644 index 045afc04..00000000 --- a/deps/glslang/Test/baseResults/constFold.frag.out +++ /dev/null @@ -1,706 +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:84 Constant: -0:84 -1.#INF -0:84 Constant: -0:84 1.#IND -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:129 Function Definition: foo3( ( global void) -0:129 Function Parameters: -0:131 Sequence -0:131 Sequence -0:131 move second child to first child ( temp 3X2 matrix of float) -0:131 'r32' ( temp 3X2 matrix of float) -0:131 Constant: -0:131 43.000000 -0:131 64.000000 -0:131 51.000000 -0:131 76.000000 -0:131 59.000000 -0:131 88.000000 -0:141 Function Definition: foo4( ( global void) -0:141 Function Parameters: -0:143 Sequence -0:143 Sequence -0:143 move second child to first child ( temp int) -0:143 'a' ( temp int) -0:143 Constant: -0:143 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:? 'm22' ( const 2X2 matrix of float) -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 -0:? 'mm34' ( const 3X4 matrix of float) -0:? 7.000000 -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 7.000000 -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 7.000000 -0:? 0.000000 -0:? 'mv4' ( const 4-component vector of float) -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.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:? 'm22' ( const 2X2 matrix of float) -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 -0:? 'mm34' ( const 3X4 matrix of float) -0:? 7.000000 -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 7.000000 -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 7.000000 -0:? 0.000000 -0:? 'mv4' ( const 4-component vector of float) -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.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/Test/baseResults/constFoldIntMin.frag.out b/deps/glslang/Test/baseResults/constFoldIntMin.frag.out deleted file mode 100644 index 2c45ca80..00000000 --- a/deps/glslang/Test/baseResults/constFoldIntMin.frag.out +++ /dev/null @@ -1,51 +0,0 @@ -constFoldIntMin.frag -Shader version: 460 -Requested GL_AMD_gpu_shader_int16 -Requested GL_ARB_gpu_shader_int64 -0:? Sequence -0:5 Function Definition: a( ( global void) -0:5 Function Parameters: -0:6 Sequence -0:6 Sequence -0:6 move second child to first child ( temp int16_t) -0:6 'u' ( temp int16_t) -0:6 Constant: -0:6 -32768 (const int16_t) -0:7 Sequence -0:7 move second child to first child ( temp int) -0:7 'v' ( temp int) -0:7 Constant: -0:7 -2147483648 (const int) -0:8 Sequence -0:8 move second child to first child ( temp int64_t) -0:8 'w' ( temp int64_t) -0:8 Constant: -0:8 -9223372036854775808 (const int64_t) -0:9 Sequence -0:9 move second child to first child ( temp int16_t) -0:9 'x' ( temp int16_t) -0:9 Constant: -0:9 0 (const int8_t) -0:10 Sequence -0:10 move second child to first child ( temp int) -0:10 'y' ( temp int) -0:10 Constant: -0:10 0 (const int) -0:11 Sequence -0:11 move second child to first child ( temp int64_t) -0:11 'z' ( temp int64_t) -0:11 Constant: -0:11 0 (const int64_t) -0:? Linker Objects - - -Linked fragment stage: - -ERROR: Linking fragment stage: Missing entry point: Each stage requires one entry point - -Shader version: 460 -Requested GL_AMD_gpu_shader_int16 -Requested GL_ARB_gpu_shader_int64 -0:? Sequence -0:? Linker Objects - diff --git a/deps/glslang/Test/baseResults/constantUnaryConversion.comp.out b/deps/glslang/Test/baseResults/constantUnaryConversion.comp.out deleted file mode 100644 index 78372f06..00000000 --- a/deps/glslang/Test/baseResults/constantUnaryConversion.comp.out +++ /dev/null @@ -1,753 +0,0 @@ -constantUnaryConversion.comp -Shader version: 450 -Requested GL_EXT_shader_explicit_arithmetic_types -local_size = (1, 1, 1) -0:? Sequence -0:69 Function Definition: main( ( global void) -0:69 Function Parameters: -0:? Linker Objects -0:? 'bool_init' ( const bool) -0:? true (const bool) -0:? 'int8_t_init' ( const int8_t) -0:? -1 (const int8_t) -0:? 'int16_t_init' ( const int16_t) -0:? -2 (const int16_t) -0:? 'int32_t_init' ( const int) -0:? -3 (const int) -0:? 'int64_t_init' ( const int64_t) -0:? -4 (const int64_t) -0:? 'uint8_t_init' ( const uint8_t) -0:? 1 (const uint8_t) -0:? 'uint16_t_init' ( const uint16_t) -0:? 2 (const uint16_t) -0:? 'uint32_t_init' ( const uint) -0:? 3 (const uint) -0:? 'uint64_t_init' ( const uint64_t) -0:? 4 (const uint64_t) -0:? 'float16_t_init' ( const float16_t) -0:? 42.000000 -0:? 'float32_t_init' ( const float) -0:? 13.000000 -0:? 'float64_t_init' ( const double) -0:? 4.000000 -0:? 'neg_float16_t_init' ( const float16_t) -0:? -42.000000 -0:? 'neg_float32_t_init' ( const float) -0:? -13.000000 -0:? 'neg_float64_t_init' ( const double) -0:? -4.000000 -0:? 'bool_to_bool' ( const bool) -0:? true (const bool) -0:? 'int8_t_to_bool' ( const bool) -0:? true (const bool) -0:? 'int16_t_to_bool' ( const bool) -0:? true (const bool) -0:? 'int32_t_to_bool' ( const bool) -0:? true (const bool) -0:? 'int64_t_to_bool' ( const bool) -0:? true (const bool) -0:? 'uint8_t_to_bool' ( const bool) -0:? true (const bool) -0:? 'uint16_t_to_bool' ( const bool) -0:? true (const bool) -0:? 'uint32_t_to_bool' ( const bool) -0:? true (const bool) -0:? 'uint64_t_to_bool' ( const bool) -0:? true (const bool) -0:? 'float16_t_to_bool' ( const bool) -0:? true (const bool) -0:? 'float32_t_to_bool' ( const bool) -0:? true (const bool) -0:? 'float64_t_to_bool' ( const bool) -0:? true (const bool) -0:? 'bool_to_int8_t' ( const int8_t) -0:? 1 (const int8_t) -0:? 'int8_t_to_int8_t' ( const int8_t) -0:? -1 (const int8_t) -0:? 'int16_t_to_int8_t' ( const int8_t) -0:? -2 (const int8_t) -0:? 'int32_t_to_int8_t' ( const int8_t) -0:? -3 (const int8_t) -0:? 'int64_t_to_int8_t' ( const int8_t) -0:? -4 (const int8_t) -0:? 'uint8_t_to_int8_t' ( const int8_t) -0:? 1 (const int8_t) -0:? 'uint16_t_to_int8_t' ( const int8_t) -0:? 2 (const int8_t) -0:? 'uint32_t_to_int8_t' ( const int8_t) -0:? 3 (const int8_t) -0:? 'uint64_t_to_int8_t' ( const int8_t) -0:? 4 (const int8_t) -0:? 'float16_t_to_int8_t' ( const int8_t) -0:? 42 (const int8_t) -0:? 'float32_t_to_int8_t' ( const int8_t) -0:? 13 (const int8_t) -0:? 'float64_t_to_int8_t' ( const int8_t) -0:? 4 (const int8_t) -0:? 'bool_to_int16_t' ( const int16_t) -0:? 1 (const int16_t) -0:? 'int8_t_to_int16_t' ( const int16_t) -0:? -1 (const int16_t) -0:? 'int16_t_to_int16_t' ( const int16_t) -0:? -2 (const int16_t) -0:? 'int32_t_to_int16_t' ( const int16_t) -0:? -3 (const int16_t) -0:? 'int64_t_to_int16_t' ( const int16_t) -0:? -4 (const int16_t) -0:? 'uint8_t_to_int16_t' ( const int16_t) -0:? 1 (const int16_t) -0:? 'uint16_t_to_int16_t' ( const int16_t) -0:? 2 (const int16_t) -0:? 'uint32_t_to_int16_t' ( const int16_t) -0:? 3 (const int16_t) -0:? 'uint64_t_to_int16_t' ( const int16_t) -0:? 4 (const int16_t) -0:? 'float16_t_to_int16_t' ( const int16_t) -0:? 42 (const int16_t) -0:? 'float32_t_to_int16_t' ( const int16_t) -0:? 13 (const int16_t) -0:? 'float64_t_to_int16_t' ( const int16_t) -0:? 4 (const int16_t) -0:? 'bool_to_int32_t' ( const int) -0:? 1 (const int) -0:? 'int8_t_to_int32_t' ( const int) -0:? -1 (const int) -0:? 'int16_t_to_int32_t' ( const int) -0:? -2 (const int) -0:? 'int32_t_to_int32_t' ( const int) -0:? -3 (const int) -0:? 'int64_t_to_int32_t' ( const int) -0:? -4 (const int) -0:? 'uint8_t_to_int32_t' ( const int) -0:? 1 (const int) -0:? 'uint16_t_to_int32_t' ( const int) -0:? 2 (const int) -0:? 'uint32_t_to_int32_t' ( const int) -0:? 3 (const int) -0:? 'uint64_t_to_int32_t' ( const int) -0:? 4 (const int) -0:? 'float16_t_to_int32_t' ( const int) -0:? 42 (const int) -0:? 'float32_t_to_int32_t' ( const int) -0:? 13 (const int) -0:? 'float64_t_to_int32_t' ( const int) -0:? 4 (const int) -0:? 'bool_to_int64_t' ( const int64_t) -0:? 1 (const int64_t) -0:? 'int8_t_to_int64_t' ( const int64_t) -0:? -1 (const int64_t) -0:? 'int16_t_to_int64_t' ( const int64_t) -0:? -2 (const int64_t) -0:? 'int32_t_to_int64_t' ( const int64_t) -0:? -3 (const int64_t) -0:? 'int64_t_to_int64_t' ( const int64_t) -0:? -4 (const int64_t) -0:? 'uint8_t_to_int64_t' ( const int64_t) -0:? 1 (const int64_t) -0:? 'uint16_t_to_int64_t' ( const int64_t) -0:? 2 (const int64_t) -0:? 'uint32_t_to_int64_t' ( const int64_t) -0:? 3 (const int64_t) -0:? 'uint64_t_to_int64_t' ( const int64_t) -0:? 4 (const int64_t) -0:? 'float16_t_to_int64_t' ( const int64_t) -0:? 42 (const int64_t) -0:? 'float32_t_to_int64_t' ( const int64_t) -0:? 13 (const int64_t) -0:? 'float64_t_to_int64_t' ( const int64_t) -0:? 4 (const int64_t) -0:? 'bool_to_uint8_t' ( const uint8_t) -0:? 1 (const uint8_t) -0:? 'int8_t_to_uint8_t' ( const uint8_t) -0:? 255 (const uint8_t) -0:? 'int16_t_to_uint8_t' ( const uint8_t) -0:? 254 (const uint8_t) -0:? 'int32_t_to_uint8_t' ( const uint8_t) -0:? 253 (const uint8_t) -0:? 'int64_t_to_uint8_t' ( const uint8_t) -0:? 252 (const uint8_t) -0:? 'uint8_t_to_uint8_t' ( const uint8_t) -0:? 1 (const uint8_t) -0:? 'uint16_t_to_uint8_t' ( const uint8_t) -0:? 2 (const uint8_t) -0:? 'uint32_t_to_uint8_t' ( const uint8_t) -0:? 3 (const uint8_t) -0:? 'uint64_t_to_uint8_t' ( const uint8_t) -0:? 4 (const uint8_t) -0:? 'float16_t_to_uint8_t' ( const uint8_t) -0:? 42 (const uint8_t) -0:? 'float32_t_to_uint8_t' ( const uint8_t) -0:? 13 (const uint8_t) -0:? 'float64_t_to_uint8_t' ( const uint8_t) -0:? 4 (const uint8_t) -0:? 'bool_to_uint16_t' ( const uint16_t) -0:? 1 (const uint16_t) -0:? 'int8_t_to_uint16_t' ( const uint16_t) -0:? 65535 (const uint16_t) -0:? 'int16_t_to_uint16_t' ( const uint16_t) -0:? 65534 (const uint16_t) -0:? 'int32_t_to_uint16_t' ( const uint16_t) -0:? 65533 (const uint16_t) -0:? 'int64_t_to_uint16_t' ( const uint16_t) -0:? 65532 (const uint16_t) -0:? 'uint8_t_to_uint16_t' ( const uint16_t) -0:? 1 (const uint16_t) -0:? 'uint16_t_to_uint16_t' ( const uint16_t) -0:? 2 (const uint16_t) -0:? 'uint32_t_to_uint16_t' ( const uint16_t) -0:? 3 (const uint16_t) -0:? 'uint64_t_to_uint16_t' ( const uint16_t) -0:? 4 (const uint16_t) -0:? 'float16_t_to_uint16_t' ( const uint16_t) -0:? 42 (const uint16_t) -0:? 'float32_t_to_uint16_t' ( const uint16_t) -0:? 13 (const uint16_t) -0:? 'float64_t_to_uint16_t' ( const uint16_t) -0:? 4 (const uint16_t) -0:? 'bool_to_uint32_t' ( const uint) -0:? 1 (const uint) -0:? 'int8_t_to_uint32_t' ( const uint) -0:? 4294967295 (const uint) -0:? 'int16_t_to_uint32_t' ( const uint) -0:? 4294967294 (const uint) -0:? 'int32_t_to_uint32_t' ( const uint) -0:? 4294967293 (const uint) -0:? 'int64_t_to_uint32_t' ( const uint) -0:? 4294967292 (const uint) -0:? 'uint8_t_to_uint32_t' ( const uint) -0:? 1 (const uint) -0:? 'uint16_t_to_uint32_t' ( const uint) -0:? 2 (const uint) -0:? 'uint32_t_to_uint32_t' ( const uint) -0:? 3 (const uint) -0:? 'uint64_t_to_uint32_t' ( const uint) -0:? 4 (const uint) -0:? 'float16_t_to_uint32_t' ( const uint) -0:? 42 (const uint) -0:? 'float32_t_to_uint32_t' ( const uint) -0:? 13 (const uint) -0:? 'float64_t_to_uint32_t' ( const uint) -0:? 4 (const uint) -0:? 'bool_to_uint64_t' ( const uint64_t) -0:? 1 (const uint64_t) -0:? 'int8_t_to_uint64_t' ( const uint64_t) -0:? 18446744073709551615 (const uint64_t) -0:? 'int16_t_to_uint64_t' ( const uint64_t) -0:? 18446744073709551614 (const uint64_t) -0:? 'int32_t_to_uint64_t' ( const uint64_t) -0:? 18446744073709551613 (const uint64_t) -0:? 'int64_t_to_uint64_t' ( const uint64_t) -0:? 18446744073709551612 (const uint64_t) -0:? 'uint8_t_to_uint64_t' ( const uint64_t) -0:? 1 (const uint64_t) -0:? 'uint16_t_to_uint64_t' ( const uint64_t) -0:? 2 (const uint64_t) -0:? 'uint32_t_to_uint64_t' ( const uint64_t) -0:? 3 (const uint64_t) -0:? 'uint64_t_to_uint64_t' ( const uint64_t) -0:? 4 (const uint64_t) -0:? 'float16_t_to_uint64_t' ( const uint64_t) -0:? 42 (const uint64_t) -0:? 'float32_t_to_uint64_t' ( const uint64_t) -0:? 13 (const uint64_t) -0:? 'float64_t_to_uint64_t' ( const uint64_t) -0:? 4 (const uint64_t) -0:? 'bool_to_float16_t' ( const float16_t) -0:? 1.000000 -0:? 'int8_t_to_float16_t' ( const float16_t) -0:? -1.000000 -0:? 'int16_t_to_float16_t' ( const float16_t) -0:? -2.000000 -0:? 'int32_t_to_float16_t' ( const float16_t) -0:? -3.000000 -0:? 'int64_t_to_float16_t' ( const float16_t) -0:? -4.000000 -0:? 'uint8_t_to_float16_t' ( const float16_t) -0:? 1.000000 -0:? 'uint16_t_to_float16_t' ( const float16_t) -0:? 2.000000 -0:? 'uint32_t_to_float16_t' ( const float16_t) -0:? 3.000000 -0:? 'uint64_t_to_float16_t' ( const float16_t) -0:? 4.000000 -0:? 'float16_t_to_float16_t' ( const float16_t) -0:? 42.000000 -0:? 'float32_t_to_float16_t' ( const float16_t) -0:? 13.000000 -0:? 'float64_t_to_float16_t' ( const float16_t) -0:? 4.000000 -0:? 'bool_to_float32_t' ( const float) -0:? 1.000000 -0:? 'int8_t_to_float32_t' ( const float) -0:? -1.000000 -0:? 'int16_t_to_float32_t' ( const float) -0:? -2.000000 -0:? 'int32_t_to_float32_t' ( const float) -0:? -3.000000 -0:? 'int64_t_to_float32_t' ( const float) -0:? -4.000000 -0:? 'uint8_t_to_float32_t' ( const float) -0:? 1.000000 -0:? 'uint16_t_to_float32_t' ( const float) -0:? 2.000000 -0:? 'uint32_t_to_float32_t' ( const float) -0:? 3.000000 -0:? 'uint64_t_to_float32_t' ( const float) -0:? 4.000000 -0:? 'float16_t_to_float32_t' ( const float) -0:? 42.000000 -0:? 'float32_t_to_float32_t' ( const float) -0:? 13.000000 -0:? 'float64_t_to_float32_t' ( const float) -0:? 4.000000 -0:? 'bool_to_float64_t' ( const double) -0:? 1.000000 -0:? 'int8_t_to_float64_t' ( const double) -0:? -1.000000 -0:? 'int16_t_to_float64_t' ( const double) -0:? -2.000000 -0:? 'int32_t_to_float64_t' ( const double) -0:? -3.000000 -0:? 'int64_t_to_float64_t' ( const double) -0:? -4.000000 -0:? 'uint8_t_to_float64_t' ( const double) -0:? 1.000000 -0:? 'uint16_t_to_float64_t' ( const double) -0:? 2.000000 -0:? 'uint32_t_to_float64_t' ( const double) -0:? 3.000000 -0:? 'uint64_t_to_float64_t' ( const double) -0:? 4.000000 -0:? 'float16_t_to_float64_t' ( const double) -0:? 42.000000 -0:? 'float32_t_to_float64_t' ( const double) -0:? 13.000000 -0:? 'float64_t_to_float64_t' ( const double) -0:? 4.000000 -0:? 'neg_float16_t_to_bool' ( const bool) -0:? true (const bool) -0:? 'neg_float32_t_to_bool' ( const bool) -0:? true (const bool) -0:? 'neg_float64_t_to_bool' ( const bool) -0:? true (const bool) -0:? 'neg_float16_t_to_int8_t' ( const int8_t) -0:? -42 (const int8_t) -0:? 'neg_float32_t_to_int8_t' ( const int8_t) -0:? -13 (const int8_t) -0:? 'neg_float64_t_to_int8_t' ( const int8_t) -0:? -4 (const int8_t) -0:? 'neg_float16_t_to_int16_t' ( const int16_t) -0:? -42 (const int16_t) -0:? 'neg_float32_t_to_int16_t' ( const int16_t) -0:? -13 (const int16_t) -0:? 'neg_float64_t_to_int16_t' ( const int16_t) -0:? -4 (const int16_t) -0:? 'neg_float16_t_to_int32_t' ( const int) -0:? -42 (const int) -0:? 'neg_float32_t_to_int32_t' ( const int) -0:? -13 (const int) -0:? 'neg_float64_t_to_int32_t' ( const int) -0:? -4 (const int) -0:? 'neg_float16_t_to_int64_t' ( const int64_t) -0:? -42 (const int64_t) -0:? 'neg_float32_t_to_int64_t' ( const int64_t) -0:? -13 (const int64_t) -0:? 'neg_float64_t_to_int64_t' ( const int64_t) -0:? -4 (const int64_t) -0:? 'neg_float16_t_to_float16_t' ( const float16_t) -0:? -42.000000 -0:? 'neg_float32_t_to_float16_t' ( const float16_t) -0:? -13.000000 -0:? 'neg_float64_t_to_float16_t' ( const float16_t) -0:? -4.000000 -0:? 'neg_float16_t_to_float32_t' ( const float) -0:? -42.000000 -0:? 'neg_float32_t_to_float32_t' ( const float) -0:? -13.000000 -0:? 'neg_float64_t_to_float32_t' ( const float) -0:? -4.000000 -0:? 'neg_float16_t_to_float64_t' ( const double) -0:? -42.000000 -0:? 'neg_float32_t_to_float64_t' ( const double) -0:? -13.000000 -0:? 'neg_float64_t_to_float64_t' ( const double) -0:? -4.000000 - - -Linked compute stage: - - -Shader version: 450 -Requested GL_EXT_shader_explicit_arithmetic_types -local_size = (1, 1, 1) -0:? Sequence -0:69 Function Definition: main( ( global void) -0:69 Function Parameters: -0:? Linker Objects -0:? 'bool_init' ( const bool) -0:? true (const bool) -0:? 'int8_t_init' ( const int8_t) -0:? -1 (const int8_t) -0:? 'int16_t_init' ( const int16_t) -0:? -2 (const int16_t) -0:? 'int32_t_init' ( const int) -0:? -3 (const int) -0:? 'int64_t_init' ( const int64_t) -0:? -4 (const int64_t) -0:? 'uint8_t_init' ( const uint8_t) -0:? 1 (const uint8_t) -0:? 'uint16_t_init' ( const uint16_t) -0:? 2 (const uint16_t) -0:? 'uint32_t_init' ( const uint) -0:? 3 (const uint) -0:? 'uint64_t_init' ( const uint64_t) -0:? 4 (const uint64_t) -0:? 'float16_t_init' ( const float16_t) -0:? 42.000000 -0:? 'float32_t_init' ( const float) -0:? 13.000000 -0:? 'float64_t_init' ( const double) -0:? 4.000000 -0:? 'neg_float16_t_init' ( const float16_t) -0:? -42.000000 -0:? 'neg_float32_t_init' ( const float) -0:? -13.000000 -0:? 'neg_float64_t_init' ( const double) -0:? -4.000000 -0:? 'bool_to_bool' ( const bool) -0:? true (const bool) -0:? 'int8_t_to_bool' ( const bool) -0:? true (const bool) -0:? 'int16_t_to_bool' ( const bool) -0:? true (const bool) -0:? 'int32_t_to_bool' ( const bool) -0:? true (const bool) -0:? 'int64_t_to_bool' ( const bool) -0:? true (const bool) -0:? 'uint8_t_to_bool' ( const bool) -0:? true (const bool) -0:? 'uint16_t_to_bool' ( const bool) -0:? true (const bool) -0:? 'uint32_t_to_bool' ( const bool) -0:? true (const bool) -0:? 'uint64_t_to_bool' ( const bool) -0:? true (const bool) -0:? 'float16_t_to_bool' ( const bool) -0:? true (const bool) -0:? 'float32_t_to_bool' ( const bool) -0:? true (const bool) -0:? 'float64_t_to_bool' ( const bool) -0:? true (const bool) -0:? 'bool_to_int8_t' ( const int8_t) -0:? 1 (const int8_t) -0:? 'int8_t_to_int8_t' ( const int8_t) -0:? -1 (const int8_t) -0:? 'int16_t_to_int8_t' ( const int8_t) -0:? -2 (const int8_t) -0:? 'int32_t_to_int8_t' ( const int8_t) -0:? -3 (const int8_t) -0:? 'int64_t_to_int8_t' ( const int8_t) -0:? -4 (const int8_t) -0:? 'uint8_t_to_int8_t' ( const int8_t) -0:? 1 (const int8_t) -0:? 'uint16_t_to_int8_t' ( const int8_t) -0:? 2 (const int8_t) -0:? 'uint32_t_to_int8_t' ( const int8_t) -0:? 3 (const int8_t) -0:? 'uint64_t_to_int8_t' ( const int8_t) -0:? 4 (const int8_t) -0:? 'float16_t_to_int8_t' ( const int8_t) -0:? 42 (const int8_t) -0:? 'float32_t_to_int8_t' ( const int8_t) -0:? 13 (const int8_t) -0:? 'float64_t_to_int8_t' ( const int8_t) -0:? 4 (const int8_t) -0:? 'bool_to_int16_t' ( const int16_t) -0:? 1 (const int16_t) -0:? 'int8_t_to_int16_t' ( const int16_t) -0:? -1 (const int16_t) -0:? 'int16_t_to_int16_t' ( const int16_t) -0:? -2 (const int16_t) -0:? 'int32_t_to_int16_t' ( const int16_t) -0:? -3 (const int16_t) -0:? 'int64_t_to_int16_t' ( const int16_t) -0:? -4 (const int16_t) -0:? 'uint8_t_to_int16_t' ( const int16_t) -0:? 1 (const int16_t) -0:? 'uint16_t_to_int16_t' ( const int16_t) -0:? 2 (const int16_t) -0:? 'uint32_t_to_int16_t' ( const int16_t) -0:? 3 (const int16_t) -0:? 'uint64_t_to_int16_t' ( const int16_t) -0:? 4 (const int16_t) -0:? 'float16_t_to_int16_t' ( const int16_t) -0:? 42 (const int16_t) -0:? 'float32_t_to_int16_t' ( const int16_t) -0:? 13 (const int16_t) -0:? 'float64_t_to_int16_t' ( const int16_t) -0:? 4 (const int16_t) -0:? 'bool_to_int32_t' ( const int) -0:? 1 (const int) -0:? 'int8_t_to_int32_t' ( const int) -0:? -1 (const int) -0:? 'int16_t_to_int32_t' ( const int) -0:? -2 (const int) -0:? 'int32_t_to_int32_t' ( const int) -0:? -3 (const int) -0:? 'int64_t_to_int32_t' ( const int) -0:? -4 (const int) -0:? 'uint8_t_to_int32_t' ( const int) -0:? 1 (const int) -0:? 'uint16_t_to_int32_t' ( const int) -0:? 2 (const int) -0:? 'uint32_t_to_int32_t' ( const int) -0:? 3 (const int) -0:? 'uint64_t_to_int32_t' ( const int) -0:? 4 (const int) -0:? 'float16_t_to_int32_t' ( const int) -0:? 42 (const int) -0:? 'float32_t_to_int32_t' ( const int) -0:? 13 (const int) -0:? 'float64_t_to_int32_t' ( const int) -0:? 4 (const int) -0:? 'bool_to_int64_t' ( const int64_t) -0:? 1 (const int64_t) -0:? 'int8_t_to_int64_t' ( const int64_t) -0:? -1 (const int64_t) -0:? 'int16_t_to_int64_t' ( const int64_t) -0:? -2 (const int64_t) -0:? 'int32_t_to_int64_t' ( const int64_t) -0:? -3 (const int64_t) -0:? 'int64_t_to_int64_t' ( const int64_t) -0:? -4 (const int64_t) -0:? 'uint8_t_to_int64_t' ( const int64_t) -0:? 1 (const int64_t) -0:? 'uint16_t_to_int64_t' ( const int64_t) -0:? 2 (const int64_t) -0:? 'uint32_t_to_int64_t' ( const int64_t) -0:? 3 (const int64_t) -0:? 'uint64_t_to_int64_t' ( const int64_t) -0:? 4 (const int64_t) -0:? 'float16_t_to_int64_t' ( const int64_t) -0:? 42 (const int64_t) -0:? 'float32_t_to_int64_t' ( const int64_t) -0:? 13 (const int64_t) -0:? 'float64_t_to_int64_t' ( const int64_t) -0:? 4 (const int64_t) -0:? 'bool_to_uint8_t' ( const uint8_t) -0:? 1 (const uint8_t) -0:? 'int8_t_to_uint8_t' ( const uint8_t) -0:? 255 (const uint8_t) -0:? 'int16_t_to_uint8_t' ( const uint8_t) -0:? 254 (const uint8_t) -0:? 'int32_t_to_uint8_t' ( const uint8_t) -0:? 253 (const uint8_t) -0:? 'int64_t_to_uint8_t' ( const uint8_t) -0:? 252 (const uint8_t) -0:? 'uint8_t_to_uint8_t' ( const uint8_t) -0:? 1 (const uint8_t) -0:? 'uint16_t_to_uint8_t' ( const uint8_t) -0:? 2 (const uint8_t) -0:? 'uint32_t_to_uint8_t' ( const uint8_t) -0:? 3 (const uint8_t) -0:? 'uint64_t_to_uint8_t' ( const uint8_t) -0:? 4 (const uint8_t) -0:? 'float16_t_to_uint8_t' ( const uint8_t) -0:? 42 (const uint8_t) -0:? 'float32_t_to_uint8_t' ( const uint8_t) -0:? 13 (const uint8_t) -0:? 'float64_t_to_uint8_t' ( const uint8_t) -0:? 4 (const uint8_t) -0:? 'bool_to_uint16_t' ( const uint16_t) -0:? 1 (const uint16_t) -0:? 'int8_t_to_uint16_t' ( const uint16_t) -0:? 65535 (const uint16_t) -0:? 'int16_t_to_uint16_t' ( const uint16_t) -0:? 65534 (const uint16_t) -0:? 'int32_t_to_uint16_t' ( const uint16_t) -0:? 65533 (const uint16_t) -0:? 'int64_t_to_uint16_t' ( const uint16_t) -0:? 65532 (const uint16_t) -0:? 'uint8_t_to_uint16_t' ( const uint16_t) -0:? 1 (const uint16_t) -0:? 'uint16_t_to_uint16_t' ( const uint16_t) -0:? 2 (const uint16_t) -0:? 'uint32_t_to_uint16_t' ( const uint16_t) -0:? 3 (const uint16_t) -0:? 'uint64_t_to_uint16_t' ( const uint16_t) -0:? 4 (const uint16_t) -0:? 'float16_t_to_uint16_t' ( const uint16_t) -0:? 42 (const uint16_t) -0:? 'float32_t_to_uint16_t' ( const uint16_t) -0:? 13 (const uint16_t) -0:? 'float64_t_to_uint16_t' ( const uint16_t) -0:? 4 (const uint16_t) -0:? 'bool_to_uint32_t' ( const uint) -0:? 1 (const uint) -0:? 'int8_t_to_uint32_t' ( const uint) -0:? 4294967295 (const uint) -0:? 'int16_t_to_uint32_t' ( const uint) -0:? 4294967294 (const uint) -0:? 'int32_t_to_uint32_t' ( const uint) -0:? 4294967293 (const uint) -0:? 'int64_t_to_uint32_t' ( const uint) -0:? 4294967292 (const uint) -0:? 'uint8_t_to_uint32_t' ( const uint) -0:? 1 (const uint) -0:? 'uint16_t_to_uint32_t' ( const uint) -0:? 2 (const uint) -0:? 'uint32_t_to_uint32_t' ( const uint) -0:? 3 (const uint) -0:? 'uint64_t_to_uint32_t' ( const uint) -0:? 4 (const uint) -0:? 'float16_t_to_uint32_t' ( const uint) -0:? 42 (const uint) -0:? 'float32_t_to_uint32_t' ( const uint) -0:? 13 (const uint) -0:? 'float64_t_to_uint32_t' ( const uint) -0:? 4 (const uint) -0:? 'bool_to_uint64_t' ( const uint64_t) -0:? 1 (const uint64_t) -0:? 'int8_t_to_uint64_t' ( const uint64_t) -0:? 18446744073709551615 (const uint64_t) -0:? 'int16_t_to_uint64_t' ( const uint64_t) -0:? 18446744073709551614 (const uint64_t) -0:? 'int32_t_to_uint64_t' ( const uint64_t) -0:? 18446744073709551613 (const uint64_t) -0:? 'int64_t_to_uint64_t' ( const uint64_t) -0:? 18446744073709551612 (const uint64_t) -0:? 'uint8_t_to_uint64_t' ( const uint64_t) -0:? 1 (const uint64_t) -0:? 'uint16_t_to_uint64_t' ( const uint64_t) -0:? 2 (const uint64_t) -0:? 'uint32_t_to_uint64_t' ( const uint64_t) -0:? 3 (const uint64_t) -0:? 'uint64_t_to_uint64_t' ( const uint64_t) -0:? 4 (const uint64_t) -0:? 'float16_t_to_uint64_t' ( const uint64_t) -0:? 42 (const uint64_t) -0:? 'float32_t_to_uint64_t' ( const uint64_t) -0:? 13 (const uint64_t) -0:? 'float64_t_to_uint64_t' ( const uint64_t) -0:? 4 (const uint64_t) -0:? 'bool_to_float16_t' ( const float16_t) -0:? 1.000000 -0:? 'int8_t_to_float16_t' ( const float16_t) -0:? -1.000000 -0:? 'int16_t_to_float16_t' ( const float16_t) -0:? -2.000000 -0:? 'int32_t_to_float16_t' ( const float16_t) -0:? -3.000000 -0:? 'int64_t_to_float16_t' ( const float16_t) -0:? -4.000000 -0:? 'uint8_t_to_float16_t' ( const float16_t) -0:? 1.000000 -0:? 'uint16_t_to_float16_t' ( const float16_t) -0:? 2.000000 -0:? 'uint32_t_to_float16_t' ( const float16_t) -0:? 3.000000 -0:? 'uint64_t_to_float16_t' ( const float16_t) -0:? 4.000000 -0:? 'float16_t_to_float16_t' ( const float16_t) -0:? 42.000000 -0:? 'float32_t_to_float16_t' ( const float16_t) -0:? 13.000000 -0:? 'float64_t_to_float16_t' ( const float16_t) -0:? 4.000000 -0:? 'bool_to_float32_t' ( const float) -0:? 1.000000 -0:? 'int8_t_to_float32_t' ( const float) -0:? -1.000000 -0:? 'int16_t_to_float32_t' ( const float) -0:? -2.000000 -0:? 'int32_t_to_float32_t' ( const float) -0:? -3.000000 -0:? 'int64_t_to_float32_t' ( const float) -0:? -4.000000 -0:? 'uint8_t_to_float32_t' ( const float) -0:? 1.000000 -0:? 'uint16_t_to_float32_t' ( const float) -0:? 2.000000 -0:? 'uint32_t_to_float32_t' ( const float) -0:? 3.000000 -0:? 'uint64_t_to_float32_t' ( const float) -0:? 4.000000 -0:? 'float16_t_to_float32_t' ( const float) -0:? 42.000000 -0:? 'float32_t_to_float32_t' ( const float) -0:? 13.000000 -0:? 'float64_t_to_float32_t' ( const float) -0:? 4.000000 -0:? 'bool_to_float64_t' ( const double) -0:? 1.000000 -0:? 'int8_t_to_float64_t' ( const double) -0:? -1.000000 -0:? 'int16_t_to_float64_t' ( const double) -0:? -2.000000 -0:? 'int32_t_to_float64_t' ( const double) -0:? -3.000000 -0:? 'int64_t_to_float64_t' ( const double) -0:? -4.000000 -0:? 'uint8_t_to_float64_t' ( const double) -0:? 1.000000 -0:? 'uint16_t_to_float64_t' ( const double) -0:? 2.000000 -0:? 'uint32_t_to_float64_t' ( const double) -0:? 3.000000 -0:? 'uint64_t_to_float64_t' ( const double) -0:? 4.000000 -0:? 'float16_t_to_float64_t' ( const double) -0:? 42.000000 -0:? 'float32_t_to_float64_t' ( const double) -0:? 13.000000 -0:? 'float64_t_to_float64_t' ( const double) -0:? 4.000000 -0:? 'neg_float16_t_to_bool' ( const bool) -0:? true (const bool) -0:? 'neg_float32_t_to_bool' ( const bool) -0:? true (const bool) -0:? 'neg_float64_t_to_bool' ( const bool) -0:? true (const bool) -0:? 'neg_float16_t_to_int8_t' ( const int8_t) -0:? -42 (const int8_t) -0:? 'neg_float32_t_to_int8_t' ( const int8_t) -0:? -13 (const int8_t) -0:? 'neg_float64_t_to_int8_t' ( const int8_t) -0:? -4 (const int8_t) -0:? 'neg_float16_t_to_int16_t' ( const int16_t) -0:? -42 (const int16_t) -0:? 'neg_float32_t_to_int16_t' ( const int16_t) -0:? -13 (const int16_t) -0:? 'neg_float64_t_to_int16_t' ( const int16_t) -0:? -4 (const int16_t) -0:? 'neg_float16_t_to_int32_t' ( const int) -0:? -42 (const int) -0:? 'neg_float32_t_to_int32_t' ( const int) -0:? -13 (const int) -0:? 'neg_float64_t_to_int32_t' ( const int) -0:? -4 (const int) -0:? 'neg_float16_t_to_int64_t' ( const int64_t) -0:? -42 (const int64_t) -0:? 'neg_float32_t_to_int64_t' ( const int64_t) -0:? -13 (const int64_t) -0:? 'neg_float64_t_to_int64_t' ( const int64_t) -0:? -4 (const int64_t) -0:? 'neg_float16_t_to_float16_t' ( const float16_t) -0:? -42.000000 -0:? 'neg_float32_t_to_float16_t' ( const float16_t) -0:? -13.000000 -0:? 'neg_float64_t_to_float16_t' ( const float16_t) -0:? -4.000000 -0:? 'neg_float16_t_to_float32_t' ( const float) -0:? -42.000000 -0:? 'neg_float32_t_to_float32_t' ( const float) -0:? -13.000000 -0:? 'neg_float64_t_to_float32_t' ( const float) -0:? -4.000000 -0:? 'neg_float16_t_to_float64_t' ( const double) -0:? -42.000000 -0:? 'neg_float32_t_to_float64_t' ( const double) -0:? -13.000000 -0:? 'neg_float64_t_to_float64_t' ( const double) -0:? -4.000000 - diff --git a/deps/glslang/Test/baseResults/contradict_0.geom.out b/deps/glslang/Test/baseResults/contradict_0.geom.out deleted file mode 100644 index 0429657f..00000000 --- a/deps/glslang/Test/baseResults/contradict_0.geom.out +++ /dev/null @@ -1,63 +0,0 @@ -contradict_0.geom -Shader version: 330 -invocations = -1 -max_vertices = 4 -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 Sequence -0:10 move second child to first child ( temp float) -0:10 'v' ( temp float) -0:10 Function Call: getV( ( global float) -0:11 EndPrimitive ( global void) -0:12 EndPrimitive ( global void) -0:? Linker Objects - -contradict_1.geom -Shader version: 330 -invocations = -1 -max_vertices = 6 -input primitive = lines -output primitive = line_strip -0:? Sequence -0:6 Function Definition: getV( ( global float) -0:6 Function Parameters: -0:8 Sequence -0:8 Branch: Return with expression -0:8 Constant: -0:8 1.000000 -0:? Linker Objects - - -Linked geometry stage: - -ERROR: Linking geometry stage: Contradictory layout max_vertices values -ERROR: Linking geometry stage: Contradictory input layout primitives -ERROR: Linking geometry stage: Contradictory output layout primitives - -Shader version: 330 -invocations = 1 -max_vertices = 4 -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 Sequence -0:10 move second child to first child ( temp float) -0:10 'v' ( temp float) -0:10 Function Call: getV( ( global float) -0:11 EndPrimitive ( global void) -0:12 EndPrimitive ( global void) -0:6 Function Definition: getV( ( global float) -0:6 Function Parameters: -0:8 Sequence -0:8 Branch: Return with expression -0:8 Constant: -0:8 1.000000 -0:? Linker Objects - diff --git a/deps/glslang/Test/baseResults/conversion.frag.out b/deps/glslang/Test/baseResults/conversion.frag.out deleted file mode 100644 index 73875d19..00000000 --- a/deps/glslang/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/Test/baseResults/coord_conventions.frag.out b/deps/glslang/Test/baseResults/coord_conventions.frag.out deleted file mode 100644 index 656c6087..00000000 --- a/deps/glslang/Test/baseResults/coord_conventions.frag.out +++ /dev/null @@ -1,255 +0,0 @@ -coord_conventions.frag -Shader version: 140 -Requested GL_ARB_explicit_attrib_location -Requested GL_ARB_fragment_coord_conventions -gl_FragCoord pixel center is integer -gl_FragCoord origin is upper left -0:? Sequence -0:17 Function Definition: main( ( global void) -0:17 Function Parameters: -0:19 Sequence -0:19 move second child to first child ( temp 4-component vector of float) -0:19 'myColor' (layout( location=0) out 4-component vector of float) -0:19 Constant: -0:19 0.200000 -0:19 0.200000 -0:19 0.200000 -0:19 0.200000 -0:20 Test condition and select ( temp void) -0:20 Condition -0:20 Compare Greater Than or Equal ( temp bool) -0:20 direct index ( temp float) -0:20 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 10.000000 -0:20 true case -0:21 Sequence -0:21 move second child to first child ( temp float) -0:21 direct index ( temp float) -0:21 'myColor' (layout( location=0) out 4-component vector of float) -0:21 Constant: -0:21 2 (const int) -0:21 Constant: -0:21 0.800000 -0:23 Test condition and select ( temp void) -0:23 Condition -0:23 Compare Equal ( temp bool) -0:23 direct index ( temp float) -0:23 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) -0:23 Constant: -0:23 1 (const int) -0:23 trunc ( global float) -0:23 direct index ( temp float) -0:23 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) -0:23 Constant: -0:23 1 (const int) -0:23 true case -0:24 Sequence -0:24 move second child to first child ( temp float) -0:24 direct index ( temp float) -0:24 'myColor' (layout( location=0) out 4-component vector of float) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 0.800000 -0:26 Test condition and select ( temp void) -0:26 Condition -0:26 Compare Equal ( temp bool) -0:26 direct index ( temp float) -0:26 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) -0:26 Constant: -0:26 0 (const int) -0:26 trunc ( global float) -0:26 direct index ( temp float) -0:26 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) -0:26 Constant: -0:26 0 (const int) -0:26 true case -0:27 Sequence -0:27 move second child to first child ( temp float) -0:27 direct index ( temp float) -0:27 'myColor' (layout( location=0) out 4-component vector of float) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 0.800000 -0:30 Sequence -0:30 move second child to first child ( temp 4-component vector of float) -0:30 'diff' ( temp 4-component vector of float) -0:30 subtract ( temp 4-component vector of float) -0:30 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) -0:30 'i' ( smooth in 4-component vector of float) -0:31 Test condition and select ( temp void) -0:31 Condition -0:31 Compare Greater Than ( temp bool) -0:31 Absolute value ( global float) -0:31 direct index ( temp float) -0:31 'diff' ( temp 4-component vector of float) -0:31 Constant: -0:31 2 (const int) -0:31 Constant: -0:31 0.001000 -0:31 true case -0:32 move second child to first child ( temp float) -0:32 direct index ( temp float) -0:32 'myColor' (layout( location=0) out 4-component vector of float) -0:32 Constant: -0:32 2 (const int) -0:32 Constant: -0:32 0.500000 -0:33 Test condition and select ( temp void) -0:33 Condition -0:33 Compare Greater Than ( temp bool) -0:33 Absolute value ( global float) -0:33 direct index ( temp float) -0:33 'diff' ( temp 4-component vector of float) -0:33 Constant: -0:33 3 (const int) -0:33 Constant: -0:33 0.001000 -0:33 true case -0:34 move second child to first child ( temp float) -0:34 direct index ( temp float) -0:34 'myColor' (layout( location=0) out 4-component vector of float) -0:34 Constant: -0:34 3 (const int) -0:34 Constant: -0:34 0.500000 -0:? Linker Objects -0:? 'i' ( smooth in 4-component vector of float) -0:? 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) -0:? 'myColor' (layout( location=0) out 4-component vector of float) -0:? 'eps' ( const float) -0:? 0.001000 - - -Linked fragment stage: - - -Shader version: 140 -Requested GL_ARB_explicit_attrib_location -Requested GL_ARB_fragment_coord_conventions -gl_FragCoord pixel center is integer -gl_FragCoord origin is upper left -0:? Sequence -0:17 Function Definition: main( ( global void) -0:17 Function Parameters: -0:19 Sequence -0:19 move second child to first child ( temp 4-component vector of float) -0:19 'myColor' (layout( location=0) out 4-component vector of float) -0:19 Constant: -0:19 0.200000 -0:19 0.200000 -0:19 0.200000 -0:19 0.200000 -0:20 Test condition and select ( temp void) -0:20 Condition -0:20 Compare Greater Than or Equal ( temp bool) -0:20 direct index ( temp float) -0:20 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 10.000000 -0:20 true case -0:21 Sequence -0:21 move second child to first child ( temp float) -0:21 direct index ( temp float) -0:21 'myColor' (layout( location=0) out 4-component vector of float) -0:21 Constant: -0:21 2 (const int) -0:21 Constant: -0:21 0.800000 -0:23 Test condition and select ( temp void) -0:23 Condition -0:23 Compare Equal ( temp bool) -0:23 direct index ( temp float) -0:23 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) -0:23 Constant: -0:23 1 (const int) -0:23 trunc ( global float) -0:23 direct index ( temp float) -0:23 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) -0:23 Constant: -0:23 1 (const int) -0:23 true case -0:24 Sequence -0:24 move second child to first child ( temp float) -0:24 direct index ( temp float) -0:24 'myColor' (layout( location=0) out 4-component vector of float) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 0.800000 -0:26 Test condition and select ( temp void) -0:26 Condition -0:26 Compare Equal ( temp bool) -0:26 direct index ( temp float) -0:26 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) -0:26 Constant: -0:26 0 (const int) -0:26 trunc ( global float) -0:26 direct index ( temp float) -0:26 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) -0:26 Constant: -0:26 0 (const int) -0:26 true case -0:27 Sequence -0:27 move second child to first child ( temp float) -0:27 direct index ( temp float) -0:27 'myColor' (layout( location=0) out 4-component vector of float) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 0.800000 -0:30 Sequence -0:30 move second child to first child ( temp 4-component vector of float) -0:30 'diff' ( temp 4-component vector of float) -0:30 subtract ( temp 4-component vector of float) -0:30 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) -0:30 'i' ( smooth in 4-component vector of float) -0:31 Test condition and select ( temp void) -0:31 Condition -0:31 Compare Greater Than ( temp bool) -0:31 Absolute value ( global float) -0:31 direct index ( temp float) -0:31 'diff' ( temp 4-component vector of float) -0:31 Constant: -0:31 2 (const int) -0:31 Constant: -0:31 0.001000 -0:31 true case -0:32 move second child to first child ( temp float) -0:32 direct index ( temp float) -0:32 'myColor' (layout( location=0) out 4-component vector of float) -0:32 Constant: -0:32 2 (const int) -0:32 Constant: -0:32 0.500000 -0:33 Test condition and select ( temp void) -0:33 Condition -0:33 Compare Greater Than ( temp bool) -0:33 Absolute value ( global float) -0:33 direct index ( temp float) -0:33 'diff' ( temp 4-component vector of float) -0:33 Constant: -0:33 3 (const int) -0:33 Constant: -0:33 0.001000 -0:33 true case -0:34 move second child to first child ( temp float) -0:34 direct index ( temp float) -0:34 'myColor' (layout( location=0) out 4-component vector of float) -0:34 Constant: -0:34 3 (const int) -0:34 Constant: -0:34 0.500000 -0:? Linker Objects -0:? 'i' ( smooth in 4-component vector of float) -0:? 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) -0:? 'myColor' (layout( location=0) out 4-component vector of float) -0:? 'eps' ( const float) -0:? 0.001000 - diff --git a/deps/glslang/Test/baseResults/cppBad.vert.out b/deps/glslang/Test/baseResults/cppBad.vert.out deleted file mode 100644 index 8ab04bc0..00000000 --- a/deps/glslang/Test/baseResults/cppBad.vert.out +++ /dev/null @@ -1,27 +0,0 @@ -cppBad.vert -WARNING: 0:1: '#define' : missing space after macro name -ERROR: 0:3: 'preprocessor evaluation' : bad expression -ERROR: 0:3: '#if' : unexpected tokens following directive -ERROR: 0:6: 'string' : End of line in string -ERROR: 0:6: 'string literal' : required extension not requested: Possible extensions include: -GL_EXT_debug_printf -GL_EXT_spirv_intrinsics -ERROR: 0:6: '' : syntax error, unexpected INT, expecting COMMA or SEMICOLON -ERROR: 5 compilation errors. No code generated. - - -Shader version: 100 -ERROR: node is still EOpNull! -0:? Linker Objects -0:? 'n' ( global highp int) - - -Linked vertex stage: - -ERROR: Linking vertex stage: Missing entry point: Each stage requires one entry point - -Shader version: 100 -ERROR: node is still EOpNull! -0:? Linker Objects -0:? 'n' ( global highp int) - diff --git a/deps/glslang/Test/baseResults/cppBad2.vert.out b/deps/glslang/Test/baseResults/cppBad2.vert.out deleted file mode 100644 index 0398e5e4..00000000 --- a/deps/glslang/Test/baseResults/cppBad2.vert.out +++ /dev/null @@ -1,19 +0,0 @@ -cppBad2.vert -ERROR: 0:3: 'macro expansion' : End of input in macro b -ERROR: 0:3: '' : compilation terminated -ERROR: 2 compilation errors. No code generated. - - -Shader version: 100 -ERROR: node is still EOpNull! -0:? Linker Objects - - -Linked vertex stage: - -ERROR: Linking vertex stage: Missing entry point: Each stage requires one entry point - -Shader version: 100 -ERROR: node is still EOpNull! -0:? Linker Objects - diff --git a/deps/glslang/Test/baseResults/cppBad3.vert.out b/deps/glslang/Test/baseResults/cppBad3.vert.out deleted file mode 100644 index c454c1a0..00000000 --- a/deps/glslang/Test/baseResults/cppBad3.vert.out +++ /dev/null @@ -1,19 +0,0 @@ -cppBad3.vert -ERROR: 0:3: 'macro expansion' : End of input in macro y -ERROR: 0:3: '' : compilation terminated -ERROR: 2 compilation errors. No code generated. - - -Shader version: 100 -ERROR: node is still EOpNull! -0:? Linker Objects - - -Linked vertex stage: - -ERROR: Linking vertex stage: Missing entry point: Each stage requires one entry point - -Shader version: 100 -ERROR: node is still EOpNull! -0:? Linker Objects - diff --git a/deps/glslang/Test/baseResults/cppBad4.vert.out b/deps/glslang/Test/baseResults/cppBad4.vert.out deleted file mode 100644 index 693ea8e8..00000000 --- a/deps/glslang/Test/baseResults/cppBad4.vert.out +++ /dev/null @@ -1,19 +0,0 @@ -cppBad4.vert -ERROR: 0:4: 'macro expansion' : unexpected '#' g -ERROR: 0:5: '' : syntax error, unexpected SEMICOLON, expecting LEFT_PAREN -ERROR: 2 compilation errors. No code generated. - - -Shader version: 100 -ERROR: node is still EOpNull! -0:? Linker Objects - - -Linked vertex stage: - -ERROR: Linking vertex stage: Missing entry point: Each stage requires one entry point - -Shader version: 100 -ERROR: node is still EOpNull! -0:? Linker Objects - diff --git a/deps/glslang/Test/baseResults/cppBad5.vert.out b/deps/glslang/Test/baseResults/cppBad5.vert.out deleted file mode 100644 index 83043bb7..00000000 --- a/deps/glslang/Test/baseResults/cppBad5.vert.out +++ /dev/null @@ -1,19 +0,0 @@ -cppBad5.vert -ERROR: 0:4: 'macro expansion' : End of input in macro g -ERROR: 0:5: '' : compilation terminated -ERROR: 2 compilation errors. No code generated. - - -Shader version: 100 -ERROR: node is still EOpNull! -0:? Linker Objects - - -Linked vertex stage: - -ERROR: Linking vertex stage: Missing entry point: Each stage requires one entry point - -Shader version: 100 -ERROR: node is still EOpNull! -0:? Linker Objects - diff --git a/deps/glslang/Test/baseResults/cppComplexExpr.vert.out b/deps/glslang/Test/baseResults/cppComplexExpr.vert.out deleted file mode 100644 index 6bfcd9cc..00000000 --- a/deps/glslang/Test/baseResults/cppComplexExpr.vert.out +++ /dev/null @@ -1,181 +0,0 @@ -cppComplexExpr.vert -ERROR: 0:46: 'xyxwx' : vector swizzle too long -ERROR: 0:46: 'xyxwx' : vector swizzle too long -ERROR: 0:46: 'return' : cannot convert return value to function return type -WARNING: 0:46: 'return' : type conversion on return values was not explicitly allowed until version 420 -ERROR: 0:66: '#define' : Macro redefined; different substitutions: BIG -ERROR: 0:81: 'preprocessor evaluation' : bad expression -ERROR: 0:81: '#if' : unexpected tokens following directive -ERROR: 0:82: '#error' : good macro -ERROR: 0:87: 'macro expansion' : End of line in macro substitution: foobar -ERROR: 0:88: 'preprocessor evaluation' : can't evaluate expression -ERROR: 0:88: 'preprocessor evaluation' : bad expression -ERROR: 0:88: '#if' : unexpected tokens following directive -ERROR: 0:92: 'macro expansion' : End of line in macro substitution: foobar -ERROR: 0:93: 'preprocessor evaluation' : can't evaluate expression -ERROR: 0:93: 'preprocessor evaluation' : bad expression -ERROR: 0:93: '#if' : unexpected tokens following directive -ERROR: 0:99: 'macro expansion' : End of line in macro substitution: foobar -ERROR: 0:100: 'preprocessor evaluation' : can't evaluate expression -ERROR: 0:100: 'preprocessor evaluation' : bad expression -ERROR: 0:100: '#if' : unexpected tokens following directive -ERROR: 0:101: 'macro expansion' : End of line in macro substitution: foobar -ERROR: 0:102: 'preprocessor evaluation' : can't evaluate expression -ERROR: 0:102: 'preprocessor evaluation' : bad expression -ERROR: 0:102: '#if' : unexpected tokens following directive -ERROR: 0:108: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile UNDEF -ERROR: 0:111: '#error' : good 0 -ERROR: 0:115: '#error' : good 1 -ERROR: 0:120: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile UNDEF -ERROR: 0:123: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile UNDEF -ERROR: 0:129: '#error' : good 1 -ERROR: 0:133: '#error' : good 3 -ERROR: 0:139: '#error' : good 4 -ERROR: 0:144: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile UNDEF -ERROR: 0:153: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile UNDEF -ERROR: 0:156: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile UNDEF2 -ERROR: 0:159: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile UNDEF2 -ERROR: 0:3000: '#error' : line of this error should be 3000 -ERROR: 0:3002: '#define' : predefined names can't be (un)defined: __LINE__ -ERROR: 0:3003: '#define' : predefined names can't be (un)defined: __FILE__ -ERROR: 0:3004: '#define' : predefined names can't be (un)defined: __VERSION__ -ERROR: 0:3005: '#define' : names beginning with "GL_" can't be (un)defined: GL_SOME_EXTENSION -ERROR: 0:3006: '#undef' : predefined names can't be (un)defined: __LINE__ -ERROR: 0:3007: '#undef' : predefined names can't be (un)defined: __FILE__ -ERROR: 0:3008: '#undef' : predefined names can't be (un)defined: __VERSION__ -ERROR: 0:3009: '#undef' : names beginning with "GL_" can't be (un)defined: GL_SOME_EXTENSION -ERROR: 0:4000: 'preprocessor evaluation' : division by 0 -ERROR: 0:0: 'preprocessor evaluation' : division by 0 -ERROR: 0:3: 'preprocessor evaluation' : bad expression -ERROR: 0:3: 'preprocessor evaluation' : division by 0 -ERROR: 0:10001: '' : missing #endif -ERROR: 49 compilation errors. No code generated. - - -Shader version: 300 -ERROR: node is still EOpNull! -0:4 Sequence -0:4 move second child to first child ( temp highp float) -0:4 'sum' ( global highp float) -0:4 Constant: -0:4 0.000000 -0:6 Function Definition: main( ( global void) -0:6 Function Parameters: -0:10 Sequence -0:10 add second child into first child ( temp highp float) -0:10 'sum' ( global highp float) -0:10 Constant: -0:10 1.000000 -0:15 add second child into first child ( temp highp float) -0:15 'sum' ( global highp float) -0:15 Constant: -0:15 20.000000 -0:30 add second child into first child ( temp highp float) -0:30 'sum' ( global highp float) -0:30 Constant: -0:30 300.000000 -0:39 move second child to first child ( temp highp 4-component vector of float) -0:39 'gl_Position' ( gl_Position highp 4-component vector of float Position) -0:39 Construct vec4 ( temp highp 4-component vector of float) -0:39 'sum' ( global highp float) -0:44 Function Definition: foo( ( global highp float) -0:44 Function Parameters: -0:46 Sequence -0:46 Branch: Return with expression -0:46 add ( temp highp 4-component vector of float) -0:46 add ( temp highp 4-component vector of float) -0:46 vector swizzle ( temp highp 4-component vector of float) -0:46 'gl_Position' ( gl_Position highp 4-component vector of float Position) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 3 (const int) -0:46 Constant: -0:46 3.000000 -0:46 add ( temp highp 4-component vector of float) -0:46 vector swizzle ( temp highp 4-component vector of float) -0:46 'gl_Position' ( gl_Position highp 4-component vector of float Position) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 3 (const int) -0:46 Constant: -0:46 3.000000 -0:47 Branch: Return with expression -0:47 add ( temp highp float) -0:47 add ( temp highp float) -0:47 direct index ( temp highp float) -0:47 'gl_Position' ( gl_Position highp 4-component vector of float Position) -0:47 Constant: -0:47 1 (const int) -0:47 Constant: -0:47 3.000000 -0:47 add ( temp highp float) -0:47 direct index ( temp highp float) -0:47 'gl_Position' ( gl_Position highp 4-component vector of float Position) -0:47 Constant: -0:47 1 (const int) -0:47 Constant: -0:47 3.000000 -0:97 Sequence -0:97 move second child to first child ( temp highp float) -0:97 'c' ( global highp float) -0:98 Constant: -0:98 3.300000 -0:? Linker Objects -0:? 'sum' ( global highp float) -0:? 'c' ( global highp float) -0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) - - -Linked vertex stage: - - -Shader version: 300 -ERROR: node is still EOpNull! -0:4 Sequence -0:4 move second child to first child ( temp highp float) -0:4 'sum' ( global highp float) -0:4 Constant: -0:4 0.000000 -0:6 Function Definition: main( ( global void) -0:6 Function Parameters: -0:10 Sequence -0:10 add second child into first child ( temp highp float) -0:10 'sum' ( global highp float) -0:10 Constant: -0:10 1.000000 -0:15 add second child into first child ( temp highp float) -0:15 'sum' ( global highp float) -0:15 Constant: -0:15 20.000000 -0:30 add second child into first child ( temp highp float) -0:30 'sum' ( global highp float) -0:30 Constant: -0:30 300.000000 -0:39 move second child to first child ( temp highp 4-component vector of float) -0:39 'gl_Position' ( gl_Position highp 4-component vector of float Position) -0:39 Construct vec4 ( temp highp 4-component vector of float) -0:39 'sum' ( global highp float) -0:97 Sequence -0:97 move second child to first child ( temp highp float) -0:97 'c' ( global highp float) -0:98 Constant: -0:98 3.300000 -0:? Linker Objects -0:? 'sum' ( global highp float) -0:? 'c' ( global highp float) -0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) - diff --git a/deps/glslang/Test/baseResults/cppDeepNest.frag.out b/deps/glslang/Test/baseResults/cppDeepNest.frag.out deleted file mode 100644 index 49b9aa3c..00000000 --- a/deps/glslang/Test/baseResults/cppDeepNest.frag.out +++ /dev/null @@ -1,20 +0,0 @@ -cppDeepNest.frag -ERROR: 0:66: '#if/#ifdef/#ifndef' : maximum nesting depth exceeded -ERROR: 0:66: '' : missing #endif -ERROR: 0:66: '' : syntax error, unexpected end of file -ERROR: 3 compilation errors. No code generated. - - -Shader version: 100 -ERROR: node is still EOpNull! -0:? Linker Objects - - -Linked fragment stage: - -ERROR: Linking fragment stage: Missing entry point: Each stage requires one entry point - -Shader version: 100 -ERROR: node is still EOpNull! -0:? Linker Objects - diff --git a/deps/glslang/Test/baseResults/cppIndent.vert.out b/deps/glslang/Test/baseResults/cppIndent.vert.out deleted file mode 100644 index 05eb244d..00000000 --- a/deps/glslang/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/Test/baseResults/cppIntMinOverNegativeOne.frag.out b/deps/glslang/Test/baseResults/cppIntMinOverNegativeOne.frag.out deleted file mode 100644 index 5dce7c3e..00000000 --- a/deps/glslang/Test/baseResults/cppIntMinOverNegativeOne.frag.out +++ /dev/null @@ -1,14 +0,0 @@ -cppIntMinOverNegativeOne.frag -Shader version: 100 -0:? Sequence -0:? Linker Objects - - -Linked fragment stage: - -ERROR: Linking fragment stage: Missing entry point: Each stage requires one entry point - -Shader version: 100 -0:? Sequence -0:? Linker Objects - diff --git a/deps/glslang/Test/baseResults/cppMerge.frag.out b/deps/glslang/Test/baseResults/cppMerge.frag.out deleted file mode 100644 index 64afd477..00000000 --- a/deps/glslang/Test/baseResults/cppMerge.frag.out +++ /dev/null @@ -1,23 +0,0 @@ -cppMerge.frag -Shader version: 450 -0:? Sequence -0:22 Function Definition: main( ( global void) -0:22 Function Parameters: -0:? Linker Objects -0:? 'dest1' (layout( set=0 binding=0) writeonly uniform image1D) -0:? 'dest2' (layout( set=0 binding=0) writeonly uniform image1D) -0:? 'dest3' (layout( set=0 binding=0) writeonly uniform image1D) - - -Linked fragment stage: - - -Shader version: 450 -0:? Sequence -0:22 Function Definition: main( ( global void) -0:22 Function Parameters: -0:? Linker Objects -0:? 'dest1' (layout( set=0 binding=0) writeonly uniform image1D) -0:? 'dest2' (layout( set=0 binding=0) writeonly uniform image1D) -0:? 'dest3' (layout( set=0 binding=0) writeonly uniform image1D) - diff --git a/deps/glslang/Test/baseResults/cppNest.vert.out b/deps/glslang/Test/baseResults/cppNest.vert.out deleted file mode 100644 index afd0370d..00000000 --- a/deps/glslang/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/Test/baseResults/cppPassMacroName.frag.out b/deps/glslang/Test/baseResults/cppPassMacroName.frag.out deleted file mode 100644 index e09b00d7..00000000 --- a/deps/glslang/Test/baseResults/cppPassMacroName.frag.out +++ /dev/null @@ -1,77 +0,0 @@ -cppPassMacroName.frag -Shader version: 100 -0:? Sequence -0:9 Function Definition: main( ( global void) -0:9 Function Parameters: -0:11 Sequence -0:11 Sequence -0:11 move second child to first child ( temp mediump int) -0:11 'f1' ( temp mediump int) -0:11 Constant: -0:11 4 (const int) -0:12 Sequence -0:12 move second child to first child ( temp mediump int) -0:12 'f2' ( temp mediump int) -0:12 'f1' ( temp mediump int) -0:13 Sequence -0:13 move second child to first child ( temp mediump int) -0:13 'f3' ( temp mediump int) -0:13 Constant: -0:13 9 (const int) -0:14 Sequence -0:14 move second child to first child ( temp mediump int) -0:14 'f4' ( temp mediump int) -0:14 Constant: -0:14 1 (const int) -0:15 Sequence -0:15 move second child to first child ( temp mediump int) -0:15 'f5' ( temp mediump int) -0:15 Constant: -0:15 5 (const int) -0:17 Sequence -0:17 move second child to first child ( temp highp float) -0:17 'fl_f5' ( temp highp float) -0:17 Constant: -0:17 0.460000 -0:? Linker Objects - - -Linked fragment stage: - - -Shader version: 100 -0:? Sequence -0:9 Function Definition: main( ( global void) -0:9 Function Parameters: -0:11 Sequence -0:11 Sequence -0:11 move second child to first child ( temp mediump int) -0:11 'f1' ( temp mediump int) -0:11 Constant: -0:11 4 (const int) -0:12 Sequence -0:12 move second child to first child ( temp mediump int) -0:12 'f2' ( temp mediump int) -0:12 'f1' ( temp mediump int) -0:13 Sequence -0:13 move second child to first child ( temp mediump int) -0:13 'f3' ( temp mediump int) -0:13 Constant: -0:13 9 (const int) -0:14 Sequence -0:14 move second child to first child ( temp mediump int) -0:14 'f4' ( temp mediump int) -0:14 Constant: -0:14 1 (const int) -0:15 Sequence -0:15 move second child to first child ( temp mediump int) -0:15 'f5' ( temp mediump int) -0:15 Constant: -0:15 5 (const int) -0:17 Sequence -0:17 move second child to first child ( temp highp float) -0:17 'fl_f5' ( temp highp float) -0:17 Constant: -0:17 0.460000 -0:? Linker Objects - diff --git a/deps/glslang/Test/baseResults/cppRelaxSkipTokensErrors.vert.out b/deps/glslang/Test/baseResults/cppRelaxSkipTokensErrors.vert.out deleted file mode 100644 index e9b4b1b7..00000000 --- a/deps/glslang/Test/baseResults/cppRelaxSkipTokensErrors.vert.out +++ /dev/null @@ -1,14 +0,0 @@ -cppRelaxSkipTokensErrors.vert -Shader version: 110 -0:? Sequence -0:? Linker Objects - - -Linked vertex stage: - -ERROR: Linking vertex stage: Missing entry point: Each stage requires one entry point - -Shader version: 110 -0:? Sequence -0:? Linker Objects - diff --git a/deps/glslang/Test/baseResults/cppSimple.vert.out b/deps/glslang/Test/baseResults/cppSimple.vert.out deleted file mode 100644 index 26de2312..00000000 --- a/deps/glslang/Test/baseResults/cppSimple.vert.out +++ /dev/null @@ -1,307 +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 literal' : required extension not requested: Possible extensions include: -GL_EXT_debug_printf -GL_EXT_spirv_intrinsics -ERROR: 0:136: 'string literal' : required extension not requested: Possible extensions include: -GL_EXT_debug_printf -GL_EXT_spirv_intrinsics -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; function-like versus object-like: m4 -ERROR: 0:177: '#define' : Macro redefined; function-like versus object-like: m5 -ERROR: 0:181: '#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:9015: '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}) -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}) -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}) -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}) -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}) -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/Test/baseResults/dataOut.frag.out b/deps/glslang/Test/baseResults/dataOut.frag.out deleted file mode 100644 index 78976169..00000000 --- a/deps/glslang/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/Test/baseResults/dataOutIndirect.frag.out b/deps/glslang/Test/baseResults/dataOutIndirect.frag.out deleted file mode 100644 index dbadb03e..00000000 --- a/deps/glslang/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/Test/baseResults/dce.frag.out b/deps/glslang/Test/baseResults/dce.frag.out deleted file mode 100644 index 6b02eb1c..00000000 --- a/deps/glslang/Test/baseResults/dce.frag.out +++ /dev/null @@ -1,152 +0,0 @@ -dce.frag -Shader version: 400 -0:? Sequence -0:5 Sequence -0:5 move second child to first child ( temp int) -0:5 'c' ( global int) -0:5 Constant: -0:5 0 (const int) -0:7 Function Definition: bar( ( global void) -0:7 Function Parameters: -0:9 Sequence -0:9 Test condition and select ( temp void) -0:9 Condition -0:9 Constant: -0:9 false (const bool) -0:9 true case -0:10 Pre-Increment ( temp int) -0:10 'c' ( global int) -0:9 false case -0:12 Pre-Increment ( temp int) -0:12 'c' ( global int) -0:14 Test condition and select ( temp int) -0:14 Condition -0:14 Constant: -0:14 false (const bool) -0:14 true case -0:14 Pre-Increment ( temp int) -0:14 'c' ( global int) -0:14 false case -0:14 Pre-Increment ( temp int) -0:14 'c' ( global int) -0:16 switch -0:16 condition -0:16 'c' ( global int) -0:16 body -0:16 Sequence -0:17 case: with expression -0:17 Constant: -0:17 1 (const int) -0:? Sequence -0:18 Pre-Increment ( temp int) -0:18 'c' ( global int) -0:19 Branch: Break -0:20 Pre-Increment ( temp int) -0:20 'c' ( global int) -0:21 case: with expression -0:21 Constant: -0:21 2 (const int) -0:? Sequence -0:22 Branch: Break -0:23 Pre-Increment ( temp int) -0:23 'c' ( global int) -0:24 default: -0:? Sequence -0:25 Branch: Break -0:28 Sequence -0:28 Sequence -0:28 move second child to first child ( temp int) -0:28 'i' ( temp int) -0:28 Constant: -0:28 0 (const int) -0:28 Loop with condition tested first -0:28 Loop Condition -0:28 Compare Less Than ( temp bool) -0:28 'i' ( temp int) -0:28 Constant: -0:28 0 (const int) -0:28 Loop Body -0:29 Pre-Increment ( temp int) -0:29 'c' ( global int) -0:28 Loop Terminal Expression -0:28 Pre-Increment ( temp int) -0:28 'i' ( temp int) -0:31 Sequence -0:31 Sequence -0:31 move second child to first child ( temp int) -0:31 'i' ( temp int) -0:31 Constant: -0:31 0 (const int) -0:31 Loop with condition tested first -0:31 Loop Condition -0:31 Compare Less Than ( temp bool) -0:31 'i' ( temp int) -0:31 Constant: -0:31 10 (const int) -0:31 Loop Body -0:32 Sequence -0:32 Test condition and select ( temp void) -0:32 Condition -0:32 Compare Less Than ( temp bool) -0:32 'c' ( global int) -0:32 Constant: -0:32 3 (const int) -0:32 true case -0:33 Sequence -0:33 Branch: Break -0:34 Pre-Increment ( temp int) -0:34 'c' ( global int) -0:32 false case -0:36 Sequence -0:36 Branch: Continue -0:37 Pre-Increment ( temp int) -0:37 'c' ( global int) -0:31 Loop Terminal Expression -0:31 Pre-Increment ( temp int) -0:31 'i' ( temp int) -0:41 Branch: Return -0:43 Pre-Increment ( temp int) -0:43 'c' ( global int) -0:46 Function Definition: foo( ( global int) -0:46 Function Parameters: -0:48 Sequence -0:48 Test condition and select ( temp void) -0:48 Condition -0:48 Compare Greater Than ( temp bool) -0:48 'c' ( global int) -0:48 Constant: -0:48 4 (const int) -0:48 true case -0:49 Sequence -0:49 Branch: Return with expression -0:49 Constant: -0:49 4 (const int) -0:50 Pre-Increment ( temp int) -0:50 'c' ( global int) -0:53 Branch: Return with expression -0:53 Constant: -0:53 5 (const int) -0:55 Pre-Increment ( temp int) -0:55 'c' ( global int) -0:? Linker Objects -0:? 'flag' ( const bool) -0:? false (const bool) -0:? 'c' ( global int) - - -Linked fragment stage: - -ERROR: Linking fragment stage: Missing entry point: Each stage requires one entry point - -Shader version: 400 -0:? Sequence -0:5 Sequence -0:5 move second child to first child ( temp int) -0:5 'c' ( global int) -0:5 Constant: -0:5 0 (const int) -0:? Linker Objects -0:? 'flag' ( const bool) -0:? false (const bool) -0:? 'c' ( global int) - diff --git a/deps/glslang/Test/baseResults/decls.frag.out b/deps/glslang/Test/baseResults/decls.frag.out deleted file mode 100644 index 72ad11c4..00000000 --- a/deps/glslang/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/Test/baseResults/deepRvalue.frag.out b/deps/glslang/Test/baseResults/deepRvalue.frag.out deleted file mode 100644 index a4fdf5a8..00000000 --- a/deps/glslang/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/Test/baseResults/depthOut.frag.out b/deps/glslang/Test/baseResults/depthOut.frag.out deleted file mode 100644 index 91c1fc20..00000000 --- a/deps/glslang/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/Test/baseResults/discard-dce.frag.out b/deps/glslang/Test/baseResults/discard-dce.frag.out deleted file mode 100644 index 5f5e8894..00000000 --- a/deps/glslang/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/Test/baseResults/doWhileLoop.frag.out b/deps/glslang/Test/baseResults/doWhileLoop.frag.out deleted file mode 100644 index 5302cb98..00000000 --- a/deps/glslang/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/Test/baseResults/earlyReturnDiscard.frag.out b/deps/glslang/Test/baseResults/earlyReturnDiscard.frag.out deleted file mode 100644 index 8c9e4d97..00000000 --- a/deps/glslang/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/Test/baseResults/empty.frag.out b/deps/glslang/Test/baseResults/empty.frag.out deleted file mode 100644 index be186bb9..00000000 --- a/deps/glslang/Test/baseResults/empty.frag.out +++ /dev/null @@ -1,17 +0,0 @@ -empty.frag -Shader version: 100 -0:? Sequence -0:? Linker Objects - -empty2.frag -Shader version: 100 -0:? Sequence -0:? Linker Objects - -empty3.frag -Shader version: 110 -0:? Sequence -0:? Linker Objects - -ERROR: Cannot mix ES profile with non-ES profile shaders - diff --git a/deps/glslang/Test/baseResults/enhanced.0.frag.out b/deps/glslang/Test/baseResults/enhanced.0.frag.out deleted file mode 100644 index 1171bfaf..00000000 --- a/deps/glslang/Test/baseResults/enhanced.0.frag.out +++ /dev/null @@ -1,6 +0,0 @@ -enhanced.0.frag -ERROR: enhanced.0.frag:7: ' vec4 constructor' : not enough data provided for construction -ERROR: 1 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/enhanced.1.frag.out b/deps/glslang/Test/baseResults/enhanced.1.frag.out deleted file mode 100644 index 42f5b72d..00000000 --- a/deps/glslang/Test/baseResults/enhanced.1.frag.out +++ /dev/null @@ -1,6 +0,0 @@ -enhanced.1.frag -ERROR: enhanced.1.frag:9: 'v2' : no such field in structure 'vVert' -ERROR: 1 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/enhanced.2.frag.out b/deps/glslang/Test/baseResults/enhanced.2.frag.out deleted file mode 100644 index a7e48de4..00000000 --- a/deps/glslang/Test/baseResults/enhanced.2.frag.out +++ /dev/null @@ -1,6 +0,0 @@ -enhanced.2.frag -ERROR: enhanced.2.frag:5: ' vec3 constructor' : too many arguments -ERROR: 1 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/enhanced.3.link.out b/deps/glslang/Test/baseResults/enhanced.3.link.out deleted file mode 100644 index c0e6a202..00000000 --- a/deps/glslang/Test/baseResults/enhanced.3.link.out +++ /dev/null @@ -1,8 +0,0 @@ -enhanced.3.vert -enhanced.3.frag -ERROR: Linking vertex and fragment stages: Member names and types must match: - Block: VS_OUT - vertex stage: " vec2 TexCoords" - fragment stage: " vec2 foobar" - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/enhanced.4.link.out b/deps/glslang/Test/baseResults/enhanced.4.link.out deleted file mode 100644 index 2c0acf41..00000000 --- a/deps/glslang/Test/baseResults/enhanced.4.link.out +++ /dev/null @@ -1,7 +0,0 @@ -enhanced.4.vert -enhanced.4.frag -ERROR: Linking vertex and fragment stages: Layout location qualifier must match: - vertex stage: Block: VS_OUT Instance: vs_out: "layout( location=0) out" - fragment stage: Block: VS_OUT Instance: fs_in: "layout( location=1) in" - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/enhanced.5.link.out b/deps/glslang/Test/baseResults/enhanced.5.link.out deleted file mode 100644 index 929cfcef..00000000 --- a/deps/glslang/Test/baseResults/enhanced.5.link.out +++ /dev/null @@ -1,8 +0,0 @@ -enhanced.5.vert -enhanced.5.frag -ERROR: Linking vertex and fragment stages: Member names and types must match: - Block: VS_OUT - vertex stage: " vec2 TexCoords" - fragment stage: " vec3 TexCoords" - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/enhanced.6.link.out b/deps/glslang/Test/baseResults/enhanced.6.link.out deleted file mode 100644 index 99626282..00000000 --- a/deps/glslang/Test/baseResults/enhanced.6.link.out +++ /dev/null @@ -1,7 +0,0 @@ -enhanced.6.vert -enhanced.6.frag -ERROR: Linking vertex and fragment stages: Array sizes must be compatible: - vertex stage: " VS_OUT{ vec2 TexCoords} vs_out[2]" - fragment stage: " VS_OUT{ vec2 TexCoords} fs_in[1]" - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/enhanced.7.link.out b/deps/glslang/Test/baseResults/enhanced.7.link.out deleted file mode 100644 index a6333be9..00000000 --- a/deps/glslang/Test/baseResults/enhanced.7.link.out +++ /dev/null @@ -1,7 +0,0 @@ -enhanced.7.vert -enhanced.7.frag -ERROR: Linking vertex and fragment stages: vertex block member has no corresponding member in fragment block: - vertex stage: Block: Vertex, Member: ii - fragment stage: Block: Vertex, Member: n/a - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/errors.frag.out b/deps/glslang/Test/baseResults/errors.frag.out deleted file mode 100644 index 7271107e..00000000 --- a/deps/glslang/Test/baseResults/errors.frag.out +++ /dev/null @@ -1,32 +0,0 @@ -errors.frag -ERROR: 0:1: 'main' : function cannot take any parameter(s) -ERROR: 0:1: 'int' : entry point cannot return a value -ERROR: 2 compilation errors. No code generated. - - -Shader version: 100 -ERROR: node is still EOpNull! -0:1 Function Definition: main(i1; ( global mediump int) -0:1 Function Parameters: -0:1 'foo' ( in mediump int) -0:3 Sequence -0:3 Branch: Return with expression -0:3 Constant: -0:3 1 (const int) -0:? Linker Objects - - -Linked fragment stage: - - -Shader version: 100 -ERROR: node is still EOpNull! -0:1 Function Definition: main(i1; ( global mediump int) -0:1 Function Parameters: -0:1 'foo' ( in mediump int) -0:3 Sequence -0:3 Branch: Return with expression -0:3 Constant: -0:3 1 (const int) -0:? Linker Objects - diff --git a/deps/glslang/Test/baseResults/es-link1.frag.out b/deps/glslang/Test/baseResults/es-link1.frag.out deleted file mode 100644 index 8e662c3d..00000000 --- a/deps/glslang/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/Test/baseResults/findFunction.frag.out b/deps/glslang/Test/baseResults/findFunction.frag.out deleted file mode 100644 index cc9b15a1..00000000 --- a/deps/glslang/Test/baseResults/findFunction.frag.out +++ /dev/null @@ -1,233 +0,0 @@ -findFunction.frag -ERROR: 0:39: 'func' : ambiguous best function under implicit type conversion -ERROR: 0:40: 'func' : no matching overloaded function found -ERROR: 0:40: '=' : cannot convert from ' const float' to ' temp int64_t' -ERROR: 0:41: 'func' : no matching overloaded function found -ERROR: 0:41: '=' : cannot convert from ' const float' to ' temp int64_t' -ERROR: 0:44: 'func' : no matching overloaded function found -ERROR: 0:44: '=' : cannot convert from ' const float' to ' temp int64_t' -ERROR: 0:45: 'func' : ambiguous best function under implicit type conversion -ERROR: 8 compilation errors. No code generated. - - -Shader version: 450 -Requested GL_EXT_shader_explicit_arithmetic_types -ERROR: node is still EOpNull! -0:5 Function Definition: func(i81;i161;i161; ( global int64_t) -0:5 Function Parameters: -0:5 'a' ( in int8_t) -0:5 'b' ( in int16_t) -0:5 'c' ( in int16_t) -0:7 Sequence -0:7 Branch: Return with expression -0:7 Convert int16_t to int64 ( temp int64_t) -0:7 inclusive-or ( temp int16_t) -0:7 Convert int8_t to int16_t ( temp int16_t) -0:7 'a' ( in int8_t) -0:7 add ( temp int16_t) -0:7 'b' ( in int16_t) -0:7 'c' ( in int16_t) -0:10 Function Definition: func(i81;i161;i1; ( global int64_t) -0:10 Function Parameters: -0:10 'a' ( in int8_t) -0:10 'b' ( in int16_t) -0:10 'c' ( in int) -0:12 Sequence -0:12 Branch: Return with expression -0:12 Convert int to int64 ( temp int64_t) -0:12 inclusive-or ( temp int) -0:12 Convert int8_t to int ( temp int) -0:12 'a' ( in int8_t) -0:12 subtract ( temp int) -0:12 Convert int16_t to int ( temp int) -0:12 'b' ( in int16_t) -0:12 'c' ( in int) -0:15 Function Definition: func(i1;i1;i1; ( global int64_t) -0:15 Function Parameters: -0:15 'a' ( in int) -0:15 'b' ( in int) -0:15 'c' ( in int) -0:17 Sequence -0:17 Branch: Return with expression -0:17 Convert int to int64 ( temp int64_t) -0:17 add ( temp int) -0:17 divide ( temp int) -0:17 'a' ( in int) -0:17 'b' ( in int) -0:17 'c' ( in int) -0:20 Function Definition: func(f161;f161;f1; ( global int64_t) -0:20 Function Parameters: -0:20 'a' ( in float16_t) -0:20 'b' ( in float16_t) -0:20 'c' ( in float) -0:22 Sequence -0:22 Branch: Return with expression -0:22 Convert float to int64 ( temp int64_t) -0:22 subtract ( temp float) -0:22 Convert float16_t to float ( temp float) -0:22 'a' ( in float16_t) -0:22 component-wise multiply ( temp float) -0:22 Convert float16_t to float ( temp float) -0:22 'b' ( in float16_t) -0:22 'c' ( in float) -0:25 Function Definition: func(f161;i161;f1; ( global int64_t) -0:25 Function Parameters: -0:25 'a' ( in float16_t) -0:25 'b' ( in int16_t) -0:25 'c' ( in float) -0:27 Sequence -0:27 Branch: Return with expression -0:27 Convert float to int64 ( temp int64_t) -0:27 subtract ( temp float) -0:27 Convert float16_t to float ( temp float) -0:27 'a' ( in float16_t) -0:27 component-wise multiply ( temp float) -0:27 Convert int16_t to float ( temp float) -0:27 'b' ( in int16_t) -0:27 'c' ( in float) -0:30 Function Definition: main( ( global void) -0:30 Function Parameters: -0:? Sequence -0:38 Sequence -0:38 move second child to first child ( temp int64_t) -0:38 'b1' ( temp int64_t) -0:38 Function Call: func(i81;i161;i1; ( global int64_t) -0:38 'x' ( temp int8_t) -0:38 'y' ( temp int16_t) -0:38 'z' ( temp int) -0:39 Sequence -0:39 move second child to first child ( temp int64_t) -0:39 'b2' ( temp int64_t) -0:39 Function Call: func(f161;i161;f1; ( global int64_t) -0:39 Convert int16_t to float16_t ( temp float16_t) -0:39 'y' ( temp int16_t) -0:39 'y' ( temp int16_t) -0:39 Convert int to float ( temp float) -0:39 'z' ( temp int) -0:42 Sequence -0:42 move second child to first child ( temp int64_t) -0:42 'b5' ( temp int64_t) -0:42 Function Call: func(f161;i161;f1; ( global int64_t) -0:42 Convert int16_t to float16_t ( temp float16_t) -0:42 'y' ( temp int16_t) -0:42 'y' ( temp int16_t) -0:42 Convert float16_t to float ( temp float) -0:42 'f16' ( temp float16_t) -0:43 Sequence -0:43 move second child to first child ( temp int64_t) -0:43 'b7' ( temp int64_t) -0:43 Function Call: func(f161;f161;f1; ( global int64_t) -0:43 'f16' ( temp float16_t) -0:43 'f16' ( temp float16_t) -0:43 Convert int16_t to float ( temp float) -0:43 'y' ( temp int16_t) -0:45 Sequence -0:45 move second child to first child ( temp int64_t) -0:45 'b9' ( temp int64_t) -0:45 Function Call: func(f161;f161;f1; ( global int64_t) -0:45 'f16' ( temp float16_t) -0:45 Convert int8_t to float16_t ( temp float16_t) -0:45 'x' ( temp int8_t) -0:45 Convert float16_t to float ( temp float) -0:45 'f16' ( temp float16_t) -0:? Linker Objects - - -Linked fragment stage: - - -Shader version: 450 -Requested GL_EXT_shader_explicit_arithmetic_types -ERROR: node is still EOpNull! -0:10 Function Definition: func(i81;i161;i1; ( global int64_t) -0:10 Function Parameters: -0:10 'a' ( in int8_t) -0:10 'b' ( in int16_t) -0:10 'c' ( in int) -0:12 Sequence -0:12 Branch: Return with expression -0:12 Convert int to int64 ( temp int64_t) -0:12 inclusive-or ( temp int) -0:12 Convert int8_t to int ( temp int) -0:12 'a' ( in int8_t) -0:12 subtract ( temp int) -0:12 Convert int16_t to int ( temp int) -0:12 'b' ( in int16_t) -0:12 'c' ( in int) -0:20 Function Definition: func(f161;f161;f1; ( global int64_t) -0:20 Function Parameters: -0:20 'a' ( in float16_t) -0:20 'b' ( in float16_t) -0:20 'c' ( in float) -0:22 Sequence -0:22 Branch: Return with expression -0:22 Convert float to int64 ( temp int64_t) -0:22 subtract ( temp float) -0:22 Convert float16_t to float ( temp float) -0:22 'a' ( in float16_t) -0:22 component-wise multiply ( temp float) -0:22 Convert float16_t to float ( temp float) -0:22 'b' ( in float16_t) -0:22 'c' ( in float) -0:25 Function Definition: func(f161;i161;f1; ( global int64_t) -0:25 Function Parameters: -0:25 'a' ( in float16_t) -0:25 'b' ( in int16_t) -0:25 'c' ( in float) -0:27 Sequence -0:27 Branch: Return with expression -0:27 Convert float to int64 ( temp int64_t) -0:27 subtract ( temp float) -0:27 Convert float16_t to float ( temp float) -0:27 'a' ( in float16_t) -0:27 component-wise multiply ( temp float) -0:27 Convert int16_t to float ( temp float) -0:27 'b' ( in int16_t) -0:27 'c' ( in float) -0:30 Function Definition: main( ( global void) -0:30 Function Parameters: -0:? Sequence -0:38 Sequence -0:38 move second child to first child ( temp int64_t) -0:38 'b1' ( temp int64_t) -0:38 Function Call: func(i81;i161;i1; ( global int64_t) -0:38 'x' ( temp int8_t) -0:38 'y' ( temp int16_t) -0:38 'z' ( temp int) -0:39 Sequence -0:39 move second child to first child ( temp int64_t) -0:39 'b2' ( temp int64_t) -0:39 Function Call: func(f161;i161;f1; ( global int64_t) -0:39 Convert int16_t to float16_t ( temp float16_t) -0:39 'y' ( temp int16_t) -0:39 'y' ( temp int16_t) -0:39 Convert int to float ( temp float) -0:39 'z' ( temp int) -0:42 Sequence -0:42 move second child to first child ( temp int64_t) -0:42 'b5' ( temp int64_t) -0:42 Function Call: func(f161;i161;f1; ( global int64_t) -0:42 Convert int16_t to float16_t ( temp float16_t) -0:42 'y' ( temp int16_t) -0:42 'y' ( temp int16_t) -0:42 Convert float16_t to float ( temp float) -0:42 'f16' ( temp float16_t) -0:43 Sequence -0:43 move second child to first child ( temp int64_t) -0:43 'b7' ( temp int64_t) -0:43 Function Call: func(f161;f161;f1; ( global int64_t) -0:43 'f16' ( temp float16_t) -0:43 'f16' ( temp float16_t) -0:43 Convert int16_t to float ( temp float) -0:43 'y' ( temp int16_t) -0:45 Sequence -0:45 move second child to first child ( temp int64_t) -0:45 'b9' ( temp int64_t) -0:45 Function Call: func(f161;f161;f1; ( global int64_t) -0:45 'f16' ( temp float16_t) -0:45 Convert int8_t to float16_t ( temp float16_t) -0:45 'x' ( temp int8_t) -0:45 Convert float16_t to float ( temp float) -0:45 'f16' ( temp float16_t) -0:? Linker Objects - diff --git a/deps/glslang/Test/baseResults/floatBitsToInt.vert.out b/deps/glslang/Test/baseResults/floatBitsToInt.vert.out deleted file mode 100644 index 6d5185c8..00000000 --- a/deps/glslang/Test/baseResults/floatBitsToInt.vert.out +++ /dev/null @@ -1,217 +0,0 @@ -floatBitsToInt.vert -WARNING: 0:2: '#extension' : extension is only partially supported: GL_ARB_gpu_shader5 - -Shader version: 150 -Requested GL_ARB_gpu_shader5 -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 4-component vector of float) -0:8 'result' ( smooth out 4-component vector of float) -0:8 Constant: -0:8 1.000000 -0:8 1.000000 -0:8 1.000000 -0:8 1.000000 -0:9 Sequence -0:9 move second child to first child ( temp int) -0:9 'ret_val' ( temp int) -0:9 floatBitsToInt ( global int) -0:9 'value' ( uniform float) -0:10 Test condition and select ( temp void) -0:10 Condition -0:10 Compare Not Equal ( temp bool) -0:10 'expected_value' ( uniform int) -0:10 'ret_val' ( temp int) -0:10 true case -0:10 Sequence -0:10 move second child to first child ( temp 4-component vector of float) -0:10 'result' ( smooth out 4-component vector of float) -0:10 Constant: -0:10 0.000000 -0:10 0.000000 -0:10 0.000000 -0:10 0.000000 -0:12 switch -0:12 condition -0:12 'gl_VertexID' ( gl_VertexId int VertexId) -0:12 body -0:12 Sequence -0:13 case: with expression -0:13 Constant: -0:13 0 (const int) -0:? Sequence -0:13 move second child to first child ( temp 4-component vector of float) -0:13 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:13 '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}) -0:13 Constant: -0:13 0 (const uint) -0:13 Constant: -0:13 -1.000000 -0:13 1.000000 -0:13 0.000000 -0:13 1.000000 -0:13 Branch: Break -0:14 case: with expression -0:14 Constant: -0:14 1 (const int) -0:? Sequence -0:14 move second child to first child ( temp 4-component vector of float) -0:14 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:14 '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}) -0:14 Constant: -0:14 0 (const uint) -0:14 Constant: -0:14 1.000000 -0:14 1.000000 -0:14 0.000000 -0:14 1.000000 -0:14 Branch: Break -0:15 case: with expression -0:15 Constant: -0:15 2 (const int) -0:? Sequence -0:15 move second child to first child ( temp 4-component vector of float) -0:15 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:15 '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}) -0:15 Constant: -0:15 0 (const uint) -0:15 Constant: -0:15 -1.000000 -0:15 -1.000000 -0:15 0.000000 -0:15 1.000000 -0:15 Branch: Break -0:16 case: with expression -0:16 Constant: -0:16 3 (const int) -0:? Sequence -0:16 move second child to first child ( temp 4-component vector of float) -0:16 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:16 '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}) -0:16 Constant: -0:16 0 (const uint) -0:16 Constant: -0:16 1.000000 -0:16 -1.000000 -0:16 0.000000 -0:16 1.000000 -0:16 Branch: Break -0:? Linker Objects -0:? 'expected_value' ( uniform int) -0:? 'value' ( uniform float) -0:? 'result' ( smooth 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 1-element array of float ClipDistance gl_ClipDistance}) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - - -Linked vertex stage: - - -Shader version: 150 -Requested GL_ARB_gpu_shader5 -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 4-component vector of float) -0:8 'result' ( smooth out 4-component vector of float) -0:8 Constant: -0:8 1.000000 -0:8 1.000000 -0:8 1.000000 -0:8 1.000000 -0:9 Sequence -0:9 move second child to first child ( temp int) -0:9 'ret_val' ( temp int) -0:9 floatBitsToInt ( global int) -0:9 'value' ( uniform float) -0:10 Test condition and select ( temp void) -0:10 Condition -0:10 Compare Not Equal ( temp bool) -0:10 'expected_value' ( uniform int) -0:10 'ret_val' ( temp int) -0:10 true case -0:10 Sequence -0:10 move second child to first child ( temp 4-component vector of float) -0:10 'result' ( smooth out 4-component vector of float) -0:10 Constant: -0:10 0.000000 -0:10 0.000000 -0:10 0.000000 -0:10 0.000000 -0:12 switch -0:12 condition -0:12 'gl_VertexID' ( gl_VertexId int VertexId) -0:12 body -0:12 Sequence -0:13 case: with expression -0:13 Constant: -0:13 0 (const int) -0:? Sequence -0:13 move second child to first child ( temp 4-component vector of float) -0:13 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:13 '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}) -0:13 Constant: -0:13 0 (const uint) -0:13 Constant: -0:13 -1.000000 -0:13 1.000000 -0:13 0.000000 -0:13 1.000000 -0:13 Branch: Break -0:14 case: with expression -0:14 Constant: -0:14 1 (const int) -0:? Sequence -0:14 move second child to first child ( temp 4-component vector of float) -0:14 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:14 '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}) -0:14 Constant: -0:14 0 (const uint) -0:14 Constant: -0:14 1.000000 -0:14 1.000000 -0:14 0.000000 -0:14 1.000000 -0:14 Branch: Break -0:15 case: with expression -0:15 Constant: -0:15 2 (const int) -0:? Sequence -0:15 move second child to first child ( temp 4-component vector of float) -0:15 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:15 '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}) -0:15 Constant: -0:15 0 (const uint) -0:15 Constant: -0:15 -1.000000 -0:15 -1.000000 -0:15 0.000000 -0:15 1.000000 -0:15 Branch: Break -0:16 case: with expression -0:16 Constant: -0:16 3 (const int) -0:? Sequence -0:16 move second child to first child ( temp 4-component vector of float) -0:16 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:16 '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}) -0:16 Constant: -0:16 0 (const uint) -0:16 Constant: -0:16 1.000000 -0:16 -1.000000 -0:16 0.000000 -0:16 1.000000 -0:16 Branch: Break -0:? Linker Objects -0:? 'expected_value' ( uniform int) -0:? 'value' ( uniform float) -0:? 'result' ( smooth 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 1-element array of float ClipDistance gl_ClipDistance}) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - diff --git a/deps/glslang/Test/baseResults/flowControl.frag.out b/deps/glslang/Test/baseResults/flowControl.frag.out deleted file mode 100644 index 4f5fc8bc..00000000 --- a/deps/glslang/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/Test/baseResults/forLoop.frag.out b/deps/glslang/Test/baseResults/forLoop.frag.out deleted file mode 100644 index e6a15178..00000000 --- a/deps/glslang/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/Test/baseResults/forwardRef.frag.out b/deps/glslang/Test/baseResults/forwardRef.frag.out deleted file mode 100644 index 22e77c5b..00000000 --- a/deps/glslang/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/Test/baseResults/functionCall.frag.out b/deps/glslang/Test/baseResults/functionCall.frag.out deleted file mode 100644 index 902208ff..00000000 --- a/deps/glslang/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/Test/baseResults/functionSemantics.frag.out b/deps/glslang/Test/baseResults/functionSemantics.frag.out deleted file mode 100644 index d04e6e7a..00000000 --- a/deps/glslang/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/Test/baseResults/gl_FragCoord.frag.out b/deps/glslang/Test/baseResults/gl_FragCoord.frag.out deleted file mode 100644 index da9e8dcc..00000000 --- a/deps/glslang/Test/baseResults/gl_FragCoord.frag.out +++ /dev/null @@ -1,269 +0,0 @@ -gl_FragCoord.frag -Shader version: 150 -Requested GL_ARB_explicit_attrib_location -gl_FragCoord pixel center is integer -gl_FragCoord origin is upper left -0:? Sequence -0:9 Sequence -0:9 move second child to first child ( temp float) -0:9 'myGlobalVar' ( global float) -0:9 direct index ( temp float) -0:9 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) -0:9 Constant: -0:9 0 (const int) -0:16 Function Definition: main( ( global void) -0:16 Function Parameters: -0:17 Sequence -0:17 move second child to first child ( temp 4-component vector of float) -0:17 'myColor' (layout( location=0) out 4-component vector of float) -0:17 Constant: -0:17 0.200000 -0:17 0.200000 -0:17 0.200000 -0:17 0.200000 -0:18 Test condition and select ( temp void) -0:18 Condition -0:18 Compare Greater Than or Equal ( temp bool) -0:18 direct index ( temp float) -0:18 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) -0:18 Constant: -0:18 1 (const int) -0:18 Constant: -0:18 10.000000 -0:18 true case -0:19 Sequence -0:19 move second child to first child ( temp float) -0:19 direct index ( temp float) -0:19 'myColor' (layout( location=0) out 4-component vector of float) -0:19 Constant: -0:19 2 (const int) -0:19 Constant: -0:19 0.800000 -0:21 Test condition and select ( temp void) -0:21 Condition -0:21 Compare Equal ( temp bool) -0:21 direct index ( temp float) -0:21 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) -0:21 Constant: -0:21 1 (const int) -0:21 trunc ( global float) -0:21 direct index ( temp float) -0:21 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) -0:21 Constant: -0:21 1 (const int) -0:21 true case -0:22 Sequence -0:22 move second child to first child ( temp float) -0:22 direct index ( temp float) -0:22 'myColor' (layout( location=0) out 4-component vector of float) -0:22 Constant: -0:22 1 (const int) -0:22 Constant: -0:22 0.800000 -0:24 Test condition and select ( temp void) -0:24 Condition -0:24 Compare Equal ( temp bool) -0:24 direct index ( temp float) -0:24 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) -0:24 Constant: -0:24 0 (const int) -0:24 trunc ( global float) -0:24 direct index ( temp float) -0:24 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) -0:24 Constant: -0:24 0 (const int) -0:24 true case -0:25 Sequence -0:25 move second child to first child ( temp float) -0:25 direct index ( temp float) -0:25 'myColor' (layout( location=0) out 4-component vector of float) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 0.800000 -0:28 Sequence -0:28 move second child to first child ( temp 4-component vector of float) -0:28 'diff' ( temp 4-component vector of float) -0:28 subtract ( temp 4-component vector of float) -0:28 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) -0:28 'i' ( smooth in 4-component vector of float) -0:29 Test condition and select ( temp void) -0:29 Condition -0:29 Compare Greater Than ( temp bool) -0:29 Absolute value ( global float) -0:29 direct index ( temp float) -0:29 'diff' ( temp 4-component vector of float) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 0.001000 -0:29 true case -0:29 move second child to first child ( temp float) -0:29 direct index ( temp float) -0:29 'myColor' (layout( location=0) out 4-component vector of float) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 0.500000 -0:30 Test condition and select ( temp void) -0:30 Condition -0:30 Compare Greater Than ( temp bool) -0:30 Absolute value ( global float) -0:30 direct index ( temp float) -0:30 'diff' ( temp 4-component vector of float) -0:30 Constant: -0:30 3 (const int) -0:30 Constant: -0:30 0.001000 -0:30 true case -0:30 move second child to first child ( temp float) -0:30 direct index ( temp float) -0:30 'myColor' (layout( location=0) out 4-component vector of float) -0:30 Constant: -0:30 3 (const int) -0:30 Constant: -0:30 0.500000 -0:? Linker Objects -0:? 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) -0:? 'myGlobalVar' ( global float) -0:? 'i' ( smooth in 4-component vector of float) -0:? 'myColor' (layout( location=0) out 4-component vector of float) -0:? 'eps' ( const float) -0:? 0.001000 - - -Linked fragment stage: - - -Shader version: 150 -Requested GL_ARB_explicit_attrib_location -gl_FragCoord pixel center is integer -gl_FragCoord origin is upper left -0:? Sequence -0:9 Sequence -0:9 move second child to first child ( temp float) -0:9 'myGlobalVar' ( global float) -0:9 direct index ( temp float) -0:9 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) -0:9 Constant: -0:9 0 (const int) -0:16 Function Definition: main( ( global void) -0:16 Function Parameters: -0:17 Sequence -0:17 move second child to first child ( temp 4-component vector of float) -0:17 'myColor' (layout( location=0) out 4-component vector of float) -0:17 Constant: -0:17 0.200000 -0:17 0.200000 -0:17 0.200000 -0:17 0.200000 -0:18 Test condition and select ( temp void) -0:18 Condition -0:18 Compare Greater Than or Equal ( temp bool) -0:18 direct index ( temp float) -0:18 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) -0:18 Constant: -0:18 1 (const int) -0:18 Constant: -0:18 10.000000 -0:18 true case -0:19 Sequence -0:19 move second child to first child ( temp float) -0:19 direct index ( temp float) -0:19 'myColor' (layout( location=0) out 4-component vector of float) -0:19 Constant: -0:19 2 (const int) -0:19 Constant: -0:19 0.800000 -0:21 Test condition and select ( temp void) -0:21 Condition -0:21 Compare Equal ( temp bool) -0:21 direct index ( temp float) -0:21 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) -0:21 Constant: -0:21 1 (const int) -0:21 trunc ( global float) -0:21 direct index ( temp float) -0:21 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) -0:21 Constant: -0:21 1 (const int) -0:21 true case -0:22 Sequence -0:22 move second child to first child ( temp float) -0:22 direct index ( temp float) -0:22 'myColor' (layout( location=0) out 4-component vector of float) -0:22 Constant: -0:22 1 (const int) -0:22 Constant: -0:22 0.800000 -0:24 Test condition and select ( temp void) -0:24 Condition -0:24 Compare Equal ( temp bool) -0:24 direct index ( temp float) -0:24 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) -0:24 Constant: -0:24 0 (const int) -0:24 trunc ( global float) -0:24 direct index ( temp float) -0:24 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) -0:24 Constant: -0:24 0 (const int) -0:24 true case -0:25 Sequence -0:25 move second child to first child ( temp float) -0:25 direct index ( temp float) -0:25 'myColor' (layout( location=0) out 4-component vector of float) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 0.800000 -0:28 Sequence -0:28 move second child to first child ( temp 4-component vector of float) -0:28 'diff' ( temp 4-component vector of float) -0:28 subtract ( temp 4-component vector of float) -0:28 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) -0:28 'i' ( smooth in 4-component vector of float) -0:29 Test condition and select ( temp void) -0:29 Condition -0:29 Compare Greater Than ( temp bool) -0:29 Absolute value ( global float) -0:29 direct index ( temp float) -0:29 'diff' ( temp 4-component vector of float) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 0.001000 -0:29 true case -0:29 move second child to first child ( temp float) -0:29 direct index ( temp float) -0:29 'myColor' (layout( location=0) out 4-component vector of float) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 0.500000 -0:30 Test condition and select ( temp void) -0:30 Condition -0:30 Compare Greater Than ( temp bool) -0:30 Absolute value ( global float) -0:30 direct index ( temp float) -0:30 'diff' ( temp 4-component vector of float) -0:30 Constant: -0:30 3 (const int) -0:30 Constant: -0:30 0.001000 -0:30 true case -0:30 move second child to first child ( temp float) -0:30 direct index ( temp float) -0:30 'myColor' (layout( location=0) out 4-component vector of float) -0:30 Constant: -0:30 3 (const int) -0:30 Constant: -0:30 0.500000 -0:? Linker Objects -0:? 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) -0:? 'myGlobalVar' ( global float) -0:? 'i' ( smooth in 4-component vector of float) -0:? 'myColor' (layout( location=0) out 4-component vector of float) -0:? 'eps' ( const float) -0:? 0.001000 - diff --git a/deps/glslang/Test/baseResults/glsl.-D-U.frag.out b/deps/glslang/Test/baseResults/glsl.-D-U.frag.out deleted file mode 100644 index 6538e849..00000000 --- a/deps/glslang/Test/baseResults/glsl.-D-U.frag.out +++ /dev/null @@ -1,55 +0,0 @@ -glsl.-D-U.frag -Shader version: 450 -0:? Sequence -0:7 Function Definition: main( ( global void) -0:7 Function Parameters: -0:10 Sequence -0:10 move second child to first child ( temp 4-component vector of float) -0:10 'color' (layout( location=0) out 4-component vector of float) -0:10 Constant: -0:10 1.000000 -0:10 1.000000 -0:10 1.000000 -0:10 1.000000 -0:16 Post-Increment ( temp 4-component vector of float) -0:16 'color' (layout( location=0) out 4-component vector of float) -0:24 vector scale second child into first child ( temp 4-component vector of float) -0:24 'color' (layout( location=0) out 4-component vector of float) -0:24 Constant: -0:24 3.000000 -0:28 vector scale second child into first child ( temp 4-component vector of float) -0:28 'color' (layout( location=0) out 4-component vector of float) -0:28 Constant: -0:28 400.000000 -0:? Linker Objects -0:? 'color' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 450 -0:? Sequence -0:7 Function Definition: main( ( global void) -0:7 Function Parameters: -0:10 Sequence -0:10 move second child to first child ( temp 4-component vector of float) -0:10 'color' (layout( location=0) out 4-component vector of float) -0:10 Constant: -0:10 1.000000 -0:10 1.000000 -0:10 1.000000 -0:10 1.000000 -0:16 Post-Increment ( temp 4-component vector of float) -0:16 'color' (layout( location=0) out 4-component vector of float) -0:24 vector scale second child into first child ( temp 4-component vector of float) -0:24 'color' (layout( location=0) out 4-component vector of float) -0:24 Constant: -0:24 3.000000 -0:28 vector scale second child into first child ( temp 4-component vector of float) -0:28 'color' (layout( location=0) out 4-component vector of float) -0:28 Constant: -0:28 400.000000 -0:? Linker Objects -0:? 'color' (layout( location=0) out 4-component vector of float) - diff --git a/deps/glslang/Test/baseResults/glsl.140.layoutOffset.error.vert.out b/deps/glslang/Test/baseResults/glsl.140.layoutOffset.error.vert.out deleted file mode 100644 index ce33d158..00000000 --- a/deps/glslang/Test/baseResults/glsl.140.layoutOffset.error.vert.out +++ /dev/null @@ -1,50 +0,0 @@ -glsl.140.layoutOffset.error.vert -ERROR: 0:5: 'offset' : not supported with this profile: none -ERROR: 0:5: '"offset" on block member' : not supported for this version or the enabled extensions -ERROR: 2 compilation errors. No code generated. - - -Shader version: 140 -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 4-component vector of float) -0:13 'out_vs' ( smooth out 4-component vector of float) -0:13 add ( temp 4-component vector of float) -0:13 'in_vs' ( in 4-component vector of float) -0:13 a: direct index for structure (layout( column_major std140 offset=0) uniform 4-component vector of float) -0:13 'anon@0' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float a}) -0:13 Constant: -0:13 0 (const uint) -0:? Linker Objects -0:? 'anon@0' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float a}) -0:? 'in_vs' ( in 4-component vector of float) -0:? 'out_vs' ( smooth out 4-component vector of float) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - - -Linked vertex stage: - - -Shader version: 140 -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 4-component vector of float) -0:13 'out_vs' ( smooth out 4-component vector of float) -0:13 add ( temp 4-component vector of float) -0:13 'in_vs' ( in 4-component vector of float) -0:13 a: direct index for structure (layout( column_major std140 offset=0) uniform 4-component vector of float) -0:13 'anon@0' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float a}) -0:13 Constant: -0:13 0 (const uint) -0:? Linker Objects -0:? 'anon@0' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float a}) -0:? 'in_vs' ( in 4-component vector of float) -0:? 'out_vs' ( smooth out 4-component vector of float) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - diff --git a/deps/glslang/Test/baseResults/glsl.430.layoutOffset.error.vert.out b/deps/glslang/Test/baseResults/glsl.430.layoutOffset.error.vert.out deleted file mode 100644 index 64160cee..00000000 --- a/deps/glslang/Test/baseResults/glsl.430.layoutOffset.error.vert.out +++ /dev/null @@ -1,49 +0,0 @@ -glsl.430.layoutOffset.error.vert -ERROR: 0:5: '"offset" on block member' : not supported for this version or the enabled extensions -ERROR: 1 compilation errors. No code generated. - - -Shader version: 430 -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 4-component vector of float) -0:13 'out_vs' ( smooth out 4-component vector of float) -0:13 add ( temp 4-component vector of float) -0:13 'in_vs' ( in 4-component vector of float) -0:13 a: direct index for structure (layout( column_major std140 offset=0) uniform 4-component vector of float) -0:13 'anon@0' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float a}) -0:13 Constant: -0:13 0 (const uint) -0:? Linker Objects -0:? 'anon@0' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float a}) -0:? 'in_vs' ( in 4-component vector of float) -0:? 'out_vs' ( smooth out 4-component vector of float) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - - -Linked vertex stage: - - -Shader version: 430 -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 4-component vector of float) -0:13 'out_vs' ( smooth out 4-component vector of float) -0:13 add ( temp 4-component vector of float) -0:13 'in_vs' ( in 4-component vector of float) -0:13 a: direct index for structure (layout( column_major std140 offset=0) uniform 4-component vector of float) -0:13 'anon@0' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float a}) -0:13 Constant: -0:13 0 (const uint) -0:? Linker Objects -0:? 'anon@0' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float a}) -0:? 'in_vs' ( in 4-component vector of float) -0:? 'out_vs' ( smooth out 4-component vector of float) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - diff --git a/deps/glslang/Test/baseResults/glsl.450.subgroup.frag.out b/deps/glslang/Test/baseResults/glsl.450.subgroup.frag.out deleted file mode 100644 index 817abb24..00000000 --- a/deps/glslang/Test/baseResults/glsl.450.subgroup.frag.out +++ /dev/null @@ -1,667 +0,0 @@ -glsl.450.subgroup.frag -ERROR: 0:6: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:7: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:8: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:9: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:10: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:11: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:12: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:13: 'gl_NumSubgroups' : undeclared identifier -ERROR: 0:14: 'gl_SubgroupID' : undeclared identifier -ERROR: 0:15: 'subgroupMemoryBarrierShared' : no matching overloaded function found -ERROR: 0:17: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:18: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:19: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:21: 'gl_SubgroupEqMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:22: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:23: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:24: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:25: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:26: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:27: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:28: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:29: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:30: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:31: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:32: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:33: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:34: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:35: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:37: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle -ERROR: 0:38: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle -ERROR: 0:39: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative -ERROR: 0:40: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative -ERROR: 0:42: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:43: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:44: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:45: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:46: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:47: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:48: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:49: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:50: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:51: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:52: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:53: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:54: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:55: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:56: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:57: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:58: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:59: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:60: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:61: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:62: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:64: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:65: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:66: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:67: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:68: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:69: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:70: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:72: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:73: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:74: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:75: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:77: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:78: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:79: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:80: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:81: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:82: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:83: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:84: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:85: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:86: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:87: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:88: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:89: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:90: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:91: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:92: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:93: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:94: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:124: 'id' : argument must be compile-time constant -ERROR: 0:199: 'id' : argument must be compile-time constant -ERROR: 0:236: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:237: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:238: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:239: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 92 compilation errors. No code generated. - - -Shader version: 450 -Requested GL_KHR_shader_subgroup_arithmetic -Requested GL_KHR_shader_subgroup_ballot -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_clustered -Requested GL_KHR_shader_subgroup_quad -Requested GL_KHR_shader_subgroup_shuffle -Requested GL_KHR_shader_subgroup_shuffle_relative -Requested GL_KHR_shader_subgroup_vote -Requested GL_NV_shader_sm_builtins -Requested GL_NV_shader_subgroup_partitioned -ERROR: node is still EOpNull! -0:3 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float) -0:3 Function Parameters: -0:3 'f4' ( in 4-component vector of float) -0:? Sequence -0:6 'gl_SubgroupSize' ( flat in uint SubgroupSize) -0:7 'gl_SubgroupInvocationID' ( flat in uint SubgroupInvocationID) -0:8 subgroupBarrier ( global void) -0:9 subgroupMemoryBarrier ( global void) -0:10 subgroupMemoryBarrierBuffer ( global void) -0:11 subgroupMemoryBarrierImage ( global void) -0:12 subgroupElect ( global bool) -0:13 'gl_NumSubgroups' ( temp float) -0:14 'gl_SubgroupID' ( temp float) -0:15 Constant: -0:15 0.000000 -0:17 subgroupAll ( global bool) -0:17 Constant: -0:17 true (const bool) -0:18 subgroupAny ( global bool) -0:18 Constant: -0:18 false (const bool) -0:19 subgroupAllEqual ( global bool) -0:19 'f4' ( in 4-component vector of float) -0:21 'gl_SubgroupEqMask' ( flat in 4-component vector of uint SubgroupEqMask) -0:22 'gl_SubgroupGeMask' ( flat in 4-component vector of uint SubgroupGeMask) -0:23 'gl_SubgroupGtMask' ( flat in 4-component vector of uint SubgroupGtMask) -0:24 'gl_SubgroupLeMask' ( flat in 4-component vector of uint SubgroupLeMask) -0:25 'gl_SubgroupLtMask' ( flat in 4-component vector of uint SubgroupLtMask) -0:26 subgroupBroadcast ( global 4-component vector of float) -0:26 'f4' ( in 4-component vector of float) -0:26 Constant: -0:26 0 (const uint) -0:27 subgroupBroadcastFirst ( global 4-component vector of float) -0:27 'f4' ( in 4-component vector of float) -0:28 Sequence -0:28 move second child to first child ( temp 4-component vector of uint) -0:28 'ballot' ( temp 4-component vector of uint) -0:28 subgroupBallot ( global 4-component vector of uint) -0:28 Constant: -0:28 false (const bool) -0:29 subgroupInverseBallot ( global bool) -0:29 Constant: -0:29 1 (const uint) -0:29 1 (const uint) -0:29 1 (const uint) -0:29 1 (const uint) -0:30 subgroupBallotBitExtract ( global bool) -0:30 'ballot' ( temp 4-component vector of uint) -0:30 Constant: -0:30 0 (const uint) -0:31 subgroupBallotBitCount ( global uint) -0:31 'ballot' ( temp 4-component vector of uint) -0:32 subgroupBallotInclusiveBitCount ( global uint) -0:32 'ballot' ( temp 4-component vector of uint) -0:33 subgroupBallotExclusiveBitCount ( global uint) -0:33 'ballot' ( temp 4-component vector of uint) -0:34 subgroupBallotFindLSB ( global uint) -0:34 'ballot' ( temp 4-component vector of uint) -0:35 subgroupBallotFindMSB ( global uint) -0:35 'ballot' ( temp 4-component vector of uint) -0:37 subgroupShuffle ( global 4-component vector of float) -0:37 'f4' ( in 4-component vector of float) -0:37 Constant: -0:37 0 (const uint) -0:38 subgroupShuffleXor ( global 4-component vector of float) -0:38 'f4' ( in 4-component vector of float) -0:38 Constant: -0:38 1 (const uint) -0:39 subgroupShuffleUp ( global 4-component vector of float) -0:39 'f4' ( in 4-component vector of float) -0:39 Constant: -0:39 1 (const uint) -0:40 subgroupShuffleDown ( global 4-component vector of float) -0:40 'f4' ( in 4-component vector of float) -0:40 Constant: -0:40 1 (const uint) -0:42 move second child to first child ( temp 4-component vector of float) -0:42 'result' ( temp 4-component vector of float) -0:42 subgroupAdd ( global 4-component vector of float) -0:42 'f4' ( in 4-component vector of float) -0:43 subgroupMul ( global 4-component vector of float) -0:43 'f4' ( in 4-component vector of float) -0:44 subgroupMin ( global 4-component vector of float) -0:44 'f4' ( in 4-component vector of float) -0:45 subgroupMax ( global 4-component vector of float) -0:45 'f4' ( in 4-component vector of float) -0:46 subgroupAnd ( global 4-component vector of uint) -0:46 'ballot' ( temp 4-component vector of uint) -0:47 subgroupOr ( global 4-component vector of uint) -0:47 'ballot' ( temp 4-component vector of uint) -0:48 subgroupXor ( global 4-component vector of uint) -0:48 'ballot' ( temp 4-component vector of uint) -0:49 subgroupInclusiveAdd ( global 4-component vector of float) -0:49 'f4' ( in 4-component vector of float) -0:50 subgroupInclusiveMul ( global 4-component vector of float) -0:50 'f4' ( in 4-component vector of float) -0:51 subgroupInclusiveMin ( global 4-component vector of float) -0:51 'f4' ( in 4-component vector of float) -0:52 subgroupInclusiveMax ( global 4-component vector of float) -0:52 'f4' ( in 4-component vector of float) -0:53 subgroupInclusiveAnd ( global 4-component vector of uint) -0:53 'ballot' ( temp 4-component vector of uint) -0:54 subgroupInclusiveOr ( global 4-component vector of uint) -0:54 'ballot' ( temp 4-component vector of uint) -0:55 subgroupInclusiveXor ( global 4-component vector of uint) -0:55 'ballot' ( temp 4-component vector of uint) -0:56 subgroupExclusiveAdd ( global 4-component vector of float) -0:56 'f4' ( in 4-component vector of float) -0:57 subgroupExclusiveMul ( global 4-component vector of float) -0:57 'f4' ( in 4-component vector of float) -0:58 subgroupExclusiveMin ( global 4-component vector of float) -0:58 'f4' ( in 4-component vector of float) -0:59 subgroupExclusiveMax ( global 4-component vector of float) -0:59 'f4' ( in 4-component vector of float) -0:60 subgroupExclusiveAnd ( global 4-component vector of uint) -0:60 'ballot' ( temp 4-component vector of uint) -0:61 subgroupExclusiveOr ( global 4-component vector of uint) -0:61 'ballot' ( temp 4-component vector of uint) -0:62 subgroupExclusiveXor ( global 4-component vector of uint) -0:62 'ballot' ( temp 4-component vector of uint) -0:64 subgroupClusteredAdd ( global 4-component vector of float) -0:64 'f4' ( in 4-component vector of float) -0:64 Constant: -0:64 2 (const uint) -0:65 subgroupClusteredMul ( global 4-component vector of float) -0:65 'f4' ( in 4-component vector of float) -0:65 Constant: -0:65 2 (const uint) -0:66 subgroupClusteredMin ( global 4-component vector of float) -0:66 'f4' ( in 4-component vector of float) -0:66 Constant: -0:66 2 (const uint) -0:67 subgroupClusteredMax ( global 4-component vector of float) -0:67 'f4' ( in 4-component vector of float) -0:67 Constant: -0:67 2 (const uint) -0:68 subgroupClusteredAnd ( global 4-component vector of uint) -0:68 'ballot' ( temp 4-component vector of uint) -0:68 Constant: -0:68 2 (const uint) -0:69 subgroupClusteredOr ( global 4-component vector of uint) -0:69 'ballot' ( temp 4-component vector of uint) -0:69 Constant: -0:69 2 (const uint) -0:70 subgroupClusteredXor ( global 4-component vector of uint) -0:70 'ballot' ( temp 4-component vector of uint) -0:70 Constant: -0:70 2 (const uint) -0:72 subgroupQuadBroadcast ( global 4-component vector of float) -0:72 'f4' ( in 4-component vector of float) -0:72 Constant: -0:72 0 (const uint) -0:73 subgroupQuadSwapHorizontal ( global 4-component vector of float) -0:73 'f4' ( in 4-component vector of float) -0:74 subgroupQuadSwapVertical ( global 4-component vector of float) -0:74 'f4' ( in 4-component vector of float) -0:75 subgroupQuadSwapDiagonal ( global 4-component vector of float) -0:75 'f4' ( in 4-component vector of float) -0:77 Sequence -0:77 move second child to first child ( temp 4-component vector of uint) -0:77 'parti' ( temp 4-component vector of uint) -0:77 subgroupPartitionNV ( global 4-component vector of uint) -0:77 'f4' ( in 4-component vector of float) -0:78 subgroupPartitionedAddNV ( global 4-component vector of float) -0:78 'f4' ( in 4-component vector of float) -0:78 'parti' ( temp 4-component vector of uint) -0:79 subgroupPartitionedMulNV ( global 4-component vector of float) -0:79 'f4' ( in 4-component vector of float) -0:79 'parti' ( temp 4-component vector of uint) -0:80 subgroupPartitionedMinNV ( global 4-component vector of float) -0:80 'f4' ( in 4-component vector of float) -0:80 'parti' ( temp 4-component vector of uint) -0:81 subgroupPartitionedMaxNV ( global 4-component vector of float) -0:81 'f4' ( in 4-component vector of float) -0:81 'parti' ( temp 4-component vector of uint) -0:82 subgroupPartitionedAndNV ( global 4-component vector of uint) -0:82 'ballot' ( temp 4-component vector of uint) -0:82 'parti' ( temp 4-component vector of uint) -0:83 subgroupPartitionedOrNV ( global 4-component vector of uint) -0:83 'ballot' ( temp 4-component vector of uint) -0:83 'parti' ( temp 4-component vector of uint) -0:84 subgroupPartitionedXorNV ( global 4-component vector of uint) -0:84 'ballot' ( temp 4-component vector of uint) -0:84 'parti' ( temp 4-component vector of uint) -0:85 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float) -0:85 'f4' ( in 4-component vector of float) -0:85 'parti' ( temp 4-component vector of uint) -0:86 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float) -0:86 'f4' ( in 4-component vector of float) -0:86 'parti' ( temp 4-component vector of uint) -0:87 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float) -0:87 'f4' ( in 4-component vector of float) -0:87 'parti' ( temp 4-component vector of uint) -0:88 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float) -0:88 'f4' ( in 4-component vector of float) -0:88 'parti' ( temp 4-component vector of uint) -0:89 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint) -0:89 'ballot' ( temp 4-component vector of uint) -0:89 'parti' ( temp 4-component vector of uint) -0:90 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint) -0:90 'ballot' ( temp 4-component vector of uint) -0:90 'parti' ( temp 4-component vector of uint) -0:91 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint) -0:91 'ballot' ( temp 4-component vector of uint) -0:91 'parti' ( temp 4-component vector of uint) -0:92 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float) -0:92 'f4' ( in 4-component vector of float) -0:92 'parti' ( temp 4-component vector of uint) -0:93 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float) -0:93 'f4' ( in 4-component vector of float) -0:93 'parti' ( temp 4-component vector of uint) -0:94 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float) -0:94 'f4' ( in 4-component vector of float) -0:94 'parti' ( temp 4-component vector of uint) -0:95 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float) -0:95 'f4' ( in 4-component vector of float) -0:95 'parti' ( temp 4-component vector of uint) -0:96 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint) -0:96 'ballot' ( temp 4-component vector of uint) -0:96 'parti' ( temp 4-component vector of uint) -0:97 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint) -0:97 'ballot' ( temp 4-component vector of uint) -0:97 'parti' ( temp 4-component vector of uint) -0:98 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint) -0:98 'ballot' ( temp 4-component vector of uint) -0:98 'parti' ( temp 4-component vector of uint) -0:100 Branch: Return with expression -0:100 'result' ( temp 4-component vector of float) -0:105 Function Definition: main( ( global void) -0:105 Function Parameters: -0:107 Sequence -0:107 move second child to first child ( temp 4-component vector of uint) -0:107 'data' (layout( location=0) out 4-component vector of uint) -0:107 Construct uvec4 ( temp 4-component vector of uint) -0:107 'gl_SubgroupSize' ( flat in uint SubgroupSize) -0:107 'gl_SubgroupInvocationID' ( flat in uint SubgroupInvocationID) -0:107 Constant: -0:107 0 (const uint) -0:107 Constant: -0:107 0 (const uint) -0:108 subgroupBarrier ( global void) -0:109 subgroupMemoryBarrier ( global void) -0:110 subgroupMemoryBarrierBuffer ( global void) -0:111 subgroupMemoryBarrierImage ( global void) -0:112 subgroupElect ( global bool) -0:116 Function Definition: ballot_works(vf4; ( global void) -0:116 Function Parameters: -0:116 'f4' ( in 4-component vector of float) -0:? Sequence -0:118 'gl_SubgroupEqMask' ( flat in 4-component vector of uint SubgroupEqMask) -0:119 'gl_SubgroupGeMask' ( flat in 4-component vector of uint SubgroupGeMask) -0:120 'gl_SubgroupGtMask' ( flat in 4-component vector of uint SubgroupGtMask) -0:121 'gl_SubgroupLeMask' ( flat in 4-component vector of uint SubgroupLeMask) -0:122 'gl_SubgroupLtMask' ( flat in 4-component vector of uint SubgroupLtMask) -0:123 subgroupBroadcast ( global 4-component vector of float) -0:123 'f4' ( in 4-component vector of float) -0:123 Constant: -0:123 0 (const uint) -0:124 subgroupBroadcast ( global 4-component vector of float) -0:124 'f4' ( in 4-component vector of float) -0:124 Convert int to uint ( temp uint) -0:124 'i' ( temp int) -0:125 subgroupBroadcastFirst ( global 4-component vector of float) -0:125 'f4' ( in 4-component vector of float) -0:126 Sequence -0:126 move second child to first child ( temp 4-component vector of uint) -0:126 'ballot' ( temp 4-component vector of uint) -0:126 subgroupBallot ( global 4-component vector of uint) -0:126 Constant: -0:126 false (const bool) -0:127 subgroupInverseBallot ( global bool) -0:127 Constant: -0:127 1 (const uint) -0:127 1 (const uint) -0:127 1 (const uint) -0:127 1 (const uint) -0:128 subgroupBallotBitExtract ( global bool) -0:128 'ballot' ( temp 4-component vector of uint) -0:128 Constant: -0:128 0 (const uint) -0:129 subgroupBallotBitCount ( global uint) -0:129 'ballot' ( temp 4-component vector of uint) -0:130 subgroupBallotInclusiveBitCount ( global uint) -0:130 'ballot' ( temp 4-component vector of uint) -0:131 subgroupBallotExclusiveBitCount ( global uint) -0:131 'ballot' ( temp 4-component vector of uint) -0:132 subgroupBallotFindLSB ( global uint) -0:132 'ballot' ( temp 4-component vector of uint) -0:133 subgroupBallotFindMSB ( global uint) -0:133 'ballot' ( temp 4-component vector of uint) -0:137 Function Definition: vote_works(vf4; ( global void) -0:137 Function Parameters: -0:137 'f4' ( in 4-component vector of float) -0:139 Sequence -0:139 subgroupAll ( global bool) -0:139 Constant: -0:139 true (const bool) -0:140 subgroupAny ( global bool) -0:140 Constant: -0:140 false (const bool) -0:141 subgroupAllEqual ( global bool) -0:141 'f4' ( in 4-component vector of float) -0:146 Function Definition: shuffle_works(vf4; ( global void) -0:146 Function Parameters: -0:146 'f4' ( in 4-component vector of float) -0:148 Sequence -0:148 subgroupShuffle ( global 4-component vector of float) -0:148 'f4' ( in 4-component vector of float) -0:148 Constant: -0:148 0 (const uint) -0:149 subgroupShuffleXor ( global 4-component vector of float) -0:149 'f4' ( in 4-component vector of float) -0:149 Constant: -0:149 1 (const uint) -0:150 subgroupShuffleUp ( global 4-component vector of float) -0:150 'f4' ( in 4-component vector of float) -0:150 Constant: -0:150 1 (const uint) -0:151 subgroupShuffleDown ( global 4-component vector of float) -0:151 'f4' ( in 4-component vector of float) -0:151 Constant: -0:151 1 (const uint) -0:155 Function Definition: arith_works(vf4; ( global void) -0:155 Function Parameters: -0:155 'f4' ( in 4-component vector of float) -0:? Sequence -0:158 subgroupAdd ( global 4-component vector of float) -0:158 'f4' ( in 4-component vector of float) -0:159 subgroupMul ( global 4-component vector of float) -0:159 'f4' ( in 4-component vector of float) -0:160 subgroupMin ( global 4-component vector of float) -0:160 'f4' ( in 4-component vector of float) -0:161 subgroupMax ( global 4-component vector of float) -0:161 'f4' ( in 4-component vector of float) -0:162 subgroupAnd ( global 4-component vector of uint) -0:162 'ballot' ( temp 4-component vector of uint) -0:163 subgroupOr ( global 4-component vector of uint) -0:163 'ballot' ( temp 4-component vector of uint) -0:164 subgroupXor ( global 4-component vector of uint) -0:164 'ballot' ( temp 4-component vector of uint) -0:165 subgroupInclusiveAdd ( global 4-component vector of float) -0:165 'f4' ( in 4-component vector of float) -0:166 subgroupInclusiveMul ( global 4-component vector of float) -0:166 'f4' ( in 4-component vector of float) -0:167 subgroupInclusiveMin ( global 4-component vector of float) -0:167 'f4' ( in 4-component vector of float) -0:168 subgroupInclusiveMax ( global 4-component vector of float) -0:168 'f4' ( in 4-component vector of float) -0:169 subgroupInclusiveAnd ( global 4-component vector of uint) -0:169 'ballot' ( temp 4-component vector of uint) -0:170 subgroupInclusiveOr ( global 4-component vector of uint) -0:170 'ballot' ( temp 4-component vector of uint) -0:171 subgroupInclusiveXor ( global 4-component vector of uint) -0:171 'ballot' ( temp 4-component vector of uint) -0:172 subgroupExclusiveAdd ( global 4-component vector of float) -0:172 'f4' ( in 4-component vector of float) -0:173 subgroupExclusiveMul ( global 4-component vector of float) -0:173 'f4' ( in 4-component vector of float) -0:174 subgroupExclusiveMin ( global 4-component vector of float) -0:174 'f4' ( in 4-component vector of float) -0:175 subgroupExclusiveMax ( global 4-component vector of float) -0:175 'f4' ( in 4-component vector of float) -0:176 subgroupExclusiveAnd ( global 4-component vector of uint) -0:176 'ballot' ( temp 4-component vector of uint) -0:177 subgroupExclusiveOr ( global 4-component vector of uint) -0:177 'ballot' ( temp 4-component vector of uint) -0:178 subgroupExclusiveXor ( global 4-component vector of uint) -0:178 'ballot' ( temp 4-component vector of uint) -0:182 Function Definition: clustered_works(vf4; ( global void) -0:182 Function Parameters: -0:182 'f4' ( in 4-component vector of float) -0:184 Sequence -0:184 Sequence -0:184 move second child to first child ( temp 4-component vector of uint) -0:184 'ballot' ( temp 4-component vector of uint) -0:184 Constant: -0:184 85 (const uint) -0:184 0 (const uint) -0:184 0 (const uint) -0:184 0 (const uint) -0:185 subgroupClusteredAdd ( global 4-component vector of float) -0:185 'f4' ( in 4-component vector of float) -0:185 Constant: -0:185 2 (const uint) -0:186 subgroupClusteredMul ( global 4-component vector of float) -0:186 'f4' ( in 4-component vector of float) -0:186 Constant: -0:186 2 (const uint) -0:187 subgroupClusteredMin ( global 4-component vector of float) -0:187 'f4' ( in 4-component vector of float) -0:187 Constant: -0:187 2 (const uint) -0:188 subgroupClusteredMax ( global 4-component vector of float) -0:188 'f4' ( in 4-component vector of float) -0:188 Constant: -0:188 2 (const uint) -0:189 subgroupClusteredAnd ( global 4-component vector of uint) -0:189 'ballot' ( temp 4-component vector of uint) -0:189 Constant: -0:189 2 (const uint) -0:190 subgroupClusteredOr ( global 4-component vector of uint) -0:190 'ballot' ( temp 4-component vector of uint) -0:190 Constant: -0:190 2 (const uint) -0:191 subgroupClusteredXor ( global 4-component vector of uint) -0:191 'ballot' ( temp 4-component vector of uint) -0:191 Constant: -0:191 2 (const uint) -0:195 Function Definition: quad_works(vf4; ( global void) -0:195 Function Parameters: -0:195 'f4' ( in 4-component vector of float) -0:? Sequence -0:198 subgroupQuadBroadcast ( global 4-component vector of float) -0:198 'f4' ( in 4-component vector of float) -0:198 Constant: -0:198 0 (const uint) -0:199 subgroupQuadBroadcast ( global 4-component vector of float) -0:199 'f4' ( in 4-component vector of float) -0:199 Convert int to uint ( temp uint) -0:199 'i' ( temp int) -0:200 subgroupQuadSwapHorizontal ( global 4-component vector of float) -0:200 'f4' ( in 4-component vector of float) -0:201 subgroupQuadSwapVertical ( global 4-component vector of float) -0:201 'f4' ( in 4-component vector of float) -0:202 subgroupQuadSwapDiagonal ( global 4-component vector of float) -0:202 'f4' ( in 4-component vector of float) -0:206 Function Definition: partitioned_works(vf4; ( global void) -0:206 Function Parameters: -0:206 'f4' ( in 4-component vector of float) -0:208 Sequence -0:208 Sequence -0:208 move second child to first child ( temp 4-component vector of uint) -0:208 'parti' ( temp 4-component vector of uint) -0:208 subgroupPartitionNV ( global 4-component vector of uint) -0:208 'f4' ( in 4-component vector of float) -0:209 Sequence -0:209 move second child to first child ( temp 4-component vector of uint) -0:209 'ballot' ( temp 4-component vector of uint) -0:209 Constant: -0:209 85 (const uint) -0:209 0 (const uint) -0:209 0 (const uint) -0:209 0 (const uint) -0:210 subgroupPartitionedAddNV ( global 4-component vector of float) -0:210 'f4' ( in 4-component vector of float) -0:210 'parti' ( temp 4-component vector of uint) -0:211 subgroupPartitionedMulNV ( global 4-component vector of float) -0:211 'f4' ( in 4-component vector of float) -0:211 'parti' ( temp 4-component vector of uint) -0:212 subgroupPartitionedMinNV ( global 4-component vector of float) -0:212 'f4' ( in 4-component vector of float) -0:212 'parti' ( temp 4-component vector of uint) -0:213 subgroupPartitionedMaxNV ( global 4-component vector of float) -0:213 'f4' ( in 4-component vector of float) -0:213 'parti' ( temp 4-component vector of uint) -0:214 subgroupPartitionedAndNV ( global 4-component vector of uint) -0:214 'ballot' ( temp 4-component vector of uint) -0:214 'parti' ( temp 4-component vector of uint) -0:215 subgroupPartitionedOrNV ( global 4-component vector of uint) -0:215 'ballot' ( temp 4-component vector of uint) -0:215 'parti' ( temp 4-component vector of uint) -0:216 subgroupPartitionedXorNV ( global 4-component vector of uint) -0:216 'ballot' ( temp 4-component vector of uint) -0:216 'parti' ( temp 4-component vector of uint) -0:217 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float) -0:217 'f4' ( in 4-component vector of float) -0:217 'parti' ( temp 4-component vector of uint) -0:218 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float) -0:218 'f4' ( in 4-component vector of float) -0:218 'parti' ( temp 4-component vector of uint) -0:219 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float) -0:219 'f4' ( in 4-component vector of float) -0:219 'parti' ( temp 4-component vector of uint) -0:220 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float) -0:220 'f4' ( in 4-component vector of float) -0:220 'parti' ( temp 4-component vector of uint) -0:221 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint) -0:221 'ballot' ( temp 4-component vector of uint) -0:221 'parti' ( temp 4-component vector of uint) -0:222 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint) -0:222 'ballot' ( temp 4-component vector of uint) -0:222 'parti' ( temp 4-component vector of uint) -0:223 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint) -0:223 'ballot' ( temp 4-component vector of uint) -0:223 'parti' ( temp 4-component vector of uint) -0:224 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float) -0:224 'f4' ( in 4-component vector of float) -0:224 'parti' ( temp 4-component vector of uint) -0:225 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float) -0:225 'f4' ( in 4-component vector of float) -0:225 'parti' ( temp 4-component vector of uint) -0:226 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float) -0:226 'f4' ( in 4-component vector of float) -0:226 'parti' ( temp 4-component vector of uint) -0:227 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float) -0:227 'f4' ( in 4-component vector of float) -0:227 'parti' ( temp 4-component vector of uint) -0:228 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint) -0:228 'ballot' ( temp 4-component vector of uint) -0:228 'parti' ( temp 4-component vector of uint) -0:229 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint) -0:229 'ballot' ( temp 4-component vector of uint) -0:229 'parti' ( temp 4-component vector of uint) -0:230 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint) -0:230 'ballot' ( temp 4-component vector of uint) -0:230 'parti' ( temp 4-component vector of uint) -0:234 Function Definition: sm_builtins_err( ( global void) -0:234 Function Parameters: -0:236 Sequence -0:236 'gl_WarpsPerSMNV' ( flat in uint WarpsPerSMNV) -0:237 'gl_SMCountNV' ( flat in uint SMCountNV) -0:238 'gl_WarpIDNV' ( flat in uint WarpIDNV) -0:239 'gl_SMIDNV' ( flat in uint SMIDNV) -0:246 Function Definition: sm_builtins( ( global void) -0:246 Function Parameters: -0:248 Sequence -0:248 'gl_WarpsPerSMNV' ( flat in uint WarpsPerSMNV) -0:249 'gl_SMCountNV' ( flat in uint SMCountNV) -0:250 'gl_WarpIDNV' ( flat in uint WarpIDNV) -0:251 'gl_SMIDNV' ( flat in uint SMIDNV) -0:? Linker Objects -0:? 'data' (layout( location=0) out 4-component vector of uint) - - -Linked fragment stage: - - -Shader version: 450 -Requested GL_KHR_shader_subgroup_arithmetic -Requested GL_KHR_shader_subgroup_ballot -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_clustered -Requested GL_KHR_shader_subgroup_quad -Requested GL_KHR_shader_subgroup_shuffle -Requested GL_KHR_shader_subgroup_shuffle_relative -Requested GL_KHR_shader_subgroup_vote -Requested GL_NV_shader_sm_builtins -Requested GL_NV_shader_subgroup_partitioned -ERROR: node is still EOpNull! -0:105 Function Definition: main( ( global void) -0:105 Function Parameters: -0:107 Sequence -0:107 move second child to first child ( temp 4-component vector of uint) -0:107 'data' (layout( location=0) out 4-component vector of uint) -0:107 Construct uvec4 ( temp 4-component vector of uint) -0:107 'gl_SubgroupSize' ( flat in uint SubgroupSize) -0:107 'gl_SubgroupInvocationID' ( flat in uint SubgroupInvocationID) -0:107 Constant: -0:107 0 (const uint) -0:107 Constant: -0:107 0 (const uint) -0:108 subgroupBarrier ( global void) -0:109 subgroupMemoryBarrier ( global void) -0:110 subgroupMemoryBarrierBuffer ( global void) -0:111 subgroupMemoryBarrierImage ( global void) -0:112 subgroupElect ( global bool) -0:? Linker Objects -0:? 'data' (layout( location=0) out 4-component vector of uint) - diff --git a/deps/glslang/Test/baseResults/glsl.450.subgroup.geom.out b/deps/glslang/Test/baseResults/glsl.450.subgroup.geom.out deleted file mode 100644 index baf82dc4..00000000 --- a/deps/glslang/Test/baseResults/glsl.450.subgroup.geom.out +++ /dev/null @@ -1,675 +0,0 @@ -glsl.450.subgroup.geom -ERROR: 0:6: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:7: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:8: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:9: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:10: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:11: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:12: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:13: 'gl_NumSubgroups' : undeclared identifier -ERROR: 0:14: 'gl_SubgroupID' : undeclared identifier -ERROR: 0:15: 'subgroupMemoryBarrierShared' : no matching overloaded function found -ERROR: 0:17: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:18: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:19: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:21: 'gl_SubgroupEqMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:22: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:23: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:24: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:25: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:26: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:27: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:28: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:29: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:30: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:31: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:32: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:33: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:34: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:35: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:37: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle -ERROR: 0:38: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle -ERROR: 0:39: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative -ERROR: 0:40: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative -ERROR: 0:42: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:43: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:44: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:45: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:46: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:47: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:48: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:49: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:50: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:51: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:52: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:53: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:54: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:55: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:56: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:57: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:58: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:59: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:60: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:61: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:62: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:64: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:65: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:66: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:67: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:68: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:69: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:70: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:72: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:73: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:74: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:75: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:77: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:78: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:79: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:80: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:81: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:82: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:83: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:84: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:85: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:86: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:87: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:88: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:89: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:90: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:91: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:92: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:93: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:94: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:238: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:239: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:240: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:241: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 90 compilation errors. No code generated. - - -Shader version: 450 -Requested GL_KHR_shader_subgroup_arithmetic -Requested GL_KHR_shader_subgroup_ballot -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_clustered -Requested GL_KHR_shader_subgroup_quad -Requested GL_KHR_shader_subgroup_shuffle -Requested GL_KHR_shader_subgroup_shuffle_relative -Requested GL_KHR_shader_subgroup_vote -Requested GL_NV_shader_sm_builtins -Requested GL_NV_shader_subgroup_partitioned -invocations = -1 -max_vertices = 1 -input primitive = points -output primitive = points -ERROR: node is still EOpNull! -0:3 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float) -0:3 Function Parameters: -0:3 'f4' ( in 4-component vector of float) -0:? Sequence -0:6 'gl_SubgroupSize' ( in uint SubgroupSize) -0:7 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:8 subgroupBarrier ( global void) -0:9 subgroupMemoryBarrier ( global void) -0:10 subgroupMemoryBarrierBuffer ( global void) -0:11 subgroupMemoryBarrierImage ( global void) -0:12 subgroupElect ( global bool) -0:13 'gl_NumSubgroups' ( temp float) -0:14 'gl_SubgroupID' ( temp float) -0:15 Constant: -0:15 0.000000 -0:17 subgroupAll ( global bool) -0:17 Constant: -0:17 true (const bool) -0:18 subgroupAny ( global bool) -0:18 Constant: -0:18 false (const bool) -0:19 subgroupAllEqual ( global bool) -0:19 'f4' ( in 4-component vector of float) -0:21 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask) -0:22 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask) -0:23 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask) -0:24 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask) -0:25 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask) -0:26 subgroupBroadcast ( global 4-component vector of float) -0:26 'f4' ( in 4-component vector of float) -0:26 Constant: -0:26 0 (const uint) -0:27 subgroupBroadcastFirst ( global 4-component vector of float) -0:27 'f4' ( in 4-component vector of float) -0:28 Sequence -0:28 move second child to first child ( temp 4-component vector of uint) -0:28 'ballot' ( temp 4-component vector of uint) -0:28 subgroupBallot ( global 4-component vector of uint) -0:28 Constant: -0:28 false (const bool) -0:29 subgroupInverseBallot ( global bool) -0:29 Constant: -0:29 1 (const uint) -0:29 1 (const uint) -0:29 1 (const uint) -0:29 1 (const uint) -0:30 subgroupBallotBitExtract ( global bool) -0:30 'ballot' ( temp 4-component vector of uint) -0:30 Constant: -0:30 0 (const uint) -0:31 subgroupBallotBitCount ( global uint) -0:31 'ballot' ( temp 4-component vector of uint) -0:32 subgroupBallotInclusiveBitCount ( global uint) -0:32 'ballot' ( temp 4-component vector of uint) -0:33 subgroupBallotExclusiveBitCount ( global uint) -0:33 'ballot' ( temp 4-component vector of uint) -0:34 subgroupBallotFindLSB ( global uint) -0:34 'ballot' ( temp 4-component vector of uint) -0:35 subgroupBallotFindMSB ( global uint) -0:35 'ballot' ( temp 4-component vector of uint) -0:37 subgroupShuffle ( global 4-component vector of float) -0:37 'f4' ( in 4-component vector of float) -0:37 Constant: -0:37 0 (const uint) -0:38 subgroupShuffleXor ( global 4-component vector of float) -0:38 'f4' ( in 4-component vector of float) -0:38 Constant: -0:38 1 (const uint) -0:39 subgroupShuffleUp ( global 4-component vector of float) -0:39 'f4' ( in 4-component vector of float) -0:39 Constant: -0:39 1 (const uint) -0:40 subgroupShuffleDown ( global 4-component vector of float) -0:40 'f4' ( in 4-component vector of float) -0:40 Constant: -0:40 1 (const uint) -0:42 move second child to first child ( temp 4-component vector of float) -0:42 'result' ( temp 4-component vector of float) -0:42 subgroupAdd ( global 4-component vector of float) -0:42 'f4' ( in 4-component vector of float) -0:43 subgroupMul ( global 4-component vector of float) -0:43 'f4' ( in 4-component vector of float) -0:44 subgroupMin ( global 4-component vector of float) -0:44 'f4' ( in 4-component vector of float) -0:45 subgroupMax ( global 4-component vector of float) -0:45 'f4' ( in 4-component vector of float) -0:46 subgroupAnd ( global 4-component vector of uint) -0:46 'ballot' ( temp 4-component vector of uint) -0:47 subgroupOr ( global 4-component vector of uint) -0:47 'ballot' ( temp 4-component vector of uint) -0:48 subgroupXor ( global 4-component vector of uint) -0:48 'ballot' ( temp 4-component vector of uint) -0:49 subgroupInclusiveAdd ( global 4-component vector of float) -0:49 'f4' ( in 4-component vector of float) -0:50 subgroupInclusiveMul ( global 4-component vector of float) -0:50 'f4' ( in 4-component vector of float) -0:51 subgroupInclusiveMin ( global 4-component vector of float) -0:51 'f4' ( in 4-component vector of float) -0:52 subgroupInclusiveMax ( global 4-component vector of float) -0:52 'f4' ( in 4-component vector of float) -0:53 subgroupInclusiveAnd ( global 4-component vector of uint) -0:53 'ballot' ( temp 4-component vector of uint) -0:54 subgroupInclusiveOr ( global 4-component vector of uint) -0:54 'ballot' ( temp 4-component vector of uint) -0:55 subgroupInclusiveXor ( global 4-component vector of uint) -0:55 'ballot' ( temp 4-component vector of uint) -0:56 subgroupExclusiveAdd ( global 4-component vector of float) -0:56 'f4' ( in 4-component vector of float) -0:57 subgroupExclusiveMul ( global 4-component vector of float) -0:57 'f4' ( in 4-component vector of float) -0:58 subgroupExclusiveMin ( global 4-component vector of float) -0:58 'f4' ( in 4-component vector of float) -0:59 subgroupExclusiveMax ( global 4-component vector of float) -0:59 'f4' ( in 4-component vector of float) -0:60 subgroupExclusiveAnd ( global 4-component vector of uint) -0:60 'ballot' ( temp 4-component vector of uint) -0:61 subgroupExclusiveOr ( global 4-component vector of uint) -0:61 'ballot' ( temp 4-component vector of uint) -0:62 subgroupExclusiveXor ( global 4-component vector of uint) -0:62 'ballot' ( temp 4-component vector of uint) -0:64 subgroupClusteredAdd ( global 4-component vector of float) -0:64 'f4' ( in 4-component vector of float) -0:64 Constant: -0:64 2 (const uint) -0:65 subgroupClusteredMul ( global 4-component vector of float) -0:65 'f4' ( in 4-component vector of float) -0:65 Constant: -0:65 2 (const uint) -0:66 subgroupClusteredMin ( global 4-component vector of float) -0:66 'f4' ( in 4-component vector of float) -0:66 Constant: -0:66 2 (const uint) -0:67 subgroupClusteredMax ( global 4-component vector of float) -0:67 'f4' ( in 4-component vector of float) -0:67 Constant: -0:67 2 (const uint) -0:68 subgroupClusteredAnd ( global 4-component vector of uint) -0:68 'ballot' ( temp 4-component vector of uint) -0:68 Constant: -0:68 2 (const uint) -0:69 subgroupClusteredOr ( global 4-component vector of uint) -0:69 'ballot' ( temp 4-component vector of uint) -0:69 Constant: -0:69 2 (const uint) -0:70 subgroupClusteredXor ( global 4-component vector of uint) -0:70 'ballot' ( temp 4-component vector of uint) -0:70 Constant: -0:70 2 (const uint) -0:72 subgroupQuadBroadcast ( global 4-component vector of float) -0:72 'f4' ( in 4-component vector of float) -0:72 Constant: -0:72 0 (const uint) -0:73 subgroupQuadSwapHorizontal ( global 4-component vector of float) -0:73 'f4' ( in 4-component vector of float) -0:74 subgroupQuadSwapVertical ( global 4-component vector of float) -0:74 'f4' ( in 4-component vector of float) -0:75 subgroupQuadSwapDiagonal ( global 4-component vector of float) -0:75 'f4' ( in 4-component vector of float) -0:77 Sequence -0:77 move second child to first child ( temp 4-component vector of uint) -0:77 'parti' ( temp 4-component vector of uint) -0:77 subgroupPartitionNV ( global 4-component vector of uint) -0:77 'f4' ( in 4-component vector of float) -0:78 subgroupPartitionedAddNV ( global 4-component vector of float) -0:78 'f4' ( in 4-component vector of float) -0:78 'parti' ( temp 4-component vector of uint) -0:79 subgroupPartitionedMulNV ( global 4-component vector of float) -0:79 'f4' ( in 4-component vector of float) -0:79 'parti' ( temp 4-component vector of uint) -0:80 subgroupPartitionedMinNV ( global 4-component vector of float) -0:80 'f4' ( in 4-component vector of float) -0:80 'parti' ( temp 4-component vector of uint) -0:81 subgroupPartitionedMaxNV ( global 4-component vector of float) -0:81 'f4' ( in 4-component vector of float) -0:81 'parti' ( temp 4-component vector of uint) -0:82 subgroupPartitionedAndNV ( global 4-component vector of uint) -0:82 'ballot' ( temp 4-component vector of uint) -0:82 'parti' ( temp 4-component vector of uint) -0:83 subgroupPartitionedOrNV ( global 4-component vector of uint) -0:83 'ballot' ( temp 4-component vector of uint) -0:83 'parti' ( temp 4-component vector of uint) -0:84 subgroupPartitionedXorNV ( global 4-component vector of uint) -0:84 'ballot' ( temp 4-component vector of uint) -0:84 'parti' ( temp 4-component vector of uint) -0:85 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float) -0:85 'f4' ( in 4-component vector of float) -0:85 'parti' ( temp 4-component vector of uint) -0:86 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float) -0:86 'f4' ( in 4-component vector of float) -0:86 'parti' ( temp 4-component vector of uint) -0:87 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float) -0:87 'f4' ( in 4-component vector of float) -0:87 'parti' ( temp 4-component vector of uint) -0:88 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float) -0:88 'f4' ( in 4-component vector of float) -0:88 'parti' ( temp 4-component vector of uint) -0:89 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint) -0:89 'ballot' ( temp 4-component vector of uint) -0:89 'parti' ( temp 4-component vector of uint) -0:90 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint) -0:90 'ballot' ( temp 4-component vector of uint) -0:90 'parti' ( temp 4-component vector of uint) -0:91 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint) -0:91 'ballot' ( temp 4-component vector of uint) -0:91 'parti' ( temp 4-component vector of uint) -0:92 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float) -0:92 'f4' ( in 4-component vector of float) -0:92 'parti' ( temp 4-component vector of uint) -0:93 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float) -0:93 'f4' ( in 4-component vector of float) -0:93 'parti' ( temp 4-component vector of uint) -0:94 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float) -0:94 'f4' ( in 4-component vector of float) -0:94 'parti' ( temp 4-component vector of uint) -0:95 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float) -0:95 'f4' ( in 4-component vector of float) -0:95 'parti' ( temp 4-component vector of uint) -0:96 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint) -0:96 'ballot' ( temp 4-component vector of uint) -0:96 'parti' ( temp 4-component vector of uint) -0:97 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint) -0:97 'ballot' ( temp 4-component vector of uint) -0:97 'parti' ( temp 4-component vector of uint) -0:98 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint) -0:98 'ballot' ( temp 4-component vector of uint) -0:98 'parti' ( temp 4-component vector of uint) -0:100 Branch: Return with expression -0:100 'result' ( temp 4-component vector of float) -0:111 Function Definition: main( ( global void) -0:111 Function Parameters: -0:113 Sequence -0:113 move second child to first child ( temp 4-component vector of uint) -0:113 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint) -0:113 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint) -0:113 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result}) -0:113 Constant: -0:113 0 (const uint) -0:113 'gl_PrimitiveIDIn' ( in int PrimitiveID) -0:113 Construct uvec4 ( temp 4-component vector of uint) -0:113 'gl_SubgroupSize' ( in uint SubgroupSize) -0:113 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:113 Constant: -0:113 0 (const uint) -0:113 Constant: -0:113 0 (const uint) -0:114 subgroupBarrier ( global void) -0:115 subgroupMemoryBarrier ( global void) -0:116 subgroupMemoryBarrierBuffer ( global void) -0:117 subgroupMemoryBarrierImage ( global void) -0:118 subgroupElect ( global bool) -0:122 Function Definition: ballot_works(vf4; ( global void) -0:122 Function Parameters: -0:122 'f4' ( in 4-component vector of float) -0:123 Sequence -0:123 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask) -0:124 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask) -0:125 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask) -0:126 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask) -0:127 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask) -0:128 subgroupBroadcast ( global 4-component vector of float) -0:128 'f4' ( in 4-component vector of float) -0:128 Constant: -0:128 0 (const uint) -0:129 subgroupBroadcastFirst ( global 4-component vector of float) -0:129 'f4' ( in 4-component vector of float) -0:130 Sequence -0:130 move second child to first child ( temp 4-component vector of uint) -0:130 'ballot' ( temp 4-component vector of uint) -0:130 subgroupBallot ( global 4-component vector of uint) -0:130 Constant: -0:130 false (const bool) -0:131 subgroupInverseBallot ( global bool) -0:131 Constant: -0:131 1 (const uint) -0:131 1 (const uint) -0:131 1 (const uint) -0:131 1 (const uint) -0:132 subgroupBallotBitExtract ( global bool) -0:132 'ballot' ( temp 4-component vector of uint) -0:132 Constant: -0:132 0 (const uint) -0:133 subgroupBallotBitCount ( global uint) -0:133 'ballot' ( temp 4-component vector of uint) -0:134 subgroupBallotInclusiveBitCount ( global uint) -0:134 'ballot' ( temp 4-component vector of uint) -0:135 subgroupBallotExclusiveBitCount ( global uint) -0:135 'ballot' ( temp 4-component vector of uint) -0:136 subgroupBallotFindLSB ( global uint) -0:136 'ballot' ( temp 4-component vector of uint) -0:137 subgroupBallotFindMSB ( global uint) -0:137 'ballot' ( temp 4-component vector of uint) -0:141 Function Definition: vote_works(vf4; ( global void) -0:141 Function Parameters: -0:141 'f4' ( in 4-component vector of float) -0:143 Sequence -0:143 subgroupAll ( global bool) -0:143 Constant: -0:143 true (const bool) -0:144 subgroupAny ( global bool) -0:144 Constant: -0:144 false (const bool) -0:145 subgroupAllEqual ( global bool) -0:145 'f4' ( in 4-component vector of float) -0:150 Function Definition: shuffle_works(vf4; ( global void) -0:150 Function Parameters: -0:150 'f4' ( in 4-component vector of float) -0:152 Sequence -0:152 subgroupShuffle ( global 4-component vector of float) -0:152 'f4' ( in 4-component vector of float) -0:152 Constant: -0:152 0 (const uint) -0:153 subgroupShuffleXor ( global 4-component vector of float) -0:153 'f4' ( in 4-component vector of float) -0:153 Constant: -0:153 1 (const uint) -0:154 subgroupShuffleUp ( global 4-component vector of float) -0:154 'f4' ( in 4-component vector of float) -0:154 Constant: -0:154 1 (const uint) -0:155 subgroupShuffleDown ( global 4-component vector of float) -0:155 'f4' ( in 4-component vector of float) -0:155 Constant: -0:155 1 (const uint) -0:159 Function Definition: arith_works(vf4; ( global void) -0:159 Function Parameters: -0:159 'f4' ( in 4-component vector of float) -0:? Sequence -0:162 subgroupAdd ( global 4-component vector of float) -0:162 'f4' ( in 4-component vector of float) -0:163 subgroupMul ( global 4-component vector of float) -0:163 'f4' ( in 4-component vector of float) -0:164 subgroupMin ( global 4-component vector of float) -0:164 'f4' ( in 4-component vector of float) -0:165 subgroupMax ( global 4-component vector of float) -0:165 'f4' ( in 4-component vector of float) -0:166 subgroupAnd ( global 4-component vector of uint) -0:166 'ballot' ( temp 4-component vector of uint) -0:167 subgroupOr ( global 4-component vector of uint) -0:167 'ballot' ( temp 4-component vector of uint) -0:168 subgroupXor ( global 4-component vector of uint) -0:168 'ballot' ( temp 4-component vector of uint) -0:169 subgroupInclusiveAdd ( global 4-component vector of float) -0:169 'f4' ( in 4-component vector of float) -0:170 subgroupInclusiveMul ( global 4-component vector of float) -0:170 'f4' ( in 4-component vector of float) -0:171 subgroupInclusiveMin ( global 4-component vector of float) -0:171 'f4' ( in 4-component vector of float) -0:172 subgroupInclusiveMax ( global 4-component vector of float) -0:172 'f4' ( in 4-component vector of float) -0:173 subgroupInclusiveAnd ( global 4-component vector of uint) -0:173 'ballot' ( temp 4-component vector of uint) -0:174 subgroupInclusiveOr ( global 4-component vector of uint) -0:174 'ballot' ( temp 4-component vector of uint) -0:175 subgroupInclusiveXor ( global 4-component vector of uint) -0:175 'ballot' ( temp 4-component vector of uint) -0:176 subgroupExclusiveAdd ( global 4-component vector of float) -0:176 'f4' ( in 4-component vector of float) -0:177 subgroupExclusiveMul ( global 4-component vector of float) -0:177 'f4' ( in 4-component vector of float) -0:178 subgroupExclusiveMin ( global 4-component vector of float) -0:178 'f4' ( in 4-component vector of float) -0:179 subgroupExclusiveMax ( global 4-component vector of float) -0:179 'f4' ( in 4-component vector of float) -0:180 subgroupExclusiveAnd ( global 4-component vector of uint) -0:180 'ballot' ( temp 4-component vector of uint) -0:181 subgroupExclusiveOr ( global 4-component vector of uint) -0:181 'ballot' ( temp 4-component vector of uint) -0:182 subgroupExclusiveXor ( global 4-component vector of uint) -0:182 'ballot' ( temp 4-component vector of uint) -0:186 Function Definition: clustered_works(vf4; ( global void) -0:186 Function Parameters: -0:186 'f4' ( in 4-component vector of float) -0:188 Sequence -0:188 Sequence -0:188 move second child to first child ( temp 4-component vector of uint) -0:188 'ballot' ( temp 4-component vector of uint) -0:188 Constant: -0:188 85 (const uint) -0:188 0 (const uint) -0:188 0 (const uint) -0:188 0 (const uint) -0:189 subgroupClusteredAdd ( global 4-component vector of float) -0:189 'f4' ( in 4-component vector of float) -0:189 Constant: -0:189 2 (const uint) -0:190 subgroupClusteredMul ( global 4-component vector of float) -0:190 'f4' ( in 4-component vector of float) -0:190 Constant: -0:190 2 (const uint) -0:191 subgroupClusteredMin ( global 4-component vector of float) -0:191 'f4' ( in 4-component vector of float) -0:191 Constant: -0:191 2 (const uint) -0:192 subgroupClusteredMax ( global 4-component vector of float) -0:192 'f4' ( in 4-component vector of float) -0:192 Constant: -0:192 2 (const uint) -0:193 subgroupClusteredAnd ( global 4-component vector of uint) -0:193 'ballot' ( temp 4-component vector of uint) -0:193 Constant: -0:193 2 (const uint) -0:194 subgroupClusteredOr ( global 4-component vector of uint) -0:194 'ballot' ( temp 4-component vector of uint) -0:194 Constant: -0:194 2 (const uint) -0:195 subgroupClusteredXor ( global 4-component vector of uint) -0:195 'ballot' ( temp 4-component vector of uint) -0:195 Constant: -0:195 2 (const uint) -0:199 Function Definition: quad_works(vf4; ( global void) -0:199 Function Parameters: -0:199 'f4' ( in 4-component vector of float) -0:201 Sequence -0:201 subgroupQuadBroadcast ( global 4-component vector of float) -0:201 'f4' ( in 4-component vector of float) -0:201 Constant: -0:201 0 (const uint) -0:202 subgroupQuadSwapHorizontal ( global 4-component vector of float) -0:202 'f4' ( in 4-component vector of float) -0:203 subgroupQuadSwapVertical ( global 4-component vector of float) -0:203 'f4' ( in 4-component vector of float) -0:204 subgroupQuadSwapDiagonal ( global 4-component vector of float) -0:204 'f4' ( in 4-component vector of float) -0:208 Function Definition: partitioned_works(vf4; ( global void) -0:208 Function Parameters: -0:208 'f4' ( in 4-component vector of float) -0:210 Sequence -0:210 Sequence -0:210 move second child to first child ( temp 4-component vector of uint) -0:210 'parti' ( temp 4-component vector of uint) -0:210 subgroupPartitionNV ( global 4-component vector of uint) -0:210 'f4' ( in 4-component vector of float) -0:211 Sequence -0:211 move second child to first child ( temp 4-component vector of uint) -0:211 'ballot' ( temp 4-component vector of uint) -0:211 Constant: -0:211 85 (const uint) -0:211 0 (const uint) -0:211 0 (const uint) -0:211 0 (const uint) -0:212 subgroupPartitionedAddNV ( global 4-component vector of float) -0:212 'f4' ( in 4-component vector of float) -0:212 'parti' ( temp 4-component vector of uint) -0:213 subgroupPartitionedMulNV ( global 4-component vector of float) -0:213 'f4' ( in 4-component vector of float) -0:213 'parti' ( temp 4-component vector of uint) -0:214 subgroupPartitionedMinNV ( global 4-component vector of float) -0:214 'f4' ( in 4-component vector of float) -0:214 'parti' ( temp 4-component vector of uint) -0:215 subgroupPartitionedMaxNV ( global 4-component vector of float) -0:215 'f4' ( in 4-component vector of float) -0:215 'parti' ( temp 4-component vector of uint) -0:216 subgroupPartitionedAndNV ( global 4-component vector of uint) -0:216 'ballot' ( temp 4-component vector of uint) -0:216 'parti' ( temp 4-component vector of uint) -0:217 subgroupPartitionedOrNV ( global 4-component vector of uint) -0:217 'ballot' ( temp 4-component vector of uint) -0:217 'parti' ( temp 4-component vector of uint) -0:218 subgroupPartitionedXorNV ( global 4-component vector of uint) -0:218 'ballot' ( temp 4-component vector of uint) -0:218 'parti' ( temp 4-component vector of uint) -0:219 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float) -0:219 'f4' ( in 4-component vector of float) -0:219 'parti' ( temp 4-component vector of uint) -0:220 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float) -0:220 'f4' ( in 4-component vector of float) -0:220 'parti' ( temp 4-component vector of uint) -0:221 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float) -0:221 'f4' ( in 4-component vector of float) -0:221 'parti' ( temp 4-component vector of uint) -0:222 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float) -0:222 'f4' ( in 4-component vector of float) -0:222 'parti' ( temp 4-component vector of uint) -0:223 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint) -0:223 'ballot' ( temp 4-component vector of uint) -0:223 'parti' ( temp 4-component vector of uint) -0:224 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint) -0:224 'ballot' ( temp 4-component vector of uint) -0:224 'parti' ( temp 4-component vector of uint) -0:225 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint) -0:225 'ballot' ( temp 4-component vector of uint) -0:225 'parti' ( temp 4-component vector of uint) -0:226 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float) -0:226 'f4' ( in 4-component vector of float) -0:226 'parti' ( temp 4-component vector of uint) -0:227 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float) -0:227 'f4' ( in 4-component vector of float) -0:227 'parti' ( temp 4-component vector of uint) -0:228 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float) -0:228 'f4' ( in 4-component vector of float) -0:228 'parti' ( temp 4-component vector of uint) -0:229 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float) -0:229 'f4' ( in 4-component vector of float) -0:229 'parti' ( temp 4-component vector of uint) -0:230 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint) -0:230 'ballot' ( temp 4-component vector of uint) -0:230 'parti' ( temp 4-component vector of uint) -0:231 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint) -0:231 'ballot' ( temp 4-component vector of uint) -0:231 'parti' ( temp 4-component vector of uint) -0:232 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint) -0:232 'ballot' ( temp 4-component vector of uint) -0:232 'parti' ( temp 4-component vector of uint) -0:236 Function Definition: sm_builtins_err( ( global void) -0:236 Function Parameters: -0:238 Sequence -0:238 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV) -0:239 'gl_SMCountNV' ( in uint SMCountNV) -0:240 'gl_WarpIDNV' ( in uint WarpIDNV) -0:241 'gl_SMIDNV' ( in uint SMIDNV) -0:248 Function Definition: sm_builtins( ( global void) -0:248 Function Parameters: -0:250 Sequence -0:250 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV) -0:251 'gl_SMCountNV' ( in uint SMCountNV) -0:252 'gl_WarpIDNV' ( in uint WarpIDNV) -0:253 'gl_SMIDNV' ( in uint SMIDNV) -0:? Linker Objects -0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result}) - - -Linked geometry stage: - - -Shader version: 450 -Requested GL_KHR_shader_subgroup_arithmetic -Requested GL_KHR_shader_subgroup_ballot -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_clustered -Requested GL_KHR_shader_subgroup_quad -Requested GL_KHR_shader_subgroup_shuffle -Requested GL_KHR_shader_subgroup_shuffle_relative -Requested GL_KHR_shader_subgroup_vote -Requested GL_NV_shader_sm_builtins -Requested GL_NV_shader_subgroup_partitioned -invocations = 1 -max_vertices = 1 -input primitive = points -output primitive = points -ERROR: node is still EOpNull! -0:111 Function Definition: main( ( global void) -0:111 Function Parameters: -0:113 Sequence -0:113 move second child to first child ( temp 4-component vector of uint) -0:113 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint) -0:113 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint) -0:113 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result}) -0:113 Constant: -0:113 0 (const uint) -0:113 'gl_PrimitiveIDIn' ( in int PrimitiveID) -0:113 Construct uvec4 ( temp 4-component vector of uint) -0:113 'gl_SubgroupSize' ( in uint SubgroupSize) -0:113 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:113 Constant: -0:113 0 (const uint) -0:113 Constant: -0:113 0 (const uint) -0:114 subgroupBarrier ( global void) -0:115 subgroupMemoryBarrier ( global void) -0:116 subgroupMemoryBarrierBuffer ( global void) -0:117 subgroupMemoryBarrierImage ( global void) -0:118 subgroupElect ( global bool) -0:? Linker Objects -0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result}) - diff --git a/deps/glslang/Test/baseResults/glsl.450.subgroup.tesc.out b/deps/glslang/Test/baseResults/glsl.450.subgroup.tesc.out deleted file mode 100644 index eeee3877..00000000 --- a/deps/glslang/Test/baseResults/glsl.450.subgroup.tesc.out +++ /dev/null @@ -1,669 +0,0 @@ -glsl.450.subgroup.tesc -ERROR: 0:6: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:7: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:8: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:9: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:10: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:11: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:12: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:13: 'gl_NumSubgroups' : undeclared identifier -ERROR: 0:14: 'gl_SubgroupID' : undeclared identifier -ERROR: 0:15: 'subgroupMemoryBarrierShared' : no matching overloaded function found -ERROR: 0:17: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:18: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:19: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:21: 'gl_SubgroupEqMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:22: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:23: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:24: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:25: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:26: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:27: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:28: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:29: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:30: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:31: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:32: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:33: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:34: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:35: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:37: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle -ERROR: 0:38: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle -ERROR: 0:39: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative -ERROR: 0:40: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative -ERROR: 0:42: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:43: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:44: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:45: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:46: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:47: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:48: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:49: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:50: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:51: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:52: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:53: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:54: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:55: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:56: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:57: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:58: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:59: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:60: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:61: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:62: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:64: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:65: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:66: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:67: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:68: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:69: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:70: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:72: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:73: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:74: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:75: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:77: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:78: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:79: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:80: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:81: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:82: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:83: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:84: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:85: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:86: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:87: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:88: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:89: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:90: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:91: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:92: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:93: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:94: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:237: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:238: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:239: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:240: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 90 compilation errors. No code generated. - - -Shader version: 450 -Requested GL_KHR_shader_subgroup_arithmetic -Requested GL_KHR_shader_subgroup_ballot -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_clustered -Requested GL_KHR_shader_subgroup_quad -Requested GL_KHR_shader_subgroup_shuffle -Requested GL_KHR_shader_subgroup_shuffle_relative -Requested GL_KHR_shader_subgroup_vote -Requested GL_NV_shader_sm_builtins -Requested GL_NV_shader_subgroup_partitioned -vertices = 1 -ERROR: node is still EOpNull! -0:3 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float) -0:3 Function Parameters: -0:3 'f4' ( in 4-component vector of float) -0:? Sequence -0:6 'gl_SubgroupSize' ( in uint SubgroupSize) -0:7 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:8 subgroupBarrier ( global void) -0:9 subgroupMemoryBarrier ( global void) -0:10 subgroupMemoryBarrierBuffer ( global void) -0:11 subgroupMemoryBarrierImage ( global void) -0:12 subgroupElect ( global bool) -0:13 'gl_NumSubgroups' ( temp float) -0:14 'gl_SubgroupID' ( temp float) -0:15 Constant: -0:15 0.000000 -0:17 subgroupAll ( global bool) -0:17 Constant: -0:17 true (const bool) -0:18 subgroupAny ( global bool) -0:18 Constant: -0:18 false (const bool) -0:19 subgroupAllEqual ( global bool) -0:19 'f4' ( in 4-component vector of float) -0:21 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask) -0:22 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask) -0:23 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask) -0:24 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask) -0:25 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask) -0:26 subgroupBroadcast ( global 4-component vector of float) -0:26 'f4' ( in 4-component vector of float) -0:26 Constant: -0:26 0 (const uint) -0:27 subgroupBroadcastFirst ( global 4-component vector of float) -0:27 'f4' ( in 4-component vector of float) -0:28 Sequence -0:28 move second child to first child ( temp 4-component vector of uint) -0:28 'ballot' ( temp 4-component vector of uint) -0:28 subgroupBallot ( global 4-component vector of uint) -0:28 Constant: -0:28 false (const bool) -0:29 subgroupInverseBallot ( global bool) -0:29 Constant: -0:29 1 (const uint) -0:29 1 (const uint) -0:29 1 (const uint) -0:29 1 (const uint) -0:30 subgroupBallotBitExtract ( global bool) -0:30 'ballot' ( temp 4-component vector of uint) -0:30 Constant: -0:30 0 (const uint) -0:31 subgroupBallotBitCount ( global uint) -0:31 'ballot' ( temp 4-component vector of uint) -0:32 subgroupBallotInclusiveBitCount ( global uint) -0:32 'ballot' ( temp 4-component vector of uint) -0:33 subgroupBallotExclusiveBitCount ( global uint) -0:33 'ballot' ( temp 4-component vector of uint) -0:34 subgroupBallotFindLSB ( global uint) -0:34 'ballot' ( temp 4-component vector of uint) -0:35 subgroupBallotFindMSB ( global uint) -0:35 'ballot' ( temp 4-component vector of uint) -0:37 subgroupShuffle ( global 4-component vector of float) -0:37 'f4' ( in 4-component vector of float) -0:37 Constant: -0:37 0 (const uint) -0:38 subgroupShuffleXor ( global 4-component vector of float) -0:38 'f4' ( in 4-component vector of float) -0:38 Constant: -0:38 1 (const uint) -0:39 subgroupShuffleUp ( global 4-component vector of float) -0:39 'f4' ( in 4-component vector of float) -0:39 Constant: -0:39 1 (const uint) -0:40 subgroupShuffleDown ( global 4-component vector of float) -0:40 'f4' ( in 4-component vector of float) -0:40 Constant: -0:40 1 (const uint) -0:42 move second child to first child ( temp 4-component vector of float) -0:42 'result' ( temp 4-component vector of float) -0:42 subgroupAdd ( global 4-component vector of float) -0:42 'f4' ( in 4-component vector of float) -0:43 subgroupMul ( global 4-component vector of float) -0:43 'f4' ( in 4-component vector of float) -0:44 subgroupMin ( global 4-component vector of float) -0:44 'f4' ( in 4-component vector of float) -0:45 subgroupMax ( global 4-component vector of float) -0:45 'f4' ( in 4-component vector of float) -0:46 subgroupAnd ( global 4-component vector of uint) -0:46 'ballot' ( temp 4-component vector of uint) -0:47 subgroupOr ( global 4-component vector of uint) -0:47 'ballot' ( temp 4-component vector of uint) -0:48 subgroupXor ( global 4-component vector of uint) -0:48 'ballot' ( temp 4-component vector of uint) -0:49 subgroupInclusiveAdd ( global 4-component vector of float) -0:49 'f4' ( in 4-component vector of float) -0:50 subgroupInclusiveMul ( global 4-component vector of float) -0:50 'f4' ( in 4-component vector of float) -0:51 subgroupInclusiveMin ( global 4-component vector of float) -0:51 'f4' ( in 4-component vector of float) -0:52 subgroupInclusiveMax ( global 4-component vector of float) -0:52 'f4' ( in 4-component vector of float) -0:53 subgroupInclusiveAnd ( global 4-component vector of uint) -0:53 'ballot' ( temp 4-component vector of uint) -0:54 subgroupInclusiveOr ( global 4-component vector of uint) -0:54 'ballot' ( temp 4-component vector of uint) -0:55 subgroupInclusiveXor ( global 4-component vector of uint) -0:55 'ballot' ( temp 4-component vector of uint) -0:56 subgroupExclusiveAdd ( global 4-component vector of float) -0:56 'f4' ( in 4-component vector of float) -0:57 subgroupExclusiveMul ( global 4-component vector of float) -0:57 'f4' ( in 4-component vector of float) -0:58 subgroupExclusiveMin ( global 4-component vector of float) -0:58 'f4' ( in 4-component vector of float) -0:59 subgroupExclusiveMax ( global 4-component vector of float) -0:59 'f4' ( in 4-component vector of float) -0:60 subgroupExclusiveAnd ( global 4-component vector of uint) -0:60 'ballot' ( temp 4-component vector of uint) -0:61 subgroupExclusiveOr ( global 4-component vector of uint) -0:61 'ballot' ( temp 4-component vector of uint) -0:62 subgroupExclusiveXor ( global 4-component vector of uint) -0:62 'ballot' ( temp 4-component vector of uint) -0:64 subgroupClusteredAdd ( global 4-component vector of float) -0:64 'f4' ( in 4-component vector of float) -0:64 Constant: -0:64 2 (const uint) -0:65 subgroupClusteredMul ( global 4-component vector of float) -0:65 'f4' ( in 4-component vector of float) -0:65 Constant: -0:65 2 (const uint) -0:66 subgroupClusteredMin ( global 4-component vector of float) -0:66 'f4' ( in 4-component vector of float) -0:66 Constant: -0:66 2 (const uint) -0:67 subgroupClusteredMax ( global 4-component vector of float) -0:67 'f4' ( in 4-component vector of float) -0:67 Constant: -0:67 2 (const uint) -0:68 subgroupClusteredAnd ( global 4-component vector of uint) -0:68 'ballot' ( temp 4-component vector of uint) -0:68 Constant: -0:68 2 (const uint) -0:69 subgroupClusteredOr ( global 4-component vector of uint) -0:69 'ballot' ( temp 4-component vector of uint) -0:69 Constant: -0:69 2 (const uint) -0:70 subgroupClusteredXor ( global 4-component vector of uint) -0:70 'ballot' ( temp 4-component vector of uint) -0:70 Constant: -0:70 2 (const uint) -0:72 subgroupQuadBroadcast ( global 4-component vector of float) -0:72 'f4' ( in 4-component vector of float) -0:72 Constant: -0:72 0 (const uint) -0:73 subgroupQuadSwapHorizontal ( global 4-component vector of float) -0:73 'f4' ( in 4-component vector of float) -0:74 subgroupQuadSwapVertical ( global 4-component vector of float) -0:74 'f4' ( in 4-component vector of float) -0:75 subgroupQuadSwapDiagonal ( global 4-component vector of float) -0:75 'f4' ( in 4-component vector of float) -0:77 Sequence -0:77 move second child to first child ( temp 4-component vector of uint) -0:77 'parti' ( temp 4-component vector of uint) -0:77 subgroupPartitionNV ( global 4-component vector of uint) -0:77 'f4' ( in 4-component vector of float) -0:78 subgroupPartitionedAddNV ( global 4-component vector of float) -0:78 'f4' ( in 4-component vector of float) -0:78 'parti' ( temp 4-component vector of uint) -0:79 subgroupPartitionedMulNV ( global 4-component vector of float) -0:79 'f4' ( in 4-component vector of float) -0:79 'parti' ( temp 4-component vector of uint) -0:80 subgroupPartitionedMinNV ( global 4-component vector of float) -0:80 'f4' ( in 4-component vector of float) -0:80 'parti' ( temp 4-component vector of uint) -0:81 subgroupPartitionedMaxNV ( global 4-component vector of float) -0:81 'f4' ( in 4-component vector of float) -0:81 'parti' ( temp 4-component vector of uint) -0:82 subgroupPartitionedAndNV ( global 4-component vector of uint) -0:82 'ballot' ( temp 4-component vector of uint) -0:82 'parti' ( temp 4-component vector of uint) -0:83 subgroupPartitionedOrNV ( global 4-component vector of uint) -0:83 'ballot' ( temp 4-component vector of uint) -0:83 'parti' ( temp 4-component vector of uint) -0:84 subgroupPartitionedXorNV ( global 4-component vector of uint) -0:84 'ballot' ( temp 4-component vector of uint) -0:84 'parti' ( temp 4-component vector of uint) -0:85 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float) -0:85 'f4' ( in 4-component vector of float) -0:85 'parti' ( temp 4-component vector of uint) -0:86 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float) -0:86 'f4' ( in 4-component vector of float) -0:86 'parti' ( temp 4-component vector of uint) -0:87 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float) -0:87 'f4' ( in 4-component vector of float) -0:87 'parti' ( temp 4-component vector of uint) -0:88 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float) -0:88 'f4' ( in 4-component vector of float) -0:88 'parti' ( temp 4-component vector of uint) -0:89 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint) -0:89 'ballot' ( temp 4-component vector of uint) -0:89 'parti' ( temp 4-component vector of uint) -0:90 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint) -0:90 'ballot' ( temp 4-component vector of uint) -0:90 'parti' ( temp 4-component vector of uint) -0:91 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint) -0:91 'ballot' ( temp 4-component vector of uint) -0:91 'parti' ( temp 4-component vector of uint) -0:92 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float) -0:92 'f4' ( in 4-component vector of float) -0:92 'parti' ( temp 4-component vector of uint) -0:93 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float) -0:93 'f4' ( in 4-component vector of float) -0:93 'parti' ( temp 4-component vector of uint) -0:94 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float) -0:94 'f4' ( in 4-component vector of float) -0:94 'parti' ( temp 4-component vector of uint) -0:95 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float) -0:95 'f4' ( in 4-component vector of float) -0:95 'parti' ( temp 4-component vector of uint) -0:96 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint) -0:96 'ballot' ( temp 4-component vector of uint) -0:96 'parti' ( temp 4-component vector of uint) -0:97 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint) -0:97 'ballot' ( temp 4-component vector of uint) -0:97 'parti' ( temp 4-component vector of uint) -0:98 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint) -0:98 'ballot' ( temp 4-component vector of uint) -0:98 'parti' ( temp 4-component vector of uint) -0:100 Branch: Return with expression -0:100 'result' ( temp 4-component vector of float) -0:110 Function Definition: main( ( global void) -0:110 Function Parameters: -0:112 Sequence -0:112 move second child to first child ( temp 4-component vector of uint) -0:112 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint) -0:112 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint) -0:112 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result}) -0:112 Constant: -0:112 0 (const uint) -0:112 'gl_PrimitiveID' ( in int PrimitiveID) -0:112 Construct uvec4 ( temp 4-component vector of uint) -0:112 'gl_SubgroupSize' ( in uint SubgroupSize) -0:112 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:112 Constant: -0:112 0 (const uint) -0:112 Constant: -0:112 0 (const uint) -0:113 subgroupBarrier ( global void) -0:114 subgroupMemoryBarrier ( global void) -0:115 subgroupMemoryBarrierBuffer ( global void) -0:116 subgroupMemoryBarrierImage ( global void) -0:117 subgroupElect ( global bool) -0:121 Function Definition: ballot_works(vf4; ( global void) -0:121 Function Parameters: -0:121 'f4' ( in 4-component vector of float) -0:122 Sequence -0:122 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask) -0:123 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask) -0:124 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask) -0:125 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask) -0:126 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask) -0:127 subgroupBroadcast ( global 4-component vector of float) -0:127 'f4' ( in 4-component vector of float) -0:127 Constant: -0:127 0 (const uint) -0:128 subgroupBroadcastFirst ( global 4-component vector of float) -0:128 'f4' ( in 4-component vector of float) -0:129 Sequence -0:129 move second child to first child ( temp 4-component vector of uint) -0:129 'ballot' ( temp 4-component vector of uint) -0:129 subgroupBallot ( global 4-component vector of uint) -0:129 Constant: -0:129 false (const bool) -0:130 subgroupInverseBallot ( global bool) -0:130 Constant: -0:130 1 (const uint) -0:130 1 (const uint) -0:130 1 (const uint) -0:130 1 (const uint) -0:131 subgroupBallotBitExtract ( global bool) -0:131 'ballot' ( temp 4-component vector of uint) -0:131 Constant: -0:131 0 (const uint) -0:132 subgroupBallotBitCount ( global uint) -0:132 'ballot' ( temp 4-component vector of uint) -0:133 subgroupBallotInclusiveBitCount ( global uint) -0:133 'ballot' ( temp 4-component vector of uint) -0:134 subgroupBallotExclusiveBitCount ( global uint) -0:134 'ballot' ( temp 4-component vector of uint) -0:135 subgroupBallotFindLSB ( global uint) -0:135 'ballot' ( temp 4-component vector of uint) -0:136 subgroupBallotFindMSB ( global uint) -0:136 'ballot' ( temp 4-component vector of uint) -0:140 Function Definition: vote_works(vf4; ( global void) -0:140 Function Parameters: -0:140 'f4' ( in 4-component vector of float) -0:142 Sequence -0:142 subgroupAll ( global bool) -0:142 Constant: -0:142 true (const bool) -0:143 subgroupAny ( global bool) -0:143 Constant: -0:143 false (const bool) -0:144 subgroupAllEqual ( global bool) -0:144 'f4' ( in 4-component vector of float) -0:149 Function Definition: shuffle_works(vf4; ( global void) -0:149 Function Parameters: -0:149 'f4' ( in 4-component vector of float) -0:151 Sequence -0:151 subgroupShuffle ( global 4-component vector of float) -0:151 'f4' ( in 4-component vector of float) -0:151 Constant: -0:151 0 (const uint) -0:152 subgroupShuffleXor ( global 4-component vector of float) -0:152 'f4' ( in 4-component vector of float) -0:152 Constant: -0:152 1 (const uint) -0:153 subgroupShuffleUp ( global 4-component vector of float) -0:153 'f4' ( in 4-component vector of float) -0:153 Constant: -0:153 1 (const uint) -0:154 subgroupShuffleDown ( global 4-component vector of float) -0:154 'f4' ( in 4-component vector of float) -0:154 Constant: -0:154 1 (const uint) -0:158 Function Definition: arith_works(vf4; ( global void) -0:158 Function Parameters: -0:158 'f4' ( in 4-component vector of float) -0:? Sequence -0:161 subgroupAdd ( global 4-component vector of float) -0:161 'f4' ( in 4-component vector of float) -0:162 subgroupMul ( global 4-component vector of float) -0:162 'f4' ( in 4-component vector of float) -0:163 subgroupMin ( global 4-component vector of float) -0:163 'f4' ( in 4-component vector of float) -0:164 subgroupMax ( global 4-component vector of float) -0:164 'f4' ( in 4-component vector of float) -0:165 subgroupAnd ( global 4-component vector of uint) -0:165 'ballot' ( temp 4-component vector of uint) -0:166 subgroupOr ( global 4-component vector of uint) -0:166 'ballot' ( temp 4-component vector of uint) -0:167 subgroupXor ( global 4-component vector of uint) -0:167 'ballot' ( temp 4-component vector of uint) -0:168 subgroupInclusiveAdd ( global 4-component vector of float) -0:168 'f4' ( in 4-component vector of float) -0:169 subgroupInclusiveMul ( global 4-component vector of float) -0:169 'f4' ( in 4-component vector of float) -0:170 subgroupInclusiveMin ( global 4-component vector of float) -0:170 'f4' ( in 4-component vector of float) -0:171 subgroupInclusiveMax ( global 4-component vector of float) -0:171 'f4' ( in 4-component vector of float) -0:172 subgroupInclusiveAnd ( global 4-component vector of uint) -0:172 'ballot' ( temp 4-component vector of uint) -0:173 subgroupInclusiveOr ( global 4-component vector of uint) -0:173 'ballot' ( temp 4-component vector of uint) -0:174 subgroupInclusiveXor ( global 4-component vector of uint) -0:174 'ballot' ( temp 4-component vector of uint) -0:175 subgroupExclusiveAdd ( global 4-component vector of float) -0:175 'f4' ( in 4-component vector of float) -0:176 subgroupExclusiveMul ( global 4-component vector of float) -0:176 'f4' ( in 4-component vector of float) -0:177 subgroupExclusiveMin ( global 4-component vector of float) -0:177 'f4' ( in 4-component vector of float) -0:178 subgroupExclusiveMax ( global 4-component vector of float) -0:178 'f4' ( in 4-component vector of float) -0:179 subgroupExclusiveAnd ( global 4-component vector of uint) -0:179 'ballot' ( temp 4-component vector of uint) -0:180 subgroupExclusiveOr ( global 4-component vector of uint) -0:180 'ballot' ( temp 4-component vector of uint) -0:181 subgroupExclusiveXor ( global 4-component vector of uint) -0:181 'ballot' ( temp 4-component vector of uint) -0:185 Function Definition: clustered_works(vf4; ( global void) -0:185 Function Parameters: -0:185 'f4' ( in 4-component vector of float) -0:187 Sequence -0:187 Sequence -0:187 move second child to first child ( temp 4-component vector of uint) -0:187 'ballot' ( temp 4-component vector of uint) -0:187 Constant: -0:187 85 (const uint) -0:187 0 (const uint) -0:187 0 (const uint) -0:187 0 (const uint) -0:188 subgroupClusteredAdd ( global 4-component vector of float) -0:188 'f4' ( in 4-component vector of float) -0:188 Constant: -0:188 2 (const uint) -0:189 subgroupClusteredMul ( global 4-component vector of float) -0:189 'f4' ( in 4-component vector of float) -0:189 Constant: -0:189 2 (const uint) -0:190 subgroupClusteredMin ( global 4-component vector of float) -0:190 'f4' ( in 4-component vector of float) -0:190 Constant: -0:190 2 (const uint) -0:191 subgroupClusteredMax ( global 4-component vector of float) -0:191 'f4' ( in 4-component vector of float) -0:191 Constant: -0:191 2 (const uint) -0:192 subgroupClusteredAnd ( global 4-component vector of uint) -0:192 'ballot' ( temp 4-component vector of uint) -0:192 Constant: -0:192 2 (const uint) -0:193 subgroupClusteredOr ( global 4-component vector of uint) -0:193 'ballot' ( temp 4-component vector of uint) -0:193 Constant: -0:193 2 (const uint) -0:194 subgroupClusteredXor ( global 4-component vector of uint) -0:194 'ballot' ( temp 4-component vector of uint) -0:194 Constant: -0:194 2 (const uint) -0:198 Function Definition: quad_works(vf4; ( global void) -0:198 Function Parameters: -0:198 'f4' ( in 4-component vector of float) -0:200 Sequence -0:200 subgroupQuadBroadcast ( global 4-component vector of float) -0:200 'f4' ( in 4-component vector of float) -0:200 Constant: -0:200 0 (const uint) -0:201 subgroupQuadSwapHorizontal ( global 4-component vector of float) -0:201 'f4' ( in 4-component vector of float) -0:202 subgroupQuadSwapVertical ( global 4-component vector of float) -0:202 'f4' ( in 4-component vector of float) -0:203 subgroupQuadSwapDiagonal ( global 4-component vector of float) -0:203 'f4' ( in 4-component vector of float) -0:207 Function Definition: partitioned_works(vf4; ( global void) -0:207 Function Parameters: -0:207 'f4' ( in 4-component vector of float) -0:209 Sequence -0:209 Sequence -0:209 move second child to first child ( temp 4-component vector of uint) -0:209 'parti' ( temp 4-component vector of uint) -0:209 subgroupPartitionNV ( global 4-component vector of uint) -0:209 'f4' ( in 4-component vector of float) -0:210 Sequence -0:210 move second child to first child ( temp 4-component vector of uint) -0:210 'ballot' ( temp 4-component vector of uint) -0:210 Constant: -0:210 85 (const uint) -0:210 0 (const uint) -0:210 0 (const uint) -0:210 0 (const uint) -0:211 subgroupPartitionedAddNV ( global 4-component vector of float) -0:211 'f4' ( in 4-component vector of float) -0:211 'parti' ( temp 4-component vector of uint) -0:212 subgroupPartitionedMulNV ( global 4-component vector of float) -0:212 'f4' ( in 4-component vector of float) -0:212 'parti' ( temp 4-component vector of uint) -0:213 subgroupPartitionedMinNV ( global 4-component vector of float) -0:213 'f4' ( in 4-component vector of float) -0:213 'parti' ( temp 4-component vector of uint) -0:214 subgroupPartitionedMaxNV ( global 4-component vector of float) -0:214 'f4' ( in 4-component vector of float) -0:214 'parti' ( temp 4-component vector of uint) -0:215 subgroupPartitionedAndNV ( global 4-component vector of uint) -0:215 'ballot' ( temp 4-component vector of uint) -0:215 'parti' ( temp 4-component vector of uint) -0:216 subgroupPartitionedOrNV ( global 4-component vector of uint) -0:216 'ballot' ( temp 4-component vector of uint) -0:216 'parti' ( temp 4-component vector of uint) -0:217 subgroupPartitionedXorNV ( global 4-component vector of uint) -0:217 'ballot' ( temp 4-component vector of uint) -0:217 'parti' ( temp 4-component vector of uint) -0:218 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float) -0:218 'f4' ( in 4-component vector of float) -0:218 'parti' ( temp 4-component vector of uint) -0:219 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float) -0:219 'f4' ( in 4-component vector of float) -0:219 'parti' ( temp 4-component vector of uint) -0:220 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float) -0:220 'f4' ( in 4-component vector of float) -0:220 'parti' ( temp 4-component vector of uint) -0:221 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float) -0:221 'f4' ( in 4-component vector of float) -0:221 'parti' ( temp 4-component vector of uint) -0:222 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint) -0:222 'ballot' ( temp 4-component vector of uint) -0:222 'parti' ( temp 4-component vector of uint) -0:223 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint) -0:223 'ballot' ( temp 4-component vector of uint) -0:223 'parti' ( temp 4-component vector of uint) -0:224 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint) -0:224 'ballot' ( temp 4-component vector of uint) -0:224 'parti' ( temp 4-component vector of uint) -0:225 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float) -0:225 'f4' ( in 4-component vector of float) -0:225 'parti' ( temp 4-component vector of uint) -0:226 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float) -0:226 'f4' ( in 4-component vector of float) -0:226 'parti' ( temp 4-component vector of uint) -0:227 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float) -0:227 'f4' ( in 4-component vector of float) -0:227 'parti' ( temp 4-component vector of uint) -0:228 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float) -0:228 'f4' ( in 4-component vector of float) -0:228 'parti' ( temp 4-component vector of uint) -0:229 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint) -0:229 'ballot' ( temp 4-component vector of uint) -0:229 'parti' ( temp 4-component vector of uint) -0:230 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint) -0:230 'ballot' ( temp 4-component vector of uint) -0:230 'parti' ( temp 4-component vector of uint) -0:231 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint) -0:231 'ballot' ( temp 4-component vector of uint) -0:231 'parti' ( temp 4-component vector of uint) -0:235 Function Definition: sm_builtins_err( ( global void) -0:235 Function Parameters: -0:237 Sequence -0:237 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV) -0:238 'gl_SMCountNV' ( in uint SMCountNV) -0:239 'gl_WarpIDNV' ( in uint WarpIDNV) -0:240 'gl_SMIDNV' ( in uint SMIDNV) -0:247 Function Definition: sm_builtins( ( global void) -0:247 Function Parameters: -0:249 Sequence -0:249 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV) -0:250 'gl_SMCountNV' ( in uint SMCountNV) -0:251 'gl_WarpIDNV' ( in uint WarpIDNV) -0:252 'gl_SMIDNV' ( in uint SMIDNV) -0:? Linker Objects -0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result}) - - -Linked tessellation control stage: - - -Shader version: 450 -Requested GL_KHR_shader_subgroup_arithmetic -Requested GL_KHR_shader_subgroup_ballot -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_clustered -Requested GL_KHR_shader_subgroup_quad -Requested GL_KHR_shader_subgroup_shuffle -Requested GL_KHR_shader_subgroup_shuffle_relative -Requested GL_KHR_shader_subgroup_vote -Requested GL_NV_shader_sm_builtins -Requested GL_NV_shader_subgroup_partitioned -vertices = 1 -ERROR: node is still EOpNull! -0:110 Function Definition: main( ( global void) -0:110 Function Parameters: -0:112 Sequence -0:112 move second child to first child ( temp 4-component vector of uint) -0:112 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint) -0:112 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint) -0:112 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result}) -0:112 Constant: -0:112 0 (const uint) -0:112 'gl_PrimitiveID' ( in int PrimitiveID) -0:112 Construct uvec4 ( temp 4-component vector of uint) -0:112 'gl_SubgroupSize' ( in uint SubgroupSize) -0:112 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:112 Constant: -0:112 0 (const uint) -0:112 Constant: -0:112 0 (const uint) -0:113 subgroupBarrier ( global void) -0:114 subgroupMemoryBarrier ( global void) -0:115 subgroupMemoryBarrierBuffer ( global void) -0:116 subgroupMemoryBarrierImage ( global void) -0:117 subgroupElect ( global bool) -0:? Linker Objects -0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result}) - diff --git a/deps/glslang/Test/baseResults/glsl.450.subgroup.tese.out b/deps/glslang/Test/baseResults/glsl.450.subgroup.tese.out deleted file mode 100644 index 3f05d77c..00000000 --- a/deps/glslang/Test/baseResults/glsl.450.subgroup.tese.out +++ /dev/null @@ -1,673 +0,0 @@ -glsl.450.subgroup.tese -ERROR: 0:6: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:7: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:8: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:9: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:10: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:11: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:12: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:13: 'gl_NumSubgroups' : undeclared identifier -ERROR: 0:14: 'gl_SubgroupID' : undeclared identifier -ERROR: 0:15: 'subgroupMemoryBarrierShared' : no matching overloaded function found -ERROR: 0:17: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:18: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:19: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:21: 'gl_SubgroupEqMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:22: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:23: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:24: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:25: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:26: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:27: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:28: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:29: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:30: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:31: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:32: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:33: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:34: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:35: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:37: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle -ERROR: 0:38: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle -ERROR: 0:39: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative -ERROR: 0:40: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative -ERROR: 0:42: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:43: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:44: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:45: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:46: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:47: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:48: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:49: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:50: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:51: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:52: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:53: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:54: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:55: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:56: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:57: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:58: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:59: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:60: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:61: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:62: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:64: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:65: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:66: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:67: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:68: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:69: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:70: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:72: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:73: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:74: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:75: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:77: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:78: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:79: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:80: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:81: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:82: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:83: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:84: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:85: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:86: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:87: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:88: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:89: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:90: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:91: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:92: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:93: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:94: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:237: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:238: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:239: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:240: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 90 compilation errors. No code generated. - - -Shader version: 450 -Requested GL_KHR_shader_subgroup_arithmetic -Requested GL_KHR_shader_subgroup_ballot -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_clustered -Requested GL_KHR_shader_subgroup_quad -Requested GL_KHR_shader_subgroup_shuffle -Requested GL_KHR_shader_subgroup_shuffle_relative -Requested GL_KHR_shader_subgroup_vote -Requested GL_NV_shader_sm_builtins -Requested GL_NV_shader_subgroup_partitioned -input primitive = isolines -vertex spacing = none -triangle order = none -ERROR: node is still EOpNull! -0:3 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float) -0:3 Function Parameters: -0:3 'f4' ( in 4-component vector of float) -0:? Sequence -0:6 'gl_SubgroupSize' ( in uint SubgroupSize) -0:7 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:8 subgroupBarrier ( global void) -0:9 subgroupMemoryBarrier ( global void) -0:10 subgroupMemoryBarrierBuffer ( global void) -0:11 subgroupMemoryBarrierImage ( global void) -0:12 subgroupElect ( global bool) -0:13 'gl_NumSubgroups' ( temp float) -0:14 'gl_SubgroupID' ( temp float) -0:15 Constant: -0:15 0.000000 -0:17 subgroupAll ( global bool) -0:17 Constant: -0:17 true (const bool) -0:18 subgroupAny ( global bool) -0:18 Constant: -0:18 false (const bool) -0:19 subgroupAllEqual ( global bool) -0:19 'f4' ( in 4-component vector of float) -0:21 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask) -0:22 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask) -0:23 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask) -0:24 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask) -0:25 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask) -0:26 subgroupBroadcast ( global 4-component vector of float) -0:26 'f4' ( in 4-component vector of float) -0:26 Constant: -0:26 0 (const uint) -0:27 subgroupBroadcastFirst ( global 4-component vector of float) -0:27 'f4' ( in 4-component vector of float) -0:28 Sequence -0:28 move second child to first child ( temp 4-component vector of uint) -0:28 'ballot' ( temp 4-component vector of uint) -0:28 subgroupBallot ( global 4-component vector of uint) -0:28 Constant: -0:28 false (const bool) -0:29 subgroupInverseBallot ( global bool) -0:29 Constant: -0:29 1 (const uint) -0:29 1 (const uint) -0:29 1 (const uint) -0:29 1 (const uint) -0:30 subgroupBallotBitExtract ( global bool) -0:30 'ballot' ( temp 4-component vector of uint) -0:30 Constant: -0:30 0 (const uint) -0:31 subgroupBallotBitCount ( global uint) -0:31 'ballot' ( temp 4-component vector of uint) -0:32 subgroupBallotInclusiveBitCount ( global uint) -0:32 'ballot' ( temp 4-component vector of uint) -0:33 subgroupBallotExclusiveBitCount ( global uint) -0:33 'ballot' ( temp 4-component vector of uint) -0:34 subgroupBallotFindLSB ( global uint) -0:34 'ballot' ( temp 4-component vector of uint) -0:35 subgroupBallotFindMSB ( global uint) -0:35 'ballot' ( temp 4-component vector of uint) -0:37 subgroupShuffle ( global 4-component vector of float) -0:37 'f4' ( in 4-component vector of float) -0:37 Constant: -0:37 0 (const uint) -0:38 subgroupShuffleXor ( global 4-component vector of float) -0:38 'f4' ( in 4-component vector of float) -0:38 Constant: -0:38 1 (const uint) -0:39 subgroupShuffleUp ( global 4-component vector of float) -0:39 'f4' ( in 4-component vector of float) -0:39 Constant: -0:39 1 (const uint) -0:40 subgroupShuffleDown ( global 4-component vector of float) -0:40 'f4' ( in 4-component vector of float) -0:40 Constant: -0:40 1 (const uint) -0:42 move second child to first child ( temp 4-component vector of float) -0:42 'result' ( temp 4-component vector of float) -0:42 subgroupAdd ( global 4-component vector of float) -0:42 'f4' ( in 4-component vector of float) -0:43 subgroupMul ( global 4-component vector of float) -0:43 'f4' ( in 4-component vector of float) -0:44 subgroupMin ( global 4-component vector of float) -0:44 'f4' ( in 4-component vector of float) -0:45 subgroupMax ( global 4-component vector of float) -0:45 'f4' ( in 4-component vector of float) -0:46 subgroupAnd ( global 4-component vector of uint) -0:46 'ballot' ( temp 4-component vector of uint) -0:47 subgroupOr ( global 4-component vector of uint) -0:47 'ballot' ( temp 4-component vector of uint) -0:48 subgroupXor ( global 4-component vector of uint) -0:48 'ballot' ( temp 4-component vector of uint) -0:49 subgroupInclusiveAdd ( global 4-component vector of float) -0:49 'f4' ( in 4-component vector of float) -0:50 subgroupInclusiveMul ( global 4-component vector of float) -0:50 'f4' ( in 4-component vector of float) -0:51 subgroupInclusiveMin ( global 4-component vector of float) -0:51 'f4' ( in 4-component vector of float) -0:52 subgroupInclusiveMax ( global 4-component vector of float) -0:52 'f4' ( in 4-component vector of float) -0:53 subgroupInclusiveAnd ( global 4-component vector of uint) -0:53 'ballot' ( temp 4-component vector of uint) -0:54 subgroupInclusiveOr ( global 4-component vector of uint) -0:54 'ballot' ( temp 4-component vector of uint) -0:55 subgroupInclusiveXor ( global 4-component vector of uint) -0:55 'ballot' ( temp 4-component vector of uint) -0:56 subgroupExclusiveAdd ( global 4-component vector of float) -0:56 'f4' ( in 4-component vector of float) -0:57 subgroupExclusiveMul ( global 4-component vector of float) -0:57 'f4' ( in 4-component vector of float) -0:58 subgroupExclusiveMin ( global 4-component vector of float) -0:58 'f4' ( in 4-component vector of float) -0:59 subgroupExclusiveMax ( global 4-component vector of float) -0:59 'f4' ( in 4-component vector of float) -0:60 subgroupExclusiveAnd ( global 4-component vector of uint) -0:60 'ballot' ( temp 4-component vector of uint) -0:61 subgroupExclusiveOr ( global 4-component vector of uint) -0:61 'ballot' ( temp 4-component vector of uint) -0:62 subgroupExclusiveXor ( global 4-component vector of uint) -0:62 'ballot' ( temp 4-component vector of uint) -0:64 subgroupClusteredAdd ( global 4-component vector of float) -0:64 'f4' ( in 4-component vector of float) -0:64 Constant: -0:64 2 (const uint) -0:65 subgroupClusteredMul ( global 4-component vector of float) -0:65 'f4' ( in 4-component vector of float) -0:65 Constant: -0:65 2 (const uint) -0:66 subgroupClusteredMin ( global 4-component vector of float) -0:66 'f4' ( in 4-component vector of float) -0:66 Constant: -0:66 2 (const uint) -0:67 subgroupClusteredMax ( global 4-component vector of float) -0:67 'f4' ( in 4-component vector of float) -0:67 Constant: -0:67 2 (const uint) -0:68 subgroupClusteredAnd ( global 4-component vector of uint) -0:68 'ballot' ( temp 4-component vector of uint) -0:68 Constant: -0:68 2 (const uint) -0:69 subgroupClusteredOr ( global 4-component vector of uint) -0:69 'ballot' ( temp 4-component vector of uint) -0:69 Constant: -0:69 2 (const uint) -0:70 subgroupClusteredXor ( global 4-component vector of uint) -0:70 'ballot' ( temp 4-component vector of uint) -0:70 Constant: -0:70 2 (const uint) -0:72 subgroupQuadBroadcast ( global 4-component vector of float) -0:72 'f4' ( in 4-component vector of float) -0:72 Constant: -0:72 0 (const uint) -0:73 subgroupQuadSwapHorizontal ( global 4-component vector of float) -0:73 'f4' ( in 4-component vector of float) -0:74 subgroupQuadSwapVertical ( global 4-component vector of float) -0:74 'f4' ( in 4-component vector of float) -0:75 subgroupQuadSwapDiagonal ( global 4-component vector of float) -0:75 'f4' ( in 4-component vector of float) -0:77 Sequence -0:77 move second child to first child ( temp 4-component vector of uint) -0:77 'parti' ( temp 4-component vector of uint) -0:77 subgroupPartitionNV ( global 4-component vector of uint) -0:77 'f4' ( in 4-component vector of float) -0:78 subgroupPartitionedAddNV ( global 4-component vector of float) -0:78 'f4' ( in 4-component vector of float) -0:78 'parti' ( temp 4-component vector of uint) -0:79 subgroupPartitionedMulNV ( global 4-component vector of float) -0:79 'f4' ( in 4-component vector of float) -0:79 'parti' ( temp 4-component vector of uint) -0:80 subgroupPartitionedMinNV ( global 4-component vector of float) -0:80 'f4' ( in 4-component vector of float) -0:80 'parti' ( temp 4-component vector of uint) -0:81 subgroupPartitionedMaxNV ( global 4-component vector of float) -0:81 'f4' ( in 4-component vector of float) -0:81 'parti' ( temp 4-component vector of uint) -0:82 subgroupPartitionedAndNV ( global 4-component vector of uint) -0:82 'ballot' ( temp 4-component vector of uint) -0:82 'parti' ( temp 4-component vector of uint) -0:83 subgroupPartitionedOrNV ( global 4-component vector of uint) -0:83 'ballot' ( temp 4-component vector of uint) -0:83 'parti' ( temp 4-component vector of uint) -0:84 subgroupPartitionedXorNV ( global 4-component vector of uint) -0:84 'ballot' ( temp 4-component vector of uint) -0:84 'parti' ( temp 4-component vector of uint) -0:85 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float) -0:85 'f4' ( in 4-component vector of float) -0:85 'parti' ( temp 4-component vector of uint) -0:86 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float) -0:86 'f4' ( in 4-component vector of float) -0:86 'parti' ( temp 4-component vector of uint) -0:87 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float) -0:87 'f4' ( in 4-component vector of float) -0:87 'parti' ( temp 4-component vector of uint) -0:88 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float) -0:88 'f4' ( in 4-component vector of float) -0:88 'parti' ( temp 4-component vector of uint) -0:89 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint) -0:89 'ballot' ( temp 4-component vector of uint) -0:89 'parti' ( temp 4-component vector of uint) -0:90 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint) -0:90 'ballot' ( temp 4-component vector of uint) -0:90 'parti' ( temp 4-component vector of uint) -0:91 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint) -0:91 'ballot' ( temp 4-component vector of uint) -0:91 'parti' ( temp 4-component vector of uint) -0:92 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float) -0:92 'f4' ( in 4-component vector of float) -0:92 'parti' ( temp 4-component vector of uint) -0:93 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float) -0:93 'f4' ( in 4-component vector of float) -0:93 'parti' ( temp 4-component vector of uint) -0:94 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float) -0:94 'f4' ( in 4-component vector of float) -0:94 'parti' ( temp 4-component vector of uint) -0:95 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float) -0:95 'f4' ( in 4-component vector of float) -0:95 'parti' ( temp 4-component vector of uint) -0:96 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint) -0:96 'ballot' ( temp 4-component vector of uint) -0:96 'parti' ( temp 4-component vector of uint) -0:97 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint) -0:97 'ballot' ( temp 4-component vector of uint) -0:97 'parti' ( temp 4-component vector of uint) -0:98 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint) -0:98 'ballot' ( temp 4-component vector of uint) -0:98 'parti' ( temp 4-component vector of uint) -0:100 Branch: Return with expression -0:100 'result' ( temp 4-component vector of float) -0:110 Function Definition: main( ( global void) -0:110 Function Parameters: -0:112 Sequence -0:112 move second child to first child ( temp 4-component vector of uint) -0:112 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint) -0:112 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint) -0:112 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result}) -0:112 Constant: -0:112 0 (const uint) -0:112 'gl_PrimitiveID' ( in int PrimitiveID) -0:112 Construct uvec4 ( temp 4-component vector of uint) -0:112 'gl_SubgroupSize' ( in uint SubgroupSize) -0:112 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:112 Constant: -0:112 0 (const uint) -0:112 Constant: -0:112 0 (const uint) -0:113 subgroupBarrier ( global void) -0:114 subgroupMemoryBarrier ( global void) -0:115 subgroupMemoryBarrierBuffer ( global void) -0:116 subgroupMemoryBarrierImage ( global void) -0:117 subgroupElect ( global bool) -0:121 Function Definition: ballot_works(vf4; ( global void) -0:121 Function Parameters: -0:121 'f4' ( in 4-component vector of float) -0:122 Sequence -0:122 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask) -0:123 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask) -0:124 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask) -0:125 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask) -0:126 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask) -0:127 subgroupBroadcast ( global 4-component vector of float) -0:127 'f4' ( in 4-component vector of float) -0:127 Constant: -0:127 0 (const uint) -0:128 subgroupBroadcastFirst ( global 4-component vector of float) -0:128 'f4' ( in 4-component vector of float) -0:129 Sequence -0:129 move second child to first child ( temp 4-component vector of uint) -0:129 'ballot' ( temp 4-component vector of uint) -0:129 subgroupBallot ( global 4-component vector of uint) -0:129 Constant: -0:129 false (const bool) -0:130 subgroupInverseBallot ( global bool) -0:130 Constant: -0:130 1 (const uint) -0:130 1 (const uint) -0:130 1 (const uint) -0:130 1 (const uint) -0:131 subgroupBallotBitExtract ( global bool) -0:131 'ballot' ( temp 4-component vector of uint) -0:131 Constant: -0:131 0 (const uint) -0:132 subgroupBallotBitCount ( global uint) -0:132 'ballot' ( temp 4-component vector of uint) -0:133 subgroupBallotInclusiveBitCount ( global uint) -0:133 'ballot' ( temp 4-component vector of uint) -0:134 subgroupBallotExclusiveBitCount ( global uint) -0:134 'ballot' ( temp 4-component vector of uint) -0:135 subgroupBallotFindLSB ( global uint) -0:135 'ballot' ( temp 4-component vector of uint) -0:136 subgroupBallotFindMSB ( global uint) -0:136 'ballot' ( temp 4-component vector of uint) -0:140 Function Definition: vote_works(vf4; ( global void) -0:140 Function Parameters: -0:140 'f4' ( in 4-component vector of float) -0:142 Sequence -0:142 subgroupAll ( global bool) -0:142 Constant: -0:142 true (const bool) -0:143 subgroupAny ( global bool) -0:143 Constant: -0:143 false (const bool) -0:144 subgroupAllEqual ( global bool) -0:144 'f4' ( in 4-component vector of float) -0:149 Function Definition: shuffle_works(vf4; ( global void) -0:149 Function Parameters: -0:149 'f4' ( in 4-component vector of float) -0:151 Sequence -0:151 subgroupShuffle ( global 4-component vector of float) -0:151 'f4' ( in 4-component vector of float) -0:151 Constant: -0:151 0 (const uint) -0:152 subgroupShuffleXor ( global 4-component vector of float) -0:152 'f4' ( in 4-component vector of float) -0:152 Constant: -0:152 1 (const uint) -0:153 subgroupShuffleUp ( global 4-component vector of float) -0:153 'f4' ( in 4-component vector of float) -0:153 Constant: -0:153 1 (const uint) -0:154 subgroupShuffleDown ( global 4-component vector of float) -0:154 'f4' ( in 4-component vector of float) -0:154 Constant: -0:154 1 (const uint) -0:158 Function Definition: arith_works(vf4; ( global void) -0:158 Function Parameters: -0:158 'f4' ( in 4-component vector of float) -0:? Sequence -0:161 subgroupAdd ( global 4-component vector of float) -0:161 'f4' ( in 4-component vector of float) -0:162 subgroupMul ( global 4-component vector of float) -0:162 'f4' ( in 4-component vector of float) -0:163 subgroupMin ( global 4-component vector of float) -0:163 'f4' ( in 4-component vector of float) -0:164 subgroupMax ( global 4-component vector of float) -0:164 'f4' ( in 4-component vector of float) -0:165 subgroupAnd ( global 4-component vector of uint) -0:165 'ballot' ( temp 4-component vector of uint) -0:166 subgroupOr ( global 4-component vector of uint) -0:166 'ballot' ( temp 4-component vector of uint) -0:167 subgroupXor ( global 4-component vector of uint) -0:167 'ballot' ( temp 4-component vector of uint) -0:168 subgroupInclusiveAdd ( global 4-component vector of float) -0:168 'f4' ( in 4-component vector of float) -0:169 subgroupInclusiveMul ( global 4-component vector of float) -0:169 'f4' ( in 4-component vector of float) -0:170 subgroupInclusiveMin ( global 4-component vector of float) -0:170 'f4' ( in 4-component vector of float) -0:171 subgroupInclusiveMax ( global 4-component vector of float) -0:171 'f4' ( in 4-component vector of float) -0:172 subgroupInclusiveAnd ( global 4-component vector of uint) -0:172 'ballot' ( temp 4-component vector of uint) -0:173 subgroupInclusiveOr ( global 4-component vector of uint) -0:173 'ballot' ( temp 4-component vector of uint) -0:174 subgroupInclusiveXor ( global 4-component vector of uint) -0:174 'ballot' ( temp 4-component vector of uint) -0:175 subgroupExclusiveAdd ( global 4-component vector of float) -0:175 'f4' ( in 4-component vector of float) -0:176 subgroupExclusiveMul ( global 4-component vector of float) -0:176 'f4' ( in 4-component vector of float) -0:177 subgroupExclusiveMin ( global 4-component vector of float) -0:177 'f4' ( in 4-component vector of float) -0:178 subgroupExclusiveMax ( global 4-component vector of float) -0:178 'f4' ( in 4-component vector of float) -0:179 subgroupExclusiveAnd ( global 4-component vector of uint) -0:179 'ballot' ( temp 4-component vector of uint) -0:180 subgroupExclusiveOr ( global 4-component vector of uint) -0:180 'ballot' ( temp 4-component vector of uint) -0:181 subgroupExclusiveXor ( global 4-component vector of uint) -0:181 'ballot' ( temp 4-component vector of uint) -0:185 Function Definition: clustered_works(vf4; ( global void) -0:185 Function Parameters: -0:185 'f4' ( in 4-component vector of float) -0:187 Sequence -0:187 Sequence -0:187 move second child to first child ( temp 4-component vector of uint) -0:187 'ballot' ( temp 4-component vector of uint) -0:187 Constant: -0:187 85 (const uint) -0:187 0 (const uint) -0:187 0 (const uint) -0:187 0 (const uint) -0:188 subgroupClusteredAdd ( global 4-component vector of float) -0:188 'f4' ( in 4-component vector of float) -0:188 Constant: -0:188 2 (const uint) -0:189 subgroupClusteredMul ( global 4-component vector of float) -0:189 'f4' ( in 4-component vector of float) -0:189 Constant: -0:189 2 (const uint) -0:190 subgroupClusteredMin ( global 4-component vector of float) -0:190 'f4' ( in 4-component vector of float) -0:190 Constant: -0:190 2 (const uint) -0:191 subgroupClusteredMax ( global 4-component vector of float) -0:191 'f4' ( in 4-component vector of float) -0:191 Constant: -0:191 2 (const uint) -0:192 subgroupClusteredAnd ( global 4-component vector of uint) -0:192 'ballot' ( temp 4-component vector of uint) -0:192 Constant: -0:192 2 (const uint) -0:193 subgroupClusteredOr ( global 4-component vector of uint) -0:193 'ballot' ( temp 4-component vector of uint) -0:193 Constant: -0:193 2 (const uint) -0:194 subgroupClusteredXor ( global 4-component vector of uint) -0:194 'ballot' ( temp 4-component vector of uint) -0:194 Constant: -0:194 2 (const uint) -0:198 Function Definition: quad_works(vf4; ( global void) -0:198 Function Parameters: -0:198 'f4' ( in 4-component vector of float) -0:200 Sequence -0:200 subgroupQuadBroadcast ( global 4-component vector of float) -0:200 'f4' ( in 4-component vector of float) -0:200 Constant: -0:200 0 (const uint) -0:201 subgroupQuadSwapHorizontal ( global 4-component vector of float) -0:201 'f4' ( in 4-component vector of float) -0:202 subgroupQuadSwapVertical ( global 4-component vector of float) -0:202 'f4' ( in 4-component vector of float) -0:203 subgroupQuadSwapDiagonal ( global 4-component vector of float) -0:203 'f4' ( in 4-component vector of float) -0:207 Function Definition: partitioned_works(vf4; ( global void) -0:207 Function Parameters: -0:207 'f4' ( in 4-component vector of float) -0:209 Sequence -0:209 Sequence -0:209 move second child to first child ( temp 4-component vector of uint) -0:209 'parti' ( temp 4-component vector of uint) -0:209 subgroupPartitionNV ( global 4-component vector of uint) -0:209 'f4' ( in 4-component vector of float) -0:210 Sequence -0:210 move second child to first child ( temp 4-component vector of uint) -0:210 'ballot' ( temp 4-component vector of uint) -0:210 Constant: -0:210 85 (const uint) -0:210 0 (const uint) -0:210 0 (const uint) -0:210 0 (const uint) -0:211 subgroupPartitionedAddNV ( global 4-component vector of float) -0:211 'f4' ( in 4-component vector of float) -0:211 'parti' ( temp 4-component vector of uint) -0:212 subgroupPartitionedMulNV ( global 4-component vector of float) -0:212 'f4' ( in 4-component vector of float) -0:212 'parti' ( temp 4-component vector of uint) -0:213 subgroupPartitionedMinNV ( global 4-component vector of float) -0:213 'f4' ( in 4-component vector of float) -0:213 'parti' ( temp 4-component vector of uint) -0:214 subgroupPartitionedMaxNV ( global 4-component vector of float) -0:214 'f4' ( in 4-component vector of float) -0:214 'parti' ( temp 4-component vector of uint) -0:215 subgroupPartitionedAndNV ( global 4-component vector of uint) -0:215 'ballot' ( temp 4-component vector of uint) -0:215 'parti' ( temp 4-component vector of uint) -0:216 subgroupPartitionedOrNV ( global 4-component vector of uint) -0:216 'ballot' ( temp 4-component vector of uint) -0:216 'parti' ( temp 4-component vector of uint) -0:217 subgroupPartitionedXorNV ( global 4-component vector of uint) -0:217 'ballot' ( temp 4-component vector of uint) -0:217 'parti' ( temp 4-component vector of uint) -0:218 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float) -0:218 'f4' ( in 4-component vector of float) -0:218 'parti' ( temp 4-component vector of uint) -0:219 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float) -0:219 'f4' ( in 4-component vector of float) -0:219 'parti' ( temp 4-component vector of uint) -0:220 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float) -0:220 'f4' ( in 4-component vector of float) -0:220 'parti' ( temp 4-component vector of uint) -0:221 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float) -0:221 'f4' ( in 4-component vector of float) -0:221 'parti' ( temp 4-component vector of uint) -0:222 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint) -0:222 'ballot' ( temp 4-component vector of uint) -0:222 'parti' ( temp 4-component vector of uint) -0:223 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint) -0:223 'ballot' ( temp 4-component vector of uint) -0:223 'parti' ( temp 4-component vector of uint) -0:224 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint) -0:224 'ballot' ( temp 4-component vector of uint) -0:224 'parti' ( temp 4-component vector of uint) -0:225 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float) -0:225 'f4' ( in 4-component vector of float) -0:225 'parti' ( temp 4-component vector of uint) -0:226 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float) -0:226 'f4' ( in 4-component vector of float) -0:226 'parti' ( temp 4-component vector of uint) -0:227 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float) -0:227 'f4' ( in 4-component vector of float) -0:227 'parti' ( temp 4-component vector of uint) -0:228 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float) -0:228 'f4' ( in 4-component vector of float) -0:228 'parti' ( temp 4-component vector of uint) -0:229 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint) -0:229 'ballot' ( temp 4-component vector of uint) -0:229 'parti' ( temp 4-component vector of uint) -0:230 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint) -0:230 'ballot' ( temp 4-component vector of uint) -0:230 'parti' ( temp 4-component vector of uint) -0:231 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint) -0:231 'ballot' ( temp 4-component vector of uint) -0:231 'parti' ( temp 4-component vector of uint) -0:235 Function Definition: sm_builtins_err( ( global void) -0:235 Function Parameters: -0:237 Sequence -0:237 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV) -0:238 'gl_SMCountNV' ( in uint SMCountNV) -0:239 'gl_WarpIDNV' ( in uint WarpIDNV) -0:240 'gl_SMIDNV' ( in uint SMIDNV) -0:247 Function Definition: sm_builtins( ( global void) -0:247 Function Parameters: -0:249 Sequence -0:249 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV) -0:250 'gl_SMCountNV' ( in uint SMCountNV) -0:251 'gl_WarpIDNV' ( in uint WarpIDNV) -0:252 'gl_SMIDNV' ( in uint SMIDNV) -0:? Linker Objects -0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result}) - - -Linked tessellation evaluation stage: - - -Shader version: 450 -Requested GL_KHR_shader_subgroup_arithmetic -Requested GL_KHR_shader_subgroup_ballot -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_clustered -Requested GL_KHR_shader_subgroup_quad -Requested GL_KHR_shader_subgroup_shuffle -Requested GL_KHR_shader_subgroup_shuffle_relative -Requested GL_KHR_shader_subgroup_vote -Requested GL_NV_shader_sm_builtins -Requested GL_NV_shader_subgroup_partitioned -input primitive = isolines -vertex spacing = equal_spacing -triangle order = ccw -ERROR: node is still EOpNull! -0:110 Function Definition: main( ( global void) -0:110 Function Parameters: -0:112 Sequence -0:112 move second child to first child ( temp 4-component vector of uint) -0:112 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint) -0:112 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint) -0:112 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result}) -0:112 Constant: -0:112 0 (const uint) -0:112 'gl_PrimitiveID' ( in int PrimitiveID) -0:112 Construct uvec4 ( temp 4-component vector of uint) -0:112 'gl_SubgroupSize' ( in uint SubgroupSize) -0:112 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:112 Constant: -0:112 0 (const uint) -0:112 Constant: -0:112 0 (const uint) -0:113 subgroupBarrier ( global void) -0:114 subgroupMemoryBarrier ( global void) -0:115 subgroupMemoryBarrierBuffer ( global void) -0:116 subgroupMemoryBarrierImage ( global void) -0:117 subgroupElect ( global bool) -0:? Linker Objects -0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result}) - diff --git a/deps/glslang/Test/baseResults/glsl.450.subgroup.vert.out b/deps/glslang/Test/baseResults/glsl.450.subgroup.vert.out deleted file mode 100644 index 8850bf4f..00000000 --- a/deps/glslang/Test/baseResults/glsl.450.subgroup.vert.out +++ /dev/null @@ -1,671 +0,0 @@ -glsl.450.subgroup.vert -ERROR: 0:6: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:7: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:8: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:9: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:10: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:11: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:12: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:13: 'gl_NumSubgroups' : undeclared identifier -ERROR: 0:14: 'gl_SubgroupID' : undeclared identifier -ERROR: 0:15: 'subgroupMemoryBarrierShared' : no matching overloaded function found -ERROR: 0:17: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:18: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:19: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:21: 'gl_SubgroupEqMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:22: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:23: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:24: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:25: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:26: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:27: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:28: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:29: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:30: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:31: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:32: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:33: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:34: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:35: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:37: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle -ERROR: 0:38: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle -ERROR: 0:39: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative -ERROR: 0:40: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative -ERROR: 0:42: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:43: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:44: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:45: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:46: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:47: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:48: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:49: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:50: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:51: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:52: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:53: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:54: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:55: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:56: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:57: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:58: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:59: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:60: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:61: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:62: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:64: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:65: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:66: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:67: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:68: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:69: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:70: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:72: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:73: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:74: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:75: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:77: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:78: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:79: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:80: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:81: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:82: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:83: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:84: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:85: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:86: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:87: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:88: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:89: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:90: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:91: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:92: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:93: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:94: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:236: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:237: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:238: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:239: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 90 compilation errors. No code generated. - - -Shader version: 450 -Requested GL_KHR_shader_subgroup_arithmetic -Requested GL_KHR_shader_subgroup_ballot -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_clustered -Requested GL_KHR_shader_subgroup_quad -Requested GL_KHR_shader_subgroup_shuffle -Requested GL_KHR_shader_subgroup_shuffle_relative -Requested GL_KHR_shader_subgroup_vote -Requested GL_NV_shader_sm_builtins -Requested GL_NV_shader_subgroup_partitioned -ERROR: node is still EOpNull! -0:3 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float) -0:3 Function Parameters: -0:3 'f4' ( in 4-component vector of float) -0:? Sequence -0:6 'gl_SubgroupSize' ( in uint SubgroupSize) -0:7 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:8 subgroupBarrier ( global void) -0:9 subgroupMemoryBarrier ( global void) -0:10 subgroupMemoryBarrierBuffer ( global void) -0:11 subgroupMemoryBarrierImage ( global void) -0:12 subgroupElect ( global bool) -0:13 'gl_NumSubgroups' ( temp float) -0:14 'gl_SubgroupID' ( temp float) -0:15 Constant: -0:15 0.000000 -0:17 subgroupAll ( global bool) -0:17 Constant: -0:17 true (const bool) -0:18 subgroupAny ( global bool) -0:18 Constant: -0:18 false (const bool) -0:19 subgroupAllEqual ( global bool) -0:19 'f4' ( in 4-component vector of float) -0:21 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask) -0:22 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask) -0:23 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask) -0:24 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask) -0:25 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask) -0:26 subgroupBroadcast ( global 4-component vector of float) -0:26 'f4' ( in 4-component vector of float) -0:26 Constant: -0:26 0 (const uint) -0:27 subgroupBroadcastFirst ( global 4-component vector of float) -0:27 'f4' ( in 4-component vector of float) -0:28 Sequence -0:28 move second child to first child ( temp 4-component vector of uint) -0:28 'ballot' ( temp 4-component vector of uint) -0:28 subgroupBallot ( global 4-component vector of uint) -0:28 Constant: -0:28 false (const bool) -0:29 subgroupInverseBallot ( global bool) -0:29 Constant: -0:29 1 (const uint) -0:29 1 (const uint) -0:29 1 (const uint) -0:29 1 (const uint) -0:30 subgroupBallotBitExtract ( global bool) -0:30 'ballot' ( temp 4-component vector of uint) -0:30 Constant: -0:30 0 (const uint) -0:31 subgroupBallotBitCount ( global uint) -0:31 'ballot' ( temp 4-component vector of uint) -0:32 subgroupBallotInclusiveBitCount ( global uint) -0:32 'ballot' ( temp 4-component vector of uint) -0:33 subgroupBallotExclusiveBitCount ( global uint) -0:33 'ballot' ( temp 4-component vector of uint) -0:34 subgroupBallotFindLSB ( global uint) -0:34 'ballot' ( temp 4-component vector of uint) -0:35 subgroupBallotFindMSB ( global uint) -0:35 'ballot' ( temp 4-component vector of uint) -0:37 subgroupShuffle ( global 4-component vector of float) -0:37 'f4' ( in 4-component vector of float) -0:37 Constant: -0:37 0 (const uint) -0:38 subgroupShuffleXor ( global 4-component vector of float) -0:38 'f4' ( in 4-component vector of float) -0:38 Constant: -0:38 1 (const uint) -0:39 subgroupShuffleUp ( global 4-component vector of float) -0:39 'f4' ( in 4-component vector of float) -0:39 Constant: -0:39 1 (const uint) -0:40 subgroupShuffleDown ( global 4-component vector of float) -0:40 'f4' ( in 4-component vector of float) -0:40 Constant: -0:40 1 (const uint) -0:42 move second child to first child ( temp 4-component vector of float) -0:42 'result' ( temp 4-component vector of float) -0:42 subgroupAdd ( global 4-component vector of float) -0:42 'f4' ( in 4-component vector of float) -0:43 subgroupMul ( global 4-component vector of float) -0:43 'f4' ( in 4-component vector of float) -0:44 subgroupMin ( global 4-component vector of float) -0:44 'f4' ( in 4-component vector of float) -0:45 subgroupMax ( global 4-component vector of float) -0:45 'f4' ( in 4-component vector of float) -0:46 subgroupAnd ( global 4-component vector of uint) -0:46 'ballot' ( temp 4-component vector of uint) -0:47 subgroupOr ( global 4-component vector of uint) -0:47 'ballot' ( temp 4-component vector of uint) -0:48 subgroupXor ( global 4-component vector of uint) -0:48 'ballot' ( temp 4-component vector of uint) -0:49 subgroupInclusiveAdd ( global 4-component vector of float) -0:49 'f4' ( in 4-component vector of float) -0:50 subgroupInclusiveMul ( global 4-component vector of float) -0:50 'f4' ( in 4-component vector of float) -0:51 subgroupInclusiveMin ( global 4-component vector of float) -0:51 'f4' ( in 4-component vector of float) -0:52 subgroupInclusiveMax ( global 4-component vector of float) -0:52 'f4' ( in 4-component vector of float) -0:53 subgroupInclusiveAnd ( global 4-component vector of uint) -0:53 'ballot' ( temp 4-component vector of uint) -0:54 subgroupInclusiveOr ( global 4-component vector of uint) -0:54 'ballot' ( temp 4-component vector of uint) -0:55 subgroupInclusiveXor ( global 4-component vector of uint) -0:55 'ballot' ( temp 4-component vector of uint) -0:56 subgroupExclusiveAdd ( global 4-component vector of float) -0:56 'f4' ( in 4-component vector of float) -0:57 subgroupExclusiveMul ( global 4-component vector of float) -0:57 'f4' ( in 4-component vector of float) -0:58 subgroupExclusiveMin ( global 4-component vector of float) -0:58 'f4' ( in 4-component vector of float) -0:59 subgroupExclusiveMax ( global 4-component vector of float) -0:59 'f4' ( in 4-component vector of float) -0:60 subgroupExclusiveAnd ( global 4-component vector of uint) -0:60 'ballot' ( temp 4-component vector of uint) -0:61 subgroupExclusiveOr ( global 4-component vector of uint) -0:61 'ballot' ( temp 4-component vector of uint) -0:62 subgroupExclusiveXor ( global 4-component vector of uint) -0:62 'ballot' ( temp 4-component vector of uint) -0:64 subgroupClusteredAdd ( global 4-component vector of float) -0:64 'f4' ( in 4-component vector of float) -0:64 Constant: -0:64 2 (const uint) -0:65 subgroupClusteredMul ( global 4-component vector of float) -0:65 'f4' ( in 4-component vector of float) -0:65 Constant: -0:65 2 (const uint) -0:66 subgroupClusteredMin ( global 4-component vector of float) -0:66 'f4' ( in 4-component vector of float) -0:66 Constant: -0:66 2 (const uint) -0:67 subgroupClusteredMax ( global 4-component vector of float) -0:67 'f4' ( in 4-component vector of float) -0:67 Constant: -0:67 2 (const uint) -0:68 subgroupClusteredAnd ( global 4-component vector of uint) -0:68 'ballot' ( temp 4-component vector of uint) -0:68 Constant: -0:68 2 (const uint) -0:69 subgroupClusteredOr ( global 4-component vector of uint) -0:69 'ballot' ( temp 4-component vector of uint) -0:69 Constant: -0:69 2 (const uint) -0:70 subgroupClusteredXor ( global 4-component vector of uint) -0:70 'ballot' ( temp 4-component vector of uint) -0:70 Constant: -0:70 2 (const uint) -0:72 subgroupQuadBroadcast ( global 4-component vector of float) -0:72 'f4' ( in 4-component vector of float) -0:72 Constant: -0:72 0 (const uint) -0:73 subgroupQuadSwapHorizontal ( global 4-component vector of float) -0:73 'f4' ( in 4-component vector of float) -0:74 subgroupQuadSwapVertical ( global 4-component vector of float) -0:74 'f4' ( in 4-component vector of float) -0:75 subgroupQuadSwapDiagonal ( global 4-component vector of float) -0:75 'f4' ( in 4-component vector of float) -0:77 Sequence -0:77 move second child to first child ( temp 4-component vector of uint) -0:77 'parti' ( temp 4-component vector of uint) -0:77 subgroupPartitionNV ( global 4-component vector of uint) -0:77 'f4' ( in 4-component vector of float) -0:78 subgroupPartitionedAddNV ( global 4-component vector of float) -0:78 'f4' ( in 4-component vector of float) -0:78 'parti' ( temp 4-component vector of uint) -0:79 subgroupPartitionedMulNV ( global 4-component vector of float) -0:79 'f4' ( in 4-component vector of float) -0:79 'parti' ( temp 4-component vector of uint) -0:80 subgroupPartitionedMinNV ( global 4-component vector of float) -0:80 'f4' ( in 4-component vector of float) -0:80 'parti' ( temp 4-component vector of uint) -0:81 subgroupPartitionedMaxNV ( global 4-component vector of float) -0:81 'f4' ( in 4-component vector of float) -0:81 'parti' ( temp 4-component vector of uint) -0:82 subgroupPartitionedAndNV ( global 4-component vector of uint) -0:82 'ballot' ( temp 4-component vector of uint) -0:82 'parti' ( temp 4-component vector of uint) -0:83 subgroupPartitionedOrNV ( global 4-component vector of uint) -0:83 'ballot' ( temp 4-component vector of uint) -0:83 'parti' ( temp 4-component vector of uint) -0:84 subgroupPartitionedXorNV ( global 4-component vector of uint) -0:84 'ballot' ( temp 4-component vector of uint) -0:84 'parti' ( temp 4-component vector of uint) -0:85 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float) -0:85 'f4' ( in 4-component vector of float) -0:85 'parti' ( temp 4-component vector of uint) -0:86 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float) -0:86 'f4' ( in 4-component vector of float) -0:86 'parti' ( temp 4-component vector of uint) -0:87 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float) -0:87 'f4' ( in 4-component vector of float) -0:87 'parti' ( temp 4-component vector of uint) -0:88 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float) -0:88 'f4' ( in 4-component vector of float) -0:88 'parti' ( temp 4-component vector of uint) -0:89 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint) -0:89 'ballot' ( temp 4-component vector of uint) -0:89 'parti' ( temp 4-component vector of uint) -0:90 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint) -0:90 'ballot' ( temp 4-component vector of uint) -0:90 'parti' ( temp 4-component vector of uint) -0:91 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint) -0:91 'ballot' ( temp 4-component vector of uint) -0:91 'parti' ( temp 4-component vector of uint) -0:92 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float) -0:92 'f4' ( in 4-component vector of float) -0:92 'parti' ( temp 4-component vector of uint) -0:93 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float) -0:93 'f4' ( in 4-component vector of float) -0:93 'parti' ( temp 4-component vector of uint) -0:94 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float) -0:94 'f4' ( in 4-component vector of float) -0:94 'parti' ( temp 4-component vector of uint) -0:95 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float) -0:95 'f4' ( in 4-component vector of float) -0:95 'parti' ( temp 4-component vector of uint) -0:96 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint) -0:96 'ballot' ( temp 4-component vector of uint) -0:96 'parti' ( temp 4-component vector of uint) -0:97 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint) -0:97 'ballot' ( temp 4-component vector of uint) -0:97 'parti' ( temp 4-component vector of uint) -0:98 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint) -0:98 'ballot' ( temp 4-component vector of uint) -0:98 'parti' ( temp 4-component vector of uint) -0:100 Branch: Return with expression -0:100 'result' ( temp 4-component vector of float) -0:109 Function Definition: main( ( global void) -0:109 Function Parameters: -0:111 Sequence -0:111 move second child to first child ( temp 4-component vector of uint) -0:111 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint) -0:111 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint) -0:111 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result}) -0:111 Constant: -0:111 0 (const uint) -0:111 'gl_VertexID' ( gl_VertexId int VertexId) -0:111 Construct uvec4 ( temp 4-component vector of uint) -0:111 'gl_SubgroupSize' ( in uint SubgroupSize) -0:111 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:111 Constant: -0:111 0 (const uint) -0:111 Constant: -0:111 0 (const uint) -0:112 subgroupBarrier ( global void) -0:113 subgroupMemoryBarrier ( global void) -0:114 subgroupMemoryBarrierBuffer ( global void) -0:115 subgroupMemoryBarrierImage ( global void) -0:116 subgroupElect ( global bool) -0:120 Function Definition: ballot_works(vf4; ( global void) -0:120 Function Parameters: -0:120 'f4' ( in 4-component vector of float) -0:121 Sequence -0:121 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask) -0:122 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask) -0:123 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask) -0:124 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask) -0:125 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask) -0:126 subgroupBroadcast ( global 4-component vector of float) -0:126 'f4' ( in 4-component vector of float) -0:126 Constant: -0:126 0 (const uint) -0:127 subgroupBroadcastFirst ( global 4-component vector of float) -0:127 'f4' ( in 4-component vector of float) -0:128 Sequence -0:128 move second child to first child ( temp 4-component vector of uint) -0:128 'ballot' ( temp 4-component vector of uint) -0:128 subgroupBallot ( global 4-component vector of uint) -0:128 Constant: -0:128 false (const bool) -0:129 subgroupInverseBallot ( global bool) -0:129 Constant: -0:129 1 (const uint) -0:129 1 (const uint) -0:129 1 (const uint) -0:129 1 (const uint) -0:130 subgroupBallotBitExtract ( global bool) -0:130 'ballot' ( temp 4-component vector of uint) -0:130 Constant: -0:130 0 (const uint) -0:131 subgroupBallotBitCount ( global uint) -0:131 'ballot' ( temp 4-component vector of uint) -0:132 subgroupBallotInclusiveBitCount ( global uint) -0:132 'ballot' ( temp 4-component vector of uint) -0:133 subgroupBallotExclusiveBitCount ( global uint) -0:133 'ballot' ( temp 4-component vector of uint) -0:134 subgroupBallotFindLSB ( global uint) -0:134 'ballot' ( temp 4-component vector of uint) -0:135 subgroupBallotFindMSB ( global uint) -0:135 'ballot' ( temp 4-component vector of uint) -0:139 Function Definition: vote_works(vf4; ( global void) -0:139 Function Parameters: -0:139 'f4' ( in 4-component vector of float) -0:141 Sequence -0:141 subgroupAll ( global bool) -0:141 Constant: -0:141 true (const bool) -0:142 subgroupAny ( global bool) -0:142 Constant: -0:142 false (const bool) -0:143 subgroupAllEqual ( global bool) -0:143 'f4' ( in 4-component vector of float) -0:148 Function Definition: shuffle_works(vf4; ( global void) -0:148 Function Parameters: -0:148 'f4' ( in 4-component vector of float) -0:150 Sequence -0:150 subgroupShuffle ( global 4-component vector of float) -0:150 'f4' ( in 4-component vector of float) -0:150 Constant: -0:150 0 (const uint) -0:151 subgroupShuffleXor ( global 4-component vector of float) -0:151 'f4' ( in 4-component vector of float) -0:151 Constant: -0:151 1 (const uint) -0:152 subgroupShuffleUp ( global 4-component vector of float) -0:152 'f4' ( in 4-component vector of float) -0:152 Constant: -0:152 1 (const uint) -0:153 subgroupShuffleDown ( global 4-component vector of float) -0:153 'f4' ( in 4-component vector of float) -0:153 Constant: -0:153 1 (const uint) -0:157 Function Definition: arith_works(vf4; ( global void) -0:157 Function Parameters: -0:157 'f4' ( in 4-component vector of float) -0:? Sequence -0:160 subgroupAdd ( global 4-component vector of float) -0:160 'f4' ( in 4-component vector of float) -0:161 subgroupMul ( global 4-component vector of float) -0:161 'f4' ( in 4-component vector of float) -0:162 subgroupMin ( global 4-component vector of float) -0:162 'f4' ( in 4-component vector of float) -0:163 subgroupMax ( global 4-component vector of float) -0:163 'f4' ( in 4-component vector of float) -0:164 subgroupAnd ( global 4-component vector of uint) -0:164 'ballot' ( temp 4-component vector of uint) -0:165 subgroupOr ( global 4-component vector of uint) -0:165 'ballot' ( temp 4-component vector of uint) -0:166 subgroupXor ( global 4-component vector of uint) -0:166 'ballot' ( temp 4-component vector of uint) -0:167 subgroupInclusiveAdd ( global 4-component vector of float) -0:167 'f4' ( in 4-component vector of float) -0:168 subgroupInclusiveMul ( global 4-component vector of float) -0:168 'f4' ( in 4-component vector of float) -0:169 subgroupInclusiveMin ( global 4-component vector of float) -0:169 'f4' ( in 4-component vector of float) -0:170 subgroupInclusiveMax ( global 4-component vector of float) -0:170 'f4' ( in 4-component vector of float) -0:171 subgroupInclusiveAnd ( global 4-component vector of uint) -0:171 'ballot' ( temp 4-component vector of uint) -0:172 subgroupInclusiveOr ( global 4-component vector of uint) -0:172 'ballot' ( temp 4-component vector of uint) -0:173 subgroupInclusiveXor ( global 4-component vector of uint) -0:173 'ballot' ( temp 4-component vector of uint) -0:174 subgroupExclusiveAdd ( global 4-component vector of float) -0:174 'f4' ( in 4-component vector of float) -0:175 subgroupExclusiveMul ( global 4-component vector of float) -0:175 'f4' ( in 4-component vector of float) -0:176 subgroupExclusiveMin ( global 4-component vector of float) -0:176 'f4' ( in 4-component vector of float) -0:177 subgroupExclusiveMax ( global 4-component vector of float) -0:177 'f4' ( in 4-component vector of float) -0:178 subgroupExclusiveAnd ( global 4-component vector of uint) -0:178 'ballot' ( temp 4-component vector of uint) -0:179 subgroupExclusiveOr ( global 4-component vector of uint) -0:179 'ballot' ( temp 4-component vector of uint) -0:180 subgroupExclusiveXor ( global 4-component vector of uint) -0:180 'ballot' ( temp 4-component vector of uint) -0:184 Function Definition: clustered_works(vf4; ( global void) -0:184 Function Parameters: -0:184 'f4' ( in 4-component vector of float) -0:186 Sequence -0:186 Sequence -0:186 move second child to first child ( temp 4-component vector of uint) -0:186 'ballot' ( temp 4-component vector of uint) -0:186 Constant: -0:186 85 (const uint) -0:186 0 (const uint) -0:186 0 (const uint) -0:186 0 (const uint) -0:187 subgroupClusteredAdd ( global 4-component vector of float) -0:187 'f4' ( in 4-component vector of float) -0:187 Constant: -0:187 2 (const uint) -0:188 subgroupClusteredMul ( global 4-component vector of float) -0:188 'f4' ( in 4-component vector of float) -0:188 Constant: -0:188 2 (const uint) -0:189 subgroupClusteredMin ( global 4-component vector of float) -0:189 'f4' ( in 4-component vector of float) -0:189 Constant: -0:189 2 (const uint) -0:190 subgroupClusteredMax ( global 4-component vector of float) -0:190 'f4' ( in 4-component vector of float) -0:190 Constant: -0:190 2 (const uint) -0:191 subgroupClusteredAnd ( global 4-component vector of uint) -0:191 'ballot' ( temp 4-component vector of uint) -0:191 Constant: -0:191 2 (const uint) -0:192 subgroupClusteredOr ( global 4-component vector of uint) -0:192 'ballot' ( temp 4-component vector of uint) -0:192 Constant: -0:192 2 (const uint) -0:193 subgroupClusteredXor ( global 4-component vector of uint) -0:193 'ballot' ( temp 4-component vector of uint) -0:193 Constant: -0:193 2 (const uint) -0:197 Function Definition: quad_works(vf4; ( global void) -0:197 Function Parameters: -0:197 'f4' ( in 4-component vector of float) -0:199 Sequence -0:199 subgroupQuadBroadcast ( global 4-component vector of float) -0:199 'f4' ( in 4-component vector of float) -0:199 Constant: -0:199 0 (const uint) -0:200 subgroupQuadSwapHorizontal ( global 4-component vector of float) -0:200 'f4' ( in 4-component vector of float) -0:201 subgroupQuadSwapVertical ( global 4-component vector of float) -0:201 'f4' ( in 4-component vector of float) -0:202 subgroupQuadSwapDiagonal ( global 4-component vector of float) -0:202 'f4' ( in 4-component vector of float) -0:206 Function Definition: partitioned_works(vf4; ( global void) -0:206 Function Parameters: -0:206 'f4' ( in 4-component vector of float) -0:208 Sequence -0:208 Sequence -0:208 move second child to first child ( temp 4-component vector of uint) -0:208 'parti' ( temp 4-component vector of uint) -0:208 subgroupPartitionNV ( global 4-component vector of uint) -0:208 'f4' ( in 4-component vector of float) -0:209 Sequence -0:209 move second child to first child ( temp 4-component vector of uint) -0:209 'ballot' ( temp 4-component vector of uint) -0:209 Constant: -0:209 85 (const uint) -0:209 0 (const uint) -0:209 0 (const uint) -0:209 0 (const uint) -0:210 subgroupPartitionedAddNV ( global 4-component vector of float) -0:210 'f4' ( in 4-component vector of float) -0:210 'parti' ( temp 4-component vector of uint) -0:211 subgroupPartitionedMulNV ( global 4-component vector of float) -0:211 'f4' ( in 4-component vector of float) -0:211 'parti' ( temp 4-component vector of uint) -0:212 subgroupPartitionedMinNV ( global 4-component vector of float) -0:212 'f4' ( in 4-component vector of float) -0:212 'parti' ( temp 4-component vector of uint) -0:213 subgroupPartitionedMaxNV ( global 4-component vector of float) -0:213 'f4' ( in 4-component vector of float) -0:213 'parti' ( temp 4-component vector of uint) -0:214 subgroupPartitionedAndNV ( global 4-component vector of uint) -0:214 'ballot' ( temp 4-component vector of uint) -0:214 'parti' ( temp 4-component vector of uint) -0:215 subgroupPartitionedOrNV ( global 4-component vector of uint) -0:215 'ballot' ( temp 4-component vector of uint) -0:215 'parti' ( temp 4-component vector of uint) -0:216 subgroupPartitionedXorNV ( global 4-component vector of uint) -0:216 'ballot' ( temp 4-component vector of uint) -0:216 'parti' ( temp 4-component vector of uint) -0:217 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float) -0:217 'f4' ( in 4-component vector of float) -0:217 'parti' ( temp 4-component vector of uint) -0:218 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float) -0:218 'f4' ( in 4-component vector of float) -0:218 'parti' ( temp 4-component vector of uint) -0:219 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float) -0:219 'f4' ( in 4-component vector of float) -0:219 'parti' ( temp 4-component vector of uint) -0:220 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float) -0:220 'f4' ( in 4-component vector of float) -0:220 'parti' ( temp 4-component vector of uint) -0:221 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint) -0:221 'ballot' ( temp 4-component vector of uint) -0:221 'parti' ( temp 4-component vector of uint) -0:222 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint) -0:222 'ballot' ( temp 4-component vector of uint) -0:222 'parti' ( temp 4-component vector of uint) -0:223 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint) -0:223 'ballot' ( temp 4-component vector of uint) -0:223 'parti' ( temp 4-component vector of uint) -0:224 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float) -0:224 'f4' ( in 4-component vector of float) -0:224 'parti' ( temp 4-component vector of uint) -0:225 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float) -0:225 'f4' ( in 4-component vector of float) -0:225 'parti' ( temp 4-component vector of uint) -0:226 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float) -0:226 'f4' ( in 4-component vector of float) -0:226 'parti' ( temp 4-component vector of uint) -0:227 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float) -0:227 'f4' ( in 4-component vector of float) -0:227 'parti' ( temp 4-component vector of uint) -0:228 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint) -0:228 'ballot' ( temp 4-component vector of uint) -0:228 'parti' ( temp 4-component vector of uint) -0:229 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint) -0:229 'ballot' ( temp 4-component vector of uint) -0:229 'parti' ( temp 4-component vector of uint) -0:230 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint) -0:230 'ballot' ( temp 4-component vector of uint) -0:230 'parti' ( temp 4-component vector of uint) -0:234 Function Definition: sm_builtins_err( ( global void) -0:234 Function Parameters: -0:236 Sequence -0:236 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV) -0:237 'gl_SMCountNV' ( in uint SMCountNV) -0:238 'gl_WarpIDNV' ( in uint WarpIDNV) -0:239 'gl_SMIDNV' ( in uint SMIDNV) -0:246 Function Definition: sm_builtins( ( global void) -0:246 Function Parameters: -0:248 Sequence -0:248 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV) -0:249 'gl_SMCountNV' ( in uint SMCountNV) -0:250 'gl_WarpIDNV' ( in uint WarpIDNV) -0:251 'gl_SMIDNV' ( in uint SMIDNV) -0:? Linker Objects -0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result}) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - - -Linked vertex stage: - - -Shader version: 450 -Requested GL_KHR_shader_subgroup_arithmetic -Requested GL_KHR_shader_subgroup_ballot -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_clustered -Requested GL_KHR_shader_subgroup_quad -Requested GL_KHR_shader_subgroup_shuffle -Requested GL_KHR_shader_subgroup_shuffle_relative -Requested GL_KHR_shader_subgroup_vote -Requested GL_NV_shader_sm_builtins -Requested GL_NV_shader_subgroup_partitioned -ERROR: node is still EOpNull! -0:109 Function Definition: main( ( global void) -0:109 Function Parameters: -0:111 Sequence -0:111 move second child to first child ( temp 4-component vector of uint) -0:111 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint) -0:111 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint) -0:111 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result}) -0:111 Constant: -0:111 0 (const uint) -0:111 'gl_VertexID' ( gl_VertexId int VertexId) -0:111 Construct uvec4 ( temp 4-component vector of uint) -0:111 'gl_SubgroupSize' ( in uint SubgroupSize) -0:111 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:111 Constant: -0:111 0 (const uint) -0:111 Constant: -0:111 0 (const uint) -0:112 subgroupBarrier ( global void) -0:113 subgroupMemoryBarrier ( global void) -0:114 subgroupMemoryBarrierBuffer ( global void) -0:115 subgroupMemoryBarrierImage ( global void) -0:116 subgroupElect ( global bool) -0:? Linker Objects -0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result}) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - diff --git a/deps/glslang/Test/baseResults/glsl.450.subgroupArithmetic.comp.out b/deps/glslang/Test/baseResults/glsl.450.subgroupArithmetic.comp.out deleted file mode 100644 index 431423fd..00000000 --- a/deps/glslang/Test/baseResults/glsl.450.subgroupArithmetic.comp.out +++ /dev/null @@ -1,14549 +0,0 @@ -glsl.450.subgroupArithmetic.comp -Shader version: 450 -Requested GL_KHR_shader_subgroup_arithmetic -Requested GL_KHR_shader_subgroup_basic -local_size = (8, 1, 1) -0:? Sequence -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 uint) -0:17 'invocation' ( temp uint) -0:17 mod ( temp uint) -0:17 add ( temp uint) -0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:17 'gl_SubgroupSize' ( in uint SubgroupSize) -0:17 Constant: -0:17 4 (const uint) -0:19 move second child to first child ( temp float) -0:19 direct index ( temp float) -0:19 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:19 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 'invocation' ( temp uint) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 subgroupAdd ( global float) -0:19 direct index ( temp float) -0:19 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:19 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:20 move second child to first child ( temp 2-component vector of float) -0:20 vector swizzle ( temp 2-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:20 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 'invocation' ( temp uint) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 subgroupAdd ( global 2-component vector of float) -0:20 vector swizzle ( temp 2-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:20 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:21 move second child to first child ( temp 3-component vector of float) -0:21 vector swizzle ( temp 3-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:21 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 'invocation' ( temp uint) -0:21 Constant: -0:21 0 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Constant: -0:21 2 (const int) -0:21 subgroupAdd ( global 3-component vector of float) -0:21 vector swizzle ( temp 3-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 Constant: -0:21 2 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Constant: -0:21 2 (const int) -0:22 move second child to first child ( temp 4-component vector of float) -0:22 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:22 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'invocation' ( temp uint) -0:22 Constant: -0:22 0 (const int) -0:22 subgroupAdd ( global 4-component vector of float) -0:22 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:22 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 Constant: -0:22 3 (const int) -0:22 Constant: -0:22 0 (const int) -0:24 move second child to first child ( temp int) -0:24 direct index ( temp int) -0:24 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:24 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'invocation' ( temp uint) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 0 (const int) -0:24 subgroupAdd ( global int) -0:24 direct index ( temp int) -0:24 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 0 (const int) -0:25 move second child to first child ( temp 2-component vector of int) -0:25 vector swizzle ( temp 2-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:25 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 'invocation' ( temp uint) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 subgroupAdd ( global 2-component vector of int) -0:25 vector swizzle ( temp 2-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:26 move second child to first child ( temp 3-component vector of int) -0:26 vector swizzle ( temp 3-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:26 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'invocation' ( temp uint) -0:26 Constant: -0:26 1 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 subgroupAdd ( global 3-component vector of int) -0:26 vector swizzle ( temp 3-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 Constant: -0:26 2 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 2 (const int) -0:27 move second child to first child ( temp 4-component vector of int) -0:27 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:27 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'invocation' ( temp uint) -0:27 Constant: -0:27 1 (const int) -0:27 subgroupAdd ( global 4-component vector of int) -0:27 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:27 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 Constant: -0:27 3 (const int) -0:27 Constant: -0:27 1 (const int) -0:29 move second child to first child ( temp uint) -0:29 direct index ( temp uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:29 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'invocation' ( temp uint) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 0 (const int) -0:29 subgroupAdd ( global uint) -0:29 direct index ( temp uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 0 (const int) -0:30 move second child to first child ( temp 2-component vector of uint) -0:30 vector swizzle ( temp 2-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:30 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 'invocation' ( temp uint) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 subgroupAdd ( global 2-component vector of uint) -0:30 vector swizzle ( temp 2-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:30 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:31 move second child to first child ( temp 3-component vector of uint) -0:31 vector swizzle ( temp 3-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:31 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'invocation' ( temp uint) -0:31 Constant: -0:31 2 (const int) -0:31 Sequence -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 subgroupAdd ( global 3-component vector of uint) -0:31 vector swizzle ( temp 3-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 Constant: -0:31 2 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 Sequence -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 2 (const int) -0:32 move second child to first child ( temp 4-component vector of uint) -0:32 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:32 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'invocation' ( temp uint) -0:32 Constant: -0:32 2 (const int) -0:32 subgroupAdd ( global 4-component vector of uint) -0:32 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 Constant: -0:32 3 (const int) -0:32 Constant: -0:32 2 (const int) -0:34 move second child to first child ( temp double) -0:34 direct index ( temp double) -0:34 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:34 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'invocation' ( temp uint) -0:34 Constant: -0:34 3 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 subgroupAdd ( global double) -0:34 direct index ( temp double) -0:34 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 3 (const int) -0:34 Constant: -0:34 0 (const int) -0:35 move second child to first child ( temp 2-component vector of double) -0:35 vector swizzle ( temp 2-component vector of double) -0:35 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:35 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 'invocation' ( temp uint) -0:35 Constant: -0:35 3 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 subgroupAdd ( global 2-component vector of double) -0:35 vector swizzle ( temp 2-component vector of double) -0:35 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 3 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:36 move second child to first child ( temp 3-component vector of double) -0:36 vector swizzle ( temp 3-component vector of double) -0:36 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:36 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'invocation' ( temp uint) -0:36 Constant: -0:36 3 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 2 (const int) -0:36 subgroupAdd ( global 3-component vector of double) -0:36 vector swizzle ( temp 3-component vector of double) -0:36 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 Constant: -0:36 2 (const int) -0:36 Constant: -0:36 3 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 2 (const int) -0:37 move second child to first child ( temp 4-component vector of double) -0:37 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:37 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'invocation' ( temp uint) -0:37 Constant: -0:37 3 (const int) -0:37 subgroupAdd ( global 4-component vector of double) -0:37 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:37 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 Constant: -0:37 3 (const int) -0:37 Constant: -0:37 3 (const int) -0:39 move second child to first child ( temp float) -0:39 direct index ( temp float) -0:39 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:39 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'invocation' ( temp uint) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 subgroupMul ( global float) -0:39 direct index ( temp float) -0:39 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 0 (const int) -0:40 move second child to first child ( temp 2-component vector of float) -0:40 vector swizzle ( temp 2-component vector of float) -0:40 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:40 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 'invocation' ( temp uint) -0:40 Constant: -0:40 0 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 subgroupMul ( global 2-component vector of float) -0:40 vector swizzle ( temp 2-component vector of float) -0:40 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:41 move second child to first child ( temp 3-component vector of float) -0:41 vector swizzle ( temp 3-component vector of float) -0:41 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:41 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'invocation' ( temp uint) -0:41 Constant: -0:41 0 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 2 (const int) -0:41 subgroupMul ( global 3-component vector of float) -0:41 vector swizzle ( temp 3-component vector of float) -0:41 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 Constant: -0:41 2 (const int) -0:41 Constant: -0:41 0 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 2 (const int) -0:42 move second child to first child ( temp 4-component vector of float) -0:42 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:42 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'invocation' ( temp uint) -0:42 Constant: -0:42 0 (const int) -0:42 subgroupMul ( global 4-component vector of float) -0:42 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:42 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 Constant: -0:42 3 (const int) -0:42 Constant: -0:42 0 (const int) -0:44 move second child to first child ( temp int) -0:44 direct index ( temp int) -0:44 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:44 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'invocation' ( temp uint) -0:44 Constant: -0:44 1 (const int) -0:44 Constant: -0:44 0 (const int) -0:44 subgroupMul ( global int) -0:44 direct index ( temp int) -0:44 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 1 (const int) -0:44 Constant: -0:44 0 (const int) -0:45 move second child to first child ( temp 2-component vector of int) -0:45 vector swizzle ( temp 2-component vector of int) -0:45 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:45 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 'invocation' ( temp uint) -0:45 Constant: -0:45 1 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 subgroupMul ( global 2-component vector of int) -0:45 vector swizzle ( temp 2-component vector of int) -0:45 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:46 move second child to first child ( temp 3-component vector of int) -0:46 vector swizzle ( temp 3-component vector of int) -0:46 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:46 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'invocation' ( temp uint) -0:46 Constant: -0:46 1 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 subgroupMul ( global 3-component vector of int) -0:46 vector swizzle ( temp 3-component vector of int) -0:46 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 Constant: -0:46 2 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 2 (const int) -0:47 move second child to first child ( temp 4-component vector of int) -0:47 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:47 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'invocation' ( temp uint) -0:47 Constant: -0:47 1 (const int) -0:47 subgroupMul ( global 4-component vector of int) -0:47 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:47 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 Constant: -0:47 3 (const int) -0:47 Constant: -0:47 1 (const int) -0:49 move second child to first child ( temp uint) -0:49 direct index ( temp uint) -0:49 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:49 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'invocation' ( temp uint) -0:49 Constant: -0:49 2 (const int) -0:49 Constant: -0:49 0 (const int) -0:49 subgroupMul ( global uint) -0:49 direct index ( temp uint) -0:49 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:49 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 2 (const int) -0:49 Constant: -0:49 0 (const int) -0:50 move second child to first child ( temp 2-component vector of uint) -0:50 vector swizzle ( temp 2-component vector of uint) -0:50 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:50 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 'invocation' ( temp uint) -0:50 Constant: -0:50 2 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 subgroupMul ( global 2-component vector of uint) -0:50 vector swizzle ( temp 2-component vector of uint) -0:50 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:51 move second child to first child ( temp 3-component vector of uint) -0:51 vector swizzle ( temp 3-component vector of uint) -0:51 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:51 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'invocation' ( temp uint) -0:51 Constant: -0:51 2 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 2 (const int) -0:51 subgroupMul ( global 3-component vector of uint) -0:51 vector swizzle ( temp 3-component vector of uint) -0:51 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 Constant: -0:51 2 (const int) -0:51 Constant: -0:51 2 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 2 (const int) -0:52 move second child to first child ( temp 4-component vector of uint) -0:52 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:52 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'invocation' ( temp uint) -0:52 Constant: -0:52 2 (const int) -0:52 subgroupMul ( global 4-component vector of uint) -0:52 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:52 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 Constant: -0:52 3 (const int) -0:52 Constant: -0:52 2 (const int) -0:54 move second child to first child ( temp double) -0:54 direct index ( temp double) -0:54 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:54 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'invocation' ( temp uint) -0:54 Constant: -0:54 3 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 subgroupMul ( global double) -0:54 direct index ( temp double) -0:54 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:54 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 3 (const int) -0:54 Constant: -0:54 0 (const int) -0:55 move second child to first child ( temp 2-component vector of double) -0:55 vector swizzle ( temp 2-component vector of double) -0:55 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:55 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 'invocation' ( temp uint) -0:55 Constant: -0:55 3 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 subgroupMul ( global 2-component vector of double) -0:55 vector swizzle ( temp 2-component vector of double) -0:55 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 3 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:56 move second child to first child ( temp 3-component vector of double) -0:56 vector swizzle ( temp 3-component vector of double) -0:56 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:56 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'invocation' ( temp uint) -0:56 Constant: -0:56 3 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 2 (const int) -0:56 subgroupMul ( global 3-component vector of double) -0:56 vector swizzle ( temp 3-component vector of double) -0:56 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 Constant: -0:56 2 (const int) -0:56 Constant: -0:56 3 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 2 (const int) -0:57 move second child to first child ( temp 4-component vector of double) -0:57 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:57 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'invocation' ( temp uint) -0:57 Constant: -0:57 3 (const int) -0:57 subgroupMul ( global 4-component vector of double) -0:57 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:57 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 Constant: -0:57 3 (const int) -0:57 Constant: -0:57 3 (const int) -0:59 move second child to first child ( temp float) -0:59 direct index ( temp float) -0:59 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:59 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 'invocation' ( temp uint) -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 0 (const int) -0:59 subgroupMin ( global float) -0:59 direct index ( temp float) -0:59 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:59 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 0 (const int) -0:60 move second child to first child ( temp 2-component vector of float) -0:60 vector swizzle ( temp 2-component vector of float) -0:60 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:60 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 'invocation' ( temp uint) -0:60 Constant: -0:60 0 (const int) -0:60 Sequence -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 subgroupMin ( global 2-component vector of float) -0:60 vector swizzle ( temp 2-component vector of float) -0:60 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:60 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 0 (const int) -0:60 Sequence -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:61 move second child to first child ( temp 3-component vector of float) -0:61 vector swizzle ( temp 3-component vector of float) -0:61 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:61 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'invocation' ( temp uint) -0:61 Constant: -0:61 0 (const int) -0:61 Sequence -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 Constant: -0:61 2 (const int) -0:61 subgroupMin ( global 3-component vector of float) -0:61 vector swizzle ( temp 3-component vector of float) -0:61 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:61 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 Constant: -0:61 2 (const int) -0:61 Constant: -0:61 0 (const int) -0:61 Sequence -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 Constant: -0:61 2 (const int) -0:62 move second child to first child ( temp 4-component vector of float) -0:62 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:62 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'invocation' ( temp uint) -0:62 Constant: -0:62 0 (const int) -0:62 subgroupMin ( global 4-component vector of float) -0:62 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:62 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 Constant: -0:62 3 (const int) -0:62 Constant: -0:62 0 (const int) -0:64 move second child to first child ( temp int) -0:64 direct index ( temp int) -0:64 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:64 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'invocation' ( temp uint) -0:64 Constant: -0:64 1 (const int) -0:64 Constant: -0:64 0 (const int) -0:64 subgroupMin ( global int) -0:64 direct index ( temp int) -0:64 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:64 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 Constant: -0:64 0 (const int) -0:64 Constant: -0:64 1 (const int) -0:64 Constant: -0:64 0 (const int) -0:65 move second child to first child ( temp 2-component vector of int) -0:65 vector swizzle ( temp 2-component vector of int) -0:65 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:65 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 'invocation' ( temp uint) -0:65 Constant: -0:65 1 (const int) -0:65 Sequence -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 subgroupMin ( global 2-component vector of int) -0:65 vector swizzle ( temp 2-component vector of int) -0:65 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:65 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 Constant: -0:65 1 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Sequence -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 1 (const int) -0:66 move second child to first child ( temp 3-component vector of int) -0:66 vector swizzle ( temp 3-component vector of int) -0:66 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:66 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'invocation' ( temp uint) -0:66 Constant: -0:66 1 (const int) -0:66 Sequence -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 2 (const int) -0:66 subgroupMin ( global 3-component vector of int) -0:66 vector swizzle ( temp 3-component vector of int) -0:66 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:66 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 Constant: -0:66 2 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 Sequence -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 2 (const int) -0:67 move second child to first child ( temp 4-component vector of int) -0:67 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:67 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'invocation' ( temp uint) -0:67 Constant: -0:67 1 (const int) -0:67 subgroupMin ( global 4-component vector of int) -0:67 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:67 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 Constant: -0:67 3 (const int) -0:67 Constant: -0:67 1 (const int) -0:69 move second child to first child ( temp uint) -0:69 direct index ( temp uint) -0:69 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:69 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 'invocation' ( temp uint) -0:69 Constant: -0:69 2 (const int) -0:69 Constant: -0:69 0 (const int) -0:69 subgroupMin ( global uint) -0:69 direct index ( temp uint) -0:69 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:69 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 Constant: -0:69 0 (const int) -0:69 Constant: -0:69 2 (const int) -0:69 Constant: -0:69 0 (const int) -0:70 move second child to first child ( temp 2-component vector of uint) -0:70 vector swizzle ( temp 2-component vector of uint) -0:70 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:70 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:70 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:70 'invocation' ( temp uint) -0:70 Constant: -0:70 2 (const int) -0:70 Sequence -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 1 (const int) -0:70 subgroupMin ( global 2-component vector of uint) -0:70 vector swizzle ( temp 2-component vector of uint) -0:70 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:70 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:70 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:70 Constant: -0:70 1 (const int) -0:70 Constant: -0:70 2 (const int) -0:70 Sequence -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 1 (const int) -0:71 move second child to first child ( temp 3-component vector of uint) -0:71 vector swizzle ( temp 3-component vector of uint) -0:71 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:71 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:71 'invocation' ( temp uint) -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 2 (const int) -0:71 subgroupMin ( global 3-component vector of uint) -0:71 vector swizzle ( temp 3-component vector of uint) -0:71 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:71 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:71 Constant: -0:71 2 (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 2 (const int) -0:72 move second child to first child ( temp 4-component vector of uint) -0:72 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:72 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 'invocation' ( temp uint) -0:72 Constant: -0:72 2 (const int) -0:72 subgroupMin ( global 4-component vector of uint) -0:72 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:72 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 Constant: -0:72 3 (const int) -0:72 Constant: -0:72 2 (const int) -0:74 move second child to first child ( temp double) -0:74 direct index ( temp double) -0:74 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:74 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 'invocation' ( temp uint) -0:74 Constant: -0:74 3 (const int) -0:74 Constant: -0:74 0 (const int) -0:74 subgroupMin ( global double) -0:74 direct index ( temp double) -0:74 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:74 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 Constant: -0:74 0 (const int) -0:74 Constant: -0:74 3 (const int) -0:74 Constant: -0:74 0 (const int) -0:75 move second child to first child ( temp 2-component vector of double) -0:75 vector swizzle ( temp 2-component vector of double) -0:75 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:75 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:75 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:75 'invocation' ( temp uint) -0:75 Constant: -0:75 3 (const int) -0:75 Sequence -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 1 (const int) -0:75 subgroupMin ( global 2-component vector of double) -0:75 vector swizzle ( temp 2-component vector of double) -0:75 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:75 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:75 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:75 Constant: -0:75 1 (const int) -0:75 Constant: -0:75 3 (const int) -0:75 Sequence -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 1 (const int) -0:76 move second child to first child ( temp 3-component vector of double) -0:76 vector swizzle ( temp 3-component vector of double) -0:76 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:76 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 'invocation' ( temp uint) -0:76 Constant: -0:76 3 (const int) -0:76 Sequence -0:76 Constant: -0:76 0 (const int) -0:76 Constant: -0:76 1 (const int) -0:76 Constant: -0:76 2 (const int) -0:76 subgroupMin ( global 3-component vector of double) -0:76 vector swizzle ( temp 3-component vector of double) -0:76 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:76 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 Constant: -0:76 2 (const int) -0:76 Constant: -0:76 3 (const int) -0:76 Sequence -0:76 Constant: -0:76 0 (const int) -0:76 Constant: -0:76 1 (const int) -0:76 Constant: -0:76 2 (const int) -0:77 move second child to first child ( temp 4-component vector of double) -0:77 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:77 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 'invocation' ( temp uint) -0:77 Constant: -0:77 3 (const int) -0:77 subgroupMin ( global 4-component vector of double) -0:77 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:77 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 Constant: -0:77 3 (const int) -0:77 Constant: -0:77 3 (const int) -0:79 move second child to first child ( temp float) -0:79 direct index ( temp float) -0:79 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:79 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 'invocation' ( temp uint) -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 0 (const int) -0:79 subgroupMax ( global float) -0:79 direct index ( temp float) -0:79 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:79 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 0 (const int) -0:80 move second child to first child ( temp 2-component vector of float) -0:80 vector swizzle ( temp 2-component vector of float) -0:80 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:80 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:80 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:80 'invocation' ( temp uint) -0:80 Constant: -0:80 0 (const int) -0:80 Sequence -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 1 (const int) -0:80 subgroupMax ( global 2-component vector of float) -0:80 vector swizzle ( temp 2-component vector of float) -0:80 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:80 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:80 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:80 Constant: -0:80 1 (const int) -0:80 Constant: -0:80 0 (const int) -0:80 Sequence -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 1 (const int) -0:81 move second child to first child ( temp 3-component vector of float) -0:81 vector swizzle ( temp 3-component vector of float) -0:81 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:81 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 'invocation' ( temp uint) -0:81 Constant: -0:81 0 (const int) -0:81 Sequence -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 1 (const int) -0:81 Constant: -0:81 2 (const int) -0:81 subgroupMax ( global 3-component vector of float) -0:81 vector swizzle ( temp 3-component vector of float) -0:81 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:81 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 Constant: -0:81 2 (const int) -0:81 Constant: -0:81 0 (const int) -0:81 Sequence -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 1 (const int) -0:81 Constant: -0:81 2 (const int) -0:82 move second child to first child ( temp 4-component vector of float) -0:82 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:82 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 'invocation' ( temp uint) -0:82 Constant: -0:82 0 (const int) -0:82 subgroupMax ( global 4-component vector of float) -0:82 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:82 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 Constant: -0:82 3 (const int) -0:82 Constant: -0:82 0 (const int) -0:84 move second child to first child ( temp int) -0:84 direct index ( temp int) -0:84 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:84 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 'invocation' ( temp uint) -0:84 Constant: -0:84 1 (const int) -0:84 Constant: -0:84 0 (const int) -0:84 subgroupMax ( global int) -0:84 direct index ( temp int) -0:84 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:84 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 Constant: -0:84 0 (const int) -0:84 Constant: -0:84 1 (const int) -0:84 Constant: -0:84 0 (const int) -0:85 move second child to first child ( temp 2-component vector of int) -0:85 vector swizzle ( temp 2-component vector of int) -0:85 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:85 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:85 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:85 'invocation' ( temp uint) -0:85 Constant: -0:85 1 (const int) -0:85 Sequence -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 1 (const int) -0:85 subgroupMax ( global 2-component vector of int) -0:85 vector swizzle ( temp 2-component vector of int) -0:85 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:85 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:85 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:85 Constant: -0:85 1 (const int) -0:85 Constant: -0:85 1 (const int) -0:85 Sequence -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 1 (const int) -0:86 move second child to first child ( temp 3-component vector of int) -0:86 vector swizzle ( temp 3-component vector of int) -0:86 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:86 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:86 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:86 'invocation' ( temp uint) -0:86 Constant: -0:86 1 (const int) -0:86 Sequence -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 1 (const int) -0:86 Constant: -0:86 2 (const int) -0:86 subgroupMax ( global 3-component vector of int) -0:86 vector swizzle ( temp 3-component vector of int) -0:86 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:86 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:86 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:86 Constant: -0:86 2 (const int) -0:86 Constant: -0:86 1 (const int) -0:86 Sequence -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 1 (const int) -0:86 Constant: -0:86 2 (const int) -0:87 move second child to first child ( temp 4-component vector of int) -0:87 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:87 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:87 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:87 'invocation' ( temp uint) -0:87 Constant: -0:87 1 (const int) -0:87 subgroupMax ( global 4-component vector of int) -0:87 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:87 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:87 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:87 Constant: -0:87 3 (const int) -0:87 Constant: -0:87 1 (const int) -0:89 move second child to first child ( temp uint) -0:89 direct index ( temp uint) -0:89 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:89 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:89 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:89 'invocation' ( temp uint) -0:89 Constant: -0:89 2 (const int) -0:89 Constant: -0:89 0 (const int) -0:89 subgroupMax ( global uint) -0:89 direct index ( temp uint) -0:89 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:89 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:89 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:89 Constant: -0:89 0 (const int) -0:89 Constant: -0:89 2 (const int) -0:89 Constant: -0:89 0 (const int) -0:90 move second child to first child ( temp 2-component vector of uint) -0:90 vector swizzle ( temp 2-component vector of uint) -0:90 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:90 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:90 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:90 'invocation' ( temp uint) -0:90 Constant: -0:90 2 (const int) -0:90 Sequence -0:90 Constant: -0:90 0 (const int) -0:90 Constant: -0:90 1 (const int) -0:90 subgroupMax ( global 2-component vector of uint) -0:90 vector swizzle ( temp 2-component vector of uint) -0:90 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:90 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:90 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:90 Constant: -0:90 1 (const int) -0:90 Constant: -0:90 2 (const int) -0:90 Sequence -0:90 Constant: -0:90 0 (const int) -0:90 Constant: -0:90 1 (const int) -0:91 move second child to first child ( temp 3-component vector of uint) -0:91 vector swizzle ( temp 3-component vector of uint) -0:91 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:91 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:91 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:91 'invocation' ( temp uint) -0:91 Constant: -0:91 2 (const int) -0:91 Sequence -0:91 Constant: -0:91 0 (const int) -0:91 Constant: -0:91 1 (const int) -0:91 Constant: -0:91 2 (const int) -0:91 subgroupMax ( global 3-component vector of uint) -0:91 vector swizzle ( temp 3-component vector of uint) -0:91 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:91 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:91 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:91 Constant: -0:91 2 (const int) -0:91 Constant: -0:91 2 (const int) -0:91 Sequence -0:91 Constant: -0:91 0 (const int) -0:91 Constant: -0:91 1 (const int) -0:91 Constant: -0:91 2 (const int) -0:92 move second child to first child ( temp 4-component vector of uint) -0:92 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:92 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:92 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:92 'invocation' ( temp uint) -0:92 Constant: -0:92 2 (const int) -0:92 subgroupMax ( global 4-component vector of uint) -0:92 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:92 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:92 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:92 Constant: -0:92 3 (const int) -0:92 Constant: -0:92 2 (const int) -0:94 move second child to first child ( temp double) -0:94 direct index ( temp double) -0:94 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:94 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:94 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:94 'invocation' ( temp uint) -0:94 Constant: -0:94 3 (const int) -0:94 Constant: -0:94 0 (const int) -0:94 subgroupMax ( global double) -0:94 direct index ( temp double) -0:94 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:94 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:94 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:94 Constant: -0:94 0 (const int) -0:94 Constant: -0:94 3 (const int) -0:94 Constant: -0:94 0 (const int) -0:95 move second child to first child ( temp 2-component vector of double) -0:95 vector swizzle ( temp 2-component vector of double) -0:95 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:95 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:95 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:95 'invocation' ( temp uint) -0:95 Constant: -0:95 3 (const int) -0:95 Sequence -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 1 (const int) -0:95 subgroupMax ( global 2-component vector of double) -0:95 vector swizzle ( temp 2-component vector of double) -0:95 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:95 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:95 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:95 Constant: -0:95 1 (const int) -0:95 Constant: -0:95 3 (const int) -0:95 Sequence -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 1 (const int) -0:96 move second child to first child ( temp 3-component vector of double) -0:96 vector swizzle ( temp 3-component vector of double) -0:96 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:96 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:96 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:96 'invocation' ( temp uint) -0:96 Constant: -0:96 3 (const int) -0:96 Sequence -0:96 Constant: -0:96 0 (const int) -0:96 Constant: -0:96 1 (const int) -0:96 Constant: -0:96 2 (const int) -0:96 subgroupMax ( global 3-component vector of double) -0:96 vector swizzle ( temp 3-component vector of double) -0:96 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:96 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:96 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:96 Constant: -0:96 2 (const int) -0:96 Constant: -0:96 3 (const int) -0:96 Sequence -0:96 Constant: -0:96 0 (const int) -0:96 Constant: -0:96 1 (const int) -0:96 Constant: -0:96 2 (const int) -0:97 move second child to first child ( temp 4-component vector of double) -0:97 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:97 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:97 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:97 'invocation' ( temp uint) -0:97 Constant: -0:97 3 (const int) -0:97 subgroupMax ( global 4-component vector of double) -0:97 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:97 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:97 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:97 Constant: -0:97 3 (const int) -0:97 Constant: -0:97 3 (const int) -0:99 move second child to first child ( temp int) -0:99 direct index ( temp int) -0:99 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:99 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:99 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:99 'invocation' ( temp uint) -0:99 Constant: -0:99 1 (const int) -0:99 Constant: -0:99 0 (const int) -0:99 subgroupAnd ( global int) -0:99 direct index ( temp int) -0:99 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:99 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:99 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:99 Constant: -0:99 0 (const int) -0:99 Constant: -0:99 1 (const int) -0:99 Constant: -0:99 0 (const int) -0:100 move second child to first child ( temp 2-component vector of int) -0:100 vector swizzle ( temp 2-component vector of int) -0:100 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:100 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:100 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:100 'invocation' ( temp uint) -0:100 Constant: -0:100 1 (const int) -0:100 Sequence -0:100 Constant: -0:100 0 (const int) -0:100 Constant: -0:100 1 (const int) -0:100 subgroupAnd ( global 2-component vector of int) -0:100 vector swizzle ( temp 2-component vector of int) -0:100 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:100 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:100 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:100 Constant: -0:100 1 (const int) -0:100 Constant: -0:100 1 (const int) -0:100 Sequence -0:100 Constant: -0:100 0 (const int) -0:100 Constant: -0:100 1 (const int) -0:101 move second child to first child ( temp 3-component vector of int) -0:101 vector swizzle ( temp 3-component vector of int) -0:101 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:101 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:101 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:101 'invocation' ( temp uint) -0:101 Constant: -0:101 1 (const int) -0:101 Sequence -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 1 (const int) -0:101 Constant: -0:101 2 (const int) -0:101 subgroupAnd ( global 3-component vector of int) -0:101 vector swizzle ( temp 3-component vector of int) -0:101 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:101 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:101 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:101 Constant: -0:101 2 (const int) -0:101 Constant: -0:101 1 (const int) -0:101 Sequence -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 1 (const int) -0:101 Constant: -0:101 2 (const int) -0:102 move second child to first child ( temp 4-component vector of int) -0:102 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:102 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:102 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:102 'invocation' ( temp uint) -0:102 Constant: -0:102 1 (const int) -0:102 subgroupAnd ( global 4-component vector of int) -0:102 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:102 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:102 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:102 Constant: -0:102 3 (const int) -0:102 Constant: -0:102 1 (const int) -0:104 move second child to first child ( temp uint) -0:104 direct index ( temp uint) -0:104 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:104 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:104 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:104 'invocation' ( temp uint) -0:104 Constant: -0:104 2 (const int) -0:104 Constant: -0:104 0 (const int) -0:104 subgroupAnd ( global uint) -0:104 direct index ( temp uint) -0:104 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:104 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:104 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:104 Constant: -0:104 0 (const int) -0:104 Constant: -0:104 2 (const int) -0:104 Constant: -0:104 0 (const int) -0:105 move second child to first child ( temp 2-component vector of uint) -0:105 vector swizzle ( temp 2-component vector of uint) -0:105 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:105 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:105 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:105 'invocation' ( temp uint) -0:105 Constant: -0:105 2 (const int) -0:105 Sequence -0:105 Constant: -0:105 0 (const int) -0:105 Constant: -0:105 1 (const int) -0:105 subgroupAnd ( global 2-component vector of uint) -0:105 vector swizzle ( temp 2-component vector of uint) -0:105 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:105 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:105 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:105 Constant: -0:105 1 (const int) -0:105 Constant: -0:105 2 (const int) -0:105 Sequence -0:105 Constant: -0:105 0 (const int) -0:105 Constant: -0:105 1 (const int) -0:106 move second child to first child ( temp 3-component vector of uint) -0:106 vector swizzle ( temp 3-component vector of uint) -0:106 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:106 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:106 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:106 'invocation' ( temp uint) -0:106 Constant: -0:106 2 (const int) -0:106 Sequence -0:106 Constant: -0:106 0 (const int) -0:106 Constant: -0:106 1 (const int) -0:106 Constant: -0:106 2 (const int) -0:106 subgroupAnd ( global 3-component vector of uint) -0:106 vector swizzle ( temp 3-component vector of uint) -0:106 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:106 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:106 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:106 Constant: -0:106 2 (const int) -0:106 Constant: -0:106 2 (const int) -0:106 Sequence -0:106 Constant: -0:106 0 (const int) -0:106 Constant: -0:106 1 (const int) -0:106 Constant: -0:106 2 (const int) -0:107 move second child to first child ( temp 4-component vector of uint) -0:107 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:107 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:107 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:107 'invocation' ( temp uint) -0:107 Constant: -0:107 2 (const int) -0:107 subgroupAnd ( global 4-component vector of uint) -0:107 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:107 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:107 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:107 Constant: -0:107 3 (const int) -0:107 Constant: -0:107 2 (const int) -0:109 move second child to first child ( temp int) -0:109 direct index ( temp int) -0:109 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:109 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:109 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:109 'invocation' ( temp uint) -0:109 Constant: -0:109 1 (const int) -0:109 Constant: -0:109 0 (const int) -0:109 Convert bool to int ( temp int) -0:109 subgroupAnd ( global bool) -0:109 Compare Less Than ( temp bool) -0:109 direct index ( temp int) -0:109 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:109 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:109 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:109 Constant: -0:109 0 (const int) -0:109 Constant: -0:109 1 (const int) -0:109 Constant: -0:109 0 (const int) -0:109 Constant: -0:109 0 (const int) -0:110 move second child to first child ( temp 2-component vector of int) -0:110 vector swizzle ( temp 2-component vector of int) -0:110 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:110 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:110 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:110 'invocation' ( temp uint) -0:110 Constant: -0:110 1 (const int) -0:110 Sequence -0:110 Constant: -0:110 0 (const int) -0:110 Constant: -0:110 1 (const int) -0:110 Convert bool to int ( temp 2-component vector of int) -0:110 subgroupAnd ( global 2-component vector of bool) -0:110 Compare Less Than ( global 2-component vector of bool) -0:110 vector swizzle ( temp 2-component vector of int) -0:110 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:110 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:110 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:110 Constant: -0:110 1 (const int) -0:110 Constant: -0:110 1 (const int) -0:110 Sequence -0:110 Constant: -0:110 0 (const int) -0:110 Constant: -0:110 1 (const int) -0:110 Constant: -0:110 0 (const int) -0:110 0 (const int) -0:111 move second child to first child ( temp 3-component vector of int) -0:111 vector swizzle ( temp 3-component vector of int) -0:111 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:111 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:111 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:111 'invocation' ( temp uint) -0:111 Constant: -0:111 1 (const int) -0:111 Sequence -0:111 Constant: -0:111 0 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 Constant: -0:111 2 (const int) -0:111 Convert bool to int ( temp 3-component vector of int) -0:111 subgroupAnd ( global 3-component vector of bool) -0:111 Compare Less Than ( global 3-component vector of bool) -0:111 vector swizzle ( temp 3-component vector of int) -0:111 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:111 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:111 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:111 Constant: -0:111 1 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 Sequence -0:111 Constant: -0:111 0 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 Constant: -0:111 2 (const int) -0:111 Constant: -0:111 0 (const int) -0:111 0 (const int) -0:111 0 (const int) -0:112 move second child to first child ( temp 4-component vector of int) -0:112 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:112 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:112 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:112 'invocation' ( temp uint) -0:112 Constant: -0:112 1 (const int) -0:112 Convert bool to int ( temp 4-component vector of int) -0:112 subgroupAnd ( global 4-component vector of bool) -0:112 Compare Less Than ( global 4-component vector of bool) -0:112 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:112 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:112 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:112 Constant: -0:112 1 (const int) -0:112 Constant: -0:112 1 (const int) -0:112 Constant: -0:112 0 (const int) -0:112 0 (const int) -0:112 0 (const int) -0:112 0 (const int) -0:114 move second child to first child ( temp int) -0:114 direct index ( temp int) -0:114 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:114 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:114 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:114 'invocation' ( temp uint) -0:114 Constant: -0:114 1 (const int) -0:114 Constant: -0:114 0 (const int) -0:114 subgroupOr ( global int) -0:114 direct index ( temp int) -0:114 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:114 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:114 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:114 Constant: -0:114 0 (const int) -0:114 Constant: -0:114 1 (const int) -0:114 Constant: -0:114 0 (const int) -0:115 move second child to first child ( temp 2-component vector of int) -0:115 vector swizzle ( temp 2-component vector of int) -0:115 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:115 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:115 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:115 'invocation' ( temp uint) -0:115 Constant: -0:115 1 (const int) -0:115 Sequence -0:115 Constant: -0:115 0 (const int) -0:115 Constant: -0:115 1 (const int) -0:115 subgroupOr ( global 2-component vector of int) -0:115 vector swizzle ( temp 2-component vector of int) -0:115 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:115 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:115 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:115 Constant: -0:115 1 (const int) -0:115 Constant: -0:115 1 (const int) -0:115 Sequence -0:115 Constant: -0:115 0 (const int) -0:115 Constant: -0:115 1 (const int) -0:116 move second child to first child ( temp 3-component vector of int) -0:116 vector swizzle ( temp 3-component vector of int) -0:116 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:116 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:116 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:116 'invocation' ( temp uint) -0:116 Constant: -0:116 1 (const int) -0:116 Sequence -0:116 Constant: -0:116 0 (const int) -0:116 Constant: -0:116 1 (const int) -0:116 Constant: -0:116 2 (const int) -0:116 subgroupOr ( global 3-component vector of int) -0:116 vector swizzle ( temp 3-component vector of int) -0:116 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:116 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:116 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:116 Constant: -0:116 2 (const int) -0:116 Constant: -0:116 1 (const int) -0:116 Sequence -0:116 Constant: -0:116 0 (const int) -0:116 Constant: -0:116 1 (const int) -0:116 Constant: -0:116 2 (const int) -0:117 move second child to first child ( temp 4-component vector of int) -0:117 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:117 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:117 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:117 'invocation' ( temp uint) -0:117 Constant: -0:117 1 (const int) -0:117 subgroupOr ( global 4-component vector of int) -0:117 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:117 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:117 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:117 Constant: -0:117 3 (const int) -0:117 Constant: -0:117 1 (const int) -0:119 move second child to first child ( temp uint) -0:119 direct index ( temp uint) -0:119 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:119 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:119 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:119 'invocation' ( temp uint) -0:119 Constant: -0:119 2 (const int) -0:119 Constant: -0:119 0 (const int) -0:119 subgroupOr ( global uint) -0:119 direct index ( temp uint) -0:119 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:119 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:119 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:119 Constant: -0:119 0 (const int) -0:119 Constant: -0:119 2 (const int) -0:119 Constant: -0:119 0 (const int) -0:120 move second child to first child ( temp 2-component vector of uint) -0:120 vector swizzle ( temp 2-component vector of uint) -0:120 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:120 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:120 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:120 'invocation' ( temp uint) -0:120 Constant: -0:120 2 (const int) -0:120 Sequence -0:120 Constant: -0:120 0 (const int) -0:120 Constant: -0:120 1 (const int) -0:120 subgroupOr ( global 2-component vector of uint) -0:120 vector swizzle ( temp 2-component vector of uint) -0:120 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:120 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:120 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:120 Constant: -0:120 1 (const int) -0:120 Constant: -0:120 2 (const int) -0:120 Sequence -0:120 Constant: -0:120 0 (const int) -0:120 Constant: -0:120 1 (const int) -0:121 move second child to first child ( temp 3-component vector of uint) -0:121 vector swizzle ( temp 3-component vector of uint) -0:121 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:121 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:121 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:121 'invocation' ( temp uint) -0:121 Constant: -0:121 2 (const int) -0:121 Sequence -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 1 (const int) -0:121 Constant: -0:121 2 (const int) -0:121 subgroupOr ( global 3-component vector of uint) -0:121 vector swizzle ( temp 3-component vector of uint) -0:121 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:121 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:121 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:121 Constant: -0:121 2 (const int) -0:121 Constant: -0:121 2 (const int) -0:121 Sequence -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 1 (const int) -0:121 Constant: -0:121 2 (const int) -0:122 move second child to first child ( temp 4-component vector of uint) -0:122 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:122 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:122 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:122 'invocation' ( temp uint) -0:122 Constant: -0:122 2 (const int) -0:122 subgroupOr ( global 4-component vector of uint) -0:122 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:122 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:122 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:122 Constant: -0:122 3 (const int) -0:122 Constant: -0:122 2 (const int) -0:124 move second child to first child ( temp int) -0:124 direct index ( temp int) -0:124 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:124 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:124 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:124 'invocation' ( temp uint) -0:124 Constant: -0:124 1 (const int) -0:124 Constant: -0:124 0 (const int) -0:124 Convert bool to int ( temp int) -0:124 subgroupOr ( global bool) -0:124 Compare Less Than ( temp bool) -0:124 direct index ( temp int) -0:124 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:124 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:124 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:124 Constant: -0:124 0 (const int) -0:124 Constant: -0:124 1 (const int) -0:124 Constant: -0:124 0 (const int) -0:124 Constant: -0:124 0 (const int) -0:125 move second child to first child ( temp 2-component vector of int) -0:125 vector swizzle ( temp 2-component vector of int) -0:125 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:125 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:125 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:125 'invocation' ( temp uint) -0:125 Constant: -0:125 1 (const int) -0:125 Sequence -0:125 Constant: -0:125 0 (const int) -0:125 Constant: -0:125 1 (const int) -0:125 Convert bool to int ( temp 2-component vector of int) -0:125 subgroupOr ( global 2-component vector of bool) -0:125 Compare Less Than ( global 2-component vector of bool) -0:125 vector swizzle ( temp 2-component vector of int) -0:125 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:125 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:125 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:125 Constant: -0:125 1 (const int) -0:125 Constant: -0:125 1 (const int) -0:125 Sequence -0:125 Constant: -0:125 0 (const int) -0:125 Constant: -0:125 1 (const int) -0:125 Constant: -0:125 0 (const int) -0:125 0 (const int) -0:126 move second child to first child ( temp 3-component vector of int) -0:126 vector swizzle ( temp 3-component vector of int) -0:126 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:126 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:126 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:126 'invocation' ( temp uint) -0:126 Constant: -0:126 1 (const int) -0:126 Sequence -0:126 Constant: -0:126 0 (const int) -0:126 Constant: -0:126 1 (const int) -0:126 Constant: -0:126 2 (const int) -0:126 Convert bool to int ( temp 3-component vector of int) -0:126 subgroupOr ( global 3-component vector of bool) -0:126 Compare Less Than ( global 3-component vector of bool) -0:126 vector swizzle ( temp 3-component vector of int) -0:126 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:126 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:126 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:126 Constant: -0:126 1 (const int) -0:126 Constant: -0:126 1 (const int) -0:126 Sequence -0:126 Constant: -0:126 0 (const int) -0:126 Constant: -0:126 1 (const int) -0:126 Constant: -0:126 2 (const int) -0:126 Constant: -0:126 0 (const int) -0:126 0 (const int) -0:126 0 (const int) -0:127 move second child to first child ( temp 4-component vector of int) -0:127 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:127 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:127 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:127 'invocation' ( temp uint) -0:127 Constant: -0:127 1 (const int) -0:127 Convert bool to int ( temp 4-component vector of int) -0:127 subgroupOr ( global 4-component vector of bool) -0:127 Compare Less Than ( global 4-component vector of bool) -0:127 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:127 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:127 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:127 Constant: -0:127 1 (const int) -0:127 Constant: -0:127 1 (const int) -0:127 Constant: -0:127 0 (const int) -0:127 0 (const int) -0:127 0 (const int) -0:127 0 (const int) -0:129 move second child to first child ( temp int) -0:129 direct index ( temp int) -0:129 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:129 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:129 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:129 'invocation' ( temp uint) -0:129 Constant: -0:129 1 (const int) -0:129 Constant: -0:129 0 (const int) -0:129 subgroupXor ( global int) -0:129 direct index ( temp int) -0:129 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:129 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:129 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:129 Constant: -0:129 0 (const int) -0:129 Constant: -0:129 1 (const int) -0:129 Constant: -0:129 0 (const int) -0:130 move second child to first child ( temp 2-component vector of int) -0:130 vector swizzle ( temp 2-component vector of int) -0:130 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:130 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:130 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:130 'invocation' ( temp uint) -0:130 Constant: -0:130 1 (const int) -0:130 Sequence -0:130 Constant: -0:130 0 (const int) -0:130 Constant: -0:130 1 (const int) -0:130 subgroupXor ( global 2-component vector of int) -0:130 vector swizzle ( temp 2-component vector of int) -0:130 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:130 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:130 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:130 Constant: -0:130 1 (const int) -0:130 Constant: -0:130 1 (const int) -0:130 Sequence -0:130 Constant: -0:130 0 (const int) -0:130 Constant: -0:130 1 (const int) -0:131 move second child to first child ( temp 3-component vector of int) -0:131 vector swizzle ( temp 3-component vector of int) -0:131 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:131 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:131 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:131 'invocation' ( temp uint) -0:131 Constant: -0:131 1 (const int) -0:131 Sequence -0:131 Constant: -0:131 0 (const int) -0:131 Constant: -0:131 1 (const int) -0:131 Constant: -0:131 2 (const int) -0:131 subgroupXor ( global 3-component vector of int) -0:131 vector swizzle ( temp 3-component vector of int) -0:131 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:131 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:131 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:131 Constant: -0:131 2 (const int) -0:131 Constant: -0:131 1 (const int) -0:131 Sequence -0:131 Constant: -0:131 0 (const int) -0:131 Constant: -0:131 1 (const int) -0:131 Constant: -0:131 2 (const int) -0:132 move second child to first child ( temp 4-component vector of int) -0:132 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:132 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:132 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:132 'invocation' ( temp uint) -0:132 Constant: -0:132 1 (const int) -0:132 subgroupXor ( global 4-component vector of int) -0:132 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:132 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:132 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:132 Constant: -0:132 3 (const int) -0:132 Constant: -0:132 1 (const int) -0:134 move second child to first child ( temp uint) -0:134 direct index ( temp uint) -0:134 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:134 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:134 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:134 'invocation' ( temp uint) -0:134 Constant: -0:134 2 (const int) -0:134 Constant: -0:134 0 (const int) -0:134 subgroupXor ( global uint) -0:134 direct index ( temp uint) -0:134 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:134 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:134 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:134 Constant: -0:134 0 (const int) -0:134 Constant: -0:134 2 (const int) -0:134 Constant: -0:134 0 (const int) -0:135 move second child to first child ( temp 2-component vector of uint) -0:135 vector swizzle ( temp 2-component vector of uint) -0:135 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:135 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:135 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:135 'invocation' ( temp uint) -0:135 Constant: -0:135 2 (const int) -0:135 Sequence -0:135 Constant: -0:135 0 (const int) -0:135 Constant: -0:135 1 (const int) -0:135 subgroupXor ( global 2-component vector of uint) -0:135 vector swizzle ( temp 2-component vector of uint) -0:135 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:135 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:135 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:135 Constant: -0:135 1 (const int) -0:135 Constant: -0:135 2 (const int) -0:135 Sequence -0:135 Constant: -0:135 0 (const int) -0:135 Constant: -0:135 1 (const int) -0:136 move second child to first child ( temp 3-component vector of uint) -0:136 vector swizzle ( temp 3-component vector of uint) -0:136 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:136 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:136 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:136 'invocation' ( temp uint) -0:136 Constant: -0:136 2 (const int) -0:136 Sequence -0:136 Constant: -0:136 0 (const int) -0:136 Constant: -0:136 1 (const int) -0:136 Constant: -0:136 2 (const int) -0:136 subgroupXor ( global 3-component vector of uint) -0:136 vector swizzle ( temp 3-component vector of uint) -0:136 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:136 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:136 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:136 Constant: -0:136 2 (const int) -0:136 Constant: -0:136 2 (const int) -0:136 Sequence -0:136 Constant: -0:136 0 (const int) -0:136 Constant: -0:136 1 (const int) -0:136 Constant: -0:136 2 (const int) -0:137 move second child to first child ( temp 4-component vector of uint) -0:137 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:137 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:137 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:137 'invocation' ( temp uint) -0:137 Constant: -0:137 2 (const int) -0:137 subgroupXor ( global 4-component vector of uint) -0:137 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:137 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:137 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:137 Constant: -0:137 3 (const int) -0:137 Constant: -0:137 2 (const int) -0:139 move second child to first child ( temp int) -0:139 direct index ( temp int) -0:139 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:139 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:139 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:139 'invocation' ( temp uint) -0:139 Constant: -0:139 1 (const int) -0:139 Constant: -0:139 0 (const int) -0:139 Convert bool to int ( temp int) -0:139 subgroupXor ( global bool) -0:139 Compare Less Than ( temp bool) -0:139 direct index ( temp int) -0:139 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:139 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:139 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:139 Constant: -0:139 0 (const int) -0:139 Constant: -0:139 1 (const int) -0:139 Constant: -0:139 0 (const int) -0:139 Constant: -0:139 0 (const int) -0:140 move second child to first child ( temp 2-component vector of int) -0:140 vector swizzle ( temp 2-component vector of int) -0:140 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:140 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:140 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:140 'invocation' ( temp uint) -0:140 Constant: -0:140 1 (const int) -0:140 Sequence -0:140 Constant: -0:140 0 (const int) -0:140 Constant: -0:140 1 (const int) -0:140 Convert bool to int ( temp 2-component vector of int) -0:140 subgroupXor ( global 2-component vector of bool) -0:140 Compare Less Than ( global 2-component vector of bool) -0:140 vector swizzle ( temp 2-component vector of int) -0:140 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:140 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:140 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:140 Constant: -0:140 1 (const int) -0:140 Constant: -0:140 1 (const int) -0:140 Sequence -0:140 Constant: -0:140 0 (const int) -0:140 Constant: -0:140 1 (const int) -0:140 Constant: -0:140 0 (const int) -0:140 0 (const int) -0:141 move second child to first child ( temp 3-component vector of int) -0:141 vector swizzle ( temp 3-component vector of int) -0:141 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:141 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:141 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:141 'invocation' ( temp uint) -0:141 Constant: -0:141 1 (const int) -0:141 Sequence -0:141 Constant: -0:141 0 (const int) -0:141 Constant: -0:141 1 (const int) -0:141 Constant: -0:141 2 (const int) -0:141 Convert bool to int ( temp 3-component vector of int) -0:141 subgroupXor ( global 3-component vector of bool) -0:141 Compare Less Than ( global 3-component vector of bool) -0:141 vector swizzle ( temp 3-component vector of int) -0:141 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:141 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:141 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:141 Constant: -0:141 1 (const int) -0:141 Constant: -0:141 1 (const int) -0:141 Sequence -0:141 Constant: -0:141 0 (const int) -0:141 Constant: -0:141 1 (const int) -0:141 Constant: -0:141 2 (const int) -0:141 Constant: -0:141 0 (const int) -0:141 0 (const int) -0:141 0 (const int) -0:142 move second child to first child ( temp 4-component vector of int) -0:142 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:142 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:142 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:142 'invocation' ( temp uint) -0:142 Constant: -0:142 1 (const int) -0:142 Convert bool to int ( temp 4-component vector of int) -0:142 subgroupXor ( global 4-component vector of bool) -0:142 Compare Less Than ( global 4-component vector of bool) -0:142 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:142 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:142 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:142 Constant: -0:142 1 (const int) -0:142 Constant: -0:142 1 (const int) -0:142 Constant: -0:142 0 (const int) -0:142 0 (const int) -0:142 0 (const int) -0:142 0 (const int) -0:144 move second child to first child ( temp float) -0:144 direct index ( temp float) -0:144 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:144 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:144 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:144 'invocation' ( temp uint) -0:144 Constant: -0:144 0 (const int) -0:144 Constant: -0:144 0 (const int) -0:144 subgroupInclusiveAdd ( global float) -0:144 direct index ( temp float) -0:144 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:144 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:144 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:144 Constant: -0:144 0 (const int) -0:144 Constant: -0:144 0 (const int) -0:144 Constant: -0:144 0 (const int) -0:145 move second child to first child ( temp 2-component vector of float) -0:145 vector swizzle ( temp 2-component vector of float) -0:145 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:145 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:145 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:145 'invocation' ( temp uint) -0:145 Constant: -0:145 0 (const int) -0:145 Sequence -0:145 Constant: -0:145 0 (const int) -0:145 Constant: -0:145 1 (const int) -0:145 subgroupInclusiveAdd ( global 2-component vector of float) -0:145 vector swizzle ( temp 2-component vector of float) -0:145 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:145 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:145 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:145 Constant: -0:145 1 (const int) -0:145 Constant: -0:145 0 (const int) -0:145 Sequence -0:145 Constant: -0:145 0 (const int) -0:145 Constant: -0:145 1 (const int) -0:146 move second child to first child ( temp 3-component vector of float) -0:146 vector swizzle ( temp 3-component vector of float) -0:146 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:146 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:146 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:146 'invocation' ( temp uint) -0:146 Constant: -0:146 0 (const int) -0:146 Sequence -0:146 Constant: -0:146 0 (const int) -0:146 Constant: -0:146 1 (const int) -0:146 Constant: -0:146 2 (const int) -0:146 subgroupInclusiveAdd ( global 3-component vector of float) -0:146 vector swizzle ( temp 3-component vector of float) -0:146 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:146 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:146 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:146 Constant: -0:146 2 (const int) -0:146 Constant: -0:146 0 (const int) -0:146 Sequence -0:146 Constant: -0:146 0 (const int) -0:146 Constant: -0:146 1 (const int) -0:146 Constant: -0:146 2 (const int) -0:147 move second child to first child ( temp 4-component vector of float) -0:147 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:147 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:147 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:147 'invocation' ( temp uint) -0:147 Constant: -0:147 0 (const int) -0:147 subgroupInclusiveAdd ( global 4-component vector of float) -0:147 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:147 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:147 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:147 Constant: -0:147 3 (const int) -0:147 Constant: -0:147 0 (const int) -0:149 move second child to first child ( temp int) -0:149 direct index ( temp int) -0:149 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:149 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:149 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:149 'invocation' ( temp uint) -0:149 Constant: -0:149 1 (const int) -0:149 Constant: -0:149 0 (const int) -0:149 subgroupInclusiveAdd ( global int) -0:149 direct index ( temp int) -0:149 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:149 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:149 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:149 Constant: -0:149 0 (const int) -0:149 Constant: -0:149 1 (const int) -0:149 Constant: -0:149 0 (const int) -0:150 move second child to first child ( temp 2-component vector of int) -0:150 vector swizzle ( temp 2-component vector of int) -0:150 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:150 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:150 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:150 'invocation' ( temp uint) -0:150 Constant: -0:150 1 (const int) -0:150 Sequence -0:150 Constant: -0:150 0 (const int) -0:150 Constant: -0:150 1 (const int) -0:150 subgroupInclusiveAdd ( global 2-component vector of int) -0:150 vector swizzle ( temp 2-component vector of int) -0:150 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:150 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:150 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:150 Constant: -0:150 1 (const int) -0:150 Constant: -0:150 1 (const int) -0:150 Sequence -0:150 Constant: -0:150 0 (const int) -0:150 Constant: -0:150 1 (const int) -0:151 move second child to first child ( temp 3-component vector of int) -0:151 vector swizzle ( temp 3-component vector of int) -0:151 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:151 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:151 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:151 'invocation' ( temp uint) -0:151 Constant: -0:151 1 (const int) -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 subgroupInclusiveAdd ( global 3-component vector of int) -0:151 vector swizzle ( temp 3-component vector of int) -0:151 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:151 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:151 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:151 Constant: -0:151 2 (const int) -0:151 Constant: -0:151 1 (const int) -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:152 move second child to first child ( temp 4-component vector of int) -0:152 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:152 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:152 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:152 'invocation' ( temp uint) -0:152 Constant: -0:152 1 (const int) -0:152 subgroupInclusiveAdd ( global 4-component vector of int) -0:152 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:152 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:152 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:152 Constant: -0:152 3 (const int) -0:152 Constant: -0:152 1 (const int) -0:154 move second child to first child ( temp uint) -0:154 direct index ( temp uint) -0:154 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:154 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:154 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:154 'invocation' ( temp uint) -0:154 Constant: -0:154 2 (const int) -0:154 Constant: -0:154 0 (const int) -0:154 subgroupInclusiveAdd ( global uint) -0:154 direct index ( temp uint) -0:154 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:154 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:154 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:154 Constant: -0:154 0 (const int) -0:154 Constant: -0:154 2 (const int) -0:154 Constant: -0:154 0 (const int) -0:155 move second child to first child ( temp 2-component vector of uint) -0:155 vector swizzle ( temp 2-component vector of uint) -0:155 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:155 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:155 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:155 'invocation' ( temp uint) -0:155 Constant: -0:155 2 (const int) -0:155 Sequence -0:155 Constant: -0:155 0 (const int) -0:155 Constant: -0:155 1 (const int) -0:155 subgroupInclusiveAdd ( global 2-component vector of uint) -0:155 vector swizzle ( temp 2-component vector of uint) -0:155 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:155 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:155 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:155 Constant: -0:155 1 (const int) -0:155 Constant: -0:155 2 (const int) -0:155 Sequence -0:155 Constant: -0:155 0 (const int) -0:155 Constant: -0:155 1 (const int) -0:156 move second child to first child ( temp 3-component vector of uint) -0:156 vector swizzle ( temp 3-component vector of uint) -0:156 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:156 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:156 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:156 'invocation' ( temp uint) -0:156 Constant: -0:156 2 (const int) -0:156 Sequence -0:156 Constant: -0:156 0 (const int) -0:156 Constant: -0:156 1 (const int) -0:156 Constant: -0:156 2 (const int) -0:156 subgroupInclusiveAdd ( global 3-component vector of uint) -0:156 vector swizzle ( temp 3-component vector of uint) -0:156 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:156 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:156 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:156 Constant: -0:156 2 (const int) -0:156 Constant: -0:156 2 (const int) -0:156 Sequence -0:156 Constant: -0:156 0 (const int) -0:156 Constant: -0:156 1 (const int) -0:156 Constant: -0:156 2 (const int) -0:157 move second child to first child ( temp 4-component vector of uint) -0:157 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:157 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:157 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:157 'invocation' ( temp uint) -0:157 Constant: -0:157 2 (const int) -0:157 subgroupInclusiveAdd ( global 4-component vector of uint) -0:157 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:157 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:157 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:157 Constant: -0:157 3 (const int) -0:157 Constant: -0:157 2 (const int) -0:159 move second child to first child ( temp double) -0:159 direct index ( temp double) -0:159 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:159 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:159 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:159 'invocation' ( temp uint) -0:159 Constant: -0:159 3 (const int) -0:159 Constant: -0:159 0 (const int) -0:159 subgroupInclusiveAdd ( global double) -0:159 direct index ( temp double) -0:159 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:159 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:159 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:159 Constant: -0:159 0 (const int) -0:159 Constant: -0:159 3 (const int) -0:159 Constant: -0:159 0 (const int) -0:160 move second child to first child ( temp 2-component vector of double) -0:160 vector swizzle ( temp 2-component vector of double) -0:160 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:160 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:160 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:160 'invocation' ( temp uint) -0:160 Constant: -0:160 3 (const int) -0:160 Sequence -0:160 Constant: -0:160 0 (const int) -0:160 Constant: -0:160 1 (const int) -0:160 subgroupInclusiveAdd ( global 2-component vector of double) -0:160 vector swizzle ( temp 2-component vector of double) -0:160 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:160 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:160 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:160 Constant: -0:160 1 (const int) -0:160 Constant: -0:160 3 (const int) -0:160 Sequence -0:160 Constant: -0:160 0 (const int) -0:160 Constant: -0:160 1 (const int) -0:161 move second child to first child ( temp 3-component vector of double) -0:161 vector swizzle ( temp 3-component vector of double) -0:161 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:161 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:161 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:161 'invocation' ( temp uint) -0:161 Constant: -0:161 3 (const int) -0:161 Sequence -0:161 Constant: -0:161 0 (const int) -0:161 Constant: -0:161 1 (const int) -0:161 Constant: -0:161 2 (const int) -0:161 subgroupInclusiveAdd ( global 3-component vector of double) -0:161 vector swizzle ( temp 3-component vector of double) -0:161 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:161 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:161 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:161 Constant: -0:161 2 (const int) -0:161 Constant: -0:161 3 (const int) -0:161 Sequence -0:161 Constant: -0:161 0 (const 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 4-component vector of double) -0:162 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:162 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:162 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:162 'invocation' ( temp uint) -0:162 Constant: -0:162 3 (const int) -0:162 subgroupInclusiveAdd ( global 4-component vector of double) -0:162 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:162 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:162 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:162 Constant: -0:162 3 (const int) -0:162 Constant: -0:162 3 (const int) -0:164 move second child to first child ( temp float) -0:164 direct index ( temp float) -0:164 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:164 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:164 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:164 'invocation' ( temp uint) -0:164 Constant: -0:164 0 (const int) -0:164 Constant: -0:164 0 (const int) -0:164 subgroupInclusiveMul ( global float) -0:164 direct index ( temp float) -0:164 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:164 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:164 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:164 Constant: -0:164 0 (const int) -0:164 Constant: -0:164 0 (const int) -0:164 Constant: -0:164 0 (const int) -0:165 move second child to first child ( temp 2-component vector of float) -0:165 vector swizzle ( temp 2-component vector of float) -0:165 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:165 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:165 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:165 'invocation' ( temp uint) -0:165 Constant: -0:165 0 (const int) -0:165 Sequence -0:165 Constant: -0:165 0 (const int) -0:165 Constant: -0:165 1 (const int) -0:165 subgroupInclusiveMul ( global 2-component vector of float) -0:165 vector swizzle ( temp 2-component vector of float) -0:165 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:165 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:165 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:165 Constant: -0:165 1 (const int) -0:165 Constant: -0:165 0 (const int) -0:165 Sequence -0:165 Constant: -0:165 0 (const int) -0:165 Constant: -0:165 1 (const int) -0:166 move second child to first child ( temp 3-component vector of float) -0:166 vector swizzle ( temp 3-component vector of float) -0:166 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:166 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:166 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:166 'invocation' ( temp uint) -0:166 Constant: -0:166 0 (const int) -0:166 Sequence -0:166 Constant: -0:166 0 (const int) -0:166 Constant: -0:166 1 (const int) -0:166 Constant: -0:166 2 (const int) -0:166 subgroupInclusiveMul ( global 3-component vector of float) -0:166 vector swizzle ( temp 3-component vector of float) -0:166 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:166 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:166 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:166 Constant: -0:166 2 (const int) -0:166 Constant: -0:166 0 (const int) -0:166 Sequence -0:166 Constant: -0:166 0 (const int) -0:166 Constant: -0:166 1 (const int) -0:166 Constant: -0:166 2 (const int) -0:167 move second child to first child ( temp 4-component vector of float) -0:167 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:167 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:167 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:167 'invocation' ( temp uint) -0:167 Constant: -0:167 0 (const int) -0:167 subgroupInclusiveMul ( global 4-component vector of float) -0:167 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:167 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:167 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:167 Constant: -0:167 3 (const int) -0:167 Constant: -0:167 0 (const int) -0:169 move second child to first child ( temp int) -0:169 direct index ( temp int) -0:169 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:169 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:169 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:169 'invocation' ( temp uint) -0:169 Constant: -0:169 1 (const int) -0:169 Constant: -0:169 0 (const int) -0:169 subgroupInclusiveMul ( global int) -0:169 direct index ( temp int) -0:169 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:169 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:169 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:169 Constant: -0:169 0 (const int) -0:169 Constant: -0:169 1 (const int) -0:169 Constant: -0:169 0 (const int) -0:170 move second child to first child ( temp 2-component vector of int) -0:170 vector swizzle ( temp 2-component vector of int) -0:170 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:170 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:170 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:170 'invocation' ( temp uint) -0:170 Constant: -0:170 1 (const int) -0:170 Sequence -0:170 Constant: -0:170 0 (const int) -0:170 Constant: -0:170 1 (const int) -0:170 subgroupInclusiveMul ( global 2-component vector of int) -0:170 vector swizzle ( temp 2-component vector of int) -0:170 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:170 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:170 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:170 Constant: -0:170 1 (const int) -0:170 Constant: -0:170 1 (const int) -0:170 Sequence -0:170 Constant: -0:170 0 (const int) -0:170 Constant: -0:170 1 (const int) -0:171 move second child to first child ( temp 3-component vector of int) -0:171 vector swizzle ( temp 3-component vector of int) -0:171 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:171 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:171 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:171 'invocation' ( temp uint) -0:171 Constant: -0:171 1 (const int) -0:171 Sequence -0:171 Constant: -0:171 0 (const int) -0:171 Constant: -0:171 1 (const int) -0:171 Constant: -0:171 2 (const int) -0:171 subgroupInclusiveMul ( global 3-component vector of int) -0:171 vector swizzle ( temp 3-component vector of int) -0:171 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:171 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:171 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:171 Constant: -0:171 2 (const int) -0:171 Constant: -0:171 1 (const int) -0:171 Sequence -0:171 Constant: -0:171 0 (const int) -0:171 Constant: -0:171 1 (const int) -0:171 Constant: -0:171 2 (const int) -0:172 move second child to first child ( temp 4-component vector of int) -0:172 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:172 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:172 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:172 'invocation' ( temp uint) -0:172 Constant: -0:172 1 (const int) -0:172 subgroupInclusiveMul ( global 4-component vector of int) -0:172 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:172 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:172 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:172 Constant: -0:172 3 (const int) -0:172 Constant: -0:172 1 (const int) -0:174 move second child to first child ( temp uint) -0:174 direct index ( temp uint) -0:174 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:174 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:174 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:174 'invocation' ( temp uint) -0:174 Constant: -0:174 2 (const int) -0:174 Constant: -0:174 0 (const int) -0:174 subgroupInclusiveMul ( global uint) -0:174 direct index ( temp uint) -0:174 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:174 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:174 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:174 Constant: -0:174 0 (const int) -0:174 Constant: -0:174 2 (const int) -0:174 Constant: -0:174 0 (const int) -0:175 move second child to first child ( temp 2-component vector of uint) -0:175 vector swizzle ( temp 2-component vector of uint) -0:175 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:175 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:175 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:175 'invocation' ( temp uint) -0:175 Constant: -0:175 2 (const int) -0:175 Sequence -0:175 Constant: -0:175 0 (const int) -0:175 Constant: -0:175 1 (const int) -0:175 subgroupInclusiveMul ( global 2-component vector of uint) -0:175 vector swizzle ( temp 2-component vector of uint) -0:175 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:175 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:175 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:175 Constant: -0:175 1 (const int) -0:175 Constant: -0:175 2 (const int) -0:175 Sequence -0:175 Constant: -0:175 0 (const int) -0:175 Constant: -0:175 1 (const int) -0:176 move second child to first child ( temp 3-component vector of uint) -0:176 vector swizzle ( temp 3-component vector of uint) -0:176 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:176 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:176 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:176 'invocation' ( temp uint) -0:176 Constant: -0:176 2 (const int) -0:176 Sequence -0:176 Constant: -0:176 0 (const int) -0:176 Constant: -0:176 1 (const int) -0:176 Constant: -0:176 2 (const int) -0:176 subgroupInclusiveMul ( global 3-component vector of uint) -0:176 vector swizzle ( temp 3-component vector of uint) -0:176 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:176 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:176 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:176 Constant: -0:176 2 (const int) -0:176 Constant: -0:176 2 (const int) -0:176 Sequence -0:176 Constant: -0:176 0 (const int) -0:176 Constant: -0:176 1 (const int) -0:176 Constant: -0:176 2 (const int) -0:177 move second child to first child ( temp 4-component vector of uint) -0:177 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:177 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:177 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:177 'invocation' ( temp uint) -0:177 Constant: -0:177 2 (const int) -0:177 subgroupInclusiveMul ( global 4-component vector of uint) -0:177 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:177 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:177 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:177 Constant: -0:177 3 (const int) -0:177 Constant: -0:177 2 (const int) -0:179 move second child to first child ( temp double) -0:179 direct index ( temp double) -0:179 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:179 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:179 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:179 'invocation' ( temp uint) -0:179 Constant: -0:179 3 (const int) -0:179 Constant: -0:179 0 (const int) -0:179 subgroupInclusiveMul ( global double) -0:179 direct index ( temp double) -0:179 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:179 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:179 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:179 Constant: -0:179 0 (const int) -0:179 Constant: -0:179 3 (const int) -0:179 Constant: -0:179 0 (const int) -0:180 move second child to first child ( temp 2-component vector of double) -0:180 vector swizzle ( temp 2-component vector of double) -0:180 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:180 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:180 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:180 'invocation' ( temp uint) -0:180 Constant: -0:180 3 (const int) -0:180 Sequence -0:180 Constant: -0:180 0 (const int) -0:180 Constant: -0:180 1 (const int) -0:180 subgroupInclusiveMul ( global 2-component vector of double) -0:180 vector swizzle ( temp 2-component vector of double) -0:180 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:180 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:180 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:180 Constant: -0:180 1 (const int) -0:180 Constant: -0:180 3 (const int) -0:180 Sequence -0:180 Constant: -0:180 0 (const int) -0:180 Constant: -0:180 1 (const int) -0:181 move second child to first child ( temp 3-component vector of double) -0:181 vector swizzle ( temp 3-component vector of double) -0:181 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:181 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:181 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:181 'invocation' ( temp uint) -0:181 Constant: -0:181 3 (const int) -0:181 Sequence -0:181 Constant: -0:181 0 (const int) -0:181 Constant: -0:181 1 (const int) -0:181 Constant: -0:181 2 (const int) -0:181 subgroupInclusiveMul ( global 3-component vector of double) -0:181 vector swizzle ( temp 3-component vector of double) -0:181 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:181 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:181 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:181 Constant: -0:181 2 (const int) -0:181 Constant: -0:181 3 (const int) -0:181 Sequence -0:181 Constant: -0:181 0 (const int) -0:181 Constant: -0:181 1 (const int) -0:181 Constant: -0:181 2 (const int) -0:182 move second child to first child ( temp 4-component vector of double) -0:182 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:182 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:182 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:182 'invocation' ( temp uint) -0:182 Constant: -0:182 3 (const int) -0:182 subgroupInclusiveMul ( global 4-component vector of double) -0:182 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:182 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:182 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:182 Constant: -0:182 3 (const int) -0:182 Constant: -0:182 3 (const int) -0:184 move second child to first child ( temp float) -0:184 direct index ( temp float) -0:184 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:184 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:184 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:184 'invocation' ( temp uint) -0:184 Constant: -0:184 0 (const int) -0:184 Constant: -0:184 0 (const int) -0:184 subgroupInclusiveMin ( global float) -0:184 direct index ( temp float) -0:184 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:184 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:184 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:184 Constant: -0:184 0 (const int) -0:184 Constant: -0:184 0 (const int) -0:184 Constant: -0:184 0 (const int) -0:185 move second child to first child ( temp 2-component vector of float) -0:185 vector swizzle ( temp 2-component vector of float) -0:185 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:185 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:185 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:185 'invocation' ( temp uint) -0:185 Constant: -0:185 0 (const int) -0:185 Sequence -0:185 Constant: -0:185 0 (const int) -0:185 Constant: -0:185 1 (const int) -0:185 subgroupInclusiveMin ( global 2-component vector of float) -0:185 vector swizzle ( temp 2-component vector of float) -0:185 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:185 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:185 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:185 Constant: -0:185 1 (const int) -0:185 Constant: -0:185 0 (const int) -0:185 Sequence -0:185 Constant: -0:185 0 (const int) -0:185 Constant: -0:185 1 (const int) -0:186 move second child to first child ( temp 3-component vector of float) -0:186 vector swizzle ( temp 3-component vector of float) -0:186 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:186 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:186 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:186 'invocation' ( temp uint) -0:186 Constant: -0:186 0 (const int) -0:186 Sequence -0:186 Constant: -0:186 0 (const int) -0:186 Constant: -0:186 1 (const int) -0:186 Constant: -0:186 2 (const int) -0:186 subgroupInclusiveMin ( global 3-component vector of float) -0:186 vector swizzle ( temp 3-component vector of float) -0:186 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:186 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:186 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:186 Constant: -0:186 2 (const int) -0:186 Constant: -0:186 0 (const int) -0:186 Sequence -0:186 Constant: -0:186 0 (const int) -0:186 Constant: -0:186 1 (const int) -0:186 Constant: -0:186 2 (const int) -0:187 move second child to first child ( temp 4-component vector of float) -0:187 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:187 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:187 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:187 'invocation' ( temp uint) -0:187 Constant: -0:187 0 (const int) -0:187 subgroupInclusiveMin ( global 4-component vector of float) -0:187 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:187 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:187 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:187 Constant: -0:187 3 (const int) -0:187 Constant: -0:187 0 (const int) -0:189 move second child to first child ( temp int) -0:189 direct index ( temp int) -0:189 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:189 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:189 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:189 'invocation' ( temp uint) -0:189 Constant: -0:189 1 (const int) -0:189 Constant: -0:189 0 (const int) -0:189 subgroupInclusiveMin ( global int) -0:189 direct index ( temp int) -0:189 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:189 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:189 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:189 Constant: -0:189 0 (const int) -0:189 Constant: -0:189 1 (const int) -0:189 Constant: -0:189 0 (const int) -0:190 move second child to first child ( temp 2-component vector of int) -0:190 vector swizzle ( temp 2-component vector of int) -0:190 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:190 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:190 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:190 'invocation' ( temp uint) -0:190 Constant: -0:190 1 (const int) -0:190 Sequence -0:190 Constant: -0:190 0 (const int) -0:190 Constant: -0:190 1 (const int) -0:190 subgroupInclusiveMin ( global 2-component vector of int) -0:190 vector swizzle ( temp 2-component vector of int) -0:190 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:190 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:190 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:190 Constant: -0:190 1 (const int) -0:190 Constant: -0:190 1 (const int) -0:190 Sequence -0:190 Constant: -0:190 0 (const int) -0:190 Constant: -0:190 1 (const int) -0:191 move second child to first child ( temp 3-component vector of int) -0:191 vector swizzle ( temp 3-component vector of int) -0:191 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:191 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:191 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:191 'invocation' ( temp uint) -0:191 Constant: -0:191 1 (const int) -0:191 Sequence -0:191 Constant: -0:191 0 (const int) -0:191 Constant: -0:191 1 (const int) -0:191 Constant: -0:191 2 (const int) -0:191 subgroupInclusiveMin ( global 3-component vector of int) -0:191 vector swizzle ( temp 3-component vector of int) -0:191 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:191 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:191 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:191 Constant: -0:191 2 (const int) -0:191 Constant: -0:191 1 (const int) -0:191 Sequence -0:191 Constant: -0:191 0 (const int) -0:191 Constant: -0:191 1 (const int) -0:191 Constant: -0:191 2 (const int) -0:192 move second child to first child ( temp 4-component vector of int) -0:192 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:192 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:192 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:192 'invocation' ( temp uint) -0:192 Constant: -0:192 1 (const int) -0:192 subgroupInclusiveMin ( global 4-component vector of int) -0:192 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:192 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:192 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:192 Constant: -0:192 3 (const int) -0:192 Constant: -0:192 1 (const int) -0:194 move second child to first child ( temp uint) -0:194 direct index ( temp uint) -0:194 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:194 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:194 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:194 'invocation' ( temp uint) -0:194 Constant: -0:194 2 (const int) -0:194 Constant: -0:194 0 (const int) -0:194 subgroupInclusiveMin ( global uint) -0:194 direct index ( temp uint) -0:194 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:194 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:194 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:194 Constant: -0:194 0 (const int) -0:194 Constant: -0:194 2 (const int) -0:194 Constant: -0:194 0 (const int) -0:195 move second child to first child ( temp 2-component vector of uint) -0:195 vector swizzle ( temp 2-component vector of uint) -0:195 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:195 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:195 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:195 'invocation' ( temp uint) -0:195 Constant: -0:195 2 (const int) -0:195 Sequence -0:195 Constant: -0:195 0 (const int) -0:195 Constant: -0:195 1 (const int) -0:195 subgroupInclusiveMin ( global 2-component vector of uint) -0:195 vector swizzle ( temp 2-component vector of uint) -0:195 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:195 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:195 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:195 Constant: -0:195 1 (const int) -0:195 Constant: -0:195 2 (const int) -0:195 Sequence -0:195 Constant: -0:195 0 (const int) -0:195 Constant: -0:195 1 (const int) -0:196 move second child to first child ( temp 3-component vector of uint) -0:196 vector swizzle ( temp 3-component vector of uint) -0:196 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:196 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:196 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:196 'invocation' ( temp uint) -0:196 Constant: -0:196 2 (const int) -0:196 Sequence -0:196 Constant: -0:196 0 (const int) -0:196 Constant: -0:196 1 (const int) -0:196 Constant: -0:196 2 (const int) -0:196 subgroupInclusiveMin ( global 3-component vector of uint) -0:196 vector swizzle ( temp 3-component vector of uint) -0:196 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:196 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:196 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:196 Constant: -0:196 2 (const int) -0:196 Constant: -0:196 2 (const int) -0:196 Sequence -0:196 Constant: -0:196 0 (const int) -0:196 Constant: -0:196 1 (const int) -0:196 Constant: -0:196 2 (const int) -0:197 move second child to first child ( temp 4-component vector of uint) -0:197 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:197 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:197 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:197 'invocation' ( temp uint) -0:197 Constant: -0:197 2 (const int) -0:197 subgroupInclusiveMin ( global 4-component vector of uint) -0:197 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:197 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:197 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:197 Constant: -0:197 3 (const int) -0:197 Constant: -0:197 2 (const int) -0:199 move second child to first child ( temp double) -0:199 direct index ( temp double) -0:199 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:199 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:199 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:199 'invocation' ( temp uint) -0:199 Constant: -0:199 3 (const int) -0:199 Constant: -0:199 0 (const int) -0:199 subgroupInclusiveMin ( global double) -0:199 direct index ( temp double) -0:199 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:199 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:199 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:199 Constant: -0:199 0 (const int) -0:199 Constant: -0:199 3 (const int) -0:199 Constant: -0:199 0 (const int) -0:200 move second child to first child ( temp 2-component vector of double) -0:200 vector swizzle ( temp 2-component vector of double) -0:200 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:200 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:200 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:200 'invocation' ( temp uint) -0:200 Constant: -0:200 3 (const int) -0:200 Sequence -0:200 Constant: -0:200 0 (const int) -0:200 Constant: -0:200 1 (const int) -0:200 subgroupInclusiveMin ( global 2-component vector of double) -0:200 vector swizzle ( temp 2-component vector of double) -0:200 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:200 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:200 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:200 Constant: -0:200 1 (const int) -0:200 Constant: -0:200 3 (const int) -0:200 Sequence -0:200 Constant: -0:200 0 (const int) -0:200 Constant: -0:200 1 (const int) -0:201 move second child to first child ( temp 3-component vector of double) -0:201 vector swizzle ( temp 3-component vector of double) -0:201 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:201 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:201 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:201 'invocation' ( temp uint) -0:201 Constant: -0:201 3 (const int) -0:201 Sequence -0:201 Constant: -0:201 0 (const int) -0:201 Constant: -0:201 1 (const int) -0:201 Constant: -0:201 2 (const int) -0:201 subgroupInclusiveMin ( global 3-component vector of double) -0:201 vector swizzle ( temp 3-component vector of double) -0:201 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:201 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:201 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:201 Constant: -0:201 2 (const int) -0:201 Constant: -0:201 3 (const int) -0:201 Sequence -0:201 Constant: -0:201 0 (const int) -0:201 Constant: -0:201 1 (const int) -0:201 Constant: -0:201 2 (const int) -0:202 move second child to first child ( temp 4-component vector of double) -0:202 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:202 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:202 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:202 'invocation' ( temp uint) -0:202 Constant: -0:202 3 (const int) -0:202 subgroupInclusiveMin ( global 4-component vector of double) -0:202 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:202 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:202 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:202 Constant: -0:202 3 (const int) -0:202 Constant: -0:202 3 (const int) -0:204 move second child to first child ( temp float) -0:204 direct index ( temp float) -0:204 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:204 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:204 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:204 'invocation' ( temp uint) -0:204 Constant: -0:204 0 (const int) -0:204 Constant: -0:204 0 (const int) -0:204 subgroupInclusiveMax ( global float) -0:204 direct index ( temp float) -0:204 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:204 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:204 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:204 Constant: -0:204 0 (const int) -0:204 Constant: -0:204 0 (const int) -0:204 Constant: -0:204 0 (const int) -0:205 move second child to first child ( temp 2-component vector of float) -0:205 vector swizzle ( temp 2-component vector of float) -0:205 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:205 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:205 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:205 'invocation' ( temp uint) -0:205 Constant: -0:205 0 (const int) -0:205 Sequence -0:205 Constant: -0:205 0 (const int) -0:205 Constant: -0:205 1 (const int) -0:205 subgroupInclusiveMax ( global 2-component vector of float) -0:205 vector swizzle ( temp 2-component vector of float) -0:205 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:205 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:205 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:205 Constant: -0:205 1 (const int) -0:205 Constant: -0:205 0 (const int) -0:205 Sequence -0:205 Constant: -0:205 0 (const int) -0:205 Constant: -0:205 1 (const int) -0:206 move second child to first child ( temp 3-component vector of float) -0:206 vector swizzle ( temp 3-component vector of float) -0:206 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:206 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:206 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:206 'invocation' ( temp uint) -0:206 Constant: -0:206 0 (const int) -0:206 Sequence -0:206 Constant: -0:206 0 (const int) -0:206 Constant: -0:206 1 (const int) -0:206 Constant: -0:206 2 (const int) -0:206 subgroupInclusiveMax ( global 3-component vector of float) -0:206 vector swizzle ( temp 3-component vector of float) -0:206 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:206 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:206 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:206 Constant: -0:206 2 (const int) -0:206 Constant: -0:206 0 (const int) -0:206 Sequence -0:206 Constant: -0:206 0 (const int) -0:206 Constant: -0:206 1 (const int) -0:206 Constant: -0:206 2 (const int) -0:207 move second child to first child ( temp 4-component vector of float) -0:207 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:207 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:207 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:207 'invocation' ( temp uint) -0:207 Constant: -0:207 0 (const int) -0:207 subgroupInclusiveMax ( global 4-component vector of float) -0:207 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:207 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:207 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:207 Constant: -0:207 3 (const int) -0:207 Constant: -0:207 0 (const int) -0:209 move second child to first child ( temp int) -0:209 direct index ( temp int) -0:209 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:209 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:209 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:209 'invocation' ( temp uint) -0:209 Constant: -0:209 1 (const int) -0:209 Constant: -0:209 0 (const int) -0:209 subgroupInclusiveMax ( global int) -0:209 direct index ( temp int) -0:209 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:209 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:209 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:209 Constant: -0:209 0 (const int) -0:209 Constant: -0:209 1 (const int) -0:209 Constant: -0:209 0 (const int) -0:210 move second child to first child ( temp 2-component vector of int) -0:210 vector swizzle ( temp 2-component vector of int) -0:210 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:210 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:210 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:210 'invocation' ( temp uint) -0:210 Constant: -0:210 1 (const int) -0:210 Sequence -0:210 Constant: -0:210 0 (const int) -0:210 Constant: -0:210 1 (const int) -0:210 subgroupInclusiveMax ( global 2-component vector of int) -0:210 vector swizzle ( temp 2-component vector of int) -0:210 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:210 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:210 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:210 Constant: -0:210 1 (const int) -0:210 Constant: -0:210 1 (const int) -0:210 Sequence -0:210 Constant: -0:210 0 (const int) -0:210 Constant: -0:210 1 (const int) -0:211 move second child to first child ( temp 3-component vector of int) -0:211 vector swizzle ( temp 3-component vector of int) -0:211 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:211 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:211 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:211 'invocation' ( temp uint) -0:211 Constant: -0:211 1 (const int) -0:211 Sequence -0:211 Constant: -0:211 0 (const int) -0:211 Constant: -0:211 1 (const int) -0:211 Constant: -0:211 2 (const int) -0:211 subgroupInclusiveMax ( global 3-component vector of int) -0:211 vector swizzle ( temp 3-component vector of int) -0:211 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:211 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:211 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:211 Constant: -0:211 2 (const int) -0:211 Constant: -0:211 1 (const int) -0:211 Sequence -0:211 Constant: -0:211 0 (const int) -0:211 Constant: -0:211 1 (const int) -0:211 Constant: -0:211 2 (const int) -0:212 move second child to first child ( temp 4-component vector of int) -0:212 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:212 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:212 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:212 'invocation' ( temp uint) -0:212 Constant: -0:212 1 (const int) -0:212 subgroupInclusiveMax ( global 4-component vector of int) -0:212 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:212 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:212 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:212 Constant: -0:212 3 (const int) -0:212 Constant: -0:212 1 (const int) -0:214 move second child to first child ( temp uint) -0:214 direct index ( temp uint) -0:214 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:214 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:214 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:214 'invocation' ( temp uint) -0:214 Constant: -0:214 2 (const int) -0:214 Constant: -0:214 0 (const int) -0:214 subgroupInclusiveMax ( global uint) -0:214 direct index ( temp uint) -0:214 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:214 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:214 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:214 Constant: -0:214 0 (const int) -0:214 Constant: -0:214 2 (const int) -0:214 Constant: -0:214 0 (const int) -0:215 move second child to first child ( temp 2-component vector of uint) -0:215 vector swizzle ( temp 2-component vector of uint) -0:215 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:215 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:215 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:215 'invocation' ( temp uint) -0:215 Constant: -0:215 2 (const int) -0:215 Sequence -0:215 Constant: -0:215 0 (const int) -0:215 Constant: -0:215 1 (const int) -0:215 subgroupInclusiveMax ( global 2-component vector of uint) -0:215 vector swizzle ( temp 2-component vector of uint) -0:215 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:215 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:215 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:215 Constant: -0:215 1 (const int) -0:215 Constant: -0:215 2 (const int) -0:215 Sequence -0:215 Constant: -0:215 0 (const int) -0:215 Constant: -0:215 1 (const int) -0:216 move second child to first child ( temp 3-component vector of uint) -0:216 vector swizzle ( temp 3-component vector of uint) -0:216 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:216 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:216 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:216 'invocation' ( temp uint) -0:216 Constant: -0:216 2 (const int) -0:216 Sequence -0:216 Constant: -0:216 0 (const int) -0:216 Constant: -0:216 1 (const int) -0:216 Constant: -0:216 2 (const int) -0:216 subgroupInclusiveMax ( global 3-component vector of uint) -0:216 vector swizzle ( temp 3-component vector of uint) -0:216 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:216 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:216 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:216 Constant: -0:216 2 (const int) -0:216 Constant: -0:216 2 (const int) -0:216 Sequence -0:216 Constant: -0:216 0 (const int) -0:216 Constant: -0:216 1 (const int) -0:216 Constant: -0:216 2 (const int) -0:217 move second child to first child ( temp 4-component vector of uint) -0:217 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:217 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:217 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:217 'invocation' ( temp uint) -0:217 Constant: -0:217 2 (const int) -0:217 subgroupInclusiveMax ( global 4-component vector of uint) -0:217 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:217 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:217 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:217 Constant: -0:217 3 (const int) -0:217 Constant: -0:217 2 (const int) -0:219 move second child to first child ( temp double) -0:219 direct index ( temp double) -0:219 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:219 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:219 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:219 'invocation' ( temp uint) -0:219 Constant: -0:219 3 (const int) -0:219 Constant: -0:219 0 (const int) -0:219 subgroupInclusiveMax ( global double) -0:219 direct index ( temp double) -0:219 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:219 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:219 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:219 Constant: -0:219 0 (const int) -0:219 Constant: -0:219 3 (const int) -0:219 Constant: -0:219 0 (const int) -0:220 move second child to first child ( temp 2-component vector of double) -0:220 vector swizzle ( temp 2-component vector of double) -0:220 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:220 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:220 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:220 'invocation' ( temp uint) -0:220 Constant: -0:220 3 (const int) -0:220 Sequence -0:220 Constant: -0:220 0 (const int) -0:220 Constant: -0:220 1 (const int) -0:220 subgroupInclusiveMax ( global 2-component vector of double) -0:220 vector swizzle ( temp 2-component vector of double) -0:220 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:220 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:220 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:220 Constant: -0:220 1 (const int) -0:220 Constant: -0:220 3 (const int) -0:220 Sequence -0:220 Constant: -0:220 0 (const int) -0:220 Constant: -0:220 1 (const int) -0:221 move second child to first child ( temp 3-component vector of double) -0:221 vector swizzle ( temp 3-component vector of double) -0:221 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:221 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:221 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:221 'invocation' ( temp uint) -0:221 Constant: -0:221 3 (const int) -0:221 Sequence -0:221 Constant: -0:221 0 (const int) -0:221 Constant: -0:221 1 (const int) -0:221 Constant: -0:221 2 (const int) -0:221 subgroupInclusiveMax ( global 3-component vector of double) -0:221 vector swizzle ( temp 3-component vector of double) -0:221 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:221 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:221 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:221 Constant: -0:221 2 (const int) -0:221 Constant: -0:221 3 (const int) -0:221 Sequence -0:221 Constant: -0:221 0 (const int) -0:221 Constant: -0:221 1 (const int) -0:221 Constant: -0:221 2 (const int) -0:222 move second child to first child ( temp 4-component vector of double) -0:222 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:222 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:222 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:222 'invocation' ( temp uint) -0:222 Constant: -0:222 3 (const int) -0:222 subgroupInclusiveMax ( global 4-component vector of double) -0:222 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:222 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:222 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:222 Constant: -0:222 3 (const int) -0:222 Constant: -0:222 3 (const int) -0:224 move second child to first child ( temp int) -0:224 direct index ( temp int) -0:224 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:224 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:224 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:224 'invocation' ( temp uint) -0:224 Constant: -0:224 1 (const int) -0:224 Constant: -0:224 0 (const int) -0:224 subgroupInclusiveAnd ( global int) -0:224 direct index ( temp int) -0:224 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:224 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:224 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:224 Constant: -0:224 0 (const int) -0:224 Constant: -0:224 1 (const int) -0:224 Constant: -0:224 0 (const int) -0:225 move second child to first child ( temp 2-component vector of int) -0:225 vector swizzle ( temp 2-component vector of int) -0:225 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:225 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:225 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:225 'invocation' ( temp uint) -0:225 Constant: -0:225 1 (const int) -0:225 Sequence -0:225 Constant: -0:225 0 (const int) -0:225 Constant: -0:225 1 (const int) -0:225 subgroupInclusiveAnd ( global 2-component vector of int) -0:225 vector swizzle ( temp 2-component vector of int) -0:225 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:225 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:225 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:225 Constant: -0:225 1 (const int) -0:225 Constant: -0:225 1 (const int) -0:225 Sequence -0:225 Constant: -0:225 0 (const int) -0:225 Constant: -0:225 1 (const int) -0:226 move second child to first child ( temp 3-component vector of int) -0:226 vector swizzle ( temp 3-component vector of int) -0:226 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:226 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:226 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:226 'invocation' ( temp uint) -0:226 Constant: -0:226 1 (const int) -0:226 Sequence -0:226 Constant: -0:226 0 (const int) -0:226 Constant: -0:226 1 (const int) -0:226 Constant: -0:226 2 (const int) -0:226 subgroupInclusiveAnd ( global 3-component vector of int) -0:226 vector swizzle ( temp 3-component vector of int) -0:226 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:226 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:226 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:226 Constant: -0:226 2 (const int) -0:226 Constant: -0:226 1 (const int) -0:226 Sequence -0:226 Constant: -0:226 0 (const int) -0:226 Constant: -0:226 1 (const int) -0:226 Constant: -0:226 2 (const int) -0:227 move second child to first child ( temp 4-component vector of int) -0:227 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:227 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:227 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:227 'invocation' ( temp uint) -0:227 Constant: -0:227 1 (const int) -0:227 subgroupInclusiveAnd ( global 4-component vector of int) -0:227 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:227 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:227 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:227 Constant: -0:227 3 (const int) -0:227 Constant: -0:227 1 (const int) -0:229 move second child to first child ( temp uint) -0:229 direct index ( temp uint) -0:229 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:229 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:229 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:229 'invocation' ( temp uint) -0:229 Constant: -0:229 2 (const int) -0:229 Constant: -0:229 0 (const int) -0:229 subgroupInclusiveAnd ( global uint) -0:229 direct index ( temp uint) -0:229 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:229 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:229 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:229 Constant: -0:229 0 (const int) -0:229 Constant: -0:229 2 (const int) -0:229 Constant: -0:229 0 (const int) -0:230 move second child to first child ( temp 2-component vector of uint) -0:230 vector swizzle ( temp 2-component vector of uint) -0:230 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:230 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:230 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:230 'invocation' ( temp uint) -0:230 Constant: -0:230 2 (const int) -0:230 Sequence -0:230 Constant: -0:230 0 (const int) -0:230 Constant: -0:230 1 (const int) -0:230 subgroupInclusiveAnd ( global 2-component vector of uint) -0:230 vector swizzle ( temp 2-component vector of uint) -0:230 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:230 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:230 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:230 Constant: -0:230 1 (const int) -0:230 Constant: -0:230 2 (const int) -0:230 Sequence -0:230 Constant: -0:230 0 (const int) -0:230 Constant: -0:230 1 (const int) -0:231 move second child to first child ( temp 3-component vector of uint) -0:231 vector swizzle ( temp 3-component vector of uint) -0:231 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:231 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:231 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:231 'invocation' ( temp uint) -0:231 Constant: -0:231 2 (const int) -0:231 Sequence -0:231 Constant: -0:231 0 (const int) -0:231 Constant: -0:231 1 (const int) -0:231 Constant: -0:231 2 (const int) -0:231 subgroupInclusiveAnd ( global 3-component vector of uint) -0:231 vector swizzle ( temp 3-component vector of uint) -0:231 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:231 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:231 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:231 Constant: -0:231 2 (const int) -0:231 Constant: -0:231 2 (const int) -0:231 Sequence -0:231 Constant: -0:231 0 (const int) -0:231 Constant: -0:231 1 (const int) -0:231 Constant: -0:231 2 (const int) -0:232 move second child to first child ( temp 4-component vector of uint) -0:232 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:232 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:232 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:232 'invocation' ( temp uint) -0:232 Constant: -0:232 2 (const int) -0:232 subgroupInclusiveAnd ( global 4-component vector of uint) -0:232 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:232 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:232 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:232 Constant: -0:232 3 (const int) -0:232 Constant: -0:232 2 (const int) -0:234 move second child to first child ( temp int) -0:234 direct index ( temp int) -0:234 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:234 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:234 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:234 'invocation' ( temp uint) -0:234 Constant: -0:234 1 (const int) -0:234 Constant: -0:234 0 (const int) -0:234 Convert bool to int ( temp int) -0:234 subgroupInclusiveAnd ( global bool) -0:234 Compare Less Than ( temp bool) -0:234 direct index ( temp int) -0:234 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:234 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:234 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:234 Constant: -0:234 0 (const int) -0:234 Constant: -0:234 1 (const int) -0:234 Constant: -0:234 0 (const int) -0:234 Constant: -0:234 0 (const int) -0:235 move second child to first child ( temp 2-component vector of int) -0:235 vector swizzle ( temp 2-component vector of int) -0:235 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:235 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:235 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:235 'invocation' ( temp uint) -0:235 Constant: -0:235 1 (const int) -0:235 Sequence -0:235 Constant: -0:235 0 (const int) -0:235 Constant: -0:235 1 (const int) -0:235 Convert bool to int ( temp 2-component vector of int) -0:235 subgroupInclusiveAnd ( global 2-component vector of bool) -0:235 Compare Less Than ( global 2-component vector of bool) -0:235 vector swizzle ( temp 2-component vector of int) -0:235 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:235 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:235 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:235 Constant: -0:235 1 (const int) -0:235 Constant: -0:235 1 (const int) -0:235 Sequence -0:235 Constant: -0:235 0 (const int) -0:235 Constant: -0:235 1 (const int) -0:235 Constant: -0:235 0 (const int) -0:235 0 (const int) -0:236 move second child to first child ( temp 3-component vector of int) -0:236 vector swizzle ( temp 3-component vector of int) -0:236 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:236 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:236 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:236 'invocation' ( temp uint) -0:236 Constant: -0:236 1 (const int) -0:236 Sequence -0:236 Constant: -0:236 0 (const int) -0:236 Constant: -0:236 1 (const int) -0:236 Constant: -0:236 2 (const int) -0:236 Convert bool to int ( temp 3-component vector of int) -0:236 subgroupInclusiveAnd ( global 3-component vector of bool) -0:236 Compare Less Than ( global 3-component vector of bool) -0:236 vector swizzle ( temp 3-component vector of int) -0:236 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:236 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:236 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:236 Constant: -0:236 1 (const int) -0:236 Constant: -0:236 1 (const int) -0:236 Sequence -0:236 Constant: -0:236 0 (const int) -0:236 Constant: -0:236 1 (const int) -0:236 Constant: -0:236 2 (const int) -0:236 Constant: -0:236 0 (const int) -0:236 0 (const int) -0:236 0 (const int) -0:237 move second child to first child ( temp 4-component vector of int) -0:237 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:237 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:237 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:237 'invocation' ( temp uint) -0:237 Constant: -0:237 1 (const int) -0:237 Convert bool to int ( temp 4-component vector of int) -0:237 subgroupInclusiveAnd ( global 4-component vector of bool) -0:237 Compare Less Than ( global 4-component vector of bool) -0:237 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:237 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:237 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:237 Constant: -0:237 1 (const int) -0:237 Constant: -0:237 1 (const int) -0:237 Constant: -0:237 0 (const int) -0:237 0 (const int) -0:237 0 (const int) -0:237 0 (const int) -0:239 move second child to first child ( temp int) -0:239 direct index ( temp int) -0:239 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:239 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:239 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:239 'invocation' ( temp uint) -0:239 Constant: -0:239 1 (const int) -0:239 Constant: -0:239 0 (const int) -0:239 subgroupInclusiveOr ( global int) -0:239 direct index ( temp int) -0:239 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:239 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:239 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:239 Constant: -0:239 0 (const int) -0:239 Constant: -0:239 1 (const int) -0:239 Constant: -0:239 0 (const int) -0:240 move second child to first child ( temp 2-component vector of int) -0:240 vector swizzle ( temp 2-component vector of int) -0:240 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:240 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:240 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:240 'invocation' ( temp uint) -0:240 Constant: -0:240 1 (const int) -0:240 Sequence -0:240 Constant: -0:240 0 (const int) -0:240 Constant: -0:240 1 (const int) -0:240 subgroupInclusiveOr ( global 2-component vector of int) -0:240 vector swizzle ( temp 2-component vector of int) -0:240 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:240 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:240 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:240 Constant: -0:240 1 (const int) -0:240 Constant: -0:240 1 (const int) -0:240 Sequence -0:240 Constant: -0:240 0 (const int) -0:240 Constant: -0:240 1 (const int) -0:241 move second child to first child ( temp 3-component vector of int) -0:241 vector swizzle ( temp 3-component vector of int) -0:241 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:241 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:241 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:241 'invocation' ( temp uint) -0:241 Constant: -0:241 1 (const int) -0:241 Sequence -0:241 Constant: -0:241 0 (const int) -0:241 Constant: -0:241 1 (const int) -0:241 Constant: -0:241 2 (const int) -0:241 subgroupInclusiveOr ( global 3-component vector of int) -0:241 vector swizzle ( temp 3-component vector of int) -0:241 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:241 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:241 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:241 Constant: -0:241 2 (const int) -0:241 Constant: -0:241 1 (const int) -0:241 Sequence -0:241 Constant: -0:241 0 (const int) -0:241 Constant: -0:241 1 (const int) -0:241 Constant: -0:241 2 (const int) -0:242 move second child to first child ( temp 4-component vector of int) -0:242 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:242 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:242 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:242 'invocation' ( temp uint) -0:242 Constant: -0:242 1 (const int) -0:242 subgroupInclusiveOr ( global 4-component vector of int) -0:242 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:242 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:242 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:242 Constant: -0:242 3 (const int) -0:242 Constant: -0:242 1 (const int) -0:244 move second child to first child ( temp uint) -0:244 direct index ( temp uint) -0:244 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:244 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:244 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:244 'invocation' ( temp uint) -0:244 Constant: -0:244 2 (const int) -0:244 Constant: -0:244 0 (const int) -0:244 subgroupInclusiveOr ( global uint) -0:244 direct index ( temp uint) -0:244 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:244 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:244 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:244 Constant: -0:244 0 (const int) -0:244 Constant: -0:244 2 (const int) -0:244 Constant: -0:244 0 (const int) -0:245 move second child to first child ( temp 2-component vector of uint) -0:245 vector swizzle ( temp 2-component vector of uint) -0:245 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:245 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:245 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:245 'invocation' ( temp uint) -0:245 Constant: -0:245 2 (const int) -0:245 Sequence -0:245 Constant: -0:245 0 (const int) -0:245 Constant: -0:245 1 (const int) -0:245 subgroupInclusiveOr ( global 2-component vector of uint) -0:245 vector swizzle ( temp 2-component vector of uint) -0:245 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:245 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:245 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:245 Constant: -0:245 1 (const int) -0:245 Constant: -0:245 2 (const int) -0:245 Sequence -0:245 Constant: -0:245 0 (const int) -0:245 Constant: -0:245 1 (const int) -0:246 move second child to first child ( temp 3-component vector of uint) -0:246 vector swizzle ( temp 3-component vector of uint) -0:246 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:246 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:246 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:246 'invocation' ( temp uint) -0:246 Constant: -0:246 2 (const int) -0:246 Sequence -0:246 Constant: -0:246 0 (const int) -0:246 Constant: -0:246 1 (const int) -0:246 Constant: -0:246 2 (const int) -0:246 subgroupInclusiveOr ( global 3-component vector of uint) -0:246 vector swizzle ( temp 3-component vector of uint) -0:246 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:246 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:246 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:246 Constant: -0:246 2 (const int) -0:246 Constant: -0:246 2 (const int) -0:246 Sequence -0:246 Constant: -0:246 0 (const int) -0:246 Constant: -0:246 1 (const int) -0:246 Constant: -0:246 2 (const int) -0:247 move second child to first child ( temp 4-component vector of uint) -0:247 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:247 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:247 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:247 'invocation' ( temp uint) -0:247 Constant: -0:247 2 (const int) -0:247 subgroupInclusiveOr ( global 4-component vector of uint) -0:247 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:247 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:247 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:247 Constant: -0:247 3 (const int) -0:247 Constant: -0:247 2 (const int) -0:249 move second child to first child ( temp int) -0:249 direct index ( temp int) -0:249 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:249 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:249 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:249 'invocation' ( temp uint) -0:249 Constant: -0:249 1 (const int) -0:249 Constant: -0:249 0 (const int) -0:249 Convert bool to int ( temp int) -0:249 subgroupInclusiveOr ( global bool) -0:249 Compare Less Than ( temp bool) -0:249 direct index ( temp int) -0:249 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:249 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:249 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:249 Constant: -0:249 0 (const int) -0:249 Constant: -0:249 1 (const int) -0:249 Constant: -0:249 0 (const int) -0:249 Constant: -0:249 0 (const int) -0:250 move second child to first child ( temp 2-component vector of int) -0:250 vector swizzle ( temp 2-component vector of int) -0:250 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:250 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:250 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:250 'invocation' ( temp uint) -0:250 Constant: -0:250 1 (const int) -0:250 Sequence -0:250 Constant: -0:250 0 (const int) -0:250 Constant: -0:250 1 (const int) -0:250 Convert bool to int ( temp 2-component vector of int) -0:250 subgroupInclusiveOr ( global 2-component vector of bool) -0:250 Compare Less Than ( global 2-component vector of bool) -0:250 vector swizzle ( temp 2-component vector of int) -0:250 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:250 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:250 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:250 Constant: -0:250 1 (const int) -0:250 Constant: -0:250 1 (const int) -0:250 Sequence -0:250 Constant: -0:250 0 (const int) -0:250 Constant: -0:250 1 (const int) -0:250 Constant: -0:250 0 (const int) -0:250 0 (const int) -0:251 move second child to first child ( temp 3-component vector of int) -0:251 vector swizzle ( temp 3-component vector of int) -0:251 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:251 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:251 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:251 'invocation' ( temp uint) -0:251 Constant: -0:251 1 (const int) -0:251 Sequence -0:251 Constant: -0:251 0 (const int) -0:251 Constant: -0:251 1 (const int) -0:251 Constant: -0:251 2 (const int) -0:251 Convert bool to int ( temp 3-component vector of int) -0:251 subgroupInclusiveOr ( global 3-component vector of bool) -0:251 Compare Less Than ( global 3-component vector of bool) -0:251 vector swizzle ( temp 3-component vector of int) -0:251 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:251 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:251 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:251 Constant: -0:251 1 (const int) -0:251 Constant: -0:251 1 (const int) -0:251 Sequence -0:251 Constant: -0:251 0 (const int) -0:251 Constant: -0:251 1 (const int) -0:251 Constant: -0:251 2 (const int) -0:251 Constant: -0:251 0 (const int) -0:251 0 (const int) -0:251 0 (const int) -0:252 move second child to first child ( temp 4-component vector of int) -0:252 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:252 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:252 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:252 'invocation' ( temp uint) -0:252 Constant: -0:252 1 (const int) -0:252 Convert bool to int ( temp 4-component vector of int) -0:252 subgroupInclusiveOr ( global 4-component vector of bool) -0:252 Compare Less Than ( global 4-component vector of bool) -0:252 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:252 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:252 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:252 Constant: -0:252 1 (const int) -0:252 Constant: -0:252 1 (const int) -0:252 Constant: -0:252 0 (const int) -0:252 0 (const int) -0:252 0 (const int) -0:252 0 (const int) -0:254 move second child to first child ( temp int) -0:254 direct index ( temp int) -0:254 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:254 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:254 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:254 'invocation' ( temp uint) -0:254 Constant: -0:254 1 (const int) -0:254 Constant: -0:254 0 (const int) -0:254 subgroupInclusiveXor ( global int) -0:254 direct index ( temp int) -0:254 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:254 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:254 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:254 Constant: -0:254 0 (const int) -0:254 Constant: -0:254 1 (const int) -0:254 Constant: -0:254 0 (const int) -0:255 move second child to first child ( temp 2-component vector of int) -0:255 vector swizzle ( temp 2-component vector of int) -0:255 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:255 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:255 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:255 'invocation' ( temp uint) -0:255 Constant: -0:255 1 (const int) -0:255 Sequence -0:255 Constant: -0:255 0 (const int) -0:255 Constant: -0:255 1 (const int) -0:255 subgroupInclusiveXor ( global 2-component vector of int) -0:255 vector swizzle ( temp 2-component vector of int) -0:255 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:255 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:255 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:255 Constant: -0:255 1 (const int) -0:255 Constant: -0:255 1 (const int) -0:255 Sequence -0:255 Constant: -0:255 0 (const int) -0:255 Constant: -0:255 1 (const int) -0:256 move second child to first child ( temp 3-component vector of int) -0:256 vector swizzle ( temp 3-component vector of int) -0:256 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:256 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:256 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:256 'invocation' ( temp uint) -0:256 Constant: -0:256 1 (const int) -0:256 Sequence -0:256 Constant: -0:256 0 (const int) -0:256 Constant: -0:256 1 (const int) -0:256 Constant: -0:256 2 (const int) -0:256 subgroupInclusiveXor ( global 3-component vector of int) -0:256 vector swizzle ( temp 3-component vector of int) -0:256 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:256 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:256 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:256 Constant: -0:256 2 (const int) -0:256 Constant: -0:256 1 (const int) -0:256 Sequence -0:256 Constant: -0:256 0 (const int) -0:256 Constant: -0:256 1 (const int) -0:256 Constant: -0:256 2 (const int) -0:257 move second child to first child ( temp 4-component vector of int) -0:257 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:257 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:257 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:257 'invocation' ( temp uint) -0:257 Constant: -0:257 1 (const int) -0:257 subgroupInclusiveXor ( global 4-component vector of int) -0:257 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:257 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:257 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:257 Constant: -0:257 3 (const int) -0:257 Constant: -0:257 1 (const int) -0:259 move second child to first child ( temp uint) -0:259 direct index ( temp uint) -0:259 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:259 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:259 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:259 'invocation' ( temp uint) -0:259 Constant: -0:259 2 (const int) -0:259 Constant: -0:259 0 (const int) -0:259 subgroupInclusiveXor ( global uint) -0:259 direct index ( temp uint) -0:259 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:259 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:259 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:259 Constant: -0:259 0 (const int) -0:259 Constant: -0:259 2 (const int) -0:259 Constant: -0:259 0 (const int) -0:260 move second child to first child ( temp 2-component vector of uint) -0:260 vector swizzle ( temp 2-component vector of uint) -0:260 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:260 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:260 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:260 'invocation' ( temp uint) -0:260 Constant: -0:260 2 (const int) -0:260 Sequence -0:260 Constant: -0:260 0 (const int) -0:260 Constant: -0:260 1 (const int) -0:260 subgroupInclusiveXor ( global 2-component vector of uint) -0:260 vector swizzle ( temp 2-component vector of uint) -0:260 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:260 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:260 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:260 Constant: -0:260 1 (const int) -0:260 Constant: -0:260 2 (const int) -0:260 Sequence -0:260 Constant: -0:260 0 (const int) -0:260 Constant: -0:260 1 (const int) -0:261 move second child to first child ( temp 3-component vector of uint) -0:261 vector swizzle ( temp 3-component vector of uint) -0:261 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:261 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:261 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:261 'invocation' ( temp uint) -0:261 Constant: -0:261 2 (const int) -0:261 Sequence -0:261 Constant: -0:261 0 (const int) -0:261 Constant: -0:261 1 (const int) -0:261 Constant: -0:261 2 (const int) -0:261 subgroupInclusiveXor ( global 3-component vector of uint) -0:261 vector swizzle ( temp 3-component vector of uint) -0:261 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:261 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:261 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:261 Constant: -0:261 2 (const int) -0:261 Constant: -0:261 2 (const int) -0:261 Sequence -0:261 Constant: -0:261 0 (const int) -0:261 Constant: -0:261 1 (const int) -0:261 Constant: -0:261 2 (const int) -0:262 move second child to first child ( temp 4-component vector of uint) -0:262 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:262 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:262 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:262 'invocation' ( temp uint) -0:262 Constant: -0:262 2 (const int) -0:262 subgroupInclusiveXor ( global 4-component vector of uint) -0:262 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:262 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:262 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:262 Constant: -0:262 3 (const int) -0:262 Constant: -0:262 2 (const int) -0:264 move second child to first child ( temp int) -0:264 direct index ( temp int) -0:264 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:264 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:264 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:264 'invocation' ( temp uint) -0:264 Constant: -0:264 1 (const int) -0:264 Constant: -0:264 0 (const int) -0:264 Convert bool to int ( temp int) -0:264 subgroupInclusiveXor ( global bool) -0:264 Compare Less Than ( temp bool) -0:264 direct index ( temp int) -0:264 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:264 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:264 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:264 Constant: -0:264 0 (const int) -0:264 Constant: -0:264 1 (const int) -0:264 Constant: -0:264 0 (const int) -0:264 Constant: -0:264 0 (const int) -0:265 move second child to first child ( temp 2-component vector of int) -0:265 vector swizzle ( temp 2-component vector of int) -0:265 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:265 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:265 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:265 'invocation' ( temp uint) -0:265 Constant: -0:265 1 (const int) -0:265 Sequence -0:265 Constant: -0:265 0 (const int) -0:265 Constant: -0:265 1 (const int) -0:265 Convert bool to int ( temp 2-component vector of int) -0:265 subgroupInclusiveXor ( global 2-component vector of bool) -0:265 Compare Less Than ( global 2-component vector of bool) -0:265 vector swizzle ( temp 2-component vector of int) -0:265 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:265 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:265 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:265 Constant: -0:265 1 (const int) -0:265 Constant: -0:265 1 (const int) -0:265 Sequence -0:265 Constant: -0:265 0 (const int) -0:265 Constant: -0:265 1 (const int) -0:265 Constant: -0:265 0 (const int) -0:265 0 (const int) -0:266 move second child to first child ( temp 3-component vector of int) -0:266 vector swizzle ( temp 3-component vector of int) -0:266 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:266 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:266 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:266 'invocation' ( temp uint) -0:266 Constant: -0:266 1 (const int) -0:266 Sequence -0:266 Constant: -0:266 0 (const int) -0:266 Constant: -0:266 1 (const int) -0:266 Constant: -0:266 2 (const int) -0:266 Convert bool to int ( temp 3-component vector of int) -0:266 subgroupInclusiveXor ( global 3-component vector of bool) -0:266 Compare Less Than ( global 3-component vector of bool) -0:266 vector swizzle ( temp 3-component vector of int) -0:266 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:266 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:266 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:266 Constant: -0:266 1 (const int) -0:266 Constant: -0:266 1 (const int) -0:266 Sequence -0:266 Constant: -0:266 0 (const int) -0:266 Constant: -0:266 1 (const int) -0:266 Constant: -0:266 2 (const int) -0:266 Constant: -0:266 0 (const int) -0:266 0 (const int) -0:266 0 (const int) -0:267 move second child to first child ( temp 4-component vector of int) -0:267 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:267 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:267 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:267 'invocation' ( temp uint) -0:267 Constant: -0:267 1 (const int) -0:267 Convert bool to int ( temp 4-component vector of int) -0:267 subgroupInclusiveXor ( global 4-component vector of bool) -0:267 Compare Less Than ( global 4-component vector of bool) -0:267 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:267 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:267 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:267 Constant: -0:267 1 (const int) -0:267 Constant: -0:267 1 (const int) -0:267 Constant: -0:267 0 (const int) -0:267 0 (const int) -0:267 0 (const int) -0:267 0 (const int) -0:269 move second child to first child ( temp float) -0:269 direct index ( temp float) -0:269 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:269 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:269 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:269 'invocation' ( temp uint) -0:269 Constant: -0:269 0 (const int) -0:269 Constant: -0:269 0 (const int) -0:269 subgroupExclusiveAdd ( global float) -0:269 direct index ( temp float) -0:269 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:269 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:269 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:269 Constant: -0:269 0 (const int) -0:269 Constant: -0:269 0 (const int) -0:269 Constant: -0:269 0 (const int) -0:270 move second child to first child ( temp 2-component vector of float) -0:270 vector swizzle ( temp 2-component vector of float) -0:270 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:270 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:270 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:270 'invocation' ( temp uint) -0:270 Constant: -0:270 0 (const int) -0:270 Sequence -0:270 Constant: -0:270 0 (const int) -0:270 Constant: -0:270 1 (const int) -0:270 subgroupExclusiveAdd ( global 2-component vector of float) -0:270 vector swizzle ( temp 2-component vector of float) -0:270 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:270 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:270 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:270 Constant: -0:270 1 (const int) -0:270 Constant: -0:270 0 (const int) -0:270 Sequence -0:270 Constant: -0:270 0 (const int) -0:270 Constant: -0:270 1 (const int) -0:271 move second child to first child ( temp 3-component vector of float) -0:271 vector swizzle ( temp 3-component vector of float) -0:271 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:271 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:271 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:271 'invocation' ( temp uint) -0:271 Constant: -0:271 0 (const int) -0:271 Sequence -0:271 Constant: -0:271 0 (const int) -0:271 Constant: -0:271 1 (const int) -0:271 Constant: -0:271 2 (const int) -0:271 subgroupExclusiveAdd ( global 3-component vector of float) -0:271 vector swizzle ( temp 3-component vector of float) -0:271 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:271 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:271 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:271 Constant: -0:271 2 (const int) -0:271 Constant: -0:271 0 (const int) -0:271 Sequence -0:271 Constant: -0:271 0 (const int) -0:271 Constant: -0:271 1 (const int) -0:271 Constant: -0:271 2 (const int) -0:272 move second child to first child ( temp 4-component vector of float) -0:272 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:272 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:272 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:272 'invocation' ( temp uint) -0:272 Constant: -0:272 0 (const int) -0:272 subgroupExclusiveAdd ( global 4-component vector of float) -0:272 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:272 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:272 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:272 Constant: -0:272 3 (const int) -0:272 Constant: -0:272 0 (const int) -0:274 move second child to first child ( temp int) -0:274 direct index ( temp int) -0:274 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:274 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:274 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:274 'invocation' ( temp uint) -0:274 Constant: -0:274 1 (const int) -0:274 Constant: -0:274 0 (const int) -0:274 subgroupExclusiveAdd ( global int) -0:274 direct index ( temp int) -0:274 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:274 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:274 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:274 Constant: -0:274 0 (const int) -0:274 Constant: -0:274 1 (const int) -0:274 Constant: -0:274 0 (const int) -0:275 move second child to first child ( temp 2-component vector of int) -0:275 vector swizzle ( temp 2-component vector of int) -0:275 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:275 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:275 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:275 'invocation' ( temp uint) -0:275 Constant: -0:275 1 (const int) -0:275 Sequence -0:275 Constant: -0:275 0 (const int) -0:275 Constant: -0:275 1 (const int) -0:275 subgroupExclusiveAdd ( global 2-component vector of int) -0:275 vector swizzle ( temp 2-component vector of int) -0:275 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:275 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:275 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:275 Constant: -0:275 1 (const int) -0:275 Constant: -0:275 1 (const int) -0:275 Sequence -0:275 Constant: -0:275 0 (const int) -0:275 Constant: -0:275 1 (const int) -0:276 move second child to first child ( temp 3-component vector of int) -0:276 vector swizzle ( temp 3-component vector of int) -0:276 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:276 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:276 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:276 'invocation' ( temp uint) -0:276 Constant: -0:276 1 (const int) -0:276 Sequence -0:276 Constant: -0:276 0 (const int) -0:276 Constant: -0:276 1 (const int) -0:276 Constant: -0:276 2 (const int) -0:276 subgroupExclusiveAdd ( global 3-component vector of int) -0:276 vector swizzle ( temp 3-component vector of int) -0:276 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:276 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:276 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:276 Constant: -0:276 2 (const int) -0:276 Constant: -0:276 1 (const int) -0:276 Sequence -0:276 Constant: -0:276 0 (const int) -0:276 Constant: -0:276 1 (const int) -0:276 Constant: -0:276 2 (const int) -0:277 move second child to first child ( temp 4-component vector of int) -0:277 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:277 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:277 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:277 'invocation' ( temp uint) -0:277 Constant: -0:277 1 (const int) -0:277 subgroupExclusiveAdd ( global 4-component vector of int) -0:277 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:277 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:277 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:277 Constant: -0:277 3 (const int) -0:277 Constant: -0:277 1 (const int) -0:279 move second child to first child ( temp uint) -0:279 direct index ( temp uint) -0:279 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:279 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:279 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:279 'invocation' ( temp uint) -0:279 Constant: -0:279 2 (const int) -0:279 Constant: -0:279 0 (const int) -0:279 subgroupExclusiveAdd ( global uint) -0:279 direct index ( temp uint) -0:279 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:279 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:279 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:279 Constant: -0:279 0 (const int) -0:279 Constant: -0:279 2 (const int) -0:279 Constant: -0:279 0 (const int) -0:280 move second child to first child ( temp 2-component vector of uint) -0:280 vector swizzle ( temp 2-component vector of uint) -0:280 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:280 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:280 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:280 'invocation' ( temp uint) -0:280 Constant: -0:280 2 (const int) -0:280 Sequence -0:280 Constant: -0:280 0 (const int) -0:280 Constant: -0:280 1 (const int) -0:280 subgroupExclusiveAdd ( global 2-component vector of uint) -0:280 vector swizzle ( temp 2-component vector of uint) -0:280 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:280 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:280 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:280 Constant: -0:280 1 (const int) -0:280 Constant: -0:280 2 (const int) -0:280 Sequence -0:280 Constant: -0:280 0 (const int) -0:280 Constant: -0:280 1 (const int) -0:281 move second child to first child ( temp 3-component vector of uint) -0:281 vector swizzle ( temp 3-component vector of uint) -0:281 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:281 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:281 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:281 'invocation' ( temp uint) -0:281 Constant: -0:281 2 (const int) -0:281 Sequence -0:281 Constant: -0:281 0 (const int) -0:281 Constant: -0:281 1 (const int) -0:281 Constant: -0:281 2 (const int) -0:281 subgroupExclusiveAdd ( global 3-component vector of uint) -0:281 vector swizzle ( temp 3-component vector of uint) -0:281 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:281 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:281 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:281 Constant: -0:281 2 (const int) -0:281 Constant: -0:281 2 (const int) -0:281 Sequence -0:281 Constant: -0:281 0 (const int) -0:281 Constant: -0:281 1 (const int) -0:281 Constant: -0:281 2 (const int) -0:282 move second child to first child ( temp 4-component vector of uint) -0:282 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:282 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:282 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:282 'invocation' ( temp uint) -0:282 Constant: -0:282 2 (const int) -0:282 subgroupExclusiveAdd ( global 4-component vector of uint) -0:282 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:282 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:282 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:282 Constant: -0:282 3 (const int) -0:282 Constant: -0:282 2 (const int) -0:284 move second child to first child ( temp double) -0:284 direct index ( temp double) -0:284 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:284 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:284 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:284 'invocation' ( temp uint) -0:284 Constant: -0:284 3 (const int) -0:284 Constant: -0:284 0 (const int) -0:284 subgroupExclusiveAdd ( global double) -0:284 direct index ( temp double) -0:284 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:284 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:284 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:284 Constant: -0:284 0 (const int) -0:284 Constant: -0:284 3 (const int) -0:284 Constant: -0:284 0 (const int) -0:285 move second child to first child ( temp 2-component vector of double) -0:285 vector swizzle ( temp 2-component vector of double) -0:285 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:285 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:285 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:285 'invocation' ( temp uint) -0:285 Constant: -0:285 3 (const int) -0:285 Sequence -0:285 Constant: -0:285 0 (const int) -0:285 Constant: -0:285 1 (const int) -0:285 subgroupExclusiveAdd ( global 2-component vector of double) -0:285 vector swizzle ( temp 2-component vector of double) -0:285 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:285 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:285 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:285 Constant: -0:285 1 (const int) -0:285 Constant: -0:285 3 (const int) -0:285 Sequence -0:285 Constant: -0:285 0 (const int) -0:285 Constant: -0:285 1 (const int) -0:286 move second child to first child ( temp 3-component vector of double) -0:286 vector swizzle ( temp 3-component vector of double) -0:286 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:286 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:286 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:286 'invocation' ( temp uint) -0:286 Constant: -0:286 3 (const int) -0:286 Sequence -0:286 Constant: -0:286 0 (const int) -0:286 Constant: -0:286 1 (const int) -0:286 Constant: -0:286 2 (const int) -0:286 subgroupExclusiveAdd ( global 3-component vector of double) -0:286 vector swizzle ( temp 3-component vector of double) -0:286 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:286 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:286 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:286 Constant: -0:286 2 (const int) -0:286 Constant: -0:286 3 (const int) -0:286 Sequence -0:286 Constant: -0:286 0 (const int) -0:286 Constant: -0:286 1 (const int) -0:286 Constant: -0:286 2 (const int) -0:287 move second child to first child ( temp 4-component vector of double) -0:287 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:287 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:287 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:287 'invocation' ( temp uint) -0:287 Constant: -0:287 3 (const int) -0:287 subgroupExclusiveAdd ( global 4-component vector of double) -0:287 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:287 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:287 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:287 Constant: -0:287 3 (const int) -0:287 Constant: -0:287 3 (const int) -0:289 move second child to first child ( temp float) -0:289 direct index ( temp float) -0:289 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:289 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:289 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:289 'invocation' ( temp uint) -0:289 Constant: -0:289 0 (const int) -0:289 Constant: -0:289 0 (const int) -0:289 subgroupExclusiveMul ( global float) -0:289 direct index ( temp float) -0:289 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:289 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:289 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:289 Constant: -0:289 0 (const int) -0:289 Constant: -0:289 0 (const int) -0:289 Constant: -0:289 0 (const int) -0:290 move second child to first child ( temp 2-component vector of float) -0:290 vector swizzle ( temp 2-component vector of float) -0:290 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:290 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:290 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:290 'invocation' ( temp uint) -0:290 Constant: -0:290 0 (const int) -0:290 Sequence -0:290 Constant: -0:290 0 (const int) -0:290 Constant: -0:290 1 (const int) -0:290 subgroupExclusiveMul ( global 2-component vector of float) -0:290 vector swizzle ( temp 2-component vector of float) -0:290 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:290 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:290 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:290 Constant: -0:290 1 (const int) -0:290 Constant: -0:290 0 (const int) -0:290 Sequence -0:290 Constant: -0:290 0 (const int) -0:290 Constant: -0:290 1 (const int) -0:291 move second child to first child ( temp 3-component vector of float) -0:291 vector swizzle ( temp 3-component vector of float) -0:291 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:291 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:291 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:291 'invocation' ( temp uint) -0:291 Constant: -0:291 0 (const int) -0:291 Sequence -0:291 Constant: -0:291 0 (const int) -0:291 Constant: -0:291 1 (const int) -0:291 Constant: -0:291 2 (const int) -0:291 subgroupExclusiveMul ( global 3-component vector of float) -0:291 vector swizzle ( temp 3-component vector of float) -0:291 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:291 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:291 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:291 Constant: -0:291 2 (const int) -0:291 Constant: -0:291 0 (const int) -0:291 Sequence -0:291 Constant: -0:291 0 (const int) -0:291 Constant: -0:291 1 (const int) -0:291 Constant: -0:291 2 (const int) -0:292 move second child to first child ( temp 4-component vector of float) -0:292 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:292 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:292 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:292 'invocation' ( temp uint) -0:292 Constant: -0:292 0 (const int) -0:292 subgroupExclusiveMul ( global 4-component vector of float) -0:292 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:292 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:292 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:292 Constant: -0:292 3 (const int) -0:292 Constant: -0:292 0 (const int) -0:294 move second child to first child ( temp int) -0:294 direct index ( temp int) -0:294 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:294 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:294 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:294 'invocation' ( temp uint) -0:294 Constant: -0:294 1 (const int) -0:294 Constant: -0:294 0 (const int) -0:294 subgroupExclusiveMul ( global int) -0:294 direct index ( temp int) -0:294 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:294 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:294 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:294 Constant: -0:294 0 (const int) -0:294 Constant: -0:294 1 (const int) -0:294 Constant: -0:294 0 (const int) -0:295 move second child to first child ( temp 2-component vector of int) -0:295 vector swizzle ( temp 2-component vector of int) -0:295 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:295 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:295 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:295 'invocation' ( temp uint) -0:295 Constant: -0:295 1 (const int) -0:295 Sequence -0:295 Constant: -0:295 0 (const int) -0:295 Constant: -0:295 1 (const int) -0:295 subgroupExclusiveMul ( global 2-component vector of int) -0:295 vector swizzle ( temp 2-component vector of int) -0:295 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:295 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:295 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:295 Constant: -0:295 1 (const int) -0:295 Constant: -0:295 1 (const int) -0:295 Sequence -0:295 Constant: -0:295 0 (const int) -0:295 Constant: -0:295 1 (const int) -0:296 move second child to first child ( temp 3-component vector of int) -0:296 vector swizzle ( temp 3-component vector of int) -0:296 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:296 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:296 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:296 'invocation' ( temp uint) -0:296 Constant: -0:296 1 (const int) -0:296 Sequence -0:296 Constant: -0:296 0 (const int) -0:296 Constant: -0:296 1 (const int) -0:296 Constant: -0:296 2 (const int) -0:296 subgroupExclusiveMul ( global 3-component vector of int) -0:296 vector swizzle ( temp 3-component vector of int) -0:296 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:296 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:296 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:296 Constant: -0:296 2 (const int) -0:296 Constant: -0:296 1 (const int) -0:296 Sequence -0:296 Constant: -0:296 0 (const int) -0:296 Constant: -0:296 1 (const int) -0:296 Constant: -0:296 2 (const int) -0:297 move second child to first child ( temp 4-component vector of int) -0:297 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:297 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:297 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:297 'invocation' ( temp uint) -0:297 Constant: -0:297 1 (const int) -0:297 subgroupExclusiveMul ( global 4-component vector of int) -0:297 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:297 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:297 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:297 Constant: -0:297 3 (const int) -0:297 Constant: -0:297 1 (const int) -0:299 move second child to first child ( temp uint) -0:299 direct index ( temp uint) -0:299 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:299 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:299 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:299 'invocation' ( temp uint) -0:299 Constant: -0:299 2 (const int) -0:299 Constant: -0:299 0 (const int) -0:299 subgroupExclusiveMul ( global uint) -0:299 direct index ( temp uint) -0:299 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:299 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:299 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:299 Constant: -0:299 0 (const int) -0:299 Constant: -0:299 2 (const int) -0:299 Constant: -0:299 0 (const int) -0:300 move second child to first child ( temp 2-component vector of uint) -0:300 vector swizzle ( temp 2-component vector of uint) -0:300 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:300 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:300 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:300 'invocation' ( temp uint) -0:300 Constant: -0:300 2 (const int) -0:300 Sequence -0:300 Constant: -0:300 0 (const int) -0:300 Constant: -0:300 1 (const int) -0:300 subgroupExclusiveMul ( global 2-component vector of uint) -0:300 vector swizzle ( temp 2-component vector of uint) -0:300 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:300 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:300 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:300 Constant: -0:300 1 (const int) -0:300 Constant: -0:300 2 (const int) -0:300 Sequence -0:300 Constant: -0:300 0 (const int) -0:300 Constant: -0:300 1 (const int) -0:301 move second child to first child ( temp 3-component vector of uint) -0:301 vector swizzle ( temp 3-component vector of uint) -0:301 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:301 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:301 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:301 'invocation' ( temp uint) -0:301 Constant: -0:301 2 (const int) -0:301 Sequence -0:301 Constant: -0:301 0 (const int) -0:301 Constant: -0:301 1 (const int) -0:301 Constant: -0:301 2 (const int) -0:301 subgroupExclusiveMul ( global 3-component vector of uint) -0:301 vector swizzle ( temp 3-component vector of uint) -0:301 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:301 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:301 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:301 Constant: -0:301 2 (const int) -0:301 Constant: -0:301 2 (const int) -0:301 Sequence -0:301 Constant: -0:301 0 (const int) -0:301 Constant: -0:301 1 (const int) -0:301 Constant: -0:301 2 (const int) -0:302 move second child to first child ( temp 4-component vector of uint) -0:302 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:302 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:302 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:302 'invocation' ( temp uint) -0:302 Constant: -0:302 2 (const int) -0:302 subgroupExclusiveMul ( global 4-component vector of uint) -0:302 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:302 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:302 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:302 Constant: -0:302 3 (const int) -0:302 Constant: -0:302 2 (const int) -0:304 move second child to first child ( temp double) -0:304 direct index ( temp double) -0:304 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:304 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:304 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:304 'invocation' ( temp uint) -0:304 Constant: -0:304 3 (const int) -0:304 Constant: -0:304 0 (const int) -0:304 subgroupExclusiveMul ( global double) -0:304 direct index ( temp double) -0:304 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:304 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:304 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:304 Constant: -0:304 0 (const int) -0:304 Constant: -0:304 3 (const int) -0:304 Constant: -0:304 0 (const int) -0:305 move second child to first child ( temp 2-component vector of double) -0:305 vector swizzle ( temp 2-component vector of double) -0:305 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:305 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:305 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:305 'invocation' ( temp uint) -0:305 Constant: -0:305 3 (const int) -0:305 Sequence -0:305 Constant: -0:305 0 (const int) -0:305 Constant: -0:305 1 (const int) -0:305 subgroupExclusiveMul ( global 2-component vector of double) -0:305 vector swizzle ( temp 2-component vector of double) -0:305 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:305 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:305 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:305 Constant: -0:305 1 (const int) -0:305 Constant: -0:305 3 (const int) -0:305 Sequence -0:305 Constant: -0:305 0 (const int) -0:305 Constant: -0:305 1 (const int) -0:306 move second child to first child ( temp 3-component vector of double) -0:306 vector swizzle ( temp 3-component vector of double) -0:306 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:306 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:306 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:306 'invocation' ( temp uint) -0:306 Constant: -0:306 3 (const int) -0:306 Sequence -0:306 Constant: -0:306 0 (const int) -0:306 Constant: -0:306 1 (const int) -0:306 Constant: -0:306 2 (const int) -0:306 subgroupExclusiveMul ( global 3-component vector of double) -0:306 vector swizzle ( temp 3-component vector of double) -0:306 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:306 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:306 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:306 Constant: -0:306 2 (const int) -0:306 Constant: -0:306 3 (const int) -0:306 Sequence -0:306 Constant: -0:306 0 (const int) -0:306 Constant: -0:306 1 (const int) -0:306 Constant: -0:306 2 (const int) -0:307 move second child to first child ( temp 4-component vector of double) -0:307 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:307 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:307 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:307 'invocation' ( temp uint) -0:307 Constant: -0:307 3 (const int) -0:307 subgroupExclusiveMul ( global 4-component vector of double) -0:307 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:307 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:307 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:307 Constant: -0:307 3 (const int) -0:307 Constant: -0:307 3 (const int) -0:309 move second child to first child ( temp float) -0:309 direct index ( temp float) -0:309 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:309 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:309 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:309 'invocation' ( temp uint) -0:309 Constant: -0:309 0 (const int) -0:309 Constant: -0:309 0 (const int) -0:309 subgroupExclusiveMin ( global float) -0:309 direct index ( temp float) -0:309 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:309 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:309 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:309 Constant: -0:309 0 (const int) -0:309 Constant: -0:309 0 (const int) -0:309 Constant: -0:309 0 (const int) -0:310 move second child to first child ( temp 2-component vector of float) -0:310 vector swizzle ( temp 2-component vector of float) -0:310 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:310 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:310 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:310 'invocation' ( temp uint) -0:310 Constant: -0:310 0 (const int) -0:310 Sequence -0:310 Constant: -0:310 0 (const int) -0:310 Constant: -0:310 1 (const int) -0:310 subgroupExclusiveMin ( global 2-component vector of float) -0:310 vector swizzle ( temp 2-component vector of float) -0:310 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:310 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:310 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:310 Constant: -0:310 1 (const int) -0:310 Constant: -0:310 0 (const int) -0:310 Sequence -0:310 Constant: -0:310 0 (const int) -0:310 Constant: -0:310 1 (const int) -0:311 move second child to first child ( temp 3-component vector of float) -0:311 vector swizzle ( temp 3-component vector of float) -0:311 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:311 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:311 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:311 'invocation' ( temp uint) -0:311 Constant: -0:311 0 (const int) -0:311 Sequence -0:311 Constant: -0:311 0 (const int) -0:311 Constant: -0:311 1 (const int) -0:311 Constant: -0:311 2 (const int) -0:311 subgroupExclusiveMin ( global 3-component vector of float) -0:311 vector swizzle ( temp 3-component vector of float) -0:311 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:311 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:311 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:311 Constant: -0:311 2 (const int) -0:311 Constant: -0:311 0 (const int) -0:311 Sequence -0:311 Constant: -0:311 0 (const int) -0:311 Constant: -0:311 1 (const int) -0:311 Constant: -0:311 2 (const int) -0:312 move second child to first child ( temp 4-component vector of float) -0:312 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:312 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:312 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:312 'invocation' ( temp uint) -0:312 Constant: -0:312 0 (const int) -0:312 subgroupExclusiveMin ( global 4-component vector of float) -0:312 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:312 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:312 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:312 Constant: -0:312 3 (const int) -0:312 Constant: -0:312 0 (const int) -0:314 move second child to first child ( temp int) -0:314 direct index ( temp int) -0:314 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:314 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:314 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:314 'invocation' ( temp uint) -0:314 Constant: -0:314 1 (const int) -0:314 Constant: -0:314 0 (const int) -0:314 subgroupExclusiveMin ( global int) -0:314 direct index ( temp int) -0:314 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:314 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:314 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:314 Constant: -0:314 0 (const int) -0:314 Constant: -0:314 1 (const int) -0:314 Constant: -0:314 0 (const int) -0:315 move second child to first child ( temp 2-component vector of int) -0:315 vector swizzle ( temp 2-component vector of int) -0:315 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:315 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:315 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:315 'invocation' ( temp uint) -0:315 Constant: -0:315 1 (const int) -0:315 Sequence -0:315 Constant: -0:315 0 (const int) -0:315 Constant: -0:315 1 (const int) -0:315 subgroupExclusiveMin ( global 2-component vector of int) -0:315 vector swizzle ( temp 2-component vector of int) -0:315 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:315 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:315 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:315 Constant: -0:315 1 (const int) -0:315 Constant: -0:315 1 (const int) -0:315 Sequence -0:315 Constant: -0:315 0 (const int) -0:315 Constant: -0:315 1 (const int) -0:316 move second child to first child ( temp 3-component vector of int) -0:316 vector swizzle ( temp 3-component vector of int) -0:316 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:316 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:316 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:316 'invocation' ( temp uint) -0:316 Constant: -0:316 1 (const int) -0:316 Sequence -0:316 Constant: -0:316 0 (const int) -0:316 Constant: -0:316 1 (const int) -0:316 Constant: -0:316 2 (const int) -0:316 subgroupExclusiveMin ( global 3-component vector of int) -0:316 vector swizzle ( temp 3-component vector of int) -0:316 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:316 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:316 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:316 Constant: -0:316 2 (const int) -0:316 Constant: -0:316 1 (const int) -0:316 Sequence -0:316 Constant: -0:316 0 (const int) -0:316 Constant: -0:316 1 (const int) -0:316 Constant: -0:316 2 (const int) -0:317 move second child to first child ( temp 4-component vector of int) -0:317 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:317 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:317 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:317 'invocation' ( temp uint) -0:317 Constant: -0:317 1 (const int) -0:317 subgroupExclusiveMin ( global 4-component vector of int) -0:317 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:317 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:317 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:317 Constant: -0:317 3 (const int) -0:317 Constant: -0:317 1 (const int) -0:319 move second child to first child ( temp uint) -0:319 direct index ( temp uint) -0:319 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:319 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:319 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:319 'invocation' ( temp uint) -0:319 Constant: -0:319 2 (const int) -0:319 Constant: -0:319 0 (const int) -0:319 subgroupExclusiveMin ( global uint) -0:319 direct index ( temp uint) -0:319 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:319 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:319 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:319 Constant: -0:319 0 (const int) -0:319 Constant: -0:319 2 (const int) -0:319 Constant: -0:319 0 (const int) -0:320 move second child to first child ( temp 2-component vector of uint) -0:320 vector swizzle ( temp 2-component vector of uint) -0:320 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:320 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:320 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:320 'invocation' ( temp uint) -0:320 Constant: -0:320 2 (const int) -0:320 Sequence -0:320 Constant: -0:320 0 (const int) -0:320 Constant: -0:320 1 (const int) -0:320 subgroupExclusiveMin ( global 2-component vector of uint) -0:320 vector swizzle ( temp 2-component vector of uint) -0:320 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:320 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:320 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:320 Constant: -0:320 1 (const int) -0:320 Constant: -0:320 2 (const int) -0:320 Sequence -0:320 Constant: -0:320 0 (const int) -0:320 Constant: -0:320 1 (const int) -0:321 move second child to first child ( temp 3-component vector of uint) -0:321 vector swizzle ( temp 3-component vector of uint) -0:321 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:321 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:321 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:321 'invocation' ( temp uint) -0:321 Constant: -0:321 2 (const int) -0:321 Sequence -0:321 Constant: -0:321 0 (const int) -0:321 Constant: -0:321 1 (const int) -0:321 Constant: -0:321 2 (const int) -0:321 subgroupExclusiveMin ( global 3-component vector of uint) -0:321 vector swizzle ( temp 3-component vector of uint) -0:321 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:321 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:321 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:321 Constant: -0:321 2 (const int) -0:321 Constant: -0:321 2 (const int) -0:321 Sequence -0:321 Constant: -0:321 0 (const int) -0:321 Constant: -0:321 1 (const int) -0:321 Constant: -0:321 2 (const int) -0:322 move second child to first child ( temp 4-component vector of uint) -0:322 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:322 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:322 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:322 'invocation' ( temp uint) -0:322 Constant: -0:322 2 (const int) -0:322 subgroupExclusiveMin ( global 4-component vector of uint) -0:322 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:322 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:322 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:322 Constant: -0:322 3 (const int) -0:322 Constant: -0:322 2 (const int) -0:324 move second child to first child ( temp double) -0:324 direct index ( temp double) -0:324 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:324 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:324 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:324 'invocation' ( temp uint) -0:324 Constant: -0:324 3 (const int) -0:324 Constant: -0:324 0 (const int) -0:324 subgroupExclusiveMin ( global double) -0:324 direct index ( temp double) -0:324 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:324 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:324 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:324 Constant: -0:324 0 (const int) -0:324 Constant: -0:324 3 (const int) -0:324 Constant: -0:324 0 (const int) -0:325 move second child to first child ( temp 2-component vector of double) -0:325 vector swizzle ( temp 2-component vector of double) -0:325 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:325 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:325 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:325 'invocation' ( temp uint) -0:325 Constant: -0:325 3 (const int) -0:325 Sequence -0:325 Constant: -0:325 0 (const int) -0:325 Constant: -0:325 1 (const int) -0:325 subgroupExclusiveMin ( global 2-component vector of double) -0:325 vector swizzle ( temp 2-component vector of double) -0:325 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:325 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:325 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:325 Constant: -0:325 1 (const int) -0:325 Constant: -0:325 3 (const int) -0:325 Sequence -0:325 Constant: -0:325 0 (const int) -0:325 Constant: -0:325 1 (const int) -0:326 move second child to first child ( temp 3-component vector of double) -0:326 vector swizzle ( temp 3-component vector of double) -0:326 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:326 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:326 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:326 'invocation' ( temp uint) -0:326 Constant: -0:326 3 (const int) -0:326 Sequence -0:326 Constant: -0:326 0 (const int) -0:326 Constant: -0:326 1 (const int) -0:326 Constant: -0:326 2 (const int) -0:326 subgroupExclusiveMin ( global 3-component vector of double) -0:326 vector swizzle ( temp 3-component vector of double) -0:326 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:326 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:326 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:326 Constant: -0:326 2 (const int) -0:326 Constant: -0:326 3 (const int) -0:326 Sequence -0:326 Constant: -0:326 0 (const int) -0:326 Constant: -0:326 1 (const int) -0:326 Constant: -0:326 2 (const int) -0:327 move second child to first child ( temp 4-component vector of double) -0:327 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:327 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:327 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:327 'invocation' ( temp uint) -0:327 Constant: -0:327 3 (const int) -0:327 subgroupExclusiveMin ( global 4-component vector of double) -0:327 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:327 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:327 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:327 Constant: -0:327 3 (const int) -0:327 Constant: -0:327 3 (const int) -0:329 move second child to first child ( temp float) -0:329 direct index ( temp float) -0:329 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:329 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:329 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:329 'invocation' ( temp uint) -0:329 Constant: -0:329 0 (const int) -0:329 Constant: -0:329 0 (const int) -0:329 subgroupExclusiveMax ( global float) -0:329 direct index ( temp float) -0:329 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:329 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:329 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:329 Constant: -0:329 0 (const int) -0:329 Constant: -0:329 0 (const int) -0:329 Constant: -0:329 0 (const int) -0:330 move second child to first child ( temp 2-component vector of float) -0:330 vector swizzle ( temp 2-component vector of float) -0:330 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:330 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:330 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:330 'invocation' ( temp uint) -0:330 Constant: -0:330 0 (const int) -0:330 Sequence -0:330 Constant: -0:330 0 (const int) -0:330 Constant: -0:330 1 (const int) -0:330 subgroupExclusiveMax ( global 2-component vector of float) -0:330 vector swizzle ( temp 2-component vector of float) -0:330 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:330 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:330 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:330 Constant: -0:330 1 (const int) -0:330 Constant: -0:330 0 (const int) -0:330 Sequence -0:330 Constant: -0:330 0 (const int) -0:330 Constant: -0:330 1 (const int) -0:331 move second child to first child ( temp 3-component vector of float) -0:331 vector swizzle ( temp 3-component vector of float) -0:331 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:331 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:331 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:331 'invocation' ( temp uint) -0:331 Constant: -0:331 0 (const int) -0:331 Sequence -0:331 Constant: -0:331 0 (const int) -0:331 Constant: -0:331 1 (const int) -0:331 Constant: -0:331 2 (const int) -0:331 subgroupExclusiveMax ( global 3-component vector of float) -0:331 vector swizzle ( temp 3-component vector of float) -0:331 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:331 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:331 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:331 Constant: -0:331 2 (const int) -0:331 Constant: -0:331 0 (const int) -0:331 Sequence -0:331 Constant: -0:331 0 (const int) -0:331 Constant: -0:331 1 (const int) -0:331 Constant: -0:331 2 (const int) -0:332 move second child to first child ( temp 4-component vector of float) -0:332 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:332 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:332 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:332 'invocation' ( temp uint) -0:332 Constant: -0:332 0 (const int) -0:332 subgroupExclusiveMax ( global 4-component vector of float) -0:332 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:332 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:332 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:332 Constant: -0:332 3 (const int) -0:332 Constant: -0:332 0 (const int) -0:334 move second child to first child ( temp int) -0:334 direct index ( temp int) -0:334 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:334 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:334 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:334 'invocation' ( temp uint) -0:334 Constant: -0:334 1 (const int) -0:334 Constant: -0:334 0 (const int) -0:334 subgroupExclusiveMax ( global int) -0:334 direct index ( temp int) -0:334 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:334 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:334 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:334 Constant: -0:334 0 (const int) -0:334 Constant: -0:334 1 (const int) -0:334 Constant: -0:334 0 (const int) -0:335 move second child to first child ( temp 2-component vector of int) -0:335 vector swizzle ( temp 2-component vector of int) -0:335 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:335 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:335 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:335 'invocation' ( temp uint) -0:335 Constant: -0:335 1 (const int) -0:335 Sequence -0:335 Constant: -0:335 0 (const int) -0:335 Constant: -0:335 1 (const int) -0:335 subgroupExclusiveMax ( global 2-component vector of int) -0:335 vector swizzle ( temp 2-component vector of int) -0:335 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:335 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:335 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:335 Constant: -0:335 1 (const int) -0:335 Constant: -0:335 1 (const int) -0:335 Sequence -0:335 Constant: -0:335 0 (const int) -0:335 Constant: -0:335 1 (const int) -0:336 move second child to first child ( temp 3-component vector of int) -0:336 vector swizzle ( temp 3-component vector of int) -0:336 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:336 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:336 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:336 'invocation' ( temp uint) -0:336 Constant: -0:336 1 (const int) -0:336 Sequence -0:336 Constant: -0:336 0 (const int) -0:336 Constant: -0:336 1 (const int) -0:336 Constant: -0:336 2 (const int) -0:336 subgroupExclusiveMax ( global 3-component vector of int) -0:336 vector swizzle ( temp 3-component vector of int) -0:336 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:336 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:336 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:336 Constant: -0:336 2 (const int) -0:336 Constant: -0:336 1 (const int) -0:336 Sequence -0:336 Constant: -0:336 0 (const int) -0:336 Constant: -0:336 1 (const int) -0:336 Constant: -0:336 2 (const int) -0:337 move second child to first child ( temp 4-component vector of int) -0:337 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:337 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:337 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:337 'invocation' ( temp uint) -0:337 Constant: -0:337 1 (const int) -0:337 subgroupExclusiveMax ( global 4-component vector of int) -0:337 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:337 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:337 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:337 Constant: -0:337 3 (const int) -0:337 Constant: -0:337 1 (const int) -0:339 move second child to first child ( temp uint) -0:339 direct index ( temp uint) -0:339 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:339 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:339 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:339 'invocation' ( temp uint) -0:339 Constant: -0:339 2 (const int) -0:339 Constant: -0:339 0 (const int) -0:339 subgroupExclusiveMax ( global uint) -0:339 direct index ( temp uint) -0:339 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:339 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:339 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:339 Constant: -0:339 0 (const int) -0:339 Constant: -0:339 2 (const int) -0:339 Constant: -0:339 0 (const int) -0:340 move second child to first child ( temp 2-component vector of uint) -0:340 vector swizzle ( temp 2-component vector of uint) -0:340 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:340 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:340 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:340 'invocation' ( temp uint) -0:340 Constant: -0:340 2 (const int) -0:340 Sequence -0:340 Constant: -0:340 0 (const int) -0:340 Constant: -0:340 1 (const int) -0:340 subgroupExclusiveMax ( global 2-component vector of uint) -0:340 vector swizzle ( temp 2-component vector of uint) -0:340 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:340 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:340 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:340 Constant: -0:340 1 (const int) -0:340 Constant: -0:340 2 (const int) -0:340 Sequence -0:340 Constant: -0:340 0 (const int) -0:340 Constant: -0:340 1 (const int) -0:341 move second child to first child ( temp 3-component vector of uint) -0:341 vector swizzle ( temp 3-component vector of uint) -0:341 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:341 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:341 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:341 'invocation' ( temp uint) -0:341 Constant: -0:341 2 (const int) -0:341 Sequence -0:341 Constant: -0:341 0 (const int) -0:341 Constant: -0:341 1 (const int) -0:341 Constant: -0:341 2 (const int) -0:341 subgroupExclusiveMax ( global 3-component vector of uint) -0:341 vector swizzle ( temp 3-component vector of uint) -0:341 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:341 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:341 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:341 Constant: -0:341 2 (const int) -0:341 Constant: -0:341 2 (const int) -0:341 Sequence -0:341 Constant: -0:341 0 (const int) -0:341 Constant: -0:341 1 (const int) -0:341 Constant: -0:341 2 (const int) -0:342 move second child to first child ( temp 4-component vector of uint) -0:342 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:342 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:342 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:342 'invocation' ( temp uint) -0:342 Constant: -0:342 2 (const int) -0:342 subgroupExclusiveMax ( global 4-component vector of uint) -0:342 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:342 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:342 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:342 Constant: -0:342 3 (const int) -0:342 Constant: -0:342 2 (const int) -0:344 move second child to first child ( temp double) -0:344 direct index ( temp double) -0:344 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:344 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:344 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:344 'invocation' ( temp uint) -0:344 Constant: -0:344 3 (const int) -0:344 Constant: -0:344 0 (const int) -0:344 subgroupExclusiveMax ( global double) -0:344 direct index ( temp double) -0:344 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:344 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:344 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:344 Constant: -0:344 0 (const int) -0:344 Constant: -0:344 3 (const int) -0:344 Constant: -0:344 0 (const int) -0:345 move second child to first child ( temp 2-component vector of double) -0:345 vector swizzle ( temp 2-component vector of double) -0:345 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:345 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:345 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:345 'invocation' ( temp uint) -0:345 Constant: -0:345 3 (const int) -0:345 Sequence -0:345 Constant: -0:345 0 (const int) -0:345 Constant: -0:345 1 (const int) -0:345 subgroupExclusiveMax ( global 2-component vector of double) -0:345 vector swizzle ( temp 2-component vector of double) -0:345 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:345 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:345 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:345 Constant: -0:345 1 (const int) -0:345 Constant: -0:345 3 (const int) -0:345 Sequence -0:345 Constant: -0:345 0 (const int) -0:345 Constant: -0:345 1 (const int) -0:346 move second child to first child ( temp 3-component vector of double) -0:346 vector swizzle ( temp 3-component vector of double) -0:346 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:346 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:346 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:346 'invocation' ( temp uint) -0:346 Constant: -0:346 3 (const int) -0:346 Sequence -0:346 Constant: -0:346 0 (const int) -0:346 Constant: -0:346 1 (const int) -0:346 Constant: -0:346 2 (const int) -0:346 subgroupExclusiveMax ( global 3-component vector of double) -0:346 vector swizzle ( temp 3-component vector of double) -0:346 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:346 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:346 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:346 Constant: -0:346 2 (const int) -0:346 Constant: -0:346 3 (const int) -0:346 Sequence -0:346 Constant: -0:346 0 (const int) -0:346 Constant: -0:346 1 (const int) -0:346 Constant: -0:346 2 (const int) -0:347 move second child to first child ( temp 4-component vector of double) -0:347 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:347 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:347 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:347 'invocation' ( temp uint) -0:347 Constant: -0:347 3 (const int) -0:347 subgroupExclusiveMax ( global 4-component vector of double) -0:347 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:347 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:347 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:347 Constant: -0:347 3 (const int) -0:347 Constant: -0:347 3 (const int) -0:349 move second child to first child ( temp int) -0:349 direct index ( temp int) -0:349 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:349 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:349 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:349 'invocation' ( temp uint) -0:349 Constant: -0:349 1 (const int) -0:349 Constant: -0:349 0 (const int) -0:349 subgroupExclusiveAnd ( global int) -0:349 direct index ( temp int) -0:349 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:349 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:349 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:349 Constant: -0:349 0 (const int) -0:349 Constant: -0:349 1 (const int) -0:349 Constant: -0:349 0 (const int) -0:350 move second child to first child ( temp 2-component vector of int) -0:350 vector swizzle ( temp 2-component vector of int) -0:350 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:350 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:350 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:350 'invocation' ( temp uint) -0:350 Constant: -0:350 1 (const int) -0:350 Sequence -0:350 Constant: -0:350 0 (const int) -0:350 Constant: -0:350 1 (const int) -0:350 subgroupExclusiveAnd ( global 2-component vector of int) -0:350 vector swizzle ( temp 2-component vector of int) -0:350 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:350 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:350 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:350 Constant: -0:350 1 (const int) -0:350 Constant: -0:350 1 (const int) -0:350 Sequence -0:350 Constant: -0:350 0 (const int) -0:350 Constant: -0:350 1 (const int) -0:351 move second child to first child ( temp 3-component vector of int) -0:351 vector swizzle ( temp 3-component vector of int) -0:351 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:351 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:351 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:351 'invocation' ( temp uint) -0:351 Constant: -0:351 1 (const int) -0:351 Sequence -0:351 Constant: -0:351 0 (const int) -0:351 Constant: -0:351 1 (const int) -0:351 Constant: -0:351 2 (const int) -0:351 subgroupExclusiveAnd ( global 3-component vector of int) -0:351 vector swizzle ( temp 3-component vector of int) -0:351 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:351 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:351 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:351 Constant: -0:351 2 (const int) -0:351 Constant: -0:351 1 (const int) -0:351 Sequence -0:351 Constant: -0:351 0 (const int) -0:351 Constant: -0:351 1 (const int) -0:351 Constant: -0:351 2 (const int) -0:352 move second child to first child ( temp 4-component vector of int) -0:352 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:352 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:352 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:352 'invocation' ( temp uint) -0:352 Constant: -0:352 1 (const int) -0:352 subgroupExclusiveAnd ( global 4-component vector of int) -0:352 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:352 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:352 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:352 Constant: -0:352 3 (const int) -0:352 Constant: -0:352 1 (const int) -0:354 move second child to first child ( temp uint) -0:354 direct index ( temp uint) -0:354 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:354 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:354 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:354 'invocation' ( temp uint) -0:354 Constant: -0:354 2 (const int) -0:354 Constant: -0:354 0 (const int) -0:354 subgroupExclusiveAnd ( global uint) -0:354 direct index ( temp uint) -0:354 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:354 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:354 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:354 Constant: -0:354 0 (const int) -0:354 Constant: -0:354 2 (const int) -0:354 Constant: -0:354 0 (const int) -0:355 move second child to first child ( temp 2-component vector of uint) -0:355 vector swizzle ( temp 2-component vector of uint) -0:355 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:355 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:355 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:355 'invocation' ( temp uint) -0:355 Constant: -0:355 2 (const int) -0:355 Sequence -0:355 Constant: -0:355 0 (const int) -0:355 Constant: -0:355 1 (const int) -0:355 subgroupExclusiveAnd ( global 2-component vector of uint) -0:355 vector swizzle ( temp 2-component vector of uint) -0:355 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:355 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:355 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:355 Constant: -0:355 1 (const int) -0:355 Constant: -0:355 2 (const int) -0:355 Sequence -0:355 Constant: -0:355 0 (const int) -0:355 Constant: -0:355 1 (const int) -0:356 move second child to first child ( temp 3-component vector of uint) -0:356 vector swizzle ( temp 3-component vector of uint) -0:356 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:356 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:356 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:356 'invocation' ( temp uint) -0:356 Constant: -0:356 2 (const int) -0:356 Sequence -0:356 Constant: -0:356 0 (const int) -0:356 Constant: -0:356 1 (const int) -0:356 Constant: -0:356 2 (const int) -0:356 subgroupExclusiveAnd ( global 3-component vector of uint) -0:356 vector swizzle ( temp 3-component vector of uint) -0:356 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:356 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:356 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:356 Constant: -0:356 2 (const int) -0:356 Constant: -0:356 2 (const int) -0:356 Sequence -0:356 Constant: -0:356 0 (const int) -0:356 Constant: -0:356 1 (const int) -0:356 Constant: -0:356 2 (const int) -0:357 move second child to first child ( temp 4-component vector of uint) -0:357 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:357 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:357 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:357 'invocation' ( temp uint) -0:357 Constant: -0:357 2 (const int) -0:357 subgroupExclusiveAnd ( global 4-component vector of uint) -0:357 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:357 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:357 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:357 Constant: -0:357 3 (const int) -0:357 Constant: -0:357 2 (const int) -0:359 move second child to first child ( temp int) -0:359 direct index ( temp int) -0:359 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:359 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:359 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:359 'invocation' ( temp uint) -0:359 Constant: -0:359 1 (const int) -0:359 Constant: -0:359 0 (const int) -0:359 Convert bool to int ( temp int) -0:359 subgroupExclusiveAnd ( global bool) -0:359 Compare Less Than ( temp bool) -0:359 direct index ( temp int) -0:359 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:359 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:359 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:359 Constant: -0:359 0 (const int) -0:359 Constant: -0:359 1 (const int) -0:359 Constant: -0:359 0 (const int) -0:359 Constant: -0:359 0 (const int) -0:360 move second child to first child ( temp 2-component vector of int) -0:360 vector swizzle ( temp 2-component vector of int) -0:360 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:360 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:360 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:360 'invocation' ( temp uint) -0:360 Constant: -0:360 1 (const int) -0:360 Sequence -0:360 Constant: -0:360 0 (const int) -0:360 Constant: -0:360 1 (const int) -0:360 Convert bool to int ( temp 2-component vector of int) -0:360 subgroupExclusiveAnd ( global 2-component vector of bool) -0:360 Compare Less Than ( global 2-component vector of bool) -0:360 vector swizzle ( temp 2-component vector of int) -0:360 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:360 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:360 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:360 Constant: -0:360 1 (const int) -0:360 Constant: -0:360 1 (const int) -0:360 Sequence -0:360 Constant: -0:360 0 (const int) -0:360 Constant: -0:360 1 (const int) -0:360 Constant: -0:360 0 (const int) -0:360 0 (const int) -0:361 move second child to first child ( temp 3-component vector of int) -0:361 vector swizzle ( temp 3-component vector of int) -0:361 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:361 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:361 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:361 'invocation' ( temp uint) -0:361 Constant: -0:361 1 (const int) -0:361 Sequence -0:361 Constant: -0:361 0 (const int) -0:361 Constant: -0:361 1 (const int) -0:361 Constant: -0:361 2 (const int) -0:361 Convert bool to int ( temp 3-component vector of int) -0:361 subgroupExclusiveAnd ( global 3-component vector of bool) -0:361 Compare Less Than ( global 3-component vector of bool) -0:361 vector swizzle ( temp 3-component vector of int) -0:361 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:361 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:361 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:361 Constant: -0:361 1 (const int) -0:361 Constant: -0:361 1 (const int) -0:361 Sequence -0:361 Constant: -0:361 0 (const int) -0:361 Constant: -0:361 1 (const int) -0:361 Constant: -0:361 2 (const int) -0:361 Constant: -0:361 0 (const int) -0:361 0 (const int) -0:361 0 (const int) -0:362 move second child to first child ( temp 4-component vector of int) -0:362 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:362 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:362 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:362 'invocation' ( temp uint) -0:362 Constant: -0:362 1 (const int) -0:362 Convert bool to int ( temp 4-component vector of int) -0:362 subgroupExclusiveAnd ( global 4-component vector of bool) -0:362 Compare Less Than ( global 4-component vector of bool) -0:362 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:362 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:362 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:362 Constant: -0:362 1 (const int) -0:362 Constant: -0:362 1 (const int) -0:362 Constant: -0:362 0 (const int) -0:362 0 (const int) -0:362 0 (const int) -0:362 0 (const int) -0:364 move second child to first child ( temp int) -0:364 direct index ( temp int) -0:364 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:364 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:364 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:364 'invocation' ( temp uint) -0:364 Constant: -0:364 1 (const int) -0:364 Constant: -0:364 0 (const int) -0:364 subgroupExclusiveOr ( global int) -0:364 direct index ( temp int) -0:364 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:364 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:364 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:364 Constant: -0:364 0 (const int) -0:364 Constant: -0:364 1 (const int) -0:364 Constant: -0:364 0 (const int) -0:365 move second child to first child ( temp 2-component vector of int) -0:365 vector swizzle ( temp 2-component vector of int) -0:365 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:365 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:365 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:365 'invocation' ( temp uint) -0:365 Constant: -0:365 1 (const int) -0:365 Sequence -0:365 Constant: -0:365 0 (const int) -0:365 Constant: -0:365 1 (const int) -0:365 subgroupExclusiveOr ( global 2-component vector of int) -0:365 vector swizzle ( temp 2-component vector of int) -0:365 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:365 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:365 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:365 Constant: -0:365 1 (const int) -0:365 Constant: -0:365 1 (const int) -0:365 Sequence -0:365 Constant: -0:365 0 (const int) -0:365 Constant: -0:365 1 (const int) -0:366 move second child to first child ( temp 3-component vector of int) -0:366 vector swizzle ( temp 3-component vector of int) -0:366 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:366 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:366 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:366 'invocation' ( temp uint) -0:366 Constant: -0:366 1 (const int) -0:366 Sequence -0:366 Constant: -0:366 0 (const int) -0:366 Constant: -0:366 1 (const int) -0:366 Constant: -0:366 2 (const int) -0:366 subgroupExclusiveOr ( global 3-component vector of int) -0:366 vector swizzle ( temp 3-component vector of int) -0:366 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:366 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:366 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:366 Constant: -0:366 2 (const int) -0:366 Constant: -0:366 1 (const int) -0:366 Sequence -0:366 Constant: -0:366 0 (const int) -0:366 Constant: -0:366 1 (const int) -0:366 Constant: -0:366 2 (const int) -0:367 move second child to first child ( temp 4-component vector of int) -0:367 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:367 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:367 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:367 'invocation' ( temp uint) -0:367 Constant: -0:367 1 (const int) -0:367 subgroupExclusiveOr ( global 4-component vector of int) -0:367 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:367 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:367 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:367 Constant: -0:367 3 (const int) -0:367 Constant: -0:367 1 (const int) -0:369 move second child to first child ( temp uint) -0:369 direct index ( temp uint) -0:369 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:369 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:369 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:369 'invocation' ( temp uint) -0:369 Constant: -0:369 2 (const int) -0:369 Constant: -0:369 0 (const int) -0:369 subgroupExclusiveOr ( global uint) -0:369 direct index ( temp uint) -0:369 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:369 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:369 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:369 Constant: -0:369 0 (const int) -0:369 Constant: -0:369 2 (const int) -0:369 Constant: -0:369 0 (const int) -0:370 move second child to first child ( temp 2-component vector of uint) -0:370 vector swizzle ( temp 2-component vector of uint) -0:370 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:370 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:370 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:370 'invocation' ( temp uint) -0:370 Constant: -0:370 2 (const int) -0:370 Sequence -0:370 Constant: -0:370 0 (const int) -0:370 Constant: -0:370 1 (const int) -0:370 subgroupExclusiveOr ( global 2-component vector of uint) -0:370 vector swizzle ( temp 2-component vector of uint) -0:370 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:370 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:370 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:370 Constant: -0:370 1 (const int) -0:370 Constant: -0:370 2 (const int) -0:370 Sequence -0:370 Constant: -0:370 0 (const int) -0:370 Constant: -0:370 1 (const int) -0:371 move second child to first child ( temp 3-component vector of uint) -0:371 vector swizzle ( temp 3-component vector of uint) -0:371 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:371 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:371 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:371 'invocation' ( temp uint) -0:371 Constant: -0:371 2 (const int) -0:371 Sequence -0:371 Constant: -0:371 0 (const int) -0:371 Constant: -0:371 1 (const int) -0:371 Constant: -0:371 2 (const int) -0:371 subgroupExclusiveOr ( global 3-component vector of uint) -0:371 vector swizzle ( temp 3-component vector of uint) -0:371 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:371 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:371 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:371 Constant: -0:371 2 (const int) -0:371 Constant: -0:371 2 (const int) -0:371 Sequence -0:371 Constant: -0:371 0 (const int) -0:371 Constant: -0:371 1 (const int) -0:371 Constant: -0:371 2 (const int) -0:372 move second child to first child ( temp 4-component vector of uint) -0:372 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:372 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:372 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:372 'invocation' ( temp uint) -0:372 Constant: -0:372 2 (const int) -0:372 subgroupExclusiveOr ( global 4-component vector of uint) -0:372 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:372 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:372 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:372 Constant: -0:372 3 (const int) -0:372 Constant: -0:372 2 (const int) -0:374 move second child to first child ( temp int) -0:374 direct index ( temp int) -0:374 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:374 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:374 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:374 'invocation' ( temp uint) -0:374 Constant: -0:374 1 (const int) -0:374 Constant: -0:374 0 (const int) -0:374 Convert bool to int ( temp int) -0:374 subgroupExclusiveOr ( global bool) -0:374 Compare Less Than ( temp bool) -0:374 direct index ( temp int) -0:374 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:374 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:374 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:374 Constant: -0:374 0 (const int) -0:374 Constant: -0:374 1 (const int) -0:374 Constant: -0:374 0 (const int) -0:374 Constant: -0:374 0 (const int) -0:375 move second child to first child ( temp 2-component vector of int) -0:375 vector swizzle ( temp 2-component vector of int) -0:375 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:375 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:375 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:375 'invocation' ( temp uint) -0:375 Constant: -0:375 1 (const int) -0:375 Sequence -0:375 Constant: -0:375 0 (const int) -0:375 Constant: -0:375 1 (const int) -0:375 Convert bool to int ( temp 2-component vector of int) -0:375 subgroupExclusiveOr ( global 2-component vector of bool) -0:375 Compare Less Than ( global 2-component vector of bool) -0:375 vector swizzle ( temp 2-component vector of int) -0:375 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:375 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:375 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:375 Constant: -0:375 1 (const int) -0:375 Constant: -0:375 1 (const int) -0:375 Sequence -0:375 Constant: -0:375 0 (const int) -0:375 Constant: -0:375 1 (const int) -0:375 Constant: -0:375 0 (const int) -0:375 0 (const int) -0:376 move second child to first child ( temp 3-component vector of int) -0:376 vector swizzle ( temp 3-component vector of int) -0:376 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:376 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:376 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:376 'invocation' ( temp uint) -0:376 Constant: -0:376 1 (const int) -0:376 Sequence -0:376 Constant: -0:376 0 (const int) -0:376 Constant: -0:376 1 (const int) -0:376 Constant: -0:376 2 (const int) -0:376 Convert bool to int ( temp 3-component vector of int) -0:376 subgroupExclusiveOr ( global 3-component vector of bool) -0:376 Compare Less Than ( global 3-component vector of bool) -0:376 vector swizzle ( temp 3-component vector of int) -0:376 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:376 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:376 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:376 Constant: -0:376 1 (const int) -0:376 Constant: -0:376 1 (const int) -0:376 Sequence -0:376 Constant: -0:376 0 (const int) -0:376 Constant: -0:376 1 (const int) -0:376 Constant: -0:376 2 (const int) -0:376 Constant: -0:376 0 (const int) -0:376 0 (const int) -0:376 0 (const int) -0:377 move second child to first child ( temp 4-component vector of int) -0:377 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:377 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:377 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:377 'invocation' ( temp uint) -0:377 Constant: -0:377 1 (const int) -0:377 Convert bool to int ( temp 4-component vector of int) -0:377 subgroupExclusiveOr ( global 4-component vector of bool) -0:377 Compare Less Than ( global 4-component vector of bool) -0:377 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:377 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:377 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:377 Constant: -0:377 1 (const int) -0:377 Constant: -0:377 1 (const int) -0:377 Constant: -0:377 0 (const int) -0:377 0 (const int) -0:377 0 (const int) -0:377 0 (const int) -0:379 move second child to first child ( temp int) -0:379 direct index ( temp int) -0:379 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:379 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:379 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:379 'invocation' ( temp uint) -0:379 Constant: -0:379 1 (const int) -0:379 Constant: -0:379 0 (const int) -0:379 subgroupExclusiveXor ( global int) -0:379 direct index ( temp int) -0:379 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:379 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:379 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:379 Constant: -0:379 0 (const int) -0:379 Constant: -0:379 1 (const int) -0:379 Constant: -0:379 0 (const int) -0:380 move second child to first child ( temp 2-component vector of int) -0:380 vector swizzle ( temp 2-component vector of int) -0:380 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:380 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:380 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:380 'invocation' ( temp uint) -0:380 Constant: -0:380 1 (const int) -0:380 Sequence -0:380 Constant: -0:380 0 (const int) -0:380 Constant: -0:380 1 (const int) -0:380 subgroupExclusiveXor ( global 2-component vector of int) -0:380 vector swizzle ( temp 2-component vector of int) -0:380 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:380 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:380 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:380 Constant: -0:380 1 (const int) -0:380 Constant: -0:380 1 (const int) -0:380 Sequence -0:380 Constant: -0:380 0 (const int) -0:380 Constant: -0:380 1 (const int) -0:381 move second child to first child ( temp 3-component vector of int) -0:381 vector swizzle ( temp 3-component vector of int) -0:381 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:381 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:381 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:381 'invocation' ( temp uint) -0:381 Constant: -0:381 1 (const int) -0:381 Sequence -0:381 Constant: -0:381 0 (const int) -0:381 Constant: -0:381 1 (const int) -0:381 Constant: -0:381 2 (const int) -0:381 subgroupExclusiveXor ( global 3-component vector of int) -0:381 vector swizzle ( temp 3-component vector of int) -0:381 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:381 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:381 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:381 Constant: -0:381 2 (const int) -0:381 Constant: -0:381 1 (const int) -0:381 Sequence -0:381 Constant: -0:381 0 (const int) -0:381 Constant: -0:381 1 (const int) -0:381 Constant: -0:381 2 (const int) -0:382 move second child to first child ( temp 4-component vector of int) -0:382 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:382 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:382 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:382 'invocation' ( temp uint) -0:382 Constant: -0:382 1 (const int) -0:382 subgroupExclusiveXor ( global 4-component vector of int) -0:382 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:382 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:382 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:382 Constant: -0:382 3 (const int) -0:382 Constant: -0:382 1 (const int) -0:384 move second child to first child ( temp uint) -0:384 direct index ( temp uint) -0:384 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:384 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:384 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:384 'invocation' ( temp uint) -0:384 Constant: -0:384 2 (const int) -0:384 Constant: -0:384 0 (const int) -0:384 subgroupExclusiveXor ( global uint) -0:384 direct index ( temp uint) -0:384 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:384 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:384 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:384 Constant: -0:384 0 (const int) -0:384 Constant: -0:384 2 (const int) -0:384 Constant: -0:384 0 (const int) -0:385 move second child to first child ( temp 2-component vector of uint) -0:385 vector swizzle ( temp 2-component vector of uint) -0:385 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:385 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:385 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:385 'invocation' ( temp uint) -0:385 Constant: -0:385 2 (const int) -0:385 Sequence -0:385 Constant: -0:385 0 (const int) -0:385 Constant: -0:385 1 (const int) -0:385 subgroupExclusiveXor ( global 2-component vector of uint) -0:385 vector swizzle ( temp 2-component vector of uint) -0:385 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:385 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:385 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:385 Constant: -0:385 1 (const int) -0:385 Constant: -0:385 2 (const int) -0:385 Sequence -0:385 Constant: -0:385 0 (const int) -0:385 Constant: -0:385 1 (const int) -0:386 move second child to first child ( temp 3-component vector of uint) -0:386 vector swizzle ( temp 3-component vector of uint) -0:386 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:386 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:386 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:386 'invocation' ( temp uint) -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:386 subgroupExclusiveXor ( global 3-component vector of uint) -0:386 vector swizzle ( temp 3-component vector of uint) -0:386 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:386 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:386 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:386 Constant: -0:386 2 (const int) -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 4-component vector of uint) -0:387 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:387 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:387 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:387 'invocation' ( temp uint) -0:387 Constant: -0:387 2 (const int) -0:387 subgroupExclusiveXor ( global 4-component vector of uint) -0:387 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:387 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:387 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:387 Constant: -0:387 3 (const int) -0:387 Constant: -0:387 2 (const int) -0:389 move second child to first child ( temp int) -0:389 direct index ( temp int) -0:389 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:389 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:389 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:389 'invocation' ( temp uint) -0:389 Constant: -0:389 1 (const int) -0:389 Constant: -0:389 0 (const int) -0:389 Convert bool to int ( temp int) -0:389 subgroupExclusiveXor ( global bool) -0:389 Compare Less Than ( temp bool) -0:389 direct index ( temp int) -0:389 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:389 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:389 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:389 Constant: -0:389 0 (const int) -0:389 Constant: -0:389 1 (const int) -0:389 Constant: -0:389 0 (const int) -0:389 Constant: -0:389 0 (const int) -0:390 move second child to first child ( temp 2-component vector of int) -0:390 vector swizzle ( temp 2-component vector of int) -0:390 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:390 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:390 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:390 'invocation' ( temp uint) -0:390 Constant: -0:390 1 (const int) -0:390 Sequence -0:390 Constant: -0:390 0 (const int) -0:390 Constant: -0:390 1 (const int) -0:390 Convert bool to int ( temp 2-component vector of int) -0:390 subgroupExclusiveXor ( global 2-component vector of bool) -0:390 Compare Less Than ( global 2-component vector of bool) -0:390 vector swizzle ( temp 2-component vector of int) -0:390 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:390 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:390 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:390 Constant: -0:390 1 (const int) -0:390 Constant: -0:390 1 (const int) -0:390 Sequence -0:390 Constant: -0:390 0 (const int) -0:390 Constant: -0:390 1 (const int) -0:390 Constant: -0:390 0 (const int) -0:390 0 (const int) -0:391 move second child to first child ( temp 3-component vector of int) -0:391 vector swizzle ( temp 3-component vector of int) -0:391 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:391 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:391 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:391 'invocation' ( temp uint) -0:391 Constant: -0:391 1 (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 2 (const int) -0:391 Convert bool to int ( temp 3-component vector of int) -0:391 subgroupExclusiveXor ( global 3-component vector of bool) -0:391 Compare Less Than ( global 3-component vector of bool) -0:391 vector swizzle ( temp 3-component vector of int) -0:391 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:391 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:391 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:391 Constant: -0:391 1 (const int) -0:391 Constant: -0:391 1 (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 2 (const int) -0:391 Constant: -0:391 0 (const int) -0:391 0 (const int) -0:391 0 (const int) -0:392 move second child to first child ( temp 4-component vector of int) -0:392 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:392 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:392 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:392 'invocation' ( temp uint) -0:392 Constant: -0:392 1 (const int) -0:392 Convert bool to int ( temp 4-component vector of int) -0:392 subgroupExclusiveXor ( global 4-component vector of bool) -0:392 Compare Less Than ( global 4-component vector of bool) -0:392 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:392 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:392 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:392 Constant: -0:392 1 (const int) -0:392 Constant: -0:392 1 (const int) -0:392 Constant: -0:392 0 (const int) -0:392 0 (const int) -0:392 0 (const int) -0:392 0 (const int) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) - - -Linked compute stage: - - -Shader version: 450 -Requested GL_KHR_shader_subgroup_arithmetic -Requested GL_KHR_shader_subgroup_basic -local_size = (8, 1, 1) -0:? Sequence -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 uint) -0:17 'invocation' ( temp uint) -0:17 mod ( temp uint) -0:17 add ( temp uint) -0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:17 'gl_SubgroupSize' ( in uint SubgroupSize) -0:17 Constant: -0:17 4 (const uint) -0:19 move second child to first child ( temp float) -0:19 direct index ( temp float) -0:19 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:19 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 'invocation' ( temp uint) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 subgroupAdd ( global float) -0:19 direct index ( temp float) -0:19 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:19 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:20 move second child to first child ( temp 2-component vector of float) -0:20 vector swizzle ( temp 2-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:20 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 'invocation' ( temp uint) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 subgroupAdd ( global 2-component vector of float) -0:20 vector swizzle ( temp 2-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:20 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:21 move second child to first child ( temp 3-component vector of float) -0:21 vector swizzle ( temp 3-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:21 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 'invocation' ( temp uint) -0:21 Constant: -0:21 0 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Constant: -0:21 2 (const int) -0:21 subgroupAdd ( global 3-component vector of float) -0:21 vector swizzle ( temp 3-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 Constant: -0:21 2 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Constant: -0:21 2 (const int) -0:22 move second child to first child ( temp 4-component vector of float) -0:22 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:22 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'invocation' ( temp uint) -0:22 Constant: -0:22 0 (const int) -0:22 subgroupAdd ( global 4-component vector of float) -0:22 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:22 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 Constant: -0:22 3 (const int) -0:22 Constant: -0:22 0 (const int) -0:24 move second child to first child ( temp int) -0:24 direct index ( temp int) -0:24 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:24 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'invocation' ( temp uint) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 0 (const int) -0:24 subgroupAdd ( global int) -0:24 direct index ( temp int) -0:24 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 0 (const int) -0:25 move second child to first child ( temp 2-component vector of int) -0:25 vector swizzle ( temp 2-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:25 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 'invocation' ( temp uint) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 subgroupAdd ( global 2-component vector of int) -0:25 vector swizzle ( temp 2-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:26 move second child to first child ( temp 3-component vector of int) -0:26 vector swizzle ( temp 3-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:26 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'invocation' ( temp uint) -0:26 Constant: -0:26 1 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 subgroupAdd ( global 3-component vector of int) -0:26 vector swizzle ( temp 3-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 Constant: -0:26 2 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 2 (const int) -0:27 move second child to first child ( temp 4-component vector of int) -0:27 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:27 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'invocation' ( temp uint) -0:27 Constant: -0:27 1 (const int) -0:27 subgroupAdd ( global 4-component vector of int) -0:27 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:27 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 Constant: -0:27 3 (const int) -0:27 Constant: -0:27 1 (const int) -0:29 move second child to first child ( temp uint) -0:29 direct index ( temp uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:29 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'invocation' ( temp uint) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 0 (const int) -0:29 subgroupAdd ( global uint) -0:29 direct index ( temp uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 0 (const int) -0:30 move second child to first child ( temp 2-component vector of uint) -0:30 vector swizzle ( temp 2-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:30 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 'invocation' ( temp uint) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 subgroupAdd ( global 2-component vector of uint) -0:30 vector swizzle ( temp 2-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:30 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:31 move second child to first child ( temp 3-component vector of uint) -0:31 vector swizzle ( temp 3-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:31 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'invocation' ( temp uint) -0:31 Constant: -0:31 2 (const int) -0:31 Sequence -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 subgroupAdd ( global 3-component vector of uint) -0:31 vector swizzle ( temp 3-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 Constant: -0:31 2 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 Sequence -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 2 (const int) -0:32 move second child to first child ( temp 4-component vector of uint) -0:32 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:32 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'invocation' ( temp uint) -0:32 Constant: -0:32 2 (const int) -0:32 subgroupAdd ( global 4-component vector of uint) -0:32 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 Constant: -0:32 3 (const int) -0:32 Constant: -0:32 2 (const int) -0:34 move second child to first child ( temp double) -0:34 direct index ( temp double) -0:34 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:34 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'invocation' ( temp uint) -0:34 Constant: -0:34 3 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 subgroupAdd ( global double) -0:34 direct index ( temp double) -0:34 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 3 (const int) -0:34 Constant: -0:34 0 (const int) -0:35 move second child to first child ( temp 2-component vector of double) -0:35 vector swizzle ( temp 2-component vector of double) -0:35 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:35 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 'invocation' ( temp uint) -0:35 Constant: -0:35 3 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 subgroupAdd ( global 2-component vector of double) -0:35 vector swizzle ( temp 2-component vector of double) -0:35 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 3 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:36 move second child to first child ( temp 3-component vector of double) -0:36 vector swizzle ( temp 3-component vector of double) -0:36 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:36 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'invocation' ( temp uint) -0:36 Constant: -0:36 3 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 2 (const int) -0:36 subgroupAdd ( global 3-component vector of double) -0:36 vector swizzle ( temp 3-component vector of double) -0:36 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 Constant: -0:36 2 (const int) -0:36 Constant: -0:36 3 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 2 (const int) -0:37 move second child to first child ( temp 4-component vector of double) -0:37 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:37 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'invocation' ( temp uint) -0:37 Constant: -0:37 3 (const int) -0:37 subgroupAdd ( global 4-component vector of double) -0:37 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:37 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 Constant: -0:37 3 (const int) -0:37 Constant: -0:37 3 (const int) -0:39 move second child to first child ( temp float) -0:39 direct index ( temp float) -0:39 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:39 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'invocation' ( temp uint) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 subgroupMul ( global float) -0:39 direct index ( temp float) -0:39 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 0 (const int) -0:40 move second child to first child ( temp 2-component vector of float) -0:40 vector swizzle ( temp 2-component vector of float) -0:40 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:40 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 'invocation' ( temp uint) -0:40 Constant: -0:40 0 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 subgroupMul ( global 2-component vector of float) -0:40 vector swizzle ( temp 2-component vector of float) -0:40 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:41 move second child to first child ( temp 3-component vector of float) -0:41 vector swizzle ( temp 3-component vector of float) -0:41 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:41 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'invocation' ( temp uint) -0:41 Constant: -0:41 0 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 2 (const int) -0:41 subgroupMul ( global 3-component vector of float) -0:41 vector swizzle ( temp 3-component vector of float) -0:41 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 Constant: -0:41 2 (const int) -0:41 Constant: -0:41 0 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 2 (const int) -0:42 move second child to first child ( temp 4-component vector of float) -0:42 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:42 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'invocation' ( temp uint) -0:42 Constant: -0:42 0 (const int) -0:42 subgroupMul ( global 4-component vector of float) -0:42 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:42 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 Constant: -0:42 3 (const int) -0:42 Constant: -0:42 0 (const int) -0:44 move second child to first child ( temp int) -0:44 direct index ( temp int) -0:44 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:44 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'invocation' ( temp uint) -0:44 Constant: -0:44 1 (const int) -0:44 Constant: -0:44 0 (const int) -0:44 subgroupMul ( global int) -0:44 direct index ( temp int) -0:44 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 1 (const int) -0:44 Constant: -0:44 0 (const int) -0:45 move second child to first child ( temp 2-component vector of int) -0:45 vector swizzle ( temp 2-component vector of int) -0:45 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:45 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 'invocation' ( temp uint) -0:45 Constant: -0:45 1 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 subgroupMul ( global 2-component vector of int) -0:45 vector swizzle ( temp 2-component vector of int) -0:45 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:46 move second child to first child ( temp 3-component vector of int) -0:46 vector swizzle ( temp 3-component vector of int) -0:46 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:46 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'invocation' ( temp uint) -0:46 Constant: -0:46 1 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 subgroupMul ( global 3-component vector of int) -0:46 vector swizzle ( temp 3-component vector of int) -0:46 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 Constant: -0:46 2 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 2 (const int) -0:47 move second child to first child ( temp 4-component vector of int) -0:47 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:47 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'invocation' ( temp uint) -0:47 Constant: -0:47 1 (const int) -0:47 subgroupMul ( global 4-component vector of int) -0:47 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:47 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 Constant: -0:47 3 (const int) -0:47 Constant: -0:47 1 (const int) -0:49 move second child to first child ( temp uint) -0:49 direct index ( temp uint) -0:49 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:49 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'invocation' ( temp uint) -0:49 Constant: -0:49 2 (const int) -0:49 Constant: -0:49 0 (const int) -0:49 subgroupMul ( global uint) -0:49 direct index ( temp uint) -0:49 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:49 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 2 (const int) -0:49 Constant: -0:49 0 (const int) -0:50 move second child to first child ( temp 2-component vector of uint) -0:50 vector swizzle ( temp 2-component vector of uint) -0:50 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:50 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 'invocation' ( temp uint) -0:50 Constant: -0:50 2 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 subgroupMul ( global 2-component vector of uint) -0:50 vector swizzle ( temp 2-component vector of uint) -0:50 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:51 move second child to first child ( temp 3-component vector of uint) -0:51 vector swizzle ( temp 3-component vector of uint) -0:51 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:51 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'invocation' ( temp uint) -0:51 Constant: -0:51 2 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 2 (const int) -0:51 subgroupMul ( global 3-component vector of uint) -0:51 vector swizzle ( temp 3-component vector of uint) -0:51 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 Constant: -0:51 2 (const int) -0:51 Constant: -0:51 2 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 2 (const int) -0:52 move second child to first child ( temp 4-component vector of uint) -0:52 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:52 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'invocation' ( temp uint) -0:52 Constant: -0:52 2 (const int) -0:52 subgroupMul ( global 4-component vector of uint) -0:52 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:52 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 Constant: -0:52 3 (const int) -0:52 Constant: -0:52 2 (const int) -0:54 move second child to first child ( temp double) -0:54 direct index ( temp double) -0:54 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:54 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'invocation' ( temp uint) -0:54 Constant: -0:54 3 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 subgroupMul ( global double) -0:54 direct index ( temp double) -0:54 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:54 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 3 (const int) -0:54 Constant: -0:54 0 (const int) -0:55 move second child to first child ( temp 2-component vector of double) -0:55 vector swizzle ( temp 2-component vector of double) -0:55 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:55 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 'invocation' ( temp uint) -0:55 Constant: -0:55 3 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 subgroupMul ( global 2-component vector of double) -0:55 vector swizzle ( temp 2-component vector of double) -0:55 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 3 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:56 move second child to first child ( temp 3-component vector of double) -0:56 vector swizzle ( temp 3-component vector of double) -0:56 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:56 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'invocation' ( temp uint) -0:56 Constant: -0:56 3 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 2 (const int) -0:56 subgroupMul ( global 3-component vector of double) -0:56 vector swizzle ( temp 3-component vector of double) -0:56 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 Constant: -0:56 2 (const int) -0:56 Constant: -0:56 3 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 2 (const int) -0:57 move second child to first child ( temp 4-component vector of double) -0:57 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:57 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'invocation' ( temp uint) -0:57 Constant: -0:57 3 (const int) -0:57 subgroupMul ( global 4-component vector of double) -0:57 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:57 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 Constant: -0:57 3 (const int) -0:57 Constant: -0:57 3 (const int) -0:59 move second child to first child ( temp float) -0:59 direct index ( temp float) -0:59 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:59 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 'invocation' ( temp uint) -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 0 (const int) -0:59 subgroupMin ( global float) -0:59 direct index ( temp float) -0:59 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:59 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 0 (const int) -0:60 move second child to first child ( temp 2-component vector of float) -0:60 vector swizzle ( temp 2-component vector of float) -0:60 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:60 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 'invocation' ( temp uint) -0:60 Constant: -0:60 0 (const int) -0:60 Sequence -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 subgroupMin ( global 2-component vector of float) -0:60 vector swizzle ( temp 2-component vector of float) -0:60 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:60 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 0 (const int) -0:60 Sequence -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:61 move second child to first child ( temp 3-component vector of float) -0:61 vector swizzle ( temp 3-component vector of float) -0:61 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:61 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'invocation' ( temp uint) -0:61 Constant: -0:61 0 (const int) -0:61 Sequence -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 Constant: -0:61 2 (const int) -0:61 subgroupMin ( global 3-component vector of float) -0:61 vector swizzle ( temp 3-component vector of float) -0:61 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:61 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 Constant: -0:61 2 (const int) -0:61 Constant: -0:61 0 (const int) -0:61 Sequence -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 Constant: -0:61 2 (const int) -0:62 move second child to first child ( temp 4-component vector of float) -0:62 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:62 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'invocation' ( temp uint) -0:62 Constant: -0:62 0 (const int) -0:62 subgroupMin ( global 4-component vector of float) -0:62 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:62 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 Constant: -0:62 3 (const int) -0:62 Constant: -0:62 0 (const int) -0:64 move second child to first child ( temp int) -0:64 direct index ( temp int) -0:64 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:64 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'invocation' ( temp uint) -0:64 Constant: -0:64 1 (const int) -0:64 Constant: -0:64 0 (const int) -0:64 subgroupMin ( global int) -0:64 direct index ( temp int) -0:64 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:64 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 Constant: -0:64 0 (const int) -0:64 Constant: -0:64 1 (const int) -0:64 Constant: -0:64 0 (const int) -0:65 move second child to first child ( temp 2-component vector of int) -0:65 vector swizzle ( temp 2-component vector of int) -0:65 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:65 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 'invocation' ( temp uint) -0:65 Constant: -0:65 1 (const int) -0:65 Sequence -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 subgroupMin ( global 2-component vector of int) -0:65 vector swizzle ( temp 2-component vector of int) -0:65 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:65 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 Constant: -0:65 1 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Sequence -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 1 (const int) -0:66 move second child to first child ( temp 3-component vector of int) -0:66 vector swizzle ( temp 3-component vector of int) -0:66 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:66 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'invocation' ( temp uint) -0:66 Constant: -0:66 1 (const int) -0:66 Sequence -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 2 (const int) -0:66 subgroupMin ( global 3-component vector of int) -0:66 vector swizzle ( temp 3-component vector of int) -0:66 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:66 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 Constant: -0:66 2 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 Sequence -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 2 (const int) -0:67 move second child to first child ( temp 4-component vector of int) -0:67 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:67 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'invocation' ( temp uint) -0:67 Constant: -0:67 1 (const int) -0:67 subgroupMin ( global 4-component vector of int) -0:67 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:67 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 Constant: -0:67 3 (const int) -0:67 Constant: -0:67 1 (const int) -0:69 move second child to first child ( temp uint) -0:69 direct index ( temp uint) -0:69 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:69 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 'invocation' ( temp uint) -0:69 Constant: -0:69 2 (const int) -0:69 Constant: -0:69 0 (const int) -0:69 subgroupMin ( global uint) -0:69 direct index ( temp uint) -0:69 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:69 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 Constant: -0:69 0 (const int) -0:69 Constant: -0:69 2 (const int) -0:69 Constant: -0:69 0 (const int) -0:70 move second child to first child ( temp 2-component vector of uint) -0:70 vector swizzle ( temp 2-component vector of uint) -0:70 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:70 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:70 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:70 'invocation' ( temp uint) -0:70 Constant: -0:70 2 (const int) -0:70 Sequence -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 1 (const int) -0:70 subgroupMin ( global 2-component vector of uint) -0:70 vector swizzle ( temp 2-component vector of uint) -0:70 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:70 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:70 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:70 Constant: -0:70 1 (const int) -0:70 Constant: -0:70 2 (const int) -0:70 Sequence -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 1 (const int) -0:71 move second child to first child ( temp 3-component vector of uint) -0:71 vector swizzle ( temp 3-component vector of uint) -0:71 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:71 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:71 'invocation' ( temp uint) -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 2 (const int) -0:71 subgroupMin ( global 3-component vector of uint) -0:71 vector swizzle ( temp 3-component vector of uint) -0:71 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:71 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:71 Constant: -0:71 2 (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 2 (const int) -0:72 move second child to first child ( temp 4-component vector of uint) -0:72 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:72 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 'invocation' ( temp uint) -0:72 Constant: -0:72 2 (const int) -0:72 subgroupMin ( global 4-component vector of uint) -0:72 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:72 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 Constant: -0:72 3 (const int) -0:72 Constant: -0:72 2 (const int) -0:74 move second child to first child ( temp double) -0:74 direct index ( temp double) -0:74 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:74 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 'invocation' ( temp uint) -0:74 Constant: -0:74 3 (const int) -0:74 Constant: -0:74 0 (const int) -0:74 subgroupMin ( global double) -0:74 direct index ( temp double) -0:74 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:74 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 Constant: -0:74 0 (const int) -0:74 Constant: -0:74 3 (const int) -0:74 Constant: -0:74 0 (const int) -0:75 move second child to first child ( temp 2-component vector of double) -0:75 vector swizzle ( temp 2-component vector of double) -0:75 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:75 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:75 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:75 'invocation' ( temp uint) -0:75 Constant: -0:75 3 (const int) -0:75 Sequence -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 1 (const int) -0:75 subgroupMin ( global 2-component vector of double) -0:75 vector swizzle ( temp 2-component vector of double) -0:75 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:75 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:75 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:75 Constant: -0:75 1 (const int) -0:75 Constant: -0:75 3 (const int) -0:75 Sequence -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 1 (const int) -0:76 move second child to first child ( temp 3-component vector of double) -0:76 vector swizzle ( temp 3-component vector of double) -0:76 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:76 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 'invocation' ( temp uint) -0:76 Constant: -0:76 3 (const int) -0:76 Sequence -0:76 Constant: -0:76 0 (const int) -0:76 Constant: -0:76 1 (const int) -0:76 Constant: -0:76 2 (const int) -0:76 subgroupMin ( global 3-component vector of double) -0:76 vector swizzle ( temp 3-component vector of double) -0:76 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:76 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 Constant: -0:76 2 (const int) -0:76 Constant: -0:76 3 (const int) -0:76 Sequence -0:76 Constant: -0:76 0 (const int) -0:76 Constant: -0:76 1 (const int) -0:76 Constant: -0:76 2 (const int) -0:77 move second child to first child ( temp 4-component vector of double) -0:77 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:77 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 'invocation' ( temp uint) -0:77 Constant: -0:77 3 (const int) -0:77 subgroupMin ( global 4-component vector of double) -0:77 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:77 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 Constant: -0:77 3 (const int) -0:77 Constant: -0:77 3 (const int) -0:79 move second child to first child ( temp float) -0:79 direct index ( temp float) -0:79 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:79 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 'invocation' ( temp uint) -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 0 (const int) -0:79 subgroupMax ( global float) -0:79 direct index ( temp float) -0:79 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:79 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 0 (const int) -0:80 move second child to first child ( temp 2-component vector of float) -0:80 vector swizzle ( temp 2-component vector of float) -0:80 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:80 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:80 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:80 'invocation' ( temp uint) -0:80 Constant: -0:80 0 (const int) -0:80 Sequence -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 1 (const int) -0:80 subgroupMax ( global 2-component vector of float) -0:80 vector swizzle ( temp 2-component vector of float) -0:80 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:80 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:80 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:80 Constant: -0:80 1 (const int) -0:80 Constant: -0:80 0 (const int) -0:80 Sequence -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 1 (const int) -0:81 move second child to first child ( temp 3-component vector of float) -0:81 vector swizzle ( temp 3-component vector of float) -0:81 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:81 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 'invocation' ( temp uint) -0:81 Constant: -0:81 0 (const int) -0:81 Sequence -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 1 (const int) -0:81 Constant: -0:81 2 (const int) -0:81 subgroupMax ( global 3-component vector of float) -0:81 vector swizzle ( temp 3-component vector of float) -0:81 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:81 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 Constant: -0:81 2 (const int) -0:81 Constant: -0:81 0 (const int) -0:81 Sequence -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 1 (const int) -0:81 Constant: -0:81 2 (const int) -0:82 move second child to first child ( temp 4-component vector of float) -0:82 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:82 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 'invocation' ( temp uint) -0:82 Constant: -0:82 0 (const int) -0:82 subgroupMax ( global 4-component vector of float) -0:82 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:82 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 Constant: -0:82 3 (const int) -0:82 Constant: -0:82 0 (const int) -0:84 move second child to first child ( temp int) -0:84 direct index ( temp int) -0:84 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:84 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 'invocation' ( temp uint) -0:84 Constant: -0:84 1 (const int) -0:84 Constant: -0:84 0 (const int) -0:84 subgroupMax ( global int) -0:84 direct index ( temp int) -0:84 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:84 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 Constant: -0:84 0 (const int) -0:84 Constant: -0:84 1 (const int) -0:84 Constant: -0:84 0 (const int) -0:85 move second child to first child ( temp 2-component vector of int) -0:85 vector swizzle ( temp 2-component vector of int) -0:85 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:85 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:85 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:85 'invocation' ( temp uint) -0:85 Constant: -0:85 1 (const int) -0:85 Sequence -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 1 (const int) -0:85 subgroupMax ( global 2-component vector of int) -0:85 vector swizzle ( temp 2-component vector of int) -0:85 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:85 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:85 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:85 Constant: -0:85 1 (const int) -0:85 Constant: -0:85 1 (const int) -0:85 Sequence -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 1 (const int) -0:86 move second child to first child ( temp 3-component vector of int) -0:86 vector swizzle ( temp 3-component vector of int) -0:86 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:86 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:86 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:86 'invocation' ( temp uint) -0:86 Constant: -0:86 1 (const int) -0:86 Sequence -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 1 (const int) -0:86 Constant: -0:86 2 (const int) -0:86 subgroupMax ( global 3-component vector of int) -0:86 vector swizzle ( temp 3-component vector of int) -0:86 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:86 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:86 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:86 Constant: -0:86 2 (const int) -0:86 Constant: -0:86 1 (const int) -0:86 Sequence -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 1 (const int) -0:86 Constant: -0:86 2 (const int) -0:87 move second child to first child ( temp 4-component vector of int) -0:87 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:87 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:87 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:87 'invocation' ( temp uint) -0:87 Constant: -0:87 1 (const int) -0:87 subgroupMax ( global 4-component vector of int) -0:87 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:87 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:87 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:87 Constant: -0:87 3 (const int) -0:87 Constant: -0:87 1 (const int) -0:89 move second child to first child ( temp uint) -0:89 direct index ( temp uint) -0:89 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:89 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:89 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:89 'invocation' ( temp uint) -0:89 Constant: -0:89 2 (const int) -0:89 Constant: -0:89 0 (const int) -0:89 subgroupMax ( global uint) -0:89 direct index ( temp uint) -0:89 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:89 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:89 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:89 Constant: -0:89 0 (const int) -0:89 Constant: -0:89 2 (const int) -0:89 Constant: -0:89 0 (const int) -0:90 move second child to first child ( temp 2-component vector of uint) -0:90 vector swizzle ( temp 2-component vector of uint) -0:90 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:90 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:90 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:90 'invocation' ( temp uint) -0:90 Constant: -0:90 2 (const int) -0:90 Sequence -0:90 Constant: -0:90 0 (const int) -0:90 Constant: -0:90 1 (const int) -0:90 subgroupMax ( global 2-component vector of uint) -0:90 vector swizzle ( temp 2-component vector of uint) -0:90 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:90 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:90 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:90 Constant: -0:90 1 (const int) -0:90 Constant: -0:90 2 (const int) -0:90 Sequence -0:90 Constant: -0:90 0 (const int) -0:90 Constant: -0:90 1 (const int) -0:91 move second child to first child ( temp 3-component vector of uint) -0:91 vector swizzle ( temp 3-component vector of uint) -0:91 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:91 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:91 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:91 'invocation' ( temp uint) -0:91 Constant: -0:91 2 (const int) -0:91 Sequence -0:91 Constant: -0:91 0 (const int) -0:91 Constant: -0:91 1 (const int) -0:91 Constant: -0:91 2 (const int) -0:91 subgroupMax ( global 3-component vector of uint) -0:91 vector swizzle ( temp 3-component vector of uint) -0:91 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:91 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:91 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:91 Constant: -0:91 2 (const int) -0:91 Constant: -0:91 2 (const int) -0:91 Sequence -0:91 Constant: -0:91 0 (const int) -0:91 Constant: -0:91 1 (const int) -0:91 Constant: -0:91 2 (const int) -0:92 move second child to first child ( temp 4-component vector of uint) -0:92 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:92 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:92 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:92 'invocation' ( temp uint) -0:92 Constant: -0:92 2 (const int) -0:92 subgroupMax ( global 4-component vector of uint) -0:92 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:92 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:92 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:92 Constant: -0:92 3 (const int) -0:92 Constant: -0:92 2 (const int) -0:94 move second child to first child ( temp double) -0:94 direct index ( temp double) -0:94 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:94 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:94 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:94 'invocation' ( temp uint) -0:94 Constant: -0:94 3 (const int) -0:94 Constant: -0:94 0 (const int) -0:94 subgroupMax ( global double) -0:94 direct index ( temp double) -0:94 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:94 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:94 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:94 Constant: -0:94 0 (const int) -0:94 Constant: -0:94 3 (const int) -0:94 Constant: -0:94 0 (const int) -0:95 move second child to first child ( temp 2-component vector of double) -0:95 vector swizzle ( temp 2-component vector of double) -0:95 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:95 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:95 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:95 'invocation' ( temp uint) -0:95 Constant: -0:95 3 (const int) -0:95 Sequence -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 1 (const int) -0:95 subgroupMax ( global 2-component vector of double) -0:95 vector swizzle ( temp 2-component vector of double) -0:95 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:95 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:95 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:95 Constant: -0:95 1 (const int) -0:95 Constant: -0:95 3 (const int) -0:95 Sequence -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 1 (const int) -0:96 move second child to first child ( temp 3-component vector of double) -0:96 vector swizzle ( temp 3-component vector of double) -0:96 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:96 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:96 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:96 'invocation' ( temp uint) -0:96 Constant: -0:96 3 (const int) -0:96 Sequence -0:96 Constant: -0:96 0 (const int) -0:96 Constant: -0:96 1 (const int) -0:96 Constant: -0:96 2 (const int) -0:96 subgroupMax ( global 3-component vector of double) -0:96 vector swizzle ( temp 3-component vector of double) -0:96 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:96 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:96 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:96 Constant: -0:96 2 (const int) -0:96 Constant: -0:96 3 (const int) -0:96 Sequence -0:96 Constant: -0:96 0 (const int) -0:96 Constant: -0:96 1 (const int) -0:96 Constant: -0:96 2 (const int) -0:97 move second child to first child ( temp 4-component vector of double) -0:97 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:97 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:97 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:97 'invocation' ( temp uint) -0:97 Constant: -0:97 3 (const int) -0:97 subgroupMax ( global 4-component vector of double) -0:97 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:97 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:97 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:97 Constant: -0:97 3 (const int) -0:97 Constant: -0:97 3 (const int) -0:99 move second child to first child ( temp int) -0:99 direct index ( temp int) -0:99 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:99 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:99 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:99 'invocation' ( temp uint) -0:99 Constant: -0:99 1 (const int) -0:99 Constant: -0:99 0 (const int) -0:99 subgroupAnd ( global int) -0:99 direct index ( temp int) -0:99 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:99 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:99 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:99 Constant: -0:99 0 (const int) -0:99 Constant: -0:99 1 (const int) -0:99 Constant: -0:99 0 (const int) -0:100 move second child to first child ( temp 2-component vector of int) -0:100 vector swizzle ( temp 2-component vector of int) -0:100 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:100 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:100 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:100 'invocation' ( temp uint) -0:100 Constant: -0:100 1 (const int) -0:100 Sequence -0:100 Constant: -0:100 0 (const int) -0:100 Constant: -0:100 1 (const int) -0:100 subgroupAnd ( global 2-component vector of int) -0:100 vector swizzle ( temp 2-component vector of int) -0:100 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:100 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:100 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:100 Constant: -0:100 1 (const int) -0:100 Constant: -0:100 1 (const int) -0:100 Sequence -0:100 Constant: -0:100 0 (const int) -0:100 Constant: -0:100 1 (const int) -0:101 move second child to first child ( temp 3-component vector of int) -0:101 vector swizzle ( temp 3-component vector of int) -0:101 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:101 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:101 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:101 'invocation' ( temp uint) -0:101 Constant: -0:101 1 (const int) -0:101 Sequence -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 1 (const int) -0:101 Constant: -0:101 2 (const int) -0:101 subgroupAnd ( global 3-component vector of int) -0:101 vector swizzle ( temp 3-component vector of int) -0:101 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:101 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:101 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:101 Constant: -0:101 2 (const int) -0:101 Constant: -0:101 1 (const int) -0:101 Sequence -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 1 (const int) -0:101 Constant: -0:101 2 (const int) -0:102 move second child to first child ( temp 4-component vector of int) -0:102 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:102 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:102 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:102 'invocation' ( temp uint) -0:102 Constant: -0:102 1 (const int) -0:102 subgroupAnd ( global 4-component vector of int) -0:102 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:102 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:102 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:102 Constant: -0:102 3 (const int) -0:102 Constant: -0:102 1 (const int) -0:104 move second child to first child ( temp uint) -0:104 direct index ( temp uint) -0:104 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:104 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:104 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:104 'invocation' ( temp uint) -0:104 Constant: -0:104 2 (const int) -0:104 Constant: -0:104 0 (const int) -0:104 subgroupAnd ( global uint) -0:104 direct index ( temp uint) -0:104 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:104 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:104 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:104 Constant: -0:104 0 (const int) -0:104 Constant: -0:104 2 (const int) -0:104 Constant: -0:104 0 (const int) -0:105 move second child to first child ( temp 2-component vector of uint) -0:105 vector swizzle ( temp 2-component vector of uint) -0:105 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:105 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:105 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:105 'invocation' ( temp uint) -0:105 Constant: -0:105 2 (const int) -0:105 Sequence -0:105 Constant: -0:105 0 (const int) -0:105 Constant: -0:105 1 (const int) -0:105 subgroupAnd ( global 2-component vector of uint) -0:105 vector swizzle ( temp 2-component vector of uint) -0:105 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:105 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:105 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:105 Constant: -0:105 1 (const int) -0:105 Constant: -0:105 2 (const int) -0:105 Sequence -0:105 Constant: -0:105 0 (const int) -0:105 Constant: -0:105 1 (const int) -0:106 move second child to first child ( temp 3-component vector of uint) -0:106 vector swizzle ( temp 3-component vector of uint) -0:106 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:106 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:106 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:106 'invocation' ( temp uint) -0:106 Constant: -0:106 2 (const int) -0:106 Sequence -0:106 Constant: -0:106 0 (const int) -0:106 Constant: -0:106 1 (const int) -0:106 Constant: -0:106 2 (const int) -0:106 subgroupAnd ( global 3-component vector of uint) -0:106 vector swizzle ( temp 3-component vector of uint) -0:106 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:106 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:106 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:106 Constant: -0:106 2 (const int) -0:106 Constant: -0:106 2 (const int) -0:106 Sequence -0:106 Constant: -0:106 0 (const int) -0:106 Constant: -0:106 1 (const int) -0:106 Constant: -0:106 2 (const int) -0:107 move second child to first child ( temp 4-component vector of uint) -0:107 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:107 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:107 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:107 'invocation' ( temp uint) -0:107 Constant: -0:107 2 (const int) -0:107 subgroupAnd ( global 4-component vector of uint) -0:107 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:107 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:107 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:107 Constant: -0:107 3 (const int) -0:107 Constant: -0:107 2 (const int) -0:109 move second child to first child ( temp int) -0:109 direct index ( temp int) -0:109 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:109 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:109 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:109 'invocation' ( temp uint) -0:109 Constant: -0:109 1 (const int) -0:109 Constant: -0:109 0 (const int) -0:109 Convert bool to int ( temp int) -0:109 subgroupAnd ( global bool) -0:109 Compare Less Than ( temp bool) -0:109 direct index ( temp int) -0:109 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:109 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:109 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:109 Constant: -0:109 0 (const int) -0:109 Constant: -0:109 1 (const int) -0:109 Constant: -0:109 0 (const int) -0:109 Constant: -0:109 0 (const int) -0:110 move second child to first child ( temp 2-component vector of int) -0:110 vector swizzle ( temp 2-component vector of int) -0:110 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:110 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:110 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:110 'invocation' ( temp uint) -0:110 Constant: -0:110 1 (const int) -0:110 Sequence -0:110 Constant: -0:110 0 (const int) -0:110 Constant: -0:110 1 (const int) -0:110 Convert bool to int ( temp 2-component vector of int) -0:110 subgroupAnd ( global 2-component vector of bool) -0:110 Compare Less Than ( global 2-component vector of bool) -0:110 vector swizzle ( temp 2-component vector of int) -0:110 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:110 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:110 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:110 Constant: -0:110 1 (const int) -0:110 Constant: -0:110 1 (const int) -0:110 Sequence -0:110 Constant: -0:110 0 (const int) -0:110 Constant: -0:110 1 (const int) -0:110 Constant: -0:110 0 (const int) -0:110 0 (const int) -0:111 move second child to first child ( temp 3-component vector of int) -0:111 vector swizzle ( temp 3-component vector of int) -0:111 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:111 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:111 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:111 'invocation' ( temp uint) -0:111 Constant: -0:111 1 (const int) -0:111 Sequence -0:111 Constant: -0:111 0 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 Constant: -0:111 2 (const int) -0:111 Convert bool to int ( temp 3-component vector of int) -0:111 subgroupAnd ( global 3-component vector of bool) -0:111 Compare Less Than ( global 3-component vector of bool) -0:111 vector swizzle ( temp 3-component vector of int) -0:111 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:111 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:111 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:111 Constant: -0:111 1 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 Sequence -0:111 Constant: -0:111 0 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 Constant: -0:111 2 (const int) -0:111 Constant: -0:111 0 (const int) -0:111 0 (const int) -0:111 0 (const int) -0:112 move second child to first child ( temp 4-component vector of int) -0:112 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:112 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:112 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:112 'invocation' ( temp uint) -0:112 Constant: -0:112 1 (const int) -0:112 Convert bool to int ( temp 4-component vector of int) -0:112 subgroupAnd ( global 4-component vector of bool) -0:112 Compare Less Than ( global 4-component vector of bool) -0:112 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:112 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:112 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:112 Constant: -0:112 1 (const int) -0:112 Constant: -0:112 1 (const int) -0:112 Constant: -0:112 0 (const int) -0:112 0 (const int) -0:112 0 (const int) -0:112 0 (const int) -0:114 move second child to first child ( temp int) -0:114 direct index ( temp int) -0:114 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:114 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:114 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:114 'invocation' ( temp uint) -0:114 Constant: -0:114 1 (const int) -0:114 Constant: -0:114 0 (const int) -0:114 subgroupOr ( global int) -0:114 direct index ( temp int) -0:114 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:114 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:114 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:114 Constant: -0:114 0 (const int) -0:114 Constant: -0:114 1 (const int) -0:114 Constant: -0:114 0 (const int) -0:115 move second child to first child ( temp 2-component vector of int) -0:115 vector swizzle ( temp 2-component vector of int) -0:115 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:115 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:115 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:115 'invocation' ( temp uint) -0:115 Constant: -0:115 1 (const int) -0:115 Sequence -0:115 Constant: -0:115 0 (const int) -0:115 Constant: -0:115 1 (const int) -0:115 subgroupOr ( global 2-component vector of int) -0:115 vector swizzle ( temp 2-component vector of int) -0:115 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:115 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:115 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:115 Constant: -0:115 1 (const int) -0:115 Constant: -0:115 1 (const int) -0:115 Sequence -0:115 Constant: -0:115 0 (const int) -0:115 Constant: -0:115 1 (const int) -0:116 move second child to first child ( temp 3-component vector of int) -0:116 vector swizzle ( temp 3-component vector of int) -0:116 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:116 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:116 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:116 'invocation' ( temp uint) -0:116 Constant: -0:116 1 (const int) -0:116 Sequence -0:116 Constant: -0:116 0 (const int) -0:116 Constant: -0:116 1 (const int) -0:116 Constant: -0:116 2 (const int) -0:116 subgroupOr ( global 3-component vector of int) -0:116 vector swizzle ( temp 3-component vector of int) -0:116 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:116 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:116 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:116 Constant: -0:116 2 (const int) -0:116 Constant: -0:116 1 (const int) -0:116 Sequence -0:116 Constant: -0:116 0 (const int) -0:116 Constant: -0:116 1 (const int) -0:116 Constant: -0:116 2 (const int) -0:117 move second child to first child ( temp 4-component vector of int) -0:117 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:117 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:117 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:117 'invocation' ( temp uint) -0:117 Constant: -0:117 1 (const int) -0:117 subgroupOr ( global 4-component vector of int) -0:117 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:117 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:117 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:117 Constant: -0:117 3 (const int) -0:117 Constant: -0:117 1 (const int) -0:119 move second child to first child ( temp uint) -0:119 direct index ( temp uint) -0:119 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:119 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:119 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:119 'invocation' ( temp uint) -0:119 Constant: -0:119 2 (const int) -0:119 Constant: -0:119 0 (const int) -0:119 subgroupOr ( global uint) -0:119 direct index ( temp uint) -0:119 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:119 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:119 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:119 Constant: -0:119 0 (const int) -0:119 Constant: -0:119 2 (const int) -0:119 Constant: -0:119 0 (const int) -0:120 move second child to first child ( temp 2-component vector of uint) -0:120 vector swizzle ( temp 2-component vector of uint) -0:120 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:120 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:120 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:120 'invocation' ( temp uint) -0:120 Constant: -0:120 2 (const int) -0:120 Sequence -0:120 Constant: -0:120 0 (const int) -0:120 Constant: -0:120 1 (const int) -0:120 subgroupOr ( global 2-component vector of uint) -0:120 vector swizzle ( temp 2-component vector of uint) -0:120 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:120 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:120 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:120 Constant: -0:120 1 (const int) -0:120 Constant: -0:120 2 (const int) -0:120 Sequence -0:120 Constant: -0:120 0 (const int) -0:120 Constant: -0:120 1 (const int) -0:121 move second child to first child ( temp 3-component vector of uint) -0:121 vector swizzle ( temp 3-component vector of uint) -0:121 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:121 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:121 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:121 'invocation' ( temp uint) -0:121 Constant: -0:121 2 (const int) -0:121 Sequence -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 1 (const int) -0:121 Constant: -0:121 2 (const int) -0:121 subgroupOr ( global 3-component vector of uint) -0:121 vector swizzle ( temp 3-component vector of uint) -0:121 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:121 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:121 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:121 Constant: -0:121 2 (const int) -0:121 Constant: -0:121 2 (const int) -0:121 Sequence -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 1 (const int) -0:121 Constant: -0:121 2 (const int) -0:122 move second child to first child ( temp 4-component vector of uint) -0:122 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:122 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:122 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:122 'invocation' ( temp uint) -0:122 Constant: -0:122 2 (const int) -0:122 subgroupOr ( global 4-component vector of uint) -0:122 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:122 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:122 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:122 Constant: -0:122 3 (const int) -0:122 Constant: -0:122 2 (const int) -0:124 move second child to first child ( temp int) -0:124 direct index ( temp int) -0:124 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:124 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:124 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:124 'invocation' ( temp uint) -0:124 Constant: -0:124 1 (const int) -0:124 Constant: -0:124 0 (const int) -0:124 Convert bool to int ( temp int) -0:124 subgroupOr ( global bool) -0:124 Compare Less Than ( temp bool) -0:124 direct index ( temp int) -0:124 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:124 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:124 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:124 Constant: -0:124 0 (const int) -0:124 Constant: -0:124 1 (const int) -0:124 Constant: -0:124 0 (const int) -0:124 Constant: -0:124 0 (const int) -0:125 move second child to first child ( temp 2-component vector of int) -0:125 vector swizzle ( temp 2-component vector of int) -0:125 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:125 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:125 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:125 'invocation' ( temp uint) -0:125 Constant: -0:125 1 (const int) -0:125 Sequence -0:125 Constant: -0:125 0 (const int) -0:125 Constant: -0:125 1 (const int) -0:125 Convert bool to int ( temp 2-component vector of int) -0:125 subgroupOr ( global 2-component vector of bool) -0:125 Compare Less Than ( global 2-component vector of bool) -0:125 vector swizzle ( temp 2-component vector of int) -0:125 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:125 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:125 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:125 Constant: -0:125 1 (const int) -0:125 Constant: -0:125 1 (const int) -0:125 Sequence -0:125 Constant: -0:125 0 (const int) -0:125 Constant: -0:125 1 (const int) -0:125 Constant: -0:125 0 (const int) -0:125 0 (const int) -0:126 move second child to first child ( temp 3-component vector of int) -0:126 vector swizzle ( temp 3-component vector of int) -0:126 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:126 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:126 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:126 'invocation' ( temp uint) -0:126 Constant: -0:126 1 (const int) -0:126 Sequence -0:126 Constant: -0:126 0 (const int) -0:126 Constant: -0:126 1 (const int) -0:126 Constant: -0:126 2 (const int) -0:126 Convert bool to int ( temp 3-component vector of int) -0:126 subgroupOr ( global 3-component vector of bool) -0:126 Compare Less Than ( global 3-component vector of bool) -0:126 vector swizzle ( temp 3-component vector of int) -0:126 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:126 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:126 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:126 Constant: -0:126 1 (const int) -0:126 Constant: -0:126 1 (const int) -0:126 Sequence -0:126 Constant: -0:126 0 (const int) -0:126 Constant: -0:126 1 (const int) -0:126 Constant: -0:126 2 (const int) -0:126 Constant: -0:126 0 (const int) -0:126 0 (const int) -0:126 0 (const int) -0:127 move second child to first child ( temp 4-component vector of int) -0:127 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:127 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:127 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:127 'invocation' ( temp uint) -0:127 Constant: -0:127 1 (const int) -0:127 Convert bool to int ( temp 4-component vector of int) -0:127 subgroupOr ( global 4-component vector of bool) -0:127 Compare Less Than ( global 4-component vector of bool) -0:127 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:127 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:127 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:127 Constant: -0:127 1 (const int) -0:127 Constant: -0:127 1 (const int) -0:127 Constant: -0:127 0 (const int) -0:127 0 (const int) -0:127 0 (const int) -0:127 0 (const int) -0:129 move second child to first child ( temp int) -0:129 direct index ( temp int) -0:129 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:129 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:129 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:129 'invocation' ( temp uint) -0:129 Constant: -0:129 1 (const int) -0:129 Constant: -0:129 0 (const int) -0:129 subgroupXor ( global int) -0:129 direct index ( temp int) -0:129 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:129 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:129 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:129 Constant: -0:129 0 (const int) -0:129 Constant: -0:129 1 (const int) -0:129 Constant: -0:129 0 (const int) -0:130 move second child to first child ( temp 2-component vector of int) -0:130 vector swizzle ( temp 2-component vector of int) -0:130 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:130 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:130 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:130 'invocation' ( temp uint) -0:130 Constant: -0:130 1 (const int) -0:130 Sequence -0:130 Constant: -0:130 0 (const int) -0:130 Constant: -0:130 1 (const int) -0:130 subgroupXor ( global 2-component vector of int) -0:130 vector swizzle ( temp 2-component vector of int) -0:130 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:130 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:130 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:130 Constant: -0:130 1 (const int) -0:130 Constant: -0:130 1 (const int) -0:130 Sequence -0:130 Constant: -0:130 0 (const int) -0:130 Constant: -0:130 1 (const int) -0:131 move second child to first child ( temp 3-component vector of int) -0:131 vector swizzle ( temp 3-component vector of int) -0:131 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:131 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:131 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:131 'invocation' ( temp uint) -0:131 Constant: -0:131 1 (const int) -0:131 Sequence -0:131 Constant: -0:131 0 (const int) -0:131 Constant: -0:131 1 (const int) -0:131 Constant: -0:131 2 (const int) -0:131 subgroupXor ( global 3-component vector of int) -0:131 vector swizzle ( temp 3-component vector of int) -0:131 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:131 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:131 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:131 Constant: -0:131 2 (const int) -0:131 Constant: -0:131 1 (const int) -0:131 Sequence -0:131 Constant: -0:131 0 (const int) -0:131 Constant: -0:131 1 (const int) -0:131 Constant: -0:131 2 (const int) -0:132 move second child to first child ( temp 4-component vector of int) -0:132 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:132 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:132 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:132 'invocation' ( temp uint) -0:132 Constant: -0:132 1 (const int) -0:132 subgroupXor ( global 4-component vector of int) -0:132 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:132 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:132 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:132 Constant: -0:132 3 (const int) -0:132 Constant: -0:132 1 (const int) -0:134 move second child to first child ( temp uint) -0:134 direct index ( temp uint) -0:134 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:134 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:134 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:134 'invocation' ( temp uint) -0:134 Constant: -0:134 2 (const int) -0:134 Constant: -0:134 0 (const int) -0:134 subgroupXor ( global uint) -0:134 direct index ( temp uint) -0:134 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:134 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:134 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:134 Constant: -0:134 0 (const int) -0:134 Constant: -0:134 2 (const int) -0:134 Constant: -0:134 0 (const int) -0:135 move second child to first child ( temp 2-component vector of uint) -0:135 vector swizzle ( temp 2-component vector of uint) -0:135 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:135 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:135 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:135 'invocation' ( temp uint) -0:135 Constant: -0:135 2 (const int) -0:135 Sequence -0:135 Constant: -0:135 0 (const int) -0:135 Constant: -0:135 1 (const int) -0:135 subgroupXor ( global 2-component vector of uint) -0:135 vector swizzle ( temp 2-component vector of uint) -0:135 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:135 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:135 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:135 Constant: -0:135 1 (const int) -0:135 Constant: -0:135 2 (const int) -0:135 Sequence -0:135 Constant: -0:135 0 (const int) -0:135 Constant: -0:135 1 (const int) -0:136 move second child to first child ( temp 3-component vector of uint) -0:136 vector swizzle ( temp 3-component vector of uint) -0:136 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:136 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:136 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:136 'invocation' ( temp uint) -0:136 Constant: -0:136 2 (const int) -0:136 Sequence -0:136 Constant: -0:136 0 (const int) -0:136 Constant: -0:136 1 (const int) -0:136 Constant: -0:136 2 (const int) -0:136 subgroupXor ( global 3-component vector of uint) -0:136 vector swizzle ( temp 3-component vector of uint) -0:136 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:136 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:136 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:136 Constant: -0:136 2 (const int) -0:136 Constant: -0:136 2 (const int) -0:136 Sequence -0:136 Constant: -0:136 0 (const int) -0:136 Constant: -0:136 1 (const int) -0:136 Constant: -0:136 2 (const int) -0:137 move second child to first child ( temp 4-component vector of uint) -0:137 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:137 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:137 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:137 'invocation' ( temp uint) -0:137 Constant: -0:137 2 (const int) -0:137 subgroupXor ( global 4-component vector of uint) -0:137 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:137 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:137 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:137 Constant: -0:137 3 (const int) -0:137 Constant: -0:137 2 (const int) -0:139 move second child to first child ( temp int) -0:139 direct index ( temp int) -0:139 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:139 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:139 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:139 'invocation' ( temp uint) -0:139 Constant: -0:139 1 (const int) -0:139 Constant: -0:139 0 (const int) -0:139 Convert bool to int ( temp int) -0:139 subgroupXor ( global bool) -0:139 Compare Less Than ( temp bool) -0:139 direct index ( temp int) -0:139 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:139 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:139 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:139 Constant: -0:139 0 (const int) -0:139 Constant: -0:139 1 (const int) -0:139 Constant: -0:139 0 (const int) -0:139 Constant: -0:139 0 (const int) -0:140 move second child to first child ( temp 2-component vector of int) -0:140 vector swizzle ( temp 2-component vector of int) -0:140 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:140 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:140 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:140 'invocation' ( temp uint) -0:140 Constant: -0:140 1 (const int) -0:140 Sequence -0:140 Constant: -0:140 0 (const int) -0:140 Constant: -0:140 1 (const int) -0:140 Convert bool to int ( temp 2-component vector of int) -0:140 subgroupXor ( global 2-component vector of bool) -0:140 Compare Less Than ( global 2-component vector of bool) -0:140 vector swizzle ( temp 2-component vector of int) -0:140 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:140 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:140 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:140 Constant: -0:140 1 (const int) -0:140 Constant: -0:140 1 (const int) -0:140 Sequence -0:140 Constant: -0:140 0 (const int) -0:140 Constant: -0:140 1 (const int) -0:140 Constant: -0:140 0 (const int) -0:140 0 (const int) -0:141 move second child to first child ( temp 3-component vector of int) -0:141 vector swizzle ( temp 3-component vector of int) -0:141 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:141 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:141 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:141 'invocation' ( temp uint) -0:141 Constant: -0:141 1 (const int) -0:141 Sequence -0:141 Constant: -0:141 0 (const int) -0:141 Constant: -0:141 1 (const int) -0:141 Constant: -0:141 2 (const int) -0:141 Convert bool to int ( temp 3-component vector of int) -0:141 subgroupXor ( global 3-component vector of bool) -0:141 Compare Less Than ( global 3-component vector of bool) -0:141 vector swizzle ( temp 3-component vector of int) -0:141 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:141 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:141 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:141 Constant: -0:141 1 (const int) -0:141 Constant: -0:141 1 (const int) -0:141 Sequence -0:141 Constant: -0:141 0 (const int) -0:141 Constant: -0:141 1 (const int) -0:141 Constant: -0:141 2 (const int) -0:141 Constant: -0:141 0 (const int) -0:141 0 (const int) -0:141 0 (const int) -0:142 move second child to first child ( temp 4-component vector of int) -0:142 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:142 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:142 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:142 'invocation' ( temp uint) -0:142 Constant: -0:142 1 (const int) -0:142 Convert bool to int ( temp 4-component vector of int) -0:142 subgroupXor ( global 4-component vector of bool) -0:142 Compare Less Than ( global 4-component vector of bool) -0:142 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:142 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:142 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:142 Constant: -0:142 1 (const int) -0:142 Constant: -0:142 1 (const int) -0:142 Constant: -0:142 0 (const int) -0:142 0 (const int) -0:142 0 (const int) -0:142 0 (const int) -0:144 move second child to first child ( temp float) -0:144 direct index ( temp float) -0:144 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:144 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:144 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:144 'invocation' ( temp uint) -0:144 Constant: -0:144 0 (const int) -0:144 Constant: -0:144 0 (const int) -0:144 subgroupInclusiveAdd ( global float) -0:144 direct index ( temp float) -0:144 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:144 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:144 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:144 Constant: -0:144 0 (const int) -0:144 Constant: -0:144 0 (const int) -0:144 Constant: -0:144 0 (const int) -0:145 move second child to first child ( temp 2-component vector of float) -0:145 vector swizzle ( temp 2-component vector of float) -0:145 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:145 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:145 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:145 'invocation' ( temp uint) -0:145 Constant: -0:145 0 (const int) -0:145 Sequence -0:145 Constant: -0:145 0 (const int) -0:145 Constant: -0:145 1 (const int) -0:145 subgroupInclusiveAdd ( global 2-component vector of float) -0:145 vector swizzle ( temp 2-component vector of float) -0:145 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:145 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:145 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:145 Constant: -0:145 1 (const int) -0:145 Constant: -0:145 0 (const int) -0:145 Sequence -0:145 Constant: -0:145 0 (const int) -0:145 Constant: -0:145 1 (const int) -0:146 move second child to first child ( temp 3-component vector of float) -0:146 vector swizzle ( temp 3-component vector of float) -0:146 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:146 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:146 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:146 'invocation' ( temp uint) -0:146 Constant: -0:146 0 (const int) -0:146 Sequence -0:146 Constant: -0:146 0 (const int) -0:146 Constant: -0:146 1 (const int) -0:146 Constant: -0:146 2 (const int) -0:146 subgroupInclusiveAdd ( global 3-component vector of float) -0:146 vector swizzle ( temp 3-component vector of float) -0:146 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:146 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:146 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:146 Constant: -0:146 2 (const int) -0:146 Constant: -0:146 0 (const int) -0:146 Sequence -0:146 Constant: -0:146 0 (const int) -0:146 Constant: -0:146 1 (const int) -0:146 Constant: -0:146 2 (const int) -0:147 move second child to first child ( temp 4-component vector of float) -0:147 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:147 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:147 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:147 'invocation' ( temp uint) -0:147 Constant: -0:147 0 (const int) -0:147 subgroupInclusiveAdd ( global 4-component vector of float) -0:147 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:147 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:147 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:147 Constant: -0:147 3 (const int) -0:147 Constant: -0:147 0 (const int) -0:149 move second child to first child ( temp int) -0:149 direct index ( temp int) -0:149 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:149 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:149 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:149 'invocation' ( temp uint) -0:149 Constant: -0:149 1 (const int) -0:149 Constant: -0:149 0 (const int) -0:149 subgroupInclusiveAdd ( global int) -0:149 direct index ( temp int) -0:149 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:149 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:149 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:149 Constant: -0:149 0 (const int) -0:149 Constant: -0:149 1 (const int) -0:149 Constant: -0:149 0 (const int) -0:150 move second child to first child ( temp 2-component vector of int) -0:150 vector swizzle ( temp 2-component vector of int) -0:150 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:150 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:150 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:150 'invocation' ( temp uint) -0:150 Constant: -0:150 1 (const int) -0:150 Sequence -0:150 Constant: -0:150 0 (const int) -0:150 Constant: -0:150 1 (const int) -0:150 subgroupInclusiveAdd ( global 2-component vector of int) -0:150 vector swizzle ( temp 2-component vector of int) -0:150 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:150 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:150 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:150 Constant: -0:150 1 (const int) -0:150 Constant: -0:150 1 (const int) -0:150 Sequence -0:150 Constant: -0:150 0 (const int) -0:150 Constant: -0:150 1 (const int) -0:151 move second child to first child ( temp 3-component vector of int) -0:151 vector swizzle ( temp 3-component vector of int) -0:151 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:151 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:151 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:151 'invocation' ( temp uint) -0:151 Constant: -0:151 1 (const int) -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 subgroupInclusiveAdd ( global 3-component vector of int) -0:151 vector swizzle ( temp 3-component vector of int) -0:151 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:151 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:151 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:151 Constant: -0:151 2 (const int) -0:151 Constant: -0:151 1 (const int) -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:152 move second child to first child ( temp 4-component vector of int) -0:152 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:152 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:152 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:152 'invocation' ( temp uint) -0:152 Constant: -0:152 1 (const int) -0:152 subgroupInclusiveAdd ( global 4-component vector of int) -0:152 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:152 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:152 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:152 Constant: -0:152 3 (const int) -0:152 Constant: -0:152 1 (const int) -0:154 move second child to first child ( temp uint) -0:154 direct index ( temp uint) -0:154 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:154 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:154 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:154 'invocation' ( temp uint) -0:154 Constant: -0:154 2 (const int) -0:154 Constant: -0:154 0 (const int) -0:154 subgroupInclusiveAdd ( global uint) -0:154 direct index ( temp uint) -0:154 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:154 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:154 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:154 Constant: -0:154 0 (const int) -0:154 Constant: -0:154 2 (const int) -0:154 Constant: -0:154 0 (const int) -0:155 move second child to first child ( temp 2-component vector of uint) -0:155 vector swizzle ( temp 2-component vector of uint) -0:155 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:155 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:155 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:155 'invocation' ( temp uint) -0:155 Constant: -0:155 2 (const int) -0:155 Sequence -0:155 Constant: -0:155 0 (const int) -0:155 Constant: -0:155 1 (const int) -0:155 subgroupInclusiveAdd ( global 2-component vector of uint) -0:155 vector swizzle ( temp 2-component vector of uint) -0:155 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:155 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:155 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:155 Constant: -0:155 1 (const int) -0:155 Constant: -0:155 2 (const int) -0:155 Sequence -0:155 Constant: -0:155 0 (const int) -0:155 Constant: -0:155 1 (const int) -0:156 move second child to first child ( temp 3-component vector of uint) -0:156 vector swizzle ( temp 3-component vector of uint) -0:156 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:156 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:156 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:156 'invocation' ( temp uint) -0:156 Constant: -0:156 2 (const int) -0:156 Sequence -0:156 Constant: -0:156 0 (const int) -0:156 Constant: -0:156 1 (const int) -0:156 Constant: -0:156 2 (const int) -0:156 subgroupInclusiveAdd ( global 3-component vector of uint) -0:156 vector swizzle ( temp 3-component vector of uint) -0:156 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:156 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:156 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:156 Constant: -0:156 2 (const int) -0:156 Constant: -0:156 2 (const int) -0:156 Sequence -0:156 Constant: -0:156 0 (const int) -0:156 Constant: -0:156 1 (const int) -0:156 Constant: -0:156 2 (const int) -0:157 move second child to first child ( temp 4-component vector of uint) -0:157 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:157 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:157 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:157 'invocation' ( temp uint) -0:157 Constant: -0:157 2 (const int) -0:157 subgroupInclusiveAdd ( global 4-component vector of uint) -0:157 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:157 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:157 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:157 Constant: -0:157 3 (const int) -0:157 Constant: -0:157 2 (const int) -0:159 move second child to first child ( temp double) -0:159 direct index ( temp double) -0:159 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:159 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:159 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:159 'invocation' ( temp uint) -0:159 Constant: -0:159 3 (const int) -0:159 Constant: -0:159 0 (const int) -0:159 subgroupInclusiveAdd ( global double) -0:159 direct index ( temp double) -0:159 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:159 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:159 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:159 Constant: -0:159 0 (const int) -0:159 Constant: -0:159 3 (const int) -0:159 Constant: -0:159 0 (const int) -0:160 move second child to first child ( temp 2-component vector of double) -0:160 vector swizzle ( temp 2-component vector of double) -0:160 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:160 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:160 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:160 'invocation' ( temp uint) -0:160 Constant: -0:160 3 (const int) -0:160 Sequence -0:160 Constant: -0:160 0 (const int) -0:160 Constant: -0:160 1 (const int) -0:160 subgroupInclusiveAdd ( global 2-component vector of double) -0:160 vector swizzle ( temp 2-component vector of double) -0:160 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:160 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:160 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:160 Constant: -0:160 1 (const int) -0:160 Constant: -0:160 3 (const int) -0:160 Sequence -0:160 Constant: -0:160 0 (const int) -0:160 Constant: -0:160 1 (const int) -0:161 move second child to first child ( temp 3-component vector of double) -0:161 vector swizzle ( temp 3-component vector of double) -0:161 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:161 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:161 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:161 'invocation' ( temp uint) -0:161 Constant: -0:161 3 (const int) -0:161 Sequence -0:161 Constant: -0:161 0 (const int) -0:161 Constant: -0:161 1 (const int) -0:161 Constant: -0:161 2 (const int) -0:161 subgroupInclusiveAdd ( global 3-component vector of double) -0:161 vector swizzle ( temp 3-component vector of double) -0:161 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:161 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:161 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:161 Constant: -0:161 2 (const int) -0:161 Constant: -0:161 3 (const int) -0:161 Sequence -0:161 Constant: -0:161 0 (const 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 4-component vector of double) -0:162 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:162 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:162 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:162 'invocation' ( temp uint) -0:162 Constant: -0:162 3 (const int) -0:162 subgroupInclusiveAdd ( global 4-component vector of double) -0:162 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:162 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:162 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:162 Constant: -0:162 3 (const int) -0:162 Constant: -0:162 3 (const int) -0:164 move second child to first child ( temp float) -0:164 direct index ( temp float) -0:164 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:164 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:164 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:164 'invocation' ( temp uint) -0:164 Constant: -0:164 0 (const int) -0:164 Constant: -0:164 0 (const int) -0:164 subgroupInclusiveMul ( global float) -0:164 direct index ( temp float) -0:164 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:164 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:164 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:164 Constant: -0:164 0 (const int) -0:164 Constant: -0:164 0 (const int) -0:164 Constant: -0:164 0 (const int) -0:165 move second child to first child ( temp 2-component vector of float) -0:165 vector swizzle ( temp 2-component vector of float) -0:165 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:165 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:165 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:165 'invocation' ( temp uint) -0:165 Constant: -0:165 0 (const int) -0:165 Sequence -0:165 Constant: -0:165 0 (const int) -0:165 Constant: -0:165 1 (const int) -0:165 subgroupInclusiveMul ( global 2-component vector of float) -0:165 vector swizzle ( temp 2-component vector of float) -0:165 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:165 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:165 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:165 Constant: -0:165 1 (const int) -0:165 Constant: -0:165 0 (const int) -0:165 Sequence -0:165 Constant: -0:165 0 (const int) -0:165 Constant: -0:165 1 (const int) -0:166 move second child to first child ( temp 3-component vector of float) -0:166 vector swizzle ( temp 3-component vector of float) -0:166 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:166 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:166 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:166 'invocation' ( temp uint) -0:166 Constant: -0:166 0 (const int) -0:166 Sequence -0:166 Constant: -0:166 0 (const int) -0:166 Constant: -0:166 1 (const int) -0:166 Constant: -0:166 2 (const int) -0:166 subgroupInclusiveMul ( global 3-component vector of float) -0:166 vector swizzle ( temp 3-component vector of float) -0:166 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:166 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:166 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:166 Constant: -0:166 2 (const int) -0:166 Constant: -0:166 0 (const int) -0:166 Sequence -0:166 Constant: -0:166 0 (const int) -0:166 Constant: -0:166 1 (const int) -0:166 Constant: -0:166 2 (const int) -0:167 move second child to first child ( temp 4-component vector of float) -0:167 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:167 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:167 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:167 'invocation' ( temp uint) -0:167 Constant: -0:167 0 (const int) -0:167 subgroupInclusiveMul ( global 4-component vector of float) -0:167 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:167 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:167 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:167 Constant: -0:167 3 (const int) -0:167 Constant: -0:167 0 (const int) -0:169 move second child to first child ( temp int) -0:169 direct index ( temp int) -0:169 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:169 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:169 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:169 'invocation' ( temp uint) -0:169 Constant: -0:169 1 (const int) -0:169 Constant: -0:169 0 (const int) -0:169 subgroupInclusiveMul ( global int) -0:169 direct index ( temp int) -0:169 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:169 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:169 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:169 Constant: -0:169 0 (const int) -0:169 Constant: -0:169 1 (const int) -0:169 Constant: -0:169 0 (const int) -0:170 move second child to first child ( temp 2-component vector of int) -0:170 vector swizzle ( temp 2-component vector of int) -0:170 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:170 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:170 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:170 'invocation' ( temp uint) -0:170 Constant: -0:170 1 (const int) -0:170 Sequence -0:170 Constant: -0:170 0 (const int) -0:170 Constant: -0:170 1 (const int) -0:170 subgroupInclusiveMul ( global 2-component vector of int) -0:170 vector swizzle ( temp 2-component vector of int) -0:170 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:170 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:170 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:170 Constant: -0:170 1 (const int) -0:170 Constant: -0:170 1 (const int) -0:170 Sequence -0:170 Constant: -0:170 0 (const int) -0:170 Constant: -0:170 1 (const int) -0:171 move second child to first child ( temp 3-component vector of int) -0:171 vector swizzle ( temp 3-component vector of int) -0:171 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:171 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:171 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:171 'invocation' ( temp uint) -0:171 Constant: -0:171 1 (const int) -0:171 Sequence -0:171 Constant: -0:171 0 (const int) -0:171 Constant: -0:171 1 (const int) -0:171 Constant: -0:171 2 (const int) -0:171 subgroupInclusiveMul ( global 3-component vector of int) -0:171 vector swizzle ( temp 3-component vector of int) -0:171 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:171 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:171 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:171 Constant: -0:171 2 (const int) -0:171 Constant: -0:171 1 (const int) -0:171 Sequence -0:171 Constant: -0:171 0 (const int) -0:171 Constant: -0:171 1 (const int) -0:171 Constant: -0:171 2 (const int) -0:172 move second child to first child ( temp 4-component vector of int) -0:172 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:172 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:172 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:172 'invocation' ( temp uint) -0:172 Constant: -0:172 1 (const int) -0:172 subgroupInclusiveMul ( global 4-component vector of int) -0:172 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:172 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:172 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:172 Constant: -0:172 3 (const int) -0:172 Constant: -0:172 1 (const int) -0:174 move second child to first child ( temp uint) -0:174 direct index ( temp uint) -0:174 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:174 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:174 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:174 'invocation' ( temp uint) -0:174 Constant: -0:174 2 (const int) -0:174 Constant: -0:174 0 (const int) -0:174 subgroupInclusiveMul ( global uint) -0:174 direct index ( temp uint) -0:174 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:174 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:174 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:174 Constant: -0:174 0 (const int) -0:174 Constant: -0:174 2 (const int) -0:174 Constant: -0:174 0 (const int) -0:175 move second child to first child ( temp 2-component vector of uint) -0:175 vector swizzle ( temp 2-component vector of uint) -0:175 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:175 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:175 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:175 'invocation' ( temp uint) -0:175 Constant: -0:175 2 (const int) -0:175 Sequence -0:175 Constant: -0:175 0 (const int) -0:175 Constant: -0:175 1 (const int) -0:175 subgroupInclusiveMul ( global 2-component vector of uint) -0:175 vector swizzle ( temp 2-component vector of uint) -0:175 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:175 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:175 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:175 Constant: -0:175 1 (const int) -0:175 Constant: -0:175 2 (const int) -0:175 Sequence -0:175 Constant: -0:175 0 (const int) -0:175 Constant: -0:175 1 (const int) -0:176 move second child to first child ( temp 3-component vector of uint) -0:176 vector swizzle ( temp 3-component vector of uint) -0:176 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:176 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:176 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:176 'invocation' ( temp uint) -0:176 Constant: -0:176 2 (const int) -0:176 Sequence -0:176 Constant: -0:176 0 (const int) -0:176 Constant: -0:176 1 (const int) -0:176 Constant: -0:176 2 (const int) -0:176 subgroupInclusiveMul ( global 3-component vector of uint) -0:176 vector swizzle ( temp 3-component vector of uint) -0:176 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:176 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:176 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:176 Constant: -0:176 2 (const int) -0:176 Constant: -0:176 2 (const int) -0:176 Sequence -0:176 Constant: -0:176 0 (const int) -0:176 Constant: -0:176 1 (const int) -0:176 Constant: -0:176 2 (const int) -0:177 move second child to first child ( temp 4-component vector of uint) -0:177 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:177 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:177 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:177 'invocation' ( temp uint) -0:177 Constant: -0:177 2 (const int) -0:177 subgroupInclusiveMul ( global 4-component vector of uint) -0:177 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:177 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:177 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:177 Constant: -0:177 3 (const int) -0:177 Constant: -0:177 2 (const int) -0:179 move second child to first child ( temp double) -0:179 direct index ( temp double) -0:179 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:179 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:179 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:179 'invocation' ( temp uint) -0:179 Constant: -0:179 3 (const int) -0:179 Constant: -0:179 0 (const int) -0:179 subgroupInclusiveMul ( global double) -0:179 direct index ( temp double) -0:179 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:179 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:179 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:179 Constant: -0:179 0 (const int) -0:179 Constant: -0:179 3 (const int) -0:179 Constant: -0:179 0 (const int) -0:180 move second child to first child ( temp 2-component vector of double) -0:180 vector swizzle ( temp 2-component vector of double) -0:180 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:180 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:180 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:180 'invocation' ( temp uint) -0:180 Constant: -0:180 3 (const int) -0:180 Sequence -0:180 Constant: -0:180 0 (const int) -0:180 Constant: -0:180 1 (const int) -0:180 subgroupInclusiveMul ( global 2-component vector of double) -0:180 vector swizzle ( temp 2-component vector of double) -0:180 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:180 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:180 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:180 Constant: -0:180 1 (const int) -0:180 Constant: -0:180 3 (const int) -0:180 Sequence -0:180 Constant: -0:180 0 (const int) -0:180 Constant: -0:180 1 (const int) -0:181 move second child to first child ( temp 3-component vector of double) -0:181 vector swizzle ( temp 3-component vector of double) -0:181 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:181 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:181 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:181 'invocation' ( temp uint) -0:181 Constant: -0:181 3 (const int) -0:181 Sequence -0:181 Constant: -0:181 0 (const int) -0:181 Constant: -0:181 1 (const int) -0:181 Constant: -0:181 2 (const int) -0:181 subgroupInclusiveMul ( global 3-component vector of double) -0:181 vector swizzle ( temp 3-component vector of double) -0:181 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:181 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:181 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:181 Constant: -0:181 2 (const int) -0:181 Constant: -0:181 3 (const int) -0:181 Sequence -0:181 Constant: -0:181 0 (const int) -0:181 Constant: -0:181 1 (const int) -0:181 Constant: -0:181 2 (const int) -0:182 move second child to first child ( temp 4-component vector of double) -0:182 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:182 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:182 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:182 'invocation' ( temp uint) -0:182 Constant: -0:182 3 (const int) -0:182 subgroupInclusiveMul ( global 4-component vector of double) -0:182 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:182 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:182 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:182 Constant: -0:182 3 (const int) -0:182 Constant: -0:182 3 (const int) -0:184 move second child to first child ( temp float) -0:184 direct index ( temp float) -0:184 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:184 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:184 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:184 'invocation' ( temp uint) -0:184 Constant: -0:184 0 (const int) -0:184 Constant: -0:184 0 (const int) -0:184 subgroupInclusiveMin ( global float) -0:184 direct index ( temp float) -0:184 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:184 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:184 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:184 Constant: -0:184 0 (const int) -0:184 Constant: -0:184 0 (const int) -0:184 Constant: -0:184 0 (const int) -0:185 move second child to first child ( temp 2-component vector of float) -0:185 vector swizzle ( temp 2-component vector of float) -0:185 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:185 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:185 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:185 'invocation' ( temp uint) -0:185 Constant: -0:185 0 (const int) -0:185 Sequence -0:185 Constant: -0:185 0 (const int) -0:185 Constant: -0:185 1 (const int) -0:185 subgroupInclusiveMin ( global 2-component vector of float) -0:185 vector swizzle ( temp 2-component vector of float) -0:185 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:185 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:185 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:185 Constant: -0:185 1 (const int) -0:185 Constant: -0:185 0 (const int) -0:185 Sequence -0:185 Constant: -0:185 0 (const int) -0:185 Constant: -0:185 1 (const int) -0:186 move second child to first child ( temp 3-component vector of float) -0:186 vector swizzle ( temp 3-component vector of float) -0:186 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:186 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:186 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:186 'invocation' ( temp uint) -0:186 Constant: -0:186 0 (const int) -0:186 Sequence -0:186 Constant: -0:186 0 (const int) -0:186 Constant: -0:186 1 (const int) -0:186 Constant: -0:186 2 (const int) -0:186 subgroupInclusiveMin ( global 3-component vector of float) -0:186 vector swizzle ( temp 3-component vector of float) -0:186 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:186 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:186 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:186 Constant: -0:186 2 (const int) -0:186 Constant: -0:186 0 (const int) -0:186 Sequence -0:186 Constant: -0:186 0 (const int) -0:186 Constant: -0:186 1 (const int) -0:186 Constant: -0:186 2 (const int) -0:187 move second child to first child ( temp 4-component vector of float) -0:187 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:187 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:187 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:187 'invocation' ( temp uint) -0:187 Constant: -0:187 0 (const int) -0:187 subgroupInclusiveMin ( global 4-component vector of float) -0:187 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:187 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:187 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:187 Constant: -0:187 3 (const int) -0:187 Constant: -0:187 0 (const int) -0:189 move second child to first child ( temp int) -0:189 direct index ( temp int) -0:189 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:189 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:189 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:189 'invocation' ( temp uint) -0:189 Constant: -0:189 1 (const int) -0:189 Constant: -0:189 0 (const int) -0:189 subgroupInclusiveMin ( global int) -0:189 direct index ( temp int) -0:189 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:189 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:189 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:189 Constant: -0:189 0 (const int) -0:189 Constant: -0:189 1 (const int) -0:189 Constant: -0:189 0 (const int) -0:190 move second child to first child ( temp 2-component vector of int) -0:190 vector swizzle ( temp 2-component vector of int) -0:190 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:190 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:190 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:190 'invocation' ( temp uint) -0:190 Constant: -0:190 1 (const int) -0:190 Sequence -0:190 Constant: -0:190 0 (const int) -0:190 Constant: -0:190 1 (const int) -0:190 subgroupInclusiveMin ( global 2-component vector of int) -0:190 vector swizzle ( temp 2-component vector of int) -0:190 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:190 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:190 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:190 Constant: -0:190 1 (const int) -0:190 Constant: -0:190 1 (const int) -0:190 Sequence -0:190 Constant: -0:190 0 (const int) -0:190 Constant: -0:190 1 (const int) -0:191 move second child to first child ( temp 3-component vector of int) -0:191 vector swizzle ( temp 3-component vector of int) -0:191 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:191 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:191 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:191 'invocation' ( temp uint) -0:191 Constant: -0:191 1 (const int) -0:191 Sequence -0:191 Constant: -0:191 0 (const int) -0:191 Constant: -0:191 1 (const int) -0:191 Constant: -0:191 2 (const int) -0:191 subgroupInclusiveMin ( global 3-component vector of int) -0:191 vector swizzle ( temp 3-component vector of int) -0:191 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:191 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:191 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:191 Constant: -0:191 2 (const int) -0:191 Constant: -0:191 1 (const int) -0:191 Sequence -0:191 Constant: -0:191 0 (const int) -0:191 Constant: -0:191 1 (const int) -0:191 Constant: -0:191 2 (const int) -0:192 move second child to first child ( temp 4-component vector of int) -0:192 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:192 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:192 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:192 'invocation' ( temp uint) -0:192 Constant: -0:192 1 (const int) -0:192 subgroupInclusiveMin ( global 4-component vector of int) -0:192 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:192 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:192 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:192 Constant: -0:192 3 (const int) -0:192 Constant: -0:192 1 (const int) -0:194 move second child to first child ( temp uint) -0:194 direct index ( temp uint) -0:194 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:194 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:194 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:194 'invocation' ( temp uint) -0:194 Constant: -0:194 2 (const int) -0:194 Constant: -0:194 0 (const int) -0:194 subgroupInclusiveMin ( global uint) -0:194 direct index ( temp uint) -0:194 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:194 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:194 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:194 Constant: -0:194 0 (const int) -0:194 Constant: -0:194 2 (const int) -0:194 Constant: -0:194 0 (const int) -0:195 move second child to first child ( temp 2-component vector of uint) -0:195 vector swizzle ( temp 2-component vector of uint) -0:195 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:195 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:195 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:195 'invocation' ( temp uint) -0:195 Constant: -0:195 2 (const int) -0:195 Sequence -0:195 Constant: -0:195 0 (const int) -0:195 Constant: -0:195 1 (const int) -0:195 subgroupInclusiveMin ( global 2-component vector of uint) -0:195 vector swizzle ( temp 2-component vector of uint) -0:195 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:195 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:195 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:195 Constant: -0:195 1 (const int) -0:195 Constant: -0:195 2 (const int) -0:195 Sequence -0:195 Constant: -0:195 0 (const int) -0:195 Constant: -0:195 1 (const int) -0:196 move second child to first child ( temp 3-component vector of uint) -0:196 vector swizzle ( temp 3-component vector of uint) -0:196 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:196 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:196 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:196 'invocation' ( temp uint) -0:196 Constant: -0:196 2 (const int) -0:196 Sequence -0:196 Constant: -0:196 0 (const int) -0:196 Constant: -0:196 1 (const int) -0:196 Constant: -0:196 2 (const int) -0:196 subgroupInclusiveMin ( global 3-component vector of uint) -0:196 vector swizzle ( temp 3-component vector of uint) -0:196 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:196 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:196 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:196 Constant: -0:196 2 (const int) -0:196 Constant: -0:196 2 (const int) -0:196 Sequence -0:196 Constant: -0:196 0 (const int) -0:196 Constant: -0:196 1 (const int) -0:196 Constant: -0:196 2 (const int) -0:197 move second child to first child ( temp 4-component vector of uint) -0:197 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:197 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:197 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:197 'invocation' ( temp uint) -0:197 Constant: -0:197 2 (const int) -0:197 subgroupInclusiveMin ( global 4-component vector of uint) -0:197 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:197 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:197 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:197 Constant: -0:197 3 (const int) -0:197 Constant: -0:197 2 (const int) -0:199 move second child to first child ( temp double) -0:199 direct index ( temp double) -0:199 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:199 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:199 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:199 'invocation' ( temp uint) -0:199 Constant: -0:199 3 (const int) -0:199 Constant: -0:199 0 (const int) -0:199 subgroupInclusiveMin ( global double) -0:199 direct index ( temp double) -0:199 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:199 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:199 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:199 Constant: -0:199 0 (const int) -0:199 Constant: -0:199 3 (const int) -0:199 Constant: -0:199 0 (const int) -0:200 move second child to first child ( temp 2-component vector of double) -0:200 vector swizzle ( temp 2-component vector of double) -0:200 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:200 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:200 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:200 'invocation' ( temp uint) -0:200 Constant: -0:200 3 (const int) -0:200 Sequence -0:200 Constant: -0:200 0 (const int) -0:200 Constant: -0:200 1 (const int) -0:200 subgroupInclusiveMin ( global 2-component vector of double) -0:200 vector swizzle ( temp 2-component vector of double) -0:200 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:200 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:200 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:200 Constant: -0:200 1 (const int) -0:200 Constant: -0:200 3 (const int) -0:200 Sequence -0:200 Constant: -0:200 0 (const int) -0:200 Constant: -0:200 1 (const int) -0:201 move second child to first child ( temp 3-component vector of double) -0:201 vector swizzle ( temp 3-component vector of double) -0:201 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:201 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:201 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:201 'invocation' ( temp uint) -0:201 Constant: -0:201 3 (const int) -0:201 Sequence -0:201 Constant: -0:201 0 (const int) -0:201 Constant: -0:201 1 (const int) -0:201 Constant: -0:201 2 (const int) -0:201 subgroupInclusiveMin ( global 3-component vector of double) -0:201 vector swizzle ( temp 3-component vector of double) -0:201 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:201 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:201 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:201 Constant: -0:201 2 (const int) -0:201 Constant: -0:201 3 (const int) -0:201 Sequence -0:201 Constant: -0:201 0 (const int) -0:201 Constant: -0:201 1 (const int) -0:201 Constant: -0:201 2 (const int) -0:202 move second child to first child ( temp 4-component vector of double) -0:202 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:202 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:202 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:202 'invocation' ( temp uint) -0:202 Constant: -0:202 3 (const int) -0:202 subgroupInclusiveMin ( global 4-component vector of double) -0:202 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:202 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:202 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:202 Constant: -0:202 3 (const int) -0:202 Constant: -0:202 3 (const int) -0:204 move second child to first child ( temp float) -0:204 direct index ( temp float) -0:204 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:204 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:204 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:204 'invocation' ( temp uint) -0:204 Constant: -0:204 0 (const int) -0:204 Constant: -0:204 0 (const int) -0:204 subgroupInclusiveMax ( global float) -0:204 direct index ( temp float) -0:204 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:204 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:204 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:204 Constant: -0:204 0 (const int) -0:204 Constant: -0:204 0 (const int) -0:204 Constant: -0:204 0 (const int) -0:205 move second child to first child ( temp 2-component vector of float) -0:205 vector swizzle ( temp 2-component vector of float) -0:205 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:205 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:205 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:205 'invocation' ( temp uint) -0:205 Constant: -0:205 0 (const int) -0:205 Sequence -0:205 Constant: -0:205 0 (const int) -0:205 Constant: -0:205 1 (const int) -0:205 subgroupInclusiveMax ( global 2-component vector of float) -0:205 vector swizzle ( temp 2-component vector of float) -0:205 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:205 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:205 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:205 Constant: -0:205 1 (const int) -0:205 Constant: -0:205 0 (const int) -0:205 Sequence -0:205 Constant: -0:205 0 (const int) -0:205 Constant: -0:205 1 (const int) -0:206 move second child to first child ( temp 3-component vector of float) -0:206 vector swizzle ( temp 3-component vector of float) -0:206 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:206 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:206 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:206 'invocation' ( temp uint) -0:206 Constant: -0:206 0 (const int) -0:206 Sequence -0:206 Constant: -0:206 0 (const int) -0:206 Constant: -0:206 1 (const int) -0:206 Constant: -0:206 2 (const int) -0:206 subgroupInclusiveMax ( global 3-component vector of float) -0:206 vector swizzle ( temp 3-component vector of float) -0:206 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:206 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:206 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:206 Constant: -0:206 2 (const int) -0:206 Constant: -0:206 0 (const int) -0:206 Sequence -0:206 Constant: -0:206 0 (const int) -0:206 Constant: -0:206 1 (const int) -0:206 Constant: -0:206 2 (const int) -0:207 move second child to first child ( temp 4-component vector of float) -0:207 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:207 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:207 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:207 'invocation' ( temp uint) -0:207 Constant: -0:207 0 (const int) -0:207 subgroupInclusiveMax ( global 4-component vector of float) -0:207 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:207 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:207 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:207 Constant: -0:207 3 (const int) -0:207 Constant: -0:207 0 (const int) -0:209 move second child to first child ( temp int) -0:209 direct index ( temp int) -0:209 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:209 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:209 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:209 'invocation' ( temp uint) -0:209 Constant: -0:209 1 (const int) -0:209 Constant: -0:209 0 (const int) -0:209 subgroupInclusiveMax ( global int) -0:209 direct index ( temp int) -0:209 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:209 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:209 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:209 Constant: -0:209 0 (const int) -0:209 Constant: -0:209 1 (const int) -0:209 Constant: -0:209 0 (const int) -0:210 move second child to first child ( temp 2-component vector of int) -0:210 vector swizzle ( temp 2-component vector of int) -0:210 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:210 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:210 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:210 'invocation' ( temp uint) -0:210 Constant: -0:210 1 (const int) -0:210 Sequence -0:210 Constant: -0:210 0 (const int) -0:210 Constant: -0:210 1 (const int) -0:210 subgroupInclusiveMax ( global 2-component vector of int) -0:210 vector swizzle ( temp 2-component vector of int) -0:210 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:210 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:210 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:210 Constant: -0:210 1 (const int) -0:210 Constant: -0:210 1 (const int) -0:210 Sequence -0:210 Constant: -0:210 0 (const int) -0:210 Constant: -0:210 1 (const int) -0:211 move second child to first child ( temp 3-component vector of int) -0:211 vector swizzle ( temp 3-component vector of int) -0:211 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:211 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:211 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:211 'invocation' ( temp uint) -0:211 Constant: -0:211 1 (const int) -0:211 Sequence -0:211 Constant: -0:211 0 (const int) -0:211 Constant: -0:211 1 (const int) -0:211 Constant: -0:211 2 (const int) -0:211 subgroupInclusiveMax ( global 3-component vector of int) -0:211 vector swizzle ( temp 3-component vector of int) -0:211 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:211 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:211 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:211 Constant: -0:211 2 (const int) -0:211 Constant: -0:211 1 (const int) -0:211 Sequence -0:211 Constant: -0:211 0 (const int) -0:211 Constant: -0:211 1 (const int) -0:211 Constant: -0:211 2 (const int) -0:212 move second child to first child ( temp 4-component vector of int) -0:212 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:212 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:212 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:212 'invocation' ( temp uint) -0:212 Constant: -0:212 1 (const int) -0:212 subgroupInclusiveMax ( global 4-component vector of int) -0:212 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:212 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:212 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:212 Constant: -0:212 3 (const int) -0:212 Constant: -0:212 1 (const int) -0:214 move second child to first child ( temp uint) -0:214 direct index ( temp uint) -0:214 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:214 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:214 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:214 'invocation' ( temp uint) -0:214 Constant: -0:214 2 (const int) -0:214 Constant: -0:214 0 (const int) -0:214 subgroupInclusiveMax ( global uint) -0:214 direct index ( temp uint) -0:214 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:214 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:214 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:214 Constant: -0:214 0 (const int) -0:214 Constant: -0:214 2 (const int) -0:214 Constant: -0:214 0 (const int) -0:215 move second child to first child ( temp 2-component vector of uint) -0:215 vector swizzle ( temp 2-component vector of uint) -0:215 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:215 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:215 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:215 'invocation' ( temp uint) -0:215 Constant: -0:215 2 (const int) -0:215 Sequence -0:215 Constant: -0:215 0 (const int) -0:215 Constant: -0:215 1 (const int) -0:215 subgroupInclusiveMax ( global 2-component vector of uint) -0:215 vector swizzle ( temp 2-component vector of uint) -0:215 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:215 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:215 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:215 Constant: -0:215 1 (const int) -0:215 Constant: -0:215 2 (const int) -0:215 Sequence -0:215 Constant: -0:215 0 (const int) -0:215 Constant: -0:215 1 (const int) -0:216 move second child to first child ( temp 3-component vector of uint) -0:216 vector swizzle ( temp 3-component vector of uint) -0:216 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:216 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:216 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:216 'invocation' ( temp uint) -0:216 Constant: -0:216 2 (const int) -0:216 Sequence -0:216 Constant: -0:216 0 (const int) -0:216 Constant: -0:216 1 (const int) -0:216 Constant: -0:216 2 (const int) -0:216 subgroupInclusiveMax ( global 3-component vector of uint) -0:216 vector swizzle ( temp 3-component vector of uint) -0:216 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:216 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:216 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:216 Constant: -0:216 2 (const int) -0:216 Constant: -0:216 2 (const int) -0:216 Sequence -0:216 Constant: -0:216 0 (const int) -0:216 Constant: -0:216 1 (const int) -0:216 Constant: -0:216 2 (const int) -0:217 move second child to first child ( temp 4-component vector of uint) -0:217 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:217 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:217 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:217 'invocation' ( temp uint) -0:217 Constant: -0:217 2 (const int) -0:217 subgroupInclusiveMax ( global 4-component vector of uint) -0:217 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:217 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:217 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:217 Constant: -0:217 3 (const int) -0:217 Constant: -0:217 2 (const int) -0:219 move second child to first child ( temp double) -0:219 direct index ( temp double) -0:219 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:219 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:219 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:219 'invocation' ( temp uint) -0:219 Constant: -0:219 3 (const int) -0:219 Constant: -0:219 0 (const int) -0:219 subgroupInclusiveMax ( global double) -0:219 direct index ( temp double) -0:219 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:219 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:219 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:219 Constant: -0:219 0 (const int) -0:219 Constant: -0:219 3 (const int) -0:219 Constant: -0:219 0 (const int) -0:220 move second child to first child ( temp 2-component vector of double) -0:220 vector swizzle ( temp 2-component vector of double) -0:220 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:220 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:220 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:220 'invocation' ( temp uint) -0:220 Constant: -0:220 3 (const int) -0:220 Sequence -0:220 Constant: -0:220 0 (const int) -0:220 Constant: -0:220 1 (const int) -0:220 subgroupInclusiveMax ( global 2-component vector of double) -0:220 vector swizzle ( temp 2-component vector of double) -0:220 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:220 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:220 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:220 Constant: -0:220 1 (const int) -0:220 Constant: -0:220 3 (const int) -0:220 Sequence -0:220 Constant: -0:220 0 (const int) -0:220 Constant: -0:220 1 (const int) -0:221 move second child to first child ( temp 3-component vector of double) -0:221 vector swizzle ( temp 3-component vector of double) -0:221 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:221 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:221 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:221 'invocation' ( temp uint) -0:221 Constant: -0:221 3 (const int) -0:221 Sequence -0:221 Constant: -0:221 0 (const int) -0:221 Constant: -0:221 1 (const int) -0:221 Constant: -0:221 2 (const int) -0:221 subgroupInclusiveMax ( global 3-component vector of double) -0:221 vector swizzle ( temp 3-component vector of double) -0:221 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:221 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:221 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:221 Constant: -0:221 2 (const int) -0:221 Constant: -0:221 3 (const int) -0:221 Sequence -0:221 Constant: -0:221 0 (const int) -0:221 Constant: -0:221 1 (const int) -0:221 Constant: -0:221 2 (const int) -0:222 move second child to first child ( temp 4-component vector of double) -0:222 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:222 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:222 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:222 'invocation' ( temp uint) -0:222 Constant: -0:222 3 (const int) -0:222 subgroupInclusiveMax ( global 4-component vector of double) -0:222 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:222 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:222 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:222 Constant: -0:222 3 (const int) -0:222 Constant: -0:222 3 (const int) -0:224 move second child to first child ( temp int) -0:224 direct index ( temp int) -0:224 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:224 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:224 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:224 'invocation' ( temp uint) -0:224 Constant: -0:224 1 (const int) -0:224 Constant: -0:224 0 (const int) -0:224 subgroupInclusiveAnd ( global int) -0:224 direct index ( temp int) -0:224 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:224 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:224 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:224 Constant: -0:224 0 (const int) -0:224 Constant: -0:224 1 (const int) -0:224 Constant: -0:224 0 (const int) -0:225 move second child to first child ( temp 2-component vector of int) -0:225 vector swizzle ( temp 2-component vector of int) -0:225 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:225 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:225 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:225 'invocation' ( temp uint) -0:225 Constant: -0:225 1 (const int) -0:225 Sequence -0:225 Constant: -0:225 0 (const int) -0:225 Constant: -0:225 1 (const int) -0:225 subgroupInclusiveAnd ( global 2-component vector of int) -0:225 vector swizzle ( temp 2-component vector of int) -0:225 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:225 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:225 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:225 Constant: -0:225 1 (const int) -0:225 Constant: -0:225 1 (const int) -0:225 Sequence -0:225 Constant: -0:225 0 (const int) -0:225 Constant: -0:225 1 (const int) -0:226 move second child to first child ( temp 3-component vector of int) -0:226 vector swizzle ( temp 3-component vector of int) -0:226 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:226 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:226 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:226 'invocation' ( temp uint) -0:226 Constant: -0:226 1 (const int) -0:226 Sequence -0:226 Constant: -0:226 0 (const int) -0:226 Constant: -0:226 1 (const int) -0:226 Constant: -0:226 2 (const int) -0:226 subgroupInclusiveAnd ( global 3-component vector of int) -0:226 vector swizzle ( temp 3-component vector of int) -0:226 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:226 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:226 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:226 Constant: -0:226 2 (const int) -0:226 Constant: -0:226 1 (const int) -0:226 Sequence -0:226 Constant: -0:226 0 (const int) -0:226 Constant: -0:226 1 (const int) -0:226 Constant: -0:226 2 (const int) -0:227 move second child to first child ( temp 4-component vector of int) -0:227 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:227 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:227 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:227 'invocation' ( temp uint) -0:227 Constant: -0:227 1 (const int) -0:227 subgroupInclusiveAnd ( global 4-component vector of int) -0:227 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:227 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:227 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:227 Constant: -0:227 3 (const int) -0:227 Constant: -0:227 1 (const int) -0:229 move second child to first child ( temp uint) -0:229 direct index ( temp uint) -0:229 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:229 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:229 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:229 'invocation' ( temp uint) -0:229 Constant: -0:229 2 (const int) -0:229 Constant: -0:229 0 (const int) -0:229 subgroupInclusiveAnd ( global uint) -0:229 direct index ( temp uint) -0:229 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:229 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:229 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:229 Constant: -0:229 0 (const int) -0:229 Constant: -0:229 2 (const int) -0:229 Constant: -0:229 0 (const int) -0:230 move second child to first child ( temp 2-component vector of uint) -0:230 vector swizzle ( temp 2-component vector of uint) -0:230 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:230 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:230 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:230 'invocation' ( temp uint) -0:230 Constant: -0:230 2 (const int) -0:230 Sequence -0:230 Constant: -0:230 0 (const int) -0:230 Constant: -0:230 1 (const int) -0:230 subgroupInclusiveAnd ( global 2-component vector of uint) -0:230 vector swizzle ( temp 2-component vector of uint) -0:230 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:230 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:230 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:230 Constant: -0:230 1 (const int) -0:230 Constant: -0:230 2 (const int) -0:230 Sequence -0:230 Constant: -0:230 0 (const int) -0:230 Constant: -0:230 1 (const int) -0:231 move second child to first child ( temp 3-component vector of uint) -0:231 vector swizzle ( temp 3-component vector of uint) -0:231 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:231 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:231 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:231 'invocation' ( temp uint) -0:231 Constant: -0:231 2 (const int) -0:231 Sequence -0:231 Constant: -0:231 0 (const int) -0:231 Constant: -0:231 1 (const int) -0:231 Constant: -0:231 2 (const int) -0:231 subgroupInclusiveAnd ( global 3-component vector of uint) -0:231 vector swizzle ( temp 3-component vector of uint) -0:231 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:231 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:231 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:231 Constant: -0:231 2 (const int) -0:231 Constant: -0:231 2 (const int) -0:231 Sequence -0:231 Constant: -0:231 0 (const int) -0:231 Constant: -0:231 1 (const int) -0:231 Constant: -0:231 2 (const int) -0:232 move second child to first child ( temp 4-component vector of uint) -0:232 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:232 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:232 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:232 'invocation' ( temp uint) -0:232 Constant: -0:232 2 (const int) -0:232 subgroupInclusiveAnd ( global 4-component vector of uint) -0:232 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:232 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:232 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:232 Constant: -0:232 3 (const int) -0:232 Constant: -0:232 2 (const int) -0:234 move second child to first child ( temp int) -0:234 direct index ( temp int) -0:234 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:234 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:234 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:234 'invocation' ( temp uint) -0:234 Constant: -0:234 1 (const int) -0:234 Constant: -0:234 0 (const int) -0:234 Convert bool to int ( temp int) -0:234 subgroupInclusiveAnd ( global bool) -0:234 Compare Less Than ( temp bool) -0:234 direct index ( temp int) -0:234 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:234 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:234 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:234 Constant: -0:234 0 (const int) -0:234 Constant: -0:234 1 (const int) -0:234 Constant: -0:234 0 (const int) -0:234 Constant: -0:234 0 (const int) -0:235 move second child to first child ( temp 2-component vector of int) -0:235 vector swizzle ( temp 2-component vector of int) -0:235 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:235 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:235 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:235 'invocation' ( temp uint) -0:235 Constant: -0:235 1 (const int) -0:235 Sequence -0:235 Constant: -0:235 0 (const int) -0:235 Constant: -0:235 1 (const int) -0:235 Convert bool to int ( temp 2-component vector of int) -0:235 subgroupInclusiveAnd ( global 2-component vector of bool) -0:235 Compare Less Than ( global 2-component vector of bool) -0:235 vector swizzle ( temp 2-component vector of int) -0:235 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:235 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:235 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:235 Constant: -0:235 1 (const int) -0:235 Constant: -0:235 1 (const int) -0:235 Sequence -0:235 Constant: -0:235 0 (const int) -0:235 Constant: -0:235 1 (const int) -0:235 Constant: -0:235 0 (const int) -0:235 0 (const int) -0:236 move second child to first child ( temp 3-component vector of int) -0:236 vector swizzle ( temp 3-component vector of int) -0:236 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:236 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:236 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:236 'invocation' ( temp uint) -0:236 Constant: -0:236 1 (const int) -0:236 Sequence -0:236 Constant: -0:236 0 (const int) -0:236 Constant: -0:236 1 (const int) -0:236 Constant: -0:236 2 (const int) -0:236 Convert bool to int ( temp 3-component vector of int) -0:236 subgroupInclusiveAnd ( global 3-component vector of bool) -0:236 Compare Less Than ( global 3-component vector of bool) -0:236 vector swizzle ( temp 3-component vector of int) -0:236 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:236 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:236 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:236 Constant: -0:236 1 (const int) -0:236 Constant: -0:236 1 (const int) -0:236 Sequence -0:236 Constant: -0:236 0 (const int) -0:236 Constant: -0:236 1 (const int) -0:236 Constant: -0:236 2 (const int) -0:236 Constant: -0:236 0 (const int) -0:236 0 (const int) -0:236 0 (const int) -0:237 move second child to first child ( temp 4-component vector of int) -0:237 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:237 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:237 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:237 'invocation' ( temp uint) -0:237 Constant: -0:237 1 (const int) -0:237 Convert bool to int ( temp 4-component vector of int) -0:237 subgroupInclusiveAnd ( global 4-component vector of bool) -0:237 Compare Less Than ( global 4-component vector of bool) -0:237 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:237 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:237 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:237 Constant: -0:237 1 (const int) -0:237 Constant: -0:237 1 (const int) -0:237 Constant: -0:237 0 (const int) -0:237 0 (const int) -0:237 0 (const int) -0:237 0 (const int) -0:239 move second child to first child ( temp int) -0:239 direct index ( temp int) -0:239 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:239 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:239 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:239 'invocation' ( temp uint) -0:239 Constant: -0:239 1 (const int) -0:239 Constant: -0:239 0 (const int) -0:239 subgroupInclusiveOr ( global int) -0:239 direct index ( temp int) -0:239 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:239 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:239 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:239 Constant: -0:239 0 (const int) -0:239 Constant: -0:239 1 (const int) -0:239 Constant: -0:239 0 (const int) -0:240 move second child to first child ( temp 2-component vector of int) -0:240 vector swizzle ( temp 2-component vector of int) -0:240 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:240 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:240 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:240 'invocation' ( temp uint) -0:240 Constant: -0:240 1 (const int) -0:240 Sequence -0:240 Constant: -0:240 0 (const int) -0:240 Constant: -0:240 1 (const int) -0:240 subgroupInclusiveOr ( global 2-component vector of int) -0:240 vector swizzle ( temp 2-component vector of int) -0:240 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:240 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:240 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:240 Constant: -0:240 1 (const int) -0:240 Constant: -0:240 1 (const int) -0:240 Sequence -0:240 Constant: -0:240 0 (const int) -0:240 Constant: -0:240 1 (const int) -0:241 move second child to first child ( temp 3-component vector of int) -0:241 vector swizzle ( temp 3-component vector of int) -0:241 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:241 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:241 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:241 'invocation' ( temp uint) -0:241 Constant: -0:241 1 (const int) -0:241 Sequence -0:241 Constant: -0:241 0 (const int) -0:241 Constant: -0:241 1 (const int) -0:241 Constant: -0:241 2 (const int) -0:241 subgroupInclusiveOr ( global 3-component vector of int) -0:241 vector swizzle ( temp 3-component vector of int) -0:241 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:241 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:241 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:241 Constant: -0:241 2 (const int) -0:241 Constant: -0:241 1 (const int) -0:241 Sequence -0:241 Constant: -0:241 0 (const int) -0:241 Constant: -0:241 1 (const int) -0:241 Constant: -0:241 2 (const int) -0:242 move second child to first child ( temp 4-component vector of int) -0:242 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:242 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:242 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:242 'invocation' ( temp uint) -0:242 Constant: -0:242 1 (const int) -0:242 subgroupInclusiveOr ( global 4-component vector of int) -0:242 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:242 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:242 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:242 Constant: -0:242 3 (const int) -0:242 Constant: -0:242 1 (const int) -0:244 move second child to first child ( temp uint) -0:244 direct index ( temp uint) -0:244 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:244 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:244 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:244 'invocation' ( temp uint) -0:244 Constant: -0:244 2 (const int) -0:244 Constant: -0:244 0 (const int) -0:244 subgroupInclusiveOr ( global uint) -0:244 direct index ( temp uint) -0:244 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:244 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:244 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:244 Constant: -0:244 0 (const int) -0:244 Constant: -0:244 2 (const int) -0:244 Constant: -0:244 0 (const int) -0:245 move second child to first child ( temp 2-component vector of uint) -0:245 vector swizzle ( temp 2-component vector of uint) -0:245 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:245 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:245 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:245 'invocation' ( temp uint) -0:245 Constant: -0:245 2 (const int) -0:245 Sequence -0:245 Constant: -0:245 0 (const int) -0:245 Constant: -0:245 1 (const int) -0:245 subgroupInclusiveOr ( global 2-component vector of uint) -0:245 vector swizzle ( temp 2-component vector of uint) -0:245 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:245 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:245 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:245 Constant: -0:245 1 (const int) -0:245 Constant: -0:245 2 (const int) -0:245 Sequence -0:245 Constant: -0:245 0 (const int) -0:245 Constant: -0:245 1 (const int) -0:246 move second child to first child ( temp 3-component vector of uint) -0:246 vector swizzle ( temp 3-component vector of uint) -0:246 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:246 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:246 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:246 'invocation' ( temp uint) -0:246 Constant: -0:246 2 (const int) -0:246 Sequence -0:246 Constant: -0:246 0 (const int) -0:246 Constant: -0:246 1 (const int) -0:246 Constant: -0:246 2 (const int) -0:246 subgroupInclusiveOr ( global 3-component vector of uint) -0:246 vector swizzle ( temp 3-component vector of uint) -0:246 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:246 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:246 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:246 Constant: -0:246 2 (const int) -0:246 Constant: -0:246 2 (const int) -0:246 Sequence -0:246 Constant: -0:246 0 (const int) -0:246 Constant: -0:246 1 (const int) -0:246 Constant: -0:246 2 (const int) -0:247 move second child to first child ( temp 4-component vector of uint) -0:247 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:247 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:247 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:247 'invocation' ( temp uint) -0:247 Constant: -0:247 2 (const int) -0:247 subgroupInclusiveOr ( global 4-component vector of uint) -0:247 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:247 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:247 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:247 Constant: -0:247 3 (const int) -0:247 Constant: -0:247 2 (const int) -0:249 move second child to first child ( temp int) -0:249 direct index ( temp int) -0:249 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:249 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:249 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:249 'invocation' ( temp uint) -0:249 Constant: -0:249 1 (const int) -0:249 Constant: -0:249 0 (const int) -0:249 Convert bool to int ( temp int) -0:249 subgroupInclusiveOr ( global bool) -0:249 Compare Less Than ( temp bool) -0:249 direct index ( temp int) -0:249 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:249 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:249 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:249 Constant: -0:249 0 (const int) -0:249 Constant: -0:249 1 (const int) -0:249 Constant: -0:249 0 (const int) -0:249 Constant: -0:249 0 (const int) -0:250 move second child to first child ( temp 2-component vector of int) -0:250 vector swizzle ( temp 2-component vector of int) -0:250 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:250 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:250 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:250 'invocation' ( temp uint) -0:250 Constant: -0:250 1 (const int) -0:250 Sequence -0:250 Constant: -0:250 0 (const int) -0:250 Constant: -0:250 1 (const int) -0:250 Convert bool to int ( temp 2-component vector of int) -0:250 subgroupInclusiveOr ( global 2-component vector of bool) -0:250 Compare Less Than ( global 2-component vector of bool) -0:250 vector swizzle ( temp 2-component vector of int) -0:250 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:250 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:250 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:250 Constant: -0:250 1 (const int) -0:250 Constant: -0:250 1 (const int) -0:250 Sequence -0:250 Constant: -0:250 0 (const int) -0:250 Constant: -0:250 1 (const int) -0:250 Constant: -0:250 0 (const int) -0:250 0 (const int) -0:251 move second child to first child ( temp 3-component vector of int) -0:251 vector swizzle ( temp 3-component vector of int) -0:251 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:251 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:251 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:251 'invocation' ( temp uint) -0:251 Constant: -0:251 1 (const int) -0:251 Sequence -0:251 Constant: -0:251 0 (const int) -0:251 Constant: -0:251 1 (const int) -0:251 Constant: -0:251 2 (const int) -0:251 Convert bool to int ( temp 3-component vector of int) -0:251 subgroupInclusiveOr ( global 3-component vector of bool) -0:251 Compare Less Than ( global 3-component vector of bool) -0:251 vector swizzle ( temp 3-component vector of int) -0:251 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:251 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:251 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:251 Constant: -0:251 1 (const int) -0:251 Constant: -0:251 1 (const int) -0:251 Sequence -0:251 Constant: -0:251 0 (const int) -0:251 Constant: -0:251 1 (const int) -0:251 Constant: -0:251 2 (const int) -0:251 Constant: -0:251 0 (const int) -0:251 0 (const int) -0:251 0 (const int) -0:252 move second child to first child ( temp 4-component vector of int) -0:252 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:252 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:252 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:252 'invocation' ( temp uint) -0:252 Constant: -0:252 1 (const int) -0:252 Convert bool to int ( temp 4-component vector of int) -0:252 subgroupInclusiveOr ( global 4-component vector of bool) -0:252 Compare Less Than ( global 4-component vector of bool) -0:252 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:252 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:252 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:252 Constant: -0:252 1 (const int) -0:252 Constant: -0:252 1 (const int) -0:252 Constant: -0:252 0 (const int) -0:252 0 (const int) -0:252 0 (const int) -0:252 0 (const int) -0:254 move second child to first child ( temp int) -0:254 direct index ( temp int) -0:254 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:254 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:254 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:254 'invocation' ( temp uint) -0:254 Constant: -0:254 1 (const int) -0:254 Constant: -0:254 0 (const int) -0:254 subgroupInclusiveXor ( global int) -0:254 direct index ( temp int) -0:254 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:254 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:254 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:254 Constant: -0:254 0 (const int) -0:254 Constant: -0:254 1 (const int) -0:254 Constant: -0:254 0 (const int) -0:255 move second child to first child ( temp 2-component vector of int) -0:255 vector swizzle ( temp 2-component vector of int) -0:255 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:255 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:255 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:255 'invocation' ( temp uint) -0:255 Constant: -0:255 1 (const int) -0:255 Sequence -0:255 Constant: -0:255 0 (const int) -0:255 Constant: -0:255 1 (const int) -0:255 subgroupInclusiveXor ( global 2-component vector of int) -0:255 vector swizzle ( temp 2-component vector of int) -0:255 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:255 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:255 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:255 Constant: -0:255 1 (const int) -0:255 Constant: -0:255 1 (const int) -0:255 Sequence -0:255 Constant: -0:255 0 (const int) -0:255 Constant: -0:255 1 (const int) -0:256 move second child to first child ( temp 3-component vector of int) -0:256 vector swizzle ( temp 3-component vector of int) -0:256 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:256 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:256 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:256 'invocation' ( temp uint) -0:256 Constant: -0:256 1 (const int) -0:256 Sequence -0:256 Constant: -0:256 0 (const int) -0:256 Constant: -0:256 1 (const int) -0:256 Constant: -0:256 2 (const int) -0:256 subgroupInclusiveXor ( global 3-component vector of int) -0:256 vector swizzle ( temp 3-component vector of int) -0:256 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:256 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:256 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:256 Constant: -0:256 2 (const int) -0:256 Constant: -0:256 1 (const int) -0:256 Sequence -0:256 Constant: -0:256 0 (const int) -0:256 Constant: -0:256 1 (const int) -0:256 Constant: -0:256 2 (const int) -0:257 move second child to first child ( temp 4-component vector of int) -0:257 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:257 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:257 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:257 'invocation' ( temp uint) -0:257 Constant: -0:257 1 (const int) -0:257 subgroupInclusiveXor ( global 4-component vector of int) -0:257 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:257 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:257 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:257 Constant: -0:257 3 (const int) -0:257 Constant: -0:257 1 (const int) -0:259 move second child to first child ( temp uint) -0:259 direct index ( temp uint) -0:259 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:259 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:259 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:259 'invocation' ( temp uint) -0:259 Constant: -0:259 2 (const int) -0:259 Constant: -0:259 0 (const int) -0:259 subgroupInclusiveXor ( global uint) -0:259 direct index ( temp uint) -0:259 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:259 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:259 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:259 Constant: -0:259 0 (const int) -0:259 Constant: -0:259 2 (const int) -0:259 Constant: -0:259 0 (const int) -0:260 move second child to first child ( temp 2-component vector of uint) -0:260 vector swizzle ( temp 2-component vector of uint) -0:260 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:260 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:260 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:260 'invocation' ( temp uint) -0:260 Constant: -0:260 2 (const int) -0:260 Sequence -0:260 Constant: -0:260 0 (const int) -0:260 Constant: -0:260 1 (const int) -0:260 subgroupInclusiveXor ( global 2-component vector of uint) -0:260 vector swizzle ( temp 2-component vector of uint) -0:260 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:260 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:260 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:260 Constant: -0:260 1 (const int) -0:260 Constant: -0:260 2 (const int) -0:260 Sequence -0:260 Constant: -0:260 0 (const int) -0:260 Constant: -0:260 1 (const int) -0:261 move second child to first child ( temp 3-component vector of uint) -0:261 vector swizzle ( temp 3-component vector of uint) -0:261 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:261 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:261 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:261 'invocation' ( temp uint) -0:261 Constant: -0:261 2 (const int) -0:261 Sequence -0:261 Constant: -0:261 0 (const int) -0:261 Constant: -0:261 1 (const int) -0:261 Constant: -0:261 2 (const int) -0:261 subgroupInclusiveXor ( global 3-component vector of uint) -0:261 vector swizzle ( temp 3-component vector of uint) -0:261 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:261 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:261 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:261 Constant: -0:261 2 (const int) -0:261 Constant: -0:261 2 (const int) -0:261 Sequence -0:261 Constant: -0:261 0 (const int) -0:261 Constant: -0:261 1 (const int) -0:261 Constant: -0:261 2 (const int) -0:262 move second child to first child ( temp 4-component vector of uint) -0:262 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:262 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:262 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:262 'invocation' ( temp uint) -0:262 Constant: -0:262 2 (const int) -0:262 subgroupInclusiveXor ( global 4-component vector of uint) -0:262 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:262 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:262 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:262 Constant: -0:262 3 (const int) -0:262 Constant: -0:262 2 (const int) -0:264 move second child to first child ( temp int) -0:264 direct index ( temp int) -0:264 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:264 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:264 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:264 'invocation' ( temp uint) -0:264 Constant: -0:264 1 (const int) -0:264 Constant: -0:264 0 (const int) -0:264 Convert bool to int ( temp int) -0:264 subgroupInclusiveXor ( global bool) -0:264 Compare Less Than ( temp bool) -0:264 direct index ( temp int) -0:264 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:264 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:264 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:264 Constant: -0:264 0 (const int) -0:264 Constant: -0:264 1 (const int) -0:264 Constant: -0:264 0 (const int) -0:264 Constant: -0:264 0 (const int) -0:265 move second child to first child ( temp 2-component vector of int) -0:265 vector swizzle ( temp 2-component vector of int) -0:265 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:265 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:265 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:265 'invocation' ( temp uint) -0:265 Constant: -0:265 1 (const int) -0:265 Sequence -0:265 Constant: -0:265 0 (const int) -0:265 Constant: -0:265 1 (const int) -0:265 Convert bool to int ( temp 2-component vector of int) -0:265 subgroupInclusiveXor ( global 2-component vector of bool) -0:265 Compare Less Than ( global 2-component vector of bool) -0:265 vector swizzle ( temp 2-component vector of int) -0:265 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:265 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:265 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:265 Constant: -0:265 1 (const int) -0:265 Constant: -0:265 1 (const int) -0:265 Sequence -0:265 Constant: -0:265 0 (const int) -0:265 Constant: -0:265 1 (const int) -0:265 Constant: -0:265 0 (const int) -0:265 0 (const int) -0:266 move second child to first child ( temp 3-component vector of int) -0:266 vector swizzle ( temp 3-component vector of int) -0:266 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:266 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:266 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:266 'invocation' ( temp uint) -0:266 Constant: -0:266 1 (const int) -0:266 Sequence -0:266 Constant: -0:266 0 (const int) -0:266 Constant: -0:266 1 (const int) -0:266 Constant: -0:266 2 (const int) -0:266 Convert bool to int ( temp 3-component vector of int) -0:266 subgroupInclusiveXor ( global 3-component vector of bool) -0:266 Compare Less Than ( global 3-component vector of bool) -0:266 vector swizzle ( temp 3-component vector of int) -0:266 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:266 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:266 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:266 Constant: -0:266 1 (const int) -0:266 Constant: -0:266 1 (const int) -0:266 Sequence -0:266 Constant: -0:266 0 (const int) -0:266 Constant: -0:266 1 (const int) -0:266 Constant: -0:266 2 (const int) -0:266 Constant: -0:266 0 (const int) -0:266 0 (const int) -0:266 0 (const int) -0:267 move second child to first child ( temp 4-component vector of int) -0:267 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:267 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:267 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:267 'invocation' ( temp uint) -0:267 Constant: -0:267 1 (const int) -0:267 Convert bool to int ( temp 4-component vector of int) -0:267 subgroupInclusiveXor ( global 4-component vector of bool) -0:267 Compare Less Than ( global 4-component vector of bool) -0:267 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:267 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:267 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:267 Constant: -0:267 1 (const int) -0:267 Constant: -0:267 1 (const int) -0:267 Constant: -0:267 0 (const int) -0:267 0 (const int) -0:267 0 (const int) -0:267 0 (const int) -0:269 move second child to first child ( temp float) -0:269 direct index ( temp float) -0:269 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:269 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:269 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:269 'invocation' ( temp uint) -0:269 Constant: -0:269 0 (const int) -0:269 Constant: -0:269 0 (const int) -0:269 subgroupExclusiveAdd ( global float) -0:269 direct index ( temp float) -0:269 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:269 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:269 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:269 Constant: -0:269 0 (const int) -0:269 Constant: -0:269 0 (const int) -0:269 Constant: -0:269 0 (const int) -0:270 move second child to first child ( temp 2-component vector of float) -0:270 vector swizzle ( temp 2-component vector of float) -0:270 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:270 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:270 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:270 'invocation' ( temp uint) -0:270 Constant: -0:270 0 (const int) -0:270 Sequence -0:270 Constant: -0:270 0 (const int) -0:270 Constant: -0:270 1 (const int) -0:270 subgroupExclusiveAdd ( global 2-component vector of float) -0:270 vector swizzle ( temp 2-component vector of float) -0:270 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:270 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:270 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:270 Constant: -0:270 1 (const int) -0:270 Constant: -0:270 0 (const int) -0:270 Sequence -0:270 Constant: -0:270 0 (const int) -0:270 Constant: -0:270 1 (const int) -0:271 move second child to first child ( temp 3-component vector of float) -0:271 vector swizzle ( temp 3-component vector of float) -0:271 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:271 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:271 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:271 'invocation' ( temp uint) -0:271 Constant: -0:271 0 (const int) -0:271 Sequence -0:271 Constant: -0:271 0 (const int) -0:271 Constant: -0:271 1 (const int) -0:271 Constant: -0:271 2 (const int) -0:271 subgroupExclusiveAdd ( global 3-component vector of float) -0:271 vector swizzle ( temp 3-component vector of float) -0:271 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:271 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:271 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:271 Constant: -0:271 2 (const int) -0:271 Constant: -0:271 0 (const int) -0:271 Sequence -0:271 Constant: -0:271 0 (const int) -0:271 Constant: -0:271 1 (const int) -0:271 Constant: -0:271 2 (const int) -0:272 move second child to first child ( temp 4-component vector of float) -0:272 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:272 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:272 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:272 'invocation' ( temp uint) -0:272 Constant: -0:272 0 (const int) -0:272 subgroupExclusiveAdd ( global 4-component vector of float) -0:272 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:272 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:272 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:272 Constant: -0:272 3 (const int) -0:272 Constant: -0:272 0 (const int) -0:274 move second child to first child ( temp int) -0:274 direct index ( temp int) -0:274 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:274 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:274 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:274 'invocation' ( temp uint) -0:274 Constant: -0:274 1 (const int) -0:274 Constant: -0:274 0 (const int) -0:274 subgroupExclusiveAdd ( global int) -0:274 direct index ( temp int) -0:274 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:274 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:274 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:274 Constant: -0:274 0 (const int) -0:274 Constant: -0:274 1 (const int) -0:274 Constant: -0:274 0 (const int) -0:275 move second child to first child ( temp 2-component vector of int) -0:275 vector swizzle ( temp 2-component vector of int) -0:275 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:275 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:275 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:275 'invocation' ( temp uint) -0:275 Constant: -0:275 1 (const int) -0:275 Sequence -0:275 Constant: -0:275 0 (const int) -0:275 Constant: -0:275 1 (const int) -0:275 subgroupExclusiveAdd ( global 2-component vector of int) -0:275 vector swizzle ( temp 2-component vector of int) -0:275 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:275 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:275 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:275 Constant: -0:275 1 (const int) -0:275 Constant: -0:275 1 (const int) -0:275 Sequence -0:275 Constant: -0:275 0 (const int) -0:275 Constant: -0:275 1 (const int) -0:276 move second child to first child ( temp 3-component vector of int) -0:276 vector swizzle ( temp 3-component vector of int) -0:276 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:276 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:276 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:276 'invocation' ( temp uint) -0:276 Constant: -0:276 1 (const int) -0:276 Sequence -0:276 Constant: -0:276 0 (const int) -0:276 Constant: -0:276 1 (const int) -0:276 Constant: -0:276 2 (const int) -0:276 subgroupExclusiveAdd ( global 3-component vector of int) -0:276 vector swizzle ( temp 3-component vector of int) -0:276 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:276 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:276 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:276 Constant: -0:276 2 (const int) -0:276 Constant: -0:276 1 (const int) -0:276 Sequence -0:276 Constant: -0:276 0 (const int) -0:276 Constant: -0:276 1 (const int) -0:276 Constant: -0:276 2 (const int) -0:277 move second child to first child ( temp 4-component vector of int) -0:277 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:277 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:277 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:277 'invocation' ( temp uint) -0:277 Constant: -0:277 1 (const int) -0:277 subgroupExclusiveAdd ( global 4-component vector of int) -0:277 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:277 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:277 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:277 Constant: -0:277 3 (const int) -0:277 Constant: -0:277 1 (const int) -0:279 move second child to first child ( temp uint) -0:279 direct index ( temp uint) -0:279 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:279 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:279 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:279 'invocation' ( temp uint) -0:279 Constant: -0:279 2 (const int) -0:279 Constant: -0:279 0 (const int) -0:279 subgroupExclusiveAdd ( global uint) -0:279 direct index ( temp uint) -0:279 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:279 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:279 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:279 Constant: -0:279 0 (const int) -0:279 Constant: -0:279 2 (const int) -0:279 Constant: -0:279 0 (const int) -0:280 move second child to first child ( temp 2-component vector of uint) -0:280 vector swizzle ( temp 2-component vector of uint) -0:280 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:280 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:280 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:280 'invocation' ( temp uint) -0:280 Constant: -0:280 2 (const int) -0:280 Sequence -0:280 Constant: -0:280 0 (const int) -0:280 Constant: -0:280 1 (const int) -0:280 subgroupExclusiveAdd ( global 2-component vector of uint) -0:280 vector swizzle ( temp 2-component vector of uint) -0:280 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:280 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:280 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:280 Constant: -0:280 1 (const int) -0:280 Constant: -0:280 2 (const int) -0:280 Sequence -0:280 Constant: -0:280 0 (const int) -0:280 Constant: -0:280 1 (const int) -0:281 move second child to first child ( temp 3-component vector of uint) -0:281 vector swizzle ( temp 3-component vector of uint) -0:281 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:281 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:281 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:281 'invocation' ( temp uint) -0:281 Constant: -0:281 2 (const int) -0:281 Sequence -0:281 Constant: -0:281 0 (const int) -0:281 Constant: -0:281 1 (const int) -0:281 Constant: -0:281 2 (const int) -0:281 subgroupExclusiveAdd ( global 3-component vector of uint) -0:281 vector swizzle ( temp 3-component vector of uint) -0:281 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:281 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:281 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:281 Constant: -0:281 2 (const int) -0:281 Constant: -0:281 2 (const int) -0:281 Sequence -0:281 Constant: -0:281 0 (const int) -0:281 Constant: -0:281 1 (const int) -0:281 Constant: -0:281 2 (const int) -0:282 move second child to first child ( temp 4-component vector of uint) -0:282 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:282 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:282 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:282 'invocation' ( temp uint) -0:282 Constant: -0:282 2 (const int) -0:282 subgroupExclusiveAdd ( global 4-component vector of uint) -0:282 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:282 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:282 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:282 Constant: -0:282 3 (const int) -0:282 Constant: -0:282 2 (const int) -0:284 move second child to first child ( temp double) -0:284 direct index ( temp double) -0:284 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:284 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:284 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:284 'invocation' ( temp uint) -0:284 Constant: -0:284 3 (const int) -0:284 Constant: -0:284 0 (const int) -0:284 subgroupExclusiveAdd ( global double) -0:284 direct index ( temp double) -0:284 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:284 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:284 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:284 Constant: -0:284 0 (const int) -0:284 Constant: -0:284 3 (const int) -0:284 Constant: -0:284 0 (const int) -0:285 move second child to first child ( temp 2-component vector of double) -0:285 vector swizzle ( temp 2-component vector of double) -0:285 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:285 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:285 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:285 'invocation' ( temp uint) -0:285 Constant: -0:285 3 (const int) -0:285 Sequence -0:285 Constant: -0:285 0 (const int) -0:285 Constant: -0:285 1 (const int) -0:285 subgroupExclusiveAdd ( global 2-component vector of double) -0:285 vector swizzle ( temp 2-component vector of double) -0:285 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:285 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:285 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:285 Constant: -0:285 1 (const int) -0:285 Constant: -0:285 3 (const int) -0:285 Sequence -0:285 Constant: -0:285 0 (const int) -0:285 Constant: -0:285 1 (const int) -0:286 move second child to first child ( temp 3-component vector of double) -0:286 vector swizzle ( temp 3-component vector of double) -0:286 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:286 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:286 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:286 'invocation' ( temp uint) -0:286 Constant: -0:286 3 (const int) -0:286 Sequence -0:286 Constant: -0:286 0 (const int) -0:286 Constant: -0:286 1 (const int) -0:286 Constant: -0:286 2 (const int) -0:286 subgroupExclusiveAdd ( global 3-component vector of double) -0:286 vector swizzle ( temp 3-component vector of double) -0:286 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:286 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:286 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:286 Constant: -0:286 2 (const int) -0:286 Constant: -0:286 3 (const int) -0:286 Sequence -0:286 Constant: -0:286 0 (const int) -0:286 Constant: -0:286 1 (const int) -0:286 Constant: -0:286 2 (const int) -0:287 move second child to first child ( temp 4-component vector of double) -0:287 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:287 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:287 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:287 'invocation' ( temp uint) -0:287 Constant: -0:287 3 (const int) -0:287 subgroupExclusiveAdd ( global 4-component vector of double) -0:287 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:287 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:287 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:287 Constant: -0:287 3 (const int) -0:287 Constant: -0:287 3 (const int) -0:289 move second child to first child ( temp float) -0:289 direct index ( temp float) -0:289 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:289 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:289 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:289 'invocation' ( temp uint) -0:289 Constant: -0:289 0 (const int) -0:289 Constant: -0:289 0 (const int) -0:289 subgroupExclusiveMul ( global float) -0:289 direct index ( temp float) -0:289 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:289 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:289 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:289 Constant: -0:289 0 (const int) -0:289 Constant: -0:289 0 (const int) -0:289 Constant: -0:289 0 (const int) -0:290 move second child to first child ( temp 2-component vector of float) -0:290 vector swizzle ( temp 2-component vector of float) -0:290 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:290 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:290 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:290 'invocation' ( temp uint) -0:290 Constant: -0:290 0 (const int) -0:290 Sequence -0:290 Constant: -0:290 0 (const int) -0:290 Constant: -0:290 1 (const int) -0:290 subgroupExclusiveMul ( global 2-component vector of float) -0:290 vector swizzle ( temp 2-component vector of float) -0:290 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:290 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:290 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:290 Constant: -0:290 1 (const int) -0:290 Constant: -0:290 0 (const int) -0:290 Sequence -0:290 Constant: -0:290 0 (const int) -0:290 Constant: -0:290 1 (const int) -0:291 move second child to first child ( temp 3-component vector of float) -0:291 vector swizzle ( temp 3-component vector of float) -0:291 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:291 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:291 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:291 'invocation' ( temp uint) -0:291 Constant: -0:291 0 (const int) -0:291 Sequence -0:291 Constant: -0:291 0 (const int) -0:291 Constant: -0:291 1 (const int) -0:291 Constant: -0:291 2 (const int) -0:291 subgroupExclusiveMul ( global 3-component vector of float) -0:291 vector swizzle ( temp 3-component vector of float) -0:291 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:291 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:291 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:291 Constant: -0:291 2 (const int) -0:291 Constant: -0:291 0 (const int) -0:291 Sequence -0:291 Constant: -0:291 0 (const int) -0:291 Constant: -0:291 1 (const int) -0:291 Constant: -0:291 2 (const int) -0:292 move second child to first child ( temp 4-component vector of float) -0:292 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:292 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:292 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:292 'invocation' ( temp uint) -0:292 Constant: -0:292 0 (const int) -0:292 subgroupExclusiveMul ( global 4-component vector of float) -0:292 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:292 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:292 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:292 Constant: -0:292 3 (const int) -0:292 Constant: -0:292 0 (const int) -0:294 move second child to first child ( temp int) -0:294 direct index ( temp int) -0:294 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:294 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:294 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:294 'invocation' ( temp uint) -0:294 Constant: -0:294 1 (const int) -0:294 Constant: -0:294 0 (const int) -0:294 subgroupExclusiveMul ( global int) -0:294 direct index ( temp int) -0:294 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:294 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:294 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:294 Constant: -0:294 0 (const int) -0:294 Constant: -0:294 1 (const int) -0:294 Constant: -0:294 0 (const int) -0:295 move second child to first child ( temp 2-component vector of int) -0:295 vector swizzle ( temp 2-component vector of int) -0:295 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:295 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:295 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:295 'invocation' ( temp uint) -0:295 Constant: -0:295 1 (const int) -0:295 Sequence -0:295 Constant: -0:295 0 (const int) -0:295 Constant: -0:295 1 (const int) -0:295 subgroupExclusiveMul ( global 2-component vector of int) -0:295 vector swizzle ( temp 2-component vector of int) -0:295 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:295 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:295 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:295 Constant: -0:295 1 (const int) -0:295 Constant: -0:295 1 (const int) -0:295 Sequence -0:295 Constant: -0:295 0 (const int) -0:295 Constant: -0:295 1 (const int) -0:296 move second child to first child ( temp 3-component vector of int) -0:296 vector swizzle ( temp 3-component vector of int) -0:296 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:296 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:296 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:296 'invocation' ( temp uint) -0:296 Constant: -0:296 1 (const int) -0:296 Sequence -0:296 Constant: -0:296 0 (const int) -0:296 Constant: -0:296 1 (const int) -0:296 Constant: -0:296 2 (const int) -0:296 subgroupExclusiveMul ( global 3-component vector of int) -0:296 vector swizzle ( temp 3-component vector of int) -0:296 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:296 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:296 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:296 Constant: -0:296 2 (const int) -0:296 Constant: -0:296 1 (const int) -0:296 Sequence -0:296 Constant: -0:296 0 (const int) -0:296 Constant: -0:296 1 (const int) -0:296 Constant: -0:296 2 (const int) -0:297 move second child to first child ( temp 4-component vector of int) -0:297 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:297 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:297 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:297 'invocation' ( temp uint) -0:297 Constant: -0:297 1 (const int) -0:297 subgroupExclusiveMul ( global 4-component vector of int) -0:297 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:297 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:297 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:297 Constant: -0:297 3 (const int) -0:297 Constant: -0:297 1 (const int) -0:299 move second child to first child ( temp uint) -0:299 direct index ( temp uint) -0:299 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:299 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:299 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:299 'invocation' ( temp uint) -0:299 Constant: -0:299 2 (const int) -0:299 Constant: -0:299 0 (const int) -0:299 subgroupExclusiveMul ( global uint) -0:299 direct index ( temp uint) -0:299 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:299 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:299 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:299 Constant: -0:299 0 (const int) -0:299 Constant: -0:299 2 (const int) -0:299 Constant: -0:299 0 (const int) -0:300 move second child to first child ( temp 2-component vector of uint) -0:300 vector swizzle ( temp 2-component vector of uint) -0:300 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:300 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:300 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:300 'invocation' ( temp uint) -0:300 Constant: -0:300 2 (const int) -0:300 Sequence -0:300 Constant: -0:300 0 (const int) -0:300 Constant: -0:300 1 (const int) -0:300 subgroupExclusiveMul ( global 2-component vector of uint) -0:300 vector swizzle ( temp 2-component vector of uint) -0:300 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:300 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:300 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:300 Constant: -0:300 1 (const int) -0:300 Constant: -0:300 2 (const int) -0:300 Sequence -0:300 Constant: -0:300 0 (const int) -0:300 Constant: -0:300 1 (const int) -0:301 move second child to first child ( temp 3-component vector of uint) -0:301 vector swizzle ( temp 3-component vector of uint) -0:301 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:301 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:301 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:301 'invocation' ( temp uint) -0:301 Constant: -0:301 2 (const int) -0:301 Sequence -0:301 Constant: -0:301 0 (const int) -0:301 Constant: -0:301 1 (const int) -0:301 Constant: -0:301 2 (const int) -0:301 subgroupExclusiveMul ( global 3-component vector of uint) -0:301 vector swizzle ( temp 3-component vector of uint) -0:301 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:301 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:301 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:301 Constant: -0:301 2 (const int) -0:301 Constant: -0:301 2 (const int) -0:301 Sequence -0:301 Constant: -0:301 0 (const int) -0:301 Constant: -0:301 1 (const int) -0:301 Constant: -0:301 2 (const int) -0:302 move second child to first child ( temp 4-component vector of uint) -0:302 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:302 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:302 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:302 'invocation' ( temp uint) -0:302 Constant: -0:302 2 (const int) -0:302 subgroupExclusiveMul ( global 4-component vector of uint) -0:302 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:302 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:302 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:302 Constant: -0:302 3 (const int) -0:302 Constant: -0:302 2 (const int) -0:304 move second child to first child ( temp double) -0:304 direct index ( temp double) -0:304 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:304 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:304 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:304 'invocation' ( temp uint) -0:304 Constant: -0:304 3 (const int) -0:304 Constant: -0:304 0 (const int) -0:304 subgroupExclusiveMul ( global double) -0:304 direct index ( temp double) -0:304 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:304 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:304 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:304 Constant: -0:304 0 (const int) -0:304 Constant: -0:304 3 (const int) -0:304 Constant: -0:304 0 (const int) -0:305 move second child to first child ( temp 2-component vector of double) -0:305 vector swizzle ( temp 2-component vector of double) -0:305 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:305 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:305 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:305 'invocation' ( temp uint) -0:305 Constant: -0:305 3 (const int) -0:305 Sequence -0:305 Constant: -0:305 0 (const int) -0:305 Constant: -0:305 1 (const int) -0:305 subgroupExclusiveMul ( global 2-component vector of double) -0:305 vector swizzle ( temp 2-component vector of double) -0:305 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:305 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:305 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:305 Constant: -0:305 1 (const int) -0:305 Constant: -0:305 3 (const int) -0:305 Sequence -0:305 Constant: -0:305 0 (const int) -0:305 Constant: -0:305 1 (const int) -0:306 move second child to first child ( temp 3-component vector of double) -0:306 vector swizzle ( temp 3-component vector of double) -0:306 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:306 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:306 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:306 'invocation' ( temp uint) -0:306 Constant: -0:306 3 (const int) -0:306 Sequence -0:306 Constant: -0:306 0 (const int) -0:306 Constant: -0:306 1 (const int) -0:306 Constant: -0:306 2 (const int) -0:306 subgroupExclusiveMul ( global 3-component vector of double) -0:306 vector swizzle ( temp 3-component vector of double) -0:306 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:306 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:306 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:306 Constant: -0:306 2 (const int) -0:306 Constant: -0:306 3 (const int) -0:306 Sequence -0:306 Constant: -0:306 0 (const int) -0:306 Constant: -0:306 1 (const int) -0:306 Constant: -0:306 2 (const int) -0:307 move second child to first child ( temp 4-component vector of double) -0:307 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:307 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:307 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:307 'invocation' ( temp uint) -0:307 Constant: -0:307 3 (const int) -0:307 subgroupExclusiveMul ( global 4-component vector of double) -0:307 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:307 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:307 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:307 Constant: -0:307 3 (const int) -0:307 Constant: -0:307 3 (const int) -0:309 move second child to first child ( temp float) -0:309 direct index ( temp float) -0:309 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:309 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:309 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:309 'invocation' ( temp uint) -0:309 Constant: -0:309 0 (const int) -0:309 Constant: -0:309 0 (const int) -0:309 subgroupExclusiveMin ( global float) -0:309 direct index ( temp float) -0:309 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:309 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:309 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:309 Constant: -0:309 0 (const int) -0:309 Constant: -0:309 0 (const int) -0:309 Constant: -0:309 0 (const int) -0:310 move second child to first child ( temp 2-component vector of float) -0:310 vector swizzle ( temp 2-component vector of float) -0:310 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:310 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:310 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:310 'invocation' ( temp uint) -0:310 Constant: -0:310 0 (const int) -0:310 Sequence -0:310 Constant: -0:310 0 (const int) -0:310 Constant: -0:310 1 (const int) -0:310 subgroupExclusiveMin ( global 2-component vector of float) -0:310 vector swizzle ( temp 2-component vector of float) -0:310 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:310 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:310 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:310 Constant: -0:310 1 (const int) -0:310 Constant: -0:310 0 (const int) -0:310 Sequence -0:310 Constant: -0:310 0 (const int) -0:310 Constant: -0:310 1 (const int) -0:311 move second child to first child ( temp 3-component vector of float) -0:311 vector swizzle ( temp 3-component vector of float) -0:311 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:311 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:311 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:311 'invocation' ( temp uint) -0:311 Constant: -0:311 0 (const int) -0:311 Sequence -0:311 Constant: -0:311 0 (const int) -0:311 Constant: -0:311 1 (const int) -0:311 Constant: -0:311 2 (const int) -0:311 subgroupExclusiveMin ( global 3-component vector of float) -0:311 vector swizzle ( temp 3-component vector of float) -0:311 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:311 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:311 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:311 Constant: -0:311 2 (const int) -0:311 Constant: -0:311 0 (const int) -0:311 Sequence -0:311 Constant: -0:311 0 (const int) -0:311 Constant: -0:311 1 (const int) -0:311 Constant: -0:311 2 (const int) -0:312 move second child to first child ( temp 4-component vector of float) -0:312 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:312 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:312 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:312 'invocation' ( temp uint) -0:312 Constant: -0:312 0 (const int) -0:312 subgroupExclusiveMin ( global 4-component vector of float) -0:312 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:312 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:312 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:312 Constant: -0:312 3 (const int) -0:312 Constant: -0:312 0 (const int) -0:314 move second child to first child ( temp int) -0:314 direct index ( temp int) -0:314 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:314 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:314 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:314 'invocation' ( temp uint) -0:314 Constant: -0:314 1 (const int) -0:314 Constant: -0:314 0 (const int) -0:314 subgroupExclusiveMin ( global int) -0:314 direct index ( temp int) -0:314 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:314 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:314 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:314 Constant: -0:314 0 (const int) -0:314 Constant: -0:314 1 (const int) -0:314 Constant: -0:314 0 (const int) -0:315 move second child to first child ( temp 2-component vector of int) -0:315 vector swizzle ( temp 2-component vector of int) -0:315 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:315 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:315 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:315 'invocation' ( temp uint) -0:315 Constant: -0:315 1 (const int) -0:315 Sequence -0:315 Constant: -0:315 0 (const int) -0:315 Constant: -0:315 1 (const int) -0:315 subgroupExclusiveMin ( global 2-component vector of int) -0:315 vector swizzle ( temp 2-component vector of int) -0:315 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:315 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:315 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:315 Constant: -0:315 1 (const int) -0:315 Constant: -0:315 1 (const int) -0:315 Sequence -0:315 Constant: -0:315 0 (const int) -0:315 Constant: -0:315 1 (const int) -0:316 move second child to first child ( temp 3-component vector of int) -0:316 vector swizzle ( temp 3-component vector of int) -0:316 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:316 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:316 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:316 'invocation' ( temp uint) -0:316 Constant: -0:316 1 (const int) -0:316 Sequence -0:316 Constant: -0:316 0 (const int) -0:316 Constant: -0:316 1 (const int) -0:316 Constant: -0:316 2 (const int) -0:316 subgroupExclusiveMin ( global 3-component vector of int) -0:316 vector swizzle ( temp 3-component vector of int) -0:316 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:316 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:316 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:316 Constant: -0:316 2 (const int) -0:316 Constant: -0:316 1 (const int) -0:316 Sequence -0:316 Constant: -0:316 0 (const int) -0:316 Constant: -0:316 1 (const int) -0:316 Constant: -0:316 2 (const int) -0:317 move second child to first child ( temp 4-component vector of int) -0:317 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:317 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:317 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:317 'invocation' ( temp uint) -0:317 Constant: -0:317 1 (const int) -0:317 subgroupExclusiveMin ( global 4-component vector of int) -0:317 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:317 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:317 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:317 Constant: -0:317 3 (const int) -0:317 Constant: -0:317 1 (const int) -0:319 move second child to first child ( temp uint) -0:319 direct index ( temp uint) -0:319 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:319 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:319 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:319 'invocation' ( temp uint) -0:319 Constant: -0:319 2 (const int) -0:319 Constant: -0:319 0 (const int) -0:319 subgroupExclusiveMin ( global uint) -0:319 direct index ( temp uint) -0:319 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:319 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:319 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:319 Constant: -0:319 0 (const int) -0:319 Constant: -0:319 2 (const int) -0:319 Constant: -0:319 0 (const int) -0:320 move second child to first child ( temp 2-component vector of uint) -0:320 vector swizzle ( temp 2-component vector of uint) -0:320 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:320 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:320 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:320 'invocation' ( temp uint) -0:320 Constant: -0:320 2 (const int) -0:320 Sequence -0:320 Constant: -0:320 0 (const int) -0:320 Constant: -0:320 1 (const int) -0:320 subgroupExclusiveMin ( global 2-component vector of uint) -0:320 vector swizzle ( temp 2-component vector of uint) -0:320 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:320 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:320 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:320 Constant: -0:320 1 (const int) -0:320 Constant: -0:320 2 (const int) -0:320 Sequence -0:320 Constant: -0:320 0 (const int) -0:320 Constant: -0:320 1 (const int) -0:321 move second child to first child ( temp 3-component vector of uint) -0:321 vector swizzle ( temp 3-component vector of uint) -0:321 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:321 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:321 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:321 'invocation' ( temp uint) -0:321 Constant: -0:321 2 (const int) -0:321 Sequence -0:321 Constant: -0:321 0 (const int) -0:321 Constant: -0:321 1 (const int) -0:321 Constant: -0:321 2 (const int) -0:321 subgroupExclusiveMin ( global 3-component vector of uint) -0:321 vector swizzle ( temp 3-component vector of uint) -0:321 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:321 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:321 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:321 Constant: -0:321 2 (const int) -0:321 Constant: -0:321 2 (const int) -0:321 Sequence -0:321 Constant: -0:321 0 (const int) -0:321 Constant: -0:321 1 (const int) -0:321 Constant: -0:321 2 (const int) -0:322 move second child to first child ( temp 4-component vector of uint) -0:322 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:322 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:322 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:322 'invocation' ( temp uint) -0:322 Constant: -0:322 2 (const int) -0:322 subgroupExclusiveMin ( global 4-component vector of uint) -0:322 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:322 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:322 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:322 Constant: -0:322 3 (const int) -0:322 Constant: -0:322 2 (const int) -0:324 move second child to first child ( temp double) -0:324 direct index ( temp double) -0:324 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:324 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:324 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:324 'invocation' ( temp uint) -0:324 Constant: -0:324 3 (const int) -0:324 Constant: -0:324 0 (const int) -0:324 subgroupExclusiveMin ( global double) -0:324 direct index ( temp double) -0:324 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:324 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:324 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:324 Constant: -0:324 0 (const int) -0:324 Constant: -0:324 3 (const int) -0:324 Constant: -0:324 0 (const int) -0:325 move second child to first child ( temp 2-component vector of double) -0:325 vector swizzle ( temp 2-component vector of double) -0:325 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:325 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:325 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:325 'invocation' ( temp uint) -0:325 Constant: -0:325 3 (const int) -0:325 Sequence -0:325 Constant: -0:325 0 (const int) -0:325 Constant: -0:325 1 (const int) -0:325 subgroupExclusiveMin ( global 2-component vector of double) -0:325 vector swizzle ( temp 2-component vector of double) -0:325 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:325 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:325 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:325 Constant: -0:325 1 (const int) -0:325 Constant: -0:325 3 (const int) -0:325 Sequence -0:325 Constant: -0:325 0 (const int) -0:325 Constant: -0:325 1 (const int) -0:326 move second child to first child ( temp 3-component vector of double) -0:326 vector swizzle ( temp 3-component vector of double) -0:326 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:326 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:326 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:326 'invocation' ( temp uint) -0:326 Constant: -0:326 3 (const int) -0:326 Sequence -0:326 Constant: -0:326 0 (const int) -0:326 Constant: -0:326 1 (const int) -0:326 Constant: -0:326 2 (const int) -0:326 subgroupExclusiveMin ( global 3-component vector of double) -0:326 vector swizzle ( temp 3-component vector of double) -0:326 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:326 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:326 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:326 Constant: -0:326 2 (const int) -0:326 Constant: -0:326 3 (const int) -0:326 Sequence -0:326 Constant: -0:326 0 (const int) -0:326 Constant: -0:326 1 (const int) -0:326 Constant: -0:326 2 (const int) -0:327 move second child to first child ( temp 4-component vector of double) -0:327 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:327 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:327 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:327 'invocation' ( temp uint) -0:327 Constant: -0:327 3 (const int) -0:327 subgroupExclusiveMin ( global 4-component vector of double) -0:327 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:327 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:327 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:327 Constant: -0:327 3 (const int) -0:327 Constant: -0:327 3 (const int) -0:329 move second child to first child ( temp float) -0:329 direct index ( temp float) -0:329 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:329 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:329 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:329 'invocation' ( temp uint) -0:329 Constant: -0:329 0 (const int) -0:329 Constant: -0:329 0 (const int) -0:329 subgroupExclusiveMax ( global float) -0:329 direct index ( temp float) -0:329 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:329 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:329 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:329 Constant: -0:329 0 (const int) -0:329 Constant: -0:329 0 (const int) -0:329 Constant: -0:329 0 (const int) -0:330 move second child to first child ( temp 2-component vector of float) -0:330 vector swizzle ( temp 2-component vector of float) -0:330 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:330 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:330 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:330 'invocation' ( temp uint) -0:330 Constant: -0:330 0 (const int) -0:330 Sequence -0:330 Constant: -0:330 0 (const int) -0:330 Constant: -0:330 1 (const int) -0:330 subgroupExclusiveMax ( global 2-component vector of float) -0:330 vector swizzle ( temp 2-component vector of float) -0:330 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:330 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:330 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:330 Constant: -0:330 1 (const int) -0:330 Constant: -0:330 0 (const int) -0:330 Sequence -0:330 Constant: -0:330 0 (const int) -0:330 Constant: -0:330 1 (const int) -0:331 move second child to first child ( temp 3-component vector of float) -0:331 vector swizzle ( temp 3-component vector of float) -0:331 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:331 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:331 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:331 'invocation' ( temp uint) -0:331 Constant: -0:331 0 (const int) -0:331 Sequence -0:331 Constant: -0:331 0 (const int) -0:331 Constant: -0:331 1 (const int) -0:331 Constant: -0:331 2 (const int) -0:331 subgroupExclusiveMax ( global 3-component vector of float) -0:331 vector swizzle ( temp 3-component vector of float) -0:331 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:331 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:331 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:331 Constant: -0:331 2 (const int) -0:331 Constant: -0:331 0 (const int) -0:331 Sequence -0:331 Constant: -0:331 0 (const int) -0:331 Constant: -0:331 1 (const int) -0:331 Constant: -0:331 2 (const int) -0:332 move second child to first child ( temp 4-component vector of float) -0:332 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:332 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:332 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:332 'invocation' ( temp uint) -0:332 Constant: -0:332 0 (const int) -0:332 subgroupExclusiveMax ( global 4-component vector of float) -0:332 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:332 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:332 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:332 Constant: -0:332 3 (const int) -0:332 Constant: -0:332 0 (const int) -0:334 move second child to first child ( temp int) -0:334 direct index ( temp int) -0:334 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:334 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:334 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:334 'invocation' ( temp uint) -0:334 Constant: -0:334 1 (const int) -0:334 Constant: -0:334 0 (const int) -0:334 subgroupExclusiveMax ( global int) -0:334 direct index ( temp int) -0:334 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:334 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:334 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:334 Constant: -0:334 0 (const int) -0:334 Constant: -0:334 1 (const int) -0:334 Constant: -0:334 0 (const int) -0:335 move second child to first child ( temp 2-component vector of int) -0:335 vector swizzle ( temp 2-component vector of int) -0:335 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:335 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:335 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:335 'invocation' ( temp uint) -0:335 Constant: -0:335 1 (const int) -0:335 Sequence -0:335 Constant: -0:335 0 (const int) -0:335 Constant: -0:335 1 (const int) -0:335 subgroupExclusiveMax ( global 2-component vector of int) -0:335 vector swizzle ( temp 2-component vector of int) -0:335 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:335 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:335 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:335 Constant: -0:335 1 (const int) -0:335 Constant: -0:335 1 (const int) -0:335 Sequence -0:335 Constant: -0:335 0 (const int) -0:335 Constant: -0:335 1 (const int) -0:336 move second child to first child ( temp 3-component vector of int) -0:336 vector swizzle ( temp 3-component vector of int) -0:336 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:336 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:336 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:336 'invocation' ( temp uint) -0:336 Constant: -0:336 1 (const int) -0:336 Sequence -0:336 Constant: -0:336 0 (const int) -0:336 Constant: -0:336 1 (const int) -0:336 Constant: -0:336 2 (const int) -0:336 subgroupExclusiveMax ( global 3-component vector of int) -0:336 vector swizzle ( temp 3-component vector of int) -0:336 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:336 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:336 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:336 Constant: -0:336 2 (const int) -0:336 Constant: -0:336 1 (const int) -0:336 Sequence -0:336 Constant: -0:336 0 (const int) -0:336 Constant: -0:336 1 (const int) -0:336 Constant: -0:336 2 (const int) -0:337 move second child to first child ( temp 4-component vector of int) -0:337 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:337 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:337 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:337 'invocation' ( temp uint) -0:337 Constant: -0:337 1 (const int) -0:337 subgroupExclusiveMax ( global 4-component vector of int) -0:337 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:337 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:337 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:337 Constant: -0:337 3 (const int) -0:337 Constant: -0:337 1 (const int) -0:339 move second child to first child ( temp uint) -0:339 direct index ( temp uint) -0:339 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:339 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:339 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:339 'invocation' ( temp uint) -0:339 Constant: -0:339 2 (const int) -0:339 Constant: -0:339 0 (const int) -0:339 subgroupExclusiveMax ( global uint) -0:339 direct index ( temp uint) -0:339 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:339 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:339 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:339 Constant: -0:339 0 (const int) -0:339 Constant: -0:339 2 (const int) -0:339 Constant: -0:339 0 (const int) -0:340 move second child to first child ( temp 2-component vector of uint) -0:340 vector swizzle ( temp 2-component vector of uint) -0:340 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:340 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:340 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:340 'invocation' ( temp uint) -0:340 Constant: -0:340 2 (const int) -0:340 Sequence -0:340 Constant: -0:340 0 (const int) -0:340 Constant: -0:340 1 (const int) -0:340 subgroupExclusiveMax ( global 2-component vector of uint) -0:340 vector swizzle ( temp 2-component vector of uint) -0:340 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:340 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:340 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:340 Constant: -0:340 1 (const int) -0:340 Constant: -0:340 2 (const int) -0:340 Sequence -0:340 Constant: -0:340 0 (const int) -0:340 Constant: -0:340 1 (const int) -0:341 move second child to first child ( temp 3-component vector of uint) -0:341 vector swizzle ( temp 3-component vector of uint) -0:341 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:341 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:341 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:341 'invocation' ( temp uint) -0:341 Constant: -0:341 2 (const int) -0:341 Sequence -0:341 Constant: -0:341 0 (const int) -0:341 Constant: -0:341 1 (const int) -0:341 Constant: -0:341 2 (const int) -0:341 subgroupExclusiveMax ( global 3-component vector of uint) -0:341 vector swizzle ( temp 3-component vector of uint) -0:341 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:341 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:341 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:341 Constant: -0:341 2 (const int) -0:341 Constant: -0:341 2 (const int) -0:341 Sequence -0:341 Constant: -0:341 0 (const int) -0:341 Constant: -0:341 1 (const int) -0:341 Constant: -0:341 2 (const int) -0:342 move second child to first child ( temp 4-component vector of uint) -0:342 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:342 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:342 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:342 'invocation' ( temp uint) -0:342 Constant: -0:342 2 (const int) -0:342 subgroupExclusiveMax ( global 4-component vector of uint) -0:342 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:342 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:342 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:342 Constant: -0:342 3 (const int) -0:342 Constant: -0:342 2 (const int) -0:344 move second child to first child ( temp double) -0:344 direct index ( temp double) -0:344 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:344 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:344 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:344 'invocation' ( temp uint) -0:344 Constant: -0:344 3 (const int) -0:344 Constant: -0:344 0 (const int) -0:344 subgroupExclusiveMax ( global double) -0:344 direct index ( temp double) -0:344 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:344 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:344 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:344 Constant: -0:344 0 (const int) -0:344 Constant: -0:344 3 (const int) -0:344 Constant: -0:344 0 (const int) -0:345 move second child to first child ( temp 2-component vector of double) -0:345 vector swizzle ( temp 2-component vector of double) -0:345 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:345 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:345 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:345 'invocation' ( temp uint) -0:345 Constant: -0:345 3 (const int) -0:345 Sequence -0:345 Constant: -0:345 0 (const int) -0:345 Constant: -0:345 1 (const int) -0:345 subgroupExclusiveMax ( global 2-component vector of double) -0:345 vector swizzle ( temp 2-component vector of double) -0:345 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:345 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:345 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:345 Constant: -0:345 1 (const int) -0:345 Constant: -0:345 3 (const int) -0:345 Sequence -0:345 Constant: -0:345 0 (const int) -0:345 Constant: -0:345 1 (const int) -0:346 move second child to first child ( temp 3-component vector of double) -0:346 vector swizzle ( temp 3-component vector of double) -0:346 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:346 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:346 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:346 'invocation' ( temp uint) -0:346 Constant: -0:346 3 (const int) -0:346 Sequence -0:346 Constant: -0:346 0 (const int) -0:346 Constant: -0:346 1 (const int) -0:346 Constant: -0:346 2 (const int) -0:346 subgroupExclusiveMax ( global 3-component vector of double) -0:346 vector swizzle ( temp 3-component vector of double) -0:346 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:346 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:346 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:346 Constant: -0:346 2 (const int) -0:346 Constant: -0:346 3 (const int) -0:346 Sequence -0:346 Constant: -0:346 0 (const int) -0:346 Constant: -0:346 1 (const int) -0:346 Constant: -0:346 2 (const int) -0:347 move second child to first child ( temp 4-component vector of double) -0:347 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:347 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:347 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:347 'invocation' ( temp uint) -0:347 Constant: -0:347 3 (const int) -0:347 subgroupExclusiveMax ( global 4-component vector of double) -0:347 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:347 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:347 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:347 Constant: -0:347 3 (const int) -0:347 Constant: -0:347 3 (const int) -0:349 move second child to first child ( temp int) -0:349 direct index ( temp int) -0:349 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:349 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:349 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:349 'invocation' ( temp uint) -0:349 Constant: -0:349 1 (const int) -0:349 Constant: -0:349 0 (const int) -0:349 subgroupExclusiveAnd ( global int) -0:349 direct index ( temp int) -0:349 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:349 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:349 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:349 Constant: -0:349 0 (const int) -0:349 Constant: -0:349 1 (const int) -0:349 Constant: -0:349 0 (const int) -0:350 move second child to first child ( temp 2-component vector of int) -0:350 vector swizzle ( temp 2-component vector of int) -0:350 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:350 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:350 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:350 'invocation' ( temp uint) -0:350 Constant: -0:350 1 (const int) -0:350 Sequence -0:350 Constant: -0:350 0 (const int) -0:350 Constant: -0:350 1 (const int) -0:350 subgroupExclusiveAnd ( global 2-component vector of int) -0:350 vector swizzle ( temp 2-component vector of int) -0:350 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:350 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:350 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:350 Constant: -0:350 1 (const int) -0:350 Constant: -0:350 1 (const int) -0:350 Sequence -0:350 Constant: -0:350 0 (const int) -0:350 Constant: -0:350 1 (const int) -0:351 move second child to first child ( temp 3-component vector of int) -0:351 vector swizzle ( temp 3-component vector of int) -0:351 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:351 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:351 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:351 'invocation' ( temp uint) -0:351 Constant: -0:351 1 (const int) -0:351 Sequence -0:351 Constant: -0:351 0 (const int) -0:351 Constant: -0:351 1 (const int) -0:351 Constant: -0:351 2 (const int) -0:351 subgroupExclusiveAnd ( global 3-component vector of int) -0:351 vector swizzle ( temp 3-component vector of int) -0:351 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:351 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:351 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:351 Constant: -0:351 2 (const int) -0:351 Constant: -0:351 1 (const int) -0:351 Sequence -0:351 Constant: -0:351 0 (const int) -0:351 Constant: -0:351 1 (const int) -0:351 Constant: -0:351 2 (const int) -0:352 move second child to first child ( temp 4-component vector of int) -0:352 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:352 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:352 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:352 'invocation' ( temp uint) -0:352 Constant: -0:352 1 (const int) -0:352 subgroupExclusiveAnd ( global 4-component vector of int) -0:352 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:352 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:352 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:352 Constant: -0:352 3 (const int) -0:352 Constant: -0:352 1 (const int) -0:354 move second child to first child ( temp uint) -0:354 direct index ( temp uint) -0:354 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:354 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:354 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:354 'invocation' ( temp uint) -0:354 Constant: -0:354 2 (const int) -0:354 Constant: -0:354 0 (const int) -0:354 subgroupExclusiveAnd ( global uint) -0:354 direct index ( temp uint) -0:354 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:354 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:354 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:354 Constant: -0:354 0 (const int) -0:354 Constant: -0:354 2 (const int) -0:354 Constant: -0:354 0 (const int) -0:355 move second child to first child ( temp 2-component vector of uint) -0:355 vector swizzle ( temp 2-component vector of uint) -0:355 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:355 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:355 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:355 'invocation' ( temp uint) -0:355 Constant: -0:355 2 (const int) -0:355 Sequence -0:355 Constant: -0:355 0 (const int) -0:355 Constant: -0:355 1 (const int) -0:355 subgroupExclusiveAnd ( global 2-component vector of uint) -0:355 vector swizzle ( temp 2-component vector of uint) -0:355 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:355 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:355 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:355 Constant: -0:355 1 (const int) -0:355 Constant: -0:355 2 (const int) -0:355 Sequence -0:355 Constant: -0:355 0 (const int) -0:355 Constant: -0:355 1 (const int) -0:356 move second child to first child ( temp 3-component vector of uint) -0:356 vector swizzle ( temp 3-component vector of uint) -0:356 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:356 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:356 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:356 'invocation' ( temp uint) -0:356 Constant: -0:356 2 (const int) -0:356 Sequence -0:356 Constant: -0:356 0 (const int) -0:356 Constant: -0:356 1 (const int) -0:356 Constant: -0:356 2 (const int) -0:356 subgroupExclusiveAnd ( global 3-component vector of uint) -0:356 vector swizzle ( temp 3-component vector of uint) -0:356 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:356 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:356 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:356 Constant: -0:356 2 (const int) -0:356 Constant: -0:356 2 (const int) -0:356 Sequence -0:356 Constant: -0:356 0 (const int) -0:356 Constant: -0:356 1 (const int) -0:356 Constant: -0:356 2 (const int) -0:357 move second child to first child ( temp 4-component vector of uint) -0:357 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:357 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:357 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:357 'invocation' ( temp uint) -0:357 Constant: -0:357 2 (const int) -0:357 subgroupExclusiveAnd ( global 4-component vector of uint) -0:357 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:357 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:357 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:357 Constant: -0:357 3 (const int) -0:357 Constant: -0:357 2 (const int) -0:359 move second child to first child ( temp int) -0:359 direct index ( temp int) -0:359 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:359 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:359 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:359 'invocation' ( temp uint) -0:359 Constant: -0:359 1 (const int) -0:359 Constant: -0:359 0 (const int) -0:359 Convert bool to int ( temp int) -0:359 subgroupExclusiveAnd ( global bool) -0:359 Compare Less Than ( temp bool) -0:359 direct index ( temp int) -0:359 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:359 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:359 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:359 Constant: -0:359 0 (const int) -0:359 Constant: -0:359 1 (const int) -0:359 Constant: -0:359 0 (const int) -0:359 Constant: -0:359 0 (const int) -0:360 move second child to first child ( temp 2-component vector of int) -0:360 vector swizzle ( temp 2-component vector of int) -0:360 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:360 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:360 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:360 'invocation' ( temp uint) -0:360 Constant: -0:360 1 (const int) -0:360 Sequence -0:360 Constant: -0:360 0 (const int) -0:360 Constant: -0:360 1 (const int) -0:360 Convert bool to int ( temp 2-component vector of int) -0:360 subgroupExclusiveAnd ( global 2-component vector of bool) -0:360 Compare Less Than ( global 2-component vector of bool) -0:360 vector swizzle ( temp 2-component vector of int) -0:360 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:360 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:360 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:360 Constant: -0:360 1 (const int) -0:360 Constant: -0:360 1 (const int) -0:360 Sequence -0:360 Constant: -0:360 0 (const int) -0:360 Constant: -0:360 1 (const int) -0:360 Constant: -0:360 0 (const int) -0:360 0 (const int) -0:361 move second child to first child ( temp 3-component vector of int) -0:361 vector swizzle ( temp 3-component vector of int) -0:361 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:361 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:361 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:361 'invocation' ( temp uint) -0:361 Constant: -0:361 1 (const int) -0:361 Sequence -0:361 Constant: -0:361 0 (const int) -0:361 Constant: -0:361 1 (const int) -0:361 Constant: -0:361 2 (const int) -0:361 Convert bool to int ( temp 3-component vector of int) -0:361 subgroupExclusiveAnd ( global 3-component vector of bool) -0:361 Compare Less Than ( global 3-component vector of bool) -0:361 vector swizzle ( temp 3-component vector of int) -0:361 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:361 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:361 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:361 Constant: -0:361 1 (const int) -0:361 Constant: -0:361 1 (const int) -0:361 Sequence -0:361 Constant: -0:361 0 (const int) -0:361 Constant: -0:361 1 (const int) -0:361 Constant: -0:361 2 (const int) -0:361 Constant: -0:361 0 (const int) -0:361 0 (const int) -0:361 0 (const int) -0:362 move second child to first child ( temp 4-component vector of int) -0:362 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:362 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:362 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:362 'invocation' ( temp uint) -0:362 Constant: -0:362 1 (const int) -0:362 Convert bool to int ( temp 4-component vector of int) -0:362 subgroupExclusiveAnd ( global 4-component vector of bool) -0:362 Compare Less Than ( global 4-component vector of bool) -0:362 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:362 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:362 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:362 Constant: -0:362 1 (const int) -0:362 Constant: -0:362 1 (const int) -0:362 Constant: -0:362 0 (const int) -0:362 0 (const int) -0:362 0 (const int) -0:362 0 (const int) -0:364 move second child to first child ( temp int) -0:364 direct index ( temp int) -0:364 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:364 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:364 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:364 'invocation' ( temp uint) -0:364 Constant: -0:364 1 (const int) -0:364 Constant: -0:364 0 (const int) -0:364 subgroupExclusiveOr ( global int) -0:364 direct index ( temp int) -0:364 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:364 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:364 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:364 Constant: -0:364 0 (const int) -0:364 Constant: -0:364 1 (const int) -0:364 Constant: -0:364 0 (const int) -0:365 move second child to first child ( temp 2-component vector of int) -0:365 vector swizzle ( temp 2-component vector of int) -0:365 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:365 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:365 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:365 'invocation' ( temp uint) -0:365 Constant: -0:365 1 (const int) -0:365 Sequence -0:365 Constant: -0:365 0 (const int) -0:365 Constant: -0:365 1 (const int) -0:365 subgroupExclusiveOr ( global 2-component vector of int) -0:365 vector swizzle ( temp 2-component vector of int) -0:365 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:365 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:365 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:365 Constant: -0:365 1 (const int) -0:365 Constant: -0:365 1 (const int) -0:365 Sequence -0:365 Constant: -0:365 0 (const int) -0:365 Constant: -0:365 1 (const int) -0:366 move second child to first child ( temp 3-component vector of int) -0:366 vector swizzle ( temp 3-component vector of int) -0:366 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:366 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:366 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:366 'invocation' ( temp uint) -0:366 Constant: -0:366 1 (const int) -0:366 Sequence -0:366 Constant: -0:366 0 (const int) -0:366 Constant: -0:366 1 (const int) -0:366 Constant: -0:366 2 (const int) -0:366 subgroupExclusiveOr ( global 3-component vector of int) -0:366 vector swizzle ( temp 3-component vector of int) -0:366 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:366 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:366 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:366 Constant: -0:366 2 (const int) -0:366 Constant: -0:366 1 (const int) -0:366 Sequence -0:366 Constant: -0:366 0 (const int) -0:366 Constant: -0:366 1 (const int) -0:366 Constant: -0:366 2 (const int) -0:367 move second child to first child ( temp 4-component vector of int) -0:367 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:367 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:367 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:367 'invocation' ( temp uint) -0:367 Constant: -0:367 1 (const int) -0:367 subgroupExclusiveOr ( global 4-component vector of int) -0:367 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:367 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:367 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:367 Constant: -0:367 3 (const int) -0:367 Constant: -0:367 1 (const int) -0:369 move second child to first child ( temp uint) -0:369 direct index ( temp uint) -0:369 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:369 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:369 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:369 'invocation' ( temp uint) -0:369 Constant: -0:369 2 (const int) -0:369 Constant: -0:369 0 (const int) -0:369 subgroupExclusiveOr ( global uint) -0:369 direct index ( temp uint) -0:369 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:369 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:369 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:369 Constant: -0:369 0 (const int) -0:369 Constant: -0:369 2 (const int) -0:369 Constant: -0:369 0 (const int) -0:370 move second child to first child ( temp 2-component vector of uint) -0:370 vector swizzle ( temp 2-component vector of uint) -0:370 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:370 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:370 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:370 'invocation' ( temp uint) -0:370 Constant: -0:370 2 (const int) -0:370 Sequence -0:370 Constant: -0:370 0 (const int) -0:370 Constant: -0:370 1 (const int) -0:370 subgroupExclusiveOr ( global 2-component vector of uint) -0:370 vector swizzle ( temp 2-component vector of uint) -0:370 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:370 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:370 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:370 Constant: -0:370 1 (const int) -0:370 Constant: -0:370 2 (const int) -0:370 Sequence -0:370 Constant: -0:370 0 (const int) -0:370 Constant: -0:370 1 (const int) -0:371 move second child to first child ( temp 3-component vector of uint) -0:371 vector swizzle ( temp 3-component vector of uint) -0:371 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:371 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:371 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:371 'invocation' ( temp uint) -0:371 Constant: -0:371 2 (const int) -0:371 Sequence -0:371 Constant: -0:371 0 (const int) -0:371 Constant: -0:371 1 (const int) -0:371 Constant: -0:371 2 (const int) -0:371 subgroupExclusiveOr ( global 3-component vector of uint) -0:371 vector swizzle ( temp 3-component vector of uint) -0:371 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:371 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:371 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:371 Constant: -0:371 2 (const int) -0:371 Constant: -0:371 2 (const int) -0:371 Sequence -0:371 Constant: -0:371 0 (const int) -0:371 Constant: -0:371 1 (const int) -0:371 Constant: -0:371 2 (const int) -0:372 move second child to first child ( temp 4-component vector of uint) -0:372 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:372 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:372 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:372 'invocation' ( temp uint) -0:372 Constant: -0:372 2 (const int) -0:372 subgroupExclusiveOr ( global 4-component vector of uint) -0:372 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:372 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:372 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:372 Constant: -0:372 3 (const int) -0:372 Constant: -0:372 2 (const int) -0:374 move second child to first child ( temp int) -0:374 direct index ( temp int) -0:374 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:374 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:374 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:374 'invocation' ( temp uint) -0:374 Constant: -0:374 1 (const int) -0:374 Constant: -0:374 0 (const int) -0:374 Convert bool to int ( temp int) -0:374 subgroupExclusiveOr ( global bool) -0:374 Compare Less Than ( temp bool) -0:374 direct index ( temp int) -0:374 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:374 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:374 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:374 Constant: -0:374 0 (const int) -0:374 Constant: -0:374 1 (const int) -0:374 Constant: -0:374 0 (const int) -0:374 Constant: -0:374 0 (const int) -0:375 move second child to first child ( temp 2-component vector of int) -0:375 vector swizzle ( temp 2-component vector of int) -0:375 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:375 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:375 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:375 'invocation' ( temp uint) -0:375 Constant: -0:375 1 (const int) -0:375 Sequence -0:375 Constant: -0:375 0 (const int) -0:375 Constant: -0:375 1 (const int) -0:375 Convert bool to int ( temp 2-component vector of int) -0:375 subgroupExclusiveOr ( global 2-component vector of bool) -0:375 Compare Less Than ( global 2-component vector of bool) -0:375 vector swizzle ( temp 2-component vector of int) -0:375 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:375 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:375 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:375 Constant: -0:375 1 (const int) -0:375 Constant: -0:375 1 (const int) -0:375 Sequence -0:375 Constant: -0:375 0 (const int) -0:375 Constant: -0:375 1 (const int) -0:375 Constant: -0:375 0 (const int) -0:375 0 (const int) -0:376 move second child to first child ( temp 3-component vector of int) -0:376 vector swizzle ( temp 3-component vector of int) -0:376 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:376 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:376 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:376 'invocation' ( temp uint) -0:376 Constant: -0:376 1 (const int) -0:376 Sequence -0:376 Constant: -0:376 0 (const int) -0:376 Constant: -0:376 1 (const int) -0:376 Constant: -0:376 2 (const int) -0:376 Convert bool to int ( temp 3-component vector of int) -0:376 subgroupExclusiveOr ( global 3-component vector of bool) -0:376 Compare Less Than ( global 3-component vector of bool) -0:376 vector swizzle ( temp 3-component vector of int) -0:376 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:376 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:376 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:376 Constant: -0:376 1 (const int) -0:376 Constant: -0:376 1 (const int) -0:376 Sequence -0:376 Constant: -0:376 0 (const int) -0:376 Constant: -0:376 1 (const int) -0:376 Constant: -0:376 2 (const int) -0:376 Constant: -0:376 0 (const int) -0:376 0 (const int) -0:376 0 (const int) -0:377 move second child to first child ( temp 4-component vector of int) -0:377 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:377 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:377 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:377 'invocation' ( temp uint) -0:377 Constant: -0:377 1 (const int) -0:377 Convert bool to int ( temp 4-component vector of int) -0:377 subgroupExclusiveOr ( global 4-component vector of bool) -0:377 Compare Less Than ( global 4-component vector of bool) -0:377 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:377 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:377 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:377 Constant: -0:377 1 (const int) -0:377 Constant: -0:377 1 (const int) -0:377 Constant: -0:377 0 (const int) -0:377 0 (const int) -0:377 0 (const int) -0:377 0 (const int) -0:379 move second child to first child ( temp int) -0:379 direct index ( temp int) -0:379 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:379 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:379 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:379 'invocation' ( temp uint) -0:379 Constant: -0:379 1 (const int) -0:379 Constant: -0:379 0 (const int) -0:379 subgroupExclusiveXor ( global int) -0:379 direct index ( temp int) -0:379 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:379 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:379 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:379 Constant: -0:379 0 (const int) -0:379 Constant: -0:379 1 (const int) -0:379 Constant: -0:379 0 (const int) -0:380 move second child to first child ( temp 2-component vector of int) -0:380 vector swizzle ( temp 2-component vector of int) -0:380 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:380 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:380 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:380 'invocation' ( temp uint) -0:380 Constant: -0:380 1 (const int) -0:380 Sequence -0:380 Constant: -0:380 0 (const int) -0:380 Constant: -0:380 1 (const int) -0:380 subgroupExclusiveXor ( global 2-component vector of int) -0:380 vector swizzle ( temp 2-component vector of int) -0:380 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:380 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:380 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:380 Constant: -0:380 1 (const int) -0:380 Constant: -0:380 1 (const int) -0:380 Sequence -0:380 Constant: -0:380 0 (const int) -0:380 Constant: -0:380 1 (const int) -0:381 move second child to first child ( temp 3-component vector of int) -0:381 vector swizzle ( temp 3-component vector of int) -0:381 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:381 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:381 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:381 'invocation' ( temp uint) -0:381 Constant: -0:381 1 (const int) -0:381 Sequence -0:381 Constant: -0:381 0 (const int) -0:381 Constant: -0:381 1 (const int) -0:381 Constant: -0:381 2 (const int) -0:381 subgroupExclusiveXor ( global 3-component vector of int) -0:381 vector swizzle ( temp 3-component vector of int) -0:381 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:381 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:381 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:381 Constant: -0:381 2 (const int) -0:381 Constant: -0:381 1 (const int) -0:381 Sequence -0:381 Constant: -0:381 0 (const int) -0:381 Constant: -0:381 1 (const int) -0:381 Constant: -0:381 2 (const int) -0:382 move second child to first child ( temp 4-component vector of int) -0:382 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:382 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:382 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:382 'invocation' ( temp uint) -0:382 Constant: -0:382 1 (const int) -0:382 subgroupExclusiveXor ( global 4-component vector of int) -0:382 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:382 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:382 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:382 Constant: -0:382 3 (const int) -0:382 Constant: -0:382 1 (const int) -0:384 move second child to first child ( temp uint) -0:384 direct index ( temp uint) -0:384 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:384 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:384 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:384 'invocation' ( temp uint) -0:384 Constant: -0:384 2 (const int) -0:384 Constant: -0:384 0 (const int) -0:384 subgroupExclusiveXor ( global uint) -0:384 direct index ( temp uint) -0:384 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:384 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:384 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:384 Constant: -0:384 0 (const int) -0:384 Constant: -0:384 2 (const int) -0:384 Constant: -0:384 0 (const int) -0:385 move second child to first child ( temp 2-component vector of uint) -0:385 vector swizzle ( temp 2-component vector of uint) -0:385 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:385 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:385 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:385 'invocation' ( temp uint) -0:385 Constant: -0:385 2 (const int) -0:385 Sequence -0:385 Constant: -0:385 0 (const int) -0:385 Constant: -0:385 1 (const int) -0:385 subgroupExclusiveXor ( global 2-component vector of uint) -0:385 vector swizzle ( temp 2-component vector of uint) -0:385 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:385 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:385 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:385 Constant: -0:385 1 (const int) -0:385 Constant: -0:385 2 (const int) -0:385 Sequence -0:385 Constant: -0:385 0 (const int) -0:385 Constant: -0:385 1 (const int) -0:386 move second child to first child ( temp 3-component vector of uint) -0:386 vector swizzle ( temp 3-component vector of uint) -0:386 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:386 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:386 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:386 'invocation' ( temp uint) -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:386 subgroupExclusiveXor ( global 3-component vector of uint) -0:386 vector swizzle ( temp 3-component vector of uint) -0:386 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:386 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:386 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:386 Constant: -0:386 2 (const int) -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 4-component vector of uint) -0:387 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:387 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:387 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:387 'invocation' ( temp uint) -0:387 Constant: -0:387 2 (const int) -0:387 subgroupExclusiveXor ( global 4-component vector of uint) -0:387 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:387 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:387 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:387 Constant: -0:387 3 (const int) -0:387 Constant: -0:387 2 (const int) -0:389 move second child to first child ( temp int) -0:389 direct index ( temp int) -0:389 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:389 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:389 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:389 'invocation' ( temp uint) -0:389 Constant: -0:389 1 (const int) -0:389 Constant: -0:389 0 (const int) -0:389 Convert bool to int ( temp int) -0:389 subgroupExclusiveXor ( global bool) -0:389 Compare Less Than ( temp bool) -0:389 direct index ( temp int) -0:389 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:389 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:389 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:389 Constant: -0:389 0 (const int) -0:389 Constant: -0:389 1 (const int) -0:389 Constant: -0:389 0 (const int) -0:389 Constant: -0:389 0 (const int) -0:390 move second child to first child ( temp 2-component vector of int) -0:390 vector swizzle ( temp 2-component vector of int) -0:390 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:390 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:390 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:390 'invocation' ( temp uint) -0:390 Constant: -0:390 1 (const int) -0:390 Sequence -0:390 Constant: -0:390 0 (const int) -0:390 Constant: -0:390 1 (const int) -0:390 Convert bool to int ( temp 2-component vector of int) -0:390 subgroupExclusiveXor ( global 2-component vector of bool) -0:390 Compare Less Than ( global 2-component vector of bool) -0:390 vector swizzle ( temp 2-component vector of int) -0:390 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:390 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:390 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:390 Constant: -0:390 1 (const int) -0:390 Constant: -0:390 1 (const int) -0:390 Sequence -0:390 Constant: -0:390 0 (const int) -0:390 Constant: -0:390 1 (const int) -0:390 Constant: -0:390 0 (const int) -0:390 0 (const int) -0:391 move second child to first child ( temp 3-component vector of int) -0:391 vector swizzle ( temp 3-component vector of int) -0:391 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:391 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:391 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:391 'invocation' ( temp uint) -0:391 Constant: -0:391 1 (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 2 (const int) -0:391 Convert bool to int ( temp 3-component vector of int) -0:391 subgroupExclusiveXor ( global 3-component vector of bool) -0:391 Compare Less Than ( global 3-component vector of bool) -0:391 vector swizzle ( temp 3-component vector of int) -0:391 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:391 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:391 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:391 Constant: -0:391 1 (const int) -0:391 Constant: -0:391 1 (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 2 (const int) -0:391 Constant: -0:391 0 (const int) -0:391 0 (const int) -0:391 0 (const int) -0:392 move second child to first child ( temp 4-component vector of int) -0:392 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:392 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:392 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:392 'invocation' ( temp uint) -0:392 Constant: -0:392 1 (const int) -0:392 Convert bool to int ( temp 4-component vector of int) -0:392 subgroupExclusiveXor ( global 4-component vector of bool) -0:392 Compare Less Than ( global 4-component vector of bool) -0:392 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:392 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:392 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:392 Constant: -0:392 1 (const int) -0:392 Constant: -0:392 1 (const int) -0:392 Constant: -0:392 0 (const int) -0:392 0 (const int) -0:392 0 (const int) -0:392 0 (const int) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) - diff --git a/deps/glslang/Test/baseResults/glsl.450.subgroupBallot.comp.out b/deps/glslang/Test/baseResults/glsl.450.subgroupBallot.comp.out deleted file mode 100644 index 0408fb1b..00000000 --- a/deps/glslang/Test/baseResults/glsl.450.subgroupBallot.comp.out +++ /dev/null @@ -1,2303 +0,0 @@ -glsl.450.subgroupBallot.comp -Shader version: 450 -Requested GL_KHR_shader_subgroup_ballot -Requested GL_KHR_shader_subgroup_basic -local_size = (8, 8, 1) -0:? Sequence -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 uint) -0:17 'invocation' ( temp uint) -0:17 mod ( temp uint) -0:17 add ( temp uint) -0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:17 'gl_SubgroupSize' ( in uint SubgroupSize) -0:17 Constant: -0:17 4 (const uint) -0:19 Sequence -0:19 move second child to first child ( temp 4-component vector of uint) -0:19 'relMask' ( temp 4-component vector of uint) -0:22 add ( temp 4-component vector of uint) -0:21 add ( temp 4-component vector of uint) -0:20 add ( temp 4-component vector of uint) -0:19 add ( temp 4-component vector of uint) -0:19 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask) -0:20 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask) -0:21 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask) -0:22 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask) -0:23 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask) -0:25 Sequence -0:25 move second child to first child ( temp 4-component vector of uint) -0:25 'result' ( temp 4-component vector of uint) -0:25 subgroupBallot ( global 4-component vector of uint) -0:25 Constant: -0:25 true (const bool) -0:27 move second child to first child ( temp uint) -0:27 direct index ( temp uint) -0:27 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:27 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'invocation' ( temp uint) -0:27 Constant: -0:27 2 (const int) -0:27 Constant: -0:27 0 (const int) -0:27 subgroupBallotBitCount ( global uint) -0:27 'result' ( temp 4-component vector of uint) -0:28 move second child to first child ( temp uint) -0:28 direct index ( temp uint) -0:28 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:28 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:28 'invocation' ( temp uint) -0:28 Constant: -0:28 2 (const int) -0:28 Constant: -0:28 1 (const int) -0:28 Convert int to uint ( temp uint) -0:28 Test condition and select ( temp int) -0:28 Condition -0:28 subgroupBallotBitExtract ( global bool) -0:28 'result' ( temp 4-component vector of uint) -0:28 Constant: -0:28 0 (const uint) -0:28 true case -0:28 Constant: -0:28 1 (const int) -0:28 false case -0:28 Constant: -0:28 0 (const int) -0:29 move second child to first child ( temp uint) -0:29 direct index ( temp uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:29 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'invocation' ( temp uint) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 2 (const int) -0:29 add ( temp uint) -0:29 subgroupBallotInclusiveBitCount ( global uint) -0:29 'result' ( temp 4-component vector of uint) -0:29 subgroupBallotExclusiveBitCount ( global uint) -0:29 'result' ( temp 4-component vector of uint) -0:30 move second child to first child ( temp uint) -0:30 direct index ( temp uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:30 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 'invocation' ( temp uint) -0:30 Constant: -0:30 2 (const int) -0:30 Constant: -0:30 3 (const int) -0:30 add ( temp uint) -0:30 subgroupBallotFindLSB ( global uint) -0:30 'result' ( temp 4-component vector of uint) -0:30 subgroupBallotFindMSB ( global uint) -0:30 'result' ( temp 4-component vector of uint) -0:32 Test condition and select ( temp void) -0:32 Condition -0:32 logical-and ( temp bool) -0:32 Compare Equal ( temp bool) -0:32 'relMask' ( temp 4-component vector of uint) -0:32 'result' ( temp 4-component vector of uint) -0:32 subgroupInverseBallot ( global bool) -0:32 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 2 (const int) -0:32 true case -0:34 Sequence -0:34 move second child to first child ( temp float) -0:34 direct index ( temp float) -0:34 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:34 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'invocation' ( temp uint) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 subgroupBroadcast ( global float) -0:34 direct index ( temp float) -0:34 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 3 (const uint) -0:35 move second child to first child ( temp 2-component vector of float) -0:35 vector swizzle ( temp 2-component vector of float) -0:35 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:35 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 'invocation' ( temp uint) -0:35 Constant: -0:35 0 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 subgroupBroadcast ( global 2-component vector of float) -0:35 vector swizzle ( temp 2-component vector of float) -0:35 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 3 (const uint) -0:36 move second child to first child ( temp 3-component vector of float) -0:36 vector swizzle ( temp 3-component vector of float) -0:36 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:36 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'invocation' ( temp uint) -0:36 Constant: -0:36 0 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 2 (const int) -0:36 subgroupBroadcast ( global 3-component vector of float) -0:36 vector swizzle ( temp 3-component vector of float) -0:36 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 Constant: -0:36 2 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 2 (const int) -0:36 Constant: -0:36 3 (const uint) -0:37 move second child to first child ( temp 4-component vector of float) -0:37 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:37 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'invocation' ( temp uint) -0:37 Constant: -0:37 0 (const int) -0:37 subgroupBroadcast ( global 4-component vector of float) -0:37 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:37 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 Constant: -0:37 3 (const int) -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 3 (const uint) -0:39 move second child to first child ( temp int) -0:39 direct index ( temp int) -0:39 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:39 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'invocation' ( temp uint) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 subgroupBroadcast ( global int) -0:39 direct index ( temp int) -0:39 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 2 (const uint) -0:40 move second child to first child ( temp 2-component vector of int) -0:40 vector swizzle ( temp 2-component vector of int) -0:40 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:40 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 'invocation' ( temp uint) -0:40 Constant: -0:40 1 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 subgroupBroadcast ( global 2-component vector of int) -0:40 vector swizzle ( temp 2-component vector of int) -0:40 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 2 (const uint) -0:41 move second child to first child ( temp 3-component vector of int) -0:41 vector swizzle ( temp 3-component vector of int) -0:41 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:41 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'invocation' ( temp uint) -0:41 Constant: -0:41 1 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 2 (const int) -0:41 subgroupBroadcast ( global 3-component vector of int) -0:41 vector swizzle ( temp 3-component vector of int) -0:41 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 Constant: -0:41 2 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 2 (const int) -0:41 Constant: -0:41 2 (const uint) -0:42 move second child to first child ( temp 4-component vector of int) -0:42 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:42 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'invocation' ( temp uint) -0:42 Constant: -0:42 1 (const int) -0:42 subgroupBroadcast ( global 4-component vector of int) -0:42 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:42 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 Constant: -0:42 3 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 2 (const uint) -0:44 move second child to first child ( temp uint) -0:44 direct index ( temp uint) -0:44 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:44 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'invocation' ( temp uint) -0:44 Constant: -0:44 2 (const int) -0:44 Constant: -0:44 0 (const int) -0:44 subgroupBroadcast ( global uint) -0:44 direct index ( temp uint) -0:44 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 2 (const int) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 1 (const uint) -0:45 move second child to first child ( temp 2-component vector of uint) -0:45 vector swizzle ( temp 2-component vector of uint) -0:45 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:45 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 'invocation' ( temp uint) -0:45 Constant: -0:45 2 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 subgroupBroadcast ( global 2-component vector of uint) -0:45 vector swizzle ( temp 2-component vector of uint) -0:45 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 1 (const uint) -0:46 move second child to first child ( temp 3-component vector of uint) -0:46 vector swizzle ( temp 3-component vector of uint) -0:46 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:46 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'invocation' ( temp uint) -0:46 Constant: -0:46 2 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 subgroupBroadcast ( global 3-component vector of uint) -0:46 vector swizzle ( temp 3-component vector of uint) -0:46 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 Constant: -0:46 2 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 Constant: -0:46 1 (const uint) -0:47 move second child to first child ( temp 4-component vector of uint) -0:47 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:47 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'invocation' ( temp uint) -0:47 Constant: -0:47 2 (const int) -0:47 subgroupBroadcast ( global 4-component vector of uint) -0:47 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:47 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 Constant: -0:47 3 (const int) -0:47 Constant: -0:47 2 (const int) -0:47 Constant: -0:47 1 (const uint) -0:49 move second child to first child ( temp double) -0:49 direct index ( temp double) -0:49 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:49 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'invocation' ( temp uint) -0:49 Constant: -0:49 3 (const int) -0:49 Constant: -0:49 0 (const int) -0:49 subgroupBroadcast ( global double) -0:49 direct index ( temp double) -0:49 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:49 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 3 (const int) -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 0 (const uint) -0:50 move second child to first child ( temp 2-component vector of double) -0:50 vector swizzle ( temp 2-component vector of double) -0:50 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:50 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 'invocation' ( temp uint) -0:50 Constant: -0:50 3 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 subgroupBroadcast ( global 2-component vector of double) -0:50 vector swizzle ( temp 2-component vector of double) -0:50 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 3 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 0 (const uint) -0:51 move second child to first child ( temp 3-component vector of double) -0:51 vector swizzle ( temp 3-component vector of double) -0:51 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:51 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'invocation' ( temp uint) -0:51 Constant: -0:51 3 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 2 (const int) -0:51 subgroupBroadcast ( global 3-component vector of double) -0:51 vector swizzle ( temp 3-component vector of double) -0:51 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 Constant: -0:51 2 (const int) -0:51 Constant: -0:51 3 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 2 (const int) -0:51 Constant: -0:51 0 (const uint) -0:52 move second child to first child ( temp 4-component vector of double) -0:52 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:52 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'invocation' ( temp uint) -0:52 Constant: -0:52 3 (const int) -0:52 subgroupBroadcast ( global 4-component vector of double) -0:52 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:52 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 Constant: -0:52 3 (const int) -0:52 Constant: -0:52 3 (const int) -0:52 Constant: -0:52 0 (const uint) -0:54 move second child to first child ( temp int) -0:54 direct index ( temp int) -0:54 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:54 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'invocation' ( temp uint) -0:54 Constant: -0:54 1 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 Convert bool to int ( temp int) -0:54 subgroupBroadcast ( global bool) -0:54 Compare Less Than ( temp bool) -0:54 direct index ( temp int) -0:54 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:54 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 1 (const uint) -0:55 move second child to first child ( temp 2-component vector of int) -0:55 vector swizzle ( temp 2-component vector of int) -0:55 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:55 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 'invocation' ( temp uint) -0:55 Constant: -0:55 1 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Convert bool to int ( temp 2-component vector of int) -0:55 subgroupBroadcast ( global 2-component vector of bool) -0:55 Compare Less Than ( global 2-component vector of bool) -0:55 vector swizzle ( temp 2-component vector of int) -0:55 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 0 (const int) -0:55 0 (const int) -0:55 Constant: -0:55 1 (const uint) -0:56 move second child to first child ( temp 3-component vector of int) -0:56 vector swizzle ( temp 3-component vector of int) -0:56 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:56 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'invocation' ( temp uint) -0:56 Constant: -0:56 1 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 2 (const int) -0:56 Convert bool to int ( temp 3-component vector of int) -0:56 subgroupBroadcast ( global 3-component vector of bool) -0:56 Compare Less Than ( global 3-component vector of bool) -0:56 vector swizzle ( temp 3-component vector of int) -0:56 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 2 (const int) -0:56 Constant: -0:56 0 (const int) -0:56 0 (const int) -0:56 0 (const int) -0:56 Constant: -0:56 1 (const uint) -0:57 move second child to first child ( temp 4-component vector of int) -0:57 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:57 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'invocation' ( temp uint) -0:57 Constant: -0:57 1 (const int) -0:57 Convert bool to int ( temp 4-component vector of int) -0:57 subgroupBroadcast ( global 4-component vector of bool) -0:57 Compare Less Than ( global 4-component vector of bool) -0:57 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:57 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 Constant: -0:57 1 (const int) -0:57 Constant: -0:57 1 (const int) -0:57 Constant: -0:57 0 (const int) -0:57 0 (const int) -0:57 0 (const int) -0:57 0 (const int) -0:57 Constant: -0:57 1 (const uint) -0:32 false case -0:61 Sequence -0:61 move second child to first child ( temp float) -0:61 direct index ( temp float) -0:61 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:61 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'invocation' ( temp uint) -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 0 (const int) -0:61 subgroupBroadcastFirst ( global float) -0:61 direct index ( temp float) -0:61 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:61 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 0 (const int) -0:62 move second child to first child ( temp 2-component vector of float) -0:62 vector swizzle ( temp 2-component vector of float) -0:62 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:62 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'invocation' ( temp uint) -0:62 Constant: -0:62 0 (const int) -0:62 Sequence -0:62 Constant: -0:62 0 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 subgroupBroadcastFirst ( global 2-component vector of float) -0:62 vector swizzle ( temp 2-component vector of float) -0:62 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:62 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 Constant: -0:62 1 (const int) -0:62 Constant: -0:62 0 (const int) -0:62 Sequence -0:62 Constant: -0:62 0 (const int) -0:62 Constant: -0:62 1 (const int) -0:63 move second child to first child ( temp 3-component vector of float) -0:63 vector swizzle ( temp 3-component vector of float) -0:63 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:63 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:63 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:63 'invocation' ( temp uint) -0:63 Constant: -0:63 0 (const int) -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 subgroupBroadcastFirst ( global 3-component vector of float) -0:63 vector swizzle ( temp 3-component vector of float) -0:63 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:63 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:63 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:63 Constant: -0:63 2 (const int) -0:63 Constant: -0:63 0 (const int) -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:64 move second child to first child ( temp 4-component vector of float) -0:64 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:64 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'invocation' ( temp uint) -0:64 Constant: -0:64 0 (const int) -0:64 subgroupBroadcastFirst ( global 4-component vector of float) -0:64 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:64 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 Constant: -0:64 3 (const int) -0:64 Constant: -0:64 0 (const int) -0:66 move second child to first child ( temp int) -0:66 direct index ( temp int) -0:66 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:66 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'invocation' ( temp uint) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 0 (const int) -0:66 subgroupBroadcastFirst ( global int) -0:66 direct index ( temp int) -0:66 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:66 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 0 (const int) -0:67 move second child to first child ( temp 2-component vector of int) -0:67 vector swizzle ( temp 2-component vector of int) -0:67 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:67 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'invocation' ( temp uint) -0:67 Constant: -0:67 1 (const int) -0:67 Sequence -0:67 Constant: -0:67 0 (const int) -0:67 Constant: -0:67 1 (const int) -0:67 subgroupBroadcastFirst ( global 2-component vector of int) -0:67 vector swizzle ( temp 2-component vector of int) -0:67 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:67 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 Constant: -0:67 1 (const int) -0:67 Constant: -0:67 1 (const int) -0:67 Sequence -0:67 Constant: -0:67 0 (const int) -0:67 Constant: -0:67 1 (const int) -0:68 move second child to first child ( temp 3-component vector of int) -0:68 vector swizzle ( temp 3-component vector of int) -0:68 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:68 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:68 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:68 'invocation' ( temp uint) -0:68 Constant: -0:68 1 (const int) -0:68 Sequence -0:68 Constant: -0:68 0 (const int) -0:68 Constant: -0:68 1 (const int) -0:68 Constant: -0:68 2 (const int) -0:68 subgroupBroadcastFirst ( global 3-component vector of int) -0:68 vector swizzle ( temp 3-component vector of int) -0:68 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:68 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:68 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:68 Constant: -0:68 2 (const int) -0:68 Constant: -0:68 1 (const int) -0:68 Sequence -0:68 Constant: -0:68 0 (const int) -0:68 Constant: -0:68 1 (const int) -0:68 Constant: -0:68 2 (const int) -0:69 move second child to first child ( temp 4-component vector of int) -0:69 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:69 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 'invocation' ( temp uint) -0:69 Constant: -0:69 1 (const int) -0:69 subgroupBroadcastFirst ( global 4-component vector of int) -0:69 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:69 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 Constant: -0:69 3 (const int) -0:69 Constant: -0:69 1 (const int) -0:71 move second child to first child ( temp uint) -0:71 direct index ( temp uint) -0:71 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:71 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:71 'invocation' ( temp uint) -0:71 Constant: -0:71 2 (const int) -0:71 Constant: -0:71 0 (const int) -0:71 subgroupBroadcastFirst ( global uint) -0:71 direct index ( temp uint) -0:71 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:71 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:71 Constant: -0:71 0 (const int) -0:71 Constant: -0:71 2 (const int) -0:71 Constant: -0:71 0 (const int) -0:72 move second child to first child ( temp 2-component vector of uint) -0:72 vector swizzle ( temp 2-component vector of uint) -0:72 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:72 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 'invocation' ( temp uint) -0:72 Constant: -0:72 2 (const int) -0:72 Sequence -0:72 Constant: -0:72 0 (const int) -0:72 Constant: -0:72 1 (const int) -0:72 subgroupBroadcastFirst ( global 2-component vector of uint) -0:72 vector swizzle ( temp 2-component vector of uint) -0:72 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:72 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 Constant: -0:72 1 (const int) -0:72 Constant: -0:72 2 (const int) -0:72 Sequence -0:72 Constant: -0:72 0 (const int) -0:72 Constant: -0:72 1 (const int) -0:73 move second child to first child ( temp 3-component vector of uint) -0:73 vector swizzle ( temp 3-component vector of uint) -0:73 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:73 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:73 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:73 'invocation' ( temp uint) -0:73 Constant: -0:73 2 (const int) -0:73 Sequence -0:73 Constant: -0:73 0 (const int) -0:73 Constant: -0:73 1 (const int) -0:73 Constant: -0:73 2 (const int) -0:73 subgroupBroadcastFirst ( global 3-component vector of uint) -0:73 vector swizzle ( temp 3-component vector of uint) -0:73 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:73 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:73 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:73 Constant: -0:73 2 (const int) -0:73 Constant: -0:73 2 (const int) -0:73 Sequence -0:73 Constant: -0:73 0 (const int) -0:73 Constant: -0:73 1 (const int) -0:73 Constant: -0:73 2 (const int) -0:74 move second child to first child ( temp 4-component vector of uint) -0:74 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:74 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 'invocation' ( temp uint) -0:74 Constant: -0:74 2 (const int) -0:74 subgroupBroadcastFirst ( global 4-component vector of uint) -0:74 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:74 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 Constant: -0:74 3 (const int) -0:74 Constant: -0:74 2 (const int) -0:76 move second child to first child ( temp double) -0:76 direct index ( temp double) -0:76 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:76 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 'invocation' ( temp uint) -0:76 Constant: -0:76 3 (const int) -0:76 Constant: -0:76 0 (const int) -0:76 subgroupBroadcastFirst ( global double) -0:76 direct index ( temp double) -0:76 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:76 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 Constant: -0:76 0 (const int) -0:76 Constant: -0:76 3 (const int) -0:76 Constant: -0:76 0 (const int) -0:77 move second child to first child ( temp 2-component vector of double) -0:77 vector swizzle ( temp 2-component vector of double) -0:77 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:77 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 'invocation' ( temp uint) -0:77 Constant: -0:77 3 (const int) -0:77 Sequence -0:77 Constant: -0:77 0 (const int) -0:77 Constant: -0:77 1 (const int) -0:77 subgroupBroadcastFirst ( global 2-component vector of double) -0:77 vector swizzle ( temp 2-component vector of double) -0:77 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:77 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 Constant: -0:77 1 (const int) -0:77 Constant: -0:77 3 (const int) -0:77 Sequence -0:77 Constant: -0:77 0 (const int) -0:77 Constant: -0:77 1 (const int) -0:78 move second child to first child ( temp 3-component vector of double) -0:78 vector swizzle ( temp 3-component vector of double) -0:78 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:78 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:78 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:78 'invocation' ( temp uint) -0:78 Constant: -0:78 3 (const int) -0:78 Sequence -0:78 Constant: -0:78 0 (const int) -0:78 Constant: -0:78 1 (const int) -0:78 Constant: -0:78 2 (const int) -0:78 subgroupBroadcastFirst ( global 3-component vector of double) -0:78 vector swizzle ( temp 3-component vector of double) -0:78 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:78 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:78 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:78 Constant: -0:78 2 (const int) -0:78 Constant: -0:78 3 (const int) -0:78 Sequence -0:78 Constant: -0:78 0 (const int) -0:78 Constant: -0:78 1 (const int) -0:78 Constant: -0:78 2 (const int) -0:79 move second child to first child ( temp 4-component vector of double) -0:79 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:79 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 'invocation' ( temp uint) -0:79 Constant: -0:79 3 (const int) -0:79 subgroupBroadcastFirst ( global 4-component vector of double) -0:79 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:79 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 Constant: -0:79 3 (const int) -0:79 Constant: -0:79 3 (const int) -0:81 move second child to first child ( temp int) -0:81 direct index ( temp int) -0:81 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:81 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 'invocation' ( temp uint) -0:81 Constant: -0:81 1 (const int) -0:81 Constant: -0:81 0 (const int) -0:81 Convert bool to int ( temp int) -0:81 subgroupBroadcastFirst ( global bool) -0:81 Compare Less Than ( temp bool) -0:81 direct index ( temp int) -0:81 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:81 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 1 (const int) -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 0 (const int) -0:82 move second child to first child ( temp 2-component vector of int) -0:82 vector swizzle ( temp 2-component vector of int) -0:82 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:82 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 'invocation' ( temp uint) -0:82 Constant: -0:82 1 (const int) -0:82 Sequence -0:82 Constant: -0:82 0 (const int) -0:82 Constant: -0:82 1 (const int) -0:82 Convert bool to int ( temp 2-component vector of int) -0:82 subgroupBroadcastFirst ( global 2-component vector of bool) -0:82 Compare Less Than ( global 2-component vector of bool) -0:82 vector swizzle ( temp 2-component vector of int) -0:82 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:82 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 Constant: -0:82 1 (const int) -0:82 Constant: -0:82 1 (const int) -0:82 Sequence -0:82 Constant: -0:82 0 (const int) -0:82 Constant: -0:82 1 (const int) -0:82 Constant: -0:82 0 (const int) -0:82 0 (const int) -0:83 move second child to first child ( temp 3-component vector of int) -0:83 vector swizzle ( temp 3-component vector of int) -0:83 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:83 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:83 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:83 'invocation' ( temp uint) -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:83 Constant: -0:83 2 (const int) -0:83 Convert bool to int ( temp 3-component vector of int) -0:83 subgroupBroadcastFirst ( global 3-component vector of bool) -0:83 Compare Less Than ( global 3-component vector of bool) -0:83 vector swizzle ( temp 3-component vector of int) -0:83 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:83 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:83 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:83 Constant: -0:83 1 (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:83 Constant: -0:83 2 (const int) -0:83 Constant: -0:83 0 (const int) -0:83 0 (const int) -0:83 0 (const int) -0:84 move second child to first child ( temp 4-component vector of int) -0:84 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:84 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 'invocation' ( temp uint) -0:84 Constant: -0:84 1 (const int) -0:84 Convert bool to int ( temp 4-component vector of int) -0:84 subgroupBroadcastFirst ( global 4-component vector of bool) -0:84 Compare Less Than ( global 4-component vector of bool) -0:84 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:84 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 Constant: -0:84 1 (const int) -0:84 Constant: -0:84 1 (const int) -0:84 Constant: -0:84 0 (const int) -0:84 0 (const int) -0:84 0 (const int) -0:84 0 (const int) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) - - -Linked compute stage: - - -Shader version: 450 -Requested GL_KHR_shader_subgroup_ballot -Requested GL_KHR_shader_subgroup_basic -local_size = (8, 8, 1) -0:? Sequence -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 uint) -0:17 'invocation' ( temp uint) -0:17 mod ( temp uint) -0:17 add ( temp uint) -0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:17 'gl_SubgroupSize' ( in uint SubgroupSize) -0:17 Constant: -0:17 4 (const uint) -0:19 Sequence -0:19 move second child to first child ( temp 4-component vector of uint) -0:19 'relMask' ( temp 4-component vector of uint) -0:22 add ( temp 4-component vector of uint) -0:21 add ( temp 4-component vector of uint) -0:20 add ( temp 4-component vector of uint) -0:19 add ( temp 4-component vector of uint) -0:19 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask) -0:20 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask) -0:21 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask) -0:22 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask) -0:23 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask) -0:25 Sequence -0:25 move second child to first child ( temp 4-component vector of uint) -0:25 'result' ( temp 4-component vector of uint) -0:25 subgroupBallot ( global 4-component vector of uint) -0:25 Constant: -0:25 true (const bool) -0:27 move second child to first child ( temp uint) -0:27 direct index ( temp uint) -0:27 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:27 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'invocation' ( temp uint) -0:27 Constant: -0:27 2 (const int) -0:27 Constant: -0:27 0 (const int) -0:27 subgroupBallotBitCount ( global uint) -0:27 'result' ( temp 4-component vector of uint) -0:28 move second child to first child ( temp uint) -0:28 direct index ( temp uint) -0:28 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:28 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:28 'invocation' ( temp uint) -0:28 Constant: -0:28 2 (const int) -0:28 Constant: -0:28 1 (const int) -0:28 Convert int to uint ( temp uint) -0:28 Test condition and select ( temp int) -0:28 Condition -0:28 subgroupBallotBitExtract ( global bool) -0:28 'result' ( temp 4-component vector of uint) -0:28 Constant: -0:28 0 (const uint) -0:28 true case -0:28 Constant: -0:28 1 (const int) -0:28 false case -0:28 Constant: -0:28 0 (const int) -0:29 move second child to first child ( temp uint) -0:29 direct index ( temp uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:29 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'invocation' ( temp uint) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 2 (const int) -0:29 add ( temp uint) -0:29 subgroupBallotInclusiveBitCount ( global uint) -0:29 'result' ( temp 4-component vector of uint) -0:29 subgroupBallotExclusiveBitCount ( global uint) -0:29 'result' ( temp 4-component vector of uint) -0:30 move second child to first child ( temp uint) -0:30 direct index ( temp uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:30 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 'invocation' ( temp uint) -0:30 Constant: -0:30 2 (const int) -0:30 Constant: -0:30 3 (const int) -0:30 add ( temp uint) -0:30 subgroupBallotFindLSB ( global uint) -0:30 'result' ( temp 4-component vector of uint) -0:30 subgroupBallotFindMSB ( global uint) -0:30 'result' ( temp 4-component vector of uint) -0:32 Test condition and select ( temp void) -0:32 Condition -0:32 logical-and ( temp bool) -0:32 Compare Equal ( temp bool) -0:32 'relMask' ( temp 4-component vector of uint) -0:32 'result' ( temp 4-component vector of uint) -0:32 subgroupInverseBallot ( global bool) -0:32 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 2 (const int) -0:32 true case -0:34 Sequence -0:34 move second child to first child ( temp float) -0:34 direct index ( temp float) -0:34 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:34 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'invocation' ( temp uint) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 subgroupBroadcast ( global float) -0:34 direct index ( temp float) -0:34 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 3 (const uint) -0:35 move second child to first child ( temp 2-component vector of float) -0:35 vector swizzle ( temp 2-component vector of float) -0:35 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:35 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 'invocation' ( temp uint) -0:35 Constant: -0:35 0 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 subgroupBroadcast ( global 2-component vector of float) -0:35 vector swizzle ( temp 2-component vector of float) -0:35 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 3 (const uint) -0:36 move second child to first child ( temp 3-component vector of float) -0:36 vector swizzle ( temp 3-component vector of float) -0:36 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:36 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'invocation' ( temp uint) -0:36 Constant: -0:36 0 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 2 (const int) -0:36 subgroupBroadcast ( global 3-component vector of float) -0:36 vector swizzle ( temp 3-component vector of float) -0:36 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 Constant: -0:36 2 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 2 (const int) -0:36 Constant: -0:36 3 (const uint) -0:37 move second child to first child ( temp 4-component vector of float) -0:37 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:37 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'invocation' ( temp uint) -0:37 Constant: -0:37 0 (const int) -0:37 subgroupBroadcast ( global 4-component vector of float) -0:37 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:37 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 Constant: -0:37 3 (const int) -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 3 (const uint) -0:39 move second child to first child ( temp int) -0:39 direct index ( temp int) -0:39 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:39 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'invocation' ( temp uint) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 subgroupBroadcast ( global int) -0:39 direct index ( temp int) -0:39 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 2 (const uint) -0:40 move second child to first child ( temp 2-component vector of int) -0:40 vector swizzle ( temp 2-component vector of int) -0:40 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:40 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 'invocation' ( temp uint) -0:40 Constant: -0:40 1 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 subgroupBroadcast ( global 2-component vector of int) -0:40 vector swizzle ( temp 2-component vector of int) -0:40 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 2 (const uint) -0:41 move second child to first child ( temp 3-component vector of int) -0:41 vector swizzle ( temp 3-component vector of int) -0:41 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:41 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'invocation' ( temp uint) -0:41 Constant: -0:41 1 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 2 (const int) -0:41 subgroupBroadcast ( global 3-component vector of int) -0:41 vector swizzle ( temp 3-component vector of int) -0:41 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 Constant: -0:41 2 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 2 (const int) -0:41 Constant: -0:41 2 (const uint) -0:42 move second child to first child ( temp 4-component vector of int) -0:42 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:42 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'invocation' ( temp uint) -0:42 Constant: -0:42 1 (const int) -0:42 subgroupBroadcast ( global 4-component vector of int) -0:42 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:42 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 Constant: -0:42 3 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 2 (const uint) -0:44 move second child to first child ( temp uint) -0:44 direct index ( temp uint) -0:44 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:44 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'invocation' ( temp uint) -0:44 Constant: -0:44 2 (const int) -0:44 Constant: -0:44 0 (const int) -0:44 subgroupBroadcast ( global uint) -0:44 direct index ( temp uint) -0:44 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 2 (const int) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 1 (const uint) -0:45 move second child to first child ( temp 2-component vector of uint) -0:45 vector swizzle ( temp 2-component vector of uint) -0:45 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:45 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 'invocation' ( temp uint) -0:45 Constant: -0:45 2 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 subgroupBroadcast ( global 2-component vector of uint) -0:45 vector swizzle ( temp 2-component vector of uint) -0:45 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 1 (const uint) -0:46 move second child to first child ( temp 3-component vector of uint) -0:46 vector swizzle ( temp 3-component vector of uint) -0:46 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:46 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'invocation' ( temp uint) -0:46 Constant: -0:46 2 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 subgroupBroadcast ( global 3-component vector of uint) -0:46 vector swizzle ( temp 3-component vector of uint) -0:46 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 Constant: -0:46 2 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 Constant: -0:46 1 (const uint) -0:47 move second child to first child ( temp 4-component vector of uint) -0:47 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:47 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'invocation' ( temp uint) -0:47 Constant: -0:47 2 (const int) -0:47 subgroupBroadcast ( global 4-component vector of uint) -0:47 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:47 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 Constant: -0:47 3 (const int) -0:47 Constant: -0:47 2 (const int) -0:47 Constant: -0:47 1 (const uint) -0:49 move second child to first child ( temp double) -0:49 direct index ( temp double) -0:49 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:49 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'invocation' ( temp uint) -0:49 Constant: -0:49 3 (const int) -0:49 Constant: -0:49 0 (const int) -0:49 subgroupBroadcast ( global double) -0:49 direct index ( temp double) -0:49 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:49 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 3 (const int) -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 0 (const uint) -0:50 move second child to first child ( temp 2-component vector of double) -0:50 vector swizzle ( temp 2-component vector of double) -0:50 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:50 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 'invocation' ( temp uint) -0:50 Constant: -0:50 3 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 subgroupBroadcast ( global 2-component vector of double) -0:50 vector swizzle ( temp 2-component vector of double) -0:50 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 3 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 0 (const uint) -0:51 move second child to first child ( temp 3-component vector of double) -0:51 vector swizzle ( temp 3-component vector of double) -0:51 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:51 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'invocation' ( temp uint) -0:51 Constant: -0:51 3 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 2 (const int) -0:51 subgroupBroadcast ( global 3-component vector of double) -0:51 vector swizzle ( temp 3-component vector of double) -0:51 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 Constant: -0:51 2 (const int) -0:51 Constant: -0:51 3 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 2 (const int) -0:51 Constant: -0:51 0 (const uint) -0:52 move second child to first child ( temp 4-component vector of double) -0:52 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:52 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'invocation' ( temp uint) -0:52 Constant: -0:52 3 (const int) -0:52 subgroupBroadcast ( global 4-component vector of double) -0:52 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:52 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 Constant: -0:52 3 (const int) -0:52 Constant: -0:52 3 (const int) -0:52 Constant: -0:52 0 (const uint) -0:54 move second child to first child ( temp int) -0:54 direct index ( temp int) -0:54 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:54 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'invocation' ( temp uint) -0:54 Constant: -0:54 1 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 Convert bool to int ( temp int) -0:54 subgroupBroadcast ( global bool) -0:54 Compare Less Than ( temp bool) -0:54 direct index ( temp int) -0:54 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:54 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 1 (const uint) -0:55 move second child to first child ( temp 2-component vector of int) -0:55 vector swizzle ( temp 2-component vector of int) -0:55 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:55 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 'invocation' ( temp uint) -0:55 Constant: -0:55 1 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Convert bool to int ( temp 2-component vector of int) -0:55 subgroupBroadcast ( global 2-component vector of bool) -0:55 Compare Less Than ( global 2-component vector of bool) -0:55 vector swizzle ( temp 2-component vector of int) -0:55 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 0 (const int) -0:55 0 (const int) -0:55 Constant: -0:55 1 (const uint) -0:56 move second child to first child ( temp 3-component vector of int) -0:56 vector swizzle ( temp 3-component vector of int) -0:56 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:56 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'invocation' ( temp uint) -0:56 Constant: -0:56 1 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 2 (const int) -0:56 Convert bool to int ( temp 3-component vector of int) -0:56 subgroupBroadcast ( global 3-component vector of bool) -0:56 Compare Less Than ( global 3-component vector of bool) -0:56 vector swizzle ( temp 3-component vector of int) -0:56 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 2 (const int) -0:56 Constant: -0:56 0 (const int) -0:56 0 (const int) -0:56 0 (const int) -0:56 Constant: -0:56 1 (const uint) -0:57 move second child to first child ( temp 4-component vector of int) -0:57 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:57 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'invocation' ( temp uint) -0:57 Constant: -0:57 1 (const int) -0:57 Convert bool to int ( temp 4-component vector of int) -0:57 subgroupBroadcast ( global 4-component vector of bool) -0:57 Compare Less Than ( global 4-component vector of bool) -0:57 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:57 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 Constant: -0:57 1 (const int) -0:57 Constant: -0:57 1 (const int) -0:57 Constant: -0:57 0 (const int) -0:57 0 (const int) -0:57 0 (const int) -0:57 0 (const int) -0:57 Constant: -0:57 1 (const uint) -0:32 false case -0:61 Sequence -0:61 move second child to first child ( temp float) -0:61 direct index ( temp float) -0:61 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:61 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'invocation' ( temp uint) -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 0 (const int) -0:61 subgroupBroadcastFirst ( global float) -0:61 direct index ( temp float) -0:61 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:61 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 0 (const int) -0:62 move second child to first child ( temp 2-component vector of float) -0:62 vector swizzle ( temp 2-component vector of float) -0:62 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:62 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'invocation' ( temp uint) -0:62 Constant: -0:62 0 (const int) -0:62 Sequence -0:62 Constant: -0:62 0 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 subgroupBroadcastFirst ( global 2-component vector of float) -0:62 vector swizzle ( temp 2-component vector of float) -0:62 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:62 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 Constant: -0:62 1 (const int) -0:62 Constant: -0:62 0 (const int) -0:62 Sequence -0:62 Constant: -0:62 0 (const int) -0:62 Constant: -0:62 1 (const int) -0:63 move second child to first child ( temp 3-component vector of float) -0:63 vector swizzle ( temp 3-component vector of float) -0:63 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:63 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:63 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:63 'invocation' ( temp uint) -0:63 Constant: -0:63 0 (const int) -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 subgroupBroadcastFirst ( global 3-component vector of float) -0:63 vector swizzle ( temp 3-component vector of float) -0:63 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:63 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:63 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:63 Constant: -0:63 2 (const int) -0:63 Constant: -0:63 0 (const int) -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:64 move second child to first child ( temp 4-component vector of float) -0:64 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:64 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'invocation' ( temp uint) -0:64 Constant: -0:64 0 (const int) -0:64 subgroupBroadcastFirst ( global 4-component vector of float) -0:64 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:64 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 Constant: -0:64 3 (const int) -0:64 Constant: -0:64 0 (const int) -0:66 move second child to first child ( temp int) -0:66 direct index ( temp int) -0:66 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:66 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'invocation' ( temp uint) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 0 (const int) -0:66 subgroupBroadcastFirst ( global int) -0:66 direct index ( temp int) -0:66 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:66 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 0 (const int) -0:67 move second child to first child ( temp 2-component vector of int) -0:67 vector swizzle ( temp 2-component vector of int) -0:67 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:67 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'invocation' ( temp uint) -0:67 Constant: -0:67 1 (const int) -0:67 Sequence -0:67 Constant: -0:67 0 (const int) -0:67 Constant: -0:67 1 (const int) -0:67 subgroupBroadcastFirst ( global 2-component vector of int) -0:67 vector swizzle ( temp 2-component vector of int) -0:67 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:67 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 Constant: -0:67 1 (const int) -0:67 Constant: -0:67 1 (const int) -0:67 Sequence -0:67 Constant: -0:67 0 (const int) -0:67 Constant: -0:67 1 (const int) -0:68 move second child to first child ( temp 3-component vector of int) -0:68 vector swizzle ( temp 3-component vector of int) -0:68 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:68 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:68 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:68 'invocation' ( temp uint) -0:68 Constant: -0:68 1 (const int) -0:68 Sequence -0:68 Constant: -0:68 0 (const int) -0:68 Constant: -0:68 1 (const int) -0:68 Constant: -0:68 2 (const int) -0:68 subgroupBroadcastFirst ( global 3-component vector of int) -0:68 vector swizzle ( temp 3-component vector of int) -0:68 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:68 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:68 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:68 Constant: -0:68 2 (const int) -0:68 Constant: -0:68 1 (const int) -0:68 Sequence -0:68 Constant: -0:68 0 (const int) -0:68 Constant: -0:68 1 (const int) -0:68 Constant: -0:68 2 (const int) -0:69 move second child to first child ( temp 4-component vector of int) -0:69 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:69 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 'invocation' ( temp uint) -0:69 Constant: -0:69 1 (const int) -0:69 subgroupBroadcastFirst ( global 4-component vector of int) -0:69 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:69 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 Constant: -0:69 3 (const int) -0:69 Constant: -0:69 1 (const int) -0:71 move second child to first child ( temp uint) -0:71 direct index ( temp uint) -0:71 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:71 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:71 'invocation' ( temp uint) -0:71 Constant: -0:71 2 (const int) -0:71 Constant: -0:71 0 (const int) -0:71 subgroupBroadcastFirst ( global uint) -0:71 direct index ( temp uint) -0:71 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:71 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:71 Constant: -0:71 0 (const int) -0:71 Constant: -0:71 2 (const int) -0:71 Constant: -0:71 0 (const int) -0:72 move second child to first child ( temp 2-component vector of uint) -0:72 vector swizzle ( temp 2-component vector of uint) -0:72 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:72 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 'invocation' ( temp uint) -0:72 Constant: -0:72 2 (const int) -0:72 Sequence -0:72 Constant: -0:72 0 (const int) -0:72 Constant: -0:72 1 (const int) -0:72 subgroupBroadcastFirst ( global 2-component vector of uint) -0:72 vector swizzle ( temp 2-component vector of uint) -0:72 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:72 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 Constant: -0:72 1 (const int) -0:72 Constant: -0:72 2 (const int) -0:72 Sequence -0:72 Constant: -0:72 0 (const int) -0:72 Constant: -0:72 1 (const int) -0:73 move second child to first child ( temp 3-component vector of uint) -0:73 vector swizzle ( temp 3-component vector of uint) -0:73 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:73 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:73 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:73 'invocation' ( temp uint) -0:73 Constant: -0:73 2 (const int) -0:73 Sequence -0:73 Constant: -0:73 0 (const int) -0:73 Constant: -0:73 1 (const int) -0:73 Constant: -0:73 2 (const int) -0:73 subgroupBroadcastFirst ( global 3-component vector of uint) -0:73 vector swizzle ( temp 3-component vector of uint) -0:73 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:73 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:73 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:73 Constant: -0:73 2 (const int) -0:73 Constant: -0:73 2 (const int) -0:73 Sequence -0:73 Constant: -0:73 0 (const int) -0:73 Constant: -0:73 1 (const int) -0:73 Constant: -0:73 2 (const int) -0:74 move second child to first child ( temp 4-component vector of uint) -0:74 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:74 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 'invocation' ( temp uint) -0:74 Constant: -0:74 2 (const int) -0:74 subgroupBroadcastFirst ( global 4-component vector of uint) -0:74 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:74 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 Constant: -0:74 3 (const int) -0:74 Constant: -0:74 2 (const int) -0:76 move second child to first child ( temp double) -0:76 direct index ( temp double) -0:76 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:76 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 'invocation' ( temp uint) -0:76 Constant: -0:76 3 (const int) -0:76 Constant: -0:76 0 (const int) -0:76 subgroupBroadcastFirst ( global double) -0:76 direct index ( temp double) -0:76 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:76 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 Constant: -0:76 0 (const int) -0:76 Constant: -0:76 3 (const int) -0:76 Constant: -0:76 0 (const int) -0:77 move second child to first child ( temp 2-component vector of double) -0:77 vector swizzle ( temp 2-component vector of double) -0:77 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:77 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 'invocation' ( temp uint) -0:77 Constant: -0:77 3 (const int) -0:77 Sequence -0:77 Constant: -0:77 0 (const int) -0:77 Constant: -0:77 1 (const int) -0:77 subgroupBroadcastFirst ( global 2-component vector of double) -0:77 vector swizzle ( temp 2-component vector of double) -0:77 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:77 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 Constant: -0:77 1 (const int) -0:77 Constant: -0:77 3 (const int) -0:77 Sequence -0:77 Constant: -0:77 0 (const int) -0:77 Constant: -0:77 1 (const int) -0:78 move second child to first child ( temp 3-component vector of double) -0:78 vector swizzle ( temp 3-component vector of double) -0:78 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:78 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:78 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:78 'invocation' ( temp uint) -0:78 Constant: -0:78 3 (const int) -0:78 Sequence -0:78 Constant: -0:78 0 (const int) -0:78 Constant: -0:78 1 (const int) -0:78 Constant: -0:78 2 (const int) -0:78 subgroupBroadcastFirst ( global 3-component vector of double) -0:78 vector swizzle ( temp 3-component vector of double) -0:78 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:78 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:78 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:78 Constant: -0:78 2 (const int) -0:78 Constant: -0:78 3 (const int) -0:78 Sequence -0:78 Constant: -0:78 0 (const int) -0:78 Constant: -0:78 1 (const int) -0:78 Constant: -0:78 2 (const int) -0:79 move second child to first child ( temp 4-component vector of double) -0:79 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:79 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 'invocation' ( temp uint) -0:79 Constant: -0:79 3 (const int) -0:79 subgroupBroadcastFirst ( global 4-component vector of double) -0:79 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:79 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 Constant: -0:79 3 (const int) -0:79 Constant: -0:79 3 (const int) -0:81 move second child to first child ( temp int) -0:81 direct index ( temp int) -0:81 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:81 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 'invocation' ( temp uint) -0:81 Constant: -0:81 1 (const int) -0:81 Constant: -0:81 0 (const int) -0:81 Convert bool to int ( temp int) -0:81 subgroupBroadcastFirst ( global bool) -0:81 Compare Less Than ( temp bool) -0:81 direct index ( temp int) -0:81 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:81 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 1 (const int) -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 0 (const int) -0:82 move second child to first child ( temp 2-component vector of int) -0:82 vector swizzle ( temp 2-component vector of int) -0:82 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:82 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 'invocation' ( temp uint) -0:82 Constant: -0:82 1 (const int) -0:82 Sequence -0:82 Constant: -0:82 0 (const int) -0:82 Constant: -0:82 1 (const int) -0:82 Convert bool to int ( temp 2-component vector of int) -0:82 subgroupBroadcastFirst ( global 2-component vector of bool) -0:82 Compare Less Than ( global 2-component vector of bool) -0:82 vector swizzle ( temp 2-component vector of int) -0:82 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:82 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 Constant: -0:82 1 (const int) -0:82 Constant: -0:82 1 (const int) -0:82 Sequence -0:82 Constant: -0:82 0 (const int) -0:82 Constant: -0:82 1 (const int) -0:82 Constant: -0:82 0 (const int) -0:82 0 (const int) -0:83 move second child to first child ( temp 3-component vector of int) -0:83 vector swizzle ( temp 3-component vector of int) -0:83 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:83 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:83 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:83 'invocation' ( temp uint) -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:83 Constant: -0:83 2 (const int) -0:83 Convert bool to int ( temp 3-component vector of int) -0:83 subgroupBroadcastFirst ( global 3-component vector of bool) -0:83 Compare Less Than ( global 3-component vector of bool) -0:83 vector swizzle ( temp 3-component vector of int) -0:83 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:83 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:83 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:83 Constant: -0:83 1 (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:83 Constant: -0:83 2 (const int) -0:83 Constant: -0:83 0 (const int) -0:83 0 (const int) -0:83 0 (const int) -0:84 move second child to first child ( temp 4-component vector of int) -0:84 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:84 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 'invocation' ( temp uint) -0:84 Constant: -0:84 1 (const int) -0:84 Convert bool to int ( temp 4-component vector of int) -0:84 subgroupBroadcastFirst ( global 4-component vector of bool) -0:84 Compare Less Than ( global 4-component vector of bool) -0:84 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:84 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 Constant: -0:84 1 (const int) -0:84 Constant: -0:84 1 (const int) -0:84 Constant: -0:84 0 (const int) -0:84 0 (const int) -0:84 0 (const int) -0:84 0 (const int) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) - diff --git a/deps/glslang/Test/baseResults/glsl.450.subgroupBallotNeg.comp.out b/deps/glslang/Test/baseResults/glsl.450.subgroupBallotNeg.comp.out deleted file mode 100644 index fd2e936d..00000000 --- a/deps/glslang/Test/baseResults/glsl.450.subgroupBallotNeg.comp.out +++ /dev/null @@ -1,267 +0,0 @@ -glsl.450.subgroupBallotNeg.comp -ERROR: 0:32: 'id' : argument must be compile-time constant -ERROR: 1 compilation errors. No code generated. - - -Shader version: 450 -Requested GL_KHR_shader_subgroup_ballot -Requested GL_KHR_shader_subgroup_basic -local_size = (8, 8, 1) -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 uint) -0:17 'invocation' ( temp uint) -0:17 mod ( temp uint) -0:17 add ( temp uint) -0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:17 'gl_SubgroupSize' ( in uint SubgroupSize) -0:17 Constant: -0:17 4 (const uint) -0:19 Sequence -0:19 move second child to first child ( temp 4-component vector of uint) -0:19 'relMask' ( temp 4-component vector of uint) -0:22 add ( temp 4-component vector of uint) -0:21 add ( temp 4-component vector of uint) -0:20 add ( temp 4-component vector of uint) -0:19 add ( temp 4-component vector of uint) -0:19 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask) -0:20 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask) -0:21 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask) -0:22 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask) -0:23 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask) -0:25 Sequence -0:25 move second child to first child ( temp 4-component vector of uint) -0:25 'result' ( temp 4-component vector of uint) -0:25 subgroupBallot ( global 4-component vector of uint) -0:25 Constant: -0:25 true (const bool) -0:27 move second child to first child ( temp uint) -0:27 direct index ( temp uint) -0:27 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:27 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'invocation' ( temp uint) -0:27 Constant: -0:27 2 (const int) -0:27 Constant: -0:27 0 (const int) -0:27 subgroupBallotBitCount ( global uint) -0:27 'result' ( temp 4-component vector of uint) -0:28 move second child to first child ( temp uint) -0:28 direct index ( temp uint) -0:28 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:28 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:28 'invocation' ( temp uint) -0:28 Constant: -0:28 2 (const int) -0:28 Constant: -0:28 1 (const int) -0:28 Convert int to uint ( temp uint) -0:28 Test condition and select ( temp int) -0:28 Condition -0:28 subgroupBallotBitExtract ( global bool) -0:28 'result' ( temp 4-component vector of uint) -0:28 Constant: -0:28 0 (const uint) -0:28 true case -0:28 Constant: -0:28 1 (const int) -0:28 false case -0:28 Constant: -0:28 0 (const int) -0:29 move second child to first child ( temp uint) -0:29 direct index ( temp uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:29 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'invocation' ( temp uint) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 2 (const int) -0:29 add ( temp uint) -0:29 subgroupBallotInclusiveBitCount ( global uint) -0:29 'result' ( temp 4-component vector of uint) -0:29 subgroupBallotExclusiveBitCount ( global uint) -0:29 'result' ( temp 4-component vector of uint) -0:30 move second child to first child ( temp uint) -0:30 direct index ( temp uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:30 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 'invocation' ( temp uint) -0:30 Constant: -0:30 2 (const int) -0:30 Constant: -0:30 3 (const int) -0:30 add ( temp uint) -0:30 subgroupBallotFindLSB ( global uint) -0:30 'result' ( temp 4-component vector of uint) -0:30 subgroupBallotFindMSB ( global uint) -0:30 'result' ( temp 4-component vector of uint) -0:32 move second child to first child ( temp float) -0:32 direct index ( temp float) -0:32 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:32 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'invocation' ( temp uint) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 0 (const int) -0:32 subgroupBroadcast ( global float) -0:32 direct index ( temp float) -0:32 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 0 (const int) -0:32 'invocation' ( temp uint) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) - - -Linked compute stage: - - -Shader version: 450 -Requested GL_KHR_shader_subgroup_ballot -Requested GL_KHR_shader_subgroup_basic -local_size = (8, 8, 1) -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 uint) -0:17 'invocation' ( temp uint) -0:17 mod ( temp uint) -0:17 add ( temp uint) -0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:17 'gl_SubgroupSize' ( in uint SubgroupSize) -0:17 Constant: -0:17 4 (const uint) -0:19 Sequence -0:19 move second child to first child ( temp 4-component vector of uint) -0:19 'relMask' ( temp 4-component vector of uint) -0:22 add ( temp 4-component vector of uint) -0:21 add ( temp 4-component vector of uint) -0:20 add ( temp 4-component vector of uint) -0:19 add ( temp 4-component vector of uint) -0:19 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask) -0:20 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask) -0:21 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask) -0:22 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask) -0:23 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask) -0:25 Sequence -0:25 move second child to first child ( temp 4-component vector of uint) -0:25 'result' ( temp 4-component vector of uint) -0:25 subgroupBallot ( global 4-component vector of uint) -0:25 Constant: -0:25 true (const bool) -0:27 move second child to first child ( temp uint) -0:27 direct index ( temp uint) -0:27 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:27 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'invocation' ( temp uint) -0:27 Constant: -0:27 2 (const int) -0:27 Constant: -0:27 0 (const int) -0:27 subgroupBallotBitCount ( global uint) -0:27 'result' ( temp 4-component vector of uint) -0:28 move second child to first child ( temp uint) -0:28 direct index ( temp uint) -0:28 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:28 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:28 'invocation' ( temp uint) -0:28 Constant: -0:28 2 (const int) -0:28 Constant: -0:28 1 (const int) -0:28 Convert int to uint ( temp uint) -0:28 Test condition and select ( temp int) -0:28 Condition -0:28 subgroupBallotBitExtract ( global bool) -0:28 'result' ( temp 4-component vector of uint) -0:28 Constant: -0:28 0 (const uint) -0:28 true case -0:28 Constant: -0:28 1 (const int) -0:28 false case -0:28 Constant: -0:28 0 (const int) -0:29 move second child to first child ( temp uint) -0:29 direct index ( temp uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:29 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'invocation' ( temp uint) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 2 (const int) -0:29 add ( temp uint) -0:29 subgroupBallotInclusiveBitCount ( global uint) -0:29 'result' ( temp 4-component vector of uint) -0:29 subgroupBallotExclusiveBitCount ( global uint) -0:29 'result' ( temp 4-component vector of uint) -0:30 move second child to first child ( temp uint) -0:30 direct index ( temp uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:30 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 'invocation' ( temp uint) -0:30 Constant: -0:30 2 (const int) -0:30 Constant: -0:30 3 (const int) -0:30 add ( temp uint) -0:30 subgroupBallotFindLSB ( global uint) -0:30 'result' ( temp 4-component vector of uint) -0:30 subgroupBallotFindMSB ( global uint) -0:30 'result' ( temp 4-component vector of uint) -0:32 move second child to first child ( temp float) -0:32 direct index ( temp float) -0:32 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:32 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'invocation' ( temp uint) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 0 (const int) -0:32 subgroupBroadcast ( global float) -0:32 direct index ( temp float) -0:32 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 0 (const int) -0:32 'invocation' ( temp uint) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) - diff --git a/deps/glslang/Test/baseResults/glsl.450.subgroupBasic.comp.out b/deps/glslang/Test/baseResults/glsl.450.subgroupBasic.comp.out deleted file mode 100644 index 654138b4..00000000 --- a/deps/glslang/Test/baseResults/glsl.450.subgroupBasic.comp.out +++ /dev/null @@ -1,734 +0,0 @@ -glsl.450.subgroupBasic.comp -ERROR: 0:6: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:7: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:8: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:9: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:10: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:11: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:12: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:13: 'gl_NumSubgroups' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:14: 'gl_SubgroupID' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:15: 'subgroupMemoryBarrierShared' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:17: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:18: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:19: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:21: 'gl_SubgroupEqMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:22: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:23: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:24: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:25: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:26: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:27: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:28: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:29: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:30: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:31: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:32: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:33: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:34: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:35: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:37: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle -ERROR: 0:38: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle -ERROR: 0:39: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative -ERROR: 0:40: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative -ERROR: 0:42: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:43: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:44: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:45: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:46: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:47: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:48: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:49: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:50: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:51: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:52: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:53: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:54: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:55: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:56: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:57: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:58: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:59: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:60: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:61: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:62: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:64: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:65: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:66: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:67: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:68: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:69: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:70: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:72: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:73: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:74: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:75: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:77: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:78: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:79: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:80: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:81: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:82: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:83: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:84: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:85: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:86: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:87: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:88: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:89: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:90: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:91: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:92: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:93: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:94: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:242: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:243: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:244: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:245: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 90 compilation errors. No code generated. - - -Shader version: 450 -Requested GL_KHR_shader_subgroup_arithmetic -Requested GL_KHR_shader_subgroup_ballot -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_clustered -Requested GL_KHR_shader_subgroup_quad -Requested GL_KHR_shader_subgroup_shuffle -Requested GL_KHR_shader_subgroup_shuffle_relative -Requested GL_KHR_shader_subgroup_vote -Requested GL_NV_shader_sm_builtins -Requested GL_NV_shader_subgroup_partitioned -local_size = (8, 8, 1) -ERROR: node is still EOpNull! -0:3 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float) -0:3 Function Parameters: -0:3 'f4' ( in 4-component vector of float) -0:? Sequence -0:6 'gl_SubgroupSize' ( in uint SubgroupSize) -0:7 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:8 subgroupBarrier ( global void) -0:9 subgroupMemoryBarrier ( global void) -0:10 subgroupMemoryBarrierBuffer ( global void) -0:11 subgroupMemoryBarrierImage ( global void) -0:12 subgroupElect ( global bool) -0:13 'gl_NumSubgroups' ( in uint NumSubgroups) -0:14 'gl_SubgroupID' ( in uint SubgroupID) -0:15 subgroupMemoryBarrierShared ( global void) -0:17 subgroupAll ( global bool) -0:17 Constant: -0:17 true (const bool) -0:18 subgroupAny ( global bool) -0:18 Constant: -0:18 false (const bool) -0:19 subgroupAllEqual ( global bool) -0:19 'f4' ( in 4-component vector of float) -0:21 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask) -0:22 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask) -0:23 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask) -0:24 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask) -0:25 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask) -0:26 subgroupBroadcast ( global 4-component vector of float) -0:26 'f4' ( in 4-component vector of float) -0:26 Constant: -0:26 0 (const uint) -0:27 subgroupBroadcastFirst ( global 4-component vector of float) -0:27 'f4' ( in 4-component vector of float) -0:28 Sequence -0:28 move second child to first child ( temp 4-component vector of uint) -0:28 'ballot' ( temp 4-component vector of uint) -0:28 subgroupBallot ( global 4-component vector of uint) -0:28 Constant: -0:28 false (const bool) -0:29 subgroupInverseBallot ( global bool) -0:29 Constant: -0:29 1 (const uint) -0:29 1 (const uint) -0:29 1 (const uint) -0:29 1 (const uint) -0:30 subgroupBallotBitExtract ( global bool) -0:30 'ballot' ( temp 4-component vector of uint) -0:30 Constant: -0:30 0 (const uint) -0:31 subgroupBallotBitCount ( global uint) -0:31 'ballot' ( temp 4-component vector of uint) -0:32 subgroupBallotInclusiveBitCount ( global uint) -0:32 'ballot' ( temp 4-component vector of uint) -0:33 subgroupBallotExclusiveBitCount ( global uint) -0:33 'ballot' ( temp 4-component vector of uint) -0:34 subgroupBallotFindLSB ( global uint) -0:34 'ballot' ( temp 4-component vector of uint) -0:35 subgroupBallotFindMSB ( global uint) -0:35 'ballot' ( temp 4-component vector of uint) -0:37 subgroupShuffle ( global 4-component vector of float) -0:37 'f4' ( in 4-component vector of float) -0:37 Constant: -0:37 0 (const uint) -0:38 subgroupShuffleXor ( global 4-component vector of float) -0:38 'f4' ( in 4-component vector of float) -0:38 Constant: -0:38 1 (const uint) -0:39 subgroupShuffleUp ( global 4-component vector of float) -0:39 'f4' ( in 4-component vector of float) -0:39 Constant: -0:39 1 (const uint) -0:40 subgroupShuffleDown ( global 4-component vector of float) -0:40 'f4' ( in 4-component vector of float) -0:40 Constant: -0:40 1 (const uint) -0:42 move second child to first child ( temp 4-component vector of float) -0:42 'result' ( temp 4-component vector of float) -0:42 subgroupAdd ( global 4-component vector of float) -0:42 'f4' ( in 4-component vector of float) -0:43 subgroupMul ( global 4-component vector of float) -0:43 'f4' ( in 4-component vector of float) -0:44 subgroupMin ( global 4-component vector of float) -0:44 'f4' ( in 4-component vector of float) -0:45 subgroupMax ( global 4-component vector of float) -0:45 'f4' ( in 4-component vector of float) -0:46 subgroupAnd ( global 4-component vector of uint) -0:46 'ballot' ( temp 4-component vector of uint) -0:47 subgroupOr ( global 4-component vector of uint) -0:47 'ballot' ( temp 4-component vector of uint) -0:48 subgroupXor ( global 4-component vector of uint) -0:48 'ballot' ( temp 4-component vector of uint) -0:49 subgroupInclusiveAdd ( global 4-component vector of float) -0:49 'f4' ( in 4-component vector of float) -0:50 subgroupInclusiveMul ( global 4-component vector of float) -0:50 'f4' ( in 4-component vector of float) -0:51 subgroupInclusiveMin ( global 4-component vector of float) -0:51 'f4' ( in 4-component vector of float) -0:52 subgroupInclusiveMax ( global 4-component vector of float) -0:52 'f4' ( in 4-component vector of float) -0:53 subgroupInclusiveAnd ( global 4-component vector of uint) -0:53 'ballot' ( temp 4-component vector of uint) -0:54 subgroupInclusiveOr ( global 4-component vector of uint) -0:54 'ballot' ( temp 4-component vector of uint) -0:55 subgroupInclusiveXor ( global 4-component vector of uint) -0:55 'ballot' ( temp 4-component vector of uint) -0:56 subgroupExclusiveAdd ( global 4-component vector of float) -0:56 'f4' ( in 4-component vector of float) -0:57 subgroupExclusiveMul ( global 4-component vector of float) -0:57 'f4' ( in 4-component vector of float) -0:58 subgroupExclusiveMin ( global 4-component vector of float) -0:58 'f4' ( in 4-component vector of float) -0:59 subgroupExclusiveMax ( global 4-component vector of float) -0:59 'f4' ( in 4-component vector of float) -0:60 subgroupExclusiveAnd ( global 4-component vector of uint) -0:60 'ballot' ( temp 4-component vector of uint) -0:61 subgroupExclusiveOr ( global 4-component vector of uint) -0:61 'ballot' ( temp 4-component vector of uint) -0:62 subgroupExclusiveXor ( global 4-component vector of uint) -0:62 'ballot' ( temp 4-component vector of uint) -0:64 subgroupClusteredAdd ( global 4-component vector of float) -0:64 'f4' ( in 4-component vector of float) -0:64 Constant: -0:64 2 (const uint) -0:65 subgroupClusteredMul ( global 4-component vector of float) -0:65 'f4' ( in 4-component vector of float) -0:65 Constant: -0:65 2 (const uint) -0:66 subgroupClusteredMin ( global 4-component vector of float) -0:66 'f4' ( in 4-component vector of float) -0:66 Constant: -0:66 2 (const uint) -0:67 subgroupClusteredMax ( global 4-component vector of float) -0:67 'f4' ( in 4-component vector of float) -0:67 Constant: -0:67 2 (const uint) -0:68 subgroupClusteredAnd ( global 4-component vector of uint) -0:68 'ballot' ( temp 4-component vector of uint) -0:68 Constant: -0:68 2 (const uint) -0:69 subgroupClusteredOr ( global 4-component vector of uint) -0:69 'ballot' ( temp 4-component vector of uint) -0:69 Constant: -0:69 2 (const uint) -0:70 subgroupClusteredXor ( global 4-component vector of uint) -0:70 'ballot' ( temp 4-component vector of uint) -0:70 Constant: -0:70 2 (const uint) -0:72 subgroupQuadBroadcast ( global 4-component vector of float) -0:72 'f4' ( in 4-component vector of float) -0:72 Constant: -0:72 0 (const uint) -0:73 subgroupQuadSwapHorizontal ( global 4-component vector of float) -0:73 'f4' ( in 4-component vector of float) -0:74 subgroupQuadSwapVertical ( global 4-component vector of float) -0:74 'f4' ( in 4-component vector of float) -0:75 subgroupQuadSwapDiagonal ( global 4-component vector of float) -0:75 'f4' ( in 4-component vector of float) -0:77 Sequence -0:77 move second child to first child ( temp 4-component vector of uint) -0:77 'parti' ( temp 4-component vector of uint) -0:77 subgroupPartitionNV ( global 4-component vector of uint) -0:77 'f4' ( in 4-component vector of float) -0:78 subgroupPartitionedAddNV ( global 4-component vector of float) -0:78 'f4' ( in 4-component vector of float) -0:78 'parti' ( temp 4-component vector of uint) -0:79 subgroupPartitionedMulNV ( global 4-component vector of float) -0:79 'f4' ( in 4-component vector of float) -0:79 'parti' ( temp 4-component vector of uint) -0:80 subgroupPartitionedMinNV ( global 4-component vector of float) -0:80 'f4' ( in 4-component vector of float) -0:80 'parti' ( temp 4-component vector of uint) -0:81 subgroupPartitionedMaxNV ( global 4-component vector of float) -0:81 'f4' ( in 4-component vector of float) -0:81 'parti' ( temp 4-component vector of uint) -0:82 subgroupPartitionedAndNV ( global 4-component vector of uint) -0:82 'ballot' ( temp 4-component vector of uint) -0:82 'parti' ( temp 4-component vector of uint) -0:83 subgroupPartitionedOrNV ( global 4-component vector of uint) -0:83 'ballot' ( temp 4-component vector of uint) -0:83 'parti' ( temp 4-component vector of uint) -0:84 subgroupPartitionedXorNV ( global 4-component vector of uint) -0:84 'ballot' ( temp 4-component vector of uint) -0:84 'parti' ( temp 4-component vector of uint) -0:85 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float) -0:85 'f4' ( in 4-component vector of float) -0:85 'parti' ( temp 4-component vector of uint) -0:86 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float) -0:86 'f4' ( in 4-component vector of float) -0:86 'parti' ( temp 4-component vector of uint) -0:87 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float) -0:87 'f4' ( in 4-component vector of float) -0:87 'parti' ( temp 4-component vector of uint) -0:88 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float) -0:88 'f4' ( in 4-component vector of float) -0:88 'parti' ( temp 4-component vector of uint) -0:89 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint) -0:89 'ballot' ( temp 4-component vector of uint) -0:89 'parti' ( temp 4-component vector of uint) -0:90 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint) -0:90 'ballot' ( temp 4-component vector of uint) -0:90 'parti' ( temp 4-component vector of uint) -0:91 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint) -0:91 'ballot' ( temp 4-component vector of uint) -0:91 'parti' ( temp 4-component vector of uint) -0:92 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float) -0:92 'f4' ( in 4-component vector of float) -0:92 'parti' ( temp 4-component vector of uint) -0:93 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float) -0:93 'f4' ( in 4-component vector of float) -0:93 'parti' ( temp 4-component vector of uint) -0:94 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float) -0:94 'f4' ( in 4-component vector of float) -0:94 'parti' ( temp 4-component vector of uint) -0:95 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float) -0:95 'f4' ( in 4-component vector of float) -0:95 'parti' ( temp 4-component vector of uint) -0:96 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint) -0:96 'ballot' ( temp 4-component vector of uint) -0:96 'parti' ( temp 4-component vector of uint) -0:97 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint) -0:97 'ballot' ( temp 4-component vector of uint) -0:97 'parti' ( temp 4-component vector of uint) -0:98 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint) -0:98 'ballot' ( temp 4-component vector of uint) -0:98 'parti' ( temp 4-component vector of uint) -0:100 Branch: Return with expression -0:100 'result' ( temp 4-component vector of float) -0:112 Function Definition: main( ( global void) -0:112 Function Parameters: -0:114 Sequence -0:114 move second child to first child ( temp int) -0:114 indirect index (layout( column_major shared) temp int) -0:114 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int) -0:114 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a}) -0:114 Constant: -0:114 0 (const int) -0:114 'gl_SubgroupSize' ( in uint SubgroupSize) -0:114 Constant: -0:114 1 (const int) -0:115 move second child to first child ( temp int) -0:115 indirect index (layout( column_major shared) temp int) -0:115 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int) -0:115 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a}) -0:115 Constant: -0:115 0 (const int) -0:115 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:115 Constant: -0:115 1 (const int) -0:116 move second child to first child ( temp int) -0:116 indirect index (layout( column_major shared) temp int) -0:116 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int) -0:116 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a}) -0:116 Constant: -0:116 0 (const int) -0:116 'gl_NumSubgroups' ( in uint NumSubgroups) -0:116 Constant: -0:116 1 (const int) -0:117 move second child to first child ( temp int) -0:117 indirect index (layout( column_major shared) temp int) -0:117 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int) -0:117 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a}) -0:117 Constant: -0:117 0 (const int) -0:117 'gl_SubgroupID' ( in uint SubgroupID) -0:117 Test condition and select ( temp int) -0:117 Condition -0:117 subgroupElect ( global bool) -0:117 true case -0:117 Constant: -0:117 1 (const int) -0:117 false case -0:117 Constant: -0:117 0 (const int) -0:118 subgroupBarrier ( global void) -0:119 subgroupMemoryBarrier ( global void) -0:120 subgroupMemoryBarrierBuffer ( global void) -0:121 subgroupMemoryBarrierShared ( global void) -0:122 subgroupMemoryBarrierImage ( global void) -0:126 Function Definition: ballot_works(vf4; ( global void) -0:126 Function Parameters: -0:126 'f4' ( in 4-component vector of float) -0:127 Sequence -0:127 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask) -0:128 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask) -0:129 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask) -0:130 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask) -0:131 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask) -0:132 subgroupBroadcast ( global 4-component vector of float) -0:132 'f4' ( in 4-component vector of float) -0:132 Constant: -0:132 0 (const uint) -0:133 subgroupBroadcastFirst ( global 4-component vector of float) -0:133 'f4' ( in 4-component vector of float) -0:134 Sequence -0:134 move second child to first child ( temp 4-component vector of uint) -0:134 'ballot' ( temp 4-component vector of uint) -0:134 subgroupBallot ( global 4-component vector of uint) -0:134 Constant: -0:134 false (const bool) -0:135 subgroupInverseBallot ( global bool) -0:135 Constant: -0:135 1 (const uint) -0:135 1 (const uint) -0:135 1 (const uint) -0:135 1 (const uint) -0:136 subgroupBallotBitExtract ( global bool) -0:136 'ballot' ( temp 4-component vector of uint) -0:136 Constant: -0:136 0 (const uint) -0:137 subgroupBallotBitCount ( global uint) -0:137 'ballot' ( temp 4-component vector of uint) -0:138 subgroupBallotInclusiveBitCount ( global uint) -0:138 'ballot' ( temp 4-component vector of uint) -0:139 subgroupBallotExclusiveBitCount ( global uint) -0:139 'ballot' ( temp 4-component vector of uint) -0:140 subgroupBallotFindLSB ( global uint) -0:140 'ballot' ( temp 4-component vector of uint) -0:141 subgroupBallotFindMSB ( global uint) -0:141 'ballot' ( temp 4-component vector of uint) -0:145 Function Definition: vote_works(vf4; ( global void) -0:145 Function Parameters: -0:145 'f4' ( in 4-component vector of float) -0:147 Sequence -0:147 subgroupAll ( global bool) -0:147 Constant: -0:147 true (const bool) -0:148 subgroupAny ( global bool) -0:148 Constant: -0:148 false (const bool) -0:149 subgroupAllEqual ( global bool) -0:149 'f4' ( in 4-component vector of float) -0:154 Function Definition: shuffle_works(vf4; ( global void) -0:154 Function Parameters: -0:154 'f4' ( in 4-component vector of float) -0:156 Sequence -0:156 subgroupShuffle ( global 4-component vector of float) -0:156 'f4' ( in 4-component vector of float) -0:156 Constant: -0:156 0 (const uint) -0:157 subgroupShuffleXor ( global 4-component vector of float) -0:157 'f4' ( in 4-component vector of float) -0:157 Constant: -0:157 1 (const uint) -0:158 subgroupShuffleUp ( global 4-component vector of float) -0:158 'f4' ( in 4-component vector of float) -0:158 Constant: -0:158 1 (const uint) -0:159 subgroupShuffleDown ( global 4-component vector of float) -0:159 'f4' ( in 4-component vector of float) -0:159 Constant: -0:159 1 (const uint) -0:163 Function Definition: arith_works(vf4; ( global void) -0:163 Function Parameters: -0:163 'f4' ( in 4-component vector of float) -0:? Sequence -0:166 subgroupAdd ( global 4-component vector of float) -0:166 'f4' ( in 4-component vector of float) -0:167 subgroupMul ( global 4-component vector of float) -0:167 'f4' ( in 4-component vector of float) -0:168 subgroupMin ( global 4-component vector of float) -0:168 'f4' ( in 4-component vector of float) -0:169 subgroupMax ( global 4-component vector of float) -0:169 'f4' ( in 4-component vector of float) -0:170 subgroupAnd ( global 4-component vector of uint) -0:170 'ballot' ( temp 4-component vector of uint) -0:171 subgroupOr ( global 4-component vector of uint) -0:171 'ballot' ( temp 4-component vector of uint) -0:172 subgroupXor ( global 4-component vector of uint) -0:172 'ballot' ( temp 4-component vector of uint) -0:173 subgroupInclusiveAdd ( global 4-component vector of float) -0:173 'f4' ( in 4-component vector of float) -0:174 subgroupInclusiveMul ( global 4-component vector of float) -0:174 'f4' ( in 4-component vector of float) -0:175 subgroupInclusiveMin ( global 4-component vector of float) -0:175 'f4' ( in 4-component vector of float) -0:176 subgroupInclusiveMax ( global 4-component vector of float) -0:176 'f4' ( in 4-component vector of float) -0:177 subgroupInclusiveAnd ( global 4-component vector of uint) -0:177 'ballot' ( temp 4-component vector of uint) -0:178 subgroupInclusiveOr ( global 4-component vector of uint) -0:178 'ballot' ( temp 4-component vector of uint) -0:179 subgroupInclusiveXor ( global 4-component vector of uint) -0:179 'ballot' ( temp 4-component vector of uint) -0:180 subgroupExclusiveAdd ( global 4-component vector of float) -0:180 'f4' ( in 4-component vector of float) -0:181 subgroupExclusiveMul ( global 4-component vector of float) -0:181 'f4' ( in 4-component vector of float) -0:182 subgroupExclusiveMin ( global 4-component vector of float) -0:182 'f4' ( in 4-component vector of float) -0:183 subgroupExclusiveMax ( global 4-component vector of float) -0:183 'f4' ( in 4-component vector of float) -0:184 subgroupExclusiveAnd ( global 4-component vector of uint) -0:184 'ballot' ( temp 4-component vector of uint) -0:185 subgroupExclusiveOr ( global 4-component vector of uint) -0:185 'ballot' ( temp 4-component vector of uint) -0:186 subgroupExclusiveXor ( global 4-component vector of uint) -0:186 'ballot' ( temp 4-component vector of uint) -0:190 Function Definition: clustered_works(vf4; ( global void) -0:190 Function Parameters: -0:190 'f4' ( in 4-component vector of float) -0:192 Sequence -0:192 Sequence -0:192 move second child to first child ( temp 4-component vector of uint) -0:192 'ballot' ( temp 4-component vector of uint) -0:192 Constant: -0:192 85 (const uint) -0:192 0 (const uint) -0:192 0 (const uint) -0:192 0 (const uint) -0:193 subgroupClusteredAdd ( global 4-component vector of float) -0:193 'f4' ( in 4-component vector of float) -0:193 Constant: -0:193 2 (const uint) -0:194 subgroupClusteredMul ( global 4-component vector of float) -0:194 'f4' ( in 4-component vector of float) -0:194 Constant: -0:194 2 (const uint) -0:195 subgroupClusteredMin ( global 4-component vector of float) -0:195 'f4' ( in 4-component vector of float) -0:195 Constant: -0:195 2 (const uint) -0:196 subgroupClusteredMax ( global 4-component vector of float) -0:196 'f4' ( in 4-component vector of float) -0:196 Constant: -0:196 2 (const uint) -0:197 subgroupClusteredAnd ( global 4-component vector of uint) -0:197 'ballot' ( temp 4-component vector of uint) -0:197 Constant: -0:197 2 (const uint) -0:198 subgroupClusteredOr ( global 4-component vector of uint) -0:198 'ballot' ( temp 4-component vector of uint) -0:198 Constant: -0:198 2 (const uint) -0:199 subgroupClusteredXor ( global 4-component vector of uint) -0:199 'ballot' ( temp 4-component vector of uint) -0:199 Constant: -0:199 2 (const uint) -0:203 Function Definition: quad_works(vf4; ( global void) -0:203 Function Parameters: -0:203 'f4' ( in 4-component vector of float) -0:205 Sequence -0:205 subgroupQuadBroadcast ( global 4-component vector of float) -0:205 'f4' ( in 4-component vector of float) -0:205 Constant: -0:205 0 (const uint) -0:206 subgroupQuadSwapHorizontal ( global 4-component vector of float) -0:206 'f4' ( in 4-component vector of float) -0:207 subgroupQuadSwapVertical ( global 4-component vector of float) -0:207 'f4' ( in 4-component vector of float) -0:208 subgroupQuadSwapDiagonal ( global 4-component vector of float) -0:208 'f4' ( in 4-component vector of float) -0:212 Function Definition: partitioned_works(vf4; ( global void) -0:212 Function Parameters: -0:212 'f4' ( in 4-component vector of float) -0:214 Sequence -0:214 Sequence -0:214 move second child to first child ( temp 4-component vector of uint) -0:214 'parti' ( temp 4-component vector of uint) -0:214 subgroupPartitionNV ( global 4-component vector of uint) -0:214 'f4' ( in 4-component vector of float) -0:215 Sequence -0:215 move second child to first child ( temp 4-component vector of uint) -0:215 'ballot' ( temp 4-component vector of uint) -0:215 Constant: -0:215 85 (const uint) -0:215 0 (const uint) -0:215 0 (const uint) -0:215 0 (const uint) -0:216 subgroupPartitionedAddNV ( global 4-component vector of float) -0:216 'f4' ( in 4-component vector of float) -0:216 'parti' ( temp 4-component vector of uint) -0:217 subgroupPartitionedMulNV ( global 4-component vector of float) -0:217 'f4' ( in 4-component vector of float) -0:217 'parti' ( temp 4-component vector of uint) -0:218 subgroupPartitionedMinNV ( global 4-component vector of float) -0:218 'f4' ( in 4-component vector of float) -0:218 'parti' ( temp 4-component vector of uint) -0:219 subgroupPartitionedMaxNV ( global 4-component vector of float) -0:219 'f4' ( in 4-component vector of float) -0:219 'parti' ( temp 4-component vector of uint) -0:220 subgroupPartitionedAndNV ( global 4-component vector of uint) -0:220 'ballot' ( temp 4-component vector of uint) -0:220 'parti' ( temp 4-component vector of uint) -0:221 subgroupPartitionedOrNV ( global 4-component vector of uint) -0:221 'ballot' ( temp 4-component vector of uint) -0:221 'parti' ( temp 4-component vector of uint) -0:222 subgroupPartitionedXorNV ( global 4-component vector of uint) -0:222 'ballot' ( temp 4-component vector of uint) -0:222 'parti' ( temp 4-component vector of uint) -0:223 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float) -0:223 'f4' ( in 4-component vector of float) -0:223 'parti' ( temp 4-component vector of uint) -0:224 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float) -0:224 'f4' ( in 4-component vector of float) -0:224 'parti' ( temp 4-component vector of uint) -0:225 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float) -0:225 'f4' ( in 4-component vector of float) -0:225 'parti' ( temp 4-component vector of uint) -0:226 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float) -0:226 'f4' ( in 4-component vector of float) -0:226 'parti' ( temp 4-component vector of uint) -0:227 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint) -0:227 'ballot' ( temp 4-component vector of uint) -0:227 'parti' ( temp 4-component vector of uint) -0:228 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint) -0:228 'ballot' ( temp 4-component vector of uint) -0:228 'parti' ( temp 4-component vector of uint) -0:229 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint) -0:229 'ballot' ( temp 4-component vector of uint) -0:229 'parti' ( temp 4-component vector of uint) -0:230 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float) -0:230 'f4' ( in 4-component vector of float) -0:230 'parti' ( temp 4-component vector of uint) -0:231 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float) -0:231 'f4' ( in 4-component vector of float) -0:231 'parti' ( temp 4-component vector of uint) -0:232 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float) -0:232 'f4' ( in 4-component vector of float) -0:232 'parti' ( temp 4-component vector of uint) -0:233 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float) -0:233 'f4' ( in 4-component vector of float) -0:233 'parti' ( temp 4-component vector of uint) -0:234 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint) -0:234 'ballot' ( temp 4-component vector of uint) -0:234 'parti' ( temp 4-component vector of uint) -0:235 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint) -0:235 'ballot' ( temp 4-component vector of uint) -0:235 'parti' ( temp 4-component vector of uint) -0:236 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint) -0:236 'ballot' ( temp 4-component vector of uint) -0:236 'parti' ( temp 4-component vector of uint) -0:240 Function Definition: sm_builtins_err( ( global void) -0:240 Function Parameters: -0:242 Sequence -0:242 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV) -0:243 'gl_SMCountNV' ( in uint SMCountNV) -0:244 'gl_WarpIDNV' ( in uint WarpIDNV) -0:245 'gl_SMIDNV' ( in uint SMIDNV) -0:252 Function Definition: sm_builtins( ( global void) -0:252 Function Parameters: -0:254 Sequence -0:254 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV) -0:255 'gl_SMCountNV' ( in uint SMCountNV) -0:256 'gl_WarpIDNV' ( in uint WarpIDNV) -0:257 'gl_SMIDNV' ( in uint SMIDNV) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a}) - - -Linked compute stage: - - -Shader version: 450 -Requested GL_KHR_shader_subgroup_arithmetic -Requested GL_KHR_shader_subgroup_ballot -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_clustered -Requested GL_KHR_shader_subgroup_quad -Requested GL_KHR_shader_subgroup_shuffle -Requested GL_KHR_shader_subgroup_shuffle_relative -Requested GL_KHR_shader_subgroup_vote -Requested GL_NV_shader_sm_builtins -Requested GL_NV_shader_subgroup_partitioned -local_size = (8, 8, 1) -ERROR: node is still EOpNull! -0:112 Function Definition: main( ( global void) -0:112 Function Parameters: -0:114 Sequence -0:114 move second child to first child ( temp int) -0:114 indirect index (layout( column_major shared) temp int) -0:114 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int) -0:114 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a}) -0:114 Constant: -0:114 0 (const int) -0:114 'gl_SubgroupSize' ( in uint SubgroupSize) -0:114 Constant: -0:114 1 (const int) -0:115 move second child to first child ( temp int) -0:115 indirect index (layout( column_major shared) temp int) -0:115 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int) -0:115 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a}) -0:115 Constant: -0:115 0 (const int) -0:115 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:115 Constant: -0:115 1 (const int) -0:116 move second child to first child ( temp int) -0:116 indirect index (layout( column_major shared) temp int) -0:116 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int) -0:116 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a}) -0:116 Constant: -0:116 0 (const int) -0:116 'gl_NumSubgroups' ( in uint NumSubgroups) -0:116 Constant: -0:116 1 (const int) -0:117 move second child to first child ( temp int) -0:117 indirect index (layout( column_major shared) temp int) -0:117 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int) -0:117 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a}) -0:117 Constant: -0:117 0 (const int) -0:117 'gl_SubgroupID' ( in uint SubgroupID) -0:117 Test condition and select ( temp int) -0:117 Condition -0:117 subgroupElect ( global bool) -0:117 true case -0:117 Constant: -0:117 1 (const int) -0:117 false case -0:117 Constant: -0:117 0 (const int) -0:118 subgroupBarrier ( global void) -0:119 subgroupMemoryBarrier ( global void) -0:120 subgroupMemoryBarrierBuffer ( global void) -0:121 subgroupMemoryBarrierShared ( global void) -0:122 subgroupMemoryBarrierImage ( global void) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a}) - diff --git a/deps/glslang/Test/baseResults/glsl.450.subgroupClustered.comp.out b/deps/glslang/Test/baseResults/glsl.450.subgroupClustered.comp.out deleted file mode 100644 index 23cf03e7..00000000 --- a/deps/glslang/Test/baseResults/glsl.450.subgroupClustered.comp.out +++ /dev/null @@ -1,5285 +0,0 @@ -glsl.450.subgroupClustered.comp -Shader version: 450 -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_clustered -local_size = (8, 1, 1) -0:? Sequence -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 uint) -0:17 'invocation' ( temp uint) -0:17 mod ( temp uint) -0:17 add ( temp uint) -0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:17 'gl_SubgroupSize' ( in uint SubgroupSize) -0:17 Constant: -0:17 4 (const uint) -0:19 move second child to first child ( temp float) -0:19 direct index ( temp float) -0:19 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:19 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 'invocation' ( temp uint) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 subgroupClusteredAdd ( global float) -0:19 direct index ( temp float) -0:19 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:19 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const uint) -0:20 move second child to first child ( temp 2-component vector of float) -0:20 vector swizzle ( temp 2-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:20 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 'invocation' ( temp uint) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 subgroupClusteredAdd ( global 2-component vector of float) -0:20 vector swizzle ( temp 2-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:20 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 1 (const uint) -0:21 move second child to first child ( temp 3-component vector of float) -0:21 vector swizzle ( temp 3-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:21 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 'invocation' ( temp uint) -0:21 Constant: -0:21 0 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Constant: -0:21 2 (const int) -0:21 subgroupClusteredAdd ( global 3-component vector of float) -0:21 vector swizzle ( temp 3-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 Constant: -0:21 2 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Constant: -0:21 2 (const int) -0:21 Constant: -0:21 1 (const uint) -0:22 move second child to first child ( temp 4-component vector of float) -0:22 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:22 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'invocation' ( temp uint) -0:22 Constant: -0:22 0 (const int) -0:22 subgroupClusteredAdd ( global 4-component vector of float) -0:22 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:22 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 Constant: -0:22 3 (const int) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const uint) -0:24 move second child to first child ( temp int) -0:24 direct index ( temp int) -0:24 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:24 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'invocation' ( temp uint) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 0 (const int) -0:24 subgroupClusteredAdd ( global int) -0:24 direct index ( temp int) -0:24 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const uint) -0:25 move second child to first child ( temp 2-component vector of int) -0:25 vector swizzle ( temp 2-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:25 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 'invocation' ( temp uint) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 subgroupClusteredAdd ( global 2-component vector of int) -0:25 vector swizzle ( temp 2-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 1 (const uint) -0:26 move second child to first child ( temp 3-component vector of int) -0:26 vector swizzle ( temp 3-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:26 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'invocation' ( temp uint) -0:26 Constant: -0:26 1 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 subgroupClusteredAdd ( global 3-component vector of int) -0:26 vector swizzle ( temp 3-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 Constant: -0:26 2 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 Constant: -0:26 1 (const uint) -0:27 move second child to first child ( temp 4-component vector of int) -0:27 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:27 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'invocation' ( temp uint) -0:27 Constant: -0:27 1 (const int) -0:27 subgroupClusteredAdd ( global 4-component vector of int) -0:27 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:27 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 Constant: -0:27 3 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Constant: -0:27 1 (const uint) -0:29 move second child to first child ( temp uint) -0:29 direct index ( temp uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:29 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'invocation' ( temp uint) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 0 (const int) -0:29 subgroupClusteredAdd ( global uint) -0:29 direct index ( temp uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 1 (const uint) -0:30 move second child to first child ( temp 2-component vector of uint) -0:30 vector swizzle ( temp 2-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:30 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 'invocation' ( temp uint) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 subgroupClusteredAdd ( global 2-component vector of uint) -0:30 vector swizzle ( temp 2-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:30 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 1 (const uint) -0:31 move second child to first child ( temp 3-component vector of uint) -0:31 vector swizzle ( temp 3-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:31 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'invocation' ( temp uint) -0:31 Constant: -0:31 2 (const int) -0:31 Sequence -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 subgroupClusteredAdd ( global 3-component vector of uint) -0:31 vector swizzle ( temp 3-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 Constant: -0:31 2 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 Sequence -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 Constant: -0:31 1 (const uint) -0:32 move second child to first child ( temp 4-component vector of uint) -0:32 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:32 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'invocation' ( temp uint) -0:32 Constant: -0:32 2 (const int) -0:32 subgroupClusteredAdd ( global 4-component vector of uint) -0:32 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 Constant: -0:32 3 (const int) -0:32 Constant: -0:32 2 (const int) -0:32 Constant: -0:32 1 (const uint) -0:34 move second child to first child ( temp double) -0:34 direct index ( temp double) -0:34 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:34 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'invocation' ( temp uint) -0:34 Constant: -0:34 3 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 subgroupClusteredAdd ( global double) -0:34 direct index ( temp double) -0:34 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 3 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 1 (const uint) -0:35 move second child to first child ( temp 2-component vector of double) -0:35 vector swizzle ( temp 2-component vector of double) -0:35 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:35 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 'invocation' ( temp uint) -0:35 Constant: -0:35 3 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 subgroupClusteredAdd ( global 2-component vector of double) -0:35 vector swizzle ( temp 2-component vector of double) -0:35 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 3 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 1 (const uint) -0:36 move second child to first child ( temp 3-component vector of double) -0:36 vector swizzle ( temp 3-component vector of double) -0:36 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:36 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'invocation' ( temp uint) -0:36 Constant: -0:36 3 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 2 (const int) -0:36 subgroupClusteredAdd ( global 3-component vector of double) -0:36 vector swizzle ( temp 3-component vector of double) -0:36 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 Constant: -0:36 2 (const int) -0:36 Constant: -0:36 3 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 2 (const int) -0:36 Constant: -0:36 1 (const uint) -0:37 move second child to first child ( temp 4-component vector of double) -0:37 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:37 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'invocation' ( temp uint) -0:37 Constant: -0:37 3 (const int) -0:37 subgroupClusteredAdd ( global 4-component vector of double) -0:37 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:37 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 Constant: -0:37 3 (const int) -0:37 Constant: -0:37 3 (const int) -0:37 Constant: -0:37 1 (const uint) -0:39 move second child to first child ( temp float) -0:39 direct index ( temp float) -0:39 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:39 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'invocation' ( temp uint) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 subgroupClusteredMul ( global float) -0:39 direct index ( temp float) -0:39 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const uint) -0:40 move second child to first child ( temp 2-component vector of float) -0:40 vector swizzle ( temp 2-component vector of float) -0:40 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:40 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 'invocation' ( temp uint) -0:40 Constant: -0:40 0 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 subgroupClusteredMul ( global 2-component vector of float) -0:40 vector swizzle ( temp 2-component vector of float) -0:40 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 1 (const uint) -0:41 move second child to first child ( temp 3-component vector of float) -0:41 vector swizzle ( temp 3-component vector of float) -0:41 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:41 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'invocation' ( temp uint) -0:41 Constant: -0:41 0 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 2 (const int) -0:41 subgroupClusteredMul ( global 3-component vector of float) -0:41 vector swizzle ( temp 3-component vector of float) -0:41 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 Constant: -0:41 2 (const int) -0:41 Constant: -0:41 0 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 2 (const int) -0:41 Constant: -0:41 1 (const uint) -0:42 move second child to first child ( temp 4-component vector of float) -0:42 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:42 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'invocation' ( temp uint) -0:42 Constant: -0:42 0 (const int) -0:42 subgroupClusteredMul ( global 4-component vector of float) -0:42 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:42 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 Constant: -0:42 3 (const int) -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const uint) -0:44 move second child to first child ( temp int) -0:44 direct index ( temp int) -0:44 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:44 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'invocation' ( temp uint) -0:44 Constant: -0:44 1 (const int) -0:44 Constant: -0:44 0 (const int) -0:44 subgroupClusteredMul ( global int) -0:44 direct index ( temp int) -0:44 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 1 (const int) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 1 (const uint) -0:45 move second child to first child ( temp 2-component vector of int) -0:45 vector swizzle ( temp 2-component vector of int) -0:45 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:45 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 'invocation' ( temp uint) -0:45 Constant: -0:45 1 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 subgroupClusteredMul ( global 2-component vector of int) -0:45 vector swizzle ( temp 2-component vector of int) -0:45 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 1 (const uint) -0:46 move second child to first child ( temp 3-component vector of int) -0:46 vector swizzle ( temp 3-component vector of int) -0:46 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:46 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'invocation' ( temp uint) -0:46 Constant: -0:46 1 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 subgroupClusteredMul ( global 3-component vector of int) -0:46 vector swizzle ( temp 3-component vector of int) -0:46 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 Constant: -0:46 2 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 Constant: -0:46 1 (const uint) -0:47 move second child to first child ( temp 4-component vector of int) -0:47 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:47 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'invocation' ( temp uint) -0:47 Constant: -0:47 1 (const int) -0:47 subgroupClusteredMul ( global 4-component vector of int) -0:47 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:47 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 Constant: -0:47 3 (const int) -0:47 Constant: -0:47 1 (const int) -0:47 Constant: -0:47 1 (const uint) -0:49 move second child to first child ( temp uint) -0:49 direct index ( temp uint) -0:49 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:49 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'invocation' ( temp uint) -0:49 Constant: -0:49 2 (const int) -0:49 Constant: -0:49 0 (const int) -0:49 subgroupClusteredMul ( global uint) -0:49 direct index ( temp uint) -0:49 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:49 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 2 (const int) -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 1 (const uint) -0:50 move second child to first child ( temp 2-component vector of uint) -0:50 vector swizzle ( temp 2-component vector of uint) -0:50 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:50 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 'invocation' ( temp uint) -0:50 Constant: -0:50 2 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 subgroupClusteredMul ( global 2-component vector of uint) -0:50 vector swizzle ( temp 2-component vector of uint) -0:50 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 1 (const uint) -0:51 move second child to first child ( temp 3-component vector of uint) -0:51 vector swizzle ( temp 3-component vector of uint) -0:51 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:51 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'invocation' ( temp uint) -0:51 Constant: -0:51 2 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 2 (const int) -0:51 subgroupClusteredMul ( global 3-component vector of uint) -0:51 vector swizzle ( temp 3-component vector of uint) -0:51 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 Constant: -0:51 2 (const int) -0:51 Constant: -0:51 2 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 2 (const int) -0:51 Constant: -0:51 1 (const uint) -0:52 move second child to first child ( temp 4-component vector of uint) -0:52 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:52 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'invocation' ( temp uint) -0:52 Constant: -0:52 2 (const int) -0:52 subgroupClusteredMul ( global 4-component vector of uint) -0:52 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:52 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 Constant: -0:52 3 (const int) -0:52 Constant: -0:52 2 (const int) -0:52 Constant: -0:52 1 (const uint) -0:54 move second child to first child ( temp double) -0:54 direct index ( temp double) -0:54 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:54 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'invocation' ( temp uint) -0:54 Constant: -0:54 3 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 subgroupClusteredMul ( global double) -0:54 direct index ( temp double) -0:54 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:54 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 3 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 1 (const uint) -0:55 move second child to first child ( temp 2-component vector of double) -0:55 vector swizzle ( temp 2-component vector of double) -0:55 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:55 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 'invocation' ( temp uint) -0:55 Constant: -0:55 3 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 subgroupClusteredMul ( global 2-component vector of double) -0:55 vector swizzle ( temp 2-component vector of double) -0:55 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 3 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 1 (const uint) -0:56 move second child to first child ( temp 3-component vector of double) -0:56 vector swizzle ( temp 3-component vector of double) -0:56 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:56 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'invocation' ( temp uint) -0:56 Constant: -0:56 3 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 2 (const int) -0:56 subgroupClusteredMul ( global 3-component vector of double) -0:56 vector swizzle ( temp 3-component vector of double) -0:56 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 Constant: -0:56 2 (const int) -0:56 Constant: -0:56 3 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 2 (const int) -0:56 Constant: -0:56 1 (const uint) -0:57 move second child to first child ( temp 4-component vector of double) -0:57 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:57 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'invocation' ( temp uint) -0:57 Constant: -0:57 3 (const int) -0:57 subgroupClusteredMul ( global 4-component vector of double) -0:57 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:57 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 Constant: -0:57 3 (const int) -0:57 Constant: -0:57 3 (const int) -0:57 Constant: -0:57 1 (const uint) -0:59 move second child to first child ( temp float) -0:59 direct index ( temp float) -0:59 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:59 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 'invocation' ( temp uint) -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 0 (const int) -0:59 subgroupClusteredMin ( global float) -0:59 direct index ( temp float) -0:59 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:59 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 1 (const uint) -0:60 move second child to first child ( temp 2-component vector of float) -0:60 vector swizzle ( temp 2-component vector of float) -0:60 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:60 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 'invocation' ( temp uint) -0:60 Constant: -0:60 0 (const int) -0:60 Sequence -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 subgroupClusteredMin ( global 2-component vector of float) -0:60 vector swizzle ( temp 2-component vector of float) -0:60 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:60 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 0 (const int) -0:60 Sequence -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 1 (const uint) -0:61 move second child to first child ( temp 3-component vector of float) -0:61 vector swizzle ( temp 3-component vector of float) -0:61 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:61 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'invocation' ( temp uint) -0:61 Constant: -0:61 0 (const int) -0:61 Sequence -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 Constant: -0:61 2 (const int) -0:61 subgroupClusteredMin ( global 3-component vector of float) -0:61 vector swizzle ( temp 3-component vector of float) -0:61 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:61 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 Constant: -0:61 2 (const int) -0:61 Constant: -0:61 0 (const int) -0:61 Sequence -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 Constant: -0:61 2 (const int) -0:61 Constant: -0:61 1 (const uint) -0:62 move second child to first child ( temp 4-component vector of float) -0:62 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:62 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'invocation' ( temp uint) -0:62 Constant: -0:62 0 (const int) -0:62 subgroupClusteredMin ( global 4-component vector of float) -0:62 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:62 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 Constant: -0:62 3 (const int) -0:62 Constant: -0:62 0 (const int) -0:62 Constant: -0:62 1 (const uint) -0:64 move second child to first child ( temp int) -0:64 direct index ( temp int) -0:64 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:64 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'invocation' ( temp uint) -0:64 Constant: -0:64 1 (const int) -0:64 Constant: -0:64 0 (const int) -0:64 subgroupClusteredMin ( global int) -0:64 direct index ( temp int) -0:64 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:64 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 Constant: -0:64 0 (const int) -0:64 Constant: -0:64 1 (const int) -0:64 Constant: -0:64 0 (const int) -0:64 Constant: -0:64 1 (const uint) -0:65 move second child to first child ( temp 2-component vector of int) -0:65 vector swizzle ( temp 2-component vector of int) -0:65 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:65 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 'invocation' ( temp uint) -0:65 Constant: -0:65 1 (const int) -0:65 Sequence -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 subgroupClusteredMin ( global 2-component vector of int) -0:65 vector swizzle ( temp 2-component vector of int) -0:65 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:65 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 Constant: -0:65 1 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Sequence -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Constant: -0:65 1 (const uint) -0:66 move second child to first child ( temp 3-component vector of int) -0:66 vector swizzle ( temp 3-component vector of int) -0:66 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:66 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'invocation' ( temp uint) -0:66 Constant: -0:66 1 (const int) -0:66 Sequence -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 2 (const int) -0:66 subgroupClusteredMin ( global 3-component vector of int) -0:66 vector swizzle ( temp 3-component vector of int) -0:66 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:66 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 Constant: -0:66 2 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 Sequence -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 2 (const int) -0:66 Constant: -0:66 1 (const uint) -0:67 move second child to first child ( temp 4-component vector of int) -0:67 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:67 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'invocation' ( temp uint) -0:67 Constant: -0:67 1 (const int) -0:67 subgroupClusteredMin ( global 4-component vector of int) -0:67 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:67 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 Constant: -0:67 3 (const int) -0:67 Constant: -0:67 1 (const int) -0:67 Constant: -0:67 1 (const uint) -0:69 move second child to first child ( temp uint) -0:69 direct index ( temp uint) -0:69 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:69 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 'invocation' ( temp uint) -0:69 Constant: -0:69 2 (const int) -0:69 Constant: -0:69 0 (const int) -0:69 subgroupClusteredMin ( global uint) -0:69 direct index ( temp uint) -0:69 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:69 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 Constant: -0:69 0 (const int) -0:69 Constant: -0:69 2 (const int) -0:69 Constant: -0:69 0 (const int) -0:69 Constant: -0:69 1 (const uint) -0:70 move second child to first child ( temp 2-component vector of uint) -0:70 vector swizzle ( temp 2-component vector of uint) -0:70 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:70 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:70 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:70 'invocation' ( temp uint) -0:70 Constant: -0:70 2 (const int) -0:70 Sequence -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 1 (const int) -0:70 subgroupClusteredMin ( global 2-component vector of uint) -0:70 vector swizzle ( temp 2-component vector of uint) -0:70 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:70 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:70 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:70 Constant: -0:70 1 (const int) -0:70 Constant: -0:70 2 (const int) -0:70 Sequence -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 1 (const int) -0:70 Constant: -0:70 1 (const uint) -0:71 move second child to first child ( temp 3-component vector of uint) -0:71 vector swizzle ( temp 3-component vector of uint) -0:71 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:71 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:71 'invocation' ( temp uint) -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 2 (const int) -0:71 subgroupClusteredMin ( global 3-component vector of uint) -0:71 vector swizzle ( temp 3-component vector of uint) -0:71 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:71 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:71 Constant: -0:71 2 (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 2 (const int) -0:71 Constant: -0:71 1 (const uint) -0:72 move second child to first child ( temp 4-component vector of uint) -0:72 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:72 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 'invocation' ( temp uint) -0:72 Constant: -0:72 2 (const int) -0:72 subgroupClusteredMin ( global 4-component vector of uint) -0:72 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:72 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 Constant: -0:72 3 (const int) -0:72 Constant: -0:72 2 (const int) -0:72 Constant: -0:72 1 (const uint) -0:74 move second child to first child ( temp double) -0:74 direct index ( temp double) -0:74 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:74 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 'invocation' ( temp uint) -0:74 Constant: -0:74 3 (const int) -0:74 Constant: -0:74 0 (const int) -0:74 subgroupClusteredMin ( global double) -0:74 direct index ( temp double) -0:74 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:74 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 Constant: -0:74 0 (const int) -0:74 Constant: -0:74 3 (const int) -0:74 Constant: -0:74 0 (const int) -0:74 Constant: -0:74 1 (const uint) -0:75 move second child to first child ( temp 2-component vector of double) -0:75 vector swizzle ( temp 2-component vector of double) -0:75 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:75 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:75 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:75 'invocation' ( temp uint) -0:75 Constant: -0:75 3 (const int) -0:75 Sequence -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 1 (const int) -0:75 subgroupClusteredMin ( global 2-component vector of double) -0:75 vector swizzle ( temp 2-component vector of double) -0:75 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:75 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:75 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:75 Constant: -0:75 1 (const int) -0:75 Constant: -0:75 3 (const int) -0:75 Sequence -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 1 (const int) -0:75 Constant: -0:75 1 (const uint) -0:76 move second child to first child ( temp 3-component vector of double) -0:76 vector swizzle ( temp 3-component vector of double) -0:76 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:76 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 'invocation' ( temp uint) -0:76 Constant: -0:76 3 (const int) -0:76 Sequence -0:76 Constant: -0:76 0 (const int) -0:76 Constant: -0:76 1 (const int) -0:76 Constant: -0:76 2 (const int) -0:76 subgroupClusteredMin ( global 3-component vector of double) -0:76 vector swizzle ( temp 3-component vector of double) -0:76 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:76 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 Constant: -0:76 2 (const int) -0:76 Constant: -0:76 3 (const int) -0:76 Sequence -0:76 Constant: -0:76 0 (const int) -0:76 Constant: -0:76 1 (const int) -0:76 Constant: -0:76 2 (const int) -0:76 Constant: -0:76 1 (const uint) -0:77 move second child to first child ( temp 4-component vector of double) -0:77 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:77 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 'invocation' ( temp uint) -0:77 Constant: -0:77 3 (const int) -0:77 subgroupClusteredMin ( global 4-component vector of double) -0:77 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:77 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 Constant: -0:77 3 (const int) -0:77 Constant: -0:77 3 (const int) -0:77 Constant: -0:77 1 (const uint) -0:79 move second child to first child ( temp float) -0:79 direct index ( temp float) -0:79 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:79 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 'invocation' ( temp uint) -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 0 (const int) -0:79 subgroupClusteredMax ( global float) -0:79 direct index ( temp float) -0:79 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:79 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 1 (const uint) -0:80 move second child to first child ( temp 2-component vector of float) -0:80 vector swizzle ( temp 2-component vector of float) -0:80 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:80 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:80 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:80 'invocation' ( temp uint) -0:80 Constant: -0:80 0 (const int) -0:80 Sequence -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 1 (const int) -0:80 subgroupClusteredMax ( global 2-component vector of float) -0:80 vector swizzle ( temp 2-component vector of float) -0:80 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:80 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:80 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:80 Constant: -0:80 1 (const int) -0:80 Constant: -0:80 0 (const int) -0:80 Sequence -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 1 (const int) -0:80 Constant: -0:80 1 (const uint) -0:81 move second child to first child ( temp 3-component vector of float) -0:81 vector swizzle ( temp 3-component vector of float) -0:81 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:81 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 'invocation' ( temp uint) -0:81 Constant: -0:81 0 (const int) -0:81 Sequence -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 1 (const int) -0:81 Constant: -0:81 2 (const int) -0:81 subgroupClusteredMax ( global 3-component vector of float) -0:81 vector swizzle ( temp 3-component vector of float) -0:81 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:81 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 Constant: -0:81 2 (const int) -0:81 Constant: -0:81 0 (const int) -0:81 Sequence -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 1 (const int) -0:81 Constant: -0:81 2 (const int) -0:81 Constant: -0:81 1 (const uint) -0:82 move second child to first child ( temp 4-component vector of float) -0:82 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:82 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 'invocation' ( temp uint) -0:82 Constant: -0:82 0 (const int) -0:82 subgroupClusteredMax ( global 4-component vector of float) -0:82 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:82 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 Constant: -0:82 3 (const int) -0:82 Constant: -0:82 0 (const int) -0:82 Constant: -0:82 1 (const uint) -0:84 move second child to first child ( temp int) -0:84 direct index ( temp int) -0:84 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:84 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 'invocation' ( temp uint) -0:84 Constant: -0:84 1 (const int) -0:84 Constant: -0:84 0 (const int) -0:84 subgroupClusteredMax ( global int) -0:84 direct index ( temp int) -0:84 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:84 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 Constant: -0:84 0 (const int) -0:84 Constant: -0:84 1 (const int) -0:84 Constant: -0:84 0 (const int) -0:84 Constant: -0:84 1 (const uint) -0:85 move second child to first child ( temp 2-component vector of int) -0:85 vector swizzle ( temp 2-component vector of int) -0:85 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:85 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:85 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:85 'invocation' ( temp uint) -0:85 Constant: -0:85 1 (const int) -0:85 Sequence -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 1 (const int) -0:85 subgroupClusteredMax ( global 2-component vector of int) -0:85 vector swizzle ( temp 2-component vector of int) -0:85 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:85 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:85 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:85 Constant: -0:85 1 (const int) -0:85 Constant: -0:85 1 (const int) -0:85 Sequence -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 1 (const int) -0:85 Constant: -0:85 1 (const uint) -0:86 move second child to first child ( temp 3-component vector of int) -0:86 vector swizzle ( temp 3-component vector of int) -0:86 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:86 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:86 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:86 'invocation' ( temp uint) -0:86 Constant: -0:86 1 (const int) -0:86 Sequence -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 1 (const int) -0:86 Constant: -0:86 2 (const int) -0:86 subgroupClusteredMax ( global 3-component vector of int) -0:86 vector swizzle ( temp 3-component vector of int) -0:86 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:86 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:86 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:86 Constant: -0:86 2 (const int) -0:86 Constant: -0:86 1 (const int) -0:86 Sequence -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 1 (const int) -0:86 Constant: -0:86 2 (const int) -0:86 Constant: -0:86 1 (const uint) -0:87 move second child to first child ( temp 4-component vector of int) -0:87 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:87 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:87 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:87 'invocation' ( temp uint) -0:87 Constant: -0:87 1 (const int) -0:87 subgroupClusteredMax ( global 4-component vector of int) -0:87 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:87 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:87 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:87 Constant: -0:87 3 (const int) -0:87 Constant: -0:87 1 (const int) -0:87 Constant: -0:87 1 (const uint) -0:89 move second child to first child ( temp uint) -0:89 direct index ( temp uint) -0:89 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:89 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:89 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:89 'invocation' ( temp uint) -0:89 Constant: -0:89 2 (const int) -0:89 Constant: -0:89 0 (const int) -0:89 subgroupClusteredMax ( global uint) -0:89 direct index ( temp uint) -0:89 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:89 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:89 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:89 Constant: -0:89 0 (const int) -0:89 Constant: -0:89 2 (const int) -0:89 Constant: -0:89 0 (const int) -0:89 Constant: -0:89 1 (const uint) -0:90 move second child to first child ( temp 2-component vector of uint) -0:90 vector swizzle ( temp 2-component vector of uint) -0:90 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:90 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:90 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:90 'invocation' ( temp uint) -0:90 Constant: -0:90 2 (const int) -0:90 Sequence -0:90 Constant: -0:90 0 (const int) -0:90 Constant: -0:90 1 (const int) -0:90 subgroupClusteredMax ( global 2-component vector of uint) -0:90 vector swizzle ( temp 2-component vector of uint) -0:90 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:90 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:90 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:90 Constant: -0:90 1 (const int) -0:90 Constant: -0:90 2 (const int) -0:90 Sequence -0:90 Constant: -0:90 0 (const int) -0:90 Constant: -0:90 1 (const int) -0:90 Constant: -0:90 1 (const uint) -0:91 move second child to first child ( temp 3-component vector of uint) -0:91 vector swizzle ( temp 3-component vector of uint) -0:91 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:91 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:91 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:91 'invocation' ( temp uint) -0:91 Constant: -0:91 2 (const int) -0:91 Sequence -0:91 Constant: -0:91 0 (const int) -0:91 Constant: -0:91 1 (const int) -0:91 Constant: -0:91 2 (const int) -0:91 subgroupClusteredMax ( global 3-component vector of uint) -0:91 vector swizzle ( temp 3-component vector of uint) -0:91 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:91 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:91 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:91 Constant: -0:91 2 (const int) -0:91 Constant: -0:91 2 (const int) -0:91 Sequence -0:91 Constant: -0:91 0 (const int) -0:91 Constant: -0:91 1 (const int) -0:91 Constant: -0:91 2 (const int) -0:91 Constant: -0:91 1 (const uint) -0:92 move second child to first child ( temp 4-component vector of uint) -0:92 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:92 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:92 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:92 'invocation' ( temp uint) -0:92 Constant: -0:92 2 (const int) -0:92 subgroupClusteredMax ( global 4-component vector of uint) -0:92 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:92 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:92 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:92 Constant: -0:92 3 (const int) -0:92 Constant: -0:92 2 (const int) -0:92 Constant: -0:92 1 (const uint) -0:94 move second child to first child ( temp double) -0:94 direct index ( temp double) -0:94 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:94 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:94 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:94 'invocation' ( temp uint) -0:94 Constant: -0:94 3 (const int) -0:94 Constant: -0:94 0 (const int) -0:94 subgroupClusteredMax ( global double) -0:94 direct index ( temp double) -0:94 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:94 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:94 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:94 Constant: -0:94 0 (const int) -0:94 Constant: -0:94 3 (const int) -0:94 Constant: -0:94 0 (const int) -0:94 Constant: -0:94 1 (const uint) -0:95 move second child to first child ( temp 2-component vector of double) -0:95 vector swizzle ( temp 2-component vector of double) -0:95 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:95 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:95 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:95 'invocation' ( temp uint) -0:95 Constant: -0:95 3 (const int) -0:95 Sequence -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 1 (const int) -0:95 subgroupClusteredMax ( global 2-component vector of double) -0:95 vector swizzle ( temp 2-component vector of double) -0:95 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:95 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:95 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:95 Constant: -0:95 1 (const int) -0:95 Constant: -0:95 3 (const int) -0:95 Sequence -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 1 (const int) -0:95 Constant: -0:95 1 (const uint) -0:96 move second child to first child ( temp 3-component vector of double) -0:96 vector swizzle ( temp 3-component vector of double) -0:96 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:96 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:96 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:96 'invocation' ( temp uint) -0:96 Constant: -0:96 3 (const int) -0:96 Sequence -0:96 Constant: -0:96 0 (const int) -0:96 Constant: -0:96 1 (const int) -0:96 Constant: -0:96 2 (const int) -0:96 subgroupClusteredMax ( global 3-component vector of double) -0:96 vector swizzle ( temp 3-component vector of double) -0:96 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:96 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:96 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:96 Constant: -0:96 2 (const int) -0:96 Constant: -0:96 3 (const int) -0:96 Sequence -0:96 Constant: -0:96 0 (const int) -0:96 Constant: -0:96 1 (const int) -0:96 Constant: -0:96 2 (const int) -0:96 Constant: -0:96 1 (const uint) -0:97 move second child to first child ( temp 4-component vector of double) -0:97 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:97 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:97 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:97 'invocation' ( temp uint) -0:97 Constant: -0:97 3 (const int) -0:97 subgroupClusteredMax ( global 4-component vector of double) -0:97 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:97 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:97 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:97 Constant: -0:97 3 (const int) -0:97 Constant: -0:97 3 (const int) -0:97 Constant: -0:97 1 (const uint) -0:99 move second child to first child ( temp int) -0:99 direct index ( temp int) -0:99 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:99 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:99 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:99 'invocation' ( temp uint) -0:99 Constant: -0:99 1 (const int) -0:99 Constant: -0:99 0 (const int) -0:99 subgroupClusteredAnd ( global int) -0:99 direct index ( temp int) -0:99 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:99 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:99 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:99 Constant: -0:99 0 (const int) -0:99 Constant: -0:99 1 (const int) -0:99 Constant: -0:99 0 (const int) -0:99 Constant: -0:99 1 (const uint) -0:100 move second child to first child ( temp 2-component vector of int) -0:100 vector swizzle ( temp 2-component vector of int) -0:100 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:100 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:100 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:100 'invocation' ( temp uint) -0:100 Constant: -0:100 1 (const int) -0:100 Sequence -0:100 Constant: -0:100 0 (const int) -0:100 Constant: -0:100 1 (const int) -0:100 subgroupClusteredAnd ( global 2-component vector of int) -0:100 vector swizzle ( temp 2-component vector of int) -0:100 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:100 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:100 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:100 Constant: -0:100 1 (const int) -0:100 Constant: -0:100 1 (const int) -0:100 Sequence -0:100 Constant: -0:100 0 (const int) -0:100 Constant: -0:100 1 (const int) -0:100 Constant: -0:100 1 (const uint) -0:101 move second child to first child ( temp 3-component vector of int) -0:101 vector swizzle ( temp 3-component vector of int) -0:101 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:101 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:101 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:101 'invocation' ( temp uint) -0:101 Constant: -0:101 1 (const int) -0:101 Sequence -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 1 (const int) -0:101 Constant: -0:101 2 (const int) -0:101 subgroupClusteredAnd ( global 3-component vector of int) -0:101 vector swizzle ( temp 3-component vector of int) -0:101 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:101 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:101 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:101 Constant: -0:101 2 (const int) -0:101 Constant: -0:101 1 (const int) -0:101 Sequence -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 1 (const int) -0:101 Constant: -0:101 2 (const int) -0:101 Constant: -0:101 1 (const uint) -0:102 move second child to first child ( temp 4-component vector of int) -0:102 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:102 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:102 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:102 'invocation' ( temp uint) -0:102 Constant: -0:102 1 (const int) -0:102 subgroupClusteredAnd ( global 4-component vector of int) -0:102 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:102 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:102 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:102 Constant: -0:102 3 (const int) -0:102 Constant: -0:102 1 (const int) -0:102 Constant: -0:102 1 (const uint) -0:104 move second child to first child ( temp uint) -0:104 direct index ( temp uint) -0:104 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:104 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:104 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:104 'invocation' ( temp uint) -0:104 Constant: -0:104 2 (const int) -0:104 Constant: -0:104 0 (const int) -0:104 subgroupClusteredAnd ( global uint) -0:104 direct index ( temp uint) -0:104 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:104 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:104 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:104 Constant: -0:104 0 (const int) -0:104 Constant: -0:104 2 (const int) -0:104 Constant: -0:104 0 (const int) -0:104 Constant: -0:104 1 (const uint) -0:105 move second child to first child ( temp 2-component vector of uint) -0:105 vector swizzle ( temp 2-component vector of uint) -0:105 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:105 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:105 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:105 'invocation' ( temp uint) -0:105 Constant: -0:105 2 (const int) -0:105 Sequence -0:105 Constant: -0:105 0 (const int) -0:105 Constant: -0:105 1 (const int) -0:105 subgroupClusteredAnd ( global 2-component vector of uint) -0:105 vector swizzle ( temp 2-component vector of uint) -0:105 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:105 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:105 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:105 Constant: -0:105 1 (const int) -0:105 Constant: -0:105 2 (const int) -0:105 Sequence -0:105 Constant: -0:105 0 (const int) -0:105 Constant: -0:105 1 (const int) -0:105 Constant: -0:105 1 (const uint) -0:106 move second child to first child ( temp 3-component vector of uint) -0:106 vector swizzle ( temp 3-component vector of uint) -0:106 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:106 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:106 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:106 'invocation' ( temp uint) -0:106 Constant: -0:106 2 (const int) -0:106 Sequence -0:106 Constant: -0:106 0 (const int) -0:106 Constant: -0:106 1 (const int) -0:106 Constant: -0:106 2 (const int) -0:106 subgroupClusteredAnd ( global 3-component vector of uint) -0:106 vector swizzle ( temp 3-component vector of uint) -0:106 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:106 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:106 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:106 Constant: -0:106 2 (const int) -0:106 Constant: -0:106 2 (const int) -0:106 Sequence -0:106 Constant: -0:106 0 (const int) -0:106 Constant: -0:106 1 (const int) -0:106 Constant: -0:106 2 (const int) -0:106 Constant: -0:106 1 (const uint) -0:107 move second child to first child ( temp 4-component vector of uint) -0:107 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:107 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:107 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:107 'invocation' ( temp uint) -0:107 Constant: -0:107 2 (const int) -0:107 subgroupClusteredAnd ( global 4-component vector of uint) -0:107 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:107 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:107 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:107 Constant: -0:107 3 (const int) -0:107 Constant: -0:107 2 (const int) -0:107 Constant: -0:107 1 (const uint) -0:109 move second child to first child ( temp int) -0:109 direct index ( temp int) -0:109 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:109 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:109 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:109 'invocation' ( temp uint) -0:109 Constant: -0:109 1 (const int) -0:109 Constant: -0:109 0 (const int) -0:109 Convert bool to int ( temp int) -0:109 subgroupClusteredAnd ( global bool) -0:109 Compare Less Than ( temp bool) -0:109 direct index ( temp int) -0:109 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:109 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:109 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:109 Constant: -0:109 0 (const int) -0:109 Constant: -0:109 1 (const int) -0:109 Constant: -0:109 0 (const int) -0:109 Constant: -0:109 0 (const int) -0:109 Constant: -0:109 1 (const uint) -0:110 move second child to first child ( temp 2-component vector of int) -0:110 vector swizzle ( temp 2-component vector of int) -0:110 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:110 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:110 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:110 'invocation' ( temp uint) -0:110 Constant: -0:110 1 (const int) -0:110 Sequence -0:110 Constant: -0:110 0 (const int) -0:110 Constant: -0:110 1 (const int) -0:110 Convert bool to int ( temp 2-component vector of int) -0:110 subgroupClusteredAnd ( global 2-component vector of bool) -0:110 Compare Less Than ( global 2-component vector of bool) -0:110 vector swizzle ( temp 2-component vector of int) -0:110 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:110 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:110 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:110 Constant: -0:110 1 (const int) -0:110 Constant: -0:110 1 (const int) -0:110 Sequence -0:110 Constant: -0:110 0 (const int) -0:110 Constant: -0:110 1 (const int) -0:110 Constant: -0:110 0 (const int) -0:110 0 (const int) -0:110 Constant: -0:110 1 (const uint) -0:111 move second child to first child ( temp 3-component vector of int) -0:111 vector swizzle ( temp 3-component vector of int) -0:111 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:111 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:111 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:111 'invocation' ( temp uint) -0:111 Constant: -0:111 1 (const int) -0:111 Sequence -0:111 Constant: -0:111 0 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 Constant: -0:111 2 (const int) -0:111 Convert bool to int ( temp 3-component vector of int) -0:111 subgroupClusteredAnd ( global 3-component vector of bool) -0:111 Compare Less Than ( global 3-component vector of bool) -0:111 vector swizzle ( temp 3-component vector of int) -0:111 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:111 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:111 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:111 Constant: -0:111 1 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 Sequence -0:111 Constant: -0:111 0 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 Constant: -0:111 2 (const int) -0:111 Constant: -0:111 0 (const int) -0:111 0 (const int) -0:111 0 (const int) -0:111 Constant: -0:111 1 (const uint) -0:112 move second child to first child ( temp 4-component vector of int) -0:112 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:112 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:112 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:112 'invocation' ( temp uint) -0:112 Constant: -0:112 1 (const int) -0:112 Convert bool to int ( temp 4-component vector of int) -0:112 subgroupClusteredAnd ( global 4-component vector of bool) -0:112 Compare Less Than ( global 4-component vector of bool) -0:112 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:112 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:112 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:112 Constant: -0:112 1 (const int) -0:112 Constant: -0:112 1 (const int) -0:112 Constant: -0:112 0 (const int) -0:112 0 (const int) -0:112 0 (const int) -0:112 0 (const int) -0:112 Constant: -0:112 1 (const uint) -0:114 move second child to first child ( temp int) -0:114 direct index ( temp int) -0:114 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:114 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:114 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:114 'invocation' ( temp uint) -0:114 Constant: -0:114 1 (const int) -0:114 Constant: -0:114 0 (const int) -0:114 subgroupClusteredOr ( global int) -0:114 direct index ( temp int) -0:114 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:114 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:114 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:114 Constant: -0:114 0 (const int) -0:114 Constant: -0:114 1 (const int) -0:114 Constant: -0:114 0 (const int) -0:114 Constant: -0:114 1 (const uint) -0:115 move second child to first child ( temp 2-component vector of int) -0:115 vector swizzle ( temp 2-component vector of int) -0:115 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:115 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:115 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:115 'invocation' ( temp uint) -0:115 Constant: -0:115 1 (const int) -0:115 Sequence -0:115 Constant: -0:115 0 (const int) -0:115 Constant: -0:115 1 (const int) -0:115 subgroupClusteredOr ( global 2-component vector of int) -0:115 vector swizzle ( temp 2-component vector of int) -0:115 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:115 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:115 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:115 Constant: -0:115 1 (const int) -0:115 Constant: -0:115 1 (const int) -0:115 Sequence -0:115 Constant: -0:115 0 (const int) -0:115 Constant: -0:115 1 (const int) -0:115 Constant: -0:115 1 (const uint) -0:116 move second child to first child ( temp 3-component vector of int) -0:116 vector swizzle ( temp 3-component vector of int) -0:116 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:116 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:116 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:116 'invocation' ( temp uint) -0:116 Constant: -0:116 1 (const int) -0:116 Sequence -0:116 Constant: -0:116 0 (const int) -0:116 Constant: -0:116 1 (const int) -0:116 Constant: -0:116 2 (const int) -0:116 subgroupClusteredOr ( global 3-component vector of int) -0:116 vector swizzle ( temp 3-component vector of int) -0:116 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:116 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:116 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:116 Constant: -0:116 2 (const int) -0:116 Constant: -0:116 1 (const int) -0:116 Sequence -0:116 Constant: -0:116 0 (const int) -0:116 Constant: -0:116 1 (const int) -0:116 Constant: -0:116 2 (const int) -0:116 Constant: -0:116 1 (const uint) -0:117 move second child to first child ( temp 4-component vector of int) -0:117 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:117 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:117 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:117 'invocation' ( temp uint) -0:117 Constant: -0:117 1 (const int) -0:117 subgroupClusteredOr ( global 4-component vector of int) -0:117 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:117 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:117 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:117 Constant: -0:117 3 (const int) -0:117 Constant: -0:117 1 (const int) -0:117 Constant: -0:117 1 (const uint) -0:119 move second child to first child ( temp uint) -0:119 direct index ( temp uint) -0:119 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:119 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:119 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:119 'invocation' ( temp uint) -0:119 Constant: -0:119 2 (const int) -0:119 Constant: -0:119 0 (const int) -0:119 subgroupClusteredOr ( global uint) -0:119 direct index ( temp uint) -0:119 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:119 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:119 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:119 Constant: -0:119 0 (const int) -0:119 Constant: -0:119 2 (const int) -0:119 Constant: -0:119 0 (const int) -0:119 Constant: -0:119 1 (const uint) -0:120 move second child to first child ( temp 2-component vector of uint) -0:120 vector swizzle ( temp 2-component vector of uint) -0:120 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:120 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:120 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:120 'invocation' ( temp uint) -0:120 Constant: -0:120 2 (const int) -0:120 Sequence -0:120 Constant: -0:120 0 (const int) -0:120 Constant: -0:120 1 (const int) -0:120 subgroupClusteredOr ( global 2-component vector of uint) -0:120 vector swizzle ( temp 2-component vector of uint) -0:120 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:120 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:120 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:120 Constant: -0:120 1 (const int) -0:120 Constant: -0:120 2 (const int) -0:120 Sequence -0:120 Constant: -0:120 0 (const int) -0:120 Constant: -0:120 1 (const int) -0:120 Constant: -0:120 1 (const uint) -0:121 move second child to first child ( temp 3-component vector of uint) -0:121 vector swizzle ( temp 3-component vector of uint) -0:121 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:121 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:121 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:121 'invocation' ( temp uint) -0:121 Constant: -0:121 2 (const int) -0:121 Sequence -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 1 (const int) -0:121 Constant: -0:121 2 (const int) -0:121 subgroupClusteredOr ( global 3-component vector of uint) -0:121 vector swizzle ( temp 3-component vector of uint) -0:121 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:121 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:121 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:121 Constant: -0:121 2 (const int) -0:121 Constant: -0:121 2 (const int) -0:121 Sequence -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 1 (const int) -0:121 Constant: -0:121 2 (const int) -0:121 Constant: -0:121 1 (const uint) -0:122 move second child to first child ( temp 4-component vector of uint) -0:122 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:122 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:122 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:122 'invocation' ( temp uint) -0:122 Constant: -0:122 2 (const int) -0:122 subgroupClusteredOr ( global 4-component vector of uint) -0:122 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:122 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:122 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:122 Constant: -0:122 3 (const int) -0:122 Constant: -0:122 2 (const int) -0:122 Constant: -0:122 1 (const uint) -0:124 move second child to first child ( temp int) -0:124 direct index ( temp int) -0:124 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:124 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:124 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:124 'invocation' ( temp uint) -0:124 Constant: -0:124 1 (const int) -0:124 Constant: -0:124 0 (const int) -0:124 Convert bool to int ( temp int) -0:124 subgroupClusteredOr ( global bool) -0:124 Compare Less Than ( temp bool) -0:124 direct index ( temp int) -0:124 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:124 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:124 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:124 Constant: -0:124 0 (const int) -0:124 Constant: -0:124 1 (const int) -0:124 Constant: -0:124 0 (const int) -0:124 Constant: -0:124 0 (const int) -0:124 Constant: -0:124 1 (const uint) -0:125 move second child to first child ( temp 2-component vector of int) -0:125 vector swizzle ( temp 2-component vector of int) -0:125 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:125 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:125 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:125 'invocation' ( temp uint) -0:125 Constant: -0:125 1 (const int) -0:125 Sequence -0:125 Constant: -0:125 0 (const int) -0:125 Constant: -0:125 1 (const int) -0:125 Convert bool to int ( temp 2-component vector of int) -0:125 subgroupClusteredOr ( global 2-component vector of bool) -0:125 Compare Less Than ( global 2-component vector of bool) -0:125 vector swizzle ( temp 2-component vector of int) -0:125 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:125 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:125 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:125 Constant: -0:125 1 (const int) -0:125 Constant: -0:125 1 (const int) -0:125 Sequence -0:125 Constant: -0:125 0 (const int) -0:125 Constant: -0:125 1 (const int) -0:125 Constant: -0:125 0 (const int) -0:125 0 (const int) -0:125 Constant: -0:125 1 (const uint) -0:126 move second child to first child ( temp 3-component vector of int) -0:126 vector swizzle ( temp 3-component vector of int) -0:126 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:126 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:126 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:126 'invocation' ( temp uint) -0:126 Constant: -0:126 1 (const int) -0:126 Sequence -0:126 Constant: -0:126 0 (const int) -0:126 Constant: -0:126 1 (const int) -0:126 Constant: -0:126 2 (const int) -0:126 Convert bool to int ( temp 3-component vector of int) -0:126 subgroupClusteredOr ( global 3-component vector of bool) -0:126 Compare Less Than ( global 3-component vector of bool) -0:126 vector swizzle ( temp 3-component vector of int) -0:126 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:126 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:126 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:126 Constant: -0:126 1 (const int) -0:126 Constant: -0:126 1 (const int) -0:126 Sequence -0:126 Constant: -0:126 0 (const int) -0:126 Constant: -0:126 1 (const int) -0:126 Constant: -0:126 2 (const int) -0:126 Constant: -0:126 0 (const int) -0:126 0 (const int) -0:126 0 (const int) -0:126 Constant: -0:126 1 (const uint) -0:127 move second child to first child ( temp 4-component vector of int) -0:127 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:127 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:127 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:127 'invocation' ( temp uint) -0:127 Constant: -0:127 1 (const int) -0:127 Convert bool to int ( temp 4-component vector of int) -0:127 subgroupClusteredOr ( global 4-component vector of bool) -0:127 Compare Less Than ( global 4-component vector of bool) -0:127 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:127 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:127 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:127 Constant: -0:127 1 (const int) -0:127 Constant: -0:127 1 (const int) -0:127 Constant: -0:127 0 (const int) -0:127 0 (const int) -0:127 0 (const int) -0:127 0 (const int) -0:127 Constant: -0:127 1 (const uint) -0:129 move second child to first child ( temp int) -0:129 direct index ( temp int) -0:129 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:129 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:129 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:129 'invocation' ( temp uint) -0:129 Constant: -0:129 1 (const int) -0:129 Constant: -0:129 0 (const int) -0:129 subgroupClusteredXor ( global int) -0:129 direct index ( temp int) -0:129 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:129 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:129 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:129 Constant: -0:129 0 (const int) -0:129 Constant: -0:129 1 (const int) -0:129 Constant: -0:129 0 (const int) -0:129 Constant: -0:129 1 (const uint) -0:130 move second child to first child ( temp 2-component vector of int) -0:130 vector swizzle ( temp 2-component vector of int) -0:130 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:130 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:130 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:130 'invocation' ( temp uint) -0:130 Constant: -0:130 1 (const int) -0:130 Sequence -0:130 Constant: -0:130 0 (const int) -0:130 Constant: -0:130 1 (const int) -0:130 subgroupClusteredXor ( global 2-component vector of int) -0:130 vector swizzle ( temp 2-component vector of int) -0:130 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:130 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:130 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:130 Constant: -0:130 1 (const int) -0:130 Constant: -0:130 1 (const int) -0:130 Sequence -0:130 Constant: -0:130 0 (const int) -0:130 Constant: -0:130 1 (const int) -0:130 Constant: -0:130 1 (const uint) -0:131 move second child to first child ( temp 3-component vector of int) -0:131 vector swizzle ( temp 3-component vector of int) -0:131 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:131 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:131 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:131 'invocation' ( temp uint) -0:131 Constant: -0:131 1 (const int) -0:131 Sequence -0:131 Constant: -0:131 0 (const int) -0:131 Constant: -0:131 1 (const int) -0:131 Constant: -0:131 2 (const int) -0:131 subgroupClusteredXor ( global 3-component vector of int) -0:131 vector swizzle ( temp 3-component vector of int) -0:131 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:131 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:131 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:131 Constant: -0:131 2 (const int) -0:131 Constant: -0:131 1 (const int) -0:131 Sequence -0:131 Constant: -0:131 0 (const int) -0:131 Constant: -0:131 1 (const int) -0:131 Constant: -0:131 2 (const int) -0:131 Constant: -0:131 1 (const uint) -0:132 move second child to first child ( temp 4-component vector of int) -0:132 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:132 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:132 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:132 'invocation' ( temp uint) -0:132 Constant: -0:132 1 (const int) -0:132 subgroupClusteredXor ( global 4-component vector of int) -0:132 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:132 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:132 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:132 Constant: -0:132 3 (const int) -0:132 Constant: -0:132 1 (const int) -0:132 Constant: -0:132 1 (const uint) -0:134 move second child to first child ( temp uint) -0:134 direct index ( temp uint) -0:134 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:134 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:134 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:134 'invocation' ( temp uint) -0:134 Constant: -0:134 2 (const int) -0:134 Constant: -0:134 0 (const int) -0:134 subgroupClusteredXor ( global uint) -0:134 direct index ( temp uint) -0:134 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:134 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:134 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:134 Constant: -0:134 0 (const int) -0:134 Constant: -0:134 2 (const int) -0:134 Constant: -0:134 0 (const int) -0:134 Constant: -0:134 1 (const uint) -0:135 move second child to first child ( temp 2-component vector of uint) -0:135 vector swizzle ( temp 2-component vector of uint) -0:135 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:135 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:135 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:135 'invocation' ( temp uint) -0:135 Constant: -0:135 2 (const int) -0:135 Sequence -0:135 Constant: -0:135 0 (const int) -0:135 Constant: -0:135 1 (const int) -0:135 subgroupClusteredXor ( global 2-component vector of uint) -0:135 vector swizzle ( temp 2-component vector of uint) -0:135 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:135 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:135 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:135 Constant: -0:135 1 (const int) -0:135 Constant: -0:135 2 (const int) -0:135 Sequence -0:135 Constant: -0:135 0 (const int) -0:135 Constant: -0:135 1 (const int) -0:135 Constant: -0:135 1 (const uint) -0:136 move second child to first child ( temp 3-component vector of uint) -0:136 vector swizzle ( temp 3-component vector of uint) -0:136 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:136 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:136 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:136 'invocation' ( temp uint) -0:136 Constant: -0:136 2 (const int) -0:136 Sequence -0:136 Constant: -0:136 0 (const int) -0:136 Constant: -0:136 1 (const int) -0:136 Constant: -0:136 2 (const int) -0:136 subgroupClusteredXor ( global 3-component vector of uint) -0:136 vector swizzle ( temp 3-component vector of uint) -0:136 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:136 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:136 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:136 Constant: -0:136 2 (const int) -0:136 Constant: -0:136 2 (const int) -0:136 Sequence -0:136 Constant: -0:136 0 (const int) -0:136 Constant: -0:136 1 (const int) -0:136 Constant: -0:136 2 (const int) -0:136 Constant: -0:136 1 (const uint) -0:137 move second child to first child ( temp 4-component vector of uint) -0:137 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:137 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:137 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:137 'invocation' ( temp uint) -0:137 Constant: -0:137 2 (const int) -0:137 subgroupClusteredXor ( global 4-component vector of uint) -0:137 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:137 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:137 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:137 Constant: -0:137 3 (const int) -0:137 Constant: -0:137 2 (const int) -0:137 Constant: -0:137 1 (const uint) -0:139 move second child to first child ( temp int) -0:139 direct index ( temp int) -0:139 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:139 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:139 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:139 'invocation' ( temp uint) -0:139 Constant: -0:139 1 (const int) -0:139 Constant: -0:139 0 (const int) -0:139 Convert bool to int ( temp int) -0:139 subgroupClusteredXor ( global bool) -0:139 Compare Less Than ( temp bool) -0:139 direct index ( temp int) -0:139 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:139 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:139 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:139 Constant: -0:139 0 (const int) -0:139 Constant: -0:139 1 (const int) -0:139 Constant: -0:139 0 (const int) -0:139 Constant: -0:139 0 (const int) -0:139 Constant: -0:139 1 (const uint) -0:140 move second child to first child ( temp 2-component vector of int) -0:140 vector swizzle ( temp 2-component vector of int) -0:140 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:140 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:140 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:140 'invocation' ( temp uint) -0:140 Constant: -0:140 1 (const int) -0:140 Sequence -0:140 Constant: -0:140 0 (const int) -0:140 Constant: -0:140 1 (const int) -0:140 Convert bool to int ( temp 2-component vector of int) -0:140 subgroupClusteredXor ( global 2-component vector of bool) -0:140 Compare Less Than ( global 2-component vector of bool) -0:140 vector swizzle ( temp 2-component vector of int) -0:140 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:140 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:140 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:140 Constant: -0:140 1 (const int) -0:140 Constant: -0:140 1 (const int) -0:140 Sequence -0:140 Constant: -0:140 0 (const int) -0:140 Constant: -0:140 1 (const int) -0:140 Constant: -0:140 0 (const int) -0:140 0 (const int) -0:140 Constant: -0:140 1 (const uint) -0:141 move second child to first child ( temp 3-component vector of int) -0:141 vector swizzle ( temp 3-component vector of int) -0:141 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:141 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:141 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:141 'invocation' ( temp uint) -0:141 Constant: -0:141 1 (const int) -0:141 Sequence -0:141 Constant: -0:141 0 (const int) -0:141 Constant: -0:141 1 (const int) -0:141 Constant: -0:141 2 (const int) -0:141 Convert bool to int ( temp 3-component vector of int) -0:141 subgroupClusteredXor ( global 3-component vector of bool) -0:141 Compare Less Than ( global 3-component vector of bool) -0:141 vector swizzle ( temp 3-component vector of int) -0:141 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:141 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:141 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:141 Constant: -0:141 1 (const int) -0:141 Constant: -0:141 1 (const int) -0:141 Sequence -0:141 Constant: -0:141 0 (const int) -0:141 Constant: -0:141 1 (const int) -0:141 Constant: -0:141 2 (const int) -0:141 Constant: -0:141 0 (const int) -0:141 0 (const int) -0:141 0 (const int) -0:141 Constant: -0:141 1 (const uint) -0:142 move second child to first child ( temp 4-component vector of int) -0:142 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:142 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:142 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:142 'invocation' ( temp uint) -0:142 Constant: -0:142 1 (const int) -0:142 Convert bool to int ( temp 4-component vector of int) -0:142 subgroupClusteredXor ( global 4-component vector of bool) -0:142 Compare Less Than ( global 4-component vector of bool) -0:142 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:142 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:142 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:142 Constant: -0:142 1 (const int) -0:142 Constant: -0:142 1 (const int) -0:142 Constant: -0:142 0 (const int) -0:142 0 (const int) -0:142 0 (const int) -0:142 0 (const int) -0:142 Constant: -0:142 1 (const uint) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) - - -Linked compute stage: - - -Shader version: 450 -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_clustered -local_size = (8, 1, 1) -0:? Sequence -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 uint) -0:17 'invocation' ( temp uint) -0:17 mod ( temp uint) -0:17 add ( temp uint) -0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:17 'gl_SubgroupSize' ( in uint SubgroupSize) -0:17 Constant: -0:17 4 (const uint) -0:19 move second child to first child ( temp float) -0:19 direct index ( temp float) -0:19 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:19 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 'invocation' ( temp uint) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 subgroupClusteredAdd ( global float) -0:19 direct index ( temp float) -0:19 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:19 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const uint) -0:20 move second child to first child ( temp 2-component vector of float) -0:20 vector swizzle ( temp 2-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:20 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 'invocation' ( temp uint) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 subgroupClusteredAdd ( global 2-component vector of float) -0:20 vector swizzle ( temp 2-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:20 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 1 (const uint) -0:21 move second child to first child ( temp 3-component vector of float) -0:21 vector swizzle ( temp 3-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:21 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 'invocation' ( temp uint) -0:21 Constant: -0:21 0 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Constant: -0:21 2 (const int) -0:21 subgroupClusteredAdd ( global 3-component vector of float) -0:21 vector swizzle ( temp 3-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 Constant: -0:21 2 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Constant: -0:21 2 (const int) -0:21 Constant: -0:21 1 (const uint) -0:22 move second child to first child ( temp 4-component vector of float) -0:22 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:22 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'invocation' ( temp uint) -0:22 Constant: -0:22 0 (const int) -0:22 subgroupClusteredAdd ( global 4-component vector of float) -0:22 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:22 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 Constant: -0:22 3 (const int) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const uint) -0:24 move second child to first child ( temp int) -0:24 direct index ( temp int) -0:24 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:24 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'invocation' ( temp uint) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 0 (const int) -0:24 subgroupClusteredAdd ( global int) -0:24 direct index ( temp int) -0:24 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const uint) -0:25 move second child to first child ( temp 2-component vector of int) -0:25 vector swizzle ( temp 2-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:25 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 'invocation' ( temp uint) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 subgroupClusteredAdd ( global 2-component vector of int) -0:25 vector swizzle ( temp 2-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 1 (const uint) -0:26 move second child to first child ( temp 3-component vector of int) -0:26 vector swizzle ( temp 3-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:26 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'invocation' ( temp uint) -0:26 Constant: -0:26 1 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 subgroupClusteredAdd ( global 3-component vector of int) -0:26 vector swizzle ( temp 3-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 Constant: -0:26 2 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 Constant: -0:26 1 (const uint) -0:27 move second child to first child ( temp 4-component vector of int) -0:27 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:27 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'invocation' ( temp uint) -0:27 Constant: -0:27 1 (const int) -0:27 subgroupClusteredAdd ( global 4-component vector of int) -0:27 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:27 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 Constant: -0:27 3 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Constant: -0:27 1 (const uint) -0:29 move second child to first child ( temp uint) -0:29 direct index ( temp uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:29 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'invocation' ( temp uint) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 0 (const int) -0:29 subgroupClusteredAdd ( global uint) -0:29 direct index ( temp uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 1 (const uint) -0:30 move second child to first child ( temp 2-component vector of uint) -0:30 vector swizzle ( temp 2-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:30 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 'invocation' ( temp uint) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 subgroupClusteredAdd ( global 2-component vector of uint) -0:30 vector swizzle ( temp 2-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:30 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 1 (const uint) -0:31 move second child to first child ( temp 3-component vector of uint) -0:31 vector swizzle ( temp 3-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:31 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'invocation' ( temp uint) -0:31 Constant: -0:31 2 (const int) -0:31 Sequence -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 subgroupClusteredAdd ( global 3-component vector of uint) -0:31 vector swizzle ( temp 3-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 Constant: -0:31 2 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 Sequence -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 Constant: -0:31 1 (const uint) -0:32 move second child to first child ( temp 4-component vector of uint) -0:32 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:32 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'invocation' ( temp uint) -0:32 Constant: -0:32 2 (const int) -0:32 subgroupClusteredAdd ( global 4-component vector of uint) -0:32 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 Constant: -0:32 3 (const int) -0:32 Constant: -0:32 2 (const int) -0:32 Constant: -0:32 1 (const uint) -0:34 move second child to first child ( temp double) -0:34 direct index ( temp double) -0:34 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:34 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'invocation' ( temp uint) -0:34 Constant: -0:34 3 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 subgroupClusteredAdd ( global double) -0:34 direct index ( temp double) -0:34 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 3 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 1 (const uint) -0:35 move second child to first child ( temp 2-component vector of double) -0:35 vector swizzle ( temp 2-component vector of double) -0:35 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:35 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 'invocation' ( temp uint) -0:35 Constant: -0:35 3 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 subgroupClusteredAdd ( global 2-component vector of double) -0:35 vector swizzle ( temp 2-component vector of double) -0:35 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 3 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 1 (const uint) -0:36 move second child to first child ( temp 3-component vector of double) -0:36 vector swizzle ( temp 3-component vector of double) -0:36 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:36 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'invocation' ( temp uint) -0:36 Constant: -0:36 3 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 2 (const int) -0:36 subgroupClusteredAdd ( global 3-component vector of double) -0:36 vector swizzle ( temp 3-component vector of double) -0:36 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 Constant: -0:36 2 (const int) -0:36 Constant: -0:36 3 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 2 (const int) -0:36 Constant: -0:36 1 (const uint) -0:37 move second child to first child ( temp 4-component vector of double) -0:37 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:37 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'invocation' ( temp uint) -0:37 Constant: -0:37 3 (const int) -0:37 subgroupClusteredAdd ( global 4-component vector of double) -0:37 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:37 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 Constant: -0:37 3 (const int) -0:37 Constant: -0:37 3 (const int) -0:37 Constant: -0:37 1 (const uint) -0:39 move second child to first child ( temp float) -0:39 direct index ( temp float) -0:39 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:39 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'invocation' ( temp uint) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 subgroupClusteredMul ( global float) -0:39 direct index ( temp float) -0:39 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const uint) -0:40 move second child to first child ( temp 2-component vector of float) -0:40 vector swizzle ( temp 2-component vector of float) -0:40 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:40 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 'invocation' ( temp uint) -0:40 Constant: -0:40 0 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 subgroupClusteredMul ( global 2-component vector of float) -0:40 vector swizzle ( temp 2-component vector of float) -0:40 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 1 (const uint) -0:41 move second child to first child ( temp 3-component vector of float) -0:41 vector swizzle ( temp 3-component vector of float) -0:41 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:41 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'invocation' ( temp uint) -0:41 Constant: -0:41 0 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 2 (const int) -0:41 subgroupClusteredMul ( global 3-component vector of float) -0:41 vector swizzle ( temp 3-component vector of float) -0:41 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 Constant: -0:41 2 (const int) -0:41 Constant: -0:41 0 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 2 (const int) -0:41 Constant: -0:41 1 (const uint) -0:42 move second child to first child ( temp 4-component vector of float) -0:42 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:42 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'invocation' ( temp uint) -0:42 Constant: -0:42 0 (const int) -0:42 subgroupClusteredMul ( global 4-component vector of float) -0:42 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:42 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 Constant: -0:42 3 (const int) -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const uint) -0:44 move second child to first child ( temp int) -0:44 direct index ( temp int) -0:44 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:44 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'invocation' ( temp uint) -0:44 Constant: -0:44 1 (const int) -0:44 Constant: -0:44 0 (const int) -0:44 subgroupClusteredMul ( global int) -0:44 direct index ( temp int) -0:44 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 1 (const int) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 1 (const uint) -0:45 move second child to first child ( temp 2-component vector of int) -0:45 vector swizzle ( temp 2-component vector of int) -0:45 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:45 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 'invocation' ( temp uint) -0:45 Constant: -0:45 1 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 subgroupClusteredMul ( global 2-component vector of int) -0:45 vector swizzle ( temp 2-component vector of int) -0:45 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 1 (const uint) -0:46 move second child to first child ( temp 3-component vector of int) -0:46 vector swizzle ( temp 3-component vector of int) -0:46 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:46 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'invocation' ( temp uint) -0:46 Constant: -0:46 1 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 subgroupClusteredMul ( global 3-component vector of int) -0:46 vector swizzle ( temp 3-component vector of int) -0:46 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 Constant: -0:46 2 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 Constant: -0:46 1 (const uint) -0:47 move second child to first child ( temp 4-component vector of int) -0:47 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:47 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'invocation' ( temp uint) -0:47 Constant: -0:47 1 (const int) -0:47 subgroupClusteredMul ( global 4-component vector of int) -0:47 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:47 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 Constant: -0:47 3 (const int) -0:47 Constant: -0:47 1 (const int) -0:47 Constant: -0:47 1 (const uint) -0:49 move second child to first child ( temp uint) -0:49 direct index ( temp uint) -0:49 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:49 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'invocation' ( temp uint) -0:49 Constant: -0:49 2 (const int) -0:49 Constant: -0:49 0 (const int) -0:49 subgroupClusteredMul ( global uint) -0:49 direct index ( temp uint) -0:49 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:49 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 2 (const int) -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 1 (const uint) -0:50 move second child to first child ( temp 2-component vector of uint) -0:50 vector swizzle ( temp 2-component vector of uint) -0:50 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:50 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 'invocation' ( temp uint) -0:50 Constant: -0:50 2 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 subgroupClusteredMul ( global 2-component vector of uint) -0:50 vector swizzle ( temp 2-component vector of uint) -0:50 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 1 (const uint) -0:51 move second child to first child ( temp 3-component vector of uint) -0:51 vector swizzle ( temp 3-component vector of uint) -0:51 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:51 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'invocation' ( temp uint) -0:51 Constant: -0:51 2 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 2 (const int) -0:51 subgroupClusteredMul ( global 3-component vector of uint) -0:51 vector swizzle ( temp 3-component vector of uint) -0:51 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 Constant: -0:51 2 (const int) -0:51 Constant: -0:51 2 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 2 (const int) -0:51 Constant: -0:51 1 (const uint) -0:52 move second child to first child ( temp 4-component vector of uint) -0:52 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:52 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'invocation' ( temp uint) -0:52 Constant: -0:52 2 (const int) -0:52 subgroupClusteredMul ( global 4-component vector of uint) -0:52 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:52 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 Constant: -0:52 3 (const int) -0:52 Constant: -0:52 2 (const int) -0:52 Constant: -0:52 1 (const uint) -0:54 move second child to first child ( temp double) -0:54 direct index ( temp double) -0:54 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:54 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'invocation' ( temp uint) -0:54 Constant: -0:54 3 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 subgroupClusteredMul ( global double) -0:54 direct index ( temp double) -0:54 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:54 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 3 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 1 (const uint) -0:55 move second child to first child ( temp 2-component vector of double) -0:55 vector swizzle ( temp 2-component vector of double) -0:55 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:55 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 'invocation' ( temp uint) -0:55 Constant: -0:55 3 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 subgroupClusteredMul ( global 2-component vector of double) -0:55 vector swizzle ( temp 2-component vector of double) -0:55 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 3 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 1 (const uint) -0:56 move second child to first child ( temp 3-component vector of double) -0:56 vector swizzle ( temp 3-component vector of double) -0:56 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:56 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'invocation' ( temp uint) -0:56 Constant: -0:56 3 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 2 (const int) -0:56 subgroupClusteredMul ( global 3-component vector of double) -0:56 vector swizzle ( temp 3-component vector of double) -0:56 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 Constant: -0:56 2 (const int) -0:56 Constant: -0:56 3 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 2 (const int) -0:56 Constant: -0:56 1 (const uint) -0:57 move second child to first child ( temp 4-component vector of double) -0:57 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:57 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'invocation' ( temp uint) -0:57 Constant: -0:57 3 (const int) -0:57 subgroupClusteredMul ( global 4-component vector of double) -0:57 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:57 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 Constant: -0:57 3 (const int) -0:57 Constant: -0:57 3 (const int) -0:57 Constant: -0:57 1 (const uint) -0:59 move second child to first child ( temp float) -0:59 direct index ( temp float) -0:59 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:59 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 'invocation' ( temp uint) -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 0 (const int) -0:59 subgroupClusteredMin ( global float) -0:59 direct index ( temp float) -0:59 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:59 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 1 (const uint) -0:60 move second child to first child ( temp 2-component vector of float) -0:60 vector swizzle ( temp 2-component vector of float) -0:60 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:60 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 'invocation' ( temp uint) -0:60 Constant: -0:60 0 (const int) -0:60 Sequence -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 subgroupClusteredMin ( global 2-component vector of float) -0:60 vector swizzle ( temp 2-component vector of float) -0:60 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:60 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 0 (const int) -0:60 Sequence -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 1 (const uint) -0:61 move second child to first child ( temp 3-component vector of float) -0:61 vector swizzle ( temp 3-component vector of float) -0:61 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:61 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'invocation' ( temp uint) -0:61 Constant: -0:61 0 (const int) -0:61 Sequence -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 Constant: -0:61 2 (const int) -0:61 subgroupClusteredMin ( global 3-component vector of float) -0:61 vector swizzle ( temp 3-component vector of float) -0:61 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:61 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 Constant: -0:61 2 (const int) -0:61 Constant: -0:61 0 (const int) -0:61 Sequence -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 Constant: -0:61 2 (const int) -0:61 Constant: -0:61 1 (const uint) -0:62 move second child to first child ( temp 4-component vector of float) -0:62 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:62 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'invocation' ( temp uint) -0:62 Constant: -0:62 0 (const int) -0:62 subgroupClusteredMin ( global 4-component vector of float) -0:62 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:62 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 Constant: -0:62 3 (const int) -0:62 Constant: -0:62 0 (const int) -0:62 Constant: -0:62 1 (const uint) -0:64 move second child to first child ( temp int) -0:64 direct index ( temp int) -0:64 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:64 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'invocation' ( temp uint) -0:64 Constant: -0:64 1 (const int) -0:64 Constant: -0:64 0 (const int) -0:64 subgroupClusteredMin ( global int) -0:64 direct index ( temp int) -0:64 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:64 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 Constant: -0:64 0 (const int) -0:64 Constant: -0:64 1 (const int) -0:64 Constant: -0:64 0 (const int) -0:64 Constant: -0:64 1 (const uint) -0:65 move second child to first child ( temp 2-component vector of int) -0:65 vector swizzle ( temp 2-component vector of int) -0:65 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:65 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 'invocation' ( temp uint) -0:65 Constant: -0:65 1 (const int) -0:65 Sequence -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 subgroupClusteredMin ( global 2-component vector of int) -0:65 vector swizzle ( temp 2-component vector of int) -0:65 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:65 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 Constant: -0:65 1 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Sequence -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Constant: -0:65 1 (const uint) -0:66 move second child to first child ( temp 3-component vector of int) -0:66 vector swizzle ( temp 3-component vector of int) -0:66 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:66 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'invocation' ( temp uint) -0:66 Constant: -0:66 1 (const int) -0:66 Sequence -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 2 (const int) -0:66 subgroupClusteredMin ( global 3-component vector of int) -0:66 vector swizzle ( temp 3-component vector of int) -0:66 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:66 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 Constant: -0:66 2 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 Sequence -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 2 (const int) -0:66 Constant: -0:66 1 (const uint) -0:67 move second child to first child ( temp 4-component vector of int) -0:67 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:67 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'invocation' ( temp uint) -0:67 Constant: -0:67 1 (const int) -0:67 subgroupClusteredMin ( global 4-component vector of int) -0:67 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:67 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 Constant: -0:67 3 (const int) -0:67 Constant: -0:67 1 (const int) -0:67 Constant: -0:67 1 (const uint) -0:69 move second child to first child ( temp uint) -0:69 direct index ( temp uint) -0:69 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:69 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 'invocation' ( temp uint) -0:69 Constant: -0:69 2 (const int) -0:69 Constant: -0:69 0 (const int) -0:69 subgroupClusteredMin ( global uint) -0:69 direct index ( temp uint) -0:69 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:69 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 Constant: -0:69 0 (const int) -0:69 Constant: -0:69 2 (const int) -0:69 Constant: -0:69 0 (const int) -0:69 Constant: -0:69 1 (const uint) -0:70 move second child to first child ( temp 2-component vector of uint) -0:70 vector swizzle ( temp 2-component vector of uint) -0:70 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:70 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:70 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:70 'invocation' ( temp uint) -0:70 Constant: -0:70 2 (const int) -0:70 Sequence -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 1 (const int) -0:70 subgroupClusteredMin ( global 2-component vector of uint) -0:70 vector swizzle ( temp 2-component vector of uint) -0:70 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:70 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:70 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:70 Constant: -0:70 1 (const int) -0:70 Constant: -0:70 2 (const int) -0:70 Sequence -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 1 (const int) -0:70 Constant: -0:70 1 (const uint) -0:71 move second child to first child ( temp 3-component vector of uint) -0:71 vector swizzle ( temp 3-component vector of uint) -0:71 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:71 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:71 'invocation' ( temp uint) -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 2 (const int) -0:71 subgroupClusteredMin ( global 3-component vector of uint) -0:71 vector swizzle ( temp 3-component vector of uint) -0:71 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:71 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:71 Constant: -0:71 2 (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 2 (const int) -0:71 Constant: -0:71 1 (const uint) -0:72 move second child to first child ( temp 4-component vector of uint) -0:72 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:72 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 'invocation' ( temp uint) -0:72 Constant: -0:72 2 (const int) -0:72 subgroupClusteredMin ( global 4-component vector of uint) -0:72 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:72 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 Constant: -0:72 3 (const int) -0:72 Constant: -0:72 2 (const int) -0:72 Constant: -0:72 1 (const uint) -0:74 move second child to first child ( temp double) -0:74 direct index ( temp double) -0:74 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:74 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 'invocation' ( temp uint) -0:74 Constant: -0:74 3 (const int) -0:74 Constant: -0:74 0 (const int) -0:74 subgroupClusteredMin ( global double) -0:74 direct index ( temp double) -0:74 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:74 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 Constant: -0:74 0 (const int) -0:74 Constant: -0:74 3 (const int) -0:74 Constant: -0:74 0 (const int) -0:74 Constant: -0:74 1 (const uint) -0:75 move second child to first child ( temp 2-component vector of double) -0:75 vector swizzle ( temp 2-component vector of double) -0:75 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:75 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:75 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:75 'invocation' ( temp uint) -0:75 Constant: -0:75 3 (const int) -0:75 Sequence -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 1 (const int) -0:75 subgroupClusteredMin ( global 2-component vector of double) -0:75 vector swizzle ( temp 2-component vector of double) -0:75 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:75 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:75 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:75 Constant: -0:75 1 (const int) -0:75 Constant: -0:75 3 (const int) -0:75 Sequence -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 1 (const int) -0:75 Constant: -0:75 1 (const uint) -0:76 move second child to first child ( temp 3-component vector of double) -0:76 vector swizzle ( temp 3-component vector of double) -0:76 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:76 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 'invocation' ( temp uint) -0:76 Constant: -0:76 3 (const int) -0:76 Sequence -0:76 Constant: -0:76 0 (const int) -0:76 Constant: -0:76 1 (const int) -0:76 Constant: -0:76 2 (const int) -0:76 subgroupClusteredMin ( global 3-component vector of double) -0:76 vector swizzle ( temp 3-component vector of double) -0:76 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:76 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 Constant: -0:76 2 (const int) -0:76 Constant: -0:76 3 (const int) -0:76 Sequence -0:76 Constant: -0:76 0 (const int) -0:76 Constant: -0:76 1 (const int) -0:76 Constant: -0:76 2 (const int) -0:76 Constant: -0:76 1 (const uint) -0:77 move second child to first child ( temp 4-component vector of double) -0:77 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:77 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 'invocation' ( temp uint) -0:77 Constant: -0:77 3 (const int) -0:77 subgroupClusteredMin ( global 4-component vector of double) -0:77 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:77 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 Constant: -0:77 3 (const int) -0:77 Constant: -0:77 3 (const int) -0:77 Constant: -0:77 1 (const uint) -0:79 move second child to first child ( temp float) -0:79 direct index ( temp float) -0:79 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:79 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 'invocation' ( temp uint) -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 0 (const int) -0:79 subgroupClusteredMax ( global float) -0:79 direct index ( temp float) -0:79 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:79 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 1 (const uint) -0:80 move second child to first child ( temp 2-component vector of float) -0:80 vector swizzle ( temp 2-component vector of float) -0:80 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:80 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:80 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:80 'invocation' ( temp uint) -0:80 Constant: -0:80 0 (const int) -0:80 Sequence -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 1 (const int) -0:80 subgroupClusteredMax ( global 2-component vector of float) -0:80 vector swizzle ( temp 2-component vector of float) -0:80 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:80 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:80 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:80 Constant: -0:80 1 (const int) -0:80 Constant: -0:80 0 (const int) -0:80 Sequence -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 1 (const int) -0:80 Constant: -0:80 1 (const uint) -0:81 move second child to first child ( temp 3-component vector of float) -0:81 vector swizzle ( temp 3-component vector of float) -0:81 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:81 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 'invocation' ( temp uint) -0:81 Constant: -0:81 0 (const int) -0:81 Sequence -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 1 (const int) -0:81 Constant: -0:81 2 (const int) -0:81 subgroupClusteredMax ( global 3-component vector of float) -0:81 vector swizzle ( temp 3-component vector of float) -0:81 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:81 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 Constant: -0:81 2 (const int) -0:81 Constant: -0:81 0 (const int) -0:81 Sequence -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 1 (const int) -0:81 Constant: -0:81 2 (const int) -0:81 Constant: -0:81 1 (const uint) -0:82 move second child to first child ( temp 4-component vector of float) -0:82 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:82 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 'invocation' ( temp uint) -0:82 Constant: -0:82 0 (const int) -0:82 subgroupClusteredMax ( global 4-component vector of float) -0:82 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:82 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 Constant: -0:82 3 (const int) -0:82 Constant: -0:82 0 (const int) -0:82 Constant: -0:82 1 (const uint) -0:84 move second child to first child ( temp int) -0:84 direct index ( temp int) -0:84 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:84 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 'invocation' ( temp uint) -0:84 Constant: -0:84 1 (const int) -0:84 Constant: -0:84 0 (const int) -0:84 subgroupClusteredMax ( global int) -0:84 direct index ( temp int) -0:84 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:84 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 Constant: -0:84 0 (const int) -0:84 Constant: -0:84 1 (const int) -0:84 Constant: -0:84 0 (const int) -0:84 Constant: -0:84 1 (const uint) -0:85 move second child to first child ( temp 2-component vector of int) -0:85 vector swizzle ( temp 2-component vector of int) -0:85 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:85 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:85 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:85 'invocation' ( temp uint) -0:85 Constant: -0:85 1 (const int) -0:85 Sequence -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 1 (const int) -0:85 subgroupClusteredMax ( global 2-component vector of int) -0:85 vector swizzle ( temp 2-component vector of int) -0:85 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:85 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:85 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:85 Constant: -0:85 1 (const int) -0:85 Constant: -0:85 1 (const int) -0:85 Sequence -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 1 (const int) -0:85 Constant: -0:85 1 (const uint) -0:86 move second child to first child ( temp 3-component vector of int) -0:86 vector swizzle ( temp 3-component vector of int) -0:86 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:86 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:86 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:86 'invocation' ( temp uint) -0:86 Constant: -0:86 1 (const int) -0:86 Sequence -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 1 (const int) -0:86 Constant: -0:86 2 (const int) -0:86 subgroupClusteredMax ( global 3-component vector of int) -0:86 vector swizzle ( temp 3-component vector of int) -0:86 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:86 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:86 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:86 Constant: -0:86 2 (const int) -0:86 Constant: -0:86 1 (const int) -0:86 Sequence -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 1 (const int) -0:86 Constant: -0:86 2 (const int) -0:86 Constant: -0:86 1 (const uint) -0:87 move second child to first child ( temp 4-component vector of int) -0:87 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:87 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:87 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:87 'invocation' ( temp uint) -0:87 Constant: -0:87 1 (const int) -0:87 subgroupClusteredMax ( global 4-component vector of int) -0:87 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:87 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:87 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:87 Constant: -0:87 3 (const int) -0:87 Constant: -0:87 1 (const int) -0:87 Constant: -0:87 1 (const uint) -0:89 move second child to first child ( temp uint) -0:89 direct index ( temp uint) -0:89 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:89 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:89 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:89 'invocation' ( temp uint) -0:89 Constant: -0:89 2 (const int) -0:89 Constant: -0:89 0 (const int) -0:89 subgroupClusteredMax ( global uint) -0:89 direct index ( temp uint) -0:89 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:89 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:89 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:89 Constant: -0:89 0 (const int) -0:89 Constant: -0:89 2 (const int) -0:89 Constant: -0:89 0 (const int) -0:89 Constant: -0:89 1 (const uint) -0:90 move second child to first child ( temp 2-component vector of uint) -0:90 vector swizzle ( temp 2-component vector of uint) -0:90 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:90 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:90 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:90 'invocation' ( temp uint) -0:90 Constant: -0:90 2 (const int) -0:90 Sequence -0:90 Constant: -0:90 0 (const int) -0:90 Constant: -0:90 1 (const int) -0:90 subgroupClusteredMax ( global 2-component vector of uint) -0:90 vector swizzle ( temp 2-component vector of uint) -0:90 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:90 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:90 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:90 Constant: -0:90 1 (const int) -0:90 Constant: -0:90 2 (const int) -0:90 Sequence -0:90 Constant: -0:90 0 (const int) -0:90 Constant: -0:90 1 (const int) -0:90 Constant: -0:90 1 (const uint) -0:91 move second child to first child ( temp 3-component vector of uint) -0:91 vector swizzle ( temp 3-component vector of uint) -0:91 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:91 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:91 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:91 'invocation' ( temp uint) -0:91 Constant: -0:91 2 (const int) -0:91 Sequence -0:91 Constant: -0:91 0 (const int) -0:91 Constant: -0:91 1 (const int) -0:91 Constant: -0:91 2 (const int) -0:91 subgroupClusteredMax ( global 3-component vector of uint) -0:91 vector swizzle ( temp 3-component vector of uint) -0:91 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:91 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:91 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:91 Constant: -0:91 2 (const int) -0:91 Constant: -0:91 2 (const int) -0:91 Sequence -0:91 Constant: -0:91 0 (const int) -0:91 Constant: -0:91 1 (const int) -0:91 Constant: -0:91 2 (const int) -0:91 Constant: -0:91 1 (const uint) -0:92 move second child to first child ( temp 4-component vector of uint) -0:92 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:92 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:92 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:92 'invocation' ( temp uint) -0:92 Constant: -0:92 2 (const int) -0:92 subgroupClusteredMax ( global 4-component vector of uint) -0:92 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:92 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:92 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:92 Constant: -0:92 3 (const int) -0:92 Constant: -0:92 2 (const int) -0:92 Constant: -0:92 1 (const uint) -0:94 move second child to first child ( temp double) -0:94 direct index ( temp double) -0:94 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:94 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:94 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:94 'invocation' ( temp uint) -0:94 Constant: -0:94 3 (const int) -0:94 Constant: -0:94 0 (const int) -0:94 subgroupClusteredMax ( global double) -0:94 direct index ( temp double) -0:94 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:94 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:94 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:94 Constant: -0:94 0 (const int) -0:94 Constant: -0:94 3 (const int) -0:94 Constant: -0:94 0 (const int) -0:94 Constant: -0:94 1 (const uint) -0:95 move second child to first child ( temp 2-component vector of double) -0:95 vector swizzle ( temp 2-component vector of double) -0:95 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:95 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:95 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:95 'invocation' ( temp uint) -0:95 Constant: -0:95 3 (const int) -0:95 Sequence -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 1 (const int) -0:95 subgroupClusteredMax ( global 2-component vector of double) -0:95 vector swizzle ( temp 2-component vector of double) -0:95 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:95 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:95 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:95 Constant: -0:95 1 (const int) -0:95 Constant: -0:95 3 (const int) -0:95 Sequence -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 1 (const int) -0:95 Constant: -0:95 1 (const uint) -0:96 move second child to first child ( temp 3-component vector of double) -0:96 vector swizzle ( temp 3-component vector of double) -0:96 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:96 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:96 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:96 'invocation' ( temp uint) -0:96 Constant: -0:96 3 (const int) -0:96 Sequence -0:96 Constant: -0:96 0 (const int) -0:96 Constant: -0:96 1 (const int) -0:96 Constant: -0:96 2 (const int) -0:96 subgroupClusteredMax ( global 3-component vector of double) -0:96 vector swizzle ( temp 3-component vector of double) -0:96 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:96 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:96 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:96 Constant: -0:96 2 (const int) -0:96 Constant: -0:96 3 (const int) -0:96 Sequence -0:96 Constant: -0:96 0 (const int) -0:96 Constant: -0:96 1 (const int) -0:96 Constant: -0:96 2 (const int) -0:96 Constant: -0:96 1 (const uint) -0:97 move second child to first child ( temp 4-component vector of double) -0:97 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:97 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:97 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:97 'invocation' ( temp uint) -0:97 Constant: -0:97 3 (const int) -0:97 subgroupClusteredMax ( global 4-component vector of double) -0:97 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:97 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:97 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:97 Constant: -0:97 3 (const int) -0:97 Constant: -0:97 3 (const int) -0:97 Constant: -0:97 1 (const uint) -0:99 move second child to first child ( temp int) -0:99 direct index ( temp int) -0:99 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:99 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:99 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:99 'invocation' ( temp uint) -0:99 Constant: -0:99 1 (const int) -0:99 Constant: -0:99 0 (const int) -0:99 subgroupClusteredAnd ( global int) -0:99 direct index ( temp int) -0:99 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:99 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:99 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:99 Constant: -0:99 0 (const int) -0:99 Constant: -0:99 1 (const int) -0:99 Constant: -0:99 0 (const int) -0:99 Constant: -0:99 1 (const uint) -0:100 move second child to first child ( temp 2-component vector of int) -0:100 vector swizzle ( temp 2-component vector of int) -0:100 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:100 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:100 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:100 'invocation' ( temp uint) -0:100 Constant: -0:100 1 (const int) -0:100 Sequence -0:100 Constant: -0:100 0 (const int) -0:100 Constant: -0:100 1 (const int) -0:100 subgroupClusteredAnd ( global 2-component vector of int) -0:100 vector swizzle ( temp 2-component vector of int) -0:100 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:100 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:100 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:100 Constant: -0:100 1 (const int) -0:100 Constant: -0:100 1 (const int) -0:100 Sequence -0:100 Constant: -0:100 0 (const int) -0:100 Constant: -0:100 1 (const int) -0:100 Constant: -0:100 1 (const uint) -0:101 move second child to first child ( temp 3-component vector of int) -0:101 vector swizzle ( temp 3-component vector of int) -0:101 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:101 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:101 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:101 'invocation' ( temp uint) -0:101 Constant: -0:101 1 (const int) -0:101 Sequence -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 1 (const int) -0:101 Constant: -0:101 2 (const int) -0:101 subgroupClusteredAnd ( global 3-component vector of int) -0:101 vector swizzle ( temp 3-component vector of int) -0:101 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:101 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:101 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:101 Constant: -0:101 2 (const int) -0:101 Constant: -0:101 1 (const int) -0:101 Sequence -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 1 (const int) -0:101 Constant: -0:101 2 (const int) -0:101 Constant: -0:101 1 (const uint) -0:102 move second child to first child ( temp 4-component vector of int) -0:102 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:102 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:102 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:102 'invocation' ( temp uint) -0:102 Constant: -0:102 1 (const int) -0:102 subgroupClusteredAnd ( global 4-component vector of int) -0:102 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:102 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:102 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:102 Constant: -0:102 3 (const int) -0:102 Constant: -0:102 1 (const int) -0:102 Constant: -0:102 1 (const uint) -0:104 move second child to first child ( temp uint) -0:104 direct index ( temp uint) -0:104 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:104 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:104 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:104 'invocation' ( temp uint) -0:104 Constant: -0:104 2 (const int) -0:104 Constant: -0:104 0 (const int) -0:104 subgroupClusteredAnd ( global uint) -0:104 direct index ( temp uint) -0:104 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:104 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:104 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:104 Constant: -0:104 0 (const int) -0:104 Constant: -0:104 2 (const int) -0:104 Constant: -0:104 0 (const int) -0:104 Constant: -0:104 1 (const uint) -0:105 move second child to first child ( temp 2-component vector of uint) -0:105 vector swizzle ( temp 2-component vector of uint) -0:105 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:105 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:105 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:105 'invocation' ( temp uint) -0:105 Constant: -0:105 2 (const int) -0:105 Sequence -0:105 Constant: -0:105 0 (const int) -0:105 Constant: -0:105 1 (const int) -0:105 subgroupClusteredAnd ( global 2-component vector of uint) -0:105 vector swizzle ( temp 2-component vector of uint) -0:105 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:105 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:105 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:105 Constant: -0:105 1 (const int) -0:105 Constant: -0:105 2 (const int) -0:105 Sequence -0:105 Constant: -0:105 0 (const int) -0:105 Constant: -0:105 1 (const int) -0:105 Constant: -0:105 1 (const uint) -0:106 move second child to first child ( temp 3-component vector of uint) -0:106 vector swizzle ( temp 3-component vector of uint) -0:106 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:106 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:106 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:106 'invocation' ( temp uint) -0:106 Constant: -0:106 2 (const int) -0:106 Sequence -0:106 Constant: -0:106 0 (const int) -0:106 Constant: -0:106 1 (const int) -0:106 Constant: -0:106 2 (const int) -0:106 subgroupClusteredAnd ( global 3-component vector of uint) -0:106 vector swizzle ( temp 3-component vector of uint) -0:106 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:106 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:106 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:106 Constant: -0:106 2 (const int) -0:106 Constant: -0:106 2 (const int) -0:106 Sequence -0:106 Constant: -0:106 0 (const int) -0:106 Constant: -0:106 1 (const int) -0:106 Constant: -0:106 2 (const int) -0:106 Constant: -0:106 1 (const uint) -0:107 move second child to first child ( temp 4-component vector of uint) -0:107 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:107 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:107 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:107 'invocation' ( temp uint) -0:107 Constant: -0:107 2 (const int) -0:107 subgroupClusteredAnd ( global 4-component vector of uint) -0:107 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:107 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:107 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:107 Constant: -0:107 3 (const int) -0:107 Constant: -0:107 2 (const int) -0:107 Constant: -0:107 1 (const uint) -0:109 move second child to first child ( temp int) -0:109 direct index ( temp int) -0:109 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:109 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:109 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:109 'invocation' ( temp uint) -0:109 Constant: -0:109 1 (const int) -0:109 Constant: -0:109 0 (const int) -0:109 Convert bool to int ( temp int) -0:109 subgroupClusteredAnd ( global bool) -0:109 Compare Less Than ( temp bool) -0:109 direct index ( temp int) -0:109 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:109 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:109 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:109 Constant: -0:109 0 (const int) -0:109 Constant: -0:109 1 (const int) -0:109 Constant: -0:109 0 (const int) -0:109 Constant: -0:109 0 (const int) -0:109 Constant: -0:109 1 (const uint) -0:110 move second child to first child ( temp 2-component vector of int) -0:110 vector swizzle ( temp 2-component vector of int) -0:110 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:110 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:110 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:110 'invocation' ( temp uint) -0:110 Constant: -0:110 1 (const int) -0:110 Sequence -0:110 Constant: -0:110 0 (const int) -0:110 Constant: -0:110 1 (const int) -0:110 Convert bool to int ( temp 2-component vector of int) -0:110 subgroupClusteredAnd ( global 2-component vector of bool) -0:110 Compare Less Than ( global 2-component vector of bool) -0:110 vector swizzle ( temp 2-component vector of int) -0:110 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:110 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:110 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:110 Constant: -0:110 1 (const int) -0:110 Constant: -0:110 1 (const int) -0:110 Sequence -0:110 Constant: -0:110 0 (const int) -0:110 Constant: -0:110 1 (const int) -0:110 Constant: -0:110 0 (const int) -0:110 0 (const int) -0:110 Constant: -0:110 1 (const uint) -0:111 move second child to first child ( temp 3-component vector of int) -0:111 vector swizzle ( temp 3-component vector of int) -0:111 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:111 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:111 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:111 'invocation' ( temp uint) -0:111 Constant: -0:111 1 (const int) -0:111 Sequence -0:111 Constant: -0:111 0 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 Constant: -0:111 2 (const int) -0:111 Convert bool to int ( temp 3-component vector of int) -0:111 subgroupClusteredAnd ( global 3-component vector of bool) -0:111 Compare Less Than ( global 3-component vector of bool) -0:111 vector swizzle ( temp 3-component vector of int) -0:111 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:111 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:111 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:111 Constant: -0:111 1 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 Sequence -0:111 Constant: -0:111 0 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 Constant: -0:111 2 (const int) -0:111 Constant: -0:111 0 (const int) -0:111 0 (const int) -0:111 0 (const int) -0:111 Constant: -0:111 1 (const uint) -0:112 move second child to first child ( temp 4-component vector of int) -0:112 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:112 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:112 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:112 'invocation' ( temp uint) -0:112 Constant: -0:112 1 (const int) -0:112 Convert bool to int ( temp 4-component vector of int) -0:112 subgroupClusteredAnd ( global 4-component vector of bool) -0:112 Compare Less Than ( global 4-component vector of bool) -0:112 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:112 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:112 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:112 Constant: -0:112 1 (const int) -0:112 Constant: -0:112 1 (const int) -0:112 Constant: -0:112 0 (const int) -0:112 0 (const int) -0:112 0 (const int) -0:112 0 (const int) -0:112 Constant: -0:112 1 (const uint) -0:114 move second child to first child ( temp int) -0:114 direct index ( temp int) -0:114 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:114 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:114 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:114 'invocation' ( temp uint) -0:114 Constant: -0:114 1 (const int) -0:114 Constant: -0:114 0 (const int) -0:114 subgroupClusteredOr ( global int) -0:114 direct index ( temp int) -0:114 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:114 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:114 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:114 Constant: -0:114 0 (const int) -0:114 Constant: -0:114 1 (const int) -0:114 Constant: -0:114 0 (const int) -0:114 Constant: -0:114 1 (const uint) -0:115 move second child to first child ( temp 2-component vector of int) -0:115 vector swizzle ( temp 2-component vector of int) -0:115 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:115 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:115 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:115 'invocation' ( temp uint) -0:115 Constant: -0:115 1 (const int) -0:115 Sequence -0:115 Constant: -0:115 0 (const int) -0:115 Constant: -0:115 1 (const int) -0:115 subgroupClusteredOr ( global 2-component vector of int) -0:115 vector swizzle ( temp 2-component vector of int) -0:115 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:115 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:115 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:115 Constant: -0:115 1 (const int) -0:115 Constant: -0:115 1 (const int) -0:115 Sequence -0:115 Constant: -0:115 0 (const int) -0:115 Constant: -0:115 1 (const int) -0:115 Constant: -0:115 1 (const uint) -0:116 move second child to first child ( temp 3-component vector of int) -0:116 vector swizzle ( temp 3-component vector of int) -0:116 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:116 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:116 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:116 'invocation' ( temp uint) -0:116 Constant: -0:116 1 (const int) -0:116 Sequence -0:116 Constant: -0:116 0 (const int) -0:116 Constant: -0:116 1 (const int) -0:116 Constant: -0:116 2 (const int) -0:116 subgroupClusteredOr ( global 3-component vector of int) -0:116 vector swizzle ( temp 3-component vector of int) -0:116 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:116 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:116 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:116 Constant: -0:116 2 (const int) -0:116 Constant: -0:116 1 (const int) -0:116 Sequence -0:116 Constant: -0:116 0 (const int) -0:116 Constant: -0:116 1 (const int) -0:116 Constant: -0:116 2 (const int) -0:116 Constant: -0:116 1 (const uint) -0:117 move second child to first child ( temp 4-component vector of int) -0:117 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:117 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:117 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:117 'invocation' ( temp uint) -0:117 Constant: -0:117 1 (const int) -0:117 subgroupClusteredOr ( global 4-component vector of int) -0:117 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:117 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:117 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:117 Constant: -0:117 3 (const int) -0:117 Constant: -0:117 1 (const int) -0:117 Constant: -0:117 1 (const uint) -0:119 move second child to first child ( temp uint) -0:119 direct index ( temp uint) -0:119 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:119 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:119 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:119 'invocation' ( temp uint) -0:119 Constant: -0:119 2 (const int) -0:119 Constant: -0:119 0 (const int) -0:119 subgroupClusteredOr ( global uint) -0:119 direct index ( temp uint) -0:119 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:119 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:119 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:119 Constant: -0:119 0 (const int) -0:119 Constant: -0:119 2 (const int) -0:119 Constant: -0:119 0 (const int) -0:119 Constant: -0:119 1 (const uint) -0:120 move second child to first child ( temp 2-component vector of uint) -0:120 vector swizzle ( temp 2-component vector of uint) -0:120 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:120 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:120 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:120 'invocation' ( temp uint) -0:120 Constant: -0:120 2 (const int) -0:120 Sequence -0:120 Constant: -0:120 0 (const int) -0:120 Constant: -0:120 1 (const int) -0:120 subgroupClusteredOr ( global 2-component vector of uint) -0:120 vector swizzle ( temp 2-component vector of uint) -0:120 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:120 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:120 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:120 Constant: -0:120 1 (const int) -0:120 Constant: -0:120 2 (const int) -0:120 Sequence -0:120 Constant: -0:120 0 (const int) -0:120 Constant: -0:120 1 (const int) -0:120 Constant: -0:120 1 (const uint) -0:121 move second child to first child ( temp 3-component vector of uint) -0:121 vector swizzle ( temp 3-component vector of uint) -0:121 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:121 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:121 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:121 'invocation' ( temp uint) -0:121 Constant: -0:121 2 (const int) -0:121 Sequence -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 1 (const int) -0:121 Constant: -0:121 2 (const int) -0:121 subgroupClusteredOr ( global 3-component vector of uint) -0:121 vector swizzle ( temp 3-component vector of uint) -0:121 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:121 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:121 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:121 Constant: -0:121 2 (const int) -0:121 Constant: -0:121 2 (const int) -0:121 Sequence -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 1 (const int) -0:121 Constant: -0:121 2 (const int) -0:121 Constant: -0:121 1 (const uint) -0:122 move second child to first child ( temp 4-component vector of uint) -0:122 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:122 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:122 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:122 'invocation' ( temp uint) -0:122 Constant: -0:122 2 (const int) -0:122 subgroupClusteredOr ( global 4-component vector of uint) -0:122 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:122 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:122 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:122 Constant: -0:122 3 (const int) -0:122 Constant: -0:122 2 (const int) -0:122 Constant: -0:122 1 (const uint) -0:124 move second child to first child ( temp int) -0:124 direct index ( temp int) -0:124 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:124 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:124 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:124 'invocation' ( temp uint) -0:124 Constant: -0:124 1 (const int) -0:124 Constant: -0:124 0 (const int) -0:124 Convert bool to int ( temp int) -0:124 subgroupClusteredOr ( global bool) -0:124 Compare Less Than ( temp bool) -0:124 direct index ( temp int) -0:124 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:124 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:124 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:124 Constant: -0:124 0 (const int) -0:124 Constant: -0:124 1 (const int) -0:124 Constant: -0:124 0 (const int) -0:124 Constant: -0:124 0 (const int) -0:124 Constant: -0:124 1 (const uint) -0:125 move second child to first child ( temp 2-component vector of int) -0:125 vector swizzle ( temp 2-component vector of int) -0:125 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:125 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:125 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:125 'invocation' ( temp uint) -0:125 Constant: -0:125 1 (const int) -0:125 Sequence -0:125 Constant: -0:125 0 (const int) -0:125 Constant: -0:125 1 (const int) -0:125 Convert bool to int ( temp 2-component vector of int) -0:125 subgroupClusteredOr ( global 2-component vector of bool) -0:125 Compare Less Than ( global 2-component vector of bool) -0:125 vector swizzle ( temp 2-component vector of int) -0:125 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:125 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:125 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:125 Constant: -0:125 1 (const int) -0:125 Constant: -0:125 1 (const int) -0:125 Sequence -0:125 Constant: -0:125 0 (const int) -0:125 Constant: -0:125 1 (const int) -0:125 Constant: -0:125 0 (const int) -0:125 0 (const int) -0:125 Constant: -0:125 1 (const uint) -0:126 move second child to first child ( temp 3-component vector of int) -0:126 vector swizzle ( temp 3-component vector of int) -0:126 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:126 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:126 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:126 'invocation' ( temp uint) -0:126 Constant: -0:126 1 (const int) -0:126 Sequence -0:126 Constant: -0:126 0 (const int) -0:126 Constant: -0:126 1 (const int) -0:126 Constant: -0:126 2 (const int) -0:126 Convert bool to int ( temp 3-component vector of int) -0:126 subgroupClusteredOr ( global 3-component vector of bool) -0:126 Compare Less Than ( global 3-component vector of bool) -0:126 vector swizzle ( temp 3-component vector of int) -0:126 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:126 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:126 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:126 Constant: -0:126 1 (const int) -0:126 Constant: -0:126 1 (const int) -0:126 Sequence -0:126 Constant: -0:126 0 (const int) -0:126 Constant: -0:126 1 (const int) -0:126 Constant: -0:126 2 (const int) -0:126 Constant: -0:126 0 (const int) -0:126 0 (const int) -0:126 0 (const int) -0:126 Constant: -0:126 1 (const uint) -0:127 move second child to first child ( temp 4-component vector of int) -0:127 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:127 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:127 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:127 'invocation' ( temp uint) -0:127 Constant: -0:127 1 (const int) -0:127 Convert bool to int ( temp 4-component vector of int) -0:127 subgroupClusteredOr ( global 4-component vector of bool) -0:127 Compare Less Than ( global 4-component vector of bool) -0:127 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:127 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:127 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:127 Constant: -0:127 1 (const int) -0:127 Constant: -0:127 1 (const int) -0:127 Constant: -0:127 0 (const int) -0:127 0 (const int) -0:127 0 (const int) -0:127 0 (const int) -0:127 Constant: -0:127 1 (const uint) -0:129 move second child to first child ( temp int) -0:129 direct index ( temp int) -0:129 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:129 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:129 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:129 'invocation' ( temp uint) -0:129 Constant: -0:129 1 (const int) -0:129 Constant: -0:129 0 (const int) -0:129 subgroupClusteredXor ( global int) -0:129 direct index ( temp int) -0:129 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:129 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:129 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:129 Constant: -0:129 0 (const int) -0:129 Constant: -0:129 1 (const int) -0:129 Constant: -0:129 0 (const int) -0:129 Constant: -0:129 1 (const uint) -0:130 move second child to first child ( temp 2-component vector of int) -0:130 vector swizzle ( temp 2-component vector of int) -0:130 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:130 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:130 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:130 'invocation' ( temp uint) -0:130 Constant: -0:130 1 (const int) -0:130 Sequence -0:130 Constant: -0:130 0 (const int) -0:130 Constant: -0:130 1 (const int) -0:130 subgroupClusteredXor ( global 2-component vector of int) -0:130 vector swizzle ( temp 2-component vector of int) -0:130 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:130 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:130 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:130 Constant: -0:130 1 (const int) -0:130 Constant: -0:130 1 (const int) -0:130 Sequence -0:130 Constant: -0:130 0 (const int) -0:130 Constant: -0:130 1 (const int) -0:130 Constant: -0:130 1 (const uint) -0:131 move second child to first child ( temp 3-component vector of int) -0:131 vector swizzle ( temp 3-component vector of int) -0:131 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:131 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:131 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:131 'invocation' ( temp uint) -0:131 Constant: -0:131 1 (const int) -0:131 Sequence -0:131 Constant: -0:131 0 (const int) -0:131 Constant: -0:131 1 (const int) -0:131 Constant: -0:131 2 (const int) -0:131 subgroupClusteredXor ( global 3-component vector of int) -0:131 vector swizzle ( temp 3-component vector of int) -0:131 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:131 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:131 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:131 Constant: -0:131 2 (const int) -0:131 Constant: -0:131 1 (const int) -0:131 Sequence -0:131 Constant: -0:131 0 (const int) -0:131 Constant: -0:131 1 (const int) -0:131 Constant: -0:131 2 (const int) -0:131 Constant: -0:131 1 (const uint) -0:132 move second child to first child ( temp 4-component vector of int) -0:132 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:132 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:132 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:132 'invocation' ( temp uint) -0:132 Constant: -0:132 1 (const int) -0:132 subgroupClusteredXor ( global 4-component vector of int) -0:132 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:132 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:132 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:132 Constant: -0:132 3 (const int) -0:132 Constant: -0:132 1 (const int) -0:132 Constant: -0:132 1 (const uint) -0:134 move second child to first child ( temp uint) -0:134 direct index ( temp uint) -0:134 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:134 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:134 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:134 'invocation' ( temp uint) -0:134 Constant: -0:134 2 (const int) -0:134 Constant: -0:134 0 (const int) -0:134 subgroupClusteredXor ( global uint) -0:134 direct index ( temp uint) -0:134 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:134 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:134 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:134 Constant: -0:134 0 (const int) -0:134 Constant: -0:134 2 (const int) -0:134 Constant: -0:134 0 (const int) -0:134 Constant: -0:134 1 (const uint) -0:135 move second child to first child ( temp 2-component vector of uint) -0:135 vector swizzle ( temp 2-component vector of uint) -0:135 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:135 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:135 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:135 'invocation' ( temp uint) -0:135 Constant: -0:135 2 (const int) -0:135 Sequence -0:135 Constant: -0:135 0 (const int) -0:135 Constant: -0:135 1 (const int) -0:135 subgroupClusteredXor ( global 2-component vector of uint) -0:135 vector swizzle ( temp 2-component vector of uint) -0:135 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:135 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:135 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:135 Constant: -0:135 1 (const int) -0:135 Constant: -0:135 2 (const int) -0:135 Sequence -0:135 Constant: -0:135 0 (const int) -0:135 Constant: -0:135 1 (const int) -0:135 Constant: -0:135 1 (const uint) -0:136 move second child to first child ( temp 3-component vector of uint) -0:136 vector swizzle ( temp 3-component vector of uint) -0:136 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:136 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:136 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:136 'invocation' ( temp uint) -0:136 Constant: -0:136 2 (const int) -0:136 Sequence -0:136 Constant: -0:136 0 (const int) -0:136 Constant: -0:136 1 (const int) -0:136 Constant: -0:136 2 (const int) -0:136 subgroupClusteredXor ( global 3-component vector of uint) -0:136 vector swizzle ( temp 3-component vector of uint) -0:136 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:136 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:136 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:136 Constant: -0:136 2 (const int) -0:136 Constant: -0:136 2 (const int) -0:136 Sequence -0:136 Constant: -0:136 0 (const int) -0:136 Constant: -0:136 1 (const int) -0:136 Constant: -0:136 2 (const int) -0:136 Constant: -0:136 1 (const uint) -0:137 move second child to first child ( temp 4-component vector of uint) -0:137 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:137 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:137 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:137 'invocation' ( temp uint) -0:137 Constant: -0:137 2 (const int) -0:137 subgroupClusteredXor ( global 4-component vector of uint) -0:137 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:137 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:137 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:137 Constant: -0:137 3 (const int) -0:137 Constant: -0:137 2 (const int) -0:137 Constant: -0:137 1 (const uint) -0:139 move second child to first child ( temp int) -0:139 direct index ( temp int) -0:139 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:139 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:139 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:139 'invocation' ( temp uint) -0:139 Constant: -0:139 1 (const int) -0:139 Constant: -0:139 0 (const int) -0:139 Convert bool to int ( temp int) -0:139 subgroupClusteredXor ( global bool) -0:139 Compare Less Than ( temp bool) -0:139 direct index ( temp int) -0:139 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:139 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:139 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:139 Constant: -0:139 0 (const int) -0:139 Constant: -0:139 1 (const int) -0:139 Constant: -0:139 0 (const int) -0:139 Constant: -0:139 0 (const int) -0:139 Constant: -0:139 1 (const uint) -0:140 move second child to first child ( temp 2-component vector of int) -0:140 vector swizzle ( temp 2-component vector of int) -0:140 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:140 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:140 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:140 'invocation' ( temp uint) -0:140 Constant: -0:140 1 (const int) -0:140 Sequence -0:140 Constant: -0:140 0 (const int) -0:140 Constant: -0:140 1 (const int) -0:140 Convert bool to int ( temp 2-component vector of int) -0:140 subgroupClusteredXor ( global 2-component vector of bool) -0:140 Compare Less Than ( global 2-component vector of bool) -0:140 vector swizzle ( temp 2-component vector of int) -0:140 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:140 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:140 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:140 Constant: -0:140 1 (const int) -0:140 Constant: -0:140 1 (const int) -0:140 Sequence -0:140 Constant: -0:140 0 (const int) -0:140 Constant: -0:140 1 (const int) -0:140 Constant: -0:140 0 (const int) -0:140 0 (const int) -0:140 Constant: -0:140 1 (const uint) -0:141 move second child to first child ( temp 3-component vector of int) -0:141 vector swizzle ( temp 3-component vector of int) -0:141 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:141 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:141 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:141 'invocation' ( temp uint) -0:141 Constant: -0:141 1 (const int) -0:141 Sequence -0:141 Constant: -0:141 0 (const int) -0:141 Constant: -0:141 1 (const int) -0:141 Constant: -0:141 2 (const int) -0:141 Convert bool to int ( temp 3-component vector of int) -0:141 subgroupClusteredXor ( global 3-component vector of bool) -0:141 Compare Less Than ( global 3-component vector of bool) -0:141 vector swizzle ( temp 3-component vector of int) -0:141 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:141 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:141 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:141 Constant: -0:141 1 (const int) -0:141 Constant: -0:141 1 (const int) -0:141 Sequence -0:141 Constant: -0:141 0 (const int) -0:141 Constant: -0:141 1 (const int) -0:141 Constant: -0:141 2 (const int) -0:141 Constant: -0:141 0 (const int) -0:141 0 (const int) -0:141 0 (const int) -0:141 Constant: -0:141 1 (const uint) -0:142 move second child to first child ( temp 4-component vector of int) -0:142 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:142 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:142 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:142 'invocation' ( temp uint) -0:142 Constant: -0:142 1 (const int) -0:142 Convert bool to int ( temp 4-component vector of int) -0:142 subgroupClusteredXor ( global 4-component vector of bool) -0:142 Compare Less Than ( global 4-component vector of bool) -0:142 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:142 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:142 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:142 Constant: -0:142 1 (const int) -0:142 Constant: -0:142 1 (const int) -0:142 Constant: -0:142 0 (const int) -0:142 0 (const int) -0:142 0 (const int) -0:142 0 (const int) -0:142 Constant: -0:142 1 (const uint) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) - diff --git a/deps/glslang/Test/baseResults/glsl.450.subgroupClusteredNeg.comp.out b/deps/glslang/Test/baseResults/glsl.450.subgroupClusteredNeg.comp.out deleted file mode 100644 index 89ba8875..00000000 --- a/deps/glslang/Test/baseResults/glsl.450.subgroupClusteredNeg.comp.out +++ /dev/null @@ -1,668 +0,0 @@ -glsl.450.subgroupClusteredNeg.comp -ERROR: 0:22: 'cluster size' : argument must be at least 1 -ERROR: 0:24: 'cluster size' : argument must be a power of 2 -ERROR: 0:27: 'cluster size' : argument must be a power of 2 -ERROR: 0:29: 'cluster size' : argument must be at least 1 -ERROR: 0:31: 'cluster size' : argument must be at least 1 -ERROR: 0:33: 'cluster size' : argument must be compile-time constant -ERROR: 0:36: 'cluster size' : argument must be compile-time constant -ERROR: 0:37: 'cluster size' : argument must be compile-time constant -ERROR: 8 compilation errors. No code generated. - - -Shader version: 450 -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_clustered -local_size = (8, 1, 1) -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 int) -0:17 'a' ( temp int) -0:17 Constant: -0:17 1 (const int) -0:20 Sequence -0:20 move second child to first child ( temp uint) -0:20 'invocation' ( temp uint) -0:20 mod ( temp uint) -0:20 add ( temp uint) -0:20 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:20 'gl_SubgroupSize' ( in uint SubgroupSize) -0:20 Constant: -0:20 4 (const uint) -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 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:22 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'invocation' ( temp uint) -0:22 Constant: -0:22 0 (const int) -0:22 Sequence -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 subgroupClusteredAdd ( global 2-component vector of float) -0:22 vector swizzle ( temp 2-component vector of float) -0:22 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:22 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 Constant: -0:22 1 (const int) -0:22 Constant: -0:22 0 (const int) -0:22 Sequence -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 Constant: -0:22 0 (const uint) -0:24 move second child to first child ( temp float) -0:24 direct index ( temp float) -0:24 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:24 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'invocation' ( temp uint) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 0 (const int) -0:24 subgroupClusteredMul ( global float) -0:24 direct index ( temp float) -0:24 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 3 (const uint) -0:26 move second child to first child ( temp 2-component vector of int) -0:26 vector swizzle ( temp 2-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:26 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'invocation' ( temp uint) -0:26 Constant: -0:26 1 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 subgroupClusteredMin ( global 2-component vector of int) -0:26 vector swizzle ( temp 2-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 8 (const uint) -0:27 move second child to first child ( temp 3-component vector of int) -0:27 vector swizzle ( temp 3-component vector of int) -0:27 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:27 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'invocation' ( temp uint) -0:27 Constant: -0:27 1 (const int) -0:27 Sequence -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Constant: -0:27 2 (const int) -0:27 subgroupClusteredMin ( global 3-component vector of int) -0:27 vector swizzle ( temp 3-component vector of int) -0:27 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:27 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 Constant: -0:27 2 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Sequence -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Constant: -0:27 2 (const int) -0:27 Constant: -0:27 6 (const uint) -0:29 move second child to first child ( temp float) -0:29 direct index ( temp float) -0:29 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:29 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'invocation' ( temp uint) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 0 (const int) -0:29 subgroupClusteredMax ( global float) -0:29 direct index ( temp float) -0:29 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 4294967295 (const uint) -0:31 move second child to first child ( temp 4-component vector of int) -0:31 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:31 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'invocation' ( temp uint) -0:31 Constant: -0:31 1 (const int) -0:31 subgroupClusteredAnd ( global 4-component vector of int) -0:31 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 Constant: -0:31 3 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 4294967293 (const uint) -0:33 move second child to first child ( temp int) -0:33 direct index ( temp int) -0:33 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:33 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:33 'invocation' ( temp uint) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 subgroupClusteredOr ( global int) -0:33 direct index ( temp int) -0:33 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 Convert int to uint ( temp uint) -0:33 'a' ( temp int) -0:34 move second child to first child ( temp 2-component vector of int) -0:34 vector swizzle ( temp 2-component vector of int) -0:34 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:34 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'invocation' ( temp uint) -0:34 Constant: -0:34 1 (const int) -0:34 Sequence -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 subgroupClusteredOr ( global 2-component vector of int) -0:34 vector swizzle ( temp 2-component vector of int) -0:34 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 Constant: -0:34 1 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 Sequence -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 Constant: -0:34 1 (const uint) -0:36 move second child to first child ( temp int) -0:36 direct index ( temp int) -0:36 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:36 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'invocation' ( temp uint) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 subgroupClusteredXor ( global int) -0:36 direct index ( temp int) -0:36 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 Convert int to uint ( temp uint) -0:36 add ( temp int) -0:36 Constant: -0:36 1 (const int) -0:36 'a' ( temp int) -0:37 move second child to first child ( temp 2-component vector of int) -0:37 vector swizzle ( temp 2-component vector of int) -0:37 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:37 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'invocation' ( temp uint) -0:37 Constant: -0:37 1 (const int) -0:37 Sequence -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 1 (const int) -0:37 subgroupClusteredXor ( global 2-component vector of int) -0:37 vector swizzle ( temp 2-component vector of int) -0:37 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:37 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 Constant: -0:37 1 (const int) -0:37 Constant: -0:37 1 (const int) -0:37 Sequence -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 1 (const int) -0:37 Convert int to uint ( temp uint) -0:37 add ( temp int) -0:37 Constant: -0:37 1 (const int) -0:37 'a' ( temp int) -0:38 move second child to first child ( temp 3-component vector of int) -0:38 vector swizzle ( temp 3-component vector of int) -0:38 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:38 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:38 'invocation' ( temp uint) -0:38 Constant: -0:38 1 (const int) -0:38 Sequence -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 1 (const int) -0:38 Constant: -0:38 2 (const int) -0:38 subgroupClusteredXor ( global 3-component vector of int) -0:38 vector swizzle ( temp 3-component vector of int) -0:38 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:38 Constant: -0:38 2 (const int) -0:38 Constant: -0:38 1 (const int) -0:38 Sequence -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 1 (const int) -0:38 Constant: -0:38 2 (const int) -0:38 Constant: -0:38 2 (const uint) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) - - -Linked compute stage: - - -Shader version: 450 -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_clustered -local_size = (8, 1, 1) -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 int) -0:17 'a' ( temp int) -0:17 Constant: -0:17 1 (const int) -0:20 Sequence -0:20 move second child to first child ( temp uint) -0:20 'invocation' ( temp uint) -0:20 mod ( temp uint) -0:20 add ( temp uint) -0:20 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:20 'gl_SubgroupSize' ( in uint SubgroupSize) -0:20 Constant: -0:20 4 (const uint) -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 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:22 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'invocation' ( temp uint) -0:22 Constant: -0:22 0 (const int) -0:22 Sequence -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 subgroupClusteredAdd ( global 2-component vector of float) -0:22 vector swizzle ( temp 2-component vector of float) -0:22 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:22 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 Constant: -0:22 1 (const int) -0:22 Constant: -0:22 0 (const int) -0:22 Sequence -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 Constant: -0:22 0 (const uint) -0:24 move second child to first child ( temp float) -0:24 direct index ( temp float) -0:24 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:24 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'invocation' ( temp uint) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 0 (const int) -0:24 subgroupClusteredMul ( global float) -0:24 direct index ( temp float) -0:24 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 3 (const uint) -0:26 move second child to first child ( temp 2-component vector of int) -0:26 vector swizzle ( temp 2-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:26 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'invocation' ( temp uint) -0:26 Constant: -0:26 1 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 subgroupClusteredMin ( global 2-component vector of int) -0:26 vector swizzle ( temp 2-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 8 (const uint) -0:27 move second child to first child ( temp 3-component vector of int) -0:27 vector swizzle ( temp 3-component vector of int) -0:27 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:27 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'invocation' ( temp uint) -0:27 Constant: -0:27 1 (const int) -0:27 Sequence -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Constant: -0:27 2 (const int) -0:27 subgroupClusteredMin ( global 3-component vector of int) -0:27 vector swizzle ( temp 3-component vector of int) -0:27 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:27 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 Constant: -0:27 2 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Sequence -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Constant: -0:27 2 (const int) -0:27 Constant: -0:27 6 (const uint) -0:29 move second child to first child ( temp float) -0:29 direct index ( temp float) -0:29 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:29 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'invocation' ( temp uint) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 0 (const int) -0:29 subgroupClusteredMax ( global float) -0:29 direct index ( temp float) -0:29 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 4294967295 (const uint) -0:31 move second child to first child ( temp 4-component vector of int) -0:31 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:31 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'invocation' ( temp uint) -0:31 Constant: -0:31 1 (const int) -0:31 subgroupClusteredAnd ( global 4-component vector of int) -0:31 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 Constant: -0:31 3 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 4294967293 (const uint) -0:33 move second child to first child ( temp int) -0:33 direct index ( temp int) -0:33 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:33 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:33 'invocation' ( temp uint) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 subgroupClusteredOr ( global int) -0:33 direct index ( temp int) -0:33 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 Convert int to uint ( temp uint) -0:33 'a' ( temp int) -0:34 move second child to first child ( temp 2-component vector of int) -0:34 vector swizzle ( temp 2-component vector of int) -0:34 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:34 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'invocation' ( temp uint) -0:34 Constant: -0:34 1 (const int) -0:34 Sequence -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 subgroupClusteredOr ( global 2-component vector of int) -0:34 vector swizzle ( temp 2-component vector of int) -0:34 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 Constant: -0:34 1 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 Sequence -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 Constant: -0:34 1 (const uint) -0:36 move second child to first child ( temp int) -0:36 direct index ( temp int) -0:36 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:36 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'invocation' ( temp uint) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 subgroupClusteredXor ( global int) -0:36 direct index ( temp int) -0:36 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 Convert int to uint ( temp uint) -0:36 add ( temp int) -0:36 Constant: -0:36 1 (const int) -0:36 'a' ( temp int) -0:37 move second child to first child ( temp 2-component vector of int) -0:37 vector swizzle ( temp 2-component vector of int) -0:37 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:37 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'invocation' ( temp uint) -0:37 Constant: -0:37 1 (const int) -0:37 Sequence -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 1 (const int) -0:37 subgroupClusteredXor ( global 2-component vector of int) -0:37 vector swizzle ( temp 2-component vector of int) -0:37 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:37 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 Constant: -0:37 1 (const int) -0:37 Constant: -0:37 1 (const int) -0:37 Sequence -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 1 (const int) -0:37 Convert int to uint ( temp uint) -0:37 add ( temp int) -0:37 Constant: -0:37 1 (const int) -0:37 'a' ( temp int) -0:38 move second child to first child ( temp 3-component vector of int) -0:38 vector swizzle ( temp 3-component vector of int) -0:38 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:38 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:38 'invocation' ( temp uint) -0:38 Constant: -0:38 1 (const int) -0:38 Sequence -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 1 (const int) -0:38 Constant: -0:38 2 (const int) -0:38 subgroupClusteredXor ( global 3-component vector of int) -0:38 vector swizzle ( temp 3-component vector of int) -0:38 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:38 Constant: -0:38 2 (const int) -0:38 Constant: -0:38 1 (const int) -0:38 Sequence -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 1 (const int) -0:38 Constant: -0:38 2 (const int) -0:38 Constant: -0:38 2 (const uint) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) - diff --git a/deps/glslang/Test/baseResults/glsl.450.subgroupPartitioned.comp.out b/deps/glslang/Test/baseResults/glsl.450.subgroupPartitioned.comp.out deleted file mode 100644 index 853e0836..00000000 --- a/deps/glslang/Test/baseResults/glsl.450.subgroupPartitioned.comp.out +++ /dev/null @@ -1,15937 +0,0 @@ -glsl.450.subgroupPartitioned.comp -Shader version: 450 -Requested GL_KHR_shader_subgroup_basic -Requested GL_NV_shader_subgroup_partitioned -local_size = (8, 1, 1) -0:? Sequence -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 uint) -0:17 'invocation' ( temp uint) -0:17 mod ( temp uint) -0:17 add ( temp uint) -0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:17 'gl_SubgroupSize' ( in uint SubgroupSize) -0:17 Constant: -0:17 4 (const uint) -0:19 Sequence -0:19 move second child to first child ( temp 4-component vector of uint) -0:19 'ballot' ( temp 4-component vector of uint) -0:19 subgroupPartitionNV ( global 4-component vector of uint) -0:19 'invocation' ( temp uint) -0:21 move second child to first child ( temp 4-component vector of uint) -0:21 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:21 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 'invocation' ( temp uint) -0:21 Constant: -0:21 2 (const int) -0:21 subgroupPartitionNV ( global 4-component vector of uint) -0:21 direct index ( temp float) -0:21 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 0 (const int) -0:22 move second child to first child ( temp 4-component vector of uint) -0:22 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:22 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'invocation' ( temp uint) -0:22 Constant: -0:22 2 (const int) -0:22 subgroupPartitionNV ( global 4-component vector of uint) -0:22 vector swizzle ( temp 2-component vector of float) -0:22 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:22 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 0 (const int) -0:22 Sequence -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:23 move second child to first child ( temp 4-component vector of uint) -0:23 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:23 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:23 'invocation' ( temp uint) -0:23 Constant: -0:23 2 (const int) -0:23 subgroupPartitionNV ( global 4-component vector of uint) -0:23 vector swizzle ( temp 3-component vector of float) -0:23 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 0 (const int) -0:23 Sequence -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 2 (const int) -0:24 move second child to first child ( temp 4-component vector of uint) -0:24 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:24 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'invocation' ( temp uint) -0:24 Constant: -0:24 2 (const int) -0:24 subgroupPartitionNV ( global 4-component vector of uint) -0:24 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 0 (const int) -0:26 move second child to first child ( temp 4-component vector of uint) -0:26 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:26 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'invocation' ( temp uint) -0:26 Constant: -0:26 2 (const int) -0:26 subgroupPartitionNV ( global 4-component vector of uint) -0:26 direct index ( temp int) -0:26 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 0 (const int) -0:27 move second child to first child ( temp 4-component vector of uint) -0:27 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:27 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'invocation' ( temp uint) -0:27 Constant: -0:27 2 (const int) -0:27 subgroupPartitionNV ( global 4-component vector of uint) -0:27 vector swizzle ( temp 2-component vector of int) -0:27 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:27 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Sequence -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 1 (const int) -0:28 move second child to first child ( temp 4-component vector of uint) -0:28 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:28 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:28 'invocation' ( temp uint) -0:28 Constant: -0:28 2 (const int) -0:28 subgroupPartitionNV ( global 4-component vector of uint) -0:28 vector swizzle ( temp 3-component vector of int) -0:28 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 1 (const int) -0:28 Sequence -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 1 (const int) -0:28 Constant: -0:28 2 (const int) -0:29 move second child to first child ( temp 4-component vector of uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:29 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'invocation' ( temp uint) -0:29 Constant: -0:29 2 (const int) -0:29 subgroupPartitionNV ( global 4-component vector of uint) -0:29 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 1 (const int) -0:31 move second child to first child ( temp 4-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:31 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'invocation' ( temp uint) -0:31 Constant: -0:31 2 (const int) -0:31 subgroupPartitionNV ( global 4-component vector of uint) -0:31 direct index ( temp uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 Constant: -0:31 0 (const int) -0:32 move second child to first child ( temp 4-component vector of uint) -0:32 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:32 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'invocation' ( temp uint) -0:32 Constant: -0:32 2 (const int) -0:32 subgroupPartitionNV ( global 4-component vector of uint) -0:32 vector swizzle ( temp 2-component vector of uint) -0:32 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 2 (const int) -0:32 Sequence -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 1 (const int) -0:33 move second child to first child ( temp 4-component vector of uint) -0:33 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:33 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:33 'invocation' ( temp uint) -0:33 Constant: -0:33 2 (const int) -0:33 subgroupPartitionNV ( global 4-component vector of uint) -0:33 vector swizzle ( temp 3-component vector of uint) -0:33 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 2 (const int) -0:33 Sequence -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 2 (const int) -0:34 move second child to first child ( temp 4-component vector of uint) -0:34 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:34 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'invocation' ( temp uint) -0:34 Constant: -0:34 2 (const int) -0:34 subgroupPartitionNV ( global 4-component vector of uint) -0:34 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 2 (const int) -0:36 move second child to first child ( temp 4-component vector of uint) -0:36 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:36 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'invocation' ( temp uint) -0:36 Constant: -0:36 2 (const int) -0:36 subgroupPartitionNV ( global 4-component vector of uint) -0:36 direct index ( temp double) -0:36 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 3 (const int) -0:36 Constant: -0:36 0 (const int) -0:37 move second child to first child ( temp 4-component vector of uint) -0:37 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:37 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'invocation' ( temp uint) -0:37 Constant: -0:37 2 (const int) -0:37 subgroupPartitionNV ( global 4-component vector of uint) -0:37 vector swizzle ( temp 2-component vector of double) -0:37 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:37 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 3 (const int) -0:37 Sequence -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 1 (const int) -0:38 move second child to first child ( temp 4-component vector of uint) -0:38 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:38 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:38 'invocation' ( temp uint) -0:38 Constant: -0:38 2 (const int) -0:38 subgroupPartitionNV ( global 4-component vector of uint) -0:38 vector swizzle ( temp 3-component vector of double) -0:38 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 3 (const int) -0:38 Sequence -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 1 (const int) -0:38 Constant: -0:38 2 (const int) -0:39 move second child to first child ( temp 4-component vector of uint) -0:39 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:39 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'invocation' ( temp uint) -0:39 Constant: -0:39 2 (const int) -0:39 subgroupPartitionNV ( global 4-component vector of uint) -0:39 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 3 (const int) -0:41 move second child to first child ( temp 4-component vector of uint) -0:41 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:41 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'invocation' ( temp uint) -0:41 Constant: -0:41 2 (const int) -0:41 subgroupPartitionNV ( global 4-component vector of uint) -0:41 Convert int to bool ( temp bool) -0:41 direct index ( temp int) -0:41 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 0 (const int) -0:42 move second child to first child ( temp 4-component vector of uint) -0:42 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:42 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'invocation' ( temp uint) -0:42 Constant: -0:42 2 (const int) -0:42 subgroupPartitionNV ( global 4-component vector of uint) -0:42 Convert int to bool ( temp 2-component vector of bool) -0:42 vector swizzle ( temp 2-component vector of int) -0:42 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:42 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Sequence -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:43 move second child to first child ( temp 4-component vector of uint) -0:43 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:43 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:43 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:43 'invocation' ( temp uint) -0:43 Constant: -0:43 2 (const int) -0:43 subgroupPartitionNV ( global 4-component vector of uint) -0:43 Convert int to bool ( temp 3-component vector of bool) -0:43 vector swizzle ( temp 3-component vector of int) -0:43 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:43 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:43 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:43 Constant: -0:43 0 (const int) -0:43 Constant: -0:43 1 (const int) -0:43 Sequence -0:43 Constant: -0:43 0 (const int) -0:43 Constant: -0:43 1 (const int) -0:43 Constant: -0:43 2 (const int) -0:44 move second child to first child ( temp 4-component vector of uint) -0:44 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:44 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'invocation' ( temp uint) -0:44 Constant: -0:44 2 (const int) -0:44 subgroupPartitionNV ( global 4-component vector of uint) -0:44 Convert int to bool ( temp 4-component vector of bool) -0:44 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 1 (const int) -0:46 move second child to first child ( temp float) -0:46 direct index ( temp float) -0:46 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:46 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'invocation' ( temp uint) -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 0 (const int) -0:46 subgroupPartitionedAddNV ( global float) -0:46 direct index ( temp float) -0:46 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 0 (const int) -0:46 'ballot' ( temp 4-component vector of uint) -0:47 move second child to first child ( temp 2-component vector of float) -0:47 vector swizzle ( temp 2-component vector of float) -0:47 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:47 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'invocation' ( temp uint) -0:47 Constant: -0:47 0 (const int) -0:47 Sequence -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 1 (const int) -0:47 subgroupPartitionedAddNV ( global 2-component vector of float) -0:47 vector swizzle ( temp 2-component vector of float) -0:47 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:47 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 Constant: -0:47 1 (const int) -0:47 Constant: -0:47 0 (const int) -0:47 Sequence -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 1 (const int) -0:47 'ballot' ( temp 4-component vector of uint) -0:48 move second child to first child ( temp 3-component vector of float) -0:48 vector swizzle ( temp 3-component vector of float) -0:48 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:48 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:48 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:48 'invocation' ( temp uint) -0:48 Constant: -0:48 0 (const int) -0:48 Sequence -0:48 Constant: -0:48 0 (const int) -0:48 Constant: -0:48 1 (const int) -0:48 Constant: -0:48 2 (const int) -0:48 subgroupPartitionedAddNV ( global 3-component vector of float) -0:48 vector swizzle ( temp 3-component vector of float) -0:48 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:48 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:48 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:48 Constant: -0:48 2 (const int) -0:48 Constant: -0:48 0 (const int) -0:48 Sequence -0:48 Constant: -0:48 0 (const int) -0:48 Constant: -0:48 1 (const int) -0:48 Constant: -0:48 2 (const int) -0:48 'ballot' ( temp 4-component vector of uint) -0:49 move second child to first child ( temp 4-component vector of float) -0:49 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:49 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'invocation' ( temp uint) -0:49 Constant: -0:49 0 (const int) -0:49 subgroupPartitionedAddNV ( global 4-component vector of float) -0:49 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:49 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 Constant: -0:49 3 (const int) -0:49 Constant: -0:49 0 (const int) -0:49 'ballot' ( temp 4-component vector of uint) -0:51 move second child to first child ( temp int) -0:51 direct index ( temp int) -0:51 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:51 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'invocation' ( temp uint) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 0 (const int) -0:51 subgroupPartitionedAddNV ( global int) -0:51 direct index ( temp int) -0:51 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 0 (const int) -0:51 'ballot' ( temp 4-component vector of uint) -0:52 move second child to first child ( temp 2-component vector of int) -0:52 vector swizzle ( temp 2-component vector of int) -0:52 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:52 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'invocation' ( temp uint) -0:52 Constant: -0:52 1 (const int) -0:52 Sequence -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 1 (const int) -0:52 subgroupPartitionedAddNV ( global 2-component vector of int) -0:52 vector swizzle ( temp 2-component vector of int) -0:52 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:52 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 Constant: -0:52 1 (const int) -0:52 Constant: -0:52 1 (const int) -0:52 Sequence -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 1 (const int) -0:52 'ballot' ( temp 4-component vector of uint) -0:53 move second child to first child ( temp 3-component vector of int) -0:53 vector swizzle ( temp 3-component vector of int) -0:53 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:53 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:53 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:53 'invocation' ( temp uint) -0:53 Constant: -0:53 1 (const int) -0:53 Sequence -0:53 Constant: -0:53 0 (const int) -0:53 Constant: -0:53 1 (const int) -0:53 Constant: -0:53 2 (const int) -0:53 subgroupPartitionedAddNV ( global 3-component vector of int) -0:53 vector swizzle ( temp 3-component vector of int) -0:53 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:53 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:53 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:53 Constant: -0:53 2 (const int) -0:53 Constant: -0:53 1 (const int) -0:53 Sequence -0:53 Constant: -0:53 0 (const int) -0:53 Constant: -0:53 1 (const int) -0:53 Constant: -0:53 2 (const int) -0:53 'ballot' ( temp 4-component vector of uint) -0:54 move second child to first child ( temp 4-component vector of int) -0:54 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:54 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'invocation' ( temp uint) -0:54 Constant: -0:54 1 (const int) -0:54 subgroupPartitionedAddNV ( global 4-component vector of int) -0:54 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:54 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 Constant: -0:54 3 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 'ballot' ( temp 4-component vector of uint) -0:56 move second child to first child ( temp uint) -0:56 direct index ( temp uint) -0:56 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:56 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'invocation' ( temp uint) -0:56 Constant: -0:56 2 (const int) -0:56 Constant: -0:56 0 (const int) -0:56 subgroupPartitionedAddNV ( global uint) -0:56 direct index ( temp uint) -0:56 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 2 (const int) -0:56 Constant: -0:56 0 (const int) -0:56 'ballot' ( temp 4-component vector of uint) -0:57 move second child to first child ( temp 2-component vector of uint) -0:57 vector swizzle ( temp 2-component vector of uint) -0:57 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:57 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'invocation' ( temp uint) -0:57 Constant: -0:57 2 (const int) -0:57 Sequence -0:57 Constant: -0:57 0 (const int) -0:57 Constant: -0:57 1 (const int) -0:57 subgroupPartitionedAddNV ( global 2-component vector of uint) -0:57 vector swizzle ( temp 2-component vector of uint) -0:57 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:57 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 Constant: -0:57 1 (const int) -0:57 Constant: -0:57 2 (const int) -0:57 Sequence -0:57 Constant: -0:57 0 (const int) -0:57 Constant: -0:57 1 (const int) -0:57 'ballot' ( temp 4-component vector of uint) -0:58 move second child to first child ( temp 3-component vector of uint) -0:58 vector swizzle ( temp 3-component vector of uint) -0:58 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:58 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:58 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:58 'invocation' ( temp uint) -0:58 Constant: -0:58 2 (const int) -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 subgroupPartitionedAddNV ( global 3-component vector of uint) -0:58 vector swizzle ( temp 3-component vector of uint) -0:58 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:58 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:58 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:58 Constant: -0:58 2 (const int) -0:58 Constant: -0:58 2 (const int) -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 'ballot' ( temp 4-component vector of uint) -0:59 move second child to first child ( temp 4-component vector of uint) -0:59 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:59 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 'invocation' ( temp uint) -0:59 Constant: -0:59 2 (const int) -0:59 subgroupPartitionedAddNV ( global 4-component vector of uint) -0:59 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:59 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 Constant: -0:59 3 (const int) -0:59 Constant: -0:59 2 (const int) -0:59 'ballot' ( temp 4-component vector of uint) -0:61 move second child to first child ( temp double) -0:61 direct index ( temp double) -0:61 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:61 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'invocation' ( temp uint) -0:61 Constant: -0:61 3 (const int) -0:61 Constant: -0:61 0 (const int) -0:61 subgroupPartitionedAddNV ( global double) -0:61 direct index ( temp double) -0:61 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:61 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 3 (const int) -0:61 Constant: -0:61 0 (const int) -0:61 'ballot' ( temp 4-component vector of uint) -0:62 move second child to first child ( temp 2-component vector of double) -0:62 vector swizzle ( temp 2-component vector of double) -0:62 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:62 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'invocation' ( temp uint) -0:62 Constant: -0:62 3 (const int) -0:62 Sequence -0:62 Constant: -0:62 0 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 subgroupPartitionedAddNV ( global 2-component vector of double) -0:62 vector swizzle ( temp 2-component vector of double) -0:62 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:62 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 Constant: -0:62 1 (const int) -0:62 Constant: -0:62 3 (const int) -0:62 Sequence -0:62 Constant: -0:62 0 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 'ballot' ( temp 4-component vector of uint) -0:63 move second child to first child ( temp 3-component vector of double) -0:63 vector swizzle ( temp 3-component vector of double) -0:63 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:63 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:63 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:63 'invocation' ( temp uint) -0:63 Constant: -0:63 3 (const int) -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 subgroupPartitionedAddNV ( global 3-component vector of double) -0:63 vector swizzle ( temp 3-component vector of double) -0:63 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:63 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:63 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:63 Constant: -0:63 2 (const int) -0:63 Constant: -0:63 3 (const int) -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 'ballot' ( temp 4-component vector of uint) -0:64 move second child to first child ( temp 4-component vector of double) -0:64 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:64 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'invocation' ( temp uint) -0:64 Constant: -0:64 3 (const int) -0:64 subgroupPartitionedAddNV ( global 4-component vector of double) -0:64 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:64 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 Constant: -0:64 3 (const int) -0:64 Constant: -0:64 3 (const int) -0:64 'ballot' ( temp 4-component vector of uint) -0:66 move second child to first child ( temp float) -0:66 direct index ( temp float) -0:66 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:66 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'invocation' ( temp uint) -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 0 (const int) -0:66 subgroupPartitionedMulNV ( global float) -0:66 direct index ( temp float) -0:66 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:66 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 0 (const int) -0:66 'ballot' ( temp 4-component vector of uint) -0:67 move second child to first child ( temp 2-component vector of float) -0:67 vector swizzle ( temp 2-component vector of float) -0:67 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:67 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'invocation' ( temp uint) -0:67 Constant: -0:67 0 (const int) -0:67 Sequence -0:67 Constant: -0:67 0 (const int) -0:67 Constant: -0:67 1 (const int) -0:67 subgroupPartitionedMulNV ( global 2-component vector of float) -0:67 vector swizzle ( temp 2-component vector of float) -0:67 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:67 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 Constant: -0:67 1 (const int) -0:67 Constant: -0:67 0 (const int) -0:67 Sequence -0:67 Constant: -0:67 0 (const int) -0:67 Constant: -0:67 1 (const int) -0:67 'ballot' ( temp 4-component vector of uint) -0:68 move second child to first child ( temp 3-component vector of float) -0:68 vector swizzle ( temp 3-component vector of float) -0:68 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:68 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:68 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:68 'invocation' ( temp uint) -0:68 Constant: -0:68 0 (const int) -0:68 Sequence -0:68 Constant: -0:68 0 (const int) -0:68 Constant: -0:68 1 (const int) -0:68 Constant: -0:68 2 (const int) -0:68 subgroupPartitionedMulNV ( global 3-component vector of float) -0:68 vector swizzle ( temp 3-component vector of float) -0:68 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:68 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:68 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:68 Constant: -0:68 2 (const int) -0:68 Constant: -0:68 0 (const int) -0:68 Sequence -0:68 Constant: -0:68 0 (const int) -0:68 Constant: -0:68 1 (const int) -0:68 Constant: -0:68 2 (const int) -0:68 'ballot' ( temp 4-component vector of uint) -0:69 move second child to first child ( temp 4-component vector of float) -0:69 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:69 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 'invocation' ( temp uint) -0:69 Constant: -0:69 0 (const int) -0:69 subgroupPartitionedMulNV ( global 4-component vector of float) -0:69 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:69 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 Constant: -0:69 3 (const int) -0:69 Constant: -0:69 0 (const int) -0:69 'ballot' ( temp 4-component vector of uint) -0:71 move second child to first child ( temp int) -0:71 direct index ( temp int) -0:71 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:71 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:71 'invocation' ( temp uint) -0:71 Constant: -0:71 1 (const int) -0:71 Constant: -0:71 0 (const int) -0:71 subgroupPartitionedMulNV ( global int) -0:71 direct index ( temp int) -0:71 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:71 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -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:71 'ballot' ( temp 4-component vector of uint) -0:72 move second child to first child ( temp 2-component vector of int) -0:72 vector swizzle ( temp 2-component vector of int) -0:72 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:72 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 'invocation' ( temp uint) -0:72 Constant: -0:72 1 (const int) -0:72 Sequence -0:72 Constant: -0:72 0 (const int) -0:72 Constant: -0:72 1 (const int) -0:72 subgroupPartitionedMulNV ( global 2-component vector of int) -0:72 vector swizzle ( temp 2-component vector of int) -0:72 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:72 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 Constant: -0:72 1 (const int) -0:72 Constant: -0:72 1 (const int) -0:72 Sequence -0:72 Constant: -0:72 0 (const int) -0:72 Constant: -0:72 1 (const int) -0:72 'ballot' ( temp 4-component vector of uint) -0:73 move second child to first child ( temp 3-component vector of int) -0:73 vector swizzle ( temp 3-component vector of int) -0:73 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:73 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:73 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:73 'invocation' ( temp uint) -0:73 Constant: -0:73 1 (const int) -0:73 Sequence -0:73 Constant: -0:73 0 (const int) -0:73 Constant: -0:73 1 (const int) -0:73 Constant: -0:73 2 (const int) -0:73 subgroupPartitionedMulNV ( global 3-component vector of int) -0:73 vector swizzle ( temp 3-component vector of int) -0:73 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:73 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:73 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:73 Constant: -0:73 2 (const int) -0:73 Constant: -0:73 1 (const int) -0:73 Sequence -0:73 Constant: -0:73 0 (const int) -0:73 Constant: -0:73 1 (const int) -0:73 Constant: -0:73 2 (const int) -0:73 'ballot' ( temp 4-component vector of uint) -0:74 move second child to first child ( temp 4-component vector of int) -0:74 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:74 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 'invocation' ( temp uint) -0:74 Constant: -0:74 1 (const int) -0:74 subgroupPartitionedMulNV ( global 4-component vector of int) -0:74 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:74 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 Constant: -0:74 3 (const int) -0:74 Constant: -0:74 1 (const int) -0:74 'ballot' ( temp 4-component vector of uint) -0:76 move second child to first child ( temp uint) -0:76 direct index ( temp uint) -0:76 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:76 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 'invocation' ( temp uint) -0:76 Constant: -0:76 2 (const int) -0:76 Constant: -0:76 0 (const int) -0:76 subgroupPartitionedMulNV ( global uint) -0:76 direct index ( temp uint) -0:76 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:76 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 Constant: -0:76 0 (const int) -0:76 Constant: -0:76 2 (const int) -0:76 Constant: -0:76 0 (const int) -0:76 'ballot' ( temp 4-component vector of uint) -0:77 move second child to first child ( temp 2-component vector of uint) -0:77 vector swizzle ( temp 2-component vector of uint) -0:77 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:77 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 'invocation' ( temp uint) -0:77 Constant: -0:77 2 (const int) -0:77 Sequence -0:77 Constant: -0:77 0 (const int) -0:77 Constant: -0:77 1 (const int) -0:77 subgroupPartitionedMulNV ( global 2-component vector of uint) -0:77 vector swizzle ( temp 2-component vector of uint) -0:77 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:77 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 Constant: -0:77 1 (const int) -0:77 Constant: -0:77 2 (const int) -0:77 Sequence -0:77 Constant: -0:77 0 (const int) -0:77 Constant: -0:77 1 (const int) -0:77 'ballot' ( temp 4-component vector of uint) -0:78 move second child to first child ( temp 3-component vector of uint) -0:78 vector swizzle ( temp 3-component vector of uint) -0:78 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:78 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:78 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:78 'invocation' ( temp uint) -0:78 Constant: -0:78 2 (const int) -0:78 Sequence -0:78 Constant: -0:78 0 (const int) -0:78 Constant: -0:78 1 (const int) -0:78 Constant: -0:78 2 (const int) -0:78 subgroupPartitionedMulNV ( global 3-component vector of uint) -0:78 vector swizzle ( temp 3-component vector of uint) -0:78 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:78 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:78 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:78 Constant: -0:78 2 (const int) -0:78 Constant: -0:78 2 (const int) -0:78 Sequence -0:78 Constant: -0:78 0 (const int) -0:78 Constant: -0:78 1 (const int) -0:78 Constant: -0:78 2 (const int) -0:78 'ballot' ( temp 4-component vector of uint) -0:79 move second child to first child ( temp 4-component vector of uint) -0:79 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:79 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 'invocation' ( temp uint) -0:79 Constant: -0:79 2 (const int) -0:79 subgroupPartitionedMulNV ( global 4-component vector of uint) -0:79 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:79 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 Constant: -0:79 3 (const int) -0:79 Constant: -0:79 2 (const int) -0:79 'ballot' ( temp 4-component vector of uint) -0:81 move second child to first child ( temp double) -0:81 direct index ( temp double) -0:81 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:81 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 'invocation' ( temp uint) -0:81 Constant: -0:81 3 (const int) -0:81 Constant: -0:81 0 (const int) -0:81 subgroupPartitionedMulNV ( global double) -0:81 direct index ( temp double) -0:81 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:81 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 3 (const int) -0:81 Constant: -0:81 0 (const int) -0:81 'ballot' ( temp 4-component vector of uint) -0:82 move second child to first child ( temp 2-component vector of double) -0:82 vector swizzle ( temp 2-component vector of double) -0:82 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:82 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 'invocation' ( temp uint) -0:82 Constant: -0:82 3 (const int) -0:82 Sequence -0:82 Constant: -0:82 0 (const int) -0:82 Constant: -0:82 1 (const int) -0:82 subgroupPartitionedMulNV ( global 2-component vector of double) -0:82 vector swizzle ( temp 2-component vector of double) -0:82 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:82 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 Constant: -0:82 1 (const int) -0:82 Constant: -0:82 3 (const int) -0:82 Sequence -0:82 Constant: -0:82 0 (const int) -0:82 Constant: -0:82 1 (const int) -0:82 'ballot' ( temp 4-component vector of uint) -0:83 move second child to first child ( temp 3-component vector of double) -0:83 vector swizzle ( temp 3-component vector of double) -0:83 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:83 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:83 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:83 'invocation' ( temp uint) -0:83 Constant: -0:83 3 (const int) -0:83 Sequence -0:83 Constant: -0:83 0 (const int) -0:83 Constant: -0:83 1 (const int) -0:83 Constant: -0:83 2 (const int) -0:83 subgroupPartitionedMulNV ( global 3-component vector of double) -0:83 vector swizzle ( temp 3-component vector of double) -0:83 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:83 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:83 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:83 Constant: -0:83 2 (const int) -0:83 Constant: -0:83 3 (const int) -0:83 Sequence -0:83 Constant: -0:83 0 (const int) -0:83 Constant: -0:83 1 (const int) -0:83 Constant: -0:83 2 (const int) -0:83 'ballot' ( temp 4-component vector of uint) -0:84 move second child to first child ( temp 4-component vector of double) -0:84 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:84 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 'invocation' ( temp uint) -0:84 Constant: -0:84 3 (const int) -0:84 subgroupPartitionedMulNV ( global 4-component vector of double) -0:84 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:84 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 Constant: -0:84 3 (const int) -0:84 Constant: -0:84 3 (const int) -0:84 'ballot' ( temp 4-component vector of uint) -0:86 move second child to first child ( temp float) -0:86 direct index ( temp float) -0:86 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:86 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:86 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:86 'invocation' ( temp uint) -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 0 (const int) -0:86 subgroupPartitionedMinNV ( global float) -0:86 direct index ( temp float) -0:86 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:86 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:86 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 0 (const int) -0:86 'ballot' ( temp 4-component vector of uint) -0:87 move second child to first child ( temp 2-component vector of float) -0:87 vector swizzle ( temp 2-component vector of float) -0:87 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:87 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:87 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:87 'invocation' ( temp uint) -0:87 Constant: -0:87 0 (const int) -0:87 Sequence -0:87 Constant: -0:87 0 (const int) -0:87 Constant: -0:87 1 (const int) -0:87 subgroupPartitionedMinNV ( global 2-component vector of float) -0:87 vector swizzle ( temp 2-component vector of float) -0:87 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:87 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:87 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:87 Constant: -0:87 1 (const int) -0:87 Constant: -0:87 0 (const int) -0:87 Sequence -0:87 Constant: -0:87 0 (const int) -0:87 Constant: -0:87 1 (const int) -0:87 'ballot' ( temp 4-component vector of uint) -0:88 move second child to first child ( temp 3-component vector of float) -0:88 vector swizzle ( temp 3-component vector of float) -0:88 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:88 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:88 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:88 'invocation' ( temp uint) -0:88 Constant: -0:88 0 (const int) -0:88 Sequence -0:88 Constant: -0:88 0 (const int) -0:88 Constant: -0:88 1 (const int) -0:88 Constant: -0:88 2 (const int) -0:88 subgroupPartitionedMinNV ( global 3-component vector of float) -0:88 vector swizzle ( temp 3-component vector of float) -0:88 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:88 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:88 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:88 Constant: -0:88 2 (const int) -0:88 Constant: -0:88 0 (const int) -0:88 Sequence -0:88 Constant: -0:88 0 (const int) -0:88 Constant: -0:88 1 (const int) -0:88 Constant: -0:88 2 (const int) -0:88 'ballot' ( temp 4-component vector of uint) -0:89 move second child to first child ( temp 4-component vector of float) -0:89 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:89 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:89 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:89 'invocation' ( temp uint) -0:89 Constant: -0:89 0 (const int) -0:89 subgroupPartitionedMinNV ( global 4-component vector of float) -0:89 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:89 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:89 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:89 Constant: -0:89 3 (const int) -0:89 Constant: -0:89 0 (const int) -0:89 'ballot' ( temp 4-component vector of uint) -0:91 move second child to first child ( temp int) -0:91 direct index ( temp int) -0:91 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:91 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:91 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:91 'invocation' ( temp uint) -0:91 Constant: -0:91 1 (const int) -0:91 Constant: -0:91 0 (const int) -0:91 subgroupPartitionedMinNV ( global int) -0:91 direct index ( temp int) -0:91 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:91 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:91 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:91 Constant: -0:91 0 (const int) -0:91 Constant: -0:91 1 (const int) -0:91 Constant: -0:91 0 (const int) -0:91 'ballot' ( temp 4-component vector of uint) -0:92 move second child to first child ( temp 2-component vector of int) -0:92 vector swizzle ( temp 2-component vector of int) -0:92 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:92 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:92 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:92 'invocation' ( temp uint) -0:92 Constant: -0:92 1 (const int) -0:92 Sequence -0:92 Constant: -0:92 0 (const int) -0:92 Constant: -0:92 1 (const int) -0:92 subgroupPartitionedMinNV ( global 2-component vector of int) -0:92 vector swizzle ( temp 2-component vector of int) -0:92 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:92 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:92 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:92 Constant: -0:92 1 (const int) -0:92 Constant: -0:92 1 (const int) -0:92 Sequence -0:92 Constant: -0:92 0 (const int) -0:92 Constant: -0:92 1 (const int) -0:92 'ballot' ( temp 4-component vector of uint) -0:93 move second child to first child ( temp 3-component vector of int) -0:93 vector swizzle ( temp 3-component vector of int) -0:93 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:93 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:93 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:93 'invocation' ( temp uint) -0:93 Constant: -0:93 1 (const int) -0:93 Sequence -0:93 Constant: -0:93 0 (const int) -0:93 Constant: -0:93 1 (const int) -0:93 Constant: -0:93 2 (const int) -0:93 subgroupPartitionedMinNV ( global 3-component vector of int) -0:93 vector swizzle ( temp 3-component vector of int) -0:93 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:93 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:93 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:93 Constant: -0:93 2 (const int) -0:93 Constant: -0:93 1 (const int) -0:93 Sequence -0:93 Constant: -0:93 0 (const int) -0:93 Constant: -0:93 1 (const int) -0:93 Constant: -0:93 2 (const int) -0:93 'ballot' ( temp 4-component vector of uint) -0:94 move second child to first child ( temp 4-component vector of int) -0:94 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:94 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:94 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:94 'invocation' ( temp uint) -0:94 Constant: -0:94 1 (const int) -0:94 subgroupPartitionedMinNV ( global 4-component vector of int) -0:94 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:94 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:94 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:94 Constant: -0:94 3 (const int) -0:94 Constant: -0:94 1 (const int) -0:94 'ballot' ( temp 4-component vector of uint) -0:96 move second child to first child ( temp uint) -0:96 direct index ( temp uint) -0:96 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:96 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:96 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:96 'invocation' ( temp uint) -0:96 Constant: -0:96 2 (const int) -0:96 Constant: -0:96 0 (const int) -0:96 subgroupPartitionedMinNV ( global uint) -0:96 direct index ( temp uint) -0:96 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:96 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:96 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:96 Constant: -0:96 0 (const int) -0:96 Constant: -0:96 2 (const int) -0:96 Constant: -0:96 0 (const int) -0:96 'ballot' ( temp 4-component vector of uint) -0:97 move second child to first child ( temp 2-component vector of uint) -0:97 vector swizzle ( temp 2-component vector of uint) -0:97 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:97 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:97 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:97 'invocation' ( temp uint) -0:97 Constant: -0:97 2 (const int) -0:97 Sequence -0:97 Constant: -0:97 0 (const int) -0:97 Constant: -0:97 1 (const int) -0:97 subgroupPartitionedMinNV ( global 2-component vector of uint) -0:97 vector swizzle ( temp 2-component vector of uint) -0:97 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:97 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:97 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:97 Constant: -0:97 1 (const int) -0:97 Constant: -0:97 2 (const int) -0:97 Sequence -0:97 Constant: -0:97 0 (const int) -0:97 Constant: -0:97 1 (const int) -0:97 'ballot' ( temp 4-component vector of uint) -0:98 move second child to first child ( temp 3-component vector of uint) -0:98 vector swizzle ( temp 3-component vector of uint) -0:98 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:98 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:98 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:98 'invocation' ( temp uint) -0:98 Constant: -0:98 2 (const int) -0:98 Sequence -0:98 Constant: -0:98 0 (const int) -0:98 Constant: -0:98 1 (const int) -0:98 Constant: -0:98 2 (const int) -0:98 subgroupPartitionedMinNV ( global 3-component vector of uint) -0:98 vector swizzle ( temp 3-component vector of uint) -0:98 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:98 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:98 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:98 Constant: -0:98 2 (const int) -0:98 Constant: -0:98 2 (const int) -0:98 Sequence -0:98 Constant: -0:98 0 (const int) -0:98 Constant: -0:98 1 (const int) -0:98 Constant: -0:98 2 (const int) -0:98 'ballot' ( temp 4-component vector of uint) -0:99 move second child to first child ( temp 4-component vector of uint) -0:99 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:99 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:99 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:99 'invocation' ( temp uint) -0:99 Constant: -0:99 2 (const int) -0:99 subgroupPartitionedMinNV ( global 4-component vector of uint) -0:99 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:99 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:99 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:99 Constant: -0:99 3 (const int) -0:99 Constant: -0:99 2 (const int) -0:99 'ballot' ( temp 4-component vector of uint) -0:101 move second child to first child ( temp double) -0:101 direct index ( temp double) -0:101 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:101 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:101 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:101 'invocation' ( temp uint) -0:101 Constant: -0:101 3 (const int) -0:101 Constant: -0:101 0 (const int) -0:101 subgroupPartitionedMinNV ( global double) -0:101 direct index ( temp double) -0:101 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:101 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:101 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 3 (const int) -0:101 Constant: -0:101 0 (const int) -0:101 'ballot' ( temp 4-component vector of uint) -0:102 move second child to first child ( temp 2-component vector of double) -0:102 vector swizzle ( temp 2-component vector of double) -0:102 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:102 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:102 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:102 'invocation' ( temp uint) -0:102 Constant: -0:102 3 (const int) -0:102 Sequence -0:102 Constant: -0:102 0 (const int) -0:102 Constant: -0:102 1 (const int) -0:102 subgroupPartitionedMinNV ( global 2-component vector of double) -0:102 vector swizzle ( temp 2-component vector of double) -0:102 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:102 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:102 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:102 Constant: -0:102 1 (const int) -0:102 Constant: -0:102 3 (const int) -0:102 Sequence -0:102 Constant: -0:102 0 (const int) -0:102 Constant: -0:102 1 (const int) -0:102 'ballot' ( temp 4-component vector of uint) -0:103 move second child to first child ( temp 3-component vector of double) -0:103 vector swizzle ( temp 3-component vector of double) -0:103 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:103 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:103 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:103 'invocation' ( temp uint) -0:103 Constant: -0:103 3 (const int) -0:103 Sequence -0:103 Constant: -0:103 0 (const int) -0:103 Constant: -0:103 1 (const int) -0:103 Constant: -0:103 2 (const int) -0:103 subgroupPartitionedMinNV ( global 3-component vector of double) -0:103 vector swizzle ( temp 3-component vector of double) -0:103 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:103 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:103 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:103 Constant: -0:103 2 (const int) -0:103 Constant: -0:103 3 (const int) -0:103 Sequence -0:103 Constant: -0:103 0 (const int) -0:103 Constant: -0:103 1 (const int) -0:103 Constant: -0:103 2 (const int) -0:103 'ballot' ( temp 4-component vector of uint) -0:104 move second child to first child ( temp 4-component vector of double) -0:104 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:104 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:104 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:104 'invocation' ( temp uint) -0:104 Constant: -0:104 3 (const int) -0:104 subgroupPartitionedMinNV ( global 4-component vector of double) -0:104 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:104 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:104 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:104 Constant: -0:104 3 (const int) -0:104 Constant: -0:104 3 (const int) -0:104 'ballot' ( temp 4-component vector of uint) -0:106 move second child to first child ( temp float) -0:106 direct index ( temp float) -0:106 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:106 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:106 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:106 'invocation' ( temp uint) -0:106 Constant: -0:106 0 (const int) -0:106 Constant: -0:106 0 (const int) -0:106 subgroupPartitionedMaxNV ( global float) -0:106 direct index ( temp float) -0:106 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:106 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:106 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:106 Constant: -0:106 0 (const int) -0:106 Constant: -0:106 0 (const int) -0:106 Constant: -0:106 0 (const int) -0:106 'ballot' ( temp 4-component vector of uint) -0:107 move second child to first child ( temp 2-component vector of float) -0:107 vector swizzle ( temp 2-component vector of float) -0:107 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:107 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:107 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:107 'invocation' ( temp uint) -0:107 Constant: -0:107 0 (const int) -0:107 Sequence -0:107 Constant: -0:107 0 (const int) -0:107 Constant: -0:107 1 (const int) -0:107 subgroupPartitionedMaxNV ( global 2-component vector of float) -0:107 vector swizzle ( temp 2-component vector of float) -0:107 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:107 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:107 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:107 Constant: -0:107 1 (const int) -0:107 Constant: -0:107 0 (const int) -0:107 Sequence -0:107 Constant: -0:107 0 (const int) -0:107 Constant: -0:107 1 (const int) -0:107 'ballot' ( temp 4-component vector of uint) -0:108 move second child to first child ( temp 3-component vector of float) -0:108 vector swizzle ( temp 3-component vector of float) -0:108 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:108 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:108 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:108 'invocation' ( temp uint) -0:108 Constant: -0:108 0 (const int) -0:108 Sequence -0:108 Constant: -0:108 0 (const int) -0:108 Constant: -0:108 1 (const int) -0:108 Constant: -0:108 2 (const int) -0:108 subgroupPartitionedMaxNV ( global 3-component vector of float) -0:108 vector swizzle ( temp 3-component vector of float) -0:108 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:108 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:108 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:108 Constant: -0:108 2 (const int) -0:108 Constant: -0:108 0 (const int) -0:108 Sequence -0:108 Constant: -0:108 0 (const int) -0:108 Constant: -0:108 1 (const int) -0:108 Constant: -0:108 2 (const int) -0:108 'ballot' ( temp 4-component vector of uint) -0:109 move second child to first child ( temp 4-component vector of float) -0:109 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:109 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:109 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:109 'invocation' ( temp uint) -0:109 Constant: -0:109 0 (const int) -0:109 subgroupPartitionedMaxNV ( global 4-component vector of float) -0:109 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:109 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:109 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:109 Constant: -0:109 3 (const int) -0:109 Constant: -0:109 0 (const int) -0:109 'ballot' ( temp 4-component vector of uint) -0:111 move second child to first child ( temp int) -0:111 direct index ( temp int) -0:111 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:111 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:111 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:111 'invocation' ( temp uint) -0:111 Constant: -0:111 1 (const int) -0:111 Constant: -0:111 0 (const int) -0:111 subgroupPartitionedMaxNV ( global int) -0:111 direct index ( temp int) -0:111 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:111 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:111 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:111 Constant: -0:111 0 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 Constant: -0:111 0 (const int) -0:111 'ballot' ( temp 4-component vector of uint) -0:112 move second child to first child ( temp 2-component vector of int) -0:112 vector swizzle ( temp 2-component vector of int) -0:112 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:112 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:112 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:112 'invocation' ( temp uint) -0:112 Constant: -0:112 1 (const int) -0:112 Sequence -0:112 Constant: -0:112 0 (const int) -0:112 Constant: -0:112 1 (const int) -0:112 subgroupPartitionedMaxNV ( global 2-component vector of int) -0:112 vector swizzle ( temp 2-component vector of int) -0:112 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:112 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:112 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:112 Constant: -0:112 1 (const int) -0:112 Constant: -0:112 1 (const int) -0:112 Sequence -0:112 Constant: -0:112 0 (const int) -0:112 Constant: -0:112 1 (const int) -0:112 'ballot' ( temp 4-component vector of uint) -0:113 move second child to first child ( temp 3-component vector of int) -0:113 vector swizzle ( temp 3-component vector of int) -0:113 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:113 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:113 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:113 'invocation' ( temp uint) -0:113 Constant: -0:113 1 (const int) -0:113 Sequence -0:113 Constant: -0:113 0 (const int) -0:113 Constant: -0:113 1 (const int) -0:113 Constant: -0:113 2 (const int) -0:113 subgroupPartitionedMaxNV ( global 3-component vector of int) -0:113 vector swizzle ( temp 3-component vector of int) -0:113 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:113 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:113 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:113 Constant: -0:113 2 (const int) -0:113 Constant: -0:113 1 (const int) -0:113 Sequence -0:113 Constant: -0:113 0 (const int) -0:113 Constant: -0:113 1 (const int) -0:113 Constant: -0:113 2 (const int) -0:113 'ballot' ( temp 4-component vector of uint) -0:114 move second child to first child ( temp 4-component vector of int) -0:114 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:114 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:114 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:114 'invocation' ( temp uint) -0:114 Constant: -0:114 1 (const int) -0:114 subgroupPartitionedMaxNV ( global 4-component vector of int) -0:114 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:114 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:114 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:114 Constant: -0:114 3 (const int) -0:114 Constant: -0:114 1 (const int) -0:114 'ballot' ( temp 4-component vector of uint) -0:116 move second child to first child ( temp uint) -0:116 direct index ( temp uint) -0:116 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:116 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:116 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:116 'invocation' ( temp uint) -0:116 Constant: -0:116 2 (const int) -0:116 Constant: -0:116 0 (const int) -0:116 subgroupPartitionedMaxNV ( global uint) -0:116 direct index ( temp uint) -0:116 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:116 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:116 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:116 Constant: -0:116 0 (const int) -0:116 Constant: -0:116 2 (const int) -0:116 Constant: -0:116 0 (const int) -0:116 'ballot' ( temp 4-component vector of uint) -0:117 move second child to first child ( temp 2-component vector of uint) -0:117 vector swizzle ( temp 2-component vector of uint) -0:117 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:117 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:117 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:117 'invocation' ( temp uint) -0:117 Constant: -0:117 2 (const int) -0:117 Sequence -0:117 Constant: -0:117 0 (const int) -0:117 Constant: -0:117 1 (const int) -0:117 subgroupPartitionedMaxNV ( global 2-component vector of uint) -0:117 vector swizzle ( temp 2-component vector of uint) -0:117 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:117 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:117 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:117 Constant: -0:117 1 (const int) -0:117 Constant: -0:117 2 (const int) -0:117 Sequence -0:117 Constant: -0:117 0 (const int) -0:117 Constant: -0:117 1 (const int) -0:117 'ballot' ( temp 4-component vector of uint) -0:118 move second child to first child ( temp 3-component vector of uint) -0:118 vector swizzle ( temp 3-component vector of uint) -0:118 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:118 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:118 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:118 'invocation' ( temp uint) -0:118 Constant: -0:118 2 (const int) -0:118 Sequence -0:118 Constant: -0:118 0 (const int) -0:118 Constant: -0:118 1 (const int) -0:118 Constant: -0:118 2 (const int) -0:118 subgroupPartitionedMaxNV ( global 3-component vector of uint) -0:118 vector swizzle ( temp 3-component vector of uint) -0:118 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:118 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:118 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:118 Constant: -0:118 2 (const int) -0:118 Constant: -0:118 2 (const int) -0:118 Sequence -0:118 Constant: -0:118 0 (const int) -0:118 Constant: -0:118 1 (const int) -0:118 Constant: -0:118 2 (const int) -0:118 'ballot' ( temp 4-component vector of uint) -0:119 move second child to first child ( temp 4-component vector of uint) -0:119 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:119 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:119 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:119 'invocation' ( temp uint) -0:119 Constant: -0:119 2 (const int) -0:119 subgroupPartitionedMaxNV ( global 4-component vector of uint) -0:119 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:119 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:119 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:119 Constant: -0:119 3 (const int) -0:119 Constant: -0:119 2 (const int) -0:119 'ballot' ( temp 4-component vector of uint) -0:121 move second child to first child ( temp double) -0:121 direct index ( temp double) -0:121 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:121 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:121 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:121 'invocation' ( temp uint) -0:121 Constant: -0:121 3 (const int) -0:121 Constant: -0:121 0 (const int) -0:121 subgroupPartitionedMaxNV ( global double) -0:121 direct index ( temp double) -0:121 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:121 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:121 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 3 (const int) -0:121 Constant: -0:121 0 (const int) -0:121 'ballot' ( temp 4-component vector of uint) -0:122 move second child to first child ( temp 2-component vector of double) -0:122 vector swizzle ( temp 2-component vector of double) -0:122 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:122 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:122 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:122 'invocation' ( temp uint) -0:122 Constant: -0:122 3 (const int) -0:122 Sequence -0:122 Constant: -0:122 0 (const int) -0:122 Constant: -0:122 1 (const int) -0:122 subgroupPartitionedMaxNV ( global 2-component vector of double) -0:122 vector swizzle ( temp 2-component vector of double) -0:122 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:122 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:122 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:122 Constant: -0:122 1 (const int) -0:122 Constant: -0:122 3 (const int) -0:122 Sequence -0:122 Constant: -0:122 0 (const int) -0:122 Constant: -0:122 1 (const int) -0:122 'ballot' ( temp 4-component vector of uint) -0:123 move second child to first child ( temp 3-component vector of double) -0:123 vector swizzle ( temp 3-component vector of double) -0:123 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:123 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:123 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:123 'invocation' ( temp uint) -0:123 Constant: -0:123 3 (const int) -0:123 Sequence -0:123 Constant: -0:123 0 (const int) -0:123 Constant: -0:123 1 (const int) -0:123 Constant: -0:123 2 (const int) -0:123 subgroupPartitionedMaxNV ( global 3-component vector of double) -0:123 vector swizzle ( temp 3-component vector of double) -0:123 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:123 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:123 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:123 Constant: -0:123 2 (const int) -0:123 Constant: -0:123 3 (const int) -0:123 Sequence -0:123 Constant: -0:123 0 (const int) -0:123 Constant: -0:123 1 (const int) -0:123 Constant: -0:123 2 (const int) -0:123 'ballot' ( temp 4-component vector of uint) -0:124 move second child to first child ( temp 4-component vector of double) -0:124 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:124 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:124 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:124 'invocation' ( temp uint) -0:124 Constant: -0:124 3 (const int) -0:124 subgroupPartitionedMaxNV ( global 4-component vector of double) -0:124 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:124 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:124 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:124 Constant: -0:124 3 (const int) -0:124 Constant: -0:124 3 (const int) -0:124 'ballot' ( temp 4-component vector of uint) -0:126 move second child to first child ( temp int) -0:126 direct index ( temp int) -0:126 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:126 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:126 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:126 'invocation' ( temp uint) -0:126 Constant: -0:126 1 (const int) -0:126 Constant: -0:126 0 (const int) -0:126 subgroupPartitionedAndNV ( global int) -0:126 direct index ( temp int) -0:126 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:126 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:126 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:126 Constant: -0:126 0 (const int) -0:126 Constant: -0:126 1 (const int) -0:126 Constant: -0:126 0 (const int) -0:126 'ballot' ( temp 4-component vector of uint) -0:127 move second child to first child ( temp 2-component vector of int) -0:127 vector swizzle ( temp 2-component vector of int) -0:127 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:127 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:127 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:127 'invocation' ( temp uint) -0:127 Constant: -0:127 1 (const int) -0:127 Sequence -0:127 Constant: -0:127 0 (const int) -0:127 Constant: -0:127 1 (const int) -0:127 subgroupPartitionedAndNV ( global 2-component vector of int) -0:127 vector swizzle ( temp 2-component vector of int) -0:127 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:127 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:127 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:127 Constant: -0:127 1 (const int) -0:127 Constant: -0:127 1 (const int) -0:127 Sequence -0:127 Constant: -0:127 0 (const int) -0:127 Constant: -0:127 1 (const int) -0:127 'ballot' ( temp 4-component vector of uint) -0:128 move second child to first child ( temp 3-component vector of int) -0:128 vector swizzle ( temp 3-component vector of int) -0:128 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:128 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:128 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:128 'invocation' ( temp uint) -0:128 Constant: -0:128 1 (const int) -0:128 Sequence -0:128 Constant: -0:128 0 (const int) -0:128 Constant: -0:128 1 (const int) -0:128 Constant: -0:128 2 (const int) -0:128 subgroupPartitionedAndNV ( global 3-component vector of int) -0:128 vector swizzle ( temp 3-component vector of int) -0:128 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:128 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:128 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:128 Constant: -0:128 2 (const int) -0:128 Constant: -0:128 1 (const int) -0:128 Sequence -0:128 Constant: -0:128 0 (const int) -0:128 Constant: -0:128 1 (const int) -0:128 Constant: -0:128 2 (const int) -0:128 'ballot' ( temp 4-component vector of uint) -0:129 move second child to first child ( temp 4-component vector of int) -0:129 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:129 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:129 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:129 'invocation' ( temp uint) -0:129 Constant: -0:129 1 (const int) -0:129 subgroupPartitionedAndNV ( global 4-component vector of int) -0:129 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:129 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:129 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:129 Constant: -0:129 3 (const int) -0:129 Constant: -0:129 1 (const int) -0:129 'ballot' ( temp 4-component vector of uint) -0:131 move second child to first child ( temp uint) -0:131 direct index ( temp uint) -0:131 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:131 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:131 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:131 'invocation' ( temp uint) -0:131 Constant: -0:131 2 (const int) -0:131 Constant: -0:131 0 (const int) -0:131 subgroupPartitionedAndNV ( global uint) -0:131 direct index ( temp uint) -0:131 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:131 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:131 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:131 Constant: -0:131 0 (const int) -0:131 Constant: -0:131 2 (const int) -0:131 Constant: -0:131 0 (const int) -0:131 'ballot' ( temp 4-component vector of uint) -0:132 move second child to first child ( temp 2-component vector of uint) -0:132 vector swizzle ( temp 2-component vector of uint) -0:132 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:132 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:132 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:132 'invocation' ( temp uint) -0:132 Constant: -0:132 2 (const int) -0:132 Sequence -0:132 Constant: -0:132 0 (const int) -0:132 Constant: -0:132 1 (const int) -0:132 subgroupPartitionedAndNV ( global 2-component vector of uint) -0:132 vector swizzle ( temp 2-component vector of uint) -0:132 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:132 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:132 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:132 Constant: -0:132 1 (const int) -0:132 Constant: -0:132 2 (const int) -0:132 Sequence -0:132 Constant: -0:132 0 (const int) -0:132 Constant: -0:132 1 (const int) -0:132 'ballot' ( temp 4-component vector of uint) -0:133 move second child to first child ( temp 3-component vector of uint) -0:133 vector swizzle ( temp 3-component vector of uint) -0:133 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:133 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:133 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:133 'invocation' ( temp uint) -0:133 Constant: -0:133 2 (const int) -0:133 Sequence -0:133 Constant: -0:133 0 (const int) -0:133 Constant: -0:133 1 (const int) -0:133 Constant: -0:133 2 (const int) -0:133 subgroupPartitionedAndNV ( global 3-component vector of uint) -0:133 vector swizzle ( temp 3-component vector of uint) -0:133 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:133 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:133 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:133 Constant: -0:133 2 (const int) -0:133 Constant: -0:133 2 (const int) -0:133 Sequence -0:133 Constant: -0:133 0 (const int) -0:133 Constant: -0:133 1 (const int) -0:133 Constant: -0:133 2 (const int) -0:133 'ballot' ( temp 4-component vector of uint) -0:134 move second child to first child ( temp 4-component vector of uint) -0:134 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:134 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:134 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:134 'invocation' ( temp uint) -0:134 Constant: -0:134 2 (const int) -0:134 subgroupPartitionedAndNV ( global 4-component vector of uint) -0:134 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:134 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:134 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:134 Constant: -0:134 3 (const int) -0:134 Constant: -0:134 2 (const int) -0:134 'ballot' ( temp 4-component vector of uint) -0:136 move second child to first child ( temp int) -0:136 direct index ( temp int) -0:136 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:136 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:136 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:136 'invocation' ( temp uint) -0:136 Constant: -0:136 1 (const int) -0:136 Constant: -0:136 0 (const int) -0:136 Convert bool to int ( temp int) -0:136 subgroupPartitionedAndNV ( global bool) -0:136 Compare Less Than ( temp bool) -0:136 direct index ( temp int) -0:136 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:136 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:136 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:136 Constant: -0:136 0 (const int) -0:136 Constant: -0:136 1 (const int) -0:136 Constant: -0:136 0 (const int) -0:136 Constant: -0:136 0 (const int) -0:136 'ballot' ( temp 4-component vector of uint) -0:137 move second child to first child ( temp 2-component vector of int) -0:137 vector swizzle ( temp 2-component vector of int) -0:137 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:137 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:137 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:137 'invocation' ( temp uint) -0:137 Constant: -0:137 1 (const int) -0:137 Sequence -0:137 Constant: -0:137 0 (const int) -0:137 Constant: -0:137 1 (const int) -0:137 Convert bool to int ( temp 2-component vector of int) -0:137 subgroupPartitionedAndNV ( global 2-component vector of bool) -0:137 Compare Less Than ( global 2-component vector of bool) -0:137 vector swizzle ( temp 2-component vector of int) -0:137 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:137 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:137 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:137 Constant: -0:137 1 (const int) -0:137 Constant: -0:137 1 (const int) -0:137 Sequence -0:137 Constant: -0:137 0 (const int) -0:137 Constant: -0:137 1 (const int) -0:137 Constant: -0:137 0 (const int) -0:137 0 (const int) -0:137 'ballot' ( temp 4-component vector of uint) -0:138 move second child to first child ( temp 3-component vector of int) -0:138 vector swizzle ( temp 3-component vector of int) -0:138 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:138 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:138 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:138 'invocation' ( temp uint) -0:138 Constant: -0:138 1 (const int) -0:138 Sequence -0:138 Constant: -0:138 0 (const int) -0:138 Constant: -0:138 1 (const int) -0:138 Constant: -0:138 2 (const int) -0:138 Convert bool to int ( temp 3-component vector of int) -0:138 subgroupPartitionedAndNV ( global 3-component vector of bool) -0:138 Compare Less Than ( global 3-component vector of bool) -0:138 vector swizzle ( temp 3-component vector of int) -0:138 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:138 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:138 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:138 Constant: -0:138 1 (const int) -0:138 Constant: -0:138 1 (const int) -0:138 Sequence -0:138 Constant: -0:138 0 (const int) -0:138 Constant: -0:138 1 (const int) -0:138 Constant: -0:138 2 (const int) -0:138 Constant: -0:138 0 (const int) -0:138 0 (const int) -0:138 0 (const int) -0:138 'ballot' ( temp 4-component vector of uint) -0:139 move second child to first child ( temp 4-component vector of int) -0:139 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:139 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:139 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:139 'invocation' ( temp uint) -0:139 Constant: -0:139 1 (const int) -0:139 Convert bool to int ( temp 4-component vector of int) -0:139 subgroupPartitionedAndNV ( global 4-component vector of bool) -0:139 Compare Less Than ( global 4-component vector of bool) -0:139 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:139 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:139 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:139 Constant: -0:139 1 (const int) -0:139 Constant: -0:139 1 (const int) -0:139 Constant: -0:139 0 (const int) -0:139 0 (const int) -0:139 0 (const int) -0:139 0 (const int) -0:139 'ballot' ( temp 4-component vector of uint) -0:141 move second child to first child ( temp int) -0:141 direct index ( temp int) -0:141 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:141 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:141 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:141 'invocation' ( temp uint) -0:141 Constant: -0:141 1 (const int) -0:141 Constant: -0:141 0 (const int) -0:141 subgroupPartitionedOrNV ( global int) -0:141 direct index ( temp int) -0:141 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:141 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:141 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:141 Constant: -0:141 0 (const int) -0:141 Constant: -0:141 1 (const int) -0:141 Constant: -0:141 0 (const int) -0:141 'ballot' ( temp 4-component vector of uint) -0:142 move second child to first child ( temp 2-component vector of int) -0:142 vector swizzle ( temp 2-component vector of int) -0:142 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:142 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:142 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:142 'invocation' ( temp uint) -0:142 Constant: -0:142 1 (const int) -0:142 Sequence -0:142 Constant: -0:142 0 (const int) -0:142 Constant: -0:142 1 (const int) -0:142 subgroupPartitionedOrNV ( global 2-component vector of int) -0:142 vector swizzle ( temp 2-component vector of int) -0:142 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:142 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:142 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:142 Constant: -0:142 1 (const int) -0:142 Constant: -0:142 1 (const int) -0:142 Sequence -0:142 Constant: -0:142 0 (const int) -0:142 Constant: -0:142 1 (const int) -0:142 'ballot' ( temp 4-component vector of uint) -0:143 move second child to first child ( temp 3-component vector of int) -0:143 vector swizzle ( temp 3-component vector of int) -0:143 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:143 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:143 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:143 'invocation' ( temp uint) -0:143 Constant: -0:143 1 (const int) -0:143 Sequence -0:143 Constant: -0:143 0 (const int) -0:143 Constant: -0:143 1 (const int) -0:143 Constant: -0:143 2 (const int) -0:143 subgroupPartitionedOrNV ( global 3-component vector of int) -0:143 vector swizzle ( temp 3-component vector of int) -0:143 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:143 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:143 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:143 Constant: -0:143 2 (const int) -0:143 Constant: -0:143 1 (const int) -0:143 Sequence -0:143 Constant: -0:143 0 (const int) -0:143 Constant: -0:143 1 (const int) -0:143 Constant: -0:143 2 (const int) -0:143 'ballot' ( temp 4-component vector of uint) -0:144 move second child to first child ( temp 4-component vector of int) -0:144 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:144 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:144 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:144 'invocation' ( temp uint) -0:144 Constant: -0:144 1 (const int) -0:144 subgroupPartitionedOrNV ( global 4-component vector of int) -0:144 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:144 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:144 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:144 Constant: -0:144 3 (const int) -0:144 Constant: -0:144 1 (const int) -0:144 'ballot' ( temp 4-component vector of uint) -0:146 move second child to first child ( temp uint) -0:146 direct index ( temp uint) -0:146 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:146 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:146 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:146 'invocation' ( temp uint) -0:146 Constant: -0:146 2 (const int) -0:146 Constant: -0:146 0 (const int) -0:146 subgroupPartitionedOrNV ( global uint) -0:146 direct index ( temp uint) -0:146 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:146 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:146 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:146 Constant: -0:146 0 (const int) -0:146 Constant: -0:146 2 (const int) -0:146 Constant: -0:146 0 (const int) -0:146 'ballot' ( temp 4-component vector of uint) -0:147 move second child to first child ( temp 2-component vector of uint) -0:147 vector swizzle ( temp 2-component vector of uint) -0:147 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:147 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:147 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:147 'invocation' ( temp uint) -0:147 Constant: -0:147 2 (const int) -0:147 Sequence -0:147 Constant: -0:147 0 (const int) -0:147 Constant: -0:147 1 (const int) -0:147 subgroupPartitionedOrNV ( global 2-component vector of uint) -0:147 vector swizzle ( temp 2-component vector of uint) -0:147 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:147 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:147 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:147 Constant: -0:147 1 (const int) -0:147 Constant: -0:147 2 (const int) -0:147 Sequence -0:147 Constant: -0:147 0 (const int) -0:147 Constant: -0:147 1 (const int) -0:147 'ballot' ( temp 4-component vector of uint) -0:148 move second child to first child ( temp 3-component vector of uint) -0:148 vector swizzle ( temp 3-component vector of uint) -0:148 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:148 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:148 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:148 'invocation' ( temp uint) -0:148 Constant: -0:148 2 (const int) -0:148 Sequence -0:148 Constant: -0:148 0 (const int) -0:148 Constant: -0:148 1 (const int) -0:148 Constant: -0:148 2 (const int) -0:148 subgroupPartitionedOrNV ( global 3-component vector of uint) -0:148 vector swizzle ( temp 3-component vector of uint) -0:148 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:148 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:148 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:148 Constant: -0:148 2 (const int) -0:148 Constant: -0:148 2 (const int) -0:148 Sequence -0:148 Constant: -0:148 0 (const int) -0:148 Constant: -0:148 1 (const int) -0:148 Constant: -0:148 2 (const int) -0:148 'ballot' ( temp 4-component vector of uint) -0:149 move second child to first child ( temp 4-component vector of uint) -0:149 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:149 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:149 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:149 'invocation' ( temp uint) -0:149 Constant: -0:149 2 (const int) -0:149 subgroupPartitionedOrNV ( global 4-component vector of uint) -0:149 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:149 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:149 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:149 Constant: -0:149 3 (const int) -0:149 Constant: -0:149 2 (const int) -0:149 'ballot' ( temp 4-component vector of uint) -0:151 move second child to first child ( temp int) -0:151 direct index ( temp int) -0:151 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:151 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:151 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:151 'invocation' ( temp uint) -0:151 Constant: -0:151 1 (const int) -0:151 Constant: -0:151 0 (const int) -0:151 Convert bool to int ( temp int) -0:151 subgroupPartitionedOrNV ( global bool) -0:151 Compare Less Than ( temp bool) -0:151 direct index ( temp int) -0:151 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:151 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:151 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:151 Constant: -0:151 0 (const int) -0:151 Constant: -0:151 1 (const int) -0:151 Constant: -0:151 0 (const int) -0:151 Constant: -0:151 0 (const int) -0:151 'ballot' ( temp 4-component vector of uint) -0:152 move second child to first child ( temp 2-component vector of int) -0:152 vector swizzle ( temp 2-component vector of int) -0:152 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:152 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:152 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:152 'invocation' ( temp uint) -0:152 Constant: -0:152 1 (const int) -0:152 Sequence -0:152 Constant: -0:152 0 (const int) -0:152 Constant: -0:152 1 (const int) -0:152 Convert bool to int ( temp 2-component vector of int) -0:152 subgroupPartitionedOrNV ( global 2-component vector of bool) -0:152 Compare Less Than ( global 2-component vector of bool) -0:152 vector swizzle ( temp 2-component vector of int) -0:152 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:152 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:152 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:152 Constant: -0:152 1 (const int) -0:152 Constant: -0:152 1 (const int) -0:152 Sequence -0:152 Constant: -0:152 0 (const int) -0:152 Constant: -0:152 1 (const int) -0:152 Constant: -0:152 0 (const int) -0:152 0 (const int) -0:152 'ballot' ( temp 4-component vector of uint) -0:153 move second child to first child ( temp 3-component vector of int) -0:153 vector swizzle ( temp 3-component vector of int) -0:153 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:153 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:153 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:153 'invocation' ( temp uint) -0:153 Constant: -0:153 1 (const int) -0:153 Sequence -0:153 Constant: -0:153 0 (const int) -0:153 Constant: -0:153 1 (const int) -0:153 Constant: -0:153 2 (const int) -0:153 Convert bool to int ( temp 3-component vector of int) -0:153 subgroupPartitionedOrNV ( global 3-component vector of bool) -0:153 Compare Less Than ( global 3-component vector of bool) -0:153 vector swizzle ( temp 3-component vector of int) -0:153 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:153 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:153 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:153 Constant: -0:153 1 (const int) -0:153 Constant: -0:153 1 (const int) -0:153 Sequence -0:153 Constant: -0:153 0 (const int) -0:153 Constant: -0:153 1 (const int) -0:153 Constant: -0:153 2 (const int) -0:153 Constant: -0:153 0 (const int) -0:153 0 (const int) -0:153 0 (const int) -0:153 'ballot' ( temp 4-component vector of uint) -0:154 move second child to first child ( temp 4-component vector of int) -0:154 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:154 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:154 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:154 'invocation' ( temp uint) -0:154 Constant: -0:154 1 (const int) -0:154 Convert bool to int ( temp 4-component vector of int) -0:154 subgroupPartitionedOrNV ( global 4-component vector of bool) -0:154 Compare Less Than ( global 4-component vector of bool) -0:154 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:154 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:154 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:154 Constant: -0:154 1 (const int) -0:154 Constant: -0:154 1 (const int) -0:154 Constant: -0:154 0 (const int) -0:154 0 (const int) -0:154 0 (const int) -0:154 0 (const int) -0:154 'ballot' ( temp 4-component vector of uint) -0:156 move second child to first child ( temp int) -0:156 direct index ( temp int) -0:156 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:156 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:156 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:156 'invocation' ( temp uint) -0:156 Constant: -0:156 1 (const int) -0:156 Constant: -0:156 0 (const int) -0:156 subgroupPartitionedXorNV ( global int) -0:156 direct index ( temp int) -0:156 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:156 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:156 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:156 Constant: -0:156 0 (const int) -0:156 Constant: -0:156 1 (const int) -0:156 Constant: -0:156 0 (const int) -0:156 'ballot' ( temp 4-component vector of uint) -0:157 move second child to first child ( temp 2-component vector of int) -0:157 vector swizzle ( temp 2-component vector of int) -0:157 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:157 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:157 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:157 'invocation' ( temp uint) -0:157 Constant: -0:157 1 (const int) -0:157 Sequence -0:157 Constant: -0:157 0 (const int) -0:157 Constant: -0:157 1 (const int) -0:157 subgroupPartitionedXorNV ( global 2-component vector of int) -0:157 vector swizzle ( temp 2-component vector of int) -0:157 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:157 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:157 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:157 Constant: -0:157 1 (const int) -0:157 Constant: -0:157 1 (const int) -0:157 Sequence -0:157 Constant: -0:157 0 (const int) -0:157 Constant: -0:157 1 (const int) -0:157 'ballot' ( temp 4-component vector of uint) -0:158 move second child to first child ( temp 3-component vector of int) -0:158 vector swizzle ( temp 3-component vector of int) -0:158 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:158 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:158 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:158 'invocation' ( temp uint) -0:158 Constant: -0:158 1 (const int) -0:158 Sequence -0:158 Constant: -0:158 0 (const int) -0:158 Constant: -0:158 1 (const int) -0:158 Constant: -0:158 2 (const int) -0:158 subgroupPartitionedXorNV ( global 3-component vector of int) -0:158 vector swizzle ( temp 3-component vector of int) -0:158 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:158 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:158 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:158 Constant: -0:158 2 (const int) -0:158 Constant: -0:158 1 (const int) -0:158 Sequence -0:158 Constant: -0:158 0 (const int) -0:158 Constant: -0:158 1 (const int) -0:158 Constant: -0:158 2 (const int) -0:158 'ballot' ( temp 4-component vector of uint) -0:159 move second child to first child ( temp 4-component vector of int) -0:159 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:159 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:159 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:159 'invocation' ( temp uint) -0:159 Constant: -0:159 1 (const int) -0:159 subgroupPartitionedXorNV ( global 4-component vector of int) -0:159 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:159 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:159 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:159 Constant: -0:159 3 (const int) -0:159 Constant: -0:159 1 (const int) -0:159 'ballot' ( temp 4-component vector of uint) -0:161 move second child to first child ( temp uint) -0:161 direct index ( temp uint) -0:161 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:161 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:161 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:161 'invocation' ( temp uint) -0:161 Constant: -0:161 2 (const int) -0:161 Constant: -0:161 0 (const int) -0:161 subgroupPartitionedXorNV ( global uint) -0:161 direct index ( temp uint) -0:161 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:161 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:161 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:161 Constant: -0:161 0 (const int) -0:161 Constant: -0:161 2 (const int) -0:161 Constant: -0:161 0 (const int) -0:161 'ballot' ( temp 4-component vector of uint) -0:162 move second child to first child ( temp 2-component vector of uint) -0:162 vector swizzle ( temp 2-component vector of uint) -0:162 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:162 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:162 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:162 'invocation' ( temp uint) -0:162 Constant: -0:162 2 (const int) -0:162 Sequence -0:162 Constant: -0:162 0 (const int) -0:162 Constant: -0:162 1 (const int) -0:162 subgroupPartitionedXorNV ( global 2-component vector of uint) -0:162 vector swizzle ( temp 2-component vector of uint) -0:162 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:162 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:162 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:162 Constant: -0:162 1 (const int) -0:162 Constant: -0:162 2 (const int) -0:162 Sequence -0:162 Constant: -0:162 0 (const int) -0:162 Constant: -0:162 1 (const int) -0:162 'ballot' ( temp 4-component vector of uint) -0:163 move second child to first child ( temp 3-component vector of uint) -0:163 vector swizzle ( temp 3-component vector of uint) -0:163 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:163 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:163 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:163 'invocation' ( temp uint) -0:163 Constant: -0:163 2 (const int) -0:163 Sequence -0:163 Constant: -0:163 0 (const int) -0:163 Constant: -0:163 1 (const int) -0:163 Constant: -0:163 2 (const int) -0:163 subgroupPartitionedXorNV ( global 3-component vector of uint) -0:163 vector swizzle ( temp 3-component vector of uint) -0:163 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:163 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:163 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:163 Constant: -0:163 2 (const int) -0:163 Constant: -0:163 2 (const int) -0:163 Sequence -0:163 Constant: -0:163 0 (const int) -0:163 Constant: -0:163 1 (const int) -0:163 Constant: -0:163 2 (const int) -0:163 'ballot' ( temp 4-component vector of uint) -0:164 move second child to first child ( temp 4-component vector of uint) -0:164 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:164 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:164 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:164 'invocation' ( temp uint) -0:164 Constant: -0:164 2 (const int) -0:164 subgroupPartitionedXorNV ( global 4-component vector of uint) -0:164 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:164 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:164 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:164 Constant: -0:164 3 (const int) -0:164 Constant: -0:164 2 (const int) -0:164 'ballot' ( temp 4-component vector of uint) -0:166 move second child to first child ( temp int) -0:166 direct index ( temp int) -0:166 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:166 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:166 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:166 'invocation' ( temp uint) -0:166 Constant: -0:166 1 (const int) -0:166 Constant: -0:166 0 (const int) -0:166 Convert bool to int ( temp int) -0:166 subgroupPartitionedXorNV ( global bool) -0:166 Compare Less Than ( temp bool) -0:166 direct index ( temp int) -0:166 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:166 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:166 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:166 Constant: -0:166 0 (const int) -0:166 Constant: -0:166 1 (const int) -0:166 Constant: -0:166 0 (const int) -0:166 Constant: -0:166 0 (const int) -0:166 'ballot' ( temp 4-component vector of uint) -0:167 move second child to first child ( temp 2-component vector of int) -0:167 vector swizzle ( temp 2-component vector of int) -0:167 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:167 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:167 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:167 'invocation' ( temp uint) -0:167 Constant: -0:167 1 (const int) -0:167 Sequence -0:167 Constant: -0:167 0 (const int) -0:167 Constant: -0:167 1 (const int) -0:167 Convert bool to int ( temp 2-component vector of int) -0:167 subgroupPartitionedXorNV ( global 2-component vector of bool) -0:167 Compare Less Than ( global 2-component vector of bool) -0:167 vector swizzle ( temp 2-component vector of int) -0:167 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:167 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:167 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:167 Constant: -0:167 1 (const int) -0:167 Constant: -0:167 1 (const int) -0:167 Sequence -0:167 Constant: -0:167 0 (const int) -0:167 Constant: -0:167 1 (const int) -0:167 Constant: -0:167 0 (const int) -0:167 0 (const int) -0:167 'ballot' ( temp 4-component vector of uint) -0:168 move second child to first child ( temp 3-component vector of int) -0:168 vector swizzle ( temp 3-component vector of int) -0:168 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:168 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:168 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:168 'invocation' ( temp uint) -0:168 Constant: -0:168 1 (const int) -0:168 Sequence -0:168 Constant: -0:168 0 (const int) -0:168 Constant: -0:168 1 (const int) -0:168 Constant: -0:168 2 (const int) -0:168 Convert bool to int ( temp 3-component vector of int) -0:168 subgroupPartitionedXorNV ( global 3-component vector of bool) -0:168 Compare Less Than ( global 3-component vector of bool) -0:168 vector swizzle ( temp 3-component vector of int) -0:168 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:168 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:168 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:168 Constant: -0:168 1 (const int) -0:168 Constant: -0:168 1 (const int) -0:168 Sequence -0:168 Constant: -0:168 0 (const int) -0:168 Constant: -0:168 1 (const int) -0:168 Constant: -0:168 2 (const int) -0:168 Constant: -0:168 0 (const int) -0:168 0 (const int) -0:168 0 (const int) -0:168 'ballot' ( temp 4-component vector of uint) -0:169 move second child to first child ( temp 4-component vector of int) -0:169 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:169 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:169 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:169 'invocation' ( temp uint) -0:169 Constant: -0:169 1 (const int) -0:169 Convert bool to int ( temp 4-component vector of int) -0:169 subgroupPartitionedXorNV ( global 4-component vector of bool) -0:169 Compare Less Than ( global 4-component vector of bool) -0:169 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:169 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:169 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:169 Constant: -0:169 1 (const int) -0:169 Constant: -0:169 1 (const int) -0:169 Constant: -0:169 0 (const int) -0:169 0 (const int) -0:169 0 (const int) -0:169 0 (const int) -0:169 'ballot' ( temp 4-component vector of uint) -0:171 move second child to first child ( temp float) -0:171 direct index ( temp float) -0:171 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:171 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:171 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:171 'invocation' ( temp uint) -0:171 Constant: -0:171 0 (const int) -0:171 Constant: -0:171 0 (const int) -0:171 subgroupPartitionedInclusiveAddNV ( global float) -0:171 direct index ( temp float) -0:171 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:171 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:171 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:171 Constant: -0:171 0 (const int) -0:171 Constant: -0:171 0 (const int) -0:171 Constant: -0:171 0 (const int) -0:171 'ballot' ( temp 4-component vector of uint) -0:172 move second child to first child ( temp 2-component vector of float) -0:172 vector swizzle ( temp 2-component vector of float) -0:172 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:172 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:172 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:172 'invocation' ( temp uint) -0:172 Constant: -0:172 0 (const int) -0:172 Sequence -0:172 Constant: -0:172 0 (const int) -0:172 Constant: -0:172 1 (const int) -0:172 subgroupPartitionedInclusiveAddNV ( global 2-component vector of float) -0:172 vector swizzle ( temp 2-component vector of float) -0:172 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:172 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:172 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:172 Constant: -0:172 1 (const int) -0:172 Constant: -0:172 0 (const int) -0:172 Sequence -0:172 Constant: -0:172 0 (const int) -0:172 Constant: -0:172 1 (const int) -0:172 'ballot' ( temp 4-component vector of uint) -0:173 move second child to first child ( temp 3-component vector of float) -0:173 vector swizzle ( temp 3-component vector of float) -0:173 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:173 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:173 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:173 'invocation' ( temp uint) -0:173 Constant: -0:173 0 (const int) -0:173 Sequence -0:173 Constant: -0:173 0 (const int) -0:173 Constant: -0:173 1 (const int) -0:173 Constant: -0:173 2 (const int) -0:173 subgroupPartitionedInclusiveAddNV ( global 3-component vector of float) -0:173 vector swizzle ( temp 3-component vector of float) -0:173 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:173 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:173 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:173 Constant: -0:173 2 (const int) -0:173 Constant: -0:173 0 (const int) -0:173 Sequence -0:173 Constant: -0:173 0 (const int) -0:173 Constant: -0:173 1 (const int) -0:173 Constant: -0:173 2 (const int) -0:173 'ballot' ( temp 4-component vector of uint) -0:174 move second child to first child ( temp 4-component vector of float) -0:174 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:174 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:174 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:174 'invocation' ( temp uint) -0:174 Constant: -0:174 0 (const int) -0:174 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float) -0:174 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:174 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:174 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:174 Constant: -0:174 3 (const int) -0:174 Constant: -0:174 0 (const int) -0:174 'ballot' ( temp 4-component vector of uint) -0:176 move second child to first child ( temp int) -0:176 direct index ( temp int) -0:176 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:176 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:176 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:176 'invocation' ( temp uint) -0:176 Constant: -0:176 1 (const int) -0:176 Constant: -0:176 0 (const int) -0:176 subgroupPartitionedInclusiveAddNV ( global int) -0:176 direct index ( temp int) -0:176 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:176 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:176 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:176 Constant: -0:176 0 (const int) -0:176 Constant: -0:176 1 (const int) -0:176 Constant: -0:176 0 (const int) -0:176 'ballot' ( temp 4-component vector of uint) -0:177 move second child to first child ( temp 2-component vector of int) -0:177 vector swizzle ( temp 2-component vector of int) -0:177 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:177 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:177 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:177 'invocation' ( temp uint) -0:177 Constant: -0:177 1 (const int) -0:177 Sequence -0:177 Constant: -0:177 0 (const int) -0:177 Constant: -0:177 1 (const int) -0:177 subgroupPartitionedInclusiveAddNV ( global 2-component vector of int) -0:177 vector swizzle ( temp 2-component vector of int) -0:177 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:177 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:177 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:177 Constant: -0:177 1 (const int) -0:177 Constant: -0:177 1 (const int) -0:177 Sequence -0:177 Constant: -0:177 0 (const int) -0:177 Constant: -0:177 1 (const int) -0:177 'ballot' ( temp 4-component vector of uint) -0:178 move second child to first child ( temp 3-component vector of int) -0:178 vector swizzle ( temp 3-component vector of int) -0:178 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:178 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:178 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:178 'invocation' ( temp uint) -0:178 Constant: -0:178 1 (const int) -0:178 Sequence -0:178 Constant: -0:178 0 (const int) -0:178 Constant: -0:178 1 (const int) -0:178 Constant: -0:178 2 (const int) -0:178 subgroupPartitionedInclusiveAddNV ( global 3-component vector of int) -0:178 vector swizzle ( temp 3-component vector of int) -0:178 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:178 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:178 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:178 Constant: -0:178 2 (const int) -0:178 Constant: -0:178 1 (const int) -0:178 Sequence -0:178 Constant: -0:178 0 (const int) -0:178 Constant: -0:178 1 (const int) -0:178 Constant: -0:178 2 (const int) -0:178 'ballot' ( temp 4-component vector of uint) -0:179 move second child to first child ( temp 4-component vector of int) -0:179 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:179 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:179 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:179 'invocation' ( temp uint) -0:179 Constant: -0:179 1 (const int) -0:179 subgroupPartitionedInclusiveAddNV ( global 4-component vector of int) -0:179 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:179 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:179 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:179 Constant: -0:179 3 (const int) -0:179 Constant: -0:179 1 (const int) -0:179 'ballot' ( temp 4-component vector of uint) -0:181 move second child to first child ( temp uint) -0:181 direct index ( temp uint) -0:181 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:181 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:181 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:181 'invocation' ( temp uint) -0:181 Constant: -0:181 2 (const int) -0:181 Constant: -0:181 0 (const int) -0:181 subgroupPartitionedInclusiveAddNV ( global uint) -0:181 direct index ( temp uint) -0:181 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:181 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:181 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:181 Constant: -0:181 0 (const int) -0:181 Constant: -0:181 2 (const int) -0:181 Constant: -0:181 0 (const int) -0:181 'ballot' ( temp 4-component vector of uint) -0:182 move second child to first child ( temp 2-component vector of uint) -0:182 vector swizzle ( temp 2-component vector of uint) -0:182 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:182 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:182 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:182 'invocation' ( temp uint) -0:182 Constant: -0:182 2 (const int) -0:182 Sequence -0:182 Constant: -0:182 0 (const int) -0:182 Constant: -0:182 1 (const int) -0:182 subgroupPartitionedInclusiveAddNV ( global 2-component vector of uint) -0:182 vector swizzle ( temp 2-component vector of uint) -0:182 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:182 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:182 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:182 Constant: -0:182 1 (const int) -0:182 Constant: -0:182 2 (const int) -0:182 Sequence -0:182 Constant: -0:182 0 (const int) -0:182 Constant: -0:182 1 (const int) -0:182 'ballot' ( temp 4-component vector of uint) -0:183 move second child to first child ( temp 3-component vector of uint) -0:183 vector swizzle ( temp 3-component vector of uint) -0:183 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:183 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:183 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:183 'invocation' ( temp uint) -0:183 Constant: -0:183 2 (const int) -0:183 Sequence -0:183 Constant: -0:183 0 (const int) -0:183 Constant: -0:183 1 (const int) -0:183 Constant: -0:183 2 (const int) -0:183 subgroupPartitionedInclusiveAddNV ( global 3-component vector of uint) -0:183 vector swizzle ( temp 3-component vector of uint) -0:183 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:183 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:183 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:183 Constant: -0:183 2 (const int) -0:183 Constant: -0:183 2 (const int) -0:183 Sequence -0:183 Constant: -0:183 0 (const int) -0:183 Constant: -0:183 1 (const int) -0:183 Constant: -0:183 2 (const int) -0:183 'ballot' ( temp 4-component vector of uint) -0:184 move second child to first child ( temp 4-component vector of uint) -0:184 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:184 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:184 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:184 'invocation' ( temp uint) -0:184 Constant: -0:184 2 (const int) -0:184 subgroupPartitionedInclusiveAddNV ( global 4-component vector of uint) -0:184 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:184 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:184 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:184 Constant: -0:184 3 (const int) -0:184 Constant: -0:184 2 (const int) -0:184 'ballot' ( temp 4-component vector of uint) -0:186 move second child to first child ( temp double) -0:186 direct index ( temp double) -0:186 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:186 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:186 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:186 'invocation' ( temp uint) -0:186 Constant: -0:186 3 (const int) -0:186 Constant: -0:186 0 (const int) -0:186 subgroupPartitionedInclusiveAddNV ( global double) -0:186 direct index ( temp double) -0:186 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:186 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:186 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:186 Constant: -0:186 0 (const int) -0:186 Constant: -0:186 3 (const int) -0:186 Constant: -0:186 0 (const int) -0:186 'ballot' ( temp 4-component vector of uint) -0:187 move second child to first child ( temp 2-component vector of double) -0:187 vector swizzle ( temp 2-component vector of double) -0:187 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:187 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:187 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:187 'invocation' ( temp uint) -0:187 Constant: -0:187 3 (const int) -0:187 Sequence -0:187 Constant: -0:187 0 (const int) -0:187 Constant: -0:187 1 (const int) -0:187 subgroupPartitionedInclusiveAddNV ( global 2-component vector of double) -0:187 vector swizzle ( temp 2-component vector of double) -0:187 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:187 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:187 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:187 Constant: -0:187 1 (const int) -0:187 Constant: -0:187 3 (const int) -0:187 Sequence -0:187 Constant: -0:187 0 (const int) -0:187 Constant: -0:187 1 (const int) -0:187 'ballot' ( temp 4-component vector of uint) -0:188 move second child to first child ( temp 3-component vector of double) -0:188 vector swizzle ( temp 3-component vector of double) -0:188 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:188 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:188 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:188 'invocation' ( temp uint) -0:188 Constant: -0:188 3 (const int) -0:188 Sequence -0:188 Constant: -0:188 0 (const int) -0:188 Constant: -0:188 1 (const int) -0:188 Constant: -0:188 2 (const int) -0:188 subgroupPartitionedInclusiveAddNV ( global 3-component vector of double) -0:188 vector swizzle ( temp 3-component vector of double) -0:188 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:188 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:188 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:188 Constant: -0:188 2 (const int) -0:188 Constant: -0:188 3 (const int) -0:188 Sequence -0:188 Constant: -0:188 0 (const int) -0:188 Constant: -0:188 1 (const int) -0:188 Constant: -0:188 2 (const int) -0:188 'ballot' ( temp 4-component vector of uint) -0:189 move second child to first child ( temp 4-component vector of double) -0:189 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:189 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:189 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:189 'invocation' ( temp uint) -0:189 Constant: -0:189 3 (const int) -0:189 subgroupPartitionedInclusiveAddNV ( global 4-component vector of double) -0:189 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:189 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:189 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:189 Constant: -0:189 3 (const int) -0:189 Constant: -0:189 3 (const int) -0:189 'ballot' ( temp 4-component vector of uint) -0:191 move second child to first child ( temp float) -0:191 direct index ( temp float) -0:191 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:191 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:191 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:191 'invocation' ( temp uint) -0:191 Constant: -0:191 0 (const int) -0:191 Constant: -0:191 0 (const int) -0:191 subgroupPartitionedInclusiveMulNV ( global float) -0:191 direct index ( temp float) -0:191 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:191 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:191 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:191 Constant: -0:191 0 (const int) -0:191 Constant: -0:191 0 (const int) -0:191 Constant: -0:191 0 (const int) -0:191 'ballot' ( temp 4-component vector of uint) -0:192 move second child to first child ( temp 2-component vector of float) -0:192 vector swizzle ( temp 2-component vector of float) -0:192 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:192 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:192 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:192 'invocation' ( temp uint) -0:192 Constant: -0:192 0 (const int) -0:192 Sequence -0:192 Constant: -0:192 0 (const int) -0:192 Constant: -0:192 1 (const int) -0:192 subgroupPartitionedInclusiveMulNV ( global 2-component vector of float) -0:192 vector swizzle ( temp 2-component vector of float) -0:192 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:192 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:192 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:192 Constant: -0:192 1 (const int) -0:192 Constant: -0:192 0 (const int) -0:192 Sequence -0:192 Constant: -0:192 0 (const int) -0:192 Constant: -0:192 1 (const int) -0:192 'ballot' ( temp 4-component vector of uint) -0:193 move second child to first child ( temp 3-component vector of float) -0:193 vector swizzle ( temp 3-component vector of float) -0:193 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:193 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:193 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:193 'invocation' ( temp uint) -0:193 Constant: -0:193 0 (const int) -0:193 Sequence -0:193 Constant: -0:193 0 (const int) -0:193 Constant: -0:193 1 (const int) -0:193 Constant: -0:193 2 (const int) -0:193 subgroupPartitionedInclusiveMulNV ( global 3-component vector of float) -0:193 vector swizzle ( temp 3-component vector of float) -0:193 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:193 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:193 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:193 Constant: -0:193 2 (const int) -0:193 Constant: -0:193 0 (const int) -0:193 Sequence -0:193 Constant: -0:193 0 (const int) -0:193 Constant: -0:193 1 (const int) -0:193 Constant: -0:193 2 (const int) -0:193 'ballot' ( temp 4-component vector of uint) -0:194 move second child to first child ( temp 4-component vector of float) -0:194 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:194 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:194 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:194 'invocation' ( temp uint) -0:194 Constant: -0:194 0 (const int) -0:194 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float) -0:194 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:194 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:194 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:194 Constant: -0:194 3 (const int) -0:194 Constant: -0:194 0 (const int) -0:194 'ballot' ( temp 4-component vector of uint) -0:196 move second child to first child ( temp int) -0:196 direct index ( temp int) -0:196 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:196 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:196 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:196 'invocation' ( temp uint) -0:196 Constant: -0:196 1 (const int) -0:196 Constant: -0:196 0 (const int) -0:196 subgroupPartitionedInclusiveMulNV ( global int) -0:196 direct index ( temp int) -0:196 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:196 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:196 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:196 Constant: -0:196 0 (const int) -0:196 Constant: -0:196 1 (const int) -0:196 Constant: -0:196 0 (const int) -0:196 'ballot' ( temp 4-component vector of uint) -0:197 move second child to first child ( temp 2-component vector of int) -0:197 vector swizzle ( temp 2-component vector of int) -0:197 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:197 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:197 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:197 'invocation' ( temp uint) -0:197 Constant: -0:197 1 (const int) -0:197 Sequence -0:197 Constant: -0:197 0 (const int) -0:197 Constant: -0:197 1 (const int) -0:197 subgroupPartitionedInclusiveMulNV ( global 2-component vector of int) -0:197 vector swizzle ( temp 2-component vector of int) -0:197 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:197 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:197 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:197 Constant: -0:197 1 (const int) -0:197 Constant: -0:197 1 (const int) -0:197 Sequence -0:197 Constant: -0:197 0 (const int) -0:197 Constant: -0:197 1 (const int) -0:197 'ballot' ( temp 4-component vector of uint) -0:198 move second child to first child ( temp 3-component vector of int) -0:198 vector swizzle ( temp 3-component vector of int) -0:198 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:198 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:198 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:198 'invocation' ( temp uint) -0:198 Constant: -0:198 1 (const int) -0:198 Sequence -0:198 Constant: -0:198 0 (const int) -0:198 Constant: -0:198 1 (const int) -0:198 Constant: -0:198 2 (const int) -0:198 subgroupPartitionedInclusiveMulNV ( global 3-component vector of int) -0:198 vector swizzle ( temp 3-component vector of int) -0:198 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:198 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:198 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:198 Constant: -0:198 2 (const int) -0:198 Constant: -0:198 1 (const int) -0:198 Sequence -0:198 Constant: -0:198 0 (const int) -0:198 Constant: -0:198 1 (const int) -0:198 Constant: -0:198 2 (const int) -0:198 'ballot' ( temp 4-component vector of uint) -0:199 move second child to first child ( temp 4-component vector of int) -0:199 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:199 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:199 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:199 'invocation' ( temp uint) -0:199 Constant: -0:199 1 (const int) -0:199 subgroupPartitionedInclusiveMulNV ( global 4-component vector of int) -0:199 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:199 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:199 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:199 Constant: -0:199 3 (const int) -0:199 Constant: -0:199 1 (const int) -0:199 'ballot' ( temp 4-component vector of uint) -0:201 move second child to first child ( temp uint) -0:201 direct index ( temp uint) -0:201 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:201 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:201 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:201 'invocation' ( temp uint) -0:201 Constant: -0:201 2 (const int) -0:201 Constant: -0:201 0 (const int) -0:201 subgroupPartitionedInclusiveMulNV ( global uint) -0:201 direct index ( temp uint) -0:201 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:201 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:201 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:201 Constant: -0:201 0 (const int) -0:201 Constant: -0:201 2 (const int) -0:201 Constant: -0:201 0 (const int) -0:201 'ballot' ( temp 4-component vector of uint) -0:202 move second child to first child ( temp 2-component vector of uint) -0:202 vector swizzle ( temp 2-component vector of uint) -0:202 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:202 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:202 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:202 'invocation' ( temp uint) -0:202 Constant: -0:202 2 (const int) -0:202 Sequence -0:202 Constant: -0:202 0 (const int) -0:202 Constant: -0:202 1 (const int) -0:202 subgroupPartitionedInclusiveMulNV ( global 2-component vector of uint) -0:202 vector swizzle ( temp 2-component vector of uint) -0:202 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:202 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:202 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:202 Constant: -0:202 1 (const int) -0:202 Constant: -0:202 2 (const int) -0:202 Sequence -0:202 Constant: -0:202 0 (const int) -0:202 Constant: -0:202 1 (const int) -0:202 'ballot' ( temp 4-component vector of uint) -0:203 move second child to first child ( temp 3-component vector of uint) -0:203 vector swizzle ( temp 3-component vector of uint) -0:203 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:203 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:203 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:203 'invocation' ( temp uint) -0:203 Constant: -0:203 2 (const int) -0:203 Sequence -0:203 Constant: -0:203 0 (const int) -0:203 Constant: -0:203 1 (const int) -0:203 Constant: -0:203 2 (const int) -0:203 subgroupPartitionedInclusiveMulNV ( global 3-component vector of uint) -0:203 vector swizzle ( temp 3-component vector of uint) -0:203 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:203 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:203 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:203 Constant: -0:203 2 (const int) -0:203 Constant: -0:203 2 (const int) -0:203 Sequence -0:203 Constant: -0:203 0 (const int) -0:203 Constant: -0:203 1 (const int) -0:203 Constant: -0:203 2 (const int) -0:203 'ballot' ( temp 4-component vector of uint) -0:204 move second child to first child ( temp 4-component vector of uint) -0:204 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:204 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:204 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:204 'invocation' ( temp uint) -0:204 Constant: -0:204 2 (const int) -0:204 subgroupPartitionedInclusiveMulNV ( global 4-component vector of uint) -0:204 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:204 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:204 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:204 Constant: -0:204 3 (const int) -0:204 Constant: -0:204 2 (const int) -0:204 'ballot' ( temp 4-component vector of uint) -0:206 move second child to first child ( temp double) -0:206 direct index ( temp double) -0:206 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:206 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:206 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:206 'invocation' ( temp uint) -0:206 Constant: -0:206 3 (const int) -0:206 Constant: -0:206 0 (const int) -0:206 subgroupPartitionedInclusiveMulNV ( global double) -0:206 direct index ( temp double) -0:206 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:206 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:206 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:206 Constant: -0:206 0 (const int) -0:206 Constant: -0:206 3 (const int) -0:206 Constant: -0:206 0 (const int) -0:206 'ballot' ( temp 4-component vector of uint) -0:207 move second child to first child ( temp 2-component vector of double) -0:207 vector swizzle ( temp 2-component vector of double) -0:207 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:207 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:207 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:207 'invocation' ( temp uint) -0:207 Constant: -0:207 3 (const int) -0:207 Sequence -0:207 Constant: -0:207 0 (const int) -0:207 Constant: -0:207 1 (const int) -0:207 subgroupPartitionedInclusiveMulNV ( global 2-component vector of double) -0:207 vector swizzle ( temp 2-component vector of double) -0:207 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:207 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:207 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:207 Constant: -0:207 1 (const int) -0:207 Constant: -0:207 3 (const int) -0:207 Sequence -0:207 Constant: -0:207 0 (const int) -0:207 Constant: -0:207 1 (const int) -0:207 'ballot' ( temp 4-component vector of uint) -0:208 move second child to first child ( temp 3-component vector of double) -0:208 vector swizzle ( temp 3-component vector of double) -0:208 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:208 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:208 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:208 'invocation' ( temp uint) -0:208 Constant: -0:208 3 (const int) -0:208 Sequence -0:208 Constant: -0:208 0 (const int) -0:208 Constant: -0:208 1 (const int) -0:208 Constant: -0:208 2 (const int) -0:208 subgroupPartitionedInclusiveMulNV ( global 3-component vector of double) -0:208 vector swizzle ( temp 3-component vector of double) -0:208 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:208 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:208 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:208 Constant: -0:208 2 (const int) -0:208 Constant: -0:208 3 (const int) -0:208 Sequence -0:208 Constant: -0:208 0 (const int) -0:208 Constant: -0:208 1 (const int) -0:208 Constant: -0:208 2 (const int) -0:208 'ballot' ( temp 4-component vector of uint) -0:209 move second child to first child ( temp 4-component vector of double) -0:209 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:209 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:209 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:209 'invocation' ( temp uint) -0:209 Constant: -0:209 3 (const int) -0:209 subgroupPartitionedInclusiveMulNV ( global 4-component vector of double) -0:209 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:209 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:209 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:209 Constant: -0:209 3 (const int) -0:209 Constant: -0:209 3 (const int) -0:209 'ballot' ( temp 4-component vector of uint) -0:211 move second child to first child ( temp float) -0:211 direct index ( temp float) -0:211 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:211 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:211 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:211 'invocation' ( temp uint) -0:211 Constant: -0:211 0 (const int) -0:211 Constant: -0:211 0 (const int) -0:211 subgroupPartitionedInclusiveMinNV ( global float) -0:211 direct index ( temp float) -0:211 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:211 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:211 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:211 Constant: -0:211 0 (const int) -0:211 Constant: -0:211 0 (const int) -0:211 Constant: -0:211 0 (const int) -0:211 'ballot' ( temp 4-component vector of uint) -0:212 move second child to first child ( temp 2-component vector of float) -0:212 vector swizzle ( temp 2-component vector of float) -0:212 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:212 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:212 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:212 'invocation' ( temp uint) -0:212 Constant: -0:212 0 (const int) -0:212 Sequence -0:212 Constant: -0:212 0 (const int) -0:212 Constant: -0:212 1 (const int) -0:212 subgroupPartitionedInclusiveMinNV ( global 2-component vector of float) -0:212 vector swizzle ( temp 2-component vector of float) -0:212 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:212 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:212 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:212 Constant: -0:212 1 (const int) -0:212 Constant: -0:212 0 (const int) -0:212 Sequence -0:212 Constant: -0:212 0 (const int) -0:212 Constant: -0:212 1 (const int) -0:212 'ballot' ( temp 4-component vector of uint) -0:213 move second child to first child ( temp 3-component vector of float) -0:213 vector swizzle ( temp 3-component vector of float) -0:213 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:213 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:213 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:213 'invocation' ( temp uint) -0:213 Constant: -0:213 0 (const int) -0:213 Sequence -0:213 Constant: -0:213 0 (const int) -0:213 Constant: -0:213 1 (const int) -0:213 Constant: -0:213 2 (const int) -0:213 subgroupPartitionedInclusiveMinNV ( global 3-component vector of float) -0:213 vector swizzle ( temp 3-component vector of float) -0:213 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:213 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:213 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:213 Constant: -0:213 2 (const int) -0:213 Constant: -0:213 0 (const int) -0:213 Sequence -0:213 Constant: -0:213 0 (const int) -0:213 Constant: -0:213 1 (const int) -0:213 Constant: -0:213 2 (const int) -0:213 'ballot' ( temp 4-component vector of uint) -0:214 move second child to first child ( temp 4-component vector of float) -0:214 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:214 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:214 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:214 'invocation' ( temp uint) -0:214 Constant: -0:214 0 (const int) -0:214 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float) -0:214 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:214 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:214 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:214 Constant: -0:214 3 (const int) -0:214 Constant: -0:214 0 (const int) -0:214 'ballot' ( temp 4-component vector of uint) -0:216 move second child to first child ( temp int) -0:216 direct index ( temp int) -0:216 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:216 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:216 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:216 'invocation' ( temp uint) -0:216 Constant: -0:216 1 (const int) -0:216 Constant: -0:216 0 (const int) -0:216 subgroupPartitionedInclusiveMinNV ( global int) -0:216 direct index ( temp int) -0:216 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:216 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:216 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:216 Constant: -0:216 0 (const int) -0:216 Constant: -0:216 1 (const int) -0:216 Constant: -0:216 0 (const int) -0:216 'ballot' ( temp 4-component vector of uint) -0:217 move second child to first child ( temp 2-component vector of int) -0:217 vector swizzle ( temp 2-component vector of int) -0:217 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:217 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:217 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:217 'invocation' ( temp uint) -0:217 Constant: -0:217 1 (const int) -0:217 Sequence -0:217 Constant: -0:217 0 (const int) -0:217 Constant: -0:217 1 (const int) -0:217 subgroupPartitionedInclusiveMinNV ( global 2-component vector of int) -0:217 vector swizzle ( temp 2-component vector of int) -0:217 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:217 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:217 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:217 Constant: -0:217 1 (const int) -0:217 Constant: -0:217 1 (const int) -0:217 Sequence -0:217 Constant: -0:217 0 (const int) -0:217 Constant: -0:217 1 (const int) -0:217 'ballot' ( temp 4-component vector of uint) -0:218 move second child to first child ( temp 3-component vector of int) -0:218 vector swizzle ( temp 3-component vector of int) -0:218 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:218 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:218 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:218 'invocation' ( temp uint) -0:218 Constant: -0:218 1 (const int) -0:218 Sequence -0:218 Constant: -0:218 0 (const int) -0:218 Constant: -0:218 1 (const int) -0:218 Constant: -0:218 2 (const int) -0:218 subgroupPartitionedInclusiveMinNV ( global 3-component vector of int) -0:218 vector swizzle ( temp 3-component vector of int) -0:218 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:218 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:218 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:218 Constant: -0:218 2 (const int) -0:218 Constant: -0:218 1 (const int) -0:218 Sequence -0:218 Constant: -0:218 0 (const int) -0:218 Constant: -0:218 1 (const int) -0:218 Constant: -0:218 2 (const int) -0:218 'ballot' ( temp 4-component vector of uint) -0:219 move second child to first child ( temp 4-component vector of int) -0:219 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:219 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:219 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:219 'invocation' ( temp uint) -0:219 Constant: -0:219 1 (const int) -0:219 subgroupPartitionedInclusiveMinNV ( global 4-component vector of int) -0:219 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:219 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:219 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:219 Constant: -0:219 3 (const int) -0:219 Constant: -0:219 1 (const int) -0:219 'ballot' ( temp 4-component vector of uint) -0:221 move second child to first child ( temp uint) -0:221 direct index ( temp uint) -0:221 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:221 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:221 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:221 'invocation' ( temp uint) -0:221 Constant: -0:221 2 (const int) -0:221 Constant: -0:221 0 (const int) -0:221 subgroupPartitionedInclusiveMinNV ( global uint) -0:221 direct index ( temp uint) -0:221 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:221 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:221 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:221 Constant: -0:221 0 (const int) -0:221 Constant: -0:221 2 (const int) -0:221 Constant: -0:221 0 (const int) -0:221 'ballot' ( temp 4-component vector of uint) -0:222 move second child to first child ( temp 2-component vector of uint) -0:222 vector swizzle ( temp 2-component vector of uint) -0:222 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:222 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:222 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:222 'invocation' ( temp uint) -0:222 Constant: -0:222 2 (const int) -0:222 Sequence -0:222 Constant: -0:222 0 (const int) -0:222 Constant: -0:222 1 (const int) -0:222 subgroupPartitionedInclusiveMinNV ( global 2-component vector of uint) -0:222 vector swizzle ( temp 2-component vector of uint) -0:222 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:222 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:222 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:222 Constant: -0:222 1 (const int) -0:222 Constant: -0:222 2 (const int) -0:222 Sequence -0:222 Constant: -0:222 0 (const int) -0:222 Constant: -0:222 1 (const int) -0:222 'ballot' ( temp 4-component vector of uint) -0:223 move second child to first child ( temp 3-component vector of uint) -0:223 vector swizzle ( temp 3-component vector of uint) -0:223 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:223 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:223 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:223 'invocation' ( temp uint) -0:223 Constant: -0:223 2 (const int) -0:223 Sequence -0:223 Constant: -0:223 0 (const int) -0:223 Constant: -0:223 1 (const int) -0:223 Constant: -0:223 2 (const int) -0:223 subgroupPartitionedInclusiveMinNV ( global 3-component vector of uint) -0:223 vector swizzle ( temp 3-component vector of uint) -0:223 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:223 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:223 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:223 Constant: -0:223 2 (const int) -0:223 Constant: -0:223 2 (const int) -0:223 Sequence -0:223 Constant: -0:223 0 (const int) -0:223 Constant: -0:223 1 (const int) -0:223 Constant: -0:223 2 (const int) -0:223 'ballot' ( temp 4-component vector of uint) -0:224 move second child to first child ( temp 4-component vector of uint) -0:224 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:224 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:224 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:224 'invocation' ( temp uint) -0:224 Constant: -0:224 2 (const int) -0:224 subgroupPartitionedInclusiveMinNV ( global 4-component vector of uint) -0:224 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:224 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:224 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:224 Constant: -0:224 3 (const int) -0:224 Constant: -0:224 2 (const int) -0:224 'ballot' ( temp 4-component vector of uint) -0:226 move second child to first child ( temp double) -0:226 direct index ( temp double) -0:226 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:226 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:226 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:226 'invocation' ( temp uint) -0:226 Constant: -0:226 3 (const int) -0:226 Constant: -0:226 0 (const int) -0:226 subgroupPartitionedInclusiveMinNV ( global double) -0:226 direct index ( temp double) -0:226 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:226 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:226 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:226 Constant: -0:226 0 (const int) -0:226 Constant: -0:226 3 (const int) -0:226 Constant: -0:226 0 (const int) -0:226 'ballot' ( temp 4-component vector of uint) -0:227 move second child to first child ( temp 2-component vector of double) -0:227 vector swizzle ( temp 2-component vector of double) -0:227 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:227 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:227 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:227 'invocation' ( temp uint) -0:227 Constant: -0:227 3 (const int) -0:227 Sequence -0:227 Constant: -0:227 0 (const int) -0:227 Constant: -0:227 1 (const int) -0:227 subgroupPartitionedInclusiveMinNV ( global 2-component vector of double) -0:227 vector swizzle ( temp 2-component vector of double) -0:227 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:227 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:227 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:227 Constant: -0:227 1 (const int) -0:227 Constant: -0:227 3 (const int) -0:227 Sequence -0:227 Constant: -0:227 0 (const int) -0:227 Constant: -0:227 1 (const int) -0:227 'ballot' ( temp 4-component vector of uint) -0:228 move second child to first child ( temp 3-component vector of double) -0:228 vector swizzle ( temp 3-component vector of double) -0:228 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:228 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:228 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:228 'invocation' ( temp uint) -0:228 Constant: -0:228 3 (const int) -0:228 Sequence -0:228 Constant: -0:228 0 (const int) -0:228 Constant: -0:228 1 (const int) -0:228 Constant: -0:228 2 (const int) -0:228 subgroupPartitionedInclusiveMinNV ( global 3-component vector of double) -0:228 vector swizzle ( temp 3-component vector of double) -0:228 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:228 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:228 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:228 Constant: -0:228 2 (const int) -0:228 Constant: -0:228 3 (const int) -0:228 Sequence -0:228 Constant: -0:228 0 (const int) -0:228 Constant: -0:228 1 (const int) -0:228 Constant: -0:228 2 (const int) -0:228 'ballot' ( temp 4-component vector of uint) -0:229 move second child to first child ( temp 4-component vector of double) -0:229 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:229 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:229 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:229 'invocation' ( temp uint) -0:229 Constant: -0:229 3 (const int) -0:229 subgroupPartitionedInclusiveMinNV ( global 4-component vector of double) -0:229 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:229 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:229 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:229 Constant: -0:229 3 (const int) -0:229 Constant: -0:229 3 (const int) -0:229 'ballot' ( temp 4-component vector of uint) -0:231 move second child to first child ( temp float) -0:231 direct index ( temp float) -0:231 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:231 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:231 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:231 'invocation' ( temp uint) -0:231 Constant: -0:231 0 (const int) -0:231 Constant: -0:231 0 (const int) -0:231 subgroupPartitionedInclusiveMaxNV ( global float) -0:231 direct index ( temp float) -0:231 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:231 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:231 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:231 Constant: -0:231 0 (const int) -0:231 Constant: -0:231 0 (const int) -0:231 Constant: -0:231 0 (const int) -0:231 'ballot' ( temp 4-component vector of uint) -0:232 move second child to first child ( temp 2-component vector of float) -0:232 vector swizzle ( temp 2-component vector of float) -0:232 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:232 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:232 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:232 'invocation' ( temp uint) -0:232 Constant: -0:232 0 (const int) -0:232 Sequence -0:232 Constant: -0:232 0 (const int) -0:232 Constant: -0:232 1 (const int) -0:232 subgroupPartitionedInclusiveMaxNV ( global 2-component vector of float) -0:232 vector swizzle ( temp 2-component vector of float) -0:232 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:232 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:232 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:232 Constant: -0:232 1 (const int) -0:232 Constant: -0:232 0 (const int) -0:232 Sequence -0:232 Constant: -0:232 0 (const int) -0:232 Constant: -0:232 1 (const int) -0:232 'ballot' ( temp 4-component vector of uint) -0:233 move second child to first child ( temp 3-component vector of float) -0:233 vector swizzle ( temp 3-component vector of float) -0:233 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:233 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:233 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:233 'invocation' ( temp uint) -0:233 Constant: -0:233 0 (const int) -0:233 Sequence -0:233 Constant: -0:233 0 (const int) -0:233 Constant: -0:233 1 (const int) -0:233 Constant: -0:233 2 (const int) -0:233 subgroupPartitionedInclusiveMaxNV ( global 3-component vector of float) -0:233 vector swizzle ( temp 3-component vector of float) -0:233 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:233 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:233 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:233 Constant: -0:233 2 (const int) -0:233 Constant: -0:233 0 (const int) -0:233 Sequence -0:233 Constant: -0:233 0 (const int) -0:233 Constant: -0:233 1 (const int) -0:233 Constant: -0:233 2 (const int) -0:233 'ballot' ( temp 4-component vector of uint) -0:234 move second child to first child ( temp 4-component vector of float) -0:234 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:234 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:234 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:234 'invocation' ( temp uint) -0:234 Constant: -0:234 0 (const int) -0:234 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float) -0:234 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:234 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:234 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:234 Constant: -0:234 3 (const int) -0:234 Constant: -0:234 0 (const int) -0:234 'ballot' ( temp 4-component vector of uint) -0:236 move second child to first child ( temp int) -0:236 direct index ( temp int) -0:236 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:236 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:236 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:236 'invocation' ( temp uint) -0:236 Constant: -0:236 1 (const int) -0:236 Constant: -0:236 0 (const int) -0:236 subgroupPartitionedInclusiveMaxNV ( global int) -0:236 direct index ( temp int) -0:236 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:236 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:236 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:236 Constant: -0:236 0 (const int) -0:236 Constant: -0:236 1 (const int) -0:236 Constant: -0:236 0 (const int) -0:236 'ballot' ( temp 4-component vector of uint) -0:237 move second child to first child ( temp 2-component vector of int) -0:237 vector swizzle ( temp 2-component vector of int) -0:237 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:237 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:237 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:237 'invocation' ( temp uint) -0:237 Constant: -0:237 1 (const int) -0:237 Sequence -0:237 Constant: -0:237 0 (const int) -0:237 Constant: -0:237 1 (const int) -0:237 subgroupPartitionedInclusiveMaxNV ( global 2-component vector of int) -0:237 vector swizzle ( temp 2-component vector of int) -0:237 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:237 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:237 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:237 Constant: -0:237 1 (const int) -0:237 Constant: -0:237 1 (const int) -0:237 Sequence -0:237 Constant: -0:237 0 (const int) -0:237 Constant: -0:237 1 (const int) -0:237 'ballot' ( temp 4-component vector of uint) -0:238 move second child to first child ( temp 3-component vector of int) -0:238 vector swizzle ( temp 3-component vector of int) -0:238 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:238 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:238 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:238 'invocation' ( temp uint) -0:238 Constant: -0:238 1 (const int) -0:238 Sequence -0:238 Constant: -0:238 0 (const int) -0:238 Constant: -0:238 1 (const int) -0:238 Constant: -0:238 2 (const int) -0:238 subgroupPartitionedInclusiveMaxNV ( global 3-component vector of int) -0:238 vector swizzle ( temp 3-component vector of int) -0:238 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:238 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:238 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:238 Constant: -0:238 2 (const int) -0:238 Constant: -0:238 1 (const int) -0:238 Sequence -0:238 Constant: -0:238 0 (const int) -0:238 Constant: -0:238 1 (const int) -0:238 Constant: -0:238 2 (const int) -0:238 'ballot' ( temp 4-component vector of uint) -0:239 move second child to first child ( temp 4-component vector of int) -0:239 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:239 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:239 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:239 'invocation' ( temp uint) -0:239 Constant: -0:239 1 (const int) -0:239 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of int) -0:239 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:239 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:239 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:239 Constant: -0:239 3 (const int) -0:239 Constant: -0:239 1 (const int) -0:239 'ballot' ( temp 4-component vector of uint) -0:241 move second child to first child ( temp uint) -0:241 direct index ( temp uint) -0:241 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:241 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:241 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:241 'invocation' ( temp uint) -0:241 Constant: -0:241 2 (const int) -0:241 Constant: -0:241 0 (const int) -0:241 subgroupPartitionedInclusiveMaxNV ( global uint) -0:241 direct index ( temp uint) -0:241 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:241 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:241 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:241 Constant: -0:241 0 (const int) -0:241 Constant: -0:241 2 (const int) -0:241 Constant: -0:241 0 (const int) -0:241 'ballot' ( temp 4-component vector of uint) -0:242 move second child to first child ( temp 2-component vector of uint) -0:242 vector swizzle ( temp 2-component vector of uint) -0:242 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:242 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:242 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:242 'invocation' ( temp uint) -0:242 Constant: -0:242 2 (const int) -0:242 Sequence -0:242 Constant: -0:242 0 (const int) -0:242 Constant: -0:242 1 (const int) -0:242 subgroupPartitionedInclusiveMaxNV ( global 2-component vector of uint) -0:242 vector swizzle ( temp 2-component vector of uint) -0:242 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:242 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:242 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:242 Constant: -0:242 1 (const int) -0:242 Constant: -0:242 2 (const int) -0:242 Sequence -0:242 Constant: -0:242 0 (const int) -0:242 Constant: -0:242 1 (const int) -0:242 'ballot' ( temp 4-component vector of uint) -0:243 move second child to first child ( temp 3-component vector of uint) -0:243 vector swizzle ( temp 3-component vector of uint) -0:243 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:243 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:243 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:243 'invocation' ( temp uint) -0:243 Constant: -0:243 2 (const int) -0:243 Sequence -0:243 Constant: -0:243 0 (const int) -0:243 Constant: -0:243 1 (const int) -0:243 Constant: -0:243 2 (const int) -0:243 subgroupPartitionedInclusiveMaxNV ( global 3-component vector of uint) -0:243 vector swizzle ( temp 3-component vector of uint) -0:243 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:243 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:243 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:243 Constant: -0:243 2 (const int) -0:243 Constant: -0:243 2 (const int) -0:243 Sequence -0:243 Constant: -0:243 0 (const int) -0:243 Constant: -0:243 1 (const int) -0:243 Constant: -0:243 2 (const int) -0:243 'ballot' ( temp 4-component vector of uint) -0:244 move second child to first child ( temp 4-component vector of uint) -0:244 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:244 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:244 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:244 'invocation' ( temp uint) -0:244 Constant: -0:244 2 (const int) -0:244 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of uint) -0:244 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:244 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:244 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:244 Constant: -0:244 3 (const int) -0:244 Constant: -0:244 2 (const int) -0:244 'ballot' ( temp 4-component vector of uint) -0:246 move second child to first child ( temp double) -0:246 direct index ( temp double) -0:246 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:246 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:246 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:246 'invocation' ( temp uint) -0:246 Constant: -0:246 3 (const int) -0:246 Constant: -0:246 0 (const int) -0:246 subgroupPartitionedInclusiveMaxNV ( global double) -0:246 direct index ( temp double) -0:246 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:246 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:246 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:246 Constant: -0:246 0 (const int) -0:246 Constant: -0:246 3 (const int) -0:246 Constant: -0:246 0 (const int) -0:246 'ballot' ( temp 4-component vector of uint) -0:247 move second child to first child ( temp 2-component vector of double) -0:247 vector swizzle ( temp 2-component vector of double) -0:247 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:247 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:247 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:247 'invocation' ( temp uint) -0:247 Constant: -0:247 3 (const int) -0:247 Sequence -0:247 Constant: -0:247 0 (const int) -0:247 Constant: -0:247 1 (const int) -0:247 subgroupPartitionedInclusiveMaxNV ( global 2-component vector of double) -0:247 vector swizzle ( temp 2-component vector of double) -0:247 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:247 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:247 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:247 Constant: -0:247 1 (const int) -0:247 Constant: -0:247 3 (const int) -0:247 Sequence -0:247 Constant: -0:247 0 (const int) -0:247 Constant: -0:247 1 (const int) -0:247 'ballot' ( temp 4-component vector of uint) -0:248 move second child to first child ( temp 3-component vector of double) -0:248 vector swizzle ( temp 3-component vector of double) -0:248 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:248 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:248 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:248 'invocation' ( temp uint) -0:248 Constant: -0:248 3 (const int) -0:248 Sequence -0:248 Constant: -0:248 0 (const int) -0:248 Constant: -0:248 1 (const int) -0:248 Constant: -0:248 2 (const int) -0:248 subgroupPartitionedInclusiveMaxNV ( global 3-component vector of double) -0:248 vector swizzle ( temp 3-component vector of double) -0:248 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:248 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:248 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:248 Constant: -0:248 2 (const int) -0:248 Constant: -0:248 3 (const int) -0:248 Sequence -0:248 Constant: -0:248 0 (const int) -0:248 Constant: -0:248 1 (const int) -0:248 Constant: -0:248 2 (const int) -0:248 'ballot' ( temp 4-component vector of uint) -0:249 move second child to first child ( temp 4-component vector of double) -0:249 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:249 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:249 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:249 'invocation' ( temp uint) -0:249 Constant: -0:249 3 (const int) -0:249 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of double) -0:249 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:249 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:249 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:249 Constant: -0:249 3 (const int) -0:249 Constant: -0:249 3 (const int) -0:249 'ballot' ( temp 4-component vector of uint) -0:251 move second child to first child ( temp int) -0:251 direct index ( temp int) -0:251 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:251 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:251 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:251 'invocation' ( temp uint) -0:251 Constant: -0:251 1 (const int) -0:251 Constant: -0:251 0 (const int) -0:251 subgroupPartitionedInclusiveAndNV ( global int) -0:251 direct index ( temp int) -0:251 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:251 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:251 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:251 Constant: -0:251 0 (const int) -0:251 Constant: -0:251 1 (const int) -0:251 Constant: -0:251 0 (const int) -0:251 'ballot' ( temp 4-component vector of uint) -0:252 move second child to first child ( temp 2-component vector of int) -0:252 vector swizzle ( temp 2-component vector of int) -0:252 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:252 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:252 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:252 'invocation' ( temp uint) -0:252 Constant: -0:252 1 (const int) -0:252 Sequence -0:252 Constant: -0:252 0 (const int) -0:252 Constant: -0:252 1 (const int) -0:252 subgroupPartitionedInclusiveAndNV ( global 2-component vector of int) -0:252 vector swizzle ( temp 2-component vector of int) -0:252 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:252 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:252 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:252 Constant: -0:252 1 (const int) -0:252 Constant: -0:252 1 (const int) -0:252 Sequence -0:252 Constant: -0:252 0 (const int) -0:252 Constant: -0:252 1 (const int) -0:252 'ballot' ( temp 4-component vector of uint) -0:253 move second child to first child ( temp 3-component vector of int) -0:253 vector swizzle ( temp 3-component vector of int) -0:253 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:253 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:253 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:253 'invocation' ( temp uint) -0:253 Constant: -0:253 1 (const int) -0:253 Sequence -0:253 Constant: -0:253 0 (const int) -0:253 Constant: -0:253 1 (const int) -0:253 Constant: -0:253 2 (const int) -0:253 subgroupPartitionedInclusiveAndNV ( global 3-component vector of int) -0:253 vector swizzle ( temp 3-component vector of int) -0:253 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:253 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:253 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:253 Constant: -0:253 2 (const int) -0:253 Constant: -0:253 1 (const int) -0:253 Sequence -0:253 Constant: -0:253 0 (const int) -0:253 Constant: -0:253 1 (const int) -0:253 Constant: -0:253 2 (const int) -0:253 'ballot' ( temp 4-component vector of uint) -0:254 move second child to first child ( temp 4-component vector of int) -0:254 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:254 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:254 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:254 'invocation' ( temp uint) -0:254 Constant: -0:254 1 (const int) -0:254 subgroupPartitionedInclusiveAndNV ( global 4-component vector of int) -0:254 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:254 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:254 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:254 Constant: -0:254 3 (const int) -0:254 Constant: -0:254 1 (const int) -0:254 'ballot' ( temp 4-component vector of uint) -0:256 move second child to first child ( temp uint) -0:256 direct index ( temp uint) -0:256 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:256 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:256 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:256 'invocation' ( temp uint) -0:256 Constant: -0:256 2 (const int) -0:256 Constant: -0:256 0 (const int) -0:256 subgroupPartitionedInclusiveAndNV ( global uint) -0:256 direct index ( temp uint) -0:256 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:256 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:256 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:256 Constant: -0:256 0 (const int) -0:256 Constant: -0:256 2 (const int) -0:256 Constant: -0:256 0 (const int) -0:256 'ballot' ( temp 4-component vector of uint) -0:257 move second child to first child ( temp 2-component vector of uint) -0:257 vector swizzle ( temp 2-component vector of uint) -0:257 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:257 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:257 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:257 'invocation' ( temp uint) -0:257 Constant: -0:257 2 (const int) -0:257 Sequence -0:257 Constant: -0:257 0 (const int) -0:257 Constant: -0:257 1 (const int) -0:257 subgroupPartitionedInclusiveAndNV ( global 2-component vector of uint) -0:257 vector swizzle ( temp 2-component vector of uint) -0:257 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:257 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:257 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:257 Constant: -0:257 1 (const int) -0:257 Constant: -0:257 2 (const int) -0:257 Sequence -0:257 Constant: -0:257 0 (const int) -0:257 Constant: -0:257 1 (const int) -0:257 'ballot' ( temp 4-component vector of uint) -0:258 move second child to first child ( temp 3-component vector of uint) -0:258 vector swizzle ( temp 3-component vector of uint) -0:258 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:258 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:258 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:258 'invocation' ( temp uint) -0:258 Constant: -0:258 2 (const int) -0:258 Sequence -0:258 Constant: -0:258 0 (const int) -0:258 Constant: -0:258 1 (const int) -0:258 Constant: -0:258 2 (const int) -0:258 subgroupPartitionedInclusiveAndNV ( global 3-component vector of uint) -0:258 vector swizzle ( temp 3-component vector of uint) -0:258 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:258 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:258 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:258 Constant: -0:258 2 (const int) -0:258 Constant: -0:258 2 (const int) -0:258 Sequence -0:258 Constant: -0:258 0 (const int) -0:258 Constant: -0:258 1 (const int) -0:258 Constant: -0:258 2 (const int) -0:258 'ballot' ( temp 4-component vector of uint) -0:259 move second child to first child ( temp 4-component vector of uint) -0:259 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:259 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:259 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:259 'invocation' ( temp uint) -0:259 Constant: -0:259 2 (const int) -0:259 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint) -0:259 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:259 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:259 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:259 Constant: -0:259 3 (const int) -0:259 Constant: -0:259 2 (const int) -0:259 'ballot' ( temp 4-component vector of uint) -0:261 move second child to first child ( temp int) -0:261 direct index ( temp int) -0:261 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:261 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:261 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:261 'invocation' ( temp uint) -0:261 Constant: -0:261 1 (const int) -0:261 Constant: -0:261 0 (const int) -0:261 Convert bool to int ( temp int) -0:261 subgroupPartitionedInclusiveAndNV ( global bool) -0:261 Compare Less Than ( temp bool) -0:261 direct index ( temp int) -0:261 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:261 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:261 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:261 Constant: -0:261 0 (const int) -0:261 Constant: -0:261 1 (const int) -0:261 Constant: -0:261 0 (const int) -0:261 Constant: -0:261 0 (const int) -0:261 'ballot' ( temp 4-component vector of uint) -0:262 move second child to first child ( temp 2-component vector of int) -0:262 vector swizzle ( temp 2-component vector of int) -0:262 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:262 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:262 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:262 'invocation' ( temp uint) -0:262 Constant: -0:262 1 (const int) -0:262 Sequence -0:262 Constant: -0:262 0 (const int) -0:262 Constant: -0:262 1 (const int) -0:262 Convert bool to int ( temp 2-component vector of int) -0:262 subgroupPartitionedInclusiveAndNV ( global 2-component vector of bool) -0:262 Compare Less Than ( global 2-component vector of bool) -0:262 vector swizzle ( temp 2-component vector of int) -0:262 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:262 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:262 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:262 Constant: -0:262 1 (const int) -0:262 Constant: -0:262 1 (const int) -0:262 Sequence -0:262 Constant: -0:262 0 (const int) -0:262 Constant: -0:262 1 (const int) -0:262 Constant: -0:262 0 (const int) -0:262 0 (const int) -0:262 'ballot' ( temp 4-component vector of uint) -0:263 move second child to first child ( temp 3-component vector of int) -0:263 vector swizzle ( temp 3-component vector of int) -0:263 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:263 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:263 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:263 'invocation' ( temp uint) -0:263 Constant: -0:263 1 (const int) -0:263 Sequence -0:263 Constant: -0:263 0 (const int) -0:263 Constant: -0:263 1 (const int) -0:263 Constant: -0:263 2 (const int) -0:263 Convert bool to int ( temp 3-component vector of int) -0:263 subgroupPartitionedInclusiveAndNV ( global 3-component vector of bool) -0:263 Compare Less Than ( global 3-component vector of bool) -0:263 vector swizzle ( temp 3-component vector of int) -0:263 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:263 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:263 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:263 Constant: -0:263 1 (const int) -0:263 Constant: -0:263 1 (const int) -0:263 Sequence -0:263 Constant: -0:263 0 (const int) -0:263 Constant: -0:263 1 (const int) -0:263 Constant: -0:263 2 (const int) -0:263 Constant: -0:263 0 (const int) -0:263 0 (const int) -0:263 0 (const int) -0:263 'ballot' ( temp 4-component vector of uint) -0:264 move second child to first child ( temp 4-component vector of int) -0:264 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:264 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:264 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:264 'invocation' ( temp uint) -0:264 Constant: -0:264 1 (const int) -0:264 Convert bool to int ( temp 4-component vector of int) -0:264 subgroupPartitionedInclusiveAndNV ( global 4-component vector of bool) -0:264 Compare Less Than ( global 4-component vector of bool) -0:264 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:264 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:264 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:264 Constant: -0:264 1 (const int) -0:264 Constant: -0:264 1 (const int) -0:264 Constant: -0:264 0 (const int) -0:264 0 (const int) -0:264 0 (const int) -0:264 0 (const int) -0:264 'ballot' ( temp 4-component vector of uint) -0:266 move second child to first child ( temp int) -0:266 direct index ( temp int) -0:266 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:266 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:266 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:266 'invocation' ( temp uint) -0:266 Constant: -0:266 1 (const int) -0:266 Constant: -0:266 0 (const int) -0:266 subgroupPartitionedInclusiveOrNV ( global int) -0:266 direct index ( temp int) -0:266 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:266 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:266 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:266 Constant: -0:266 0 (const int) -0:266 Constant: -0:266 1 (const int) -0:266 Constant: -0:266 0 (const int) -0:266 'ballot' ( temp 4-component vector of uint) -0:267 move second child to first child ( temp 2-component vector of int) -0:267 vector swizzle ( temp 2-component vector of int) -0:267 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:267 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:267 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:267 'invocation' ( temp uint) -0:267 Constant: -0:267 1 (const int) -0:267 Sequence -0:267 Constant: -0:267 0 (const int) -0:267 Constant: -0:267 1 (const int) -0:267 subgroupPartitionedInclusiveOrNV ( global 2-component vector of int) -0:267 vector swizzle ( temp 2-component vector of int) -0:267 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:267 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:267 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:267 Constant: -0:267 1 (const int) -0:267 Constant: -0:267 1 (const int) -0:267 Sequence -0:267 Constant: -0:267 0 (const int) -0:267 Constant: -0:267 1 (const int) -0:267 'ballot' ( temp 4-component vector of uint) -0:268 move second child to first child ( temp 3-component vector of int) -0:268 vector swizzle ( temp 3-component vector of int) -0:268 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:268 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:268 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:268 'invocation' ( temp uint) -0:268 Constant: -0:268 1 (const int) -0:268 Sequence -0:268 Constant: -0:268 0 (const int) -0:268 Constant: -0:268 1 (const int) -0:268 Constant: -0:268 2 (const int) -0:268 subgroupPartitionedInclusiveOrNV ( global 3-component vector of int) -0:268 vector swizzle ( temp 3-component vector of int) -0:268 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:268 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:268 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:268 Constant: -0:268 2 (const int) -0:268 Constant: -0:268 1 (const int) -0:268 Sequence -0:268 Constant: -0:268 0 (const int) -0:268 Constant: -0:268 1 (const int) -0:268 Constant: -0:268 2 (const int) -0:268 'ballot' ( temp 4-component vector of uint) -0:269 move second child to first child ( temp 4-component vector of int) -0:269 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:269 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:269 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:269 'invocation' ( temp uint) -0:269 Constant: -0:269 1 (const int) -0:269 subgroupPartitionedInclusiveOrNV ( global 4-component vector of int) -0:269 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:269 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:269 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:269 Constant: -0:269 3 (const int) -0:269 Constant: -0:269 1 (const int) -0:269 'ballot' ( temp 4-component vector of uint) -0:271 move second child to first child ( temp uint) -0:271 direct index ( temp uint) -0:271 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:271 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:271 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:271 'invocation' ( temp uint) -0:271 Constant: -0:271 2 (const int) -0:271 Constant: -0:271 0 (const int) -0:271 subgroupPartitionedInclusiveOrNV ( global uint) -0:271 direct index ( temp uint) -0:271 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:271 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:271 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:271 Constant: -0:271 0 (const int) -0:271 Constant: -0:271 2 (const int) -0:271 Constant: -0:271 0 (const int) -0:271 'ballot' ( temp 4-component vector of uint) -0:272 move second child to first child ( temp 2-component vector of uint) -0:272 vector swizzle ( temp 2-component vector of uint) -0:272 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:272 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:272 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:272 'invocation' ( temp uint) -0:272 Constant: -0:272 2 (const int) -0:272 Sequence -0:272 Constant: -0:272 0 (const int) -0:272 Constant: -0:272 1 (const int) -0:272 subgroupPartitionedInclusiveOrNV ( global 2-component vector of uint) -0:272 vector swizzle ( temp 2-component vector of uint) -0:272 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:272 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:272 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:272 Constant: -0:272 1 (const int) -0:272 Constant: -0:272 2 (const int) -0:272 Sequence -0:272 Constant: -0:272 0 (const int) -0:272 Constant: -0:272 1 (const int) -0:272 'ballot' ( temp 4-component vector of uint) -0:273 move second child to first child ( temp 3-component vector of uint) -0:273 vector swizzle ( temp 3-component vector of uint) -0:273 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:273 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:273 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:273 'invocation' ( temp uint) -0:273 Constant: -0:273 2 (const int) -0:273 Sequence -0:273 Constant: -0:273 0 (const int) -0:273 Constant: -0:273 1 (const int) -0:273 Constant: -0:273 2 (const int) -0:273 subgroupPartitionedInclusiveOrNV ( global 3-component vector of uint) -0:273 vector swizzle ( temp 3-component vector of uint) -0:273 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:273 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:273 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:273 Constant: -0:273 2 (const int) -0:273 Constant: -0:273 2 (const int) -0:273 Sequence -0:273 Constant: -0:273 0 (const int) -0:273 Constant: -0:273 1 (const int) -0:273 Constant: -0:273 2 (const int) -0:273 'ballot' ( temp 4-component vector of uint) -0:274 move second child to first child ( temp 4-component vector of uint) -0:274 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:274 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:274 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:274 'invocation' ( temp uint) -0:274 Constant: -0:274 2 (const int) -0:274 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint) -0:274 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:274 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:274 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:274 Constant: -0:274 3 (const int) -0:274 Constant: -0:274 2 (const int) -0:274 'ballot' ( temp 4-component vector of uint) -0:276 move second child to first child ( temp int) -0:276 direct index ( temp int) -0:276 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:276 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:276 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:276 'invocation' ( temp uint) -0:276 Constant: -0:276 1 (const int) -0:276 Constant: -0:276 0 (const int) -0:276 Convert bool to int ( temp int) -0:276 subgroupPartitionedInclusiveOrNV ( global bool) -0:276 Compare Less Than ( temp bool) -0:276 direct index ( temp int) -0:276 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:276 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:276 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:276 Constant: -0:276 0 (const int) -0:276 Constant: -0:276 1 (const int) -0:276 Constant: -0:276 0 (const int) -0:276 Constant: -0:276 0 (const int) -0:276 'ballot' ( temp 4-component vector of uint) -0:277 move second child to first child ( temp 2-component vector of int) -0:277 vector swizzle ( temp 2-component vector of int) -0:277 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:277 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:277 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:277 'invocation' ( temp uint) -0:277 Constant: -0:277 1 (const int) -0:277 Sequence -0:277 Constant: -0:277 0 (const int) -0:277 Constant: -0:277 1 (const int) -0:277 Convert bool to int ( temp 2-component vector of int) -0:277 subgroupPartitionedInclusiveOrNV ( global 2-component vector of bool) -0:277 Compare Less Than ( global 2-component vector of bool) -0:277 vector swizzle ( temp 2-component vector of int) -0:277 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:277 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:277 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:277 Constant: -0:277 1 (const int) -0:277 Constant: -0:277 1 (const int) -0:277 Sequence -0:277 Constant: -0:277 0 (const int) -0:277 Constant: -0:277 1 (const int) -0:277 Constant: -0:277 0 (const int) -0:277 0 (const int) -0:277 'ballot' ( temp 4-component vector of uint) -0:278 move second child to first child ( temp 3-component vector of int) -0:278 vector swizzle ( temp 3-component vector of int) -0:278 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:278 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:278 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:278 'invocation' ( temp uint) -0:278 Constant: -0:278 1 (const int) -0:278 Sequence -0:278 Constant: -0:278 0 (const int) -0:278 Constant: -0:278 1 (const int) -0:278 Constant: -0:278 2 (const int) -0:278 Convert bool to int ( temp 3-component vector of int) -0:278 subgroupPartitionedInclusiveOrNV ( global 3-component vector of bool) -0:278 Compare Less Than ( global 3-component vector of bool) -0:278 vector swizzle ( temp 3-component vector of int) -0:278 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:278 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:278 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:278 Constant: -0:278 1 (const int) -0:278 Constant: -0:278 1 (const int) -0:278 Sequence -0:278 Constant: -0:278 0 (const int) -0:278 Constant: -0:278 1 (const int) -0:278 Constant: -0:278 2 (const int) -0:278 Constant: -0:278 0 (const int) -0:278 0 (const int) -0:278 0 (const int) -0:278 'ballot' ( temp 4-component vector of uint) -0:279 move second child to first child ( temp 4-component vector of int) -0:279 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:279 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:279 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:279 'invocation' ( temp uint) -0:279 Constant: -0:279 1 (const int) -0:279 Convert bool to int ( temp 4-component vector of int) -0:279 subgroupPartitionedInclusiveOrNV ( global 4-component vector of bool) -0:279 Compare Less Than ( global 4-component vector of bool) -0:279 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:279 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:279 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:279 Constant: -0:279 1 (const int) -0:279 Constant: -0:279 1 (const int) -0:279 Constant: -0:279 0 (const int) -0:279 0 (const int) -0:279 0 (const int) -0:279 0 (const int) -0:279 'ballot' ( temp 4-component vector of uint) -0:281 move second child to first child ( temp int) -0:281 direct index ( temp int) -0:281 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:281 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:281 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:281 'invocation' ( temp uint) -0:281 Constant: -0:281 1 (const int) -0:281 Constant: -0:281 0 (const int) -0:281 subgroupPartitionedInclusiveXorNV ( global int) -0:281 direct index ( temp int) -0:281 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:281 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:281 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:281 Constant: -0:281 0 (const int) -0:281 Constant: -0:281 1 (const int) -0:281 Constant: -0:281 0 (const int) -0:281 'ballot' ( temp 4-component vector of uint) -0:282 move second child to first child ( temp 2-component vector of int) -0:282 vector swizzle ( temp 2-component vector of int) -0:282 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:282 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:282 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:282 'invocation' ( temp uint) -0:282 Constant: -0:282 1 (const int) -0:282 Sequence -0:282 Constant: -0:282 0 (const int) -0:282 Constant: -0:282 1 (const int) -0:282 subgroupPartitionedInclusiveXorNV ( global 2-component vector of int) -0:282 vector swizzle ( temp 2-component vector of int) -0:282 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:282 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:282 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:282 Constant: -0:282 1 (const int) -0:282 Constant: -0:282 1 (const int) -0:282 Sequence -0:282 Constant: -0:282 0 (const int) -0:282 Constant: -0:282 1 (const int) -0:282 'ballot' ( temp 4-component vector of uint) -0:283 move second child to first child ( temp 3-component vector of int) -0:283 vector swizzle ( temp 3-component vector of int) -0:283 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:283 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:283 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:283 'invocation' ( temp uint) -0:283 Constant: -0:283 1 (const int) -0:283 Sequence -0:283 Constant: -0:283 0 (const int) -0:283 Constant: -0:283 1 (const int) -0:283 Constant: -0:283 2 (const int) -0:283 subgroupPartitionedInclusiveXorNV ( global 3-component vector of int) -0:283 vector swizzle ( temp 3-component vector of int) -0:283 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:283 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:283 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:283 Constant: -0:283 2 (const int) -0:283 Constant: -0:283 1 (const int) -0:283 Sequence -0:283 Constant: -0:283 0 (const int) -0:283 Constant: -0:283 1 (const int) -0:283 Constant: -0:283 2 (const int) -0:283 'ballot' ( temp 4-component vector of uint) -0:284 move second child to first child ( temp 4-component vector of int) -0:284 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:284 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:284 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:284 'invocation' ( temp uint) -0:284 Constant: -0:284 1 (const int) -0:284 subgroupPartitionedInclusiveXorNV ( global 4-component vector of int) -0:284 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:284 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:284 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:284 Constant: -0:284 3 (const int) -0:284 Constant: -0:284 1 (const int) -0:284 'ballot' ( temp 4-component vector of uint) -0:286 move second child to first child ( temp uint) -0:286 direct index ( temp uint) -0:286 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:286 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:286 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:286 'invocation' ( temp uint) -0:286 Constant: -0:286 2 (const int) -0:286 Constant: -0:286 0 (const int) -0:286 subgroupPartitionedInclusiveXorNV ( global uint) -0:286 direct index ( temp uint) -0:286 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:286 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:286 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:286 Constant: -0:286 0 (const int) -0:286 Constant: -0:286 2 (const int) -0:286 Constant: -0:286 0 (const int) -0:286 'ballot' ( temp 4-component vector of uint) -0:287 move second child to first child ( temp 2-component vector of uint) -0:287 vector swizzle ( temp 2-component vector of uint) -0:287 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:287 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:287 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:287 'invocation' ( temp uint) -0:287 Constant: -0:287 2 (const int) -0:287 Sequence -0:287 Constant: -0:287 0 (const int) -0:287 Constant: -0:287 1 (const int) -0:287 subgroupPartitionedInclusiveXorNV ( global 2-component vector of uint) -0:287 vector swizzle ( temp 2-component vector of uint) -0:287 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:287 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:287 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:287 Constant: -0:287 1 (const int) -0:287 Constant: -0:287 2 (const int) -0:287 Sequence -0:287 Constant: -0:287 0 (const int) -0:287 Constant: -0:287 1 (const int) -0:287 'ballot' ( temp 4-component vector of uint) -0:288 move second child to first child ( temp 3-component vector of uint) -0:288 vector swizzle ( temp 3-component vector of uint) -0:288 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:288 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:288 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:288 'invocation' ( temp uint) -0:288 Constant: -0:288 2 (const int) -0:288 Sequence -0:288 Constant: -0:288 0 (const int) -0:288 Constant: -0:288 1 (const int) -0:288 Constant: -0:288 2 (const int) -0:288 subgroupPartitionedInclusiveXorNV ( global 3-component vector of uint) -0:288 vector swizzle ( temp 3-component vector of uint) -0:288 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:288 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:288 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:288 Constant: -0:288 2 (const int) -0:288 Constant: -0:288 2 (const int) -0:288 Sequence -0:288 Constant: -0:288 0 (const int) -0:288 Constant: -0:288 1 (const int) -0:288 Constant: -0:288 2 (const int) -0:288 'ballot' ( temp 4-component vector of uint) -0:289 move second child to first child ( temp 4-component vector of uint) -0:289 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:289 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:289 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:289 'invocation' ( temp uint) -0:289 Constant: -0:289 2 (const int) -0:289 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint) -0:289 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:289 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:289 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:289 Constant: -0:289 3 (const int) -0:289 Constant: -0:289 2 (const int) -0:289 'ballot' ( temp 4-component vector of uint) -0:291 move second child to first child ( temp int) -0:291 direct index ( temp int) -0:291 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:291 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:291 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:291 'invocation' ( temp uint) -0:291 Constant: -0:291 1 (const int) -0:291 Constant: -0:291 0 (const int) -0:291 Convert bool to int ( temp int) -0:291 subgroupPartitionedInclusiveXorNV ( global bool) -0:291 Compare Less Than ( temp bool) -0:291 direct index ( temp int) -0:291 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:291 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:291 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:291 Constant: -0:291 0 (const int) -0:291 Constant: -0:291 1 (const int) -0:291 Constant: -0:291 0 (const int) -0:291 Constant: -0:291 0 (const int) -0:291 'ballot' ( temp 4-component vector of uint) -0:292 move second child to first child ( temp 2-component vector of int) -0:292 vector swizzle ( temp 2-component vector of int) -0:292 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:292 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:292 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:292 'invocation' ( temp uint) -0:292 Constant: -0:292 1 (const int) -0:292 Sequence -0:292 Constant: -0:292 0 (const int) -0:292 Constant: -0:292 1 (const int) -0:292 Convert bool to int ( temp 2-component vector of int) -0:292 subgroupPartitionedInclusiveXorNV ( global 2-component vector of bool) -0:292 Compare Less Than ( global 2-component vector of bool) -0:292 vector swizzle ( temp 2-component vector of int) -0:292 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:292 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:292 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:292 Constant: -0:292 1 (const int) -0:292 Constant: -0:292 1 (const int) -0:292 Sequence -0:292 Constant: -0:292 0 (const int) -0:292 Constant: -0:292 1 (const int) -0:292 Constant: -0:292 0 (const int) -0:292 0 (const int) -0:292 'ballot' ( temp 4-component vector of uint) -0:293 move second child to first child ( temp 3-component vector of int) -0:293 vector swizzle ( temp 3-component vector of int) -0:293 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:293 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:293 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:293 'invocation' ( temp uint) -0:293 Constant: -0:293 1 (const int) -0:293 Sequence -0:293 Constant: -0:293 0 (const int) -0:293 Constant: -0:293 1 (const int) -0:293 Constant: -0:293 2 (const int) -0:293 Convert bool to int ( temp 3-component vector of int) -0:293 subgroupPartitionedInclusiveXorNV ( global 3-component vector of bool) -0:293 Compare Less Than ( global 3-component vector of bool) -0:293 vector swizzle ( temp 3-component vector of int) -0:293 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:293 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:293 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:293 Constant: -0:293 1 (const int) -0:293 Constant: -0:293 1 (const int) -0:293 Sequence -0:293 Constant: -0:293 0 (const int) -0:293 Constant: -0:293 1 (const int) -0:293 Constant: -0:293 2 (const int) -0:293 Constant: -0:293 0 (const int) -0:293 0 (const int) -0:293 0 (const int) -0:293 'ballot' ( temp 4-component vector of uint) -0:294 move second child to first child ( temp 4-component vector of int) -0:294 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:294 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:294 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:294 'invocation' ( temp uint) -0:294 Constant: -0:294 1 (const int) -0:294 Convert bool to int ( temp 4-component vector of int) -0:294 subgroupPartitionedInclusiveXorNV ( global 4-component vector of bool) -0:294 Compare Less Than ( global 4-component vector of bool) -0:294 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:294 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:294 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:294 Constant: -0:294 1 (const int) -0:294 Constant: -0:294 1 (const int) -0:294 Constant: -0:294 0 (const int) -0:294 0 (const int) -0:294 0 (const int) -0:294 0 (const int) -0:294 'ballot' ( temp 4-component vector of uint) -0:296 move second child to first child ( temp float) -0:296 direct index ( temp float) -0:296 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:296 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:296 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:296 'invocation' ( temp uint) -0:296 Constant: -0:296 0 (const int) -0:296 Constant: -0:296 0 (const int) -0:296 subgroupPartitionedExclusiveAddNV ( global float) -0:296 direct index ( temp float) -0:296 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:296 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:296 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:296 Constant: -0:296 0 (const int) -0:296 Constant: -0:296 0 (const int) -0:296 Constant: -0:296 0 (const int) -0:296 'ballot' ( temp 4-component vector of uint) -0:297 move second child to first child ( temp 2-component vector of float) -0:297 vector swizzle ( temp 2-component vector of float) -0:297 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:297 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:297 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:297 'invocation' ( temp uint) -0:297 Constant: -0:297 0 (const int) -0:297 Sequence -0:297 Constant: -0:297 0 (const int) -0:297 Constant: -0:297 1 (const int) -0:297 subgroupPartitionedExclusiveAddNV ( global 2-component vector of float) -0:297 vector swizzle ( temp 2-component vector of float) -0:297 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:297 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:297 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:297 Constant: -0:297 1 (const int) -0:297 Constant: -0:297 0 (const int) -0:297 Sequence -0:297 Constant: -0:297 0 (const int) -0:297 Constant: -0:297 1 (const int) -0:297 'ballot' ( temp 4-component vector of uint) -0:298 move second child to first child ( temp 3-component vector of float) -0:298 vector swizzle ( temp 3-component vector of float) -0:298 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:298 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:298 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:298 'invocation' ( temp uint) -0:298 Constant: -0:298 0 (const int) -0:298 Sequence -0:298 Constant: -0:298 0 (const int) -0:298 Constant: -0:298 1 (const int) -0:298 Constant: -0:298 2 (const int) -0:298 subgroupPartitionedExclusiveAddNV ( global 3-component vector of float) -0:298 vector swizzle ( temp 3-component vector of float) -0:298 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:298 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:298 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:298 Constant: -0:298 2 (const int) -0:298 Constant: -0:298 0 (const int) -0:298 Sequence -0:298 Constant: -0:298 0 (const int) -0:298 Constant: -0:298 1 (const int) -0:298 Constant: -0:298 2 (const int) -0:298 'ballot' ( temp 4-component vector of uint) -0:299 move second child to first child ( temp 4-component vector of float) -0:299 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:299 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:299 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:299 'invocation' ( temp uint) -0:299 Constant: -0:299 0 (const int) -0:299 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float) -0:299 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:299 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:299 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:299 Constant: -0:299 3 (const int) -0:299 Constant: -0:299 0 (const int) -0:299 'ballot' ( temp 4-component vector of uint) -0:301 move second child to first child ( temp int) -0:301 direct index ( temp int) -0:301 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:301 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:301 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:301 'invocation' ( temp uint) -0:301 Constant: -0:301 1 (const int) -0:301 Constant: -0:301 0 (const int) -0:301 subgroupPartitionedExclusiveAddNV ( global int) -0:301 direct index ( temp int) -0:301 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:301 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:301 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:301 Constant: -0:301 0 (const int) -0:301 Constant: -0:301 1 (const int) -0:301 Constant: -0:301 0 (const int) -0:301 'ballot' ( temp 4-component vector of uint) -0:302 move second child to first child ( temp 2-component vector of int) -0:302 vector swizzle ( temp 2-component vector of int) -0:302 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:302 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:302 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:302 'invocation' ( temp uint) -0:302 Constant: -0:302 1 (const int) -0:302 Sequence -0:302 Constant: -0:302 0 (const int) -0:302 Constant: -0:302 1 (const int) -0:302 subgroupPartitionedExclusiveAddNV ( global 2-component vector of int) -0:302 vector swizzle ( temp 2-component vector of int) -0:302 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:302 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:302 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:302 Constant: -0:302 1 (const int) -0:302 Constant: -0:302 1 (const int) -0:302 Sequence -0:302 Constant: -0:302 0 (const int) -0:302 Constant: -0:302 1 (const int) -0:302 'ballot' ( temp 4-component vector of uint) -0:303 move second child to first child ( temp 3-component vector of int) -0:303 vector swizzle ( temp 3-component vector of int) -0:303 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:303 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:303 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:303 'invocation' ( temp uint) -0:303 Constant: -0:303 1 (const int) -0:303 Sequence -0:303 Constant: -0:303 0 (const int) -0:303 Constant: -0:303 1 (const int) -0:303 Constant: -0:303 2 (const int) -0:303 subgroupPartitionedExclusiveAddNV ( global 3-component vector of int) -0:303 vector swizzle ( temp 3-component vector of int) -0:303 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:303 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:303 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:303 Constant: -0:303 2 (const int) -0:303 Constant: -0:303 1 (const int) -0:303 Sequence -0:303 Constant: -0:303 0 (const int) -0:303 Constant: -0:303 1 (const int) -0:303 Constant: -0:303 2 (const int) -0:303 'ballot' ( temp 4-component vector of uint) -0:304 move second child to first child ( temp 4-component vector of int) -0:304 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:304 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:304 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:304 'invocation' ( temp uint) -0:304 Constant: -0:304 1 (const int) -0:304 subgroupPartitionedExclusiveAddNV ( global 4-component vector of int) -0:304 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:304 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:304 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:304 Constant: -0:304 3 (const int) -0:304 Constant: -0:304 1 (const int) -0:304 'ballot' ( temp 4-component vector of uint) -0:306 move second child to first child ( temp uint) -0:306 direct index ( temp uint) -0:306 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:306 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:306 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:306 'invocation' ( temp uint) -0:306 Constant: -0:306 2 (const int) -0:306 Constant: -0:306 0 (const int) -0:306 subgroupPartitionedExclusiveAddNV ( global uint) -0:306 direct index ( temp uint) -0:306 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:306 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:306 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:306 Constant: -0:306 0 (const int) -0:306 Constant: -0:306 2 (const int) -0:306 Constant: -0:306 0 (const int) -0:306 'ballot' ( temp 4-component vector of uint) -0:307 move second child to first child ( temp 2-component vector of uint) -0:307 vector swizzle ( temp 2-component vector of uint) -0:307 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:307 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:307 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:307 'invocation' ( temp uint) -0:307 Constant: -0:307 2 (const int) -0:307 Sequence -0:307 Constant: -0:307 0 (const int) -0:307 Constant: -0:307 1 (const int) -0:307 subgroupPartitionedExclusiveAddNV ( global 2-component vector of uint) -0:307 vector swizzle ( temp 2-component vector of uint) -0:307 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:307 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:307 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:307 Constant: -0:307 1 (const int) -0:307 Constant: -0:307 2 (const int) -0:307 Sequence -0:307 Constant: -0:307 0 (const int) -0:307 Constant: -0:307 1 (const int) -0:307 'ballot' ( temp 4-component vector of uint) -0:308 move second child to first child ( temp 3-component vector of uint) -0:308 vector swizzle ( temp 3-component vector of uint) -0:308 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:308 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:308 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:308 'invocation' ( temp uint) -0:308 Constant: -0:308 2 (const int) -0:308 Sequence -0:308 Constant: -0:308 0 (const int) -0:308 Constant: -0:308 1 (const int) -0:308 Constant: -0:308 2 (const int) -0:308 subgroupPartitionedExclusiveAddNV ( global 3-component vector of uint) -0:308 vector swizzle ( temp 3-component vector of uint) -0:308 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:308 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:308 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:308 Constant: -0:308 2 (const int) -0:308 Constant: -0:308 2 (const int) -0:308 Sequence -0:308 Constant: -0:308 0 (const int) -0:308 Constant: -0:308 1 (const int) -0:308 Constant: -0:308 2 (const int) -0:308 'ballot' ( temp 4-component vector of uint) -0:309 move second child to first child ( temp 4-component vector of uint) -0:309 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:309 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:309 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:309 'invocation' ( temp uint) -0:309 Constant: -0:309 2 (const int) -0:309 subgroupPartitionedExclusiveAddNV ( global 4-component vector of uint) -0:309 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:309 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:309 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:309 Constant: -0:309 3 (const int) -0:309 Constant: -0:309 2 (const int) -0:309 'ballot' ( temp 4-component vector of uint) -0:311 move second child to first child ( temp double) -0:311 direct index ( temp double) -0:311 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:311 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:311 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:311 'invocation' ( temp uint) -0:311 Constant: -0:311 3 (const int) -0:311 Constant: -0:311 0 (const int) -0:311 subgroupPartitionedExclusiveAddNV ( global double) -0:311 direct index ( temp double) -0:311 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:311 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:311 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:311 Constant: -0:311 0 (const int) -0:311 Constant: -0:311 3 (const int) -0:311 Constant: -0:311 0 (const int) -0:311 'ballot' ( temp 4-component vector of uint) -0:312 move second child to first child ( temp 2-component vector of double) -0:312 vector swizzle ( temp 2-component vector of double) -0:312 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:312 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:312 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:312 'invocation' ( temp uint) -0:312 Constant: -0:312 3 (const int) -0:312 Sequence -0:312 Constant: -0:312 0 (const int) -0:312 Constant: -0:312 1 (const int) -0:312 subgroupPartitionedExclusiveAddNV ( global 2-component vector of double) -0:312 vector swizzle ( temp 2-component vector of double) -0:312 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:312 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:312 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:312 Constant: -0:312 1 (const int) -0:312 Constant: -0:312 3 (const int) -0:312 Sequence -0:312 Constant: -0:312 0 (const int) -0:312 Constant: -0:312 1 (const int) -0:312 'ballot' ( temp 4-component vector of uint) -0:313 move second child to first child ( temp 3-component vector of double) -0:313 vector swizzle ( temp 3-component vector of double) -0:313 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:313 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:313 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:313 'invocation' ( temp uint) -0:313 Constant: -0:313 3 (const int) -0:313 Sequence -0:313 Constant: -0:313 0 (const int) -0:313 Constant: -0:313 1 (const int) -0:313 Constant: -0:313 2 (const int) -0:313 subgroupPartitionedExclusiveAddNV ( global 3-component vector of double) -0:313 vector swizzle ( temp 3-component vector of double) -0:313 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:313 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:313 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:313 Constant: -0:313 2 (const int) -0:313 Constant: -0:313 3 (const int) -0:313 Sequence -0:313 Constant: -0:313 0 (const int) -0:313 Constant: -0:313 1 (const int) -0:313 Constant: -0:313 2 (const int) -0:313 'ballot' ( temp 4-component vector of uint) -0:314 move second child to first child ( temp 4-component vector of double) -0:314 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:314 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:314 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:314 'invocation' ( temp uint) -0:314 Constant: -0:314 3 (const int) -0:314 subgroupPartitionedExclusiveAddNV ( global 4-component vector of double) -0:314 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:314 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:314 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:314 Constant: -0:314 3 (const int) -0:314 Constant: -0:314 3 (const int) -0:314 'ballot' ( temp 4-component vector of uint) -0:316 move second child to first child ( temp float) -0:316 direct index ( temp float) -0:316 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:316 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:316 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:316 'invocation' ( temp uint) -0:316 Constant: -0:316 0 (const int) -0:316 Constant: -0:316 0 (const int) -0:316 subgroupPartitionedExclusiveMulNV ( global float) -0:316 direct index ( temp float) -0:316 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:316 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:316 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:316 Constant: -0:316 0 (const int) -0:316 Constant: -0:316 0 (const int) -0:316 Constant: -0:316 0 (const int) -0:316 'ballot' ( temp 4-component vector of uint) -0:317 move second child to first child ( temp 2-component vector of float) -0:317 vector swizzle ( temp 2-component vector of float) -0:317 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:317 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:317 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:317 'invocation' ( temp uint) -0:317 Constant: -0:317 0 (const int) -0:317 Sequence -0:317 Constant: -0:317 0 (const int) -0:317 Constant: -0:317 1 (const int) -0:317 subgroupPartitionedExclusiveMulNV ( global 2-component vector of float) -0:317 vector swizzle ( temp 2-component vector of float) -0:317 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:317 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:317 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:317 Constant: -0:317 1 (const int) -0:317 Constant: -0:317 0 (const int) -0:317 Sequence -0:317 Constant: -0:317 0 (const int) -0:317 Constant: -0:317 1 (const int) -0:317 'ballot' ( temp 4-component vector of uint) -0:318 move second child to first child ( temp 3-component vector of float) -0:318 vector swizzle ( temp 3-component vector of float) -0:318 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:318 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:318 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:318 'invocation' ( temp uint) -0:318 Constant: -0:318 0 (const int) -0:318 Sequence -0:318 Constant: -0:318 0 (const int) -0:318 Constant: -0:318 1 (const int) -0:318 Constant: -0:318 2 (const int) -0:318 subgroupPartitionedExclusiveMulNV ( global 3-component vector of float) -0:318 vector swizzle ( temp 3-component vector of float) -0:318 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:318 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:318 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:318 Constant: -0:318 2 (const int) -0:318 Constant: -0:318 0 (const int) -0:318 Sequence -0:318 Constant: -0:318 0 (const int) -0:318 Constant: -0:318 1 (const int) -0:318 Constant: -0:318 2 (const int) -0:318 'ballot' ( temp 4-component vector of uint) -0:319 move second child to first child ( temp 4-component vector of float) -0:319 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:319 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:319 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:319 'invocation' ( temp uint) -0:319 Constant: -0:319 0 (const int) -0:319 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float) -0:319 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:319 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:319 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:319 Constant: -0:319 3 (const int) -0:319 Constant: -0:319 0 (const int) -0:319 'ballot' ( temp 4-component vector of uint) -0:321 move second child to first child ( temp int) -0:321 direct index ( temp int) -0:321 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:321 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:321 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:321 'invocation' ( temp uint) -0:321 Constant: -0:321 1 (const int) -0:321 Constant: -0:321 0 (const int) -0:321 subgroupPartitionedExclusiveMulNV ( global int) -0:321 direct index ( temp int) -0:321 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:321 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:321 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:321 Constant: -0:321 0 (const int) -0:321 Constant: -0:321 1 (const int) -0:321 Constant: -0:321 0 (const int) -0:321 'ballot' ( temp 4-component vector of uint) -0:322 move second child to first child ( temp 2-component vector of int) -0:322 vector swizzle ( temp 2-component vector of int) -0:322 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:322 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:322 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:322 'invocation' ( temp uint) -0:322 Constant: -0:322 1 (const int) -0:322 Sequence -0:322 Constant: -0:322 0 (const int) -0:322 Constant: -0:322 1 (const int) -0:322 subgroupPartitionedExclusiveMulNV ( global 2-component vector of int) -0:322 vector swizzle ( temp 2-component vector of int) -0:322 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:322 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:322 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:322 Constant: -0:322 1 (const int) -0:322 Constant: -0:322 1 (const int) -0:322 Sequence -0:322 Constant: -0:322 0 (const int) -0:322 Constant: -0:322 1 (const int) -0:322 'ballot' ( temp 4-component vector of uint) -0:323 move second child to first child ( temp 3-component vector of int) -0:323 vector swizzle ( temp 3-component vector of int) -0:323 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:323 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:323 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:323 'invocation' ( temp uint) -0:323 Constant: -0:323 1 (const int) -0:323 Sequence -0:323 Constant: -0:323 0 (const int) -0:323 Constant: -0:323 1 (const int) -0:323 Constant: -0:323 2 (const int) -0:323 subgroupPartitionedExclusiveMulNV ( global 3-component vector of int) -0:323 vector swizzle ( temp 3-component vector of int) -0:323 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:323 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:323 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:323 Constant: -0:323 2 (const int) -0:323 Constant: -0:323 1 (const int) -0:323 Sequence -0:323 Constant: -0:323 0 (const int) -0:323 Constant: -0:323 1 (const int) -0:323 Constant: -0:323 2 (const int) -0:323 'ballot' ( temp 4-component vector of uint) -0:324 move second child to first child ( temp 4-component vector of int) -0:324 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:324 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:324 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:324 'invocation' ( temp uint) -0:324 Constant: -0:324 1 (const int) -0:324 subgroupPartitionedExclusiveMulNV ( global 4-component vector of int) -0:324 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:324 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:324 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:324 Constant: -0:324 3 (const int) -0:324 Constant: -0:324 1 (const int) -0:324 'ballot' ( temp 4-component vector of uint) -0:326 move second child to first child ( temp uint) -0:326 direct index ( temp uint) -0:326 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:326 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:326 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:326 'invocation' ( temp uint) -0:326 Constant: -0:326 2 (const int) -0:326 Constant: -0:326 0 (const int) -0:326 subgroupPartitionedExclusiveMulNV ( global uint) -0:326 direct index ( temp uint) -0:326 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:326 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:326 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:326 Constant: -0:326 0 (const int) -0:326 Constant: -0:326 2 (const int) -0:326 Constant: -0:326 0 (const int) -0:326 'ballot' ( temp 4-component vector of uint) -0:327 move second child to first child ( temp 2-component vector of uint) -0:327 vector swizzle ( temp 2-component vector of uint) -0:327 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:327 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:327 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:327 'invocation' ( temp uint) -0:327 Constant: -0:327 2 (const int) -0:327 Sequence -0:327 Constant: -0:327 0 (const int) -0:327 Constant: -0:327 1 (const int) -0:327 subgroupPartitionedExclusiveMulNV ( global 2-component vector of uint) -0:327 vector swizzle ( temp 2-component vector of uint) -0:327 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:327 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:327 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:327 Constant: -0:327 1 (const int) -0:327 Constant: -0:327 2 (const int) -0:327 Sequence -0:327 Constant: -0:327 0 (const int) -0:327 Constant: -0:327 1 (const int) -0:327 'ballot' ( temp 4-component vector of uint) -0:328 move second child to first child ( temp 3-component vector of uint) -0:328 vector swizzle ( temp 3-component vector of uint) -0:328 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:328 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:328 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:328 'invocation' ( temp uint) -0:328 Constant: -0:328 2 (const int) -0:328 Sequence -0:328 Constant: -0:328 0 (const int) -0:328 Constant: -0:328 1 (const int) -0:328 Constant: -0:328 2 (const int) -0:328 subgroupPartitionedExclusiveMulNV ( global 3-component vector of uint) -0:328 vector swizzle ( temp 3-component vector of uint) -0:328 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:328 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:328 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:328 Constant: -0:328 2 (const int) -0:328 Constant: -0:328 2 (const int) -0:328 Sequence -0:328 Constant: -0:328 0 (const int) -0:328 Constant: -0:328 1 (const int) -0:328 Constant: -0:328 2 (const int) -0:328 'ballot' ( temp 4-component vector of uint) -0:329 move second child to first child ( temp 4-component vector of uint) -0:329 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:329 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:329 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:329 'invocation' ( temp uint) -0:329 Constant: -0:329 2 (const int) -0:329 subgroupPartitionedExclusiveMulNV ( global 4-component vector of uint) -0:329 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:329 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:329 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:329 Constant: -0:329 3 (const int) -0:329 Constant: -0:329 2 (const int) -0:329 'ballot' ( temp 4-component vector of uint) -0:331 move second child to first child ( temp double) -0:331 direct index ( temp double) -0:331 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:331 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:331 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:331 'invocation' ( temp uint) -0:331 Constant: -0:331 3 (const int) -0:331 Constant: -0:331 0 (const int) -0:331 subgroupPartitionedExclusiveMulNV ( global double) -0:331 direct index ( temp double) -0:331 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:331 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:331 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:331 Constant: -0:331 0 (const int) -0:331 Constant: -0:331 3 (const int) -0:331 Constant: -0:331 0 (const int) -0:331 'ballot' ( temp 4-component vector of uint) -0:332 move second child to first child ( temp 2-component vector of double) -0:332 vector swizzle ( temp 2-component vector of double) -0:332 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:332 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:332 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:332 'invocation' ( temp uint) -0:332 Constant: -0:332 3 (const int) -0:332 Sequence -0:332 Constant: -0:332 0 (const int) -0:332 Constant: -0:332 1 (const int) -0:332 subgroupPartitionedExclusiveMulNV ( global 2-component vector of double) -0:332 vector swizzle ( temp 2-component vector of double) -0:332 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:332 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:332 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:332 Constant: -0:332 1 (const int) -0:332 Constant: -0:332 3 (const int) -0:332 Sequence -0:332 Constant: -0:332 0 (const int) -0:332 Constant: -0:332 1 (const int) -0:332 'ballot' ( temp 4-component vector of uint) -0:333 move second child to first child ( temp 3-component vector of double) -0:333 vector swizzle ( temp 3-component vector of double) -0:333 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:333 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:333 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:333 'invocation' ( temp uint) -0:333 Constant: -0:333 3 (const int) -0:333 Sequence -0:333 Constant: -0:333 0 (const int) -0:333 Constant: -0:333 1 (const int) -0:333 Constant: -0:333 2 (const int) -0:333 subgroupPartitionedExclusiveMulNV ( global 3-component vector of double) -0:333 vector swizzle ( temp 3-component vector of double) -0:333 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:333 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:333 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:333 Constant: -0:333 2 (const int) -0:333 Constant: -0:333 3 (const int) -0:333 Sequence -0:333 Constant: -0:333 0 (const int) -0:333 Constant: -0:333 1 (const int) -0:333 Constant: -0:333 2 (const int) -0:333 'ballot' ( temp 4-component vector of uint) -0:334 move second child to first child ( temp 4-component vector of double) -0:334 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:334 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:334 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:334 'invocation' ( temp uint) -0:334 Constant: -0:334 3 (const int) -0:334 subgroupPartitionedExclusiveMulNV ( global 4-component vector of double) -0:334 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:334 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:334 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:334 Constant: -0:334 3 (const int) -0:334 Constant: -0:334 3 (const int) -0:334 'ballot' ( temp 4-component vector of uint) -0:336 move second child to first child ( temp float) -0:336 direct index ( temp float) -0:336 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:336 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:336 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:336 'invocation' ( temp uint) -0:336 Constant: -0:336 0 (const int) -0:336 Constant: -0:336 0 (const int) -0:336 subgroupPartitionedExclusiveMinNV ( global float) -0:336 direct index ( temp float) -0:336 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:336 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:336 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:336 Constant: -0:336 0 (const int) -0:336 Constant: -0:336 0 (const int) -0:336 Constant: -0:336 0 (const int) -0:336 'ballot' ( temp 4-component vector of uint) -0:337 move second child to first child ( temp 2-component vector of float) -0:337 vector swizzle ( temp 2-component vector of float) -0:337 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:337 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:337 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:337 'invocation' ( temp uint) -0:337 Constant: -0:337 0 (const int) -0:337 Sequence -0:337 Constant: -0:337 0 (const int) -0:337 Constant: -0:337 1 (const int) -0:337 subgroupPartitionedExclusiveMinNV ( global 2-component vector of float) -0:337 vector swizzle ( temp 2-component vector of float) -0:337 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:337 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:337 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:337 Constant: -0:337 1 (const int) -0:337 Constant: -0:337 0 (const int) -0:337 Sequence -0:337 Constant: -0:337 0 (const int) -0:337 Constant: -0:337 1 (const int) -0:337 'ballot' ( temp 4-component vector of uint) -0:338 move second child to first child ( temp 3-component vector of float) -0:338 vector swizzle ( temp 3-component vector of float) -0:338 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:338 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:338 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:338 'invocation' ( temp uint) -0:338 Constant: -0:338 0 (const int) -0:338 Sequence -0:338 Constant: -0:338 0 (const int) -0:338 Constant: -0:338 1 (const int) -0:338 Constant: -0:338 2 (const int) -0:338 subgroupPartitionedExclusiveMinNV ( global 3-component vector of float) -0:338 vector swizzle ( temp 3-component vector of float) -0:338 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:338 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:338 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:338 Constant: -0:338 2 (const int) -0:338 Constant: -0:338 0 (const int) -0:338 Sequence -0:338 Constant: -0:338 0 (const int) -0:338 Constant: -0:338 1 (const int) -0:338 Constant: -0:338 2 (const int) -0:338 'ballot' ( temp 4-component vector of uint) -0:339 move second child to first child ( temp 4-component vector of float) -0:339 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:339 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:339 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:339 'invocation' ( temp uint) -0:339 Constant: -0:339 0 (const int) -0:339 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float) -0:339 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:339 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:339 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:339 Constant: -0:339 3 (const int) -0:339 Constant: -0:339 0 (const int) -0:339 'ballot' ( temp 4-component vector of uint) -0:341 move second child to first child ( temp int) -0:341 direct index ( temp int) -0:341 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:341 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:341 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:341 'invocation' ( temp uint) -0:341 Constant: -0:341 1 (const int) -0:341 Constant: -0:341 0 (const int) -0:341 subgroupPartitionedExclusiveMinNV ( global int) -0:341 direct index ( temp int) -0:341 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:341 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:341 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:341 Constant: -0:341 0 (const int) -0:341 Constant: -0:341 1 (const int) -0:341 Constant: -0:341 0 (const int) -0:341 'ballot' ( temp 4-component vector of uint) -0:342 move second child to first child ( temp 2-component vector of int) -0:342 vector swizzle ( temp 2-component vector of int) -0:342 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:342 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:342 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:342 'invocation' ( temp uint) -0:342 Constant: -0:342 1 (const int) -0:342 Sequence -0:342 Constant: -0:342 0 (const int) -0:342 Constant: -0:342 1 (const int) -0:342 subgroupPartitionedExclusiveMinNV ( global 2-component vector of int) -0:342 vector swizzle ( temp 2-component vector of int) -0:342 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:342 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:342 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:342 Constant: -0:342 1 (const int) -0:342 Constant: -0:342 1 (const int) -0:342 Sequence -0:342 Constant: -0:342 0 (const int) -0:342 Constant: -0:342 1 (const int) -0:342 'ballot' ( temp 4-component vector of uint) -0:343 move second child to first child ( temp 3-component vector of int) -0:343 vector swizzle ( temp 3-component vector of int) -0:343 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:343 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:343 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:343 'invocation' ( temp uint) -0:343 Constant: -0:343 1 (const int) -0:343 Sequence -0:343 Constant: -0:343 0 (const int) -0:343 Constant: -0:343 1 (const int) -0:343 Constant: -0:343 2 (const int) -0:343 subgroupPartitionedExclusiveMinNV ( global 3-component vector of int) -0:343 vector swizzle ( temp 3-component vector of int) -0:343 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:343 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:343 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:343 Constant: -0:343 2 (const int) -0:343 Constant: -0:343 1 (const int) -0:343 Sequence -0:343 Constant: -0:343 0 (const int) -0:343 Constant: -0:343 1 (const int) -0:343 Constant: -0:343 2 (const int) -0:343 'ballot' ( temp 4-component vector of uint) -0:344 move second child to first child ( temp 4-component vector of int) -0:344 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:344 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:344 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:344 'invocation' ( temp uint) -0:344 Constant: -0:344 1 (const int) -0:344 subgroupPartitionedExclusiveMinNV ( global 4-component vector of int) -0:344 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:344 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:344 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:344 Constant: -0:344 3 (const int) -0:344 Constant: -0:344 1 (const int) -0:344 'ballot' ( temp 4-component vector of uint) -0:346 move second child to first child ( temp uint) -0:346 direct index ( temp uint) -0:346 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:346 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:346 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:346 'invocation' ( temp uint) -0:346 Constant: -0:346 2 (const int) -0:346 Constant: -0:346 0 (const int) -0:346 subgroupPartitionedExclusiveMinNV ( global uint) -0:346 direct index ( temp uint) -0:346 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:346 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:346 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:346 Constant: -0:346 0 (const int) -0:346 Constant: -0:346 2 (const int) -0:346 Constant: -0:346 0 (const int) -0:346 'ballot' ( temp 4-component vector of uint) -0:347 move second child to first child ( temp 2-component vector of uint) -0:347 vector swizzle ( temp 2-component vector of uint) -0:347 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:347 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:347 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:347 'invocation' ( temp uint) -0:347 Constant: -0:347 2 (const int) -0:347 Sequence -0:347 Constant: -0:347 0 (const int) -0:347 Constant: -0:347 1 (const int) -0:347 subgroupPartitionedExclusiveMinNV ( global 2-component vector of uint) -0:347 vector swizzle ( temp 2-component vector of uint) -0:347 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:347 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:347 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:347 Constant: -0:347 1 (const int) -0:347 Constant: -0:347 2 (const int) -0:347 Sequence -0:347 Constant: -0:347 0 (const int) -0:347 Constant: -0:347 1 (const int) -0:347 'ballot' ( temp 4-component vector of uint) -0:348 move second child to first child ( temp 3-component vector of uint) -0:348 vector swizzle ( temp 3-component vector of uint) -0:348 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:348 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:348 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:348 'invocation' ( temp uint) -0:348 Constant: -0:348 2 (const int) -0:348 Sequence -0:348 Constant: -0:348 0 (const int) -0:348 Constant: -0:348 1 (const int) -0:348 Constant: -0:348 2 (const int) -0:348 subgroupPartitionedExclusiveMinNV ( global 3-component vector of uint) -0:348 vector swizzle ( temp 3-component vector of uint) -0:348 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:348 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:348 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:348 Constant: -0:348 2 (const int) -0:348 Constant: -0:348 2 (const int) -0:348 Sequence -0:348 Constant: -0:348 0 (const int) -0:348 Constant: -0:348 1 (const int) -0:348 Constant: -0:348 2 (const int) -0:348 'ballot' ( temp 4-component vector of uint) -0:349 move second child to first child ( temp 4-component vector of uint) -0:349 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:349 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:349 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:349 'invocation' ( temp uint) -0:349 Constant: -0:349 2 (const int) -0:349 subgroupPartitionedExclusiveMinNV ( global 4-component vector of uint) -0:349 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:349 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:349 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:349 Constant: -0:349 3 (const int) -0:349 Constant: -0:349 2 (const int) -0:349 'ballot' ( temp 4-component vector of uint) -0:351 move second child to first child ( temp double) -0:351 direct index ( temp double) -0:351 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:351 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:351 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:351 'invocation' ( temp uint) -0:351 Constant: -0:351 3 (const int) -0:351 Constant: -0:351 0 (const int) -0:351 subgroupPartitionedExclusiveMinNV ( global double) -0:351 direct index ( temp double) -0:351 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:351 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:351 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:351 Constant: -0:351 0 (const int) -0:351 Constant: -0:351 3 (const int) -0:351 Constant: -0:351 0 (const int) -0:351 'ballot' ( temp 4-component vector of uint) -0:352 move second child to first child ( temp 2-component vector of double) -0:352 vector swizzle ( temp 2-component vector of double) -0:352 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:352 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:352 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:352 'invocation' ( temp uint) -0:352 Constant: -0:352 3 (const int) -0:352 Sequence -0:352 Constant: -0:352 0 (const int) -0:352 Constant: -0:352 1 (const int) -0:352 subgroupPartitionedExclusiveMinNV ( global 2-component vector of double) -0:352 vector swizzle ( temp 2-component vector of double) -0:352 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:352 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:352 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:352 Constant: -0:352 1 (const int) -0:352 Constant: -0:352 3 (const int) -0:352 Sequence -0:352 Constant: -0:352 0 (const int) -0:352 Constant: -0:352 1 (const int) -0:352 'ballot' ( temp 4-component vector of uint) -0:353 move second child to first child ( temp 3-component vector of double) -0:353 vector swizzle ( temp 3-component vector of double) -0:353 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:353 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:353 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:353 'invocation' ( temp uint) -0:353 Constant: -0:353 3 (const int) -0:353 Sequence -0:353 Constant: -0:353 0 (const int) -0:353 Constant: -0:353 1 (const int) -0:353 Constant: -0:353 2 (const int) -0:353 subgroupPartitionedExclusiveMinNV ( global 3-component vector of double) -0:353 vector swizzle ( temp 3-component vector of double) -0:353 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:353 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:353 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:353 Constant: -0:353 2 (const int) -0:353 Constant: -0:353 3 (const int) -0:353 Sequence -0:353 Constant: -0:353 0 (const int) -0:353 Constant: -0:353 1 (const int) -0:353 Constant: -0:353 2 (const int) -0:353 'ballot' ( temp 4-component vector of uint) -0:354 move second child to first child ( temp 4-component vector of double) -0:354 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:354 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:354 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:354 'invocation' ( temp uint) -0:354 Constant: -0:354 3 (const int) -0:354 subgroupPartitionedExclusiveMinNV ( global 4-component vector of double) -0:354 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:354 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:354 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:354 Constant: -0:354 3 (const int) -0:354 Constant: -0:354 3 (const int) -0:354 'ballot' ( temp 4-component vector of uint) -0:356 move second child to first child ( temp float) -0:356 direct index ( temp float) -0:356 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:356 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:356 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:356 'invocation' ( temp uint) -0:356 Constant: -0:356 0 (const int) -0:356 Constant: -0:356 0 (const int) -0:356 subgroupPartitionedExclusiveMaxNV ( global float) -0:356 direct index ( temp float) -0:356 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:356 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:356 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:356 Constant: -0:356 0 (const int) -0:356 Constant: -0:356 0 (const int) -0:356 Constant: -0:356 0 (const int) -0:356 'ballot' ( temp 4-component vector of uint) -0:357 move second child to first child ( temp 2-component vector of float) -0:357 vector swizzle ( temp 2-component vector of float) -0:357 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:357 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:357 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:357 'invocation' ( temp uint) -0:357 Constant: -0:357 0 (const int) -0:357 Sequence -0:357 Constant: -0:357 0 (const int) -0:357 Constant: -0:357 1 (const int) -0:357 subgroupPartitionedExclusiveMaxNV ( global 2-component vector of float) -0:357 vector swizzle ( temp 2-component vector of float) -0:357 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:357 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:357 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:357 Constant: -0:357 1 (const int) -0:357 Constant: -0:357 0 (const int) -0:357 Sequence -0:357 Constant: -0:357 0 (const int) -0:357 Constant: -0:357 1 (const int) -0:357 'ballot' ( temp 4-component vector of uint) -0:358 move second child to first child ( temp 3-component vector of float) -0:358 vector swizzle ( temp 3-component vector of float) -0:358 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:358 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:358 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:358 'invocation' ( temp uint) -0:358 Constant: -0:358 0 (const int) -0:358 Sequence -0:358 Constant: -0:358 0 (const int) -0:358 Constant: -0:358 1 (const int) -0:358 Constant: -0:358 2 (const int) -0:358 subgroupPartitionedExclusiveMaxNV ( global 3-component vector of float) -0:358 vector swizzle ( temp 3-component vector of float) -0:358 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:358 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:358 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:358 Constant: -0:358 2 (const int) -0:358 Constant: -0:358 0 (const int) -0:358 Sequence -0:358 Constant: -0:358 0 (const int) -0:358 Constant: -0:358 1 (const int) -0:358 Constant: -0:358 2 (const int) -0:358 'ballot' ( temp 4-component vector of uint) -0:359 move second child to first child ( temp 4-component vector of float) -0:359 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:359 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:359 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:359 'invocation' ( temp uint) -0:359 Constant: -0:359 0 (const int) -0:359 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float) -0:359 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:359 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:359 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:359 Constant: -0:359 3 (const int) -0:359 Constant: -0:359 0 (const int) -0:359 'ballot' ( temp 4-component vector of uint) -0:361 move second child to first child ( temp int) -0:361 direct index ( temp int) -0:361 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:361 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:361 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:361 'invocation' ( temp uint) -0:361 Constant: -0:361 1 (const int) -0:361 Constant: -0:361 0 (const int) -0:361 subgroupPartitionedExclusiveMaxNV ( global int) -0:361 direct index ( temp int) -0:361 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:361 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:361 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:361 Constant: -0:361 0 (const int) -0:361 Constant: -0:361 1 (const int) -0:361 Constant: -0:361 0 (const int) -0:361 'ballot' ( temp 4-component vector of uint) -0:362 move second child to first child ( temp 2-component vector of int) -0:362 vector swizzle ( temp 2-component vector of int) -0:362 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:362 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:362 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:362 'invocation' ( temp uint) -0:362 Constant: -0:362 1 (const int) -0:362 Sequence -0:362 Constant: -0:362 0 (const int) -0:362 Constant: -0:362 1 (const int) -0:362 subgroupPartitionedExclusiveMaxNV ( global 2-component vector of int) -0:362 vector swizzle ( temp 2-component vector of int) -0:362 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:362 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:362 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:362 Constant: -0:362 1 (const int) -0:362 Constant: -0:362 1 (const int) -0:362 Sequence -0:362 Constant: -0:362 0 (const int) -0:362 Constant: -0:362 1 (const int) -0:362 'ballot' ( temp 4-component vector of uint) -0:363 move second child to first child ( temp 3-component vector of int) -0:363 vector swizzle ( temp 3-component vector of int) -0:363 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:363 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:363 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:363 'invocation' ( temp uint) -0:363 Constant: -0:363 1 (const int) -0:363 Sequence -0:363 Constant: -0:363 0 (const int) -0:363 Constant: -0:363 1 (const int) -0:363 Constant: -0:363 2 (const int) -0:363 subgroupPartitionedExclusiveMaxNV ( global 3-component vector of int) -0:363 vector swizzle ( temp 3-component vector of int) -0:363 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:363 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:363 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:363 Constant: -0:363 2 (const int) -0:363 Constant: -0:363 1 (const int) -0:363 Sequence -0:363 Constant: -0:363 0 (const int) -0:363 Constant: -0:363 1 (const int) -0:363 Constant: -0:363 2 (const int) -0:363 'ballot' ( temp 4-component vector of uint) -0:364 move second child to first child ( temp 4-component vector of int) -0:364 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:364 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:364 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:364 'invocation' ( temp uint) -0:364 Constant: -0:364 1 (const int) -0:364 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of int) -0:364 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:364 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:364 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:364 Constant: -0:364 3 (const int) -0:364 Constant: -0:364 1 (const int) -0:364 'ballot' ( temp 4-component vector of uint) -0:366 move second child to first child ( temp uint) -0:366 direct index ( temp uint) -0:366 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:366 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:366 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:366 'invocation' ( temp uint) -0:366 Constant: -0:366 2 (const int) -0:366 Constant: -0:366 0 (const int) -0:366 subgroupPartitionedExclusiveMaxNV ( global uint) -0:366 direct index ( temp uint) -0:366 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:366 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:366 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:366 Constant: -0:366 0 (const int) -0:366 Constant: -0:366 2 (const int) -0:366 Constant: -0:366 0 (const int) -0:366 'ballot' ( temp 4-component vector of uint) -0:367 move second child to first child ( temp 2-component vector of uint) -0:367 vector swizzle ( temp 2-component vector of uint) -0:367 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:367 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:367 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:367 'invocation' ( temp uint) -0:367 Constant: -0:367 2 (const int) -0:367 Sequence -0:367 Constant: -0:367 0 (const int) -0:367 Constant: -0:367 1 (const int) -0:367 subgroupPartitionedExclusiveMaxNV ( global 2-component vector of uint) -0:367 vector swizzle ( temp 2-component vector of uint) -0:367 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:367 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:367 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:367 Constant: -0:367 1 (const int) -0:367 Constant: -0:367 2 (const int) -0:367 Sequence -0:367 Constant: -0:367 0 (const int) -0:367 Constant: -0:367 1 (const int) -0:367 'ballot' ( temp 4-component vector of uint) -0:368 move second child to first child ( temp 3-component vector of uint) -0:368 vector swizzle ( temp 3-component vector of uint) -0:368 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:368 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:368 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:368 'invocation' ( temp uint) -0:368 Constant: -0:368 2 (const int) -0:368 Sequence -0:368 Constant: -0:368 0 (const int) -0:368 Constant: -0:368 1 (const int) -0:368 Constant: -0:368 2 (const int) -0:368 subgroupPartitionedExclusiveMaxNV ( global 3-component vector of uint) -0:368 vector swizzle ( temp 3-component vector of uint) -0:368 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:368 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:368 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:368 Constant: -0:368 2 (const int) -0:368 Constant: -0:368 2 (const int) -0:368 Sequence -0:368 Constant: -0:368 0 (const int) -0:368 Constant: -0:368 1 (const int) -0:368 Constant: -0:368 2 (const int) -0:368 'ballot' ( temp 4-component vector of uint) -0:369 move second child to first child ( temp 4-component vector of uint) -0:369 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:369 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:369 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:369 'invocation' ( temp uint) -0:369 Constant: -0:369 2 (const int) -0:369 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of uint) -0:369 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:369 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:369 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:369 Constant: -0:369 3 (const int) -0:369 Constant: -0:369 2 (const int) -0:369 'ballot' ( temp 4-component vector of uint) -0:371 move second child to first child ( temp double) -0:371 direct index ( temp double) -0:371 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:371 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:371 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:371 'invocation' ( temp uint) -0:371 Constant: -0:371 3 (const int) -0:371 Constant: -0:371 0 (const int) -0:371 subgroupPartitionedExclusiveMaxNV ( global double) -0:371 direct index ( temp double) -0:371 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:371 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:371 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:371 Constant: -0:371 0 (const int) -0:371 Constant: -0:371 3 (const int) -0:371 Constant: -0:371 0 (const int) -0:371 'ballot' ( temp 4-component vector of uint) -0:372 move second child to first child ( temp 2-component vector of double) -0:372 vector swizzle ( temp 2-component vector of double) -0:372 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:372 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:372 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:372 'invocation' ( temp uint) -0:372 Constant: -0:372 3 (const int) -0:372 Sequence -0:372 Constant: -0:372 0 (const int) -0:372 Constant: -0:372 1 (const int) -0:372 subgroupPartitionedExclusiveMaxNV ( global 2-component vector of double) -0:372 vector swizzle ( temp 2-component vector of double) -0:372 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:372 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:372 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:372 Constant: -0:372 1 (const int) -0:372 Constant: -0:372 3 (const int) -0:372 Sequence -0:372 Constant: -0:372 0 (const int) -0:372 Constant: -0:372 1 (const int) -0:372 'ballot' ( temp 4-component vector of uint) -0:373 move second child to first child ( temp 3-component vector of double) -0:373 vector swizzle ( temp 3-component vector of double) -0:373 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:373 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:373 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:373 'invocation' ( temp uint) -0:373 Constant: -0:373 3 (const int) -0:373 Sequence -0:373 Constant: -0:373 0 (const int) -0:373 Constant: -0:373 1 (const int) -0:373 Constant: -0:373 2 (const int) -0:373 subgroupPartitionedExclusiveMaxNV ( global 3-component vector of double) -0:373 vector swizzle ( temp 3-component vector of double) -0:373 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:373 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:373 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:373 Constant: -0:373 2 (const int) -0:373 Constant: -0:373 3 (const int) -0:373 Sequence -0:373 Constant: -0:373 0 (const int) -0:373 Constant: -0:373 1 (const int) -0:373 Constant: -0:373 2 (const int) -0:373 'ballot' ( temp 4-component vector of uint) -0:374 move second child to first child ( temp 4-component vector of double) -0:374 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:374 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:374 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:374 'invocation' ( temp uint) -0:374 Constant: -0:374 3 (const int) -0:374 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of double) -0:374 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:374 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:374 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:374 Constant: -0:374 3 (const int) -0:374 Constant: -0:374 3 (const int) -0:374 'ballot' ( temp 4-component vector of uint) -0:376 move second child to first child ( temp int) -0:376 direct index ( temp int) -0:376 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:376 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:376 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:376 'invocation' ( temp uint) -0:376 Constant: -0:376 1 (const int) -0:376 Constant: -0:376 0 (const int) -0:376 subgroupPartitionedExclusiveAndNV ( global int) -0:376 direct index ( temp int) -0:376 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:376 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:376 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:376 Constant: -0:376 0 (const int) -0:376 Constant: -0:376 1 (const int) -0:376 Constant: -0:376 0 (const int) -0:376 'ballot' ( temp 4-component vector of uint) -0:377 move second child to first child ( temp 2-component vector of int) -0:377 vector swizzle ( temp 2-component vector of int) -0:377 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:377 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:377 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:377 'invocation' ( temp uint) -0:377 Constant: -0:377 1 (const int) -0:377 Sequence -0:377 Constant: -0:377 0 (const int) -0:377 Constant: -0:377 1 (const int) -0:377 subgroupPartitionedExclusiveAndNV ( global 2-component vector of int) -0:377 vector swizzle ( temp 2-component vector of int) -0:377 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:377 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:377 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:377 Constant: -0:377 1 (const int) -0:377 Constant: -0:377 1 (const int) -0:377 Sequence -0:377 Constant: -0:377 0 (const int) -0:377 Constant: -0:377 1 (const int) -0:377 'ballot' ( temp 4-component vector of uint) -0:378 move second child to first child ( temp 3-component vector of int) -0:378 vector swizzle ( temp 3-component vector of int) -0:378 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:378 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:378 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:378 'invocation' ( temp uint) -0:378 Constant: -0:378 1 (const int) -0:378 Sequence -0:378 Constant: -0:378 0 (const int) -0:378 Constant: -0:378 1 (const int) -0:378 Constant: -0:378 2 (const int) -0:378 subgroupPartitionedExclusiveAndNV ( global 3-component vector of int) -0:378 vector swizzle ( temp 3-component vector of int) -0:378 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:378 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:378 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:378 Constant: -0:378 2 (const int) -0:378 Constant: -0:378 1 (const int) -0:378 Sequence -0:378 Constant: -0:378 0 (const int) -0:378 Constant: -0:378 1 (const int) -0:378 Constant: -0:378 2 (const int) -0:378 'ballot' ( temp 4-component vector of uint) -0:379 move second child to first child ( temp 4-component vector of int) -0:379 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:379 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:379 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:379 'invocation' ( temp uint) -0:379 Constant: -0:379 1 (const int) -0:379 subgroupPartitionedExclusiveAndNV ( global 4-component vector of int) -0:379 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:379 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:379 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:379 Constant: -0:379 3 (const int) -0:379 Constant: -0:379 1 (const int) -0:379 'ballot' ( temp 4-component vector of uint) -0:381 move second child to first child ( temp uint) -0:381 direct index ( temp uint) -0:381 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:381 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:381 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:381 'invocation' ( temp uint) -0:381 Constant: -0:381 2 (const int) -0:381 Constant: -0:381 0 (const int) -0:381 subgroupPartitionedExclusiveAndNV ( global uint) -0:381 direct index ( temp uint) -0:381 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:381 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:381 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:381 Constant: -0:381 0 (const int) -0:381 Constant: -0:381 2 (const int) -0:381 Constant: -0:381 0 (const int) -0:381 'ballot' ( temp 4-component vector of uint) -0:382 move second child to first child ( temp 2-component vector of uint) -0:382 vector swizzle ( temp 2-component vector of uint) -0:382 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:382 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:382 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:382 'invocation' ( temp uint) -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:382 subgroupPartitionedExclusiveAndNV ( global 2-component vector of uint) -0:382 vector swizzle ( temp 2-component vector of uint) -0:382 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:382 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:382 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:382 Constant: -0:382 1 (const int) -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:382 'ballot' ( temp 4-component vector of uint) -0:383 move second child to first child ( temp 3-component vector of uint) -0:383 vector swizzle ( temp 3-component vector of uint) -0:383 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:383 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:383 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:383 'invocation' ( temp uint) -0:383 Constant: -0:383 2 (const int) -0:383 Sequence -0:383 Constant: -0:383 0 (const int) -0:383 Constant: -0:383 1 (const int) -0:383 Constant: -0:383 2 (const int) -0:383 subgroupPartitionedExclusiveAndNV ( global 3-component vector of uint) -0:383 vector swizzle ( temp 3-component vector of uint) -0:383 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:383 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:383 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:383 Constant: -0:383 2 (const int) -0:383 Constant: -0:383 2 (const int) -0:383 Sequence -0:383 Constant: -0:383 0 (const int) -0:383 Constant: -0:383 1 (const int) -0:383 Constant: -0:383 2 (const int) -0:383 'ballot' ( temp 4-component vector of uint) -0:384 move second child to first child ( temp 4-component vector of uint) -0:384 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:384 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:384 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:384 'invocation' ( temp uint) -0:384 Constant: -0:384 2 (const int) -0:384 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint) -0:384 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:384 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:384 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:384 Constant: -0:384 3 (const int) -0:384 Constant: -0:384 2 (const int) -0:384 'ballot' ( temp 4-component vector of uint) -0:386 move second child to first child ( temp int) -0:386 direct index ( temp int) -0:386 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:386 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:386 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:386 'invocation' ( temp uint) -0:386 Constant: -0:386 1 (const int) -0:386 Constant: -0:386 0 (const int) -0:386 Convert bool to int ( temp int) -0:386 subgroupPartitionedExclusiveAndNV ( global bool) -0:386 Compare Less Than ( temp bool) -0:386 direct index ( temp int) -0:386 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:386 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:386 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:386 Constant: -0:386 0 (const int) -0:386 Constant: -0:386 1 (const int) -0:386 Constant: -0:386 0 (const int) -0:386 Constant: -0:386 0 (const int) -0:386 'ballot' ( temp 4-component vector of uint) -0:387 move second child to first child ( temp 2-component vector of int) -0:387 vector swizzle ( temp 2-component vector of int) -0:387 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:387 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:387 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:387 'invocation' ( temp uint) -0:387 Constant: -0:387 1 (const int) -0:387 Sequence -0:387 Constant: -0:387 0 (const int) -0:387 Constant: -0:387 1 (const int) -0:387 Convert bool to int ( temp 2-component vector of int) -0:387 subgroupPartitionedExclusiveAndNV ( global 2-component vector of bool) -0:387 Compare Less Than ( global 2-component vector of bool) -0:387 vector swizzle ( temp 2-component vector of int) -0:387 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:387 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:387 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:387 Constant: -0:387 1 (const int) -0:387 Constant: -0:387 1 (const int) -0:387 Sequence -0:387 Constant: -0:387 0 (const int) -0:387 Constant: -0:387 1 (const int) -0:387 Constant: -0:387 0 (const int) -0:387 0 (const int) -0:387 'ballot' ( temp 4-component vector of uint) -0:388 move second child to first child ( temp 3-component vector of int) -0:388 vector swizzle ( temp 3-component vector of int) -0:388 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:388 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:388 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:388 'invocation' ( temp uint) -0:388 Constant: -0:388 1 (const int) -0:388 Sequence -0:388 Constant: -0:388 0 (const int) -0:388 Constant: -0:388 1 (const int) -0:388 Constant: -0:388 2 (const int) -0:388 Convert bool to int ( temp 3-component vector of int) -0:388 subgroupPartitionedExclusiveAndNV ( global 3-component vector of bool) -0:388 Compare Less Than ( global 3-component vector of bool) -0:388 vector swizzle ( temp 3-component vector of int) -0:388 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:388 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:388 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:388 Constant: -0:388 1 (const int) -0:388 Constant: -0:388 1 (const int) -0:388 Sequence -0:388 Constant: -0:388 0 (const int) -0:388 Constant: -0:388 1 (const int) -0:388 Constant: -0:388 2 (const int) -0:388 Constant: -0:388 0 (const int) -0:388 0 (const int) -0:388 0 (const int) -0:388 'ballot' ( temp 4-component vector of uint) -0:389 move second child to first child ( temp 4-component vector of int) -0:389 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:389 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:389 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:389 'invocation' ( temp uint) -0:389 Constant: -0:389 1 (const int) -0:389 Convert bool to int ( temp 4-component vector of int) -0:389 subgroupPartitionedExclusiveAndNV ( global 4-component vector of bool) -0:389 Compare Less Than ( global 4-component vector of bool) -0:389 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:389 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:389 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:389 Constant: -0:389 1 (const int) -0:389 Constant: -0:389 1 (const int) -0:389 Constant: -0:389 0 (const int) -0:389 0 (const int) -0:389 0 (const int) -0:389 0 (const int) -0:389 'ballot' ( temp 4-component vector of uint) -0:391 move second child to first child ( temp int) -0:391 direct index ( temp int) -0:391 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:391 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:391 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:391 'invocation' ( temp uint) -0:391 Constant: -0:391 1 (const int) -0:391 Constant: -0:391 0 (const int) -0:391 subgroupPartitionedExclusiveOrNV ( global int) -0:391 direct index ( temp int) -0:391 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:391 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:391 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:391 Constant: -0:391 0 (const int) -0:391 Constant: -0:391 1 (const int) -0:391 Constant: -0:391 0 (const int) -0:391 'ballot' ( temp 4-component vector of uint) -0:392 move second child to first child ( temp 2-component vector of int) -0:392 vector swizzle ( temp 2-component vector of int) -0:392 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:392 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:392 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:392 'invocation' ( temp uint) -0:392 Constant: -0:392 1 (const int) -0:392 Sequence -0:392 Constant: -0:392 0 (const int) -0:392 Constant: -0:392 1 (const int) -0:392 subgroupPartitionedExclusiveOrNV ( global 2-component vector of int) -0:392 vector swizzle ( temp 2-component vector of int) -0:392 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:392 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:392 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:392 Constant: -0:392 1 (const int) -0:392 Constant: -0:392 1 (const int) -0:392 Sequence -0:392 Constant: -0:392 0 (const int) -0:392 Constant: -0:392 1 (const int) -0:392 'ballot' ( temp 4-component vector of uint) -0:393 move second child to first child ( temp 3-component vector of int) -0:393 vector swizzle ( temp 3-component vector of int) -0:393 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:393 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:393 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:393 'invocation' ( temp uint) -0:393 Constant: -0:393 1 (const int) -0:393 Sequence -0:393 Constant: -0:393 0 (const int) -0:393 Constant: -0:393 1 (const int) -0:393 Constant: -0:393 2 (const int) -0:393 subgroupPartitionedExclusiveOrNV ( global 3-component vector of int) -0:393 vector swizzle ( temp 3-component vector of int) -0:393 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:393 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:393 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:393 Constant: -0:393 2 (const int) -0:393 Constant: -0:393 1 (const int) -0:393 Sequence -0:393 Constant: -0:393 0 (const int) -0:393 Constant: -0:393 1 (const int) -0:393 Constant: -0:393 2 (const int) -0:393 'ballot' ( temp 4-component vector of uint) -0:394 move second child to first child ( temp 4-component vector of int) -0:394 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:394 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:394 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:394 'invocation' ( temp uint) -0:394 Constant: -0:394 1 (const int) -0:394 subgroupPartitionedExclusiveOrNV ( global 4-component vector of int) -0:394 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:394 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:394 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:394 Constant: -0:394 3 (const int) -0:394 Constant: -0:394 1 (const int) -0:394 'ballot' ( temp 4-component vector of uint) -0:396 move second child to first child ( temp uint) -0:396 direct index ( temp uint) -0:396 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:396 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:396 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:396 'invocation' ( temp uint) -0:396 Constant: -0:396 2 (const int) -0:396 Constant: -0:396 0 (const int) -0:396 subgroupPartitionedExclusiveOrNV ( global uint) -0:396 direct index ( temp uint) -0:396 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:396 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:396 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:396 Constant: -0:396 0 (const int) -0:396 Constant: -0:396 2 (const int) -0:396 Constant: -0:396 0 (const int) -0:396 'ballot' ( temp 4-component vector of uint) -0:397 move second child to first child ( temp 2-component vector of uint) -0:397 vector swizzle ( temp 2-component vector of uint) -0:397 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:397 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:397 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:397 'invocation' ( temp uint) -0:397 Constant: -0:397 2 (const int) -0:397 Sequence -0:397 Constant: -0:397 0 (const int) -0:397 Constant: -0:397 1 (const int) -0:397 subgroupPartitionedExclusiveOrNV ( global 2-component vector of uint) -0:397 vector swizzle ( temp 2-component vector of uint) -0:397 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:397 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:397 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:397 Constant: -0:397 1 (const int) -0:397 Constant: -0:397 2 (const int) -0:397 Sequence -0:397 Constant: -0:397 0 (const int) -0:397 Constant: -0:397 1 (const int) -0:397 'ballot' ( temp 4-component vector of uint) -0:398 move second child to first child ( temp 3-component vector of uint) -0:398 vector swizzle ( temp 3-component vector of uint) -0:398 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:398 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:398 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:398 'invocation' ( temp uint) -0:398 Constant: -0:398 2 (const int) -0:398 Sequence -0:398 Constant: -0:398 0 (const int) -0:398 Constant: -0:398 1 (const int) -0:398 Constant: -0:398 2 (const int) -0:398 subgroupPartitionedExclusiveOrNV ( global 3-component vector of uint) -0:398 vector swizzle ( temp 3-component vector of uint) -0:398 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:398 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:398 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:398 Constant: -0:398 2 (const int) -0:398 Constant: -0:398 2 (const int) -0:398 Sequence -0:398 Constant: -0:398 0 (const int) -0:398 Constant: -0:398 1 (const int) -0:398 Constant: -0:398 2 (const int) -0:398 'ballot' ( temp 4-component vector of uint) -0:399 move second child to first child ( temp 4-component vector of uint) -0:399 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:399 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:399 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:399 'invocation' ( temp uint) -0:399 Constant: -0:399 2 (const int) -0:399 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint) -0:399 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:399 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:399 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:399 Constant: -0:399 3 (const int) -0:399 Constant: -0:399 2 (const int) -0:399 'ballot' ( temp 4-component vector of uint) -0:401 move second child to first child ( temp int) -0:401 direct index ( temp int) -0:401 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:401 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:401 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:401 'invocation' ( temp uint) -0:401 Constant: -0:401 1 (const int) -0:401 Constant: -0:401 0 (const int) -0:401 Convert bool to int ( temp int) -0:401 subgroupPartitionedExclusiveOrNV ( global bool) -0:401 Compare Less Than ( temp bool) -0:401 direct index ( temp int) -0:401 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:401 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:401 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:401 Constant: -0:401 0 (const int) -0:401 Constant: -0:401 1 (const int) -0:401 Constant: -0:401 0 (const int) -0:401 Constant: -0:401 0 (const int) -0:401 'ballot' ( temp 4-component vector of uint) -0:402 move second child to first child ( temp 2-component vector of int) -0:402 vector swizzle ( temp 2-component vector of int) -0:402 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:402 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:402 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:402 'invocation' ( temp uint) -0:402 Constant: -0:402 1 (const int) -0:402 Sequence -0:402 Constant: -0:402 0 (const int) -0:402 Constant: -0:402 1 (const int) -0:402 Convert bool to int ( temp 2-component vector of int) -0:402 subgroupPartitionedExclusiveOrNV ( global 2-component vector of bool) -0:402 Compare Less Than ( global 2-component vector of bool) -0:402 vector swizzle ( temp 2-component vector of int) -0:402 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:402 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:402 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:402 Constant: -0:402 1 (const int) -0:402 Constant: -0:402 1 (const int) -0:402 Sequence -0:402 Constant: -0:402 0 (const int) -0:402 Constant: -0:402 1 (const int) -0:402 Constant: -0:402 0 (const int) -0:402 0 (const int) -0:402 'ballot' ( temp 4-component vector of uint) -0:403 move second child to first child ( temp 3-component vector of int) -0:403 vector swizzle ( temp 3-component vector of int) -0:403 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:403 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:403 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:403 'invocation' ( temp uint) -0:403 Constant: -0:403 1 (const int) -0:403 Sequence -0:403 Constant: -0:403 0 (const int) -0:403 Constant: -0:403 1 (const int) -0:403 Constant: -0:403 2 (const int) -0:403 Convert bool to int ( temp 3-component vector of int) -0:403 subgroupPartitionedExclusiveOrNV ( global 3-component vector of bool) -0:403 Compare Less Than ( global 3-component vector of bool) -0:403 vector swizzle ( temp 3-component vector of int) -0:403 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:403 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:403 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:403 Constant: -0:403 1 (const int) -0:403 Constant: -0:403 1 (const int) -0:403 Sequence -0:403 Constant: -0:403 0 (const int) -0:403 Constant: -0:403 1 (const int) -0:403 Constant: -0:403 2 (const int) -0:403 Constant: -0:403 0 (const int) -0:403 0 (const int) -0:403 0 (const int) -0:403 'ballot' ( temp 4-component vector of uint) -0:404 move second child to first child ( temp 4-component vector of int) -0:404 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:404 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:404 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:404 'invocation' ( temp uint) -0:404 Constant: -0:404 1 (const int) -0:404 Convert bool to int ( temp 4-component vector of int) -0:404 subgroupPartitionedExclusiveOrNV ( global 4-component vector of bool) -0:404 Compare Less Than ( global 4-component vector of bool) -0:404 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:404 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:404 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:404 Constant: -0:404 1 (const int) -0:404 Constant: -0:404 1 (const int) -0:404 Constant: -0:404 0 (const int) -0:404 0 (const int) -0:404 0 (const int) -0:404 0 (const int) -0:404 'ballot' ( temp 4-component vector of uint) -0:406 move second child to first child ( temp int) -0:406 direct index ( temp int) -0:406 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:406 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:406 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:406 'invocation' ( temp uint) -0:406 Constant: -0:406 1 (const int) -0:406 Constant: -0:406 0 (const int) -0:406 subgroupPartitionedExclusiveXorNV ( global int) -0:406 direct index ( temp int) -0:406 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:406 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:406 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:406 Constant: -0:406 0 (const int) -0:406 Constant: -0:406 1 (const int) -0:406 Constant: -0:406 0 (const int) -0:406 'ballot' ( temp 4-component vector of uint) -0:407 move second child to first child ( temp 2-component vector of int) -0:407 vector swizzle ( temp 2-component vector of int) -0:407 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:407 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:407 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:407 'invocation' ( temp uint) -0:407 Constant: -0:407 1 (const int) -0:407 Sequence -0:407 Constant: -0:407 0 (const int) -0:407 Constant: -0:407 1 (const int) -0:407 subgroupPartitionedExclusiveXorNV ( global 2-component vector of int) -0:407 vector swizzle ( temp 2-component vector of int) -0:407 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:407 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:407 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:407 Constant: -0:407 1 (const int) -0:407 Constant: -0:407 1 (const int) -0:407 Sequence -0:407 Constant: -0:407 0 (const int) -0:407 Constant: -0:407 1 (const int) -0:407 'ballot' ( temp 4-component vector of uint) -0:408 move second child to first child ( temp 3-component vector of int) -0:408 vector swizzle ( temp 3-component vector of int) -0:408 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:408 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:408 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:408 'invocation' ( temp uint) -0:408 Constant: -0:408 1 (const int) -0:408 Sequence -0:408 Constant: -0:408 0 (const int) -0:408 Constant: -0:408 1 (const int) -0:408 Constant: -0:408 2 (const int) -0:408 subgroupPartitionedExclusiveXorNV ( global 3-component vector of int) -0:408 vector swizzle ( temp 3-component vector of int) -0:408 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:408 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:408 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:408 Constant: -0:408 2 (const int) -0:408 Constant: -0:408 1 (const int) -0:408 Sequence -0:408 Constant: -0:408 0 (const int) -0:408 Constant: -0:408 1 (const int) -0:408 Constant: -0:408 2 (const int) -0:408 'ballot' ( temp 4-component vector of uint) -0:409 move second child to first child ( temp 4-component vector of int) -0:409 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:409 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:409 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:409 'invocation' ( temp uint) -0:409 Constant: -0:409 1 (const int) -0:409 subgroupPartitionedExclusiveXorNV ( global 4-component vector of int) -0:409 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:409 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:409 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:409 Constant: -0:409 3 (const int) -0:409 Constant: -0:409 1 (const int) -0:409 'ballot' ( temp 4-component vector of uint) -0:411 move second child to first child ( temp uint) -0:411 direct index ( temp uint) -0:411 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:411 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:411 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:411 'invocation' ( temp uint) -0:411 Constant: -0:411 2 (const int) -0:411 Constant: -0:411 0 (const int) -0:411 subgroupPartitionedExclusiveXorNV ( global uint) -0:411 direct index ( temp uint) -0:411 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:411 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:411 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:411 Constant: -0:411 0 (const int) -0:411 Constant: -0:411 2 (const int) -0:411 Constant: -0:411 0 (const int) -0:411 'ballot' ( temp 4-component vector of uint) -0:412 move second child to first child ( temp 2-component vector of uint) -0:412 vector swizzle ( temp 2-component vector of uint) -0:412 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:412 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:412 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:412 'invocation' ( temp uint) -0:412 Constant: -0:412 2 (const int) -0:412 Sequence -0:412 Constant: -0:412 0 (const int) -0:412 Constant: -0:412 1 (const int) -0:412 subgroupPartitionedExclusiveXorNV ( global 2-component vector of uint) -0:412 vector swizzle ( temp 2-component vector of uint) -0:412 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:412 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:412 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:412 Constant: -0:412 1 (const int) -0:412 Constant: -0:412 2 (const int) -0:412 Sequence -0:412 Constant: -0:412 0 (const int) -0:412 Constant: -0:412 1 (const int) -0:412 'ballot' ( temp 4-component vector of uint) -0:413 move second child to first child ( temp 3-component vector of uint) -0:413 vector swizzle ( temp 3-component vector of uint) -0:413 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:413 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:413 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:413 'invocation' ( temp uint) -0:413 Constant: -0:413 2 (const int) -0:413 Sequence -0:413 Constant: -0:413 0 (const int) -0:413 Constant: -0:413 1 (const int) -0:413 Constant: -0:413 2 (const int) -0:413 subgroupPartitionedExclusiveXorNV ( global 3-component vector of uint) -0:413 vector swizzle ( temp 3-component vector of uint) -0:413 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:413 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:413 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:413 Constant: -0:413 2 (const int) -0:413 Constant: -0:413 2 (const int) -0:413 Sequence -0:413 Constant: -0:413 0 (const int) -0:413 Constant: -0:413 1 (const int) -0:413 Constant: -0:413 2 (const int) -0:413 'ballot' ( temp 4-component vector of uint) -0:414 move second child to first child ( temp 4-component vector of uint) -0:414 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:414 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:414 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:414 'invocation' ( temp uint) -0:414 Constant: -0:414 2 (const int) -0:414 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint) -0:414 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:414 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:414 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:414 Constant: -0:414 3 (const int) -0:414 Constant: -0:414 2 (const int) -0:414 'ballot' ( temp 4-component vector of uint) -0:416 move second child to first child ( temp int) -0:416 direct index ( temp int) -0:416 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:416 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:416 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:416 'invocation' ( temp uint) -0:416 Constant: -0:416 1 (const int) -0:416 Constant: -0:416 0 (const int) -0:416 Convert bool to int ( temp int) -0:416 subgroupPartitionedExclusiveXorNV ( global bool) -0:416 Compare Less Than ( temp bool) -0:416 direct index ( temp int) -0:416 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:416 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:416 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:416 Constant: -0:416 0 (const int) -0:416 Constant: -0:416 1 (const int) -0:416 Constant: -0:416 0 (const int) -0:416 Constant: -0:416 0 (const int) -0:416 'ballot' ( temp 4-component vector of uint) -0:417 move second child to first child ( temp 2-component vector of int) -0:417 vector swizzle ( temp 2-component vector of int) -0:417 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:417 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:417 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:417 'invocation' ( temp uint) -0:417 Constant: -0:417 1 (const int) -0:417 Sequence -0:417 Constant: -0:417 0 (const int) -0:417 Constant: -0:417 1 (const int) -0:417 Convert bool to int ( temp 2-component vector of int) -0:417 subgroupPartitionedExclusiveXorNV ( global 2-component vector of bool) -0:417 Compare Less Than ( global 2-component vector of bool) -0:417 vector swizzle ( temp 2-component vector of int) -0:417 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:417 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:417 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:417 Constant: -0:417 1 (const int) -0:417 Constant: -0:417 1 (const int) -0:417 Sequence -0:417 Constant: -0:417 0 (const int) -0:417 Constant: -0:417 1 (const int) -0:417 Constant: -0:417 0 (const int) -0:417 0 (const int) -0:417 'ballot' ( temp 4-component vector of uint) -0:418 move second child to first child ( temp 3-component vector of int) -0:418 vector swizzle ( temp 3-component vector of int) -0:418 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:418 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:418 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:418 'invocation' ( temp uint) -0:418 Constant: -0:418 1 (const int) -0:418 Sequence -0:418 Constant: -0:418 0 (const int) -0:418 Constant: -0:418 1 (const int) -0:418 Constant: -0:418 2 (const int) -0:418 Convert bool to int ( temp 3-component vector of int) -0:418 subgroupPartitionedExclusiveXorNV ( global 3-component vector of bool) -0:418 Compare Less Than ( global 3-component vector of bool) -0:418 vector swizzle ( temp 3-component vector of int) -0:418 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:418 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:418 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:418 Constant: -0:418 1 (const int) -0:418 Constant: -0:418 1 (const int) -0:418 Sequence -0:418 Constant: -0:418 0 (const int) -0:418 Constant: -0:418 1 (const int) -0:418 Constant: -0:418 2 (const int) -0:418 Constant: -0:418 0 (const int) -0:418 0 (const int) -0:418 0 (const int) -0:418 'ballot' ( temp 4-component vector of uint) -0:419 move second child to first child ( temp 4-component vector of int) -0:419 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:419 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:419 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:419 'invocation' ( temp uint) -0:419 Constant: -0:419 1 (const int) -0:419 Convert bool to int ( temp 4-component vector of int) -0:419 subgroupPartitionedExclusiveXorNV ( global 4-component vector of bool) -0:419 Compare Less Than ( global 4-component vector of bool) -0:419 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:419 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:419 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:419 Constant: -0:419 1 (const int) -0:419 Constant: -0:419 1 (const int) -0:419 Constant: -0:419 0 (const int) -0:419 0 (const int) -0:419 0 (const int) -0:419 0 (const int) -0:419 'ballot' ( temp 4-component vector of uint) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) - - -Linked compute stage: - - -Shader version: 450 -Requested GL_KHR_shader_subgroup_basic -Requested GL_NV_shader_subgroup_partitioned -local_size = (8, 1, 1) -0:? Sequence -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 uint) -0:17 'invocation' ( temp uint) -0:17 mod ( temp uint) -0:17 add ( temp uint) -0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:17 'gl_SubgroupSize' ( in uint SubgroupSize) -0:17 Constant: -0:17 4 (const uint) -0:19 Sequence -0:19 move second child to first child ( temp 4-component vector of uint) -0:19 'ballot' ( temp 4-component vector of uint) -0:19 subgroupPartitionNV ( global 4-component vector of uint) -0:19 'invocation' ( temp uint) -0:21 move second child to first child ( temp 4-component vector of uint) -0:21 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:21 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 'invocation' ( temp uint) -0:21 Constant: -0:21 2 (const int) -0:21 subgroupPartitionNV ( global 4-component vector of uint) -0:21 direct index ( temp float) -0:21 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 0 (const int) -0:22 move second child to first child ( temp 4-component vector of uint) -0:22 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:22 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'invocation' ( temp uint) -0:22 Constant: -0:22 2 (const int) -0:22 subgroupPartitionNV ( global 4-component vector of uint) -0:22 vector swizzle ( temp 2-component vector of float) -0:22 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:22 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 0 (const int) -0:22 Sequence -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:23 move second child to first child ( temp 4-component vector of uint) -0:23 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:23 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:23 'invocation' ( temp uint) -0:23 Constant: -0:23 2 (const int) -0:23 subgroupPartitionNV ( global 4-component vector of uint) -0:23 vector swizzle ( temp 3-component vector of float) -0:23 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 0 (const int) -0:23 Sequence -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 2 (const int) -0:24 move second child to first child ( temp 4-component vector of uint) -0:24 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:24 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'invocation' ( temp uint) -0:24 Constant: -0:24 2 (const int) -0:24 subgroupPartitionNV ( global 4-component vector of uint) -0:24 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 0 (const int) -0:26 move second child to first child ( temp 4-component vector of uint) -0:26 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:26 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'invocation' ( temp uint) -0:26 Constant: -0:26 2 (const int) -0:26 subgroupPartitionNV ( global 4-component vector of uint) -0:26 direct index ( temp int) -0:26 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 0 (const int) -0:27 move second child to first child ( temp 4-component vector of uint) -0:27 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:27 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'invocation' ( temp uint) -0:27 Constant: -0:27 2 (const int) -0:27 subgroupPartitionNV ( global 4-component vector of uint) -0:27 vector swizzle ( temp 2-component vector of int) -0:27 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:27 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Sequence -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 1 (const int) -0:28 move second child to first child ( temp 4-component vector of uint) -0:28 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:28 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:28 'invocation' ( temp uint) -0:28 Constant: -0:28 2 (const int) -0:28 subgroupPartitionNV ( global 4-component vector of uint) -0:28 vector swizzle ( temp 3-component vector of int) -0:28 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 1 (const int) -0:28 Sequence -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 1 (const int) -0:28 Constant: -0:28 2 (const int) -0:29 move second child to first child ( temp 4-component vector of uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:29 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'invocation' ( temp uint) -0:29 Constant: -0:29 2 (const int) -0:29 subgroupPartitionNV ( global 4-component vector of uint) -0:29 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 1 (const int) -0:31 move second child to first child ( temp 4-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:31 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'invocation' ( temp uint) -0:31 Constant: -0:31 2 (const int) -0:31 subgroupPartitionNV ( global 4-component vector of uint) -0:31 direct index ( temp uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 Constant: -0:31 0 (const int) -0:32 move second child to first child ( temp 4-component vector of uint) -0:32 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:32 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'invocation' ( temp uint) -0:32 Constant: -0:32 2 (const int) -0:32 subgroupPartitionNV ( global 4-component vector of uint) -0:32 vector swizzle ( temp 2-component vector of uint) -0:32 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 2 (const int) -0:32 Sequence -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 1 (const int) -0:33 move second child to first child ( temp 4-component vector of uint) -0:33 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:33 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:33 'invocation' ( temp uint) -0:33 Constant: -0:33 2 (const int) -0:33 subgroupPartitionNV ( global 4-component vector of uint) -0:33 vector swizzle ( temp 3-component vector of uint) -0:33 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 2 (const int) -0:33 Sequence -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 2 (const int) -0:34 move second child to first child ( temp 4-component vector of uint) -0:34 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:34 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'invocation' ( temp uint) -0:34 Constant: -0:34 2 (const int) -0:34 subgroupPartitionNV ( global 4-component vector of uint) -0:34 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 2 (const int) -0:36 move second child to first child ( temp 4-component vector of uint) -0:36 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:36 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'invocation' ( temp uint) -0:36 Constant: -0:36 2 (const int) -0:36 subgroupPartitionNV ( global 4-component vector of uint) -0:36 direct index ( temp double) -0:36 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 3 (const int) -0:36 Constant: -0:36 0 (const int) -0:37 move second child to first child ( temp 4-component vector of uint) -0:37 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:37 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'invocation' ( temp uint) -0:37 Constant: -0:37 2 (const int) -0:37 subgroupPartitionNV ( global 4-component vector of uint) -0:37 vector swizzle ( temp 2-component vector of double) -0:37 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:37 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 3 (const int) -0:37 Sequence -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 1 (const int) -0:38 move second child to first child ( temp 4-component vector of uint) -0:38 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:38 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:38 'invocation' ( temp uint) -0:38 Constant: -0:38 2 (const int) -0:38 subgroupPartitionNV ( global 4-component vector of uint) -0:38 vector swizzle ( temp 3-component vector of double) -0:38 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 3 (const int) -0:38 Sequence -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 1 (const int) -0:38 Constant: -0:38 2 (const int) -0:39 move second child to first child ( temp 4-component vector of uint) -0:39 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:39 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'invocation' ( temp uint) -0:39 Constant: -0:39 2 (const int) -0:39 subgroupPartitionNV ( global 4-component vector of uint) -0:39 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 3 (const int) -0:41 move second child to first child ( temp 4-component vector of uint) -0:41 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:41 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'invocation' ( temp uint) -0:41 Constant: -0:41 2 (const int) -0:41 subgroupPartitionNV ( global 4-component vector of uint) -0:41 Convert int to bool ( temp bool) -0:41 direct index ( temp int) -0:41 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 0 (const int) -0:42 move second child to first child ( temp 4-component vector of uint) -0:42 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:42 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'invocation' ( temp uint) -0:42 Constant: -0:42 2 (const int) -0:42 subgroupPartitionNV ( global 4-component vector of uint) -0:42 Convert int to bool ( temp 2-component vector of bool) -0:42 vector swizzle ( temp 2-component vector of int) -0:42 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:42 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Sequence -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:43 move second child to first child ( temp 4-component vector of uint) -0:43 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:43 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:43 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:43 'invocation' ( temp uint) -0:43 Constant: -0:43 2 (const int) -0:43 subgroupPartitionNV ( global 4-component vector of uint) -0:43 Convert int to bool ( temp 3-component vector of bool) -0:43 vector swizzle ( temp 3-component vector of int) -0:43 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:43 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:43 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:43 Constant: -0:43 0 (const int) -0:43 Constant: -0:43 1 (const int) -0:43 Sequence -0:43 Constant: -0:43 0 (const int) -0:43 Constant: -0:43 1 (const int) -0:43 Constant: -0:43 2 (const int) -0:44 move second child to first child ( temp 4-component vector of uint) -0:44 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:44 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'invocation' ( temp uint) -0:44 Constant: -0:44 2 (const int) -0:44 subgroupPartitionNV ( global 4-component vector of uint) -0:44 Convert int to bool ( temp 4-component vector of bool) -0:44 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 1 (const int) -0:46 move second child to first child ( temp float) -0:46 direct index ( temp float) -0:46 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:46 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'invocation' ( temp uint) -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 0 (const int) -0:46 subgroupPartitionedAddNV ( global float) -0:46 direct index ( temp float) -0:46 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 0 (const int) -0:46 'ballot' ( temp 4-component vector of uint) -0:47 move second child to first child ( temp 2-component vector of float) -0:47 vector swizzle ( temp 2-component vector of float) -0:47 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:47 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'invocation' ( temp uint) -0:47 Constant: -0:47 0 (const int) -0:47 Sequence -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 1 (const int) -0:47 subgroupPartitionedAddNV ( global 2-component vector of float) -0:47 vector swizzle ( temp 2-component vector of float) -0:47 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:47 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 Constant: -0:47 1 (const int) -0:47 Constant: -0:47 0 (const int) -0:47 Sequence -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 1 (const int) -0:47 'ballot' ( temp 4-component vector of uint) -0:48 move second child to first child ( temp 3-component vector of float) -0:48 vector swizzle ( temp 3-component vector of float) -0:48 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:48 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:48 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:48 'invocation' ( temp uint) -0:48 Constant: -0:48 0 (const int) -0:48 Sequence -0:48 Constant: -0:48 0 (const int) -0:48 Constant: -0:48 1 (const int) -0:48 Constant: -0:48 2 (const int) -0:48 subgroupPartitionedAddNV ( global 3-component vector of float) -0:48 vector swizzle ( temp 3-component vector of float) -0:48 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:48 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:48 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:48 Constant: -0:48 2 (const int) -0:48 Constant: -0:48 0 (const int) -0:48 Sequence -0:48 Constant: -0:48 0 (const int) -0:48 Constant: -0:48 1 (const int) -0:48 Constant: -0:48 2 (const int) -0:48 'ballot' ( temp 4-component vector of uint) -0:49 move second child to first child ( temp 4-component vector of float) -0:49 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:49 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'invocation' ( temp uint) -0:49 Constant: -0:49 0 (const int) -0:49 subgroupPartitionedAddNV ( global 4-component vector of float) -0:49 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:49 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 Constant: -0:49 3 (const int) -0:49 Constant: -0:49 0 (const int) -0:49 'ballot' ( temp 4-component vector of uint) -0:51 move second child to first child ( temp int) -0:51 direct index ( temp int) -0:51 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:51 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'invocation' ( temp uint) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 0 (const int) -0:51 subgroupPartitionedAddNV ( global int) -0:51 direct index ( temp int) -0:51 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 0 (const int) -0:51 'ballot' ( temp 4-component vector of uint) -0:52 move second child to first child ( temp 2-component vector of int) -0:52 vector swizzle ( temp 2-component vector of int) -0:52 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:52 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'invocation' ( temp uint) -0:52 Constant: -0:52 1 (const int) -0:52 Sequence -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 1 (const int) -0:52 subgroupPartitionedAddNV ( global 2-component vector of int) -0:52 vector swizzle ( temp 2-component vector of int) -0:52 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:52 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 Constant: -0:52 1 (const int) -0:52 Constant: -0:52 1 (const int) -0:52 Sequence -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 1 (const int) -0:52 'ballot' ( temp 4-component vector of uint) -0:53 move second child to first child ( temp 3-component vector of int) -0:53 vector swizzle ( temp 3-component vector of int) -0:53 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:53 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:53 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:53 'invocation' ( temp uint) -0:53 Constant: -0:53 1 (const int) -0:53 Sequence -0:53 Constant: -0:53 0 (const int) -0:53 Constant: -0:53 1 (const int) -0:53 Constant: -0:53 2 (const int) -0:53 subgroupPartitionedAddNV ( global 3-component vector of int) -0:53 vector swizzle ( temp 3-component vector of int) -0:53 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:53 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:53 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:53 Constant: -0:53 2 (const int) -0:53 Constant: -0:53 1 (const int) -0:53 Sequence -0:53 Constant: -0:53 0 (const int) -0:53 Constant: -0:53 1 (const int) -0:53 Constant: -0:53 2 (const int) -0:53 'ballot' ( temp 4-component vector of uint) -0:54 move second child to first child ( temp 4-component vector of int) -0:54 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:54 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'invocation' ( temp uint) -0:54 Constant: -0:54 1 (const int) -0:54 subgroupPartitionedAddNV ( global 4-component vector of int) -0:54 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:54 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 Constant: -0:54 3 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 'ballot' ( temp 4-component vector of uint) -0:56 move second child to first child ( temp uint) -0:56 direct index ( temp uint) -0:56 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:56 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'invocation' ( temp uint) -0:56 Constant: -0:56 2 (const int) -0:56 Constant: -0:56 0 (const int) -0:56 subgroupPartitionedAddNV ( global uint) -0:56 direct index ( temp uint) -0:56 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 2 (const int) -0:56 Constant: -0:56 0 (const int) -0:56 'ballot' ( temp 4-component vector of uint) -0:57 move second child to first child ( temp 2-component vector of uint) -0:57 vector swizzle ( temp 2-component vector of uint) -0:57 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:57 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'invocation' ( temp uint) -0:57 Constant: -0:57 2 (const int) -0:57 Sequence -0:57 Constant: -0:57 0 (const int) -0:57 Constant: -0:57 1 (const int) -0:57 subgroupPartitionedAddNV ( global 2-component vector of uint) -0:57 vector swizzle ( temp 2-component vector of uint) -0:57 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:57 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 Constant: -0:57 1 (const int) -0:57 Constant: -0:57 2 (const int) -0:57 Sequence -0:57 Constant: -0:57 0 (const int) -0:57 Constant: -0:57 1 (const int) -0:57 'ballot' ( temp 4-component vector of uint) -0:58 move second child to first child ( temp 3-component vector of uint) -0:58 vector swizzle ( temp 3-component vector of uint) -0:58 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:58 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:58 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:58 'invocation' ( temp uint) -0:58 Constant: -0:58 2 (const int) -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 subgroupPartitionedAddNV ( global 3-component vector of uint) -0:58 vector swizzle ( temp 3-component vector of uint) -0:58 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:58 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:58 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:58 Constant: -0:58 2 (const int) -0:58 Constant: -0:58 2 (const int) -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 'ballot' ( temp 4-component vector of uint) -0:59 move second child to first child ( temp 4-component vector of uint) -0:59 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:59 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 'invocation' ( temp uint) -0:59 Constant: -0:59 2 (const int) -0:59 subgroupPartitionedAddNV ( global 4-component vector of uint) -0:59 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:59 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 Constant: -0:59 3 (const int) -0:59 Constant: -0:59 2 (const int) -0:59 'ballot' ( temp 4-component vector of uint) -0:61 move second child to first child ( temp double) -0:61 direct index ( temp double) -0:61 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:61 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'invocation' ( temp uint) -0:61 Constant: -0:61 3 (const int) -0:61 Constant: -0:61 0 (const int) -0:61 subgroupPartitionedAddNV ( global double) -0:61 direct index ( temp double) -0:61 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:61 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 3 (const int) -0:61 Constant: -0:61 0 (const int) -0:61 'ballot' ( temp 4-component vector of uint) -0:62 move second child to first child ( temp 2-component vector of double) -0:62 vector swizzle ( temp 2-component vector of double) -0:62 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:62 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'invocation' ( temp uint) -0:62 Constant: -0:62 3 (const int) -0:62 Sequence -0:62 Constant: -0:62 0 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 subgroupPartitionedAddNV ( global 2-component vector of double) -0:62 vector swizzle ( temp 2-component vector of double) -0:62 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:62 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 Constant: -0:62 1 (const int) -0:62 Constant: -0:62 3 (const int) -0:62 Sequence -0:62 Constant: -0:62 0 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 'ballot' ( temp 4-component vector of uint) -0:63 move second child to first child ( temp 3-component vector of double) -0:63 vector swizzle ( temp 3-component vector of double) -0:63 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:63 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:63 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:63 'invocation' ( temp uint) -0:63 Constant: -0:63 3 (const int) -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 subgroupPartitionedAddNV ( global 3-component vector of double) -0:63 vector swizzle ( temp 3-component vector of double) -0:63 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:63 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:63 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:63 Constant: -0:63 2 (const int) -0:63 Constant: -0:63 3 (const int) -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 'ballot' ( temp 4-component vector of uint) -0:64 move second child to first child ( temp 4-component vector of double) -0:64 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:64 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'invocation' ( temp uint) -0:64 Constant: -0:64 3 (const int) -0:64 subgroupPartitionedAddNV ( global 4-component vector of double) -0:64 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:64 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 Constant: -0:64 3 (const int) -0:64 Constant: -0:64 3 (const int) -0:64 'ballot' ( temp 4-component vector of uint) -0:66 move second child to first child ( temp float) -0:66 direct index ( temp float) -0:66 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:66 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'invocation' ( temp uint) -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 0 (const int) -0:66 subgroupPartitionedMulNV ( global float) -0:66 direct index ( temp float) -0:66 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:66 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 0 (const int) -0:66 'ballot' ( temp 4-component vector of uint) -0:67 move second child to first child ( temp 2-component vector of float) -0:67 vector swizzle ( temp 2-component vector of float) -0:67 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:67 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'invocation' ( temp uint) -0:67 Constant: -0:67 0 (const int) -0:67 Sequence -0:67 Constant: -0:67 0 (const int) -0:67 Constant: -0:67 1 (const int) -0:67 subgroupPartitionedMulNV ( global 2-component vector of float) -0:67 vector swizzle ( temp 2-component vector of float) -0:67 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:67 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 Constant: -0:67 1 (const int) -0:67 Constant: -0:67 0 (const int) -0:67 Sequence -0:67 Constant: -0:67 0 (const int) -0:67 Constant: -0:67 1 (const int) -0:67 'ballot' ( temp 4-component vector of uint) -0:68 move second child to first child ( temp 3-component vector of float) -0:68 vector swizzle ( temp 3-component vector of float) -0:68 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:68 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:68 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:68 'invocation' ( temp uint) -0:68 Constant: -0:68 0 (const int) -0:68 Sequence -0:68 Constant: -0:68 0 (const int) -0:68 Constant: -0:68 1 (const int) -0:68 Constant: -0:68 2 (const int) -0:68 subgroupPartitionedMulNV ( global 3-component vector of float) -0:68 vector swizzle ( temp 3-component vector of float) -0:68 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:68 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:68 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:68 Constant: -0:68 2 (const int) -0:68 Constant: -0:68 0 (const int) -0:68 Sequence -0:68 Constant: -0:68 0 (const int) -0:68 Constant: -0:68 1 (const int) -0:68 Constant: -0:68 2 (const int) -0:68 'ballot' ( temp 4-component vector of uint) -0:69 move second child to first child ( temp 4-component vector of float) -0:69 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:69 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 'invocation' ( temp uint) -0:69 Constant: -0:69 0 (const int) -0:69 subgroupPartitionedMulNV ( global 4-component vector of float) -0:69 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:69 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 Constant: -0:69 3 (const int) -0:69 Constant: -0:69 0 (const int) -0:69 'ballot' ( temp 4-component vector of uint) -0:71 move second child to first child ( temp int) -0:71 direct index ( temp int) -0:71 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:71 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:71 'invocation' ( temp uint) -0:71 Constant: -0:71 1 (const int) -0:71 Constant: -0:71 0 (const int) -0:71 subgroupPartitionedMulNV ( global int) -0:71 direct index ( temp int) -0:71 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:71 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -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:71 'ballot' ( temp 4-component vector of uint) -0:72 move second child to first child ( temp 2-component vector of int) -0:72 vector swizzle ( temp 2-component vector of int) -0:72 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:72 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 'invocation' ( temp uint) -0:72 Constant: -0:72 1 (const int) -0:72 Sequence -0:72 Constant: -0:72 0 (const int) -0:72 Constant: -0:72 1 (const int) -0:72 subgroupPartitionedMulNV ( global 2-component vector of int) -0:72 vector swizzle ( temp 2-component vector of int) -0:72 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:72 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 Constant: -0:72 1 (const int) -0:72 Constant: -0:72 1 (const int) -0:72 Sequence -0:72 Constant: -0:72 0 (const int) -0:72 Constant: -0:72 1 (const int) -0:72 'ballot' ( temp 4-component vector of uint) -0:73 move second child to first child ( temp 3-component vector of int) -0:73 vector swizzle ( temp 3-component vector of int) -0:73 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:73 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:73 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:73 'invocation' ( temp uint) -0:73 Constant: -0:73 1 (const int) -0:73 Sequence -0:73 Constant: -0:73 0 (const int) -0:73 Constant: -0:73 1 (const int) -0:73 Constant: -0:73 2 (const int) -0:73 subgroupPartitionedMulNV ( global 3-component vector of int) -0:73 vector swizzle ( temp 3-component vector of int) -0:73 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:73 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:73 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:73 Constant: -0:73 2 (const int) -0:73 Constant: -0:73 1 (const int) -0:73 Sequence -0:73 Constant: -0:73 0 (const int) -0:73 Constant: -0:73 1 (const int) -0:73 Constant: -0:73 2 (const int) -0:73 'ballot' ( temp 4-component vector of uint) -0:74 move second child to first child ( temp 4-component vector of int) -0:74 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:74 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 'invocation' ( temp uint) -0:74 Constant: -0:74 1 (const int) -0:74 subgroupPartitionedMulNV ( global 4-component vector of int) -0:74 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:74 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 Constant: -0:74 3 (const int) -0:74 Constant: -0:74 1 (const int) -0:74 'ballot' ( temp 4-component vector of uint) -0:76 move second child to first child ( temp uint) -0:76 direct index ( temp uint) -0:76 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:76 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 'invocation' ( temp uint) -0:76 Constant: -0:76 2 (const int) -0:76 Constant: -0:76 0 (const int) -0:76 subgroupPartitionedMulNV ( global uint) -0:76 direct index ( temp uint) -0:76 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:76 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 Constant: -0:76 0 (const int) -0:76 Constant: -0:76 2 (const int) -0:76 Constant: -0:76 0 (const int) -0:76 'ballot' ( temp 4-component vector of uint) -0:77 move second child to first child ( temp 2-component vector of uint) -0:77 vector swizzle ( temp 2-component vector of uint) -0:77 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:77 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 'invocation' ( temp uint) -0:77 Constant: -0:77 2 (const int) -0:77 Sequence -0:77 Constant: -0:77 0 (const int) -0:77 Constant: -0:77 1 (const int) -0:77 subgroupPartitionedMulNV ( global 2-component vector of uint) -0:77 vector swizzle ( temp 2-component vector of uint) -0:77 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:77 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 Constant: -0:77 1 (const int) -0:77 Constant: -0:77 2 (const int) -0:77 Sequence -0:77 Constant: -0:77 0 (const int) -0:77 Constant: -0:77 1 (const int) -0:77 'ballot' ( temp 4-component vector of uint) -0:78 move second child to first child ( temp 3-component vector of uint) -0:78 vector swizzle ( temp 3-component vector of uint) -0:78 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:78 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:78 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:78 'invocation' ( temp uint) -0:78 Constant: -0:78 2 (const int) -0:78 Sequence -0:78 Constant: -0:78 0 (const int) -0:78 Constant: -0:78 1 (const int) -0:78 Constant: -0:78 2 (const int) -0:78 subgroupPartitionedMulNV ( global 3-component vector of uint) -0:78 vector swizzle ( temp 3-component vector of uint) -0:78 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:78 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:78 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:78 Constant: -0:78 2 (const int) -0:78 Constant: -0:78 2 (const int) -0:78 Sequence -0:78 Constant: -0:78 0 (const int) -0:78 Constant: -0:78 1 (const int) -0:78 Constant: -0:78 2 (const int) -0:78 'ballot' ( temp 4-component vector of uint) -0:79 move second child to first child ( temp 4-component vector of uint) -0:79 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:79 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 'invocation' ( temp uint) -0:79 Constant: -0:79 2 (const int) -0:79 subgroupPartitionedMulNV ( global 4-component vector of uint) -0:79 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:79 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 Constant: -0:79 3 (const int) -0:79 Constant: -0:79 2 (const int) -0:79 'ballot' ( temp 4-component vector of uint) -0:81 move second child to first child ( temp double) -0:81 direct index ( temp double) -0:81 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:81 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 'invocation' ( temp uint) -0:81 Constant: -0:81 3 (const int) -0:81 Constant: -0:81 0 (const int) -0:81 subgroupPartitionedMulNV ( global double) -0:81 direct index ( temp double) -0:81 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:81 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 3 (const int) -0:81 Constant: -0:81 0 (const int) -0:81 'ballot' ( temp 4-component vector of uint) -0:82 move second child to first child ( temp 2-component vector of double) -0:82 vector swizzle ( temp 2-component vector of double) -0:82 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:82 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 'invocation' ( temp uint) -0:82 Constant: -0:82 3 (const int) -0:82 Sequence -0:82 Constant: -0:82 0 (const int) -0:82 Constant: -0:82 1 (const int) -0:82 subgroupPartitionedMulNV ( global 2-component vector of double) -0:82 vector swizzle ( temp 2-component vector of double) -0:82 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:82 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 Constant: -0:82 1 (const int) -0:82 Constant: -0:82 3 (const int) -0:82 Sequence -0:82 Constant: -0:82 0 (const int) -0:82 Constant: -0:82 1 (const int) -0:82 'ballot' ( temp 4-component vector of uint) -0:83 move second child to first child ( temp 3-component vector of double) -0:83 vector swizzle ( temp 3-component vector of double) -0:83 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:83 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:83 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:83 'invocation' ( temp uint) -0:83 Constant: -0:83 3 (const int) -0:83 Sequence -0:83 Constant: -0:83 0 (const int) -0:83 Constant: -0:83 1 (const int) -0:83 Constant: -0:83 2 (const int) -0:83 subgroupPartitionedMulNV ( global 3-component vector of double) -0:83 vector swizzle ( temp 3-component vector of double) -0:83 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:83 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:83 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:83 Constant: -0:83 2 (const int) -0:83 Constant: -0:83 3 (const int) -0:83 Sequence -0:83 Constant: -0:83 0 (const int) -0:83 Constant: -0:83 1 (const int) -0:83 Constant: -0:83 2 (const int) -0:83 'ballot' ( temp 4-component vector of uint) -0:84 move second child to first child ( temp 4-component vector of double) -0:84 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:84 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 'invocation' ( temp uint) -0:84 Constant: -0:84 3 (const int) -0:84 subgroupPartitionedMulNV ( global 4-component vector of double) -0:84 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:84 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 Constant: -0:84 3 (const int) -0:84 Constant: -0:84 3 (const int) -0:84 'ballot' ( temp 4-component vector of uint) -0:86 move second child to first child ( temp float) -0:86 direct index ( temp float) -0:86 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:86 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:86 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:86 'invocation' ( temp uint) -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 0 (const int) -0:86 subgroupPartitionedMinNV ( global float) -0:86 direct index ( temp float) -0:86 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:86 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:86 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 0 (const int) -0:86 'ballot' ( temp 4-component vector of uint) -0:87 move second child to first child ( temp 2-component vector of float) -0:87 vector swizzle ( temp 2-component vector of float) -0:87 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:87 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:87 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:87 'invocation' ( temp uint) -0:87 Constant: -0:87 0 (const int) -0:87 Sequence -0:87 Constant: -0:87 0 (const int) -0:87 Constant: -0:87 1 (const int) -0:87 subgroupPartitionedMinNV ( global 2-component vector of float) -0:87 vector swizzle ( temp 2-component vector of float) -0:87 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:87 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:87 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:87 Constant: -0:87 1 (const int) -0:87 Constant: -0:87 0 (const int) -0:87 Sequence -0:87 Constant: -0:87 0 (const int) -0:87 Constant: -0:87 1 (const int) -0:87 'ballot' ( temp 4-component vector of uint) -0:88 move second child to first child ( temp 3-component vector of float) -0:88 vector swizzle ( temp 3-component vector of float) -0:88 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:88 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:88 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:88 'invocation' ( temp uint) -0:88 Constant: -0:88 0 (const int) -0:88 Sequence -0:88 Constant: -0:88 0 (const int) -0:88 Constant: -0:88 1 (const int) -0:88 Constant: -0:88 2 (const int) -0:88 subgroupPartitionedMinNV ( global 3-component vector of float) -0:88 vector swizzle ( temp 3-component vector of float) -0:88 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:88 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:88 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:88 Constant: -0:88 2 (const int) -0:88 Constant: -0:88 0 (const int) -0:88 Sequence -0:88 Constant: -0:88 0 (const int) -0:88 Constant: -0:88 1 (const int) -0:88 Constant: -0:88 2 (const int) -0:88 'ballot' ( temp 4-component vector of uint) -0:89 move second child to first child ( temp 4-component vector of float) -0:89 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:89 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:89 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:89 'invocation' ( temp uint) -0:89 Constant: -0:89 0 (const int) -0:89 subgroupPartitionedMinNV ( global 4-component vector of float) -0:89 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:89 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:89 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:89 Constant: -0:89 3 (const int) -0:89 Constant: -0:89 0 (const int) -0:89 'ballot' ( temp 4-component vector of uint) -0:91 move second child to first child ( temp int) -0:91 direct index ( temp int) -0:91 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:91 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:91 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:91 'invocation' ( temp uint) -0:91 Constant: -0:91 1 (const int) -0:91 Constant: -0:91 0 (const int) -0:91 subgroupPartitionedMinNV ( global int) -0:91 direct index ( temp int) -0:91 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:91 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:91 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:91 Constant: -0:91 0 (const int) -0:91 Constant: -0:91 1 (const int) -0:91 Constant: -0:91 0 (const int) -0:91 'ballot' ( temp 4-component vector of uint) -0:92 move second child to first child ( temp 2-component vector of int) -0:92 vector swizzle ( temp 2-component vector of int) -0:92 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:92 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:92 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:92 'invocation' ( temp uint) -0:92 Constant: -0:92 1 (const int) -0:92 Sequence -0:92 Constant: -0:92 0 (const int) -0:92 Constant: -0:92 1 (const int) -0:92 subgroupPartitionedMinNV ( global 2-component vector of int) -0:92 vector swizzle ( temp 2-component vector of int) -0:92 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:92 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:92 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:92 Constant: -0:92 1 (const int) -0:92 Constant: -0:92 1 (const int) -0:92 Sequence -0:92 Constant: -0:92 0 (const int) -0:92 Constant: -0:92 1 (const int) -0:92 'ballot' ( temp 4-component vector of uint) -0:93 move second child to first child ( temp 3-component vector of int) -0:93 vector swizzle ( temp 3-component vector of int) -0:93 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:93 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:93 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:93 'invocation' ( temp uint) -0:93 Constant: -0:93 1 (const int) -0:93 Sequence -0:93 Constant: -0:93 0 (const int) -0:93 Constant: -0:93 1 (const int) -0:93 Constant: -0:93 2 (const int) -0:93 subgroupPartitionedMinNV ( global 3-component vector of int) -0:93 vector swizzle ( temp 3-component vector of int) -0:93 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:93 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:93 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:93 Constant: -0:93 2 (const int) -0:93 Constant: -0:93 1 (const int) -0:93 Sequence -0:93 Constant: -0:93 0 (const int) -0:93 Constant: -0:93 1 (const int) -0:93 Constant: -0:93 2 (const int) -0:93 'ballot' ( temp 4-component vector of uint) -0:94 move second child to first child ( temp 4-component vector of int) -0:94 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:94 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:94 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:94 'invocation' ( temp uint) -0:94 Constant: -0:94 1 (const int) -0:94 subgroupPartitionedMinNV ( global 4-component vector of int) -0:94 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:94 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:94 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:94 Constant: -0:94 3 (const int) -0:94 Constant: -0:94 1 (const int) -0:94 'ballot' ( temp 4-component vector of uint) -0:96 move second child to first child ( temp uint) -0:96 direct index ( temp uint) -0:96 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:96 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:96 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:96 'invocation' ( temp uint) -0:96 Constant: -0:96 2 (const int) -0:96 Constant: -0:96 0 (const int) -0:96 subgroupPartitionedMinNV ( global uint) -0:96 direct index ( temp uint) -0:96 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:96 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:96 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:96 Constant: -0:96 0 (const int) -0:96 Constant: -0:96 2 (const int) -0:96 Constant: -0:96 0 (const int) -0:96 'ballot' ( temp 4-component vector of uint) -0:97 move second child to first child ( temp 2-component vector of uint) -0:97 vector swizzle ( temp 2-component vector of uint) -0:97 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:97 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:97 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:97 'invocation' ( temp uint) -0:97 Constant: -0:97 2 (const int) -0:97 Sequence -0:97 Constant: -0:97 0 (const int) -0:97 Constant: -0:97 1 (const int) -0:97 subgroupPartitionedMinNV ( global 2-component vector of uint) -0:97 vector swizzle ( temp 2-component vector of uint) -0:97 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:97 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:97 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:97 Constant: -0:97 1 (const int) -0:97 Constant: -0:97 2 (const int) -0:97 Sequence -0:97 Constant: -0:97 0 (const int) -0:97 Constant: -0:97 1 (const int) -0:97 'ballot' ( temp 4-component vector of uint) -0:98 move second child to first child ( temp 3-component vector of uint) -0:98 vector swizzle ( temp 3-component vector of uint) -0:98 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:98 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:98 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:98 'invocation' ( temp uint) -0:98 Constant: -0:98 2 (const int) -0:98 Sequence -0:98 Constant: -0:98 0 (const int) -0:98 Constant: -0:98 1 (const int) -0:98 Constant: -0:98 2 (const int) -0:98 subgroupPartitionedMinNV ( global 3-component vector of uint) -0:98 vector swizzle ( temp 3-component vector of uint) -0:98 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:98 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:98 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:98 Constant: -0:98 2 (const int) -0:98 Constant: -0:98 2 (const int) -0:98 Sequence -0:98 Constant: -0:98 0 (const int) -0:98 Constant: -0:98 1 (const int) -0:98 Constant: -0:98 2 (const int) -0:98 'ballot' ( temp 4-component vector of uint) -0:99 move second child to first child ( temp 4-component vector of uint) -0:99 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:99 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:99 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:99 'invocation' ( temp uint) -0:99 Constant: -0:99 2 (const int) -0:99 subgroupPartitionedMinNV ( global 4-component vector of uint) -0:99 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:99 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:99 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:99 Constant: -0:99 3 (const int) -0:99 Constant: -0:99 2 (const int) -0:99 'ballot' ( temp 4-component vector of uint) -0:101 move second child to first child ( temp double) -0:101 direct index ( temp double) -0:101 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:101 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:101 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:101 'invocation' ( temp uint) -0:101 Constant: -0:101 3 (const int) -0:101 Constant: -0:101 0 (const int) -0:101 subgroupPartitionedMinNV ( global double) -0:101 direct index ( temp double) -0:101 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:101 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:101 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 3 (const int) -0:101 Constant: -0:101 0 (const int) -0:101 'ballot' ( temp 4-component vector of uint) -0:102 move second child to first child ( temp 2-component vector of double) -0:102 vector swizzle ( temp 2-component vector of double) -0:102 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:102 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:102 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:102 'invocation' ( temp uint) -0:102 Constant: -0:102 3 (const int) -0:102 Sequence -0:102 Constant: -0:102 0 (const int) -0:102 Constant: -0:102 1 (const int) -0:102 subgroupPartitionedMinNV ( global 2-component vector of double) -0:102 vector swizzle ( temp 2-component vector of double) -0:102 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:102 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:102 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:102 Constant: -0:102 1 (const int) -0:102 Constant: -0:102 3 (const int) -0:102 Sequence -0:102 Constant: -0:102 0 (const int) -0:102 Constant: -0:102 1 (const int) -0:102 'ballot' ( temp 4-component vector of uint) -0:103 move second child to first child ( temp 3-component vector of double) -0:103 vector swizzle ( temp 3-component vector of double) -0:103 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:103 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:103 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:103 'invocation' ( temp uint) -0:103 Constant: -0:103 3 (const int) -0:103 Sequence -0:103 Constant: -0:103 0 (const int) -0:103 Constant: -0:103 1 (const int) -0:103 Constant: -0:103 2 (const int) -0:103 subgroupPartitionedMinNV ( global 3-component vector of double) -0:103 vector swizzle ( temp 3-component vector of double) -0:103 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:103 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:103 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:103 Constant: -0:103 2 (const int) -0:103 Constant: -0:103 3 (const int) -0:103 Sequence -0:103 Constant: -0:103 0 (const int) -0:103 Constant: -0:103 1 (const int) -0:103 Constant: -0:103 2 (const int) -0:103 'ballot' ( temp 4-component vector of uint) -0:104 move second child to first child ( temp 4-component vector of double) -0:104 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:104 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:104 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:104 'invocation' ( temp uint) -0:104 Constant: -0:104 3 (const int) -0:104 subgroupPartitionedMinNV ( global 4-component vector of double) -0:104 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:104 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:104 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:104 Constant: -0:104 3 (const int) -0:104 Constant: -0:104 3 (const int) -0:104 'ballot' ( temp 4-component vector of uint) -0:106 move second child to first child ( temp float) -0:106 direct index ( temp float) -0:106 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:106 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:106 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:106 'invocation' ( temp uint) -0:106 Constant: -0:106 0 (const int) -0:106 Constant: -0:106 0 (const int) -0:106 subgroupPartitionedMaxNV ( global float) -0:106 direct index ( temp float) -0:106 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:106 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:106 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:106 Constant: -0:106 0 (const int) -0:106 Constant: -0:106 0 (const int) -0:106 Constant: -0:106 0 (const int) -0:106 'ballot' ( temp 4-component vector of uint) -0:107 move second child to first child ( temp 2-component vector of float) -0:107 vector swizzle ( temp 2-component vector of float) -0:107 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:107 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:107 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:107 'invocation' ( temp uint) -0:107 Constant: -0:107 0 (const int) -0:107 Sequence -0:107 Constant: -0:107 0 (const int) -0:107 Constant: -0:107 1 (const int) -0:107 subgroupPartitionedMaxNV ( global 2-component vector of float) -0:107 vector swizzle ( temp 2-component vector of float) -0:107 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:107 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:107 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:107 Constant: -0:107 1 (const int) -0:107 Constant: -0:107 0 (const int) -0:107 Sequence -0:107 Constant: -0:107 0 (const int) -0:107 Constant: -0:107 1 (const int) -0:107 'ballot' ( temp 4-component vector of uint) -0:108 move second child to first child ( temp 3-component vector of float) -0:108 vector swizzle ( temp 3-component vector of float) -0:108 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:108 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:108 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:108 'invocation' ( temp uint) -0:108 Constant: -0:108 0 (const int) -0:108 Sequence -0:108 Constant: -0:108 0 (const int) -0:108 Constant: -0:108 1 (const int) -0:108 Constant: -0:108 2 (const int) -0:108 subgroupPartitionedMaxNV ( global 3-component vector of float) -0:108 vector swizzle ( temp 3-component vector of float) -0:108 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:108 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:108 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:108 Constant: -0:108 2 (const int) -0:108 Constant: -0:108 0 (const int) -0:108 Sequence -0:108 Constant: -0:108 0 (const int) -0:108 Constant: -0:108 1 (const int) -0:108 Constant: -0:108 2 (const int) -0:108 'ballot' ( temp 4-component vector of uint) -0:109 move second child to first child ( temp 4-component vector of float) -0:109 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:109 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:109 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:109 'invocation' ( temp uint) -0:109 Constant: -0:109 0 (const int) -0:109 subgroupPartitionedMaxNV ( global 4-component vector of float) -0:109 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:109 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:109 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:109 Constant: -0:109 3 (const int) -0:109 Constant: -0:109 0 (const int) -0:109 'ballot' ( temp 4-component vector of uint) -0:111 move second child to first child ( temp int) -0:111 direct index ( temp int) -0:111 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:111 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:111 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:111 'invocation' ( temp uint) -0:111 Constant: -0:111 1 (const int) -0:111 Constant: -0:111 0 (const int) -0:111 subgroupPartitionedMaxNV ( global int) -0:111 direct index ( temp int) -0:111 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:111 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:111 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:111 Constant: -0:111 0 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 Constant: -0:111 0 (const int) -0:111 'ballot' ( temp 4-component vector of uint) -0:112 move second child to first child ( temp 2-component vector of int) -0:112 vector swizzle ( temp 2-component vector of int) -0:112 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:112 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:112 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:112 'invocation' ( temp uint) -0:112 Constant: -0:112 1 (const int) -0:112 Sequence -0:112 Constant: -0:112 0 (const int) -0:112 Constant: -0:112 1 (const int) -0:112 subgroupPartitionedMaxNV ( global 2-component vector of int) -0:112 vector swizzle ( temp 2-component vector of int) -0:112 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:112 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:112 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:112 Constant: -0:112 1 (const int) -0:112 Constant: -0:112 1 (const int) -0:112 Sequence -0:112 Constant: -0:112 0 (const int) -0:112 Constant: -0:112 1 (const int) -0:112 'ballot' ( temp 4-component vector of uint) -0:113 move second child to first child ( temp 3-component vector of int) -0:113 vector swizzle ( temp 3-component vector of int) -0:113 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:113 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:113 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:113 'invocation' ( temp uint) -0:113 Constant: -0:113 1 (const int) -0:113 Sequence -0:113 Constant: -0:113 0 (const int) -0:113 Constant: -0:113 1 (const int) -0:113 Constant: -0:113 2 (const int) -0:113 subgroupPartitionedMaxNV ( global 3-component vector of int) -0:113 vector swizzle ( temp 3-component vector of int) -0:113 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:113 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:113 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:113 Constant: -0:113 2 (const int) -0:113 Constant: -0:113 1 (const int) -0:113 Sequence -0:113 Constant: -0:113 0 (const int) -0:113 Constant: -0:113 1 (const int) -0:113 Constant: -0:113 2 (const int) -0:113 'ballot' ( temp 4-component vector of uint) -0:114 move second child to first child ( temp 4-component vector of int) -0:114 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:114 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:114 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:114 'invocation' ( temp uint) -0:114 Constant: -0:114 1 (const int) -0:114 subgroupPartitionedMaxNV ( global 4-component vector of int) -0:114 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:114 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:114 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:114 Constant: -0:114 3 (const int) -0:114 Constant: -0:114 1 (const int) -0:114 'ballot' ( temp 4-component vector of uint) -0:116 move second child to first child ( temp uint) -0:116 direct index ( temp uint) -0:116 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:116 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:116 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:116 'invocation' ( temp uint) -0:116 Constant: -0:116 2 (const int) -0:116 Constant: -0:116 0 (const int) -0:116 subgroupPartitionedMaxNV ( global uint) -0:116 direct index ( temp uint) -0:116 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:116 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:116 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:116 Constant: -0:116 0 (const int) -0:116 Constant: -0:116 2 (const int) -0:116 Constant: -0:116 0 (const int) -0:116 'ballot' ( temp 4-component vector of uint) -0:117 move second child to first child ( temp 2-component vector of uint) -0:117 vector swizzle ( temp 2-component vector of uint) -0:117 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:117 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:117 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:117 'invocation' ( temp uint) -0:117 Constant: -0:117 2 (const int) -0:117 Sequence -0:117 Constant: -0:117 0 (const int) -0:117 Constant: -0:117 1 (const int) -0:117 subgroupPartitionedMaxNV ( global 2-component vector of uint) -0:117 vector swizzle ( temp 2-component vector of uint) -0:117 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:117 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:117 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:117 Constant: -0:117 1 (const int) -0:117 Constant: -0:117 2 (const int) -0:117 Sequence -0:117 Constant: -0:117 0 (const int) -0:117 Constant: -0:117 1 (const int) -0:117 'ballot' ( temp 4-component vector of uint) -0:118 move second child to first child ( temp 3-component vector of uint) -0:118 vector swizzle ( temp 3-component vector of uint) -0:118 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:118 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:118 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:118 'invocation' ( temp uint) -0:118 Constant: -0:118 2 (const int) -0:118 Sequence -0:118 Constant: -0:118 0 (const int) -0:118 Constant: -0:118 1 (const int) -0:118 Constant: -0:118 2 (const int) -0:118 subgroupPartitionedMaxNV ( global 3-component vector of uint) -0:118 vector swizzle ( temp 3-component vector of uint) -0:118 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:118 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:118 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:118 Constant: -0:118 2 (const int) -0:118 Constant: -0:118 2 (const int) -0:118 Sequence -0:118 Constant: -0:118 0 (const int) -0:118 Constant: -0:118 1 (const int) -0:118 Constant: -0:118 2 (const int) -0:118 'ballot' ( temp 4-component vector of uint) -0:119 move second child to first child ( temp 4-component vector of uint) -0:119 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:119 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:119 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:119 'invocation' ( temp uint) -0:119 Constant: -0:119 2 (const int) -0:119 subgroupPartitionedMaxNV ( global 4-component vector of uint) -0:119 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:119 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:119 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:119 Constant: -0:119 3 (const int) -0:119 Constant: -0:119 2 (const int) -0:119 'ballot' ( temp 4-component vector of uint) -0:121 move second child to first child ( temp double) -0:121 direct index ( temp double) -0:121 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:121 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:121 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:121 'invocation' ( temp uint) -0:121 Constant: -0:121 3 (const int) -0:121 Constant: -0:121 0 (const int) -0:121 subgroupPartitionedMaxNV ( global double) -0:121 direct index ( temp double) -0:121 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:121 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:121 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 3 (const int) -0:121 Constant: -0:121 0 (const int) -0:121 'ballot' ( temp 4-component vector of uint) -0:122 move second child to first child ( temp 2-component vector of double) -0:122 vector swizzle ( temp 2-component vector of double) -0:122 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:122 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:122 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:122 'invocation' ( temp uint) -0:122 Constant: -0:122 3 (const int) -0:122 Sequence -0:122 Constant: -0:122 0 (const int) -0:122 Constant: -0:122 1 (const int) -0:122 subgroupPartitionedMaxNV ( global 2-component vector of double) -0:122 vector swizzle ( temp 2-component vector of double) -0:122 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:122 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:122 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:122 Constant: -0:122 1 (const int) -0:122 Constant: -0:122 3 (const int) -0:122 Sequence -0:122 Constant: -0:122 0 (const int) -0:122 Constant: -0:122 1 (const int) -0:122 'ballot' ( temp 4-component vector of uint) -0:123 move second child to first child ( temp 3-component vector of double) -0:123 vector swizzle ( temp 3-component vector of double) -0:123 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:123 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:123 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:123 'invocation' ( temp uint) -0:123 Constant: -0:123 3 (const int) -0:123 Sequence -0:123 Constant: -0:123 0 (const int) -0:123 Constant: -0:123 1 (const int) -0:123 Constant: -0:123 2 (const int) -0:123 subgroupPartitionedMaxNV ( global 3-component vector of double) -0:123 vector swizzle ( temp 3-component vector of double) -0:123 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:123 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:123 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:123 Constant: -0:123 2 (const int) -0:123 Constant: -0:123 3 (const int) -0:123 Sequence -0:123 Constant: -0:123 0 (const int) -0:123 Constant: -0:123 1 (const int) -0:123 Constant: -0:123 2 (const int) -0:123 'ballot' ( temp 4-component vector of uint) -0:124 move second child to first child ( temp 4-component vector of double) -0:124 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:124 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:124 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:124 'invocation' ( temp uint) -0:124 Constant: -0:124 3 (const int) -0:124 subgroupPartitionedMaxNV ( global 4-component vector of double) -0:124 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:124 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:124 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:124 Constant: -0:124 3 (const int) -0:124 Constant: -0:124 3 (const int) -0:124 'ballot' ( temp 4-component vector of uint) -0:126 move second child to first child ( temp int) -0:126 direct index ( temp int) -0:126 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:126 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:126 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:126 'invocation' ( temp uint) -0:126 Constant: -0:126 1 (const int) -0:126 Constant: -0:126 0 (const int) -0:126 subgroupPartitionedAndNV ( global int) -0:126 direct index ( temp int) -0:126 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:126 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:126 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:126 Constant: -0:126 0 (const int) -0:126 Constant: -0:126 1 (const int) -0:126 Constant: -0:126 0 (const int) -0:126 'ballot' ( temp 4-component vector of uint) -0:127 move second child to first child ( temp 2-component vector of int) -0:127 vector swizzle ( temp 2-component vector of int) -0:127 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:127 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:127 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:127 'invocation' ( temp uint) -0:127 Constant: -0:127 1 (const int) -0:127 Sequence -0:127 Constant: -0:127 0 (const int) -0:127 Constant: -0:127 1 (const int) -0:127 subgroupPartitionedAndNV ( global 2-component vector of int) -0:127 vector swizzle ( temp 2-component vector of int) -0:127 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:127 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:127 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:127 Constant: -0:127 1 (const int) -0:127 Constant: -0:127 1 (const int) -0:127 Sequence -0:127 Constant: -0:127 0 (const int) -0:127 Constant: -0:127 1 (const int) -0:127 'ballot' ( temp 4-component vector of uint) -0:128 move second child to first child ( temp 3-component vector of int) -0:128 vector swizzle ( temp 3-component vector of int) -0:128 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:128 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:128 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:128 'invocation' ( temp uint) -0:128 Constant: -0:128 1 (const int) -0:128 Sequence -0:128 Constant: -0:128 0 (const int) -0:128 Constant: -0:128 1 (const int) -0:128 Constant: -0:128 2 (const int) -0:128 subgroupPartitionedAndNV ( global 3-component vector of int) -0:128 vector swizzle ( temp 3-component vector of int) -0:128 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:128 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:128 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:128 Constant: -0:128 2 (const int) -0:128 Constant: -0:128 1 (const int) -0:128 Sequence -0:128 Constant: -0:128 0 (const int) -0:128 Constant: -0:128 1 (const int) -0:128 Constant: -0:128 2 (const int) -0:128 'ballot' ( temp 4-component vector of uint) -0:129 move second child to first child ( temp 4-component vector of int) -0:129 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:129 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:129 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:129 'invocation' ( temp uint) -0:129 Constant: -0:129 1 (const int) -0:129 subgroupPartitionedAndNV ( global 4-component vector of int) -0:129 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:129 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:129 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:129 Constant: -0:129 3 (const int) -0:129 Constant: -0:129 1 (const int) -0:129 'ballot' ( temp 4-component vector of uint) -0:131 move second child to first child ( temp uint) -0:131 direct index ( temp uint) -0:131 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:131 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:131 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:131 'invocation' ( temp uint) -0:131 Constant: -0:131 2 (const int) -0:131 Constant: -0:131 0 (const int) -0:131 subgroupPartitionedAndNV ( global uint) -0:131 direct index ( temp uint) -0:131 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:131 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:131 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:131 Constant: -0:131 0 (const int) -0:131 Constant: -0:131 2 (const int) -0:131 Constant: -0:131 0 (const int) -0:131 'ballot' ( temp 4-component vector of uint) -0:132 move second child to first child ( temp 2-component vector of uint) -0:132 vector swizzle ( temp 2-component vector of uint) -0:132 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:132 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:132 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:132 'invocation' ( temp uint) -0:132 Constant: -0:132 2 (const int) -0:132 Sequence -0:132 Constant: -0:132 0 (const int) -0:132 Constant: -0:132 1 (const int) -0:132 subgroupPartitionedAndNV ( global 2-component vector of uint) -0:132 vector swizzle ( temp 2-component vector of uint) -0:132 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:132 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:132 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:132 Constant: -0:132 1 (const int) -0:132 Constant: -0:132 2 (const int) -0:132 Sequence -0:132 Constant: -0:132 0 (const int) -0:132 Constant: -0:132 1 (const int) -0:132 'ballot' ( temp 4-component vector of uint) -0:133 move second child to first child ( temp 3-component vector of uint) -0:133 vector swizzle ( temp 3-component vector of uint) -0:133 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:133 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:133 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:133 'invocation' ( temp uint) -0:133 Constant: -0:133 2 (const int) -0:133 Sequence -0:133 Constant: -0:133 0 (const int) -0:133 Constant: -0:133 1 (const int) -0:133 Constant: -0:133 2 (const int) -0:133 subgroupPartitionedAndNV ( global 3-component vector of uint) -0:133 vector swizzle ( temp 3-component vector of uint) -0:133 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:133 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:133 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:133 Constant: -0:133 2 (const int) -0:133 Constant: -0:133 2 (const int) -0:133 Sequence -0:133 Constant: -0:133 0 (const int) -0:133 Constant: -0:133 1 (const int) -0:133 Constant: -0:133 2 (const int) -0:133 'ballot' ( temp 4-component vector of uint) -0:134 move second child to first child ( temp 4-component vector of uint) -0:134 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:134 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:134 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:134 'invocation' ( temp uint) -0:134 Constant: -0:134 2 (const int) -0:134 subgroupPartitionedAndNV ( global 4-component vector of uint) -0:134 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:134 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:134 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:134 Constant: -0:134 3 (const int) -0:134 Constant: -0:134 2 (const int) -0:134 'ballot' ( temp 4-component vector of uint) -0:136 move second child to first child ( temp int) -0:136 direct index ( temp int) -0:136 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:136 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:136 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:136 'invocation' ( temp uint) -0:136 Constant: -0:136 1 (const int) -0:136 Constant: -0:136 0 (const int) -0:136 Convert bool to int ( temp int) -0:136 subgroupPartitionedAndNV ( global bool) -0:136 Compare Less Than ( temp bool) -0:136 direct index ( temp int) -0:136 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:136 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:136 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:136 Constant: -0:136 0 (const int) -0:136 Constant: -0:136 1 (const int) -0:136 Constant: -0:136 0 (const int) -0:136 Constant: -0:136 0 (const int) -0:136 'ballot' ( temp 4-component vector of uint) -0:137 move second child to first child ( temp 2-component vector of int) -0:137 vector swizzle ( temp 2-component vector of int) -0:137 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:137 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:137 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:137 'invocation' ( temp uint) -0:137 Constant: -0:137 1 (const int) -0:137 Sequence -0:137 Constant: -0:137 0 (const int) -0:137 Constant: -0:137 1 (const int) -0:137 Convert bool to int ( temp 2-component vector of int) -0:137 subgroupPartitionedAndNV ( global 2-component vector of bool) -0:137 Compare Less Than ( global 2-component vector of bool) -0:137 vector swizzle ( temp 2-component vector of int) -0:137 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:137 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:137 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:137 Constant: -0:137 1 (const int) -0:137 Constant: -0:137 1 (const int) -0:137 Sequence -0:137 Constant: -0:137 0 (const int) -0:137 Constant: -0:137 1 (const int) -0:137 Constant: -0:137 0 (const int) -0:137 0 (const int) -0:137 'ballot' ( temp 4-component vector of uint) -0:138 move second child to first child ( temp 3-component vector of int) -0:138 vector swizzle ( temp 3-component vector of int) -0:138 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:138 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:138 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:138 'invocation' ( temp uint) -0:138 Constant: -0:138 1 (const int) -0:138 Sequence -0:138 Constant: -0:138 0 (const int) -0:138 Constant: -0:138 1 (const int) -0:138 Constant: -0:138 2 (const int) -0:138 Convert bool to int ( temp 3-component vector of int) -0:138 subgroupPartitionedAndNV ( global 3-component vector of bool) -0:138 Compare Less Than ( global 3-component vector of bool) -0:138 vector swizzle ( temp 3-component vector of int) -0:138 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:138 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:138 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:138 Constant: -0:138 1 (const int) -0:138 Constant: -0:138 1 (const int) -0:138 Sequence -0:138 Constant: -0:138 0 (const int) -0:138 Constant: -0:138 1 (const int) -0:138 Constant: -0:138 2 (const int) -0:138 Constant: -0:138 0 (const int) -0:138 0 (const int) -0:138 0 (const int) -0:138 'ballot' ( temp 4-component vector of uint) -0:139 move second child to first child ( temp 4-component vector of int) -0:139 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:139 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:139 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:139 'invocation' ( temp uint) -0:139 Constant: -0:139 1 (const int) -0:139 Convert bool to int ( temp 4-component vector of int) -0:139 subgroupPartitionedAndNV ( global 4-component vector of bool) -0:139 Compare Less Than ( global 4-component vector of bool) -0:139 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:139 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:139 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:139 Constant: -0:139 1 (const int) -0:139 Constant: -0:139 1 (const int) -0:139 Constant: -0:139 0 (const int) -0:139 0 (const int) -0:139 0 (const int) -0:139 0 (const int) -0:139 'ballot' ( temp 4-component vector of uint) -0:141 move second child to first child ( temp int) -0:141 direct index ( temp int) -0:141 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:141 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:141 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:141 'invocation' ( temp uint) -0:141 Constant: -0:141 1 (const int) -0:141 Constant: -0:141 0 (const int) -0:141 subgroupPartitionedOrNV ( global int) -0:141 direct index ( temp int) -0:141 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:141 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:141 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:141 Constant: -0:141 0 (const int) -0:141 Constant: -0:141 1 (const int) -0:141 Constant: -0:141 0 (const int) -0:141 'ballot' ( temp 4-component vector of uint) -0:142 move second child to first child ( temp 2-component vector of int) -0:142 vector swizzle ( temp 2-component vector of int) -0:142 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:142 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:142 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:142 'invocation' ( temp uint) -0:142 Constant: -0:142 1 (const int) -0:142 Sequence -0:142 Constant: -0:142 0 (const int) -0:142 Constant: -0:142 1 (const int) -0:142 subgroupPartitionedOrNV ( global 2-component vector of int) -0:142 vector swizzle ( temp 2-component vector of int) -0:142 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:142 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:142 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:142 Constant: -0:142 1 (const int) -0:142 Constant: -0:142 1 (const int) -0:142 Sequence -0:142 Constant: -0:142 0 (const int) -0:142 Constant: -0:142 1 (const int) -0:142 'ballot' ( temp 4-component vector of uint) -0:143 move second child to first child ( temp 3-component vector of int) -0:143 vector swizzle ( temp 3-component vector of int) -0:143 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:143 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:143 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:143 'invocation' ( temp uint) -0:143 Constant: -0:143 1 (const int) -0:143 Sequence -0:143 Constant: -0:143 0 (const int) -0:143 Constant: -0:143 1 (const int) -0:143 Constant: -0:143 2 (const int) -0:143 subgroupPartitionedOrNV ( global 3-component vector of int) -0:143 vector swizzle ( temp 3-component vector of int) -0:143 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:143 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:143 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:143 Constant: -0:143 2 (const int) -0:143 Constant: -0:143 1 (const int) -0:143 Sequence -0:143 Constant: -0:143 0 (const int) -0:143 Constant: -0:143 1 (const int) -0:143 Constant: -0:143 2 (const int) -0:143 'ballot' ( temp 4-component vector of uint) -0:144 move second child to first child ( temp 4-component vector of int) -0:144 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:144 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:144 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:144 'invocation' ( temp uint) -0:144 Constant: -0:144 1 (const int) -0:144 subgroupPartitionedOrNV ( global 4-component vector of int) -0:144 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:144 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:144 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:144 Constant: -0:144 3 (const int) -0:144 Constant: -0:144 1 (const int) -0:144 'ballot' ( temp 4-component vector of uint) -0:146 move second child to first child ( temp uint) -0:146 direct index ( temp uint) -0:146 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:146 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:146 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:146 'invocation' ( temp uint) -0:146 Constant: -0:146 2 (const int) -0:146 Constant: -0:146 0 (const int) -0:146 subgroupPartitionedOrNV ( global uint) -0:146 direct index ( temp uint) -0:146 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:146 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:146 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:146 Constant: -0:146 0 (const int) -0:146 Constant: -0:146 2 (const int) -0:146 Constant: -0:146 0 (const int) -0:146 'ballot' ( temp 4-component vector of uint) -0:147 move second child to first child ( temp 2-component vector of uint) -0:147 vector swizzle ( temp 2-component vector of uint) -0:147 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:147 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:147 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:147 'invocation' ( temp uint) -0:147 Constant: -0:147 2 (const int) -0:147 Sequence -0:147 Constant: -0:147 0 (const int) -0:147 Constant: -0:147 1 (const int) -0:147 subgroupPartitionedOrNV ( global 2-component vector of uint) -0:147 vector swizzle ( temp 2-component vector of uint) -0:147 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:147 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:147 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:147 Constant: -0:147 1 (const int) -0:147 Constant: -0:147 2 (const int) -0:147 Sequence -0:147 Constant: -0:147 0 (const int) -0:147 Constant: -0:147 1 (const int) -0:147 'ballot' ( temp 4-component vector of uint) -0:148 move second child to first child ( temp 3-component vector of uint) -0:148 vector swizzle ( temp 3-component vector of uint) -0:148 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:148 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:148 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:148 'invocation' ( temp uint) -0:148 Constant: -0:148 2 (const int) -0:148 Sequence -0:148 Constant: -0:148 0 (const int) -0:148 Constant: -0:148 1 (const int) -0:148 Constant: -0:148 2 (const int) -0:148 subgroupPartitionedOrNV ( global 3-component vector of uint) -0:148 vector swizzle ( temp 3-component vector of uint) -0:148 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:148 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:148 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:148 Constant: -0:148 2 (const int) -0:148 Constant: -0:148 2 (const int) -0:148 Sequence -0:148 Constant: -0:148 0 (const int) -0:148 Constant: -0:148 1 (const int) -0:148 Constant: -0:148 2 (const int) -0:148 'ballot' ( temp 4-component vector of uint) -0:149 move second child to first child ( temp 4-component vector of uint) -0:149 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:149 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:149 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:149 'invocation' ( temp uint) -0:149 Constant: -0:149 2 (const int) -0:149 subgroupPartitionedOrNV ( global 4-component vector of uint) -0:149 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:149 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:149 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:149 Constant: -0:149 3 (const int) -0:149 Constant: -0:149 2 (const int) -0:149 'ballot' ( temp 4-component vector of uint) -0:151 move second child to first child ( temp int) -0:151 direct index ( temp int) -0:151 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:151 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:151 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:151 'invocation' ( temp uint) -0:151 Constant: -0:151 1 (const int) -0:151 Constant: -0:151 0 (const int) -0:151 Convert bool to int ( temp int) -0:151 subgroupPartitionedOrNV ( global bool) -0:151 Compare Less Than ( temp bool) -0:151 direct index ( temp int) -0:151 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:151 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:151 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:151 Constant: -0:151 0 (const int) -0:151 Constant: -0:151 1 (const int) -0:151 Constant: -0:151 0 (const int) -0:151 Constant: -0:151 0 (const int) -0:151 'ballot' ( temp 4-component vector of uint) -0:152 move second child to first child ( temp 2-component vector of int) -0:152 vector swizzle ( temp 2-component vector of int) -0:152 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:152 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:152 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:152 'invocation' ( temp uint) -0:152 Constant: -0:152 1 (const int) -0:152 Sequence -0:152 Constant: -0:152 0 (const int) -0:152 Constant: -0:152 1 (const int) -0:152 Convert bool to int ( temp 2-component vector of int) -0:152 subgroupPartitionedOrNV ( global 2-component vector of bool) -0:152 Compare Less Than ( global 2-component vector of bool) -0:152 vector swizzle ( temp 2-component vector of int) -0:152 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:152 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:152 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:152 Constant: -0:152 1 (const int) -0:152 Constant: -0:152 1 (const int) -0:152 Sequence -0:152 Constant: -0:152 0 (const int) -0:152 Constant: -0:152 1 (const int) -0:152 Constant: -0:152 0 (const int) -0:152 0 (const int) -0:152 'ballot' ( temp 4-component vector of uint) -0:153 move second child to first child ( temp 3-component vector of int) -0:153 vector swizzle ( temp 3-component vector of int) -0:153 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:153 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:153 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:153 'invocation' ( temp uint) -0:153 Constant: -0:153 1 (const int) -0:153 Sequence -0:153 Constant: -0:153 0 (const int) -0:153 Constant: -0:153 1 (const int) -0:153 Constant: -0:153 2 (const int) -0:153 Convert bool to int ( temp 3-component vector of int) -0:153 subgroupPartitionedOrNV ( global 3-component vector of bool) -0:153 Compare Less Than ( global 3-component vector of bool) -0:153 vector swizzle ( temp 3-component vector of int) -0:153 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:153 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:153 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:153 Constant: -0:153 1 (const int) -0:153 Constant: -0:153 1 (const int) -0:153 Sequence -0:153 Constant: -0:153 0 (const int) -0:153 Constant: -0:153 1 (const int) -0:153 Constant: -0:153 2 (const int) -0:153 Constant: -0:153 0 (const int) -0:153 0 (const int) -0:153 0 (const int) -0:153 'ballot' ( temp 4-component vector of uint) -0:154 move second child to first child ( temp 4-component vector of int) -0:154 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:154 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:154 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:154 'invocation' ( temp uint) -0:154 Constant: -0:154 1 (const int) -0:154 Convert bool to int ( temp 4-component vector of int) -0:154 subgroupPartitionedOrNV ( global 4-component vector of bool) -0:154 Compare Less Than ( global 4-component vector of bool) -0:154 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:154 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:154 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:154 Constant: -0:154 1 (const int) -0:154 Constant: -0:154 1 (const int) -0:154 Constant: -0:154 0 (const int) -0:154 0 (const int) -0:154 0 (const int) -0:154 0 (const int) -0:154 'ballot' ( temp 4-component vector of uint) -0:156 move second child to first child ( temp int) -0:156 direct index ( temp int) -0:156 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:156 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:156 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:156 'invocation' ( temp uint) -0:156 Constant: -0:156 1 (const int) -0:156 Constant: -0:156 0 (const int) -0:156 subgroupPartitionedXorNV ( global int) -0:156 direct index ( temp int) -0:156 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:156 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:156 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:156 Constant: -0:156 0 (const int) -0:156 Constant: -0:156 1 (const int) -0:156 Constant: -0:156 0 (const int) -0:156 'ballot' ( temp 4-component vector of uint) -0:157 move second child to first child ( temp 2-component vector of int) -0:157 vector swizzle ( temp 2-component vector of int) -0:157 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:157 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:157 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:157 'invocation' ( temp uint) -0:157 Constant: -0:157 1 (const int) -0:157 Sequence -0:157 Constant: -0:157 0 (const int) -0:157 Constant: -0:157 1 (const int) -0:157 subgroupPartitionedXorNV ( global 2-component vector of int) -0:157 vector swizzle ( temp 2-component vector of int) -0:157 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:157 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:157 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:157 Constant: -0:157 1 (const int) -0:157 Constant: -0:157 1 (const int) -0:157 Sequence -0:157 Constant: -0:157 0 (const int) -0:157 Constant: -0:157 1 (const int) -0:157 'ballot' ( temp 4-component vector of uint) -0:158 move second child to first child ( temp 3-component vector of int) -0:158 vector swizzle ( temp 3-component vector of int) -0:158 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:158 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:158 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:158 'invocation' ( temp uint) -0:158 Constant: -0:158 1 (const int) -0:158 Sequence -0:158 Constant: -0:158 0 (const int) -0:158 Constant: -0:158 1 (const int) -0:158 Constant: -0:158 2 (const int) -0:158 subgroupPartitionedXorNV ( global 3-component vector of int) -0:158 vector swizzle ( temp 3-component vector of int) -0:158 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:158 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:158 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:158 Constant: -0:158 2 (const int) -0:158 Constant: -0:158 1 (const int) -0:158 Sequence -0:158 Constant: -0:158 0 (const int) -0:158 Constant: -0:158 1 (const int) -0:158 Constant: -0:158 2 (const int) -0:158 'ballot' ( temp 4-component vector of uint) -0:159 move second child to first child ( temp 4-component vector of int) -0:159 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:159 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:159 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:159 'invocation' ( temp uint) -0:159 Constant: -0:159 1 (const int) -0:159 subgroupPartitionedXorNV ( global 4-component vector of int) -0:159 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:159 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:159 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:159 Constant: -0:159 3 (const int) -0:159 Constant: -0:159 1 (const int) -0:159 'ballot' ( temp 4-component vector of uint) -0:161 move second child to first child ( temp uint) -0:161 direct index ( temp uint) -0:161 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:161 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:161 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:161 'invocation' ( temp uint) -0:161 Constant: -0:161 2 (const int) -0:161 Constant: -0:161 0 (const int) -0:161 subgroupPartitionedXorNV ( global uint) -0:161 direct index ( temp uint) -0:161 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:161 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:161 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:161 Constant: -0:161 0 (const int) -0:161 Constant: -0:161 2 (const int) -0:161 Constant: -0:161 0 (const int) -0:161 'ballot' ( temp 4-component vector of uint) -0:162 move second child to first child ( temp 2-component vector of uint) -0:162 vector swizzle ( temp 2-component vector of uint) -0:162 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:162 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:162 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:162 'invocation' ( temp uint) -0:162 Constant: -0:162 2 (const int) -0:162 Sequence -0:162 Constant: -0:162 0 (const int) -0:162 Constant: -0:162 1 (const int) -0:162 subgroupPartitionedXorNV ( global 2-component vector of uint) -0:162 vector swizzle ( temp 2-component vector of uint) -0:162 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:162 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:162 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:162 Constant: -0:162 1 (const int) -0:162 Constant: -0:162 2 (const int) -0:162 Sequence -0:162 Constant: -0:162 0 (const int) -0:162 Constant: -0:162 1 (const int) -0:162 'ballot' ( temp 4-component vector of uint) -0:163 move second child to first child ( temp 3-component vector of uint) -0:163 vector swizzle ( temp 3-component vector of uint) -0:163 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:163 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:163 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:163 'invocation' ( temp uint) -0:163 Constant: -0:163 2 (const int) -0:163 Sequence -0:163 Constant: -0:163 0 (const int) -0:163 Constant: -0:163 1 (const int) -0:163 Constant: -0:163 2 (const int) -0:163 subgroupPartitionedXorNV ( global 3-component vector of uint) -0:163 vector swizzle ( temp 3-component vector of uint) -0:163 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:163 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:163 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:163 Constant: -0:163 2 (const int) -0:163 Constant: -0:163 2 (const int) -0:163 Sequence -0:163 Constant: -0:163 0 (const int) -0:163 Constant: -0:163 1 (const int) -0:163 Constant: -0:163 2 (const int) -0:163 'ballot' ( temp 4-component vector of uint) -0:164 move second child to first child ( temp 4-component vector of uint) -0:164 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:164 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:164 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:164 'invocation' ( temp uint) -0:164 Constant: -0:164 2 (const int) -0:164 subgroupPartitionedXorNV ( global 4-component vector of uint) -0:164 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:164 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:164 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:164 Constant: -0:164 3 (const int) -0:164 Constant: -0:164 2 (const int) -0:164 'ballot' ( temp 4-component vector of uint) -0:166 move second child to first child ( temp int) -0:166 direct index ( temp int) -0:166 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:166 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:166 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:166 'invocation' ( temp uint) -0:166 Constant: -0:166 1 (const int) -0:166 Constant: -0:166 0 (const int) -0:166 Convert bool to int ( temp int) -0:166 subgroupPartitionedXorNV ( global bool) -0:166 Compare Less Than ( temp bool) -0:166 direct index ( temp int) -0:166 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:166 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:166 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:166 Constant: -0:166 0 (const int) -0:166 Constant: -0:166 1 (const int) -0:166 Constant: -0:166 0 (const int) -0:166 Constant: -0:166 0 (const int) -0:166 'ballot' ( temp 4-component vector of uint) -0:167 move second child to first child ( temp 2-component vector of int) -0:167 vector swizzle ( temp 2-component vector of int) -0:167 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:167 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:167 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:167 'invocation' ( temp uint) -0:167 Constant: -0:167 1 (const int) -0:167 Sequence -0:167 Constant: -0:167 0 (const int) -0:167 Constant: -0:167 1 (const int) -0:167 Convert bool to int ( temp 2-component vector of int) -0:167 subgroupPartitionedXorNV ( global 2-component vector of bool) -0:167 Compare Less Than ( global 2-component vector of bool) -0:167 vector swizzle ( temp 2-component vector of int) -0:167 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:167 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:167 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:167 Constant: -0:167 1 (const int) -0:167 Constant: -0:167 1 (const int) -0:167 Sequence -0:167 Constant: -0:167 0 (const int) -0:167 Constant: -0:167 1 (const int) -0:167 Constant: -0:167 0 (const int) -0:167 0 (const int) -0:167 'ballot' ( temp 4-component vector of uint) -0:168 move second child to first child ( temp 3-component vector of int) -0:168 vector swizzle ( temp 3-component vector of int) -0:168 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:168 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:168 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:168 'invocation' ( temp uint) -0:168 Constant: -0:168 1 (const int) -0:168 Sequence -0:168 Constant: -0:168 0 (const int) -0:168 Constant: -0:168 1 (const int) -0:168 Constant: -0:168 2 (const int) -0:168 Convert bool to int ( temp 3-component vector of int) -0:168 subgroupPartitionedXorNV ( global 3-component vector of bool) -0:168 Compare Less Than ( global 3-component vector of bool) -0:168 vector swizzle ( temp 3-component vector of int) -0:168 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:168 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:168 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:168 Constant: -0:168 1 (const int) -0:168 Constant: -0:168 1 (const int) -0:168 Sequence -0:168 Constant: -0:168 0 (const int) -0:168 Constant: -0:168 1 (const int) -0:168 Constant: -0:168 2 (const int) -0:168 Constant: -0:168 0 (const int) -0:168 0 (const int) -0:168 0 (const int) -0:168 'ballot' ( temp 4-component vector of uint) -0:169 move second child to first child ( temp 4-component vector of int) -0:169 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:169 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:169 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:169 'invocation' ( temp uint) -0:169 Constant: -0:169 1 (const int) -0:169 Convert bool to int ( temp 4-component vector of int) -0:169 subgroupPartitionedXorNV ( global 4-component vector of bool) -0:169 Compare Less Than ( global 4-component vector of bool) -0:169 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:169 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:169 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:169 Constant: -0:169 1 (const int) -0:169 Constant: -0:169 1 (const int) -0:169 Constant: -0:169 0 (const int) -0:169 0 (const int) -0:169 0 (const int) -0:169 0 (const int) -0:169 'ballot' ( temp 4-component vector of uint) -0:171 move second child to first child ( temp float) -0:171 direct index ( temp float) -0:171 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:171 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:171 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:171 'invocation' ( temp uint) -0:171 Constant: -0:171 0 (const int) -0:171 Constant: -0:171 0 (const int) -0:171 subgroupPartitionedInclusiveAddNV ( global float) -0:171 direct index ( temp float) -0:171 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:171 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:171 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:171 Constant: -0:171 0 (const int) -0:171 Constant: -0:171 0 (const int) -0:171 Constant: -0:171 0 (const int) -0:171 'ballot' ( temp 4-component vector of uint) -0:172 move second child to first child ( temp 2-component vector of float) -0:172 vector swizzle ( temp 2-component vector of float) -0:172 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:172 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:172 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:172 'invocation' ( temp uint) -0:172 Constant: -0:172 0 (const int) -0:172 Sequence -0:172 Constant: -0:172 0 (const int) -0:172 Constant: -0:172 1 (const int) -0:172 subgroupPartitionedInclusiveAddNV ( global 2-component vector of float) -0:172 vector swizzle ( temp 2-component vector of float) -0:172 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:172 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:172 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:172 Constant: -0:172 1 (const int) -0:172 Constant: -0:172 0 (const int) -0:172 Sequence -0:172 Constant: -0:172 0 (const int) -0:172 Constant: -0:172 1 (const int) -0:172 'ballot' ( temp 4-component vector of uint) -0:173 move second child to first child ( temp 3-component vector of float) -0:173 vector swizzle ( temp 3-component vector of float) -0:173 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:173 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:173 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:173 'invocation' ( temp uint) -0:173 Constant: -0:173 0 (const int) -0:173 Sequence -0:173 Constant: -0:173 0 (const int) -0:173 Constant: -0:173 1 (const int) -0:173 Constant: -0:173 2 (const int) -0:173 subgroupPartitionedInclusiveAddNV ( global 3-component vector of float) -0:173 vector swizzle ( temp 3-component vector of float) -0:173 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:173 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:173 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:173 Constant: -0:173 2 (const int) -0:173 Constant: -0:173 0 (const int) -0:173 Sequence -0:173 Constant: -0:173 0 (const int) -0:173 Constant: -0:173 1 (const int) -0:173 Constant: -0:173 2 (const int) -0:173 'ballot' ( temp 4-component vector of uint) -0:174 move second child to first child ( temp 4-component vector of float) -0:174 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:174 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:174 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:174 'invocation' ( temp uint) -0:174 Constant: -0:174 0 (const int) -0:174 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float) -0:174 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:174 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:174 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:174 Constant: -0:174 3 (const int) -0:174 Constant: -0:174 0 (const int) -0:174 'ballot' ( temp 4-component vector of uint) -0:176 move second child to first child ( temp int) -0:176 direct index ( temp int) -0:176 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:176 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:176 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:176 'invocation' ( temp uint) -0:176 Constant: -0:176 1 (const int) -0:176 Constant: -0:176 0 (const int) -0:176 subgroupPartitionedInclusiveAddNV ( global int) -0:176 direct index ( temp int) -0:176 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:176 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:176 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:176 Constant: -0:176 0 (const int) -0:176 Constant: -0:176 1 (const int) -0:176 Constant: -0:176 0 (const int) -0:176 'ballot' ( temp 4-component vector of uint) -0:177 move second child to first child ( temp 2-component vector of int) -0:177 vector swizzle ( temp 2-component vector of int) -0:177 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:177 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:177 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:177 'invocation' ( temp uint) -0:177 Constant: -0:177 1 (const int) -0:177 Sequence -0:177 Constant: -0:177 0 (const int) -0:177 Constant: -0:177 1 (const int) -0:177 subgroupPartitionedInclusiveAddNV ( global 2-component vector of int) -0:177 vector swizzle ( temp 2-component vector of int) -0:177 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:177 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:177 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:177 Constant: -0:177 1 (const int) -0:177 Constant: -0:177 1 (const int) -0:177 Sequence -0:177 Constant: -0:177 0 (const int) -0:177 Constant: -0:177 1 (const int) -0:177 'ballot' ( temp 4-component vector of uint) -0:178 move second child to first child ( temp 3-component vector of int) -0:178 vector swizzle ( temp 3-component vector of int) -0:178 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:178 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:178 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:178 'invocation' ( temp uint) -0:178 Constant: -0:178 1 (const int) -0:178 Sequence -0:178 Constant: -0:178 0 (const int) -0:178 Constant: -0:178 1 (const int) -0:178 Constant: -0:178 2 (const int) -0:178 subgroupPartitionedInclusiveAddNV ( global 3-component vector of int) -0:178 vector swizzle ( temp 3-component vector of int) -0:178 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:178 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:178 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:178 Constant: -0:178 2 (const int) -0:178 Constant: -0:178 1 (const int) -0:178 Sequence -0:178 Constant: -0:178 0 (const int) -0:178 Constant: -0:178 1 (const int) -0:178 Constant: -0:178 2 (const int) -0:178 'ballot' ( temp 4-component vector of uint) -0:179 move second child to first child ( temp 4-component vector of int) -0:179 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:179 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:179 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:179 'invocation' ( temp uint) -0:179 Constant: -0:179 1 (const int) -0:179 subgroupPartitionedInclusiveAddNV ( global 4-component vector of int) -0:179 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:179 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:179 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:179 Constant: -0:179 3 (const int) -0:179 Constant: -0:179 1 (const int) -0:179 'ballot' ( temp 4-component vector of uint) -0:181 move second child to first child ( temp uint) -0:181 direct index ( temp uint) -0:181 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:181 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:181 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:181 'invocation' ( temp uint) -0:181 Constant: -0:181 2 (const int) -0:181 Constant: -0:181 0 (const int) -0:181 subgroupPartitionedInclusiveAddNV ( global uint) -0:181 direct index ( temp uint) -0:181 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:181 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:181 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:181 Constant: -0:181 0 (const int) -0:181 Constant: -0:181 2 (const int) -0:181 Constant: -0:181 0 (const int) -0:181 'ballot' ( temp 4-component vector of uint) -0:182 move second child to first child ( temp 2-component vector of uint) -0:182 vector swizzle ( temp 2-component vector of uint) -0:182 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:182 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:182 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:182 'invocation' ( temp uint) -0:182 Constant: -0:182 2 (const int) -0:182 Sequence -0:182 Constant: -0:182 0 (const int) -0:182 Constant: -0:182 1 (const int) -0:182 subgroupPartitionedInclusiveAddNV ( global 2-component vector of uint) -0:182 vector swizzle ( temp 2-component vector of uint) -0:182 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:182 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:182 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:182 Constant: -0:182 1 (const int) -0:182 Constant: -0:182 2 (const int) -0:182 Sequence -0:182 Constant: -0:182 0 (const int) -0:182 Constant: -0:182 1 (const int) -0:182 'ballot' ( temp 4-component vector of uint) -0:183 move second child to first child ( temp 3-component vector of uint) -0:183 vector swizzle ( temp 3-component vector of uint) -0:183 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:183 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:183 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:183 'invocation' ( temp uint) -0:183 Constant: -0:183 2 (const int) -0:183 Sequence -0:183 Constant: -0:183 0 (const int) -0:183 Constant: -0:183 1 (const int) -0:183 Constant: -0:183 2 (const int) -0:183 subgroupPartitionedInclusiveAddNV ( global 3-component vector of uint) -0:183 vector swizzle ( temp 3-component vector of uint) -0:183 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:183 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:183 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:183 Constant: -0:183 2 (const int) -0:183 Constant: -0:183 2 (const int) -0:183 Sequence -0:183 Constant: -0:183 0 (const int) -0:183 Constant: -0:183 1 (const int) -0:183 Constant: -0:183 2 (const int) -0:183 'ballot' ( temp 4-component vector of uint) -0:184 move second child to first child ( temp 4-component vector of uint) -0:184 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:184 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:184 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:184 'invocation' ( temp uint) -0:184 Constant: -0:184 2 (const int) -0:184 subgroupPartitionedInclusiveAddNV ( global 4-component vector of uint) -0:184 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:184 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:184 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:184 Constant: -0:184 3 (const int) -0:184 Constant: -0:184 2 (const int) -0:184 'ballot' ( temp 4-component vector of uint) -0:186 move second child to first child ( temp double) -0:186 direct index ( temp double) -0:186 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:186 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:186 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:186 'invocation' ( temp uint) -0:186 Constant: -0:186 3 (const int) -0:186 Constant: -0:186 0 (const int) -0:186 subgroupPartitionedInclusiveAddNV ( global double) -0:186 direct index ( temp double) -0:186 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:186 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:186 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:186 Constant: -0:186 0 (const int) -0:186 Constant: -0:186 3 (const int) -0:186 Constant: -0:186 0 (const int) -0:186 'ballot' ( temp 4-component vector of uint) -0:187 move second child to first child ( temp 2-component vector of double) -0:187 vector swizzle ( temp 2-component vector of double) -0:187 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:187 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:187 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:187 'invocation' ( temp uint) -0:187 Constant: -0:187 3 (const int) -0:187 Sequence -0:187 Constant: -0:187 0 (const int) -0:187 Constant: -0:187 1 (const int) -0:187 subgroupPartitionedInclusiveAddNV ( global 2-component vector of double) -0:187 vector swizzle ( temp 2-component vector of double) -0:187 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:187 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:187 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:187 Constant: -0:187 1 (const int) -0:187 Constant: -0:187 3 (const int) -0:187 Sequence -0:187 Constant: -0:187 0 (const int) -0:187 Constant: -0:187 1 (const int) -0:187 'ballot' ( temp 4-component vector of uint) -0:188 move second child to first child ( temp 3-component vector of double) -0:188 vector swizzle ( temp 3-component vector of double) -0:188 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:188 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:188 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:188 'invocation' ( temp uint) -0:188 Constant: -0:188 3 (const int) -0:188 Sequence -0:188 Constant: -0:188 0 (const int) -0:188 Constant: -0:188 1 (const int) -0:188 Constant: -0:188 2 (const int) -0:188 subgroupPartitionedInclusiveAddNV ( global 3-component vector of double) -0:188 vector swizzle ( temp 3-component vector of double) -0:188 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:188 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:188 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:188 Constant: -0:188 2 (const int) -0:188 Constant: -0:188 3 (const int) -0:188 Sequence -0:188 Constant: -0:188 0 (const int) -0:188 Constant: -0:188 1 (const int) -0:188 Constant: -0:188 2 (const int) -0:188 'ballot' ( temp 4-component vector of uint) -0:189 move second child to first child ( temp 4-component vector of double) -0:189 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:189 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:189 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:189 'invocation' ( temp uint) -0:189 Constant: -0:189 3 (const int) -0:189 subgroupPartitionedInclusiveAddNV ( global 4-component vector of double) -0:189 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:189 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:189 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:189 Constant: -0:189 3 (const int) -0:189 Constant: -0:189 3 (const int) -0:189 'ballot' ( temp 4-component vector of uint) -0:191 move second child to first child ( temp float) -0:191 direct index ( temp float) -0:191 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:191 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:191 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:191 'invocation' ( temp uint) -0:191 Constant: -0:191 0 (const int) -0:191 Constant: -0:191 0 (const int) -0:191 subgroupPartitionedInclusiveMulNV ( global float) -0:191 direct index ( temp float) -0:191 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:191 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:191 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:191 Constant: -0:191 0 (const int) -0:191 Constant: -0:191 0 (const int) -0:191 Constant: -0:191 0 (const int) -0:191 'ballot' ( temp 4-component vector of uint) -0:192 move second child to first child ( temp 2-component vector of float) -0:192 vector swizzle ( temp 2-component vector of float) -0:192 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:192 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:192 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:192 'invocation' ( temp uint) -0:192 Constant: -0:192 0 (const int) -0:192 Sequence -0:192 Constant: -0:192 0 (const int) -0:192 Constant: -0:192 1 (const int) -0:192 subgroupPartitionedInclusiveMulNV ( global 2-component vector of float) -0:192 vector swizzle ( temp 2-component vector of float) -0:192 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:192 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:192 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:192 Constant: -0:192 1 (const int) -0:192 Constant: -0:192 0 (const int) -0:192 Sequence -0:192 Constant: -0:192 0 (const int) -0:192 Constant: -0:192 1 (const int) -0:192 'ballot' ( temp 4-component vector of uint) -0:193 move second child to first child ( temp 3-component vector of float) -0:193 vector swizzle ( temp 3-component vector of float) -0:193 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:193 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:193 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:193 'invocation' ( temp uint) -0:193 Constant: -0:193 0 (const int) -0:193 Sequence -0:193 Constant: -0:193 0 (const int) -0:193 Constant: -0:193 1 (const int) -0:193 Constant: -0:193 2 (const int) -0:193 subgroupPartitionedInclusiveMulNV ( global 3-component vector of float) -0:193 vector swizzle ( temp 3-component vector of float) -0:193 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:193 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:193 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:193 Constant: -0:193 2 (const int) -0:193 Constant: -0:193 0 (const int) -0:193 Sequence -0:193 Constant: -0:193 0 (const int) -0:193 Constant: -0:193 1 (const int) -0:193 Constant: -0:193 2 (const int) -0:193 'ballot' ( temp 4-component vector of uint) -0:194 move second child to first child ( temp 4-component vector of float) -0:194 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:194 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:194 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:194 'invocation' ( temp uint) -0:194 Constant: -0:194 0 (const int) -0:194 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float) -0:194 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:194 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:194 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:194 Constant: -0:194 3 (const int) -0:194 Constant: -0:194 0 (const int) -0:194 'ballot' ( temp 4-component vector of uint) -0:196 move second child to first child ( temp int) -0:196 direct index ( temp int) -0:196 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:196 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:196 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:196 'invocation' ( temp uint) -0:196 Constant: -0:196 1 (const int) -0:196 Constant: -0:196 0 (const int) -0:196 subgroupPartitionedInclusiveMulNV ( global int) -0:196 direct index ( temp int) -0:196 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:196 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:196 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:196 Constant: -0:196 0 (const int) -0:196 Constant: -0:196 1 (const int) -0:196 Constant: -0:196 0 (const int) -0:196 'ballot' ( temp 4-component vector of uint) -0:197 move second child to first child ( temp 2-component vector of int) -0:197 vector swizzle ( temp 2-component vector of int) -0:197 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:197 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:197 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:197 'invocation' ( temp uint) -0:197 Constant: -0:197 1 (const int) -0:197 Sequence -0:197 Constant: -0:197 0 (const int) -0:197 Constant: -0:197 1 (const int) -0:197 subgroupPartitionedInclusiveMulNV ( global 2-component vector of int) -0:197 vector swizzle ( temp 2-component vector of int) -0:197 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:197 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:197 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:197 Constant: -0:197 1 (const int) -0:197 Constant: -0:197 1 (const int) -0:197 Sequence -0:197 Constant: -0:197 0 (const int) -0:197 Constant: -0:197 1 (const int) -0:197 'ballot' ( temp 4-component vector of uint) -0:198 move second child to first child ( temp 3-component vector of int) -0:198 vector swizzle ( temp 3-component vector of int) -0:198 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:198 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:198 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:198 'invocation' ( temp uint) -0:198 Constant: -0:198 1 (const int) -0:198 Sequence -0:198 Constant: -0:198 0 (const int) -0:198 Constant: -0:198 1 (const int) -0:198 Constant: -0:198 2 (const int) -0:198 subgroupPartitionedInclusiveMulNV ( global 3-component vector of int) -0:198 vector swizzle ( temp 3-component vector of int) -0:198 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:198 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:198 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:198 Constant: -0:198 2 (const int) -0:198 Constant: -0:198 1 (const int) -0:198 Sequence -0:198 Constant: -0:198 0 (const int) -0:198 Constant: -0:198 1 (const int) -0:198 Constant: -0:198 2 (const int) -0:198 'ballot' ( temp 4-component vector of uint) -0:199 move second child to first child ( temp 4-component vector of int) -0:199 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:199 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:199 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:199 'invocation' ( temp uint) -0:199 Constant: -0:199 1 (const int) -0:199 subgroupPartitionedInclusiveMulNV ( global 4-component vector of int) -0:199 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:199 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:199 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:199 Constant: -0:199 3 (const int) -0:199 Constant: -0:199 1 (const int) -0:199 'ballot' ( temp 4-component vector of uint) -0:201 move second child to first child ( temp uint) -0:201 direct index ( temp uint) -0:201 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:201 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:201 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:201 'invocation' ( temp uint) -0:201 Constant: -0:201 2 (const int) -0:201 Constant: -0:201 0 (const int) -0:201 subgroupPartitionedInclusiveMulNV ( global uint) -0:201 direct index ( temp uint) -0:201 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:201 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:201 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:201 Constant: -0:201 0 (const int) -0:201 Constant: -0:201 2 (const int) -0:201 Constant: -0:201 0 (const int) -0:201 'ballot' ( temp 4-component vector of uint) -0:202 move second child to first child ( temp 2-component vector of uint) -0:202 vector swizzle ( temp 2-component vector of uint) -0:202 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:202 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:202 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:202 'invocation' ( temp uint) -0:202 Constant: -0:202 2 (const int) -0:202 Sequence -0:202 Constant: -0:202 0 (const int) -0:202 Constant: -0:202 1 (const int) -0:202 subgroupPartitionedInclusiveMulNV ( global 2-component vector of uint) -0:202 vector swizzle ( temp 2-component vector of uint) -0:202 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:202 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:202 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:202 Constant: -0:202 1 (const int) -0:202 Constant: -0:202 2 (const int) -0:202 Sequence -0:202 Constant: -0:202 0 (const int) -0:202 Constant: -0:202 1 (const int) -0:202 'ballot' ( temp 4-component vector of uint) -0:203 move second child to first child ( temp 3-component vector of uint) -0:203 vector swizzle ( temp 3-component vector of uint) -0:203 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:203 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:203 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:203 'invocation' ( temp uint) -0:203 Constant: -0:203 2 (const int) -0:203 Sequence -0:203 Constant: -0:203 0 (const int) -0:203 Constant: -0:203 1 (const int) -0:203 Constant: -0:203 2 (const int) -0:203 subgroupPartitionedInclusiveMulNV ( global 3-component vector of uint) -0:203 vector swizzle ( temp 3-component vector of uint) -0:203 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:203 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:203 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:203 Constant: -0:203 2 (const int) -0:203 Constant: -0:203 2 (const int) -0:203 Sequence -0:203 Constant: -0:203 0 (const int) -0:203 Constant: -0:203 1 (const int) -0:203 Constant: -0:203 2 (const int) -0:203 'ballot' ( temp 4-component vector of uint) -0:204 move second child to first child ( temp 4-component vector of uint) -0:204 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:204 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:204 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:204 'invocation' ( temp uint) -0:204 Constant: -0:204 2 (const int) -0:204 subgroupPartitionedInclusiveMulNV ( global 4-component vector of uint) -0:204 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:204 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:204 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:204 Constant: -0:204 3 (const int) -0:204 Constant: -0:204 2 (const int) -0:204 'ballot' ( temp 4-component vector of uint) -0:206 move second child to first child ( temp double) -0:206 direct index ( temp double) -0:206 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:206 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:206 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:206 'invocation' ( temp uint) -0:206 Constant: -0:206 3 (const int) -0:206 Constant: -0:206 0 (const int) -0:206 subgroupPartitionedInclusiveMulNV ( global double) -0:206 direct index ( temp double) -0:206 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:206 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:206 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:206 Constant: -0:206 0 (const int) -0:206 Constant: -0:206 3 (const int) -0:206 Constant: -0:206 0 (const int) -0:206 'ballot' ( temp 4-component vector of uint) -0:207 move second child to first child ( temp 2-component vector of double) -0:207 vector swizzle ( temp 2-component vector of double) -0:207 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:207 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:207 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:207 'invocation' ( temp uint) -0:207 Constant: -0:207 3 (const int) -0:207 Sequence -0:207 Constant: -0:207 0 (const int) -0:207 Constant: -0:207 1 (const int) -0:207 subgroupPartitionedInclusiveMulNV ( global 2-component vector of double) -0:207 vector swizzle ( temp 2-component vector of double) -0:207 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:207 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:207 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:207 Constant: -0:207 1 (const int) -0:207 Constant: -0:207 3 (const int) -0:207 Sequence -0:207 Constant: -0:207 0 (const int) -0:207 Constant: -0:207 1 (const int) -0:207 'ballot' ( temp 4-component vector of uint) -0:208 move second child to first child ( temp 3-component vector of double) -0:208 vector swizzle ( temp 3-component vector of double) -0:208 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:208 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:208 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:208 'invocation' ( temp uint) -0:208 Constant: -0:208 3 (const int) -0:208 Sequence -0:208 Constant: -0:208 0 (const int) -0:208 Constant: -0:208 1 (const int) -0:208 Constant: -0:208 2 (const int) -0:208 subgroupPartitionedInclusiveMulNV ( global 3-component vector of double) -0:208 vector swizzle ( temp 3-component vector of double) -0:208 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:208 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:208 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:208 Constant: -0:208 2 (const int) -0:208 Constant: -0:208 3 (const int) -0:208 Sequence -0:208 Constant: -0:208 0 (const int) -0:208 Constant: -0:208 1 (const int) -0:208 Constant: -0:208 2 (const int) -0:208 'ballot' ( temp 4-component vector of uint) -0:209 move second child to first child ( temp 4-component vector of double) -0:209 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:209 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:209 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:209 'invocation' ( temp uint) -0:209 Constant: -0:209 3 (const int) -0:209 subgroupPartitionedInclusiveMulNV ( global 4-component vector of double) -0:209 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:209 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:209 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:209 Constant: -0:209 3 (const int) -0:209 Constant: -0:209 3 (const int) -0:209 'ballot' ( temp 4-component vector of uint) -0:211 move second child to first child ( temp float) -0:211 direct index ( temp float) -0:211 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:211 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:211 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:211 'invocation' ( temp uint) -0:211 Constant: -0:211 0 (const int) -0:211 Constant: -0:211 0 (const int) -0:211 subgroupPartitionedInclusiveMinNV ( global float) -0:211 direct index ( temp float) -0:211 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:211 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:211 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:211 Constant: -0:211 0 (const int) -0:211 Constant: -0:211 0 (const int) -0:211 Constant: -0:211 0 (const int) -0:211 'ballot' ( temp 4-component vector of uint) -0:212 move second child to first child ( temp 2-component vector of float) -0:212 vector swizzle ( temp 2-component vector of float) -0:212 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:212 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:212 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:212 'invocation' ( temp uint) -0:212 Constant: -0:212 0 (const int) -0:212 Sequence -0:212 Constant: -0:212 0 (const int) -0:212 Constant: -0:212 1 (const int) -0:212 subgroupPartitionedInclusiveMinNV ( global 2-component vector of float) -0:212 vector swizzle ( temp 2-component vector of float) -0:212 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:212 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:212 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:212 Constant: -0:212 1 (const int) -0:212 Constant: -0:212 0 (const int) -0:212 Sequence -0:212 Constant: -0:212 0 (const int) -0:212 Constant: -0:212 1 (const int) -0:212 'ballot' ( temp 4-component vector of uint) -0:213 move second child to first child ( temp 3-component vector of float) -0:213 vector swizzle ( temp 3-component vector of float) -0:213 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:213 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:213 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:213 'invocation' ( temp uint) -0:213 Constant: -0:213 0 (const int) -0:213 Sequence -0:213 Constant: -0:213 0 (const int) -0:213 Constant: -0:213 1 (const int) -0:213 Constant: -0:213 2 (const int) -0:213 subgroupPartitionedInclusiveMinNV ( global 3-component vector of float) -0:213 vector swizzle ( temp 3-component vector of float) -0:213 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:213 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:213 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:213 Constant: -0:213 2 (const int) -0:213 Constant: -0:213 0 (const int) -0:213 Sequence -0:213 Constant: -0:213 0 (const int) -0:213 Constant: -0:213 1 (const int) -0:213 Constant: -0:213 2 (const int) -0:213 'ballot' ( temp 4-component vector of uint) -0:214 move second child to first child ( temp 4-component vector of float) -0:214 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:214 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:214 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:214 'invocation' ( temp uint) -0:214 Constant: -0:214 0 (const int) -0:214 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float) -0:214 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:214 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:214 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:214 Constant: -0:214 3 (const int) -0:214 Constant: -0:214 0 (const int) -0:214 'ballot' ( temp 4-component vector of uint) -0:216 move second child to first child ( temp int) -0:216 direct index ( temp int) -0:216 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:216 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:216 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:216 'invocation' ( temp uint) -0:216 Constant: -0:216 1 (const int) -0:216 Constant: -0:216 0 (const int) -0:216 subgroupPartitionedInclusiveMinNV ( global int) -0:216 direct index ( temp int) -0:216 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:216 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:216 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:216 Constant: -0:216 0 (const int) -0:216 Constant: -0:216 1 (const int) -0:216 Constant: -0:216 0 (const int) -0:216 'ballot' ( temp 4-component vector of uint) -0:217 move second child to first child ( temp 2-component vector of int) -0:217 vector swizzle ( temp 2-component vector of int) -0:217 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:217 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:217 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:217 'invocation' ( temp uint) -0:217 Constant: -0:217 1 (const int) -0:217 Sequence -0:217 Constant: -0:217 0 (const int) -0:217 Constant: -0:217 1 (const int) -0:217 subgroupPartitionedInclusiveMinNV ( global 2-component vector of int) -0:217 vector swizzle ( temp 2-component vector of int) -0:217 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:217 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:217 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:217 Constant: -0:217 1 (const int) -0:217 Constant: -0:217 1 (const int) -0:217 Sequence -0:217 Constant: -0:217 0 (const int) -0:217 Constant: -0:217 1 (const int) -0:217 'ballot' ( temp 4-component vector of uint) -0:218 move second child to first child ( temp 3-component vector of int) -0:218 vector swizzle ( temp 3-component vector of int) -0:218 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:218 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:218 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:218 'invocation' ( temp uint) -0:218 Constant: -0:218 1 (const int) -0:218 Sequence -0:218 Constant: -0:218 0 (const int) -0:218 Constant: -0:218 1 (const int) -0:218 Constant: -0:218 2 (const int) -0:218 subgroupPartitionedInclusiveMinNV ( global 3-component vector of int) -0:218 vector swizzle ( temp 3-component vector of int) -0:218 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:218 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:218 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:218 Constant: -0:218 2 (const int) -0:218 Constant: -0:218 1 (const int) -0:218 Sequence -0:218 Constant: -0:218 0 (const int) -0:218 Constant: -0:218 1 (const int) -0:218 Constant: -0:218 2 (const int) -0:218 'ballot' ( temp 4-component vector of uint) -0:219 move second child to first child ( temp 4-component vector of int) -0:219 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:219 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:219 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:219 'invocation' ( temp uint) -0:219 Constant: -0:219 1 (const int) -0:219 subgroupPartitionedInclusiveMinNV ( global 4-component vector of int) -0:219 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:219 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:219 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:219 Constant: -0:219 3 (const int) -0:219 Constant: -0:219 1 (const int) -0:219 'ballot' ( temp 4-component vector of uint) -0:221 move second child to first child ( temp uint) -0:221 direct index ( temp uint) -0:221 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:221 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:221 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:221 'invocation' ( temp uint) -0:221 Constant: -0:221 2 (const int) -0:221 Constant: -0:221 0 (const int) -0:221 subgroupPartitionedInclusiveMinNV ( global uint) -0:221 direct index ( temp uint) -0:221 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:221 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:221 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:221 Constant: -0:221 0 (const int) -0:221 Constant: -0:221 2 (const int) -0:221 Constant: -0:221 0 (const int) -0:221 'ballot' ( temp 4-component vector of uint) -0:222 move second child to first child ( temp 2-component vector of uint) -0:222 vector swizzle ( temp 2-component vector of uint) -0:222 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:222 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:222 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:222 'invocation' ( temp uint) -0:222 Constant: -0:222 2 (const int) -0:222 Sequence -0:222 Constant: -0:222 0 (const int) -0:222 Constant: -0:222 1 (const int) -0:222 subgroupPartitionedInclusiveMinNV ( global 2-component vector of uint) -0:222 vector swizzle ( temp 2-component vector of uint) -0:222 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:222 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:222 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:222 Constant: -0:222 1 (const int) -0:222 Constant: -0:222 2 (const int) -0:222 Sequence -0:222 Constant: -0:222 0 (const int) -0:222 Constant: -0:222 1 (const int) -0:222 'ballot' ( temp 4-component vector of uint) -0:223 move second child to first child ( temp 3-component vector of uint) -0:223 vector swizzle ( temp 3-component vector of uint) -0:223 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:223 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:223 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:223 'invocation' ( temp uint) -0:223 Constant: -0:223 2 (const int) -0:223 Sequence -0:223 Constant: -0:223 0 (const int) -0:223 Constant: -0:223 1 (const int) -0:223 Constant: -0:223 2 (const int) -0:223 subgroupPartitionedInclusiveMinNV ( global 3-component vector of uint) -0:223 vector swizzle ( temp 3-component vector of uint) -0:223 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:223 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:223 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:223 Constant: -0:223 2 (const int) -0:223 Constant: -0:223 2 (const int) -0:223 Sequence -0:223 Constant: -0:223 0 (const int) -0:223 Constant: -0:223 1 (const int) -0:223 Constant: -0:223 2 (const int) -0:223 'ballot' ( temp 4-component vector of uint) -0:224 move second child to first child ( temp 4-component vector of uint) -0:224 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:224 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:224 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:224 'invocation' ( temp uint) -0:224 Constant: -0:224 2 (const int) -0:224 subgroupPartitionedInclusiveMinNV ( global 4-component vector of uint) -0:224 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:224 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:224 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:224 Constant: -0:224 3 (const int) -0:224 Constant: -0:224 2 (const int) -0:224 'ballot' ( temp 4-component vector of uint) -0:226 move second child to first child ( temp double) -0:226 direct index ( temp double) -0:226 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:226 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:226 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:226 'invocation' ( temp uint) -0:226 Constant: -0:226 3 (const int) -0:226 Constant: -0:226 0 (const int) -0:226 subgroupPartitionedInclusiveMinNV ( global double) -0:226 direct index ( temp double) -0:226 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:226 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:226 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:226 Constant: -0:226 0 (const int) -0:226 Constant: -0:226 3 (const int) -0:226 Constant: -0:226 0 (const int) -0:226 'ballot' ( temp 4-component vector of uint) -0:227 move second child to first child ( temp 2-component vector of double) -0:227 vector swizzle ( temp 2-component vector of double) -0:227 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:227 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:227 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:227 'invocation' ( temp uint) -0:227 Constant: -0:227 3 (const int) -0:227 Sequence -0:227 Constant: -0:227 0 (const int) -0:227 Constant: -0:227 1 (const int) -0:227 subgroupPartitionedInclusiveMinNV ( global 2-component vector of double) -0:227 vector swizzle ( temp 2-component vector of double) -0:227 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:227 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:227 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:227 Constant: -0:227 1 (const int) -0:227 Constant: -0:227 3 (const int) -0:227 Sequence -0:227 Constant: -0:227 0 (const int) -0:227 Constant: -0:227 1 (const int) -0:227 'ballot' ( temp 4-component vector of uint) -0:228 move second child to first child ( temp 3-component vector of double) -0:228 vector swizzle ( temp 3-component vector of double) -0:228 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:228 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:228 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:228 'invocation' ( temp uint) -0:228 Constant: -0:228 3 (const int) -0:228 Sequence -0:228 Constant: -0:228 0 (const int) -0:228 Constant: -0:228 1 (const int) -0:228 Constant: -0:228 2 (const int) -0:228 subgroupPartitionedInclusiveMinNV ( global 3-component vector of double) -0:228 vector swizzle ( temp 3-component vector of double) -0:228 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:228 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:228 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:228 Constant: -0:228 2 (const int) -0:228 Constant: -0:228 3 (const int) -0:228 Sequence -0:228 Constant: -0:228 0 (const int) -0:228 Constant: -0:228 1 (const int) -0:228 Constant: -0:228 2 (const int) -0:228 'ballot' ( temp 4-component vector of uint) -0:229 move second child to first child ( temp 4-component vector of double) -0:229 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:229 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:229 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:229 'invocation' ( temp uint) -0:229 Constant: -0:229 3 (const int) -0:229 subgroupPartitionedInclusiveMinNV ( global 4-component vector of double) -0:229 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:229 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:229 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:229 Constant: -0:229 3 (const int) -0:229 Constant: -0:229 3 (const int) -0:229 'ballot' ( temp 4-component vector of uint) -0:231 move second child to first child ( temp float) -0:231 direct index ( temp float) -0:231 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:231 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:231 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:231 'invocation' ( temp uint) -0:231 Constant: -0:231 0 (const int) -0:231 Constant: -0:231 0 (const int) -0:231 subgroupPartitionedInclusiveMaxNV ( global float) -0:231 direct index ( temp float) -0:231 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:231 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:231 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:231 Constant: -0:231 0 (const int) -0:231 Constant: -0:231 0 (const int) -0:231 Constant: -0:231 0 (const int) -0:231 'ballot' ( temp 4-component vector of uint) -0:232 move second child to first child ( temp 2-component vector of float) -0:232 vector swizzle ( temp 2-component vector of float) -0:232 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:232 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:232 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:232 'invocation' ( temp uint) -0:232 Constant: -0:232 0 (const int) -0:232 Sequence -0:232 Constant: -0:232 0 (const int) -0:232 Constant: -0:232 1 (const int) -0:232 subgroupPartitionedInclusiveMaxNV ( global 2-component vector of float) -0:232 vector swizzle ( temp 2-component vector of float) -0:232 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:232 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:232 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:232 Constant: -0:232 1 (const int) -0:232 Constant: -0:232 0 (const int) -0:232 Sequence -0:232 Constant: -0:232 0 (const int) -0:232 Constant: -0:232 1 (const int) -0:232 'ballot' ( temp 4-component vector of uint) -0:233 move second child to first child ( temp 3-component vector of float) -0:233 vector swizzle ( temp 3-component vector of float) -0:233 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:233 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:233 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:233 'invocation' ( temp uint) -0:233 Constant: -0:233 0 (const int) -0:233 Sequence -0:233 Constant: -0:233 0 (const int) -0:233 Constant: -0:233 1 (const int) -0:233 Constant: -0:233 2 (const int) -0:233 subgroupPartitionedInclusiveMaxNV ( global 3-component vector of float) -0:233 vector swizzle ( temp 3-component vector of float) -0:233 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:233 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:233 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:233 Constant: -0:233 2 (const int) -0:233 Constant: -0:233 0 (const int) -0:233 Sequence -0:233 Constant: -0:233 0 (const int) -0:233 Constant: -0:233 1 (const int) -0:233 Constant: -0:233 2 (const int) -0:233 'ballot' ( temp 4-component vector of uint) -0:234 move second child to first child ( temp 4-component vector of float) -0:234 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:234 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:234 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:234 'invocation' ( temp uint) -0:234 Constant: -0:234 0 (const int) -0:234 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float) -0:234 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:234 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:234 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:234 Constant: -0:234 3 (const int) -0:234 Constant: -0:234 0 (const int) -0:234 'ballot' ( temp 4-component vector of uint) -0:236 move second child to first child ( temp int) -0:236 direct index ( temp int) -0:236 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:236 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:236 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:236 'invocation' ( temp uint) -0:236 Constant: -0:236 1 (const int) -0:236 Constant: -0:236 0 (const int) -0:236 subgroupPartitionedInclusiveMaxNV ( global int) -0:236 direct index ( temp int) -0:236 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:236 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:236 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:236 Constant: -0:236 0 (const int) -0:236 Constant: -0:236 1 (const int) -0:236 Constant: -0:236 0 (const int) -0:236 'ballot' ( temp 4-component vector of uint) -0:237 move second child to first child ( temp 2-component vector of int) -0:237 vector swizzle ( temp 2-component vector of int) -0:237 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:237 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:237 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:237 'invocation' ( temp uint) -0:237 Constant: -0:237 1 (const int) -0:237 Sequence -0:237 Constant: -0:237 0 (const int) -0:237 Constant: -0:237 1 (const int) -0:237 subgroupPartitionedInclusiveMaxNV ( global 2-component vector of int) -0:237 vector swizzle ( temp 2-component vector of int) -0:237 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:237 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:237 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:237 Constant: -0:237 1 (const int) -0:237 Constant: -0:237 1 (const int) -0:237 Sequence -0:237 Constant: -0:237 0 (const int) -0:237 Constant: -0:237 1 (const int) -0:237 'ballot' ( temp 4-component vector of uint) -0:238 move second child to first child ( temp 3-component vector of int) -0:238 vector swizzle ( temp 3-component vector of int) -0:238 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:238 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:238 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:238 'invocation' ( temp uint) -0:238 Constant: -0:238 1 (const int) -0:238 Sequence -0:238 Constant: -0:238 0 (const int) -0:238 Constant: -0:238 1 (const int) -0:238 Constant: -0:238 2 (const int) -0:238 subgroupPartitionedInclusiveMaxNV ( global 3-component vector of int) -0:238 vector swizzle ( temp 3-component vector of int) -0:238 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:238 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:238 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:238 Constant: -0:238 2 (const int) -0:238 Constant: -0:238 1 (const int) -0:238 Sequence -0:238 Constant: -0:238 0 (const int) -0:238 Constant: -0:238 1 (const int) -0:238 Constant: -0:238 2 (const int) -0:238 'ballot' ( temp 4-component vector of uint) -0:239 move second child to first child ( temp 4-component vector of int) -0:239 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:239 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:239 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:239 'invocation' ( temp uint) -0:239 Constant: -0:239 1 (const int) -0:239 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of int) -0:239 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:239 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:239 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:239 Constant: -0:239 3 (const int) -0:239 Constant: -0:239 1 (const int) -0:239 'ballot' ( temp 4-component vector of uint) -0:241 move second child to first child ( temp uint) -0:241 direct index ( temp uint) -0:241 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:241 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:241 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:241 'invocation' ( temp uint) -0:241 Constant: -0:241 2 (const int) -0:241 Constant: -0:241 0 (const int) -0:241 subgroupPartitionedInclusiveMaxNV ( global uint) -0:241 direct index ( temp uint) -0:241 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:241 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:241 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:241 Constant: -0:241 0 (const int) -0:241 Constant: -0:241 2 (const int) -0:241 Constant: -0:241 0 (const int) -0:241 'ballot' ( temp 4-component vector of uint) -0:242 move second child to first child ( temp 2-component vector of uint) -0:242 vector swizzle ( temp 2-component vector of uint) -0:242 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:242 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:242 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:242 'invocation' ( temp uint) -0:242 Constant: -0:242 2 (const int) -0:242 Sequence -0:242 Constant: -0:242 0 (const int) -0:242 Constant: -0:242 1 (const int) -0:242 subgroupPartitionedInclusiveMaxNV ( global 2-component vector of uint) -0:242 vector swizzle ( temp 2-component vector of uint) -0:242 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:242 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:242 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:242 Constant: -0:242 1 (const int) -0:242 Constant: -0:242 2 (const int) -0:242 Sequence -0:242 Constant: -0:242 0 (const int) -0:242 Constant: -0:242 1 (const int) -0:242 'ballot' ( temp 4-component vector of uint) -0:243 move second child to first child ( temp 3-component vector of uint) -0:243 vector swizzle ( temp 3-component vector of uint) -0:243 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:243 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:243 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:243 'invocation' ( temp uint) -0:243 Constant: -0:243 2 (const int) -0:243 Sequence -0:243 Constant: -0:243 0 (const int) -0:243 Constant: -0:243 1 (const int) -0:243 Constant: -0:243 2 (const int) -0:243 subgroupPartitionedInclusiveMaxNV ( global 3-component vector of uint) -0:243 vector swizzle ( temp 3-component vector of uint) -0:243 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:243 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:243 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:243 Constant: -0:243 2 (const int) -0:243 Constant: -0:243 2 (const int) -0:243 Sequence -0:243 Constant: -0:243 0 (const int) -0:243 Constant: -0:243 1 (const int) -0:243 Constant: -0:243 2 (const int) -0:243 'ballot' ( temp 4-component vector of uint) -0:244 move second child to first child ( temp 4-component vector of uint) -0:244 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:244 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:244 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:244 'invocation' ( temp uint) -0:244 Constant: -0:244 2 (const int) -0:244 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of uint) -0:244 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:244 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:244 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:244 Constant: -0:244 3 (const int) -0:244 Constant: -0:244 2 (const int) -0:244 'ballot' ( temp 4-component vector of uint) -0:246 move second child to first child ( temp double) -0:246 direct index ( temp double) -0:246 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:246 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:246 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:246 'invocation' ( temp uint) -0:246 Constant: -0:246 3 (const int) -0:246 Constant: -0:246 0 (const int) -0:246 subgroupPartitionedInclusiveMaxNV ( global double) -0:246 direct index ( temp double) -0:246 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:246 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:246 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:246 Constant: -0:246 0 (const int) -0:246 Constant: -0:246 3 (const int) -0:246 Constant: -0:246 0 (const int) -0:246 'ballot' ( temp 4-component vector of uint) -0:247 move second child to first child ( temp 2-component vector of double) -0:247 vector swizzle ( temp 2-component vector of double) -0:247 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:247 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:247 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:247 'invocation' ( temp uint) -0:247 Constant: -0:247 3 (const int) -0:247 Sequence -0:247 Constant: -0:247 0 (const int) -0:247 Constant: -0:247 1 (const int) -0:247 subgroupPartitionedInclusiveMaxNV ( global 2-component vector of double) -0:247 vector swizzle ( temp 2-component vector of double) -0:247 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:247 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:247 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:247 Constant: -0:247 1 (const int) -0:247 Constant: -0:247 3 (const int) -0:247 Sequence -0:247 Constant: -0:247 0 (const int) -0:247 Constant: -0:247 1 (const int) -0:247 'ballot' ( temp 4-component vector of uint) -0:248 move second child to first child ( temp 3-component vector of double) -0:248 vector swizzle ( temp 3-component vector of double) -0:248 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:248 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:248 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:248 'invocation' ( temp uint) -0:248 Constant: -0:248 3 (const int) -0:248 Sequence -0:248 Constant: -0:248 0 (const int) -0:248 Constant: -0:248 1 (const int) -0:248 Constant: -0:248 2 (const int) -0:248 subgroupPartitionedInclusiveMaxNV ( global 3-component vector of double) -0:248 vector swizzle ( temp 3-component vector of double) -0:248 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:248 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:248 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:248 Constant: -0:248 2 (const int) -0:248 Constant: -0:248 3 (const int) -0:248 Sequence -0:248 Constant: -0:248 0 (const int) -0:248 Constant: -0:248 1 (const int) -0:248 Constant: -0:248 2 (const int) -0:248 'ballot' ( temp 4-component vector of uint) -0:249 move second child to first child ( temp 4-component vector of double) -0:249 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:249 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:249 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:249 'invocation' ( temp uint) -0:249 Constant: -0:249 3 (const int) -0:249 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of double) -0:249 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:249 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:249 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:249 Constant: -0:249 3 (const int) -0:249 Constant: -0:249 3 (const int) -0:249 'ballot' ( temp 4-component vector of uint) -0:251 move second child to first child ( temp int) -0:251 direct index ( temp int) -0:251 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:251 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:251 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:251 'invocation' ( temp uint) -0:251 Constant: -0:251 1 (const int) -0:251 Constant: -0:251 0 (const int) -0:251 subgroupPartitionedInclusiveAndNV ( global int) -0:251 direct index ( temp int) -0:251 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:251 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:251 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:251 Constant: -0:251 0 (const int) -0:251 Constant: -0:251 1 (const int) -0:251 Constant: -0:251 0 (const int) -0:251 'ballot' ( temp 4-component vector of uint) -0:252 move second child to first child ( temp 2-component vector of int) -0:252 vector swizzle ( temp 2-component vector of int) -0:252 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:252 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:252 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:252 'invocation' ( temp uint) -0:252 Constant: -0:252 1 (const int) -0:252 Sequence -0:252 Constant: -0:252 0 (const int) -0:252 Constant: -0:252 1 (const int) -0:252 subgroupPartitionedInclusiveAndNV ( global 2-component vector of int) -0:252 vector swizzle ( temp 2-component vector of int) -0:252 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:252 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:252 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:252 Constant: -0:252 1 (const int) -0:252 Constant: -0:252 1 (const int) -0:252 Sequence -0:252 Constant: -0:252 0 (const int) -0:252 Constant: -0:252 1 (const int) -0:252 'ballot' ( temp 4-component vector of uint) -0:253 move second child to first child ( temp 3-component vector of int) -0:253 vector swizzle ( temp 3-component vector of int) -0:253 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:253 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:253 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:253 'invocation' ( temp uint) -0:253 Constant: -0:253 1 (const int) -0:253 Sequence -0:253 Constant: -0:253 0 (const int) -0:253 Constant: -0:253 1 (const int) -0:253 Constant: -0:253 2 (const int) -0:253 subgroupPartitionedInclusiveAndNV ( global 3-component vector of int) -0:253 vector swizzle ( temp 3-component vector of int) -0:253 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:253 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:253 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:253 Constant: -0:253 2 (const int) -0:253 Constant: -0:253 1 (const int) -0:253 Sequence -0:253 Constant: -0:253 0 (const int) -0:253 Constant: -0:253 1 (const int) -0:253 Constant: -0:253 2 (const int) -0:253 'ballot' ( temp 4-component vector of uint) -0:254 move second child to first child ( temp 4-component vector of int) -0:254 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:254 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:254 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:254 'invocation' ( temp uint) -0:254 Constant: -0:254 1 (const int) -0:254 subgroupPartitionedInclusiveAndNV ( global 4-component vector of int) -0:254 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:254 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:254 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:254 Constant: -0:254 3 (const int) -0:254 Constant: -0:254 1 (const int) -0:254 'ballot' ( temp 4-component vector of uint) -0:256 move second child to first child ( temp uint) -0:256 direct index ( temp uint) -0:256 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:256 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:256 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:256 'invocation' ( temp uint) -0:256 Constant: -0:256 2 (const int) -0:256 Constant: -0:256 0 (const int) -0:256 subgroupPartitionedInclusiveAndNV ( global uint) -0:256 direct index ( temp uint) -0:256 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:256 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:256 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:256 Constant: -0:256 0 (const int) -0:256 Constant: -0:256 2 (const int) -0:256 Constant: -0:256 0 (const int) -0:256 'ballot' ( temp 4-component vector of uint) -0:257 move second child to first child ( temp 2-component vector of uint) -0:257 vector swizzle ( temp 2-component vector of uint) -0:257 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:257 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:257 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:257 'invocation' ( temp uint) -0:257 Constant: -0:257 2 (const int) -0:257 Sequence -0:257 Constant: -0:257 0 (const int) -0:257 Constant: -0:257 1 (const int) -0:257 subgroupPartitionedInclusiveAndNV ( global 2-component vector of uint) -0:257 vector swizzle ( temp 2-component vector of uint) -0:257 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:257 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:257 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:257 Constant: -0:257 1 (const int) -0:257 Constant: -0:257 2 (const int) -0:257 Sequence -0:257 Constant: -0:257 0 (const int) -0:257 Constant: -0:257 1 (const int) -0:257 'ballot' ( temp 4-component vector of uint) -0:258 move second child to first child ( temp 3-component vector of uint) -0:258 vector swizzle ( temp 3-component vector of uint) -0:258 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:258 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:258 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:258 'invocation' ( temp uint) -0:258 Constant: -0:258 2 (const int) -0:258 Sequence -0:258 Constant: -0:258 0 (const int) -0:258 Constant: -0:258 1 (const int) -0:258 Constant: -0:258 2 (const int) -0:258 subgroupPartitionedInclusiveAndNV ( global 3-component vector of uint) -0:258 vector swizzle ( temp 3-component vector of uint) -0:258 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:258 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:258 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:258 Constant: -0:258 2 (const int) -0:258 Constant: -0:258 2 (const int) -0:258 Sequence -0:258 Constant: -0:258 0 (const int) -0:258 Constant: -0:258 1 (const int) -0:258 Constant: -0:258 2 (const int) -0:258 'ballot' ( temp 4-component vector of uint) -0:259 move second child to first child ( temp 4-component vector of uint) -0:259 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:259 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:259 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:259 'invocation' ( temp uint) -0:259 Constant: -0:259 2 (const int) -0:259 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint) -0:259 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:259 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:259 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:259 Constant: -0:259 3 (const int) -0:259 Constant: -0:259 2 (const int) -0:259 'ballot' ( temp 4-component vector of uint) -0:261 move second child to first child ( temp int) -0:261 direct index ( temp int) -0:261 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:261 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:261 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:261 'invocation' ( temp uint) -0:261 Constant: -0:261 1 (const int) -0:261 Constant: -0:261 0 (const int) -0:261 Convert bool to int ( temp int) -0:261 subgroupPartitionedInclusiveAndNV ( global bool) -0:261 Compare Less Than ( temp bool) -0:261 direct index ( temp int) -0:261 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:261 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:261 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:261 Constant: -0:261 0 (const int) -0:261 Constant: -0:261 1 (const int) -0:261 Constant: -0:261 0 (const int) -0:261 Constant: -0:261 0 (const int) -0:261 'ballot' ( temp 4-component vector of uint) -0:262 move second child to first child ( temp 2-component vector of int) -0:262 vector swizzle ( temp 2-component vector of int) -0:262 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:262 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:262 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:262 'invocation' ( temp uint) -0:262 Constant: -0:262 1 (const int) -0:262 Sequence -0:262 Constant: -0:262 0 (const int) -0:262 Constant: -0:262 1 (const int) -0:262 Convert bool to int ( temp 2-component vector of int) -0:262 subgroupPartitionedInclusiveAndNV ( global 2-component vector of bool) -0:262 Compare Less Than ( global 2-component vector of bool) -0:262 vector swizzle ( temp 2-component vector of int) -0:262 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:262 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:262 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:262 Constant: -0:262 1 (const int) -0:262 Constant: -0:262 1 (const int) -0:262 Sequence -0:262 Constant: -0:262 0 (const int) -0:262 Constant: -0:262 1 (const int) -0:262 Constant: -0:262 0 (const int) -0:262 0 (const int) -0:262 'ballot' ( temp 4-component vector of uint) -0:263 move second child to first child ( temp 3-component vector of int) -0:263 vector swizzle ( temp 3-component vector of int) -0:263 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:263 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:263 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:263 'invocation' ( temp uint) -0:263 Constant: -0:263 1 (const int) -0:263 Sequence -0:263 Constant: -0:263 0 (const int) -0:263 Constant: -0:263 1 (const int) -0:263 Constant: -0:263 2 (const int) -0:263 Convert bool to int ( temp 3-component vector of int) -0:263 subgroupPartitionedInclusiveAndNV ( global 3-component vector of bool) -0:263 Compare Less Than ( global 3-component vector of bool) -0:263 vector swizzle ( temp 3-component vector of int) -0:263 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:263 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:263 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:263 Constant: -0:263 1 (const int) -0:263 Constant: -0:263 1 (const int) -0:263 Sequence -0:263 Constant: -0:263 0 (const int) -0:263 Constant: -0:263 1 (const int) -0:263 Constant: -0:263 2 (const int) -0:263 Constant: -0:263 0 (const int) -0:263 0 (const int) -0:263 0 (const int) -0:263 'ballot' ( temp 4-component vector of uint) -0:264 move second child to first child ( temp 4-component vector of int) -0:264 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:264 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:264 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:264 'invocation' ( temp uint) -0:264 Constant: -0:264 1 (const int) -0:264 Convert bool to int ( temp 4-component vector of int) -0:264 subgroupPartitionedInclusiveAndNV ( global 4-component vector of bool) -0:264 Compare Less Than ( global 4-component vector of bool) -0:264 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:264 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:264 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:264 Constant: -0:264 1 (const int) -0:264 Constant: -0:264 1 (const int) -0:264 Constant: -0:264 0 (const int) -0:264 0 (const int) -0:264 0 (const int) -0:264 0 (const int) -0:264 'ballot' ( temp 4-component vector of uint) -0:266 move second child to first child ( temp int) -0:266 direct index ( temp int) -0:266 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:266 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:266 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:266 'invocation' ( temp uint) -0:266 Constant: -0:266 1 (const int) -0:266 Constant: -0:266 0 (const int) -0:266 subgroupPartitionedInclusiveOrNV ( global int) -0:266 direct index ( temp int) -0:266 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:266 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:266 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:266 Constant: -0:266 0 (const int) -0:266 Constant: -0:266 1 (const int) -0:266 Constant: -0:266 0 (const int) -0:266 'ballot' ( temp 4-component vector of uint) -0:267 move second child to first child ( temp 2-component vector of int) -0:267 vector swizzle ( temp 2-component vector of int) -0:267 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:267 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:267 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:267 'invocation' ( temp uint) -0:267 Constant: -0:267 1 (const int) -0:267 Sequence -0:267 Constant: -0:267 0 (const int) -0:267 Constant: -0:267 1 (const int) -0:267 subgroupPartitionedInclusiveOrNV ( global 2-component vector of int) -0:267 vector swizzle ( temp 2-component vector of int) -0:267 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:267 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:267 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:267 Constant: -0:267 1 (const int) -0:267 Constant: -0:267 1 (const int) -0:267 Sequence -0:267 Constant: -0:267 0 (const int) -0:267 Constant: -0:267 1 (const int) -0:267 'ballot' ( temp 4-component vector of uint) -0:268 move second child to first child ( temp 3-component vector of int) -0:268 vector swizzle ( temp 3-component vector of int) -0:268 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:268 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:268 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:268 'invocation' ( temp uint) -0:268 Constant: -0:268 1 (const int) -0:268 Sequence -0:268 Constant: -0:268 0 (const int) -0:268 Constant: -0:268 1 (const int) -0:268 Constant: -0:268 2 (const int) -0:268 subgroupPartitionedInclusiveOrNV ( global 3-component vector of int) -0:268 vector swizzle ( temp 3-component vector of int) -0:268 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:268 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:268 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:268 Constant: -0:268 2 (const int) -0:268 Constant: -0:268 1 (const int) -0:268 Sequence -0:268 Constant: -0:268 0 (const int) -0:268 Constant: -0:268 1 (const int) -0:268 Constant: -0:268 2 (const int) -0:268 'ballot' ( temp 4-component vector of uint) -0:269 move second child to first child ( temp 4-component vector of int) -0:269 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:269 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:269 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:269 'invocation' ( temp uint) -0:269 Constant: -0:269 1 (const int) -0:269 subgroupPartitionedInclusiveOrNV ( global 4-component vector of int) -0:269 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:269 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:269 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:269 Constant: -0:269 3 (const int) -0:269 Constant: -0:269 1 (const int) -0:269 'ballot' ( temp 4-component vector of uint) -0:271 move second child to first child ( temp uint) -0:271 direct index ( temp uint) -0:271 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:271 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:271 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:271 'invocation' ( temp uint) -0:271 Constant: -0:271 2 (const int) -0:271 Constant: -0:271 0 (const int) -0:271 subgroupPartitionedInclusiveOrNV ( global uint) -0:271 direct index ( temp uint) -0:271 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:271 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:271 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:271 Constant: -0:271 0 (const int) -0:271 Constant: -0:271 2 (const int) -0:271 Constant: -0:271 0 (const int) -0:271 'ballot' ( temp 4-component vector of uint) -0:272 move second child to first child ( temp 2-component vector of uint) -0:272 vector swizzle ( temp 2-component vector of uint) -0:272 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:272 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:272 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:272 'invocation' ( temp uint) -0:272 Constant: -0:272 2 (const int) -0:272 Sequence -0:272 Constant: -0:272 0 (const int) -0:272 Constant: -0:272 1 (const int) -0:272 subgroupPartitionedInclusiveOrNV ( global 2-component vector of uint) -0:272 vector swizzle ( temp 2-component vector of uint) -0:272 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:272 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:272 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:272 Constant: -0:272 1 (const int) -0:272 Constant: -0:272 2 (const int) -0:272 Sequence -0:272 Constant: -0:272 0 (const int) -0:272 Constant: -0:272 1 (const int) -0:272 'ballot' ( temp 4-component vector of uint) -0:273 move second child to first child ( temp 3-component vector of uint) -0:273 vector swizzle ( temp 3-component vector of uint) -0:273 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:273 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:273 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:273 'invocation' ( temp uint) -0:273 Constant: -0:273 2 (const int) -0:273 Sequence -0:273 Constant: -0:273 0 (const int) -0:273 Constant: -0:273 1 (const int) -0:273 Constant: -0:273 2 (const int) -0:273 subgroupPartitionedInclusiveOrNV ( global 3-component vector of uint) -0:273 vector swizzle ( temp 3-component vector of uint) -0:273 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:273 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:273 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:273 Constant: -0:273 2 (const int) -0:273 Constant: -0:273 2 (const int) -0:273 Sequence -0:273 Constant: -0:273 0 (const int) -0:273 Constant: -0:273 1 (const int) -0:273 Constant: -0:273 2 (const int) -0:273 'ballot' ( temp 4-component vector of uint) -0:274 move second child to first child ( temp 4-component vector of uint) -0:274 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:274 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:274 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:274 'invocation' ( temp uint) -0:274 Constant: -0:274 2 (const int) -0:274 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint) -0:274 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:274 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:274 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:274 Constant: -0:274 3 (const int) -0:274 Constant: -0:274 2 (const int) -0:274 'ballot' ( temp 4-component vector of uint) -0:276 move second child to first child ( temp int) -0:276 direct index ( temp int) -0:276 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:276 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:276 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:276 'invocation' ( temp uint) -0:276 Constant: -0:276 1 (const int) -0:276 Constant: -0:276 0 (const int) -0:276 Convert bool to int ( temp int) -0:276 subgroupPartitionedInclusiveOrNV ( global bool) -0:276 Compare Less Than ( temp bool) -0:276 direct index ( temp int) -0:276 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:276 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:276 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:276 Constant: -0:276 0 (const int) -0:276 Constant: -0:276 1 (const int) -0:276 Constant: -0:276 0 (const int) -0:276 Constant: -0:276 0 (const int) -0:276 'ballot' ( temp 4-component vector of uint) -0:277 move second child to first child ( temp 2-component vector of int) -0:277 vector swizzle ( temp 2-component vector of int) -0:277 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:277 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:277 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:277 'invocation' ( temp uint) -0:277 Constant: -0:277 1 (const int) -0:277 Sequence -0:277 Constant: -0:277 0 (const int) -0:277 Constant: -0:277 1 (const int) -0:277 Convert bool to int ( temp 2-component vector of int) -0:277 subgroupPartitionedInclusiveOrNV ( global 2-component vector of bool) -0:277 Compare Less Than ( global 2-component vector of bool) -0:277 vector swizzle ( temp 2-component vector of int) -0:277 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:277 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:277 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:277 Constant: -0:277 1 (const int) -0:277 Constant: -0:277 1 (const int) -0:277 Sequence -0:277 Constant: -0:277 0 (const int) -0:277 Constant: -0:277 1 (const int) -0:277 Constant: -0:277 0 (const int) -0:277 0 (const int) -0:277 'ballot' ( temp 4-component vector of uint) -0:278 move second child to first child ( temp 3-component vector of int) -0:278 vector swizzle ( temp 3-component vector of int) -0:278 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:278 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:278 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:278 'invocation' ( temp uint) -0:278 Constant: -0:278 1 (const int) -0:278 Sequence -0:278 Constant: -0:278 0 (const int) -0:278 Constant: -0:278 1 (const int) -0:278 Constant: -0:278 2 (const int) -0:278 Convert bool to int ( temp 3-component vector of int) -0:278 subgroupPartitionedInclusiveOrNV ( global 3-component vector of bool) -0:278 Compare Less Than ( global 3-component vector of bool) -0:278 vector swizzle ( temp 3-component vector of int) -0:278 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:278 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:278 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:278 Constant: -0:278 1 (const int) -0:278 Constant: -0:278 1 (const int) -0:278 Sequence -0:278 Constant: -0:278 0 (const int) -0:278 Constant: -0:278 1 (const int) -0:278 Constant: -0:278 2 (const int) -0:278 Constant: -0:278 0 (const int) -0:278 0 (const int) -0:278 0 (const int) -0:278 'ballot' ( temp 4-component vector of uint) -0:279 move second child to first child ( temp 4-component vector of int) -0:279 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:279 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:279 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:279 'invocation' ( temp uint) -0:279 Constant: -0:279 1 (const int) -0:279 Convert bool to int ( temp 4-component vector of int) -0:279 subgroupPartitionedInclusiveOrNV ( global 4-component vector of bool) -0:279 Compare Less Than ( global 4-component vector of bool) -0:279 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:279 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:279 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:279 Constant: -0:279 1 (const int) -0:279 Constant: -0:279 1 (const int) -0:279 Constant: -0:279 0 (const int) -0:279 0 (const int) -0:279 0 (const int) -0:279 0 (const int) -0:279 'ballot' ( temp 4-component vector of uint) -0:281 move second child to first child ( temp int) -0:281 direct index ( temp int) -0:281 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:281 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:281 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:281 'invocation' ( temp uint) -0:281 Constant: -0:281 1 (const int) -0:281 Constant: -0:281 0 (const int) -0:281 subgroupPartitionedInclusiveXorNV ( global int) -0:281 direct index ( temp int) -0:281 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:281 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:281 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:281 Constant: -0:281 0 (const int) -0:281 Constant: -0:281 1 (const int) -0:281 Constant: -0:281 0 (const int) -0:281 'ballot' ( temp 4-component vector of uint) -0:282 move second child to first child ( temp 2-component vector of int) -0:282 vector swizzle ( temp 2-component vector of int) -0:282 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:282 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:282 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:282 'invocation' ( temp uint) -0:282 Constant: -0:282 1 (const int) -0:282 Sequence -0:282 Constant: -0:282 0 (const int) -0:282 Constant: -0:282 1 (const int) -0:282 subgroupPartitionedInclusiveXorNV ( global 2-component vector of int) -0:282 vector swizzle ( temp 2-component vector of int) -0:282 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:282 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:282 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:282 Constant: -0:282 1 (const int) -0:282 Constant: -0:282 1 (const int) -0:282 Sequence -0:282 Constant: -0:282 0 (const int) -0:282 Constant: -0:282 1 (const int) -0:282 'ballot' ( temp 4-component vector of uint) -0:283 move second child to first child ( temp 3-component vector of int) -0:283 vector swizzle ( temp 3-component vector of int) -0:283 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:283 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:283 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:283 'invocation' ( temp uint) -0:283 Constant: -0:283 1 (const int) -0:283 Sequence -0:283 Constant: -0:283 0 (const int) -0:283 Constant: -0:283 1 (const int) -0:283 Constant: -0:283 2 (const int) -0:283 subgroupPartitionedInclusiveXorNV ( global 3-component vector of int) -0:283 vector swizzle ( temp 3-component vector of int) -0:283 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:283 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:283 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:283 Constant: -0:283 2 (const int) -0:283 Constant: -0:283 1 (const int) -0:283 Sequence -0:283 Constant: -0:283 0 (const int) -0:283 Constant: -0:283 1 (const int) -0:283 Constant: -0:283 2 (const int) -0:283 'ballot' ( temp 4-component vector of uint) -0:284 move second child to first child ( temp 4-component vector of int) -0:284 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:284 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:284 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:284 'invocation' ( temp uint) -0:284 Constant: -0:284 1 (const int) -0:284 subgroupPartitionedInclusiveXorNV ( global 4-component vector of int) -0:284 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:284 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:284 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:284 Constant: -0:284 3 (const int) -0:284 Constant: -0:284 1 (const int) -0:284 'ballot' ( temp 4-component vector of uint) -0:286 move second child to first child ( temp uint) -0:286 direct index ( temp uint) -0:286 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:286 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:286 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:286 'invocation' ( temp uint) -0:286 Constant: -0:286 2 (const int) -0:286 Constant: -0:286 0 (const int) -0:286 subgroupPartitionedInclusiveXorNV ( global uint) -0:286 direct index ( temp uint) -0:286 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:286 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:286 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:286 Constant: -0:286 0 (const int) -0:286 Constant: -0:286 2 (const int) -0:286 Constant: -0:286 0 (const int) -0:286 'ballot' ( temp 4-component vector of uint) -0:287 move second child to first child ( temp 2-component vector of uint) -0:287 vector swizzle ( temp 2-component vector of uint) -0:287 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:287 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:287 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:287 'invocation' ( temp uint) -0:287 Constant: -0:287 2 (const int) -0:287 Sequence -0:287 Constant: -0:287 0 (const int) -0:287 Constant: -0:287 1 (const int) -0:287 subgroupPartitionedInclusiveXorNV ( global 2-component vector of uint) -0:287 vector swizzle ( temp 2-component vector of uint) -0:287 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:287 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:287 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:287 Constant: -0:287 1 (const int) -0:287 Constant: -0:287 2 (const int) -0:287 Sequence -0:287 Constant: -0:287 0 (const int) -0:287 Constant: -0:287 1 (const int) -0:287 'ballot' ( temp 4-component vector of uint) -0:288 move second child to first child ( temp 3-component vector of uint) -0:288 vector swizzle ( temp 3-component vector of uint) -0:288 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:288 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:288 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:288 'invocation' ( temp uint) -0:288 Constant: -0:288 2 (const int) -0:288 Sequence -0:288 Constant: -0:288 0 (const int) -0:288 Constant: -0:288 1 (const int) -0:288 Constant: -0:288 2 (const int) -0:288 subgroupPartitionedInclusiveXorNV ( global 3-component vector of uint) -0:288 vector swizzle ( temp 3-component vector of uint) -0:288 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:288 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:288 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:288 Constant: -0:288 2 (const int) -0:288 Constant: -0:288 2 (const int) -0:288 Sequence -0:288 Constant: -0:288 0 (const int) -0:288 Constant: -0:288 1 (const int) -0:288 Constant: -0:288 2 (const int) -0:288 'ballot' ( temp 4-component vector of uint) -0:289 move second child to first child ( temp 4-component vector of uint) -0:289 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:289 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:289 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:289 'invocation' ( temp uint) -0:289 Constant: -0:289 2 (const int) -0:289 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint) -0:289 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:289 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:289 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:289 Constant: -0:289 3 (const int) -0:289 Constant: -0:289 2 (const int) -0:289 'ballot' ( temp 4-component vector of uint) -0:291 move second child to first child ( temp int) -0:291 direct index ( temp int) -0:291 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:291 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:291 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:291 'invocation' ( temp uint) -0:291 Constant: -0:291 1 (const int) -0:291 Constant: -0:291 0 (const int) -0:291 Convert bool to int ( temp int) -0:291 subgroupPartitionedInclusiveXorNV ( global bool) -0:291 Compare Less Than ( temp bool) -0:291 direct index ( temp int) -0:291 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:291 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:291 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:291 Constant: -0:291 0 (const int) -0:291 Constant: -0:291 1 (const int) -0:291 Constant: -0:291 0 (const int) -0:291 Constant: -0:291 0 (const int) -0:291 'ballot' ( temp 4-component vector of uint) -0:292 move second child to first child ( temp 2-component vector of int) -0:292 vector swizzle ( temp 2-component vector of int) -0:292 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:292 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:292 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:292 'invocation' ( temp uint) -0:292 Constant: -0:292 1 (const int) -0:292 Sequence -0:292 Constant: -0:292 0 (const int) -0:292 Constant: -0:292 1 (const int) -0:292 Convert bool to int ( temp 2-component vector of int) -0:292 subgroupPartitionedInclusiveXorNV ( global 2-component vector of bool) -0:292 Compare Less Than ( global 2-component vector of bool) -0:292 vector swizzle ( temp 2-component vector of int) -0:292 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:292 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:292 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:292 Constant: -0:292 1 (const int) -0:292 Constant: -0:292 1 (const int) -0:292 Sequence -0:292 Constant: -0:292 0 (const int) -0:292 Constant: -0:292 1 (const int) -0:292 Constant: -0:292 0 (const int) -0:292 0 (const int) -0:292 'ballot' ( temp 4-component vector of uint) -0:293 move second child to first child ( temp 3-component vector of int) -0:293 vector swizzle ( temp 3-component vector of int) -0:293 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:293 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:293 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:293 'invocation' ( temp uint) -0:293 Constant: -0:293 1 (const int) -0:293 Sequence -0:293 Constant: -0:293 0 (const int) -0:293 Constant: -0:293 1 (const int) -0:293 Constant: -0:293 2 (const int) -0:293 Convert bool to int ( temp 3-component vector of int) -0:293 subgroupPartitionedInclusiveXorNV ( global 3-component vector of bool) -0:293 Compare Less Than ( global 3-component vector of bool) -0:293 vector swizzle ( temp 3-component vector of int) -0:293 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:293 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:293 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:293 Constant: -0:293 1 (const int) -0:293 Constant: -0:293 1 (const int) -0:293 Sequence -0:293 Constant: -0:293 0 (const int) -0:293 Constant: -0:293 1 (const int) -0:293 Constant: -0:293 2 (const int) -0:293 Constant: -0:293 0 (const int) -0:293 0 (const int) -0:293 0 (const int) -0:293 'ballot' ( temp 4-component vector of uint) -0:294 move second child to first child ( temp 4-component vector of int) -0:294 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:294 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:294 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:294 'invocation' ( temp uint) -0:294 Constant: -0:294 1 (const int) -0:294 Convert bool to int ( temp 4-component vector of int) -0:294 subgroupPartitionedInclusiveXorNV ( global 4-component vector of bool) -0:294 Compare Less Than ( global 4-component vector of bool) -0:294 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:294 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:294 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:294 Constant: -0:294 1 (const int) -0:294 Constant: -0:294 1 (const int) -0:294 Constant: -0:294 0 (const int) -0:294 0 (const int) -0:294 0 (const int) -0:294 0 (const int) -0:294 'ballot' ( temp 4-component vector of uint) -0:296 move second child to first child ( temp float) -0:296 direct index ( temp float) -0:296 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:296 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:296 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:296 'invocation' ( temp uint) -0:296 Constant: -0:296 0 (const int) -0:296 Constant: -0:296 0 (const int) -0:296 subgroupPartitionedExclusiveAddNV ( global float) -0:296 direct index ( temp float) -0:296 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:296 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:296 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:296 Constant: -0:296 0 (const int) -0:296 Constant: -0:296 0 (const int) -0:296 Constant: -0:296 0 (const int) -0:296 'ballot' ( temp 4-component vector of uint) -0:297 move second child to first child ( temp 2-component vector of float) -0:297 vector swizzle ( temp 2-component vector of float) -0:297 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:297 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:297 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:297 'invocation' ( temp uint) -0:297 Constant: -0:297 0 (const int) -0:297 Sequence -0:297 Constant: -0:297 0 (const int) -0:297 Constant: -0:297 1 (const int) -0:297 subgroupPartitionedExclusiveAddNV ( global 2-component vector of float) -0:297 vector swizzle ( temp 2-component vector of float) -0:297 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:297 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:297 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:297 Constant: -0:297 1 (const int) -0:297 Constant: -0:297 0 (const int) -0:297 Sequence -0:297 Constant: -0:297 0 (const int) -0:297 Constant: -0:297 1 (const int) -0:297 'ballot' ( temp 4-component vector of uint) -0:298 move second child to first child ( temp 3-component vector of float) -0:298 vector swizzle ( temp 3-component vector of float) -0:298 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:298 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:298 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:298 'invocation' ( temp uint) -0:298 Constant: -0:298 0 (const int) -0:298 Sequence -0:298 Constant: -0:298 0 (const int) -0:298 Constant: -0:298 1 (const int) -0:298 Constant: -0:298 2 (const int) -0:298 subgroupPartitionedExclusiveAddNV ( global 3-component vector of float) -0:298 vector swizzle ( temp 3-component vector of float) -0:298 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:298 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:298 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:298 Constant: -0:298 2 (const int) -0:298 Constant: -0:298 0 (const int) -0:298 Sequence -0:298 Constant: -0:298 0 (const int) -0:298 Constant: -0:298 1 (const int) -0:298 Constant: -0:298 2 (const int) -0:298 'ballot' ( temp 4-component vector of uint) -0:299 move second child to first child ( temp 4-component vector of float) -0:299 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:299 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:299 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:299 'invocation' ( temp uint) -0:299 Constant: -0:299 0 (const int) -0:299 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float) -0:299 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:299 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:299 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:299 Constant: -0:299 3 (const int) -0:299 Constant: -0:299 0 (const int) -0:299 'ballot' ( temp 4-component vector of uint) -0:301 move second child to first child ( temp int) -0:301 direct index ( temp int) -0:301 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:301 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:301 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:301 'invocation' ( temp uint) -0:301 Constant: -0:301 1 (const int) -0:301 Constant: -0:301 0 (const int) -0:301 subgroupPartitionedExclusiveAddNV ( global int) -0:301 direct index ( temp int) -0:301 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:301 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:301 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:301 Constant: -0:301 0 (const int) -0:301 Constant: -0:301 1 (const int) -0:301 Constant: -0:301 0 (const int) -0:301 'ballot' ( temp 4-component vector of uint) -0:302 move second child to first child ( temp 2-component vector of int) -0:302 vector swizzle ( temp 2-component vector of int) -0:302 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:302 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:302 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:302 'invocation' ( temp uint) -0:302 Constant: -0:302 1 (const int) -0:302 Sequence -0:302 Constant: -0:302 0 (const int) -0:302 Constant: -0:302 1 (const int) -0:302 subgroupPartitionedExclusiveAddNV ( global 2-component vector of int) -0:302 vector swizzle ( temp 2-component vector of int) -0:302 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:302 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:302 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:302 Constant: -0:302 1 (const int) -0:302 Constant: -0:302 1 (const int) -0:302 Sequence -0:302 Constant: -0:302 0 (const int) -0:302 Constant: -0:302 1 (const int) -0:302 'ballot' ( temp 4-component vector of uint) -0:303 move second child to first child ( temp 3-component vector of int) -0:303 vector swizzle ( temp 3-component vector of int) -0:303 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:303 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:303 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:303 'invocation' ( temp uint) -0:303 Constant: -0:303 1 (const int) -0:303 Sequence -0:303 Constant: -0:303 0 (const int) -0:303 Constant: -0:303 1 (const int) -0:303 Constant: -0:303 2 (const int) -0:303 subgroupPartitionedExclusiveAddNV ( global 3-component vector of int) -0:303 vector swizzle ( temp 3-component vector of int) -0:303 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:303 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:303 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:303 Constant: -0:303 2 (const int) -0:303 Constant: -0:303 1 (const int) -0:303 Sequence -0:303 Constant: -0:303 0 (const int) -0:303 Constant: -0:303 1 (const int) -0:303 Constant: -0:303 2 (const int) -0:303 'ballot' ( temp 4-component vector of uint) -0:304 move second child to first child ( temp 4-component vector of int) -0:304 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:304 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:304 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:304 'invocation' ( temp uint) -0:304 Constant: -0:304 1 (const int) -0:304 subgroupPartitionedExclusiveAddNV ( global 4-component vector of int) -0:304 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:304 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:304 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:304 Constant: -0:304 3 (const int) -0:304 Constant: -0:304 1 (const int) -0:304 'ballot' ( temp 4-component vector of uint) -0:306 move second child to first child ( temp uint) -0:306 direct index ( temp uint) -0:306 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:306 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:306 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:306 'invocation' ( temp uint) -0:306 Constant: -0:306 2 (const int) -0:306 Constant: -0:306 0 (const int) -0:306 subgroupPartitionedExclusiveAddNV ( global uint) -0:306 direct index ( temp uint) -0:306 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:306 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:306 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:306 Constant: -0:306 0 (const int) -0:306 Constant: -0:306 2 (const int) -0:306 Constant: -0:306 0 (const int) -0:306 'ballot' ( temp 4-component vector of uint) -0:307 move second child to first child ( temp 2-component vector of uint) -0:307 vector swizzle ( temp 2-component vector of uint) -0:307 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:307 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:307 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:307 'invocation' ( temp uint) -0:307 Constant: -0:307 2 (const int) -0:307 Sequence -0:307 Constant: -0:307 0 (const int) -0:307 Constant: -0:307 1 (const int) -0:307 subgroupPartitionedExclusiveAddNV ( global 2-component vector of uint) -0:307 vector swizzle ( temp 2-component vector of uint) -0:307 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:307 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:307 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:307 Constant: -0:307 1 (const int) -0:307 Constant: -0:307 2 (const int) -0:307 Sequence -0:307 Constant: -0:307 0 (const int) -0:307 Constant: -0:307 1 (const int) -0:307 'ballot' ( temp 4-component vector of uint) -0:308 move second child to first child ( temp 3-component vector of uint) -0:308 vector swizzle ( temp 3-component vector of uint) -0:308 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:308 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:308 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:308 'invocation' ( temp uint) -0:308 Constant: -0:308 2 (const int) -0:308 Sequence -0:308 Constant: -0:308 0 (const int) -0:308 Constant: -0:308 1 (const int) -0:308 Constant: -0:308 2 (const int) -0:308 subgroupPartitionedExclusiveAddNV ( global 3-component vector of uint) -0:308 vector swizzle ( temp 3-component vector of uint) -0:308 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:308 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:308 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:308 Constant: -0:308 2 (const int) -0:308 Constant: -0:308 2 (const int) -0:308 Sequence -0:308 Constant: -0:308 0 (const int) -0:308 Constant: -0:308 1 (const int) -0:308 Constant: -0:308 2 (const int) -0:308 'ballot' ( temp 4-component vector of uint) -0:309 move second child to first child ( temp 4-component vector of uint) -0:309 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:309 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:309 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:309 'invocation' ( temp uint) -0:309 Constant: -0:309 2 (const int) -0:309 subgroupPartitionedExclusiveAddNV ( global 4-component vector of uint) -0:309 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:309 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:309 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:309 Constant: -0:309 3 (const int) -0:309 Constant: -0:309 2 (const int) -0:309 'ballot' ( temp 4-component vector of uint) -0:311 move second child to first child ( temp double) -0:311 direct index ( temp double) -0:311 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:311 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:311 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:311 'invocation' ( temp uint) -0:311 Constant: -0:311 3 (const int) -0:311 Constant: -0:311 0 (const int) -0:311 subgroupPartitionedExclusiveAddNV ( global double) -0:311 direct index ( temp double) -0:311 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:311 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:311 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:311 Constant: -0:311 0 (const int) -0:311 Constant: -0:311 3 (const int) -0:311 Constant: -0:311 0 (const int) -0:311 'ballot' ( temp 4-component vector of uint) -0:312 move second child to first child ( temp 2-component vector of double) -0:312 vector swizzle ( temp 2-component vector of double) -0:312 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:312 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:312 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:312 'invocation' ( temp uint) -0:312 Constant: -0:312 3 (const int) -0:312 Sequence -0:312 Constant: -0:312 0 (const int) -0:312 Constant: -0:312 1 (const int) -0:312 subgroupPartitionedExclusiveAddNV ( global 2-component vector of double) -0:312 vector swizzle ( temp 2-component vector of double) -0:312 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:312 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:312 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:312 Constant: -0:312 1 (const int) -0:312 Constant: -0:312 3 (const int) -0:312 Sequence -0:312 Constant: -0:312 0 (const int) -0:312 Constant: -0:312 1 (const int) -0:312 'ballot' ( temp 4-component vector of uint) -0:313 move second child to first child ( temp 3-component vector of double) -0:313 vector swizzle ( temp 3-component vector of double) -0:313 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:313 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:313 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:313 'invocation' ( temp uint) -0:313 Constant: -0:313 3 (const int) -0:313 Sequence -0:313 Constant: -0:313 0 (const int) -0:313 Constant: -0:313 1 (const int) -0:313 Constant: -0:313 2 (const int) -0:313 subgroupPartitionedExclusiveAddNV ( global 3-component vector of double) -0:313 vector swizzle ( temp 3-component vector of double) -0:313 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:313 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:313 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:313 Constant: -0:313 2 (const int) -0:313 Constant: -0:313 3 (const int) -0:313 Sequence -0:313 Constant: -0:313 0 (const int) -0:313 Constant: -0:313 1 (const int) -0:313 Constant: -0:313 2 (const int) -0:313 'ballot' ( temp 4-component vector of uint) -0:314 move second child to first child ( temp 4-component vector of double) -0:314 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:314 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:314 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:314 'invocation' ( temp uint) -0:314 Constant: -0:314 3 (const int) -0:314 subgroupPartitionedExclusiveAddNV ( global 4-component vector of double) -0:314 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:314 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:314 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:314 Constant: -0:314 3 (const int) -0:314 Constant: -0:314 3 (const int) -0:314 'ballot' ( temp 4-component vector of uint) -0:316 move second child to first child ( temp float) -0:316 direct index ( temp float) -0:316 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:316 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:316 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:316 'invocation' ( temp uint) -0:316 Constant: -0:316 0 (const int) -0:316 Constant: -0:316 0 (const int) -0:316 subgroupPartitionedExclusiveMulNV ( global float) -0:316 direct index ( temp float) -0:316 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:316 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:316 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:316 Constant: -0:316 0 (const int) -0:316 Constant: -0:316 0 (const int) -0:316 Constant: -0:316 0 (const int) -0:316 'ballot' ( temp 4-component vector of uint) -0:317 move second child to first child ( temp 2-component vector of float) -0:317 vector swizzle ( temp 2-component vector of float) -0:317 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:317 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:317 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:317 'invocation' ( temp uint) -0:317 Constant: -0:317 0 (const int) -0:317 Sequence -0:317 Constant: -0:317 0 (const int) -0:317 Constant: -0:317 1 (const int) -0:317 subgroupPartitionedExclusiveMulNV ( global 2-component vector of float) -0:317 vector swizzle ( temp 2-component vector of float) -0:317 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:317 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:317 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:317 Constant: -0:317 1 (const int) -0:317 Constant: -0:317 0 (const int) -0:317 Sequence -0:317 Constant: -0:317 0 (const int) -0:317 Constant: -0:317 1 (const int) -0:317 'ballot' ( temp 4-component vector of uint) -0:318 move second child to first child ( temp 3-component vector of float) -0:318 vector swizzle ( temp 3-component vector of float) -0:318 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:318 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:318 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:318 'invocation' ( temp uint) -0:318 Constant: -0:318 0 (const int) -0:318 Sequence -0:318 Constant: -0:318 0 (const int) -0:318 Constant: -0:318 1 (const int) -0:318 Constant: -0:318 2 (const int) -0:318 subgroupPartitionedExclusiveMulNV ( global 3-component vector of float) -0:318 vector swizzle ( temp 3-component vector of float) -0:318 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:318 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:318 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:318 Constant: -0:318 2 (const int) -0:318 Constant: -0:318 0 (const int) -0:318 Sequence -0:318 Constant: -0:318 0 (const int) -0:318 Constant: -0:318 1 (const int) -0:318 Constant: -0:318 2 (const int) -0:318 'ballot' ( temp 4-component vector of uint) -0:319 move second child to first child ( temp 4-component vector of float) -0:319 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:319 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:319 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:319 'invocation' ( temp uint) -0:319 Constant: -0:319 0 (const int) -0:319 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float) -0:319 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:319 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:319 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:319 Constant: -0:319 3 (const int) -0:319 Constant: -0:319 0 (const int) -0:319 'ballot' ( temp 4-component vector of uint) -0:321 move second child to first child ( temp int) -0:321 direct index ( temp int) -0:321 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:321 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:321 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:321 'invocation' ( temp uint) -0:321 Constant: -0:321 1 (const int) -0:321 Constant: -0:321 0 (const int) -0:321 subgroupPartitionedExclusiveMulNV ( global int) -0:321 direct index ( temp int) -0:321 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:321 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:321 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:321 Constant: -0:321 0 (const int) -0:321 Constant: -0:321 1 (const int) -0:321 Constant: -0:321 0 (const int) -0:321 'ballot' ( temp 4-component vector of uint) -0:322 move second child to first child ( temp 2-component vector of int) -0:322 vector swizzle ( temp 2-component vector of int) -0:322 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:322 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:322 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:322 'invocation' ( temp uint) -0:322 Constant: -0:322 1 (const int) -0:322 Sequence -0:322 Constant: -0:322 0 (const int) -0:322 Constant: -0:322 1 (const int) -0:322 subgroupPartitionedExclusiveMulNV ( global 2-component vector of int) -0:322 vector swizzle ( temp 2-component vector of int) -0:322 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:322 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:322 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:322 Constant: -0:322 1 (const int) -0:322 Constant: -0:322 1 (const int) -0:322 Sequence -0:322 Constant: -0:322 0 (const int) -0:322 Constant: -0:322 1 (const int) -0:322 'ballot' ( temp 4-component vector of uint) -0:323 move second child to first child ( temp 3-component vector of int) -0:323 vector swizzle ( temp 3-component vector of int) -0:323 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:323 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:323 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:323 'invocation' ( temp uint) -0:323 Constant: -0:323 1 (const int) -0:323 Sequence -0:323 Constant: -0:323 0 (const int) -0:323 Constant: -0:323 1 (const int) -0:323 Constant: -0:323 2 (const int) -0:323 subgroupPartitionedExclusiveMulNV ( global 3-component vector of int) -0:323 vector swizzle ( temp 3-component vector of int) -0:323 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:323 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:323 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:323 Constant: -0:323 2 (const int) -0:323 Constant: -0:323 1 (const int) -0:323 Sequence -0:323 Constant: -0:323 0 (const int) -0:323 Constant: -0:323 1 (const int) -0:323 Constant: -0:323 2 (const int) -0:323 'ballot' ( temp 4-component vector of uint) -0:324 move second child to first child ( temp 4-component vector of int) -0:324 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:324 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:324 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:324 'invocation' ( temp uint) -0:324 Constant: -0:324 1 (const int) -0:324 subgroupPartitionedExclusiveMulNV ( global 4-component vector of int) -0:324 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:324 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:324 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:324 Constant: -0:324 3 (const int) -0:324 Constant: -0:324 1 (const int) -0:324 'ballot' ( temp 4-component vector of uint) -0:326 move second child to first child ( temp uint) -0:326 direct index ( temp uint) -0:326 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:326 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:326 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:326 'invocation' ( temp uint) -0:326 Constant: -0:326 2 (const int) -0:326 Constant: -0:326 0 (const int) -0:326 subgroupPartitionedExclusiveMulNV ( global uint) -0:326 direct index ( temp uint) -0:326 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:326 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:326 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:326 Constant: -0:326 0 (const int) -0:326 Constant: -0:326 2 (const int) -0:326 Constant: -0:326 0 (const int) -0:326 'ballot' ( temp 4-component vector of uint) -0:327 move second child to first child ( temp 2-component vector of uint) -0:327 vector swizzle ( temp 2-component vector of uint) -0:327 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:327 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:327 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:327 'invocation' ( temp uint) -0:327 Constant: -0:327 2 (const int) -0:327 Sequence -0:327 Constant: -0:327 0 (const int) -0:327 Constant: -0:327 1 (const int) -0:327 subgroupPartitionedExclusiveMulNV ( global 2-component vector of uint) -0:327 vector swizzle ( temp 2-component vector of uint) -0:327 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:327 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:327 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:327 Constant: -0:327 1 (const int) -0:327 Constant: -0:327 2 (const int) -0:327 Sequence -0:327 Constant: -0:327 0 (const int) -0:327 Constant: -0:327 1 (const int) -0:327 'ballot' ( temp 4-component vector of uint) -0:328 move second child to first child ( temp 3-component vector of uint) -0:328 vector swizzle ( temp 3-component vector of uint) -0:328 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:328 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:328 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:328 'invocation' ( temp uint) -0:328 Constant: -0:328 2 (const int) -0:328 Sequence -0:328 Constant: -0:328 0 (const int) -0:328 Constant: -0:328 1 (const int) -0:328 Constant: -0:328 2 (const int) -0:328 subgroupPartitionedExclusiveMulNV ( global 3-component vector of uint) -0:328 vector swizzle ( temp 3-component vector of uint) -0:328 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:328 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:328 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:328 Constant: -0:328 2 (const int) -0:328 Constant: -0:328 2 (const int) -0:328 Sequence -0:328 Constant: -0:328 0 (const int) -0:328 Constant: -0:328 1 (const int) -0:328 Constant: -0:328 2 (const int) -0:328 'ballot' ( temp 4-component vector of uint) -0:329 move second child to first child ( temp 4-component vector of uint) -0:329 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:329 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:329 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:329 'invocation' ( temp uint) -0:329 Constant: -0:329 2 (const int) -0:329 subgroupPartitionedExclusiveMulNV ( global 4-component vector of uint) -0:329 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:329 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:329 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:329 Constant: -0:329 3 (const int) -0:329 Constant: -0:329 2 (const int) -0:329 'ballot' ( temp 4-component vector of uint) -0:331 move second child to first child ( temp double) -0:331 direct index ( temp double) -0:331 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:331 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:331 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:331 'invocation' ( temp uint) -0:331 Constant: -0:331 3 (const int) -0:331 Constant: -0:331 0 (const int) -0:331 subgroupPartitionedExclusiveMulNV ( global double) -0:331 direct index ( temp double) -0:331 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:331 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:331 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:331 Constant: -0:331 0 (const int) -0:331 Constant: -0:331 3 (const int) -0:331 Constant: -0:331 0 (const int) -0:331 'ballot' ( temp 4-component vector of uint) -0:332 move second child to first child ( temp 2-component vector of double) -0:332 vector swizzle ( temp 2-component vector of double) -0:332 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:332 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:332 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:332 'invocation' ( temp uint) -0:332 Constant: -0:332 3 (const int) -0:332 Sequence -0:332 Constant: -0:332 0 (const int) -0:332 Constant: -0:332 1 (const int) -0:332 subgroupPartitionedExclusiveMulNV ( global 2-component vector of double) -0:332 vector swizzle ( temp 2-component vector of double) -0:332 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:332 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:332 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:332 Constant: -0:332 1 (const int) -0:332 Constant: -0:332 3 (const int) -0:332 Sequence -0:332 Constant: -0:332 0 (const int) -0:332 Constant: -0:332 1 (const int) -0:332 'ballot' ( temp 4-component vector of uint) -0:333 move second child to first child ( temp 3-component vector of double) -0:333 vector swizzle ( temp 3-component vector of double) -0:333 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:333 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:333 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:333 'invocation' ( temp uint) -0:333 Constant: -0:333 3 (const int) -0:333 Sequence -0:333 Constant: -0:333 0 (const int) -0:333 Constant: -0:333 1 (const int) -0:333 Constant: -0:333 2 (const int) -0:333 subgroupPartitionedExclusiveMulNV ( global 3-component vector of double) -0:333 vector swizzle ( temp 3-component vector of double) -0:333 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:333 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:333 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:333 Constant: -0:333 2 (const int) -0:333 Constant: -0:333 3 (const int) -0:333 Sequence -0:333 Constant: -0:333 0 (const int) -0:333 Constant: -0:333 1 (const int) -0:333 Constant: -0:333 2 (const int) -0:333 'ballot' ( temp 4-component vector of uint) -0:334 move second child to first child ( temp 4-component vector of double) -0:334 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:334 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:334 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:334 'invocation' ( temp uint) -0:334 Constant: -0:334 3 (const int) -0:334 subgroupPartitionedExclusiveMulNV ( global 4-component vector of double) -0:334 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:334 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:334 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:334 Constant: -0:334 3 (const int) -0:334 Constant: -0:334 3 (const int) -0:334 'ballot' ( temp 4-component vector of uint) -0:336 move second child to first child ( temp float) -0:336 direct index ( temp float) -0:336 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:336 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:336 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:336 'invocation' ( temp uint) -0:336 Constant: -0:336 0 (const int) -0:336 Constant: -0:336 0 (const int) -0:336 subgroupPartitionedExclusiveMinNV ( global float) -0:336 direct index ( temp float) -0:336 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:336 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:336 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:336 Constant: -0:336 0 (const int) -0:336 Constant: -0:336 0 (const int) -0:336 Constant: -0:336 0 (const int) -0:336 'ballot' ( temp 4-component vector of uint) -0:337 move second child to first child ( temp 2-component vector of float) -0:337 vector swizzle ( temp 2-component vector of float) -0:337 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:337 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:337 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:337 'invocation' ( temp uint) -0:337 Constant: -0:337 0 (const int) -0:337 Sequence -0:337 Constant: -0:337 0 (const int) -0:337 Constant: -0:337 1 (const int) -0:337 subgroupPartitionedExclusiveMinNV ( global 2-component vector of float) -0:337 vector swizzle ( temp 2-component vector of float) -0:337 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:337 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:337 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:337 Constant: -0:337 1 (const int) -0:337 Constant: -0:337 0 (const int) -0:337 Sequence -0:337 Constant: -0:337 0 (const int) -0:337 Constant: -0:337 1 (const int) -0:337 'ballot' ( temp 4-component vector of uint) -0:338 move second child to first child ( temp 3-component vector of float) -0:338 vector swizzle ( temp 3-component vector of float) -0:338 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:338 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:338 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:338 'invocation' ( temp uint) -0:338 Constant: -0:338 0 (const int) -0:338 Sequence -0:338 Constant: -0:338 0 (const int) -0:338 Constant: -0:338 1 (const int) -0:338 Constant: -0:338 2 (const int) -0:338 subgroupPartitionedExclusiveMinNV ( global 3-component vector of float) -0:338 vector swizzle ( temp 3-component vector of float) -0:338 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:338 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:338 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:338 Constant: -0:338 2 (const int) -0:338 Constant: -0:338 0 (const int) -0:338 Sequence -0:338 Constant: -0:338 0 (const int) -0:338 Constant: -0:338 1 (const int) -0:338 Constant: -0:338 2 (const int) -0:338 'ballot' ( temp 4-component vector of uint) -0:339 move second child to first child ( temp 4-component vector of float) -0:339 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:339 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:339 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:339 'invocation' ( temp uint) -0:339 Constant: -0:339 0 (const int) -0:339 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float) -0:339 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:339 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:339 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:339 Constant: -0:339 3 (const int) -0:339 Constant: -0:339 0 (const int) -0:339 'ballot' ( temp 4-component vector of uint) -0:341 move second child to first child ( temp int) -0:341 direct index ( temp int) -0:341 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:341 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:341 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:341 'invocation' ( temp uint) -0:341 Constant: -0:341 1 (const int) -0:341 Constant: -0:341 0 (const int) -0:341 subgroupPartitionedExclusiveMinNV ( global int) -0:341 direct index ( temp int) -0:341 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:341 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:341 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:341 Constant: -0:341 0 (const int) -0:341 Constant: -0:341 1 (const int) -0:341 Constant: -0:341 0 (const int) -0:341 'ballot' ( temp 4-component vector of uint) -0:342 move second child to first child ( temp 2-component vector of int) -0:342 vector swizzle ( temp 2-component vector of int) -0:342 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:342 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:342 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:342 'invocation' ( temp uint) -0:342 Constant: -0:342 1 (const int) -0:342 Sequence -0:342 Constant: -0:342 0 (const int) -0:342 Constant: -0:342 1 (const int) -0:342 subgroupPartitionedExclusiveMinNV ( global 2-component vector of int) -0:342 vector swizzle ( temp 2-component vector of int) -0:342 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:342 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:342 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:342 Constant: -0:342 1 (const int) -0:342 Constant: -0:342 1 (const int) -0:342 Sequence -0:342 Constant: -0:342 0 (const int) -0:342 Constant: -0:342 1 (const int) -0:342 'ballot' ( temp 4-component vector of uint) -0:343 move second child to first child ( temp 3-component vector of int) -0:343 vector swizzle ( temp 3-component vector of int) -0:343 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:343 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:343 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:343 'invocation' ( temp uint) -0:343 Constant: -0:343 1 (const int) -0:343 Sequence -0:343 Constant: -0:343 0 (const int) -0:343 Constant: -0:343 1 (const int) -0:343 Constant: -0:343 2 (const int) -0:343 subgroupPartitionedExclusiveMinNV ( global 3-component vector of int) -0:343 vector swizzle ( temp 3-component vector of int) -0:343 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:343 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:343 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:343 Constant: -0:343 2 (const int) -0:343 Constant: -0:343 1 (const int) -0:343 Sequence -0:343 Constant: -0:343 0 (const int) -0:343 Constant: -0:343 1 (const int) -0:343 Constant: -0:343 2 (const int) -0:343 'ballot' ( temp 4-component vector of uint) -0:344 move second child to first child ( temp 4-component vector of int) -0:344 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:344 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:344 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:344 'invocation' ( temp uint) -0:344 Constant: -0:344 1 (const int) -0:344 subgroupPartitionedExclusiveMinNV ( global 4-component vector of int) -0:344 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:344 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:344 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:344 Constant: -0:344 3 (const int) -0:344 Constant: -0:344 1 (const int) -0:344 'ballot' ( temp 4-component vector of uint) -0:346 move second child to first child ( temp uint) -0:346 direct index ( temp uint) -0:346 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:346 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:346 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:346 'invocation' ( temp uint) -0:346 Constant: -0:346 2 (const int) -0:346 Constant: -0:346 0 (const int) -0:346 subgroupPartitionedExclusiveMinNV ( global uint) -0:346 direct index ( temp uint) -0:346 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:346 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:346 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:346 Constant: -0:346 0 (const int) -0:346 Constant: -0:346 2 (const int) -0:346 Constant: -0:346 0 (const int) -0:346 'ballot' ( temp 4-component vector of uint) -0:347 move second child to first child ( temp 2-component vector of uint) -0:347 vector swizzle ( temp 2-component vector of uint) -0:347 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:347 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:347 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:347 'invocation' ( temp uint) -0:347 Constant: -0:347 2 (const int) -0:347 Sequence -0:347 Constant: -0:347 0 (const int) -0:347 Constant: -0:347 1 (const int) -0:347 subgroupPartitionedExclusiveMinNV ( global 2-component vector of uint) -0:347 vector swizzle ( temp 2-component vector of uint) -0:347 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:347 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:347 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:347 Constant: -0:347 1 (const int) -0:347 Constant: -0:347 2 (const int) -0:347 Sequence -0:347 Constant: -0:347 0 (const int) -0:347 Constant: -0:347 1 (const int) -0:347 'ballot' ( temp 4-component vector of uint) -0:348 move second child to first child ( temp 3-component vector of uint) -0:348 vector swizzle ( temp 3-component vector of uint) -0:348 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:348 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:348 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:348 'invocation' ( temp uint) -0:348 Constant: -0:348 2 (const int) -0:348 Sequence -0:348 Constant: -0:348 0 (const int) -0:348 Constant: -0:348 1 (const int) -0:348 Constant: -0:348 2 (const int) -0:348 subgroupPartitionedExclusiveMinNV ( global 3-component vector of uint) -0:348 vector swizzle ( temp 3-component vector of uint) -0:348 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:348 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:348 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:348 Constant: -0:348 2 (const int) -0:348 Constant: -0:348 2 (const int) -0:348 Sequence -0:348 Constant: -0:348 0 (const int) -0:348 Constant: -0:348 1 (const int) -0:348 Constant: -0:348 2 (const int) -0:348 'ballot' ( temp 4-component vector of uint) -0:349 move second child to first child ( temp 4-component vector of uint) -0:349 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:349 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:349 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:349 'invocation' ( temp uint) -0:349 Constant: -0:349 2 (const int) -0:349 subgroupPartitionedExclusiveMinNV ( global 4-component vector of uint) -0:349 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:349 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:349 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:349 Constant: -0:349 3 (const int) -0:349 Constant: -0:349 2 (const int) -0:349 'ballot' ( temp 4-component vector of uint) -0:351 move second child to first child ( temp double) -0:351 direct index ( temp double) -0:351 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:351 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:351 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:351 'invocation' ( temp uint) -0:351 Constant: -0:351 3 (const int) -0:351 Constant: -0:351 0 (const int) -0:351 subgroupPartitionedExclusiveMinNV ( global double) -0:351 direct index ( temp double) -0:351 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:351 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:351 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:351 Constant: -0:351 0 (const int) -0:351 Constant: -0:351 3 (const int) -0:351 Constant: -0:351 0 (const int) -0:351 'ballot' ( temp 4-component vector of uint) -0:352 move second child to first child ( temp 2-component vector of double) -0:352 vector swizzle ( temp 2-component vector of double) -0:352 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:352 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:352 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:352 'invocation' ( temp uint) -0:352 Constant: -0:352 3 (const int) -0:352 Sequence -0:352 Constant: -0:352 0 (const int) -0:352 Constant: -0:352 1 (const int) -0:352 subgroupPartitionedExclusiveMinNV ( global 2-component vector of double) -0:352 vector swizzle ( temp 2-component vector of double) -0:352 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:352 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:352 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:352 Constant: -0:352 1 (const int) -0:352 Constant: -0:352 3 (const int) -0:352 Sequence -0:352 Constant: -0:352 0 (const int) -0:352 Constant: -0:352 1 (const int) -0:352 'ballot' ( temp 4-component vector of uint) -0:353 move second child to first child ( temp 3-component vector of double) -0:353 vector swizzle ( temp 3-component vector of double) -0:353 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:353 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:353 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:353 'invocation' ( temp uint) -0:353 Constant: -0:353 3 (const int) -0:353 Sequence -0:353 Constant: -0:353 0 (const int) -0:353 Constant: -0:353 1 (const int) -0:353 Constant: -0:353 2 (const int) -0:353 subgroupPartitionedExclusiveMinNV ( global 3-component vector of double) -0:353 vector swizzle ( temp 3-component vector of double) -0:353 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:353 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:353 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:353 Constant: -0:353 2 (const int) -0:353 Constant: -0:353 3 (const int) -0:353 Sequence -0:353 Constant: -0:353 0 (const int) -0:353 Constant: -0:353 1 (const int) -0:353 Constant: -0:353 2 (const int) -0:353 'ballot' ( temp 4-component vector of uint) -0:354 move second child to first child ( temp 4-component vector of double) -0:354 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:354 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:354 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:354 'invocation' ( temp uint) -0:354 Constant: -0:354 3 (const int) -0:354 subgroupPartitionedExclusiveMinNV ( global 4-component vector of double) -0:354 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:354 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:354 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:354 Constant: -0:354 3 (const int) -0:354 Constant: -0:354 3 (const int) -0:354 'ballot' ( temp 4-component vector of uint) -0:356 move second child to first child ( temp float) -0:356 direct index ( temp float) -0:356 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:356 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:356 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:356 'invocation' ( temp uint) -0:356 Constant: -0:356 0 (const int) -0:356 Constant: -0:356 0 (const int) -0:356 subgroupPartitionedExclusiveMaxNV ( global float) -0:356 direct index ( temp float) -0:356 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:356 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:356 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:356 Constant: -0:356 0 (const int) -0:356 Constant: -0:356 0 (const int) -0:356 Constant: -0:356 0 (const int) -0:356 'ballot' ( temp 4-component vector of uint) -0:357 move second child to first child ( temp 2-component vector of float) -0:357 vector swizzle ( temp 2-component vector of float) -0:357 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:357 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:357 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:357 'invocation' ( temp uint) -0:357 Constant: -0:357 0 (const int) -0:357 Sequence -0:357 Constant: -0:357 0 (const int) -0:357 Constant: -0:357 1 (const int) -0:357 subgroupPartitionedExclusiveMaxNV ( global 2-component vector of float) -0:357 vector swizzle ( temp 2-component vector of float) -0:357 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:357 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:357 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:357 Constant: -0:357 1 (const int) -0:357 Constant: -0:357 0 (const int) -0:357 Sequence -0:357 Constant: -0:357 0 (const int) -0:357 Constant: -0:357 1 (const int) -0:357 'ballot' ( temp 4-component vector of uint) -0:358 move second child to first child ( temp 3-component vector of float) -0:358 vector swizzle ( temp 3-component vector of float) -0:358 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:358 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:358 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:358 'invocation' ( temp uint) -0:358 Constant: -0:358 0 (const int) -0:358 Sequence -0:358 Constant: -0:358 0 (const int) -0:358 Constant: -0:358 1 (const int) -0:358 Constant: -0:358 2 (const int) -0:358 subgroupPartitionedExclusiveMaxNV ( global 3-component vector of float) -0:358 vector swizzle ( temp 3-component vector of float) -0:358 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:358 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:358 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:358 Constant: -0:358 2 (const int) -0:358 Constant: -0:358 0 (const int) -0:358 Sequence -0:358 Constant: -0:358 0 (const int) -0:358 Constant: -0:358 1 (const int) -0:358 Constant: -0:358 2 (const int) -0:358 'ballot' ( temp 4-component vector of uint) -0:359 move second child to first child ( temp 4-component vector of float) -0:359 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:359 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:359 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:359 'invocation' ( temp uint) -0:359 Constant: -0:359 0 (const int) -0:359 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float) -0:359 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:359 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:359 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:359 Constant: -0:359 3 (const int) -0:359 Constant: -0:359 0 (const int) -0:359 'ballot' ( temp 4-component vector of uint) -0:361 move second child to first child ( temp int) -0:361 direct index ( temp int) -0:361 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:361 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:361 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:361 'invocation' ( temp uint) -0:361 Constant: -0:361 1 (const int) -0:361 Constant: -0:361 0 (const int) -0:361 subgroupPartitionedExclusiveMaxNV ( global int) -0:361 direct index ( temp int) -0:361 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:361 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:361 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:361 Constant: -0:361 0 (const int) -0:361 Constant: -0:361 1 (const int) -0:361 Constant: -0:361 0 (const int) -0:361 'ballot' ( temp 4-component vector of uint) -0:362 move second child to first child ( temp 2-component vector of int) -0:362 vector swizzle ( temp 2-component vector of int) -0:362 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:362 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:362 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:362 'invocation' ( temp uint) -0:362 Constant: -0:362 1 (const int) -0:362 Sequence -0:362 Constant: -0:362 0 (const int) -0:362 Constant: -0:362 1 (const int) -0:362 subgroupPartitionedExclusiveMaxNV ( global 2-component vector of int) -0:362 vector swizzle ( temp 2-component vector of int) -0:362 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:362 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:362 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:362 Constant: -0:362 1 (const int) -0:362 Constant: -0:362 1 (const int) -0:362 Sequence -0:362 Constant: -0:362 0 (const int) -0:362 Constant: -0:362 1 (const int) -0:362 'ballot' ( temp 4-component vector of uint) -0:363 move second child to first child ( temp 3-component vector of int) -0:363 vector swizzle ( temp 3-component vector of int) -0:363 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:363 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:363 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:363 'invocation' ( temp uint) -0:363 Constant: -0:363 1 (const int) -0:363 Sequence -0:363 Constant: -0:363 0 (const int) -0:363 Constant: -0:363 1 (const int) -0:363 Constant: -0:363 2 (const int) -0:363 subgroupPartitionedExclusiveMaxNV ( global 3-component vector of int) -0:363 vector swizzle ( temp 3-component vector of int) -0:363 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:363 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:363 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:363 Constant: -0:363 2 (const int) -0:363 Constant: -0:363 1 (const int) -0:363 Sequence -0:363 Constant: -0:363 0 (const int) -0:363 Constant: -0:363 1 (const int) -0:363 Constant: -0:363 2 (const int) -0:363 'ballot' ( temp 4-component vector of uint) -0:364 move second child to first child ( temp 4-component vector of int) -0:364 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:364 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:364 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:364 'invocation' ( temp uint) -0:364 Constant: -0:364 1 (const int) -0:364 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of int) -0:364 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:364 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:364 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:364 Constant: -0:364 3 (const int) -0:364 Constant: -0:364 1 (const int) -0:364 'ballot' ( temp 4-component vector of uint) -0:366 move second child to first child ( temp uint) -0:366 direct index ( temp uint) -0:366 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:366 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:366 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:366 'invocation' ( temp uint) -0:366 Constant: -0:366 2 (const int) -0:366 Constant: -0:366 0 (const int) -0:366 subgroupPartitionedExclusiveMaxNV ( global uint) -0:366 direct index ( temp uint) -0:366 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:366 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:366 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:366 Constant: -0:366 0 (const int) -0:366 Constant: -0:366 2 (const int) -0:366 Constant: -0:366 0 (const int) -0:366 'ballot' ( temp 4-component vector of uint) -0:367 move second child to first child ( temp 2-component vector of uint) -0:367 vector swizzle ( temp 2-component vector of uint) -0:367 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:367 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:367 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:367 'invocation' ( temp uint) -0:367 Constant: -0:367 2 (const int) -0:367 Sequence -0:367 Constant: -0:367 0 (const int) -0:367 Constant: -0:367 1 (const int) -0:367 subgroupPartitionedExclusiveMaxNV ( global 2-component vector of uint) -0:367 vector swizzle ( temp 2-component vector of uint) -0:367 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:367 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:367 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:367 Constant: -0:367 1 (const int) -0:367 Constant: -0:367 2 (const int) -0:367 Sequence -0:367 Constant: -0:367 0 (const int) -0:367 Constant: -0:367 1 (const int) -0:367 'ballot' ( temp 4-component vector of uint) -0:368 move second child to first child ( temp 3-component vector of uint) -0:368 vector swizzle ( temp 3-component vector of uint) -0:368 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:368 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:368 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:368 'invocation' ( temp uint) -0:368 Constant: -0:368 2 (const int) -0:368 Sequence -0:368 Constant: -0:368 0 (const int) -0:368 Constant: -0:368 1 (const int) -0:368 Constant: -0:368 2 (const int) -0:368 subgroupPartitionedExclusiveMaxNV ( global 3-component vector of uint) -0:368 vector swizzle ( temp 3-component vector of uint) -0:368 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:368 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:368 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:368 Constant: -0:368 2 (const int) -0:368 Constant: -0:368 2 (const int) -0:368 Sequence -0:368 Constant: -0:368 0 (const int) -0:368 Constant: -0:368 1 (const int) -0:368 Constant: -0:368 2 (const int) -0:368 'ballot' ( temp 4-component vector of uint) -0:369 move second child to first child ( temp 4-component vector of uint) -0:369 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:369 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:369 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:369 'invocation' ( temp uint) -0:369 Constant: -0:369 2 (const int) -0:369 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of uint) -0:369 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:369 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:369 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:369 Constant: -0:369 3 (const int) -0:369 Constant: -0:369 2 (const int) -0:369 'ballot' ( temp 4-component vector of uint) -0:371 move second child to first child ( temp double) -0:371 direct index ( temp double) -0:371 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:371 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:371 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:371 'invocation' ( temp uint) -0:371 Constant: -0:371 3 (const int) -0:371 Constant: -0:371 0 (const int) -0:371 subgroupPartitionedExclusiveMaxNV ( global double) -0:371 direct index ( temp double) -0:371 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:371 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:371 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:371 Constant: -0:371 0 (const int) -0:371 Constant: -0:371 3 (const int) -0:371 Constant: -0:371 0 (const int) -0:371 'ballot' ( temp 4-component vector of uint) -0:372 move second child to first child ( temp 2-component vector of double) -0:372 vector swizzle ( temp 2-component vector of double) -0:372 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:372 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:372 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:372 'invocation' ( temp uint) -0:372 Constant: -0:372 3 (const int) -0:372 Sequence -0:372 Constant: -0:372 0 (const int) -0:372 Constant: -0:372 1 (const int) -0:372 subgroupPartitionedExclusiveMaxNV ( global 2-component vector of double) -0:372 vector swizzle ( temp 2-component vector of double) -0:372 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:372 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:372 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:372 Constant: -0:372 1 (const int) -0:372 Constant: -0:372 3 (const int) -0:372 Sequence -0:372 Constant: -0:372 0 (const int) -0:372 Constant: -0:372 1 (const int) -0:372 'ballot' ( temp 4-component vector of uint) -0:373 move second child to first child ( temp 3-component vector of double) -0:373 vector swizzle ( temp 3-component vector of double) -0:373 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:373 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:373 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:373 'invocation' ( temp uint) -0:373 Constant: -0:373 3 (const int) -0:373 Sequence -0:373 Constant: -0:373 0 (const int) -0:373 Constant: -0:373 1 (const int) -0:373 Constant: -0:373 2 (const int) -0:373 subgroupPartitionedExclusiveMaxNV ( global 3-component vector of double) -0:373 vector swizzle ( temp 3-component vector of double) -0:373 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:373 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:373 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:373 Constant: -0:373 2 (const int) -0:373 Constant: -0:373 3 (const int) -0:373 Sequence -0:373 Constant: -0:373 0 (const int) -0:373 Constant: -0:373 1 (const int) -0:373 Constant: -0:373 2 (const int) -0:373 'ballot' ( temp 4-component vector of uint) -0:374 move second child to first child ( temp 4-component vector of double) -0:374 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:374 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:374 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:374 'invocation' ( temp uint) -0:374 Constant: -0:374 3 (const int) -0:374 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of double) -0:374 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:374 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:374 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:374 Constant: -0:374 3 (const int) -0:374 Constant: -0:374 3 (const int) -0:374 'ballot' ( temp 4-component vector of uint) -0:376 move second child to first child ( temp int) -0:376 direct index ( temp int) -0:376 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:376 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:376 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:376 'invocation' ( temp uint) -0:376 Constant: -0:376 1 (const int) -0:376 Constant: -0:376 0 (const int) -0:376 subgroupPartitionedExclusiveAndNV ( global int) -0:376 direct index ( temp int) -0:376 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:376 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:376 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:376 Constant: -0:376 0 (const int) -0:376 Constant: -0:376 1 (const int) -0:376 Constant: -0:376 0 (const int) -0:376 'ballot' ( temp 4-component vector of uint) -0:377 move second child to first child ( temp 2-component vector of int) -0:377 vector swizzle ( temp 2-component vector of int) -0:377 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:377 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:377 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:377 'invocation' ( temp uint) -0:377 Constant: -0:377 1 (const int) -0:377 Sequence -0:377 Constant: -0:377 0 (const int) -0:377 Constant: -0:377 1 (const int) -0:377 subgroupPartitionedExclusiveAndNV ( global 2-component vector of int) -0:377 vector swizzle ( temp 2-component vector of int) -0:377 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:377 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:377 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:377 Constant: -0:377 1 (const int) -0:377 Constant: -0:377 1 (const int) -0:377 Sequence -0:377 Constant: -0:377 0 (const int) -0:377 Constant: -0:377 1 (const int) -0:377 'ballot' ( temp 4-component vector of uint) -0:378 move second child to first child ( temp 3-component vector of int) -0:378 vector swizzle ( temp 3-component vector of int) -0:378 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:378 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:378 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:378 'invocation' ( temp uint) -0:378 Constant: -0:378 1 (const int) -0:378 Sequence -0:378 Constant: -0:378 0 (const int) -0:378 Constant: -0:378 1 (const int) -0:378 Constant: -0:378 2 (const int) -0:378 subgroupPartitionedExclusiveAndNV ( global 3-component vector of int) -0:378 vector swizzle ( temp 3-component vector of int) -0:378 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:378 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:378 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:378 Constant: -0:378 2 (const int) -0:378 Constant: -0:378 1 (const int) -0:378 Sequence -0:378 Constant: -0:378 0 (const int) -0:378 Constant: -0:378 1 (const int) -0:378 Constant: -0:378 2 (const int) -0:378 'ballot' ( temp 4-component vector of uint) -0:379 move second child to first child ( temp 4-component vector of int) -0:379 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:379 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:379 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:379 'invocation' ( temp uint) -0:379 Constant: -0:379 1 (const int) -0:379 subgroupPartitionedExclusiveAndNV ( global 4-component vector of int) -0:379 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:379 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:379 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:379 Constant: -0:379 3 (const int) -0:379 Constant: -0:379 1 (const int) -0:379 'ballot' ( temp 4-component vector of uint) -0:381 move second child to first child ( temp uint) -0:381 direct index ( temp uint) -0:381 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:381 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:381 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:381 'invocation' ( temp uint) -0:381 Constant: -0:381 2 (const int) -0:381 Constant: -0:381 0 (const int) -0:381 subgroupPartitionedExclusiveAndNV ( global uint) -0:381 direct index ( temp uint) -0:381 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:381 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:381 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:381 Constant: -0:381 0 (const int) -0:381 Constant: -0:381 2 (const int) -0:381 Constant: -0:381 0 (const int) -0:381 'ballot' ( temp 4-component vector of uint) -0:382 move second child to first child ( temp 2-component vector of uint) -0:382 vector swizzle ( temp 2-component vector of uint) -0:382 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:382 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:382 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:382 'invocation' ( temp uint) -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:382 subgroupPartitionedExclusiveAndNV ( global 2-component vector of uint) -0:382 vector swizzle ( temp 2-component vector of uint) -0:382 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:382 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:382 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:382 Constant: -0:382 1 (const int) -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:382 'ballot' ( temp 4-component vector of uint) -0:383 move second child to first child ( temp 3-component vector of uint) -0:383 vector swizzle ( temp 3-component vector of uint) -0:383 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:383 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:383 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:383 'invocation' ( temp uint) -0:383 Constant: -0:383 2 (const int) -0:383 Sequence -0:383 Constant: -0:383 0 (const int) -0:383 Constant: -0:383 1 (const int) -0:383 Constant: -0:383 2 (const int) -0:383 subgroupPartitionedExclusiveAndNV ( global 3-component vector of uint) -0:383 vector swizzle ( temp 3-component vector of uint) -0:383 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:383 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:383 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:383 Constant: -0:383 2 (const int) -0:383 Constant: -0:383 2 (const int) -0:383 Sequence -0:383 Constant: -0:383 0 (const int) -0:383 Constant: -0:383 1 (const int) -0:383 Constant: -0:383 2 (const int) -0:383 'ballot' ( temp 4-component vector of uint) -0:384 move second child to first child ( temp 4-component vector of uint) -0:384 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:384 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:384 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:384 'invocation' ( temp uint) -0:384 Constant: -0:384 2 (const int) -0:384 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint) -0:384 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:384 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:384 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:384 Constant: -0:384 3 (const int) -0:384 Constant: -0:384 2 (const int) -0:384 'ballot' ( temp 4-component vector of uint) -0:386 move second child to first child ( temp int) -0:386 direct index ( temp int) -0:386 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:386 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:386 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:386 'invocation' ( temp uint) -0:386 Constant: -0:386 1 (const int) -0:386 Constant: -0:386 0 (const int) -0:386 Convert bool to int ( temp int) -0:386 subgroupPartitionedExclusiveAndNV ( global bool) -0:386 Compare Less Than ( temp bool) -0:386 direct index ( temp int) -0:386 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:386 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:386 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:386 Constant: -0:386 0 (const int) -0:386 Constant: -0:386 1 (const int) -0:386 Constant: -0:386 0 (const int) -0:386 Constant: -0:386 0 (const int) -0:386 'ballot' ( temp 4-component vector of uint) -0:387 move second child to first child ( temp 2-component vector of int) -0:387 vector swizzle ( temp 2-component vector of int) -0:387 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:387 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:387 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:387 'invocation' ( temp uint) -0:387 Constant: -0:387 1 (const int) -0:387 Sequence -0:387 Constant: -0:387 0 (const int) -0:387 Constant: -0:387 1 (const int) -0:387 Convert bool to int ( temp 2-component vector of int) -0:387 subgroupPartitionedExclusiveAndNV ( global 2-component vector of bool) -0:387 Compare Less Than ( global 2-component vector of bool) -0:387 vector swizzle ( temp 2-component vector of int) -0:387 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:387 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:387 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:387 Constant: -0:387 1 (const int) -0:387 Constant: -0:387 1 (const int) -0:387 Sequence -0:387 Constant: -0:387 0 (const int) -0:387 Constant: -0:387 1 (const int) -0:387 Constant: -0:387 0 (const int) -0:387 0 (const int) -0:387 'ballot' ( temp 4-component vector of uint) -0:388 move second child to first child ( temp 3-component vector of int) -0:388 vector swizzle ( temp 3-component vector of int) -0:388 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:388 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:388 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:388 'invocation' ( temp uint) -0:388 Constant: -0:388 1 (const int) -0:388 Sequence -0:388 Constant: -0:388 0 (const int) -0:388 Constant: -0:388 1 (const int) -0:388 Constant: -0:388 2 (const int) -0:388 Convert bool to int ( temp 3-component vector of int) -0:388 subgroupPartitionedExclusiveAndNV ( global 3-component vector of bool) -0:388 Compare Less Than ( global 3-component vector of bool) -0:388 vector swizzle ( temp 3-component vector of int) -0:388 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:388 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:388 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:388 Constant: -0:388 1 (const int) -0:388 Constant: -0:388 1 (const int) -0:388 Sequence -0:388 Constant: -0:388 0 (const int) -0:388 Constant: -0:388 1 (const int) -0:388 Constant: -0:388 2 (const int) -0:388 Constant: -0:388 0 (const int) -0:388 0 (const int) -0:388 0 (const int) -0:388 'ballot' ( temp 4-component vector of uint) -0:389 move second child to first child ( temp 4-component vector of int) -0:389 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:389 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:389 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:389 'invocation' ( temp uint) -0:389 Constant: -0:389 1 (const int) -0:389 Convert bool to int ( temp 4-component vector of int) -0:389 subgroupPartitionedExclusiveAndNV ( global 4-component vector of bool) -0:389 Compare Less Than ( global 4-component vector of bool) -0:389 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:389 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:389 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:389 Constant: -0:389 1 (const int) -0:389 Constant: -0:389 1 (const int) -0:389 Constant: -0:389 0 (const int) -0:389 0 (const int) -0:389 0 (const int) -0:389 0 (const int) -0:389 'ballot' ( temp 4-component vector of uint) -0:391 move second child to first child ( temp int) -0:391 direct index ( temp int) -0:391 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:391 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:391 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:391 'invocation' ( temp uint) -0:391 Constant: -0:391 1 (const int) -0:391 Constant: -0:391 0 (const int) -0:391 subgroupPartitionedExclusiveOrNV ( global int) -0:391 direct index ( temp int) -0:391 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:391 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:391 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:391 Constant: -0:391 0 (const int) -0:391 Constant: -0:391 1 (const int) -0:391 Constant: -0:391 0 (const int) -0:391 'ballot' ( temp 4-component vector of uint) -0:392 move second child to first child ( temp 2-component vector of int) -0:392 vector swizzle ( temp 2-component vector of int) -0:392 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:392 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:392 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:392 'invocation' ( temp uint) -0:392 Constant: -0:392 1 (const int) -0:392 Sequence -0:392 Constant: -0:392 0 (const int) -0:392 Constant: -0:392 1 (const int) -0:392 subgroupPartitionedExclusiveOrNV ( global 2-component vector of int) -0:392 vector swizzle ( temp 2-component vector of int) -0:392 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:392 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:392 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:392 Constant: -0:392 1 (const int) -0:392 Constant: -0:392 1 (const int) -0:392 Sequence -0:392 Constant: -0:392 0 (const int) -0:392 Constant: -0:392 1 (const int) -0:392 'ballot' ( temp 4-component vector of uint) -0:393 move second child to first child ( temp 3-component vector of int) -0:393 vector swizzle ( temp 3-component vector of int) -0:393 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:393 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:393 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:393 'invocation' ( temp uint) -0:393 Constant: -0:393 1 (const int) -0:393 Sequence -0:393 Constant: -0:393 0 (const int) -0:393 Constant: -0:393 1 (const int) -0:393 Constant: -0:393 2 (const int) -0:393 subgroupPartitionedExclusiveOrNV ( global 3-component vector of int) -0:393 vector swizzle ( temp 3-component vector of int) -0:393 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:393 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:393 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:393 Constant: -0:393 2 (const int) -0:393 Constant: -0:393 1 (const int) -0:393 Sequence -0:393 Constant: -0:393 0 (const int) -0:393 Constant: -0:393 1 (const int) -0:393 Constant: -0:393 2 (const int) -0:393 'ballot' ( temp 4-component vector of uint) -0:394 move second child to first child ( temp 4-component vector of int) -0:394 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:394 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:394 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:394 'invocation' ( temp uint) -0:394 Constant: -0:394 1 (const int) -0:394 subgroupPartitionedExclusiveOrNV ( global 4-component vector of int) -0:394 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:394 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:394 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:394 Constant: -0:394 3 (const int) -0:394 Constant: -0:394 1 (const int) -0:394 'ballot' ( temp 4-component vector of uint) -0:396 move second child to first child ( temp uint) -0:396 direct index ( temp uint) -0:396 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:396 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:396 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:396 'invocation' ( temp uint) -0:396 Constant: -0:396 2 (const int) -0:396 Constant: -0:396 0 (const int) -0:396 subgroupPartitionedExclusiveOrNV ( global uint) -0:396 direct index ( temp uint) -0:396 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:396 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:396 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:396 Constant: -0:396 0 (const int) -0:396 Constant: -0:396 2 (const int) -0:396 Constant: -0:396 0 (const int) -0:396 'ballot' ( temp 4-component vector of uint) -0:397 move second child to first child ( temp 2-component vector of uint) -0:397 vector swizzle ( temp 2-component vector of uint) -0:397 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:397 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:397 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:397 'invocation' ( temp uint) -0:397 Constant: -0:397 2 (const int) -0:397 Sequence -0:397 Constant: -0:397 0 (const int) -0:397 Constant: -0:397 1 (const int) -0:397 subgroupPartitionedExclusiveOrNV ( global 2-component vector of uint) -0:397 vector swizzle ( temp 2-component vector of uint) -0:397 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:397 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:397 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:397 Constant: -0:397 1 (const int) -0:397 Constant: -0:397 2 (const int) -0:397 Sequence -0:397 Constant: -0:397 0 (const int) -0:397 Constant: -0:397 1 (const int) -0:397 'ballot' ( temp 4-component vector of uint) -0:398 move second child to first child ( temp 3-component vector of uint) -0:398 vector swizzle ( temp 3-component vector of uint) -0:398 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:398 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:398 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:398 'invocation' ( temp uint) -0:398 Constant: -0:398 2 (const int) -0:398 Sequence -0:398 Constant: -0:398 0 (const int) -0:398 Constant: -0:398 1 (const int) -0:398 Constant: -0:398 2 (const int) -0:398 subgroupPartitionedExclusiveOrNV ( global 3-component vector of uint) -0:398 vector swizzle ( temp 3-component vector of uint) -0:398 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:398 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:398 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:398 Constant: -0:398 2 (const int) -0:398 Constant: -0:398 2 (const int) -0:398 Sequence -0:398 Constant: -0:398 0 (const int) -0:398 Constant: -0:398 1 (const int) -0:398 Constant: -0:398 2 (const int) -0:398 'ballot' ( temp 4-component vector of uint) -0:399 move second child to first child ( temp 4-component vector of uint) -0:399 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:399 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:399 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:399 'invocation' ( temp uint) -0:399 Constant: -0:399 2 (const int) -0:399 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint) -0:399 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:399 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:399 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:399 Constant: -0:399 3 (const int) -0:399 Constant: -0:399 2 (const int) -0:399 'ballot' ( temp 4-component vector of uint) -0:401 move second child to first child ( temp int) -0:401 direct index ( temp int) -0:401 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:401 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:401 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:401 'invocation' ( temp uint) -0:401 Constant: -0:401 1 (const int) -0:401 Constant: -0:401 0 (const int) -0:401 Convert bool to int ( temp int) -0:401 subgroupPartitionedExclusiveOrNV ( global bool) -0:401 Compare Less Than ( temp bool) -0:401 direct index ( temp int) -0:401 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:401 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:401 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:401 Constant: -0:401 0 (const int) -0:401 Constant: -0:401 1 (const int) -0:401 Constant: -0:401 0 (const int) -0:401 Constant: -0:401 0 (const int) -0:401 'ballot' ( temp 4-component vector of uint) -0:402 move second child to first child ( temp 2-component vector of int) -0:402 vector swizzle ( temp 2-component vector of int) -0:402 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:402 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:402 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:402 'invocation' ( temp uint) -0:402 Constant: -0:402 1 (const int) -0:402 Sequence -0:402 Constant: -0:402 0 (const int) -0:402 Constant: -0:402 1 (const int) -0:402 Convert bool to int ( temp 2-component vector of int) -0:402 subgroupPartitionedExclusiveOrNV ( global 2-component vector of bool) -0:402 Compare Less Than ( global 2-component vector of bool) -0:402 vector swizzle ( temp 2-component vector of int) -0:402 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:402 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:402 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:402 Constant: -0:402 1 (const int) -0:402 Constant: -0:402 1 (const int) -0:402 Sequence -0:402 Constant: -0:402 0 (const int) -0:402 Constant: -0:402 1 (const int) -0:402 Constant: -0:402 0 (const int) -0:402 0 (const int) -0:402 'ballot' ( temp 4-component vector of uint) -0:403 move second child to first child ( temp 3-component vector of int) -0:403 vector swizzle ( temp 3-component vector of int) -0:403 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:403 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:403 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:403 'invocation' ( temp uint) -0:403 Constant: -0:403 1 (const int) -0:403 Sequence -0:403 Constant: -0:403 0 (const int) -0:403 Constant: -0:403 1 (const int) -0:403 Constant: -0:403 2 (const int) -0:403 Convert bool to int ( temp 3-component vector of int) -0:403 subgroupPartitionedExclusiveOrNV ( global 3-component vector of bool) -0:403 Compare Less Than ( global 3-component vector of bool) -0:403 vector swizzle ( temp 3-component vector of int) -0:403 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:403 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:403 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:403 Constant: -0:403 1 (const int) -0:403 Constant: -0:403 1 (const int) -0:403 Sequence -0:403 Constant: -0:403 0 (const int) -0:403 Constant: -0:403 1 (const int) -0:403 Constant: -0:403 2 (const int) -0:403 Constant: -0:403 0 (const int) -0:403 0 (const int) -0:403 0 (const int) -0:403 'ballot' ( temp 4-component vector of uint) -0:404 move second child to first child ( temp 4-component vector of int) -0:404 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:404 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:404 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:404 'invocation' ( temp uint) -0:404 Constant: -0:404 1 (const int) -0:404 Convert bool to int ( temp 4-component vector of int) -0:404 subgroupPartitionedExclusiveOrNV ( global 4-component vector of bool) -0:404 Compare Less Than ( global 4-component vector of bool) -0:404 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:404 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:404 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:404 Constant: -0:404 1 (const int) -0:404 Constant: -0:404 1 (const int) -0:404 Constant: -0:404 0 (const int) -0:404 0 (const int) -0:404 0 (const int) -0:404 0 (const int) -0:404 'ballot' ( temp 4-component vector of uint) -0:406 move second child to first child ( temp int) -0:406 direct index ( temp int) -0:406 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:406 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:406 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:406 'invocation' ( temp uint) -0:406 Constant: -0:406 1 (const int) -0:406 Constant: -0:406 0 (const int) -0:406 subgroupPartitionedExclusiveXorNV ( global int) -0:406 direct index ( temp int) -0:406 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:406 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:406 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:406 Constant: -0:406 0 (const int) -0:406 Constant: -0:406 1 (const int) -0:406 Constant: -0:406 0 (const int) -0:406 'ballot' ( temp 4-component vector of uint) -0:407 move second child to first child ( temp 2-component vector of int) -0:407 vector swizzle ( temp 2-component vector of int) -0:407 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:407 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:407 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:407 'invocation' ( temp uint) -0:407 Constant: -0:407 1 (const int) -0:407 Sequence -0:407 Constant: -0:407 0 (const int) -0:407 Constant: -0:407 1 (const int) -0:407 subgroupPartitionedExclusiveXorNV ( global 2-component vector of int) -0:407 vector swizzle ( temp 2-component vector of int) -0:407 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:407 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:407 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:407 Constant: -0:407 1 (const int) -0:407 Constant: -0:407 1 (const int) -0:407 Sequence -0:407 Constant: -0:407 0 (const int) -0:407 Constant: -0:407 1 (const int) -0:407 'ballot' ( temp 4-component vector of uint) -0:408 move second child to first child ( temp 3-component vector of int) -0:408 vector swizzle ( temp 3-component vector of int) -0:408 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:408 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:408 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:408 'invocation' ( temp uint) -0:408 Constant: -0:408 1 (const int) -0:408 Sequence -0:408 Constant: -0:408 0 (const int) -0:408 Constant: -0:408 1 (const int) -0:408 Constant: -0:408 2 (const int) -0:408 subgroupPartitionedExclusiveXorNV ( global 3-component vector of int) -0:408 vector swizzle ( temp 3-component vector of int) -0:408 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:408 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:408 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:408 Constant: -0:408 2 (const int) -0:408 Constant: -0:408 1 (const int) -0:408 Sequence -0:408 Constant: -0:408 0 (const int) -0:408 Constant: -0:408 1 (const int) -0:408 Constant: -0:408 2 (const int) -0:408 'ballot' ( temp 4-component vector of uint) -0:409 move second child to first child ( temp 4-component vector of int) -0:409 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:409 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:409 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:409 'invocation' ( temp uint) -0:409 Constant: -0:409 1 (const int) -0:409 subgroupPartitionedExclusiveXorNV ( global 4-component vector of int) -0:409 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:409 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:409 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:409 Constant: -0:409 3 (const int) -0:409 Constant: -0:409 1 (const int) -0:409 'ballot' ( temp 4-component vector of uint) -0:411 move second child to first child ( temp uint) -0:411 direct index ( temp uint) -0:411 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:411 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:411 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:411 'invocation' ( temp uint) -0:411 Constant: -0:411 2 (const int) -0:411 Constant: -0:411 0 (const int) -0:411 subgroupPartitionedExclusiveXorNV ( global uint) -0:411 direct index ( temp uint) -0:411 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:411 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:411 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:411 Constant: -0:411 0 (const int) -0:411 Constant: -0:411 2 (const int) -0:411 Constant: -0:411 0 (const int) -0:411 'ballot' ( temp 4-component vector of uint) -0:412 move second child to first child ( temp 2-component vector of uint) -0:412 vector swizzle ( temp 2-component vector of uint) -0:412 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:412 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:412 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:412 'invocation' ( temp uint) -0:412 Constant: -0:412 2 (const int) -0:412 Sequence -0:412 Constant: -0:412 0 (const int) -0:412 Constant: -0:412 1 (const int) -0:412 subgroupPartitionedExclusiveXorNV ( global 2-component vector of uint) -0:412 vector swizzle ( temp 2-component vector of uint) -0:412 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:412 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:412 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:412 Constant: -0:412 1 (const int) -0:412 Constant: -0:412 2 (const int) -0:412 Sequence -0:412 Constant: -0:412 0 (const int) -0:412 Constant: -0:412 1 (const int) -0:412 'ballot' ( temp 4-component vector of uint) -0:413 move second child to first child ( temp 3-component vector of uint) -0:413 vector swizzle ( temp 3-component vector of uint) -0:413 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:413 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:413 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:413 'invocation' ( temp uint) -0:413 Constant: -0:413 2 (const int) -0:413 Sequence -0:413 Constant: -0:413 0 (const int) -0:413 Constant: -0:413 1 (const int) -0:413 Constant: -0:413 2 (const int) -0:413 subgroupPartitionedExclusiveXorNV ( global 3-component vector of uint) -0:413 vector swizzle ( temp 3-component vector of uint) -0:413 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:413 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:413 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:413 Constant: -0:413 2 (const int) -0:413 Constant: -0:413 2 (const int) -0:413 Sequence -0:413 Constant: -0:413 0 (const int) -0:413 Constant: -0:413 1 (const int) -0:413 Constant: -0:413 2 (const int) -0:413 'ballot' ( temp 4-component vector of uint) -0:414 move second child to first child ( temp 4-component vector of uint) -0:414 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:414 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:414 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:414 'invocation' ( temp uint) -0:414 Constant: -0:414 2 (const int) -0:414 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint) -0:414 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:414 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:414 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:414 Constant: -0:414 3 (const int) -0:414 Constant: -0:414 2 (const int) -0:414 'ballot' ( temp 4-component vector of uint) -0:416 move second child to first child ( temp int) -0:416 direct index ( temp int) -0:416 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:416 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:416 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:416 'invocation' ( temp uint) -0:416 Constant: -0:416 1 (const int) -0:416 Constant: -0:416 0 (const int) -0:416 Convert bool to int ( temp int) -0:416 subgroupPartitionedExclusiveXorNV ( global bool) -0:416 Compare Less Than ( temp bool) -0:416 direct index ( temp int) -0:416 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:416 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:416 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:416 Constant: -0:416 0 (const int) -0:416 Constant: -0:416 1 (const int) -0:416 Constant: -0:416 0 (const int) -0:416 Constant: -0:416 0 (const int) -0:416 'ballot' ( temp 4-component vector of uint) -0:417 move second child to first child ( temp 2-component vector of int) -0:417 vector swizzle ( temp 2-component vector of int) -0:417 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:417 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:417 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:417 'invocation' ( temp uint) -0:417 Constant: -0:417 1 (const int) -0:417 Sequence -0:417 Constant: -0:417 0 (const int) -0:417 Constant: -0:417 1 (const int) -0:417 Convert bool to int ( temp 2-component vector of int) -0:417 subgroupPartitionedExclusiveXorNV ( global 2-component vector of bool) -0:417 Compare Less Than ( global 2-component vector of bool) -0:417 vector swizzle ( temp 2-component vector of int) -0:417 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:417 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:417 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:417 Constant: -0:417 1 (const int) -0:417 Constant: -0:417 1 (const int) -0:417 Sequence -0:417 Constant: -0:417 0 (const int) -0:417 Constant: -0:417 1 (const int) -0:417 Constant: -0:417 0 (const int) -0:417 0 (const int) -0:417 'ballot' ( temp 4-component vector of uint) -0:418 move second child to first child ( temp 3-component vector of int) -0:418 vector swizzle ( temp 3-component vector of int) -0:418 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:418 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:418 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:418 'invocation' ( temp uint) -0:418 Constant: -0:418 1 (const int) -0:418 Sequence -0:418 Constant: -0:418 0 (const int) -0:418 Constant: -0:418 1 (const int) -0:418 Constant: -0:418 2 (const int) -0:418 Convert bool to int ( temp 3-component vector of int) -0:418 subgroupPartitionedExclusiveXorNV ( global 3-component vector of bool) -0:418 Compare Less Than ( global 3-component vector of bool) -0:418 vector swizzle ( temp 3-component vector of int) -0:418 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:418 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:418 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:418 Constant: -0:418 1 (const int) -0:418 Constant: -0:418 1 (const int) -0:418 Sequence -0:418 Constant: -0:418 0 (const int) -0:418 Constant: -0:418 1 (const int) -0:418 Constant: -0:418 2 (const int) -0:418 Constant: -0:418 0 (const int) -0:418 0 (const int) -0:418 0 (const int) -0:418 'ballot' ( temp 4-component vector of uint) -0:419 move second child to first child ( temp 4-component vector of int) -0:419 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:419 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:419 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:419 'invocation' ( temp uint) -0:419 Constant: -0:419 1 (const int) -0:419 Convert bool to int ( temp 4-component vector of int) -0:419 subgroupPartitionedExclusiveXorNV ( global 4-component vector of bool) -0:419 Compare Less Than ( global 4-component vector of bool) -0:419 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:419 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:419 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:419 Constant: -0:419 1 (const int) -0:419 Constant: -0:419 1 (const int) -0:419 Constant: -0:419 0 (const int) -0:419 0 (const int) -0:419 0 (const int) -0:419 0 (const int) -0:419 'ballot' ( temp 4-component vector of uint) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) - diff --git a/deps/glslang/Test/baseResults/glsl.450.subgroupQuad.comp.out b/deps/glslang/Test/baseResults/glsl.450.subgroupQuad.comp.out deleted file mode 100644 index 5e6c01ed..00000000 --- a/deps/glslang/Test/baseResults/glsl.450.subgroupQuad.comp.out +++ /dev/null @@ -1,4069 +0,0 @@ -glsl.450.subgroupQuad.comp -Shader version: 450 -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_quad -local_size = (8, 1, 1) -0:? Sequence -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 uint) -0:17 'invocation' ( temp uint) -0:17 mod ( temp uint) -0:17 add ( temp uint) -0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:17 'gl_SubgroupSize' ( in uint SubgroupSize) -0:17 Constant: -0:17 4 (const uint) -0:19 move second child to first child ( temp float) -0:19 direct index ( temp float) -0:19 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:19 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 'invocation' ( temp uint) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 subgroupQuadBroadcast ( global float) -0:19 direct index ( temp float) -0:19 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:19 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const uint) -0:20 move second child to first child ( temp 2-component vector of float) -0:20 vector swizzle ( temp 2-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:20 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 'invocation' ( temp uint) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 subgroupQuadBroadcast ( global 2-component vector of float) -0:20 vector swizzle ( temp 2-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:20 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 1 (const uint) -0:21 move second child to first child ( temp 3-component vector of float) -0:21 vector swizzle ( temp 3-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:21 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 'invocation' ( temp uint) -0:21 Constant: -0:21 0 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Constant: -0:21 2 (const int) -0:21 subgroupQuadBroadcast ( global 3-component vector of float) -0:21 vector swizzle ( temp 3-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 Constant: -0:21 2 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Constant: -0:21 2 (const int) -0:21 Constant: -0:21 1 (const uint) -0:22 move second child to first child ( temp 4-component vector of float) -0:22 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:22 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'invocation' ( temp uint) -0:22 Constant: -0:22 0 (const int) -0:22 subgroupQuadBroadcast ( global 4-component vector of float) -0:22 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:22 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 Constant: -0:22 3 (const int) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const uint) -0:24 move second child to first child ( temp int) -0:24 direct index ( temp int) -0:24 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:24 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'invocation' ( temp uint) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 0 (const int) -0:24 subgroupQuadBroadcast ( global int) -0:24 direct index ( temp int) -0:24 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const uint) -0:25 move second child to first child ( temp 2-component vector of int) -0:25 vector swizzle ( temp 2-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:25 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 'invocation' ( temp uint) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 subgroupQuadBroadcast ( global 2-component vector of int) -0:25 vector swizzle ( temp 2-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 1 (const uint) -0:26 move second child to first child ( temp 3-component vector of int) -0:26 vector swizzle ( temp 3-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:26 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'invocation' ( temp uint) -0:26 Constant: -0:26 1 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 subgroupQuadBroadcast ( global 3-component vector of int) -0:26 vector swizzle ( temp 3-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 Constant: -0:26 2 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 Constant: -0:26 1 (const uint) -0:27 move second child to first child ( temp 4-component vector of int) -0:27 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:27 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'invocation' ( temp uint) -0:27 Constant: -0:27 1 (const int) -0:27 subgroupQuadBroadcast ( global 4-component vector of int) -0:27 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:27 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 Constant: -0:27 3 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Constant: -0:27 1 (const uint) -0:29 move second child to first child ( temp uint) -0:29 direct index ( temp uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:29 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'invocation' ( temp uint) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 0 (const int) -0:29 subgroupQuadBroadcast ( global uint) -0:29 direct index ( temp uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 1 (const uint) -0:30 move second child to first child ( temp 2-component vector of uint) -0:30 vector swizzle ( temp 2-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:30 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 'invocation' ( temp uint) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 subgroupQuadBroadcast ( global 2-component vector of uint) -0:30 vector swizzle ( temp 2-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:30 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 1 (const uint) -0:31 move second child to first child ( temp 3-component vector of uint) -0:31 vector swizzle ( temp 3-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:31 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'invocation' ( temp uint) -0:31 Constant: -0:31 2 (const int) -0:31 Sequence -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 subgroupQuadBroadcast ( global 3-component vector of uint) -0:31 vector swizzle ( temp 3-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 Constant: -0:31 2 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 Sequence -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 Constant: -0:31 1 (const uint) -0:32 move second child to first child ( temp 4-component vector of uint) -0:32 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:32 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'invocation' ( temp uint) -0:32 Constant: -0:32 2 (const int) -0:32 subgroupQuadBroadcast ( global 4-component vector of uint) -0:32 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 Constant: -0:32 3 (const int) -0:32 Constant: -0:32 2 (const int) -0:32 Constant: -0:32 1 (const uint) -0:34 move second child to first child ( temp double) -0:34 direct index ( temp double) -0:34 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:34 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'invocation' ( temp uint) -0:34 Constant: -0:34 3 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 subgroupQuadBroadcast ( global double) -0:34 direct index ( temp double) -0:34 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 3 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 1 (const uint) -0:35 move second child to first child ( temp 2-component vector of double) -0:35 vector swizzle ( temp 2-component vector of double) -0:35 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:35 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 'invocation' ( temp uint) -0:35 Constant: -0:35 3 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 subgroupQuadBroadcast ( global 2-component vector of double) -0:35 vector swizzle ( temp 2-component vector of double) -0:35 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 3 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 1 (const uint) -0:36 move second child to first child ( temp 3-component vector of double) -0:36 vector swizzle ( temp 3-component vector of double) -0:36 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:36 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'invocation' ( temp uint) -0:36 Constant: -0:36 3 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 2 (const int) -0:36 subgroupQuadBroadcast ( global 3-component vector of double) -0:36 vector swizzle ( temp 3-component vector of double) -0:36 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 Constant: -0:36 2 (const int) -0:36 Constant: -0:36 3 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 2 (const int) -0:36 Constant: -0:36 1 (const uint) -0:37 move second child to first child ( temp 4-component vector of double) -0:37 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:37 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'invocation' ( temp uint) -0:37 Constant: -0:37 3 (const int) -0:37 subgroupQuadBroadcast ( global 4-component vector of double) -0:37 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:37 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 Constant: -0:37 3 (const int) -0:37 Constant: -0:37 3 (const int) -0:37 Constant: -0:37 1 (const uint) -0:39 move second child to first child ( temp int) -0:39 direct index ( temp int) -0:39 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:39 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'invocation' ( temp uint) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 Convert bool to int ( temp int) -0:39 subgroupQuadBroadcast ( global bool) -0:39 Compare Less Than ( temp bool) -0:39 direct index ( temp int) -0:39 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const uint) -0:40 move second child to first child ( temp 2-component vector of int) -0:40 vector swizzle ( temp 2-component vector of int) -0:40 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:40 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 'invocation' ( temp uint) -0:40 Constant: -0:40 1 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Convert bool to int ( temp 2-component vector of int) -0:40 subgroupQuadBroadcast ( global 2-component vector of bool) -0:40 Compare Less Than ( global 2-component vector of bool) -0:40 vector swizzle ( temp 2-component vector of int) -0:40 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 0 (const int) -0:40 Constant: -0:40 1 (const uint) -0:41 move second child to first child ( temp 3-component vector of int) -0:41 vector swizzle ( temp 3-component vector of int) -0:41 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:41 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'invocation' ( temp uint) -0:41 Constant: -0:41 1 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 2 (const int) -0:41 Convert bool to int ( temp 3-component vector of int) -0:41 subgroupQuadBroadcast ( global 3-component vector of bool) -0:41 Compare Less Than ( global 3-component vector of bool) -0:41 vector swizzle ( temp 3-component vector of int) -0:41 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 2 (const int) -0:41 Constant: -0:41 0 (const int) -0:41 0 (const int) -0:41 0 (const int) -0:41 Constant: -0:41 1 (const uint) -0:42 move second child to first child ( temp 4-component vector of int) -0:42 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:42 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'invocation' ( temp uint) -0:42 Constant: -0:42 1 (const int) -0:42 Convert bool to int ( temp 4-component vector of int) -0:42 subgroupQuadBroadcast ( global 4-component vector of bool) -0:42 Compare Less Than ( global 4-component vector of bool) -0:42 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:42 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 0 (const int) -0:42 0 (const int) -0:42 0 (const int) -0:42 0 (const int) -0:42 Constant: -0:42 1 (const uint) -0:44 move second child to first child ( temp float) -0:44 direct index ( temp float) -0:44 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:44 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'invocation' ( temp uint) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 0 (const int) -0:44 subgroupQuadSwapHorizontal ( global float) -0:44 direct index ( temp float) -0:44 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 0 (const int) -0:45 move second child to first child ( temp 2-component vector of float) -0:45 vector swizzle ( temp 2-component vector of float) -0:45 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:45 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 'invocation' ( temp uint) -0:45 Constant: -0:45 0 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 subgroupQuadSwapHorizontal ( global 2-component vector of float) -0:45 vector swizzle ( temp 2-component vector of float) -0:45 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 0 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:46 move second child to first child ( temp 3-component vector of float) -0:46 vector swizzle ( temp 3-component vector of float) -0:46 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:46 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'invocation' ( temp uint) -0:46 Constant: -0:46 0 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 subgroupQuadSwapHorizontal ( global 3-component vector of float) -0:46 vector swizzle ( temp 3-component vector of float) -0:46 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 Constant: -0:46 2 (const int) -0:46 Constant: -0:46 0 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 2 (const int) -0:47 move second child to first child ( temp 4-component vector of float) -0:47 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:47 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'invocation' ( temp uint) -0:47 Constant: -0:47 0 (const int) -0:47 subgroupQuadSwapHorizontal ( global 4-component vector of float) -0:47 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:47 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 Constant: -0:47 3 (const int) -0:47 Constant: -0:47 0 (const int) -0:49 move second child to first child ( temp int) -0:49 direct index ( temp int) -0:49 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:49 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'invocation' ( temp uint) -0:49 Constant: -0:49 1 (const int) -0:49 Constant: -0:49 0 (const int) -0:49 subgroupQuadSwapHorizontal ( global int) -0:49 direct index ( temp int) -0:49 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:49 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 1 (const int) -0:49 Constant: -0:49 0 (const int) -0:50 move second child to first child ( temp 2-component vector of int) -0:50 vector swizzle ( temp 2-component vector of int) -0:50 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:50 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 'invocation' ( temp uint) -0:50 Constant: -0:50 1 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 subgroupQuadSwapHorizontal ( global 2-component vector of int) -0:50 vector swizzle ( temp 2-component vector of int) -0:50 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:51 move second child to first child ( temp 3-component vector of int) -0:51 vector swizzle ( temp 3-component vector of int) -0:51 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:51 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'invocation' ( temp uint) -0:51 Constant: -0:51 1 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 2 (const int) -0:51 subgroupQuadSwapHorizontal ( global 3-component vector of int) -0:51 vector swizzle ( temp 3-component vector of int) -0:51 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 Constant: -0:51 2 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 2 (const int) -0:52 move second child to first child ( temp 4-component vector of int) -0:52 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:52 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'invocation' ( temp uint) -0:52 Constant: -0:52 1 (const int) -0:52 subgroupQuadSwapHorizontal ( global 4-component vector of int) -0:52 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:52 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 Constant: -0:52 3 (const int) -0:52 Constant: -0:52 1 (const int) -0:54 move second child to first child ( temp uint) -0:54 direct index ( temp uint) -0:54 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:54 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'invocation' ( temp uint) -0:54 Constant: -0:54 2 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 subgroupQuadSwapHorizontal ( global uint) -0:54 direct index ( temp uint) -0:54 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:54 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 2 (const int) -0:54 Constant: -0:54 0 (const int) -0:55 move second child to first child ( temp 2-component vector of uint) -0:55 vector swizzle ( temp 2-component vector of uint) -0:55 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:55 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 'invocation' ( temp uint) -0:55 Constant: -0:55 2 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 subgroupQuadSwapHorizontal ( global 2-component vector of uint) -0:55 vector swizzle ( temp 2-component vector of uint) -0:55 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 2 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:56 move second child to first child ( temp 3-component vector of uint) -0:56 vector swizzle ( temp 3-component vector of uint) -0:56 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:56 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'invocation' ( temp uint) -0:56 Constant: -0:56 2 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 2 (const int) -0:56 subgroupQuadSwapHorizontal ( global 3-component vector of uint) -0:56 vector swizzle ( temp 3-component vector of uint) -0:56 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 Constant: -0:56 2 (const int) -0:56 Constant: -0:56 2 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 2 (const int) -0:57 move second child to first child ( temp 4-component vector of uint) -0:57 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:57 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'invocation' ( temp uint) -0:57 Constant: -0:57 2 (const int) -0:57 subgroupQuadSwapHorizontal ( global 4-component vector of uint) -0:57 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:57 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 Constant: -0:57 3 (const int) -0:57 Constant: -0:57 2 (const int) -0:59 move second child to first child ( temp double) -0:59 direct index ( temp double) -0:59 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:59 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 'invocation' ( temp uint) -0:59 Constant: -0:59 3 (const int) -0:59 Constant: -0:59 0 (const int) -0:59 subgroupQuadSwapHorizontal ( global double) -0:59 direct index ( temp double) -0:59 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:59 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 3 (const int) -0:59 Constant: -0:59 0 (const int) -0:60 move second child to first child ( temp 2-component vector of double) -0:60 vector swizzle ( temp 2-component vector of double) -0:60 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:60 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 'invocation' ( temp uint) -0:60 Constant: -0:60 3 (const int) -0:60 Sequence -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 subgroupQuadSwapHorizontal ( global 2-component vector of double) -0:60 vector swizzle ( temp 2-component vector of double) -0:60 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:60 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 3 (const int) -0:60 Sequence -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:61 move second child to first child ( temp 3-component vector of double) -0:61 vector swizzle ( temp 3-component vector of double) -0:61 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:61 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'invocation' ( temp uint) -0:61 Constant: -0:61 3 (const int) -0:61 Sequence -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 Constant: -0:61 2 (const int) -0:61 subgroupQuadSwapHorizontal ( global 3-component vector of double) -0:61 vector swizzle ( temp 3-component vector of double) -0:61 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:61 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 Constant: -0:61 2 (const int) -0:61 Constant: -0:61 3 (const int) -0:61 Sequence -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 Constant: -0:61 2 (const int) -0:62 move second child to first child ( temp 4-component vector of double) -0:62 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:62 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'invocation' ( temp uint) -0:62 Constant: -0:62 3 (const int) -0:62 subgroupQuadSwapHorizontal ( global 4-component vector of double) -0:62 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:62 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 Constant: -0:62 3 (const int) -0:62 Constant: -0:62 3 (const int) -0:64 move second child to first child ( temp int) -0:64 direct index ( temp int) -0:64 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:64 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'invocation' ( temp uint) -0:64 Constant: -0:64 1 (const int) -0:64 Constant: -0:64 0 (const int) -0:64 Convert bool to int ( temp int) -0:64 subgroupQuadSwapHorizontal ( global bool) -0:64 Compare Less Than ( temp bool) -0:64 direct index ( temp int) -0:64 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:64 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 Constant: -0:64 0 (const int) -0:64 Constant: -0:64 1 (const int) -0:64 Constant: -0:64 0 (const int) -0:64 Constant: -0:64 0 (const int) -0:65 move second child to first child ( temp 2-component vector of int) -0:65 vector swizzle ( temp 2-component vector of int) -0:65 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:65 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 'invocation' ( temp uint) -0:65 Constant: -0:65 1 (const int) -0:65 Sequence -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Convert bool to int ( temp 2-component vector of int) -0:65 subgroupQuadSwapHorizontal ( global 2-component vector of bool) -0:65 Compare Less Than ( global 2-component vector of bool) -0:65 vector swizzle ( temp 2-component vector of int) -0:65 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:65 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 Constant: -0:65 1 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Sequence -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Constant: -0:65 0 (const int) -0:65 0 (const int) -0:66 move second child to first child ( temp 3-component vector of int) -0:66 vector swizzle ( temp 3-component vector of int) -0:66 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:66 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'invocation' ( temp uint) -0:66 Constant: -0:66 1 (const int) -0:66 Sequence -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 2 (const int) -0:66 Convert bool to int ( temp 3-component vector of int) -0:66 subgroupQuadSwapHorizontal ( global 3-component vector of bool) -0:66 Compare Less Than ( global 3-component vector of bool) -0:66 vector swizzle ( temp 3-component vector of int) -0:66 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:66 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 Sequence -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 2 (const int) -0:66 Constant: -0:66 0 (const int) -0:66 0 (const int) -0:66 0 (const int) -0:67 move second child to first child ( temp 4-component vector of int) -0:67 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:67 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'invocation' ( temp uint) -0:67 Constant: -0:67 1 (const int) -0:67 Convert bool to int ( temp 4-component vector of int) -0:67 subgroupQuadSwapHorizontal ( global 4-component vector of bool) -0:67 Compare Less Than ( global 4-component vector of bool) -0:67 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:67 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 Constant: -0:67 1 (const int) -0:67 Constant: -0:67 1 (const int) -0:67 Constant: -0:67 0 (const int) -0:67 0 (const int) -0:67 0 (const int) -0:67 0 (const int) -0:69 move second child to first child ( temp float) -0:69 direct index ( temp float) -0:69 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:69 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 'invocation' ( temp uint) -0:69 Constant: -0:69 0 (const int) -0:69 Constant: -0:69 0 (const int) -0:69 subgroupQuadSwapVertical ( global float) -0:69 direct index ( temp float) -0:69 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:69 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 Constant: -0:69 0 (const int) -0:69 Constant: -0:69 0 (const int) -0:69 Constant: -0:69 0 (const int) -0:70 move second child to first child ( temp 2-component vector of float) -0:70 vector swizzle ( temp 2-component vector of float) -0:70 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:70 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:70 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:70 'invocation' ( temp uint) -0:70 Constant: -0:70 0 (const int) -0:70 Sequence -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 1 (const int) -0:70 subgroupQuadSwapVertical ( global 2-component vector of float) -0:70 vector swizzle ( temp 2-component vector of float) -0:70 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:70 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:70 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:70 Constant: -0:70 1 (const int) -0:70 Constant: -0:70 0 (const int) -0:70 Sequence -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 1 (const int) -0:71 move second child to first child ( temp 3-component vector of float) -0:71 vector swizzle ( temp 3-component vector of float) -0:71 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:71 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:71 'invocation' ( temp uint) -0:71 Constant: -0:71 0 (const int) -0:71 Sequence -0:71 Constant: -0:71 0 (const int) -0:71 Constant: -0:71 1 (const int) -0:71 Constant: -0:71 2 (const int) -0:71 subgroupQuadSwapVertical ( global 3-component vector of float) -0:71 vector swizzle ( temp 3-component vector of float) -0:71 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:71 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:71 Constant: -0:71 2 (const int) -0:71 Constant: -0:71 0 (const int) -0:71 Sequence -0:71 Constant: -0:71 0 (const int) -0:71 Constant: -0:71 1 (const int) -0:71 Constant: -0:71 2 (const int) -0:72 move second child to first child ( temp 4-component vector of float) -0:72 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:72 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 'invocation' ( temp uint) -0:72 Constant: -0:72 0 (const int) -0:72 subgroupQuadSwapVertical ( global 4-component vector of float) -0:72 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:72 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 Constant: -0:72 3 (const int) -0:72 Constant: -0:72 0 (const int) -0:74 move second child to first child ( temp int) -0:74 direct index ( temp int) -0:74 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:74 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 'invocation' ( temp uint) -0:74 Constant: -0:74 1 (const int) -0:74 Constant: -0:74 0 (const int) -0:74 subgroupQuadSwapVertical ( global int) -0:74 direct index ( temp int) -0:74 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:74 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 Constant: -0:74 0 (const int) -0:74 Constant: -0:74 1 (const int) -0:74 Constant: -0:74 0 (const int) -0:75 move second child to first child ( temp 2-component vector of int) -0:75 vector swizzle ( temp 2-component vector of int) -0:75 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:75 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:75 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:75 'invocation' ( temp uint) -0:75 Constant: -0:75 1 (const int) -0:75 Sequence -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 1 (const int) -0:75 subgroupQuadSwapVertical ( global 2-component vector of int) -0:75 vector swizzle ( temp 2-component vector of int) -0:75 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:75 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:75 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:75 Constant: -0:75 1 (const int) -0:75 Constant: -0:75 1 (const int) -0:75 Sequence -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 1 (const int) -0:76 move second child to first child ( temp 3-component vector of int) -0:76 vector swizzle ( temp 3-component vector of int) -0:76 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:76 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 'invocation' ( temp uint) -0:76 Constant: -0:76 1 (const int) -0:76 Sequence -0:76 Constant: -0:76 0 (const int) -0:76 Constant: -0:76 1 (const int) -0:76 Constant: -0:76 2 (const int) -0:76 subgroupQuadSwapVertical ( global 3-component vector of int) -0:76 vector swizzle ( temp 3-component vector of int) -0:76 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:76 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 Constant: -0:76 2 (const int) -0:76 Constant: -0:76 1 (const int) -0:76 Sequence -0:76 Constant: -0:76 0 (const int) -0:76 Constant: -0:76 1 (const int) -0:76 Constant: -0:76 2 (const int) -0:77 move second child to first child ( temp 4-component vector of int) -0:77 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:77 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 'invocation' ( temp uint) -0:77 Constant: -0:77 1 (const int) -0:77 subgroupQuadSwapVertical ( global 4-component vector of int) -0:77 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:77 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 Constant: -0:77 3 (const int) -0:77 Constant: -0:77 1 (const int) -0:79 move second child to first child ( temp uint) -0:79 direct index ( temp uint) -0:79 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:79 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 'invocation' ( temp uint) -0:79 Constant: -0:79 2 (const int) -0:79 Constant: -0:79 0 (const int) -0:79 subgroupQuadSwapVertical ( global uint) -0:79 direct index ( temp uint) -0:79 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:79 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 2 (const int) -0:79 Constant: -0:79 0 (const int) -0:80 move second child to first child ( temp 2-component vector of uint) -0:80 vector swizzle ( temp 2-component vector of uint) -0:80 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:80 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:80 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:80 'invocation' ( temp uint) -0:80 Constant: -0:80 2 (const int) -0:80 Sequence -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 1 (const int) -0:80 subgroupQuadSwapVertical ( global 2-component vector of uint) -0:80 vector swizzle ( temp 2-component vector of uint) -0:80 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:80 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:80 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:80 Constant: -0:80 1 (const int) -0:80 Constant: -0:80 2 (const int) -0:80 Sequence -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 1 (const int) -0:81 move second child to first child ( temp 3-component vector of uint) -0:81 vector swizzle ( temp 3-component vector of uint) -0:81 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:81 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 'invocation' ( temp uint) -0:81 Constant: -0:81 2 (const int) -0:81 Sequence -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 1 (const int) -0:81 Constant: -0:81 2 (const int) -0:81 subgroupQuadSwapVertical ( global 3-component vector of uint) -0:81 vector swizzle ( temp 3-component vector of uint) -0:81 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:81 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 Constant: -0:81 2 (const int) -0:81 Constant: -0:81 2 (const int) -0:81 Sequence -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 1 (const int) -0:81 Constant: -0:81 2 (const int) -0:82 move second child to first child ( temp 4-component vector of uint) -0:82 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:82 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 'invocation' ( temp uint) -0:82 Constant: -0:82 2 (const int) -0:82 subgroupQuadSwapVertical ( global 4-component vector of uint) -0:82 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:82 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 Constant: -0:82 3 (const int) -0:82 Constant: -0:82 2 (const int) -0:84 move second child to first child ( temp double) -0:84 direct index ( temp double) -0:84 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:84 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 'invocation' ( temp uint) -0:84 Constant: -0:84 3 (const int) -0:84 Constant: -0:84 0 (const int) -0:84 subgroupQuadSwapVertical ( global double) -0:84 direct index ( temp double) -0:84 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:84 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 Constant: -0:84 0 (const int) -0:84 Constant: -0:84 3 (const int) -0:84 Constant: -0:84 0 (const int) -0:85 move second child to first child ( temp 2-component vector of double) -0:85 vector swizzle ( temp 2-component vector of double) -0:85 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:85 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:85 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:85 'invocation' ( temp uint) -0:85 Constant: -0:85 3 (const int) -0:85 Sequence -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 1 (const int) -0:85 subgroupQuadSwapVertical ( global 2-component vector of double) -0:85 vector swizzle ( temp 2-component vector of double) -0:85 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:85 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:85 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:85 Constant: -0:85 1 (const int) -0:85 Constant: -0:85 3 (const int) -0:85 Sequence -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 1 (const int) -0:86 move second child to first child ( temp 3-component vector of double) -0:86 vector swizzle ( temp 3-component vector of double) -0:86 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:86 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:86 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:86 'invocation' ( temp uint) -0:86 Constant: -0:86 3 (const int) -0:86 Sequence -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 1 (const int) -0:86 Constant: -0:86 2 (const int) -0:86 subgroupQuadSwapVertical ( global 3-component vector of double) -0:86 vector swizzle ( temp 3-component vector of double) -0:86 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:86 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:86 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:86 Constant: -0:86 2 (const int) -0:86 Constant: -0:86 3 (const int) -0:86 Sequence -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 1 (const int) -0:86 Constant: -0:86 2 (const int) -0:87 move second child to first child ( temp 4-component vector of double) -0:87 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:87 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:87 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:87 'invocation' ( temp uint) -0:87 Constant: -0:87 3 (const int) -0:87 subgroupQuadSwapVertical ( global 4-component vector of double) -0:87 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:87 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:87 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:87 Constant: -0:87 3 (const int) -0:87 Constant: -0:87 3 (const int) -0:89 move second child to first child ( temp int) -0:89 direct index ( temp int) -0:89 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:89 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:89 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:89 'invocation' ( temp uint) -0:89 Constant: -0:89 1 (const int) -0:89 Constant: -0:89 0 (const int) -0:89 Convert bool to int ( temp int) -0:89 subgroupQuadSwapVertical ( global bool) -0:89 Compare Less Than ( temp bool) -0:89 direct index ( temp int) -0:89 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:89 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:89 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:89 Constant: -0:89 0 (const int) -0:89 Constant: -0:89 1 (const int) -0:89 Constant: -0:89 0 (const int) -0:89 Constant: -0:89 0 (const int) -0:90 move second child to first child ( temp 2-component vector of int) -0:90 vector swizzle ( temp 2-component vector of int) -0:90 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:90 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:90 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:90 'invocation' ( temp uint) -0:90 Constant: -0:90 1 (const int) -0:90 Sequence -0:90 Constant: -0:90 0 (const int) -0:90 Constant: -0:90 1 (const int) -0:90 Convert bool to int ( temp 2-component vector of int) -0:90 subgroupQuadSwapVertical ( global 2-component vector of bool) -0:90 Compare Less Than ( global 2-component vector of bool) -0:90 vector swizzle ( temp 2-component vector of int) -0:90 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:90 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:90 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:90 Constant: -0:90 1 (const int) -0:90 Constant: -0:90 1 (const int) -0:90 Sequence -0:90 Constant: -0:90 0 (const int) -0:90 Constant: -0:90 1 (const int) -0:90 Constant: -0:90 0 (const int) -0:90 0 (const int) -0:91 move second child to first child ( temp 3-component vector of int) -0:91 vector swizzle ( temp 3-component vector of int) -0:91 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:91 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:91 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:91 'invocation' ( temp uint) -0:91 Constant: -0:91 1 (const int) -0:91 Sequence -0:91 Constant: -0:91 0 (const int) -0:91 Constant: -0:91 1 (const int) -0:91 Constant: -0:91 2 (const int) -0:91 Convert bool to int ( temp 3-component vector of int) -0:91 subgroupQuadSwapVertical ( global 3-component vector of bool) -0:91 Compare Less Than ( global 3-component vector of bool) -0:91 vector swizzle ( temp 3-component vector of int) -0:91 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:91 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:91 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:91 Constant: -0:91 1 (const int) -0:91 Constant: -0:91 1 (const int) -0:91 Sequence -0:91 Constant: -0:91 0 (const int) -0:91 Constant: -0:91 1 (const int) -0:91 Constant: -0:91 2 (const int) -0:91 Constant: -0:91 0 (const int) -0:91 0 (const int) -0:91 0 (const int) -0:92 move second child to first child ( temp 4-component vector of int) -0:92 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:92 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:92 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:92 'invocation' ( temp uint) -0:92 Constant: -0:92 1 (const int) -0:92 Convert bool to int ( temp 4-component vector of int) -0:92 subgroupQuadSwapVertical ( global 4-component vector of bool) -0:92 Compare Less Than ( global 4-component vector of bool) -0:92 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:92 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:92 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:92 Constant: -0:92 1 (const int) -0:92 Constant: -0:92 1 (const 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:94 move second child to first child ( temp float) -0:94 direct index ( temp float) -0:94 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:94 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:94 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:94 'invocation' ( temp uint) -0:94 Constant: -0:94 0 (const int) -0:94 Constant: -0:94 0 (const int) -0:94 subgroupQuadSwapDiagonal ( global float) -0:94 direct index ( temp float) -0:94 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:94 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:94 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:94 Constant: -0:94 0 (const int) -0:94 Constant: -0:94 0 (const int) -0:94 Constant: -0:94 0 (const int) -0:95 move second child to first child ( temp 2-component vector of float) -0:95 vector swizzle ( temp 2-component vector of float) -0:95 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:95 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:95 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:95 'invocation' ( temp uint) -0:95 Constant: -0:95 0 (const int) -0:95 Sequence -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 1 (const int) -0:95 subgroupQuadSwapDiagonal ( global 2-component vector of float) -0:95 vector swizzle ( temp 2-component vector of float) -0:95 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:95 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:95 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:95 Constant: -0:95 1 (const int) -0:95 Constant: -0:95 0 (const int) -0:95 Sequence -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 1 (const int) -0:96 move second child to first child ( temp 3-component vector of float) -0:96 vector swizzle ( temp 3-component vector of float) -0:96 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:96 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:96 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:96 'invocation' ( temp uint) -0:96 Constant: -0:96 0 (const int) -0:96 Sequence -0:96 Constant: -0:96 0 (const int) -0:96 Constant: -0:96 1 (const int) -0:96 Constant: -0:96 2 (const int) -0:96 subgroupQuadSwapDiagonal ( global 3-component vector of float) -0:96 vector swizzle ( temp 3-component vector of float) -0:96 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:96 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:96 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:96 Constant: -0:96 2 (const int) -0:96 Constant: -0:96 0 (const int) -0:96 Sequence -0:96 Constant: -0:96 0 (const int) -0:96 Constant: -0:96 1 (const int) -0:96 Constant: -0:96 2 (const int) -0:97 move second child to first child ( temp 4-component vector of float) -0:97 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:97 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:97 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:97 'invocation' ( temp uint) -0:97 Constant: -0:97 0 (const int) -0:97 subgroupQuadSwapDiagonal ( global 4-component vector of float) -0:97 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:97 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:97 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:97 Constant: -0:97 3 (const int) -0:97 Constant: -0:97 0 (const int) -0:99 move second child to first child ( temp int) -0:99 direct index ( temp int) -0:99 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:99 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:99 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:99 'invocation' ( temp uint) -0:99 Constant: -0:99 1 (const int) -0:99 Constant: -0:99 0 (const int) -0:99 subgroupQuadSwapDiagonal ( global int) -0:99 direct index ( temp int) -0:99 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:99 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:99 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:99 Constant: -0:99 0 (const int) -0:99 Constant: -0:99 1 (const int) -0:99 Constant: -0:99 0 (const int) -0:100 move second child to first child ( temp 2-component vector of int) -0:100 vector swizzle ( temp 2-component vector of int) -0:100 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:100 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:100 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:100 'invocation' ( temp uint) -0:100 Constant: -0:100 1 (const int) -0:100 Sequence -0:100 Constant: -0:100 0 (const int) -0:100 Constant: -0:100 1 (const int) -0:100 subgroupQuadSwapDiagonal ( global 2-component vector of int) -0:100 vector swizzle ( temp 2-component vector of int) -0:100 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:100 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:100 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:100 Constant: -0:100 1 (const int) -0:100 Constant: -0:100 1 (const int) -0:100 Sequence -0:100 Constant: -0:100 0 (const int) -0:100 Constant: -0:100 1 (const int) -0:101 move second child to first child ( temp 3-component vector of int) -0:101 vector swizzle ( temp 3-component vector of int) -0:101 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:101 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:101 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:101 'invocation' ( temp uint) -0:101 Constant: -0:101 1 (const int) -0:101 Sequence -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 1 (const int) -0:101 Constant: -0:101 2 (const int) -0:101 subgroupQuadSwapDiagonal ( global 3-component vector of int) -0:101 vector swizzle ( temp 3-component vector of int) -0:101 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:101 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:101 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:101 Constant: -0:101 2 (const int) -0:101 Constant: -0:101 1 (const int) -0:101 Sequence -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 1 (const int) -0:101 Constant: -0:101 2 (const int) -0:102 move second child to first child ( temp 4-component vector of int) -0:102 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:102 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:102 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:102 'invocation' ( temp uint) -0:102 Constant: -0:102 1 (const int) -0:102 subgroupQuadSwapDiagonal ( global 4-component vector of int) -0:102 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:102 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:102 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:102 Constant: -0:102 3 (const int) -0:102 Constant: -0:102 1 (const int) -0:104 move second child to first child ( temp uint) -0:104 direct index ( temp uint) -0:104 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:104 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:104 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:104 'invocation' ( temp uint) -0:104 Constant: -0:104 2 (const int) -0:104 Constant: -0:104 0 (const int) -0:104 subgroupQuadSwapDiagonal ( global uint) -0:104 direct index ( temp uint) -0:104 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:104 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:104 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:104 Constant: -0:104 0 (const int) -0:104 Constant: -0:104 2 (const int) -0:104 Constant: -0:104 0 (const int) -0:105 move second child to first child ( temp 2-component vector of uint) -0:105 vector swizzle ( temp 2-component vector of uint) -0:105 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:105 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:105 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:105 'invocation' ( temp uint) -0:105 Constant: -0:105 2 (const int) -0:105 Sequence -0:105 Constant: -0:105 0 (const int) -0:105 Constant: -0:105 1 (const int) -0:105 subgroupQuadSwapDiagonal ( global 2-component vector of uint) -0:105 vector swizzle ( temp 2-component vector of uint) -0:105 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:105 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:105 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:105 Constant: -0:105 1 (const int) -0:105 Constant: -0:105 2 (const int) -0:105 Sequence -0:105 Constant: -0:105 0 (const int) -0:105 Constant: -0:105 1 (const int) -0:106 move second child to first child ( temp 3-component vector of uint) -0:106 vector swizzle ( temp 3-component vector of uint) -0:106 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:106 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:106 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:106 'invocation' ( temp uint) -0:106 Constant: -0:106 2 (const int) -0:106 Sequence -0:106 Constant: -0:106 0 (const int) -0:106 Constant: -0:106 1 (const int) -0:106 Constant: -0:106 2 (const int) -0:106 subgroupQuadSwapDiagonal ( global 3-component vector of uint) -0:106 vector swizzle ( temp 3-component vector of uint) -0:106 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:106 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:106 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:106 Constant: -0:106 2 (const int) -0:106 Constant: -0:106 2 (const int) -0:106 Sequence -0:106 Constant: -0:106 0 (const int) -0:106 Constant: -0:106 1 (const int) -0:106 Constant: -0:106 2 (const int) -0:107 move second child to first child ( temp 4-component vector of uint) -0:107 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:107 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:107 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:107 'invocation' ( temp uint) -0:107 Constant: -0:107 2 (const int) -0:107 subgroupQuadSwapDiagonal ( global 4-component vector of uint) -0:107 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:107 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:107 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:107 Constant: -0:107 3 (const int) -0:107 Constant: -0:107 2 (const int) -0:109 move second child to first child ( temp double) -0:109 direct index ( temp double) -0:109 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:109 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:109 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:109 'invocation' ( temp uint) -0:109 Constant: -0:109 3 (const int) -0:109 Constant: -0:109 0 (const int) -0:109 subgroupQuadSwapDiagonal ( global double) -0:109 direct index ( temp double) -0:109 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:109 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:109 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:109 Constant: -0:109 0 (const int) -0:109 Constant: -0:109 3 (const int) -0:109 Constant: -0:109 0 (const int) -0:110 move second child to first child ( temp 2-component vector of double) -0:110 vector swizzle ( temp 2-component vector of double) -0:110 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:110 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:110 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:110 'invocation' ( temp uint) -0:110 Constant: -0:110 3 (const int) -0:110 Sequence -0:110 Constant: -0:110 0 (const int) -0:110 Constant: -0:110 1 (const int) -0:110 subgroupQuadSwapDiagonal ( global 2-component vector of double) -0:110 vector swizzle ( temp 2-component vector of double) -0:110 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:110 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:110 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:110 Constant: -0:110 1 (const int) -0:110 Constant: -0:110 3 (const int) -0:110 Sequence -0:110 Constant: -0:110 0 (const int) -0:110 Constant: -0:110 1 (const int) -0:111 move second child to first child ( temp 3-component vector of double) -0:111 vector swizzle ( temp 3-component vector of double) -0:111 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:111 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:111 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:111 'invocation' ( temp uint) -0:111 Constant: -0:111 3 (const int) -0:111 Sequence -0:111 Constant: -0:111 0 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 Constant: -0:111 2 (const int) -0:111 subgroupQuadSwapDiagonal ( global 3-component vector of double) -0:111 vector swizzle ( temp 3-component vector of double) -0:111 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:111 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:111 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:111 Constant: -0:111 2 (const int) -0:111 Constant: -0:111 3 (const int) -0:111 Sequence -0:111 Constant: -0:111 0 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 Constant: -0:111 2 (const int) -0:112 move second child to first child ( temp 4-component vector of double) -0:112 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:112 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:112 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:112 'invocation' ( temp uint) -0:112 Constant: -0:112 3 (const int) -0:112 subgroupQuadSwapDiagonal ( global 4-component vector of double) -0:112 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:112 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:112 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:112 Constant: -0:112 3 (const int) -0:112 Constant: -0:112 3 (const int) -0:114 move second child to first child ( temp int) -0:114 direct index ( temp int) -0:114 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:114 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:114 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:114 'invocation' ( temp uint) -0:114 Constant: -0:114 1 (const int) -0:114 Constant: -0:114 0 (const int) -0:114 Convert bool to int ( temp int) -0:114 subgroupQuadSwapDiagonal ( global bool) -0:114 Compare Less Than ( temp bool) -0:114 direct index ( temp int) -0:114 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:114 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:114 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:114 Constant: -0:114 0 (const int) -0:114 Constant: -0:114 1 (const int) -0:114 Constant: -0:114 0 (const int) -0:114 Constant: -0:114 0 (const int) -0:115 move second child to first child ( temp 2-component vector of int) -0:115 vector swizzle ( temp 2-component vector of int) -0:115 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:115 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:115 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:115 'invocation' ( temp uint) -0:115 Constant: -0:115 1 (const int) -0:115 Sequence -0:115 Constant: -0:115 0 (const int) -0:115 Constant: -0:115 1 (const int) -0:115 Convert bool to int ( temp 2-component vector of int) -0:115 subgroupQuadSwapDiagonal ( global 2-component vector of bool) -0:115 Compare Less Than ( global 2-component vector of bool) -0:115 vector swizzle ( temp 2-component vector of int) -0:115 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:115 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:115 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:115 Constant: -0:115 1 (const int) -0:115 Constant: -0:115 1 (const int) -0:115 Sequence -0:115 Constant: -0:115 0 (const int) -0:115 Constant: -0:115 1 (const int) -0:115 Constant: -0:115 0 (const int) -0:115 0 (const int) -0:116 move second child to first child ( temp 3-component vector of int) -0:116 vector swizzle ( temp 3-component vector of int) -0:116 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:116 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:116 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:116 'invocation' ( temp uint) -0:116 Constant: -0:116 1 (const int) -0:116 Sequence -0:116 Constant: -0:116 0 (const int) -0:116 Constant: -0:116 1 (const int) -0:116 Constant: -0:116 2 (const int) -0:116 Convert bool to int ( temp 3-component vector of int) -0:116 subgroupQuadSwapDiagonal ( global 3-component vector of bool) -0:116 Compare Less Than ( global 3-component vector of bool) -0:116 vector swizzle ( temp 3-component vector of int) -0:116 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:116 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:116 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:116 Constant: -0:116 1 (const int) -0:116 Constant: -0:116 1 (const int) -0:116 Sequence -0:116 Constant: -0:116 0 (const int) -0:116 Constant: -0:116 1 (const int) -0:116 Constant: -0:116 2 (const int) -0:116 Constant: -0:116 0 (const int) -0:116 0 (const int) -0:116 0 (const int) -0:117 move second child to first child ( temp 4-component vector of int) -0:117 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:117 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:117 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:117 'invocation' ( temp uint) -0:117 Constant: -0:117 1 (const int) -0:117 Convert bool to int ( temp 4-component vector of int) -0:117 subgroupQuadSwapDiagonal ( global 4-component vector of bool) -0:117 Compare Less Than ( global 4-component vector of bool) -0:117 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:117 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:117 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:117 Constant: -0:117 1 (const int) -0:117 Constant: -0:117 1 (const int) -0:117 Constant: -0:117 0 (const int) -0:117 0 (const int) -0:117 0 (const int) -0:117 0 (const int) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) - - -Linked compute stage: - - -Shader version: 450 -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_quad -local_size = (8, 1, 1) -0:? Sequence -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 uint) -0:17 'invocation' ( temp uint) -0:17 mod ( temp uint) -0:17 add ( temp uint) -0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:17 'gl_SubgroupSize' ( in uint SubgroupSize) -0:17 Constant: -0:17 4 (const uint) -0:19 move second child to first child ( temp float) -0:19 direct index ( temp float) -0:19 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:19 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 'invocation' ( temp uint) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 subgroupQuadBroadcast ( global float) -0:19 direct index ( temp float) -0:19 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:19 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const uint) -0:20 move second child to first child ( temp 2-component vector of float) -0:20 vector swizzle ( temp 2-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:20 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 'invocation' ( temp uint) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 subgroupQuadBroadcast ( global 2-component vector of float) -0:20 vector swizzle ( temp 2-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:20 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 1 (const uint) -0:21 move second child to first child ( temp 3-component vector of float) -0:21 vector swizzle ( temp 3-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:21 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 'invocation' ( temp uint) -0:21 Constant: -0:21 0 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Constant: -0:21 2 (const int) -0:21 subgroupQuadBroadcast ( global 3-component vector of float) -0:21 vector swizzle ( temp 3-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 Constant: -0:21 2 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Constant: -0:21 2 (const int) -0:21 Constant: -0:21 1 (const uint) -0:22 move second child to first child ( temp 4-component vector of float) -0:22 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:22 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'invocation' ( temp uint) -0:22 Constant: -0:22 0 (const int) -0:22 subgroupQuadBroadcast ( global 4-component vector of float) -0:22 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:22 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 Constant: -0:22 3 (const int) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const uint) -0:24 move second child to first child ( temp int) -0:24 direct index ( temp int) -0:24 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:24 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'invocation' ( temp uint) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 0 (const int) -0:24 subgroupQuadBroadcast ( global int) -0:24 direct index ( temp int) -0:24 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const uint) -0:25 move second child to first child ( temp 2-component vector of int) -0:25 vector swizzle ( temp 2-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:25 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 'invocation' ( temp uint) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 subgroupQuadBroadcast ( global 2-component vector of int) -0:25 vector swizzle ( temp 2-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 1 (const uint) -0:26 move second child to first child ( temp 3-component vector of int) -0:26 vector swizzle ( temp 3-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:26 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'invocation' ( temp uint) -0:26 Constant: -0:26 1 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 subgroupQuadBroadcast ( global 3-component vector of int) -0:26 vector swizzle ( temp 3-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 Constant: -0:26 2 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 Constant: -0:26 1 (const uint) -0:27 move second child to first child ( temp 4-component vector of int) -0:27 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:27 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'invocation' ( temp uint) -0:27 Constant: -0:27 1 (const int) -0:27 subgroupQuadBroadcast ( global 4-component vector of int) -0:27 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:27 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 Constant: -0:27 3 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Constant: -0:27 1 (const uint) -0:29 move second child to first child ( temp uint) -0:29 direct index ( temp uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:29 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'invocation' ( temp uint) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 0 (const int) -0:29 subgroupQuadBroadcast ( global uint) -0:29 direct index ( temp uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 1 (const uint) -0:30 move second child to first child ( temp 2-component vector of uint) -0:30 vector swizzle ( temp 2-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:30 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 'invocation' ( temp uint) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 subgroupQuadBroadcast ( global 2-component vector of uint) -0:30 vector swizzle ( temp 2-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:30 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 1 (const uint) -0:31 move second child to first child ( temp 3-component vector of uint) -0:31 vector swizzle ( temp 3-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:31 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'invocation' ( temp uint) -0:31 Constant: -0:31 2 (const int) -0:31 Sequence -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 subgroupQuadBroadcast ( global 3-component vector of uint) -0:31 vector swizzle ( temp 3-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 Constant: -0:31 2 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 Sequence -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 Constant: -0:31 1 (const uint) -0:32 move second child to first child ( temp 4-component vector of uint) -0:32 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:32 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'invocation' ( temp uint) -0:32 Constant: -0:32 2 (const int) -0:32 subgroupQuadBroadcast ( global 4-component vector of uint) -0:32 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 Constant: -0:32 3 (const int) -0:32 Constant: -0:32 2 (const int) -0:32 Constant: -0:32 1 (const uint) -0:34 move second child to first child ( temp double) -0:34 direct index ( temp double) -0:34 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:34 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'invocation' ( temp uint) -0:34 Constant: -0:34 3 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 subgroupQuadBroadcast ( global double) -0:34 direct index ( temp double) -0:34 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 3 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 1 (const uint) -0:35 move second child to first child ( temp 2-component vector of double) -0:35 vector swizzle ( temp 2-component vector of double) -0:35 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:35 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 'invocation' ( temp uint) -0:35 Constant: -0:35 3 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 subgroupQuadBroadcast ( global 2-component vector of double) -0:35 vector swizzle ( temp 2-component vector of double) -0:35 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 3 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 1 (const uint) -0:36 move second child to first child ( temp 3-component vector of double) -0:36 vector swizzle ( temp 3-component vector of double) -0:36 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:36 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'invocation' ( temp uint) -0:36 Constant: -0:36 3 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 2 (const int) -0:36 subgroupQuadBroadcast ( global 3-component vector of double) -0:36 vector swizzle ( temp 3-component vector of double) -0:36 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 Constant: -0:36 2 (const int) -0:36 Constant: -0:36 3 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 2 (const int) -0:36 Constant: -0:36 1 (const uint) -0:37 move second child to first child ( temp 4-component vector of double) -0:37 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:37 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'invocation' ( temp uint) -0:37 Constant: -0:37 3 (const int) -0:37 subgroupQuadBroadcast ( global 4-component vector of double) -0:37 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:37 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 Constant: -0:37 3 (const int) -0:37 Constant: -0:37 3 (const int) -0:37 Constant: -0:37 1 (const uint) -0:39 move second child to first child ( temp int) -0:39 direct index ( temp int) -0:39 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:39 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'invocation' ( temp uint) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 Convert bool to int ( temp int) -0:39 subgroupQuadBroadcast ( global bool) -0:39 Compare Less Than ( temp bool) -0:39 direct index ( temp int) -0:39 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const uint) -0:40 move second child to first child ( temp 2-component vector of int) -0:40 vector swizzle ( temp 2-component vector of int) -0:40 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:40 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 'invocation' ( temp uint) -0:40 Constant: -0:40 1 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Convert bool to int ( temp 2-component vector of int) -0:40 subgroupQuadBroadcast ( global 2-component vector of bool) -0:40 Compare Less Than ( global 2-component vector of bool) -0:40 vector swizzle ( temp 2-component vector of int) -0:40 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 0 (const int) -0:40 Constant: -0:40 1 (const uint) -0:41 move second child to first child ( temp 3-component vector of int) -0:41 vector swizzle ( temp 3-component vector of int) -0:41 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:41 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'invocation' ( temp uint) -0:41 Constant: -0:41 1 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 2 (const int) -0:41 Convert bool to int ( temp 3-component vector of int) -0:41 subgroupQuadBroadcast ( global 3-component vector of bool) -0:41 Compare Less Than ( global 3-component vector of bool) -0:41 vector swizzle ( temp 3-component vector of int) -0:41 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 2 (const int) -0:41 Constant: -0:41 0 (const int) -0:41 0 (const int) -0:41 0 (const int) -0:41 Constant: -0:41 1 (const uint) -0:42 move second child to first child ( temp 4-component vector of int) -0:42 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:42 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'invocation' ( temp uint) -0:42 Constant: -0:42 1 (const int) -0:42 Convert bool to int ( temp 4-component vector of int) -0:42 subgroupQuadBroadcast ( global 4-component vector of bool) -0:42 Compare Less Than ( global 4-component vector of bool) -0:42 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:42 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 0 (const int) -0:42 0 (const int) -0:42 0 (const int) -0:42 0 (const int) -0:42 Constant: -0:42 1 (const uint) -0:44 move second child to first child ( temp float) -0:44 direct index ( temp float) -0:44 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:44 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'invocation' ( temp uint) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 0 (const int) -0:44 subgroupQuadSwapHorizontal ( global float) -0:44 direct index ( temp float) -0:44 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 0 (const int) -0:45 move second child to first child ( temp 2-component vector of float) -0:45 vector swizzle ( temp 2-component vector of float) -0:45 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:45 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 'invocation' ( temp uint) -0:45 Constant: -0:45 0 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 subgroupQuadSwapHorizontal ( global 2-component vector of float) -0:45 vector swizzle ( temp 2-component vector of float) -0:45 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 0 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:46 move second child to first child ( temp 3-component vector of float) -0:46 vector swizzle ( temp 3-component vector of float) -0:46 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:46 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'invocation' ( temp uint) -0:46 Constant: -0:46 0 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 subgroupQuadSwapHorizontal ( global 3-component vector of float) -0:46 vector swizzle ( temp 3-component vector of float) -0:46 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 Constant: -0:46 2 (const int) -0:46 Constant: -0:46 0 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 2 (const int) -0:47 move second child to first child ( temp 4-component vector of float) -0:47 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:47 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'invocation' ( temp uint) -0:47 Constant: -0:47 0 (const int) -0:47 subgroupQuadSwapHorizontal ( global 4-component vector of float) -0:47 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:47 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 Constant: -0:47 3 (const int) -0:47 Constant: -0:47 0 (const int) -0:49 move second child to first child ( temp int) -0:49 direct index ( temp int) -0:49 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:49 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'invocation' ( temp uint) -0:49 Constant: -0:49 1 (const int) -0:49 Constant: -0:49 0 (const int) -0:49 subgroupQuadSwapHorizontal ( global int) -0:49 direct index ( temp int) -0:49 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:49 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 1 (const int) -0:49 Constant: -0:49 0 (const int) -0:50 move second child to first child ( temp 2-component vector of int) -0:50 vector swizzle ( temp 2-component vector of int) -0:50 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:50 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 'invocation' ( temp uint) -0:50 Constant: -0:50 1 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 subgroupQuadSwapHorizontal ( global 2-component vector of int) -0:50 vector swizzle ( temp 2-component vector of int) -0:50 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:51 move second child to first child ( temp 3-component vector of int) -0:51 vector swizzle ( temp 3-component vector of int) -0:51 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:51 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'invocation' ( temp uint) -0:51 Constant: -0:51 1 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 2 (const int) -0:51 subgroupQuadSwapHorizontal ( global 3-component vector of int) -0:51 vector swizzle ( temp 3-component vector of int) -0:51 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 Constant: -0:51 2 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 2 (const int) -0:52 move second child to first child ( temp 4-component vector of int) -0:52 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:52 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'invocation' ( temp uint) -0:52 Constant: -0:52 1 (const int) -0:52 subgroupQuadSwapHorizontal ( global 4-component vector of int) -0:52 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:52 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 Constant: -0:52 3 (const int) -0:52 Constant: -0:52 1 (const int) -0:54 move second child to first child ( temp uint) -0:54 direct index ( temp uint) -0:54 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:54 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'invocation' ( temp uint) -0:54 Constant: -0:54 2 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 subgroupQuadSwapHorizontal ( global uint) -0:54 direct index ( temp uint) -0:54 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:54 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 2 (const int) -0:54 Constant: -0:54 0 (const int) -0:55 move second child to first child ( temp 2-component vector of uint) -0:55 vector swizzle ( temp 2-component vector of uint) -0:55 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:55 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 'invocation' ( temp uint) -0:55 Constant: -0:55 2 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 subgroupQuadSwapHorizontal ( global 2-component vector of uint) -0:55 vector swizzle ( temp 2-component vector of uint) -0:55 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 2 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:56 move second child to first child ( temp 3-component vector of uint) -0:56 vector swizzle ( temp 3-component vector of uint) -0:56 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:56 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'invocation' ( temp uint) -0:56 Constant: -0:56 2 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 2 (const int) -0:56 subgroupQuadSwapHorizontal ( global 3-component vector of uint) -0:56 vector swizzle ( temp 3-component vector of uint) -0:56 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 Constant: -0:56 2 (const int) -0:56 Constant: -0:56 2 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 2 (const int) -0:57 move second child to first child ( temp 4-component vector of uint) -0:57 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:57 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'invocation' ( temp uint) -0:57 Constant: -0:57 2 (const int) -0:57 subgroupQuadSwapHorizontal ( global 4-component vector of uint) -0:57 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:57 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 Constant: -0:57 3 (const int) -0:57 Constant: -0:57 2 (const int) -0:59 move second child to first child ( temp double) -0:59 direct index ( temp double) -0:59 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:59 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 'invocation' ( temp uint) -0:59 Constant: -0:59 3 (const int) -0:59 Constant: -0:59 0 (const int) -0:59 subgroupQuadSwapHorizontal ( global double) -0:59 direct index ( temp double) -0:59 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:59 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 3 (const int) -0:59 Constant: -0:59 0 (const int) -0:60 move second child to first child ( temp 2-component vector of double) -0:60 vector swizzle ( temp 2-component vector of double) -0:60 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:60 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 'invocation' ( temp uint) -0:60 Constant: -0:60 3 (const int) -0:60 Sequence -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 subgroupQuadSwapHorizontal ( global 2-component vector of double) -0:60 vector swizzle ( temp 2-component vector of double) -0:60 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:60 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 3 (const int) -0:60 Sequence -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:61 move second child to first child ( temp 3-component vector of double) -0:61 vector swizzle ( temp 3-component vector of double) -0:61 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:61 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'invocation' ( temp uint) -0:61 Constant: -0:61 3 (const int) -0:61 Sequence -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 Constant: -0:61 2 (const int) -0:61 subgroupQuadSwapHorizontal ( global 3-component vector of double) -0:61 vector swizzle ( temp 3-component vector of double) -0:61 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:61 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 Constant: -0:61 2 (const int) -0:61 Constant: -0:61 3 (const int) -0:61 Sequence -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 Constant: -0:61 2 (const int) -0:62 move second child to first child ( temp 4-component vector of double) -0:62 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:62 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'invocation' ( temp uint) -0:62 Constant: -0:62 3 (const int) -0:62 subgroupQuadSwapHorizontal ( global 4-component vector of double) -0:62 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:62 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 Constant: -0:62 3 (const int) -0:62 Constant: -0:62 3 (const int) -0:64 move second child to first child ( temp int) -0:64 direct index ( temp int) -0:64 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:64 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'invocation' ( temp uint) -0:64 Constant: -0:64 1 (const int) -0:64 Constant: -0:64 0 (const int) -0:64 Convert bool to int ( temp int) -0:64 subgroupQuadSwapHorizontal ( global bool) -0:64 Compare Less Than ( temp bool) -0:64 direct index ( temp int) -0:64 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:64 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 Constant: -0:64 0 (const int) -0:64 Constant: -0:64 1 (const int) -0:64 Constant: -0:64 0 (const int) -0:64 Constant: -0:64 0 (const int) -0:65 move second child to first child ( temp 2-component vector of int) -0:65 vector swizzle ( temp 2-component vector of int) -0:65 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:65 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 'invocation' ( temp uint) -0:65 Constant: -0:65 1 (const int) -0:65 Sequence -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Convert bool to int ( temp 2-component vector of int) -0:65 subgroupQuadSwapHorizontal ( global 2-component vector of bool) -0:65 Compare Less Than ( global 2-component vector of bool) -0:65 vector swizzle ( temp 2-component vector of int) -0:65 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:65 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 Constant: -0:65 1 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Sequence -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Constant: -0:65 0 (const int) -0:65 0 (const int) -0:66 move second child to first child ( temp 3-component vector of int) -0:66 vector swizzle ( temp 3-component vector of int) -0:66 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:66 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'invocation' ( temp uint) -0:66 Constant: -0:66 1 (const int) -0:66 Sequence -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 2 (const int) -0:66 Convert bool to int ( temp 3-component vector of int) -0:66 subgroupQuadSwapHorizontal ( global 3-component vector of bool) -0:66 Compare Less Than ( global 3-component vector of bool) -0:66 vector swizzle ( temp 3-component vector of int) -0:66 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:66 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 Sequence -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 2 (const int) -0:66 Constant: -0:66 0 (const int) -0:66 0 (const int) -0:66 0 (const int) -0:67 move second child to first child ( temp 4-component vector of int) -0:67 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:67 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'invocation' ( temp uint) -0:67 Constant: -0:67 1 (const int) -0:67 Convert bool to int ( temp 4-component vector of int) -0:67 subgroupQuadSwapHorizontal ( global 4-component vector of bool) -0:67 Compare Less Than ( global 4-component vector of bool) -0:67 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:67 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 Constant: -0:67 1 (const int) -0:67 Constant: -0:67 1 (const int) -0:67 Constant: -0:67 0 (const int) -0:67 0 (const int) -0:67 0 (const int) -0:67 0 (const int) -0:69 move second child to first child ( temp float) -0:69 direct index ( temp float) -0:69 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:69 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 'invocation' ( temp uint) -0:69 Constant: -0:69 0 (const int) -0:69 Constant: -0:69 0 (const int) -0:69 subgroupQuadSwapVertical ( global float) -0:69 direct index ( temp float) -0:69 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:69 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:69 Constant: -0:69 0 (const int) -0:69 Constant: -0:69 0 (const int) -0:69 Constant: -0:69 0 (const int) -0:70 move second child to first child ( temp 2-component vector of float) -0:70 vector swizzle ( temp 2-component vector of float) -0:70 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:70 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:70 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:70 'invocation' ( temp uint) -0:70 Constant: -0:70 0 (const int) -0:70 Sequence -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 1 (const int) -0:70 subgroupQuadSwapVertical ( global 2-component vector of float) -0:70 vector swizzle ( temp 2-component vector of float) -0:70 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:70 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:70 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:70 Constant: -0:70 1 (const int) -0:70 Constant: -0:70 0 (const int) -0:70 Sequence -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 1 (const int) -0:71 move second child to first child ( temp 3-component vector of float) -0:71 vector swizzle ( temp 3-component vector of float) -0:71 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:71 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:71 'invocation' ( temp uint) -0:71 Constant: -0:71 0 (const int) -0:71 Sequence -0:71 Constant: -0:71 0 (const int) -0:71 Constant: -0:71 1 (const int) -0:71 Constant: -0:71 2 (const int) -0:71 subgroupQuadSwapVertical ( global 3-component vector of float) -0:71 vector swizzle ( temp 3-component vector of float) -0:71 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:71 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:71 Constant: -0:71 2 (const int) -0:71 Constant: -0:71 0 (const int) -0:71 Sequence -0:71 Constant: -0:71 0 (const int) -0:71 Constant: -0:71 1 (const int) -0:71 Constant: -0:71 2 (const int) -0:72 move second child to first child ( temp 4-component vector of float) -0:72 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:72 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 'invocation' ( temp uint) -0:72 Constant: -0:72 0 (const int) -0:72 subgroupQuadSwapVertical ( global 4-component vector of float) -0:72 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:72 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:72 Constant: -0:72 3 (const int) -0:72 Constant: -0:72 0 (const int) -0:74 move second child to first child ( temp int) -0:74 direct index ( temp int) -0:74 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:74 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 'invocation' ( temp uint) -0:74 Constant: -0:74 1 (const int) -0:74 Constant: -0:74 0 (const int) -0:74 subgroupQuadSwapVertical ( global int) -0:74 direct index ( temp int) -0:74 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:74 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:74 Constant: -0:74 0 (const int) -0:74 Constant: -0:74 1 (const int) -0:74 Constant: -0:74 0 (const int) -0:75 move second child to first child ( temp 2-component vector of int) -0:75 vector swizzle ( temp 2-component vector of int) -0:75 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:75 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:75 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:75 'invocation' ( temp uint) -0:75 Constant: -0:75 1 (const int) -0:75 Sequence -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 1 (const int) -0:75 subgroupQuadSwapVertical ( global 2-component vector of int) -0:75 vector swizzle ( temp 2-component vector of int) -0:75 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:75 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:75 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:75 Constant: -0:75 1 (const int) -0:75 Constant: -0:75 1 (const int) -0:75 Sequence -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 1 (const int) -0:76 move second child to first child ( temp 3-component vector of int) -0:76 vector swizzle ( temp 3-component vector of int) -0:76 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:76 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 'invocation' ( temp uint) -0:76 Constant: -0:76 1 (const int) -0:76 Sequence -0:76 Constant: -0:76 0 (const int) -0:76 Constant: -0:76 1 (const int) -0:76 Constant: -0:76 2 (const int) -0:76 subgroupQuadSwapVertical ( global 3-component vector of int) -0:76 vector swizzle ( temp 3-component vector of int) -0:76 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:76 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:76 Constant: -0:76 2 (const int) -0:76 Constant: -0:76 1 (const int) -0:76 Sequence -0:76 Constant: -0:76 0 (const int) -0:76 Constant: -0:76 1 (const int) -0:76 Constant: -0:76 2 (const int) -0:77 move second child to first child ( temp 4-component vector of int) -0:77 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:77 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 'invocation' ( temp uint) -0:77 Constant: -0:77 1 (const int) -0:77 subgroupQuadSwapVertical ( global 4-component vector of int) -0:77 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:77 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:77 Constant: -0:77 3 (const int) -0:77 Constant: -0:77 1 (const int) -0:79 move second child to first child ( temp uint) -0:79 direct index ( temp uint) -0:79 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:79 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 'invocation' ( temp uint) -0:79 Constant: -0:79 2 (const int) -0:79 Constant: -0:79 0 (const int) -0:79 subgroupQuadSwapVertical ( global uint) -0:79 direct index ( temp uint) -0:79 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:79 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 2 (const int) -0:79 Constant: -0:79 0 (const int) -0:80 move second child to first child ( temp 2-component vector of uint) -0:80 vector swizzle ( temp 2-component vector of uint) -0:80 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:80 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:80 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:80 'invocation' ( temp uint) -0:80 Constant: -0:80 2 (const int) -0:80 Sequence -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 1 (const int) -0:80 subgroupQuadSwapVertical ( global 2-component vector of uint) -0:80 vector swizzle ( temp 2-component vector of uint) -0:80 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:80 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:80 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:80 Constant: -0:80 1 (const int) -0:80 Constant: -0:80 2 (const int) -0:80 Sequence -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 1 (const int) -0:81 move second child to first child ( temp 3-component vector of uint) -0:81 vector swizzle ( temp 3-component vector of uint) -0:81 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:81 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 'invocation' ( temp uint) -0:81 Constant: -0:81 2 (const int) -0:81 Sequence -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 1 (const int) -0:81 Constant: -0:81 2 (const int) -0:81 subgroupQuadSwapVertical ( global 3-component vector of uint) -0:81 vector swizzle ( temp 3-component vector of uint) -0:81 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:81 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:81 Constant: -0:81 2 (const int) -0:81 Constant: -0:81 2 (const int) -0:81 Sequence -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 1 (const int) -0:81 Constant: -0:81 2 (const int) -0:82 move second child to first child ( temp 4-component vector of uint) -0:82 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:82 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 'invocation' ( temp uint) -0:82 Constant: -0:82 2 (const int) -0:82 subgroupQuadSwapVertical ( global 4-component vector of uint) -0:82 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:82 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:82 Constant: -0:82 3 (const int) -0:82 Constant: -0:82 2 (const int) -0:84 move second child to first child ( temp double) -0:84 direct index ( temp double) -0:84 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:84 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 'invocation' ( temp uint) -0:84 Constant: -0:84 3 (const int) -0:84 Constant: -0:84 0 (const int) -0:84 subgroupQuadSwapVertical ( global double) -0:84 direct index ( temp double) -0:84 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:84 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:84 Constant: -0:84 0 (const int) -0:84 Constant: -0:84 3 (const int) -0:84 Constant: -0:84 0 (const int) -0:85 move second child to first child ( temp 2-component vector of double) -0:85 vector swizzle ( temp 2-component vector of double) -0:85 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:85 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:85 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:85 'invocation' ( temp uint) -0:85 Constant: -0:85 3 (const int) -0:85 Sequence -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 1 (const int) -0:85 subgroupQuadSwapVertical ( global 2-component vector of double) -0:85 vector swizzle ( temp 2-component vector of double) -0:85 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:85 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:85 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:85 Constant: -0:85 1 (const int) -0:85 Constant: -0:85 3 (const int) -0:85 Sequence -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 1 (const int) -0:86 move second child to first child ( temp 3-component vector of double) -0:86 vector swizzle ( temp 3-component vector of double) -0:86 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:86 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:86 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:86 'invocation' ( temp uint) -0:86 Constant: -0:86 3 (const int) -0:86 Sequence -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 1 (const int) -0:86 Constant: -0:86 2 (const int) -0:86 subgroupQuadSwapVertical ( global 3-component vector of double) -0:86 vector swizzle ( temp 3-component vector of double) -0:86 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:86 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:86 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:86 Constant: -0:86 2 (const int) -0:86 Constant: -0:86 3 (const int) -0:86 Sequence -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 1 (const int) -0:86 Constant: -0:86 2 (const int) -0:87 move second child to first child ( temp 4-component vector of double) -0:87 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:87 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:87 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:87 'invocation' ( temp uint) -0:87 Constant: -0:87 3 (const int) -0:87 subgroupQuadSwapVertical ( global 4-component vector of double) -0:87 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:87 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:87 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:87 Constant: -0:87 3 (const int) -0:87 Constant: -0:87 3 (const int) -0:89 move second child to first child ( temp int) -0:89 direct index ( temp int) -0:89 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:89 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:89 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:89 'invocation' ( temp uint) -0:89 Constant: -0:89 1 (const int) -0:89 Constant: -0:89 0 (const int) -0:89 Convert bool to int ( temp int) -0:89 subgroupQuadSwapVertical ( global bool) -0:89 Compare Less Than ( temp bool) -0:89 direct index ( temp int) -0:89 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:89 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:89 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:89 Constant: -0:89 0 (const int) -0:89 Constant: -0:89 1 (const int) -0:89 Constant: -0:89 0 (const int) -0:89 Constant: -0:89 0 (const int) -0:90 move second child to first child ( temp 2-component vector of int) -0:90 vector swizzle ( temp 2-component vector of int) -0:90 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:90 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:90 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:90 'invocation' ( temp uint) -0:90 Constant: -0:90 1 (const int) -0:90 Sequence -0:90 Constant: -0:90 0 (const int) -0:90 Constant: -0:90 1 (const int) -0:90 Convert bool to int ( temp 2-component vector of int) -0:90 subgroupQuadSwapVertical ( global 2-component vector of bool) -0:90 Compare Less Than ( global 2-component vector of bool) -0:90 vector swizzle ( temp 2-component vector of int) -0:90 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:90 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:90 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:90 Constant: -0:90 1 (const int) -0:90 Constant: -0:90 1 (const int) -0:90 Sequence -0:90 Constant: -0:90 0 (const int) -0:90 Constant: -0:90 1 (const int) -0:90 Constant: -0:90 0 (const int) -0:90 0 (const int) -0:91 move second child to first child ( temp 3-component vector of int) -0:91 vector swizzle ( temp 3-component vector of int) -0:91 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:91 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:91 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:91 'invocation' ( temp uint) -0:91 Constant: -0:91 1 (const int) -0:91 Sequence -0:91 Constant: -0:91 0 (const int) -0:91 Constant: -0:91 1 (const int) -0:91 Constant: -0:91 2 (const int) -0:91 Convert bool to int ( temp 3-component vector of int) -0:91 subgroupQuadSwapVertical ( global 3-component vector of bool) -0:91 Compare Less Than ( global 3-component vector of bool) -0:91 vector swizzle ( temp 3-component vector of int) -0:91 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:91 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:91 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:91 Constant: -0:91 1 (const int) -0:91 Constant: -0:91 1 (const int) -0:91 Sequence -0:91 Constant: -0:91 0 (const int) -0:91 Constant: -0:91 1 (const int) -0:91 Constant: -0:91 2 (const int) -0:91 Constant: -0:91 0 (const int) -0:91 0 (const int) -0:91 0 (const int) -0:92 move second child to first child ( temp 4-component vector of int) -0:92 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:92 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:92 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:92 'invocation' ( temp uint) -0:92 Constant: -0:92 1 (const int) -0:92 Convert bool to int ( temp 4-component vector of int) -0:92 subgroupQuadSwapVertical ( global 4-component vector of bool) -0:92 Compare Less Than ( global 4-component vector of bool) -0:92 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:92 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:92 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:92 Constant: -0:92 1 (const int) -0:92 Constant: -0:92 1 (const 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:94 move second child to first child ( temp float) -0:94 direct index ( temp float) -0:94 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:94 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:94 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:94 'invocation' ( temp uint) -0:94 Constant: -0:94 0 (const int) -0:94 Constant: -0:94 0 (const int) -0:94 subgroupQuadSwapDiagonal ( global float) -0:94 direct index ( temp float) -0:94 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:94 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:94 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:94 Constant: -0:94 0 (const int) -0:94 Constant: -0:94 0 (const int) -0:94 Constant: -0:94 0 (const int) -0:95 move second child to first child ( temp 2-component vector of float) -0:95 vector swizzle ( temp 2-component vector of float) -0:95 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:95 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:95 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:95 'invocation' ( temp uint) -0:95 Constant: -0:95 0 (const int) -0:95 Sequence -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 1 (const int) -0:95 subgroupQuadSwapDiagonal ( global 2-component vector of float) -0:95 vector swizzle ( temp 2-component vector of float) -0:95 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:95 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:95 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:95 Constant: -0:95 1 (const int) -0:95 Constant: -0:95 0 (const int) -0:95 Sequence -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 1 (const int) -0:96 move second child to first child ( temp 3-component vector of float) -0:96 vector swizzle ( temp 3-component vector of float) -0:96 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:96 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:96 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:96 'invocation' ( temp uint) -0:96 Constant: -0:96 0 (const int) -0:96 Sequence -0:96 Constant: -0:96 0 (const int) -0:96 Constant: -0:96 1 (const int) -0:96 Constant: -0:96 2 (const int) -0:96 subgroupQuadSwapDiagonal ( global 3-component vector of float) -0:96 vector swizzle ( temp 3-component vector of float) -0:96 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:96 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:96 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:96 Constant: -0:96 2 (const int) -0:96 Constant: -0:96 0 (const int) -0:96 Sequence -0:96 Constant: -0:96 0 (const int) -0:96 Constant: -0:96 1 (const int) -0:96 Constant: -0:96 2 (const int) -0:97 move second child to first child ( temp 4-component vector of float) -0:97 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:97 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:97 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:97 'invocation' ( temp uint) -0:97 Constant: -0:97 0 (const int) -0:97 subgroupQuadSwapDiagonal ( global 4-component vector of float) -0:97 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:97 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:97 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:97 Constant: -0:97 3 (const int) -0:97 Constant: -0:97 0 (const int) -0:99 move second child to first child ( temp int) -0:99 direct index ( temp int) -0:99 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:99 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:99 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:99 'invocation' ( temp uint) -0:99 Constant: -0:99 1 (const int) -0:99 Constant: -0:99 0 (const int) -0:99 subgroupQuadSwapDiagonal ( global int) -0:99 direct index ( temp int) -0:99 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:99 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:99 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:99 Constant: -0:99 0 (const int) -0:99 Constant: -0:99 1 (const int) -0:99 Constant: -0:99 0 (const int) -0:100 move second child to first child ( temp 2-component vector of int) -0:100 vector swizzle ( temp 2-component vector of int) -0:100 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:100 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:100 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:100 'invocation' ( temp uint) -0:100 Constant: -0:100 1 (const int) -0:100 Sequence -0:100 Constant: -0:100 0 (const int) -0:100 Constant: -0:100 1 (const int) -0:100 subgroupQuadSwapDiagonal ( global 2-component vector of int) -0:100 vector swizzle ( temp 2-component vector of int) -0:100 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:100 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:100 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:100 Constant: -0:100 1 (const int) -0:100 Constant: -0:100 1 (const int) -0:100 Sequence -0:100 Constant: -0:100 0 (const int) -0:100 Constant: -0:100 1 (const int) -0:101 move second child to first child ( temp 3-component vector of int) -0:101 vector swizzle ( temp 3-component vector of int) -0:101 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:101 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:101 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:101 'invocation' ( temp uint) -0:101 Constant: -0:101 1 (const int) -0:101 Sequence -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 1 (const int) -0:101 Constant: -0:101 2 (const int) -0:101 subgroupQuadSwapDiagonal ( global 3-component vector of int) -0:101 vector swizzle ( temp 3-component vector of int) -0:101 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:101 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:101 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:101 Constant: -0:101 2 (const int) -0:101 Constant: -0:101 1 (const int) -0:101 Sequence -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 1 (const int) -0:101 Constant: -0:101 2 (const int) -0:102 move second child to first child ( temp 4-component vector of int) -0:102 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:102 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:102 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:102 'invocation' ( temp uint) -0:102 Constant: -0:102 1 (const int) -0:102 subgroupQuadSwapDiagonal ( global 4-component vector of int) -0:102 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:102 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:102 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:102 Constant: -0:102 3 (const int) -0:102 Constant: -0:102 1 (const int) -0:104 move second child to first child ( temp uint) -0:104 direct index ( temp uint) -0:104 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:104 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:104 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:104 'invocation' ( temp uint) -0:104 Constant: -0:104 2 (const int) -0:104 Constant: -0:104 0 (const int) -0:104 subgroupQuadSwapDiagonal ( global uint) -0:104 direct index ( temp uint) -0:104 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:104 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:104 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:104 Constant: -0:104 0 (const int) -0:104 Constant: -0:104 2 (const int) -0:104 Constant: -0:104 0 (const int) -0:105 move second child to first child ( temp 2-component vector of uint) -0:105 vector swizzle ( temp 2-component vector of uint) -0:105 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:105 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:105 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:105 'invocation' ( temp uint) -0:105 Constant: -0:105 2 (const int) -0:105 Sequence -0:105 Constant: -0:105 0 (const int) -0:105 Constant: -0:105 1 (const int) -0:105 subgroupQuadSwapDiagonal ( global 2-component vector of uint) -0:105 vector swizzle ( temp 2-component vector of uint) -0:105 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:105 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:105 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:105 Constant: -0:105 1 (const int) -0:105 Constant: -0:105 2 (const int) -0:105 Sequence -0:105 Constant: -0:105 0 (const int) -0:105 Constant: -0:105 1 (const int) -0:106 move second child to first child ( temp 3-component vector of uint) -0:106 vector swizzle ( temp 3-component vector of uint) -0:106 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:106 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:106 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:106 'invocation' ( temp uint) -0:106 Constant: -0:106 2 (const int) -0:106 Sequence -0:106 Constant: -0:106 0 (const int) -0:106 Constant: -0:106 1 (const int) -0:106 Constant: -0:106 2 (const int) -0:106 subgroupQuadSwapDiagonal ( global 3-component vector of uint) -0:106 vector swizzle ( temp 3-component vector of uint) -0:106 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:106 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:106 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:106 Constant: -0:106 2 (const int) -0:106 Constant: -0:106 2 (const int) -0:106 Sequence -0:106 Constant: -0:106 0 (const int) -0:106 Constant: -0:106 1 (const int) -0:106 Constant: -0:106 2 (const int) -0:107 move second child to first child ( temp 4-component vector of uint) -0:107 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:107 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:107 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:107 'invocation' ( temp uint) -0:107 Constant: -0:107 2 (const int) -0:107 subgroupQuadSwapDiagonal ( global 4-component vector of uint) -0:107 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:107 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:107 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:107 Constant: -0:107 3 (const int) -0:107 Constant: -0:107 2 (const int) -0:109 move second child to first child ( temp double) -0:109 direct index ( temp double) -0:109 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:109 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:109 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:109 'invocation' ( temp uint) -0:109 Constant: -0:109 3 (const int) -0:109 Constant: -0:109 0 (const int) -0:109 subgroupQuadSwapDiagonal ( global double) -0:109 direct index ( temp double) -0:109 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:109 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:109 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:109 Constant: -0:109 0 (const int) -0:109 Constant: -0:109 3 (const int) -0:109 Constant: -0:109 0 (const int) -0:110 move second child to first child ( temp 2-component vector of double) -0:110 vector swizzle ( temp 2-component vector of double) -0:110 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:110 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:110 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:110 'invocation' ( temp uint) -0:110 Constant: -0:110 3 (const int) -0:110 Sequence -0:110 Constant: -0:110 0 (const int) -0:110 Constant: -0:110 1 (const int) -0:110 subgroupQuadSwapDiagonal ( global 2-component vector of double) -0:110 vector swizzle ( temp 2-component vector of double) -0:110 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:110 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:110 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:110 Constant: -0:110 1 (const int) -0:110 Constant: -0:110 3 (const int) -0:110 Sequence -0:110 Constant: -0:110 0 (const int) -0:110 Constant: -0:110 1 (const int) -0:111 move second child to first child ( temp 3-component vector of double) -0:111 vector swizzle ( temp 3-component vector of double) -0:111 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:111 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:111 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:111 'invocation' ( temp uint) -0:111 Constant: -0:111 3 (const int) -0:111 Sequence -0:111 Constant: -0:111 0 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 Constant: -0:111 2 (const int) -0:111 subgroupQuadSwapDiagonal ( global 3-component vector of double) -0:111 vector swizzle ( temp 3-component vector of double) -0:111 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:111 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:111 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:111 Constant: -0:111 2 (const int) -0:111 Constant: -0:111 3 (const int) -0:111 Sequence -0:111 Constant: -0:111 0 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 Constant: -0:111 2 (const int) -0:112 move second child to first child ( temp 4-component vector of double) -0:112 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:112 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:112 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:112 'invocation' ( temp uint) -0:112 Constant: -0:112 3 (const int) -0:112 subgroupQuadSwapDiagonal ( global 4-component vector of double) -0:112 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:112 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:112 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:112 Constant: -0:112 3 (const int) -0:112 Constant: -0:112 3 (const int) -0:114 move second child to first child ( temp int) -0:114 direct index ( temp int) -0:114 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:114 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:114 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:114 'invocation' ( temp uint) -0:114 Constant: -0:114 1 (const int) -0:114 Constant: -0:114 0 (const int) -0:114 Convert bool to int ( temp int) -0:114 subgroupQuadSwapDiagonal ( global bool) -0:114 Compare Less Than ( temp bool) -0:114 direct index ( temp int) -0:114 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:114 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:114 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:114 Constant: -0:114 0 (const int) -0:114 Constant: -0:114 1 (const int) -0:114 Constant: -0:114 0 (const int) -0:114 Constant: -0:114 0 (const int) -0:115 move second child to first child ( temp 2-component vector of int) -0:115 vector swizzle ( temp 2-component vector of int) -0:115 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:115 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:115 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:115 'invocation' ( temp uint) -0:115 Constant: -0:115 1 (const int) -0:115 Sequence -0:115 Constant: -0:115 0 (const int) -0:115 Constant: -0:115 1 (const int) -0:115 Convert bool to int ( temp 2-component vector of int) -0:115 subgroupQuadSwapDiagonal ( global 2-component vector of bool) -0:115 Compare Less Than ( global 2-component vector of bool) -0:115 vector swizzle ( temp 2-component vector of int) -0:115 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:115 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:115 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:115 Constant: -0:115 1 (const int) -0:115 Constant: -0:115 1 (const int) -0:115 Sequence -0:115 Constant: -0:115 0 (const int) -0:115 Constant: -0:115 1 (const int) -0:115 Constant: -0:115 0 (const int) -0:115 0 (const int) -0:116 move second child to first child ( temp 3-component vector of int) -0:116 vector swizzle ( temp 3-component vector of int) -0:116 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:116 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:116 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:116 'invocation' ( temp uint) -0:116 Constant: -0:116 1 (const int) -0:116 Sequence -0:116 Constant: -0:116 0 (const int) -0:116 Constant: -0:116 1 (const int) -0:116 Constant: -0:116 2 (const int) -0:116 Convert bool to int ( temp 3-component vector of int) -0:116 subgroupQuadSwapDiagonal ( global 3-component vector of bool) -0:116 Compare Less Than ( global 3-component vector of bool) -0:116 vector swizzle ( temp 3-component vector of int) -0:116 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:116 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:116 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:116 Constant: -0:116 1 (const int) -0:116 Constant: -0:116 1 (const int) -0:116 Sequence -0:116 Constant: -0:116 0 (const int) -0:116 Constant: -0:116 1 (const int) -0:116 Constant: -0:116 2 (const int) -0:116 Constant: -0:116 0 (const int) -0:116 0 (const int) -0:116 0 (const int) -0:117 move second child to first child ( temp 4-component vector of int) -0:117 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:117 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:117 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:117 'invocation' ( temp uint) -0:117 Constant: -0:117 1 (const int) -0:117 Convert bool to int ( temp 4-component vector of int) -0:117 subgroupQuadSwapDiagonal ( global 4-component vector of bool) -0:117 Compare Less Than ( global 4-component vector of bool) -0:117 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:117 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:117 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:117 Constant: -0:117 1 (const int) -0:117 Constant: -0:117 1 (const int) -0:117 Constant: -0:117 0 (const int) -0:117 0 (const int) -0:117 0 (const int) -0:117 0 (const int) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) - diff --git a/deps/glslang/Test/baseResults/glsl.450.subgroupShuffle.comp.out b/deps/glslang/Test/baseResults/glsl.450.subgroupShuffle.comp.out deleted file mode 100644 index d0384d05..00000000 --- a/deps/glslang/Test/baseResults/glsl.450.subgroupShuffle.comp.out +++ /dev/null @@ -1,2101 +0,0 @@ -glsl.450.subgroupShuffle.comp -Shader version: 450 -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_shuffle -local_size = (8, 8, 1) -0:? Sequence -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 uint) -0:17 'invocation' ( temp uint) -0:17 mod ( temp uint) -0:17 add ( temp uint) -0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:17 'gl_SubgroupSize' ( in uint SubgroupSize) -0:17 Constant: -0:17 4 (const uint) -0:19 move second child to first child ( temp float) -0:19 direct index ( temp float) -0:19 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:19 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 'invocation' ( temp uint) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 subgroupShuffle ( global float) -0:19 direct index ( temp float) -0:19 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:19 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 'invocation' ( temp uint) -0:20 move second child to first child ( temp 2-component vector of float) -0:20 vector swizzle ( temp 2-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:20 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 'invocation' ( temp uint) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 subgroupShuffle ( global 2-component vector of float) -0:20 vector swizzle ( temp 2-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:20 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 'invocation' ( temp uint) -0:21 move second child to first child ( temp 3-component vector of float) -0:21 vector swizzle ( temp 3-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:21 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 'invocation' ( temp uint) -0:21 Constant: -0:21 0 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Constant: -0:21 2 (const int) -0:21 subgroupShuffle ( global 3-component vector of float) -0:21 vector swizzle ( temp 3-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 Constant: -0:21 2 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Constant: -0:21 2 (const int) -0:21 'invocation' ( temp uint) -0:22 move second child to first child ( temp 4-component vector of float) -0:22 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:22 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'invocation' ( temp uint) -0:22 Constant: -0:22 0 (const int) -0:22 subgroupShuffle ( global 4-component vector of float) -0:22 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:22 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 Constant: -0:22 3 (const int) -0:22 Constant: -0:22 0 (const int) -0:22 'invocation' ( temp uint) -0:24 move second child to first child ( temp int) -0:24 direct index ( temp int) -0:24 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:24 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'invocation' ( temp uint) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 0 (const int) -0:24 subgroupShuffle ( global int) -0:24 direct index ( temp int) -0:24 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 0 (const int) -0:24 'invocation' ( temp uint) -0:25 move second child to first child ( temp 2-component vector of int) -0:25 vector swizzle ( temp 2-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:25 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 'invocation' ( temp uint) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 subgroupShuffle ( global 2-component vector of int) -0:25 vector swizzle ( temp 2-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 'invocation' ( temp uint) -0:26 move second child to first child ( temp 3-component vector of int) -0:26 vector swizzle ( temp 3-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:26 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'invocation' ( temp uint) -0:26 Constant: -0:26 1 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 subgroupShuffle ( global 3-component vector of int) -0:26 vector swizzle ( temp 3-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 Constant: -0:26 2 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 'invocation' ( temp uint) -0:27 move second child to first child ( temp 4-component vector of int) -0:27 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:27 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'invocation' ( temp uint) -0:27 Constant: -0:27 1 (const int) -0:27 subgroupShuffle ( global 4-component vector of int) -0:27 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:27 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 Constant: -0:27 3 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 'invocation' ( temp uint) -0:29 move second child to first child ( temp uint) -0:29 direct index ( temp uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:29 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'invocation' ( temp uint) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 0 (const int) -0:29 subgroupShuffle ( global uint) -0:29 direct index ( temp uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 0 (const int) -0:29 'invocation' ( temp uint) -0:30 move second child to first child ( temp 2-component vector of uint) -0:30 vector swizzle ( temp 2-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:30 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 'invocation' ( temp uint) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 subgroupShuffle ( global 2-component vector of uint) -0:30 vector swizzle ( temp 2-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:30 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 'invocation' ( temp uint) -0:31 move second child to first child ( temp 3-component vector of uint) -0:31 vector swizzle ( temp 3-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:31 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'invocation' ( temp uint) -0:31 Constant: -0:31 2 (const int) -0:31 Sequence -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 subgroupShuffle ( global 3-component vector of uint) -0:31 vector swizzle ( temp 3-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 Constant: -0:31 2 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 Sequence -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 'invocation' ( temp uint) -0:32 move second child to first child ( temp 4-component vector of uint) -0:32 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:32 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'invocation' ( temp uint) -0:32 Constant: -0:32 2 (const int) -0:32 subgroupShuffle ( global 4-component vector of uint) -0:32 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 Constant: -0:32 3 (const int) -0:32 Constant: -0:32 2 (const int) -0:32 'invocation' ( temp uint) -0:34 move second child to first child ( temp double) -0:34 direct index ( temp double) -0:34 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:34 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'invocation' ( temp uint) -0:34 Constant: -0:34 3 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 subgroupShuffle ( global double) -0:34 direct index ( temp double) -0:34 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 3 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 'invocation' ( temp uint) -0:35 move second child to first child ( temp 2-component vector of double) -0:35 vector swizzle ( temp 2-component vector of double) -0:35 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:35 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 'invocation' ( temp uint) -0:35 Constant: -0:35 3 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 subgroupShuffle ( global 2-component vector of double) -0:35 vector swizzle ( temp 2-component vector of double) -0:35 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 3 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 'invocation' ( temp uint) -0:36 move second child to first child ( temp 3-component vector of double) -0:36 vector swizzle ( temp 3-component vector of double) -0:36 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:36 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'invocation' ( temp uint) -0:36 Constant: -0:36 3 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 2 (const int) -0:36 subgroupShuffle ( global 3-component vector of double) -0:36 vector swizzle ( temp 3-component vector of double) -0:36 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 Constant: -0:36 2 (const int) -0:36 Constant: -0:36 3 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 2 (const int) -0:36 'invocation' ( temp uint) -0:37 move second child to first child ( temp 4-component vector of double) -0:37 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:37 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'invocation' ( temp uint) -0:37 Constant: -0:37 3 (const int) -0:37 subgroupShuffle ( global 4-component vector of double) -0:37 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:37 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 Constant: -0:37 3 (const int) -0:37 Constant: -0:37 3 (const int) -0:37 'invocation' ( temp uint) -0:39 move second child to first child ( temp int) -0:39 direct index ( temp int) -0:39 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:39 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'invocation' ( temp uint) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 Convert bool to int ( temp int) -0:39 subgroupShuffle ( global bool) -0:39 Compare Less Than ( temp bool) -0:39 direct index ( temp int) -0:39 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 'invocation' ( temp uint) -0:40 move second child to first child ( temp 2-component vector of int) -0:40 vector swizzle ( temp 2-component vector of int) -0:40 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:40 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 'invocation' ( temp uint) -0:40 Constant: -0:40 1 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Convert bool to int ( temp 2-component vector of int) -0:40 subgroupShuffle ( global 2-component vector of bool) -0:40 Compare Less Than ( global 2-component vector of bool) -0:40 vector swizzle ( temp 2-component vector of int) -0:40 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 0 (const int) -0:40 'invocation' ( temp uint) -0:41 move second child to first child ( temp 3-component vector of int) -0:41 vector swizzle ( temp 3-component vector of int) -0:41 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:41 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'invocation' ( temp uint) -0:41 Constant: -0:41 1 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 2 (const int) -0:41 Convert bool to int ( temp 3-component vector of int) -0:41 subgroupShuffle ( global 3-component vector of bool) -0:41 Compare Less Than ( global 3-component vector of bool) -0:41 vector swizzle ( temp 3-component vector of int) -0:41 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 2 (const int) -0:41 Constant: -0:41 0 (const int) -0:41 0 (const int) -0:41 0 (const int) -0:41 'invocation' ( temp uint) -0:42 move second child to first child ( temp 4-component vector of int) -0:42 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:42 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'invocation' ( temp uint) -0:42 Constant: -0:42 1 (const int) -0:42 Convert bool to int ( temp 4-component vector of int) -0:42 subgroupShuffle ( global 4-component vector of bool) -0:42 Compare Less Than ( global 4-component vector of bool) -0:42 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:42 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 0 (const int) -0:42 0 (const int) -0:42 0 (const int) -0:42 0 (const int) -0:42 'invocation' ( temp uint) -0:44 move second child to first child ( temp float) -0:44 direct index ( temp float) -0:44 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:44 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'invocation' ( temp uint) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 0 (const int) -0:44 subgroupShuffleXor ( global float) -0:44 direct index ( temp float) -0:44 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 0 (const int) -0:44 'invocation' ( temp uint) -0:45 move second child to first child ( temp 2-component vector of float) -0:45 vector swizzle ( temp 2-component vector of float) -0:45 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:45 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 'invocation' ( temp uint) -0:45 Constant: -0:45 0 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 subgroupShuffleXor ( global 2-component vector of float) -0:45 vector swizzle ( temp 2-component vector of float) -0:45 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 0 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 'invocation' ( temp uint) -0:46 move second child to first child ( temp 3-component vector of float) -0:46 vector swizzle ( temp 3-component vector of float) -0:46 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:46 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'invocation' ( temp uint) -0:46 Constant: -0:46 0 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 subgroupShuffleXor ( global 3-component vector of float) -0:46 vector swizzle ( temp 3-component vector of float) -0:46 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 Constant: -0:46 2 (const int) -0:46 Constant: -0:46 0 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 'invocation' ( temp uint) -0:47 move second child to first child ( temp 4-component vector of float) -0:47 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:47 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'invocation' ( temp uint) -0:47 Constant: -0:47 0 (const int) -0:47 subgroupShuffleXor ( global 4-component vector of float) -0:47 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:47 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 Constant: -0:47 3 (const int) -0:47 Constant: -0:47 0 (const int) -0:47 'invocation' ( temp uint) -0:49 move second child to first child ( temp int) -0:49 direct index ( temp int) -0:49 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:49 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'invocation' ( temp uint) -0:49 Constant: -0:49 1 (const int) -0:49 Constant: -0:49 0 (const int) -0:49 subgroupShuffleXor ( global int) -0:49 direct index ( temp int) -0:49 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:49 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 1 (const int) -0:49 Constant: -0:49 0 (const int) -0:49 'invocation' ( temp uint) -0:50 move second child to first child ( temp 2-component vector of int) -0:50 vector swizzle ( temp 2-component vector of int) -0:50 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:50 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 'invocation' ( temp uint) -0:50 Constant: -0:50 1 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 subgroupShuffleXor ( global 2-component vector of int) -0:50 vector swizzle ( temp 2-component vector of int) -0:50 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 'invocation' ( temp uint) -0:51 move second child to first child ( temp 3-component vector of int) -0:51 vector swizzle ( temp 3-component vector of int) -0:51 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:51 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'invocation' ( temp uint) -0:51 Constant: -0:51 1 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 2 (const int) -0:51 subgroupShuffleXor ( global 3-component vector of int) -0:51 vector swizzle ( temp 3-component vector of int) -0:51 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 Constant: -0:51 2 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 2 (const int) -0:51 'invocation' ( temp uint) -0:52 move second child to first child ( temp 4-component vector of int) -0:52 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:52 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'invocation' ( temp uint) -0:52 Constant: -0:52 1 (const int) -0:52 subgroupShuffleXor ( global 4-component vector of int) -0:52 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:52 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 Constant: -0:52 3 (const int) -0:52 Constant: -0:52 1 (const int) -0:52 'invocation' ( temp uint) -0:54 move second child to first child ( temp uint) -0:54 direct index ( temp uint) -0:54 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:54 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'invocation' ( temp uint) -0:54 Constant: -0:54 2 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 subgroupShuffleXor ( global uint) -0:54 direct index ( temp uint) -0:54 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:54 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 2 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 'invocation' ( temp uint) -0:55 move second child to first child ( temp 2-component vector of uint) -0:55 vector swizzle ( temp 2-component vector of uint) -0:55 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:55 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 'invocation' ( temp uint) -0:55 Constant: -0:55 2 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 subgroupShuffleXor ( global 2-component vector of uint) -0:55 vector swizzle ( temp 2-component vector of uint) -0:55 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 2 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 'invocation' ( temp uint) -0:56 move second child to first child ( temp 3-component vector of uint) -0:56 vector swizzle ( temp 3-component vector of uint) -0:56 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:56 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'invocation' ( temp uint) -0:56 Constant: -0:56 2 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 2 (const int) -0:56 subgroupShuffleXor ( global 3-component vector of uint) -0:56 vector swizzle ( temp 3-component vector of uint) -0:56 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 Constant: -0:56 2 (const int) -0:56 Constant: -0:56 2 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 2 (const int) -0:56 'invocation' ( temp uint) -0:57 move second child to first child ( temp 4-component vector of uint) -0:57 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:57 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'invocation' ( temp uint) -0:57 Constant: -0:57 2 (const int) -0:57 subgroupShuffleXor ( global 4-component vector of uint) -0:57 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:57 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 Constant: -0:57 3 (const int) -0:57 Constant: -0:57 2 (const int) -0:57 'invocation' ( temp uint) -0:59 move second child to first child ( temp double) -0:59 direct index ( temp double) -0:59 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:59 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 'invocation' ( temp uint) -0:59 Constant: -0:59 3 (const int) -0:59 Constant: -0:59 0 (const int) -0:59 subgroupShuffleXor ( global double) -0:59 direct index ( temp double) -0:59 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:59 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 3 (const int) -0:59 Constant: -0:59 0 (const int) -0:59 'invocation' ( temp uint) -0:60 move second child to first child ( temp 2-component vector of double) -0:60 vector swizzle ( temp 2-component vector of double) -0:60 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:60 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 'invocation' ( temp uint) -0:60 Constant: -0:60 3 (const int) -0:60 Sequence -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 subgroupShuffleXor ( global 2-component vector of double) -0:60 vector swizzle ( temp 2-component vector of double) -0:60 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:60 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 3 (const int) -0:60 Sequence -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 'invocation' ( temp uint) -0:61 move second child to first child ( temp 3-component vector of double) -0:61 vector swizzle ( temp 3-component vector of double) -0:61 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:61 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'invocation' ( temp uint) -0:61 Constant: -0:61 3 (const int) -0:61 Sequence -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 Constant: -0:61 2 (const int) -0:61 subgroupShuffleXor ( global 3-component vector of double) -0:61 vector swizzle ( temp 3-component vector of double) -0:61 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:61 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 Constant: -0:61 2 (const int) -0:61 Constant: -0:61 3 (const int) -0:61 Sequence -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 Constant: -0:61 2 (const int) -0:61 'invocation' ( temp uint) -0:62 move second child to first child ( temp 4-component vector of double) -0:62 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:62 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'invocation' ( temp uint) -0:62 Constant: -0:62 3 (const int) -0:62 subgroupShuffleXor ( global 4-component vector of double) -0:62 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:62 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 Constant: -0:62 3 (const int) -0:62 Constant: -0:62 3 (const int) -0:62 'invocation' ( temp uint) -0:64 move second child to first child ( temp int) -0:64 direct index ( temp int) -0:64 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:64 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'invocation' ( temp uint) -0:64 Constant: -0:64 1 (const int) -0:64 Constant: -0:64 0 (const int) -0:64 Convert bool to int ( temp int) -0:64 subgroupShuffleXor ( global bool) -0:64 Compare Less Than ( temp bool) -0:64 direct index ( temp int) -0:64 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:64 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 Constant: -0:64 0 (const int) -0:64 Constant: -0:64 1 (const int) -0:64 Constant: -0:64 0 (const int) -0:64 Constant: -0:64 0 (const int) -0:64 'invocation' ( temp uint) -0:65 move second child to first child ( temp 2-component vector of int) -0:65 vector swizzle ( temp 2-component vector of int) -0:65 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:65 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 'invocation' ( temp uint) -0:65 Constant: -0:65 1 (const int) -0:65 Sequence -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Convert bool to int ( temp 2-component vector of int) -0:65 subgroupShuffleXor ( global 2-component vector of bool) -0:65 Compare Less Than ( global 2-component vector of bool) -0:65 vector swizzle ( temp 2-component vector of int) -0:65 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:65 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 Constant: -0:65 1 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Sequence -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Constant: -0:65 0 (const int) -0:65 0 (const int) -0:65 'invocation' ( temp uint) -0:66 move second child to first child ( temp 3-component vector of int) -0:66 vector swizzle ( temp 3-component vector of int) -0:66 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:66 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'invocation' ( temp uint) -0:66 Constant: -0:66 1 (const int) -0:66 Sequence -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 2 (const int) -0:66 Convert bool to int ( temp 3-component vector of int) -0:66 subgroupShuffleXor ( global 3-component vector of bool) -0:66 Compare Less Than ( global 3-component vector of bool) -0:66 vector swizzle ( temp 3-component vector of int) -0:66 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:66 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 Sequence -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 2 (const int) -0:66 Constant: -0:66 0 (const int) -0:66 0 (const int) -0:66 0 (const int) -0:66 'invocation' ( temp uint) -0:67 move second child to first child ( temp 4-component vector of int) -0:67 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:67 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'invocation' ( temp uint) -0:67 Constant: -0:67 1 (const int) -0:67 Convert bool to int ( temp 4-component vector of int) -0:67 subgroupShuffleXor ( global 4-component vector of bool) -0:67 Compare Less Than ( global 4-component vector of bool) -0:67 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:67 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 Constant: -0:67 1 (const int) -0:67 Constant: -0:67 1 (const int) -0:67 Constant: -0:67 0 (const int) -0:67 0 (const int) -0:67 0 (const int) -0:67 0 (const int) -0:67 'invocation' ( temp uint) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) - - -Linked compute stage: - - -Shader version: 450 -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_shuffle -local_size = (8, 8, 1) -0:? Sequence -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 uint) -0:17 'invocation' ( temp uint) -0:17 mod ( temp uint) -0:17 add ( temp uint) -0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:17 'gl_SubgroupSize' ( in uint SubgroupSize) -0:17 Constant: -0:17 4 (const uint) -0:19 move second child to first child ( temp float) -0:19 direct index ( temp float) -0:19 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:19 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 'invocation' ( temp uint) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 subgroupShuffle ( global float) -0:19 direct index ( temp float) -0:19 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:19 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 'invocation' ( temp uint) -0:20 move second child to first child ( temp 2-component vector of float) -0:20 vector swizzle ( temp 2-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:20 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 'invocation' ( temp uint) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 subgroupShuffle ( global 2-component vector of float) -0:20 vector swizzle ( temp 2-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:20 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 'invocation' ( temp uint) -0:21 move second child to first child ( temp 3-component vector of float) -0:21 vector swizzle ( temp 3-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:21 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 'invocation' ( temp uint) -0:21 Constant: -0:21 0 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Constant: -0:21 2 (const int) -0:21 subgroupShuffle ( global 3-component vector of float) -0:21 vector swizzle ( temp 3-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 Constant: -0:21 2 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Constant: -0:21 2 (const int) -0:21 'invocation' ( temp uint) -0:22 move second child to first child ( temp 4-component vector of float) -0:22 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:22 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'invocation' ( temp uint) -0:22 Constant: -0:22 0 (const int) -0:22 subgroupShuffle ( global 4-component vector of float) -0:22 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:22 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 Constant: -0:22 3 (const int) -0:22 Constant: -0:22 0 (const int) -0:22 'invocation' ( temp uint) -0:24 move second child to first child ( temp int) -0:24 direct index ( temp int) -0:24 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:24 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'invocation' ( temp uint) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 0 (const int) -0:24 subgroupShuffle ( global int) -0:24 direct index ( temp int) -0:24 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 0 (const int) -0:24 'invocation' ( temp uint) -0:25 move second child to first child ( temp 2-component vector of int) -0:25 vector swizzle ( temp 2-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:25 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 'invocation' ( temp uint) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 subgroupShuffle ( global 2-component vector of int) -0:25 vector swizzle ( temp 2-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 'invocation' ( temp uint) -0:26 move second child to first child ( temp 3-component vector of int) -0:26 vector swizzle ( temp 3-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:26 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'invocation' ( temp uint) -0:26 Constant: -0:26 1 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 subgroupShuffle ( global 3-component vector of int) -0:26 vector swizzle ( temp 3-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 Constant: -0:26 2 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 'invocation' ( temp uint) -0:27 move second child to first child ( temp 4-component vector of int) -0:27 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:27 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'invocation' ( temp uint) -0:27 Constant: -0:27 1 (const int) -0:27 subgroupShuffle ( global 4-component vector of int) -0:27 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:27 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 Constant: -0:27 3 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 'invocation' ( temp uint) -0:29 move second child to first child ( temp uint) -0:29 direct index ( temp uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:29 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'invocation' ( temp uint) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 0 (const int) -0:29 subgroupShuffle ( global uint) -0:29 direct index ( temp uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 0 (const int) -0:29 'invocation' ( temp uint) -0:30 move second child to first child ( temp 2-component vector of uint) -0:30 vector swizzle ( temp 2-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:30 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 'invocation' ( temp uint) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 subgroupShuffle ( global 2-component vector of uint) -0:30 vector swizzle ( temp 2-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:30 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 'invocation' ( temp uint) -0:31 move second child to first child ( temp 3-component vector of uint) -0:31 vector swizzle ( temp 3-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:31 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'invocation' ( temp uint) -0:31 Constant: -0:31 2 (const int) -0:31 Sequence -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 subgroupShuffle ( global 3-component vector of uint) -0:31 vector swizzle ( temp 3-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 Constant: -0:31 2 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 Sequence -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 'invocation' ( temp uint) -0:32 move second child to first child ( temp 4-component vector of uint) -0:32 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:32 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'invocation' ( temp uint) -0:32 Constant: -0:32 2 (const int) -0:32 subgroupShuffle ( global 4-component vector of uint) -0:32 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 Constant: -0:32 3 (const int) -0:32 Constant: -0:32 2 (const int) -0:32 'invocation' ( temp uint) -0:34 move second child to first child ( temp double) -0:34 direct index ( temp double) -0:34 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:34 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'invocation' ( temp uint) -0:34 Constant: -0:34 3 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 subgroupShuffle ( global double) -0:34 direct index ( temp double) -0:34 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 3 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 'invocation' ( temp uint) -0:35 move second child to first child ( temp 2-component vector of double) -0:35 vector swizzle ( temp 2-component vector of double) -0:35 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:35 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 'invocation' ( temp uint) -0:35 Constant: -0:35 3 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 subgroupShuffle ( global 2-component vector of double) -0:35 vector swizzle ( temp 2-component vector of double) -0:35 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 3 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 'invocation' ( temp uint) -0:36 move second child to first child ( temp 3-component vector of double) -0:36 vector swizzle ( temp 3-component vector of double) -0:36 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:36 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'invocation' ( temp uint) -0:36 Constant: -0:36 3 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 2 (const int) -0:36 subgroupShuffle ( global 3-component vector of double) -0:36 vector swizzle ( temp 3-component vector of double) -0:36 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 Constant: -0:36 2 (const int) -0:36 Constant: -0:36 3 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 2 (const int) -0:36 'invocation' ( temp uint) -0:37 move second child to first child ( temp 4-component vector of double) -0:37 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:37 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'invocation' ( temp uint) -0:37 Constant: -0:37 3 (const int) -0:37 subgroupShuffle ( global 4-component vector of double) -0:37 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:37 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 Constant: -0:37 3 (const int) -0:37 Constant: -0:37 3 (const int) -0:37 'invocation' ( temp uint) -0:39 move second child to first child ( temp int) -0:39 direct index ( temp int) -0:39 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:39 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'invocation' ( temp uint) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 Convert bool to int ( temp int) -0:39 subgroupShuffle ( global bool) -0:39 Compare Less Than ( temp bool) -0:39 direct index ( temp int) -0:39 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 'invocation' ( temp uint) -0:40 move second child to first child ( temp 2-component vector of int) -0:40 vector swizzle ( temp 2-component vector of int) -0:40 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:40 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 'invocation' ( temp uint) -0:40 Constant: -0:40 1 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Convert bool to int ( temp 2-component vector of int) -0:40 subgroupShuffle ( global 2-component vector of bool) -0:40 Compare Less Than ( global 2-component vector of bool) -0:40 vector swizzle ( temp 2-component vector of int) -0:40 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 0 (const int) -0:40 'invocation' ( temp uint) -0:41 move second child to first child ( temp 3-component vector of int) -0:41 vector swizzle ( temp 3-component vector of int) -0:41 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:41 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'invocation' ( temp uint) -0:41 Constant: -0:41 1 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 2 (const int) -0:41 Convert bool to int ( temp 3-component vector of int) -0:41 subgroupShuffle ( global 3-component vector of bool) -0:41 Compare Less Than ( global 3-component vector of bool) -0:41 vector swizzle ( temp 3-component vector of int) -0:41 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 2 (const int) -0:41 Constant: -0:41 0 (const int) -0:41 0 (const int) -0:41 0 (const int) -0:41 'invocation' ( temp uint) -0:42 move second child to first child ( temp 4-component vector of int) -0:42 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:42 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'invocation' ( temp uint) -0:42 Constant: -0:42 1 (const int) -0:42 Convert bool to int ( temp 4-component vector of int) -0:42 subgroupShuffle ( global 4-component vector of bool) -0:42 Compare Less Than ( global 4-component vector of bool) -0:42 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:42 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 0 (const int) -0:42 0 (const int) -0:42 0 (const int) -0:42 0 (const int) -0:42 'invocation' ( temp uint) -0:44 move second child to first child ( temp float) -0:44 direct index ( temp float) -0:44 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:44 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'invocation' ( temp uint) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 0 (const int) -0:44 subgroupShuffleXor ( global float) -0:44 direct index ( temp float) -0:44 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 0 (const int) -0:44 'invocation' ( temp uint) -0:45 move second child to first child ( temp 2-component vector of float) -0:45 vector swizzle ( temp 2-component vector of float) -0:45 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:45 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 'invocation' ( temp uint) -0:45 Constant: -0:45 0 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 subgroupShuffleXor ( global 2-component vector of float) -0:45 vector swizzle ( temp 2-component vector of float) -0:45 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 0 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 'invocation' ( temp uint) -0:46 move second child to first child ( temp 3-component vector of float) -0:46 vector swizzle ( temp 3-component vector of float) -0:46 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:46 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'invocation' ( temp uint) -0:46 Constant: -0:46 0 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 subgroupShuffleXor ( global 3-component vector of float) -0:46 vector swizzle ( temp 3-component vector of float) -0:46 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 Constant: -0:46 2 (const int) -0:46 Constant: -0:46 0 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 'invocation' ( temp uint) -0:47 move second child to first child ( temp 4-component vector of float) -0:47 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:47 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'invocation' ( temp uint) -0:47 Constant: -0:47 0 (const int) -0:47 subgroupShuffleXor ( global 4-component vector of float) -0:47 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:47 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 Constant: -0:47 3 (const int) -0:47 Constant: -0:47 0 (const int) -0:47 'invocation' ( temp uint) -0:49 move second child to first child ( temp int) -0:49 direct index ( temp int) -0:49 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:49 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'invocation' ( temp uint) -0:49 Constant: -0:49 1 (const int) -0:49 Constant: -0:49 0 (const int) -0:49 subgroupShuffleXor ( global int) -0:49 direct index ( temp int) -0:49 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:49 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 1 (const int) -0:49 Constant: -0:49 0 (const int) -0:49 'invocation' ( temp uint) -0:50 move second child to first child ( temp 2-component vector of int) -0:50 vector swizzle ( temp 2-component vector of int) -0:50 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:50 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 'invocation' ( temp uint) -0:50 Constant: -0:50 1 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 subgroupShuffleXor ( global 2-component vector of int) -0:50 vector swizzle ( temp 2-component vector of int) -0:50 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 'invocation' ( temp uint) -0:51 move second child to first child ( temp 3-component vector of int) -0:51 vector swizzle ( temp 3-component vector of int) -0:51 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:51 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'invocation' ( temp uint) -0:51 Constant: -0:51 1 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 2 (const int) -0:51 subgroupShuffleXor ( global 3-component vector of int) -0:51 vector swizzle ( temp 3-component vector of int) -0:51 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 Constant: -0:51 2 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 2 (const int) -0:51 'invocation' ( temp uint) -0:52 move second child to first child ( temp 4-component vector of int) -0:52 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:52 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'invocation' ( temp uint) -0:52 Constant: -0:52 1 (const int) -0:52 subgroupShuffleXor ( global 4-component vector of int) -0:52 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:52 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 Constant: -0:52 3 (const int) -0:52 Constant: -0:52 1 (const int) -0:52 'invocation' ( temp uint) -0:54 move second child to first child ( temp uint) -0:54 direct index ( temp uint) -0:54 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:54 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'invocation' ( temp uint) -0:54 Constant: -0:54 2 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 subgroupShuffleXor ( global uint) -0:54 direct index ( temp uint) -0:54 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:54 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 2 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 'invocation' ( temp uint) -0:55 move second child to first child ( temp 2-component vector of uint) -0:55 vector swizzle ( temp 2-component vector of uint) -0:55 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:55 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 'invocation' ( temp uint) -0:55 Constant: -0:55 2 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 subgroupShuffleXor ( global 2-component vector of uint) -0:55 vector swizzle ( temp 2-component vector of uint) -0:55 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 2 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 'invocation' ( temp uint) -0:56 move second child to first child ( temp 3-component vector of uint) -0:56 vector swizzle ( temp 3-component vector of uint) -0:56 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:56 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'invocation' ( temp uint) -0:56 Constant: -0:56 2 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 2 (const int) -0:56 subgroupShuffleXor ( global 3-component vector of uint) -0:56 vector swizzle ( temp 3-component vector of uint) -0:56 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 Constant: -0:56 2 (const int) -0:56 Constant: -0:56 2 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 2 (const int) -0:56 'invocation' ( temp uint) -0:57 move second child to first child ( temp 4-component vector of uint) -0:57 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:57 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'invocation' ( temp uint) -0:57 Constant: -0:57 2 (const int) -0:57 subgroupShuffleXor ( global 4-component vector of uint) -0:57 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:57 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 Constant: -0:57 3 (const int) -0:57 Constant: -0:57 2 (const int) -0:57 'invocation' ( temp uint) -0:59 move second child to first child ( temp double) -0:59 direct index ( temp double) -0:59 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:59 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 'invocation' ( temp uint) -0:59 Constant: -0:59 3 (const int) -0:59 Constant: -0:59 0 (const int) -0:59 subgroupShuffleXor ( global double) -0:59 direct index ( temp double) -0:59 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:59 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 3 (const int) -0:59 Constant: -0:59 0 (const int) -0:59 'invocation' ( temp uint) -0:60 move second child to first child ( temp 2-component vector of double) -0:60 vector swizzle ( temp 2-component vector of double) -0:60 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:60 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 'invocation' ( temp uint) -0:60 Constant: -0:60 3 (const int) -0:60 Sequence -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 subgroupShuffleXor ( global 2-component vector of double) -0:60 vector swizzle ( temp 2-component vector of double) -0:60 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:60 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 3 (const int) -0:60 Sequence -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 'invocation' ( temp uint) -0:61 move second child to first child ( temp 3-component vector of double) -0:61 vector swizzle ( temp 3-component vector of double) -0:61 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:61 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'invocation' ( temp uint) -0:61 Constant: -0:61 3 (const int) -0:61 Sequence -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 Constant: -0:61 2 (const int) -0:61 subgroupShuffleXor ( global 3-component vector of double) -0:61 vector swizzle ( temp 3-component vector of double) -0:61 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:61 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 Constant: -0:61 2 (const int) -0:61 Constant: -0:61 3 (const int) -0:61 Sequence -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 Constant: -0:61 2 (const int) -0:61 'invocation' ( temp uint) -0:62 move second child to first child ( temp 4-component vector of double) -0:62 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:62 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'invocation' ( temp uint) -0:62 Constant: -0:62 3 (const int) -0:62 subgroupShuffleXor ( global 4-component vector of double) -0:62 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:62 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 Constant: -0:62 3 (const int) -0:62 Constant: -0:62 3 (const int) -0:62 'invocation' ( temp uint) -0:64 move second child to first child ( temp int) -0:64 direct index ( temp int) -0:64 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:64 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'invocation' ( temp uint) -0:64 Constant: -0:64 1 (const int) -0:64 Constant: -0:64 0 (const int) -0:64 Convert bool to int ( temp int) -0:64 subgroupShuffleXor ( global bool) -0:64 Compare Less Than ( temp bool) -0:64 direct index ( temp int) -0:64 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:64 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 Constant: -0:64 0 (const int) -0:64 Constant: -0:64 1 (const int) -0:64 Constant: -0:64 0 (const int) -0:64 Constant: -0:64 0 (const int) -0:64 'invocation' ( temp uint) -0:65 move second child to first child ( temp 2-component vector of int) -0:65 vector swizzle ( temp 2-component vector of int) -0:65 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:65 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 'invocation' ( temp uint) -0:65 Constant: -0:65 1 (const int) -0:65 Sequence -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Convert bool to int ( temp 2-component vector of int) -0:65 subgroupShuffleXor ( global 2-component vector of bool) -0:65 Compare Less Than ( global 2-component vector of bool) -0:65 vector swizzle ( temp 2-component vector of int) -0:65 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:65 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 Constant: -0:65 1 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Sequence -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Constant: -0:65 0 (const int) -0:65 0 (const int) -0:65 'invocation' ( temp uint) -0:66 move second child to first child ( temp 3-component vector of int) -0:66 vector swizzle ( temp 3-component vector of int) -0:66 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:66 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'invocation' ( temp uint) -0:66 Constant: -0:66 1 (const int) -0:66 Sequence -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 2 (const int) -0:66 Convert bool to int ( temp 3-component vector of int) -0:66 subgroupShuffleXor ( global 3-component vector of bool) -0:66 Compare Less Than ( global 3-component vector of bool) -0:66 vector swizzle ( temp 3-component vector of int) -0:66 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:66 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 Sequence -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 2 (const int) -0:66 Constant: -0:66 0 (const int) -0:66 0 (const int) -0:66 0 (const int) -0:66 'invocation' ( temp uint) -0:67 move second child to first child ( temp 4-component vector of int) -0:67 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:67 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'invocation' ( temp uint) -0:67 Constant: -0:67 1 (const int) -0:67 Convert bool to int ( temp 4-component vector of int) -0:67 subgroupShuffleXor ( global 4-component vector of bool) -0:67 Compare Less Than ( global 4-component vector of bool) -0:67 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:67 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 Constant: -0:67 1 (const int) -0:67 Constant: -0:67 1 (const int) -0:67 Constant: -0:67 0 (const int) -0:67 0 (const int) -0:67 0 (const int) -0:67 0 (const int) -0:67 'invocation' ( temp uint) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) - diff --git a/deps/glslang/Test/baseResults/glsl.450.subgroupShuffleRelative.comp.out b/deps/glslang/Test/baseResults/glsl.450.subgroupShuffleRelative.comp.out deleted file mode 100644 index 09829502..00000000 --- a/deps/glslang/Test/baseResults/glsl.450.subgroupShuffleRelative.comp.out +++ /dev/null @@ -1,2101 +0,0 @@ -glsl.450.subgroupShuffleRelative.comp -Shader version: 450 -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_shuffle_relative -local_size = (8, 8, 1) -0:? Sequence -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 uint) -0:17 'invocation' ( temp uint) -0:17 mod ( temp uint) -0:17 add ( temp uint) -0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:17 'gl_SubgroupSize' ( in uint SubgroupSize) -0:17 Constant: -0:17 4 (const uint) -0:19 move second child to first child ( temp float) -0:19 direct index ( temp float) -0:19 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:19 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 'invocation' ( temp uint) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 subgroupShuffleUp ( global float) -0:19 direct index ( temp float) -0:19 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:19 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 'invocation' ( temp uint) -0:20 move second child to first child ( temp 2-component vector of float) -0:20 vector swizzle ( temp 2-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:20 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 'invocation' ( temp uint) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 subgroupShuffleUp ( global 2-component vector of float) -0:20 vector swizzle ( temp 2-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:20 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 'invocation' ( temp uint) -0:21 move second child to first child ( temp 3-component vector of float) -0:21 vector swizzle ( temp 3-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:21 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 'invocation' ( temp uint) -0:21 Constant: -0:21 0 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Constant: -0:21 2 (const int) -0:21 subgroupShuffleUp ( global 3-component vector of float) -0:21 vector swizzle ( temp 3-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 Constant: -0:21 2 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Constant: -0:21 2 (const int) -0:21 'invocation' ( temp uint) -0:22 move second child to first child ( temp 4-component vector of float) -0:22 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:22 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'invocation' ( temp uint) -0:22 Constant: -0:22 0 (const int) -0:22 subgroupShuffleUp ( global 4-component vector of float) -0:22 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:22 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 Constant: -0:22 3 (const int) -0:22 Constant: -0:22 0 (const int) -0:22 'invocation' ( temp uint) -0:24 move second child to first child ( temp int) -0:24 direct index ( temp int) -0:24 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:24 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'invocation' ( temp uint) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 0 (const int) -0:24 subgroupShuffleUp ( global int) -0:24 direct index ( temp int) -0:24 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 0 (const int) -0:24 'invocation' ( temp uint) -0:25 move second child to first child ( temp 2-component vector of int) -0:25 vector swizzle ( temp 2-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:25 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 'invocation' ( temp uint) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 subgroupShuffleUp ( global 2-component vector of int) -0:25 vector swizzle ( temp 2-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 'invocation' ( temp uint) -0:26 move second child to first child ( temp 3-component vector of int) -0:26 vector swizzle ( temp 3-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:26 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'invocation' ( temp uint) -0:26 Constant: -0:26 1 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 subgroupShuffleUp ( global 3-component vector of int) -0:26 vector swizzle ( temp 3-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 Constant: -0:26 2 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 'invocation' ( temp uint) -0:27 move second child to first child ( temp 4-component vector of int) -0:27 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:27 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'invocation' ( temp uint) -0:27 Constant: -0:27 1 (const int) -0:27 subgroupShuffleUp ( global 4-component vector of int) -0:27 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:27 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 Constant: -0:27 3 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 'invocation' ( temp uint) -0:29 move second child to first child ( temp uint) -0:29 direct index ( temp uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:29 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'invocation' ( temp uint) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 0 (const int) -0:29 subgroupShuffleUp ( global uint) -0:29 direct index ( temp uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 0 (const int) -0:29 'invocation' ( temp uint) -0:30 move second child to first child ( temp 2-component vector of uint) -0:30 vector swizzle ( temp 2-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:30 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 'invocation' ( temp uint) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 subgroupShuffleUp ( global 2-component vector of uint) -0:30 vector swizzle ( temp 2-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:30 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 'invocation' ( temp uint) -0:31 move second child to first child ( temp 3-component vector of uint) -0:31 vector swizzle ( temp 3-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:31 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'invocation' ( temp uint) -0:31 Constant: -0:31 2 (const int) -0:31 Sequence -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 subgroupShuffleUp ( global 3-component vector of uint) -0:31 vector swizzle ( temp 3-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 Constant: -0:31 2 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 Sequence -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 'invocation' ( temp uint) -0:32 move second child to first child ( temp 4-component vector of uint) -0:32 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:32 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'invocation' ( temp uint) -0:32 Constant: -0:32 2 (const int) -0:32 subgroupShuffleUp ( global 4-component vector of uint) -0:32 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 Constant: -0:32 3 (const int) -0:32 Constant: -0:32 2 (const int) -0:32 'invocation' ( temp uint) -0:34 move second child to first child ( temp double) -0:34 direct index ( temp double) -0:34 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:34 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'invocation' ( temp uint) -0:34 Constant: -0:34 3 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 subgroupShuffleUp ( global double) -0:34 direct index ( temp double) -0:34 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 3 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 'invocation' ( temp uint) -0:35 move second child to first child ( temp 2-component vector of double) -0:35 vector swizzle ( temp 2-component vector of double) -0:35 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:35 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 'invocation' ( temp uint) -0:35 Constant: -0:35 3 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 subgroupShuffleUp ( global 2-component vector of double) -0:35 vector swizzle ( temp 2-component vector of double) -0:35 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 3 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 'invocation' ( temp uint) -0:36 move second child to first child ( temp 3-component vector of double) -0:36 vector swizzle ( temp 3-component vector of double) -0:36 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:36 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'invocation' ( temp uint) -0:36 Constant: -0:36 3 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 2 (const int) -0:36 subgroupShuffleUp ( global 3-component vector of double) -0:36 vector swizzle ( temp 3-component vector of double) -0:36 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 Constant: -0:36 2 (const int) -0:36 Constant: -0:36 3 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 2 (const int) -0:36 'invocation' ( temp uint) -0:37 move second child to first child ( temp 4-component vector of double) -0:37 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:37 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'invocation' ( temp uint) -0:37 Constant: -0:37 3 (const int) -0:37 subgroupShuffleUp ( global 4-component vector of double) -0:37 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:37 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 Constant: -0:37 3 (const int) -0:37 Constant: -0:37 3 (const int) -0:37 'invocation' ( temp uint) -0:39 move second child to first child ( temp int) -0:39 direct index ( temp int) -0:39 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:39 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'invocation' ( temp uint) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 Convert bool to int ( temp int) -0:39 subgroupShuffleUp ( global bool) -0:39 Compare Less Than ( temp bool) -0:39 direct index ( temp int) -0:39 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 'invocation' ( temp uint) -0:40 move second child to first child ( temp 2-component vector of int) -0:40 vector swizzle ( temp 2-component vector of int) -0:40 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:40 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 'invocation' ( temp uint) -0:40 Constant: -0:40 1 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Convert bool to int ( temp 2-component vector of int) -0:40 subgroupShuffleUp ( global 2-component vector of bool) -0:40 Compare Less Than ( global 2-component vector of bool) -0:40 vector swizzle ( temp 2-component vector of int) -0:40 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 0 (const int) -0:40 'invocation' ( temp uint) -0:41 move second child to first child ( temp 3-component vector of int) -0:41 vector swizzle ( temp 3-component vector of int) -0:41 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:41 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'invocation' ( temp uint) -0:41 Constant: -0:41 1 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 2 (const int) -0:41 Convert bool to int ( temp 3-component vector of int) -0:41 subgroupShuffleUp ( global 3-component vector of bool) -0:41 Compare Less Than ( global 3-component vector of bool) -0:41 vector swizzle ( temp 3-component vector of int) -0:41 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 2 (const int) -0:41 Constant: -0:41 0 (const int) -0:41 0 (const int) -0:41 0 (const int) -0:41 'invocation' ( temp uint) -0:42 move second child to first child ( temp 4-component vector of int) -0:42 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:42 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'invocation' ( temp uint) -0:42 Constant: -0:42 1 (const int) -0:42 Convert bool to int ( temp 4-component vector of int) -0:42 subgroupShuffleUp ( global 4-component vector of bool) -0:42 Compare Less Than ( global 4-component vector of bool) -0:42 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:42 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 0 (const int) -0:42 0 (const int) -0:42 0 (const int) -0:42 0 (const int) -0:42 'invocation' ( temp uint) -0:44 move second child to first child ( temp float) -0:44 direct index ( temp float) -0:44 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:44 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'invocation' ( temp uint) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 0 (const int) -0:44 subgroupShuffleDown ( global float) -0:44 direct index ( temp float) -0:44 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 0 (const int) -0:44 'invocation' ( temp uint) -0:45 move second child to first child ( temp 2-component vector of float) -0:45 vector swizzle ( temp 2-component vector of float) -0:45 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:45 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 'invocation' ( temp uint) -0:45 Constant: -0:45 0 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 subgroupShuffleDown ( global 2-component vector of float) -0:45 vector swizzle ( temp 2-component vector of float) -0:45 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 0 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 'invocation' ( temp uint) -0:46 move second child to first child ( temp 3-component vector of float) -0:46 vector swizzle ( temp 3-component vector of float) -0:46 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:46 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'invocation' ( temp uint) -0:46 Constant: -0:46 0 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 subgroupShuffleDown ( global 3-component vector of float) -0:46 vector swizzle ( temp 3-component vector of float) -0:46 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 Constant: -0:46 2 (const int) -0:46 Constant: -0:46 0 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 'invocation' ( temp uint) -0:47 move second child to first child ( temp 4-component vector of float) -0:47 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:47 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'invocation' ( temp uint) -0:47 Constant: -0:47 0 (const int) -0:47 subgroupShuffleDown ( global 4-component vector of float) -0:47 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:47 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 Constant: -0:47 3 (const int) -0:47 Constant: -0:47 0 (const int) -0:47 'invocation' ( temp uint) -0:49 move second child to first child ( temp int) -0:49 direct index ( temp int) -0:49 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:49 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'invocation' ( temp uint) -0:49 Constant: -0:49 1 (const int) -0:49 Constant: -0:49 0 (const int) -0:49 subgroupShuffleDown ( global int) -0:49 direct index ( temp int) -0:49 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:49 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 1 (const int) -0:49 Constant: -0:49 0 (const int) -0:49 'invocation' ( temp uint) -0:50 move second child to first child ( temp 2-component vector of int) -0:50 vector swizzle ( temp 2-component vector of int) -0:50 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:50 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 'invocation' ( temp uint) -0:50 Constant: -0:50 1 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 subgroupShuffleDown ( global 2-component vector of int) -0:50 vector swizzle ( temp 2-component vector of int) -0:50 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 'invocation' ( temp uint) -0:51 move second child to first child ( temp 3-component vector of int) -0:51 vector swizzle ( temp 3-component vector of int) -0:51 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:51 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'invocation' ( temp uint) -0:51 Constant: -0:51 1 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 2 (const int) -0:51 subgroupShuffleDown ( global 3-component vector of int) -0:51 vector swizzle ( temp 3-component vector of int) -0:51 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 Constant: -0:51 2 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 2 (const int) -0:51 'invocation' ( temp uint) -0:52 move second child to first child ( temp 4-component vector of int) -0:52 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:52 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'invocation' ( temp uint) -0:52 Constant: -0:52 1 (const int) -0:52 subgroupShuffleDown ( global 4-component vector of int) -0:52 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:52 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 Constant: -0:52 3 (const int) -0:52 Constant: -0:52 1 (const int) -0:52 'invocation' ( temp uint) -0:54 move second child to first child ( temp uint) -0:54 direct index ( temp uint) -0:54 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:54 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'invocation' ( temp uint) -0:54 Constant: -0:54 2 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 subgroupShuffleDown ( global uint) -0:54 direct index ( temp uint) -0:54 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:54 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 2 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 'invocation' ( temp uint) -0:55 move second child to first child ( temp 2-component vector of uint) -0:55 vector swizzle ( temp 2-component vector of uint) -0:55 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:55 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 'invocation' ( temp uint) -0:55 Constant: -0:55 2 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 subgroupShuffleDown ( global 2-component vector of uint) -0:55 vector swizzle ( temp 2-component vector of uint) -0:55 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 2 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 'invocation' ( temp uint) -0:56 move second child to first child ( temp 3-component vector of uint) -0:56 vector swizzle ( temp 3-component vector of uint) -0:56 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:56 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'invocation' ( temp uint) -0:56 Constant: -0:56 2 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 2 (const int) -0:56 subgroupShuffleDown ( global 3-component vector of uint) -0:56 vector swizzle ( temp 3-component vector of uint) -0:56 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 Constant: -0:56 2 (const int) -0:56 Constant: -0:56 2 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 2 (const int) -0:56 'invocation' ( temp uint) -0:57 move second child to first child ( temp 4-component vector of uint) -0:57 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:57 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'invocation' ( temp uint) -0:57 Constant: -0:57 2 (const int) -0:57 subgroupShuffleDown ( global 4-component vector of uint) -0:57 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:57 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 Constant: -0:57 3 (const int) -0:57 Constant: -0:57 2 (const int) -0:57 'invocation' ( temp uint) -0:59 move second child to first child ( temp double) -0:59 direct index ( temp double) -0:59 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:59 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 'invocation' ( temp uint) -0:59 Constant: -0:59 3 (const int) -0:59 Constant: -0:59 0 (const int) -0:59 subgroupShuffleDown ( global double) -0:59 direct index ( temp double) -0:59 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:59 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 3 (const int) -0:59 Constant: -0:59 0 (const int) -0:59 'invocation' ( temp uint) -0:60 move second child to first child ( temp 2-component vector of double) -0:60 vector swizzle ( temp 2-component vector of double) -0:60 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:60 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 'invocation' ( temp uint) -0:60 Constant: -0:60 3 (const int) -0:60 Sequence -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 subgroupShuffleDown ( global 2-component vector of double) -0:60 vector swizzle ( temp 2-component vector of double) -0:60 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:60 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 3 (const int) -0:60 Sequence -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 'invocation' ( temp uint) -0:61 move second child to first child ( temp 3-component vector of double) -0:61 vector swizzle ( temp 3-component vector of double) -0:61 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:61 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'invocation' ( temp uint) -0:61 Constant: -0:61 3 (const int) -0:61 Sequence -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 Constant: -0:61 2 (const int) -0:61 subgroupShuffleDown ( global 3-component vector of double) -0:61 vector swizzle ( temp 3-component vector of double) -0:61 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:61 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 Constant: -0:61 2 (const int) -0:61 Constant: -0:61 3 (const int) -0:61 Sequence -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 Constant: -0:61 2 (const int) -0:61 'invocation' ( temp uint) -0:62 move second child to first child ( temp 4-component vector of double) -0:62 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:62 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'invocation' ( temp uint) -0:62 Constant: -0:62 3 (const int) -0:62 subgroupShuffleDown ( global 4-component vector of double) -0:62 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:62 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 Constant: -0:62 3 (const int) -0:62 Constant: -0:62 3 (const int) -0:62 'invocation' ( temp uint) -0:64 move second child to first child ( temp int) -0:64 direct index ( temp int) -0:64 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:64 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'invocation' ( temp uint) -0:64 Constant: -0:64 1 (const int) -0:64 Constant: -0:64 0 (const int) -0:64 Convert bool to int ( temp int) -0:64 subgroupShuffleDown ( global bool) -0:64 Compare Less Than ( temp bool) -0:64 direct index ( temp int) -0:64 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:64 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 Constant: -0:64 0 (const int) -0:64 Constant: -0:64 1 (const int) -0:64 Constant: -0:64 0 (const int) -0:64 Constant: -0:64 0 (const int) -0:64 'invocation' ( temp uint) -0:65 move second child to first child ( temp 2-component vector of int) -0:65 vector swizzle ( temp 2-component vector of int) -0:65 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:65 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 'invocation' ( temp uint) -0:65 Constant: -0:65 1 (const int) -0:65 Sequence -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Convert bool to int ( temp 2-component vector of int) -0:65 subgroupShuffleDown ( global 2-component vector of bool) -0:65 Compare Less Than ( global 2-component vector of bool) -0:65 vector swizzle ( temp 2-component vector of int) -0:65 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:65 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 Constant: -0:65 1 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Sequence -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Constant: -0:65 0 (const int) -0:65 0 (const int) -0:65 'invocation' ( temp uint) -0:66 move second child to first child ( temp 3-component vector of int) -0:66 vector swizzle ( temp 3-component vector of int) -0:66 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:66 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'invocation' ( temp uint) -0:66 Constant: -0:66 1 (const int) -0:66 Sequence -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 2 (const int) -0:66 Convert bool to int ( temp 3-component vector of int) -0:66 subgroupShuffleDown ( global 3-component vector of bool) -0:66 Compare Less Than ( global 3-component vector of bool) -0:66 vector swizzle ( temp 3-component vector of int) -0:66 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:66 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 Sequence -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 2 (const int) -0:66 Constant: -0:66 0 (const int) -0:66 0 (const int) -0:66 0 (const int) -0:66 'invocation' ( temp uint) -0:67 move second child to first child ( temp 4-component vector of int) -0:67 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:67 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'invocation' ( temp uint) -0:67 Constant: -0:67 1 (const int) -0:67 Convert bool to int ( temp 4-component vector of int) -0:67 subgroupShuffleDown ( global 4-component vector of bool) -0:67 Compare Less Than ( global 4-component vector of bool) -0:67 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:67 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 Constant: -0:67 1 (const int) -0:67 Constant: -0:67 1 (const int) -0:67 Constant: -0:67 0 (const int) -0:67 0 (const int) -0:67 0 (const int) -0:67 0 (const int) -0:67 'invocation' ( temp uint) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) - - -Linked compute stage: - - -Shader version: 450 -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_shuffle_relative -local_size = (8, 8, 1) -0:? Sequence -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 uint) -0:17 'invocation' ( temp uint) -0:17 mod ( temp uint) -0:17 add ( temp uint) -0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:17 'gl_SubgroupSize' ( in uint SubgroupSize) -0:17 Constant: -0:17 4 (const uint) -0:19 move second child to first child ( temp float) -0:19 direct index ( temp float) -0:19 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:19 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 'invocation' ( temp uint) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 subgroupShuffleUp ( global float) -0:19 direct index ( temp float) -0:19 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:19 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 'invocation' ( temp uint) -0:20 move second child to first child ( temp 2-component vector of float) -0:20 vector swizzle ( temp 2-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:20 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 'invocation' ( temp uint) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 subgroupShuffleUp ( global 2-component vector of float) -0:20 vector swizzle ( temp 2-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:20 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 'invocation' ( temp uint) -0:21 move second child to first child ( temp 3-component vector of float) -0:21 vector swizzle ( temp 3-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:21 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 'invocation' ( temp uint) -0:21 Constant: -0:21 0 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Constant: -0:21 2 (const int) -0:21 subgroupShuffleUp ( global 3-component vector of float) -0:21 vector swizzle ( temp 3-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:21 Constant: -0:21 2 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Constant: -0:21 2 (const int) -0:21 'invocation' ( temp uint) -0:22 move second child to first child ( temp 4-component vector of float) -0:22 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:22 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'invocation' ( temp uint) -0:22 Constant: -0:22 0 (const int) -0:22 subgroupShuffleUp ( global 4-component vector of float) -0:22 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:22 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:22 Constant: -0:22 3 (const int) -0:22 Constant: -0:22 0 (const int) -0:22 'invocation' ( temp uint) -0:24 move second child to first child ( temp int) -0:24 direct index ( temp int) -0:24 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:24 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'invocation' ( temp uint) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 0 (const int) -0:24 subgroupShuffleUp ( global int) -0:24 direct index ( temp int) -0:24 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 0 (const int) -0:24 'invocation' ( temp uint) -0:25 move second child to first child ( temp 2-component vector of int) -0:25 vector swizzle ( temp 2-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:25 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 'invocation' ( temp uint) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 subgroupShuffleUp ( global 2-component vector of int) -0:25 vector swizzle ( temp 2-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 'invocation' ( temp uint) -0:26 move second child to first child ( temp 3-component vector of int) -0:26 vector swizzle ( temp 3-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:26 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'invocation' ( temp uint) -0:26 Constant: -0:26 1 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 subgroupShuffleUp ( global 3-component vector of int) -0:26 vector swizzle ( temp 3-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:26 Constant: -0:26 2 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 'invocation' ( temp uint) -0:27 move second child to first child ( temp 4-component vector of int) -0:27 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:27 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'invocation' ( temp uint) -0:27 Constant: -0:27 1 (const int) -0:27 subgroupShuffleUp ( global 4-component vector of int) -0:27 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:27 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:27 Constant: -0:27 3 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 'invocation' ( temp uint) -0:29 move second child to first child ( temp uint) -0:29 direct index ( temp uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:29 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'invocation' ( temp uint) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 0 (const int) -0:29 subgroupShuffleUp ( global uint) -0:29 direct index ( temp uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 0 (const int) -0:29 'invocation' ( temp uint) -0:30 move second child to first child ( temp 2-component vector of uint) -0:30 vector swizzle ( temp 2-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:30 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 'invocation' ( temp uint) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 subgroupShuffleUp ( global 2-component vector of uint) -0:30 vector swizzle ( temp 2-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:30 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 'invocation' ( temp uint) -0:31 move second child to first child ( temp 3-component vector of uint) -0:31 vector swizzle ( temp 3-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:31 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'invocation' ( temp uint) -0:31 Constant: -0:31 2 (const int) -0:31 Sequence -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 subgroupShuffleUp ( global 3-component vector of uint) -0:31 vector swizzle ( temp 3-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:31 Constant: -0:31 2 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 Sequence -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 'invocation' ( temp uint) -0:32 move second child to first child ( temp 4-component vector of uint) -0:32 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:32 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'invocation' ( temp uint) -0:32 Constant: -0:32 2 (const int) -0:32 subgroupShuffleUp ( global 4-component vector of uint) -0:32 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:32 Constant: -0:32 3 (const int) -0:32 Constant: -0:32 2 (const int) -0:32 'invocation' ( temp uint) -0:34 move second child to first child ( temp double) -0:34 direct index ( temp double) -0:34 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:34 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'invocation' ( temp uint) -0:34 Constant: -0:34 3 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 subgroupShuffleUp ( global double) -0:34 direct index ( temp double) -0:34 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 3 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 'invocation' ( temp uint) -0:35 move second child to first child ( temp 2-component vector of double) -0:35 vector swizzle ( temp 2-component vector of double) -0:35 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:35 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 'invocation' ( temp uint) -0:35 Constant: -0:35 3 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 subgroupShuffleUp ( global 2-component vector of double) -0:35 vector swizzle ( temp 2-component vector of double) -0:35 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 3 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 'invocation' ( temp uint) -0:36 move second child to first child ( temp 3-component vector of double) -0:36 vector swizzle ( temp 3-component vector of double) -0:36 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:36 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'invocation' ( temp uint) -0:36 Constant: -0:36 3 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 2 (const int) -0:36 subgroupShuffleUp ( global 3-component vector of double) -0:36 vector swizzle ( temp 3-component vector of double) -0:36 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:36 Constant: -0:36 2 (const int) -0:36 Constant: -0:36 3 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 2 (const int) -0:36 'invocation' ( temp uint) -0:37 move second child to first child ( temp 4-component vector of double) -0:37 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:37 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'invocation' ( temp uint) -0:37 Constant: -0:37 3 (const int) -0:37 subgroupShuffleUp ( global 4-component vector of double) -0:37 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:37 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:37 Constant: -0:37 3 (const int) -0:37 Constant: -0:37 3 (const int) -0:37 'invocation' ( temp uint) -0:39 move second child to first child ( temp int) -0:39 direct index ( temp int) -0:39 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:39 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'invocation' ( temp uint) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 Convert bool to int ( temp int) -0:39 subgroupShuffleUp ( global bool) -0:39 Compare Less Than ( temp bool) -0:39 direct index ( temp int) -0:39 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 'invocation' ( temp uint) -0:40 move second child to first child ( temp 2-component vector of int) -0:40 vector swizzle ( temp 2-component vector of int) -0:40 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:40 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 'invocation' ( temp uint) -0:40 Constant: -0:40 1 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Convert bool to int ( temp 2-component vector of int) -0:40 subgroupShuffleUp ( global 2-component vector of bool) -0:40 Compare Less Than ( global 2-component vector of bool) -0:40 vector swizzle ( temp 2-component vector of int) -0:40 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 0 (const int) -0:40 'invocation' ( temp uint) -0:41 move second child to first child ( temp 3-component vector of int) -0:41 vector swizzle ( temp 3-component vector of int) -0:41 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:41 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'invocation' ( temp uint) -0:41 Constant: -0:41 1 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 2 (const int) -0:41 Convert bool to int ( temp 3-component vector of int) -0:41 subgroupShuffleUp ( global 3-component vector of bool) -0:41 Compare Less Than ( global 3-component vector of bool) -0:41 vector swizzle ( temp 3-component vector of int) -0:41 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 2 (const int) -0:41 Constant: -0:41 0 (const int) -0:41 0 (const int) -0:41 0 (const int) -0:41 'invocation' ( temp uint) -0:42 move second child to first child ( temp 4-component vector of int) -0:42 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:42 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'invocation' ( temp uint) -0:42 Constant: -0:42 1 (const int) -0:42 Convert bool to int ( temp 4-component vector of int) -0:42 subgroupShuffleUp ( global 4-component vector of bool) -0:42 Compare Less Than ( global 4-component vector of bool) -0:42 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:42 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 0 (const int) -0:42 0 (const int) -0:42 0 (const int) -0:42 0 (const int) -0:42 'invocation' ( temp uint) -0:44 move second child to first child ( temp float) -0:44 direct index ( temp float) -0:44 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:44 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'invocation' ( temp uint) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 0 (const int) -0:44 subgroupShuffleDown ( global float) -0:44 direct index ( temp float) -0:44 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 0 (const int) -0:44 'invocation' ( temp uint) -0:45 move second child to first child ( temp 2-component vector of float) -0:45 vector swizzle ( temp 2-component vector of float) -0:45 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:45 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 'invocation' ( temp uint) -0:45 Constant: -0:45 0 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 subgroupShuffleDown ( global 2-component vector of float) -0:45 vector swizzle ( temp 2-component vector of float) -0:45 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 0 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 'invocation' ( temp uint) -0:46 move second child to first child ( temp 3-component vector of float) -0:46 vector swizzle ( temp 3-component vector of float) -0:46 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:46 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'invocation' ( temp uint) -0:46 Constant: -0:46 0 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 subgroupShuffleDown ( global 3-component vector of float) -0:46 vector swizzle ( temp 3-component vector of float) -0:46 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:46 Constant: -0:46 2 (const int) -0:46 Constant: -0:46 0 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 'invocation' ( temp uint) -0:47 move second child to first child ( temp 4-component vector of float) -0:47 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:47 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'invocation' ( temp uint) -0:47 Constant: -0:47 0 (const int) -0:47 subgroupShuffleDown ( global 4-component vector of float) -0:47 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:47 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:47 Constant: -0:47 3 (const int) -0:47 Constant: -0:47 0 (const int) -0:47 'invocation' ( temp uint) -0:49 move second child to first child ( temp int) -0:49 direct index ( temp int) -0:49 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:49 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'invocation' ( temp uint) -0:49 Constant: -0:49 1 (const int) -0:49 Constant: -0:49 0 (const int) -0:49 subgroupShuffleDown ( global int) -0:49 direct index ( temp int) -0:49 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:49 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 1 (const int) -0:49 Constant: -0:49 0 (const int) -0:49 'invocation' ( temp uint) -0:50 move second child to first child ( temp 2-component vector of int) -0:50 vector swizzle ( temp 2-component vector of int) -0:50 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:50 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 'invocation' ( temp uint) -0:50 Constant: -0:50 1 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 subgroupShuffleDown ( global 2-component vector of int) -0:50 vector swizzle ( temp 2-component vector of int) -0:50 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 'invocation' ( temp uint) -0:51 move second child to first child ( temp 3-component vector of int) -0:51 vector swizzle ( temp 3-component vector of int) -0:51 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:51 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'invocation' ( temp uint) -0:51 Constant: -0:51 1 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 2 (const int) -0:51 subgroupShuffleDown ( global 3-component vector of int) -0:51 vector swizzle ( temp 3-component vector of int) -0:51 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:51 Constant: -0:51 2 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 2 (const int) -0:51 'invocation' ( temp uint) -0:52 move second child to first child ( temp 4-component vector of int) -0:52 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:52 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'invocation' ( temp uint) -0:52 Constant: -0:52 1 (const int) -0:52 subgroupShuffleDown ( global 4-component vector of int) -0:52 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:52 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:52 Constant: -0:52 3 (const int) -0:52 Constant: -0:52 1 (const int) -0:52 'invocation' ( temp uint) -0:54 move second child to first child ( temp uint) -0:54 direct index ( temp uint) -0:54 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:54 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'invocation' ( temp uint) -0:54 Constant: -0:54 2 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 subgroupShuffleDown ( global uint) -0:54 direct index ( temp uint) -0:54 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:54 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 2 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 'invocation' ( temp uint) -0:55 move second child to first child ( temp 2-component vector of uint) -0:55 vector swizzle ( temp 2-component vector of uint) -0:55 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:55 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 'invocation' ( temp uint) -0:55 Constant: -0:55 2 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 subgroupShuffleDown ( global 2-component vector of uint) -0:55 vector swizzle ( temp 2-component vector of uint) -0:55 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 2 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 'invocation' ( temp uint) -0:56 move second child to first child ( temp 3-component vector of uint) -0:56 vector swizzle ( temp 3-component vector of uint) -0:56 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:56 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'invocation' ( temp uint) -0:56 Constant: -0:56 2 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 2 (const int) -0:56 subgroupShuffleDown ( global 3-component vector of uint) -0:56 vector swizzle ( temp 3-component vector of uint) -0:56 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:56 Constant: -0:56 2 (const int) -0:56 Constant: -0:56 2 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 2 (const int) -0:56 'invocation' ( temp uint) -0:57 move second child to first child ( temp 4-component vector of uint) -0:57 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:57 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'invocation' ( temp uint) -0:57 Constant: -0:57 2 (const int) -0:57 subgroupShuffleDown ( global 4-component vector of uint) -0:57 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:57 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:57 Constant: -0:57 3 (const int) -0:57 Constant: -0:57 2 (const int) -0:57 'invocation' ( temp uint) -0:59 move second child to first child ( temp double) -0:59 direct index ( temp double) -0:59 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:59 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 'invocation' ( temp uint) -0:59 Constant: -0:59 3 (const int) -0:59 Constant: -0:59 0 (const int) -0:59 subgroupShuffleDown ( global double) -0:59 direct index ( temp double) -0:59 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:59 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 3 (const int) -0:59 Constant: -0:59 0 (const int) -0:59 'invocation' ( temp uint) -0:60 move second child to first child ( temp 2-component vector of double) -0:60 vector swizzle ( temp 2-component vector of double) -0:60 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:60 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 'invocation' ( temp uint) -0:60 Constant: -0:60 3 (const int) -0:60 Sequence -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 subgroupShuffleDown ( global 2-component vector of double) -0:60 vector swizzle ( temp 2-component vector of double) -0:60 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:60 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 3 (const int) -0:60 Sequence -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 'invocation' ( temp uint) -0:61 move second child to first child ( temp 3-component vector of double) -0:61 vector swizzle ( temp 3-component vector of double) -0:61 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:61 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'invocation' ( temp uint) -0:61 Constant: -0:61 3 (const int) -0:61 Sequence -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 Constant: -0:61 2 (const int) -0:61 subgroupShuffleDown ( global 3-component vector of double) -0:61 vector swizzle ( temp 3-component vector of double) -0:61 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:61 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:61 Constant: -0:61 2 (const int) -0:61 Constant: -0:61 3 (const int) -0:61 Sequence -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 Constant: -0:61 2 (const int) -0:61 'invocation' ( temp uint) -0:62 move second child to first child ( temp 4-component vector of double) -0:62 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:62 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'invocation' ( temp uint) -0:62 Constant: -0:62 3 (const int) -0:62 subgroupShuffleDown ( global 4-component vector of double) -0:62 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:62 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:62 Constant: -0:62 3 (const int) -0:62 Constant: -0:62 3 (const int) -0:62 'invocation' ( temp uint) -0:64 move second child to first child ( temp int) -0:64 direct index ( temp int) -0:64 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:64 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'invocation' ( temp uint) -0:64 Constant: -0:64 1 (const int) -0:64 Constant: -0:64 0 (const int) -0:64 Convert bool to int ( temp int) -0:64 subgroupShuffleDown ( global bool) -0:64 Compare Less Than ( temp bool) -0:64 direct index ( temp int) -0:64 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:64 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:64 Constant: -0:64 0 (const int) -0:64 Constant: -0:64 1 (const int) -0:64 Constant: -0:64 0 (const int) -0:64 Constant: -0:64 0 (const int) -0:64 'invocation' ( temp uint) -0:65 move second child to first child ( temp 2-component vector of int) -0:65 vector swizzle ( temp 2-component vector of int) -0:65 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:65 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 'invocation' ( temp uint) -0:65 Constant: -0:65 1 (const int) -0:65 Sequence -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Convert bool to int ( temp 2-component vector of int) -0:65 subgroupShuffleDown ( global 2-component vector of bool) -0:65 Compare Less Than ( global 2-component vector of bool) -0:65 vector swizzle ( temp 2-component vector of int) -0:65 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:65 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:65 Constant: -0:65 1 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Sequence -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Constant: -0:65 0 (const int) -0:65 0 (const int) -0:65 'invocation' ( temp uint) -0:66 move second child to first child ( temp 3-component vector of int) -0:66 vector swizzle ( temp 3-component vector of int) -0:66 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:66 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'invocation' ( temp uint) -0:66 Constant: -0:66 1 (const int) -0:66 Sequence -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 2 (const int) -0:66 Convert bool to int ( temp 3-component vector of int) -0:66 subgroupShuffleDown ( global 3-component vector of bool) -0:66 Compare Less Than ( global 3-component vector of bool) -0:66 vector swizzle ( temp 3-component vector of int) -0:66 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:66 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 Sequence -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 2 (const int) -0:66 Constant: -0:66 0 (const int) -0:66 0 (const int) -0:66 0 (const int) -0:66 'invocation' ( temp uint) -0:67 move second child to first child ( temp 4-component vector of int) -0:67 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:67 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'invocation' ( temp uint) -0:67 Constant: -0:67 1 (const int) -0:67 Convert bool to int ( temp 4-component vector of int) -0:67 subgroupShuffleDown ( global 4-component vector of bool) -0:67 Compare Less Than ( global 4-component vector of bool) -0:67 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:67 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) -0:67 Constant: -0:67 1 (const int) -0:67 Constant: -0:67 1 (const int) -0:67 Constant: -0:67 0 (const int) -0:67 0 (const int) -0:67 0 (const int) -0:67 0 (const int) -0:67 'invocation' ( temp uint) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4}) - diff --git a/deps/glslang/Test/baseResults/glsl.450.subgroupVote.comp.out b/deps/glslang/Test/baseResults/glsl.450.subgroupVote.comp.out deleted file mode 100644 index 2c389daa..00000000 --- a/deps/glslang/Test/baseResults/glsl.450.subgroupVote.comp.out +++ /dev/null @@ -1,971 +0,0 @@ -glsl.450.subgroupVote.comp -Shader version: 450 -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_vote -local_size = (8, 8, 1) -0:? Sequence -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 uint) -0:18 'invocation' ( temp uint) -0:18 mod ( temp uint) -0:18 add ( temp uint) -0:18 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:18 'gl_SubgroupSize' ( in uint SubgroupSize) -0:18 Constant: -0:18 4 (const uint) -0:20 Test condition and select ( temp void) -0:20 Condition -0:20 subgroupAll ( global bool) -0:20 Compare Less Than ( temp bool) -0:20 r: direct index for structure (layout( column_major shared) buffer int) -0:20 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:20 'invocation' ( temp uint) -0:20 Constant: -0:20 4 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 true case -0:22 Sequence -0:22 move second child to first child ( temp int) -0:22 r: direct index for structure (layout( column_major shared) buffer int) -0:22 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:22 'invocation' ( temp uint) -0:22 Constant: -0:22 4 (const int) -0:22 Convert bool to int ( temp int) -0:22 subgroupAllEqual ( global bool) -0:22 direct index ( temp float) -0:22 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:22 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 0 (const int) -0:23 move second child to first child ( temp int) -0:23 r: direct index for structure (layout( column_major shared) buffer int) -0:23 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:23 'invocation' ( temp uint) -0:23 Constant: -0:23 4 (const int) -0:23 Convert bool to int ( temp int) -0:23 subgroupAllEqual ( global bool) -0:23 vector swizzle ( temp 2-component vector of float) -0:23 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 0 (const int) -0:23 Sequence -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 1 (const int) -0:24 move second child to first child ( temp int) -0:24 r: direct index for structure (layout( column_major shared) buffer int) -0:24 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:24 'invocation' ( temp uint) -0:24 Constant: -0:24 4 (const int) -0:24 Convert bool to int ( temp int) -0:24 subgroupAllEqual ( global bool) -0:24 vector swizzle ( temp 3-component vector of float) -0:24 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:24 Constant: -0:24 2 (const int) -0:24 Constant: -0:24 0 (const int) -0:24 Sequence -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 2 (const int) -0:25 move second child to first child ( temp int) -0:25 r: direct index for structure (layout( column_major shared) buffer int) -0:25 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:25 'invocation' ( temp uint) -0:25 Constant: -0:25 4 (const int) -0:25 Convert bool to int ( temp int) -0:25 subgroupAllEqual ( global bool) -0:25 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:25 Constant: -0:25 3 (const int) -0:25 Constant: -0:25 0 (const int) -0:27 move second child to first child ( temp int) -0:27 r: direct index for structure (layout( column_major shared) buffer int) -0:27 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:27 'invocation' ( temp uint) -0:27 Constant: -0:27 4 (const int) -0:27 Convert bool to int ( temp int) -0:27 subgroupAllEqual ( global bool) -0:27 direct index ( temp int) -0:27 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:27 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Constant: -0:27 0 (const int) -0:28 move second child to first child ( temp int) -0:28 r: direct index for structure (layout( column_major shared) buffer int) -0:28 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:28 'invocation' ( temp uint) -0:28 Constant: -0:28 4 (const int) -0:28 Convert bool to int ( temp int) -0:28 subgroupAllEqual ( global bool) -0:28 vector swizzle ( temp 2-component vector of int) -0:28 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:28 Constant: -0:28 1 (const int) -0:28 Constant: -0:28 1 (const int) -0:28 Sequence -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 1 (const int) -0:29 move second child to first child ( temp int) -0:29 r: direct index for structure (layout( column_major shared) buffer int) -0:29 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:29 'invocation' ( temp uint) -0:29 Constant: -0:29 4 (const int) -0:29 Convert bool to int ( temp int) -0:29 subgroupAllEqual ( global bool) -0:29 vector swizzle ( temp 3-component vector of int) -0:29 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 1 (const int) -0:29 Sequence -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 1 (const int) -0:29 Constant: -0:29 2 (const int) -0:30 move second child to first child ( temp int) -0:30 r: direct index for structure (layout( column_major shared) buffer int) -0:30 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:30 'invocation' ( temp uint) -0:30 Constant: -0:30 4 (const int) -0:30 Convert bool to int ( temp int) -0:30 subgroupAllEqual ( global bool) -0:30 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:30 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:30 Constant: -0:30 3 (const int) -0:30 Constant: -0:30 1 (const int) -0:32 move second child to first child ( temp int) -0:32 r: direct index for structure (layout( column_major shared) buffer int) -0:32 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:32 'invocation' ( temp uint) -0:32 Constant: -0:32 4 (const int) -0:32 Convert bool to int ( temp int) -0:32 subgroupAllEqual ( global bool) -0:32 direct index ( temp uint) -0:32 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 2 (const int) -0:32 Constant: -0:32 0 (const int) -0:33 move second child to first child ( temp int) -0:33 r: direct index for structure (layout( column_major shared) buffer int) -0:33 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:33 'invocation' ( temp uint) -0:33 Constant: -0:33 4 (const int) -0:33 Convert bool to int ( temp int) -0:33 subgroupAllEqual ( global bool) -0:33 vector swizzle ( temp 2-component vector of uint) -0:33 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 2 (const int) -0:33 Sequence -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 1 (const int) -0:34 move second child to first child ( temp int) -0:34 r: direct index for structure (layout( column_major shared) buffer int) -0:34 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:34 'invocation' ( temp uint) -0:34 Constant: -0:34 4 (const int) -0:34 Convert bool to int ( temp int) -0:34 subgroupAllEqual ( global bool) -0:34 vector swizzle ( temp 3-component vector of uint) -0:34 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:34 Constant: -0:34 2 (const int) -0:34 Constant: -0:34 2 (const int) -0:34 Sequence -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 Constant: -0:34 2 (const int) -0:35 move second child to first child ( temp int) -0:35 r: direct index for structure (layout( column_major shared) buffer int) -0:35 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:35 'invocation' ( temp uint) -0:35 Constant: -0:35 4 (const int) -0:35 Convert bool to int ( temp int) -0:35 subgroupAllEqual ( global bool) -0:35 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:35 Constant: -0:35 3 (const int) -0:35 Constant: -0:35 2 (const int) -0:20 false case -0:37 Test condition and select ( temp void) -0:37 Condition -0:37 subgroupAny ( global bool) -0:37 Compare Less Than ( temp bool) -0:37 r: direct index for structure (layout( column_major shared) buffer int) -0:37 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:37 'invocation' ( temp uint) -0:37 Constant: -0:37 4 (const int) -0:37 Constant: -0:37 0 (const int) -0:37 true case -0:39 Sequence -0:39 move second child to first child ( temp int) -0:39 r: direct index for structure (layout( column_major shared) buffer int) -0:39 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:39 'invocation' ( temp uint) -0:39 Constant: -0:39 4 (const int) -0:39 Convert bool to int ( temp int) -0:39 subgroupAllEqual ( global bool) -0:39 direct index ( temp double) -0:39 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 3 (const int) -0:39 Constant: -0:39 0 (const int) -0:40 move second child to first child ( temp int) -0:40 r: direct index for structure (layout( column_major shared) buffer int) -0:40 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:40 'invocation' ( temp uint) -0:40 Constant: -0:40 4 (const int) -0:40 Convert bool to int ( temp int) -0:40 subgroupAllEqual ( global bool) -0:40 vector swizzle ( temp 2-component vector of double) -0:40 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 3 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:41 move second child to first child ( temp int) -0:41 r: direct index for structure (layout( column_major shared) buffer int) -0:41 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:41 'invocation' ( temp uint) -0:41 Constant: -0:41 4 (const int) -0:41 Convert bool to int ( temp int) -0:41 subgroupAllEqual ( global bool) -0:41 vector swizzle ( temp 3-component vector of double) -0:41 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:41 Constant: -0:41 2 (const int) -0:41 Constant: -0:41 3 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 2 (const int) -0:42 move second child to first child ( temp int) -0:42 r: direct index for structure (layout( column_major shared) buffer int) -0:42 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:42 'invocation' ( temp uint) -0:42 Constant: -0:42 4 (const int) -0:42 Convert bool to int ( temp int) -0:42 subgroupAllEqual ( global bool) -0:42 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:42 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:42 Constant: -0:42 3 (const int) -0:42 Constant: -0:42 3 (const int) -0:44 move second child to first child ( temp int) -0:44 r: direct index for structure (layout( column_major shared) buffer int) -0:44 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:44 'invocation' ( temp uint) -0:44 Constant: -0:44 4 (const int) -0:44 Construct int ( temp int) -0:44 Convert bool to int ( temp int) -0:44 subgroupAllEqual ( global bool) -0:44 Compare Less Than ( temp bool) -0:44 direct index ( temp int) -0:44 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 1 (const int) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 0 (const int) -0:45 move second child to first child ( temp int) -0:45 r: direct index for structure (layout( column_major shared) buffer int) -0:45 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:45 'invocation' ( temp uint) -0:45 Constant: -0:45 4 (const int) -0:45 Construct int ( temp int) -0:45 Construct ivec2 ( temp 2-component vector of int) -0:45 Convert bool to int ( temp int) -0:45 subgroupAllEqual ( global bool) -0:45 Compare Less Than ( global 2-component vector of bool) -0:45 vector swizzle ( temp 2-component vector of int) -0:45 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 0 (const int) -0:45 0 (const int) -0:46 move second child to first child ( temp int) -0:46 r: direct index for structure (layout( column_major shared) buffer int) -0:46 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:46 'invocation' ( temp uint) -0:46 Constant: -0:46 4 (const int) -0:46 Construct int ( temp int) -0:46 Construct ivec3 ( temp 3-component vector of int) -0:46 Convert bool to int ( temp int) -0:46 subgroupAllEqual ( global bool) -0:46 Compare Less Than ( global 3-component vector of bool) -0:46 vector swizzle ( temp 3-component vector of int) -0:46 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 Constant: -0:46 0 (const int) -0:46 0 (const int) -0:46 0 (const int) -0:47 move second child to first child ( temp int) -0:47 r: direct index for structure (layout( column_major shared) buffer int) -0:47 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:47 'invocation' ( temp uint) -0:47 Constant: -0:47 4 (const int) -0:47 Construct int ( temp int) -0:47 Construct ivec4 ( temp 4-component vector of int) -0:47 Convert bool to int ( temp int) -0:47 subgroupAllEqual ( global bool) -0:47 Compare Less Than ( global 4-component vector of bool) -0:47 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:47 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:47 Constant: -0:47 1 (const int) -0:47 Constant: -0:47 1 (const int) -0:47 Constant: -0:47 0 (const int) -0:47 0 (const int) -0:47 0 (const int) -0:47 0 (const int) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) - - -Linked compute stage: - - -Shader version: 450 -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_vote -local_size = (8, 8, 1) -0:? Sequence -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 uint) -0:18 'invocation' ( temp uint) -0:18 mod ( temp uint) -0:18 add ( temp uint) -0:18 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:18 'gl_SubgroupSize' ( in uint SubgroupSize) -0:18 Constant: -0:18 4 (const uint) -0:20 Test condition and select ( temp void) -0:20 Condition -0:20 subgroupAll ( global bool) -0:20 Compare Less Than ( temp bool) -0:20 r: direct index for structure (layout( column_major shared) buffer int) -0:20 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:20 'invocation' ( temp uint) -0:20 Constant: -0:20 4 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 true case -0:22 Sequence -0:22 move second child to first child ( temp int) -0:22 r: direct index for structure (layout( column_major shared) buffer int) -0:22 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:22 'invocation' ( temp uint) -0:22 Constant: -0:22 4 (const int) -0:22 Convert bool to int ( temp int) -0:22 subgroupAllEqual ( global bool) -0:22 direct index ( temp float) -0:22 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:22 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 0 (const int) -0:23 move second child to first child ( temp int) -0:23 r: direct index for structure (layout( column_major shared) buffer int) -0:23 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:23 'invocation' ( temp uint) -0:23 Constant: -0:23 4 (const int) -0:23 Convert bool to int ( temp int) -0:23 subgroupAllEqual ( global bool) -0:23 vector swizzle ( temp 2-component vector of float) -0:23 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 0 (const int) -0:23 Sequence -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 1 (const int) -0:24 move second child to first child ( temp int) -0:24 r: direct index for structure (layout( column_major shared) buffer int) -0:24 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:24 'invocation' ( temp uint) -0:24 Constant: -0:24 4 (const int) -0:24 Convert bool to int ( temp int) -0:24 subgroupAllEqual ( global bool) -0:24 vector swizzle ( temp 3-component vector of float) -0:24 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:24 Constant: -0:24 2 (const int) -0:24 Constant: -0:24 0 (const int) -0:24 Sequence -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 2 (const int) -0:25 move second child to first child ( temp int) -0:25 r: direct index for structure (layout( column_major shared) buffer int) -0:25 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:25 'invocation' ( temp uint) -0:25 Constant: -0:25 4 (const int) -0:25 Convert bool to int ( temp int) -0:25 subgroupAllEqual ( global bool) -0:25 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:25 Constant: -0:25 3 (const int) -0:25 Constant: -0:25 0 (const int) -0:27 move second child to first child ( temp int) -0:27 r: direct index for structure (layout( column_major shared) buffer int) -0:27 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:27 'invocation' ( temp uint) -0:27 Constant: -0:27 4 (const int) -0:27 Convert bool to int ( temp int) -0:27 subgroupAllEqual ( global bool) -0:27 direct index ( temp int) -0:27 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:27 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Constant: -0:27 0 (const int) -0:28 move second child to first child ( temp int) -0:28 r: direct index for structure (layout( column_major shared) buffer int) -0:28 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:28 'invocation' ( temp uint) -0:28 Constant: -0:28 4 (const int) -0:28 Convert bool to int ( temp int) -0:28 subgroupAllEqual ( global bool) -0:28 vector swizzle ( temp 2-component vector of int) -0:28 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:28 Constant: -0:28 1 (const int) -0:28 Constant: -0:28 1 (const int) -0:28 Sequence -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 1 (const int) -0:29 move second child to first child ( temp int) -0:29 r: direct index for structure (layout( column_major shared) buffer int) -0:29 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:29 'invocation' ( temp uint) -0:29 Constant: -0:29 4 (const int) -0:29 Convert bool to int ( temp int) -0:29 subgroupAllEqual ( global bool) -0:29 vector swizzle ( temp 3-component vector of int) -0:29 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 1 (const int) -0:29 Sequence -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 1 (const int) -0:29 Constant: -0:29 2 (const int) -0:30 move second child to first child ( temp int) -0:30 r: direct index for structure (layout( column_major shared) buffer int) -0:30 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:30 'invocation' ( temp uint) -0:30 Constant: -0:30 4 (const int) -0:30 Convert bool to int ( temp int) -0:30 subgroupAllEqual ( global bool) -0:30 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:30 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:30 Constant: -0:30 3 (const int) -0:30 Constant: -0:30 1 (const int) -0:32 move second child to first child ( temp int) -0:32 r: direct index for structure (layout( column_major shared) buffer int) -0:32 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:32 'invocation' ( temp uint) -0:32 Constant: -0:32 4 (const int) -0:32 Convert bool to int ( temp int) -0:32 subgroupAllEqual ( global bool) -0:32 direct index ( temp uint) -0:32 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 2 (const int) -0:32 Constant: -0:32 0 (const int) -0:33 move second child to first child ( temp int) -0:33 r: direct index for structure (layout( column_major shared) buffer int) -0:33 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:33 'invocation' ( temp uint) -0:33 Constant: -0:33 4 (const int) -0:33 Convert bool to int ( temp int) -0:33 subgroupAllEqual ( global bool) -0:33 vector swizzle ( temp 2-component vector of uint) -0:33 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 2 (const int) -0:33 Sequence -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 1 (const int) -0:34 move second child to first child ( temp int) -0:34 r: direct index for structure (layout( column_major shared) buffer int) -0:34 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:34 'invocation' ( temp uint) -0:34 Constant: -0:34 4 (const int) -0:34 Convert bool to int ( temp int) -0:34 subgroupAllEqual ( global bool) -0:34 vector swizzle ( temp 3-component vector of uint) -0:34 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:34 Constant: -0:34 2 (const int) -0:34 Constant: -0:34 2 (const int) -0:34 Sequence -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 Constant: -0:34 2 (const int) -0:35 move second child to first child ( temp int) -0:35 r: direct index for structure (layout( column_major shared) buffer int) -0:35 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:35 'invocation' ( temp uint) -0:35 Constant: -0:35 4 (const int) -0:35 Convert bool to int ( temp int) -0:35 subgroupAllEqual ( global bool) -0:35 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:35 Constant: -0:35 3 (const int) -0:35 Constant: -0:35 2 (const int) -0:20 false case -0:37 Test condition and select ( temp void) -0:37 Condition -0:37 subgroupAny ( global bool) -0:37 Compare Less Than ( temp bool) -0:37 r: direct index for structure (layout( column_major shared) buffer int) -0:37 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:37 'invocation' ( temp uint) -0:37 Constant: -0:37 4 (const int) -0:37 Constant: -0:37 0 (const int) -0:37 true case -0:39 Sequence -0:39 move second child to first child ( temp int) -0:39 r: direct index for structure (layout( column_major shared) buffer int) -0:39 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:39 'invocation' ( temp uint) -0:39 Constant: -0:39 4 (const int) -0:39 Convert bool to int ( temp int) -0:39 subgroupAllEqual ( global bool) -0:39 direct index ( temp double) -0:39 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 3 (const int) -0:39 Constant: -0:39 0 (const int) -0:40 move second child to first child ( temp int) -0:40 r: direct index for structure (layout( column_major shared) buffer int) -0:40 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:40 'invocation' ( temp uint) -0:40 Constant: -0:40 4 (const int) -0:40 Convert bool to int ( temp int) -0:40 subgroupAllEqual ( global bool) -0:40 vector swizzle ( temp 2-component vector of double) -0:40 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 3 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:41 move second child to first child ( temp int) -0:41 r: direct index for structure (layout( column_major shared) buffer int) -0:41 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:41 'invocation' ( temp uint) -0:41 Constant: -0:41 4 (const int) -0:41 Convert bool to int ( temp int) -0:41 subgroupAllEqual ( global bool) -0:41 vector swizzle ( temp 3-component vector of double) -0:41 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:41 Constant: -0:41 2 (const int) -0:41 Constant: -0:41 3 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 2 (const int) -0:42 move second child to first child ( temp int) -0:42 r: direct index for structure (layout( column_major shared) buffer int) -0:42 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:42 'invocation' ( temp uint) -0:42 Constant: -0:42 4 (const int) -0:42 Convert bool to int ( temp int) -0:42 subgroupAllEqual ( global bool) -0:42 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double) -0:42 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:42 Constant: -0:42 3 (const int) -0:42 Constant: -0:42 3 (const int) -0:44 move second child to first child ( temp int) -0:44 r: direct index for structure (layout( column_major shared) buffer int) -0:44 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:44 'invocation' ( temp uint) -0:44 Constant: -0:44 4 (const int) -0:44 Construct int ( temp int) -0:44 Convert bool to int ( temp int) -0:44 subgroupAllEqual ( global bool) -0:44 Compare Less Than ( temp bool) -0:44 direct index ( temp int) -0:44 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 1 (const int) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 0 (const int) -0:45 move second child to first child ( temp int) -0:45 r: direct index for structure (layout( column_major shared) buffer int) -0:45 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:45 'invocation' ( temp uint) -0:45 Constant: -0:45 4 (const int) -0:45 Construct int ( temp int) -0:45 Construct ivec2 ( temp 2-component vector of int) -0:45 Convert bool to int ( temp int) -0:45 subgroupAllEqual ( global bool) -0:45 Compare Less Than ( global 2-component vector of bool) -0:45 vector swizzle ( temp 2-component vector of int) -0:45 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 0 (const int) -0:45 0 (const int) -0:46 move second child to first child ( temp int) -0:46 r: direct index for structure (layout( column_major shared) buffer int) -0:46 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:46 'invocation' ( temp uint) -0:46 Constant: -0:46 4 (const int) -0:46 Construct int ( temp int) -0:46 Construct ivec3 ( temp 3-component vector of int) -0:46 Convert bool to int ( temp int) -0:46 subgroupAllEqual ( global bool) -0:46 Compare Less Than ( global 3-component vector of bool) -0:46 vector swizzle ( temp 3-component vector of int) -0:46 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 Constant: -0:46 0 (const int) -0:46 0 (const int) -0:46 0 (const int) -0:47 move second child to first child ( temp int) -0:47 r: direct index for structure (layout( column_major shared) buffer int) -0:47 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:47 'invocation' ( temp uint) -0:47 Constant: -0:47 4 (const int) -0:47 Construct int ( temp int) -0:47 Construct ivec4 ( temp 4-component vector of int) -0:47 Convert bool to int ( temp int) -0:47 subgroupAllEqual ( global bool) -0:47 Compare Less Than ( global 4-component vector of bool) -0:47 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int) -0:47 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) -0:47 Constant: -0:47 1 (const int) -0:47 Constant: -0:47 1 (const int) -0:47 Constant: -0:47 0 (const int) -0:47 0 (const int) -0:47 0 (const int) -0:47 0 (const int) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r}) - diff --git a/deps/glslang/Test/baseResults/glsl.460.subgroup.mesh.out b/deps/glslang/Test/baseResults/glsl.460.subgroup.mesh.out deleted file mode 100644 index bb0e4eb8..00000000 --- a/deps/glslang/Test/baseResults/glsl.460.subgroup.mesh.out +++ /dev/null @@ -1,1237 +0,0 @@ -glsl.460.subgroup.mesh -ERROR: 0:6: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:7: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:8: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:9: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:10: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:11: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:12: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:13: 'gl_NumSubgroups' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:14: 'gl_SubgroupID' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:15: 'subgroupMemoryBarrierShared' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:17: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:18: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:19: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:21: 'gl_SubgroupEqMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:22: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:23: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:24: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:25: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:26: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:27: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:28: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:29: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:30: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:31: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:32: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:33: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:34: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:35: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:37: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle -ERROR: 0:38: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle -ERROR: 0:39: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative -ERROR: 0:40: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative -ERROR: 0:42: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:43: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:44: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:45: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:46: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:47: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:48: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:49: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:50: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:51: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:52: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:53: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:54: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:55: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:56: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:57: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:58: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:59: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:60: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:61: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:62: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:64: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:65: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:66: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:67: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:68: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:69: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:70: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:72: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:73: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:74: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:75: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:77: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:78: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:79: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:80: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:81: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:82: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:83: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:84: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:85: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:86: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:87: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:88: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:89: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:90: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:91: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:92: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:93: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:94: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:298: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:299: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:300: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:301: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 90 compilation errors. No code generated. - - -Shader version: 460 -Requested GL_KHR_shader_subgroup_arithmetic -Requested GL_KHR_shader_subgroup_ballot -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_clustered -Requested GL_KHR_shader_subgroup_quad -Requested GL_KHR_shader_subgroup_shuffle -Requested GL_KHR_shader_subgroup_shuffle_relative -Requested GL_KHR_shader_subgroup_vote -Requested GL_NV_mesh_shader -Requested GL_NV_shader_sm_builtins -Requested GL_NV_shader_subgroup_partitioned -max_vertices = 81 -max_primitives = 32 -output primitive = triangles -local_size = (32, 1, 1) -ERROR: node is still EOpNull! -0:3 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float) -0:3 Function Parameters: -0:3 'f4' ( in 4-component vector of float) -0:? Sequence -0:6 'gl_SubgroupSize' ( in uint SubgroupSize) -0:7 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:8 subgroupBarrier ( global void) -0:9 subgroupMemoryBarrier ( global void) -0:10 subgroupMemoryBarrierBuffer ( global void) -0:11 subgroupMemoryBarrierImage ( global void) -0:12 subgroupElect ( global bool) -0:13 'gl_NumSubgroups' ( in uint NumSubgroups) -0:14 'gl_SubgroupID' ( in uint SubgroupID) -0:15 subgroupMemoryBarrierShared ( global void) -0:17 subgroupAll ( global bool) -0:17 Constant: -0:17 true (const bool) -0:18 subgroupAny ( global bool) -0:18 Constant: -0:18 false (const bool) -0:19 subgroupAllEqual ( global bool) -0:19 'f4' ( in 4-component vector of float) -0:21 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask) -0:22 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask) -0:23 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask) -0:24 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask) -0:25 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask) -0:26 subgroupBroadcast ( global 4-component vector of float) -0:26 'f4' ( in 4-component vector of float) -0:26 Constant: -0:26 0 (const uint) -0:27 subgroupBroadcastFirst ( global 4-component vector of float) -0:27 'f4' ( in 4-component vector of float) -0:28 Sequence -0:28 move second child to first child ( temp 4-component vector of uint) -0:28 'ballot' ( temp 4-component vector of uint) -0:28 subgroupBallot ( global 4-component vector of uint) -0:28 Constant: -0:28 false (const bool) -0:29 subgroupInverseBallot ( global bool) -0:29 Constant: -0:29 1 (const uint) -0:29 1 (const uint) -0:29 1 (const uint) -0:29 1 (const uint) -0:30 subgroupBallotBitExtract ( global bool) -0:30 'ballot' ( temp 4-component vector of uint) -0:30 Constant: -0:30 0 (const uint) -0:31 subgroupBallotBitCount ( global uint) -0:31 'ballot' ( temp 4-component vector of uint) -0:32 subgroupBallotInclusiveBitCount ( global uint) -0:32 'ballot' ( temp 4-component vector of uint) -0:33 subgroupBallotExclusiveBitCount ( global uint) -0:33 'ballot' ( temp 4-component vector of uint) -0:34 subgroupBallotFindLSB ( global uint) -0:34 'ballot' ( temp 4-component vector of uint) -0:35 subgroupBallotFindMSB ( global uint) -0:35 'ballot' ( temp 4-component vector of uint) -0:37 subgroupShuffle ( global 4-component vector of float) -0:37 'f4' ( in 4-component vector of float) -0:37 Constant: -0:37 0 (const uint) -0:38 subgroupShuffleXor ( global 4-component vector of float) -0:38 'f4' ( in 4-component vector of float) -0:38 Constant: -0:38 1 (const uint) -0:39 subgroupShuffleUp ( global 4-component vector of float) -0:39 'f4' ( in 4-component vector of float) -0:39 Constant: -0:39 1 (const uint) -0:40 subgroupShuffleDown ( global 4-component vector of float) -0:40 'f4' ( in 4-component vector of float) -0:40 Constant: -0:40 1 (const uint) -0:42 move second child to first child ( temp 4-component vector of float) -0:42 'result' ( temp 4-component vector of float) -0:42 subgroupAdd ( global 4-component vector of float) -0:42 'f4' ( in 4-component vector of float) -0:43 subgroupMul ( global 4-component vector of float) -0:43 'f4' ( in 4-component vector of float) -0:44 subgroupMin ( global 4-component vector of float) -0:44 'f4' ( in 4-component vector of float) -0:45 subgroupMax ( global 4-component vector of float) -0:45 'f4' ( in 4-component vector of float) -0:46 subgroupAnd ( global 4-component vector of uint) -0:46 'ballot' ( temp 4-component vector of uint) -0:47 subgroupOr ( global 4-component vector of uint) -0:47 'ballot' ( temp 4-component vector of uint) -0:48 subgroupXor ( global 4-component vector of uint) -0:48 'ballot' ( temp 4-component vector of uint) -0:49 subgroupInclusiveAdd ( global 4-component vector of float) -0:49 'f4' ( in 4-component vector of float) -0:50 subgroupInclusiveMul ( global 4-component vector of float) -0:50 'f4' ( in 4-component vector of float) -0:51 subgroupInclusiveMin ( global 4-component vector of float) -0:51 'f4' ( in 4-component vector of float) -0:52 subgroupInclusiveMax ( global 4-component vector of float) -0:52 'f4' ( in 4-component vector of float) -0:53 subgroupInclusiveAnd ( global 4-component vector of uint) -0:53 'ballot' ( temp 4-component vector of uint) -0:54 subgroupInclusiveOr ( global 4-component vector of uint) -0:54 'ballot' ( temp 4-component vector of uint) -0:55 subgroupInclusiveXor ( global 4-component vector of uint) -0:55 'ballot' ( temp 4-component vector of uint) -0:56 subgroupExclusiveAdd ( global 4-component vector of float) -0:56 'f4' ( in 4-component vector of float) -0:57 subgroupExclusiveMul ( global 4-component vector of float) -0:57 'f4' ( in 4-component vector of float) -0:58 subgroupExclusiveMin ( global 4-component vector of float) -0:58 'f4' ( in 4-component vector of float) -0:59 subgroupExclusiveMax ( global 4-component vector of float) -0:59 'f4' ( in 4-component vector of float) -0:60 subgroupExclusiveAnd ( global 4-component vector of uint) -0:60 'ballot' ( temp 4-component vector of uint) -0:61 subgroupExclusiveOr ( global 4-component vector of uint) -0:61 'ballot' ( temp 4-component vector of uint) -0:62 subgroupExclusiveXor ( global 4-component vector of uint) -0:62 'ballot' ( temp 4-component vector of uint) -0:64 subgroupClusteredAdd ( global 4-component vector of float) -0:64 'f4' ( in 4-component vector of float) -0:64 Constant: -0:64 2 (const uint) -0:65 subgroupClusteredMul ( global 4-component vector of float) -0:65 'f4' ( in 4-component vector of float) -0:65 Constant: -0:65 2 (const uint) -0:66 subgroupClusteredMin ( global 4-component vector of float) -0:66 'f4' ( in 4-component vector of float) -0:66 Constant: -0:66 2 (const uint) -0:67 subgroupClusteredMax ( global 4-component vector of float) -0:67 'f4' ( in 4-component vector of float) -0:67 Constant: -0:67 2 (const uint) -0:68 subgroupClusteredAnd ( global 4-component vector of uint) -0:68 'ballot' ( temp 4-component vector of uint) -0:68 Constant: -0:68 2 (const uint) -0:69 subgroupClusteredOr ( global 4-component vector of uint) -0:69 'ballot' ( temp 4-component vector of uint) -0:69 Constant: -0:69 2 (const uint) -0:70 subgroupClusteredXor ( global 4-component vector of uint) -0:70 'ballot' ( temp 4-component vector of uint) -0:70 Constant: -0:70 2 (const uint) -0:72 subgroupQuadBroadcast ( global 4-component vector of float) -0:72 'f4' ( in 4-component vector of float) -0:72 Constant: -0:72 0 (const uint) -0:73 subgroupQuadSwapHorizontal ( global 4-component vector of float) -0:73 'f4' ( in 4-component vector of float) -0:74 subgroupQuadSwapVertical ( global 4-component vector of float) -0:74 'f4' ( in 4-component vector of float) -0:75 subgroupQuadSwapDiagonal ( global 4-component vector of float) -0:75 'f4' ( in 4-component vector of float) -0:77 Sequence -0:77 move second child to first child ( temp 4-component vector of uint) -0:77 'parti' ( temp 4-component vector of uint) -0:77 subgroupPartitionNV ( global 4-component vector of uint) -0:77 'f4' ( in 4-component vector of float) -0:78 subgroupPartitionedAddNV ( global 4-component vector of float) -0:78 'f4' ( in 4-component vector of float) -0:78 'parti' ( temp 4-component vector of uint) -0:79 subgroupPartitionedMulNV ( global 4-component vector of float) -0:79 'f4' ( in 4-component vector of float) -0:79 'parti' ( temp 4-component vector of uint) -0:80 subgroupPartitionedMinNV ( global 4-component vector of float) -0:80 'f4' ( in 4-component vector of float) -0:80 'parti' ( temp 4-component vector of uint) -0:81 subgroupPartitionedMaxNV ( global 4-component vector of float) -0:81 'f4' ( in 4-component vector of float) -0:81 'parti' ( temp 4-component vector of uint) -0:82 subgroupPartitionedAndNV ( global 4-component vector of uint) -0:82 'ballot' ( temp 4-component vector of uint) -0:82 'parti' ( temp 4-component vector of uint) -0:83 subgroupPartitionedOrNV ( global 4-component vector of uint) -0:83 'ballot' ( temp 4-component vector of uint) -0:83 'parti' ( temp 4-component vector of uint) -0:84 subgroupPartitionedXorNV ( global 4-component vector of uint) -0:84 'ballot' ( temp 4-component vector of uint) -0:84 'parti' ( temp 4-component vector of uint) -0:85 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float) -0:85 'f4' ( in 4-component vector of float) -0:85 'parti' ( temp 4-component vector of uint) -0:86 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float) -0:86 'f4' ( in 4-component vector of float) -0:86 'parti' ( temp 4-component vector of uint) -0:87 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float) -0:87 'f4' ( in 4-component vector of float) -0:87 'parti' ( temp 4-component vector of uint) -0:88 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float) -0:88 'f4' ( in 4-component vector of float) -0:88 'parti' ( temp 4-component vector of uint) -0:89 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint) -0:89 'ballot' ( temp 4-component vector of uint) -0:89 'parti' ( temp 4-component vector of uint) -0:90 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint) -0:90 'ballot' ( temp 4-component vector of uint) -0:90 'parti' ( temp 4-component vector of uint) -0:91 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint) -0:91 'ballot' ( temp 4-component vector of uint) -0:91 'parti' ( temp 4-component vector of uint) -0:92 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float) -0:92 'f4' ( in 4-component vector of float) -0:92 'parti' ( temp 4-component vector of uint) -0:93 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float) -0:93 'f4' ( in 4-component vector of float) -0:93 'parti' ( temp 4-component vector of uint) -0:94 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float) -0:94 'f4' ( in 4-component vector of float) -0:94 'parti' ( temp 4-component vector of uint) -0:95 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float) -0:95 'f4' ( in 4-component vector of float) -0:95 'parti' ( temp 4-component vector of uint) -0:96 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint) -0:96 'ballot' ( temp 4-component vector of uint) -0:96 'parti' ( temp 4-component vector of uint) -0:97 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint) -0:97 'ballot' ( temp 4-component vector of uint) -0:97 'parti' ( temp 4-component vector of uint) -0:98 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint) -0:98 'ballot' ( temp 4-component vector of uint) -0:98 'parti' ( temp 4-component vector of uint) -0:100 Branch: Return with expression -0:100 'result' ( temp 4-component vector of float) -0:120 Function Definition: main( ( global void) -0:120 Function Parameters: -0:122 Sequence -0:122 Sequence -0:122 move second child to first child ( temp uint) -0:122 'iid' ( temp uint) -0:122 direct index ( temp uint) -0:122 'gl_LocalInvocationID' ( in 3-component vector of uint LocalInvocationID) -0:122 Constant: -0:122 0 (const int) -0:123 Sequence -0:123 move second child to first child ( temp uint) -0:123 'gid' ( temp uint) -0:123 direct index ( temp uint) -0:123 'gl_WorkGroupID' ( in 3-component vector of uint WorkGroupID) -0:123 Constant: -0:123 0 (const int) -0:125 move second child to first child ( temp 4-component vector of float) -0:125 gl_Position: direct index for structure ( out 4-component vector of float Position) -0:125 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 4-element array of float ClipDistance gl_ClipDistance, out unsized 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of unsized-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of unsized-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:125 'gl_MeshVerticesNV' ( out 81-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 4-element array of float ClipDistance gl_ClipDistance, out unsized 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of unsized-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of unsized-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:125 'iid' ( temp uint) -0:125 Constant: -0:125 0 (const int) -0:125 Constant: -0:125 1.000000 -0:125 1.000000 -0:125 1.000000 -0:125 1.000000 -0:126 move second child to first child ( temp float) -0:126 gl_PointSize: direct index for structure ( out float PointSize) -0:126 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 4-element array of float ClipDistance gl_ClipDistance, out unsized 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of unsized-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of unsized-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:126 'gl_MeshVerticesNV' ( out 81-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 4-element array of float ClipDistance gl_ClipDistance, out unsized 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of unsized-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of unsized-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:126 'iid' ( temp uint) -0:126 Constant: -0:126 1 (const int) -0:126 Constant: -0:126 2.000000 -0:127 move second child to first child ( temp float) -0:127 direct index ( temp float ClipDistance) -0:127 gl_ClipDistance: direct index for structure ( out unsized 4-element array of float ClipDistance) -0:127 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 4-element array of float ClipDistance gl_ClipDistance, out unsized 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of unsized-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of unsized-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:127 'gl_MeshVerticesNV' ( out 81-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 4-element array of float ClipDistance gl_ClipDistance, out unsized 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of unsized-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of unsized-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:127 'iid' ( temp uint) -0:127 Constant: -0:127 2 (const int) -0:127 Constant: -0:127 3 (const int) -0:127 Constant: -0:127 3.000000 -0:128 move second child to first child ( temp float) -0:128 direct index ( temp float CullDistance) -0:128 gl_CullDistance: direct index for structure ( out unsized 3-element array of float CullDistance) -0:128 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 4-element array of float ClipDistance gl_ClipDistance, out unsized 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of unsized-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of unsized-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:128 'gl_MeshVerticesNV' ( out 81-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 4-element array of float ClipDistance gl_ClipDistance, out unsized 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of unsized-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of unsized-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:128 'iid' ( temp uint) -0:128 Constant: -0:128 3 (const int) -0:128 Constant: -0:128 2 (const int) -0:128 Constant: -0:128 4.000000 -0:130 MemoryBarrierShared ( global void) -0:130 Barrier ( global void) -0:132 move second child to first child ( temp 4-component vector of float) -0:132 gl_Position: direct index for structure ( out 4-component vector of float Position) -0:132 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 4-element array of float ClipDistance gl_ClipDistance, out unsized 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of unsized-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of unsized-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:132 'gl_MeshVerticesNV' ( out 81-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 4-element array of float ClipDistance gl_ClipDistance, out unsized 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of unsized-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of unsized-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:132 add ( temp uint) -0:132 'iid' ( temp uint) -0:132 Constant: -0:132 1 (const uint) -0:132 Constant: -0:132 0 (const int) -0:132 gl_Position: direct index for structure ( out 4-component vector of float Position) -0:132 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 4-element array of float ClipDistance gl_ClipDistance, out unsized 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of unsized-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of unsized-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:132 'gl_MeshVerticesNV' ( out 81-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 4-element array of float ClipDistance gl_ClipDistance, out unsized 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of unsized-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of unsized-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:132 'iid' ( temp uint) -0:132 Constant: -0:132 0 (const int) -0:133 move second child to first child ( temp float) -0:133 gl_PointSize: direct index for structure ( out float PointSize) -0:133 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 4-element array of float ClipDistance gl_ClipDistance, out unsized 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of unsized-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of unsized-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:133 'gl_MeshVerticesNV' ( out 81-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 4-element array of float ClipDistance gl_ClipDistance, out unsized 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of unsized-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of unsized-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:133 add ( temp uint) -0:133 'iid' ( temp uint) -0:133 Constant: -0:133 1 (const uint) -0:133 Constant: -0:133 1 (const int) -0:133 gl_PointSize: direct index for structure ( out float PointSize) -0:133 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 4-element array of float ClipDistance gl_ClipDistance, out unsized 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of unsized-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of unsized-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:133 'gl_MeshVerticesNV' ( out 81-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 4-element array of float ClipDistance gl_ClipDistance, out unsized 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of unsized-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of unsized-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:133 'iid' ( temp uint) -0:133 Constant: -0:133 1 (const int) -0:134 move second child to first child ( temp float) -0:134 direct index ( temp float ClipDistance) -0:134 gl_ClipDistance: direct index for structure ( out unsized 4-element array of float ClipDistance) -0:134 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 4-element array of float ClipDistance gl_ClipDistance, out unsized 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of unsized-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of unsized-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:134 'gl_MeshVerticesNV' ( out 81-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 4-element array of float ClipDistance gl_ClipDistance, out unsized 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of unsized-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of unsized-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:134 add ( temp uint) -0:134 'iid' ( temp uint) -0:134 Constant: -0:134 1 (const uint) -0:134 Constant: -0:134 2 (const int) -0:134 Constant: -0:134 3 (const int) -0:134 direct index ( temp float ClipDistance) -0:134 gl_ClipDistance: direct index for structure ( out unsized 4-element array of float ClipDistance) -0:134 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 4-element array of float ClipDistance gl_ClipDistance, out unsized 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of unsized-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of unsized-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:134 'gl_MeshVerticesNV' ( out 81-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 4-element array of float ClipDistance gl_ClipDistance, out unsized 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of unsized-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of unsized-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:134 'iid' ( temp uint) -0:134 Constant: -0:134 2 (const int) -0:134 Constant: -0:134 3 (const int) -0:135 move second child to first child ( temp float) -0:135 direct index ( temp float CullDistance) -0:135 gl_CullDistance: direct index for structure ( out unsized 3-element array of float CullDistance) -0:135 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 4-element array of float ClipDistance gl_ClipDistance, out unsized 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of unsized-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of unsized-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:135 'gl_MeshVerticesNV' ( out 81-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 4-element array of float ClipDistance gl_ClipDistance, out unsized 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of unsized-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of unsized-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:135 add ( temp uint) -0:135 'iid' ( temp uint) -0:135 Constant: -0:135 1 (const uint) -0:135 Constant: -0:135 3 (const int) -0:135 Constant: -0:135 2 (const int) -0:135 direct index ( temp float CullDistance) -0:135 gl_CullDistance: direct index for structure ( out unsized 3-element array of float CullDistance) -0:135 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 4-element array of float ClipDistance gl_ClipDistance, out unsized 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of unsized-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of unsized-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:135 'gl_MeshVerticesNV' ( out 81-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 4-element array of float ClipDistance gl_ClipDistance, out unsized 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of unsized-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of unsized-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:135 'iid' ( temp uint) -0:135 Constant: -0:135 3 (const int) -0:135 Constant: -0:135 2 (const int) -0:137 MemoryBarrierShared ( global void) -0:137 Barrier ( global void) -0:139 move second child to first child ( temp int) -0:139 gl_PrimitiveID: direct index for structure ( perprimitiveNV out int PrimitiveID) -0:139 indirect index ( perprimitiveNV temp block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out unsized 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of unsized-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:139 'gl_MeshPrimitivesNV' ( perprimitiveNV out 32-element array of block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out unsized 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of unsized-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:139 'iid' ( temp uint) -0:139 Constant: -0:139 0 (const int) -0:139 Constant: -0:139 6 (const int) -0:140 move second child to first child ( temp int) -0:140 gl_Layer: direct index for structure ( perprimitiveNV out int Layer) -0:140 indirect index ( perprimitiveNV temp block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out unsized 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of unsized-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:140 'gl_MeshPrimitivesNV' ( perprimitiveNV out 32-element array of block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out unsized 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of unsized-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:140 'iid' ( temp uint) -0:140 Constant: -0:140 1 (const int) -0:140 Constant: -0:140 7 (const int) -0:141 move second child to first child ( temp int) -0:141 gl_ViewportIndex: direct index for structure ( perprimitiveNV out int ViewportIndex) -0:141 indirect index ( perprimitiveNV temp block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out unsized 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of unsized-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:141 'gl_MeshPrimitivesNV' ( perprimitiveNV out 32-element array of block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out unsized 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of unsized-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:141 'iid' ( temp uint) -0:141 Constant: -0:141 2 (const int) -0:141 Constant: -0:141 8 (const int) -0:142 move second child to first child ( temp int) -0:142 direct index ( perprimitiveNV temp int ViewportMaskNV) -0:142 gl_ViewportMask: direct index for structure ( perprimitiveNV out unsized 1-element array of int ViewportMaskNV) -0:142 indirect index ( perprimitiveNV temp block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out unsized 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of unsized-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:142 'gl_MeshPrimitivesNV' ( perprimitiveNV out 32-element array of block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out unsized 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of unsized-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:142 'iid' ( temp uint) -0:142 Constant: -0:142 3 (const int) -0:142 Constant: -0:142 0 (const int) -0:142 Constant: -0:142 9 (const int) -0:144 MemoryBarrierShared ( global void) -0:144 Barrier ( global void) -0:146 move second child to first child ( temp int) -0:146 gl_PrimitiveID: direct index for structure ( perprimitiveNV out int PrimitiveID) -0:146 indirect index ( perprimitiveNV temp block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out unsized 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of unsized-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:146 'gl_MeshPrimitivesNV' ( perprimitiveNV out 32-element array of block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out unsized 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of unsized-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:146 add ( temp uint) -0:146 'iid' ( temp uint) -0:146 Constant: -0:146 1 (const uint) -0:146 Constant: -0:146 0 (const int) -0:146 gl_PrimitiveID: direct index for structure ( perprimitiveNV out int PrimitiveID) -0:146 indirect index ( perprimitiveNV temp block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out unsized 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of unsized-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:146 'gl_MeshPrimitivesNV' ( perprimitiveNV out 32-element array of block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out unsized 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of unsized-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:146 'iid' ( temp uint) -0:146 Constant: -0:146 0 (const int) -0:147 move second child to first child ( temp int) -0:147 gl_Layer: direct index for structure ( perprimitiveNV out int Layer) -0:147 indirect index ( perprimitiveNV temp block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out unsized 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of unsized-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:147 'gl_MeshPrimitivesNV' ( perprimitiveNV out 32-element array of block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out unsized 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of unsized-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:147 add ( temp uint) -0:147 'iid' ( temp uint) -0:147 Constant: -0:147 1 (const uint) -0:147 Constant: -0:147 1 (const int) -0:147 gl_Layer: direct index for structure ( perprimitiveNV out int Layer) -0:147 indirect index ( perprimitiveNV temp block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out unsized 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of unsized-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:147 'gl_MeshPrimitivesNV' ( perprimitiveNV out 32-element array of block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out unsized 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of unsized-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:147 'iid' ( temp uint) -0:147 Constant: -0:147 1 (const int) -0:148 move second child to first child ( temp int) -0:148 gl_ViewportIndex: direct index for structure ( perprimitiveNV out int ViewportIndex) -0:148 indirect index ( perprimitiveNV temp block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out unsized 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of unsized-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:148 'gl_MeshPrimitivesNV' ( perprimitiveNV out 32-element array of block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out unsized 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of unsized-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:148 add ( temp uint) -0:148 'iid' ( temp uint) -0:148 Constant: -0:148 1 (const uint) -0:148 Constant: -0:148 2 (const int) -0:148 gl_ViewportIndex: direct index for structure ( perprimitiveNV out int ViewportIndex) -0:148 indirect index ( perprimitiveNV temp block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out unsized 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of unsized-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:148 'gl_MeshPrimitivesNV' ( perprimitiveNV out 32-element array of block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out unsized 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of unsized-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:148 'iid' ( temp uint) -0:148 Constant: -0:148 2 (const int) -0:149 move second child to first child ( temp int) -0:149 direct index ( perprimitiveNV temp int ViewportMaskNV) -0:149 gl_ViewportMask: direct index for structure ( perprimitiveNV out unsized 1-element array of int ViewportMaskNV) -0:149 indirect index ( perprimitiveNV temp block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out unsized 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of unsized-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:149 'gl_MeshPrimitivesNV' ( perprimitiveNV out 32-element array of block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out unsized 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of unsized-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:149 add ( temp uint) -0:149 'iid' ( temp uint) -0:149 Constant: -0:149 1 (const uint) -0:149 Constant: -0:149 3 (const int) -0:149 Constant: -0:149 0 (const int) -0:149 direct index ( perprimitiveNV temp int ViewportMaskNV) -0:149 gl_ViewportMask: direct index for structure ( perprimitiveNV out unsized 1-element array of int ViewportMaskNV) -0:149 indirect index ( perprimitiveNV temp block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out unsized 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of unsized-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:149 'gl_MeshPrimitivesNV' ( perprimitiveNV out 32-element array of block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out unsized 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of unsized-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:149 'iid' ( temp uint) -0:149 Constant: -0:149 3 (const int) -0:149 Constant: -0:149 0 (const int) -0:151 MemoryBarrierShared ( global void) -0:151 Barrier ( global void) -0:154 move second child to first child ( temp uint) -0:154 direct index ( temp uint PrimitiveIndicesNV) -0:154 'gl_PrimitiveIndicesNV' ( out 96-element array of uint PrimitiveIndicesNV) -0:154 Constant: -0:154 0 (const int) -0:154 Constant: -0:154 257 (const uint) -0:155 move second child to first child ( temp uint) -0:155 direct index ( temp uint PrimitiveIndicesNV) -0:155 'gl_PrimitiveIndicesNV' ( out 96-element array of uint PrimitiveIndicesNV) -0:155 Constant: -0:155 95 (const int) -0:155 Constant: -0:155 2 (const uint) -0:156 move second child to first child ( temp uint) -0:156 indirect index ( temp uint PrimitiveIndicesNV) -0:156 'gl_PrimitiveIndicesNV' ( out 96-element array of uint PrimitiveIndicesNV) -0:156 'gid' ( temp uint) -0:156 indirect index ( temp uint PrimitiveIndicesNV) -0:156 'gl_PrimitiveIndicesNV' ( out 96-element array of uint PrimitiveIndicesNV) -0:156 subtract ( temp uint) -0:156 'gid' ( temp uint) -0:156 Constant: -0:156 1 (const uint) -0:159 writePackedPrimitiveIndices4x8NV ( global void) -0:159 Convert int to uint ( temp uint) -0:159 'gl_DrawID' ( in int DrawId) -0:159 Constant: -0:159 16909060 (const uint) -0:161 move second child to first child ( temp uint) -0:161 'gl_PrimitiveCountNV' ( out uint PrimitiveCountNV) -0:161 Constant: -0:161 96 (const uint) -0:163 MemoryBarrierShared ( global void) -0:163 Barrier ( global void) -0:167 Function Definition: basic_works( ( global void) -0:167 Function Parameters: -0:169 Sequence -0:169 'gl_SubgroupSize' ( in uint SubgroupSize) -0:170 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:171 subgroupBarrier ( global void) -0:172 subgroupMemoryBarrier ( global void) -0:173 subgroupMemoryBarrierBuffer ( global void) -0:174 subgroupMemoryBarrierImage ( global void) -0:175 subgroupElect ( global bool) -0:176 'gl_NumSubgroups' ( in uint NumSubgroups) -0:177 'gl_SubgroupID' ( in uint SubgroupID) -0:178 subgroupMemoryBarrierShared ( global void) -0:182 Function Definition: ballot_works(vf4; ( global void) -0:182 Function Parameters: -0:182 'f4' ( in 4-component vector of float) -0:183 Sequence -0:183 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask) -0:184 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask) -0:185 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask) -0:186 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask) -0:187 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask) -0:188 subgroupBroadcast ( global 4-component vector of float) -0:188 'f4' ( in 4-component vector of float) -0:188 Constant: -0:188 0 (const uint) -0:189 subgroupBroadcastFirst ( global 4-component vector of float) -0:189 'f4' ( in 4-component vector of float) -0:190 Sequence -0:190 move second child to first child ( temp 4-component vector of uint) -0:190 'ballot' ( temp 4-component vector of uint) -0:190 subgroupBallot ( global 4-component vector of uint) -0:190 Constant: -0:190 false (const bool) -0:191 subgroupInverseBallot ( global bool) -0:191 Constant: -0:191 1 (const uint) -0:191 1 (const uint) -0:191 1 (const uint) -0:191 1 (const uint) -0:192 subgroupBallotBitExtract ( global bool) -0:192 'ballot' ( temp 4-component vector of uint) -0:192 Constant: -0:192 0 (const uint) -0:193 subgroupBallotBitCount ( global uint) -0:193 'ballot' ( temp 4-component vector of uint) -0:194 subgroupBallotInclusiveBitCount ( global uint) -0:194 'ballot' ( temp 4-component vector of uint) -0:195 subgroupBallotExclusiveBitCount ( global uint) -0:195 'ballot' ( temp 4-component vector of uint) -0:196 subgroupBallotFindLSB ( global uint) -0:196 'ballot' ( temp 4-component vector of uint) -0:197 subgroupBallotFindMSB ( global uint) -0:197 'ballot' ( temp 4-component vector of uint) -0:201 Function Definition: vote_works(vf4; ( global void) -0:201 Function Parameters: -0:201 'f4' ( in 4-component vector of float) -0:203 Sequence -0:203 subgroupAll ( global bool) -0:203 Constant: -0:203 true (const bool) -0:204 subgroupAny ( global bool) -0:204 Constant: -0:204 false (const bool) -0:205 subgroupAllEqual ( global bool) -0:205 'f4' ( in 4-component vector of float) -0:210 Function Definition: shuffle_works(vf4; ( global void) -0:210 Function Parameters: -0:210 'f4' ( in 4-component vector of float) -0:212 Sequence -0:212 subgroupShuffle ( global 4-component vector of float) -0:212 'f4' ( in 4-component vector of float) -0:212 Constant: -0:212 0 (const uint) -0:213 subgroupShuffleXor ( global 4-component vector of float) -0:213 'f4' ( in 4-component vector of float) -0:213 Constant: -0:213 1 (const uint) -0:214 subgroupShuffleUp ( global 4-component vector of float) -0:214 'f4' ( in 4-component vector of float) -0:214 Constant: -0:214 1 (const uint) -0:215 subgroupShuffleDown ( global 4-component vector of float) -0:215 'f4' ( in 4-component vector of float) -0:215 Constant: -0:215 1 (const uint) -0:219 Function Definition: arith_works(vf4; ( global void) -0:219 Function Parameters: -0:219 'f4' ( in 4-component vector of float) -0:? Sequence -0:222 subgroupAdd ( global 4-component vector of float) -0:222 'f4' ( in 4-component vector of float) -0:223 subgroupMul ( global 4-component vector of float) -0:223 'f4' ( in 4-component vector of float) -0:224 subgroupMin ( global 4-component vector of float) -0:224 'f4' ( in 4-component vector of float) -0:225 subgroupMax ( global 4-component vector of float) -0:225 'f4' ( in 4-component vector of float) -0:226 subgroupAnd ( global 4-component vector of uint) -0:226 'ballot' ( temp 4-component vector of uint) -0:227 subgroupOr ( global 4-component vector of uint) -0:227 'ballot' ( temp 4-component vector of uint) -0:228 subgroupXor ( global 4-component vector of uint) -0:228 'ballot' ( temp 4-component vector of uint) -0:229 subgroupInclusiveAdd ( global 4-component vector of float) -0:229 'f4' ( in 4-component vector of float) -0:230 subgroupInclusiveMul ( global 4-component vector of float) -0:230 'f4' ( in 4-component vector of float) -0:231 subgroupInclusiveMin ( global 4-component vector of float) -0:231 'f4' ( in 4-component vector of float) -0:232 subgroupInclusiveMax ( global 4-component vector of float) -0:232 'f4' ( in 4-component vector of float) -0:233 subgroupInclusiveAnd ( global 4-component vector of uint) -0:233 'ballot' ( temp 4-component vector of uint) -0:234 subgroupInclusiveOr ( global 4-component vector of uint) -0:234 'ballot' ( temp 4-component vector of uint) -0:235 subgroupInclusiveXor ( global 4-component vector of uint) -0:235 'ballot' ( temp 4-component vector of uint) -0:236 subgroupExclusiveAdd ( global 4-component vector of float) -0:236 'f4' ( in 4-component vector of float) -0:237 subgroupExclusiveMul ( global 4-component vector of float) -0:237 'f4' ( in 4-component vector of float) -0:238 subgroupExclusiveMin ( global 4-component vector of float) -0:238 'f4' ( in 4-component vector of float) -0:239 subgroupExclusiveMax ( global 4-component vector of float) -0:239 'f4' ( in 4-component vector of float) -0:240 subgroupExclusiveAnd ( global 4-component vector of uint) -0:240 'ballot' ( temp 4-component vector of uint) -0:241 subgroupExclusiveOr ( global 4-component vector of uint) -0:241 'ballot' ( temp 4-component vector of uint) -0:242 subgroupExclusiveXor ( global 4-component vector of uint) -0:242 'ballot' ( temp 4-component vector of uint) -0:246 Function Definition: clustered_works(vf4; ( global void) -0:246 Function Parameters: -0:246 'f4' ( in 4-component vector of float) -0:248 Sequence -0:248 Sequence -0:248 move second child to first child ( temp 4-component vector of uint) -0:248 'ballot' ( temp 4-component vector of uint) -0:248 Constant: -0:248 85 (const uint) -0:248 0 (const uint) -0:248 0 (const uint) -0:248 0 (const uint) -0:249 subgroupClusteredAdd ( global 4-component vector of float) -0:249 'f4' ( in 4-component vector of float) -0:249 Constant: -0:249 2 (const uint) -0:250 subgroupClusteredMul ( global 4-component vector of float) -0:250 'f4' ( in 4-component vector of float) -0:250 Constant: -0:250 2 (const uint) -0:251 subgroupClusteredMin ( global 4-component vector of float) -0:251 'f4' ( in 4-component vector of float) -0:251 Constant: -0:251 2 (const uint) -0:252 subgroupClusteredMax ( global 4-component vector of float) -0:252 'f4' ( in 4-component vector of float) -0:252 Constant: -0:252 2 (const uint) -0:253 subgroupClusteredAnd ( global 4-component vector of uint) -0:253 'ballot' ( temp 4-component vector of uint) -0:253 Constant: -0:253 2 (const uint) -0:254 subgroupClusteredOr ( global 4-component vector of uint) -0:254 'ballot' ( temp 4-component vector of uint) -0:254 Constant: -0:254 2 (const uint) -0:255 subgroupClusteredXor ( global 4-component vector of uint) -0:255 'ballot' ( temp 4-component vector of uint) -0:255 Constant: -0:255 2 (const uint) -0:259 Function Definition: quad_works(vf4; ( global void) -0:259 Function Parameters: -0:259 'f4' ( in 4-component vector of float) -0:261 Sequence -0:261 subgroupQuadBroadcast ( global 4-component vector of float) -0:261 'f4' ( in 4-component vector of float) -0:261 Constant: -0:261 0 (const uint) -0:262 subgroupQuadSwapHorizontal ( global 4-component vector of float) -0:262 'f4' ( in 4-component vector of float) -0:263 subgroupQuadSwapVertical ( global 4-component vector of float) -0:263 'f4' ( in 4-component vector of float) -0:264 subgroupQuadSwapDiagonal ( global 4-component vector of float) -0:264 'f4' ( in 4-component vector of float) -0:268 Function Definition: partitioned_works(vf4; ( global void) -0:268 Function Parameters: -0:268 'f4' ( in 4-component vector of float) -0:270 Sequence -0:270 Sequence -0:270 move second child to first child ( temp 4-component vector of uint) -0:270 'parti' ( temp 4-component vector of uint) -0:270 subgroupPartitionNV ( global 4-component vector of uint) -0:270 'f4' ( in 4-component vector of float) -0:271 Sequence -0:271 move second child to first child ( temp 4-component vector of uint) -0:271 'ballot' ( temp 4-component vector of uint) -0:271 Constant: -0:271 85 (const uint) -0:271 0 (const uint) -0:271 0 (const uint) -0:271 0 (const uint) -0:272 subgroupPartitionedAddNV ( global 4-component vector of float) -0:272 'f4' ( in 4-component vector of float) -0:272 'parti' ( temp 4-component vector of uint) -0:273 subgroupPartitionedMulNV ( global 4-component vector of float) -0:273 'f4' ( in 4-component vector of float) -0:273 'parti' ( temp 4-component vector of uint) -0:274 subgroupPartitionedMinNV ( global 4-component vector of float) -0:274 'f4' ( in 4-component vector of float) -0:274 'parti' ( temp 4-component vector of uint) -0:275 subgroupPartitionedMaxNV ( global 4-component vector of float) -0:275 'f4' ( in 4-component vector of float) -0:275 'parti' ( temp 4-component vector of uint) -0:276 subgroupPartitionedAndNV ( global 4-component vector of uint) -0:276 'ballot' ( temp 4-component vector of uint) -0:276 'parti' ( temp 4-component vector of uint) -0:277 subgroupPartitionedOrNV ( global 4-component vector of uint) -0:277 'ballot' ( temp 4-component vector of uint) -0:277 'parti' ( temp 4-component vector of uint) -0:278 subgroupPartitionedXorNV ( global 4-component vector of uint) -0:278 'ballot' ( temp 4-component vector of uint) -0:278 'parti' ( temp 4-component vector of uint) -0:279 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float) -0:279 'f4' ( in 4-component vector of float) -0:279 'parti' ( temp 4-component vector of uint) -0:280 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float) -0:280 'f4' ( in 4-component vector of float) -0:280 'parti' ( temp 4-component vector of uint) -0:281 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float) -0:281 'f4' ( in 4-component vector of float) -0:281 'parti' ( temp 4-component vector of uint) -0:282 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float) -0:282 'f4' ( in 4-component vector of float) -0:282 'parti' ( temp 4-component vector of uint) -0:283 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint) -0:283 'ballot' ( temp 4-component vector of uint) -0:283 'parti' ( temp 4-component vector of uint) -0:284 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint) -0:284 'ballot' ( temp 4-component vector of uint) -0:284 'parti' ( temp 4-component vector of uint) -0:285 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint) -0:285 'ballot' ( temp 4-component vector of uint) -0:285 'parti' ( temp 4-component vector of uint) -0:286 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float) -0:286 'f4' ( in 4-component vector of float) -0:286 'parti' ( temp 4-component vector of uint) -0:287 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float) -0:287 'f4' ( in 4-component vector of float) -0:287 'parti' ( temp 4-component vector of uint) -0:288 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float) -0:288 'f4' ( in 4-component vector of float) -0:288 'parti' ( temp 4-component vector of uint) -0:289 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float) -0:289 'f4' ( in 4-component vector of float) -0:289 'parti' ( temp 4-component vector of uint) -0:290 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint) -0:290 'ballot' ( temp 4-component vector of uint) -0:290 'parti' ( temp 4-component vector of uint) -0:291 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint) -0:291 'ballot' ( temp 4-component vector of uint) -0:291 'parti' ( temp 4-component vector of uint) -0:292 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint) -0:292 'ballot' ( temp 4-component vector of uint) -0:292 'parti' ( temp 4-component vector of uint) -0:296 Function Definition: sm_builtins_err( ( global void) -0:296 Function Parameters: -0:298 Sequence -0:298 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV) -0:299 'gl_SMCountNV' ( in uint SMCountNV) -0:300 'gl_WarpIDNV' ( in uint WarpIDNV) -0:301 'gl_SMIDNV' ( in uint SMIDNV) -0:308 Function Definition: sm_builtins( ( global void) -0:308 Function Parameters: -0:310 Sequence -0:310 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV) -0:311 'gl_SMCountNV' ( in uint SMCountNV) -0:312 'gl_WarpIDNV' ( in uint WarpIDNV) -0:313 'gl_SMIDNV' ( in uint SMIDNV) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize) -0:? 32 (const uint) -0:? 1 (const uint) -0:? 1 (const uint) -0:? 'gl_MeshVerticesNV' ( out 81-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 4-element array of float ClipDistance gl_ClipDistance, out unsized 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of unsized-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of unsized-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:? 'gl_MeshPrimitivesNV' ( perprimitiveNV out 32-element array of block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out unsized 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of unsized-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:? 'gl_PrimitiveIndicesNV' ( out 96-element array of uint PrimitiveIndicesNV) - - -Linked mesh stage: - - -Shader version: 460 -Requested GL_KHR_shader_subgroup_arithmetic -Requested GL_KHR_shader_subgroup_ballot -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_clustered -Requested GL_KHR_shader_subgroup_quad -Requested GL_KHR_shader_subgroup_shuffle -Requested GL_KHR_shader_subgroup_shuffle_relative -Requested GL_KHR_shader_subgroup_vote -Requested GL_NV_mesh_shader -Requested GL_NV_shader_sm_builtins -Requested GL_NV_shader_subgroup_partitioned -max_vertices = 81 -max_primitives = 32 -output primitive = triangles -local_size = (32, 1, 1) -ERROR: node is still EOpNull! -0:120 Function Definition: main( ( global void) -0:120 Function Parameters: -0:122 Sequence -0:122 Sequence -0:122 move second child to first child ( temp uint) -0:122 'iid' ( temp uint) -0:122 direct index ( temp uint) -0:122 'gl_LocalInvocationID' ( in 3-component vector of uint LocalInvocationID) -0:122 Constant: -0:122 0 (const int) -0:123 Sequence -0:123 move second child to first child ( temp uint) -0:123 'gid' ( temp uint) -0:123 direct index ( temp uint) -0:123 'gl_WorkGroupID' ( in 3-component vector of uint WorkGroupID) -0:123 Constant: -0:123 0 (const int) -0:125 move second child to first child ( temp 4-component vector of float) -0:125 gl_Position: direct index for structure ( out 4-component vector of float Position) -0:125 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, out 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of 1-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of 1-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:125 'gl_MeshVerticesNV' ( out 81-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, out 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of 1-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of 1-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:125 'iid' ( temp uint) -0:125 Constant: -0:125 0 (const int) -0:125 Constant: -0:125 1.000000 -0:125 1.000000 -0:125 1.000000 -0:125 1.000000 -0:126 move second child to first child ( temp float) -0:126 gl_PointSize: direct index for structure ( out float PointSize) -0:126 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, out 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of 1-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of 1-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:126 'gl_MeshVerticesNV' ( out 81-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, out 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of 1-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of 1-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:126 'iid' ( temp uint) -0:126 Constant: -0:126 1 (const int) -0:126 Constant: -0:126 2.000000 -0:127 move second child to first child ( temp float) -0:127 direct index ( temp float ClipDistance) -0:127 gl_ClipDistance: direct index for structure ( out 4-element array of float ClipDistance) -0:127 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, out 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of 1-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of 1-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:127 'gl_MeshVerticesNV' ( out 81-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, out 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of 1-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of 1-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:127 'iid' ( temp uint) -0:127 Constant: -0:127 2 (const int) -0:127 Constant: -0:127 3 (const int) -0:127 Constant: -0:127 3.000000 -0:128 move second child to first child ( temp float) -0:128 direct index ( temp float CullDistance) -0:128 gl_CullDistance: direct index for structure ( out 3-element array of float CullDistance) -0:128 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, out 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of 1-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of 1-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:128 'gl_MeshVerticesNV' ( out 81-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, out 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of 1-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of 1-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:128 'iid' ( temp uint) -0:128 Constant: -0:128 3 (const int) -0:128 Constant: -0:128 2 (const int) -0:128 Constant: -0:128 4.000000 -0:130 MemoryBarrierShared ( global void) -0:130 Barrier ( global void) -0:132 move second child to first child ( temp 4-component vector of float) -0:132 gl_Position: direct index for structure ( out 4-component vector of float Position) -0:132 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, out 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of 1-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of 1-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:132 'gl_MeshVerticesNV' ( out 81-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, out 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of 1-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of 1-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:132 add ( temp uint) -0:132 'iid' ( temp uint) -0:132 Constant: -0:132 1 (const uint) -0:132 Constant: -0:132 0 (const int) -0:132 gl_Position: direct index for structure ( out 4-component vector of float Position) -0:132 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, out 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of 1-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of 1-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:132 'gl_MeshVerticesNV' ( out 81-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, out 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of 1-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of 1-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:132 'iid' ( temp uint) -0:132 Constant: -0:132 0 (const int) -0:133 move second child to first child ( temp float) -0:133 gl_PointSize: direct index for structure ( out float PointSize) -0:133 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, out 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of 1-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of 1-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:133 'gl_MeshVerticesNV' ( out 81-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, out 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of 1-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of 1-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:133 add ( temp uint) -0:133 'iid' ( temp uint) -0:133 Constant: -0:133 1 (const uint) -0:133 Constant: -0:133 1 (const int) -0:133 gl_PointSize: direct index for structure ( out float PointSize) -0:133 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, out 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of 1-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of 1-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:133 'gl_MeshVerticesNV' ( out 81-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, out 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of 1-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of 1-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:133 'iid' ( temp uint) -0:133 Constant: -0:133 1 (const int) -0:134 move second child to first child ( temp float) -0:134 direct index ( temp float ClipDistance) -0:134 gl_ClipDistance: direct index for structure ( out 4-element array of float ClipDistance) -0:134 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, out 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of 1-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of 1-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:134 'gl_MeshVerticesNV' ( out 81-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, out 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of 1-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of 1-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:134 add ( temp uint) -0:134 'iid' ( temp uint) -0:134 Constant: -0:134 1 (const uint) -0:134 Constant: -0:134 2 (const int) -0:134 Constant: -0:134 3 (const int) -0:134 direct index ( temp float ClipDistance) -0:134 gl_ClipDistance: direct index for structure ( out 4-element array of float ClipDistance) -0:134 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, out 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of 1-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of 1-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:134 'gl_MeshVerticesNV' ( out 81-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, out 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of 1-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of 1-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:134 'iid' ( temp uint) -0:134 Constant: -0:134 2 (const int) -0:134 Constant: -0:134 3 (const int) -0:135 move second child to first child ( temp float) -0:135 direct index ( temp float CullDistance) -0:135 gl_CullDistance: direct index for structure ( out 3-element array of float CullDistance) -0:135 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, out 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of 1-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of 1-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:135 'gl_MeshVerticesNV' ( out 81-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, out 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of 1-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of 1-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:135 add ( temp uint) -0:135 'iid' ( temp uint) -0:135 Constant: -0:135 1 (const uint) -0:135 Constant: -0:135 3 (const int) -0:135 Constant: -0:135 2 (const int) -0:135 direct index ( temp float CullDistance) -0:135 gl_CullDistance: direct index for structure ( out 3-element array of float CullDistance) -0:135 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, out 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of 1-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of 1-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:135 'gl_MeshVerticesNV' ( out 81-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, out 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of 1-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of 1-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:135 'iid' ( temp uint) -0:135 Constant: -0:135 3 (const int) -0:135 Constant: -0:135 2 (const int) -0:137 MemoryBarrierShared ( global void) -0:137 Barrier ( global void) -0:139 move second child to first child ( temp int) -0:139 gl_PrimitiveID: direct index for structure ( perprimitiveNV out int PrimitiveID) -0:139 indirect index ( perprimitiveNV temp block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of 1-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:139 'gl_MeshPrimitivesNV' ( perprimitiveNV out 32-element array of block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of 1-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:139 'iid' ( temp uint) -0:139 Constant: -0:139 0 (const int) -0:139 Constant: -0:139 6 (const int) -0:140 move second child to first child ( temp int) -0:140 gl_Layer: direct index for structure ( perprimitiveNV out int Layer) -0:140 indirect index ( perprimitiveNV temp block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of 1-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:140 'gl_MeshPrimitivesNV' ( perprimitiveNV out 32-element array of block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of 1-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:140 'iid' ( temp uint) -0:140 Constant: -0:140 1 (const int) -0:140 Constant: -0:140 7 (const int) -0:141 move second child to first child ( temp int) -0:141 gl_ViewportIndex: direct index for structure ( perprimitiveNV out int ViewportIndex) -0:141 indirect index ( perprimitiveNV temp block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of 1-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:141 'gl_MeshPrimitivesNV' ( perprimitiveNV out 32-element array of block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of 1-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:141 'iid' ( temp uint) -0:141 Constant: -0:141 2 (const int) -0:141 Constant: -0:141 8 (const int) -0:142 move second child to first child ( temp int) -0:142 direct index ( perprimitiveNV temp int ViewportMaskNV) -0:142 gl_ViewportMask: direct index for structure ( perprimitiveNV out 1-element array of int ViewportMaskNV) -0:142 indirect index ( perprimitiveNV temp block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of 1-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:142 'gl_MeshPrimitivesNV' ( perprimitiveNV out 32-element array of block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of 1-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:142 'iid' ( temp uint) -0:142 Constant: -0:142 3 (const int) -0:142 Constant: -0:142 0 (const int) -0:142 Constant: -0:142 9 (const int) -0:144 MemoryBarrierShared ( global void) -0:144 Barrier ( global void) -0:146 move second child to first child ( temp int) -0:146 gl_PrimitiveID: direct index for structure ( perprimitiveNV out int PrimitiveID) -0:146 indirect index ( perprimitiveNV temp block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of 1-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:146 'gl_MeshPrimitivesNV' ( perprimitiveNV out 32-element array of block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of 1-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:146 add ( temp uint) -0:146 'iid' ( temp uint) -0:146 Constant: -0:146 1 (const uint) -0:146 Constant: -0:146 0 (const int) -0:146 gl_PrimitiveID: direct index for structure ( perprimitiveNV out int PrimitiveID) -0:146 indirect index ( perprimitiveNV temp block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of 1-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:146 'gl_MeshPrimitivesNV' ( perprimitiveNV out 32-element array of block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of 1-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:146 'iid' ( temp uint) -0:146 Constant: -0:146 0 (const int) -0:147 move second child to first child ( temp int) -0:147 gl_Layer: direct index for structure ( perprimitiveNV out int Layer) -0:147 indirect index ( perprimitiveNV temp block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of 1-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:147 'gl_MeshPrimitivesNV' ( perprimitiveNV out 32-element array of block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of 1-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:147 add ( temp uint) -0:147 'iid' ( temp uint) -0:147 Constant: -0:147 1 (const uint) -0:147 Constant: -0:147 1 (const int) -0:147 gl_Layer: direct index for structure ( perprimitiveNV out int Layer) -0:147 indirect index ( perprimitiveNV temp block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of 1-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:147 'gl_MeshPrimitivesNV' ( perprimitiveNV out 32-element array of block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of 1-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:147 'iid' ( temp uint) -0:147 Constant: -0:147 1 (const int) -0:148 move second child to first child ( temp int) -0:148 gl_ViewportIndex: direct index for structure ( perprimitiveNV out int ViewportIndex) -0:148 indirect index ( perprimitiveNV temp block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of 1-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:148 'gl_MeshPrimitivesNV' ( perprimitiveNV out 32-element array of block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of 1-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:148 add ( temp uint) -0:148 'iid' ( temp uint) -0:148 Constant: -0:148 1 (const uint) -0:148 Constant: -0:148 2 (const int) -0:148 gl_ViewportIndex: direct index for structure ( perprimitiveNV out int ViewportIndex) -0:148 indirect index ( perprimitiveNV temp block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of 1-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:148 'gl_MeshPrimitivesNV' ( perprimitiveNV out 32-element array of block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of 1-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:148 'iid' ( temp uint) -0:148 Constant: -0:148 2 (const int) -0:149 move second child to first child ( temp int) -0:149 direct index ( perprimitiveNV temp int ViewportMaskNV) -0:149 gl_ViewportMask: direct index for structure ( perprimitiveNV out 1-element array of int ViewportMaskNV) -0:149 indirect index ( perprimitiveNV temp block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of 1-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:149 'gl_MeshPrimitivesNV' ( perprimitiveNV out 32-element array of block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of 1-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:149 add ( temp uint) -0:149 'iid' ( temp uint) -0:149 Constant: -0:149 1 (const uint) -0:149 Constant: -0:149 3 (const int) -0:149 Constant: -0:149 0 (const int) -0:149 direct index ( perprimitiveNV temp int ViewportMaskNV) -0:149 gl_ViewportMask: direct index for structure ( perprimitiveNV out 1-element array of int ViewportMaskNV) -0:149 indirect index ( perprimitiveNV temp block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of 1-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:149 'gl_MeshPrimitivesNV' ( perprimitiveNV out 32-element array of block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of 1-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:149 'iid' ( temp uint) -0:149 Constant: -0:149 3 (const int) -0:149 Constant: -0:149 0 (const int) -0:151 MemoryBarrierShared ( global void) -0:151 Barrier ( global void) -0:154 move second child to first child ( temp uint) -0:154 direct index ( temp uint PrimitiveIndicesNV) -0:154 'gl_PrimitiveIndicesNV' ( out 96-element array of uint PrimitiveIndicesNV) -0:154 Constant: -0:154 0 (const int) -0:154 Constant: -0:154 257 (const uint) -0:155 move second child to first child ( temp uint) -0:155 direct index ( temp uint PrimitiveIndicesNV) -0:155 'gl_PrimitiveIndicesNV' ( out 96-element array of uint PrimitiveIndicesNV) -0:155 Constant: -0:155 95 (const int) -0:155 Constant: -0:155 2 (const uint) -0:156 move second child to first child ( temp uint) -0:156 indirect index ( temp uint PrimitiveIndicesNV) -0:156 'gl_PrimitiveIndicesNV' ( out 96-element array of uint PrimitiveIndicesNV) -0:156 'gid' ( temp uint) -0:156 indirect index ( temp uint PrimitiveIndicesNV) -0:156 'gl_PrimitiveIndicesNV' ( out 96-element array of uint PrimitiveIndicesNV) -0:156 subtract ( temp uint) -0:156 'gid' ( temp uint) -0:156 Constant: -0:156 1 (const uint) -0:159 writePackedPrimitiveIndices4x8NV ( global void) -0:159 Convert int to uint ( temp uint) -0:159 'gl_DrawID' ( in int DrawId) -0:159 Constant: -0:159 16909060 (const uint) -0:161 move second child to first child ( temp uint) -0:161 'gl_PrimitiveCountNV' ( out uint PrimitiveCountNV) -0:161 Constant: -0:161 96 (const uint) -0:163 MemoryBarrierShared ( global void) -0:163 Barrier ( global void) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize) -0:? 32 (const uint) -0:? 1 (const uint) -0:? 1 (const uint) -0:? 'gl_MeshVerticesNV' ( out 81-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, out 3-element array of float CullDistance gl_CullDistance, perviewNV out 4-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV, perviewNV out 4-element array of 1-element array of float ClipDistancePerViewNV gl_ClipDistancePerViewNV, perviewNV out 4-element array of 1-element array of float CullDistancePerViewNV gl_CullDistancePerViewNV}) -0:? 'gl_MeshPrimitivesNV' ( perprimitiveNV out 32-element array of block{ perprimitiveNV out int PrimitiveID gl_PrimitiveID, perprimitiveNV out int Layer gl_Layer, perprimitiveNV out int ViewportIndex gl_ViewportIndex, perprimitiveNV out 1-element array of int ViewportMaskNV gl_ViewportMask, perprimitiveNV perviewNV out 4-element array of int LayerPerViewNV gl_LayerPerViewNV, perprimitiveNV perviewNV out 4-element array of 1-element array of int ViewportMaskPerViewNV gl_ViewportMaskPerViewNV}) -0:? 'gl_PrimitiveIndicesNV' ( out 96-element array of uint PrimitiveIndicesNV) - diff --git a/deps/glslang/Test/baseResults/glsl.460.subgroup.rahit.out b/deps/glslang/Test/baseResults/glsl.460.subgroup.rahit.out deleted file mode 100644 index 0a1e4f4a..00000000 --- a/deps/glslang/Test/baseResults/glsl.460.subgroup.rahit.out +++ /dev/null @@ -1,795 +0,0 @@ -glsl.460.subgroup.rahit -ERROR: 0:7: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:8: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:9: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:10: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:11: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:12: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:13: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:14: 'gl_NumSubgroups' : undeclared identifier -ERROR: 0:15: 'gl_SubgroupID' : undeclared identifier -ERROR: 0:16: 'subgroupMemoryBarrierShared' : no matching overloaded function found -ERROR: 0:18: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:19: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:20: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:22: 'gl_SubgroupEqMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:23: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:24: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:25: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:26: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:27: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:28: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:29: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:30: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:31: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:32: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:33: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:34: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:35: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:36: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:38: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle -ERROR: 0:39: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle -ERROR: 0:40: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative -ERROR: 0:41: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative -ERROR: 0:43: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:44: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:45: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:46: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:47: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:48: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:49: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:50: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:51: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:52: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:53: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:54: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:55: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:56: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:57: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:58: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:59: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:60: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:61: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:62: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:63: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:65: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:66: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:67: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:68: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:69: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:70: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:71: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:73: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:74: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:75: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:76: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:78: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:79: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:80: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:81: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:82: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:83: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:84: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:85: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:86: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:87: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:88: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:89: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:90: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:91: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:92: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:93: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:94: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:95: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:96: 'subgroupPartitionedExclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:97: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:98: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:99: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:259: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:260: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:261: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:262: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 90 compilation errors. No code generated. - - -Shader version: 460 -Requested GL_KHR_shader_subgroup_arithmetic -Requested GL_KHR_shader_subgroup_ballot -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_clustered -Requested GL_KHR_shader_subgroup_quad -Requested GL_KHR_shader_subgroup_shuffle -Requested GL_KHR_shader_subgroup_shuffle_relative -Requested GL_KHR_shader_subgroup_vote -Requested GL_NV_ray_tracing -Requested GL_NV_shader_sm_builtins -Requested GL_NV_shader_subgroup_partitioned -ERROR: node is still EOpNull! -0:4 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float) -0:4 Function Parameters: -0:4 'f4' ( in 4-component vector of float) -0:? Sequence -0:7 'gl_SubgroupSize' ( in uint SubgroupSize) -0:8 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:9 subgroupBarrier ( global void) -0:10 subgroupMemoryBarrier ( global void) -0:11 subgroupMemoryBarrierBuffer ( global void) -0:12 subgroupMemoryBarrierImage ( global void) -0:13 subgroupElect ( global bool) -0:14 'gl_NumSubgroups' ( temp float) -0:15 'gl_SubgroupID' ( temp float) -0:16 Constant: -0:16 0.000000 -0:18 subgroupAll ( global bool) -0:18 Constant: -0:18 true (const bool) -0:19 subgroupAny ( global bool) -0:19 Constant: -0:19 false (const bool) -0:20 subgroupAllEqual ( global bool) -0:20 'f4' ( in 4-component vector of float) -0:22 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask) -0:23 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask) -0:24 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask) -0:25 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask) -0:26 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask) -0:27 subgroupBroadcast ( global 4-component vector of float) -0:27 'f4' ( in 4-component vector of float) -0:27 Constant: -0:27 0 (const uint) -0:28 subgroupBroadcastFirst ( global 4-component vector of float) -0:28 'f4' ( in 4-component vector of float) -0:29 Sequence -0:29 move second child to first child ( temp 4-component vector of uint) -0:29 'ballot' ( temp 4-component vector of uint) -0:29 subgroupBallot ( global 4-component vector of uint) -0:29 Constant: -0:29 false (const bool) -0:30 subgroupInverseBallot ( global bool) -0:30 Constant: -0:30 1 (const uint) -0:30 1 (const uint) -0:30 1 (const uint) -0:30 1 (const uint) -0:31 subgroupBallotBitExtract ( global bool) -0:31 'ballot' ( temp 4-component vector of uint) -0:31 Constant: -0:31 0 (const uint) -0:32 subgroupBallotBitCount ( global uint) -0:32 'ballot' ( temp 4-component vector of uint) -0:33 subgroupBallotInclusiveBitCount ( global uint) -0:33 'ballot' ( temp 4-component vector of uint) -0:34 subgroupBallotExclusiveBitCount ( global uint) -0:34 'ballot' ( temp 4-component vector of uint) -0:35 subgroupBallotFindLSB ( global uint) -0:35 'ballot' ( temp 4-component vector of uint) -0:36 subgroupBallotFindMSB ( global uint) -0:36 'ballot' ( temp 4-component vector of uint) -0:38 subgroupShuffle ( global 4-component vector of float) -0:38 'f4' ( in 4-component vector of float) -0:38 Constant: -0:38 0 (const uint) -0:39 subgroupShuffleXor ( global 4-component vector of float) -0:39 'f4' ( in 4-component vector of float) -0:39 Constant: -0:39 1 (const uint) -0:40 subgroupShuffleUp ( global 4-component vector of float) -0:40 'f4' ( in 4-component vector of float) -0:40 Constant: -0:40 1 (const uint) -0:41 subgroupShuffleDown ( global 4-component vector of float) -0:41 'f4' ( in 4-component vector of float) -0:41 Constant: -0:41 1 (const uint) -0:43 move second child to first child ( temp 4-component vector of float) -0:43 'result' ( temp 4-component vector of float) -0:43 subgroupAdd ( global 4-component vector of float) -0:43 'f4' ( in 4-component vector of float) -0:44 subgroupMul ( global 4-component vector of float) -0:44 'f4' ( in 4-component vector of float) -0:45 subgroupMin ( global 4-component vector of float) -0:45 'f4' ( in 4-component vector of float) -0:46 subgroupMax ( global 4-component vector of float) -0:46 'f4' ( in 4-component vector of float) -0:47 subgroupAnd ( global 4-component vector of uint) -0:47 'ballot' ( temp 4-component vector of uint) -0:48 subgroupOr ( global 4-component vector of uint) -0:48 'ballot' ( temp 4-component vector of uint) -0:49 subgroupXor ( global 4-component vector of uint) -0:49 'ballot' ( temp 4-component vector of uint) -0:50 subgroupInclusiveAdd ( global 4-component vector of float) -0:50 'f4' ( in 4-component vector of float) -0:51 subgroupInclusiveMul ( global 4-component vector of float) -0:51 'f4' ( in 4-component vector of float) -0:52 subgroupInclusiveMin ( global 4-component vector of float) -0:52 'f4' ( in 4-component vector of float) -0:53 subgroupInclusiveMax ( global 4-component vector of float) -0:53 'f4' ( in 4-component vector of float) -0:54 subgroupInclusiveAnd ( global 4-component vector of uint) -0:54 'ballot' ( temp 4-component vector of uint) -0:55 subgroupInclusiveOr ( global 4-component vector of uint) -0:55 'ballot' ( temp 4-component vector of uint) -0:56 subgroupInclusiveXor ( global 4-component vector of uint) -0:56 'ballot' ( temp 4-component vector of uint) -0:57 subgroupExclusiveAdd ( global 4-component vector of float) -0:57 'f4' ( in 4-component vector of float) -0:58 subgroupExclusiveMul ( global 4-component vector of float) -0:58 'f4' ( in 4-component vector of float) -0:59 subgroupExclusiveMin ( global 4-component vector of float) -0:59 'f4' ( in 4-component vector of float) -0:60 subgroupExclusiveMax ( global 4-component vector of float) -0:60 'f4' ( in 4-component vector of float) -0:61 subgroupExclusiveAnd ( global 4-component vector of uint) -0:61 'ballot' ( temp 4-component vector of uint) -0:62 subgroupExclusiveOr ( global 4-component vector of uint) -0:62 'ballot' ( temp 4-component vector of uint) -0:63 subgroupExclusiveXor ( global 4-component vector of uint) -0:63 'ballot' ( temp 4-component vector of uint) -0:65 subgroupClusteredAdd ( global 4-component vector of float) -0:65 'f4' ( in 4-component vector of float) -0:65 Constant: -0:65 2 (const uint) -0:66 subgroupClusteredMul ( global 4-component vector of float) -0:66 'f4' ( in 4-component vector of float) -0:66 Constant: -0:66 2 (const uint) -0:67 subgroupClusteredMin ( global 4-component vector of float) -0:67 'f4' ( in 4-component vector of float) -0:67 Constant: -0:67 2 (const uint) -0:68 subgroupClusteredMax ( global 4-component vector of float) -0:68 'f4' ( in 4-component vector of float) -0:68 Constant: -0:68 2 (const uint) -0:69 subgroupClusteredAnd ( global 4-component vector of uint) -0:69 'ballot' ( temp 4-component vector of uint) -0:69 Constant: -0:69 2 (const uint) -0:70 subgroupClusteredOr ( global 4-component vector of uint) -0:70 'ballot' ( temp 4-component vector of uint) -0:70 Constant: -0:70 2 (const uint) -0:71 subgroupClusteredXor ( global 4-component vector of uint) -0:71 'ballot' ( temp 4-component vector of uint) -0:71 Constant: -0:71 2 (const uint) -0:73 subgroupQuadBroadcast ( global 4-component vector of float) -0:73 'f4' ( in 4-component vector of float) -0:73 Constant: -0:73 0 (const uint) -0:74 subgroupQuadSwapHorizontal ( global 4-component vector of float) -0:74 'f4' ( in 4-component vector of float) -0:75 subgroupQuadSwapVertical ( global 4-component vector of float) -0:75 'f4' ( in 4-component vector of float) -0:76 subgroupQuadSwapDiagonal ( global 4-component vector of float) -0:76 'f4' ( in 4-component vector of float) -0:78 Sequence -0:78 move second child to first child ( temp 4-component vector of uint) -0:78 'parti' ( temp 4-component vector of uint) -0:78 subgroupPartitionNV ( global 4-component vector of uint) -0:78 'f4' ( in 4-component vector of float) -0:79 subgroupPartitionedAddNV ( global 4-component vector of float) -0:79 'f4' ( in 4-component vector of float) -0:79 'parti' ( temp 4-component vector of uint) -0:80 subgroupPartitionedMulNV ( global 4-component vector of float) -0:80 'f4' ( in 4-component vector of float) -0:80 'parti' ( temp 4-component vector of uint) -0:81 subgroupPartitionedMinNV ( global 4-component vector of float) -0:81 'f4' ( in 4-component vector of float) -0:81 'parti' ( temp 4-component vector of uint) -0:82 subgroupPartitionedMaxNV ( global 4-component vector of float) -0:82 'f4' ( in 4-component vector of float) -0:82 'parti' ( temp 4-component vector of uint) -0:83 subgroupPartitionedAndNV ( global 4-component vector of uint) -0:83 'ballot' ( temp 4-component vector of uint) -0:83 'parti' ( temp 4-component vector of uint) -0:84 subgroupPartitionedOrNV ( global 4-component vector of uint) -0:84 'ballot' ( temp 4-component vector of uint) -0:84 'parti' ( temp 4-component vector of uint) -0:85 subgroupPartitionedXorNV ( global 4-component vector of uint) -0:85 'ballot' ( temp 4-component vector of uint) -0:85 'parti' ( temp 4-component vector of uint) -0:86 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float) -0:86 'f4' ( in 4-component vector of float) -0:86 'parti' ( temp 4-component vector of uint) -0:87 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float) -0:87 'f4' ( in 4-component vector of float) -0:87 'parti' ( temp 4-component vector of uint) -0:88 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float) -0:88 'f4' ( in 4-component vector of float) -0:88 'parti' ( temp 4-component vector of uint) -0:89 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float) -0:89 'f4' ( in 4-component vector of float) -0:89 'parti' ( temp 4-component vector of uint) -0:90 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint) -0:90 'ballot' ( temp 4-component vector of uint) -0:90 'parti' ( temp 4-component vector of uint) -0:91 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint) -0:91 'ballot' ( temp 4-component vector of uint) -0:91 'parti' ( temp 4-component vector of uint) -0:92 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint) -0:92 'ballot' ( temp 4-component vector of uint) -0:92 'parti' ( temp 4-component vector of uint) -0:93 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float) -0:93 'f4' ( in 4-component vector of float) -0:93 'parti' ( temp 4-component vector of uint) -0:94 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float) -0:94 'f4' ( in 4-component vector of float) -0:94 'parti' ( temp 4-component vector of uint) -0:95 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float) -0:95 'f4' ( in 4-component vector of float) -0:95 'parti' ( temp 4-component vector of uint) -0:96 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float) -0:96 'f4' ( in 4-component vector of float) -0:96 'parti' ( temp 4-component vector of uint) -0:97 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint) -0:97 'ballot' ( temp 4-component vector of uint) -0:97 'parti' ( temp 4-component vector of uint) -0:98 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint) -0:98 'ballot' ( temp 4-component vector of uint) -0:98 'parti' ( temp 4-component vector of uint) -0:99 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint) -0:99 'ballot' ( temp 4-component vector of uint) -0:99 'parti' ( temp 4-component vector of uint) -0:101 Branch: Return with expression -0:101 'result' ( temp 4-component vector of float) -0:106 Function Definition: main( ( global void) -0:106 Function Parameters: -0:108 Sequence -0:108 Sequence -0:108 move second child to first child ( temp 3-component vector of uint) -0:108 'v0' ( temp 3-component vector of uint) -0:108 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV) -0:109 Sequence -0:109 move second child to first child ( temp 3-component vector of uint) -0:109 'v1' ( temp 3-component vector of uint) -0:109 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV) -0:110 Sequence -0:110 move second child to first child ( temp int) -0:110 'v2' ( temp int) -0:110 'gl_PrimitiveID' ( in int PrimitiveID) -0:111 Sequence -0:111 move second child to first child ( temp int) -0:111 'v3' ( temp int) -0:111 'gl_InstanceID' ( in int InstanceId) -0:112 Sequence -0:112 move second child to first child ( temp int) -0:112 'v4' ( temp int) -0:112 'gl_InstanceCustomIndexNV' ( in int InstanceCustomIndexNV) -0:113 Sequence -0:113 move second child to first child ( temp 3-component vector of float) -0:113 'v5' ( temp 3-component vector of float) -0:113 'gl_WorldRayOriginNV' ( in 3-component vector of float WorldRayOriginNV) -0:114 Sequence -0:114 move second child to first child ( temp 3-component vector of float) -0:114 'v6' ( temp 3-component vector of float) -0:114 'gl_WorldRayDirectionNV' ( in 3-component vector of float WorldRayDirectionNV) -0:115 Sequence -0:115 move second child to first child ( temp 3-component vector of float) -0:115 'v7' ( temp 3-component vector of float) -0:115 'gl_ObjectRayOriginNV' ( in 3-component vector of float ObjectRayOriginNV) -0:116 Sequence -0:116 move second child to first child ( temp 3-component vector of float) -0:116 'v8' ( temp 3-component vector of float) -0:116 'gl_ObjectRayDirectionNV' ( in 3-component vector of float ObjectRayDirectionNV) -0:117 Sequence -0:117 move second child to first child ( temp float) -0:117 'v9' ( temp float) -0:117 'gl_RayTminNV' ( in float ObjectRayTminNV) -0:118 Sequence -0:118 move second child to first child ( temp float) -0:118 'v10' ( temp float) -0:118 'gl_RayTmaxNV' ( in float ObjectRayTmaxNV) -0:119 Sequence -0:119 move second child to first child ( temp float) -0:119 'v11' ( temp float) -0:119 'gl_HitTNV' ( in float HitTNV) -0:120 Sequence -0:120 move second child to first child ( temp uint) -0:120 'v12' ( temp uint) -0:120 'gl_HitKindNV' ( in uint HitKindNV) -0:121 Sequence -0:121 move second child to first child ( temp 4X3 matrix of float) -0:121 'v13' ( temp 4X3 matrix of float) -0:121 'gl_ObjectToWorldNV' ( in 4X3 matrix of float ObjectToWorldNV) -0:122 Sequence -0:122 move second child to first child ( temp 4X3 matrix of float) -0:122 'v14' ( temp 4X3 matrix of float) -0:122 'gl_WorldToObjectNV' ( in 4X3 matrix of float WorldToObjectNV) -0:123 move second child to first child ( temp 4-component vector of float) -0:123 'incomingPayload' (layout( location=1) rayPayloadInNV 4-component vector of float) -0:123 Constant: -0:123 0.500000 -0:123 0.500000 -0:123 0.500000 -0:123 0.500000 -0:124 Test condition and select ( temp void) -0:124 Condition -0:124 Compare Equal ( temp bool) -0:124 'v2' ( temp int) -0:124 Constant: -0:124 1 (const int) -0:124 true case -0:125 ignoreIntersectionNV ( global void) -0:124 false case -0:127 terminateRayNV ( global void) -0:131 Function Definition: basic_works( ( global void) -0:131 Function Parameters: -0:133 Sequence -0:133 'gl_SubgroupSize' ( in uint SubgroupSize) -0:134 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:135 subgroupBarrier ( global void) -0:136 subgroupMemoryBarrier ( global void) -0:137 subgroupMemoryBarrierBuffer ( global void) -0:138 subgroupMemoryBarrierImage ( global void) -0:139 subgroupElect ( global bool) -0:143 Function Definition: ballot_works(vf4; ( global void) -0:143 Function Parameters: -0:143 'f4' ( in 4-component vector of float) -0:144 Sequence -0:144 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask) -0:145 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask) -0:146 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask) -0:147 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask) -0:148 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask) -0:149 subgroupBroadcast ( global 4-component vector of float) -0:149 'f4' ( in 4-component vector of float) -0:149 Constant: -0:149 0 (const uint) -0:150 subgroupBroadcastFirst ( global 4-component vector of float) -0:150 'f4' ( in 4-component vector of float) -0:151 Sequence -0:151 move second child to first child ( temp 4-component vector of uint) -0:151 'ballot' ( temp 4-component vector of uint) -0:151 subgroupBallot ( global 4-component vector of uint) -0:151 Constant: -0:151 false (const bool) -0:152 subgroupInverseBallot ( global bool) -0:152 Constant: -0:152 1 (const uint) -0:152 1 (const uint) -0:152 1 (const uint) -0:152 1 (const uint) -0:153 subgroupBallotBitExtract ( global bool) -0:153 'ballot' ( temp 4-component vector of uint) -0:153 Constant: -0:153 0 (const uint) -0:154 subgroupBallotBitCount ( global uint) -0:154 'ballot' ( temp 4-component vector of uint) -0:155 subgroupBallotInclusiveBitCount ( global uint) -0:155 'ballot' ( temp 4-component vector of uint) -0:156 subgroupBallotExclusiveBitCount ( global uint) -0:156 'ballot' ( temp 4-component vector of uint) -0:157 subgroupBallotFindLSB ( global uint) -0:157 'ballot' ( temp 4-component vector of uint) -0:158 subgroupBallotFindMSB ( global uint) -0:158 'ballot' ( temp 4-component vector of uint) -0:162 Function Definition: vote_works(vf4; ( global void) -0:162 Function Parameters: -0:162 'f4' ( in 4-component vector of float) -0:164 Sequence -0:164 subgroupAll ( global bool) -0:164 Constant: -0:164 true (const bool) -0:165 subgroupAny ( global bool) -0:165 Constant: -0:165 false (const bool) -0:166 subgroupAllEqual ( global bool) -0:166 'f4' ( in 4-component vector of float) -0:171 Function Definition: shuffle_works(vf4; ( global void) -0:171 Function Parameters: -0:171 'f4' ( in 4-component vector of float) -0:173 Sequence -0:173 subgroupShuffle ( global 4-component vector of float) -0:173 'f4' ( in 4-component vector of float) -0:173 Constant: -0:173 0 (const uint) -0:174 subgroupShuffleXor ( global 4-component vector of float) -0:174 'f4' ( in 4-component vector of float) -0:174 Constant: -0:174 1 (const uint) -0:175 subgroupShuffleUp ( global 4-component vector of float) -0:175 'f4' ( in 4-component vector of float) -0:175 Constant: -0:175 1 (const uint) -0:176 subgroupShuffleDown ( global 4-component vector of float) -0:176 'f4' ( in 4-component vector of float) -0:176 Constant: -0:176 1 (const uint) -0:180 Function Definition: arith_works(vf4; ( global void) -0:180 Function Parameters: -0:180 'f4' ( in 4-component vector of float) -0:? Sequence -0:183 subgroupAdd ( global 4-component vector of float) -0:183 'f4' ( in 4-component vector of float) -0:184 subgroupMul ( global 4-component vector of float) -0:184 'f4' ( in 4-component vector of float) -0:185 subgroupMin ( global 4-component vector of float) -0:185 'f4' ( in 4-component vector of float) -0:186 subgroupMax ( global 4-component vector of float) -0:186 'f4' ( in 4-component vector of float) -0:187 subgroupAnd ( global 4-component vector of uint) -0:187 'ballot' ( temp 4-component vector of uint) -0:188 subgroupOr ( global 4-component vector of uint) -0:188 'ballot' ( temp 4-component vector of uint) -0:189 subgroupXor ( global 4-component vector of uint) -0:189 'ballot' ( temp 4-component vector of uint) -0:190 subgroupInclusiveAdd ( global 4-component vector of float) -0:190 'f4' ( in 4-component vector of float) -0:191 subgroupInclusiveMul ( global 4-component vector of float) -0:191 'f4' ( in 4-component vector of float) -0:192 subgroupInclusiveMin ( global 4-component vector of float) -0:192 'f4' ( in 4-component vector of float) -0:193 subgroupInclusiveMax ( global 4-component vector of float) -0:193 'f4' ( in 4-component vector of float) -0:194 subgroupInclusiveAnd ( global 4-component vector of uint) -0:194 'ballot' ( temp 4-component vector of uint) -0:195 subgroupInclusiveOr ( global 4-component vector of uint) -0:195 'ballot' ( temp 4-component vector of uint) -0:196 subgroupInclusiveXor ( global 4-component vector of uint) -0:196 'ballot' ( temp 4-component vector of uint) -0:197 subgroupExclusiveAdd ( global 4-component vector of float) -0:197 'f4' ( in 4-component vector of float) -0:198 subgroupExclusiveMul ( global 4-component vector of float) -0:198 'f4' ( in 4-component vector of float) -0:199 subgroupExclusiveMin ( global 4-component vector of float) -0:199 'f4' ( in 4-component vector of float) -0:200 subgroupExclusiveMax ( global 4-component vector of float) -0:200 'f4' ( in 4-component vector of float) -0:201 subgroupExclusiveAnd ( global 4-component vector of uint) -0:201 'ballot' ( temp 4-component vector of uint) -0:202 subgroupExclusiveOr ( global 4-component vector of uint) -0:202 'ballot' ( temp 4-component vector of uint) -0:203 subgroupExclusiveXor ( global 4-component vector of uint) -0:203 'ballot' ( temp 4-component vector of uint) -0:207 Function Definition: clustered_works(vf4; ( global void) -0:207 Function Parameters: -0:207 'f4' ( in 4-component vector of float) -0:209 Sequence -0:209 Sequence -0:209 move second child to first child ( temp 4-component vector of uint) -0:209 'ballot' ( temp 4-component vector of uint) -0:209 Constant: -0:209 85 (const uint) -0:209 0 (const uint) -0:209 0 (const uint) -0:209 0 (const uint) -0:210 subgroupClusteredAdd ( global 4-component vector of float) -0:210 'f4' ( in 4-component vector of float) -0:210 Constant: -0:210 2 (const uint) -0:211 subgroupClusteredMul ( global 4-component vector of float) -0:211 'f4' ( in 4-component vector of float) -0:211 Constant: -0:211 2 (const uint) -0:212 subgroupClusteredMin ( global 4-component vector of float) -0:212 'f4' ( in 4-component vector of float) -0:212 Constant: -0:212 2 (const uint) -0:213 subgroupClusteredMax ( global 4-component vector of float) -0:213 'f4' ( in 4-component vector of float) -0:213 Constant: -0:213 2 (const uint) -0:214 subgroupClusteredAnd ( global 4-component vector of uint) -0:214 'ballot' ( temp 4-component vector of uint) -0:214 Constant: -0:214 2 (const uint) -0:215 subgroupClusteredOr ( global 4-component vector of uint) -0:215 'ballot' ( temp 4-component vector of uint) -0:215 Constant: -0:215 2 (const uint) -0:216 subgroupClusteredXor ( global 4-component vector of uint) -0:216 'ballot' ( temp 4-component vector of uint) -0:216 Constant: -0:216 2 (const uint) -0:220 Function Definition: quad_works(vf4; ( global void) -0:220 Function Parameters: -0:220 'f4' ( in 4-component vector of float) -0:222 Sequence -0:222 subgroupQuadBroadcast ( global 4-component vector of float) -0:222 'f4' ( in 4-component vector of float) -0:222 Constant: -0:222 0 (const uint) -0:223 subgroupQuadSwapHorizontal ( global 4-component vector of float) -0:223 'f4' ( in 4-component vector of float) -0:224 subgroupQuadSwapVertical ( global 4-component vector of float) -0:224 'f4' ( in 4-component vector of float) -0:225 subgroupQuadSwapDiagonal ( global 4-component vector of float) -0:225 'f4' ( in 4-component vector of float) -0:229 Function Definition: partitioned_works(vf4; ( global void) -0:229 Function Parameters: -0:229 'f4' ( in 4-component vector of float) -0:231 Sequence -0:231 Sequence -0:231 move second child to first child ( temp 4-component vector of uint) -0:231 'parti' ( temp 4-component vector of uint) -0:231 subgroupPartitionNV ( global 4-component vector of uint) -0:231 'f4' ( in 4-component vector of float) -0:232 Sequence -0:232 move second child to first child ( temp 4-component vector of uint) -0:232 'ballot' ( temp 4-component vector of uint) -0:232 Constant: -0:232 85 (const uint) -0:232 0 (const uint) -0:232 0 (const uint) -0:232 0 (const uint) -0:233 subgroupPartitionedAddNV ( global 4-component vector of float) -0:233 'f4' ( in 4-component vector of float) -0:233 'parti' ( temp 4-component vector of uint) -0:234 subgroupPartitionedMulNV ( global 4-component vector of float) -0:234 'f4' ( in 4-component vector of float) -0:234 'parti' ( temp 4-component vector of uint) -0:235 subgroupPartitionedMinNV ( global 4-component vector of float) -0:235 'f4' ( in 4-component vector of float) -0:235 'parti' ( temp 4-component vector of uint) -0:236 subgroupPartitionedMaxNV ( global 4-component vector of float) -0:236 'f4' ( in 4-component vector of float) -0:236 'parti' ( temp 4-component vector of uint) -0:237 subgroupPartitionedAndNV ( global 4-component vector of uint) -0:237 'ballot' ( temp 4-component vector of uint) -0:237 'parti' ( temp 4-component vector of uint) -0:238 subgroupPartitionedOrNV ( global 4-component vector of uint) -0:238 'ballot' ( temp 4-component vector of uint) -0:238 'parti' ( temp 4-component vector of uint) -0:239 subgroupPartitionedXorNV ( global 4-component vector of uint) -0:239 'ballot' ( temp 4-component vector of uint) -0:239 'parti' ( temp 4-component vector of uint) -0:240 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float) -0:240 'f4' ( in 4-component vector of float) -0:240 'parti' ( temp 4-component vector of uint) -0:241 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float) -0:241 'f4' ( in 4-component vector of float) -0:241 'parti' ( temp 4-component vector of uint) -0:242 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float) -0:242 'f4' ( in 4-component vector of float) -0:242 'parti' ( temp 4-component vector of uint) -0:243 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float) -0:243 'f4' ( in 4-component vector of float) -0:243 'parti' ( temp 4-component vector of uint) -0:244 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint) -0:244 'ballot' ( temp 4-component vector of uint) -0:244 'parti' ( temp 4-component vector of uint) -0:245 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint) -0:245 'ballot' ( temp 4-component vector of uint) -0:245 'parti' ( temp 4-component vector of uint) -0:246 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint) -0:246 'ballot' ( temp 4-component vector of uint) -0:246 'parti' ( temp 4-component vector of uint) -0:247 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float) -0:247 'f4' ( in 4-component vector of float) -0:247 'parti' ( temp 4-component vector of uint) -0:248 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float) -0:248 'f4' ( in 4-component vector of float) -0:248 'parti' ( temp 4-component vector of uint) -0:249 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float) -0:249 'f4' ( in 4-component vector of float) -0:249 'parti' ( temp 4-component vector of uint) -0:250 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float) -0:250 'f4' ( in 4-component vector of float) -0:250 'parti' ( temp 4-component vector of uint) -0:251 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint) -0:251 'ballot' ( temp 4-component vector of uint) -0:251 'parti' ( temp 4-component vector of uint) -0:252 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint) -0:252 'ballot' ( temp 4-component vector of uint) -0:252 'parti' ( temp 4-component vector of uint) -0:253 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint) -0:253 'ballot' ( temp 4-component vector of uint) -0:253 'parti' ( temp 4-component vector of uint) -0:257 Function Definition: sm_builtins_err( ( global void) -0:257 Function Parameters: -0:259 Sequence -0:259 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV) -0:260 'gl_SMCountNV' ( in uint SMCountNV) -0:261 'gl_WarpIDNV' ( in uint WarpIDNV) -0:262 'gl_SMIDNV' ( in uint SMIDNV) -0:269 Function Definition: sm_builtins( ( global void) -0:269 Function Parameters: -0:271 Sequence -0:271 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV) -0:272 'gl_SMCountNV' ( in uint SMCountNV) -0:273 'gl_WarpIDNV' ( in uint WarpIDNV) -0:274 'gl_SMIDNV' ( in uint SMIDNV) -0:? Linker Objects -0:? 'incomingPayload' (layout( location=1) rayPayloadInNV 4-component vector of float) - - -Linked any-hit stage: - - -Shader version: 460 -Requested GL_KHR_shader_subgroup_arithmetic -Requested GL_KHR_shader_subgroup_ballot -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_clustered -Requested GL_KHR_shader_subgroup_quad -Requested GL_KHR_shader_subgroup_shuffle -Requested GL_KHR_shader_subgroup_shuffle_relative -Requested GL_KHR_shader_subgroup_vote -Requested GL_NV_ray_tracing -Requested GL_NV_shader_sm_builtins -Requested GL_NV_shader_subgroup_partitioned -ERROR: node is still EOpNull! -0:106 Function Definition: main( ( global void) -0:106 Function Parameters: -0:108 Sequence -0:108 Sequence -0:108 move second child to first child ( temp 3-component vector of uint) -0:108 'v0' ( temp 3-component vector of uint) -0:108 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV) -0:109 Sequence -0:109 move second child to first child ( temp 3-component vector of uint) -0:109 'v1' ( temp 3-component vector of uint) -0:109 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV) -0:110 Sequence -0:110 move second child to first child ( temp int) -0:110 'v2' ( temp int) -0:110 'gl_PrimitiveID' ( in int PrimitiveID) -0:111 Sequence -0:111 move second child to first child ( temp int) -0:111 'v3' ( temp int) -0:111 'gl_InstanceID' ( in int InstanceId) -0:112 Sequence -0:112 move second child to first child ( temp int) -0:112 'v4' ( temp int) -0:112 'gl_InstanceCustomIndexNV' ( in int InstanceCustomIndexNV) -0:113 Sequence -0:113 move second child to first child ( temp 3-component vector of float) -0:113 'v5' ( temp 3-component vector of float) -0:113 'gl_WorldRayOriginNV' ( in 3-component vector of float WorldRayOriginNV) -0:114 Sequence -0:114 move second child to first child ( temp 3-component vector of float) -0:114 'v6' ( temp 3-component vector of float) -0:114 'gl_WorldRayDirectionNV' ( in 3-component vector of float WorldRayDirectionNV) -0:115 Sequence -0:115 move second child to first child ( temp 3-component vector of float) -0:115 'v7' ( temp 3-component vector of float) -0:115 'gl_ObjectRayOriginNV' ( in 3-component vector of float ObjectRayOriginNV) -0:116 Sequence -0:116 move second child to first child ( temp 3-component vector of float) -0:116 'v8' ( temp 3-component vector of float) -0:116 'gl_ObjectRayDirectionNV' ( in 3-component vector of float ObjectRayDirectionNV) -0:117 Sequence -0:117 move second child to first child ( temp float) -0:117 'v9' ( temp float) -0:117 'gl_RayTminNV' ( in float ObjectRayTminNV) -0:118 Sequence -0:118 move second child to first child ( temp float) -0:118 'v10' ( temp float) -0:118 'gl_RayTmaxNV' ( in float ObjectRayTmaxNV) -0:119 Sequence -0:119 move second child to first child ( temp float) -0:119 'v11' ( temp float) -0:119 'gl_HitTNV' ( in float HitTNV) -0:120 Sequence -0:120 move second child to first child ( temp uint) -0:120 'v12' ( temp uint) -0:120 'gl_HitKindNV' ( in uint HitKindNV) -0:121 Sequence -0:121 move second child to first child ( temp 4X3 matrix of float) -0:121 'v13' ( temp 4X3 matrix of float) -0:121 'gl_ObjectToWorldNV' ( in 4X3 matrix of float ObjectToWorldNV) -0:122 Sequence -0:122 move second child to first child ( temp 4X3 matrix of float) -0:122 'v14' ( temp 4X3 matrix of float) -0:122 'gl_WorldToObjectNV' ( in 4X3 matrix of float WorldToObjectNV) -0:123 move second child to first child ( temp 4-component vector of float) -0:123 'incomingPayload' (layout( location=1) rayPayloadInNV 4-component vector of float) -0:123 Constant: -0:123 0.500000 -0:123 0.500000 -0:123 0.500000 -0:123 0.500000 -0:124 Test condition and select ( temp void) -0:124 Condition -0:124 Compare Equal ( temp bool) -0:124 'v2' ( temp int) -0:124 Constant: -0:124 1 (const int) -0:124 true case -0:125 ignoreIntersectionNV ( global void) -0:124 false case -0:127 terminateRayNV ( global void) -0:? Linker Objects -0:? 'incomingPayload' (layout( location=1) rayPayloadInNV 4-component vector of float) - diff --git a/deps/glslang/Test/baseResults/glsl.460.subgroup.rcall.out b/deps/glslang/Test/baseResults/glsl.460.subgroup.rcall.out deleted file mode 100644 index 2b2d89b1..00000000 --- a/deps/glslang/Test/baseResults/glsl.460.subgroup.rcall.out +++ /dev/null @@ -1,683 +0,0 @@ -glsl.460.subgroup.rcall -ERROR: 0:7: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:8: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:9: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:10: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:11: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:12: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:13: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:14: 'gl_NumSubgroups' : undeclared identifier -ERROR: 0:15: 'gl_SubgroupID' : undeclared identifier -ERROR: 0:16: 'subgroupMemoryBarrierShared' : no matching overloaded function found -ERROR: 0:18: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:19: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:20: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:22: 'gl_SubgroupEqMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:23: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:24: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:25: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:26: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:27: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:28: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:29: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:30: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:31: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:32: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:33: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:34: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:35: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:36: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:38: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle -ERROR: 0:39: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle -ERROR: 0:40: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative -ERROR: 0:41: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative -ERROR: 0:43: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:44: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:45: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:46: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:47: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:48: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:49: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:50: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:51: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:52: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:53: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:54: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:55: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:56: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:57: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:58: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:59: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:60: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:61: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:62: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:63: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:65: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:66: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:67: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:68: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:69: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:70: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:71: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:73: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:74: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:75: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:76: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:78: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:79: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:80: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:81: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:82: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:83: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:84: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:85: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:86: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:87: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:88: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:89: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:90: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:91: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:92: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:93: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:94: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:95: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:96: 'subgroupPartitionedExclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:97: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:98: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:99: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:247: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:248: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:249: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:250: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 90 compilation errors. No code generated. - - -Shader version: 460 -Requested GL_KHR_shader_subgroup_arithmetic -Requested GL_KHR_shader_subgroup_ballot -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_clustered -Requested GL_KHR_shader_subgroup_quad -Requested GL_KHR_shader_subgroup_shuffle -Requested GL_KHR_shader_subgroup_shuffle_relative -Requested GL_KHR_shader_subgroup_vote -Requested GL_NV_ray_tracing -Requested GL_NV_shader_sm_builtins -Requested GL_NV_shader_subgroup_partitioned -ERROR: node is still EOpNull! -0:4 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float) -0:4 Function Parameters: -0:4 'f4' ( in 4-component vector of float) -0:? Sequence -0:7 'gl_SubgroupSize' ( volatile in uint SubgroupSize) -0:8 'gl_SubgroupInvocationID' ( volatile in uint SubgroupInvocationID) -0:9 subgroupBarrier ( global void) -0:10 subgroupMemoryBarrier ( global void) -0:11 subgroupMemoryBarrierBuffer ( global void) -0:12 subgroupMemoryBarrierImage ( global void) -0:13 subgroupElect ( global bool) -0:14 'gl_NumSubgroups' ( temp float) -0:15 'gl_SubgroupID' ( temp float) -0:16 Constant: -0:16 0.000000 -0:18 subgroupAll ( global bool) -0:18 Constant: -0:18 true (const bool) -0:19 subgroupAny ( global bool) -0:19 Constant: -0:19 false (const bool) -0:20 subgroupAllEqual ( global bool) -0:20 'f4' ( in 4-component vector of float) -0:22 'gl_SubgroupEqMask' ( volatile in 4-component vector of uint SubgroupEqMask) -0:23 'gl_SubgroupGeMask' ( volatile in 4-component vector of uint SubgroupGeMask) -0:24 'gl_SubgroupGtMask' ( volatile in 4-component vector of uint SubgroupGtMask) -0:25 'gl_SubgroupLeMask' ( volatile in 4-component vector of uint SubgroupLeMask) -0:26 'gl_SubgroupLtMask' ( volatile in 4-component vector of uint SubgroupLtMask) -0:27 subgroupBroadcast ( global 4-component vector of float) -0:27 'f4' ( in 4-component vector of float) -0:27 Constant: -0:27 0 (const uint) -0:28 subgroupBroadcastFirst ( global 4-component vector of float) -0:28 'f4' ( in 4-component vector of float) -0:29 Sequence -0:29 move second child to first child ( temp 4-component vector of uint) -0:29 'ballot' ( temp 4-component vector of uint) -0:29 subgroupBallot ( global 4-component vector of uint) -0:29 Constant: -0:29 false (const bool) -0:30 subgroupInverseBallot ( global bool) -0:30 Constant: -0:30 1 (const uint) -0:30 1 (const uint) -0:30 1 (const uint) -0:30 1 (const uint) -0:31 subgroupBallotBitExtract ( global bool) -0:31 'ballot' ( temp 4-component vector of uint) -0:31 Constant: -0:31 0 (const uint) -0:32 subgroupBallotBitCount ( global uint) -0:32 'ballot' ( temp 4-component vector of uint) -0:33 subgroupBallotInclusiveBitCount ( global uint) -0:33 'ballot' ( temp 4-component vector of uint) -0:34 subgroupBallotExclusiveBitCount ( global uint) -0:34 'ballot' ( temp 4-component vector of uint) -0:35 subgroupBallotFindLSB ( global uint) -0:35 'ballot' ( temp 4-component vector of uint) -0:36 subgroupBallotFindMSB ( global uint) -0:36 'ballot' ( temp 4-component vector of uint) -0:38 subgroupShuffle ( global 4-component vector of float) -0:38 'f4' ( in 4-component vector of float) -0:38 Constant: -0:38 0 (const uint) -0:39 subgroupShuffleXor ( global 4-component vector of float) -0:39 'f4' ( in 4-component vector of float) -0:39 Constant: -0:39 1 (const uint) -0:40 subgroupShuffleUp ( global 4-component vector of float) -0:40 'f4' ( in 4-component vector of float) -0:40 Constant: -0:40 1 (const uint) -0:41 subgroupShuffleDown ( global 4-component vector of float) -0:41 'f4' ( in 4-component vector of float) -0:41 Constant: -0:41 1 (const uint) -0:43 move second child to first child ( temp 4-component vector of float) -0:43 'result' ( temp 4-component vector of float) -0:43 subgroupAdd ( global 4-component vector of float) -0:43 'f4' ( in 4-component vector of float) -0:44 subgroupMul ( global 4-component vector of float) -0:44 'f4' ( in 4-component vector of float) -0:45 subgroupMin ( global 4-component vector of float) -0:45 'f4' ( in 4-component vector of float) -0:46 subgroupMax ( global 4-component vector of float) -0:46 'f4' ( in 4-component vector of float) -0:47 subgroupAnd ( global 4-component vector of uint) -0:47 'ballot' ( temp 4-component vector of uint) -0:48 subgroupOr ( global 4-component vector of uint) -0:48 'ballot' ( temp 4-component vector of uint) -0:49 subgroupXor ( global 4-component vector of uint) -0:49 'ballot' ( temp 4-component vector of uint) -0:50 subgroupInclusiveAdd ( global 4-component vector of float) -0:50 'f4' ( in 4-component vector of float) -0:51 subgroupInclusiveMul ( global 4-component vector of float) -0:51 'f4' ( in 4-component vector of float) -0:52 subgroupInclusiveMin ( global 4-component vector of float) -0:52 'f4' ( in 4-component vector of float) -0:53 subgroupInclusiveMax ( global 4-component vector of float) -0:53 'f4' ( in 4-component vector of float) -0:54 subgroupInclusiveAnd ( global 4-component vector of uint) -0:54 'ballot' ( temp 4-component vector of uint) -0:55 subgroupInclusiveOr ( global 4-component vector of uint) -0:55 'ballot' ( temp 4-component vector of uint) -0:56 subgroupInclusiveXor ( global 4-component vector of uint) -0:56 'ballot' ( temp 4-component vector of uint) -0:57 subgroupExclusiveAdd ( global 4-component vector of float) -0:57 'f4' ( in 4-component vector of float) -0:58 subgroupExclusiveMul ( global 4-component vector of float) -0:58 'f4' ( in 4-component vector of float) -0:59 subgroupExclusiveMin ( global 4-component vector of float) -0:59 'f4' ( in 4-component vector of float) -0:60 subgroupExclusiveMax ( global 4-component vector of float) -0:60 'f4' ( in 4-component vector of float) -0:61 subgroupExclusiveAnd ( global 4-component vector of uint) -0:61 'ballot' ( temp 4-component vector of uint) -0:62 subgroupExclusiveOr ( global 4-component vector of uint) -0:62 'ballot' ( temp 4-component vector of uint) -0:63 subgroupExclusiveXor ( global 4-component vector of uint) -0:63 'ballot' ( temp 4-component vector of uint) -0:65 subgroupClusteredAdd ( global 4-component vector of float) -0:65 'f4' ( in 4-component vector of float) -0:65 Constant: -0:65 2 (const uint) -0:66 subgroupClusteredMul ( global 4-component vector of float) -0:66 'f4' ( in 4-component vector of float) -0:66 Constant: -0:66 2 (const uint) -0:67 subgroupClusteredMin ( global 4-component vector of float) -0:67 'f4' ( in 4-component vector of float) -0:67 Constant: -0:67 2 (const uint) -0:68 subgroupClusteredMax ( global 4-component vector of float) -0:68 'f4' ( in 4-component vector of float) -0:68 Constant: -0:68 2 (const uint) -0:69 subgroupClusteredAnd ( global 4-component vector of uint) -0:69 'ballot' ( temp 4-component vector of uint) -0:69 Constant: -0:69 2 (const uint) -0:70 subgroupClusteredOr ( global 4-component vector of uint) -0:70 'ballot' ( temp 4-component vector of uint) -0:70 Constant: -0:70 2 (const uint) -0:71 subgroupClusteredXor ( global 4-component vector of uint) -0:71 'ballot' ( temp 4-component vector of uint) -0:71 Constant: -0:71 2 (const uint) -0:73 subgroupQuadBroadcast ( global 4-component vector of float) -0:73 'f4' ( in 4-component vector of float) -0:73 Constant: -0:73 0 (const uint) -0:74 subgroupQuadSwapHorizontal ( global 4-component vector of float) -0:74 'f4' ( in 4-component vector of float) -0:75 subgroupQuadSwapVertical ( global 4-component vector of float) -0:75 'f4' ( in 4-component vector of float) -0:76 subgroupQuadSwapDiagonal ( global 4-component vector of float) -0:76 'f4' ( in 4-component vector of float) -0:78 Sequence -0:78 move second child to first child ( temp 4-component vector of uint) -0:78 'parti' ( temp 4-component vector of uint) -0:78 subgroupPartitionNV ( global 4-component vector of uint) -0:78 'f4' ( in 4-component vector of float) -0:79 subgroupPartitionedAddNV ( global 4-component vector of float) -0:79 'f4' ( in 4-component vector of float) -0:79 'parti' ( temp 4-component vector of uint) -0:80 subgroupPartitionedMulNV ( global 4-component vector of float) -0:80 'f4' ( in 4-component vector of float) -0:80 'parti' ( temp 4-component vector of uint) -0:81 subgroupPartitionedMinNV ( global 4-component vector of float) -0:81 'f4' ( in 4-component vector of float) -0:81 'parti' ( temp 4-component vector of uint) -0:82 subgroupPartitionedMaxNV ( global 4-component vector of float) -0:82 'f4' ( in 4-component vector of float) -0:82 'parti' ( temp 4-component vector of uint) -0:83 subgroupPartitionedAndNV ( global 4-component vector of uint) -0:83 'ballot' ( temp 4-component vector of uint) -0:83 'parti' ( temp 4-component vector of uint) -0:84 subgroupPartitionedOrNV ( global 4-component vector of uint) -0:84 'ballot' ( temp 4-component vector of uint) -0:84 'parti' ( temp 4-component vector of uint) -0:85 subgroupPartitionedXorNV ( global 4-component vector of uint) -0:85 'ballot' ( temp 4-component vector of uint) -0:85 'parti' ( temp 4-component vector of uint) -0:86 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float) -0:86 'f4' ( in 4-component vector of float) -0:86 'parti' ( temp 4-component vector of uint) -0:87 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float) -0:87 'f4' ( in 4-component vector of float) -0:87 'parti' ( temp 4-component vector of uint) -0:88 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float) -0:88 'f4' ( in 4-component vector of float) -0:88 'parti' ( temp 4-component vector of uint) -0:89 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float) -0:89 'f4' ( in 4-component vector of float) -0:89 'parti' ( temp 4-component vector of uint) -0:90 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint) -0:90 'ballot' ( temp 4-component vector of uint) -0:90 'parti' ( temp 4-component vector of uint) -0:91 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint) -0:91 'ballot' ( temp 4-component vector of uint) -0:91 'parti' ( temp 4-component vector of uint) -0:92 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint) -0:92 'ballot' ( temp 4-component vector of uint) -0:92 'parti' ( temp 4-component vector of uint) -0:93 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float) -0:93 'f4' ( in 4-component vector of float) -0:93 'parti' ( temp 4-component vector of uint) -0:94 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float) -0:94 'f4' ( in 4-component vector of float) -0:94 'parti' ( temp 4-component vector of uint) -0:95 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float) -0:95 'f4' ( in 4-component vector of float) -0:95 'parti' ( temp 4-component vector of uint) -0:96 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float) -0:96 'f4' ( in 4-component vector of float) -0:96 'parti' ( temp 4-component vector of uint) -0:97 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint) -0:97 'ballot' ( temp 4-component vector of uint) -0:97 'parti' ( temp 4-component vector of uint) -0:98 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint) -0:98 'ballot' ( temp 4-component vector of uint) -0:98 'parti' ( temp 4-component vector of uint) -0:99 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint) -0:99 'ballot' ( temp 4-component vector of uint) -0:99 'parti' ( temp 4-component vector of uint) -0:101 Branch: Return with expression -0:101 'result' ( temp 4-component vector of float) -0:109 Function Definition: main( ( global void) -0:109 Function Parameters: -0:111 Sequence -0:111 Sequence -0:111 move second child to first child ( temp 3-component vector of uint) -0:111 'id' ( temp 3-component vector of uint) -0:111 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV) -0:112 Sequence -0:112 move second child to first child ( temp 3-component vector of uint) -0:112 'size' ( temp 3-component vector of uint) -0:112 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV) -0:113 move second child to first child ( temp uint) -0:113 data1: direct index for structure ( callableDataInNV uint) -0:113 'anon@0' (layout( location=1) callableDataInNV block{ callableDataInNV uint data1}) -0:113 Constant: -0:113 0 (const uint) -0:113 Constant: -0:113 256 (const uint) -0:114 executeCallableNV ( global void) -0:114 Constant: -0:114 2 (const uint) -0:114 Constant: -0:114 1 (const int) -0:119 Function Definition: basic_works( ( global void) -0:119 Function Parameters: -0:121 Sequence -0:121 'gl_SubgroupSize' ( volatile in uint SubgroupSize) -0:122 'gl_SubgroupInvocationID' ( volatile in uint SubgroupInvocationID) -0:123 subgroupBarrier ( global void) -0:124 subgroupMemoryBarrier ( global void) -0:125 subgroupMemoryBarrierBuffer ( global void) -0:126 subgroupMemoryBarrierImage ( global void) -0:127 subgroupElect ( global bool) -0:131 Function Definition: ballot_works(vf4; ( global void) -0:131 Function Parameters: -0:131 'f4' ( in 4-component vector of float) -0:132 Sequence -0:132 'gl_SubgroupEqMask' ( volatile in 4-component vector of uint SubgroupEqMask) -0:133 'gl_SubgroupGeMask' ( volatile in 4-component vector of uint SubgroupGeMask) -0:134 'gl_SubgroupGtMask' ( volatile in 4-component vector of uint SubgroupGtMask) -0:135 'gl_SubgroupLeMask' ( volatile in 4-component vector of uint SubgroupLeMask) -0:136 'gl_SubgroupLtMask' ( volatile in 4-component vector of uint SubgroupLtMask) -0:137 subgroupBroadcast ( global 4-component vector of float) -0:137 'f4' ( in 4-component vector of float) -0:137 Constant: -0:137 0 (const uint) -0:138 subgroupBroadcastFirst ( global 4-component vector of float) -0:138 'f4' ( in 4-component vector of float) -0:139 Sequence -0:139 move second child to first child ( temp 4-component vector of uint) -0:139 'ballot' ( temp 4-component vector of uint) -0:139 subgroupBallot ( global 4-component vector of uint) -0:139 Constant: -0:139 false (const bool) -0:140 subgroupInverseBallot ( global bool) -0:140 Constant: -0:140 1 (const uint) -0:140 1 (const uint) -0:140 1 (const uint) -0:140 1 (const uint) -0:141 subgroupBallotBitExtract ( global bool) -0:141 'ballot' ( temp 4-component vector of uint) -0:141 Constant: -0:141 0 (const uint) -0:142 subgroupBallotBitCount ( global uint) -0:142 'ballot' ( temp 4-component vector of uint) -0:143 subgroupBallotInclusiveBitCount ( global uint) -0:143 'ballot' ( temp 4-component vector of uint) -0:144 subgroupBallotExclusiveBitCount ( global uint) -0:144 'ballot' ( temp 4-component vector of uint) -0:145 subgroupBallotFindLSB ( global uint) -0:145 'ballot' ( temp 4-component vector of uint) -0:146 subgroupBallotFindMSB ( global uint) -0:146 'ballot' ( temp 4-component vector of uint) -0:150 Function Definition: vote_works(vf4; ( global void) -0:150 Function Parameters: -0:150 'f4' ( in 4-component vector of float) -0:152 Sequence -0:152 subgroupAll ( global bool) -0:152 Constant: -0:152 true (const bool) -0:153 subgroupAny ( global bool) -0:153 Constant: -0:153 false (const bool) -0:154 subgroupAllEqual ( global bool) -0:154 'f4' ( in 4-component vector of float) -0:159 Function Definition: shuffle_works(vf4; ( global void) -0:159 Function Parameters: -0:159 'f4' ( in 4-component vector of float) -0:161 Sequence -0:161 subgroupShuffle ( global 4-component vector of float) -0:161 'f4' ( in 4-component vector of float) -0:161 Constant: -0:161 0 (const uint) -0:162 subgroupShuffleXor ( global 4-component vector of float) -0:162 'f4' ( in 4-component vector of float) -0:162 Constant: -0:162 1 (const uint) -0:163 subgroupShuffleUp ( global 4-component vector of float) -0:163 'f4' ( in 4-component vector of float) -0:163 Constant: -0:163 1 (const uint) -0:164 subgroupShuffleDown ( global 4-component vector of float) -0:164 'f4' ( in 4-component vector of float) -0:164 Constant: -0:164 1 (const uint) -0:168 Function Definition: arith_works(vf4; ( global void) -0:168 Function Parameters: -0:168 'f4' ( in 4-component vector of float) -0:? Sequence -0:171 subgroupAdd ( global 4-component vector of float) -0:171 'f4' ( in 4-component vector of float) -0:172 subgroupMul ( global 4-component vector of float) -0:172 'f4' ( in 4-component vector of float) -0:173 subgroupMin ( global 4-component vector of float) -0:173 'f4' ( in 4-component vector of float) -0:174 subgroupMax ( global 4-component vector of float) -0:174 'f4' ( in 4-component vector of float) -0:175 subgroupAnd ( global 4-component vector of uint) -0:175 'ballot' ( temp 4-component vector of uint) -0:176 subgroupOr ( global 4-component vector of uint) -0:176 'ballot' ( temp 4-component vector of uint) -0:177 subgroupXor ( global 4-component vector of uint) -0:177 'ballot' ( temp 4-component vector of uint) -0:178 subgroupInclusiveAdd ( global 4-component vector of float) -0:178 'f4' ( in 4-component vector of float) -0:179 subgroupInclusiveMul ( global 4-component vector of float) -0:179 'f4' ( in 4-component vector of float) -0:180 subgroupInclusiveMin ( global 4-component vector of float) -0:180 'f4' ( in 4-component vector of float) -0:181 subgroupInclusiveMax ( global 4-component vector of float) -0:181 'f4' ( in 4-component vector of float) -0:182 subgroupInclusiveAnd ( global 4-component vector of uint) -0:182 'ballot' ( temp 4-component vector of uint) -0:183 subgroupInclusiveOr ( global 4-component vector of uint) -0:183 'ballot' ( temp 4-component vector of uint) -0:184 subgroupInclusiveXor ( global 4-component vector of uint) -0:184 'ballot' ( temp 4-component vector of uint) -0:185 subgroupExclusiveAdd ( global 4-component vector of float) -0:185 'f4' ( in 4-component vector of float) -0:186 subgroupExclusiveMul ( global 4-component vector of float) -0:186 'f4' ( in 4-component vector of float) -0:187 subgroupExclusiveMin ( global 4-component vector of float) -0:187 'f4' ( in 4-component vector of float) -0:188 subgroupExclusiveMax ( global 4-component vector of float) -0:188 'f4' ( in 4-component vector of float) -0:189 subgroupExclusiveAnd ( global 4-component vector of uint) -0:189 'ballot' ( temp 4-component vector of uint) -0:190 subgroupExclusiveOr ( global 4-component vector of uint) -0:190 'ballot' ( temp 4-component vector of uint) -0:191 subgroupExclusiveXor ( global 4-component vector of uint) -0:191 'ballot' ( temp 4-component vector of uint) -0:195 Function Definition: clustered_works(vf4; ( global void) -0:195 Function Parameters: -0:195 'f4' ( in 4-component vector of float) -0:197 Sequence -0:197 Sequence -0:197 move second child to first child ( temp 4-component vector of uint) -0:197 'ballot' ( temp 4-component vector of uint) -0:197 Constant: -0:197 85 (const uint) -0:197 0 (const uint) -0:197 0 (const uint) -0:197 0 (const uint) -0:198 subgroupClusteredAdd ( global 4-component vector of float) -0:198 'f4' ( in 4-component vector of float) -0:198 Constant: -0:198 2 (const uint) -0:199 subgroupClusteredMul ( global 4-component vector of float) -0:199 'f4' ( in 4-component vector of float) -0:199 Constant: -0:199 2 (const uint) -0:200 subgroupClusteredMin ( global 4-component vector of float) -0:200 'f4' ( in 4-component vector of float) -0:200 Constant: -0:200 2 (const uint) -0:201 subgroupClusteredMax ( global 4-component vector of float) -0:201 'f4' ( in 4-component vector of float) -0:201 Constant: -0:201 2 (const uint) -0:202 subgroupClusteredAnd ( global 4-component vector of uint) -0:202 'ballot' ( temp 4-component vector of uint) -0:202 Constant: -0:202 2 (const uint) -0:203 subgroupClusteredOr ( global 4-component vector of uint) -0:203 'ballot' ( temp 4-component vector of uint) -0:203 Constant: -0:203 2 (const uint) -0:204 subgroupClusteredXor ( global 4-component vector of uint) -0:204 'ballot' ( temp 4-component vector of uint) -0:204 Constant: -0:204 2 (const uint) -0:208 Function Definition: quad_works(vf4; ( global void) -0:208 Function Parameters: -0:208 'f4' ( in 4-component vector of float) -0:210 Sequence -0:210 subgroupQuadBroadcast ( global 4-component vector of float) -0:210 'f4' ( in 4-component vector of float) -0:210 Constant: -0:210 0 (const uint) -0:211 subgroupQuadSwapHorizontal ( global 4-component vector of float) -0:211 'f4' ( in 4-component vector of float) -0:212 subgroupQuadSwapVertical ( global 4-component vector of float) -0:212 'f4' ( in 4-component vector of float) -0:213 subgroupQuadSwapDiagonal ( global 4-component vector of float) -0:213 'f4' ( in 4-component vector of float) -0:217 Function Definition: partitioned_works(vf4; ( global void) -0:217 Function Parameters: -0:217 'f4' ( in 4-component vector of float) -0:219 Sequence -0:219 Sequence -0:219 move second child to first child ( temp 4-component vector of uint) -0:219 'parti' ( temp 4-component vector of uint) -0:219 subgroupPartitionNV ( global 4-component vector of uint) -0:219 'f4' ( in 4-component vector of float) -0:220 Sequence -0:220 move second child to first child ( temp 4-component vector of uint) -0:220 'ballot' ( temp 4-component vector of uint) -0:220 Constant: -0:220 85 (const uint) -0:220 0 (const uint) -0:220 0 (const uint) -0:220 0 (const uint) -0:221 subgroupPartitionedAddNV ( global 4-component vector of float) -0:221 'f4' ( in 4-component vector of float) -0:221 'parti' ( temp 4-component vector of uint) -0:222 subgroupPartitionedMulNV ( global 4-component vector of float) -0:222 'f4' ( in 4-component vector of float) -0:222 'parti' ( temp 4-component vector of uint) -0:223 subgroupPartitionedMinNV ( global 4-component vector of float) -0:223 'f4' ( in 4-component vector of float) -0:223 'parti' ( temp 4-component vector of uint) -0:224 subgroupPartitionedMaxNV ( global 4-component vector of float) -0:224 'f4' ( in 4-component vector of float) -0:224 'parti' ( temp 4-component vector of uint) -0:225 subgroupPartitionedAndNV ( global 4-component vector of uint) -0:225 'ballot' ( temp 4-component vector of uint) -0:225 'parti' ( temp 4-component vector of uint) -0:226 subgroupPartitionedOrNV ( global 4-component vector of uint) -0:226 'ballot' ( temp 4-component vector of uint) -0:226 'parti' ( temp 4-component vector of uint) -0:227 subgroupPartitionedXorNV ( global 4-component vector of uint) -0:227 'ballot' ( temp 4-component vector of uint) -0:227 'parti' ( temp 4-component vector of uint) -0:228 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float) -0:228 'f4' ( in 4-component vector of float) -0:228 'parti' ( temp 4-component vector of uint) -0:229 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float) -0:229 'f4' ( in 4-component vector of float) -0:229 'parti' ( temp 4-component vector of uint) -0:230 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float) -0:230 'f4' ( in 4-component vector of float) -0:230 'parti' ( temp 4-component vector of uint) -0:231 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float) -0:231 'f4' ( in 4-component vector of float) -0:231 'parti' ( temp 4-component vector of uint) -0:232 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint) -0:232 'ballot' ( temp 4-component vector of uint) -0:232 'parti' ( temp 4-component vector of uint) -0:233 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint) -0:233 'ballot' ( temp 4-component vector of uint) -0:233 'parti' ( temp 4-component vector of uint) -0:234 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint) -0:234 'ballot' ( temp 4-component vector of uint) -0:234 'parti' ( temp 4-component vector of uint) -0:235 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float) -0:235 'f4' ( in 4-component vector of float) -0:235 'parti' ( temp 4-component vector of uint) -0:236 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float) -0:236 'f4' ( in 4-component vector of float) -0:236 'parti' ( temp 4-component vector of uint) -0:237 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float) -0:237 'f4' ( in 4-component vector of float) -0:237 'parti' ( temp 4-component vector of uint) -0:238 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float) -0:238 'f4' ( in 4-component vector of float) -0:238 'parti' ( temp 4-component vector of uint) -0:239 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint) -0:239 'ballot' ( temp 4-component vector of uint) -0:239 'parti' ( temp 4-component vector of uint) -0:240 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint) -0:240 'ballot' ( temp 4-component vector of uint) -0:240 'parti' ( temp 4-component vector of uint) -0:241 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint) -0:241 'ballot' ( temp 4-component vector of uint) -0:241 'parti' ( temp 4-component vector of uint) -0:245 Function Definition: sm_builtins_err( ( global void) -0:245 Function Parameters: -0:247 Sequence -0:247 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV) -0:248 'gl_SMCountNV' ( in uint SMCountNV) -0:249 'gl_WarpIDNV' ( volatile in uint WarpIDNV) -0:250 'gl_SMIDNV' ( volatile in uint SMIDNV) -0:257 Function Definition: sm_builtins( ( global void) -0:257 Function Parameters: -0:259 Sequence -0:259 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV) -0:260 'gl_SMCountNV' ( in uint SMCountNV) -0:261 'gl_WarpIDNV' ( volatile in uint WarpIDNV) -0:262 'gl_SMIDNV' ( volatile in uint SMIDNV) -0:? Linker Objects -0:? 'data0' (layout( location=0) callableDataNV 4-component vector of float) -0:? 'anon@0' (layout( location=1) callableDataInNV block{ callableDataInNV uint data1}) - - -Linked callable stage: - - -Shader version: 460 -Requested GL_KHR_shader_subgroup_arithmetic -Requested GL_KHR_shader_subgroup_ballot -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_clustered -Requested GL_KHR_shader_subgroup_quad -Requested GL_KHR_shader_subgroup_shuffle -Requested GL_KHR_shader_subgroup_shuffle_relative -Requested GL_KHR_shader_subgroup_vote -Requested GL_NV_ray_tracing -Requested GL_NV_shader_sm_builtins -Requested GL_NV_shader_subgroup_partitioned -ERROR: node is still EOpNull! -0:109 Function Definition: main( ( global void) -0:109 Function Parameters: -0:111 Sequence -0:111 Sequence -0:111 move second child to first child ( temp 3-component vector of uint) -0:111 'id' ( temp 3-component vector of uint) -0:111 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV) -0:112 Sequence -0:112 move second child to first child ( temp 3-component vector of uint) -0:112 'size' ( temp 3-component vector of uint) -0:112 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV) -0:113 move second child to first child ( temp uint) -0:113 data1: direct index for structure ( callableDataInNV uint) -0:113 'anon@0' (layout( location=1) callableDataInNV block{ callableDataInNV uint data1}) -0:113 Constant: -0:113 0 (const uint) -0:113 Constant: -0:113 256 (const uint) -0:114 executeCallableNV ( global void) -0:114 Constant: -0:114 2 (const uint) -0:114 Constant: -0:114 1 (const int) -0:? Linker Objects -0:? 'data0' (layout( location=0) callableDataNV 4-component vector of float) -0:? 'anon@0' (layout( location=1) callableDataInNV block{ callableDataInNV uint data1}) - diff --git a/deps/glslang/Test/baseResults/glsl.460.subgroup.rchit.out b/deps/glslang/Test/baseResults/glsl.460.subgroup.rchit.out deleted file mode 100644 index f5083e04..00000000 --- a/deps/glslang/Test/baseResults/glsl.460.subgroup.rchit.out +++ /dev/null @@ -1,817 +0,0 @@ -glsl.460.subgroup.rchit -ERROR: 0:7: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:8: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:9: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:10: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:11: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:12: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:13: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:14: 'gl_NumSubgroups' : undeclared identifier -ERROR: 0:15: 'gl_SubgroupID' : undeclared identifier -ERROR: 0:16: 'subgroupMemoryBarrierShared' : no matching overloaded function found -ERROR: 0:18: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:19: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:20: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:22: 'gl_SubgroupEqMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:23: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:24: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:25: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:26: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:27: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:28: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:29: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:30: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:31: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:32: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:33: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:34: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:35: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:36: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:38: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle -ERROR: 0:39: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle -ERROR: 0:40: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative -ERROR: 0:41: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative -ERROR: 0:43: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:44: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:45: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:46: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:47: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:48: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:49: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:50: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:51: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:52: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:53: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:54: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:55: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:56: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:57: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:58: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:59: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:60: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:61: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:62: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:63: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:65: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:66: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:67: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:68: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:69: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:70: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:71: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:73: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:74: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:75: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:76: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:78: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:79: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:80: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:81: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:82: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:83: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:84: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:85: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:86: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:87: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:88: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:89: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:90: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:91: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:92: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:93: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:94: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:95: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:96: 'subgroupPartitionedExclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:97: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:98: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:99: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:257: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:258: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:259: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:260: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 90 compilation errors. No code generated. - - -Shader version: 460 -Requested GL_KHR_shader_subgroup_arithmetic -Requested GL_KHR_shader_subgroup_ballot -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_clustered -Requested GL_KHR_shader_subgroup_quad -Requested GL_KHR_shader_subgroup_shuffle -Requested GL_KHR_shader_subgroup_shuffle_relative -Requested GL_KHR_shader_subgroup_vote -Requested GL_NV_ray_tracing -Requested GL_NV_shader_sm_builtins -Requested GL_NV_shader_subgroup_partitioned -ERROR: node is still EOpNull! -0:4 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float) -0:4 Function Parameters: -0:4 'f4' ( in 4-component vector of float) -0:? Sequence -0:7 'gl_SubgroupSize' ( volatile in uint SubgroupSize) -0:8 'gl_SubgroupInvocationID' ( volatile in uint SubgroupInvocationID) -0:9 subgroupBarrier ( global void) -0:10 subgroupMemoryBarrier ( global void) -0:11 subgroupMemoryBarrierBuffer ( global void) -0:12 subgroupMemoryBarrierImage ( global void) -0:13 subgroupElect ( global bool) -0:14 'gl_NumSubgroups' ( temp float) -0:15 'gl_SubgroupID' ( temp float) -0:16 Constant: -0:16 0.000000 -0:18 subgroupAll ( global bool) -0:18 Constant: -0:18 true (const bool) -0:19 subgroupAny ( global bool) -0:19 Constant: -0:19 false (const bool) -0:20 subgroupAllEqual ( global bool) -0:20 'f4' ( in 4-component vector of float) -0:22 'gl_SubgroupEqMask' ( volatile in 4-component vector of uint SubgroupEqMask) -0:23 'gl_SubgroupGeMask' ( volatile in 4-component vector of uint SubgroupGeMask) -0:24 'gl_SubgroupGtMask' ( volatile in 4-component vector of uint SubgroupGtMask) -0:25 'gl_SubgroupLeMask' ( volatile in 4-component vector of uint SubgroupLeMask) -0:26 'gl_SubgroupLtMask' ( volatile in 4-component vector of uint SubgroupLtMask) -0:27 subgroupBroadcast ( global 4-component vector of float) -0:27 'f4' ( in 4-component vector of float) -0:27 Constant: -0:27 0 (const uint) -0:28 subgroupBroadcastFirst ( global 4-component vector of float) -0:28 'f4' ( in 4-component vector of float) -0:29 Sequence -0:29 move second child to first child ( temp 4-component vector of uint) -0:29 'ballot' ( temp 4-component vector of uint) -0:29 subgroupBallot ( global 4-component vector of uint) -0:29 Constant: -0:29 false (const bool) -0:30 subgroupInverseBallot ( global bool) -0:30 Constant: -0:30 1 (const uint) -0:30 1 (const uint) -0:30 1 (const uint) -0:30 1 (const uint) -0:31 subgroupBallotBitExtract ( global bool) -0:31 'ballot' ( temp 4-component vector of uint) -0:31 Constant: -0:31 0 (const uint) -0:32 subgroupBallotBitCount ( global uint) -0:32 'ballot' ( temp 4-component vector of uint) -0:33 subgroupBallotInclusiveBitCount ( global uint) -0:33 'ballot' ( temp 4-component vector of uint) -0:34 subgroupBallotExclusiveBitCount ( global uint) -0:34 'ballot' ( temp 4-component vector of uint) -0:35 subgroupBallotFindLSB ( global uint) -0:35 'ballot' ( temp 4-component vector of uint) -0:36 subgroupBallotFindMSB ( global uint) -0:36 'ballot' ( temp 4-component vector of uint) -0:38 subgroupShuffle ( global 4-component vector of float) -0:38 'f4' ( in 4-component vector of float) -0:38 Constant: -0:38 0 (const uint) -0:39 subgroupShuffleXor ( global 4-component vector of float) -0:39 'f4' ( in 4-component vector of float) -0:39 Constant: -0:39 1 (const uint) -0:40 subgroupShuffleUp ( global 4-component vector of float) -0:40 'f4' ( in 4-component vector of float) -0:40 Constant: -0:40 1 (const uint) -0:41 subgroupShuffleDown ( global 4-component vector of float) -0:41 'f4' ( in 4-component vector of float) -0:41 Constant: -0:41 1 (const uint) -0:43 move second child to first child ( temp 4-component vector of float) -0:43 'result' ( temp 4-component vector of float) -0:43 subgroupAdd ( global 4-component vector of float) -0:43 'f4' ( in 4-component vector of float) -0:44 subgroupMul ( global 4-component vector of float) -0:44 'f4' ( in 4-component vector of float) -0:45 subgroupMin ( global 4-component vector of float) -0:45 'f4' ( in 4-component vector of float) -0:46 subgroupMax ( global 4-component vector of float) -0:46 'f4' ( in 4-component vector of float) -0:47 subgroupAnd ( global 4-component vector of uint) -0:47 'ballot' ( temp 4-component vector of uint) -0:48 subgroupOr ( global 4-component vector of uint) -0:48 'ballot' ( temp 4-component vector of uint) -0:49 subgroupXor ( global 4-component vector of uint) -0:49 'ballot' ( temp 4-component vector of uint) -0:50 subgroupInclusiveAdd ( global 4-component vector of float) -0:50 'f4' ( in 4-component vector of float) -0:51 subgroupInclusiveMul ( global 4-component vector of float) -0:51 'f4' ( in 4-component vector of float) -0:52 subgroupInclusiveMin ( global 4-component vector of float) -0:52 'f4' ( in 4-component vector of float) -0:53 subgroupInclusiveMax ( global 4-component vector of float) -0:53 'f4' ( in 4-component vector of float) -0:54 subgroupInclusiveAnd ( global 4-component vector of uint) -0:54 'ballot' ( temp 4-component vector of uint) -0:55 subgroupInclusiveOr ( global 4-component vector of uint) -0:55 'ballot' ( temp 4-component vector of uint) -0:56 subgroupInclusiveXor ( global 4-component vector of uint) -0:56 'ballot' ( temp 4-component vector of uint) -0:57 subgroupExclusiveAdd ( global 4-component vector of float) -0:57 'f4' ( in 4-component vector of float) -0:58 subgroupExclusiveMul ( global 4-component vector of float) -0:58 'f4' ( in 4-component vector of float) -0:59 subgroupExclusiveMin ( global 4-component vector of float) -0:59 'f4' ( in 4-component vector of float) -0:60 subgroupExclusiveMax ( global 4-component vector of float) -0:60 'f4' ( in 4-component vector of float) -0:61 subgroupExclusiveAnd ( global 4-component vector of uint) -0:61 'ballot' ( temp 4-component vector of uint) -0:62 subgroupExclusiveOr ( global 4-component vector of uint) -0:62 'ballot' ( temp 4-component vector of uint) -0:63 subgroupExclusiveXor ( global 4-component vector of uint) -0:63 'ballot' ( temp 4-component vector of uint) -0:65 subgroupClusteredAdd ( global 4-component vector of float) -0:65 'f4' ( in 4-component vector of float) -0:65 Constant: -0:65 2 (const uint) -0:66 subgroupClusteredMul ( global 4-component vector of float) -0:66 'f4' ( in 4-component vector of float) -0:66 Constant: -0:66 2 (const uint) -0:67 subgroupClusteredMin ( global 4-component vector of float) -0:67 'f4' ( in 4-component vector of float) -0:67 Constant: -0:67 2 (const uint) -0:68 subgroupClusteredMax ( global 4-component vector of float) -0:68 'f4' ( in 4-component vector of float) -0:68 Constant: -0:68 2 (const uint) -0:69 subgroupClusteredAnd ( global 4-component vector of uint) -0:69 'ballot' ( temp 4-component vector of uint) -0:69 Constant: -0:69 2 (const uint) -0:70 subgroupClusteredOr ( global 4-component vector of uint) -0:70 'ballot' ( temp 4-component vector of uint) -0:70 Constant: -0:70 2 (const uint) -0:71 subgroupClusteredXor ( global 4-component vector of uint) -0:71 'ballot' ( temp 4-component vector of uint) -0:71 Constant: -0:71 2 (const uint) -0:73 subgroupQuadBroadcast ( global 4-component vector of float) -0:73 'f4' ( in 4-component vector of float) -0:73 Constant: -0:73 0 (const uint) -0:74 subgroupQuadSwapHorizontal ( global 4-component vector of float) -0:74 'f4' ( in 4-component vector of float) -0:75 subgroupQuadSwapVertical ( global 4-component vector of float) -0:75 'f4' ( in 4-component vector of float) -0:76 subgroupQuadSwapDiagonal ( global 4-component vector of float) -0:76 'f4' ( in 4-component vector of float) -0:78 Sequence -0:78 move second child to first child ( temp 4-component vector of uint) -0:78 'parti' ( temp 4-component vector of uint) -0:78 subgroupPartitionNV ( global 4-component vector of uint) -0:78 'f4' ( in 4-component vector of float) -0:79 subgroupPartitionedAddNV ( global 4-component vector of float) -0:79 'f4' ( in 4-component vector of float) -0:79 'parti' ( temp 4-component vector of uint) -0:80 subgroupPartitionedMulNV ( global 4-component vector of float) -0:80 'f4' ( in 4-component vector of float) -0:80 'parti' ( temp 4-component vector of uint) -0:81 subgroupPartitionedMinNV ( global 4-component vector of float) -0:81 'f4' ( in 4-component vector of float) -0:81 'parti' ( temp 4-component vector of uint) -0:82 subgroupPartitionedMaxNV ( global 4-component vector of float) -0:82 'f4' ( in 4-component vector of float) -0:82 'parti' ( temp 4-component vector of uint) -0:83 subgroupPartitionedAndNV ( global 4-component vector of uint) -0:83 'ballot' ( temp 4-component vector of uint) -0:83 'parti' ( temp 4-component vector of uint) -0:84 subgroupPartitionedOrNV ( global 4-component vector of uint) -0:84 'ballot' ( temp 4-component vector of uint) -0:84 'parti' ( temp 4-component vector of uint) -0:85 subgroupPartitionedXorNV ( global 4-component vector of uint) -0:85 'ballot' ( temp 4-component vector of uint) -0:85 'parti' ( temp 4-component vector of uint) -0:86 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float) -0:86 'f4' ( in 4-component vector of float) -0:86 'parti' ( temp 4-component vector of uint) -0:87 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float) -0:87 'f4' ( in 4-component vector of float) -0:87 'parti' ( temp 4-component vector of uint) -0:88 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float) -0:88 'f4' ( in 4-component vector of float) -0:88 'parti' ( temp 4-component vector of uint) -0:89 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float) -0:89 'f4' ( in 4-component vector of float) -0:89 'parti' ( temp 4-component vector of uint) -0:90 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint) -0:90 'ballot' ( temp 4-component vector of uint) -0:90 'parti' ( temp 4-component vector of uint) -0:91 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint) -0:91 'ballot' ( temp 4-component vector of uint) -0:91 'parti' ( temp 4-component vector of uint) -0:92 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint) -0:92 'ballot' ( temp 4-component vector of uint) -0:92 'parti' ( temp 4-component vector of uint) -0:93 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float) -0:93 'f4' ( in 4-component vector of float) -0:93 'parti' ( temp 4-component vector of uint) -0:94 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float) -0:94 'f4' ( in 4-component vector of float) -0:94 'parti' ( temp 4-component vector of uint) -0:95 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float) -0:95 'f4' ( in 4-component vector of float) -0:95 'parti' ( temp 4-component vector of uint) -0:96 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float) -0:96 'f4' ( in 4-component vector of float) -0:96 'parti' ( temp 4-component vector of uint) -0:97 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint) -0:97 'ballot' ( temp 4-component vector of uint) -0:97 'parti' ( temp 4-component vector of uint) -0:98 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint) -0:98 'ballot' ( temp 4-component vector of uint) -0:98 'parti' ( temp 4-component vector of uint) -0:99 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint) -0:99 'ballot' ( temp 4-component vector of uint) -0:99 'parti' ( temp 4-component vector of uint) -0:101 Branch: Return with expression -0:101 'result' ( temp 4-component vector of float) -0:108 Function Definition: main( ( global void) -0:108 Function Parameters: -0:110 Sequence -0:110 Sequence -0:110 move second child to first child ( temp 3-component vector of uint) -0:110 'v0' ( temp 3-component vector of uint) -0:110 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV) -0:111 Sequence -0:111 move second child to first child ( temp 3-component vector of uint) -0:111 'v1' ( temp 3-component vector of uint) -0:111 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV) -0:112 Sequence -0:112 move second child to first child ( temp int) -0:112 'v2' ( temp int) -0:112 'gl_PrimitiveID' ( in int PrimitiveID) -0:113 Sequence -0:113 move second child to first child ( temp int) -0:113 'v3' ( temp int) -0:113 'gl_InstanceID' ( in int InstanceId) -0:114 Sequence -0:114 move second child to first child ( temp int) -0:114 'v4' ( temp int) -0:114 'gl_InstanceCustomIndexNV' ( in int InstanceCustomIndexNV) -0:115 Sequence -0:115 move second child to first child ( temp 3-component vector of float) -0:115 'v5' ( temp 3-component vector of float) -0:115 'gl_WorldRayOriginNV' ( in 3-component vector of float WorldRayOriginNV) -0:116 Sequence -0:116 move second child to first child ( temp 3-component vector of float) -0:116 'v6' ( temp 3-component vector of float) -0:116 'gl_WorldRayDirectionNV' ( in 3-component vector of float WorldRayDirectionNV) -0:117 Sequence -0:117 move second child to first child ( temp 3-component vector of float) -0:117 'v7' ( temp 3-component vector of float) -0:117 'gl_ObjectRayOriginNV' ( in 3-component vector of float ObjectRayOriginNV) -0:118 Sequence -0:118 move second child to first child ( temp 3-component vector of float) -0:118 'v8' ( temp 3-component vector of float) -0:118 'gl_ObjectRayDirectionNV' ( in 3-component vector of float ObjectRayDirectionNV) -0:119 Sequence -0:119 move second child to first child ( temp float) -0:119 'v9' ( temp float) -0:119 'gl_RayTminNV' ( in float ObjectRayTminNV) -0:120 Sequence -0:120 move second child to first child ( temp float) -0:120 'v10' ( temp float) -0:120 'gl_RayTmaxNV' ( in float ObjectRayTmaxNV) -0:121 Sequence -0:121 move second child to first child ( temp float) -0:121 'v11' ( temp float) -0:121 'gl_HitTNV' ( in float HitTNV) -0:122 Sequence -0:122 move second child to first child ( temp uint) -0:122 'v12' ( temp uint) -0:122 'gl_HitKindNV' ( in uint HitKindNV) -0:123 Sequence -0:123 move second child to first child ( temp 4X3 matrix of float) -0:123 'v13' ( temp 4X3 matrix of float) -0:123 'gl_ObjectToWorldNV' ( in 4X3 matrix of float ObjectToWorldNV) -0:124 Sequence -0:124 move second child to first child ( temp 4X3 matrix of float) -0:124 'v14' ( temp 4X3 matrix of float) -0:124 'gl_WorldToObjectNV' ( in 4X3 matrix of float WorldToObjectNV) -0:125 traceNV ( global void) -0:125 'accNV' (layout( set=0 binding=0) uniform accelerationStructureNV) -0:125 Constant: -0:125 0 (const uint) -0:125 Constant: -0:125 1 (const uint) -0:125 Constant: -0:125 2 (const uint) -0:125 Constant: -0:125 3 (const uint) -0:125 Constant: -0:125 0 (const uint) -0:125 Constant: -0:125 0.500000 -0:125 0.500000 -0:125 0.500000 -0:125 Constant: -0:125 0.500000 -0:125 Constant: -0:125 1.000000 -0:125 1.000000 -0:125 1.000000 -0:125 Constant: -0:125 0.750000 -0:125 Constant: -0:125 1 (const int) -0:129 Function Definition: basic_works( ( global void) -0:129 Function Parameters: -0:131 Sequence -0:131 'gl_SubgroupSize' ( volatile in uint SubgroupSize) -0:132 'gl_SubgroupInvocationID' ( volatile in uint SubgroupInvocationID) -0:133 subgroupBarrier ( global void) -0:134 subgroupMemoryBarrier ( global void) -0:135 subgroupMemoryBarrierBuffer ( global void) -0:136 subgroupMemoryBarrierImage ( global void) -0:137 subgroupElect ( global bool) -0:141 Function Definition: ballot_works(vf4; ( global void) -0:141 Function Parameters: -0:141 'f4' ( in 4-component vector of float) -0:142 Sequence -0:142 'gl_SubgroupEqMask' ( volatile in 4-component vector of uint SubgroupEqMask) -0:143 'gl_SubgroupGeMask' ( volatile in 4-component vector of uint SubgroupGeMask) -0:144 'gl_SubgroupGtMask' ( volatile in 4-component vector of uint SubgroupGtMask) -0:145 'gl_SubgroupLeMask' ( volatile in 4-component vector of uint SubgroupLeMask) -0:146 'gl_SubgroupLtMask' ( volatile in 4-component vector of uint SubgroupLtMask) -0:147 subgroupBroadcast ( global 4-component vector of float) -0:147 'f4' ( in 4-component vector of float) -0:147 Constant: -0:147 0 (const uint) -0:148 subgroupBroadcastFirst ( global 4-component vector of float) -0:148 'f4' ( in 4-component vector of float) -0:149 Sequence -0:149 move second child to first child ( temp 4-component vector of uint) -0:149 'ballot' ( temp 4-component vector of uint) -0:149 subgroupBallot ( global 4-component vector of uint) -0:149 Constant: -0:149 false (const bool) -0:150 subgroupInverseBallot ( global bool) -0:150 Constant: -0:150 1 (const uint) -0:150 1 (const uint) -0:150 1 (const uint) -0:150 1 (const uint) -0:151 subgroupBallotBitExtract ( global bool) -0:151 'ballot' ( temp 4-component vector of uint) -0:151 Constant: -0:151 0 (const uint) -0:152 subgroupBallotBitCount ( global uint) -0:152 'ballot' ( temp 4-component vector of uint) -0:153 subgroupBallotInclusiveBitCount ( global uint) -0:153 'ballot' ( temp 4-component vector of uint) -0:154 subgroupBallotExclusiveBitCount ( global uint) -0:154 'ballot' ( temp 4-component vector of uint) -0:155 subgroupBallotFindLSB ( global uint) -0:155 'ballot' ( temp 4-component vector of uint) -0:156 subgroupBallotFindMSB ( global uint) -0:156 'ballot' ( temp 4-component vector of uint) -0:160 Function Definition: vote_works(vf4; ( global void) -0:160 Function Parameters: -0:160 'f4' ( in 4-component vector of float) -0:162 Sequence -0:162 subgroupAll ( global bool) -0:162 Constant: -0:162 true (const bool) -0:163 subgroupAny ( global bool) -0:163 Constant: -0:163 false (const bool) -0:164 subgroupAllEqual ( global bool) -0:164 'f4' ( in 4-component vector of float) -0:169 Function Definition: shuffle_works(vf4; ( global void) -0:169 Function Parameters: -0:169 'f4' ( in 4-component vector of float) -0:171 Sequence -0:171 subgroupShuffle ( global 4-component vector of float) -0:171 'f4' ( in 4-component vector of float) -0:171 Constant: -0:171 0 (const uint) -0:172 subgroupShuffleXor ( global 4-component vector of float) -0:172 'f4' ( in 4-component vector of float) -0:172 Constant: -0:172 1 (const uint) -0:173 subgroupShuffleUp ( global 4-component vector of float) -0:173 'f4' ( in 4-component vector of float) -0:173 Constant: -0:173 1 (const uint) -0:174 subgroupShuffleDown ( global 4-component vector of float) -0:174 'f4' ( in 4-component vector of float) -0:174 Constant: -0:174 1 (const uint) -0:178 Function Definition: arith_works(vf4; ( global void) -0:178 Function Parameters: -0:178 'f4' ( in 4-component vector of float) -0:? Sequence -0:181 subgroupAdd ( global 4-component vector of float) -0:181 'f4' ( in 4-component vector of float) -0:182 subgroupMul ( global 4-component vector of float) -0:182 'f4' ( in 4-component vector of float) -0:183 subgroupMin ( global 4-component vector of float) -0:183 'f4' ( in 4-component vector of float) -0:184 subgroupMax ( global 4-component vector of float) -0:184 'f4' ( in 4-component vector of float) -0:185 subgroupAnd ( global 4-component vector of uint) -0:185 'ballot' ( temp 4-component vector of uint) -0:186 subgroupOr ( global 4-component vector of uint) -0:186 'ballot' ( temp 4-component vector of uint) -0:187 subgroupXor ( global 4-component vector of uint) -0:187 'ballot' ( temp 4-component vector of uint) -0:188 subgroupInclusiveAdd ( global 4-component vector of float) -0:188 'f4' ( in 4-component vector of float) -0:189 subgroupInclusiveMul ( global 4-component vector of float) -0:189 'f4' ( in 4-component vector of float) -0:190 subgroupInclusiveMin ( global 4-component vector of float) -0:190 'f4' ( in 4-component vector of float) -0:191 subgroupInclusiveMax ( global 4-component vector of float) -0:191 'f4' ( in 4-component vector of float) -0:192 subgroupInclusiveAnd ( global 4-component vector of uint) -0:192 'ballot' ( temp 4-component vector of uint) -0:193 subgroupInclusiveOr ( global 4-component vector of uint) -0:193 'ballot' ( temp 4-component vector of uint) -0:194 subgroupInclusiveXor ( global 4-component vector of uint) -0:194 'ballot' ( temp 4-component vector of uint) -0:195 subgroupExclusiveAdd ( global 4-component vector of float) -0:195 'f4' ( in 4-component vector of float) -0:196 subgroupExclusiveMul ( global 4-component vector of float) -0:196 'f4' ( in 4-component vector of float) -0:197 subgroupExclusiveMin ( global 4-component vector of float) -0:197 'f4' ( in 4-component vector of float) -0:198 subgroupExclusiveMax ( global 4-component vector of float) -0:198 'f4' ( in 4-component vector of float) -0:199 subgroupExclusiveAnd ( global 4-component vector of uint) -0:199 'ballot' ( temp 4-component vector of uint) -0:200 subgroupExclusiveOr ( global 4-component vector of uint) -0:200 'ballot' ( temp 4-component vector of uint) -0:201 subgroupExclusiveXor ( global 4-component vector of uint) -0:201 'ballot' ( temp 4-component vector of uint) -0:205 Function Definition: clustered_works(vf4; ( global void) -0:205 Function Parameters: -0:205 'f4' ( in 4-component vector of float) -0:207 Sequence -0:207 Sequence -0:207 move second child to first child ( temp 4-component vector of uint) -0:207 'ballot' ( temp 4-component vector of uint) -0:207 Constant: -0:207 85 (const uint) -0:207 0 (const uint) -0:207 0 (const uint) -0:207 0 (const uint) -0:208 subgroupClusteredAdd ( global 4-component vector of float) -0:208 'f4' ( in 4-component vector of float) -0:208 Constant: -0:208 2 (const uint) -0:209 subgroupClusteredMul ( global 4-component vector of float) -0:209 'f4' ( in 4-component vector of float) -0:209 Constant: -0:209 2 (const uint) -0:210 subgroupClusteredMin ( global 4-component vector of float) -0:210 'f4' ( in 4-component vector of float) -0:210 Constant: -0:210 2 (const uint) -0:211 subgroupClusteredMax ( global 4-component vector of float) -0:211 'f4' ( in 4-component vector of float) -0:211 Constant: -0:211 2 (const uint) -0:212 subgroupClusteredAnd ( global 4-component vector of uint) -0:212 'ballot' ( temp 4-component vector of uint) -0:212 Constant: -0:212 2 (const uint) -0:213 subgroupClusteredOr ( global 4-component vector of uint) -0:213 'ballot' ( temp 4-component vector of uint) -0:213 Constant: -0:213 2 (const uint) -0:214 subgroupClusteredXor ( global 4-component vector of uint) -0:214 'ballot' ( temp 4-component vector of uint) -0:214 Constant: -0:214 2 (const uint) -0:218 Function Definition: quad_works(vf4; ( global void) -0:218 Function Parameters: -0:218 'f4' ( in 4-component vector of float) -0:220 Sequence -0:220 subgroupQuadBroadcast ( global 4-component vector of float) -0:220 'f4' ( in 4-component vector of float) -0:220 Constant: -0:220 0 (const uint) -0:221 subgroupQuadSwapHorizontal ( global 4-component vector of float) -0:221 'f4' ( in 4-component vector of float) -0:222 subgroupQuadSwapVertical ( global 4-component vector of float) -0:222 'f4' ( in 4-component vector of float) -0:223 subgroupQuadSwapDiagonal ( global 4-component vector of float) -0:223 'f4' ( in 4-component vector of float) -0:227 Function Definition: partitioned_works(vf4; ( global void) -0:227 Function Parameters: -0:227 'f4' ( in 4-component vector of float) -0:229 Sequence -0:229 Sequence -0:229 move second child to first child ( temp 4-component vector of uint) -0:229 'parti' ( temp 4-component vector of uint) -0:229 subgroupPartitionNV ( global 4-component vector of uint) -0:229 'f4' ( in 4-component vector of float) -0:230 Sequence -0:230 move second child to first child ( temp 4-component vector of uint) -0:230 'ballot' ( temp 4-component vector of uint) -0:230 Constant: -0:230 85 (const uint) -0:230 0 (const uint) -0:230 0 (const uint) -0:230 0 (const uint) -0:231 subgroupPartitionedAddNV ( global 4-component vector of float) -0:231 'f4' ( in 4-component vector of float) -0:231 'parti' ( temp 4-component vector of uint) -0:232 subgroupPartitionedMulNV ( global 4-component vector of float) -0:232 'f4' ( in 4-component vector of float) -0:232 'parti' ( temp 4-component vector of uint) -0:233 subgroupPartitionedMinNV ( global 4-component vector of float) -0:233 'f4' ( in 4-component vector of float) -0:233 'parti' ( temp 4-component vector of uint) -0:234 subgroupPartitionedMaxNV ( global 4-component vector of float) -0:234 'f4' ( in 4-component vector of float) -0:234 'parti' ( temp 4-component vector of uint) -0:235 subgroupPartitionedAndNV ( global 4-component vector of uint) -0:235 'ballot' ( temp 4-component vector of uint) -0:235 'parti' ( temp 4-component vector of uint) -0:236 subgroupPartitionedOrNV ( global 4-component vector of uint) -0:236 'ballot' ( temp 4-component vector of uint) -0:236 'parti' ( temp 4-component vector of uint) -0:237 subgroupPartitionedXorNV ( global 4-component vector of uint) -0:237 'ballot' ( temp 4-component vector of uint) -0:237 'parti' ( temp 4-component vector of uint) -0:238 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float) -0:238 'f4' ( in 4-component vector of float) -0:238 'parti' ( temp 4-component vector of uint) -0:239 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float) -0:239 'f4' ( in 4-component vector of float) -0:239 'parti' ( temp 4-component vector of uint) -0:240 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float) -0:240 'f4' ( in 4-component vector of float) -0:240 'parti' ( temp 4-component vector of uint) -0:241 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float) -0:241 'f4' ( in 4-component vector of float) -0:241 'parti' ( temp 4-component vector of uint) -0:242 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint) -0:242 'ballot' ( temp 4-component vector of uint) -0:242 'parti' ( temp 4-component vector of uint) -0:243 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint) -0:243 'ballot' ( temp 4-component vector of uint) -0:243 'parti' ( temp 4-component vector of uint) -0:244 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint) -0:244 'ballot' ( temp 4-component vector of uint) -0:244 'parti' ( temp 4-component vector of uint) -0:245 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float) -0:245 'f4' ( in 4-component vector of float) -0:245 'parti' ( temp 4-component vector of uint) -0:246 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float) -0:246 'f4' ( in 4-component vector of float) -0:246 'parti' ( temp 4-component vector of uint) -0:247 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float) -0:247 'f4' ( in 4-component vector of float) -0:247 'parti' ( temp 4-component vector of uint) -0:248 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float) -0:248 'f4' ( in 4-component vector of float) -0:248 'parti' ( temp 4-component vector of uint) -0:249 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint) -0:249 'ballot' ( temp 4-component vector of uint) -0:249 'parti' ( temp 4-component vector of uint) -0:250 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint) -0:250 'ballot' ( temp 4-component vector of uint) -0:250 'parti' ( temp 4-component vector of uint) -0:251 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint) -0:251 'ballot' ( temp 4-component vector of uint) -0:251 'parti' ( temp 4-component vector of uint) -0:255 Function Definition: sm_builtins_err( ( global void) -0:255 Function Parameters: -0:257 Sequence -0:257 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV) -0:258 'gl_SMCountNV' ( in uint SMCountNV) -0:259 'gl_WarpIDNV' ( volatile in uint WarpIDNV) -0:260 'gl_SMIDNV' ( volatile in uint SMIDNV) -0:267 Function Definition: sm_builtins( ( global void) -0:267 Function Parameters: -0:269 Sequence -0:269 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV) -0:270 'gl_SMCountNV' ( in uint SMCountNV) -0:271 'gl_WarpIDNV' ( volatile in uint WarpIDNV) -0:272 'gl_SMIDNV' ( volatile in uint SMIDNV) -0:? Linker Objects -0:? 'accNV' (layout( set=0 binding=0) uniform accelerationStructureNV) -0:? 'localPayload' (layout( location=0) rayPayloadNV 4-component vector of float) -0:? 'incomingPayload' (layout( location=1) rayPayloadInNV 4-component vector of float) - - -Linked closest-hit stage: - - -Shader version: 460 -Requested GL_KHR_shader_subgroup_arithmetic -Requested GL_KHR_shader_subgroup_ballot -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_clustered -Requested GL_KHR_shader_subgroup_quad -Requested GL_KHR_shader_subgroup_shuffle -Requested GL_KHR_shader_subgroup_shuffle_relative -Requested GL_KHR_shader_subgroup_vote -Requested GL_NV_ray_tracing -Requested GL_NV_shader_sm_builtins -Requested GL_NV_shader_subgroup_partitioned -ERROR: node is still EOpNull! -0:108 Function Definition: main( ( global void) -0:108 Function Parameters: -0:110 Sequence -0:110 Sequence -0:110 move second child to first child ( temp 3-component vector of uint) -0:110 'v0' ( temp 3-component vector of uint) -0:110 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV) -0:111 Sequence -0:111 move second child to first child ( temp 3-component vector of uint) -0:111 'v1' ( temp 3-component vector of uint) -0:111 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV) -0:112 Sequence -0:112 move second child to first child ( temp int) -0:112 'v2' ( temp int) -0:112 'gl_PrimitiveID' ( in int PrimitiveID) -0:113 Sequence -0:113 move second child to first child ( temp int) -0:113 'v3' ( temp int) -0:113 'gl_InstanceID' ( in int InstanceId) -0:114 Sequence -0:114 move second child to first child ( temp int) -0:114 'v4' ( temp int) -0:114 'gl_InstanceCustomIndexNV' ( in int InstanceCustomIndexNV) -0:115 Sequence -0:115 move second child to first child ( temp 3-component vector of float) -0:115 'v5' ( temp 3-component vector of float) -0:115 'gl_WorldRayOriginNV' ( in 3-component vector of float WorldRayOriginNV) -0:116 Sequence -0:116 move second child to first child ( temp 3-component vector of float) -0:116 'v6' ( temp 3-component vector of float) -0:116 'gl_WorldRayDirectionNV' ( in 3-component vector of float WorldRayDirectionNV) -0:117 Sequence -0:117 move second child to first child ( temp 3-component vector of float) -0:117 'v7' ( temp 3-component vector of float) -0:117 'gl_ObjectRayOriginNV' ( in 3-component vector of float ObjectRayOriginNV) -0:118 Sequence -0:118 move second child to first child ( temp 3-component vector of float) -0:118 'v8' ( temp 3-component vector of float) -0:118 'gl_ObjectRayDirectionNV' ( in 3-component vector of float ObjectRayDirectionNV) -0:119 Sequence -0:119 move second child to first child ( temp float) -0:119 'v9' ( temp float) -0:119 'gl_RayTminNV' ( in float ObjectRayTminNV) -0:120 Sequence -0:120 move second child to first child ( temp float) -0:120 'v10' ( temp float) -0:120 'gl_RayTmaxNV' ( in float ObjectRayTmaxNV) -0:121 Sequence -0:121 move second child to first child ( temp float) -0:121 'v11' ( temp float) -0:121 'gl_HitTNV' ( in float HitTNV) -0:122 Sequence -0:122 move second child to first child ( temp uint) -0:122 'v12' ( temp uint) -0:122 'gl_HitKindNV' ( in uint HitKindNV) -0:123 Sequence -0:123 move second child to first child ( temp 4X3 matrix of float) -0:123 'v13' ( temp 4X3 matrix of float) -0:123 'gl_ObjectToWorldNV' ( in 4X3 matrix of float ObjectToWorldNV) -0:124 Sequence -0:124 move second child to first child ( temp 4X3 matrix of float) -0:124 'v14' ( temp 4X3 matrix of float) -0:124 'gl_WorldToObjectNV' ( in 4X3 matrix of float WorldToObjectNV) -0:125 traceNV ( global void) -0:125 'accNV' (layout( set=0 binding=0) uniform accelerationStructureNV) -0:125 Constant: -0:125 0 (const uint) -0:125 Constant: -0:125 1 (const uint) -0:125 Constant: -0:125 2 (const uint) -0:125 Constant: -0:125 3 (const uint) -0:125 Constant: -0:125 0 (const uint) -0:125 Constant: -0:125 0.500000 -0:125 0.500000 -0:125 0.500000 -0:125 Constant: -0:125 0.500000 -0:125 Constant: -0:125 1.000000 -0:125 1.000000 -0:125 1.000000 -0:125 Constant: -0:125 0.750000 -0:125 Constant: -0:125 1 (const int) -0:? Linker Objects -0:? 'accNV' (layout( set=0 binding=0) uniform accelerationStructureNV) -0:? 'localPayload' (layout( location=0) rayPayloadNV 4-component vector of float) -0:? 'incomingPayload' (layout( location=1) rayPayloadInNV 4-component vector of float) - diff --git a/deps/glslang/Test/baseResults/glsl.460.subgroup.rgen.out b/deps/glslang/Test/baseResults/glsl.460.subgroup.rgen.out deleted file mode 100644 index 56283bbd..00000000 --- a/deps/glslang/Test/baseResults/glsl.460.subgroup.rgen.out +++ /dev/null @@ -1,747 +0,0 @@ -glsl.460.subgroup.rgen -ERROR: 0:7: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:8: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:9: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:10: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:11: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:12: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:13: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:14: 'gl_NumSubgroups' : undeclared identifier -ERROR: 0:15: 'gl_SubgroupID' : undeclared identifier -ERROR: 0:16: 'subgroupMemoryBarrierShared' : no matching overloaded function found -ERROR: 0:18: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:19: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:20: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:22: 'gl_SubgroupEqMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:23: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:24: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:25: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:26: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:27: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:28: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:29: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:30: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:31: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:32: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:33: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:34: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:35: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:36: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:38: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle -ERROR: 0:39: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle -ERROR: 0:40: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative -ERROR: 0:41: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative -ERROR: 0:43: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:44: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:45: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:46: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:47: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:48: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:49: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:50: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:51: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:52: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:53: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:54: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:55: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:56: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:57: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:58: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:59: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:60: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:61: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:62: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:63: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:65: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:66: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:67: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:68: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:69: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:70: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:71: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:73: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:74: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:75: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:76: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:78: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:79: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:80: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:81: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:82: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:83: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:84: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:85: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:86: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:87: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:88: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:89: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:90: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:91: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:92: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:93: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:94: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:95: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:96: 'subgroupPartitionedExclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:97: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:98: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:99: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:251: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:252: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:253: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:254: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 90 compilation errors. No code generated. - - -Shader version: 460 -Requested GL_KHR_shader_subgroup_arithmetic -Requested GL_KHR_shader_subgroup_ballot -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_clustered -Requested GL_KHR_shader_subgroup_quad -Requested GL_KHR_shader_subgroup_shuffle -Requested GL_KHR_shader_subgroup_shuffle_relative -Requested GL_KHR_shader_subgroup_vote -Requested GL_NV_ray_tracing -Requested GL_NV_shader_sm_builtins -Requested GL_NV_shader_subgroup_partitioned -ERROR: node is still EOpNull! -0:4 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float) -0:4 Function Parameters: -0:4 'f4' ( in 4-component vector of float) -0:? Sequence -0:7 'gl_SubgroupSize' ( volatile in uint SubgroupSize) -0:8 'gl_SubgroupInvocationID' ( volatile in uint SubgroupInvocationID) -0:9 subgroupBarrier ( global void) -0:10 subgroupMemoryBarrier ( global void) -0:11 subgroupMemoryBarrierBuffer ( global void) -0:12 subgroupMemoryBarrierImage ( global void) -0:13 subgroupElect ( global bool) -0:14 'gl_NumSubgroups' ( temp float) -0:15 'gl_SubgroupID' ( temp float) -0:16 Constant: -0:16 0.000000 -0:18 subgroupAll ( global bool) -0:18 Constant: -0:18 true (const bool) -0:19 subgroupAny ( global bool) -0:19 Constant: -0:19 false (const bool) -0:20 subgroupAllEqual ( global bool) -0:20 'f4' ( in 4-component vector of float) -0:22 'gl_SubgroupEqMask' ( volatile in 4-component vector of uint SubgroupEqMask) -0:23 'gl_SubgroupGeMask' ( volatile in 4-component vector of uint SubgroupGeMask) -0:24 'gl_SubgroupGtMask' ( volatile in 4-component vector of uint SubgroupGtMask) -0:25 'gl_SubgroupLeMask' ( volatile in 4-component vector of uint SubgroupLeMask) -0:26 'gl_SubgroupLtMask' ( volatile in 4-component vector of uint SubgroupLtMask) -0:27 subgroupBroadcast ( global 4-component vector of float) -0:27 'f4' ( in 4-component vector of float) -0:27 Constant: -0:27 0 (const uint) -0:28 subgroupBroadcastFirst ( global 4-component vector of float) -0:28 'f4' ( in 4-component vector of float) -0:29 Sequence -0:29 move second child to first child ( temp 4-component vector of uint) -0:29 'ballot' ( temp 4-component vector of uint) -0:29 subgroupBallot ( global 4-component vector of uint) -0:29 Constant: -0:29 false (const bool) -0:30 subgroupInverseBallot ( global bool) -0:30 Constant: -0:30 1 (const uint) -0:30 1 (const uint) -0:30 1 (const uint) -0:30 1 (const uint) -0:31 subgroupBallotBitExtract ( global bool) -0:31 'ballot' ( temp 4-component vector of uint) -0:31 Constant: -0:31 0 (const uint) -0:32 subgroupBallotBitCount ( global uint) -0:32 'ballot' ( temp 4-component vector of uint) -0:33 subgroupBallotInclusiveBitCount ( global uint) -0:33 'ballot' ( temp 4-component vector of uint) -0:34 subgroupBallotExclusiveBitCount ( global uint) -0:34 'ballot' ( temp 4-component vector of uint) -0:35 subgroupBallotFindLSB ( global uint) -0:35 'ballot' ( temp 4-component vector of uint) -0:36 subgroupBallotFindMSB ( global uint) -0:36 'ballot' ( temp 4-component vector of uint) -0:38 subgroupShuffle ( global 4-component vector of float) -0:38 'f4' ( in 4-component vector of float) -0:38 Constant: -0:38 0 (const uint) -0:39 subgroupShuffleXor ( global 4-component vector of float) -0:39 'f4' ( in 4-component vector of float) -0:39 Constant: -0:39 1 (const uint) -0:40 subgroupShuffleUp ( global 4-component vector of float) -0:40 'f4' ( in 4-component vector of float) -0:40 Constant: -0:40 1 (const uint) -0:41 subgroupShuffleDown ( global 4-component vector of float) -0:41 'f4' ( in 4-component vector of float) -0:41 Constant: -0:41 1 (const uint) -0:43 move second child to first child ( temp 4-component vector of float) -0:43 'result' ( temp 4-component vector of float) -0:43 subgroupAdd ( global 4-component vector of float) -0:43 'f4' ( in 4-component vector of float) -0:44 subgroupMul ( global 4-component vector of float) -0:44 'f4' ( in 4-component vector of float) -0:45 subgroupMin ( global 4-component vector of float) -0:45 'f4' ( in 4-component vector of float) -0:46 subgroupMax ( global 4-component vector of float) -0:46 'f4' ( in 4-component vector of float) -0:47 subgroupAnd ( global 4-component vector of uint) -0:47 'ballot' ( temp 4-component vector of uint) -0:48 subgroupOr ( global 4-component vector of uint) -0:48 'ballot' ( temp 4-component vector of uint) -0:49 subgroupXor ( global 4-component vector of uint) -0:49 'ballot' ( temp 4-component vector of uint) -0:50 subgroupInclusiveAdd ( global 4-component vector of float) -0:50 'f4' ( in 4-component vector of float) -0:51 subgroupInclusiveMul ( global 4-component vector of float) -0:51 'f4' ( in 4-component vector of float) -0:52 subgroupInclusiveMin ( global 4-component vector of float) -0:52 'f4' ( in 4-component vector of float) -0:53 subgroupInclusiveMax ( global 4-component vector of float) -0:53 'f4' ( in 4-component vector of float) -0:54 subgroupInclusiveAnd ( global 4-component vector of uint) -0:54 'ballot' ( temp 4-component vector of uint) -0:55 subgroupInclusiveOr ( global 4-component vector of uint) -0:55 'ballot' ( temp 4-component vector of uint) -0:56 subgroupInclusiveXor ( global 4-component vector of uint) -0:56 'ballot' ( temp 4-component vector of uint) -0:57 subgroupExclusiveAdd ( global 4-component vector of float) -0:57 'f4' ( in 4-component vector of float) -0:58 subgroupExclusiveMul ( global 4-component vector of float) -0:58 'f4' ( in 4-component vector of float) -0:59 subgroupExclusiveMin ( global 4-component vector of float) -0:59 'f4' ( in 4-component vector of float) -0:60 subgroupExclusiveMax ( global 4-component vector of float) -0:60 'f4' ( in 4-component vector of float) -0:61 subgroupExclusiveAnd ( global 4-component vector of uint) -0:61 'ballot' ( temp 4-component vector of uint) -0:62 subgroupExclusiveOr ( global 4-component vector of uint) -0:62 'ballot' ( temp 4-component vector of uint) -0:63 subgroupExclusiveXor ( global 4-component vector of uint) -0:63 'ballot' ( temp 4-component vector of uint) -0:65 subgroupClusteredAdd ( global 4-component vector of float) -0:65 'f4' ( in 4-component vector of float) -0:65 Constant: -0:65 2 (const uint) -0:66 subgroupClusteredMul ( global 4-component vector of float) -0:66 'f4' ( in 4-component vector of float) -0:66 Constant: -0:66 2 (const uint) -0:67 subgroupClusteredMin ( global 4-component vector of float) -0:67 'f4' ( in 4-component vector of float) -0:67 Constant: -0:67 2 (const uint) -0:68 subgroupClusteredMax ( global 4-component vector of float) -0:68 'f4' ( in 4-component vector of float) -0:68 Constant: -0:68 2 (const uint) -0:69 subgroupClusteredAnd ( global 4-component vector of uint) -0:69 'ballot' ( temp 4-component vector of uint) -0:69 Constant: -0:69 2 (const uint) -0:70 subgroupClusteredOr ( global 4-component vector of uint) -0:70 'ballot' ( temp 4-component vector of uint) -0:70 Constant: -0:70 2 (const uint) -0:71 subgroupClusteredXor ( global 4-component vector of uint) -0:71 'ballot' ( temp 4-component vector of uint) -0:71 Constant: -0:71 2 (const uint) -0:73 subgroupQuadBroadcast ( global 4-component vector of float) -0:73 'f4' ( in 4-component vector of float) -0:73 Constant: -0:73 0 (const uint) -0:74 subgroupQuadSwapHorizontal ( global 4-component vector of float) -0:74 'f4' ( in 4-component vector of float) -0:75 subgroupQuadSwapVertical ( global 4-component vector of float) -0:75 'f4' ( in 4-component vector of float) -0:76 subgroupQuadSwapDiagonal ( global 4-component vector of float) -0:76 'f4' ( in 4-component vector of float) -0:78 Sequence -0:78 move second child to first child ( temp 4-component vector of uint) -0:78 'parti' ( temp 4-component vector of uint) -0:78 subgroupPartitionNV ( global 4-component vector of uint) -0:78 'f4' ( in 4-component vector of float) -0:79 subgroupPartitionedAddNV ( global 4-component vector of float) -0:79 'f4' ( in 4-component vector of float) -0:79 'parti' ( temp 4-component vector of uint) -0:80 subgroupPartitionedMulNV ( global 4-component vector of float) -0:80 'f4' ( in 4-component vector of float) -0:80 'parti' ( temp 4-component vector of uint) -0:81 subgroupPartitionedMinNV ( global 4-component vector of float) -0:81 'f4' ( in 4-component vector of float) -0:81 'parti' ( temp 4-component vector of uint) -0:82 subgroupPartitionedMaxNV ( global 4-component vector of float) -0:82 'f4' ( in 4-component vector of float) -0:82 'parti' ( temp 4-component vector of uint) -0:83 subgroupPartitionedAndNV ( global 4-component vector of uint) -0:83 'ballot' ( temp 4-component vector of uint) -0:83 'parti' ( temp 4-component vector of uint) -0:84 subgroupPartitionedOrNV ( global 4-component vector of uint) -0:84 'ballot' ( temp 4-component vector of uint) -0:84 'parti' ( temp 4-component vector of uint) -0:85 subgroupPartitionedXorNV ( global 4-component vector of uint) -0:85 'ballot' ( temp 4-component vector of uint) -0:85 'parti' ( temp 4-component vector of uint) -0:86 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float) -0:86 'f4' ( in 4-component vector of float) -0:86 'parti' ( temp 4-component vector of uint) -0:87 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float) -0:87 'f4' ( in 4-component vector of float) -0:87 'parti' ( temp 4-component vector of uint) -0:88 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float) -0:88 'f4' ( in 4-component vector of float) -0:88 'parti' ( temp 4-component vector of uint) -0:89 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float) -0:89 'f4' ( in 4-component vector of float) -0:89 'parti' ( temp 4-component vector of uint) -0:90 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint) -0:90 'ballot' ( temp 4-component vector of uint) -0:90 'parti' ( temp 4-component vector of uint) -0:91 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint) -0:91 'ballot' ( temp 4-component vector of uint) -0:91 'parti' ( temp 4-component vector of uint) -0:92 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint) -0:92 'ballot' ( temp 4-component vector of uint) -0:92 'parti' ( temp 4-component vector of uint) -0:93 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float) -0:93 'f4' ( in 4-component vector of float) -0:93 'parti' ( temp 4-component vector of uint) -0:94 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float) -0:94 'f4' ( in 4-component vector of float) -0:94 'parti' ( temp 4-component vector of uint) -0:95 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float) -0:95 'f4' ( in 4-component vector of float) -0:95 'parti' ( temp 4-component vector of uint) -0:96 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float) -0:96 'f4' ( in 4-component vector of float) -0:96 'parti' ( temp 4-component vector of uint) -0:97 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint) -0:97 'ballot' ( temp 4-component vector of uint) -0:97 'parti' ( temp 4-component vector of uint) -0:98 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint) -0:98 'ballot' ( temp 4-component vector of uint) -0:98 'parti' ( temp 4-component vector of uint) -0:99 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint) -0:99 'ballot' ( temp 4-component vector of uint) -0:99 'parti' ( temp 4-component vector of uint) -0:101 Branch: Return with expression -0:101 'result' ( temp 4-component vector of float) -0:113 Function Definition: main( ( global void) -0:113 Function Parameters: -0:115 Sequence -0:115 Sequence -0:115 move second child to first child ( temp uint) -0:115 'lx' ( temp uint) -0:115 direct index ( temp uint) -0:115 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV) -0:115 Constant: -0:115 0 (const int) -0:116 Sequence -0:116 move second child to first child ( temp uint) -0:116 'ly' ( temp uint) -0:116 direct index ( temp uint) -0:116 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV) -0:116 Constant: -0:116 1 (const int) -0:117 Sequence -0:117 move second child to first child ( temp uint) -0:117 'sx' ( temp uint) -0:117 direct index ( temp uint) -0:117 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV) -0:117 Constant: -0:117 0 (const int) -0:118 Sequence -0:118 move second child to first child ( temp uint) -0:118 'sy' ( temp uint) -0:118 direct index ( temp uint) -0:118 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV) -0:118 Constant: -0:118 1 (const int) -0:119 traceNV ( global void) -0:119 'accNV0' (layout( set=0 binding=0) uniform accelerationStructureNV) -0:119 'lx' ( temp uint) -0:119 'ly' ( temp uint) -0:119 'sx' ( temp uint) -0:119 'sy' ( temp uint) -0:119 Constant: -0:119 0 (const uint) -0:119 origin: direct index for structure (layout( column_major std430 offset=16) buffer 3-component vector of float) -0:119 'anon@0' (layout( column_major std430 shaderRecordNV) buffer block{layout( column_major std430 offset=0) buffer 3-component vector of float dir, layout( column_major std430 offset=16) buffer 3-component vector of float origin}) -0:119 Constant: -0:119 1 (const uint) -0:119 Constant: -0:119 0.500000 -0:119 dir: direct index for structure (layout( column_major std430 offset=0) buffer 3-component vector of float) -0:119 'anon@0' (layout( column_major std430 shaderRecordNV) buffer block{layout( column_major std430 offset=0) buffer 3-component vector of float dir, layout( column_major std430 offset=16) buffer 3-component vector of float origin}) -0:119 Constant: -0:119 0 (const uint) -0:119 Constant: -0:119 0.750000 -0:119 Constant: -0:119 1 (const int) -0:123 Function Definition: basic_works( ( global void) -0:123 Function Parameters: -0:125 Sequence -0:125 'gl_SubgroupSize' ( volatile in uint SubgroupSize) -0:126 'gl_SubgroupInvocationID' ( volatile in uint SubgroupInvocationID) -0:127 subgroupBarrier ( global void) -0:128 subgroupMemoryBarrier ( global void) -0:129 subgroupMemoryBarrierBuffer ( global void) -0:130 subgroupMemoryBarrierImage ( global void) -0:131 subgroupElect ( global bool) -0:135 Function Definition: ballot_works(vf4; ( global void) -0:135 Function Parameters: -0:135 'f4' ( in 4-component vector of float) -0:136 Sequence -0:136 'gl_SubgroupEqMask' ( volatile in 4-component vector of uint SubgroupEqMask) -0:137 'gl_SubgroupGeMask' ( volatile in 4-component vector of uint SubgroupGeMask) -0:138 'gl_SubgroupGtMask' ( volatile in 4-component vector of uint SubgroupGtMask) -0:139 'gl_SubgroupLeMask' ( volatile in 4-component vector of uint SubgroupLeMask) -0:140 'gl_SubgroupLtMask' ( volatile in 4-component vector of uint SubgroupLtMask) -0:141 subgroupBroadcast ( global 4-component vector of float) -0:141 'f4' ( in 4-component vector of float) -0:141 Constant: -0:141 0 (const uint) -0:142 subgroupBroadcastFirst ( global 4-component vector of float) -0:142 'f4' ( in 4-component vector of float) -0:143 Sequence -0:143 move second child to first child ( temp 4-component vector of uint) -0:143 'ballot' ( temp 4-component vector of uint) -0:143 subgroupBallot ( global 4-component vector of uint) -0:143 Constant: -0:143 false (const bool) -0:144 subgroupInverseBallot ( global bool) -0:144 Constant: -0:144 1 (const uint) -0:144 1 (const uint) -0:144 1 (const uint) -0:144 1 (const uint) -0:145 subgroupBallotBitExtract ( global bool) -0:145 'ballot' ( temp 4-component vector of uint) -0:145 Constant: -0:145 0 (const uint) -0:146 subgroupBallotBitCount ( global uint) -0:146 'ballot' ( temp 4-component vector of uint) -0:147 subgroupBallotInclusiveBitCount ( global uint) -0:147 'ballot' ( temp 4-component vector of uint) -0:148 subgroupBallotExclusiveBitCount ( global uint) -0:148 'ballot' ( temp 4-component vector of uint) -0:149 subgroupBallotFindLSB ( global uint) -0:149 'ballot' ( temp 4-component vector of uint) -0:150 subgroupBallotFindMSB ( global uint) -0:150 'ballot' ( temp 4-component vector of uint) -0:154 Function Definition: vote_works(vf4; ( global void) -0:154 Function Parameters: -0:154 'f4' ( in 4-component vector of float) -0:156 Sequence -0:156 subgroupAll ( global bool) -0:156 Constant: -0:156 true (const bool) -0:157 subgroupAny ( global bool) -0:157 Constant: -0:157 false (const bool) -0:158 subgroupAllEqual ( global bool) -0:158 'f4' ( in 4-component vector of float) -0:163 Function Definition: shuffle_works(vf4; ( global void) -0:163 Function Parameters: -0:163 'f4' ( in 4-component vector of float) -0:165 Sequence -0:165 subgroupShuffle ( global 4-component vector of float) -0:165 'f4' ( in 4-component vector of float) -0:165 Constant: -0:165 0 (const uint) -0:166 subgroupShuffleXor ( global 4-component vector of float) -0:166 'f4' ( in 4-component vector of float) -0:166 Constant: -0:166 1 (const uint) -0:167 subgroupShuffleUp ( global 4-component vector of float) -0:167 'f4' ( in 4-component vector of float) -0:167 Constant: -0:167 1 (const uint) -0:168 subgroupShuffleDown ( global 4-component vector of float) -0:168 'f4' ( in 4-component vector of float) -0:168 Constant: -0:168 1 (const uint) -0:172 Function Definition: arith_works(vf4; ( global void) -0:172 Function Parameters: -0:172 'f4' ( in 4-component vector of float) -0:? Sequence -0:175 subgroupAdd ( global 4-component vector of float) -0:175 'f4' ( in 4-component vector of float) -0:176 subgroupMul ( global 4-component vector of float) -0:176 'f4' ( in 4-component vector of float) -0:177 subgroupMin ( global 4-component vector of float) -0:177 'f4' ( in 4-component vector of float) -0:178 subgroupMax ( global 4-component vector of float) -0:178 'f4' ( in 4-component vector of float) -0:179 subgroupAnd ( global 4-component vector of uint) -0:179 'ballot' ( temp 4-component vector of uint) -0:180 subgroupOr ( global 4-component vector of uint) -0:180 'ballot' ( temp 4-component vector of uint) -0:181 subgroupXor ( global 4-component vector of uint) -0:181 'ballot' ( temp 4-component vector of uint) -0:182 subgroupInclusiveAdd ( global 4-component vector of float) -0:182 'f4' ( in 4-component vector of float) -0:183 subgroupInclusiveMul ( global 4-component vector of float) -0:183 'f4' ( in 4-component vector of float) -0:184 subgroupInclusiveMin ( global 4-component vector of float) -0:184 'f4' ( in 4-component vector of float) -0:185 subgroupInclusiveMax ( global 4-component vector of float) -0:185 'f4' ( in 4-component vector of float) -0:186 subgroupInclusiveAnd ( global 4-component vector of uint) -0:186 'ballot' ( temp 4-component vector of uint) -0:187 subgroupInclusiveOr ( global 4-component vector of uint) -0:187 'ballot' ( temp 4-component vector of uint) -0:188 subgroupInclusiveXor ( global 4-component vector of uint) -0:188 'ballot' ( temp 4-component vector of uint) -0:189 subgroupExclusiveAdd ( global 4-component vector of float) -0:189 'f4' ( in 4-component vector of float) -0:190 subgroupExclusiveMul ( global 4-component vector of float) -0:190 'f4' ( in 4-component vector of float) -0:191 subgroupExclusiveMin ( global 4-component vector of float) -0:191 'f4' ( in 4-component vector of float) -0:192 subgroupExclusiveMax ( global 4-component vector of float) -0:192 'f4' ( in 4-component vector of float) -0:193 subgroupExclusiveAnd ( global 4-component vector of uint) -0:193 'ballot' ( temp 4-component vector of uint) -0:194 subgroupExclusiveOr ( global 4-component vector of uint) -0:194 'ballot' ( temp 4-component vector of uint) -0:195 subgroupExclusiveXor ( global 4-component vector of uint) -0:195 'ballot' ( temp 4-component vector of uint) -0:199 Function Definition: clustered_works(vf4; ( global void) -0:199 Function Parameters: -0:199 'f4' ( in 4-component vector of float) -0:201 Sequence -0:201 Sequence -0:201 move second child to first child ( temp 4-component vector of uint) -0:201 'ballot' ( temp 4-component vector of uint) -0:201 Constant: -0:201 85 (const uint) -0:201 0 (const uint) -0:201 0 (const uint) -0:201 0 (const uint) -0:202 subgroupClusteredAdd ( global 4-component vector of float) -0:202 'f4' ( in 4-component vector of float) -0:202 Constant: -0:202 2 (const uint) -0:203 subgroupClusteredMul ( global 4-component vector of float) -0:203 'f4' ( in 4-component vector of float) -0:203 Constant: -0:203 2 (const uint) -0:204 subgroupClusteredMin ( global 4-component vector of float) -0:204 'f4' ( in 4-component vector of float) -0:204 Constant: -0:204 2 (const uint) -0:205 subgroupClusteredMax ( global 4-component vector of float) -0:205 'f4' ( in 4-component vector of float) -0:205 Constant: -0:205 2 (const uint) -0:206 subgroupClusteredAnd ( global 4-component vector of uint) -0:206 'ballot' ( temp 4-component vector of uint) -0:206 Constant: -0:206 2 (const uint) -0:207 subgroupClusteredOr ( global 4-component vector of uint) -0:207 'ballot' ( temp 4-component vector of uint) -0:207 Constant: -0:207 2 (const uint) -0:208 subgroupClusteredXor ( global 4-component vector of uint) -0:208 'ballot' ( temp 4-component vector of uint) -0:208 Constant: -0:208 2 (const uint) -0:212 Function Definition: quad_works(vf4; ( global void) -0:212 Function Parameters: -0:212 'f4' ( in 4-component vector of float) -0:214 Sequence -0:214 subgroupQuadBroadcast ( global 4-component vector of float) -0:214 'f4' ( in 4-component vector of float) -0:214 Constant: -0:214 0 (const uint) -0:215 subgroupQuadSwapHorizontal ( global 4-component vector of float) -0:215 'f4' ( in 4-component vector of float) -0:216 subgroupQuadSwapVertical ( global 4-component vector of float) -0:216 'f4' ( in 4-component vector of float) -0:217 subgroupQuadSwapDiagonal ( global 4-component vector of float) -0:217 'f4' ( in 4-component vector of float) -0:221 Function Definition: partitioned_works(vf4; ( global void) -0:221 Function Parameters: -0:221 'f4' ( in 4-component vector of float) -0:223 Sequence -0:223 Sequence -0:223 move second child to first child ( temp 4-component vector of uint) -0:223 'parti' ( temp 4-component vector of uint) -0:223 subgroupPartitionNV ( global 4-component vector of uint) -0:223 'f4' ( in 4-component vector of float) -0:224 Sequence -0:224 move second child to first child ( temp 4-component vector of uint) -0:224 'ballot' ( temp 4-component vector of uint) -0:224 Constant: -0:224 85 (const uint) -0:224 0 (const uint) -0:224 0 (const uint) -0:224 0 (const uint) -0:225 subgroupPartitionedAddNV ( global 4-component vector of float) -0:225 'f4' ( in 4-component vector of float) -0:225 'parti' ( temp 4-component vector of uint) -0:226 subgroupPartitionedMulNV ( global 4-component vector of float) -0:226 'f4' ( in 4-component vector of float) -0:226 'parti' ( temp 4-component vector of uint) -0:227 subgroupPartitionedMinNV ( global 4-component vector of float) -0:227 'f4' ( in 4-component vector of float) -0:227 'parti' ( temp 4-component vector of uint) -0:228 subgroupPartitionedMaxNV ( global 4-component vector of float) -0:228 'f4' ( in 4-component vector of float) -0:228 'parti' ( temp 4-component vector of uint) -0:229 subgroupPartitionedAndNV ( global 4-component vector of uint) -0:229 'ballot' ( temp 4-component vector of uint) -0:229 'parti' ( temp 4-component vector of uint) -0:230 subgroupPartitionedOrNV ( global 4-component vector of uint) -0:230 'ballot' ( temp 4-component vector of uint) -0:230 'parti' ( temp 4-component vector of uint) -0:231 subgroupPartitionedXorNV ( global 4-component vector of uint) -0:231 'ballot' ( temp 4-component vector of uint) -0:231 'parti' ( temp 4-component vector of uint) -0:232 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float) -0:232 'f4' ( in 4-component vector of float) -0:232 'parti' ( temp 4-component vector of uint) -0:233 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float) -0:233 'f4' ( in 4-component vector of float) -0:233 'parti' ( temp 4-component vector of uint) -0:234 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float) -0:234 'f4' ( in 4-component vector of float) -0:234 'parti' ( temp 4-component vector of uint) -0:235 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float) -0:235 'f4' ( in 4-component vector of float) -0:235 'parti' ( temp 4-component vector of uint) -0:236 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint) -0:236 'ballot' ( temp 4-component vector of uint) -0:236 'parti' ( temp 4-component vector of uint) -0:237 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint) -0:237 'ballot' ( temp 4-component vector of uint) -0:237 'parti' ( temp 4-component vector of uint) -0:238 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint) -0:238 'ballot' ( temp 4-component vector of uint) -0:238 'parti' ( temp 4-component vector of uint) -0:239 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float) -0:239 'f4' ( in 4-component vector of float) -0:239 'parti' ( temp 4-component vector of uint) -0:240 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float) -0:240 'f4' ( in 4-component vector of float) -0:240 'parti' ( temp 4-component vector of uint) -0:241 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float) -0:241 'f4' ( in 4-component vector of float) -0:241 'parti' ( temp 4-component vector of uint) -0:242 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float) -0:242 'f4' ( in 4-component vector of float) -0:242 'parti' ( temp 4-component vector of uint) -0:243 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint) -0:243 'ballot' ( temp 4-component vector of uint) -0:243 'parti' ( temp 4-component vector of uint) -0:244 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint) -0:244 'ballot' ( temp 4-component vector of uint) -0:244 'parti' ( temp 4-component vector of uint) -0:245 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint) -0:245 'ballot' ( temp 4-component vector of uint) -0:245 'parti' ( temp 4-component vector of uint) -0:249 Function Definition: sm_builtins_err( ( global void) -0:249 Function Parameters: -0:251 Sequence -0:251 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV) -0:252 'gl_SMCountNV' ( in uint SMCountNV) -0:253 'gl_WarpIDNV' ( volatile in uint WarpIDNV) -0:254 'gl_SMIDNV' ( volatile in uint SMIDNV) -0:261 Function Definition: sm_builtins( ( global void) -0:261 Function Parameters: -0:263 Sequence -0:263 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV) -0:264 'gl_SMCountNV' ( in uint SMCountNV) -0:265 'gl_WarpIDNV' ( volatile in uint WarpIDNV) -0:266 'gl_SMIDNV' ( volatile in uint SMIDNV) -0:? Linker Objects -0:? 'accNV0' (layout( set=0 binding=0) uniform accelerationStructureNV) -0:? 'accNV1' (layout( set=0 binding=1) uniform accelerationStructureNV) -0:? 'payload' (layout( location=0) rayPayloadNV 4-component vector of float) -0:? 'anon@0' (layout( column_major std430 shaderRecordNV) buffer block{layout( column_major std430 offset=0) buffer 3-component vector of float dir, layout( column_major std430 offset=16) buffer 3-component vector of float origin}) - - -Linked ray-generation stage: - - -Shader version: 460 -Requested GL_KHR_shader_subgroup_arithmetic -Requested GL_KHR_shader_subgroup_ballot -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_clustered -Requested GL_KHR_shader_subgroup_quad -Requested GL_KHR_shader_subgroup_shuffle -Requested GL_KHR_shader_subgroup_shuffle_relative -Requested GL_KHR_shader_subgroup_vote -Requested GL_NV_ray_tracing -Requested GL_NV_shader_sm_builtins -Requested GL_NV_shader_subgroup_partitioned -ERROR: node is still EOpNull! -0:113 Function Definition: main( ( global void) -0:113 Function Parameters: -0:115 Sequence -0:115 Sequence -0:115 move second child to first child ( temp uint) -0:115 'lx' ( temp uint) -0:115 direct index ( temp uint) -0:115 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV) -0:115 Constant: -0:115 0 (const int) -0:116 Sequence -0:116 move second child to first child ( temp uint) -0:116 'ly' ( temp uint) -0:116 direct index ( temp uint) -0:116 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV) -0:116 Constant: -0:116 1 (const int) -0:117 Sequence -0:117 move second child to first child ( temp uint) -0:117 'sx' ( temp uint) -0:117 direct index ( temp uint) -0:117 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV) -0:117 Constant: -0:117 0 (const int) -0:118 Sequence -0:118 move second child to first child ( temp uint) -0:118 'sy' ( temp uint) -0:118 direct index ( temp uint) -0:118 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV) -0:118 Constant: -0:118 1 (const int) -0:119 traceNV ( global void) -0:119 'accNV0' (layout( set=0 binding=0) uniform accelerationStructureNV) -0:119 'lx' ( temp uint) -0:119 'ly' ( temp uint) -0:119 'sx' ( temp uint) -0:119 'sy' ( temp uint) -0:119 Constant: -0:119 0 (const uint) -0:119 origin: direct index for structure (layout( column_major std430 offset=16) buffer 3-component vector of float) -0:119 'anon@0' (layout( column_major std430 shaderRecordNV) buffer block{layout( column_major std430 offset=0) buffer 3-component vector of float dir, layout( column_major std430 offset=16) buffer 3-component vector of float origin}) -0:119 Constant: -0:119 1 (const uint) -0:119 Constant: -0:119 0.500000 -0:119 dir: direct index for structure (layout( column_major std430 offset=0) buffer 3-component vector of float) -0:119 'anon@0' (layout( column_major std430 shaderRecordNV) buffer block{layout( column_major std430 offset=0) buffer 3-component vector of float dir, layout( column_major std430 offset=16) buffer 3-component vector of float origin}) -0:119 Constant: -0:119 0 (const uint) -0:119 Constant: -0:119 0.750000 -0:119 Constant: -0:119 1 (const int) -0:? Linker Objects -0:? 'accNV0' (layout( set=0 binding=0) uniform accelerationStructureNV) -0:? 'accNV1' (layout( set=0 binding=1) uniform accelerationStructureNV) -0:? 'payload' (layout( location=0) rayPayloadNV 4-component vector of float) -0:? 'anon@0' (layout( column_major std430 shaderRecordNV) buffer block{layout( column_major std430 offset=0) buffer 3-component vector of float dir, layout( column_major std430 offset=16) buffer 3-component vector of float origin}) - diff --git a/deps/glslang/Test/baseResults/glsl.460.subgroup.rint.out b/deps/glslang/Test/baseResults/glsl.460.subgroup.rint.out deleted file mode 100644 index a7de7d35..00000000 --- a/deps/glslang/Test/baseResults/glsl.460.subgroup.rint.out +++ /dev/null @@ -1,769 +0,0 @@ -glsl.460.subgroup.rint -ERROR: 0:8: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:9: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:10: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:11: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:12: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:13: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:14: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:15: 'gl_NumSubgroups' : undeclared identifier -ERROR: 0:16: 'gl_SubgroupID' : undeclared identifier -ERROR: 0:17: 'subgroupMemoryBarrierShared' : no matching overloaded function found -ERROR: 0:19: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:20: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:21: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:23: 'gl_SubgroupEqMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:24: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:25: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:26: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:27: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:28: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:29: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:30: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:31: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:32: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:33: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:34: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:35: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:36: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:37: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:39: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle -ERROR: 0:40: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle -ERROR: 0:41: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative -ERROR: 0:42: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative -ERROR: 0:44: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:45: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:46: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:47: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:48: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:49: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:50: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:51: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:52: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:53: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:54: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:55: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:56: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:57: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:58: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:59: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:60: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:61: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:62: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:63: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:64: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:66: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:67: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:68: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:69: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:70: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:71: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:72: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:74: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:75: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:76: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:77: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:79: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:80: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:81: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:82: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:83: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:84: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:85: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:86: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:87: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:88: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:89: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:90: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:91: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:92: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:93: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:94: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:95: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:96: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:97: 'subgroupPartitionedExclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:98: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:99: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:100: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:257: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:258: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:259: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:260: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 90 compilation errors. No code generated. - - -Shader version: 460 -Requested GL_KHR_shader_subgroup_arithmetic -Requested GL_KHR_shader_subgroup_ballot -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_clustered -Requested GL_KHR_shader_subgroup_quad -Requested GL_KHR_shader_subgroup_shuffle -Requested GL_KHR_shader_subgroup_shuffle_relative -Requested GL_KHR_shader_subgroup_vote -Requested GL_NV_ray_tracing -Requested GL_NV_shader_sm_builtins -Requested GL_NV_shader_subgroup_partitioned -ERROR: node is still EOpNull! -0:5 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float) -0:5 Function Parameters: -0:5 'f4' ( in 4-component vector of float) -0:? Sequence -0:8 'gl_SubgroupSize' ( volatile in uint SubgroupSize) -0:9 'gl_SubgroupInvocationID' ( volatile in uint SubgroupInvocationID) -0:10 subgroupBarrier ( global void) -0:11 subgroupMemoryBarrier ( global void) -0:12 subgroupMemoryBarrierBuffer ( global void) -0:13 subgroupMemoryBarrierImage ( global void) -0:14 subgroupElect ( global bool) -0:15 'gl_NumSubgroups' ( temp float) -0:16 'gl_SubgroupID' ( temp float) -0:17 Constant: -0:17 0.000000 -0:19 subgroupAll ( global bool) -0:19 Constant: -0:19 true (const bool) -0:20 subgroupAny ( global bool) -0:20 Constant: -0:20 false (const bool) -0:21 subgroupAllEqual ( global bool) -0:21 'f4' ( in 4-component vector of float) -0:23 'gl_SubgroupEqMask' ( volatile in 4-component vector of uint SubgroupEqMask) -0:24 'gl_SubgroupGeMask' ( volatile in 4-component vector of uint SubgroupGeMask) -0:25 'gl_SubgroupGtMask' ( volatile in 4-component vector of uint SubgroupGtMask) -0:26 'gl_SubgroupLeMask' ( volatile in 4-component vector of uint SubgroupLeMask) -0:27 'gl_SubgroupLtMask' ( volatile in 4-component vector of uint SubgroupLtMask) -0:28 subgroupBroadcast ( global 4-component vector of float) -0:28 'f4' ( in 4-component vector of float) -0:28 Constant: -0:28 0 (const uint) -0:29 subgroupBroadcastFirst ( global 4-component vector of float) -0:29 'f4' ( in 4-component vector of float) -0:30 Sequence -0:30 move second child to first child ( temp 4-component vector of uint) -0:30 'ballot' ( temp 4-component vector of uint) -0:30 subgroupBallot ( global 4-component vector of uint) -0:30 Constant: -0:30 false (const bool) -0:31 subgroupInverseBallot ( global bool) -0:31 Constant: -0:31 1 (const uint) -0:31 1 (const uint) -0:31 1 (const uint) -0:31 1 (const uint) -0:32 subgroupBallotBitExtract ( global bool) -0:32 'ballot' ( temp 4-component vector of uint) -0:32 Constant: -0:32 0 (const uint) -0:33 subgroupBallotBitCount ( global uint) -0:33 'ballot' ( temp 4-component vector of uint) -0:34 subgroupBallotInclusiveBitCount ( global uint) -0:34 'ballot' ( temp 4-component vector of uint) -0:35 subgroupBallotExclusiveBitCount ( global uint) -0:35 'ballot' ( temp 4-component vector of uint) -0:36 subgroupBallotFindLSB ( global uint) -0:36 'ballot' ( temp 4-component vector of uint) -0:37 subgroupBallotFindMSB ( global uint) -0:37 'ballot' ( temp 4-component vector of uint) -0:39 subgroupShuffle ( global 4-component vector of float) -0:39 'f4' ( in 4-component vector of float) -0:39 Constant: -0:39 0 (const uint) -0:40 subgroupShuffleXor ( global 4-component vector of float) -0:40 'f4' ( in 4-component vector of float) -0:40 Constant: -0:40 1 (const uint) -0:41 subgroupShuffleUp ( global 4-component vector of float) -0:41 'f4' ( in 4-component vector of float) -0:41 Constant: -0:41 1 (const uint) -0:42 subgroupShuffleDown ( global 4-component vector of float) -0:42 'f4' ( in 4-component vector of float) -0:42 Constant: -0:42 1 (const uint) -0:44 move second child to first child ( temp 4-component vector of float) -0:44 'result' ( temp 4-component vector of float) -0:44 subgroupAdd ( global 4-component vector of float) -0:44 'f4' ( in 4-component vector of float) -0:45 subgroupMul ( global 4-component vector of float) -0:45 'f4' ( in 4-component vector of float) -0:46 subgroupMin ( global 4-component vector of float) -0:46 'f4' ( in 4-component vector of float) -0:47 subgroupMax ( global 4-component vector of float) -0:47 'f4' ( in 4-component vector of float) -0:48 subgroupAnd ( global 4-component vector of uint) -0:48 'ballot' ( temp 4-component vector of uint) -0:49 subgroupOr ( global 4-component vector of uint) -0:49 'ballot' ( temp 4-component vector of uint) -0:50 subgroupXor ( global 4-component vector of uint) -0:50 'ballot' ( temp 4-component vector of uint) -0:51 subgroupInclusiveAdd ( global 4-component vector of float) -0:51 'f4' ( in 4-component vector of float) -0:52 subgroupInclusiveMul ( global 4-component vector of float) -0:52 'f4' ( in 4-component vector of float) -0:53 subgroupInclusiveMin ( global 4-component vector of float) -0:53 'f4' ( in 4-component vector of float) -0:54 subgroupInclusiveMax ( global 4-component vector of float) -0:54 'f4' ( in 4-component vector of float) -0:55 subgroupInclusiveAnd ( global 4-component vector of uint) -0:55 'ballot' ( temp 4-component vector of uint) -0:56 subgroupInclusiveOr ( global 4-component vector of uint) -0:56 'ballot' ( temp 4-component vector of uint) -0:57 subgroupInclusiveXor ( global 4-component vector of uint) -0:57 'ballot' ( temp 4-component vector of uint) -0:58 subgroupExclusiveAdd ( global 4-component vector of float) -0:58 'f4' ( in 4-component vector of float) -0:59 subgroupExclusiveMul ( global 4-component vector of float) -0:59 'f4' ( in 4-component vector of float) -0:60 subgroupExclusiveMin ( global 4-component vector of float) -0:60 'f4' ( in 4-component vector of float) -0:61 subgroupExclusiveMax ( global 4-component vector of float) -0:61 'f4' ( in 4-component vector of float) -0:62 subgroupExclusiveAnd ( global 4-component vector of uint) -0:62 'ballot' ( temp 4-component vector of uint) -0:63 subgroupExclusiveOr ( global 4-component vector of uint) -0:63 'ballot' ( temp 4-component vector of uint) -0:64 subgroupExclusiveXor ( global 4-component vector of uint) -0:64 'ballot' ( temp 4-component vector of uint) -0:66 subgroupClusteredAdd ( global 4-component vector of float) -0:66 'f4' ( in 4-component vector of float) -0:66 Constant: -0:66 2 (const uint) -0:67 subgroupClusteredMul ( global 4-component vector of float) -0:67 'f4' ( in 4-component vector of float) -0:67 Constant: -0:67 2 (const uint) -0:68 subgroupClusteredMin ( global 4-component vector of float) -0:68 'f4' ( in 4-component vector of float) -0:68 Constant: -0:68 2 (const uint) -0:69 subgroupClusteredMax ( global 4-component vector of float) -0:69 'f4' ( in 4-component vector of float) -0:69 Constant: -0:69 2 (const uint) -0:70 subgroupClusteredAnd ( global 4-component vector of uint) -0:70 'ballot' ( temp 4-component vector of uint) -0:70 Constant: -0:70 2 (const uint) -0:71 subgroupClusteredOr ( global 4-component vector of uint) -0:71 'ballot' ( temp 4-component vector of uint) -0:71 Constant: -0:71 2 (const uint) -0:72 subgroupClusteredXor ( global 4-component vector of uint) -0:72 'ballot' ( temp 4-component vector of uint) -0:72 Constant: -0:72 2 (const uint) -0:74 subgroupQuadBroadcast ( global 4-component vector of float) -0:74 'f4' ( in 4-component vector of float) -0:74 Constant: -0:74 0 (const uint) -0:75 subgroupQuadSwapHorizontal ( global 4-component vector of float) -0:75 'f4' ( in 4-component vector of float) -0:76 subgroupQuadSwapVertical ( global 4-component vector of float) -0:76 'f4' ( in 4-component vector of float) -0:77 subgroupQuadSwapDiagonal ( global 4-component vector of float) -0:77 'f4' ( in 4-component vector of float) -0:79 Sequence -0:79 move second child to first child ( temp 4-component vector of uint) -0:79 'parti' ( temp 4-component vector of uint) -0:79 subgroupPartitionNV ( global 4-component vector of uint) -0:79 'f4' ( in 4-component vector of float) -0:80 subgroupPartitionedAddNV ( global 4-component vector of float) -0:80 'f4' ( in 4-component vector of float) -0:80 'parti' ( temp 4-component vector of uint) -0:81 subgroupPartitionedMulNV ( global 4-component vector of float) -0:81 'f4' ( in 4-component vector of float) -0:81 'parti' ( temp 4-component vector of uint) -0:82 subgroupPartitionedMinNV ( global 4-component vector of float) -0:82 'f4' ( in 4-component vector of float) -0:82 'parti' ( temp 4-component vector of uint) -0:83 subgroupPartitionedMaxNV ( global 4-component vector of float) -0:83 'f4' ( in 4-component vector of float) -0:83 'parti' ( temp 4-component vector of uint) -0:84 subgroupPartitionedAndNV ( global 4-component vector of uint) -0:84 'ballot' ( temp 4-component vector of uint) -0:84 'parti' ( temp 4-component vector of uint) -0:85 subgroupPartitionedOrNV ( global 4-component vector of uint) -0:85 'ballot' ( temp 4-component vector of uint) -0:85 'parti' ( temp 4-component vector of uint) -0:86 subgroupPartitionedXorNV ( global 4-component vector of uint) -0:86 'ballot' ( temp 4-component vector of uint) -0:86 'parti' ( temp 4-component vector of uint) -0:87 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float) -0:87 'f4' ( in 4-component vector of float) -0:87 'parti' ( temp 4-component vector of uint) -0:88 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float) -0:88 'f4' ( in 4-component vector of float) -0:88 'parti' ( temp 4-component vector of uint) -0:89 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float) -0:89 'f4' ( in 4-component vector of float) -0:89 'parti' ( temp 4-component vector of uint) -0:90 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float) -0:90 'f4' ( in 4-component vector of float) -0:90 'parti' ( temp 4-component vector of uint) -0:91 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint) -0:91 'ballot' ( temp 4-component vector of uint) -0:91 'parti' ( temp 4-component vector of uint) -0:92 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint) -0:92 'ballot' ( temp 4-component vector of uint) -0:92 'parti' ( temp 4-component vector of uint) -0:93 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint) -0:93 'ballot' ( temp 4-component vector of uint) -0:93 'parti' ( temp 4-component vector of uint) -0:94 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float) -0:94 'f4' ( in 4-component vector of float) -0:94 'parti' ( temp 4-component vector of uint) -0:95 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float) -0:95 'f4' ( in 4-component vector of float) -0:95 'parti' ( temp 4-component vector of uint) -0:96 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float) -0:96 'f4' ( in 4-component vector of float) -0:96 'parti' ( temp 4-component vector of uint) -0:97 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float) -0:97 'f4' ( in 4-component vector of float) -0:97 'parti' ( temp 4-component vector of uint) -0:98 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint) -0:98 'ballot' ( temp 4-component vector of uint) -0:98 'parti' ( temp 4-component vector of uint) -0:99 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint) -0:99 'ballot' ( temp 4-component vector of uint) -0:99 'parti' ( temp 4-component vector of uint) -0:100 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint) -0:100 'ballot' ( temp 4-component vector of uint) -0:100 'parti' ( temp 4-component vector of uint) -0:102 Branch: Return with expression -0:102 'result' ( temp 4-component vector of float) -0:108 Function Definition: main( ( global void) -0:108 Function Parameters: -0:110 Sequence -0:110 Sequence -0:110 move second child to first child ( temp 3-component vector of uint) -0:110 'v0' ( temp 3-component vector of uint) -0:110 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV) -0:111 Sequence -0:111 move second child to first child ( temp 3-component vector of uint) -0:111 'v1' ( temp 3-component vector of uint) -0:111 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV) -0:112 Sequence -0:112 move second child to first child ( temp int) -0:112 'v2' ( temp int) -0:112 'gl_PrimitiveID' ( in int PrimitiveID) -0:113 Sequence -0:113 move second child to first child ( temp int) -0:113 'v3' ( temp int) -0:113 'gl_InstanceID' ( in int InstanceId) -0:114 Sequence -0:114 move second child to first child ( temp int) -0:114 'v4' ( temp int) -0:114 'gl_InstanceCustomIndexNV' ( in int InstanceCustomIndexNV) -0:115 Sequence -0:115 move second child to first child ( temp 3-component vector of float) -0:115 'v5' ( temp 3-component vector of float) -0:115 'gl_WorldRayOriginNV' ( in 3-component vector of float WorldRayOriginNV) -0:116 Sequence -0:116 move second child to first child ( temp 3-component vector of float) -0:116 'v6' ( temp 3-component vector of float) -0:116 'gl_WorldRayDirectionNV' ( in 3-component vector of float WorldRayDirectionNV) -0:117 Sequence -0:117 move second child to first child ( temp 3-component vector of float) -0:117 'v7' ( temp 3-component vector of float) -0:117 'gl_ObjectRayOriginNV' ( in 3-component vector of float ObjectRayOriginNV) -0:118 Sequence -0:118 move second child to first child ( temp 3-component vector of float) -0:118 'v8' ( temp 3-component vector of float) -0:118 'gl_ObjectRayDirectionNV' ( in 3-component vector of float ObjectRayDirectionNV) -0:119 Sequence -0:119 move second child to first child ( temp float) -0:119 'v9' ( temp float) -0:119 'gl_RayTminNV' ( in float ObjectRayTminNV) -0:120 Sequence -0:120 move second child to first child ( temp float) -0:120 'v10' ( temp float) -0:120 'gl_RayTmaxNV' ( in float ObjectRayTmaxNV) -0:121 Sequence -0:121 move second child to first child ( temp 4X3 matrix of float) -0:121 'v11' ( temp 4X3 matrix of float) -0:121 'gl_ObjectToWorldNV' ( in 4X3 matrix of float ObjectToWorldNV) -0:122 Sequence -0:122 move second child to first child ( temp 4X3 matrix of float) -0:122 'v12' ( temp 4X3 matrix of float) -0:122 'gl_WorldToObjectNV' ( in 4X3 matrix of float WorldToObjectNV) -0:123 move second child to first child ( temp 4-component vector of float) -0:123 'iAttr' ( hitAttributeNV 4-component vector of float) -0:123 Constant: -0:123 0.500000 -0:123 0.500000 -0:123 0.000000 -0:123 1.000000 -0:124 reportIntersectionNV ( global bool) -0:124 Constant: -0:124 0.500000 -0:124 Constant: -0:124 1 (const uint) -0:129 Function Definition: basic_works( ( global void) -0:129 Function Parameters: -0:131 Sequence -0:131 'gl_SubgroupSize' ( volatile in uint SubgroupSize) -0:132 'gl_SubgroupInvocationID' ( volatile in uint SubgroupInvocationID) -0:133 subgroupBarrier ( global void) -0:134 subgroupMemoryBarrier ( global void) -0:135 subgroupMemoryBarrierBuffer ( global void) -0:136 subgroupMemoryBarrierImage ( global void) -0:137 subgroupElect ( global bool) -0:141 Function Definition: ballot_works(vf4; ( global void) -0:141 Function Parameters: -0:141 'f4' ( in 4-component vector of float) -0:142 Sequence -0:142 'gl_SubgroupEqMask' ( volatile in 4-component vector of uint SubgroupEqMask) -0:143 'gl_SubgroupGeMask' ( volatile in 4-component vector of uint SubgroupGeMask) -0:144 'gl_SubgroupGtMask' ( volatile in 4-component vector of uint SubgroupGtMask) -0:145 'gl_SubgroupLeMask' ( volatile in 4-component vector of uint SubgroupLeMask) -0:146 'gl_SubgroupLtMask' ( volatile in 4-component vector of uint SubgroupLtMask) -0:147 subgroupBroadcast ( global 4-component vector of float) -0:147 'f4' ( in 4-component vector of float) -0:147 Constant: -0:147 0 (const uint) -0:148 subgroupBroadcastFirst ( global 4-component vector of float) -0:148 'f4' ( in 4-component vector of float) -0:149 Sequence -0:149 move second child to first child ( temp 4-component vector of uint) -0:149 'ballot' ( temp 4-component vector of uint) -0:149 subgroupBallot ( global 4-component vector of uint) -0:149 Constant: -0:149 false (const bool) -0:150 subgroupInverseBallot ( global bool) -0:150 Constant: -0:150 1 (const uint) -0:150 1 (const uint) -0:150 1 (const uint) -0:150 1 (const uint) -0:151 subgroupBallotBitExtract ( global bool) -0:151 'ballot' ( temp 4-component vector of uint) -0:151 Constant: -0:151 0 (const uint) -0:152 subgroupBallotBitCount ( global uint) -0:152 'ballot' ( temp 4-component vector of uint) -0:153 subgroupBallotInclusiveBitCount ( global uint) -0:153 'ballot' ( temp 4-component vector of uint) -0:154 subgroupBallotExclusiveBitCount ( global uint) -0:154 'ballot' ( temp 4-component vector of uint) -0:155 subgroupBallotFindLSB ( global uint) -0:155 'ballot' ( temp 4-component vector of uint) -0:156 subgroupBallotFindMSB ( global uint) -0:156 'ballot' ( temp 4-component vector of uint) -0:160 Function Definition: vote_works(vf4; ( global void) -0:160 Function Parameters: -0:160 'f4' ( in 4-component vector of float) -0:162 Sequence -0:162 subgroupAll ( global bool) -0:162 Constant: -0:162 true (const bool) -0:163 subgroupAny ( global bool) -0:163 Constant: -0:163 false (const bool) -0:164 subgroupAllEqual ( global bool) -0:164 'f4' ( in 4-component vector of float) -0:169 Function Definition: shuffle_works(vf4; ( global void) -0:169 Function Parameters: -0:169 'f4' ( in 4-component vector of float) -0:171 Sequence -0:171 subgroupShuffle ( global 4-component vector of float) -0:171 'f4' ( in 4-component vector of float) -0:171 Constant: -0:171 0 (const uint) -0:172 subgroupShuffleXor ( global 4-component vector of float) -0:172 'f4' ( in 4-component vector of float) -0:172 Constant: -0:172 1 (const uint) -0:173 subgroupShuffleUp ( global 4-component vector of float) -0:173 'f4' ( in 4-component vector of float) -0:173 Constant: -0:173 1 (const uint) -0:174 subgroupShuffleDown ( global 4-component vector of float) -0:174 'f4' ( in 4-component vector of float) -0:174 Constant: -0:174 1 (const uint) -0:178 Function Definition: arith_works(vf4; ( global void) -0:178 Function Parameters: -0:178 'f4' ( in 4-component vector of float) -0:? Sequence -0:181 subgroupAdd ( global 4-component vector of float) -0:181 'f4' ( in 4-component vector of float) -0:182 subgroupMul ( global 4-component vector of float) -0:182 'f4' ( in 4-component vector of float) -0:183 subgroupMin ( global 4-component vector of float) -0:183 'f4' ( in 4-component vector of float) -0:184 subgroupMax ( global 4-component vector of float) -0:184 'f4' ( in 4-component vector of float) -0:185 subgroupAnd ( global 4-component vector of uint) -0:185 'ballot' ( temp 4-component vector of uint) -0:186 subgroupOr ( global 4-component vector of uint) -0:186 'ballot' ( temp 4-component vector of uint) -0:187 subgroupXor ( global 4-component vector of uint) -0:187 'ballot' ( temp 4-component vector of uint) -0:188 subgroupInclusiveAdd ( global 4-component vector of float) -0:188 'f4' ( in 4-component vector of float) -0:189 subgroupInclusiveMul ( global 4-component vector of float) -0:189 'f4' ( in 4-component vector of float) -0:190 subgroupInclusiveMin ( global 4-component vector of float) -0:190 'f4' ( in 4-component vector of float) -0:191 subgroupInclusiveMax ( global 4-component vector of float) -0:191 'f4' ( in 4-component vector of float) -0:192 subgroupInclusiveAnd ( global 4-component vector of uint) -0:192 'ballot' ( temp 4-component vector of uint) -0:193 subgroupInclusiveOr ( global 4-component vector of uint) -0:193 'ballot' ( temp 4-component vector of uint) -0:194 subgroupInclusiveXor ( global 4-component vector of uint) -0:194 'ballot' ( temp 4-component vector of uint) -0:195 subgroupExclusiveAdd ( global 4-component vector of float) -0:195 'f4' ( in 4-component vector of float) -0:196 subgroupExclusiveMul ( global 4-component vector of float) -0:196 'f4' ( in 4-component vector of float) -0:197 subgroupExclusiveMin ( global 4-component vector of float) -0:197 'f4' ( in 4-component vector of float) -0:198 subgroupExclusiveMax ( global 4-component vector of float) -0:198 'f4' ( in 4-component vector of float) -0:199 subgroupExclusiveAnd ( global 4-component vector of uint) -0:199 'ballot' ( temp 4-component vector of uint) -0:200 subgroupExclusiveOr ( global 4-component vector of uint) -0:200 'ballot' ( temp 4-component vector of uint) -0:201 subgroupExclusiveXor ( global 4-component vector of uint) -0:201 'ballot' ( temp 4-component vector of uint) -0:205 Function Definition: clustered_works(vf4; ( global void) -0:205 Function Parameters: -0:205 'f4' ( in 4-component vector of float) -0:207 Sequence -0:207 Sequence -0:207 move second child to first child ( temp 4-component vector of uint) -0:207 'ballot' ( temp 4-component vector of uint) -0:207 Constant: -0:207 85 (const uint) -0:207 0 (const uint) -0:207 0 (const uint) -0:207 0 (const uint) -0:208 subgroupClusteredAdd ( global 4-component vector of float) -0:208 'f4' ( in 4-component vector of float) -0:208 Constant: -0:208 2 (const uint) -0:209 subgroupClusteredMul ( global 4-component vector of float) -0:209 'f4' ( in 4-component vector of float) -0:209 Constant: -0:209 2 (const uint) -0:210 subgroupClusteredMin ( global 4-component vector of float) -0:210 'f4' ( in 4-component vector of float) -0:210 Constant: -0:210 2 (const uint) -0:211 subgroupClusteredMax ( global 4-component vector of float) -0:211 'f4' ( in 4-component vector of float) -0:211 Constant: -0:211 2 (const uint) -0:212 subgroupClusteredAnd ( global 4-component vector of uint) -0:212 'ballot' ( temp 4-component vector of uint) -0:212 Constant: -0:212 2 (const uint) -0:213 subgroupClusteredOr ( global 4-component vector of uint) -0:213 'ballot' ( temp 4-component vector of uint) -0:213 Constant: -0:213 2 (const uint) -0:214 subgroupClusteredXor ( global 4-component vector of uint) -0:214 'ballot' ( temp 4-component vector of uint) -0:214 Constant: -0:214 2 (const uint) -0:218 Function Definition: quad_works(vf4; ( global void) -0:218 Function Parameters: -0:218 'f4' ( in 4-component vector of float) -0:220 Sequence -0:220 subgroupQuadBroadcast ( global 4-component vector of float) -0:220 'f4' ( in 4-component vector of float) -0:220 Constant: -0:220 0 (const uint) -0:221 subgroupQuadSwapHorizontal ( global 4-component vector of float) -0:221 'f4' ( in 4-component vector of float) -0:222 subgroupQuadSwapVertical ( global 4-component vector of float) -0:222 'f4' ( in 4-component vector of float) -0:223 subgroupQuadSwapDiagonal ( global 4-component vector of float) -0:223 'f4' ( in 4-component vector of float) -0:227 Function Definition: partitioned_works(vf4; ( global void) -0:227 Function Parameters: -0:227 'f4' ( in 4-component vector of float) -0:229 Sequence -0:229 Sequence -0:229 move second child to first child ( temp 4-component vector of uint) -0:229 'parti' ( temp 4-component vector of uint) -0:229 subgroupPartitionNV ( global 4-component vector of uint) -0:229 'f4' ( in 4-component vector of float) -0:230 Sequence -0:230 move second child to first child ( temp 4-component vector of uint) -0:230 'ballot' ( temp 4-component vector of uint) -0:230 Constant: -0:230 85 (const uint) -0:230 0 (const uint) -0:230 0 (const uint) -0:230 0 (const uint) -0:231 subgroupPartitionedAddNV ( global 4-component vector of float) -0:231 'f4' ( in 4-component vector of float) -0:231 'parti' ( temp 4-component vector of uint) -0:232 subgroupPartitionedMulNV ( global 4-component vector of float) -0:232 'f4' ( in 4-component vector of float) -0:232 'parti' ( temp 4-component vector of uint) -0:233 subgroupPartitionedMinNV ( global 4-component vector of float) -0:233 'f4' ( in 4-component vector of float) -0:233 'parti' ( temp 4-component vector of uint) -0:234 subgroupPartitionedMaxNV ( global 4-component vector of float) -0:234 'f4' ( in 4-component vector of float) -0:234 'parti' ( temp 4-component vector of uint) -0:235 subgroupPartitionedAndNV ( global 4-component vector of uint) -0:235 'ballot' ( temp 4-component vector of uint) -0:235 'parti' ( temp 4-component vector of uint) -0:236 subgroupPartitionedOrNV ( global 4-component vector of uint) -0:236 'ballot' ( temp 4-component vector of uint) -0:236 'parti' ( temp 4-component vector of uint) -0:237 subgroupPartitionedXorNV ( global 4-component vector of uint) -0:237 'ballot' ( temp 4-component vector of uint) -0:237 'parti' ( temp 4-component vector of uint) -0:238 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float) -0:238 'f4' ( in 4-component vector of float) -0:238 'parti' ( temp 4-component vector of uint) -0:239 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float) -0:239 'f4' ( in 4-component vector of float) -0:239 'parti' ( temp 4-component vector of uint) -0:240 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float) -0:240 'f4' ( in 4-component vector of float) -0:240 'parti' ( temp 4-component vector of uint) -0:241 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float) -0:241 'f4' ( in 4-component vector of float) -0:241 'parti' ( temp 4-component vector of uint) -0:242 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint) -0:242 'ballot' ( temp 4-component vector of uint) -0:242 'parti' ( temp 4-component vector of uint) -0:243 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint) -0:243 'ballot' ( temp 4-component vector of uint) -0:243 'parti' ( temp 4-component vector of uint) -0:244 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint) -0:244 'ballot' ( temp 4-component vector of uint) -0:244 'parti' ( temp 4-component vector of uint) -0:245 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float) -0:245 'f4' ( in 4-component vector of float) -0:245 'parti' ( temp 4-component vector of uint) -0:246 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float) -0:246 'f4' ( in 4-component vector of float) -0:246 'parti' ( temp 4-component vector of uint) -0:247 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float) -0:247 'f4' ( in 4-component vector of float) -0:247 'parti' ( temp 4-component vector of uint) -0:248 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float) -0:248 'f4' ( in 4-component vector of float) -0:248 'parti' ( temp 4-component vector of uint) -0:249 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint) -0:249 'ballot' ( temp 4-component vector of uint) -0:249 'parti' ( temp 4-component vector of uint) -0:250 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint) -0:250 'ballot' ( temp 4-component vector of uint) -0:250 'parti' ( temp 4-component vector of uint) -0:251 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint) -0:251 'ballot' ( temp 4-component vector of uint) -0:251 'parti' ( temp 4-component vector of uint) -0:255 Function Definition: sm_builtins_err( ( global void) -0:255 Function Parameters: -0:257 Sequence -0:257 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV) -0:258 'gl_SMCountNV' ( in uint SMCountNV) -0:259 'gl_WarpIDNV' ( volatile in uint WarpIDNV) -0:260 'gl_SMIDNV' ( volatile in uint SMIDNV) -0:267 Function Definition: sm_builtins( ( global void) -0:267 Function Parameters: -0:269 Sequence -0:269 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV) -0:270 'gl_SMCountNV' ( in uint SMCountNV) -0:271 'gl_WarpIDNV' ( volatile in uint WarpIDNV) -0:272 'gl_SMIDNV' ( volatile in uint SMIDNV) -0:? Linker Objects -0:? 'iAttr' ( hitAttributeNV 4-component vector of float) - - -Linked intersection stage: - - -Shader version: 460 -Requested GL_KHR_shader_subgroup_arithmetic -Requested GL_KHR_shader_subgroup_ballot -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_clustered -Requested GL_KHR_shader_subgroup_quad -Requested GL_KHR_shader_subgroup_shuffle -Requested GL_KHR_shader_subgroup_shuffle_relative -Requested GL_KHR_shader_subgroup_vote -Requested GL_NV_ray_tracing -Requested GL_NV_shader_sm_builtins -Requested GL_NV_shader_subgroup_partitioned -ERROR: node is still EOpNull! -0:108 Function Definition: main( ( global void) -0:108 Function Parameters: -0:110 Sequence -0:110 Sequence -0:110 move second child to first child ( temp 3-component vector of uint) -0:110 'v0' ( temp 3-component vector of uint) -0:110 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV) -0:111 Sequence -0:111 move second child to first child ( temp 3-component vector of uint) -0:111 'v1' ( temp 3-component vector of uint) -0:111 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV) -0:112 Sequence -0:112 move second child to first child ( temp int) -0:112 'v2' ( temp int) -0:112 'gl_PrimitiveID' ( in int PrimitiveID) -0:113 Sequence -0:113 move second child to first child ( temp int) -0:113 'v3' ( temp int) -0:113 'gl_InstanceID' ( in int InstanceId) -0:114 Sequence -0:114 move second child to first child ( temp int) -0:114 'v4' ( temp int) -0:114 'gl_InstanceCustomIndexNV' ( in int InstanceCustomIndexNV) -0:115 Sequence -0:115 move second child to first child ( temp 3-component vector of float) -0:115 'v5' ( temp 3-component vector of float) -0:115 'gl_WorldRayOriginNV' ( in 3-component vector of float WorldRayOriginNV) -0:116 Sequence -0:116 move second child to first child ( temp 3-component vector of float) -0:116 'v6' ( temp 3-component vector of float) -0:116 'gl_WorldRayDirectionNV' ( in 3-component vector of float WorldRayDirectionNV) -0:117 Sequence -0:117 move second child to first child ( temp 3-component vector of float) -0:117 'v7' ( temp 3-component vector of float) -0:117 'gl_ObjectRayOriginNV' ( in 3-component vector of float ObjectRayOriginNV) -0:118 Sequence -0:118 move second child to first child ( temp 3-component vector of float) -0:118 'v8' ( temp 3-component vector of float) -0:118 'gl_ObjectRayDirectionNV' ( in 3-component vector of float ObjectRayDirectionNV) -0:119 Sequence -0:119 move second child to first child ( temp float) -0:119 'v9' ( temp float) -0:119 'gl_RayTminNV' ( in float ObjectRayTminNV) -0:120 Sequence -0:120 move second child to first child ( temp float) -0:120 'v10' ( temp float) -0:120 'gl_RayTmaxNV' ( in float ObjectRayTmaxNV) -0:121 Sequence -0:121 move second child to first child ( temp 4X3 matrix of float) -0:121 'v11' ( temp 4X3 matrix of float) -0:121 'gl_ObjectToWorldNV' ( in 4X3 matrix of float ObjectToWorldNV) -0:122 Sequence -0:122 move second child to first child ( temp 4X3 matrix of float) -0:122 'v12' ( temp 4X3 matrix of float) -0:122 'gl_WorldToObjectNV' ( in 4X3 matrix of float WorldToObjectNV) -0:123 move second child to first child ( temp 4-component vector of float) -0:123 'iAttr' ( hitAttributeNV 4-component vector of float) -0:123 Constant: -0:123 0.500000 -0:123 0.500000 -0:123 0.000000 -0:123 1.000000 -0:124 reportIntersectionNV ( global bool) -0:124 Constant: -0:124 0.500000 -0:124 Constant: -0:124 1 (const uint) -0:? Linker Objects -0:? 'iAttr' ( hitAttributeNV 4-component vector of float) - diff --git a/deps/glslang/Test/baseResults/glsl.460.subgroup.rmiss.out b/deps/glslang/Test/baseResults/glsl.460.subgroup.rmiss.out deleted file mode 100644 index 865d88c5..00000000 --- a/deps/glslang/Test/baseResults/glsl.460.subgroup.rmiss.out +++ /dev/null @@ -1,761 +0,0 @@ -glsl.460.subgroup.rmiss -ERROR: 0:8: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:9: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:10: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:11: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:12: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:13: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:14: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:15: 'gl_NumSubgroups' : undeclared identifier -ERROR: 0:16: 'gl_SubgroupID' : undeclared identifier -ERROR: 0:17: 'subgroupMemoryBarrierShared' : no matching overloaded function found -ERROR: 0:19: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:20: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:21: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:23: 'gl_SubgroupEqMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:24: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:25: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:26: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:27: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:28: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:29: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:30: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:31: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:32: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:33: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:34: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:35: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:36: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:37: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:39: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle -ERROR: 0:40: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle -ERROR: 0:41: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative -ERROR: 0:42: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative -ERROR: 0:44: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:45: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:46: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:47: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:48: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:49: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:50: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:51: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:52: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:53: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:54: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:55: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:56: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:57: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:58: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:59: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:60: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:61: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:62: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:63: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:64: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:66: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:67: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:68: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:69: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:70: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:71: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:72: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:74: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:75: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:76: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:77: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:79: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:80: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:81: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:82: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:83: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:84: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:85: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:86: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:87: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:88: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:89: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:90: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:91: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:92: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:93: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:94: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:95: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:96: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:97: 'subgroupPartitionedExclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:98: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:99: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:100: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:251: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:252: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:253: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:254: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 90 compilation errors. No code generated. - - -Shader version: 460 -Requested GL_KHR_shader_subgroup_arithmetic -Requested GL_KHR_shader_subgroup_ballot -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_clustered -Requested GL_KHR_shader_subgroup_quad -Requested GL_KHR_shader_subgroup_shuffle -Requested GL_KHR_shader_subgroup_shuffle_relative -Requested GL_KHR_shader_subgroup_vote -Requested GL_NV_ray_tracing -Requested GL_NV_shader_sm_builtins -Requested GL_NV_shader_subgroup_partitioned -ERROR: node is still EOpNull! -0:5 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float) -0:5 Function Parameters: -0:5 'f4' ( in 4-component vector of float) -0:? Sequence -0:8 'gl_SubgroupSize' ( volatile in uint SubgroupSize) -0:9 'gl_SubgroupInvocationID' ( volatile in uint SubgroupInvocationID) -0:10 subgroupBarrier ( global void) -0:11 subgroupMemoryBarrier ( global void) -0:12 subgroupMemoryBarrierBuffer ( global void) -0:13 subgroupMemoryBarrierImage ( global void) -0:14 subgroupElect ( global bool) -0:15 'gl_NumSubgroups' ( temp float) -0:16 'gl_SubgroupID' ( temp float) -0:17 Constant: -0:17 0.000000 -0:19 subgroupAll ( global bool) -0:19 Constant: -0:19 true (const bool) -0:20 subgroupAny ( global bool) -0:20 Constant: -0:20 false (const bool) -0:21 subgroupAllEqual ( global bool) -0:21 'f4' ( in 4-component vector of float) -0:23 'gl_SubgroupEqMask' ( volatile in 4-component vector of uint SubgroupEqMask) -0:24 'gl_SubgroupGeMask' ( volatile in 4-component vector of uint SubgroupGeMask) -0:25 'gl_SubgroupGtMask' ( volatile in 4-component vector of uint SubgroupGtMask) -0:26 'gl_SubgroupLeMask' ( volatile in 4-component vector of uint SubgroupLeMask) -0:27 'gl_SubgroupLtMask' ( volatile in 4-component vector of uint SubgroupLtMask) -0:28 subgroupBroadcast ( global 4-component vector of float) -0:28 'f4' ( in 4-component vector of float) -0:28 Constant: -0:28 0 (const uint) -0:29 subgroupBroadcastFirst ( global 4-component vector of float) -0:29 'f4' ( in 4-component vector of float) -0:30 Sequence -0:30 move second child to first child ( temp 4-component vector of uint) -0:30 'ballot' ( temp 4-component vector of uint) -0:30 subgroupBallot ( global 4-component vector of uint) -0:30 Constant: -0:30 false (const bool) -0:31 subgroupInverseBallot ( global bool) -0:31 Constant: -0:31 1 (const uint) -0:31 1 (const uint) -0:31 1 (const uint) -0:31 1 (const uint) -0:32 subgroupBallotBitExtract ( global bool) -0:32 'ballot' ( temp 4-component vector of uint) -0:32 Constant: -0:32 0 (const uint) -0:33 subgroupBallotBitCount ( global uint) -0:33 'ballot' ( temp 4-component vector of uint) -0:34 subgroupBallotInclusiveBitCount ( global uint) -0:34 'ballot' ( temp 4-component vector of uint) -0:35 subgroupBallotExclusiveBitCount ( global uint) -0:35 'ballot' ( temp 4-component vector of uint) -0:36 subgroupBallotFindLSB ( global uint) -0:36 'ballot' ( temp 4-component vector of uint) -0:37 subgroupBallotFindMSB ( global uint) -0:37 'ballot' ( temp 4-component vector of uint) -0:39 subgroupShuffle ( global 4-component vector of float) -0:39 'f4' ( in 4-component vector of float) -0:39 Constant: -0:39 0 (const uint) -0:40 subgroupShuffleXor ( global 4-component vector of float) -0:40 'f4' ( in 4-component vector of float) -0:40 Constant: -0:40 1 (const uint) -0:41 subgroupShuffleUp ( global 4-component vector of float) -0:41 'f4' ( in 4-component vector of float) -0:41 Constant: -0:41 1 (const uint) -0:42 subgroupShuffleDown ( global 4-component vector of float) -0:42 'f4' ( in 4-component vector of float) -0:42 Constant: -0:42 1 (const uint) -0:44 move second child to first child ( temp 4-component vector of float) -0:44 'result' ( temp 4-component vector of float) -0:44 subgroupAdd ( global 4-component vector of float) -0:44 'f4' ( in 4-component vector of float) -0:45 subgroupMul ( global 4-component vector of float) -0:45 'f4' ( in 4-component vector of float) -0:46 subgroupMin ( global 4-component vector of float) -0:46 'f4' ( in 4-component vector of float) -0:47 subgroupMax ( global 4-component vector of float) -0:47 'f4' ( in 4-component vector of float) -0:48 subgroupAnd ( global 4-component vector of uint) -0:48 'ballot' ( temp 4-component vector of uint) -0:49 subgroupOr ( global 4-component vector of uint) -0:49 'ballot' ( temp 4-component vector of uint) -0:50 subgroupXor ( global 4-component vector of uint) -0:50 'ballot' ( temp 4-component vector of uint) -0:51 subgroupInclusiveAdd ( global 4-component vector of float) -0:51 'f4' ( in 4-component vector of float) -0:52 subgroupInclusiveMul ( global 4-component vector of float) -0:52 'f4' ( in 4-component vector of float) -0:53 subgroupInclusiveMin ( global 4-component vector of float) -0:53 'f4' ( in 4-component vector of float) -0:54 subgroupInclusiveMax ( global 4-component vector of float) -0:54 'f4' ( in 4-component vector of float) -0:55 subgroupInclusiveAnd ( global 4-component vector of uint) -0:55 'ballot' ( temp 4-component vector of uint) -0:56 subgroupInclusiveOr ( global 4-component vector of uint) -0:56 'ballot' ( temp 4-component vector of uint) -0:57 subgroupInclusiveXor ( global 4-component vector of uint) -0:57 'ballot' ( temp 4-component vector of uint) -0:58 subgroupExclusiveAdd ( global 4-component vector of float) -0:58 'f4' ( in 4-component vector of float) -0:59 subgroupExclusiveMul ( global 4-component vector of float) -0:59 'f4' ( in 4-component vector of float) -0:60 subgroupExclusiveMin ( global 4-component vector of float) -0:60 'f4' ( in 4-component vector of float) -0:61 subgroupExclusiveMax ( global 4-component vector of float) -0:61 'f4' ( in 4-component vector of float) -0:62 subgroupExclusiveAnd ( global 4-component vector of uint) -0:62 'ballot' ( temp 4-component vector of uint) -0:63 subgroupExclusiveOr ( global 4-component vector of uint) -0:63 'ballot' ( temp 4-component vector of uint) -0:64 subgroupExclusiveXor ( global 4-component vector of uint) -0:64 'ballot' ( temp 4-component vector of uint) -0:66 subgroupClusteredAdd ( global 4-component vector of float) -0:66 'f4' ( in 4-component vector of float) -0:66 Constant: -0:66 2 (const uint) -0:67 subgroupClusteredMul ( global 4-component vector of float) -0:67 'f4' ( in 4-component vector of float) -0:67 Constant: -0:67 2 (const uint) -0:68 subgroupClusteredMin ( global 4-component vector of float) -0:68 'f4' ( in 4-component vector of float) -0:68 Constant: -0:68 2 (const uint) -0:69 subgroupClusteredMax ( global 4-component vector of float) -0:69 'f4' ( in 4-component vector of float) -0:69 Constant: -0:69 2 (const uint) -0:70 subgroupClusteredAnd ( global 4-component vector of uint) -0:70 'ballot' ( temp 4-component vector of uint) -0:70 Constant: -0:70 2 (const uint) -0:71 subgroupClusteredOr ( global 4-component vector of uint) -0:71 'ballot' ( temp 4-component vector of uint) -0:71 Constant: -0:71 2 (const uint) -0:72 subgroupClusteredXor ( global 4-component vector of uint) -0:72 'ballot' ( temp 4-component vector of uint) -0:72 Constant: -0:72 2 (const uint) -0:74 subgroupQuadBroadcast ( global 4-component vector of float) -0:74 'f4' ( in 4-component vector of float) -0:74 Constant: -0:74 0 (const uint) -0:75 subgroupQuadSwapHorizontal ( global 4-component vector of float) -0:75 'f4' ( in 4-component vector of float) -0:76 subgroupQuadSwapVertical ( global 4-component vector of float) -0:76 'f4' ( in 4-component vector of float) -0:77 subgroupQuadSwapDiagonal ( global 4-component vector of float) -0:77 'f4' ( in 4-component vector of float) -0:79 Sequence -0:79 move second child to first child ( temp 4-component vector of uint) -0:79 'parti' ( temp 4-component vector of uint) -0:79 subgroupPartitionNV ( global 4-component vector of uint) -0:79 'f4' ( in 4-component vector of float) -0:80 subgroupPartitionedAddNV ( global 4-component vector of float) -0:80 'f4' ( in 4-component vector of float) -0:80 'parti' ( temp 4-component vector of uint) -0:81 subgroupPartitionedMulNV ( global 4-component vector of float) -0:81 'f4' ( in 4-component vector of float) -0:81 'parti' ( temp 4-component vector of uint) -0:82 subgroupPartitionedMinNV ( global 4-component vector of float) -0:82 'f4' ( in 4-component vector of float) -0:82 'parti' ( temp 4-component vector of uint) -0:83 subgroupPartitionedMaxNV ( global 4-component vector of float) -0:83 'f4' ( in 4-component vector of float) -0:83 'parti' ( temp 4-component vector of uint) -0:84 subgroupPartitionedAndNV ( global 4-component vector of uint) -0:84 'ballot' ( temp 4-component vector of uint) -0:84 'parti' ( temp 4-component vector of uint) -0:85 subgroupPartitionedOrNV ( global 4-component vector of uint) -0:85 'ballot' ( temp 4-component vector of uint) -0:85 'parti' ( temp 4-component vector of uint) -0:86 subgroupPartitionedXorNV ( global 4-component vector of uint) -0:86 'ballot' ( temp 4-component vector of uint) -0:86 'parti' ( temp 4-component vector of uint) -0:87 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float) -0:87 'f4' ( in 4-component vector of float) -0:87 'parti' ( temp 4-component vector of uint) -0:88 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float) -0:88 'f4' ( in 4-component vector of float) -0:88 'parti' ( temp 4-component vector of uint) -0:89 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float) -0:89 'f4' ( in 4-component vector of float) -0:89 'parti' ( temp 4-component vector of uint) -0:90 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float) -0:90 'f4' ( in 4-component vector of float) -0:90 'parti' ( temp 4-component vector of uint) -0:91 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint) -0:91 'ballot' ( temp 4-component vector of uint) -0:91 'parti' ( temp 4-component vector of uint) -0:92 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint) -0:92 'ballot' ( temp 4-component vector of uint) -0:92 'parti' ( temp 4-component vector of uint) -0:93 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint) -0:93 'ballot' ( temp 4-component vector of uint) -0:93 'parti' ( temp 4-component vector of uint) -0:94 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float) -0:94 'f4' ( in 4-component vector of float) -0:94 'parti' ( temp 4-component vector of uint) -0:95 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float) -0:95 'f4' ( in 4-component vector of float) -0:95 'parti' ( temp 4-component vector of uint) -0:96 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float) -0:96 'f4' ( in 4-component vector of float) -0:96 'parti' ( temp 4-component vector of uint) -0:97 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float) -0:97 'f4' ( in 4-component vector of float) -0:97 'parti' ( temp 4-component vector of uint) -0:98 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint) -0:98 'ballot' ( temp 4-component vector of uint) -0:98 'parti' ( temp 4-component vector of uint) -0:99 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint) -0:99 'ballot' ( temp 4-component vector of uint) -0:99 'parti' ( temp 4-component vector of uint) -0:100 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint) -0:100 'ballot' ( temp 4-component vector of uint) -0:100 'parti' ( temp 4-component vector of uint) -0:102 Branch: Return with expression -0:102 'result' ( temp 4-component vector of float) -0:109 Function Definition: main( ( global void) -0:109 Function Parameters: -0:111 Sequence -0:111 Sequence -0:111 move second child to first child ( temp 3-component vector of uint) -0:111 'v0' ( temp 3-component vector of uint) -0:111 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV) -0:112 Sequence -0:112 move second child to first child ( temp 3-component vector of uint) -0:112 'v1' ( temp 3-component vector of uint) -0:112 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV) -0:113 Sequence -0:113 move second child to first child ( temp 3-component vector of float) -0:113 'v2' ( temp 3-component vector of float) -0:113 'gl_WorldRayOriginNV' ( in 3-component vector of float WorldRayOriginNV) -0:114 Sequence -0:114 move second child to first child ( temp 3-component vector of float) -0:114 'v3' ( temp 3-component vector of float) -0:114 'gl_WorldRayDirectionNV' ( in 3-component vector of float WorldRayDirectionNV) -0:115 Sequence -0:115 move second child to first child ( temp 3-component vector of float) -0:115 'v4' ( temp 3-component vector of float) -0:115 'gl_ObjectRayOriginNV' ( in 3-component vector of float ObjectRayOriginNV) -0:116 Sequence -0:116 move second child to first child ( temp 3-component vector of float) -0:116 'v5' ( temp 3-component vector of float) -0:116 'gl_ObjectRayDirectionNV' ( in 3-component vector of float ObjectRayDirectionNV) -0:117 Sequence -0:117 move second child to first child ( temp float) -0:117 'v6' ( temp float) -0:117 'gl_RayTminNV' ( in float ObjectRayTminNV) -0:118 Sequence -0:118 move second child to first child ( temp float) -0:118 'v7' ( temp float) -0:118 'gl_RayTmaxNV' ( in float ObjectRayTmaxNV) -0:119 traceNV ( global void) -0:119 'accNV' (layout( set=0 binding=0) uniform accelerationStructureNV) -0:119 Constant: -0:119 0 (const uint) -0:119 Constant: -0:119 1 (const uint) -0:119 Constant: -0:119 2 (const uint) -0:119 Constant: -0:119 3 (const uint) -0:119 Constant: -0:119 0 (const uint) -0:119 Constant: -0:119 0.500000 -0:119 0.500000 -0:119 0.500000 -0:119 Constant: -0:119 0.500000 -0:119 Constant: -0:119 1.000000 -0:119 1.000000 -0:119 1.000000 -0:119 Constant: -0:119 0.750000 -0:119 Constant: -0:119 1 (const int) -0:123 Function Definition: basic_works( ( global void) -0:123 Function Parameters: -0:125 Sequence -0:125 'gl_SubgroupSize' ( volatile in uint SubgroupSize) -0:126 'gl_SubgroupInvocationID' ( volatile in uint SubgroupInvocationID) -0:127 subgroupBarrier ( global void) -0:128 subgroupMemoryBarrier ( global void) -0:129 subgroupMemoryBarrierBuffer ( global void) -0:130 subgroupMemoryBarrierImage ( global void) -0:131 subgroupElect ( global bool) -0:135 Function Definition: ballot_works(vf4; ( global void) -0:135 Function Parameters: -0:135 'f4' ( in 4-component vector of float) -0:136 Sequence -0:136 'gl_SubgroupEqMask' ( volatile in 4-component vector of uint SubgroupEqMask) -0:137 'gl_SubgroupGeMask' ( volatile in 4-component vector of uint SubgroupGeMask) -0:138 'gl_SubgroupGtMask' ( volatile in 4-component vector of uint SubgroupGtMask) -0:139 'gl_SubgroupLeMask' ( volatile in 4-component vector of uint SubgroupLeMask) -0:140 'gl_SubgroupLtMask' ( volatile in 4-component vector of uint SubgroupLtMask) -0:141 subgroupBroadcast ( global 4-component vector of float) -0:141 'f4' ( in 4-component vector of float) -0:141 Constant: -0:141 0 (const uint) -0:142 subgroupBroadcastFirst ( global 4-component vector of float) -0:142 'f4' ( in 4-component vector of float) -0:143 Sequence -0:143 move second child to first child ( temp 4-component vector of uint) -0:143 'ballot' ( temp 4-component vector of uint) -0:143 subgroupBallot ( global 4-component vector of uint) -0:143 Constant: -0:143 false (const bool) -0:144 subgroupInverseBallot ( global bool) -0:144 Constant: -0:144 1 (const uint) -0:144 1 (const uint) -0:144 1 (const uint) -0:144 1 (const uint) -0:145 subgroupBallotBitExtract ( global bool) -0:145 'ballot' ( temp 4-component vector of uint) -0:145 Constant: -0:145 0 (const uint) -0:146 subgroupBallotBitCount ( global uint) -0:146 'ballot' ( temp 4-component vector of uint) -0:147 subgroupBallotInclusiveBitCount ( global uint) -0:147 'ballot' ( temp 4-component vector of uint) -0:148 subgroupBallotExclusiveBitCount ( global uint) -0:148 'ballot' ( temp 4-component vector of uint) -0:149 subgroupBallotFindLSB ( global uint) -0:149 'ballot' ( temp 4-component vector of uint) -0:150 subgroupBallotFindMSB ( global uint) -0:150 'ballot' ( temp 4-component vector of uint) -0:154 Function Definition: vote_works(vf4; ( global void) -0:154 Function Parameters: -0:154 'f4' ( in 4-component vector of float) -0:156 Sequence -0:156 subgroupAll ( global bool) -0:156 Constant: -0:156 true (const bool) -0:157 subgroupAny ( global bool) -0:157 Constant: -0:157 false (const bool) -0:158 subgroupAllEqual ( global bool) -0:158 'f4' ( in 4-component vector of float) -0:163 Function Definition: shuffle_works(vf4; ( global void) -0:163 Function Parameters: -0:163 'f4' ( in 4-component vector of float) -0:165 Sequence -0:165 subgroupShuffle ( global 4-component vector of float) -0:165 'f4' ( in 4-component vector of float) -0:165 Constant: -0:165 0 (const uint) -0:166 subgroupShuffleXor ( global 4-component vector of float) -0:166 'f4' ( in 4-component vector of float) -0:166 Constant: -0:166 1 (const uint) -0:167 subgroupShuffleUp ( global 4-component vector of float) -0:167 'f4' ( in 4-component vector of float) -0:167 Constant: -0:167 1 (const uint) -0:168 subgroupShuffleDown ( global 4-component vector of float) -0:168 'f4' ( in 4-component vector of float) -0:168 Constant: -0:168 1 (const uint) -0:172 Function Definition: arith_works(vf4; ( global void) -0:172 Function Parameters: -0:172 'f4' ( in 4-component vector of float) -0:? Sequence -0:175 subgroupAdd ( global 4-component vector of float) -0:175 'f4' ( in 4-component vector of float) -0:176 subgroupMul ( global 4-component vector of float) -0:176 'f4' ( in 4-component vector of float) -0:177 subgroupMin ( global 4-component vector of float) -0:177 'f4' ( in 4-component vector of float) -0:178 subgroupMax ( global 4-component vector of float) -0:178 'f4' ( in 4-component vector of float) -0:179 subgroupAnd ( global 4-component vector of uint) -0:179 'ballot' ( temp 4-component vector of uint) -0:180 subgroupOr ( global 4-component vector of uint) -0:180 'ballot' ( temp 4-component vector of uint) -0:181 subgroupXor ( global 4-component vector of uint) -0:181 'ballot' ( temp 4-component vector of uint) -0:182 subgroupInclusiveAdd ( global 4-component vector of float) -0:182 'f4' ( in 4-component vector of float) -0:183 subgroupInclusiveMul ( global 4-component vector of float) -0:183 'f4' ( in 4-component vector of float) -0:184 subgroupInclusiveMin ( global 4-component vector of float) -0:184 'f4' ( in 4-component vector of float) -0:185 subgroupInclusiveMax ( global 4-component vector of float) -0:185 'f4' ( in 4-component vector of float) -0:186 subgroupInclusiveAnd ( global 4-component vector of uint) -0:186 'ballot' ( temp 4-component vector of uint) -0:187 subgroupInclusiveOr ( global 4-component vector of uint) -0:187 'ballot' ( temp 4-component vector of uint) -0:188 subgroupInclusiveXor ( global 4-component vector of uint) -0:188 'ballot' ( temp 4-component vector of uint) -0:189 subgroupExclusiveAdd ( global 4-component vector of float) -0:189 'f4' ( in 4-component vector of float) -0:190 subgroupExclusiveMul ( global 4-component vector of float) -0:190 'f4' ( in 4-component vector of float) -0:191 subgroupExclusiveMin ( global 4-component vector of float) -0:191 'f4' ( in 4-component vector of float) -0:192 subgroupExclusiveMax ( global 4-component vector of float) -0:192 'f4' ( in 4-component vector of float) -0:193 subgroupExclusiveAnd ( global 4-component vector of uint) -0:193 'ballot' ( temp 4-component vector of uint) -0:194 subgroupExclusiveOr ( global 4-component vector of uint) -0:194 'ballot' ( temp 4-component vector of uint) -0:195 subgroupExclusiveXor ( global 4-component vector of uint) -0:195 'ballot' ( temp 4-component vector of uint) -0:199 Function Definition: clustered_works(vf4; ( global void) -0:199 Function Parameters: -0:199 'f4' ( in 4-component vector of float) -0:201 Sequence -0:201 Sequence -0:201 move second child to first child ( temp 4-component vector of uint) -0:201 'ballot' ( temp 4-component vector of uint) -0:201 Constant: -0:201 85 (const uint) -0:201 0 (const uint) -0:201 0 (const uint) -0:201 0 (const uint) -0:202 subgroupClusteredAdd ( global 4-component vector of float) -0:202 'f4' ( in 4-component vector of float) -0:202 Constant: -0:202 2 (const uint) -0:203 subgroupClusteredMul ( global 4-component vector of float) -0:203 'f4' ( in 4-component vector of float) -0:203 Constant: -0:203 2 (const uint) -0:204 subgroupClusteredMin ( global 4-component vector of float) -0:204 'f4' ( in 4-component vector of float) -0:204 Constant: -0:204 2 (const uint) -0:205 subgroupClusteredMax ( global 4-component vector of float) -0:205 'f4' ( in 4-component vector of float) -0:205 Constant: -0:205 2 (const uint) -0:206 subgroupClusteredAnd ( global 4-component vector of uint) -0:206 'ballot' ( temp 4-component vector of uint) -0:206 Constant: -0:206 2 (const uint) -0:207 subgroupClusteredOr ( global 4-component vector of uint) -0:207 'ballot' ( temp 4-component vector of uint) -0:207 Constant: -0:207 2 (const uint) -0:208 subgroupClusteredXor ( global 4-component vector of uint) -0:208 'ballot' ( temp 4-component vector of uint) -0:208 Constant: -0:208 2 (const uint) -0:212 Function Definition: quad_works(vf4; ( global void) -0:212 Function Parameters: -0:212 'f4' ( in 4-component vector of float) -0:214 Sequence -0:214 subgroupQuadBroadcast ( global 4-component vector of float) -0:214 'f4' ( in 4-component vector of float) -0:214 Constant: -0:214 0 (const uint) -0:215 subgroupQuadSwapHorizontal ( global 4-component vector of float) -0:215 'f4' ( in 4-component vector of float) -0:216 subgroupQuadSwapVertical ( global 4-component vector of float) -0:216 'f4' ( in 4-component vector of float) -0:217 subgroupQuadSwapDiagonal ( global 4-component vector of float) -0:217 'f4' ( in 4-component vector of float) -0:221 Function Definition: partitioned_works(vf4; ( global void) -0:221 Function Parameters: -0:221 'f4' ( in 4-component vector of float) -0:223 Sequence -0:223 Sequence -0:223 move second child to first child ( temp 4-component vector of uint) -0:223 'parti' ( temp 4-component vector of uint) -0:223 subgroupPartitionNV ( global 4-component vector of uint) -0:223 'f4' ( in 4-component vector of float) -0:224 Sequence -0:224 move second child to first child ( temp 4-component vector of uint) -0:224 'ballot' ( temp 4-component vector of uint) -0:224 Constant: -0:224 85 (const uint) -0:224 0 (const uint) -0:224 0 (const uint) -0:224 0 (const uint) -0:225 subgroupPartitionedAddNV ( global 4-component vector of float) -0:225 'f4' ( in 4-component vector of float) -0:225 'parti' ( temp 4-component vector of uint) -0:226 subgroupPartitionedMulNV ( global 4-component vector of float) -0:226 'f4' ( in 4-component vector of float) -0:226 'parti' ( temp 4-component vector of uint) -0:227 subgroupPartitionedMinNV ( global 4-component vector of float) -0:227 'f4' ( in 4-component vector of float) -0:227 'parti' ( temp 4-component vector of uint) -0:228 subgroupPartitionedMaxNV ( global 4-component vector of float) -0:228 'f4' ( in 4-component vector of float) -0:228 'parti' ( temp 4-component vector of uint) -0:229 subgroupPartitionedAndNV ( global 4-component vector of uint) -0:229 'ballot' ( temp 4-component vector of uint) -0:229 'parti' ( temp 4-component vector of uint) -0:230 subgroupPartitionedOrNV ( global 4-component vector of uint) -0:230 'ballot' ( temp 4-component vector of uint) -0:230 'parti' ( temp 4-component vector of uint) -0:231 subgroupPartitionedXorNV ( global 4-component vector of uint) -0:231 'ballot' ( temp 4-component vector of uint) -0:231 'parti' ( temp 4-component vector of uint) -0:232 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float) -0:232 'f4' ( in 4-component vector of float) -0:232 'parti' ( temp 4-component vector of uint) -0:233 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float) -0:233 'f4' ( in 4-component vector of float) -0:233 'parti' ( temp 4-component vector of uint) -0:234 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float) -0:234 'f4' ( in 4-component vector of float) -0:234 'parti' ( temp 4-component vector of uint) -0:235 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float) -0:235 'f4' ( in 4-component vector of float) -0:235 'parti' ( temp 4-component vector of uint) -0:236 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint) -0:236 'ballot' ( temp 4-component vector of uint) -0:236 'parti' ( temp 4-component vector of uint) -0:237 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint) -0:237 'ballot' ( temp 4-component vector of uint) -0:237 'parti' ( temp 4-component vector of uint) -0:238 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint) -0:238 'ballot' ( temp 4-component vector of uint) -0:238 'parti' ( temp 4-component vector of uint) -0:239 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float) -0:239 'f4' ( in 4-component vector of float) -0:239 'parti' ( temp 4-component vector of uint) -0:240 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float) -0:240 'f4' ( in 4-component vector of float) -0:240 'parti' ( temp 4-component vector of uint) -0:241 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float) -0:241 'f4' ( in 4-component vector of float) -0:241 'parti' ( temp 4-component vector of uint) -0:242 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float) -0:242 'f4' ( in 4-component vector of float) -0:242 'parti' ( temp 4-component vector of uint) -0:243 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint) -0:243 'ballot' ( temp 4-component vector of uint) -0:243 'parti' ( temp 4-component vector of uint) -0:244 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint) -0:244 'ballot' ( temp 4-component vector of uint) -0:244 'parti' ( temp 4-component vector of uint) -0:245 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint) -0:245 'ballot' ( temp 4-component vector of uint) -0:245 'parti' ( temp 4-component vector of uint) -0:249 Function Definition: sm_builtins_err( ( global void) -0:249 Function Parameters: -0:251 Sequence -0:251 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV) -0:252 'gl_SMCountNV' ( in uint SMCountNV) -0:253 'gl_WarpIDNV' ( volatile in uint WarpIDNV) -0:254 'gl_SMIDNV' ( volatile in uint SMIDNV) -0:261 Function Definition: sm_builtins( ( global void) -0:261 Function Parameters: -0:263 Sequence -0:263 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV) -0:264 'gl_SMCountNV' ( in uint SMCountNV) -0:265 'gl_WarpIDNV' ( volatile in uint WarpIDNV) -0:266 'gl_SMIDNV' ( volatile in uint SMIDNV) -0:? Linker Objects -0:? 'accNV' (layout( set=0 binding=0) uniform accelerationStructureNV) -0:? 'localPayload' (layout( location=0) rayPayloadNV 4-component vector of float) -0:? 'incomingPayload' (layout( location=1) rayPayloadInNV 4-component vector of float) - - -Linked miss stage: - - -Shader version: 460 -Requested GL_KHR_shader_subgroup_arithmetic -Requested GL_KHR_shader_subgroup_ballot -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_clustered -Requested GL_KHR_shader_subgroup_quad -Requested GL_KHR_shader_subgroup_shuffle -Requested GL_KHR_shader_subgroup_shuffle_relative -Requested GL_KHR_shader_subgroup_vote -Requested GL_NV_ray_tracing -Requested GL_NV_shader_sm_builtins -Requested GL_NV_shader_subgroup_partitioned -ERROR: node is still EOpNull! -0:109 Function Definition: main( ( global void) -0:109 Function Parameters: -0:111 Sequence -0:111 Sequence -0:111 move second child to first child ( temp 3-component vector of uint) -0:111 'v0' ( temp 3-component vector of uint) -0:111 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV) -0:112 Sequence -0:112 move second child to first child ( temp 3-component vector of uint) -0:112 'v1' ( temp 3-component vector of uint) -0:112 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV) -0:113 Sequence -0:113 move second child to first child ( temp 3-component vector of float) -0:113 'v2' ( temp 3-component vector of float) -0:113 'gl_WorldRayOriginNV' ( in 3-component vector of float WorldRayOriginNV) -0:114 Sequence -0:114 move second child to first child ( temp 3-component vector of float) -0:114 'v3' ( temp 3-component vector of float) -0:114 'gl_WorldRayDirectionNV' ( in 3-component vector of float WorldRayDirectionNV) -0:115 Sequence -0:115 move second child to first child ( temp 3-component vector of float) -0:115 'v4' ( temp 3-component vector of float) -0:115 'gl_ObjectRayOriginNV' ( in 3-component vector of float ObjectRayOriginNV) -0:116 Sequence -0:116 move second child to first child ( temp 3-component vector of float) -0:116 'v5' ( temp 3-component vector of float) -0:116 'gl_ObjectRayDirectionNV' ( in 3-component vector of float ObjectRayDirectionNV) -0:117 Sequence -0:117 move second child to first child ( temp float) -0:117 'v6' ( temp float) -0:117 'gl_RayTminNV' ( in float ObjectRayTminNV) -0:118 Sequence -0:118 move second child to first child ( temp float) -0:118 'v7' ( temp float) -0:118 'gl_RayTmaxNV' ( in float ObjectRayTmaxNV) -0:119 traceNV ( global void) -0:119 'accNV' (layout( set=0 binding=0) uniform accelerationStructureNV) -0:119 Constant: -0:119 0 (const uint) -0:119 Constant: -0:119 1 (const uint) -0:119 Constant: -0:119 2 (const uint) -0:119 Constant: -0:119 3 (const uint) -0:119 Constant: -0:119 0 (const uint) -0:119 Constant: -0:119 0.500000 -0:119 0.500000 -0:119 0.500000 -0:119 Constant: -0:119 0.500000 -0:119 Constant: -0:119 1.000000 -0:119 1.000000 -0:119 1.000000 -0:119 Constant: -0:119 0.750000 -0:119 Constant: -0:119 1 (const int) -0:? Linker Objects -0:? 'accNV' (layout( set=0 binding=0) uniform accelerationStructureNV) -0:? 'localPayload' (layout( location=0) rayPayloadNV 4-component vector of float) -0:? 'incomingPayload' (layout( location=1) rayPayloadInNV 4-component vector of float) - diff --git a/deps/glslang/Test/baseResults/glsl.460.subgroup.task.out b/deps/glslang/Test/baseResults/glsl.460.subgroup.task.out deleted file mode 100644 index 8d2a1d39..00000000 --- a/deps/glslang/Test/baseResults/glsl.460.subgroup.task.out +++ /dev/null @@ -1,923 +0,0 @@ -glsl.460.subgroup.task -ERROR: 0:6: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:7: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:8: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:9: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:10: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:11: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:12: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:13: 'gl_NumSubgroups' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:14: 'gl_SubgroupID' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:15: 'subgroupMemoryBarrierShared' : required extension not requested: GL_KHR_shader_subgroup_basic -ERROR: 0:17: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:18: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:19: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote -ERROR: 0:21: 'gl_SubgroupEqMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:22: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:23: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:24: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:25: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:26: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:27: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:28: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:29: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:30: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:31: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:32: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:33: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:34: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:35: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot -ERROR: 0:37: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle -ERROR: 0:38: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle -ERROR: 0:39: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative -ERROR: 0:40: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative -ERROR: 0:42: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:43: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:44: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:45: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:46: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:47: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:48: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:49: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:50: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:51: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:52: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:53: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:54: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:55: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:56: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:57: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:58: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:59: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:60: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:61: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:62: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic -ERROR: 0:64: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:65: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:66: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:67: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:68: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:69: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:70: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered -ERROR: 0:72: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:73: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:74: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:75: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad -ERROR: 0:77: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:78: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:79: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:80: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:81: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:82: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:83: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:84: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:85: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:86: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:87: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:88: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:89: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:90: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:91: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:92: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:93: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:94: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned -ERROR: 0:288: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:289: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:290: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:291: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 90 compilation errors. No code generated. - - -Shader version: 460 -Requested GL_KHR_shader_subgroup_arithmetic -Requested GL_KHR_shader_subgroup_ballot -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_clustered -Requested GL_KHR_shader_subgroup_quad -Requested GL_KHR_shader_subgroup_shuffle -Requested GL_KHR_shader_subgroup_shuffle_relative -Requested GL_KHR_shader_subgroup_vote -Requested GL_NV_mesh_shader -Requested GL_NV_shader_sm_builtins -Requested GL_NV_shader_subgroup_partitioned -local_size = (32, 1, 1) -ERROR: node is still EOpNull! -0:3 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float) -0:3 Function Parameters: -0:3 'f4' ( in 4-component vector of float) -0:? Sequence -0:6 'gl_SubgroupSize' ( in uint SubgroupSize) -0:7 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:8 subgroupBarrier ( global void) -0:9 subgroupMemoryBarrier ( global void) -0:10 subgroupMemoryBarrierBuffer ( global void) -0:11 subgroupMemoryBarrierImage ( global void) -0:12 subgroupElect ( global bool) -0:13 'gl_NumSubgroups' ( in uint NumSubgroups) -0:14 'gl_SubgroupID' ( in uint SubgroupID) -0:15 subgroupMemoryBarrierShared ( global void) -0:17 subgroupAll ( global bool) -0:17 Constant: -0:17 true (const bool) -0:18 subgroupAny ( global bool) -0:18 Constant: -0:18 false (const bool) -0:19 subgroupAllEqual ( global bool) -0:19 'f4' ( in 4-component vector of float) -0:21 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask) -0:22 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask) -0:23 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask) -0:24 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask) -0:25 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask) -0:26 subgroupBroadcast ( global 4-component vector of float) -0:26 'f4' ( in 4-component vector of float) -0:26 Constant: -0:26 0 (const uint) -0:27 subgroupBroadcastFirst ( global 4-component vector of float) -0:27 'f4' ( in 4-component vector of float) -0:28 Sequence -0:28 move second child to first child ( temp 4-component vector of uint) -0:28 'ballot' ( temp 4-component vector of uint) -0:28 subgroupBallot ( global 4-component vector of uint) -0:28 Constant: -0:28 false (const bool) -0:29 subgroupInverseBallot ( global bool) -0:29 Constant: -0:29 1 (const uint) -0:29 1 (const uint) -0:29 1 (const uint) -0:29 1 (const uint) -0:30 subgroupBallotBitExtract ( global bool) -0:30 'ballot' ( temp 4-component vector of uint) -0:30 Constant: -0:30 0 (const uint) -0:31 subgroupBallotBitCount ( global uint) -0:31 'ballot' ( temp 4-component vector of uint) -0:32 subgroupBallotInclusiveBitCount ( global uint) -0:32 'ballot' ( temp 4-component vector of uint) -0:33 subgroupBallotExclusiveBitCount ( global uint) -0:33 'ballot' ( temp 4-component vector of uint) -0:34 subgroupBallotFindLSB ( global uint) -0:34 'ballot' ( temp 4-component vector of uint) -0:35 subgroupBallotFindMSB ( global uint) -0:35 'ballot' ( temp 4-component vector of uint) -0:37 subgroupShuffle ( global 4-component vector of float) -0:37 'f4' ( in 4-component vector of float) -0:37 Constant: -0:37 0 (const uint) -0:38 subgroupShuffleXor ( global 4-component vector of float) -0:38 'f4' ( in 4-component vector of float) -0:38 Constant: -0:38 1 (const uint) -0:39 subgroupShuffleUp ( global 4-component vector of float) -0:39 'f4' ( in 4-component vector of float) -0:39 Constant: -0:39 1 (const uint) -0:40 subgroupShuffleDown ( global 4-component vector of float) -0:40 'f4' ( in 4-component vector of float) -0:40 Constant: -0:40 1 (const uint) -0:42 move second child to first child ( temp 4-component vector of float) -0:42 'result' ( temp 4-component vector of float) -0:42 subgroupAdd ( global 4-component vector of float) -0:42 'f4' ( in 4-component vector of float) -0:43 subgroupMul ( global 4-component vector of float) -0:43 'f4' ( in 4-component vector of float) -0:44 subgroupMin ( global 4-component vector of float) -0:44 'f4' ( in 4-component vector of float) -0:45 subgroupMax ( global 4-component vector of float) -0:45 'f4' ( in 4-component vector of float) -0:46 subgroupAnd ( global 4-component vector of uint) -0:46 'ballot' ( temp 4-component vector of uint) -0:47 subgroupOr ( global 4-component vector of uint) -0:47 'ballot' ( temp 4-component vector of uint) -0:48 subgroupXor ( global 4-component vector of uint) -0:48 'ballot' ( temp 4-component vector of uint) -0:49 subgroupInclusiveAdd ( global 4-component vector of float) -0:49 'f4' ( in 4-component vector of float) -0:50 subgroupInclusiveMul ( global 4-component vector of float) -0:50 'f4' ( in 4-component vector of float) -0:51 subgroupInclusiveMin ( global 4-component vector of float) -0:51 'f4' ( in 4-component vector of float) -0:52 subgroupInclusiveMax ( global 4-component vector of float) -0:52 'f4' ( in 4-component vector of float) -0:53 subgroupInclusiveAnd ( global 4-component vector of uint) -0:53 'ballot' ( temp 4-component vector of uint) -0:54 subgroupInclusiveOr ( global 4-component vector of uint) -0:54 'ballot' ( temp 4-component vector of uint) -0:55 subgroupInclusiveXor ( global 4-component vector of uint) -0:55 'ballot' ( temp 4-component vector of uint) -0:56 subgroupExclusiveAdd ( global 4-component vector of float) -0:56 'f4' ( in 4-component vector of float) -0:57 subgroupExclusiveMul ( global 4-component vector of float) -0:57 'f4' ( in 4-component vector of float) -0:58 subgroupExclusiveMin ( global 4-component vector of float) -0:58 'f4' ( in 4-component vector of float) -0:59 subgroupExclusiveMax ( global 4-component vector of float) -0:59 'f4' ( in 4-component vector of float) -0:60 subgroupExclusiveAnd ( global 4-component vector of uint) -0:60 'ballot' ( temp 4-component vector of uint) -0:61 subgroupExclusiveOr ( global 4-component vector of uint) -0:61 'ballot' ( temp 4-component vector of uint) -0:62 subgroupExclusiveXor ( global 4-component vector of uint) -0:62 'ballot' ( temp 4-component vector of uint) -0:64 subgroupClusteredAdd ( global 4-component vector of float) -0:64 'f4' ( in 4-component vector of float) -0:64 Constant: -0:64 2 (const uint) -0:65 subgroupClusteredMul ( global 4-component vector of float) -0:65 'f4' ( in 4-component vector of float) -0:65 Constant: -0:65 2 (const uint) -0:66 subgroupClusteredMin ( global 4-component vector of float) -0:66 'f4' ( in 4-component vector of float) -0:66 Constant: -0:66 2 (const uint) -0:67 subgroupClusteredMax ( global 4-component vector of float) -0:67 'f4' ( in 4-component vector of float) -0:67 Constant: -0:67 2 (const uint) -0:68 subgroupClusteredAnd ( global 4-component vector of uint) -0:68 'ballot' ( temp 4-component vector of uint) -0:68 Constant: -0:68 2 (const uint) -0:69 subgroupClusteredOr ( global 4-component vector of uint) -0:69 'ballot' ( temp 4-component vector of uint) -0:69 Constant: -0:69 2 (const uint) -0:70 subgroupClusteredXor ( global 4-component vector of uint) -0:70 'ballot' ( temp 4-component vector of uint) -0:70 Constant: -0:70 2 (const uint) -0:72 subgroupQuadBroadcast ( global 4-component vector of float) -0:72 'f4' ( in 4-component vector of float) -0:72 Constant: -0:72 0 (const uint) -0:73 subgroupQuadSwapHorizontal ( global 4-component vector of float) -0:73 'f4' ( in 4-component vector of float) -0:74 subgroupQuadSwapVertical ( global 4-component vector of float) -0:74 'f4' ( in 4-component vector of float) -0:75 subgroupQuadSwapDiagonal ( global 4-component vector of float) -0:75 'f4' ( in 4-component vector of float) -0:77 Sequence -0:77 move second child to first child ( temp 4-component vector of uint) -0:77 'parti' ( temp 4-component vector of uint) -0:77 subgroupPartitionNV ( global 4-component vector of uint) -0:77 'f4' ( in 4-component vector of float) -0:78 subgroupPartitionedAddNV ( global 4-component vector of float) -0:78 'f4' ( in 4-component vector of float) -0:78 'parti' ( temp 4-component vector of uint) -0:79 subgroupPartitionedMulNV ( global 4-component vector of float) -0:79 'f4' ( in 4-component vector of float) -0:79 'parti' ( temp 4-component vector of uint) -0:80 subgroupPartitionedMinNV ( global 4-component vector of float) -0:80 'f4' ( in 4-component vector of float) -0:80 'parti' ( temp 4-component vector of uint) -0:81 subgroupPartitionedMaxNV ( global 4-component vector of float) -0:81 'f4' ( in 4-component vector of float) -0:81 'parti' ( temp 4-component vector of uint) -0:82 subgroupPartitionedAndNV ( global 4-component vector of uint) -0:82 'ballot' ( temp 4-component vector of uint) -0:82 'parti' ( temp 4-component vector of uint) -0:83 subgroupPartitionedOrNV ( global 4-component vector of uint) -0:83 'ballot' ( temp 4-component vector of uint) -0:83 'parti' ( temp 4-component vector of uint) -0:84 subgroupPartitionedXorNV ( global 4-component vector of uint) -0:84 'ballot' ( temp 4-component vector of uint) -0:84 'parti' ( temp 4-component vector of uint) -0:85 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float) -0:85 'f4' ( in 4-component vector of float) -0:85 'parti' ( temp 4-component vector of uint) -0:86 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float) -0:86 'f4' ( in 4-component vector of float) -0:86 'parti' ( temp 4-component vector of uint) -0:87 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float) -0:87 'f4' ( in 4-component vector of float) -0:87 'parti' ( temp 4-component vector of uint) -0:88 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float) -0:88 'f4' ( in 4-component vector of float) -0:88 'parti' ( temp 4-component vector of uint) -0:89 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint) -0:89 'ballot' ( temp 4-component vector of uint) -0:89 'parti' ( temp 4-component vector of uint) -0:90 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint) -0:90 'ballot' ( temp 4-component vector of uint) -0:90 'parti' ( temp 4-component vector of uint) -0:91 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint) -0:91 'ballot' ( temp 4-component vector of uint) -0:91 'parti' ( temp 4-component vector of uint) -0:92 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float) -0:92 'f4' ( in 4-component vector of float) -0:92 'parti' ( temp 4-component vector of uint) -0:93 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float) -0:93 'f4' ( in 4-component vector of float) -0:93 'parti' ( temp 4-component vector of uint) -0:94 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float) -0:94 'f4' ( in 4-component vector of float) -0:94 'parti' ( temp 4-component vector of uint) -0:95 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float) -0:95 'f4' ( in 4-component vector of float) -0:95 'parti' ( temp 4-component vector of uint) -0:96 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint) -0:96 'ballot' ( temp 4-component vector of uint) -0:96 'parti' ( temp 4-component vector of uint) -0:97 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint) -0:97 'ballot' ( temp 4-component vector of uint) -0:97 'parti' ( temp 4-component vector of uint) -0:98 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint) -0:98 'ballot' ( temp 4-component vector of uint) -0:98 'parti' ( temp 4-component vector of uint) -0:100 Branch: Return with expression -0:100 'result' ( temp 4-component vector of float) -0:127 Function Definition: main( ( global void) -0:127 Function Parameters: -0:129 Sequence -0:129 Sequence -0:129 move second child to first child ( temp uint) -0:129 'iid' ( temp uint) -0:129 direct index ( temp uint) -0:129 'gl_LocalInvocationID' ( in 3-component vector of uint LocalInvocationID) -0:129 Constant: -0:129 0 (const int) -0:130 Sequence -0:130 move second child to first child ( temp uint) -0:130 'gid' ( temp uint) -0:130 direct index ( temp uint) -0:130 'gl_WorkGroupID' ( in 3-component vector of uint WorkGroupID) -0:130 Constant: -0:130 0 (const int) -0:131 Sequence -0:131 move second child to first child ( temp uint) -0:131 'viewID' ( temp uint) -0:131 indirect index ( temp uint MeshViewIndicesNV) -0:131 'gl_MeshViewIndicesNV' ( in 4-element array of uint MeshViewIndicesNV) -0:131 mod ( temp uint) -0:131 'gl_MeshViewCountNV' ( in uint MeshViewCountNV) -0:131 Constant: -0:131 4 (const uint) -0:134 Sequence -0:134 Sequence -0:134 move second child to first child ( temp uint) -0:134 'i' ( temp uint) -0:134 Constant: -0:134 0 (const uint) -0:134 Loop with condition tested first -0:134 Loop Condition -0:134 Compare Less Than ( temp bool) -0:134 'i' ( temp uint) -0:134 Constant: -0:134 10 (const uint) -0:134 Loop Body -0:135 Sequence -0:135 move second child to first child ( temp 4-component vector of float) -0:135 indirect index ( temp 4-component vector of float) -0:135 'mem' ( shared 10-element array of 4-component vector of float) -0:135 'i' ( temp uint) -0:135 Construct vec4 ( temp 4-component vector of float) -0:135 Convert uint to float ( temp float) -0:135 add ( temp uint) -0:135 'i' ( temp uint) -0:135 uni_value: direct index for structure (layout( column_major shared) uniform uint) -0:135 'anon@0' (layout( column_major shared) uniform block{layout( column_major shared) uniform uint uni_value}) -0:135 Constant: -0:135 0 (const uint) -0:134 Loop Terminal Expression -0:134 Pre-Increment ( temp uint) -0:134 'i' ( temp uint) -0:137 imageStore ( global void) -0:137 'uni_image' (layout( binding=0) writeonly uniform image2D) -0:137 Construct ivec2 ( temp 2-component vector of int) -0:137 Convert uint to int ( temp int) -0:137 'iid' ( temp uint) -0:137 indirect index ( temp 4-component vector of float) -0:137 'mem' ( shared 10-element array of 4-component vector of float) -0:137 'gid' ( temp uint) -0:138 imageStore ( global void) -0:138 'uni_image' (layout( binding=0) writeonly uniform image2D) -0:138 Construct ivec2 ( temp 2-component vector of int) -0:138 Convert uint to int ( temp int) -0:138 'iid' ( temp uint) -0:138 indirect index ( temp 4-component vector of float) -0:138 'mem' ( shared 10-element array of 4-component vector of float) -0:138 add ( temp uint) -0:138 'gid' ( temp uint) -0:138 Constant: -0:138 1 (const uint) -0:140 MemoryBarrierShared ( global void) -0:140 Barrier ( global void) -0:144 move second child to first child ( temp 2-component vector of float) -0:144 dummy: direct index for structure (layout( std430 offset=0) taskNV out 2-component vector of float) -0:144 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID}) -0:144 Constant: -0:144 0 (const int) -0:144 Constant: -0:144 30.000000 -0:144 31.000000 -0:145 move second child to first child ( temp 2-component vector of float) -0:145 direct index (layout( std430 offset=8) taskNV temp 2-component vector of float) -0:145 submesh: direct index for structure (layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float) -0:145 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID}) -0:145 Constant: -0:145 1 (const int) -0:145 Constant: -0:145 0 (const int) -0:145 Constant: -0:145 32.000000 -0:145 33.000000 -0:146 move second child to first child ( temp 2-component vector of float) -0:146 direct index (layout( std430 offset=8) taskNV temp 2-component vector of float) -0:146 submesh: direct index for structure (layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float) -0:146 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID}) -0:146 Constant: -0:146 1 (const int) -0:146 Constant: -0:146 1 (const int) -0:146 Constant: -0:146 34.000000 -0:146 35.000000 -0:147 move second child to first child ( temp 2-component vector of float) -0:147 direct index (layout( std430 offset=8) taskNV temp 2-component vector of float) -0:147 submesh: direct index for structure (layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float) -0:147 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID}) -0:147 Constant: -0:147 1 (const int) -0:147 Constant: -0:147 2 (const int) -0:147 indirect index (layout( std430 offset=8) taskNV temp 2-component vector of float) -0:147 submesh: direct index for structure (layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float) -0:147 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID}) -0:147 Constant: -0:147 1 (const int) -0:147 mod ( temp uint) -0:147 'gid' ( temp uint) -0:147 Constant: -0:147 2 (const uint) -0:148 move second child to first child ( temp uint) -0:148 viewID: direct index for structure (layout( std430 offset=32) taskNV out uint) -0:148 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID}) -0:148 Constant: -0:148 2 (const int) -0:148 'viewID' ( temp uint) -0:150 MemoryBarrierShared ( global void) -0:150 Barrier ( global void) -0:153 move second child to first child ( temp uint) -0:153 'gl_TaskCountNV' ( out uint TaskCountNV) -0:153 Constant: -0:153 3 (const uint) -0:157 Function Definition: basic_works( ( global void) -0:157 Function Parameters: -0:159 Sequence -0:159 'gl_SubgroupSize' ( in uint SubgroupSize) -0:160 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:161 subgroupBarrier ( global void) -0:162 subgroupMemoryBarrier ( global void) -0:163 subgroupMemoryBarrierBuffer ( global void) -0:164 subgroupMemoryBarrierImage ( global void) -0:165 subgroupElect ( global bool) -0:166 'gl_NumSubgroups' ( in uint NumSubgroups) -0:167 'gl_SubgroupID' ( in uint SubgroupID) -0:168 subgroupMemoryBarrierShared ( global void) -0:172 Function Definition: ballot_works(vf4; ( global void) -0:172 Function Parameters: -0:172 'f4' ( in 4-component vector of float) -0:173 Sequence -0:173 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask) -0:174 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask) -0:175 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask) -0:176 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask) -0:177 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask) -0:178 subgroupBroadcast ( global 4-component vector of float) -0:178 'f4' ( in 4-component vector of float) -0:178 Constant: -0:178 0 (const uint) -0:179 subgroupBroadcastFirst ( global 4-component vector of float) -0:179 'f4' ( in 4-component vector of float) -0:180 Sequence -0:180 move second child to first child ( temp 4-component vector of uint) -0:180 'ballot' ( temp 4-component vector of uint) -0:180 subgroupBallot ( global 4-component vector of uint) -0:180 Constant: -0:180 false (const bool) -0:181 subgroupInverseBallot ( global bool) -0:181 Constant: -0:181 1 (const uint) -0:181 1 (const uint) -0:181 1 (const uint) -0:181 1 (const uint) -0:182 subgroupBallotBitExtract ( global bool) -0:182 'ballot' ( temp 4-component vector of uint) -0:182 Constant: -0:182 0 (const uint) -0:183 subgroupBallotBitCount ( global uint) -0:183 'ballot' ( temp 4-component vector of uint) -0:184 subgroupBallotInclusiveBitCount ( global uint) -0:184 'ballot' ( temp 4-component vector of uint) -0:185 subgroupBallotExclusiveBitCount ( global uint) -0:185 'ballot' ( temp 4-component vector of uint) -0:186 subgroupBallotFindLSB ( global uint) -0:186 'ballot' ( temp 4-component vector of uint) -0:187 subgroupBallotFindMSB ( global uint) -0:187 'ballot' ( temp 4-component vector of uint) -0:191 Function Definition: vote_works(vf4; ( global void) -0:191 Function Parameters: -0:191 'f4' ( in 4-component vector of float) -0:193 Sequence -0:193 subgroupAll ( global bool) -0:193 Constant: -0:193 true (const bool) -0:194 subgroupAny ( global bool) -0:194 Constant: -0:194 false (const bool) -0:195 subgroupAllEqual ( global bool) -0:195 'f4' ( in 4-component vector of float) -0:200 Function Definition: shuffle_works(vf4; ( global void) -0:200 Function Parameters: -0:200 'f4' ( in 4-component vector of float) -0:202 Sequence -0:202 subgroupShuffle ( global 4-component vector of float) -0:202 'f4' ( in 4-component vector of float) -0:202 Constant: -0:202 0 (const uint) -0:203 subgroupShuffleXor ( global 4-component vector of float) -0:203 'f4' ( in 4-component vector of float) -0:203 Constant: -0:203 1 (const uint) -0:204 subgroupShuffleUp ( global 4-component vector of float) -0:204 'f4' ( in 4-component vector of float) -0:204 Constant: -0:204 1 (const uint) -0:205 subgroupShuffleDown ( global 4-component vector of float) -0:205 'f4' ( in 4-component vector of float) -0:205 Constant: -0:205 1 (const uint) -0:209 Function Definition: arith_works(vf4; ( global void) -0:209 Function Parameters: -0:209 'f4' ( in 4-component vector of float) -0:? Sequence -0:212 subgroupAdd ( global 4-component vector of float) -0:212 'f4' ( in 4-component vector of float) -0:213 subgroupMul ( global 4-component vector of float) -0:213 'f4' ( in 4-component vector of float) -0:214 subgroupMin ( global 4-component vector of float) -0:214 'f4' ( in 4-component vector of float) -0:215 subgroupMax ( global 4-component vector of float) -0:215 'f4' ( in 4-component vector of float) -0:216 subgroupAnd ( global 4-component vector of uint) -0:216 'ballot' ( temp 4-component vector of uint) -0:217 subgroupOr ( global 4-component vector of uint) -0:217 'ballot' ( temp 4-component vector of uint) -0:218 subgroupXor ( global 4-component vector of uint) -0:218 'ballot' ( temp 4-component vector of uint) -0:219 subgroupInclusiveAdd ( global 4-component vector of float) -0:219 'f4' ( in 4-component vector of float) -0:220 subgroupInclusiveMul ( global 4-component vector of float) -0:220 'f4' ( in 4-component vector of float) -0:221 subgroupInclusiveMin ( global 4-component vector of float) -0:221 'f4' ( in 4-component vector of float) -0:222 subgroupInclusiveMax ( global 4-component vector of float) -0:222 'f4' ( in 4-component vector of float) -0:223 subgroupInclusiveAnd ( global 4-component vector of uint) -0:223 'ballot' ( temp 4-component vector of uint) -0:224 subgroupInclusiveOr ( global 4-component vector of uint) -0:224 'ballot' ( temp 4-component vector of uint) -0:225 subgroupInclusiveXor ( global 4-component vector of uint) -0:225 'ballot' ( temp 4-component vector of uint) -0:226 subgroupExclusiveAdd ( global 4-component vector of float) -0:226 'f4' ( in 4-component vector of float) -0:227 subgroupExclusiveMul ( global 4-component vector of float) -0:227 'f4' ( in 4-component vector of float) -0:228 subgroupExclusiveMin ( global 4-component vector of float) -0:228 'f4' ( in 4-component vector of float) -0:229 subgroupExclusiveMax ( global 4-component vector of float) -0:229 'f4' ( in 4-component vector of float) -0:230 subgroupExclusiveAnd ( global 4-component vector of uint) -0:230 'ballot' ( temp 4-component vector of uint) -0:231 subgroupExclusiveOr ( global 4-component vector of uint) -0:231 'ballot' ( temp 4-component vector of uint) -0:232 subgroupExclusiveXor ( global 4-component vector of uint) -0:232 'ballot' ( temp 4-component vector of uint) -0:236 Function Definition: clustered_works(vf4; ( global void) -0:236 Function Parameters: -0:236 'f4' ( in 4-component vector of float) -0:238 Sequence -0:238 Sequence -0:238 move second child to first child ( temp 4-component vector of uint) -0:238 'ballot' ( temp 4-component vector of uint) -0:238 Constant: -0:238 85 (const uint) -0:238 0 (const uint) -0:238 0 (const uint) -0:238 0 (const uint) -0:239 subgroupClusteredAdd ( global 4-component vector of float) -0:239 'f4' ( in 4-component vector of float) -0:239 Constant: -0:239 2 (const uint) -0:240 subgroupClusteredMul ( global 4-component vector of float) -0:240 'f4' ( in 4-component vector of float) -0:240 Constant: -0:240 2 (const uint) -0:241 subgroupClusteredMin ( global 4-component vector of float) -0:241 'f4' ( in 4-component vector of float) -0:241 Constant: -0:241 2 (const uint) -0:242 subgroupClusteredMax ( global 4-component vector of float) -0:242 'f4' ( in 4-component vector of float) -0:242 Constant: -0:242 2 (const uint) -0:243 subgroupClusteredAnd ( global 4-component vector of uint) -0:243 'ballot' ( temp 4-component vector of uint) -0:243 Constant: -0:243 2 (const uint) -0:244 subgroupClusteredOr ( global 4-component vector of uint) -0:244 'ballot' ( temp 4-component vector of uint) -0:244 Constant: -0:244 2 (const uint) -0:245 subgroupClusteredXor ( global 4-component vector of uint) -0:245 'ballot' ( temp 4-component vector of uint) -0:245 Constant: -0:245 2 (const uint) -0:249 Function Definition: quad_works(vf4; ( global void) -0:249 Function Parameters: -0:249 'f4' ( in 4-component vector of float) -0:251 Sequence -0:251 subgroupQuadBroadcast ( global 4-component vector of float) -0:251 'f4' ( in 4-component vector of float) -0:251 Constant: -0:251 0 (const uint) -0:252 subgroupQuadSwapHorizontal ( global 4-component vector of float) -0:252 'f4' ( in 4-component vector of float) -0:253 subgroupQuadSwapVertical ( global 4-component vector of float) -0:253 'f4' ( in 4-component vector of float) -0:254 subgroupQuadSwapDiagonal ( global 4-component vector of float) -0:254 'f4' ( in 4-component vector of float) -0:258 Function Definition: partitioned_works(vf4; ( global void) -0:258 Function Parameters: -0:258 'f4' ( in 4-component vector of float) -0:260 Sequence -0:260 Sequence -0:260 move second child to first child ( temp 4-component vector of uint) -0:260 'parti' ( temp 4-component vector of uint) -0:260 subgroupPartitionNV ( global 4-component vector of uint) -0:260 'f4' ( in 4-component vector of float) -0:261 Sequence -0:261 move second child to first child ( temp 4-component vector of uint) -0:261 'ballot' ( temp 4-component vector of uint) -0:261 Constant: -0:261 85 (const uint) -0:261 0 (const uint) -0:261 0 (const uint) -0:261 0 (const uint) -0:262 subgroupPartitionedAddNV ( global 4-component vector of float) -0:262 'f4' ( in 4-component vector of float) -0:262 'parti' ( temp 4-component vector of uint) -0:263 subgroupPartitionedMulNV ( global 4-component vector of float) -0:263 'f4' ( in 4-component vector of float) -0:263 'parti' ( temp 4-component vector of uint) -0:264 subgroupPartitionedMinNV ( global 4-component vector of float) -0:264 'f4' ( in 4-component vector of float) -0:264 'parti' ( temp 4-component vector of uint) -0:265 subgroupPartitionedMaxNV ( global 4-component vector of float) -0:265 'f4' ( in 4-component vector of float) -0:265 'parti' ( temp 4-component vector of uint) -0:266 subgroupPartitionedAndNV ( global 4-component vector of uint) -0:266 'ballot' ( temp 4-component vector of uint) -0:266 'parti' ( temp 4-component vector of uint) -0:267 subgroupPartitionedOrNV ( global 4-component vector of uint) -0:267 'ballot' ( temp 4-component vector of uint) -0:267 'parti' ( temp 4-component vector of uint) -0:268 subgroupPartitionedXorNV ( global 4-component vector of uint) -0:268 'ballot' ( temp 4-component vector of uint) -0:268 'parti' ( temp 4-component vector of uint) -0:269 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float) -0:269 'f4' ( in 4-component vector of float) -0:269 'parti' ( temp 4-component vector of uint) -0:270 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float) -0:270 'f4' ( in 4-component vector of float) -0:270 'parti' ( temp 4-component vector of uint) -0:271 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float) -0:271 'f4' ( in 4-component vector of float) -0:271 'parti' ( temp 4-component vector of uint) -0:272 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float) -0:272 'f4' ( in 4-component vector of float) -0:272 'parti' ( temp 4-component vector of uint) -0:273 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint) -0:273 'ballot' ( temp 4-component vector of uint) -0:273 'parti' ( temp 4-component vector of uint) -0:274 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint) -0:274 'ballot' ( temp 4-component vector of uint) -0:274 'parti' ( temp 4-component vector of uint) -0:275 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint) -0:275 'ballot' ( temp 4-component vector of uint) -0:275 'parti' ( temp 4-component vector of uint) -0:276 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float) -0:276 'f4' ( in 4-component vector of float) -0:276 'parti' ( temp 4-component vector of uint) -0:277 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float) -0:277 'f4' ( in 4-component vector of float) -0:277 'parti' ( temp 4-component vector of uint) -0:278 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float) -0:278 'f4' ( in 4-component vector of float) -0:278 'parti' ( temp 4-component vector of uint) -0:279 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float) -0:279 'f4' ( in 4-component vector of float) -0:279 'parti' ( temp 4-component vector of uint) -0:280 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint) -0:280 'ballot' ( temp 4-component vector of uint) -0:280 'parti' ( temp 4-component vector of uint) -0:281 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint) -0:281 'ballot' ( temp 4-component vector of uint) -0:281 'parti' ( temp 4-component vector of uint) -0:282 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint) -0:282 'ballot' ( temp 4-component vector of uint) -0:282 'parti' ( temp 4-component vector of uint) -0:286 Function Definition: sm_builtins_err( ( global void) -0:286 Function Parameters: -0:288 Sequence -0:288 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV) -0:289 'gl_SMCountNV' ( in uint SMCountNV) -0:290 'gl_WarpIDNV' ( in uint WarpIDNV) -0:291 'gl_SMIDNV' ( in uint SMIDNV) -0:298 Function Definition: sm_builtins( ( global void) -0:298 Function Parameters: -0:300 Sequence -0:300 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV) -0:301 'gl_SMCountNV' ( in uint SMCountNV) -0:302 'gl_WarpIDNV' ( in uint WarpIDNV) -0:303 'gl_SMIDNV' ( in uint SMIDNV) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize) -0:? 32 (const uint) -0:? 1 (const uint) -0:? 1 (const uint) -0:? 'uni_image' (layout( binding=0) writeonly uniform image2D) -0:? 'anon@0' (layout( column_major shared) uniform block{layout( column_major shared) uniform uint uni_value}) -0:? 'mem' ( shared 10-element array of 4-component vector of float) -0:? 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID}) - - -Linked task stage: - - -Shader version: 460 -Requested GL_KHR_shader_subgroup_arithmetic -Requested GL_KHR_shader_subgroup_ballot -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_clustered -Requested GL_KHR_shader_subgroup_quad -Requested GL_KHR_shader_subgroup_shuffle -Requested GL_KHR_shader_subgroup_shuffle_relative -Requested GL_KHR_shader_subgroup_vote -Requested GL_NV_mesh_shader -Requested GL_NV_shader_sm_builtins -Requested GL_NV_shader_subgroup_partitioned -local_size = (32, 1, 1) -ERROR: node is still EOpNull! -0:127 Function Definition: main( ( global void) -0:127 Function Parameters: -0:129 Sequence -0:129 Sequence -0:129 move second child to first child ( temp uint) -0:129 'iid' ( temp uint) -0:129 direct index ( temp uint) -0:129 'gl_LocalInvocationID' ( in 3-component vector of uint LocalInvocationID) -0:129 Constant: -0:129 0 (const int) -0:130 Sequence -0:130 move second child to first child ( temp uint) -0:130 'gid' ( temp uint) -0:130 direct index ( temp uint) -0:130 'gl_WorkGroupID' ( in 3-component vector of uint WorkGroupID) -0:130 Constant: -0:130 0 (const int) -0:131 Sequence -0:131 move second child to first child ( temp uint) -0:131 'viewID' ( temp uint) -0:131 indirect index ( temp uint MeshViewIndicesNV) -0:131 'gl_MeshViewIndicesNV' ( in 4-element array of uint MeshViewIndicesNV) -0:131 mod ( temp uint) -0:131 'gl_MeshViewCountNV' ( in uint MeshViewCountNV) -0:131 Constant: -0:131 4 (const uint) -0:134 Sequence -0:134 Sequence -0:134 move second child to first child ( temp uint) -0:134 'i' ( temp uint) -0:134 Constant: -0:134 0 (const uint) -0:134 Loop with condition tested first -0:134 Loop Condition -0:134 Compare Less Than ( temp bool) -0:134 'i' ( temp uint) -0:134 Constant: -0:134 10 (const uint) -0:134 Loop Body -0:135 Sequence -0:135 move second child to first child ( temp 4-component vector of float) -0:135 indirect index ( temp 4-component vector of float) -0:135 'mem' ( shared 10-element array of 4-component vector of float) -0:135 'i' ( temp uint) -0:135 Construct vec4 ( temp 4-component vector of float) -0:135 Convert uint to float ( temp float) -0:135 add ( temp uint) -0:135 'i' ( temp uint) -0:135 uni_value: direct index for structure (layout( column_major shared) uniform uint) -0:135 'anon@0' (layout( column_major shared) uniform block{layout( column_major shared) uniform uint uni_value}) -0:135 Constant: -0:135 0 (const uint) -0:134 Loop Terminal Expression -0:134 Pre-Increment ( temp uint) -0:134 'i' ( temp uint) -0:137 imageStore ( global void) -0:137 'uni_image' (layout( binding=0) writeonly uniform image2D) -0:137 Construct ivec2 ( temp 2-component vector of int) -0:137 Convert uint to int ( temp int) -0:137 'iid' ( temp uint) -0:137 indirect index ( temp 4-component vector of float) -0:137 'mem' ( shared 10-element array of 4-component vector of float) -0:137 'gid' ( temp uint) -0:138 imageStore ( global void) -0:138 'uni_image' (layout( binding=0) writeonly uniform image2D) -0:138 Construct ivec2 ( temp 2-component vector of int) -0:138 Convert uint to int ( temp int) -0:138 'iid' ( temp uint) -0:138 indirect index ( temp 4-component vector of float) -0:138 'mem' ( shared 10-element array of 4-component vector of float) -0:138 add ( temp uint) -0:138 'gid' ( temp uint) -0:138 Constant: -0:138 1 (const uint) -0:140 MemoryBarrierShared ( global void) -0:140 Barrier ( global void) -0:144 move second child to first child ( temp 2-component vector of float) -0:144 dummy: direct index for structure (layout( std430 offset=0) taskNV out 2-component vector of float) -0:144 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID}) -0:144 Constant: -0:144 0 (const int) -0:144 Constant: -0:144 30.000000 -0:144 31.000000 -0:145 move second child to first child ( temp 2-component vector of float) -0:145 direct index (layout( std430 offset=8) taskNV temp 2-component vector of float) -0:145 submesh: direct index for structure (layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float) -0:145 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID}) -0:145 Constant: -0:145 1 (const int) -0:145 Constant: -0:145 0 (const int) -0:145 Constant: -0:145 32.000000 -0:145 33.000000 -0:146 move second child to first child ( temp 2-component vector of float) -0:146 direct index (layout( std430 offset=8) taskNV temp 2-component vector of float) -0:146 submesh: direct index for structure (layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float) -0:146 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID}) -0:146 Constant: -0:146 1 (const int) -0:146 Constant: -0:146 1 (const int) -0:146 Constant: -0:146 34.000000 -0:146 35.000000 -0:147 move second child to first child ( temp 2-component vector of float) -0:147 direct index (layout( std430 offset=8) taskNV temp 2-component vector of float) -0:147 submesh: direct index for structure (layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float) -0:147 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID}) -0:147 Constant: -0:147 1 (const int) -0:147 Constant: -0:147 2 (const int) -0:147 indirect index (layout( std430 offset=8) taskNV temp 2-component vector of float) -0:147 submesh: direct index for structure (layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float) -0:147 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID}) -0:147 Constant: -0:147 1 (const int) -0:147 mod ( temp uint) -0:147 'gid' ( temp uint) -0:147 Constant: -0:147 2 (const uint) -0:148 move second child to first child ( temp uint) -0:148 viewID: direct index for structure (layout( std430 offset=32) taskNV out uint) -0:148 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID}) -0:148 Constant: -0:148 2 (const int) -0:148 'viewID' ( temp uint) -0:150 MemoryBarrierShared ( global void) -0:150 Barrier ( global void) -0:153 move second child to first child ( temp uint) -0:153 'gl_TaskCountNV' ( out uint TaskCountNV) -0:153 Constant: -0:153 3 (const uint) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize) -0:? 32 (const uint) -0:? 1 (const uint) -0:? 1 (const uint) -0:? 'uni_image' (layout( binding=0) writeonly uniform image2D) -0:? 'anon@0' (layout( column_major shared) uniform block{layout( column_major shared) uniform uint uni_value}) -0:? 'mem' ( shared 10-element array of 4-component vector of float) -0:? 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID}) - diff --git a/deps/glslang/Test/baseResults/glsl.autosampledtextures.frag.out b/deps/glslang/Test/baseResults/glsl.autosampledtextures.frag.out deleted file mode 100644 index 2183898a..00000000 --- a/deps/glslang/Test/baseResults/glsl.autosampledtextures.frag.out +++ /dev/null @@ -1,45 +0,0 @@ -glsl.autosampledtextures.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 23 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 17 21 - ExecutionMode 4 OriginUpperLeft - Source GLSL 460 - Name 4 "main" - Name 9 "color" - Name 13 "u_Tex" - Name 17 "in_UV" - Name 21 "out_Color" - Decorate 13(u_Tex) DescriptorSet 0 - Decorate 13(u_Tex) Binding 0 - Decorate 17(in_UV) Location 0 - Decorate 21(out_Color) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: TypeImage 6(float) 2D sampled format:Unknown - 11: TypeSampledImage 10 - 12: TypePointer UniformConstant 11 - 13(u_Tex): 12(ptr) Variable UniformConstant - 15: TypeVector 6(float) 2 - 16: TypePointer Input 15(fvec2) - 17(in_UV): 16(ptr) Variable Input - 20: TypePointer Output 7(fvec4) - 21(out_Color): 20(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 9(color): 8(ptr) Variable Function - 14: 11 Load 13(u_Tex) - 18: 15(fvec2) Load 17(in_UV) - 19: 7(fvec4) ImageSampleImplicitLod 14 18 - Store 9(color) 19 - 22: 7(fvec4) Load 9(color) - Store 21(out_Color) 22 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/glsl.entryPointRename.vert.bad.out b/deps/glslang/Test/baseResults/glsl.entryPointRename.vert.bad.out deleted file mode 100644 index ce34fbf2..00000000 --- a/deps/glslang/Test/baseResults/glsl.entryPointRename.vert.bad.out +++ /dev/null @@ -1,45 +0,0 @@ -glsl.entryPointRename.vert -ERROR: Source entry point must be "main" - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 20 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "foo" 13 - Source GLSL 460 - Name 4 "foo" - Name 11 "gl_PerVertex" - MemberName 11(gl_PerVertex) 0 "gl_Position" - MemberName 11(gl_PerVertex) 1 "gl_PointSize" - MemberName 11(gl_PerVertex) 2 "gl_ClipDistance" - MemberName 11(gl_PerVertex) 3 "gl_CullDistance" - Name 13 "" - MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 11(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 11(gl_PerVertex) 2 BuiltIn ClipDistance - MemberDecorate 11(gl_PerVertex) 3 BuiltIn CullDistance - Decorate 11(gl_PerVertex) Block - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeInt 32 0 - 9: 8(int) Constant 1 - 10: TypeArray 6(float) 9 -11(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 10 10 - 12: TypePointer Output 11(gl_PerVertex) - 13: 12(ptr) Variable Output - 14: TypeInt 32 1 - 15: 14(int) Constant 0 - 16: 6(float) Constant 1065353216 - 17: 7(fvec4) ConstantComposite 16 16 16 16 - 18: TypePointer Output 7(fvec4) - 4(foo): 2 Function None 3 - 5: Label - 19: 18(ptr) AccessChain 13 15 - Store 19 17 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/glsl.entryPointRename.vert.out b/deps/glslang/Test/baseResults/glsl.entryPointRename.vert.out deleted file mode 100644 index 71319c90..00000000 --- a/deps/glslang/Test/baseResults/glsl.entryPointRename.vert.out +++ /dev/null @@ -1,43 +0,0 @@ -glsl.entryPointRename.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 20 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "foo" 13 - Source GLSL 460 - Name 4 "foo" - Name 11 "gl_PerVertex" - MemberName 11(gl_PerVertex) 0 "gl_Position" - MemberName 11(gl_PerVertex) 1 "gl_PointSize" - MemberName 11(gl_PerVertex) 2 "gl_ClipDistance" - MemberName 11(gl_PerVertex) 3 "gl_CullDistance" - Name 13 "" - MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 11(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 11(gl_PerVertex) 2 BuiltIn ClipDistance - MemberDecorate 11(gl_PerVertex) 3 BuiltIn CullDistance - Decorate 11(gl_PerVertex) Block - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeInt 32 0 - 9: 8(int) Constant 1 - 10: TypeArray 6(float) 9 -11(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 10 10 - 12: TypePointer Output 11(gl_PerVertex) - 13: 12(ptr) Variable Output - 14: TypeInt 32 1 - 15: 14(int) Constant 0 - 16: 6(float) Constant 1065353216 - 17: 7(fvec4) ConstantComposite 16 16 16 16 - 18: TypePointer Output 7(fvec4) - 4(foo): 2 Function None 3 - 5: Label - 19: 18(ptr) AccessChain 13 15 - Store 19 17 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/glsl.entryPointRename2.vert.out b/deps/glslang/Test/baseResults/glsl.entryPointRename2.vert.out deleted file mode 100644 index aebd86be..00000000 --- a/deps/glslang/Test/baseResults/glsl.entryPointRename2.vert.out +++ /dev/null @@ -1,4 +0,0 @@ -glsl.entryPointRename2.vert -ERROR: Linking vertex stage: Missing entry point: Each stage requires one entry point - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/glsl.es300.layoutOffset.error.vert.out b/deps/glslang/Test/baseResults/glsl.es300.layoutOffset.error.vert.out deleted file mode 100644 index 3343b9f0..00000000 --- a/deps/glslang/Test/baseResults/glsl.es300.layoutOffset.error.vert.out +++ /dev/null @@ -1,51 +0,0 @@ -glsl.es300.layoutOffset.error.vert -ERROR: 0:3: 'binding' : not supported for this version or the enabled extensions -ERROR: 0:3: 'offset' : not supported for this version or the enabled extensions -ERROR: 0:3: 'offset' : only applies to block members, not blocks -ERROR: 3 compilation errors. No code generated. - - -Shader version: 300 -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 highp 4-component vector of float) -0:13 'out_vs' ( smooth out highp 4-component vector of float) -0:13 add ( temp highp 4-component vector of float) -0:13 'in_vs' ( in highp 4-component vector of float) -0:13 a: direct index for structure (layout( column_major shared) uniform highp 4-component vector of float) -0:13 'anon@0' (layout( binding=0 column_major shared offset=0) uniform block{layout( column_major shared) uniform highp 4-component vector of float a}) -0:13 Constant: -0:13 0 (const uint) -0:? Linker Objects -0:? 'anon@0' (layout( binding=0 column_major shared offset=0) uniform block{layout( column_major shared) uniform highp 4-component vector of float a}) -0:? 'in_vs' ( in highp 4-component vector of float) -0:? 'out_vs' ( smooth out 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: 300 -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 highp 4-component vector of float) -0:13 'out_vs' ( smooth out highp 4-component vector of float) -0:13 add ( temp highp 4-component vector of float) -0:13 'in_vs' ( in highp 4-component vector of float) -0:13 a: direct index for structure (layout( column_major shared) uniform highp 4-component vector of float) -0:13 'anon@0' (layout( binding=0 column_major shared offset=0) uniform block{layout( column_major shared) uniform highp 4-component vector of float a}) -0:13 Constant: -0:13 0 (const uint) -0:? Linker Objects -0:? 'anon@0' (layout( binding=0 column_major shared offset=0) uniform block{layout( column_major shared) uniform highp 4-component vector of float a}) -0:? 'in_vs' ( in highp 4-component vector of float) -0:? 'out_vs' ( smooth out 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/Test/baseResults/glsl.es320.subgroup.frag.out b/deps/glslang/Test/baseResults/glsl.es320.subgroup.frag.out deleted file mode 100644 index 5e2ae733..00000000 --- a/deps/glslang/Test/baseResults/glsl.es320.subgroup.frag.out +++ /dev/null @@ -1,41 +0,0 @@ -glsl.es320.subgroup.frag -Shader version: 320 -Requested GL_KHR_shader_subgroup_basic -0:? Sequence -0:4 Function Definition: main( ( global void) -0:4 Function Parameters: -0:6 Sequence -0:6 move second child to first child ( temp mediump 4-component vector of uint) -0:6 'data' (layout( location=0) out mediump 4-component vector of uint) -0:6 Construct uvec4 ( temp mediump 4-component vector of uint) -0:6 'gl_SubgroupSize' ( flat in mediump uint SubgroupSize) -0:6 'gl_SubgroupInvocationID' ( flat in mediump uint SubgroupInvocationID) -0:6 Constant: -0:6 0 (const uint) -0:6 Constant: -0:6 0 (const uint) -0:? Linker Objects -0:? 'data' (layout( location=0) out mediump 4-component vector of uint) - - -Linked fragment stage: - - -Shader version: 320 -Requested GL_KHR_shader_subgroup_basic -0:? Sequence -0:4 Function Definition: main( ( global void) -0:4 Function Parameters: -0:6 Sequence -0:6 move second child to first child ( temp mediump 4-component vector of uint) -0:6 'data' (layout( location=0) out mediump 4-component vector of uint) -0:6 Construct uvec4 ( temp mediump 4-component vector of uint) -0:6 'gl_SubgroupSize' ( flat in mediump uint SubgroupSize) -0:6 'gl_SubgroupInvocationID' ( flat in mediump uint SubgroupInvocationID) -0:6 Constant: -0:6 0 (const uint) -0:6 Constant: -0:6 0 (const uint) -0:? Linker Objects -0:? 'data' (layout( location=0) out mediump 4-component vector of uint) - diff --git a/deps/glslang/Test/baseResults/glsl.es320.subgroup.geom.out b/deps/glslang/Test/baseResults/glsl.es320.subgroup.geom.out deleted file mode 100644 index eab54542..00000000 --- a/deps/glslang/Test/baseResults/glsl.es320.subgroup.geom.out +++ /dev/null @@ -1,59 +0,0 @@ -glsl.es320.subgroup.geom -Shader version: 320 -Requested GL_KHR_shader_subgroup_basic -invocations = -1 -max_vertices = 1 -input primitive = points -output primitive = points -0:? Sequence -0:10 Function Definition: main( ( global void) -0:10 Function Parameters: -0:12 Sequence -0:12 move second child to first child ( temp highp 4-component vector of uint) -0:12 indirect index (layout( column_major std430 offset=0) temp highp 4-component vector of uint) -0:12 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint) -0:12 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint result}) -0:12 Constant: -0:12 0 (const uint) -0:12 'gl_PrimitiveIDIn' ( in highp int PrimitiveID) -0:12 Construct uvec4 ( temp mediump 4-component vector of uint) -0:12 'gl_SubgroupSize' ( in mediump uint SubgroupSize) -0:12 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID) -0:12 Constant: -0:12 0 (const uint) -0:12 Constant: -0:12 0 (const uint) -0:? Linker Objects -0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint result}) - - -Linked geometry stage: - - -Shader version: 320 -Requested GL_KHR_shader_subgroup_basic -invocations = 1 -max_vertices = 1 -input primitive = points -output primitive = points -0:? Sequence -0:10 Function Definition: main( ( global void) -0:10 Function Parameters: -0:12 Sequence -0:12 move second child to first child ( temp highp 4-component vector of uint) -0:12 indirect index (layout( column_major std430 offset=0) temp highp 4-component vector of uint) -0:12 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint) -0:12 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint result}) -0:12 Constant: -0:12 0 (const uint) -0:12 'gl_PrimitiveIDIn' ( in highp int PrimitiveID) -0:12 Construct uvec4 ( temp mediump 4-component vector of uint) -0:12 'gl_SubgroupSize' ( in mediump uint SubgroupSize) -0:12 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID) -0:12 Constant: -0:12 0 (const uint) -0:12 Constant: -0:12 0 (const uint) -0:? Linker Objects -0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint result}) - diff --git a/deps/glslang/Test/baseResults/glsl.es320.subgroup.tesc.out b/deps/glslang/Test/baseResults/glsl.es320.subgroup.tesc.out deleted file mode 100644 index 431a3c3f..00000000 --- a/deps/glslang/Test/baseResults/glsl.es320.subgroup.tesc.out +++ /dev/null @@ -1,53 +0,0 @@ -glsl.es320.subgroup.tesc -Shader version: 320 -Requested GL_KHR_shader_subgroup_basic -vertices = 1 -0:? Sequence -0:9 Function Definition: main( ( global void) -0:9 Function Parameters: -0:11 Sequence -0:11 move second child to first child ( temp highp 4-component vector of uint) -0:11 indirect index (layout( column_major std430 offset=0) temp highp 4-component vector of uint) -0:11 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint) -0:11 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint result}) -0:11 Constant: -0:11 0 (const uint) -0:11 'gl_PrimitiveID' ( in highp int PrimitiveID) -0:11 Construct uvec4 ( temp mediump 4-component vector of uint) -0:11 'gl_SubgroupSize' ( in mediump uint SubgroupSize) -0:11 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID) -0:11 Constant: -0:11 0 (const uint) -0:11 Constant: -0:11 0 (const uint) -0:? Linker Objects -0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint result}) - - -Linked tessellation control stage: - - -Shader version: 320 -Requested GL_KHR_shader_subgroup_basic -vertices = 1 -0:? Sequence -0:9 Function Definition: main( ( global void) -0:9 Function Parameters: -0:11 Sequence -0:11 move second child to first child ( temp highp 4-component vector of uint) -0:11 indirect index (layout( column_major std430 offset=0) temp highp 4-component vector of uint) -0:11 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint) -0:11 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint result}) -0:11 Constant: -0:11 0 (const uint) -0:11 'gl_PrimitiveID' ( in highp int PrimitiveID) -0:11 Construct uvec4 ( temp mediump 4-component vector of uint) -0:11 'gl_SubgroupSize' ( in mediump uint SubgroupSize) -0:11 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID) -0:11 Constant: -0:11 0 (const uint) -0:11 Constant: -0:11 0 (const uint) -0:? Linker Objects -0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint result}) - diff --git a/deps/glslang/Test/baseResults/glsl.es320.subgroup.tese.out b/deps/glslang/Test/baseResults/glsl.es320.subgroup.tese.out deleted file mode 100644 index 198a757a..00000000 --- a/deps/glslang/Test/baseResults/glsl.es320.subgroup.tese.out +++ /dev/null @@ -1,57 +0,0 @@ -glsl.es320.subgroup.tese -Shader version: 320 -Requested GL_KHR_shader_subgroup_basic -input primitive = isolines -vertex spacing = none -triangle order = none -0:? Sequence -0:9 Function Definition: main( ( global void) -0:9 Function Parameters: -0:11 Sequence -0:11 move second child to first child ( temp highp 4-component vector of uint) -0:11 indirect index (layout( column_major std430 offset=0) temp highp 4-component vector of uint) -0:11 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint) -0:11 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint result}) -0:11 Constant: -0:11 0 (const uint) -0:11 'gl_PrimitiveID' ( in highp int PrimitiveID) -0:11 Construct uvec4 ( temp mediump 4-component vector of uint) -0:11 'gl_SubgroupSize' ( in mediump uint SubgroupSize) -0:11 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID) -0:11 Constant: -0:11 0 (const uint) -0:11 Constant: -0:11 0 (const uint) -0:? Linker Objects -0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint result}) - - -Linked tessellation evaluation stage: - - -Shader version: 320 -Requested GL_KHR_shader_subgroup_basic -input primitive = isolines -vertex spacing = equal_spacing -triangle order = ccw -0:? Sequence -0:9 Function Definition: main( ( global void) -0:9 Function Parameters: -0:11 Sequence -0:11 move second child to first child ( temp highp 4-component vector of uint) -0:11 indirect index (layout( column_major std430 offset=0) temp highp 4-component vector of uint) -0:11 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint) -0:11 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint result}) -0:11 Constant: -0:11 0 (const uint) -0:11 'gl_PrimitiveID' ( in highp int PrimitiveID) -0:11 Construct uvec4 ( temp mediump 4-component vector of uint) -0:11 'gl_SubgroupSize' ( in mediump uint SubgroupSize) -0:11 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID) -0:11 Constant: -0:11 0 (const uint) -0:11 Constant: -0:11 0 (const uint) -0:? Linker Objects -0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint result}) - diff --git a/deps/glslang/Test/baseResults/glsl.es320.subgroup.vert.out b/deps/glslang/Test/baseResults/glsl.es320.subgroup.vert.out deleted file mode 100644 index e1a6bea7..00000000 --- a/deps/glslang/Test/baseResults/glsl.es320.subgroup.vert.out +++ /dev/null @@ -1,55 +0,0 @@ -glsl.es320.subgroup.vert -Shader version: 320 -Requested GL_KHR_shader_subgroup_basic -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 highp 4-component vector of uint) -0:10 indirect index (layout( column_major std430 offset=0) temp highp 4-component vector of uint) -0:10 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint) -0:10 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint result}) -0:10 Constant: -0:10 0 (const uint) -0:10 'gl_VertexID' ( gl_VertexId highp int VertexId) -0:10 Construct uvec4 ( temp mediump 4-component vector of uint) -0:10 'gl_SubgroupSize' ( in mediump uint SubgroupSize) -0:10 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID) -0:10 Constant: -0:10 0 (const uint) -0:10 Constant: -0:10 0 (const uint) -0:? Linker Objects -0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint result}) -0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) - - -Linked vertex stage: - - -Shader version: 320 -Requested GL_KHR_shader_subgroup_basic -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 highp 4-component vector of uint) -0:10 indirect index (layout( column_major std430 offset=0) temp highp 4-component vector of uint) -0:10 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint) -0:10 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint result}) -0:10 Constant: -0:10 0 (const uint) -0:10 'gl_VertexID' ( gl_VertexId highp int VertexId) -0:10 Construct uvec4 ( temp mediump 4-component vector of uint) -0:10 'gl_SubgroupSize' ( in mediump uint SubgroupSize) -0:10 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID) -0:10 Constant: -0:10 0 (const uint) -0:10 Constant: -0:10 0 (const uint) -0:? Linker Objects -0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint result}) -0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) - diff --git a/deps/glslang/Test/baseResults/glsl.es320.subgroupArithmetic.comp.out b/deps/glslang/Test/baseResults/glsl.es320.subgroupArithmetic.comp.out deleted file mode 100644 index a1296934..00000000 --- a/deps/glslang/Test/baseResults/glsl.es320.subgroupArithmetic.comp.out +++ /dev/null @@ -1,12797 +0,0 @@ -glsl.es320.subgroupArithmetic.comp -Shader version: 320 -Requested GL_KHR_shader_subgroup_arithmetic -Requested GL_KHR_shader_subgroup_basic -local_size = (8, 1, 1) -0:? Sequence -0:14 Function Definition: main( ( global void) -0:14 Function Parameters: -0:16 Sequence -0:16 Sequence -0:16 move second child to first child ( temp highp uint) -0:16 'invocation' ( temp highp uint) -0:16 mod ( temp mediump uint) -0:16 add ( temp mediump uint) -0:16 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID) -0:16 'gl_SubgroupSize' ( in mediump uint SubgroupSize) -0:16 Constant: -0:16 4 (const uint) -0:18 move second child to first child ( temp highp float) -0:18 direct index ( temp highp float) -0:18 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:18 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 subgroupAdd ( global highp float) -0:18 direct index ( temp highp float) -0:18 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:18 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:19 move second child to first child ( temp highp 2-component vector of float) -0:19 vector swizzle ( temp highp 2-component vector of float) -0:19 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:19 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 Sequence -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const int) -0:19 subgroupAdd ( global highp 2-component vector of float) -0:19 vector swizzle ( temp highp 2-component vector of float) -0:19 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:19 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 Constant: -0:19 1 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 Sequence -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const int) -0:20 move second child to first child ( temp highp 3-component vector of float) -0:20 vector swizzle ( temp highp 3-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:20 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 2 (const int) -0:20 subgroupAdd ( global highp 3-component vector of float) -0:20 vector swizzle ( temp highp 3-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:20 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 Constant: -0:20 2 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -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 highp 4-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 subgroupAdd ( global highp 4-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 Constant: -0:21 3 (const int) -0:21 Constant: -0:21 0 (const int) -0:23 move second child to first child ( temp highp int) -0:23 direct index ( temp highp int) -0:23 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 0 (const int) -0:23 subgroupAdd ( global highp int) -0:23 direct index ( temp highp int) -0:23 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 0 (const int) -0:24 move second child to first child ( temp highp 2-component vector of int) -0:24 vector swizzle ( temp highp 2-component vector of int) -0:24 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 Sequence -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 subgroupAdd ( global highp 2-component vector of int) -0:24 vector swizzle ( temp highp 2-component vector of int) -0:24 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 Sequence -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:25 move second child to first child ( temp highp 3-component vector of int) -0:25 vector swizzle ( temp highp 3-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 subgroupAdd ( global highp 3-component vector of int) -0:25 vector swizzle ( temp highp 3-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 Constant: -0:25 2 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 2 (const int) -0:26 move second child to first child ( temp highp 4-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 subgroupAdd ( global highp 4-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 Constant: -0:26 3 (const int) -0:26 Constant: -0:26 1 (const int) -0:28 move second child to first child ( temp highp uint) -0:28 direct index ( temp highp uint) -0:28 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 Constant: -0:28 2 (const int) -0:28 Constant: -0:28 2 (const int) -0:28 Constant: -0:28 0 (const int) -0:28 subgroupAdd ( global highp uint) -0:28 direct index ( temp highp uint) -0:28 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 2 (const int) -0:28 Constant: -0:28 0 (const int) -0:29 move second child to first child ( temp highp 2-component vector of uint) -0:29 vector swizzle ( temp highp 2-component vector of uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 2 (const int) -0:29 Sequence -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 1 (const int) -0:29 subgroupAdd ( global highp 2-component vector of uint) -0:29 vector swizzle ( temp highp 2-component vector of uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 Constant: -0:29 1 (const int) -0:29 Constant: -0:29 2 (const int) -0:29 Sequence -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 1 (const int) -0:30 move second child to first child ( temp highp 3-component vector of uint) -0:30 vector swizzle ( temp highp 3-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:30 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 Constant: -0:30 2 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 subgroupAdd ( global highp 3-component vector of uint) -0:30 vector swizzle ( temp highp 3-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:30 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 Constant: -0:30 2 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 2 (const int) -0:31 move second child to first child ( temp highp 4-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 Constant: -0:31 2 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 subgroupAdd ( global highp 4-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 Constant: -0:31 3 (const int) -0:31 Constant: -0:31 2 (const int) -0:33 move second child to first child ( temp highp float) -0:33 direct index ( temp highp float) -0:33 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 Constant: -0:33 3 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 subgroupMul ( global highp float) -0:33 direct index ( temp highp float) -0:33 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -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:34 move second child to first child ( temp highp 2-component vector of float) -0:34 vector swizzle ( temp highp 2-component vector of float) -0:34 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 Constant: -0:34 3 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 Sequence -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 subgroupMul ( global highp 2-component vector of float) -0:34 vector swizzle ( temp highp 2-component vector of float) -0:34 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 Constant: -0:34 1 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 Sequence -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 1 (const int) -0:35 move second child to first child ( temp highp 3-component vector of float) -0:35 vector swizzle ( temp highp 3-component vector of float) -0:35 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 Constant: -0:35 3 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 2 (const int) -0:35 subgroupMul ( global highp 3-component vector of float) -0:35 vector swizzle ( temp highp 3-component vector of float) -0:35 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 Constant: -0:35 2 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 2 (const int) -0:36 move second child to first child ( temp highp 4-component vector of float) -0:36 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 Constant: -0:36 3 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 subgroupMul ( global highp 4-component vector of float) -0:36 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 Constant: -0:36 3 (const int) -0:36 Constant: -0:36 0 (const int) -0:38 move second child to first child ( temp highp int) -0:38 direct index ( temp highp int) -0:38 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 1 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 subgroupMul ( global highp int) -0:38 direct index ( temp highp int) -0:38 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 1 (const int) -0:38 Constant: -0:38 0 (const int) -0:39 move second child to first child ( temp highp 2-component vector of int) -0:39 vector swizzle ( temp highp 2-component vector of int) -0:39 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 Sequence -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 subgroupMul ( global highp 2-component vector of int) -0:39 vector swizzle ( temp highp 2-component vector of int) -0:39 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 Sequence -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:40 move second child to first child ( temp highp 3-component vector of int) -0:40 vector swizzle ( temp highp 3-component vector of int) -0:40 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 2 (const int) -0:40 subgroupMul ( global highp 3-component vector of int) -0:40 vector swizzle ( temp highp 3-component vector of int) -0:40 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 Constant: -0:40 2 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 2 (const int) -0:41 move second child to first child ( temp highp 4-component vector of int) -0:41 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 subgroupMul ( global highp 4-component vector of int) -0:41 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 Constant: -0:41 3 (const int) -0:41 Constant: -0:41 1 (const int) -0:43 move second child to first child ( temp highp uint) -0:43 direct index ( temp highp uint) -0:43 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:43 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 Constant: -0:43 1 (const int) -0:43 Constant: -0:43 2 (const int) -0:43 Constant: -0:43 0 (const int) -0:43 subgroupMul ( global highp uint) -0:43 direct index ( temp highp uint) -0:43 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:43 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 Constant: -0:43 0 (const int) -0:43 Constant: -0:43 2 (const int) -0:43 Constant: -0:43 0 (const int) -0:44 move second child to first child ( temp highp 2-component vector of uint) -0:44 vector swizzle ( temp highp 2-component vector of uint) -0:44 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 Constant: -0:44 1 (const int) -0:44 Constant: -0:44 2 (const int) -0:44 Sequence -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 1 (const int) -0:44 subgroupMul ( global highp 2-component vector of uint) -0:44 vector swizzle ( temp highp 2-component vector of uint) -0:44 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 Constant: -0:44 1 (const int) -0:44 Constant: -0:44 2 (const int) -0:44 Sequence -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 1 (const int) -0:45 move second child to first child ( temp highp 3-component vector of uint) -0:45 vector swizzle ( temp highp 3-component vector of uint) -0:45 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 subgroupMul ( global highp 3-component vector of uint) -0:45 vector swizzle ( temp highp 3-component vector of uint) -0:45 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 Constant: -0:45 2 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 2 (const int) -0:46 move second child to first child ( temp highp 4-component vector of uint) -0:46 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 subgroupMul ( global highp 4-component vector of uint) -0:46 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 Constant: -0:46 3 (const int) -0:46 Constant: -0:46 2 (const int) -0:48 move second child to first child ( temp highp float) -0:48 direct index ( temp highp float) -0:48 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:48 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 Constant: -0:48 2 (const int) -0:48 Constant: -0:48 0 (const int) -0:48 Constant: -0:48 0 (const int) -0:48 subgroupMin ( global highp float) -0:48 direct index ( temp highp float) -0:48 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:48 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 Constant: -0:48 0 (const int) -0:48 Constant: -0:48 0 (const int) -0:48 Constant: -0:48 0 (const int) -0:49 move second child to first child ( temp highp 2-component vector of float) -0:49 vector swizzle ( temp highp 2-component vector of float) -0:49 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:49 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 Constant: -0:49 2 (const int) -0:49 Constant: -0:49 0 (const int) -0:49 Sequence -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 1 (const int) -0:49 subgroupMin ( global highp 2-component vector of float) -0:49 vector swizzle ( temp highp 2-component vector of float) -0:49 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:49 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 Constant: -0:49 1 (const int) -0:49 Constant: -0:49 0 (const int) -0:49 Sequence -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 1 (const int) -0:50 move second child to first child ( temp highp 3-component vector of float) -0:50 vector swizzle ( temp highp 3-component vector of float) -0:50 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 Constant: -0:50 2 (const int) -0:50 Constant: -0:50 0 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 subgroupMin ( global highp 3-component vector of float) -0:50 vector swizzle ( temp highp 3-component vector of float) -0:50 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 Constant: -0:50 2 (const int) -0:50 Constant: -0:50 0 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 2 (const int) -0:51 move second child to first child ( temp highp 4-component vector of float) -0:51 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 Constant: -0:51 2 (const int) -0:51 Constant: -0:51 0 (const int) -0:51 subgroupMin ( global highp 4-component vector of float) -0:51 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 Constant: -0:51 3 (const int) -0:51 Constant: -0:51 0 (const int) -0:53 move second child to first child ( temp highp int) -0:53 direct index ( temp highp int) -0:53 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:53 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 Constant: -0:53 3 (const int) -0:53 Constant: -0:53 1 (const int) -0:53 Constant: -0:53 0 (const int) -0:53 subgroupMin ( global highp int) -0:53 direct index ( temp highp int) -0:53 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:53 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 Constant: -0:53 0 (const int) -0:53 Constant: -0:53 1 (const int) -0:53 Constant: -0:53 0 (const int) -0:54 move second child to first child ( temp highp 2-component vector of int) -0:54 vector swizzle ( temp highp 2-component vector of int) -0:54 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:54 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 Constant: -0:54 3 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 Sequence -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 subgroupMin ( global highp 2-component vector of int) -0:54 vector swizzle ( temp highp 2-component vector of int) -0:54 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:54 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 Constant: -0:54 1 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 Sequence -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 1 (const int) -0:55 move second child to first child ( temp highp 3-component vector of int) -0:55 vector swizzle ( temp highp 3-component vector of int) -0:55 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 Constant: -0:55 3 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 2 (const int) -0:55 subgroupMin ( global highp 3-component vector of int) -0:55 vector swizzle ( temp highp 3-component vector of int) -0:55 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 Constant: -0:55 2 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 2 (const int) -0:56 move second child to first child ( temp highp 4-component vector of int) -0:56 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 Constant: -0:56 3 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 subgroupMin ( global highp 4-component vector of int) -0:56 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 Constant: -0:56 3 (const int) -0:56 Constant: -0:56 1 (const int) -0:58 move second child to first child ( temp highp uint) -0:58 direct index ( temp highp uint) -0:58 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:58 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 Constant: -0:58 0 (const int) -0:58 Constant: -0:58 2 (const int) -0:58 Constant: -0:58 0 (const int) -0:58 subgroupMin ( global highp uint) -0:58 direct index ( temp highp uint) -0:58 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:58 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 Constant: -0:58 0 (const int) -0:58 Constant: -0:58 2 (const int) -0:58 Constant: -0:58 0 (const int) -0:59 move second child to first child ( temp highp 2-component vector of uint) -0:59 vector swizzle ( temp highp 2-component vector of uint) -0:59 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:59 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:59 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 2 (const int) -0:59 Sequence -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 1 (const int) -0:59 subgroupMin ( global highp 2-component vector of uint) -0:59 vector swizzle ( temp highp 2-component vector of uint) -0:59 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:59 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:59 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:59 Constant: -0:59 1 (const int) -0:59 Constant: -0:59 2 (const int) -0:59 Sequence -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 1 (const int) -0:60 move second child to first child ( temp highp 3-component vector of uint) -0:60 vector swizzle ( temp highp 3-component vector of uint) -0:60 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:60 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 2 (const int) -0:60 Sequence -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 2 (const int) -0:60 subgroupMin ( global highp 3-component vector of uint) -0:60 vector swizzle ( temp highp 3-component vector of uint) -0:60 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:60 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 Constant: -0:60 2 (const int) -0:60 Constant: -0:60 2 (const int) -0:60 Sequence -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 2 (const int) -0:61 move second child to first child ( temp highp 4-component vector of uint) -0:61 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:61 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 2 (const int) -0:61 subgroupMin ( global highp 4-component vector of uint) -0:61 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:61 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 Constant: -0:61 3 (const int) -0:61 Constant: -0:61 2 (const int) -0:63 move second child to first child ( temp highp float) -0:63 direct index ( temp highp float) -0:63 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:63 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 Constant: -0:63 1 (const int) -0:63 Constant: -0:63 0 (const int) -0:63 Constant: -0:63 0 (const int) -0:63 subgroupMax ( global highp float) -0:63 direct index ( temp highp float) -0:63 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:63 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 Constant: -0:63 0 (const int) -0:63 Constant: -0:63 0 (const int) -0:63 Constant: -0:63 0 (const int) -0:64 move second child to first child ( temp highp 2-component vector of float) -0:64 vector swizzle ( temp highp 2-component vector of float) -0:64 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:64 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:64 Constant: -0:64 1 (const int) -0:64 Constant: -0:64 0 (const int) -0:64 Sequence -0:64 Constant: -0:64 0 (const int) -0:64 Constant: -0:64 1 (const int) -0:64 subgroupMax ( global highp 2-component vector of float) -0:64 vector swizzle ( temp highp 2-component vector of float) -0:64 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:64 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:64 Constant: -0:64 1 (const int) -0:64 Constant: -0:64 0 (const int) -0:64 Sequence -0:64 Constant: -0:64 0 (const int) -0:64 Constant: -0:64 1 (const int) -0:65 move second child to first child ( temp highp 3-component vector of float) -0:65 vector swizzle ( temp highp 3-component vector of float) -0:65 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:65 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 Constant: -0:65 1 (const int) -0:65 Constant: -0:65 0 (const int) -0:65 Sequence -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Constant: -0:65 2 (const int) -0:65 subgroupMax ( global highp 3-component vector of float) -0:65 vector swizzle ( temp highp 3-component vector of float) -0:65 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:65 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 Constant: -0:65 2 (const int) -0:65 Constant: -0:65 0 (const int) -0:65 Sequence -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Constant: -0:65 2 (const int) -0:66 move second child to first child ( temp highp 4-component vector of float) -0:66 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:66 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 0 (const int) -0:66 subgroupMax ( global highp 4-component vector of float) -0:66 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:66 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 Constant: -0:66 3 (const int) -0:66 Constant: -0:66 0 (const int) -0:68 move second child to first child ( temp highp int) -0:68 direct index ( temp highp int) -0:68 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:68 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 Constant: -0:68 2 (const int) -0:68 Constant: -0:68 1 (const int) -0:68 Constant: -0:68 0 (const int) -0:68 subgroupMax ( global highp int) -0:68 direct index ( temp highp int) -0:68 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:68 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 Constant: -0:68 0 (const int) -0:68 Constant: -0:68 1 (const int) -0:68 Constant: -0:68 0 (const int) -0:69 move second child to first child ( temp highp 2-component vector of int) -0:69 vector swizzle ( temp highp 2-component vector of int) -0:69 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:69 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:69 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:69 Constant: -0:69 2 (const int) -0:69 Constant: -0:69 1 (const int) -0:69 Sequence -0:69 Constant: -0:69 0 (const int) -0:69 Constant: -0:69 1 (const int) -0:69 subgroupMax ( global highp 2-component vector of int) -0:69 vector swizzle ( temp highp 2-component vector of int) -0:69 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:69 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:69 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:69 Constant: -0:69 1 (const int) -0:69 Constant: -0:69 1 (const int) -0:69 Sequence -0:69 Constant: -0:69 0 (const int) -0:69 Constant: -0:69 1 (const int) -0:70 move second child to first child ( temp highp 3-component vector of int) -0:70 vector swizzle ( temp highp 3-component vector of int) -0:70 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:70 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 Constant: -0:70 2 (const int) -0:70 Constant: -0:70 1 (const int) -0:70 Sequence -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 1 (const int) -0:70 Constant: -0:70 2 (const int) -0:70 subgroupMax ( global highp 3-component vector of int) -0:70 vector swizzle ( temp highp 3-component vector of int) -0:70 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:70 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 Constant: -0:70 2 (const int) -0:70 Constant: -0:70 1 (const int) -0:70 Sequence -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 1 (const int) -0:70 Constant: -0:70 2 (const int) -0:71 move second child to first child ( temp highp 4-component vector of int) -0:71 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:71 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 Constant: -0:71 2 (const int) -0:71 Constant: -0:71 1 (const int) -0:71 subgroupMax ( global highp 4-component vector of int) -0:71 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:71 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 Constant: -0:71 3 (const int) -0:71 Constant: -0:71 1 (const int) -0:73 move second child to first child ( temp highp uint) -0:73 direct index ( temp highp uint) -0:73 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:73 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 Constant: -0:73 3 (const int) -0:73 Constant: -0:73 2 (const int) -0:73 Constant: -0:73 0 (const int) -0:73 subgroupMax ( global highp uint) -0:73 direct index ( temp highp uint) -0:73 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:73 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 Constant: -0:73 0 (const int) -0:73 Constant: -0:73 2 (const int) -0:73 Constant: -0:73 0 (const int) -0:74 move second child to first child ( temp highp 2-component vector of uint) -0:74 vector swizzle ( temp highp 2-component vector of uint) -0:74 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:74 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:74 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:74 Constant: -0:74 3 (const int) -0:74 Constant: -0:74 2 (const int) -0:74 Sequence -0:74 Constant: -0:74 0 (const int) -0:74 Constant: -0:74 1 (const int) -0:74 subgroupMax ( global highp 2-component vector of uint) -0:74 vector swizzle ( temp highp 2-component vector of uint) -0:74 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:74 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:74 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:74 Constant: -0:74 1 (const int) -0:74 Constant: -0:74 2 (const int) -0:74 Sequence -0:74 Constant: -0:74 0 (const int) -0:74 Constant: -0:74 1 (const int) -0:75 move second child to first child ( temp highp 3-component vector of uint) -0:75 vector swizzle ( temp highp 3-component vector of uint) -0:75 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:75 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:75 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:75 Constant: -0:75 3 (const int) -0:75 Constant: -0:75 2 (const int) -0:75 Sequence -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 1 (const int) -0:75 Constant: -0:75 2 (const int) -0:75 subgroupMax ( global highp 3-component vector of uint) -0:75 vector swizzle ( temp highp 3-component vector of uint) -0:75 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:75 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:75 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:75 Constant: -0:75 2 (const int) -0:75 Constant: -0:75 2 (const int) -0:75 Sequence -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 1 (const int) -0:75 Constant: -0:75 2 (const int) -0:76 move second child to first child ( temp highp 4-component vector of uint) -0:76 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:76 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:76 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:76 Constant: -0:76 3 (const int) -0:76 Constant: -0:76 2 (const int) -0:76 subgroupMax ( global highp 4-component vector of uint) -0:76 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:76 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:76 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:76 Constant: -0:76 3 (const int) -0:76 Constant: -0:76 2 (const int) -0:78 move second child to first child ( temp highp int) -0:78 direct index ( temp highp int) -0:78 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:78 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:78 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:78 Constant: -0:78 0 (const int) -0:78 Constant: -0:78 1 (const int) -0:78 Constant: -0:78 0 (const int) -0:78 subgroupAnd ( global highp int) -0:78 direct index ( temp highp int) -0:78 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:78 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:78 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:78 Constant: -0:78 0 (const int) -0:78 Constant: -0:78 1 (const int) -0:78 Constant: -0:78 0 (const int) -0:79 move second child to first child ( temp highp 2-component vector of int) -0:79 vector swizzle ( temp highp 2-component vector of int) -0:79 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:79 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:79 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 1 (const int) -0:79 Sequence -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 1 (const int) -0:79 subgroupAnd ( global highp 2-component vector of int) -0:79 vector swizzle ( temp highp 2-component vector of int) -0:79 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:79 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:79 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:79 Constant: -0:79 1 (const int) -0:79 Constant: -0:79 1 (const int) -0:79 Sequence -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 1 (const int) -0:80 move second child to first child ( temp highp 3-component vector of int) -0:80 vector swizzle ( temp highp 3-component vector of int) -0:80 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:80 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:80 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 1 (const int) -0:80 Sequence -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 1 (const int) -0:80 Constant: -0:80 2 (const int) -0:80 subgroupAnd ( global highp 3-component vector of int) -0:80 vector swizzle ( temp highp 3-component vector of int) -0:80 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:80 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:80 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:80 Constant: -0:80 2 (const int) -0:80 Constant: -0:80 1 (const int) -0:80 Sequence -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 1 (const int) -0:80 Constant: -0:80 2 (const int) -0:81 move second child to first child ( temp highp 4-component vector of int) -0:81 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:81 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:81 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 1 (const int) -0:81 subgroupAnd ( global highp 4-component vector of int) -0:81 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:81 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:81 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:81 Constant: -0:81 3 (const int) -0:81 Constant: -0:81 1 (const int) -0:83 move second child to first child ( temp highp uint) -0:83 direct index ( temp highp uint) -0:83 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:83 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:83 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:83 Constant: -0:83 1 (const int) -0:83 Constant: -0:83 2 (const int) -0:83 Constant: -0:83 0 (const int) -0:83 subgroupAnd ( global highp uint) -0:83 direct index ( temp highp uint) -0:83 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:83 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:83 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:83 Constant: -0:83 0 (const int) -0:83 Constant: -0:83 2 (const int) -0:83 Constant: -0:83 0 (const int) -0:84 move second child to first child ( temp highp 2-component vector of uint) -0:84 vector swizzle ( temp highp 2-component vector of uint) -0:84 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:84 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:84 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:84 Constant: -0:84 1 (const int) -0:84 Constant: -0:84 2 (const int) -0:84 Sequence -0:84 Constant: -0:84 0 (const int) -0:84 Constant: -0:84 1 (const int) -0:84 subgroupAnd ( global highp 2-component vector of uint) -0:84 vector swizzle ( temp highp 2-component vector of uint) -0:84 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:84 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:84 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:84 Constant: -0:84 1 (const int) -0:84 Constant: -0:84 2 (const int) -0:84 Sequence -0:84 Constant: -0:84 0 (const int) -0:84 Constant: -0:84 1 (const int) -0:85 move second child to first child ( temp highp 3-component vector of uint) -0:85 vector swizzle ( temp highp 3-component vector of uint) -0:85 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:85 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:85 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:85 Constant: -0:85 1 (const int) -0:85 Constant: -0:85 2 (const int) -0:85 Sequence -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 1 (const int) -0:85 Constant: -0:85 2 (const int) -0:85 subgroupAnd ( global highp 3-component vector of uint) -0:85 vector swizzle ( temp highp 3-component vector of uint) -0:85 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:85 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:85 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:85 Constant: -0:85 2 (const int) -0:85 Constant: -0:85 2 (const int) -0:85 Sequence -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 1 (const int) -0:85 Constant: -0:85 2 (const int) -0:86 move second child to first child ( temp highp 4-component vector of uint) -0:86 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:86 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:86 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:86 Constant: -0:86 1 (const int) -0:86 Constant: -0:86 2 (const int) -0:86 subgroupAnd ( global highp 4-component vector of uint) -0:86 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:86 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:86 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:86 Constant: -0:86 3 (const int) -0:86 Constant: -0:86 2 (const int) -0:88 move second child to first child ( temp highp int) -0:88 direct index ( temp highp int) -0:88 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:88 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:88 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:88 Constant: -0:88 2 (const int) -0:88 Constant: -0:88 1 (const int) -0:88 Constant: -0:88 0 (const int) -0:88 Convert bool to int ( temp highp int) -0:88 subgroupAnd ( global bool) -0:88 Compare Less Than ( temp bool) -0:88 direct index ( temp highp int) -0:88 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:88 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:88 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:88 Constant: -0:88 0 (const int) -0:88 Constant: -0:88 1 (const int) -0:88 Constant: -0:88 0 (const int) -0:88 Constant: -0:88 0 (const int) -0:89 move second child to first child ( temp highp 2-component vector of int) -0:89 vector swizzle ( temp highp 2-component vector of int) -0:89 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:89 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:89 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:89 Constant: -0:89 2 (const int) -0:89 Constant: -0:89 1 (const int) -0:89 Sequence -0:89 Constant: -0:89 0 (const int) -0:89 Constant: -0:89 1 (const int) -0:89 Convert bool to int ( temp highp 2-component vector of int) -0:89 subgroupAnd ( global 2-component vector of bool) -0:89 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:89 vector swizzle ( temp highp 2-component vector of int) -0:89 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:89 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:89 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:89 Constant: -0:89 1 (const int) -0:89 Constant: -0:89 1 (const int) -0:89 Sequence -0:89 Constant: -0:89 0 (const int) -0:89 Constant: -0:89 1 (const int) -0:89 Constant: -0:89 0 (const int) -0:89 0 (const int) -0:90 move second child to first child ( temp highp 3-component vector of int) -0:90 vector swizzle ( temp highp 3-component vector of int) -0:90 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:90 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:90 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:90 Constant: -0:90 2 (const int) -0:90 Constant: -0:90 1 (const int) -0:90 Sequence -0:90 Constant: -0:90 0 (const int) -0:90 Constant: -0:90 1 (const int) -0:90 Constant: -0:90 2 (const int) -0:90 Convert bool to int ( temp highp 3-component vector of int) -0:90 subgroupAnd ( global 3-component vector of bool) -0:90 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:90 vector swizzle ( temp highp 3-component vector of int) -0:90 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:90 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:90 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:90 Constant: -0:90 1 (const int) -0:90 Constant: -0:90 1 (const int) -0:90 Sequence -0:90 Constant: -0:90 0 (const int) -0:90 Constant: -0:90 1 (const int) -0:90 Constant: -0:90 2 (const int) -0:90 Constant: -0:90 0 (const int) -0:90 0 (const int) -0:90 0 (const int) -0:91 move second child to first child ( temp highp 4-component vector of int) -0:91 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:91 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:91 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:91 Constant: -0:91 2 (const int) -0:91 Constant: -0:91 1 (const int) -0:91 Convert bool to int ( temp highp 4-component vector of int) -0:91 subgroupAnd ( global 4-component vector of bool) -0:91 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:91 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:91 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:91 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:91 Constant: -0:91 1 (const int) -0:91 Constant: -0:91 1 (const int) -0:91 Constant: -0:91 0 (const int) -0:91 0 (const int) -0:91 0 (const int) -0:91 0 (const int) -0:93 move second child to first child ( temp highp int) -0:93 direct index ( temp highp int) -0:93 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:93 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:93 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:93 Constant: -0:93 3 (const int) -0:93 Constant: -0:93 1 (const int) -0:93 Constant: -0:93 0 (const int) -0:93 subgroupOr ( global highp int) -0:93 direct index ( temp highp int) -0:93 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:93 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:93 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:93 Constant: -0:93 0 (const int) -0:93 Constant: -0:93 1 (const int) -0:93 Constant: -0:93 0 (const int) -0:94 move second child to first child ( temp highp 2-component vector of int) -0:94 vector swizzle ( temp highp 2-component vector of int) -0:94 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:94 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:94 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:94 Constant: -0:94 3 (const int) -0:94 Constant: -0:94 1 (const int) -0:94 Sequence -0:94 Constant: -0:94 0 (const int) -0:94 Constant: -0:94 1 (const int) -0:94 subgroupOr ( global highp 2-component vector of int) -0:94 vector swizzle ( temp highp 2-component vector of int) -0:94 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:94 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:94 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:94 Constant: -0:94 1 (const int) -0:94 Constant: -0:94 1 (const int) -0:94 Sequence -0:94 Constant: -0:94 0 (const int) -0:94 Constant: -0:94 1 (const int) -0:95 move second child to first child ( temp highp 3-component vector of int) -0:95 vector swizzle ( temp highp 3-component vector of int) -0:95 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:95 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:95 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:95 Constant: -0:95 3 (const int) -0:95 Constant: -0:95 1 (const int) -0:95 Sequence -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 1 (const int) -0:95 Constant: -0:95 2 (const int) -0:95 subgroupOr ( global highp 3-component vector of int) -0:95 vector swizzle ( temp highp 3-component vector of int) -0:95 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:95 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:95 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:95 Constant: -0:95 2 (const int) -0:95 Constant: -0:95 1 (const int) -0:95 Sequence -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 1 (const int) -0:95 Constant: -0:95 2 (const int) -0:96 move second child to first child ( temp highp 4-component vector of int) -0:96 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:96 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:96 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:96 Constant: -0:96 3 (const int) -0:96 Constant: -0:96 1 (const int) -0:96 subgroupOr ( global highp 4-component vector of int) -0:96 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:96 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:96 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:96 Constant: -0:96 3 (const int) -0:96 Constant: -0:96 1 (const int) -0:98 move second child to first child ( temp highp uint) -0:98 direct index ( temp highp uint) -0:98 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:98 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:98 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:98 Constant: -0:98 0 (const int) -0:98 Constant: -0:98 2 (const int) -0:98 Constant: -0:98 0 (const int) -0:98 subgroupOr ( global highp uint) -0:98 direct index ( temp highp uint) -0:98 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:98 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:98 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:98 Constant: -0:98 0 (const int) -0:98 Constant: -0:98 2 (const int) -0:98 Constant: -0:98 0 (const int) -0:99 move second child to first child ( temp highp 2-component vector of uint) -0:99 vector swizzle ( temp highp 2-component vector of uint) -0:99 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:99 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:99 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:99 Constant: -0:99 0 (const int) -0:99 Constant: -0:99 2 (const int) -0:99 Sequence -0:99 Constant: -0:99 0 (const int) -0:99 Constant: -0:99 1 (const int) -0:99 subgroupOr ( global highp 2-component vector of uint) -0:99 vector swizzle ( temp highp 2-component vector of uint) -0:99 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:99 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:99 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:99 Constant: -0:99 1 (const int) -0:99 Constant: -0:99 2 (const int) -0:99 Sequence -0:99 Constant: -0:99 0 (const int) -0:99 Constant: -0:99 1 (const int) -0:100 move second child to first child ( temp highp 3-component vector of uint) -0:100 vector swizzle ( temp highp 3-component vector of uint) -0:100 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:100 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:100 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:100 Constant: -0:100 0 (const int) -0:100 Constant: -0:100 2 (const int) -0:100 Sequence -0:100 Constant: -0:100 0 (const int) -0:100 Constant: -0:100 1 (const int) -0:100 Constant: -0:100 2 (const int) -0:100 subgroupOr ( global highp 3-component vector of uint) -0:100 vector swizzle ( temp highp 3-component vector of uint) -0:100 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:100 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:100 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:100 Constant: -0:100 2 (const int) -0:100 Constant: -0:100 2 (const int) -0:100 Sequence -0:100 Constant: -0:100 0 (const int) -0:100 Constant: -0:100 1 (const int) -0:100 Constant: -0:100 2 (const int) -0:101 move second child to first child ( temp highp 4-component vector of uint) -0:101 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:101 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:101 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 2 (const int) -0:101 subgroupOr ( global highp 4-component vector of uint) -0:101 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:101 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:101 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:101 Constant: -0:101 3 (const int) -0:101 Constant: -0:101 2 (const int) -0:103 move second child to first child ( temp highp int) -0:103 direct index ( temp highp int) -0:103 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:103 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:103 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:103 Constant: -0:103 1 (const int) -0:103 Constant: -0:103 1 (const int) -0:103 Constant: -0:103 0 (const int) -0:103 Convert bool to int ( temp highp int) -0:103 subgroupOr ( global bool) -0:103 Compare Less Than ( temp bool) -0:103 direct index ( temp highp int) -0:103 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:103 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:103 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:103 Constant: -0:103 0 (const int) -0:103 Constant: -0:103 1 (const int) -0:103 Constant: -0:103 0 (const int) -0:103 Constant: -0:103 0 (const int) -0:104 move second child to first child ( temp highp 2-component vector of int) -0:104 vector swizzle ( temp highp 2-component vector of int) -0:104 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:104 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:104 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:104 Constant: -0:104 1 (const int) -0:104 Constant: -0:104 1 (const int) -0:104 Sequence -0:104 Constant: -0:104 0 (const int) -0:104 Constant: -0:104 1 (const int) -0:104 Convert bool to int ( temp highp 2-component vector of int) -0:104 subgroupOr ( global 2-component vector of bool) -0:104 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:104 vector swizzle ( temp highp 2-component vector of int) -0:104 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:104 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:104 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:104 Constant: -0:104 1 (const int) -0:104 Constant: -0:104 1 (const int) -0:104 Sequence -0:104 Constant: -0:104 0 (const int) -0:104 Constant: -0:104 1 (const int) -0:104 Constant: -0:104 0 (const int) -0:104 0 (const int) -0:105 move second child to first child ( temp highp 3-component vector of int) -0:105 vector swizzle ( temp highp 3-component vector of int) -0:105 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:105 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:105 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:105 Constant: -0:105 1 (const int) -0:105 Constant: -0:105 1 (const int) -0:105 Sequence -0:105 Constant: -0:105 0 (const int) -0:105 Constant: -0:105 1 (const int) -0:105 Constant: -0:105 2 (const int) -0:105 Convert bool to int ( temp highp 3-component vector of int) -0:105 subgroupOr ( global 3-component vector of bool) -0:105 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:105 vector swizzle ( temp highp 3-component vector of int) -0:105 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:105 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:105 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:105 Constant: -0:105 1 (const int) -0:105 Constant: -0:105 1 (const int) -0:105 Sequence -0:105 Constant: -0:105 0 (const int) -0:105 Constant: -0:105 1 (const int) -0:105 Constant: -0:105 2 (const int) -0:105 Constant: -0:105 0 (const int) -0:105 0 (const int) -0:105 0 (const int) -0:106 move second child to first child ( temp highp 4-component vector of int) -0:106 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:106 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:106 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:106 Constant: -0:106 1 (const int) -0:106 Constant: -0:106 1 (const int) -0:106 Convert bool to int ( temp highp 4-component vector of int) -0:106 subgroupOr ( global 4-component vector of bool) -0:106 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:106 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:106 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:106 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:106 Constant: -0:106 1 (const int) -0:106 Constant: -0:106 1 (const int) -0:106 Constant: -0:106 0 (const int) -0:106 0 (const int) -0:106 0 (const int) -0:106 0 (const int) -0:108 move second child to first child ( temp highp int) -0:108 direct index ( temp highp int) -0:108 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:108 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:108 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:108 Constant: -0:108 2 (const int) -0:108 Constant: -0:108 1 (const int) -0:108 Constant: -0:108 0 (const int) -0:108 subgroupXor ( global highp int) -0:108 direct index ( temp highp int) -0:108 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:108 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:108 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:108 Constant: -0:108 0 (const int) -0:108 Constant: -0:108 1 (const int) -0:108 Constant: -0:108 0 (const int) -0:109 move second child to first child ( temp highp 2-component vector of int) -0:109 vector swizzle ( temp highp 2-component vector of int) -0:109 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:109 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:109 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:109 Constant: -0:109 2 (const int) -0:109 Constant: -0:109 1 (const int) -0:109 Sequence -0:109 Constant: -0:109 0 (const int) -0:109 Constant: -0:109 1 (const int) -0:109 subgroupXor ( global highp 2-component vector of int) -0:109 vector swizzle ( temp highp 2-component vector of int) -0:109 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:109 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:109 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:109 Constant: -0:109 1 (const int) -0:109 Constant: -0:109 1 (const int) -0:109 Sequence -0:109 Constant: -0:109 0 (const int) -0:109 Constant: -0:109 1 (const int) -0:110 move second child to first child ( temp highp 3-component vector of int) -0:110 vector swizzle ( temp highp 3-component vector of int) -0:110 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:110 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:110 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:110 Constant: -0:110 2 (const int) -0:110 Constant: -0:110 1 (const int) -0:110 Sequence -0:110 Constant: -0:110 0 (const int) -0:110 Constant: -0:110 1 (const int) -0:110 Constant: -0:110 2 (const int) -0:110 subgroupXor ( global highp 3-component vector of int) -0:110 vector swizzle ( temp highp 3-component vector of int) -0:110 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:110 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:110 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:110 Constant: -0:110 2 (const int) -0:110 Constant: -0:110 1 (const int) -0:110 Sequence -0:110 Constant: -0:110 0 (const int) -0:110 Constant: -0:110 1 (const int) -0:110 Constant: -0:110 2 (const int) -0:111 move second child to first child ( temp highp 4-component vector of int) -0:111 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:111 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:111 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:111 Constant: -0:111 2 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 subgroupXor ( global highp 4-component vector of int) -0:111 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:111 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:111 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:111 Constant: -0:111 3 (const int) -0:111 Constant: -0:111 1 (const int) -0:113 move second child to first child ( temp highp uint) -0:113 direct index ( temp highp uint) -0:113 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:113 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:113 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:113 Constant: -0:113 3 (const int) -0:113 Constant: -0:113 2 (const int) -0:113 Constant: -0:113 0 (const int) -0:113 subgroupXor ( global highp uint) -0:113 direct index ( temp highp uint) -0:113 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:113 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:113 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:113 Constant: -0:113 0 (const int) -0:113 Constant: -0:113 2 (const int) -0:113 Constant: -0:113 0 (const int) -0:114 move second child to first child ( temp highp 2-component vector of uint) -0:114 vector swizzle ( temp highp 2-component vector of uint) -0:114 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:114 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:114 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:114 Constant: -0:114 3 (const int) -0:114 Constant: -0:114 2 (const int) -0:114 Sequence -0:114 Constant: -0:114 0 (const int) -0:114 Constant: -0:114 1 (const int) -0:114 subgroupXor ( global highp 2-component vector of uint) -0:114 vector swizzle ( temp highp 2-component vector of uint) -0:114 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:114 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:114 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:114 Constant: -0:114 1 (const int) -0:114 Constant: -0:114 2 (const int) -0:114 Sequence -0:114 Constant: -0:114 0 (const int) -0:114 Constant: -0:114 1 (const int) -0:115 move second child to first child ( temp highp 3-component vector of uint) -0:115 vector swizzle ( temp highp 3-component vector of uint) -0:115 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:115 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:115 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:115 Constant: -0:115 3 (const int) -0:115 Constant: -0:115 2 (const int) -0:115 Sequence -0:115 Constant: -0:115 0 (const int) -0:115 Constant: -0:115 1 (const int) -0:115 Constant: -0:115 2 (const int) -0:115 subgroupXor ( global highp 3-component vector of uint) -0:115 vector swizzle ( temp highp 3-component vector of uint) -0:115 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:115 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:115 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:115 Constant: -0:115 2 (const int) -0:115 Constant: -0:115 2 (const int) -0:115 Sequence -0:115 Constant: -0:115 0 (const int) -0:115 Constant: -0:115 1 (const int) -0:115 Constant: -0:115 2 (const int) -0:116 move second child to first child ( temp highp 4-component vector of uint) -0:116 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:116 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:116 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:116 Constant: -0:116 3 (const int) -0:116 Constant: -0:116 2 (const int) -0:116 subgroupXor ( global highp 4-component vector of uint) -0:116 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:116 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:116 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:116 Constant: -0:116 3 (const int) -0:116 Constant: -0:116 2 (const int) -0:118 move second child to first child ( temp highp int) -0:118 direct index ( temp highp int) -0:118 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:118 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:118 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:118 Constant: -0:118 0 (const int) -0:118 Constant: -0:118 1 (const int) -0:118 Constant: -0:118 0 (const int) -0:118 Convert bool to int ( temp highp int) -0:118 subgroupXor ( global bool) -0:118 Compare Less Than ( temp bool) -0:118 direct index ( temp highp int) -0:118 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:118 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:118 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:118 Constant: -0:118 0 (const int) -0:118 Constant: -0:118 1 (const int) -0:118 Constant: -0:118 0 (const int) -0:118 Constant: -0:118 0 (const int) -0:119 move second child to first child ( temp highp 2-component vector of int) -0:119 vector swizzle ( temp highp 2-component vector of int) -0:119 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:119 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:119 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:119 Constant: -0:119 0 (const int) -0:119 Constant: -0:119 1 (const int) -0:119 Sequence -0:119 Constant: -0:119 0 (const int) -0:119 Constant: -0:119 1 (const int) -0:119 Convert bool to int ( temp highp 2-component vector of int) -0:119 subgroupXor ( global 2-component vector of bool) -0:119 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:119 vector swizzle ( temp highp 2-component vector of int) -0:119 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:119 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:119 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:119 Constant: -0:119 1 (const int) -0:119 Constant: -0:119 1 (const int) -0:119 Sequence -0:119 Constant: -0:119 0 (const int) -0:119 Constant: -0:119 1 (const int) -0:119 Constant: -0:119 0 (const int) -0:119 0 (const int) -0:120 move second child to first child ( temp highp 3-component vector of int) -0:120 vector swizzle ( temp highp 3-component vector of int) -0:120 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:120 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:120 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:120 Constant: -0:120 0 (const int) -0:120 Constant: -0:120 1 (const int) -0:120 Sequence -0:120 Constant: -0:120 0 (const int) -0:120 Constant: -0:120 1 (const int) -0:120 Constant: -0:120 2 (const int) -0:120 Convert bool to int ( temp highp 3-component vector of int) -0:120 subgroupXor ( global 3-component vector of bool) -0:120 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:120 vector swizzle ( temp highp 3-component vector of int) -0:120 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:120 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:120 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:120 Constant: -0:120 1 (const int) -0:120 Constant: -0:120 1 (const int) -0:120 Sequence -0:120 Constant: -0:120 0 (const int) -0:120 Constant: -0:120 1 (const int) -0:120 Constant: -0:120 2 (const int) -0:120 Constant: -0:120 0 (const int) -0:120 0 (const int) -0:120 0 (const int) -0:121 move second child to first child ( temp highp 4-component vector of int) -0:121 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:121 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:121 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 1 (const int) -0:121 Convert bool to int ( temp highp 4-component vector of int) -0:121 subgroupXor ( global 4-component vector of bool) -0:121 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:121 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:121 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:121 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:121 Constant: -0:121 1 (const int) -0:121 Constant: -0:121 1 (const int) -0:121 Constant: -0:121 0 (const int) -0:121 0 (const int) -0:121 0 (const int) -0:121 0 (const int) -0:123 move second child to first child ( temp highp float) -0:123 direct index ( temp highp float) -0:123 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:123 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:123 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:123 Constant: -0:123 1 (const int) -0:123 Constant: -0:123 0 (const int) -0:123 Constant: -0:123 0 (const int) -0:123 subgroupInclusiveAdd ( global highp float) -0:123 direct index ( temp highp float) -0:123 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:123 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:123 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:123 Constant: -0:123 0 (const int) -0:123 Constant: -0:123 0 (const int) -0:123 Constant: -0:123 0 (const int) -0:124 move second child to first child ( temp highp 2-component vector of float) -0:124 vector swizzle ( temp highp 2-component vector of float) -0:124 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:124 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:124 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:124 Constant: -0:124 1 (const int) -0:124 Constant: -0:124 0 (const int) -0:124 Sequence -0:124 Constant: -0:124 0 (const int) -0:124 Constant: -0:124 1 (const int) -0:124 subgroupInclusiveAdd ( global highp 2-component vector of float) -0:124 vector swizzle ( temp highp 2-component vector of float) -0:124 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:124 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:124 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:124 Constant: -0:124 1 (const int) -0:124 Constant: -0:124 0 (const int) -0:124 Sequence -0:124 Constant: -0:124 0 (const int) -0:124 Constant: -0:124 1 (const int) -0:125 move second child to first child ( temp highp 3-component vector of float) -0:125 vector swizzle ( temp highp 3-component vector of float) -0:125 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:125 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:125 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:125 Constant: -0:125 1 (const int) -0:125 Constant: -0:125 0 (const int) -0:125 Sequence -0:125 Constant: -0:125 0 (const int) -0:125 Constant: -0:125 1 (const int) -0:125 Constant: -0:125 2 (const int) -0:125 subgroupInclusiveAdd ( global highp 3-component vector of float) -0:125 vector swizzle ( temp highp 3-component vector of float) -0:125 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:125 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:125 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:125 Constant: -0:125 2 (const int) -0:125 Constant: -0:125 0 (const int) -0:125 Sequence -0:125 Constant: -0:125 0 (const int) -0:125 Constant: -0:125 1 (const int) -0:125 Constant: -0:125 2 (const int) -0:126 move second child to first child ( temp highp 4-component vector of float) -0:126 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:126 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:126 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:126 Constant: -0:126 1 (const int) -0:126 Constant: -0:126 0 (const int) -0:126 subgroupInclusiveAdd ( global highp 4-component vector of float) -0:126 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:126 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:126 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:126 Constant: -0:126 3 (const int) -0:126 Constant: -0:126 0 (const int) -0:128 move second child to first child ( temp highp int) -0:128 direct index ( temp highp int) -0:128 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:128 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:128 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:128 Constant: -0:128 2 (const int) -0:128 Constant: -0:128 1 (const int) -0:128 Constant: -0:128 0 (const int) -0:128 subgroupInclusiveAdd ( global highp int) -0:128 direct index ( temp highp int) -0:128 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:128 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:128 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:128 Constant: -0:128 0 (const int) -0:128 Constant: -0:128 1 (const int) -0:128 Constant: -0:128 0 (const int) -0:129 move second child to first child ( temp highp 2-component vector of int) -0:129 vector swizzle ( temp highp 2-component vector of int) -0:129 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:129 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:129 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:129 Constant: -0:129 2 (const int) -0:129 Constant: -0:129 1 (const int) -0:129 Sequence -0:129 Constant: -0:129 0 (const int) -0:129 Constant: -0:129 1 (const int) -0:129 subgroupInclusiveAdd ( global highp 2-component vector of int) -0:129 vector swizzle ( temp highp 2-component vector of int) -0:129 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:129 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:129 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:129 Constant: -0:129 1 (const int) -0:129 Constant: -0:129 1 (const int) -0:129 Sequence -0:129 Constant: -0:129 0 (const int) -0:129 Constant: -0:129 1 (const int) -0:130 move second child to first child ( temp highp 3-component vector of int) -0:130 vector swizzle ( temp highp 3-component vector of int) -0:130 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:130 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:130 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:130 Constant: -0:130 2 (const int) -0:130 Constant: -0:130 1 (const int) -0:130 Sequence -0:130 Constant: -0:130 0 (const int) -0:130 Constant: -0:130 1 (const int) -0:130 Constant: -0:130 2 (const int) -0:130 subgroupInclusiveAdd ( global highp 3-component vector of int) -0:130 vector swizzle ( temp highp 3-component vector of int) -0:130 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:130 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:130 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:130 Constant: -0:130 2 (const int) -0:130 Constant: -0:130 1 (const int) -0:130 Sequence -0:130 Constant: -0:130 0 (const int) -0:130 Constant: -0:130 1 (const int) -0:130 Constant: -0:130 2 (const int) -0:131 move second child to first child ( temp highp 4-component vector of int) -0:131 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:131 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:131 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:131 Constant: -0:131 2 (const int) -0:131 Constant: -0:131 1 (const int) -0:131 subgroupInclusiveAdd ( global highp 4-component vector of int) -0:131 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:131 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:131 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:131 Constant: -0:131 3 (const int) -0:131 Constant: -0:131 1 (const int) -0:133 move second child to first child ( temp highp uint) -0:133 direct index ( temp highp uint) -0:133 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:133 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:133 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:133 Constant: -0:133 3 (const int) -0:133 Constant: -0:133 2 (const int) -0:133 Constant: -0:133 0 (const int) -0:133 subgroupInclusiveAdd ( global highp uint) -0:133 direct index ( temp highp uint) -0:133 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:133 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:133 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:133 Constant: -0:133 0 (const int) -0:133 Constant: -0:133 2 (const int) -0:133 Constant: -0:133 0 (const int) -0:134 move second child to first child ( temp highp 2-component vector of uint) -0:134 vector swizzle ( temp highp 2-component vector of uint) -0:134 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:134 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:134 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:134 Constant: -0:134 3 (const int) -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 subgroupInclusiveAdd ( global highp 2-component vector of uint) -0:134 vector swizzle ( temp highp 2-component vector of uint) -0:134 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:134 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:134 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:134 Constant: -0:134 1 (const int) -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:135 move second child to first child ( temp highp 3-component vector of uint) -0:135 vector swizzle ( temp highp 3-component vector of uint) -0:135 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:135 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:135 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:135 Constant: -0:135 3 (const int) -0:135 Constant: -0:135 2 (const int) -0:135 Sequence -0:135 Constant: -0:135 0 (const int) -0:135 Constant: -0:135 1 (const int) -0:135 Constant: -0:135 2 (const int) -0:135 subgroupInclusiveAdd ( global highp 3-component vector of uint) -0:135 vector swizzle ( temp highp 3-component vector of uint) -0:135 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:135 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:135 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:135 Constant: -0:135 2 (const int) -0:135 Constant: -0:135 2 (const int) -0:135 Sequence -0:135 Constant: -0:135 0 (const int) -0:135 Constant: -0:135 1 (const int) -0:135 Constant: -0:135 2 (const int) -0:136 move second child to first child ( temp highp 4-component vector of uint) -0:136 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:136 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:136 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:136 Constant: -0:136 3 (const int) -0:136 Constant: -0:136 2 (const int) -0:136 subgroupInclusiveAdd ( global highp 4-component vector of uint) -0:136 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:136 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:136 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:136 Constant: -0:136 3 (const int) -0:136 Constant: -0:136 2 (const int) -0:138 move second child to first child ( temp highp float) -0:138 direct index ( temp highp float) -0:138 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:138 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:138 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:138 Constant: -0:138 0 (const int) -0:138 Constant: -0:138 0 (const int) -0:138 Constant: -0:138 0 (const int) -0:138 subgroupInclusiveMul ( global highp float) -0:138 direct index ( temp highp float) -0:138 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:138 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:138 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:138 Constant: -0:138 0 (const int) -0:138 Constant: -0:138 0 (const int) -0:138 Constant: -0:138 0 (const int) -0:139 move second child to first child ( temp highp 2-component vector of float) -0:139 vector swizzle ( temp highp 2-component vector of float) -0:139 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:139 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:139 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:139 Constant: -0:139 0 (const int) -0:139 Constant: -0:139 0 (const int) -0:139 Sequence -0:139 Constant: -0:139 0 (const int) -0:139 Constant: -0:139 1 (const int) -0:139 subgroupInclusiveMul ( global highp 2-component vector of float) -0:139 vector swizzle ( temp highp 2-component vector of float) -0:139 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:139 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:139 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:139 Constant: -0:139 1 (const int) -0:139 Constant: -0:139 0 (const int) -0:139 Sequence -0:139 Constant: -0:139 0 (const int) -0:139 Constant: -0:139 1 (const int) -0:140 move second child to first child ( temp highp 3-component vector of float) -0:140 vector swizzle ( temp highp 3-component vector of float) -0:140 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:140 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:140 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:140 Constant: -0:140 0 (const int) -0:140 Constant: -0:140 0 (const int) -0:140 Sequence -0:140 Constant: -0:140 0 (const int) -0:140 Constant: -0:140 1 (const int) -0:140 Constant: -0:140 2 (const int) -0:140 subgroupInclusiveMul ( global highp 3-component vector of float) -0:140 vector swizzle ( temp highp 3-component vector of float) -0:140 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:140 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:140 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:140 Constant: -0:140 2 (const int) -0:140 Constant: -0:140 0 (const int) -0:140 Sequence -0:140 Constant: -0:140 0 (const int) -0:140 Constant: -0:140 1 (const int) -0:140 Constant: -0:140 2 (const int) -0:141 move second child to first child ( temp highp 4-component vector of float) -0:141 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:141 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:141 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:141 Constant: -0:141 0 (const int) -0:141 Constant: -0:141 0 (const int) -0:141 subgroupInclusiveMul ( global highp 4-component vector of float) -0:141 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:141 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:141 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:141 Constant: -0:141 3 (const int) -0:141 Constant: -0:141 0 (const int) -0:143 move second child to first child ( temp highp int) -0:143 direct index ( temp highp int) -0:143 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:143 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:143 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:143 Constant: -0:143 1 (const int) -0:143 Constant: -0:143 1 (const int) -0:143 Constant: -0:143 0 (const int) -0:143 subgroupInclusiveMul ( global highp int) -0:143 direct index ( temp highp int) -0:143 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:143 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:143 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:143 Constant: -0:143 0 (const int) -0:143 Constant: -0:143 1 (const int) -0:143 Constant: -0:143 0 (const int) -0:144 move second child to first child ( temp highp 2-component vector of int) -0:144 vector swizzle ( temp highp 2-component vector of int) -0:144 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:144 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:144 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:144 Constant: -0:144 1 (const int) -0:144 Constant: -0:144 1 (const int) -0:144 Sequence -0:144 Constant: -0:144 0 (const int) -0:144 Constant: -0:144 1 (const int) -0:144 subgroupInclusiveMul ( global highp 2-component vector of int) -0:144 vector swizzle ( temp highp 2-component vector of int) -0:144 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:144 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:144 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:144 Constant: -0:144 1 (const int) -0:144 Constant: -0:144 1 (const int) -0:144 Sequence -0:144 Constant: -0:144 0 (const int) -0:144 Constant: -0:144 1 (const int) -0:145 move second child to first child ( temp highp 3-component vector of int) -0:145 vector swizzle ( temp highp 3-component vector of int) -0:145 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:145 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:145 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:145 Constant: -0:145 1 (const int) -0:145 Constant: -0:145 1 (const int) -0:145 Sequence -0:145 Constant: -0:145 0 (const int) -0:145 Constant: -0:145 1 (const int) -0:145 Constant: -0:145 2 (const int) -0:145 subgroupInclusiveMul ( global highp 3-component vector of int) -0:145 vector swizzle ( temp highp 3-component vector of int) -0:145 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:145 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:145 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:145 Constant: -0:145 2 (const int) -0:145 Constant: -0:145 1 (const int) -0:145 Sequence -0:145 Constant: -0:145 0 (const int) -0:145 Constant: -0:145 1 (const int) -0:145 Constant: -0:145 2 (const int) -0:146 move second child to first child ( temp highp 4-component vector of int) -0:146 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:146 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:146 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:146 Constant: -0:146 1 (const int) -0:146 Constant: -0:146 1 (const int) -0:146 subgroupInclusiveMul ( global highp 4-component vector of int) -0:146 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:146 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:146 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:146 Constant: -0:146 3 (const int) -0:146 Constant: -0:146 1 (const int) -0:148 move second child to first child ( temp highp uint) -0:148 direct index ( temp highp uint) -0:148 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:148 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:148 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:148 Constant: -0:148 2 (const int) -0:148 Constant: -0:148 2 (const int) -0:148 Constant: -0:148 0 (const int) -0:148 subgroupInclusiveMul ( global highp uint) -0:148 direct index ( temp highp uint) -0:148 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:148 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:148 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:148 Constant: -0:148 0 (const int) -0:148 Constant: -0:148 2 (const int) -0:148 Constant: -0:148 0 (const int) -0:149 move second child to first child ( temp highp 2-component vector of uint) -0:149 vector swizzle ( temp highp 2-component vector of uint) -0:149 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:149 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:149 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:149 Constant: -0:149 2 (const int) -0:149 Constant: -0:149 2 (const int) -0:149 Sequence -0:149 Constant: -0:149 0 (const int) -0:149 Constant: -0:149 1 (const int) -0:149 subgroupInclusiveMul ( global highp 2-component vector of uint) -0:149 vector swizzle ( temp highp 2-component vector of uint) -0:149 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:149 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:149 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:149 Constant: -0:149 1 (const int) -0:149 Constant: -0:149 2 (const int) -0:149 Sequence -0:149 Constant: -0:149 0 (const int) -0:149 Constant: -0:149 1 (const int) -0:150 move second child to first child ( temp highp 3-component vector of uint) -0:150 vector swizzle ( temp highp 3-component vector of uint) -0:150 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:150 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:150 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:150 Constant: -0:150 2 (const int) -0:150 Constant: -0:150 2 (const int) -0:150 Sequence -0:150 Constant: -0:150 0 (const int) -0:150 Constant: -0:150 1 (const int) -0:150 Constant: -0:150 2 (const int) -0:150 subgroupInclusiveMul ( global highp 3-component vector of uint) -0:150 vector swizzle ( temp highp 3-component vector of uint) -0:150 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:150 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:150 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:150 Constant: -0:150 2 (const int) -0:150 Constant: -0:150 2 (const int) -0:150 Sequence -0:150 Constant: -0:150 0 (const int) -0:150 Constant: -0:150 1 (const int) -0:150 Constant: -0:150 2 (const int) -0:151 move second child to first child ( temp highp 4-component vector of uint) -0:151 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:151 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:151 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:151 Constant: -0:151 2 (const int) -0:151 Constant: -0:151 2 (const int) -0:151 subgroupInclusiveMul ( global highp 4-component vector of uint) -0:151 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:151 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:151 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:151 Constant: -0:151 3 (const int) -0:151 Constant: -0:151 2 (const int) -0:153 move second child to first child ( temp highp float) -0:153 direct index ( temp highp float) -0:153 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:153 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:153 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:153 Constant: -0:153 3 (const int) -0:153 Constant: -0:153 0 (const int) -0:153 Constant: -0:153 0 (const int) -0:153 subgroupInclusiveMin ( global highp float) -0:153 direct index ( temp highp float) -0:153 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:153 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:153 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:153 Constant: -0:153 0 (const int) -0:153 Constant: -0:153 0 (const int) -0:153 Constant: -0:153 0 (const int) -0:154 move second child to first child ( temp highp 2-component vector of float) -0:154 vector swizzle ( temp highp 2-component vector of float) -0:154 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:154 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:154 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:154 Constant: -0:154 3 (const int) -0:154 Constant: -0:154 0 (const int) -0:154 Sequence -0:154 Constant: -0:154 0 (const int) -0:154 Constant: -0:154 1 (const int) -0:154 subgroupInclusiveMin ( global highp 2-component vector of float) -0:154 vector swizzle ( temp highp 2-component vector of float) -0:154 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:154 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:154 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:154 Constant: -0:154 1 (const int) -0:154 Constant: -0:154 0 (const int) -0:154 Sequence -0:154 Constant: -0:154 0 (const int) -0:154 Constant: -0:154 1 (const int) -0:155 move second child to first child ( temp highp 3-component vector of float) -0:155 vector swizzle ( temp highp 3-component vector of float) -0:155 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:155 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:155 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:155 Constant: -0:155 3 (const int) -0:155 Constant: -0:155 0 (const int) -0:155 Sequence -0:155 Constant: -0:155 0 (const int) -0:155 Constant: -0:155 1 (const int) -0:155 Constant: -0:155 2 (const int) -0:155 subgroupInclusiveMin ( global highp 3-component vector of float) -0:155 vector swizzle ( temp highp 3-component vector of float) -0:155 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:155 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:155 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:155 Constant: -0:155 2 (const int) -0:155 Constant: -0:155 0 (const int) -0:155 Sequence -0:155 Constant: -0:155 0 (const int) -0:155 Constant: -0:155 1 (const int) -0:155 Constant: -0:155 2 (const int) -0:156 move second child to first child ( temp highp 4-component vector of float) -0:156 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:156 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:156 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:156 Constant: -0:156 3 (const int) -0:156 Constant: -0:156 0 (const int) -0:156 subgroupInclusiveMin ( global highp 4-component vector of float) -0:156 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:156 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:156 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:156 Constant: -0:156 3 (const int) -0:156 Constant: -0:156 0 (const int) -0:158 move second child to first child ( temp highp int) -0:158 direct index ( temp highp int) -0:158 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:158 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:158 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:158 Constant: -0:158 0 (const int) -0:158 Constant: -0:158 1 (const int) -0:158 Constant: -0:158 0 (const int) -0:158 subgroupInclusiveMin ( global highp int) -0:158 direct index ( temp highp int) -0:158 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:158 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:158 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:158 Constant: -0:158 0 (const int) -0:158 Constant: -0:158 1 (const int) -0:158 Constant: -0:158 0 (const int) -0:159 move second child to first child ( temp highp 2-component vector of int) -0:159 vector swizzle ( temp highp 2-component vector of int) -0:159 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:159 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:159 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:159 Constant: -0:159 0 (const int) -0:159 Constant: -0:159 1 (const int) -0:159 Sequence -0:159 Constant: -0:159 0 (const int) -0:159 Constant: -0:159 1 (const int) -0:159 subgroupInclusiveMin ( global highp 2-component vector of int) -0:159 vector swizzle ( temp highp 2-component vector of int) -0:159 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:159 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:159 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:159 Constant: -0:159 1 (const int) -0:159 Constant: -0:159 1 (const int) -0:159 Sequence -0:159 Constant: -0:159 0 (const int) -0:159 Constant: -0:159 1 (const int) -0:160 move second child to first child ( temp highp 3-component vector of int) -0:160 vector swizzle ( temp highp 3-component vector of int) -0:160 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:160 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:160 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:160 Constant: -0:160 0 (const int) -0:160 Constant: -0:160 1 (const int) -0:160 Sequence -0:160 Constant: -0:160 0 (const int) -0:160 Constant: -0:160 1 (const int) -0:160 Constant: -0:160 2 (const int) -0:160 subgroupInclusiveMin ( global highp 3-component vector of int) -0:160 vector swizzle ( temp highp 3-component vector of int) -0:160 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:160 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:160 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:160 Constant: -0:160 2 (const int) -0:160 Constant: -0:160 1 (const int) -0:160 Sequence -0:160 Constant: -0:160 0 (const int) -0:160 Constant: -0:160 1 (const int) -0:160 Constant: -0:160 2 (const int) -0:161 move second child to first child ( temp highp 4-component vector of int) -0:161 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:161 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:161 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:161 Constant: -0:161 0 (const int) -0:161 Constant: -0:161 1 (const int) -0:161 subgroupInclusiveMin ( global highp 4-component vector of int) -0:161 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:161 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:161 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:161 Constant: -0:161 3 (const int) -0:161 Constant: -0:161 1 (const int) -0:163 move second child to first child ( temp highp uint) -0:163 direct index ( temp highp uint) -0:163 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:163 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:163 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:163 Constant: -0:163 1 (const int) -0:163 Constant: -0:163 2 (const int) -0:163 Constant: -0:163 0 (const int) -0:163 subgroupInclusiveMin ( global highp uint) -0:163 direct index ( temp highp uint) -0:163 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:163 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:163 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:163 Constant: -0:163 0 (const int) -0:163 Constant: -0:163 2 (const int) -0:163 Constant: -0:163 0 (const int) -0:164 move second child to first child ( temp highp 2-component vector of uint) -0:164 vector swizzle ( temp highp 2-component vector of uint) -0:164 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:164 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:164 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:164 Constant: -0:164 1 (const int) -0:164 Constant: -0:164 2 (const int) -0:164 Sequence -0:164 Constant: -0:164 0 (const int) -0:164 Constant: -0:164 1 (const int) -0:164 subgroupInclusiveMin ( global highp 2-component vector of uint) -0:164 vector swizzle ( temp highp 2-component vector of uint) -0:164 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:164 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:164 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:164 Constant: -0:164 1 (const int) -0:164 Constant: -0:164 2 (const int) -0:164 Sequence -0:164 Constant: -0:164 0 (const int) -0:164 Constant: -0:164 1 (const int) -0:165 move second child to first child ( temp highp 3-component vector of uint) -0:165 vector swizzle ( temp highp 3-component vector of uint) -0:165 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:165 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:165 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:165 Constant: -0:165 1 (const int) -0:165 Constant: -0:165 2 (const int) -0:165 Sequence -0:165 Constant: -0:165 0 (const int) -0:165 Constant: -0:165 1 (const int) -0:165 Constant: -0:165 2 (const int) -0:165 subgroupInclusiveMin ( global highp 3-component vector of uint) -0:165 vector swizzle ( temp highp 3-component vector of uint) -0:165 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:165 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:165 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:165 Constant: -0:165 2 (const int) -0:165 Constant: -0:165 2 (const int) -0:165 Sequence -0:165 Constant: -0:165 0 (const int) -0:165 Constant: -0:165 1 (const int) -0:165 Constant: -0:165 2 (const int) -0:166 move second child to first child ( temp highp 4-component vector of uint) -0:166 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:166 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:166 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:166 Constant: -0:166 1 (const int) -0:166 Constant: -0:166 2 (const int) -0:166 subgroupInclusiveMin ( global highp 4-component vector of uint) -0:166 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:166 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:166 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:166 Constant: -0:166 3 (const int) -0:166 Constant: -0:166 2 (const int) -0:168 move second child to first child ( temp highp float) -0:168 direct index ( temp highp float) -0:168 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:168 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:168 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:168 Constant: -0:168 2 (const int) -0:168 Constant: -0:168 0 (const int) -0:168 Constant: -0:168 0 (const int) -0:168 subgroupInclusiveMax ( global highp float) -0:168 direct index ( temp highp float) -0:168 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:168 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:168 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:168 Constant: -0:168 0 (const int) -0:168 Constant: -0:168 0 (const int) -0:168 Constant: -0:168 0 (const int) -0:169 move second child to first child ( temp highp 2-component vector of float) -0:169 vector swizzle ( temp highp 2-component vector of float) -0:169 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:169 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:169 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:169 Constant: -0:169 2 (const int) -0:169 Constant: -0:169 0 (const int) -0:169 Sequence -0:169 Constant: -0:169 0 (const int) -0:169 Constant: -0:169 1 (const int) -0:169 subgroupInclusiveMax ( global highp 2-component vector of float) -0:169 vector swizzle ( temp highp 2-component vector of float) -0:169 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:169 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:169 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:169 Constant: -0:169 1 (const int) -0:169 Constant: -0:169 0 (const int) -0:169 Sequence -0:169 Constant: -0:169 0 (const int) -0:169 Constant: -0:169 1 (const int) -0:170 move second child to first child ( temp highp 3-component vector of float) -0:170 vector swizzle ( temp highp 3-component vector of float) -0:170 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:170 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:170 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:170 Constant: -0:170 2 (const int) -0:170 Constant: -0:170 0 (const int) -0:170 Sequence -0:170 Constant: -0:170 0 (const int) -0:170 Constant: -0:170 1 (const int) -0:170 Constant: -0:170 2 (const int) -0:170 subgroupInclusiveMax ( global highp 3-component vector of float) -0:170 vector swizzle ( temp highp 3-component vector of float) -0:170 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:170 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:170 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:170 Constant: -0:170 2 (const int) -0:170 Constant: -0:170 0 (const int) -0:170 Sequence -0:170 Constant: -0:170 0 (const int) -0:170 Constant: -0:170 1 (const int) -0:170 Constant: -0:170 2 (const int) -0:171 move second child to first child ( temp highp 4-component vector of float) -0:171 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:171 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:171 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:171 Constant: -0:171 2 (const int) -0:171 Constant: -0:171 0 (const int) -0:171 subgroupInclusiveMax ( global highp 4-component vector of float) -0:171 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:171 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:171 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:171 Constant: -0:171 3 (const int) -0:171 Constant: -0:171 0 (const int) -0:173 move second child to first child ( temp highp int) -0:173 direct index ( temp highp int) -0:173 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:173 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:173 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:173 Constant: -0:173 3 (const int) -0:173 Constant: -0:173 1 (const int) -0:173 Constant: -0:173 0 (const int) -0:173 subgroupInclusiveMax ( global highp int) -0:173 direct index ( temp highp int) -0:173 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:173 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:173 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:173 Constant: -0:173 0 (const int) -0:173 Constant: -0:173 1 (const int) -0:173 Constant: -0:173 0 (const int) -0:174 move second child to first child ( temp highp 2-component vector of int) -0:174 vector swizzle ( temp highp 2-component vector of int) -0:174 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:174 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:174 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:174 Constant: -0:174 3 (const int) -0:174 Constant: -0:174 1 (const int) -0:174 Sequence -0:174 Constant: -0:174 0 (const int) -0:174 Constant: -0:174 1 (const int) -0:174 subgroupInclusiveMax ( global highp 2-component vector of int) -0:174 vector swizzle ( temp highp 2-component vector of int) -0:174 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:174 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:174 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:174 Constant: -0:174 1 (const int) -0:174 Constant: -0:174 1 (const int) -0:174 Sequence -0:174 Constant: -0:174 0 (const int) -0:174 Constant: -0:174 1 (const int) -0:175 move second child to first child ( temp highp 3-component vector of int) -0:175 vector swizzle ( temp highp 3-component vector of int) -0:175 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:175 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:175 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:175 Constant: -0:175 3 (const int) -0:175 Constant: -0:175 1 (const int) -0:175 Sequence -0:175 Constant: -0:175 0 (const int) -0:175 Constant: -0:175 1 (const int) -0:175 Constant: -0:175 2 (const int) -0:175 subgroupInclusiveMax ( global highp 3-component vector of int) -0:175 vector swizzle ( temp highp 3-component vector of int) -0:175 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:175 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:175 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:175 Constant: -0:175 2 (const int) -0:175 Constant: -0:175 1 (const int) -0:175 Sequence -0:175 Constant: -0:175 0 (const int) -0:175 Constant: -0:175 1 (const int) -0:175 Constant: -0:175 2 (const int) -0:176 move second child to first child ( temp highp 4-component vector of int) -0:176 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:176 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:176 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:176 Constant: -0:176 3 (const int) -0:176 Constant: -0:176 1 (const int) -0:176 subgroupInclusiveMax ( global highp 4-component vector of int) -0:176 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:176 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:176 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:176 Constant: -0:176 3 (const int) -0:176 Constant: -0:176 1 (const int) -0:178 move second child to first child ( temp highp uint) -0:178 direct index ( temp highp uint) -0:178 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:178 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:178 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:178 Constant: -0:178 0 (const int) -0:178 Constant: -0:178 2 (const int) -0:178 Constant: -0:178 0 (const int) -0:178 subgroupInclusiveMax ( global highp uint) -0:178 direct index ( temp highp uint) -0:178 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:178 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:178 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:178 Constant: -0:178 0 (const int) -0:178 Constant: -0:178 2 (const int) -0:178 Constant: -0:178 0 (const int) -0:179 move second child to first child ( temp highp 2-component vector of uint) -0:179 vector swizzle ( temp highp 2-component vector of uint) -0:179 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:179 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:179 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:179 Constant: -0:179 0 (const int) -0:179 Constant: -0:179 2 (const int) -0:179 Sequence -0:179 Constant: -0:179 0 (const int) -0:179 Constant: -0:179 1 (const int) -0:179 subgroupInclusiveMax ( global highp 2-component vector of uint) -0:179 vector swizzle ( temp highp 2-component vector of uint) -0:179 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:179 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:179 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:179 Constant: -0:179 1 (const int) -0:179 Constant: -0:179 2 (const int) -0:179 Sequence -0:179 Constant: -0:179 0 (const int) -0:179 Constant: -0:179 1 (const int) -0:180 move second child to first child ( temp highp 3-component vector of uint) -0:180 vector swizzle ( temp highp 3-component vector of uint) -0:180 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:180 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:180 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:180 Constant: -0:180 0 (const int) -0:180 Constant: -0:180 2 (const int) -0:180 Sequence -0:180 Constant: -0:180 0 (const int) -0:180 Constant: -0:180 1 (const int) -0:180 Constant: -0:180 2 (const int) -0:180 subgroupInclusiveMax ( global highp 3-component vector of uint) -0:180 vector swizzle ( temp highp 3-component vector of uint) -0:180 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:180 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:180 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:180 Constant: -0:180 2 (const int) -0:180 Constant: -0:180 2 (const int) -0:180 Sequence -0:180 Constant: -0:180 0 (const int) -0:180 Constant: -0:180 1 (const int) -0:180 Constant: -0:180 2 (const int) -0:181 move second child to first child ( temp highp 4-component vector of uint) -0:181 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:181 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:181 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:181 Constant: -0:181 0 (const int) -0:181 Constant: -0:181 2 (const int) -0:181 subgroupInclusiveMax ( global highp 4-component vector of uint) -0:181 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:181 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:181 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:181 Constant: -0:181 3 (const int) -0:181 Constant: -0:181 2 (const int) -0:183 move second child to first child ( temp highp int) -0:183 direct index ( temp highp int) -0:183 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:183 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:183 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:183 Constant: -0:183 1 (const int) -0:183 Constant: -0:183 1 (const int) -0:183 Constant: -0:183 0 (const int) -0:183 subgroupInclusiveAnd ( global highp int) -0:183 direct index ( temp highp int) -0:183 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:183 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:183 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:183 Constant: -0:183 0 (const int) -0:183 Constant: -0:183 1 (const int) -0:183 Constant: -0:183 0 (const int) -0:184 move second child to first child ( temp highp 2-component vector of int) -0:184 vector swizzle ( temp highp 2-component vector of int) -0:184 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:184 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:184 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:184 Constant: -0:184 1 (const int) -0:184 Constant: -0:184 1 (const int) -0:184 Sequence -0:184 Constant: -0:184 0 (const int) -0:184 Constant: -0:184 1 (const int) -0:184 subgroupInclusiveAnd ( global highp 2-component vector of int) -0:184 vector swizzle ( temp highp 2-component vector of int) -0:184 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:184 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:184 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:184 Constant: -0:184 1 (const int) -0:184 Constant: -0:184 1 (const int) -0:184 Sequence -0:184 Constant: -0:184 0 (const int) -0:184 Constant: -0:184 1 (const int) -0:185 move second child to first child ( temp highp 3-component vector of int) -0:185 vector swizzle ( temp highp 3-component vector of int) -0:185 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:185 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:185 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:185 Constant: -0:185 1 (const int) -0:185 Constant: -0:185 1 (const int) -0:185 Sequence -0:185 Constant: -0:185 0 (const int) -0:185 Constant: -0:185 1 (const int) -0:185 Constant: -0:185 2 (const int) -0:185 subgroupInclusiveAnd ( global highp 3-component vector of int) -0:185 vector swizzle ( temp highp 3-component vector of int) -0:185 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:185 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:185 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:185 Constant: -0:185 2 (const int) -0:185 Constant: -0:185 1 (const int) -0:185 Sequence -0:185 Constant: -0:185 0 (const int) -0:185 Constant: -0:185 1 (const int) -0:185 Constant: -0:185 2 (const int) -0:186 move second child to first child ( temp highp 4-component vector of int) -0:186 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:186 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:186 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:186 Constant: -0:186 1 (const int) -0:186 Constant: -0:186 1 (const int) -0:186 subgroupInclusiveAnd ( global highp 4-component vector of int) -0:186 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:186 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:186 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:186 Constant: -0:186 3 (const int) -0:186 Constant: -0:186 1 (const int) -0:188 move second child to first child ( temp highp uint) -0:188 direct index ( temp highp uint) -0:188 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:188 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:188 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:188 Constant: -0:188 2 (const int) -0:188 Constant: -0:188 2 (const int) -0:188 Constant: -0:188 0 (const int) -0:188 subgroupInclusiveAnd ( global highp uint) -0:188 direct index ( temp highp uint) -0:188 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:188 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:188 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:188 Constant: -0:188 0 (const int) -0:188 Constant: -0:188 2 (const int) -0:188 Constant: -0:188 0 (const int) -0:189 move second child to first child ( temp highp 2-component vector of uint) -0:189 vector swizzle ( temp highp 2-component vector of uint) -0:189 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:189 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:189 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:189 Constant: -0:189 2 (const int) -0:189 Constant: -0:189 2 (const int) -0:189 Sequence -0:189 Constant: -0:189 0 (const int) -0:189 Constant: -0:189 1 (const int) -0:189 subgroupInclusiveAnd ( global highp 2-component vector of uint) -0:189 vector swizzle ( temp highp 2-component vector of uint) -0:189 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:189 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:189 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:189 Constant: -0:189 1 (const int) -0:189 Constant: -0:189 2 (const int) -0:189 Sequence -0:189 Constant: -0:189 0 (const int) -0:189 Constant: -0:189 1 (const int) -0:190 move second child to first child ( temp highp 3-component vector of uint) -0:190 vector swizzle ( temp highp 3-component vector of uint) -0:190 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:190 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:190 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:190 Constant: -0:190 2 (const int) -0:190 Constant: -0:190 2 (const int) -0:190 Sequence -0:190 Constant: -0:190 0 (const int) -0:190 Constant: -0:190 1 (const int) -0:190 Constant: -0:190 2 (const int) -0:190 subgroupInclusiveAnd ( global highp 3-component vector of uint) -0:190 vector swizzle ( temp highp 3-component vector of uint) -0:190 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:190 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:190 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:190 Constant: -0:190 2 (const int) -0:190 Constant: -0:190 2 (const int) -0:190 Sequence -0:190 Constant: -0:190 0 (const int) -0:190 Constant: -0:190 1 (const int) -0:190 Constant: -0:190 2 (const int) -0:191 move second child to first child ( temp highp 4-component vector of uint) -0:191 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:191 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:191 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:191 Constant: -0:191 2 (const int) -0:191 Constant: -0:191 2 (const int) -0:191 subgroupInclusiveAnd ( global highp 4-component vector of uint) -0:191 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:191 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:191 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:191 Constant: -0:191 3 (const int) -0:191 Constant: -0:191 2 (const int) -0:193 move second child to first child ( temp highp int) -0:193 direct index ( temp highp int) -0:193 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:193 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:193 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:193 Constant: -0:193 3 (const int) -0:193 Constant: -0:193 1 (const int) -0:193 Constant: -0:193 0 (const int) -0:193 Convert bool to int ( temp highp int) -0:193 subgroupInclusiveAnd ( global bool) -0:193 Compare Less Than ( temp bool) -0:193 direct index ( temp highp int) -0:193 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:193 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:193 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:193 Constant: -0:193 0 (const int) -0:193 Constant: -0:193 1 (const int) -0:193 Constant: -0:193 0 (const int) -0:193 Constant: -0:193 0 (const int) -0:194 move second child to first child ( temp highp 2-component vector of int) -0:194 vector swizzle ( temp highp 2-component vector of int) -0:194 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:194 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:194 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:194 Constant: -0:194 3 (const int) -0:194 Constant: -0:194 1 (const int) -0:194 Sequence -0:194 Constant: -0:194 0 (const int) -0:194 Constant: -0:194 1 (const int) -0:194 Convert bool to int ( temp highp 2-component vector of int) -0:194 subgroupInclusiveAnd ( global 2-component vector of bool) -0:194 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:194 vector swizzle ( temp highp 2-component vector of int) -0:194 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:194 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:194 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:194 Constant: -0:194 1 (const int) -0:194 Constant: -0:194 1 (const int) -0:194 Sequence -0:194 Constant: -0:194 0 (const int) -0:194 Constant: -0:194 1 (const int) -0:194 Constant: -0:194 0 (const int) -0:194 0 (const int) -0:195 move second child to first child ( temp highp 3-component vector of int) -0:195 vector swizzle ( temp highp 3-component vector of int) -0:195 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:195 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:195 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:195 Constant: -0:195 3 (const int) -0:195 Constant: -0:195 1 (const int) -0:195 Sequence -0:195 Constant: -0:195 0 (const int) -0:195 Constant: -0:195 1 (const int) -0:195 Constant: -0:195 2 (const int) -0:195 Convert bool to int ( temp highp 3-component vector of int) -0:195 subgroupInclusiveAnd ( global 3-component vector of bool) -0:195 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:195 vector swizzle ( temp highp 3-component vector of int) -0:195 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:195 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:195 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:195 Constant: -0:195 1 (const int) -0:195 Constant: -0:195 1 (const int) -0:195 Sequence -0:195 Constant: -0:195 0 (const int) -0:195 Constant: -0:195 1 (const int) -0:195 Constant: -0:195 2 (const int) -0:195 Constant: -0:195 0 (const int) -0:195 0 (const int) -0:195 0 (const int) -0:196 move second child to first child ( temp highp 4-component vector of int) -0:196 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:196 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:196 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:196 Constant: -0:196 3 (const int) -0:196 Constant: -0:196 1 (const int) -0:196 Convert bool to int ( temp highp 4-component vector of int) -0:196 subgroupInclusiveAnd ( global 4-component vector of bool) -0:196 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:196 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:196 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:196 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:196 Constant: -0:196 1 (const int) -0:196 Constant: -0:196 1 (const int) -0:196 Constant: -0:196 0 (const int) -0:196 0 (const int) -0:196 0 (const int) -0:196 0 (const int) -0:198 move second child to first child ( temp highp int) -0:198 direct index ( temp highp int) -0:198 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:198 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:198 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:198 Constant: -0:198 0 (const int) -0:198 Constant: -0:198 1 (const int) -0:198 Constant: -0:198 0 (const int) -0:198 subgroupInclusiveOr ( global highp int) -0:198 direct index ( temp highp int) -0:198 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:198 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:198 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:198 Constant: -0:198 0 (const int) -0:198 Constant: -0:198 1 (const int) -0:198 Constant: -0:198 0 (const int) -0:199 move second child to first child ( temp highp 2-component vector of int) -0:199 vector swizzle ( temp highp 2-component vector of int) -0:199 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:199 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:199 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:199 Constant: -0:199 0 (const int) -0:199 Constant: -0:199 1 (const int) -0:199 Sequence -0:199 Constant: -0:199 0 (const int) -0:199 Constant: -0:199 1 (const int) -0:199 subgroupInclusiveOr ( global highp 2-component vector of int) -0:199 vector swizzle ( temp highp 2-component vector of int) -0:199 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:199 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:199 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:199 Constant: -0:199 1 (const int) -0:199 Constant: -0:199 1 (const int) -0:199 Sequence -0:199 Constant: -0:199 0 (const int) -0:199 Constant: -0:199 1 (const int) -0:200 move second child to first child ( temp highp 3-component vector of int) -0:200 vector swizzle ( temp highp 3-component vector of int) -0:200 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:200 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:200 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:200 Constant: -0:200 0 (const int) -0:200 Constant: -0:200 1 (const int) -0:200 Sequence -0:200 Constant: -0:200 0 (const int) -0:200 Constant: -0:200 1 (const int) -0:200 Constant: -0:200 2 (const int) -0:200 subgroupInclusiveOr ( global highp 3-component vector of int) -0:200 vector swizzle ( temp highp 3-component vector of int) -0:200 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:200 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:200 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:200 Constant: -0:200 2 (const int) -0:200 Constant: -0:200 1 (const int) -0:200 Sequence -0:200 Constant: -0:200 0 (const int) -0:200 Constant: -0:200 1 (const int) -0:200 Constant: -0:200 2 (const int) -0:201 move second child to first child ( temp highp 4-component vector of int) -0:201 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:201 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:201 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:201 Constant: -0:201 0 (const int) -0:201 Constant: -0:201 1 (const int) -0:201 subgroupInclusiveOr ( global highp 4-component vector of int) -0:201 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:201 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:201 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:201 Constant: -0:201 3 (const int) -0:201 Constant: -0:201 1 (const int) -0:203 move second child to first child ( temp highp uint) -0:203 direct index ( temp highp uint) -0:203 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:203 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:203 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:203 Constant: -0:203 1 (const int) -0:203 Constant: -0:203 2 (const int) -0:203 Constant: -0:203 0 (const int) -0:203 subgroupInclusiveOr ( global highp uint) -0:203 direct index ( temp highp uint) -0:203 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:203 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:203 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:203 Constant: -0:203 0 (const int) -0:203 Constant: -0:203 2 (const int) -0:203 Constant: -0:203 0 (const int) -0:204 move second child to first child ( temp highp 2-component vector of uint) -0:204 vector swizzle ( temp highp 2-component vector of uint) -0:204 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:204 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:204 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:204 Constant: -0:204 1 (const int) -0:204 Constant: -0:204 2 (const int) -0:204 Sequence -0:204 Constant: -0:204 0 (const int) -0:204 Constant: -0:204 1 (const int) -0:204 subgroupInclusiveOr ( global highp 2-component vector of uint) -0:204 vector swizzle ( temp highp 2-component vector of uint) -0:204 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:204 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:204 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:204 Constant: -0:204 1 (const int) -0:204 Constant: -0:204 2 (const int) -0:204 Sequence -0:204 Constant: -0:204 0 (const int) -0:204 Constant: -0:204 1 (const int) -0:205 move second child to first child ( temp highp 3-component vector of uint) -0:205 vector swizzle ( temp highp 3-component vector of uint) -0:205 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:205 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:205 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:205 Constant: -0:205 1 (const int) -0:205 Constant: -0:205 2 (const int) -0:205 Sequence -0:205 Constant: -0:205 0 (const int) -0:205 Constant: -0:205 1 (const int) -0:205 Constant: -0:205 2 (const int) -0:205 subgroupInclusiveOr ( global highp 3-component vector of uint) -0:205 vector swizzle ( temp highp 3-component vector of uint) -0:205 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:205 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:205 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:205 Constant: -0:205 2 (const int) -0:205 Constant: -0:205 2 (const int) -0:205 Sequence -0:205 Constant: -0:205 0 (const int) -0:205 Constant: -0:205 1 (const int) -0:205 Constant: -0:205 2 (const int) -0:206 move second child to first child ( temp highp 4-component vector of uint) -0:206 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:206 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:206 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:206 Constant: -0:206 1 (const int) -0:206 Constant: -0:206 2 (const int) -0:206 subgroupInclusiveOr ( global highp 4-component vector of uint) -0:206 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:206 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:206 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:206 Constant: -0:206 3 (const int) -0:206 Constant: -0:206 2 (const int) -0:208 move second child to first child ( temp highp int) -0:208 direct index ( temp highp int) -0:208 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:208 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:208 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:208 Constant: -0:208 2 (const int) -0:208 Constant: -0:208 1 (const int) -0:208 Constant: -0:208 0 (const int) -0:208 Convert bool to int ( temp highp int) -0:208 subgroupInclusiveOr ( global bool) -0:208 Compare Less Than ( temp bool) -0:208 direct index ( temp highp int) -0:208 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:208 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:208 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:208 Constant: -0:208 0 (const int) -0:208 Constant: -0:208 1 (const int) -0:208 Constant: -0:208 0 (const int) -0:208 Constant: -0:208 0 (const int) -0:209 move second child to first child ( temp highp 2-component vector of int) -0:209 vector swizzle ( temp highp 2-component vector of int) -0:209 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:209 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:209 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:209 Constant: -0:209 2 (const int) -0:209 Constant: -0:209 1 (const int) -0:209 Sequence -0:209 Constant: -0:209 0 (const int) -0:209 Constant: -0:209 1 (const int) -0:209 Convert bool to int ( temp highp 2-component vector of int) -0:209 subgroupInclusiveOr ( global 2-component vector of bool) -0:209 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:209 vector swizzle ( temp highp 2-component vector of int) -0:209 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:209 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:209 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:209 Constant: -0:209 1 (const int) -0:209 Constant: -0:209 1 (const int) -0:209 Sequence -0:209 Constant: -0:209 0 (const int) -0:209 Constant: -0:209 1 (const int) -0:209 Constant: -0:209 0 (const int) -0:209 0 (const int) -0:210 move second child to first child ( temp highp 3-component vector of int) -0:210 vector swizzle ( temp highp 3-component vector of int) -0:210 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:210 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:210 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:210 Constant: -0:210 2 (const int) -0:210 Constant: -0:210 1 (const int) -0:210 Sequence -0:210 Constant: -0:210 0 (const int) -0:210 Constant: -0:210 1 (const int) -0:210 Constant: -0:210 2 (const int) -0:210 Convert bool to int ( temp highp 3-component vector of int) -0:210 subgroupInclusiveOr ( global 3-component vector of bool) -0:210 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:210 vector swizzle ( temp highp 3-component vector of int) -0:210 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:210 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:210 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:210 Constant: -0:210 1 (const int) -0:210 Constant: -0:210 1 (const int) -0:210 Sequence -0:210 Constant: -0:210 0 (const int) -0:210 Constant: -0:210 1 (const int) -0:210 Constant: -0:210 2 (const int) -0:210 Constant: -0:210 0 (const int) -0:210 0 (const int) -0:210 0 (const int) -0:211 move second child to first child ( temp highp 4-component vector of int) -0:211 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:211 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:211 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:211 Constant: -0:211 2 (const int) -0:211 Constant: -0:211 1 (const int) -0:211 Convert bool to int ( temp highp 4-component vector of int) -0:211 subgroupInclusiveOr ( global 4-component vector of bool) -0:211 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:211 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:211 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:211 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:211 Constant: -0:211 1 (const int) -0:211 Constant: -0:211 1 (const int) -0:211 Constant: -0:211 0 (const int) -0:211 0 (const int) -0:211 0 (const int) -0:211 0 (const int) -0:213 move second child to first child ( temp highp int) -0:213 direct index ( temp highp int) -0:213 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:213 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:213 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:213 Constant: -0:213 3 (const int) -0:213 Constant: -0:213 1 (const int) -0:213 Constant: -0:213 0 (const int) -0:213 subgroupInclusiveXor ( global highp int) -0:213 direct index ( temp highp int) -0:213 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:213 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:213 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:213 Constant: -0:213 0 (const int) -0:213 Constant: -0:213 1 (const int) -0:213 Constant: -0:213 0 (const int) -0:214 move second child to first child ( temp highp 2-component vector of int) -0:214 vector swizzle ( temp highp 2-component vector of int) -0:214 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:214 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:214 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:214 Constant: -0:214 3 (const int) -0:214 Constant: -0:214 1 (const int) -0:214 Sequence -0:214 Constant: -0:214 0 (const int) -0:214 Constant: -0:214 1 (const int) -0:214 subgroupInclusiveXor ( global highp 2-component vector of int) -0:214 vector swizzle ( temp highp 2-component vector of int) -0:214 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:214 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:214 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:214 Constant: -0:214 1 (const int) -0:214 Constant: -0:214 1 (const int) -0:214 Sequence -0:214 Constant: -0:214 0 (const int) -0:214 Constant: -0:214 1 (const int) -0:215 move second child to first child ( temp highp 3-component vector of int) -0:215 vector swizzle ( temp highp 3-component vector of int) -0:215 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:215 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:215 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:215 Constant: -0:215 3 (const int) -0:215 Constant: -0:215 1 (const int) -0:215 Sequence -0:215 Constant: -0:215 0 (const int) -0:215 Constant: -0:215 1 (const int) -0:215 Constant: -0:215 2 (const int) -0:215 subgroupInclusiveXor ( global highp 3-component vector of int) -0:215 vector swizzle ( temp highp 3-component vector of int) -0:215 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:215 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:215 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:215 Constant: -0:215 2 (const int) -0:215 Constant: -0:215 1 (const int) -0:215 Sequence -0:215 Constant: -0:215 0 (const int) -0:215 Constant: -0:215 1 (const int) -0:215 Constant: -0:215 2 (const int) -0:216 move second child to first child ( temp highp 4-component vector of int) -0:216 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:216 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:216 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:216 Constant: -0:216 3 (const int) -0:216 Constant: -0:216 1 (const int) -0:216 subgroupInclusiveXor ( global highp 4-component vector of int) -0:216 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:216 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:216 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:216 Constant: -0:216 3 (const int) -0:216 Constant: -0:216 1 (const int) -0:218 move second child to first child ( temp highp uint) -0:218 direct index ( temp highp uint) -0:218 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:218 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:218 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:218 Constant: -0:218 0 (const int) -0:218 Constant: -0:218 2 (const int) -0:218 Constant: -0:218 0 (const int) -0:218 subgroupInclusiveXor ( global highp uint) -0:218 direct index ( temp highp uint) -0:218 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:218 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:218 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:218 Constant: -0:218 0 (const int) -0:218 Constant: -0:218 2 (const int) -0:218 Constant: -0:218 0 (const int) -0:219 move second child to first child ( temp highp 2-component vector of uint) -0:219 vector swizzle ( temp highp 2-component vector of uint) -0:219 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:219 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:219 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:219 Constant: -0:219 0 (const int) -0:219 Constant: -0:219 2 (const int) -0:219 Sequence -0:219 Constant: -0:219 0 (const int) -0:219 Constant: -0:219 1 (const int) -0:219 subgroupInclusiveXor ( global highp 2-component vector of uint) -0:219 vector swizzle ( temp highp 2-component vector of uint) -0:219 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:219 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:219 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:219 Constant: -0:219 1 (const int) -0:219 Constant: -0:219 2 (const int) -0:219 Sequence -0:219 Constant: -0:219 0 (const int) -0:219 Constant: -0:219 1 (const int) -0:220 move second child to first child ( temp highp 3-component vector of uint) -0:220 vector swizzle ( temp highp 3-component vector of uint) -0:220 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:220 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:220 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:220 Constant: -0:220 0 (const int) -0:220 Constant: -0:220 2 (const int) -0:220 Sequence -0:220 Constant: -0:220 0 (const int) -0:220 Constant: -0:220 1 (const int) -0:220 Constant: -0:220 2 (const int) -0:220 subgroupInclusiveXor ( global highp 3-component vector of uint) -0:220 vector swizzle ( temp highp 3-component vector of uint) -0:220 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:220 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:220 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:220 Constant: -0:220 2 (const int) -0:220 Constant: -0:220 2 (const int) -0:220 Sequence -0:220 Constant: -0:220 0 (const int) -0:220 Constant: -0:220 1 (const int) -0:220 Constant: -0:220 2 (const int) -0:221 move second child to first child ( temp highp 4-component vector of uint) -0:221 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:221 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:221 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:221 Constant: -0:221 0 (const int) -0:221 Constant: -0:221 2 (const int) -0:221 subgroupInclusiveXor ( global highp 4-component vector of uint) -0:221 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:221 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:221 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:221 Constant: -0:221 3 (const int) -0:221 Constant: -0:221 2 (const int) -0:223 move second child to first child ( temp highp int) -0:223 direct index ( temp highp int) -0:223 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:223 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:223 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:223 Constant: -0:223 1 (const int) -0:223 Constant: -0:223 1 (const int) -0:223 Constant: -0:223 0 (const int) -0:223 Convert bool to int ( temp highp int) -0:223 subgroupInclusiveXor ( global bool) -0:223 Compare Less Than ( temp bool) -0:223 direct index ( temp highp int) -0:223 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:223 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:223 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:223 Constant: -0:223 0 (const int) -0:223 Constant: -0:223 1 (const int) -0:223 Constant: -0:223 0 (const int) -0:223 Constant: -0:223 0 (const int) -0:224 move second child to first child ( temp highp 2-component vector of int) -0:224 vector swizzle ( temp highp 2-component vector of int) -0:224 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:224 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:224 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:224 Constant: -0:224 1 (const int) -0:224 Constant: -0:224 1 (const int) -0:224 Sequence -0:224 Constant: -0:224 0 (const int) -0:224 Constant: -0:224 1 (const int) -0:224 Convert bool to int ( temp highp 2-component vector of int) -0:224 subgroupInclusiveXor ( global 2-component vector of bool) -0:224 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:224 vector swizzle ( temp highp 2-component vector of int) -0:224 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:224 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:224 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:224 Constant: -0:224 1 (const int) -0:224 Constant: -0:224 1 (const int) -0:224 Sequence -0:224 Constant: -0:224 0 (const int) -0:224 Constant: -0:224 1 (const int) -0:224 Constant: -0:224 0 (const int) -0:224 0 (const int) -0:225 move second child to first child ( temp highp 3-component vector of int) -0:225 vector swizzle ( temp highp 3-component vector of int) -0:225 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:225 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:225 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:225 Constant: -0:225 1 (const int) -0:225 Constant: -0:225 1 (const int) -0:225 Sequence -0:225 Constant: -0:225 0 (const int) -0:225 Constant: -0:225 1 (const int) -0:225 Constant: -0:225 2 (const int) -0:225 Convert bool to int ( temp highp 3-component vector of int) -0:225 subgroupInclusiveXor ( global 3-component vector of bool) -0:225 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:225 vector swizzle ( temp highp 3-component vector of int) -0:225 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:225 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:225 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:225 Constant: -0:225 1 (const int) -0:225 Constant: -0:225 1 (const int) -0:225 Sequence -0:225 Constant: -0:225 0 (const int) -0:225 Constant: -0:225 1 (const int) -0:225 Constant: -0:225 2 (const int) -0:225 Constant: -0:225 0 (const int) -0:225 0 (const int) -0:225 0 (const int) -0:226 move second child to first child ( temp highp 4-component vector of int) -0:226 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:226 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:226 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:226 Constant: -0:226 1 (const int) -0:226 Constant: -0:226 1 (const int) -0:226 Convert bool to int ( temp highp 4-component vector of int) -0:226 subgroupInclusiveXor ( global 4-component vector of bool) -0:226 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:226 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:226 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:226 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:226 Constant: -0:226 1 (const int) -0:226 Constant: -0:226 1 (const int) -0:226 Constant: -0:226 0 (const int) -0:226 0 (const int) -0:226 0 (const int) -0:226 0 (const int) -0:228 move second child to first child ( temp highp float) -0:228 direct index ( temp highp float) -0:228 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:228 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:228 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:228 Constant: -0:228 2 (const int) -0:228 Constant: -0:228 0 (const int) -0:228 Constant: -0:228 0 (const int) -0:228 subgroupExclusiveAdd ( global highp float) -0:228 direct index ( temp highp float) -0:228 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:228 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:228 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:228 Constant: -0:228 0 (const int) -0:228 Constant: -0:228 0 (const int) -0:228 Constant: -0:228 0 (const int) -0:229 move second child to first child ( temp highp 2-component vector of float) -0:229 vector swizzle ( temp highp 2-component vector of float) -0:229 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:229 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:229 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:229 Constant: -0:229 2 (const int) -0:229 Constant: -0:229 0 (const int) -0:229 Sequence -0:229 Constant: -0:229 0 (const int) -0:229 Constant: -0:229 1 (const int) -0:229 subgroupExclusiveAdd ( global highp 2-component vector of float) -0:229 vector swizzle ( temp highp 2-component vector of float) -0:229 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:229 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:229 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:229 Constant: -0:229 1 (const int) -0:229 Constant: -0:229 0 (const int) -0:229 Sequence -0:229 Constant: -0:229 0 (const int) -0:229 Constant: -0:229 1 (const int) -0:230 move second child to first child ( temp highp 3-component vector of float) -0:230 vector swizzle ( temp highp 3-component vector of float) -0:230 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:230 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:230 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:230 Constant: -0:230 2 (const int) -0:230 Constant: -0:230 0 (const int) -0:230 Sequence -0:230 Constant: -0:230 0 (const int) -0:230 Constant: -0:230 1 (const int) -0:230 Constant: -0:230 2 (const int) -0:230 subgroupExclusiveAdd ( global highp 3-component vector of float) -0:230 vector swizzle ( temp highp 3-component vector of float) -0:230 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:230 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:230 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:230 Constant: -0:230 2 (const int) -0:230 Constant: -0:230 0 (const int) -0:230 Sequence -0:230 Constant: -0:230 0 (const int) -0:230 Constant: -0:230 1 (const int) -0:230 Constant: -0:230 2 (const int) -0:231 move second child to first child ( temp highp 4-component vector of float) -0:231 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:231 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:231 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:231 Constant: -0:231 2 (const int) -0:231 Constant: -0:231 0 (const int) -0:231 subgroupExclusiveAdd ( global highp 4-component vector of float) -0:231 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:231 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:231 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:231 Constant: -0:231 3 (const int) -0:231 Constant: -0:231 0 (const int) -0:233 move second child to first child ( temp highp int) -0:233 direct index ( temp highp int) -0:233 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:233 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:233 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:233 Constant: -0:233 3 (const int) -0:233 Constant: -0:233 1 (const int) -0:233 Constant: -0:233 0 (const int) -0:233 subgroupExclusiveAdd ( global highp int) -0:233 direct index ( temp highp int) -0:233 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:233 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:233 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:233 Constant: -0:233 0 (const int) -0:233 Constant: -0:233 1 (const int) -0:233 Constant: -0:233 0 (const int) -0:234 move second child to first child ( temp highp 2-component vector of int) -0:234 vector swizzle ( temp highp 2-component vector of int) -0:234 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:234 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:234 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:234 Constant: -0:234 3 (const int) -0:234 Constant: -0:234 1 (const int) -0:234 Sequence -0:234 Constant: -0:234 0 (const int) -0:234 Constant: -0:234 1 (const int) -0:234 subgroupExclusiveAdd ( global highp 2-component vector of int) -0:234 vector swizzle ( temp highp 2-component vector of int) -0:234 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:234 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:234 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:234 Constant: -0:234 1 (const int) -0:234 Constant: -0:234 1 (const int) -0:234 Sequence -0:234 Constant: -0:234 0 (const int) -0:234 Constant: -0:234 1 (const int) -0:235 move second child to first child ( temp highp 3-component vector of int) -0:235 vector swizzle ( temp highp 3-component vector of int) -0:235 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:235 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:235 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:235 Constant: -0:235 3 (const int) -0:235 Constant: -0:235 1 (const int) -0:235 Sequence -0:235 Constant: -0:235 0 (const int) -0:235 Constant: -0:235 1 (const int) -0:235 Constant: -0:235 2 (const int) -0:235 subgroupExclusiveAdd ( global highp 3-component vector of int) -0:235 vector swizzle ( temp highp 3-component vector of int) -0:235 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:235 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:235 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:235 Constant: -0:235 2 (const int) -0:235 Constant: -0:235 1 (const int) -0:235 Sequence -0:235 Constant: -0:235 0 (const int) -0:235 Constant: -0:235 1 (const int) -0:235 Constant: -0:235 2 (const int) -0:236 move second child to first child ( temp highp 4-component vector of int) -0:236 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:236 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:236 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:236 Constant: -0:236 3 (const int) -0:236 Constant: -0:236 1 (const int) -0:236 subgroupExclusiveAdd ( global highp 4-component vector of int) -0:236 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:236 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:236 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:236 Constant: -0:236 3 (const int) -0:236 Constant: -0:236 1 (const int) -0:238 move second child to first child ( temp highp uint) -0:238 direct index ( temp highp uint) -0:238 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:238 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:238 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:238 Constant: -0:238 0 (const int) -0:238 Constant: -0:238 2 (const int) -0:238 Constant: -0:238 0 (const int) -0:238 subgroupExclusiveAdd ( global highp uint) -0:238 direct index ( temp highp uint) -0:238 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:238 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:238 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:238 Constant: -0:238 0 (const int) -0:238 Constant: -0:238 2 (const int) -0:238 Constant: -0:238 0 (const int) -0:239 move second child to first child ( temp highp 2-component vector of uint) -0:239 vector swizzle ( temp highp 2-component vector of uint) -0:239 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:239 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:239 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:239 Constant: -0:239 0 (const int) -0:239 Constant: -0:239 2 (const int) -0:239 Sequence -0:239 Constant: -0:239 0 (const int) -0:239 Constant: -0:239 1 (const int) -0:239 subgroupExclusiveAdd ( global highp 2-component vector of uint) -0:239 vector swizzle ( temp highp 2-component vector of uint) -0:239 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:239 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:239 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:239 Constant: -0:239 1 (const int) -0:239 Constant: -0:239 2 (const int) -0:239 Sequence -0:239 Constant: -0:239 0 (const int) -0:239 Constant: -0:239 1 (const int) -0:240 move second child to first child ( temp highp 3-component vector of uint) -0:240 vector swizzle ( temp highp 3-component vector of uint) -0:240 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:240 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:240 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:240 Constant: -0:240 0 (const int) -0:240 Constant: -0:240 2 (const int) -0:240 Sequence -0:240 Constant: -0:240 0 (const int) -0:240 Constant: -0:240 1 (const int) -0:240 Constant: -0:240 2 (const int) -0:240 subgroupExclusiveAdd ( global highp 3-component vector of uint) -0:240 vector swizzle ( temp highp 3-component vector of uint) -0:240 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:240 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:240 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:240 Constant: -0:240 2 (const int) -0:240 Constant: -0:240 2 (const int) -0:240 Sequence -0:240 Constant: -0:240 0 (const int) -0:240 Constant: -0:240 1 (const int) -0:240 Constant: -0:240 2 (const int) -0:241 move second child to first child ( temp highp 4-component vector of uint) -0:241 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:241 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:241 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:241 Constant: -0:241 0 (const int) -0:241 Constant: -0:241 2 (const int) -0:241 subgroupExclusiveAdd ( global highp 4-component vector of uint) -0:241 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:241 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:241 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:241 Constant: -0:241 3 (const int) -0:241 Constant: -0:241 2 (const int) -0:243 move second child to first child ( temp highp float) -0:243 direct index ( temp highp float) -0:243 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:243 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:243 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:243 Constant: -0:243 1 (const int) -0:243 Constant: -0:243 0 (const int) -0:243 Constant: -0:243 0 (const int) -0:243 subgroupExclusiveMul ( global highp float) -0:243 direct index ( temp highp float) -0:243 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:243 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:243 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:243 Constant: -0:243 0 (const int) -0:243 Constant: -0:243 0 (const int) -0:243 Constant: -0:243 0 (const int) -0:244 move second child to first child ( temp highp 2-component vector of float) -0:244 vector swizzle ( temp highp 2-component vector of float) -0:244 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:244 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:244 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:244 Constant: -0:244 1 (const int) -0:244 Constant: -0:244 0 (const int) -0:244 Sequence -0:244 Constant: -0:244 0 (const int) -0:244 Constant: -0:244 1 (const int) -0:244 subgroupExclusiveMul ( global highp 2-component vector of float) -0:244 vector swizzle ( temp highp 2-component vector of float) -0:244 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:244 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:244 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:244 Constant: -0:244 1 (const int) -0:244 Constant: -0:244 0 (const int) -0:244 Sequence -0:244 Constant: -0:244 0 (const int) -0:244 Constant: -0:244 1 (const int) -0:245 move second child to first child ( temp highp 3-component vector of float) -0:245 vector swizzle ( temp highp 3-component vector of float) -0:245 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:245 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:245 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:245 Constant: -0:245 1 (const int) -0:245 Constant: -0:245 0 (const int) -0:245 Sequence -0:245 Constant: -0:245 0 (const int) -0:245 Constant: -0:245 1 (const int) -0:245 Constant: -0:245 2 (const int) -0:245 subgroupExclusiveMul ( global highp 3-component vector of float) -0:245 vector swizzle ( temp highp 3-component vector of float) -0:245 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:245 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:245 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:245 Constant: -0:245 2 (const int) -0:245 Constant: -0:245 0 (const int) -0:245 Sequence -0:245 Constant: -0:245 0 (const int) -0:245 Constant: -0:245 1 (const int) -0:245 Constant: -0:245 2 (const int) -0:246 move second child to first child ( temp highp 4-component vector of float) -0:246 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:246 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:246 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:246 Constant: -0:246 1 (const int) -0:246 Constant: -0:246 0 (const int) -0:246 subgroupExclusiveMul ( global highp 4-component vector of float) -0:246 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:246 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:246 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:246 Constant: -0:246 3 (const int) -0:246 Constant: -0:246 0 (const int) -0:248 move second child to first child ( temp highp int) -0:248 direct index ( temp highp int) -0:248 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:248 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:248 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:248 Constant: -0:248 2 (const int) -0:248 Constant: -0:248 1 (const int) -0:248 Constant: -0:248 0 (const int) -0:248 subgroupExclusiveMul ( global highp int) -0:248 direct index ( temp highp int) -0:248 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:248 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:248 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:248 Constant: -0:248 0 (const int) -0:248 Constant: -0:248 1 (const int) -0:248 Constant: -0:248 0 (const int) -0:249 move second child to first child ( temp highp 2-component vector of int) -0:249 vector swizzle ( temp highp 2-component vector of int) -0:249 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:249 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:249 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:249 Constant: -0:249 2 (const int) -0:249 Constant: -0:249 1 (const int) -0:249 Sequence -0:249 Constant: -0:249 0 (const int) -0:249 Constant: -0:249 1 (const int) -0:249 subgroupExclusiveMul ( global highp 2-component vector of int) -0:249 vector swizzle ( temp highp 2-component vector of int) -0:249 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:249 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:249 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:249 Constant: -0:249 1 (const int) -0:249 Constant: -0:249 1 (const int) -0:249 Sequence -0:249 Constant: -0:249 0 (const int) -0:249 Constant: -0:249 1 (const int) -0:250 move second child to first child ( temp highp 3-component vector of int) -0:250 vector swizzle ( temp highp 3-component vector of int) -0:250 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:250 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:250 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:250 Constant: -0:250 2 (const int) -0:250 Constant: -0:250 1 (const int) -0:250 Sequence -0:250 Constant: -0:250 0 (const int) -0:250 Constant: -0:250 1 (const int) -0:250 Constant: -0:250 2 (const int) -0:250 subgroupExclusiveMul ( global highp 3-component vector of int) -0:250 vector swizzle ( temp highp 3-component vector of int) -0:250 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:250 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:250 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:250 Constant: -0:250 2 (const int) -0:250 Constant: -0:250 1 (const int) -0:250 Sequence -0:250 Constant: -0:250 0 (const int) -0:250 Constant: -0:250 1 (const int) -0:250 Constant: -0:250 2 (const int) -0:251 move second child to first child ( temp highp 4-component vector of int) -0:251 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:251 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:251 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:251 Constant: -0:251 2 (const int) -0:251 Constant: -0:251 1 (const int) -0:251 subgroupExclusiveMul ( global highp 4-component vector of int) -0:251 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:251 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:251 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:251 Constant: -0:251 3 (const int) -0:251 Constant: -0:251 1 (const int) -0:253 move second child to first child ( temp highp uint) -0:253 direct index ( temp highp uint) -0:253 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:253 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:253 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:253 Constant: -0:253 3 (const int) -0:253 Constant: -0:253 2 (const int) -0:253 Constant: -0:253 0 (const int) -0:253 subgroupExclusiveMul ( global highp uint) -0:253 direct index ( temp highp uint) -0:253 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:253 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:253 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:253 Constant: -0:253 0 (const int) -0:253 Constant: -0:253 2 (const int) -0:253 Constant: -0:253 0 (const int) -0:254 move second child to first child ( temp highp 2-component vector of uint) -0:254 vector swizzle ( temp highp 2-component vector of uint) -0:254 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:254 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:254 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:254 Constant: -0:254 3 (const int) -0:254 Constant: -0:254 2 (const int) -0:254 Sequence -0:254 Constant: -0:254 0 (const int) -0:254 Constant: -0:254 1 (const int) -0:254 subgroupExclusiveMul ( global highp 2-component vector of uint) -0:254 vector swizzle ( temp highp 2-component vector of uint) -0:254 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:254 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:254 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:254 Constant: -0:254 1 (const int) -0:254 Constant: -0:254 2 (const int) -0:254 Sequence -0:254 Constant: -0:254 0 (const int) -0:254 Constant: -0:254 1 (const int) -0:255 move second child to first child ( temp highp 3-component vector of uint) -0:255 vector swizzle ( temp highp 3-component vector of uint) -0:255 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:255 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:255 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:255 Constant: -0:255 3 (const int) -0:255 Constant: -0:255 2 (const int) -0:255 Sequence -0:255 Constant: -0:255 0 (const int) -0:255 Constant: -0:255 1 (const int) -0:255 Constant: -0:255 2 (const int) -0:255 subgroupExclusiveMul ( global highp 3-component vector of uint) -0:255 vector swizzle ( temp highp 3-component vector of uint) -0:255 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:255 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:255 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:255 Constant: -0:255 2 (const int) -0:255 Constant: -0:255 2 (const int) -0:255 Sequence -0:255 Constant: -0:255 0 (const int) -0:255 Constant: -0:255 1 (const int) -0:255 Constant: -0:255 2 (const int) -0:256 move second child to first child ( temp highp 4-component vector of uint) -0:256 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:256 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:256 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:256 Constant: -0:256 3 (const int) -0:256 Constant: -0:256 2 (const int) -0:256 subgroupExclusiveMul ( global highp 4-component vector of uint) -0:256 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:256 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:256 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:256 Constant: -0:256 3 (const int) -0:256 Constant: -0:256 2 (const int) -0:258 move second child to first child ( temp highp float) -0:258 direct index ( temp highp float) -0:258 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:258 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:258 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:258 Constant: -0:258 0 (const int) -0:258 Constant: -0:258 0 (const int) -0:258 Constant: -0:258 0 (const int) -0:258 subgroupExclusiveMin ( global highp float) -0:258 direct index ( temp highp float) -0:258 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:258 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:258 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:258 Constant: -0:258 0 (const int) -0:258 Constant: -0:258 0 (const int) -0:258 Constant: -0:258 0 (const int) -0:259 move second child to first child ( temp highp 2-component vector of float) -0:259 vector swizzle ( temp highp 2-component vector of float) -0:259 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:259 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:259 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:259 Constant: -0:259 0 (const int) -0:259 Constant: -0:259 0 (const int) -0:259 Sequence -0:259 Constant: -0:259 0 (const int) -0:259 Constant: -0:259 1 (const int) -0:259 subgroupExclusiveMin ( global highp 2-component vector of float) -0:259 vector swizzle ( temp highp 2-component vector of float) -0:259 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:259 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:259 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:259 Constant: -0:259 1 (const int) -0:259 Constant: -0:259 0 (const int) -0:259 Sequence -0:259 Constant: -0:259 0 (const int) -0:259 Constant: -0:259 1 (const int) -0:260 move second child to first child ( temp highp 3-component vector of float) -0:260 vector swizzle ( temp highp 3-component vector of float) -0:260 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:260 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:260 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:260 Constant: -0:260 0 (const int) -0:260 Constant: -0:260 0 (const int) -0:260 Sequence -0:260 Constant: -0:260 0 (const int) -0:260 Constant: -0:260 1 (const int) -0:260 Constant: -0:260 2 (const int) -0:260 subgroupExclusiveMin ( global highp 3-component vector of float) -0:260 vector swizzle ( temp highp 3-component vector of float) -0:260 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:260 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:260 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:260 Constant: -0:260 2 (const int) -0:260 Constant: -0:260 0 (const int) -0:260 Sequence -0:260 Constant: -0:260 0 (const int) -0:260 Constant: -0:260 1 (const int) -0:260 Constant: -0:260 2 (const int) -0:261 move second child to first child ( temp highp 4-component vector of float) -0:261 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:261 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:261 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:261 Constant: -0:261 0 (const int) -0:261 Constant: -0:261 0 (const int) -0:261 subgroupExclusiveMin ( global highp 4-component vector of float) -0:261 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:261 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:261 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:261 Constant: -0:261 3 (const int) -0:261 Constant: -0:261 0 (const int) -0:263 move second child to first child ( temp highp int) -0:263 direct index ( temp highp int) -0:263 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:263 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:263 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:263 Constant: -0:263 1 (const int) -0:263 Constant: -0:263 1 (const int) -0:263 Constant: -0:263 0 (const int) -0:263 subgroupExclusiveMin ( global highp int) -0:263 direct index ( temp highp int) -0:263 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:263 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:263 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:263 Constant: -0:263 0 (const int) -0:263 Constant: -0:263 1 (const int) -0:263 Constant: -0:263 0 (const int) -0:264 move second child to first child ( temp highp 2-component vector of int) -0:264 vector swizzle ( temp highp 2-component vector of int) -0:264 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:264 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:264 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:264 Constant: -0:264 1 (const int) -0:264 Constant: -0:264 1 (const int) -0:264 Sequence -0:264 Constant: -0:264 0 (const int) -0:264 Constant: -0:264 1 (const int) -0:264 subgroupExclusiveMin ( global highp 2-component vector of int) -0:264 vector swizzle ( temp highp 2-component vector of int) -0:264 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:264 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:264 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:264 Constant: -0:264 1 (const int) -0:264 Constant: -0:264 1 (const int) -0:264 Sequence -0:264 Constant: -0:264 0 (const int) -0:264 Constant: -0:264 1 (const int) -0:265 move second child to first child ( temp highp 3-component vector of int) -0:265 vector swizzle ( temp highp 3-component vector of int) -0:265 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:265 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:265 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:265 Constant: -0:265 1 (const int) -0:265 Constant: -0:265 1 (const int) -0:265 Sequence -0:265 Constant: -0:265 0 (const int) -0:265 Constant: -0:265 1 (const int) -0:265 Constant: -0:265 2 (const int) -0:265 subgroupExclusiveMin ( global highp 3-component vector of int) -0:265 vector swizzle ( temp highp 3-component vector of int) -0:265 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:265 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:265 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:265 Constant: -0:265 2 (const int) -0:265 Constant: -0:265 1 (const int) -0:265 Sequence -0:265 Constant: -0:265 0 (const int) -0:265 Constant: -0:265 1 (const int) -0:265 Constant: -0:265 2 (const int) -0:266 move second child to first child ( temp highp 4-component vector of int) -0:266 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:266 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:266 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:266 Constant: -0:266 1 (const int) -0:266 Constant: -0:266 1 (const int) -0:266 subgroupExclusiveMin ( global highp 4-component vector of int) -0:266 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:266 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:266 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:266 Constant: -0:266 3 (const int) -0:266 Constant: -0:266 1 (const int) -0:268 move second child to first child ( temp highp uint) -0:268 direct index ( temp highp uint) -0:268 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:268 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:268 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:268 Constant: -0:268 2 (const int) -0:268 Constant: -0:268 2 (const int) -0:268 Constant: -0:268 0 (const int) -0:268 subgroupExclusiveMin ( global highp uint) -0:268 direct index ( temp highp uint) -0:268 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:268 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:268 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:268 Constant: -0:268 0 (const int) -0:268 Constant: -0:268 2 (const int) -0:268 Constant: -0:268 0 (const int) -0:269 move second child to first child ( temp highp 2-component vector of uint) -0:269 vector swizzle ( temp highp 2-component vector of uint) -0:269 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:269 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:269 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:269 Constant: -0:269 2 (const int) -0:269 Constant: -0:269 2 (const int) -0:269 Sequence -0:269 Constant: -0:269 0 (const int) -0:269 Constant: -0:269 1 (const int) -0:269 subgroupExclusiveMin ( global highp 2-component vector of uint) -0:269 vector swizzle ( temp highp 2-component vector of uint) -0:269 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:269 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:269 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:269 Constant: -0:269 1 (const int) -0:269 Constant: -0:269 2 (const int) -0:269 Sequence -0:269 Constant: -0:269 0 (const int) -0:269 Constant: -0:269 1 (const int) -0:270 move second child to first child ( temp highp 3-component vector of uint) -0:270 vector swizzle ( temp highp 3-component vector of uint) -0:270 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:270 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:270 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:270 Constant: -0:270 2 (const int) -0:270 Constant: -0:270 2 (const int) -0:270 Sequence -0:270 Constant: -0:270 0 (const int) -0:270 Constant: -0:270 1 (const int) -0:270 Constant: -0:270 2 (const int) -0:270 subgroupExclusiveMin ( global highp 3-component vector of uint) -0:270 vector swizzle ( temp highp 3-component vector of uint) -0:270 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:270 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:270 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:270 Constant: -0:270 2 (const int) -0:270 Constant: -0:270 2 (const int) -0:270 Sequence -0:270 Constant: -0:270 0 (const int) -0:270 Constant: -0:270 1 (const int) -0:270 Constant: -0:270 2 (const int) -0:271 move second child to first child ( temp highp 4-component vector of uint) -0:271 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:271 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:271 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:271 Constant: -0:271 2 (const int) -0:271 Constant: -0:271 2 (const int) -0:271 subgroupExclusiveMin ( global highp 4-component vector of uint) -0:271 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:271 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:271 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:271 Constant: -0:271 3 (const int) -0:271 Constant: -0:271 2 (const int) -0:273 move second child to first child ( temp highp float) -0:273 direct index ( temp highp float) -0:273 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:273 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:273 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:273 Constant: -0:273 3 (const int) -0:273 Constant: -0:273 0 (const int) -0:273 Constant: -0:273 0 (const int) -0:273 subgroupExclusiveMax ( global highp float) -0:273 direct index ( temp highp float) -0:273 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:273 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:273 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:273 Constant: -0:273 0 (const int) -0:273 Constant: -0:273 0 (const int) -0:273 Constant: -0:273 0 (const int) -0:274 move second child to first child ( temp highp 2-component vector of float) -0:274 vector swizzle ( temp highp 2-component vector of float) -0:274 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:274 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:274 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:274 Constant: -0:274 3 (const int) -0:274 Constant: -0:274 0 (const int) -0:274 Sequence -0:274 Constant: -0:274 0 (const int) -0:274 Constant: -0:274 1 (const int) -0:274 subgroupExclusiveMax ( global highp 2-component vector of float) -0:274 vector swizzle ( temp highp 2-component vector of float) -0:274 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:274 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:274 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:274 Constant: -0:274 1 (const int) -0:274 Constant: -0:274 0 (const int) -0:274 Sequence -0:274 Constant: -0:274 0 (const int) -0:274 Constant: -0:274 1 (const int) -0:275 move second child to first child ( temp highp 3-component vector of float) -0:275 vector swizzle ( temp highp 3-component vector of float) -0:275 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:275 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:275 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:275 Constant: -0:275 3 (const int) -0:275 Constant: -0:275 0 (const int) -0:275 Sequence -0:275 Constant: -0:275 0 (const int) -0:275 Constant: -0:275 1 (const int) -0:275 Constant: -0:275 2 (const int) -0:275 subgroupExclusiveMax ( global highp 3-component vector of float) -0:275 vector swizzle ( temp highp 3-component vector of float) -0:275 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:275 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:275 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:275 Constant: -0:275 2 (const int) -0:275 Constant: -0:275 0 (const int) -0:275 Sequence -0:275 Constant: -0:275 0 (const int) -0:275 Constant: -0:275 1 (const int) -0:275 Constant: -0:275 2 (const int) -0:276 move second child to first child ( temp highp 4-component vector of float) -0:276 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:276 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:276 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:276 Constant: -0:276 3 (const int) -0:276 Constant: -0:276 0 (const int) -0:276 subgroupExclusiveMax ( global highp 4-component vector of float) -0:276 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:276 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:276 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:276 Constant: -0:276 3 (const int) -0:276 Constant: -0:276 0 (const int) -0:278 move second child to first child ( temp highp int) -0:278 direct index ( temp highp int) -0:278 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:278 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:278 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:278 Constant: -0:278 0 (const int) -0:278 Constant: -0:278 1 (const int) -0:278 Constant: -0:278 0 (const int) -0:278 subgroupExclusiveMax ( global highp int) -0:278 direct index ( temp highp int) -0:278 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:278 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:278 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:278 Constant: -0:278 0 (const int) -0:278 Constant: -0:278 1 (const int) -0:278 Constant: -0:278 0 (const int) -0:279 move second child to first child ( temp highp 2-component vector of int) -0:279 vector swizzle ( temp highp 2-component vector of int) -0:279 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:279 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:279 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:279 Constant: -0:279 0 (const int) -0:279 Constant: -0:279 1 (const int) -0:279 Sequence -0:279 Constant: -0:279 0 (const int) -0:279 Constant: -0:279 1 (const int) -0:279 subgroupExclusiveMax ( global highp 2-component vector of int) -0:279 vector swizzle ( temp highp 2-component vector of int) -0:279 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:279 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:279 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:279 Constant: -0:279 1 (const int) -0:279 Constant: -0:279 1 (const int) -0:279 Sequence -0:279 Constant: -0:279 0 (const int) -0:279 Constant: -0:279 1 (const int) -0:280 move second child to first child ( temp highp 3-component vector of int) -0:280 vector swizzle ( temp highp 3-component vector of int) -0:280 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:280 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:280 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:280 Constant: -0:280 0 (const int) -0:280 Constant: -0:280 1 (const int) -0:280 Sequence -0:280 Constant: -0:280 0 (const int) -0:280 Constant: -0:280 1 (const int) -0:280 Constant: -0:280 2 (const int) -0:280 subgroupExclusiveMax ( global highp 3-component vector of int) -0:280 vector swizzle ( temp highp 3-component vector of int) -0:280 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:280 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:280 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:280 Constant: -0:280 2 (const int) -0:280 Constant: -0:280 1 (const int) -0:280 Sequence -0:280 Constant: -0:280 0 (const int) -0:280 Constant: -0:280 1 (const int) -0:280 Constant: -0:280 2 (const int) -0:281 move second child to first child ( temp highp 4-component vector of int) -0:281 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:281 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:281 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:281 Constant: -0:281 0 (const int) -0:281 Constant: -0:281 1 (const int) -0:281 subgroupExclusiveMax ( global highp 4-component vector of int) -0:281 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:281 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:281 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:281 Constant: -0:281 3 (const int) -0:281 Constant: -0:281 1 (const int) -0:283 move second child to first child ( temp highp uint) -0:283 direct index ( temp highp uint) -0:283 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:283 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:283 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:283 Constant: -0:283 1 (const int) -0:283 Constant: -0:283 2 (const int) -0:283 Constant: -0:283 0 (const int) -0:283 subgroupExclusiveMax ( global highp uint) -0:283 direct index ( temp highp uint) -0:283 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:283 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:283 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:283 Constant: -0:283 0 (const int) -0:283 Constant: -0:283 2 (const int) -0:283 Constant: -0:283 0 (const int) -0:284 move second child to first child ( temp highp 2-component vector of uint) -0:284 vector swizzle ( temp highp 2-component vector of uint) -0:284 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:284 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:284 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:284 Constant: -0:284 1 (const int) -0:284 Constant: -0:284 2 (const int) -0:284 Sequence -0:284 Constant: -0:284 0 (const int) -0:284 Constant: -0:284 1 (const int) -0:284 subgroupExclusiveMax ( global highp 2-component vector of uint) -0:284 vector swizzle ( temp highp 2-component vector of uint) -0:284 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:284 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:284 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:284 Constant: -0:284 1 (const int) -0:284 Constant: -0:284 2 (const int) -0:284 Sequence -0:284 Constant: -0:284 0 (const int) -0:284 Constant: -0:284 1 (const int) -0:285 move second child to first child ( temp highp 3-component vector of uint) -0:285 vector swizzle ( temp highp 3-component vector of uint) -0:285 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:285 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:285 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:285 Constant: -0:285 1 (const int) -0:285 Constant: -0:285 2 (const int) -0:285 Sequence -0:285 Constant: -0:285 0 (const int) -0:285 Constant: -0:285 1 (const int) -0:285 Constant: -0:285 2 (const int) -0:285 subgroupExclusiveMax ( global highp 3-component vector of uint) -0:285 vector swizzle ( temp highp 3-component vector of uint) -0:285 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:285 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:285 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:285 Constant: -0:285 2 (const int) -0:285 Constant: -0:285 2 (const int) -0:285 Sequence -0:285 Constant: -0:285 0 (const int) -0:285 Constant: -0:285 1 (const int) -0:285 Constant: -0:285 2 (const int) -0:286 move second child to first child ( temp highp 4-component vector of uint) -0:286 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:286 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:286 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:286 Constant: -0:286 1 (const int) -0:286 Constant: -0:286 2 (const int) -0:286 subgroupExclusiveMax ( global highp 4-component vector of uint) -0:286 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:286 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:286 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:286 Constant: -0:286 3 (const int) -0:286 Constant: -0:286 2 (const int) -0:288 move second child to first child ( temp highp int) -0:288 direct index ( temp highp int) -0:288 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:288 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:288 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:288 Constant: -0:288 2 (const int) -0:288 Constant: -0:288 1 (const int) -0:288 Constant: -0:288 0 (const int) -0:288 subgroupExclusiveAnd ( global highp int) -0:288 direct index ( temp highp int) -0:288 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:288 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:288 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:288 Constant: -0:288 0 (const int) -0:288 Constant: -0:288 1 (const int) -0:288 Constant: -0:288 0 (const int) -0:289 move second child to first child ( temp highp 2-component vector of int) -0:289 vector swizzle ( temp highp 2-component vector of int) -0:289 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:289 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:289 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:289 Constant: -0:289 2 (const int) -0:289 Constant: -0:289 1 (const int) -0:289 Sequence -0:289 Constant: -0:289 0 (const int) -0:289 Constant: -0:289 1 (const int) -0:289 subgroupExclusiveAnd ( global highp 2-component vector of int) -0:289 vector swizzle ( temp highp 2-component vector of int) -0:289 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:289 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:289 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:289 Constant: -0:289 1 (const int) -0:289 Constant: -0:289 1 (const int) -0:289 Sequence -0:289 Constant: -0:289 0 (const int) -0:289 Constant: -0:289 1 (const int) -0:290 move second child to first child ( temp highp 3-component vector of int) -0:290 vector swizzle ( temp highp 3-component vector of int) -0:290 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:290 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:290 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:290 Constant: -0:290 2 (const int) -0:290 Constant: -0:290 1 (const int) -0:290 Sequence -0:290 Constant: -0:290 0 (const int) -0:290 Constant: -0:290 1 (const int) -0:290 Constant: -0:290 2 (const int) -0:290 subgroupExclusiveAnd ( global highp 3-component vector of int) -0:290 vector swizzle ( temp highp 3-component vector of int) -0:290 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:290 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:290 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:290 Constant: -0:290 2 (const int) -0:290 Constant: -0:290 1 (const int) -0:290 Sequence -0:290 Constant: -0:290 0 (const int) -0:290 Constant: -0:290 1 (const int) -0:290 Constant: -0:290 2 (const int) -0:291 move second child to first child ( temp highp 4-component vector of int) -0:291 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:291 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:291 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:291 Constant: -0:291 2 (const int) -0:291 Constant: -0:291 1 (const int) -0:291 subgroupExclusiveAnd ( global highp 4-component vector of int) -0:291 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:291 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:291 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:291 Constant: -0:291 3 (const int) -0:291 Constant: -0:291 1 (const int) -0:293 move second child to first child ( temp highp uint) -0:293 direct index ( temp highp uint) -0:293 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:293 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:293 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:293 Constant: -0:293 3 (const int) -0:293 Constant: -0:293 2 (const int) -0:293 Constant: -0:293 0 (const int) -0:293 subgroupExclusiveAnd ( global highp uint) -0:293 direct index ( temp highp uint) -0:293 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:293 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:293 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:293 Constant: -0:293 0 (const int) -0:293 Constant: -0:293 2 (const int) -0:293 Constant: -0:293 0 (const int) -0:294 move second child to first child ( temp highp 2-component vector of uint) -0:294 vector swizzle ( temp highp 2-component vector of uint) -0:294 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:294 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:294 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:294 Constant: -0:294 3 (const int) -0:294 Constant: -0:294 2 (const int) -0:294 Sequence -0:294 Constant: -0:294 0 (const int) -0:294 Constant: -0:294 1 (const int) -0:294 subgroupExclusiveAnd ( global highp 2-component vector of uint) -0:294 vector swizzle ( temp highp 2-component vector of uint) -0:294 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:294 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:294 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:294 Constant: -0:294 1 (const int) -0:294 Constant: -0:294 2 (const int) -0:294 Sequence -0:294 Constant: -0:294 0 (const int) -0:294 Constant: -0:294 1 (const int) -0:295 move second child to first child ( temp highp 3-component vector of uint) -0:295 vector swizzle ( temp highp 3-component vector of uint) -0:295 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:295 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:295 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:295 Constant: -0:295 3 (const int) -0:295 Constant: -0:295 2 (const int) -0:295 Sequence -0:295 Constant: -0:295 0 (const int) -0:295 Constant: -0:295 1 (const int) -0:295 Constant: -0:295 2 (const int) -0:295 subgroupExclusiveAnd ( global highp 3-component vector of uint) -0:295 vector swizzle ( temp highp 3-component vector of uint) -0:295 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:295 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:295 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:295 Constant: -0:295 2 (const int) -0:295 Constant: -0:295 2 (const int) -0:295 Sequence -0:295 Constant: -0:295 0 (const int) -0:295 Constant: -0:295 1 (const int) -0:295 Constant: -0:295 2 (const int) -0:296 move second child to first child ( temp highp 4-component vector of uint) -0:296 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:296 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:296 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:296 Constant: -0:296 3 (const int) -0:296 Constant: -0:296 2 (const int) -0:296 subgroupExclusiveAnd ( global highp 4-component vector of uint) -0:296 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:296 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:296 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:296 Constant: -0:296 3 (const int) -0:296 Constant: -0:296 2 (const int) -0:298 move second child to first child ( temp highp int) -0:298 direct index ( temp highp int) -0:298 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:298 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:298 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:298 Constant: -0:298 0 (const int) -0:298 Constant: -0:298 1 (const int) -0:298 Constant: -0:298 0 (const int) -0:298 Convert bool to int ( temp highp int) -0:298 subgroupExclusiveAnd ( global bool) -0:298 Compare Less Than ( temp bool) -0:298 direct index ( temp highp int) -0:298 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:298 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:298 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:298 Constant: -0:298 0 (const int) -0:298 Constant: -0:298 1 (const int) -0:298 Constant: -0:298 0 (const int) -0:298 Constant: -0:298 0 (const int) -0:299 move second child to first child ( temp highp 2-component vector of int) -0:299 vector swizzle ( temp highp 2-component vector of int) -0:299 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:299 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:299 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:299 Constant: -0:299 0 (const int) -0:299 Constant: -0:299 1 (const int) -0:299 Sequence -0:299 Constant: -0:299 0 (const int) -0:299 Constant: -0:299 1 (const int) -0:299 Convert bool to int ( temp highp 2-component vector of int) -0:299 subgroupExclusiveAnd ( global 2-component vector of bool) -0:299 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:299 vector swizzle ( temp highp 2-component vector of int) -0:299 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:299 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:299 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:299 Constant: -0:299 1 (const int) -0:299 Constant: -0:299 1 (const int) -0:299 Sequence -0:299 Constant: -0:299 0 (const int) -0:299 Constant: -0:299 1 (const int) -0:299 Constant: -0:299 0 (const int) -0:299 0 (const int) -0:300 move second child to first child ( temp highp 3-component vector of int) -0:300 vector swizzle ( temp highp 3-component vector of int) -0:300 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:300 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:300 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:300 Constant: -0:300 0 (const int) -0:300 Constant: -0:300 1 (const int) -0:300 Sequence -0:300 Constant: -0:300 0 (const int) -0:300 Constant: -0:300 1 (const int) -0:300 Constant: -0:300 2 (const int) -0:300 Convert bool to int ( temp highp 3-component vector of int) -0:300 subgroupExclusiveAnd ( global 3-component vector of bool) -0:300 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:300 vector swizzle ( temp highp 3-component vector of int) -0:300 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:300 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:300 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:300 Constant: -0:300 1 (const int) -0:300 Constant: -0:300 1 (const int) -0:300 Sequence -0:300 Constant: -0:300 0 (const int) -0:300 Constant: -0:300 1 (const int) -0:300 Constant: -0:300 2 (const int) -0:300 Constant: -0:300 0 (const int) -0:300 0 (const int) -0:300 0 (const int) -0:301 move second child to first child ( temp highp 4-component vector of int) -0:301 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:301 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:301 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:301 Constant: -0:301 0 (const int) -0:301 Constant: -0:301 1 (const int) -0:301 Convert bool to int ( temp highp 4-component vector of int) -0:301 subgroupExclusiveAnd ( global 4-component vector of bool) -0:301 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:301 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:301 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:301 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:301 Constant: -0:301 1 (const int) -0:301 Constant: -0:301 1 (const int) -0:301 Constant: -0:301 0 (const int) -0:301 0 (const int) -0:301 0 (const int) -0:301 0 (const int) -0:303 move second child to first child ( temp highp int) -0:303 direct index ( temp highp int) -0:303 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:303 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:303 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:303 Constant: -0:303 1 (const int) -0:303 Constant: -0:303 1 (const int) -0:303 Constant: -0:303 0 (const int) -0:303 subgroupExclusiveOr ( global highp int) -0:303 direct index ( temp highp int) -0:303 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:303 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:303 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:303 Constant: -0:303 0 (const int) -0:303 Constant: -0:303 1 (const int) -0:303 Constant: -0:303 0 (const int) -0:304 move second child to first child ( temp highp 2-component vector of int) -0:304 vector swizzle ( temp highp 2-component vector of int) -0:304 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:304 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:304 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:304 Constant: -0:304 1 (const int) -0:304 Constant: -0:304 1 (const int) -0:304 Sequence -0:304 Constant: -0:304 0 (const int) -0:304 Constant: -0:304 1 (const int) -0:304 subgroupExclusiveOr ( global highp 2-component vector of int) -0:304 vector swizzle ( temp highp 2-component vector of int) -0:304 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:304 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:304 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:304 Constant: -0:304 1 (const int) -0:304 Constant: -0:304 1 (const int) -0:304 Sequence -0:304 Constant: -0:304 0 (const int) -0:304 Constant: -0:304 1 (const int) -0:305 move second child to first child ( temp highp 3-component vector of int) -0:305 vector swizzle ( temp highp 3-component vector of int) -0:305 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:305 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:305 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:305 Constant: -0:305 1 (const int) -0:305 Constant: -0:305 1 (const int) -0:305 Sequence -0:305 Constant: -0:305 0 (const int) -0:305 Constant: -0:305 1 (const int) -0:305 Constant: -0:305 2 (const int) -0:305 subgroupExclusiveOr ( global highp 3-component vector of int) -0:305 vector swizzle ( temp highp 3-component vector of int) -0:305 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:305 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:305 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:305 Constant: -0:305 2 (const int) -0:305 Constant: -0:305 1 (const int) -0:305 Sequence -0:305 Constant: -0:305 0 (const int) -0:305 Constant: -0:305 1 (const int) -0:305 Constant: -0:305 2 (const int) -0:306 move second child to first child ( temp highp 4-component vector of int) -0:306 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:306 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:306 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:306 Constant: -0:306 1 (const int) -0:306 Constant: -0:306 1 (const int) -0:306 subgroupExclusiveOr ( global highp 4-component vector of int) -0:306 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:306 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:306 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:306 Constant: -0:306 3 (const int) -0:306 Constant: -0:306 1 (const int) -0:308 move second child to first child ( temp highp uint) -0:308 direct index ( temp highp uint) -0:308 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:308 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:308 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:308 Constant: -0:308 2 (const int) -0:308 Constant: -0:308 2 (const int) -0:308 Constant: -0:308 0 (const int) -0:308 subgroupExclusiveOr ( global highp uint) -0:308 direct index ( temp highp uint) -0:308 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:308 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:308 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:308 Constant: -0:308 0 (const int) -0:308 Constant: -0:308 2 (const int) -0:308 Constant: -0:308 0 (const int) -0:309 move second child to first child ( temp highp 2-component vector of uint) -0:309 vector swizzle ( temp highp 2-component vector of uint) -0:309 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:309 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:309 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:309 Constant: -0:309 2 (const int) -0:309 Constant: -0:309 2 (const int) -0:309 Sequence -0:309 Constant: -0:309 0 (const int) -0:309 Constant: -0:309 1 (const int) -0:309 subgroupExclusiveOr ( global highp 2-component vector of uint) -0:309 vector swizzle ( temp highp 2-component vector of uint) -0:309 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:309 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:309 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:309 Constant: -0:309 1 (const int) -0:309 Constant: -0:309 2 (const int) -0:309 Sequence -0:309 Constant: -0:309 0 (const int) -0:309 Constant: -0:309 1 (const int) -0:310 move second child to first child ( temp highp 3-component vector of uint) -0:310 vector swizzle ( temp highp 3-component vector of uint) -0:310 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:310 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:310 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:310 Constant: -0:310 2 (const int) -0:310 Constant: -0:310 2 (const int) -0:310 Sequence -0:310 Constant: -0:310 0 (const int) -0:310 Constant: -0:310 1 (const int) -0:310 Constant: -0:310 2 (const int) -0:310 subgroupExclusiveOr ( global highp 3-component vector of uint) -0:310 vector swizzle ( temp highp 3-component vector of uint) -0:310 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:310 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:310 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:310 Constant: -0:310 2 (const int) -0:310 Constant: -0:310 2 (const int) -0:310 Sequence -0:310 Constant: -0:310 0 (const int) -0:310 Constant: -0:310 1 (const int) -0:310 Constant: -0:310 2 (const int) -0:311 move second child to first child ( temp highp 4-component vector of uint) -0:311 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:311 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:311 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:311 Constant: -0:311 2 (const int) -0:311 Constant: -0:311 2 (const int) -0:311 subgroupExclusiveOr ( global highp 4-component vector of uint) -0:311 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:311 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:311 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:311 Constant: -0:311 3 (const int) -0:311 Constant: -0:311 2 (const int) -0:313 move second child to first child ( temp highp int) -0:313 direct index ( temp highp int) -0:313 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:313 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:313 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:313 Constant: -0:313 3 (const int) -0:313 Constant: -0:313 1 (const int) -0:313 Constant: -0:313 0 (const int) -0:313 Convert bool to int ( temp highp int) -0:313 subgroupExclusiveOr ( global bool) -0:313 Compare Less Than ( temp bool) -0:313 direct index ( temp highp int) -0:313 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:313 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:313 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:313 Constant: -0:313 0 (const int) -0:313 Constant: -0:313 1 (const int) -0:313 Constant: -0:313 0 (const int) -0:313 Constant: -0:313 0 (const int) -0:314 move second child to first child ( temp highp 2-component vector of int) -0:314 vector swizzle ( temp highp 2-component vector of int) -0:314 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:314 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:314 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:314 Constant: -0:314 3 (const int) -0:314 Constant: -0:314 1 (const int) -0:314 Sequence -0:314 Constant: -0:314 0 (const int) -0:314 Constant: -0:314 1 (const int) -0:314 Convert bool to int ( temp highp 2-component vector of int) -0:314 subgroupExclusiveOr ( global 2-component vector of bool) -0:314 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:314 vector swizzle ( temp highp 2-component vector of int) -0:314 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:314 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:314 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:314 Constant: -0:314 1 (const int) -0:314 Constant: -0:314 1 (const int) -0:314 Sequence -0:314 Constant: -0:314 0 (const int) -0:314 Constant: -0:314 1 (const int) -0:314 Constant: -0:314 0 (const int) -0:314 0 (const int) -0:315 move second child to first child ( temp highp 3-component vector of int) -0:315 vector swizzle ( temp highp 3-component vector of int) -0:315 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:315 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:315 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:315 Constant: -0:315 3 (const int) -0:315 Constant: -0:315 1 (const int) -0:315 Sequence -0:315 Constant: -0:315 0 (const int) -0:315 Constant: -0:315 1 (const int) -0:315 Constant: -0:315 2 (const int) -0:315 Convert bool to int ( temp highp 3-component vector of int) -0:315 subgroupExclusiveOr ( global 3-component vector of bool) -0:315 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:315 vector swizzle ( temp highp 3-component vector of int) -0:315 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:315 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:315 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:315 Constant: -0:315 1 (const int) -0:315 Constant: -0:315 1 (const int) -0:315 Sequence -0:315 Constant: -0:315 0 (const int) -0:315 Constant: -0:315 1 (const int) -0:315 Constant: -0:315 2 (const int) -0:315 Constant: -0:315 0 (const int) -0:315 0 (const int) -0:315 0 (const int) -0:316 move second child to first child ( temp highp 4-component vector of int) -0:316 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:316 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:316 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:316 Constant: -0:316 3 (const int) -0:316 Constant: -0:316 1 (const int) -0:316 Convert bool to int ( temp highp 4-component vector of int) -0:316 subgroupExclusiveOr ( global 4-component vector of bool) -0:316 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:316 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:316 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:316 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:316 Constant: -0:316 1 (const int) -0:316 Constant: -0:316 1 (const int) -0:316 Constant: -0:316 0 (const int) -0:316 0 (const int) -0:316 0 (const int) -0:316 0 (const int) -0:318 move second child to first child ( temp highp int) -0:318 direct index ( temp highp int) -0:318 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:318 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:318 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:318 Constant: -0:318 0 (const int) -0:318 Constant: -0:318 1 (const int) -0:318 Constant: -0:318 0 (const int) -0:318 subgroupExclusiveXor ( global highp int) -0:318 direct index ( temp highp int) -0:318 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:318 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:318 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:318 Constant: -0:318 0 (const int) -0:318 Constant: -0:318 1 (const int) -0:318 Constant: -0:318 0 (const int) -0:319 move second child to first child ( temp highp 2-component vector of int) -0:319 vector swizzle ( temp highp 2-component vector of int) -0:319 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:319 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:319 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:319 Constant: -0:319 0 (const int) -0:319 Constant: -0:319 1 (const int) -0:319 Sequence -0:319 Constant: -0:319 0 (const int) -0:319 Constant: -0:319 1 (const int) -0:319 subgroupExclusiveXor ( global highp 2-component vector of int) -0:319 vector swizzle ( temp highp 2-component vector of int) -0:319 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:319 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:319 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:319 Constant: -0:319 1 (const int) -0:319 Constant: -0:319 1 (const int) -0:319 Sequence -0:319 Constant: -0:319 0 (const int) -0:319 Constant: -0:319 1 (const int) -0:320 move second child to first child ( temp highp 3-component vector of int) -0:320 vector swizzle ( temp highp 3-component vector of int) -0:320 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:320 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:320 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:320 Constant: -0:320 0 (const int) -0:320 Constant: -0:320 1 (const int) -0:320 Sequence -0:320 Constant: -0:320 0 (const int) -0:320 Constant: -0:320 1 (const int) -0:320 Constant: -0:320 2 (const int) -0:320 subgroupExclusiveXor ( global highp 3-component vector of int) -0:320 vector swizzle ( temp highp 3-component vector of int) -0:320 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:320 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:320 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:320 Constant: -0:320 2 (const int) -0:320 Constant: -0:320 1 (const int) -0:320 Sequence -0:320 Constant: -0:320 0 (const int) -0:320 Constant: -0:320 1 (const int) -0:320 Constant: -0:320 2 (const int) -0:321 move second child to first child ( temp highp 4-component vector of int) -0:321 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:321 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:321 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:321 Constant: -0:321 0 (const int) -0:321 Constant: -0:321 1 (const int) -0:321 subgroupExclusiveXor ( global highp 4-component vector of int) -0:321 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:321 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:321 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:321 Constant: -0:321 3 (const int) -0:321 Constant: -0:321 1 (const int) -0:323 move second child to first child ( temp highp uint) -0:323 direct index ( temp highp uint) -0:323 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:323 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:323 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:323 Constant: -0:323 1 (const int) -0:323 Constant: -0:323 2 (const int) -0:323 Constant: -0:323 0 (const int) -0:323 subgroupExclusiveXor ( global highp uint) -0:323 direct index ( temp highp uint) -0:323 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:323 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:323 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:323 Constant: -0:323 0 (const int) -0:323 Constant: -0:323 2 (const int) -0:323 Constant: -0:323 0 (const int) -0:324 move second child to first child ( temp highp 2-component vector of uint) -0:324 vector swizzle ( temp highp 2-component vector of uint) -0:324 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:324 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:324 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:324 Constant: -0:324 1 (const int) -0:324 Constant: -0:324 2 (const int) -0:324 Sequence -0:324 Constant: -0:324 0 (const int) -0:324 Constant: -0:324 1 (const int) -0:324 subgroupExclusiveXor ( global highp 2-component vector of uint) -0:324 vector swizzle ( temp highp 2-component vector of uint) -0:324 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:324 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:324 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:324 Constant: -0:324 1 (const int) -0:324 Constant: -0:324 2 (const int) -0:324 Sequence -0:324 Constant: -0:324 0 (const int) -0:324 Constant: -0:324 1 (const int) -0:325 move second child to first child ( temp highp 3-component vector of uint) -0:325 vector swizzle ( temp highp 3-component vector of uint) -0:325 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:325 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:325 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:325 Constant: -0:325 1 (const int) -0:325 Constant: -0:325 2 (const int) -0:325 Sequence -0:325 Constant: -0:325 0 (const int) -0:325 Constant: -0:325 1 (const int) -0:325 Constant: -0:325 2 (const int) -0:325 subgroupExclusiveXor ( global highp 3-component vector of uint) -0:325 vector swizzle ( temp highp 3-component vector of uint) -0:325 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:325 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:325 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:325 Constant: -0:325 2 (const int) -0:325 Constant: -0:325 2 (const int) -0:325 Sequence -0:325 Constant: -0:325 0 (const int) -0:325 Constant: -0:325 1 (const int) -0:325 Constant: -0:325 2 (const int) -0:326 move second child to first child ( temp highp 4-component vector of uint) -0:326 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:326 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:326 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:326 Constant: -0:326 1 (const int) -0:326 Constant: -0:326 2 (const int) -0:326 subgroupExclusiveXor ( global highp 4-component vector of uint) -0:326 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:326 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:326 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:326 Constant: -0:326 3 (const int) -0:326 Constant: -0:326 2 (const int) -0:328 move second child to first child ( temp highp int) -0:328 direct index ( temp highp int) -0:328 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:328 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:328 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:328 Constant: -0:328 2 (const int) -0:328 Constant: -0:328 1 (const int) -0:328 Constant: -0:328 0 (const int) -0:328 Convert bool to int ( temp highp int) -0:328 subgroupExclusiveXor ( global bool) -0:328 Compare Less Than ( temp bool) -0:328 direct index ( temp highp int) -0:328 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:328 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:328 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:328 Constant: -0:328 0 (const int) -0:328 Constant: -0:328 1 (const int) -0:328 Constant: -0:328 0 (const int) -0:328 Constant: -0:328 0 (const int) -0:329 move second child to first child ( temp highp 2-component vector of int) -0:329 vector swizzle ( temp highp 2-component vector of int) -0:329 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:329 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:329 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:329 Constant: -0:329 2 (const int) -0:329 Constant: -0:329 1 (const int) -0:329 Sequence -0:329 Constant: -0:329 0 (const int) -0:329 Constant: -0:329 1 (const int) -0:329 Convert bool to int ( temp highp 2-component vector of int) -0:329 subgroupExclusiveXor ( global 2-component vector of bool) -0:329 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:329 vector swizzle ( temp highp 2-component vector of int) -0:329 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:329 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:329 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:329 Constant: -0:329 1 (const int) -0:329 Constant: -0:329 1 (const int) -0:329 Sequence -0:329 Constant: -0:329 0 (const int) -0:329 Constant: -0:329 1 (const int) -0:329 Constant: -0:329 0 (const int) -0:329 0 (const int) -0:330 move second child to first child ( temp highp 3-component vector of int) -0:330 vector swizzle ( temp highp 3-component vector of int) -0:330 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:330 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:330 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:330 Constant: -0:330 2 (const int) -0:330 Constant: -0:330 1 (const int) -0:330 Sequence -0:330 Constant: -0:330 0 (const int) -0:330 Constant: -0:330 1 (const int) -0:330 Constant: -0:330 2 (const int) -0:330 Convert bool to int ( temp highp 3-component vector of int) -0:330 subgroupExclusiveXor ( global 3-component vector of bool) -0:330 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:330 vector swizzle ( temp highp 3-component vector of int) -0:330 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:330 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:330 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:330 Constant: -0:330 1 (const int) -0:330 Constant: -0:330 1 (const int) -0:330 Sequence -0:330 Constant: -0:330 0 (const int) -0:330 Constant: -0:330 1 (const int) -0:330 Constant: -0:330 2 (const int) -0:330 Constant: -0:330 0 (const int) -0:330 0 (const int) -0:330 0 (const int) -0:331 move second child to first child ( temp highp 4-component vector of int) -0:331 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:331 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:331 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:331 Constant: -0:331 2 (const int) -0:331 Constant: -0:331 1 (const int) -0:331 Convert bool to int ( temp highp 4-component vector of int) -0:331 subgroupExclusiveXor ( global 4-component vector of bool) -0:331 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:331 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:331 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:331 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:331 Constant: -0:331 1 (const int) -0:331 Constant: -0:331 1 (const int) -0:331 Constant: -0:331 0 (const int) -0:331 0 (const int) -0:331 0 (const int) -0:331 0 (const int) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const highp 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) - - -Linked compute stage: - - -Shader version: 320 -Requested GL_KHR_shader_subgroup_arithmetic -Requested GL_KHR_shader_subgroup_basic -local_size = (8, 1, 1) -0:? Sequence -0:14 Function Definition: main( ( global void) -0:14 Function Parameters: -0:16 Sequence -0:16 Sequence -0:16 move second child to first child ( temp highp uint) -0:16 'invocation' ( temp highp uint) -0:16 mod ( temp mediump uint) -0:16 add ( temp mediump uint) -0:16 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID) -0:16 'gl_SubgroupSize' ( in mediump uint SubgroupSize) -0:16 Constant: -0:16 4 (const uint) -0:18 move second child to first child ( temp highp float) -0:18 direct index ( temp highp float) -0:18 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:18 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 subgroupAdd ( global highp float) -0:18 direct index ( temp highp float) -0:18 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:18 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:19 move second child to first child ( temp highp 2-component vector of float) -0:19 vector swizzle ( temp highp 2-component vector of float) -0:19 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:19 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 Sequence -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const int) -0:19 subgroupAdd ( global highp 2-component vector of float) -0:19 vector swizzle ( temp highp 2-component vector of float) -0:19 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:19 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 Constant: -0:19 1 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 Sequence -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const int) -0:20 move second child to first child ( temp highp 3-component vector of float) -0:20 vector swizzle ( temp highp 3-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:20 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 2 (const int) -0:20 subgroupAdd ( global highp 3-component vector of float) -0:20 vector swizzle ( temp highp 3-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:20 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 Constant: -0:20 2 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -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 highp 4-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 subgroupAdd ( global highp 4-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 Constant: -0:21 3 (const int) -0:21 Constant: -0:21 0 (const int) -0:23 move second child to first child ( temp highp int) -0:23 direct index ( temp highp int) -0:23 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 0 (const int) -0:23 subgroupAdd ( global highp int) -0:23 direct index ( temp highp int) -0:23 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 0 (const int) -0:24 move second child to first child ( temp highp 2-component vector of int) -0:24 vector swizzle ( temp highp 2-component vector of int) -0:24 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 Sequence -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 subgroupAdd ( global highp 2-component vector of int) -0:24 vector swizzle ( temp highp 2-component vector of int) -0:24 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 Sequence -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:25 move second child to first child ( temp highp 3-component vector of int) -0:25 vector swizzle ( temp highp 3-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 subgroupAdd ( global highp 3-component vector of int) -0:25 vector swizzle ( temp highp 3-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 Constant: -0:25 2 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 2 (const int) -0:26 move second child to first child ( temp highp 4-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 subgroupAdd ( global highp 4-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 Constant: -0:26 3 (const int) -0:26 Constant: -0:26 1 (const int) -0:28 move second child to first child ( temp highp uint) -0:28 direct index ( temp highp uint) -0:28 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 Constant: -0:28 2 (const int) -0:28 Constant: -0:28 2 (const int) -0:28 Constant: -0:28 0 (const int) -0:28 subgroupAdd ( global highp uint) -0:28 direct index ( temp highp uint) -0:28 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 2 (const int) -0:28 Constant: -0:28 0 (const int) -0:29 move second child to first child ( temp highp 2-component vector of uint) -0:29 vector swizzle ( temp highp 2-component vector of uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 2 (const int) -0:29 Sequence -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 1 (const int) -0:29 subgroupAdd ( global highp 2-component vector of uint) -0:29 vector swizzle ( temp highp 2-component vector of uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 Constant: -0:29 1 (const int) -0:29 Constant: -0:29 2 (const int) -0:29 Sequence -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 1 (const int) -0:30 move second child to first child ( temp highp 3-component vector of uint) -0:30 vector swizzle ( temp highp 3-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:30 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 Constant: -0:30 2 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 subgroupAdd ( global highp 3-component vector of uint) -0:30 vector swizzle ( temp highp 3-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:30 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 Constant: -0:30 2 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 2 (const int) -0:31 move second child to first child ( temp highp 4-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 Constant: -0:31 2 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 subgroupAdd ( global highp 4-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 Constant: -0:31 3 (const int) -0:31 Constant: -0:31 2 (const int) -0:33 move second child to first child ( temp highp float) -0:33 direct index ( temp highp float) -0:33 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 Constant: -0:33 3 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 subgroupMul ( global highp float) -0:33 direct index ( temp highp float) -0:33 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -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:34 move second child to first child ( temp highp 2-component vector of float) -0:34 vector swizzle ( temp highp 2-component vector of float) -0:34 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 Constant: -0:34 3 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 Sequence -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 subgroupMul ( global highp 2-component vector of float) -0:34 vector swizzle ( temp highp 2-component vector of float) -0:34 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 Constant: -0:34 1 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 Sequence -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 1 (const int) -0:35 move second child to first child ( temp highp 3-component vector of float) -0:35 vector swizzle ( temp highp 3-component vector of float) -0:35 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 Constant: -0:35 3 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 2 (const int) -0:35 subgroupMul ( global highp 3-component vector of float) -0:35 vector swizzle ( temp highp 3-component vector of float) -0:35 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 Constant: -0:35 2 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 2 (const int) -0:36 move second child to first child ( temp highp 4-component vector of float) -0:36 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 Constant: -0:36 3 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 subgroupMul ( global highp 4-component vector of float) -0:36 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 Constant: -0:36 3 (const int) -0:36 Constant: -0:36 0 (const int) -0:38 move second child to first child ( temp highp int) -0:38 direct index ( temp highp int) -0:38 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 1 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 subgroupMul ( global highp int) -0:38 direct index ( temp highp int) -0:38 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 1 (const int) -0:38 Constant: -0:38 0 (const int) -0:39 move second child to first child ( temp highp 2-component vector of int) -0:39 vector swizzle ( temp highp 2-component vector of int) -0:39 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 Sequence -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 subgroupMul ( global highp 2-component vector of int) -0:39 vector swizzle ( temp highp 2-component vector of int) -0:39 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 Sequence -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:40 move second child to first child ( temp highp 3-component vector of int) -0:40 vector swizzle ( temp highp 3-component vector of int) -0:40 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 2 (const int) -0:40 subgroupMul ( global highp 3-component vector of int) -0:40 vector swizzle ( temp highp 3-component vector of int) -0:40 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 Constant: -0:40 2 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 2 (const int) -0:41 move second child to first child ( temp highp 4-component vector of int) -0:41 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 subgroupMul ( global highp 4-component vector of int) -0:41 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 Constant: -0:41 3 (const int) -0:41 Constant: -0:41 1 (const int) -0:43 move second child to first child ( temp highp uint) -0:43 direct index ( temp highp uint) -0:43 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:43 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 Constant: -0:43 1 (const int) -0:43 Constant: -0:43 2 (const int) -0:43 Constant: -0:43 0 (const int) -0:43 subgroupMul ( global highp uint) -0:43 direct index ( temp highp uint) -0:43 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:43 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 Constant: -0:43 0 (const int) -0:43 Constant: -0:43 2 (const int) -0:43 Constant: -0:43 0 (const int) -0:44 move second child to first child ( temp highp 2-component vector of uint) -0:44 vector swizzle ( temp highp 2-component vector of uint) -0:44 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 Constant: -0:44 1 (const int) -0:44 Constant: -0:44 2 (const int) -0:44 Sequence -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 1 (const int) -0:44 subgroupMul ( global highp 2-component vector of uint) -0:44 vector swizzle ( temp highp 2-component vector of uint) -0:44 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 Constant: -0:44 1 (const int) -0:44 Constant: -0:44 2 (const int) -0:44 Sequence -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 1 (const int) -0:45 move second child to first child ( temp highp 3-component vector of uint) -0:45 vector swizzle ( temp highp 3-component vector of uint) -0:45 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 subgroupMul ( global highp 3-component vector of uint) -0:45 vector swizzle ( temp highp 3-component vector of uint) -0:45 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 Constant: -0:45 2 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 2 (const int) -0:46 move second child to first child ( temp highp 4-component vector of uint) -0:46 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 subgroupMul ( global highp 4-component vector of uint) -0:46 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 Constant: -0:46 3 (const int) -0:46 Constant: -0:46 2 (const int) -0:48 move second child to first child ( temp highp float) -0:48 direct index ( temp highp float) -0:48 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:48 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 Constant: -0:48 2 (const int) -0:48 Constant: -0:48 0 (const int) -0:48 Constant: -0:48 0 (const int) -0:48 subgroupMin ( global highp float) -0:48 direct index ( temp highp float) -0:48 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:48 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 Constant: -0:48 0 (const int) -0:48 Constant: -0:48 0 (const int) -0:48 Constant: -0:48 0 (const int) -0:49 move second child to first child ( temp highp 2-component vector of float) -0:49 vector swizzle ( temp highp 2-component vector of float) -0:49 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:49 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 Constant: -0:49 2 (const int) -0:49 Constant: -0:49 0 (const int) -0:49 Sequence -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 1 (const int) -0:49 subgroupMin ( global highp 2-component vector of float) -0:49 vector swizzle ( temp highp 2-component vector of float) -0:49 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:49 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 Constant: -0:49 1 (const int) -0:49 Constant: -0:49 0 (const int) -0:49 Sequence -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 1 (const int) -0:50 move second child to first child ( temp highp 3-component vector of float) -0:50 vector swizzle ( temp highp 3-component vector of float) -0:50 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 Constant: -0:50 2 (const int) -0:50 Constant: -0:50 0 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 subgroupMin ( global highp 3-component vector of float) -0:50 vector swizzle ( temp highp 3-component vector of float) -0:50 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 Constant: -0:50 2 (const int) -0:50 Constant: -0:50 0 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 2 (const int) -0:51 move second child to first child ( temp highp 4-component vector of float) -0:51 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 Constant: -0:51 2 (const int) -0:51 Constant: -0:51 0 (const int) -0:51 subgroupMin ( global highp 4-component vector of float) -0:51 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 Constant: -0:51 3 (const int) -0:51 Constant: -0:51 0 (const int) -0:53 move second child to first child ( temp highp int) -0:53 direct index ( temp highp int) -0:53 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:53 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 Constant: -0:53 3 (const int) -0:53 Constant: -0:53 1 (const int) -0:53 Constant: -0:53 0 (const int) -0:53 subgroupMin ( global highp int) -0:53 direct index ( temp highp int) -0:53 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:53 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 Constant: -0:53 0 (const int) -0:53 Constant: -0:53 1 (const int) -0:53 Constant: -0:53 0 (const int) -0:54 move second child to first child ( temp highp 2-component vector of int) -0:54 vector swizzle ( temp highp 2-component vector of int) -0:54 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:54 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 Constant: -0:54 3 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 Sequence -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 subgroupMin ( global highp 2-component vector of int) -0:54 vector swizzle ( temp highp 2-component vector of int) -0:54 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:54 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 Constant: -0:54 1 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 Sequence -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 1 (const int) -0:55 move second child to first child ( temp highp 3-component vector of int) -0:55 vector swizzle ( temp highp 3-component vector of int) -0:55 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 Constant: -0:55 3 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 2 (const int) -0:55 subgroupMin ( global highp 3-component vector of int) -0:55 vector swizzle ( temp highp 3-component vector of int) -0:55 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 Constant: -0:55 2 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 2 (const int) -0:56 move second child to first child ( temp highp 4-component vector of int) -0:56 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 Constant: -0:56 3 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 subgroupMin ( global highp 4-component vector of int) -0:56 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 Constant: -0:56 3 (const int) -0:56 Constant: -0:56 1 (const int) -0:58 move second child to first child ( temp highp uint) -0:58 direct index ( temp highp uint) -0:58 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:58 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 Constant: -0:58 0 (const int) -0:58 Constant: -0:58 2 (const int) -0:58 Constant: -0:58 0 (const int) -0:58 subgroupMin ( global highp uint) -0:58 direct index ( temp highp uint) -0:58 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:58 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 Constant: -0:58 0 (const int) -0:58 Constant: -0:58 2 (const int) -0:58 Constant: -0:58 0 (const int) -0:59 move second child to first child ( temp highp 2-component vector of uint) -0:59 vector swizzle ( temp highp 2-component vector of uint) -0:59 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:59 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:59 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 2 (const int) -0:59 Sequence -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 1 (const int) -0:59 subgroupMin ( global highp 2-component vector of uint) -0:59 vector swizzle ( temp highp 2-component vector of uint) -0:59 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:59 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:59 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:59 Constant: -0:59 1 (const int) -0:59 Constant: -0:59 2 (const int) -0:59 Sequence -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 1 (const int) -0:60 move second child to first child ( temp highp 3-component vector of uint) -0:60 vector swizzle ( temp highp 3-component vector of uint) -0:60 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:60 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 2 (const int) -0:60 Sequence -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 2 (const int) -0:60 subgroupMin ( global highp 3-component vector of uint) -0:60 vector swizzle ( temp highp 3-component vector of uint) -0:60 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:60 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 Constant: -0:60 2 (const int) -0:60 Constant: -0:60 2 (const int) -0:60 Sequence -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 2 (const int) -0:61 move second child to first child ( temp highp 4-component vector of uint) -0:61 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:61 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 2 (const int) -0:61 subgroupMin ( global highp 4-component vector of uint) -0:61 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:61 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 Constant: -0:61 3 (const int) -0:61 Constant: -0:61 2 (const int) -0:63 move second child to first child ( temp highp float) -0:63 direct index ( temp highp float) -0:63 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:63 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 Constant: -0:63 1 (const int) -0:63 Constant: -0:63 0 (const int) -0:63 Constant: -0:63 0 (const int) -0:63 subgroupMax ( global highp float) -0:63 direct index ( temp highp float) -0:63 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:63 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 Constant: -0:63 0 (const int) -0:63 Constant: -0:63 0 (const int) -0:63 Constant: -0:63 0 (const int) -0:64 move second child to first child ( temp highp 2-component vector of float) -0:64 vector swizzle ( temp highp 2-component vector of float) -0:64 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:64 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:64 Constant: -0:64 1 (const int) -0:64 Constant: -0:64 0 (const int) -0:64 Sequence -0:64 Constant: -0:64 0 (const int) -0:64 Constant: -0:64 1 (const int) -0:64 subgroupMax ( global highp 2-component vector of float) -0:64 vector swizzle ( temp highp 2-component vector of float) -0:64 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:64 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:64 Constant: -0:64 1 (const int) -0:64 Constant: -0:64 0 (const int) -0:64 Sequence -0:64 Constant: -0:64 0 (const int) -0:64 Constant: -0:64 1 (const int) -0:65 move second child to first child ( temp highp 3-component vector of float) -0:65 vector swizzle ( temp highp 3-component vector of float) -0:65 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:65 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 Constant: -0:65 1 (const int) -0:65 Constant: -0:65 0 (const int) -0:65 Sequence -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Constant: -0:65 2 (const int) -0:65 subgroupMax ( global highp 3-component vector of float) -0:65 vector swizzle ( temp highp 3-component vector of float) -0:65 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:65 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 Constant: -0:65 2 (const int) -0:65 Constant: -0:65 0 (const int) -0:65 Sequence -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Constant: -0:65 2 (const int) -0:66 move second child to first child ( temp highp 4-component vector of float) -0:66 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:66 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 0 (const int) -0:66 subgroupMax ( global highp 4-component vector of float) -0:66 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:66 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 Constant: -0:66 3 (const int) -0:66 Constant: -0:66 0 (const int) -0:68 move second child to first child ( temp highp int) -0:68 direct index ( temp highp int) -0:68 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:68 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 Constant: -0:68 2 (const int) -0:68 Constant: -0:68 1 (const int) -0:68 Constant: -0:68 0 (const int) -0:68 subgroupMax ( global highp int) -0:68 direct index ( temp highp int) -0:68 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:68 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 Constant: -0:68 0 (const int) -0:68 Constant: -0:68 1 (const int) -0:68 Constant: -0:68 0 (const int) -0:69 move second child to first child ( temp highp 2-component vector of int) -0:69 vector swizzle ( temp highp 2-component vector of int) -0:69 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:69 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:69 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:69 Constant: -0:69 2 (const int) -0:69 Constant: -0:69 1 (const int) -0:69 Sequence -0:69 Constant: -0:69 0 (const int) -0:69 Constant: -0:69 1 (const int) -0:69 subgroupMax ( global highp 2-component vector of int) -0:69 vector swizzle ( temp highp 2-component vector of int) -0:69 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:69 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:69 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:69 Constant: -0:69 1 (const int) -0:69 Constant: -0:69 1 (const int) -0:69 Sequence -0:69 Constant: -0:69 0 (const int) -0:69 Constant: -0:69 1 (const int) -0:70 move second child to first child ( temp highp 3-component vector of int) -0:70 vector swizzle ( temp highp 3-component vector of int) -0:70 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:70 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 Constant: -0:70 2 (const int) -0:70 Constant: -0:70 1 (const int) -0:70 Sequence -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 1 (const int) -0:70 Constant: -0:70 2 (const int) -0:70 subgroupMax ( global highp 3-component vector of int) -0:70 vector swizzle ( temp highp 3-component vector of int) -0:70 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:70 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 Constant: -0:70 2 (const int) -0:70 Constant: -0:70 1 (const int) -0:70 Sequence -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 1 (const int) -0:70 Constant: -0:70 2 (const int) -0:71 move second child to first child ( temp highp 4-component vector of int) -0:71 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:71 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 Constant: -0:71 2 (const int) -0:71 Constant: -0:71 1 (const int) -0:71 subgroupMax ( global highp 4-component vector of int) -0:71 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:71 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 Constant: -0:71 3 (const int) -0:71 Constant: -0:71 1 (const int) -0:73 move second child to first child ( temp highp uint) -0:73 direct index ( temp highp uint) -0:73 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:73 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 Constant: -0:73 3 (const int) -0:73 Constant: -0:73 2 (const int) -0:73 Constant: -0:73 0 (const int) -0:73 subgroupMax ( global highp uint) -0:73 direct index ( temp highp uint) -0:73 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:73 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 Constant: -0:73 0 (const int) -0:73 Constant: -0:73 2 (const int) -0:73 Constant: -0:73 0 (const int) -0:74 move second child to first child ( temp highp 2-component vector of uint) -0:74 vector swizzle ( temp highp 2-component vector of uint) -0:74 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:74 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:74 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:74 Constant: -0:74 3 (const int) -0:74 Constant: -0:74 2 (const int) -0:74 Sequence -0:74 Constant: -0:74 0 (const int) -0:74 Constant: -0:74 1 (const int) -0:74 subgroupMax ( global highp 2-component vector of uint) -0:74 vector swizzle ( temp highp 2-component vector of uint) -0:74 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:74 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:74 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:74 Constant: -0:74 1 (const int) -0:74 Constant: -0:74 2 (const int) -0:74 Sequence -0:74 Constant: -0:74 0 (const int) -0:74 Constant: -0:74 1 (const int) -0:75 move second child to first child ( temp highp 3-component vector of uint) -0:75 vector swizzle ( temp highp 3-component vector of uint) -0:75 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:75 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:75 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:75 Constant: -0:75 3 (const int) -0:75 Constant: -0:75 2 (const int) -0:75 Sequence -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 1 (const int) -0:75 Constant: -0:75 2 (const int) -0:75 subgroupMax ( global highp 3-component vector of uint) -0:75 vector swizzle ( temp highp 3-component vector of uint) -0:75 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:75 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:75 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:75 Constant: -0:75 2 (const int) -0:75 Constant: -0:75 2 (const int) -0:75 Sequence -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 1 (const int) -0:75 Constant: -0:75 2 (const int) -0:76 move second child to first child ( temp highp 4-component vector of uint) -0:76 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:76 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:76 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:76 Constant: -0:76 3 (const int) -0:76 Constant: -0:76 2 (const int) -0:76 subgroupMax ( global highp 4-component vector of uint) -0:76 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:76 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:76 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:76 Constant: -0:76 3 (const int) -0:76 Constant: -0:76 2 (const int) -0:78 move second child to first child ( temp highp int) -0:78 direct index ( temp highp int) -0:78 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:78 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:78 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:78 Constant: -0:78 0 (const int) -0:78 Constant: -0:78 1 (const int) -0:78 Constant: -0:78 0 (const int) -0:78 subgroupAnd ( global highp int) -0:78 direct index ( temp highp int) -0:78 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:78 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:78 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:78 Constant: -0:78 0 (const int) -0:78 Constant: -0:78 1 (const int) -0:78 Constant: -0:78 0 (const int) -0:79 move second child to first child ( temp highp 2-component vector of int) -0:79 vector swizzle ( temp highp 2-component vector of int) -0:79 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:79 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:79 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 1 (const int) -0:79 Sequence -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 1 (const int) -0:79 subgroupAnd ( global highp 2-component vector of int) -0:79 vector swizzle ( temp highp 2-component vector of int) -0:79 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:79 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:79 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:79 Constant: -0:79 1 (const int) -0:79 Constant: -0:79 1 (const int) -0:79 Sequence -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 1 (const int) -0:80 move second child to first child ( temp highp 3-component vector of int) -0:80 vector swizzle ( temp highp 3-component vector of int) -0:80 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:80 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:80 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 1 (const int) -0:80 Sequence -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 1 (const int) -0:80 Constant: -0:80 2 (const int) -0:80 subgroupAnd ( global highp 3-component vector of int) -0:80 vector swizzle ( temp highp 3-component vector of int) -0:80 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:80 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:80 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:80 Constant: -0:80 2 (const int) -0:80 Constant: -0:80 1 (const int) -0:80 Sequence -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 1 (const int) -0:80 Constant: -0:80 2 (const int) -0:81 move second child to first child ( temp highp 4-component vector of int) -0:81 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:81 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:81 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 1 (const int) -0:81 subgroupAnd ( global highp 4-component vector of int) -0:81 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:81 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:81 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:81 Constant: -0:81 3 (const int) -0:81 Constant: -0:81 1 (const int) -0:83 move second child to first child ( temp highp uint) -0:83 direct index ( temp highp uint) -0:83 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:83 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:83 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:83 Constant: -0:83 1 (const int) -0:83 Constant: -0:83 2 (const int) -0:83 Constant: -0:83 0 (const int) -0:83 subgroupAnd ( global highp uint) -0:83 direct index ( temp highp uint) -0:83 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:83 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:83 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:83 Constant: -0:83 0 (const int) -0:83 Constant: -0:83 2 (const int) -0:83 Constant: -0:83 0 (const int) -0:84 move second child to first child ( temp highp 2-component vector of uint) -0:84 vector swizzle ( temp highp 2-component vector of uint) -0:84 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:84 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:84 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:84 Constant: -0:84 1 (const int) -0:84 Constant: -0:84 2 (const int) -0:84 Sequence -0:84 Constant: -0:84 0 (const int) -0:84 Constant: -0:84 1 (const int) -0:84 subgroupAnd ( global highp 2-component vector of uint) -0:84 vector swizzle ( temp highp 2-component vector of uint) -0:84 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:84 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:84 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:84 Constant: -0:84 1 (const int) -0:84 Constant: -0:84 2 (const int) -0:84 Sequence -0:84 Constant: -0:84 0 (const int) -0:84 Constant: -0:84 1 (const int) -0:85 move second child to first child ( temp highp 3-component vector of uint) -0:85 vector swizzle ( temp highp 3-component vector of uint) -0:85 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:85 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:85 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:85 Constant: -0:85 1 (const int) -0:85 Constant: -0:85 2 (const int) -0:85 Sequence -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 1 (const int) -0:85 Constant: -0:85 2 (const int) -0:85 subgroupAnd ( global highp 3-component vector of uint) -0:85 vector swizzle ( temp highp 3-component vector of uint) -0:85 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:85 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:85 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:85 Constant: -0:85 2 (const int) -0:85 Constant: -0:85 2 (const int) -0:85 Sequence -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 1 (const int) -0:85 Constant: -0:85 2 (const int) -0:86 move second child to first child ( temp highp 4-component vector of uint) -0:86 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:86 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:86 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:86 Constant: -0:86 1 (const int) -0:86 Constant: -0:86 2 (const int) -0:86 subgroupAnd ( global highp 4-component vector of uint) -0:86 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:86 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:86 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:86 Constant: -0:86 3 (const int) -0:86 Constant: -0:86 2 (const int) -0:88 move second child to first child ( temp highp int) -0:88 direct index ( temp highp int) -0:88 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:88 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:88 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:88 Constant: -0:88 2 (const int) -0:88 Constant: -0:88 1 (const int) -0:88 Constant: -0:88 0 (const int) -0:88 Convert bool to int ( temp highp int) -0:88 subgroupAnd ( global bool) -0:88 Compare Less Than ( temp bool) -0:88 direct index ( temp highp int) -0:88 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:88 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:88 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:88 Constant: -0:88 0 (const int) -0:88 Constant: -0:88 1 (const int) -0:88 Constant: -0:88 0 (const int) -0:88 Constant: -0:88 0 (const int) -0:89 move second child to first child ( temp highp 2-component vector of int) -0:89 vector swizzle ( temp highp 2-component vector of int) -0:89 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:89 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:89 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:89 Constant: -0:89 2 (const int) -0:89 Constant: -0:89 1 (const int) -0:89 Sequence -0:89 Constant: -0:89 0 (const int) -0:89 Constant: -0:89 1 (const int) -0:89 Convert bool to int ( temp highp 2-component vector of int) -0:89 subgroupAnd ( global 2-component vector of bool) -0:89 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:89 vector swizzle ( temp highp 2-component vector of int) -0:89 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:89 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:89 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:89 Constant: -0:89 1 (const int) -0:89 Constant: -0:89 1 (const int) -0:89 Sequence -0:89 Constant: -0:89 0 (const int) -0:89 Constant: -0:89 1 (const int) -0:89 Constant: -0:89 0 (const int) -0:89 0 (const int) -0:90 move second child to first child ( temp highp 3-component vector of int) -0:90 vector swizzle ( temp highp 3-component vector of int) -0:90 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:90 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:90 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:90 Constant: -0:90 2 (const int) -0:90 Constant: -0:90 1 (const int) -0:90 Sequence -0:90 Constant: -0:90 0 (const int) -0:90 Constant: -0:90 1 (const int) -0:90 Constant: -0:90 2 (const int) -0:90 Convert bool to int ( temp highp 3-component vector of int) -0:90 subgroupAnd ( global 3-component vector of bool) -0:90 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:90 vector swizzle ( temp highp 3-component vector of int) -0:90 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:90 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:90 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:90 Constant: -0:90 1 (const int) -0:90 Constant: -0:90 1 (const int) -0:90 Sequence -0:90 Constant: -0:90 0 (const int) -0:90 Constant: -0:90 1 (const int) -0:90 Constant: -0:90 2 (const int) -0:90 Constant: -0:90 0 (const int) -0:90 0 (const int) -0:90 0 (const int) -0:91 move second child to first child ( temp highp 4-component vector of int) -0:91 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:91 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:91 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:91 Constant: -0:91 2 (const int) -0:91 Constant: -0:91 1 (const int) -0:91 Convert bool to int ( temp highp 4-component vector of int) -0:91 subgroupAnd ( global 4-component vector of bool) -0:91 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:91 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:91 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:91 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:91 Constant: -0:91 1 (const int) -0:91 Constant: -0:91 1 (const int) -0:91 Constant: -0:91 0 (const int) -0:91 0 (const int) -0:91 0 (const int) -0:91 0 (const int) -0:93 move second child to first child ( temp highp int) -0:93 direct index ( temp highp int) -0:93 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:93 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:93 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:93 Constant: -0:93 3 (const int) -0:93 Constant: -0:93 1 (const int) -0:93 Constant: -0:93 0 (const int) -0:93 subgroupOr ( global highp int) -0:93 direct index ( temp highp int) -0:93 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:93 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:93 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:93 Constant: -0:93 0 (const int) -0:93 Constant: -0:93 1 (const int) -0:93 Constant: -0:93 0 (const int) -0:94 move second child to first child ( temp highp 2-component vector of int) -0:94 vector swizzle ( temp highp 2-component vector of int) -0:94 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:94 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:94 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:94 Constant: -0:94 3 (const int) -0:94 Constant: -0:94 1 (const int) -0:94 Sequence -0:94 Constant: -0:94 0 (const int) -0:94 Constant: -0:94 1 (const int) -0:94 subgroupOr ( global highp 2-component vector of int) -0:94 vector swizzle ( temp highp 2-component vector of int) -0:94 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:94 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:94 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:94 Constant: -0:94 1 (const int) -0:94 Constant: -0:94 1 (const int) -0:94 Sequence -0:94 Constant: -0:94 0 (const int) -0:94 Constant: -0:94 1 (const int) -0:95 move second child to first child ( temp highp 3-component vector of int) -0:95 vector swizzle ( temp highp 3-component vector of int) -0:95 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:95 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:95 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:95 Constant: -0:95 3 (const int) -0:95 Constant: -0:95 1 (const int) -0:95 Sequence -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 1 (const int) -0:95 Constant: -0:95 2 (const int) -0:95 subgroupOr ( global highp 3-component vector of int) -0:95 vector swizzle ( temp highp 3-component vector of int) -0:95 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:95 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:95 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:95 Constant: -0:95 2 (const int) -0:95 Constant: -0:95 1 (const int) -0:95 Sequence -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 1 (const int) -0:95 Constant: -0:95 2 (const int) -0:96 move second child to first child ( temp highp 4-component vector of int) -0:96 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:96 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:96 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:96 Constant: -0:96 3 (const int) -0:96 Constant: -0:96 1 (const int) -0:96 subgroupOr ( global highp 4-component vector of int) -0:96 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:96 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:96 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:96 Constant: -0:96 3 (const int) -0:96 Constant: -0:96 1 (const int) -0:98 move second child to first child ( temp highp uint) -0:98 direct index ( temp highp uint) -0:98 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:98 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:98 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:98 Constant: -0:98 0 (const int) -0:98 Constant: -0:98 2 (const int) -0:98 Constant: -0:98 0 (const int) -0:98 subgroupOr ( global highp uint) -0:98 direct index ( temp highp uint) -0:98 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:98 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:98 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:98 Constant: -0:98 0 (const int) -0:98 Constant: -0:98 2 (const int) -0:98 Constant: -0:98 0 (const int) -0:99 move second child to first child ( temp highp 2-component vector of uint) -0:99 vector swizzle ( temp highp 2-component vector of uint) -0:99 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:99 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:99 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:99 Constant: -0:99 0 (const int) -0:99 Constant: -0:99 2 (const int) -0:99 Sequence -0:99 Constant: -0:99 0 (const int) -0:99 Constant: -0:99 1 (const int) -0:99 subgroupOr ( global highp 2-component vector of uint) -0:99 vector swizzle ( temp highp 2-component vector of uint) -0:99 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:99 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:99 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:99 Constant: -0:99 1 (const int) -0:99 Constant: -0:99 2 (const int) -0:99 Sequence -0:99 Constant: -0:99 0 (const int) -0:99 Constant: -0:99 1 (const int) -0:100 move second child to first child ( temp highp 3-component vector of uint) -0:100 vector swizzle ( temp highp 3-component vector of uint) -0:100 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:100 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:100 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:100 Constant: -0:100 0 (const int) -0:100 Constant: -0:100 2 (const int) -0:100 Sequence -0:100 Constant: -0:100 0 (const int) -0:100 Constant: -0:100 1 (const int) -0:100 Constant: -0:100 2 (const int) -0:100 subgroupOr ( global highp 3-component vector of uint) -0:100 vector swizzle ( temp highp 3-component vector of uint) -0:100 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:100 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:100 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:100 Constant: -0:100 2 (const int) -0:100 Constant: -0:100 2 (const int) -0:100 Sequence -0:100 Constant: -0:100 0 (const int) -0:100 Constant: -0:100 1 (const int) -0:100 Constant: -0:100 2 (const int) -0:101 move second child to first child ( temp highp 4-component vector of uint) -0:101 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:101 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:101 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 2 (const int) -0:101 subgroupOr ( global highp 4-component vector of uint) -0:101 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:101 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:101 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:101 Constant: -0:101 3 (const int) -0:101 Constant: -0:101 2 (const int) -0:103 move second child to first child ( temp highp int) -0:103 direct index ( temp highp int) -0:103 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:103 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:103 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:103 Constant: -0:103 1 (const int) -0:103 Constant: -0:103 1 (const int) -0:103 Constant: -0:103 0 (const int) -0:103 Convert bool to int ( temp highp int) -0:103 subgroupOr ( global bool) -0:103 Compare Less Than ( temp bool) -0:103 direct index ( temp highp int) -0:103 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:103 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:103 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:103 Constant: -0:103 0 (const int) -0:103 Constant: -0:103 1 (const int) -0:103 Constant: -0:103 0 (const int) -0:103 Constant: -0:103 0 (const int) -0:104 move second child to first child ( temp highp 2-component vector of int) -0:104 vector swizzle ( temp highp 2-component vector of int) -0:104 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:104 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:104 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:104 Constant: -0:104 1 (const int) -0:104 Constant: -0:104 1 (const int) -0:104 Sequence -0:104 Constant: -0:104 0 (const int) -0:104 Constant: -0:104 1 (const int) -0:104 Convert bool to int ( temp highp 2-component vector of int) -0:104 subgroupOr ( global 2-component vector of bool) -0:104 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:104 vector swizzle ( temp highp 2-component vector of int) -0:104 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:104 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:104 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:104 Constant: -0:104 1 (const int) -0:104 Constant: -0:104 1 (const int) -0:104 Sequence -0:104 Constant: -0:104 0 (const int) -0:104 Constant: -0:104 1 (const int) -0:104 Constant: -0:104 0 (const int) -0:104 0 (const int) -0:105 move second child to first child ( temp highp 3-component vector of int) -0:105 vector swizzle ( temp highp 3-component vector of int) -0:105 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:105 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:105 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:105 Constant: -0:105 1 (const int) -0:105 Constant: -0:105 1 (const int) -0:105 Sequence -0:105 Constant: -0:105 0 (const int) -0:105 Constant: -0:105 1 (const int) -0:105 Constant: -0:105 2 (const int) -0:105 Convert bool to int ( temp highp 3-component vector of int) -0:105 subgroupOr ( global 3-component vector of bool) -0:105 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:105 vector swizzle ( temp highp 3-component vector of int) -0:105 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:105 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:105 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:105 Constant: -0:105 1 (const int) -0:105 Constant: -0:105 1 (const int) -0:105 Sequence -0:105 Constant: -0:105 0 (const int) -0:105 Constant: -0:105 1 (const int) -0:105 Constant: -0:105 2 (const int) -0:105 Constant: -0:105 0 (const int) -0:105 0 (const int) -0:105 0 (const int) -0:106 move second child to first child ( temp highp 4-component vector of int) -0:106 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:106 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:106 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:106 Constant: -0:106 1 (const int) -0:106 Constant: -0:106 1 (const int) -0:106 Convert bool to int ( temp highp 4-component vector of int) -0:106 subgroupOr ( global 4-component vector of bool) -0:106 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:106 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:106 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:106 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:106 Constant: -0:106 1 (const int) -0:106 Constant: -0:106 1 (const int) -0:106 Constant: -0:106 0 (const int) -0:106 0 (const int) -0:106 0 (const int) -0:106 0 (const int) -0:108 move second child to first child ( temp highp int) -0:108 direct index ( temp highp int) -0:108 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:108 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:108 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:108 Constant: -0:108 2 (const int) -0:108 Constant: -0:108 1 (const int) -0:108 Constant: -0:108 0 (const int) -0:108 subgroupXor ( global highp int) -0:108 direct index ( temp highp int) -0:108 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:108 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:108 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:108 Constant: -0:108 0 (const int) -0:108 Constant: -0:108 1 (const int) -0:108 Constant: -0:108 0 (const int) -0:109 move second child to first child ( temp highp 2-component vector of int) -0:109 vector swizzle ( temp highp 2-component vector of int) -0:109 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:109 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:109 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:109 Constant: -0:109 2 (const int) -0:109 Constant: -0:109 1 (const int) -0:109 Sequence -0:109 Constant: -0:109 0 (const int) -0:109 Constant: -0:109 1 (const int) -0:109 subgroupXor ( global highp 2-component vector of int) -0:109 vector swizzle ( temp highp 2-component vector of int) -0:109 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:109 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:109 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:109 Constant: -0:109 1 (const int) -0:109 Constant: -0:109 1 (const int) -0:109 Sequence -0:109 Constant: -0:109 0 (const int) -0:109 Constant: -0:109 1 (const int) -0:110 move second child to first child ( temp highp 3-component vector of int) -0:110 vector swizzle ( temp highp 3-component vector of int) -0:110 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:110 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:110 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:110 Constant: -0:110 2 (const int) -0:110 Constant: -0:110 1 (const int) -0:110 Sequence -0:110 Constant: -0:110 0 (const int) -0:110 Constant: -0:110 1 (const int) -0:110 Constant: -0:110 2 (const int) -0:110 subgroupXor ( global highp 3-component vector of int) -0:110 vector swizzle ( temp highp 3-component vector of int) -0:110 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:110 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:110 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:110 Constant: -0:110 2 (const int) -0:110 Constant: -0:110 1 (const int) -0:110 Sequence -0:110 Constant: -0:110 0 (const int) -0:110 Constant: -0:110 1 (const int) -0:110 Constant: -0:110 2 (const int) -0:111 move second child to first child ( temp highp 4-component vector of int) -0:111 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:111 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:111 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:111 Constant: -0:111 2 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 subgroupXor ( global highp 4-component vector of int) -0:111 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:111 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:111 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:111 Constant: -0:111 3 (const int) -0:111 Constant: -0:111 1 (const int) -0:113 move second child to first child ( temp highp uint) -0:113 direct index ( temp highp uint) -0:113 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:113 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:113 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:113 Constant: -0:113 3 (const int) -0:113 Constant: -0:113 2 (const int) -0:113 Constant: -0:113 0 (const int) -0:113 subgroupXor ( global highp uint) -0:113 direct index ( temp highp uint) -0:113 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:113 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:113 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:113 Constant: -0:113 0 (const int) -0:113 Constant: -0:113 2 (const int) -0:113 Constant: -0:113 0 (const int) -0:114 move second child to first child ( temp highp 2-component vector of uint) -0:114 vector swizzle ( temp highp 2-component vector of uint) -0:114 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:114 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:114 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:114 Constant: -0:114 3 (const int) -0:114 Constant: -0:114 2 (const int) -0:114 Sequence -0:114 Constant: -0:114 0 (const int) -0:114 Constant: -0:114 1 (const int) -0:114 subgroupXor ( global highp 2-component vector of uint) -0:114 vector swizzle ( temp highp 2-component vector of uint) -0:114 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:114 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:114 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:114 Constant: -0:114 1 (const int) -0:114 Constant: -0:114 2 (const int) -0:114 Sequence -0:114 Constant: -0:114 0 (const int) -0:114 Constant: -0:114 1 (const int) -0:115 move second child to first child ( temp highp 3-component vector of uint) -0:115 vector swizzle ( temp highp 3-component vector of uint) -0:115 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:115 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:115 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:115 Constant: -0:115 3 (const int) -0:115 Constant: -0:115 2 (const int) -0:115 Sequence -0:115 Constant: -0:115 0 (const int) -0:115 Constant: -0:115 1 (const int) -0:115 Constant: -0:115 2 (const int) -0:115 subgroupXor ( global highp 3-component vector of uint) -0:115 vector swizzle ( temp highp 3-component vector of uint) -0:115 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:115 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:115 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:115 Constant: -0:115 2 (const int) -0:115 Constant: -0:115 2 (const int) -0:115 Sequence -0:115 Constant: -0:115 0 (const int) -0:115 Constant: -0:115 1 (const int) -0:115 Constant: -0:115 2 (const int) -0:116 move second child to first child ( temp highp 4-component vector of uint) -0:116 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:116 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:116 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:116 Constant: -0:116 3 (const int) -0:116 Constant: -0:116 2 (const int) -0:116 subgroupXor ( global highp 4-component vector of uint) -0:116 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:116 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:116 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:116 Constant: -0:116 3 (const int) -0:116 Constant: -0:116 2 (const int) -0:118 move second child to first child ( temp highp int) -0:118 direct index ( temp highp int) -0:118 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:118 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:118 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:118 Constant: -0:118 0 (const int) -0:118 Constant: -0:118 1 (const int) -0:118 Constant: -0:118 0 (const int) -0:118 Convert bool to int ( temp highp int) -0:118 subgroupXor ( global bool) -0:118 Compare Less Than ( temp bool) -0:118 direct index ( temp highp int) -0:118 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:118 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:118 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:118 Constant: -0:118 0 (const int) -0:118 Constant: -0:118 1 (const int) -0:118 Constant: -0:118 0 (const int) -0:118 Constant: -0:118 0 (const int) -0:119 move second child to first child ( temp highp 2-component vector of int) -0:119 vector swizzle ( temp highp 2-component vector of int) -0:119 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:119 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:119 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:119 Constant: -0:119 0 (const int) -0:119 Constant: -0:119 1 (const int) -0:119 Sequence -0:119 Constant: -0:119 0 (const int) -0:119 Constant: -0:119 1 (const int) -0:119 Convert bool to int ( temp highp 2-component vector of int) -0:119 subgroupXor ( global 2-component vector of bool) -0:119 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:119 vector swizzle ( temp highp 2-component vector of int) -0:119 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:119 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:119 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:119 Constant: -0:119 1 (const int) -0:119 Constant: -0:119 1 (const int) -0:119 Sequence -0:119 Constant: -0:119 0 (const int) -0:119 Constant: -0:119 1 (const int) -0:119 Constant: -0:119 0 (const int) -0:119 0 (const int) -0:120 move second child to first child ( temp highp 3-component vector of int) -0:120 vector swizzle ( temp highp 3-component vector of int) -0:120 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:120 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:120 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:120 Constant: -0:120 0 (const int) -0:120 Constant: -0:120 1 (const int) -0:120 Sequence -0:120 Constant: -0:120 0 (const int) -0:120 Constant: -0:120 1 (const int) -0:120 Constant: -0:120 2 (const int) -0:120 Convert bool to int ( temp highp 3-component vector of int) -0:120 subgroupXor ( global 3-component vector of bool) -0:120 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:120 vector swizzle ( temp highp 3-component vector of int) -0:120 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:120 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:120 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:120 Constant: -0:120 1 (const int) -0:120 Constant: -0:120 1 (const int) -0:120 Sequence -0:120 Constant: -0:120 0 (const int) -0:120 Constant: -0:120 1 (const int) -0:120 Constant: -0:120 2 (const int) -0:120 Constant: -0:120 0 (const int) -0:120 0 (const int) -0:120 0 (const int) -0:121 move second child to first child ( temp highp 4-component vector of int) -0:121 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:121 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:121 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 1 (const int) -0:121 Convert bool to int ( temp highp 4-component vector of int) -0:121 subgroupXor ( global 4-component vector of bool) -0:121 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:121 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:121 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:121 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:121 Constant: -0:121 1 (const int) -0:121 Constant: -0:121 1 (const int) -0:121 Constant: -0:121 0 (const int) -0:121 0 (const int) -0:121 0 (const int) -0:121 0 (const int) -0:123 move second child to first child ( temp highp float) -0:123 direct index ( temp highp float) -0:123 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:123 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:123 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:123 Constant: -0:123 1 (const int) -0:123 Constant: -0:123 0 (const int) -0:123 Constant: -0:123 0 (const int) -0:123 subgroupInclusiveAdd ( global highp float) -0:123 direct index ( temp highp float) -0:123 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:123 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:123 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:123 Constant: -0:123 0 (const int) -0:123 Constant: -0:123 0 (const int) -0:123 Constant: -0:123 0 (const int) -0:124 move second child to first child ( temp highp 2-component vector of float) -0:124 vector swizzle ( temp highp 2-component vector of float) -0:124 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:124 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:124 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:124 Constant: -0:124 1 (const int) -0:124 Constant: -0:124 0 (const int) -0:124 Sequence -0:124 Constant: -0:124 0 (const int) -0:124 Constant: -0:124 1 (const int) -0:124 subgroupInclusiveAdd ( global highp 2-component vector of float) -0:124 vector swizzle ( temp highp 2-component vector of float) -0:124 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:124 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:124 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:124 Constant: -0:124 1 (const int) -0:124 Constant: -0:124 0 (const int) -0:124 Sequence -0:124 Constant: -0:124 0 (const int) -0:124 Constant: -0:124 1 (const int) -0:125 move second child to first child ( temp highp 3-component vector of float) -0:125 vector swizzle ( temp highp 3-component vector of float) -0:125 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:125 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:125 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:125 Constant: -0:125 1 (const int) -0:125 Constant: -0:125 0 (const int) -0:125 Sequence -0:125 Constant: -0:125 0 (const int) -0:125 Constant: -0:125 1 (const int) -0:125 Constant: -0:125 2 (const int) -0:125 subgroupInclusiveAdd ( global highp 3-component vector of float) -0:125 vector swizzle ( temp highp 3-component vector of float) -0:125 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:125 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:125 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:125 Constant: -0:125 2 (const int) -0:125 Constant: -0:125 0 (const int) -0:125 Sequence -0:125 Constant: -0:125 0 (const int) -0:125 Constant: -0:125 1 (const int) -0:125 Constant: -0:125 2 (const int) -0:126 move second child to first child ( temp highp 4-component vector of float) -0:126 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:126 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:126 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:126 Constant: -0:126 1 (const int) -0:126 Constant: -0:126 0 (const int) -0:126 subgroupInclusiveAdd ( global highp 4-component vector of float) -0:126 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:126 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:126 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:126 Constant: -0:126 3 (const int) -0:126 Constant: -0:126 0 (const int) -0:128 move second child to first child ( temp highp int) -0:128 direct index ( temp highp int) -0:128 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:128 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:128 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:128 Constant: -0:128 2 (const int) -0:128 Constant: -0:128 1 (const int) -0:128 Constant: -0:128 0 (const int) -0:128 subgroupInclusiveAdd ( global highp int) -0:128 direct index ( temp highp int) -0:128 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:128 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:128 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:128 Constant: -0:128 0 (const int) -0:128 Constant: -0:128 1 (const int) -0:128 Constant: -0:128 0 (const int) -0:129 move second child to first child ( temp highp 2-component vector of int) -0:129 vector swizzle ( temp highp 2-component vector of int) -0:129 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:129 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:129 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:129 Constant: -0:129 2 (const int) -0:129 Constant: -0:129 1 (const int) -0:129 Sequence -0:129 Constant: -0:129 0 (const int) -0:129 Constant: -0:129 1 (const int) -0:129 subgroupInclusiveAdd ( global highp 2-component vector of int) -0:129 vector swizzle ( temp highp 2-component vector of int) -0:129 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:129 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:129 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:129 Constant: -0:129 1 (const int) -0:129 Constant: -0:129 1 (const int) -0:129 Sequence -0:129 Constant: -0:129 0 (const int) -0:129 Constant: -0:129 1 (const int) -0:130 move second child to first child ( temp highp 3-component vector of int) -0:130 vector swizzle ( temp highp 3-component vector of int) -0:130 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:130 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:130 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:130 Constant: -0:130 2 (const int) -0:130 Constant: -0:130 1 (const int) -0:130 Sequence -0:130 Constant: -0:130 0 (const int) -0:130 Constant: -0:130 1 (const int) -0:130 Constant: -0:130 2 (const int) -0:130 subgroupInclusiveAdd ( global highp 3-component vector of int) -0:130 vector swizzle ( temp highp 3-component vector of int) -0:130 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:130 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:130 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:130 Constant: -0:130 2 (const int) -0:130 Constant: -0:130 1 (const int) -0:130 Sequence -0:130 Constant: -0:130 0 (const int) -0:130 Constant: -0:130 1 (const int) -0:130 Constant: -0:130 2 (const int) -0:131 move second child to first child ( temp highp 4-component vector of int) -0:131 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:131 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:131 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:131 Constant: -0:131 2 (const int) -0:131 Constant: -0:131 1 (const int) -0:131 subgroupInclusiveAdd ( global highp 4-component vector of int) -0:131 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:131 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:131 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:131 Constant: -0:131 3 (const int) -0:131 Constant: -0:131 1 (const int) -0:133 move second child to first child ( temp highp uint) -0:133 direct index ( temp highp uint) -0:133 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:133 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:133 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:133 Constant: -0:133 3 (const int) -0:133 Constant: -0:133 2 (const int) -0:133 Constant: -0:133 0 (const int) -0:133 subgroupInclusiveAdd ( global highp uint) -0:133 direct index ( temp highp uint) -0:133 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:133 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:133 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:133 Constant: -0:133 0 (const int) -0:133 Constant: -0:133 2 (const int) -0:133 Constant: -0:133 0 (const int) -0:134 move second child to first child ( temp highp 2-component vector of uint) -0:134 vector swizzle ( temp highp 2-component vector of uint) -0:134 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:134 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:134 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:134 Constant: -0:134 3 (const int) -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 subgroupInclusiveAdd ( global highp 2-component vector of uint) -0:134 vector swizzle ( temp highp 2-component vector of uint) -0:134 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:134 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:134 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:134 Constant: -0:134 1 (const int) -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:135 move second child to first child ( temp highp 3-component vector of uint) -0:135 vector swizzle ( temp highp 3-component vector of uint) -0:135 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:135 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:135 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:135 Constant: -0:135 3 (const int) -0:135 Constant: -0:135 2 (const int) -0:135 Sequence -0:135 Constant: -0:135 0 (const int) -0:135 Constant: -0:135 1 (const int) -0:135 Constant: -0:135 2 (const int) -0:135 subgroupInclusiveAdd ( global highp 3-component vector of uint) -0:135 vector swizzle ( temp highp 3-component vector of uint) -0:135 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:135 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:135 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:135 Constant: -0:135 2 (const int) -0:135 Constant: -0:135 2 (const int) -0:135 Sequence -0:135 Constant: -0:135 0 (const int) -0:135 Constant: -0:135 1 (const int) -0:135 Constant: -0:135 2 (const int) -0:136 move second child to first child ( temp highp 4-component vector of uint) -0:136 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:136 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:136 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:136 Constant: -0:136 3 (const int) -0:136 Constant: -0:136 2 (const int) -0:136 subgroupInclusiveAdd ( global highp 4-component vector of uint) -0:136 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:136 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:136 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:136 Constant: -0:136 3 (const int) -0:136 Constant: -0:136 2 (const int) -0:138 move second child to first child ( temp highp float) -0:138 direct index ( temp highp float) -0:138 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:138 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:138 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:138 Constant: -0:138 0 (const int) -0:138 Constant: -0:138 0 (const int) -0:138 Constant: -0:138 0 (const int) -0:138 subgroupInclusiveMul ( global highp float) -0:138 direct index ( temp highp float) -0:138 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:138 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:138 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:138 Constant: -0:138 0 (const int) -0:138 Constant: -0:138 0 (const int) -0:138 Constant: -0:138 0 (const int) -0:139 move second child to first child ( temp highp 2-component vector of float) -0:139 vector swizzle ( temp highp 2-component vector of float) -0:139 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:139 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:139 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:139 Constant: -0:139 0 (const int) -0:139 Constant: -0:139 0 (const int) -0:139 Sequence -0:139 Constant: -0:139 0 (const int) -0:139 Constant: -0:139 1 (const int) -0:139 subgroupInclusiveMul ( global highp 2-component vector of float) -0:139 vector swizzle ( temp highp 2-component vector of float) -0:139 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:139 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:139 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:139 Constant: -0:139 1 (const int) -0:139 Constant: -0:139 0 (const int) -0:139 Sequence -0:139 Constant: -0:139 0 (const int) -0:139 Constant: -0:139 1 (const int) -0:140 move second child to first child ( temp highp 3-component vector of float) -0:140 vector swizzle ( temp highp 3-component vector of float) -0:140 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:140 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:140 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:140 Constant: -0:140 0 (const int) -0:140 Constant: -0:140 0 (const int) -0:140 Sequence -0:140 Constant: -0:140 0 (const int) -0:140 Constant: -0:140 1 (const int) -0:140 Constant: -0:140 2 (const int) -0:140 subgroupInclusiveMul ( global highp 3-component vector of float) -0:140 vector swizzle ( temp highp 3-component vector of float) -0:140 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:140 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:140 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:140 Constant: -0:140 2 (const int) -0:140 Constant: -0:140 0 (const int) -0:140 Sequence -0:140 Constant: -0:140 0 (const int) -0:140 Constant: -0:140 1 (const int) -0:140 Constant: -0:140 2 (const int) -0:141 move second child to first child ( temp highp 4-component vector of float) -0:141 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:141 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:141 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:141 Constant: -0:141 0 (const int) -0:141 Constant: -0:141 0 (const int) -0:141 subgroupInclusiveMul ( global highp 4-component vector of float) -0:141 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:141 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:141 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:141 Constant: -0:141 3 (const int) -0:141 Constant: -0:141 0 (const int) -0:143 move second child to first child ( temp highp int) -0:143 direct index ( temp highp int) -0:143 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:143 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:143 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:143 Constant: -0:143 1 (const int) -0:143 Constant: -0:143 1 (const int) -0:143 Constant: -0:143 0 (const int) -0:143 subgroupInclusiveMul ( global highp int) -0:143 direct index ( temp highp int) -0:143 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:143 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:143 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:143 Constant: -0:143 0 (const int) -0:143 Constant: -0:143 1 (const int) -0:143 Constant: -0:143 0 (const int) -0:144 move second child to first child ( temp highp 2-component vector of int) -0:144 vector swizzle ( temp highp 2-component vector of int) -0:144 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:144 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:144 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:144 Constant: -0:144 1 (const int) -0:144 Constant: -0:144 1 (const int) -0:144 Sequence -0:144 Constant: -0:144 0 (const int) -0:144 Constant: -0:144 1 (const int) -0:144 subgroupInclusiveMul ( global highp 2-component vector of int) -0:144 vector swizzle ( temp highp 2-component vector of int) -0:144 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:144 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:144 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:144 Constant: -0:144 1 (const int) -0:144 Constant: -0:144 1 (const int) -0:144 Sequence -0:144 Constant: -0:144 0 (const int) -0:144 Constant: -0:144 1 (const int) -0:145 move second child to first child ( temp highp 3-component vector of int) -0:145 vector swizzle ( temp highp 3-component vector of int) -0:145 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:145 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:145 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:145 Constant: -0:145 1 (const int) -0:145 Constant: -0:145 1 (const int) -0:145 Sequence -0:145 Constant: -0:145 0 (const int) -0:145 Constant: -0:145 1 (const int) -0:145 Constant: -0:145 2 (const int) -0:145 subgroupInclusiveMul ( global highp 3-component vector of int) -0:145 vector swizzle ( temp highp 3-component vector of int) -0:145 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:145 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:145 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:145 Constant: -0:145 2 (const int) -0:145 Constant: -0:145 1 (const int) -0:145 Sequence -0:145 Constant: -0:145 0 (const int) -0:145 Constant: -0:145 1 (const int) -0:145 Constant: -0:145 2 (const int) -0:146 move second child to first child ( temp highp 4-component vector of int) -0:146 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:146 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:146 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:146 Constant: -0:146 1 (const int) -0:146 Constant: -0:146 1 (const int) -0:146 subgroupInclusiveMul ( global highp 4-component vector of int) -0:146 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:146 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:146 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:146 Constant: -0:146 3 (const int) -0:146 Constant: -0:146 1 (const int) -0:148 move second child to first child ( temp highp uint) -0:148 direct index ( temp highp uint) -0:148 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:148 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:148 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:148 Constant: -0:148 2 (const int) -0:148 Constant: -0:148 2 (const int) -0:148 Constant: -0:148 0 (const int) -0:148 subgroupInclusiveMul ( global highp uint) -0:148 direct index ( temp highp uint) -0:148 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:148 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:148 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:148 Constant: -0:148 0 (const int) -0:148 Constant: -0:148 2 (const int) -0:148 Constant: -0:148 0 (const int) -0:149 move second child to first child ( temp highp 2-component vector of uint) -0:149 vector swizzle ( temp highp 2-component vector of uint) -0:149 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:149 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:149 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:149 Constant: -0:149 2 (const int) -0:149 Constant: -0:149 2 (const int) -0:149 Sequence -0:149 Constant: -0:149 0 (const int) -0:149 Constant: -0:149 1 (const int) -0:149 subgroupInclusiveMul ( global highp 2-component vector of uint) -0:149 vector swizzle ( temp highp 2-component vector of uint) -0:149 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:149 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:149 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:149 Constant: -0:149 1 (const int) -0:149 Constant: -0:149 2 (const int) -0:149 Sequence -0:149 Constant: -0:149 0 (const int) -0:149 Constant: -0:149 1 (const int) -0:150 move second child to first child ( temp highp 3-component vector of uint) -0:150 vector swizzle ( temp highp 3-component vector of uint) -0:150 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:150 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:150 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:150 Constant: -0:150 2 (const int) -0:150 Constant: -0:150 2 (const int) -0:150 Sequence -0:150 Constant: -0:150 0 (const int) -0:150 Constant: -0:150 1 (const int) -0:150 Constant: -0:150 2 (const int) -0:150 subgroupInclusiveMul ( global highp 3-component vector of uint) -0:150 vector swizzle ( temp highp 3-component vector of uint) -0:150 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:150 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:150 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:150 Constant: -0:150 2 (const int) -0:150 Constant: -0:150 2 (const int) -0:150 Sequence -0:150 Constant: -0:150 0 (const int) -0:150 Constant: -0:150 1 (const int) -0:150 Constant: -0:150 2 (const int) -0:151 move second child to first child ( temp highp 4-component vector of uint) -0:151 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:151 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:151 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:151 Constant: -0:151 2 (const int) -0:151 Constant: -0:151 2 (const int) -0:151 subgroupInclusiveMul ( global highp 4-component vector of uint) -0:151 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:151 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:151 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:151 Constant: -0:151 3 (const int) -0:151 Constant: -0:151 2 (const int) -0:153 move second child to first child ( temp highp float) -0:153 direct index ( temp highp float) -0:153 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:153 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:153 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:153 Constant: -0:153 3 (const int) -0:153 Constant: -0:153 0 (const int) -0:153 Constant: -0:153 0 (const int) -0:153 subgroupInclusiveMin ( global highp float) -0:153 direct index ( temp highp float) -0:153 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:153 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:153 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:153 Constant: -0:153 0 (const int) -0:153 Constant: -0:153 0 (const int) -0:153 Constant: -0:153 0 (const int) -0:154 move second child to first child ( temp highp 2-component vector of float) -0:154 vector swizzle ( temp highp 2-component vector of float) -0:154 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:154 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:154 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:154 Constant: -0:154 3 (const int) -0:154 Constant: -0:154 0 (const int) -0:154 Sequence -0:154 Constant: -0:154 0 (const int) -0:154 Constant: -0:154 1 (const int) -0:154 subgroupInclusiveMin ( global highp 2-component vector of float) -0:154 vector swizzle ( temp highp 2-component vector of float) -0:154 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:154 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:154 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:154 Constant: -0:154 1 (const int) -0:154 Constant: -0:154 0 (const int) -0:154 Sequence -0:154 Constant: -0:154 0 (const int) -0:154 Constant: -0:154 1 (const int) -0:155 move second child to first child ( temp highp 3-component vector of float) -0:155 vector swizzle ( temp highp 3-component vector of float) -0:155 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:155 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:155 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:155 Constant: -0:155 3 (const int) -0:155 Constant: -0:155 0 (const int) -0:155 Sequence -0:155 Constant: -0:155 0 (const int) -0:155 Constant: -0:155 1 (const int) -0:155 Constant: -0:155 2 (const int) -0:155 subgroupInclusiveMin ( global highp 3-component vector of float) -0:155 vector swizzle ( temp highp 3-component vector of float) -0:155 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:155 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:155 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:155 Constant: -0:155 2 (const int) -0:155 Constant: -0:155 0 (const int) -0:155 Sequence -0:155 Constant: -0:155 0 (const int) -0:155 Constant: -0:155 1 (const int) -0:155 Constant: -0:155 2 (const int) -0:156 move second child to first child ( temp highp 4-component vector of float) -0:156 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:156 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:156 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:156 Constant: -0:156 3 (const int) -0:156 Constant: -0:156 0 (const int) -0:156 subgroupInclusiveMin ( global highp 4-component vector of float) -0:156 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:156 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:156 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:156 Constant: -0:156 3 (const int) -0:156 Constant: -0:156 0 (const int) -0:158 move second child to first child ( temp highp int) -0:158 direct index ( temp highp int) -0:158 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:158 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:158 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:158 Constant: -0:158 0 (const int) -0:158 Constant: -0:158 1 (const int) -0:158 Constant: -0:158 0 (const int) -0:158 subgroupInclusiveMin ( global highp int) -0:158 direct index ( temp highp int) -0:158 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:158 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:158 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:158 Constant: -0:158 0 (const int) -0:158 Constant: -0:158 1 (const int) -0:158 Constant: -0:158 0 (const int) -0:159 move second child to first child ( temp highp 2-component vector of int) -0:159 vector swizzle ( temp highp 2-component vector of int) -0:159 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:159 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:159 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:159 Constant: -0:159 0 (const int) -0:159 Constant: -0:159 1 (const int) -0:159 Sequence -0:159 Constant: -0:159 0 (const int) -0:159 Constant: -0:159 1 (const int) -0:159 subgroupInclusiveMin ( global highp 2-component vector of int) -0:159 vector swizzle ( temp highp 2-component vector of int) -0:159 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:159 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:159 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:159 Constant: -0:159 1 (const int) -0:159 Constant: -0:159 1 (const int) -0:159 Sequence -0:159 Constant: -0:159 0 (const int) -0:159 Constant: -0:159 1 (const int) -0:160 move second child to first child ( temp highp 3-component vector of int) -0:160 vector swizzle ( temp highp 3-component vector of int) -0:160 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:160 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:160 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:160 Constant: -0:160 0 (const int) -0:160 Constant: -0:160 1 (const int) -0:160 Sequence -0:160 Constant: -0:160 0 (const int) -0:160 Constant: -0:160 1 (const int) -0:160 Constant: -0:160 2 (const int) -0:160 subgroupInclusiveMin ( global highp 3-component vector of int) -0:160 vector swizzle ( temp highp 3-component vector of int) -0:160 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:160 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:160 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:160 Constant: -0:160 2 (const int) -0:160 Constant: -0:160 1 (const int) -0:160 Sequence -0:160 Constant: -0:160 0 (const int) -0:160 Constant: -0:160 1 (const int) -0:160 Constant: -0:160 2 (const int) -0:161 move second child to first child ( temp highp 4-component vector of int) -0:161 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:161 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:161 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:161 Constant: -0:161 0 (const int) -0:161 Constant: -0:161 1 (const int) -0:161 subgroupInclusiveMin ( global highp 4-component vector of int) -0:161 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:161 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:161 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:161 Constant: -0:161 3 (const int) -0:161 Constant: -0:161 1 (const int) -0:163 move second child to first child ( temp highp uint) -0:163 direct index ( temp highp uint) -0:163 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:163 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:163 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:163 Constant: -0:163 1 (const int) -0:163 Constant: -0:163 2 (const int) -0:163 Constant: -0:163 0 (const int) -0:163 subgroupInclusiveMin ( global highp uint) -0:163 direct index ( temp highp uint) -0:163 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:163 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:163 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:163 Constant: -0:163 0 (const int) -0:163 Constant: -0:163 2 (const int) -0:163 Constant: -0:163 0 (const int) -0:164 move second child to first child ( temp highp 2-component vector of uint) -0:164 vector swizzle ( temp highp 2-component vector of uint) -0:164 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:164 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:164 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:164 Constant: -0:164 1 (const int) -0:164 Constant: -0:164 2 (const int) -0:164 Sequence -0:164 Constant: -0:164 0 (const int) -0:164 Constant: -0:164 1 (const int) -0:164 subgroupInclusiveMin ( global highp 2-component vector of uint) -0:164 vector swizzle ( temp highp 2-component vector of uint) -0:164 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:164 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:164 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:164 Constant: -0:164 1 (const int) -0:164 Constant: -0:164 2 (const int) -0:164 Sequence -0:164 Constant: -0:164 0 (const int) -0:164 Constant: -0:164 1 (const int) -0:165 move second child to first child ( temp highp 3-component vector of uint) -0:165 vector swizzle ( temp highp 3-component vector of uint) -0:165 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:165 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:165 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:165 Constant: -0:165 1 (const int) -0:165 Constant: -0:165 2 (const int) -0:165 Sequence -0:165 Constant: -0:165 0 (const int) -0:165 Constant: -0:165 1 (const int) -0:165 Constant: -0:165 2 (const int) -0:165 subgroupInclusiveMin ( global highp 3-component vector of uint) -0:165 vector swizzle ( temp highp 3-component vector of uint) -0:165 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:165 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:165 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:165 Constant: -0:165 2 (const int) -0:165 Constant: -0:165 2 (const int) -0:165 Sequence -0:165 Constant: -0:165 0 (const int) -0:165 Constant: -0:165 1 (const int) -0:165 Constant: -0:165 2 (const int) -0:166 move second child to first child ( temp highp 4-component vector of uint) -0:166 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:166 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:166 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:166 Constant: -0:166 1 (const int) -0:166 Constant: -0:166 2 (const int) -0:166 subgroupInclusiveMin ( global highp 4-component vector of uint) -0:166 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:166 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:166 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:166 Constant: -0:166 3 (const int) -0:166 Constant: -0:166 2 (const int) -0:168 move second child to first child ( temp highp float) -0:168 direct index ( temp highp float) -0:168 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:168 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:168 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:168 Constant: -0:168 2 (const int) -0:168 Constant: -0:168 0 (const int) -0:168 Constant: -0:168 0 (const int) -0:168 subgroupInclusiveMax ( global highp float) -0:168 direct index ( temp highp float) -0:168 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:168 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:168 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:168 Constant: -0:168 0 (const int) -0:168 Constant: -0:168 0 (const int) -0:168 Constant: -0:168 0 (const int) -0:169 move second child to first child ( temp highp 2-component vector of float) -0:169 vector swizzle ( temp highp 2-component vector of float) -0:169 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:169 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:169 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:169 Constant: -0:169 2 (const int) -0:169 Constant: -0:169 0 (const int) -0:169 Sequence -0:169 Constant: -0:169 0 (const int) -0:169 Constant: -0:169 1 (const int) -0:169 subgroupInclusiveMax ( global highp 2-component vector of float) -0:169 vector swizzle ( temp highp 2-component vector of float) -0:169 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:169 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:169 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:169 Constant: -0:169 1 (const int) -0:169 Constant: -0:169 0 (const int) -0:169 Sequence -0:169 Constant: -0:169 0 (const int) -0:169 Constant: -0:169 1 (const int) -0:170 move second child to first child ( temp highp 3-component vector of float) -0:170 vector swizzle ( temp highp 3-component vector of float) -0:170 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:170 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:170 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:170 Constant: -0:170 2 (const int) -0:170 Constant: -0:170 0 (const int) -0:170 Sequence -0:170 Constant: -0:170 0 (const int) -0:170 Constant: -0:170 1 (const int) -0:170 Constant: -0:170 2 (const int) -0:170 subgroupInclusiveMax ( global highp 3-component vector of float) -0:170 vector swizzle ( temp highp 3-component vector of float) -0:170 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:170 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:170 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:170 Constant: -0:170 2 (const int) -0:170 Constant: -0:170 0 (const int) -0:170 Sequence -0:170 Constant: -0:170 0 (const int) -0:170 Constant: -0:170 1 (const int) -0:170 Constant: -0:170 2 (const int) -0:171 move second child to first child ( temp highp 4-component vector of float) -0:171 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:171 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:171 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:171 Constant: -0:171 2 (const int) -0:171 Constant: -0:171 0 (const int) -0:171 subgroupInclusiveMax ( global highp 4-component vector of float) -0:171 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:171 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:171 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:171 Constant: -0:171 3 (const int) -0:171 Constant: -0:171 0 (const int) -0:173 move second child to first child ( temp highp int) -0:173 direct index ( temp highp int) -0:173 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:173 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:173 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:173 Constant: -0:173 3 (const int) -0:173 Constant: -0:173 1 (const int) -0:173 Constant: -0:173 0 (const int) -0:173 subgroupInclusiveMax ( global highp int) -0:173 direct index ( temp highp int) -0:173 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:173 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:173 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:173 Constant: -0:173 0 (const int) -0:173 Constant: -0:173 1 (const int) -0:173 Constant: -0:173 0 (const int) -0:174 move second child to first child ( temp highp 2-component vector of int) -0:174 vector swizzle ( temp highp 2-component vector of int) -0:174 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:174 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:174 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:174 Constant: -0:174 3 (const int) -0:174 Constant: -0:174 1 (const int) -0:174 Sequence -0:174 Constant: -0:174 0 (const int) -0:174 Constant: -0:174 1 (const int) -0:174 subgroupInclusiveMax ( global highp 2-component vector of int) -0:174 vector swizzle ( temp highp 2-component vector of int) -0:174 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:174 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:174 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:174 Constant: -0:174 1 (const int) -0:174 Constant: -0:174 1 (const int) -0:174 Sequence -0:174 Constant: -0:174 0 (const int) -0:174 Constant: -0:174 1 (const int) -0:175 move second child to first child ( temp highp 3-component vector of int) -0:175 vector swizzle ( temp highp 3-component vector of int) -0:175 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:175 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:175 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:175 Constant: -0:175 3 (const int) -0:175 Constant: -0:175 1 (const int) -0:175 Sequence -0:175 Constant: -0:175 0 (const int) -0:175 Constant: -0:175 1 (const int) -0:175 Constant: -0:175 2 (const int) -0:175 subgroupInclusiveMax ( global highp 3-component vector of int) -0:175 vector swizzle ( temp highp 3-component vector of int) -0:175 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:175 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:175 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:175 Constant: -0:175 2 (const int) -0:175 Constant: -0:175 1 (const int) -0:175 Sequence -0:175 Constant: -0:175 0 (const int) -0:175 Constant: -0:175 1 (const int) -0:175 Constant: -0:175 2 (const int) -0:176 move second child to first child ( temp highp 4-component vector of int) -0:176 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:176 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:176 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:176 Constant: -0:176 3 (const int) -0:176 Constant: -0:176 1 (const int) -0:176 subgroupInclusiveMax ( global highp 4-component vector of int) -0:176 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:176 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:176 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:176 Constant: -0:176 3 (const int) -0:176 Constant: -0:176 1 (const int) -0:178 move second child to first child ( temp highp uint) -0:178 direct index ( temp highp uint) -0:178 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:178 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:178 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:178 Constant: -0:178 0 (const int) -0:178 Constant: -0:178 2 (const int) -0:178 Constant: -0:178 0 (const int) -0:178 subgroupInclusiveMax ( global highp uint) -0:178 direct index ( temp highp uint) -0:178 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:178 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:178 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:178 Constant: -0:178 0 (const int) -0:178 Constant: -0:178 2 (const int) -0:178 Constant: -0:178 0 (const int) -0:179 move second child to first child ( temp highp 2-component vector of uint) -0:179 vector swizzle ( temp highp 2-component vector of uint) -0:179 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:179 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:179 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:179 Constant: -0:179 0 (const int) -0:179 Constant: -0:179 2 (const int) -0:179 Sequence -0:179 Constant: -0:179 0 (const int) -0:179 Constant: -0:179 1 (const int) -0:179 subgroupInclusiveMax ( global highp 2-component vector of uint) -0:179 vector swizzle ( temp highp 2-component vector of uint) -0:179 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:179 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:179 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:179 Constant: -0:179 1 (const int) -0:179 Constant: -0:179 2 (const int) -0:179 Sequence -0:179 Constant: -0:179 0 (const int) -0:179 Constant: -0:179 1 (const int) -0:180 move second child to first child ( temp highp 3-component vector of uint) -0:180 vector swizzle ( temp highp 3-component vector of uint) -0:180 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:180 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:180 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:180 Constant: -0:180 0 (const int) -0:180 Constant: -0:180 2 (const int) -0:180 Sequence -0:180 Constant: -0:180 0 (const int) -0:180 Constant: -0:180 1 (const int) -0:180 Constant: -0:180 2 (const int) -0:180 subgroupInclusiveMax ( global highp 3-component vector of uint) -0:180 vector swizzle ( temp highp 3-component vector of uint) -0:180 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:180 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:180 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:180 Constant: -0:180 2 (const int) -0:180 Constant: -0:180 2 (const int) -0:180 Sequence -0:180 Constant: -0:180 0 (const int) -0:180 Constant: -0:180 1 (const int) -0:180 Constant: -0:180 2 (const int) -0:181 move second child to first child ( temp highp 4-component vector of uint) -0:181 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:181 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:181 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:181 Constant: -0:181 0 (const int) -0:181 Constant: -0:181 2 (const int) -0:181 subgroupInclusiveMax ( global highp 4-component vector of uint) -0:181 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:181 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:181 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:181 Constant: -0:181 3 (const int) -0:181 Constant: -0:181 2 (const int) -0:183 move second child to first child ( temp highp int) -0:183 direct index ( temp highp int) -0:183 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:183 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:183 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:183 Constant: -0:183 1 (const int) -0:183 Constant: -0:183 1 (const int) -0:183 Constant: -0:183 0 (const int) -0:183 subgroupInclusiveAnd ( global highp int) -0:183 direct index ( temp highp int) -0:183 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:183 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:183 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:183 Constant: -0:183 0 (const int) -0:183 Constant: -0:183 1 (const int) -0:183 Constant: -0:183 0 (const int) -0:184 move second child to first child ( temp highp 2-component vector of int) -0:184 vector swizzle ( temp highp 2-component vector of int) -0:184 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:184 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:184 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:184 Constant: -0:184 1 (const int) -0:184 Constant: -0:184 1 (const int) -0:184 Sequence -0:184 Constant: -0:184 0 (const int) -0:184 Constant: -0:184 1 (const int) -0:184 subgroupInclusiveAnd ( global highp 2-component vector of int) -0:184 vector swizzle ( temp highp 2-component vector of int) -0:184 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:184 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:184 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:184 Constant: -0:184 1 (const int) -0:184 Constant: -0:184 1 (const int) -0:184 Sequence -0:184 Constant: -0:184 0 (const int) -0:184 Constant: -0:184 1 (const int) -0:185 move second child to first child ( temp highp 3-component vector of int) -0:185 vector swizzle ( temp highp 3-component vector of int) -0:185 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:185 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:185 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:185 Constant: -0:185 1 (const int) -0:185 Constant: -0:185 1 (const int) -0:185 Sequence -0:185 Constant: -0:185 0 (const int) -0:185 Constant: -0:185 1 (const int) -0:185 Constant: -0:185 2 (const int) -0:185 subgroupInclusiveAnd ( global highp 3-component vector of int) -0:185 vector swizzle ( temp highp 3-component vector of int) -0:185 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:185 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:185 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:185 Constant: -0:185 2 (const int) -0:185 Constant: -0:185 1 (const int) -0:185 Sequence -0:185 Constant: -0:185 0 (const int) -0:185 Constant: -0:185 1 (const int) -0:185 Constant: -0:185 2 (const int) -0:186 move second child to first child ( temp highp 4-component vector of int) -0:186 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:186 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:186 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:186 Constant: -0:186 1 (const int) -0:186 Constant: -0:186 1 (const int) -0:186 subgroupInclusiveAnd ( global highp 4-component vector of int) -0:186 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:186 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:186 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:186 Constant: -0:186 3 (const int) -0:186 Constant: -0:186 1 (const int) -0:188 move second child to first child ( temp highp uint) -0:188 direct index ( temp highp uint) -0:188 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:188 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:188 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:188 Constant: -0:188 2 (const int) -0:188 Constant: -0:188 2 (const int) -0:188 Constant: -0:188 0 (const int) -0:188 subgroupInclusiveAnd ( global highp uint) -0:188 direct index ( temp highp uint) -0:188 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:188 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:188 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:188 Constant: -0:188 0 (const int) -0:188 Constant: -0:188 2 (const int) -0:188 Constant: -0:188 0 (const int) -0:189 move second child to first child ( temp highp 2-component vector of uint) -0:189 vector swizzle ( temp highp 2-component vector of uint) -0:189 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:189 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:189 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:189 Constant: -0:189 2 (const int) -0:189 Constant: -0:189 2 (const int) -0:189 Sequence -0:189 Constant: -0:189 0 (const int) -0:189 Constant: -0:189 1 (const int) -0:189 subgroupInclusiveAnd ( global highp 2-component vector of uint) -0:189 vector swizzle ( temp highp 2-component vector of uint) -0:189 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:189 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:189 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:189 Constant: -0:189 1 (const int) -0:189 Constant: -0:189 2 (const int) -0:189 Sequence -0:189 Constant: -0:189 0 (const int) -0:189 Constant: -0:189 1 (const int) -0:190 move second child to first child ( temp highp 3-component vector of uint) -0:190 vector swizzle ( temp highp 3-component vector of uint) -0:190 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:190 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:190 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:190 Constant: -0:190 2 (const int) -0:190 Constant: -0:190 2 (const int) -0:190 Sequence -0:190 Constant: -0:190 0 (const int) -0:190 Constant: -0:190 1 (const int) -0:190 Constant: -0:190 2 (const int) -0:190 subgroupInclusiveAnd ( global highp 3-component vector of uint) -0:190 vector swizzle ( temp highp 3-component vector of uint) -0:190 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:190 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:190 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:190 Constant: -0:190 2 (const int) -0:190 Constant: -0:190 2 (const int) -0:190 Sequence -0:190 Constant: -0:190 0 (const int) -0:190 Constant: -0:190 1 (const int) -0:190 Constant: -0:190 2 (const int) -0:191 move second child to first child ( temp highp 4-component vector of uint) -0:191 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:191 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:191 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:191 Constant: -0:191 2 (const int) -0:191 Constant: -0:191 2 (const int) -0:191 subgroupInclusiveAnd ( global highp 4-component vector of uint) -0:191 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:191 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:191 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:191 Constant: -0:191 3 (const int) -0:191 Constant: -0:191 2 (const int) -0:193 move second child to first child ( temp highp int) -0:193 direct index ( temp highp int) -0:193 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:193 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:193 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:193 Constant: -0:193 3 (const int) -0:193 Constant: -0:193 1 (const int) -0:193 Constant: -0:193 0 (const int) -0:193 Convert bool to int ( temp highp int) -0:193 subgroupInclusiveAnd ( global bool) -0:193 Compare Less Than ( temp bool) -0:193 direct index ( temp highp int) -0:193 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:193 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:193 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:193 Constant: -0:193 0 (const int) -0:193 Constant: -0:193 1 (const int) -0:193 Constant: -0:193 0 (const int) -0:193 Constant: -0:193 0 (const int) -0:194 move second child to first child ( temp highp 2-component vector of int) -0:194 vector swizzle ( temp highp 2-component vector of int) -0:194 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:194 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:194 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:194 Constant: -0:194 3 (const int) -0:194 Constant: -0:194 1 (const int) -0:194 Sequence -0:194 Constant: -0:194 0 (const int) -0:194 Constant: -0:194 1 (const int) -0:194 Convert bool to int ( temp highp 2-component vector of int) -0:194 subgroupInclusiveAnd ( global 2-component vector of bool) -0:194 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:194 vector swizzle ( temp highp 2-component vector of int) -0:194 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:194 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:194 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:194 Constant: -0:194 1 (const int) -0:194 Constant: -0:194 1 (const int) -0:194 Sequence -0:194 Constant: -0:194 0 (const int) -0:194 Constant: -0:194 1 (const int) -0:194 Constant: -0:194 0 (const int) -0:194 0 (const int) -0:195 move second child to first child ( temp highp 3-component vector of int) -0:195 vector swizzle ( temp highp 3-component vector of int) -0:195 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:195 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:195 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:195 Constant: -0:195 3 (const int) -0:195 Constant: -0:195 1 (const int) -0:195 Sequence -0:195 Constant: -0:195 0 (const int) -0:195 Constant: -0:195 1 (const int) -0:195 Constant: -0:195 2 (const int) -0:195 Convert bool to int ( temp highp 3-component vector of int) -0:195 subgroupInclusiveAnd ( global 3-component vector of bool) -0:195 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:195 vector swizzle ( temp highp 3-component vector of int) -0:195 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:195 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:195 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:195 Constant: -0:195 1 (const int) -0:195 Constant: -0:195 1 (const int) -0:195 Sequence -0:195 Constant: -0:195 0 (const int) -0:195 Constant: -0:195 1 (const int) -0:195 Constant: -0:195 2 (const int) -0:195 Constant: -0:195 0 (const int) -0:195 0 (const int) -0:195 0 (const int) -0:196 move second child to first child ( temp highp 4-component vector of int) -0:196 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:196 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:196 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:196 Constant: -0:196 3 (const int) -0:196 Constant: -0:196 1 (const int) -0:196 Convert bool to int ( temp highp 4-component vector of int) -0:196 subgroupInclusiveAnd ( global 4-component vector of bool) -0:196 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:196 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:196 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:196 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:196 Constant: -0:196 1 (const int) -0:196 Constant: -0:196 1 (const int) -0:196 Constant: -0:196 0 (const int) -0:196 0 (const int) -0:196 0 (const int) -0:196 0 (const int) -0:198 move second child to first child ( temp highp int) -0:198 direct index ( temp highp int) -0:198 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:198 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:198 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:198 Constant: -0:198 0 (const int) -0:198 Constant: -0:198 1 (const int) -0:198 Constant: -0:198 0 (const int) -0:198 subgroupInclusiveOr ( global highp int) -0:198 direct index ( temp highp int) -0:198 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:198 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:198 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:198 Constant: -0:198 0 (const int) -0:198 Constant: -0:198 1 (const int) -0:198 Constant: -0:198 0 (const int) -0:199 move second child to first child ( temp highp 2-component vector of int) -0:199 vector swizzle ( temp highp 2-component vector of int) -0:199 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:199 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:199 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:199 Constant: -0:199 0 (const int) -0:199 Constant: -0:199 1 (const int) -0:199 Sequence -0:199 Constant: -0:199 0 (const int) -0:199 Constant: -0:199 1 (const int) -0:199 subgroupInclusiveOr ( global highp 2-component vector of int) -0:199 vector swizzle ( temp highp 2-component vector of int) -0:199 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:199 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:199 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:199 Constant: -0:199 1 (const int) -0:199 Constant: -0:199 1 (const int) -0:199 Sequence -0:199 Constant: -0:199 0 (const int) -0:199 Constant: -0:199 1 (const int) -0:200 move second child to first child ( temp highp 3-component vector of int) -0:200 vector swizzle ( temp highp 3-component vector of int) -0:200 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:200 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:200 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:200 Constant: -0:200 0 (const int) -0:200 Constant: -0:200 1 (const int) -0:200 Sequence -0:200 Constant: -0:200 0 (const int) -0:200 Constant: -0:200 1 (const int) -0:200 Constant: -0:200 2 (const int) -0:200 subgroupInclusiveOr ( global highp 3-component vector of int) -0:200 vector swizzle ( temp highp 3-component vector of int) -0:200 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:200 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:200 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:200 Constant: -0:200 2 (const int) -0:200 Constant: -0:200 1 (const int) -0:200 Sequence -0:200 Constant: -0:200 0 (const int) -0:200 Constant: -0:200 1 (const int) -0:200 Constant: -0:200 2 (const int) -0:201 move second child to first child ( temp highp 4-component vector of int) -0:201 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:201 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:201 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:201 Constant: -0:201 0 (const int) -0:201 Constant: -0:201 1 (const int) -0:201 subgroupInclusiveOr ( global highp 4-component vector of int) -0:201 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:201 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:201 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:201 Constant: -0:201 3 (const int) -0:201 Constant: -0:201 1 (const int) -0:203 move second child to first child ( temp highp uint) -0:203 direct index ( temp highp uint) -0:203 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:203 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:203 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:203 Constant: -0:203 1 (const int) -0:203 Constant: -0:203 2 (const int) -0:203 Constant: -0:203 0 (const int) -0:203 subgroupInclusiveOr ( global highp uint) -0:203 direct index ( temp highp uint) -0:203 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:203 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:203 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:203 Constant: -0:203 0 (const int) -0:203 Constant: -0:203 2 (const int) -0:203 Constant: -0:203 0 (const int) -0:204 move second child to first child ( temp highp 2-component vector of uint) -0:204 vector swizzle ( temp highp 2-component vector of uint) -0:204 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:204 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:204 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:204 Constant: -0:204 1 (const int) -0:204 Constant: -0:204 2 (const int) -0:204 Sequence -0:204 Constant: -0:204 0 (const int) -0:204 Constant: -0:204 1 (const int) -0:204 subgroupInclusiveOr ( global highp 2-component vector of uint) -0:204 vector swizzle ( temp highp 2-component vector of uint) -0:204 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:204 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:204 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:204 Constant: -0:204 1 (const int) -0:204 Constant: -0:204 2 (const int) -0:204 Sequence -0:204 Constant: -0:204 0 (const int) -0:204 Constant: -0:204 1 (const int) -0:205 move second child to first child ( temp highp 3-component vector of uint) -0:205 vector swizzle ( temp highp 3-component vector of uint) -0:205 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:205 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:205 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:205 Constant: -0:205 1 (const int) -0:205 Constant: -0:205 2 (const int) -0:205 Sequence -0:205 Constant: -0:205 0 (const int) -0:205 Constant: -0:205 1 (const int) -0:205 Constant: -0:205 2 (const int) -0:205 subgroupInclusiveOr ( global highp 3-component vector of uint) -0:205 vector swizzle ( temp highp 3-component vector of uint) -0:205 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:205 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:205 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:205 Constant: -0:205 2 (const int) -0:205 Constant: -0:205 2 (const int) -0:205 Sequence -0:205 Constant: -0:205 0 (const int) -0:205 Constant: -0:205 1 (const int) -0:205 Constant: -0:205 2 (const int) -0:206 move second child to first child ( temp highp 4-component vector of uint) -0:206 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:206 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:206 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:206 Constant: -0:206 1 (const int) -0:206 Constant: -0:206 2 (const int) -0:206 subgroupInclusiveOr ( global highp 4-component vector of uint) -0:206 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:206 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:206 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:206 Constant: -0:206 3 (const int) -0:206 Constant: -0:206 2 (const int) -0:208 move second child to first child ( temp highp int) -0:208 direct index ( temp highp int) -0:208 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:208 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:208 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:208 Constant: -0:208 2 (const int) -0:208 Constant: -0:208 1 (const int) -0:208 Constant: -0:208 0 (const int) -0:208 Convert bool to int ( temp highp int) -0:208 subgroupInclusiveOr ( global bool) -0:208 Compare Less Than ( temp bool) -0:208 direct index ( temp highp int) -0:208 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:208 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:208 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:208 Constant: -0:208 0 (const int) -0:208 Constant: -0:208 1 (const int) -0:208 Constant: -0:208 0 (const int) -0:208 Constant: -0:208 0 (const int) -0:209 move second child to first child ( temp highp 2-component vector of int) -0:209 vector swizzle ( temp highp 2-component vector of int) -0:209 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:209 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:209 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:209 Constant: -0:209 2 (const int) -0:209 Constant: -0:209 1 (const int) -0:209 Sequence -0:209 Constant: -0:209 0 (const int) -0:209 Constant: -0:209 1 (const int) -0:209 Convert bool to int ( temp highp 2-component vector of int) -0:209 subgroupInclusiveOr ( global 2-component vector of bool) -0:209 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:209 vector swizzle ( temp highp 2-component vector of int) -0:209 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:209 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:209 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:209 Constant: -0:209 1 (const int) -0:209 Constant: -0:209 1 (const int) -0:209 Sequence -0:209 Constant: -0:209 0 (const int) -0:209 Constant: -0:209 1 (const int) -0:209 Constant: -0:209 0 (const int) -0:209 0 (const int) -0:210 move second child to first child ( temp highp 3-component vector of int) -0:210 vector swizzle ( temp highp 3-component vector of int) -0:210 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:210 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:210 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:210 Constant: -0:210 2 (const int) -0:210 Constant: -0:210 1 (const int) -0:210 Sequence -0:210 Constant: -0:210 0 (const int) -0:210 Constant: -0:210 1 (const int) -0:210 Constant: -0:210 2 (const int) -0:210 Convert bool to int ( temp highp 3-component vector of int) -0:210 subgroupInclusiveOr ( global 3-component vector of bool) -0:210 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:210 vector swizzle ( temp highp 3-component vector of int) -0:210 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:210 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:210 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:210 Constant: -0:210 1 (const int) -0:210 Constant: -0:210 1 (const int) -0:210 Sequence -0:210 Constant: -0:210 0 (const int) -0:210 Constant: -0:210 1 (const int) -0:210 Constant: -0:210 2 (const int) -0:210 Constant: -0:210 0 (const int) -0:210 0 (const int) -0:210 0 (const int) -0:211 move second child to first child ( temp highp 4-component vector of int) -0:211 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:211 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:211 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:211 Constant: -0:211 2 (const int) -0:211 Constant: -0:211 1 (const int) -0:211 Convert bool to int ( temp highp 4-component vector of int) -0:211 subgroupInclusiveOr ( global 4-component vector of bool) -0:211 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:211 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:211 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:211 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:211 Constant: -0:211 1 (const int) -0:211 Constant: -0:211 1 (const int) -0:211 Constant: -0:211 0 (const int) -0:211 0 (const int) -0:211 0 (const int) -0:211 0 (const int) -0:213 move second child to first child ( temp highp int) -0:213 direct index ( temp highp int) -0:213 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:213 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:213 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:213 Constant: -0:213 3 (const int) -0:213 Constant: -0:213 1 (const int) -0:213 Constant: -0:213 0 (const int) -0:213 subgroupInclusiveXor ( global highp int) -0:213 direct index ( temp highp int) -0:213 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:213 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:213 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:213 Constant: -0:213 0 (const int) -0:213 Constant: -0:213 1 (const int) -0:213 Constant: -0:213 0 (const int) -0:214 move second child to first child ( temp highp 2-component vector of int) -0:214 vector swizzle ( temp highp 2-component vector of int) -0:214 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:214 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:214 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:214 Constant: -0:214 3 (const int) -0:214 Constant: -0:214 1 (const int) -0:214 Sequence -0:214 Constant: -0:214 0 (const int) -0:214 Constant: -0:214 1 (const int) -0:214 subgroupInclusiveXor ( global highp 2-component vector of int) -0:214 vector swizzle ( temp highp 2-component vector of int) -0:214 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:214 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:214 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:214 Constant: -0:214 1 (const int) -0:214 Constant: -0:214 1 (const int) -0:214 Sequence -0:214 Constant: -0:214 0 (const int) -0:214 Constant: -0:214 1 (const int) -0:215 move second child to first child ( temp highp 3-component vector of int) -0:215 vector swizzle ( temp highp 3-component vector of int) -0:215 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:215 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:215 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:215 Constant: -0:215 3 (const int) -0:215 Constant: -0:215 1 (const int) -0:215 Sequence -0:215 Constant: -0:215 0 (const int) -0:215 Constant: -0:215 1 (const int) -0:215 Constant: -0:215 2 (const int) -0:215 subgroupInclusiveXor ( global highp 3-component vector of int) -0:215 vector swizzle ( temp highp 3-component vector of int) -0:215 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:215 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:215 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:215 Constant: -0:215 2 (const int) -0:215 Constant: -0:215 1 (const int) -0:215 Sequence -0:215 Constant: -0:215 0 (const int) -0:215 Constant: -0:215 1 (const int) -0:215 Constant: -0:215 2 (const int) -0:216 move second child to first child ( temp highp 4-component vector of int) -0:216 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:216 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:216 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:216 Constant: -0:216 3 (const int) -0:216 Constant: -0:216 1 (const int) -0:216 subgroupInclusiveXor ( global highp 4-component vector of int) -0:216 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:216 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:216 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:216 Constant: -0:216 3 (const int) -0:216 Constant: -0:216 1 (const int) -0:218 move second child to first child ( temp highp uint) -0:218 direct index ( temp highp uint) -0:218 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:218 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:218 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:218 Constant: -0:218 0 (const int) -0:218 Constant: -0:218 2 (const int) -0:218 Constant: -0:218 0 (const int) -0:218 subgroupInclusiveXor ( global highp uint) -0:218 direct index ( temp highp uint) -0:218 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:218 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:218 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:218 Constant: -0:218 0 (const int) -0:218 Constant: -0:218 2 (const int) -0:218 Constant: -0:218 0 (const int) -0:219 move second child to first child ( temp highp 2-component vector of uint) -0:219 vector swizzle ( temp highp 2-component vector of uint) -0:219 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:219 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:219 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:219 Constant: -0:219 0 (const int) -0:219 Constant: -0:219 2 (const int) -0:219 Sequence -0:219 Constant: -0:219 0 (const int) -0:219 Constant: -0:219 1 (const int) -0:219 subgroupInclusiveXor ( global highp 2-component vector of uint) -0:219 vector swizzle ( temp highp 2-component vector of uint) -0:219 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:219 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:219 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:219 Constant: -0:219 1 (const int) -0:219 Constant: -0:219 2 (const int) -0:219 Sequence -0:219 Constant: -0:219 0 (const int) -0:219 Constant: -0:219 1 (const int) -0:220 move second child to first child ( temp highp 3-component vector of uint) -0:220 vector swizzle ( temp highp 3-component vector of uint) -0:220 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:220 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:220 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:220 Constant: -0:220 0 (const int) -0:220 Constant: -0:220 2 (const int) -0:220 Sequence -0:220 Constant: -0:220 0 (const int) -0:220 Constant: -0:220 1 (const int) -0:220 Constant: -0:220 2 (const int) -0:220 subgroupInclusiveXor ( global highp 3-component vector of uint) -0:220 vector swizzle ( temp highp 3-component vector of uint) -0:220 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:220 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:220 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:220 Constant: -0:220 2 (const int) -0:220 Constant: -0:220 2 (const int) -0:220 Sequence -0:220 Constant: -0:220 0 (const int) -0:220 Constant: -0:220 1 (const int) -0:220 Constant: -0:220 2 (const int) -0:221 move second child to first child ( temp highp 4-component vector of uint) -0:221 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:221 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:221 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:221 Constant: -0:221 0 (const int) -0:221 Constant: -0:221 2 (const int) -0:221 subgroupInclusiveXor ( global highp 4-component vector of uint) -0:221 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:221 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:221 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:221 Constant: -0:221 3 (const int) -0:221 Constant: -0:221 2 (const int) -0:223 move second child to first child ( temp highp int) -0:223 direct index ( temp highp int) -0:223 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:223 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:223 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:223 Constant: -0:223 1 (const int) -0:223 Constant: -0:223 1 (const int) -0:223 Constant: -0:223 0 (const int) -0:223 Convert bool to int ( temp highp int) -0:223 subgroupInclusiveXor ( global bool) -0:223 Compare Less Than ( temp bool) -0:223 direct index ( temp highp int) -0:223 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:223 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:223 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:223 Constant: -0:223 0 (const int) -0:223 Constant: -0:223 1 (const int) -0:223 Constant: -0:223 0 (const int) -0:223 Constant: -0:223 0 (const int) -0:224 move second child to first child ( temp highp 2-component vector of int) -0:224 vector swizzle ( temp highp 2-component vector of int) -0:224 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:224 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:224 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:224 Constant: -0:224 1 (const int) -0:224 Constant: -0:224 1 (const int) -0:224 Sequence -0:224 Constant: -0:224 0 (const int) -0:224 Constant: -0:224 1 (const int) -0:224 Convert bool to int ( temp highp 2-component vector of int) -0:224 subgroupInclusiveXor ( global 2-component vector of bool) -0:224 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:224 vector swizzle ( temp highp 2-component vector of int) -0:224 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:224 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:224 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:224 Constant: -0:224 1 (const int) -0:224 Constant: -0:224 1 (const int) -0:224 Sequence -0:224 Constant: -0:224 0 (const int) -0:224 Constant: -0:224 1 (const int) -0:224 Constant: -0:224 0 (const int) -0:224 0 (const int) -0:225 move second child to first child ( temp highp 3-component vector of int) -0:225 vector swizzle ( temp highp 3-component vector of int) -0:225 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:225 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:225 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:225 Constant: -0:225 1 (const int) -0:225 Constant: -0:225 1 (const int) -0:225 Sequence -0:225 Constant: -0:225 0 (const int) -0:225 Constant: -0:225 1 (const int) -0:225 Constant: -0:225 2 (const int) -0:225 Convert bool to int ( temp highp 3-component vector of int) -0:225 subgroupInclusiveXor ( global 3-component vector of bool) -0:225 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:225 vector swizzle ( temp highp 3-component vector of int) -0:225 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:225 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:225 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:225 Constant: -0:225 1 (const int) -0:225 Constant: -0:225 1 (const int) -0:225 Sequence -0:225 Constant: -0:225 0 (const int) -0:225 Constant: -0:225 1 (const int) -0:225 Constant: -0:225 2 (const int) -0:225 Constant: -0:225 0 (const int) -0:225 0 (const int) -0:225 0 (const int) -0:226 move second child to first child ( temp highp 4-component vector of int) -0:226 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:226 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:226 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:226 Constant: -0:226 1 (const int) -0:226 Constant: -0:226 1 (const int) -0:226 Convert bool to int ( temp highp 4-component vector of int) -0:226 subgroupInclusiveXor ( global 4-component vector of bool) -0:226 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:226 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:226 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:226 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:226 Constant: -0:226 1 (const int) -0:226 Constant: -0:226 1 (const int) -0:226 Constant: -0:226 0 (const int) -0:226 0 (const int) -0:226 0 (const int) -0:226 0 (const int) -0:228 move second child to first child ( temp highp float) -0:228 direct index ( temp highp float) -0:228 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:228 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:228 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:228 Constant: -0:228 2 (const int) -0:228 Constant: -0:228 0 (const int) -0:228 Constant: -0:228 0 (const int) -0:228 subgroupExclusiveAdd ( global highp float) -0:228 direct index ( temp highp float) -0:228 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:228 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:228 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:228 Constant: -0:228 0 (const int) -0:228 Constant: -0:228 0 (const int) -0:228 Constant: -0:228 0 (const int) -0:229 move second child to first child ( temp highp 2-component vector of float) -0:229 vector swizzle ( temp highp 2-component vector of float) -0:229 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:229 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:229 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:229 Constant: -0:229 2 (const int) -0:229 Constant: -0:229 0 (const int) -0:229 Sequence -0:229 Constant: -0:229 0 (const int) -0:229 Constant: -0:229 1 (const int) -0:229 subgroupExclusiveAdd ( global highp 2-component vector of float) -0:229 vector swizzle ( temp highp 2-component vector of float) -0:229 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:229 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:229 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:229 Constant: -0:229 1 (const int) -0:229 Constant: -0:229 0 (const int) -0:229 Sequence -0:229 Constant: -0:229 0 (const int) -0:229 Constant: -0:229 1 (const int) -0:230 move second child to first child ( temp highp 3-component vector of float) -0:230 vector swizzle ( temp highp 3-component vector of float) -0:230 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:230 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:230 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:230 Constant: -0:230 2 (const int) -0:230 Constant: -0:230 0 (const int) -0:230 Sequence -0:230 Constant: -0:230 0 (const int) -0:230 Constant: -0:230 1 (const int) -0:230 Constant: -0:230 2 (const int) -0:230 subgroupExclusiveAdd ( global highp 3-component vector of float) -0:230 vector swizzle ( temp highp 3-component vector of float) -0:230 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:230 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:230 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:230 Constant: -0:230 2 (const int) -0:230 Constant: -0:230 0 (const int) -0:230 Sequence -0:230 Constant: -0:230 0 (const int) -0:230 Constant: -0:230 1 (const int) -0:230 Constant: -0:230 2 (const int) -0:231 move second child to first child ( temp highp 4-component vector of float) -0:231 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:231 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:231 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:231 Constant: -0:231 2 (const int) -0:231 Constant: -0:231 0 (const int) -0:231 subgroupExclusiveAdd ( global highp 4-component vector of float) -0:231 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:231 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:231 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:231 Constant: -0:231 3 (const int) -0:231 Constant: -0:231 0 (const int) -0:233 move second child to first child ( temp highp int) -0:233 direct index ( temp highp int) -0:233 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:233 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:233 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:233 Constant: -0:233 3 (const int) -0:233 Constant: -0:233 1 (const int) -0:233 Constant: -0:233 0 (const int) -0:233 subgroupExclusiveAdd ( global highp int) -0:233 direct index ( temp highp int) -0:233 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:233 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:233 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:233 Constant: -0:233 0 (const int) -0:233 Constant: -0:233 1 (const int) -0:233 Constant: -0:233 0 (const int) -0:234 move second child to first child ( temp highp 2-component vector of int) -0:234 vector swizzle ( temp highp 2-component vector of int) -0:234 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:234 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:234 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:234 Constant: -0:234 3 (const int) -0:234 Constant: -0:234 1 (const int) -0:234 Sequence -0:234 Constant: -0:234 0 (const int) -0:234 Constant: -0:234 1 (const int) -0:234 subgroupExclusiveAdd ( global highp 2-component vector of int) -0:234 vector swizzle ( temp highp 2-component vector of int) -0:234 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:234 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:234 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:234 Constant: -0:234 1 (const int) -0:234 Constant: -0:234 1 (const int) -0:234 Sequence -0:234 Constant: -0:234 0 (const int) -0:234 Constant: -0:234 1 (const int) -0:235 move second child to first child ( temp highp 3-component vector of int) -0:235 vector swizzle ( temp highp 3-component vector of int) -0:235 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:235 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:235 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:235 Constant: -0:235 3 (const int) -0:235 Constant: -0:235 1 (const int) -0:235 Sequence -0:235 Constant: -0:235 0 (const int) -0:235 Constant: -0:235 1 (const int) -0:235 Constant: -0:235 2 (const int) -0:235 subgroupExclusiveAdd ( global highp 3-component vector of int) -0:235 vector swizzle ( temp highp 3-component vector of int) -0:235 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:235 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:235 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:235 Constant: -0:235 2 (const int) -0:235 Constant: -0:235 1 (const int) -0:235 Sequence -0:235 Constant: -0:235 0 (const int) -0:235 Constant: -0:235 1 (const int) -0:235 Constant: -0:235 2 (const int) -0:236 move second child to first child ( temp highp 4-component vector of int) -0:236 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:236 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:236 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:236 Constant: -0:236 3 (const int) -0:236 Constant: -0:236 1 (const int) -0:236 subgroupExclusiveAdd ( global highp 4-component vector of int) -0:236 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:236 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:236 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:236 Constant: -0:236 3 (const int) -0:236 Constant: -0:236 1 (const int) -0:238 move second child to first child ( temp highp uint) -0:238 direct index ( temp highp uint) -0:238 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:238 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:238 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:238 Constant: -0:238 0 (const int) -0:238 Constant: -0:238 2 (const int) -0:238 Constant: -0:238 0 (const int) -0:238 subgroupExclusiveAdd ( global highp uint) -0:238 direct index ( temp highp uint) -0:238 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:238 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:238 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:238 Constant: -0:238 0 (const int) -0:238 Constant: -0:238 2 (const int) -0:238 Constant: -0:238 0 (const int) -0:239 move second child to first child ( temp highp 2-component vector of uint) -0:239 vector swizzle ( temp highp 2-component vector of uint) -0:239 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:239 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:239 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:239 Constant: -0:239 0 (const int) -0:239 Constant: -0:239 2 (const int) -0:239 Sequence -0:239 Constant: -0:239 0 (const int) -0:239 Constant: -0:239 1 (const int) -0:239 subgroupExclusiveAdd ( global highp 2-component vector of uint) -0:239 vector swizzle ( temp highp 2-component vector of uint) -0:239 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:239 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:239 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:239 Constant: -0:239 1 (const int) -0:239 Constant: -0:239 2 (const int) -0:239 Sequence -0:239 Constant: -0:239 0 (const int) -0:239 Constant: -0:239 1 (const int) -0:240 move second child to first child ( temp highp 3-component vector of uint) -0:240 vector swizzle ( temp highp 3-component vector of uint) -0:240 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:240 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:240 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:240 Constant: -0:240 0 (const int) -0:240 Constant: -0:240 2 (const int) -0:240 Sequence -0:240 Constant: -0:240 0 (const int) -0:240 Constant: -0:240 1 (const int) -0:240 Constant: -0:240 2 (const int) -0:240 subgroupExclusiveAdd ( global highp 3-component vector of uint) -0:240 vector swizzle ( temp highp 3-component vector of uint) -0:240 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:240 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:240 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:240 Constant: -0:240 2 (const int) -0:240 Constant: -0:240 2 (const int) -0:240 Sequence -0:240 Constant: -0:240 0 (const int) -0:240 Constant: -0:240 1 (const int) -0:240 Constant: -0:240 2 (const int) -0:241 move second child to first child ( temp highp 4-component vector of uint) -0:241 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:241 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:241 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:241 Constant: -0:241 0 (const int) -0:241 Constant: -0:241 2 (const int) -0:241 subgroupExclusiveAdd ( global highp 4-component vector of uint) -0:241 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:241 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:241 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:241 Constant: -0:241 3 (const int) -0:241 Constant: -0:241 2 (const int) -0:243 move second child to first child ( temp highp float) -0:243 direct index ( temp highp float) -0:243 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:243 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:243 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:243 Constant: -0:243 1 (const int) -0:243 Constant: -0:243 0 (const int) -0:243 Constant: -0:243 0 (const int) -0:243 subgroupExclusiveMul ( global highp float) -0:243 direct index ( temp highp float) -0:243 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:243 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:243 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:243 Constant: -0:243 0 (const int) -0:243 Constant: -0:243 0 (const int) -0:243 Constant: -0:243 0 (const int) -0:244 move second child to first child ( temp highp 2-component vector of float) -0:244 vector swizzle ( temp highp 2-component vector of float) -0:244 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:244 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:244 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:244 Constant: -0:244 1 (const int) -0:244 Constant: -0:244 0 (const int) -0:244 Sequence -0:244 Constant: -0:244 0 (const int) -0:244 Constant: -0:244 1 (const int) -0:244 subgroupExclusiveMul ( global highp 2-component vector of float) -0:244 vector swizzle ( temp highp 2-component vector of float) -0:244 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:244 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:244 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:244 Constant: -0:244 1 (const int) -0:244 Constant: -0:244 0 (const int) -0:244 Sequence -0:244 Constant: -0:244 0 (const int) -0:244 Constant: -0:244 1 (const int) -0:245 move second child to first child ( temp highp 3-component vector of float) -0:245 vector swizzle ( temp highp 3-component vector of float) -0:245 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:245 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:245 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:245 Constant: -0:245 1 (const int) -0:245 Constant: -0:245 0 (const int) -0:245 Sequence -0:245 Constant: -0:245 0 (const int) -0:245 Constant: -0:245 1 (const int) -0:245 Constant: -0:245 2 (const int) -0:245 subgroupExclusiveMul ( global highp 3-component vector of float) -0:245 vector swizzle ( temp highp 3-component vector of float) -0:245 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:245 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:245 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:245 Constant: -0:245 2 (const int) -0:245 Constant: -0:245 0 (const int) -0:245 Sequence -0:245 Constant: -0:245 0 (const int) -0:245 Constant: -0:245 1 (const int) -0:245 Constant: -0:245 2 (const int) -0:246 move second child to first child ( temp highp 4-component vector of float) -0:246 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:246 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:246 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:246 Constant: -0:246 1 (const int) -0:246 Constant: -0:246 0 (const int) -0:246 subgroupExclusiveMul ( global highp 4-component vector of float) -0:246 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:246 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:246 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:246 Constant: -0:246 3 (const int) -0:246 Constant: -0:246 0 (const int) -0:248 move second child to first child ( temp highp int) -0:248 direct index ( temp highp int) -0:248 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:248 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:248 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:248 Constant: -0:248 2 (const int) -0:248 Constant: -0:248 1 (const int) -0:248 Constant: -0:248 0 (const int) -0:248 subgroupExclusiveMul ( global highp int) -0:248 direct index ( temp highp int) -0:248 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:248 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:248 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:248 Constant: -0:248 0 (const int) -0:248 Constant: -0:248 1 (const int) -0:248 Constant: -0:248 0 (const int) -0:249 move second child to first child ( temp highp 2-component vector of int) -0:249 vector swizzle ( temp highp 2-component vector of int) -0:249 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:249 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:249 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:249 Constant: -0:249 2 (const int) -0:249 Constant: -0:249 1 (const int) -0:249 Sequence -0:249 Constant: -0:249 0 (const int) -0:249 Constant: -0:249 1 (const int) -0:249 subgroupExclusiveMul ( global highp 2-component vector of int) -0:249 vector swizzle ( temp highp 2-component vector of int) -0:249 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:249 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:249 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:249 Constant: -0:249 1 (const int) -0:249 Constant: -0:249 1 (const int) -0:249 Sequence -0:249 Constant: -0:249 0 (const int) -0:249 Constant: -0:249 1 (const int) -0:250 move second child to first child ( temp highp 3-component vector of int) -0:250 vector swizzle ( temp highp 3-component vector of int) -0:250 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:250 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:250 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:250 Constant: -0:250 2 (const int) -0:250 Constant: -0:250 1 (const int) -0:250 Sequence -0:250 Constant: -0:250 0 (const int) -0:250 Constant: -0:250 1 (const int) -0:250 Constant: -0:250 2 (const int) -0:250 subgroupExclusiveMul ( global highp 3-component vector of int) -0:250 vector swizzle ( temp highp 3-component vector of int) -0:250 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:250 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:250 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:250 Constant: -0:250 2 (const int) -0:250 Constant: -0:250 1 (const int) -0:250 Sequence -0:250 Constant: -0:250 0 (const int) -0:250 Constant: -0:250 1 (const int) -0:250 Constant: -0:250 2 (const int) -0:251 move second child to first child ( temp highp 4-component vector of int) -0:251 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:251 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:251 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:251 Constant: -0:251 2 (const int) -0:251 Constant: -0:251 1 (const int) -0:251 subgroupExclusiveMul ( global highp 4-component vector of int) -0:251 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:251 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:251 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:251 Constant: -0:251 3 (const int) -0:251 Constant: -0:251 1 (const int) -0:253 move second child to first child ( temp highp uint) -0:253 direct index ( temp highp uint) -0:253 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:253 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:253 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:253 Constant: -0:253 3 (const int) -0:253 Constant: -0:253 2 (const int) -0:253 Constant: -0:253 0 (const int) -0:253 subgroupExclusiveMul ( global highp uint) -0:253 direct index ( temp highp uint) -0:253 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:253 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:253 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:253 Constant: -0:253 0 (const int) -0:253 Constant: -0:253 2 (const int) -0:253 Constant: -0:253 0 (const int) -0:254 move second child to first child ( temp highp 2-component vector of uint) -0:254 vector swizzle ( temp highp 2-component vector of uint) -0:254 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:254 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:254 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:254 Constant: -0:254 3 (const int) -0:254 Constant: -0:254 2 (const int) -0:254 Sequence -0:254 Constant: -0:254 0 (const int) -0:254 Constant: -0:254 1 (const int) -0:254 subgroupExclusiveMul ( global highp 2-component vector of uint) -0:254 vector swizzle ( temp highp 2-component vector of uint) -0:254 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:254 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:254 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:254 Constant: -0:254 1 (const int) -0:254 Constant: -0:254 2 (const int) -0:254 Sequence -0:254 Constant: -0:254 0 (const int) -0:254 Constant: -0:254 1 (const int) -0:255 move second child to first child ( temp highp 3-component vector of uint) -0:255 vector swizzle ( temp highp 3-component vector of uint) -0:255 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:255 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:255 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:255 Constant: -0:255 3 (const int) -0:255 Constant: -0:255 2 (const int) -0:255 Sequence -0:255 Constant: -0:255 0 (const int) -0:255 Constant: -0:255 1 (const int) -0:255 Constant: -0:255 2 (const int) -0:255 subgroupExclusiveMul ( global highp 3-component vector of uint) -0:255 vector swizzle ( temp highp 3-component vector of uint) -0:255 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:255 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:255 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:255 Constant: -0:255 2 (const int) -0:255 Constant: -0:255 2 (const int) -0:255 Sequence -0:255 Constant: -0:255 0 (const int) -0:255 Constant: -0:255 1 (const int) -0:255 Constant: -0:255 2 (const int) -0:256 move second child to first child ( temp highp 4-component vector of uint) -0:256 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:256 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:256 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:256 Constant: -0:256 3 (const int) -0:256 Constant: -0:256 2 (const int) -0:256 subgroupExclusiveMul ( global highp 4-component vector of uint) -0:256 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:256 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:256 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:256 Constant: -0:256 3 (const int) -0:256 Constant: -0:256 2 (const int) -0:258 move second child to first child ( temp highp float) -0:258 direct index ( temp highp float) -0:258 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:258 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:258 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:258 Constant: -0:258 0 (const int) -0:258 Constant: -0:258 0 (const int) -0:258 Constant: -0:258 0 (const int) -0:258 subgroupExclusiveMin ( global highp float) -0:258 direct index ( temp highp float) -0:258 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:258 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:258 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:258 Constant: -0:258 0 (const int) -0:258 Constant: -0:258 0 (const int) -0:258 Constant: -0:258 0 (const int) -0:259 move second child to first child ( temp highp 2-component vector of float) -0:259 vector swizzle ( temp highp 2-component vector of float) -0:259 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:259 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:259 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:259 Constant: -0:259 0 (const int) -0:259 Constant: -0:259 0 (const int) -0:259 Sequence -0:259 Constant: -0:259 0 (const int) -0:259 Constant: -0:259 1 (const int) -0:259 subgroupExclusiveMin ( global highp 2-component vector of float) -0:259 vector swizzle ( temp highp 2-component vector of float) -0:259 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:259 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:259 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:259 Constant: -0:259 1 (const int) -0:259 Constant: -0:259 0 (const int) -0:259 Sequence -0:259 Constant: -0:259 0 (const int) -0:259 Constant: -0:259 1 (const int) -0:260 move second child to first child ( temp highp 3-component vector of float) -0:260 vector swizzle ( temp highp 3-component vector of float) -0:260 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:260 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:260 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:260 Constant: -0:260 0 (const int) -0:260 Constant: -0:260 0 (const int) -0:260 Sequence -0:260 Constant: -0:260 0 (const int) -0:260 Constant: -0:260 1 (const int) -0:260 Constant: -0:260 2 (const int) -0:260 subgroupExclusiveMin ( global highp 3-component vector of float) -0:260 vector swizzle ( temp highp 3-component vector of float) -0:260 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:260 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:260 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:260 Constant: -0:260 2 (const int) -0:260 Constant: -0:260 0 (const int) -0:260 Sequence -0:260 Constant: -0:260 0 (const int) -0:260 Constant: -0:260 1 (const int) -0:260 Constant: -0:260 2 (const int) -0:261 move second child to first child ( temp highp 4-component vector of float) -0:261 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:261 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:261 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:261 Constant: -0:261 0 (const int) -0:261 Constant: -0:261 0 (const int) -0:261 subgroupExclusiveMin ( global highp 4-component vector of float) -0:261 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:261 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:261 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:261 Constant: -0:261 3 (const int) -0:261 Constant: -0:261 0 (const int) -0:263 move second child to first child ( temp highp int) -0:263 direct index ( temp highp int) -0:263 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:263 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:263 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:263 Constant: -0:263 1 (const int) -0:263 Constant: -0:263 1 (const int) -0:263 Constant: -0:263 0 (const int) -0:263 subgroupExclusiveMin ( global highp int) -0:263 direct index ( temp highp int) -0:263 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:263 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:263 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:263 Constant: -0:263 0 (const int) -0:263 Constant: -0:263 1 (const int) -0:263 Constant: -0:263 0 (const int) -0:264 move second child to first child ( temp highp 2-component vector of int) -0:264 vector swizzle ( temp highp 2-component vector of int) -0:264 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:264 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:264 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:264 Constant: -0:264 1 (const int) -0:264 Constant: -0:264 1 (const int) -0:264 Sequence -0:264 Constant: -0:264 0 (const int) -0:264 Constant: -0:264 1 (const int) -0:264 subgroupExclusiveMin ( global highp 2-component vector of int) -0:264 vector swizzle ( temp highp 2-component vector of int) -0:264 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:264 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:264 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:264 Constant: -0:264 1 (const int) -0:264 Constant: -0:264 1 (const int) -0:264 Sequence -0:264 Constant: -0:264 0 (const int) -0:264 Constant: -0:264 1 (const int) -0:265 move second child to first child ( temp highp 3-component vector of int) -0:265 vector swizzle ( temp highp 3-component vector of int) -0:265 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:265 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:265 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:265 Constant: -0:265 1 (const int) -0:265 Constant: -0:265 1 (const int) -0:265 Sequence -0:265 Constant: -0:265 0 (const int) -0:265 Constant: -0:265 1 (const int) -0:265 Constant: -0:265 2 (const int) -0:265 subgroupExclusiveMin ( global highp 3-component vector of int) -0:265 vector swizzle ( temp highp 3-component vector of int) -0:265 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:265 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:265 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:265 Constant: -0:265 2 (const int) -0:265 Constant: -0:265 1 (const int) -0:265 Sequence -0:265 Constant: -0:265 0 (const int) -0:265 Constant: -0:265 1 (const int) -0:265 Constant: -0:265 2 (const int) -0:266 move second child to first child ( temp highp 4-component vector of int) -0:266 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:266 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:266 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:266 Constant: -0:266 1 (const int) -0:266 Constant: -0:266 1 (const int) -0:266 subgroupExclusiveMin ( global highp 4-component vector of int) -0:266 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:266 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:266 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:266 Constant: -0:266 3 (const int) -0:266 Constant: -0:266 1 (const int) -0:268 move second child to first child ( temp highp uint) -0:268 direct index ( temp highp uint) -0:268 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:268 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:268 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:268 Constant: -0:268 2 (const int) -0:268 Constant: -0:268 2 (const int) -0:268 Constant: -0:268 0 (const int) -0:268 subgroupExclusiveMin ( global highp uint) -0:268 direct index ( temp highp uint) -0:268 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:268 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:268 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:268 Constant: -0:268 0 (const int) -0:268 Constant: -0:268 2 (const int) -0:268 Constant: -0:268 0 (const int) -0:269 move second child to first child ( temp highp 2-component vector of uint) -0:269 vector swizzle ( temp highp 2-component vector of uint) -0:269 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:269 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:269 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:269 Constant: -0:269 2 (const int) -0:269 Constant: -0:269 2 (const int) -0:269 Sequence -0:269 Constant: -0:269 0 (const int) -0:269 Constant: -0:269 1 (const int) -0:269 subgroupExclusiveMin ( global highp 2-component vector of uint) -0:269 vector swizzle ( temp highp 2-component vector of uint) -0:269 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:269 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:269 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:269 Constant: -0:269 1 (const int) -0:269 Constant: -0:269 2 (const int) -0:269 Sequence -0:269 Constant: -0:269 0 (const int) -0:269 Constant: -0:269 1 (const int) -0:270 move second child to first child ( temp highp 3-component vector of uint) -0:270 vector swizzle ( temp highp 3-component vector of uint) -0:270 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:270 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:270 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:270 Constant: -0:270 2 (const int) -0:270 Constant: -0:270 2 (const int) -0:270 Sequence -0:270 Constant: -0:270 0 (const int) -0:270 Constant: -0:270 1 (const int) -0:270 Constant: -0:270 2 (const int) -0:270 subgroupExclusiveMin ( global highp 3-component vector of uint) -0:270 vector swizzle ( temp highp 3-component vector of uint) -0:270 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:270 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:270 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:270 Constant: -0:270 2 (const int) -0:270 Constant: -0:270 2 (const int) -0:270 Sequence -0:270 Constant: -0:270 0 (const int) -0:270 Constant: -0:270 1 (const int) -0:270 Constant: -0:270 2 (const int) -0:271 move second child to first child ( temp highp 4-component vector of uint) -0:271 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:271 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:271 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:271 Constant: -0:271 2 (const int) -0:271 Constant: -0:271 2 (const int) -0:271 subgroupExclusiveMin ( global highp 4-component vector of uint) -0:271 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:271 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:271 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:271 Constant: -0:271 3 (const int) -0:271 Constant: -0:271 2 (const int) -0:273 move second child to first child ( temp highp float) -0:273 direct index ( temp highp float) -0:273 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:273 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:273 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:273 Constant: -0:273 3 (const int) -0:273 Constant: -0:273 0 (const int) -0:273 Constant: -0:273 0 (const int) -0:273 subgroupExclusiveMax ( global highp float) -0:273 direct index ( temp highp float) -0:273 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:273 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:273 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:273 Constant: -0:273 0 (const int) -0:273 Constant: -0:273 0 (const int) -0:273 Constant: -0:273 0 (const int) -0:274 move second child to first child ( temp highp 2-component vector of float) -0:274 vector swizzle ( temp highp 2-component vector of float) -0:274 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:274 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:274 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:274 Constant: -0:274 3 (const int) -0:274 Constant: -0:274 0 (const int) -0:274 Sequence -0:274 Constant: -0:274 0 (const int) -0:274 Constant: -0:274 1 (const int) -0:274 subgroupExclusiveMax ( global highp 2-component vector of float) -0:274 vector swizzle ( temp highp 2-component vector of float) -0:274 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:274 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:274 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:274 Constant: -0:274 1 (const int) -0:274 Constant: -0:274 0 (const int) -0:274 Sequence -0:274 Constant: -0:274 0 (const int) -0:274 Constant: -0:274 1 (const int) -0:275 move second child to first child ( temp highp 3-component vector of float) -0:275 vector swizzle ( temp highp 3-component vector of float) -0:275 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:275 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:275 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:275 Constant: -0:275 3 (const int) -0:275 Constant: -0:275 0 (const int) -0:275 Sequence -0:275 Constant: -0:275 0 (const int) -0:275 Constant: -0:275 1 (const int) -0:275 Constant: -0:275 2 (const int) -0:275 subgroupExclusiveMax ( global highp 3-component vector of float) -0:275 vector swizzle ( temp highp 3-component vector of float) -0:275 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:275 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:275 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:275 Constant: -0:275 2 (const int) -0:275 Constant: -0:275 0 (const int) -0:275 Sequence -0:275 Constant: -0:275 0 (const int) -0:275 Constant: -0:275 1 (const int) -0:275 Constant: -0:275 2 (const int) -0:276 move second child to first child ( temp highp 4-component vector of float) -0:276 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:276 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:276 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:276 Constant: -0:276 3 (const int) -0:276 Constant: -0:276 0 (const int) -0:276 subgroupExclusiveMax ( global highp 4-component vector of float) -0:276 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:276 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:276 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:276 Constant: -0:276 3 (const int) -0:276 Constant: -0:276 0 (const int) -0:278 move second child to first child ( temp highp int) -0:278 direct index ( temp highp int) -0:278 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:278 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:278 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:278 Constant: -0:278 0 (const int) -0:278 Constant: -0:278 1 (const int) -0:278 Constant: -0:278 0 (const int) -0:278 subgroupExclusiveMax ( global highp int) -0:278 direct index ( temp highp int) -0:278 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:278 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:278 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:278 Constant: -0:278 0 (const int) -0:278 Constant: -0:278 1 (const int) -0:278 Constant: -0:278 0 (const int) -0:279 move second child to first child ( temp highp 2-component vector of int) -0:279 vector swizzle ( temp highp 2-component vector of int) -0:279 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:279 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:279 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:279 Constant: -0:279 0 (const int) -0:279 Constant: -0:279 1 (const int) -0:279 Sequence -0:279 Constant: -0:279 0 (const int) -0:279 Constant: -0:279 1 (const int) -0:279 subgroupExclusiveMax ( global highp 2-component vector of int) -0:279 vector swizzle ( temp highp 2-component vector of int) -0:279 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:279 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:279 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:279 Constant: -0:279 1 (const int) -0:279 Constant: -0:279 1 (const int) -0:279 Sequence -0:279 Constant: -0:279 0 (const int) -0:279 Constant: -0:279 1 (const int) -0:280 move second child to first child ( temp highp 3-component vector of int) -0:280 vector swizzle ( temp highp 3-component vector of int) -0:280 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:280 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:280 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:280 Constant: -0:280 0 (const int) -0:280 Constant: -0:280 1 (const int) -0:280 Sequence -0:280 Constant: -0:280 0 (const int) -0:280 Constant: -0:280 1 (const int) -0:280 Constant: -0:280 2 (const int) -0:280 subgroupExclusiveMax ( global highp 3-component vector of int) -0:280 vector swizzle ( temp highp 3-component vector of int) -0:280 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:280 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:280 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:280 Constant: -0:280 2 (const int) -0:280 Constant: -0:280 1 (const int) -0:280 Sequence -0:280 Constant: -0:280 0 (const int) -0:280 Constant: -0:280 1 (const int) -0:280 Constant: -0:280 2 (const int) -0:281 move second child to first child ( temp highp 4-component vector of int) -0:281 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:281 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:281 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:281 Constant: -0:281 0 (const int) -0:281 Constant: -0:281 1 (const int) -0:281 subgroupExclusiveMax ( global highp 4-component vector of int) -0:281 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:281 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:281 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:281 Constant: -0:281 3 (const int) -0:281 Constant: -0:281 1 (const int) -0:283 move second child to first child ( temp highp uint) -0:283 direct index ( temp highp uint) -0:283 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:283 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:283 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:283 Constant: -0:283 1 (const int) -0:283 Constant: -0:283 2 (const int) -0:283 Constant: -0:283 0 (const int) -0:283 subgroupExclusiveMax ( global highp uint) -0:283 direct index ( temp highp uint) -0:283 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:283 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:283 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:283 Constant: -0:283 0 (const int) -0:283 Constant: -0:283 2 (const int) -0:283 Constant: -0:283 0 (const int) -0:284 move second child to first child ( temp highp 2-component vector of uint) -0:284 vector swizzle ( temp highp 2-component vector of uint) -0:284 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:284 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:284 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:284 Constant: -0:284 1 (const int) -0:284 Constant: -0:284 2 (const int) -0:284 Sequence -0:284 Constant: -0:284 0 (const int) -0:284 Constant: -0:284 1 (const int) -0:284 subgroupExclusiveMax ( global highp 2-component vector of uint) -0:284 vector swizzle ( temp highp 2-component vector of uint) -0:284 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:284 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:284 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:284 Constant: -0:284 1 (const int) -0:284 Constant: -0:284 2 (const int) -0:284 Sequence -0:284 Constant: -0:284 0 (const int) -0:284 Constant: -0:284 1 (const int) -0:285 move second child to first child ( temp highp 3-component vector of uint) -0:285 vector swizzle ( temp highp 3-component vector of uint) -0:285 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:285 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:285 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:285 Constant: -0:285 1 (const int) -0:285 Constant: -0:285 2 (const int) -0:285 Sequence -0:285 Constant: -0:285 0 (const int) -0:285 Constant: -0:285 1 (const int) -0:285 Constant: -0:285 2 (const int) -0:285 subgroupExclusiveMax ( global highp 3-component vector of uint) -0:285 vector swizzle ( temp highp 3-component vector of uint) -0:285 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:285 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:285 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:285 Constant: -0:285 2 (const int) -0:285 Constant: -0:285 2 (const int) -0:285 Sequence -0:285 Constant: -0:285 0 (const int) -0:285 Constant: -0:285 1 (const int) -0:285 Constant: -0:285 2 (const int) -0:286 move second child to first child ( temp highp 4-component vector of uint) -0:286 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:286 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:286 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:286 Constant: -0:286 1 (const int) -0:286 Constant: -0:286 2 (const int) -0:286 subgroupExclusiveMax ( global highp 4-component vector of uint) -0:286 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:286 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:286 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:286 Constant: -0:286 3 (const int) -0:286 Constant: -0:286 2 (const int) -0:288 move second child to first child ( temp highp int) -0:288 direct index ( temp highp int) -0:288 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:288 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:288 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:288 Constant: -0:288 2 (const int) -0:288 Constant: -0:288 1 (const int) -0:288 Constant: -0:288 0 (const int) -0:288 subgroupExclusiveAnd ( global highp int) -0:288 direct index ( temp highp int) -0:288 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:288 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:288 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:288 Constant: -0:288 0 (const int) -0:288 Constant: -0:288 1 (const int) -0:288 Constant: -0:288 0 (const int) -0:289 move second child to first child ( temp highp 2-component vector of int) -0:289 vector swizzle ( temp highp 2-component vector of int) -0:289 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:289 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:289 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:289 Constant: -0:289 2 (const int) -0:289 Constant: -0:289 1 (const int) -0:289 Sequence -0:289 Constant: -0:289 0 (const int) -0:289 Constant: -0:289 1 (const int) -0:289 subgroupExclusiveAnd ( global highp 2-component vector of int) -0:289 vector swizzle ( temp highp 2-component vector of int) -0:289 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:289 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:289 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:289 Constant: -0:289 1 (const int) -0:289 Constant: -0:289 1 (const int) -0:289 Sequence -0:289 Constant: -0:289 0 (const int) -0:289 Constant: -0:289 1 (const int) -0:290 move second child to first child ( temp highp 3-component vector of int) -0:290 vector swizzle ( temp highp 3-component vector of int) -0:290 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:290 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:290 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:290 Constant: -0:290 2 (const int) -0:290 Constant: -0:290 1 (const int) -0:290 Sequence -0:290 Constant: -0:290 0 (const int) -0:290 Constant: -0:290 1 (const int) -0:290 Constant: -0:290 2 (const int) -0:290 subgroupExclusiveAnd ( global highp 3-component vector of int) -0:290 vector swizzle ( temp highp 3-component vector of int) -0:290 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:290 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:290 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:290 Constant: -0:290 2 (const int) -0:290 Constant: -0:290 1 (const int) -0:290 Sequence -0:290 Constant: -0:290 0 (const int) -0:290 Constant: -0:290 1 (const int) -0:290 Constant: -0:290 2 (const int) -0:291 move second child to first child ( temp highp 4-component vector of int) -0:291 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:291 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:291 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:291 Constant: -0:291 2 (const int) -0:291 Constant: -0:291 1 (const int) -0:291 subgroupExclusiveAnd ( global highp 4-component vector of int) -0:291 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:291 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:291 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:291 Constant: -0:291 3 (const int) -0:291 Constant: -0:291 1 (const int) -0:293 move second child to first child ( temp highp uint) -0:293 direct index ( temp highp uint) -0:293 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:293 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:293 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:293 Constant: -0:293 3 (const int) -0:293 Constant: -0:293 2 (const int) -0:293 Constant: -0:293 0 (const int) -0:293 subgroupExclusiveAnd ( global highp uint) -0:293 direct index ( temp highp uint) -0:293 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:293 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:293 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:293 Constant: -0:293 0 (const int) -0:293 Constant: -0:293 2 (const int) -0:293 Constant: -0:293 0 (const int) -0:294 move second child to first child ( temp highp 2-component vector of uint) -0:294 vector swizzle ( temp highp 2-component vector of uint) -0:294 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:294 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:294 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:294 Constant: -0:294 3 (const int) -0:294 Constant: -0:294 2 (const int) -0:294 Sequence -0:294 Constant: -0:294 0 (const int) -0:294 Constant: -0:294 1 (const int) -0:294 subgroupExclusiveAnd ( global highp 2-component vector of uint) -0:294 vector swizzle ( temp highp 2-component vector of uint) -0:294 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:294 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:294 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:294 Constant: -0:294 1 (const int) -0:294 Constant: -0:294 2 (const int) -0:294 Sequence -0:294 Constant: -0:294 0 (const int) -0:294 Constant: -0:294 1 (const int) -0:295 move second child to first child ( temp highp 3-component vector of uint) -0:295 vector swizzle ( temp highp 3-component vector of uint) -0:295 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:295 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:295 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:295 Constant: -0:295 3 (const int) -0:295 Constant: -0:295 2 (const int) -0:295 Sequence -0:295 Constant: -0:295 0 (const int) -0:295 Constant: -0:295 1 (const int) -0:295 Constant: -0:295 2 (const int) -0:295 subgroupExclusiveAnd ( global highp 3-component vector of uint) -0:295 vector swizzle ( temp highp 3-component vector of uint) -0:295 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:295 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:295 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:295 Constant: -0:295 2 (const int) -0:295 Constant: -0:295 2 (const int) -0:295 Sequence -0:295 Constant: -0:295 0 (const int) -0:295 Constant: -0:295 1 (const int) -0:295 Constant: -0:295 2 (const int) -0:296 move second child to first child ( temp highp 4-component vector of uint) -0:296 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:296 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:296 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:296 Constant: -0:296 3 (const int) -0:296 Constant: -0:296 2 (const int) -0:296 subgroupExclusiveAnd ( global highp 4-component vector of uint) -0:296 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:296 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:296 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:296 Constant: -0:296 3 (const int) -0:296 Constant: -0:296 2 (const int) -0:298 move second child to first child ( temp highp int) -0:298 direct index ( temp highp int) -0:298 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:298 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:298 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:298 Constant: -0:298 0 (const int) -0:298 Constant: -0:298 1 (const int) -0:298 Constant: -0:298 0 (const int) -0:298 Convert bool to int ( temp highp int) -0:298 subgroupExclusiveAnd ( global bool) -0:298 Compare Less Than ( temp bool) -0:298 direct index ( temp highp int) -0:298 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:298 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:298 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:298 Constant: -0:298 0 (const int) -0:298 Constant: -0:298 1 (const int) -0:298 Constant: -0:298 0 (const int) -0:298 Constant: -0:298 0 (const int) -0:299 move second child to first child ( temp highp 2-component vector of int) -0:299 vector swizzle ( temp highp 2-component vector of int) -0:299 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:299 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:299 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:299 Constant: -0:299 0 (const int) -0:299 Constant: -0:299 1 (const int) -0:299 Sequence -0:299 Constant: -0:299 0 (const int) -0:299 Constant: -0:299 1 (const int) -0:299 Convert bool to int ( temp highp 2-component vector of int) -0:299 subgroupExclusiveAnd ( global 2-component vector of bool) -0:299 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:299 vector swizzle ( temp highp 2-component vector of int) -0:299 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:299 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:299 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:299 Constant: -0:299 1 (const int) -0:299 Constant: -0:299 1 (const int) -0:299 Sequence -0:299 Constant: -0:299 0 (const int) -0:299 Constant: -0:299 1 (const int) -0:299 Constant: -0:299 0 (const int) -0:299 0 (const int) -0:300 move second child to first child ( temp highp 3-component vector of int) -0:300 vector swizzle ( temp highp 3-component vector of int) -0:300 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:300 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:300 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:300 Constant: -0:300 0 (const int) -0:300 Constant: -0:300 1 (const int) -0:300 Sequence -0:300 Constant: -0:300 0 (const int) -0:300 Constant: -0:300 1 (const int) -0:300 Constant: -0:300 2 (const int) -0:300 Convert bool to int ( temp highp 3-component vector of int) -0:300 subgroupExclusiveAnd ( global 3-component vector of bool) -0:300 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:300 vector swizzle ( temp highp 3-component vector of int) -0:300 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:300 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:300 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:300 Constant: -0:300 1 (const int) -0:300 Constant: -0:300 1 (const int) -0:300 Sequence -0:300 Constant: -0:300 0 (const int) -0:300 Constant: -0:300 1 (const int) -0:300 Constant: -0:300 2 (const int) -0:300 Constant: -0:300 0 (const int) -0:300 0 (const int) -0:300 0 (const int) -0:301 move second child to first child ( temp highp 4-component vector of int) -0:301 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:301 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:301 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:301 Constant: -0:301 0 (const int) -0:301 Constant: -0:301 1 (const int) -0:301 Convert bool to int ( temp highp 4-component vector of int) -0:301 subgroupExclusiveAnd ( global 4-component vector of bool) -0:301 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:301 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:301 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:301 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:301 Constant: -0:301 1 (const int) -0:301 Constant: -0:301 1 (const int) -0:301 Constant: -0:301 0 (const int) -0:301 0 (const int) -0:301 0 (const int) -0:301 0 (const int) -0:303 move second child to first child ( temp highp int) -0:303 direct index ( temp highp int) -0:303 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:303 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:303 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:303 Constant: -0:303 1 (const int) -0:303 Constant: -0:303 1 (const int) -0:303 Constant: -0:303 0 (const int) -0:303 subgroupExclusiveOr ( global highp int) -0:303 direct index ( temp highp int) -0:303 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:303 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:303 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:303 Constant: -0:303 0 (const int) -0:303 Constant: -0:303 1 (const int) -0:303 Constant: -0:303 0 (const int) -0:304 move second child to first child ( temp highp 2-component vector of int) -0:304 vector swizzle ( temp highp 2-component vector of int) -0:304 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:304 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:304 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:304 Constant: -0:304 1 (const int) -0:304 Constant: -0:304 1 (const int) -0:304 Sequence -0:304 Constant: -0:304 0 (const int) -0:304 Constant: -0:304 1 (const int) -0:304 subgroupExclusiveOr ( global highp 2-component vector of int) -0:304 vector swizzle ( temp highp 2-component vector of int) -0:304 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:304 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:304 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:304 Constant: -0:304 1 (const int) -0:304 Constant: -0:304 1 (const int) -0:304 Sequence -0:304 Constant: -0:304 0 (const int) -0:304 Constant: -0:304 1 (const int) -0:305 move second child to first child ( temp highp 3-component vector of int) -0:305 vector swizzle ( temp highp 3-component vector of int) -0:305 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:305 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:305 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:305 Constant: -0:305 1 (const int) -0:305 Constant: -0:305 1 (const int) -0:305 Sequence -0:305 Constant: -0:305 0 (const int) -0:305 Constant: -0:305 1 (const int) -0:305 Constant: -0:305 2 (const int) -0:305 subgroupExclusiveOr ( global highp 3-component vector of int) -0:305 vector swizzle ( temp highp 3-component vector of int) -0:305 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:305 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:305 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:305 Constant: -0:305 2 (const int) -0:305 Constant: -0:305 1 (const int) -0:305 Sequence -0:305 Constant: -0:305 0 (const int) -0:305 Constant: -0:305 1 (const int) -0:305 Constant: -0:305 2 (const int) -0:306 move second child to first child ( temp highp 4-component vector of int) -0:306 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:306 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:306 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:306 Constant: -0:306 1 (const int) -0:306 Constant: -0:306 1 (const int) -0:306 subgroupExclusiveOr ( global highp 4-component vector of int) -0:306 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:306 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:306 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:306 Constant: -0:306 3 (const int) -0:306 Constant: -0:306 1 (const int) -0:308 move second child to first child ( temp highp uint) -0:308 direct index ( temp highp uint) -0:308 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:308 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:308 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:308 Constant: -0:308 2 (const int) -0:308 Constant: -0:308 2 (const int) -0:308 Constant: -0:308 0 (const int) -0:308 subgroupExclusiveOr ( global highp uint) -0:308 direct index ( temp highp uint) -0:308 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:308 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:308 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:308 Constant: -0:308 0 (const int) -0:308 Constant: -0:308 2 (const int) -0:308 Constant: -0:308 0 (const int) -0:309 move second child to first child ( temp highp 2-component vector of uint) -0:309 vector swizzle ( temp highp 2-component vector of uint) -0:309 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:309 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:309 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:309 Constant: -0:309 2 (const int) -0:309 Constant: -0:309 2 (const int) -0:309 Sequence -0:309 Constant: -0:309 0 (const int) -0:309 Constant: -0:309 1 (const int) -0:309 subgroupExclusiveOr ( global highp 2-component vector of uint) -0:309 vector swizzle ( temp highp 2-component vector of uint) -0:309 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:309 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:309 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:309 Constant: -0:309 1 (const int) -0:309 Constant: -0:309 2 (const int) -0:309 Sequence -0:309 Constant: -0:309 0 (const int) -0:309 Constant: -0:309 1 (const int) -0:310 move second child to first child ( temp highp 3-component vector of uint) -0:310 vector swizzle ( temp highp 3-component vector of uint) -0:310 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:310 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:310 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:310 Constant: -0:310 2 (const int) -0:310 Constant: -0:310 2 (const int) -0:310 Sequence -0:310 Constant: -0:310 0 (const int) -0:310 Constant: -0:310 1 (const int) -0:310 Constant: -0:310 2 (const int) -0:310 subgroupExclusiveOr ( global highp 3-component vector of uint) -0:310 vector swizzle ( temp highp 3-component vector of uint) -0:310 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:310 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:310 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:310 Constant: -0:310 2 (const int) -0:310 Constant: -0:310 2 (const int) -0:310 Sequence -0:310 Constant: -0:310 0 (const int) -0:310 Constant: -0:310 1 (const int) -0:310 Constant: -0:310 2 (const int) -0:311 move second child to first child ( temp highp 4-component vector of uint) -0:311 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:311 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:311 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:311 Constant: -0:311 2 (const int) -0:311 Constant: -0:311 2 (const int) -0:311 subgroupExclusiveOr ( global highp 4-component vector of uint) -0:311 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:311 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:311 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:311 Constant: -0:311 3 (const int) -0:311 Constant: -0:311 2 (const int) -0:313 move second child to first child ( temp highp int) -0:313 direct index ( temp highp int) -0:313 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:313 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:313 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:313 Constant: -0:313 3 (const int) -0:313 Constant: -0:313 1 (const int) -0:313 Constant: -0:313 0 (const int) -0:313 Convert bool to int ( temp highp int) -0:313 subgroupExclusiveOr ( global bool) -0:313 Compare Less Than ( temp bool) -0:313 direct index ( temp highp int) -0:313 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:313 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:313 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:313 Constant: -0:313 0 (const int) -0:313 Constant: -0:313 1 (const int) -0:313 Constant: -0:313 0 (const int) -0:313 Constant: -0:313 0 (const int) -0:314 move second child to first child ( temp highp 2-component vector of int) -0:314 vector swizzle ( temp highp 2-component vector of int) -0:314 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:314 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:314 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:314 Constant: -0:314 3 (const int) -0:314 Constant: -0:314 1 (const int) -0:314 Sequence -0:314 Constant: -0:314 0 (const int) -0:314 Constant: -0:314 1 (const int) -0:314 Convert bool to int ( temp highp 2-component vector of int) -0:314 subgroupExclusiveOr ( global 2-component vector of bool) -0:314 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:314 vector swizzle ( temp highp 2-component vector of int) -0:314 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:314 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:314 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:314 Constant: -0:314 1 (const int) -0:314 Constant: -0:314 1 (const int) -0:314 Sequence -0:314 Constant: -0:314 0 (const int) -0:314 Constant: -0:314 1 (const int) -0:314 Constant: -0:314 0 (const int) -0:314 0 (const int) -0:315 move second child to first child ( temp highp 3-component vector of int) -0:315 vector swizzle ( temp highp 3-component vector of int) -0:315 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:315 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:315 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:315 Constant: -0:315 3 (const int) -0:315 Constant: -0:315 1 (const int) -0:315 Sequence -0:315 Constant: -0:315 0 (const int) -0:315 Constant: -0:315 1 (const int) -0:315 Constant: -0:315 2 (const int) -0:315 Convert bool to int ( temp highp 3-component vector of int) -0:315 subgroupExclusiveOr ( global 3-component vector of bool) -0:315 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:315 vector swizzle ( temp highp 3-component vector of int) -0:315 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:315 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:315 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:315 Constant: -0:315 1 (const int) -0:315 Constant: -0:315 1 (const int) -0:315 Sequence -0:315 Constant: -0:315 0 (const int) -0:315 Constant: -0:315 1 (const int) -0:315 Constant: -0:315 2 (const int) -0:315 Constant: -0:315 0 (const int) -0:315 0 (const int) -0:315 0 (const int) -0:316 move second child to first child ( temp highp 4-component vector of int) -0:316 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:316 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:316 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:316 Constant: -0:316 3 (const int) -0:316 Constant: -0:316 1 (const int) -0:316 Convert bool to int ( temp highp 4-component vector of int) -0:316 subgroupExclusiveOr ( global 4-component vector of bool) -0:316 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:316 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:316 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:316 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:316 Constant: -0:316 1 (const int) -0:316 Constant: -0:316 1 (const int) -0:316 Constant: -0:316 0 (const int) -0:316 0 (const int) -0:316 0 (const int) -0:316 0 (const int) -0:318 move second child to first child ( temp highp int) -0:318 direct index ( temp highp int) -0:318 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:318 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:318 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:318 Constant: -0:318 0 (const int) -0:318 Constant: -0:318 1 (const int) -0:318 Constant: -0:318 0 (const int) -0:318 subgroupExclusiveXor ( global highp int) -0:318 direct index ( temp highp int) -0:318 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:318 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:318 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:318 Constant: -0:318 0 (const int) -0:318 Constant: -0:318 1 (const int) -0:318 Constant: -0:318 0 (const int) -0:319 move second child to first child ( temp highp 2-component vector of int) -0:319 vector swizzle ( temp highp 2-component vector of int) -0:319 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:319 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:319 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:319 Constant: -0:319 0 (const int) -0:319 Constant: -0:319 1 (const int) -0:319 Sequence -0:319 Constant: -0:319 0 (const int) -0:319 Constant: -0:319 1 (const int) -0:319 subgroupExclusiveXor ( global highp 2-component vector of int) -0:319 vector swizzle ( temp highp 2-component vector of int) -0:319 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:319 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:319 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:319 Constant: -0:319 1 (const int) -0:319 Constant: -0:319 1 (const int) -0:319 Sequence -0:319 Constant: -0:319 0 (const int) -0:319 Constant: -0:319 1 (const int) -0:320 move second child to first child ( temp highp 3-component vector of int) -0:320 vector swizzle ( temp highp 3-component vector of int) -0:320 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:320 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:320 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:320 Constant: -0:320 0 (const int) -0:320 Constant: -0:320 1 (const int) -0:320 Sequence -0:320 Constant: -0:320 0 (const int) -0:320 Constant: -0:320 1 (const int) -0:320 Constant: -0:320 2 (const int) -0:320 subgroupExclusiveXor ( global highp 3-component vector of int) -0:320 vector swizzle ( temp highp 3-component vector of int) -0:320 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:320 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:320 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:320 Constant: -0:320 2 (const int) -0:320 Constant: -0:320 1 (const int) -0:320 Sequence -0:320 Constant: -0:320 0 (const int) -0:320 Constant: -0:320 1 (const int) -0:320 Constant: -0:320 2 (const int) -0:321 move second child to first child ( temp highp 4-component vector of int) -0:321 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:321 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:321 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:321 Constant: -0:321 0 (const int) -0:321 Constant: -0:321 1 (const int) -0:321 subgroupExclusiveXor ( global highp 4-component vector of int) -0:321 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:321 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:321 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:321 Constant: -0:321 3 (const int) -0:321 Constant: -0:321 1 (const int) -0:323 move second child to first child ( temp highp uint) -0:323 direct index ( temp highp uint) -0:323 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:323 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:323 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:323 Constant: -0:323 1 (const int) -0:323 Constant: -0:323 2 (const int) -0:323 Constant: -0:323 0 (const int) -0:323 subgroupExclusiveXor ( global highp uint) -0:323 direct index ( temp highp uint) -0:323 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:323 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:323 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:323 Constant: -0:323 0 (const int) -0:323 Constant: -0:323 2 (const int) -0:323 Constant: -0:323 0 (const int) -0:324 move second child to first child ( temp highp 2-component vector of uint) -0:324 vector swizzle ( temp highp 2-component vector of uint) -0:324 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:324 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:324 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:324 Constant: -0:324 1 (const int) -0:324 Constant: -0:324 2 (const int) -0:324 Sequence -0:324 Constant: -0:324 0 (const int) -0:324 Constant: -0:324 1 (const int) -0:324 subgroupExclusiveXor ( global highp 2-component vector of uint) -0:324 vector swizzle ( temp highp 2-component vector of uint) -0:324 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:324 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:324 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:324 Constant: -0:324 1 (const int) -0:324 Constant: -0:324 2 (const int) -0:324 Sequence -0:324 Constant: -0:324 0 (const int) -0:324 Constant: -0:324 1 (const int) -0:325 move second child to first child ( temp highp 3-component vector of uint) -0:325 vector swizzle ( temp highp 3-component vector of uint) -0:325 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:325 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:325 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:325 Constant: -0:325 1 (const int) -0:325 Constant: -0:325 2 (const int) -0:325 Sequence -0:325 Constant: -0:325 0 (const int) -0:325 Constant: -0:325 1 (const int) -0:325 Constant: -0:325 2 (const int) -0:325 subgroupExclusiveXor ( global highp 3-component vector of uint) -0:325 vector swizzle ( temp highp 3-component vector of uint) -0:325 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:325 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:325 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:325 Constant: -0:325 2 (const int) -0:325 Constant: -0:325 2 (const int) -0:325 Sequence -0:325 Constant: -0:325 0 (const int) -0:325 Constant: -0:325 1 (const int) -0:325 Constant: -0:325 2 (const int) -0:326 move second child to first child ( temp highp 4-component vector of uint) -0:326 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:326 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:326 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:326 Constant: -0:326 1 (const int) -0:326 Constant: -0:326 2 (const int) -0:326 subgroupExclusiveXor ( global highp 4-component vector of uint) -0:326 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:326 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:326 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:326 Constant: -0:326 3 (const int) -0:326 Constant: -0:326 2 (const int) -0:328 move second child to first child ( temp highp int) -0:328 direct index ( temp highp int) -0:328 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:328 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:328 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:328 Constant: -0:328 2 (const int) -0:328 Constant: -0:328 1 (const int) -0:328 Constant: -0:328 0 (const int) -0:328 Convert bool to int ( temp highp int) -0:328 subgroupExclusiveXor ( global bool) -0:328 Compare Less Than ( temp bool) -0:328 direct index ( temp highp int) -0:328 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:328 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:328 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:328 Constant: -0:328 0 (const int) -0:328 Constant: -0:328 1 (const int) -0:328 Constant: -0:328 0 (const int) -0:328 Constant: -0:328 0 (const int) -0:329 move second child to first child ( temp highp 2-component vector of int) -0:329 vector swizzle ( temp highp 2-component vector of int) -0:329 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:329 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:329 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:329 Constant: -0:329 2 (const int) -0:329 Constant: -0:329 1 (const int) -0:329 Sequence -0:329 Constant: -0:329 0 (const int) -0:329 Constant: -0:329 1 (const int) -0:329 Convert bool to int ( temp highp 2-component vector of int) -0:329 subgroupExclusiveXor ( global 2-component vector of bool) -0:329 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:329 vector swizzle ( temp highp 2-component vector of int) -0:329 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:329 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:329 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:329 Constant: -0:329 1 (const int) -0:329 Constant: -0:329 1 (const int) -0:329 Sequence -0:329 Constant: -0:329 0 (const int) -0:329 Constant: -0:329 1 (const int) -0:329 Constant: -0:329 0 (const int) -0:329 0 (const int) -0:330 move second child to first child ( temp highp 3-component vector of int) -0:330 vector swizzle ( temp highp 3-component vector of int) -0:330 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:330 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:330 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:330 Constant: -0:330 2 (const int) -0:330 Constant: -0:330 1 (const int) -0:330 Sequence -0:330 Constant: -0:330 0 (const int) -0:330 Constant: -0:330 1 (const int) -0:330 Constant: -0:330 2 (const int) -0:330 Convert bool to int ( temp highp 3-component vector of int) -0:330 subgroupExclusiveXor ( global 3-component vector of bool) -0:330 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:330 vector swizzle ( temp highp 3-component vector of int) -0:330 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:330 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:330 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:330 Constant: -0:330 1 (const int) -0:330 Constant: -0:330 1 (const int) -0:330 Sequence -0:330 Constant: -0:330 0 (const int) -0:330 Constant: -0:330 1 (const int) -0:330 Constant: -0:330 2 (const int) -0:330 Constant: -0:330 0 (const int) -0:330 0 (const int) -0:330 0 (const int) -0:331 move second child to first child ( temp highp 4-component vector of int) -0:331 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:331 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:331 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:331 Constant: -0:331 2 (const int) -0:331 Constant: -0:331 1 (const int) -0:331 Convert bool to int ( temp highp 4-component vector of int) -0:331 subgroupExclusiveXor ( global 4-component vector of bool) -0:331 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:331 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:331 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:331 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:331 Constant: -0:331 1 (const int) -0:331 Constant: -0:331 1 (const int) -0:331 Constant: -0:331 0 (const int) -0:331 0 (const int) -0:331 0 (const int) -0:331 0 (const int) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const highp 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) - diff --git a/deps/glslang/Test/baseResults/glsl.es320.subgroupBallot.comp.out b/deps/glslang/Test/baseResults/glsl.es320.subgroupBallot.comp.out deleted file mode 100644 index d5a97c4b..00000000 --- a/deps/glslang/Test/baseResults/glsl.es320.subgroupBallot.comp.out +++ /dev/null @@ -1,1981 +0,0 @@ -glsl.es320.subgroupBallot.comp -Shader version: 320 -Requested GL_KHR_shader_subgroup_ballot -Requested GL_KHR_shader_subgroup_basic -local_size = (8, 8, 1) -0:? Sequence -0:14 Function Definition: main( ( global void) -0:14 Function Parameters: -0:16 Sequence -0:16 Sequence -0:16 move second child to first child ( temp highp uint) -0:16 'invocation' ( temp highp uint) -0:16 mod ( temp mediump uint) -0:16 add ( temp mediump uint) -0:16 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID) -0:16 'gl_SubgroupSize' ( in mediump uint SubgroupSize) -0:16 Constant: -0:16 4 (const uint) -0:18 Sequence -0:18 move second child to first child ( temp highp 4-component vector of uint) -0:18 'relMask' ( temp highp 4-component vector of uint) -0:21 add ( temp highp 4-component vector of uint) -0:20 add ( temp highp 4-component vector of uint) -0:19 add ( temp highp 4-component vector of uint) -0:18 add ( temp highp 4-component vector of uint) -0:18 'gl_SubgroupEqMask' ( in highp 4-component vector of uint SubgroupEqMask) -0:19 'gl_SubgroupGeMask' ( in highp 4-component vector of uint SubgroupGeMask) -0:20 'gl_SubgroupGtMask' ( in highp 4-component vector of uint SubgroupGtMask) -0:21 'gl_SubgroupLeMask' ( in highp 4-component vector of uint SubgroupLeMask) -0:22 'gl_SubgroupLtMask' ( in highp 4-component vector of uint SubgroupLtMask) -0:24 Sequence -0:24 move second child to first child ( temp highp 4-component vector of uint) -0:24 'result' ( temp highp 4-component vector of uint) -0:24 subgroupBallot ( global highp 4-component vector of uint) -0:24 Constant: -0:24 true (const bool) -0:26 move second child to first child ( temp highp uint) -0:26 direct index ( temp highp uint) -0:26 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 Constant: -0:26 0 (const int) -0:26 subgroupBallotBitCount ( global highp uint) -0:26 'result' ( temp highp 4-component vector of uint) -0:27 move second child to first child ( temp highp uint) -0:27 direct index ( temp highp uint) -0:27 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:27 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 2 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Test condition and select ( temp highp uint) -0:27 Condition -0:27 subgroupBallotBitExtract ( global bool, operation at highp) -0:27 'result' ( temp highp 4-component vector of uint) -0:27 Constant: -0:27 0 (const uint) -0:27 true case -0:27 Constant: -0:27 1 (const uint) -0:27 false case -0:27 Constant: -0:27 0 (const uint) -0:28 move second child to first child ( temp highp uint) -0:28 direct index ( temp highp uint) -0:28 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 2 (const int) -0:28 Constant: -0:28 2 (const int) -0:28 add ( temp highp uint) -0:28 subgroupBallotInclusiveBitCount ( global highp uint) -0:28 'result' ( temp highp 4-component vector of uint) -0:28 subgroupBallotExclusiveBitCount ( global highp uint) -0:28 'result' ( temp highp 4-component vector of uint) -0:29 move second child to first child ( temp highp uint) -0:29 direct index ( temp highp uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 3 (const int) -0:29 add ( temp highp uint) -0:29 subgroupBallotFindLSB ( global highp uint) -0:29 'result' ( temp highp 4-component vector of uint) -0:29 subgroupBallotFindMSB ( global highp uint) -0:29 'result' ( temp highp 4-component vector of uint) -0:31 Test condition and select ( temp void) -0:31 Condition -0:31 logical-and ( temp bool) -0:31 Compare Equal ( temp bool) -0:31 'relMask' ( temp highp 4-component vector of uint) -0:31 'result' ( temp highp 4-component vector of uint) -0:31 subgroupInverseBallot ( global bool, operation at highp) -0:31 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 true case -0:33 Sequence -0:33 move second child to first child ( temp highp float) -0:33 direct index ( temp highp float) -0:33 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 subgroupBroadcast ( global highp float) -0:33 direct index ( temp highp float) -0:33 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -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 Constant: -0:33 3 (const uint) -0:34 move second child to first child ( temp highp 2-component vector of float) -0:34 vector swizzle ( temp highp 2-component vector of float) -0:34 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 Constant: -0:34 1 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 Sequence -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 subgroupBroadcast ( global highp 2-component vector of float) -0:34 vector swizzle ( temp highp 2-component vector of float) -0:34 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 Constant: -0:34 1 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 Sequence -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 Constant: -0:34 3 (const uint) -0:35 move second child to first child ( temp highp 3-component vector of float) -0:35 vector swizzle ( temp highp 3-component vector of float) -0:35 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 2 (const int) -0:35 subgroupBroadcast ( global highp 3-component vector of float) -0:35 vector swizzle ( temp highp 3-component vector of float) -0:35 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 Constant: -0:35 2 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 2 (const int) -0:35 Constant: -0:35 3 (const uint) -0:36 move second child to first child ( temp highp 4-component vector of float) -0:36 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 subgroupBroadcast ( global highp 4-component vector of float) -0:36 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 Constant: -0:36 3 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 3 (const uint) -0:38 move second child to first child ( temp highp int) -0:38 direct index ( temp highp int) -0:38 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 Constant: -0:38 2 (const int) -0:38 Constant: -0:38 1 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 subgroupBroadcast ( global highp int) -0:38 direct index ( temp highp int) -0:38 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 1 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 2 (const uint) -0:39 move second child to first child ( temp highp 2-component vector of int) -0:39 vector swizzle ( temp highp 2-component vector of int) -0:39 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 Constant: -0:39 2 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 Sequence -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 subgroupBroadcast ( global highp 2-component vector of int) -0:39 vector swizzle ( temp highp 2-component vector of int) -0:39 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 Sequence -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 2 (const uint) -0:40 move second child to first child ( temp highp 3-component vector of int) -0:40 vector swizzle ( temp highp 3-component vector of int) -0:40 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 Constant: -0:40 2 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 2 (const int) -0:40 subgroupBroadcast ( global highp 3-component vector of int) -0:40 vector swizzle ( temp highp 3-component vector of int) -0:40 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 Constant: -0:40 2 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 2 (const int) -0:40 Constant: -0:40 2 (const uint) -0:41 move second child to first child ( temp highp 4-component vector of int) -0:41 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 Constant: -0:41 2 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 subgroupBroadcast ( global highp 4-component vector of int) -0:41 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 Constant: -0:41 3 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 2 (const uint) -0:43 move second child to first child ( temp highp uint) -0:43 direct index ( temp highp uint) -0:43 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:43 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 Constant: -0:43 3 (const int) -0:43 Constant: -0:43 2 (const int) -0:43 Constant: -0:43 0 (const int) -0:43 subgroupBroadcast ( global highp uint) -0:43 direct index ( temp highp uint) -0:43 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:43 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 Constant: -0:43 0 (const int) -0:43 Constant: -0:43 2 (const int) -0:43 Constant: -0:43 0 (const int) -0:43 Constant: -0:43 1 (const uint) -0:44 move second child to first child ( temp highp 2-component vector of uint) -0:44 vector swizzle ( temp highp 2-component vector of uint) -0:44 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 Constant: -0:44 3 (const int) -0:44 Constant: -0:44 2 (const int) -0:44 Sequence -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 1 (const int) -0:44 subgroupBroadcast ( global highp 2-component vector of uint) -0:44 vector swizzle ( temp highp 2-component vector of uint) -0:44 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 Constant: -0:44 1 (const int) -0:44 Constant: -0:44 2 (const int) -0:44 Sequence -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 1 (const int) -0:44 Constant: -0:44 1 (const uint) -0:45 move second child to first child ( temp highp 3-component vector of uint) -0:45 vector swizzle ( temp highp 3-component vector of uint) -0:45 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 Constant: -0:45 3 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 subgroupBroadcast ( global highp 3-component vector of uint) -0:45 vector swizzle ( temp highp 3-component vector of uint) -0:45 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 Constant: -0:45 2 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 Constant: -0:45 1 (const uint) -0:46 move second child to first child ( temp highp 4-component vector of uint) -0:46 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 Constant: -0:46 3 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 subgroupBroadcast ( global highp 4-component vector of uint) -0:46 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 Constant: -0:46 3 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 Constant: -0:46 1 (const uint) -0:48 move second child to first child ( temp highp int) -0:48 direct index ( temp highp int) -0:48 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:48 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 Constant: -0:48 0 (const int) -0:48 Constant: -0:48 1 (const int) -0:48 Constant: -0:48 0 (const int) -0:48 Convert bool to int ( temp highp int) -0:48 subgroupBroadcast ( global bool) -0:48 Compare Less Than ( temp bool) -0:48 direct index ( temp highp int) -0:48 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:48 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 Constant: -0:48 0 (const int) -0:48 Constant: -0:48 1 (const int) -0:48 Constant: -0:48 0 (const int) -0:48 Constant: -0:48 0 (const int) -0:48 Constant: -0:48 1 (const uint) -0:49 move second child to first child ( temp highp 2-component vector of int) -0:49 vector swizzle ( temp highp 2-component vector of int) -0:49 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:49 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 1 (const int) -0:49 Sequence -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 1 (const int) -0:49 Convert bool to int ( temp highp 2-component vector of int) -0:49 subgroupBroadcast ( global 2-component vector of bool) -0:49 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:49 vector swizzle ( temp highp 2-component vector of int) -0:49 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:49 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 Constant: -0:49 1 (const int) -0:49 Constant: -0:49 1 (const int) -0:49 Sequence -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 1 (const int) -0:49 Constant: -0:49 0 (const int) -0:49 0 (const int) -0:49 Constant: -0:49 1 (const uint) -0:50 move second child to first child ( temp highp 3-component vector of int) -0:50 vector swizzle ( temp highp 3-component vector of int) -0:50 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 Convert bool to int ( temp highp 3-component vector of int) -0:50 subgroupBroadcast ( global 3-component vector of bool) -0:50 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:50 vector swizzle ( temp highp 3-component vector of int) -0:50 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 Constant: -0:50 0 (const int) -0:50 0 (const int) -0:50 0 (const int) -0:50 Constant: -0:50 1 (const uint) -0:51 move second child to first child ( temp highp 4-component vector of int) -0:51 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 Convert bool to int ( temp highp 4-component vector of int) -0:51 subgroupBroadcast ( global 4-component vector of bool) -0:51 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:51 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 0 (const int) -0:51 0 (const int) -0:51 0 (const int) -0:51 0 (const int) -0:51 Constant: -0:51 1 (const uint) -0:31 false case -0:55 Sequence -0:55 move second child to first child ( temp highp float) -0:55 direct index ( temp highp float) -0:55 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 0 (const int) -0:55 subgroupBroadcastFirst ( global highp float) -0:55 direct index ( temp highp float) -0:55 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 0 (const int) -0:56 move second child to first child ( temp highp 2-component vector of float) -0:56 vector swizzle ( temp highp 2-component vector of float) -0:56 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 0 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 subgroupBroadcastFirst ( global highp 2-component vector of float) -0:56 vector swizzle ( temp highp 2-component vector of float) -0:56 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 0 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:57 move second child to first child ( temp highp 3-component vector of float) -0:57 vector swizzle ( temp highp 3-component vector of float) -0:57 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:57 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:57 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:57 Constant: -0:57 1 (const int) -0:57 Constant: -0:57 0 (const int) -0:57 Sequence -0:57 Constant: -0:57 0 (const int) -0:57 Constant: -0:57 1 (const int) -0:57 Constant: -0:57 2 (const int) -0:57 subgroupBroadcastFirst ( global highp 3-component vector of float) -0:57 vector swizzle ( temp highp 3-component vector of float) -0:57 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:57 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:57 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:57 Constant: -0:57 2 (const int) -0:57 Constant: -0:57 0 (const int) -0:57 Sequence -0:57 Constant: -0:57 0 (const int) -0:57 Constant: -0:57 1 (const int) -0:57 Constant: -0:57 2 (const int) -0:58 move second child to first child ( temp highp 4-component vector of float) -0:58 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:58 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 Constant: -0:58 1 (const int) -0:58 Constant: -0:58 0 (const int) -0:58 subgroupBroadcastFirst ( global highp 4-component vector of float) -0:58 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:58 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 Constant: -0:58 3 (const int) -0:58 Constant: -0:58 0 (const int) -0:60 move second child to first child ( temp highp int) -0:60 direct index ( temp highp int) -0:60 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:60 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 Constant: -0:60 2 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 0 (const int) -0:60 subgroupBroadcastFirst ( global highp int) -0:60 direct index ( temp highp int) -0:60 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:60 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 0 (const int) -0:61 move second child to first child ( temp highp 2-component vector of int) -0:61 vector swizzle ( temp highp 2-component vector of int) -0:61 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:61 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 Constant: -0:61 2 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 Sequence -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 subgroupBroadcastFirst ( global highp 2-component vector of int) -0:61 vector swizzle ( temp highp 2-component vector of int) -0:61 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:61 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 Constant: -0:61 1 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 Sequence -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:62 move second child to first child ( temp highp 3-component vector of int) -0:62 vector swizzle ( temp highp 3-component vector of int) -0:62 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:62 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:62 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:62 Constant: -0:62 2 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 Sequence -0:62 Constant: -0:62 0 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 Constant: -0:62 2 (const int) -0:62 subgroupBroadcastFirst ( global highp 3-component vector of int) -0:62 vector swizzle ( temp highp 3-component vector of int) -0:62 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:62 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:62 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:62 Constant: -0:62 2 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 Sequence -0:62 Constant: -0:62 0 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 Constant: -0:62 2 (const int) -0:63 move second child to first child ( temp highp 4-component vector of int) -0:63 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:63 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 Constant: -0:63 2 (const int) -0:63 Constant: -0:63 1 (const int) -0:63 subgroupBroadcastFirst ( global highp 4-component vector of int) -0:63 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:63 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 Constant: -0:63 3 (const int) -0:63 Constant: -0:63 1 (const int) -0:65 move second child to first child ( temp highp uint) -0:65 direct index ( temp highp uint) -0:65 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:65 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 Constant: -0:65 3 (const int) -0:65 Constant: -0:65 2 (const int) -0:65 Constant: -0:65 0 (const int) -0:65 subgroupBroadcastFirst ( global highp uint) -0:65 direct index ( temp highp uint) -0:65 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:65 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 2 (const int) -0:65 Constant: -0:65 0 (const int) -0:66 move second child to first child ( temp highp 2-component vector of uint) -0:66 vector swizzle ( temp highp 2-component vector of uint) -0:66 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:66 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 Constant: -0:66 3 (const int) -0:66 Constant: -0:66 2 (const int) -0:66 Sequence -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 subgroupBroadcastFirst ( global highp 2-component vector of uint) -0:66 vector swizzle ( temp highp 2-component vector of uint) -0:66 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:66 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 2 (const int) -0:66 Sequence -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const int) -0:67 move second child to first child ( temp highp 3-component vector of uint) -0:67 vector swizzle ( temp highp 3-component vector of uint) -0:67 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:67 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:67 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:67 Constant: -0:67 3 (const int) -0:67 Constant: -0:67 2 (const int) -0:67 Sequence -0:67 Constant: -0:67 0 (const int) -0:67 Constant: -0:67 1 (const int) -0:67 Constant: -0:67 2 (const int) -0:67 subgroupBroadcastFirst ( global highp 3-component vector of uint) -0:67 vector swizzle ( temp highp 3-component vector of uint) -0:67 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:67 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:67 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:67 Constant: -0:67 2 (const int) -0:67 Constant: -0:67 2 (const int) -0:67 Sequence -0:67 Constant: -0:67 0 (const int) -0:67 Constant: -0:67 1 (const int) -0:67 Constant: -0:67 2 (const int) -0:68 move second child to first child ( temp highp 4-component vector of uint) -0:68 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:68 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 Constant: -0:68 3 (const int) -0:68 Constant: -0:68 2 (const int) -0:68 subgroupBroadcastFirst ( global highp 4-component vector of uint) -0:68 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:68 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 Constant: -0:68 3 (const int) -0:68 Constant: -0:68 2 (const int) -0:70 move second child to first child ( temp highp int) -0:70 direct index ( temp highp int) -0:70 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:70 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 1 (const int) -0:70 Constant: -0:70 0 (const int) -0:70 Convert bool to int ( temp highp int) -0:70 subgroupBroadcastFirst ( global bool) -0:70 Compare Less Than ( temp bool) -0:70 direct index ( temp highp int) -0:70 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:70 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 1 (const int) -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 0 (const int) -0:71 move second child to first child ( temp highp 2-component vector of int) -0:71 vector swizzle ( temp highp 2-component vector of int) -0:71 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:71 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 Constant: -0:71 0 (const int) -0:71 Constant: -0:71 1 (const int) -0:71 Sequence -0:71 Constant: -0:71 0 (const int) -0:71 Constant: -0:71 1 (const int) -0:71 Convert bool to int ( temp highp 2-component vector of int) -0:71 subgroupBroadcastFirst ( global 2-component vector of bool) -0:71 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:71 vector swizzle ( temp highp 2-component vector of int) -0:71 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:71 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 Constant: -0:71 1 (const int) -0:71 Constant: -0:71 1 (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:71 0 (const int) -0:72 move second child to first child ( temp highp 3-component vector of int) -0:72 vector swizzle ( temp highp 3-component vector of int) -0:72 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:72 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:72 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:72 Constant: -0:72 0 (const int) -0:72 Constant: -0:72 1 (const int) -0:72 Sequence -0:72 Constant: -0:72 0 (const int) -0:72 Constant: -0:72 1 (const int) -0:72 Constant: -0:72 2 (const int) -0:72 Convert bool to int ( temp highp 3-component vector of int) -0:72 subgroupBroadcastFirst ( global 3-component vector of bool) -0:72 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:72 vector swizzle ( temp highp 3-component vector of int) -0:72 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:72 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:72 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:72 Constant: -0:72 1 (const int) -0:72 Constant: -0:72 1 (const int) -0:72 Sequence -0:72 Constant: -0:72 0 (const int) -0:72 Constant: -0:72 1 (const int) -0:72 Constant: -0:72 2 (const int) -0:72 Constant: -0:72 0 (const int) -0:72 0 (const int) -0:72 0 (const int) -0:73 move second child to first child ( temp highp 4-component vector of int) -0:73 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:73 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 Constant: -0:73 0 (const int) -0:73 Constant: -0:73 1 (const int) -0:73 Convert bool to int ( temp highp 4-component vector of int) -0:73 subgroupBroadcastFirst ( global 4-component vector of bool) -0:73 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:73 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:73 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 Constant: -0:73 1 (const int) -0:73 Constant: -0:73 1 (const int) -0:73 Constant: -0:73 0 (const int) -0:73 0 (const int) -0:73 0 (const int) -0:73 0 (const int) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const highp 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) - - -Linked compute stage: - - -Shader version: 320 -Requested GL_KHR_shader_subgroup_ballot -Requested GL_KHR_shader_subgroup_basic -local_size = (8, 8, 1) -0:? Sequence -0:14 Function Definition: main( ( global void) -0:14 Function Parameters: -0:16 Sequence -0:16 Sequence -0:16 move second child to first child ( temp highp uint) -0:16 'invocation' ( temp highp uint) -0:16 mod ( temp mediump uint) -0:16 add ( temp mediump uint) -0:16 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID) -0:16 'gl_SubgroupSize' ( in mediump uint SubgroupSize) -0:16 Constant: -0:16 4 (const uint) -0:18 Sequence -0:18 move second child to first child ( temp highp 4-component vector of uint) -0:18 'relMask' ( temp highp 4-component vector of uint) -0:21 add ( temp highp 4-component vector of uint) -0:20 add ( temp highp 4-component vector of uint) -0:19 add ( temp highp 4-component vector of uint) -0:18 add ( temp highp 4-component vector of uint) -0:18 'gl_SubgroupEqMask' ( in highp 4-component vector of uint SubgroupEqMask) -0:19 'gl_SubgroupGeMask' ( in highp 4-component vector of uint SubgroupGeMask) -0:20 'gl_SubgroupGtMask' ( in highp 4-component vector of uint SubgroupGtMask) -0:21 'gl_SubgroupLeMask' ( in highp 4-component vector of uint SubgroupLeMask) -0:22 'gl_SubgroupLtMask' ( in highp 4-component vector of uint SubgroupLtMask) -0:24 Sequence -0:24 move second child to first child ( temp highp 4-component vector of uint) -0:24 'result' ( temp highp 4-component vector of uint) -0:24 subgroupBallot ( global highp 4-component vector of uint) -0:24 Constant: -0:24 true (const bool) -0:26 move second child to first child ( temp highp uint) -0:26 direct index ( temp highp uint) -0:26 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 Constant: -0:26 0 (const int) -0:26 subgroupBallotBitCount ( global highp uint) -0:26 'result' ( temp highp 4-component vector of uint) -0:27 move second child to first child ( temp highp uint) -0:27 direct index ( temp highp uint) -0:27 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:27 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 2 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Test condition and select ( temp highp uint) -0:27 Condition -0:27 subgroupBallotBitExtract ( global bool, operation at highp) -0:27 'result' ( temp highp 4-component vector of uint) -0:27 Constant: -0:27 0 (const uint) -0:27 true case -0:27 Constant: -0:27 1 (const uint) -0:27 false case -0:27 Constant: -0:27 0 (const uint) -0:28 move second child to first child ( temp highp uint) -0:28 direct index ( temp highp uint) -0:28 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 2 (const int) -0:28 Constant: -0:28 2 (const int) -0:28 add ( temp highp uint) -0:28 subgroupBallotInclusiveBitCount ( global highp uint) -0:28 'result' ( temp highp 4-component vector of uint) -0:28 subgroupBallotExclusiveBitCount ( global highp uint) -0:28 'result' ( temp highp 4-component vector of uint) -0:29 move second child to first child ( temp highp uint) -0:29 direct index ( temp highp uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 3 (const int) -0:29 add ( temp highp uint) -0:29 subgroupBallotFindLSB ( global highp uint) -0:29 'result' ( temp highp 4-component vector of uint) -0:29 subgroupBallotFindMSB ( global highp uint) -0:29 'result' ( temp highp 4-component vector of uint) -0:31 Test condition and select ( temp void) -0:31 Condition -0:31 logical-and ( temp bool) -0:31 Compare Equal ( temp bool) -0:31 'relMask' ( temp highp 4-component vector of uint) -0:31 'result' ( temp highp 4-component vector of uint) -0:31 subgroupInverseBallot ( global bool, operation at highp) -0:31 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 true case -0:33 Sequence -0:33 move second child to first child ( temp highp float) -0:33 direct index ( temp highp float) -0:33 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 subgroupBroadcast ( global highp float) -0:33 direct index ( temp highp float) -0:33 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -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 Constant: -0:33 3 (const uint) -0:34 move second child to first child ( temp highp 2-component vector of float) -0:34 vector swizzle ( temp highp 2-component vector of float) -0:34 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 Constant: -0:34 1 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 Sequence -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 subgroupBroadcast ( global highp 2-component vector of float) -0:34 vector swizzle ( temp highp 2-component vector of float) -0:34 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 Constant: -0:34 1 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 Sequence -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 Constant: -0:34 3 (const uint) -0:35 move second child to first child ( temp highp 3-component vector of float) -0:35 vector swizzle ( temp highp 3-component vector of float) -0:35 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 2 (const int) -0:35 subgroupBroadcast ( global highp 3-component vector of float) -0:35 vector swizzle ( temp highp 3-component vector of float) -0:35 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 Constant: -0:35 2 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 2 (const int) -0:35 Constant: -0:35 3 (const uint) -0:36 move second child to first child ( temp highp 4-component vector of float) -0:36 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 subgroupBroadcast ( global highp 4-component vector of float) -0:36 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 Constant: -0:36 3 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 3 (const uint) -0:38 move second child to first child ( temp highp int) -0:38 direct index ( temp highp int) -0:38 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 Constant: -0:38 2 (const int) -0:38 Constant: -0:38 1 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 subgroupBroadcast ( global highp int) -0:38 direct index ( temp highp int) -0:38 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 1 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 2 (const uint) -0:39 move second child to first child ( temp highp 2-component vector of int) -0:39 vector swizzle ( temp highp 2-component vector of int) -0:39 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 Constant: -0:39 2 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 Sequence -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 subgroupBroadcast ( global highp 2-component vector of int) -0:39 vector swizzle ( temp highp 2-component vector of int) -0:39 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 Sequence -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 2 (const uint) -0:40 move second child to first child ( temp highp 3-component vector of int) -0:40 vector swizzle ( temp highp 3-component vector of int) -0:40 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 Constant: -0:40 2 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 2 (const int) -0:40 subgroupBroadcast ( global highp 3-component vector of int) -0:40 vector swizzle ( temp highp 3-component vector of int) -0:40 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 Constant: -0:40 2 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 2 (const int) -0:40 Constant: -0:40 2 (const uint) -0:41 move second child to first child ( temp highp 4-component vector of int) -0:41 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 Constant: -0:41 2 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 subgroupBroadcast ( global highp 4-component vector of int) -0:41 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 Constant: -0:41 3 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 2 (const uint) -0:43 move second child to first child ( temp highp uint) -0:43 direct index ( temp highp uint) -0:43 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:43 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 Constant: -0:43 3 (const int) -0:43 Constant: -0:43 2 (const int) -0:43 Constant: -0:43 0 (const int) -0:43 subgroupBroadcast ( global highp uint) -0:43 direct index ( temp highp uint) -0:43 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:43 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 Constant: -0:43 0 (const int) -0:43 Constant: -0:43 2 (const int) -0:43 Constant: -0:43 0 (const int) -0:43 Constant: -0:43 1 (const uint) -0:44 move second child to first child ( temp highp 2-component vector of uint) -0:44 vector swizzle ( temp highp 2-component vector of uint) -0:44 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 Constant: -0:44 3 (const int) -0:44 Constant: -0:44 2 (const int) -0:44 Sequence -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 1 (const int) -0:44 subgroupBroadcast ( global highp 2-component vector of uint) -0:44 vector swizzle ( temp highp 2-component vector of uint) -0:44 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 Constant: -0:44 1 (const int) -0:44 Constant: -0:44 2 (const int) -0:44 Sequence -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 1 (const int) -0:44 Constant: -0:44 1 (const uint) -0:45 move second child to first child ( temp highp 3-component vector of uint) -0:45 vector swizzle ( temp highp 3-component vector of uint) -0:45 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 Constant: -0:45 3 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 subgroupBroadcast ( global highp 3-component vector of uint) -0:45 vector swizzle ( temp highp 3-component vector of uint) -0:45 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 Constant: -0:45 2 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 Constant: -0:45 1 (const uint) -0:46 move second child to first child ( temp highp 4-component vector of uint) -0:46 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 Constant: -0:46 3 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 subgroupBroadcast ( global highp 4-component vector of uint) -0:46 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 Constant: -0:46 3 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 Constant: -0:46 1 (const uint) -0:48 move second child to first child ( temp highp int) -0:48 direct index ( temp highp int) -0:48 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:48 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 Constant: -0:48 0 (const int) -0:48 Constant: -0:48 1 (const int) -0:48 Constant: -0:48 0 (const int) -0:48 Convert bool to int ( temp highp int) -0:48 subgroupBroadcast ( global bool) -0:48 Compare Less Than ( temp bool) -0:48 direct index ( temp highp int) -0:48 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:48 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 Constant: -0:48 0 (const int) -0:48 Constant: -0:48 1 (const int) -0:48 Constant: -0:48 0 (const int) -0:48 Constant: -0:48 0 (const int) -0:48 Constant: -0:48 1 (const uint) -0:49 move second child to first child ( temp highp 2-component vector of int) -0:49 vector swizzle ( temp highp 2-component vector of int) -0:49 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:49 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 1 (const int) -0:49 Sequence -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 1 (const int) -0:49 Convert bool to int ( temp highp 2-component vector of int) -0:49 subgroupBroadcast ( global 2-component vector of bool) -0:49 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:49 vector swizzle ( temp highp 2-component vector of int) -0:49 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:49 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 Constant: -0:49 1 (const int) -0:49 Constant: -0:49 1 (const int) -0:49 Sequence -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 1 (const int) -0:49 Constant: -0:49 0 (const int) -0:49 0 (const int) -0:49 Constant: -0:49 1 (const uint) -0:50 move second child to first child ( temp highp 3-component vector of int) -0:50 vector swizzle ( temp highp 3-component vector of int) -0:50 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 Convert bool to int ( temp highp 3-component vector of int) -0:50 subgroupBroadcast ( global 3-component vector of bool) -0:50 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:50 vector swizzle ( temp highp 3-component vector of int) -0:50 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 Constant: -0:50 0 (const int) -0:50 0 (const int) -0:50 0 (const int) -0:50 Constant: -0:50 1 (const uint) -0:51 move second child to first child ( temp highp 4-component vector of int) -0:51 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 Convert bool to int ( temp highp 4-component vector of int) -0:51 subgroupBroadcast ( global 4-component vector of bool) -0:51 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:51 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 0 (const int) -0:51 0 (const int) -0:51 0 (const int) -0:51 0 (const int) -0:51 Constant: -0:51 1 (const uint) -0:31 false case -0:55 Sequence -0:55 move second child to first child ( temp highp float) -0:55 direct index ( temp highp float) -0:55 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 0 (const int) -0:55 subgroupBroadcastFirst ( global highp float) -0:55 direct index ( temp highp float) -0:55 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 0 (const int) -0:56 move second child to first child ( temp highp 2-component vector of float) -0:56 vector swizzle ( temp highp 2-component vector of float) -0:56 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 0 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 subgroupBroadcastFirst ( global highp 2-component vector of float) -0:56 vector swizzle ( temp highp 2-component vector of float) -0:56 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 0 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:57 move second child to first child ( temp highp 3-component vector of float) -0:57 vector swizzle ( temp highp 3-component vector of float) -0:57 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:57 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:57 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:57 Constant: -0:57 1 (const int) -0:57 Constant: -0:57 0 (const int) -0:57 Sequence -0:57 Constant: -0:57 0 (const int) -0:57 Constant: -0:57 1 (const int) -0:57 Constant: -0:57 2 (const int) -0:57 subgroupBroadcastFirst ( global highp 3-component vector of float) -0:57 vector swizzle ( temp highp 3-component vector of float) -0:57 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:57 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:57 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:57 Constant: -0:57 2 (const int) -0:57 Constant: -0:57 0 (const int) -0:57 Sequence -0:57 Constant: -0:57 0 (const int) -0:57 Constant: -0:57 1 (const int) -0:57 Constant: -0:57 2 (const int) -0:58 move second child to first child ( temp highp 4-component vector of float) -0:58 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:58 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 Constant: -0:58 1 (const int) -0:58 Constant: -0:58 0 (const int) -0:58 subgroupBroadcastFirst ( global highp 4-component vector of float) -0:58 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:58 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 Constant: -0:58 3 (const int) -0:58 Constant: -0:58 0 (const int) -0:60 move second child to first child ( temp highp int) -0:60 direct index ( temp highp int) -0:60 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:60 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 Constant: -0:60 2 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 0 (const int) -0:60 subgroupBroadcastFirst ( global highp int) -0:60 direct index ( temp highp int) -0:60 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:60 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 0 (const int) -0:61 move second child to first child ( temp highp 2-component vector of int) -0:61 vector swizzle ( temp highp 2-component vector of int) -0:61 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:61 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 Constant: -0:61 2 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 Sequence -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 subgroupBroadcastFirst ( global highp 2-component vector of int) -0:61 vector swizzle ( temp highp 2-component vector of int) -0:61 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:61 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 Constant: -0:61 1 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 Sequence -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:62 move second child to first child ( temp highp 3-component vector of int) -0:62 vector swizzle ( temp highp 3-component vector of int) -0:62 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:62 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:62 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:62 Constant: -0:62 2 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 Sequence -0:62 Constant: -0:62 0 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 Constant: -0:62 2 (const int) -0:62 subgroupBroadcastFirst ( global highp 3-component vector of int) -0:62 vector swizzle ( temp highp 3-component vector of int) -0:62 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:62 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:62 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:62 Constant: -0:62 2 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 Sequence -0:62 Constant: -0:62 0 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 Constant: -0:62 2 (const int) -0:63 move second child to first child ( temp highp 4-component vector of int) -0:63 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:63 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 Constant: -0:63 2 (const int) -0:63 Constant: -0:63 1 (const int) -0:63 subgroupBroadcastFirst ( global highp 4-component vector of int) -0:63 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:63 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 Constant: -0:63 3 (const int) -0:63 Constant: -0:63 1 (const int) -0:65 move second child to first child ( temp highp uint) -0:65 direct index ( temp highp uint) -0:65 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:65 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 Constant: -0:65 3 (const int) -0:65 Constant: -0:65 2 (const int) -0:65 Constant: -0:65 0 (const int) -0:65 subgroupBroadcastFirst ( global highp uint) -0:65 direct index ( temp highp uint) -0:65 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:65 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 2 (const int) -0:65 Constant: -0:65 0 (const int) -0:66 move second child to first child ( temp highp 2-component vector of uint) -0:66 vector swizzle ( temp highp 2-component vector of uint) -0:66 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:66 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 Constant: -0:66 3 (const int) -0:66 Constant: -0:66 2 (const int) -0:66 Sequence -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 subgroupBroadcastFirst ( global highp 2-component vector of uint) -0:66 vector swizzle ( temp highp 2-component vector of uint) -0:66 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:66 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 2 (const int) -0:66 Sequence -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const int) -0:67 move second child to first child ( temp highp 3-component vector of uint) -0:67 vector swizzle ( temp highp 3-component vector of uint) -0:67 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:67 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:67 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:67 Constant: -0:67 3 (const int) -0:67 Constant: -0:67 2 (const int) -0:67 Sequence -0:67 Constant: -0:67 0 (const int) -0:67 Constant: -0:67 1 (const int) -0:67 Constant: -0:67 2 (const int) -0:67 subgroupBroadcastFirst ( global highp 3-component vector of uint) -0:67 vector swizzle ( temp highp 3-component vector of uint) -0:67 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:67 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:67 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:67 Constant: -0:67 2 (const int) -0:67 Constant: -0:67 2 (const int) -0:67 Sequence -0:67 Constant: -0:67 0 (const int) -0:67 Constant: -0:67 1 (const int) -0:67 Constant: -0:67 2 (const int) -0:68 move second child to first child ( temp highp 4-component vector of uint) -0:68 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:68 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 Constant: -0:68 3 (const int) -0:68 Constant: -0:68 2 (const int) -0:68 subgroupBroadcastFirst ( global highp 4-component vector of uint) -0:68 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:68 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 Constant: -0:68 3 (const int) -0:68 Constant: -0:68 2 (const int) -0:70 move second child to first child ( temp highp int) -0:70 direct index ( temp highp int) -0:70 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:70 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 1 (const int) -0:70 Constant: -0:70 0 (const int) -0:70 Convert bool to int ( temp highp int) -0:70 subgroupBroadcastFirst ( global bool) -0:70 Compare Less Than ( temp bool) -0:70 direct index ( temp highp int) -0:70 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:70 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 1 (const int) -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 0 (const int) -0:71 move second child to first child ( temp highp 2-component vector of int) -0:71 vector swizzle ( temp highp 2-component vector of int) -0:71 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:71 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 Constant: -0:71 0 (const int) -0:71 Constant: -0:71 1 (const int) -0:71 Sequence -0:71 Constant: -0:71 0 (const int) -0:71 Constant: -0:71 1 (const int) -0:71 Convert bool to int ( temp highp 2-component vector of int) -0:71 subgroupBroadcastFirst ( global 2-component vector of bool) -0:71 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:71 vector swizzle ( temp highp 2-component vector of int) -0:71 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:71 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 Constant: -0:71 1 (const int) -0:71 Constant: -0:71 1 (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:71 0 (const int) -0:72 move second child to first child ( temp highp 3-component vector of int) -0:72 vector swizzle ( temp highp 3-component vector of int) -0:72 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:72 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:72 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:72 Constant: -0:72 0 (const int) -0:72 Constant: -0:72 1 (const int) -0:72 Sequence -0:72 Constant: -0:72 0 (const int) -0:72 Constant: -0:72 1 (const int) -0:72 Constant: -0:72 2 (const int) -0:72 Convert bool to int ( temp highp 3-component vector of int) -0:72 subgroupBroadcastFirst ( global 3-component vector of bool) -0:72 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:72 vector swizzle ( temp highp 3-component vector of int) -0:72 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:72 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:72 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:72 Constant: -0:72 1 (const int) -0:72 Constant: -0:72 1 (const int) -0:72 Sequence -0:72 Constant: -0:72 0 (const int) -0:72 Constant: -0:72 1 (const int) -0:72 Constant: -0:72 2 (const int) -0:72 Constant: -0:72 0 (const int) -0:72 0 (const int) -0:72 0 (const int) -0:73 move second child to first child ( temp highp 4-component vector of int) -0:73 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:73 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 Constant: -0:73 0 (const int) -0:73 Constant: -0:73 1 (const int) -0:73 Convert bool to int ( temp highp 4-component vector of int) -0:73 subgroupBroadcastFirst ( global 4-component vector of bool) -0:73 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:73 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:73 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 Constant: -0:73 1 (const int) -0:73 Constant: -0:73 1 (const int) -0:73 Constant: -0:73 0 (const int) -0:73 0 (const int) -0:73 0 (const int) -0:73 0 (const int) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const highp 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) - diff --git a/deps/glslang/Test/baseResults/glsl.es320.subgroupBallotNeg.comp.out b/deps/glslang/Test/baseResults/glsl.es320.subgroupBallotNeg.comp.out deleted file mode 100644 index 37bbfab7..00000000 --- a/deps/glslang/Test/baseResults/glsl.es320.subgroupBallotNeg.comp.out +++ /dev/null @@ -1,275 +0,0 @@ -glsl.es320.subgroupBallotNeg.comp -ERROR: 0:31: 'id' : argument must be compile-time constant -ERROR: 1 compilation errors. No code generated. - - -Shader version: 450 -Requested GL_KHR_shader_subgroup_ballot -Requested GL_KHR_shader_subgroup_basic -local_size = (8, 8, 1) -ERROR: node is still EOpNull! -0:14 Function Definition: main( ( global void) -0:14 Function Parameters: -0:16 Sequence -0:16 Sequence -0:16 move second child to first child ( temp uint) -0:16 'invocation' ( temp uint) -0:16 mod ( temp uint) -0:16 add ( temp uint) -0:16 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:16 'gl_SubgroupSize' ( in uint SubgroupSize) -0:16 Constant: -0:16 4 (const uint) -0:18 Sequence -0:18 move second child to first child ( temp 4-component vector of uint) -0:18 'relMask' ( temp 4-component vector of uint) -0:21 add ( temp 4-component vector of uint) -0:20 add ( temp 4-component vector of uint) -0:19 add ( temp 4-component vector of uint) -0:18 add ( temp 4-component vector of uint) -0:18 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask) -0:19 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask) -0:20 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask) -0:21 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask) -0:22 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask) -0:24 Sequence -0:24 move second child to first child ( temp 4-component vector of uint) -0:24 'result' ( temp 4-component vector of uint) -0:24 subgroupBallot ( global 4-component vector of uint) -0:24 Constant: -0:24 true (const bool) -0:26 move second child to first child ( temp uint) -0:26 direct index ( temp uint) -0:26 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4}) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 Constant: -0:26 0 (const int) -0:26 subgroupBallotBitCount ( global uint) -0:26 'result' ( temp 4-component vector of uint) -0:27 move second child to first child ( temp uint) -0:27 direct index ( temp uint) -0:27 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:27 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4}) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 2 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Test condition and select ( temp uint) -0:27 Condition -0:27 subgroupBallotBitExtract ( global bool) -0:27 'result' ( temp 4-component vector of uint) -0:27 Constant: -0:27 0 (const uint) -0:27 true case -0:27 Constant: -0:27 1 (const uint) -0:27 false case -0:27 Constant: -0:27 0 (const uint) -0:28 move second child to first child ( temp uint) -0:28 direct index ( temp uint) -0:28 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 2 (const int) -0:28 Constant: -0:28 2 (const int) -0:28 add ( temp uint) -0:28 subgroupBallotInclusiveBitCount ( global uint) -0:28 'result' ( temp 4-component vector of uint) -0:28 subgroupBallotExclusiveBitCount ( global uint) -0:28 'result' ( temp 4-component vector of uint) -0:29 move second child to first child ( temp uint) -0:29 direct index ( temp uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4}) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 3 (const int) -0:29 add ( temp uint) -0:29 subgroupBallotFindLSB ( global uint) -0:29 'result' ( temp 4-component vector of uint) -0:29 subgroupBallotFindMSB ( global uint) -0:29 'result' ( temp 4-component vector of uint) -0:31 move second child to first child ( temp float) -0:31 direct index ( temp float) -0:31 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4}) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 0 (const int) -0:31 subgroupBroadcast ( global float) -0:31 direct index ( temp float) -0:31 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4}) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 0 (const int) -0:31 'invocation' ( temp uint) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4}) - - -Linked compute stage: - - -Shader version: 450 -Requested GL_KHR_shader_subgroup_ballot -Requested GL_KHR_shader_subgroup_basic -local_size = (8, 8, 1) -ERROR: node is still EOpNull! -0:14 Function Definition: main( ( global void) -0:14 Function Parameters: -0:16 Sequence -0:16 Sequence -0:16 move second child to first child ( temp uint) -0:16 'invocation' ( temp uint) -0:16 mod ( temp uint) -0:16 add ( temp uint) -0:16 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:16 'gl_SubgroupSize' ( in uint SubgroupSize) -0:16 Constant: -0:16 4 (const uint) -0:18 Sequence -0:18 move second child to first child ( temp 4-component vector of uint) -0:18 'relMask' ( temp 4-component vector of uint) -0:21 add ( temp 4-component vector of uint) -0:20 add ( temp 4-component vector of uint) -0:19 add ( temp 4-component vector of uint) -0:18 add ( temp 4-component vector of uint) -0:18 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask) -0:19 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask) -0:20 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask) -0:21 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask) -0:22 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask) -0:24 Sequence -0:24 move second child to first child ( temp 4-component vector of uint) -0:24 'result' ( temp 4-component vector of uint) -0:24 subgroupBallot ( global 4-component vector of uint) -0:24 Constant: -0:24 true (const bool) -0:26 move second child to first child ( temp uint) -0:26 direct index ( temp uint) -0:26 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4}) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 Constant: -0:26 0 (const int) -0:26 subgroupBallotBitCount ( global uint) -0:26 'result' ( temp 4-component vector of uint) -0:27 move second child to first child ( temp uint) -0:27 direct index ( temp uint) -0:27 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:27 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4}) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 2 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Test condition and select ( temp uint) -0:27 Condition -0:27 subgroupBallotBitExtract ( global bool) -0:27 'result' ( temp 4-component vector of uint) -0:27 Constant: -0:27 0 (const uint) -0:27 true case -0:27 Constant: -0:27 1 (const uint) -0:27 false case -0:27 Constant: -0:27 0 (const uint) -0:28 move second child to first child ( temp uint) -0:28 direct index ( temp uint) -0:28 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 2 (const int) -0:28 Constant: -0:28 2 (const int) -0:28 add ( temp uint) -0:28 subgroupBallotInclusiveBitCount ( global uint) -0:28 'result' ( temp 4-component vector of uint) -0:28 subgroupBallotExclusiveBitCount ( global uint) -0:28 'result' ( temp 4-component vector of uint) -0:29 move second child to first child ( temp uint) -0:29 direct index ( temp uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4}) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 3 (const int) -0:29 add ( temp uint) -0:29 subgroupBallotFindLSB ( global uint) -0:29 'result' ( temp 4-component vector of uint) -0:29 subgroupBallotFindMSB ( global uint) -0:29 'result' ( temp 4-component vector of uint) -0:31 move second child to first child ( temp float) -0:31 direct index ( temp float) -0:31 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4}) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 0 (const int) -0:31 subgroupBroadcast ( global float) -0:31 direct index ( temp float) -0:31 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4}) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 0 (const int) -0:31 'invocation' ( temp uint) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4}) - diff --git a/deps/glslang/Test/baseResults/glsl.es320.subgroupBasic.comp.out b/deps/glslang/Test/baseResults/glsl.es320.subgroupBasic.comp.out deleted file mode 100644 index 9a75bada..00000000 --- a/deps/glslang/Test/baseResults/glsl.es320.subgroupBasic.comp.out +++ /dev/null @@ -1,129 +0,0 @@ -glsl.es320.subgroupBasic.comp -Shader version: 320 -Requested GL_KHR_shader_subgroup_basic -local_size = (8, 8, 1) -0:? Sequence -0:12 Function Definition: main( ( global void) -0:12 Function Parameters: -0:14 Sequence -0:14 move second child to first child ( temp highp int) -0:14 indirect index (layout( column_major shared) temp highp int) -0:14 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of highp int) -0:14 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of highp int a}) -0:14 Constant: -0:14 0 (const int) -0:14 'gl_SubgroupSize' ( in mediump uint SubgroupSize) -0:14 Constant: -0:14 1 (const int) -0:15 move second child to first child ( temp highp int) -0:15 indirect index (layout( column_major shared) temp highp int) -0:15 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of highp int) -0:15 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of highp int a}) -0:15 Constant: -0:15 0 (const int) -0:15 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID) -0:15 Constant: -0:15 1 (const int) -0:16 move second child to first child ( temp highp int) -0:16 indirect index (layout( column_major shared) temp highp int) -0:16 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of highp int) -0:16 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of highp int a}) -0:16 Constant: -0:16 0 (const int) -0:16 'gl_NumSubgroups' ( in highp uint NumSubgroups) -0:16 Constant: -0:16 1 (const int) -0:17 move second child to first child ( temp highp int) -0:17 indirect index (layout( column_major shared) temp highp int) -0:17 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of highp int) -0:17 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of highp int a}) -0:17 Constant: -0:17 0 (const int) -0:17 'gl_SubgroupID' ( in highp uint SubgroupID) -0:17 Test condition and select ( temp highp int) -0:17 Condition -0:17 subgroupElect ( global bool) -0:17 true case -0:17 Constant: -0:17 1 (const int) -0:17 false case -0:17 Constant: -0:17 0 (const int) -0:18 subgroupBarrier ( global void) -0:19 subgroupMemoryBarrier ( global void) -0:20 subgroupMemoryBarrierBuffer ( global void) -0:21 subgroupMemoryBarrierShared ( global void) -0:22 subgroupMemoryBarrierImage ( global void) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const highp 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of highp int a}) - - -Linked compute stage: - - -Shader version: 320 -Requested GL_KHR_shader_subgroup_basic -local_size = (8, 8, 1) -0:? Sequence -0:12 Function Definition: main( ( global void) -0:12 Function Parameters: -0:14 Sequence -0:14 move second child to first child ( temp highp int) -0:14 indirect index (layout( column_major shared) temp highp int) -0:14 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of highp int) -0:14 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of highp int a}) -0:14 Constant: -0:14 0 (const int) -0:14 'gl_SubgroupSize' ( in mediump uint SubgroupSize) -0:14 Constant: -0:14 1 (const int) -0:15 move second child to first child ( temp highp int) -0:15 indirect index (layout( column_major shared) temp highp int) -0:15 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of highp int) -0:15 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of highp int a}) -0:15 Constant: -0:15 0 (const int) -0:15 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID) -0:15 Constant: -0:15 1 (const int) -0:16 move second child to first child ( temp highp int) -0:16 indirect index (layout( column_major shared) temp highp int) -0:16 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of highp int) -0:16 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of highp int a}) -0:16 Constant: -0:16 0 (const int) -0:16 'gl_NumSubgroups' ( in highp uint NumSubgroups) -0:16 Constant: -0:16 1 (const int) -0:17 move second child to first child ( temp highp int) -0:17 indirect index (layout( column_major shared) temp highp int) -0:17 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of highp int) -0:17 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of highp int a}) -0:17 Constant: -0:17 0 (const int) -0:17 'gl_SubgroupID' ( in highp uint SubgroupID) -0:17 Test condition and select ( temp highp int) -0:17 Condition -0:17 subgroupElect ( global bool) -0:17 true case -0:17 Constant: -0:17 1 (const int) -0:17 false case -0:17 Constant: -0:17 0 (const int) -0:18 subgroupBarrier ( global void) -0:19 subgroupMemoryBarrier ( global void) -0:20 subgroupMemoryBarrierBuffer ( global void) -0:21 subgroupMemoryBarrierShared ( global void) -0:22 subgroupMemoryBarrierImage ( global void) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const highp 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of highp int a}) - diff --git a/deps/glslang/Test/baseResults/glsl.es320.subgroupClustered.comp.out b/deps/glslang/Test/baseResults/glsl.es320.subgroupClustered.comp.out deleted file mode 100644 index 27251d4e..00000000 --- a/deps/glslang/Test/baseResults/glsl.es320.subgroupClustered.comp.out +++ /dev/null @@ -1,4637 +0,0 @@ -glsl.es320.subgroupClustered.comp -Shader version: 320 -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_clustered -local_size = (8, 1, 1) -0:? Sequence -0:14 Function Definition: main( ( global void) -0:14 Function Parameters: -0:16 Sequence -0:16 Sequence -0:16 move second child to first child ( temp highp uint) -0:16 'invocation' ( temp highp uint) -0:16 mod ( temp mediump uint) -0:16 add ( temp mediump uint) -0:16 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID) -0:16 'gl_SubgroupSize' ( in mediump uint SubgroupSize) -0:16 Constant: -0:16 4 (const uint) -0:18 move second child to first child ( temp highp float) -0:18 direct index ( temp highp float) -0:18 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:18 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 subgroupClusteredAdd ( global highp float) -0:18 direct index ( temp highp float) -0:18 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:18 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 1 (const uint) -0:19 move second child to first child ( temp highp 2-component vector of float) -0:19 vector swizzle ( temp highp 2-component vector of float) -0:19 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:19 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 Sequence -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const int) -0:19 subgroupClusteredAdd ( global highp 2-component vector of float) -0:19 vector swizzle ( temp highp 2-component vector of float) -0:19 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:19 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 Constant: -0:19 1 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 Sequence -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const int) -0:19 Constant: -0:19 1 (const uint) -0:20 move second child to first child ( temp highp 3-component vector of float) -0:20 vector swizzle ( temp highp 3-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:20 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 2 (const int) -0:20 subgroupClusteredAdd ( global highp 3-component vector of float) -0:20 vector swizzle ( temp highp 3-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:20 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 Constant: -0:20 2 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 2 (const int) -0:20 Constant: -0:20 1 (const uint) -0:21 move second child to first child ( temp highp 4-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 subgroupClusteredAdd ( global highp 4-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 Constant: -0:21 3 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const uint) -0:23 move second child to first child ( temp highp int) -0:23 direct index ( temp highp int) -0:23 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 0 (const int) -0:23 subgroupClusteredAdd ( global highp int) -0:23 direct index ( temp highp int) -0:23 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 1 (const uint) -0:24 move second child to first child ( temp highp 2-component vector of int) -0:24 vector swizzle ( temp highp 2-component vector of int) -0:24 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 Sequence -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 subgroupClusteredAdd ( global highp 2-component vector of int) -0:24 vector swizzle ( temp highp 2-component vector of int) -0:24 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 Sequence -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 1 (const uint) -0:25 move second child to first child ( temp highp 3-component vector of int) -0:25 vector swizzle ( temp highp 3-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 subgroupClusteredAdd ( global highp 3-component vector of int) -0:25 vector swizzle ( temp highp 3-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 Constant: -0:25 2 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 Constant: -0:25 1 (const uint) -0:26 move second child to first child ( temp highp 4-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 subgroupClusteredAdd ( global highp 4-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 Constant: -0:26 3 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 1 (const uint) -0:28 move second child to first child ( temp highp uint) -0:28 direct index ( temp highp uint) -0:28 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 Constant: -0:28 2 (const int) -0:28 Constant: -0:28 2 (const int) -0:28 Constant: -0:28 0 (const int) -0:28 subgroupClusteredAdd ( global highp uint) -0:28 direct index ( temp highp uint) -0:28 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 2 (const int) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 1 (const uint) -0:29 move second child to first child ( temp highp 2-component vector of uint) -0:29 vector swizzle ( temp highp 2-component vector of uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 2 (const int) -0:29 Sequence -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 1 (const int) -0:29 subgroupClusteredAdd ( global highp 2-component vector of uint) -0:29 vector swizzle ( temp highp 2-component vector of uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 Constant: -0:29 1 (const int) -0:29 Constant: -0:29 2 (const int) -0:29 Sequence -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 1 (const int) -0:29 Constant: -0:29 1 (const uint) -0:30 move second child to first child ( temp highp 3-component vector of uint) -0:30 vector swizzle ( temp highp 3-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:30 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 Constant: -0:30 2 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 subgroupClusteredAdd ( global highp 3-component vector of uint) -0:30 vector swizzle ( temp highp 3-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:30 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 Constant: -0:30 2 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 Constant: -0:30 1 (const uint) -0:31 move second child to first child ( temp highp 4-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 Constant: -0:31 2 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 subgroupClusteredAdd ( global highp 4-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 Constant: -0:31 3 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 Constant: -0:31 1 (const uint) -0:33 move second child to first child ( temp highp float) -0:33 direct index ( temp highp float) -0:33 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 Constant: -0:33 3 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 subgroupClusteredMul ( global highp float) -0:33 direct index ( temp highp float) -0:33 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -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 Constant: -0:33 1 (const uint) -0:34 move second child to first child ( temp highp 2-component vector of float) -0:34 vector swizzle ( temp highp 2-component vector of float) -0:34 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 Constant: -0:34 3 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 Sequence -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 subgroupClusteredMul ( global highp 2-component vector of float) -0:34 vector swizzle ( temp highp 2-component vector of float) -0:34 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 Constant: -0:34 1 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 Sequence -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 Constant: -0:34 1 (const uint) -0:35 move second child to first child ( temp highp 3-component vector of float) -0:35 vector swizzle ( temp highp 3-component vector of float) -0:35 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 Constant: -0:35 3 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 2 (const int) -0:35 subgroupClusteredMul ( global highp 3-component vector of float) -0:35 vector swizzle ( temp highp 3-component vector of float) -0:35 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 Constant: -0:35 2 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 2 (const int) -0:35 Constant: -0:35 1 (const uint) -0:36 move second child to first child ( temp highp 4-component vector of float) -0:36 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 Constant: -0:36 3 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 subgroupClusteredMul ( global highp 4-component vector of float) -0:36 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 Constant: -0:36 3 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const uint) -0:38 move second child to first child ( temp highp int) -0:38 direct index ( temp highp int) -0:38 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 1 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 subgroupClusteredMul ( global highp int) -0:38 direct index ( temp highp int) -0:38 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 1 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 1 (const uint) -0:39 move second child to first child ( temp highp 2-component vector of int) -0:39 vector swizzle ( temp highp 2-component vector of int) -0:39 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 Sequence -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 subgroupClusteredMul ( global highp 2-component vector of int) -0:39 vector swizzle ( temp highp 2-component vector of int) -0:39 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 Sequence -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 1 (const uint) -0:40 move second child to first child ( temp highp 3-component vector of int) -0:40 vector swizzle ( temp highp 3-component vector of int) -0:40 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 2 (const int) -0:40 subgroupClusteredMul ( global highp 3-component vector of int) -0:40 vector swizzle ( temp highp 3-component vector of int) -0:40 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 Constant: -0:40 2 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 2 (const int) -0:40 Constant: -0:40 1 (const uint) -0:41 move second child to first child ( temp highp 4-component vector of int) -0:41 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 subgroupClusteredMul ( global highp 4-component vector of int) -0:41 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 Constant: -0:41 3 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 1 (const uint) -0:43 move second child to first child ( temp highp uint) -0:43 direct index ( temp highp uint) -0:43 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:43 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 Constant: -0:43 1 (const int) -0:43 Constant: -0:43 2 (const int) -0:43 Constant: -0:43 0 (const int) -0:43 subgroupClusteredMul ( global highp uint) -0:43 direct index ( temp highp uint) -0:43 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:43 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 Constant: -0:43 0 (const int) -0:43 Constant: -0:43 2 (const int) -0:43 Constant: -0:43 0 (const int) -0:43 Constant: -0:43 1 (const uint) -0:44 move second child to first child ( temp highp 2-component vector of uint) -0:44 vector swizzle ( temp highp 2-component vector of uint) -0:44 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 Constant: -0:44 1 (const int) -0:44 Constant: -0:44 2 (const int) -0:44 Sequence -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 1 (const int) -0:44 subgroupClusteredMul ( global highp 2-component vector of uint) -0:44 vector swizzle ( temp highp 2-component vector of uint) -0:44 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 Constant: -0:44 1 (const int) -0:44 Constant: -0:44 2 (const int) -0:44 Sequence -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 1 (const int) -0:44 Constant: -0:44 1 (const uint) -0:45 move second child to first child ( temp highp 3-component vector of uint) -0:45 vector swizzle ( temp highp 3-component vector of uint) -0:45 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 subgroupClusteredMul ( global highp 3-component vector of uint) -0:45 vector swizzle ( temp highp 3-component vector of uint) -0:45 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 Constant: -0:45 2 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 Constant: -0:45 1 (const uint) -0:46 move second child to first child ( temp highp 4-component vector of uint) -0:46 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 subgroupClusteredMul ( global highp 4-component vector of uint) -0:46 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 Constant: -0:46 3 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 Constant: -0:46 1 (const uint) -0:48 move second child to first child ( temp highp float) -0:48 direct index ( temp highp float) -0:48 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:48 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 Constant: -0:48 2 (const int) -0:48 Constant: -0:48 0 (const int) -0:48 Constant: -0:48 0 (const int) -0:48 subgroupClusteredMin ( global highp float) -0:48 direct index ( temp highp float) -0:48 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:48 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 Constant: -0:48 0 (const int) -0:48 Constant: -0:48 0 (const int) -0:48 Constant: -0:48 0 (const int) -0:48 Constant: -0:48 1 (const uint) -0:49 move second child to first child ( temp highp 2-component vector of float) -0:49 vector swizzle ( temp highp 2-component vector of float) -0:49 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:49 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 Constant: -0:49 2 (const int) -0:49 Constant: -0:49 0 (const int) -0:49 Sequence -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 1 (const int) -0:49 subgroupClusteredMin ( global highp 2-component vector of float) -0:49 vector swizzle ( temp highp 2-component vector of float) -0:49 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:49 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 Constant: -0:49 1 (const int) -0:49 Constant: -0:49 0 (const int) -0:49 Sequence -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 1 (const int) -0:49 Constant: -0:49 1 (const uint) -0:50 move second child to first child ( temp highp 3-component vector of float) -0:50 vector swizzle ( temp highp 3-component vector of float) -0:50 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 Constant: -0:50 2 (const int) -0:50 Constant: -0:50 0 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 subgroupClusteredMin ( global highp 3-component vector of float) -0:50 vector swizzle ( temp highp 3-component vector of float) -0:50 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 Constant: -0:50 2 (const int) -0:50 Constant: -0:50 0 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 Constant: -0:50 1 (const uint) -0:51 move second child to first child ( temp highp 4-component vector of float) -0:51 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 Constant: -0:51 2 (const int) -0:51 Constant: -0:51 0 (const int) -0:51 subgroupClusteredMin ( global highp 4-component vector of float) -0:51 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 Constant: -0:51 3 (const int) -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const uint) -0:53 move second child to first child ( temp highp int) -0:53 direct index ( temp highp int) -0:53 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:53 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 Constant: -0:53 3 (const int) -0:53 Constant: -0:53 1 (const int) -0:53 Constant: -0:53 0 (const int) -0:53 subgroupClusteredMin ( global highp int) -0:53 direct index ( temp highp int) -0:53 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:53 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 Constant: -0:53 0 (const int) -0:53 Constant: -0:53 1 (const int) -0:53 Constant: -0:53 0 (const int) -0:53 Constant: -0:53 1 (const uint) -0:54 move second child to first child ( temp highp 2-component vector of int) -0:54 vector swizzle ( temp highp 2-component vector of int) -0:54 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:54 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 Constant: -0:54 3 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 Sequence -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 subgroupClusteredMin ( global highp 2-component vector of int) -0:54 vector swizzle ( temp highp 2-component vector of int) -0:54 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:54 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 Constant: -0:54 1 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 Sequence -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 Constant: -0:54 1 (const uint) -0:55 move second child to first child ( temp highp 3-component vector of int) -0:55 vector swizzle ( temp highp 3-component vector of int) -0:55 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 Constant: -0:55 3 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 2 (const int) -0:55 subgroupClusteredMin ( global highp 3-component vector of int) -0:55 vector swizzle ( temp highp 3-component vector of int) -0:55 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 Constant: -0:55 2 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 2 (const int) -0:55 Constant: -0:55 1 (const uint) -0:56 move second child to first child ( temp highp 4-component vector of int) -0:56 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 Constant: -0:56 3 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 subgroupClusteredMin ( global highp 4-component vector of int) -0:56 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 Constant: -0:56 3 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 1 (const uint) -0:58 move second child to first child ( temp highp uint) -0:58 direct index ( temp highp uint) -0:58 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:58 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 Constant: -0:58 0 (const int) -0:58 Constant: -0:58 2 (const int) -0:58 Constant: -0:58 0 (const int) -0:58 subgroupClusteredMin ( global highp uint) -0:58 direct index ( temp highp uint) -0:58 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:58 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 Constant: -0:58 0 (const int) -0:58 Constant: -0:58 2 (const int) -0:58 Constant: -0:58 0 (const int) -0:58 Constant: -0:58 1 (const uint) -0:59 move second child to first child ( temp highp 2-component vector of uint) -0:59 vector swizzle ( temp highp 2-component vector of uint) -0:59 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:59 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:59 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 2 (const int) -0:59 Sequence -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 1 (const int) -0:59 subgroupClusteredMin ( global highp 2-component vector of uint) -0:59 vector swizzle ( temp highp 2-component vector of uint) -0:59 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:59 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:59 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:59 Constant: -0:59 1 (const int) -0:59 Constant: -0:59 2 (const int) -0:59 Sequence -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 1 (const int) -0:59 Constant: -0:59 1 (const uint) -0:60 move second child to first child ( temp highp 3-component vector of uint) -0:60 vector swizzle ( temp highp 3-component vector of uint) -0:60 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:60 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 2 (const int) -0:60 Sequence -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 2 (const int) -0:60 subgroupClusteredMin ( global highp 3-component vector of uint) -0:60 vector swizzle ( temp highp 3-component vector of uint) -0:60 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:60 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 Constant: -0:60 2 (const int) -0:60 Constant: -0:60 2 (const int) -0:60 Sequence -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 2 (const int) -0:60 Constant: -0:60 1 (const uint) -0:61 move second child to first child ( temp highp 4-component vector of uint) -0:61 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:61 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 2 (const int) -0:61 subgroupClusteredMin ( global highp 4-component vector of uint) -0:61 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:61 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 Constant: -0:61 3 (const int) -0:61 Constant: -0:61 2 (const int) -0:61 Constant: -0:61 1 (const uint) -0:63 move second child to first child ( temp highp float) -0:63 direct index ( temp highp float) -0:63 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:63 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 Constant: -0:63 1 (const int) -0:63 Constant: -0:63 0 (const int) -0:63 Constant: -0:63 0 (const int) -0:63 subgroupClusteredMax ( global highp float) -0:63 direct index ( temp highp float) -0:63 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:63 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 Constant: -0:63 0 (const int) -0:63 Constant: -0:63 0 (const int) -0:63 Constant: -0:63 0 (const int) -0:63 Constant: -0:63 1 (const uint) -0:64 move second child to first child ( temp highp 2-component vector of float) -0:64 vector swizzle ( temp highp 2-component vector of float) -0:64 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:64 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:64 Constant: -0:64 1 (const int) -0:64 Constant: -0:64 0 (const int) -0:64 Sequence -0:64 Constant: -0:64 0 (const int) -0:64 Constant: -0:64 1 (const int) -0:64 subgroupClusteredMax ( global highp 2-component vector of float) -0:64 vector swizzle ( temp highp 2-component vector of float) -0:64 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:64 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:64 Constant: -0:64 1 (const int) -0:64 Constant: -0:64 0 (const int) -0:64 Sequence -0:64 Constant: -0:64 0 (const int) -0:64 Constant: -0:64 1 (const int) -0:64 Constant: -0:64 1 (const uint) -0:65 move second child to first child ( temp highp 3-component vector of float) -0:65 vector swizzle ( temp highp 3-component vector of float) -0:65 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:65 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 Constant: -0:65 1 (const int) -0:65 Constant: -0:65 0 (const int) -0:65 Sequence -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Constant: -0:65 2 (const int) -0:65 subgroupClusteredMax ( global highp 3-component vector of float) -0:65 vector swizzle ( temp highp 3-component vector of float) -0:65 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:65 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 Constant: -0:65 2 (const int) -0:65 Constant: -0:65 0 (const int) -0:65 Sequence -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Constant: -0:65 2 (const int) -0:65 Constant: -0:65 1 (const uint) -0:66 move second child to first child ( temp highp 4-component vector of float) -0:66 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:66 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 0 (const int) -0:66 subgroupClusteredMax ( global highp 4-component vector of float) -0:66 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:66 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 Constant: -0:66 3 (const int) -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const uint) -0:68 move second child to first child ( temp highp int) -0:68 direct index ( temp highp int) -0:68 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:68 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 Constant: -0:68 2 (const int) -0:68 Constant: -0:68 1 (const int) -0:68 Constant: -0:68 0 (const int) -0:68 subgroupClusteredMax ( global highp int) -0:68 direct index ( temp highp int) -0:68 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:68 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 Constant: -0:68 0 (const int) -0:68 Constant: -0:68 1 (const int) -0:68 Constant: -0:68 0 (const int) -0:68 Constant: -0:68 1 (const uint) -0:69 move second child to first child ( temp highp 2-component vector of int) -0:69 vector swizzle ( temp highp 2-component vector of int) -0:69 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:69 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:69 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:69 Constant: -0:69 2 (const int) -0:69 Constant: -0:69 1 (const int) -0:69 Sequence -0:69 Constant: -0:69 0 (const int) -0:69 Constant: -0:69 1 (const int) -0:69 subgroupClusteredMax ( global highp 2-component vector of int) -0:69 vector swizzle ( temp highp 2-component vector of int) -0:69 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:69 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:69 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:69 Constant: -0:69 1 (const int) -0:69 Constant: -0:69 1 (const int) -0:69 Sequence -0:69 Constant: -0:69 0 (const int) -0:69 Constant: -0:69 1 (const int) -0:69 Constant: -0:69 1 (const uint) -0:70 move second child to first child ( temp highp 3-component vector of int) -0:70 vector swizzle ( temp highp 3-component vector of int) -0:70 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:70 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 Constant: -0:70 2 (const int) -0:70 Constant: -0:70 1 (const int) -0:70 Sequence -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 1 (const int) -0:70 Constant: -0:70 2 (const int) -0:70 subgroupClusteredMax ( global highp 3-component vector of int) -0:70 vector swizzle ( temp highp 3-component vector of int) -0:70 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:70 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 Constant: -0:70 2 (const int) -0:70 Constant: -0:70 1 (const int) -0:70 Sequence -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 1 (const int) -0:70 Constant: -0:70 2 (const int) -0:70 Constant: -0:70 1 (const uint) -0:71 move second child to first child ( temp highp 4-component vector of int) -0:71 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:71 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 Constant: -0:71 2 (const int) -0:71 Constant: -0:71 1 (const int) -0:71 subgroupClusteredMax ( global highp 4-component vector of int) -0:71 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:71 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 Constant: -0:71 3 (const int) -0:71 Constant: -0:71 1 (const int) -0:71 Constant: -0:71 1 (const uint) -0:73 move second child to first child ( temp highp uint) -0:73 direct index ( temp highp uint) -0:73 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:73 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 Constant: -0:73 3 (const int) -0:73 Constant: -0:73 2 (const int) -0:73 Constant: -0:73 0 (const int) -0:73 subgroupClusteredMax ( global highp uint) -0:73 direct index ( temp highp uint) -0:73 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:73 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 Constant: -0:73 0 (const int) -0:73 Constant: -0:73 2 (const int) -0:73 Constant: -0:73 0 (const int) -0:73 Constant: -0:73 1 (const uint) -0:74 move second child to first child ( temp highp 2-component vector of uint) -0:74 vector swizzle ( temp highp 2-component vector of uint) -0:74 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:74 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:74 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:74 Constant: -0:74 3 (const int) -0:74 Constant: -0:74 2 (const int) -0:74 Sequence -0:74 Constant: -0:74 0 (const int) -0:74 Constant: -0:74 1 (const int) -0:74 subgroupClusteredMax ( global highp 2-component vector of uint) -0:74 vector swizzle ( temp highp 2-component vector of uint) -0:74 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:74 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:74 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:74 Constant: -0:74 1 (const int) -0:74 Constant: -0:74 2 (const int) -0:74 Sequence -0:74 Constant: -0:74 0 (const int) -0:74 Constant: -0:74 1 (const int) -0:74 Constant: -0:74 1 (const uint) -0:75 move second child to first child ( temp highp 3-component vector of uint) -0:75 vector swizzle ( temp highp 3-component vector of uint) -0:75 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:75 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:75 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:75 Constant: -0:75 3 (const int) -0:75 Constant: -0:75 2 (const int) -0:75 Sequence -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 1 (const int) -0:75 Constant: -0:75 2 (const int) -0:75 subgroupClusteredMax ( global highp 3-component vector of uint) -0:75 vector swizzle ( temp highp 3-component vector of uint) -0:75 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:75 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:75 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:75 Constant: -0:75 2 (const int) -0:75 Constant: -0:75 2 (const int) -0:75 Sequence -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 1 (const int) -0:75 Constant: -0:75 2 (const int) -0:75 Constant: -0:75 1 (const uint) -0:76 move second child to first child ( temp highp 4-component vector of uint) -0:76 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:76 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:76 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:76 Constant: -0:76 3 (const int) -0:76 Constant: -0:76 2 (const int) -0:76 subgroupClusteredMax ( global highp 4-component vector of uint) -0:76 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:76 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:76 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:76 Constant: -0:76 3 (const int) -0:76 Constant: -0:76 2 (const int) -0:76 Constant: -0:76 1 (const uint) -0:78 move second child to first child ( temp highp int) -0:78 direct index ( temp highp int) -0:78 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:78 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:78 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:78 Constant: -0:78 0 (const int) -0:78 Constant: -0:78 1 (const int) -0:78 Constant: -0:78 0 (const int) -0:78 subgroupClusteredAnd ( global highp int) -0:78 direct index ( temp highp int) -0:78 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:78 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:78 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:78 Constant: -0:78 0 (const int) -0:78 Constant: -0:78 1 (const int) -0:78 Constant: -0:78 0 (const int) -0:78 Constant: -0:78 1 (const uint) -0:79 move second child to first child ( temp highp 2-component vector of int) -0:79 vector swizzle ( temp highp 2-component vector of int) -0:79 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:79 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:79 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 1 (const int) -0:79 Sequence -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 1 (const int) -0:79 subgroupClusteredAnd ( global highp 2-component vector of int) -0:79 vector swizzle ( temp highp 2-component vector of int) -0:79 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:79 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:79 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:79 Constant: -0:79 1 (const int) -0:79 Constant: -0:79 1 (const int) -0:79 Sequence -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 1 (const int) -0:79 Constant: -0:79 1 (const uint) -0:80 move second child to first child ( temp highp 3-component vector of int) -0:80 vector swizzle ( temp highp 3-component vector of int) -0:80 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:80 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:80 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 1 (const int) -0:80 Sequence -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 1 (const int) -0:80 Constant: -0:80 2 (const int) -0:80 subgroupClusteredAnd ( global highp 3-component vector of int) -0:80 vector swizzle ( temp highp 3-component vector of int) -0:80 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:80 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:80 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:80 Constant: -0:80 2 (const int) -0:80 Constant: -0:80 1 (const int) -0:80 Sequence -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 1 (const int) -0:80 Constant: -0:80 2 (const int) -0:80 Constant: -0:80 1 (const uint) -0:81 move second child to first child ( temp highp 4-component vector of int) -0:81 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:81 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:81 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 1 (const int) -0:81 subgroupClusteredAnd ( global highp 4-component vector of int) -0:81 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:81 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:81 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:81 Constant: -0:81 3 (const int) -0:81 Constant: -0:81 1 (const int) -0:81 Constant: -0:81 1 (const uint) -0:83 move second child to first child ( temp highp uint) -0:83 direct index ( temp highp uint) -0:83 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:83 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:83 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:83 Constant: -0:83 1 (const int) -0:83 Constant: -0:83 2 (const int) -0:83 Constant: -0:83 0 (const int) -0:83 subgroupClusteredAnd ( global highp uint) -0:83 direct index ( temp highp uint) -0:83 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:83 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:83 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:83 Constant: -0:83 0 (const int) -0:83 Constant: -0:83 2 (const int) -0:83 Constant: -0:83 0 (const int) -0:83 Constant: -0:83 1 (const uint) -0:84 move second child to first child ( temp highp 2-component vector of uint) -0:84 vector swizzle ( temp highp 2-component vector of uint) -0:84 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:84 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:84 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:84 Constant: -0:84 1 (const int) -0:84 Constant: -0:84 2 (const int) -0:84 Sequence -0:84 Constant: -0:84 0 (const int) -0:84 Constant: -0:84 1 (const int) -0:84 subgroupClusteredAnd ( global highp 2-component vector of uint) -0:84 vector swizzle ( temp highp 2-component vector of uint) -0:84 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:84 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:84 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:84 Constant: -0:84 1 (const int) -0:84 Constant: -0:84 2 (const int) -0:84 Sequence -0:84 Constant: -0:84 0 (const int) -0:84 Constant: -0:84 1 (const int) -0:84 Constant: -0:84 1 (const uint) -0:85 move second child to first child ( temp highp 3-component vector of uint) -0:85 vector swizzle ( temp highp 3-component vector of uint) -0:85 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:85 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:85 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:85 Constant: -0:85 1 (const int) -0:85 Constant: -0:85 2 (const int) -0:85 Sequence -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 1 (const int) -0:85 Constant: -0:85 2 (const int) -0:85 subgroupClusteredAnd ( global highp 3-component vector of uint) -0:85 vector swizzle ( temp highp 3-component vector of uint) -0:85 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:85 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:85 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:85 Constant: -0:85 2 (const int) -0:85 Constant: -0:85 2 (const int) -0:85 Sequence -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 1 (const int) -0:85 Constant: -0:85 2 (const int) -0:85 Constant: -0:85 1 (const uint) -0:86 move second child to first child ( temp highp 4-component vector of uint) -0:86 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:86 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:86 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:86 Constant: -0:86 1 (const int) -0:86 Constant: -0:86 2 (const int) -0:86 subgroupClusteredAnd ( global highp 4-component vector of uint) -0:86 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:86 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:86 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:86 Constant: -0:86 3 (const int) -0:86 Constant: -0:86 2 (const int) -0:86 Constant: -0:86 1 (const uint) -0:88 move second child to first child ( temp highp int) -0:88 direct index ( temp highp int) -0:88 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:88 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:88 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:88 Constant: -0:88 2 (const int) -0:88 Constant: -0:88 1 (const int) -0:88 Constant: -0:88 0 (const int) -0:88 Convert bool to int ( temp highp int) -0:88 subgroupClusteredAnd ( global bool) -0:88 Compare Less Than ( temp bool) -0:88 direct index ( temp highp int) -0:88 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:88 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:88 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:88 Constant: -0:88 0 (const int) -0:88 Constant: -0:88 1 (const int) -0:88 Constant: -0:88 0 (const int) -0:88 Constant: -0:88 0 (const int) -0:88 Constant: -0:88 1 (const uint) -0:89 move second child to first child ( temp highp 2-component vector of int) -0:89 vector swizzle ( temp highp 2-component vector of int) -0:89 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:89 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:89 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:89 Constant: -0:89 2 (const int) -0:89 Constant: -0:89 1 (const int) -0:89 Sequence -0:89 Constant: -0:89 0 (const int) -0:89 Constant: -0:89 1 (const int) -0:89 Convert bool to int ( temp highp 2-component vector of int) -0:89 subgroupClusteredAnd ( global 2-component vector of bool) -0:89 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:89 vector swizzle ( temp highp 2-component vector of int) -0:89 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:89 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:89 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:89 Constant: -0:89 1 (const int) -0:89 Constant: -0:89 1 (const int) -0:89 Sequence -0:89 Constant: -0:89 0 (const int) -0:89 Constant: -0:89 1 (const int) -0:89 Constant: -0:89 0 (const int) -0:89 0 (const int) -0:89 Constant: -0:89 1 (const uint) -0:90 move second child to first child ( temp highp 3-component vector of int) -0:90 vector swizzle ( temp highp 3-component vector of int) -0:90 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:90 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:90 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:90 Constant: -0:90 2 (const int) -0:90 Constant: -0:90 1 (const int) -0:90 Sequence -0:90 Constant: -0:90 0 (const int) -0:90 Constant: -0:90 1 (const int) -0:90 Constant: -0:90 2 (const int) -0:90 Convert bool to int ( temp highp 3-component vector of int) -0:90 subgroupClusteredAnd ( global 3-component vector of bool) -0:90 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:90 vector swizzle ( temp highp 3-component vector of int) -0:90 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:90 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:90 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:90 Constant: -0:90 1 (const int) -0:90 Constant: -0:90 1 (const int) -0:90 Sequence -0:90 Constant: -0:90 0 (const int) -0:90 Constant: -0:90 1 (const int) -0:90 Constant: -0:90 2 (const int) -0:90 Constant: -0:90 0 (const int) -0:90 0 (const int) -0:90 0 (const int) -0:90 Constant: -0:90 1 (const uint) -0:91 move second child to first child ( temp highp 4-component vector of int) -0:91 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:91 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:91 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:91 Constant: -0:91 2 (const int) -0:91 Constant: -0:91 1 (const int) -0:91 Convert bool to int ( temp highp 4-component vector of int) -0:91 subgroupClusteredAnd ( global 4-component vector of bool) -0:91 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:91 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:91 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:91 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:91 Constant: -0:91 1 (const int) -0:91 Constant: -0:91 1 (const int) -0:91 Constant: -0:91 0 (const int) -0:91 0 (const int) -0:91 0 (const int) -0:91 0 (const int) -0:91 Constant: -0:91 1 (const uint) -0:93 move second child to first child ( temp highp int) -0:93 direct index ( temp highp int) -0:93 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:93 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:93 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:93 Constant: -0:93 3 (const int) -0:93 Constant: -0:93 1 (const int) -0:93 Constant: -0:93 0 (const int) -0:93 subgroupClusteredOr ( global highp int) -0:93 direct index ( temp highp int) -0:93 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:93 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:93 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:93 Constant: -0:93 0 (const int) -0:93 Constant: -0:93 1 (const int) -0:93 Constant: -0:93 0 (const int) -0:93 Constant: -0:93 1 (const uint) -0:94 move second child to first child ( temp highp 2-component vector of int) -0:94 vector swizzle ( temp highp 2-component vector of int) -0:94 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:94 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:94 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:94 Constant: -0:94 3 (const int) -0:94 Constant: -0:94 1 (const int) -0:94 Sequence -0:94 Constant: -0:94 0 (const int) -0:94 Constant: -0:94 1 (const int) -0:94 subgroupClusteredOr ( global highp 2-component vector of int) -0:94 vector swizzle ( temp highp 2-component vector of int) -0:94 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:94 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:94 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:94 Constant: -0:94 1 (const int) -0:94 Constant: -0:94 1 (const int) -0:94 Sequence -0:94 Constant: -0:94 0 (const int) -0:94 Constant: -0:94 1 (const int) -0:94 Constant: -0:94 1 (const uint) -0:95 move second child to first child ( temp highp 3-component vector of int) -0:95 vector swizzle ( temp highp 3-component vector of int) -0:95 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:95 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:95 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:95 Constant: -0:95 3 (const int) -0:95 Constant: -0:95 1 (const int) -0:95 Sequence -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 1 (const int) -0:95 Constant: -0:95 2 (const int) -0:95 subgroupClusteredOr ( global highp 3-component vector of int) -0:95 vector swizzle ( temp highp 3-component vector of int) -0:95 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:95 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:95 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:95 Constant: -0:95 2 (const int) -0:95 Constant: -0:95 1 (const int) -0:95 Sequence -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 1 (const int) -0:95 Constant: -0:95 2 (const int) -0:95 Constant: -0:95 1 (const uint) -0:96 move second child to first child ( temp highp 4-component vector of int) -0:96 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:96 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:96 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:96 Constant: -0:96 3 (const int) -0:96 Constant: -0:96 1 (const int) -0:96 subgroupClusteredOr ( global highp 4-component vector of int) -0:96 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:96 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:96 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:96 Constant: -0:96 3 (const int) -0:96 Constant: -0:96 1 (const int) -0:96 Constant: -0:96 1 (const uint) -0:98 move second child to first child ( temp highp uint) -0:98 direct index ( temp highp uint) -0:98 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:98 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:98 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:98 Constant: -0:98 0 (const int) -0:98 Constant: -0:98 2 (const int) -0:98 Constant: -0:98 0 (const int) -0:98 subgroupClusteredOr ( global highp uint) -0:98 direct index ( temp highp uint) -0:98 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:98 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:98 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:98 Constant: -0:98 0 (const int) -0:98 Constant: -0:98 2 (const int) -0:98 Constant: -0:98 0 (const int) -0:98 Constant: -0:98 1 (const uint) -0:99 move second child to first child ( temp highp 2-component vector of uint) -0:99 vector swizzle ( temp highp 2-component vector of uint) -0:99 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:99 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:99 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:99 Constant: -0:99 0 (const int) -0:99 Constant: -0:99 2 (const int) -0:99 Sequence -0:99 Constant: -0:99 0 (const int) -0:99 Constant: -0:99 1 (const int) -0:99 subgroupClusteredOr ( global highp 2-component vector of uint) -0:99 vector swizzle ( temp highp 2-component vector of uint) -0:99 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:99 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:99 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:99 Constant: -0:99 1 (const int) -0:99 Constant: -0:99 2 (const int) -0:99 Sequence -0:99 Constant: -0:99 0 (const int) -0:99 Constant: -0:99 1 (const int) -0:99 Constant: -0:99 1 (const uint) -0:100 move second child to first child ( temp highp 3-component vector of uint) -0:100 vector swizzle ( temp highp 3-component vector of uint) -0:100 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:100 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:100 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:100 Constant: -0:100 0 (const int) -0:100 Constant: -0:100 2 (const int) -0:100 Sequence -0:100 Constant: -0:100 0 (const int) -0:100 Constant: -0:100 1 (const int) -0:100 Constant: -0:100 2 (const int) -0:100 subgroupClusteredOr ( global highp 3-component vector of uint) -0:100 vector swizzle ( temp highp 3-component vector of uint) -0:100 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:100 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:100 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:100 Constant: -0:100 2 (const int) -0:100 Constant: -0:100 2 (const int) -0:100 Sequence -0:100 Constant: -0:100 0 (const int) -0:100 Constant: -0:100 1 (const int) -0:100 Constant: -0:100 2 (const int) -0:100 Constant: -0:100 1 (const uint) -0:101 move second child to first child ( temp highp 4-component vector of uint) -0:101 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:101 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:101 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 2 (const int) -0:101 subgroupClusteredOr ( global highp 4-component vector of uint) -0:101 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:101 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:101 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:101 Constant: -0:101 3 (const int) -0:101 Constant: -0:101 2 (const int) -0:101 Constant: -0:101 1 (const uint) -0:103 move second child to first child ( temp highp int) -0:103 direct index ( temp highp int) -0:103 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:103 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:103 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:103 Constant: -0:103 1 (const int) -0:103 Constant: -0:103 1 (const int) -0:103 Constant: -0:103 0 (const int) -0:103 Convert bool to int ( temp highp int) -0:103 subgroupClusteredOr ( global bool) -0:103 Compare Less Than ( temp bool) -0:103 direct index ( temp highp int) -0:103 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:103 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:103 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:103 Constant: -0:103 0 (const int) -0:103 Constant: -0:103 1 (const int) -0:103 Constant: -0:103 0 (const int) -0:103 Constant: -0:103 0 (const int) -0:103 Constant: -0:103 1 (const uint) -0:104 move second child to first child ( temp highp 2-component vector of int) -0:104 vector swizzle ( temp highp 2-component vector of int) -0:104 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:104 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:104 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:104 Constant: -0:104 1 (const int) -0:104 Constant: -0:104 1 (const int) -0:104 Sequence -0:104 Constant: -0:104 0 (const int) -0:104 Constant: -0:104 1 (const int) -0:104 Convert bool to int ( temp highp 2-component vector of int) -0:104 subgroupClusteredOr ( global 2-component vector of bool) -0:104 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:104 vector swizzle ( temp highp 2-component vector of int) -0:104 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:104 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:104 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:104 Constant: -0:104 1 (const int) -0:104 Constant: -0:104 1 (const int) -0:104 Sequence -0:104 Constant: -0:104 0 (const int) -0:104 Constant: -0:104 1 (const int) -0:104 Constant: -0:104 0 (const int) -0:104 0 (const int) -0:104 Constant: -0:104 1 (const uint) -0:105 move second child to first child ( temp highp 3-component vector of int) -0:105 vector swizzle ( temp highp 3-component vector of int) -0:105 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:105 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:105 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:105 Constant: -0:105 1 (const int) -0:105 Constant: -0:105 1 (const int) -0:105 Sequence -0:105 Constant: -0:105 0 (const int) -0:105 Constant: -0:105 1 (const int) -0:105 Constant: -0:105 2 (const int) -0:105 Convert bool to int ( temp highp 3-component vector of int) -0:105 subgroupClusteredOr ( global 3-component vector of bool) -0:105 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:105 vector swizzle ( temp highp 3-component vector of int) -0:105 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:105 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:105 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:105 Constant: -0:105 1 (const int) -0:105 Constant: -0:105 1 (const int) -0:105 Sequence -0:105 Constant: -0:105 0 (const int) -0:105 Constant: -0:105 1 (const int) -0:105 Constant: -0:105 2 (const int) -0:105 Constant: -0:105 0 (const int) -0:105 0 (const int) -0:105 0 (const int) -0:105 Constant: -0:105 1 (const uint) -0:106 move second child to first child ( temp highp 4-component vector of int) -0:106 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:106 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:106 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:106 Constant: -0:106 1 (const int) -0:106 Constant: -0:106 1 (const int) -0:106 Convert bool to int ( temp highp 4-component vector of int) -0:106 subgroupClusteredOr ( global 4-component vector of bool) -0:106 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:106 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:106 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:106 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:106 Constant: -0:106 1 (const int) -0:106 Constant: -0:106 1 (const int) -0:106 Constant: -0:106 0 (const int) -0:106 0 (const int) -0:106 0 (const int) -0:106 0 (const int) -0:106 Constant: -0:106 1 (const uint) -0:108 move second child to first child ( temp highp int) -0:108 direct index ( temp highp int) -0:108 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:108 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:108 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:108 Constant: -0:108 2 (const int) -0:108 Constant: -0:108 1 (const int) -0:108 Constant: -0:108 0 (const int) -0:108 subgroupClusteredXor ( global highp int) -0:108 direct index ( temp highp int) -0:108 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:108 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:108 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:108 Constant: -0:108 0 (const int) -0:108 Constant: -0:108 1 (const int) -0:108 Constant: -0:108 0 (const int) -0:108 Constant: -0:108 1 (const uint) -0:109 move second child to first child ( temp highp 2-component vector of int) -0:109 vector swizzle ( temp highp 2-component vector of int) -0:109 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:109 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:109 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:109 Constant: -0:109 2 (const int) -0:109 Constant: -0:109 1 (const int) -0:109 Sequence -0:109 Constant: -0:109 0 (const int) -0:109 Constant: -0:109 1 (const int) -0:109 subgroupClusteredXor ( global highp 2-component vector of int) -0:109 vector swizzle ( temp highp 2-component vector of int) -0:109 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:109 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:109 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:109 Constant: -0:109 1 (const int) -0:109 Constant: -0:109 1 (const int) -0:109 Sequence -0:109 Constant: -0:109 0 (const int) -0:109 Constant: -0:109 1 (const int) -0:109 Constant: -0:109 1 (const uint) -0:110 move second child to first child ( temp highp 3-component vector of int) -0:110 vector swizzle ( temp highp 3-component vector of int) -0:110 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:110 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:110 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:110 Constant: -0:110 2 (const int) -0:110 Constant: -0:110 1 (const int) -0:110 Sequence -0:110 Constant: -0:110 0 (const int) -0:110 Constant: -0:110 1 (const int) -0:110 Constant: -0:110 2 (const int) -0:110 subgroupClusteredXor ( global highp 3-component vector of int) -0:110 vector swizzle ( temp highp 3-component vector of int) -0:110 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:110 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:110 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:110 Constant: -0:110 2 (const int) -0:110 Constant: -0:110 1 (const int) -0:110 Sequence -0:110 Constant: -0:110 0 (const int) -0:110 Constant: -0:110 1 (const int) -0:110 Constant: -0:110 2 (const int) -0:110 Constant: -0:110 1 (const uint) -0:111 move second child to first child ( temp highp 4-component vector of int) -0:111 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:111 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:111 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:111 Constant: -0:111 2 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 subgroupClusteredXor ( global highp 4-component vector of int) -0:111 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:111 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:111 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:111 Constant: -0:111 3 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 Constant: -0:111 1 (const uint) -0:113 move second child to first child ( temp highp uint) -0:113 direct index ( temp highp uint) -0:113 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:113 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:113 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:113 Constant: -0:113 3 (const int) -0:113 Constant: -0:113 2 (const int) -0:113 Constant: -0:113 0 (const int) -0:113 subgroupClusteredXor ( global highp uint) -0:113 direct index ( temp highp uint) -0:113 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:113 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:113 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:113 Constant: -0:113 0 (const int) -0:113 Constant: -0:113 2 (const int) -0:113 Constant: -0:113 0 (const int) -0:113 Constant: -0:113 1 (const uint) -0:114 move second child to first child ( temp highp 2-component vector of uint) -0:114 vector swizzle ( temp highp 2-component vector of uint) -0:114 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:114 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:114 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:114 Constant: -0:114 3 (const int) -0:114 Constant: -0:114 2 (const int) -0:114 Sequence -0:114 Constant: -0:114 0 (const int) -0:114 Constant: -0:114 1 (const int) -0:114 subgroupClusteredXor ( global highp 2-component vector of uint) -0:114 vector swizzle ( temp highp 2-component vector of uint) -0:114 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:114 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:114 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:114 Constant: -0:114 1 (const int) -0:114 Constant: -0:114 2 (const int) -0:114 Sequence -0:114 Constant: -0:114 0 (const int) -0:114 Constant: -0:114 1 (const int) -0:114 Constant: -0:114 1 (const uint) -0:115 move second child to first child ( temp highp 3-component vector of uint) -0:115 vector swizzle ( temp highp 3-component vector of uint) -0:115 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:115 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:115 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:115 Constant: -0:115 3 (const int) -0:115 Constant: -0:115 2 (const int) -0:115 Sequence -0:115 Constant: -0:115 0 (const int) -0:115 Constant: -0:115 1 (const int) -0:115 Constant: -0:115 2 (const int) -0:115 subgroupClusteredXor ( global highp 3-component vector of uint) -0:115 vector swizzle ( temp highp 3-component vector of uint) -0:115 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:115 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:115 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:115 Constant: -0:115 2 (const int) -0:115 Constant: -0:115 2 (const int) -0:115 Sequence -0:115 Constant: -0:115 0 (const int) -0:115 Constant: -0:115 1 (const int) -0:115 Constant: -0:115 2 (const int) -0:115 Constant: -0:115 1 (const uint) -0:116 move second child to first child ( temp highp 4-component vector of uint) -0:116 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:116 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:116 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:116 Constant: -0:116 3 (const int) -0:116 Constant: -0:116 2 (const int) -0:116 subgroupClusteredXor ( global highp 4-component vector of uint) -0:116 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:116 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:116 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:116 Constant: -0:116 3 (const int) -0:116 Constant: -0:116 2 (const int) -0:116 Constant: -0:116 1 (const uint) -0:118 move second child to first child ( temp highp int) -0:118 direct index ( temp highp int) -0:118 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:118 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:118 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:118 Constant: -0:118 0 (const int) -0:118 Constant: -0:118 1 (const int) -0:118 Constant: -0:118 0 (const int) -0:118 Convert bool to int ( temp highp int) -0:118 subgroupClusteredXor ( global bool) -0:118 Compare Less Than ( temp bool) -0:118 direct index ( temp highp int) -0:118 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:118 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:118 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:118 Constant: -0:118 0 (const int) -0:118 Constant: -0:118 1 (const int) -0:118 Constant: -0:118 0 (const int) -0:118 Constant: -0:118 0 (const int) -0:118 Constant: -0:118 1 (const uint) -0:119 move second child to first child ( temp highp 2-component vector of int) -0:119 vector swizzle ( temp highp 2-component vector of int) -0:119 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:119 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:119 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:119 Constant: -0:119 0 (const int) -0:119 Constant: -0:119 1 (const int) -0:119 Sequence -0:119 Constant: -0:119 0 (const int) -0:119 Constant: -0:119 1 (const int) -0:119 Convert bool to int ( temp highp 2-component vector of int) -0:119 subgroupClusteredXor ( global 2-component vector of bool) -0:119 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:119 vector swizzle ( temp highp 2-component vector of int) -0:119 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:119 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:119 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:119 Constant: -0:119 1 (const int) -0:119 Constant: -0:119 1 (const int) -0:119 Sequence -0:119 Constant: -0:119 0 (const int) -0:119 Constant: -0:119 1 (const int) -0:119 Constant: -0:119 0 (const int) -0:119 0 (const int) -0:119 Constant: -0:119 1 (const uint) -0:120 move second child to first child ( temp highp 3-component vector of int) -0:120 vector swizzle ( temp highp 3-component vector of int) -0:120 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:120 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:120 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:120 Constant: -0:120 0 (const int) -0:120 Constant: -0:120 1 (const int) -0:120 Sequence -0:120 Constant: -0:120 0 (const int) -0:120 Constant: -0:120 1 (const int) -0:120 Constant: -0:120 2 (const int) -0:120 Convert bool to int ( temp highp 3-component vector of int) -0:120 subgroupClusteredXor ( global 3-component vector of bool) -0:120 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:120 vector swizzle ( temp highp 3-component vector of int) -0:120 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:120 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:120 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:120 Constant: -0:120 1 (const int) -0:120 Constant: -0:120 1 (const int) -0:120 Sequence -0:120 Constant: -0:120 0 (const int) -0:120 Constant: -0:120 1 (const int) -0:120 Constant: -0:120 2 (const int) -0:120 Constant: -0:120 0 (const int) -0:120 0 (const int) -0:120 0 (const int) -0:120 Constant: -0:120 1 (const uint) -0:121 move second child to first child ( temp highp 4-component vector of int) -0:121 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:121 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:121 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 1 (const int) -0:121 Convert bool to int ( temp highp 4-component vector of int) -0:121 subgroupClusteredXor ( global 4-component vector of bool) -0:121 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:121 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:121 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:121 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:121 Constant: -0:121 1 (const int) -0:121 Constant: -0:121 1 (const int) -0:121 Constant: -0:121 0 (const int) -0:121 0 (const int) -0:121 0 (const int) -0:121 0 (const int) -0:121 Constant: -0:121 1 (const uint) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const highp 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) - - -Linked compute stage: - - -Shader version: 320 -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_clustered -local_size = (8, 1, 1) -0:? Sequence -0:14 Function Definition: main( ( global void) -0:14 Function Parameters: -0:16 Sequence -0:16 Sequence -0:16 move second child to first child ( temp highp uint) -0:16 'invocation' ( temp highp uint) -0:16 mod ( temp mediump uint) -0:16 add ( temp mediump uint) -0:16 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID) -0:16 'gl_SubgroupSize' ( in mediump uint SubgroupSize) -0:16 Constant: -0:16 4 (const uint) -0:18 move second child to first child ( temp highp float) -0:18 direct index ( temp highp float) -0:18 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:18 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 subgroupClusteredAdd ( global highp float) -0:18 direct index ( temp highp float) -0:18 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:18 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 1 (const uint) -0:19 move second child to first child ( temp highp 2-component vector of float) -0:19 vector swizzle ( temp highp 2-component vector of float) -0:19 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:19 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 Sequence -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const int) -0:19 subgroupClusteredAdd ( global highp 2-component vector of float) -0:19 vector swizzle ( temp highp 2-component vector of float) -0:19 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:19 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 Constant: -0:19 1 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 Sequence -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const int) -0:19 Constant: -0:19 1 (const uint) -0:20 move second child to first child ( temp highp 3-component vector of float) -0:20 vector swizzle ( temp highp 3-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:20 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 2 (const int) -0:20 subgroupClusteredAdd ( global highp 3-component vector of float) -0:20 vector swizzle ( temp highp 3-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:20 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 Constant: -0:20 2 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 2 (const int) -0:20 Constant: -0:20 1 (const uint) -0:21 move second child to first child ( temp highp 4-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 subgroupClusteredAdd ( global highp 4-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 Constant: -0:21 3 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const uint) -0:23 move second child to first child ( temp highp int) -0:23 direct index ( temp highp int) -0:23 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 0 (const int) -0:23 subgroupClusteredAdd ( global highp int) -0:23 direct index ( temp highp int) -0:23 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 1 (const uint) -0:24 move second child to first child ( temp highp 2-component vector of int) -0:24 vector swizzle ( temp highp 2-component vector of int) -0:24 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 Sequence -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 subgroupClusteredAdd ( global highp 2-component vector of int) -0:24 vector swizzle ( temp highp 2-component vector of int) -0:24 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 Sequence -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 1 (const uint) -0:25 move second child to first child ( temp highp 3-component vector of int) -0:25 vector swizzle ( temp highp 3-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 subgroupClusteredAdd ( global highp 3-component vector of int) -0:25 vector swizzle ( temp highp 3-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 Constant: -0:25 2 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 Constant: -0:25 1 (const uint) -0:26 move second child to first child ( temp highp 4-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 subgroupClusteredAdd ( global highp 4-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 Constant: -0:26 3 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 1 (const uint) -0:28 move second child to first child ( temp highp uint) -0:28 direct index ( temp highp uint) -0:28 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 Constant: -0:28 2 (const int) -0:28 Constant: -0:28 2 (const int) -0:28 Constant: -0:28 0 (const int) -0:28 subgroupClusteredAdd ( global highp uint) -0:28 direct index ( temp highp uint) -0:28 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 2 (const int) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 1 (const uint) -0:29 move second child to first child ( temp highp 2-component vector of uint) -0:29 vector swizzle ( temp highp 2-component vector of uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 2 (const int) -0:29 Sequence -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 1 (const int) -0:29 subgroupClusteredAdd ( global highp 2-component vector of uint) -0:29 vector swizzle ( temp highp 2-component vector of uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 Constant: -0:29 1 (const int) -0:29 Constant: -0:29 2 (const int) -0:29 Sequence -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 1 (const int) -0:29 Constant: -0:29 1 (const uint) -0:30 move second child to first child ( temp highp 3-component vector of uint) -0:30 vector swizzle ( temp highp 3-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:30 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 Constant: -0:30 2 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 subgroupClusteredAdd ( global highp 3-component vector of uint) -0:30 vector swizzle ( temp highp 3-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:30 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 Constant: -0:30 2 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 Constant: -0:30 1 (const uint) -0:31 move second child to first child ( temp highp 4-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 Constant: -0:31 2 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 subgroupClusteredAdd ( global highp 4-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 Constant: -0:31 3 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 Constant: -0:31 1 (const uint) -0:33 move second child to first child ( temp highp float) -0:33 direct index ( temp highp float) -0:33 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 Constant: -0:33 3 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 subgroupClusteredMul ( global highp float) -0:33 direct index ( temp highp float) -0:33 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -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 Constant: -0:33 1 (const uint) -0:34 move second child to first child ( temp highp 2-component vector of float) -0:34 vector swizzle ( temp highp 2-component vector of float) -0:34 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 Constant: -0:34 3 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 Sequence -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 subgroupClusteredMul ( global highp 2-component vector of float) -0:34 vector swizzle ( temp highp 2-component vector of float) -0:34 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 Constant: -0:34 1 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 Sequence -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 Constant: -0:34 1 (const uint) -0:35 move second child to first child ( temp highp 3-component vector of float) -0:35 vector swizzle ( temp highp 3-component vector of float) -0:35 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 Constant: -0:35 3 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 2 (const int) -0:35 subgroupClusteredMul ( global highp 3-component vector of float) -0:35 vector swizzle ( temp highp 3-component vector of float) -0:35 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 Constant: -0:35 2 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 2 (const int) -0:35 Constant: -0:35 1 (const uint) -0:36 move second child to first child ( temp highp 4-component vector of float) -0:36 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 Constant: -0:36 3 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 subgroupClusteredMul ( global highp 4-component vector of float) -0:36 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 Constant: -0:36 3 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const uint) -0:38 move second child to first child ( temp highp int) -0:38 direct index ( temp highp int) -0:38 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 1 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 subgroupClusteredMul ( global highp int) -0:38 direct index ( temp highp int) -0:38 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 1 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 1 (const uint) -0:39 move second child to first child ( temp highp 2-component vector of int) -0:39 vector swizzle ( temp highp 2-component vector of int) -0:39 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 Sequence -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 subgroupClusteredMul ( global highp 2-component vector of int) -0:39 vector swizzle ( temp highp 2-component vector of int) -0:39 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 Sequence -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 1 (const uint) -0:40 move second child to first child ( temp highp 3-component vector of int) -0:40 vector swizzle ( temp highp 3-component vector of int) -0:40 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 2 (const int) -0:40 subgroupClusteredMul ( global highp 3-component vector of int) -0:40 vector swizzle ( temp highp 3-component vector of int) -0:40 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 Constant: -0:40 2 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 2 (const int) -0:40 Constant: -0:40 1 (const uint) -0:41 move second child to first child ( temp highp 4-component vector of int) -0:41 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 subgroupClusteredMul ( global highp 4-component vector of int) -0:41 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 Constant: -0:41 3 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 1 (const uint) -0:43 move second child to first child ( temp highp uint) -0:43 direct index ( temp highp uint) -0:43 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:43 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 Constant: -0:43 1 (const int) -0:43 Constant: -0:43 2 (const int) -0:43 Constant: -0:43 0 (const int) -0:43 subgroupClusteredMul ( global highp uint) -0:43 direct index ( temp highp uint) -0:43 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:43 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 Constant: -0:43 0 (const int) -0:43 Constant: -0:43 2 (const int) -0:43 Constant: -0:43 0 (const int) -0:43 Constant: -0:43 1 (const uint) -0:44 move second child to first child ( temp highp 2-component vector of uint) -0:44 vector swizzle ( temp highp 2-component vector of uint) -0:44 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 Constant: -0:44 1 (const int) -0:44 Constant: -0:44 2 (const int) -0:44 Sequence -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 1 (const int) -0:44 subgroupClusteredMul ( global highp 2-component vector of uint) -0:44 vector swizzle ( temp highp 2-component vector of uint) -0:44 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 Constant: -0:44 1 (const int) -0:44 Constant: -0:44 2 (const int) -0:44 Sequence -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 1 (const int) -0:44 Constant: -0:44 1 (const uint) -0:45 move second child to first child ( temp highp 3-component vector of uint) -0:45 vector swizzle ( temp highp 3-component vector of uint) -0:45 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 subgroupClusteredMul ( global highp 3-component vector of uint) -0:45 vector swizzle ( temp highp 3-component vector of uint) -0:45 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 Constant: -0:45 2 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 Constant: -0:45 1 (const uint) -0:46 move second child to first child ( temp highp 4-component vector of uint) -0:46 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 subgroupClusteredMul ( global highp 4-component vector of uint) -0:46 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 Constant: -0:46 3 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 Constant: -0:46 1 (const uint) -0:48 move second child to first child ( temp highp float) -0:48 direct index ( temp highp float) -0:48 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:48 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 Constant: -0:48 2 (const int) -0:48 Constant: -0:48 0 (const int) -0:48 Constant: -0:48 0 (const int) -0:48 subgroupClusteredMin ( global highp float) -0:48 direct index ( temp highp float) -0:48 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:48 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 Constant: -0:48 0 (const int) -0:48 Constant: -0:48 0 (const int) -0:48 Constant: -0:48 0 (const int) -0:48 Constant: -0:48 1 (const uint) -0:49 move second child to first child ( temp highp 2-component vector of float) -0:49 vector swizzle ( temp highp 2-component vector of float) -0:49 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:49 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 Constant: -0:49 2 (const int) -0:49 Constant: -0:49 0 (const int) -0:49 Sequence -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 1 (const int) -0:49 subgroupClusteredMin ( global highp 2-component vector of float) -0:49 vector swizzle ( temp highp 2-component vector of float) -0:49 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:49 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 Constant: -0:49 1 (const int) -0:49 Constant: -0:49 0 (const int) -0:49 Sequence -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 1 (const int) -0:49 Constant: -0:49 1 (const uint) -0:50 move second child to first child ( temp highp 3-component vector of float) -0:50 vector swizzle ( temp highp 3-component vector of float) -0:50 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 Constant: -0:50 2 (const int) -0:50 Constant: -0:50 0 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 subgroupClusteredMin ( global highp 3-component vector of float) -0:50 vector swizzle ( temp highp 3-component vector of float) -0:50 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 Constant: -0:50 2 (const int) -0:50 Constant: -0:50 0 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 Constant: -0:50 1 (const uint) -0:51 move second child to first child ( temp highp 4-component vector of float) -0:51 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 Constant: -0:51 2 (const int) -0:51 Constant: -0:51 0 (const int) -0:51 subgroupClusteredMin ( global highp 4-component vector of float) -0:51 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 Constant: -0:51 3 (const int) -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const uint) -0:53 move second child to first child ( temp highp int) -0:53 direct index ( temp highp int) -0:53 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:53 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 Constant: -0:53 3 (const int) -0:53 Constant: -0:53 1 (const int) -0:53 Constant: -0:53 0 (const int) -0:53 subgroupClusteredMin ( global highp int) -0:53 direct index ( temp highp int) -0:53 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:53 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 Constant: -0:53 0 (const int) -0:53 Constant: -0:53 1 (const int) -0:53 Constant: -0:53 0 (const int) -0:53 Constant: -0:53 1 (const uint) -0:54 move second child to first child ( temp highp 2-component vector of int) -0:54 vector swizzle ( temp highp 2-component vector of int) -0:54 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:54 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 Constant: -0:54 3 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 Sequence -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 subgroupClusteredMin ( global highp 2-component vector of int) -0:54 vector swizzle ( temp highp 2-component vector of int) -0:54 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:54 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 Constant: -0:54 1 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 Sequence -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 Constant: -0:54 1 (const uint) -0:55 move second child to first child ( temp highp 3-component vector of int) -0:55 vector swizzle ( temp highp 3-component vector of int) -0:55 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 Constant: -0:55 3 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 2 (const int) -0:55 subgroupClusteredMin ( global highp 3-component vector of int) -0:55 vector swizzle ( temp highp 3-component vector of int) -0:55 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 Constant: -0:55 2 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 2 (const int) -0:55 Constant: -0:55 1 (const uint) -0:56 move second child to first child ( temp highp 4-component vector of int) -0:56 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 Constant: -0:56 3 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 subgroupClusteredMin ( global highp 4-component vector of int) -0:56 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 Constant: -0:56 3 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 1 (const uint) -0:58 move second child to first child ( temp highp uint) -0:58 direct index ( temp highp uint) -0:58 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:58 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 Constant: -0:58 0 (const int) -0:58 Constant: -0:58 2 (const int) -0:58 Constant: -0:58 0 (const int) -0:58 subgroupClusteredMin ( global highp uint) -0:58 direct index ( temp highp uint) -0:58 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:58 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 Constant: -0:58 0 (const int) -0:58 Constant: -0:58 2 (const int) -0:58 Constant: -0:58 0 (const int) -0:58 Constant: -0:58 1 (const uint) -0:59 move second child to first child ( temp highp 2-component vector of uint) -0:59 vector swizzle ( temp highp 2-component vector of uint) -0:59 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:59 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:59 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 2 (const int) -0:59 Sequence -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 1 (const int) -0:59 subgroupClusteredMin ( global highp 2-component vector of uint) -0:59 vector swizzle ( temp highp 2-component vector of uint) -0:59 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:59 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:59 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:59 Constant: -0:59 1 (const int) -0:59 Constant: -0:59 2 (const int) -0:59 Sequence -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 1 (const int) -0:59 Constant: -0:59 1 (const uint) -0:60 move second child to first child ( temp highp 3-component vector of uint) -0:60 vector swizzle ( temp highp 3-component vector of uint) -0:60 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:60 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 2 (const int) -0:60 Sequence -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 2 (const int) -0:60 subgroupClusteredMin ( global highp 3-component vector of uint) -0:60 vector swizzle ( temp highp 3-component vector of uint) -0:60 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:60 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 Constant: -0:60 2 (const int) -0:60 Constant: -0:60 2 (const int) -0:60 Sequence -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 2 (const int) -0:60 Constant: -0:60 1 (const uint) -0:61 move second child to first child ( temp highp 4-component vector of uint) -0:61 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:61 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 2 (const int) -0:61 subgroupClusteredMin ( global highp 4-component vector of uint) -0:61 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:61 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 Constant: -0:61 3 (const int) -0:61 Constant: -0:61 2 (const int) -0:61 Constant: -0:61 1 (const uint) -0:63 move second child to first child ( temp highp float) -0:63 direct index ( temp highp float) -0:63 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:63 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 Constant: -0:63 1 (const int) -0:63 Constant: -0:63 0 (const int) -0:63 Constant: -0:63 0 (const int) -0:63 subgroupClusteredMax ( global highp float) -0:63 direct index ( temp highp float) -0:63 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:63 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 Constant: -0:63 0 (const int) -0:63 Constant: -0:63 0 (const int) -0:63 Constant: -0:63 0 (const int) -0:63 Constant: -0:63 1 (const uint) -0:64 move second child to first child ( temp highp 2-component vector of float) -0:64 vector swizzle ( temp highp 2-component vector of float) -0:64 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:64 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:64 Constant: -0:64 1 (const int) -0:64 Constant: -0:64 0 (const int) -0:64 Sequence -0:64 Constant: -0:64 0 (const int) -0:64 Constant: -0:64 1 (const int) -0:64 subgroupClusteredMax ( global highp 2-component vector of float) -0:64 vector swizzle ( temp highp 2-component vector of float) -0:64 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:64 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:64 Constant: -0:64 1 (const int) -0:64 Constant: -0:64 0 (const int) -0:64 Sequence -0:64 Constant: -0:64 0 (const int) -0:64 Constant: -0:64 1 (const int) -0:64 Constant: -0:64 1 (const uint) -0:65 move second child to first child ( temp highp 3-component vector of float) -0:65 vector swizzle ( temp highp 3-component vector of float) -0:65 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:65 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 Constant: -0:65 1 (const int) -0:65 Constant: -0:65 0 (const int) -0:65 Sequence -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Constant: -0:65 2 (const int) -0:65 subgroupClusteredMax ( global highp 3-component vector of float) -0:65 vector swizzle ( temp highp 3-component vector of float) -0:65 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:65 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 Constant: -0:65 2 (const int) -0:65 Constant: -0:65 0 (const int) -0:65 Sequence -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Constant: -0:65 2 (const int) -0:65 Constant: -0:65 1 (const uint) -0:66 move second child to first child ( temp highp 4-component vector of float) -0:66 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:66 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 0 (const int) -0:66 subgroupClusteredMax ( global highp 4-component vector of float) -0:66 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:66 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 Constant: -0:66 3 (const int) -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const uint) -0:68 move second child to first child ( temp highp int) -0:68 direct index ( temp highp int) -0:68 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:68 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 Constant: -0:68 2 (const int) -0:68 Constant: -0:68 1 (const int) -0:68 Constant: -0:68 0 (const int) -0:68 subgroupClusteredMax ( global highp int) -0:68 direct index ( temp highp int) -0:68 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:68 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 Constant: -0:68 0 (const int) -0:68 Constant: -0:68 1 (const int) -0:68 Constant: -0:68 0 (const int) -0:68 Constant: -0:68 1 (const uint) -0:69 move second child to first child ( temp highp 2-component vector of int) -0:69 vector swizzle ( temp highp 2-component vector of int) -0:69 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:69 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:69 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:69 Constant: -0:69 2 (const int) -0:69 Constant: -0:69 1 (const int) -0:69 Sequence -0:69 Constant: -0:69 0 (const int) -0:69 Constant: -0:69 1 (const int) -0:69 subgroupClusteredMax ( global highp 2-component vector of int) -0:69 vector swizzle ( temp highp 2-component vector of int) -0:69 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:69 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:69 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:69 Constant: -0:69 1 (const int) -0:69 Constant: -0:69 1 (const int) -0:69 Sequence -0:69 Constant: -0:69 0 (const int) -0:69 Constant: -0:69 1 (const int) -0:69 Constant: -0:69 1 (const uint) -0:70 move second child to first child ( temp highp 3-component vector of int) -0:70 vector swizzle ( temp highp 3-component vector of int) -0:70 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:70 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 Constant: -0:70 2 (const int) -0:70 Constant: -0:70 1 (const int) -0:70 Sequence -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 1 (const int) -0:70 Constant: -0:70 2 (const int) -0:70 subgroupClusteredMax ( global highp 3-component vector of int) -0:70 vector swizzle ( temp highp 3-component vector of int) -0:70 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:70 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 Constant: -0:70 2 (const int) -0:70 Constant: -0:70 1 (const int) -0:70 Sequence -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 1 (const int) -0:70 Constant: -0:70 2 (const int) -0:70 Constant: -0:70 1 (const uint) -0:71 move second child to first child ( temp highp 4-component vector of int) -0:71 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:71 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 Constant: -0:71 2 (const int) -0:71 Constant: -0:71 1 (const int) -0:71 subgroupClusteredMax ( global highp 4-component vector of int) -0:71 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:71 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 Constant: -0:71 3 (const int) -0:71 Constant: -0:71 1 (const int) -0:71 Constant: -0:71 1 (const uint) -0:73 move second child to first child ( temp highp uint) -0:73 direct index ( temp highp uint) -0:73 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:73 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 Constant: -0:73 3 (const int) -0:73 Constant: -0:73 2 (const int) -0:73 Constant: -0:73 0 (const int) -0:73 subgroupClusteredMax ( global highp uint) -0:73 direct index ( temp highp uint) -0:73 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:73 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 Constant: -0:73 0 (const int) -0:73 Constant: -0:73 2 (const int) -0:73 Constant: -0:73 0 (const int) -0:73 Constant: -0:73 1 (const uint) -0:74 move second child to first child ( temp highp 2-component vector of uint) -0:74 vector swizzle ( temp highp 2-component vector of uint) -0:74 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:74 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:74 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:74 Constant: -0:74 3 (const int) -0:74 Constant: -0:74 2 (const int) -0:74 Sequence -0:74 Constant: -0:74 0 (const int) -0:74 Constant: -0:74 1 (const int) -0:74 subgroupClusteredMax ( global highp 2-component vector of uint) -0:74 vector swizzle ( temp highp 2-component vector of uint) -0:74 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:74 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:74 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:74 Constant: -0:74 1 (const int) -0:74 Constant: -0:74 2 (const int) -0:74 Sequence -0:74 Constant: -0:74 0 (const int) -0:74 Constant: -0:74 1 (const int) -0:74 Constant: -0:74 1 (const uint) -0:75 move second child to first child ( temp highp 3-component vector of uint) -0:75 vector swizzle ( temp highp 3-component vector of uint) -0:75 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:75 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:75 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:75 Constant: -0:75 3 (const int) -0:75 Constant: -0:75 2 (const int) -0:75 Sequence -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 1 (const int) -0:75 Constant: -0:75 2 (const int) -0:75 subgroupClusteredMax ( global highp 3-component vector of uint) -0:75 vector swizzle ( temp highp 3-component vector of uint) -0:75 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:75 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:75 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:75 Constant: -0:75 2 (const int) -0:75 Constant: -0:75 2 (const int) -0:75 Sequence -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 1 (const int) -0:75 Constant: -0:75 2 (const int) -0:75 Constant: -0:75 1 (const uint) -0:76 move second child to first child ( temp highp 4-component vector of uint) -0:76 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:76 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:76 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:76 Constant: -0:76 3 (const int) -0:76 Constant: -0:76 2 (const int) -0:76 subgroupClusteredMax ( global highp 4-component vector of uint) -0:76 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:76 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:76 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:76 Constant: -0:76 3 (const int) -0:76 Constant: -0:76 2 (const int) -0:76 Constant: -0:76 1 (const uint) -0:78 move second child to first child ( temp highp int) -0:78 direct index ( temp highp int) -0:78 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:78 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:78 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:78 Constant: -0:78 0 (const int) -0:78 Constant: -0:78 1 (const int) -0:78 Constant: -0:78 0 (const int) -0:78 subgroupClusteredAnd ( global highp int) -0:78 direct index ( temp highp int) -0:78 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:78 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:78 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:78 Constant: -0:78 0 (const int) -0:78 Constant: -0:78 1 (const int) -0:78 Constant: -0:78 0 (const int) -0:78 Constant: -0:78 1 (const uint) -0:79 move second child to first child ( temp highp 2-component vector of int) -0:79 vector swizzle ( temp highp 2-component vector of int) -0:79 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:79 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:79 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 1 (const int) -0:79 Sequence -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 1 (const int) -0:79 subgroupClusteredAnd ( global highp 2-component vector of int) -0:79 vector swizzle ( temp highp 2-component vector of int) -0:79 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:79 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:79 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:79 Constant: -0:79 1 (const int) -0:79 Constant: -0:79 1 (const int) -0:79 Sequence -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 1 (const int) -0:79 Constant: -0:79 1 (const uint) -0:80 move second child to first child ( temp highp 3-component vector of int) -0:80 vector swizzle ( temp highp 3-component vector of int) -0:80 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:80 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:80 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 1 (const int) -0:80 Sequence -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 1 (const int) -0:80 Constant: -0:80 2 (const int) -0:80 subgroupClusteredAnd ( global highp 3-component vector of int) -0:80 vector swizzle ( temp highp 3-component vector of int) -0:80 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:80 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:80 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:80 Constant: -0:80 2 (const int) -0:80 Constant: -0:80 1 (const int) -0:80 Sequence -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 1 (const int) -0:80 Constant: -0:80 2 (const int) -0:80 Constant: -0:80 1 (const uint) -0:81 move second child to first child ( temp highp 4-component vector of int) -0:81 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:81 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:81 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 1 (const int) -0:81 subgroupClusteredAnd ( global highp 4-component vector of int) -0:81 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:81 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:81 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:81 Constant: -0:81 3 (const int) -0:81 Constant: -0:81 1 (const int) -0:81 Constant: -0:81 1 (const uint) -0:83 move second child to first child ( temp highp uint) -0:83 direct index ( temp highp uint) -0:83 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:83 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:83 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:83 Constant: -0:83 1 (const int) -0:83 Constant: -0:83 2 (const int) -0:83 Constant: -0:83 0 (const int) -0:83 subgroupClusteredAnd ( global highp uint) -0:83 direct index ( temp highp uint) -0:83 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:83 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:83 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:83 Constant: -0:83 0 (const int) -0:83 Constant: -0:83 2 (const int) -0:83 Constant: -0:83 0 (const int) -0:83 Constant: -0:83 1 (const uint) -0:84 move second child to first child ( temp highp 2-component vector of uint) -0:84 vector swizzle ( temp highp 2-component vector of uint) -0:84 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:84 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:84 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:84 Constant: -0:84 1 (const int) -0:84 Constant: -0:84 2 (const int) -0:84 Sequence -0:84 Constant: -0:84 0 (const int) -0:84 Constant: -0:84 1 (const int) -0:84 subgroupClusteredAnd ( global highp 2-component vector of uint) -0:84 vector swizzle ( temp highp 2-component vector of uint) -0:84 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:84 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:84 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:84 Constant: -0:84 1 (const int) -0:84 Constant: -0:84 2 (const int) -0:84 Sequence -0:84 Constant: -0:84 0 (const int) -0:84 Constant: -0:84 1 (const int) -0:84 Constant: -0:84 1 (const uint) -0:85 move second child to first child ( temp highp 3-component vector of uint) -0:85 vector swizzle ( temp highp 3-component vector of uint) -0:85 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:85 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:85 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:85 Constant: -0:85 1 (const int) -0:85 Constant: -0:85 2 (const int) -0:85 Sequence -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 1 (const int) -0:85 Constant: -0:85 2 (const int) -0:85 subgroupClusteredAnd ( global highp 3-component vector of uint) -0:85 vector swizzle ( temp highp 3-component vector of uint) -0:85 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:85 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:85 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:85 Constant: -0:85 2 (const int) -0:85 Constant: -0:85 2 (const int) -0:85 Sequence -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 1 (const int) -0:85 Constant: -0:85 2 (const int) -0:85 Constant: -0:85 1 (const uint) -0:86 move second child to first child ( temp highp 4-component vector of uint) -0:86 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:86 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:86 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:86 Constant: -0:86 1 (const int) -0:86 Constant: -0:86 2 (const int) -0:86 subgroupClusteredAnd ( global highp 4-component vector of uint) -0:86 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:86 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:86 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:86 Constant: -0:86 3 (const int) -0:86 Constant: -0:86 2 (const int) -0:86 Constant: -0:86 1 (const uint) -0:88 move second child to first child ( temp highp int) -0:88 direct index ( temp highp int) -0:88 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:88 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:88 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:88 Constant: -0:88 2 (const int) -0:88 Constant: -0:88 1 (const int) -0:88 Constant: -0:88 0 (const int) -0:88 Convert bool to int ( temp highp int) -0:88 subgroupClusteredAnd ( global bool) -0:88 Compare Less Than ( temp bool) -0:88 direct index ( temp highp int) -0:88 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:88 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:88 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:88 Constant: -0:88 0 (const int) -0:88 Constant: -0:88 1 (const int) -0:88 Constant: -0:88 0 (const int) -0:88 Constant: -0:88 0 (const int) -0:88 Constant: -0:88 1 (const uint) -0:89 move second child to first child ( temp highp 2-component vector of int) -0:89 vector swizzle ( temp highp 2-component vector of int) -0:89 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:89 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:89 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:89 Constant: -0:89 2 (const int) -0:89 Constant: -0:89 1 (const int) -0:89 Sequence -0:89 Constant: -0:89 0 (const int) -0:89 Constant: -0:89 1 (const int) -0:89 Convert bool to int ( temp highp 2-component vector of int) -0:89 subgroupClusteredAnd ( global 2-component vector of bool) -0:89 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:89 vector swizzle ( temp highp 2-component vector of int) -0:89 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:89 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:89 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:89 Constant: -0:89 1 (const int) -0:89 Constant: -0:89 1 (const int) -0:89 Sequence -0:89 Constant: -0:89 0 (const int) -0:89 Constant: -0:89 1 (const int) -0:89 Constant: -0:89 0 (const int) -0:89 0 (const int) -0:89 Constant: -0:89 1 (const uint) -0:90 move second child to first child ( temp highp 3-component vector of int) -0:90 vector swizzle ( temp highp 3-component vector of int) -0:90 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:90 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:90 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:90 Constant: -0:90 2 (const int) -0:90 Constant: -0:90 1 (const int) -0:90 Sequence -0:90 Constant: -0:90 0 (const int) -0:90 Constant: -0:90 1 (const int) -0:90 Constant: -0:90 2 (const int) -0:90 Convert bool to int ( temp highp 3-component vector of int) -0:90 subgroupClusteredAnd ( global 3-component vector of bool) -0:90 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:90 vector swizzle ( temp highp 3-component vector of int) -0:90 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:90 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:90 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:90 Constant: -0:90 1 (const int) -0:90 Constant: -0:90 1 (const int) -0:90 Sequence -0:90 Constant: -0:90 0 (const int) -0:90 Constant: -0:90 1 (const int) -0:90 Constant: -0:90 2 (const int) -0:90 Constant: -0:90 0 (const int) -0:90 0 (const int) -0:90 0 (const int) -0:90 Constant: -0:90 1 (const uint) -0:91 move second child to first child ( temp highp 4-component vector of int) -0:91 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:91 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:91 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:91 Constant: -0:91 2 (const int) -0:91 Constant: -0:91 1 (const int) -0:91 Convert bool to int ( temp highp 4-component vector of int) -0:91 subgroupClusteredAnd ( global 4-component vector of bool) -0:91 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:91 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:91 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:91 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:91 Constant: -0:91 1 (const int) -0:91 Constant: -0:91 1 (const int) -0:91 Constant: -0:91 0 (const int) -0:91 0 (const int) -0:91 0 (const int) -0:91 0 (const int) -0:91 Constant: -0:91 1 (const uint) -0:93 move second child to first child ( temp highp int) -0:93 direct index ( temp highp int) -0:93 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:93 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:93 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:93 Constant: -0:93 3 (const int) -0:93 Constant: -0:93 1 (const int) -0:93 Constant: -0:93 0 (const int) -0:93 subgroupClusteredOr ( global highp int) -0:93 direct index ( temp highp int) -0:93 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:93 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:93 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:93 Constant: -0:93 0 (const int) -0:93 Constant: -0:93 1 (const int) -0:93 Constant: -0:93 0 (const int) -0:93 Constant: -0:93 1 (const uint) -0:94 move second child to first child ( temp highp 2-component vector of int) -0:94 vector swizzle ( temp highp 2-component vector of int) -0:94 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:94 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:94 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:94 Constant: -0:94 3 (const int) -0:94 Constant: -0:94 1 (const int) -0:94 Sequence -0:94 Constant: -0:94 0 (const int) -0:94 Constant: -0:94 1 (const int) -0:94 subgroupClusteredOr ( global highp 2-component vector of int) -0:94 vector swizzle ( temp highp 2-component vector of int) -0:94 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:94 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:94 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:94 Constant: -0:94 1 (const int) -0:94 Constant: -0:94 1 (const int) -0:94 Sequence -0:94 Constant: -0:94 0 (const int) -0:94 Constant: -0:94 1 (const int) -0:94 Constant: -0:94 1 (const uint) -0:95 move second child to first child ( temp highp 3-component vector of int) -0:95 vector swizzle ( temp highp 3-component vector of int) -0:95 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:95 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:95 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:95 Constant: -0:95 3 (const int) -0:95 Constant: -0:95 1 (const int) -0:95 Sequence -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 1 (const int) -0:95 Constant: -0:95 2 (const int) -0:95 subgroupClusteredOr ( global highp 3-component vector of int) -0:95 vector swizzle ( temp highp 3-component vector of int) -0:95 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:95 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:95 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:95 Constant: -0:95 2 (const int) -0:95 Constant: -0:95 1 (const int) -0:95 Sequence -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 1 (const int) -0:95 Constant: -0:95 2 (const int) -0:95 Constant: -0:95 1 (const uint) -0:96 move second child to first child ( temp highp 4-component vector of int) -0:96 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:96 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:96 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:96 Constant: -0:96 3 (const int) -0:96 Constant: -0:96 1 (const int) -0:96 subgroupClusteredOr ( global highp 4-component vector of int) -0:96 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:96 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:96 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:96 Constant: -0:96 3 (const int) -0:96 Constant: -0:96 1 (const int) -0:96 Constant: -0:96 1 (const uint) -0:98 move second child to first child ( temp highp uint) -0:98 direct index ( temp highp uint) -0:98 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:98 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:98 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:98 Constant: -0:98 0 (const int) -0:98 Constant: -0:98 2 (const int) -0:98 Constant: -0:98 0 (const int) -0:98 subgroupClusteredOr ( global highp uint) -0:98 direct index ( temp highp uint) -0:98 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:98 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:98 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:98 Constant: -0:98 0 (const int) -0:98 Constant: -0:98 2 (const int) -0:98 Constant: -0:98 0 (const int) -0:98 Constant: -0:98 1 (const uint) -0:99 move second child to first child ( temp highp 2-component vector of uint) -0:99 vector swizzle ( temp highp 2-component vector of uint) -0:99 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:99 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:99 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:99 Constant: -0:99 0 (const int) -0:99 Constant: -0:99 2 (const int) -0:99 Sequence -0:99 Constant: -0:99 0 (const int) -0:99 Constant: -0:99 1 (const int) -0:99 subgroupClusteredOr ( global highp 2-component vector of uint) -0:99 vector swizzle ( temp highp 2-component vector of uint) -0:99 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:99 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:99 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:99 Constant: -0:99 1 (const int) -0:99 Constant: -0:99 2 (const int) -0:99 Sequence -0:99 Constant: -0:99 0 (const int) -0:99 Constant: -0:99 1 (const int) -0:99 Constant: -0:99 1 (const uint) -0:100 move second child to first child ( temp highp 3-component vector of uint) -0:100 vector swizzle ( temp highp 3-component vector of uint) -0:100 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:100 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:100 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:100 Constant: -0:100 0 (const int) -0:100 Constant: -0:100 2 (const int) -0:100 Sequence -0:100 Constant: -0:100 0 (const int) -0:100 Constant: -0:100 1 (const int) -0:100 Constant: -0:100 2 (const int) -0:100 subgroupClusteredOr ( global highp 3-component vector of uint) -0:100 vector swizzle ( temp highp 3-component vector of uint) -0:100 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:100 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:100 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:100 Constant: -0:100 2 (const int) -0:100 Constant: -0:100 2 (const int) -0:100 Sequence -0:100 Constant: -0:100 0 (const int) -0:100 Constant: -0:100 1 (const int) -0:100 Constant: -0:100 2 (const int) -0:100 Constant: -0:100 1 (const uint) -0:101 move second child to first child ( temp highp 4-component vector of uint) -0:101 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:101 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:101 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 2 (const int) -0:101 subgroupClusteredOr ( global highp 4-component vector of uint) -0:101 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:101 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:101 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:101 Constant: -0:101 3 (const int) -0:101 Constant: -0:101 2 (const int) -0:101 Constant: -0:101 1 (const uint) -0:103 move second child to first child ( temp highp int) -0:103 direct index ( temp highp int) -0:103 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:103 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:103 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:103 Constant: -0:103 1 (const int) -0:103 Constant: -0:103 1 (const int) -0:103 Constant: -0:103 0 (const int) -0:103 Convert bool to int ( temp highp int) -0:103 subgroupClusteredOr ( global bool) -0:103 Compare Less Than ( temp bool) -0:103 direct index ( temp highp int) -0:103 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:103 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:103 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:103 Constant: -0:103 0 (const int) -0:103 Constant: -0:103 1 (const int) -0:103 Constant: -0:103 0 (const int) -0:103 Constant: -0:103 0 (const int) -0:103 Constant: -0:103 1 (const uint) -0:104 move second child to first child ( temp highp 2-component vector of int) -0:104 vector swizzle ( temp highp 2-component vector of int) -0:104 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:104 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:104 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:104 Constant: -0:104 1 (const int) -0:104 Constant: -0:104 1 (const int) -0:104 Sequence -0:104 Constant: -0:104 0 (const int) -0:104 Constant: -0:104 1 (const int) -0:104 Convert bool to int ( temp highp 2-component vector of int) -0:104 subgroupClusteredOr ( global 2-component vector of bool) -0:104 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:104 vector swizzle ( temp highp 2-component vector of int) -0:104 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:104 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:104 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:104 Constant: -0:104 1 (const int) -0:104 Constant: -0:104 1 (const int) -0:104 Sequence -0:104 Constant: -0:104 0 (const int) -0:104 Constant: -0:104 1 (const int) -0:104 Constant: -0:104 0 (const int) -0:104 0 (const int) -0:104 Constant: -0:104 1 (const uint) -0:105 move second child to first child ( temp highp 3-component vector of int) -0:105 vector swizzle ( temp highp 3-component vector of int) -0:105 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:105 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:105 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:105 Constant: -0:105 1 (const int) -0:105 Constant: -0:105 1 (const int) -0:105 Sequence -0:105 Constant: -0:105 0 (const int) -0:105 Constant: -0:105 1 (const int) -0:105 Constant: -0:105 2 (const int) -0:105 Convert bool to int ( temp highp 3-component vector of int) -0:105 subgroupClusteredOr ( global 3-component vector of bool) -0:105 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:105 vector swizzle ( temp highp 3-component vector of int) -0:105 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:105 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:105 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:105 Constant: -0:105 1 (const int) -0:105 Constant: -0:105 1 (const int) -0:105 Sequence -0:105 Constant: -0:105 0 (const int) -0:105 Constant: -0:105 1 (const int) -0:105 Constant: -0:105 2 (const int) -0:105 Constant: -0:105 0 (const int) -0:105 0 (const int) -0:105 0 (const int) -0:105 Constant: -0:105 1 (const uint) -0:106 move second child to first child ( temp highp 4-component vector of int) -0:106 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:106 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:106 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:106 Constant: -0:106 1 (const int) -0:106 Constant: -0:106 1 (const int) -0:106 Convert bool to int ( temp highp 4-component vector of int) -0:106 subgroupClusteredOr ( global 4-component vector of bool) -0:106 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:106 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:106 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:106 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:106 Constant: -0:106 1 (const int) -0:106 Constant: -0:106 1 (const int) -0:106 Constant: -0:106 0 (const int) -0:106 0 (const int) -0:106 0 (const int) -0:106 0 (const int) -0:106 Constant: -0:106 1 (const uint) -0:108 move second child to first child ( temp highp int) -0:108 direct index ( temp highp int) -0:108 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:108 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:108 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:108 Constant: -0:108 2 (const int) -0:108 Constant: -0:108 1 (const int) -0:108 Constant: -0:108 0 (const int) -0:108 subgroupClusteredXor ( global highp int) -0:108 direct index ( temp highp int) -0:108 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:108 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:108 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:108 Constant: -0:108 0 (const int) -0:108 Constant: -0:108 1 (const int) -0:108 Constant: -0:108 0 (const int) -0:108 Constant: -0:108 1 (const uint) -0:109 move second child to first child ( temp highp 2-component vector of int) -0:109 vector swizzle ( temp highp 2-component vector of int) -0:109 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:109 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:109 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:109 Constant: -0:109 2 (const int) -0:109 Constant: -0:109 1 (const int) -0:109 Sequence -0:109 Constant: -0:109 0 (const int) -0:109 Constant: -0:109 1 (const int) -0:109 subgroupClusteredXor ( global highp 2-component vector of int) -0:109 vector swizzle ( temp highp 2-component vector of int) -0:109 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:109 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:109 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:109 Constant: -0:109 1 (const int) -0:109 Constant: -0:109 1 (const int) -0:109 Sequence -0:109 Constant: -0:109 0 (const int) -0:109 Constant: -0:109 1 (const int) -0:109 Constant: -0:109 1 (const uint) -0:110 move second child to first child ( temp highp 3-component vector of int) -0:110 vector swizzle ( temp highp 3-component vector of int) -0:110 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:110 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:110 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:110 Constant: -0:110 2 (const int) -0:110 Constant: -0:110 1 (const int) -0:110 Sequence -0:110 Constant: -0:110 0 (const int) -0:110 Constant: -0:110 1 (const int) -0:110 Constant: -0:110 2 (const int) -0:110 subgroupClusteredXor ( global highp 3-component vector of int) -0:110 vector swizzle ( temp highp 3-component vector of int) -0:110 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:110 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:110 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:110 Constant: -0:110 2 (const int) -0:110 Constant: -0:110 1 (const int) -0:110 Sequence -0:110 Constant: -0:110 0 (const int) -0:110 Constant: -0:110 1 (const int) -0:110 Constant: -0:110 2 (const int) -0:110 Constant: -0:110 1 (const uint) -0:111 move second child to first child ( temp highp 4-component vector of int) -0:111 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:111 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:111 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:111 Constant: -0:111 2 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 subgroupClusteredXor ( global highp 4-component vector of int) -0:111 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:111 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:111 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:111 Constant: -0:111 3 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 Constant: -0:111 1 (const uint) -0:113 move second child to first child ( temp highp uint) -0:113 direct index ( temp highp uint) -0:113 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:113 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:113 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:113 Constant: -0:113 3 (const int) -0:113 Constant: -0:113 2 (const int) -0:113 Constant: -0:113 0 (const int) -0:113 subgroupClusteredXor ( global highp uint) -0:113 direct index ( temp highp uint) -0:113 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:113 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:113 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:113 Constant: -0:113 0 (const int) -0:113 Constant: -0:113 2 (const int) -0:113 Constant: -0:113 0 (const int) -0:113 Constant: -0:113 1 (const uint) -0:114 move second child to first child ( temp highp 2-component vector of uint) -0:114 vector swizzle ( temp highp 2-component vector of uint) -0:114 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:114 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:114 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:114 Constant: -0:114 3 (const int) -0:114 Constant: -0:114 2 (const int) -0:114 Sequence -0:114 Constant: -0:114 0 (const int) -0:114 Constant: -0:114 1 (const int) -0:114 subgroupClusteredXor ( global highp 2-component vector of uint) -0:114 vector swizzle ( temp highp 2-component vector of uint) -0:114 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:114 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:114 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:114 Constant: -0:114 1 (const int) -0:114 Constant: -0:114 2 (const int) -0:114 Sequence -0:114 Constant: -0:114 0 (const int) -0:114 Constant: -0:114 1 (const int) -0:114 Constant: -0:114 1 (const uint) -0:115 move second child to first child ( temp highp 3-component vector of uint) -0:115 vector swizzle ( temp highp 3-component vector of uint) -0:115 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:115 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:115 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:115 Constant: -0:115 3 (const int) -0:115 Constant: -0:115 2 (const int) -0:115 Sequence -0:115 Constant: -0:115 0 (const int) -0:115 Constant: -0:115 1 (const int) -0:115 Constant: -0:115 2 (const int) -0:115 subgroupClusteredXor ( global highp 3-component vector of uint) -0:115 vector swizzle ( temp highp 3-component vector of uint) -0:115 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:115 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:115 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:115 Constant: -0:115 2 (const int) -0:115 Constant: -0:115 2 (const int) -0:115 Sequence -0:115 Constant: -0:115 0 (const int) -0:115 Constant: -0:115 1 (const int) -0:115 Constant: -0:115 2 (const int) -0:115 Constant: -0:115 1 (const uint) -0:116 move second child to first child ( temp highp 4-component vector of uint) -0:116 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:116 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:116 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:116 Constant: -0:116 3 (const int) -0:116 Constant: -0:116 2 (const int) -0:116 subgroupClusteredXor ( global highp 4-component vector of uint) -0:116 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:116 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:116 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:116 Constant: -0:116 3 (const int) -0:116 Constant: -0:116 2 (const int) -0:116 Constant: -0:116 1 (const uint) -0:118 move second child to first child ( temp highp int) -0:118 direct index ( temp highp int) -0:118 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:118 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:118 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:118 Constant: -0:118 0 (const int) -0:118 Constant: -0:118 1 (const int) -0:118 Constant: -0:118 0 (const int) -0:118 Convert bool to int ( temp highp int) -0:118 subgroupClusteredXor ( global bool) -0:118 Compare Less Than ( temp bool) -0:118 direct index ( temp highp int) -0:118 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:118 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:118 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:118 Constant: -0:118 0 (const int) -0:118 Constant: -0:118 1 (const int) -0:118 Constant: -0:118 0 (const int) -0:118 Constant: -0:118 0 (const int) -0:118 Constant: -0:118 1 (const uint) -0:119 move second child to first child ( temp highp 2-component vector of int) -0:119 vector swizzle ( temp highp 2-component vector of int) -0:119 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:119 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:119 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:119 Constant: -0:119 0 (const int) -0:119 Constant: -0:119 1 (const int) -0:119 Sequence -0:119 Constant: -0:119 0 (const int) -0:119 Constant: -0:119 1 (const int) -0:119 Convert bool to int ( temp highp 2-component vector of int) -0:119 subgroupClusteredXor ( global 2-component vector of bool) -0:119 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:119 vector swizzle ( temp highp 2-component vector of int) -0:119 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:119 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:119 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:119 Constant: -0:119 1 (const int) -0:119 Constant: -0:119 1 (const int) -0:119 Sequence -0:119 Constant: -0:119 0 (const int) -0:119 Constant: -0:119 1 (const int) -0:119 Constant: -0:119 0 (const int) -0:119 0 (const int) -0:119 Constant: -0:119 1 (const uint) -0:120 move second child to first child ( temp highp 3-component vector of int) -0:120 vector swizzle ( temp highp 3-component vector of int) -0:120 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:120 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:120 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:120 Constant: -0:120 0 (const int) -0:120 Constant: -0:120 1 (const int) -0:120 Sequence -0:120 Constant: -0:120 0 (const int) -0:120 Constant: -0:120 1 (const int) -0:120 Constant: -0:120 2 (const int) -0:120 Convert bool to int ( temp highp 3-component vector of int) -0:120 subgroupClusteredXor ( global 3-component vector of bool) -0:120 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:120 vector swizzle ( temp highp 3-component vector of int) -0:120 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:120 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:120 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:120 Constant: -0:120 1 (const int) -0:120 Constant: -0:120 1 (const int) -0:120 Sequence -0:120 Constant: -0:120 0 (const int) -0:120 Constant: -0:120 1 (const int) -0:120 Constant: -0:120 2 (const int) -0:120 Constant: -0:120 0 (const int) -0:120 0 (const int) -0:120 0 (const int) -0:120 Constant: -0:120 1 (const uint) -0:121 move second child to first child ( temp highp 4-component vector of int) -0:121 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:121 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:121 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 1 (const int) -0:121 Convert bool to int ( temp highp 4-component vector of int) -0:121 subgroupClusteredXor ( global 4-component vector of bool) -0:121 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:121 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:121 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:121 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:121 Constant: -0:121 1 (const int) -0:121 Constant: -0:121 1 (const int) -0:121 Constant: -0:121 0 (const int) -0:121 0 (const int) -0:121 0 (const int) -0:121 0 (const int) -0:121 Constant: -0:121 1 (const uint) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const highp 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) - diff --git a/deps/glslang/Test/baseResults/glsl.es320.subgroupClusteredNeg.comp.out b/deps/glslang/Test/baseResults/glsl.es320.subgroupClusteredNeg.comp.out deleted file mode 100644 index 675e5070..00000000 --- a/deps/glslang/Test/baseResults/glsl.es320.subgroupClusteredNeg.comp.out +++ /dev/null @@ -1,604 +0,0 @@ -glsl.es320.subgroupClusteredNeg.comp -ERROR: 0:21: 'cluster size' : argument must be at least 1 -ERROR: 0:23: 'cluster size' : argument must be a power of 2 -ERROR: 0:26: 'cluster size' : argument must be a power of 2 -ERROR: 0:28: 'cluster size' : argument must be compile-time constant -ERROR: 0:31: 'cluster size' : argument must be compile-time constant -ERROR: 0:32: 'cluster size' : argument must be compile-time constant -ERROR: 6 compilation errors. No code generated. - - -Shader version: 320 -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_clustered -local_size = (8, 1, 1) -ERROR: node is still EOpNull! -0:14 Function Definition: main( ( global void) -0:14 Function Parameters: -0:16 Sequence -0:16 Sequence -0:16 move second child to first child ( temp highp int) -0:16 'a' ( temp highp int) -0:16 Constant: -0:16 1 (const int) -0:19 Sequence -0:19 move second child to first child ( temp highp uint) -0:19 'invocation' ( temp highp uint) -0:19 mod ( temp mediump uint) -0:19 add ( temp mediump uint) -0:19 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID) -0:19 'gl_SubgroupSize' ( in mediump uint SubgroupSize) -0:19 Constant: -0:19 4 (const uint) -0:21 move second child to first child ( temp highp 2-component vector of float) -0:21 vector swizzle ( temp highp 2-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 subgroupClusteredAdd ( global highp 2-component vector of float) -0:21 vector swizzle ( temp highp 2-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 Constant: -0:21 1 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Constant: -0:21 0 (const uint) -0:23 move second child to first child ( temp highp float) -0:23 direct index ( temp highp float) -0:23 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 0 (const int) -0:23 subgroupClusteredMul ( global highp float) -0:23 direct index ( temp highp float) -0:23 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 3 (const uint) -0:25 move second child to first child ( temp highp 2-component vector of int) -0:25 vector swizzle ( temp highp 2-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 subgroupClusteredMin ( global highp 2-component vector of int) -0:25 vector swizzle ( temp highp 2-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 8 (const uint) -0:26 move second child to first child ( temp highp 3-component vector of int) -0:26 vector swizzle ( temp highp 3-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 subgroupClusteredMin ( global highp 3-component vector of int) -0:26 vector swizzle ( temp highp 3-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 Constant: -0:26 2 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 Constant: -0:26 6 (const uint) -0:28 move second child to first child ( temp highp int) -0:28 direct index ( temp highp int) -0:28 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 Constant: -0:28 3 (const int) -0:28 Constant: -0:28 1 (const int) -0:28 Constant: -0:28 0 (const int) -0:28 subgroupClusteredOr ( global highp int) -0:28 direct index ( temp highp int) -0:28 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 1 (const int) -0:28 Constant: -0:28 0 (const int) -0:28 Convert int to uint ( temp highp uint) -0:28 'a' ( temp highp int) -0:29 move second child to first child ( temp highp 2-component vector of int) -0:29 vector swizzle ( temp highp 2-component vector of int) -0:29 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 Constant: -0:29 3 (const int) -0:29 Constant: -0:29 1 (const int) -0:29 Sequence -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 1 (const int) -0:29 subgroupClusteredOr ( global highp 2-component vector of int) -0:29 vector swizzle ( temp highp 2-component vector of int) -0:29 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 Constant: -0:29 1 (const int) -0:29 Constant: -0:29 1 (const int) -0:29 Sequence -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 1 (const int) -0:29 Constant: -0:29 1 (const uint) -0:31 move second child to first child ( temp highp int) -0:31 direct index ( temp highp int) -0:31 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 0 (const int) -0:31 subgroupClusteredXor ( global highp int) -0:31 direct index ( temp highp int) -0:31 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 0 (const int) -0:31 Convert int to uint ( temp highp uint) -0:31 add ( temp highp int) -0:31 Constant: -0:31 1 (const int) -0:31 'a' ( temp highp int) -0:32 move second child to first child ( temp highp 2-component vector of int) -0:32 vector swizzle ( temp highp 2-component vector of int) -0:32 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 1 (const int) -0:32 Sequence -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 1 (const int) -0:32 subgroupClusteredXor ( global highp 2-component vector of int) -0:32 vector swizzle ( temp highp 2-component vector of int) -0:32 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:32 Constant: -0:32 1 (const int) -0:32 Constant: -0:32 1 (const int) -0:32 Sequence -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 1 (const int) -0:32 Convert int to uint ( temp highp uint) -0:32 add ( temp highp int) -0:32 Constant: -0:32 1 (const int) -0:32 'a' ( temp highp int) -0:33 move second child to first child ( temp highp 3-component vector of int) -0:33 vector swizzle ( temp highp 3-component vector of int) -0:33 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 1 (const int) -0:33 Sequence -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 2 (const int) -0:33 subgroupClusteredXor ( global highp 3-component vector of int) -0:33 vector swizzle ( temp highp 3-component vector of int) -0:33 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 Constant: -0:33 2 (const int) -0:33 Constant: -0:33 1 (const int) -0:33 Sequence -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 2 (const int) -0:33 Constant: -0:33 2 (const uint) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const highp 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) - - -Linked compute stage: - - -Shader version: 320 -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_clustered -local_size = (8, 1, 1) -ERROR: node is still EOpNull! -0:14 Function Definition: main( ( global void) -0:14 Function Parameters: -0:16 Sequence -0:16 Sequence -0:16 move second child to first child ( temp highp int) -0:16 'a' ( temp highp int) -0:16 Constant: -0:16 1 (const int) -0:19 Sequence -0:19 move second child to first child ( temp highp uint) -0:19 'invocation' ( temp highp uint) -0:19 mod ( temp mediump uint) -0:19 add ( temp mediump uint) -0:19 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID) -0:19 'gl_SubgroupSize' ( in mediump uint SubgroupSize) -0:19 Constant: -0:19 4 (const uint) -0:21 move second child to first child ( temp highp 2-component vector of float) -0:21 vector swizzle ( temp highp 2-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 subgroupClusteredAdd ( global highp 2-component vector of float) -0:21 vector swizzle ( temp highp 2-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 Constant: -0:21 1 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Constant: -0:21 0 (const uint) -0:23 move second child to first child ( temp highp float) -0:23 direct index ( temp highp float) -0:23 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 0 (const int) -0:23 subgroupClusteredMul ( global highp float) -0:23 direct index ( temp highp float) -0:23 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 3 (const uint) -0:25 move second child to first child ( temp highp 2-component vector of int) -0:25 vector swizzle ( temp highp 2-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 subgroupClusteredMin ( global highp 2-component vector of int) -0:25 vector swizzle ( temp highp 2-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 8 (const uint) -0:26 move second child to first child ( temp highp 3-component vector of int) -0:26 vector swizzle ( temp highp 3-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 subgroupClusteredMin ( global highp 3-component vector of int) -0:26 vector swizzle ( temp highp 3-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 Constant: -0:26 2 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 Constant: -0:26 6 (const uint) -0:28 move second child to first child ( temp highp int) -0:28 direct index ( temp highp int) -0:28 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 Constant: -0:28 3 (const int) -0:28 Constant: -0:28 1 (const int) -0:28 Constant: -0:28 0 (const int) -0:28 subgroupClusteredOr ( global highp int) -0:28 direct index ( temp highp int) -0:28 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 1 (const int) -0:28 Constant: -0:28 0 (const int) -0:28 Convert int to uint ( temp highp uint) -0:28 'a' ( temp highp int) -0:29 move second child to first child ( temp highp 2-component vector of int) -0:29 vector swizzle ( temp highp 2-component vector of int) -0:29 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 Constant: -0:29 3 (const int) -0:29 Constant: -0:29 1 (const int) -0:29 Sequence -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 1 (const int) -0:29 subgroupClusteredOr ( global highp 2-component vector of int) -0:29 vector swizzle ( temp highp 2-component vector of int) -0:29 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 Constant: -0:29 1 (const int) -0:29 Constant: -0:29 1 (const int) -0:29 Sequence -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 1 (const int) -0:29 Constant: -0:29 1 (const uint) -0:31 move second child to first child ( temp highp int) -0:31 direct index ( temp highp int) -0:31 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 0 (const int) -0:31 subgroupClusteredXor ( global highp int) -0:31 direct index ( temp highp int) -0:31 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 0 (const int) -0:31 Convert int to uint ( temp highp uint) -0:31 add ( temp highp int) -0:31 Constant: -0:31 1 (const int) -0:31 'a' ( temp highp int) -0:32 move second child to first child ( temp highp 2-component vector of int) -0:32 vector swizzle ( temp highp 2-component vector of int) -0:32 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 1 (const int) -0:32 Sequence -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 1 (const int) -0:32 subgroupClusteredXor ( global highp 2-component vector of int) -0:32 vector swizzle ( temp highp 2-component vector of int) -0:32 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:32 Constant: -0:32 1 (const int) -0:32 Constant: -0:32 1 (const int) -0:32 Sequence -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 1 (const int) -0:32 Convert int to uint ( temp highp uint) -0:32 add ( temp highp int) -0:32 Constant: -0:32 1 (const int) -0:32 'a' ( temp highp int) -0:33 move second child to first child ( temp highp 3-component vector of int) -0:33 vector swizzle ( temp highp 3-component vector of int) -0:33 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 1 (const int) -0:33 Sequence -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 2 (const int) -0:33 subgroupClusteredXor ( global highp 3-component vector of int) -0:33 vector swizzle ( temp highp 3-component vector of int) -0:33 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 Constant: -0:33 2 (const int) -0:33 Constant: -0:33 1 (const int) -0:33 Sequence -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 2 (const int) -0:33 Constant: -0:33 2 (const uint) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const highp 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) - diff --git a/deps/glslang/Test/baseResults/glsl.es320.subgroupPartitioned.comp.out b/deps/glslang/Test/baseResults/glsl.es320.subgroupPartitioned.comp.out deleted file mode 100644 index 4f6cfe49..00000000 --- a/deps/glslang/Test/baseResults/glsl.es320.subgroupPartitioned.comp.out +++ /dev/null @@ -1,13967 +0,0 @@ -glsl.es320.subgroupPartitioned.comp -Shader version: 320 -Requested GL_KHR_shader_subgroup_basic -Requested GL_NV_shader_subgroup_partitioned -local_size = (8, 1, 1) -0:? Sequence -0:14 Function Definition: main( ( global void) -0:14 Function Parameters: -0:16 Sequence -0:16 Sequence -0:16 move second child to first child ( temp highp uint) -0:16 'invocation' ( temp highp uint) -0:16 mod ( temp mediump uint) -0:16 add ( temp mediump uint) -0:16 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID) -0:16 'gl_SubgroupSize' ( in mediump uint SubgroupSize) -0:16 Constant: -0:16 4 (const uint) -0:18 Sequence -0:18 move second child to first child ( temp highp 4-component vector of uint) -0:18 'ballot' ( temp highp 4-component vector of uint) -0:18 subgroupPartitionNV ( global highp 4-component vector of uint) -0:18 'invocation' ( temp highp uint) -0:20 move second child to first child ( temp highp 4-component vector of uint) -0:20 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:20 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 2 (const int) -0:20 subgroupPartitionNV ( global highp 4-component vector of uint) -0:20 direct index ( temp highp float) -0:20 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:20 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 0 (const int) -0:21 move second child to first child ( temp highp 4-component vector of uint) -0:21 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 2 (const int) -0:21 subgroupPartitionNV ( global highp 4-component vector of uint) -0:21 vector swizzle ( temp highp 2-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:22 move second child to first child ( temp highp 4-component vector of uint) -0:22 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:22 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 2 (const int) -0:22 subgroupPartitionNV ( global highp 4-component vector of uint) -0:22 vector swizzle ( temp highp 3-component vector of float) -0:22 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:22 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 0 (const int) -0:22 Sequence -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 Constant: -0:22 2 (const int) -0:23 move second child to first child ( temp highp 4-component vector of uint) -0:23 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 2 (const int) -0:23 subgroupPartitionNV ( global highp 4-component vector of uint) -0:23 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 0 (const int) -0:25 move second child to first child ( temp highp 4-component vector of uint) -0:25 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 subgroupPartitionNV ( global highp 4-component vector of uint) -0:25 direct index ( temp highp int) -0:25 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 0 (const int) -0:26 move second child to first child ( temp highp 4-component vector of uint) -0:26 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 subgroupPartitionNV ( global highp 4-component vector of uint) -0:26 vector swizzle ( temp highp 2-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:27 move second child to first child ( temp highp 4-component vector of uint) -0:27 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:27 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 2 (const int) -0:27 subgroupPartitionNV ( global highp 4-component vector of uint) -0:27 vector swizzle ( temp highp 3-component vector of int) -0:27 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:27 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Sequence -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Constant: -0:27 2 (const int) -0:28 move second child to first child ( temp highp 4-component vector of uint) -0:28 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 2 (const int) -0:28 subgroupPartitionNV ( global highp 4-component vector of uint) -0:28 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 1 (const int) -0:30 move second child to first child ( temp highp 4-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:30 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 subgroupPartitionNV ( global highp 4-component vector of uint) -0:30 direct index ( temp highp uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:30 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 Constant: -0:30 0 (const int) -0:31 move second child to first child ( temp highp 4-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 subgroupPartitionNV ( global highp 4-component vector of uint) -0:31 vector swizzle ( temp highp 2-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 Sequence -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:32 move second child to first child ( temp highp 4-component vector of uint) -0:32 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 2 (const int) -0:32 subgroupPartitionNV ( global highp 4-component vector of uint) -0:32 vector swizzle ( temp highp 3-component vector of uint) -0:32 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 2 (const int) -0:32 Sequence -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 1 (const int) -0:32 Constant: -0:32 2 (const int) -0:33 move second child to first child ( temp highp 4-component vector of uint) -0:33 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 2 (const int) -0:33 subgroupPartitionNV ( global highp 4-component vector of uint) -0:33 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 2 (const int) -0:35 move second child to first child ( temp highp 4-component vector of uint) -0:35 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 2 (const int) -0:35 subgroupPartitionNV ( global highp 4-component vector of uint) -0:35 Convert int to bool ( temp bool) -0:35 direct index ( temp highp int) -0:35 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 0 (const int) -0:36 move second child to first child ( temp highp 4-component vector of uint) -0:36 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 2 (const int) -0:36 subgroupPartitionNV ( global highp 4-component vector of uint) -0:36 Convert int to bool ( temp 2-component vector of bool) -0:36 vector swizzle ( temp highp 2-component vector of int) -0:36 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:37 move second child to first child ( temp highp 4-component vector of uint) -0:37 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:37 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:37 Constant: -0:37 1 (const int) -0:37 Constant: -0:37 2 (const int) -0:37 subgroupPartitionNV ( global highp 4-component vector of uint) -0:37 Convert int to bool ( temp 3-component vector of bool) -0:37 vector swizzle ( temp highp 3-component vector of int) -0:37 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:37 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 1 (const int) -0:37 Sequence -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 1 (const int) -0:37 Constant: -0:37 2 (const int) -0:38 move second child to first child ( temp highp 4-component vector of uint) -0:38 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 Constant: -0:38 1 (const int) -0:38 Constant: -0:38 2 (const int) -0:38 subgroupPartitionNV ( global highp 4-component vector of uint) -0:38 Convert int to bool ( temp 4-component vector of bool) -0:38 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 1 (const int) -0:40 move second child to first child ( temp highp float) -0:40 direct index ( temp highp float) -0:40 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 subgroupPartitionedAddNV ( global highp float) -0:40 direct index ( temp highp float) -0:40 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 'ballot' ( temp highp 4-component vector of uint) -0:41 move second child to first child ( temp highp 2-component vector of float) -0:41 vector swizzle ( temp highp 2-component vector of float) -0:41 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 0 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 subgroupPartitionedAddNV ( global highp 2-component vector of float) -0:41 vector swizzle ( temp highp 2-component vector of float) -0:41 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 0 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 'ballot' ( temp highp 4-component vector of uint) -0:42 move second child to first child ( temp highp 3-component vector of float) -0:42 vector swizzle ( temp highp 3-component vector of float) -0:42 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:42 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 0 (const int) -0:42 Sequence -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 2 (const int) -0:42 subgroupPartitionedAddNV ( global highp 3-component vector of float) -0:42 vector swizzle ( temp highp 3-component vector of float) -0:42 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:42 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:42 Constant: -0:42 2 (const int) -0:42 Constant: -0:42 0 (const int) -0:42 Sequence -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 2 (const int) -0:42 'ballot' ( temp highp 4-component vector of uint) -0:43 move second child to first child ( temp highp 4-component vector of float) -0:43 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:43 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 Constant: -0:43 1 (const int) -0:43 Constant: -0:43 0 (const int) -0:43 subgroupPartitionedAddNV ( global highp 4-component vector of float) -0:43 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:43 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 Constant: -0:43 3 (const int) -0:43 Constant: -0:43 0 (const int) -0:43 'ballot' ( temp highp 4-component vector of uint) -0:45 move second child to first child ( temp highp int) -0:45 direct index ( temp highp int) -0:45 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 0 (const int) -0:45 subgroupPartitionedAddNV ( global highp int) -0:45 direct index ( temp highp int) -0:45 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 0 (const int) -0:45 'ballot' ( temp highp 4-component vector of uint) -0:46 move second child to first child ( temp highp 2-component vector of int) -0:46 vector swizzle ( temp highp 2-component vector of int) -0:46 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 subgroupPartitionedAddNV ( global highp 2-component vector of int) -0:46 vector swizzle ( temp highp 2-component vector of int) -0:46 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 'ballot' ( temp highp 4-component vector of uint) -0:47 move second child to first child ( temp highp 3-component vector of int) -0:47 vector swizzle ( temp highp 3-component vector of int) -0:47 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:47 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:47 Constant: -0:47 1 (const int) -0:47 Constant: -0:47 1 (const int) -0:47 Sequence -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 1 (const int) -0:47 Constant: -0:47 2 (const int) -0:47 subgroupPartitionedAddNV ( global highp 3-component vector of int) -0:47 vector swizzle ( temp highp 3-component vector of int) -0:47 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:47 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:47 Constant: -0:47 2 (const int) -0:47 Constant: -0:47 1 (const int) -0:47 Sequence -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 1 (const int) -0:47 Constant: -0:47 2 (const int) -0:47 'ballot' ( temp highp 4-component vector of uint) -0:48 move second child to first child ( temp highp 4-component vector of int) -0:48 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:48 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 Constant: -0:48 1 (const int) -0:48 Constant: -0:48 1 (const int) -0:48 subgroupPartitionedAddNV ( global highp 4-component vector of int) -0:48 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:48 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 Constant: -0:48 3 (const int) -0:48 Constant: -0:48 1 (const int) -0:48 'ballot' ( temp highp 4-component vector of uint) -0:50 move second child to first child ( temp highp uint) -0:50 direct index ( temp highp uint) -0:50 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 Constant: -0:50 0 (const int) -0:50 subgroupPartitionedAddNV ( global highp uint) -0:50 direct index ( temp highp uint) -0:50 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 Constant: -0:50 0 (const int) -0:50 'ballot' ( temp highp 4-component vector of uint) -0:51 move second child to first child ( temp highp 2-component vector of uint) -0:51 vector swizzle ( temp highp 2-component vector of uint) -0:51 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 2 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 subgroupPartitionedAddNV ( global highp 2-component vector of uint) -0:51 vector swizzle ( temp highp 2-component vector of uint) -0:51 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 2 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 'ballot' ( temp highp 4-component vector of uint) -0:52 move second child to first child ( temp highp 3-component vector of uint) -0:52 vector swizzle ( temp highp 3-component vector of uint) -0:52 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:52 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:52 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:52 Constant: -0:52 1 (const int) -0:52 Constant: -0:52 2 (const int) -0:52 Sequence -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 1 (const int) -0:52 Constant: -0:52 2 (const int) -0:52 subgroupPartitionedAddNV ( global highp 3-component vector of uint) -0:52 vector swizzle ( temp highp 3-component vector of uint) -0:52 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:52 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:52 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:52 Constant: -0:52 2 (const int) -0:52 Constant: -0:52 2 (const int) -0:52 Sequence -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 1 (const int) -0:52 Constant: -0:52 2 (const int) -0:52 'ballot' ( temp highp 4-component vector of uint) -0:53 move second child to first child ( temp highp 4-component vector of uint) -0:53 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:53 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 Constant: -0:53 1 (const int) -0:53 Constant: -0:53 2 (const int) -0:53 subgroupPartitionedAddNV ( global highp 4-component vector of uint) -0:53 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:53 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 Constant: -0:53 3 (const int) -0:53 Constant: -0:53 2 (const int) -0:53 'ballot' ( temp highp 4-component vector of uint) -0:55 move second child to first child ( temp highp float) -0:55 direct index ( temp highp float) -0:55 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 Constant: -0:55 2 (const int) -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 0 (const int) -0:55 subgroupPartitionedMulNV ( global highp float) -0:55 direct index ( temp highp float) -0:55 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 0 (const int) -0:55 'ballot' ( temp highp 4-component vector of uint) -0:56 move second child to first child ( temp highp 2-component vector of float) -0:56 vector swizzle ( temp highp 2-component vector of float) -0:56 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 Constant: -0:56 2 (const int) -0:56 Constant: -0:56 0 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 subgroupPartitionedMulNV ( global highp 2-component vector of float) -0:56 vector swizzle ( temp highp 2-component vector of float) -0:56 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 0 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 'ballot' ( temp highp 4-component vector of uint) -0:57 move second child to first child ( temp highp 3-component vector of float) -0:57 vector swizzle ( temp highp 3-component vector of float) -0:57 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:57 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:57 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:57 Constant: -0:57 2 (const int) -0:57 Constant: -0:57 0 (const int) -0:57 Sequence -0:57 Constant: -0:57 0 (const int) -0:57 Constant: -0:57 1 (const int) -0:57 Constant: -0:57 2 (const int) -0:57 subgroupPartitionedMulNV ( global highp 3-component vector of float) -0:57 vector swizzle ( temp highp 3-component vector of float) -0:57 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:57 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:57 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:57 Constant: -0:57 2 (const int) -0:57 Constant: -0:57 0 (const int) -0:57 Sequence -0:57 Constant: -0:57 0 (const int) -0:57 Constant: -0:57 1 (const int) -0:57 Constant: -0:57 2 (const int) -0:57 'ballot' ( temp highp 4-component vector of uint) -0:58 move second child to first child ( temp highp 4-component vector of float) -0:58 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:58 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 Constant: -0:58 2 (const int) -0:58 Constant: -0:58 0 (const int) -0:58 subgroupPartitionedMulNV ( global highp 4-component vector of float) -0:58 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:58 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 Constant: -0:58 3 (const int) -0:58 Constant: -0:58 0 (const int) -0:58 'ballot' ( temp highp 4-component vector of uint) -0:60 move second child to first child ( temp highp int) -0:60 direct index ( temp highp int) -0:60 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:60 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 Constant: -0:60 2 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 0 (const int) -0:60 subgroupPartitionedMulNV ( global highp int) -0:60 direct index ( temp highp int) -0:60 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:60 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 0 (const int) -0:60 'ballot' ( temp highp 4-component vector of uint) -0:61 move second child to first child ( temp highp 2-component vector of int) -0:61 vector swizzle ( temp highp 2-component vector of int) -0:61 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:61 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 Constant: -0:61 2 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 Sequence -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 subgroupPartitionedMulNV ( global highp 2-component vector of int) -0:61 vector swizzle ( temp highp 2-component vector of int) -0:61 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:61 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 Constant: -0:61 1 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 Sequence -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 'ballot' ( temp highp 4-component vector of uint) -0:62 move second child to first child ( temp highp 3-component vector of int) -0:62 vector swizzle ( temp highp 3-component vector of int) -0:62 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:62 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:62 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:62 Constant: -0:62 2 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 Sequence -0:62 Constant: -0:62 0 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 Constant: -0:62 2 (const int) -0:62 subgroupPartitionedMulNV ( global highp 3-component vector of int) -0:62 vector swizzle ( temp highp 3-component vector of int) -0:62 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:62 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:62 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:62 Constant: -0:62 2 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 Sequence -0:62 Constant: -0:62 0 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 Constant: -0:62 2 (const int) -0:62 'ballot' ( temp highp 4-component vector of uint) -0:63 move second child to first child ( temp highp 4-component vector of int) -0:63 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:63 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 Constant: -0:63 2 (const int) -0:63 Constant: -0:63 1 (const int) -0:63 subgroupPartitionedMulNV ( global highp 4-component vector of int) -0:63 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:63 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 Constant: -0:63 3 (const int) -0:63 Constant: -0:63 1 (const int) -0:63 'ballot' ( temp highp 4-component vector of uint) -0:65 move second child to first child ( temp highp uint) -0:65 direct index ( temp highp uint) -0:65 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:65 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 Constant: -0:65 2 (const int) -0:65 Constant: -0:65 2 (const int) -0:65 Constant: -0:65 0 (const int) -0:65 subgroupPartitionedMulNV ( global highp uint) -0:65 direct index ( temp highp uint) -0:65 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:65 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 2 (const int) -0:65 Constant: -0:65 0 (const int) -0:65 'ballot' ( temp highp 4-component vector of uint) -0:66 move second child to first child ( temp highp 2-component vector of uint) -0:66 vector swizzle ( temp highp 2-component vector of uint) -0:66 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:66 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 Constant: -0:66 2 (const int) -0:66 Constant: -0:66 2 (const int) -0:66 Sequence -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 subgroupPartitionedMulNV ( global highp 2-component vector of uint) -0:66 vector swizzle ( temp highp 2-component vector of uint) -0:66 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:66 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 2 (const int) -0:66 Sequence -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 'ballot' ( temp highp 4-component vector of uint) -0:67 move second child to first child ( temp highp 3-component vector of uint) -0:67 vector swizzle ( temp highp 3-component vector of uint) -0:67 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:67 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:67 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:67 Constant: -0:67 2 (const int) -0:67 Constant: -0:67 2 (const int) -0:67 Sequence -0:67 Constant: -0:67 0 (const int) -0:67 Constant: -0:67 1 (const int) -0:67 Constant: -0:67 2 (const int) -0:67 subgroupPartitionedMulNV ( global highp 3-component vector of uint) -0:67 vector swizzle ( temp highp 3-component vector of uint) -0:67 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:67 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:67 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:67 Constant: -0:67 2 (const int) -0:67 Constant: -0:67 2 (const int) -0:67 Sequence -0:67 Constant: -0:67 0 (const int) -0:67 Constant: -0:67 1 (const int) -0:67 Constant: -0:67 2 (const int) -0:67 'ballot' ( temp highp 4-component vector of uint) -0:68 move second child to first child ( temp highp 4-component vector of uint) -0:68 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:68 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 Constant: -0:68 2 (const int) -0:68 Constant: -0:68 2 (const int) -0:68 subgroupPartitionedMulNV ( global highp 4-component vector of uint) -0:68 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:68 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 Constant: -0:68 3 (const int) -0:68 Constant: -0:68 2 (const int) -0:68 'ballot' ( temp highp 4-component vector of uint) -0:70 move second child to first child ( temp highp float) -0:70 direct index ( temp highp float) -0:70 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:70 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 Constant: -0:70 2 (const int) -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 0 (const int) -0:70 subgroupPartitionedMinNV ( global highp float) -0:70 direct index ( temp highp float) -0:70 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:70 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 0 (const int) -0:70 'ballot' ( temp highp 4-component vector of uint) -0:71 move second child to first child ( temp highp 2-component vector of float) -0:71 vector swizzle ( temp highp 2-component vector of float) -0:71 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:71 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 Constant: -0:71 2 (const int) -0:71 Constant: -0:71 0 (const int) -0:71 Sequence -0:71 Constant: -0:71 0 (const int) -0:71 Constant: -0:71 1 (const int) -0:71 subgroupPartitionedMinNV ( global highp 2-component vector of float) -0:71 vector swizzle ( temp highp 2-component vector of float) -0:71 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:71 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 Constant: -0:71 1 (const int) -0:71 Constant: -0:71 0 (const int) -0:71 Sequence -0:71 Constant: -0:71 0 (const int) -0:71 Constant: -0:71 1 (const int) -0:71 'ballot' ( temp highp 4-component vector of uint) -0:72 move second child to first child ( temp highp 3-component vector of float) -0:72 vector swizzle ( temp highp 3-component vector of float) -0:72 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:72 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:72 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:72 Constant: -0:72 2 (const int) -0:72 Constant: -0:72 0 (const int) -0:72 Sequence -0:72 Constant: -0:72 0 (const int) -0:72 Constant: -0:72 1 (const int) -0:72 Constant: -0:72 2 (const int) -0:72 subgroupPartitionedMinNV ( global highp 3-component vector of float) -0:72 vector swizzle ( temp highp 3-component vector of float) -0:72 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:72 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:72 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:72 Constant: -0:72 2 (const int) -0:72 Constant: -0:72 0 (const int) -0:72 Sequence -0:72 Constant: -0:72 0 (const int) -0:72 Constant: -0:72 1 (const int) -0:72 Constant: -0:72 2 (const int) -0:72 'ballot' ( temp highp 4-component vector of uint) -0:73 move second child to first child ( temp highp 4-component vector of float) -0:73 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:73 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 Constant: -0:73 2 (const int) -0:73 Constant: -0:73 0 (const int) -0:73 subgroupPartitionedMinNV ( global highp 4-component vector of float) -0:73 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:73 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 Constant: -0:73 3 (const int) -0:73 Constant: -0:73 0 (const int) -0:73 'ballot' ( temp highp 4-component vector of uint) -0:75 move second child to first child ( temp highp int) -0:75 direct index ( temp highp int) -0:75 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:75 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:75 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:75 Constant: -0:75 3 (const int) -0:75 Constant: -0:75 1 (const int) -0:75 Constant: -0:75 0 (const int) -0:75 subgroupPartitionedMinNV ( global highp int) -0:75 direct index ( temp highp int) -0:75 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:75 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:75 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 1 (const int) -0:75 Constant: -0:75 0 (const int) -0:75 'ballot' ( temp highp 4-component vector of uint) -0:76 move second child to first child ( temp highp 2-component vector of int) -0:76 vector swizzle ( temp highp 2-component vector of int) -0:76 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:76 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:76 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:76 Constant: -0:76 3 (const int) -0:76 Constant: -0:76 1 (const int) -0:76 Sequence -0:76 Constant: -0:76 0 (const int) -0:76 Constant: -0:76 1 (const int) -0:76 subgroupPartitionedMinNV ( global highp 2-component vector of int) -0:76 vector swizzle ( temp highp 2-component vector of int) -0:76 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:76 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:76 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:76 Constant: -0:76 1 (const int) -0:76 Constant: -0:76 1 (const int) -0:76 Sequence -0:76 Constant: -0:76 0 (const int) -0:76 Constant: -0:76 1 (const int) -0:76 'ballot' ( temp highp 4-component vector of uint) -0:77 move second child to first child ( temp highp 3-component vector of int) -0:77 vector swizzle ( temp highp 3-component vector of int) -0:77 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:77 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:77 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:77 Constant: -0:77 3 (const int) -0:77 Constant: -0:77 1 (const int) -0:77 Sequence -0:77 Constant: -0:77 0 (const int) -0:77 Constant: -0:77 1 (const int) -0:77 Constant: -0:77 2 (const int) -0:77 subgroupPartitionedMinNV ( global highp 3-component vector of int) -0:77 vector swizzle ( temp highp 3-component vector of int) -0:77 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:77 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:77 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:77 Constant: -0:77 2 (const int) -0:77 Constant: -0:77 1 (const int) -0:77 Sequence -0:77 Constant: -0:77 0 (const int) -0:77 Constant: -0:77 1 (const int) -0:77 Constant: -0:77 2 (const int) -0:77 'ballot' ( temp highp 4-component vector of uint) -0:78 move second child to first child ( temp highp 4-component vector of int) -0:78 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:78 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:78 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:78 Constant: -0:78 3 (const int) -0:78 Constant: -0:78 1 (const int) -0:78 subgroupPartitionedMinNV ( global highp 4-component vector of int) -0:78 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:78 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:78 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:78 Constant: -0:78 3 (const int) -0:78 Constant: -0:78 1 (const int) -0:78 'ballot' ( temp highp 4-component vector of uint) -0:80 move second child to first child ( temp highp uint) -0:80 direct index ( temp highp uint) -0:80 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:80 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:80 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:80 Constant: -0:80 3 (const int) -0:80 Constant: -0:80 2 (const int) -0:80 Constant: -0:80 0 (const int) -0:80 subgroupPartitionedMinNV ( global highp uint) -0:80 direct index ( temp highp uint) -0:80 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:80 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:80 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 2 (const int) -0:80 Constant: -0:80 0 (const int) -0:80 'ballot' ( temp highp 4-component vector of uint) -0:81 move second child to first child ( temp highp 2-component vector of uint) -0:81 vector swizzle ( temp highp 2-component vector of uint) -0:81 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:81 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:81 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:81 Constant: -0:81 3 (const int) -0:81 Constant: -0:81 2 (const int) -0:81 Sequence -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 1 (const int) -0:81 subgroupPartitionedMinNV ( global highp 2-component vector of uint) -0:81 vector swizzle ( temp highp 2-component vector of uint) -0:81 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:81 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:81 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:81 Constant: -0:81 1 (const int) -0:81 Constant: -0:81 2 (const int) -0:81 Sequence -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 1 (const int) -0:81 'ballot' ( temp highp 4-component vector of uint) -0:82 move second child to first child ( temp highp 3-component vector of uint) -0:82 vector swizzle ( temp highp 3-component vector of uint) -0:82 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:82 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:82 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:82 Constant: -0:82 3 (const int) -0:82 Constant: -0:82 2 (const int) -0:82 Sequence -0:82 Constant: -0:82 0 (const int) -0:82 Constant: -0:82 1 (const int) -0:82 Constant: -0:82 2 (const int) -0:82 subgroupPartitionedMinNV ( global highp 3-component vector of uint) -0:82 vector swizzle ( temp highp 3-component vector of uint) -0:82 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:82 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:82 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:82 Constant: -0:82 2 (const int) -0:82 Constant: -0:82 2 (const int) -0:82 Sequence -0:82 Constant: -0:82 0 (const int) -0:82 Constant: -0:82 1 (const int) -0:82 Constant: -0:82 2 (const int) -0:82 'ballot' ( temp highp 4-component vector of uint) -0:83 move second child to first child ( temp highp 4-component vector of uint) -0:83 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:83 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:83 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:83 Constant: -0:83 3 (const int) -0:83 Constant: -0:83 2 (const int) -0:83 subgroupPartitionedMinNV ( global highp 4-component vector of uint) -0:83 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:83 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:83 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:83 Constant: -0:83 3 (const int) -0:83 Constant: -0:83 2 (const int) -0:83 'ballot' ( temp highp 4-component vector of uint) -0:85 move second child to first child ( temp highp float) -0:85 direct index ( temp highp float) -0:85 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:85 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:85 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:85 Constant: -0:85 3 (const int) -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 0 (const int) -0:85 subgroupPartitionedMaxNV ( global highp float) -0:85 direct index ( temp highp float) -0:85 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:85 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:85 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 0 (const int) -0:85 'ballot' ( temp highp 4-component vector of uint) -0:86 move second child to first child ( temp highp 2-component vector of float) -0:86 vector swizzle ( temp highp 2-component vector of float) -0:86 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:86 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:86 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:86 Constant: -0:86 3 (const int) -0:86 Constant: -0:86 0 (const int) -0:86 Sequence -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 1 (const int) -0:86 subgroupPartitionedMaxNV ( global highp 2-component vector of float) -0:86 vector swizzle ( temp highp 2-component vector of float) -0:86 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:86 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:86 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:86 Constant: -0:86 1 (const int) -0:86 Constant: -0:86 0 (const int) -0:86 Sequence -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 1 (const int) -0:86 'ballot' ( temp highp 4-component vector of uint) -0:87 move second child to first child ( temp highp 3-component vector of float) -0:87 vector swizzle ( temp highp 3-component vector of float) -0:87 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:87 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:87 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:87 Constant: -0:87 3 (const int) -0:87 Constant: -0:87 0 (const int) -0:87 Sequence -0:87 Constant: -0:87 0 (const int) -0:87 Constant: -0:87 1 (const int) -0:87 Constant: -0:87 2 (const int) -0:87 subgroupPartitionedMaxNV ( global highp 3-component vector of float) -0:87 vector swizzle ( temp highp 3-component vector of float) -0:87 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:87 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:87 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:87 Constant: -0:87 2 (const int) -0:87 Constant: -0:87 0 (const int) -0:87 Sequence -0:87 Constant: -0:87 0 (const int) -0:87 Constant: -0:87 1 (const int) -0:87 Constant: -0:87 2 (const int) -0:87 'ballot' ( temp highp 4-component vector of uint) -0:88 move second child to first child ( temp highp 4-component vector of float) -0:88 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:88 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:88 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:88 Constant: -0:88 3 (const int) -0:88 Constant: -0:88 0 (const int) -0:88 subgroupPartitionedMaxNV ( global highp 4-component vector of float) -0:88 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:88 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:88 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:88 Constant: -0:88 3 (const int) -0:88 Constant: -0:88 0 (const int) -0:88 'ballot' ( temp highp 4-component vector of uint) -0:90 move second child to first child ( temp highp int) -0:90 direct index ( temp highp int) -0:90 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:90 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:90 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:90 Constant: -0:90 0 (const int) -0:90 Constant: -0:90 1 (const int) -0:90 Constant: -0:90 0 (const int) -0:90 subgroupPartitionedMaxNV ( global highp int) -0:90 direct index ( temp highp int) -0:90 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:90 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:90 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:90 Constant: -0:90 0 (const int) -0:90 Constant: -0:90 1 (const int) -0:90 Constant: -0:90 0 (const int) -0:90 'ballot' ( temp highp 4-component vector of uint) -0:91 move second child to first child ( temp highp 2-component vector of int) -0:91 vector swizzle ( temp highp 2-component vector of int) -0:91 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:91 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:91 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:91 Constant: -0:91 0 (const int) -0:91 Constant: -0:91 1 (const int) -0:91 Sequence -0:91 Constant: -0:91 0 (const int) -0:91 Constant: -0:91 1 (const int) -0:91 subgroupPartitionedMaxNV ( global highp 2-component vector of int) -0:91 vector swizzle ( temp highp 2-component vector of int) -0:91 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:91 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:91 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:91 Constant: -0:91 1 (const int) -0:91 Constant: -0:91 1 (const int) -0:91 Sequence -0:91 Constant: -0:91 0 (const int) -0:91 Constant: -0:91 1 (const int) -0:91 'ballot' ( temp highp 4-component vector of uint) -0:92 move second child to first child ( temp highp 3-component vector of int) -0:92 vector swizzle ( temp highp 3-component vector of int) -0:92 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:92 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:92 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:92 Constant: -0:92 0 (const int) -0:92 Constant: -0:92 1 (const int) -0:92 Sequence -0:92 Constant: -0:92 0 (const int) -0:92 Constant: -0:92 1 (const int) -0:92 Constant: -0:92 2 (const int) -0:92 subgroupPartitionedMaxNV ( global highp 3-component vector of int) -0:92 vector swizzle ( temp highp 3-component vector of int) -0:92 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:92 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:92 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:92 Constant: -0:92 2 (const int) -0:92 Constant: -0:92 1 (const int) -0:92 Sequence -0:92 Constant: -0:92 0 (const int) -0:92 Constant: -0:92 1 (const int) -0:92 Constant: -0:92 2 (const int) -0:92 'ballot' ( temp highp 4-component vector of uint) -0:93 move second child to first child ( temp highp 4-component vector of int) -0:93 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:93 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:93 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:93 Constant: -0:93 0 (const int) -0:93 Constant: -0:93 1 (const int) -0:93 subgroupPartitionedMaxNV ( global highp 4-component vector of int) -0:93 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:93 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:93 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:93 Constant: -0:93 3 (const int) -0:93 Constant: -0:93 1 (const int) -0:93 'ballot' ( temp highp 4-component vector of uint) -0:95 move second child to first child ( temp highp uint) -0:95 direct index ( temp highp uint) -0:95 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:95 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:95 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 2 (const int) -0:95 Constant: -0:95 0 (const int) -0:95 subgroupPartitionedMaxNV ( global highp uint) -0:95 direct index ( temp highp uint) -0:95 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:95 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:95 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 2 (const int) -0:95 Constant: -0:95 0 (const int) -0:95 'ballot' ( temp highp 4-component vector of uint) -0:96 move second child to first child ( temp highp 2-component vector of uint) -0:96 vector swizzle ( temp highp 2-component vector of uint) -0:96 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:96 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:96 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:96 Constant: -0:96 0 (const int) -0:96 Constant: -0:96 2 (const int) -0:96 Sequence -0:96 Constant: -0:96 0 (const int) -0:96 Constant: -0:96 1 (const int) -0:96 subgroupPartitionedMaxNV ( global highp 2-component vector of uint) -0:96 vector swizzle ( temp highp 2-component vector of uint) -0:96 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:96 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:96 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:96 Constant: -0:96 1 (const int) -0:96 Constant: -0:96 2 (const int) -0:96 Sequence -0:96 Constant: -0:96 0 (const int) -0:96 Constant: -0:96 1 (const int) -0:96 'ballot' ( temp highp 4-component vector of uint) -0:97 move second child to first child ( temp highp 3-component vector of uint) -0:97 vector swizzle ( temp highp 3-component vector of uint) -0:97 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:97 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:97 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:97 Constant: -0:97 0 (const int) -0:97 Constant: -0:97 2 (const int) -0:97 Sequence -0:97 Constant: -0:97 0 (const int) -0:97 Constant: -0:97 1 (const int) -0:97 Constant: -0:97 2 (const int) -0:97 subgroupPartitionedMaxNV ( global highp 3-component vector of uint) -0:97 vector swizzle ( temp highp 3-component vector of uint) -0:97 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:97 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:97 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:97 Constant: -0:97 2 (const int) -0:97 Constant: -0:97 2 (const int) -0:97 Sequence -0:97 Constant: -0:97 0 (const int) -0:97 Constant: -0:97 1 (const int) -0:97 Constant: -0:97 2 (const int) -0:97 'ballot' ( temp highp 4-component vector of uint) -0:98 move second child to first child ( temp highp 4-component vector of uint) -0:98 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:98 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:98 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:98 Constant: -0:98 0 (const int) -0:98 Constant: -0:98 2 (const int) -0:98 subgroupPartitionedMaxNV ( global highp 4-component vector of uint) -0:98 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:98 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:98 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:98 Constant: -0:98 3 (const int) -0:98 Constant: -0:98 2 (const int) -0:98 'ballot' ( temp highp 4-component vector of uint) -0:100 move second child to first child ( temp highp int) -0:100 direct index ( temp highp int) -0:100 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:100 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:100 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:100 Constant: -0:100 0 (const int) -0:100 Constant: -0:100 1 (const int) -0:100 Constant: -0:100 0 (const int) -0:100 subgroupPartitionedAndNV ( global highp int) -0:100 direct index ( temp highp int) -0:100 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:100 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:100 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:100 Constant: -0:100 0 (const int) -0:100 Constant: -0:100 1 (const int) -0:100 Constant: -0:100 0 (const int) -0:100 'ballot' ( temp highp 4-component vector of uint) -0:101 move second child to first child ( temp highp 2-component vector of int) -0:101 vector swizzle ( temp highp 2-component vector of int) -0:101 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:101 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:101 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 1 (const int) -0:101 Sequence -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 1 (const int) -0:101 subgroupPartitionedAndNV ( global highp 2-component vector of int) -0:101 vector swizzle ( temp highp 2-component vector of int) -0:101 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:101 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:101 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:101 Constant: -0:101 1 (const int) -0:101 Constant: -0:101 1 (const int) -0:101 Sequence -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 1 (const int) -0:101 'ballot' ( temp highp 4-component vector of uint) -0:102 move second child to first child ( temp highp 3-component vector of int) -0:102 vector swizzle ( temp highp 3-component vector of int) -0:102 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:102 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:102 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:102 Constant: -0:102 0 (const int) -0:102 Constant: -0:102 1 (const int) -0:102 Sequence -0:102 Constant: -0:102 0 (const int) -0:102 Constant: -0:102 1 (const int) -0:102 Constant: -0:102 2 (const int) -0:102 subgroupPartitionedAndNV ( global highp 3-component vector of int) -0:102 vector swizzle ( temp highp 3-component vector of int) -0:102 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:102 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:102 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:102 Constant: -0:102 2 (const int) -0:102 Constant: -0:102 1 (const int) -0:102 Sequence -0:102 Constant: -0:102 0 (const int) -0:102 Constant: -0:102 1 (const int) -0:102 Constant: -0:102 2 (const int) -0:102 'ballot' ( temp highp 4-component vector of uint) -0:103 move second child to first child ( temp highp 4-component vector of int) -0:103 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:103 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:103 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:103 Constant: -0:103 0 (const int) -0:103 Constant: -0:103 1 (const int) -0:103 subgroupPartitionedAndNV ( global highp 4-component vector of int) -0:103 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:103 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:103 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:103 Constant: -0:103 3 (const int) -0:103 Constant: -0:103 1 (const int) -0:103 'ballot' ( temp highp 4-component vector of uint) -0:105 move second child to first child ( temp highp uint) -0:105 direct index ( temp highp uint) -0:105 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:105 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:105 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:105 Constant: -0:105 1 (const int) -0:105 Constant: -0:105 2 (const int) -0:105 Constant: -0:105 0 (const int) -0:105 subgroupPartitionedAndNV ( global highp uint) -0:105 direct index ( temp highp uint) -0:105 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:105 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:105 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:105 Constant: -0:105 0 (const int) -0:105 Constant: -0:105 2 (const int) -0:105 Constant: -0:105 0 (const int) -0:105 'ballot' ( temp highp 4-component vector of uint) -0:106 move second child to first child ( temp highp 2-component vector of uint) -0:106 vector swizzle ( temp highp 2-component vector of uint) -0:106 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:106 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:106 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:106 Constant: -0:106 1 (const int) -0:106 Constant: -0:106 2 (const int) -0:106 Sequence -0:106 Constant: -0:106 0 (const int) -0:106 Constant: -0:106 1 (const int) -0:106 subgroupPartitionedAndNV ( global highp 2-component vector of uint) -0:106 vector swizzle ( temp highp 2-component vector of uint) -0:106 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:106 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:106 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:106 Constant: -0:106 1 (const int) -0:106 Constant: -0:106 2 (const int) -0:106 Sequence -0:106 Constant: -0:106 0 (const int) -0:106 Constant: -0:106 1 (const int) -0:106 'ballot' ( temp highp 4-component vector of uint) -0:107 move second child to first child ( temp highp 3-component vector of uint) -0:107 vector swizzle ( temp highp 3-component vector of uint) -0:107 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:107 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:107 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:107 Constant: -0:107 1 (const int) -0:107 Constant: -0:107 2 (const int) -0:107 Sequence -0:107 Constant: -0:107 0 (const int) -0:107 Constant: -0:107 1 (const int) -0:107 Constant: -0:107 2 (const int) -0:107 subgroupPartitionedAndNV ( global highp 3-component vector of uint) -0:107 vector swizzle ( temp highp 3-component vector of uint) -0:107 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:107 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:107 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:107 Constant: -0:107 2 (const int) -0:107 Constant: -0:107 2 (const int) -0:107 Sequence -0:107 Constant: -0:107 0 (const int) -0:107 Constant: -0:107 1 (const int) -0:107 Constant: -0:107 2 (const int) -0:107 'ballot' ( temp highp 4-component vector of uint) -0:108 move second child to first child ( temp highp 4-component vector of uint) -0:108 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:108 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:108 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:108 Constant: -0:108 1 (const int) -0:108 Constant: -0:108 2 (const int) -0:108 subgroupPartitionedAndNV ( global highp 4-component vector of uint) -0:108 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:108 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:108 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:108 Constant: -0:108 3 (const int) -0:108 Constant: -0:108 2 (const int) -0:108 'ballot' ( temp highp 4-component vector of uint) -0:110 move second child to first child ( temp highp int) -0:110 direct index ( temp highp int) -0:110 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:110 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:110 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:110 Constant: -0:110 1 (const int) -0:110 Constant: -0:110 1 (const int) -0:110 Constant: -0:110 0 (const int) -0:110 Convert bool to int ( temp highp int) -0:110 subgroupPartitionedAndNV ( global bool, operation at highp) -0:110 Compare Less Than ( temp bool) -0:110 direct index ( temp highp int) -0:110 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:110 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:110 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:110 Constant: -0:110 0 (const int) -0:110 Constant: -0:110 1 (const int) -0:110 Constant: -0:110 0 (const int) -0:110 Constant: -0:110 0 (const int) -0:110 'ballot' ( temp highp 4-component vector of uint) -0:111 move second child to first child ( temp highp 2-component vector of int) -0:111 vector swizzle ( temp highp 2-component vector of int) -0:111 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:111 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:111 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:111 Constant: -0:111 1 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 Sequence -0:111 Constant: -0:111 0 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 Convert bool to int ( temp highp 2-component vector of int) -0:111 subgroupPartitionedAndNV ( global 2-component vector of bool, operation at highp) -0:111 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:111 vector swizzle ( temp highp 2-component vector of int) -0:111 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:111 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:111 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:111 Constant: -0:111 1 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 Sequence -0:111 Constant: -0:111 0 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 Constant: -0:111 0 (const int) -0:111 0 (const int) -0:111 'ballot' ( temp highp 4-component vector of uint) -0:112 move second child to first child ( temp highp 3-component vector of int) -0:112 vector swizzle ( temp highp 3-component vector of int) -0:112 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:112 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:112 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:112 Constant: -0:112 1 (const int) -0:112 Constant: -0:112 1 (const int) -0:112 Sequence -0:112 Constant: -0:112 0 (const int) -0:112 Constant: -0:112 1 (const int) -0:112 Constant: -0:112 2 (const int) -0:112 Convert bool to int ( temp highp 3-component vector of int) -0:112 subgroupPartitionedAndNV ( global 3-component vector of bool, operation at highp) -0:112 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:112 vector swizzle ( temp highp 3-component vector of int) -0:112 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:112 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:112 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:112 Constant: -0:112 1 (const int) -0:112 Constant: -0:112 1 (const int) -0:112 Sequence -0:112 Constant: -0:112 0 (const int) -0:112 Constant: -0:112 1 (const int) -0:112 Constant: -0:112 2 (const int) -0:112 Constant: -0:112 0 (const int) -0:112 0 (const int) -0:112 0 (const int) -0:112 'ballot' ( temp highp 4-component vector of uint) -0:113 move second child to first child ( temp highp 4-component vector of int) -0:113 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:113 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:113 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:113 Constant: -0:113 1 (const int) -0:113 Constant: -0:113 1 (const int) -0:113 Convert bool to int ( temp highp 4-component vector of int) -0:113 subgroupPartitionedAndNV ( global 4-component vector of bool, operation at highp) -0:113 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:113 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:113 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:113 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:113 Constant: -0:113 1 (const int) -0:113 Constant: -0:113 1 (const int) -0:113 Constant: -0:113 0 (const int) -0:113 0 (const int) -0:113 0 (const int) -0:113 0 (const int) -0:113 'ballot' ( temp highp 4-component vector of uint) -0:115 move second child to first child ( temp highp int) -0:115 direct index ( temp highp int) -0:115 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:115 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:115 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:115 Constant: -0:115 1 (const int) -0:115 Constant: -0:115 1 (const int) -0:115 Constant: -0:115 0 (const int) -0:115 subgroupPartitionedOrNV ( global highp int) -0:115 direct index ( temp highp int) -0:115 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:115 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:115 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:115 Constant: -0:115 0 (const int) -0:115 Constant: -0:115 1 (const int) -0:115 Constant: -0:115 0 (const int) -0:115 'ballot' ( temp highp 4-component vector of uint) -0:116 move second child to first child ( temp highp 2-component vector of int) -0:116 vector swizzle ( temp highp 2-component vector of int) -0:116 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:116 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:116 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:116 Constant: -0:116 1 (const int) -0:116 Constant: -0:116 1 (const int) -0:116 Sequence -0:116 Constant: -0:116 0 (const int) -0:116 Constant: -0:116 1 (const int) -0:116 subgroupPartitionedOrNV ( global highp 2-component vector of int) -0:116 vector swizzle ( temp highp 2-component vector of int) -0:116 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:116 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:116 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:116 Constant: -0:116 1 (const int) -0:116 Constant: -0:116 1 (const int) -0:116 Sequence -0:116 Constant: -0:116 0 (const int) -0:116 Constant: -0:116 1 (const int) -0:116 'ballot' ( temp highp 4-component vector of uint) -0:117 move second child to first child ( temp highp 3-component vector of int) -0:117 vector swizzle ( temp highp 3-component vector of int) -0:117 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:117 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:117 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:117 Constant: -0:117 1 (const int) -0:117 Constant: -0:117 1 (const int) -0:117 Sequence -0:117 Constant: -0:117 0 (const int) -0:117 Constant: -0:117 1 (const int) -0:117 Constant: -0:117 2 (const int) -0:117 subgroupPartitionedOrNV ( global highp 3-component vector of int) -0:117 vector swizzle ( temp highp 3-component vector of int) -0:117 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:117 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:117 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:117 Constant: -0:117 2 (const int) -0:117 Constant: -0:117 1 (const int) -0:117 Sequence -0:117 Constant: -0:117 0 (const int) -0:117 Constant: -0:117 1 (const int) -0:117 Constant: -0:117 2 (const int) -0:117 'ballot' ( temp highp 4-component vector of uint) -0:118 move second child to first child ( temp highp 4-component vector of int) -0:118 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:118 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:118 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:118 Constant: -0:118 1 (const int) -0:118 Constant: -0:118 1 (const int) -0:118 subgroupPartitionedOrNV ( global highp 4-component vector of int) -0:118 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:118 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:118 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:118 Constant: -0:118 3 (const int) -0:118 Constant: -0:118 1 (const int) -0:118 'ballot' ( temp highp 4-component vector of uint) -0:120 move second child to first child ( temp highp uint) -0:120 direct index ( temp highp uint) -0:120 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:120 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:120 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:120 Constant: -0:120 2 (const int) -0:120 Constant: -0:120 2 (const int) -0:120 Constant: -0:120 0 (const int) -0:120 subgroupPartitionedOrNV ( global highp uint) -0:120 direct index ( temp highp uint) -0:120 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:120 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:120 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:120 Constant: -0:120 0 (const int) -0:120 Constant: -0:120 2 (const int) -0:120 Constant: -0:120 0 (const int) -0:120 'ballot' ( temp highp 4-component vector of uint) -0:121 move second child to first child ( temp highp 2-component vector of uint) -0:121 vector swizzle ( temp highp 2-component vector of uint) -0:121 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:121 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:121 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:121 Constant: -0:121 2 (const int) -0:121 Constant: -0:121 2 (const int) -0:121 Sequence -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 1 (const int) -0:121 subgroupPartitionedOrNV ( global highp 2-component vector of uint) -0:121 vector swizzle ( temp highp 2-component vector of uint) -0:121 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:121 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:121 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:121 Constant: -0:121 1 (const int) -0:121 Constant: -0:121 2 (const int) -0:121 Sequence -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 1 (const int) -0:121 'ballot' ( temp highp 4-component vector of uint) -0:122 move second child to first child ( temp highp 3-component vector of uint) -0:122 vector swizzle ( temp highp 3-component vector of uint) -0:122 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:122 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:122 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:122 Constant: -0:122 2 (const int) -0:122 Constant: -0:122 2 (const int) -0:122 Sequence -0:122 Constant: -0:122 0 (const int) -0:122 Constant: -0:122 1 (const int) -0:122 Constant: -0:122 2 (const int) -0:122 subgroupPartitionedOrNV ( global highp 3-component vector of uint) -0:122 vector swizzle ( temp highp 3-component vector of uint) -0:122 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:122 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:122 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:122 Constant: -0:122 2 (const int) -0:122 Constant: -0:122 2 (const int) -0:122 Sequence -0:122 Constant: -0:122 0 (const int) -0:122 Constant: -0:122 1 (const int) -0:122 Constant: -0:122 2 (const int) -0:122 'ballot' ( temp highp 4-component vector of uint) -0:123 move second child to first child ( temp highp 4-component vector of uint) -0:123 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:123 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:123 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:123 Constant: -0:123 2 (const int) -0:123 Constant: -0:123 2 (const int) -0:123 subgroupPartitionedOrNV ( global highp 4-component vector of uint) -0:123 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:123 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:123 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:123 Constant: -0:123 3 (const int) -0:123 Constant: -0:123 2 (const int) -0:123 'ballot' ( temp highp 4-component vector of uint) -0:125 move second child to first child ( temp highp int) -0:125 direct index ( temp highp int) -0:125 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:125 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:125 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:125 Constant: -0:125 2 (const int) -0:125 Constant: -0:125 1 (const int) -0:125 Constant: -0:125 0 (const int) -0:125 Convert bool to int ( temp highp int) -0:125 subgroupPartitionedOrNV ( global bool, operation at highp) -0:125 Compare Less Than ( temp bool) -0:125 direct index ( temp highp int) -0:125 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:125 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:125 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:125 Constant: -0:125 0 (const int) -0:125 Constant: -0:125 1 (const int) -0:125 Constant: -0:125 0 (const int) -0:125 Constant: -0:125 0 (const int) -0:125 'ballot' ( temp highp 4-component vector of uint) -0:126 move second child to first child ( temp highp 2-component vector of int) -0:126 vector swizzle ( temp highp 2-component vector of int) -0:126 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:126 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:126 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:126 Constant: -0:126 2 (const int) -0:126 Constant: -0:126 1 (const int) -0:126 Sequence -0:126 Constant: -0:126 0 (const int) -0:126 Constant: -0:126 1 (const int) -0:126 Convert bool to int ( temp highp 2-component vector of int) -0:126 subgroupPartitionedOrNV ( global 2-component vector of bool, operation at highp) -0:126 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:126 vector swizzle ( temp highp 2-component vector of int) -0:126 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:126 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:126 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:126 Constant: -0:126 1 (const int) -0:126 Constant: -0:126 1 (const int) -0:126 Sequence -0:126 Constant: -0:126 0 (const int) -0:126 Constant: -0:126 1 (const int) -0:126 Constant: -0:126 0 (const int) -0:126 0 (const int) -0:126 'ballot' ( temp highp 4-component vector of uint) -0:127 move second child to first child ( temp highp 3-component vector of int) -0:127 vector swizzle ( temp highp 3-component vector of int) -0:127 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:127 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:127 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:127 Constant: -0:127 2 (const int) -0:127 Constant: -0:127 1 (const int) -0:127 Sequence -0:127 Constant: -0:127 0 (const int) -0:127 Constant: -0:127 1 (const int) -0:127 Constant: -0:127 2 (const int) -0:127 Convert bool to int ( temp highp 3-component vector of int) -0:127 subgroupPartitionedOrNV ( global 3-component vector of bool, operation at highp) -0:127 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:127 vector swizzle ( temp highp 3-component vector of int) -0:127 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:127 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:127 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:127 Constant: -0:127 1 (const int) -0:127 Constant: -0:127 1 (const int) -0:127 Sequence -0:127 Constant: -0:127 0 (const int) -0:127 Constant: -0:127 1 (const int) -0:127 Constant: -0:127 2 (const int) -0:127 Constant: -0:127 0 (const int) -0:127 0 (const int) -0:127 0 (const int) -0:127 'ballot' ( temp highp 4-component vector of uint) -0:128 move second child to first child ( temp highp 4-component vector of int) -0:128 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:128 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:128 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:128 Constant: -0:128 2 (const int) -0:128 Constant: -0:128 1 (const int) -0:128 Convert bool to int ( temp highp 4-component vector of int) -0:128 subgroupPartitionedOrNV ( global 4-component vector of bool, operation at highp) -0:128 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:128 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:128 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:128 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:128 Constant: -0:128 1 (const int) -0:128 Constant: -0:128 1 (const int) -0:128 Constant: -0:128 0 (const int) -0:128 0 (const int) -0:128 0 (const int) -0:128 0 (const int) -0:128 'ballot' ( temp highp 4-component vector of uint) -0:130 move second child to first child ( temp highp int) -0:130 direct index ( temp highp int) -0:130 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:130 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:130 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:130 Constant: -0:130 2 (const int) -0:130 Constant: -0:130 1 (const int) -0:130 Constant: -0:130 0 (const int) -0:130 subgroupPartitionedXorNV ( global highp int) -0:130 direct index ( temp highp int) -0:130 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:130 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:130 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:130 Constant: -0:130 0 (const int) -0:130 Constant: -0:130 1 (const int) -0:130 Constant: -0:130 0 (const int) -0:130 'ballot' ( temp highp 4-component vector of uint) -0:131 move second child to first child ( temp highp 2-component vector of int) -0:131 vector swizzle ( temp highp 2-component vector of int) -0:131 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:131 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:131 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:131 Constant: -0:131 2 (const int) -0:131 Constant: -0:131 1 (const int) -0:131 Sequence -0:131 Constant: -0:131 0 (const int) -0:131 Constant: -0:131 1 (const int) -0:131 subgroupPartitionedXorNV ( global highp 2-component vector of int) -0:131 vector swizzle ( temp highp 2-component vector of int) -0:131 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:131 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:131 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:131 Constant: -0:131 1 (const int) -0:131 Constant: -0:131 1 (const int) -0:131 Sequence -0:131 Constant: -0:131 0 (const int) -0:131 Constant: -0:131 1 (const int) -0:131 'ballot' ( temp highp 4-component vector of uint) -0:132 move second child to first child ( temp highp 3-component vector of int) -0:132 vector swizzle ( temp highp 3-component vector of int) -0:132 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:132 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:132 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:132 Constant: -0:132 2 (const int) -0:132 Constant: -0:132 1 (const int) -0:132 Sequence -0:132 Constant: -0:132 0 (const int) -0:132 Constant: -0:132 1 (const int) -0:132 Constant: -0:132 2 (const int) -0:132 subgroupPartitionedXorNV ( global highp 3-component vector of int) -0:132 vector swizzle ( temp highp 3-component vector of int) -0:132 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:132 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:132 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:132 Constant: -0:132 2 (const int) -0:132 Constant: -0:132 1 (const int) -0:132 Sequence -0:132 Constant: -0:132 0 (const int) -0:132 Constant: -0:132 1 (const int) -0:132 Constant: -0:132 2 (const int) -0:132 'ballot' ( temp highp 4-component vector of uint) -0:133 move second child to first child ( temp highp 4-component vector of int) -0:133 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:133 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:133 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:133 Constant: -0:133 2 (const int) -0:133 Constant: -0:133 1 (const int) -0:133 subgroupPartitionedXorNV ( global highp 4-component vector of int) -0:133 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:133 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:133 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:133 Constant: -0:133 3 (const int) -0:133 Constant: -0:133 1 (const int) -0:133 'ballot' ( temp highp 4-component vector of uint) -0:135 move second child to first child ( temp highp uint) -0:135 direct index ( temp highp uint) -0:135 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:135 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:135 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:135 Constant: -0:135 2 (const int) -0:135 Constant: -0:135 2 (const int) -0:135 Constant: -0:135 0 (const int) -0:135 subgroupPartitionedXorNV ( global highp uint) -0:135 direct index ( temp highp uint) -0:135 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:135 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:135 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:135 Constant: -0:135 0 (const int) -0:135 Constant: -0:135 2 (const int) -0:135 Constant: -0:135 0 (const int) -0:135 'ballot' ( temp highp 4-component vector of uint) -0:136 move second child to first child ( temp highp 2-component vector of uint) -0:136 vector swizzle ( temp highp 2-component vector of uint) -0:136 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:136 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:136 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:136 Constant: -0:136 2 (const int) -0:136 Constant: -0:136 2 (const int) -0:136 Sequence -0:136 Constant: -0:136 0 (const int) -0:136 Constant: -0:136 1 (const int) -0:136 subgroupPartitionedXorNV ( global highp 2-component vector of uint) -0:136 vector swizzle ( temp highp 2-component vector of uint) -0:136 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:136 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:136 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:136 Constant: -0:136 1 (const int) -0:136 Constant: -0:136 2 (const int) -0:136 Sequence -0:136 Constant: -0:136 0 (const int) -0:136 Constant: -0:136 1 (const int) -0:136 'ballot' ( temp highp 4-component vector of uint) -0:137 move second child to first child ( temp highp 3-component vector of uint) -0:137 vector swizzle ( temp highp 3-component vector of uint) -0:137 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:137 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:137 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:137 Constant: -0:137 2 (const int) -0:137 Constant: -0:137 2 (const int) -0:137 Sequence -0:137 Constant: -0:137 0 (const int) -0:137 Constant: -0:137 1 (const int) -0:137 Constant: -0:137 2 (const int) -0:137 subgroupPartitionedXorNV ( global highp 3-component vector of uint) -0:137 vector swizzle ( temp highp 3-component vector of uint) -0:137 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:137 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:137 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:137 Constant: -0:137 2 (const int) -0:137 Constant: -0:137 2 (const int) -0:137 Sequence -0:137 Constant: -0:137 0 (const int) -0:137 Constant: -0:137 1 (const int) -0:137 Constant: -0:137 2 (const int) -0:137 'ballot' ( temp highp 4-component vector of uint) -0:138 move second child to first child ( temp highp 4-component vector of uint) -0:138 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:138 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:138 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:138 Constant: -0:138 2 (const int) -0:138 Constant: -0:138 2 (const int) -0:138 subgroupPartitionedXorNV ( global highp 4-component vector of uint) -0:138 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:138 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:138 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:138 Constant: -0:138 3 (const int) -0:138 Constant: -0:138 2 (const int) -0:138 'ballot' ( temp highp 4-component vector of uint) -0:140 move second child to first child ( temp highp int) -0:140 direct index ( temp highp int) -0:140 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:140 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:140 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:140 Constant: -0:140 3 (const int) -0:140 Constant: -0:140 1 (const int) -0:140 Constant: -0:140 0 (const int) -0:140 Convert bool to int ( temp highp int) -0:140 subgroupPartitionedXorNV ( global bool, operation at highp) -0:140 Compare Less Than ( temp bool) -0:140 direct index ( temp highp int) -0:140 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:140 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:140 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:140 Constant: -0:140 0 (const int) -0:140 Constant: -0:140 1 (const int) -0:140 Constant: -0:140 0 (const int) -0:140 Constant: -0:140 0 (const int) -0:140 'ballot' ( temp highp 4-component vector of uint) -0:141 move second child to first child ( temp highp 2-component vector of int) -0:141 vector swizzle ( temp highp 2-component vector of int) -0:141 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:141 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:141 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:141 Constant: -0:141 3 (const int) -0:141 Constant: -0:141 1 (const int) -0:141 Sequence -0:141 Constant: -0:141 0 (const int) -0:141 Constant: -0:141 1 (const int) -0:141 Convert bool to int ( temp highp 2-component vector of int) -0:141 subgroupPartitionedXorNV ( global 2-component vector of bool, operation at highp) -0:141 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:141 vector swizzle ( temp highp 2-component vector of int) -0:141 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:141 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:141 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:141 Constant: -0:141 1 (const int) -0:141 Constant: -0:141 1 (const int) -0:141 Sequence -0:141 Constant: -0:141 0 (const int) -0:141 Constant: -0:141 1 (const int) -0:141 Constant: -0:141 0 (const int) -0:141 0 (const int) -0:141 'ballot' ( temp highp 4-component vector of uint) -0:142 move second child to first child ( temp highp 3-component vector of int) -0:142 vector swizzle ( temp highp 3-component vector of int) -0:142 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:142 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:142 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:142 Constant: -0:142 3 (const int) -0:142 Constant: -0:142 1 (const int) -0:142 Sequence -0:142 Constant: -0:142 0 (const int) -0:142 Constant: -0:142 1 (const int) -0:142 Constant: -0:142 2 (const int) -0:142 Convert bool to int ( temp highp 3-component vector of int) -0:142 subgroupPartitionedXorNV ( global 3-component vector of bool, operation at highp) -0:142 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:142 vector swizzle ( temp highp 3-component vector of int) -0:142 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:142 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:142 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:142 Constant: -0:142 1 (const int) -0:142 Constant: -0:142 1 (const int) -0:142 Sequence -0:142 Constant: -0:142 0 (const int) -0:142 Constant: -0:142 1 (const int) -0:142 Constant: -0:142 2 (const int) -0:142 Constant: -0:142 0 (const int) -0:142 0 (const int) -0:142 0 (const int) -0:142 'ballot' ( temp highp 4-component vector of uint) -0:143 move second child to first child ( temp highp 4-component vector of int) -0:143 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:143 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:143 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:143 Constant: -0:143 3 (const int) -0:143 Constant: -0:143 1 (const int) -0:143 Convert bool to int ( temp highp 4-component vector of int) -0:143 subgroupPartitionedXorNV ( global 4-component vector of bool, operation at highp) -0:143 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:143 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:143 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:143 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:143 Constant: -0:143 1 (const int) -0:143 Constant: -0:143 1 (const int) -0:143 Constant: -0:143 0 (const int) -0:143 0 (const int) -0:143 0 (const int) -0:143 0 (const int) -0:143 'ballot' ( temp highp 4-component vector of uint) -0:145 move second child to first child ( temp highp float) -0:145 direct index ( temp highp float) -0:145 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:145 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:145 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:145 Constant: -0:145 3 (const int) -0:145 Constant: -0:145 0 (const int) -0:145 Constant: -0:145 0 (const int) -0:145 subgroupPartitionedInclusiveAddNV ( global highp float) -0:145 direct index ( temp highp float) -0:145 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:145 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:145 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:145 Constant: -0:145 0 (const int) -0:145 Constant: -0:145 0 (const int) -0:145 Constant: -0:145 0 (const int) -0:145 'ballot' ( temp highp 4-component vector of uint) -0:146 move second child to first child ( temp highp 2-component vector of float) -0:146 vector swizzle ( temp highp 2-component vector of float) -0:146 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:146 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:146 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:146 Constant: -0:146 3 (const int) -0:146 Constant: -0:146 0 (const int) -0:146 Sequence -0:146 Constant: -0:146 0 (const int) -0:146 Constant: -0:146 1 (const int) -0:146 subgroupPartitionedInclusiveAddNV ( global highp 2-component vector of float) -0:146 vector swizzle ( temp highp 2-component vector of float) -0:146 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:146 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:146 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:146 Constant: -0:146 1 (const int) -0:146 Constant: -0:146 0 (const int) -0:146 Sequence -0:146 Constant: -0:146 0 (const int) -0:146 Constant: -0:146 1 (const int) -0:146 'ballot' ( temp highp 4-component vector of uint) -0:147 move second child to first child ( temp highp 3-component vector of float) -0:147 vector swizzle ( temp highp 3-component vector of float) -0:147 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:147 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:147 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:147 Constant: -0:147 3 (const int) -0:147 Constant: -0:147 0 (const int) -0:147 Sequence -0:147 Constant: -0:147 0 (const int) -0:147 Constant: -0:147 1 (const int) -0:147 Constant: -0:147 2 (const int) -0:147 subgroupPartitionedInclusiveAddNV ( global highp 3-component vector of float) -0:147 vector swizzle ( temp highp 3-component vector of float) -0:147 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:147 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:147 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:147 Constant: -0:147 2 (const int) -0:147 Constant: -0:147 0 (const int) -0:147 Sequence -0:147 Constant: -0:147 0 (const int) -0:147 Constant: -0:147 1 (const int) -0:147 Constant: -0:147 2 (const int) -0:147 'ballot' ( temp highp 4-component vector of uint) -0:148 move second child to first child ( temp highp 4-component vector of float) -0:148 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:148 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:148 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:148 Constant: -0:148 3 (const int) -0:148 Constant: -0:148 0 (const int) -0:148 subgroupPartitionedInclusiveAddNV ( global highp 4-component vector of float) -0:148 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:148 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:148 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:148 Constant: -0:148 3 (const int) -0:148 Constant: -0:148 0 (const int) -0:148 'ballot' ( temp highp 4-component vector of uint) -0:150 move second child to first child ( temp highp int) -0:150 direct index ( temp highp int) -0:150 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:150 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:150 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:150 Constant: -0:150 3 (const int) -0:150 Constant: -0:150 1 (const int) -0:150 Constant: -0:150 0 (const int) -0:150 subgroupPartitionedInclusiveAddNV ( global highp int) -0:150 direct index ( temp highp int) -0:150 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:150 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:150 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:150 Constant: -0:150 0 (const int) -0:150 Constant: -0:150 1 (const int) -0:150 Constant: -0:150 0 (const int) -0:150 'ballot' ( temp highp 4-component vector of uint) -0:151 move second child to first child ( temp highp 2-component vector of int) -0:151 vector swizzle ( temp highp 2-component vector of int) -0:151 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:151 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:151 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:151 Constant: -0:151 3 (const int) -0:151 Constant: -0:151 1 (const int) -0:151 Sequence -0:151 Constant: -0:151 0 (const int) -0:151 Constant: -0:151 1 (const int) -0:151 subgroupPartitionedInclusiveAddNV ( global highp 2-component vector of int) -0:151 vector swizzle ( temp highp 2-component vector of int) -0:151 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:151 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:151 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:151 Constant: -0:151 1 (const int) -0:151 Constant: -0:151 1 (const int) -0:151 Sequence -0:151 Constant: -0:151 0 (const int) -0:151 Constant: -0:151 1 (const int) -0:151 'ballot' ( temp highp 4-component vector of uint) -0:152 move second child to first child ( temp highp 3-component vector of int) -0:152 vector swizzle ( temp highp 3-component vector of int) -0:152 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:152 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:152 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:152 Constant: -0:152 3 (const int) -0:152 Constant: -0:152 1 (const int) -0:152 Sequence -0:152 Constant: -0:152 0 (const int) -0:152 Constant: -0:152 1 (const int) -0:152 Constant: -0:152 2 (const int) -0:152 subgroupPartitionedInclusiveAddNV ( global highp 3-component vector of int) -0:152 vector swizzle ( temp highp 3-component vector of int) -0:152 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:152 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:152 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:152 Constant: -0:152 2 (const int) -0:152 Constant: -0:152 1 (const int) -0:152 Sequence -0:152 Constant: -0:152 0 (const int) -0:152 Constant: -0:152 1 (const int) -0:152 Constant: -0:152 2 (const int) -0:152 'ballot' ( temp highp 4-component vector of uint) -0:153 move second child to first child ( temp highp 4-component vector of int) -0:153 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:153 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:153 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:153 Constant: -0:153 3 (const int) -0:153 Constant: -0:153 1 (const int) -0:153 subgroupPartitionedInclusiveAddNV ( global highp 4-component vector of int) -0:153 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:153 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:153 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:153 Constant: -0:153 3 (const int) -0:153 Constant: -0:153 1 (const int) -0:153 'ballot' ( temp highp 4-component vector of uint) -0:155 move second child to first child ( temp highp uint) -0:155 direct index ( temp highp uint) -0:155 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:155 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:155 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:155 Constant: -0:155 3 (const int) -0:155 Constant: -0:155 2 (const int) -0:155 Constant: -0:155 0 (const int) -0:155 subgroupPartitionedInclusiveAddNV ( global highp uint) -0:155 direct index ( temp highp uint) -0:155 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:155 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:155 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:155 Constant: -0:155 0 (const int) -0:155 Constant: -0:155 2 (const int) -0:155 Constant: -0:155 0 (const int) -0:155 'ballot' ( temp highp 4-component vector of uint) -0:156 move second child to first child ( temp highp 2-component vector of uint) -0:156 vector swizzle ( temp highp 2-component vector of uint) -0:156 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:156 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:156 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:156 Constant: -0:156 3 (const int) -0:156 Constant: -0:156 2 (const int) -0:156 Sequence -0:156 Constant: -0:156 0 (const int) -0:156 Constant: -0:156 1 (const int) -0:156 subgroupPartitionedInclusiveAddNV ( global highp 2-component vector of uint) -0:156 vector swizzle ( temp highp 2-component vector of uint) -0:156 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:156 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:156 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:156 Constant: -0:156 1 (const int) -0:156 Constant: -0:156 2 (const int) -0:156 Sequence -0:156 Constant: -0:156 0 (const int) -0:156 Constant: -0:156 1 (const int) -0:156 'ballot' ( temp highp 4-component vector of uint) -0:157 move second child to first child ( temp highp 3-component vector of uint) -0:157 vector swizzle ( temp highp 3-component vector of uint) -0:157 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:157 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:157 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:157 Constant: -0:157 3 (const int) -0:157 Constant: -0:157 2 (const int) -0:157 Sequence -0:157 Constant: -0:157 0 (const int) -0:157 Constant: -0:157 1 (const int) -0:157 Constant: -0:157 2 (const int) -0:157 subgroupPartitionedInclusiveAddNV ( global highp 3-component vector of uint) -0:157 vector swizzle ( temp highp 3-component vector of uint) -0:157 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:157 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:157 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:157 Constant: -0:157 2 (const int) -0:157 Constant: -0:157 2 (const int) -0:157 Sequence -0:157 Constant: -0:157 0 (const int) -0:157 Constant: -0:157 1 (const int) -0:157 Constant: -0:157 2 (const int) -0:157 'ballot' ( temp highp 4-component vector of uint) -0:158 move second child to first child ( temp highp 4-component vector of uint) -0:158 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:158 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:158 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:158 Constant: -0:158 3 (const int) -0:158 Constant: -0:158 2 (const int) -0:158 subgroupPartitionedInclusiveAddNV ( global highp 4-component vector of uint) -0:158 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:158 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:158 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:158 Constant: -0:158 3 (const int) -0:158 Constant: -0:158 2 (const int) -0:158 'ballot' ( temp highp 4-component vector of uint) -0:160 move second child to first child ( temp highp float) -0:160 direct index ( temp highp float) -0:160 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:160 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:160 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:160 Constant: -0:160 3 (const int) -0:160 Constant: -0:160 0 (const int) -0:160 Constant: -0:160 0 (const int) -0:160 subgroupPartitionedInclusiveMulNV ( global highp float) -0:160 direct index ( temp highp float) -0:160 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:160 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:160 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:160 Constant: -0:160 0 (const int) -0:160 Constant: -0:160 0 (const int) -0:160 Constant: -0:160 0 (const int) -0:160 'ballot' ( temp highp 4-component vector of uint) -0:161 move second child to first child ( temp highp 2-component vector of float) -0:161 vector swizzle ( temp highp 2-component vector of float) -0:161 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:161 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:161 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:161 Constant: -0:161 3 (const int) -0:161 Constant: -0:161 0 (const int) -0:161 Sequence -0:161 Constant: -0:161 0 (const int) -0:161 Constant: -0:161 1 (const int) -0:161 subgroupPartitionedInclusiveMulNV ( global highp 2-component vector of float) -0:161 vector swizzle ( temp highp 2-component vector of float) -0:161 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:161 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:161 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:161 Constant: -0:161 1 (const int) -0:161 Constant: -0:161 0 (const int) -0:161 Sequence -0:161 Constant: -0:161 0 (const int) -0:161 Constant: -0:161 1 (const int) -0:161 'ballot' ( temp highp 4-component vector of uint) -0:162 move second child to first child ( temp highp 3-component vector of float) -0:162 vector swizzle ( temp highp 3-component vector of float) -0:162 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:162 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:162 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:162 Constant: -0:162 3 (const int) -0:162 Constant: -0:162 0 (const int) -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 subgroupPartitionedInclusiveMulNV ( global highp 3-component vector of float) -0:162 vector swizzle ( temp highp 3-component vector of float) -0:162 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:162 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:162 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:162 Constant: -0:162 2 (const int) -0:162 Constant: -0:162 0 (const int) -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 'ballot' ( temp highp 4-component vector of uint) -0:163 move second child to first child ( temp highp 4-component vector of float) -0:163 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:163 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:163 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:163 Constant: -0:163 3 (const int) -0:163 Constant: -0:163 0 (const int) -0:163 subgroupPartitionedInclusiveMulNV ( global highp 4-component vector of float) -0:163 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:163 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:163 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:163 Constant: -0:163 3 (const int) -0:163 Constant: -0:163 0 (const int) -0:163 'ballot' ( temp highp 4-component vector of uint) -0:165 move second child to first child ( temp highp int) -0:165 direct index ( temp highp int) -0:165 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:165 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:165 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:165 Constant: -0:165 3 (const int) -0:165 Constant: -0:165 1 (const int) -0:165 Constant: -0:165 0 (const int) -0:165 subgroupPartitionedInclusiveMulNV ( global highp int) -0:165 direct index ( temp highp int) -0:165 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:165 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:165 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:165 Constant: -0:165 0 (const int) -0:165 Constant: -0:165 1 (const int) -0:165 Constant: -0:165 0 (const int) -0:165 'ballot' ( temp highp 4-component vector of uint) -0:166 move second child to first child ( temp highp 2-component vector of int) -0:166 vector swizzle ( temp highp 2-component vector of int) -0:166 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:166 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:166 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:166 Constant: -0:166 3 (const int) -0:166 Constant: -0:166 1 (const int) -0:166 Sequence -0:166 Constant: -0:166 0 (const int) -0:166 Constant: -0:166 1 (const int) -0:166 subgroupPartitionedInclusiveMulNV ( global highp 2-component vector of int) -0:166 vector swizzle ( temp highp 2-component vector of int) -0:166 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:166 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:166 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:166 Constant: -0:166 1 (const int) -0:166 Constant: -0:166 1 (const int) -0:166 Sequence -0:166 Constant: -0:166 0 (const int) -0:166 Constant: -0:166 1 (const int) -0:166 'ballot' ( temp highp 4-component vector of uint) -0:167 move second child to first child ( temp highp 3-component vector of int) -0:167 vector swizzle ( temp highp 3-component vector of int) -0:167 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:167 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:167 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:167 Constant: -0:167 3 (const int) -0:167 Constant: -0:167 1 (const int) -0:167 Sequence -0:167 Constant: -0:167 0 (const int) -0:167 Constant: -0:167 1 (const int) -0:167 Constant: -0:167 2 (const int) -0:167 subgroupPartitionedInclusiveMulNV ( global highp 3-component vector of int) -0:167 vector swizzle ( temp highp 3-component vector of int) -0:167 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:167 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:167 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:167 Constant: -0:167 2 (const int) -0:167 Constant: -0:167 1 (const int) -0:167 Sequence -0:167 Constant: -0:167 0 (const int) -0:167 Constant: -0:167 1 (const int) -0:167 Constant: -0:167 2 (const int) -0:167 'ballot' ( temp highp 4-component vector of uint) -0:168 move second child to first child ( temp highp 4-component vector of int) -0:168 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:168 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:168 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:168 Constant: -0:168 3 (const int) -0:168 Constant: -0:168 1 (const int) -0:168 subgroupPartitionedInclusiveMulNV ( global highp 4-component vector of int) -0:168 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:168 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:168 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:168 Constant: -0:168 3 (const int) -0:168 Constant: -0:168 1 (const int) -0:168 'ballot' ( temp highp 4-component vector of uint) -0:170 move second child to first child ( temp highp uint) -0:170 direct index ( temp highp uint) -0:170 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:170 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:170 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:170 Constant: -0:170 0 (const int) -0:170 Constant: -0:170 2 (const int) -0:170 Constant: -0:170 0 (const int) -0:170 subgroupPartitionedInclusiveMulNV ( global highp uint) -0:170 direct index ( temp highp uint) -0:170 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:170 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:170 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:170 Constant: -0:170 0 (const int) -0:170 Constant: -0:170 2 (const int) -0:170 Constant: -0:170 0 (const int) -0:170 'ballot' ( temp highp 4-component vector of uint) -0:171 move second child to first child ( temp highp 2-component vector of uint) -0:171 vector swizzle ( temp highp 2-component vector of uint) -0:171 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:171 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:171 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:171 Constant: -0:171 0 (const int) -0:171 Constant: -0:171 2 (const int) -0:171 Sequence -0:171 Constant: -0:171 0 (const int) -0:171 Constant: -0:171 1 (const int) -0:171 subgroupPartitionedInclusiveMulNV ( global highp 2-component vector of uint) -0:171 vector swizzle ( temp highp 2-component vector of uint) -0:171 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:171 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:171 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:171 Constant: -0:171 1 (const int) -0:171 Constant: -0:171 2 (const int) -0:171 Sequence -0:171 Constant: -0:171 0 (const int) -0:171 Constant: -0:171 1 (const int) -0:171 'ballot' ( temp highp 4-component vector of uint) -0:172 move second child to first child ( temp highp 3-component vector of uint) -0:172 vector swizzle ( temp highp 3-component vector of uint) -0:172 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:172 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:172 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:172 Constant: -0:172 0 (const int) -0:172 Constant: -0:172 2 (const int) -0:172 Sequence -0:172 Constant: -0:172 0 (const int) -0:172 Constant: -0:172 1 (const int) -0:172 Constant: -0:172 2 (const int) -0:172 subgroupPartitionedInclusiveMulNV ( global highp 3-component vector of uint) -0:172 vector swizzle ( temp highp 3-component vector of uint) -0:172 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:172 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:172 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:172 Constant: -0:172 2 (const int) -0:172 Constant: -0:172 2 (const int) -0:172 Sequence -0:172 Constant: -0:172 0 (const int) -0:172 Constant: -0:172 1 (const int) -0:172 Constant: -0:172 2 (const int) -0:172 'ballot' ( temp highp 4-component vector of uint) -0:173 move second child to first child ( temp highp 4-component vector of uint) -0:173 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:173 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:173 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:173 Constant: -0:173 0 (const int) -0:173 Constant: -0:173 2 (const int) -0:173 subgroupPartitionedInclusiveMulNV ( global highp 4-component vector of uint) -0:173 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:173 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:173 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:173 Constant: -0:173 3 (const int) -0:173 Constant: -0:173 2 (const int) -0:173 'ballot' ( temp highp 4-component vector of uint) -0:175 move second child to first child ( temp highp float) -0:175 direct index ( temp highp float) -0:175 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:175 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:175 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:175 Constant: -0:175 0 (const int) -0:175 Constant: -0:175 0 (const int) -0:175 Constant: -0:175 0 (const int) -0:175 subgroupPartitionedInclusiveMinNV ( global highp float) -0:175 direct index ( temp highp float) -0:175 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:175 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:175 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:175 Constant: -0:175 0 (const int) -0:175 Constant: -0:175 0 (const int) -0:175 Constant: -0:175 0 (const int) -0:175 'ballot' ( temp highp 4-component vector of uint) -0:176 move second child to first child ( temp highp 2-component vector of float) -0:176 vector swizzle ( temp highp 2-component vector of float) -0:176 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:176 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:176 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:176 Constant: -0:176 0 (const int) -0:176 Constant: -0:176 0 (const int) -0:176 Sequence -0:176 Constant: -0:176 0 (const int) -0:176 Constant: -0:176 1 (const int) -0:176 subgroupPartitionedInclusiveMinNV ( global highp 2-component vector of float) -0:176 vector swizzle ( temp highp 2-component vector of float) -0:176 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:176 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:176 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:176 Constant: -0:176 1 (const int) -0:176 Constant: -0:176 0 (const int) -0:176 Sequence -0:176 Constant: -0:176 0 (const int) -0:176 Constant: -0:176 1 (const int) -0:176 'ballot' ( temp highp 4-component vector of uint) -0:177 move second child to first child ( temp highp 3-component vector of float) -0:177 vector swizzle ( temp highp 3-component vector of float) -0:177 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:177 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:177 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:177 Constant: -0:177 0 (const int) -0:177 Constant: -0:177 0 (const int) -0:177 Sequence -0:177 Constant: -0:177 0 (const int) -0:177 Constant: -0:177 1 (const int) -0:177 Constant: -0:177 2 (const int) -0:177 subgroupPartitionedInclusiveMinNV ( global highp 3-component vector of float) -0:177 vector swizzle ( temp highp 3-component vector of float) -0:177 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:177 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:177 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:177 Constant: -0:177 2 (const int) -0:177 Constant: -0:177 0 (const int) -0:177 Sequence -0:177 Constant: -0:177 0 (const int) -0:177 Constant: -0:177 1 (const int) -0:177 Constant: -0:177 2 (const int) -0:177 'ballot' ( temp highp 4-component vector of uint) -0:178 move second child to first child ( temp highp 4-component vector of float) -0:178 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:178 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:178 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:178 Constant: -0:178 0 (const int) -0:178 Constant: -0:178 0 (const int) -0:178 subgroupPartitionedInclusiveMinNV ( global highp 4-component vector of float) -0:178 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:178 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:178 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:178 Constant: -0:178 3 (const int) -0:178 Constant: -0:178 0 (const int) -0:178 'ballot' ( temp highp 4-component vector of uint) -0:180 move second child to first child ( temp highp int) -0:180 direct index ( temp highp int) -0:180 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:180 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:180 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:180 Constant: -0:180 0 (const int) -0:180 Constant: -0:180 1 (const int) -0:180 Constant: -0:180 0 (const int) -0:180 subgroupPartitionedInclusiveMinNV ( global highp int) -0:180 direct index ( temp highp int) -0:180 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:180 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:180 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:180 Constant: -0:180 0 (const int) -0:180 Constant: -0:180 1 (const int) -0:180 Constant: -0:180 0 (const int) -0:180 'ballot' ( temp highp 4-component vector of uint) -0:181 move second child to first child ( temp highp 2-component vector of int) -0:181 vector swizzle ( temp highp 2-component vector of int) -0:181 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:181 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:181 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:181 Constant: -0:181 0 (const int) -0:181 Constant: -0:181 1 (const int) -0:181 Sequence -0:181 Constant: -0:181 0 (const int) -0:181 Constant: -0:181 1 (const int) -0:181 subgroupPartitionedInclusiveMinNV ( global highp 2-component vector of int) -0:181 vector swizzle ( temp highp 2-component vector of int) -0:181 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:181 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:181 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:181 Constant: -0:181 1 (const int) -0:181 Constant: -0:181 1 (const int) -0:181 Sequence -0:181 Constant: -0:181 0 (const int) -0:181 Constant: -0:181 1 (const int) -0:181 'ballot' ( temp highp 4-component vector of uint) -0:182 move second child to first child ( temp highp 3-component vector of int) -0:182 vector swizzle ( temp highp 3-component vector of int) -0:182 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:182 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:182 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:182 Constant: -0:182 0 (const int) -0:182 Constant: -0:182 1 (const int) -0:182 Sequence -0:182 Constant: -0:182 0 (const int) -0:182 Constant: -0:182 1 (const int) -0:182 Constant: -0:182 2 (const int) -0:182 subgroupPartitionedInclusiveMinNV ( global highp 3-component vector of int) -0:182 vector swizzle ( temp highp 3-component vector of int) -0:182 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:182 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:182 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:182 Constant: -0:182 2 (const int) -0:182 Constant: -0:182 1 (const int) -0:182 Sequence -0:182 Constant: -0:182 0 (const int) -0:182 Constant: -0:182 1 (const int) -0:182 Constant: -0:182 2 (const int) -0:182 'ballot' ( temp highp 4-component vector of uint) -0:183 move second child to first child ( temp highp 4-component vector of int) -0:183 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:183 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:183 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:183 Constant: -0:183 0 (const int) -0:183 Constant: -0:183 1 (const int) -0:183 subgroupPartitionedInclusiveMinNV ( global highp 4-component vector of int) -0:183 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:183 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:183 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:183 Constant: -0:183 3 (const int) -0:183 Constant: -0:183 1 (const int) -0:183 'ballot' ( temp highp 4-component vector of uint) -0:185 move second child to first child ( temp highp uint) -0:185 direct index ( temp highp uint) -0:185 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:185 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:185 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:185 Constant: -0:185 0 (const int) -0:185 Constant: -0:185 2 (const int) -0:185 Constant: -0:185 0 (const int) -0:185 subgroupPartitionedInclusiveMinNV ( global highp uint) -0:185 direct index ( temp highp uint) -0:185 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:185 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:185 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:185 Constant: -0:185 0 (const int) -0:185 Constant: -0:185 2 (const int) -0:185 Constant: -0:185 0 (const int) -0:185 'ballot' ( temp highp 4-component vector of uint) -0:186 move second child to first child ( temp highp 2-component vector of uint) -0:186 vector swizzle ( temp highp 2-component vector of uint) -0:186 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:186 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:186 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:186 Constant: -0:186 0 (const int) -0:186 Constant: -0:186 2 (const int) -0:186 Sequence -0:186 Constant: -0:186 0 (const int) -0:186 Constant: -0:186 1 (const int) -0:186 subgroupPartitionedInclusiveMinNV ( global highp 2-component vector of uint) -0:186 vector swizzle ( temp highp 2-component vector of uint) -0:186 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:186 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:186 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:186 Constant: -0:186 1 (const int) -0:186 Constant: -0:186 2 (const int) -0:186 Sequence -0:186 Constant: -0:186 0 (const int) -0:186 Constant: -0:186 1 (const int) -0:186 'ballot' ( temp highp 4-component vector of uint) -0:187 move second child to first child ( temp highp 3-component vector of uint) -0:187 vector swizzle ( temp highp 3-component vector of uint) -0:187 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:187 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:187 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:187 Constant: -0:187 0 (const int) -0:187 Constant: -0:187 2 (const int) -0:187 Sequence -0:187 Constant: -0:187 0 (const int) -0:187 Constant: -0:187 1 (const int) -0:187 Constant: -0:187 2 (const int) -0:187 subgroupPartitionedInclusiveMinNV ( global highp 3-component vector of uint) -0:187 vector swizzle ( temp highp 3-component vector of uint) -0:187 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:187 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:187 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:187 Constant: -0:187 2 (const int) -0:187 Constant: -0:187 2 (const int) -0:187 Sequence -0:187 Constant: -0:187 0 (const int) -0:187 Constant: -0:187 1 (const int) -0:187 Constant: -0:187 2 (const int) -0:187 'ballot' ( temp highp 4-component vector of uint) -0:188 move second child to first child ( temp highp 4-component vector of uint) -0:188 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:188 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:188 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:188 Constant: -0:188 0 (const int) -0:188 Constant: -0:188 2 (const int) -0:188 subgroupPartitionedInclusiveMinNV ( global highp 4-component vector of uint) -0:188 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:188 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:188 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:188 Constant: -0:188 3 (const int) -0:188 Constant: -0:188 2 (const int) -0:188 'ballot' ( temp highp 4-component vector of uint) -0:190 move second child to first child ( temp highp float) -0:190 direct index ( temp highp float) -0:190 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:190 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:190 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:190 Constant: -0:190 1 (const int) -0:190 Constant: -0:190 0 (const int) -0:190 Constant: -0:190 0 (const int) -0:190 subgroupPartitionedInclusiveMaxNV ( global highp float) -0:190 direct index ( temp highp float) -0:190 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:190 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:190 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:190 Constant: -0:190 0 (const int) -0:190 Constant: -0:190 0 (const int) -0:190 Constant: -0:190 0 (const int) -0:190 'ballot' ( temp highp 4-component vector of uint) -0:191 move second child to first child ( temp highp 2-component vector of float) -0:191 vector swizzle ( temp highp 2-component vector of float) -0:191 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:191 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:191 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:191 Constant: -0:191 1 (const int) -0:191 Constant: -0:191 0 (const int) -0:191 Sequence -0:191 Constant: -0:191 0 (const int) -0:191 Constant: -0:191 1 (const int) -0:191 subgroupPartitionedInclusiveMaxNV ( global highp 2-component vector of float) -0:191 vector swizzle ( temp highp 2-component vector of float) -0:191 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:191 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:191 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:191 Constant: -0:191 1 (const int) -0:191 Constant: -0:191 0 (const int) -0:191 Sequence -0:191 Constant: -0:191 0 (const int) -0:191 Constant: -0:191 1 (const int) -0:191 'ballot' ( temp highp 4-component vector of uint) -0:192 move second child to first child ( temp highp 3-component vector of float) -0:192 vector swizzle ( temp highp 3-component vector of float) -0:192 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:192 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:192 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:192 Constant: -0:192 1 (const int) -0:192 Constant: -0:192 0 (const int) -0:192 Sequence -0:192 Constant: -0:192 0 (const int) -0:192 Constant: -0:192 1 (const int) -0:192 Constant: -0:192 2 (const int) -0:192 subgroupPartitionedInclusiveMaxNV ( global highp 3-component vector of float) -0:192 vector swizzle ( temp highp 3-component vector of float) -0:192 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:192 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:192 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:192 Constant: -0:192 2 (const int) -0:192 Constant: -0:192 0 (const int) -0:192 Sequence -0:192 Constant: -0:192 0 (const int) -0:192 Constant: -0:192 1 (const int) -0:192 Constant: -0:192 2 (const int) -0:192 'ballot' ( temp highp 4-component vector of uint) -0:193 move second child to first child ( temp highp 4-component vector of float) -0:193 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:193 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:193 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:193 Constant: -0:193 1 (const int) -0:193 Constant: -0:193 0 (const int) -0:193 subgroupPartitionedInclusiveMaxNV ( global highp 4-component vector of float) -0:193 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:193 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:193 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:193 Constant: -0:193 3 (const int) -0:193 Constant: -0:193 0 (const int) -0:193 'ballot' ( temp highp 4-component vector of uint) -0:195 move second child to first child ( temp highp int) -0:195 direct index ( temp highp int) -0:195 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:195 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:195 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:195 Constant: -0:195 1 (const int) -0:195 Constant: -0:195 1 (const int) -0:195 Constant: -0:195 0 (const int) -0:195 subgroupPartitionedInclusiveMaxNV ( global highp int) -0:195 direct index ( temp highp int) -0:195 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:195 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:195 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:195 Constant: -0:195 0 (const int) -0:195 Constant: -0:195 1 (const int) -0:195 Constant: -0:195 0 (const int) -0:195 'ballot' ( temp highp 4-component vector of uint) -0:196 move second child to first child ( temp highp 2-component vector of int) -0:196 vector swizzle ( temp highp 2-component vector of int) -0:196 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:196 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:196 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:196 Constant: -0:196 1 (const int) -0:196 Constant: -0:196 1 (const int) -0:196 Sequence -0:196 Constant: -0:196 0 (const int) -0:196 Constant: -0:196 1 (const int) -0:196 subgroupPartitionedInclusiveMaxNV ( global highp 2-component vector of int) -0:196 vector swizzle ( temp highp 2-component vector of int) -0:196 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:196 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:196 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:196 Constant: -0:196 1 (const int) -0:196 Constant: -0:196 1 (const int) -0:196 Sequence -0:196 Constant: -0:196 0 (const int) -0:196 Constant: -0:196 1 (const int) -0:196 'ballot' ( temp highp 4-component vector of uint) -0:197 move second child to first child ( temp highp 3-component vector of int) -0:197 vector swizzle ( temp highp 3-component vector of int) -0:197 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:197 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:197 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:197 Constant: -0:197 1 (const int) -0:197 Constant: -0:197 1 (const int) -0:197 Sequence -0:197 Constant: -0:197 0 (const int) -0:197 Constant: -0:197 1 (const int) -0:197 Constant: -0:197 2 (const int) -0:197 subgroupPartitionedInclusiveMaxNV ( global highp 3-component vector of int) -0:197 vector swizzle ( temp highp 3-component vector of int) -0:197 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:197 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:197 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:197 Constant: -0:197 2 (const int) -0:197 Constant: -0:197 1 (const int) -0:197 Sequence -0:197 Constant: -0:197 0 (const int) -0:197 Constant: -0:197 1 (const int) -0:197 Constant: -0:197 2 (const int) -0:197 'ballot' ( temp highp 4-component vector of uint) -0:198 move second child to first child ( temp highp 4-component vector of int) -0:198 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:198 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:198 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:198 Constant: -0:198 1 (const int) -0:198 Constant: -0:198 1 (const int) -0:198 subgroupPartitionedInclusiveMaxNV ( global highp 4-component vector of int) -0:198 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:198 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:198 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:198 Constant: -0:198 3 (const int) -0:198 Constant: -0:198 1 (const int) -0:198 'ballot' ( temp highp 4-component vector of uint) -0:200 move second child to first child ( temp highp uint) -0:200 direct index ( temp highp uint) -0:200 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:200 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:200 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:200 Constant: -0:200 1 (const int) -0:200 Constant: -0:200 2 (const int) -0:200 Constant: -0:200 0 (const int) -0:200 subgroupPartitionedInclusiveMaxNV ( global highp uint) -0:200 direct index ( temp highp uint) -0:200 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:200 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:200 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:200 Constant: -0:200 0 (const int) -0:200 Constant: -0:200 2 (const int) -0:200 Constant: -0:200 0 (const int) -0:200 'ballot' ( temp highp 4-component vector of uint) -0:201 move second child to first child ( temp highp 2-component vector of uint) -0:201 vector swizzle ( temp highp 2-component vector of uint) -0:201 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:201 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:201 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:201 Constant: -0:201 1 (const int) -0:201 Constant: -0:201 2 (const int) -0:201 Sequence -0:201 Constant: -0:201 0 (const int) -0:201 Constant: -0:201 1 (const int) -0:201 subgroupPartitionedInclusiveMaxNV ( global highp 2-component vector of uint) -0:201 vector swizzle ( temp highp 2-component vector of uint) -0:201 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:201 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:201 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:201 Constant: -0:201 1 (const int) -0:201 Constant: -0:201 2 (const int) -0:201 Sequence -0:201 Constant: -0:201 0 (const int) -0:201 Constant: -0:201 1 (const int) -0:201 'ballot' ( temp highp 4-component vector of uint) -0:202 move second child to first child ( temp highp 3-component vector of uint) -0:202 vector swizzle ( temp highp 3-component vector of uint) -0:202 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:202 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:202 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:202 Constant: -0:202 1 (const int) -0:202 Constant: -0:202 2 (const int) -0:202 Sequence -0:202 Constant: -0:202 0 (const int) -0:202 Constant: -0:202 1 (const int) -0:202 Constant: -0:202 2 (const int) -0:202 subgroupPartitionedInclusiveMaxNV ( global highp 3-component vector of uint) -0:202 vector swizzle ( temp highp 3-component vector of uint) -0:202 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:202 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:202 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:202 Constant: -0:202 2 (const int) -0:202 Constant: -0:202 2 (const int) -0:202 Sequence -0:202 Constant: -0:202 0 (const int) -0:202 Constant: -0:202 1 (const int) -0:202 Constant: -0:202 2 (const int) -0:202 'ballot' ( temp highp 4-component vector of uint) -0:203 move second child to first child ( temp highp 4-component vector of uint) -0:203 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:203 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:203 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:203 Constant: -0:203 1 (const int) -0:203 Constant: -0:203 2 (const int) -0:203 subgroupPartitionedInclusiveMaxNV ( global highp 4-component vector of uint) -0:203 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:203 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:203 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:203 Constant: -0:203 3 (const int) -0:203 Constant: -0:203 2 (const int) -0:203 'ballot' ( temp highp 4-component vector of uint) -0:205 move second child to first child ( temp highp int) -0:205 direct index ( temp highp int) -0:205 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:205 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:205 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:205 Constant: -0:205 1 (const int) -0:205 Constant: -0:205 1 (const int) -0:205 Constant: -0:205 0 (const int) -0:205 subgroupPartitionedInclusiveAndNV ( global highp int) -0:205 direct index ( temp highp int) -0:205 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:205 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:205 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:205 Constant: -0:205 0 (const int) -0:205 Constant: -0:205 1 (const int) -0:205 Constant: -0:205 0 (const int) -0:205 'ballot' ( temp highp 4-component vector of uint) -0:206 move second child to first child ( temp highp 2-component vector of int) -0:206 vector swizzle ( temp highp 2-component vector of int) -0:206 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:206 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:206 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:206 Constant: -0:206 1 (const int) -0:206 Constant: -0:206 1 (const int) -0:206 Sequence -0:206 Constant: -0:206 0 (const int) -0:206 Constant: -0:206 1 (const int) -0:206 subgroupPartitionedInclusiveAndNV ( global highp 2-component vector of int) -0:206 vector swizzle ( temp highp 2-component vector of int) -0:206 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:206 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:206 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:206 Constant: -0:206 1 (const int) -0:206 Constant: -0:206 1 (const int) -0:206 Sequence -0:206 Constant: -0:206 0 (const int) -0:206 Constant: -0:206 1 (const int) -0:206 'ballot' ( temp highp 4-component vector of uint) -0:207 move second child to first child ( temp highp 3-component vector of int) -0:207 vector swizzle ( temp highp 3-component vector of int) -0:207 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:207 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:207 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:207 Constant: -0:207 1 (const int) -0:207 Constant: -0:207 1 (const int) -0:207 Sequence -0:207 Constant: -0:207 0 (const int) -0:207 Constant: -0:207 1 (const int) -0:207 Constant: -0:207 2 (const int) -0:207 subgroupPartitionedInclusiveAndNV ( global highp 3-component vector of int) -0:207 vector swizzle ( temp highp 3-component vector of int) -0:207 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:207 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:207 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:207 Constant: -0:207 2 (const int) -0:207 Constant: -0:207 1 (const int) -0:207 Sequence -0:207 Constant: -0:207 0 (const int) -0:207 Constant: -0:207 1 (const int) -0:207 Constant: -0:207 2 (const int) -0:207 'ballot' ( temp highp 4-component vector of uint) -0:208 move second child to first child ( temp highp 4-component vector of int) -0:208 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:208 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:208 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:208 Constant: -0:208 1 (const int) -0:208 Constant: -0:208 1 (const int) -0:208 subgroupPartitionedInclusiveAndNV ( global highp 4-component vector of int) -0:208 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:208 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:208 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:208 Constant: -0:208 3 (const int) -0:208 Constant: -0:208 1 (const int) -0:208 'ballot' ( temp highp 4-component vector of uint) -0:210 move second child to first child ( temp highp uint) -0:210 direct index ( temp highp uint) -0:210 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:210 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:210 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:210 Constant: -0:210 2 (const int) -0:210 Constant: -0:210 2 (const int) -0:210 Constant: -0:210 0 (const int) -0:210 subgroupPartitionedInclusiveAndNV ( global highp uint) -0:210 direct index ( temp highp uint) -0:210 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:210 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:210 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:210 Constant: -0:210 0 (const int) -0:210 Constant: -0:210 2 (const int) -0:210 Constant: -0:210 0 (const int) -0:210 'ballot' ( temp highp 4-component vector of uint) -0:211 move second child to first child ( temp highp 2-component vector of uint) -0:211 vector swizzle ( temp highp 2-component vector of uint) -0:211 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:211 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:211 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:211 Constant: -0:211 2 (const int) -0:211 Constant: -0:211 2 (const int) -0:211 Sequence -0:211 Constant: -0:211 0 (const int) -0:211 Constant: -0:211 1 (const int) -0:211 subgroupPartitionedInclusiveAndNV ( global highp 2-component vector of uint) -0:211 vector swizzle ( temp highp 2-component vector of uint) -0:211 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:211 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:211 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:211 Constant: -0:211 1 (const int) -0:211 Constant: -0:211 2 (const int) -0:211 Sequence -0:211 Constant: -0:211 0 (const int) -0:211 Constant: -0:211 1 (const int) -0:211 'ballot' ( temp highp 4-component vector of uint) -0:212 move second child to first child ( temp highp 3-component vector of uint) -0:212 vector swizzle ( temp highp 3-component vector of uint) -0:212 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:212 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:212 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:212 Constant: -0:212 2 (const int) -0:212 Constant: -0:212 2 (const int) -0:212 Sequence -0:212 Constant: -0:212 0 (const int) -0:212 Constant: -0:212 1 (const int) -0:212 Constant: -0:212 2 (const int) -0:212 subgroupPartitionedInclusiveAndNV ( global highp 3-component vector of uint) -0:212 vector swizzle ( temp highp 3-component vector of uint) -0:212 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:212 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:212 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:212 Constant: -0:212 2 (const int) -0:212 Constant: -0:212 2 (const int) -0:212 Sequence -0:212 Constant: -0:212 0 (const int) -0:212 Constant: -0:212 1 (const int) -0:212 Constant: -0:212 2 (const int) -0:212 'ballot' ( temp highp 4-component vector of uint) -0:213 move second child to first child ( temp highp 4-component vector of uint) -0:213 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:213 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:213 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:213 Constant: -0:213 2 (const int) -0:213 Constant: -0:213 2 (const int) -0:213 subgroupPartitionedInclusiveAndNV ( global highp 4-component vector of uint) -0:213 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:213 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:213 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:213 Constant: -0:213 3 (const int) -0:213 Constant: -0:213 2 (const int) -0:213 'ballot' ( temp highp 4-component vector of uint) -0:215 move second child to first child ( temp highp int) -0:215 direct index ( temp highp int) -0:215 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:215 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:215 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:215 Constant: -0:215 2 (const int) -0:215 Constant: -0:215 1 (const int) -0:215 Constant: -0:215 0 (const int) -0:215 Convert bool to int ( temp highp int) -0:215 subgroupPartitionedInclusiveAndNV ( global bool, operation at highp) -0:215 Compare Less Than ( temp bool) -0:215 direct index ( temp highp int) -0:215 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:215 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:215 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:215 Constant: -0:215 0 (const int) -0:215 Constant: -0:215 1 (const int) -0:215 Constant: -0:215 0 (const int) -0:215 Constant: -0:215 0 (const int) -0:215 'ballot' ( temp highp 4-component vector of uint) -0:216 move second child to first child ( temp highp 2-component vector of int) -0:216 vector swizzle ( temp highp 2-component vector of int) -0:216 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:216 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:216 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:216 Constant: -0:216 2 (const int) -0:216 Constant: -0:216 1 (const int) -0:216 Sequence -0:216 Constant: -0:216 0 (const int) -0:216 Constant: -0:216 1 (const int) -0:216 Convert bool to int ( temp highp 2-component vector of int) -0:216 subgroupPartitionedInclusiveAndNV ( global 2-component vector of bool, operation at highp) -0:216 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:216 vector swizzle ( temp highp 2-component vector of int) -0:216 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:216 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:216 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:216 Constant: -0:216 1 (const int) -0:216 Constant: -0:216 1 (const int) -0:216 Sequence -0:216 Constant: -0:216 0 (const int) -0:216 Constant: -0:216 1 (const int) -0:216 Constant: -0:216 0 (const int) -0:216 0 (const int) -0:216 'ballot' ( temp highp 4-component vector of uint) -0:217 move second child to first child ( temp highp 3-component vector of int) -0:217 vector swizzle ( temp highp 3-component vector of int) -0:217 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:217 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:217 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:217 Constant: -0:217 2 (const int) -0:217 Constant: -0:217 1 (const int) -0:217 Sequence -0:217 Constant: -0:217 0 (const int) -0:217 Constant: -0:217 1 (const int) -0:217 Constant: -0:217 2 (const int) -0:217 Convert bool to int ( temp highp 3-component vector of int) -0:217 subgroupPartitionedInclusiveAndNV ( global 3-component vector of bool, operation at highp) -0:217 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:217 vector swizzle ( temp highp 3-component vector of int) -0:217 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:217 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:217 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:217 Constant: -0:217 1 (const int) -0:217 Constant: -0:217 1 (const int) -0:217 Sequence -0:217 Constant: -0:217 0 (const int) -0:217 Constant: -0:217 1 (const int) -0:217 Constant: -0:217 2 (const int) -0:217 Constant: -0:217 0 (const int) -0:217 0 (const int) -0:217 0 (const int) -0:217 'ballot' ( temp highp 4-component vector of uint) -0:218 move second child to first child ( temp highp 4-component vector of int) -0:218 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:218 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:218 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:218 Constant: -0:218 2 (const int) -0:218 Constant: -0:218 1 (const int) -0:218 Convert bool to int ( temp highp 4-component vector of int) -0:218 subgroupPartitionedInclusiveAndNV ( global 4-component vector of bool, operation at highp) -0:218 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:218 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:218 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:218 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:218 Constant: -0:218 1 (const int) -0:218 Constant: -0:218 1 (const int) -0:218 Constant: -0:218 0 (const int) -0:218 0 (const int) -0:218 0 (const int) -0:218 0 (const int) -0:218 'ballot' ( temp highp 4-component vector of uint) -0:220 move second child to first child ( temp highp int) -0:220 direct index ( temp highp int) -0:220 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:220 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:220 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:220 Constant: -0:220 2 (const int) -0:220 Constant: -0:220 1 (const int) -0:220 Constant: -0:220 0 (const int) -0:220 subgroupPartitionedInclusiveOrNV ( global highp int) -0:220 direct index ( temp highp int) -0:220 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:220 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:220 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:220 Constant: -0:220 0 (const int) -0:220 Constant: -0:220 1 (const int) -0:220 Constant: -0:220 0 (const int) -0:220 'ballot' ( temp highp 4-component vector of uint) -0:221 move second child to first child ( temp highp 2-component vector of int) -0:221 vector swizzle ( temp highp 2-component vector of int) -0:221 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:221 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:221 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:221 Constant: -0:221 2 (const int) -0:221 Constant: -0:221 1 (const int) -0:221 Sequence -0:221 Constant: -0:221 0 (const int) -0:221 Constant: -0:221 1 (const int) -0:221 subgroupPartitionedInclusiveOrNV ( global highp 2-component vector of int) -0:221 vector swizzle ( temp highp 2-component vector of int) -0:221 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:221 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:221 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:221 Constant: -0:221 1 (const int) -0:221 Constant: -0:221 1 (const int) -0:221 Sequence -0:221 Constant: -0:221 0 (const int) -0:221 Constant: -0:221 1 (const int) -0:221 'ballot' ( temp highp 4-component vector of uint) -0:222 move second child to first child ( temp highp 3-component vector of int) -0:222 vector swizzle ( temp highp 3-component vector of int) -0:222 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:222 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:222 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:222 Constant: -0:222 2 (const int) -0:222 Constant: -0:222 1 (const int) -0:222 Sequence -0:222 Constant: -0:222 0 (const int) -0:222 Constant: -0:222 1 (const int) -0:222 Constant: -0:222 2 (const int) -0:222 subgroupPartitionedInclusiveOrNV ( global highp 3-component vector of int) -0:222 vector swizzle ( temp highp 3-component vector of int) -0:222 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:222 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:222 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:222 Constant: -0:222 2 (const int) -0:222 Constant: -0:222 1 (const int) -0:222 Sequence -0:222 Constant: -0:222 0 (const int) -0:222 Constant: -0:222 1 (const int) -0:222 Constant: -0:222 2 (const int) -0:222 'ballot' ( temp highp 4-component vector of uint) -0:223 move second child to first child ( temp highp 4-component vector of int) -0:223 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:223 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:223 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:223 Constant: -0:223 2 (const int) -0:223 Constant: -0:223 1 (const int) -0:223 subgroupPartitionedInclusiveOrNV ( global highp 4-component vector of int) -0:223 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:223 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:223 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:223 Constant: -0:223 3 (const int) -0:223 Constant: -0:223 1 (const int) -0:223 'ballot' ( temp highp 4-component vector of uint) -0:225 move second child to first child ( temp highp uint) -0:225 direct index ( temp highp uint) -0:225 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:225 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:225 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:225 Constant: -0:225 2 (const int) -0:225 Constant: -0:225 2 (const int) -0:225 Constant: -0:225 0 (const int) -0:225 subgroupPartitionedInclusiveOrNV ( global highp uint) -0:225 direct index ( temp highp uint) -0:225 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:225 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:225 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:225 Constant: -0:225 0 (const int) -0:225 Constant: -0:225 2 (const int) -0:225 Constant: -0:225 0 (const int) -0:225 'ballot' ( temp highp 4-component vector of uint) -0:226 move second child to first child ( temp highp 2-component vector of uint) -0:226 vector swizzle ( temp highp 2-component vector of uint) -0:226 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:226 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:226 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:226 Constant: -0:226 2 (const int) -0:226 Constant: -0:226 2 (const int) -0:226 Sequence -0:226 Constant: -0:226 0 (const int) -0:226 Constant: -0:226 1 (const int) -0:226 subgroupPartitionedInclusiveOrNV ( global highp 2-component vector of uint) -0:226 vector swizzle ( temp highp 2-component vector of uint) -0:226 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:226 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:226 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:226 Constant: -0:226 1 (const int) -0:226 Constant: -0:226 2 (const int) -0:226 Sequence -0:226 Constant: -0:226 0 (const int) -0:226 Constant: -0:226 1 (const int) -0:226 'ballot' ( temp highp 4-component vector of uint) -0:227 move second child to first child ( temp highp 3-component vector of uint) -0:227 vector swizzle ( temp highp 3-component vector of uint) -0:227 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:227 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:227 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:227 Constant: -0:227 2 (const int) -0:227 Constant: -0:227 2 (const int) -0:227 Sequence -0:227 Constant: -0:227 0 (const int) -0:227 Constant: -0:227 1 (const int) -0:227 Constant: -0:227 2 (const int) -0:227 subgroupPartitionedInclusiveOrNV ( global highp 3-component vector of uint) -0:227 vector swizzle ( temp highp 3-component vector of uint) -0:227 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:227 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:227 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:227 Constant: -0:227 2 (const int) -0:227 Constant: -0:227 2 (const int) -0:227 Sequence -0:227 Constant: -0:227 0 (const int) -0:227 Constant: -0:227 1 (const int) -0:227 Constant: -0:227 2 (const int) -0:227 'ballot' ( temp highp 4-component vector of uint) -0:228 move second child to first child ( temp highp 4-component vector of uint) -0:228 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:228 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:228 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:228 Constant: -0:228 2 (const int) -0:228 Constant: -0:228 2 (const int) -0:228 subgroupPartitionedInclusiveOrNV ( global highp 4-component vector of uint) -0:228 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:228 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:228 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:228 Constant: -0:228 3 (const int) -0:228 Constant: -0:228 2 (const int) -0:228 'ballot' ( temp highp 4-component vector of uint) -0:230 move second child to first child ( temp highp int) -0:230 direct index ( temp highp int) -0:230 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:230 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:230 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:230 Constant: -0:230 3 (const int) -0:230 Constant: -0:230 1 (const int) -0:230 Constant: -0:230 0 (const int) -0:230 Convert bool to int ( temp highp int) -0:230 subgroupPartitionedInclusiveOrNV ( global bool, operation at highp) -0:230 Compare Less Than ( temp bool) -0:230 direct index ( temp highp int) -0:230 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:230 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:230 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:230 Constant: -0:230 0 (const int) -0:230 Constant: -0:230 1 (const int) -0:230 Constant: -0:230 0 (const int) -0:230 Constant: -0:230 0 (const int) -0:230 'ballot' ( temp highp 4-component vector of uint) -0:231 move second child to first child ( temp highp 2-component vector of int) -0:231 vector swizzle ( temp highp 2-component vector of int) -0:231 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:231 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:231 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:231 Constant: -0:231 3 (const int) -0:231 Constant: -0:231 1 (const int) -0:231 Sequence -0:231 Constant: -0:231 0 (const int) -0:231 Constant: -0:231 1 (const int) -0:231 Convert bool to int ( temp highp 2-component vector of int) -0:231 subgroupPartitionedInclusiveOrNV ( global 2-component vector of bool, operation at highp) -0:231 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:231 vector swizzle ( temp highp 2-component vector of int) -0:231 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:231 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:231 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:231 Constant: -0:231 1 (const int) -0:231 Constant: -0:231 1 (const int) -0:231 Sequence -0:231 Constant: -0:231 0 (const int) -0:231 Constant: -0:231 1 (const int) -0:231 Constant: -0:231 0 (const int) -0:231 0 (const int) -0:231 'ballot' ( temp highp 4-component vector of uint) -0:232 move second child to first child ( temp highp 3-component vector of int) -0:232 vector swizzle ( temp highp 3-component vector of int) -0:232 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:232 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:232 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:232 Constant: -0:232 3 (const int) -0:232 Constant: -0:232 1 (const int) -0:232 Sequence -0:232 Constant: -0:232 0 (const int) -0:232 Constant: -0:232 1 (const int) -0:232 Constant: -0:232 2 (const int) -0:232 Convert bool to int ( temp highp 3-component vector of int) -0:232 subgroupPartitionedInclusiveOrNV ( global 3-component vector of bool, operation at highp) -0:232 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:232 vector swizzle ( temp highp 3-component vector of int) -0:232 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:232 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:232 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:232 Constant: -0:232 1 (const int) -0:232 Constant: -0:232 1 (const int) -0:232 Sequence -0:232 Constant: -0:232 0 (const int) -0:232 Constant: -0:232 1 (const int) -0:232 Constant: -0:232 2 (const int) -0:232 Constant: -0:232 0 (const int) -0:232 0 (const int) -0:232 0 (const int) -0:232 'ballot' ( temp highp 4-component vector of uint) -0:233 move second child to first child ( temp highp 4-component vector of int) -0:233 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:233 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:233 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:233 Constant: -0:233 3 (const int) -0:233 Constant: -0:233 1 (const int) -0:233 Convert bool to int ( temp highp 4-component vector of int) -0:233 subgroupPartitionedInclusiveOrNV ( global 4-component vector of bool, operation at highp) -0:233 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:233 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:233 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:233 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:233 Constant: -0:233 1 (const int) -0:233 Constant: -0:233 1 (const int) -0:233 Constant: -0:233 0 (const int) -0:233 0 (const int) -0:233 0 (const int) -0:233 0 (const int) -0:233 'ballot' ( temp highp 4-component vector of uint) -0:235 move second child to first child ( temp highp int) -0:235 direct index ( temp highp int) -0:235 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:235 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:235 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:235 Constant: -0:235 3 (const int) -0:235 Constant: -0:235 1 (const int) -0:235 Constant: -0:235 0 (const int) -0:235 subgroupPartitionedInclusiveXorNV ( global highp int) -0:235 direct index ( temp highp int) -0:235 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:235 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:235 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:235 Constant: -0:235 0 (const int) -0:235 Constant: -0:235 1 (const int) -0:235 Constant: -0:235 0 (const int) -0:235 'ballot' ( temp highp 4-component vector of uint) -0:236 move second child to first child ( temp highp 2-component vector of int) -0:236 vector swizzle ( temp highp 2-component vector of int) -0:236 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:236 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:236 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:236 Constant: -0:236 3 (const int) -0:236 Constant: -0:236 1 (const int) -0:236 Sequence -0:236 Constant: -0:236 0 (const int) -0:236 Constant: -0:236 1 (const int) -0:236 subgroupPartitionedInclusiveXorNV ( global highp 2-component vector of int) -0:236 vector swizzle ( temp highp 2-component vector of int) -0:236 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:236 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:236 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:236 Constant: -0:236 1 (const int) -0:236 Constant: -0:236 1 (const int) -0:236 Sequence -0:236 Constant: -0:236 0 (const int) -0:236 Constant: -0:236 1 (const int) -0:236 'ballot' ( temp highp 4-component vector of uint) -0:237 move second child to first child ( temp highp 3-component vector of int) -0:237 vector swizzle ( temp highp 3-component vector of int) -0:237 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:237 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:237 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:237 Constant: -0:237 3 (const int) -0:237 Constant: -0:237 1 (const int) -0:237 Sequence -0:237 Constant: -0:237 0 (const int) -0:237 Constant: -0:237 1 (const int) -0:237 Constant: -0:237 2 (const int) -0:237 subgroupPartitionedInclusiveXorNV ( global highp 3-component vector of int) -0:237 vector swizzle ( temp highp 3-component vector of int) -0:237 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:237 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:237 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:237 Constant: -0:237 2 (const int) -0:237 Constant: -0:237 1 (const int) -0:237 Sequence -0:237 Constant: -0:237 0 (const int) -0:237 Constant: -0:237 1 (const int) -0:237 Constant: -0:237 2 (const int) -0:237 'ballot' ( temp highp 4-component vector of uint) -0:238 move second child to first child ( temp highp 4-component vector of int) -0:238 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:238 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:238 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:238 Constant: -0:238 3 (const int) -0:238 Constant: -0:238 1 (const int) -0:238 subgroupPartitionedInclusiveXorNV ( global highp 4-component vector of int) -0:238 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:238 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:238 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:238 Constant: -0:238 3 (const int) -0:238 Constant: -0:238 1 (const int) -0:238 'ballot' ( temp highp 4-component vector of uint) -0:240 move second child to first child ( temp highp uint) -0:240 direct index ( temp highp uint) -0:240 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:240 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:240 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:240 Constant: -0:240 3 (const int) -0:240 Constant: -0:240 2 (const int) -0:240 Constant: -0:240 0 (const int) -0:240 subgroupPartitionedInclusiveXorNV ( global highp uint) -0:240 direct index ( temp highp uint) -0:240 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:240 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:240 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:240 Constant: -0:240 0 (const int) -0:240 Constant: -0:240 2 (const int) -0:240 Constant: -0:240 0 (const int) -0:240 'ballot' ( temp highp 4-component vector of uint) -0:241 move second child to first child ( temp highp 2-component vector of uint) -0:241 vector swizzle ( temp highp 2-component vector of uint) -0:241 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:241 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:241 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:241 Constant: -0:241 3 (const int) -0:241 Constant: -0:241 2 (const int) -0:241 Sequence -0:241 Constant: -0:241 0 (const int) -0:241 Constant: -0:241 1 (const int) -0:241 subgroupPartitionedInclusiveXorNV ( global highp 2-component vector of uint) -0:241 vector swizzle ( temp highp 2-component vector of uint) -0:241 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:241 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:241 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:241 Constant: -0:241 1 (const int) -0:241 Constant: -0:241 2 (const int) -0:241 Sequence -0:241 Constant: -0:241 0 (const int) -0:241 Constant: -0:241 1 (const int) -0:241 'ballot' ( temp highp 4-component vector of uint) -0:242 move second child to first child ( temp highp 3-component vector of uint) -0:242 vector swizzle ( temp highp 3-component vector of uint) -0:242 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:242 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:242 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:242 Constant: -0:242 3 (const int) -0:242 Constant: -0:242 2 (const int) -0:242 Sequence -0:242 Constant: -0:242 0 (const int) -0:242 Constant: -0:242 1 (const int) -0:242 Constant: -0:242 2 (const int) -0:242 subgroupPartitionedInclusiveXorNV ( global highp 3-component vector of uint) -0:242 vector swizzle ( temp highp 3-component vector of uint) -0:242 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:242 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:242 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:242 Constant: -0:242 2 (const int) -0:242 Constant: -0:242 2 (const int) -0:242 Sequence -0:242 Constant: -0:242 0 (const int) -0:242 Constant: -0:242 1 (const int) -0:242 Constant: -0:242 2 (const int) -0:242 'ballot' ( temp highp 4-component vector of uint) -0:243 move second child to first child ( temp highp 4-component vector of uint) -0:243 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:243 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:243 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:243 Constant: -0:243 3 (const int) -0:243 Constant: -0:243 2 (const int) -0:243 subgroupPartitionedInclusiveXorNV ( global highp 4-component vector of uint) -0:243 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:243 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:243 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:243 Constant: -0:243 3 (const int) -0:243 Constant: -0:243 2 (const int) -0:243 'ballot' ( temp highp 4-component vector of uint) -0:245 move second child to first child ( temp highp int) -0:245 direct index ( temp highp int) -0:245 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:245 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:245 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:245 Constant: -0:245 3 (const int) -0:245 Constant: -0:245 1 (const int) -0:245 Constant: -0:245 0 (const int) -0:245 Convert bool to int ( temp highp int) -0:245 subgroupPartitionedInclusiveXorNV ( global bool, operation at highp) -0:245 Compare Less Than ( temp bool) -0:245 direct index ( temp highp int) -0:245 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:245 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:245 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:245 Constant: -0:245 0 (const int) -0:245 Constant: -0:245 1 (const int) -0:245 Constant: -0:245 0 (const int) -0:245 Constant: -0:245 0 (const int) -0:245 'ballot' ( temp highp 4-component vector of uint) -0:246 move second child to first child ( temp highp 2-component vector of int) -0:246 vector swizzle ( temp highp 2-component vector of int) -0:246 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:246 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:246 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:246 Constant: -0:246 3 (const int) -0:246 Constant: -0:246 1 (const int) -0:246 Sequence -0:246 Constant: -0:246 0 (const int) -0:246 Constant: -0:246 1 (const int) -0:246 Convert bool to int ( temp highp 2-component vector of int) -0:246 subgroupPartitionedInclusiveXorNV ( global 2-component vector of bool, operation at highp) -0:246 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:246 vector swizzle ( temp highp 2-component vector of int) -0:246 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:246 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:246 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:246 Constant: -0:246 1 (const int) -0:246 Constant: -0:246 1 (const int) -0:246 Sequence -0:246 Constant: -0:246 0 (const int) -0:246 Constant: -0:246 1 (const int) -0:246 Constant: -0:246 0 (const int) -0:246 0 (const int) -0:246 'ballot' ( temp highp 4-component vector of uint) -0:247 move second child to first child ( temp highp 3-component vector of int) -0:247 vector swizzle ( temp highp 3-component vector of int) -0:247 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:247 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:247 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:247 Constant: -0:247 3 (const int) -0:247 Constant: -0:247 1 (const int) -0:247 Sequence -0:247 Constant: -0:247 0 (const int) -0:247 Constant: -0:247 1 (const int) -0:247 Constant: -0:247 2 (const int) -0:247 Convert bool to int ( temp highp 3-component vector of int) -0:247 subgroupPartitionedInclusiveXorNV ( global 3-component vector of bool, operation at highp) -0:247 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:247 vector swizzle ( temp highp 3-component vector of int) -0:247 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:247 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:247 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:247 Constant: -0:247 1 (const int) -0:247 Constant: -0:247 1 (const int) -0:247 Sequence -0:247 Constant: -0:247 0 (const int) -0:247 Constant: -0:247 1 (const int) -0:247 Constant: -0:247 2 (const int) -0:247 Constant: -0:247 0 (const int) -0:247 0 (const int) -0:247 0 (const int) -0:247 'ballot' ( temp highp 4-component vector of uint) -0:248 move second child to first child ( temp highp 4-component vector of int) -0:248 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:248 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:248 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:248 Constant: -0:248 3 (const int) -0:248 Constant: -0:248 1 (const int) -0:248 Convert bool to int ( temp highp 4-component vector of int) -0:248 subgroupPartitionedInclusiveXorNV ( global 4-component vector of bool, operation at highp) -0:248 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:248 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:248 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:248 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:248 Constant: -0:248 1 (const int) -0:248 Constant: -0:248 1 (const int) -0:248 Constant: -0:248 0 (const int) -0:248 0 (const int) -0:248 0 (const int) -0:248 0 (const int) -0:248 'ballot' ( temp highp 4-component vector of uint) -0:250 move second child to first child ( temp highp float) -0:250 direct index ( temp highp float) -0:250 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:250 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:250 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:250 Constant: -0:250 0 (const int) -0:250 Constant: -0:250 0 (const int) -0:250 Constant: -0:250 0 (const int) -0:250 subgroupPartitionedExclusiveAddNV ( global highp float) -0:250 direct index ( temp highp float) -0:250 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:250 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:250 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:250 Constant: -0:250 0 (const int) -0:250 Constant: -0:250 0 (const int) -0:250 Constant: -0:250 0 (const int) -0:250 'ballot' ( temp highp 4-component vector of uint) -0:251 move second child to first child ( temp highp 2-component vector of float) -0:251 vector swizzle ( temp highp 2-component vector of float) -0:251 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:251 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:251 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:251 Constant: -0:251 0 (const int) -0:251 Constant: -0:251 0 (const int) -0:251 Sequence -0:251 Constant: -0:251 0 (const int) -0:251 Constant: -0:251 1 (const int) -0:251 subgroupPartitionedExclusiveAddNV ( global highp 2-component vector of float) -0:251 vector swizzle ( temp highp 2-component vector of float) -0:251 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:251 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:251 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:251 Constant: -0:251 1 (const int) -0:251 Constant: -0:251 0 (const int) -0:251 Sequence -0:251 Constant: -0:251 0 (const int) -0:251 Constant: -0:251 1 (const int) -0:251 'ballot' ( temp highp 4-component vector of uint) -0:252 move second child to first child ( temp highp 3-component vector of float) -0:252 vector swizzle ( temp highp 3-component vector of float) -0:252 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:252 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:252 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:252 Constant: -0:252 0 (const int) -0:252 Constant: -0:252 0 (const int) -0:252 Sequence -0:252 Constant: -0:252 0 (const int) -0:252 Constant: -0:252 1 (const int) -0:252 Constant: -0:252 2 (const int) -0:252 subgroupPartitionedExclusiveAddNV ( global highp 3-component vector of float) -0:252 vector swizzle ( temp highp 3-component vector of float) -0:252 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:252 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:252 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:252 Constant: -0:252 2 (const int) -0:252 Constant: -0:252 0 (const int) -0:252 Sequence -0:252 Constant: -0:252 0 (const int) -0:252 Constant: -0:252 1 (const int) -0:252 Constant: -0:252 2 (const int) -0:252 'ballot' ( temp highp 4-component vector of uint) -0:253 move second child to first child ( temp highp 4-component vector of float) -0:253 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:253 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:253 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:253 Constant: -0:253 0 (const int) -0:253 Constant: -0:253 0 (const int) -0:253 subgroupPartitionedExclusiveAddNV ( global highp 4-component vector of float) -0:253 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:253 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:253 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:253 Constant: -0:253 3 (const int) -0:253 Constant: -0:253 0 (const int) -0:253 'ballot' ( temp highp 4-component vector of uint) -0:255 move second child to first child ( temp highp int) -0:255 direct index ( temp highp int) -0:255 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:255 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:255 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:255 Constant: -0:255 0 (const int) -0:255 Constant: -0:255 1 (const int) -0:255 Constant: -0:255 0 (const int) -0:255 subgroupPartitionedExclusiveAddNV ( global highp int) -0:255 direct index ( temp highp int) -0:255 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:255 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:255 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:255 Constant: -0:255 0 (const int) -0:255 Constant: -0:255 1 (const int) -0:255 Constant: -0:255 0 (const int) -0:255 'ballot' ( temp highp 4-component vector of uint) -0:256 move second child to first child ( temp highp 2-component vector of int) -0:256 vector swizzle ( temp highp 2-component vector of int) -0:256 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:256 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:256 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:256 Constant: -0:256 0 (const int) -0:256 Constant: -0:256 1 (const int) -0:256 Sequence -0:256 Constant: -0:256 0 (const int) -0:256 Constant: -0:256 1 (const int) -0:256 subgroupPartitionedExclusiveAddNV ( global highp 2-component vector of int) -0:256 vector swizzle ( temp highp 2-component vector of int) -0:256 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:256 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:256 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:256 Constant: -0:256 1 (const int) -0:256 Constant: -0:256 1 (const int) -0:256 Sequence -0:256 Constant: -0:256 0 (const int) -0:256 Constant: -0:256 1 (const int) -0:256 'ballot' ( temp highp 4-component vector of uint) -0:257 move second child to first child ( temp highp 3-component vector of int) -0:257 vector swizzle ( temp highp 3-component vector of int) -0:257 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:257 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:257 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:257 Constant: -0:257 0 (const int) -0:257 Constant: -0:257 1 (const int) -0:257 Sequence -0:257 Constant: -0:257 0 (const int) -0:257 Constant: -0:257 1 (const int) -0:257 Constant: -0:257 2 (const int) -0:257 subgroupPartitionedExclusiveAddNV ( global highp 3-component vector of int) -0:257 vector swizzle ( temp highp 3-component vector of int) -0:257 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:257 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:257 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:257 Constant: -0:257 2 (const int) -0:257 Constant: -0:257 1 (const int) -0:257 Sequence -0:257 Constant: -0:257 0 (const int) -0:257 Constant: -0:257 1 (const int) -0:257 Constant: -0:257 2 (const int) -0:257 'ballot' ( temp highp 4-component vector of uint) -0:258 move second child to first child ( temp highp 4-component vector of int) -0:258 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:258 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:258 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:258 Constant: -0:258 0 (const int) -0:258 Constant: -0:258 1 (const int) -0:258 subgroupPartitionedExclusiveAddNV ( global highp 4-component vector of int) -0:258 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:258 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:258 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:258 Constant: -0:258 3 (const int) -0:258 Constant: -0:258 1 (const int) -0:258 'ballot' ( temp highp 4-component vector of uint) -0:260 move second child to first child ( temp highp uint) -0:260 direct index ( temp highp uint) -0:260 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:260 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:260 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:260 Constant: -0:260 0 (const int) -0:260 Constant: -0:260 2 (const int) -0:260 Constant: -0:260 0 (const int) -0:260 subgroupPartitionedExclusiveAddNV ( global highp uint) -0:260 direct index ( temp highp uint) -0:260 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:260 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:260 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:260 Constant: -0:260 0 (const int) -0:260 Constant: -0:260 2 (const int) -0:260 Constant: -0:260 0 (const int) -0:260 'ballot' ( temp highp 4-component vector of uint) -0:261 move second child to first child ( temp highp 2-component vector of uint) -0:261 vector swizzle ( temp highp 2-component vector of uint) -0:261 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:261 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:261 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:261 Constant: -0:261 0 (const int) -0:261 Constant: -0:261 2 (const int) -0:261 Sequence -0:261 Constant: -0:261 0 (const int) -0:261 Constant: -0:261 1 (const int) -0:261 subgroupPartitionedExclusiveAddNV ( global highp 2-component vector of uint) -0:261 vector swizzle ( temp highp 2-component vector of uint) -0:261 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:261 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:261 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:261 Constant: -0:261 1 (const int) -0:261 Constant: -0:261 2 (const int) -0:261 Sequence -0:261 Constant: -0:261 0 (const int) -0:261 Constant: -0:261 1 (const int) -0:261 'ballot' ( temp highp 4-component vector of uint) -0:262 move second child to first child ( temp highp 3-component vector of uint) -0:262 vector swizzle ( temp highp 3-component vector of uint) -0:262 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:262 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:262 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:262 Constant: -0:262 0 (const int) -0:262 Constant: -0:262 2 (const int) -0:262 Sequence -0:262 Constant: -0:262 0 (const int) -0:262 Constant: -0:262 1 (const int) -0:262 Constant: -0:262 2 (const int) -0:262 subgroupPartitionedExclusiveAddNV ( global highp 3-component vector of uint) -0:262 vector swizzle ( temp highp 3-component vector of uint) -0:262 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:262 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:262 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:262 Constant: -0:262 2 (const int) -0:262 Constant: -0:262 2 (const int) -0:262 Sequence -0:262 Constant: -0:262 0 (const int) -0:262 Constant: -0:262 1 (const int) -0:262 Constant: -0:262 2 (const int) -0:262 'ballot' ( temp highp 4-component vector of uint) -0:263 move second child to first child ( temp highp 4-component vector of uint) -0:263 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:263 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:263 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:263 Constant: -0:263 0 (const int) -0:263 Constant: -0:263 2 (const int) -0:263 subgroupPartitionedExclusiveAddNV ( global highp 4-component vector of uint) -0:263 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:263 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:263 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:263 Constant: -0:263 3 (const int) -0:263 Constant: -0:263 2 (const int) -0:263 'ballot' ( temp highp 4-component vector of uint) -0:265 move second child to first child ( temp highp float) -0:265 direct index ( temp highp float) -0:265 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:265 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:265 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:265 Constant: -0:265 0 (const int) -0:265 Constant: -0:265 0 (const int) -0:265 Constant: -0:265 0 (const int) -0:265 subgroupPartitionedExclusiveMulNV ( global highp float) -0:265 direct index ( temp highp float) -0:265 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:265 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:265 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:265 Constant: -0:265 0 (const int) -0:265 Constant: -0:265 0 (const int) -0:265 Constant: -0:265 0 (const int) -0:265 'ballot' ( temp highp 4-component vector of uint) -0:266 move second child to first child ( temp highp 2-component vector of float) -0:266 vector swizzle ( temp highp 2-component vector of float) -0:266 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:266 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:266 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:266 Constant: -0:266 0 (const int) -0:266 Constant: -0:266 0 (const int) -0:266 Sequence -0:266 Constant: -0:266 0 (const int) -0:266 Constant: -0:266 1 (const int) -0:266 subgroupPartitionedExclusiveMulNV ( global highp 2-component vector of float) -0:266 vector swizzle ( temp highp 2-component vector of float) -0:266 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:266 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:266 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:266 Constant: -0:266 1 (const int) -0:266 Constant: -0:266 0 (const int) -0:266 Sequence -0:266 Constant: -0:266 0 (const int) -0:266 Constant: -0:266 1 (const int) -0:266 'ballot' ( temp highp 4-component vector of uint) -0:267 move second child to first child ( temp highp 3-component vector of float) -0:267 vector swizzle ( temp highp 3-component vector of float) -0:267 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:267 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:267 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:267 Constant: -0:267 0 (const int) -0:267 Constant: -0:267 0 (const int) -0:267 Sequence -0:267 Constant: -0:267 0 (const int) -0:267 Constant: -0:267 1 (const int) -0:267 Constant: -0:267 2 (const int) -0:267 subgroupPartitionedExclusiveMulNV ( global highp 3-component vector of float) -0:267 vector swizzle ( temp highp 3-component vector of float) -0:267 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:267 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:267 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:267 Constant: -0:267 2 (const int) -0:267 Constant: -0:267 0 (const int) -0:267 Sequence -0:267 Constant: -0:267 0 (const int) -0:267 Constant: -0:267 1 (const int) -0:267 Constant: -0:267 2 (const int) -0:267 'ballot' ( temp highp 4-component vector of uint) -0:268 move second child to first child ( temp highp 4-component vector of float) -0:268 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:268 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:268 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:268 Constant: -0:268 0 (const int) -0:268 Constant: -0:268 0 (const int) -0:268 subgroupPartitionedExclusiveMulNV ( global highp 4-component vector of float) -0:268 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:268 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:268 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:268 Constant: -0:268 3 (const int) -0:268 Constant: -0:268 0 (const int) -0:268 'ballot' ( temp highp 4-component vector of uint) -0:270 move second child to first child ( temp highp int) -0:270 direct index ( temp highp int) -0:270 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:270 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:270 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:270 Constant: -0:270 1 (const int) -0:270 Constant: -0:270 1 (const int) -0:270 Constant: -0:270 0 (const int) -0:270 subgroupPartitionedExclusiveMulNV ( global highp int) -0:270 direct index ( temp highp int) -0:270 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:270 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:270 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:270 Constant: -0:270 0 (const int) -0:270 Constant: -0:270 1 (const int) -0:270 Constant: -0:270 0 (const int) -0:270 'ballot' ( temp highp 4-component vector of uint) -0:271 move second child to first child ( temp highp 2-component vector of int) -0:271 vector swizzle ( temp highp 2-component vector of int) -0:271 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:271 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:271 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:271 Constant: -0:271 1 (const int) -0:271 Constant: -0:271 1 (const int) -0:271 Sequence -0:271 Constant: -0:271 0 (const int) -0:271 Constant: -0:271 1 (const int) -0:271 subgroupPartitionedExclusiveMulNV ( global highp 2-component vector of int) -0:271 vector swizzle ( temp highp 2-component vector of int) -0:271 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:271 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:271 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:271 Constant: -0:271 1 (const int) -0:271 Constant: -0:271 1 (const int) -0:271 Sequence -0:271 Constant: -0:271 0 (const int) -0:271 Constant: -0:271 1 (const int) -0:271 'ballot' ( temp highp 4-component vector of uint) -0:272 move second child to first child ( temp highp 3-component vector of int) -0:272 vector swizzle ( temp highp 3-component vector of int) -0:272 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:272 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:272 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:272 Constant: -0:272 1 (const int) -0:272 Constant: -0:272 1 (const int) -0:272 Sequence -0:272 Constant: -0:272 0 (const int) -0:272 Constant: -0:272 1 (const int) -0:272 Constant: -0:272 2 (const int) -0:272 subgroupPartitionedExclusiveMulNV ( global highp 3-component vector of int) -0:272 vector swizzle ( temp highp 3-component vector of int) -0:272 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:272 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:272 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:272 Constant: -0:272 2 (const int) -0:272 Constant: -0:272 1 (const int) -0:272 Sequence -0:272 Constant: -0:272 0 (const int) -0:272 Constant: -0:272 1 (const int) -0:272 Constant: -0:272 2 (const int) -0:272 'ballot' ( temp highp 4-component vector of uint) -0:273 move second child to first child ( temp highp 4-component vector of int) -0:273 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:273 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:273 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:273 Constant: -0:273 1 (const int) -0:273 Constant: -0:273 1 (const int) -0:273 subgroupPartitionedExclusiveMulNV ( global highp 4-component vector of int) -0:273 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:273 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:273 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:273 Constant: -0:273 3 (const int) -0:273 Constant: -0:273 1 (const int) -0:273 'ballot' ( temp highp 4-component vector of uint) -0:275 move second child to first child ( temp highp uint) -0:275 direct index ( temp highp uint) -0:275 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:275 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:275 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:275 Constant: -0:275 1 (const int) -0:275 Constant: -0:275 2 (const int) -0:275 Constant: -0:275 0 (const int) -0:275 subgroupPartitionedExclusiveMulNV ( global highp uint) -0:275 direct index ( temp highp uint) -0:275 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:275 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:275 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:275 Constant: -0:275 0 (const int) -0:275 Constant: -0:275 2 (const int) -0:275 Constant: -0:275 0 (const int) -0:275 'ballot' ( temp highp 4-component vector of uint) -0:276 move second child to first child ( temp highp 2-component vector of uint) -0:276 vector swizzle ( temp highp 2-component vector of uint) -0:276 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:276 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:276 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:276 Constant: -0:276 1 (const int) -0:276 Constant: -0:276 2 (const int) -0:276 Sequence -0:276 Constant: -0:276 0 (const int) -0:276 Constant: -0:276 1 (const int) -0:276 subgroupPartitionedExclusiveMulNV ( global highp 2-component vector of uint) -0:276 vector swizzle ( temp highp 2-component vector of uint) -0:276 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:276 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:276 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:276 Constant: -0:276 1 (const int) -0:276 Constant: -0:276 2 (const int) -0:276 Sequence -0:276 Constant: -0:276 0 (const int) -0:276 Constant: -0:276 1 (const int) -0:276 'ballot' ( temp highp 4-component vector of uint) -0:277 move second child to first child ( temp highp 3-component vector of uint) -0:277 vector swizzle ( temp highp 3-component vector of uint) -0:277 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:277 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:277 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:277 Constant: -0:277 1 (const int) -0:277 Constant: -0:277 2 (const int) -0:277 Sequence -0:277 Constant: -0:277 0 (const int) -0:277 Constant: -0:277 1 (const int) -0:277 Constant: -0:277 2 (const int) -0:277 subgroupPartitionedExclusiveMulNV ( global highp 3-component vector of uint) -0:277 vector swizzle ( temp highp 3-component vector of uint) -0:277 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:277 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:277 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:277 Constant: -0:277 2 (const int) -0:277 Constant: -0:277 2 (const int) -0:277 Sequence -0:277 Constant: -0:277 0 (const int) -0:277 Constant: -0:277 1 (const int) -0:277 Constant: -0:277 2 (const int) -0:277 'ballot' ( temp highp 4-component vector of uint) -0:278 move second child to first child ( temp highp 4-component vector of uint) -0:278 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:278 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:278 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:278 Constant: -0:278 1 (const int) -0:278 Constant: -0:278 2 (const int) -0:278 subgroupPartitionedExclusiveMulNV ( global highp 4-component vector of uint) -0:278 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:278 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:278 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:278 Constant: -0:278 3 (const int) -0:278 Constant: -0:278 2 (const int) -0:278 'ballot' ( temp highp 4-component vector of uint) -0:280 move second child to first child ( temp highp float) -0:280 direct index ( temp highp float) -0:280 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:280 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:280 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:280 Constant: -0:280 1 (const int) -0:280 Constant: -0:280 0 (const int) -0:280 Constant: -0:280 0 (const int) -0:280 subgroupPartitionedExclusiveMinNV ( global highp float) -0:280 direct index ( temp highp float) -0:280 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:280 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:280 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:280 Constant: -0:280 0 (const int) -0:280 Constant: -0:280 0 (const int) -0:280 Constant: -0:280 0 (const int) -0:280 'ballot' ( temp highp 4-component vector of uint) -0:281 move second child to first child ( temp highp 2-component vector of float) -0:281 vector swizzle ( temp highp 2-component vector of float) -0:281 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:281 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:281 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:281 Constant: -0:281 1 (const int) -0:281 Constant: -0:281 0 (const int) -0:281 Sequence -0:281 Constant: -0:281 0 (const int) -0:281 Constant: -0:281 1 (const int) -0:281 subgroupPartitionedExclusiveMinNV ( global highp 2-component vector of float) -0:281 vector swizzle ( temp highp 2-component vector of float) -0:281 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:281 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:281 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:281 Constant: -0:281 1 (const int) -0:281 Constant: -0:281 0 (const int) -0:281 Sequence -0:281 Constant: -0:281 0 (const int) -0:281 Constant: -0:281 1 (const int) -0:281 'ballot' ( temp highp 4-component vector of uint) -0:282 move second child to first child ( temp highp 3-component vector of float) -0:282 vector swizzle ( temp highp 3-component vector of float) -0:282 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:282 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:282 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:282 Constant: -0:282 1 (const int) -0:282 Constant: -0:282 0 (const int) -0:282 Sequence -0:282 Constant: -0:282 0 (const int) -0:282 Constant: -0:282 1 (const int) -0:282 Constant: -0:282 2 (const int) -0:282 subgroupPartitionedExclusiveMinNV ( global highp 3-component vector of float) -0:282 vector swizzle ( temp highp 3-component vector of float) -0:282 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:282 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:282 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:282 Constant: -0:282 2 (const int) -0:282 Constant: -0:282 0 (const int) -0:282 Sequence -0:282 Constant: -0:282 0 (const int) -0:282 Constant: -0:282 1 (const int) -0:282 Constant: -0:282 2 (const int) -0:282 'ballot' ( temp highp 4-component vector of uint) -0:283 move second child to first child ( temp highp 4-component vector of float) -0:283 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:283 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:283 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:283 Constant: -0:283 1 (const int) -0:283 Constant: -0:283 0 (const int) -0:283 subgroupPartitionedExclusiveMinNV ( global highp 4-component vector of float) -0:283 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:283 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:283 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:283 Constant: -0:283 3 (const int) -0:283 Constant: -0:283 0 (const int) -0:283 'ballot' ( temp highp 4-component vector of uint) -0:285 move second child to first child ( temp highp int) -0:285 direct index ( temp highp int) -0:285 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:285 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:285 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:285 Constant: -0:285 1 (const int) -0:285 Constant: -0:285 1 (const int) -0:285 Constant: -0:285 0 (const int) -0:285 subgroupPartitionedExclusiveMinNV ( global highp int) -0:285 direct index ( temp highp int) -0:285 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:285 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:285 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:285 Constant: -0:285 0 (const int) -0:285 Constant: -0:285 1 (const int) -0:285 Constant: -0:285 0 (const int) -0:285 'ballot' ( temp highp 4-component vector of uint) -0:286 move second child to first child ( temp highp 2-component vector of int) -0:286 vector swizzle ( temp highp 2-component vector of int) -0:286 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:286 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:286 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:286 Constant: -0:286 1 (const int) -0:286 Constant: -0:286 1 (const int) -0:286 Sequence -0:286 Constant: -0:286 0 (const int) -0:286 Constant: -0:286 1 (const int) -0:286 subgroupPartitionedExclusiveMinNV ( global highp 2-component vector of int) -0:286 vector swizzle ( temp highp 2-component vector of int) -0:286 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:286 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:286 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:286 Constant: -0:286 1 (const int) -0:286 Constant: -0:286 1 (const int) -0:286 Sequence -0:286 Constant: -0:286 0 (const int) -0:286 Constant: -0:286 1 (const int) -0:286 'ballot' ( temp highp 4-component vector of uint) -0:287 move second child to first child ( temp highp 3-component vector of int) -0:287 vector swizzle ( temp highp 3-component vector of int) -0:287 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:287 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:287 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:287 Constant: -0:287 1 (const int) -0:287 Constant: -0:287 1 (const int) -0:287 Sequence -0:287 Constant: -0:287 0 (const int) -0:287 Constant: -0:287 1 (const int) -0:287 Constant: -0:287 2 (const int) -0:287 subgroupPartitionedExclusiveMinNV ( global highp 3-component vector of int) -0:287 vector swizzle ( temp highp 3-component vector of int) -0:287 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:287 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:287 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:287 Constant: -0:287 2 (const int) -0:287 Constant: -0:287 1 (const int) -0:287 Sequence -0:287 Constant: -0:287 0 (const int) -0:287 Constant: -0:287 1 (const int) -0:287 Constant: -0:287 2 (const int) -0:287 'ballot' ( temp highp 4-component vector of uint) -0:288 move second child to first child ( temp highp 4-component vector of int) -0:288 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:288 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:288 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:288 Constant: -0:288 1 (const int) -0:288 Constant: -0:288 1 (const int) -0:288 subgroupPartitionedExclusiveMinNV ( global highp 4-component vector of int) -0:288 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:288 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:288 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:288 Constant: -0:288 3 (const int) -0:288 Constant: -0:288 1 (const int) -0:288 'ballot' ( temp highp 4-component vector of uint) -0:290 move second child to first child ( temp highp uint) -0:290 direct index ( temp highp uint) -0:290 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:290 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:290 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:290 Constant: -0:290 2 (const int) -0:290 Constant: -0:290 2 (const int) -0:290 Constant: -0:290 0 (const int) -0:290 subgroupPartitionedExclusiveMinNV ( global highp uint) -0:290 direct index ( temp highp uint) -0:290 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:290 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:290 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:290 Constant: -0:290 0 (const int) -0:290 Constant: -0:290 2 (const int) -0:290 Constant: -0:290 0 (const int) -0:290 'ballot' ( temp highp 4-component vector of uint) -0:291 move second child to first child ( temp highp 2-component vector of uint) -0:291 vector swizzle ( temp highp 2-component vector of uint) -0:291 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:291 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:291 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:291 Constant: -0:291 2 (const int) -0:291 Constant: -0:291 2 (const int) -0:291 Sequence -0:291 Constant: -0:291 0 (const int) -0:291 Constant: -0:291 1 (const int) -0:291 subgroupPartitionedExclusiveMinNV ( global highp 2-component vector of uint) -0:291 vector swizzle ( temp highp 2-component vector of uint) -0:291 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:291 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:291 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:291 Constant: -0:291 1 (const int) -0:291 Constant: -0:291 2 (const int) -0:291 Sequence -0:291 Constant: -0:291 0 (const int) -0:291 Constant: -0:291 1 (const int) -0:291 'ballot' ( temp highp 4-component vector of uint) -0:292 move second child to first child ( temp highp 3-component vector of uint) -0:292 vector swizzle ( temp highp 3-component vector of uint) -0:292 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:292 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:292 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:292 Constant: -0:292 2 (const int) -0:292 Constant: -0:292 2 (const int) -0:292 Sequence -0:292 Constant: -0:292 0 (const int) -0:292 Constant: -0:292 1 (const int) -0:292 Constant: -0:292 2 (const int) -0:292 subgroupPartitionedExclusiveMinNV ( global highp 3-component vector of uint) -0:292 vector swizzle ( temp highp 3-component vector of uint) -0:292 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:292 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:292 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:292 Constant: -0:292 2 (const int) -0:292 Constant: -0:292 2 (const int) -0:292 Sequence -0:292 Constant: -0:292 0 (const int) -0:292 Constant: -0:292 1 (const int) -0:292 Constant: -0:292 2 (const int) -0:292 'ballot' ( temp highp 4-component vector of uint) -0:293 move second child to first child ( temp highp 4-component vector of uint) -0:293 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:293 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:293 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:293 Constant: -0:293 2 (const int) -0:293 Constant: -0:293 2 (const int) -0:293 subgroupPartitionedExclusiveMinNV ( global highp 4-component vector of uint) -0:293 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:293 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:293 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:293 Constant: -0:293 3 (const int) -0:293 Constant: -0:293 2 (const int) -0:293 'ballot' ( temp highp 4-component vector of uint) -0:295 move second child to first child ( temp highp float) -0:295 direct index ( temp highp float) -0:295 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:295 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:295 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:295 Constant: -0:295 2 (const int) -0:295 Constant: -0:295 0 (const int) -0:295 Constant: -0:295 0 (const int) -0:295 subgroupPartitionedExclusiveMaxNV ( global highp float) -0:295 direct index ( temp highp float) -0:295 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:295 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:295 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:295 Constant: -0:295 0 (const int) -0:295 Constant: -0:295 0 (const int) -0:295 Constant: -0:295 0 (const int) -0:295 'ballot' ( temp highp 4-component vector of uint) -0:296 move second child to first child ( temp highp 2-component vector of float) -0:296 vector swizzle ( temp highp 2-component vector of float) -0:296 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:296 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:296 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:296 Constant: -0:296 2 (const int) -0:296 Constant: -0:296 0 (const int) -0:296 Sequence -0:296 Constant: -0:296 0 (const int) -0:296 Constant: -0:296 1 (const int) -0:296 subgroupPartitionedExclusiveMaxNV ( global highp 2-component vector of float) -0:296 vector swizzle ( temp highp 2-component vector of float) -0:296 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:296 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:296 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:296 Constant: -0:296 1 (const int) -0:296 Constant: -0:296 0 (const int) -0:296 Sequence -0:296 Constant: -0:296 0 (const int) -0:296 Constant: -0:296 1 (const int) -0:296 'ballot' ( temp highp 4-component vector of uint) -0:297 move second child to first child ( temp highp 3-component vector of float) -0:297 vector swizzle ( temp highp 3-component vector of float) -0:297 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:297 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:297 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:297 Constant: -0:297 2 (const int) -0:297 Constant: -0:297 0 (const int) -0:297 Sequence -0:297 Constant: -0:297 0 (const int) -0:297 Constant: -0:297 1 (const int) -0:297 Constant: -0:297 2 (const int) -0:297 subgroupPartitionedExclusiveMaxNV ( global highp 3-component vector of float) -0:297 vector swizzle ( temp highp 3-component vector of float) -0:297 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:297 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:297 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:297 Constant: -0:297 2 (const int) -0:297 Constant: -0:297 0 (const int) -0:297 Sequence -0:297 Constant: -0:297 0 (const int) -0:297 Constant: -0:297 1 (const int) -0:297 Constant: -0:297 2 (const int) -0:297 'ballot' ( temp highp 4-component vector of uint) -0:298 move second child to first child ( temp highp 4-component vector of float) -0:298 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:298 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:298 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:298 Constant: -0:298 2 (const int) -0:298 Constant: -0:298 0 (const int) -0:298 subgroupPartitionedExclusiveMaxNV ( global highp 4-component vector of float) -0:298 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:298 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:298 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:298 Constant: -0:298 3 (const int) -0:298 Constant: -0:298 0 (const int) -0:298 'ballot' ( temp highp 4-component vector of uint) -0:300 move second child to first child ( temp highp int) -0:300 direct index ( temp highp int) -0:300 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:300 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:300 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:300 Constant: -0:300 2 (const int) -0:300 Constant: -0:300 1 (const int) -0:300 Constant: -0:300 0 (const int) -0:300 subgroupPartitionedExclusiveMaxNV ( global highp int) -0:300 direct index ( temp highp int) -0:300 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:300 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:300 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:300 Constant: -0:300 0 (const int) -0:300 Constant: -0:300 1 (const int) -0:300 Constant: -0:300 0 (const int) -0:300 'ballot' ( temp highp 4-component vector of uint) -0:301 move second child to first child ( temp highp 2-component vector of int) -0:301 vector swizzle ( temp highp 2-component vector of int) -0:301 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:301 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:301 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:301 Constant: -0:301 2 (const int) -0:301 Constant: -0:301 1 (const int) -0:301 Sequence -0:301 Constant: -0:301 0 (const int) -0:301 Constant: -0:301 1 (const int) -0:301 subgroupPartitionedExclusiveMaxNV ( global highp 2-component vector of int) -0:301 vector swizzle ( temp highp 2-component vector of int) -0:301 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:301 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:301 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:301 Constant: -0:301 1 (const int) -0:301 Constant: -0:301 1 (const int) -0:301 Sequence -0:301 Constant: -0:301 0 (const int) -0:301 Constant: -0:301 1 (const int) -0:301 'ballot' ( temp highp 4-component vector of uint) -0:302 move second child to first child ( temp highp 3-component vector of int) -0:302 vector swizzle ( temp highp 3-component vector of int) -0:302 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:302 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:302 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:302 Constant: -0:302 2 (const int) -0:302 Constant: -0:302 1 (const int) -0:302 Sequence -0:302 Constant: -0:302 0 (const int) -0:302 Constant: -0:302 1 (const int) -0:302 Constant: -0:302 2 (const int) -0:302 subgroupPartitionedExclusiveMaxNV ( global highp 3-component vector of int) -0:302 vector swizzle ( temp highp 3-component vector of int) -0:302 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:302 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:302 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:302 Constant: -0:302 2 (const int) -0:302 Constant: -0:302 1 (const int) -0:302 Sequence -0:302 Constant: -0:302 0 (const int) -0:302 Constant: -0:302 1 (const int) -0:302 Constant: -0:302 2 (const int) -0:302 'ballot' ( temp highp 4-component vector of uint) -0:303 move second child to first child ( temp highp 4-component vector of int) -0:303 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:303 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:303 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:303 Constant: -0:303 2 (const int) -0:303 Constant: -0:303 1 (const int) -0:303 subgroupPartitionedExclusiveMaxNV ( global highp 4-component vector of int) -0:303 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:303 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:303 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:303 Constant: -0:303 3 (const int) -0:303 Constant: -0:303 1 (const int) -0:303 'ballot' ( temp highp 4-component vector of uint) -0:305 move second child to first child ( temp highp uint) -0:305 direct index ( temp highp uint) -0:305 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:305 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:305 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:305 Constant: -0:305 2 (const int) -0:305 Constant: -0:305 2 (const int) -0:305 Constant: -0:305 0 (const int) -0:305 subgroupPartitionedExclusiveMaxNV ( global highp uint) -0:305 direct index ( temp highp uint) -0:305 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:305 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:305 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:305 Constant: -0:305 0 (const int) -0:305 Constant: -0:305 2 (const int) -0:305 Constant: -0:305 0 (const int) -0:305 'ballot' ( temp highp 4-component vector of uint) -0:306 move second child to first child ( temp highp 2-component vector of uint) -0:306 vector swizzle ( temp highp 2-component vector of uint) -0:306 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:306 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:306 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:306 Constant: -0:306 2 (const int) -0:306 Constant: -0:306 2 (const int) -0:306 Sequence -0:306 Constant: -0:306 0 (const int) -0:306 Constant: -0:306 1 (const int) -0:306 subgroupPartitionedExclusiveMaxNV ( global highp 2-component vector of uint) -0:306 vector swizzle ( temp highp 2-component vector of uint) -0:306 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:306 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:306 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:306 Constant: -0:306 1 (const int) -0:306 Constant: -0:306 2 (const int) -0:306 Sequence -0:306 Constant: -0:306 0 (const int) -0:306 Constant: -0:306 1 (const int) -0:306 'ballot' ( temp highp 4-component vector of uint) -0:307 move second child to first child ( temp highp 3-component vector of uint) -0:307 vector swizzle ( temp highp 3-component vector of uint) -0:307 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:307 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:307 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:307 Constant: -0:307 2 (const int) -0:307 Constant: -0:307 2 (const int) -0:307 Sequence -0:307 Constant: -0:307 0 (const int) -0:307 Constant: -0:307 1 (const int) -0:307 Constant: -0:307 2 (const int) -0:307 subgroupPartitionedExclusiveMaxNV ( global highp 3-component vector of uint) -0:307 vector swizzle ( temp highp 3-component vector of uint) -0:307 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:307 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:307 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:307 Constant: -0:307 2 (const int) -0:307 Constant: -0:307 2 (const int) -0:307 Sequence -0:307 Constant: -0:307 0 (const int) -0:307 Constant: -0:307 1 (const int) -0:307 Constant: -0:307 2 (const int) -0:307 'ballot' ( temp highp 4-component vector of uint) -0:308 move second child to first child ( temp highp 4-component vector of uint) -0:308 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:308 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:308 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:308 Constant: -0:308 2 (const int) -0:308 Constant: -0:308 2 (const int) -0:308 subgroupPartitionedExclusiveMaxNV ( global highp 4-component vector of uint) -0:308 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:308 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:308 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:308 Constant: -0:308 3 (const int) -0:308 Constant: -0:308 2 (const int) -0:308 'ballot' ( temp highp 4-component vector of uint) -0:310 move second child to first child ( temp highp int) -0:310 direct index ( temp highp int) -0:310 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:310 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:310 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:310 Constant: -0:310 2 (const int) -0:310 Constant: -0:310 1 (const int) -0:310 Constant: -0:310 0 (const int) -0:310 subgroupPartitionedExclusiveAndNV ( global highp int) -0:310 direct index ( temp highp int) -0:310 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:310 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:310 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:310 Constant: -0:310 0 (const int) -0:310 Constant: -0:310 1 (const int) -0:310 Constant: -0:310 0 (const int) -0:310 'ballot' ( temp highp 4-component vector of uint) -0:311 move second child to first child ( temp highp 2-component vector of int) -0:311 vector swizzle ( temp highp 2-component vector of int) -0:311 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:311 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:311 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:311 Constant: -0:311 2 (const int) -0:311 Constant: -0:311 1 (const int) -0:311 Sequence -0:311 Constant: -0:311 0 (const int) -0:311 Constant: -0:311 1 (const int) -0:311 subgroupPartitionedExclusiveAndNV ( global highp 2-component vector of int) -0:311 vector swizzle ( temp highp 2-component vector of int) -0:311 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:311 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:311 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:311 Constant: -0:311 1 (const int) -0:311 Constant: -0:311 1 (const int) -0:311 Sequence -0:311 Constant: -0:311 0 (const int) -0:311 Constant: -0:311 1 (const int) -0:311 'ballot' ( temp highp 4-component vector of uint) -0:312 move second child to first child ( temp highp 3-component vector of int) -0:312 vector swizzle ( temp highp 3-component vector of int) -0:312 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:312 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:312 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:312 Constant: -0:312 2 (const int) -0:312 Constant: -0:312 1 (const int) -0:312 Sequence -0:312 Constant: -0:312 0 (const int) -0:312 Constant: -0:312 1 (const int) -0:312 Constant: -0:312 2 (const int) -0:312 subgroupPartitionedExclusiveAndNV ( global highp 3-component vector of int) -0:312 vector swizzle ( temp highp 3-component vector of int) -0:312 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:312 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:312 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:312 Constant: -0:312 2 (const int) -0:312 Constant: -0:312 1 (const int) -0:312 Sequence -0:312 Constant: -0:312 0 (const int) -0:312 Constant: -0:312 1 (const int) -0:312 Constant: -0:312 2 (const int) -0:312 'ballot' ( temp highp 4-component vector of uint) -0:313 move second child to first child ( temp highp 4-component vector of int) -0:313 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:313 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:313 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:313 Constant: -0:313 2 (const int) -0:313 Constant: -0:313 1 (const int) -0:313 subgroupPartitionedExclusiveAndNV ( global highp 4-component vector of int) -0:313 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:313 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:313 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:313 Constant: -0:313 3 (const int) -0:313 Constant: -0:313 1 (const int) -0:313 'ballot' ( temp highp 4-component vector of uint) -0:315 move second child to first child ( temp highp uint) -0:315 direct index ( temp highp uint) -0:315 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:315 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:315 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:315 Constant: -0:315 2 (const int) -0:315 Constant: -0:315 2 (const int) -0:315 Constant: -0:315 0 (const int) -0:315 subgroupPartitionedExclusiveAndNV ( global highp uint) -0:315 direct index ( temp highp uint) -0:315 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:315 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:315 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:315 Constant: -0:315 0 (const int) -0:315 Constant: -0:315 2 (const int) -0:315 Constant: -0:315 0 (const int) -0:315 'ballot' ( temp highp 4-component vector of uint) -0:316 move second child to first child ( temp highp 2-component vector of uint) -0:316 vector swizzle ( temp highp 2-component vector of uint) -0:316 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:316 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:316 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:316 Constant: -0:316 2 (const int) -0:316 Constant: -0:316 2 (const int) -0:316 Sequence -0:316 Constant: -0:316 0 (const int) -0:316 Constant: -0:316 1 (const int) -0:316 subgroupPartitionedExclusiveAndNV ( global highp 2-component vector of uint) -0:316 vector swizzle ( temp highp 2-component vector of uint) -0:316 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:316 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:316 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:316 Constant: -0:316 1 (const int) -0:316 Constant: -0:316 2 (const int) -0:316 Sequence -0:316 Constant: -0:316 0 (const int) -0:316 Constant: -0:316 1 (const int) -0:316 'ballot' ( temp highp 4-component vector of uint) -0:317 move second child to first child ( temp highp 3-component vector of uint) -0:317 vector swizzle ( temp highp 3-component vector of uint) -0:317 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:317 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:317 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:317 Constant: -0:317 2 (const int) -0:317 Constant: -0:317 2 (const int) -0:317 Sequence -0:317 Constant: -0:317 0 (const int) -0:317 Constant: -0:317 1 (const int) -0:317 Constant: -0:317 2 (const int) -0:317 subgroupPartitionedExclusiveAndNV ( global highp 3-component vector of uint) -0:317 vector swizzle ( temp highp 3-component vector of uint) -0:317 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:317 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:317 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:317 Constant: -0:317 2 (const int) -0:317 Constant: -0:317 2 (const int) -0:317 Sequence -0:317 Constant: -0:317 0 (const int) -0:317 Constant: -0:317 1 (const int) -0:317 Constant: -0:317 2 (const int) -0:317 'ballot' ( temp highp 4-component vector of uint) -0:318 move second child to first child ( temp highp 4-component vector of uint) -0:318 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:318 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:318 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:318 Constant: -0:318 2 (const int) -0:318 Constant: -0:318 2 (const int) -0:318 subgroupPartitionedExclusiveAndNV ( global highp 4-component vector of uint) -0:318 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:318 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:318 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:318 Constant: -0:318 3 (const int) -0:318 Constant: -0:318 2 (const int) -0:318 'ballot' ( temp highp 4-component vector of uint) -0:320 move second child to first child ( temp highp int) -0:320 direct index ( temp highp int) -0:320 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:320 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:320 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:320 Constant: -0:320 3 (const int) -0:320 Constant: -0:320 1 (const int) -0:320 Constant: -0:320 0 (const int) -0:320 Convert bool to int ( temp highp int) -0:320 subgroupPartitionedExclusiveAndNV ( global bool, operation at highp) -0:320 Compare Less Than ( temp bool) -0:320 direct index ( temp highp int) -0:320 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:320 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:320 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:320 Constant: -0:320 0 (const int) -0:320 Constant: -0:320 1 (const int) -0:320 Constant: -0:320 0 (const int) -0:320 Constant: -0:320 0 (const int) -0:320 'ballot' ( temp highp 4-component vector of uint) -0:321 move second child to first child ( temp highp 2-component vector of int) -0:321 vector swizzle ( temp highp 2-component vector of int) -0:321 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:321 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:321 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:321 Constant: -0:321 3 (const int) -0:321 Constant: -0:321 1 (const int) -0:321 Sequence -0:321 Constant: -0:321 0 (const int) -0:321 Constant: -0:321 1 (const int) -0:321 Convert bool to int ( temp highp 2-component vector of int) -0:321 subgroupPartitionedExclusiveAndNV ( global 2-component vector of bool, operation at highp) -0:321 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:321 vector swizzle ( temp highp 2-component vector of int) -0:321 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:321 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:321 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:321 Constant: -0:321 1 (const int) -0:321 Constant: -0:321 1 (const int) -0:321 Sequence -0:321 Constant: -0:321 0 (const int) -0:321 Constant: -0:321 1 (const int) -0:321 Constant: -0:321 0 (const int) -0:321 0 (const int) -0:321 'ballot' ( temp highp 4-component vector of uint) -0:322 move second child to first child ( temp highp 3-component vector of int) -0:322 vector swizzle ( temp highp 3-component vector of int) -0:322 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:322 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:322 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:322 Constant: -0:322 3 (const int) -0:322 Constant: -0:322 1 (const int) -0:322 Sequence -0:322 Constant: -0:322 0 (const int) -0:322 Constant: -0:322 1 (const int) -0:322 Constant: -0:322 2 (const int) -0:322 Convert bool to int ( temp highp 3-component vector of int) -0:322 subgroupPartitionedExclusiveAndNV ( global 3-component vector of bool, operation at highp) -0:322 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:322 vector swizzle ( temp highp 3-component vector of int) -0:322 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:322 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:322 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:322 Constant: -0:322 1 (const int) -0:322 Constant: -0:322 1 (const int) -0:322 Sequence -0:322 Constant: -0:322 0 (const int) -0:322 Constant: -0:322 1 (const int) -0:322 Constant: -0:322 2 (const int) -0:322 Constant: -0:322 0 (const int) -0:322 0 (const int) -0:322 0 (const int) -0:322 'ballot' ( temp highp 4-component vector of uint) -0:323 move second child to first child ( temp highp 4-component vector of int) -0:323 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:323 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:323 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:323 Constant: -0:323 3 (const int) -0:323 Constant: -0:323 1 (const int) -0:323 Convert bool to int ( temp highp 4-component vector of int) -0:323 subgroupPartitionedExclusiveAndNV ( global 4-component vector of bool, operation at highp) -0:323 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:323 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:323 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:323 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:323 Constant: -0:323 1 (const int) -0:323 Constant: -0:323 1 (const int) -0:323 Constant: -0:323 0 (const int) -0:323 0 (const int) -0:323 0 (const int) -0:323 0 (const int) -0:323 'ballot' ( temp highp 4-component vector of uint) -0:325 move second child to first child ( temp highp int) -0:325 direct index ( temp highp int) -0:325 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:325 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:325 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:325 Constant: -0:325 3 (const int) -0:325 Constant: -0:325 1 (const int) -0:325 Constant: -0:325 0 (const int) -0:325 subgroupPartitionedExclusiveOrNV ( global highp int) -0:325 direct index ( temp highp int) -0:325 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:325 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:325 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:325 Constant: -0:325 0 (const int) -0:325 Constant: -0:325 1 (const int) -0:325 Constant: -0:325 0 (const int) -0:325 'ballot' ( temp highp 4-component vector of uint) -0:326 move second child to first child ( temp highp 2-component vector of int) -0:326 vector swizzle ( temp highp 2-component vector of int) -0:326 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:326 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:326 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:326 Constant: -0:326 3 (const int) -0:326 Constant: -0:326 1 (const int) -0:326 Sequence -0:326 Constant: -0:326 0 (const int) -0:326 Constant: -0:326 1 (const int) -0:326 subgroupPartitionedExclusiveOrNV ( global highp 2-component vector of int) -0:326 vector swizzle ( temp highp 2-component vector of int) -0:326 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:326 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:326 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:326 Constant: -0:326 1 (const int) -0:326 Constant: -0:326 1 (const int) -0:326 Sequence -0:326 Constant: -0:326 0 (const int) -0:326 Constant: -0:326 1 (const int) -0:326 'ballot' ( temp highp 4-component vector of uint) -0:327 move second child to first child ( temp highp 3-component vector of int) -0:327 vector swizzle ( temp highp 3-component vector of int) -0:327 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:327 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:327 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:327 Constant: -0:327 3 (const int) -0:327 Constant: -0:327 1 (const int) -0:327 Sequence -0:327 Constant: -0:327 0 (const int) -0:327 Constant: -0:327 1 (const int) -0:327 Constant: -0:327 2 (const int) -0:327 subgroupPartitionedExclusiveOrNV ( global highp 3-component vector of int) -0:327 vector swizzle ( temp highp 3-component vector of int) -0:327 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:327 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:327 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:327 Constant: -0:327 2 (const int) -0:327 Constant: -0:327 1 (const int) -0:327 Sequence -0:327 Constant: -0:327 0 (const int) -0:327 Constant: -0:327 1 (const int) -0:327 Constant: -0:327 2 (const int) -0:327 'ballot' ( temp highp 4-component vector of uint) -0:328 move second child to first child ( temp highp 4-component vector of int) -0:328 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:328 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:328 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:328 Constant: -0:328 3 (const int) -0:328 Constant: -0:328 1 (const int) -0:328 subgroupPartitionedExclusiveOrNV ( global highp 4-component vector of int) -0:328 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:328 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:328 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:328 Constant: -0:328 3 (const int) -0:328 Constant: -0:328 1 (const int) -0:328 'ballot' ( temp highp 4-component vector of uint) -0:330 move second child to first child ( temp highp uint) -0:330 direct index ( temp highp uint) -0:330 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:330 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:330 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:330 Constant: -0:330 3 (const int) -0:330 Constant: -0:330 2 (const int) -0:330 Constant: -0:330 0 (const int) -0:330 subgroupPartitionedExclusiveOrNV ( global highp uint) -0:330 direct index ( temp highp uint) -0:330 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:330 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:330 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:330 Constant: -0:330 0 (const int) -0:330 Constant: -0:330 2 (const int) -0:330 Constant: -0:330 0 (const int) -0:330 'ballot' ( temp highp 4-component vector of uint) -0:331 move second child to first child ( temp highp 2-component vector of uint) -0:331 vector swizzle ( temp highp 2-component vector of uint) -0:331 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:331 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:331 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:331 Constant: -0:331 3 (const int) -0:331 Constant: -0:331 2 (const int) -0:331 Sequence -0:331 Constant: -0:331 0 (const int) -0:331 Constant: -0:331 1 (const int) -0:331 subgroupPartitionedExclusiveOrNV ( global highp 2-component vector of uint) -0:331 vector swizzle ( temp highp 2-component vector of uint) -0:331 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:331 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:331 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:331 Constant: -0:331 1 (const int) -0:331 Constant: -0:331 2 (const int) -0:331 Sequence -0:331 Constant: -0:331 0 (const int) -0:331 Constant: -0:331 1 (const int) -0:331 'ballot' ( temp highp 4-component vector of uint) -0:332 move second child to first child ( temp highp 3-component vector of uint) -0:332 vector swizzle ( temp highp 3-component vector of uint) -0:332 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:332 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:332 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:332 Constant: -0:332 3 (const int) -0:332 Constant: -0:332 2 (const int) -0:332 Sequence -0:332 Constant: -0:332 0 (const int) -0:332 Constant: -0:332 1 (const int) -0:332 Constant: -0:332 2 (const int) -0:332 subgroupPartitionedExclusiveOrNV ( global highp 3-component vector of uint) -0:332 vector swizzle ( temp highp 3-component vector of uint) -0:332 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:332 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:332 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:332 Constant: -0:332 2 (const int) -0:332 Constant: -0:332 2 (const int) -0:332 Sequence -0:332 Constant: -0:332 0 (const int) -0:332 Constant: -0:332 1 (const int) -0:332 Constant: -0:332 2 (const int) -0:332 'ballot' ( temp highp 4-component vector of uint) -0:333 move second child to first child ( temp highp 4-component vector of uint) -0:333 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:333 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:333 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:333 Constant: -0:333 3 (const int) -0:333 Constant: -0:333 2 (const int) -0:333 subgroupPartitionedExclusiveOrNV ( global highp 4-component vector of uint) -0:333 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:333 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:333 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:333 Constant: -0:333 3 (const int) -0:333 Constant: -0:333 2 (const int) -0:333 'ballot' ( temp highp 4-component vector of uint) -0:335 move second child to first child ( temp highp int) -0:335 direct index ( temp highp int) -0:335 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:335 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:335 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:335 Constant: -0:335 3 (const int) -0:335 Constant: -0:335 1 (const int) -0:335 Constant: -0:335 0 (const int) -0:335 Convert bool to int ( temp highp int) -0:335 subgroupPartitionedExclusiveOrNV ( global bool, operation at highp) -0:335 Compare Less Than ( temp bool) -0:335 direct index ( temp highp int) -0:335 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:335 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:335 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:335 Constant: -0:335 0 (const int) -0:335 Constant: -0:335 1 (const int) -0:335 Constant: -0:335 0 (const int) -0:335 Constant: -0:335 0 (const int) -0:335 'ballot' ( temp highp 4-component vector of uint) -0:336 move second child to first child ( temp highp 2-component vector of int) -0:336 vector swizzle ( temp highp 2-component vector of int) -0:336 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:336 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:336 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:336 Constant: -0:336 3 (const int) -0:336 Constant: -0:336 1 (const int) -0:336 Sequence -0:336 Constant: -0:336 0 (const int) -0:336 Constant: -0:336 1 (const int) -0:336 Convert bool to int ( temp highp 2-component vector of int) -0:336 subgroupPartitionedExclusiveOrNV ( global 2-component vector of bool, operation at highp) -0:336 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:336 vector swizzle ( temp highp 2-component vector of int) -0:336 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:336 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:336 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:336 Constant: -0:336 1 (const int) -0:336 Constant: -0:336 1 (const int) -0:336 Sequence -0:336 Constant: -0:336 0 (const int) -0:336 Constant: -0:336 1 (const int) -0:336 Constant: -0:336 0 (const int) -0:336 0 (const int) -0:336 'ballot' ( temp highp 4-component vector of uint) -0:337 move second child to first child ( temp highp 3-component vector of int) -0:337 vector swizzle ( temp highp 3-component vector of int) -0:337 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:337 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:337 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:337 Constant: -0:337 3 (const int) -0:337 Constant: -0:337 1 (const int) -0:337 Sequence -0:337 Constant: -0:337 0 (const int) -0:337 Constant: -0:337 1 (const int) -0:337 Constant: -0:337 2 (const int) -0:337 Convert bool to int ( temp highp 3-component vector of int) -0:337 subgroupPartitionedExclusiveOrNV ( global 3-component vector of bool, operation at highp) -0:337 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:337 vector swizzle ( temp highp 3-component vector of int) -0:337 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:337 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:337 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:337 Constant: -0:337 1 (const int) -0:337 Constant: -0:337 1 (const int) -0:337 Sequence -0:337 Constant: -0:337 0 (const int) -0:337 Constant: -0:337 1 (const int) -0:337 Constant: -0:337 2 (const int) -0:337 Constant: -0:337 0 (const int) -0:337 0 (const int) -0:337 0 (const int) -0:337 'ballot' ( temp highp 4-component vector of uint) -0:338 move second child to first child ( temp highp 4-component vector of int) -0:338 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:338 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:338 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:338 Constant: -0:338 3 (const int) -0:338 Constant: -0:338 1 (const int) -0:338 Convert bool to int ( temp highp 4-component vector of int) -0:338 subgroupPartitionedExclusiveOrNV ( global 4-component vector of bool, operation at highp) -0:338 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:338 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:338 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:338 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:338 Constant: -0:338 1 (const int) -0:338 Constant: -0:338 1 (const int) -0:338 Constant: -0:338 0 (const int) -0:338 0 (const int) -0:338 0 (const int) -0:338 0 (const int) -0:338 'ballot' ( temp highp 4-component vector of uint) -0:340 move second child to first child ( temp highp int) -0:340 direct index ( temp highp int) -0:340 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:340 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:340 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:340 Constant: -0:340 3 (const int) -0:340 Constant: -0:340 1 (const int) -0:340 Constant: -0:340 0 (const int) -0:340 subgroupPartitionedExclusiveXorNV ( global highp int) -0:340 direct index ( temp highp int) -0:340 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:340 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:340 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:340 Constant: -0:340 0 (const int) -0:340 Constant: -0:340 1 (const int) -0:340 Constant: -0:340 0 (const int) -0:340 'ballot' ( temp highp 4-component vector of uint) -0:341 move second child to first child ( temp highp 2-component vector of int) -0:341 vector swizzle ( temp highp 2-component vector of int) -0:341 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:341 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:341 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:341 Constant: -0:341 3 (const int) -0:341 Constant: -0:341 1 (const int) -0:341 Sequence -0:341 Constant: -0:341 0 (const int) -0:341 Constant: -0:341 1 (const int) -0:341 subgroupPartitionedExclusiveXorNV ( global highp 2-component vector of int) -0:341 vector swizzle ( temp highp 2-component vector of int) -0:341 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:341 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:341 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:341 Constant: -0:341 1 (const int) -0:341 Constant: -0:341 1 (const int) -0:341 Sequence -0:341 Constant: -0:341 0 (const int) -0:341 Constant: -0:341 1 (const int) -0:341 'ballot' ( temp highp 4-component vector of uint) -0:342 move second child to first child ( temp highp 3-component vector of int) -0:342 vector swizzle ( temp highp 3-component vector of int) -0:342 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:342 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:342 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:342 Constant: -0:342 3 (const int) -0:342 Constant: -0:342 1 (const int) -0:342 Sequence -0:342 Constant: -0:342 0 (const int) -0:342 Constant: -0:342 1 (const int) -0:342 Constant: -0:342 2 (const int) -0:342 subgroupPartitionedExclusiveXorNV ( global highp 3-component vector of int) -0:342 vector swizzle ( temp highp 3-component vector of int) -0:342 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:342 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:342 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:342 Constant: -0:342 2 (const int) -0:342 Constant: -0:342 1 (const int) -0:342 Sequence -0:342 Constant: -0:342 0 (const int) -0:342 Constant: -0:342 1 (const int) -0:342 Constant: -0:342 2 (const int) -0:342 'ballot' ( temp highp 4-component vector of uint) -0:343 move second child to first child ( temp highp 4-component vector of int) -0:343 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:343 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:343 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:343 Constant: -0:343 3 (const int) -0:343 Constant: -0:343 1 (const int) -0:343 subgroupPartitionedExclusiveXorNV ( global highp 4-component vector of int) -0:343 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:343 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:343 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:343 Constant: -0:343 3 (const int) -0:343 Constant: -0:343 1 (const int) -0:343 'ballot' ( temp highp 4-component vector of uint) -0:345 move second child to first child ( temp highp uint) -0:345 direct index ( temp highp uint) -0:345 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:345 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:345 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:345 Constant: -0:345 0 (const int) -0:345 Constant: -0:345 2 (const int) -0:345 Constant: -0:345 0 (const int) -0:345 subgroupPartitionedExclusiveXorNV ( global highp uint) -0:345 direct index ( temp highp uint) -0:345 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:345 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:345 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:345 Constant: -0:345 0 (const int) -0:345 Constant: -0:345 2 (const int) -0:345 Constant: -0:345 0 (const int) -0:345 'ballot' ( temp highp 4-component vector of uint) -0:346 move second child to first child ( temp highp 2-component vector of uint) -0:346 vector swizzle ( temp highp 2-component vector of uint) -0:346 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:346 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:346 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:346 Constant: -0:346 0 (const int) -0:346 Constant: -0:346 2 (const int) -0:346 Sequence -0:346 Constant: -0:346 0 (const int) -0:346 Constant: -0:346 1 (const int) -0:346 subgroupPartitionedExclusiveXorNV ( global highp 2-component vector of uint) -0:346 vector swizzle ( temp highp 2-component vector of uint) -0:346 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:346 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:346 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:346 Constant: -0:346 1 (const int) -0:346 Constant: -0:346 2 (const int) -0:346 Sequence -0:346 Constant: -0:346 0 (const int) -0:346 Constant: -0:346 1 (const int) -0:346 'ballot' ( temp highp 4-component vector of uint) -0:347 move second child to first child ( temp highp 3-component vector of uint) -0:347 vector swizzle ( temp highp 3-component vector of uint) -0:347 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:347 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:347 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:347 Constant: -0:347 0 (const int) -0:347 Constant: -0:347 2 (const int) -0:347 Sequence -0:347 Constant: -0:347 0 (const int) -0:347 Constant: -0:347 1 (const int) -0:347 Constant: -0:347 2 (const int) -0:347 subgroupPartitionedExclusiveXorNV ( global highp 3-component vector of uint) -0:347 vector swizzle ( temp highp 3-component vector of uint) -0:347 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:347 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:347 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:347 Constant: -0:347 2 (const int) -0:347 Constant: -0:347 2 (const int) -0:347 Sequence -0:347 Constant: -0:347 0 (const int) -0:347 Constant: -0:347 1 (const int) -0:347 Constant: -0:347 2 (const int) -0:347 'ballot' ( temp highp 4-component vector of uint) -0:348 move second child to first child ( temp highp 4-component vector of uint) -0:348 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:348 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:348 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:348 Constant: -0:348 0 (const int) -0:348 Constant: -0:348 2 (const int) -0:348 subgroupPartitionedExclusiveXorNV ( global highp 4-component vector of uint) -0:348 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:348 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:348 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:348 Constant: -0:348 3 (const int) -0:348 Constant: -0:348 2 (const int) -0:348 'ballot' ( temp highp 4-component vector of uint) -0:350 move second child to first child ( temp highp int) -0:350 direct index ( temp highp int) -0:350 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:350 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:350 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:350 Constant: -0:350 0 (const int) -0:350 Constant: -0:350 1 (const int) -0:350 Constant: -0:350 0 (const int) -0:350 Convert bool to int ( temp highp int) -0:350 subgroupPartitionedExclusiveXorNV ( global bool, operation at highp) -0:350 Compare Less Than ( temp bool) -0:350 direct index ( temp highp int) -0:350 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:350 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:350 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:350 Constant: -0:350 0 (const int) -0:350 Constant: -0:350 1 (const int) -0:350 Constant: -0:350 0 (const int) -0:350 Constant: -0:350 0 (const int) -0:350 'ballot' ( temp highp 4-component vector of uint) -0:351 move second child to first child ( temp highp 2-component vector of int) -0:351 vector swizzle ( temp highp 2-component vector of int) -0:351 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:351 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:351 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:351 Constant: -0:351 0 (const int) -0:351 Constant: -0:351 1 (const int) -0:351 Sequence -0:351 Constant: -0:351 0 (const int) -0:351 Constant: -0:351 1 (const int) -0:351 Convert bool to int ( temp highp 2-component vector of int) -0:351 subgroupPartitionedExclusiveXorNV ( global 2-component vector of bool, operation at highp) -0:351 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:351 vector swizzle ( temp highp 2-component vector of int) -0:351 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:351 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:351 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:351 Constant: -0:351 1 (const int) -0:351 Constant: -0:351 1 (const int) -0:351 Sequence -0:351 Constant: -0:351 0 (const int) -0:351 Constant: -0:351 1 (const int) -0:351 Constant: -0:351 0 (const int) -0:351 0 (const int) -0:351 'ballot' ( temp highp 4-component vector of uint) -0:352 move second child to first child ( temp highp 3-component vector of int) -0:352 vector swizzle ( temp highp 3-component vector of int) -0:352 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:352 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:352 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:352 Constant: -0:352 0 (const int) -0:352 Constant: -0:352 1 (const int) -0:352 Sequence -0:352 Constant: -0:352 0 (const int) -0:352 Constant: -0:352 1 (const int) -0:352 Constant: -0:352 2 (const int) -0:352 Convert bool to int ( temp highp 3-component vector of int) -0:352 subgroupPartitionedExclusiveXorNV ( global 3-component vector of bool, operation at highp) -0:352 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:352 vector swizzle ( temp highp 3-component vector of int) -0:352 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:352 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:352 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:352 Constant: -0:352 1 (const int) -0:352 Constant: -0:352 1 (const int) -0:352 Sequence -0:352 Constant: -0:352 0 (const int) -0:352 Constant: -0:352 1 (const int) -0:352 Constant: -0:352 2 (const int) -0:352 Constant: -0:352 0 (const int) -0:352 0 (const int) -0:352 0 (const int) -0:352 'ballot' ( temp highp 4-component vector of uint) -0:353 move second child to first child ( temp highp 4-component vector of int) -0:353 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:353 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:353 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:353 Constant: -0:353 0 (const int) -0:353 Constant: -0:353 1 (const int) -0:353 Convert bool to int ( temp highp 4-component vector of int) -0:353 subgroupPartitionedExclusiveXorNV ( global 4-component vector of bool, operation at highp) -0:353 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:353 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:353 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:353 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:353 Constant: -0:353 1 (const int) -0:353 Constant: -0:353 1 (const int) -0:353 Constant: -0:353 0 (const int) -0:353 0 (const int) -0:353 0 (const int) -0:353 0 (const int) -0:353 'ballot' ( temp highp 4-component vector of uint) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const highp 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) - - -Linked compute stage: - - -Shader version: 320 -Requested GL_KHR_shader_subgroup_basic -Requested GL_NV_shader_subgroup_partitioned -local_size = (8, 1, 1) -0:? Sequence -0:14 Function Definition: main( ( global void) -0:14 Function Parameters: -0:16 Sequence -0:16 Sequence -0:16 move second child to first child ( temp highp uint) -0:16 'invocation' ( temp highp uint) -0:16 mod ( temp mediump uint) -0:16 add ( temp mediump uint) -0:16 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID) -0:16 'gl_SubgroupSize' ( in mediump uint SubgroupSize) -0:16 Constant: -0:16 4 (const uint) -0:18 Sequence -0:18 move second child to first child ( temp highp 4-component vector of uint) -0:18 'ballot' ( temp highp 4-component vector of uint) -0:18 subgroupPartitionNV ( global highp 4-component vector of uint) -0:18 'invocation' ( temp highp uint) -0:20 move second child to first child ( temp highp 4-component vector of uint) -0:20 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:20 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 2 (const int) -0:20 subgroupPartitionNV ( global highp 4-component vector of uint) -0:20 direct index ( temp highp float) -0:20 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:20 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 0 (const int) -0:21 move second child to first child ( temp highp 4-component vector of uint) -0:21 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 2 (const int) -0:21 subgroupPartitionNV ( global highp 4-component vector of uint) -0:21 vector swizzle ( temp highp 2-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:22 move second child to first child ( temp highp 4-component vector of uint) -0:22 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:22 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 2 (const int) -0:22 subgroupPartitionNV ( global highp 4-component vector of uint) -0:22 vector swizzle ( temp highp 3-component vector of float) -0:22 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:22 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 0 (const int) -0:22 Sequence -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 Constant: -0:22 2 (const int) -0:23 move second child to first child ( temp highp 4-component vector of uint) -0:23 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 2 (const int) -0:23 subgroupPartitionNV ( global highp 4-component vector of uint) -0:23 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 0 (const int) -0:25 move second child to first child ( temp highp 4-component vector of uint) -0:25 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 subgroupPartitionNV ( global highp 4-component vector of uint) -0:25 direct index ( temp highp int) -0:25 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 0 (const int) -0:26 move second child to first child ( temp highp 4-component vector of uint) -0:26 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 subgroupPartitionNV ( global highp 4-component vector of uint) -0:26 vector swizzle ( temp highp 2-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:27 move second child to first child ( temp highp 4-component vector of uint) -0:27 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:27 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 2 (const int) -0:27 subgroupPartitionNV ( global highp 4-component vector of uint) -0:27 vector swizzle ( temp highp 3-component vector of int) -0:27 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:27 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Sequence -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Constant: -0:27 2 (const int) -0:28 move second child to first child ( temp highp 4-component vector of uint) -0:28 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 2 (const int) -0:28 subgroupPartitionNV ( global highp 4-component vector of uint) -0:28 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 1 (const int) -0:30 move second child to first child ( temp highp 4-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:30 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 subgroupPartitionNV ( global highp 4-component vector of uint) -0:30 direct index ( temp highp uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:30 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 Constant: -0:30 0 (const int) -0:31 move second child to first child ( temp highp 4-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 subgroupPartitionNV ( global highp 4-component vector of uint) -0:31 vector swizzle ( temp highp 2-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 Sequence -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:32 move second child to first child ( temp highp 4-component vector of uint) -0:32 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 2 (const int) -0:32 subgroupPartitionNV ( global highp 4-component vector of uint) -0:32 vector swizzle ( temp highp 3-component vector of uint) -0:32 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 2 (const int) -0:32 Sequence -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 1 (const int) -0:32 Constant: -0:32 2 (const int) -0:33 move second child to first child ( temp highp 4-component vector of uint) -0:33 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 2 (const int) -0:33 subgroupPartitionNV ( global highp 4-component vector of uint) -0:33 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 2 (const int) -0:35 move second child to first child ( temp highp 4-component vector of uint) -0:35 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 2 (const int) -0:35 subgroupPartitionNV ( global highp 4-component vector of uint) -0:35 Convert int to bool ( temp bool) -0:35 direct index ( temp highp int) -0:35 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 0 (const int) -0:36 move second child to first child ( temp highp 4-component vector of uint) -0:36 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 2 (const int) -0:36 subgroupPartitionNV ( global highp 4-component vector of uint) -0:36 Convert int to bool ( temp 2-component vector of bool) -0:36 vector swizzle ( temp highp 2-component vector of int) -0:36 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:37 move second child to first child ( temp highp 4-component vector of uint) -0:37 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:37 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:37 Constant: -0:37 1 (const int) -0:37 Constant: -0:37 2 (const int) -0:37 subgroupPartitionNV ( global highp 4-component vector of uint) -0:37 Convert int to bool ( temp 3-component vector of bool) -0:37 vector swizzle ( temp highp 3-component vector of int) -0:37 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:37 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 1 (const int) -0:37 Sequence -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 1 (const int) -0:37 Constant: -0:37 2 (const int) -0:38 move second child to first child ( temp highp 4-component vector of uint) -0:38 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 Constant: -0:38 1 (const int) -0:38 Constant: -0:38 2 (const int) -0:38 subgroupPartitionNV ( global highp 4-component vector of uint) -0:38 Convert int to bool ( temp 4-component vector of bool) -0:38 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 1 (const int) -0:40 move second child to first child ( temp highp float) -0:40 direct index ( temp highp float) -0:40 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 subgroupPartitionedAddNV ( global highp float) -0:40 direct index ( temp highp float) -0:40 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 'ballot' ( temp highp 4-component vector of uint) -0:41 move second child to first child ( temp highp 2-component vector of float) -0:41 vector swizzle ( temp highp 2-component vector of float) -0:41 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 0 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 subgroupPartitionedAddNV ( global highp 2-component vector of float) -0:41 vector swizzle ( temp highp 2-component vector of float) -0:41 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 0 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 'ballot' ( temp highp 4-component vector of uint) -0:42 move second child to first child ( temp highp 3-component vector of float) -0:42 vector swizzle ( temp highp 3-component vector of float) -0:42 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:42 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 0 (const int) -0:42 Sequence -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 2 (const int) -0:42 subgroupPartitionedAddNV ( global highp 3-component vector of float) -0:42 vector swizzle ( temp highp 3-component vector of float) -0:42 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:42 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:42 Constant: -0:42 2 (const int) -0:42 Constant: -0:42 0 (const int) -0:42 Sequence -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 2 (const int) -0:42 'ballot' ( temp highp 4-component vector of uint) -0:43 move second child to first child ( temp highp 4-component vector of float) -0:43 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:43 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 Constant: -0:43 1 (const int) -0:43 Constant: -0:43 0 (const int) -0:43 subgroupPartitionedAddNV ( global highp 4-component vector of float) -0:43 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:43 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 Constant: -0:43 3 (const int) -0:43 Constant: -0:43 0 (const int) -0:43 'ballot' ( temp highp 4-component vector of uint) -0:45 move second child to first child ( temp highp int) -0:45 direct index ( temp highp int) -0:45 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 0 (const int) -0:45 subgroupPartitionedAddNV ( global highp int) -0:45 direct index ( temp highp int) -0:45 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 0 (const int) -0:45 'ballot' ( temp highp 4-component vector of uint) -0:46 move second child to first child ( temp highp 2-component vector of int) -0:46 vector swizzle ( temp highp 2-component vector of int) -0:46 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 subgroupPartitionedAddNV ( global highp 2-component vector of int) -0:46 vector swizzle ( temp highp 2-component vector of int) -0:46 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 'ballot' ( temp highp 4-component vector of uint) -0:47 move second child to first child ( temp highp 3-component vector of int) -0:47 vector swizzle ( temp highp 3-component vector of int) -0:47 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:47 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:47 Constant: -0:47 1 (const int) -0:47 Constant: -0:47 1 (const int) -0:47 Sequence -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 1 (const int) -0:47 Constant: -0:47 2 (const int) -0:47 subgroupPartitionedAddNV ( global highp 3-component vector of int) -0:47 vector swizzle ( temp highp 3-component vector of int) -0:47 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:47 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:47 Constant: -0:47 2 (const int) -0:47 Constant: -0:47 1 (const int) -0:47 Sequence -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 1 (const int) -0:47 Constant: -0:47 2 (const int) -0:47 'ballot' ( temp highp 4-component vector of uint) -0:48 move second child to first child ( temp highp 4-component vector of int) -0:48 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:48 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 Constant: -0:48 1 (const int) -0:48 Constant: -0:48 1 (const int) -0:48 subgroupPartitionedAddNV ( global highp 4-component vector of int) -0:48 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:48 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 Constant: -0:48 3 (const int) -0:48 Constant: -0:48 1 (const int) -0:48 'ballot' ( temp highp 4-component vector of uint) -0:50 move second child to first child ( temp highp uint) -0:50 direct index ( temp highp uint) -0:50 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 Constant: -0:50 0 (const int) -0:50 subgroupPartitionedAddNV ( global highp uint) -0:50 direct index ( temp highp uint) -0:50 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 Constant: -0:50 0 (const int) -0:50 'ballot' ( temp highp 4-component vector of uint) -0:51 move second child to first child ( temp highp 2-component vector of uint) -0:51 vector swizzle ( temp highp 2-component vector of uint) -0:51 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 2 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 subgroupPartitionedAddNV ( global highp 2-component vector of uint) -0:51 vector swizzle ( temp highp 2-component vector of uint) -0:51 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 2 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 'ballot' ( temp highp 4-component vector of uint) -0:52 move second child to first child ( temp highp 3-component vector of uint) -0:52 vector swizzle ( temp highp 3-component vector of uint) -0:52 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:52 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:52 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:52 Constant: -0:52 1 (const int) -0:52 Constant: -0:52 2 (const int) -0:52 Sequence -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 1 (const int) -0:52 Constant: -0:52 2 (const int) -0:52 subgroupPartitionedAddNV ( global highp 3-component vector of uint) -0:52 vector swizzle ( temp highp 3-component vector of uint) -0:52 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:52 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:52 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:52 Constant: -0:52 2 (const int) -0:52 Constant: -0:52 2 (const int) -0:52 Sequence -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 1 (const int) -0:52 Constant: -0:52 2 (const int) -0:52 'ballot' ( temp highp 4-component vector of uint) -0:53 move second child to first child ( temp highp 4-component vector of uint) -0:53 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:53 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 Constant: -0:53 1 (const int) -0:53 Constant: -0:53 2 (const int) -0:53 subgroupPartitionedAddNV ( global highp 4-component vector of uint) -0:53 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:53 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 Constant: -0:53 3 (const int) -0:53 Constant: -0:53 2 (const int) -0:53 'ballot' ( temp highp 4-component vector of uint) -0:55 move second child to first child ( temp highp float) -0:55 direct index ( temp highp float) -0:55 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 Constant: -0:55 2 (const int) -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 0 (const int) -0:55 subgroupPartitionedMulNV ( global highp float) -0:55 direct index ( temp highp float) -0:55 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 0 (const int) -0:55 'ballot' ( temp highp 4-component vector of uint) -0:56 move second child to first child ( temp highp 2-component vector of float) -0:56 vector swizzle ( temp highp 2-component vector of float) -0:56 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 Constant: -0:56 2 (const int) -0:56 Constant: -0:56 0 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 subgroupPartitionedMulNV ( global highp 2-component vector of float) -0:56 vector swizzle ( temp highp 2-component vector of float) -0:56 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 0 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 'ballot' ( temp highp 4-component vector of uint) -0:57 move second child to first child ( temp highp 3-component vector of float) -0:57 vector swizzle ( temp highp 3-component vector of float) -0:57 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:57 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:57 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:57 Constant: -0:57 2 (const int) -0:57 Constant: -0:57 0 (const int) -0:57 Sequence -0:57 Constant: -0:57 0 (const int) -0:57 Constant: -0:57 1 (const int) -0:57 Constant: -0:57 2 (const int) -0:57 subgroupPartitionedMulNV ( global highp 3-component vector of float) -0:57 vector swizzle ( temp highp 3-component vector of float) -0:57 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:57 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:57 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:57 Constant: -0:57 2 (const int) -0:57 Constant: -0:57 0 (const int) -0:57 Sequence -0:57 Constant: -0:57 0 (const int) -0:57 Constant: -0:57 1 (const int) -0:57 Constant: -0:57 2 (const int) -0:57 'ballot' ( temp highp 4-component vector of uint) -0:58 move second child to first child ( temp highp 4-component vector of float) -0:58 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:58 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 Constant: -0:58 2 (const int) -0:58 Constant: -0:58 0 (const int) -0:58 subgroupPartitionedMulNV ( global highp 4-component vector of float) -0:58 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:58 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 Constant: -0:58 3 (const int) -0:58 Constant: -0:58 0 (const int) -0:58 'ballot' ( temp highp 4-component vector of uint) -0:60 move second child to first child ( temp highp int) -0:60 direct index ( temp highp int) -0:60 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:60 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 Constant: -0:60 2 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 0 (const int) -0:60 subgroupPartitionedMulNV ( global highp int) -0:60 direct index ( temp highp int) -0:60 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:60 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 0 (const int) -0:60 'ballot' ( temp highp 4-component vector of uint) -0:61 move second child to first child ( temp highp 2-component vector of int) -0:61 vector swizzle ( temp highp 2-component vector of int) -0:61 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:61 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 Constant: -0:61 2 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 Sequence -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 subgroupPartitionedMulNV ( global highp 2-component vector of int) -0:61 vector swizzle ( temp highp 2-component vector of int) -0:61 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:61 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 Constant: -0:61 1 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 Sequence -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 'ballot' ( temp highp 4-component vector of uint) -0:62 move second child to first child ( temp highp 3-component vector of int) -0:62 vector swizzle ( temp highp 3-component vector of int) -0:62 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:62 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:62 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:62 Constant: -0:62 2 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 Sequence -0:62 Constant: -0:62 0 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 Constant: -0:62 2 (const int) -0:62 subgroupPartitionedMulNV ( global highp 3-component vector of int) -0:62 vector swizzle ( temp highp 3-component vector of int) -0:62 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:62 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:62 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:62 Constant: -0:62 2 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 Sequence -0:62 Constant: -0:62 0 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 Constant: -0:62 2 (const int) -0:62 'ballot' ( temp highp 4-component vector of uint) -0:63 move second child to first child ( temp highp 4-component vector of int) -0:63 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:63 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 Constant: -0:63 2 (const int) -0:63 Constant: -0:63 1 (const int) -0:63 subgroupPartitionedMulNV ( global highp 4-component vector of int) -0:63 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:63 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 Constant: -0:63 3 (const int) -0:63 Constant: -0:63 1 (const int) -0:63 'ballot' ( temp highp 4-component vector of uint) -0:65 move second child to first child ( temp highp uint) -0:65 direct index ( temp highp uint) -0:65 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:65 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 Constant: -0:65 2 (const int) -0:65 Constant: -0:65 2 (const int) -0:65 Constant: -0:65 0 (const int) -0:65 subgroupPartitionedMulNV ( global highp uint) -0:65 direct index ( temp highp uint) -0:65 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:65 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 2 (const int) -0:65 Constant: -0:65 0 (const int) -0:65 'ballot' ( temp highp 4-component vector of uint) -0:66 move second child to first child ( temp highp 2-component vector of uint) -0:66 vector swizzle ( temp highp 2-component vector of uint) -0:66 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:66 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 Constant: -0:66 2 (const int) -0:66 Constant: -0:66 2 (const int) -0:66 Sequence -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 subgroupPartitionedMulNV ( global highp 2-component vector of uint) -0:66 vector swizzle ( temp highp 2-component vector of uint) -0:66 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:66 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 2 (const int) -0:66 Sequence -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 'ballot' ( temp highp 4-component vector of uint) -0:67 move second child to first child ( temp highp 3-component vector of uint) -0:67 vector swizzle ( temp highp 3-component vector of uint) -0:67 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:67 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:67 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:67 Constant: -0:67 2 (const int) -0:67 Constant: -0:67 2 (const int) -0:67 Sequence -0:67 Constant: -0:67 0 (const int) -0:67 Constant: -0:67 1 (const int) -0:67 Constant: -0:67 2 (const int) -0:67 subgroupPartitionedMulNV ( global highp 3-component vector of uint) -0:67 vector swizzle ( temp highp 3-component vector of uint) -0:67 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:67 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:67 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:67 Constant: -0:67 2 (const int) -0:67 Constant: -0:67 2 (const int) -0:67 Sequence -0:67 Constant: -0:67 0 (const int) -0:67 Constant: -0:67 1 (const int) -0:67 Constant: -0:67 2 (const int) -0:67 'ballot' ( temp highp 4-component vector of uint) -0:68 move second child to first child ( temp highp 4-component vector of uint) -0:68 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:68 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 Constant: -0:68 2 (const int) -0:68 Constant: -0:68 2 (const int) -0:68 subgroupPartitionedMulNV ( global highp 4-component vector of uint) -0:68 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:68 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 Constant: -0:68 3 (const int) -0:68 Constant: -0:68 2 (const int) -0:68 'ballot' ( temp highp 4-component vector of uint) -0:70 move second child to first child ( temp highp float) -0:70 direct index ( temp highp float) -0:70 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:70 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 Constant: -0:70 2 (const int) -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 0 (const int) -0:70 subgroupPartitionedMinNV ( global highp float) -0:70 direct index ( temp highp float) -0:70 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:70 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 0 (const int) -0:70 'ballot' ( temp highp 4-component vector of uint) -0:71 move second child to first child ( temp highp 2-component vector of float) -0:71 vector swizzle ( temp highp 2-component vector of float) -0:71 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:71 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 Constant: -0:71 2 (const int) -0:71 Constant: -0:71 0 (const int) -0:71 Sequence -0:71 Constant: -0:71 0 (const int) -0:71 Constant: -0:71 1 (const int) -0:71 subgroupPartitionedMinNV ( global highp 2-component vector of float) -0:71 vector swizzle ( temp highp 2-component vector of float) -0:71 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:71 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 Constant: -0:71 1 (const int) -0:71 Constant: -0:71 0 (const int) -0:71 Sequence -0:71 Constant: -0:71 0 (const int) -0:71 Constant: -0:71 1 (const int) -0:71 'ballot' ( temp highp 4-component vector of uint) -0:72 move second child to first child ( temp highp 3-component vector of float) -0:72 vector swizzle ( temp highp 3-component vector of float) -0:72 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:72 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:72 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:72 Constant: -0:72 2 (const int) -0:72 Constant: -0:72 0 (const int) -0:72 Sequence -0:72 Constant: -0:72 0 (const int) -0:72 Constant: -0:72 1 (const int) -0:72 Constant: -0:72 2 (const int) -0:72 subgroupPartitionedMinNV ( global highp 3-component vector of float) -0:72 vector swizzle ( temp highp 3-component vector of float) -0:72 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:72 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:72 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:72 Constant: -0:72 2 (const int) -0:72 Constant: -0:72 0 (const int) -0:72 Sequence -0:72 Constant: -0:72 0 (const int) -0:72 Constant: -0:72 1 (const int) -0:72 Constant: -0:72 2 (const int) -0:72 'ballot' ( temp highp 4-component vector of uint) -0:73 move second child to first child ( temp highp 4-component vector of float) -0:73 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:73 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 Constant: -0:73 2 (const int) -0:73 Constant: -0:73 0 (const int) -0:73 subgroupPartitionedMinNV ( global highp 4-component vector of float) -0:73 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:73 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 Constant: -0:73 3 (const int) -0:73 Constant: -0:73 0 (const int) -0:73 'ballot' ( temp highp 4-component vector of uint) -0:75 move second child to first child ( temp highp int) -0:75 direct index ( temp highp int) -0:75 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:75 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:75 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:75 Constant: -0:75 3 (const int) -0:75 Constant: -0:75 1 (const int) -0:75 Constant: -0:75 0 (const int) -0:75 subgroupPartitionedMinNV ( global highp int) -0:75 direct index ( temp highp int) -0:75 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:75 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:75 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 1 (const int) -0:75 Constant: -0:75 0 (const int) -0:75 'ballot' ( temp highp 4-component vector of uint) -0:76 move second child to first child ( temp highp 2-component vector of int) -0:76 vector swizzle ( temp highp 2-component vector of int) -0:76 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:76 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:76 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:76 Constant: -0:76 3 (const int) -0:76 Constant: -0:76 1 (const int) -0:76 Sequence -0:76 Constant: -0:76 0 (const int) -0:76 Constant: -0:76 1 (const int) -0:76 subgroupPartitionedMinNV ( global highp 2-component vector of int) -0:76 vector swizzle ( temp highp 2-component vector of int) -0:76 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:76 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:76 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:76 Constant: -0:76 1 (const int) -0:76 Constant: -0:76 1 (const int) -0:76 Sequence -0:76 Constant: -0:76 0 (const int) -0:76 Constant: -0:76 1 (const int) -0:76 'ballot' ( temp highp 4-component vector of uint) -0:77 move second child to first child ( temp highp 3-component vector of int) -0:77 vector swizzle ( temp highp 3-component vector of int) -0:77 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:77 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:77 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:77 Constant: -0:77 3 (const int) -0:77 Constant: -0:77 1 (const int) -0:77 Sequence -0:77 Constant: -0:77 0 (const int) -0:77 Constant: -0:77 1 (const int) -0:77 Constant: -0:77 2 (const int) -0:77 subgroupPartitionedMinNV ( global highp 3-component vector of int) -0:77 vector swizzle ( temp highp 3-component vector of int) -0:77 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:77 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:77 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:77 Constant: -0:77 2 (const int) -0:77 Constant: -0:77 1 (const int) -0:77 Sequence -0:77 Constant: -0:77 0 (const int) -0:77 Constant: -0:77 1 (const int) -0:77 Constant: -0:77 2 (const int) -0:77 'ballot' ( temp highp 4-component vector of uint) -0:78 move second child to first child ( temp highp 4-component vector of int) -0:78 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:78 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:78 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:78 Constant: -0:78 3 (const int) -0:78 Constant: -0:78 1 (const int) -0:78 subgroupPartitionedMinNV ( global highp 4-component vector of int) -0:78 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:78 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:78 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:78 Constant: -0:78 3 (const int) -0:78 Constant: -0:78 1 (const int) -0:78 'ballot' ( temp highp 4-component vector of uint) -0:80 move second child to first child ( temp highp uint) -0:80 direct index ( temp highp uint) -0:80 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:80 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:80 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:80 Constant: -0:80 3 (const int) -0:80 Constant: -0:80 2 (const int) -0:80 Constant: -0:80 0 (const int) -0:80 subgroupPartitionedMinNV ( global highp uint) -0:80 direct index ( temp highp uint) -0:80 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:80 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:80 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 2 (const int) -0:80 Constant: -0:80 0 (const int) -0:80 'ballot' ( temp highp 4-component vector of uint) -0:81 move second child to first child ( temp highp 2-component vector of uint) -0:81 vector swizzle ( temp highp 2-component vector of uint) -0:81 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:81 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:81 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:81 Constant: -0:81 3 (const int) -0:81 Constant: -0:81 2 (const int) -0:81 Sequence -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 1 (const int) -0:81 subgroupPartitionedMinNV ( global highp 2-component vector of uint) -0:81 vector swizzle ( temp highp 2-component vector of uint) -0:81 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:81 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:81 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:81 Constant: -0:81 1 (const int) -0:81 Constant: -0:81 2 (const int) -0:81 Sequence -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 1 (const int) -0:81 'ballot' ( temp highp 4-component vector of uint) -0:82 move second child to first child ( temp highp 3-component vector of uint) -0:82 vector swizzle ( temp highp 3-component vector of uint) -0:82 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:82 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:82 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:82 Constant: -0:82 3 (const int) -0:82 Constant: -0:82 2 (const int) -0:82 Sequence -0:82 Constant: -0:82 0 (const int) -0:82 Constant: -0:82 1 (const int) -0:82 Constant: -0:82 2 (const int) -0:82 subgroupPartitionedMinNV ( global highp 3-component vector of uint) -0:82 vector swizzle ( temp highp 3-component vector of uint) -0:82 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:82 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:82 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:82 Constant: -0:82 2 (const int) -0:82 Constant: -0:82 2 (const int) -0:82 Sequence -0:82 Constant: -0:82 0 (const int) -0:82 Constant: -0:82 1 (const int) -0:82 Constant: -0:82 2 (const int) -0:82 'ballot' ( temp highp 4-component vector of uint) -0:83 move second child to first child ( temp highp 4-component vector of uint) -0:83 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:83 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:83 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:83 Constant: -0:83 3 (const int) -0:83 Constant: -0:83 2 (const int) -0:83 subgroupPartitionedMinNV ( global highp 4-component vector of uint) -0:83 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:83 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:83 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:83 Constant: -0:83 3 (const int) -0:83 Constant: -0:83 2 (const int) -0:83 'ballot' ( temp highp 4-component vector of uint) -0:85 move second child to first child ( temp highp float) -0:85 direct index ( temp highp float) -0:85 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:85 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:85 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:85 Constant: -0:85 3 (const int) -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 0 (const int) -0:85 subgroupPartitionedMaxNV ( global highp float) -0:85 direct index ( temp highp float) -0:85 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:85 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:85 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 0 (const int) -0:85 'ballot' ( temp highp 4-component vector of uint) -0:86 move second child to first child ( temp highp 2-component vector of float) -0:86 vector swizzle ( temp highp 2-component vector of float) -0:86 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:86 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:86 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:86 Constant: -0:86 3 (const int) -0:86 Constant: -0:86 0 (const int) -0:86 Sequence -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 1 (const int) -0:86 subgroupPartitionedMaxNV ( global highp 2-component vector of float) -0:86 vector swizzle ( temp highp 2-component vector of float) -0:86 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:86 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:86 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:86 Constant: -0:86 1 (const int) -0:86 Constant: -0:86 0 (const int) -0:86 Sequence -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 1 (const int) -0:86 'ballot' ( temp highp 4-component vector of uint) -0:87 move second child to first child ( temp highp 3-component vector of float) -0:87 vector swizzle ( temp highp 3-component vector of float) -0:87 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:87 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:87 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:87 Constant: -0:87 3 (const int) -0:87 Constant: -0:87 0 (const int) -0:87 Sequence -0:87 Constant: -0:87 0 (const int) -0:87 Constant: -0:87 1 (const int) -0:87 Constant: -0:87 2 (const int) -0:87 subgroupPartitionedMaxNV ( global highp 3-component vector of float) -0:87 vector swizzle ( temp highp 3-component vector of float) -0:87 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:87 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:87 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:87 Constant: -0:87 2 (const int) -0:87 Constant: -0:87 0 (const int) -0:87 Sequence -0:87 Constant: -0:87 0 (const int) -0:87 Constant: -0:87 1 (const int) -0:87 Constant: -0:87 2 (const int) -0:87 'ballot' ( temp highp 4-component vector of uint) -0:88 move second child to first child ( temp highp 4-component vector of float) -0:88 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:88 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:88 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:88 Constant: -0:88 3 (const int) -0:88 Constant: -0:88 0 (const int) -0:88 subgroupPartitionedMaxNV ( global highp 4-component vector of float) -0:88 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:88 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:88 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:88 Constant: -0:88 3 (const int) -0:88 Constant: -0:88 0 (const int) -0:88 'ballot' ( temp highp 4-component vector of uint) -0:90 move second child to first child ( temp highp int) -0:90 direct index ( temp highp int) -0:90 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:90 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:90 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:90 Constant: -0:90 0 (const int) -0:90 Constant: -0:90 1 (const int) -0:90 Constant: -0:90 0 (const int) -0:90 subgroupPartitionedMaxNV ( global highp int) -0:90 direct index ( temp highp int) -0:90 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:90 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:90 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:90 Constant: -0:90 0 (const int) -0:90 Constant: -0:90 1 (const int) -0:90 Constant: -0:90 0 (const int) -0:90 'ballot' ( temp highp 4-component vector of uint) -0:91 move second child to first child ( temp highp 2-component vector of int) -0:91 vector swizzle ( temp highp 2-component vector of int) -0:91 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:91 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:91 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:91 Constant: -0:91 0 (const int) -0:91 Constant: -0:91 1 (const int) -0:91 Sequence -0:91 Constant: -0:91 0 (const int) -0:91 Constant: -0:91 1 (const int) -0:91 subgroupPartitionedMaxNV ( global highp 2-component vector of int) -0:91 vector swizzle ( temp highp 2-component vector of int) -0:91 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:91 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:91 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:91 Constant: -0:91 1 (const int) -0:91 Constant: -0:91 1 (const int) -0:91 Sequence -0:91 Constant: -0:91 0 (const int) -0:91 Constant: -0:91 1 (const int) -0:91 'ballot' ( temp highp 4-component vector of uint) -0:92 move second child to first child ( temp highp 3-component vector of int) -0:92 vector swizzle ( temp highp 3-component vector of int) -0:92 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:92 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:92 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:92 Constant: -0:92 0 (const int) -0:92 Constant: -0:92 1 (const int) -0:92 Sequence -0:92 Constant: -0:92 0 (const int) -0:92 Constant: -0:92 1 (const int) -0:92 Constant: -0:92 2 (const int) -0:92 subgroupPartitionedMaxNV ( global highp 3-component vector of int) -0:92 vector swizzle ( temp highp 3-component vector of int) -0:92 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:92 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:92 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:92 Constant: -0:92 2 (const int) -0:92 Constant: -0:92 1 (const int) -0:92 Sequence -0:92 Constant: -0:92 0 (const int) -0:92 Constant: -0:92 1 (const int) -0:92 Constant: -0:92 2 (const int) -0:92 'ballot' ( temp highp 4-component vector of uint) -0:93 move second child to first child ( temp highp 4-component vector of int) -0:93 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:93 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:93 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:93 Constant: -0:93 0 (const int) -0:93 Constant: -0:93 1 (const int) -0:93 subgroupPartitionedMaxNV ( global highp 4-component vector of int) -0:93 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:93 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:93 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:93 Constant: -0:93 3 (const int) -0:93 Constant: -0:93 1 (const int) -0:93 'ballot' ( temp highp 4-component vector of uint) -0:95 move second child to first child ( temp highp uint) -0:95 direct index ( temp highp uint) -0:95 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:95 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:95 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 2 (const int) -0:95 Constant: -0:95 0 (const int) -0:95 subgroupPartitionedMaxNV ( global highp uint) -0:95 direct index ( temp highp uint) -0:95 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:95 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:95 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 2 (const int) -0:95 Constant: -0:95 0 (const int) -0:95 'ballot' ( temp highp 4-component vector of uint) -0:96 move second child to first child ( temp highp 2-component vector of uint) -0:96 vector swizzle ( temp highp 2-component vector of uint) -0:96 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:96 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:96 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:96 Constant: -0:96 0 (const int) -0:96 Constant: -0:96 2 (const int) -0:96 Sequence -0:96 Constant: -0:96 0 (const int) -0:96 Constant: -0:96 1 (const int) -0:96 subgroupPartitionedMaxNV ( global highp 2-component vector of uint) -0:96 vector swizzle ( temp highp 2-component vector of uint) -0:96 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:96 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:96 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:96 Constant: -0:96 1 (const int) -0:96 Constant: -0:96 2 (const int) -0:96 Sequence -0:96 Constant: -0:96 0 (const int) -0:96 Constant: -0:96 1 (const int) -0:96 'ballot' ( temp highp 4-component vector of uint) -0:97 move second child to first child ( temp highp 3-component vector of uint) -0:97 vector swizzle ( temp highp 3-component vector of uint) -0:97 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:97 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:97 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:97 Constant: -0:97 0 (const int) -0:97 Constant: -0:97 2 (const int) -0:97 Sequence -0:97 Constant: -0:97 0 (const int) -0:97 Constant: -0:97 1 (const int) -0:97 Constant: -0:97 2 (const int) -0:97 subgroupPartitionedMaxNV ( global highp 3-component vector of uint) -0:97 vector swizzle ( temp highp 3-component vector of uint) -0:97 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:97 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:97 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:97 Constant: -0:97 2 (const int) -0:97 Constant: -0:97 2 (const int) -0:97 Sequence -0:97 Constant: -0:97 0 (const int) -0:97 Constant: -0:97 1 (const int) -0:97 Constant: -0:97 2 (const int) -0:97 'ballot' ( temp highp 4-component vector of uint) -0:98 move second child to first child ( temp highp 4-component vector of uint) -0:98 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:98 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:98 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:98 Constant: -0:98 0 (const int) -0:98 Constant: -0:98 2 (const int) -0:98 subgroupPartitionedMaxNV ( global highp 4-component vector of uint) -0:98 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:98 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:98 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:98 Constant: -0:98 3 (const int) -0:98 Constant: -0:98 2 (const int) -0:98 'ballot' ( temp highp 4-component vector of uint) -0:100 move second child to first child ( temp highp int) -0:100 direct index ( temp highp int) -0:100 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:100 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:100 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:100 Constant: -0:100 0 (const int) -0:100 Constant: -0:100 1 (const int) -0:100 Constant: -0:100 0 (const int) -0:100 subgroupPartitionedAndNV ( global highp int) -0:100 direct index ( temp highp int) -0:100 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:100 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:100 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:100 Constant: -0:100 0 (const int) -0:100 Constant: -0:100 1 (const int) -0:100 Constant: -0:100 0 (const int) -0:100 'ballot' ( temp highp 4-component vector of uint) -0:101 move second child to first child ( temp highp 2-component vector of int) -0:101 vector swizzle ( temp highp 2-component vector of int) -0:101 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:101 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:101 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 1 (const int) -0:101 Sequence -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 1 (const int) -0:101 subgroupPartitionedAndNV ( global highp 2-component vector of int) -0:101 vector swizzle ( temp highp 2-component vector of int) -0:101 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:101 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:101 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:101 Constant: -0:101 1 (const int) -0:101 Constant: -0:101 1 (const int) -0:101 Sequence -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 1 (const int) -0:101 'ballot' ( temp highp 4-component vector of uint) -0:102 move second child to first child ( temp highp 3-component vector of int) -0:102 vector swizzle ( temp highp 3-component vector of int) -0:102 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:102 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:102 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:102 Constant: -0:102 0 (const int) -0:102 Constant: -0:102 1 (const int) -0:102 Sequence -0:102 Constant: -0:102 0 (const int) -0:102 Constant: -0:102 1 (const int) -0:102 Constant: -0:102 2 (const int) -0:102 subgroupPartitionedAndNV ( global highp 3-component vector of int) -0:102 vector swizzle ( temp highp 3-component vector of int) -0:102 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:102 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:102 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:102 Constant: -0:102 2 (const int) -0:102 Constant: -0:102 1 (const int) -0:102 Sequence -0:102 Constant: -0:102 0 (const int) -0:102 Constant: -0:102 1 (const int) -0:102 Constant: -0:102 2 (const int) -0:102 'ballot' ( temp highp 4-component vector of uint) -0:103 move second child to first child ( temp highp 4-component vector of int) -0:103 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:103 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:103 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:103 Constant: -0:103 0 (const int) -0:103 Constant: -0:103 1 (const int) -0:103 subgroupPartitionedAndNV ( global highp 4-component vector of int) -0:103 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:103 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:103 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:103 Constant: -0:103 3 (const int) -0:103 Constant: -0:103 1 (const int) -0:103 'ballot' ( temp highp 4-component vector of uint) -0:105 move second child to first child ( temp highp uint) -0:105 direct index ( temp highp uint) -0:105 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:105 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:105 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:105 Constant: -0:105 1 (const int) -0:105 Constant: -0:105 2 (const int) -0:105 Constant: -0:105 0 (const int) -0:105 subgroupPartitionedAndNV ( global highp uint) -0:105 direct index ( temp highp uint) -0:105 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:105 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:105 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:105 Constant: -0:105 0 (const int) -0:105 Constant: -0:105 2 (const int) -0:105 Constant: -0:105 0 (const int) -0:105 'ballot' ( temp highp 4-component vector of uint) -0:106 move second child to first child ( temp highp 2-component vector of uint) -0:106 vector swizzle ( temp highp 2-component vector of uint) -0:106 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:106 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:106 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:106 Constant: -0:106 1 (const int) -0:106 Constant: -0:106 2 (const int) -0:106 Sequence -0:106 Constant: -0:106 0 (const int) -0:106 Constant: -0:106 1 (const int) -0:106 subgroupPartitionedAndNV ( global highp 2-component vector of uint) -0:106 vector swizzle ( temp highp 2-component vector of uint) -0:106 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:106 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:106 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:106 Constant: -0:106 1 (const int) -0:106 Constant: -0:106 2 (const int) -0:106 Sequence -0:106 Constant: -0:106 0 (const int) -0:106 Constant: -0:106 1 (const int) -0:106 'ballot' ( temp highp 4-component vector of uint) -0:107 move second child to first child ( temp highp 3-component vector of uint) -0:107 vector swizzle ( temp highp 3-component vector of uint) -0:107 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:107 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:107 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:107 Constant: -0:107 1 (const int) -0:107 Constant: -0:107 2 (const int) -0:107 Sequence -0:107 Constant: -0:107 0 (const int) -0:107 Constant: -0:107 1 (const int) -0:107 Constant: -0:107 2 (const int) -0:107 subgroupPartitionedAndNV ( global highp 3-component vector of uint) -0:107 vector swizzle ( temp highp 3-component vector of uint) -0:107 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:107 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:107 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:107 Constant: -0:107 2 (const int) -0:107 Constant: -0:107 2 (const int) -0:107 Sequence -0:107 Constant: -0:107 0 (const int) -0:107 Constant: -0:107 1 (const int) -0:107 Constant: -0:107 2 (const int) -0:107 'ballot' ( temp highp 4-component vector of uint) -0:108 move second child to first child ( temp highp 4-component vector of uint) -0:108 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:108 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:108 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:108 Constant: -0:108 1 (const int) -0:108 Constant: -0:108 2 (const int) -0:108 subgroupPartitionedAndNV ( global highp 4-component vector of uint) -0:108 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:108 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:108 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:108 Constant: -0:108 3 (const int) -0:108 Constant: -0:108 2 (const int) -0:108 'ballot' ( temp highp 4-component vector of uint) -0:110 move second child to first child ( temp highp int) -0:110 direct index ( temp highp int) -0:110 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:110 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:110 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:110 Constant: -0:110 1 (const int) -0:110 Constant: -0:110 1 (const int) -0:110 Constant: -0:110 0 (const int) -0:110 Convert bool to int ( temp highp int) -0:110 subgroupPartitionedAndNV ( global bool, operation at highp) -0:110 Compare Less Than ( temp bool) -0:110 direct index ( temp highp int) -0:110 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:110 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:110 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:110 Constant: -0:110 0 (const int) -0:110 Constant: -0:110 1 (const int) -0:110 Constant: -0:110 0 (const int) -0:110 Constant: -0:110 0 (const int) -0:110 'ballot' ( temp highp 4-component vector of uint) -0:111 move second child to first child ( temp highp 2-component vector of int) -0:111 vector swizzle ( temp highp 2-component vector of int) -0:111 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:111 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:111 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:111 Constant: -0:111 1 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 Sequence -0:111 Constant: -0:111 0 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 Convert bool to int ( temp highp 2-component vector of int) -0:111 subgroupPartitionedAndNV ( global 2-component vector of bool, operation at highp) -0:111 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:111 vector swizzle ( temp highp 2-component vector of int) -0:111 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:111 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:111 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:111 Constant: -0:111 1 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 Sequence -0:111 Constant: -0:111 0 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 Constant: -0:111 0 (const int) -0:111 0 (const int) -0:111 'ballot' ( temp highp 4-component vector of uint) -0:112 move second child to first child ( temp highp 3-component vector of int) -0:112 vector swizzle ( temp highp 3-component vector of int) -0:112 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:112 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:112 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:112 Constant: -0:112 1 (const int) -0:112 Constant: -0:112 1 (const int) -0:112 Sequence -0:112 Constant: -0:112 0 (const int) -0:112 Constant: -0:112 1 (const int) -0:112 Constant: -0:112 2 (const int) -0:112 Convert bool to int ( temp highp 3-component vector of int) -0:112 subgroupPartitionedAndNV ( global 3-component vector of bool, operation at highp) -0:112 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:112 vector swizzle ( temp highp 3-component vector of int) -0:112 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:112 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:112 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:112 Constant: -0:112 1 (const int) -0:112 Constant: -0:112 1 (const int) -0:112 Sequence -0:112 Constant: -0:112 0 (const int) -0:112 Constant: -0:112 1 (const int) -0:112 Constant: -0:112 2 (const int) -0:112 Constant: -0:112 0 (const int) -0:112 0 (const int) -0:112 0 (const int) -0:112 'ballot' ( temp highp 4-component vector of uint) -0:113 move second child to first child ( temp highp 4-component vector of int) -0:113 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:113 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:113 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:113 Constant: -0:113 1 (const int) -0:113 Constant: -0:113 1 (const int) -0:113 Convert bool to int ( temp highp 4-component vector of int) -0:113 subgroupPartitionedAndNV ( global 4-component vector of bool, operation at highp) -0:113 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:113 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:113 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:113 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:113 Constant: -0:113 1 (const int) -0:113 Constant: -0:113 1 (const int) -0:113 Constant: -0:113 0 (const int) -0:113 0 (const int) -0:113 0 (const int) -0:113 0 (const int) -0:113 'ballot' ( temp highp 4-component vector of uint) -0:115 move second child to first child ( temp highp int) -0:115 direct index ( temp highp int) -0:115 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:115 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:115 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:115 Constant: -0:115 1 (const int) -0:115 Constant: -0:115 1 (const int) -0:115 Constant: -0:115 0 (const int) -0:115 subgroupPartitionedOrNV ( global highp int) -0:115 direct index ( temp highp int) -0:115 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:115 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:115 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:115 Constant: -0:115 0 (const int) -0:115 Constant: -0:115 1 (const int) -0:115 Constant: -0:115 0 (const int) -0:115 'ballot' ( temp highp 4-component vector of uint) -0:116 move second child to first child ( temp highp 2-component vector of int) -0:116 vector swizzle ( temp highp 2-component vector of int) -0:116 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:116 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:116 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:116 Constant: -0:116 1 (const int) -0:116 Constant: -0:116 1 (const int) -0:116 Sequence -0:116 Constant: -0:116 0 (const int) -0:116 Constant: -0:116 1 (const int) -0:116 subgroupPartitionedOrNV ( global highp 2-component vector of int) -0:116 vector swizzle ( temp highp 2-component vector of int) -0:116 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:116 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:116 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:116 Constant: -0:116 1 (const int) -0:116 Constant: -0:116 1 (const int) -0:116 Sequence -0:116 Constant: -0:116 0 (const int) -0:116 Constant: -0:116 1 (const int) -0:116 'ballot' ( temp highp 4-component vector of uint) -0:117 move second child to first child ( temp highp 3-component vector of int) -0:117 vector swizzle ( temp highp 3-component vector of int) -0:117 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:117 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:117 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:117 Constant: -0:117 1 (const int) -0:117 Constant: -0:117 1 (const int) -0:117 Sequence -0:117 Constant: -0:117 0 (const int) -0:117 Constant: -0:117 1 (const int) -0:117 Constant: -0:117 2 (const int) -0:117 subgroupPartitionedOrNV ( global highp 3-component vector of int) -0:117 vector swizzle ( temp highp 3-component vector of int) -0:117 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:117 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:117 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:117 Constant: -0:117 2 (const int) -0:117 Constant: -0:117 1 (const int) -0:117 Sequence -0:117 Constant: -0:117 0 (const int) -0:117 Constant: -0:117 1 (const int) -0:117 Constant: -0:117 2 (const int) -0:117 'ballot' ( temp highp 4-component vector of uint) -0:118 move second child to first child ( temp highp 4-component vector of int) -0:118 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:118 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:118 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:118 Constant: -0:118 1 (const int) -0:118 Constant: -0:118 1 (const int) -0:118 subgroupPartitionedOrNV ( global highp 4-component vector of int) -0:118 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:118 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:118 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:118 Constant: -0:118 3 (const int) -0:118 Constant: -0:118 1 (const int) -0:118 'ballot' ( temp highp 4-component vector of uint) -0:120 move second child to first child ( temp highp uint) -0:120 direct index ( temp highp uint) -0:120 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:120 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:120 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:120 Constant: -0:120 2 (const int) -0:120 Constant: -0:120 2 (const int) -0:120 Constant: -0:120 0 (const int) -0:120 subgroupPartitionedOrNV ( global highp uint) -0:120 direct index ( temp highp uint) -0:120 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:120 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:120 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:120 Constant: -0:120 0 (const int) -0:120 Constant: -0:120 2 (const int) -0:120 Constant: -0:120 0 (const int) -0:120 'ballot' ( temp highp 4-component vector of uint) -0:121 move second child to first child ( temp highp 2-component vector of uint) -0:121 vector swizzle ( temp highp 2-component vector of uint) -0:121 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:121 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:121 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:121 Constant: -0:121 2 (const int) -0:121 Constant: -0:121 2 (const int) -0:121 Sequence -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 1 (const int) -0:121 subgroupPartitionedOrNV ( global highp 2-component vector of uint) -0:121 vector swizzle ( temp highp 2-component vector of uint) -0:121 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:121 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:121 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:121 Constant: -0:121 1 (const int) -0:121 Constant: -0:121 2 (const int) -0:121 Sequence -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 1 (const int) -0:121 'ballot' ( temp highp 4-component vector of uint) -0:122 move second child to first child ( temp highp 3-component vector of uint) -0:122 vector swizzle ( temp highp 3-component vector of uint) -0:122 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:122 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:122 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:122 Constant: -0:122 2 (const int) -0:122 Constant: -0:122 2 (const int) -0:122 Sequence -0:122 Constant: -0:122 0 (const int) -0:122 Constant: -0:122 1 (const int) -0:122 Constant: -0:122 2 (const int) -0:122 subgroupPartitionedOrNV ( global highp 3-component vector of uint) -0:122 vector swizzle ( temp highp 3-component vector of uint) -0:122 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:122 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:122 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:122 Constant: -0:122 2 (const int) -0:122 Constant: -0:122 2 (const int) -0:122 Sequence -0:122 Constant: -0:122 0 (const int) -0:122 Constant: -0:122 1 (const int) -0:122 Constant: -0:122 2 (const int) -0:122 'ballot' ( temp highp 4-component vector of uint) -0:123 move second child to first child ( temp highp 4-component vector of uint) -0:123 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:123 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:123 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:123 Constant: -0:123 2 (const int) -0:123 Constant: -0:123 2 (const int) -0:123 subgroupPartitionedOrNV ( global highp 4-component vector of uint) -0:123 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:123 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:123 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:123 Constant: -0:123 3 (const int) -0:123 Constant: -0:123 2 (const int) -0:123 'ballot' ( temp highp 4-component vector of uint) -0:125 move second child to first child ( temp highp int) -0:125 direct index ( temp highp int) -0:125 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:125 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:125 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:125 Constant: -0:125 2 (const int) -0:125 Constant: -0:125 1 (const int) -0:125 Constant: -0:125 0 (const int) -0:125 Convert bool to int ( temp highp int) -0:125 subgroupPartitionedOrNV ( global bool, operation at highp) -0:125 Compare Less Than ( temp bool) -0:125 direct index ( temp highp int) -0:125 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:125 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:125 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:125 Constant: -0:125 0 (const int) -0:125 Constant: -0:125 1 (const int) -0:125 Constant: -0:125 0 (const int) -0:125 Constant: -0:125 0 (const int) -0:125 'ballot' ( temp highp 4-component vector of uint) -0:126 move second child to first child ( temp highp 2-component vector of int) -0:126 vector swizzle ( temp highp 2-component vector of int) -0:126 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:126 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:126 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:126 Constant: -0:126 2 (const int) -0:126 Constant: -0:126 1 (const int) -0:126 Sequence -0:126 Constant: -0:126 0 (const int) -0:126 Constant: -0:126 1 (const int) -0:126 Convert bool to int ( temp highp 2-component vector of int) -0:126 subgroupPartitionedOrNV ( global 2-component vector of bool, operation at highp) -0:126 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:126 vector swizzle ( temp highp 2-component vector of int) -0:126 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:126 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:126 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:126 Constant: -0:126 1 (const int) -0:126 Constant: -0:126 1 (const int) -0:126 Sequence -0:126 Constant: -0:126 0 (const int) -0:126 Constant: -0:126 1 (const int) -0:126 Constant: -0:126 0 (const int) -0:126 0 (const int) -0:126 'ballot' ( temp highp 4-component vector of uint) -0:127 move second child to first child ( temp highp 3-component vector of int) -0:127 vector swizzle ( temp highp 3-component vector of int) -0:127 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:127 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:127 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:127 Constant: -0:127 2 (const int) -0:127 Constant: -0:127 1 (const int) -0:127 Sequence -0:127 Constant: -0:127 0 (const int) -0:127 Constant: -0:127 1 (const int) -0:127 Constant: -0:127 2 (const int) -0:127 Convert bool to int ( temp highp 3-component vector of int) -0:127 subgroupPartitionedOrNV ( global 3-component vector of bool, operation at highp) -0:127 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:127 vector swizzle ( temp highp 3-component vector of int) -0:127 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:127 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:127 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:127 Constant: -0:127 1 (const int) -0:127 Constant: -0:127 1 (const int) -0:127 Sequence -0:127 Constant: -0:127 0 (const int) -0:127 Constant: -0:127 1 (const int) -0:127 Constant: -0:127 2 (const int) -0:127 Constant: -0:127 0 (const int) -0:127 0 (const int) -0:127 0 (const int) -0:127 'ballot' ( temp highp 4-component vector of uint) -0:128 move second child to first child ( temp highp 4-component vector of int) -0:128 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:128 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:128 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:128 Constant: -0:128 2 (const int) -0:128 Constant: -0:128 1 (const int) -0:128 Convert bool to int ( temp highp 4-component vector of int) -0:128 subgroupPartitionedOrNV ( global 4-component vector of bool, operation at highp) -0:128 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:128 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:128 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:128 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:128 Constant: -0:128 1 (const int) -0:128 Constant: -0:128 1 (const int) -0:128 Constant: -0:128 0 (const int) -0:128 0 (const int) -0:128 0 (const int) -0:128 0 (const int) -0:128 'ballot' ( temp highp 4-component vector of uint) -0:130 move second child to first child ( temp highp int) -0:130 direct index ( temp highp int) -0:130 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:130 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:130 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:130 Constant: -0:130 2 (const int) -0:130 Constant: -0:130 1 (const int) -0:130 Constant: -0:130 0 (const int) -0:130 subgroupPartitionedXorNV ( global highp int) -0:130 direct index ( temp highp int) -0:130 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:130 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:130 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:130 Constant: -0:130 0 (const int) -0:130 Constant: -0:130 1 (const int) -0:130 Constant: -0:130 0 (const int) -0:130 'ballot' ( temp highp 4-component vector of uint) -0:131 move second child to first child ( temp highp 2-component vector of int) -0:131 vector swizzle ( temp highp 2-component vector of int) -0:131 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:131 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:131 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:131 Constant: -0:131 2 (const int) -0:131 Constant: -0:131 1 (const int) -0:131 Sequence -0:131 Constant: -0:131 0 (const int) -0:131 Constant: -0:131 1 (const int) -0:131 subgroupPartitionedXorNV ( global highp 2-component vector of int) -0:131 vector swizzle ( temp highp 2-component vector of int) -0:131 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:131 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:131 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:131 Constant: -0:131 1 (const int) -0:131 Constant: -0:131 1 (const int) -0:131 Sequence -0:131 Constant: -0:131 0 (const int) -0:131 Constant: -0:131 1 (const int) -0:131 'ballot' ( temp highp 4-component vector of uint) -0:132 move second child to first child ( temp highp 3-component vector of int) -0:132 vector swizzle ( temp highp 3-component vector of int) -0:132 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:132 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:132 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:132 Constant: -0:132 2 (const int) -0:132 Constant: -0:132 1 (const int) -0:132 Sequence -0:132 Constant: -0:132 0 (const int) -0:132 Constant: -0:132 1 (const int) -0:132 Constant: -0:132 2 (const int) -0:132 subgroupPartitionedXorNV ( global highp 3-component vector of int) -0:132 vector swizzle ( temp highp 3-component vector of int) -0:132 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:132 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:132 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:132 Constant: -0:132 2 (const int) -0:132 Constant: -0:132 1 (const int) -0:132 Sequence -0:132 Constant: -0:132 0 (const int) -0:132 Constant: -0:132 1 (const int) -0:132 Constant: -0:132 2 (const int) -0:132 'ballot' ( temp highp 4-component vector of uint) -0:133 move second child to first child ( temp highp 4-component vector of int) -0:133 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:133 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:133 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:133 Constant: -0:133 2 (const int) -0:133 Constant: -0:133 1 (const int) -0:133 subgroupPartitionedXorNV ( global highp 4-component vector of int) -0:133 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:133 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:133 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:133 Constant: -0:133 3 (const int) -0:133 Constant: -0:133 1 (const int) -0:133 'ballot' ( temp highp 4-component vector of uint) -0:135 move second child to first child ( temp highp uint) -0:135 direct index ( temp highp uint) -0:135 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:135 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:135 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:135 Constant: -0:135 2 (const int) -0:135 Constant: -0:135 2 (const int) -0:135 Constant: -0:135 0 (const int) -0:135 subgroupPartitionedXorNV ( global highp uint) -0:135 direct index ( temp highp uint) -0:135 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:135 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:135 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:135 Constant: -0:135 0 (const int) -0:135 Constant: -0:135 2 (const int) -0:135 Constant: -0:135 0 (const int) -0:135 'ballot' ( temp highp 4-component vector of uint) -0:136 move second child to first child ( temp highp 2-component vector of uint) -0:136 vector swizzle ( temp highp 2-component vector of uint) -0:136 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:136 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:136 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:136 Constant: -0:136 2 (const int) -0:136 Constant: -0:136 2 (const int) -0:136 Sequence -0:136 Constant: -0:136 0 (const int) -0:136 Constant: -0:136 1 (const int) -0:136 subgroupPartitionedXorNV ( global highp 2-component vector of uint) -0:136 vector swizzle ( temp highp 2-component vector of uint) -0:136 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:136 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:136 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:136 Constant: -0:136 1 (const int) -0:136 Constant: -0:136 2 (const int) -0:136 Sequence -0:136 Constant: -0:136 0 (const int) -0:136 Constant: -0:136 1 (const int) -0:136 'ballot' ( temp highp 4-component vector of uint) -0:137 move second child to first child ( temp highp 3-component vector of uint) -0:137 vector swizzle ( temp highp 3-component vector of uint) -0:137 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:137 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:137 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:137 Constant: -0:137 2 (const int) -0:137 Constant: -0:137 2 (const int) -0:137 Sequence -0:137 Constant: -0:137 0 (const int) -0:137 Constant: -0:137 1 (const int) -0:137 Constant: -0:137 2 (const int) -0:137 subgroupPartitionedXorNV ( global highp 3-component vector of uint) -0:137 vector swizzle ( temp highp 3-component vector of uint) -0:137 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:137 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:137 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:137 Constant: -0:137 2 (const int) -0:137 Constant: -0:137 2 (const int) -0:137 Sequence -0:137 Constant: -0:137 0 (const int) -0:137 Constant: -0:137 1 (const int) -0:137 Constant: -0:137 2 (const int) -0:137 'ballot' ( temp highp 4-component vector of uint) -0:138 move second child to first child ( temp highp 4-component vector of uint) -0:138 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:138 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:138 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:138 Constant: -0:138 2 (const int) -0:138 Constant: -0:138 2 (const int) -0:138 subgroupPartitionedXorNV ( global highp 4-component vector of uint) -0:138 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:138 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:138 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:138 Constant: -0:138 3 (const int) -0:138 Constant: -0:138 2 (const int) -0:138 'ballot' ( temp highp 4-component vector of uint) -0:140 move second child to first child ( temp highp int) -0:140 direct index ( temp highp int) -0:140 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:140 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:140 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:140 Constant: -0:140 3 (const int) -0:140 Constant: -0:140 1 (const int) -0:140 Constant: -0:140 0 (const int) -0:140 Convert bool to int ( temp highp int) -0:140 subgroupPartitionedXorNV ( global bool, operation at highp) -0:140 Compare Less Than ( temp bool) -0:140 direct index ( temp highp int) -0:140 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:140 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:140 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:140 Constant: -0:140 0 (const int) -0:140 Constant: -0:140 1 (const int) -0:140 Constant: -0:140 0 (const int) -0:140 Constant: -0:140 0 (const int) -0:140 'ballot' ( temp highp 4-component vector of uint) -0:141 move second child to first child ( temp highp 2-component vector of int) -0:141 vector swizzle ( temp highp 2-component vector of int) -0:141 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:141 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:141 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:141 Constant: -0:141 3 (const int) -0:141 Constant: -0:141 1 (const int) -0:141 Sequence -0:141 Constant: -0:141 0 (const int) -0:141 Constant: -0:141 1 (const int) -0:141 Convert bool to int ( temp highp 2-component vector of int) -0:141 subgroupPartitionedXorNV ( global 2-component vector of bool, operation at highp) -0:141 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:141 vector swizzle ( temp highp 2-component vector of int) -0:141 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:141 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:141 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:141 Constant: -0:141 1 (const int) -0:141 Constant: -0:141 1 (const int) -0:141 Sequence -0:141 Constant: -0:141 0 (const int) -0:141 Constant: -0:141 1 (const int) -0:141 Constant: -0:141 0 (const int) -0:141 0 (const int) -0:141 'ballot' ( temp highp 4-component vector of uint) -0:142 move second child to first child ( temp highp 3-component vector of int) -0:142 vector swizzle ( temp highp 3-component vector of int) -0:142 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:142 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:142 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:142 Constant: -0:142 3 (const int) -0:142 Constant: -0:142 1 (const int) -0:142 Sequence -0:142 Constant: -0:142 0 (const int) -0:142 Constant: -0:142 1 (const int) -0:142 Constant: -0:142 2 (const int) -0:142 Convert bool to int ( temp highp 3-component vector of int) -0:142 subgroupPartitionedXorNV ( global 3-component vector of bool, operation at highp) -0:142 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:142 vector swizzle ( temp highp 3-component vector of int) -0:142 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:142 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:142 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:142 Constant: -0:142 1 (const int) -0:142 Constant: -0:142 1 (const int) -0:142 Sequence -0:142 Constant: -0:142 0 (const int) -0:142 Constant: -0:142 1 (const int) -0:142 Constant: -0:142 2 (const int) -0:142 Constant: -0:142 0 (const int) -0:142 0 (const int) -0:142 0 (const int) -0:142 'ballot' ( temp highp 4-component vector of uint) -0:143 move second child to first child ( temp highp 4-component vector of int) -0:143 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:143 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:143 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:143 Constant: -0:143 3 (const int) -0:143 Constant: -0:143 1 (const int) -0:143 Convert bool to int ( temp highp 4-component vector of int) -0:143 subgroupPartitionedXorNV ( global 4-component vector of bool, operation at highp) -0:143 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:143 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:143 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:143 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:143 Constant: -0:143 1 (const int) -0:143 Constant: -0:143 1 (const int) -0:143 Constant: -0:143 0 (const int) -0:143 0 (const int) -0:143 0 (const int) -0:143 0 (const int) -0:143 'ballot' ( temp highp 4-component vector of uint) -0:145 move second child to first child ( temp highp float) -0:145 direct index ( temp highp float) -0:145 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:145 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:145 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:145 Constant: -0:145 3 (const int) -0:145 Constant: -0:145 0 (const int) -0:145 Constant: -0:145 0 (const int) -0:145 subgroupPartitionedInclusiveAddNV ( global highp float) -0:145 direct index ( temp highp float) -0:145 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:145 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:145 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:145 Constant: -0:145 0 (const int) -0:145 Constant: -0:145 0 (const int) -0:145 Constant: -0:145 0 (const int) -0:145 'ballot' ( temp highp 4-component vector of uint) -0:146 move second child to first child ( temp highp 2-component vector of float) -0:146 vector swizzle ( temp highp 2-component vector of float) -0:146 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:146 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:146 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:146 Constant: -0:146 3 (const int) -0:146 Constant: -0:146 0 (const int) -0:146 Sequence -0:146 Constant: -0:146 0 (const int) -0:146 Constant: -0:146 1 (const int) -0:146 subgroupPartitionedInclusiveAddNV ( global highp 2-component vector of float) -0:146 vector swizzle ( temp highp 2-component vector of float) -0:146 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:146 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:146 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:146 Constant: -0:146 1 (const int) -0:146 Constant: -0:146 0 (const int) -0:146 Sequence -0:146 Constant: -0:146 0 (const int) -0:146 Constant: -0:146 1 (const int) -0:146 'ballot' ( temp highp 4-component vector of uint) -0:147 move second child to first child ( temp highp 3-component vector of float) -0:147 vector swizzle ( temp highp 3-component vector of float) -0:147 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:147 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:147 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:147 Constant: -0:147 3 (const int) -0:147 Constant: -0:147 0 (const int) -0:147 Sequence -0:147 Constant: -0:147 0 (const int) -0:147 Constant: -0:147 1 (const int) -0:147 Constant: -0:147 2 (const int) -0:147 subgroupPartitionedInclusiveAddNV ( global highp 3-component vector of float) -0:147 vector swizzle ( temp highp 3-component vector of float) -0:147 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:147 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:147 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:147 Constant: -0:147 2 (const int) -0:147 Constant: -0:147 0 (const int) -0:147 Sequence -0:147 Constant: -0:147 0 (const int) -0:147 Constant: -0:147 1 (const int) -0:147 Constant: -0:147 2 (const int) -0:147 'ballot' ( temp highp 4-component vector of uint) -0:148 move second child to first child ( temp highp 4-component vector of float) -0:148 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:148 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:148 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:148 Constant: -0:148 3 (const int) -0:148 Constant: -0:148 0 (const int) -0:148 subgroupPartitionedInclusiveAddNV ( global highp 4-component vector of float) -0:148 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:148 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:148 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:148 Constant: -0:148 3 (const int) -0:148 Constant: -0:148 0 (const int) -0:148 'ballot' ( temp highp 4-component vector of uint) -0:150 move second child to first child ( temp highp int) -0:150 direct index ( temp highp int) -0:150 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:150 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:150 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:150 Constant: -0:150 3 (const int) -0:150 Constant: -0:150 1 (const int) -0:150 Constant: -0:150 0 (const int) -0:150 subgroupPartitionedInclusiveAddNV ( global highp int) -0:150 direct index ( temp highp int) -0:150 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:150 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:150 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:150 Constant: -0:150 0 (const int) -0:150 Constant: -0:150 1 (const int) -0:150 Constant: -0:150 0 (const int) -0:150 'ballot' ( temp highp 4-component vector of uint) -0:151 move second child to first child ( temp highp 2-component vector of int) -0:151 vector swizzle ( temp highp 2-component vector of int) -0:151 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:151 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:151 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:151 Constant: -0:151 3 (const int) -0:151 Constant: -0:151 1 (const int) -0:151 Sequence -0:151 Constant: -0:151 0 (const int) -0:151 Constant: -0:151 1 (const int) -0:151 subgroupPartitionedInclusiveAddNV ( global highp 2-component vector of int) -0:151 vector swizzle ( temp highp 2-component vector of int) -0:151 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:151 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:151 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:151 Constant: -0:151 1 (const int) -0:151 Constant: -0:151 1 (const int) -0:151 Sequence -0:151 Constant: -0:151 0 (const int) -0:151 Constant: -0:151 1 (const int) -0:151 'ballot' ( temp highp 4-component vector of uint) -0:152 move second child to first child ( temp highp 3-component vector of int) -0:152 vector swizzle ( temp highp 3-component vector of int) -0:152 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:152 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:152 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:152 Constant: -0:152 3 (const int) -0:152 Constant: -0:152 1 (const int) -0:152 Sequence -0:152 Constant: -0:152 0 (const int) -0:152 Constant: -0:152 1 (const int) -0:152 Constant: -0:152 2 (const int) -0:152 subgroupPartitionedInclusiveAddNV ( global highp 3-component vector of int) -0:152 vector swizzle ( temp highp 3-component vector of int) -0:152 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:152 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:152 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:152 Constant: -0:152 2 (const int) -0:152 Constant: -0:152 1 (const int) -0:152 Sequence -0:152 Constant: -0:152 0 (const int) -0:152 Constant: -0:152 1 (const int) -0:152 Constant: -0:152 2 (const int) -0:152 'ballot' ( temp highp 4-component vector of uint) -0:153 move second child to first child ( temp highp 4-component vector of int) -0:153 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:153 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:153 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:153 Constant: -0:153 3 (const int) -0:153 Constant: -0:153 1 (const int) -0:153 subgroupPartitionedInclusiveAddNV ( global highp 4-component vector of int) -0:153 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:153 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:153 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:153 Constant: -0:153 3 (const int) -0:153 Constant: -0:153 1 (const int) -0:153 'ballot' ( temp highp 4-component vector of uint) -0:155 move second child to first child ( temp highp uint) -0:155 direct index ( temp highp uint) -0:155 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:155 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:155 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:155 Constant: -0:155 3 (const int) -0:155 Constant: -0:155 2 (const int) -0:155 Constant: -0:155 0 (const int) -0:155 subgroupPartitionedInclusiveAddNV ( global highp uint) -0:155 direct index ( temp highp uint) -0:155 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:155 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:155 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:155 Constant: -0:155 0 (const int) -0:155 Constant: -0:155 2 (const int) -0:155 Constant: -0:155 0 (const int) -0:155 'ballot' ( temp highp 4-component vector of uint) -0:156 move second child to first child ( temp highp 2-component vector of uint) -0:156 vector swizzle ( temp highp 2-component vector of uint) -0:156 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:156 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:156 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:156 Constant: -0:156 3 (const int) -0:156 Constant: -0:156 2 (const int) -0:156 Sequence -0:156 Constant: -0:156 0 (const int) -0:156 Constant: -0:156 1 (const int) -0:156 subgroupPartitionedInclusiveAddNV ( global highp 2-component vector of uint) -0:156 vector swizzle ( temp highp 2-component vector of uint) -0:156 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:156 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:156 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:156 Constant: -0:156 1 (const int) -0:156 Constant: -0:156 2 (const int) -0:156 Sequence -0:156 Constant: -0:156 0 (const int) -0:156 Constant: -0:156 1 (const int) -0:156 'ballot' ( temp highp 4-component vector of uint) -0:157 move second child to first child ( temp highp 3-component vector of uint) -0:157 vector swizzle ( temp highp 3-component vector of uint) -0:157 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:157 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:157 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:157 Constant: -0:157 3 (const int) -0:157 Constant: -0:157 2 (const int) -0:157 Sequence -0:157 Constant: -0:157 0 (const int) -0:157 Constant: -0:157 1 (const int) -0:157 Constant: -0:157 2 (const int) -0:157 subgroupPartitionedInclusiveAddNV ( global highp 3-component vector of uint) -0:157 vector swizzle ( temp highp 3-component vector of uint) -0:157 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:157 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:157 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:157 Constant: -0:157 2 (const int) -0:157 Constant: -0:157 2 (const int) -0:157 Sequence -0:157 Constant: -0:157 0 (const int) -0:157 Constant: -0:157 1 (const int) -0:157 Constant: -0:157 2 (const int) -0:157 'ballot' ( temp highp 4-component vector of uint) -0:158 move second child to first child ( temp highp 4-component vector of uint) -0:158 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:158 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:158 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:158 Constant: -0:158 3 (const int) -0:158 Constant: -0:158 2 (const int) -0:158 subgroupPartitionedInclusiveAddNV ( global highp 4-component vector of uint) -0:158 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:158 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:158 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:158 Constant: -0:158 3 (const int) -0:158 Constant: -0:158 2 (const int) -0:158 'ballot' ( temp highp 4-component vector of uint) -0:160 move second child to first child ( temp highp float) -0:160 direct index ( temp highp float) -0:160 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:160 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:160 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:160 Constant: -0:160 3 (const int) -0:160 Constant: -0:160 0 (const int) -0:160 Constant: -0:160 0 (const int) -0:160 subgroupPartitionedInclusiveMulNV ( global highp float) -0:160 direct index ( temp highp float) -0:160 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:160 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:160 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:160 Constant: -0:160 0 (const int) -0:160 Constant: -0:160 0 (const int) -0:160 Constant: -0:160 0 (const int) -0:160 'ballot' ( temp highp 4-component vector of uint) -0:161 move second child to first child ( temp highp 2-component vector of float) -0:161 vector swizzle ( temp highp 2-component vector of float) -0:161 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:161 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:161 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:161 Constant: -0:161 3 (const int) -0:161 Constant: -0:161 0 (const int) -0:161 Sequence -0:161 Constant: -0:161 0 (const int) -0:161 Constant: -0:161 1 (const int) -0:161 subgroupPartitionedInclusiveMulNV ( global highp 2-component vector of float) -0:161 vector swizzle ( temp highp 2-component vector of float) -0:161 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:161 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:161 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:161 Constant: -0:161 1 (const int) -0:161 Constant: -0:161 0 (const int) -0:161 Sequence -0:161 Constant: -0:161 0 (const int) -0:161 Constant: -0:161 1 (const int) -0:161 'ballot' ( temp highp 4-component vector of uint) -0:162 move second child to first child ( temp highp 3-component vector of float) -0:162 vector swizzle ( temp highp 3-component vector of float) -0:162 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:162 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:162 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:162 Constant: -0:162 3 (const int) -0:162 Constant: -0:162 0 (const int) -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 subgroupPartitionedInclusiveMulNV ( global highp 3-component vector of float) -0:162 vector swizzle ( temp highp 3-component vector of float) -0:162 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:162 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:162 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:162 Constant: -0:162 2 (const int) -0:162 Constant: -0:162 0 (const int) -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 'ballot' ( temp highp 4-component vector of uint) -0:163 move second child to first child ( temp highp 4-component vector of float) -0:163 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:163 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:163 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:163 Constant: -0:163 3 (const int) -0:163 Constant: -0:163 0 (const int) -0:163 subgroupPartitionedInclusiveMulNV ( global highp 4-component vector of float) -0:163 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:163 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:163 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:163 Constant: -0:163 3 (const int) -0:163 Constant: -0:163 0 (const int) -0:163 'ballot' ( temp highp 4-component vector of uint) -0:165 move second child to first child ( temp highp int) -0:165 direct index ( temp highp int) -0:165 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:165 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:165 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:165 Constant: -0:165 3 (const int) -0:165 Constant: -0:165 1 (const int) -0:165 Constant: -0:165 0 (const int) -0:165 subgroupPartitionedInclusiveMulNV ( global highp int) -0:165 direct index ( temp highp int) -0:165 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:165 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:165 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:165 Constant: -0:165 0 (const int) -0:165 Constant: -0:165 1 (const int) -0:165 Constant: -0:165 0 (const int) -0:165 'ballot' ( temp highp 4-component vector of uint) -0:166 move second child to first child ( temp highp 2-component vector of int) -0:166 vector swizzle ( temp highp 2-component vector of int) -0:166 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:166 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:166 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:166 Constant: -0:166 3 (const int) -0:166 Constant: -0:166 1 (const int) -0:166 Sequence -0:166 Constant: -0:166 0 (const int) -0:166 Constant: -0:166 1 (const int) -0:166 subgroupPartitionedInclusiveMulNV ( global highp 2-component vector of int) -0:166 vector swizzle ( temp highp 2-component vector of int) -0:166 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:166 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:166 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:166 Constant: -0:166 1 (const int) -0:166 Constant: -0:166 1 (const int) -0:166 Sequence -0:166 Constant: -0:166 0 (const int) -0:166 Constant: -0:166 1 (const int) -0:166 'ballot' ( temp highp 4-component vector of uint) -0:167 move second child to first child ( temp highp 3-component vector of int) -0:167 vector swizzle ( temp highp 3-component vector of int) -0:167 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:167 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:167 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:167 Constant: -0:167 3 (const int) -0:167 Constant: -0:167 1 (const int) -0:167 Sequence -0:167 Constant: -0:167 0 (const int) -0:167 Constant: -0:167 1 (const int) -0:167 Constant: -0:167 2 (const int) -0:167 subgroupPartitionedInclusiveMulNV ( global highp 3-component vector of int) -0:167 vector swizzle ( temp highp 3-component vector of int) -0:167 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:167 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:167 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:167 Constant: -0:167 2 (const int) -0:167 Constant: -0:167 1 (const int) -0:167 Sequence -0:167 Constant: -0:167 0 (const int) -0:167 Constant: -0:167 1 (const int) -0:167 Constant: -0:167 2 (const int) -0:167 'ballot' ( temp highp 4-component vector of uint) -0:168 move second child to first child ( temp highp 4-component vector of int) -0:168 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:168 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:168 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:168 Constant: -0:168 3 (const int) -0:168 Constant: -0:168 1 (const int) -0:168 subgroupPartitionedInclusiveMulNV ( global highp 4-component vector of int) -0:168 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:168 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:168 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:168 Constant: -0:168 3 (const int) -0:168 Constant: -0:168 1 (const int) -0:168 'ballot' ( temp highp 4-component vector of uint) -0:170 move second child to first child ( temp highp uint) -0:170 direct index ( temp highp uint) -0:170 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:170 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:170 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:170 Constant: -0:170 0 (const int) -0:170 Constant: -0:170 2 (const int) -0:170 Constant: -0:170 0 (const int) -0:170 subgroupPartitionedInclusiveMulNV ( global highp uint) -0:170 direct index ( temp highp uint) -0:170 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:170 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:170 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:170 Constant: -0:170 0 (const int) -0:170 Constant: -0:170 2 (const int) -0:170 Constant: -0:170 0 (const int) -0:170 'ballot' ( temp highp 4-component vector of uint) -0:171 move second child to first child ( temp highp 2-component vector of uint) -0:171 vector swizzle ( temp highp 2-component vector of uint) -0:171 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:171 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:171 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:171 Constant: -0:171 0 (const int) -0:171 Constant: -0:171 2 (const int) -0:171 Sequence -0:171 Constant: -0:171 0 (const int) -0:171 Constant: -0:171 1 (const int) -0:171 subgroupPartitionedInclusiveMulNV ( global highp 2-component vector of uint) -0:171 vector swizzle ( temp highp 2-component vector of uint) -0:171 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:171 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:171 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:171 Constant: -0:171 1 (const int) -0:171 Constant: -0:171 2 (const int) -0:171 Sequence -0:171 Constant: -0:171 0 (const int) -0:171 Constant: -0:171 1 (const int) -0:171 'ballot' ( temp highp 4-component vector of uint) -0:172 move second child to first child ( temp highp 3-component vector of uint) -0:172 vector swizzle ( temp highp 3-component vector of uint) -0:172 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:172 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:172 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:172 Constant: -0:172 0 (const int) -0:172 Constant: -0:172 2 (const int) -0:172 Sequence -0:172 Constant: -0:172 0 (const int) -0:172 Constant: -0:172 1 (const int) -0:172 Constant: -0:172 2 (const int) -0:172 subgroupPartitionedInclusiveMulNV ( global highp 3-component vector of uint) -0:172 vector swizzle ( temp highp 3-component vector of uint) -0:172 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:172 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:172 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:172 Constant: -0:172 2 (const int) -0:172 Constant: -0:172 2 (const int) -0:172 Sequence -0:172 Constant: -0:172 0 (const int) -0:172 Constant: -0:172 1 (const int) -0:172 Constant: -0:172 2 (const int) -0:172 'ballot' ( temp highp 4-component vector of uint) -0:173 move second child to first child ( temp highp 4-component vector of uint) -0:173 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:173 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:173 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:173 Constant: -0:173 0 (const int) -0:173 Constant: -0:173 2 (const int) -0:173 subgroupPartitionedInclusiveMulNV ( global highp 4-component vector of uint) -0:173 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:173 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:173 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:173 Constant: -0:173 3 (const int) -0:173 Constant: -0:173 2 (const int) -0:173 'ballot' ( temp highp 4-component vector of uint) -0:175 move second child to first child ( temp highp float) -0:175 direct index ( temp highp float) -0:175 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:175 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:175 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:175 Constant: -0:175 0 (const int) -0:175 Constant: -0:175 0 (const int) -0:175 Constant: -0:175 0 (const int) -0:175 subgroupPartitionedInclusiveMinNV ( global highp float) -0:175 direct index ( temp highp float) -0:175 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:175 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:175 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:175 Constant: -0:175 0 (const int) -0:175 Constant: -0:175 0 (const int) -0:175 Constant: -0:175 0 (const int) -0:175 'ballot' ( temp highp 4-component vector of uint) -0:176 move second child to first child ( temp highp 2-component vector of float) -0:176 vector swizzle ( temp highp 2-component vector of float) -0:176 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:176 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:176 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:176 Constant: -0:176 0 (const int) -0:176 Constant: -0:176 0 (const int) -0:176 Sequence -0:176 Constant: -0:176 0 (const int) -0:176 Constant: -0:176 1 (const int) -0:176 subgroupPartitionedInclusiveMinNV ( global highp 2-component vector of float) -0:176 vector swizzle ( temp highp 2-component vector of float) -0:176 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:176 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:176 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:176 Constant: -0:176 1 (const int) -0:176 Constant: -0:176 0 (const int) -0:176 Sequence -0:176 Constant: -0:176 0 (const int) -0:176 Constant: -0:176 1 (const int) -0:176 'ballot' ( temp highp 4-component vector of uint) -0:177 move second child to first child ( temp highp 3-component vector of float) -0:177 vector swizzle ( temp highp 3-component vector of float) -0:177 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:177 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:177 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:177 Constant: -0:177 0 (const int) -0:177 Constant: -0:177 0 (const int) -0:177 Sequence -0:177 Constant: -0:177 0 (const int) -0:177 Constant: -0:177 1 (const int) -0:177 Constant: -0:177 2 (const int) -0:177 subgroupPartitionedInclusiveMinNV ( global highp 3-component vector of float) -0:177 vector swizzle ( temp highp 3-component vector of float) -0:177 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:177 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:177 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:177 Constant: -0:177 2 (const int) -0:177 Constant: -0:177 0 (const int) -0:177 Sequence -0:177 Constant: -0:177 0 (const int) -0:177 Constant: -0:177 1 (const int) -0:177 Constant: -0:177 2 (const int) -0:177 'ballot' ( temp highp 4-component vector of uint) -0:178 move second child to first child ( temp highp 4-component vector of float) -0:178 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:178 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:178 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:178 Constant: -0:178 0 (const int) -0:178 Constant: -0:178 0 (const int) -0:178 subgroupPartitionedInclusiveMinNV ( global highp 4-component vector of float) -0:178 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:178 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:178 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:178 Constant: -0:178 3 (const int) -0:178 Constant: -0:178 0 (const int) -0:178 'ballot' ( temp highp 4-component vector of uint) -0:180 move second child to first child ( temp highp int) -0:180 direct index ( temp highp int) -0:180 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:180 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:180 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:180 Constant: -0:180 0 (const int) -0:180 Constant: -0:180 1 (const int) -0:180 Constant: -0:180 0 (const int) -0:180 subgroupPartitionedInclusiveMinNV ( global highp int) -0:180 direct index ( temp highp int) -0:180 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:180 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:180 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:180 Constant: -0:180 0 (const int) -0:180 Constant: -0:180 1 (const int) -0:180 Constant: -0:180 0 (const int) -0:180 'ballot' ( temp highp 4-component vector of uint) -0:181 move second child to first child ( temp highp 2-component vector of int) -0:181 vector swizzle ( temp highp 2-component vector of int) -0:181 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:181 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:181 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:181 Constant: -0:181 0 (const int) -0:181 Constant: -0:181 1 (const int) -0:181 Sequence -0:181 Constant: -0:181 0 (const int) -0:181 Constant: -0:181 1 (const int) -0:181 subgroupPartitionedInclusiveMinNV ( global highp 2-component vector of int) -0:181 vector swizzle ( temp highp 2-component vector of int) -0:181 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:181 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:181 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:181 Constant: -0:181 1 (const int) -0:181 Constant: -0:181 1 (const int) -0:181 Sequence -0:181 Constant: -0:181 0 (const int) -0:181 Constant: -0:181 1 (const int) -0:181 'ballot' ( temp highp 4-component vector of uint) -0:182 move second child to first child ( temp highp 3-component vector of int) -0:182 vector swizzle ( temp highp 3-component vector of int) -0:182 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:182 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:182 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:182 Constant: -0:182 0 (const int) -0:182 Constant: -0:182 1 (const int) -0:182 Sequence -0:182 Constant: -0:182 0 (const int) -0:182 Constant: -0:182 1 (const int) -0:182 Constant: -0:182 2 (const int) -0:182 subgroupPartitionedInclusiveMinNV ( global highp 3-component vector of int) -0:182 vector swizzle ( temp highp 3-component vector of int) -0:182 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:182 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:182 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:182 Constant: -0:182 2 (const int) -0:182 Constant: -0:182 1 (const int) -0:182 Sequence -0:182 Constant: -0:182 0 (const int) -0:182 Constant: -0:182 1 (const int) -0:182 Constant: -0:182 2 (const int) -0:182 'ballot' ( temp highp 4-component vector of uint) -0:183 move second child to first child ( temp highp 4-component vector of int) -0:183 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:183 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:183 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:183 Constant: -0:183 0 (const int) -0:183 Constant: -0:183 1 (const int) -0:183 subgroupPartitionedInclusiveMinNV ( global highp 4-component vector of int) -0:183 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:183 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:183 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:183 Constant: -0:183 3 (const int) -0:183 Constant: -0:183 1 (const int) -0:183 'ballot' ( temp highp 4-component vector of uint) -0:185 move second child to first child ( temp highp uint) -0:185 direct index ( temp highp uint) -0:185 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:185 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:185 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:185 Constant: -0:185 0 (const int) -0:185 Constant: -0:185 2 (const int) -0:185 Constant: -0:185 0 (const int) -0:185 subgroupPartitionedInclusiveMinNV ( global highp uint) -0:185 direct index ( temp highp uint) -0:185 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:185 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:185 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:185 Constant: -0:185 0 (const int) -0:185 Constant: -0:185 2 (const int) -0:185 Constant: -0:185 0 (const int) -0:185 'ballot' ( temp highp 4-component vector of uint) -0:186 move second child to first child ( temp highp 2-component vector of uint) -0:186 vector swizzle ( temp highp 2-component vector of uint) -0:186 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:186 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:186 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:186 Constant: -0:186 0 (const int) -0:186 Constant: -0:186 2 (const int) -0:186 Sequence -0:186 Constant: -0:186 0 (const int) -0:186 Constant: -0:186 1 (const int) -0:186 subgroupPartitionedInclusiveMinNV ( global highp 2-component vector of uint) -0:186 vector swizzle ( temp highp 2-component vector of uint) -0:186 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:186 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:186 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:186 Constant: -0:186 1 (const int) -0:186 Constant: -0:186 2 (const int) -0:186 Sequence -0:186 Constant: -0:186 0 (const int) -0:186 Constant: -0:186 1 (const int) -0:186 'ballot' ( temp highp 4-component vector of uint) -0:187 move second child to first child ( temp highp 3-component vector of uint) -0:187 vector swizzle ( temp highp 3-component vector of uint) -0:187 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:187 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:187 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:187 Constant: -0:187 0 (const int) -0:187 Constant: -0:187 2 (const int) -0:187 Sequence -0:187 Constant: -0:187 0 (const int) -0:187 Constant: -0:187 1 (const int) -0:187 Constant: -0:187 2 (const int) -0:187 subgroupPartitionedInclusiveMinNV ( global highp 3-component vector of uint) -0:187 vector swizzle ( temp highp 3-component vector of uint) -0:187 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:187 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:187 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:187 Constant: -0:187 2 (const int) -0:187 Constant: -0:187 2 (const int) -0:187 Sequence -0:187 Constant: -0:187 0 (const int) -0:187 Constant: -0:187 1 (const int) -0:187 Constant: -0:187 2 (const int) -0:187 'ballot' ( temp highp 4-component vector of uint) -0:188 move second child to first child ( temp highp 4-component vector of uint) -0:188 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:188 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:188 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:188 Constant: -0:188 0 (const int) -0:188 Constant: -0:188 2 (const int) -0:188 subgroupPartitionedInclusiveMinNV ( global highp 4-component vector of uint) -0:188 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:188 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:188 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:188 Constant: -0:188 3 (const int) -0:188 Constant: -0:188 2 (const int) -0:188 'ballot' ( temp highp 4-component vector of uint) -0:190 move second child to first child ( temp highp float) -0:190 direct index ( temp highp float) -0:190 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:190 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:190 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:190 Constant: -0:190 1 (const int) -0:190 Constant: -0:190 0 (const int) -0:190 Constant: -0:190 0 (const int) -0:190 subgroupPartitionedInclusiveMaxNV ( global highp float) -0:190 direct index ( temp highp float) -0:190 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:190 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:190 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:190 Constant: -0:190 0 (const int) -0:190 Constant: -0:190 0 (const int) -0:190 Constant: -0:190 0 (const int) -0:190 'ballot' ( temp highp 4-component vector of uint) -0:191 move second child to first child ( temp highp 2-component vector of float) -0:191 vector swizzle ( temp highp 2-component vector of float) -0:191 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:191 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:191 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:191 Constant: -0:191 1 (const int) -0:191 Constant: -0:191 0 (const int) -0:191 Sequence -0:191 Constant: -0:191 0 (const int) -0:191 Constant: -0:191 1 (const int) -0:191 subgroupPartitionedInclusiveMaxNV ( global highp 2-component vector of float) -0:191 vector swizzle ( temp highp 2-component vector of float) -0:191 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:191 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:191 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:191 Constant: -0:191 1 (const int) -0:191 Constant: -0:191 0 (const int) -0:191 Sequence -0:191 Constant: -0:191 0 (const int) -0:191 Constant: -0:191 1 (const int) -0:191 'ballot' ( temp highp 4-component vector of uint) -0:192 move second child to first child ( temp highp 3-component vector of float) -0:192 vector swizzle ( temp highp 3-component vector of float) -0:192 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:192 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:192 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:192 Constant: -0:192 1 (const int) -0:192 Constant: -0:192 0 (const int) -0:192 Sequence -0:192 Constant: -0:192 0 (const int) -0:192 Constant: -0:192 1 (const int) -0:192 Constant: -0:192 2 (const int) -0:192 subgroupPartitionedInclusiveMaxNV ( global highp 3-component vector of float) -0:192 vector swizzle ( temp highp 3-component vector of float) -0:192 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:192 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:192 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:192 Constant: -0:192 2 (const int) -0:192 Constant: -0:192 0 (const int) -0:192 Sequence -0:192 Constant: -0:192 0 (const int) -0:192 Constant: -0:192 1 (const int) -0:192 Constant: -0:192 2 (const int) -0:192 'ballot' ( temp highp 4-component vector of uint) -0:193 move second child to first child ( temp highp 4-component vector of float) -0:193 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:193 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:193 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:193 Constant: -0:193 1 (const int) -0:193 Constant: -0:193 0 (const int) -0:193 subgroupPartitionedInclusiveMaxNV ( global highp 4-component vector of float) -0:193 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:193 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:193 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:193 Constant: -0:193 3 (const int) -0:193 Constant: -0:193 0 (const int) -0:193 'ballot' ( temp highp 4-component vector of uint) -0:195 move second child to first child ( temp highp int) -0:195 direct index ( temp highp int) -0:195 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:195 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:195 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:195 Constant: -0:195 1 (const int) -0:195 Constant: -0:195 1 (const int) -0:195 Constant: -0:195 0 (const int) -0:195 subgroupPartitionedInclusiveMaxNV ( global highp int) -0:195 direct index ( temp highp int) -0:195 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:195 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:195 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:195 Constant: -0:195 0 (const int) -0:195 Constant: -0:195 1 (const int) -0:195 Constant: -0:195 0 (const int) -0:195 'ballot' ( temp highp 4-component vector of uint) -0:196 move second child to first child ( temp highp 2-component vector of int) -0:196 vector swizzle ( temp highp 2-component vector of int) -0:196 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:196 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:196 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:196 Constant: -0:196 1 (const int) -0:196 Constant: -0:196 1 (const int) -0:196 Sequence -0:196 Constant: -0:196 0 (const int) -0:196 Constant: -0:196 1 (const int) -0:196 subgroupPartitionedInclusiveMaxNV ( global highp 2-component vector of int) -0:196 vector swizzle ( temp highp 2-component vector of int) -0:196 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:196 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:196 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:196 Constant: -0:196 1 (const int) -0:196 Constant: -0:196 1 (const int) -0:196 Sequence -0:196 Constant: -0:196 0 (const int) -0:196 Constant: -0:196 1 (const int) -0:196 'ballot' ( temp highp 4-component vector of uint) -0:197 move second child to first child ( temp highp 3-component vector of int) -0:197 vector swizzle ( temp highp 3-component vector of int) -0:197 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:197 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:197 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:197 Constant: -0:197 1 (const int) -0:197 Constant: -0:197 1 (const int) -0:197 Sequence -0:197 Constant: -0:197 0 (const int) -0:197 Constant: -0:197 1 (const int) -0:197 Constant: -0:197 2 (const int) -0:197 subgroupPartitionedInclusiveMaxNV ( global highp 3-component vector of int) -0:197 vector swizzle ( temp highp 3-component vector of int) -0:197 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:197 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:197 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:197 Constant: -0:197 2 (const int) -0:197 Constant: -0:197 1 (const int) -0:197 Sequence -0:197 Constant: -0:197 0 (const int) -0:197 Constant: -0:197 1 (const int) -0:197 Constant: -0:197 2 (const int) -0:197 'ballot' ( temp highp 4-component vector of uint) -0:198 move second child to first child ( temp highp 4-component vector of int) -0:198 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:198 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:198 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:198 Constant: -0:198 1 (const int) -0:198 Constant: -0:198 1 (const int) -0:198 subgroupPartitionedInclusiveMaxNV ( global highp 4-component vector of int) -0:198 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:198 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:198 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:198 Constant: -0:198 3 (const int) -0:198 Constant: -0:198 1 (const int) -0:198 'ballot' ( temp highp 4-component vector of uint) -0:200 move second child to first child ( temp highp uint) -0:200 direct index ( temp highp uint) -0:200 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:200 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:200 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:200 Constant: -0:200 1 (const int) -0:200 Constant: -0:200 2 (const int) -0:200 Constant: -0:200 0 (const int) -0:200 subgroupPartitionedInclusiveMaxNV ( global highp uint) -0:200 direct index ( temp highp uint) -0:200 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:200 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:200 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:200 Constant: -0:200 0 (const int) -0:200 Constant: -0:200 2 (const int) -0:200 Constant: -0:200 0 (const int) -0:200 'ballot' ( temp highp 4-component vector of uint) -0:201 move second child to first child ( temp highp 2-component vector of uint) -0:201 vector swizzle ( temp highp 2-component vector of uint) -0:201 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:201 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:201 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:201 Constant: -0:201 1 (const int) -0:201 Constant: -0:201 2 (const int) -0:201 Sequence -0:201 Constant: -0:201 0 (const int) -0:201 Constant: -0:201 1 (const int) -0:201 subgroupPartitionedInclusiveMaxNV ( global highp 2-component vector of uint) -0:201 vector swizzle ( temp highp 2-component vector of uint) -0:201 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:201 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:201 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:201 Constant: -0:201 1 (const int) -0:201 Constant: -0:201 2 (const int) -0:201 Sequence -0:201 Constant: -0:201 0 (const int) -0:201 Constant: -0:201 1 (const int) -0:201 'ballot' ( temp highp 4-component vector of uint) -0:202 move second child to first child ( temp highp 3-component vector of uint) -0:202 vector swizzle ( temp highp 3-component vector of uint) -0:202 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:202 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:202 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:202 Constant: -0:202 1 (const int) -0:202 Constant: -0:202 2 (const int) -0:202 Sequence -0:202 Constant: -0:202 0 (const int) -0:202 Constant: -0:202 1 (const int) -0:202 Constant: -0:202 2 (const int) -0:202 subgroupPartitionedInclusiveMaxNV ( global highp 3-component vector of uint) -0:202 vector swizzle ( temp highp 3-component vector of uint) -0:202 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:202 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:202 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:202 Constant: -0:202 2 (const int) -0:202 Constant: -0:202 2 (const int) -0:202 Sequence -0:202 Constant: -0:202 0 (const int) -0:202 Constant: -0:202 1 (const int) -0:202 Constant: -0:202 2 (const int) -0:202 'ballot' ( temp highp 4-component vector of uint) -0:203 move second child to first child ( temp highp 4-component vector of uint) -0:203 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:203 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:203 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:203 Constant: -0:203 1 (const int) -0:203 Constant: -0:203 2 (const int) -0:203 subgroupPartitionedInclusiveMaxNV ( global highp 4-component vector of uint) -0:203 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:203 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:203 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:203 Constant: -0:203 3 (const int) -0:203 Constant: -0:203 2 (const int) -0:203 'ballot' ( temp highp 4-component vector of uint) -0:205 move second child to first child ( temp highp int) -0:205 direct index ( temp highp int) -0:205 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:205 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:205 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:205 Constant: -0:205 1 (const int) -0:205 Constant: -0:205 1 (const int) -0:205 Constant: -0:205 0 (const int) -0:205 subgroupPartitionedInclusiveAndNV ( global highp int) -0:205 direct index ( temp highp int) -0:205 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:205 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:205 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:205 Constant: -0:205 0 (const int) -0:205 Constant: -0:205 1 (const int) -0:205 Constant: -0:205 0 (const int) -0:205 'ballot' ( temp highp 4-component vector of uint) -0:206 move second child to first child ( temp highp 2-component vector of int) -0:206 vector swizzle ( temp highp 2-component vector of int) -0:206 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:206 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:206 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:206 Constant: -0:206 1 (const int) -0:206 Constant: -0:206 1 (const int) -0:206 Sequence -0:206 Constant: -0:206 0 (const int) -0:206 Constant: -0:206 1 (const int) -0:206 subgroupPartitionedInclusiveAndNV ( global highp 2-component vector of int) -0:206 vector swizzle ( temp highp 2-component vector of int) -0:206 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:206 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:206 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:206 Constant: -0:206 1 (const int) -0:206 Constant: -0:206 1 (const int) -0:206 Sequence -0:206 Constant: -0:206 0 (const int) -0:206 Constant: -0:206 1 (const int) -0:206 'ballot' ( temp highp 4-component vector of uint) -0:207 move second child to first child ( temp highp 3-component vector of int) -0:207 vector swizzle ( temp highp 3-component vector of int) -0:207 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:207 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:207 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:207 Constant: -0:207 1 (const int) -0:207 Constant: -0:207 1 (const int) -0:207 Sequence -0:207 Constant: -0:207 0 (const int) -0:207 Constant: -0:207 1 (const int) -0:207 Constant: -0:207 2 (const int) -0:207 subgroupPartitionedInclusiveAndNV ( global highp 3-component vector of int) -0:207 vector swizzle ( temp highp 3-component vector of int) -0:207 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:207 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:207 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:207 Constant: -0:207 2 (const int) -0:207 Constant: -0:207 1 (const int) -0:207 Sequence -0:207 Constant: -0:207 0 (const int) -0:207 Constant: -0:207 1 (const int) -0:207 Constant: -0:207 2 (const int) -0:207 'ballot' ( temp highp 4-component vector of uint) -0:208 move second child to first child ( temp highp 4-component vector of int) -0:208 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:208 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:208 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:208 Constant: -0:208 1 (const int) -0:208 Constant: -0:208 1 (const int) -0:208 subgroupPartitionedInclusiveAndNV ( global highp 4-component vector of int) -0:208 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:208 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:208 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:208 Constant: -0:208 3 (const int) -0:208 Constant: -0:208 1 (const int) -0:208 'ballot' ( temp highp 4-component vector of uint) -0:210 move second child to first child ( temp highp uint) -0:210 direct index ( temp highp uint) -0:210 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:210 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:210 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:210 Constant: -0:210 2 (const int) -0:210 Constant: -0:210 2 (const int) -0:210 Constant: -0:210 0 (const int) -0:210 subgroupPartitionedInclusiveAndNV ( global highp uint) -0:210 direct index ( temp highp uint) -0:210 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:210 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:210 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:210 Constant: -0:210 0 (const int) -0:210 Constant: -0:210 2 (const int) -0:210 Constant: -0:210 0 (const int) -0:210 'ballot' ( temp highp 4-component vector of uint) -0:211 move second child to first child ( temp highp 2-component vector of uint) -0:211 vector swizzle ( temp highp 2-component vector of uint) -0:211 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:211 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:211 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:211 Constant: -0:211 2 (const int) -0:211 Constant: -0:211 2 (const int) -0:211 Sequence -0:211 Constant: -0:211 0 (const int) -0:211 Constant: -0:211 1 (const int) -0:211 subgroupPartitionedInclusiveAndNV ( global highp 2-component vector of uint) -0:211 vector swizzle ( temp highp 2-component vector of uint) -0:211 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:211 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:211 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:211 Constant: -0:211 1 (const int) -0:211 Constant: -0:211 2 (const int) -0:211 Sequence -0:211 Constant: -0:211 0 (const int) -0:211 Constant: -0:211 1 (const int) -0:211 'ballot' ( temp highp 4-component vector of uint) -0:212 move second child to first child ( temp highp 3-component vector of uint) -0:212 vector swizzle ( temp highp 3-component vector of uint) -0:212 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:212 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:212 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:212 Constant: -0:212 2 (const int) -0:212 Constant: -0:212 2 (const int) -0:212 Sequence -0:212 Constant: -0:212 0 (const int) -0:212 Constant: -0:212 1 (const int) -0:212 Constant: -0:212 2 (const int) -0:212 subgroupPartitionedInclusiveAndNV ( global highp 3-component vector of uint) -0:212 vector swizzle ( temp highp 3-component vector of uint) -0:212 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:212 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:212 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:212 Constant: -0:212 2 (const int) -0:212 Constant: -0:212 2 (const int) -0:212 Sequence -0:212 Constant: -0:212 0 (const int) -0:212 Constant: -0:212 1 (const int) -0:212 Constant: -0:212 2 (const int) -0:212 'ballot' ( temp highp 4-component vector of uint) -0:213 move second child to first child ( temp highp 4-component vector of uint) -0:213 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:213 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:213 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:213 Constant: -0:213 2 (const int) -0:213 Constant: -0:213 2 (const int) -0:213 subgroupPartitionedInclusiveAndNV ( global highp 4-component vector of uint) -0:213 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:213 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:213 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:213 Constant: -0:213 3 (const int) -0:213 Constant: -0:213 2 (const int) -0:213 'ballot' ( temp highp 4-component vector of uint) -0:215 move second child to first child ( temp highp int) -0:215 direct index ( temp highp int) -0:215 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:215 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:215 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:215 Constant: -0:215 2 (const int) -0:215 Constant: -0:215 1 (const int) -0:215 Constant: -0:215 0 (const int) -0:215 Convert bool to int ( temp highp int) -0:215 subgroupPartitionedInclusiveAndNV ( global bool, operation at highp) -0:215 Compare Less Than ( temp bool) -0:215 direct index ( temp highp int) -0:215 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:215 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:215 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:215 Constant: -0:215 0 (const int) -0:215 Constant: -0:215 1 (const int) -0:215 Constant: -0:215 0 (const int) -0:215 Constant: -0:215 0 (const int) -0:215 'ballot' ( temp highp 4-component vector of uint) -0:216 move second child to first child ( temp highp 2-component vector of int) -0:216 vector swizzle ( temp highp 2-component vector of int) -0:216 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:216 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:216 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:216 Constant: -0:216 2 (const int) -0:216 Constant: -0:216 1 (const int) -0:216 Sequence -0:216 Constant: -0:216 0 (const int) -0:216 Constant: -0:216 1 (const int) -0:216 Convert bool to int ( temp highp 2-component vector of int) -0:216 subgroupPartitionedInclusiveAndNV ( global 2-component vector of bool, operation at highp) -0:216 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:216 vector swizzle ( temp highp 2-component vector of int) -0:216 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:216 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:216 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:216 Constant: -0:216 1 (const int) -0:216 Constant: -0:216 1 (const int) -0:216 Sequence -0:216 Constant: -0:216 0 (const int) -0:216 Constant: -0:216 1 (const int) -0:216 Constant: -0:216 0 (const int) -0:216 0 (const int) -0:216 'ballot' ( temp highp 4-component vector of uint) -0:217 move second child to first child ( temp highp 3-component vector of int) -0:217 vector swizzle ( temp highp 3-component vector of int) -0:217 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:217 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:217 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:217 Constant: -0:217 2 (const int) -0:217 Constant: -0:217 1 (const int) -0:217 Sequence -0:217 Constant: -0:217 0 (const int) -0:217 Constant: -0:217 1 (const int) -0:217 Constant: -0:217 2 (const int) -0:217 Convert bool to int ( temp highp 3-component vector of int) -0:217 subgroupPartitionedInclusiveAndNV ( global 3-component vector of bool, operation at highp) -0:217 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:217 vector swizzle ( temp highp 3-component vector of int) -0:217 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:217 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:217 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:217 Constant: -0:217 1 (const int) -0:217 Constant: -0:217 1 (const int) -0:217 Sequence -0:217 Constant: -0:217 0 (const int) -0:217 Constant: -0:217 1 (const int) -0:217 Constant: -0:217 2 (const int) -0:217 Constant: -0:217 0 (const int) -0:217 0 (const int) -0:217 0 (const int) -0:217 'ballot' ( temp highp 4-component vector of uint) -0:218 move second child to first child ( temp highp 4-component vector of int) -0:218 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:218 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:218 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:218 Constant: -0:218 2 (const int) -0:218 Constant: -0:218 1 (const int) -0:218 Convert bool to int ( temp highp 4-component vector of int) -0:218 subgroupPartitionedInclusiveAndNV ( global 4-component vector of bool, operation at highp) -0:218 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:218 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:218 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:218 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:218 Constant: -0:218 1 (const int) -0:218 Constant: -0:218 1 (const int) -0:218 Constant: -0:218 0 (const int) -0:218 0 (const int) -0:218 0 (const int) -0:218 0 (const int) -0:218 'ballot' ( temp highp 4-component vector of uint) -0:220 move second child to first child ( temp highp int) -0:220 direct index ( temp highp int) -0:220 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:220 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:220 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:220 Constant: -0:220 2 (const int) -0:220 Constant: -0:220 1 (const int) -0:220 Constant: -0:220 0 (const int) -0:220 subgroupPartitionedInclusiveOrNV ( global highp int) -0:220 direct index ( temp highp int) -0:220 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:220 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:220 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:220 Constant: -0:220 0 (const int) -0:220 Constant: -0:220 1 (const int) -0:220 Constant: -0:220 0 (const int) -0:220 'ballot' ( temp highp 4-component vector of uint) -0:221 move second child to first child ( temp highp 2-component vector of int) -0:221 vector swizzle ( temp highp 2-component vector of int) -0:221 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:221 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:221 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:221 Constant: -0:221 2 (const int) -0:221 Constant: -0:221 1 (const int) -0:221 Sequence -0:221 Constant: -0:221 0 (const int) -0:221 Constant: -0:221 1 (const int) -0:221 subgroupPartitionedInclusiveOrNV ( global highp 2-component vector of int) -0:221 vector swizzle ( temp highp 2-component vector of int) -0:221 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:221 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:221 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:221 Constant: -0:221 1 (const int) -0:221 Constant: -0:221 1 (const int) -0:221 Sequence -0:221 Constant: -0:221 0 (const int) -0:221 Constant: -0:221 1 (const int) -0:221 'ballot' ( temp highp 4-component vector of uint) -0:222 move second child to first child ( temp highp 3-component vector of int) -0:222 vector swizzle ( temp highp 3-component vector of int) -0:222 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:222 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:222 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:222 Constant: -0:222 2 (const int) -0:222 Constant: -0:222 1 (const int) -0:222 Sequence -0:222 Constant: -0:222 0 (const int) -0:222 Constant: -0:222 1 (const int) -0:222 Constant: -0:222 2 (const int) -0:222 subgroupPartitionedInclusiveOrNV ( global highp 3-component vector of int) -0:222 vector swizzle ( temp highp 3-component vector of int) -0:222 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:222 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:222 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:222 Constant: -0:222 2 (const int) -0:222 Constant: -0:222 1 (const int) -0:222 Sequence -0:222 Constant: -0:222 0 (const int) -0:222 Constant: -0:222 1 (const int) -0:222 Constant: -0:222 2 (const int) -0:222 'ballot' ( temp highp 4-component vector of uint) -0:223 move second child to first child ( temp highp 4-component vector of int) -0:223 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:223 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:223 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:223 Constant: -0:223 2 (const int) -0:223 Constant: -0:223 1 (const int) -0:223 subgroupPartitionedInclusiveOrNV ( global highp 4-component vector of int) -0:223 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:223 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:223 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:223 Constant: -0:223 3 (const int) -0:223 Constant: -0:223 1 (const int) -0:223 'ballot' ( temp highp 4-component vector of uint) -0:225 move second child to first child ( temp highp uint) -0:225 direct index ( temp highp uint) -0:225 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:225 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:225 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:225 Constant: -0:225 2 (const int) -0:225 Constant: -0:225 2 (const int) -0:225 Constant: -0:225 0 (const int) -0:225 subgroupPartitionedInclusiveOrNV ( global highp uint) -0:225 direct index ( temp highp uint) -0:225 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:225 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:225 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:225 Constant: -0:225 0 (const int) -0:225 Constant: -0:225 2 (const int) -0:225 Constant: -0:225 0 (const int) -0:225 'ballot' ( temp highp 4-component vector of uint) -0:226 move second child to first child ( temp highp 2-component vector of uint) -0:226 vector swizzle ( temp highp 2-component vector of uint) -0:226 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:226 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:226 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:226 Constant: -0:226 2 (const int) -0:226 Constant: -0:226 2 (const int) -0:226 Sequence -0:226 Constant: -0:226 0 (const int) -0:226 Constant: -0:226 1 (const int) -0:226 subgroupPartitionedInclusiveOrNV ( global highp 2-component vector of uint) -0:226 vector swizzle ( temp highp 2-component vector of uint) -0:226 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:226 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:226 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:226 Constant: -0:226 1 (const int) -0:226 Constant: -0:226 2 (const int) -0:226 Sequence -0:226 Constant: -0:226 0 (const int) -0:226 Constant: -0:226 1 (const int) -0:226 'ballot' ( temp highp 4-component vector of uint) -0:227 move second child to first child ( temp highp 3-component vector of uint) -0:227 vector swizzle ( temp highp 3-component vector of uint) -0:227 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:227 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:227 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:227 Constant: -0:227 2 (const int) -0:227 Constant: -0:227 2 (const int) -0:227 Sequence -0:227 Constant: -0:227 0 (const int) -0:227 Constant: -0:227 1 (const int) -0:227 Constant: -0:227 2 (const int) -0:227 subgroupPartitionedInclusiveOrNV ( global highp 3-component vector of uint) -0:227 vector swizzle ( temp highp 3-component vector of uint) -0:227 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:227 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:227 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:227 Constant: -0:227 2 (const int) -0:227 Constant: -0:227 2 (const int) -0:227 Sequence -0:227 Constant: -0:227 0 (const int) -0:227 Constant: -0:227 1 (const int) -0:227 Constant: -0:227 2 (const int) -0:227 'ballot' ( temp highp 4-component vector of uint) -0:228 move second child to first child ( temp highp 4-component vector of uint) -0:228 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:228 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:228 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:228 Constant: -0:228 2 (const int) -0:228 Constant: -0:228 2 (const int) -0:228 subgroupPartitionedInclusiveOrNV ( global highp 4-component vector of uint) -0:228 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:228 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:228 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:228 Constant: -0:228 3 (const int) -0:228 Constant: -0:228 2 (const int) -0:228 'ballot' ( temp highp 4-component vector of uint) -0:230 move second child to first child ( temp highp int) -0:230 direct index ( temp highp int) -0:230 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:230 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:230 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:230 Constant: -0:230 3 (const int) -0:230 Constant: -0:230 1 (const int) -0:230 Constant: -0:230 0 (const int) -0:230 Convert bool to int ( temp highp int) -0:230 subgroupPartitionedInclusiveOrNV ( global bool, operation at highp) -0:230 Compare Less Than ( temp bool) -0:230 direct index ( temp highp int) -0:230 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:230 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:230 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:230 Constant: -0:230 0 (const int) -0:230 Constant: -0:230 1 (const int) -0:230 Constant: -0:230 0 (const int) -0:230 Constant: -0:230 0 (const int) -0:230 'ballot' ( temp highp 4-component vector of uint) -0:231 move second child to first child ( temp highp 2-component vector of int) -0:231 vector swizzle ( temp highp 2-component vector of int) -0:231 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:231 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:231 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:231 Constant: -0:231 3 (const int) -0:231 Constant: -0:231 1 (const int) -0:231 Sequence -0:231 Constant: -0:231 0 (const int) -0:231 Constant: -0:231 1 (const int) -0:231 Convert bool to int ( temp highp 2-component vector of int) -0:231 subgroupPartitionedInclusiveOrNV ( global 2-component vector of bool, operation at highp) -0:231 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:231 vector swizzle ( temp highp 2-component vector of int) -0:231 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:231 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:231 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:231 Constant: -0:231 1 (const int) -0:231 Constant: -0:231 1 (const int) -0:231 Sequence -0:231 Constant: -0:231 0 (const int) -0:231 Constant: -0:231 1 (const int) -0:231 Constant: -0:231 0 (const int) -0:231 0 (const int) -0:231 'ballot' ( temp highp 4-component vector of uint) -0:232 move second child to first child ( temp highp 3-component vector of int) -0:232 vector swizzle ( temp highp 3-component vector of int) -0:232 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:232 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:232 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:232 Constant: -0:232 3 (const int) -0:232 Constant: -0:232 1 (const int) -0:232 Sequence -0:232 Constant: -0:232 0 (const int) -0:232 Constant: -0:232 1 (const int) -0:232 Constant: -0:232 2 (const int) -0:232 Convert bool to int ( temp highp 3-component vector of int) -0:232 subgroupPartitionedInclusiveOrNV ( global 3-component vector of bool, operation at highp) -0:232 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:232 vector swizzle ( temp highp 3-component vector of int) -0:232 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:232 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:232 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:232 Constant: -0:232 1 (const int) -0:232 Constant: -0:232 1 (const int) -0:232 Sequence -0:232 Constant: -0:232 0 (const int) -0:232 Constant: -0:232 1 (const int) -0:232 Constant: -0:232 2 (const int) -0:232 Constant: -0:232 0 (const int) -0:232 0 (const int) -0:232 0 (const int) -0:232 'ballot' ( temp highp 4-component vector of uint) -0:233 move second child to first child ( temp highp 4-component vector of int) -0:233 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:233 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:233 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:233 Constant: -0:233 3 (const int) -0:233 Constant: -0:233 1 (const int) -0:233 Convert bool to int ( temp highp 4-component vector of int) -0:233 subgroupPartitionedInclusiveOrNV ( global 4-component vector of bool, operation at highp) -0:233 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:233 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:233 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:233 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:233 Constant: -0:233 1 (const int) -0:233 Constant: -0:233 1 (const int) -0:233 Constant: -0:233 0 (const int) -0:233 0 (const int) -0:233 0 (const int) -0:233 0 (const int) -0:233 'ballot' ( temp highp 4-component vector of uint) -0:235 move second child to first child ( temp highp int) -0:235 direct index ( temp highp int) -0:235 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:235 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:235 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:235 Constant: -0:235 3 (const int) -0:235 Constant: -0:235 1 (const int) -0:235 Constant: -0:235 0 (const int) -0:235 subgroupPartitionedInclusiveXorNV ( global highp int) -0:235 direct index ( temp highp int) -0:235 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:235 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:235 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:235 Constant: -0:235 0 (const int) -0:235 Constant: -0:235 1 (const int) -0:235 Constant: -0:235 0 (const int) -0:235 'ballot' ( temp highp 4-component vector of uint) -0:236 move second child to first child ( temp highp 2-component vector of int) -0:236 vector swizzle ( temp highp 2-component vector of int) -0:236 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:236 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:236 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:236 Constant: -0:236 3 (const int) -0:236 Constant: -0:236 1 (const int) -0:236 Sequence -0:236 Constant: -0:236 0 (const int) -0:236 Constant: -0:236 1 (const int) -0:236 subgroupPartitionedInclusiveXorNV ( global highp 2-component vector of int) -0:236 vector swizzle ( temp highp 2-component vector of int) -0:236 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:236 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:236 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:236 Constant: -0:236 1 (const int) -0:236 Constant: -0:236 1 (const int) -0:236 Sequence -0:236 Constant: -0:236 0 (const int) -0:236 Constant: -0:236 1 (const int) -0:236 'ballot' ( temp highp 4-component vector of uint) -0:237 move second child to first child ( temp highp 3-component vector of int) -0:237 vector swizzle ( temp highp 3-component vector of int) -0:237 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:237 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:237 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:237 Constant: -0:237 3 (const int) -0:237 Constant: -0:237 1 (const int) -0:237 Sequence -0:237 Constant: -0:237 0 (const int) -0:237 Constant: -0:237 1 (const int) -0:237 Constant: -0:237 2 (const int) -0:237 subgroupPartitionedInclusiveXorNV ( global highp 3-component vector of int) -0:237 vector swizzle ( temp highp 3-component vector of int) -0:237 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:237 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:237 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:237 Constant: -0:237 2 (const int) -0:237 Constant: -0:237 1 (const int) -0:237 Sequence -0:237 Constant: -0:237 0 (const int) -0:237 Constant: -0:237 1 (const int) -0:237 Constant: -0:237 2 (const int) -0:237 'ballot' ( temp highp 4-component vector of uint) -0:238 move second child to first child ( temp highp 4-component vector of int) -0:238 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:238 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:238 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:238 Constant: -0:238 3 (const int) -0:238 Constant: -0:238 1 (const int) -0:238 subgroupPartitionedInclusiveXorNV ( global highp 4-component vector of int) -0:238 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:238 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:238 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:238 Constant: -0:238 3 (const int) -0:238 Constant: -0:238 1 (const int) -0:238 'ballot' ( temp highp 4-component vector of uint) -0:240 move second child to first child ( temp highp uint) -0:240 direct index ( temp highp uint) -0:240 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:240 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:240 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:240 Constant: -0:240 3 (const int) -0:240 Constant: -0:240 2 (const int) -0:240 Constant: -0:240 0 (const int) -0:240 subgroupPartitionedInclusiveXorNV ( global highp uint) -0:240 direct index ( temp highp uint) -0:240 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:240 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:240 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:240 Constant: -0:240 0 (const int) -0:240 Constant: -0:240 2 (const int) -0:240 Constant: -0:240 0 (const int) -0:240 'ballot' ( temp highp 4-component vector of uint) -0:241 move second child to first child ( temp highp 2-component vector of uint) -0:241 vector swizzle ( temp highp 2-component vector of uint) -0:241 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:241 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:241 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:241 Constant: -0:241 3 (const int) -0:241 Constant: -0:241 2 (const int) -0:241 Sequence -0:241 Constant: -0:241 0 (const int) -0:241 Constant: -0:241 1 (const int) -0:241 subgroupPartitionedInclusiveXorNV ( global highp 2-component vector of uint) -0:241 vector swizzle ( temp highp 2-component vector of uint) -0:241 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:241 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:241 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:241 Constant: -0:241 1 (const int) -0:241 Constant: -0:241 2 (const int) -0:241 Sequence -0:241 Constant: -0:241 0 (const int) -0:241 Constant: -0:241 1 (const int) -0:241 'ballot' ( temp highp 4-component vector of uint) -0:242 move second child to first child ( temp highp 3-component vector of uint) -0:242 vector swizzle ( temp highp 3-component vector of uint) -0:242 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:242 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:242 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:242 Constant: -0:242 3 (const int) -0:242 Constant: -0:242 2 (const int) -0:242 Sequence -0:242 Constant: -0:242 0 (const int) -0:242 Constant: -0:242 1 (const int) -0:242 Constant: -0:242 2 (const int) -0:242 subgroupPartitionedInclusiveXorNV ( global highp 3-component vector of uint) -0:242 vector swizzle ( temp highp 3-component vector of uint) -0:242 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:242 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:242 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:242 Constant: -0:242 2 (const int) -0:242 Constant: -0:242 2 (const int) -0:242 Sequence -0:242 Constant: -0:242 0 (const int) -0:242 Constant: -0:242 1 (const int) -0:242 Constant: -0:242 2 (const int) -0:242 'ballot' ( temp highp 4-component vector of uint) -0:243 move second child to first child ( temp highp 4-component vector of uint) -0:243 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:243 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:243 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:243 Constant: -0:243 3 (const int) -0:243 Constant: -0:243 2 (const int) -0:243 subgroupPartitionedInclusiveXorNV ( global highp 4-component vector of uint) -0:243 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:243 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:243 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:243 Constant: -0:243 3 (const int) -0:243 Constant: -0:243 2 (const int) -0:243 'ballot' ( temp highp 4-component vector of uint) -0:245 move second child to first child ( temp highp int) -0:245 direct index ( temp highp int) -0:245 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:245 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:245 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:245 Constant: -0:245 3 (const int) -0:245 Constant: -0:245 1 (const int) -0:245 Constant: -0:245 0 (const int) -0:245 Convert bool to int ( temp highp int) -0:245 subgroupPartitionedInclusiveXorNV ( global bool, operation at highp) -0:245 Compare Less Than ( temp bool) -0:245 direct index ( temp highp int) -0:245 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:245 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:245 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:245 Constant: -0:245 0 (const int) -0:245 Constant: -0:245 1 (const int) -0:245 Constant: -0:245 0 (const int) -0:245 Constant: -0:245 0 (const int) -0:245 'ballot' ( temp highp 4-component vector of uint) -0:246 move second child to first child ( temp highp 2-component vector of int) -0:246 vector swizzle ( temp highp 2-component vector of int) -0:246 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:246 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:246 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:246 Constant: -0:246 3 (const int) -0:246 Constant: -0:246 1 (const int) -0:246 Sequence -0:246 Constant: -0:246 0 (const int) -0:246 Constant: -0:246 1 (const int) -0:246 Convert bool to int ( temp highp 2-component vector of int) -0:246 subgroupPartitionedInclusiveXorNV ( global 2-component vector of bool, operation at highp) -0:246 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:246 vector swizzle ( temp highp 2-component vector of int) -0:246 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:246 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:246 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:246 Constant: -0:246 1 (const int) -0:246 Constant: -0:246 1 (const int) -0:246 Sequence -0:246 Constant: -0:246 0 (const int) -0:246 Constant: -0:246 1 (const int) -0:246 Constant: -0:246 0 (const int) -0:246 0 (const int) -0:246 'ballot' ( temp highp 4-component vector of uint) -0:247 move second child to first child ( temp highp 3-component vector of int) -0:247 vector swizzle ( temp highp 3-component vector of int) -0:247 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:247 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:247 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:247 Constant: -0:247 3 (const int) -0:247 Constant: -0:247 1 (const int) -0:247 Sequence -0:247 Constant: -0:247 0 (const int) -0:247 Constant: -0:247 1 (const int) -0:247 Constant: -0:247 2 (const int) -0:247 Convert bool to int ( temp highp 3-component vector of int) -0:247 subgroupPartitionedInclusiveXorNV ( global 3-component vector of bool, operation at highp) -0:247 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:247 vector swizzle ( temp highp 3-component vector of int) -0:247 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:247 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:247 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:247 Constant: -0:247 1 (const int) -0:247 Constant: -0:247 1 (const int) -0:247 Sequence -0:247 Constant: -0:247 0 (const int) -0:247 Constant: -0:247 1 (const int) -0:247 Constant: -0:247 2 (const int) -0:247 Constant: -0:247 0 (const int) -0:247 0 (const int) -0:247 0 (const int) -0:247 'ballot' ( temp highp 4-component vector of uint) -0:248 move second child to first child ( temp highp 4-component vector of int) -0:248 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:248 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:248 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:248 Constant: -0:248 3 (const int) -0:248 Constant: -0:248 1 (const int) -0:248 Convert bool to int ( temp highp 4-component vector of int) -0:248 subgroupPartitionedInclusiveXorNV ( global 4-component vector of bool, operation at highp) -0:248 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:248 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:248 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:248 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:248 Constant: -0:248 1 (const int) -0:248 Constant: -0:248 1 (const int) -0:248 Constant: -0:248 0 (const int) -0:248 0 (const int) -0:248 0 (const int) -0:248 0 (const int) -0:248 'ballot' ( temp highp 4-component vector of uint) -0:250 move second child to first child ( temp highp float) -0:250 direct index ( temp highp float) -0:250 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:250 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:250 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:250 Constant: -0:250 0 (const int) -0:250 Constant: -0:250 0 (const int) -0:250 Constant: -0:250 0 (const int) -0:250 subgroupPartitionedExclusiveAddNV ( global highp float) -0:250 direct index ( temp highp float) -0:250 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:250 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:250 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:250 Constant: -0:250 0 (const int) -0:250 Constant: -0:250 0 (const int) -0:250 Constant: -0:250 0 (const int) -0:250 'ballot' ( temp highp 4-component vector of uint) -0:251 move second child to first child ( temp highp 2-component vector of float) -0:251 vector swizzle ( temp highp 2-component vector of float) -0:251 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:251 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:251 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:251 Constant: -0:251 0 (const int) -0:251 Constant: -0:251 0 (const int) -0:251 Sequence -0:251 Constant: -0:251 0 (const int) -0:251 Constant: -0:251 1 (const int) -0:251 subgroupPartitionedExclusiveAddNV ( global highp 2-component vector of float) -0:251 vector swizzle ( temp highp 2-component vector of float) -0:251 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:251 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:251 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:251 Constant: -0:251 1 (const int) -0:251 Constant: -0:251 0 (const int) -0:251 Sequence -0:251 Constant: -0:251 0 (const int) -0:251 Constant: -0:251 1 (const int) -0:251 'ballot' ( temp highp 4-component vector of uint) -0:252 move second child to first child ( temp highp 3-component vector of float) -0:252 vector swizzle ( temp highp 3-component vector of float) -0:252 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:252 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:252 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:252 Constant: -0:252 0 (const int) -0:252 Constant: -0:252 0 (const int) -0:252 Sequence -0:252 Constant: -0:252 0 (const int) -0:252 Constant: -0:252 1 (const int) -0:252 Constant: -0:252 2 (const int) -0:252 subgroupPartitionedExclusiveAddNV ( global highp 3-component vector of float) -0:252 vector swizzle ( temp highp 3-component vector of float) -0:252 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:252 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:252 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:252 Constant: -0:252 2 (const int) -0:252 Constant: -0:252 0 (const int) -0:252 Sequence -0:252 Constant: -0:252 0 (const int) -0:252 Constant: -0:252 1 (const int) -0:252 Constant: -0:252 2 (const int) -0:252 'ballot' ( temp highp 4-component vector of uint) -0:253 move second child to first child ( temp highp 4-component vector of float) -0:253 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:253 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:253 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:253 Constant: -0:253 0 (const int) -0:253 Constant: -0:253 0 (const int) -0:253 subgroupPartitionedExclusiveAddNV ( global highp 4-component vector of float) -0:253 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:253 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:253 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:253 Constant: -0:253 3 (const int) -0:253 Constant: -0:253 0 (const int) -0:253 'ballot' ( temp highp 4-component vector of uint) -0:255 move second child to first child ( temp highp int) -0:255 direct index ( temp highp int) -0:255 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:255 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:255 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:255 Constant: -0:255 0 (const int) -0:255 Constant: -0:255 1 (const int) -0:255 Constant: -0:255 0 (const int) -0:255 subgroupPartitionedExclusiveAddNV ( global highp int) -0:255 direct index ( temp highp int) -0:255 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:255 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:255 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:255 Constant: -0:255 0 (const int) -0:255 Constant: -0:255 1 (const int) -0:255 Constant: -0:255 0 (const int) -0:255 'ballot' ( temp highp 4-component vector of uint) -0:256 move second child to first child ( temp highp 2-component vector of int) -0:256 vector swizzle ( temp highp 2-component vector of int) -0:256 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:256 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:256 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:256 Constant: -0:256 0 (const int) -0:256 Constant: -0:256 1 (const int) -0:256 Sequence -0:256 Constant: -0:256 0 (const int) -0:256 Constant: -0:256 1 (const int) -0:256 subgroupPartitionedExclusiveAddNV ( global highp 2-component vector of int) -0:256 vector swizzle ( temp highp 2-component vector of int) -0:256 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:256 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:256 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:256 Constant: -0:256 1 (const int) -0:256 Constant: -0:256 1 (const int) -0:256 Sequence -0:256 Constant: -0:256 0 (const int) -0:256 Constant: -0:256 1 (const int) -0:256 'ballot' ( temp highp 4-component vector of uint) -0:257 move second child to first child ( temp highp 3-component vector of int) -0:257 vector swizzle ( temp highp 3-component vector of int) -0:257 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:257 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:257 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:257 Constant: -0:257 0 (const int) -0:257 Constant: -0:257 1 (const int) -0:257 Sequence -0:257 Constant: -0:257 0 (const int) -0:257 Constant: -0:257 1 (const int) -0:257 Constant: -0:257 2 (const int) -0:257 subgroupPartitionedExclusiveAddNV ( global highp 3-component vector of int) -0:257 vector swizzle ( temp highp 3-component vector of int) -0:257 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:257 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:257 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:257 Constant: -0:257 2 (const int) -0:257 Constant: -0:257 1 (const int) -0:257 Sequence -0:257 Constant: -0:257 0 (const int) -0:257 Constant: -0:257 1 (const int) -0:257 Constant: -0:257 2 (const int) -0:257 'ballot' ( temp highp 4-component vector of uint) -0:258 move second child to first child ( temp highp 4-component vector of int) -0:258 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:258 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:258 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:258 Constant: -0:258 0 (const int) -0:258 Constant: -0:258 1 (const int) -0:258 subgroupPartitionedExclusiveAddNV ( global highp 4-component vector of int) -0:258 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:258 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:258 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:258 Constant: -0:258 3 (const int) -0:258 Constant: -0:258 1 (const int) -0:258 'ballot' ( temp highp 4-component vector of uint) -0:260 move second child to first child ( temp highp uint) -0:260 direct index ( temp highp uint) -0:260 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:260 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:260 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:260 Constant: -0:260 0 (const int) -0:260 Constant: -0:260 2 (const int) -0:260 Constant: -0:260 0 (const int) -0:260 subgroupPartitionedExclusiveAddNV ( global highp uint) -0:260 direct index ( temp highp uint) -0:260 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:260 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:260 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:260 Constant: -0:260 0 (const int) -0:260 Constant: -0:260 2 (const int) -0:260 Constant: -0:260 0 (const int) -0:260 'ballot' ( temp highp 4-component vector of uint) -0:261 move second child to first child ( temp highp 2-component vector of uint) -0:261 vector swizzle ( temp highp 2-component vector of uint) -0:261 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:261 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:261 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:261 Constant: -0:261 0 (const int) -0:261 Constant: -0:261 2 (const int) -0:261 Sequence -0:261 Constant: -0:261 0 (const int) -0:261 Constant: -0:261 1 (const int) -0:261 subgroupPartitionedExclusiveAddNV ( global highp 2-component vector of uint) -0:261 vector swizzle ( temp highp 2-component vector of uint) -0:261 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:261 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:261 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:261 Constant: -0:261 1 (const int) -0:261 Constant: -0:261 2 (const int) -0:261 Sequence -0:261 Constant: -0:261 0 (const int) -0:261 Constant: -0:261 1 (const int) -0:261 'ballot' ( temp highp 4-component vector of uint) -0:262 move second child to first child ( temp highp 3-component vector of uint) -0:262 vector swizzle ( temp highp 3-component vector of uint) -0:262 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:262 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:262 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:262 Constant: -0:262 0 (const int) -0:262 Constant: -0:262 2 (const int) -0:262 Sequence -0:262 Constant: -0:262 0 (const int) -0:262 Constant: -0:262 1 (const int) -0:262 Constant: -0:262 2 (const int) -0:262 subgroupPartitionedExclusiveAddNV ( global highp 3-component vector of uint) -0:262 vector swizzle ( temp highp 3-component vector of uint) -0:262 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:262 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:262 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:262 Constant: -0:262 2 (const int) -0:262 Constant: -0:262 2 (const int) -0:262 Sequence -0:262 Constant: -0:262 0 (const int) -0:262 Constant: -0:262 1 (const int) -0:262 Constant: -0:262 2 (const int) -0:262 'ballot' ( temp highp 4-component vector of uint) -0:263 move second child to first child ( temp highp 4-component vector of uint) -0:263 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:263 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:263 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:263 Constant: -0:263 0 (const int) -0:263 Constant: -0:263 2 (const int) -0:263 subgroupPartitionedExclusiveAddNV ( global highp 4-component vector of uint) -0:263 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:263 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:263 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:263 Constant: -0:263 3 (const int) -0:263 Constant: -0:263 2 (const int) -0:263 'ballot' ( temp highp 4-component vector of uint) -0:265 move second child to first child ( temp highp float) -0:265 direct index ( temp highp float) -0:265 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:265 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:265 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:265 Constant: -0:265 0 (const int) -0:265 Constant: -0:265 0 (const int) -0:265 Constant: -0:265 0 (const int) -0:265 subgroupPartitionedExclusiveMulNV ( global highp float) -0:265 direct index ( temp highp float) -0:265 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:265 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:265 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:265 Constant: -0:265 0 (const int) -0:265 Constant: -0:265 0 (const int) -0:265 Constant: -0:265 0 (const int) -0:265 'ballot' ( temp highp 4-component vector of uint) -0:266 move second child to first child ( temp highp 2-component vector of float) -0:266 vector swizzle ( temp highp 2-component vector of float) -0:266 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:266 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:266 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:266 Constant: -0:266 0 (const int) -0:266 Constant: -0:266 0 (const int) -0:266 Sequence -0:266 Constant: -0:266 0 (const int) -0:266 Constant: -0:266 1 (const int) -0:266 subgroupPartitionedExclusiveMulNV ( global highp 2-component vector of float) -0:266 vector swizzle ( temp highp 2-component vector of float) -0:266 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:266 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:266 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:266 Constant: -0:266 1 (const int) -0:266 Constant: -0:266 0 (const int) -0:266 Sequence -0:266 Constant: -0:266 0 (const int) -0:266 Constant: -0:266 1 (const int) -0:266 'ballot' ( temp highp 4-component vector of uint) -0:267 move second child to first child ( temp highp 3-component vector of float) -0:267 vector swizzle ( temp highp 3-component vector of float) -0:267 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:267 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:267 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:267 Constant: -0:267 0 (const int) -0:267 Constant: -0:267 0 (const int) -0:267 Sequence -0:267 Constant: -0:267 0 (const int) -0:267 Constant: -0:267 1 (const int) -0:267 Constant: -0:267 2 (const int) -0:267 subgroupPartitionedExclusiveMulNV ( global highp 3-component vector of float) -0:267 vector swizzle ( temp highp 3-component vector of float) -0:267 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:267 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:267 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:267 Constant: -0:267 2 (const int) -0:267 Constant: -0:267 0 (const int) -0:267 Sequence -0:267 Constant: -0:267 0 (const int) -0:267 Constant: -0:267 1 (const int) -0:267 Constant: -0:267 2 (const int) -0:267 'ballot' ( temp highp 4-component vector of uint) -0:268 move second child to first child ( temp highp 4-component vector of float) -0:268 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:268 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:268 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:268 Constant: -0:268 0 (const int) -0:268 Constant: -0:268 0 (const int) -0:268 subgroupPartitionedExclusiveMulNV ( global highp 4-component vector of float) -0:268 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:268 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:268 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:268 Constant: -0:268 3 (const int) -0:268 Constant: -0:268 0 (const int) -0:268 'ballot' ( temp highp 4-component vector of uint) -0:270 move second child to first child ( temp highp int) -0:270 direct index ( temp highp int) -0:270 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:270 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:270 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:270 Constant: -0:270 1 (const int) -0:270 Constant: -0:270 1 (const int) -0:270 Constant: -0:270 0 (const int) -0:270 subgroupPartitionedExclusiveMulNV ( global highp int) -0:270 direct index ( temp highp int) -0:270 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:270 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:270 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:270 Constant: -0:270 0 (const int) -0:270 Constant: -0:270 1 (const int) -0:270 Constant: -0:270 0 (const int) -0:270 'ballot' ( temp highp 4-component vector of uint) -0:271 move second child to first child ( temp highp 2-component vector of int) -0:271 vector swizzle ( temp highp 2-component vector of int) -0:271 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:271 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:271 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:271 Constant: -0:271 1 (const int) -0:271 Constant: -0:271 1 (const int) -0:271 Sequence -0:271 Constant: -0:271 0 (const int) -0:271 Constant: -0:271 1 (const int) -0:271 subgroupPartitionedExclusiveMulNV ( global highp 2-component vector of int) -0:271 vector swizzle ( temp highp 2-component vector of int) -0:271 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:271 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:271 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:271 Constant: -0:271 1 (const int) -0:271 Constant: -0:271 1 (const int) -0:271 Sequence -0:271 Constant: -0:271 0 (const int) -0:271 Constant: -0:271 1 (const int) -0:271 'ballot' ( temp highp 4-component vector of uint) -0:272 move second child to first child ( temp highp 3-component vector of int) -0:272 vector swizzle ( temp highp 3-component vector of int) -0:272 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:272 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:272 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:272 Constant: -0:272 1 (const int) -0:272 Constant: -0:272 1 (const int) -0:272 Sequence -0:272 Constant: -0:272 0 (const int) -0:272 Constant: -0:272 1 (const int) -0:272 Constant: -0:272 2 (const int) -0:272 subgroupPartitionedExclusiveMulNV ( global highp 3-component vector of int) -0:272 vector swizzle ( temp highp 3-component vector of int) -0:272 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:272 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:272 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:272 Constant: -0:272 2 (const int) -0:272 Constant: -0:272 1 (const int) -0:272 Sequence -0:272 Constant: -0:272 0 (const int) -0:272 Constant: -0:272 1 (const int) -0:272 Constant: -0:272 2 (const int) -0:272 'ballot' ( temp highp 4-component vector of uint) -0:273 move second child to first child ( temp highp 4-component vector of int) -0:273 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:273 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:273 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:273 Constant: -0:273 1 (const int) -0:273 Constant: -0:273 1 (const int) -0:273 subgroupPartitionedExclusiveMulNV ( global highp 4-component vector of int) -0:273 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:273 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:273 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:273 Constant: -0:273 3 (const int) -0:273 Constant: -0:273 1 (const int) -0:273 'ballot' ( temp highp 4-component vector of uint) -0:275 move second child to first child ( temp highp uint) -0:275 direct index ( temp highp uint) -0:275 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:275 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:275 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:275 Constant: -0:275 1 (const int) -0:275 Constant: -0:275 2 (const int) -0:275 Constant: -0:275 0 (const int) -0:275 subgroupPartitionedExclusiveMulNV ( global highp uint) -0:275 direct index ( temp highp uint) -0:275 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:275 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:275 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:275 Constant: -0:275 0 (const int) -0:275 Constant: -0:275 2 (const int) -0:275 Constant: -0:275 0 (const int) -0:275 'ballot' ( temp highp 4-component vector of uint) -0:276 move second child to first child ( temp highp 2-component vector of uint) -0:276 vector swizzle ( temp highp 2-component vector of uint) -0:276 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:276 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:276 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:276 Constant: -0:276 1 (const int) -0:276 Constant: -0:276 2 (const int) -0:276 Sequence -0:276 Constant: -0:276 0 (const int) -0:276 Constant: -0:276 1 (const int) -0:276 subgroupPartitionedExclusiveMulNV ( global highp 2-component vector of uint) -0:276 vector swizzle ( temp highp 2-component vector of uint) -0:276 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:276 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:276 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:276 Constant: -0:276 1 (const int) -0:276 Constant: -0:276 2 (const int) -0:276 Sequence -0:276 Constant: -0:276 0 (const int) -0:276 Constant: -0:276 1 (const int) -0:276 'ballot' ( temp highp 4-component vector of uint) -0:277 move second child to first child ( temp highp 3-component vector of uint) -0:277 vector swizzle ( temp highp 3-component vector of uint) -0:277 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:277 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:277 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:277 Constant: -0:277 1 (const int) -0:277 Constant: -0:277 2 (const int) -0:277 Sequence -0:277 Constant: -0:277 0 (const int) -0:277 Constant: -0:277 1 (const int) -0:277 Constant: -0:277 2 (const int) -0:277 subgroupPartitionedExclusiveMulNV ( global highp 3-component vector of uint) -0:277 vector swizzle ( temp highp 3-component vector of uint) -0:277 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:277 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:277 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:277 Constant: -0:277 2 (const int) -0:277 Constant: -0:277 2 (const int) -0:277 Sequence -0:277 Constant: -0:277 0 (const int) -0:277 Constant: -0:277 1 (const int) -0:277 Constant: -0:277 2 (const int) -0:277 'ballot' ( temp highp 4-component vector of uint) -0:278 move second child to first child ( temp highp 4-component vector of uint) -0:278 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:278 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:278 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:278 Constant: -0:278 1 (const int) -0:278 Constant: -0:278 2 (const int) -0:278 subgroupPartitionedExclusiveMulNV ( global highp 4-component vector of uint) -0:278 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:278 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:278 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:278 Constant: -0:278 3 (const int) -0:278 Constant: -0:278 2 (const int) -0:278 'ballot' ( temp highp 4-component vector of uint) -0:280 move second child to first child ( temp highp float) -0:280 direct index ( temp highp float) -0:280 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:280 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:280 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:280 Constant: -0:280 1 (const int) -0:280 Constant: -0:280 0 (const int) -0:280 Constant: -0:280 0 (const int) -0:280 subgroupPartitionedExclusiveMinNV ( global highp float) -0:280 direct index ( temp highp float) -0:280 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:280 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:280 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:280 Constant: -0:280 0 (const int) -0:280 Constant: -0:280 0 (const int) -0:280 Constant: -0:280 0 (const int) -0:280 'ballot' ( temp highp 4-component vector of uint) -0:281 move second child to first child ( temp highp 2-component vector of float) -0:281 vector swizzle ( temp highp 2-component vector of float) -0:281 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:281 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:281 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:281 Constant: -0:281 1 (const int) -0:281 Constant: -0:281 0 (const int) -0:281 Sequence -0:281 Constant: -0:281 0 (const int) -0:281 Constant: -0:281 1 (const int) -0:281 subgroupPartitionedExclusiveMinNV ( global highp 2-component vector of float) -0:281 vector swizzle ( temp highp 2-component vector of float) -0:281 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:281 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:281 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:281 Constant: -0:281 1 (const int) -0:281 Constant: -0:281 0 (const int) -0:281 Sequence -0:281 Constant: -0:281 0 (const int) -0:281 Constant: -0:281 1 (const int) -0:281 'ballot' ( temp highp 4-component vector of uint) -0:282 move second child to first child ( temp highp 3-component vector of float) -0:282 vector swizzle ( temp highp 3-component vector of float) -0:282 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:282 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:282 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:282 Constant: -0:282 1 (const int) -0:282 Constant: -0:282 0 (const int) -0:282 Sequence -0:282 Constant: -0:282 0 (const int) -0:282 Constant: -0:282 1 (const int) -0:282 Constant: -0:282 2 (const int) -0:282 subgroupPartitionedExclusiveMinNV ( global highp 3-component vector of float) -0:282 vector swizzle ( temp highp 3-component vector of float) -0:282 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:282 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:282 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:282 Constant: -0:282 2 (const int) -0:282 Constant: -0:282 0 (const int) -0:282 Sequence -0:282 Constant: -0:282 0 (const int) -0:282 Constant: -0:282 1 (const int) -0:282 Constant: -0:282 2 (const int) -0:282 'ballot' ( temp highp 4-component vector of uint) -0:283 move second child to first child ( temp highp 4-component vector of float) -0:283 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:283 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:283 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:283 Constant: -0:283 1 (const int) -0:283 Constant: -0:283 0 (const int) -0:283 subgroupPartitionedExclusiveMinNV ( global highp 4-component vector of float) -0:283 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:283 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:283 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:283 Constant: -0:283 3 (const int) -0:283 Constant: -0:283 0 (const int) -0:283 'ballot' ( temp highp 4-component vector of uint) -0:285 move second child to first child ( temp highp int) -0:285 direct index ( temp highp int) -0:285 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:285 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:285 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:285 Constant: -0:285 1 (const int) -0:285 Constant: -0:285 1 (const int) -0:285 Constant: -0:285 0 (const int) -0:285 subgroupPartitionedExclusiveMinNV ( global highp int) -0:285 direct index ( temp highp int) -0:285 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:285 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:285 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:285 Constant: -0:285 0 (const int) -0:285 Constant: -0:285 1 (const int) -0:285 Constant: -0:285 0 (const int) -0:285 'ballot' ( temp highp 4-component vector of uint) -0:286 move second child to first child ( temp highp 2-component vector of int) -0:286 vector swizzle ( temp highp 2-component vector of int) -0:286 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:286 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:286 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:286 Constant: -0:286 1 (const int) -0:286 Constant: -0:286 1 (const int) -0:286 Sequence -0:286 Constant: -0:286 0 (const int) -0:286 Constant: -0:286 1 (const int) -0:286 subgroupPartitionedExclusiveMinNV ( global highp 2-component vector of int) -0:286 vector swizzle ( temp highp 2-component vector of int) -0:286 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:286 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:286 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:286 Constant: -0:286 1 (const int) -0:286 Constant: -0:286 1 (const int) -0:286 Sequence -0:286 Constant: -0:286 0 (const int) -0:286 Constant: -0:286 1 (const int) -0:286 'ballot' ( temp highp 4-component vector of uint) -0:287 move second child to first child ( temp highp 3-component vector of int) -0:287 vector swizzle ( temp highp 3-component vector of int) -0:287 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:287 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:287 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:287 Constant: -0:287 1 (const int) -0:287 Constant: -0:287 1 (const int) -0:287 Sequence -0:287 Constant: -0:287 0 (const int) -0:287 Constant: -0:287 1 (const int) -0:287 Constant: -0:287 2 (const int) -0:287 subgroupPartitionedExclusiveMinNV ( global highp 3-component vector of int) -0:287 vector swizzle ( temp highp 3-component vector of int) -0:287 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:287 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:287 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:287 Constant: -0:287 2 (const int) -0:287 Constant: -0:287 1 (const int) -0:287 Sequence -0:287 Constant: -0:287 0 (const int) -0:287 Constant: -0:287 1 (const int) -0:287 Constant: -0:287 2 (const int) -0:287 'ballot' ( temp highp 4-component vector of uint) -0:288 move second child to first child ( temp highp 4-component vector of int) -0:288 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:288 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:288 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:288 Constant: -0:288 1 (const int) -0:288 Constant: -0:288 1 (const int) -0:288 subgroupPartitionedExclusiveMinNV ( global highp 4-component vector of int) -0:288 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:288 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:288 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:288 Constant: -0:288 3 (const int) -0:288 Constant: -0:288 1 (const int) -0:288 'ballot' ( temp highp 4-component vector of uint) -0:290 move second child to first child ( temp highp uint) -0:290 direct index ( temp highp uint) -0:290 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:290 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:290 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:290 Constant: -0:290 2 (const int) -0:290 Constant: -0:290 2 (const int) -0:290 Constant: -0:290 0 (const int) -0:290 subgroupPartitionedExclusiveMinNV ( global highp uint) -0:290 direct index ( temp highp uint) -0:290 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:290 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:290 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:290 Constant: -0:290 0 (const int) -0:290 Constant: -0:290 2 (const int) -0:290 Constant: -0:290 0 (const int) -0:290 'ballot' ( temp highp 4-component vector of uint) -0:291 move second child to first child ( temp highp 2-component vector of uint) -0:291 vector swizzle ( temp highp 2-component vector of uint) -0:291 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:291 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:291 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:291 Constant: -0:291 2 (const int) -0:291 Constant: -0:291 2 (const int) -0:291 Sequence -0:291 Constant: -0:291 0 (const int) -0:291 Constant: -0:291 1 (const int) -0:291 subgroupPartitionedExclusiveMinNV ( global highp 2-component vector of uint) -0:291 vector swizzle ( temp highp 2-component vector of uint) -0:291 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:291 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:291 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:291 Constant: -0:291 1 (const int) -0:291 Constant: -0:291 2 (const int) -0:291 Sequence -0:291 Constant: -0:291 0 (const int) -0:291 Constant: -0:291 1 (const int) -0:291 'ballot' ( temp highp 4-component vector of uint) -0:292 move second child to first child ( temp highp 3-component vector of uint) -0:292 vector swizzle ( temp highp 3-component vector of uint) -0:292 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:292 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:292 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:292 Constant: -0:292 2 (const int) -0:292 Constant: -0:292 2 (const int) -0:292 Sequence -0:292 Constant: -0:292 0 (const int) -0:292 Constant: -0:292 1 (const int) -0:292 Constant: -0:292 2 (const int) -0:292 subgroupPartitionedExclusiveMinNV ( global highp 3-component vector of uint) -0:292 vector swizzle ( temp highp 3-component vector of uint) -0:292 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:292 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:292 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:292 Constant: -0:292 2 (const int) -0:292 Constant: -0:292 2 (const int) -0:292 Sequence -0:292 Constant: -0:292 0 (const int) -0:292 Constant: -0:292 1 (const int) -0:292 Constant: -0:292 2 (const int) -0:292 'ballot' ( temp highp 4-component vector of uint) -0:293 move second child to first child ( temp highp 4-component vector of uint) -0:293 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:293 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:293 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:293 Constant: -0:293 2 (const int) -0:293 Constant: -0:293 2 (const int) -0:293 subgroupPartitionedExclusiveMinNV ( global highp 4-component vector of uint) -0:293 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:293 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:293 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:293 Constant: -0:293 3 (const int) -0:293 Constant: -0:293 2 (const int) -0:293 'ballot' ( temp highp 4-component vector of uint) -0:295 move second child to first child ( temp highp float) -0:295 direct index ( temp highp float) -0:295 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:295 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:295 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:295 Constant: -0:295 2 (const int) -0:295 Constant: -0:295 0 (const int) -0:295 Constant: -0:295 0 (const int) -0:295 subgroupPartitionedExclusiveMaxNV ( global highp float) -0:295 direct index ( temp highp float) -0:295 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:295 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:295 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:295 Constant: -0:295 0 (const int) -0:295 Constant: -0:295 0 (const int) -0:295 Constant: -0:295 0 (const int) -0:295 'ballot' ( temp highp 4-component vector of uint) -0:296 move second child to first child ( temp highp 2-component vector of float) -0:296 vector swizzle ( temp highp 2-component vector of float) -0:296 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:296 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:296 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:296 Constant: -0:296 2 (const int) -0:296 Constant: -0:296 0 (const int) -0:296 Sequence -0:296 Constant: -0:296 0 (const int) -0:296 Constant: -0:296 1 (const int) -0:296 subgroupPartitionedExclusiveMaxNV ( global highp 2-component vector of float) -0:296 vector swizzle ( temp highp 2-component vector of float) -0:296 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:296 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:296 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:296 Constant: -0:296 1 (const int) -0:296 Constant: -0:296 0 (const int) -0:296 Sequence -0:296 Constant: -0:296 0 (const int) -0:296 Constant: -0:296 1 (const int) -0:296 'ballot' ( temp highp 4-component vector of uint) -0:297 move second child to first child ( temp highp 3-component vector of float) -0:297 vector swizzle ( temp highp 3-component vector of float) -0:297 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:297 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:297 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:297 Constant: -0:297 2 (const int) -0:297 Constant: -0:297 0 (const int) -0:297 Sequence -0:297 Constant: -0:297 0 (const int) -0:297 Constant: -0:297 1 (const int) -0:297 Constant: -0:297 2 (const int) -0:297 subgroupPartitionedExclusiveMaxNV ( global highp 3-component vector of float) -0:297 vector swizzle ( temp highp 3-component vector of float) -0:297 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:297 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:297 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:297 Constant: -0:297 2 (const int) -0:297 Constant: -0:297 0 (const int) -0:297 Sequence -0:297 Constant: -0:297 0 (const int) -0:297 Constant: -0:297 1 (const int) -0:297 Constant: -0:297 2 (const int) -0:297 'ballot' ( temp highp 4-component vector of uint) -0:298 move second child to first child ( temp highp 4-component vector of float) -0:298 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:298 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:298 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:298 Constant: -0:298 2 (const int) -0:298 Constant: -0:298 0 (const int) -0:298 subgroupPartitionedExclusiveMaxNV ( global highp 4-component vector of float) -0:298 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:298 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:298 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:298 Constant: -0:298 3 (const int) -0:298 Constant: -0:298 0 (const int) -0:298 'ballot' ( temp highp 4-component vector of uint) -0:300 move second child to first child ( temp highp int) -0:300 direct index ( temp highp int) -0:300 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:300 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:300 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:300 Constant: -0:300 2 (const int) -0:300 Constant: -0:300 1 (const int) -0:300 Constant: -0:300 0 (const int) -0:300 subgroupPartitionedExclusiveMaxNV ( global highp int) -0:300 direct index ( temp highp int) -0:300 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:300 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:300 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:300 Constant: -0:300 0 (const int) -0:300 Constant: -0:300 1 (const int) -0:300 Constant: -0:300 0 (const int) -0:300 'ballot' ( temp highp 4-component vector of uint) -0:301 move second child to first child ( temp highp 2-component vector of int) -0:301 vector swizzle ( temp highp 2-component vector of int) -0:301 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:301 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:301 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:301 Constant: -0:301 2 (const int) -0:301 Constant: -0:301 1 (const int) -0:301 Sequence -0:301 Constant: -0:301 0 (const int) -0:301 Constant: -0:301 1 (const int) -0:301 subgroupPartitionedExclusiveMaxNV ( global highp 2-component vector of int) -0:301 vector swizzle ( temp highp 2-component vector of int) -0:301 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:301 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:301 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:301 Constant: -0:301 1 (const int) -0:301 Constant: -0:301 1 (const int) -0:301 Sequence -0:301 Constant: -0:301 0 (const int) -0:301 Constant: -0:301 1 (const int) -0:301 'ballot' ( temp highp 4-component vector of uint) -0:302 move second child to first child ( temp highp 3-component vector of int) -0:302 vector swizzle ( temp highp 3-component vector of int) -0:302 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:302 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:302 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:302 Constant: -0:302 2 (const int) -0:302 Constant: -0:302 1 (const int) -0:302 Sequence -0:302 Constant: -0:302 0 (const int) -0:302 Constant: -0:302 1 (const int) -0:302 Constant: -0:302 2 (const int) -0:302 subgroupPartitionedExclusiveMaxNV ( global highp 3-component vector of int) -0:302 vector swizzle ( temp highp 3-component vector of int) -0:302 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:302 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:302 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:302 Constant: -0:302 2 (const int) -0:302 Constant: -0:302 1 (const int) -0:302 Sequence -0:302 Constant: -0:302 0 (const int) -0:302 Constant: -0:302 1 (const int) -0:302 Constant: -0:302 2 (const int) -0:302 'ballot' ( temp highp 4-component vector of uint) -0:303 move second child to first child ( temp highp 4-component vector of int) -0:303 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:303 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:303 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:303 Constant: -0:303 2 (const int) -0:303 Constant: -0:303 1 (const int) -0:303 subgroupPartitionedExclusiveMaxNV ( global highp 4-component vector of int) -0:303 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:303 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:303 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:303 Constant: -0:303 3 (const int) -0:303 Constant: -0:303 1 (const int) -0:303 'ballot' ( temp highp 4-component vector of uint) -0:305 move second child to first child ( temp highp uint) -0:305 direct index ( temp highp uint) -0:305 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:305 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:305 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:305 Constant: -0:305 2 (const int) -0:305 Constant: -0:305 2 (const int) -0:305 Constant: -0:305 0 (const int) -0:305 subgroupPartitionedExclusiveMaxNV ( global highp uint) -0:305 direct index ( temp highp uint) -0:305 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:305 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:305 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:305 Constant: -0:305 0 (const int) -0:305 Constant: -0:305 2 (const int) -0:305 Constant: -0:305 0 (const int) -0:305 'ballot' ( temp highp 4-component vector of uint) -0:306 move second child to first child ( temp highp 2-component vector of uint) -0:306 vector swizzle ( temp highp 2-component vector of uint) -0:306 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:306 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:306 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:306 Constant: -0:306 2 (const int) -0:306 Constant: -0:306 2 (const int) -0:306 Sequence -0:306 Constant: -0:306 0 (const int) -0:306 Constant: -0:306 1 (const int) -0:306 subgroupPartitionedExclusiveMaxNV ( global highp 2-component vector of uint) -0:306 vector swizzle ( temp highp 2-component vector of uint) -0:306 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:306 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:306 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:306 Constant: -0:306 1 (const int) -0:306 Constant: -0:306 2 (const int) -0:306 Sequence -0:306 Constant: -0:306 0 (const int) -0:306 Constant: -0:306 1 (const int) -0:306 'ballot' ( temp highp 4-component vector of uint) -0:307 move second child to first child ( temp highp 3-component vector of uint) -0:307 vector swizzle ( temp highp 3-component vector of uint) -0:307 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:307 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:307 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:307 Constant: -0:307 2 (const int) -0:307 Constant: -0:307 2 (const int) -0:307 Sequence -0:307 Constant: -0:307 0 (const int) -0:307 Constant: -0:307 1 (const int) -0:307 Constant: -0:307 2 (const int) -0:307 subgroupPartitionedExclusiveMaxNV ( global highp 3-component vector of uint) -0:307 vector swizzle ( temp highp 3-component vector of uint) -0:307 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:307 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:307 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:307 Constant: -0:307 2 (const int) -0:307 Constant: -0:307 2 (const int) -0:307 Sequence -0:307 Constant: -0:307 0 (const int) -0:307 Constant: -0:307 1 (const int) -0:307 Constant: -0:307 2 (const int) -0:307 'ballot' ( temp highp 4-component vector of uint) -0:308 move second child to first child ( temp highp 4-component vector of uint) -0:308 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:308 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:308 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:308 Constant: -0:308 2 (const int) -0:308 Constant: -0:308 2 (const int) -0:308 subgroupPartitionedExclusiveMaxNV ( global highp 4-component vector of uint) -0:308 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:308 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:308 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:308 Constant: -0:308 3 (const int) -0:308 Constant: -0:308 2 (const int) -0:308 'ballot' ( temp highp 4-component vector of uint) -0:310 move second child to first child ( temp highp int) -0:310 direct index ( temp highp int) -0:310 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:310 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:310 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:310 Constant: -0:310 2 (const int) -0:310 Constant: -0:310 1 (const int) -0:310 Constant: -0:310 0 (const int) -0:310 subgroupPartitionedExclusiveAndNV ( global highp int) -0:310 direct index ( temp highp int) -0:310 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:310 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:310 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:310 Constant: -0:310 0 (const int) -0:310 Constant: -0:310 1 (const int) -0:310 Constant: -0:310 0 (const int) -0:310 'ballot' ( temp highp 4-component vector of uint) -0:311 move second child to first child ( temp highp 2-component vector of int) -0:311 vector swizzle ( temp highp 2-component vector of int) -0:311 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:311 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:311 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:311 Constant: -0:311 2 (const int) -0:311 Constant: -0:311 1 (const int) -0:311 Sequence -0:311 Constant: -0:311 0 (const int) -0:311 Constant: -0:311 1 (const int) -0:311 subgroupPartitionedExclusiveAndNV ( global highp 2-component vector of int) -0:311 vector swizzle ( temp highp 2-component vector of int) -0:311 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:311 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:311 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:311 Constant: -0:311 1 (const int) -0:311 Constant: -0:311 1 (const int) -0:311 Sequence -0:311 Constant: -0:311 0 (const int) -0:311 Constant: -0:311 1 (const int) -0:311 'ballot' ( temp highp 4-component vector of uint) -0:312 move second child to first child ( temp highp 3-component vector of int) -0:312 vector swizzle ( temp highp 3-component vector of int) -0:312 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:312 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:312 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:312 Constant: -0:312 2 (const int) -0:312 Constant: -0:312 1 (const int) -0:312 Sequence -0:312 Constant: -0:312 0 (const int) -0:312 Constant: -0:312 1 (const int) -0:312 Constant: -0:312 2 (const int) -0:312 subgroupPartitionedExclusiveAndNV ( global highp 3-component vector of int) -0:312 vector swizzle ( temp highp 3-component vector of int) -0:312 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:312 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:312 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:312 Constant: -0:312 2 (const int) -0:312 Constant: -0:312 1 (const int) -0:312 Sequence -0:312 Constant: -0:312 0 (const int) -0:312 Constant: -0:312 1 (const int) -0:312 Constant: -0:312 2 (const int) -0:312 'ballot' ( temp highp 4-component vector of uint) -0:313 move second child to first child ( temp highp 4-component vector of int) -0:313 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:313 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:313 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:313 Constant: -0:313 2 (const int) -0:313 Constant: -0:313 1 (const int) -0:313 subgroupPartitionedExclusiveAndNV ( global highp 4-component vector of int) -0:313 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:313 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:313 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:313 Constant: -0:313 3 (const int) -0:313 Constant: -0:313 1 (const int) -0:313 'ballot' ( temp highp 4-component vector of uint) -0:315 move second child to first child ( temp highp uint) -0:315 direct index ( temp highp uint) -0:315 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:315 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:315 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:315 Constant: -0:315 2 (const int) -0:315 Constant: -0:315 2 (const int) -0:315 Constant: -0:315 0 (const int) -0:315 subgroupPartitionedExclusiveAndNV ( global highp uint) -0:315 direct index ( temp highp uint) -0:315 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:315 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:315 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:315 Constant: -0:315 0 (const int) -0:315 Constant: -0:315 2 (const int) -0:315 Constant: -0:315 0 (const int) -0:315 'ballot' ( temp highp 4-component vector of uint) -0:316 move second child to first child ( temp highp 2-component vector of uint) -0:316 vector swizzle ( temp highp 2-component vector of uint) -0:316 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:316 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:316 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:316 Constant: -0:316 2 (const int) -0:316 Constant: -0:316 2 (const int) -0:316 Sequence -0:316 Constant: -0:316 0 (const int) -0:316 Constant: -0:316 1 (const int) -0:316 subgroupPartitionedExclusiveAndNV ( global highp 2-component vector of uint) -0:316 vector swizzle ( temp highp 2-component vector of uint) -0:316 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:316 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:316 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:316 Constant: -0:316 1 (const int) -0:316 Constant: -0:316 2 (const int) -0:316 Sequence -0:316 Constant: -0:316 0 (const int) -0:316 Constant: -0:316 1 (const int) -0:316 'ballot' ( temp highp 4-component vector of uint) -0:317 move second child to first child ( temp highp 3-component vector of uint) -0:317 vector swizzle ( temp highp 3-component vector of uint) -0:317 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:317 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:317 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:317 Constant: -0:317 2 (const int) -0:317 Constant: -0:317 2 (const int) -0:317 Sequence -0:317 Constant: -0:317 0 (const int) -0:317 Constant: -0:317 1 (const int) -0:317 Constant: -0:317 2 (const int) -0:317 subgroupPartitionedExclusiveAndNV ( global highp 3-component vector of uint) -0:317 vector swizzle ( temp highp 3-component vector of uint) -0:317 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:317 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:317 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:317 Constant: -0:317 2 (const int) -0:317 Constant: -0:317 2 (const int) -0:317 Sequence -0:317 Constant: -0:317 0 (const int) -0:317 Constant: -0:317 1 (const int) -0:317 Constant: -0:317 2 (const int) -0:317 'ballot' ( temp highp 4-component vector of uint) -0:318 move second child to first child ( temp highp 4-component vector of uint) -0:318 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:318 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:318 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:318 Constant: -0:318 2 (const int) -0:318 Constant: -0:318 2 (const int) -0:318 subgroupPartitionedExclusiveAndNV ( global highp 4-component vector of uint) -0:318 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:318 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:318 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:318 Constant: -0:318 3 (const int) -0:318 Constant: -0:318 2 (const int) -0:318 'ballot' ( temp highp 4-component vector of uint) -0:320 move second child to first child ( temp highp int) -0:320 direct index ( temp highp int) -0:320 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:320 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:320 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:320 Constant: -0:320 3 (const int) -0:320 Constant: -0:320 1 (const int) -0:320 Constant: -0:320 0 (const int) -0:320 Convert bool to int ( temp highp int) -0:320 subgroupPartitionedExclusiveAndNV ( global bool, operation at highp) -0:320 Compare Less Than ( temp bool) -0:320 direct index ( temp highp int) -0:320 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:320 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:320 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:320 Constant: -0:320 0 (const int) -0:320 Constant: -0:320 1 (const int) -0:320 Constant: -0:320 0 (const int) -0:320 Constant: -0:320 0 (const int) -0:320 'ballot' ( temp highp 4-component vector of uint) -0:321 move second child to first child ( temp highp 2-component vector of int) -0:321 vector swizzle ( temp highp 2-component vector of int) -0:321 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:321 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:321 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:321 Constant: -0:321 3 (const int) -0:321 Constant: -0:321 1 (const int) -0:321 Sequence -0:321 Constant: -0:321 0 (const int) -0:321 Constant: -0:321 1 (const int) -0:321 Convert bool to int ( temp highp 2-component vector of int) -0:321 subgroupPartitionedExclusiveAndNV ( global 2-component vector of bool, operation at highp) -0:321 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:321 vector swizzle ( temp highp 2-component vector of int) -0:321 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:321 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:321 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:321 Constant: -0:321 1 (const int) -0:321 Constant: -0:321 1 (const int) -0:321 Sequence -0:321 Constant: -0:321 0 (const int) -0:321 Constant: -0:321 1 (const int) -0:321 Constant: -0:321 0 (const int) -0:321 0 (const int) -0:321 'ballot' ( temp highp 4-component vector of uint) -0:322 move second child to first child ( temp highp 3-component vector of int) -0:322 vector swizzle ( temp highp 3-component vector of int) -0:322 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:322 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:322 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:322 Constant: -0:322 3 (const int) -0:322 Constant: -0:322 1 (const int) -0:322 Sequence -0:322 Constant: -0:322 0 (const int) -0:322 Constant: -0:322 1 (const int) -0:322 Constant: -0:322 2 (const int) -0:322 Convert bool to int ( temp highp 3-component vector of int) -0:322 subgroupPartitionedExclusiveAndNV ( global 3-component vector of bool, operation at highp) -0:322 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:322 vector swizzle ( temp highp 3-component vector of int) -0:322 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:322 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:322 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:322 Constant: -0:322 1 (const int) -0:322 Constant: -0:322 1 (const int) -0:322 Sequence -0:322 Constant: -0:322 0 (const int) -0:322 Constant: -0:322 1 (const int) -0:322 Constant: -0:322 2 (const int) -0:322 Constant: -0:322 0 (const int) -0:322 0 (const int) -0:322 0 (const int) -0:322 'ballot' ( temp highp 4-component vector of uint) -0:323 move second child to first child ( temp highp 4-component vector of int) -0:323 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:323 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:323 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:323 Constant: -0:323 3 (const int) -0:323 Constant: -0:323 1 (const int) -0:323 Convert bool to int ( temp highp 4-component vector of int) -0:323 subgroupPartitionedExclusiveAndNV ( global 4-component vector of bool, operation at highp) -0:323 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:323 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:323 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:323 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:323 Constant: -0:323 1 (const int) -0:323 Constant: -0:323 1 (const int) -0:323 Constant: -0:323 0 (const int) -0:323 0 (const int) -0:323 0 (const int) -0:323 0 (const int) -0:323 'ballot' ( temp highp 4-component vector of uint) -0:325 move second child to first child ( temp highp int) -0:325 direct index ( temp highp int) -0:325 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:325 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:325 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:325 Constant: -0:325 3 (const int) -0:325 Constant: -0:325 1 (const int) -0:325 Constant: -0:325 0 (const int) -0:325 subgroupPartitionedExclusiveOrNV ( global highp int) -0:325 direct index ( temp highp int) -0:325 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:325 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:325 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:325 Constant: -0:325 0 (const int) -0:325 Constant: -0:325 1 (const int) -0:325 Constant: -0:325 0 (const int) -0:325 'ballot' ( temp highp 4-component vector of uint) -0:326 move second child to first child ( temp highp 2-component vector of int) -0:326 vector swizzle ( temp highp 2-component vector of int) -0:326 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:326 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:326 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:326 Constant: -0:326 3 (const int) -0:326 Constant: -0:326 1 (const int) -0:326 Sequence -0:326 Constant: -0:326 0 (const int) -0:326 Constant: -0:326 1 (const int) -0:326 subgroupPartitionedExclusiveOrNV ( global highp 2-component vector of int) -0:326 vector swizzle ( temp highp 2-component vector of int) -0:326 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:326 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:326 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:326 Constant: -0:326 1 (const int) -0:326 Constant: -0:326 1 (const int) -0:326 Sequence -0:326 Constant: -0:326 0 (const int) -0:326 Constant: -0:326 1 (const int) -0:326 'ballot' ( temp highp 4-component vector of uint) -0:327 move second child to first child ( temp highp 3-component vector of int) -0:327 vector swizzle ( temp highp 3-component vector of int) -0:327 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:327 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:327 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:327 Constant: -0:327 3 (const int) -0:327 Constant: -0:327 1 (const int) -0:327 Sequence -0:327 Constant: -0:327 0 (const int) -0:327 Constant: -0:327 1 (const int) -0:327 Constant: -0:327 2 (const int) -0:327 subgroupPartitionedExclusiveOrNV ( global highp 3-component vector of int) -0:327 vector swizzle ( temp highp 3-component vector of int) -0:327 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:327 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:327 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:327 Constant: -0:327 2 (const int) -0:327 Constant: -0:327 1 (const int) -0:327 Sequence -0:327 Constant: -0:327 0 (const int) -0:327 Constant: -0:327 1 (const int) -0:327 Constant: -0:327 2 (const int) -0:327 'ballot' ( temp highp 4-component vector of uint) -0:328 move second child to first child ( temp highp 4-component vector of int) -0:328 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:328 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:328 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:328 Constant: -0:328 3 (const int) -0:328 Constant: -0:328 1 (const int) -0:328 subgroupPartitionedExclusiveOrNV ( global highp 4-component vector of int) -0:328 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:328 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:328 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:328 Constant: -0:328 3 (const int) -0:328 Constant: -0:328 1 (const int) -0:328 'ballot' ( temp highp 4-component vector of uint) -0:330 move second child to first child ( temp highp uint) -0:330 direct index ( temp highp uint) -0:330 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:330 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:330 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:330 Constant: -0:330 3 (const int) -0:330 Constant: -0:330 2 (const int) -0:330 Constant: -0:330 0 (const int) -0:330 subgroupPartitionedExclusiveOrNV ( global highp uint) -0:330 direct index ( temp highp uint) -0:330 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:330 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:330 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:330 Constant: -0:330 0 (const int) -0:330 Constant: -0:330 2 (const int) -0:330 Constant: -0:330 0 (const int) -0:330 'ballot' ( temp highp 4-component vector of uint) -0:331 move second child to first child ( temp highp 2-component vector of uint) -0:331 vector swizzle ( temp highp 2-component vector of uint) -0:331 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:331 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:331 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:331 Constant: -0:331 3 (const int) -0:331 Constant: -0:331 2 (const int) -0:331 Sequence -0:331 Constant: -0:331 0 (const int) -0:331 Constant: -0:331 1 (const int) -0:331 subgroupPartitionedExclusiveOrNV ( global highp 2-component vector of uint) -0:331 vector swizzle ( temp highp 2-component vector of uint) -0:331 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:331 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:331 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:331 Constant: -0:331 1 (const int) -0:331 Constant: -0:331 2 (const int) -0:331 Sequence -0:331 Constant: -0:331 0 (const int) -0:331 Constant: -0:331 1 (const int) -0:331 'ballot' ( temp highp 4-component vector of uint) -0:332 move second child to first child ( temp highp 3-component vector of uint) -0:332 vector swizzle ( temp highp 3-component vector of uint) -0:332 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:332 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:332 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:332 Constant: -0:332 3 (const int) -0:332 Constant: -0:332 2 (const int) -0:332 Sequence -0:332 Constant: -0:332 0 (const int) -0:332 Constant: -0:332 1 (const int) -0:332 Constant: -0:332 2 (const int) -0:332 subgroupPartitionedExclusiveOrNV ( global highp 3-component vector of uint) -0:332 vector swizzle ( temp highp 3-component vector of uint) -0:332 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:332 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:332 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:332 Constant: -0:332 2 (const int) -0:332 Constant: -0:332 2 (const int) -0:332 Sequence -0:332 Constant: -0:332 0 (const int) -0:332 Constant: -0:332 1 (const int) -0:332 Constant: -0:332 2 (const int) -0:332 'ballot' ( temp highp 4-component vector of uint) -0:333 move second child to first child ( temp highp 4-component vector of uint) -0:333 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:333 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:333 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:333 Constant: -0:333 3 (const int) -0:333 Constant: -0:333 2 (const int) -0:333 subgroupPartitionedExclusiveOrNV ( global highp 4-component vector of uint) -0:333 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:333 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:333 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:333 Constant: -0:333 3 (const int) -0:333 Constant: -0:333 2 (const int) -0:333 'ballot' ( temp highp 4-component vector of uint) -0:335 move second child to first child ( temp highp int) -0:335 direct index ( temp highp int) -0:335 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:335 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:335 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:335 Constant: -0:335 3 (const int) -0:335 Constant: -0:335 1 (const int) -0:335 Constant: -0:335 0 (const int) -0:335 Convert bool to int ( temp highp int) -0:335 subgroupPartitionedExclusiveOrNV ( global bool, operation at highp) -0:335 Compare Less Than ( temp bool) -0:335 direct index ( temp highp int) -0:335 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:335 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:335 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:335 Constant: -0:335 0 (const int) -0:335 Constant: -0:335 1 (const int) -0:335 Constant: -0:335 0 (const int) -0:335 Constant: -0:335 0 (const int) -0:335 'ballot' ( temp highp 4-component vector of uint) -0:336 move second child to first child ( temp highp 2-component vector of int) -0:336 vector swizzle ( temp highp 2-component vector of int) -0:336 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:336 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:336 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:336 Constant: -0:336 3 (const int) -0:336 Constant: -0:336 1 (const int) -0:336 Sequence -0:336 Constant: -0:336 0 (const int) -0:336 Constant: -0:336 1 (const int) -0:336 Convert bool to int ( temp highp 2-component vector of int) -0:336 subgroupPartitionedExclusiveOrNV ( global 2-component vector of bool, operation at highp) -0:336 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:336 vector swizzle ( temp highp 2-component vector of int) -0:336 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:336 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:336 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:336 Constant: -0:336 1 (const int) -0:336 Constant: -0:336 1 (const int) -0:336 Sequence -0:336 Constant: -0:336 0 (const int) -0:336 Constant: -0:336 1 (const int) -0:336 Constant: -0:336 0 (const int) -0:336 0 (const int) -0:336 'ballot' ( temp highp 4-component vector of uint) -0:337 move second child to first child ( temp highp 3-component vector of int) -0:337 vector swizzle ( temp highp 3-component vector of int) -0:337 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:337 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:337 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:337 Constant: -0:337 3 (const int) -0:337 Constant: -0:337 1 (const int) -0:337 Sequence -0:337 Constant: -0:337 0 (const int) -0:337 Constant: -0:337 1 (const int) -0:337 Constant: -0:337 2 (const int) -0:337 Convert bool to int ( temp highp 3-component vector of int) -0:337 subgroupPartitionedExclusiveOrNV ( global 3-component vector of bool, operation at highp) -0:337 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:337 vector swizzle ( temp highp 3-component vector of int) -0:337 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:337 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:337 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:337 Constant: -0:337 1 (const int) -0:337 Constant: -0:337 1 (const int) -0:337 Sequence -0:337 Constant: -0:337 0 (const int) -0:337 Constant: -0:337 1 (const int) -0:337 Constant: -0:337 2 (const int) -0:337 Constant: -0:337 0 (const int) -0:337 0 (const int) -0:337 0 (const int) -0:337 'ballot' ( temp highp 4-component vector of uint) -0:338 move second child to first child ( temp highp 4-component vector of int) -0:338 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:338 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:338 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:338 Constant: -0:338 3 (const int) -0:338 Constant: -0:338 1 (const int) -0:338 Convert bool to int ( temp highp 4-component vector of int) -0:338 subgroupPartitionedExclusiveOrNV ( global 4-component vector of bool, operation at highp) -0:338 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:338 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:338 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:338 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:338 Constant: -0:338 1 (const int) -0:338 Constant: -0:338 1 (const int) -0:338 Constant: -0:338 0 (const int) -0:338 0 (const int) -0:338 0 (const int) -0:338 0 (const int) -0:338 'ballot' ( temp highp 4-component vector of uint) -0:340 move second child to first child ( temp highp int) -0:340 direct index ( temp highp int) -0:340 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:340 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:340 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:340 Constant: -0:340 3 (const int) -0:340 Constant: -0:340 1 (const int) -0:340 Constant: -0:340 0 (const int) -0:340 subgroupPartitionedExclusiveXorNV ( global highp int) -0:340 direct index ( temp highp int) -0:340 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:340 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:340 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:340 Constant: -0:340 0 (const int) -0:340 Constant: -0:340 1 (const int) -0:340 Constant: -0:340 0 (const int) -0:340 'ballot' ( temp highp 4-component vector of uint) -0:341 move second child to first child ( temp highp 2-component vector of int) -0:341 vector swizzle ( temp highp 2-component vector of int) -0:341 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:341 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:341 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:341 Constant: -0:341 3 (const int) -0:341 Constant: -0:341 1 (const int) -0:341 Sequence -0:341 Constant: -0:341 0 (const int) -0:341 Constant: -0:341 1 (const int) -0:341 subgroupPartitionedExclusiveXorNV ( global highp 2-component vector of int) -0:341 vector swizzle ( temp highp 2-component vector of int) -0:341 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:341 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:341 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:341 Constant: -0:341 1 (const int) -0:341 Constant: -0:341 1 (const int) -0:341 Sequence -0:341 Constant: -0:341 0 (const int) -0:341 Constant: -0:341 1 (const int) -0:341 'ballot' ( temp highp 4-component vector of uint) -0:342 move second child to first child ( temp highp 3-component vector of int) -0:342 vector swizzle ( temp highp 3-component vector of int) -0:342 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:342 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:342 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:342 Constant: -0:342 3 (const int) -0:342 Constant: -0:342 1 (const int) -0:342 Sequence -0:342 Constant: -0:342 0 (const int) -0:342 Constant: -0:342 1 (const int) -0:342 Constant: -0:342 2 (const int) -0:342 subgroupPartitionedExclusiveXorNV ( global highp 3-component vector of int) -0:342 vector swizzle ( temp highp 3-component vector of int) -0:342 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:342 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:342 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:342 Constant: -0:342 2 (const int) -0:342 Constant: -0:342 1 (const int) -0:342 Sequence -0:342 Constant: -0:342 0 (const int) -0:342 Constant: -0:342 1 (const int) -0:342 Constant: -0:342 2 (const int) -0:342 'ballot' ( temp highp 4-component vector of uint) -0:343 move second child to first child ( temp highp 4-component vector of int) -0:343 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:343 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:343 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:343 Constant: -0:343 3 (const int) -0:343 Constant: -0:343 1 (const int) -0:343 subgroupPartitionedExclusiveXorNV ( global highp 4-component vector of int) -0:343 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:343 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:343 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:343 Constant: -0:343 3 (const int) -0:343 Constant: -0:343 1 (const int) -0:343 'ballot' ( temp highp 4-component vector of uint) -0:345 move second child to first child ( temp highp uint) -0:345 direct index ( temp highp uint) -0:345 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:345 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:345 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:345 Constant: -0:345 0 (const int) -0:345 Constant: -0:345 2 (const int) -0:345 Constant: -0:345 0 (const int) -0:345 subgroupPartitionedExclusiveXorNV ( global highp uint) -0:345 direct index ( temp highp uint) -0:345 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:345 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:345 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:345 Constant: -0:345 0 (const int) -0:345 Constant: -0:345 2 (const int) -0:345 Constant: -0:345 0 (const int) -0:345 'ballot' ( temp highp 4-component vector of uint) -0:346 move second child to first child ( temp highp 2-component vector of uint) -0:346 vector swizzle ( temp highp 2-component vector of uint) -0:346 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:346 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:346 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:346 Constant: -0:346 0 (const int) -0:346 Constant: -0:346 2 (const int) -0:346 Sequence -0:346 Constant: -0:346 0 (const int) -0:346 Constant: -0:346 1 (const int) -0:346 subgroupPartitionedExclusiveXorNV ( global highp 2-component vector of uint) -0:346 vector swizzle ( temp highp 2-component vector of uint) -0:346 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:346 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:346 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:346 Constant: -0:346 1 (const int) -0:346 Constant: -0:346 2 (const int) -0:346 Sequence -0:346 Constant: -0:346 0 (const int) -0:346 Constant: -0:346 1 (const int) -0:346 'ballot' ( temp highp 4-component vector of uint) -0:347 move second child to first child ( temp highp 3-component vector of uint) -0:347 vector swizzle ( temp highp 3-component vector of uint) -0:347 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:347 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:347 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:347 Constant: -0:347 0 (const int) -0:347 Constant: -0:347 2 (const int) -0:347 Sequence -0:347 Constant: -0:347 0 (const int) -0:347 Constant: -0:347 1 (const int) -0:347 Constant: -0:347 2 (const int) -0:347 subgroupPartitionedExclusiveXorNV ( global highp 3-component vector of uint) -0:347 vector swizzle ( temp highp 3-component vector of uint) -0:347 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:347 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:347 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:347 Constant: -0:347 2 (const int) -0:347 Constant: -0:347 2 (const int) -0:347 Sequence -0:347 Constant: -0:347 0 (const int) -0:347 Constant: -0:347 1 (const int) -0:347 Constant: -0:347 2 (const int) -0:347 'ballot' ( temp highp 4-component vector of uint) -0:348 move second child to first child ( temp highp 4-component vector of uint) -0:348 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:348 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:348 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:348 Constant: -0:348 0 (const int) -0:348 Constant: -0:348 2 (const int) -0:348 subgroupPartitionedExclusiveXorNV ( global highp 4-component vector of uint) -0:348 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:348 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:348 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:348 Constant: -0:348 3 (const int) -0:348 Constant: -0:348 2 (const int) -0:348 'ballot' ( temp highp 4-component vector of uint) -0:350 move second child to first child ( temp highp int) -0:350 direct index ( temp highp int) -0:350 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:350 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:350 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:350 Constant: -0:350 0 (const int) -0:350 Constant: -0:350 1 (const int) -0:350 Constant: -0:350 0 (const int) -0:350 Convert bool to int ( temp highp int) -0:350 subgroupPartitionedExclusiveXorNV ( global bool, operation at highp) -0:350 Compare Less Than ( temp bool) -0:350 direct index ( temp highp int) -0:350 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:350 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:350 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:350 Constant: -0:350 0 (const int) -0:350 Constant: -0:350 1 (const int) -0:350 Constant: -0:350 0 (const int) -0:350 Constant: -0:350 0 (const int) -0:350 'ballot' ( temp highp 4-component vector of uint) -0:351 move second child to first child ( temp highp 2-component vector of int) -0:351 vector swizzle ( temp highp 2-component vector of int) -0:351 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:351 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:351 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:351 Constant: -0:351 0 (const int) -0:351 Constant: -0:351 1 (const int) -0:351 Sequence -0:351 Constant: -0:351 0 (const int) -0:351 Constant: -0:351 1 (const int) -0:351 Convert bool to int ( temp highp 2-component vector of int) -0:351 subgroupPartitionedExclusiveXorNV ( global 2-component vector of bool, operation at highp) -0:351 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:351 vector swizzle ( temp highp 2-component vector of int) -0:351 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:351 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:351 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:351 Constant: -0:351 1 (const int) -0:351 Constant: -0:351 1 (const int) -0:351 Sequence -0:351 Constant: -0:351 0 (const int) -0:351 Constant: -0:351 1 (const int) -0:351 Constant: -0:351 0 (const int) -0:351 0 (const int) -0:351 'ballot' ( temp highp 4-component vector of uint) -0:352 move second child to first child ( temp highp 3-component vector of int) -0:352 vector swizzle ( temp highp 3-component vector of int) -0:352 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:352 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:352 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:352 Constant: -0:352 0 (const int) -0:352 Constant: -0:352 1 (const int) -0:352 Sequence -0:352 Constant: -0:352 0 (const int) -0:352 Constant: -0:352 1 (const int) -0:352 Constant: -0:352 2 (const int) -0:352 Convert bool to int ( temp highp 3-component vector of int) -0:352 subgroupPartitionedExclusiveXorNV ( global 3-component vector of bool, operation at highp) -0:352 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:352 vector swizzle ( temp highp 3-component vector of int) -0:352 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:352 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:352 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:352 Constant: -0:352 1 (const int) -0:352 Constant: -0:352 1 (const int) -0:352 Sequence -0:352 Constant: -0:352 0 (const int) -0:352 Constant: -0:352 1 (const int) -0:352 Constant: -0:352 2 (const int) -0:352 Constant: -0:352 0 (const int) -0:352 0 (const int) -0:352 0 (const int) -0:352 'ballot' ( temp highp 4-component vector of uint) -0:353 move second child to first child ( temp highp 4-component vector of int) -0:353 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:353 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:353 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:353 Constant: -0:353 0 (const int) -0:353 Constant: -0:353 1 (const int) -0:353 Convert bool to int ( temp highp 4-component vector of int) -0:353 subgroupPartitionedExclusiveXorNV ( global 4-component vector of bool, operation at highp) -0:353 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:353 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:353 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:353 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:353 Constant: -0:353 1 (const int) -0:353 Constant: -0:353 1 (const int) -0:353 Constant: -0:353 0 (const int) -0:353 0 (const int) -0:353 0 (const int) -0:353 0 (const int) -0:353 'ballot' ( temp highp 4-component vector of uint) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const highp 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) - diff --git a/deps/glslang/Test/baseResults/glsl.es320.subgroupQuad.comp.out b/deps/glslang/Test/baseResults/glsl.es320.subgroupQuad.comp.out deleted file mode 100644 index 1df8d7f9..00000000 --- a/deps/glslang/Test/baseResults/glsl.es320.subgroupQuad.comp.out +++ /dev/null @@ -1,3429 +0,0 @@ -glsl.es320.subgroupQuad.comp -Shader version: 320 -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_quad -local_size = (8, 1, 1) -0:? Sequence -0:14 Function Definition: main( ( global void) -0:14 Function Parameters: -0:16 Sequence -0:16 Sequence -0:16 move second child to first child ( temp highp uint) -0:16 'invocation' ( temp highp uint) -0:16 mod ( temp mediump uint) -0:16 add ( temp mediump uint) -0:16 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID) -0:16 'gl_SubgroupSize' ( in mediump uint SubgroupSize) -0:16 Constant: -0:16 4 (const uint) -0:18 move second child to first child ( temp highp float) -0:18 direct index ( temp highp float) -0:18 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:18 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 subgroupQuadBroadcast ( global highp float) -0:18 direct index ( temp highp float) -0:18 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:18 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 1 (const uint) -0:19 move second child to first child ( temp highp 2-component vector of float) -0:19 vector swizzle ( temp highp 2-component vector of float) -0:19 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:19 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 Sequence -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const int) -0:19 subgroupQuadBroadcast ( global highp 2-component vector of float) -0:19 vector swizzle ( temp highp 2-component vector of float) -0:19 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:19 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 Constant: -0:19 1 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 Sequence -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const int) -0:19 Constant: -0:19 1 (const uint) -0:20 move second child to first child ( temp highp 3-component vector of float) -0:20 vector swizzle ( temp highp 3-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:20 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 2 (const int) -0:20 subgroupQuadBroadcast ( global highp 3-component vector of float) -0:20 vector swizzle ( temp highp 3-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:20 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 Constant: -0:20 2 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 2 (const int) -0:20 Constant: -0:20 1 (const uint) -0:21 move second child to first child ( temp highp 4-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 subgroupQuadBroadcast ( global highp 4-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 Constant: -0:21 3 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const uint) -0:23 move second child to first child ( temp highp int) -0:23 direct index ( temp highp int) -0:23 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 0 (const int) -0:23 subgroupQuadBroadcast ( global highp int) -0:23 direct index ( temp highp int) -0:23 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 1 (const uint) -0:24 move second child to first child ( temp highp 2-component vector of int) -0:24 vector swizzle ( temp highp 2-component vector of int) -0:24 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 Sequence -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 subgroupQuadBroadcast ( global highp 2-component vector of int) -0:24 vector swizzle ( temp highp 2-component vector of int) -0:24 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 Sequence -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 1 (const uint) -0:25 move second child to first child ( temp highp 3-component vector of int) -0:25 vector swizzle ( temp highp 3-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 subgroupQuadBroadcast ( global highp 3-component vector of int) -0:25 vector swizzle ( temp highp 3-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 Constant: -0:25 2 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 Constant: -0:25 1 (const uint) -0:26 move second child to first child ( temp highp 4-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 subgroupQuadBroadcast ( global highp 4-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 Constant: -0:26 3 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 1 (const uint) -0:28 move second child to first child ( temp highp uint) -0:28 direct index ( temp highp uint) -0:28 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 2 (const int) -0:28 Constant: -0:28 0 (const int) -0:28 subgroupQuadBroadcast ( global highp uint) -0:28 direct index ( temp highp uint) -0:28 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 2 (const int) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 1 (const uint) -0:29 move second child to first child ( temp highp 2-component vector of uint) -0:29 vector swizzle ( temp highp 2-component vector of uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 2 (const int) -0:29 Sequence -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 1 (const int) -0:29 subgroupQuadBroadcast ( global highp 2-component vector of uint) -0:29 vector swizzle ( temp highp 2-component vector of uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 Constant: -0:29 1 (const int) -0:29 Constant: -0:29 2 (const int) -0:29 Sequence -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 1 (const int) -0:29 Constant: -0:29 1 (const uint) -0:30 move second child to first child ( temp highp 3-component vector of uint) -0:30 vector swizzle ( temp highp 3-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:30 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 subgroupQuadBroadcast ( global highp 3-component vector of uint) -0:30 vector swizzle ( temp highp 3-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:30 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 Constant: -0:30 2 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 Constant: -0:30 1 (const uint) -0:31 move second child to first child ( temp highp 4-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 subgroupQuadBroadcast ( global highp 4-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 Constant: -0:31 3 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 Constant: -0:31 1 (const uint) -0:33 move second child to first child ( temp highp int) -0:33 direct index ( temp highp int) -0:33 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 Convert bool to int ( temp highp int) -0:33 subgroupQuadBroadcast ( global bool) -0:33 Compare Less Than ( temp bool) -0:33 direct index ( temp highp int) -0:33 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 1 (const uint) -0:34 move second child to first child ( temp highp 2-component vector of int) -0:34 vector swizzle ( temp highp 2-component vector of int) -0:34 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 Constant: -0:34 1 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 Sequence -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 Convert bool to int ( temp highp 2-component vector of int) -0:34 subgroupQuadBroadcast ( global 2-component vector of bool) -0:34 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:34 vector swizzle ( temp highp 2-component vector of int) -0:34 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 Constant: -0:34 1 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 Sequence -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 0 (const int) -0:34 Constant: -0:34 1 (const uint) -0:35 move second child to first child ( temp highp 3-component vector of int) -0:35 vector swizzle ( temp highp 3-component vector of int) -0:35 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 2 (const int) -0:35 Convert bool to int ( temp highp 3-component vector of int) -0:35 subgroupQuadBroadcast ( global 3-component vector of bool) -0:35 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:35 vector swizzle ( temp highp 3-component vector of int) -0:35 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 2 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 0 (const int) -0:35 0 (const int) -0:35 Constant: -0:35 1 (const uint) -0:36 move second child to first child ( temp highp 4-component vector of int) -0:36 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Convert bool to int ( temp highp 4-component vector of int) -0:36 subgroupQuadBroadcast ( global 4-component vector of bool) -0:36 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:36 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 0 (const int) -0:36 0 (const int) -0:36 0 (const int) -0:36 Constant: -0:36 1 (const uint) -0:38 move second child to first child ( temp highp float) -0:38 direct index ( temp highp float) -0:38 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 Constant: -0:38 1 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 subgroupQuadSwapHorizontal ( global highp float) -0:38 direct index ( temp highp float) -0:38 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 0 (const int) -0:39 move second child to first child ( temp highp 2-component vector of float) -0:39 vector swizzle ( temp highp 2-component vector of float) -0:39 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 Sequence -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 subgroupQuadSwapHorizontal ( global highp 2-component vector of float) -0:39 vector swizzle ( temp highp 2-component vector of float) -0:39 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 Sequence -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:40 move second child to first child ( temp highp 3-component vector of float) -0:40 vector swizzle ( temp highp 3-component vector of float) -0:40 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 2 (const int) -0:40 subgroupQuadSwapHorizontal ( global highp 3-component vector of float) -0:40 vector swizzle ( temp highp 3-component vector of float) -0:40 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 Constant: -0:40 2 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 2 (const int) -0:41 move second child to first child ( temp highp 4-component vector of float) -0:41 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 0 (const int) -0:41 subgroupQuadSwapHorizontal ( global highp 4-component vector of float) -0:41 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 Constant: -0:41 3 (const int) -0:41 Constant: -0:41 0 (const int) -0:43 move second child to first child ( temp highp int) -0:43 direct index ( temp highp int) -0:43 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:43 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 Constant: -0:43 1 (const int) -0:43 Constant: -0:43 1 (const int) -0:43 Constant: -0:43 0 (const int) -0:43 subgroupQuadSwapHorizontal ( global highp int) -0:43 direct index ( temp highp int) -0:43 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:43 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 Constant: -0:43 0 (const int) -0:43 Constant: -0:43 1 (const int) -0:43 Constant: -0:43 0 (const int) -0:44 move second child to first child ( temp highp 2-component vector of int) -0:44 vector swizzle ( temp highp 2-component vector of int) -0:44 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 Constant: -0:44 1 (const int) -0:44 Constant: -0:44 1 (const int) -0:44 Sequence -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 1 (const int) -0:44 subgroupQuadSwapHorizontal ( global highp 2-component vector of int) -0:44 vector swizzle ( temp highp 2-component vector of int) -0:44 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 Constant: -0:44 1 (const int) -0:44 Constant: -0:44 1 (const int) -0:44 Sequence -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 1 (const int) -0:45 move second child to first child ( temp highp 3-component vector of int) -0:45 vector swizzle ( temp highp 3-component vector of int) -0:45 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 subgroupQuadSwapHorizontal ( global highp 3-component vector of int) -0:45 vector swizzle ( temp highp 3-component vector of int) -0:45 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 Constant: -0:45 2 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 2 (const int) -0:46 move second child to first child ( temp highp 4-component vector of int) -0:46 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 subgroupQuadSwapHorizontal ( global highp 4-component vector of int) -0:46 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 Constant: -0:46 3 (const int) -0:46 Constant: -0:46 1 (const int) -0:48 move second child to first child ( temp highp uint) -0:48 direct index ( temp highp uint) -0:48 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:48 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 Constant: -0:48 1 (const int) -0:48 Constant: -0:48 2 (const int) -0:48 Constant: -0:48 0 (const int) -0:48 subgroupQuadSwapHorizontal ( global highp uint) -0:48 direct index ( temp highp uint) -0:48 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:48 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 Constant: -0:48 0 (const int) -0:48 Constant: -0:48 2 (const int) -0:48 Constant: -0:48 0 (const int) -0:49 move second child to first child ( temp highp 2-component vector of uint) -0:49 vector swizzle ( temp highp 2-component vector of uint) -0:49 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:49 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 Constant: -0:49 1 (const int) -0:49 Constant: -0:49 2 (const int) -0:49 Sequence -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 1 (const int) -0:49 subgroupQuadSwapHorizontal ( global highp 2-component vector of uint) -0:49 vector swizzle ( temp highp 2-component vector of uint) -0:49 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:49 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 Constant: -0:49 1 (const int) -0:49 Constant: -0:49 2 (const int) -0:49 Sequence -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 1 (const int) -0:50 move second child to first child ( temp highp 3-component vector of uint) -0:50 vector swizzle ( temp highp 3-component vector of uint) -0:50 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 subgroupQuadSwapHorizontal ( global highp 3-component vector of uint) -0:50 vector swizzle ( temp highp 3-component vector of uint) -0:50 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 Constant: -0:50 2 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 2 (const int) -0:51 move second child to first child ( temp highp 4-component vector of uint) -0:51 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 2 (const int) -0:51 subgroupQuadSwapHorizontal ( global highp 4-component vector of uint) -0:51 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 Constant: -0:51 3 (const int) -0:51 Constant: -0:51 2 (const int) -0:53 move second child to first child ( temp highp int) -0:53 direct index ( temp highp int) -0:53 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:53 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 Constant: -0:53 2 (const int) -0:53 Constant: -0:53 1 (const int) -0:53 Constant: -0:53 0 (const int) -0:53 Convert bool to int ( temp highp int) -0:53 subgroupQuadSwapHorizontal ( global bool) -0:53 Compare Less Than ( temp bool) -0:53 direct index ( temp highp int) -0:53 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:53 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 Constant: -0:53 0 (const int) -0:53 Constant: -0:53 1 (const int) -0:53 Constant: -0:53 0 (const int) -0:53 Constant: -0:53 0 (const int) -0:54 move second child to first child ( temp highp 2-component vector of int) -0:54 vector swizzle ( temp highp 2-component vector of int) -0:54 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:54 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 Constant: -0:54 2 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 Sequence -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 Convert bool to int ( temp highp 2-component vector of int) -0:54 subgroupQuadSwapHorizontal ( global 2-component vector of bool) -0:54 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:54 vector swizzle ( temp highp 2-component vector of int) -0:54 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:54 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 Constant: -0:54 1 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 Sequence -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 0 (const int) -0:55 move second child to first child ( temp highp 3-component vector of int) -0:55 vector swizzle ( temp highp 3-component vector of int) -0:55 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 Constant: -0:55 2 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 2 (const int) -0:55 Convert bool to int ( temp highp 3-component vector of int) -0:55 subgroupQuadSwapHorizontal ( global 3-component vector of bool) -0:55 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:55 vector swizzle ( temp highp 3-component vector of int) -0:55 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 2 (const int) -0:55 Constant: -0:55 0 (const int) -0:55 0 (const int) -0:55 0 (const int) -0:56 move second child to first child ( temp highp 4-component vector of int) -0:56 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 Constant: -0:56 2 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Convert bool to int ( temp highp 4-component vector of int) -0:56 subgroupQuadSwapHorizontal ( global 4-component vector of bool) -0:56 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:56 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 0 (const int) -0:56 0 (const int) -0:56 0 (const int) -0:56 0 (const int) -0:58 move second child to first child ( temp highp float) -0:58 direct index ( temp highp float) -0:58 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:58 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 Constant: -0:58 2 (const int) -0:58 Constant: -0:58 0 (const int) -0:58 Constant: -0:58 0 (const int) -0:58 subgroupQuadSwapVertical ( global highp float) -0:58 direct index ( temp highp float) -0:58 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:58 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 Constant: -0:58 0 (const int) -0:58 Constant: -0:58 0 (const int) -0:58 Constant: -0:58 0 (const int) -0:59 move second child to first child ( temp highp 2-component vector of float) -0:59 vector swizzle ( temp highp 2-component vector of float) -0:59 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:59 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:59 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:59 Constant: -0:59 2 (const int) -0:59 Constant: -0:59 0 (const int) -0:59 Sequence -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 1 (const int) -0:59 subgroupQuadSwapVertical ( global highp 2-component vector of float) -0:59 vector swizzle ( temp highp 2-component vector of float) -0:59 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:59 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:59 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:59 Constant: -0:59 1 (const int) -0:59 Constant: -0:59 0 (const int) -0:59 Sequence -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 1 (const int) -0:60 move second child to first child ( temp highp 3-component vector of float) -0:60 vector swizzle ( temp highp 3-component vector of float) -0:60 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:60 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 Constant: -0:60 2 (const int) -0:60 Constant: -0:60 0 (const int) -0:60 Sequence -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 2 (const int) -0:60 subgroupQuadSwapVertical ( global highp 3-component vector of float) -0:60 vector swizzle ( temp highp 3-component vector of float) -0:60 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:60 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 Constant: -0:60 2 (const int) -0:60 Constant: -0:60 0 (const int) -0:60 Sequence -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 2 (const int) -0:61 move second child to first child ( temp highp 4-component vector of float) -0:61 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:61 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 Constant: -0:61 2 (const int) -0:61 Constant: -0:61 0 (const int) -0:61 subgroupQuadSwapVertical ( global highp 4-component vector of float) -0:61 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:61 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 Constant: -0:61 3 (const int) -0:61 Constant: -0:61 0 (const int) -0:63 move second child to first child ( temp highp int) -0:63 direct index ( temp highp int) -0:63 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:63 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 Constant: -0:63 2 (const int) -0:63 Constant: -0:63 1 (const int) -0:63 Constant: -0:63 0 (const int) -0:63 subgroupQuadSwapVertical ( global highp int) -0:63 direct index ( temp highp int) -0:63 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:63 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 Constant: -0:63 0 (const int) -0:63 Constant: -0:63 1 (const int) -0:63 Constant: -0:63 0 (const int) -0:64 move second child to first child ( temp highp 2-component vector of int) -0:64 vector swizzle ( temp highp 2-component vector of int) -0:64 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:64 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:64 Constant: -0:64 2 (const int) -0:64 Constant: -0:64 1 (const int) -0:64 Sequence -0:64 Constant: -0:64 0 (const int) -0:64 Constant: -0:64 1 (const int) -0:64 subgroupQuadSwapVertical ( global highp 2-component vector of int) -0:64 vector swizzle ( temp highp 2-component vector of int) -0:64 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:64 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:64 Constant: -0:64 1 (const int) -0:64 Constant: -0:64 1 (const int) -0:64 Sequence -0:64 Constant: -0:64 0 (const int) -0:64 Constant: -0:64 1 (const int) -0:65 move second child to first child ( temp highp 3-component vector of int) -0:65 vector swizzle ( temp highp 3-component vector of int) -0:65 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:65 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 Constant: -0:65 2 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Sequence -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Constant: -0:65 2 (const int) -0:65 subgroupQuadSwapVertical ( global highp 3-component vector of int) -0:65 vector swizzle ( temp highp 3-component vector of int) -0:65 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:65 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 Constant: -0:65 2 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Sequence -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Constant: -0:65 2 (const int) -0:66 move second child to first child ( temp highp 4-component vector of int) -0:66 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:66 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 Constant: -0:66 2 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 subgroupQuadSwapVertical ( global highp 4-component vector of int) -0:66 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:66 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 Constant: -0:66 3 (const int) -0:66 Constant: -0:66 1 (const int) -0:68 move second child to first child ( temp highp uint) -0:68 direct index ( temp highp uint) -0:68 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:68 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 Constant: -0:68 2 (const int) -0:68 Constant: -0:68 2 (const int) -0:68 Constant: -0:68 0 (const int) -0:68 subgroupQuadSwapVertical ( global highp uint) -0:68 direct index ( temp highp uint) -0:68 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:68 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 Constant: -0:68 0 (const int) -0:68 Constant: -0:68 2 (const int) -0:68 Constant: -0:68 0 (const int) -0:69 move second child to first child ( temp highp 2-component vector of uint) -0:69 vector swizzle ( temp highp 2-component vector of uint) -0:69 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:69 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:69 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:69 Constant: -0:69 2 (const int) -0:69 Constant: -0:69 2 (const int) -0:69 Sequence -0:69 Constant: -0:69 0 (const int) -0:69 Constant: -0:69 1 (const int) -0:69 subgroupQuadSwapVertical ( global highp 2-component vector of uint) -0:69 vector swizzle ( temp highp 2-component vector of uint) -0:69 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:69 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:69 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:69 Constant: -0:69 1 (const int) -0:69 Constant: -0:69 2 (const int) -0:69 Sequence -0:69 Constant: -0:69 0 (const int) -0:69 Constant: -0:69 1 (const int) -0:70 move second child to first child ( temp highp 3-component vector of uint) -0:70 vector swizzle ( temp highp 3-component vector of uint) -0:70 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:70 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 Constant: -0:70 2 (const int) -0:70 Constant: -0:70 2 (const int) -0:70 Sequence -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 1 (const int) -0:70 Constant: -0:70 2 (const int) -0:70 subgroupQuadSwapVertical ( global highp 3-component vector of uint) -0:70 vector swizzle ( temp highp 3-component vector of uint) -0:70 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:70 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 Constant: -0:70 2 (const int) -0:70 Constant: -0:70 2 (const int) -0:70 Sequence -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 1 (const int) -0:70 Constant: -0:70 2 (const int) -0:71 move second child to first child ( temp highp 4-component vector of uint) -0:71 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:71 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 Constant: -0:71 2 (const int) -0:71 Constant: -0:71 2 (const int) -0:71 subgroupQuadSwapVertical ( global highp 4-component vector of uint) -0:71 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:71 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 Constant: -0:71 3 (const int) -0:71 Constant: -0:71 2 (const int) -0:73 move second child to first child ( temp highp int) -0:73 direct index ( temp highp int) -0:73 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:73 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 Constant: -0:73 3 (const int) -0:73 Constant: -0:73 1 (const int) -0:73 Constant: -0:73 0 (const int) -0:73 Convert bool to int ( temp highp int) -0:73 subgroupQuadSwapVertical ( global bool) -0:73 Compare Less Than ( temp bool) -0:73 direct index ( temp highp int) -0:73 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:73 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 Constant: -0:73 0 (const int) -0:73 Constant: -0:73 1 (const int) -0:73 Constant: -0:73 0 (const int) -0:73 Constant: -0:73 0 (const int) -0:74 move second child to first child ( temp highp 2-component vector of int) -0:74 vector swizzle ( temp highp 2-component vector of int) -0:74 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:74 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:74 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:74 Constant: -0:74 3 (const int) -0:74 Constant: -0:74 1 (const int) -0:74 Sequence -0:74 Constant: -0:74 0 (const int) -0:74 Constant: -0:74 1 (const int) -0:74 Convert bool to int ( temp highp 2-component vector of int) -0:74 subgroupQuadSwapVertical ( global 2-component vector of bool) -0:74 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:74 vector swizzle ( temp highp 2-component vector of int) -0:74 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:74 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:74 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:74 Constant: -0:74 1 (const int) -0:74 Constant: -0:74 1 (const int) -0:74 Sequence -0:74 Constant: -0:74 0 (const int) -0:74 Constant: -0:74 1 (const int) -0:74 Constant: -0:74 0 (const int) -0:74 0 (const int) -0:75 move second child to first child ( temp highp 3-component vector of int) -0:75 vector swizzle ( temp highp 3-component vector of int) -0:75 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:75 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:75 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:75 Constant: -0:75 3 (const int) -0:75 Constant: -0:75 1 (const int) -0:75 Sequence -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 1 (const int) -0:75 Constant: -0:75 2 (const int) -0:75 Convert bool to int ( temp highp 3-component vector of int) -0:75 subgroupQuadSwapVertical ( global 3-component vector of bool) -0:75 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:75 vector swizzle ( temp highp 3-component vector of int) -0:75 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:75 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:75 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:75 Constant: -0:75 1 (const int) -0:75 Constant: -0:75 1 (const int) -0:75 Sequence -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 1 (const int) -0:75 Constant: -0:75 2 (const int) -0:75 Constant: -0:75 0 (const int) -0:75 0 (const int) -0:75 0 (const int) -0:76 move second child to first child ( temp highp 4-component vector of int) -0:76 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:76 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:76 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:76 Constant: -0:76 3 (const int) -0:76 Constant: -0:76 1 (const int) -0:76 Convert bool to int ( temp highp 4-component vector of int) -0:76 subgroupQuadSwapVertical ( global 4-component vector of bool) -0:76 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:76 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:76 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:76 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:76 Constant: -0:76 1 (const int) -0:76 Constant: -0:76 1 (const int) -0:76 Constant: -0:76 0 (const int) -0:76 0 (const int) -0:76 0 (const int) -0:76 0 (const int) -0:78 move second child to first child ( temp highp float) -0:78 direct index ( temp highp float) -0:78 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:78 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:78 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:78 Constant: -0:78 3 (const int) -0:78 Constant: -0:78 0 (const int) -0:78 Constant: -0:78 0 (const int) -0:78 subgroupQuadSwapDiagonal ( global highp float) -0:78 direct index ( temp highp float) -0:78 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:78 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:78 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:78 Constant: -0:78 0 (const int) -0:78 Constant: -0:78 0 (const int) -0:78 Constant: -0:78 0 (const int) -0:79 move second child to first child ( temp highp 2-component vector of float) -0:79 vector swizzle ( temp highp 2-component vector of float) -0:79 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:79 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:79 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:79 Constant: -0:79 3 (const int) -0:79 Constant: -0:79 0 (const int) -0:79 Sequence -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 1 (const int) -0:79 subgroupQuadSwapDiagonal ( global highp 2-component vector of float) -0:79 vector swizzle ( temp highp 2-component vector of float) -0:79 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:79 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:79 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:79 Constant: -0:79 1 (const int) -0:79 Constant: -0:79 0 (const int) -0:79 Sequence -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 1 (const int) -0:80 move second child to first child ( temp highp 3-component vector of float) -0:80 vector swizzle ( temp highp 3-component vector of float) -0:80 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:80 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:80 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:80 Constant: -0:80 3 (const int) -0:80 Constant: -0:80 0 (const int) -0:80 Sequence -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 1 (const int) -0:80 Constant: -0:80 2 (const int) -0:80 subgroupQuadSwapDiagonal ( global highp 3-component vector of float) -0:80 vector swizzle ( temp highp 3-component vector of float) -0:80 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:80 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:80 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:80 Constant: -0:80 2 (const int) -0:80 Constant: -0:80 0 (const int) -0:80 Sequence -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 1 (const int) -0:80 Constant: -0:80 2 (const int) -0:81 move second child to first child ( temp highp 4-component vector of float) -0:81 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:81 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:81 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:81 Constant: -0:81 3 (const int) -0:81 Constant: -0:81 0 (const int) -0:81 subgroupQuadSwapDiagonal ( global highp 4-component vector of float) -0:81 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:81 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:81 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:81 Constant: -0:81 3 (const int) -0:81 Constant: -0:81 0 (const int) -0:83 move second child to first child ( temp highp int) -0:83 direct index ( temp highp int) -0:83 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:83 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:83 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:83 Constant: -0:83 3 (const int) -0:83 Constant: -0:83 1 (const int) -0:83 Constant: -0:83 0 (const int) -0:83 subgroupQuadSwapDiagonal ( global highp int) -0:83 direct index ( temp highp int) -0:83 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:83 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:83 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -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:84 move second child to first child ( temp highp 2-component vector of int) -0:84 vector swizzle ( temp highp 2-component vector of int) -0:84 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:84 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:84 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:84 Constant: -0:84 3 (const int) -0:84 Constant: -0:84 1 (const int) -0:84 Sequence -0:84 Constant: -0:84 0 (const int) -0:84 Constant: -0:84 1 (const int) -0:84 subgroupQuadSwapDiagonal ( global highp 2-component vector of int) -0:84 vector swizzle ( temp highp 2-component vector of int) -0:84 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:84 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:84 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:84 Constant: -0:84 1 (const int) -0:84 Constant: -0:84 1 (const int) -0:84 Sequence -0:84 Constant: -0:84 0 (const int) -0:84 Constant: -0:84 1 (const int) -0:85 move second child to first child ( temp highp 3-component vector of int) -0:85 vector swizzle ( temp highp 3-component vector of int) -0:85 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:85 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:85 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:85 Constant: -0:85 3 (const int) -0:85 Constant: -0:85 1 (const int) -0:85 Sequence -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 1 (const int) -0:85 Constant: -0:85 2 (const int) -0:85 subgroupQuadSwapDiagonal ( global highp 3-component vector of int) -0:85 vector swizzle ( temp highp 3-component vector of int) -0:85 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:85 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:85 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:85 Constant: -0:85 2 (const int) -0:85 Constant: -0:85 1 (const int) -0:85 Sequence -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 1 (const int) -0:85 Constant: -0:85 2 (const int) -0:86 move second child to first child ( temp highp 4-component vector of int) -0:86 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:86 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:86 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:86 Constant: -0:86 3 (const int) -0:86 Constant: -0:86 1 (const int) -0:86 subgroupQuadSwapDiagonal ( global highp 4-component vector of int) -0:86 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:86 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:86 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:86 Constant: -0:86 3 (const int) -0:86 Constant: -0:86 1 (const int) -0:88 move second child to first child ( temp highp uint) -0:88 direct index ( temp highp uint) -0:88 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:88 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:88 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:88 Constant: -0:88 3 (const int) -0:88 Constant: -0:88 2 (const int) -0:88 Constant: -0:88 0 (const int) -0:88 subgroupQuadSwapDiagonal ( global highp uint) -0:88 direct index ( temp highp uint) -0:88 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:88 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:88 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:88 Constant: -0:88 0 (const int) -0:88 Constant: -0:88 2 (const int) -0:88 Constant: -0:88 0 (const int) -0:89 move second child to first child ( temp highp 2-component vector of uint) -0:89 vector swizzle ( temp highp 2-component vector of uint) -0:89 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:89 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:89 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:89 Constant: -0:89 3 (const int) -0:89 Constant: -0:89 2 (const int) -0:89 Sequence -0:89 Constant: -0:89 0 (const int) -0:89 Constant: -0:89 1 (const int) -0:89 subgroupQuadSwapDiagonal ( global highp 2-component vector of uint) -0:89 vector swizzle ( temp highp 2-component vector of uint) -0:89 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:89 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:89 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:89 Constant: -0:89 1 (const int) -0:89 Constant: -0:89 2 (const int) -0:89 Sequence -0:89 Constant: -0:89 0 (const int) -0:89 Constant: -0:89 1 (const int) -0:90 move second child to first child ( temp highp 3-component vector of uint) -0:90 vector swizzle ( temp highp 3-component vector of uint) -0:90 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:90 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:90 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:90 Constant: -0:90 3 (const int) -0:90 Constant: -0:90 2 (const int) -0:90 Sequence -0:90 Constant: -0:90 0 (const int) -0:90 Constant: -0:90 1 (const int) -0:90 Constant: -0:90 2 (const int) -0:90 subgroupQuadSwapDiagonal ( global highp 3-component vector of uint) -0:90 vector swizzle ( temp highp 3-component vector of uint) -0:90 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:90 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:90 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:90 Constant: -0:90 2 (const int) -0:90 Constant: -0:90 2 (const int) -0:90 Sequence -0:90 Constant: -0:90 0 (const int) -0:90 Constant: -0:90 1 (const int) -0:90 Constant: -0:90 2 (const int) -0:91 move second child to first child ( temp highp 4-component vector of uint) -0:91 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:91 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:91 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:91 Constant: -0:91 3 (const int) -0:91 Constant: -0:91 2 (const int) -0:91 subgroupQuadSwapDiagonal ( global highp 4-component vector of uint) -0:91 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:91 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:91 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:91 Constant: -0:91 3 (const int) -0:91 Constant: -0:91 2 (const int) -0:93 move second child to first child ( temp highp int) -0:93 direct index ( temp highp int) -0:93 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:93 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:93 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:93 Constant: -0:93 3 (const int) -0:93 Constant: -0:93 1 (const int) -0:93 Constant: -0:93 0 (const int) -0:93 Convert bool to int ( temp highp int) -0:93 subgroupQuadSwapDiagonal ( global bool) -0:93 Compare Less Than ( temp bool) -0:93 direct index ( temp highp int) -0:93 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:93 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:93 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:93 Constant: -0:93 0 (const int) -0:93 Constant: -0:93 1 (const int) -0:93 Constant: -0:93 0 (const int) -0:93 Constant: -0:93 0 (const int) -0:94 move second child to first child ( temp highp 2-component vector of int) -0:94 vector swizzle ( temp highp 2-component vector of int) -0:94 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:94 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:94 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:94 Constant: -0:94 3 (const int) -0:94 Constant: -0:94 1 (const int) -0:94 Sequence -0:94 Constant: -0:94 0 (const int) -0:94 Constant: -0:94 1 (const int) -0:94 Convert bool to int ( temp highp 2-component vector of int) -0:94 subgroupQuadSwapDiagonal ( global 2-component vector of bool) -0:94 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:94 vector swizzle ( temp highp 2-component vector of int) -0:94 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:94 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:94 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:94 Constant: -0:94 1 (const int) -0:94 Constant: -0:94 1 (const int) -0:94 Sequence -0:94 Constant: -0:94 0 (const int) -0:94 Constant: -0:94 1 (const int) -0:94 Constant: -0:94 0 (const int) -0:94 0 (const int) -0:95 move second child to first child ( temp highp 3-component vector of int) -0:95 vector swizzle ( temp highp 3-component vector of int) -0:95 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:95 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:95 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:95 Constant: -0:95 3 (const int) -0:95 Constant: -0:95 1 (const int) -0:95 Sequence -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 1 (const int) -0:95 Constant: -0:95 2 (const int) -0:95 Convert bool to int ( temp highp 3-component vector of int) -0:95 subgroupQuadSwapDiagonal ( global 3-component vector of bool) -0:95 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:95 vector swizzle ( temp highp 3-component vector of int) -0:95 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:95 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:95 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:95 Constant: -0:95 1 (const int) -0:95 Constant: -0:95 1 (const int) -0:95 Sequence -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 1 (const int) -0:95 Constant: -0:95 2 (const int) -0:95 Constant: -0:95 0 (const int) -0:95 0 (const int) -0:95 0 (const int) -0:96 move second child to first child ( temp highp 4-component vector of int) -0:96 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:96 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:96 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:96 Constant: -0:96 3 (const int) -0:96 Constant: -0:96 1 (const int) -0:96 Convert bool to int ( temp highp 4-component vector of int) -0:96 subgroupQuadSwapDiagonal ( global 4-component vector of bool) -0:96 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:96 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:96 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:96 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:96 Constant: -0:96 1 (const int) -0:96 Constant: -0:96 1 (const int) -0:96 Constant: -0:96 0 (const int) -0:96 0 (const int) -0:96 0 (const int) -0:96 0 (const int) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const highp 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) - - -Linked compute stage: - - -Shader version: 320 -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_quad -local_size = (8, 1, 1) -0:? Sequence -0:14 Function Definition: main( ( global void) -0:14 Function Parameters: -0:16 Sequence -0:16 Sequence -0:16 move second child to first child ( temp highp uint) -0:16 'invocation' ( temp highp uint) -0:16 mod ( temp mediump uint) -0:16 add ( temp mediump uint) -0:16 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID) -0:16 'gl_SubgroupSize' ( in mediump uint SubgroupSize) -0:16 Constant: -0:16 4 (const uint) -0:18 move second child to first child ( temp highp float) -0:18 direct index ( temp highp float) -0:18 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:18 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 subgroupQuadBroadcast ( global highp float) -0:18 direct index ( temp highp float) -0:18 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:18 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 1 (const uint) -0:19 move second child to first child ( temp highp 2-component vector of float) -0:19 vector swizzle ( temp highp 2-component vector of float) -0:19 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:19 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 Sequence -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const int) -0:19 subgroupQuadBroadcast ( global highp 2-component vector of float) -0:19 vector swizzle ( temp highp 2-component vector of float) -0:19 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:19 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 Constant: -0:19 1 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 Sequence -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const int) -0:19 Constant: -0:19 1 (const uint) -0:20 move second child to first child ( temp highp 3-component vector of float) -0:20 vector swizzle ( temp highp 3-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:20 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 2 (const int) -0:20 subgroupQuadBroadcast ( global highp 3-component vector of float) -0:20 vector swizzle ( temp highp 3-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:20 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 Constant: -0:20 2 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 2 (const int) -0:20 Constant: -0:20 1 (const uint) -0:21 move second child to first child ( temp highp 4-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 subgroupQuadBroadcast ( global highp 4-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 Constant: -0:21 3 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const uint) -0:23 move second child to first child ( temp highp int) -0:23 direct index ( temp highp int) -0:23 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 0 (const int) -0:23 subgroupQuadBroadcast ( global highp int) -0:23 direct index ( temp highp int) -0:23 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 1 (const uint) -0:24 move second child to first child ( temp highp 2-component vector of int) -0:24 vector swizzle ( temp highp 2-component vector of int) -0:24 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 Sequence -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 subgroupQuadBroadcast ( global highp 2-component vector of int) -0:24 vector swizzle ( temp highp 2-component vector of int) -0:24 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 Sequence -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 1 (const uint) -0:25 move second child to first child ( temp highp 3-component vector of int) -0:25 vector swizzle ( temp highp 3-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 subgroupQuadBroadcast ( global highp 3-component vector of int) -0:25 vector swizzle ( temp highp 3-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 Constant: -0:25 2 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 Constant: -0:25 1 (const uint) -0:26 move second child to first child ( temp highp 4-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 subgroupQuadBroadcast ( global highp 4-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 Constant: -0:26 3 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 1 (const uint) -0:28 move second child to first child ( temp highp uint) -0:28 direct index ( temp highp uint) -0:28 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 2 (const int) -0:28 Constant: -0:28 0 (const int) -0:28 subgroupQuadBroadcast ( global highp uint) -0:28 direct index ( temp highp uint) -0:28 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 2 (const int) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 1 (const uint) -0:29 move second child to first child ( temp highp 2-component vector of uint) -0:29 vector swizzle ( temp highp 2-component vector of uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 2 (const int) -0:29 Sequence -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 1 (const int) -0:29 subgroupQuadBroadcast ( global highp 2-component vector of uint) -0:29 vector swizzle ( temp highp 2-component vector of uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 Constant: -0:29 1 (const int) -0:29 Constant: -0:29 2 (const int) -0:29 Sequence -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 1 (const int) -0:29 Constant: -0:29 1 (const uint) -0:30 move second child to first child ( temp highp 3-component vector of uint) -0:30 vector swizzle ( temp highp 3-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:30 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 subgroupQuadBroadcast ( global highp 3-component vector of uint) -0:30 vector swizzle ( temp highp 3-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:30 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 Constant: -0:30 2 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 Constant: -0:30 1 (const uint) -0:31 move second child to first child ( temp highp 4-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 subgroupQuadBroadcast ( global highp 4-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 Constant: -0:31 3 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 Constant: -0:31 1 (const uint) -0:33 move second child to first child ( temp highp int) -0:33 direct index ( temp highp int) -0:33 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 Convert bool to int ( temp highp int) -0:33 subgroupQuadBroadcast ( global bool) -0:33 Compare Less Than ( temp bool) -0:33 direct index ( temp highp int) -0:33 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 1 (const uint) -0:34 move second child to first child ( temp highp 2-component vector of int) -0:34 vector swizzle ( temp highp 2-component vector of int) -0:34 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 Constant: -0:34 1 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 Sequence -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 Convert bool to int ( temp highp 2-component vector of int) -0:34 subgroupQuadBroadcast ( global 2-component vector of bool) -0:34 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:34 vector swizzle ( temp highp 2-component vector of int) -0:34 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 Constant: -0:34 1 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 Sequence -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 0 (const int) -0:34 Constant: -0:34 1 (const uint) -0:35 move second child to first child ( temp highp 3-component vector of int) -0:35 vector swizzle ( temp highp 3-component vector of int) -0:35 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 2 (const int) -0:35 Convert bool to int ( temp highp 3-component vector of int) -0:35 subgroupQuadBroadcast ( global 3-component vector of bool) -0:35 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:35 vector swizzle ( temp highp 3-component vector of int) -0:35 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 2 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 0 (const int) -0:35 0 (const int) -0:35 Constant: -0:35 1 (const uint) -0:36 move second child to first child ( temp highp 4-component vector of int) -0:36 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Convert bool to int ( temp highp 4-component vector of int) -0:36 subgroupQuadBroadcast ( global 4-component vector of bool) -0:36 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:36 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 0 (const int) -0:36 0 (const int) -0:36 0 (const int) -0:36 Constant: -0:36 1 (const uint) -0:38 move second child to first child ( temp highp float) -0:38 direct index ( temp highp float) -0:38 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 Constant: -0:38 1 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 subgroupQuadSwapHorizontal ( global highp float) -0:38 direct index ( temp highp float) -0:38 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 0 (const int) -0:39 move second child to first child ( temp highp 2-component vector of float) -0:39 vector swizzle ( temp highp 2-component vector of float) -0:39 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 Sequence -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 subgroupQuadSwapHorizontal ( global highp 2-component vector of float) -0:39 vector swizzle ( temp highp 2-component vector of float) -0:39 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 Sequence -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:40 move second child to first child ( temp highp 3-component vector of float) -0:40 vector swizzle ( temp highp 3-component vector of float) -0:40 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 2 (const int) -0:40 subgroupQuadSwapHorizontal ( global highp 3-component vector of float) -0:40 vector swizzle ( temp highp 3-component vector of float) -0:40 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 Constant: -0:40 2 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 2 (const int) -0:41 move second child to first child ( temp highp 4-component vector of float) -0:41 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 0 (const int) -0:41 subgroupQuadSwapHorizontal ( global highp 4-component vector of float) -0:41 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 Constant: -0:41 3 (const int) -0:41 Constant: -0:41 0 (const int) -0:43 move second child to first child ( temp highp int) -0:43 direct index ( temp highp int) -0:43 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:43 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 Constant: -0:43 1 (const int) -0:43 Constant: -0:43 1 (const int) -0:43 Constant: -0:43 0 (const int) -0:43 subgroupQuadSwapHorizontal ( global highp int) -0:43 direct index ( temp highp int) -0:43 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:43 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 Constant: -0:43 0 (const int) -0:43 Constant: -0:43 1 (const int) -0:43 Constant: -0:43 0 (const int) -0:44 move second child to first child ( temp highp 2-component vector of int) -0:44 vector swizzle ( temp highp 2-component vector of int) -0:44 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 Constant: -0:44 1 (const int) -0:44 Constant: -0:44 1 (const int) -0:44 Sequence -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 1 (const int) -0:44 subgroupQuadSwapHorizontal ( global highp 2-component vector of int) -0:44 vector swizzle ( temp highp 2-component vector of int) -0:44 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 Constant: -0:44 1 (const int) -0:44 Constant: -0:44 1 (const int) -0:44 Sequence -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 1 (const int) -0:45 move second child to first child ( temp highp 3-component vector of int) -0:45 vector swizzle ( temp highp 3-component vector of int) -0:45 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 subgroupQuadSwapHorizontal ( global highp 3-component vector of int) -0:45 vector swizzle ( temp highp 3-component vector of int) -0:45 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 Constant: -0:45 2 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 2 (const int) -0:46 move second child to first child ( temp highp 4-component vector of int) -0:46 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 subgroupQuadSwapHorizontal ( global highp 4-component vector of int) -0:46 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 Constant: -0:46 3 (const int) -0:46 Constant: -0:46 1 (const int) -0:48 move second child to first child ( temp highp uint) -0:48 direct index ( temp highp uint) -0:48 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:48 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 Constant: -0:48 1 (const int) -0:48 Constant: -0:48 2 (const int) -0:48 Constant: -0:48 0 (const int) -0:48 subgroupQuadSwapHorizontal ( global highp uint) -0:48 direct index ( temp highp uint) -0:48 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:48 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 Constant: -0:48 0 (const int) -0:48 Constant: -0:48 2 (const int) -0:48 Constant: -0:48 0 (const int) -0:49 move second child to first child ( temp highp 2-component vector of uint) -0:49 vector swizzle ( temp highp 2-component vector of uint) -0:49 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:49 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 Constant: -0:49 1 (const int) -0:49 Constant: -0:49 2 (const int) -0:49 Sequence -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 1 (const int) -0:49 subgroupQuadSwapHorizontal ( global highp 2-component vector of uint) -0:49 vector swizzle ( temp highp 2-component vector of uint) -0:49 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:49 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 Constant: -0:49 1 (const int) -0:49 Constant: -0:49 2 (const int) -0:49 Sequence -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 1 (const int) -0:50 move second child to first child ( temp highp 3-component vector of uint) -0:50 vector swizzle ( temp highp 3-component vector of uint) -0:50 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 subgroupQuadSwapHorizontal ( global highp 3-component vector of uint) -0:50 vector swizzle ( temp highp 3-component vector of uint) -0:50 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 Constant: -0:50 2 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 2 (const int) -0:51 move second child to first child ( temp highp 4-component vector of uint) -0:51 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 2 (const int) -0:51 subgroupQuadSwapHorizontal ( global highp 4-component vector of uint) -0:51 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 Constant: -0:51 3 (const int) -0:51 Constant: -0:51 2 (const int) -0:53 move second child to first child ( temp highp int) -0:53 direct index ( temp highp int) -0:53 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:53 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 Constant: -0:53 2 (const int) -0:53 Constant: -0:53 1 (const int) -0:53 Constant: -0:53 0 (const int) -0:53 Convert bool to int ( temp highp int) -0:53 subgroupQuadSwapHorizontal ( global bool) -0:53 Compare Less Than ( temp bool) -0:53 direct index ( temp highp int) -0:53 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:53 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 Constant: -0:53 0 (const int) -0:53 Constant: -0:53 1 (const int) -0:53 Constant: -0:53 0 (const int) -0:53 Constant: -0:53 0 (const int) -0:54 move second child to first child ( temp highp 2-component vector of int) -0:54 vector swizzle ( temp highp 2-component vector of int) -0:54 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:54 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 Constant: -0:54 2 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 Sequence -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 Convert bool to int ( temp highp 2-component vector of int) -0:54 subgroupQuadSwapHorizontal ( global 2-component vector of bool) -0:54 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:54 vector swizzle ( temp highp 2-component vector of int) -0:54 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:54 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 Constant: -0:54 1 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 Sequence -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 0 (const int) -0:55 move second child to first child ( temp highp 3-component vector of int) -0:55 vector swizzle ( temp highp 3-component vector of int) -0:55 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 Constant: -0:55 2 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 2 (const int) -0:55 Convert bool to int ( temp highp 3-component vector of int) -0:55 subgroupQuadSwapHorizontal ( global 3-component vector of bool) -0:55 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:55 vector swizzle ( temp highp 3-component vector of int) -0:55 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 2 (const int) -0:55 Constant: -0:55 0 (const int) -0:55 0 (const int) -0:55 0 (const int) -0:56 move second child to first child ( temp highp 4-component vector of int) -0:56 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 Constant: -0:56 2 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Convert bool to int ( temp highp 4-component vector of int) -0:56 subgroupQuadSwapHorizontal ( global 4-component vector of bool) -0:56 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:56 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 0 (const int) -0:56 0 (const int) -0:56 0 (const int) -0:56 0 (const int) -0:58 move second child to first child ( temp highp float) -0:58 direct index ( temp highp float) -0:58 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:58 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 Constant: -0:58 2 (const int) -0:58 Constant: -0:58 0 (const int) -0:58 Constant: -0:58 0 (const int) -0:58 subgroupQuadSwapVertical ( global highp float) -0:58 direct index ( temp highp float) -0:58 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:58 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:58 Constant: -0:58 0 (const int) -0:58 Constant: -0:58 0 (const int) -0:58 Constant: -0:58 0 (const int) -0:59 move second child to first child ( temp highp 2-component vector of float) -0:59 vector swizzle ( temp highp 2-component vector of float) -0:59 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:59 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:59 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:59 Constant: -0:59 2 (const int) -0:59 Constant: -0:59 0 (const int) -0:59 Sequence -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 1 (const int) -0:59 subgroupQuadSwapVertical ( global highp 2-component vector of float) -0:59 vector swizzle ( temp highp 2-component vector of float) -0:59 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:59 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:59 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:59 Constant: -0:59 1 (const int) -0:59 Constant: -0:59 0 (const int) -0:59 Sequence -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 1 (const int) -0:60 move second child to first child ( temp highp 3-component vector of float) -0:60 vector swizzle ( temp highp 3-component vector of float) -0:60 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:60 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 Constant: -0:60 2 (const int) -0:60 Constant: -0:60 0 (const int) -0:60 Sequence -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 2 (const int) -0:60 subgroupQuadSwapVertical ( global highp 3-component vector of float) -0:60 vector swizzle ( temp highp 3-component vector of float) -0:60 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:60 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:60 Constant: -0:60 2 (const int) -0:60 Constant: -0:60 0 (const int) -0:60 Sequence -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 2 (const int) -0:61 move second child to first child ( temp highp 4-component vector of float) -0:61 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:61 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 Constant: -0:61 2 (const int) -0:61 Constant: -0:61 0 (const int) -0:61 subgroupQuadSwapVertical ( global highp 4-component vector of float) -0:61 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:61 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:61 Constant: -0:61 3 (const int) -0:61 Constant: -0:61 0 (const int) -0:63 move second child to first child ( temp highp int) -0:63 direct index ( temp highp int) -0:63 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:63 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 Constant: -0:63 2 (const int) -0:63 Constant: -0:63 1 (const int) -0:63 Constant: -0:63 0 (const int) -0:63 subgroupQuadSwapVertical ( global highp int) -0:63 direct index ( temp highp int) -0:63 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:63 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:63 Constant: -0:63 0 (const int) -0:63 Constant: -0:63 1 (const int) -0:63 Constant: -0:63 0 (const int) -0:64 move second child to first child ( temp highp 2-component vector of int) -0:64 vector swizzle ( temp highp 2-component vector of int) -0:64 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:64 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:64 Constant: -0:64 2 (const int) -0:64 Constant: -0:64 1 (const int) -0:64 Sequence -0:64 Constant: -0:64 0 (const int) -0:64 Constant: -0:64 1 (const int) -0:64 subgroupQuadSwapVertical ( global highp 2-component vector of int) -0:64 vector swizzle ( temp highp 2-component vector of int) -0:64 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:64 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:64 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:64 Constant: -0:64 1 (const int) -0:64 Constant: -0:64 1 (const int) -0:64 Sequence -0:64 Constant: -0:64 0 (const int) -0:64 Constant: -0:64 1 (const int) -0:65 move second child to first child ( temp highp 3-component vector of int) -0:65 vector swizzle ( temp highp 3-component vector of int) -0:65 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:65 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 Constant: -0:65 2 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Sequence -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Constant: -0:65 2 (const int) -0:65 subgroupQuadSwapVertical ( global highp 3-component vector of int) -0:65 vector swizzle ( temp highp 3-component vector of int) -0:65 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:65 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:65 Constant: -0:65 2 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Sequence -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 1 (const int) -0:65 Constant: -0:65 2 (const int) -0:66 move second child to first child ( temp highp 4-component vector of int) -0:66 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:66 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 Constant: -0:66 2 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 subgroupQuadSwapVertical ( global highp 4-component vector of int) -0:66 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:66 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:66 Constant: -0:66 3 (const int) -0:66 Constant: -0:66 1 (const int) -0:68 move second child to first child ( temp highp uint) -0:68 direct index ( temp highp uint) -0:68 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:68 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 Constant: -0:68 2 (const int) -0:68 Constant: -0:68 2 (const int) -0:68 Constant: -0:68 0 (const int) -0:68 subgroupQuadSwapVertical ( global highp uint) -0:68 direct index ( temp highp uint) -0:68 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:68 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:68 Constant: -0:68 0 (const int) -0:68 Constant: -0:68 2 (const int) -0:68 Constant: -0:68 0 (const int) -0:69 move second child to first child ( temp highp 2-component vector of uint) -0:69 vector swizzle ( temp highp 2-component vector of uint) -0:69 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:69 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:69 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:69 Constant: -0:69 2 (const int) -0:69 Constant: -0:69 2 (const int) -0:69 Sequence -0:69 Constant: -0:69 0 (const int) -0:69 Constant: -0:69 1 (const int) -0:69 subgroupQuadSwapVertical ( global highp 2-component vector of uint) -0:69 vector swizzle ( temp highp 2-component vector of uint) -0:69 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:69 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:69 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:69 Constant: -0:69 1 (const int) -0:69 Constant: -0:69 2 (const int) -0:69 Sequence -0:69 Constant: -0:69 0 (const int) -0:69 Constant: -0:69 1 (const int) -0:70 move second child to first child ( temp highp 3-component vector of uint) -0:70 vector swizzle ( temp highp 3-component vector of uint) -0:70 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:70 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 Constant: -0:70 2 (const int) -0:70 Constant: -0:70 2 (const int) -0:70 Sequence -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 1 (const int) -0:70 Constant: -0:70 2 (const int) -0:70 subgroupQuadSwapVertical ( global highp 3-component vector of uint) -0:70 vector swizzle ( temp highp 3-component vector of uint) -0:70 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:70 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:70 Constant: -0:70 2 (const int) -0:70 Constant: -0:70 2 (const int) -0:70 Sequence -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 1 (const int) -0:70 Constant: -0:70 2 (const int) -0:71 move second child to first child ( temp highp 4-component vector of uint) -0:71 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:71 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 Constant: -0:71 2 (const int) -0:71 Constant: -0:71 2 (const int) -0:71 subgroupQuadSwapVertical ( global highp 4-component vector of uint) -0:71 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:71 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:71 Constant: -0:71 3 (const int) -0:71 Constant: -0:71 2 (const int) -0:73 move second child to first child ( temp highp int) -0:73 direct index ( temp highp int) -0:73 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:73 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 Constant: -0:73 3 (const int) -0:73 Constant: -0:73 1 (const int) -0:73 Constant: -0:73 0 (const int) -0:73 Convert bool to int ( temp highp int) -0:73 subgroupQuadSwapVertical ( global bool) -0:73 Compare Less Than ( temp bool) -0:73 direct index ( temp highp int) -0:73 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:73 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:73 Constant: -0:73 0 (const int) -0:73 Constant: -0:73 1 (const int) -0:73 Constant: -0:73 0 (const int) -0:73 Constant: -0:73 0 (const int) -0:74 move second child to first child ( temp highp 2-component vector of int) -0:74 vector swizzle ( temp highp 2-component vector of int) -0:74 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:74 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:74 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:74 Constant: -0:74 3 (const int) -0:74 Constant: -0:74 1 (const int) -0:74 Sequence -0:74 Constant: -0:74 0 (const int) -0:74 Constant: -0:74 1 (const int) -0:74 Convert bool to int ( temp highp 2-component vector of int) -0:74 subgroupQuadSwapVertical ( global 2-component vector of bool) -0:74 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:74 vector swizzle ( temp highp 2-component vector of int) -0:74 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:74 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:74 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:74 Constant: -0:74 1 (const int) -0:74 Constant: -0:74 1 (const int) -0:74 Sequence -0:74 Constant: -0:74 0 (const int) -0:74 Constant: -0:74 1 (const int) -0:74 Constant: -0:74 0 (const int) -0:74 0 (const int) -0:75 move second child to first child ( temp highp 3-component vector of int) -0:75 vector swizzle ( temp highp 3-component vector of int) -0:75 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:75 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:75 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:75 Constant: -0:75 3 (const int) -0:75 Constant: -0:75 1 (const int) -0:75 Sequence -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 1 (const int) -0:75 Constant: -0:75 2 (const int) -0:75 Convert bool to int ( temp highp 3-component vector of int) -0:75 subgroupQuadSwapVertical ( global 3-component vector of bool) -0:75 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:75 vector swizzle ( temp highp 3-component vector of int) -0:75 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:75 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:75 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:75 Constant: -0:75 1 (const int) -0:75 Constant: -0:75 1 (const int) -0:75 Sequence -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 1 (const int) -0:75 Constant: -0:75 2 (const int) -0:75 Constant: -0:75 0 (const int) -0:75 0 (const int) -0:75 0 (const int) -0:76 move second child to first child ( temp highp 4-component vector of int) -0:76 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:76 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:76 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:76 Constant: -0:76 3 (const int) -0:76 Constant: -0:76 1 (const int) -0:76 Convert bool to int ( temp highp 4-component vector of int) -0:76 subgroupQuadSwapVertical ( global 4-component vector of bool) -0:76 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:76 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:76 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:76 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:76 Constant: -0:76 1 (const int) -0:76 Constant: -0:76 1 (const int) -0:76 Constant: -0:76 0 (const int) -0:76 0 (const int) -0:76 0 (const int) -0:76 0 (const int) -0:78 move second child to first child ( temp highp float) -0:78 direct index ( temp highp float) -0:78 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:78 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:78 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:78 Constant: -0:78 3 (const int) -0:78 Constant: -0:78 0 (const int) -0:78 Constant: -0:78 0 (const int) -0:78 subgroupQuadSwapDiagonal ( global highp float) -0:78 direct index ( temp highp float) -0:78 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:78 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:78 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:78 Constant: -0:78 0 (const int) -0:78 Constant: -0:78 0 (const int) -0:78 Constant: -0:78 0 (const int) -0:79 move second child to first child ( temp highp 2-component vector of float) -0:79 vector swizzle ( temp highp 2-component vector of float) -0:79 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:79 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:79 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:79 Constant: -0:79 3 (const int) -0:79 Constant: -0:79 0 (const int) -0:79 Sequence -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 1 (const int) -0:79 subgroupQuadSwapDiagonal ( global highp 2-component vector of float) -0:79 vector swizzle ( temp highp 2-component vector of float) -0:79 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:79 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:79 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:79 Constant: -0:79 1 (const int) -0:79 Constant: -0:79 0 (const int) -0:79 Sequence -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 1 (const int) -0:80 move second child to first child ( temp highp 3-component vector of float) -0:80 vector swizzle ( temp highp 3-component vector of float) -0:80 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:80 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:80 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:80 Constant: -0:80 3 (const int) -0:80 Constant: -0:80 0 (const int) -0:80 Sequence -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 1 (const int) -0:80 Constant: -0:80 2 (const int) -0:80 subgroupQuadSwapDiagonal ( global highp 3-component vector of float) -0:80 vector swizzle ( temp highp 3-component vector of float) -0:80 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:80 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:80 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:80 Constant: -0:80 2 (const int) -0:80 Constant: -0:80 0 (const int) -0:80 Sequence -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 1 (const int) -0:80 Constant: -0:80 2 (const int) -0:81 move second child to first child ( temp highp 4-component vector of float) -0:81 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:81 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:81 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:81 Constant: -0:81 3 (const int) -0:81 Constant: -0:81 0 (const int) -0:81 subgroupQuadSwapDiagonal ( global highp 4-component vector of float) -0:81 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:81 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:81 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:81 Constant: -0:81 3 (const int) -0:81 Constant: -0:81 0 (const int) -0:83 move second child to first child ( temp highp int) -0:83 direct index ( temp highp int) -0:83 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:83 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:83 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:83 Constant: -0:83 3 (const int) -0:83 Constant: -0:83 1 (const int) -0:83 Constant: -0:83 0 (const int) -0:83 subgroupQuadSwapDiagonal ( global highp int) -0:83 direct index ( temp highp int) -0:83 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:83 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:83 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -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:84 move second child to first child ( temp highp 2-component vector of int) -0:84 vector swizzle ( temp highp 2-component vector of int) -0:84 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:84 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:84 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:84 Constant: -0:84 3 (const int) -0:84 Constant: -0:84 1 (const int) -0:84 Sequence -0:84 Constant: -0:84 0 (const int) -0:84 Constant: -0:84 1 (const int) -0:84 subgroupQuadSwapDiagonal ( global highp 2-component vector of int) -0:84 vector swizzle ( temp highp 2-component vector of int) -0:84 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:84 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:84 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:84 Constant: -0:84 1 (const int) -0:84 Constant: -0:84 1 (const int) -0:84 Sequence -0:84 Constant: -0:84 0 (const int) -0:84 Constant: -0:84 1 (const int) -0:85 move second child to first child ( temp highp 3-component vector of int) -0:85 vector swizzle ( temp highp 3-component vector of int) -0:85 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:85 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:85 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:85 Constant: -0:85 3 (const int) -0:85 Constant: -0:85 1 (const int) -0:85 Sequence -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 1 (const int) -0:85 Constant: -0:85 2 (const int) -0:85 subgroupQuadSwapDiagonal ( global highp 3-component vector of int) -0:85 vector swizzle ( temp highp 3-component vector of int) -0:85 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:85 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:85 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:85 Constant: -0:85 2 (const int) -0:85 Constant: -0:85 1 (const int) -0:85 Sequence -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 1 (const int) -0:85 Constant: -0:85 2 (const int) -0:86 move second child to first child ( temp highp 4-component vector of int) -0:86 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:86 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:86 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:86 Constant: -0:86 3 (const int) -0:86 Constant: -0:86 1 (const int) -0:86 subgroupQuadSwapDiagonal ( global highp 4-component vector of int) -0:86 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:86 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:86 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:86 Constant: -0:86 3 (const int) -0:86 Constant: -0:86 1 (const int) -0:88 move second child to first child ( temp highp uint) -0:88 direct index ( temp highp uint) -0:88 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:88 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:88 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:88 Constant: -0:88 3 (const int) -0:88 Constant: -0:88 2 (const int) -0:88 Constant: -0:88 0 (const int) -0:88 subgroupQuadSwapDiagonal ( global highp uint) -0:88 direct index ( temp highp uint) -0:88 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:88 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:88 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:88 Constant: -0:88 0 (const int) -0:88 Constant: -0:88 2 (const int) -0:88 Constant: -0:88 0 (const int) -0:89 move second child to first child ( temp highp 2-component vector of uint) -0:89 vector swizzle ( temp highp 2-component vector of uint) -0:89 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:89 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:89 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:89 Constant: -0:89 3 (const int) -0:89 Constant: -0:89 2 (const int) -0:89 Sequence -0:89 Constant: -0:89 0 (const int) -0:89 Constant: -0:89 1 (const int) -0:89 subgroupQuadSwapDiagonal ( global highp 2-component vector of uint) -0:89 vector swizzle ( temp highp 2-component vector of uint) -0:89 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:89 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:89 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:89 Constant: -0:89 1 (const int) -0:89 Constant: -0:89 2 (const int) -0:89 Sequence -0:89 Constant: -0:89 0 (const int) -0:89 Constant: -0:89 1 (const int) -0:90 move second child to first child ( temp highp 3-component vector of uint) -0:90 vector swizzle ( temp highp 3-component vector of uint) -0:90 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:90 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:90 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:90 Constant: -0:90 3 (const int) -0:90 Constant: -0:90 2 (const int) -0:90 Sequence -0:90 Constant: -0:90 0 (const int) -0:90 Constant: -0:90 1 (const int) -0:90 Constant: -0:90 2 (const int) -0:90 subgroupQuadSwapDiagonal ( global highp 3-component vector of uint) -0:90 vector swizzle ( temp highp 3-component vector of uint) -0:90 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:90 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:90 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:90 Constant: -0:90 2 (const int) -0:90 Constant: -0:90 2 (const int) -0:90 Sequence -0:90 Constant: -0:90 0 (const int) -0:90 Constant: -0:90 1 (const int) -0:90 Constant: -0:90 2 (const int) -0:91 move second child to first child ( temp highp 4-component vector of uint) -0:91 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:91 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:91 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:91 Constant: -0:91 3 (const int) -0:91 Constant: -0:91 2 (const int) -0:91 subgroupQuadSwapDiagonal ( global highp 4-component vector of uint) -0:91 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:91 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:91 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:91 Constant: -0:91 3 (const int) -0:91 Constant: -0:91 2 (const int) -0:93 move second child to first child ( temp highp int) -0:93 direct index ( temp highp int) -0:93 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:93 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:93 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:93 Constant: -0:93 3 (const int) -0:93 Constant: -0:93 1 (const int) -0:93 Constant: -0:93 0 (const int) -0:93 Convert bool to int ( temp highp int) -0:93 subgroupQuadSwapDiagonal ( global bool) -0:93 Compare Less Than ( temp bool) -0:93 direct index ( temp highp int) -0:93 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:93 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:93 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:93 Constant: -0:93 0 (const int) -0:93 Constant: -0:93 1 (const int) -0:93 Constant: -0:93 0 (const int) -0:93 Constant: -0:93 0 (const int) -0:94 move second child to first child ( temp highp 2-component vector of int) -0:94 vector swizzle ( temp highp 2-component vector of int) -0:94 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:94 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:94 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:94 Constant: -0:94 3 (const int) -0:94 Constant: -0:94 1 (const int) -0:94 Sequence -0:94 Constant: -0:94 0 (const int) -0:94 Constant: -0:94 1 (const int) -0:94 Convert bool to int ( temp highp 2-component vector of int) -0:94 subgroupQuadSwapDiagonal ( global 2-component vector of bool) -0:94 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:94 vector swizzle ( temp highp 2-component vector of int) -0:94 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:94 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:94 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:94 Constant: -0:94 1 (const int) -0:94 Constant: -0:94 1 (const int) -0:94 Sequence -0:94 Constant: -0:94 0 (const int) -0:94 Constant: -0:94 1 (const int) -0:94 Constant: -0:94 0 (const int) -0:94 0 (const int) -0:95 move second child to first child ( temp highp 3-component vector of int) -0:95 vector swizzle ( temp highp 3-component vector of int) -0:95 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:95 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:95 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:95 Constant: -0:95 3 (const int) -0:95 Constant: -0:95 1 (const int) -0:95 Sequence -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 1 (const int) -0:95 Constant: -0:95 2 (const int) -0:95 Convert bool to int ( temp highp 3-component vector of int) -0:95 subgroupQuadSwapDiagonal ( global 3-component vector of bool) -0:95 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:95 vector swizzle ( temp highp 3-component vector of int) -0:95 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:95 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:95 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:95 Constant: -0:95 1 (const int) -0:95 Constant: -0:95 1 (const int) -0:95 Sequence -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 1 (const int) -0:95 Constant: -0:95 2 (const int) -0:95 Constant: -0:95 0 (const int) -0:95 0 (const int) -0:95 0 (const int) -0:96 move second child to first child ( temp highp 4-component vector of int) -0:96 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:96 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:96 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:96 Constant: -0:96 3 (const int) -0:96 Constant: -0:96 1 (const int) -0:96 Convert bool to int ( temp highp 4-component vector of int) -0:96 subgroupQuadSwapDiagonal ( global 4-component vector of bool) -0:96 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:96 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:96 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:96 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:96 Constant: -0:96 1 (const int) -0:96 Constant: -0:96 1 (const int) -0:96 Constant: -0:96 0 (const int) -0:96 0 (const int) -0:96 0 (const int) -0:96 0 (const int) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const highp 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) - diff --git a/deps/glslang/Test/baseResults/glsl.es320.subgroupShuffle.comp.out b/deps/glslang/Test/baseResults/glsl.es320.subgroupShuffle.comp.out deleted file mode 100644 index 31b14307..00000000 --- a/deps/glslang/Test/baseResults/glsl.es320.subgroupShuffle.comp.out +++ /dev/null @@ -1,1773 +0,0 @@ -glsl.es320.subgroupShuffle.comp -Shader version: 320 -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_shuffle -local_size = (8, 8, 1) -0:? Sequence -0:14 Function Definition: main( ( global void) -0:14 Function Parameters: -0:16 Sequence -0:16 Sequence -0:16 move second child to first child ( temp highp uint) -0:16 'invocation' ( temp highp uint) -0:16 mod ( temp mediump uint) -0:16 add ( temp mediump uint) -0:16 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID) -0:16 'gl_SubgroupSize' ( in mediump uint SubgroupSize) -0:16 Constant: -0:16 4 (const uint) -0:18 move second child to first child ( temp highp float) -0:18 direct index ( temp highp float) -0:18 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:18 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 subgroupShuffle ( global highp float) -0:18 direct index ( temp highp float) -0:18 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:18 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 'invocation' ( temp highp uint) -0:19 move second child to first child ( temp highp 2-component vector of float) -0:19 vector swizzle ( temp highp 2-component vector of float) -0:19 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:19 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 Sequence -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const int) -0:19 subgroupShuffle ( global highp 2-component vector of float) -0:19 vector swizzle ( temp highp 2-component vector of float) -0:19 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:19 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 Constant: -0:19 1 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 Sequence -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const int) -0:19 'invocation' ( temp highp uint) -0:20 move second child to first child ( temp highp 3-component vector of float) -0:20 vector swizzle ( temp highp 3-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:20 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 2 (const int) -0:20 subgroupShuffle ( global highp 3-component vector of float) -0:20 vector swizzle ( temp highp 3-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:20 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 Constant: -0:20 2 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 2 (const int) -0:20 'invocation' ( temp highp uint) -0:21 move second child to first child ( temp highp 4-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 subgroupShuffle ( global highp 4-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 Constant: -0:21 3 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 'invocation' ( temp highp uint) -0:23 move second child to first child ( temp highp int) -0:23 direct index ( temp highp int) -0:23 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 0 (const int) -0:23 subgroupShuffle ( global highp int) -0:23 direct index ( temp highp int) -0:23 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 0 (const int) -0:23 'invocation' ( temp highp uint) -0:24 move second child to first child ( temp highp 2-component vector of int) -0:24 vector swizzle ( temp highp 2-component vector of int) -0:24 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 Sequence -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 subgroupShuffle ( global highp 2-component vector of int) -0:24 vector swizzle ( temp highp 2-component vector of int) -0:24 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 Sequence -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 'invocation' ( temp highp uint) -0:25 move second child to first child ( temp highp 3-component vector of int) -0:25 vector swizzle ( temp highp 3-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 subgroupShuffle ( global highp 3-component vector of int) -0:25 vector swizzle ( temp highp 3-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 Constant: -0:25 2 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 'invocation' ( temp highp uint) -0:26 move second child to first child ( temp highp 4-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 subgroupShuffle ( global highp 4-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 Constant: -0:26 3 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 'invocation' ( temp highp uint) -0:28 move second child to first child ( temp highp uint) -0:28 direct index ( temp highp uint) -0:28 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 Constant: -0:28 1 (const int) -0:28 Constant: -0:28 2 (const int) -0:28 Constant: -0:28 0 (const int) -0:28 subgroupShuffle ( global highp uint) -0:28 direct index ( temp highp uint) -0:28 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 2 (const int) -0:28 Constant: -0:28 0 (const int) -0:28 'invocation' ( temp highp uint) -0:29 move second child to first child ( temp highp 2-component vector of uint) -0:29 vector swizzle ( temp highp 2-component vector of uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 Constant: -0:29 1 (const int) -0:29 Constant: -0:29 2 (const int) -0:29 Sequence -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 1 (const int) -0:29 subgroupShuffle ( global highp 2-component vector of uint) -0:29 vector swizzle ( temp highp 2-component vector of uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 Constant: -0:29 1 (const int) -0:29 Constant: -0:29 2 (const int) -0:29 Sequence -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 1 (const int) -0:29 'invocation' ( temp highp uint) -0:30 move second child to first child ( temp highp 3-component vector of uint) -0:30 vector swizzle ( temp highp 3-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:30 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 subgroupShuffle ( global highp 3-component vector of uint) -0:30 vector swizzle ( temp highp 3-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:30 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 Constant: -0:30 2 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 'invocation' ( temp highp uint) -0:31 move second child to first child ( temp highp 4-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 subgroupShuffle ( global highp 4-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 Constant: -0:31 3 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 'invocation' ( temp highp uint) -0:33 move second child to first child ( temp highp int) -0:33 direct index ( temp highp int) -0:33 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 Convert bool to int ( temp highp int) -0:33 subgroupShuffle ( global bool, operation at highp) -0:33 Compare Less Than ( temp bool) -0:33 direct index ( temp highp int) -0:33 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 'invocation' ( temp highp uint) -0:34 move second child to first child ( temp highp 2-component vector of int) -0:34 vector swizzle ( temp highp 2-component vector of int) -0:34 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 Constant: -0:34 1 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 Sequence -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 Convert bool to int ( temp highp 2-component vector of int) -0:34 subgroupShuffle ( global 2-component vector of bool, operation at highp) -0:34 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:34 vector swizzle ( temp highp 2-component vector of int) -0:34 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 Constant: -0:34 1 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 Sequence -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 0 (const int) -0:34 'invocation' ( temp highp uint) -0:35 move second child to first child ( temp highp 3-component vector of int) -0:35 vector swizzle ( temp highp 3-component vector of int) -0:35 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 2 (const int) -0:35 Convert bool to int ( temp highp 3-component vector of int) -0:35 subgroupShuffle ( global 3-component vector of bool, operation at highp) -0:35 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:35 vector swizzle ( temp highp 3-component vector of int) -0:35 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 2 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 0 (const int) -0:35 0 (const int) -0:35 'invocation' ( temp highp uint) -0:36 move second child to first child ( temp highp 4-component vector of int) -0:36 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Convert bool to int ( temp highp 4-component vector of int) -0:36 subgroupShuffle ( global 4-component vector of bool, operation at highp) -0:36 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:36 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 0 (const int) -0:36 0 (const int) -0:36 0 (const int) -0:36 'invocation' ( temp highp uint) -0:38 move second child to first child ( temp highp float) -0:38 direct index ( temp highp float) -0:38 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 Constant: -0:38 2 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 subgroupShuffleXor ( global highp float) -0:38 direct index ( temp highp float) -0:38 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 'invocation' ( temp highp uint) -0:39 move second child to first child ( temp highp 2-component vector of float) -0:39 vector swizzle ( temp highp 2-component vector of float) -0:39 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 Constant: -0:39 2 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 Sequence -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 subgroupShuffleXor ( global highp 2-component vector of float) -0:39 vector swizzle ( temp highp 2-component vector of float) -0:39 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 Sequence -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 'invocation' ( temp highp uint) -0:40 move second child to first child ( temp highp 3-component vector of float) -0:40 vector swizzle ( temp highp 3-component vector of float) -0:40 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 Constant: -0:40 2 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 2 (const int) -0:40 subgroupShuffleXor ( global highp 3-component vector of float) -0:40 vector swizzle ( temp highp 3-component vector of float) -0:40 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 Constant: -0:40 2 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 2 (const int) -0:40 'invocation' ( temp highp uint) -0:41 move second child to first child ( temp highp 4-component vector of float) -0:41 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 Constant: -0:41 2 (const int) -0:41 Constant: -0:41 0 (const int) -0:41 subgroupShuffleXor ( global highp 4-component vector of float) -0:41 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 Constant: -0:41 3 (const int) -0:41 Constant: -0:41 0 (const int) -0:41 'invocation' ( temp highp uint) -0:43 move second child to first child ( temp highp int) -0:43 direct index ( temp highp int) -0:43 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:43 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 Constant: -0:43 2 (const int) -0:43 Constant: -0:43 1 (const int) -0:43 Constant: -0:43 0 (const int) -0:43 subgroupShuffleXor ( global highp int) -0:43 direct index ( temp highp int) -0:43 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:43 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 Constant: -0:43 0 (const int) -0:43 Constant: -0:43 1 (const int) -0:43 Constant: -0:43 0 (const int) -0:43 'invocation' ( temp highp uint) -0:44 move second child to first child ( temp highp 2-component vector of int) -0:44 vector swizzle ( temp highp 2-component vector of int) -0:44 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 Constant: -0:44 2 (const int) -0:44 Constant: -0:44 1 (const int) -0:44 Sequence -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 1 (const int) -0:44 subgroupShuffleXor ( global highp 2-component vector of int) -0:44 vector swizzle ( temp highp 2-component vector of int) -0:44 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 Constant: -0:44 1 (const int) -0:44 Constant: -0:44 1 (const int) -0:44 Sequence -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 1 (const int) -0:44 'invocation' ( temp highp uint) -0:45 move second child to first child ( temp highp 3-component vector of int) -0:45 vector swizzle ( temp highp 3-component vector of int) -0:45 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 Constant: -0:45 2 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 subgroupShuffleXor ( global highp 3-component vector of int) -0:45 vector swizzle ( temp highp 3-component vector of int) -0:45 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 Constant: -0:45 2 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 'invocation' ( temp highp uint) -0:46 move second child to first child ( temp highp 4-component vector of int) -0:46 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 Constant: -0:46 2 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 subgroupShuffleXor ( global highp 4-component vector of int) -0:46 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 Constant: -0:46 3 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 'invocation' ( temp highp uint) -0:48 move second child to first child ( temp highp uint) -0:48 direct index ( temp highp uint) -0:48 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:48 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 Constant: -0:48 3 (const int) -0:48 Constant: -0:48 2 (const int) -0:48 Constant: -0:48 0 (const int) -0:48 subgroupShuffleXor ( global highp uint) -0:48 direct index ( temp highp uint) -0:48 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:48 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 Constant: -0:48 0 (const int) -0:48 Constant: -0:48 2 (const int) -0:48 Constant: -0:48 0 (const int) -0:48 'invocation' ( temp highp uint) -0:49 move second child to first child ( temp highp 2-component vector of uint) -0:49 vector swizzle ( temp highp 2-component vector of uint) -0:49 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:49 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 Constant: -0:49 3 (const int) -0:49 Constant: -0:49 2 (const int) -0:49 Sequence -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 1 (const int) -0:49 subgroupShuffleXor ( global highp 2-component vector of uint) -0:49 vector swizzle ( temp highp 2-component vector of uint) -0:49 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:49 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 Constant: -0:49 1 (const int) -0:49 Constant: -0:49 2 (const int) -0:49 Sequence -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 1 (const int) -0:49 'invocation' ( temp highp uint) -0:50 move second child to first child ( temp highp 3-component vector of uint) -0:50 vector swizzle ( temp highp 3-component vector of uint) -0:50 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 Constant: -0:50 3 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 subgroupShuffleXor ( global highp 3-component vector of uint) -0:50 vector swizzle ( temp highp 3-component vector of uint) -0:50 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 Constant: -0:50 2 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 'invocation' ( temp highp uint) -0:51 move second child to first child ( temp highp 4-component vector of uint) -0:51 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 Constant: -0:51 3 (const int) -0:51 Constant: -0:51 2 (const int) -0:51 subgroupShuffleXor ( global highp 4-component vector of uint) -0:51 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 Constant: -0:51 3 (const int) -0:51 Constant: -0:51 2 (const int) -0:51 'invocation' ( temp highp uint) -0:53 move second child to first child ( temp highp int) -0:53 direct index ( temp highp int) -0:53 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:53 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 Constant: -0:53 3 (const int) -0:53 Constant: -0:53 1 (const int) -0:53 Constant: -0:53 0 (const int) -0:53 Convert bool to int ( temp highp int) -0:53 subgroupShuffleXor ( global bool, operation at highp) -0:53 Compare Less Than ( temp bool) -0:53 direct index ( temp highp int) -0:53 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:53 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 Constant: -0:53 0 (const int) -0:53 Constant: -0:53 1 (const int) -0:53 Constant: -0:53 0 (const int) -0:53 Constant: -0:53 0 (const int) -0:53 'invocation' ( temp highp uint) -0:54 move second child to first child ( temp highp 2-component vector of int) -0:54 vector swizzle ( temp highp 2-component vector of int) -0:54 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:54 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 Constant: -0:54 3 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 Sequence -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 Convert bool to int ( temp highp 2-component vector of int) -0:54 subgroupShuffleXor ( global 2-component vector of bool, operation at highp) -0:54 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:54 vector swizzle ( temp highp 2-component vector of int) -0:54 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:54 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 Constant: -0:54 1 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 Sequence -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 0 (const int) -0:54 'invocation' ( temp highp uint) -0:55 move second child to first child ( temp highp 3-component vector of int) -0:55 vector swizzle ( temp highp 3-component vector of int) -0:55 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 Constant: -0:55 3 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 2 (const int) -0:55 Convert bool to int ( temp highp 3-component vector of int) -0:55 subgroupShuffleXor ( global 3-component vector of bool, operation at highp) -0:55 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:55 vector swizzle ( temp highp 3-component vector of int) -0:55 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 2 (const int) -0:55 Constant: -0:55 0 (const int) -0:55 0 (const int) -0:55 0 (const int) -0:55 'invocation' ( temp highp uint) -0:56 move second child to first child ( temp highp 4-component vector of int) -0:56 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 Constant: -0:56 3 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Convert bool to int ( temp highp 4-component vector of int) -0:56 subgroupShuffleXor ( global 4-component vector of bool, operation at highp) -0:56 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:56 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 0 (const int) -0:56 0 (const int) -0:56 0 (const int) -0:56 0 (const int) -0:56 'invocation' ( temp highp uint) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const highp 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) - - -Linked compute stage: - - -Shader version: 320 -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_shuffle -local_size = (8, 8, 1) -0:? Sequence -0:14 Function Definition: main( ( global void) -0:14 Function Parameters: -0:16 Sequence -0:16 Sequence -0:16 move second child to first child ( temp highp uint) -0:16 'invocation' ( temp highp uint) -0:16 mod ( temp mediump uint) -0:16 add ( temp mediump uint) -0:16 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID) -0:16 'gl_SubgroupSize' ( in mediump uint SubgroupSize) -0:16 Constant: -0:16 4 (const uint) -0:18 move second child to first child ( temp highp float) -0:18 direct index ( temp highp float) -0:18 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:18 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 subgroupShuffle ( global highp float) -0:18 direct index ( temp highp float) -0:18 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:18 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 'invocation' ( temp highp uint) -0:19 move second child to first child ( temp highp 2-component vector of float) -0:19 vector swizzle ( temp highp 2-component vector of float) -0:19 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:19 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 Sequence -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const int) -0:19 subgroupShuffle ( global highp 2-component vector of float) -0:19 vector swizzle ( temp highp 2-component vector of float) -0:19 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:19 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 Constant: -0:19 1 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 Sequence -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const int) -0:19 'invocation' ( temp highp uint) -0:20 move second child to first child ( temp highp 3-component vector of float) -0:20 vector swizzle ( temp highp 3-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:20 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 2 (const int) -0:20 subgroupShuffle ( global highp 3-component vector of float) -0:20 vector swizzle ( temp highp 3-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:20 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 Constant: -0:20 2 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 2 (const int) -0:20 'invocation' ( temp highp uint) -0:21 move second child to first child ( temp highp 4-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 subgroupShuffle ( global highp 4-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 Constant: -0:21 3 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 'invocation' ( temp highp uint) -0:23 move second child to first child ( temp highp int) -0:23 direct index ( temp highp int) -0:23 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 0 (const int) -0:23 subgroupShuffle ( global highp int) -0:23 direct index ( temp highp int) -0:23 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 0 (const int) -0:23 'invocation' ( temp highp uint) -0:24 move second child to first child ( temp highp 2-component vector of int) -0:24 vector swizzle ( temp highp 2-component vector of int) -0:24 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 Sequence -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 subgroupShuffle ( global highp 2-component vector of int) -0:24 vector swizzle ( temp highp 2-component vector of int) -0:24 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 Sequence -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 'invocation' ( temp highp uint) -0:25 move second child to first child ( temp highp 3-component vector of int) -0:25 vector swizzle ( temp highp 3-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 subgroupShuffle ( global highp 3-component vector of int) -0:25 vector swizzle ( temp highp 3-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 Constant: -0:25 2 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 'invocation' ( temp highp uint) -0:26 move second child to first child ( temp highp 4-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 subgroupShuffle ( global highp 4-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 Constant: -0:26 3 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 'invocation' ( temp highp uint) -0:28 move second child to first child ( temp highp uint) -0:28 direct index ( temp highp uint) -0:28 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 Constant: -0:28 1 (const int) -0:28 Constant: -0:28 2 (const int) -0:28 Constant: -0:28 0 (const int) -0:28 subgroupShuffle ( global highp uint) -0:28 direct index ( temp highp uint) -0:28 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 2 (const int) -0:28 Constant: -0:28 0 (const int) -0:28 'invocation' ( temp highp uint) -0:29 move second child to first child ( temp highp 2-component vector of uint) -0:29 vector swizzle ( temp highp 2-component vector of uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 Constant: -0:29 1 (const int) -0:29 Constant: -0:29 2 (const int) -0:29 Sequence -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 1 (const int) -0:29 subgroupShuffle ( global highp 2-component vector of uint) -0:29 vector swizzle ( temp highp 2-component vector of uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 Constant: -0:29 1 (const int) -0:29 Constant: -0:29 2 (const int) -0:29 Sequence -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 1 (const int) -0:29 'invocation' ( temp highp uint) -0:30 move second child to first child ( temp highp 3-component vector of uint) -0:30 vector swizzle ( temp highp 3-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:30 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 subgroupShuffle ( global highp 3-component vector of uint) -0:30 vector swizzle ( temp highp 3-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:30 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 Constant: -0:30 2 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 'invocation' ( temp highp uint) -0:31 move second child to first child ( temp highp 4-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 subgroupShuffle ( global highp 4-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 Constant: -0:31 3 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 'invocation' ( temp highp uint) -0:33 move second child to first child ( temp highp int) -0:33 direct index ( temp highp int) -0:33 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 Convert bool to int ( temp highp int) -0:33 subgroupShuffle ( global bool, operation at highp) -0:33 Compare Less Than ( temp bool) -0:33 direct index ( temp highp int) -0:33 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 'invocation' ( temp highp uint) -0:34 move second child to first child ( temp highp 2-component vector of int) -0:34 vector swizzle ( temp highp 2-component vector of int) -0:34 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 Constant: -0:34 1 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 Sequence -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 Convert bool to int ( temp highp 2-component vector of int) -0:34 subgroupShuffle ( global 2-component vector of bool, operation at highp) -0:34 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:34 vector swizzle ( temp highp 2-component vector of int) -0:34 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 Constant: -0:34 1 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 Sequence -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 0 (const int) -0:34 'invocation' ( temp highp uint) -0:35 move second child to first child ( temp highp 3-component vector of int) -0:35 vector swizzle ( temp highp 3-component vector of int) -0:35 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 2 (const int) -0:35 Convert bool to int ( temp highp 3-component vector of int) -0:35 subgroupShuffle ( global 3-component vector of bool, operation at highp) -0:35 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:35 vector swizzle ( temp highp 3-component vector of int) -0:35 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 2 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 0 (const int) -0:35 0 (const int) -0:35 'invocation' ( temp highp uint) -0:36 move second child to first child ( temp highp 4-component vector of int) -0:36 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Convert bool to int ( temp highp 4-component vector of int) -0:36 subgroupShuffle ( global 4-component vector of bool, operation at highp) -0:36 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:36 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 0 (const int) -0:36 0 (const int) -0:36 0 (const int) -0:36 'invocation' ( temp highp uint) -0:38 move second child to first child ( temp highp float) -0:38 direct index ( temp highp float) -0:38 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 Constant: -0:38 2 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 subgroupShuffleXor ( global highp float) -0:38 direct index ( temp highp float) -0:38 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 'invocation' ( temp highp uint) -0:39 move second child to first child ( temp highp 2-component vector of float) -0:39 vector swizzle ( temp highp 2-component vector of float) -0:39 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 Constant: -0:39 2 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 Sequence -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 subgroupShuffleXor ( global highp 2-component vector of float) -0:39 vector swizzle ( temp highp 2-component vector of float) -0:39 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 Sequence -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 'invocation' ( temp highp uint) -0:40 move second child to first child ( temp highp 3-component vector of float) -0:40 vector swizzle ( temp highp 3-component vector of float) -0:40 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 Constant: -0:40 2 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 2 (const int) -0:40 subgroupShuffleXor ( global highp 3-component vector of float) -0:40 vector swizzle ( temp highp 3-component vector of float) -0:40 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 Constant: -0:40 2 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 2 (const int) -0:40 'invocation' ( temp highp uint) -0:41 move second child to first child ( temp highp 4-component vector of float) -0:41 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 Constant: -0:41 2 (const int) -0:41 Constant: -0:41 0 (const int) -0:41 subgroupShuffleXor ( global highp 4-component vector of float) -0:41 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 Constant: -0:41 3 (const int) -0:41 Constant: -0:41 0 (const int) -0:41 'invocation' ( temp highp uint) -0:43 move second child to first child ( temp highp int) -0:43 direct index ( temp highp int) -0:43 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:43 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 Constant: -0:43 2 (const int) -0:43 Constant: -0:43 1 (const int) -0:43 Constant: -0:43 0 (const int) -0:43 subgroupShuffleXor ( global highp int) -0:43 direct index ( temp highp int) -0:43 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:43 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 Constant: -0:43 0 (const int) -0:43 Constant: -0:43 1 (const int) -0:43 Constant: -0:43 0 (const int) -0:43 'invocation' ( temp highp uint) -0:44 move second child to first child ( temp highp 2-component vector of int) -0:44 vector swizzle ( temp highp 2-component vector of int) -0:44 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 Constant: -0:44 2 (const int) -0:44 Constant: -0:44 1 (const int) -0:44 Sequence -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 1 (const int) -0:44 subgroupShuffleXor ( global highp 2-component vector of int) -0:44 vector swizzle ( temp highp 2-component vector of int) -0:44 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 Constant: -0:44 1 (const int) -0:44 Constant: -0:44 1 (const int) -0:44 Sequence -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 1 (const int) -0:44 'invocation' ( temp highp uint) -0:45 move second child to first child ( temp highp 3-component vector of int) -0:45 vector swizzle ( temp highp 3-component vector of int) -0:45 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 Constant: -0:45 2 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 subgroupShuffleXor ( global highp 3-component vector of int) -0:45 vector swizzle ( temp highp 3-component vector of int) -0:45 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 Constant: -0:45 2 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 'invocation' ( temp highp uint) -0:46 move second child to first child ( temp highp 4-component vector of int) -0:46 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 Constant: -0:46 2 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 subgroupShuffleXor ( global highp 4-component vector of int) -0:46 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 Constant: -0:46 3 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 'invocation' ( temp highp uint) -0:48 move second child to first child ( temp highp uint) -0:48 direct index ( temp highp uint) -0:48 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:48 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 Constant: -0:48 3 (const int) -0:48 Constant: -0:48 2 (const int) -0:48 Constant: -0:48 0 (const int) -0:48 subgroupShuffleXor ( global highp uint) -0:48 direct index ( temp highp uint) -0:48 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:48 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 Constant: -0:48 0 (const int) -0:48 Constant: -0:48 2 (const int) -0:48 Constant: -0:48 0 (const int) -0:48 'invocation' ( temp highp uint) -0:49 move second child to first child ( temp highp 2-component vector of uint) -0:49 vector swizzle ( temp highp 2-component vector of uint) -0:49 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:49 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 Constant: -0:49 3 (const int) -0:49 Constant: -0:49 2 (const int) -0:49 Sequence -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 1 (const int) -0:49 subgroupShuffleXor ( global highp 2-component vector of uint) -0:49 vector swizzle ( temp highp 2-component vector of uint) -0:49 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:49 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 Constant: -0:49 1 (const int) -0:49 Constant: -0:49 2 (const int) -0:49 Sequence -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 1 (const int) -0:49 'invocation' ( temp highp uint) -0:50 move second child to first child ( temp highp 3-component vector of uint) -0:50 vector swizzle ( temp highp 3-component vector of uint) -0:50 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 Constant: -0:50 3 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 subgroupShuffleXor ( global highp 3-component vector of uint) -0:50 vector swizzle ( temp highp 3-component vector of uint) -0:50 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 Constant: -0:50 2 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 'invocation' ( temp highp uint) -0:51 move second child to first child ( temp highp 4-component vector of uint) -0:51 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 Constant: -0:51 3 (const int) -0:51 Constant: -0:51 2 (const int) -0:51 subgroupShuffleXor ( global highp 4-component vector of uint) -0:51 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 Constant: -0:51 3 (const int) -0:51 Constant: -0:51 2 (const int) -0:51 'invocation' ( temp highp uint) -0:53 move second child to first child ( temp highp int) -0:53 direct index ( temp highp int) -0:53 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:53 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 Constant: -0:53 3 (const int) -0:53 Constant: -0:53 1 (const int) -0:53 Constant: -0:53 0 (const int) -0:53 Convert bool to int ( temp highp int) -0:53 subgroupShuffleXor ( global bool, operation at highp) -0:53 Compare Less Than ( temp bool) -0:53 direct index ( temp highp int) -0:53 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:53 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 Constant: -0:53 0 (const int) -0:53 Constant: -0:53 1 (const int) -0:53 Constant: -0:53 0 (const int) -0:53 Constant: -0:53 0 (const int) -0:53 'invocation' ( temp highp uint) -0:54 move second child to first child ( temp highp 2-component vector of int) -0:54 vector swizzle ( temp highp 2-component vector of int) -0:54 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:54 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 Constant: -0:54 3 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 Sequence -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 Convert bool to int ( temp highp 2-component vector of int) -0:54 subgroupShuffleXor ( global 2-component vector of bool, operation at highp) -0:54 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:54 vector swizzle ( temp highp 2-component vector of int) -0:54 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:54 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 Constant: -0:54 1 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 Sequence -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 0 (const int) -0:54 'invocation' ( temp highp uint) -0:55 move second child to first child ( temp highp 3-component vector of int) -0:55 vector swizzle ( temp highp 3-component vector of int) -0:55 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 Constant: -0:55 3 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 2 (const int) -0:55 Convert bool to int ( temp highp 3-component vector of int) -0:55 subgroupShuffleXor ( global 3-component vector of bool, operation at highp) -0:55 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:55 vector swizzle ( temp highp 3-component vector of int) -0:55 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 2 (const int) -0:55 Constant: -0:55 0 (const int) -0:55 0 (const int) -0:55 0 (const int) -0:55 'invocation' ( temp highp uint) -0:56 move second child to first child ( temp highp 4-component vector of int) -0:56 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 Constant: -0:56 3 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Convert bool to int ( temp highp 4-component vector of int) -0:56 subgroupShuffleXor ( global 4-component vector of bool, operation at highp) -0:56 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:56 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 0 (const int) -0:56 0 (const int) -0:56 0 (const int) -0:56 0 (const int) -0:56 'invocation' ( temp highp uint) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const highp 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) - diff --git a/deps/glslang/Test/baseResults/glsl.es320.subgroupShuffleRelative.comp.out b/deps/glslang/Test/baseResults/glsl.es320.subgroupShuffleRelative.comp.out deleted file mode 100644 index 421e3bb9..00000000 --- a/deps/glslang/Test/baseResults/glsl.es320.subgroupShuffleRelative.comp.out +++ /dev/null @@ -1,1773 +0,0 @@ -glsl.es320.subgroupShuffleRelative.comp -Shader version: 320 -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_shuffle_relative -local_size = (8, 8, 1) -0:? Sequence -0:14 Function Definition: main( ( global void) -0:14 Function Parameters: -0:16 Sequence -0:16 Sequence -0:16 move second child to first child ( temp highp uint) -0:16 'invocation' ( temp highp uint) -0:16 mod ( temp mediump uint) -0:16 add ( temp mediump uint) -0:16 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID) -0:16 'gl_SubgroupSize' ( in mediump uint SubgroupSize) -0:16 Constant: -0:16 4 (const uint) -0:18 move second child to first child ( temp highp float) -0:18 direct index ( temp highp float) -0:18 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:18 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 subgroupShuffleUp ( global highp float) -0:18 direct index ( temp highp float) -0:18 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:18 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 'invocation' ( temp highp uint) -0:19 move second child to first child ( temp highp 2-component vector of float) -0:19 vector swizzle ( temp highp 2-component vector of float) -0:19 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:19 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 Sequence -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const int) -0:19 subgroupShuffleUp ( global highp 2-component vector of float) -0:19 vector swizzle ( temp highp 2-component vector of float) -0:19 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:19 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 Constant: -0:19 1 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 Sequence -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const int) -0:19 'invocation' ( temp highp uint) -0:20 move second child to first child ( temp highp 3-component vector of float) -0:20 vector swizzle ( temp highp 3-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:20 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 2 (const int) -0:20 subgroupShuffleUp ( global highp 3-component vector of float) -0:20 vector swizzle ( temp highp 3-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:20 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 Constant: -0:20 2 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 2 (const int) -0:20 'invocation' ( temp highp uint) -0:21 move second child to first child ( temp highp 4-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 subgroupShuffleUp ( global highp 4-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 Constant: -0:21 3 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 'invocation' ( temp highp uint) -0:23 move second child to first child ( temp highp int) -0:23 direct index ( temp highp int) -0:23 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 0 (const int) -0:23 subgroupShuffleUp ( global highp int) -0:23 direct index ( temp highp int) -0:23 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 0 (const int) -0:23 'invocation' ( temp highp uint) -0:24 move second child to first child ( temp highp 2-component vector of int) -0:24 vector swizzle ( temp highp 2-component vector of int) -0:24 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 Sequence -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 subgroupShuffleUp ( global highp 2-component vector of int) -0:24 vector swizzle ( temp highp 2-component vector of int) -0:24 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 Sequence -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 'invocation' ( temp highp uint) -0:25 move second child to first child ( temp highp 3-component vector of int) -0:25 vector swizzle ( temp highp 3-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 subgroupShuffleUp ( global highp 3-component vector of int) -0:25 vector swizzle ( temp highp 3-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 Constant: -0:25 2 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 'invocation' ( temp highp uint) -0:26 move second child to first child ( temp highp 4-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 subgroupShuffleUp ( global highp 4-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 Constant: -0:26 3 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 'invocation' ( temp highp uint) -0:28 move second child to first child ( temp highp uint) -0:28 direct index ( temp highp uint) -0:28 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 Constant: -0:28 1 (const int) -0:28 Constant: -0:28 2 (const int) -0:28 Constant: -0:28 0 (const int) -0:28 subgroupShuffleUp ( global highp uint) -0:28 direct index ( temp highp uint) -0:28 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 2 (const int) -0:28 Constant: -0:28 0 (const int) -0:28 'invocation' ( temp highp uint) -0:29 move second child to first child ( temp highp 2-component vector of uint) -0:29 vector swizzle ( temp highp 2-component vector of uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 Constant: -0:29 1 (const int) -0:29 Constant: -0:29 2 (const int) -0:29 Sequence -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 1 (const int) -0:29 subgroupShuffleUp ( global highp 2-component vector of uint) -0:29 vector swizzle ( temp highp 2-component vector of uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 Constant: -0:29 1 (const int) -0:29 Constant: -0:29 2 (const int) -0:29 Sequence -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 1 (const int) -0:29 'invocation' ( temp highp uint) -0:30 move second child to first child ( temp highp 3-component vector of uint) -0:30 vector swizzle ( temp highp 3-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:30 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 subgroupShuffleUp ( global highp 3-component vector of uint) -0:30 vector swizzle ( temp highp 3-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:30 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 Constant: -0:30 2 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 'invocation' ( temp highp uint) -0:31 move second child to first child ( temp highp 4-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 subgroupShuffleUp ( global highp 4-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 Constant: -0:31 3 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 'invocation' ( temp highp uint) -0:33 move second child to first child ( temp highp int) -0:33 direct index ( temp highp int) -0:33 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 Convert bool to int ( temp highp int) -0:33 subgroupShuffleUp ( global bool, operation at highp) -0:33 Compare Less Than ( temp bool) -0:33 direct index ( temp highp int) -0:33 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 'invocation' ( temp highp uint) -0:34 move second child to first child ( temp highp 2-component vector of int) -0:34 vector swizzle ( temp highp 2-component vector of int) -0:34 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 Constant: -0:34 1 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 Sequence -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 Convert bool to int ( temp highp 2-component vector of int) -0:34 subgroupShuffleUp ( global 2-component vector of bool, operation at highp) -0:34 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:34 vector swizzle ( temp highp 2-component vector of int) -0:34 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 Constant: -0:34 1 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 Sequence -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 0 (const int) -0:34 'invocation' ( temp highp uint) -0:35 move second child to first child ( temp highp 3-component vector of int) -0:35 vector swizzle ( temp highp 3-component vector of int) -0:35 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 2 (const int) -0:35 Convert bool to int ( temp highp 3-component vector of int) -0:35 subgroupShuffleUp ( global 3-component vector of bool, operation at highp) -0:35 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:35 vector swizzle ( temp highp 3-component vector of int) -0:35 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 2 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 0 (const int) -0:35 0 (const int) -0:35 'invocation' ( temp highp uint) -0:36 move second child to first child ( temp highp 4-component vector of int) -0:36 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Convert bool to int ( temp highp 4-component vector of int) -0:36 subgroupShuffleUp ( global 4-component vector of bool, operation at highp) -0:36 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:36 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 0 (const int) -0:36 0 (const int) -0:36 0 (const int) -0:36 'invocation' ( temp highp uint) -0:38 move second child to first child ( temp highp float) -0:38 direct index ( temp highp float) -0:38 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 Constant: -0:38 2 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 subgroupShuffleDown ( global highp float) -0:38 direct index ( temp highp float) -0:38 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 'invocation' ( temp highp uint) -0:39 move second child to first child ( temp highp 2-component vector of float) -0:39 vector swizzle ( temp highp 2-component vector of float) -0:39 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 Constant: -0:39 2 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 Sequence -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 subgroupShuffleDown ( global highp 2-component vector of float) -0:39 vector swizzle ( temp highp 2-component vector of float) -0:39 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 Sequence -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 'invocation' ( temp highp uint) -0:40 move second child to first child ( temp highp 3-component vector of float) -0:40 vector swizzle ( temp highp 3-component vector of float) -0:40 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 Constant: -0:40 2 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 2 (const int) -0:40 subgroupShuffleDown ( global highp 3-component vector of float) -0:40 vector swizzle ( temp highp 3-component vector of float) -0:40 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 Constant: -0:40 2 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 2 (const int) -0:40 'invocation' ( temp highp uint) -0:41 move second child to first child ( temp highp 4-component vector of float) -0:41 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 Constant: -0:41 2 (const int) -0:41 Constant: -0:41 0 (const int) -0:41 subgroupShuffleDown ( global highp 4-component vector of float) -0:41 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 Constant: -0:41 3 (const int) -0:41 Constant: -0:41 0 (const int) -0:41 'invocation' ( temp highp uint) -0:43 move second child to first child ( temp highp int) -0:43 direct index ( temp highp int) -0:43 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:43 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 Constant: -0:43 2 (const int) -0:43 Constant: -0:43 1 (const int) -0:43 Constant: -0:43 0 (const int) -0:43 subgroupShuffleDown ( global highp int) -0:43 direct index ( temp highp int) -0:43 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:43 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 Constant: -0:43 0 (const int) -0:43 Constant: -0:43 1 (const int) -0:43 Constant: -0:43 0 (const int) -0:43 'invocation' ( temp highp uint) -0:44 move second child to first child ( temp highp 2-component vector of int) -0:44 vector swizzle ( temp highp 2-component vector of int) -0:44 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 Constant: -0:44 2 (const int) -0:44 Constant: -0:44 1 (const int) -0:44 Sequence -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 1 (const int) -0:44 subgroupShuffleDown ( global highp 2-component vector of int) -0:44 vector swizzle ( temp highp 2-component vector of int) -0:44 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 Constant: -0:44 1 (const int) -0:44 Constant: -0:44 1 (const int) -0:44 Sequence -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 1 (const int) -0:44 'invocation' ( temp highp uint) -0:45 move second child to first child ( temp highp 3-component vector of int) -0:45 vector swizzle ( temp highp 3-component vector of int) -0:45 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 Constant: -0:45 2 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 subgroupShuffleDown ( global highp 3-component vector of int) -0:45 vector swizzle ( temp highp 3-component vector of int) -0:45 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 Constant: -0:45 2 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 'invocation' ( temp highp uint) -0:46 move second child to first child ( temp highp 4-component vector of int) -0:46 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 Constant: -0:46 2 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 subgroupShuffleDown ( global highp 4-component vector of int) -0:46 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 Constant: -0:46 3 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 'invocation' ( temp highp uint) -0:48 move second child to first child ( temp highp uint) -0:48 direct index ( temp highp uint) -0:48 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:48 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 Constant: -0:48 3 (const int) -0:48 Constant: -0:48 2 (const int) -0:48 Constant: -0:48 0 (const int) -0:48 subgroupShuffleDown ( global highp uint) -0:48 direct index ( temp highp uint) -0:48 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:48 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 Constant: -0:48 0 (const int) -0:48 Constant: -0:48 2 (const int) -0:48 Constant: -0:48 0 (const int) -0:48 'invocation' ( temp highp uint) -0:49 move second child to first child ( temp highp 2-component vector of uint) -0:49 vector swizzle ( temp highp 2-component vector of uint) -0:49 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:49 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 Constant: -0:49 3 (const int) -0:49 Constant: -0:49 2 (const int) -0:49 Sequence -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 1 (const int) -0:49 subgroupShuffleDown ( global highp 2-component vector of uint) -0:49 vector swizzle ( temp highp 2-component vector of uint) -0:49 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:49 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 Constant: -0:49 1 (const int) -0:49 Constant: -0:49 2 (const int) -0:49 Sequence -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 1 (const int) -0:49 'invocation' ( temp highp uint) -0:50 move second child to first child ( temp highp 3-component vector of uint) -0:50 vector swizzle ( temp highp 3-component vector of uint) -0:50 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 Constant: -0:50 3 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 subgroupShuffleDown ( global highp 3-component vector of uint) -0:50 vector swizzle ( temp highp 3-component vector of uint) -0:50 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 Constant: -0:50 2 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 'invocation' ( temp highp uint) -0:51 move second child to first child ( temp highp 4-component vector of uint) -0:51 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 Constant: -0:51 3 (const int) -0:51 Constant: -0:51 2 (const int) -0:51 subgroupShuffleDown ( global highp 4-component vector of uint) -0:51 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 Constant: -0:51 3 (const int) -0:51 Constant: -0:51 2 (const int) -0:51 'invocation' ( temp highp uint) -0:53 move second child to first child ( temp highp int) -0:53 direct index ( temp highp int) -0:53 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:53 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 Constant: -0:53 3 (const int) -0:53 Constant: -0:53 1 (const int) -0:53 Constant: -0:53 0 (const int) -0:53 Convert bool to int ( temp highp int) -0:53 subgroupShuffleDown ( global bool, operation at highp) -0:53 Compare Less Than ( temp bool) -0:53 direct index ( temp highp int) -0:53 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:53 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 Constant: -0:53 0 (const int) -0:53 Constant: -0:53 1 (const int) -0:53 Constant: -0:53 0 (const int) -0:53 Constant: -0:53 0 (const int) -0:53 'invocation' ( temp highp uint) -0:54 move second child to first child ( temp highp 2-component vector of int) -0:54 vector swizzle ( temp highp 2-component vector of int) -0:54 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:54 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 Constant: -0:54 3 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 Sequence -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 Convert bool to int ( temp highp 2-component vector of int) -0:54 subgroupShuffleDown ( global 2-component vector of bool, operation at highp) -0:54 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:54 vector swizzle ( temp highp 2-component vector of int) -0:54 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:54 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 Constant: -0:54 1 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 Sequence -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 0 (const int) -0:54 'invocation' ( temp highp uint) -0:55 move second child to first child ( temp highp 3-component vector of int) -0:55 vector swizzle ( temp highp 3-component vector of int) -0:55 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 Constant: -0:55 3 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 2 (const int) -0:55 Convert bool to int ( temp highp 3-component vector of int) -0:55 subgroupShuffleDown ( global 3-component vector of bool, operation at highp) -0:55 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:55 vector swizzle ( temp highp 3-component vector of int) -0:55 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 2 (const int) -0:55 Constant: -0:55 0 (const int) -0:55 0 (const int) -0:55 0 (const int) -0:55 'invocation' ( temp highp uint) -0:56 move second child to first child ( temp highp 4-component vector of int) -0:56 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 Constant: -0:56 3 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Convert bool to int ( temp highp 4-component vector of int) -0:56 subgroupShuffleDown ( global 4-component vector of bool, operation at highp) -0:56 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:56 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 0 (const int) -0:56 0 (const int) -0:56 0 (const int) -0:56 0 (const int) -0:56 'invocation' ( temp highp uint) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const highp 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) - - -Linked compute stage: - - -Shader version: 320 -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_shuffle_relative -local_size = (8, 8, 1) -0:? Sequence -0:14 Function Definition: main( ( global void) -0:14 Function Parameters: -0:16 Sequence -0:16 Sequence -0:16 move second child to first child ( temp highp uint) -0:16 'invocation' ( temp highp uint) -0:16 mod ( temp mediump uint) -0:16 add ( temp mediump uint) -0:16 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID) -0:16 'gl_SubgroupSize' ( in mediump uint SubgroupSize) -0:16 Constant: -0:16 4 (const uint) -0:18 move second child to first child ( temp highp float) -0:18 direct index ( temp highp float) -0:18 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:18 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 subgroupShuffleUp ( global highp float) -0:18 direct index ( temp highp float) -0:18 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:18 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 'invocation' ( temp highp uint) -0:19 move second child to first child ( temp highp 2-component vector of float) -0:19 vector swizzle ( temp highp 2-component vector of float) -0:19 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:19 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 Sequence -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const int) -0:19 subgroupShuffleUp ( global highp 2-component vector of float) -0:19 vector swizzle ( temp highp 2-component vector of float) -0:19 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:19 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:19 Constant: -0:19 1 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 Sequence -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const int) -0:19 'invocation' ( temp highp uint) -0:20 move second child to first child ( temp highp 3-component vector of float) -0:20 vector swizzle ( temp highp 3-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:20 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 2 (const int) -0:20 subgroupShuffleUp ( global highp 3-component vector of float) -0:20 vector swizzle ( temp highp 3-component vector of float) -0:20 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:20 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:20 Constant: -0:20 2 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 2 (const int) -0:20 'invocation' ( temp highp uint) -0:21 move second child to first child ( temp highp 4-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 subgroupShuffleUp ( global highp 4-component vector of float) -0:21 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:21 Constant: -0:21 3 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 'invocation' ( temp highp uint) -0:23 move second child to first child ( temp highp int) -0:23 direct index ( temp highp int) -0:23 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 0 (const int) -0:23 subgroupShuffleUp ( global highp int) -0:23 direct index ( temp highp int) -0:23 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 0 (const int) -0:23 'invocation' ( temp highp uint) -0:24 move second child to first child ( temp highp 2-component vector of int) -0:24 vector swizzle ( temp highp 2-component vector of int) -0:24 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 Sequence -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 subgroupShuffleUp ( global highp 2-component vector of int) -0:24 vector swizzle ( temp highp 2-component vector of int) -0:24 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 Sequence -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 'invocation' ( temp highp uint) -0:25 move second child to first child ( temp highp 3-component vector of int) -0:25 vector swizzle ( temp highp 3-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 subgroupShuffleUp ( global highp 3-component vector of int) -0:25 vector swizzle ( temp highp 3-component vector of int) -0:25 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:25 Constant: -0:25 2 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Sequence -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 'invocation' ( temp highp uint) -0:26 move second child to first child ( temp highp 4-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 subgroupShuffleUp ( global highp 4-component vector of int) -0:26 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:26 Constant: -0:26 3 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 'invocation' ( temp highp uint) -0:28 move second child to first child ( temp highp uint) -0:28 direct index ( temp highp uint) -0:28 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 Constant: -0:28 1 (const int) -0:28 Constant: -0:28 2 (const int) -0:28 Constant: -0:28 0 (const int) -0:28 subgroupShuffleUp ( global highp uint) -0:28 direct index ( temp highp uint) -0:28 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 2 (const int) -0:28 Constant: -0:28 0 (const int) -0:28 'invocation' ( temp highp uint) -0:29 move second child to first child ( temp highp 2-component vector of uint) -0:29 vector swizzle ( temp highp 2-component vector of uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 Constant: -0:29 1 (const int) -0:29 Constant: -0:29 2 (const int) -0:29 Sequence -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 1 (const int) -0:29 subgroupShuffleUp ( global highp 2-component vector of uint) -0:29 vector swizzle ( temp highp 2-component vector of uint) -0:29 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:29 Constant: -0:29 1 (const int) -0:29 Constant: -0:29 2 (const int) -0:29 Sequence -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 1 (const int) -0:29 'invocation' ( temp highp uint) -0:30 move second child to first child ( temp highp 3-component vector of uint) -0:30 vector swizzle ( temp highp 3-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:30 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 subgroupShuffleUp ( global highp 3-component vector of uint) -0:30 vector swizzle ( temp highp 3-component vector of uint) -0:30 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:30 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:30 Constant: -0:30 2 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 Sequence -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 2 (const int) -0:30 'invocation' ( temp highp uint) -0:31 move second child to first child ( temp highp 4-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 subgroupShuffleUp ( global highp 4-component vector of uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:31 Constant: -0:31 3 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 'invocation' ( temp highp uint) -0:33 move second child to first child ( temp highp int) -0:33 direct index ( temp highp int) -0:33 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 Convert bool to int ( temp highp int) -0:33 subgroupShuffleUp ( global bool, operation at highp) -0:33 Compare Less Than ( temp bool) -0:33 direct index ( temp highp int) -0:33 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 'invocation' ( temp highp uint) -0:34 move second child to first child ( temp highp 2-component vector of int) -0:34 vector swizzle ( temp highp 2-component vector of int) -0:34 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 Constant: -0:34 1 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 Sequence -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 Convert bool to int ( temp highp 2-component vector of int) -0:34 subgroupShuffleUp ( global 2-component vector of bool, operation at highp) -0:34 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:34 vector swizzle ( temp highp 2-component vector of int) -0:34 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:34 Constant: -0:34 1 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 Sequence -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 0 (const int) -0:34 'invocation' ( temp highp uint) -0:35 move second child to first child ( temp highp 3-component vector of int) -0:35 vector swizzle ( temp highp 3-component vector of int) -0:35 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 2 (const int) -0:35 Convert bool to int ( temp highp 3-component vector of int) -0:35 subgroupShuffleUp ( global 3-component vector of bool, operation at highp) -0:35 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:35 vector swizzle ( temp highp 3-component vector of int) -0:35 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 2 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 0 (const int) -0:35 0 (const int) -0:35 'invocation' ( temp highp uint) -0:36 move second child to first child ( temp highp 4-component vector of int) -0:36 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Convert bool to int ( temp highp 4-component vector of int) -0:36 subgroupShuffleUp ( global 4-component vector of bool, operation at highp) -0:36 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:36 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 0 (const int) -0:36 0 (const int) -0:36 0 (const int) -0:36 'invocation' ( temp highp uint) -0:38 move second child to first child ( temp highp float) -0:38 direct index ( temp highp float) -0:38 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 Constant: -0:38 2 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 subgroupShuffleDown ( global highp float) -0:38 direct index ( temp highp float) -0:38 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 'invocation' ( temp highp uint) -0:39 move second child to first child ( temp highp 2-component vector of float) -0:39 vector swizzle ( temp highp 2-component vector of float) -0:39 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 Constant: -0:39 2 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 Sequence -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 subgroupShuffleDown ( global highp 2-component vector of float) -0:39 vector swizzle ( temp highp 2-component vector of float) -0:39 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 Sequence -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 'invocation' ( temp highp uint) -0:40 move second child to first child ( temp highp 3-component vector of float) -0:40 vector swizzle ( temp highp 3-component vector of float) -0:40 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 Constant: -0:40 2 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 2 (const int) -0:40 subgroupShuffleDown ( global highp 3-component vector of float) -0:40 vector swizzle ( temp highp 3-component vector of float) -0:40 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:40 Constant: -0:40 2 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 2 (const int) -0:40 'invocation' ( temp highp uint) -0:41 move second child to first child ( temp highp 4-component vector of float) -0:41 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 Constant: -0:41 2 (const int) -0:41 Constant: -0:41 0 (const int) -0:41 subgroupShuffleDown ( global highp 4-component vector of float) -0:41 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:41 Constant: -0:41 3 (const int) -0:41 Constant: -0:41 0 (const int) -0:41 'invocation' ( temp highp uint) -0:43 move second child to first child ( temp highp int) -0:43 direct index ( temp highp int) -0:43 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:43 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 Constant: -0:43 2 (const int) -0:43 Constant: -0:43 1 (const int) -0:43 Constant: -0:43 0 (const int) -0:43 subgroupShuffleDown ( global highp int) -0:43 direct index ( temp highp int) -0:43 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:43 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:43 Constant: -0:43 0 (const int) -0:43 Constant: -0:43 1 (const int) -0:43 Constant: -0:43 0 (const int) -0:43 'invocation' ( temp highp uint) -0:44 move second child to first child ( temp highp 2-component vector of int) -0:44 vector swizzle ( temp highp 2-component vector of int) -0:44 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 Constant: -0:44 2 (const int) -0:44 Constant: -0:44 1 (const int) -0:44 Sequence -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 1 (const int) -0:44 subgroupShuffleDown ( global highp 2-component vector of int) -0:44 vector swizzle ( temp highp 2-component vector of int) -0:44 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:44 Constant: -0:44 1 (const int) -0:44 Constant: -0:44 1 (const int) -0:44 Sequence -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 1 (const int) -0:44 'invocation' ( temp highp uint) -0:45 move second child to first child ( temp highp 3-component vector of int) -0:45 vector swizzle ( temp highp 3-component vector of int) -0:45 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 Constant: -0:45 2 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 subgroupShuffleDown ( global highp 3-component vector of int) -0:45 vector swizzle ( temp highp 3-component vector of int) -0:45 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:45 Constant: -0:45 2 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Sequence -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 'invocation' ( temp highp uint) -0:46 move second child to first child ( temp highp 4-component vector of int) -0:46 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 Constant: -0:46 2 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 subgroupShuffleDown ( global highp 4-component vector of int) -0:46 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:46 Constant: -0:46 3 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 'invocation' ( temp highp uint) -0:48 move second child to first child ( temp highp uint) -0:48 direct index ( temp highp uint) -0:48 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:48 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 Constant: -0:48 3 (const int) -0:48 Constant: -0:48 2 (const int) -0:48 Constant: -0:48 0 (const int) -0:48 subgroupShuffleDown ( global highp uint) -0:48 direct index ( temp highp uint) -0:48 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:48 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:48 Constant: -0:48 0 (const int) -0:48 Constant: -0:48 2 (const int) -0:48 Constant: -0:48 0 (const int) -0:48 'invocation' ( temp highp uint) -0:49 move second child to first child ( temp highp 2-component vector of uint) -0:49 vector swizzle ( temp highp 2-component vector of uint) -0:49 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:49 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 Constant: -0:49 3 (const int) -0:49 Constant: -0:49 2 (const int) -0:49 Sequence -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 1 (const int) -0:49 subgroupShuffleDown ( global highp 2-component vector of uint) -0:49 vector swizzle ( temp highp 2-component vector of uint) -0:49 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:49 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:49 Constant: -0:49 1 (const int) -0:49 Constant: -0:49 2 (const int) -0:49 Sequence -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 1 (const int) -0:49 'invocation' ( temp highp uint) -0:50 move second child to first child ( temp highp 3-component vector of uint) -0:50 vector swizzle ( temp highp 3-component vector of uint) -0:50 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 Constant: -0:50 3 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 subgroupShuffleDown ( global highp 3-component vector of uint) -0:50 vector swizzle ( temp highp 3-component vector of uint) -0:50 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:50 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:50 Constant: -0:50 2 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 Sequence -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const int) -0:50 Constant: -0:50 2 (const int) -0:50 'invocation' ( temp highp uint) -0:51 move second child to first child ( temp highp 4-component vector of uint) -0:51 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 Constant: -0:51 3 (const int) -0:51 Constant: -0:51 2 (const int) -0:51 subgroupShuffleDown ( global highp 4-component vector of uint) -0:51 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:51 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:51 Constant: -0:51 3 (const int) -0:51 Constant: -0:51 2 (const int) -0:51 'invocation' ( temp highp uint) -0:53 move second child to first child ( temp highp int) -0:53 direct index ( temp highp int) -0:53 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:53 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 Constant: -0:53 3 (const int) -0:53 Constant: -0:53 1 (const int) -0:53 Constant: -0:53 0 (const int) -0:53 Convert bool to int ( temp highp int) -0:53 subgroupShuffleDown ( global bool, operation at highp) -0:53 Compare Less Than ( temp bool) -0:53 direct index ( temp highp int) -0:53 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:53 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:53 Constant: -0:53 0 (const int) -0:53 Constant: -0:53 1 (const int) -0:53 Constant: -0:53 0 (const int) -0:53 Constant: -0:53 0 (const int) -0:53 'invocation' ( temp highp uint) -0:54 move second child to first child ( temp highp 2-component vector of int) -0:54 vector swizzle ( temp highp 2-component vector of int) -0:54 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:54 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 Constant: -0:54 3 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 Sequence -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 Convert bool to int ( temp highp 2-component vector of int) -0:54 subgroupShuffleDown ( global 2-component vector of bool, operation at highp) -0:54 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:54 vector swizzle ( temp highp 2-component vector of int) -0:54 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:54 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:54 Constant: -0:54 1 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 Sequence -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 0 (const int) -0:54 'invocation' ( temp highp uint) -0:55 move second child to first child ( temp highp 3-component vector of int) -0:55 vector swizzle ( temp highp 3-component vector of int) -0:55 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 Constant: -0:55 3 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 2 (const int) -0:55 Convert bool to int ( temp highp 3-component vector of int) -0:55 subgroupShuffleDown ( global 3-component vector of bool, operation at highp) -0:55 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:55 vector swizzle ( temp highp 3-component vector of int) -0:55 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:55 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Sequence -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 1 (const int) -0:55 Constant: -0:55 2 (const int) -0:55 Constant: -0:55 0 (const int) -0:55 0 (const int) -0:55 0 (const int) -0:55 'invocation' ( temp highp uint) -0:56 move second child to first child ( temp highp 4-component vector of int) -0:56 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 Constant: -0:56 3 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Convert bool to int ( temp highp 4-component vector of int) -0:56 subgroupShuffleDown ( global 4-component vector of bool, operation at highp) -0:56 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:56 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:56 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 0 (const int) -0:56 0 (const int) -0:56 0 (const int) -0:56 0 (const int) -0:56 'invocation' ( temp highp uint) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const highp 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4}) - diff --git a/deps/glslang/Test/baseResults/glsl.es320.subgroupVote.comp.out b/deps/glslang/Test/baseResults/glsl.es320.subgroupVote.comp.out deleted file mode 100644 index 34c4f394..00000000 --- a/deps/glslang/Test/baseResults/glsl.es320.subgroupVote.comp.out +++ /dev/null @@ -1,845 +0,0 @@ -glsl.es320.subgroupVote.comp -Shader version: 320 -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_vote -local_size = (8, 8, 1) -0:? Sequence -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 highp uint) -0:17 'invocation' ( temp highp uint) -0:17 mod ( temp mediump uint) -0:17 add ( temp mediump uint) -0:17 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID) -0:17 'gl_SubgroupSize' ( in mediump uint SubgroupSize) -0:17 Constant: -0:17 4 (const uint) -0:19 Test condition and select ( temp void) -0:19 Condition -0:19 subgroupAll ( global bool) -0:19 Compare Less Than ( temp bool) -0:19 r: direct index for structure (layout( column_major shared) buffer highp int) -0:19 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 3 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 true case -0:21 Sequence -0:21 move second child to first child ( temp highp int) -0:21 r: direct index for structure (layout( column_major shared) buffer highp int) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 3 (const int) -0:21 Convert bool to int ( temp highp int) -0:21 subgroupAllEqual ( global bool, operation at highp) -0:21 direct index ( temp highp float) -0:21 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 0 (const int) -0:22 move second child to first child ( temp highp int) -0:22 r: direct index for structure (layout( column_major shared) buffer highp int) -0:22 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 3 (const int) -0:22 Convert bool to int ( temp highp int) -0:22 subgroupAllEqual ( global bool, operation at highp) -0:22 vector swizzle ( temp highp 2-component vector of float) -0:22 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:22 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:22 Constant: -0:22 1 (const int) -0:22 Constant: -0:22 0 (const int) -0:22 Sequence -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:23 move second child to first child ( temp highp int) -0:23 r: direct index for structure (layout( column_major shared) buffer highp int) -0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 3 (const int) -0:23 Convert bool to int ( temp highp int) -0:23 subgroupAllEqual ( global bool, operation at highp) -0:23 vector swizzle ( temp highp 3-component vector of float) -0:23 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:23 Constant: -0:23 2 (const int) -0:23 Constant: -0:23 0 (const int) -0:23 Sequence -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 2 (const int) -0:24 move second child to first child ( temp highp int) -0:24 r: direct index for structure (layout( column_major shared) buffer highp int) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 3 (const int) -0:24 Convert bool to int ( temp highp int) -0:24 subgroupAllEqual ( global bool, operation at highp) -0:24 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:24 Constant: -0:24 3 (const int) -0:24 Constant: -0:24 0 (const int) -0:26 move second child to first child ( temp highp int) -0:26 r: direct index for structure (layout( column_major shared) buffer highp int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 3 (const int) -0:26 Convert bool to int ( temp highp int) -0:26 subgroupAllEqual ( global bool, operation at highp) -0:26 direct index ( temp highp int) -0:26 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 0 (const int) -0:27 move second child to first child ( temp highp int) -0:27 r: direct index for structure (layout( column_major shared) buffer highp int) -0:27 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 3 (const int) -0:27 Convert bool to int ( temp highp int) -0:27 subgroupAllEqual ( global bool, operation at highp) -0:27 vector swizzle ( temp highp 2-component vector of int) -0:27 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:27 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:27 Constant: -0:27 1 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Sequence -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 1 (const int) -0:28 move second child to first child ( temp highp int) -0:28 r: direct index for structure (layout( column_major shared) buffer highp int) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 3 (const int) -0:28 Convert bool to int ( temp highp int) -0:28 subgroupAllEqual ( global bool, operation at highp) -0:28 vector swizzle ( temp highp 3-component vector of int) -0:28 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:28 Constant: -0:28 2 (const int) -0:28 Constant: -0:28 1 (const int) -0:28 Sequence -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 1 (const int) -0:28 Constant: -0:28 2 (const int) -0:29 move second child to first child ( temp highp int) -0:29 r: direct index for structure (layout( column_major shared) buffer highp int) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 3 (const int) -0:29 Convert bool to int ( temp highp int) -0:29 subgroupAllEqual ( global bool, operation at highp) -0:29 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:29 Constant: -0:29 3 (const int) -0:29 Constant: -0:29 1 (const int) -0:31 move second child to first child ( temp highp int) -0:31 r: direct index for structure (layout( column_major shared) buffer highp int) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 3 (const int) -0:31 Convert bool to int ( temp highp int) -0:31 subgroupAllEqual ( global bool, operation at highp) -0:31 direct index ( temp highp uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 Constant: -0:31 0 (const int) -0:32 move second child to first child ( temp highp int) -0:32 r: direct index for structure (layout( column_major shared) buffer highp int) -0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 3 (const int) -0:32 Convert bool to int ( temp highp int) -0:32 subgroupAllEqual ( global bool, operation at highp) -0:32 vector swizzle ( temp highp 2-component vector of uint) -0:32 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:32 Constant: -0:32 1 (const int) -0:32 Constant: -0:32 2 (const int) -0:32 Sequence -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 1 (const int) -0:33 move second child to first child ( temp highp int) -0:33 r: direct index for structure (layout( column_major shared) buffer highp int) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 3 (const int) -0:33 Convert bool to int ( temp highp int) -0:33 subgroupAllEqual ( global bool, operation at highp) -0:33 vector swizzle ( temp highp 3-component vector of uint) -0:33 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:33 Constant: -0:33 2 (const int) -0:33 Constant: -0:33 2 (const int) -0:33 Sequence -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 2 (const int) -0:34 move second child to first child ( temp highp int) -0:34 r: direct index for structure (layout( column_major shared) buffer highp int) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 3 (const int) -0:34 Convert bool to int ( temp highp int) -0:34 subgroupAllEqual ( global bool, operation at highp) -0:34 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:34 Constant: -0:34 3 (const int) -0:34 Constant: -0:34 2 (const int) -0:19 false case -0:36 Test condition and select ( temp void) -0:36 Condition -0:36 subgroupAny ( global bool) -0:36 Compare Less Than ( temp bool) -0:36 r: direct index for structure (layout( column_major shared) buffer highp int) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 3 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 true case -0:38 Sequence -0:38 move second child to first child ( temp highp int) -0:38 r: direct index for structure (layout( column_major shared) buffer highp int) -0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:38 Constant: -0:38 1 (const int) -0:38 Constant: -0:38 3 (const int) -0:38 Construct int ( temp highp int) -0:38 Convert bool to int ( temp highp int) -0:38 subgroupAllEqual ( global bool) -0:38 Compare Less Than ( temp bool) -0:38 direct index ( temp highp int) -0:38 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 1 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 0 (const int) -0:39 move second child to first child ( temp highp int) -0:39 r: direct index for structure (layout( column_major shared) buffer highp int) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 3 (const int) -0:39 Construct int ( temp highp int) -0:39 Construct ivec2 ( temp highp 2-component vector of int) -0:39 Convert bool to int ( temp highp int) -0:39 subgroupAllEqual ( global bool) -0:39 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:39 vector swizzle ( temp highp 2-component vector of int) -0:39 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 Sequence -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 0 (const int) -0:40 move second child to first child ( temp highp int) -0:40 r: direct index for structure (layout( column_major shared) buffer highp int) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 3 (const int) -0:40 Construct int ( temp highp int) -0:40 Construct ivec3 ( temp highp 3-component vector of int) -0:40 Convert bool to int ( temp highp int) -0:40 subgroupAllEqual ( global bool) -0:40 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:40 vector swizzle ( temp highp 3-component vector of int) -0:40 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 2 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 0 (const int) -0:40 0 (const int) -0:41 move second child to first child ( temp highp int) -0:41 r: direct index for structure (layout( column_major shared) buffer highp int) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 3 (const int) -0:41 Construct int ( temp highp int) -0:41 Construct ivec4 ( temp highp 4-component vector of int) -0:41 Convert bool to int ( temp highp int) -0:41 subgroupAllEqual ( global bool) -0:41 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:41 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 0 (const int) -0:41 0 (const int) -0:41 0 (const int) -0:41 0 (const int) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const highp 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) - - -Linked compute stage: - - -Shader version: 320 -Requested GL_KHR_shader_subgroup_basic -Requested GL_KHR_shader_subgroup_vote -local_size = (8, 8, 1) -0:? Sequence -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 highp uint) -0:17 'invocation' ( temp highp uint) -0:17 mod ( temp mediump uint) -0:17 add ( temp mediump uint) -0:17 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID) -0:17 'gl_SubgroupSize' ( in mediump uint SubgroupSize) -0:17 Constant: -0:17 4 (const uint) -0:19 Test condition and select ( temp void) -0:19 Condition -0:19 subgroupAll ( global bool) -0:19 Compare Less Than ( temp bool) -0:19 r: direct index for structure (layout( column_major shared) buffer highp int) -0:19 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 3 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 true case -0:21 Sequence -0:21 move second child to first child ( temp highp int) -0:21 r: direct index for structure (layout( column_major shared) buffer highp int) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 3 (const int) -0:21 Convert bool to int ( temp highp int) -0:21 subgroupAllEqual ( global bool, operation at highp) -0:21 direct index ( temp highp float) -0:21 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 0 (const int) -0:22 move second child to first child ( temp highp int) -0:22 r: direct index for structure (layout( column_major shared) buffer highp int) -0:22 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 3 (const int) -0:22 Convert bool to int ( temp highp int) -0:22 subgroupAllEqual ( global bool, operation at highp) -0:22 vector swizzle ( temp highp 2-component vector of float) -0:22 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:22 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:22 Constant: -0:22 1 (const int) -0:22 Constant: -0:22 0 (const int) -0:22 Sequence -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:23 move second child to first child ( temp highp int) -0:23 r: direct index for structure (layout( column_major shared) buffer highp int) -0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 3 (const int) -0:23 Convert bool to int ( temp highp int) -0:23 subgroupAllEqual ( global bool, operation at highp) -0:23 vector swizzle ( temp highp 3-component vector of float) -0:23 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:23 Constant: -0:23 2 (const int) -0:23 Constant: -0:23 0 (const int) -0:23 Sequence -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 2 (const int) -0:24 move second child to first child ( temp highp int) -0:24 r: direct index for structure (layout( column_major shared) buffer highp int) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 3 (const int) -0:24 Convert bool to int ( temp highp int) -0:24 subgroupAllEqual ( global bool, operation at highp) -0:24 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float) -0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:24 Constant: -0:24 3 (const int) -0:24 Constant: -0:24 0 (const int) -0:26 move second child to first child ( temp highp int) -0:26 r: direct index for structure (layout( column_major shared) buffer highp int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 3 (const int) -0:26 Convert bool to int ( temp highp int) -0:26 subgroupAllEqual ( global bool, operation at highp) -0:26 direct index ( temp highp int) -0:26 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 0 (const int) -0:27 move second child to first child ( temp highp int) -0:27 r: direct index for structure (layout( column_major shared) buffer highp int) -0:27 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 3 (const int) -0:27 Convert bool to int ( temp highp int) -0:27 subgroupAllEqual ( global bool, operation at highp) -0:27 vector swizzle ( temp highp 2-component vector of int) -0:27 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:27 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:27 Constant: -0:27 1 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Sequence -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 1 (const int) -0:28 move second child to first child ( temp highp int) -0:28 r: direct index for structure (layout( column_major shared) buffer highp int) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 3 (const int) -0:28 Convert bool to int ( temp highp int) -0:28 subgroupAllEqual ( global bool, operation at highp) -0:28 vector swizzle ( temp highp 3-component vector of int) -0:28 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:28 Constant: -0:28 2 (const int) -0:28 Constant: -0:28 1 (const int) -0:28 Sequence -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 1 (const int) -0:28 Constant: -0:28 2 (const int) -0:29 move second child to first child ( temp highp int) -0:29 r: direct index for structure (layout( column_major shared) buffer highp int) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 3 (const int) -0:29 Convert bool to int ( temp highp int) -0:29 subgroupAllEqual ( global bool, operation at highp) -0:29 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:29 Constant: -0:29 3 (const int) -0:29 Constant: -0:29 1 (const int) -0:31 move second child to first child ( temp highp int) -0:31 r: direct index for structure (layout( column_major shared) buffer highp int) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 3 (const int) -0:31 Convert bool to int ( temp highp int) -0:31 subgroupAllEqual ( global bool, operation at highp) -0:31 direct index ( temp highp uint) -0:31 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 Constant: -0:31 0 (const int) -0:32 move second child to first child ( temp highp int) -0:32 r: direct index for structure (layout( column_major shared) buffer highp int) -0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 3 (const int) -0:32 Convert bool to int ( temp highp int) -0:32 subgroupAllEqual ( global bool, operation at highp) -0:32 vector swizzle ( temp highp 2-component vector of uint) -0:32 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:32 Constant: -0:32 1 (const int) -0:32 Constant: -0:32 2 (const int) -0:32 Sequence -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 1 (const int) -0:33 move second child to first child ( temp highp int) -0:33 r: direct index for structure (layout( column_major shared) buffer highp int) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 3 (const int) -0:33 Convert bool to int ( temp highp int) -0:33 subgroupAllEqual ( global bool, operation at highp) -0:33 vector swizzle ( temp highp 3-component vector of uint) -0:33 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:33 Constant: -0:33 2 (const int) -0:33 Constant: -0:33 2 (const int) -0:33 Sequence -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 2 (const int) -0:34 move second child to first child ( temp highp int) -0:34 r: direct index for structure (layout( column_major shared) buffer highp int) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 3 (const int) -0:34 Convert bool to int ( temp highp int) -0:34 subgroupAllEqual ( global bool, operation at highp) -0:34 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint) -0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:34 Constant: -0:34 3 (const int) -0:34 Constant: -0:34 2 (const int) -0:19 false case -0:36 Test condition and select ( temp void) -0:36 Condition -0:36 subgroupAny ( global bool) -0:36 Compare Less Than ( temp bool) -0:36 r: direct index for structure (layout( column_major shared) buffer highp int) -0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 3 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 true case -0:38 Sequence -0:38 move second child to first child ( temp highp int) -0:38 r: direct index for structure (layout( column_major shared) buffer highp int) -0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:38 Constant: -0:38 1 (const int) -0:38 Constant: -0:38 3 (const int) -0:38 Construct int ( temp highp int) -0:38 Convert bool to int ( temp highp int) -0:38 subgroupAllEqual ( global bool) -0:38 Compare Less Than ( temp bool) -0:38 direct index ( temp highp int) -0:38 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 1 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 0 (const int) -0:39 move second child to first child ( temp highp int) -0:39 r: direct index for structure (layout( column_major shared) buffer highp int) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 3 (const int) -0:39 Construct int ( temp highp int) -0:39 Construct ivec2 ( temp highp 2-component vector of int) -0:39 Convert bool to int ( temp highp int) -0:39 subgroupAllEqual ( global bool) -0:39 Compare Less Than ( global 2-component vector of bool, operation at highp) -0:39 vector swizzle ( temp highp 2-component vector of int) -0:39 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 Sequence -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 0 (const int) -0:40 move second child to first child ( temp highp int) -0:40 r: direct index for structure (layout( column_major shared) buffer highp int) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 3 (const int) -0:40 Construct int ( temp highp int) -0:40 Construct ivec3 ( temp highp 3-component vector of int) -0:40 Convert bool to int ( temp highp int) -0:40 subgroupAllEqual ( global bool) -0:40 Compare Less Than ( global 3-component vector of bool, operation at highp) -0:40 vector swizzle ( temp highp 3-component vector of int) -0:40 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 2 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 0 (const int) -0:40 0 (const int) -0:41 move second child to first child ( temp highp int) -0:41 r: direct index for structure (layout( column_major shared) buffer highp int) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 3 (const int) -0:41 Construct int ( temp highp int) -0:41 Construct ivec4 ( temp highp 4-component vector of int) -0:41 Convert bool to int ( temp highp int) -0:41 subgroupAllEqual ( global bool) -0:41 Compare Less Than ( global 4-component vector of bool, operation at highp) -0:41 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int) -0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 0 (const int) -0:41 0 (const int) -0:41 0 (const int) -0:41 0 (const int) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const highp 3-component vector of uint WorkGroupSize) -0:? 8 (const uint) -0:? 8 (const uint) -0:? 1 (const uint) -0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r}) - diff --git a/deps/glslang/Test/baseResults/glsl.versionOverride.comp.out b/deps/glslang/Test/baseResults/glsl.versionOverride.comp.out deleted file mode 100644 index 591ce4d9..00000000 --- a/deps/glslang/Test/baseResults/glsl.versionOverride.comp.out +++ /dev/null @@ -1 +0,0 @@ -glsl.versionOverride.comp diff --git a/deps/glslang/Test/baseResults/glsl.versionOverride.frag.out b/deps/glslang/Test/baseResults/glsl.versionOverride.frag.out deleted file mode 100644 index b759a47f..00000000 --- a/deps/glslang/Test/baseResults/glsl.versionOverride.frag.out +++ /dev/null @@ -1 +0,0 @@ -glsl.versionOverride.frag diff --git a/deps/glslang/Test/baseResults/glsl.versionOverride.geom.out b/deps/glslang/Test/baseResults/glsl.versionOverride.geom.out deleted file mode 100644 index 758d9d49..00000000 --- a/deps/glslang/Test/baseResults/glsl.versionOverride.geom.out +++ /dev/null @@ -1 +0,0 @@ -glsl.versionOverride.geom diff --git a/deps/glslang/Test/baseResults/glsl.versionOverride.tesc.out b/deps/glslang/Test/baseResults/glsl.versionOverride.tesc.out deleted file mode 100644 index 4aedf0d8..00000000 --- a/deps/glslang/Test/baseResults/glsl.versionOverride.tesc.out +++ /dev/null @@ -1 +0,0 @@ -glsl.versionOverride.tesc diff --git a/deps/glslang/Test/baseResults/glsl.versionOverride.tese.out b/deps/glslang/Test/baseResults/glsl.versionOverride.tese.out deleted file mode 100644 index c3632e8a..00000000 --- a/deps/glslang/Test/baseResults/glsl.versionOverride.tese.out +++ /dev/null @@ -1 +0,0 @@ -glsl.versionOverride.tese diff --git a/deps/glslang/Test/baseResults/glsl.versionOverride.vert.out b/deps/glslang/Test/baseResults/glsl.versionOverride.vert.out deleted file mode 100644 index d42dc3d8..00000000 --- a/deps/glslang/Test/baseResults/glsl.versionOverride.vert.out +++ /dev/null @@ -1 +0,0 @@ -glsl.versionOverride.vert diff --git a/deps/glslang/Test/baseResults/glspv.esversion.vert.out b/deps/glslang/Test/baseResults/glspv.esversion.vert.out deleted file mode 100644 index 2a0932ab..00000000 --- a/deps/glslang/Test/baseResults/glspv.esversion.vert.out +++ /dev/null @@ -1,25 +0,0 @@ -glspv.esversion.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 10 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 8 9 - Source ESSL 310 - Name 4 "main" - Name 8 "gl_VertexID" - Name 9 "gl_InstanceID" - Decorate 8(gl_VertexID) BuiltIn VertexId - Decorate 9(gl_InstanceID) BuiltIn InstanceId - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Input 6(int) - 8(gl_VertexID): 7(ptr) Variable Input -9(gl_InstanceID): 7(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/glspv.frag.out b/deps/glslang/Test/baseResults/glspv.frag.out deleted file mode 100644 index db752133..00000000 --- a/deps/glslang/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/Test/baseResults/glspv.version.frag.out b/deps/glslang/Test/baseResults/glspv.version.frag.out deleted file mode 100644 index a90d9eb8..00000000 --- a/deps/glslang/Test/baseResults/glspv.version.frag.out +++ /dev/null @@ -1,20 +0,0 @@ -glspv.version.frag -ERROR: #version: compilation for SPIR-V does not support the compatibility profile - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 6 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginLowerLeft - Source GLSL 330 - Name 4 "main" - 2: TypeVoid - 3: TypeFunction 2 - 4(main): 2 Function None 3 - 5: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/glspv.version.vert.out b/deps/glslang/Test/baseResults/glspv.version.vert.out deleted file mode 100644 index 9683b3bd..00000000 --- a/deps/glslang/Test/baseResults/glspv.version.vert.out +++ /dev/null @@ -1,6 +0,0 @@ -glspv.version.vert -ERROR: #version: Desktop shaders for OpenGL SPIR-V require version 330 or higher -ERROR: 1 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/glspv.vert.out b/deps/glslang/Test/baseResults/glspv.vert.out deleted file mode 100644 index d5192628..00000000 --- a/deps/glslang/Test/baseResults/glspv.vert.out +++ /dev/null @@ -1,15 +0,0 @@ -glspv.vert -ERROR: 0:3: 'push_constant' : only allowed when using GLSL for Vulkan -ERROR: 0:6: 'descriptor set' : only allowed when using GLSL for Vulkan -ERROR: 0:8: 'shared' : not allowed when generating SPIR-V -ERROR: 0:8: 'binding' : uniform/buffer blocks require layout(binding=X) -ERROR: 0:9: 'packed' : not allowed when generating SPIR-V -ERROR: 0:9: 'binding' : uniform/buffer blocks require layout(binding=X) -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: 10 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/hlsl.-D-U.frag.out b/deps/glslang/Test/baseResults/hlsl.-D-U.frag.out deleted file mode 100644 index 06842e80..00000000 --- a/deps/glslang/Test/baseResults/hlsl.-D-U.frag.out +++ /dev/null @@ -1,65 +0,0 @@ -hlsl.-D-U.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:7 Function Definition: @main( ( temp void) -0:7 Function Parameters: -0:? Sequence -0:9 move second child to first child ( temp 4-component vector of float) -0:9 'color' ( global 4-component vector of float) -0:9 Constant: -0:9 1.000000 -0:9 1.000000 -0:9 1.000000 -0:9 1.000000 -0:15 subtract second child into first child ( temp 4-component vector of float) -0:15 'color' ( global 4-component vector of float) -0:15 Constant: -0:15 5.000000 -0:21 Post-Increment ( temp 4-component vector of float) -0:21 'color' ( global 4-component vector of float) -0:29 vector scale second child into first child ( temp 4-component vector of float) -0:29 'color' ( global 4-component vector of float) -0:29 Constant: -0:29 3.000000 -0:7 Function Definition: main( ( temp void) -0:7 Function Parameters: -0:? Sequence -0:7 Function Call: @main( ( temp void) -0:? Linker Objects -0:? 'color' ( global 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:7 Function Definition: @main( ( temp void) -0:7 Function Parameters: -0:? Sequence -0:9 move second child to first child ( temp 4-component vector of float) -0:9 'color' ( global 4-component vector of float) -0:9 Constant: -0:9 1.000000 -0:9 1.000000 -0:9 1.000000 -0:9 1.000000 -0:15 subtract second child into first child ( temp 4-component vector of float) -0:15 'color' ( global 4-component vector of float) -0:15 Constant: -0:15 5.000000 -0:21 Post-Increment ( temp 4-component vector of float) -0:21 'color' ( global 4-component vector of float) -0:29 vector scale second child into first child ( temp 4-component vector of float) -0:29 'color' ( global 4-component vector of float) -0:29 Constant: -0:29 3.000000 -0:7 Function Definition: main( ( temp void) -0:7 Function Parameters: -0:? Sequence -0:7 Function Call: @main( ( temp void) -0:? Linker Objects -0:? 'color' ( global 4-component vector of float) - diff --git a/deps/glslang/Test/baseResults/hlsl.PointSize.geom.out b/deps/glslang/Test/baseResults/hlsl.PointSize.geom.out deleted file mode 100644 index 2b3d9544..00000000 --- a/deps/glslang/Test/baseResults/hlsl.PointSize.geom.out +++ /dev/null @@ -1,144 +0,0 @@ -hlsl.PointSize.geom -Shader version: 500 -invocations = -1 -max_vertices = 4 -input primitive = triangles -output primitive = line_strip -0:? Sequence -0:8 Function Definition: @main(u1[3];struct-S-f11; ( temp void) -0:8 Function Parameters: -0:8 'ps' ( in 3-element array of uint) -0:8 'OutputStream' ( out structure{ temp float ps}) -0:? Sequence -0:10 Sequence -0:10 Sequence -0:10 move second child to first child ( temp float) -0:? 'OutputStream.ps' ( out float PointSize) -0:10 ps: direct index for structure ( temp float) -0:10 's' ( temp structure{ temp float ps}) -0:10 Constant: -0:10 0 (const int) -0:10 EmitVertex ( temp void) -0:8 Function Definition: main( ( temp void) -0:8 Function Parameters: -0:? Sequence -0:8 move second child to first child ( temp 3-element array of uint) -0:? 'ps' ( temp 3-element array of uint) -0:? 'ps' ( in 3-element array of uint PointSize) -0:8 Function Call: @main(u1[3];struct-S-f11; ( temp void) -0:? 'ps' ( temp 3-element array of uint) -0:? 'OutputStream' ( temp structure{ temp float ps}) -0:? Linker Objects -0:? 'ps' ( in 3-element array of uint PointSize) -0:? 'OutputStream.ps' ( out float PointSize) - - -Linked geometry stage: - - -Shader version: 500 -invocations = 1 -max_vertices = 4 -input primitive = triangles -output primitive = line_strip -0:? Sequence -0:8 Function Definition: @main(u1[3];struct-S-f11; ( temp void) -0:8 Function Parameters: -0:8 'ps' ( in 3-element array of uint) -0:8 'OutputStream' ( out structure{ temp float ps}) -0:? Sequence -0:10 Sequence -0:10 Sequence -0:10 move second child to first child ( temp float) -0:? 'OutputStream.ps' ( out float PointSize) -0:10 ps: direct index for structure ( temp float) -0:10 's' ( temp structure{ temp float ps}) -0:10 Constant: -0:10 0 (const int) -0:10 EmitVertex ( temp void) -0:8 Function Definition: main( ( temp void) -0:8 Function Parameters: -0:? Sequence -0:8 move second child to first child ( temp 3-element array of uint) -0:? 'ps' ( temp 3-element array of uint) -0:? 'ps' ( in 3-element array of uint PointSize) -0:8 Function Call: @main(u1[3];struct-S-f11; ( temp void) -0:? 'ps' ( temp 3-element array of uint) -0:? 'OutputStream' ( temp structure{ temp float ps}) -0:? Linker Objects -0:? 'ps' ( in 3-element array of uint PointSize) -0:? 'OutputStream.ps' ( out float PointSize) - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 36 - - Capability Geometry - Capability GeometryPointSize - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Geometry 4 "main" 19 28 - ExecutionMode 4 Triangles - ExecutionMode 4 Invocations 1 - ExecutionMode 4 OutputLineStrip - ExecutionMode 4 OutputVertices 4 - Source HLSL 500 - Name 4 "main" - Name 11 "S" - MemberName 11(S) 0 "ps" - Name 16 "@main(u1[3];struct-S-f11;" - Name 14 "ps" - Name 15 "OutputStream" - Name 19 "OutputStream.ps" - Name 20 "s" - Name 26 "ps" - Name 28 "ps" - Name 30 "OutputStream" - Name 31 "param" - Name 33 "param" - Decorate 19(OutputStream.ps) BuiltIn PointSize - Decorate 28(ps) BuiltIn PointSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: 6(int) Constant 3 - 8: TypeArray 6(int) 7 - 9: TypePointer Function 8 - 10: TypeFloat 32 - 11(S): TypeStruct 10(float) - 12: TypePointer Function 11(S) - 13: TypeFunction 2 9(ptr) 12(ptr) - 18: TypePointer Output 10(float) -19(OutputStream.ps): 18(ptr) Variable Output - 21: TypeInt 32 1 - 22: 21(int) Constant 0 - 23: TypePointer Function 10(float) - 27: TypePointer Input 8 - 28(ps): 27(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 26(ps): 9(ptr) Variable Function -30(OutputStream): 12(ptr) Variable Function - 31(param): 9(ptr) Variable Function - 33(param): 12(ptr) Variable Function - 29: 8 Load 28(ps) - Store 26(ps) 29 - 32: 8 Load 26(ps) - Store 31(param) 32 - 34: 2 FunctionCall 16(@main(u1[3];struct-S-f11;) 31(param) 33(param) - 35: 11(S) Load 33(param) - Store 30(OutputStream) 35 - Return - FunctionEnd -16(@main(u1[3];struct-S-f11;): 2 Function None 13 - 14(ps): 9(ptr) FunctionParameter -15(OutputStream): 12(ptr) FunctionParameter - 17: Label - 20(s): 12(ptr) Variable Function - 24: 23(ptr) AccessChain 20(s) 22 - 25: 10(float) Load 24 - Store 19(OutputStream.ps) 25 - EmitVertex - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.PointSize.vert.out b/deps/glslang/Test/baseResults/hlsl.PointSize.vert.out deleted file mode 100644 index 12a4d646..00000000 --- a/deps/glslang/Test/baseResults/hlsl.PointSize.vert.out +++ /dev/null @@ -1,69 +0,0 @@ -hlsl.PointSize.vert -Shader version: 500 -0:? Sequence -0:2 Function Definition: @main( ( temp float) -0:2 Function Parameters: -0:? Sequence -0:3 Branch: Return with expression -0:3 Constant: -0:3 2.300000 -0:2 Function Definition: main( ( temp void) -0:2 Function Parameters: -0:? Sequence -0:2 move second child to first child ( temp float) -0:? '@entryPointOutput' ( out float PointSize) -0:2 Function Call: @main( ( temp float) -0:? Linker Objects -0:? '@entryPointOutput' ( out float PointSize) - - -Linked vertex stage: - - -Shader version: 500 -0:? Sequence -0:2 Function Definition: @main( ( temp float) -0:2 Function Parameters: -0:? Sequence -0:3 Branch: Return with expression -0:3 Constant: -0:3 2.300000 -0:2 Function Definition: main( ( temp void) -0:2 Function Parameters: -0:? Sequence -0:2 move second child to first child ( temp float) -0:? '@entryPointOutput' ( out float PointSize) -0:2 Function Call: @main( ( temp float) -0:? Linker Objects -0:? '@entryPointOutput' ( out float PointSize) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 16 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 14 - Source HLSL 500 - Name 4 "main" - Name 8 "@main(" - Name 14 "@entryPointOutput" - Decorate 14(@entryPointOutput) BuiltIn PointSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeFunction 6(float) - 10: 6(float) Constant 1075000115 - 13: TypePointer Output 6(float) -14(@entryPointOutput): 13(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 15: 6(float) FunctionCall 8(@main() - Store 14(@entryPointOutput) 15 - Return - FunctionEnd - 8(@main(): 6(float) Function None 7 - 9: Label - ReturnValue 10 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.aliasOpaque.frag.out b/deps/glslang/Test/baseResults/hlsl.aliasOpaque.frag.out deleted file mode 100644 index b7c2c9e2..00000000 --- a/deps/glslang/Test/baseResults/hlsl.aliasOpaque.frag.out +++ /dev/null @@ -1,245 +0,0 @@ -hlsl.aliasOpaque.frag -WARNING: AST will form illegal SPIR-V; need to transform to legalize -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:12 Function Definition: osCall(struct-OS-p1-f1-t211; ( temp 4-component vector of float) -0:12 Function Parameters: -0:12 's' ( in structure{ temp sampler ss, temp float a, temp texture2D tex}) -0:? Sequence -0:13 Branch: Return with expression -0:13 vector-scale ( temp 4-component vector of float) -0:13 a: direct index for structure ( temp float) -0:13 's' ( in structure{ temp sampler ss, temp float a, temp texture2D tex}) -0:13 Constant: -0:13 1 (const int) -0:13 texture ( temp 4-component vector of float) -0:13 Construct combined texture-sampler ( temp sampler2D) -0:13 tex: direct index for structure ( temp texture2D) -0:13 's' ( in structure{ temp sampler ss, temp float a, temp texture2D tex}) -0:13 Constant: -0:13 2 (const int) -0:13 ss: direct index for structure ( temp sampler) -0:13 's' ( in structure{ temp sampler ss, temp float a, temp texture2D tex}) -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 0.200000 -0:13 0.300000 -0:17 Function Definition: @main( ( temp 4-component vector of float) -0:17 Function Parameters: -0:? Sequence -0:19 move second child to first child ( temp sampler) -0:19 ss: direct index for structure ( temp sampler) -0:19 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex}) -0:19 Constant: -0:19 0 (const int) -0:19 'gss2' ( uniform sampler) -0:20 move second child to first child ( temp sampler) -0:20 ss: direct index for structure ( temp sampler) -0:20 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex}) -0:20 Constant: -0:20 0 (const int) -0:20 'gss' ( uniform sampler) -0:21 move second child to first child ( temp texture2D) -0:21 tex: direct index for structure ( temp texture2D) -0:21 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex}) -0:21 Constant: -0:21 2 (const int) -0:21 'gtex' ( uniform texture2D) -0:22 move second child to first child ( temp float) -0:22 a: direct index for structure ( temp float) -0:22 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex}) -0:22 Constant: -0:22 1 (const int) -0:22 Constant: -0:22 3.000000 -0:28 Branch: Return with expression -0:28 Function Call: osCall(struct-OS-p1-f1-t211; ( temp 4-component vector of float) -0:28 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex}) -0:17 Function Definition: main( ( temp void) -0:17 Function Parameters: -0:? Sequence -0:17 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:17 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'gss' ( uniform sampler) -0:? 'gss2' ( uniform sampler) -0:? 'gtex' ( uniform texture2D) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:12 Function Definition: osCall(struct-OS-p1-f1-t211; ( temp 4-component vector of float) -0:12 Function Parameters: -0:12 's' ( in structure{ temp sampler ss, temp float a, temp texture2D tex}) -0:? Sequence -0:13 Branch: Return with expression -0:13 vector-scale ( temp 4-component vector of float) -0:13 a: direct index for structure ( temp float) -0:13 's' ( in structure{ temp sampler ss, temp float a, temp texture2D tex}) -0:13 Constant: -0:13 1 (const int) -0:13 texture ( temp 4-component vector of float) -0:13 Construct combined texture-sampler ( temp sampler2D) -0:13 tex: direct index for structure ( temp texture2D) -0:13 's' ( in structure{ temp sampler ss, temp float a, temp texture2D tex}) -0:13 Constant: -0:13 2 (const int) -0:13 ss: direct index for structure ( temp sampler) -0:13 's' ( in structure{ temp sampler ss, temp float a, temp texture2D tex}) -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 0.200000 -0:13 0.300000 -0:17 Function Definition: @main( ( temp 4-component vector of float) -0:17 Function Parameters: -0:? Sequence -0:19 move second child to first child ( temp sampler) -0:19 ss: direct index for structure ( temp sampler) -0:19 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex}) -0:19 Constant: -0:19 0 (const int) -0:19 'gss2' ( uniform sampler) -0:20 move second child to first child ( temp sampler) -0:20 ss: direct index for structure ( temp sampler) -0:20 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex}) -0:20 Constant: -0:20 0 (const int) -0:20 'gss' ( uniform sampler) -0:21 move second child to first child ( temp texture2D) -0:21 tex: direct index for structure ( temp texture2D) -0:21 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex}) -0:21 Constant: -0:21 2 (const int) -0:21 'gtex' ( uniform texture2D) -0:22 move second child to first child ( temp float) -0:22 a: direct index for structure ( temp float) -0:22 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex}) -0:22 Constant: -0:22 1 (const int) -0:22 Constant: -0:22 3.000000 -0:28 Branch: Return with expression -0:28 Function Call: osCall(struct-OS-p1-f1-t211; ( temp 4-component vector of float) -0:28 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex}) -0:17 Function Definition: main( ( temp void) -0:17 Function Parameters: -0:? Sequence -0:17 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:17 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'gss' ( uniform sampler) -0:? 'gss2' ( uniform sampler) -0:? 'gtex' ( uniform texture2D) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 64 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 62 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 9 "OS" - MemberName 9(OS) 0 "ss" - MemberName 9(OS) 1 "a" - MemberName 9(OS) 2 "tex" - Name 14 "osCall(struct-OS-p1-f1-t211;" - Name 13 "s" - Name 17 "@main(" - Name 42 "os" - Name 44 "gss2" - Name 47 "gss" - Name 51 "gtex" - Name 56 "param" - Name 62 "@entryPointOutput" - Decorate 44(gss2) DescriptorSet 0 - Decorate 44(gss2) Binding 1 - Decorate 47(gss) DescriptorSet 0 - Decorate 47(gss) Binding 0 - Decorate 51(gtex) DescriptorSet 0 - Decorate 51(gtex) Binding 2 - Decorate 62(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeSampler - 7: TypeFloat 32 - 8: TypeImage 7(float) 2D sampled format:Unknown - 9(OS): TypeStruct 6 7(float) 8 - 10: TypePointer Function 9(OS) - 11: TypeVector 7(float) 4 - 12: TypeFunction 11(fvec4) 10(ptr) - 16: TypeFunction 11(fvec4) - 19: TypeInt 32 1 - 20: 19(int) Constant 1 - 21: TypePointer Function 7(float) - 24: 19(int) Constant 2 - 25: TypePointer Function 8 - 28: 19(int) Constant 0 - 29: TypePointer Function 6 - 32: TypeSampledImage 8 - 34: TypeVector 7(float) 2 - 35: 7(float) Constant 1045220557 - 36: 7(float) Constant 1050253722 - 37: 34(fvec2) ConstantComposite 35 36 - 43: TypePointer UniformConstant 6 - 44(gss2): 43(ptr) Variable UniformConstant - 47(gss): 43(ptr) Variable UniformConstant - 50: TypePointer UniformConstant 8 - 51(gtex): 50(ptr) Variable UniformConstant - 54: 7(float) Constant 1077936128 - 61: TypePointer Output 11(fvec4) -62(@entryPointOutput): 61(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 63: 11(fvec4) FunctionCall 17(@main() - Store 62(@entryPointOutput) 63 - Return - FunctionEnd -14(osCall(struct-OS-p1-f1-t211;): 11(fvec4) Function None 12 - 13(s): 10(ptr) FunctionParameter - 15: Label - 22: 21(ptr) AccessChain 13(s) 20 - 23: 7(float) Load 22 - 26: 25(ptr) AccessChain 13(s) 24 - 27: 8 Load 26 - 30: 29(ptr) AccessChain 13(s) 28 - 31: 6 Load 30 - 33: 32 SampledImage 27 31 - 38: 11(fvec4) ImageSampleImplicitLod 33 37 - 39: 11(fvec4) VectorTimesScalar 38 23 - ReturnValue 39 - FunctionEnd - 17(@main(): 11(fvec4) Function None 16 - 18: Label - 42(os): 10(ptr) Variable Function - 56(param): 10(ptr) Variable Function - 45: 6 Load 44(gss2) - 46: 29(ptr) AccessChain 42(os) 28 - Store 46 45 - 48: 6 Load 47(gss) - 49: 29(ptr) AccessChain 42(os) 28 - Store 49 48 - 52: 8 Load 51(gtex) - 53: 25(ptr) AccessChain 42(os) 24 - Store 53 52 - 55: 21(ptr) AccessChain 42(os) 20 - Store 55 54 - 57: 9(OS) Load 42(os) - Store 56(param) 57 - 58: 11(fvec4) FunctionCall 14(osCall(struct-OS-p1-f1-t211;) 56(param) - ReturnValue 58 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.amend.frag.out b/deps/glslang/Test/baseResults/hlsl.amend.frag.out deleted file mode 100644 index dde6e29b..00000000 --- a/deps/glslang/Test/baseResults/hlsl.amend.frag.out +++ /dev/null @@ -1,258 +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): 8000a -// 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 - Decorate 22 Binding 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/Test/baseResults/hlsl.array.flatten.frag.out b/deps/glslang/Test/baseResults/hlsl.array.flatten.frag.out deleted file mode 100644 index 5b99f5df..00000000 --- a/deps/glslang/Test/baseResults/hlsl.array.flatten.frag.out +++ /dev/null @@ -1,599 +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): 8000a -// 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 42(g_tex[1]) Binding 4 - Decorate 45(g_samp[1]) DescriptorSet 0 - Decorate 45(g_samp[1]) Binding 10 - Decorate 65(g_samp[0]) DescriptorSet 0 - Decorate 65(g_samp[0]) Binding 9 - Decorate 70(g_samp[2]) DescriptorSet 0 - Decorate 70(g_samp[2]) Binding 11 - Decorate 74(g_tex[0]) DescriptorSet 0 - Decorate 74(g_tex[0]) Binding 0 - Decorate 79(g_tex[2]) DescriptorSet 0 - Decorate 79(g_tex[2]) Binding 8 - 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 93 Binding 12 - 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/Test/baseResults/hlsl.array.frag.out b/deps/glslang/Test/baseResults/hlsl.array.frag.out deleted file mode 100644 index 26917729..00000000 --- a/deps/glslang/Test/baseResults/hlsl.array.frag.out +++ /dev/null @@ -1,476 +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:7 Constant: -0:7 1.000000 -0:7 2.000000 -0:7 3.000000 -0:7 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:11 Constant: -0:11 1.000000 -0:11 2.000000 -0:11 3.000000 -0:11 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:7 Constant: -0:7 1.000000 -0:7 2.000000 -0:7 3.000000 -0:7 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:11 Constant: -0:11 1.000000 -0:11 2.000000 -0:11 3.000000 -0:11 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): 8000a -// 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 62 Binding 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/Test/baseResults/hlsl.array.implicit-size.frag.out b/deps/glslang/Test/baseResults/hlsl.array.implicit-size.frag.out deleted file mode 100644 index 566bc9d5..00000000 --- a/deps/glslang/Test/baseResults/hlsl.array.implicit-size.frag.out +++ /dev/null @@ -1,266 +0,0 @@ -hlsl.array.implicit-size.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:3 Sequence -0:3 move second child to first child ( temp 5-element array of float) -0:3 'g_array' ( global 5-element array of float) -0:3 Constant: -0:3 1.000000 -0:3 2.000000 -0:3 3.000000 -0:3 4.000000 -0:3 5.000000 -0:6 Sequence -0:6 move second child to first child ( temp 7-element array of float) -0:6 'g_array_unused' ( global 7-element array of float) -0:6 Constant: -0:6 1.000000 -0:6 2.000000 -0:6 3.000000 -0:6 4.000000 -0:6 5.000000 -0:6 6.000000 -0:6 7.000000 -0:12 Sequence -0:12 move second child to first child ( temp 2-element array of structure{ temp int i, temp float f}) -0:12 'g_mystruct' ( global 2-element array of structure{ temp int i, temp float f}) -0:12 Constant: -0:12 1 (const int) -0:12 2.000000 -0:12 3 (const int) -0:12 4.000000 -0:26 Function Definition: main(struct-PS_OUTPUT-vf41; ( temp void) -0:26 Function Parameters: -0:26 'ps_output' ( out structure{ temp 4-component vector of float color}) -0:? Sequence -0:28 Sequence -0:28 move second child to first child ( temp 3-element array of float) -0:28 'l_array' ( temp 3-element array of float) -0:28 Constant: -0:28 1.000000 -0:28 2.000000 -0:28 3.000000 -0:31 move second child to first child ( temp 4-component vector of float) -0:31 color: direct index for structure ( temp 4-component vector of float) -0:31 'ps_output' ( out structure{ temp 4-component vector of float color}) -0:31 Constant: -0:31 0 (const int) -0:31 Construct vec4 ( temp 4-component vector of float) -0:31 add ( temp float) -0:31 add ( temp float) -0:31 add ( temp float) -0:31 add ( temp float) -0:31 direct index ( temp float) -0:31 'g_array' ( global 5-element array of float) -0:31 Constant: -0:31 0 (const int) -0:31 direct index ( temp float) -0:31 'g_array' ( global 5-element array of float) -0:31 Constant: -0:31 4 (const int) -0:31 direct index ( temp float) -0:31 'l_array' ( temp 3-element array of float) -0:31 Constant: -0:31 1 (const int) -0:31 f: direct index for structure ( temp float) -0:31 direct index ( temp structure{ temp int i, temp float f}) -0:31 'g_mystruct' ( global 2-element array of structure{ temp int i, temp float f}) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 indirect index ( temp float) -0:31 'g_array' ( global 5-element array of float) -0:31 'idx' ( temp int) -0:? Linker Objects -0:? 'g_array' ( global 5-element array of float) -0:? 'g_array_unused' ( global 7-element array of float) -0:? 'g_mystruct' ( global 2-element array of structure{ temp int i, temp float f}) - - -Linked fragment stage: - -WARNING: Linking fragment stage: Entry point not found - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:3 Sequence -0:3 move second child to first child ( temp 5-element array of float) -0:3 'g_array' ( global 5-element array of float) -0:3 Constant: -0:3 1.000000 -0:3 2.000000 -0:3 3.000000 -0:3 4.000000 -0:3 5.000000 -0:6 Sequence -0:6 move second child to first child ( temp 7-element array of float) -0:6 'g_array_unused' ( global 7-element array of float) -0:6 Constant: -0:6 1.000000 -0:6 2.000000 -0:6 3.000000 -0:6 4.000000 -0:6 5.000000 -0:6 6.000000 -0:6 7.000000 -0:12 Sequence -0:12 move second child to first child ( temp 2-element array of structure{ temp int i, temp float f}) -0:12 'g_mystruct' ( global 2-element array of structure{ temp int i, temp float f}) -0:12 Constant: -0:12 1 (const int) -0:12 2.000000 -0:12 3 (const int) -0:12 4.000000 -0:26 Function Definition: main(struct-PS_OUTPUT-vf41; ( temp void) -0:26 Function Parameters: -0:26 'ps_output' ( out structure{ temp 4-component vector of float color}) -0:? Sequence -0:28 Sequence -0:28 move second child to first child ( temp 3-element array of float) -0:28 'l_array' ( temp 3-element array of float) -0:28 Constant: -0:28 1.000000 -0:28 2.000000 -0:28 3.000000 -0:31 move second child to first child ( temp 4-component vector of float) -0:31 color: direct index for structure ( temp 4-component vector of float) -0:31 'ps_output' ( out structure{ temp 4-component vector of float color}) -0:31 Constant: -0:31 0 (const int) -0:31 Construct vec4 ( temp 4-component vector of float) -0:31 add ( temp float) -0:31 add ( temp float) -0:31 add ( temp float) -0:31 add ( temp float) -0:31 direct index ( temp float) -0:31 'g_array' ( global 5-element array of float) -0:31 Constant: -0:31 0 (const int) -0:31 direct index ( temp float) -0:31 'g_array' ( global 5-element array of float) -0:31 Constant: -0:31 4 (const int) -0:31 direct index ( temp float) -0:31 'l_array' ( temp 3-element array of float) -0:31 Constant: -0:31 1 (const int) -0:31 f: direct index for structure ( temp float) -0:31 direct index ( temp structure{ temp int i, temp float f}) -0:31 'g_mystruct' ( global 2-element array of structure{ temp int i, temp float f}) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 indirect index ( temp float) -0:31 'g_array' ( global 5-element array of float) -0:31 'idx' ( temp int) -0:? Linker Objects -0:? 'g_array' ( global 5-element array of float) -0:? 'g_array_unused' ( global 7-element array of float) -0:? 'g_mystruct' ( global 2-element array of structure{ temp int i, temp float f}) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 72 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "PixelShaderFunction" - Name 8 "PS_OUTPUT" - MemberName 8(PS_OUTPUT) 0 "color" - Name 12 "main(struct-PS_OUTPUT-vf41;" - Name 11 "ps_output" - Name 18 "g_array" - Name 28 "g_array_unused" - Name 33 "mystruct" - MemberName 33(mystruct) 0 "i" - MemberName 33(mystruct) 1 "f" - Name 37 "g_mystruct" - Name 46 "l_array" - Name 64 "idx" - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8(PS_OUTPUT): TypeStruct 7(fvec4) - 9: TypePointer Function 8(PS_OUTPUT) - 10: TypeFunction 2 9(ptr) - 14: TypeInt 32 0 - 15: 14(int) Constant 5 - 16: TypeArray 6(float) 15 - 17: TypePointer Private 16 - 18(g_array): 17(ptr) Variable Private - 19: 6(float) Constant 1065353216 - 20: 6(float) Constant 1073741824 - 21: 6(float) Constant 1077936128 - 22: 6(float) Constant 1082130432 - 23: 6(float) Constant 1084227584 - 24: 16 ConstantComposite 19 20 21 22 23 - 25: 14(int) Constant 7 - 26: TypeArray 6(float) 25 - 27: TypePointer Private 26 -28(g_array_unused): 27(ptr) Variable Private - 29: 6(float) Constant 1086324736 - 30: 6(float) Constant 1088421888 - 31: 26 ConstantComposite 19 20 21 22 23 29 30 - 32: TypeInt 32 1 - 33(mystruct): TypeStruct 32(int) 6(float) - 34: 14(int) Constant 2 - 35: TypeArray 33(mystruct) 34 - 36: TypePointer Private 35 - 37(g_mystruct): 36(ptr) Variable Private - 38: 32(int) Constant 1 - 39:33(mystruct) ConstantComposite 38 20 - 40: 32(int) Constant 3 - 41:33(mystruct) ConstantComposite 40 22 - 42: 35 ConstantComposite 39 41 - 43: 14(int) Constant 3 - 44: TypeArray 6(float) 43 - 45: TypePointer Function 44 - 47: 44 ConstantComposite 19 20 21 - 48: 32(int) Constant 0 - 49: TypePointer Private 6(float) - 52: 32(int) Constant 4 - 56: TypePointer Function 6(float) - 63: TypePointer Function 32(int) - 70: TypePointer Function 7(fvec4) -4(PixelShaderFunction): 2 Function None 3 - 5: Label - Store 18(g_array) 24 - Store 28(g_array_unused) 31 - Store 37(g_mystruct) 42 - Return - FunctionEnd -12(main(struct-PS_OUTPUT-vf41;): 2 Function None 10 - 11(ps_output): 9(ptr) FunctionParameter - 13: Label - 46(l_array): 45(ptr) Variable Function - 64(idx): 63(ptr) Variable Function - Store 46(l_array) 47 - 50: 49(ptr) AccessChain 18(g_array) 48 - 51: 6(float) Load 50 - 53: 49(ptr) AccessChain 18(g_array) 52 - 54: 6(float) Load 53 - 55: 6(float) FAdd 51 54 - 57: 56(ptr) AccessChain 46(l_array) 38 - 58: 6(float) Load 57 - 59: 6(float) FAdd 55 58 - 60: 49(ptr) AccessChain 37(g_mystruct) 48 38 - 61: 6(float) Load 60 - 62: 6(float) FAdd 59 61 - 65: 32(int) Load 64(idx) - 66: 49(ptr) AccessChain 18(g_array) 65 - 67: 6(float) Load 66 - 68: 6(float) FAdd 62 67 - 69: 7(fvec4) CompositeConstruct 68 68 68 68 - 71: 70(ptr) AccessChain 11(ps_output) 48 - Store 71 69 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.array.multidim.frag.out b/deps/glslang/Test/baseResults/hlsl.array.multidim.frag.out deleted file mode 100644 index fa2be659..00000000 --- a/deps/glslang/Test/baseResults/hlsl.array.multidim.frag.out +++ /dev/null @@ -1,225 +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): 8000a -// 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 29 Binding 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/Test/baseResults/hlsl.assoc.frag.out b/deps/glslang/Test/baseResults/hlsl.assoc.frag.out deleted file mode 100644 index 69a631e0..00000000 --- a/deps/glslang/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): 8000a -// 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/Test/baseResults/hlsl.attribute.expression.comp.out b/deps/glslang/Test/baseResults/hlsl.attribute.expression.comp.out deleted file mode 100644 index 90c17402..00000000 --- a/deps/glslang/Test/baseResults/hlsl.attribute.expression.comp.out +++ /dev/null @@ -1,125 +0,0 @@ -hlsl.attribute.expression.comp -Shader version: 500 -local_size = (4, 6, 8) -0:? Sequence -0:9 Function Definition: @main( ( temp void) -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:9 Function Definition: main( ( temp void) -0:9 Function Parameters: -0:? Sequence -0:9 Function Call: @main( ( temp void) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int bound}) - - -Linked compute stage: - - -Shader version: 500 -local_size = (4, 6, 8) -0:? Sequence -0:9 Function Definition: @main( ( temp void) -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:9 Function Definition: main( ( temp void) -0:9 Function Parameters: -0:? Sequence -0:9 Function Call: @main( ( temp void) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int bound}) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 30 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" - ExecutionMode 4 LocalSize 4 6 8 - Source HLSL 500 - Name 4 "main" - Name 6 "@main(" - Name 10 "x" - Name 18 "$Global" - MemberName 18($Global) 0 "bound" - Name 20 "" - MemberDecorate 18($Global) 0 Offset 0 - Decorate 18($Global) Block - Decorate 20 DescriptorSet 0 - Decorate 20 Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 8: TypeInt 32 1 - 9: TypePointer Function 8(int) - 11: 8(int) Constant 0 - 18($Global): TypeStruct 8(int) - 19: TypePointer Uniform 18($Global) - 20: 19(ptr) Variable Uniform - 21: TypePointer Uniform 8(int) - 24: TypeBool - 27: 8(int) Constant 1 - 4(main): 2 Function None 3 - 5: Label - 29: 2 FunctionCall 6(@main() - Return - FunctionEnd - 6(@main(): 2 Function None 3 - 7: Label - 10(x): 9(ptr) Variable Function - Store 10(x) 11 - Branch 12 - 12: Label - LoopMerge 14 15 Unroll - Branch 16 - 16: Label - 17: 8(int) Load 10(x) - 22: 21(ptr) AccessChain 20 11 - 23: 8(int) Load 22 - 25: 24(bool) SLessThan 17 23 - BranchConditional 25 13 14 - 13: Label - Branch 15 - 15: Label - 26: 8(int) Load 10(x) - 28: 8(int) IAdd 26 27 - Store 10(x) 28 - Branch 12 - 14: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.attribute.frag.out b/deps/glslang/Test/baseResults/hlsl.attribute.frag.out deleted file mode 100644 index 0d1f709b..00000000 --- a/deps/glslang/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): 8000a -// 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/Test/baseResults/hlsl.attributeC11.frag.out b/deps/glslang/Test/baseResults/hlsl.attributeC11.frag.out deleted file mode 100644 index 1b651a3b..00000000 --- a/deps/glslang/Test/baseResults/hlsl.attributeC11.frag.out +++ /dev/null @@ -1,195 +0,0 @@ -hlsl.attributeC11.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:20 Function Definition: @main(vf4; ( temp 4-component vector of float) -0:20 Function Parameters: -0:20 'input' ( in 4-component vector of float) -0:? Sequence -0:21 Branch: Return with expression -0:21 add ( temp 4-component vector of float) -0:21 'input' ( in 4-component vector of float) -0:21 textureFetch ( temp 4-component vector of float) -0:21 'attach' ( uniform texture2D) -0:21 vector swizzle ( temp int) -0:21 Constant: -0:21 0 (const int) -0:21 0 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 direct index ( temp int) -0:21 Constant: -0:21 0 (const int) -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:20 Function Definition: main( ( temp void) -0:20 Function Parameters: -0:? Sequence -0:20 move second child to first child ( temp 4-component vector of float) -0:? 'input' ( temp 4-component vector of float) -0:? 'input' (layout( location=8) in 4-component vector of float) -0:20 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=7) out 4-component vector of float) -0:20 Function Call: @main(vf4; ( temp 4-component vector of float) -0:? 'input' ( temp 4-component vector of float) -0:? Linker Objects -0:? 'buffer1' (layout( set=0 binding=1 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 2-component vector of float f} @data}) -0:? 'buffer3' (layout( set=2 binding=3 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 2-component vector of float f} @data}) -0:? 'attach' ( uniform texture2D) -0:? 'ci' ( specialization-constant const int) -0:? 11 (const int) -0:? 'anon@0' (layout( row_major std430 push_constant) uniform block{layout( row_major std430 offset=0) uniform int a}) -0:? '@entryPointOutput' (layout( location=7) out 4-component vector of float) -0:? 'input' (layout( location=8) in 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:20 Function Definition: @main(vf4; ( temp 4-component vector of float) -0:20 Function Parameters: -0:20 'input' ( in 4-component vector of float) -0:? Sequence -0:21 Branch: Return with expression -0:21 add ( temp 4-component vector of float) -0:21 'input' ( in 4-component vector of float) -0:21 textureFetch ( temp 4-component vector of float) -0:21 'attach' ( uniform texture2D) -0:21 vector swizzle ( temp int) -0:21 Constant: -0:21 0 (const int) -0:21 0 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 direct index ( temp int) -0:21 Constant: -0:21 0 (const int) -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:20 Function Definition: main( ( temp void) -0:20 Function Parameters: -0:? Sequence -0:20 move second child to first child ( temp 4-component vector of float) -0:? 'input' ( temp 4-component vector of float) -0:? 'input' (layout( location=8) in 4-component vector of float) -0:20 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=7) out 4-component vector of float) -0:20 Function Call: @main(vf4; ( temp 4-component vector of float) -0:? 'input' ( temp 4-component vector of float) -0:? Linker Objects -0:? 'buffer1' (layout( set=0 binding=1 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 2-component vector of float f} @data}) -0:? 'buffer3' (layout( set=2 binding=3 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 2-component vector of float f} @data}) -0:? 'attach' ( uniform texture2D) -0:? 'ci' ( specialization-constant const int) -0:? 11 (const int) -0:? 'anon@0' (layout( row_major std430 push_constant) uniform block{layout( row_major std430 offset=0) uniform int a}) -0:? '@entryPointOutput' (layout( location=7) out 4-component vector of float) -0:? 'input' (layout( location=8) in 4-component vector of float) - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 51 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 33 36 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 11 "@main(vf4;" - Name 10 "input" - Name 16 "attach" - Name 31 "input" - Name 33 "input" - Name 36 "@entryPointOutput" - Name 37 "param" - Name 41 "S" - MemberName 41(S) 0 "f" - Name 43 "buffer1" - MemberName 43(buffer1) 0 "@data" - Name 45 "buffer1" - Name 46 "buffer3" - Name 47 "ci" - Name 48 "pcBuf" - MemberName 48(pcBuf) 0 "a" - Name 50 "" - Decorate 16(attach) DescriptorSet 0 - Decorate 16(attach) Binding 0 - Decorate 16(attach) InputAttachmentIndex 4 - Decorate 33(input) Location 8 - Decorate 36(@entryPointOutput) Location 7 - MemberDecorate 41(S) 0 Offset 0 - Decorate 42 ArrayStride 8 - MemberDecorate 43(buffer1) 0 NonWritable - MemberDecorate 43(buffer1) 0 Offset 0 - Decorate 43(buffer1) BufferBlock - Decorate 45(buffer1) DescriptorSet 0 - Decorate 45(buffer1) Binding 1 - Decorate 46(buffer3) DescriptorSet 2 - Decorate 46(buffer3) Binding 3 - Decorate 47(ci) SpecId 13 - MemberDecorate 48(pcBuf) 0 Offset 0 - Decorate 48(pcBuf) Block - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 9: TypeFunction 7(fvec4) 8(ptr) - 14: TypeImage 6(float) 2D sampled format:Unknown - 15: TypePointer UniformConstant 14 - 16(attach): 15(ptr) Variable UniformConstant - 18: TypeInt 32 1 - 19: TypeVector 18(int) 2 - 20: 18(int) Constant 0 - 21: 19(ivec2) ConstantComposite 20 20 - 22: TypeInt 32 0 - 23: 22(int) Constant 0 - 25: 22(int) Constant 1 - 32: TypePointer Input 7(fvec4) - 33(input): 32(ptr) Variable Input - 35: TypePointer Output 7(fvec4) -36(@entryPointOutput): 35(ptr) Variable Output - 40: TypeVector 6(float) 2 - 41(S): TypeStruct 40(fvec2) - 42: TypeRuntimeArray 41(S) - 43(buffer1): TypeStruct 42 - 44: TypePointer Uniform 43(buffer1) - 45(buffer1): 44(ptr) Variable Uniform - 46(buffer3): 44(ptr) Variable Uniform - 47(ci): 18(int) SpecConstant 11 - 48(pcBuf): TypeStruct 18(int) - 49: TypePointer PushConstant 48(pcBuf) - 50: 49(ptr) Variable PushConstant - 4(main): 2 Function None 3 - 5: Label - 31(input): 8(ptr) Variable Function - 37(param): 8(ptr) Variable Function - 34: 7(fvec4) Load 33(input) - Store 31(input) 34 - 38: 7(fvec4) Load 31(input) - Store 37(param) 38 - 39: 7(fvec4) FunctionCall 11(@main(vf4;) 37(param) - Store 36(@entryPointOutput) 39 - Return - FunctionEnd - 11(@main(vf4;): 7(fvec4) Function None 9 - 10(input): 8(ptr) FunctionParameter - 12: Label - 13: 7(fvec4) Load 10(input) - 17: 14 Load 16(attach) - 24: 18(int) CompositeExtract 21 0 - 26: 18(int) CompositeExtract 21 1 - 27: 7(fvec4) ImageFetch 17 24 Lod 26 - 28: 7(fvec4) FAdd 13 27 - ReturnValue 28 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.attributeGlobalBuffer.frag.out b/deps/glslang/Test/baseResults/hlsl.attributeGlobalBuffer.frag.out deleted file mode 100644 index 244fe7d9..00000000 --- a/deps/glslang/Test/baseResults/hlsl.attributeGlobalBuffer.frag.out +++ /dev/null @@ -1,109 +0,0 @@ -hlsl.attributeGlobalBuffer.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:6 Function Definition: @main( ( temp 4-component vector of float) -0:6 Function Parameters: -0:? Sequence -0:7 Branch: Return with expression -0:7 add ( temp 4-component vector of float) -0:7 u1: direct index for structure ( uniform 4-component vector of float) -0:7 'anon@0' (layout( set=2 binding=5 row_major std140) uniform block{ uniform 4-component vector of float u1, uniform 4-component vector of float u2}) -0:7 Constant: -0:7 0 (const uint) -0:7 u2: direct index for structure ( uniform 4-component vector of float) -0:7 'anon@0' (layout( set=2 binding=5 row_major std140) uniform block{ uniform 4-component vector of float u1, uniform 4-component vector of float u2}) -0:7 Constant: -0:7 1 (const uint) -0:6 Function Definition: main( ( temp void) -0:6 Function Parameters: -0:? Sequence -0:6 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:6 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'anon@0' (layout( set=2 binding=5 row_major std140) uniform block{ uniform 4-component vector of float u1, uniform 4-component vector of float u2}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:6 Function Definition: @main( ( temp 4-component vector of float) -0:6 Function Parameters: -0:? Sequence -0:7 Branch: Return with expression -0:7 add ( temp 4-component vector of float) -0:7 u1: direct index for structure ( uniform 4-component vector of float) -0:7 'anon@0' (layout( set=2 binding=5 row_major std140) uniform block{ uniform 4-component vector of float u1, uniform 4-component vector of float u2}) -0:7 Constant: -0:7 0 (const uint) -0:7 u2: direct index for structure ( uniform 4-component vector of float) -0:7 'anon@0' (layout( set=2 binding=5 row_major std140) uniform block{ uniform 4-component vector of float u1, uniform 4-component vector of float u2}) -0:7 Constant: -0:7 1 (const uint) -0:6 Function Definition: main( ( temp void) -0:6 Function Parameters: -0:? Sequence -0:6 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:6 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'anon@0' (layout( set=2 binding=5 row_major std140) uniform block{ uniform 4-component vector of float u1, uniform 4-component vector of float u2}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 28 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 26 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 9 "@main(" - Name 11 "$Global" - MemberName 11($Global) 0 "u1" - MemberName 11($Global) 1 "u2" - Name 13 "" - Name 26 "@entryPointOutput" - MemberDecorate 11($Global) 0 Offset 0 - MemberDecorate 11($Global) 1 Offset 16 - Decorate 11($Global) Block - Decorate 13 DescriptorSet 2 - Decorate 13 Binding 5 - Decorate 26(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 11($Global): TypeStruct 7(fvec4) 7(fvec4) - 12: TypePointer Uniform 11($Global) - 13: 12(ptr) Variable Uniform - 14: TypeInt 32 1 - 15: 14(int) Constant 0 - 16: TypePointer Uniform 7(fvec4) - 19: 14(int) Constant 1 - 25: TypePointer Output 7(fvec4) -26(@entryPointOutput): 25(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 27: 7(fvec4) FunctionCall 9(@main() - Store 26(@entryPointOutput) 27 - Return - FunctionEnd - 9(@main(): 7(fvec4) Function None 8 - 10: Label - 17: 16(ptr) AccessChain 13 15 - 18: 7(fvec4) Load 17 - 20: 16(ptr) AccessChain 13 19 - 21: 7(fvec4) Load 20 - 22: 7(fvec4) FAdd 18 21 - ReturnValue 22 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.automap.frag.out b/deps/glslang/Test/baseResults/hlsl.automap.frag.out deleted file mode 100644 index 240e67a9..00000000 --- a/deps/glslang/Test/baseResults/hlsl.automap.frag.out +++ /dev/null @@ -1,36 +0,0 @@ -hlsl.automap.frag -Uniform reflection: -t1: offset -1, type 8b5d, size 1, index -1, binding 11, stages 16 -t2: offset -1, type 8b5e, size 1, index -1, binding 12, stages 16 -t3: offset -1, type 8b5f, size 1, index -1, binding 13, stages 16 -t4.@data: offset 0, type 8b52, size 1, index 0, binding -1, stages 16, arrayStride 16, topLevelArrayStride 16 -t5.@data: offset 0, type 1405, size 0, index 1, binding -1, stages 16, arrayStride 4, topLevelArrayStride 4 -t6: offset -1, type 8dc2, size 1, index -1, binding 16, stages 16 -s1: offset -1, type 0, size 1, index -1, binding 31, stages 16 -s2: offset -1, type 0, size 1, index -1, binding 32, stages 16 -u1: offset -1, type 904c, size 1, index -1, binding 41, stages 16 -u2: offset -1, type 904d, size 1, index -1, binding 42, stages 16 -u3: offset -1, type 904e, size 1, index -1, binding 43, stages 16 -u4: offset -1, type 9051, size 1, index -1, binding 44, stages 16 -u5.@data: offset 0, type 1405, size 0, index 2, binding -1, stages 16, arrayStride 4, topLevelArrayStride 4 -u6.@data: offset 0, type 1406, size 1, index 3, binding -1, stages 16, arrayStride 4, topLevelArrayStride 4 -cb1: offset 0, type 1404, size 1, index 4, binding -1, stages 16 -tb1: offset 0, type 1404, size 1, index 5, binding -1, stages 16 - -Uniform block reflection: -t4: offset -1, type ffffffff, size 16, index 0, binding 14, stages 16, numMembers 1 -t5: offset -1, type ffffffff, size 4, index 1, binding 15, stages 16, numMembers 1 -u5: offset -1, type ffffffff, size 4, index 2, binding 45, stages 16, numMembers 1 -u6: offset -1, type ffffffff, size 4, index 3, binding 46, stages 16, numMembers 1 -cb: offset -1, type ffffffff, size 4, index 4, binding 51, stages 16, numMembers 1 -tb: offset -1, type ffffffff, size 4, index 5, binding 17, stages 16, numMembers 1 - -Buffer variable reflection: - -Buffer block reflection: - -Pipeline input reflection: - -Pipeline output reflection: -@entryPointOutput: offset 0, type 8b52, size 1, index 0, binding -1, stages 16 - diff --git a/deps/glslang/Test/baseResults/hlsl.autosampledtextures.frag.out b/deps/glslang/Test/baseResults/hlsl.autosampledtextures.frag.out deleted file mode 100644 index 559c1306..00000000 --- a/deps/glslang/Test/baseResults/hlsl.autosampledtextures.frag.out +++ /dev/null @@ -1,77 +0,0 @@ -hlsl.autosampledtextures.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 45 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "MainPs" 36 40 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "MainPs" - Name 8 "PS_INPUT" - MemberName 8(PS_INPUT) 0 "vTextureCoords" - Name 11 "PS_OUTPUT" - MemberName 11(PS_OUTPUT) 0 "vColor" - Name 14 "@MainPs(struct-PS_INPUT-vf21;" - Name 13 "i" - Name 17 "ps_output" - Name 23 "g_tColor" - Name 34 "i" - Name 36 "i.vTextureCoords" - Name 40 "@entryPointOutput.vColor" - Name 41 "param" - Decorate 23(g_tColor) DescriptorSet 0 - Decorate 23(g_tColor) Binding 0 - Decorate 36(i.vTextureCoords) Location 0 - Decorate 40(@entryPointOutput.vColor) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 2 - 8(PS_INPUT): TypeStruct 7(fvec2) - 9: TypePointer Function 8(PS_INPUT) - 10: TypeVector 6(float) 4 - 11(PS_OUTPUT): TypeStruct 10(fvec4) - 12: TypeFunction 11(PS_OUTPUT) 9(ptr) - 16: TypePointer Function 11(PS_OUTPUT) - 18: TypeInt 32 1 - 19: 18(int) Constant 0 - 20: TypeImage 6(float) 2D sampled format:Unknown - 21: TypeSampledImage 20 - 22: TypePointer UniformConstant 21 - 23(g_tColor): 22(ptr) Variable UniformConstant - 25: TypePointer Function 7(fvec2) - 29: TypePointer Function 10(fvec4) - 35: TypePointer Input 7(fvec2) -36(i.vTextureCoords): 35(ptr) Variable Input - 39: TypePointer Output 10(fvec4) -40(@entryPointOutput.vColor): 39(ptr) Variable Output - 4(MainPs): 2 Function None 3 - 5: Label - 34(i): 9(ptr) Variable Function - 41(param): 9(ptr) Variable Function - 37: 7(fvec2) Load 36(i.vTextureCoords) - 38: 25(ptr) AccessChain 34(i) 19 - Store 38 37 - 42: 8(PS_INPUT) Load 34(i) - Store 41(param) 42 - 43:11(PS_OUTPUT) FunctionCall 14(@MainPs(struct-PS_INPUT-vf21;) 41(param) - 44: 10(fvec4) CompositeExtract 43 0 - Store 40(@entryPointOutput.vColor) 44 - Return - FunctionEnd -14(@MainPs(struct-PS_INPUT-vf21;):11(PS_OUTPUT) Function None 12 - 13(i): 9(ptr) FunctionParameter - 15: Label - 17(ps_output): 16(ptr) Variable Function - 24: 21 Load 23(g_tColor) - 26: 25(ptr) AccessChain 13(i) 19 - 27: 7(fvec2) Load 26 - 28: 10(fvec4) ImageSampleImplicitLod 24 27 - 30: 29(ptr) AccessChain 17(ps_output) 19 - Store 30 28 - 31:11(PS_OUTPUT) Load 17(ps_output) - ReturnValue 31 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.basic.comp.out b/deps/glslang/Test/baseResults/hlsl.basic.comp.out deleted file mode 100644 index d71429cf..00000000 --- a/deps/glslang/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): 8000a -// 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/Test/baseResults/hlsl.basic.geom.out b/deps/glslang/Test/baseResults/hlsl.basic.geom.out deleted file mode 100644 index 6dea9215..00000000 --- a/deps/glslang/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): 8000a -// 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/Test/baseResults/hlsl.boolConv.vert.out b/deps/glslang/Test/baseResults/hlsl.boolConv.vert.out deleted file mode 100644 index 6a8e5164..00000000 --- a/deps/glslang/Test/baseResults/hlsl.boolConv.vert.out +++ /dev/null @@ -1,333 +0,0 @@ -hlsl.boolConv.vert -Shader version: 500 -0:? Sequence -0:1 Sequence -0:1 move second child to first child ( temp bool) -0:1 'b' ( global bool) -0:1 Constant: -0:1 true (const bool) -0:3 Function Definition: @main( ( temp 4-component vector of float) -0:3 Function Parameters: -0:? Sequence -0:4 Sequence -0:4 move second child to first child ( temp int) -0:4 'r' ( temp int) -0:4 Constant: -0:4 0 (const int) -0:6 add second child into first child ( temp int) -0:6 'r' ( temp int) -0:6 add ( temp int) -0:6 Convert bool to int ( temp int) -0:6 'a' ( global bool) -0:6 Convert bool to int ( temp int) -0:6 'b' ( global bool) -0:7 add second child into first child ( temp int) -0:7 'r' ( temp int) -0:7 subtract ( temp int) -0:7 Convert bool to int ( temp int) -0:7 'a' ( global bool) -0:7 Convert bool to int ( temp int) -0:7 'b' ( global bool) -0:8 add second child into first child ( temp int) -0:8 'r' ( temp int) -0:8 component-wise multiply ( temp int) -0:8 Convert bool to int ( temp int) -0:8 'a' ( global bool) -0:8 Convert bool to int ( temp int) -0:8 'b' ( global bool) -0:9 add second child into first child ( temp int) -0:9 'r' ( temp int) -0:9 divide ( temp int) -0:9 Convert bool to int ( temp int) -0:9 'a' ( global bool) -0:9 Convert bool to int ( temp int) -0:9 'b' ( global bool) -0:10 add second child into first child ( temp int) -0:10 'r' ( temp int) -0:10 mod ( temp int) -0:10 Convert bool to int ( temp int) -0:10 'a' ( global bool) -0:10 Convert bool to int ( temp int) -0:10 'b' ( global bool) -0:12 add second child into first child ( temp int) -0:12 'r' ( temp int) -0:12 bitwise and ( temp int) -0:12 Convert bool to int ( temp int) -0:12 'a' ( global bool) -0:12 Convert bool to int ( temp int) -0:12 'b' ( global bool) -0:13 add second child into first child ( temp int) -0:13 'r' ( temp int) -0:13 inclusive-or ( temp int) -0:13 Convert bool to int ( temp int) -0:13 'a' ( global bool) -0:13 Convert bool to int ( temp int) -0:13 'b' ( global bool) -0:14 add second child into first child ( temp int) -0:14 'r' ( temp int) -0:14 exclusive-or ( temp int) -0:14 Convert bool to int ( temp int) -0:14 'a' ( global bool) -0:14 Convert bool to int ( temp int) -0:14 'b' ( global bool) -0:16 add second child into first child ( temp int) -0:16 'r' ( temp int) -0:16 left-shift ( temp int) -0:16 Convert bool to int ( temp int) -0:16 'a' ( global bool) -0:16 Convert bool to int ( temp int) -0:16 'b' ( global bool) -0:17 add second child into first child ( temp int) -0:17 'r' ( temp int) -0:17 right-shift ( temp int) -0:17 Convert bool to int ( temp int) -0:17 'a' ( global bool) -0:17 Convert bool to int ( temp int) -0:17 'b' ( global bool) -0:19 Branch: Return with expression -0:19 Construct vec4 ( temp 4-component vector of float) -0:19 Convert int to float ( temp float) -0:19 'r' ( temp int) -0:3 Function Definition: main( ( temp void) -0:3 Function Parameters: -0:? Sequence -0:3 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' ( out 4-component vector of float Position) -0:3 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'a' ( global bool) -0:? 'b' ( global bool) -0:? '@entryPointOutput' ( out 4-component vector of float Position) - - -Linked vertex stage: - - -Shader version: 500 -0:? Sequence -0:1 Sequence -0:1 move second child to first child ( temp bool) -0:1 'b' ( global bool) -0:1 Constant: -0:1 true (const bool) -0:3 Function Definition: @main( ( temp 4-component vector of float) -0:3 Function Parameters: -0:? Sequence -0:4 Sequence -0:4 move second child to first child ( temp int) -0:4 'r' ( temp int) -0:4 Constant: -0:4 0 (const int) -0:6 add second child into first child ( temp int) -0:6 'r' ( temp int) -0:6 add ( temp int) -0:6 Convert bool to int ( temp int) -0:6 'a' ( global bool) -0:6 Convert bool to int ( temp int) -0:6 'b' ( global bool) -0:7 add second child into first child ( temp int) -0:7 'r' ( temp int) -0:7 subtract ( temp int) -0:7 Convert bool to int ( temp int) -0:7 'a' ( global bool) -0:7 Convert bool to int ( temp int) -0:7 'b' ( global bool) -0:8 add second child into first child ( temp int) -0:8 'r' ( temp int) -0:8 component-wise multiply ( temp int) -0:8 Convert bool to int ( temp int) -0:8 'a' ( global bool) -0:8 Convert bool to int ( temp int) -0:8 'b' ( global bool) -0:9 add second child into first child ( temp int) -0:9 'r' ( temp int) -0:9 divide ( temp int) -0:9 Convert bool to int ( temp int) -0:9 'a' ( global bool) -0:9 Convert bool to int ( temp int) -0:9 'b' ( global bool) -0:10 add second child into first child ( temp int) -0:10 'r' ( temp int) -0:10 mod ( temp int) -0:10 Convert bool to int ( temp int) -0:10 'a' ( global bool) -0:10 Convert bool to int ( temp int) -0:10 'b' ( global bool) -0:12 add second child into first child ( temp int) -0:12 'r' ( temp int) -0:12 bitwise and ( temp int) -0:12 Convert bool to int ( temp int) -0:12 'a' ( global bool) -0:12 Convert bool to int ( temp int) -0:12 'b' ( global bool) -0:13 add second child into first child ( temp int) -0:13 'r' ( temp int) -0:13 inclusive-or ( temp int) -0:13 Convert bool to int ( temp int) -0:13 'a' ( global bool) -0:13 Convert bool to int ( temp int) -0:13 'b' ( global bool) -0:14 add second child into first child ( temp int) -0:14 'r' ( temp int) -0:14 exclusive-or ( temp int) -0:14 Convert bool to int ( temp int) -0:14 'a' ( global bool) -0:14 Convert bool to int ( temp int) -0:14 'b' ( global bool) -0:16 add second child into first child ( temp int) -0:16 'r' ( temp int) -0:16 left-shift ( temp int) -0:16 Convert bool to int ( temp int) -0:16 'a' ( global bool) -0:16 Convert bool to int ( temp int) -0:16 'b' ( global bool) -0:17 add second child into first child ( temp int) -0:17 'r' ( temp int) -0:17 right-shift ( temp int) -0:17 Convert bool to int ( temp int) -0:17 'a' ( global bool) -0:17 Convert bool to int ( temp int) -0:17 'b' ( global bool) -0:19 Branch: Return with expression -0:19 Construct vec4 ( temp 4-component vector of float) -0:19 Convert int to float ( temp float) -0:19 'r' ( temp int) -0:3 Function Definition: main( ( temp void) -0:3 Function Parameters: -0:? Sequence -0:3 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' ( out 4-component vector of float Position) -0:3 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'a' ( global bool) -0:? 'b' ( global bool) -0:? '@entryPointOutput' ( out 4-component vector of float Position) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 99 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 97 - Source HLSL 500 - Name 4 "main" - Name 9 "@main(" - Name 13 "b" - Name 17 "r" - Name 19 "a" - Name 97 "@entryPointOutput" - Decorate 97(@entryPointOutput) BuiltIn Position - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 11: TypeBool - 12: TypePointer Private 11(bool) - 13(b): 12(ptr) Variable Private - 14: 11(bool) ConstantTrue - 15: TypeInt 32 1 - 16: TypePointer Function 15(int) - 18: 15(int) Constant 0 - 19(a): 12(ptr) Variable Private - 21: 15(int) Constant 1 - 96: TypePointer Output 7(fvec4) -97(@entryPointOutput): 96(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - Store 13(b) 14 - 98: 7(fvec4) FunctionCall 9(@main() - Store 97(@entryPointOutput) 98 - Return - FunctionEnd - 9(@main(): 7(fvec4) Function None 8 - 10: Label - 17(r): 16(ptr) Variable Function - Store 17(r) 18 - 20: 11(bool) Load 19(a) - 22: 15(int) Select 20 21 18 - 23: 11(bool) Load 13(b) - 24: 15(int) Select 23 21 18 - 25: 15(int) IAdd 22 24 - 26: 15(int) Load 17(r) - 27: 15(int) IAdd 26 25 - Store 17(r) 27 - 28: 11(bool) Load 19(a) - 29: 15(int) Select 28 21 18 - 30: 11(bool) Load 13(b) - 31: 15(int) Select 30 21 18 - 32: 15(int) ISub 29 31 - 33: 15(int) Load 17(r) - 34: 15(int) IAdd 33 32 - Store 17(r) 34 - 35: 11(bool) Load 19(a) - 36: 15(int) Select 35 21 18 - 37: 11(bool) Load 13(b) - 38: 15(int) Select 37 21 18 - 39: 15(int) IMul 36 38 - 40: 15(int) Load 17(r) - 41: 15(int) IAdd 40 39 - Store 17(r) 41 - 42: 11(bool) Load 19(a) - 43: 15(int) Select 42 21 18 - 44: 11(bool) Load 13(b) - 45: 15(int) Select 44 21 18 - 46: 15(int) SDiv 43 45 - 47: 15(int) Load 17(r) - 48: 15(int) IAdd 47 46 - Store 17(r) 48 - 49: 11(bool) Load 19(a) - 50: 15(int) Select 49 21 18 - 51: 11(bool) Load 13(b) - 52: 15(int) Select 51 21 18 - 53: 15(int) SMod 50 52 - 54: 15(int) Load 17(r) - 55: 15(int) IAdd 54 53 - Store 17(r) 55 - 56: 11(bool) Load 19(a) - 57: 15(int) Select 56 21 18 - 58: 11(bool) Load 13(b) - 59: 15(int) Select 58 21 18 - 60: 15(int) BitwiseAnd 57 59 - 61: 15(int) Load 17(r) - 62: 15(int) IAdd 61 60 - Store 17(r) 62 - 63: 11(bool) Load 19(a) - 64: 15(int) Select 63 21 18 - 65: 11(bool) Load 13(b) - 66: 15(int) Select 65 21 18 - 67: 15(int) BitwiseOr 64 66 - 68: 15(int) Load 17(r) - 69: 15(int) IAdd 68 67 - Store 17(r) 69 - 70: 11(bool) Load 19(a) - 71: 15(int) Select 70 21 18 - 72: 11(bool) Load 13(b) - 73: 15(int) Select 72 21 18 - 74: 15(int) BitwiseXor 71 73 - 75: 15(int) Load 17(r) - 76: 15(int) IAdd 75 74 - Store 17(r) 76 - 77: 11(bool) Load 19(a) - 78: 15(int) Select 77 21 18 - 79: 11(bool) Load 13(b) - 80: 15(int) Select 79 21 18 - 81: 15(int) ShiftLeftLogical 78 80 - 82: 15(int) Load 17(r) - 83: 15(int) IAdd 82 81 - Store 17(r) 83 - 84: 11(bool) Load 19(a) - 85: 15(int) Select 84 21 18 - 86: 11(bool) Load 13(b) - 87: 15(int) Select 86 21 18 - 88: 15(int) ShiftRightArithmetic 85 87 - 89: 15(int) Load 17(r) - 90: 15(int) IAdd 89 88 - Store 17(r) 90 - 91: 15(int) Load 17(r) - 92: 6(float) ConvertSToF 91 - 93: 7(fvec4) CompositeConstruct 92 92 92 92 - ReturnValue 93 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.buffer.frag.out b/deps/glslang/Test/baseResults/hlsl.buffer.frag.out deleted file mode 100644 index 04a783c3..00000000 --- a/deps/glslang/Test/baseResults/hlsl.buffer.frag.out +++ /dev/null @@ -1,328 +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) - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// 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 - Decorate 26 Binding 3 - MemberDecorate 31(buf1) 0 Offset 0 - Decorate 31(buf1) Block - Decorate 33 DescriptorSet 0 - Decorate 33 Binding 0 - MemberDecorate 37(buf2) 0 NonWritable - MemberDecorate 37(buf2) 0 Offset 0 - Decorate 37(buf2) BufferBlock - Decorate 39 DescriptorSet 0 - Decorate 39 Binding 1 - MemberDecorate 43(cbufName) 0 Offset 0 - MemberDecorate 43(cbufName) 1 Offset 20 - Decorate 43(cbufName) Block - Decorate 45 DescriptorSet 0 - Decorate 45 Binding 2 - 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/Test/baseResults/hlsl.calculatelod.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.calculatelod.dx10.frag.out deleted file mode 100644 index d4367a09..00000000 --- a/deps/glslang/Test/baseResults/hlsl.calculatelod.dx10.frag.out +++ /dev/null @@ -1,588 +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:32 Constant: -0:32 0.100000 -0:32 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 Constant: -0:33 0.300000 -0:33 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 Constant: -0:34 0.500000 -0:34 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 Constant: -0:36 0.100000 -0:36 0.200000 -0:36 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:37 Constant: -0:37 0.400000 -0:37 0.500000 -0:37 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:38 Constant: -0:38 0.700000 -0:38 0.800000 -0:38 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:32 Constant: -0:32 0.100000 -0:32 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 Constant: -0:33 0.300000 -0:33 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 Constant: -0:34 0.500000 -0:34 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 Constant: -0:36 0.100000 -0:36 0.200000 -0:36 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:37 Constant: -0:37 0.400000 -0:37 0.500000 -0:37 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:38 Constant: -0:38 0.700000 -0:38 0.800000 -0:38 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): 8000a -// 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 33(g_tTex1di4a) Binding 2 - Decorate 45(g_tTex1du4a) DescriptorSet 0 - Decorate 45(g_tTex1du4a) Binding 3 - Decorate 56(g_tTex2df4a) DescriptorSet 0 - Decorate 56(g_tTex2df4a) Binding 4 - Decorate 67(g_tTex2di4a) DescriptorSet 0 - Decorate 67(g_tTex2di4a) Binding 5 - Decorate 79(g_tTex2du4a) DescriptorSet 0 - Decorate 79(g_tTex2du4a) Binding 6 - Decorate 92(g_tTexcdf4a) DescriptorSet 0 - Decorate 92(g_tTexcdf4a) Binding 7 - Decorate 104(g_tTexcdi4a) DescriptorSet 0 - Decorate 104(g_tTexcdi4a) Binding 8 - Decorate 115(g_tTexcdu4a) DescriptorSet 0 - Decorate 115(g_tTexcdu4a) Binding 9 - 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/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out deleted file mode 100644 index 8a4be02d..00000000 --- a/deps/glslang/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out +++ /dev/null @@ -1,588 +0,0 @@ -hlsl.calculatelodunclamped.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 1 (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 1 (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 1 (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 Constant: -0:32 0.100000 -0:32 0.200000 -0:32 Constant: -0:32 1 (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 Constant: -0:33 0.300000 -0:33 0.400000 -0:33 Constant: -0:33 1 (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 Constant: -0:34 0.500000 -0:34 0.600000 -0:34 Constant: -0:34 1 (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 Constant: -0:36 0.100000 -0:36 0.200000 -0:36 0.300000 -0:36 Constant: -0:36 1 (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 Constant: -0:37 0.400000 -0:37 0.500000 -0:37 0.600000 -0:37 Constant: -0:37 1 (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 Constant: -0:38 0.700000 -0:38 0.800000 -0:38 0.900000 -0:38 Constant: -0:38 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: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 1 (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 1 (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 1 (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 Constant: -0:32 0.100000 -0:32 0.200000 -0:32 Constant: -0:32 1 (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 Constant: -0:33 0.300000 -0:33 0.400000 -0:33 Constant: -0:33 1 (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 Constant: -0:34 0.500000 -0:34 0.600000 -0:34 Constant: -0:34 1 (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 Constant: -0:36 0.100000 -0:36 0.200000 -0:36 0.300000 -0:36 Constant: -0:36 1 (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 Constant: -0:37 0.400000 -0:37 0.500000 -0:37 0.600000 -0:37 Constant: -0:37 1 (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 Constant: -0:38 0.700000 -0:38 0.800000 -0:38 0.900000 -0:38 Constant: -0:38 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: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): 8000a -// 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 33(g_tTex1di4a) Binding 2 - Decorate 45(g_tTex1du4a) DescriptorSet 0 - Decorate 45(g_tTex1du4a) Binding 3 - Decorate 56(g_tTex2df4a) DescriptorSet 0 - Decorate 56(g_tTex2df4a) Binding 4 - Decorate 67(g_tTex2di4a) DescriptorSet 0 - Decorate 67(g_tTex2di4a) Binding 5 - Decorate 79(g_tTex2du4a) DescriptorSet 0 - Decorate 79(g_tTex2du4a) Binding 6 - Decorate 92(g_tTexcdf4a) DescriptorSet 0 - Decorate 92(g_tTexcdf4a) Binding 7 - Decorate 104(g_tTexcdi4a) DescriptorSet 0 - Decorate 104(g_tTexcdi4a) Binding 8 - Decorate 115(g_tTexcdu4a) DescriptorSet 0 - Decorate 115(g_tTexcdu4a) Binding 9 - 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 1 - 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: 27(int) Constant 0 - 129: 6(float) Constant 1065353216 - 130: 7(fvec4) ConstantComposite 129 129 129 129 - 131: TypePointer Function 7(fvec4) - 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: 131(ptr) AccessChain 137(flattenTemp) 128 - 142: 7(fvec4) Load 141 - Store 140(@entryPointOutput.Color) 142 - 145: 12(ptr) AccessChain 137(flattenTemp) 28 - 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 1 - 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 1 - 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 1 - 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 1 - 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 1 - 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 1 - 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 1 - 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 1 - 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 1 - Store 112(txval42) 125 - 132: 131(ptr) AccessChain 127(psout) 128 - Store 132 130 - 133: 12(ptr) AccessChain 127(psout) 28 - Store 133 129 - 134:8(PS_OUTPUT) Load 127(psout) - ReturnValue 134 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.cast.frag.out b/deps/glslang/Test/baseResults/hlsl.cast.frag.out deleted file mode 100644 index 3efbd528..00000000 --- a/deps/glslang/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): 8000a -// 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/Test/baseResults/hlsl.cbuffer-identifier.vert.out b/deps/glslang/Test/baseResults/hlsl.cbuffer-identifier.vert.out deleted file mode 100644 index 93f35d62..00000000 --- a/deps/glslang/Test/baseResults/hlsl.cbuffer-identifier.vert.out +++ /dev/null @@ -1,404 +0,0 @@ -hlsl.cbuffer-identifier.vert -WARNING: 0:29: '' : mul() matrix size mismatch - -Shader version: 500 -0:? Sequence -0:22 Function Definition: @main(struct-VS_INPUT-vf4-vf31; ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:22 Function Parameters: -0:22 'input' ( in structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:? Sequence -0:23 Sequence -0:23 move second child to first child ( temp int) -0:23 'ConstantBuffer' ( temp int) -0:23 Constant: -0:23 42 (const int) -0:25 Sequence -0:25 move second child to first child ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:25 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:25 Constant: -0:25 0.000000 -0:25 0.000000 -0:25 0.000000 -0:25 0.000000 -0:25 0.000000 -0:25 0.000000 -0:25 0.000000 -0:26 move second child to first child ( temp 4-component vector of float) -0:26 Pos: direct index for structure ( temp 4-component vector of float) -0:26 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:26 Constant: -0:26 0 (const int) -0:26 matrix-times-vector ( temp 4-component vector of float) -0:26 World: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) -0:26 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection}) -0:26 Constant: -0:26 0 (const uint) -0:26 Pos: direct index for structure ( temp 4-component vector of float) -0:26 'input' ( in structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:26 Constant: -0:26 0 (const int) -0:27 move second child to first child ( temp 4-component vector of float) -0:27 Pos: direct index for structure ( temp 4-component vector of float) -0:27 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:27 Constant: -0:27 0 (const int) -0:27 matrix-times-vector ( temp 4-component vector of float) -0:27 View: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) -0:27 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection}) -0:27 Constant: -0:27 1 (const uint) -0:27 Pos: direct index for structure ( temp 4-component vector of float) -0:27 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:27 Constant: -0:27 0 (const int) -0:28 move second child to first child ( temp 4-component vector of float) -0:28 Pos: direct index for structure ( temp 4-component vector of float) -0:28 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:28 Constant: -0:28 0 (const int) -0:28 matrix-times-vector ( temp 4-component vector of float) -0:28 Projection: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) -0:28 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection}) -0:28 Constant: -0:28 2 (const uint) -0:28 Pos: direct index for structure ( temp 4-component vector of float) -0:28 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:28 Constant: -0:28 0 (const int) -0:29 move second child to first child ( temp 3-component vector of float) -0:29 Norm: direct index for structure ( temp 3-component vector of float) -0:29 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:29 Constant: -0:29 1 (const int) -0:29 Construct vec3 ( temp 3-component vector of float) -0:29 matrix-times-vector ( temp 4-component vector of float) -0:29 Construct mat3x4 ( uniform 3X4 matrix of float) -0:29 World: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) -0:29 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection}) -0:29 Constant: -0:29 0 (const uint) -0:29 Norm: direct index for structure ( temp 3-component vector of float) -0:29 'input' ( in structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:29 Constant: -0:29 1 (const int) -0:31 Branch: Return with expression -0:31 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:22 Function Definition: main( ( temp void) -0:22 Function Parameters: -0:? Sequence -0:22 Sequence -0:22 move second child to first child ( temp 4-component vector of float) -0:22 Pos: direct index for structure ( temp 4-component vector of float) -0:? 'input' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:22 Constant: -0:22 0 (const int) -0:? 'input.Pos' (layout( location=0) in 4-component vector of float) -0:22 move second child to first child ( temp 3-component vector of float) -0:22 Norm: direct index for structure ( temp 3-component vector of float) -0:? 'input' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:22 Constant: -0:22 1 (const int) -0:? 'input.Norm' (layout( location=1) in 3-component vector of float) -0:22 Sequence -0:22 move second child to first child ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:22 Function Call: @main(struct-VS_INPUT-vf4-vf31; ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:? 'input' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:22 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) -0:22 Pos: direct index for structure ( temp 4-component vector of float) -0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:22 Constant: -0:22 0 (const int) -0:22 move second child to first child ( temp 3-component vector of float) -0:? '@entryPointOutput.Norm' (layout( location=0) out 3-component vector of float) -0:22 Norm: direct index for structure ( temp 3-component vector of float) -0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:22 Constant: -0:22 1 (const int) -0:? Linker Objects -0:? 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection}) -0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) -0:? '@entryPointOutput.Norm' (layout( location=0) out 3-component vector of float) -0:? 'input.Pos' (layout( location=0) in 4-component vector of float) -0:? 'input.Norm' (layout( location=1) in 3-component vector of float) - - -Linked vertex stage: - - -Shader version: 500 -0:? Sequence -0:22 Function Definition: @main(struct-VS_INPUT-vf4-vf31; ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:22 Function Parameters: -0:22 'input' ( in structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:? Sequence -0:23 Sequence -0:23 move second child to first child ( temp int) -0:23 'ConstantBuffer' ( temp int) -0:23 Constant: -0:23 42 (const int) -0:25 Sequence -0:25 move second child to first child ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:25 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:25 Constant: -0:25 0.000000 -0:25 0.000000 -0:25 0.000000 -0:25 0.000000 -0:25 0.000000 -0:25 0.000000 -0:25 0.000000 -0:26 move second child to first child ( temp 4-component vector of float) -0:26 Pos: direct index for structure ( temp 4-component vector of float) -0:26 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:26 Constant: -0:26 0 (const int) -0:26 matrix-times-vector ( temp 4-component vector of float) -0:26 World: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) -0:26 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection}) -0:26 Constant: -0:26 0 (const uint) -0:26 Pos: direct index for structure ( temp 4-component vector of float) -0:26 'input' ( in structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:26 Constant: -0:26 0 (const int) -0:27 move second child to first child ( temp 4-component vector of float) -0:27 Pos: direct index for structure ( temp 4-component vector of float) -0:27 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:27 Constant: -0:27 0 (const int) -0:27 matrix-times-vector ( temp 4-component vector of float) -0:27 View: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) -0:27 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection}) -0:27 Constant: -0:27 1 (const uint) -0:27 Pos: direct index for structure ( temp 4-component vector of float) -0:27 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:27 Constant: -0:27 0 (const int) -0:28 move second child to first child ( temp 4-component vector of float) -0:28 Pos: direct index for structure ( temp 4-component vector of float) -0:28 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:28 Constant: -0:28 0 (const int) -0:28 matrix-times-vector ( temp 4-component vector of float) -0:28 Projection: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) -0:28 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection}) -0:28 Constant: -0:28 2 (const uint) -0:28 Pos: direct index for structure ( temp 4-component vector of float) -0:28 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:28 Constant: -0:28 0 (const int) -0:29 move second child to first child ( temp 3-component vector of float) -0:29 Norm: direct index for structure ( temp 3-component vector of float) -0:29 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:29 Constant: -0:29 1 (const int) -0:29 Construct vec3 ( temp 3-component vector of float) -0:29 matrix-times-vector ( temp 4-component vector of float) -0:29 Construct mat3x4 ( uniform 3X4 matrix of float) -0:29 World: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) -0:29 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection}) -0:29 Constant: -0:29 0 (const uint) -0:29 Norm: direct index for structure ( temp 3-component vector of float) -0:29 'input' ( in structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:29 Constant: -0:29 1 (const int) -0:31 Branch: Return with expression -0:31 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:22 Function Definition: main( ( temp void) -0:22 Function Parameters: -0:? Sequence -0:22 Sequence -0:22 move second child to first child ( temp 4-component vector of float) -0:22 Pos: direct index for structure ( temp 4-component vector of float) -0:? 'input' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:22 Constant: -0:22 0 (const int) -0:? 'input.Pos' (layout( location=0) in 4-component vector of float) -0:22 move second child to first child ( temp 3-component vector of float) -0:22 Norm: direct index for structure ( temp 3-component vector of float) -0:? 'input' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:22 Constant: -0:22 1 (const int) -0:? 'input.Norm' (layout( location=1) in 3-component vector of float) -0:22 Sequence -0:22 move second child to first child ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:22 Function Call: @main(struct-VS_INPUT-vf4-vf31; ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:? 'input' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:22 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) -0:22 Pos: direct index for structure ( temp 4-component vector of float) -0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:22 Constant: -0:22 0 (const int) -0:22 move second child to first child ( temp 3-component vector of float) -0:? '@entryPointOutput.Norm' (layout( location=0) out 3-component vector of float) -0:22 Norm: direct index for structure ( temp 3-component vector of float) -0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) -0:22 Constant: -0:22 1 (const int) -0:? Linker Objects -0:? 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection}) -0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) -0:? '@entryPointOutput.Norm' (layout( location=0) out 3-component vector of float) -0:? 'input.Pos' (layout( location=0) in 4-component vector of float) -0:? 'input.Norm' (layout( location=1) in 3-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 93 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 74 78 86 90 - Source HLSL 500 - Name 4 "main" - Name 9 "VS_INPUT" - MemberName 9(VS_INPUT) 0 "Pos" - MemberName 9(VS_INPUT) 1 "Norm" - Name 11 "PS_INPUT" - MemberName 11(PS_INPUT) 0 "Pos" - MemberName 11(PS_INPUT) 1 "Norm" - Name 14 "@main(struct-VS_INPUT-vf4-vf31;" - Name 13 "input" - Name 18 "ConstantBuffer" - Name 21 "output" - Name 28 "C" - MemberName 28(C) 0 "World" - MemberName 28(C) 1 "View" - MemberName 28(C) 2 "Projection" - Name 30 "" - Name 72 "input" - Name 74 "input.Pos" - Name 78 "input.Norm" - Name 81 "flattenTemp" - Name 82 "param" - Name 86 "@entryPointOutput.Pos" - Name 90 "@entryPointOutput.Norm" - MemberDecorate 28(C) 0 RowMajor - MemberDecorate 28(C) 0 Offset 0 - MemberDecorate 28(C) 0 MatrixStride 16 - MemberDecorate 28(C) 1 RowMajor - MemberDecorate 28(C) 1 Offset 64 - MemberDecorate 28(C) 1 MatrixStride 16 - MemberDecorate 28(C) 2 RowMajor - MemberDecorate 28(C) 2 Offset 128 - MemberDecorate 28(C) 2 MatrixStride 16 - Decorate 28(C) Block - Decorate 30 DescriptorSet 0 - Decorate 30 Binding 0 - Decorate 74(input.Pos) Location 0 - Decorate 78(input.Norm) Location 1 - Decorate 86(@entryPointOutput.Pos) BuiltIn Position - Decorate 90(@entryPointOutput.Norm) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeVector 6(float) 3 - 9(VS_INPUT): TypeStruct 7(fvec4) 8(fvec3) - 10: TypePointer Function 9(VS_INPUT) - 11(PS_INPUT): TypeStruct 7(fvec4) 8(fvec3) - 12: TypeFunction 11(PS_INPUT) 10(ptr) - 16: TypeInt 32 1 - 17: TypePointer Function 16(int) - 19: 16(int) Constant 42 - 20: TypePointer Function 11(PS_INPUT) - 22: 6(float) Constant 0 - 23: 7(fvec4) ConstantComposite 22 22 22 22 - 24: 8(fvec3) ConstantComposite 22 22 22 - 25:11(PS_INPUT) ConstantComposite 23 24 - 26: 16(int) Constant 0 - 27: TypeMatrix 7(fvec4) 4 - 28(C): TypeStruct 27 27 27 - 29: TypePointer Uniform 28(C) - 30: 29(ptr) Variable Uniform - 31: TypePointer Uniform 27 - 34: TypePointer Function 7(fvec4) - 39: 16(int) Constant 1 - 46: 16(int) Constant 2 - 55: TypeMatrix 7(fvec4) 3 - 60: TypePointer Function 8(fvec3) - 73: TypePointer Input 7(fvec4) - 74(input.Pos): 73(ptr) Variable Input - 77: TypePointer Input 8(fvec3) - 78(input.Norm): 77(ptr) Variable Input - 85: TypePointer Output 7(fvec4) -86(@entryPointOutput.Pos): 85(ptr) Variable Output - 89: TypePointer Output 8(fvec3) -90(@entryPointOutput.Norm): 89(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 72(input): 10(ptr) Variable Function - 81(flattenTemp): 20(ptr) Variable Function - 82(param): 10(ptr) Variable Function - 75: 7(fvec4) Load 74(input.Pos) - 76: 34(ptr) AccessChain 72(input) 26 - Store 76 75 - 79: 8(fvec3) Load 78(input.Norm) - 80: 60(ptr) AccessChain 72(input) 39 - Store 80 79 - 83: 9(VS_INPUT) Load 72(input) - Store 82(param) 83 - 84:11(PS_INPUT) FunctionCall 14(@main(struct-VS_INPUT-vf4-vf31;) 82(param) - Store 81(flattenTemp) 84 - 87: 34(ptr) AccessChain 81(flattenTemp) 26 - 88: 7(fvec4) Load 87 - Store 86(@entryPointOutput.Pos) 88 - 91: 60(ptr) AccessChain 81(flattenTemp) 39 - 92: 8(fvec3) Load 91 - Store 90(@entryPointOutput.Norm) 92 - Return - FunctionEnd -14(@main(struct-VS_INPUT-vf4-vf31;):11(PS_INPUT) Function None 12 - 13(input): 10(ptr) FunctionParameter - 15: Label -18(ConstantBuffer): 17(ptr) Variable Function - 21(output): 20(ptr) Variable Function - Store 18(ConstantBuffer) 19 - Store 21(output) 25 - 32: 31(ptr) AccessChain 30 26 - 33: 27 Load 32 - 35: 34(ptr) AccessChain 13(input) 26 - 36: 7(fvec4) Load 35 - 37: 7(fvec4) MatrixTimesVector 33 36 - 38: 34(ptr) AccessChain 21(output) 26 - Store 38 37 - 40: 31(ptr) AccessChain 30 39 - 41: 27 Load 40 - 42: 34(ptr) AccessChain 21(output) 26 - 43: 7(fvec4) Load 42 - 44: 7(fvec4) MatrixTimesVector 41 43 - 45: 34(ptr) AccessChain 21(output) 26 - Store 45 44 - 47: 31(ptr) AccessChain 30 46 - 48: 27 Load 47 - 49: 34(ptr) AccessChain 21(output) 26 - 50: 7(fvec4) Load 49 - 51: 7(fvec4) MatrixTimesVector 48 50 - 52: 34(ptr) AccessChain 21(output) 26 - Store 52 51 - 53: 31(ptr) AccessChain 30 26 - 54: 27 Load 53 - 56: 7(fvec4) CompositeExtract 54 0 - 57: 7(fvec4) CompositeExtract 54 1 - 58: 7(fvec4) CompositeExtract 54 2 - 59: 55 CompositeConstruct 56 57 58 - 61: 60(ptr) AccessChain 13(input) 39 - 62: 8(fvec3) Load 61 - 63: 7(fvec4) MatrixTimesVector 59 62 - 64: 6(float) CompositeExtract 63 0 - 65: 6(float) CompositeExtract 63 1 - 66: 6(float) CompositeExtract 63 2 - 67: 8(fvec3) CompositeConstruct 64 65 66 - 68: 60(ptr) AccessChain 21(output) 39 - Store 68 67 - 69:11(PS_INPUT) Load 21(output) - ReturnValue 69 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.charLit.vert.out b/deps/glslang/Test/baseResults/hlsl.charLit.vert.out deleted file mode 100644 index 2151d43c..00000000 --- a/deps/glslang/Test/baseResults/hlsl.charLit.vert.out +++ /dev/null @@ -1,233 +0,0 @@ -hlsl.charLit.vert -Shader version: 500 -0:? Sequence -0:2 Function Definition: @main( ( temp 4-component vector of float) -0:2 Function Parameters: -0:? Sequence -0:3 Sequence -0:3 move second child to first child ( temp uint) -0:3 'a1' ( temp uint) -0:3 Constant: -0:3 65 (const uint) -0:4 Sequence -0:4 move second child to first child ( temp int) -0:4 'a2' ( temp int) -0:4 Constant: -0:4 48 (const int) -0:6 Sequence -0:6 move second child to first child ( temp int) -0:6 'a3' ( temp int) -0:6 Constant: -0:6 7 (const int) -0:7 add second child into first child ( temp int) -0:7 'a3' ( temp int) -0:7 Constant: -0:7 8 (const int) -0:8 add second child into first child ( temp int) -0:8 'a3' ( temp int) -0:8 Constant: -0:8 9 (const int) -0:9 add second child into first child ( temp int) -0:9 'a3' ( temp int) -0:9 Constant: -0:9 10 (const int) -0:10 add second child into first child ( temp int) -0:10 'a3' ( temp int) -0:10 Constant: -0:10 11 (const int) -0:11 add second child into first child ( temp int) -0:11 'a3' ( temp int) -0:11 Constant: -0:11 12 (const int) -0:12 add second child into first child ( temp int) -0:12 'a3' ( temp int) -0:12 Constant: -0:12 13 (const int) -0:14 Sequence -0:14 move second child to first child ( temp int) -0:14 'a10' ( temp int) -0:14 Constant: -0:14 99 (const int) -0:16 Branch: Return with expression -0:16 Construct vec4 ( temp 4-component vector of float) -0:16 Convert uint to float ( temp float) -0:16 add ( temp uint) -0:16 add ( temp uint) -0:16 add ( temp uint) -0:16 'a1' ( temp uint) -0:16 Convert int to uint ( temp uint) -0:16 'a2' ( temp int) -0:16 Convert int to uint ( temp uint) -0:16 'a3' ( temp int) -0:16 Convert int to uint ( temp uint) -0:16 'a10' ( temp int) -0:2 Function Definition: main( ( temp void) -0:2 Function Parameters: -0:? Sequence -0:2 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' ( out 4-component vector of float Position) -0:2 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput' ( out 4-component vector of float Position) - - -Linked vertex stage: - - -Shader version: 500 -0:? Sequence -0:2 Function Definition: @main( ( temp 4-component vector of float) -0:2 Function Parameters: -0:? Sequence -0:3 Sequence -0:3 move second child to first child ( temp uint) -0:3 'a1' ( temp uint) -0:3 Constant: -0:3 65 (const uint) -0:4 Sequence -0:4 move second child to first child ( temp int) -0:4 'a2' ( temp int) -0:4 Constant: -0:4 48 (const int) -0:6 Sequence -0:6 move second child to first child ( temp int) -0:6 'a3' ( temp int) -0:6 Constant: -0:6 7 (const int) -0:7 add second child into first child ( temp int) -0:7 'a3' ( temp int) -0:7 Constant: -0:7 8 (const int) -0:8 add second child into first child ( temp int) -0:8 'a3' ( temp int) -0:8 Constant: -0:8 9 (const int) -0:9 add second child into first child ( temp int) -0:9 'a3' ( temp int) -0:9 Constant: -0:9 10 (const int) -0:10 add second child into first child ( temp int) -0:10 'a3' ( temp int) -0:10 Constant: -0:10 11 (const int) -0:11 add second child into first child ( temp int) -0:11 'a3' ( temp int) -0:11 Constant: -0:11 12 (const int) -0:12 add second child into first child ( temp int) -0:12 'a3' ( temp int) -0:12 Constant: -0:12 13 (const int) -0:14 Sequence -0:14 move second child to first child ( temp int) -0:14 'a10' ( temp int) -0:14 Constant: -0:14 99 (const int) -0:16 Branch: Return with expression -0:16 Construct vec4 ( temp 4-component vector of float) -0:16 Convert uint to float ( temp float) -0:16 add ( temp uint) -0:16 add ( temp uint) -0:16 add ( temp uint) -0:16 'a1' ( temp uint) -0:16 Convert int to uint ( temp uint) -0:16 'a2' ( temp int) -0:16 Convert int to uint ( temp uint) -0:16 'a3' ( temp int) -0:16 Convert int to uint ( temp uint) -0:16 'a10' ( temp int) -0:2 Function Definition: main( ( temp void) -0:2 Function Parameters: -0:? Sequence -0:2 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' ( out 4-component vector of float Position) -0:2 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput' ( out 4-component vector of float Position) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 58 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 56 - Source HLSL 500 - Name 4 "main" - Name 9 "@main(" - Name 13 "a1" - Name 17 "a2" - Name 19 "a3" - Name 39 "a10" - Name 56 "@entryPointOutput" - Decorate 56(@entryPointOutput) BuiltIn Position - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 11: TypeInt 32 0 - 12: TypePointer Function 11(int) - 14: 11(int) Constant 65 - 15: TypeInt 32 1 - 16: TypePointer Function 15(int) - 18: 15(int) Constant 48 - 20: 15(int) Constant 7 - 21: 15(int) Constant 8 - 24: 15(int) Constant 9 - 27: 15(int) Constant 10 - 30: 15(int) Constant 11 - 33: 15(int) Constant 12 - 36: 15(int) Constant 13 - 40: 15(int) Constant 99 - 55: TypePointer Output 7(fvec4) -56(@entryPointOutput): 55(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 57: 7(fvec4) FunctionCall 9(@main() - Store 56(@entryPointOutput) 57 - Return - FunctionEnd - 9(@main(): 7(fvec4) Function None 8 - 10: Label - 13(a1): 12(ptr) Variable Function - 17(a2): 16(ptr) Variable Function - 19(a3): 16(ptr) Variable Function - 39(a10): 16(ptr) Variable Function - Store 13(a1) 14 - Store 17(a2) 18 - Store 19(a3) 20 - 22: 15(int) Load 19(a3) - 23: 15(int) IAdd 22 21 - Store 19(a3) 23 - 25: 15(int) Load 19(a3) - 26: 15(int) IAdd 25 24 - Store 19(a3) 26 - 28: 15(int) Load 19(a3) - 29: 15(int) IAdd 28 27 - Store 19(a3) 29 - 31: 15(int) Load 19(a3) - 32: 15(int) IAdd 31 30 - Store 19(a3) 32 - 34: 15(int) Load 19(a3) - 35: 15(int) IAdd 34 33 - Store 19(a3) 35 - 37: 15(int) Load 19(a3) - 38: 15(int) IAdd 37 36 - Store 19(a3) 38 - Store 39(a10) 40 - 41: 11(int) Load 13(a1) - 42: 15(int) Load 17(a2) - 43: 11(int) Bitcast 42 - 44: 11(int) IAdd 41 43 - 45: 15(int) Load 19(a3) - 46: 11(int) Bitcast 45 - 47: 11(int) IAdd 44 46 - 48: 15(int) Load 39(a10) - 49: 11(int) Bitcast 48 - 50: 11(int) IAdd 47 49 - 51: 6(float) ConvertUToF 50 - 52: 7(fvec4) CompositeConstruct 51 51 51 51 - ReturnValue 52 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.clip.frag.out b/deps/glslang/Test/baseResults/hlsl.clip.frag.out deleted file mode 100644 index 691b20ba..00000000 --- a/deps/glslang/Test/baseResults/hlsl.clip.frag.out +++ /dev/null @@ -1,123 +0,0 @@ -hlsl.clip.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:3 Function Definition: GetEntitySelectClip( ( temp float) -0:3 Function Parameters: -0:? Sequence -0:4 Branch: Return with expression -0:4 Constant: -0:4 1.000000 -0:8 Function Definition: @main( ( temp 4-component vector of float) -0:8 Function Parameters: -0:? Sequence -0:9 Test condition and select ( temp void) -0:9 Condition -0:9 Compare Less Than ( temp bool) -0:9 Function Call: GetEntitySelectClip( ( temp float) -0:9 Constant: -0:9 0.000000 -0:9 true case -0:9 Branch: Kill -0:11 Branch: Return with expression -0:11 Constant: -0:11 0.000000 -0:11 0.000000 -0:11 0.000000 -0:11 0.000000 -0:8 Function Definition: main( ( temp void) -0:8 Function Parameters: -0:? Sequence -0:8 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:8 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:3 Function Definition: GetEntitySelectClip( ( temp float) -0:3 Function Parameters: -0:? Sequence -0:4 Branch: Return with expression -0:4 Constant: -0:4 1.000000 -0:8 Function Definition: @main( ( temp 4-component vector of float) -0:8 Function Parameters: -0:? Sequence -0:9 Test condition and select ( temp void) -0:9 Condition -0:9 Compare Less Than ( temp bool) -0:9 Function Call: GetEntitySelectClip( ( temp float) -0:9 Constant: -0:9 0.000000 -0:9 true case -0:9 Branch: Kill -0:11 Branch: Return with expression -0:11 Constant: -0:11 0.000000 -0:11 0.000000 -0:11 0.000000 -0:11 0.000000 -0:8 Function Definition: main( ( temp void) -0:8 Function Parameters: -0:? Sequence -0:8 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:8 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 30 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 28 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 8 "GetEntitySelectClip(" - Name 12 "@main(" - Name 28 "@entryPointOutput" - Decorate 28(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeFunction 6(float) - 10: TypeVector 6(float) 4 - 11: TypeFunction 10(fvec4) - 14: 6(float) Constant 1065353216 - 18: 6(float) Constant 0 - 19: TypeBool - 24: 10(fvec4) ConstantComposite 18 18 18 18 - 27: TypePointer Output 10(fvec4) -28(@entryPointOutput): 27(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 29: 10(fvec4) FunctionCall 12(@main() - Store 28(@entryPointOutput) 29 - Return - FunctionEnd -8(GetEntitySelectClip(): 6(float) Function None 7 - 9: Label - ReturnValue 14 - FunctionEnd - 12(@main(): 10(fvec4) Function None 11 - 13: Label - 17: 6(float) FunctionCall 8(GetEntitySelectClip() - 20: 19(bool) FOrdLessThan 17 18 - SelectionMerge 22 None - BranchConditional 20 21 22 - 21: Label - Kill - 22: Label - ReturnValue 24 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.clipdistance-1.frag.out b/deps/glslang/Test/baseResults/hlsl.clipdistance-1.frag.out deleted file mode 100644 index 0cfee39c..00000000 --- a/deps/glslang/Test/baseResults/hlsl.clipdistance-1.frag.out +++ /dev/null @@ -1,190 +0,0 @@ -hlsl.clipdistance-1.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:4 Function Definition: @main(vf4;f1;f1; ( temp 4-component vector of float) -0:4 Function Parameters: -0:4 'pos' ( in 4-component vector of float) -0:4 'clip' ( in float) -0:4 'cull' ( in float) -0:? Sequence -0:5 Branch: Return with expression -0:5 add ( temp 4-component vector of float) -0:5 add ( temp 4-component vector of float) -0:5 'pos' ( in 4-component vector of float) -0:5 'clip' ( in float) -0:5 'cull' ( in float) -0:4 Function Definition: main( ( temp void) -0:4 Function Parameters: -0:? Sequence -0:4 move second child to first child ( temp 4-component vector of float) -0:? 'pos' ( temp 4-component vector of float) -0:? 'pos' ( in 4-component vector of float FragCoord) -0:? Sequence -0:4 move second child to first child ( temp float) -0:? 'clip' ( temp float) -0:4 direct index ( in float ClipDistance) -0:? 'clip' ( in 1-element array of float ClipDistance) -0:4 Constant: -0:4 0 (const int) -0:? Sequence -0:4 move second child to first child ( temp float) -0:? 'cull' ( temp float) -0:4 direct index ( in float CullDistance) -0:? 'cull' ( in 1-element array of float CullDistance) -0:4 Constant: -0:4 0 (const int) -0:4 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:4 Function Call: @main(vf4;f1;f1; ( temp 4-component vector of float) -0:? 'pos' ( temp 4-component vector of float) -0:? 'clip' ( temp float) -0:? 'cull' ( temp float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'pos' ( in 4-component vector of float FragCoord) -0:? 'clip' ( in 1-element array of float ClipDistance) -0:? 'cull' ( in 1-element array of float CullDistance) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:4 Function Definition: @main(vf4;f1;f1; ( temp 4-component vector of float) -0:4 Function Parameters: -0:4 'pos' ( in 4-component vector of float) -0:4 'clip' ( in float) -0:4 'cull' ( in float) -0:? Sequence -0:5 Branch: Return with expression -0:5 add ( temp 4-component vector of float) -0:5 add ( temp 4-component vector of float) -0:5 'pos' ( in 4-component vector of float) -0:5 'clip' ( in float) -0:5 'cull' ( in float) -0:4 Function Definition: main( ( temp void) -0:4 Function Parameters: -0:? Sequence -0:4 move second child to first child ( temp 4-component vector of float) -0:? 'pos' ( temp 4-component vector of float) -0:? 'pos' ( in 4-component vector of float FragCoord) -0:? Sequence -0:4 move second child to first child ( temp float) -0:? 'clip' ( temp float) -0:4 direct index ( in float ClipDistance) -0:? 'clip' ( in 1-element array of float ClipDistance) -0:4 Constant: -0:4 0 (const int) -0:? Sequence -0:4 move second child to first child ( temp float) -0:? 'cull' ( temp float) -0:4 direct index ( in float CullDistance) -0:? 'cull' ( in 1-element array of float CullDistance) -0:4 Constant: -0:4 0 (const int) -0:4 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:4 Function Call: @main(vf4;f1;f1; ( temp 4-component vector of float) -0:? 'pos' ( temp 4-component vector of float) -0:? 'clip' ( temp float) -0:? 'cull' ( temp float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'pos' ( in 4-component vector of float FragCoord) -0:? 'clip' ( in 1-element array of float ClipDistance) -0:? 'cull' ( in 1-element array of float CullDistance) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 53 - - Capability Shader - Capability ClipDistance - Capability CullDistance - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 27 34 41 45 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 14 "@main(vf4;f1;f1;" - Name 11 "pos" - Name 12 "clip" - Name 13 "cull" - Name 25 "pos" - Name 27 "pos" - Name 29 "clip" - Name 34 "clip" - Name 40 "cull" - Name 41 "cull" - Name 45 "@entryPointOutput" - Name 46 "param" - Name 48 "param" - Name 50 "param" - Decorate 27(pos) BuiltIn FragCoord - Decorate 34(clip) BuiltIn ClipDistance - Decorate 41(cull) BuiltIn CullDistance - Decorate 45(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 9: TypePointer Function 6(float) - 10: TypeFunction 7(fvec4) 8(ptr) 9(ptr) 9(ptr) - 26: TypePointer Input 7(fvec4) - 27(pos): 26(ptr) Variable Input - 30: TypeInt 32 0 - 31: 30(int) Constant 1 - 32: TypeArray 6(float) 31 - 33: TypePointer Input 32 - 34(clip): 33(ptr) Variable Input - 35: TypeInt 32 1 - 36: 35(int) Constant 0 - 37: TypePointer Input 6(float) - 41(cull): 33(ptr) Variable Input - 44: TypePointer Output 7(fvec4) -45(@entryPointOutput): 44(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 25(pos): 8(ptr) Variable Function - 29(clip): 9(ptr) Variable Function - 40(cull): 9(ptr) Variable Function - 46(param): 8(ptr) Variable Function - 48(param): 9(ptr) Variable Function - 50(param): 9(ptr) Variable Function - 28: 7(fvec4) Load 27(pos) - Store 25(pos) 28 - 38: 37(ptr) AccessChain 34(clip) 36 - 39: 6(float) Load 38 - Store 29(clip) 39 - 42: 37(ptr) AccessChain 41(cull) 36 - 43: 6(float) Load 42 - Store 40(cull) 43 - 47: 7(fvec4) Load 25(pos) - Store 46(param) 47 - 49: 6(float) Load 29(clip) - Store 48(param) 49 - 51: 6(float) Load 40(cull) - Store 50(param) 51 - 52: 7(fvec4) FunctionCall 14(@main(vf4;f1;f1;) 46(param) 48(param) 50(param) - Store 45(@entryPointOutput) 52 - Return - FunctionEnd -14(@main(vf4;f1;f1;): 7(fvec4) Function None 10 - 11(pos): 8(ptr) FunctionParameter - 12(clip): 9(ptr) FunctionParameter - 13(cull): 9(ptr) FunctionParameter - 15: Label - 16: 7(fvec4) Load 11(pos) - 17: 6(float) Load 12(clip) - 18: 7(fvec4) CompositeConstruct 17 17 17 17 - 19: 7(fvec4) FAdd 16 18 - 20: 6(float) Load 13(cull) - 21: 7(fvec4) CompositeConstruct 20 20 20 20 - 22: 7(fvec4) FAdd 19 21 - ReturnValue 22 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.clipdistance-1.geom.out b/deps/glslang/Test/baseResults/hlsl.clipdistance-1.geom.out deleted file mode 100644 index a9a0b82a..00000000 --- a/deps/glslang/Test/baseResults/hlsl.clipdistance-1.geom.out +++ /dev/null @@ -1,737 +0,0 @@ -hlsl.clipdistance-1.geom -Shader version: 500 -invocations = -1 -max_vertices = 3 -input primitive = triangles -output primitive = line_strip -0:? Sequence -0:11 Function Definition: @main(vf4[3];u1[3];struct-S-vf4-vf21;vf4[3]; ( temp void) -0:11 Function Parameters: -0:11 'pos' ( in 3-element array of 4-component vector of float) -0:11 'VertexID' ( in 3-element array of uint) -0:11 'OutputStream' ( out structure{ temp 4-component vector of float pos, temp 2-component vector of float clip}) -0:11 'clip' ( in 3-element array of 4-component vector of float) -0:? Sequence -0:14 move second child to first child ( temp 4-component vector of float) -0:14 pos: direct index for structure ( temp 4-component vector of float) -0:14 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip}) -0:14 Constant: -0:14 0 (const int) -0:14 direct index ( temp 4-component vector of float) -0:14 'pos' ( in 3-element array of 4-component vector of float) -0:14 Constant: -0:14 0 (const int) -0:15 move second child to first child ( temp 2-component vector of float) -0:15 clip: direct index for structure ( temp 2-component vector of float) -0:15 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip}) -0:15 Constant: -0:15 1 (const int) -0:15 vector swizzle ( temp 2-component vector of float) -0:15 direct index ( temp 4-component vector of float) -0:15 'clip' ( in 3-element array of 4-component vector of float) -0:15 Constant: -0:15 0 (const int) -0:15 Sequence -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 1 (const int) -0:17 Sequence -0:17 Sequence -0:17 move second child to first child ( temp 4-component vector of float) -0:? 'OutputStream.pos' ( out 4-component vector of float Position) -0:17 pos: direct index for structure ( temp 4-component vector of float) -0:17 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip}) -0:17 Constant: -0:17 0 (const int) -0:? Sequence -0:17 move second child to first child ( temp float) -0:17 direct index ( out float ClipDistance) -0:? 'OutputStream.clip' ( out 2-element array of float ClipDistance) -0:17 Constant: -0:17 0 (const int) -0:17 direct index ( temp float) -0:17 clip: direct index for structure ( temp 2-component vector of float) -0:17 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip}) -0:17 Constant: -0:17 1 (const int) -0:17 Constant: -0:17 0 (const int) -0:17 move second child to first child ( temp float) -0:17 direct index ( out float ClipDistance) -0:? 'OutputStream.clip' ( out 2-element array of float ClipDistance) -0:17 Constant: -0:17 1 (const int) -0:17 direct index ( temp float) -0:17 clip: direct index for structure ( temp 2-component vector of float) -0:17 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip}) -0:17 Constant: -0:17 1 (const int) -0:17 Constant: -0:17 1 (const int) -0:17 EmitVertex ( temp void) -0:11 Function Definition: main( ( temp void) -0:11 Function Parameters: -0:? Sequence -0:11 move second child to first child ( temp 3-element array of 4-component vector of float) -0:? 'pos' ( temp 3-element array of 4-component vector of float) -0:? 'pos' ( in 3-element array of 4-component vector of float Position) -0:11 move second child to first child ( temp 3-element array of uint) -0:? 'VertexID' ( temp 3-element array of uint) -0:? 'VertexID' (layout( location=0) in 3-element array of uint) -0:? Sequence -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 2 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 2 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 3 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 3 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 2 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 2 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 3 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 3 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 2 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 2 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 3 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 3 (const int) -0:11 Function Call: @main(vf4[3];u1[3];struct-S-vf4-vf21;vf4[3]; ( temp void) -0:? 'pos' ( temp 3-element array of 4-component vector of float) -0:? 'VertexID' ( temp 3-element array of uint) -0:? 'OutputStream' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip}) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:? Linker Objects -0:? 'pos' ( in 3-element array of 4-component vector of float Position) -0:? 'VertexID' (layout( location=0) in 3-element array of uint) -0:? 'OutputStream.pos' ( out 4-component vector of float Position) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:? 'OutputStream.clip' ( out 2-element array of float ClipDistance) - - -Linked geometry stage: - - -Shader version: 500 -invocations = 1 -max_vertices = 3 -input primitive = triangles -output primitive = line_strip -0:? Sequence -0:11 Function Definition: @main(vf4[3];u1[3];struct-S-vf4-vf21;vf4[3]; ( temp void) -0:11 Function Parameters: -0:11 'pos' ( in 3-element array of 4-component vector of float) -0:11 'VertexID' ( in 3-element array of uint) -0:11 'OutputStream' ( out structure{ temp 4-component vector of float pos, temp 2-component vector of float clip}) -0:11 'clip' ( in 3-element array of 4-component vector of float) -0:? Sequence -0:14 move second child to first child ( temp 4-component vector of float) -0:14 pos: direct index for structure ( temp 4-component vector of float) -0:14 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip}) -0:14 Constant: -0:14 0 (const int) -0:14 direct index ( temp 4-component vector of float) -0:14 'pos' ( in 3-element array of 4-component vector of float) -0:14 Constant: -0:14 0 (const int) -0:15 move second child to first child ( temp 2-component vector of float) -0:15 clip: direct index for structure ( temp 2-component vector of float) -0:15 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip}) -0:15 Constant: -0:15 1 (const int) -0:15 vector swizzle ( temp 2-component vector of float) -0:15 direct index ( temp 4-component vector of float) -0:15 'clip' ( in 3-element array of 4-component vector of float) -0:15 Constant: -0:15 0 (const int) -0:15 Sequence -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 1 (const int) -0:17 Sequence -0:17 Sequence -0:17 move second child to first child ( temp 4-component vector of float) -0:? 'OutputStream.pos' ( out 4-component vector of float Position) -0:17 pos: direct index for structure ( temp 4-component vector of float) -0:17 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip}) -0:17 Constant: -0:17 0 (const int) -0:? Sequence -0:17 move second child to first child ( temp float) -0:17 direct index ( out float ClipDistance) -0:? 'OutputStream.clip' ( out 2-element array of float ClipDistance) -0:17 Constant: -0:17 0 (const int) -0:17 direct index ( temp float) -0:17 clip: direct index for structure ( temp 2-component vector of float) -0:17 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip}) -0:17 Constant: -0:17 1 (const int) -0:17 Constant: -0:17 0 (const int) -0:17 move second child to first child ( temp float) -0:17 direct index ( out float ClipDistance) -0:? 'OutputStream.clip' ( out 2-element array of float ClipDistance) -0:17 Constant: -0:17 1 (const int) -0:17 direct index ( temp float) -0:17 clip: direct index for structure ( temp 2-component vector of float) -0:17 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip}) -0:17 Constant: -0:17 1 (const int) -0:17 Constant: -0:17 1 (const int) -0:17 EmitVertex ( temp void) -0:11 Function Definition: main( ( temp void) -0:11 Function Parameters: -0:? Sequence -0:11 move second child to first child ( temp 3-element array of 4-component vector of float) -0:? 'pos' ( temp 3-element array of 4-component vector of float) -0:? 'pos' ( in 3-element array of 4-component vector of float Position) -0:11 move second child to first child ( temp 3-element array of uint) -0:? 'VertexID' ( temp 3-element array of uint) -0:? 'VertexID' (layout( location=0) in 3-element array of uint) -0:? Sequence -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 2 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 2 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 3 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 3 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 2 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 2 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 3 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 3 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 2 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 2 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 3 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 3 (const int) -0:11 Function Call: @main(vf4[3];u1[3];struct-S-vf4-vf21;vf4[3]; ( temp void) -0:? 'pos' ( temp 3-element array of 4-component vector of float) -0:? 'VertexID' ( temp 3-element array of uint) -0:? 'OutputStream' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip}) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:? Linker Objects -0:? 'pos' ( in 3-element array of 4-component vector of float Position) -0:? 'VertexID' (layout( location=0) in 3-element array of uint) -0:? 'OutputStream.pos' ( out 4-component vector of float Position) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:? 'OutputStream.clip' ( out 2-element array of float ClipDistance) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 118 - - Capability Geometry - Capability ClipDistance - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Geometry 4 "main" 38 44 57 61 68 - ExecutionMode 4 Triangles - ExecutionMode 4 Invocations 1 - ExecutionMode 4 OutputLineStrip - ExecutionMode 4 OutputVertices 3 - Source HLSL 500 - Name 4 "main" - Name 15 "S" - MemberName 15(S) 0 "pos" - MemberName 15(S) 1 "clip" - Name 22 "@main(vf4[3];u1[3];struct-S-vf4-vf21;vf4[3];" - Name 18 "pos" - Name 19 "VertexID" - Name 20 "OutputStream" - Name 21 "clip" - Name 24 "s" - Name 38 "OutputStream.pos" - Name 44 "OutputStream.clip" - Name 55 "pos" - Name 57 "pos" - Name 59 "VertexID" - Name 61 "VertexID" - Name 63 "clip" - Name 68 "clip" - Name 108 "OutputStream" - Name 109 "param" - Name 111 "param" - Name 113 "param" - Name 114 "param" - Decorate 38(OutputStream.pos) BuiltIn Position - Decorate 44(OutputStream.clip) BuiltIn ClipDistance - Decorate 57(pos) BuiltIn Position - Decorate 61(VertexID) Location 0 - Decorate 68(clip) BuiltIn ClipDistance - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeInt 32 0 - 9: 8(int) Constant 3 - 10: TypeArray 7(fvec4) 9 - 11: TypePointer Function 10 - 12: TypeArray 8(int) 9 - 13: TypePointer Function 12 - 14: TypeVector 6(float) 2 - 15(S): TypeStruct 7(fvec4) 14(fvec2) - 16: TypePointer Function 15(S) - 17: TypeFunction 2 11(ptr) 13(ptr) 16(ptr) 11(ptr) - 25: TypeInt 32 1 - 26: 25(int) Constant 0 - 27: TypePointer Function 7(fvec4) - 31: 25(int) Constant 1 - 35: TypePointer Function 14(fvec2) - 37: TypePointer Output 7(fvec4) -38(OutputStream.pos): 37(ptr) Variable Output - 41: 8(int) Constant 2 - 42: TypeArray 6(float) 41 - 43: TypePointer Output 42 -44(OutputStream.clip): 43(ptr) Variable Output - 45: 8(int) Constant 0 - 46: TypePointer Function 6(float) - 49: TypePointer Output 6(float) - 51: 8(int) Constant 1 - 56: TypePointer Input 10 - 57(pos): 56(ptr) Variable Input - 60: TypePointer Input 12 - 61(VertexID): 60(ptr) Variable Input - 64: 8(int) Constant 4 - 65: TypeArray 6(float) 64 - 66: TypeArray 65 9 - 67: TypePointer Input 66 - 68(clip): 67(ptr) Variable Input - 69: TypePointer Input 6(float) - 76: 25(int) Constant 2 - 80: 25(int) Constant 3 - 4(main): 2 Function None 3 - 5: Label - 55(pos): 11(ptr) Variable Function - 59(VertexID): 13(ptr) Variable Function - 63(clip): 11(ptr) Variable Function -108(OutputStream): 16(ptr) Variable Function - 109(param): 11(ptr) Variable Function - 111(param): 13(ptr) Variable Function - 113(param): 16(ptr) Variable Function - 114(param): 11(ptr) Variable Function - 58: 10 Load 57(pos) - Store 55(pos) 58 - 62: 12 Load 61(VertexID) - Store 59(VertexID) 62 - 70: 69(ptr) AccessChain 68(clip) 26 26 - 71: 6(float) Load 70 - 72: 46(ptr) AccessChain 63(clip) 26 45 - Store 72 71 - 73: 69(ptr) AccessChain 68(clip) 26 31 - 74: 6(float) Load 73 - 75: 46(ptr) AccessChain 63(clip) 26 51 - Store 75 74 - 77: 69(ptr) AccessChain 68(clip) 26 76 - 78: 6(float) Load 77 - 79: 46(ptr) AccessChain 63(clip) 26 41 - Store 79 78 - 81: 69(ptr) AccessChain 68(clip) 26 80 - 82: 6(float) Load 81 - 83: 46(ptr) AccessChain 63(clip) 26 9 - Store 83 82 - 84: 69(ptr) AccessChain 68(clip) 31 26 - 85: 6(float) Load 84 - 86: 46(ptr) AccessChain 63(clip) 31 45 - Store 86 85 - 87: 69(ptr) AccessChain 68(clip) 31 31 - 88: 6(float) Load 87 - 89: 46(ptr) AccessChain 63(clip) 31 51 - Store 89 88 - 90: 69(ptr) AccessChain 68(clip) 31 76 - 91: 6(float) Load 90 - 92: 46(ptr) AccessChain 63(clip) 31 41 - Store 92 91 - 93: 69(ptr) AccessChain 68(clip) 31 80 - 94: 6(float) Load 93 - 95: 46(ptr) AccessChain 63(clip) 31 9 - Store 95 94 - 96: 69(ptr) AccessChain 68(clip) 76 26 - 97: 6(float) Load 96 - 98: 46(ptr) AccessChain 63(clip) 76 45 - Store 98 97 - 99: 69(ptr) AccessChain 68(clip) 76 31 - 100: 6(float) Load 99 - 101: 46(ptr) AccessChain 63(clip) 76 51 - Store 101 100 - 102: 69(ptr) AccessChain 68(clip) 76 76 - 103: 6(float) Load 102 - 104: 46(ptr) AccessChain 63(clip) 76 41 - Store 104 103 - 105: 69(ptr) AccessChain 68(clip) 76 80 - 106: 6(float) Load 105 - 107: 46(ptr) AccessChain 63(clip) 76 9 - Store 107 106 - 110: 10 Load 55(pos) - Store 109(param) 110 - 112: 12 Load 59(VertexID) - Store 111(param) 112 - 115: 10 Load 63(clip) - Store 114(param) 115 - 116: 2 FunctionCall 22(@main(vf4[3];u1[3];struct-S-vf4-vf21;vf4[3];) 109(param) 111(param) 113(param) 114(param) - 117: 15(S) Load 113(param) - Store 108(OutputStream) 117 - Return - FunctionEnd -22(@main(vf4[3];u1[3];struct-S-vf4-vf21;vf4[3];): 2 Function None 17 - 18(pos): 11(ptr) FunctionParameter - 19(VertexID): 13(ptr) FunctionParameter -20(OutputStream): 16(ptr) FunctionParameter - 21(clip): 11(ptr) FunctionParameter - 23: Label - 24(s): 16(ptr) Variable Function - 28: 27(ptr) AccessChain 18(pos) 26 - 29: 7(fvec4) Load 28 - 30: 27(ptr) AccessChain 24(s) 26 - Store 30 29 - 32: 27(ptr) AccessChain 21(clip) 26 - 33: 7(fvec4) Load 32 - 34: 14(fvec2) VectorShuffle 33 33 0 1 - 36: 35(ptr) AccessChain 24(s) 31 - Store 36 34 - 39: 27(ptr) AccessChain 24(s) 26 - 40: 7(fvec4) Load 39 - Store 38(OutputStream.pos) 40 - 47: 46(ptr) AccessChain 24(s) 31 45 - 48: 6(float) Load 47 - 50: 49(ptr) AccessChain 44(OutputStream.clip) 26 - Store 50 48 - 52: 46(ptr) AccessChain 24(s) 31 51 - 53: 6(float) Load 52 - 54: 49(ptr) AccessChain 44(OutputStream.clip) 31 - Store 54 53 - EmitVertex - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.clipdistance-1.vert.out b/deps/glslang/Test/baseResults/hlsl.clipdistance-1.vert.out deleted file mode 100644 index 41478e16..00000000 --- a/deps/glslang/Test/baseResults/hlsl.clipdistance-1.vert.out +++ /dev/null @@ -1,194 +0,0 @@ -hlsl.clipdistance-1.vert -Shader version: 500 -0:? Sequence -0:4 Function Definition: @main(vf4;f1;f1; ( temp void) -0:4 Function Parameters: -0:4 'pos' ( out 4-component vector of float) -0:4 'clip' ( out float) -0:4 'cull' ( out float) -0:? Sequence -0:5 move second child to first child ( temp 4-component vector of float) -0:5 'pos' ( out 4-component vector of float) -0:5 Constant: -0:5 1.000000 -0:5 1.000000 -0:5 1.000000 -0:5 1.000000 -0:6 move second child to first child ( temp float) -0:6 'clip' ( out float) -0:6 Constant: -0:6 0.500000 -0:7 move second child to first child ( temp float) -0:7 'cull' ( out float) -0:7 Constant: -0:7 0.510000 -0:4 Function Definition: main( ( temp void) -0:4 Function Parameters: -0:? Sequence -0:4 Function Call: @main(vf4;f1;f1; ( temp void) -0:? 'pos' ( temp 4-component vector of float) -0:? 'clip' ( temp float) -0:? 'cull' ( temp float) -0:4 move second child to first child ( temp 4-component vector of float) -0:? 'pos' ( out 4-component vector of float Position) -0:? 'pos' ( temp 4-component vector of float) -0:? Sequence -0:4 move second child to first child ( temp float) -0:4 direct index ( out float ClipDistance) -0:? 'clip' ( out 1-element array of float ClipDistance) -0:4 Constant: -0:4 0 (const int) -0:? 'clip' ( temp float) -0:? Sequence -0:4 move second child to first child ( temp float) -0:4 direct index ( out float CullDistance) -0:? 'cull' ( out 1-element array of float CullDistance) -0:4 Constant: -0:4 0 (const int) -0:? 'cull' ( temp float) -0:? Linker Objects -0:? 'pos' ( out 4-component vector of float Position) -0:? 'clip' ( out 1-element array of float ClipDistance) -0:? 'cull' ( out 1-element array of float CullDistance) - - -Linked vertex stage: - - -Shader version: 500 -0:? Sequence -0:4 Function Definition: @main(vf4;f1;f1; ( temp void) -0:4 Function Parameters: -0:4 'pos' ( out 4-component vector of float) -0:4 'clip' ( out float) -0:4 'cull' ( out float) -0:? Sequence -0:5 move second child to first child ( temp 4-component vector of float) -0:5 'pos' ( out 4-component vector of float) -0:5 Constant: -0:5 1.000000 -0:5 1.000000 -0:5 1.000000 -0:5 1.000000 -0:6 move second child to first child ( temp float) -0:6 'clip' ( out float) -0:6 Constant: -0:6 0.500000 -0:7 move second child to first child ( temp float) -0:7 'cull' ( out float) -0:7 Constant: -0:7 0.510000 -0:4 Function Definition: main( ( temp void) -0:4 Function Parameters: -0:? Sequence -0:4 Function Call: @main(vf4;f1;f1; ( temp void) -0:? 'pos' ( temp 4-component vector of float) -0:? 'clip' ( temp float) -0:? 'cull' ( temp float) -0:4 move second child to first child ( temp 4-component vector of float) -0:? 'pos' ( out 4-component vector of float Position) -0:? 'pos' ( temp 4-component vector of float) -0:? Sequence -0:4 move second child to first child ( temp float) -0:4 direct index ( out float ClipDistance) -0:? 'clip' ( out 1-element array of float ClipDistance) -0:4 Constant: -0:4 0 (const int) -0:? 'clip' ( temp float) -0:? Sequence -0:4 move second child to first child ( temp float) -0:4 direct index ( out float CullDistance) -0:? 'cull' ( out 1-element array of float CullDistance) -0:4 Constant: -0:4 0 (const int) -0:? 'cull' ( temp float) -0:? Linker Objects -0:? 'pos' ( out 4-component vector of float Position) -0:? 'clip' ( out 1-element array of float ClipDistance) -0:? 'cull' ( out 1-element array of float CullDistance) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 46 - - Capability Shader - Capability ClipDistance - Capability CullDistance - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 31 37 43 - Source HLSL 500 - Name 4 "main" - Name 14 "@main(vf4;f1;f1;" - Name 11 "pos" - Name 12 "clip" - Name 13 "cull" - Name 20 "pos" - Name 21 "clip" - Name 22 "cull" - Name 23 "param" - Name 24 "param" - Name 25 "param" - Name 31 "pos" - Name 37 "clip" - Name 43 "cull" - Decorate 31(pos) BuiltIn Position - Decorate 37(clip) BuiltIn ClipDistance - Decorate 43(cull) BuiltIn CullDistance - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 9: TypePointer Function 6(float) - 10: TypeFunction 2 8(ptr) 9(ptr) 9(ptr) - 16: 6(float) Constant 1065353216 - 17: 7(fvec4) ConstantComposite 16 16 16 16 - 18: 6(float) Constant 1056964608 - 19: 6(float) Constant 1057132380 - 30: TypePointer Output 7(fvec4) - 31(pos): 30(ptr) Variable Output - 33: TypeInt 32 0 - 34: 33(int) Constant 1 - 35: TypeArray 6(float) 34 - 36: TypePointer Output 35 - 37(clip): 36(ptr) Variable Output - 38: TypeInt 32 1 - 39: 38(int) Constant 0 - 41: TypePointer Output 6(float) - 43(cull): 36(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 20(pos): 8(ptr) Variable Function - 21(clip): 9(ptr) Variable Function - 22(cull): 9(ptr) Variable Function - 23(param): 8(ptr) Variable Function - 24(param): 9(ptr) Variable Function - 25(param): 9(ptr) Variable Function - 26: 2 FunctionCall 14(@main(vf4;f1;f1;) 23(param) 24(param) 25(param) - 27: 7(fvec4) Load 23(param) - Store 20(pos) 27 - 28: 6(float) Load 24(param) - Store 21(clip) 28 - 29: 6(float) Load 25(param) - Store 22(cull) 29 - 32: 7(fvec4) Load 20(pos) - Store 31(pos) 32 - 40: 6(float) Load 21(clip) - 42: 41(ptr) AccessChain 37(clip) 39 - Store 42 40 - 44: 6(float) Load 22(cull) - 45: 41(ptr) AccessChain 43(cull) 39 - Store 45 44 - Return - FunctionEnd -14(@main(vf4;f1;f1;): 2 Function None 10 - 11(pos): 8(ptr) FunctionParameter - 12(clip): 9(ptr) FunctionParameter - 13(cull): 9(ptr) FunctionParameter - 15: Label - Store 11(pos) 17 - Store 12(clip) 18 - Store 13(cull) 19 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.clipdistance-2.frag.out b/deps/glslang/Test/baseResults/hlsl.clipdistance-2.frag.out deleted file mode 100644 index 15a9512a..00000000 --- a/deps/glslang/Test/baseResults/hlsl.clipdistance-2.frag.out +++ /dev/null @@ -1,419 +0,0 @@ -hlsl.clipdistance-2.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:4 Function Definition: @main(vf4;vf2[2];vf2[2]; ( temp 4-component vector of float) -0:4 Function Parameters: -0:4 'pos' ( in 4-component vector of float) -0:4 'clip' ( in 2-element array of 2-component vector of float) -0:4 'cull' ( in 2-element array of 2-component vector of float) -0:? Sequence -0:6 Branch: Return with expression -0:6 add ( temp 4-component vector of float) -0:6 add ( temp 4-component vector of float) -0:6 'pos' ( in 4-component vector of float) -0:6 direct index ( temp float) -0:6 direct index ( temp 2-component vector of float) -0:6 'clip' ( in 2-element array of 2-component vector of float) -0:6 Constant: -0:6 0 (const int) -0:6 Constant: -0:6 0 (const int) -0:6 direct index ( temp float) -0:6 direct index ( temp 2-component vector of float) -0:6 'cull' ( in 2-element array of 2-component vector of float) -0:6 Constant: -0:6 0 (const int) -0:6 Constant: -0:6 0 (const int) -0:4 Function Definition: main( ( temp void) -0:4 Function Parameters: -0:? Sequence -0:4 move second child to first child ( temp 4-component vector of float) -0:? 'pos' ( temp 4-component vector of float) -0:? 'pos' ( in 4-component vector of float FragCoord) -0:? Sequence -0:4 move second child to first child ( temp float) -0:4 direct index ( temp float) -0:4 direct index ( temp 2-component vector of float) -0:? 'clip' ( temp 2-element array of 2-component vector of float) -0:4 Constant: -0:4 0 (const int) -0:4 Constant: -0:4 0 (const int) -0:4 direct index ( in float ClipDistance) -0:? 'clip' ( in 4-element array of float ClipDistance) -0:4 Constant: -0:4 0 (const int) -0:4 move second child to first child ( temp float) -0:4 direct index ( temp float) -0:4 direct index ( temp 2-component vector of float) -0:? 'clip' ( temp 2-element array of 2-component vector of float) -0:4 Constant: -0:4 0 (const int) -0:4 Constant: -0:4 1 (const int) -0:4 direct index ( in float ClipDistance) -0:? 'clip' ( in 4-element array of float ClipDistance) -0:4 Constant: -0:4 1 (const int) -0:4 move second child to first child ( temp float) -0:4 direct index ( temp float) -0:4 direct index ( temp 2-component vector of float) -0:? 'clip' ( temp 2-element array of 2-component vector of float) -0:4 Constant: -0:4 1 (const int) -0:4 Constant: -0:4 0 (const int) -0:4 direct index ( in float ClipDistance) -0:? 'clip' ( in 4-element array of float ClipDistance) -0:4 Constant: -0:4 2 (const int) -0:4 move second child to first child ( temp float) -0:4 direct index ( temp float) -0:4 direct index ( temp 2-component vector of float) -0:? 'clip' ( temp 2-element array of 2-component vector of float) -0:4 Constant: -0:4 1 (const int) -0:4 Constant: -0:4 1 (const int) -0:4 direct index ( in float ClipDistance) -0:? 'clip' ( in 4-element array of float ClipDistance) -0:4 Constant: -0:4 3 (const int) -0:? Sequence -0:4 move second child to first child ( temp float) -0:4 direct index ( temp float) -0:4 direct index ( temp 2-component vector of float) -0:? 'cull' ( temp 2-element array of 2-component vector of float) -0:4 Constant: -0:4 0 (const int) -0:4 Constant: -0:4 0 (const int) -0:4 direct index ( in float CullDistance) -0:? 'cull' ( in 4-element array of float CullDistance) -0:4 Constant: -0:4 0 (const int) -0:4 move second child to first child ( temp float) -0:4 direct index ( temp float) -0:4 direct index ( temp 2-component vector of float) -0:? 'cull' ( temp 2-element array of 2-component vector of float) -0:4 Constant: -0:4 0 (const int) -0:4 Constant: -0:4 1 (const int) -0:4 direct index ( in float CullDistance) -0:? 'cull' ( in 4-element array of float CullDistance) -0:4 Constant: -0:4 1 (const int) -0:4 move second child to first child ( temp float) -0:4 direct index ( temp float) -0:4 direct index ( temp 2-component vector of float) -0:? 'cull' ( temp 2-element array of 2-component vector of float) -0:4 Constant: -0:4 1 (const int) -0:4 Constant: -0:4 0 (const int) -0:4 direct index ( in float CullDistance) -0:? 'cull' ( in 4-element array of float CullDistance) -0:4 Constant: -0:4 2 (const int) -0:4 move second child to first child ( temp float) -0:4 direct index ( temp float) -0:4 direct index ( temp 2-component vector of float) -0:? 'cull' ( temp 2-element array of 2-component vector of float) -0:4 Constant: -0:4 1 (const int) -0:4 Constant: -0:4 1 (const int) -0:4 direct index ( in float CullDistance) -0:? 'cull' ( in 4-element array of float CullDistance) -0:4 Constant: -0:4 3 (const int) -0:4 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:4 Function Call: @main(vf4;vf2[2];vf2[2]; ( temp 4-component vector of float) -0:? 'pos' ( temp 4-component vector of float) -0:? 'clip' ( temp 2-element array of 2-component vector of float) -0:? 'cull' ( temp 2-element array of 2-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'pos' ( in 4-component vector of float FragCoord) -0:? 'clip' ( in 4-element array of float ClipDistance) -0:? 'cull' ( in 4-element array of float CullDistance) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:4 Function Definition: @main(vf4;vf2[2];vf2[2]; ( temp 4-component vector of float) -0:4 Function Parameters: -0:4 'pos' ( in 4-component vector of float) -0:4 'clip' ( in 2-element array of 2-component vector of float) -0:4 'cull' ( in 2-element array of 2-component vector of float) -0:? Sequence -0:6 Branch: Return with expression -0:6 add ( temp 4-component vector of float) -0:6 add ( temp 4-component vector of float) -0:6 'pos' ( in 4-component vector of float) -0:6 direct index ( temp float) -0:6 direct index ( temp 2-component vector of float) -0:6 'clip' ( in 2-element array of 2-component vector of float) -0:6 Constant: -0:6 0 (const int) -0:6 Constant: -0:6 0 (const int) -0:6 direct index ( temp float) -0:6 direct index ( temp 2-component vector of float) -0:6 'cull' ( in 2-element array of 2-component vector of float) -0:6 Constant: -0:6 0 (const int) -0:6 Constant: -0:6 0 (const int) -0:4 Function Definition: main( ( temp void) -0:4 Function Parameters: -0:? Sequence -0:4 move second child to first child ( temp 4-component vector of float) -0:? 'pos' ( temp 4-component vector of float) -0:? 'pos' ( in 4-component vector of float FragCoord) -0:? Sequence -0:4 move second child to first child ( temp float) -0:4 direct index ( temp float) -0:4 direct index ( temp 2-component vector of float) -0:? 'clip' ( temp 2-element array of 2-component vector of float) -0:4 Constant: -0:4 0 (const int) -0:4 Constant: -0:4 0 (const int) -0:4 direct index ( in float ClipDistance) -0:? 'clip' ( in 4-element array of float ClipDistance) -0:4 Constant: -0:4 0 (const int) -0:4 move second child to first child ( temp float) -0:4 direct index ( temp float) -0:4 direct index ( temp 2-component vector of float) -0:? 'clip' ( temp 2-element array of 2-component vector of float) -0:4 Constant: -0:4 0 (const int) -0:4 Constant: -0:4 1 (const int) -0:4 direct index ( in float ClipDistance) -0:? 'clip' ( in 4-element array of float ClipDistance) -0:4 Constant: -0:4 1 (const int) -0:4 move second child to first child ( temp float) -0:4 direct index ( temp float) -0:4 direct index ( temp 2-component vector of float) -0:? 'clip' ( temp 2-element array of 2-component vector of float) -0:4 Constant: -0:4 1 (const int) -0:4 Constant: -0:4 0 (const int) -0:4 direct index ( in float ClipDistance) -0:? 'clip' ( in 4-element array of float ClipDistance) -0:4 Constant: -0:4 2 (const int) -0:4 move second child to first child ( temp float) -0:4 direct index ( temp float) -0:4 direct index ( temp 2-component vector of float) -0:? 'clip' ( temp 2-element array of 2-component vector of float) -0:4 Constant: -0:4 1 (const int) -0:4 Constant: -0:4 1 (const int) -0:4 direct index ( in float ClipDistance) -0:? 'clip' ( in 4-element array of float ClipDistance) -0:4 Constant: -0:4 3 (const int) -0:? Sequence -0:4 move second child to first child ( temp float) -0:4 direct index ( temp float) -0:4 direct index ( temp 2-component vector of float) -0:? 'cull' ( temp 2-element array of 2-component vector of float) -0:4 Constant: -0:4 0 (const int) -0:4 Constant: -0:4 0 (const int) -0:4 direct index ( in float CullDistance) -0:? 'cull' ( in 4-element array of float CullDistance) -0:4 Constant: -0:4 0 (const int) -0:4 move second child to first child ( temp float) -0:4 direct index ( temp float) -0:4 direct index ( temp 2-component vector of float) -0:? 'cull' ( temp 2-element array of 2-component vector of float) -0:4 Constant: -0:4 0 (const int) -0:4 Constant: -0:4 1 (const int) -0:4 direct index ( in float CullDistance) -0:? 'cull' ( in 4-element array of float CullDistance) -0:4 Constant: -0:4 1 (const int) -0:4 move second child to first child ( temp float) -0:4 direct index ( temp float) -0:4 direct index ( temp 2-component vector of float) -0:? 'cull' ( temp 2-element array of 2-component vector of float) -0:4 Constant: -0:4 1 (const int) -0:4 Constant: -0:4 0 (const int) -0:4 direct index ( in float CullDistance) -0:? 'cull' ( in 4-element array of float CullDistance) -0:4 Constant: -0:4 2 (const int) -0:4 move second child to first child ( temp float) -0:4 direct index ( temp float) -0:4 direct index ( temp 2-component vector of float) -0:? 'cull' ( temp 2-element array of 2-component vector of float) -0:4 Constant: -0:4 1 (const int) -0:4 Constant: -0:4 1 (const int) -0:4 direct index ( in float CullDistance) -0:? 'cull' ( in 4-element array of float CullDistance) -0:4 Constant: -0:4 3 (const int) -0:4 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:4 Function Call: @main(vf4;vf2[2];vf2[2]; ( temp 4-component vector of float) -0:? 'pos' ( temp 4-component vector of float) -0:? 'clip' ( temp 2-element array of 2-component vector of float) -0:? 'cull' ( temp 2-element array of 2-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'pos' ( in 4-component vector of float FragCoord) -0:? 'clip' ( in 4-element array of float ClipDistance) -0:? 'cull' ( in 4-element array of float CullDistance) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 84 - - Capability Shader - Capability ClipDistance - Capability CullDistance - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 37 43 62 76 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 18 "@main(vf4;vf2[2];vf2[2];" - Name 15 "pos" - Name 16 "clip" - Name 17 "cull" - Name 35 "pos" - Name 37 "pos" - Name 39 "clip" - Name 43 "clip" - Name 61 "cull" - Name 62 "cull" - Name 76 "@entryPointOutput" - Name 77 "param" - Name 79 "param" - Name 81 "param" - Decorate 37(pos) BuiltIn FragCoord - Decorate 43(clip) BuiltIn ClipDistance - Decorate 62(cull) BuiltIn CullDistance - Decorate 76(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 9: TypeVector 6(float) 2 - 10: TypeInt 32 0 - 11: 10(int) Constant 2 - 12: TypeArray 9(fvec2) 11 - 13: TypePointer Function 12 - 14: TypeFunction 7(fvec4) 8(ptr) 13(ptr) 13(ptr) - 21: TypeInt 32 1 - 22: 21(int) Constant 0 - 23: 10(int) Constant 0 - 24: TypePointer Function 6(float) - 36: TypePointer Input 7(fvec4) - 37(pos): 36(ptr) Variable Input - 40: 10(int) Constant 4 - 41: TypeArray 6(float) 40 - 42: TypePointer Input 41 - 43(clip): 42(ptr) Variable Input - 44: TypePointer Input 6(float) - 48: 21(int) Constant 1 - 51: 10(int) Constant 1 - 53: 21(int) Constant 2 - 57: 21(int) Constant 3 - 62(cull): 42(ptr) Variable Input - 75: TypePointer Output 7(fvec4) -76(@entryPointOutput): 75(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 35(pos): 8(ptr) Variable Function - 39(clip): 13(ptr) Variable Function - 61(cull): 13(ptr) Variable Function - 77(param): 8(ptr) Variable Function - 79(param): 13(ptr) Variable Function - 81(param): 13(ptr) Variable Function - 38: 7(fvec4) Load 37(pos) - Store 35(pos) 38 - 45: 44(ptr) AccessChain 43(clip) 22 - 46: 6(float) Load 45 - 47: 24(ptr) AccessChain 39(clip) 22 23 - Store 47 46 - 49: 44(ptr) AccessChain 43(clip) 48 - 50: 6(float) Load 49 - 52: 24(ptr) AccessChain 39(clip) 22 51 - Store 52 50 - 54: 44(ptr) AccessChain 43(clip) 53 - 55: 6(float) Load 54 - 56: 24(ptr) AccessChain 39(clip) 48 23 - Store 56 55 - 58: 44(ptr) AccessChain 43(clip) 57 - 59: 6(float) Load 58 - 60: 24(ptr) AccessChain 39(clip) 48 51 - Store 60 59 - 63: 44(ptr) AccessChain 62(cull) 22 - 64: 6(float) Load 63 - 65: 24(ptr) AccessChain 61(cull) 22 23 - Store 65 64 - 66: 44(ptr) AccessChain 62(cull) 48 - 67: 6(float) Load 66 - 68: 24(ptr) AccessChain 61(cull) 22 51 - Store 68 67 - 69: 44(ptr) AccessChain 62(cull) 53 - 70: 6(float) Load 69 - 71: 24(ptr) AccessChain 61(cull) 48 23 - Store 71 70 - 72: 44(ptr) AccessChain 62(cull) 57 - 73: 6(float) Load 72 - 74: 24(ptr) AccessChain 61(cull) 48 51 - Store 74 73 - 78: 7(fvec4) Load 35(pos) - Store 77(param) 78 - 80: 12 Load 39(clip) - Store 79(param) 80 - 82: 12 Load 61(cull) - Store 81(param) 82 - 83: 7(fvec4) FunctionCall 18(@main(vf4;vf2[2];vf2[2];) 77(param) 79(param) 81(param) - Store 76(@entryPointOutput) 83 - Return - FunctionEnd -18(@main(vf4;vf2[2];vf2[2];): 7(fvec4) Function None 14 - 15(pos): 8(ptr) FunctionParameter - 16(clip): 13(ptr) FunctionParameter - 17(cull): 13(ptr) FunctionParameter - 19: Label - 20: 7(fvec4) Load 15(pos) - 25: 24(ptr) AccessChain 16(clip) 22 23 - 26: 6(float) Load 25 - 27: 7(fvec4) CompositeConstruct 26 26 26 26 - 28: 7(fvec4) FAdd 20 27 - 29: 24(ptr) AccessChain 17(cull) 22 23 - 30: 6(float) Load 29 - 31: 7(fvec4) CompositeConstruct 30 30 30 30 - 32: 7(fvec4) FAdd 28 31 - ReturnValue 32 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.clipdistance-2.geom.out b/deps/glslang/Test/baseResults/hlsl.clipdistance-2.geom.out deleted file mode 100644 index bb8d1373..00000000 --- a/deps/glslang/Test/baseResults/hlsl.clipdistance-2.geom.out +++ /dev/null @@ -1,924 +0,0 @@ -hlsl.clipdistance-2.geom -Shader version: 500 -invocations = -1 -max_vertices = 3 -input primitive = triangles -output primitive = line_strip -0:? Sequence -0:11 Function Definition: @main(vf4[3];u1[3];struct-S-vf4-vf2[2]1;vf2[3][2]; ( temp void) -0:11 Function Parameters: -0:11 'pos' ( in 3-element array of 4-component vector of float) -0:11 'VertexID' ( in 3-element array of uint) -0:11 'OutputStream' ( out structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) -0:11 'clip' ( in 3-element array of 2-element array of 2-component vector of float) -0:? Sequence -0:14 move second child to first child ( temp 4-component vector of float) -0:14 pos: direct index for structure ( temp 4-component vector of float) -0:14 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) -0:14 Constant: -0:14 0 (const int) -0:14 direct index ( temp 4-component vector of float) -0:14 'pos' ( in 3-element array of 4-component vector of float) -0:14 Constant: -0:14 0 (const int) -0:15 move second child to first child ( temp 2-component vector of float) -0:15 direct index ( temp 2-component vector of float) -0:15 clip: direct index for structure ( temp 2-element array of 2-component vector of float) -0:15 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) -0:15 Constant: -0:15 1 (const int) -0:15 Constant: -0:15 0 (const int) -0:15 direct index ( temp 2-component vector of float) -0:15 direct index ( temp 2-element array of 2-component vector of float) -0:15 'clip' ( in 3-element array of 2-element array of 2-component vector of float) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0 (const int) -0:16 move second child to first child ( temp 2-component vector of float) -0:16 direct index ( temp 2-component vector of float) -0:16 clip: direct index for structure ( temp 2-element array of 2-component vector of float) -0:16 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) -0:16 Constant: -0:16 1 (const int) -0:16 Constant: -0:16 1 (const int) -0:16 direct index ( temp 2-component vector of float) -0:16 direct index ( temp 2-element array of 2-component vector of float) -0:16 'clip' ( in 3-element array of 2-element array of 2-component vector of float) -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 1 (const int) -0:18 Sequence -0:18 Sequence -0:18 move second child to first child ( temp 4-component vector of float) -0:? 'OutputStream.pos' ( out 4-component vector of float Position) -0:18 pos: direct index for structure ( temp 4-component vector of float) -0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) -0:18 Constant: -0:18 0 (const int) -0:? Sequence -0:18 move second child to first child ( temp float) -0:18 direct index ( out float ClipDistance) -0:? 'OutputStream.clip' ( out 4-element array of float ClipDistance) -0:18 Constant: -0:18 0 (const int) -0:18 direct index ( temp float) -0:18 direct index ( temp 2-component vector of float) -0:18 clip: direct index for structure ( temp 2-element array of 2-component vector of float) -0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) -0:18 Constant: -0:18 1 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 move second child to first child ( temp float) -0:18 direct index ( out float ClipDistance) -0:? 'OutputStream.clip' ( out 4-element array of float ClipDistance) -0:18 Constant: -0:18 1 (const int) -0:18 direct index ( temp float) -0:18 direct index ( temp 2-component vector of float) -0:18 clip: direct index for structure ( temp 2-element array of 2-component vector of float) -0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) -0:18 Constant: -0:18 1 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 1 (const int) -0:18 move second child to first child ( temp float) -0:18 direct index ( out float ClipDistance) -0:? 'OutputStream.clip' ( out 4-element array of float ClipDistance) -0:18 Constant: -0:18 2 (const int) -0:18 direct index ( temp float) -0:18 direct index ( temp 2-component vector of float) -0:18 clip: direct index for structure ( temp 2-element array of 2-component vector of float) -0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) -0:18 Constant: -0:18 1 (const int) -0:18 Constant: -0:18 1 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 move second child to first child ( temp float) -0:18 direct index ( out float ClipDistance) -0:? 'OutputStream.clip' ( out 4-element array of float ClipDistance) -0:18 Constant: -0:18 3 (const int) -0:18 direct index ( temp float) -0:18 direct index ( temp 2-component vector of float) -0:18 clip: direct index for structure ( temp 2-element array of 2-component vector of float) -0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) -0:18 Constant: -0:18 1 (const int) -0:18 Constant: -0:18 1 (const int) -0:18 Constant: -0:18 1 (const int) -0:18 EmitVertex ( temp void) -0:11 Function Definition: main( ( temp void) -0:11 Function Parameters: -0:? Sequence -0:11 move second child to first child ( temp 3-element array of 4-component vector of float) -0:? 'pos' ( temp 3-element array of 4-component vector of float) -0:? 'pos' ( in 3-element array of 4-component vector of float Position) -0:11 move second child to first child ( temp 3-element array of uint) -0:? 'VertexID' ( temp 3-element array of uint) -0:? 'VertexID' (layout( location=0) in 3-element array of uint) -0:? Sequence -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 2-component vector of float) -0:11 direct index ( temp 2-element array of 2-component vector of float) -0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 2-component vector of float) -0:11 direct index ( temp 2-element array of 2-component vector of float) -0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 2-component vector of float) -0:11 direct index ( temp 2-element array of 2-component vector of float) -0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 2 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 2-component vector of float) -0:11 direct index ( temp 2-element array of 2-component vector of float) -0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 3 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 2-component vector of float) -0:11 direct index ( temp 2-element array of 2-component vector of float) -0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 2-component vector of float) -0:11 direct index ( temp 2-element array of 2-component vector of float) -0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 2-component vector of float) -0:11 direct index ( temp 2-element array of 2-component vector of float) -0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 2 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 2-component vector of float) -0:11 direct index ( temp 2-element array of 2-component vector of float) -0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 3 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 2-component vector of float) -0:11 direct index ( temp 2-element array of 2-component vector of float) -0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 2-component vector of float) -0:11 direct index ( temp 2-element array of 2-component vector of float) -0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 2-component vector of float) -0:11 direct index ( temp 2-element array of 2-component vector of float) -0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 2 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 2-component vector of float) -0:11 direct index ( temp 2-element array of 2-component vector of float) -0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 3 (const int) -0:11 Function Call: @main(vf4[3];u1[3];struct-S-vf4-vf2[2]1;vf2[3][2]; ( temp void) -0:? 'pos' ( temp 3-element array of 4-component vector of float) -0:? 'VertexID' ( temp 3-element array of uint) -0:? 'OutputStream' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) -0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) -0:? Linker Objects -0:? 'pos' ( in 3-element array of 4-component vector of float Position) -0:? 'VertexID' (layout( location=0) in 3-element array of uint) -0:? 'OutputStream.pos' ( out 4-component vector of float Position) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:? 'OutputStream.clip' ( out 4-element array of float ClipDistance) - - -Linked geometry stage: - - -Shader version: 500 -invocations = 1 -max_vertices = 3 -input primitive = triangles -output primitive = line_strip -0:? Sequence -0:11 Function Definition: @main(vf4[3];u1[3];struct-S-vf4-vf2[2]1;vf2[3][2]; ( temp void) -0:11 Function Parameters: -0:11 'pos' ( in 3-element array of 4-component vector of float) -0:11 'VertexID' ( in 3-element array of uint) -0:11 'OutputStream' ( out structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) -0:11 'clip' ( in 3-element array of 2-element array of 2-component vector of float) -0:? Sequence -0:14 move second child to first child ( temp 4-component vector of float) -0:14 pos: direct index for structure ( temp 4-component vector of float) -0:14 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) -0:14 Constant: -0:14 0 (const int) -0:14 direct index ( temp 4-component vector of float) -0:14 'pos' ( in 3-element array of 4-component vector of float) -0:14 Constant: -0:14 0 (const int) -0:15 move second child to first child ( temp 2-component vector of float) -0:15 direct index ( temp 2-component vector of float) -0:15 clip: direct index for structure ( temp 2-element array of 2-component vector of float) -0:15 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) -0:15 Constant: -0:15 1 (const int) -0:15 Constant: -0:15 0 (const int) -0:15 direct index ( temp 2-component vector of float) -0:15 direct index ( temp 2-element array of 2-component vector of float) -0:15 'clip' ( in 3-element array of 2-element array of 2-component vector of float) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0 (const int) -0:16 move second child to first child ( temp 2-component vector of float) -0:16 direct index ( temp 2-component vector of float) -0:16 clip: direct index for structure ( temp 2-element array of 2-component vector of float) -0:16 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) -0:16 Constant: -0:16 1 (const int) -0:16 Constant: -0:16 1 (const int) -0:16 direct index ( temp 2-component vector of float) -0:16 direct index ( temp 2-element array of 2-component vector of float) -0:16 'clip' ( in 3-element array of 2-element array of 2-component vector of float) -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 1 (const int) -0:18 Sequence -0:18 Sequence -0:18 move second child to first child ( temp 4-component vector of float) -0:? 'OutputStream.pos' ( out 4-component vector of float Position) -0:18 pos: direct index for structure ( temp 4-component vector of float) -0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) -0:18 Constant: -0:18 0 (const int) -0:? Sequence -0:18 move second child to first child ( temp float) -0:18 direct index ( out float ClipDistance) -0:? 'OutputStream.clip' ( out 4-element array of float ClipDistance) -0:18 Constant: -0:18 0 (const int) -0:18 direct index ( temp float) -0:18 direct index ( temp 2-component vector of float) -0:18 clip: direct index for structure ( temp 2-element array of 2-component vector of float) -0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) -0:18 Constant: -0:18 1 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 move second child to first child ( temp float) -0:18 direct index ( out float ClipDistance) -0:? 'OutputStream.clip' ( out 4-element array of float ClipDistance) -0:18 Constant: -0:18 1 (const int) -0:18 direct index ( temp float) -0:18 direct index ( temp 2-component vector of float) -0:18 clip: direct index for structure ( temp 2-element array of 2-component vector of float) -0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) -0:18 Constant: -0:18 1 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 1 (const int) -0:18 move second child to first child ( temp float) -0:18 direct index ( out float ClipDistance) -0:? 'OutputStream.clip' ( out 4-element array of float ClipDistance) -0:18 Constant: -0:18 2 (const int) -0:18 direct index ( temp float) -0:18 direct index ( temp 2-component vector of float) -0:18 clip: direct index for structure ( temp 2-element array of 2-component vector of float) -0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) -0:18 Constant: -0:18 1 (const int) -0:18 Constant: -0:18 1 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 move second child to first child ( temp float) -0:18 direct index ( out float ClipDistance) -0:? 'OutputStream.clip' ( out 4-element array of float ClipDistance) -0:18 Constant: -0:18 3 (const int) -0:18 direct index ( temp float) -0:18 direct index ( temp 2-component vector of float) -0:18 clip: direct index for structure ( temp 2-element array of 2-component vector of float) -0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) -0:18 Constant: -0:18 1 (const int) -0:18 Constant: -0:18 1 (const int) -0:18 Constant: -0:18 1 (const int) -0:18 EmitVertex ( temp void) -0:11 Function Definition: main( ( temp void) -0:11 Function Parameters: -0:? Sequence -0:11 move second child to first child ( temp 3-element array of 4-component vector of float) -0:? 'pos' ( temp 3-element array of 4-component vector of float) -0:? 'pos' ( in 3-element array of 4-component vector of float Position) -0:11 move second child to first child ( temp 3-element array of uint) -0:? 'VertexID' ( temp 3-element array of uint) -0:? 'VertexID' (layout( location=0) in 3-element array of uint) -0:? Sequence -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 2-component vector of float) -0:11 direct index ( temp 2-element array of 2-component vector of float) -0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 2-component vector of float) -0:11 direct index ( temp 2-element array of 2-component vector of float) -0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 2-component vector of float) -0:11 direct index ( temp 2-element array of 2-component vector of float) -0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 2 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 2-component vector of float) -0:11 direct index ( temp 2-element array of 2-component vector of float) -0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 3 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 2-component vector of float) -0:11 direct index ( temp 2-element array of 2-component vector of float) -0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 2-component vector of float) -0:11 direct index ( temp 2-element array of 2-component vector of float) -0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 2-component vector of float) -0:11 direct index ( temp 2-element array of 2-component vector of float) -0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 2 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 2-component vector of float) -0:11 direct index ( temp 2-element array of 2-component vector of float) -0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 3 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 2-component vector of float) -0:11 direct index ( temp 2-element array of 2-component vector of float) -0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 2-component vector of float) -0:11 direct index ( temp 2-element array of 2-component vector of float) -0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 2-component vector of float) -0:11 direct index ( temp 2-element array of 2-component vector of float) -0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 2 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 2-component vector of float) -0:11 direct index ( temp 2-element array of 2-component vector of float) -0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 direct index ( in float ClipDistance) -0:11 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 3 (const int) -0:11 Function Call: @main(vf4[3];u1[3];struct-S-vf4-vf2[2]1;vf2[3][2]; ( temp void) -0:? 'pos' ( temp 3-element array of 4-component vector of float) -0:? 'VertexID' ( temp 3-element array of uint) -0:? 'OutputStream' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) -0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) -0:? Linker Objects -0:? 'pos' ( in 3-element array of 4-component vector of float Position) -0:? 'VertexID' (layout( location=0) in 3-element array of uint) -0:? 'OutputStream.pos' ( out 4-component vector of float Position) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:? 'OutputStream.clip' ( out 4-element array of float ClipDistance) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 128 - - Capability Geometry - Capability ClipDistance - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Geometry 4 "main" 44 50 71 75 80 - ExecutionMode 4 Triangles - ExecutionMode 4 Invocations 1 - ExecutionMode 4 OutputLineStrip - ExecutionMode 4 OutputVertices 3 - Source HLSL 500 - Name 4 "main" - Name 17 "S" - MemberName 17(S) 0 "pos" - MemberName 17(S) 1 "clip" - Name 26 "@main(vf4[3];u1[3];struct-S-vf4-vf2[2]1;vf2[3][2];" - Name 22 "pos" - Name 23 "VertexID" - Name 24 "OutputStream" - Name 25 "clip" - Name 28 "s" - Name 44 "OutputStream.pos" - Name 50 "OutputStream.clip" - Name 69 "pos" - Name 71 "pos" - Name 73 "VertexID" - Name 75 "VertexID" - Name 77 "clip" - Name 80 "clip" - Name 118 "OutputStream" - Name 119 "param" - Name 121 "param" - Name 123 "param" - Name 124 "param" - Decorate 44(OutputStream.pos) BuiltIn Position - Decorate 50(OutputStream.clip) BuiltIn ClipDistance - Decorate 71(pos) BuiltIn Position - Decorate 75(VertexID) Location 0 - Decorate 80(clip) BuiltIn ClipDistance - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeInt 32 0 - 9: 8(int) Constant 3 - 10: TypeArray 7(fvec4) 9 - 11: TypePointer Function 10 - 12: TypeArray 8(int) 9 - 13: TypePointer Function 12 - 14: TypeVector 6(float) 2 - 15: 8(int) Constant 2 - 16: TypeArray 14(fvec2) 15 - 17(S): TypeStruct 7(fvec4) 16 - 18: TypePointer Function 17(S) - 19: TypeArray 16 9 - 20: TypePointer Function 19 - 21: TypeFunction 2 11(ptr) 13(ptr) 18(ptr) 20(ptr) - 29: TypeInt 32 1 - 30: 29(int) Constant 0 - 31: TypePointer Function 7(fvec4) - 35: 29(int) Constant 1 - 36: TypePointer Function 14(fvec2) - 43: TypePointer Output 7(fvec4) -44(OutputStream.pos): 43(ptr) Variable Output - 47: 8(int) Constant 4 - 48: TypeArray 6(float) 47 - 49: TypePointer Output 48 -50(OutputStream.clip): 49(ptr) Variable Output - 51: 8(int) Constant 0 - 52: TypePointer Function 6(float) - 55: TypePointer Output 6(float) - 57: 8(int) Constant 1 - 61: 29(int) Constant 2 - 65: 29(int) Constant 3 - 70: TypePointer Input 10 - 71(pos): 70(ptr) Variable Input - 74: TypePointer Input 12 - 75(VertexID): 74(ptr) Variable Input - 78: TypeArray 48 9 - 79: TypePointer Input 78 - 80(clip): 79(ptr) Variable Input - 81: TypePointer Input 6(float) - 4(main): 2 Function None 3 - 5: Label - 69(pos): 11(ptr) Variable Function - 73(VertexID): 13(ptr) Variable Function - 77(clip): 20(ptr) Variable Function -118(OutputStream): 18(ptr) Variable Function - 119(param): 11(ptr) Variable Function - 121(param): 13(ptr) Variable Function - 123(param): 18(ptr) Variable Function - 124(param): 20(ptr) Variable Function - 72: 10 Load 71(pos) - Store 69(pos) 72 - 76: 12 Load 75(VertexID) - Store 73(VertexID) 76 - 82: 81(ptr) AccessChain 80(clip) 30 30 - 83: 6(float) Load 82 - 84: 52(ptr) AccessChain 77(clip) 30 30 51 - Store 84 83 - 85: 81(ptr) AccessChain 80(clip) 30 35 - 86: 6(float) Load 85 - 87: 52(ptr) AccessChain 77(clip) 30 30 57 - Store 87 86 - 88: 81(ptr) AccessChain 80(clip) 30 61 - 89: 6(float) Load 88 - 90: 52(ptr) AccessChain 77(clip) 30 35 51 - Store 90 89 - 91: 81(ptr) AccessChain 80(clip) 30 65 - 92: 6(float) Load 91 - 93: 52(ptr) AccessChain 77(clip) 30 35 57 - Store 93 92 - 94: 81(ptr) AccessChain 80(clip) 35 30 - 95: 6(float) Load 94 - 96: 52(ptr) AccessChain 77(clip) 35 30 51 - Store 96 95 - 97: 81(ptr) AccessChain 80(clip) 35 35 - 98: 6(float) Load 97 - 99: 52(ptr) AccessChain 77(clip) 35 30 57 - Store 99 98 - 100: 81(ptr) AccessChain 80(clip) 35 61 - 101: 6(float) Load 100 - 102: 52(ptr) AccessChain 77(clip) 35 35 51 - Store 102 101 - 103: 81(ptr) AccessChain 80(clip) 35 65 - 104: 6(float) Load 103 - 105: 52(ptr) AccessChain 77(clip) 35 35 57 - Store 105 104 - 106: 81(ptr) AccessChain 80(clip) 61 30 - 107: 6(float) Load 106 - 108: 52(ptr) AccessChain 77(clip) 61 30 51 - Store 108 107 - 109: 81(ptr) AccessChain 80(clip) 61 35 - 110: 6(float) Load 109 - 111: 52(ptr) AccessChain 77(clip) 61 30 57 - Store 111 110 - 112: 81(ptr) AccessChain 80(clip) 61 61 - 113: 6(float) Load 112 - 114: 52(ptr) AccessChain 77(clip) 61 35 51 - Store 114 113 - 115: 81(ptr) AccessChain 80(clip) 61 65 - 116: 6(float) Load 115 - 117: 52(ptr) AccessChain 77(clip) 61 35 57 - Store 117 116 - 120: 10 Load 69(pos) - Store 119(param) 120 - 122: 12 Load 73(VertexID) - Store 121(param) 122 - 125: 19 Load 77(clip) - Store 124(param) 125 - 126: 2 FunctionCall 26(@main(vf4[3];u1[3];struct-S-vf4-vf2[2]1;vf2[3][2];) 119(param) 121(param) 123(param) 124(param) - 127: 17(S) Load 123(param) - Store 118(OutputStream) 127 - Return - FunctionEnd -26(@main(vf4[3];u1[3];struct-S-vf4-vf2[2]1;vf2[3][2];): 2 Function None 21 - 22(pos): 11(ptr) FunctionParameter - 23(VertexID): 13(ptr) FunctionParameter -24(OutputStream): 18(ptr) FunctionParameter - 25(clip): 20(ptr) FunctionParameter - 27: Label - 28(s): 18(ptr) Variable Function - 32: 31(ptr) AccessChain 22(pos) 30 - 33: 7(fvec4) Load 32 - 34: 31(ptr) AccessChain 28(s) 30 - Store 34 33 - 37: 36(ptr) AccessChain 25(clip) 30 30 - 38: 14(fvec2) Load 37 - 39: 36(ptr) AccessChain 28(s) 35 30 - Store 39 38 - 40: 36(ptr) AccessChain 25(clip) 30 35 - 41: 14(fvec2) Load 40 - 42: 36(ptr) AccessChain 28(s) 35 35 - Store 42 41 - 45: 31(ptr) AccessChain 28(s) 30 - 46: 7(fvec4) Load 45 - Store 44(OutputStream.pos) 46 - 53: 52(ptr) AccessChain 28(s) 35 30 51 - 54: 6(float) Load 53 - 56: 55(ptr) AccessChain 50(OutputStream.clip) 30 - Store 56 54 - 58: 52(ptr) AccessChain 28(s) 35 30 57 - 59: 6(float) Load 58 - 60: 55(ptr) AccessChain 50(OutputStream.clip) 35 - Store 60 59 - 62: 52(ptr) AccessChain 28(s) 35 35 51 - 63: 6(float) Load 62 - 64: 55(ptr) AccessChain 50(OutputStream.clip) 61 - Store 64 63 - 66: 52(ptr) AccessChain 28(s) 35 35 57 - 67: 6(float) Load 66 - 68: 55(ptr) AccessChain 50(OutputStream.clip) 65 - Store 68 67 - EmitVertex - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.clipdistance-2.vert.out b/deps/glslang/Test/baseResults/hlsl.clipdistance-2.vert.out deleted file mode 100644 index 5ccbb1e9..00000000 --- a/deps/glslang/Test/baseResults/hlsl.clipdistance-2.vert.out +++ /dev/null @@ -1,561 +0,0 @@ -hlsl.clipdistance-2.vert -Shader version: 500 -0:? Sequence -0:4 Function Definition: @main(vf4;vf2[2];vf2[2]; ( temp void) -0:4 Function Parameters: -0:4 'pos' ( out 4-component vector of float) -0:4 'clip' ( out 2-element array of 2-component vector of float) -0:4 'cull' ( out 2-element array of 2-component vector of float) -0:? Sequence -0:5 move second child to first child ( temp 4-component vector of float) -0:5 'pos' ( out 4-component vector of float) -0:5 Constant: -0:5 1.000000 -0:5 1.000000 -0:5 1.000000 -0:5 1.000000 -0:6 move second child to first child ( temp float) -0:6 direct index ( temp float) -0:6 direct index ( temp 2-component vector of float) -0:6 'clip' ( out 2-element array of 2-component vector of float) -0:6 Constant: -0:6 0 (const int) -0:6 Constant: -0:6 0 (const int) -0:6 Constant: -0:6 0.500000 -0:7 move second child to first child ( temp float) -0:7 direct index ( temp float) -0:7 direct index ( temp 2-component vector of float) -0:7 'clip' ( out 2-element array of 2-component vector of float) -0:7 Constant: -0:7 0 (const int) -0:7 Constant: -0:7 1 (const int) -0:7 Constant: -0:7 0.600000 -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 direct index ( temp 2-component vector of float) -0:8 'clip' ( out 2-element array of 2-component vector of float) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 0 (const int) -0:8 Constant: -0:8 0.700000 -0:9 move second child to first child ( temp float) -0:9 direct index ( temp float) -0:9 direct index ( temp 2-component vector of float) -0:9 'clip' ( out 2-element array of 2-component vector of float) -0:9 Constant: -0:9 1 (const int) -0:9 Constant: -0:9 1 (const int) -0:9 Constant: -0:9 0.800000 -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 2-component vector of float) -0:11 'cull' ( out 2-element array of 2-component vector of float) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 0.525000 -0:12 move second child to first child ( temp float) -0:12 direct index ( temp float) -0:12 direct index ( temp 2-component vector of float) -0:12 'cull' ( out 2-element array of 2-component vector of float) -0:12 Constant: -0:12 0 (const int) -0:12 Constant: -0:12 1 (const int) -0:12 Constant: -0:12 0.625000 -0:13 move second child to first child ( temp float) -0:13 direct index ( temp float) -0:13 direct index ( temp 2-component vector of float) -0:13 'cull' ( out 2-element array of 2-component vector of float) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 0.725000 -0:14 move second child to first child ( temp float) -0:14 direct index ( temp float) -0:14 direct index ( temp 2-component vector of float) -0:14 'cull' ( out 2-element array of 2-component vector of float) -0:14 Constant: -0:14 1 (const int) -0:14 Constant: -0:14 1 (const int) -0:14 Constant: -0:14 0.825000 -0:4 Function Definition: main( ( temp void) -0:4 Function Parameters: -0:? Sequence -0:4 Function Call: @main(vf4;vf2[2];vf2[2]; ( temp void) -0:? 'pos' ( temp 4-component vector of float) -0:? 'clip' ( temp 2-element array of 2-component vector of float) -0:? 'cull' ( temp 2-element array of 2-component vector of float) -0:4 move second child to first child ( temp 4-component vector of float) -0:? 'pos' ( out 4-component vector of float Position) -0:? 'pos' ( temp 4-component vector of float) -0:? Sequence -0:4 move second child to first child ( temp float) -0:4 direct index ( out float ClipDistance) -0:? 'clip' ( out 4-element array of float ClipDistance) -0:4 Constant: -0:4 0 (const int) -0:4 direct index ( temp float) -0:4 direct index ( temp 2-component vector of float) -0:? 'clip' ( temp 2-element array of 2-component vector of float) -0:4 Constant: -0:4 0 (const int) -0:4 Constant: -0:4 0 (const int) -0:4 move second child to first child ( temp float) -0:4 direct index ( out float ClipDistance) -0:? 'clip' ( out 4-element array of float ClipDistance) -0:4 Constant: -0:4 1 (const int) -0:4 direct index ( temp float) -0:4 direct index ( temp 2-component vector of float) -0:? 'clip' ( temp 2-element array of 2-component vector of float) -0:4 Constant: -0:4 0 (const int) -0:4 Constant: -0:4 1 (const int) -0:4 move second child to first child ( temp float) -0:4 direct index ( out float ClipDistance) -0:? 'clip' ( out 4-element array of float ClipDistance) -0:4 Constant: -0:4 2 (const int) -0:4 direct index ( temp float) -0:4 direct index ( temp 2-component vector of float) -0:? 'clip' ( temp 2-element array of 2-component vector of float) -0:4 Constant: -0:4 1 (const int) -0:4 Constant: -0:4 0 (const int) -0:4 move second child to first child ( temp float) -0:4 direct index ( out float ClipDistance) -0:? 'clip' ( out 4-element array of float ClipDistance) -0:4 Constant: -0:4 3 (const int) -0:4 direct index ( temp float) -0:4 direct index ( temp 2-component vector of float) -0:? 'clip' ( temp 2-element array of 2-component vector of float) -0:4 Constant: -0:4 1 (const int) -0:4 Constant: -0:4 1 (const int) -0:? Sequence -0:4 move second child to first child ( temp float) -0:4 direct index ( out float CullDistance) -0:? 'cull' ( out 4-element array of float CullDistance) -0:4 Constant: -0:4 0 (const int) -0:4 direct index ( temp float) -0:4 direct index ( temp 2-component vector of float) -0:? 'cull' ( temp 2-element array of 2-component vector of float) -0:4 Constant: -0:4 0 (const int) -0:4 Constant: -0:4 0 (const int) -0:4 move second child to first child ( temp float) -0:4 direct index ( out float CullDistance) -0:? 'cull' ( out 4-element array of float CullDistance) -0:4 Constant: -0:4 1 (const int) -0:4 direct index ( temp float) -0:4 direct index ( temp 2-component vector of float) -0:? 'cull' ( temp 2-element array of 2-component vector of float) -0:4 Constant: -0:4 0 (const int) -0:4 Constant: -0:4 1 (const int) -0:4 move second child to first child ( temp float) -0:4 direct index ( out float CullDistance) -0:? 'cull' ( out 4-element array of float CullDistance) -0:4 Constant: -0:4 2 (const int) -0:4 direct index ( temp float) -0:4 direct index ( temp 2-component vector of float) -0:? 'cull' ( temp 2-element array of 2-component vector of float) -0:4 Constant: -0:4 1 (const int) -0:4 Constant: -0:4 0 (const int) -0:4 move second child to first child ( temp float) -0:4 direct index ( out float CullDistance) -0:? 'cull' ( out 4-element array of float CullDistance) -0:4 Constant: -0:4 3 (const int) -0:4 direct index ( temp float) -0:4 direct index ( temp 2-component vector of float) -0:? 'cull' ( temp 2-element array of 2-component vector of float) -0:4 Constant: -0:4 1 (const int) -0:4 Constant: -0:4 1 (const int) -0:? Linker Objects -0:? 'pos' ( out 4-component vector of float Position) -0:? 'clip' ( out 4-element array of float ClipDistance) -0:? 'cull' ( out 4-element array of float CullDistance) - - -Linked vertex stage: - - -Shader version: 500 -0:? Sequence -0:4 Function Definition: @main(vf4;vf2[2];vf2[2]; ( temp void) -0:4 Function Parameters: -0:4 'pos' ( out 4-component vector of float) -0:4 'clip' ( out 2-element array of 2-component vector of float) -0:4 'cull' ( out 2-element array of 2-component vector of float) -0:? Sequence -0:5 move second child to first child ( temp 4-component vector of float) -0:5 'pos' ( out 4-component vector of float) -0:5 Constant: -0:5 1.000000 -0:5 1.000000 -0:5 1.000000 -0:5 1.000000 -0:6 move second child to first child ( temp float) -0:6 direct index ( temp float) -0:6 direct index ( temp 2-component vector of float) -0:6 'clip' ( out 2-element array of 2-component vector of float) -0:6 Constant: -0:6 0 (const int) -0:6 Constant: -0:6 0 (const int) -0:6 Constant: -0:6 0.500000 -0:7 move second child to first child ( temp float) -0:7 direct index ( temp float) -0:7 direct index ( temp 2-component vector of float) -0:7 'clip' ( out 2-element array of 2-component vector of float) -0:7 Constant: -0:7 0 (const int) -0:7 Constant: -0:7 1 (const int) -0:7 Constant: -0:7 0.600000 -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 direct index ( temp 2-component vector of float) -0:8 'clip' ( out 2-element array of 2-component vector of float) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 0 (const int) -0:8 Constant: -0:8 0.700000 -0:9 move second child to first child ( temp float) -0:9 direct index ( temp float) -0:9 direct index ( temp 2-component vector of float) -0:9 'clip' ( out 2-element array of 2-component vector of float) -0:9 Constant: -0:9 1 (const int) -0:9 Constant: -0:9 1 (const int) -0:9 Constant: -0:9 0.800000 -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 direct index ( temp 2-component vector of float) -0:11 'cull' ( out 2-element array of 2-component vector of float) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 0.525000 -0:12 move second child to first child ( temp float) -0:12 direct index ( temp float) -0:12 direct index ( temp 2-component vector of float) -0:12 'cull' ( out 2-element array of 2-component vector of float) -0:12 Constant: -0:12 0 (const int) -0:12 Constant: -0:12 1 (const int) -0:12 Constant: -0:12 0.625000 -0:13 move second child to first child ( temp float) -0:13 direct index ( temp float) -0:13 direct index ( temp 2-component vector of float) -0:13 'cull' ( out 2-element array of 2-component vector of float) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 0.725000 -0:14 move second child to first child ( temp float) -0:14 direct index ( temp float) -0:14 direct index ( temp 2-component vector of float) -0:14 'cull' ( out 2-element array of 2-component vector of float) -0:14 Constant: -0:14 1 (const int) -0:14 Constant: -0:14 1 (const int) -0:14 Constant: -0:14 0.825000 -0:4 Function Definition: main( ( temp void) -0:4 Function Parameters: -0:? Sequence -0:4 Function Call: @main(vf4;vf2[2];vf2[2]; ( temp void) -0:? 'pos' ( temp 4-component vector of float) -0:? 'clip' ( temp 2-element array of 2-component vector of float) -0:? 'cull' ( temp 2-element array of 2-component vector of float) -0:4 move second child to first child ( temp 4-component vector of float) -0:? 'pos' ( out 4-component vector of float Position) -0:? 'pos' ( temp 4-component vector of float) -0:? Sequence -0:4 move second child to first child ( temp float) -0:4 direct index ( out float ClipDistance) -0:? 'clip' ( out 4-element array of float ClipDistance) -0:4 Constant: -0:4 0 (const int) -0:4 direct index ( temp float) -0:4 direct index ( temp 2-component vector of float) -0:? 'clip' ( temp 2-element array of 2-component vector of float) -0:4 Constant: -0:4 0 (const int) -0:4 Constant: -0:4 0 (const int) -0:4 move second child to first child ( temp float) -0:4 direct index ( out float ClipDistance) -0:? 'clip' ( out 4-element array of float ClipDistance) -0:4 Constant: -0:4 1 (const int) -0:4 direct index ( temp float) -0:4 direct index ( temp 2-component vector of float) -0:? 'clip' ( temp 2-element array of 2-component vector of float) -0:4 Constant: -0:4 0 (const int) -0:4 Constant: -0:4 1 (const int) -0:4 move second child to first child ( temp float) -0:4 direct index ( out float ClipDistance) -0:? 'clip' ( out 4-element array of float ClipDistance) -0:4 Constant: -0:4 2 (const int) -0:4 direct index ( temp float) -0:4 direct index ( temp 2-component vector of float) -0:? 'clip' ( temp 2-element array of 2-component vector of float) -0:4 Constant: -0:4 1 (const int) -0:4 Constant: -0:4 0 (const int) -0:4 move second child to first child ( temp float) -0:4 direct index ( out float ClipDistance) -0:? 'clip' ( out 4-element array of float ClipDistance) -0:4 Constant: -0:4 3 (const int) -0:4 direct index ( temp float) -0:4 direct index ( temp 2-component vector of float) -0:? 'clip' ( temp 2-element array of 2-component vector of float) -0:4 Constant: -0:4 1 (const int) -0:4 Constant: -0:4 1 (const int) -0:? Sequence -0:4 move second child to first child ( temp float) -0:4 direct index ( out float CullDistance) -0:? 'cull' ( out 4-element array of float CullDistance) -0:4 Constant: -0:4 0 (const int) -0:4 direct index ( temp float) -0:4 direct index ( temp 2-component vector of float) -0:? 'cull' ( temp 2-element array of 2-component vector of float) -0:4 Constant: -0:4 0 (const int) -0:4 Constant: -0:4 0 (const int) -0:4 move second child to first child ( temp float) -0:4 direct index ( out float CullDistance) -0:? 'cull' ( out 4-element array of float CullDistance) -0:4 Constant: -0:4 1 (const int) -0:4 direct index ( temp float) -0:4 direct index ( temp 2-component vector of float) -0:? 'cull' ( temp 2-element array of 2-component vector of float) -0:4 Constant: -0:4 0 (const int) -0:4 Constant: -0:4 1 (const int) -0:4 move second child to first child ( temp float) -0:4 direct index ( out float CullDistance) -0:? 'cull' ( out 4-element array of float CullDistance) -0:4 Constant: -0:4 2 (const int) -0:4 direct index ( temp float) -0:4 direct index ( temp 2-component vector of float) -0:? 'cull' ( temp 2-element array of 2-component vector of float) -0:4 Constant: -0:4 1 (const int) -0:4 Constant: -0:4 0 (const int) -0:4 move second child to first child ( temp float) -0:4 direct index ( out float CullDistance) -0:? 'cull' ( out 4-element array of float CullDistance) -0:4 Constant: -0:4 3 (const int) -0:4 direct index ( temp float) -0:4 direct index ( temp 2-component vector of float) -0:? 'cull' ( temp 2-element array of 2-component vector of float) -0:4 Constant: -0:4 1 (const int) -0:4 Constant: -0:4 1 (const int) -0:? Linker Objects -0:? 'pos' ( out 4-component vector of float Position) -0:? 'clip' ( out 4-element array of float ClipDistance) -0:? 'cull' ( out 4-element array of float CullDistance) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 89 - - Capability Shader - Capability ClipDistance - Capability CullDistance - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 55 60 76 - Source HLSL 500 - Name 4 "main" - Name 18 "@main(vf4;vf2[2];vf2[2];" - Name 15 "pos" - Name 16 "clip" - Name 17 "cull" - Name 44 "pos" - Name 45 "clip" - Name 46 "cull" - Name 47 "param" - Name 48 "param" - Name 49 "param" - Name 55 "pos" - Name 60 "clip" - Name 76 "cull" - Decorate 55(pos) BuiltIn Position - Decorate 60(clip) BuiltIn ClipDistance - Decorate 76(cull) BuiltIn CullDistance - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 9: TypeVector 6(float) 2 - 10: TypeInt 32 0 - 11: 10(int) Constant 2 - 12: TypeArray 9(fvec2) 11 - 13: TypePointer Function 12 - 14: TypeFunction 2 8(ptr) 13(ptr) 13(ptr) - 20: 6(float) Constant 1065353216 - 21: 7(fvec4) ConstantComposite 20 20 20 20 - 22: TypeInt 32 1 - 23: 22(int) Constant 0 - 24: 6(float) Constant 1056964608 - 25: 10(int) Constant 0 - 26: TypePointer Function 6(float) - 28: 6(float) Constant 1058642330 - 29: 10(int) Constant 1 - 31: 22(int) Constant 1 - 32: 6(float) Constant 1060320051 - 34: 6(float) Constant 1061997773 - 36: 6(float) Constant 1057384038 - 38: 6(float) Constant 1059061760 - 40: 6(float) Constant 1060739482 - 42: 6(float) Constant 1062417203 - 54: TypePointer Output 7(fvec4) - 55(pos): 54(ptr) Variable Output - 57: 10(int) Constant 4 - 58: TypeArray 6(float) 57 - 59: TypePointer Output 58 - 60(clip): 59(ptr) Variable Output - 63: TypePointer Output 6(float) - 68: 22(int) Constant 2 - 72: 22(int) Constant 3 - 76(cull): 59(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 44(pos): 8(ptr) Variable Function - 45(clip): 13(ptr) Variable Function - 46(cull): 13(ptr) Variable Function - 47(param): 8(ptr) Variable Function - 48(param): 13(ptr) Variable Function - 49(param): 13(ptr) Variable Function - 50: 2 FunctionCall 18(@main(vf4;vf2[2];vf2[2];) 47(param) 48(param) 49(param) - 51: 7(fvec4) Load 47(param) - Store 44(pos) 51 - 52: 12 Load 48(param) - Store 45(clip) 52 - 53: 12 Load 49(param) - Store 46(cull) 53 - 56: 7(fvec4) Load 44(pos) - Store 55(pos) 56 - 61: 26(ptr) AccessChain 45(clip) 23 25 - 62: 6(float) Load 61 - 64: 63(ptr) AccessChain 60(clip) 23 - Store 64 62 - 65: 26(ptr) AccessChain 45(clip) 23 29 - 66: 6(float) Load 65 - 67: 63(ptr) AccessChain 60(clip) 31 - Store 67 66 - 69: 26(ptr) AccessChain 45(clip) 31 25 - 70: 6(float) Load 69 - 71: 63(ptr) AccessChain 60(clip) 68 - Store 71 70 - 73: 26(ptr) AccessChain 45(clip) 31 29 - 74: 6(float) Load 73 - 75: 63(ptr) AccessChain 60(clip) 72 - Store 75 74 - 77: 26(ptr) AccessChain 46(cull) 23 25 - 78: 6(float) Load 77 - 79: 63(ptr) AccessChain 76(cull) 23 - Store 79 78 - 80: 26(ptr) AccessChain 46(cull) 23 29 - 81: 6(float) Load 80 - 82: 63(ptr) AccessChain 76(cull) 31 - Store 82 81 - 83: 26(ptr) AccessChain 46(cull) 31 25 - 84: 6(float) Load 83 - 85: 63(ptr) AccessChain 76(cull) 68 - Store 85 84 - 86: 26(ptr) AccessChain 46(cull) 31 29 - 87: 6(float) Load 86 - 88: 63(ptr) AccessChain 76(cull) 72 - Store 88 87 - Return - FunctionEnd -18(@main(vf4;vf2[2];vf2[2];): 2 Function None 14 - 15(pos): 8(ptr) FunctionParameter - 16(clip): 13(ptr) FunctionParameter - 17(cull): 13(ptr) FunctionParameter - 19: Label - Store 15(pos) 21 - 27: 26(ptr) AccessChain 16(clip) 23 25 - Store 27 24 - 30: 26(ptr) AccessChain 16(clip) 23 29 - Store 30 28 - 33: 26(ptr) AccessChain 16(clip) 31 25 - Store 33 32 - 35: 26(ptr) AccessChain 16(clip) 31 29 - Store 35 34 - 37: 26(ptr) AccessChain 17(cull) 23 25 - Store 37 36 - 39: 26(ptr) AccessChain 17(cull) 23 29 - Store 39 38 - 41: 26(ptr) AccessChain 17(cull) 31 25 - Store 41 40 - 43: 26(ptr) AccessChain 17(cull) 31 29 - Store 43 42 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.clipdistance-3.frag.out b/deps/glslang/Test/baseResults/hlsl.clipdistance-3.frag.out deleted file mode 100644 index 1d9f54e8..00000000 --- a/deps/glslang/Test/baseResults/hlsl.clipdistance-3.frag.out +++ /dev/null @@ -1,190 +0,0 @@ -hlsl.clipdistance-3.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:4 Function Definition: @main(vf4;f1[2];f1[2]; ( temp 4-component vector of float) -0:4 Function Parameters: -0:4 'pos' ( in 4-component vector of float) -0:4 'clip' ( in 2-element array of float) -0:4 'cull' ( in 2-element array of float) -0:? Sequence -0:5 Branch: Return with expression -0:5 add ( temp 4-component vector of float) -0:5 add ( temp 4-component vector of float) -0:5 'pos' ( in 4-component vector of float) -0:5 direct index ( temp float) -0:5 'clip' ( in 2-element array of float) -0:5 Constant: -0:5 0 (const int) -0:5 direct index ( temp float) -0:5 'cull' ( in 2-element array of float) -0:5 Constant: -0:5 0 (const int) -0:4 Function Definition: main( ( temp void) -0:4 Function Parameters: -0:? Sequence -0:4 move second child to first child ( temp 4-component vector of float) -0:? 'pos' ( temp 4-component vector of float) -0:? 'pos' ( in 4-component vector of float FragCoord) -0:? Sequence -0:4 move second child to first child ( temp 2-element array of float) -0:? 'clip' ( temp 2-element array of float) -0:? 'clip' ( in 2-element array of float ClipDistance) -0:? Sequence -0:4 move second child to first child ( temp 2-element array of float) -0:? 'cull' ( temp 2-element array of float) -0:? 'cull' ( in 2-element array of float CullDistance) -0:4 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:4 Function Call: @main(vf4;f1[2];f1[2]; ( temp 4-component vector of float) -0:? 'pos' ( temp 4-component vector of float) -0:? 'clip' ( temp 2-element array of float) -0:? 'cull' ( temp 2-element array of float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'pos' ( in 4-component vector of float FragCoord) -0:? 'clip' ( in 2-element array of float ClipDistance) -0:? 'cull' ( in 2-element array of float CullDistance) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:4 Function Definition: @main(vf4;f1[2];f1[2]; ( temp 4-component vector of float) -0:4 Function Parameters: -0:4 'pos' ( in 4-component vector of float) -0:4 'clip' ( in 2-element array of float) -0:4 'cull' ( in 2-element array of float) -0:? Sequence -0:5 Branch: Return with expression -0:5 add ( temp 4-component vector of float) -0:5 add ( temp 4-component vector of float) -0:5 'pos' ( in 4-component vector of float) -0:5 direct index ( temp float) -0:5 'clip' ( in 2-element array of float) -0:5 Constant: -0:5 0 (const int) -0:5 direct index ( temp float) -0:5 'cull' ( in 2-element array of float) -0:5 Constant: -0:5 0 (const int) -0:4 Function Definition: main( ( temp void) -0:4 Function Parameters: -0:? Sequence -0:4 move second child to first child ( temp 4-component vector of float) -0:? 'pos' ( temp 4-component vector of float) -0:? 'pos' ( in 4-component vector of float FragCoord) -0:? Sequence -0:4 move second child to first child ( temp 2-element array of float) -0:? 'clip' ( temp 2-element array of float) -0:? 'clip' ( in 2-element array of float ClipDistance) -0:? Sequence -0:4 move second child to first child ( temp 2-element array of float) -0:? 'cull' ( temp 2-element array of float) -0:? 'cull' ( in 2-element array of float CullDistance) -0:4 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:4 Function Call: @main(vf4;f1[2];f1[2]; ( temp 4-component vector of float) -0:? 'pos' ( temp 4-component vector of float) -0:? 'clip' ( temp 2-element array of float) -0:? 'cull' ( temp 2-element array of float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'pos' ( in 4-component vector of float FragCoord) -0:? 'clip' ( in 2-element array of float ClipDistance) -0:? 'cull' ( in 2-element array of float CullDistance) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 53 - - Capability Shader - Capability ClipDistance - Capability CullDistance - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 35 39 42 45 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 17 "@main(vf4;f1[2];f1[2];" - Name 14 "pos" - Name 15 "clip" - Name 16 "cull" - Name 33 "pos" - Name 35 "pos" - Name 37 "clip" - Name 39 "clip" - Name 41 "cull" - Name 42 "cull" - Name 45 "@entryPointOutput" - Name 46 "param" - Name 48 "param" - Name 50 "param" - Decorate 35(pos) BuiltIn FragCoord - Decorate 39(clip) BuiltIn ClipDistance - Decorate 42(cull) BuiltIn CullDistance - Decorate 45(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 9: TypeInt 32 0 - 10: 9(int) Constant 2 - 11: TypeArray 6(float) 10 - 12: TypePointer Function 11 - 13: TypeFunction 7(fvec4) 8(ptr) 12(ptr) 12(ptr) - 20: TypeInt 32 1 - 21: 20(int) Constant 0 - 22: TypePointer Function 6(float) - 34: TypePointer Input 7(fvec4) - 35(pos): 34(ptr) Variable Input - 38: TypePointer Input 11 - 39(clip): 38(ptr) Variable Input - 42(cull): 38(ptr) Variable Input - 44: TypePointer Output 7(fvec4) -45(@entryPointOutput): 44(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 33(pos): 8(ptr) Variable Function - 37(clip): 12(ptr) Variable Function - 41(cull): 12(ptr) Variable Function - 46(param): 8(ptr) Variable Function - 48(param): 12(ptr) Variable Function - 50(param): 12(ptr) Variable Function - 36: 7(fvec4) Load 35(pos) - Store 33(pos) 36 - 40: 11 Load 39(clip) - Store 37(clip) 40 - 43: 11 Load 42(cull) - Store 41(cull) 43 - 47: 7(fvec4) Load 33(pos) - Store 46(param) 47 - 49: 11 Load 37(clip) - Store 48(param) 49 - 51: 11 Load 41(cull) - Store 50(param) 51 - 52: 7(fvec4) FunctionCall 17(@main(vf4;f1[2];f1[2];) 46(param) 48(param) 50(param) - Store 45(@entryPointOutput) 52 - Return - FunctionEnd -17(@main(vf4;f1[2];f1[2];): 7(fvec4) Function None 13 - 14(pos): 8(ptr) FunctionParameter - 15(clip): 12(ptr) FunctionParameter - 16(cull): 12(ptr) FunctionParameter - 18: Label - 19: 7(fvec4) Load 14(pos) - 23: 22(ptr) AccessChain 15(clip) 21 - 24: 6(float) Load 23 - 25: 7(fvec4) CompositeConstruct 24 24 24 24 - 26: 7(fvec4) FAdd 19 25 - 27: 22(ptr) AccessChain 16(cull) 21 - 28: 6(float) Load 27 - 29: 7(fvec4) CompositeConstruct 28 28 28 28 - 30: 7(fvec4) FAdd 26 29 - ReturnValue 30 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.clipdistance-3.geom.out b/deps/glslang/Test/baseResults/hlsl.clipdistance-3.geom.out deleted file mode 100644 index 5fa7df72..00000000 --- a/deps/glslang/Test/baseResults/hlsl.clipdistance-3.geom.out +++ /dev/null @@ -1,830 +0,0 @@ -hlsl.clipdistance-3.geom -Shader version: 500 -invocations = -1 -max_vertices = 3 -input primitive = triangles -output primitive = line_strip -0:? Sequence -0:12 Function Definition: @main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf4[3]; ( temp void) -0:12 Function Parameters: -0:12 'pos' ( in 3-element array of 4-component vector of float) -0:12 'VertexID' ( in 3-element array of uint) -0:12 'OutputStream' ( out structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:12 'clip' ( in 3-element array of 4-component vector of float) -0:? Sequence -0:15 move second child to first child ( temp 4-component vector of float) -0:15 pos: direct index for structure ( temp 4-component vector of float) -0:15 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:15 Constant: -0:15 0 (const int) -0:15 direct index ( temp 4-component vector of float) -0:15 'pos' ( in 3-element array of 4-component vector of float) -0:15 Constant: -0:15 0 (const int) -0:16 move second child to first child ( temp 2-component vector of float) -0:16 clip0: direct index for structure ( temp 2-component vector of float) -0:16 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:16 Constant: -0:16 1 (const int) -0:16 vector swizzle ( temp 2-component vector of float) -0:16 direct index ( temp 4-component vector of float) -0:16 'clip' ( in 3-element array of 4-component vector of float) -0:16 Constant: -0:16 0 (const int) -0:16 Sequence -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 1 (const int) -0:17 move second child to first child ( temp 2-component vector of float) -0:17 clip1: direct index for structure ( temp 2-component vector of float) -0:17 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:17 Constant: -0:17 2 (const int) -0:17 vector swizzle ( temp 2-component vector of float) -0:17 direct index ( temp 4-component vector of float) -0:17 'clip' ( in 3-element array of 4-component vector of float) -0:17 Constant: -0:17 0 (const int) -0:17 Sequence -0:17 Constant: -0:17 2 (const int) -0:17 Constant: -0:17 3 (const int) -0:19 Sequence -0:19 Sequence -0:19 move second child to first child ( temp 4-component vector of float) -0:? 'OutputStream.pos' ( out 4-component vector of float Position) -0:19 pos: direct index for structure ( temp 4-component vector of float) -0:19 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:19 Constant: -0:19 0 (const int) -0:? Sequence -0:19 move second child to first child ( temp float) -0:19 direct index ( out float ClipDistance) -0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) -0:19 Constant: -0:19 0 (const int) -0:19 direct index ( temp float) -0:19 clip0: direct index for structure ( temp 2-component vector of float) -0:19 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:19 Constant: -0:19 1 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 move second child to first child ( temp float) -0:19 direct index ( out float ClipDistance) -0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) -0:19 Constant: -0:19 1 (const int) -0:19 direct index ( temp float) -0:19 clip0: direct index for structure ( temp 2-component vector of float) -0:19 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:19 Constant: -0:19 1 (const int) -0:19 Constant: -0:19 1 (const int) -0:? Sequence -0:19 move second child to first child ( temp float) -0:19 direct index ( out float ClipDistance) -0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) -0:19 Constant: -0:19 2 (const int) -0:19 direct index ( temp float) -0:19 clip1: direct index for structure ( temp 2-component vector of float) -0:19 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:19 Constant: -0:19 2 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 move second child to first child ( temp float) -0:19 direct index ( out float ClipDistance) -0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) -0:19 Constant: -0:19 3 (const int) -0:19 direct index ( temp float) -0:19 clip1: direct index for structure ( temp 2-component vector of float) -0:19 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:19 Constant: -0:19 2 (const int) -0:19 Constant: -0:19 1 (const int) -0:19 EmitVertex ( temp void) -0:12 Function Definition: main( ( temp void) -0:12 Function Parameters: -0:? Sequence -0:12 move second child to first child ( temp 3-element array of 4-component vector of float) -0:? 'pos' ( temp 3-element array of 4-component vector of float) -0:? 'pos' ( in 3-element array of 4-component vector of float Position) -0:12 move second child to first child ( temp 3-element array of uint) -0:? 'VertexID' ( temp 3-element array of uint) -0:? 'VertexID' (layout( location=0) in 3-element array of uint) -0:? Sequence -0:12 move second child to first child ( temp float) -0:12 direct index ( temp float) -0:12 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:12 Constant: -0:12 0 (const int) -0:12 Constant: -0:12 0 (const int) -0:12 direct index ( in float ClipDistance) -0:12 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:12 Constant: -0:12 0 (const int) -0:12 Constant: -0:12 0 (const int) -0:12 move second child to first child ( temp float) -0:12 direct index ( temp float) -0:12 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:12 Constant: -0:12 0 (const int) -0:12 Constant: -0:12 1 (const int) -0:12 direct index ( in float ClipDistance) -0:12 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:12 Constant: -0:12 0 (const int) -0:12 Constant: -0:12 1 (const int) -0:12 move second child to first child ( temp float) -0:12 direct index ( temp float) -0:12 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:12 Constant: -0:12 0 (const int) -0:12 Constant: -0:12 2 (const int) -0:12 direct index ( in float ClipDistance) -0:12 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:12 Constant: -0:12 0 (const int) -0:12 Constant: -0:12 2 (const int) -0:12 move second child to first child ( temp float) -0:12 direct index ( temp float) -0:12 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:12 Constant: -0:12 0 (const int) -0:12 Constant: -0:12 3 (const int) -0:12 direct index ( in float ClipDistance) -0:12 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:12 Constant: -0:12 0 (const int) -0:12 Constant: -0:12 3 (const int) -0:12 move second child to first child ( temp float) -0:12 direct index ( temp float) -0:12 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:12 Constant: -0:12 1 (const int) -0:12 Constant: -0:12 0 (const int) -0:12 direct index ( in float ClipDistance) -0:12 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:12 Constant: -0:12 1 (const int) -0:12 Constant: -0:12 0 (const int) -0:12 move second child to first child ( temp float) -0:12 direct index ( temp float) -0:12 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:12 Constant: -0:12 1 (const int) -0:12 Constant: -0:12 1 (const int) -0:12 direct index ( in float ClipDistance) -0:12 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:12 Constant: -0:12 1 (const int) -0:12 Constant: -0:12 1 (const int) -0:12 move second child to first child ( temp float) -0:12 direct index ( temp float) -0:12 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:12 Constant: -0:12 1 (const int) -0:12 Constant: -0:12 2 (const int) -0:12 direct index ( in float ClipDistance) -0:12 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:12 Constant: -0:12 1 (const int) -0:12 Constant: -0:12 2 (const int) -0:12 move second child to first child ( temp float) -0:12 direct index ( temp float) -0:12 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:12 Constant: -0:12 1 (const int) -0:12 Constant: -0:12 3 (const int) -0:12 direct index ( in float ClipDistance) -0:12 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:12 Constant: -0:12 1 (const int) -0:12 Constant: -0:12 3 (const int) -0:12 move second child to first child ( temp float) -0:12 direct index ( temp float) -0:12 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:12 Constant: -0:12 2 (const int) -0:12 Constant: -0:12 0 (const int) -0:12 direct index ( in float ClipDistance) -0:12 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:12 Constant: -0:12 2 (const int) -0:12 Constant: -0:12 0 (const int) -0:12 move second child to first child ( temp float) -0:12 direct index ( temp float) -0:12 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:12 Constant: -0:12 2 (const int) -0:12 Constant: -0:12 1 (const int) -0:12 direct index ( in float ClipDistance) -0:12 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:12 Constant: -0:12 2 (const int) -0:12 Constant: -0:12 1 (const int) -0:12 move second child to first child ( temp float) -0:12 direct index ( temp float) -0:12 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:12 Constant: -0:12 2 (const int) -0:12 Constant: -0:12 2 (const int) -0:12 direct index ( in float ClipDistance) -0:12 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:12 Constant: -0:12 2 (const int) -0:12 Constant: -0:12 2 (const int) -0:12 move second child to first child ( temp float) -0:12 direct index ( temp float) -0:12 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:12 Constant: -0:12 2 (const int) -0:12 Constant: -0:12 3 (const int) -0:12 direct index ( in float ClipDistance) -0:12 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:12 Constant: -0:12 2 (const int) -0:12 Constant: -0:12 3 (const int) -0:12 Function Call: @main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf4[3]; ( temp void) -0:? 'pos' ( temp 3-element array of 4-component vector of float) -0:? 'VertexID' ( temp 3-element array of uint) -0:? 'OutputStream' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:? Linker Objects -0:? 'pos' ( in 3-element array of 4-component vector of float Position) -0:? 'VertexID' (layout( location=0) in 3-element array of uint) -0:? 'OutputStream.pos' ( out 4-component vector of float Position) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) - - -Linked geometry stage: - - -Shader version: 500 -invocations = 1 -max_vertices = 3 -input primitive = triangles -output primitive = line_strip -0:? Sequence -0:12 Function Definition: @main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf4[3]; ( temp void) -0:12 Function Parameters: -0:12 'pos' ( in 3-element array of 4-component vector of float) -0:12 'VertexID' ( in 3-element array of uint) -0:12 'OutputStream' ( out structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:12 'clip' ( in 3-element array of 4-component vector of float) -0:? Sequence -0:15 move second child to first child ( temp 4-component vector of float) -0:15 pos: direct index for structure ( temp 4-component vector of float) -0:15 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:15 Constant: -0:15 0 (const int) -0:15 direct index ( temp 4-component vector of float) -0:15 'pos' ( in 3-element array of 4-component vector of float) -0:15 Constant: -0:15 0 (const int) -0:16 move second child to first child ( temp 2-component vector of float) -0:16 clip0: direct index for structure ( temp 2-component vector of float) -0:16 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:16 Constant: -0:16 1 (const int) -0:16 vector swizzle ( temp 2-component vector of float) -0:16 direct index ( temp 4-component vector of float) -0:16 'clip' ( in 3-element array of 4-component vector of float) -0:16 Constant: -0:16 0 (const int) -0:16 Sequence -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 1 (const int) -0:17 move second child to first child ( temp 2-component vector of float) -0:17 clip1: direct index for structure ( temp 2-component vector of float) -0:17 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:17 Constant: -0:17 2 (const int) -0:17 vector swizzle ( temp 2-component vector of float) -0:17 direct index ( temp 4-component vector of float) -0:17 'clip' ( in 3-element array of 4-component vector of float) -0:17 Constant: -0:17 0 (const int) -0:17 Sequence -0:17 Constant: -0:17 2 (const int) -0:17 Constant: -0:17 3 (const int) -0:19 Sequence -0:19 Sequence -0:19 move second child to first child ( temp 4-component vector of float) -0:? 'OutputStream.pos' ( out 4-component vector of float Position) -0:19 pos: direct index for structure ( temp 4-component vector of float) -0:19 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:19 Constant: -0:19 0 (const int) -0:? Sequence -0:19 move second child to first child ( temp float) -0:19 direct index ( out float ClipDistance) -0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) -0:19 Constant: -0:19 0 (const int) -0:19 direct index ( temp float) -0:19 clip0: direct index for structure ( temp 2-component vector of float) -0:19 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:19 Constant: -0:19 1 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 move second child to first child ( temp float) -0:19 direct index ( out float ClipDistance) -0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) -0:19 Constant: -0:19 1 (const int) -0:19 direct index ( temp float) -0:19 clip0: direct index for structure ( temp 2-component vector of float) -0:19 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:19 Constant: -0:19 1 (const int) -0:19 Constant: -0:19 1 (const int) -0:? Sequence -0:19 move second child to first child ( temp float) -0:19 direct index ( out float ClipDistance) -0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) -0:19 Constant: -0:19 2 (const int) -0:19 direct index ( temp float) -0:19 clip1: direct index for structure ( temp 2-component vector of float) -0:19 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:19 Constant: -0:19 2 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 move second child to first child ( temp float) -0:19 direct index ( out float ClipDistance) -0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) -0:19 Constant: -0:19 3 (const int) -0:19 direct index ( temp float) -0:19 clip1: direct index for structure ( temp 2-component vector of float) -0:19 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:19 Constant: -0:19 2 (const int) -0:19 Constant: -0:19 1 (const int) -0:19 EmitVertex ( temp void) -0:12 Function Definition: main( ( temp void) -0:12 Function Parameters: -0:? Sequence -0:12 move second child to first child ( temp 3-element array of 4-component vector of float) -0:? 'pos' ( temp 3-element array of 4-component vector of float) -0:? 'pos' ( in 3-element array of 4-component vector of float Position) -0:12 move second child to first child ( temp 3-element array of uint) -0:? 'VertexID' ( temp 3-element array of uint) -0:? 'VertexID' (layout( location=0) in 3-element array of uint) -0:? Sequence -0:12 move second child to first child ( temp float) -0:12 direct index ( temp float) -0:12 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:12 Constant: -0:12 0 (const int) -0:12 Constant: -0:12 0 (const int) -0:12 direct index ( in float ClipDistance) -0:12 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:12 Constant: -0:12 0 (const int) -0:12 Constant: -0:12 0 (const int) -0:12 move second child to first child ( temp float) -0:12 direct index ( temp float) -0:12 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:12 Constant: -0:12 0 (const int) -0:12 Constant: -0:12 1 (const int) -0:12 direct index ( in float ClipDistance) -0:12 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:12 Constant: -0:12 0 (const int) -0:12 Constant: -0:12 1 (const int) -0:12 move second child to first child ( temp float) -0:12 direct index ( temp float) -0:12 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:12 Constant: -0:12 0 (const int) -0:12 Constant: -0:12 2 (const int) -0:12 direct index ( in float ClipDistance) -0:12 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:12 Constant: -0:12 0 (const int) -0:12 Constant: -0:12 2 (const int) -0:12 move second child to first child ( temp float) -0:12 direct index ( temp float) -0:12 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:12 Constant: -0:12 0 (const int) -0:12 Constant: -0:12 3 (const int) -0:12 direct index ( in float ClipDistance) -0:12 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:12 Constant: -0:12 0 (const int) -0:12 Constant: -0:12 3 (const int) -0:12 move second child to first child ( temp float) -0:12 direct index ( temp float) -0:12 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:12 Constant: -0:12 1 (const int) -0:12 Constant: -0:12 0 (const int) -0:12 direct index ( in float ClipDistance) -0:12 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:12 Constant: -0:12 1 (const int) -0:12 Constant: -0:12 0 (const int) -0:12 move second child to first child ( temp float) -0:12 direct index ( temp float) -0:12 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:12 Constant: -0:12 1 (const int) -0:12 Constant: -0:12 1 (const int) -0:12 direct index ( in float ClipDistance) -0:12 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:12 Constant: -0:12 1 (const int) -0:12 Constant: -0:12 1 (const int) -0:12 move second child to first child ( temp float) -0:12 direct index ( temp float) -0:12 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:12 Constant: -0:12 1 (const int) -0:12 Constant: -0:12 2 (const int) -0:12 direct index ( in float ClipDistance) -0:12 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:12 Constant: -0:12 1 (const int) -0:12 Constant: -0:12 2 (const int) -0:12 move second child to first child ( temp float) -0:12 direct index ( temp float) -0:12 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:12 Constant: -0:12 1 (const int) -0:12 Constant: -0:12 3 (const int) -0:12 direct index ( in float ClipDistance) -0:12 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:12 Constant: -0:12 1 (const int) -0:12 Constant: -0:12 3 (const int) -0:12 move second child to first child ( temp float) -0:12 direct index ( temp float) -0:12 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:12 Constant: -0:12 2 (const int) -0:12 Constant: -0:12 0 (const int) -0:12 direct index ( in float ClipDistance) -0:12 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:12 Constant: -0:12 2 (const int) -0:12 Constant: -0:12 0 (const int) -0:12 move second child to first child ( temp float) -0:12 direct index ( temp float) -0:12 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:12 Constant: -0:12 2 (const int) -0:12 Constant: -0:12 1 (const int) -0:12 direct index ( in float ClipDistance) -0:12 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:12 Constant: -0:12 2 (const int) -0:12 Constant: -0:12 1 (const int) -0:12 move second child to first child ( temp float) -0:12 direct index ( temp float) -0:12 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:12 Constant: -0:12 2 (const int) -0:12 Constant: -0:12 2 (const int) -0:12 direct index ( in float ClipDistance) -0:12 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:12 Constant: -0:12 2 (const int) -0:12 Constant: -0:12 2 (const int) -0:12 move second child to first child ( temp float) -0:12 direct index ( temp float) -0:12 direct index ( temp 4-component vector of float) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:12 Constant: -0:12 2 (const int) -0:12 Constant: -0:12 3 (const int) -0:12 direct index ( in float ClipDistance) -0:12 direct index ( in 4-element array of float ClipDistance) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:12 Constant: -0:12 2 (const int) -0:12 Constant: -0:12 3 (const int) -0:12 Function Call: @main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf4[3]; ( temp void) -0:? 'pos' ( temp 3-element array of 4-component vector of float) -0:? 'VertexID' ( temp 3-element array of uint) -0:? 'OutputStream' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:? 'clip' ( temp 3-element array of 4-component vector of float) -0:? Linker Objects -0:? 'pos' ( in 3-element array of 4-component vector of float Position) -0:? 'VertexID' (layout( location=0) in 3-element array of uint) -0:? 'OutputStream.pos' ( out 4-component vector of float Position) -0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) -0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 127 - - Capability Geometry - Capability ClipDistance - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Geometry 4 "main" 43 49 69 73 78 - ExecutionMode 4 Triangles - ExecutionMode 4 Invocations 1 - ExecutionMode 4 OutputLineStrip - ExecutionMode 4 OutputVertices 3 - Source HLSL 500 - Name 4 "main" - Name 15 "S" - MemberName 15(S) 0 "pos" - MemberName 15(S) 1 "clip0" - MemberName 15(S) 2 "clip1" - Name 22 "@main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf4[3];" - Name 18 "pos" - Name 19 "VertexID" - Name 20 "OutputStream" - Name 21 "clip" - Name 24 "s" - Name 43 "OutputStream.pos" - Name 49 "OutputStream.clip1" - Name 67 "pos" - Name 69 "pos" - Name 71 "VertexID" - Name 73 "VertexID" - Name 75 "clip" - Name 78 "clip" - Name 117 "OutputStream" - Name 118 "param" - Name 120 "param" - Name 122 "param" - Name 123 "param" - Decorate 43(OutputStream.pos) BuiltIn Position - Decorate 49(OutputStream.clip1) BuiltIn ClipDistance - Decorate 69(pos) BuiltIn Position - Decorate 73(VertexID) Location 0 - Decorate 78(clip) BuiltIn ClipDistance - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeInt 32 0 - 9: 8(int) Constant 3 - 10: TypeArray 7(fvec4) 9 - 11: TypePointer Function 10 - 12: TypeArray 8(int) 9 - 13: TypePointer Function 12 - 14: TypeVector 6(float) 2 - 15(S): TypeStruct 7(fvec4) 14(fvec2) 14(fvec2) - 16: TypePointer Function 15(S) - 17: TypeFunction 2 11(ptr) 13(ptr) 16(ptr) 11(ptr) - 25: TypeInt 32 1 - 26: 25(int) Constant 0 - 27: TypePointer Function 7(fvec4) - 31: 25(int) Constant 1 - 35: TypePointer Function 14(fvec2) - 37: 25(int) Constant 2 - 42: TypePointer Output 7(fvec4) -43(OutputStream.pos): 42(ptr) Variable Output - 46: 8(int) Constant 4 - 47: TypeArray 6(float) 46 - 48: TypePointer Output 47 -49(OutputStream.clip1): 48(ptr) Variable Output - 50: 8(int) Constant 0 - 51: TypePointer Function 6(float) - 54: TypePointer Output 6(float) - 56: 8(int) Constant 1 - 63: 25(int) Constant 3 - 68: TypePointer Input 10 - 69(pos): 68(ptr) Variable Input - 72: TypePointer Input 12 - 73(VertexID): 72(ptr) Variable Input - 76: TypeArray 47 9 - 77: TypePointer Input 76 - 78(clip): 77(ptr) Variable Input - 79: TypePointer Input 6(float) - 88: 8(int) Constant 2 - 4(main): 2 Function None 3 - 5: Label - 67(pos): 11(ptr) Variable Function - 71(VertexID): 13(ptr) Variable Function - 75(clip): 11(ptr) Variable Function -117(OutputStream): 16(ptr) Variable Function - 118(param): 11(ptr) Variable Function - 120(param): 13(ptr) Variable Function - 122(param): 16(ptr) Variable Function - 123(param): 11(ptr) Variable Function - 70: 10 Load 69(pos) - Store 67(pos) 70 - 74: 12 Load 73(VertexID) - Store 71(VertexID) 74 - 80: 79(ptr) AccessChain 78(clip) 26 26 - 81: 6(float) Load 80 - 82: 51(ptr) AccessChain 75(clip) 26 50 - Store 82 81 - 83: 79(ptr) AccessChain 78(clip) 26 31 - 84: 6(float) Load 83 - 85: 51(ptr) AccessChain 75(clip) 26 56 - Store 85 84 - 86: 79(ptr) AccessChain 78(clip) 26 37 - 87: 6(float) Load 86 - 89: 51(ptr) AccessChain 75(clip) 26 88 - Store 89 87 - 90: 79(ptr) AccessChain 78(clip) 26 63 - 91: 6(float) Load 90 - 92: 51(ptr) AccessChain 75(clip) 26 9 - Store 92 91 - 93: 79(ptr) AccessChain 78(clip) 31 26 - 94: 6(float) Load 93 - 95: 51(ptr) AccessChain 75(clip) 31 50 - Store 95 94 - 96: 79(ptr) AccessChain 78(clip) 31 31 - 97: 6(float) Load 96 - 98: 51(ptr) AccessChain 75(clip) 31 56 - Store 98 97 - 99: 79(ptr) AccessChain 78(clip) 31 37 - 100: 6(float) Load 99 - 101: 51(ptr) AccessChain 75(clip) 31 88 - Store 101 100 - 102: 79(ptr) AccessChain 78(clip) 31 63 - 103: 6(float) Load 102 - 104: 51(ptr) AccessChain 75(clip) 31 9 - Store 104 103 - 105: 79(ptr) AccessChain 78(clip) 37 26 - 106: 6(float) Load 105 - 107: 51(ptr) AccessChain 75(clip) 37 50 - Store 107 106 - 108: 79(ptr) AccessChain 78(clip) 37 31 - 109: 6(float) Load 108 - 110: 51(ptr) AccessChain 75(clip) 37 56 - Store 110 109 - 111: 79(ptr) AccessChain 78(clip) 37 37 - 112: 6(float) Load 111 - 113: 51(ptr) AccessChain 75(clip) 37 88 - Store 113 112 - 114: 79(ptr) AccessChain 78(clip) 37 63 - 115: 6(float) Load 114 - 116: 51(ptr) AccessChain 75(clip) 37 9 - Store 116 115 - 119: 10 Load 67(pos) - Store 118(param) 119 - 121: 12 Load 71(VertexID) - Store 120(param) 121 - 124: 10 Load 75(clip) - Store 123(param) 124 - 125: 2 FunctionCall 22(@main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf4[3];) 118(param) 120(param) 122(param) 123(param) - 126: 15(S) Load 122(param) - Store 117(OutputStream) 126 - Return - FunctionEnd -22(@main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf4[3];): 2 Function None 17 - 18(pos): 11(ptr) FunctionParameter - 19(VertexID): 13(ptr) FunctionParameter -20(OutputStream): 16(ptr) FunctionParameter - 21(clip): 11(ptr) FunctionParameter - 23: Label - 24(s): 16(ptr) Variable Function - 28: 27(ptr) AccessChain 18(pos) 26 - 29: 7(fvec4) Load 28 - 30: 27(ptr) AccessChain 24(s) 26 - Store 30 29 - 32: 27(ptr) AccessChain 21(clip) 26 - 33: 7(fvec4) Load 32 - 34: 14(fvec2) VectorShuffle 33 33 0 1 - 36: 35(ptr) AccessChain 24(s) 31 - Store 36 34 - 38: 27(ptr) AccessChain 21(clip) 26 - 39: 7(fvec4) Load 38 - 40: 14(fvec2) VectorShuffle 39 39 2 3 - 41: 35(ptr) AccessChain 24(s) 37 - Store 41 40 - 44: 27(ptr) AccessChain 24(s) 26 - 45: 7(fvec4) Load 44 - Store 43(OutputStream.pos) 45 - 52: 51(ptr) AccessChain 24(s) 31 50 - 53: 6(float) Load 52 - 55: 54(ptr) AccessChain 49(OutputStream.clip1) 26 - Store 55 53 - 57: 51(ptr) AccessChain 24(s) 31 56 - 58: 6(float) Load 57 - 59: 54(ptr) AccessChain 49(OutputStream.clip1) 31 - Store 59 58 - 60: 51(ptr) AccessChain 24(s) 37 50 - 61: 6(float) Load 60 - 62: 54(ptr) AccessChain 49(OutputStream.clip1) 37 - Store 62 61 - 64: 51(ptr) AccessChain 24(s) 37 56 - 65: 6(float) Load 64 - 66: 54(ptr) AccessChain 49(OutputStream.clip1) 63 - Store 66 65 - EmitVertex - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.clipdistance-3.vert.out b/deps/glslang/Test/baseResults/hlsl.clipdistance-3.vert.out deleted file mode 100644 index 1882a5a3..00000000 --- a/deps/glslang/Test/baseResults/hlsl.clipdistance-3.vert.out +++ /dev/null @@ -1,229 +0,0 @@ -hlsl.clipdistance-3.vert -Shader version: 500 -0:? Sequence -0:4 Function Definition: @main(vf4;f1[2];f1[2]; ( temp void) -0:4 Function Parameters: -0:4 'pos' ( out 4-component vector of float) -0:4 'clip' ( out 2-element array of float) -0:4 'cull' ( out 2-element array of float) -0:? Sequence -0:5 move second child to first child ( temp 4-component vector of float) -0:5 'pos' ( out 4-component vector of float) -0:5 Constant: -0:5 1.000000 -0:5 1.000000 -0:5 1.000000 -0:5 1.000000 -0:6 move second child to first child ( temp float) -0:6 direct index ( temp float) -0:6 'clip' ( out 2-element array of float) -0:6 Constant: -0:6 0 (const int) -0:6 Constant: -0:6 0.500000 -0:7 move second child to first child ( temp float) -0:7 direct index ( temp float) -0:7 'clip' ( out 2-element array of float) -0:7 Constant: -0:7 1 (const int) -0:7 Constant: -0:7 0.600000 -0:9 move second child to first child ( temp float) -0:9 direct index ( temp float) -0:9 'cull' ( out 2-element array of float) -0:9 Constant: -0:9 0 (const int) -0:9 Constant: -0:9 0.525000 -0:10 move second child to first child ( temp float) -0:10 direct index ( temp float) -0:10 'cull' ( out 2-element array of float) -0:10 Constant: -0:10 1 (const int) -0:10 Constant: -0:10 0.625000 -0:4 Function Definition: main( ( temp void) -0:4 Function Parameters: -0:? Sequence -0:4 Function Call: @main(vf4;f1[2];f1[2]; ( temp void) -0:? 'pos' ( temp 4-component vector of float) -0:? 'clip' ( temp 2-element array of float) -0:? 'cull' ( temp 2-element array of float) -0:4 move second child to first child ( temp 4-component vector of float) -0:? 'pos' ( out 4-component vector of float Position) -0:? 'pos' ( temp 4-component vector of float) -0:? Sequence -0:4 move second child to first child ( temp 2-element array of float) -0:? 'clip' ( out 2-element array of float ClipDistance) -0:? 'clip' ( temp 2-element array of float) -0:? Sequence -0:4 move second child to first child ( temp 2-element array of float) -0:? 'cull' ( out 2-element array of float CullDistance) -0:? 'cull' ( temp 2-element array of float) -0:? Linker Objects -0:? 'pos' ( out 4-component vector of float Position) -0:? 'clip' ( out 2-element array of float ClipDistance) -0:? 'cull' ( out 2-element array of float CullDistance) - - -Linked vertex stage: - - -Shader version: 500 -0:? Sequence -0:4 Function Definition: @main(vf4;f1[2];f1[2]; ( temp void) -0:4 Function Parameters: -0:4 'pos' ( out 4-component vector of float) -0:4 'clip' ( out 2-element array of float) -0:4 'cull' ( out 2-element array of float) -0:? Sequence -0:5 move second child to first child ( temp 4-component vector of float) -0:5 'pos' ( out 4-component vector of float) -0:5 Constant: -0:5 1.000000 -0:5 1.000000 -0:5 1.000000 -0:5 1.000000 -0:6 move second child to first child ( temp float) -0:6 direct index ( temp float) -0:6 'clip' ( out 2-element array of float) -0:6 Constant: -0:6 0 (const int) -0:6 Constant: -0:6 0.500000 -0:7 move second child to first child ( temp float) -0:7 direct index ( temp float) -0:7 'clip' ( out 2-element array of float) -0:7 Constant: -0:7 1 (const int) -0:7 Constant: -0:7 0.600000 -0:9 move second child to first child ( temp float) -0:9 direct index ( temp float) -0:9 'cull' ( out 2-element array of float) -0:9 Constant: -0:9 0 (const int) -0:9 Constant: -0:9 0.525000 -0:10 move second child to first child ( temp float) -0:10 direct index ( temp float) -0:10 'cull' ( out 2-element array of float) -0:10 Constant: -0:10 1 (const int) -0:10 Constant: -0:10 0.625000 -0:4 Function Definition: main( ( temp void) -0:4 Function Parameters: -0:? Sequence -0:4 Function Call: @main(vf4;f1[2];f1[2]; ( temp void) -0:? 'pos' ( temp 4-component vector of float) -0:? 'clip' ( temp 2-element array of float) -0:? 'cull' ( temp 2-element array of float) -0:4 move second child to first child ( temp 4-component vector of float) -0:? 'pos' ( out 4-component vector of float Position) -0:? 'pos' ( temp 4-component vector of float) -0:? Sequence -0:4 move second child to first child ( temp 2-element array of float) -0:? 'clip' ( out 2-element array of float ClipDistance) -0:? 'clip' ( temp 2-element array of float) -0:? Sequence -0:4 move second child to first child ( temp 2-element array of float) -0:? 'cull' ( out 2-element array of float CullDistance) -0:? 'cull' ( temp 2-element array of float) -0:? Linker Objects -0:? 'pos' ( out 4-component vector of float Position) -0:? 'clip' ( out 2-element array of float ClipDistance) -0:? 'cull' ( out 2-element array of float CullDistance) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 51 - - Capability Shader - Capability ClipDistance - Capability CullDistance - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 44 47 49 - Source HLSL 500 - Name 4 "main" - Name 17 "@main(vf4;f1[2];f1[2];" - Name 14 "pos" - Name 15 "clip" - Name 16 "cull" - Name 33 "pos" - Name 34 "clip" - Name 35 "cull" - Name 36 "param" - Name 37 "param" - Name 38 "param" - Name 44 "pos" - Name 47 "clip" - Name 49 "cull" - Decorate 44(pos) BuiltIn Position - Decorate 47(clip) BuiltIn ClipDistance - Decorate 49(cull) BuiltIn CullDistance - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 9: TypeInt 32 0 - 10: 9(int) Constant 2 - 11: TypeArray 6(float) 10 - 12: TypePointer Function 11 - 13: TypeFunction 2 8(ptr) 12(ptr) 12(ptr) - 19: 6(float) Constant 1065353216 - 20: 7(fvec4) ConstantComposite 19 19 19 19 - 21: TypeInt 32 1 - 22: 21(int) Constant 0 - 23: 6(float) Constant 1056964608 - 24: TypePointer Function 6(float) - 26: 21(int) Constant 1 - 27: 6(float) Constant 1058642330 - 29: 6(float) Constant 1057384038 - 31: 6(float) Constant 1059061760 - 43: TypePointer Output 7(fvec4) - 44(pos): 43(ptr) Variable Output - 46: TypePointer Output 11 - 47(clip): 46(ptr) Variable Output - 49(cull): 46(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 33(pos): 8(ptr) Variable Function - 34(clip): 12(ptr) Variable Function - 35(cull): 12(ptr) Variable Function - 36(param): 8(ptr) Variable Function - 37(param): 12(ptr) Variable Function - 38(param): 12(ptr) Variable Function - 39: 2 FunctionCall 17(@main(vf4;f1[2];f1[2];) 36(param) 37(param) 38(param) - 40: 7(fvec4) Load 36(param) - Store 33(pos) 40 - 41: 11 Load 37(param) - Store 34(clip) 41 - 42: 11 Load 38(param) - Store 35(cull) 42 - 45: 7(fvec4) Load 33(pos) - Store 44(pos) 45 - 48: 11 Load 34(clip) - Store 47(clip) 48 - 50: 11 Load 35(cull) - Store 49(cull) 50 - Return - FunctionEnd -17(@main(vf4;f1[2];f1[2];): 2 Function None 13 - 14(pos): 8(ptr) FunctionParameter - 15(clip): 12(ptr) FunctionParameter - 16(cull): 12(ptr) FunctionParameter - 18: Label - Store 14(pos) 20 - 25: 24(ptr) AccessChain 15(clip) 22 - Store 25 23 - 28: 24(ptr) AccessChain 15(clip) 26 - Store 28 27 - 30: 24(ptr) AccessChain 16(cull) 22 - Store 30 29 - 32: 24(ptr) AccessChain 16(cull) 26 - Store 32 31 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.clipdistance-4.frag.out b/deps/glslang/Test/baseResults/hlsl.clipdistance-4.frag.out deleted file mode 100644 index 5cef5644..00000000 --- a/deps/glslang/Test/baseResults/hlsl.clipdistance-4.frag.out +++ /dev/null @@ -1,262 +0,0 @@ -hlsl.clipdistance-4.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:7 Function Definition: @main(struct-VS_OUTPUT-vf4-vf41; ( temp 4-component vector of float) -0:7 Function Parameters: -0:7 'v' ( const (read only) structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:? Sequence -0:8 Branch: Return with expression -0:8 add ( temp 4-component vector of float) -0:8 Position: direct index for structure ( temp 4-component vector of float) -0:8 'v' ( const (read only) structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:8 Constant: -0:8 0 (const int) -0:8 ClipRect: direct index for structure ( temp 4-component vector of float) -0:8 'v' ( const (read only) structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:8 Constant: -0:8 1 (const int) -0:7 Function Definition: main( ( temp void) -0:7 Function Parameters: -0:? Sequence -0:7 Sequence -0:7 move second child to first child ( temp 4-component vector of float) -0:7 Position: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:7 Constant: -0:7 0 (const int) -0:? 'v.Position' ( in 4-component vector of float FragCoord) -0:? Sequence -0:7 move second child to first child ( temp float) -0:7 direct index ( temp float) -0:7 ClipRect: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:7 Constant: -0:7 1 (const int) -0:7 Constant: -0:7 0 (const int) -0:7 direct index ( in float ClipDistance) -0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) -0:7 Constant: -0:7 0 (const int) -0:7 move second child to first child ( temp float) -0:7 direct index ( temp float) -0:7 ClipRect: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:7 Constant: -0:7 1 (const int) -0:7 Constant: -0:7 1 (const int) -0:7 direct index ( in float ClipDistance) -0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) -0:7 Constant: -0:7 1 (const int) -0:7 move second child to first child ( temp float) -0:7 direct index ( temp float) -0:7 ClipRect: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:7 Constant: -0:7 1 (const int) -0:7 Constant: -0:7 2 (const int) -0:7 direct index ( in float ClipDistance) -0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) -0:7 Constant: -0:7 2 (const int) -0:7 move second child to first child ( temp float) -0:7 direct index ( temp float) -0:7 ClipRect: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:7 Constant: -0:7 1 (const int) -0:7 Constant: -0:7 3 (const int) -0:7 direct index ( in float ClipDistance) -0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) -0:7 Constant: -0:7 3 (const int) -0:7 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:7 Function Call: @main(struct-VS_OUTPUT-vf4-vf41; ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'v.Position' ( in 4-component vector of float FragCoord) -0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:7 Function Definition: @main(struct-VS_OUTPUT-vf4-vf41; ( temp 4-component vector of float) -0:7 Function Parameters: -0:7 'v' ( const (read only) structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:? Sequence -0:8 Branch: Return with expression -0:8 add ( temp 4-component vector of float) -0:8 Position: direct index for structure ( temp 4-component vector of float) -0:8 'v' ( const (read only) structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:8 Constant: -0:8 0 (const int) -0:8 ClipRect: direct index for structure ( temp 4-component vector of float) -0:8 'v' ( const (read only) structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:8 Constant: -0:8 1 (const int) -0:7 Function Definition: main( ( temp void) -0:7 Function Parameters: -0:? Sequence -0:7 Sequence -0:7 move second child to first child ( temp 4-component vector of float) -0:7 Position: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:7 Constant: -0:7 0 (const int) -0:? 'v.Position' ( in 4-component vector of float FragCoord) -0:? Sequence -0:7 move second child to first child ( temp float) -0:7 direct index ( temp float) -0:7 ClipRect: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:7 Constant: -0:7 1 (const int) -0:7 Constant: -0:7 0 (const int) -0:7 direct index ( in float ClipDistance) -0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) -0:7 Constant: -0:7 0 (const int) -0:7 move second child to first child ( temp float) -0:7 direct index ( temp float) -0:7 ClipRect: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:7 Constant: -0:7 1 (const int) -0:7 Constant: -0:7 1 (const int) -0:7 direct index ( in float ClipDistance) -0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) -0:7 Constant: -0:7 1 (const int) -0:7 move second child to first child ( temp float) -0:7 direct index ( temp float) -0:7 ClipRect: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:7 Constant: -0:7 1 (const int) -0:7 Constant: -0:7 2 (const int) -0:7 direct index ( in float ClipDistance) -0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) -0:7 Constant: -0:7 2 (const int) -0:7 move second child to first child ( temp float) -0:7 direct index ( temp float) -0:7 ClipRect: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:7 Constant: -0:7 1 (const int) -0:7 Constant: -0:7 3 (const int) -0:7 direct index ( in float ClipDistance) -0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) -0:7 Constant: -0:7 3 (const int) -0:7 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:7 Function Call: @main(struct-VS_OUTPUT-vf4-vf41; ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'v.Position' ( in 4-component vector of float FragCoord) -0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 57 - - Capability Shader - Capability ClipDistance - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 24 32 54 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 8 "VS_OUTPUT" - MemberName 8(VS_OUTPUT) 0 "Position" - MemberName 8(VS_OUTPUT) 1 "ClipRect" - Name 11 "@main(struct-VS_OUTPUT-vf4-vf41;" - Name 10 "v" - Name 22 "v" - Name 24 "v.Position" - Name 32 "v.ClipRect" - Name 54 "@entryPointOutput" - Decorate 24(v.Position) BuiltIn FragCoord - Decorate 32(v.ClipRect) BuiltIn ClipDistance - Decorate 54(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8(VS_OUTPUT): TypeStruct 7(fvec4) 7(fvec4) - 9: TypeFunction 7(fvec4) 8(VS_OUTPUT) - 13: TypeInt 32 1 - 14: 13(int) Constant 0 - 16: 13(int) Constant 1 - 21: TypePointer Function 8(VS_OUTPUT) - 23: TypePointer Input 7(fvec4) - 24(v.Position): 23(ptr) Variable Input - 26: TypePointer Function 7(fvec4) - 28: TypeInt 32 0 - 29: 28(int) Constant 4 - 30: TypeArray 6(float) 29 - 31: TypePointer Input 30 - 32(v.ClipRect): 31(ptr) Variable Input - 33: TypePointer Input 6(float) - 36: 28(int) Constant 0 - 37: TypePointer Function 6(float) - 41: 28(int) Constant 1 - 43: 13(int) Constant 2 - 46: 28(int) Constant 2 - 48: 13(int) Constant 3 - 51: 28(int) Constant 3 - 53: TypePointer Output 7(fvec4) -54(@entryPointOutput): 53(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 22(v): 21(ptr) Variable Function - 25: 7(fvec4) Load 24(v.Position) - 27: 26(ptr) AccessChain 22(v) 14 - Store 27 25 - 34: 33(ptr) AccessChain 32(v.ClipRect) 14 - 35: 6(float) Load 34 - 38: 37(ptr) AccessChain 22(v) 16 36 - Store 38 35 - 39: 33(ptr) AccessChain 32(v.ClipRect) 16 - 40: 6(float) Load 39 - 42: 37(ptr) AccessChain 22(v) 16 41 - Store 42 40 - 44: 33(ptr) AccessChain 32(v.ClipRect) 43 - 45: 6(float) Load 44 - 47: 37(ptr) AccessChain 22(v) 16 46 - Store 47 45 - 49: 33(ptr) AccessChain 32(v.ClipRect) 48 - 50: 6(float) Load 49 - 52: 37(ptr) AccessChain 22(v) 16 51 - Store 52 50 - 55:8(VS_OUTPUT) Load 22(v) - 56: 7(fvec4) FunctionCall 11(@main(struct-VS_OUTPUT-vf4-vf41;) 55 - Store 54(@entryPointOutput) 56 - Return - FunctionEnd -11(@main(struct-VS_OUTPUT-vf4-vf41;): 7(fvec4) Function None 9 - 10(v):8(VS_OUTPUT) FunctionParameter - 12: Label - 15: 7(fvec4) CompositeExtract 10(v) 0 - 17: 7(fvec4) CompositeExtract 10(v) 1 - 18: 7(fvec4) FAdd 15 17 - ReturnValue 18 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.clipdistance-4.geom.out b/deps/glslang/Test/baseResults/hlsl.clipdistance-4.geom.out deleted file mode 100644 index e9423016..00000000 --- a/deps/glslang/Test/baseResults/hlsl.clipdistance-4.geom.out +++ /dev/null @@ -1,819 +0,0 @@ -hlsl.clipdistance-4.geom -Shader version: 500 -invocations = -1 -max_vertices = 3 -input primitive = triangles -output primitive = line_strip -0:? Sequence -0:13 Function Definition: @main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf2[3];vf2[3]; ( temp void) -0:13 Function Parameters: -0:13 'pos' ( in 3-element array of 4-component vector of float) -0:13 'VertexID' ( in 3-element array of uint) -0:13 'OutputStream' ( out structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:13 'clip0' ( in 3-element array of 2-component vector of float) -0:13 'clip1' ( in 3-element array of 2-component vector of float) -0:? Sequence -0:16 move second child to first child ( temp 4-component vector of float) -0:16 pos: direct index for structure ( temp 4-component vector of float) -0:16 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:16 Constant: -0:16 0 (const int) -0:16 direct index ( temp 4-component vector of float) -0:16 'pos' ( in 3-element array of 4-component vector of float) -0:16 Constant: -0:16 0 (const int) -0:17 move second child to first child ( temp 2-component vector of float) -0:17 clip0: direct index for structure ( temp 2-component vector of float) -0:17 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:17 Constant: -0:17 1 (const int) -0:17 direct index ( temp 2-component vector of float) -0:17 'clip0' ( in 3-element array of 2-component vector of float) -0:17 Constant: -0:17 0 (const int) -0:18 move second child to first child ( temp 2-component vector of float) -0:18 clip1: direct index for structure ( temp 2-component vector of float) -0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:18 Constant: -0:18 2 (const int) -0:18 direct index ( temp 2-component vector of float) -0:18 'clip1' ( in 3-element array of 2-component vector of float) -0:18 Constant: -0:18 0 (const int) -0:20 Sequence -0:20 Sequence -0:20 move second child to first child ( temp 4-component vector of float) -0:? 'OutputStream.pos' ( out 4-component vector of float Position) -0:20 pos: direct index for structure ( temp 4-component vector of float) -0:20 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:20 Constant: -0:20 0 (const int) -0:? Sequence -0:20 move second child to first child ( temp float) -0:20 direct index ( out float ClipDistance) -0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) -0:20 Constant: -0:20 0 (const int) -0:20 direct index ( temp float) -0:20 clip0: direct index for structure ( temp 2-component vector of float) -0:20 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 move second child to first child ( temp float) -0:20 direct index ( out float ClipDistance) -0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) -0:20 Constant: -0:20 1 (const int) -0:20 direct index ( temp float) -0:20 clip0: direct index for structure ( temp 2-component vector of float) -0:20 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 1 (const int) -0:? Sequence -0:20 move second child to first child ( temp float) -0:20 direct index ( out float ClipDistance) -0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) -0:20 Constant: -0:20 2 (const int) -0:20 direct index ( temp float) -0:20 clip1: direct index for structure ( temp 2-component vector of float) -0:20 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:20 Constant: -0:20 2 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 move second child to first child ( temp float) -0:20 direct index ( out float ClipDistance) -0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) -0:20 Constant: -0:20 3 (const int) -0:20 direct index ( temp float) -0:20 clip1: direct index for structure ( temp 2-component vector of float) -0:20 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:20 Constant: -0:20 2 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 EmitVertex ( temp void) -0:13 Function Definition: main( ( temp void) -0:13 Function Parameters: -0:? Sequence -0:13 move second child to first child ( temp 3-element array of 4-component vector of float) -0:? 'pos' ( temp 3-element array of 4-component vector of float) -0:? 'pos' ( in 3-element array of 4-component vector of float Position) -0:13 move second child to first child ( temp 3-element array of uint) -0:? 'VertexID' ( temp 3-element array of uint) -0:? 'VertexID' (layout( location=0) in 3-element array of uint) -0:? Sequence -0:13 move second child to first child ( temp float) -0:13 direct index ( temp float) -0:13 direct index ( temp 2-component vector of float) -0:? 'clip0' ( temp 3-element array of 2-component vector of float) -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 0 (const int) -0:13 direct index ( in float ClipDistance) -0:13 direct index ( in 4-element array of float ClipDistance) -0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 0 (const int) -0:13 move second child to first child ( temp float) -0:13 direct index ( temp float) -0:13 direct index ( temp 2-component vector of float) -0:? 'clip0' ( temp 3-element array of 2-component vector of float) -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 1 (const int) -0:13 direct index ( in float ClipDistance) -0:13 direct index ( in 4-element array of float ClipDistance) -0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 1 (const int) -0:13 move second child to first child ( temp float) -0:13 direct index ( temp float) -0:13 direct index ( temp 2-component vector of float) -0:? 'clip0' ( temp 3-element array of 2-component vector of float) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 0 (const int) -0:13 direct index ( in float ClipDistance) -0:13 direct index ( in 4-element array of float ClipDistance) -0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 2 (const int) -0:13 move second child to first child ( temp float) -0:13 direct index ( temp float) -0:13 direct index ( temp 2-component vector of float) -0:? 'clip0' ( temp 3-element array of 2-component vector of float) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 1 (const int) -0:13 direct index ( in float ClipDistance) -0:13 direct index ( in 4-element array of float ClipDistance) -0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 3 (const int) -0:13 move second child to first child ( temp float) -0:13 direct index ( temp float) -0:13 direct index ( temp 2-component vector of float) -0:? 'clip0' ( temp 3-element array of 2-component vector of float) -0:13 Constant: -0:13 2 (const int) -0:13 Constant: -0:13 0 (const int) -0:13 direct index ( in float ClipDistance) -0:13 direct index ( in 4-element array of float ClipDistance) -0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 0 (const int) -0:13 move second child to first child ( temp float) -0:13 direct index ( temp float) -0:13 direct index ( temp 2-component vector of float) -0:? 'clip0' ( temp 3-element array of 2-component vector of float) -0:13 Constant: -0:13 2 (const int) -0:13 Constant: -0:13 1 (const int) -0:13 direct index ( in float ClipDistance) -0:13 direct index ( in 4-element array of float ClipDistance) -0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 1 (const int) -0:? Sequence -0:13 move second child to first child ( temp float) -0:13 direct index ( temp float) -0:13 direct index ( temp 2-component vector of float) -0:? 'clip1' ( temp 3-element array of 2-component vector of float) -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 0 (const int) -0:13 direct index ( in float ClipDistance) -0:13 direct index ( in 4-element array of float ClipDistance) -0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 2 (const int) -0:13 move second child to first child ( temp float) -0:13 direct index ( temp float) -0:13 direct index ( temp 2-component vector of float) -0:? 'clip1' ( temp 3-element array of 2-component vector of float) -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 1 (const int) -0:13 direct index ( in float ClipDistance) -0:13 direct index ( in 4-element array of float ClipDistance) -0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 3 (const int) -0:13 move second child to first child ( temp float) -0:13 direct index ( temp float) -0:13 direct index ( temp 2-component vector of float) -0:? 'clip1' ( temp 3-element array of 2-component vector of float) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 0 (const int) -0:13 direct index ( in float ClipDistance) -0:13 direct index ( in 4-element array of float ClipDistance) -0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 2 (const int) -0:13 move second child to first child ( temp float) -0:13 direct index ( temp float) -0:13 direct index ( temp 2-component vector of float) -0:? 'clip1' ( temp 3-element array of 2-component vector of float) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 1 (const int) -0:13 direct index ( in float ClipDistance) -0:13 direct index ( in 4-element array of float ClipDistance) -0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 3 (const int) -0:13 move second child to first child ( temp float) -0:13 direct index ( temp float) -0:13 direct index ( temp 2-component vector of float) -0:? 'clip1' ( temp 3-element array of 2-component vector of float) -0:13 Constant: -0:13 2 (const int) -0:13 Constant: -0:13 0 (const int) -0:13 direct index ( in float ClipDistance) -0:13 direct index ( in 4-element array of float ClipDistance) -0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) -0:13 Constant: -0:13 2 (const int) -0:13 Constant: -0:13 2 (const int) -0:13 move second child to first child ( temp float) -0:13 direct index ( temp float) -0:13 direct index ( temp 2-component vector of float) -0:? 'clip1' ( temp 3-element array of 2-component vector of float) -0:13 Constant: -0:13 2 (const int) -0:13 Constant: -0:13 1 (const int) -0:13 direct index ( in float ClipDistance) -0:13 direct index ( in 4-element array of float ClipDistance) -0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) -0:13 Constant: -0:13 2 (const int) -0:13 Constant: -0:13 3 (const int) -0:13 Function Call: @main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf2[3];vf2[3]; ( temp void) -0:? 'pos' ( temp 3-element array of 4-component vector of float) -0:? 'VertexID' ( temp 3-element array of uint) -0:? 'OutputStream' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:? 'clip0' ( temp 3-element array of 2-component vector of float) -0:? 'clip1' ( temp 3-element array of 2-component vector of float) -0:? Linker Objects -0:? 'pos' ( in 3-element array of 4-component vector of float Position) -0:? 'VertexID' (layout( location=0) in 3-element array of uint) -0:? 'OutputStream.pos' ( out 4-component vector of float Position) -0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) -0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) - - -Linked geometry stage: - - -Shader version: 500 -invocations = 1 -max_vertices = 3 -input primitive = triangles -output primitive = line_strip -0:? Sequence -0:13 Function Definition: @main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf2[3];vf2[3]; ( temp void) -0:13 Function Parameters: -0:13 'pos' ( in 3-element array of 4-component vector of float) -0:13 'VertexID' ( in 3-element array of uint) -0:13 'OutputStream' ( out structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:13 'clip0' ( in 3-element array of 2-component vector of float) -0:13 'clip1' ( in 3-element array of 2-component vector of float) -0:? Sequence -0:16 move second child to first child ( temp 4-component vector of float) -0:16 pos: direct index for structure ( temp 4-component vector of float) -0:16 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:16 Constant: -0:16 0 (const int) -0:16 direct index ( temp 4-component vector of float) -0:16 'pos' ( in 3-element array of 4-component vector of float) -0:16 Constant: -0:16 0 (const int) -0:17 move second child to first child ( temp 2-component vector of float) -0:17 clip0: direct index for structure ( temp 2-component vector of float) -0:17 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:17 Constant: -0:17 1 (const int) -0:17 direct index ( temp 2-component vector of float) -0:17 'clip0' ( in 3-element array of 2-component vector of float) -0:17 Constant: -0:17 0 (const int) -0:18 move second child to first child ( temp 2-component vector of float) -0:18 clip1: direct index for structure ( temp 2-component vector of float) -0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:18 Constant: -0:18 2 (const int) -0:18 direct index ( temp 2-component vector of float) -0:18 'clip1' ( in 3-element array of 2-component vector of float) -0:18 Constant: -0:18 0 (const int) -0:20 Sequence -0:20 Sequence -0:20 move second child to first child ( temp 4-component vector of float) -0:? 'OutputStream.pos' ( out 4-component vector of float Position) -0:20 pos: direct index for structure ( temp 4-component vector of float) -0:20 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:20 Constant: -0:20 0 (const int) -0:? Sequence -0:20 move second child to first child ( temp float) -0:20 direct index ( out float ClipDistance) -0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) -0:20 Constant: -0:20 0 (const int) -0:20 direct index ( temp float) -0:20 clip0: direct index for structure ( temp 2-component vector of float) -0:20 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 move second child to first child ( temp float) -0:20 direct index ( out float ClipDistance) -0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) -0:20 Constant: -0:20 1 (const int) -0:20 direct index ( temp float) -0:20 clip0: direct index for structure ( temp 2-component vector of float) -0:20 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 1 (const int) -0:? Sequence -0:20 move second child to first child ( temp float) -0:20 direct index ( out float ClipDistance) -0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) -0:20 Constant: -0:20 2 (const int) -0:20 direct index ( temp float) -0:20 clip1: direct index for structure ( temp 2-component vector of float) -0:20 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:20 Constant: -0:20 2 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 move second child to first child ( temp float) -0:20 direct index ( out float ClipDistance) -0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) -0:20 Constant: -0:20 3 (const int) -0:20 direct index ( temp float) -0:20 clip1: direct index for structure ( temp 2-component vector of float) -0:20 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:20 Constant: -0:20 2 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 EmitVertex ( temp void) -0:13 Function Definition: main( ( temp void) -0:13 Function Parameters: -0:? Sequence -0:13 move second child to first child ( temp 3-element array of 4-component vector of float) -0:? 'pos' ( temp 3-element array of 4-component vector of float) -0:? 'pos' ( in 3-element array of 4-component vector of float Position) -0:13 move second child to first child ( temp 3-element array of uint) -0:? 'VertexID' ( temp 3-element array of uint) -0:? 'VertexID' (layout( location=0) in 3-element array of uint) -0:? Sequence -0:13 move second child to first child ( temp float) -0:13 direct index ( temp float) -0:13 direct index ( temp 2-component vector of float) -0:? 'clip0' ( temp 3-element array of 2-component vector of float) -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 0 (const int) -0:13 direct index ( in float ClipDistance) -0:13 direct index ( in 4-element array of float ClipDistance) -0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 0 (const int) -0:13 move second child to first child ( temp float) -0:13 direct index ( temp float) -0:13 direct index ( temp 2-component vector of float) -0:? 'clip0' ( temp 3-element array of 2-component vector of float) -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 1 (const int) -0:13 direct index ( in float ClipDistance) -0:13 direct index ( in 4-element array of float ClipDistance) -0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 1 (const int) -0:13 move second child to first child ( temp float) -0:13 direct index ( temp float) -0:13 direct index ( temp 2-component vector of float) -0:? 'clip0' ( temp 3-element array of 2-component vector of float) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 0 (const int) -0:13 direct index ( in float ClipDistance) -0:13 direct index ( in 4-element array of float ClipDistance) -0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 2 (const int) -0:13 move second child to first child ( temp float) -0:13 direct index ( temp float) -0:13 direct index ( temp 2-component vector of float) -0:? 'clip0' ( temp 3-element array of 2-component vector of float) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 1 (const int) -0:13 direct index ( in float ClipDistance) -0:13 direct index ( in 4-element array of float ClipDistance) -0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 3 (const int) -0:13 move second child to first child ( temp float) -0:13 direct index ( temp float) -0:13 direct index ( temp 2-component vector of float) -0:? 'clip0' ( temp 3-element array of 2-component vector of float) -0:13 Constant: -0:13 2 (const int) -0:13 Constant: -0:13 0 (const int) -0:13 direct index ( in float ClipDistance) -0:13 direct index ( in 4-element array of float ClipDistance) -0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 0 (const int) -0:13 move second child to first child ( temp float) -0:13 direct index ( temp float) -0:13 direct index ( temp 2-component vector of float) -0:? 'clip0' ( temp 3-element array of 2-component vector of float) -0:13 Constant: -0:13 2 (const int) -0:13 Constant: -0:13 1 (const int) -0:13 direct index ( in float ClipDistance) -0:13 direct index ( in 4-element array of float ClipDistance) -0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 1 (const int) -0:? Sequence -0:13 move second child to first child ( temp float) -0:13 direct index ( temp float) -0:13 direct index ( temp 2-component vector of float) -0:? 'clip1' ( temp 3-element array of 2-component vector of float) -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 0 (const int) -0:13 direct index ( in float ClipDistance) -0:13 direct index ( in 4-element array of float ClipDistance) -0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 2 (const int) -0:13 move second child to first child ( temp float) -0:13 direct index ( temp float) -0:13 direct index ( temp 2-component vector of float) -0:? 'clip1' ( temp 3-element array of 2-component vector of float) -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 1 (const int) -0:13 direct index ( in float ClipDistance) -0:13 direct index ( in 4-element array of float ClipDistance) -0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 3 (const int) -0:13 move second child to first child ( temp float) -0:13 direct index ( temp float) -0:13 direct index ( temp 2-component vector of float) -0:? 'clip1' ( temp 3-element array of 2-component vector of float) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 0 (const int) -0:13 direct index ( in float ClipDistance) -0:13 direct index ( in 4-element array of float ClipDistance) -0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 2 (const int) -0:13 move second child to first child ( temp float) -0:13 direct index ( temp float) -0:13 direct index ( temp 2-component vector of float) -0:? 'clip1' ( temp 3-element array of 2-component vector of float) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 1 (const int) -0:13 direct index ( in float ClipDistance) -0:13 direct index ( in 4-element array of float ClipDistance) -0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 3 (const int) -0:13 move second child to first child ( temp float) -0:13 direct index ( temp float) -0:13 direct index ( temp 2-component vector of float) -0:? 'clip1' ( temp 3-element array of 2-component vector of float) -0:13 Constant: -0:13 2 (const int) -0:13 Constant: -0:13 0 (const int) -0:13 direct index ( in float ClipDistance) -0:13 direct index ( in 4-element array of float ClipDistance) -0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) -0:13 Constant: -0:13 2 (const int) -0:13 Constant: -0:13 2 (const int) -0:13 move second child to first child ( temp float) -0:13 direct index ( temp float) -0:13 direct index ( temp 2-component vector of float) -0:? 'clip1' ( temp 3-element array of 2-component vector of float) -0:13 Constant: -0:13 2 (const int) -0:13 Constant: -0:13 1 (const int) -0:13 direct index ( in float ClipDistance) -0:13 direct index ( in 4-element array of float ClipDistance) -0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) -0:13 Constant: -0:13 2 (const int) -0:13 Constant: -0:13 3 (const int) -0:13 Function Call: @main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf2[3];vf2[3]; ( temp void) -0:? 'pos' ( temp 3-element array of 4-component vector of float) -0:? 'VertexID' ( temp 3-element array of uint) -0:? 'OutputStream' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) -0:? 'clip0' ( temp 3-element array of 2-component vector of float) -0:? 'clip1' ( temp 3-element array of 2-component vector of float) -0:? Linker Objects -0:? 'pos' ( in 3-element array of 4-component vector of float Position) -0:? 'VertexID' (layout( location=0) in 3-element array of uint) -0:? 'OutputStream.pos' ( out 4-component vector of float Position) -0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) -0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 130 - - Capability Geometry - Capability ClipDistance - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Geometry 4 "main" 44 50 70 74 79 - ExecutionMode 4 Triangles - ExecutionMode 4 Invocations 1 - ExecutionMode 4 OutputLineStrip - ExecutionMode 4 OutputVertices 3 - Source HLSL 500 - Name 4 "main" - Name 15 "S" - MemberName 15(S) 0 "pos" - MemberName 15(S) 1 "clip0" - MemberName 15(S) 2 "clip1" - Name 25 "@main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf2[3];vf2[3];" - Name 20 "pos" - Name 21 "VertexID" - Name 22 "OutputStream" - Name 23 "clip0" - Name 24 "clip1" - Name 27 "s" - Name 44 "OutputStream.pos" - Name 50 "OutputStream.clip1" - Name 68 "pos" - Name 70 "pos" - Name 72 "VertexID" - Name 74 "VertexID" - Name 76 "clip0" - Name 79 "clip0" - Name 99 "clip1" - Name 118 "OutputStream" - Name 119 "param" - Name 121 "param" - Name 123 "param" - Name 124 "param" - Name 126 "param" - Decorate 44(OutputStream.pos) BuiltIn Position - Decorate 50(OutputStream.clip1) BuiltIn ClipDistance - Decorate 70(pos) BuiltIn Position - Decorate 74(VertexID) Location 0 - Decorate 79(clip0) BuiltIn ClipDistance - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeInt 32 0 - 9: 8(int) Constant 3 - 10: TypeArray 7(fvec4) 9 - 11: TypePointer Function 10 - 12: TypeArray 8(int) 9 - 13: TypePointer Function 12 - 14: TypeVector 6(float) 2 - 15(S): TypeStruct 7(fvec4) 14(fvec2) 14(fvec2) - 16: TypePointer Function 15(S) - 17: TypeArray 14(fvec2) 9 - 18: TypePointer Function 17 - 19: TypeFunction 2 11(ptr) 13(ptr) 16(ptr) 18(ptr) 18(ptr) - 28: TypeInt 32 1 - 29: 28(int) Constant 0 - 30: TypePointer Function 7(fvec4) - 34: 28(int) Constant 1 - 35: TypePointer Function 14(fvec2) - 39: 28(int) Constant 2 - 43: TypePointer Output 7(fvec4) -44(OutputStream.pos): 43(ptr) Variable Output - 47: 8(int) Constant 4 - 48: TypeArray 6(float) 47 - 49: TypePointer Output 48 -50(OutputStream.clip1): 49(ptr) Variable Output - 51: 8(int) Constant 0 - 52: TypePointer Function 6(float) - 55: TypePointer Output 6(float) - 57: 8(int) Constant 1 - 64: 28(int) Constant 3 - 69: TypePointer Input 10 - 70(pos): 69(ptr) Variable Input - 73: TypePointer Input 12 - 74(VertexID): 73(ptr) Variable Input - 77: TypeArray 48 9 - 78: TypePointer Input 77 - 79(clip0): 78(ptr) Variable Input - 80: TypePointer Input 6(float) - 4(main): 2 Function None 3 - 5: Label - 68(pos): 11(ptr) Variable Function - 72(VertexID): 13(ptr) Variable Function - 76(clip0): 18(ptr) Variable Function - 99(clip1): 18(ptr) Variable Function -118(OutputStream): 16(ptr) Variable Function - 119(param): 11(ptr) Variable Function - 121(param): 13(ptr) Variable Function - 123(param): 16(ptr) Variable Function - 124(param): 18(ptr) Variable Function - 126(param): 18(ptr) Variable Function - 71: 10 Load 70(pos) - Store 68(pos) 71 - 75: 12 Load 74(VertexID) - Store 72(VertexID) 75 - 81: 80(ptr) AccessChain 79(clip0) 29 29 - 82: 6(float) Load 81 - 83: 52(ptr) AccessChain 76(clip0) 29 51 - Store 83 82 - 84: 80(ptr) AccessChain 79(clip0) 29 34 - 85: 6(float) Load 84 - 86: 52(ptr) AccessChain 76(clip0) 29 57 - Store 86 85 - 87: 80(ptr) AccessChain 79(clip0) 29 39 - 88: 6(float) Load 87 - 89: 52(ptr) AccessChain 76(clip0) 34 51 - Store 89 88 - 90: 80(ptr) AccessChain 79(clip0) 29 64 - 91: 6(float) Load 90 - 92: 52(ptr) AccessChain 76(clip0) 34 57 - Store 92 91 - 93: 80(ptr) AccessChain 79(clip0) 34 29 - 94: 6(float) Load 93 - 95: 52(ptr) AccessChain 76(clip0) 39 51 - Store 95 94 - 96: 80(ptr) AccessChain 79(clip0) 34 34 - 97: 6(float) Load 96 - 98: 52(ptr) AccessChain 76(clip0) 39 57 - Store 98 97 - 100: 80(ptr) AccessChain 79(clip0) 29 39 - 101: 6(float) Load 100 - 102: 52(ptr) AccessChain 99(clip1) 29 51 - Store 102 101 - 103: 80(ptr) AccessChain 79(clip0) 29 64 - 104: 6(float) Load 103 - 105: 52(ptr) AccessChain 99(clip1) 29 57 - Store 105 104 - 106: 80(ptr) AccessChain 79(clip0) 34 39 - 107: 6(float) Load 106 - 108: 52(ptr) AccessChain 99(clip1) 34 51 - Store 108 107 - 109: 80(ptr) AccessChain 79(clip0) 34 64 - 110: 6(float) Load 109 - 111: 52(ptr) AccessChain 99(clip1) 34 57 - Store 111 110 - 112: 80(ptr) AccessChain 79(clip0) 39 39 - 113: 6(float) Load 112 - 114: 52(ptr) AccessChain 99(clip1) 39 51 - Store 114 113 - 115: 80(ptr) AccessChain 79(clip0) 39 64 - 116: 6(float) Load 115 - 117: 52(ptr) AccessChain 99(clip1) 39 57 - Store 117 116 - 120: 10 Load 68(pos) - Store 119(param) 120 - 122: 12 Load 72(VertexID) - Store 121(param) 122 - 125: 17 Load 76(clip0) - Store 124(param) 125 - 127: 17 Load 99(clip1) - Store 126(param) 127 - 128: 2 FunctionCall 25(@main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf2[3];vf2[3];) 119(param) 121(param) 123(param) 124(param) 126(param) - 129: 15(S) Load 123(param) - Store 118(OutputStream) 129 - Return - FunctionEnd -25(@main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf2[3];vf2[3];): 2 Function None 19 - 20(pos): 11(ptr) FunctionParameter - 21(VertexID): 13(ptr) FunctionParameter -22(OutputStream): 16(ptr) FunctionParameter - 23(clip0): 18(ptr) FunctionParameter - 24(clip1): 18(ptr) FunctionParameter - 26: Label - 27(s): 16(ptr) Variable Function - 31: 30(ptr) AccessChain 20(pos) 29 - 32: 7(fvec4) Load 31 - 33: 30(ptr) AccessChain 27(s) 29 - Store 33 32 - 36: 35(ptr) AccessChain 23(clip0) 29 - 37: 14(fvec2) Load 36 - 38: 35(ptr) AccessChain 27(s) 34 - Store 38 37 - 40: 35(ptr) AccessChain 24(clip1) 29 - 41: 14(fvec2) Load 40 - 42: 35(ptr) AccessChain 27(s) 39 - Store 42 41 - 45: 30(ptr) AccessChain 27(s) 29 - 46: 7(fvec4) Load 45 - Store 44(OutputStream.pos) 46 - 53: 52(ptr) AccessChain 27(s) 34 51 - 54: 6(float) Load 53 - 56: 55(ptr) AccessChain 50(OutputStream.clip1) 29 - Store 56 54 - 58: 52(ptr) AccessChain 27(s) 34 57 - 59: 6(float) Load 58 - 60: 55(ptr) AccessChain 50(OutputStream.clip1) 34 - Store 60 59 - 61: 52(ptr) AccessChain 27(s) 39 51 - 62: 6(float) Load 61 - 63: 55(ptr) AccessChain 50(OutputStream.clip1) 39 - Store 63 62 - 65: 52(ptr) AccessChain 27(s) 39 57 - 66: 6(float) Load 65 - 67: 55(ptr) AccessChain 50(OutputStream.clip1) 64 - Store 67 66 - EmitVertex - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.clipdistance-4.vert.out b/deps/glslang/Test/baseResults/hlsl.clipdistance-4.vert.out deleted file mode 100644 index 8e8fe6da..00000000 --- a/deps/glslang/Test/baseResults/hlsl.clipdistance-4.vert.out +++ /dev/null @@ -1,382 +0,0 @@ -hlsl.clipdistance-4.vert -Shader version: 500 -0:? Sequence -0:11 Function Definition: @main(struct-VS_INPUT-vf41; ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:11 Function Parameters: -0:11 'v' ( const (read only) structure{ temp 4-component vector of float Position}) -0:? Sequence -0:13 move second child to first child ( temp 4-component vector of float) -0:13 Position: direct index for structure ( temp 4-component vector of float) -0:13 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 0.000000 -0:13 0.000000 -0:13 0.000000 -0:13 0.000000 -0:15 move second child to first child ( temp float) -0:15 direct index ( temp float) -0:15 ClipRect: direct index for structure ( temp 4-component vector of float) -0:15 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:15 Constant: -0:15 1 (const int) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 1.000000 -0:16 move second child to first child ( temp float) -0:16 direct index ( temp float) -0:16 ClipRect: direct index for structure ( temp 4-component vector of float) -0:16 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:16 Constant: -0:16 1 (const int) -0:16 Constant: -0:16 1 (const int) -0:16 Constant: -0:16 2.000000 -0:17 move second child to first child ( temp float) -0:17 direct index ( temp float) -0:17 ClipRect: direct index for structure ( temp 4-component vector of float) -0:17 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:17 Constant: -0:17 1 (const int) -0:17 Constant: -0:17 2 (const int) -0:17 Constant: -0:17 3.000000 -0:18 move second child to first child ( temp float) -0:18 direct index ( temp float) -0:18 ClipRect: direct index for structure ( temp 4-component vector of float) -0:18 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:18 Constant: -0:18 1 (const int) -0:18 Constant: -0:18 3 (const int) -0:18 Constant: -0:18 4.000000 -0:20 Branch: Return with expression -0:20 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:11 Function Definition: main( ( temp void) -0:11 Function Parameters: -0:? Sequence -0:11 Sequence -0:11 move second child to first child ( temp 4-component vector of float) -0:11 Position: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position}) -0:11 Constant: -0:11 0 (const int) -0:? 'v.Position' (layout( location=0) in 4-component vector of float) -0:11 Sequence -0:11 move second child to first child ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:11 Function Call: @main(struct-VS_INPUT-vf41; ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:? 'v' ( temp structure{ temp 4-component vector of float Position}) -0:11 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) -0:11 Position: direct index for structure ( temp 4-component vector of float) -0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:11 Constant: -0:11 0 (const int) -0:? Sequence -0:11 move second child to first child ( temp float) -0:11 direct index ( out float ClipDistance) -0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) -0:11 Constant: -0:11 0 (const int) -0:11 direct index ( temp float) -0:11 ClipRect: direct index for structure ( temp 4-component vector of float) -0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( out float ClipDistance) -0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) -0:11 Constant: -0:11 1 (const int) -0:11 direct index ( temp float) -0:11 ClipRect: direct index for structure ( temp 4-component vector of float) -0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( out float ClipDistance) -0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) -0:11 Constant: -0:11 2 (const int) -0:11 direct index ( temp float) -0:11 ClipRect: direct index for structure ( temp 4-component vector of float) -0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 2 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( out float ClipDistance) -0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) -0:11 Constant: -0:11 3 (const int) -0:11 direct index ( temp float) -0:11 ClipRect: direct index for structure ( temp 4-component vector of float) -0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 3 (const int) -0:? Linker Objects -0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) -0:? 'v.Position' (layout( location=0) in 4-component vector of float) -0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) - - -Linked vertex stage: - - -Shader version: 500 -0:? Sequence -0:11 Function Definition: @main(struct-VS_INPUT-vf41; ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:11 Function Parameters: -0:11 'v' ( const (read only) structure{ temp 4-component vector of float Position}) -0:? Sequence -0:13 move second child to first child ( temp 4-component vector of float) -0:13 Position: direct index for structure ( temp 4-component vector of float) -0:13 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 0.000000 -0:13 0.000000 -0:13 0.000000 -0:13 0.000000 -0:15 move second child to first child ( temp float) -0:15 direct index ( temp float) -0:15 ClipRect: direct index for structure ( temp 4-component vector of float) -0:15 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:15 Constant: -0:15 1 (const int) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 1.000000 -0:16 move second child to first child ( temp float) -0:16 direct index ( temp float) -0:16 ClipRect: direct index for structure ( temp 4-component vector of float) -0:16 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:16 Constant: -0:16 1 (const int) -0:16 Constant: -0:16 1 (const int) -0:16 Constant: -0:16 2.000000 -0:17 move second child to first child ( temp float) -0:17 direct index ( temp float) -0:17 ClipRect: direct index for structure ( temp 4-component vector of float) -0:17 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:17 Constant: -0:17 1 (const int) -0:17 Constant: -0:17 2 (const int) -0:17 Constant: -0:17 3.000000 -0:18 move second child to first child ( temp float) -0:18 direct index ( temp float) -0:18 ClipRect: direct index for structure ( temp 4-component vector of float) -0:18 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:18 Constant: -0:18 1 (const int) -0:18 Constant: -0:18 3 (const int) -0:18 Constant: -0:18 4.000000 -0:20 Branch: Return with expression -0:20 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:11 Function Definition: main( ( temp void) -0:11 Function Parameters: -0:? Sequence -0:11 Sequence -0:11 move second child to first child ( temp 4-component vector of float) -0:11 Position: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position}) -0:11 Constant: -0:11 0 (const int) -0:? 'v.Position' (layout( location=0) in 4-component vector of float) -0:11 Sequence -0:11 move second child to first child ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:11 Function Call: @main(struct-VS_INPUT-vf41; ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:? 'v' ( temp structure{ temp 4-component vector of float Position}) -0:11 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) -0:11 Position: direct index for structure ( temp 4-component vector of float) -0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:11 Constant: -0:11 0 (const int) -0:? Sequence -0:11 move second child to first child ( temp float) -0:11 direct index ( out float ClipDistance) -0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) -0:11 Constant: -0:11 0 (const int) -0:11 direct index ( temp float) -0:11 ClipRect: direct index for structure ( temp 4-component vector of float) -0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( out float ClipDistance) -0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) -0:11 Constant: -0:11 1 (const int) -0:11 direct index ( temp float) -0:11 ClipRect: direct index for structure ( temp 4-component vector of float) -0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( out float ClipDistance) -0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) -0:11 Constant: -0:11 2 (const int) -0:11 direct index ( temp float) -0:11 ClipRect: direct index for structure ( temp 4-component vector of float) -0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 2 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( out float ClipDistance) -0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) -0:11 Constant: -0:11 3 (const int) -0:11 direct index ( temp float) -0:11 ClipRect: direct index for structure ( temp 4-component vector of float) -0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 3 (const int) -0:? Linker Objects -0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) -0:? 'v.Position' (layout( location=0) in 4-component vector of float) -0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 72 - - Capability Shader - Capability ClipDistance - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 43 50 56 - Source HLSL 500 - Name 4 "main" - Name 8 "VS_INPUT" - MemberName 8(VS_INPUT) 0 "Position" - Name 9 "VS_OUTPUT" - MemberName 9(VS_OUTPUT) 0 "Position" - MemberName 9(VS_OUTPUT) 1 "ClipRect" - Name 12 "@main(struct-VS_INPUT-vf41;" - Name 11 "v" - Name 15 "Output" - Name 41 "v" - Name 43 "v.Position" - Name 46 "flattenTemp" - Name 50 "@entryPointOutput.Position" - Name 56 "@entryPointOutput.ClipRect" - Decorate 43(v.Position) Location 0 - Decorate 50(@entryPointOutput.Position) BuiltIn Position - Decorate 56(@entryPointOutput.ClipRect) BuiltIn ClipDistance - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8(VS_INPUT): TypeStruct 7(fvec4) - 9(VS_OUTPUT): TypeStruct 7(fvec4) 7(fvec4) - 10: TypeFunction 9(VS_OUTPUT) 8(VS_INPUT) - 14: TypePointer Function 9(VS_OUTPUT) - 16: TypeInt 32 1 - 17: 16(int) Constant 0 - 18: 6(float) Constant 0 - 19: 7(fvec4) ConstantComposite 18 18 18 18 - 20: TypePointer Function 7(fvec4) - 22: 16(int) Constant 1 - 23: 6(float) Constant 1065353216 - 24: TypeInt 32 0 - 25: 24(int) Constant 0 - 26: TypePointer Function 6(float) - 28: 6(float) Constant 1073741824 - 29: 24(int) Constant 1 - 31: 6(float) Constant 1077936128 - 32: 24(int) Constant 2 - 34: 6(float) Constant 1082130432 - 35: 24(int) Constant 3 - 40: TypePointer Function 8(VS_INPUT) - 42: TypePointer Input 7(fvec4) - 43(v.Position): 42(ptr) Variable Input - 49: TypePointer Output 7(fvec4) -50(@entryPointOutput.Position): 49(ptr) Variable Output - 53: 24(int) Constant 4 - 54: TypeArray 6(float) 53 - 55: TypePointer Output 54 -56(@entryPointOutput.ClipRect): 55(ptr) Variable Output - 59: TypePointer Output 6(float) - 64: 16(int) Constant 2 - 68: 16(int) Constant 3 - 4(main): 2 Function None 3 - 5: Label - 41(v): 40(ptr) Variable Function - 46(flattenTemp): 14(ptr) Variable Function - 44: 7(fvec4) Load 43(v.Position) - 45: 20(ptr) AccessChain 41(v) 17 - Store 45 44 - 47: 8(VS_INPUT) Load 41(v) - 48:9(VS_OUTPUT) FunctionCall 12(@main(struct-VS_INPUT-vf41;) 47 - Store 46(flattenTemp) 48 - 51: 20(ptr) AccessChain 46(flattenTemp) 17 - 52: 7(fvec4) Load 51 - Store 50(@entryPointOutput.Position) 52 - 57: 26(ptr) AccessChain 46(flattenTemp) 22 25 - 58: 6(float) Load 57 - 60: 59(ptr) AccessChain 56(@entryPointOutput.ClipRect) 17 - Store 60 58 - 61: 26(ptr) AccessChain 46(flattenTemp) 22 29 - 62: 6(float) Load 61 - 63: 59(ptr) AccessChain 56(@entryPointOutput.ClipRect) 22 - Store 63 62 - 65: 26(ptr) AccessChain 46(flattenTemp) 22 32 - 66: 6(float) Load 65 - 67: 59(ptr) AccessChain 56(@entryPointOutput.ClipRect) 64 - Store 67 66 - 69: 26(ptr) AccessChain 46(flattenTemp) 22 35 - 70: 6(float) Load 69 - 71: 59(ptr) AccessChain 56(@entryPointOutput.ClipRect) 68 - Store 71 70 - Return - FunctionEnd -12(@main(struct-VS_INPUT-vf41;):9(VS_OUTPUT) Function None 10 - 11(v): 8(VS_INPUT) FunctionParameter - 13: Label - 15(Output): 14(ptr) Variable Function - 21: 20(ptr) AccessChain 15(Output) 17 - Store 21 19 - 27: 26(ptr) AccessChain 15(Output) 22 25 - Store 27 23 - 30: 26(ptr) AccessChain 15(Output) 22 29 - Store 30 28 - 33: 26(ptr) AccessChain 15(Output) 22 32 - Store 33 31 - 36: 26(ptr) AccessChain 15(Output) 22 35 - Store 36 34 - 37:9(VS_OUTPUT) Load 15(Output) - ReturnValue 37 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.clipdistance-5.frag.out b/deps/glslang/Test/baseResults/hlsl.clipdistance-5.frag.out deleted file mode 100644 index ab366e54..00000000 --- a/deps/glslang/Test/baseResults/hlsl.clipdistance-5.frag.out +++ /dev/null @@ -1,325 +0,0 @@ -hlsl.clipdistance-5.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:7 Function Definition: @main(struct-VS_OUTPUT-vf4-vf2[2]1; ( temp 4-component vector of float) -0:7 Function Parameters: -0:7 'v' ( const (read only) structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:? Sequence -0:8 Branch: Return with expression -0:8 add ( temp 4-component vector of float) -0:8 add ( temp 4-component vector of float) -0:8 Position: direct index for structure ( temp 4-component vector of float) -0:8 'v' ( const (read only) structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:8 Constant: -0:8 0 (const int) -0:8 direct index ( temp float) -0:8 direct index ( temp 2-component vector of float) -0:8 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) -0:8 'v' ( const (read only) structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 0 (const int) -0:8 Constant: -0:8 0 (const int) -0:8 direct index ( temp float) -0:8 direct index ( temp 2-component vector of float) -0:8 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) -0:8 'v' ( const (read only) structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 0 (const int) -0:7 Function Definition: main( ( temp void) -0:7 Function Parameters: -0:? Sequence -0:7 Sequence -0:7 move second child to first child ( temp 4-component vector of float) -0:7 Position: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:7 Constant: -0:7 0 (const int) -0:? 'v.Position' ( in 4-component vector of float FragCoord) -0:? Sequence -0:7 move second child to first child ( temp float) -0:7 direct index ( temp float) -0:7 direct index ( temp 2-component vector of float) -0:7 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:7 Constant: -0:7 1 (const int) -0:7 Constant: -0:7 0 (const int) -0:7 Constant: -0:7 0 (const int) -0:7 direct index ( in float ClipDistance) -0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) -0:7 Constant: -0:7 0 (const int) -0:7 move second child to first child ( temp float) -0:7 direct index ( temp float) -0:7 direct index ( temp 2-component vector of float) -0:7 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:7 Constant: -0:7 1 (const int) -0:7 Constant: -0:7 0 (const int) -0:7 Constant: -0:7 1 (const int) -0:7 direct index ( in float ClipDistance) -0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) -0:7 Constant: -0:7 1 (const int) -0:7 move second child to first child ( temp float) -0:7 direct index ( temp float) -0:7 direct index ( temp 2-component vector of float) -0:7 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:7 Constant: -0:7 1 (const int) -0:7 Constant: -0:7 1 (const int) -0:7 Constant: -0:7 0 (const int) -0:7 direct index ( in float ClipDistance) -0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) -0:7 Constant: -0:7 2 (const int) -0:7 move second child to first child ( temp float) -0:7 direct index ( temp float) -0:7 direct index ( temp 2-component vector of float) -0:7 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:7 Constant: -0:7 1 (const int) -0:7 Constant: -0:7 1 (const int) -0:7 Constant: -0:7 1 (const int) -0:7 direct index ( in float ClipDistance) -0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) -0:7 Constant: -0:7 3 (const int) -0:7 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:7 Function Call: @main(struct-VS_OUTPUT-vf4-vf2[2]1; ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'v.Position' ( in 4-component vector of float FragCoord) -0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:7 Function Definition: @main(struct-VS_OUTPUT-vf4-vf2[2]1; ( temp 4-component vector of float) -0:7 Function Parameters: -0:7 'v' ( const (read only) structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:? Sequence -0:8 Branch: Return with expression -0:8 add ( temp 4-component vector of float) -0:8 add ( temp 4-component vector of float) -0:8 Position: direct index for structure ( temp 4-component vector of float) -0:8 'v' ( const (read only) structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:8 Constant: -0:8 0 (const int) -0:8 direct index ( temp float) -0:8 direct index ( temp 2-component vector of float) -0:8 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) -0:8 'v' ( const (read only) structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 0 (const int) -0:8 Constant: -0:8 0 (const int) -0:8 direct index ( temp float) -0:8 direct index ( temp 2-component vector of float) -0:8 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) -0:8 'v' ( const (read only) structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 0 (const int) -0:7 Function Definition: main( ( temp void) -0:7 Function Parameters: -0:? Sequence -0:7 Sequence -0:7 move second child to first child ( temp 4-component vector of float) -0:7 Position: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:7 Constant: -0:7 0 (const int) -0:? 'v.Position' ( in 4-component vector of float FragCoord) -0:? Sequence -0:7 move second child to first child ( temp float) -0:7 direct index ( temp float) -0:7 direct index ( temp 2-component vector of float) -0:7 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:7 Constant: -0:7 1 (const int) -0:7 Constant: -0:7 0 (const int) -0:7 Constant: -0:7 0 (const int) -0:7 direct index ( in float ClipDistance) -0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) -0:7 Constant: -0:7 0 (const int) -0:7 move second child to first child ( temp float) -0:7 direct index ( temp float) -0:7 direct index ( temp 2-component vector of float) -0:7 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:7 Constant: -0:7 1 (const int) -0:7 Constant: -0:7 0 (const int) -0:7 Constant: -0:7 1 (const int) -0:7 direct index ( in float ClipDistance) -0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) -0:7 Constant: -0:7 1 (const int) -0:7 move second child to first child ( temp float) -0:7 direct index ( temp float) -0:7 direct index ( temp 2-component vector of float) -0:7 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:7 Constant: -0:7 1 (const int) -0:7 Constant: -0:7 1 (const int) -0:7 Constant: -0:7 0 (const int) -0:7 direct index ( in float ClipDistance) -0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) -0:7 Constant: -0:7 2 (const int) -0:7 move second child to first child ( temp float) -0:7 direct index ( temp float) -0:7 direct index ( temp 2-component vector of float) -0:7 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:7 Constant: -0:7 1 (const int) -0:7 Constant: -0:7 1 (const int) -0:7 Constant: -0:7 1 (const int) -0:7 direct index ( in float ClipDistance) -0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) -0:7 Constant: -0:7 3 (const int) -0:7 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:7 Function Call: @main(struct-VS_OUTPUT-vf4-vf2[2]1; ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'v.Position' ( in 4-component vector of float FragCoord) -0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 62 - - Capability Shader - Capability ClipDistance - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 33 40 59 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 12 "VS_OUTPUT" - MemberName 12(VS_OUTPUT) 0 "Position" - MemberName 12(VS_OUTPUT) 1 "ClipRect" - Name 15 "@main(struct-VS_OUTPUT-vf4-vf2[2]1;" - Name 14 "v" - Name 31 "v" - Name 33 "v.Position" - Name 40 "v.ClipRect" - Name 59 "@entryPointOutput" - Decorate 33(v.Position) BuiltIn FragCoord - Decorate 40(v.ClipRect) BuiltIn ClipDistance - Decorate 59(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeVector 6(float) 2 - 9: TypeInt 32 0 - 10: 9(int) Constant 2 - 11: TypeArray 8(fvec2) 10 - 12(VS_OUTPUT): TypeStruct 7(fvec4) 11 - 13: TypeFunction 7(fvec4) 12(VS_OUTPUT) - 17: TypeInt 32 1 - 18: 17(int) Constant 0 - 20: 17(int) Constant 1 - 21: 9(int) Constant 0 - 30: TypePointer Function 12(VS_OUTPUT) - 32: TypePointer Input 7(fvec4) - 33(v.Position): 32(ptr) Variable Input - 35: TypePointer Function 7(fvec4) - 37: 9(int) Constant 4 - 38: TypeArray 6(float) 37 - 39: TypePointer Input 38 - 40(v.ClipRect): 39(ptr) Variable Input - 41: TypePointer Input 6(float) - 44: TypePointer Function 6(float) - 48: 9(int) Constant 1 - 50: 17(int) Constant 2 - 54: 17(int) Constant 3 - 58: TypePointer Output 7(fvec4) -59(@entryPointOutput): 58(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 31(v): 30(ptr) Variable Function - 34: 7(fvec4) Load 33(v.Position) - 36: 35(ptr) AccessChain 31(v) 18 - Store 36 34 - 42: 41(ptr) AccessChain 40(v.ClipRect) 18 - 43: 6(float) Load 42 - 45: 44(ptr) AccessChain 31(v) 20 18 21 - Store 45 43 - 46: 41(ptr) AccessChain 40(v.ClipRect) 20 - 47: 6(float) Load 46 - 49: 44(ptr) AccessChain 31(v) 20 18 48 - Store 49 47 - 51: 41(ptr) AccessChain 40(v.ClipRect) 50 - 52: 6(float) Load 51 - 53: 44(ptr) AccessChain 31(v) 20 20 21 - Store 53 52 - 55: 41(ptr) AccessChain 40(v.ClipRect) 54 - 56: 6(float) Load 55 - 57: 44(ptr) AccessChain 31(v) 20 20 48 - Store 57 56 - 60:12(VS_OUTPUT) Load 31(v) - 61: 7(fvec4) FunctionCall 15(@main(struct-VS_OUTPUT-vf4-vf2[2]1;) 60 - Store 59(@entryPointOutput) 61 - Return - FunctionEnd -15(@main(struct-VS_OUTPUT-vf4-vf2[2]1;): 7(fvec4) Function None 13 - 14(v):12(VS_OUTPUT) FunctionParameter - 16: Label - 19: 7(fvec4) CompositeExtract 14(v) 0 - 22: 6(float) CompositeExtract 14(v) 1 0 0 - 23: 7(fvec4) CompositeConstruct 22 22 22 22 - 24: 7(fvec4) FAdd 19 23 - 25: 6(float) CompositeExtract 14(v) 1 1 0 - 26: 7(fvec4) CompositeConstruct 25 25 25 25 - 27: 7(fvec4) FAdd 24 26 - ReturnValue 27 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.clipdistance-5.vert.out b/deps/glslang/Test/baseResults/hlsl.clipdistance-5.vert.out deleted file mode 100644 index 6dbe0a66..00000000 --- a/deps/glslang/Test/baseResults/hlsl.clipdistance-5.vert.out +++ /dev/null @@ -1,431 +0,0 @@ -hlsl.clipdistance-5.vert -Shader version: 500 -0:? Sequence -0:11 Function Definition: @main(struct-VS_INPUT-vf41; ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:11 Function Parameters: -0:11 'v' ( const (read only) structure{ temp 4-component vector of float Position}) -0:? Sequence -0:13 move second child to first child ( temp 4-component vector of float) -0:13 Position: direct index for structure ( temp 4-component vector of float) -0:13 'Output' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 0.000000 -0:13 0.000000 -0:13 0.000000 -0:13 0.000000 -0:15 move second child to first child ( temp float) -0:15 direct index ( temp float) -0:15 direct index ( temp 2-component vector of float) -0:15 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) -0:15 'Output' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:15 Constant: -0:15 1 (const int) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 1.000000 -0:16 move second child to first child ( temp float) -0:16 direct index ( temp float) -0:16 direct index ( temp 2-component vector of float) -0:16 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) -0:16 'Output' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:16 Constant: -0:16 1 (const int) -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 1 (const int) -0:16 Constant: -0:16 2.000000 -0:17 move second child to first child ( temp float) -0:17 direct index ( temp float) -0:17 direct index ( temp 2-component vector of float) -0:17 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) -0:17 'Output' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:17 Constant: -0:17 1 (const int) -0:17 Constant: -0:17 1 (const int) -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 3.000000 -0:18 move second child to first child ( temp float) -0:18 direct index ( temp float) -0:18 direct index ( temp 2-component vector of float) -0:18 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) -0:18 'Output' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:18 Constant: -0:18 1 (const int) -0:18 Constant: -0:18 1 (const int) -0:18 Constant: -0:18 1 (const int) -0:18 Constant: -0:18 4.000000 -0:20 Branch: Return with expression -0:20 'Output' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:11 Function Definition: main( ( temp void) -0:11 Function Parameters: -0:? Sequence -0:11 Sequence -0:11 move second child to first child ( temp 4-component vector of float) -0:11 Position: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position}) -0:11 Constant: -0:11 0 (const int) -0:? 'v.Position' (layout( location=0) in 4-component vector of float) -0:11 Sequence -0:11 move second child to first child ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:11 Function Call: @main(struct-VS_INPUT-vf41; ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:? 'v' ( temp structure{ temp 4-component vector of float Position}) -0:11 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) -0:11 Position: direct index for structure ( temp 4-component vector of float) -0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:11 Constant: -0:11 0 (const int) -0:? Sequence -0:11 move second child to first child ( temp float) -0:11 direct index ( out float ClipDistance) -0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) -0:11 Constant: -0:11 0 (const int) -0:11 direct index ( temp float) -0:11 direct index ( temp 2-component vector of float) -0:11 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) -0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( out float ClipDistance) -0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) -0:11 Constant: -0:11 1 (const int) -0:11 direct index ( temp float) -0:11 direct index ( temp 2-component vector of float) -0:11 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) -0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( out float ClipDistance) -0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) -0:11 Constant: -0:11 2 (const int) -0:11 direct index ( temp float) -0:11 direct index ( temp 2-component vector of float) -0:11 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) -0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( out float ClipDistance) -0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) -0:11 Constant: -0:11 3 (const int) -0:11 direct index ( temp float) -0:11 direct index ( temp 2-component vector of float) -0:11 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) -0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 1 (const int) -0:? Linker Objects -0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) -0:? 'v.Position' (layout( location=0) in 4-component vector of float) -0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) - - -Linked vertex stage: - - -Shader version: 500 -0:? Sequence -0:11 Function Definition: @main(struct-VS_INPUT-vf41; ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:11 Function Parameters: -0:11 'v' ( const (read only) structure{ temp 4-component vector of float Position}) -0:? Sequence -0:13 move second child to first child ( temp 4-component vector of float) -0:13 Position: direct index for structure ( temp 4-component vector of float) -0:13 'Output' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 0.000000 -0:13 0.000000 -0:13 0.000000 -0:13 0.000000 -0:15 move second child to first child ( temp float) -0:15 direct index ( temp float) -0:15 direct index ( temp 2-component vector of float) -0:15 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) -0:15 'Output' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:15 Constant: -0:15 1 (const int) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 1.000000 -0:16 move second child to first child ( temp float) -0:16 direct index ( temp float) -0:16 direct index ( temp 2-component vector of float) -0:16 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) -0:16 'Output' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:16 Constant: -0:16 1 (const int) -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 1 (const int) -0:16 Constant: -0:16 2.000000 -0:17 move second child to first child ( temp float) -0:17 direct index ( temp float) -0:17 direct index ( temp 2-component vector of float) -0:17 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) -0:17 'Output' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:17 Constant: -0:17 1 (const int) -0:17 Constant: -0:17 1 (const int) -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 3.000000 -0:18 move second child to first child ( temp float) -0:18 direct index ( temp float) -0:18 direct index ( temp 2-component vector of float) -0:18 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) -0:18 'Output' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:18 Constant: -0:18 1 (const int) -0:18 Constant: -0:18 1 (const int) -0:18 Constant: -0:18 1 (const int) -0:18 Constant: -0:18 4.000000 -0:20 Branch: Return with expression -0:20 'Output' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:11 Function Definition: main( ( temp void) -0:11 Function Parameters: -0:? Sequence -0:11 Sequence -0:11 move second child to first child ( temp 4-component vector of float) -0:11 Position: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position}) -0:11 Constant: -0:11 0 (const int) -0:? 'v.Position' (layout( location=0) in 4-component vector of float) -0:11 Sequence -0:11 move second child to first child ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:11 Function Call: @main(struct-VS_INPUT-vf41; ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:? 'v' ( temp structure{ temp 4-component vector of float Position}) -0:11 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) -0:11 Position: direct index for structure ( temp 4-component vector of float) -0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:11 Constant: -0:11 0 (const int) -0:? Sequence -0:11 move second child to first child ( temp float) -0:11 direct index ( out float ClipDistance) -0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) -0:11 Constant: -0:11 0 (const int) -0:11 direct index ( temp float) -0:11 direct index ( temp 2-component vector of float) -0:11 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) -0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( out float ClipDistance) -0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) -0:11 Constant: -0:11 1 (const int) -0:11 direct index ( temp float) -0:11 direct index ( temp 2-component vector of float) -0:11 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) -0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( out float ClipDistance) -0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) -0:11 Constant: -0:11 2 (const int) -0:11 direct index ( temp float) -0:11 direct index ( temp 2-component vector of float) -0:11 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) -0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( out float ClipDistance) -0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) -0:11 Constant: -0:11 3 (const int) -0:11 direct index ( temp float) -0:11 direct index ( temp 2-component vector of float) -0:11 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) -0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 1 (const int) -0:? Linker Objects -0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) -0:? 'v.Position' (layout( location=0) in 4-component vector of float) -0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 73 - - Capability Shader - Capability ClipDistance - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 44 51 57 - Source HLSL 500 - Name 4 "main" - Name 8 "VS_INPUT" - MemberName 8(VS_INPUT) 0 "Position" - Name 13 "VS_OUTPUT" - MemberName 13(VS_OUTPUT) 0 "Position" - MemberName 13(VS_OUTPUT) 1 "ClipRect" - Name 16 "@main(struct-VS_INPUT-vf41;" - Name 15 "v" - Name 19 "Output" - Name 42 "v" - Name 44 "v.Position" - Name 47 "flattenTemp" - Name 51 "@entryPointOutput.Position" - Name 57 "@entryPointOutput.ClipRect" - Decorate 44(v.Position) Location 0 - Decorate 51(@entryPointOutput.Position) BuiltIn Position - Decorate 57(@entryPointOutput.ClipRect) BuiltIn ClipDistance - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8(VS_INPUT): TypeStruct 7(fvec4) - 9: TypeVector 6(float) 2 - 10: TypeInt 32 0 - 11: 10(int) Constant 2 - 12: TypeArray 9(fvec2) 11 - 13(VS_OUTPUT): TypeStruct 7(fvec4) 12 - 14: TypeFunction 13(VS_OUTPUT) 8(VS_INPUT) - 18: TypePointer Function 13(VS_OUTPUT) - 20: TypeInt 32 1 - 21: 20(int) Constant 0 - 22: 6(float) Constant 0 - 23: 7(fvec4) ConstantComposite 22 22 22 22 - 24: TypePointer Function 7(fvec4) - 26: 20(int) Constant 1 - 27: 6(float) Constant 1065353216 - 28: 10(int) Constant 0 - 29: TypePointer Function 6(float) - 31: 6(float) Constant 1073741824 - 32: 10(int) Constant 1 - 34: 6(float) Constant 1077936128 - 36: 6(float) Constant 1082130432 - 41: TypePointer Function 8(VS_INPUT) - 43: TypePointer Input 7(fvec4) - 44(v.Position): 43(ptr) Variable Input - 50: TypePointer Output 7(fvec4) -51(@entryPointOutput.Position): 50(ptr) Variable Output - 54: 10(int) Constant 4 - 55: TypeArray 6(float) 54 - 56: TypePointer Output 55 -57(@entryPointOutput.ClipRect): 56(ptr) Variable Output - 60: TypePointer Output 6(float) - 65: 20(int) Constant 2 - 69: 20(int) Constant 3 - 4(main): 2 Function None 3 - 5: Label - 42(v): 41(ptr) Variable Function - 47(flattenTemp): 18(ptr) Variable Function - 45: 7(fvec4) Load 44(v.Position) - 46: 24(ptr) AccessChain 42(v) 21 - Store 46 45 - 48: 8(VS_INPUT) Load 42(v) - 49:13(VS_OUTPUT) FunctionCall 16(@main(struct-VS_INPUT-vf41;) 48 - Store 47(flattenTemp) 49 - 52: 24(ptr) AccessChain 47(flattenTemp) 21 - 53: 7(fvec4) Load 52 - Store 51(@entryPointOutput.Position) 53 - 58: 29(ptr) AccessChain 47(flattenTemp) 26 21 28 - 59: 6(float) Load 58 - 61: 60(ptr) AccessChain 57(@entryPointOutput.ClipRect) 21 - Store 61 59 - 62: 29(ptr) AccessChain 47(flattenTemp) 26 21 32 - 63: 6(float) Load 62 - 64: 60(ptr) AccessChain 57(@entryPointOutput.ClipRect) 26 - Store 64 63 - 66: 29(ptr) AccessChain 47(flattenTemp) 26 26 28 - 67: 6(float) Load 66 - 68: 60(ptr) AccessChain 57(@entryPointOutput.ClipRect) 65 - Store 68 67 - 70: 29(ptr) AccessChain 47(flattenTemp) 26 26 32 - 71: 6(float) Load 70 - 72: 60(ptr) AccessChain 57(@entryPointOutput.ClipRect) 69 - Store 72 71 - Return - FunctionEnd -16(@main(struct-VS_INPUT-vf41;):13(VS_OUTPUT) Function None 14 - 15(v): 8(VS_INPUT) FunctionParameter - 17: Label - 19(Output): 18(ptr) Variable Function - 25: 24(ptr) AccessChain 19(Output) 21 - Store 25 23 - 30: 29(ptr) AccessChain 19(Output) 26 21 28 - Store 30 27 - 33: 29(ptr) AccessChain 19(Output) 26 21 32 - Store 33 31 - 35: 29(ptr) AccessChain 19(Output) 26 26 28 - Store 35 34 - 37: 29(ptr) AccessChain 19(Output) 26 26 32 - Store 37 36 - 38:13(VS_OUTPUT) Load 19(Output) - ReturnValue 38 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.clipdistance-6.frag.out b/deps/glslang/Test/baseResults/hlsl.clipdistance-6.frag.out deleted file mode 100644 index 770f990b..00000000 --- a/deps/glslang/Test/baseResults/hlsl.clipdistance-6.frag.out +++ /dev/null @@ -1,399 +0,0 @@ -hlsl.clipdistance-6.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:8 Function Definition: @main(struct-VS_OUTPUT-vf4-vf4-vf41; ( temp 4-component vector of float) -0:8 Function Parameters: -0:8 'v' ( in structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:? Sequence -0:9 Branch: Return with expression -0:9 add ( temp 4-component vector of float) -0:9 add ( temp 4-component vector of float) -0:9 Position: direct index for structure ( temp 4-component vector of float) -0:9 'v' ( in structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:9 Constant: -0:9 0 (const int) -0:9 clip0: direct index for structure ( temp 4-component vector of float) -0:9 'v' ( in structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:9 Constant: -0:9 1 (const int) -0:9 clip1: direct index for structure ( temp 4-component vector of float) -0:9 'v' ( in structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:9 Constant: -0:9 2 (const int) -0:8 Function Definition: main( ( temp void) -0:8 Function Parameters: -0:? Sequence -0:8 Sequence -0:8 move second child to first child ( temp 4-component vector of float) -0:8 Position: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 0 (const int) -0:? 'v.Position' ( in 4-component vector of float FragCoord) -0:? Sequence -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 0 (const int) -0:8 direct index ( in float ClipDistance) -0:? 'v.clip1' ( in 8-element array of float ClipDistance) -0:8 Constant: -0:8 0 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 1 (const int) -0:8 direct index ( in float ClipDistance) -0:? 'v.clip1' ( in 8-element array of float ClipDistance) -0:8 Constant: -0:8 1 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 2 (const int) -0:8 direct index ( in float ClipDistance) -0:? 'v.clip1' ( in 8-element array of float ClipDistance) -0:8 Constant: -0:8 2 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 3 (const int) -0:8 direct index ( in float ClipDistance) -0:? 'v.clip1' ( in 8-element array of float ClipDistance) -0:8 Constant: -0:8 3 (const int) -0:? Sequence -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 clip1: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 0 (const int) -0:8 direct index ( in float ClipDistance) -0:? 'v.clip1' ( in 8-element array of float ClipDistance) -0:8 Constant: -0:8 4 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 clip1: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 1 (const int) -0:8 direct index ( in float ClipDistance) -0:? 'v.clip1' ( in 8-element array of float ClipDistance) -0:8 Constant: -0:8 5 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 clip1: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 2 (const int) -0:8 direct index ( in float ClipDistance) -0:? 'v.clip1' ( in 8-element array of float ClipDistance) -0:8 Constant: -0:8 6 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 clip1: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 3 (const int) -0:8 direct index ( in float ClipDistance) -0:? 'v.clip1' ( in 8-element array of float ClipDistance) -0:8 Constant: -0:8 7 (const int) -0:8 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:8 Function Call: @main(struct-VS_OUTPUT-vf4-vf4-vf41; ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'v.Position' ( in 4-component vector of float FragCoord) -0:? 'v.clip1' ( in 8-element array of float ClipDistance) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:8 Function Definition: @main(struct-VS_OUTPUT-vf4-vf4-vf41; ( temp 4-component vector of float) -0:8 Function Parameters: -0:8 'v' ( in structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:? Sequence -0:9 Branch: Return with expression -0:9 add ( temp 4-component vector of float) -0:9 add ( temp 4-component vector of float) -0:9 Position: direct index for structure ( temp 4-component vector of float) -0:9 'v' ( in structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:9 Constant: -0:9 0 (const int) -0:9 clip0: direct index for structure ( temp 4-component vector of float) -0:9 'v' ( in structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:9 Constant: -0:9 1 (const int) -0:9 clip1: direct index for structure ( temp 4-component vector of float) -0:9 'v' ( in structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:9 Constant: -0:9 2 (const int) -0:8 Function Definition: main( ( temp void) -0:8 Function Parameters: -0:? Sequence -0:8 Sequence -0:8 move second child to first child ( temp 4-component vector of float) -0:8 Position: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 0 (const int) -0:? 'v.Position' ( in 4-component vector of float FragCoord) -0:? Sequence -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 0 (const int) -0:8 direct index ( in float ClipDistance) -0:? 'v.clip1' ( in 8-element array of float ClipDistance) -0:8 Constant: -0:8 0 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 1 (const int) -0:8 direct index ( in float ClipDistance) -0:? 'v.clip1' ( in 8-element array of float ClipDistance) -0:8 Constant: -0:8 1 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 2 (const int) -0:8 direct index ( in float ClipDistance) -0:? 'v.clip1' ( in 8-element array of float ClipDistance) -0:8 Constant: -0:8 2 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 3 (const int) -0:8 direct index ( in float ClipDistance) -0:? 'v.clip1' ( in 8-element array of float ClipDistance) -0:8 Constant: -0:8 3 (const int) -0:? Sequence -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 clip1: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 0 (const int) -0:8 direct index ( in float ClipDistance) -0:? 'v.clip1' ( in 8-element array of float ClipDistance) -0:8 Constant: -0:8 4 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 clip1: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 1 (const int) -0:8 direct index ( in float ClipDistance) -0:? 'v.clip1' ( in 8-element array of float ClipDistance) -0:8 Constant: -0:8 5 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 clip1: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 2 (const int) -0:8 direct index ( in float ClipDistance) -0:? 'v.clip1' ( in 8-element array of float ClipDistance) -0:8 Constant: -0:8 6 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 clip1: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 3 (const int) -0:8 direct index ( in float ClipDistance) -0:? 'v.clip1' ( in 8-element array of float ClipDistance) -0:8 Constant: -0:8 7 (const int) -0:8 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:8 Function Call: @main(struct-VS_OUTPUT-vf4-vf4-vf41; ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'v.Position' ( in 4-component vector of float FragCoord) -0:? 'v.clip1' ( in 8-element array of float ClipDistance) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 79 - - Capability Shader - Capability ClipDistance - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 31 38 75 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 8 "VS_OUTPUT" - MemberName 8(VS_OUTPUT) 0 "Position" - MemberName 8(VS_OUTPUT) 1 "clip0" - MemberName 8(VS_OUTPUT) 2 "clip1" - Name 12 "@main(struct-VS_OUTPUT-vf4-vf4-vf41;" - Name 11 "v" - Name 29 "v" - Name 31 "v.Position" - Name 38 "v.clip1" - Name 75 "@entryPointOutput" - Name 76 "param" - Decorate 31(v.Position) BuiltIn FragCoord - Decorate 38(v.clip1) BuiltIn ClipDistance - Decorate 75(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8(VS_OUTPUT): TypeStruct 7(fvec4) 7(fvec4) 7(fvec4) - 9: TypePointer Function 8(VS_OUTPUT) - 10: TypeFunction 7(fvec4) 9(ptr) - 14: TypeInt 32 1 - 15: 14(int) Constant 0 - 16: TypePointer Function 7(fvec4) - 19: 14(int) Constant 1 - 23: 14(int) Constant 2 - 30: TypePointer Input 7(fvec4) - 31(v.Position): 30(ptr) Variable Input - 34: TypeInt 32 0 - 35: 34(int) Constant 8 - 36: TypeArray 6(float) 35 - 37: TypePointer Input 36 - 38(v.clip1): 37(ptr) Variable Input - 39: TypePointer Input 6(float) - 42: 34(int) Constant 0 - 43: TypePointer Function 6(float) - 47: 34(int) Constant 1 - 51: 34(int) Constant 2 - 53: 14(int) Constant 3 - 56: 34(int) Constant 3 - 58: 14(int) Constant 4 - 62: 14(int) Constant 5 - 66: 14(int) Constant 6 - 70: 14(int) Constant 7 - 74: TypePointer Output 7(fvec4) -75(@entryPointOutput): 74(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 29(v): 9(ptr) Variable Function - 76(param): 9(ptr) Variable Function - 32: 7(fvec4) Load 31(v.Position) - 33: 16(ptr) AccessChain 29(v) 15 - Store 33 32 - 40: 39(ptr) AccessChain 38(v.clip1) 15 - 41: 6(float) Load 40 - 44: 43(ptr) AccessChain 29(v) 19 42 - Store 44 41 - 45: 39(ptr) AccessChain 38(v.clip1) 19 - 46: 6(float) Load 45 - 48: 43(ptr) AccessChain 29(v) 19 47 - Store 48 46 - 49: 39(ptr) AccessChain 38(v.clip1) 23 - 50: 6(float) Load 49 - 52: 43(ptr) AccessChain 29(v) 19 51 - Store 52 50 - 54: 39(ptr) AccessChain 38(v.clip1) 53 - 55: 6(float) Load 54 - 57: 43(ptr) AccessChain 29(v) 19 56 - Store 57 55 - 59: 39(ptr) AccessChain 38(v.clip1) 58 - 60: 6(float) Load 59 - 61: 43(ptr) AccessChain 29(v) 23 42 - Store 61 60 - 63: 39(ptr) AccessChain 38(v.clip1) 62 - 64: 6(float) Load 63 - 65: 43(ptr) AccessChain 29(v) 23 47 - Store 65 64 - 67: 39(ptr) AccessChain 38(v.clip1) 66 - 68: 6(float) Load 67 - 69: 43(ptr) AccessChain 29(v) 23 51 - Store 69 68 - 71: 39(ptr) AccessChain 38(v.clip1) 70 - 72: 6(float) Load 71 - 73: 43(ptr) AccessChain 29(v) 23 56 - Store 73 72 - 77:8(VS_OUTPUT) Load 29(v) - Store 76(param) 77 - 78: 7(fvec4) FunctionCall 12(@main(struct-VS_OUTPUT-vf4-vf4-vf41;) 76(param) - Store 75(@entryPointOutput) 78 - Return - FunctionEnd -12(@main(struct-VS_OUTPUT-vf4-vf4-vf41;): 7(fvec4) Function None 10 - 11(v): 9(ptr) FunctionParameter - 13: Label - 17: 16(ptr) AccessChain 11(v) 15 - 18: 7(fvec4) Load 17 - 20: 16(ptr) AccessChain 11(v) 19 - 21: 7(fvec4) Load 20 - 22: 7(fvec4) FAdd 18 21 - 24: 16(ptr) AccessChain 11(v) 23 - 25: 7(fvec4) Load 24 - 26: 7(fvec4) FAdd 22 25 - ReturnValue 26 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.clipdistance-6.vert.out b/deps/glslang/Test/baseResults/hlsl.clipdistance-6.vert.out deleted file mode 100644 index 1adbdfca..00000000 --- a/deps/glslang/Test/baseResults/hlsl.clipdistance-6.vert.out +++ /dev/null @@ -1,556 +0,0 @@ -hlsl.clipdistance-6.vert -Shader version: 500 -0:? Sequence -0:8 Function Definition: @main( ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Function Parameters: -0:? Sequence -0:10 move second child to first child ( temp 4-component vector of float) -0:10 Position: direct index for structure ( temp 4-component vector of float) -0:10 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:10 Constant: -0:10 0 (const int) -0:10 Constant: -0:10 0.000000 -0:10 0.000000 -0:10 0.000000 -0:10 0.000000 -0:12 move second child to first child ( temp float) -0:12 direct index ( temp float) -0:12 clip0: direct index for structure ( temp 4-component vector of float) -0:12 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:12 Constant: -0:12 1 (const int) -0:12 Constant: -0:12 0 (const int) -0:12 Constant: -0:12 0.000000 -0:13 move second child to first child ( temp float) -0:13 direct index ( temp float) -0:13 clip0: direct index for structure ( temp 4-component vector of float) -0:13 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 1.000000 -0:14 move second child to first child ( temp float) -0:14 direct index ( temp float) -0:14 clip0: direct index for structure ( temp 4-component vector of float) -0:14 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:14 Constant: -0:14 1 (const int) -0:14 Constant: -0:14 2 (const int) -0:14 Constant: -0:14 2.000000 -0:15 move second child to first child ( temp float) -0:15 direct index ( temp float) -0:15 clip0: direct index for structure ( temp 4-component vector of float) -0:15 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:15 Constant: -0:15 1 (const int) -0:15 Constant: -0:15 3 (const int) -0:15 Constant: -0:15 3.000000 -0:17 move second child to first child ( temp float) -0:17 direct index ( temp float) -0:17 clip1: direct index for structure ( temp 4-component vector of float) -0:17 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:17 Constant: -0:17 2 (const int) -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 4.000000 -0:18 move second child to first child ( temp float) -0:18 direct index ( temp float) -0:18 clip1: direct index for structure ( temp 4-component vector of float) -0:18 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:18 Constant: -0:18 2 (const int) -0:18 Constant: -0:18 1 (const int) -0:18 Constant: -0:18 5.000000 -0:19 move second child to first child ( temp float) -0:19 direct index ( temp float) -0:19 clip1: direct index for structure ( temp 4-component vector of float) -0:19 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:19 Constant: -0:19 2 (const int) -0:19 Constant: -0:19 2 (const int) -0:19 Constant: -0:19 6.000000 -0:20 move second child to first child ( temp float) -0:20 direct index ( temp float) -0:20 clip1: direct index for structure ( temp 4-component vector of float) -0:20 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:20 Constant: -0:20 2 (const int) -0:20 Constant: -0:20 3 (const int) -0:20 Constant: -0:20 7.000000 -0:22 Branch: Return with expression -0:22 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Function Definition: main( ( temp void) -0:8 Function Parameters: -0:? Sequence -0:8 Sequence -0:8 move second child to first child ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Function Call: @main( ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) -0:8 Position: direct index for structure ( temp 4-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 0 (const int) -0:? Sequence -0:8 move second child to first child ( temp float) -0:8 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) -0:8 Constant: -0:8 0 (const int) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 4-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 0 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) -0:8 Constant: -0:8 1 (const int) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 4-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 1 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) -0:8 Constant: -0:8 2 (const int) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 4-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 2 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) -0:8 Constant: -0:8 3 (const int) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 4-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 3 (const int) -0:? Sequence -0:8 move second child to first child ( temp float) -0:8 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) -0:8 Constant: -0:8 4 (const int) -0:8 direct index ( temp float) -0:8 clip1: direct index for structure ( temp 4-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 0 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) -0:8 Constant: -0:8 5 (const int) -0:8 direct index ( temp float) -0:8 clip1: direct index for structure ( temp 4-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 1 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) -0:8 Constant: -0:8 6 (const int) -0:8 direct index ( temp float) -0:8 clip1: direct index for structure ( temp 4-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 2 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) -0:8 Constant: -0:8 7 (const int) -0:8 direct index ( temp float) -0:8 clip1: direct index for structure ( temp 4-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 3 (const int) -0:? Linker Objects -0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) -0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) - - -Linked vertex stage: - - -Shader version: 500 -0:? Sequence -0:8 Function Definition: @main( ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Function Parameters: -0:? Sequence -0:10 move second child to first child ( temp 4-component vector of float) -0:10 Position: direct index for structure ( temp 4-component vector of float) -0:10 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:10 Constant: -0:10 0 (const int) -0:10 Constant: -0:10 0.000000 -0:10 0.000000 -0:10 0.000000 -0:10 0.000000 -0:12 move second child to first child ( temp float) -0:12 direct index ( temp float) -0:12 clip0: direct index for structure ( temp 4-component vector of float) -0:12 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:12 Constant: -0:12 1 (const int) -0:12 Constant: -0:12 0 (const int) -0:12 Constant: -0:12 0.000000 -0:13 move second child to first child ( temp float) -0:13 direct index ( temp float) -0:13 clip0: direct index for structure ( temp 4-component vector of float) -0:13 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 1.000000 -0:14 move second child to first child ( temp float) -0:14 direct index ( temp float) -0:14 clip0: direct index for structure ( temp 4-component vector of float) -0:14 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:14 Constant: -0:14 1 (const int) -0:14 Constant: -0:14 2 (const int) -0:14 Constant: -0:14 2.000000 -0:15 move second child to first child ( temp float) -0:15 direct index ( temp float) -0:15 clip0: direct index for structure ( temp 4-component vector of float) -0:15 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:15 Constant: -0:15 1 (const int) -0:15 Constant: -0:15 3 (const int) -0:15 Constant: -0:15 3.000000 -0:17 move second child to first child ( temp float) -0:17 direct index ( temp float) -0:17 clip1: direct index for structure ( temp 4-component vector of float) -0:17 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:17 Constant: -0:17 2 (const int) -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 4.000000 -0:18 move second child to first child ( temp float) -0:18 direct index ( temp float) -0:18 clip1: direct index for structure ( temp 4-component vector of float) -0:18 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:18 Constant: -0:18 2 (const int) -0:18 Constant: -0:18 1 (const int) -0:18 Constant: -0:18 5.000000 -0:19 move second child to first child ( temp float) -0:19 direct index ( temp float) -0:19 clip1: direct index for structure ( temp 4-component vector of float) -0:19 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:19 Constant: -0:19 2 (const int) -0:19 Constant: -0:19 2 (const int) -0:19 Constant: -0:19 6.000000 -0:20 move second child to first child ( temp float) -0:20 direct index ( temp float) -0:20 clip1: direct index for structure ( temp 4-component vector of float) -0:20 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:20 Constant: -0:20 2 (const int) -0:20 Constant: -0:20 3 (const int) -0:20 Constant: -0:20 7.000000 -0:22 Branch: Return with expression -0:22 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Function Definition: main( ( temp void) -0:8 Function Parameters: -0:? Sequence -0:8 Sequence -0:8 move second child to first child ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Function Call: @main( ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) -0:8 Position: direct index for structure ( temp 4-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 0 (const int) -0:? Sequence -0:8 move second child to first child ( temp float) -0:8 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) -0:8 Constant: -0:8 0 (const int) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 4-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 0 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) -0:8 Constant: -0:8 1 (const int) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 4-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 1 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) -0:8 Constant: -0:8 2 (const int) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 4-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 2 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) -0:8 Constant: -0:8 3 (const int) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 4-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 3 (const int) -0:? Sequence -0:8 move second child to first child ( temp float) -0:8 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) -0:8 Constant: -0:8 4 (const int) -0:8 direct index ( temp float) -0:8 clip1: direct index for structure ( temp 4-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 0 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) -0:8 Constant: -0:8 5 (const int) -0:8 direct index ( temp float) -0:8 clip1: direct index for structure ( temp 4-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 1 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) -0:8 Constant: -0:8 6 (const int) -0:8 direct index ( temp float) -0:8 clip1: direct index for structure ( temp 4-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 2 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) -0:8 Constant: -0:8 7 (const int) -0:8 direct index ( temp float) -0:8 clip1: direct index for structure ( temp 4-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 3 (const int) -0:? Linker Objects -0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) -0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 86 - - Capability Shader - Capability ClipDistance - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 49 55 - Source HLSL 500 - Name 4 "main" - Name 8 "VS_OUTPUT" - MemberName 8(VS_OUTPUT) 0 "Position" - MemberName 8(VS_OUTPUT) 1 "clip0" - MemberName 8(VS_OUTPUT) 2 "clip1" - Name 10 "@main(" - Name 13 "Output" - Name 46 "flattenTemp" - Name 49 "@entryPointOutput.Position" - Name 55 "@entryPointOutput.clip1" - Decorate 49(@entryPointOutput.Position) BuiltIn Position - Decorate 55(@entryPointOutput.clip1) BuiltIn ClipDistance - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8(VS_OUTPUT): TypeStruct 7(fvec4) 7(fvec4) 7(fvec4) - 9: TypeFunction 8(VS_OUTPUT) - 12: TypePointer Function 8(VS_OUTPUT) - 14: TypeInt 32 1 - 15: 14(int) Constant 0 - 16: 6(float) Constant 0 - 17: 7(fvec4) ConstantComposite 16 16 16 16 - 18: TypePointer Function 7(fvec4) - 20: 14(int) Constant 1 - 21: TypeInt 32 0 - 22: 21(int) Constant 0 - 23: TypePointer Function 6(float) - 25: 6(float) Constant 1065353216 - 26: 21(int) Constant 1 - 28: 6(float) Constant 1073741824 - 29: 21(int) Constant 2 - 31: 6(float) Constant 1077936128 - 32: 21(int) Constant 3 - 34: 14(int) Constant 2 - 35: 6(float) Constant 1082130432 - 37: 6(float) Constant 1084227584 - 39: 6(float) Constant 1086324736 - 41: 6(float) Constant 1088421888 - 48: TypePointer Output 7(fvec4) -49(@entryPointOutput.Position): 48(ptr) Variable Output - 52: 21(int) Constant 8 - 53: TypeArray 6(float) 52 - 54: TypePointer Output 53 -55(@entryPointOutput.clip1): 54(ptr) Variable Output - 58: TypePointer Output 6(float) - 66: 14(int) Constant 3 - 70: 14(int) Constant 4 - 74: 14(int) Constant 5 - 78: 14(int) Constant 6 - 82: 14(int) Constant 7 - 4(main): 2 Function None 3 - 5: Label - 46(flattenTemp): 12(ptr) Variable Function - 47:8(VS_OUTPUT) FunctionCall 10(@main() - Store 46(flattenTemp) 47 - 50: 18(ptr) AccessChain 46(flattenTemp) 15 - 51: 7(fvec4) Load 50 - Store 49(@entryPointOutput.Position) 51 - 56: 23(ptr) AccessChain 46(flattenTemp) 20 22 - 57: 6(float) Load 56 - 59: 58(ptr) AccessChain 55(@entryPointOutput.clip1) 15 - Store 59 57 - 60: 23(ptr) AccessChain 46(flattenTemp) 20 26 - 61: 6(float) Load 60 - 62: 58(ptr) AccessChain 55(@entryPointOutput.clip1) 20 - Store 62 61 - 63: 23(ptr) AccessChain 46(flattenTemp) 20 29 - 64: 6(float) Load 63 - 65: 58(ptr) AccessChain 55(@entryPointOutput.clip1) 34 - Store 65 64 - 67: 23(ptr) AccessChain 46(flattenTemp) 20 32 - 68: 6(float) Load 67 - 69: 58(ptr) AccessChain 55(@entryPointOutput.clip1) 66 - Store 69 68 - 71: 23(ptr) AccessChain 46(flattenTemp) 34 22 - 72: 6(float) Load 71 - 73: 58(ptr) AccessChain 55(@entryPointOutput.clip1) 70 - Store 73 72 - 75: 23(ptr) AccessChain 46(flattenTemp) 34 26 - 76: 6(float) Load 75 - 77: 58(ptr) AccessChain 55(@entryPointOutput.clip1) 74 - Store 77 76 - 79: 23(ptr) AccessChain 46(flattenTemp) 34 29 - 80: 6(float) Load 79 - 81: 58(ptr) AccessChain 55(@entryPointOutput.clip1) 78 - Store 81 80 - 83: 23(ptr) AccessChain 46(flattenTemp) 34 32 - 84: 6(float) Load 83 - 85: 58(ptr) AccessChain 55(@entryPointOutput.clip1) 82 - Store 85 84 - Return - FunctionEnd - 10(@main():8(VS_OUTPUT) Function None 9 - 11: Label - 13(Output): 12(ptr) Variable Function - 19: 18(ptr) AccessChain 13(Output) 15 - Store 19 17 - 24: 23(ptr) AccessChain 13(Output) 20 22 - Store 24 16 - 27: 23(ptr) AccessChain 13(Output) 20 26 - Store 27 25 - 30: 23(ptr) AccessChain 13(Output) 20 29 - Store 30 28 - 33: 23(ptr) AccessChain 13(Output) 20 32 - Store 33 31 - 36: 23(ptr) AccessChain 13(Output) 34 22 - Store 36 35 - 38: 23(ptr) AccessChain 13(Output) 34 26 - Store 38 37 - 40: 23(ptr) AccessChain 13(Output) 34 29 - Store 40 39 - 42: 23(ptr) AccessChain 13(Output) 34 32 - Store 42 41 - 43:8(VS_OUTPUT) Load 13(Output) - ReturnValue 43 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.clipdistance-7.frag.out b/deps/glslang/Test/baseResults/hlsl.clipdistance-7.frag.out deleted file mode 100644 index 9f5e5193..00000000 --- a/deps/glslang/Test/baseResults/hlsl.clipdistance-7.frag.out +++ /dev/null @@ -1,385 +0,0 @@ -hlsl.clipdistance-7.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:8 Function Definition: @main(struct-VS_OUTPUT-vf4-vf3-vf41; ( temp 4-component vector of float) -0:8 Function Parameters: -0:8 'v' ( in structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:? Sequence -0:9 Branch: Return with expression -0:9 add ( temp 4-component vector of float) -0:9 add ( temp 4-component vector of float) -0:9 Position: direct index for structure ( temp 4-component vector of float) -0:9 'v' ( in structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:9 Constant: -0:9 0 (const int) -0:9 direct index ( temp float) -0:9 clip0: direct index for structure ( temp 3-component vector of float) -0:9 'v' ( in structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:9 Constant: -0:9 1 (const int) -0:9 Constant: -0:9 0 (const int) -0:9 direct index ( temp float) -0:9 clip1: direct index for structure ( temp 4-component vector of float) -0:9 'v' ( in structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:9 Constant: -0:9 2 (const int) -0:9 Constant: -0:9 0 (const int) -0:8 Function Definition: main( ( temp void) -0:8 Function Parameters: -0:? Sequence -0:8 Sequence -0:8 move second child to first child ( temp 4-component vector of float) -0:8 Position: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 0 (const int) -0:? 'v.Position' ( in 4-component vector of float FragCoord) -0:? Sequence -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 3-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 0 (const int) -0:8 direct index ( in float ClipDistance) -0:? 'v.clip1' ( in 8-element array of float ClipDistance) -0:8 Constant: -0:8 0 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 3-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 1 (const int) -0:8 direct index ( in float ClipDistance) -0:? 'v.clip1' ( in 8-element array of float ClipDistance) -0:8 Constant: -0:8 1 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 3-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 2 (const int) -0:8 direct index ( in float ClipDistance) -0:? 'v.clip1' ( in 8-element array of float ClipDistance) -0:8 Constant: -0:8 2 (const int) -0:? Sequence -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 clip1: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 0 (const int) -0:8 direct index ( in float ClipDistance) -0:? 'v.clip1' ( in 8-element array of float ClipDistance) -0:8 Constant: -0:8 4 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 clip1: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 1 (const int) -0:8 direct index ( in float ClipDistance) -0:? 'v.clip1' ( in 8-element array of float ClipDistance) -0:8 Constant: -0:8 5 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 clip1: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 2 (const int) -0:8 direct index ( in float ClipDistance) -0:? 'v.clip1' ( in 8-element array of float ClipDistance) -0:8 Constant: -0:8 6 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 clip1: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 3 (const int) -0:8 direct index ( in float ClipDistance) -0:? 'v.clip1' ( in 8-element array of float ClipDistance) -0:8 Constant: -0:8 7 (const int) -0:8 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:8 Function Call: @main(struct-VS_OUTPUT-vf4-vf3-vf41; ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'v.Position' ( in 4-component vector of float FragCoord) -0:? 'v.clip1' ( in 8-element array of float ClipDistance) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:8 Function Definition: @main(struct-VS_OUTPUT-vf4-vf3-vf41; ( temp 4-component vector of float) -0:8 Function Parameters: -0:8 'v' ( in structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:? Sequence -0:9 Branch: Return with expression -0:9 add ( temp 4-component vector of float) -0:9 add ( temp 4-component vector of float) -0:9 Position: direct index for structure ( temp 4-component vector of float) -0:9 'v' ( in structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:9 Constant: -0:9 0 (const int) -0:9 direct index ( temp float) -0:9 clip0: direct index for structure ( temp 3-component vector of float) -0:9 'v' ( in structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:9 Constant: -0:9 1 (const int) -0:9 Constant: -0:9 0 (const int) -0:9 direct index ( temp float) -0:9 clip1: direct index for structure ( temp 4-component vector of float) -0:9 'v' ( in structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:9 Constant: -0:9 2 (const int) -0:9 Constant: -0:9 0 (const int) -0:8 Function Definition: main( ( temp void) -0:8 Function Parameters: -0:? Sequence -0:8 Sequence -0:8 move second child to first child ( temp 4-component vector of float) -0:8 Position: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 0 (const int) -0:? 'v.Position' ( in 4-component vector of float FragCoord) -0:? Sequence -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 3-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 0 (const int) -0:8 direct index ( in float ClipDistance) -0:? 'v.clip1' ( in 8-element array of float ClipDistance) -0:8 Constant: -0:8 0 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 3-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 1 (const int) -0:8 direct index ( in float ClipDistance) -0:? 'v.clip1' ( in 8-element array of float ClipDistance) -0:8 Constant: -0:8 1 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 3-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 2 (const int) -0:8 direct index ( in float ClipDistance) -0:? 'v.clip1' ( in 8-element array of float ClipDistance) -0:8 Constant: -0:8 2 (const int) -0:? Sequence -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 clip1: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 0 (const int) -0:8 direct index ( in float ClipDistance) -0:? 'v.clip1' ( in 8-element array of float ClipDistance) -0:8 Constant: -0:8 4 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 clip1: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 1 (const int) -0:8 direct index ( in float ClipDistance) -0:? 'v.clip1' ( in 8-element array of float ClipDistance) -0:8 Constant: -0:8 5 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 clip1: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 2 (const int) -0:8 direct index ( in float ClipDistance) -0:? 'v.clip1' ( in 8-element array of float ClipDistance) -0:8 Constant: -0:8 6 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 clip1: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 3 (const int) -0:8 direct index ( in float ClipDistance) -0:? 'v.clip1' ( in 8-element array of float ClipDistance) -0:8 Constant: -0:8 7 (const int) -0:8 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:8 Function Call: @main(struct-VS_OUTPUT-vf4-vf3-vf41; ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'v.Position' ( in 4-component vector of float FragCoord) -0:? 'v.clip1' ( in 8-element array of float ClipDistance) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 78 - - Capability Shader - Capability ClipDistance - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 37 43 74 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 9 "VS_OUTPUT" - MemberName 9(VS_OUTPUT) 0 "Position" - MemberName 9(VS_OUTPUT) 1 "clip0" - MemberName 9(VS_OUTPUT) 2 "clip1" - Name 13 "@main(struct-VS_OUTPUT-vf4-vf3-vf41;" - Name 12 "v" - Name 35 "v" - Name 37 "v.Position" - Name 43 "v.clip1" - Name 74 "@entryPointOutput" - Name 75 "param" - Decorate 37(v.Position) BuiltIn FragCoord - Decorate 43(v.clip1) BuiltIn ClipDistance - Decorate 74(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeVector 6(float) 3 - 9(VS_OUTPUT): TypeStruct 7(fvec4) 8(fvec3) 7(fvec4) - 10: TypePointer Function 9(VS_OUTPUT) - 11: TypeFunction 7(fvec4) 10(ptr) - 15: TypeInt 32 1 - 16: 15(int) Constant 0 - 17: TypePointer Function 7(fvec4) - 20: 15(int) Constant 1 - 21: TypeInt 32 0 - 22: 21(int) Constant 0 - 23: TypePointer Function 6(float) - 28: 15(int) Constant 2 - 36: TypePointer Input 7(fvec4) - 37(v.Position): 36(ptr) Variable Input - 40: 21(int) Constant 8 - 41: TypeArray 6(float) 40 - 42: TypePointer Input 41 - 43(v.clip1): 42(ptr) Variable Input - 44: TypePointer Input 6(float) - 50: 21(int) Constant 1 - 54: 21(int) Constant 2 - 56: 15(int) Constant 4 - 60: 15(int) Constant 5 - 64: 15(int) Constant 6 - 68: 15(int) Constant 7 - 71: 21(int) Constant 3 - 73: TypePointer Output 7(fvec4) -74(@entryPointOutput): 73(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 35(v): 10(ptr) Variable Function - 75(param): 10(ptr) Variable Function - 38: 7(fvec4) Load 37(v.Position) - 39: 17(ptr) AccessChain 35(v) 16 - Store 39 38 - 45: 44(ptr) AccessChain 43(v.clip1) 16 - 46: 6(float) Load 45 - 47: 23(ptr) AccessChain 35(v) 20 22 - Store 47 46 - 48: 44(ptr) AccessChain 43(v.clip1) 20 - 49: 6(float) Load 48 - 51: 23(ptr) AccessChain 35(v) 20 50 - Store 51 49 - 52: 44(ptr) AccessChain 43(v.clip1) 28 - 53: 6(float) Load 52 - 55: 23(ptr) AccessChain 35(v) 20 54 - Store 55 53 - 57: 44(ptr) AccessChain 43(v.clip1) 56 - 58: 6(float) Load 57 - 59: 23(ptr) AccessChain 35(v) 28 22 - Store 59 58 - 61: 44(ptr) AccessChain 43(v.clip1) 60 - 62: 6(float) Load 61 - 63: 23(ptr) AccessChain 35(v) 28 50 - Store 63 62 - 65: 44(ptr) AccessChain 43(v.clip1) 64 - 66: 6(float) Load 65 - 67: 23(ptr) AccessChain 35(v) 28 54 - Store 67 66 - 69: 44(ptr) AccessChain 43(v.clip1) 68 - 70: 6(float) Load 69 - 72: 23(ptr) AccessChain 35(v) 28 71 - Store 72 70 - 76:9(VS_OUTPUT) Load 35(v) - Store 75(param) 76 - 77: 7(fvec4) FunctionCall 13(@main(struct-VS_OUTPUT-vf4-vf3-vf41;) 75(param) - Store 74(@entryPointOutput) 77 - Return - FunctionEnd -13(@main(struct-VS_OUTPUT-vf4-vf3-vf41;): 7(fvec4) Function None 11 - 12(v): 10(ptr) FunctionParameter - 14: Label - 18: 17(ptr) AccessChain 12(v) 16 - 19: 7(fvec4) Load 18 - 24: 23(ptr) AccessChain 12(v) 20 22 - 25: 6(float) Load 24 - 26: 7(fvec4) CompositeConstruct 25 25 25 25 - 27: 7(fvec4) FAdd 19 26 - 29: 23(ptr) AccessChain 12(v) 28 22 - 30: 6(float) Load 29 - 31: 7(fvec4) CompositeConstruct 30 30 30 30 - 32: 7(fvec4) FAdd 27 31 - ReturnValue 32 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.clipdistance-7.vert.out b/deps/glslang/Test/baseResults/hlsl.clipdistance-7.vert.out deleted file mode 100644 index 13bc844b..00000000 --- a/deps/glslang/Test/baseResults/hlsl.clipdistance-7.vert.out +++ /dev/null @@ -1,505 +0,0 @@ -hlsl.clipdistance-7.vert -Shader version: 500 -0:? Sequence -0:8 Function Definition: @main( ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Function Parameters: -0:? Sequence -0:10 move second child to first child ( temp 4-component vector of float) -0:10 Position: direct index for structure ( temp 4-component vector of float) -0:10 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:10 Constant: -0:10 0 (const int) -0:10 Constant: -0:10 0.000000 -0:10 0.000000 -0:10 0.000000 -0:10 0.000000 -0:12 move second child to first child ( temp float) -0:12 direct index ( temp float) -0:12 clip0: direct index for structure ( temp 3-component vector of float) -0:12 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:12 Constant: -0:12 1 (const int) -0:12 Constant: -0:12 0 (const int) -0:12 Constant: -0:12 0.000000 -0:13 move second child to first child ( temp float) -0:13 direct index ( temp float) -0:13 clip0: direct index for structure ( temp 3-component vector of float) -0:13 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 1.000000 -0:14 move second child to first child ( temp float) -0:14 direct index ( temp float) -0:14 clip0: direct index for structure ( temp 3-component vector of float) -0:14 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:14 Constant: -0:14 1 (const int) -0:14 Constant: -0:14 2 (const int) -0:14 Constant: -0:14 2.000000 -0:17 move second child to first child ( temp float) -0:17 direct index ( temp float) -0:17 clip1: direct index for structure ( temp 4-component vector of float) -0:17 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:17 Constant: -0:17 2 (const int) -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 4.000000 -0:18 move second child to first child ( temp float) -0:18 direct index ( temp float) -0:18 clip1: direct index for structure ( temp 4-component vector of float) -0:18 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:18 Constant: -0:18 2 (const int) -0:18 Constant: -0:18 1 (const int) -0:18 Constant: -0:18 5.000000 -0:19 move second child to first child ( temp float) -0:19 direct index ( temp float) -0:19 clip1: direct index for structure ( temp 4-component vector of float) -0:19 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:19 Constant: -0:19 2 (const int) -0:19 Constant: -0:19 2 (const int) -0:19 Constant: -0:19 6.000000 -0:20 move second child to first child ( temp float) -0:20 direct index ( temp float) -0:20 clip1: direct index for structure ( temp 4-component vector of float) -0:20 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:20 Constant: -0:20 2 (const int) -0:20 Constant: -0:20 3 (const int) -0:20 Constant: -0:20 7.000000 -0:22 Branch: Return with expression -0:22 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Function Definition: main( ( temp void) -0:8 Function Parameters: -0:? Sequence -0:8 Sequence -0:8 move second child to first child ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Function Call: @main( ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) -0:8 Position: direct index for structure ( temp 4-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 0 (const int) -0:? Sequence -0:8 move second child to first child ( temp float) -0:8 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) -0:8 Constant: -0:8 0 (const int) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 3-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 0 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) -0:8 Constant: -0:8 1 (const int) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 3-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 1 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) -0:8 Constant: -0:8 2 (const int) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 3-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 2 (const int) -0:? Sequence -0:8 move second child to first child ( temp float) -0:8 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) -0:8 Constant: -0:8 4 (const int) -0:8 direct index ( temp float) -0:8 clip1: direct index for structure ( temp 4-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 0 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) -0:8 Constant: -0:8 5 (const int) -0:8 direct index ( temp float) -0:8 clip1: direct index for structure ( temp 4-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 1 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) -0:8 Constant: -0:8 6 (const int) -0:8 direct index ( temp float) -0:8 clip1: direct index for structure ( temp 4-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 2 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) -0:8 Constant: -0:8 7 (const int) -0:8 direct index ( temp float) -0:8 clip1: direct index for structure ( temp 4-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 3 (const int) -0:? Linker Objects -0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) -0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) - - -Linked vertex stage: - - -Shader version: 500 -0:? Sequence -0:8 Function Definition: @main( ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Function Parameters: -0:? Sequence -0:10 move second child to first child ( temp 4-component vector of float) -0:10 Position: direct index for structure ( temp 4-component vector of float) -0:10 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:10 Constant: -0:10 0 (const int) -0:10 Constant: -0:10 0.000000 -0:10 0.000000 -0:10 0.000000 -0:10 0.000000 -0:12 move second child to first child ( temp float) -0:12 direct index ( temp float) -0:12 clip0: direct index for structure ( temp 3-component vector of float) -0:12 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:12 Constant: -0:12 1 (const int) -0:12 Constant: -0:12 0 (const int) -0:12 Constant: -0:12 0.000000 -0:13 move second child to first child ( temp float) -0:13 direct index ( temp float) -0:13 clip0: direct index for structure ( temp 3-component vector of float) -0:13 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 1.000000 -0:14 move second child to first child ( temp float) -0:14 direct index ( temp float) -0:14 clip0: direct index for structure ( temp 3-component vector of float) -0:14 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:14 Constant: -0:14 1 (const int) -0:14 Constant: -0:14 2 (const int) -0:14 Constant: -0:14 2.000000 -0:17 move second child to first child ( temp float) -0:17 direct index ( temp float) -0:17 clip1: direct index for structure ( temp 4-component vector of float) -0:17 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:17 Constant: -0:17 2 (const int) -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 4.000000 -0:18 move second child to first child ( temp float) -0:18 direct index ( temp float) -0:18 clip1: direct index for structure ( temp 4-component vector of float) -0:18 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:18 Constant: -0:18 2 (const int) -0:18 Constant: -0:18 1 (const int) -0:18 Constant: -0:18 5.000000 -0:19 move second child to first child ( temp float) -0:19 direct index ( temp float) -0:19 clip1: direct index for structure ( temp 4-component vector of float) -0:19 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:19 Constant: -0:19 2 (const int) -0:19 Constant: -0:19 2 (const int) -0:19 Constant: -0:19 6.000000 -0:20 move second child to first child ( temp float) -0:20 direct index ( temp float) -0:20 clip1: direct index for structure ( temp 4-component vector of float) -0:20 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:20 Constant: -0:20 2 (const int) -0:20 Constant: -0:20 3 (const int) -0:20 Constant: -0:20 7.000000 -0:22 Branch: Return with expression -0:22 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Function Definition: main( ( temp void) -0:8 Function Parameters: -0:? Sequence -0:8 Sequence -0:8 move second child to first child ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Function Call: @main( ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) -0:8 Position: direct index for structure ( temp 4-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 0 (const int) -0:? Sequence -0:8 move second child to first child ( temp float) -0:8 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) -0:8 Constant: -0:8 0 (const int) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 3-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 0 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) -0:8 Constant: -0:8 1 (const int) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 3-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 1 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) -0:8 Constant: -0:8 2 (const int) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 3-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 2 (const int) -0:? Sequence -0:8 move second child to first child ( temp float) -0:8 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) -0:8 Constant: -0:8 4 (const int) -0:8 direct index ( temp float) -0:8 clip1: direct index for structure ( temp 4-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 0 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) -0:8 Constant: -0:8 5 (const int) -0:8 direct index ( temp float) -0:8 clip1: direct index for structure ( temp 4-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 1 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) -0:8 Constant: -0:8 6 (const int) -0:8 direct index ( temp float) -0:8 clip1: direct index for structure ( temp 4-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 2 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) -0:8 Constant: -0:8 7 (const int) -0:8 direct index ( temp float) -0:8 clip1: direct index for structure ( temp 4-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 3 (const int) -0:? Linker Objects -0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) -0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 81 - - Capability Shader - Capability ClipDistance - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 48 54 - Source HLSL 500 - Name 4 "main" - Name 9 "VS_OUTPUT" - MemberName 9(VS_OUTPUT) 0 "Position" - MemberName 9(VS_OUTPUT) 1 "clip0" - MemberName 9(VS_OUTPUT) 2 "clip1" - Name 11 "@main(" - Name 14 "Output" - Name 45 "flattenTemp" - Name 48 "@entryPointOutput.Position" - Name 54 "@entryPointOutput.clip1" - Decorate 48(@entryPointOutput.Position) BuiltIn Position - Decorate 54(@entryPointOutput.clip1) BuiltIn ClipDistance - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeVector 6(float) 3 - 9(VS_OUTPUT): TypeStruct 7(fvec4) 8(fvec3) 7(fvec4) - 10: TypeFunction 9(VS_OUTPUT) - 13: TypePointer Function 9(VS_OUTPUT) - 15: TypeInt 32 1 - 16: 15(int) Constant 0 - 17: 6(float) Constant 0 - 18: 7(fvec4) ConstantComposite 17 17 17 17 - 19: TypePointer Function 7(fvec4) - 21: 15(int) Constant 1 - 22: TypeInt 32 0 - 23: 22(int) Constant 0 - 24: TypePointer Function 6(float) - 26: 6(float) Constant 1065353216 - 27: 22(int) Constant 1 - 29: 6(float) Constant 1073741824 - 30: 22(int) Constant 2 - 32: 15(int) Constant 2 - 33: 6(float) Constant 1082130432 - 35: 6(float) Constant 1084227584 - 37: 6(float) Constant 1086324736 - 39: 6(float) Constant 1088421888 - 40: 22(int) Constant 3 - 47: TypePointer Output 7(fvec4) -48(@entryPointOutput.Position): 47(ptr) Variable Output - 51: 22(int) Constant 8 - 52: TypeArray 6(float) 51 - 53: TypePointer Output 52 -54(@entryPointOutput.clip1): 53(ptr) Variable Output - 57: TypePointer Output 6(float) - 65: 15(int) Constant 4 - 69: 15(int) Constant 5 - 73: 15(int) Constant 6 - 77: 15(int) Constant 7 - 4(main): 2 Function None 3 - 5: Label - 45(flattenTemp): 13(ptr) Variable Function - 46:9(VS_OUTPUT) FunctionCall 11(@main() - Store 45(flattenTemp) 46 - 49: 19(ptr) AccessChain 45(flattenTemp) 16 - 50: 7(fvec4) Load 49 - Store 48(@entryPointOutput.Position) 50 - 55: 24(ptr) AccessChain 45(flattenTemp) 21 23 - 56: 6(float) Load 55 - 58: 57(ptr) AccessChain 54(@entryPointOutput.clip1) 16 - Store 58 56 - 59: 24(ptr) AccessChain 45(flattenTemp) 21 27 - 60: 6(float) Load 59 - 61: 57(ptr) AccessChain 54(@entryPointOutput.clip1) 21 - Store 61 60 - 62: 24(ptr) AccessChain 45(flattenTemp) 21 30 - 63: 6(float) Load 62 - 64: 57(ptr) AccessChain 54(@entryPointOutput.clip1) 32 - Store 64 63 - 66: 24(ptr) AccessChain 45(flattenTemp) 32 23 - 67: 6(float) Load 66 - 68: 57(ptr) AccessChain 54(@entryPointOutput.clip1) 65 - Store 68 67 - 70: 24(ptr) AccessChain 45(flattenTemp) 32 27 - 71: 6(float) Load 70 - 72: 57(ptr) AccessChain 54(@entryPointOutput.clip1) 69 - Store 72 71 - 74: 24(ptr) AccessChain 45(flattenTemp) 32 30 - 75: 6(float) Load 74 - 76: 57(ptr) AccessChain 54(@entryPointOutput.clip1) 73 - Store 76 75 - 78: 24(ptr) AccessChain 45(flattenTemp) 32 40 - 79: 6(float) Load 78 - 80: 57(ptr) AccessChain 54(@entryPointOutput.clip1) 77 - Store 80 79 - Return - FunctionEnd - 11(@main():9(VS_OUTPUT) Function None 10 - 12: Label - 14(Output): 13(ptr) Variable Function - 20: 19(ptr) AccessChain 14(Output) 16 - Store 20 18 - 25: 24(ptr) AccessChain 14(Output) 21 23 - Store 25 17 - 28: 24(ptr) AccessChain 14(Output) 21 27 - Store 28 26 - 31: 24(ptr) AccessChain 14(Output) 21 30 - Store 31 29 - 34: 24(ptr) AccessChain 14(Output) 32 23 - Store 34 33 - 36: 24(ptr) AccessChain 14(Output) 32 27 - Store 36 35 - 38: 24(ptr) AccessChain 14(Output) 32 30 - Store 38 37 - 41: 24(ptr) AccessChain 14(Output) 32 40 - Store 41 39 - 42:9(VS_OUTPUT) Load 14(Output) - ReturnValue 42 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.clipdistance-8.frag.out b/deps/glslang/Test/baseResults/hlsl.clipdistance-8.frag.out deleted file mode 100644 index 8f2a9c27..00000000 --- a/deps/glslang/Test/baseResults/hlsl.clipdistance-8.frag.out +++ /dev/null @@ -1,285 +0,0 @@ -hlsl.clipdistance-8.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:8 Function Definition: @main(struct-VS_OUTPUT-vf4-vf3-f11; ( temp 4-component vector of float) -0:8 Function Parameters: -0:8 'v' ( in structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:? Sequence -0:9 Branch: Return with expression -0:9 add ( temp 4-component vector of float) -0:9 add ( temp 4-component vector of float) -0:9 Position: direct index for structure ( temp 4-component vector of float) -0:9 'v' ( in structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:9 Constant: -0:9 0 (const int) -0:9 direct index ( temp float) -0:9 clip0: direct index for structure ( temp 3-component vector of float) -0:9 'v' ( in structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:9 Constant: -0:9 1 (const int) -0:9 Constant: -0:9 0 (const int) -0:9 clip1: direct index for structure ( temp float) -0:9 'v' ( in structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:9 Constant: -0:9 2 (const int) -0:8 Function Definition: main( ( temp void) -0:8 Function Parameters: -0:? Sequence -0:8 Sequence -0:8 move second child to first child ( temp 4-component vector of float) -0:8 Position: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:8 Constant: -0:8 0 (const int) -0:? 'v.Position' ( in 4-component vector of float FragCoord) -0:? Sequence -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 3-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 0 (const int) -0:8 direct index ( in float ClipDistance) -0:? 'v.clip1' ( in 4-element array of float ClipDistance) -0:8 Constant: -0:8 0 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 3-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 1 (const int) -0:8 direct index ( in float ClipDistance) -0:? 'v.clip1' ( in 4-element array of float ClipDistance) -0:8 Constant: -0:8 1 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 3-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 2 (const int) -0:8 direct index ( in float ClipDistance) -0:? 'v.clip1' ( in 4-element array of float ClipDistance) -0:8 Constant: -0:8 2 (const int) -0:? Sequence -0:8 move second child to first child ( temp float) -0:8 clip1: direct index for structure ( temp float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:8 Constant: -0:8 2 (const int) -0:8 direct index ( in float ClipDistance) -0:? 'v.clip1' ( in 4-element array of float ClipDistance) -0:8 Constant: -0:8 3 (const int) -0:8 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:8 Function Call: @main(struct-VS_OUTPUT-vf4-vf3-f11; ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'v.Position' ( in 4-component vector of float FragCoord) -0:? 'v.clip1' ( in 4-element array of float ClipDistance) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:8 Function Definition: @main(struct-VS_OUTPUT-vf4-vf3-f11; ( temp 4-component vector of float) -0:8 Function Parameters: -0:8 'v' ( in structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:? Sequence -0:9 Branch: Return with expression -0:9 add ( temp 4-component vector of float) -0:9 add ( temp 4-component vector of float) -0:9 Position: direct index for structure ( temp 4-component vector of float) -0:9 'v' ( in structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:9 Constant: -0:9 0 (const int) -0:9 direct index ( temp float) -0:9 clip0: direct index for structure ( temp 3-component vector of float) -0:9 'v' ( in structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:9 Constant: -0:9 1 (const int) -0:9 Constant: -0:9 0 (const int) -0:9 clip1: direct index for structure ( temp float) -0:9 'v' ( in structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:9 Constant: -0:9 2 (const int) -0:8 Function Definition: main( ( temp void) -0:8 Function Parameters: -0:? Sequence -0:8 Sequence -0:8 move second child to first child ( temp 4-component vector of float) -0:8 Position: direct index for structure ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:8 Constant: -0:8 0 (const int) -0:? 'v.Position' ( in 4-component vector of float FragCoord) -0:? Sequence -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 3-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 0 (const int) -0:8 direct index ( in float ClipDistance) -0:? 'v.clip1' ( in 4-element array of float ClipDistance) -0:8 Constant: -0:8 0 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 3-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 1 (const int) -0:8 direct index ( in float ClipDistance) -0:? 'v.clip1' ( in 4-element array of float ClipDistance) -0:8 Constant: -0:8 1 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 3-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 2 (const int) -0:8 direct index ( in float ClipDistance) -0:? 'v.clip1' ( in 4-element array of float ClipDistance) -0:8 Constant: -0:8 2 (const int) -0:? Sequence -0:8 move second child to first child ( temp float) -0:8 clip1: direct index for structure ( temp float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:8 Constant: -0:8 2 (const int) -0:8 direct index ( in float ClipDistance) -0:? 'v.clip1' ( in 4-element array of float ClipDistance) -0:8 Constant: -0:8 3 (const int) -0:8 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:8 Function Call: @main(struct-VS_OUTPUT-vf4-vf3-f11; ( temp 4-component vector of float) -0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'v.Position' ( in 4-component vector of float FragCoord) -0:? 'v.clip1' ( in 4-element array of float ClipDistance) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 65 - - Capability Shader - Capability ClipDistance - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 37 43 61 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 9 "VS_OUTPUT" - MemberName 9(VS_OUTPUT) 0 "Position" - MemberName 9(VS_OUTPUT) 1 "clip0" - MemberName 9(VS_OUTPUT) 2 "clip1" - Name 13 "@main(struct-VS_OUTPUT-vf4-vf3-f11;" - Name 12 "v" - Name 35 "v" - Name 37 "v.Position" - Name 43 "v.clip1" - Name 61 "@entryPointOutput" - Name 62 "param" - Decorate 37(v.Position) BuiltIn FragCoord - Decorate 43(v.clip1) BuiltIn ClipDistance - Decorate 61(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeVector 6(float) 3 - 9(VS_OUTPUT): TypeStruct 7(fvec4) 8(fvec3) 6(float) - 10: TypePointer Function 9(VS_OUTPUT) - 11: TypeFunction 7(fvec4) 10(ptr) - 15: TypeInt 32 1 - 16: 15(int) Constant 0 - 17: TypePointer Function 7(fvec4) - 20: 15(int) Constant 1 - 21: TypeInt 32 0 - 22: 21(int) Constant 0 - 23: TypePointer Function 6(float) - 28: 15(int) Constant 2 - 36: TypePointer Input 7(fvec4) - 37(v.Position): 36(ptr) Variable Input - 40: 21(int) Constant 4 - 41: TypeArray 6(float) 40 - 42: TypePointer Input 41 - 43(v.clip1): 42(ptr) Variable Input - 44: TypePointer Input 6(float) - 50: 21(int) Constant 1 - 54: 21(int) Constant 2 - 56: 15(int) Constant 3 - 60: TypePointer Output 7(fvec4) -61(@entryPointOutput): 60(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 35(v): 10(ptr) Variable Function - 62(param): 10(ptr) Variable Function - 38: 7(fvec4) Load 37(v.Position) - 39: 17(ptr) AccessChain 35(v) 16 - Store 39 38 - 45: 44(ptr) AccessChain 43(v.clip1) 16 - 46: 6(float) Load 45 - 47: 23(ptr) AccessChain 35(v) 20 22 - Store 47 46 - 48: 44(ptr) AccessChain 43(v.clip1) 20 - 49: 6(float) Load 48 - 51: 23(ptr) AccessChain 35(v) 20 50 - Store 51 49 - 52: 44(ptr) AccessChain 43(v.clip1) 28 - 53: 6(float) Load 52 - 55: 23(ptr) AccessChain 35(v) 20 54 - Store 55 53 - 57: 44(ptr) AccessChain 43(v.clip1) 56 - 58: 6(float) Load 57 - 59: 23(ptr) AccessChain 35(v) 28 - Store 59 58 - 63:9(VS_OUTPUT) Load 35(v) - Store 62(param) 63 - 64: 7(fvec4) FunctionCall 13(@main(struct-VS_OUTPUT-vf4-vf3-f11;) 62(param) - Store 61(@entryPointOutput) 64 - Return - FunctionEnd -13(@main(struct-VS_OUTPUT-vf4-vf3-f11;): 7(fvec4) Function None 11 - 12(v): 10(ptr) FunctionParameter - 14: Label - 18: 17(ptr) AccessChain 12(v) 16 - 19: 7(fvec4) Load 18 - 24: 23(ptr) AccessChain 12(v) 20 22 - 25: 6(float) Load 24 - 26: 7(fvec4) CompositeConstruct 25 25 25 25 - 27: 7(fvec4) FAdd 19 26 - 29: 23(ptr) AccessChain 12(v) 28 - 30: 6(float) Load 29 - 31: 7(fvec4) CompositeConstruct 30 30 30 30 - 32: 7(fvec4) FAdd 27 31 - ReturnValue 32 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.clipdistance-8.vert.out b/deps/glslang/Test/baseResults/hlsl.clipdistance-8.vert.out deleted file mode 100644 index fbc2c2a5..00000000 --- a/deps/glslang/Test/baseResults/hlsl.clipdistance-8.vert.out +++ /dev/null @@ -1,336 +0,0 @@ -hlsl.clipdistance-8.vert -Shader version: 500 -0:? Sequence -0:8 Function Definition: @main( ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:8 Function Parameters: -0:? Sequence -0:10 move second child to first child ( temp 4-component vector of float) -0:10 Position: direct index for structure ( temp 4-component vector of float) -0:10 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:10 Constant: -0:10 0 (const int) -0:10 Constant: -0:10 0.000000 -0:10 0.000000 -0:10 0.000000 -0:10 0.000000 -0:12 move second child to first child ( temp float) -0:12 direct index ( temp float) -0:12 clip0: direct index for structure ( temp 3-component vector of float) -0:12 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:12 Constant: -0:12 1 (const int) -0:12 Constant: -0:12 0 (const int) -0:12 Constant: -0:12 0.000000 -0:13 move second child to first child ( temp float) -0:13 direct index ( temp float) -0:13 clip0: direct index for structure ( temp 3-component vector of float) -0:13 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 1.000000 -0:14 move second child to first child ( temp float) -0:14 direct index ( temp float) -0:14 clip0: direct index for structure ( temp 3-component vector of float) -0:14 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:14 Constant: -0:14 1 (const int) -0:14 Constant: -0:14 2 (const int) -0:14 Constant: -0:14 2.000000 -0:17 move second child to first child ( temp float) -0:17 clip1: direct index for structure ( temp float) -0:17 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:17 Constant: -0:17 2 (const int) -0:17 Constant: -0:17 3.000000 -0:19 Branch: Return with expression -0:19 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:8 Function Definition: main( ( temp void) -0:8 Function Parameters: -0:? Sequence -0:8 Sequence -0:8 move second child to first child ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:8 Function Call: @main( ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:8 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) -0:8 Position: direct index for structure ( temp 4-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:8 Constant: -0:8 0 (const int) -0:? Sequence -0:8 move second child to first child ( temp float) -0:8 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 4-element array of float ClipDistance) -0:8 Constant: -0:8 0 (const int) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 3-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 0 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 4-element array of float ClipDistance) -0:8 Constant: -0:8 1 (const int) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 3-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 1 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 4-element array of float ClipDistance) -0:8 Constant: -0:8 2 (const int) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 3-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 2 (const int) -0:? Sequence -0:8 move second child to first child ( temp float) -0:8 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 4-element array of float ClipDistance) -0:8 Constant: -0:8 3 (const int) -0:8 clip1: direct index for structure ( temp float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:8 Constant: -0:8 2 (const int) -0:? Linker Objects -0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) -0:? '@entryPointOutput.clip1' ( out 4-element array of float ClipDistance) - - -Linked vertex stage: - - -Shader version: 500 -0:? Sequence -0:8 Function Definition: @main( ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:8 Function Parameters: -0:? Sequence -0:10 move second child to first child ( temp 4-component vector of float) -0:10 Position: direct index for structure ( temp 4-component vector of float) -0:10 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:10 Constant: -0:10 0 (const int) -0:10 Constant: -0:10 0.000000 -0:10 0.000000 -0:10 0.000000 -0:10 0.000000 -0:12 move second child to first child ( temp float) -0:12 direct index ( temp float) -0:12 clip0: direct index for structure ( temp 3-component vector of float) -0:12 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:12 Constant: -0:12 1 (const int) -0:12 Constant: -0:12 0 (const int) -0:12 Constant: -0:12 0.000000 -0:13 move second child to first child ( temp float) -0:13 direct index ( temp float) -0:13 clip0: direct index for structure ( temp 3-component vector of float) -0:13 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 1.000000 -0:14 move second child to first child ( temp float) -0:14 direct index ( temp float) -0:14 clip0: direct index for structure ( temp 3-component vector of float) -0:14 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:14 Constant: -0:14 1 (const int) -0:14 Constant: -0:14 2 (const int) -0:14 Constant: -0:14 2.000000 -0:17 move second child to first child ( temp float) -0:17 clip1: direct index for structure ( temp float) -0:17 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:17 Constant: -0:17 2 (const int) -0:17 Constant: -0:17 3.000000 -0:19 Branch: Return with expression -0:19 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:8 Function Definition: main( ( temp void) -0:8 Function Parameters: -0:? Sequence -0:8 Sequence -0:8 move second child to first child ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:8 Function Call: @main( ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:8 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) -0:8 Position: direct index for structure ( temp 4-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:8 Constant: -0:8 0 (const int) -0:? Sequence -0:8 move second child to first child ( temp float) -0:8 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 4-element array of float ClipDistance) -0:8 Constant: -0:8 0 (const int) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 3-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 0 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 4-element array of float ClipDistance) -0:8 Constant: -0:8 1 (const int) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 3-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 1 (const int) -0:8 move second child to first child ( temp float) -0:8 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 4-element array of float ClipDistance) -0:8 Constant: -0:8 2 (const int) -0:8 direct index ( temp float) -0:8 clip0: direct index for structure ( temp 3-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 2 (const int) -0:? Sequence -0:8 move second child to first child ( temp float) -0:8 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 4-element array of float ClipDistance) -0:8 Constant: -0:8 3 (const int) -0:8 clip1: direct index for structure ( temp float) -0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) -0:8 Constant: -0:8 2 (const int) -0:? Linker Objects -0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) -0:? '@entryPointOutput.clip1' ( out 4-element array of float ClipDistance) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 62 - - Capability Shader - Capability ClipDistance - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 41 47 - Source HLSL 500 - Name 4 "main" - Name 9 "VS_OUTPUT" - MemberName 9(VS_OUTPUT) 0 "Position" - MemberName 9(VS_OUTPUT) 1 "clip0" - MemberName 9(VS_OUTPUT) 2 "clip1" - Name 11 "@main(" - Name 14 "Output" - Name 38 "flattenTemp" - Name 41 "@entryPointOutput.Position" - Name 47 "@entryPointOutput.clip1" - Decorate 41(@entryPointOutput.Position) BuiltIn Position - Decorate 47(@entryPointOutput.clip1) BuiltIn ClipDistance - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeVector 6(float) 3 - 9(VS_OUTPUT): TypeStruct 7(fvec4) 8(fvec3) 6(float) - 10: TypeFunction 9(VS_OUTPUT) - 13: TypePointer Function 9(VS_OUTPUT) - 15: TypeInt 32 1 - 16: 15(int) Constant 0 - 17: 6(float) Constant 0 - 18: 7(fvec4) ConstantComposite 17 17 17 17 - 19: TypePointer Function 7(fvec4) - 21: 15(int) Constant 1 - 22: TypeInt 32 0 - 23: 22(int) Constant 0 - 24: TypePointer Function 6(float) - 26: 6(float) Constant 1065353216 - 27: 22(int) Constant 1 - 29: 6(float) Constant 1073741824 - 30: 22(int) Constant 2 - 32: 15(int) Constant 2 - 33: 6(float) Constant 1077936128 - 40: TypePointer Output 7(fvec4) -41(@entryPointOutput.Position): 40(ptr) Variable Output - 44: 22(int) Constant 4 - 45: TypeArray 6(float) 44 - 46: TypePointer Output 45 -47(@entryPointOutput.clip1): 46(ptr) Variable Output - 50: TypePointer Output 6(float) - 58: 15(int) Constant 3 - 4(main): 2 Function None 3 - 5: Label - 38(flattenTemp): 13(ptr) Variable Function - 39:9(VS_OUTPUT) FunctionCall 11(@main() - Store 38(flattenTemp) 39 - 42: 19(ptr) AccessChain 38(flattenTemp) 16 - 43: 7(fvec4) Load 42 - Store 41(@entryPointOutput.Position) 43 - 48: 24(ptr) AccessChain 38(flattenTemp) 21 23 - 49: 6(float) Load 48 - 51: 50(ptr) AccessChain 47(@entryPointOutput.clip1) 16 - Store 51 49 - 52: 24(ptr) AccessChain 38(flattenTemp) 21 27 - 53: 6(float) Load 52 - 54: 50(ptr) AccessChain 47(@entryPointOutput.clip1) 21 - Store 54 53 - 55: 24(ptr) AccessChain 38(flattenTemp) 21 30 - 56: 6(float) Load 55 - 57: 50(ptr) AccessChain 47(@entryPointOutput.clip1) 32 - Store 57 56 - 59: 24(ptr) AccessChain 38(flattenTemp) 32 - 60: 6(float) Load 59 - 61: 50(ptr) AccessChain 47(@entryPointOutput.clip1) 58 - Store 61 60 - Return - FunctionEnd - 11(@main():9(VS_OUTPUT) Function None 10 - 12: Label - 14(Output): 13(ptr) Variable Function - 20: 19(ptr) AccessChain 14(Output) 16 - Store 20 18 - 25: 24(ptr) AccessChain 14(Output) 21 23 - Store 25 17 - 28: 24(ptr) AccessChain 14(Output) 21 27 - Store 28 26 - 31: 24(ptr) AccessChain 14(Output) 21 30 - Store 31 29 - 34: 24(ptr) AccessChain 14(Output) 32 - Store 34 33 - 35:9(VS_OUTPUT) Load 14(Output) - ReturnValue 35 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.clipdistance-9.frag.out b/deps/glslang/Test/baseResults/hlsl.clipdistance-9.frag.out deleted file mode 100644 index b42727f8..00000000 --- a/deps/glslang/Test/baseResults/hlsl.clipdistance-9.frag.out +++ /dev/null @@ -1,250 +0,0 @@ -hlsl.clipdistance-9.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:6 Function Definition: @main(vf4;vf3;f1; ( temp 4-component vector of float) -0:6 Function Parameters: -0:6 'Position' ( in 4-component vector of float) -0:6 'clip0' ( in 3-component vector of float) -0:6 'clip1' ( in float) -0:? Sequence -0:7 Branch: Return with expression -0:7 add ( temp 4-component vector of float) -0:7 add ( temp 4-component vector of float) -0:7 'Position' ( in 4-component vector of float) -0:7 direct index ( temp float) -0:7 'clip0' ( in 3-component vector of float) -0:7 Constant: -0:7 0 (const int) -0:7 'clip1' ( in float) -0:6 Function Definition: main( ( temp void) -0:6 Function Parameters: -0:? Sequence -0:6 move second child to first child ( temp 4-component vector of float) -0:? 'Position' ( temp 4-component vector of float) -0:? 'Position' ( in 4-component vector of float FragCoord) -0:? Sequence -0:6 move second child to first child ( temp float) -0:6 direct index ( temp float) -0:? 'clip0' ( temp 3-component vector of float) -0:6 Constant: -0:6 0 (const int) -0:6 direct index ( in float ClipDistance) -0:? 'clip0' ( in 4-element array of float ClipDistance) -0:6 Constant: -0:6 0 (const int) -0:6 move second child to first child ( temp float) -0:6 direct index ( temp float) -0:? 'clip0' ( temp 3-component vector of float) -0:6 Constant: -0:6 1 (const int) -0:6 direct index ( in float ClipDistance) -0:? 'clip0' ( in 4-element array of float ClipDistance) -0:6 Constant: -0:6 1 (const int) -0:6 move second child to first child ( temp float) -0:6 direct index ( temp float) -0:? 'clip0' ( temp 3-component vector of float) -0:6 Constant: -0:6 2 (const int) -0:6 direct index ( in float ClipDistance) -0:? 'clip0' ( in 4-element array of float ClipDistance) -0:6 Constant: -0:6 2 (const int) -0:? Sequence -0:6 move second child to first child ( temp float) -0:? 'clip1' ( temp float) -0:6 direct index ( in float ClipDistance) -0:? 'clip0' ( in 4-element array of float ClipDistance) -0:6 Constant: -0:6 3 (const int) -0:6 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:6 Function Call: @main(vf4;vf3;f1; ( temp 4-component vector of float) -0:? 'Position' ( temp 4-component vector of float) -0:? 'clip0' ( temp 3-component vector of float) -0:? 'clip1' ( temp float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'Position' ( in 4-component vector of float FragCoord) -0:? 'clip0' ( in 4-element array of float ClipDistance) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:6 Function Definition: @main(vf4;vf3;f1; ( temp 4-component vector of float) -0:6 Function Parameters: -0:6 'Position' ( in 4-component vector of float) -0:6 'clip0' ( in 3-component vector of float) -0:6 'clip1' ( in float) -0:? Sequence -0:7 Branch: Return with expression -0:7 add ( temp 4-component vector of float) -0:7 add ( temp 4-component vector of float) -0:7 'Position' ( in 4-component vector of float) -0:7 direct index ( temp float) -0:7 'clip0' ( in 3-component vector of float) -0:7 Constant: -0:7 0 (const int) -0:7 'clip1' ( in float) -0:6 Function Definition: main( ( temp void) -0:6 Function Parameters: -0:? Sequence -0:6 move second child to first child ( temp 4-component vector of float) -0:? 'Position' ( temp 4-component vector of float) -0:? 'Position' ( in 4-component vector of float FragCoord) -0:? Sequence -0:6 move second child to first child ( temp float) -0:6 direct index ( temp float) -0:? 'clip0' ( temp 3-component vector of float) -0:6 Constant: -0:6 0 (const int) -0:6 direct index ( in float ClipDistance) -0:? 'clip0' ( in 4-element array of float ClipDistance) -0:6 Constant: -0:6 0 (const int) -0:6 move second child to first child ( temp float) -0:6 direct index ( temp float) -0:? 'clip0' ( temp 3-component vector of float) -0:6 Constant: -0:6 1 (const int) -0:6 direct index ( in float ClipDistance) -0:? 'clip0' ( in 4-element array of float ClipDistance) -0:6 Constant: -0:6 1 (const int) -0:6 move second child to first child ( temp float) -0:6 direct index ( temp float) -0:? 'clip0' ( temp 3-component vector of float) -0:6 Constant: -0:6 2 (const int) -0:6 direct index ( in float ClipDistance) -0:? 'clip0' ( in 4-element array of float ClipDistance) -0:6 Constant: -0:6 2 (const int) -0:? Sequence -0:6 move second child to first child ( temp float) -0:? 'clip1' ( temp float) -0:6 direct index ( in float ClipDistance) -0:? 'clip0' ( in 4-element array of float ClipDistance) -0:6 Constant: -0:6 3 (const int) -0:6 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:6 Function Call: @main(vf4;vf3;f1; ( temp 4-component vector of float) -0:? 'Position' ( temp 4-component vector of float) -0:? 'clip0' ( temp 3-component vector of float) -0:? 'clip1' ( temp float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'Position' ( in 4-component vector of float FragCoord) -0:? 'clip0' ( in 4-element array of float ClipDistance) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 68 - - Capability Shader - Capability ClipDistance - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 32 38 60 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 16 "@main(vf4;vf3;f1;" - Name 13 "Position" - Name 14 "clip0" - Name 15 "clip1" - Name 30 "Position" - Name 32 "Position" - Name 34 "clip0" - Name 38 "clip0" - Name 55 "clip1" - Name 60 "@entryPointOutput" - Name 61 "param" - Name 63 "param" - Name 65 "param" - Decorate 32(Position) BuiltIn FragCoord - Decorate 38(clip0) BuiltIn ClipDistance - Decorate 60(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 9: TypeVector 6(float) 3 - 10: TypePointer Function 9(fvec3) - 11: TypePointer Function 6(float) - 12: TypeFunction 7(fvec4) 8(ptr) 10(ptr) 11(ptr) - 19: TypeInt 32 0 - 20: 19(int) Constant 0 - 31: TypePointer Input 7(fvec4) - 32(Position): 31(ptr) Variable Input - 35: 19(int) Constant 4 - 36: TypeArray 6(float) 35 - 37: TypePointer Input 36 - 38(clip0): 37(ptr) Variable Input - 39: TypeInt 32 1 - 40: 39(int) Constant 0 - 41: TypePointer Input 6(float) - 45: 39(int) Constant 1 - 48: 19(int) Constant 1 - 50: 39(int) Constant 2 - 53: 19(int) Constant 2 - 56: 39(int) Constant 3 - 59: TypePointer Output 7(fvec4) -60(@entryPointOutput): 59(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 30(Position): 8(ptr) Variable Function - 34(clip0): 10(ptr) Variable Function - 55(clip1): 11(ptr) Variable Function - 61(param): 8(ptr) Variable Function - 63(param): 10(ptr) Variable Function - 65(param): 11(ptr) Variable Function - 33: 7(fvec4) Load 32(Position) - Store 30(Position) 33 - 42: 41(ptr) AccessChain 38(clip0) 40 - 43: 6(float) Load 42 - 44: 11(ptr) AccessChain 34(clip0) 20 - Store 44 43 - 46: 41(ptr) AccessChain 38(clip0) 45 - 47: 6(float) Load 46 - 49: 11(ptr) AccessChain 34(clip0) 48 - Store 49 47 - 51: 41(ptr) AccessChain 38(clip0) 50 - 52: 6(float) Load 51 - 54: 11(ptr) AccessChain 34(clip0) 53 - Store 54 52 - 57: 41(ptr) AccessChain 38(clip0) 56 - 58: 6(float) Load 57 - Store 55(clip1) 58 - 62: 7(fvec4) Load 30(Position) - Store 61(param) 62 - 64: 9(fvec3) Load 34(clip0) - Store 63(param) 64 - 66: 6(float) Load 55(clip1) - Store 65(param) 66 - 67: 7(fvec4) FunctionCall 16(@main(vf4;vf3;f1;) 61(param) 63(param) 65(param) - Store 60(@entryPointOutput) 67 - Return - FunctionEnd -16(@main(vf4;vf3;f1;): 7(fvec4) Function None 12 - 13(Position): 8(ptr) FunctionParameter - 14(clip0): 10(ptr) FunctionParameter - 15(clip1): 11(ptr) FunctionParameter - 17: Label - 18: 7(fvec4) Load 13(Position) - 21: 11(ptr) AccessChain 14(clip0) 20 - 22: 6(float) Load 21 - 23: 7(fvec4) CompositeConstruct 22 22 22 22 - 24: 7(fvec4) FAdd 18 23 - 25: 6(float) Load 15(clip1) - 26: 7(fvec4) CompositeConstruct 25 25 25 25 - 27: 7(fvec4) FAdd 24 26 - ReturnValue 27 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.clipdistance-9.vert.out b/deps/glslang/Test/baseResults/hlsl.clipdistance-9.vert.out deleted file mode 100644 index 7df30643..00000000 --- a/deps/glslang/Test/baseResults/hlsl.clipdistance-9.vert.out +++ /dev/null @@ -1,299 +0,0 @@ -hlsl.clipdistance-9.vert -Shader version: 500 -0:? Sequence -0:7 Function Definition: @main(vf3;f1; ( temp structure{ temp 4-component vector of float Position}) -0:7 Function Parameters: -0:7 'clip0' ( out 3-component vector of float) -0:7 'clip1' ( out float) -0:? Sequence -0:9 move second child to first child ( temp 4-component vector of float) -0:9 Position: direct index for structure ( temp 4-component vector of float) -0:9 'Output' ( temp structure{ temp 4-component vector of float Position}) -0:9 Constant: -0:9 0 (const int) -0:9 Constant: -0:9 0.000000 -0:9 0.000000 -0:9 0.000000 -0:9 0.000000 -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 'clip0' ( out 3-component vector of float) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 0.000000 -0:12 move second child to first child ( temp float) -0:12 direct index ( temp float) -0:12 'clip0' ( out 3-component vector of float) -0:12 Constant: -0:12 1 (const int) -0:12 Constant: -0:12 1.000000 -0:13 move second child to first child ( temp float) -0:13 direct index ( temp float) -0:13 'clip0' ( out 3-component vector of float) -0:13 Constant: -0:13 2 (const int) -0:13 Constant: -0:13 2.000000 -0:16 move second child to first child ( temp float) -0:16 'clip1' ( out float) -0:16 Constant: -0:16 3.000000 -0:18 Branch: Return with expression -0:18 'Output' ( temp structure{ temp 4-component vector of float Position}) -0:7 Function Definition: main( ( temp void) -0:7 Function Parameters: -0:? Sequence -0:7 Sequence -0:7 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) -0:7 Position: direct index for structure ( temp 4-component vector of float) -0:7 Function Call: @main(vf3;f1; ( temp structure{ temp 4-component vector of float Position}) -0:? 'clip0' ( temp 3-component vector of float) -0:? 'clip1' ( temp float) -0:7 Constant: -0:7 0 (const int) -0:? Sequence -0:7 move second child to first child ( temp float) -0:7 direct index ( out float ClipDistance) -0:? 'clip0' ( out 4-element array of float ClipDistance) -0:7 Constant: -0:7 0 (const int) -0:7 direct index ( temp float) -0:? 'clip0' ( temp 3-component vector of float) -0:7 Constant: -0:7 0 (const int) -0:7 move second child to first child ( temp float) -0:7 direct index ( out float ClipDistance) -0:? 'clip0' ( out 4-element array of float ClipDistance) -0:7 Constant: -0:7 1 (const int) -0:7 direct index ( temp float) -0:? 'clip0' ( temp 3-component vector of float) -0:7 Constant: -0:7 1 (const int) -0:7 move second child to first child ( temp float) -0:7 direct index ( out float ClipDistance) -0:? 'clip0' ( out 4-element array of float ClipDistance) -0:7 Constant: -0:7 2 (const int) -0:7 direct index ( temp float) -0:? 'clip0' ( temp 3-component vector of float) -0:7 Constant: -0:7 2 (const int) -0:? Sequence -0:7 move second child to first child ( temp float) -0:7 direct index ( out float ClipDistance) -0:? 'clip0' ( out 4-element array of float ClipDistance) -0:7 Constant: -0:7 3 (const int) -0:? 'clip1' ( temp float) -0:? Linker Objects -0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) -0:? 'clip0' ( out 4-element array of float ClipDistance) - - -Linked vertex stage: - - -Shader version: 500 -0:? Sequence -0:7 Function Definition: @main(vf3;f1; ( temp structure{ temp 4-component vector of float Position}) -0:7 Function Parameters: -0:7 'clip0' ( out 3-component vector of float) -0:7 'clip1' ( out float) -0:? Sequence -0:9 move second child to first child ( temp 4-component vector of float) -0:9 Position: direct index for structure ( temp 4-component vector of float) -0:9 'Output' ( temp structure{ temp 4-component vector of float Position}) -0:9 Constant: -0:9 0 (const int) -0:9 Constant: -0:9 0.000000 -0:9 0.000000 -0:9 0.000000 -0:9 0.000000 -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 'clip0' ( out 3-component vector of float) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 0.000000 -0:12 move second child to first child ( temp float) -0:12 direct index ( temp float) -0:12 'clip0' ( out 3-component vector of float) -0:12 Constant: -0:12 1 (const int) -0:12 Constant: -0:12 1.000000 -0:13 move second child to first child ( temp float) -0:13 direct index ( temp float) -0:13 'clip0' ( out 3-component vector of float) -0:13 Constant: -0:13 2 (const int) -0:13 Constant: -0:13 2.000000 -0:16 move second child to first child ( temp float) -0:16 'clip1' ( out float) -0:16 Constant: -0:16 3.000000 -0:18 Branch: Return with expression -0:18 'Output' ( temp structure{ temp 4-component vector of float Position}) -0:7 Function Definition: main( ( temp void) -0:7 Function Parameters: -0:? Sequence -0:7 Sequence -0:7 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) -0:7 Position: direct index for structure ( temp 4-component vector of float) -0:7 Function Call: @main(vf3;f1; ( temp structure{ temp 4-component vector of float Position}) -0:? 'clip0' ( temp 3-component vector of float) -0:? 'clip1' ( temp float) -0:7 Constant: -0:7 0 (const int) -0:? Sequence -0:7 move second child to first child ( temp float) -0:7 direct index ( out float ClipDistance) -0:? 'clip0' ( out 4-element array of float ClipDistance) -0:7 Constant: -0:7 0 (const int) -0:7 direct index ( temp float) -0:? 'clip0' ( temp 3-component vector of float) -0:7 Constant: -0:7 0 (const int) -0:7 move second child to first child ( temp float) -0:7 direct index ( out float ClipDistance) -0:? 'clip0' ( out 4-element array of float ClipDistance) -0:7 Constant: -0:7 1 (const int) -0:7 direct index ( temp float) -0:? 'clip0' ( temp 3-component vector of float) -0:7 Constant: -0:7 1 (const int) -0:7 move second child to first child ( temp float) -0:7 direct index ( out float ClipDistance) -0:? 'clip0' ( out 4-element array of float ClipDistance) -0:7 Constant: -0:7 2 (const int) -0:7 direct index ( temp float) -0:? 'clip0' ( temp 3-component vector of float) -0:7 Constant: -0:7 2 (const int) -0:? Sequence -0:7 move second child to first child ( temp float) -0:7 direct index ( out float ClipDistance) -0:? 'clip0' ( out 4-element array of float ClipDistance) -0:7 Constant: -0:7 3 (const int) -0:? 'clip1' ( temp float) -0:? Linker Objects -0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) -0:? 'clip0' ( out 4-element array of float ClipDistance) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 67 - - Capability Shader - Capability ClipDistance - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 39 51 - Source HLSL 500 - Name 4 "main" - Name 11 "VS_OUTPUT" - MemberName 11(VS_OUTPUT) 0 "Position" - Name 15 "@main(vf3;f1;" - Name 13 "clip0" - Name 14 "clip1" - Name 18 "Output" - Name 39 "@entryPointOutput.Position" - Name 40 "clip0" - Name 41 "clip1" - Name 42 "param" - Name 43 "param" - Name 51 "clip0" - Decorate 39(@entryPointOutput.Position) BuiltIn Position - Decorate 51(clip0) BuiltIn ClipDistance - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 3 - 8: TypePointer Function 7(fvec3) - 9: TypePointer Function 6(float) - 10: TypeVector 6(float) 4 - 11(VS_OUTPUT): TypeStruct 10(fvec4) - 12: TypeFunction 11(VS_OUTPUT) 8(ptr) 9(ptr) - 17: TypePointer Function 11(VS_OUTPUT) - 19: TypeInt 32 1 - 20: 19(int) Constant 0 - 21: 6(float) Constant 0 - 22: 10(fvec4) ConstantComposite 21 21 21 21 - 23: TypePointer Function 10(fvec4) - 25: TypeInt 32 0 - 26: 25(int) Constant 0 - 28: 6(float) Constant 1065353216 - 29: 25(int) Constant 1 - 31: 6(float) Constant 1073741824 - 32: 25(int) Constant 2 - 34: 6(float) Constant 1077936128 - 38: TypePointer Output 10(fvec4) -39(@entryPointOutput.Position): 38(ptr) Variable Output - 48: 25(int) Constant 4 - 49: TypeArray 6(float) 48 - 50: TypePointer Output 49 - 51(clip0): 50(ptr) Variable Output - 54: TypePointer Output 6(float) - 56: 19(int) Constant 1 - 60: 19(int) Constant 2 - 64: 19(int) Constant 3 - 4(main): 2 Function None 3 - 5: Label - 40(clip0): 8(ptr) Variable Function - 41(clip1): 9(ptr) Variable Function - 42(param): 8(ptr) Variable Function - 43(param): 9(ptr) Variable Function - 44:11(VS_OUTPUT) FunctionCall 15(@main(vf3;f1;) 42(param) 43(param) - 45: 7(fvec3) Load 42(param) - Store 40(clip0) 45 - 46: 6(float) Load 43(param) - Store 41(clip1) 46 - 47: 10(fvec4) CompositeExtract 44 0 - Store 39(@entryPointOutput.Position) 47 - 52: 9(ptr) AccessChain 40(clip0) 26 - 53: 6(float) Load 52 - 55: 54(ptr) AccessChain 51(clip0) 20 - Store 55 53 - 57: 9(ptr) AccessChain 40(clip0) 29 - 58: 6(float) Load 57 - 59: 54(ptr) AccessChain 51(clip0) 56 - Store 59 58 - 61: 9(ptr) AccessChain 40(clip0) 32 - 62: 6(float) Load 61 - 63: 54(ptr) AccessChain 51(clip0) 60 - Store 63 62 - 65: 6(float) Load 41(clip1) - 66: 54(ptr) AccessChain 51(clip0) 64 - Store 66 65 - Return - FunctionEnd -15(@main(vf3;f1;):11(VS_OUTPUT) Function None 12 - 13(clip0): 8(ptr) FunctionParameter - 14(clip1): 9(ptr) FunctionParameter - 16: Label - 18(Output): 17(ptr) Variable Function - 24: 23(ptr) AccessChain 18(Output) 20 - Store 24 22 - 27: 9(ptr) AccessChain 13(clip0) 26 - Store 27 21 - 30: 9(ptr) AccessChain 13(clip0) 29 - Store 30 28 - 33: 9(ptr) AccessChain 13(clip0) 32 - Store 33 31 - Store 14(clip1) 34 - 35:11(VS_OUTPUT) Load 18(Output) - ReturnValue 35 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.color.hull.tesc.out b/deps/glslang/Test/baseResults/hlsl.color.hull.tesc.out deleted file mode 100644 index e3c0a3e6..00000000 --- a/deps/glslang/Test/baseResults/hlsl.color.hull.tesc.out +++ /dev/null @@ -1,790 +0,0 @@ -hlsl.color.hull.tesc -Shader version: 500 -vertices = 3 -vertex spacing = equal_spacing -triangle order = cw -0:? Sequence -0:37 Function Definition: ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1; ( temp structure{ temp 3-element array of float edges, temp float inside}) -0:37 Function Parameters: -0:37 'inputPatch' ( in 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:37 'patchId' ( in uint) -0:? Sequence -0:42 move second child to first child ( temp float) -0:42 direct index ( temp float) -0:42 edges: direct index for structure ( temp 3-element array of float) -0:42 'output' ( temp structure{ temp 3-element array of float edges, temp float inside}) -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 0 (const int) -0:42 tessellationAmount: direct index for structure (layout( row_major std140) uniform float) -0:42 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding}) -0:42 Constant: -0:42 0 (const uint) -0:43 move second child to first child ( temp float) -0:43 direct index ( temp float) -0:43 edges: direct index for structure ( temp 3-element array of float) -0:43 'output' ( temp structure{ temp 3-element array of float edges, temp float inside}) -0:43 Constant: -0:43 0 (const int) -0:43 Constant: -0:43 1 (const int) -0:43 tessellationAmount: direct index for structure (layout( row_major std140) uniform float) -0:43 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding}) -0:43 Constant: -0:43 0 (const uint) -0:44 move second child to first child ( temp float) -0:44 direct index ( temp float) -0:44 edges: direct index for structure ( temp 3-element array of float) -0:44 'output' ( temp structure{ temp 3-element array of float edges, temp float inside}) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 2 (const int) -0:44 tessellationAmount: direct index for structure (layout( row_major std140) uniform float) -0:44 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding}) -0:44 Constant: -0:44 0 (const uint) -0:47 move second child to first child ( temp float) -0:47 inside: direct index for structure ( temp float) -0:47 'output' ( temp structure{ temp 3-element array of float edges, temp float inside}) -0:47 Constant: -0:47 1 (const int) -0:47 tessellationAmount: direct index for structure (layout( row_major std140) uniform float) -0:47 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding}) -0:47 Constant: -0:47 0 (const uint) -0:49 Branch: Return with expression -0:49 'output' ( temp structure{ temp 3-element array of float edges, temp float inside}) -0:63 Function Definition: @main(struct-HullInputType-vf3-vf41[3];u1;u1; ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:63 Function Parameters: -0:63 'patch' ( in 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:63 'pointId' ( in uint) -0:63 'patchId' ( in uint) -0:? Sequence -0:67 move second child to first child ( temp 3-component vector of float) -0:67 position: direct index for structure ( temp 3-component vector of float) -0:67 'output' ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:67 Constant: -0:67 0 (const int) -0:67 position: direct index for structure ( temp 3-component vector of float) -0:67 indirect index ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:67 'patch' ( in 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:67 'pointId' ( in uint) -0:67 Constant: -0:67 0 (const int) -0:70 move second child to first child ( temp 4-component vector of float) -0:70 color: direct index for structure ( temp 4-component vector of float) -0:70 'output' ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:70 Constant: -0:70 1 (const int) -0:70 color: direct index for structure ( temp 4-component vector of float) -0:70 indirect index ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:70 'patch' ( in 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:70 'pointId' ( in uint) -0:70 Constant: -0:70 1 (const int) -0:72 Branch: Return with expression -0:72 'output' ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:63 Function Definition: main( ( temp void) -0:63 Function Parameters: -0:? Sequence -0:63 Sequence -0:63 move second child to first child ( temp 3-component vector of float) -0:63 position: direct index for structure ( temp 3-component vector of float) -0:63 direct index ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:63 Constant: -0:63 0 (const int) -0:63 Constant: -0:63 0 (const int) -0:63 direct index (layout( location=0) in 3-component vector of float) -0:? 'patch.position' (layout( location=0) in 3-element array of 3-component vector of float) -0:63 Constant: -0:63 0 (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 direct index ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:63 Constant: -0:63 0 (const int) -0:63 Constant: -0:63 1 (const int) -0:63 direct index (layout( location=1) in 4-component vector of float) -0:? 'patch.color' (layout( location=1) in 3-element array of 4-component vector of float) -0:63 Constant: -0:63 0 (const int) -0:63 move second child to first child ( temp 3-component vector of float) -0:63 position: direct index for structure ( temp 3-component vector of float) -0:63 direct index ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:63 Constant: -0:63 1 (const int) -0:63 Constant: -0:63 0 (const int) -0:63 direct index (layout( location=0) in 3-component vector of float) -0:? 'patch.position' (layout( location=0) in 3-element array of 3-component vector of float) -0:63 Constant: -0:63 1 (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 direct index ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:63 Constant: -0:63 1 (const int) -0:63 Constant: -0:63 1 (const int) -0:63 direct index (layout( location=1) in 4-component vector of float) -0:? 'patch.color' (layout( location=1) in 3-element array of 4-component vector of float) -0:63 Constant: -0:63 1 (const int) -0:63 move second child to first child ( temp 3-component vector of float) -0:63 position: direct index for structure ( temp 3-component vector of float) -0:63 direct index ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:63 Constant: -0:63 2 (const int) -0:63 Constant: -0:63 0 (const int) -0:63 direct index (layout( location=0) in 3-component vector of float) -0:? 'patch.position' (layout( location=0) in 3-element array of 3-component vector of float) -0:63 Constant: -0:63 2 (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 direct index ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:63 Constant: -0:63 2 (const int) -0:63 Constant: -0:63 1 (const int) -0:63 direct index (layout( location=1) in 4-component vector of float) -0:? 'patch.color' (layout( location=1) in 3-element array of 4-component vector of float) -0:63 Constant: -0:63 2 (const int) -0:63 move second child to first child ( temp uint) -0:? 'pointId' ( temp uint) -0:? 'pointId' ( in uint InvocationID) -0:63 move second child to first child ( temp uint) -0:? 'patchId' ( temp uint) -0:? 'patchId' ( in uint PrimitiveID) -0:63 Sequence -0:63 move second child to first child ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:63 'flattenTemp' ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:63 Function Call: @main(struct-HullInputType-vf3-vf41[3];u1;u1; ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:? 'pointId' ( temp uint) -0:? 'patchId' ( temp uint) -0:63 move second child to first child ( temp 3-component vector of float) -0:63 indirect index (layout( location=0) out 3-component vector of float) -0:? '@entryPointOutput.position' (layout( location=0) out 3-element array of 3-component vector of float) -0:? 'pointId' ( in uint InvocationID) -0:63 position: direct index for structure ( temp 3-component vector of float) -0:63 'flattenTemp' ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:63 Constant: -0:63 0 (const int) -0:63 move second child to first child ( temp 4-component vector of float) -0:63 indirect index (layout( location=1) out 4-component vector of float) -0:? '@entryPointOutput.color' (layout( location=1) out 3-element array of 4-component vector of float) -0:? 'pointId' ( in uint InvocationID) -0:63 color: direct index for structure ( temp 4-component vector of float) -0:63 'flattenTemp' ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:63 Constant: -0:63 1 (const int) -0:? Barrier ( temp void) -0:? Test condition and select ( temp void) -0:? Condition -0:? Compare Equal ( temp bool) -0:? 'pointId' ( in uint InvocationID) -0:? Constant: -0:? 0 (const int) -0:? true case -0:? Sequence -0:? move second child to first child ( temp structure{ temp 3-element array of float edges, temp float inside}) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside}) -0:? Function Call: ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1; ( temp structure{ temp 3-element array of float edges, temp float inside}) -0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:? 'patchId' ( in uint PrimitiveID) -0:? Sequence -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 0 (const int) -0:? direct index ( temp float) -0:? edges: direct index for structure ( temp 3-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 0 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 1 (const int) -0:? direct index ( temp float) -0:? edges: direct index for structure ( temp 3-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 1 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 2 (const int) -0:? direct index ( temp float) -0:? edges: direct index for structure ( temp 3-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 2 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelInner) -0:? '@patchConstantOutput.inside' ( patch out 2-element array of float TessLevelInner) -0:? Constant: -0:? 0 (const int) -0:? inside: direct index for structure ( temp float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside}) -0:? Constant: -0:? 1 (const int) -0:? Linker Objects -0:? 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding}) -0:? '@entryPointOutput.position' (layout( location=0) out 3-element array of 3-component vector of float) -0:? '@entryPointOutput.color' (layout( location=1) out 3-element array of 4-component vector of float) -0:? 'patch.position' (layout( location=0) in 3-element array of 3-component vector of float) -0:? 'patch.color' (layout( location=1) in 3-element array of 4-component vector of float) -0:? 'pointId' ( in uint InvocationID) -0:? 'patchId' ( in uint PrimitiveID) -0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) -0:? '@patchConstantOutput.inside' ( patch out 2-element array of float TessLevelInner) - - -Linked tessellation control stage: - - -Shader version: 500 -vertices = 3 -vertex spacing = equal_spacing -triangle order = cw -0:? Sequence -0:37 Function Definition: ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1; ( temp structure{ temp 3-element array of float edges, temp float inside}) -0:37 Function Parameters: -0:37 'inputPatch' ( in 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:37 'patchId' ( in uint) -0:? Sequence -0:42 move second child to first child ( temp float) -0:42 direct index ( temp float) -0:42 edges: direct index for structure ( temp 3-element array of float) -0:42 'output' ( temp structure{ temp 3-element array of float edges, temp float inside}) -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 0 (const int) -0:42 tessellationAmount: direct index for structure (layout( row_major std140) uniform float) -0:42 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding}) -0:42 Constant: -0:42 0 (const uint) -0:43 move second child to first child ( temp float) -0:43 direct index ( temp float) -0:43 edges: direct index for structure ( temp 3-element array of float) -0:43 'output' ( temp structure{ temp 3-element array of float edges, temp float inside}) -0:43 Constant: -0:43 0 (const int) -0:43 Constant: -0:43 1 (const int) -0:43 tessellationAmount: direct index for structure (layout( row_major std140) uniform float) -0:43 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding}) -0:43 Constant: -0:43 0 (const uint) -0:44 move second child to first child ( temp float) -0:44 direct index ( temp float) -0:44 edges: direct index for structure ( temp 3-element array of float) -0:44 'output' ( temp structure{ temp 3-element array of float edges, temp float inside}) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 2 (const int) -0:44 tessellationAmount: direct index for structure (layout( row_major std140) uniform float) -0:44 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding}) -0:44 Constant: -0:44 0 (const uint) -0:47 move second child to first child ( temp float) -0:47 inside: direct index for structure ( temp float) -0:47 'output' ( temp structure{ temp 3-element array of float edges, temp float inside}) -0:47 Constant: -0:47 1 (const int) -0:47 tessellationAmount: direct index for structure (layout( row_major std140) uniform float) -0:47 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding}) -0:47 Constant: -0:47 0 (const uint) -0:49 Branch: Return with expression -0:49 'output' ( temp structure{ temp 3-element array of float edges, temp float inside}) -0:63 Function Definition: @main(struct-HullInputType-vf3-vf41[3];u1;u1; ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:63 Function Parameters: -0:63 'patch' ( in 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:63 'pointId' ( in uint) -0:63 'patchId' ( in uint) -0:? Sequence -0:67 move second child to first child ( temp 3-component vector of float) -0:67 position: direct index for structure ( temp 3-component vector of float) -0:67 'output' ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:67 Constant: -0:67 0 (const int) -0:67 position: direct index for structure ( temp 3-component vector of float) -0:67 indirect index ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:67 'patch' ( in 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:67 'pointId' ( in uint) -0:67 Constant: -0:67 0 (const int) -0:70 move second child to first child ( temp 4-component vector of float) -0:70 color: direct index for structure ( temp 4-component vector of float) -0:70 'output' ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:70 Constant: -0:70 1 (const int) -0:70 color: direct index for structure ( temp 4-component vector of float) -0:70 indirect index ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:70 'patch' ( in 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:70 'pointId' ( in uint) -0:70 Constant: -0:70 1 (const int) -0:72 Branch: Return with expression -0:72 'output' ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:63 Function Definition: main( ( temp void) -0:63 Function Parameters: -0:? Sequence -0:63 Sequence -0:63 move second child to first child ( temp 3-component vector of float) -0:63 position: direct index for structure ( temp 3-component vector of float) -0:63 direct index ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:63 Constant: -0:63 0 (const int) -0:63 Constant: -0:63 0 (const int) -0:63 direct index (layout( location=0) in 3-component vector of float) -0:? 'patch.position' (layout( location=0) in 3-element array of 3-component vector of float) -0:63 Constant: -0:63 0 (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 direct index ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:63 Constant: -0:63 0 (const int) -0:63 Constant: -0:63 1 (const int) -0:63 direct index (layout( location=1) in 4-component vector of float) -0:? 'patch.color' (layout( location=1) in 3-element array of 4-component vector of float) -0:63 Constant: -0:63 0 (const int) -0:63 move second child to first child ( temp 3-component vector of float) -0:63 position: direct index for structure ( temp 3-component vector of float) -0:63 direct index ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:63 Constant: -0:63 1 (const int) -0:63 Constant: -0:63 0 (const int) -0:63 direct index (layout( location=0) in 3-component vector of float) -0:? 'patch.position' (layout( location=0) in 3-element array of 3-component vector of float) -0:63 Constant: -0:63 1 (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 direct index ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:63 Constant: -0:63 1 (const int) -0:63 Constant: -0:63 1 (const int) -0:63 direct index (layout( location=1) in 4-component vector of float) -0:? 'patch.color' (layout( location=1) in 3-element array of 4-component vector of float) -0:63 Constant: -0:63 1 (const int) -0:63 move second child to first child ( temp 3-component vector of float) -0:63 position: direct index for structure ( temp 3-component vector of float) -0:63 direct index ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:63 Constant: -0:63 2 (const int) -0:63 Constant: -0:63 0 (const int) -0:63 direct index (layout( location=0) in 3-component vector of float) -0:? 'patch.position' (layout( location=0) in 3-element array of 3-component vector of float) -0:63 Constant: -0:63 2 (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 direct index ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:63 Constant: -0:63 2 (const int) -0:63 Constant: -0:63 1 (const int) -0:63 direct index (layout( location=1) in 4-component vector of float) -0:? 'patch.color' (layout( location=1) in 3-element array of 4-component vector of float) -0:63 Constant: -0:63 2 (const int) -0:63 move second child to first child ( temp uint) -0:? 'pointId' ( temp uint) -0:? 'pointId' ( in uint InvocationID) -0:63 move second child to first child ( temp uint) -0:? 'patchId' ( temp uint) -0:? 'patchId' ( in uint PrimitiveID) -0:63 Sequence -0:63 move second child to first child ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:63 'flattenTemp' ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:63 Function Call: @main(struct-HullInputType-vf3-vf41[3];u1;u1; ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:? 'pointId' ( temp uint) -0:? 'patchId' ( temp uint) -0:63 move second child to first child ( temp 3-component vector of float) -0:63 indirect index (layout( location=0) out 3-component vector of float) -0:? '@entryPointOutput.position' (layout( location=0) out 3-element array of 3-component vector of float) -0:? 'pointId' ( in uint InvocationID) -0:63 position: direct index for structure ( temp 3-component vector of float) -0:63 'flattenTemp' ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:63 Constant: -0:63 0 (const int) -0:63 move second child to first child ( temp 4-component vector of float) -0:63 indirect index (layout( location=1) out 4-component vector of float) -0:? '@entryPointOutput.color' (layout( location=1) out 3-element array of 4-component vector of float) -0:? 'pointId' ( in uint InvocationID) -0:63 color: direct index for structure ( temp 4-component vector of float) -0:63 'flattenTemp' ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:63 Constant: -0:63 1 (const int) -0:? Barrier ( temp void) -0:? Test condition and select ( temp void) -0:? Condition -0:? Compare Equal ( temp bool) -0:? 'pointId' ( in uint InvocationID) -0:? Constant: -0:? 0 (const int) -0:? true case -0:? Sequence -0:? move second child to first child ( temp structure{ temp 3-element array of float edges, temp float inside}) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside}) -0:? Function Call: ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1; ( temp structure{ temp 3-element array of float edges, temp float inside}) -0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) -0:? 'patchId' ( in uint PrimitiveID) -0:? Sequence -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 0 (const int) -0:? direct index ( temp float) -0:? edges: direct index for structure ( temp 3-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 0 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 1 (const int) -0:? direct index ( temp float) -0:? edges: direct index for structure ( temp 3-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 1 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 2 (const int) -0:? direct index ( temp float) -0:? edges: direct index for structure ( temp 3-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 2 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelInner) -0:? '@patchConstantOutput.inside' ( patch out 2-element array of float TessLevelInner) -0:? Constant: -0:? 0 (const int) -0:? inside: direct index for structure ( temp float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside}) -0:? Constant: -0:? 1 (const int) -0:? Linker Objects -0:? 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding}) -0:? '@entryPointOutput.position' (layout( location=0) out 3-element array of 3-component vector of float) -0:? '@entryPointOutput.color' (layout( location=1) out 3-element array of 4-component vector of float) -0:? 'patch.position' (layout( location=0) in 3-element array of 3-component vector of float) -0:? 'patch.color' (layout( location=1) in 3-element array of 4-component vector of float) -0:? 'pointId' ( in uint InvocationID) -0:? 'patchId' ( in uint PrimitiveID) -0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) -0:? '@patchConstantOutput.inside' ( patch out 2-element array of float TessLevelInner) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 159 - - Capability Tessellation - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint TessellationControl 4 "main" 73 80 99 102 113 120 142 155 - ExecutionMode 4 OutputVertices 3 - ExecutionMode 4 Triangles - ExecutionMode 4 SpacingEqual - ExecutionMode 4 VertexOrderCw - Source HLSL 500 - Name 4 "main" - Name 9 "HullInputType" - MemberName 9(HullInputType) 0 "position" - MemberName 9(HullInputType) 1 "color" - Name 16 "ConstantOutputType" - MemberName 16(ConstantOutputType) 0 "edges" - MemberName 16(ConstantOutputType) 1 "inside" - Name 20 "ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1;" - Name 18 "inputPatch" - Name 19 "patchId" - Name 22 "HullOutputType" - MemberName 22(HullOutputType) 0 "position" - MemberName 22(HullOutputType) 1 "color" - Name 27 "@main(struct-HullInputType-vf3-vf41[3];u1;u1;" - Name 24 "patch" - Name 25 "pointId" - Name 26 "patchId" - Name 30 "output" - Name 33 "TessellationBuffer" - MemberName 33(TessellationBuffer) 0 "tessellationAmount" - MemberName 33(TessellationBuffer) 1 "padding" - Name 35 "" - Name 56 "output" - Name 70 "patch" - Name 73 "patch.position" - Name 80 "patch.color" - Name 97 "pointId" - Name 99 "pointId" - Name 101 "patchId" - Name 102 "patchId" - Name 104 "flattenTemp" - Name 105 "param" - Name 107 "param" - Name 109 "param" - Name 113 "@entryPointOutput.position" - Name 120 "@entryPointOutput.color" - Name 134 "@patchConstantResult" - Name 135 "param" - Name 137 "param" - Name 142 "@patchConstantOutput.edges" - Name 155 "@patchConstantOutput.inside" - MemberDecorate 33(TessellationBuffer) 0 Offset 0 - MemberDecorate 33(TessellationBuffer) 1 Offset 4 - Decorate 33(TessellationBuffer) Block - Decorate 35 DescriptorSet 0 - Decorate 35 Binding 0 - Decorate 73(patch.position) Location 0 - Decorate 80(patch.color) Location 1 - Decorate 99(pointId) BuiltIn InvocationId - Decorate 102(patchId) BuiltIn PrimitiveId - Decorate 113(@entryPointOutput.position) Location 0 - Decorate 120(@entryPointOutput.color) Location 1 - Decorate 142(@patchConstantOutput.edges) Patch - Decorate 142(@patchConstantOutput.edges) BuiltIn TessLevelOuter - Decorate 155(@patchConstantOutput.inside) Patch - Decorate 155(@patchConstantOutput.inside) BuiltIn TessLevelInner - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 3 - 8: TypeVector 6(float) 4 -9(HullInputType): TypeStruct 7(fvec3) 8(fvec4) - 10: TypeInt 32 0 - 11: 10(int) Constant 3 - 12: TypeArray 9(HullInputType) 11 - 13: TypePointer Function 12 - 14: TypePointer Function 10(int) - 15: TypeArray 6(float) 11 -16(ConstantOutputType): TypeStruct 15 6(float) - 17: TypeFunction 16(ConstantOutputType) 13(ptr) 14(ptr) -22(HullOutputType): TypeStruct 7(fvec3) 8(fvec4) - 23: TypeFunction 22(HullOutputType) 13(ptr) 14(ptr) 14(ptr) - 29: TypePointer Function 16(ConstantOutputType) - 31: TypeInt 32 1 - 32: 31(int) Constant 0 -33(TessellationBuffer): TypeStruct 6(float) 7(fvec3) - 34: TypePointer Uniform 33(TessellationBuffer) - 35: 34(ptr) Variable Uniform - 36: TypePointer Uniform 6(float) - 39: TypePointer Function 6(float) - 41: 31(int) Constant 1 - 45: 31(int) Constant 2 - 55: TypePointer Function 22(HullOutputType) - 58: TypePointer Function 7(fvec3) - 63: TypePointer Function 8(fvec4) - 71: TypeArray 7(fvec3) 11 - 72: TypePointer Input 71 -73(patch.position): 72(ptr) Variable Input - 74: TypePointer Input 7(fvec3) - 78: TypeArray 8(fvec4) 11 - 79: TypePointer Input 78 - 80(patch.color): 79(ptr) Variable Input - 81: TypePointer Input 8(fvec4) - 98: TypePointer Input 10(int) - 99(pointId): 98(ptr) Variable Input - 102(patchId): 98(ptr) Variable Input - 112: TypePointer Output 71 -113(@entryPointOutput.position): 112(ptr) Variable Output - 117: TypePointer Output 7(fvec3) - 119: TypePointer Output 78 -120(@entryPointOutput.color): 119(ptr) Variable Output - 124: TypePointer Output 8(fvec4) - 126: 10(int) Constant 2 - 127: 10(int) Constant 4 - 128: 10(int) Constant 0 - 130: TypeBool - 140: TypeArray 6(float) 127 - 141: TypePointer Output 140 -142(@patchConstantOutput.edges): 141(ptr) Variable Output - 145: TypePointer Output 6(float) - 153: TypeArray 6(float) 126 - 154: TypePointer Output 153 -155(@patchConstantOutput.inside): 154(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 70(patch): 13(ptr) Variable Function - 97(pointId): 14(ptr) Variable Function - 101(patchId): 14(ptr) Variable Function -104(flattenTemp): 55(ptr) Variable Function - 105(param): 13(ptr) Variable Function - 107(param): 14(ptr) Variable Function - 109(param): 14(ptr) Variable Function -134(@patchConstantResult): 29(ptr) Variable Function - 135(param): 13(ptr) Variable Function - 137(param): 14(ptr) Variable Function - 75: 74(ptr) AccessChain 73(patch.position) 32 - 76: 7(fvec3) Load 75 - 77: 58(ptr) AccessChain 70(patch) 32 32 - Store 77 76 - 82: 81(ptr) AccessChain 80(patch.color) 32 - 83: 8(fvec4) Load 82 - 84: 63(ptr) AccessChain 70(patch) 32 41 - Store 84 83 - 85: 74(ptr) AccessChain 73(patch.position) 41 - 86: 7(fvec3) Load 85 - 87: 58(ptr) AccessChain 70(patch) 41 32 - Store 87 86 - 88: 81(ptr) AccessChain 80(patch.color) 41 - 89: 8(fvec4) Load 88 - 90: 63(ptr) AccessChain 70(patch) 41 41 - Store 90 89 - 91: 74(ptr) AccessChain 73(patch.position) 45 - 92: 7(fvec3) Load 91 - 93: 58(ptr) AccessChain 70(patch) 45 32 - Store 93 92 - 94: 81(ptr) AccessChain 80(patch.color) 45 - 95: 8(fvec4) Load 94 - 96: 63(ptr) AccessChain 70(patch) 45 41 - Store 96 95 - 100: 10(int) Load 99(pointId) - Store 97(pointId) 100 - 103: 10(int) Load 102(patchId) - Store 101(patchId) 103 - 106: 12 Load 70(patch) - Store 105(param) 106 - 108: 10(int) Load 97(pointId) - Store 107(param) 108 - 110: 10(int) Load 101(patchId) - Store 109(param) 110 - 111:22(HullOutputType) FunctionCall 27(@main(struct-HullInputType-vf3-vf41[3];u1;u1;) 105(param) 107(param) 109(param) - Store 104(flattenTemp) 111 - 114: 10(int) Load 99(pointId) - 115: 58(ptr) AccessChain 104(flattenTemp) 32 - 116: 7(fvec3) Load 115 - 118: 117(ptr) AccessChain 113(@entryPointOutput.position) 114 - Store 118 116 - 121: 10(int) Load 99(pointId) - 122: 63(ptr) AccessChain 104(flattenTemp) 41 - 123: 8(fvec4) Load 122 - 125: 124(ptr) AccessChain 120(@entryPointOutput.color) 121 - Store 125 123 - ControlBarrier 126 127 128 - 129: 10(int) Load 99(pointId) - 131: 130(bool) IEqual 129 32 - SelectionMerge 133 None - BranchConditional 131 132 133 - 132: Label - 136: 12 Load 70(patch) - Store 135(param) 136 - 138: 10(int) Load 102(patchId) - Store 137(param) 138 - 139:16(ConstantOutputType) FunctionCall 20(ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1;) 135(param) 137(param) - Store 134(@patchConstantResult) 139 - 143: 39(ptr) AccessChain 134(@patchConstantResult) 32 32 - 144: 6(float) Load 143 - 146: 145(ptr) AccessChain 142(@patchConstantOutput.edges) 32 - Store 146 144 - 147: 39(ptr) AccessChain 134(@patchConstantResult) 32 41 - 148: 6(float) Load 147 - 149: 145(ptr) AccessChain 142(@patchConstantOutput.edges) 41 - Store 149 148 - 150: 39(ptr) AccessChain 134(@patchConstantResult) 32 45 - 151: 6(float) Load 150 - 152: 145(ptr) AccessChain 142(@patchConstantOutput.edges) 45 - Store 152 151 - 156: 39(ptr) AccessChain 134(@patchConstantResult) 41 - 157: 6(float) Load 156 - 158: 145(ptr) AccessChain 155(@patchConstantOutput.inside) 32 - Store 158 157 - Branch 133 - 133: Label - Return - FunctionEnd -20(ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1;):16(ConstantOutputType) Function None 17 - 18(inputPatch): 13(ptr) FunctionParameter - 19(patchId): 14(ptr) FunctionParameter - 21: Label - 30(output): 29(ptr) Variable Function - 37: 36(ptr) AccessChain 35 32 - 38: 6(float) Load 37 - 40: 39(ptr) AccessChain 30(output) 32 32 - Store 40 38 - 42: 36(ptr) AccessChain 35 32 - 43: 6(float) Load 42 - 44: 39(ptr) AccessChain 30(output) 32 41 - Store 44 43 - 46: 36(ptr) AccessChain 35 32 - 47: 6(float) Load 46 - 48: 39(ptr) AccessChain 30(output) 32 45 - Store 48 47 - 49: 36(ptr) AccessChain 35 32 - 50: 6(float) Load 49 - 51: 39(ptr) AccessChain 30(output) 41 - Store 51 50 - 52:16(ConstantOutputType) Load 30(output) - ReturnValue 52 - FunctionEnd -27(@main(struct-HullInputType-vf3-vf41[3];u1;u1;):22(HullOutputType) Function None 23 - 24(patch): 13(ptr) FunctionParameter - 25(pointId): 14(ptr) FunctionParameter - 26(patchId): 14(ptr) FunctionParameter - 28: Label - 56(output): 55(ptr) Variable Function - 57: 10(int) Load 25(pointId) - 59: 58(ptr) AccessChain 24(patch) 57 32 - 60: 7(fvec3) Load 59 - 61: 58(ptr) AccessChain 56(output) 32 - Store 61 60 - 62: 10(int) Load 25(pointId) - 64: 63(ptr) AccessChain 24(patch) 62 41 - 65: 8(fvec4) Load 64 - 66: 63(ptr) AccessChain 56(output) 41 - Store 66 65 - 67:22(HullOutputType) Load 56(output) - ReturnValue 67 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.comparison.vec.frag.out b/deps/glslang/Test/baseResults/hlsl.comparison.vec.frag.out deleted file mode 100644 index 9fec4338..00000000 --- a/deps/glslang/Test/baseResults/hlsl.comparison.vec.frag.out +++ /dev/null @@ -1,417 +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:5 Constant: -0:5 0.000000 -0:5 0.000000 -0:5 0.000000 -0:5 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:5 Constant: -0:5 0.000000 -0:5 0.000000 -0:5 0.000000 -0:5 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): 8000a -// 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 - Decorate 95 Binding 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) FUnordNotEqual 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) FUnordNotEqual 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) FUnordNotEqual 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/Test/baseResults/hlsl.conditional.frag.out b/deps/glslang/Test/baseResults/hlsl.conditional.frag.out deleted file mode 100644 index 99f2538c..00000000 --- a/deps/glslang/Test/baseResults/hlsl.conditional.frag.out +++ /dev/null @@ -1,798 +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:41 Construct vec4 ( temp 4-component vector of float) -0:41 Function Call: fbSelect(vb2;vf2;vf2; ( temp 2-component vector of float) -0:41 Constant: -0:41 true (const bool) -0:41 false (const bool) -0:41 Constant: -0:41 1.000000 -0:41 2.000000 -0:41 Constant: -0:41 3.000000 -0:41 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:41 Construct vec4 ( temp 4-component vector of float) -0:41 Function Call: fbSelect(vb2;vf2;vf2; ( temp 2-component vector of float) -0:41 Constant: -0:41 true (const bool) -0:41 false (const bool) -0:41 Constant: -0:41 1.000000 -0:41 2.000000 -0:41 Constant: -0:41 3.000000 -0:41 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): 8000a -// 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 31 Binding 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) FUnordNotEqual 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) FUnordNotEqual 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) FUnordNotEqual 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) FUnordNotEqual 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/Test/baseResults/hlsl.constantbuffer.frag.out b/deps/glslang/Test/baseResults/hlsl.constantbuffer.frag.out deleted file mode 100644 index 12e819bc..00000000 --- a/deps/glslang/Test/baseResults/hlsl.constantbuffer.frag.out +++ /dev/null @@ -1,244 +0,0 @@ -hlsl.constantbuffer.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:20 Function Definition: @main( ( temp 4-component vector of float) -0:20 Function Parameters: -0:? Sequence -0:21 Test condition and select ( temp void) -0:21 Condition -0:21 x: direct index for structure (layout( row_major std140) uniform bool) -0:21 direct index (layout( row_major std140) temp block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) -0:21 direct index (layout( row_major std140) temp 4-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) -0:21 'cb3' (layout( row_major std140) uniform 2-element array of 4-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) -0:21 Constant: -0:21 1 (const int) -0:21 Constant: -0:21 2 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 true case -0:22 Branch: Return with expression -0:22 add ( temp 4-component vector of float) -0:22 add ( temp 4-component vector of float) -0:22 x: direct index for structure (layout( row_major std140) uniform 4-component vector of float) -0:22 'cb1' (layout( binding=12 row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float x}) -0:22 Constant: -0:22 0 (const int) -0:22 y: direct index for structure (layout( row_major std140) uniform float) -0:22 direct index (layout( row_major std140) temp block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) -0:22 'cb2' (layout( row_major std140) uniform 3-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) -0:22 Constant: -0:22 1 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 Convert int to float ( temp float) -0:22 c1: direct index for structure (layout( row_major std140) uniform int) -0:22 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform int c1}) -0:22 Constant: -0:22 0 (const uint) -0:21 false case -0:24 Branch: Return with expression -0:24 Construct vec4 ( temp 4-component vector of float) -0:24 y: direct index for structure (layout( row_major std140) uniform float) -0:24 direct index (layout( row_major std140) temp block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) -0:24 direct index (layout( row_major std140) temp 4-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) -0:24 'cb3' (layout( row_major std140) uniform 2-element array of 4-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 3 (const int) -0:24 Constant: -0:24 1 (const int) -0:20 Function Definition: main( ( temp void) -0:20 Function Parameters: -0:? Sequence -0:20 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:20 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'cb1' (layout( binding=12 row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float x}) -0:? 'cb2' (layout( row_major std140) uniform 3-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) -0:? 'cb3' (layout( row_major std140) uniform 2-element array of 4-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) -0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform int c1}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:20 Function Definition: @main( ( temp 4-component vector of float) -0:20 Function Parameters: -0:? Sequence -0:21 Test condition and select ( temp void) -0:21 Condition -0:21 x: direct index for structure (layout( row_major std140) uniform bool) -0:21 direct index (layout( row_major std140) temp block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) -0:21 direct index (layout( row_major std140) temp 4-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) -0:21 'cb3' (layout( row_major std140) uniform 2-element array of 4-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) -0:21 Constant: -0:21 1 (const int) -0:21 Constant: -0:21 2 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 true case -0:22 Branch: Return with expression -0:22 add ( temp 4-component vector of float) -0:22 add ( temp 4-component vector of float) -0:22 x: direct index for structure (layout( row_major std140) uniform 4-component vector of float) -0:22 'cb1' (layout( binding=12 row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float x}) -0:22 Constant: -0:22 0 (const int) -0:22 y: direct index for structure (layout( row_major std140) uniform float) -0:22 direct index (layout( row_major std140) temp block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) -0:22 'cb2' (layout( row_major std140) uniform 3-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) -0:22 Constant: -0:22 1 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 Convert int to float ( temp float) -0:22 c1: direct index for structure (layout( row_major std140) uniform int) -0:22 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform int c1}) -0:22 Constant: -0:22 0 (const uint) -0:21 false case -0:24 Branch: Return with expression -0:24 Construct vec4 ( temp 4-component vector of float) -0:24 y: direct index for structure (layout( row_major std140) uniform float) -0:24 direct index (layout( row_major std140) temp block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) -0:24 direct index (layout( row_major std140) temp 4-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) -0:24 'cb3' (layout( row_major std140) uniform 2-element array of 4-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 3 (const int) -0:24 Constant: -0:24 1 (const int) -0:20 Function Definition: main( ( temp void) -0:20 Function Parameters: -0:? Sequence -0:20 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:20 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'cb1' (layout( binding=12 row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float x}) -0:? 'cb2' (layout( row_major std140) uniform 3-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) -0:? 'cb3' (layout( row_major std140) uniform 2-element array of 4-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) -0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform int c1}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 66 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 64 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 9 "@main(" - Name 12 "cb3" - MemberName 12(cb3) 0 "x" - MemberName 12(cb3) 1 "y" - Name 18 "cb3" - Name 31 "cb1" - MemberName 31(cb1) 0 "x" - Name 33 "cb1" - Name 40 "cb2" - Name 46 "cbuff" - MemberName 46(cbuff) 0 "c1" - Name 48 "" - Name 64 "@entryPointOutput" - MemberDecorate 12(cb3) 0 Offset 0 - MemberDecorate 12(cb3) 1 Offset 4 - Decorate 12(cb3) Block - Decorate 18(cb3) DescriptorSet 0 - Decorate 18(cb3) Binding 1 - MemberDecorate 31(cb1) 0 Offset 0 - Decorate 31(cb1) Block - Decorate 33(cb1) DescriptorSet 0 - Decorate 33(cb1) Binding 12 - Decorate 40(cb2) DescriptorSet 0 - Decorate 40(cb2) Binding 0 - MemberDecorate 46(cbuff) 0 Offset 0 - Decorate 46(cbuff) Block - Decorate 48 DescriptorSet 0 - Decorate 48 Binding 2 - Decorate 64(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 11: TypeInt 32 0 - 12(cb3): TypeStruct 11(int) 6(float) - 13: 11(int) Constant 4 - 14: TypeArray 12(cb3) 13 - 15: 11(int) Constant 2 - 16: TypeArray 14 15 - 17: TypePointer Uniform 16 - 18(cb3): 17(ptr) Variable Uniform - 19: TypeInt 32 1 - 20: 19(int) Constant 1 - 21: 19(int) Constant 2 - 22: 19(int) Constant 0 - 23: TypePointer Uniform 11(int) - 26: TypeBool - 27: 11(int) Constant 0 - 31(cb1): TypeStruct 7(fvec4) - 32: TypePointer Uniform 31(cb1) - 33(cb1): 32(ptr) Variable Uniform - 34: TypePointer Uniform 7(fvec4) - 37: 11(int) Constant 3 - 38: TypeArray 12(cb3) 37 - 39: TypePointer Uniform 38 - 40(cb2): 39(ptr) Variable Uniform - 41: TypePointer Uniform 6(float) - 46(cbuff): TypeStruct 19(int) - 47: TypePointer Uniform 46(cbuff) - 48: 47(ptr) Variable Uniform - 49: TypePointer Uniform 19(int) - 57: 19(int) Constant 3 - 63: TypePointer Output 7(fvec4) -64(@entryPointOutput): 63(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 65: 7(fvec4) FunctionCall 9(@main() - Store 64(@entryPointOutput) 65 - Return - FunctionEnd - 9(@main(): 7(fvec4) Function None 8 - 10: Label - 24: 23(ptr) AccessChain 18(cb3) 20 21 22 - 25: 11(int) Load 24 - 28: 26(bool) INotEqual 25 27 - SelectionMerge 30 None - BranchConditional 28 29 56 - 29: Label - 35: 34(ptr) AccessChain 33(cb1) 22 - 36: 7(fvec4) Load 35 - 42: 41(ptr) AccessChain 40(cb2) 20 20 - 43: 6(float) Load 42 - 44: 7(fvec4) CompositeConstruct 43 43 43 43 - 45: 7(fvec4) FAdd 36 44 - 50: 49(ptr) AccessChain 48 22 - 51: 19(int) Load 50 - 52: 6(float) ConvertSToF 51 - 53: 7(fvec4) CompositeConstruct 52 52 52 52 - 54: 7(fvec4) FAdd 45 53 - ReturnValue 54 - 56: Label - 58: 41(ptr) AccessChain 18(cb3) 20 57 20 - 59: 6(float) Load 58 - 60: 7(fvec4) CompositeConstruct 59 59 59 59 - ReturnValue 60 - 30: Label - Unreachable - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.constructArray.vert.out b/deps/glslang/Test/baseResults/hlsl.constructArray.vert.out deleted file mode 100644 index b070735a..00000000 --- a/deps/glslang/Test/baseResults/hlsl.constructArray.vert.out +++ /dev/null @@ -1,381 +0,0 @@ -hlsl.constructArray.vert -Shader version: 500 -0:? Sequence -0:2 Function Definition: @main( ( temp 4-component vector of float) -0:2 Function Parameters: -0:? Sequence -0:4 Sequence -0:4 move second child to first child ( temp 2-element array of 4-component vector of float) -0:4 'float4_array_times' ( temp 2-element array of 4-component vector of float) -0:4 Construct structure ( temp 2-element array of 4-component vector of float) -0:4 Convert int to float ( temp 4-component vector of float) -0:4 direct index ( temp 4-component vector of int) -0:4 'int4_array' ( temp 3-element array of 4-component vector of int) -0:4 Constant: -0:4 0 (const int) -0:4 Convert int to float ( temp 4-component vector of float) -0:4 direct index ( temp 4-component vector of int) -0:4 'int4_array' ( temp 3-element array of 4-component vector of int) -0:4 Constant: -0:4 1 (const int) -0:5 Sequence -0:5 move second child to first child ( temp 4-element array of 2-component vector of float) -0:5 'float2_array_times2' ( temp 4-element array of 2-component vector of float) -0:5 Construct structure ( temp 4-element array of 2-component vector of float) -0:5 Convert int to float ( temp 2-component vector of float) -0:5 Construct ivec2 ( temp 2-component vector of int) -0:5 direct index ( temp int) -0:5 direct index ( temp 4-component vector of int) -0:5 'int4_array' ( temp 3-element array of 4-component vector of int) -0:5 Constant: -0:5 0 (const int) -0:5 Constant: -0:5 0 (const int) -0:5 direct index ( temp int) -0:5 direct index ( temp 4-component vector of int) -0:5 'int4_array' ( temp 3-element array of 4-component vector of int) -0:5 Constant: -0:5 0 (const int) -0:5 Constant: -0:5 1 (const int) -0:5 Convert int to float ( temp 2-component vector of float) -0:5 Construct ivec2 ( temp 2-component vector of int) -0:5 direct index ( temp int) -0:5 direct index ( temp 4-component vector of int) -0:5 'int4_array' ( temp 3-element array of 4-component vector of int) -0:5 Constant: -0:5 0 (const int) -0:5 Constant: -0:5 2 (const int) -0:5 direct index ( temp int) -0:5 direct index ( temp 4-component vector of int) -0:5 'int4_array' ( temp 3-element array of 4-component vector of int) -0:5 Constant: -0:5 0 (const int) -0:5 Constant: -0:5 3 (const int) -0:5 Convert int to float ( temp 2-component vector of float) -0:5 Construct ivec2 ( temp 2-component vector of int) -0:5 direct index ( temp int) -0:5 direct index ( temp 4-component vector of int) -0:5 'int4_array' ( temp 3-element array of 4-component vector of int) -0:5 Constant: -0:5 1 (const int) -0:5 Constant: -0:5 0 (const int) -0:5 direct index ( temp int) -0:5 direct index ( temp 4-component vector of int) -0:5 'int4_array' ( temp 3-element array of 4-component vector of int) -0:5 Constant: -0:5 1 (const int) -0:5 Constant: -0:5 1 (const int) -0:5 Convert int to float ( temp 2-component vector of float) -0:5 Construct ivec2 ( temp 2-component vector of int) -0:5 direct index ( temp int) -0:5 direct index ( temp 4-component vector of int) -0:5 'int4_array' ( temp 3-element array of 4-component vector of int) -0:5 Constant: -0:5 1 (const int) -0:5 Constant: -0:5 2 (const int) -0:5 direct index ( temp int) -0:5 direct index ( temp 4-component vector of int) -0:5 'int4_array' ( temp 3-element array of 4-component vector of int) -0:5 Constant: -0:5 1 (const int) -0:5 Constant: -0:5 3 (const int) -0:6 Sequence -0:6 move second child to first child ( temp 2-element array of 4-component vector of int) -0:6 'int4_array2' ( temp 2-element array of 4-component vector of int) -0:6 Construct structure ( temp 2-element array of 4-component vector of int) -0:6 direct index ( temp 4-component vector of int) -0:6 'int4_array' ( temp 3-element array of 4-component vector of int) -0:6 Constant: -0:6 0 (const int) -0:6 direct index ( temp 4-component vector of int) -0:6 'int4_array' ( temp 3-element array of 4-component vector of int) -0:6 Constant: -0:6 1 (const int) -0:7 Sequence -0:7 move second child to first child ( temp 2-element array of int) -0:7 'int1_array' ( temp 2-element array of int) -0:7 Construct structure ( temp 2-element array of int) -0:7 direct index ( temp int) -0:7 direct index ( temp 4-component vector of int) -0:7 'int4_array' ( temp 3-element array of 4-component vector of int) -0:7 Constant: -0:7 0 (const int) -0:7 Constant: -0:7 0 (const int) -0:7 direct index ( temp int) -0:7 direct index ( temp 4-component vector of int) -0:7 'int4_array' ( temp 3-element array of 4-component vector of int) -0:7 Constant: -0:7 0 (const int) -0:7 Constant: -0:7 1 (const int) -0:9 Branch: Return with expression -0:9 Constant: -0:9 0.000000 -0:9 0.000000 -0:9 0.000000 -0:9 0.000000 -0:2 Function Definition: main( ( temp void) -0:2 Function Parameters: -0:? Sequence -0:2 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' ( out 4-component vector of float Position) -0:2 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput' ( out 4-component vector of float Position) - - -Linked vertex stage: - - -Shader version: 500 -0:? Sequence -0:2 Function Definition: @main( ( temp 4-component vector of float) -0:2 Function Parameters: -0:? Sequence -0:4 Sequence -0:4 move second child to first child ( temp 2-element array of 4-component vector of float) -0:4 'float4_array_times' ( temp 2-element array of 4-component vector of float) -0:4 Construct structure ( temp 2-element array of 4-component vector of float) -0:4 Convert int to float ( temp 4-component vector of float) -0:4 direct index ( temp 4-component vector of int) -0:4 'int4_array' ( temp 3-element array of 4-component vector of int) -0:4 Constant: -0:4 0 (const int) -0:4 Convert int to float ( temp 4-component vector of float) -0:4 direct index ( temp 4-component vector of int) -0:4 'int4_array' ( temp 3-element array of 4-component vector of int) -0:4 Constant: -0:4 1 (const int) -0:5 Sequence -0:5 move second child to first child ( temp 4-element array of 2-component vector of float) -0:5 'float2_array_times2' ( temp 4-element array of 2-component vector of float) -0:5 Construct structure ( temp 4-element array of 2-component vector of float) -0:5 Convert int to float ( temp 2-component vector of float) -0:5 Construct ivec2 ( temp 2-component vector of int) -0:5 direct index ( temp int) -0:5 direct index ( temp 4-component vector of int) -0:5 'int4_array' ( temp 3-element array of 4-component vector of int) -0:5 Constant: -0:5 0 (const int) -0:5 Constant: -0:5 0 (const int) -0:5 direct index ( temp int) -0:5 direct index ( temp 4-component vector of int) -0:5 'int4_array' ( temp 3-element array of 4-component vector of int) -0:5 Constant: -0:5 0 (const int) -0:5 Constant: -0:5 1 (const int) -0:5 Convert int to float ( temp 2-component vector of float) -0:5 Construct ivec2 ( temp 2-component vector of int) -0:5 direct index ( temp int) -0:5 direct index ( temp 4-component vector of int) -0:5 'int4_array' ( temp 3-element array of 4-component vector of int) -0:5 Constant: -0:5 0 (const int) -0:5 Constant: -0:5 2 (const int) -0:5 direct index ( temp int) -0:5 direct index ( temp 4-component vector of int) -0:5 'int4_array' ( temp 3-element array of 4-component vector of int) -0:5 Constant: -0:5 0 (const int) -0:5 Constant: -0:5 3 (const int) -0:5 Convert int to float ( temp 2-component vector of float) -0:5 Construct ivec2 ( temp 2-component vector of int) -0:5 direct index ( temp int) -0:5 direct index ( temp 4-component vector of int) -0:5 'int4_array' ( temp 3-element array of 4-component vector of int) -0:5 Constant: -0:5 1 (const int) -0:5 Constant: -0:5 0 (const int) -0:5 direct index ( temp int) -0:5 direct index ( temp 4-component vector of int) -0:5 'int4_array' ( temp 3-element array of 4-component vector of int) -0:5 Constant: -0:5 1 (const int) -0:5 Constant: -0:5 1 (const int) -0:5 Convert int to float ( temp 2-component vector of float) -0:5 Construct ivec2 ( temp 2-component vector of int) -0:5 direct index ( temp int) -0:5 direct index ( temp 4-component vector of int) -0:5 'int4_array' ( temp 3-element array of 4-component vector of int) -0:5 Constant: -0:5 1 (const int) -0:5 Constant: -0:5 2 (const int) -0:5 direct index ( temp int) -0:5 direct index ( temp 4-component vector of int) -0:5 'int4_array' ( temp 3-element array of 4-component vector of int) -0:5 Constant: -0:5 1 (const int) -0:5 Constant: -0:5 3 (const int) -0:6 Sequence -0:6 move second child to first child ( temp 2-element array of 4-component vector of int) -0:6 'int4_array2' ( temp 2-element array of 4-component vector of int) -0:6 Construct structure ( temp 2-element array of 4-component vector of int) -0:6 direct index ( temp 4-component vector of int) -0:6 'int4_array' ( temp 3-element array of 4-component vector of int) -0:6 Constant: -0:6 0 (const int) -0:6 direct index ( temp 4-component vector of int) -0:6 'int4_array' ( temp 3-element array of 4-component vector of int) -0:6 Constant: -0:6 1 (const int) -0:7 Sequence -0:7 move second child to first child ( temp 2-element array of int) -0:7 'int1_array' ( temp 2-element array of int) -0:7 Construct structure ( temp 2-element array of int) -0:7 direct index ( temp int) -0:7 direct index ( temp 4-component vector of int) -0:7 'int4_array' ( temp 3-element array of 4-component vector of int) -0:7 Constant: -0:7 0 (const int) -0:7 Constant: -0:7 0 (const int) -0:7 direct index ( temp int) -0:7 direct index ( temp 4-component vector of int) -0:7 'int4_array' ( temp 3-element array of 4-component vector of int) -0:7 Constant: -0:7 0 (const int) -0:7 Constant: -0:7 1 (const int) -0:9 Branch: Return with expression -0:9 Constant: -0:9 0.000000 -0:9 0.000000 -0:9 0.000000 -0:9 0.000000 -0:2 Function Definition: main( ( temp void) -0:2 Function Parameters: -0:? Sequence -0:2 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' ( out 4-component vector of float Position) -0:2 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput' ( out 4-component vector of float Position) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 89 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 87 - Source HLSL 500 - Name 4 "main" - Name 9 "@main(" - Name 15 "float4_array_times" - Name 21 "int4_array" - Name 36 "float2_array_times2" - Name 68 "int4_array2" - Name 76 "int1_array" - Name 87 "@entryPointOutput" - Decorate 87(@entryPointOutput) BuiltIn Position - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 11: TypeInt 32 0 - 12: 11(int) Constant 2 - 13: TypeArray 7(fvec4) 12 - 14: TypePointer Function 13 - 16: TypeInt 32 1 - 17: TypeVector 16(int) 4 - 18: 11(int) Constant 3 - 19: TypeArray 17(ivec4) 18 - 20: TypePointer Function 19 - 22: 16(int) Constant 0 - 23: TypePointer Function 17(ivec4) - 27: 16(int) Constant 1 - 32: TypeVector 6(float) 2 - 33: 11(int) Constant 4 - 34: TypeArray 32(fvec2) 33 - 35: TypePointer Function 34 - 37: 11(int) Constant 0 - 38: TypePointer Function 16(int) - 41: 11(int) Constant 1 - 44: TypeVector 16(int) 2 - 66: TypeArray 17(ivec4) 12 - 67: TypePointer Function 66 - 74: TypeArray 16(int) 12 - 75: TypePointer Function 74 - 82: 6(float) Constant 0 - 83: 7(fvec4) ConstantComposite 82 82 82 82 - 86: TypePointer Output 7(fvec4) -87(@entryPointOutput): 86(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 88: 7(fvec4) FunctionCall 9(@main() - Store 87(@entryPointOutput) 88 - Return - FunctionEnd - 9(@main(): 7(fvec4) Function None 8 - 10: Label -15(float4_array_times): 14(ptr) Variable Function - 21(int4_array): 20(ptr) Variable Function -36(float2_array_times2): 35(ptr) Variable Function - 68(int4_array2): 67(ptr) Variable Function - 76(int1_array): 75(ptr) Variable Function - 24: 23(ptr) AccessChain 21(int4_array) 22 - 25: 17(ivec4) Load 24 - 26: 7(fvec4) ConvertSToF 25 - 28: 23(ptr) AccessChain 21(int4_array) 27 - 29: 17(ivec4) Load 28 - 30: 7(fvec4) ConvertSToF 29 - 31: 13 CompositeConstruct 26 30 - Store 15(float4_array_times) 31 - 39: 38(ptr) AccessChain 21(int4_array) 22 37 - 40: 16(int) Load 39 - 42: 38(ptr) AccessChain 21(int4_array) 22 41 - 43: 16(int) Load 42 - 45: 44(ivec2) CompositeConstruct 40 43 - 46: 32(fvec2) ConvertSToF 45 - 47: 38(ptr) AccessChain 21(int4_array) 22 12 - 48: 16(int) Load 47 - 49: 38(ptr) AccessChain 21(int4_array) 22 18 - 50: 16(int) Load 49 - 51: 44(ivec2) CompositeConstruct 48 50 - 52: 32(fvec2) ConvertSToF 51 - 53: 38(ptr) AccessChain 21(int4_array) 27 37 - 54: 16(int) Load 53 - 55: 38(ptr) AccessChain 21(int4_array) 27 41 - 56: 16(int) Load 55 - 57: 44(ivec2) CompositeConstruct 54 56 - 58: 32(fvec2) ConvertSToF 57 - 59: 38(ptr) AccessChain 21(int4_array) 27 12 - 60: 16(int) Load 59 - 61: 38(ptr) AccessChain 21(int4_array) 27 18 - 62: 16(int) Load 61 - 63: 44(ivec2) CompositeConstruct 60 62 - 64: 32(fvec2) ConvertSToF 63 - 65: 34 CompositeConstruct 46 52 58 64 - Store 36(float2_array_times2) 65 - 69: 23(ptr) AccessChain 21(int4_array) 22 - 70: 17(ivec4) Load 69 - 71: 23(ptr) AccessChain 21(int4_array) 27 - 72: 17(ivec4) Load 71 - 73: 66 CompositeConstruct 70 72 - Store 68(int4_array2) 73 - 77: 38(ptr) AccessChain 21(int4_array) 22 37 - 78: 16(int) Load 77 - 79: 38(ptr) AccessChain 21(int4_array) 22 41 - 80: 16(int) Load 79 - 81: 74 CompositeConstruct 78 80 - Store 76(int1_array) 81 - ReturnValue 83 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.constructexpr.frag.out b/deps/glslang/Test/baseResults/hlsl.constructexpr.frag.out deleted file mode 100644 index 7b25ae84..00000000 --- a/deps/glslang/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:12 Constant: -0:12 9.000000 -0:12 10.000000 -0:12 Constant: -0:12 11.000000 -0:12 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:12 Constant: -0:12 9.000000 -0:12 10.000000 -0:12 Constant: -0:12 11.000000 -0:12 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): 8000a -// 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/Test/baseResults/hlsl.constructimat.frag.out b/deps/glslang/Test/baseResults/hlsl.constructimat.frag.out deleted file mode 100644 index a76ac6a9..00000000 --- a/deps/glslang/Test/baseResults/hlsl.constructimat.frag.out +++ /dev/null @@ -1,695 +0,0 @@ -hlsl.constructimat.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:2 Function Definition: @main( ( temp int) -0:2 Function Parameters: -0:? Sequence -0:6 Sequence -0:6 move second child to first child ( temp 4X4 matrix of int) -0:6 'var443' ( temp 4X4 matrix of int) -0:6 Constant: -0:6 0 (const int) -0:6 1 (const int) -0:6 0 (const int) -0:6 0 (const int) -0:6 1 (const int) -0:6 1 (const int) -0:6 0 (const int) -0:6 0 (const int) -0:6 1 (const int) -0:6 0 (const int) -0:6 0 (const int) -0:6 0 (const int) -0:6 0 (const int) -0:6 0 (const int) -0:6 0 (const int) -0:6 0 (const int) -0:7 Sequence -0:7 move second child to first child ( temp 4X4 matrix of int) -0:7 'var444' ( temp 4X4 matrix of int) -0:7 Constant: -0:7 0 (const int) -0:7 1 (const int) -0:7 0 (const int) -0:7 0 (const int) -0:7 1 (const int) -0:7 1 (const int) -0:7 0 (const int) -0:7 0 (const int) -0:7 1 (const int) -0:7 0 (const int) -0:7 0 (const int) -0:7 0 (const int) -0:7 0 (const int) -0:7 0 (const int) -0:7 0 (const int) -0:7 0 (const int) -0:11 Sequence -0:11 move second child to first child ( temp 4X2 matrix of int) -0:11 'var423' ( temp 4X2 matrix of int) -0:11 Constant: -0:11 0 (const int) -0:11 1 (const int) -0:11 1 (const int) -0:11 1 (const int) -0:11 1 (const int) -0:11 0 (const int) -0:11 0 (const int) -0:11 0 (const int) -0:12 Sequence -0:12 move second child to first child ( temp 4X2 matrix of int) -0:12 'var424' ( temp 4X2 matrix of int) -0:12 Constant: -0:12 0 (const int) -0:12 1 (const int) -0:12 1 (const int) -0:12 1 (const int) -0:12 1 (const int) -0:12 0 (const int) -0:12 0 (const int) -0:12 0 (const int) -0:16 Sequence -0:16 move second child to first child ( temp 3X2 matrix of int) -0:16 'var323' ( temp 3X2 matrix of int) -0:16 Constant: -0:16 0 (const int) -0:16 1 (const int) -0:16 1 (const int) -0:16 1 (const int) -0:16 1 (const int) -0:16 0 (const int) -0:17 Sequence -0:17 move second child to first child ( temp 3X2 matrix of int) -0:17 'var234' ( temp 3X2 matrix of int) -0:17 Constant: -0:17 0 (const int) -0:17 1 (const int) -0:17 1 (const int) -0:17 1 (const int) -0:17 1 (const int) -0:17 0 (const int) -0:22 Sequence -0:22 move second child to first child ( temp 4X4 matrix of uint) -0:22 'uvar443' ( temp 4X4 matrix of uint) -0:22 Constant: -0:22 0 (const uint) -0:22 1 (const uint) -0:22 0 (const uint) -0:22 0 (const uint) -0:22 1 (const uint) -0:22 1 (const uint) -0:22 0 (const uint) -0:22 0 (const uint) -0:22 1 (const uint) -0:22 0 (const uint) -0:22 0 (const uint) -0:22 0 (const uint) -0:22 0 (const uint) -0:22 0 (const uint) -0:22 0 (const uint) -0:22 0 (const uint) -0:23 Sequence -0:23 move second child to first child ( temp 4X4 matrix of uint) -0:23 'uvar444' ( temp 4X4 matrix of uint) -0:23 Constant: -0:23 0 (const uint) -0:23 1 (const uint) -0:23 0 (const uint) -0:23 0 (const uint) -0:23 1 (const uint) -0:23 1 (const uint) -0:23 0 (const uint) -0:23 0 (const uint) -0:23 1 (const uint) -0:23 0 (const uint) -0:23 0 (const uint) -0:23 0 (const uint) -0:23 0 (const uint) -0:23 0 (const uint) -0:23 0 (const uint) -0:23 0 (const uint) -0:27 Sequence -0:27 move second child to first child ( temp 4X2 matrix of uint) -0:27 'uvar423' ( temp 4X2 matrix of uint) -0:27 Constant: -0:27 0 (const uint) -0:27 1 (const uint) -0:27 1 (const uint) -0:27 1 (const uint) -0:27 1 (const uint) -0:27 0 (const uint) -0:27 0 (const uint) -0:27 0 (const uint) -0:28 Sequence -0:28 move second child to first child ( temp 4X2 matrix of uint) -0:28 'uvar424' ( temp 4X2 matrix of uint) -0:28 Constant: -0:28 0 (const uint) -0:28 1 (const uint) -0:28 1 (const uint) -0:28 1 (const uint) -0:28 1 (const uint) -0:28 0 (const uint) -0:28 0 (const uint) -0:28 0 (const uint) -0:32 Sequence -0:32 move second child to first child ( temp 3X2 matrix of uint) -0:32 'uvar323' ( temp 3X2 matrix of uint) -0:32 Constant: -0:32 0 (const uint) -0:32 1 (const uint) -0:32 1 (const uint) -0:32 1 (const uint) -0:32 1 (const uint) -0:32 0 (const uint) -0:33 Sequence -0:33 move second child to first child ( temp 3X2 matrix of uint) -0:33 'uvar234' ( temp 3X2 matrix of uint) -0:33 Constant: -0:33 0 (const uint) -0:33 1 (const uint) -0:33 1 (const uint) -0:33 1 (const uint) -0:33 1 (const uint) -0:33 0 (const uint) -0:38 Sequence -0:38 move second child to first child ( temp 4X4 matrix of bool) -0:38 'bvar443' ( temp 4X4 matrix of bool) -0:38 Constant: -0:38 false (const bool) -0:38 true (const bool) -0:38 false (const bool) -0:38 false (const bool) -0:38 true (const bool) -0:38 true (const bool) -0:38 false (const bool) -0:38 false (const bool) -0:38 true (const bool) -0:38 false (const bool) -0:38 false (const bool) -0:38 false (const bool) -0:38 false (const bool) -0:38 false (const bool) -0:38 false (const bool) -0:38 false (const bool) -0:39 Sequence -0:39 move second child to first child ( temp 4X4 matrix of bool) -0:39 'bvar444' ( temp 4X4 matrix of bool) -0:39 Constant: -0:39 false (const bool) -0:39 true (const bool) -0:39 false (const bool) -0:39 false (const bool) -0:39 true (const bool) -0:39 true (const bool) -0:39 false (const bool) -0:39 false (const bool) -0:39 true (const bool) -0:39 false (const bool) -0:39 false (const bool) -0:39 false (const bool) -0:39 false (const bool) -0:39 false (const bool) -0:39 false (const bool) -0:39 false (const bool) -0:43 Sequence -0:43 move second child to first child ( temp 4X2 matrix of bool) -0:43 'bvar423' ( temp 4X2 matrix of bool) -0:43 Constant: -0:43 false (const bool) -0:43 true (const bool) -0:43 true (const bool) -0:43 true (const bool) -0:43 true (const bool) -0:43 false (const bool) -0:43 false (const bool) -0:43 false (const bool) -0:44 Sequence -0:44 move second child to first child ( temp 4X2 matrix of bool) -0:44 'bvar424' ( temp 4X2 matrix of bool) -0:44 Constant: -0:44 false (const bool) -0:44 true (const bool) -0:44 true (const bool) -0:44 true (const bool) -0:44 true (const bool) -0:44 false (const bool) -0:44 false (const bool) -0:44 false (const bool) -0:48 Sequence -0:48 move second child to first child ( temp 3X2 matrix of bool) -0:48 'bvar323' ( temp 3X2 matrix of bool) -0:48 Constant: -0:48 false (const bool) -0:48 true (const bool) -0:48 true (const bool) -0:48 true (const bool) -0:48 true (const bool) -0:48 false (const bool) -0:49 Sequence -0:49 move second child to first child ( temp 3X2 matrix of bool) -0:49 'bvar234' ( temp 3X2 matrix of bool) -0:49 Constant: -0:49 false (const bool) -0:49 true (const bool) -0:49 true (const bool) -0:49 true (const bool) -0:49 true (const bool) -0:49 false (const bool) -0:51 Branch: Return with expression -0:51 Constant: -0:51 0 (const int) -0:2 Function Definition: main( ( temp void) -0:2 Function Parameters: -0:? Sequence -0:2 move second child to first child ( temp int) -0:? '@entryPointOutput' (layout( location=0) out int) -0:2 Function Call: @main( ( temp int) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out int) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:2 Function Definition: @main( ( temp int) -0:2 Function Parameters: -0:? Sequence -0:6 Sequence -0:6 move second child to first child ( temp 4X4 matrix of int) -0:6 'var443' ( temp 4X4 matrix of int) -0:6 Constant: -0:6 0 (const int) -0:6 1 (const int) -0:6 0 (const int) -0:6 0 (const int) -0:6 1 (const int) -0:6 1 (const int) -0:6 0 (const int) -0:6 0 (const int) -0:6 1 (const int) -0:6 0 (const int) -0:6 0 (const int) -0:6 0 (const int) -0:6 0 (const int) -0:6 0 (const int) -0:6 0 (const int) -0:6 0 (const int) -0:7 Sequence -0:7 move second child to first child ( temp 4X4 matrix of int) -0:7 'var444' ( temp 4X4 matrix of int) -0:7 Constant: -0:7 0 (const int) -0:7 1 (const int) -0:7 0 (const int) -0:7 0 (const int) -0:7 1 (const int) -0:7 1 (const int) -0:7 0 (const int) -0:7 0 (const int) -0:7 1 (const int) -0:7 0 (const int) -0:7 0 (const int) -0:7 0 (const int) -0:7 0 (const int) -0:7 0 (const int) -0:7 0 (const int) -0:7 0 (const int) -0:11 Sequence -0:11 move second child to first child ( temp 4X2 matrix of int) -0:11 'var423' ( temp 4X2 matrix of int) -0:11 Constant: -0:11 0 (const int) -0:11 1 (const int) -0:11 1 (const int) -0:11 1 (const int) -0:11 1 (const int) -0:11 0 (const int) -0:11 0 (const int) -0:11 0 (const int) -0:12 Sequence -0:12 move second child to first child ( temp 4X2 matrix of int) -0:12 'var424' ( temp 4X2 matrix of int) -0:12 Constant: -0:12 0 (const int) -0:12 1 (const int) -0:12 1 (const int) -0:12 1 (const int) -0:12 1 (const int) -0:12 0 (const int) -0:12 0 (const int) -0:12 0 (const int) -0:16 Sequence -0:16 move second child to first child ( temp 3X2 matrix of int) -0:16 'var323' ( temp 3X2 matrix of int) -0:16 Constant: -0:16 0 (const int) -0:16 1 (const int) -0:16 1 (const int) -0:16 1 (const int) -0:16 1 (const int) -0:16 0 (const int) -0:17 Sequence -0:17 move second child to first child ( temp 3X2 matrix of int) -0:17 'var234' ( temp 3X2 matrix of int) -0:17 Constant: -0:17 0 (const int) -0:17 1 (const int) -0:17 1 (const int) -0:17 1 (const int) -0:17 1 (const int) -0:17 0 (const int) -0:22 Sequence -0:22 move second child to first child ( temp 4X4 matrix of uint) -0:22 'uvar443' ( temp 4X4 matrix of uint) -0:22 Constant: -0:22 0 (const uint) -0:22 1 (const uint) -0:22 0 (const uint) -0:22 0 (const uint) -0:22 1 (const uint) -0:22 1 (const uint) -0:22 0 (const uint) -0:22 0 (const uint) -0:22 1 (const uint) -0:22 0 (const uint) -0:22 0 (const uint) -0:22 0 (const uint) -0:22 0 (const uint) -0:22 0 (const uint) -0:22 0 (const uint) -0:22 0 (const uint) -0:23 Sequence -0:23 move second child to first child ( temp 4X4 matrix of uint) -0:23 'uvar444' ( temp 4X4 matrix of uint) -0:23 Constant: -0:23 0 (const uint) -0:23 1 (const uint) -0:23 0 (const uint) -0:23 0 (const uint) -0:23 1 (const uint) -0:23 1 (const uint) -0:23 0 (const uint) -0:23 0 (const uint) -0:23 1 (const uint) -0:23 0 (const uint) -0:23 0 (const uint) -0:23 0 (const uint) -0:23 0 (const uint) -0:23 0 (const uint) -0:23 0 (const uint) -0:23 0 (const uint) -0:27 Sequence -0:27 move second child to first child ( temp 4X2 matrix of uint) -0:27 'uvar423' ( temp 4X2 matrix of uint) -0:27 Constant: -0:27 0 (const uint) -0:27 1 (const uint) -0:27 1 (const uint) -0:27 1 (const uint) -0:27 1 (const uint) -0:27 0 (const uint) -0:27 0 (const uint) -0:27 0 (const uint) -0:28 Sequence -0:28 move second child to first child ( temp 4X2 matrix of uint) -0:28 'uvar424' ( temp 4X2 matrix of uint) -0:28 Constant: -0:28 0 (const uint) -0:28 1 (const uint) -0:28 1 (const uint) -0:28 1 (const uint) -0:28 1 (const uint) -0:28 0 (const uint) -0:28 0 (const uint) -0:28 0 (const uint) -0:32 Sequence -0:32 move second child to first child ( temp 3X2 matrix of uint) -0:32 'uvar323' ( temp 3X2 matrix of uint) -0:32 Constant: -0:32 0 (const uint) -0:32 1 (const uint) -0:32 1 (const uint) -0:32 1 (const uint) -0:32 1 (const uint) -0:32 0 (const uint) -0:33 Sequence -0:33 move second child to first child ( temp 3X2 matrix of uint) -0:33 'uvar234' ( temp 3X2 matrix of uint) -0:33 Constant: -0:33 0 (const uint) -0:33 1 (const uint) -0:33 1 (const uint) -0:33 1 (const uint) -0:33 1 (const uint) -0:33 0 (const uint) -0:38 Sequence -0:38 move second child to first child ( temp 4X4 matrix of bool) -0:38 'bvar443' ( temp 4X4 matrix of bool) -0:38 Constant: -0:38 false (const bool) -0:38 true (const bool) -0:38 false (const bool) -0:38 false (const bool) -0:38 true (const bool) -0:38 true (const bool) -0:38 false (const bool) -0:38 false (const bool) -0:38 true (const bool) -0:38 false (const bool) -0:38 false (const bool) -0:38 false (const bool) -0:38 false (const bool) -0:38 false (const bool) -0:38 false (const bool) -0:38 false (const bool) -0:39 Sequence -0:39 move second child to first child ( temp 4X4 matrix of bool) -0:39 'bvar444' ( temp 4X4 matrix of bool) -0:39 Constant: -0:39 false (const bool) -0:39 true (const bool) -0:39 false (const bool) -0:39 false (const bool) -0:39 true (const bool) -0:39 true (const bool) -0:39 false (const bool) -0:39 false (const bool) -0:39 true (const bool) -0:39 false (const bool) -0:39 false (const bool) -0:39 false (const bool) -0:39 false (const bool) -0:39 false (const bool) -0:39 false (const bool) -0:39 false (const bool) -0:43 Sequence -0:43 move second child to first child ( temp 4X2 matrix of bool) -0:43 'bvar423' ( temp 4X2 matrix of bool) -0:43 Constant: -0:43 false (const bool) -0:43 true (const bool) -0:43 true (const bool) -0:43 true (const bool) -0:43 true (const bool) -0:43 false (const bool) -0:43 false (const bool) -0:43 false (const bool) -0:44 Sequence -0:44 move second child to first child ( temp 4X2 matrix of bool) -0:44 'bvar424' ( temp 4X2 matrix of bool) -0:44 Constant: -0:44 false (const bool) -0:44 true (const bool) -0:44 true (const bool) -0:44 true (const bool) -0:44 true (const bool) -0:44 false (const bool) -0:44 false (const bool) -0:44 false (const bool) -0:48 Sequence -0:48 move second child to first child ( temp 3X2 matrix of bool) -0:48 'bvar323' ( temp 3X2 matrix of bool) -0:48 Constant: -0:48 false (const bool) -0:48 true (const bool) -0:48 true (const bool) -0:48 true (const bool) -0:48 true (const bool) -0:48 false (const bool) -0:49 Sequence -0:49 move second child to first child ( temp 3X2 matrix of bool) -0:49 'bvar234' ( temp 3X2 matrix of bool) -0:49 Constant: -0:49 false (const bool) -0:49 true (const bool) -0:49 true (const bool) -0:49 true (const bool) -0:49 true (const bool) -0:49 false (const bool) -0:51 Branch: Return with expression -0:51 Constant: -0:51 0 (const int) -0:2 Function Definition: main( ( temp void) -0:2 Function Parameters: -0:? Sequence -0:2 move second child to first child ( temp int) -0:? '@entryPointOutput' (layout( location=0) out int) -0:2 Function Call: @main( ( temp int) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out int) - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 98 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 96 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 8 "@main(" - Name 13 "var443" - Name 21 "var444" - Name 25 "var423" - Name 31 "var424" - Name 34 "var323" - Name 36 "var234" - Name 41 "uvar443" - Name 49 "uvar444" - Name 53 "uvar423" - Name 59 "uvar424" - Name 62 "uvar323" - Name 64 "uvar234" - Name 69 "bvar443" - Name 77 "bvar444" - Name 81 "bvar423" - Name 87 "bvar424" - Name 90 "bvar323" - Name 92 "bvar234" - Name 96 "@entryPointOutput" - Decorate 96(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypeFunction 6(int) - 10: TypeVector 6(int) 4 - 11: TypeMatrix 10(ivec4) 4 - 12: TypePointer Function 11 - 14: 6(int) Constant 0 - 15: 6(int) Constant 1 - 16: 10(ivec4) ConstantComposite 14 15 14 14 - 17: 10(ivec4) ConstantComposite 15 15 14 14 - 18: 10(ivec4) ConstantComposite 15 14 14 14 - 19: 10(ivec4) ConstantComposite 14 14 14 14 - 20: 11 ConstantComposite 16 17 18 19 - 22: TypeVector 6(int) 2 - 23: TypeMatrix 22(ivec2) 4 - 24: TypePointer Function 23 - 26: 22(ivec2) ConstantComposite 14 15 - 27: 22(ivec2) ConstantComposite 15 15 - 28: 22(ivec2) ConstantComposite 15 14 - 29: 22(ivec2) ConstantComposite 14 14 - 30: 23 ConstantComposite 26 27 28 29 - 32: TypeMatrix 22(ivec2) 3 - 33: TypePointer Function 32 - 35: 32 ConstantComposite 26 27 28 - 37: TypeInt 32 0 - 38: TypeVector 37(int) 4 - 39: TypeMatrix 38(ivec4) 4 - 40: TypePointer Function 39 - 42: 37(int) Constant 0 - 43: 37(int) Constant 1 - 44: 38(ivec4) ConstantComposite 42 43 42 42 - 45: 38(ivec4) ConstantComposite 43 43 42 42 - 46: 38(ivec4) ConstantComposite 43 42 42 42 - 47: 38(ivec4) ConstantComposite 42 42 42 42 - 48: 39 ConstantComposite 44 45 46 47 - 50: TypeVector 37(int) 2 - 51: TypeMatrix 50(ivec2) 4 - 52: TypePointer Function 51 - 54: 50(ivec2) ConstantComposite 42 43 - 55: 50(ivec2) ConstantComposite 43 43 - 56: 50(ivec2) ConstantComposite 43 42 - 57: 50(ivec2) ConstantComposite 42 42 - 58: 51 ConstantComposite 54 55 56 57 - 60: TypeMatrix 50(ivec2) 3 - 61: TypePointer Function 60 - 63: 60 ConstantComposite 54 55 56 - 65: TypeBool - 66: TypeVector 65(bool) 4 - 67: TypeMatrix 66(bvec4) 4 - 68: TypePointer Function 67 - 70: 65(bool) ConstantFalse - 71: 65(bool) ConstantTrue - 72: 66(bvec4) ConstantComposite 70 71 70 70 - 73: 66(bvec4) ConstantComposite 71 71 70 70 - 74: 66(bvec4) ConstantComposite 71 70 70 70 - 75: 66(bvec4) ConstantComposite 70 70 70 70 - 76: 67 ConstantComposite 72 73 74 75 - 78: TypeVector 65(bool) 2 - 79: TypeMatrix 78(bvec2) 4 - 80: TypePointer Function 79 - 82: 78(bvec2) ConstantComposite 70 71 - 83: 78(bvec2) ConstantComposite 71 71 - 84: 78(bvec2) ConstantComposite 71 70 - 85: 78(bvec2) ConstantComposite 70 70 - 86: 79 ConstantComposite 82 83 84 85 - 88: TypeMatrix 78(bvec2) 3 - 89: TypePointer Function 88 - 91: 88 ConstantComposite 82 83 84 - 95: TypePointer Output 6(int) -96(@entryPointOutput): 95(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 97: 6(int) FunctionCall 8(@main() - Store 96(@entryPointOutput) 97 - Return - FunctionEnd - 8(@main(): 6(int) Function None 7 - 9: Label - 13(var443): 12(ptr) Variable Function - 21(var444): 12(ptr) Variable Function - 25(var423): 24(ptr) Variable Function - 31(var424): 24(ptr) Variable Function - 34(var323): 33(ptr) Variable Function - 36(var234): 33(ptr) Variable Function - 41(uvar443): 40(ptr) Variable Function - 49(uvar444): 40(ptr) Variable Function - 53(uvar423): 52(ptr) Variable Function - 59(uvar424): 52(ptr) Variable Function - 62(uvar323): 61(ptr) Variable Function - 64(uvar234): 61(ptr) Variable Function - 69(bvar443): 68(ptr) Variable Function - 77(bvar444): 68(ptr) Variable Function - 81(bvar423): 80(ptr) Variable Function - 87(bvar424): 80(ptr) Variable Function - 90(bvar323): 89(ptr) Variable Function - 92(bvar234): 89(ptr) Variable Function - Store 13(var443) 20 - Store 21(var444) 20 - Store 25(var423) 30 - Store 31(var424) 30 - Store 34(var323) 35 - Store 36(var234) 35 - Store 41(uvar443) 48 - Store 49(uvar444) 48 - Store 53(uvar423) 58 - Store 59(uvar424) 58 - Store 62(uvar323) 63 - Store 64(uvar234) 63 - Store 69(bvar443) 76 - Store 77(bvar444) 76 - Store 81(bvar423) 86 - Store 87(bvar424) 86 - Store 90(bvar323) 91 - Store 92(bvar234) 91 - ReturnValue 14 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.coverage.frag.out b/deps/glslang/Test/baseResults/hlsl.coverage.frag.out deleted file mode 100644 index 7c44e1fb..00000000 --- a/deps/glslang/Test/baseResults/hlsl.coverage.frag.out +++ /dev/null @@ -1,205 +0,0 @@ -hlsl.coverage.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:15 Function Definition: @main(struct-PS_INPUT1; ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) -0:15 Function Parameters: -0:15 'i' ( in structure{}) -0:? Sequence -0:17 move second child to first child ( temp 4-component vector of float) -0:17 vColor: direct index for structure ( temp 4-component vector of float) -0:17 'o' ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 1.000000 -0:17 0.000000 -0:17 0.000000 -0:17 1.000000 -0:18 move second child to first child ( temp uint) -0:18 nCoverageMask: direct index for structure ( temp uint) -0:18 'o' ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) -0:18 Constant: -0:18 1 (const int) -0:18 Constant: -0:18 0 (const uint) -0:19 Branch: Return with expression -0:19 'o' ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) -0:15 Function Definition: main( ( temp void) -0:15 Function Parameters: -0:? Sequence -0:15 Sequence -0:15 move second child to first child ( temp structure{}) -0:? 'i' ( temp structure{}) -0:? 'i' ( in structure{}) -0:15 Sequence -0:15 move second child to first child ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) -0:15 'flattenTemp' ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) -0:15 Function Call: @main(struct-PS_INPUT1; ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) -0:? 'i' ( temp structure{}) -0:15 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.vColor' (layout( location=0) out 4-component vector of float) -0:15 vColor: direct index for structure ( temp 4-component vector of float) -0:15 'flattenTemp' ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) -0:15 Constant: -0:15 0 (const int) -0:15 move second child to first child ( temp uint) -0:15 direct index ( out uint SampleMaskIn) -0:? '@entryPointOutput.nCoverageMask' ( out 1-element array of uint SampleMaskIn) -0:15 Constant: -0:15 0 (const int) -0:15 nCoverageMask: direct index for structure ( temp uint) -0:15 'flattenTemp' ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) -0:15 Constant: -0:15 1 (const int) -0:? Linker Objects -0:? '@entryPointOutput.nCoverageMask' ( out 1-element array of uint SampleMaskIn) -0:? '@entryPointOutput.vColor' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:15 Function Definition: @main(struct-PS_INPUT1; ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) -0:15 Function Parameters: -0:15 'i' ( in structure{}) -0:? Sequence -0:17 move second child to first child ( temp 4-component vector of float) -0:17 vColor: direct index for structure ( temp 4-component vector of float) -0:17 'o' ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 1.000000 -0:17 0.000000 -0:17 0.000000 -0:17 1.000000 -0:18 move second child to first child ( temp uint) -0:18 nCoverageMask: direct index for structure ( temp uint) -0:18 'o' ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) -0:18 Constant: -0:18 1 (const int) -0:18 Constant: -0:18 0 (const uint) -0:19 Branch: Return with expression -0:19 'o' ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) -0:15 Function Definition: main( ( temp void) -0:15 Function Parameters: -0:? Sequence -0:15 Sequence -0:15 move second child to first child ( temp structure{}) -0:? 'i' ( temp structure{}) -0:? 'i' ( in structure{}) -0:15 Sequence -0:15 move second child to first child ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) -0:15 'flattenTemp' ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) -0:15 Function Call: @main(struct-PS_INPUT1; ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) -0:? 'i' ( temp structure{}) -0:15 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.vColor' (layout( location=0) out 4-component vector of float) -0:15 vColor: direct index for structure ( temp 4-component vector of float) -0:15 'flattenTemp' ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) -0:15 Constant: -0:15 0 (const int) -0:15 move second child to first child ( temp uint) -0:15 direct index ( out uint SampleMaskIn) -0:? '@entryPointOutput.nCoverageMask' ( out 1-element array of uint SampleMaskIn) -0:15 Constant: -0:15 0 (const int) -0:15 nCoverageMask: direct index for structure ( temp uint) -0:15 'flattenTemp' ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) -0:15 Constant: -0:15 1 (const int) -0:? Linker Objects -0:? '@entryPointOutput.nCoverageMask' ( out 1-element array of uint SampleMaskIn) -0:? '@entryPointOutput.vColor' (layout( location=0) out 4-component vector of float) - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 52 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 41 47 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 6 "PS_INPUT" - Name 11 "PS_OUTPUT" - MemberName 11(PS_OUTPUT) 0 "vColor" - MemberName 11(PS_OUTPUT) 1 "nCoverageMask" - Name 14 "@main(struct-PS_INPUT1;" - Name 13 "i" - Name 17 "o" - Name 32 "i" - Name 34 "i" - Name 36 "flattenTemp" - Name 37 "param" - Name 41 "@entryPointOutput.vColor" - Name 47 "@entryPointOutput.nCoverageMask" - Decorate 41(@entryPointOutput.vColor) Location 0 - Decorate 47(@entryPointOutput.nCoverageMask) BuiltIn SampleMask - 2: TypeVoid - 3: TypeFunction 2 - 6(PS_INPUT): TypeStruct - 7: TypePointer Function 6(PS_INPUT) - 8: TypeFloat 32 - 9: TypeVector 8(float) 4 - 10: TypeInt 32 0 - 11(PS_OUTPUT): TypeStruct 9(fvec4) 10(int) - 12: TypeFunction 11(PS_OUTPUT) 7(ptr) - 16: TypePointer Function 11(PS_OUTPUT) - 18: TypeInt 32 1 - 19: 18(int) Constant 0 - 20: 8(float) Constant 1065353216 - 21: 8(float) Constant 0 - 22: 9(fvec4) ConstantComposite 20 21 21 20 - 23: TypePointer Function 9(fvec4) - 25: 18(int) Constant 1 - 26: 10(int) Constant 0 - 27: TypePointer Function 10(int) - 33: TypePointer Input 6(PS_INPUT) - 34(i): 33(ptr) Variable Input - 40: TypePointer Output 9(fvec4) -41(@entryPointOutput.vColor): 40(ptr) Variable Output - 44: 10(int) Constant 1 - 45: TypeArray 10(int) 44 - 46: TypePointer Output 45 -47(@entryPointOutput.nCoverageMask): 46(ptr) Variable Output - 50: TypePointer Output 10(int) - 4(main): 2 Function None 3 - 5: Label - 32(i): 7(ptr) Variable Function - 36(flattenTemp): 16(ptr) Variable Function - 37(param): 7(ptr) Variable Function - 35: 6(PS_INPUT) Load 34(i) - Store 32(i) 35 - 38: 6(PS_INPUT) Load 32(i) - Store 37(param) 38 - 39:11(PS_OUTPUT) FunctionCall 14(@main(struct-PS_INPUT1;) 37(param) - Store 36(flattenTemp) 39 - 42: 23(ptr) AccessChain 36(flattenTemp) 19 - 43: 9(fvec4) Load 42 - Store 41(@entryPointOutput.vColor) 43 - 48: 27(ptr) AccessChain 36(flattenTemp) 25 - 49: 10(int) Load 48 - 51: 50(ptr) AccessChain 47(@entryPointOutput.nCoverageMask) 19 - Store 51 49 - Return - FunctionEnd -14(@main(struct-PS_INPUT1;):11(PS_OUTPUT) Function None 12 - 13(i): 7(ptr) FunctionParameter - 15: Label - 17(o): 16(ptr) Variable Function - 24: 23(ptr) AccessChain 17(o) 19 - Store 24 22 - 28: 27(ptr) AccessChain 17(o) 25 - Store 28 26 - 29:11(PS_OUTPUT) Load 17(o) - ReturnValue 29 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.dashI.vert.d.out b/deps/glslang/Test/baseResults/hlsl.dashI.vert.d.out deleted file mode 100644 index 11f8ed4c..00000000 --- a/deps/glslang/Test/baseResults/hlsl.dashI.vert.d.out +++ /dev/null @@ -1 +0,0 @@ -vert.spv: hlsl.dashI.vert ./bar.h ./parent.h inc1/path1/local.h inc1/path1/notHere.h inc1/path2/remote.h diff --git a/deps/glslang/Test/baseResults/hlsl.dashI.vert.out b/deps/glslang/Test/baseResults/hlsl.dashI.vert.out deleted file mode 100644 index 73514438..00000000 --- a/deps/glslang/Test/baseResults/hlsl.dashI.vert.out +++ /dev/null @@ -1,70 +0,0 @@ -hlsl.dashI.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 40 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 38 - Source HLSL 500 - Name 4 "main" - Name 9 "@main(" - Name 11 "$Global" - MemberName 11($Global) 0 "i1" - MemberName 11($Global) 1 "p1" - MemberName 11($Global) 2 "p2" - MemberName 11($Global) 3 "p3" - MemberName 11($Global) 4 "i4" - Name 13 "" - Name 38 "@entryPointOutput" - MemberDecorate 11($Global) 0 Offset 0 - MemberDecorate 11($Global) 1 Offset 16 - MemberDecorate 11($Global) 2 Offset 32 - MemberDecorate 11($Global) 3 Offset 48 - MemberDecorate 11($Global) 4 Offset 64 - Decorate 11($Global) Block - Decorate 13 DescriptorSet 0 - Decorate 13 Binding 0 - Decorate 38(@entryPointOutput) BuiltIn Position - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 11($Global): TypeStruct 7(fvec4) 7(fvec4) 7(fvec4) 7(fvec4) 7(fvec4) - 12: TypePointer Uniform 11($Global) - 13: 12(ptr) Variable Uniform - 14: TypeInt 32 1 - 15: 14(int) Constant 0 - 16: TypePointer Uniform 7(fvec4) - 19: 14(int) Constant 4 - 23: 14(int) Constant 1 - 27: 14(int) Constant 2 - 31: 14(int) Constant 3 - 37: TypePointer Output 7(fvec4) -38(@entryPointOutput): 37(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 39: 7(fvec4) FunctionCall 9(@main() - Store 38(@entryPointOutput) 39 - Return - FunctionEnd - 9(@main(): 7(fvec4) Function None 8 - 10: Label - 17: 16(ptr) AccessChain 13 15 - 18: 7(fvec4) Load 17 - 20: 16(ptr) AccessChain 13 19 - 21: 7(fvec4) Load 20 - 22: 7(fvec4) FAdd 18 21 - 24: 16(ptr) AccessChain 13 23 - 25: 7(fvec4) Load 24 - 26: 7(fvec4) FAdd 22 25 - 28: 16(ptr) AccessChain 13 27 - 29: 7(fvec4) Load 28 - 30: 7(fvec4) FAdd 26 29 - 32: 16(ptr) AccessChain 13 31 - 33: 7(fvec4) Load 32 - 34: 7(fvec4) FAdd 30 33 - ReturnValue 34 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.deadFunctionMissingBody.vert.out b/deps/glslang/Test/baseResults/hlsl.deadFunctionMissingBody.vert.out deleted file mode 100644 index 9ca01460..00000000 --- a/deps/glslang/Test/baseResults/hlsl.deadFunctionMissingBody.vert.out +++ /dev/null @@ -1,33 +0,0 @@ -hlsl.deadFunctionMissingBody.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// 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/Test/baseResults/hlsl.depthGreater.frag.out b/deps/glslang/Test/baseResults/hlsl.depthGreater.frag.out deleted file mode 100644 index 31a70068..00000000 --- a/deps/glslang/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): 8000a -// 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 DepthReplacing - ExecutionMode 4 DepthGreater - 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/Test/baseResults/hlsl.depthLess.frag.out b/deps/glslang/Test/baseResults/hlsl.depthLess.frag.out deleted file mode 100644 index d062c774..00000000 --- a/deps/glslang/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): 8000a -// 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 DepthReplacing - ExecutionMode 4 DepthLess - 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/Test/baseResults/hlsl.discard.frag.out b/deps/glslang/Test/baseResults/hlsl.discard.frag.out deleted file mode 100644 index 41766f62..00000000 --- a/deps/glslang/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): 8000a -// 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) FUnordNotEqual 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/Test/baseResults/hlsl.doLoop.frag.out b/deps/glslang/Test/baseResults/hlsl.doLoop.frag.out deleted file mode 100644 index 0d93e8d9..00000000 --- a/deps/glslang/Test/baseResults/hlsl.doLoop.frag.out +++ /dev/null @@ -1,374 +0,0 @@ -hlsl.doLoop.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:1 Function Definition: f0( ( temp void) -0:1 Function Parameters: -0:? Sequence -0:2 Loop with condition not tested first: Unroll -0:2 Loop Condition -0:2 Constant: -0:2 false (const bool) -0:2 No loop body -0:5 Function Definition: f1( ( temp void) -0:5 Function Parameters: -0:? Sequence -0:6 Loop with condition not tested first: Unroll -0:6 Loop Condition -0:6 Constant: -0:6 false (const bool) -0:6 No loop body -0:9 Function Definition: f2(f1; ( temp float) -0:9 Function Parameters: -0:9 'input' ( in float) -0:? Sequence -0:10 Loop with condition not tested first -0:10 Loop Condition -0:10 Compare Greater Than ( temp bool) -0:10 'input' ( in float) -0:10 Constant: -0:10 2.000000 -0:10 Loop Body -0:? Sequence -0:10 Branch: Return with expression -0:10 Construct float ( temp float) -0:10 Construct vec4 ( temp 4-component vector of float) -0:10 'input' ( in float) -0:13 Function Definition: f3(f1; ( temp void) -0:13 Function Parameters: -0:13 'input' ( in float) -0:? Sequence -0:14 Loop with condition not tested first -0:14 Loop Condition -0:14 Compare Less Than ( temp bool) -0:14 'input' ( in float) -0:14 Constant: -0:14 10.000000 -0:14 Loop Body -0:14 Pre-Increment ( temp float) -0:14 'input' ( in float) -0:17 Function Definition: f4(f1; ( temp void) -0:17 Function Parameters: -0:17 'input' ( in float) -0:? Sequence -0:18 Loop with condition not tested first -0:18 Loop Condition -0:18 Compare Less Than ( temp bool) -0:18 Pre-Increment ( temp float) -0:18 'input' ( in float) -0:18 Constant: -0:18 10.000000 -0:18 Loop Body -0:18 Loop with condition tested first -0:18 Loop Condition -0:18 Compare Less Than ( temp bool) -0:18 Pre-Increment ( temp float) -0:18 'input' ( in float) -0:18 Constant: -0:18 10.000000 -0:18 No loop body -0:22 Function Definition: @PixelShaderFunction(f1; ( temp 4-component vector of float) -0:22 Function Parameters: -0:22 'input' ( in float) -0:? Sequence -0:23 Function Call: f0( ( temp void) -0:24 Function Call: f1( ( temp void) -0:25 Function Call: f2(f1; ( temp float) -0:25 'input' ( in float) -0:26 Function Call: f3(f1; ( temp void) -0:26 'input' ( in float) -0:27 Function Call: f4(f1; ( temp void) -0:27 'input' ( in float) -0:28 Branch: Return with expression -0:28 Construct vec4 ( temp 4-component vector of float) -0:28 'input' ( in float) -0:22 Function Definition: PixelShaderFunction( ( temp void) -0:22 Function Parameters: -0:? Sequence -0:22 move second child to first child ( temp float) -0:? 'input' ( temp float) -0:? 'input' (layout( location=0) in float) -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 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:1 Function Definition: f0( ( temp void) -0:1 Function Parameters: -0:? Sequence -0:2 Loop with condition not tested first: Unroll -0:2 Loop Condition -0:2 Constant: -0:2 false (const bool) -0:2 No loop body -0:5 Function Definition: f1( ( temp void) -0:5 Function Parameters: -0:? Sequence -0:6 Loop with condition not tested first: Unroll -0:6 Loop Condition -0:6 Constant: -0:6 false (const bool) -0:6 No loop body -0:9 Function Definition: f2(f1; ( temp float) -0:9 Function Parameters: -0:9 'input' ( in float) -0:? Sequence -0:10 Loop with condition not tested first -0:10 Loop Condition -0:10 Compare Greater Than ( temp bool) -0:10 'input' ( in float) -0:10 Constant: -0:10 2.000000 -0:10 Loop Body -0:? Sequence -0:10 Branch: Return with expression -0:10 Construct float ( temp float) -0:10 Construct vec4 ( temp 4-component vector of float) -0:10 'input' ( in float) -0:13 Function Definition: f3(f1; ( temp void) -0:13 Function Parameters: -0:13 'input' ( in float) -0:? Sequence -0:14 Loop with condition not tested first -0:14 Loop Condition -0:14 Compare Less Than ( temp bool) -0:14 'input' ( in float) -0:14 Constant: -0:14 10.000000 -0:14 Loop Body -0:14 Pre-Increment ( temp float) -0:14 'input' ( in float) -0:17 Function Definition: f4(f1; ( temp void) -0:17 Function Parameters: -0:17 'input' ( in float) -0:? Sequence -0:18 Loop with condition not tested first -0:18 Loop Condition -0:18 Compare Less Than ( temp bool) -0:18 Pre-Increment ( temp float) -0:18 'input' ( in float) -0:18 Constant: -0:18 10.000000 -0:18 Loop Body -0:18 Loop with condition tested first -0:18 Loop Condition -0:18 Compare Less Than ( temp bool) -0:18 Pre-Increment ( temp float) -0:18 'input' ( in float) -0:18 Constant: -0:18 10.000000 -0:18 No loop body -0:22 Function Definition: @PixelShaderFunction(f1; ( temp 4-component vector of float) -0:22 Function Parameters: -0:22 'input' ( in float) -0:? Sequence -0:23 Function Call: f0( ( temp void) -0:24 Function Call: f1( ( temp void) -0:25 Function Call: f2(f1; ( temp float) -0:25 'input' ( in float) -0:26 Function Call: f3(f1; ( temp void) -0:26 'input' ( in float) -0:27 Function Call: f4(f1; ( temp void) -0:27 'input' ( in float) -0:28 Branch: Return with expression -0:28 Construct vec4 ( temp 4-component vector of float) -0:28 'input' ( in float) -0:22 Function Definition: PixelShaderFunction( ( temp void) -0:22 Function Parameters: -0:? Sequence -0:22 move second child to first child ( temp float) -0:? 'input' ( temp float) -0:? 'input' (layout( location=0) in float) -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 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): 8000a -// Id's are bound by 99 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 92 95 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "PixelShaderFunction" - Name 6 "f0(" - Name 8 "f1(" - Name 14 "f2(f1;" - Name 13 "input" - Name 18 "f3(f1;" - Name 17 "input" - Name 21 "f4(f1;" - Name 20 "input" - Name 26 "@PixelShaderFunction(f1;" - Name 25 "input" - Name 77 "param" - Name 80 "param" - Name 83 "param" - Name 90 "input" - Name 92 "input" - Name 95 "@entryPointOutput" - Name 96 "param" - Decorate 92(input) Location 0 - Decorate 95(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 10: TypeFloat 32 - 11: TypePointer Function 10(float) - 12: TypeFunction 10(float) 11(ptr) - 16: TypeFunction 2 11(ptr) - 23: TypeVector 10(float) 4 - 24: TypeFunction 23(fvec4) 11(ptr) - 32: TypeBool - 33: 32(bool) ConstantFalse - 47: 10(float) Constant 1073741824 - 55: 10(float) Constant 1065353216 - 58: 10(float) Constant 1092616192 - 91: TypePointer Input 10(float) - 92(input): 91(ptr) Variable Input - 94: TypePointer Output 23(fvec4) -95(@entryPointOutput): 94(ptr) Variable Output -4(PixelShaderFunction): 2 Function None 3 - 5: Label - 90(input): 11(ptr) Variable Function - 96(param): 11(ptr) Variable Function - 93: 10(float) Load 92(input) - Store 90(input) 93 - 97: 10(float) Load 90(input) - Store 96(param) 97 - 98: 23(fvec4) FunctionCall 26(@PixelShaderFunction(f1;) 96(param) - Store 95(@entryPointOutput) 98 - Return - FunctionEnd - 6(f0(): 2 Function None 3 - 7: Label - Branch 28 - 28: Label - LoopMerge 30 31 Unroll - Branch 29 - 29: Label - Branch 31 - 31: Label - BranchConditional 33 28 30 - 30: Label - Return - FunctionEnd - 8(f1(): 2 Function None 3 - 9: Label - Branch 34 - 34: Label - LoopMerge 36 37 Unroll - Branch 35 - 35: Label - Branch 37 - 37: Label - BranchConditional 33 34 36 - 36: Label - Return - FunctionEnd - 14(f2(f1;): 10(float) Function None 12 - 13(input): 11(ptr) FunctionParameter - 15: Label - Branch 38 - 38: Label - LoopMerge 40 41 None - Branch 39 - 39: Label - 42: 10(float) Load 13(input) - 43: 23(fvec4) CompositeConstruct 42 42 42 42 - 44: 10(float) CompositeExtract 43 0 - ReturnValue 44 - 41: Label - Branch 38 - 40: Label - Unreachable - FunctionEnd - 18(f3(f1;): 2 Function None 16 - 17(input): 11(ptr) FunctionParameter - 19: Label - Branch 50 - 50: Label - LoopMerge 52 53 None - Branch 51 - 51: Label - 54: 10(float) Load 17(input) - 56: 10(float) FAdd 54 55 - Store 17(input) 56 - Branch 53 - 53: Label - 57: 10(float) Load 17(input) - 59: 32(bool) FOrdLessThan 57 58 - BranchConditional 59 50 52 - 52: Label - Return - FunctionEnd - 21(f4(f1;): 2 Function None 16 - 20(input): 11(ptr) FunctionParameter - 22: Label - Branch 60 - 60: Label - LoopMerge 62 63 None - Branch 61 - 61: Label - Branch 64 - 64: Label - LoopMerge 66 67 None - Branch 68 - 68: Label - 69: 10(float) Load 20(input) - 70: 10(float) FAdd 69 55 - Store 20(input) 70 - 71: 32(bool) FOrdLessThan 70 58 - BranchConditional 71 65 66 - 65: Label - Branch 67 - 67: Label - Branch 64 - 66: Label - Branch 63 - 63: Label - 72: 10(float) Load 20(input) - 73: 10(float) FAdd 72 55 - Store 20(input) 73 - 74: 32(bool) FOrdLessThan 73 58 - BranchConditional 74 60 62 - 62: Label - Return - FunctionEnd -26(@PixelShaderFunction(f1;): 23(fvec4) Function None 24 - 25(input): 11(ptr) FunctionParameter - 27: Label - 77(param): 11(ptr) Variable Function - 80(param): 11(ptr) Variable Function - 83(param): 11(ptr) Variable Function - 75: 2 FunctionCall 6(f0() - 76: 2 FunctionCall 8(f1() - 78: 10(float) Load 25(input) - Store 77(param) 78 - 79: 10(float) FunctionCall 14(f2(f1;) 77(param) - 81: 10(float) Load 25(input) - Store 80(param) 81 - 82: 2 FunctionCall 18(f3(f1;) 80(param) - 84: 10(float) Load 25(input) - Store 83(param) 84 - 85: 2 FunctionCall 21(f4(f1;) 83(param) - 86: 10(float) Load 25(input) - 87: 23(fvec4) CompositeConstruct 86 86 86 86 - ReturnValue 87 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.domain.1.tese.out b/deps/glslang/Test/baseResults/hlsl.domain.1.tese.out deleted file mode 100644 index 4e53e7ce..00000000 --- a/deps/glslang/Test/baseResults/hlsl.domain.1.tese.out +++ /dev/null @@ -1,628 +0,0 @@ -hlsl.domain.1.tese -Shader version: 500 -input primitive = triangles -vertex spacing = none -triangle order = none -0:? Sequence -0:22 Function Definition: @main(struct-ds_in_t-vf4-vf31[3];f1;vf3;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:22 Function Parameters: -0:22 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:22 'f' ( in float) -0:22 'tesscoord' ( in 3-component vector of float) -0:22 'pcf_data' ( in structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) -0:? Sequence -0:25 move second child to first child ( temp 4-component vector of float) -0:25 pos: direct index for structure ( temp 4-component vector of float) -0:25 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:25 Constant: -0:25 0 (const int) -0:25 add ( temp 4-component vector of float) -0:25 pos: direct index for structure ( temp 4-component vector of float) -0:25 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:25 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 0 (const int) -0:25 component-wise multiply ( temp float) -0:25 direct index ( temp float) -0:25 'tesscoord' ( in 3-component vector of float) -0:25 Constant: -0:25 0 (const int) -0:25 'f' ( in float) -0:26 move second child to first child ( temp 3-component vector of float) -0:26 norm: direct index for structure ( temp 3-component vector of float) -0:26 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:26 Constant: -0:26 1 (const int) -0:26 add ( temp 3-component vector of float) -0:26 norm: direct index for structure ( temp 3-component vector of float) -0:26 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:26 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 direct index ( temp float) -0:26 'tesscoord' ( in 3-component vector of float) -0:26 Constant: -0:26 1 (const int) -0:28 direct index ( temp float) -0:28 'tesscoord' ( in 3-component vector of float) -0:28 Constant: -0:28 2 (const int) -0:30 Branch: Return with expression -0:30 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:22 Function Definition: main( ( temp void) -0:22 Function Parameters: -0:? Sequence -0:22 Sequence -0:22 move second child to first child ( temp 4-component vector of float) -0:22 pos: direct index for structure ( temp 4-component vector of float) -0:22 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 0 (const int) -0:22 direct index (layout( location=0) in 4-component vector of float) -0:? 'i.pos' (layout( location=0) in 3-element array of 4-component vector of float) -0:22 Constant: -0:22 0 (const int) -0:22 move second child to first child ( temp 3-component vector of float) -0:22 norm: direct index for structure ( temp 3-component vector of float) -0:22 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 direct index (layout( location=1) in 3-component vector of float) -0:? 'i.norm' (layout( location=1) in 3-element array of 3-component vector of float) -0:22 Constant: -0:22 0 (const int) -0:22 move second child to first child ( temp 4-component vector of float) -0:22 pos: direct index for structure ( temp 4-component vector of float) -0:22 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:22 Constant: -0:22 1 (const int) -0:22 Constant: -0:22 0 (const int) -0:22 direct index (layout( location=0) in 4-component vector of float) -0:? 'i.pos' (layout( location=0) in 3-element array of 4-component vector of float) -0:22 Constant: -0:22 1 (const int) -0:22 move second child to first child ( temp 3-component vector of float) -0:22 norm: direct index for structure ( temp 3-component vector of float) -0:22 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:22 Constant: -0:22 1 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 direct index (layout( location=1) in 3-component vector of float) -0:? 'i.norm' (layout( location=1) in 3-element array of 3-component vector of float) -0:22 Constant: -0:22 1 (const int) -0:22 move second child to first child ( temp 4-component vector of float) -0:22 pos: direct index for structure ( temp 4-component vector of float) -0:22 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:22 Constant: -0:22 2 (const int) -0:22 Constant: -0:22 0 (const int) -0:22 direct index (layout( location=0) in 4-component vector of float) -0:? 'i.pos' (layout( location=0) in 3-element array of 4-component vector of float) -0:22 Constant: -0:22 2 (const int) -0:22 move second child to first child ( temp 3-component vector of float) -0:22 norm: direct index for structure ( temp 3-component vector of float) -0:22 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:22 Constant: -0:22 2 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 direct index (layout( location=1) in 3-component vector of float) -0:? 'i.norm' (layout( location=1) in 3-element array of 3-component vector of float) -0:22 Constant: -0:22 2 (const int) -0:22 move second child to first child ( temp float) -0:? 'f' ( temp float) -0:? 'f' (layout( location=2) patch in float) -0:22 move second child to first child ( temp 3-component vector of float) -0:? 'tesscoord' ( temp 3-component vector of float) -0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) -0:22 Sequence -0:22 move second child to first child ( temp float) -0:22 direct index ( temp float) -0:22 flTessFactor: direct index for structure ( temp 3-element array of float) -0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 0 (const int) -0:22 direct index ( patch in float TessLevelOuter) -0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) -0:22 Constant: -0:22 0 (const int) -0:22 move second child to first child ( temp float) -0:22 direct index ( temp float) -0:22 flTessFactor: direct index for structure ( temp 3-element array of float) -0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 direct index ( patch in float TessLevelOuter) -0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) -0:22 Constant: -0:22 1 (const int) -0:22 move second child to first child ( temp float) -0:22 direct index ( temp float) -0:22 flTessFactor: direct index for structure ( temp 3-element array of float) -0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 2 (const int) -0:22 direct index ( patch in float TessLevelOuter) -0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) -0:22 Constant: -0:22 2 (const int) -0:22 move second child to first child ( temp float) -0:22 flInsideTessFactor: direct index for structure ( temp float) -0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) -0:22 Constant: -0:22 1 (const int) -0:22 direct index ( patch in float TessLevelInner) -0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) -0:22 Constant: -0:22 0 (const int) -0:22 Sequence -0:22 move second child to first child ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:22 Function Call: @main(struct-ds_in_t-vf4-vf31[3];f1;vf3;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'f' ( temp float) -0:? 'tesscoord' ( temp 3-component vector of float) -0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) -0:22 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) -0:22 pos: direct index for structure ( temp 4-component vector of float) -0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:22 Constant: -0:22 0 (const int) -0:22 move second child to first child ( temp 3-component vector of float) -0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float) -0:22 norm: direct index for structure ( temp 3-component vector of float) -0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:22 Constant: -0:22 1 (const int) -0:? Linker Objects -0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) -0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float) -0:? 'i.pos' (layout( location=0) in 3-element array of 4-component vector of float) -0:? 'i.norm' (layout( location=1) in 3-element array of 3-component vector of float) -0:? 'f' (layout( location=2) patch in float) -0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) -0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) -0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) - - -Linked tessellation evaluation stage: - - -Shader version: 500 -input primitive = triangles -vertex spacing = none -triangle order = none -0:? Sequence -0:22 Function Definition: @main(struct-ds_in_t-vf4-vf31[3];f1;vf3;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:22 Function Parameters: -0:22 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:22 'f' ( in float) -0:22 'tesscoord' ( in 3-component vector of float) -0:22 'pcf_data' ( in structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) -0:? Sequence -0:25 move second child to first child ( temp 4-component vector of float) -0:25 pos: direct index for structure ( temp 4-component vector of float) -0:25 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:25 Constant: -0:25 0 (const int) -0:25 add ( temp 4-component vector of float) -0:25 pos: direct index for structure ( temp 4-component vector of float) -0:25 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:25 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 0 (const int) -0:25 component-wise multiply ( temp float) -0:25 direct index ( temp float) -0:25 'tesscoord' ( in 3-component vector of float) -0:25 Constant: -0:25 0 (const int) -0:25 'f' ( in float) -0:26 move second child to first child ( temp 3-component vector of float) -0:26 norm: direct index for structure ( temp 3-component vector of float) -0:26 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:26 Constant: -0:26 1 (const int) -0:26 add ( temp 3-component vector of float) -0:26 norm: direct index for structure ( temp 3-component vector of float) -0:26 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:26 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 direct index ( temp float) -0:26 'tesscoord' ( in 3-component vector of float) -0:26 Constant: -0:26 1 (const int) -0:28 direct index ( temp float) -0:28 'tesscoord' ( in 3-component vector of float) -0:28 Constant: -0:28 2 (const int) -0:30 Branch: Return with expression -0:30 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:22 Function Definition: main( ( temp void) -0:22 Function Parameters: -0:? Sequence -0:22 Sequence -0:22 move second child to first child ( temp 4-component vector of float) -0:22 pos: direct index for structure ( temp 4-component vector of float) -0:22 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 0 (const int) -0:22 direct index (layout( location=0) in 4-component vector of float) -0:? 'i.pos' (layout( location=0) in 3-element array of 4-component vector of float) -0:22 Constant: -0:22 0 (const int) -0:22 move second child to first child ( temp 3-component vector of float) -0:22 norm: direct index for structure ( temp 3-component vector of float) -0:22 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 direct index (layout( location=1) in 3-component vector of float) -0:? 'i.norm' (layout( location=1) in 3-element array of 3-component vector of float) -0:22 Constant: -0:22 0 (const int) -0:22 move second child to first child ( temp 4-component vector of float) -0:22 pos: direct index for structure ( temp 4-component vector of float) -0:22 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:22 Constant: -0:22 1 (const int) -0:22 Constant: -0:22 0 (const int) -0:22 direct index (layout( location=0) in 4-component vector of float) -0:? 'i.pos' (layout( location=0) in 3-element array of 4-component vector of float) -0:22 Constant: -0:22 1 (const int) -0:22 move second child to first child ( temp 3-component vector of float) -0:22 norm: direct index for structure ( temp 3-component vector of float) -0:22 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:22 Constant: -0:22 1 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 direct index (layout( location=1) in 3-component vector of float) -0:? 'i.norm' (layout( location=1) in 3-element array of 3-component vector of float) -0:22 Constant: -0:22 1 (const int) -0:22 move second child to first child ( temp 4-component vector of float) -0:22 pos: direct index for structure ( temp 4-component vector of float) -0:22 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:22 Constant: -0:22 2 (const int) -0:22 Constant: -0:22 0 (const int) -0:22 direct index (layout( location=0) in 4-component vector of float) -0:? 'i.pos' (layout( location=0) in 3-element array of 4-component vector of float) -0:22 Constant: -0:22 2 (const int) -0:22 move second child to first child ( temp 3-component vector of float) -0:22 norm: direct index for structure ( temp 3-component vector of float) -0:22 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:22 Constant: -0:22 2 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 direct index (layout( location=1) in 3-component vector of float) -0:? 'i.norm' (layout( location=1) in 3-element array of 3-component vector of float) -0:22 Constant: -0:22 2 (const int) -0:22 move second child to first child ( temp float) -0:? 'f' ( temp float) -0:? 'f' (layout( location=2) patch in float) -0:22 move second child to first child ( temp 3-component vector of float) -0:? 'tesscoord' ( temp 3-component vector of float) -0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) -0:22 Sequence -0:22 move second child to first child ( temp float) -0:22 direct index ( temp float) -0:22 flTessFactor: direct index for structure ( temp 3-element array of float) -0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 0 (const int) -0:22 direct index ( patch in float TessLevelOuter) -0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) -0:22 Constant: -0:22 0 (const int) -0:22 move second child to first child ( temp float) -0:22 direct index ( temp float) -0:22 flTessFactor: direct index for structure ( temp 3-element array of float) -0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 direct index ( patch in float TessLevelOuter) -0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) -0:22 Constant: -0:22 1 (const int) -0:22 move second child to first child ( temp float) -0:22 direct index ( temp float) -0:22 flTessFactor: direct index for structure ( temp 3-element array of float) -0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 2 (const int) -0:22 direct index ( patch in float TessLevelOuter) -0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) -0:22 Constant: -0:22 2 (const int) -0:22 move second child to first child ( temp float) -0:22 flInsideTessFactor: direct index for structure ( temp float) -0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) -0:22 Constant: -0:22 1 (const int) -0:22 direct index ( patch in float TessLevelInner) -0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) -0:22 Constant: -0:22 0 (const int) -0:22 Sequence -0:22 move second child to first child ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:22 Function Call: @main(struct-ds_in_t-vf4-vf31[3];f1;vf3;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'f' ( temp float) -0:? 'tesscoord' ( temp 3-component vector of float) -0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) -0:22 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) -0:22 pos: direct index for structure ( temp 4-component vector of float) -0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:22 Constant: -0:22 0 (const int) -0:22 move second child to first child ( temp 3-component vector of float) -0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float) -0:22 norm: direct index for structure ( temp 3-component vector of float) -0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:22 Constant: -0:22 1 (const int) -0:? Linker Objects -0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) -0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float) -0:? 'i.pos' (layout( location=0) in 3-element array of 4-component vector of float) -0:? 'i.norm' (layout( location=1) in 3-element array of 3-component vector of float) -0:? 'f' (layout( location=2) patch in float) -0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) -0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) -0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 125 - - Capability Tessellation - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint TessellationEvaluation 4 "main" 55 62 82 85 91 104 118 122 - ExecutionMode 4 Triangles - Source HLSL 500 - Name 4 "main" - Name 9 "ds_in_t" - MemberName 9(ds_in_t) 0 "pos" - MemberName 9(ds_in_t) 1 "norm" - Name 16 "pcf_in_t" - MemberName 16(pcf_in_t) 0 "flTessFactor" - MemberName 16(pcf_in_t) 1 "flInsideTessFactor" - Name 18 "gs_in_t" - MemberName 18(gs_in_t) 0 "pos" - MemberName 18(gs_in_t) 1 "norm" - Name 24 "@main(struct-ds_in_t-vf4-vf31[3];f1;vf3;struct-pcf_in_t-f1[3]-f11;" - Name 20 "i" - Name 21 "f" - Name 22 "tesscoord" - Name 23 "pcf_data" - Name 27 "o" - Name 52 "i" - Name 55 "i.pos" - Name 62 "i.norm" - Name 80 "f" - Name 82 "f" - Name 84 "tesscoord" - Name 85 "tesscoord" - Name 87 "pcf_data" - Name 91 "pcf_data.flTessFactor" - Name 104 "pcf_data.flInsideTessFactor" - Name 108 "flattenTemp" - Name 110 "param" - Name 112 "param" - Name 114 "param" - Name 118 "@entryPointOutput.pos" - Name 122 "@entryPointOutput.norm" - Decorate 55(i.pos) Location 0 - Decorate 62(i.norm) Location 1 - Decorate 82(f) Patch - Decorate 82(f) Location 2 - Decorate 85(tesscoord) Patch - Decorate 85(tesscoord) BuiltIn TessCoord - Decorate 91(pcf_data.flTessFactor) Patch - Decorate 91(pcf_data.flTessFactor) BuiltIn TessLevelOuter - Decorate 104(pcf_data.flInsideTessFactor) Patch - Decorate 104(pcf_data.flInsideTessFactor) BuiltIn TessLevelInner - Decorate 118(@entryPointOutput.pos) Location 0 - Decorate 122(@entryPointOutput.norm) Location 1 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeVector 6(float) 3 - 9(ds_in_t): TypeStruct 7(fvec4) 8(fvec3) - 10: TypeInt 32 0 - 11: 10(int) Constant 3 - 12: TypeArray 9(ds_in_t) 11 - 13: TypePointer Function 6(float) - 14: TypePointer Function 8(fvec3) - 15: TypeArray 6(float) 11 - 16(pcf_in_t): TypeStruct 15 6(float) - 17: TypePointer Function 16(pcf_in_t) - 18(gs_in_t): TypeStruct 7(fvec4) 8(fvec3) - 19: TypeFunction 18(gs_in_t) 12 13(ptr) 14(ptr) 17(ptr) - 26: TypePointer Function 18(gs_in_t) - 28: TypeInt 32 1 - 29: 28(int) Constant 0 - 31: 10(int) Constant 0 - 38: TypePointer Function 7(fvec4) - 40: 28(int) Constant 1 - 42: 10(int) Constant 1 - 51: TypePointer Function 12 - 53: TypeArray 7(fvec4) 11 - 54: TypePointer Input 53 - 55(i.pos): 54(ptr) Variable Input - 56: TypePointer Input 7(fvec4) - 60: TypeArray 8(fvec3) 11 - 61: TypePointer Input 60 - 62(i.norm): 61(ptr) Variable Input - 63: TypePointer Input 8(fvec3) - 73: 28(int) Constant 2 - 81: TypePointer Input 6(float) - 82(f): 81(ptr) Variable Input - 85(tesscoord): 63(ptr) Variable Input - 88: 10(int) Constant 4 - 89: TypeArray 6(float) 88 - 90: TypePointer Input 89 -91(pcf_data.flTessFactor): 90(ptr) Variable Input - 101: 10(int) Constant 2 - 102: TypeArray 6(float) 101 - 103: TypePointer Input 102 -104(pcf_data.flInsideTessFactor): 103(ptr) Variable Input - 117: TypePointer Output 7(fvec4) -118(@entryPointOutput.pos): 117(ptr) Variable Output - 121: TypePointer Output 8(fvec3) -122(@entryPointOutput.norm): 121(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 52(i): 51(ptr) Variable Function - 80(f): 13(ptr) Variable Function - 84(tesscoord): 14(ptr) Variable Function - 87(pcf_data): 17(ptr) Variable Function -108(flattenTemp): 26(ptr) Variable Function - 110(param): 13(ptr) Variable Function - 112(param): 14(ptr) Variable Function - 114(param): 17(ptr) Variable Function - 57: 56(ptr) AccessChain 55(i.pos) 29 - 58: 7(fvec4) Load 57 - 59: 38(ptr) AccessChain 52(i) 29 29 - Store 59 58 - 64: 63(ptr) AccessChain 62(i.norm) 29 - 65: 8(fvec3) Load 64 - 66: 14(ptr) AccessChain 52(i) 29 40 - Store 66 65 - 67: 56(ptr) AccessChain 55(i.pos) 40 - 68: 7(fvec4) Load 67 - 69: 38(ptr) AccessChain 52(i) 40 29 - Store 69 68 - 70: 63(ptr) AccessChain 62(i.norm) 40 - 71: 8(fvec3) Load 70 - 72: 14(ptr) AccessChain 52(i) 40 40 - Store 72 71 - 74: 56(ptr) AccessChain 55(i.pos) 73 - 75: 7(fvec4) Load 74 - 76: 38(ptr) AccessChain 52(i) 73 29 - Store 76 75 - 77: 63(ptr) AccessChain 62(i.norm) 73 - 78: 8(fvec3) Load 77 - 79: 14(ptr) AccessChain 52(i) 73 40 - Store 79 78 - 83: 6(float) Load 82(f) - Store 80(f) 83 - 86: 8(fvec3) Load 85(tesscoord) - Store 84(tesscoord) 86 - 92: 81(ptr) AccessChain 91(pcf_data.flTessFactor) 29 - 93: 6(float) Load 92 - 94: 13(ptr) AccessChain 87(pcf_data) 29 29 - Store 94 93 - 95: 81(ptr) AccessChain 91(pcf_data.flTessFactor) 40 - 96: 6(float) Load 95 - 97: 13(ptr) AccessChain 87(pcf_data) 29 40 - Store 97 96 - 98: 81(ptr) AccessChain 91(pcf_data.flTessFactor) 73 - 99: 6(float) Load 98 - 100: 13(ptr) AccessChain 87(pcf_data) 29 73 - Store 100 99 - 105: 81(ptr) AccessChain 104(pcf_data.flInsideTessFactor) 29 - 106: 6(float) Load 105 - 107: 13(ptr) AccessChain 87(pcf_data) 40 - Store 107 106 - 109: 12 Load 52(i) - 111: 6(float) Load 80(f) - Store 110(param) 111 - 113: 8(fvec3) Load 84(tesscoord) - Store 112(param) 113 - 115:16(pcf_in_t) Load 87(pcf_data) - Store 114(param) 115 - 116: 18(gs_in_t) FunctionCall 24(@main(struct-ds_in_t-vf4-vf31[3];f1;vf3;struct-pcf_in_t-f1[3]-f11;) 109 110(param) 112(param) 114(param) - Store 108(flattenTemp) 116 - 119: 38(ptr) AccessChain 108(flattenTemp) 29 - 120: 7(fvec4) Load 119 - Store 118(@entryPointOutput.pos) 120 - 123: 14(ptr) AccessChain 108(flattenTemp) 40 - 124: 8(fvec3) Load 123 - Store 122(@entryPointOutput.norm) 124 - Return - FunctionEnd -24(@main(struct-ds_in_t-vf4-vf31[3];f1;vf3;struct-pcf_in_t-f1[3]-f11;): 18(gs_in_t) Function None 19 - 20(i): 12 FunctionParameter - 21(f): 13(ptr) FunctionParameter - 22(tesscoord): 14(ptr) FunctionParameter - 23(pcf_data): 17(ptr) FunctionParameter - 25: Label - 27(o): 26(ptr) Variable Function - 30: 7(fvec4) CompositeExtract 20(i) 0 0 - 32: 13(ptr) AccessChain 22(tesscoord) 31 - 33: 6(float) Load 32 - 34: 6(float) Load 21(f) - 35: 6(float) FMul 33 34 - 36: 7(fvec4) CompositeConstruct 35 35 35 35 - 37: 7(fvec4) FAdd 30 36 - 39: 38(ptr) AccessChain 27(o) 29 - Store 39 37 - 41: 8(fvec3) CompositeExtract 20(i) 0 1 - 43: 13(ptr) AccessChain 22(tesscoord) 42 - 44: 6(float) Load 43 - 45: 8(fvec3) CompositeConstruct 44 44 44 - 46: 8(fvec3) FAdd 41 45 - 47: 14(ptr) AccessChain 27(o) 40 - Store 47 46 - 48: 18(gs_in_t) Load 27(o) - ReturnValue 48 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.domain.2.tese.out b/deps/glslang/Test/baseResults/hlsl.domain.2.tese.out deleted file mode 100644 index 05f934f1..00000000 --- a/deps/glslang/Test/baseResults/hlsl.domain.2.tese.out +++ /dev/null @@ -1,618 +0,0 @@ -hlsl.domain.2.tese -Shader version: 500 -input primitive = triangles -vertex spacing = none -triangle order = none -0:? Sequence -0:25 Function Definition: @main(struct-pcf_in_t-f1[3]-f1-f11;struct-ds_in_t-vf4-vf31[3];vf3; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:25 Function Parameters: -0:25 'pcf_data' ( in structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) -0:25 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:25 'tesscoord' ( in 3-component vector of float) -0:? Sequence -0:28 move second child to first child ( temp 4-component vector of float) -0:28 pos: direct index for structure ( temp 4-component vector of float) -0:28 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:28 Constant: -0:28 0 (const int) -0:28 add ( temp 4-component vector of float) -0:28 pos: direct index for structure ( temp 4-component vector of float) -0:28 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:28 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 0 (const int) -0:28 direct index ( temp float) -0:28 'tesscoord' ( in 3-component vector of float) -0:28 Constant: -0:28 0 (const int) -0:29 move second child to first child ( temp 3-component vector of float) -0:29 norm: direct index for structure ( temp 3-component vector of float) -0:29 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:29 Constant: -0:29 1 (const int) -0:29 add ( temp 3-component vector of float) -0:29 norm: direct index for structure ( temp 3-component vector of float) -0:29 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:29 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 1 (const int) -0:29 direct index ( temp float) -0:29 'tesscoord' ( in 3-component vector of float) -0:29 Constant: -0:29 1 (const int) -0:31 direct index ( temp float) -0:31 'tesscoord' ( in 3-component vector of float) -0:31 Constant: -0:31 2 (const int) -0:33 Branch: Return with expression -0:33 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:25 Function Definition: main( ( temp void) -0:25 Function Parameters: -0:? Sequence -0:25 Sequence -0:25 move second child to first child ( temp float) -0:25 direct index ( temp float) -0:25 flTessFactor: direct index for structure ( temp 3-element array of float) -0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 0 (const int) -0:25 direct index ( patch in float TessLevelOuter) -0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) -0:25 Constant: -0:25 0 (const int) -0:25 move second child to first child ( temp float) -0:25 direct index ( temp float) -0:25 flTessFactor: direct index for structure ( temp 3-element array of float) -0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 direct index ( patch in float TessLevelOuter) -0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) -0:25 Constant: -0:25 1 (const int) -0:25 move second child to first child ( temp float) -0:25 direct index ( temp float) -0:25 flTessFactor: direct index for structure ( temp 3-element array of float) -0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 direct index ( patch in float TessLevelOuter) -0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) -0:25 Constant: -0:25 2 (const int) -0:25 move second child to first child ( temp float) -0:25 flInsideTessFactor: direct index for structure ( temp float) -0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) -0:25 Constant: -0:25 1 (const int) -0:25 direct index ( patch in float TessLevelInner) -0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) -0:25 Constant: -0:25 0 (const int) -0:25 move second child to first child ( temp float) -0:25 foo: direct index for structure ( temp float) -0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) -0:25 Constant: -0:25 2 (const int) -0:? 'pcf_data.foo' (layout( location=2) patch in float) -0:25 Sequence -0:25 move second child to first child ( temp 4-component vector of float) -0:25 pos: direct index for structure ( temp 4-component vector of float) -0:25 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 0 (const int) -0:25 direct index (layout( location=0) in 4-component vector of float) -0:? 'i.pos' (layout( location=0) in 3-element array of 4-component vector of float) -0:25 Constant: -0:25 0 (const int) -0:25 move second child to first child ( temp 3-component vector of float) -0:25 norm: direct index for structure ( temp 3-component vector of float) -0:25 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 direct index (layout( location=1) in 3-component vector of float) -0:? 'i.norm' (layout( location=1) in 3-element array of 3-component vector of float) -0:25 Constant: -0:25 0 (const int) -0:25 move second child to first child ( temp 4-component vector of float) -0:25 pos: direct index for structure ( temp 4-component vector of float) -0:25 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 0 (const int) -0:25 direct index (layout( location=0) in 4-component vector of float) -0:? 'i.pos' (layout( location=0) in 3-element array of 4-component vector of float) -0:25 Constant: -0:25 1 (const int) -0:25 move second child to first child ( temp 3-component vector of float) -0:25 norm: direct index for structure ( temp 3-component vector of float) -0:25 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 direct index (layout( location=1) in 3-component vector of float) -0:? 'i.norm' (layout( location=1) in 3-element array of 3-component vector of float) -0:25 Constant: -0:25 1 (const int) -0:25 move second child to first child ( temp 4-component vector of float) -0:25 pos: direct index for structure ( temp 4-component vector of float) -0:25 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:25 Constant: -0:25 2 (const int) -0:25 Constant: -0:25 0 (const int) -0:25 direct index (layout( location=0) in 4-component vector of float) -0:? 'i.pos' (layout( location=0) in 3-element array of 4-component vector of float) -0:25 Constant: -0:25 2 (const int) -0:25 move second child to first child ( temp 3-component vector of float) -0:25 norm: direct index for structure ( temp 3-component vector of float) -0:25 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:25 Constant: -0:25 2 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 direct index (layout( location=1) in 3-component vector of float) -0:? 'i.norm' (layout( location=1) in 3-element array of 3-component vector of float) -0:25 Constant: -0:25 2 (const int) -0:25 move second child to first child ( temp 3-component vector of float) -0:? 'tesscoord' ( temp 3-component vector of float) -0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) -0:25 Sequence -0:25 move second child to first child ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:25 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:25 Function Call: @main(struct-pcf_in_t-f1[3]-f1-f11;struct-ds_in_t-vf4-vf31[3];vf3; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) -0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'tesscoord' ( temp 3-component vector of float) -0:25 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) -0:25 pos: direct index for structure ( temp 4-component vector of float) -0:25 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:25 Constant: -0:25 0 (const int) -0:25 move second child to first child ( temp 3-component vector of float) -0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float) -0:25 norm: direct index for structure ( temp 3-component vector of float) -0:25 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:25 Constant: -0:25 1 (const int) -0:? Linker Objects -0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) -0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float) -0:? 'i.pos' (layout( location=0) in 3-element array of 4-component vector of float) -0:? 'i.norm' (layout( location=1) in 3-element array of 3-component vector of float) -0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) -0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) -0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) -0:? 'pcf_data.foo' (layout( location=2) patch in float) - - -Linked tessellation evaluation stage: - - -Shader version: 500 -input primitive = triangles -vertex spacing = none -triangle order = none -0:? Sequence -0:25 Function Definition: @main(struct-pcf_in_t-f1[3]-f1-f11;struct-ds_in_t-vf4-vf31[3];vf3; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:25 Function Parameters: -0:25 'pcf_data' ( in structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) -0:25 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:25 'tesscoord' ( in 3-component vector of float) -0:? Sequence -0:28 move second child to first child ( temp 4-component vector of float) -0:28 pos: direct index for structure ( temp 4-component vector of float) -0:28 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:28 Constant: -0:28 0 (const int) -0:28 add ( temp 4-component vector of float) -0:28 pos: direct index for structure ( temp 4-component vector of float) -0:28 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:28 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 0 (const int) -0:28 direct index ( temp float) -0:28 'tesscoord' ( in 3-component vector of float) -0:28 Constant: -0:28 0 (const int) -0:29 move second child to first child ( temp 3-component vector of float) -0:29 norm: direct index for structure ( temp 3-component vector of float) -0:29 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:29 Constant: -0:29 1 (const int) -0:29 add ( temp 3-component vector of float) -0:29 norm: direct index for structure ( temp 3-component vector of float) -0:29 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:29 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 1 (const int) -0:29 direct index ( temp float) -0:29 'tesscoord' ( in 3-component vector of float) -0:29 Constant: -0:29 1 (const int) -0:31 direct index ( temp float) -0:31 'tesscoord' ( in 3-component vector of float) -0:31 Constant: -0:31 2 (const int) -0:33 Branch: Return with expression -0:33 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:25 Function Definition: main( ( temp void) -0:25 Function Parameters: -0:? Sequence -0:25 Sequence -0:25 move second child to first child ( temp float) -0:25 direct index ( temp float) -0:25 flTessFactor: direct index for structure ( temp 3-element array of float) -0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 0 (const int) -0:25 direct index ( patch in float TessLevelOuter) -0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) -0:25 Constant: -0:25 0 (const int) -0:25 move second child to first child ( temp float) -0:25 direct index ( temp float) -0:25 flTessFactor: direct index for structure ( temp 3-element array of float) -0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 direct index ( patch in float TessLevelOuter) -0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) -0:25 Constant: -0:25 1 (const int) -0:25 move second child to first child ( temp float) -0:25 direct index ( temp float) -0:25 flTessFactor: direct index for structure ( temp 3-element array of float) -0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 direct index ( patch in float TessLevelOuter) -0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) -0:25 Constant: -0:25 2 (const int) -0:25 move second child to first child ( temp float) -0:25 flInsideTessFactor: direct index for structure ( temp float) -0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) -0:25 Constant: -0:25 1 (const int) -0:25 direct index ( patch in float TessLevelInner) -0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) -0:25 Constant: -0:25 0 (const int) -0:25 move second child to first child ( temp float) -0:25 foo: direct index for structure ( temp float) -0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) -0:25 Constant: -0:25 2 (const int) -0:? 'pcf_data.foo' (layout( location=2) patch in float) -0:25 Sequence -0:25 move second child to first child ( temp 4-component vector of float) -0:25 pos: direct index for structure ( temp 4-component vector of float) -0:25 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 0 (const int) -0:25 direct index (layout( location=0) in 4-component vector of float) -0:? 'i.pos' (layout( location=0) in 3-element array of 4-component vector of float) -0:25 Constant: -0:25 0 (const int) -0:25 move second child to first child ( temp 3-component vector of float) -0:25 norm: direct index for structure ( temp 3-component vector of float) -0:25 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 direct index (layout( location=1) in 3-component vector of float) -0:? 'i.norm' (layout( location=1) in 3-element array of 3-component vector of float) -0:25 Constant: -0:25 0 (const int) -0:25 move second child to first child ( temp 4-component vector of float) -0:25 pos: direct index for structure ( temp 4-component vector of float) -0:25 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 0 (const int) -0:25 direct index (layout( location=0) in 4-component vector of float) -0:? 'i.pos' (layout( location=0) in 3-element array of 4-component vector of float) -0:25 Constant: -0:25 1 (const int) -0:25 move second child to first child ( temp 3-component vector of float) -0:25 norm: direct index for structure ( temp 3-component vector of float) -0:25 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 direct index (layout( location=1) in 3-component vector of float) -0:? 'i.norm' (layout( location=1) in 3-element array of 3-component vector of float) -0:25 Constant: -0:25 1 (const int) -0:25 move second child to first child ( temp 4-component vector of float) -0:25 pos: direct index for structure ( temp 4-component vector of float) -0:25 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:25 Constant: -0:25 2 (const int) -0:25 Constant: -0:25 0 (const int) -0:25 direct index (layout( location=0) in 4-component vector of float) -0:? 'i.pos' (layout( location=0) in 3-element array of 4-component vector of float) -0:25 Constant: -0:25 2 (const int) -0:25 move second child to first child ( temp 3-component vector of float) -0:25 norm: direct index for structure ( temp 3-component vector of float) -0:25 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:25 Constant: -0:25 2 (const int) -0:25 Constant: -0:25 1 (const int) -0:25 direct index (layout( location=1) in 3-component vector of float) -0:? 'i.norm' (layout( location=1) in 3-element array of 3-component vector of float) -0:25 Constant: -0:25 2 (const int) -0:25 move second child to first child ( temp 3-component vector of float) -0:? 'tesscoord' ( temp 3-component vector of float) -0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) -0:25 Sequence -0:25 move second child to first child ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:25 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:25 Function Call: @main(struct-pcf_in_t-f1[3]-f1-f11;struct-ds_in_t-vf4-vf31[3];vf3; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) -0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'tesscoord' ( temp 3-component vector of float) -0:25 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) -0:25 pos: direct index for structure ( temp 4-component vector of float) -0:25 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:25 Constant: -0:25 0 (const int) -0:25 move second child to first child ( temp 3-component vector of float) -0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float) -0:25 norm: direct index for structure ( temp 3-component vector of float) -0:25 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:25 Constant: -0:25 1 (const int) -0:? Linker Objects -0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) -0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float) -0:? 'i.pos' (layout( location=0) in 3-element array of 4-component vector of float) -0:? 'i.norm' (layout( location=1) in 3-element array of 3-component vector of float) -0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) -0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) -0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) -0:? 'pcf_data.foo' (layout( location=2) patch in float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 120 - - Capability Tessellation - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint TessellationEvaluation 4 "main" 52 67 71 78 85 103 113 117 - ExecutionMode 4 Triangles - Source HLSL 500 - Name 4 "main" - Name 10 "pcf_in_t" - MemberName 10(pcf_in_t) 0 "flTessFactor" - MemberName 10(pcf_in_t) 1 "flInsideTessFactor" - MemberName 10(pcf_in_t) 2 "foo" - Name 14 "ds_in_t" - MemberName 14(ds_in_t) 0 "pos" - MemberName 14(ds_in_t) 1 "norm" - Name 17 "gs_in_t" - MemberName 17(gs_in_t) 0 "pos" - MemberName 17(gs_in_t) 1 "norm" - Name 22 "@main(struct-pcf_in_t-f1[3]-f1-f11;struct-ds_in_t-vf4-vf31[3];vf3;" - Name 19 "pcf_data" - Name 20 "i" - Name 21 "tesscoord" - Name 25 "o" - Name 48 "pcf_data" - Name 52 "pcf_data.flTessFactor" - Name 67 "pcf_data.flInsideTessFactor" - Name 71 "pcf_data.foo" - Name 75 "i" - Name 78 "i.pos" - Name 85 "i.norm" - Name 102 "tesscoord" - Name 103 "tesscoord" - Name 105 "flattenTemp" - Name 107 "param" - Name 109 "param" - Name 113 "@entryPointOutput.pos" - Name 117 "@entryPointOutput.norm" - Decorate 52(pcf_data.flTessFactor) Patch - Decorate 52(pcf_data.flTessFactor) BuiltIn TessLevelOuter - Decorate 67(pcf_data.flInsideTessFactor) Patch - Decorate 67(pcf_data.flInsideTessFactor) BuiltIn TessLevelInner - Decorate 71(pcf_data.foo) Patch - Decorate 71(pcf_data.foo) Location 2 - Decorate 78(i.pos) Location 0 - Decorate 85(i.norm) Location 1 - Decorate 103(tesscoord) Patch - Decorate 103(tesscoord) BuiltIn TessCoord - Decorate 113(@entryPointOutput.pos) Location 0 - Decorate 117(@entryPointOutput.norm) Location 1 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeInt 32 0 - 8: 7(int) Constant 3 - 9: TypeArray 6(float) 8 - 10(pcf_in_t): TypeStruct 9 6(float) 6(float) - 11: TypePointer Function 10(pcf_in_t) - 12: TypeVector 6(float) 4 - 13: TypeVector 6(float) 3 - 14(ds_in_t): TypeStruct 12(fvec4) 13(fvec3) - 15: TypeArray 14(ds_in_t) 8 - 16: TypePointer Function 13(fvec3) - 17(gs_in_t): TypeStruct 12(fvec4) 13(fvec3) - 18: TypeFunction 17(gs_in_t) 11(ptr) 15 16(ptr) - 24: TypePointer Function 17(gs_in_t) - 26: TypeInt 32 1 - 27: 26(int) Constant 0 - 29: 7(int) Constant 0 - 30: TypePointer Function 6(float) - 35: TypePointer Function 12(fvec4) - 37: 26(int) Constant 1 - 39: 7(int) Constant 1 - 49: 7(int) Constant 4 - 50: TypeArray 6(float) 49 - 51: TypePointer Input 50 -52(pcf_data.flTessFactor): 51(ptr) Variable Input - 53: TypePointer Input 6(float) - 60: 26(int) Constant 2 - 64: 7(int) Constant 2 - 65: TypeArray 6(float) 64 - 66: TypePointer Input 65 -67(pcf_data.flInsideTessFactor): 66(ptr) Variable Input -71(pcf_data.foo): 53(ptr) Variable Input - 74: TypePointer Function 15 - 76: TypeArray 12(fvec4) 8 - 77: TypePointer Input 76 - 78(i.pos): 77(ptr) Variable Input - 79: TypePointer Input 12(fvec4) - 83: TypeArray 13(fvec3) 8 - 84: TypePointer Input 83 - 85(i.norm): 84(ptr) Variable Input - 86: TypePointer Input 13(fvec3) - 103(tesscoord): 86(ptr) Variable Input - 112: TypePointer Output 12(fvec4) -113(@entryPointOutput.pos): 112(ptr) Variable Output - 116: TypePointer Output 13(fvec3) -117(@entryPointOutput.norm): 116(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 48(pcf_data): 11(ptr) Variable Function - 75(i): 74(ptr) Variable Function - 102(tesscoord): 16(ptr) Variable Function -105(flattenTemp): 24(ptr) Variable Function - 107(param): 11(ptr) Variable Function - 109(param): 16(ptr) Variable Function - 54: 53(ptr) AccessChain 52(pcf_data.flTessFactor) 27 - 55: 6(float) Load 54 - 56: 30(ptr) AccessChain 48(pcf_data) 27 27 - Store 56 55 - 57: 53(ptr) AccessChain 52(pcf_data.flTessFactor) 37 - 58: 6(float) Load 57 - 59: 30(ptr) AccessChain 48(pcf_data) 27 37 - Store 59 58 - 61: 53(ptr) AccessChain 52(pcf_data.flTessFactor) 60 - 62: 6(float) Load 61 - 63: 30(ptr) AccessChain 48(pcf_data) 27 60 - Store 63 62 - 68: 53(ptr) AccessChain 67(pcf_data.flInsideTessFactor) 27 - 69: 6(float) Load 68 - 70: 30(ptr) AccessChain 48(pcf_data) 37 - Store 70 69 - 72: 6(float) Load 71(pcf_data.foo) - 73: 30(ptr) AccessChain 48(pcf_data) 60 - Store 73 72 - 80: 79(ptr) AccessChain 78(i.pos) 27 - 81: 12(fvec4) Load 80 - 82: 35(ptr) AccessChain 75(i) 27 27 - Store 82 81 - 87: 86(ptr) AccessChain 85(i.norm) 27 - 88: 13(fvec3) Load 87 - 89: 16(ptr) AccessChain 75(i) 27 37 - Store 89 88 - 90: 79(ptr) AccessChain 78(i.pos) 37 - 91: 12(fvec4) Load 90 - 92: 35(ptr) AccessChain 75(i) 37 27 - Store 92 91 - 93: 86(ptr) AccessChain 85(i.norm) 37 - 94: 13(fvec3) Load 93 - 95: 16(ptr) AccessChain 75(i) 37 37 - Store 95 94 - 96: 79(ptr) AccessChain 78(i.pos) 60 - 97: 12(fvec4) Load 96 - 98: 35(ptr) AccessChain 75(i) 60 27 - Store 98 97 - 99: 86(ptr) AccessChain 85(i.norm) 60 - 100: 13(fvec3) Load 99 - 101: 16(ptr) AccessChain 75(i) 60 37 - Store 101 100 - 104: 13(fvec3) Load 103(tesscoord) - Store 102(tesscoord) 104 - 106: 15 Load 75(i) - 108:10(pcf_in_t) Load 48(pcf_data) - Store 107(param) 108 - 110: 13(fvec3) Load 102(tesscoord) - Store 109(param) 110 - 111: 17(gs_in_t) FunctionCall 22(@main(struct-pcf_in_t-f1[3]-f1-f11;struct-ds_in_t-vf4-vf31[3];vf3;) 107(param) 106 109(param) - Store 105(flattenTemp) 111 - 114: 35(ptr) AccessChain 105(flattenTemp) 27 - 115: 12(fvec4) Load 114 - Store 113(@entryPointOutput.pos) 115 - 118: 16(ptr) AccessChain 105(flattenTemp) 37 - 119: 13(fvec3) Load 118 - Store 117(@entryPointOutput.norm) 119 - Return - FunctionEnd -22(@main(struct-pcf_in_t-f1[3]-f1-f11;struct-ds_in_t-vf4-vf31[3];vf3;): 17(gs_in_t) Function None 18 - 19(pcf_data): 11(ptr) FunctionParameter - 20(i): 15 FunctionParameter - 21(tesscoord): 16(ptr) FunctionParameter - 23: Label - 25(o): 24(ptr) Variable Function - 28: 12(fvec4) CompositeExtract 20(i) 0 0 - 31: 30(ptr) AccessChain 21(tesscoord) 29 - 32: 6(float) Load 31 - 33: 12(fvec4) CompositeConstruct 32 32 32 32 - 34: 12(fvec4) FAdd 28 33 - 36: 35(ptr) AccessChain 25(o) 27 - Store 36 34 - 38: 13(fvec3) CompositeExtract 20(i) 0 1 - 40: 30(ptr) AccessChain 21(tesscoord) 39 - 41: 6(float) Load 40 - 42: 13(fvec3) CompositeConstruct 41 41 41 - 43: 13(fvec3) FAdd 38 42 - 44: 16(ptr) AccessChain 25(o) 37 - Store 44 43 - 45: 17(gs_in_t) Load 25(o) - ReturnValue 45 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.domain.3.tese.out b/deps/glslang/Test/baseResults/hlsl.domain.3.tese.out deleted file mode 100644 index c9b985de..00000000 --- a/deps/glslang/Test/baseResults/hlsl.domain.3.tese.out +++ /dev/null @@ -1,539 +0,0 @@ -hlsl.domain.3.tese -Shader version: 500 -input primitive = isolines -vertex spacing = none -triangle order = none -0:? Sequence -0:24 Function Definition: @main(struct-ds_in_t-vf4-vf31[2];vf2;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:24 Function Parameters: -0:24 'i' ( const (read only) 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:24 'tesscoord' ( in 2-component vector of float) -0:24 'pcf_data' ( in structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) -0:? Sequence -0:27 move second child to first child ( temp 4-component vector of float) -0:27 pos: direct index for structure ( temp 4-component vector of float) -0:27 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:27 Constant: -0:27 0 (const int) -0:27 add ( temp 4-component vector of float) -0:27 pos: direct index for structure ( temp 4-component vector of float) -0:27 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:27 'i' ( const (read only) 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 0 (const int) -0:27 direct index ( temp float) -0:27 'tesscoord' ( in 2-component vector of float) -0:27 Constant: -0:27 0 (const int) -0:28 move second child to first child ( temp 3-component vector of float) -0:28 norm: direct index for structure ( temp 3-component vector of float) -0:28 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:28 Constant: -0:28 1 (const int) -0:28 add ( temp 3-component vector of float) -0:28 norm: direct index for structure ( temp 3-component vector of float) -0:28 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:28 'i' ( const (read only) 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 1 (const int) -0:28 direct index ( temp float) -0:28 'tesscoord' ( in 2-component vector of float) -0:28 Constant: -0:28 1 (const int) -0:30 Branch: Return with expression -0:30 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:24 Function Definition: main( ( temp void) -0:24 Function Parameters: -0:? Sequence -0:24 Sequence -0:24 move second child to first child ( temp 4-component vector of float) -0:24 pos: direct index for structure ( temp 4-component vector of float) -0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'i' ( temp 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 0 (const int) -0:24 direct index (layout( location=0) in 4-component vector of float) -0:? 'i.pos' (layout( location=0) in 2-element array of 4-component vector of float) -0:24 Constant: -0:24 0 (const int) -0:24 move second child to first child ( temp 3-component vector of float) -0:24 norm: direct index for structure ( temp 3-component vector of float) -0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'i' ( temp 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 direct index (layout( location=1) in 3-component vector of float) -0:? 'i.norm' (layout( location=1) in 2-element array of 3-component vector of float) -0:24 Constant: -0:24 0 (const int) -0:24 move second child to first child ( temp 4-component vector of float) -0:24 pos: direct index for structure ( temp 4-component vector of float) -0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'i' ( temp 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 0 (const int) -0:24 direct index (layout( location=0) in 4-component vector of float) -0:? 'i.pos' (layout( location=0) in 2-element array of 4-component vector of float) -0:24 Constant: -0:24 1 (const int) -0:24 move second child to first child ( temp 3-component vector of float) -0:24 norm: direct index for structure ( temp 3-component vector of float) -0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'i' ( temp 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 direct index (layout( location=1) in 3-component vector of float) -0:? 'i.norm' (layout( location=1) in 2-element array of 3-component vector of float) -0:24 Constant: -0:24 1 (const int) -0:24 move second child to first child ( temp 2-component vector of float) -0:? 'tesscoord' ( temp 2-component vector of float) -0:? Construct vec2 ( temp 2-component vector of float) -0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) -0:24 Sequence -0:24 move second child to first child ( temp float) -0:24 direct index ( temp float) -0:24 flTessFactor: direct index for structure ( temp 3-element array of float) -0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 0 (const int) -0:24 direct index ( patch in float TessLevelOuter) -0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) -0:24 Constant: -0:24 0 (const int) -0:24 move second child to first child ( temp float) -0:24 direct index ( temp float) -0:24 flTessFactor: direct index for structure ( temp 3-element array of float) -0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 direct index ( patch in float TessLevelOuter) -0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) -0:24 Constant: -0:24 1 (const int) -0:24 move second child to first child ( temp float) -0:24 direct index ( temp float) -0:24 flTessFactor: direct index for structure ( temp 3-element array of float) -0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 2 (const int) -0:24 direct index ( patch in float TessLevelOuter) -0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) -0:24 Constant: -0:24 2 (const int) -0:24 move second child to first child ( temp float) -0:24 flInsideTessFactor: direct index for structure ( temp float) -0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) -0:24 Constant: -0:24 1 (const int) -0:24 direct index ( patch in float TessLevelInner) -0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) -0:24 Constant: -0:24 0 (const int) -0:24 Sequence -0:24 move second child to first child ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:24 Function Call: @main(struct-ds_in_t-vf4-vf31[2];vf2;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'i' ( temp 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'tesscoord' ( temp 2-component vector of float) -0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) -0:24 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) -0:24 pos: direct index for structure ( temp 4-component vector of float) -0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:24 Constant: -0:24 0 (const int) -0:24 move second child to first child ( temp 3-component vector of float) -0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float) -0:24 norm: direct index for structure ( temp 3-component vector of float) -0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:24 Constant: -0:24 1 (const int) -0:? Linker Objects -0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) -0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float) -0:? 'i.pos' (layout( location=0) in 2-element array of 4-component vector of float) -0:? 'i.norm' (layout( location=1) in 2-element array of 3-component vector of float) -0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) -0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) -0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) - - -Linked tessellation evaluation stage: - - -Shader version: 500 -input primitive = isolines -vertex spacing = none -triangle order = none -0:? Sequence -0:24 Function Definition: @main(struct-ds_in_t-vf4-vf31[2];vf2;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:24 Function Parameters: -0:24 'i' ( const (read only) 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:24 'tesscoord' ( in 2-component vector of float) -0:24 'pcf_data' ( in structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) -0:? Sequence -0:27 move second child to first child ( temp 4-component vector of float) -0:27 pos: direct index for structure ( temp 4-component vector of float) -0:27 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:27 Constant: -0:27 0 (const int) -0:27 add ( temp 4-component vector of float) -0:27 pos: direct index for structure ( temp 4-component vector of float) -0:27 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:27 'i' ( const (read only) 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 0 (const int) -0:27 direct index ( temp float) -0:27 'tesscoord' ( in 2-component vector of float) -0:27 Constant: -0:27 0 (const int) -0:28 move second child to first child ( temp 3-component vector of float) -0:28 norm: direct index for structure ( temp 3-component vector of float) -0:28 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:28 Constant: -0:28 1 (const int) -0:28 add ( temp 3-component vector of float) -0:28 norm: direct index for structure ( temp 3-component vector of float) -0:28 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:28 'i' ( const (read only) 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 1 (const int) -0:28 direct index ( temp float) -0:28 'tesscoord' ( in 2-component vector of float) -0:28 Constant: -0:28 1 (const int) -0:30 Branch: Return with expression -0:30 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:24 Function Definition: main( ( temp void) -0:24 Function Parameters: -0:? Sequence -0:24 Sequence -0:24 move second child to first child ( temp 4-component vector of float) -0:24 pos: direct index for structure ( temp 4-component vector of float) -0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'i' ( temp 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 0 (const int) -0:24 direct index (layout( location=0) in 4-component vector of float) -0:? 'i.pos' (layout( location=0) in 2-element array of 4-component vector of float) -0:24 Constant: -0:24 0 (const int) -0:24 move second child to first child ( temp 3-component vector of float) -0:24 norm: direct index for structure ( temp 3-component vector of float) -0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'i' ( temp 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 direct index (layout( location=1) in 3-component vector of float) -0:? 'i.norm' (layout( location=1) in 2-element array of 3-component vector of float) -0:24 Constant: -0:24 0 (const int) -0:24 move second child to first child ( temp 4-component vector of float) -0:24 pos: direct index for structure ( temp 4-component vector of float) -0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'i' ( temp 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 0 (const int) -0:24 direct index (layout( location=0) in 4-component vector of float) -0:? 'i.pos' (layout( location=0) in 2-element array of 4-component vector of float) -0:24 Constant: -0:24 1 (const int) -0:24 move second child to first child ( temp 3-component vector of float) -0:24 norm: direct index for structure ( temp 3-component vector of float) -0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'i' ( temp 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 direct index (layout( location=1) in 3-component vector of float) -0:? 'i.norm' (layout( location=1) in 2-element array of 3-component vector of float) -0:24 Constant: -0:24 1 (const int) -0:24 move second child to first child ( temp 2-component vector of float) -0:? 'tesscoord' ( temp 2-component vector of float) -0:? Construct vec2 ( temp 2-component vector of float) -0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) -0:24 Sequence -0:24 move second child to first child ( temp float) -0:24 direct index ( temp float) -0:24 flTessFactor: direct index for structure ( temp 3-element array of float) -0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 0 (const int) -0:24 direct index ( patch in float TessLevelOuter) -0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) -0:24 Constant: -0:24 0 (const int) -0:24 move second child to first child ( temp float) -0:24 direct index ( temp float) -0:24 flTessFactor: direct index for structure ( temp 3-element array of float) -0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 direct index ( patch in float TessLevelOuter) -0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) -0:24 Constant: -0:24 1 (const int) -0:24 move second child to first child ( temp float) -0:24 direct index ( temp float) -0:24 flTessFactor: direct index for structure ( temp 3-element array of float) -0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 2 (const int) -0:24 direct index ( patch in float TessLevelOuter) -0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) -0:24 Constant: -0:24 2 (const int) -0:24 move second child to first child ( temp float) -0:24 flInsideTessFactor: direct index for structure ( temp float) -0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) -0:24 Constant: -0:24 1 (const int) -0:24 direct index ( patch in float TessLevelInner) -0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) -0:24 Constant: -0:24 0 (const int) -0:24 Sequence -0:24 move second child to first child ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:24 Function Call: @main(struct-ds_in_t-vf4-vf31[2];vf2;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'i' ( temp 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:? 'tesscoord' ( temp 2-component vector of float) -0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) -0:24 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) -0:24 pos: direct index for structure ( temp 4-component vector of float) -0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:24 Constant: -0:24 0 (const int) -0:24 move second child to first child ( temp 3-component vector of float) -0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float) -0:24 norm: direct index for structure ( temp 3-component vector of float) -0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) -0:24 Constant: -0:24 1 (const int) -0:? Linker Objects -0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) -0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float) -0:? 'i.pos' (layout( location=0) in 2-element array of 4-component vector of float) -0:? 'i.norm' (layout( location=1) in 2-element array of 3-component vector of float) -0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) -0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) -0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 116 - - Capability Tessellation - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint TessellationEvaluation 4 "main" 55 62 74 83 97 109 113 - ExecutionMode 4 Isolines - Source HLSL 500 - Name 4 "main" - Name 9 "ds_in_t" - MemberName 9(ds_in_t) 0 "pos" - MemberName 9(ds_in_t) 1 "norm" - Name 17 "pcf_in_t" - MemberName 17(pcf_in_t) 0 "flTessFactor" - MemberName 17(pcf_in_t) 1 "flInsideTessFactor" - Name 19 "gs_in_t" - MemberName 19(gs_in_t) 0 "pos" - MemberName 19(gs_in_t) 1 "norm" - Name 24 "@main(struct-ds_in_t-vf4-vf31[2];vf2;struct-pcf_in_t-f1[3]-f11;" - Name 21 "i" - Name 22 "tesscoord" - Name 23 "pcf_data" - Name 27 "o" - Name 52 "i" - Name 55 "i.pos" - Name 62 "i.norm" - Name 73 "tesscoord" - Name 74 "tesscoord" - Name 79 "pcf_data" - Name 83 "pcf_data.flTessFactor" - Name 97 "pcf_data.flInsideTessFactor" - Name 101 "flattenTemp" - Name 103 "param" - Name 105 "param" - Name 109 "@entryPointOutput.pos" - Name 113 "@entryPointOutput.norm" - Decorate 55(i.pos) Location 0 - Decorate 62(i.norm) Location 1 - Decorate 74(tesscoord) Patch - Decorate 74(tesscoord) BuiltIn TessCoord - Decorate 83(pcf_data.flTessFactor) Patch - Decorate 83(pcf_data.flTessFactor) BuiltIn TessLevelOuter - Decorate 97(pcf_data.flInsideTessFactor) Patch - Decorate 97(pcf_data.flInsideTessFactor) BuiltIn TessLevelInner - Decorate 109(@entryPointOutput.pos) Location 0 - Decorate 113(@entryPointOutput.norm) Location 1 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeVector 6(float) 3 - 9(ds_in_t): TypeStruct 7(fvec4) 8(fvec3) - 10: TypeInt 32 0 - 11: 10(int) Constant 2 - 12: TypeArray 9(ds_in_t) 11 - 13: TypeVector 6(float) 2 - 14: TypePointer Function 13(fvec2) - 15: 10(int) Constant 3 - 16: TypeArray 6(float) 15 - 17(pcf_in_t): TypeStruct 16 6(float) - 18: TypePointer Function 17(pcf_in_t) - 19(gs_in_t): TypeStruct 7(fvec4) 8(fvec3) - 20: TypeFunction 19(gs_in_t) 12 14(ptr) 18(ptr) - 26: TypePointer Function 19(gs_in_t) - 28: TypeInt 32 1 - 29: 28(int) Constant 0 - 31: 10(int) Constant 0 - 32: TypePointer Function 6(float) - 37: TypePointer Function 7(fvec4) - 39: 28(int) Constant 1 - 41: 10(int) Constant 1 - 46: TypePointer Function 8(fvec3) - 51: TypePointer Function 12 - 53: TypeArray 7(fvec4) 11 - 54: TypePointer Input 53 - 55(i.pos): 54(ptr) Variable Input - 56: TypePointer Input 7(fvec4) - 60: TypeArray 8(fvec3) 11 - 61: TypePointer Input 60 - 62(i.norm): 61(ptr) Variable Input - 63: TypePointer Input 8(fvec3) - 74(tesscoord): 63(ptr) Variable Input - 80: 10(int) Constant 4 - 81: TypeArray 6(float) 80 - 82: TypePointer Input 81 -83(pcf_data.flTessFactor): 82(ptr) Variable Input - 84: TypePointer Input 6(float) - 91: 28(int) Constant 2 - 95: TypeArray 6(float) 11 - 96: TypePointer Input 95 -97(pcf_data.flInsideTessFactor): 96(ptr) Variable Input - 108: TypePointer Output 7(fvec4) -109(@entryPointOutput.pos): 108(ptr) Variable Output - 112: TypePointer Output 8(fvec3) -113(@entryPointOutput.norm): 112(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 52(i): 51(ptr) Variable Function - 73(tesscoord): 14(ptr) Variable Function - 79(pcf_data): 18(ptr) Variable Function -101(flattenTemp): 26(ptr) Variable Function - 103(param): 14(ptr) Variable Function - 105(param): 18(ptr) Variable Function - 57: 56(ptr) AccessChain 55(i.pos) 29 - 58: 7(fvec4) Load 57 - 59: 37(ptr) AccessChain 52(i) 29 29 - Store 59 58 - 64: 63(ptr) AccessChain 62(i.norm) 29 - 65: 8(fvec3) Load 64 - 66: 46(ptr) AccessChain 52(i) 29 39 - Store 66 65 - 67: 56(ptr) AccessChain 55(i.pos) 39 - 68: 7(fvec4) Load 67 - 69: 37(ptr) AccessChain 52(i) 39 29 - Store 69 68 - 70: 63(ptr) AccessChain 62(i.norm) 39 - 71: 8(fvec3) Load 70 - 72: 46(ptr) AccessChain 52(i) 39 39 - Store 72 71 - 75: 8(fvec3) Load 74(tesscoord) - 76: 6(float) CompositeExtract 75 0 - 77: 6(float) CompositeExtract 75 1 - 78: 13(fvec2) CompositeConstruct 76 77 - Store 73(tesscoord) 78 - 85: 84(ptr) AccessChain 83(pcf_data.flTessFactor) 29 - 86: 6(float) Load 85 - 87: 32(ptr) AccessChain 79(pcf_data) 29 29 - Store 87 86 - 88: 84(ptr) AccessChain 83(pcf_data.flTessFactor) 39 - 89: 6(float) Load 88 - 90: 32(ptr) AccessChain 79(pcf_data) 29 39 - Store 90 89 - 92: 84(ptr) AccessChain 83(pcf_data.flTessFactor) 91 - 93: 6(float) Load 92 - 94: 32(ptr) AccessChain 79(pcf_data) 29 91 - Store 94 93 - 98: 84(ptr) AccessChain 97(pcf_data.flInsideTessFactor) 29 - 99: 6(float) Load 98 - 100: 32(ptr) AccessChain 79(pcf_data) 39 - Store 100 99 - 102: 12 Load 52(i) - 104: 13(fvec2) Load 73(tesscoord) - Store 103(param) 104 - 106:17(pcf_in_t) Load 79(pcf_data) - Store 105(param) 106 - 107: 19(gs_in_t) FunctionCall 24(@main(struct-ds_in_t-vf4-vf31[2];vf2;struct-pcf_in_t-f1[3]-f11;) 102 103(param) 105(param) - Store 101(flattenTemp) 107 - 110: 37(ptr) AccessChain 101(flattenTemp) 29 - 111: 7(fvec4) Load 110 - Store 109(@entryPointOutput.pos) 111 - 114: 46(ptr) AccessChain 101(flattenTemp) 39 - 115: 8(fvec3) Load 114 - Store 113(@entryPointOutput.norm) 115 - Return - FunctionEnd -24(@main(struct-ds_in_t-vf4-vf31[2];vf2;struct-pcf_in_t-f1[3]-f11;): 19(gs_in_t) Function None 20 - 21(i): 12 FunctionParameter - 22(tesscoord): 14(ptr) FunctionParameter - 23(pcf_data): 18(ptr) FunctionParameter - 25: Label - 27(o): 26(ptr) Variable Function - 30: 7(fvec4) CompositeExtract 21(i) 0 0 - 33: 32(ptr) AccessChain 22(tesscoord) 31 - 34: 6(float) Load 33 - 35: 7(fvec4) CompositeConstruct 34 34 34 34 - 36: 7(fvec4) FAdd 30 35 - 38: 37(ptr) AccessChain 27(o) 29 - Store 38 36 - 40: 8(fvec3) CompositeExtract 21(i) 0 1 - 42: 32(ptr) AccessChain 22(tesscoord) 41 - 43: 6(float) Load 42 - 44: 8(fvec3) CompositeConstruct 43 43 43 - 45: 8(fvec3) FAdd 40 44 - 47: 46(ptr) AccessChain 27(o) 39 - Store 47 45 - 48: 19(gs_in_t) Load 27(o) - ReturnValue 48 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.earlydepthstencil.frag.out b/deps/glslang/Test/baseResults/hlsl.earlydepthstencil.frag.out deleted file mode 100644 index 34ca0062..00000000 --- a/deps/glslang/Test/baseResults/hlsl.earlydepthstencil.frag.out +++ /dev/null @@ -1,189 +0,0 @@ -hlsl.earlydepthstencil.frag -Shader version: 500 -gl_FragCoord origin is upper left -using early_fragment_tests -0:? Sequence -0:8 Function Definition: @main(struct-InputStruct-vf41; ( temp uint) -0:8 Function Parameters: -0:8 'input' ( in structure{ temp 4-component vector of float Position}) -0:? Sequence -0:10 move second child to first child ( temp uint) -0:10 'oldVal' ( temp uint) -0:10 imageAtomicExchange ( temp uint) -0:10 'Values' (layout( r32ui) uniform uimage2D) -0:10 Construct uvec2 ( temp 2-component vector of uint) -0:10 Convert float to uint ( temp uint) -0:10 direct index ( temp float) -0:10 Position: direct index for structure ( temp 4-component vector of float) -0:10 'input' ( in structure{ temp 4-component vector of float Position}) -0:10 Constant: -0:10 0 (const int) -0:10 Constant: -0:10 0 (const int) -0:10 Convert float to uint ( temp uint) -0:10 direct index ( temp float) -0:10 Position: direct index for structure ( temp 4-component vector of float) -0:10 'input' ( in structure{ temp 4-component vector of float Position}) -0:10 Constant: -0:10 0 (const int) -0:10 Constant: -0:10 1 (const int) -0:10 Constant: -0:10 1 (const uint) -0:11 Branch: Return with expression -0:11 'oldVal' ( temp uint) -0:8 Function Definition: main( ( temp void) -0:8 Function Parameters: -0:? Sequence -0:8 Sequence -0:8 move second child to first child ( temp 4-component vector of float) -0:8 Position: direct index for structure ( temp 4-component vector of float) -0:? 'input' ( temp structure{ temp 4-component vector of float Position}) -0:8 Constant: -0:8 0 (const int) -0:? 'input.Position' ( in 4-component vector of float FragCoord) -0:8 move second child to first child ( temp uint) -0:? '@entryPointOutput' (layout( location=0) out uint) -0:8 Function Call: @main(struct-InputStruct-vf41; ( temp uint) -0:? 'input' ( temp structure{ temp 4-component vector of float Position}) -0:? Linker Objects -0:? 'Values' (layout( r32ui) uniform uimage2D) -0:? '@entryPointOutput' (layout( location=0) out uint) -0:? 'input.Position' ( in 4-component vector of float FragCoord) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -using early_fragment_tests -0:? Sequence -0:8 Function Definition: @main(struct-InputStruct-vf41; ( temp uint) -0:8 Function Parameters: -0:8 'input' ( in structure{ temp 4-component vector of float Position}) -0:? Sequence -0:10 move second child to first child ( temp uint) -0:10 'oldVal' ( temp uint) -0:10 imageAtomicExchange ( temp uint) -0:10 'Values' (layout( r32ui) uniform uimage2D) -0:10 Construct uvec2 ( temp 2-component vector of uint) -0:10 Convert float to uint ( temp uint) -0:10 direct index ( temp float) -0:10 Position: direct index for structure ( temp 4-component vector of float) -0:10 'input' ( in structure{ temp 4-component vector of float Position}) -0:10 Constant: -0:10 0 (const int) -0:10 Constant: -0:10 0 (const int) -0:10 Convert float to uint ( temp uint) -0:10 direct index ( temp float) -0:10 Position: direct index for structure ( temp 4-component vector of float) -0:10 'input' ( in structure{ temp 4-component vector of float Position}) -0:10 Constant: -0:10 0 (const int) -0:10 Constant: -0:10 1 (const int) -0:10 Constant: -0:10 1 (const uint) -0:11 Branch: Return with expression -0:11 'oldVal' ( temp uint) -0:8 Function Definition: main( ( temp void) -0:8 Function Parameters: -0:? Sequence -0:8 Sequence -0:8 move second child to first child ( temp 4-component vector of float) -0:8 Position: direct index for structure ( temp 4-component vector of float) -0:? 'input' ( temp structure{ temp 4-component vector of float Position}) -0:8 Constant: -0:8 0 (const int) -0:? 'input.Position' ( in 4-component vector of float FragCoord) -0:8 move second child to first child ( temp uint) -0:? '@entryPointOutput' (layout( location=0) out uint) -0:8 Function Call: @main(struct-InputStruct-vf41; ( temp uint) -0:? 'input' ( temp structure{ temp 4-component vector of float Position}) -0:? Linker Objects -0:? 'Values' (layout( r32ui) uniform uimage2D) -0:? '@entryPointOutput' (layout( location=0) out uint) -0:? 'input.Position' ( in 4-component vector of float FragCoord) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 50 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 41 46 - ExecutionMode 4 OriginUpperLeft - ExecutionMode 4 EarlyFragmentTests - Source HLSL 500 - Name 4 "main" - Name 8 "InputStruct" - MemberName 8(InputStruct) 0 "Position" - Name 13 "@main(struct-InputStruct-vf41;" - Name 12 "input" - Name 16 "oldVal" - Name 19 "Values" - Name 39 "input" - Name 41 "input.Position" - Name 46 "@entryPointOutput" - Name 47 "param" - Decorate 19(Values) DescriptorSet 0 - Decorate 19(Values) Binding 0 - Decorate 41(input.Position) BuiltIn FragCoord - Decorate 46(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8(InputStruct): TypeStruct 7(fvec4) - 9: TypePointer Function 8(InputStruct) - 10: TypeInt 32 0 - 11: TypeFunction 10(int) 9(ptr) - 15: TypePointer Function 10(int) - 17: TypeImage 10(int) 2D nonsampled format:R32ui - 18: TypePointer UniformConstant 17 - 19(Values): 18(ptr) Variable UniformConstant - 20: TypeInt 32 1 - 21: 20(int) Constant 0 - 22: 10(int) Constant 0 - 23: TypePointer Function 6(float) - 27: 10(int) Constant 1 - 31: TypeVector 10(int) 2 - 33: TypePointer Image 10(int) - 40: TypePointer Input 7(fvec4) -41(input.Position): 40(ptr) Variable Input - 43: TypePointer Function 7(fvec4) - 45: TypePointer Output 10(int) -46(@entryPointOutput): 45(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 39(input): 9(ptr) Variable Function - 47(param): 9(ptr) Variable Function - 42: 7(fvec4) Load 41(input.Position) - 44: 43(ptr) AccessChain 39(input) 21 - Store 44 42 - 48:8(InputStruct) Load 39(input) - Store 47(param) 48 - 49: 10(int) FunctionCall 13(@main(struct-InputStruct-vf41;) 47(param) - Store 46(@entryPointOutput) 49 - Return - FunctionEnd -13(@main(struct-InputStruct-vf41;): 10(int) Function None 11 - 12(input): 9(ptr) FunctionParameter - 14: Label - 16(oldVal): 15(ptr) Variable Function - 24: 23(ptr) AccessChain 12(input) 21 22 - 25: 6(float) Load 24 - 26: 10(int) ConvertFToU 25 - 28: 23(ptr) AccessChain 12(input) 21 27 - 29: 6(float) Load 28 - 30: 10(int) ConvertFToU 29 - 32: 31(ivec2) CompositeConstruct 26 30 - 34: 33(ptr) ImageTexelPointer 19(Values) 32 22 - 35: 10(int) AtomicExchange 34 27 22 27 - Store 16(oldVal) 35 - 36: 10(int) Load 16(oldVal) - ReturnValue 36 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.emptystruct.init.vert.out b/deps/glslang/Test/baseResults/hlsl.emptystruct.init.vert.out deleted file mode 100644 index 9f5c7857..00000000 --- a/deps/glslang/Test/baseResults/hlsl.emptystruct.init.vert.out +++ /dev/null @@ -1,112 +0,0 @@ -hlsl.emptystruct.init.vert -WARNING: 0:3: 'Test_Empty' : variable with qualifier 'const' not initialized; zero initializing - -Shader version: 500 -0:? Sequence -0:6 Function Definition: @main(u1; ( temp 4-component vector of float) -0:6 Function Parameters: -0:6 'vertexIndex' ( in uint) -0:? Sequence -0:7 Branch: Return with expression -0:7 Constant: -0:7 0.000000 -0:7 0.000000 -0:7 0.000000 -0:7 0.000000 -0:6 Function Definition: main( ( temp void) -0:6 Function Parameters: -0:? Sequence -0:6 move second child to first child ( temp uint) -0:? 'vertexIndex' ( temp uint) -0:? 'vertexIndex' (layout( location=0) in uint) -0:6 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:6 Function Call: @main(u1; ( temp 4-component vector of float) -0:? 'vertexIndex' ( temp uint) -0:? Linker Objects -0:? 'Test_Empty' ( const structure{}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'vertexIndex' (layout( location=0) in uint) - - -Linked vertex stage: - - -Shader version: 500 -0:? Sequence -0:6 Function Definition: @main(u1; ( temp 4-component vector of float) -0:6 Function Parameters: -0:6 'vertexIndex' ( in uint) -0:? Sequence -0:7 Branch: Return with expression -0:7 Constant: -0:7 0.000000 -0:7 0.000000 -0:7 0.000000 -0:7 0.000000 -0:6 Function Definition: main( ( temp void) -0:6 Function Parameters: -0:? Sequence -0:6 move second child to first child ( temp uint) -0:? 'vertexIndex' ( temp uint) -0:? 'vertexIndex' (layout( location=0) in uint) -0:6 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:6 Function Call: @main(u1; ( temp 4-component vector of float) -0:? 'vertexIndex' ( temp uint) -0:? Linker Objects -0:? 'Test_Empty' ( const structure{}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'vertexIndex' (layout( location=0) in uint) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 29 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 20 23 - Source HLSL 500 - Name 4 "main" - Name 12 "@main(u1;" - Name 11 "vertexIndex" - Name 18 "vertexIndex" - Name 20 "vertexIndex" - Name 23 "@entryPointOutput" - Name 24 "param" - Name 27 "Test" - Decorate 20(vertexIndex) Location 0 - Decorate 23(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 8: TypeFloat 32 - 9: TypeVector 8(float) 4 - 10: TypeFunction 9(fvec4) 7(ptr) - 14: 8(float) Constant 0 - 15: 9(fvec4) ConstantComposite 14 14 14 14 - 19: TypePointer Input 6(int) - 20(vertexIndex): 19(ptr) Variable Input - 22: TypePointer Output 9(fvec4) -23(@entryPointOutput): 22(ptr) Variable Output - 27(Test): TypeStruct - 28: 27(Test) ConstantComposite - 4(main): 2 Function None 3 - 5: Label - 18(vertexIndex): 7(ptr) Variable Function - 24(param): 7(ptr) Variable Function - 21: 6(int) Load 20(vertexIndex) - Store 18(vertexIndex) 21 - 25: 6(int) Load 18(vertexIndex) - Store 24(param) 25 - 26: 9(fvec4) FunctionCall 12(@main(u1;) 24(param) - Store 23(@entryPointOutput) 26 - Return - FunctionEnd - 12(@main(u1;): 9(fvec4) Function None 10 - 11(vertexIndex): 7(ptr) FunctionParameter - 13: Label - ReturnValue 15 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.emptystructreturn.frag.out b/deps/glslang/Test/baseResults/hlsl.emptystructreturn.frag.out deleted file mode 100644 index 2a4cabeb..00000000 --- a/deps/glslang/Test/baseResults/hlsl.emptystructreturn.frag.out +++ /dev/null @@ -1,102 +0,0 @@ -hlsl.emptystructreturn.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:10 Function Definition: @main(struct-ps_in1; ( temp structure{}) -0:10 Function Parameters: -0:10 'i' ( in structure{}) -0:? Sequence -0:12 Branch: Return with expression -0:12 'o' ( temp structure{}) -0:10 Function Definition: main( ( temp void) -0:10 Function Parameters: -0:? Sequence -0:10 Sequence -0:10 move second child to first child ( temp structure{}) -0:? 'i' ( temp structure{}) -0:? 'i' ( in structure{}) -0:10 Sequence -0:10 move second child to first child ( temp structure{}) -0:? '@entryPointOutput' ( out structure{}) -0:10 Function Call: @main(struct-ps_in1; ( temp structure{}) -0:? 'i' ( temp structure{}) -0:? Linker Objects - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:10 Function Definition: @main(struct-ps_in1; ( temp structure{}) -0:10 Function Parameters: -0:10 'i' ( in structure{}) -0:? Sequence -0:12 Branch: Return with expression -0:12 'o' ( temp structure{}) -0:10 Function Definition: main( ( temp void) -0:10 Function Parameters: -0:? Sequence -0:10 Sequence -0:10 move second child to first child ( temp structure{}) -0:? 'i' ( temp structure{}) -0:? 'i' ( in structure{}) -0:10 Sequence -0:10 move second child to first child ( temp structure{}) -0:? '@entryPointOutput' ( out structure{}) -0:10 Function Call: @main(struct-ps_in1; ( temp structure{}) -0:? 'i' ( temp structure{}) -0:? Linker Objects - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 27 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 6 "ps_in" - Name 8 "ps_out" - Name 11 "@main(struct-ps_in1;" - Name 10 "i" - Name 14 "o" - Name 18 "i" - Name 20 "i" - Name 23 "@entryPointOutput" - Name 24 "param" - 2: TypeVoid - 3: TypeFunction 2 - 6(ps_in): TypeStruct - 7: TypePointer Function 6(ps_in) - 8(ps_out): TypeStruct - 9: TypeFunction 8(ps_out) 7(ptr) - 13: TypePointer Function 8(ps_out) - 19: TypePointer Input 6(ps_in) - 20(i): 19(ptr) Variable Input - 22: TypePointer Output 8(ps_out) -23(@entryPointOutput): 22(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 18(i): 7(ptr) Variable Function - 24(param): 7(ptr) Variable Function - 21: 6(ps_in) Load 20(i) - Store 18(i) 21 - 25: 6(ps_in) Load 18(i) - Store 24(param) 25 - 26: 8(ps_out) FunctionCall 11(@main(struct-ps_in1;) 24(param) - Store 23(@entryPointOutput) 26 - Return - FunctionEnd -11(@main(struct-ps_in1;): 8(ps_out) Function None 9 - 10(i): 7(ptr) FunctionParameter - 12: Label - 14(o): 13(ptr) Variable Function - 15: 8(ps_out) Load 14(o) - ReturnValue 15 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.emptystructreturn.vert.out b/deps/glslang/Test/baseResults/hlsl.emptystructreturn.vert.out deleted file mode 100644 index ad1efa79..00000000 --- a/deps/glslang/Test/baseResults/hlsl.emptystructreturn.vert.out +++ /dev/null @@ -1,99 +0,0 @@ -hlsl.emptystructreturn.vert -Shader version: 500 -0:? Sequence -0:10 Function Definition: @main(struct-vs_in1; ( temp structure{}) -0:10 Function Parameters: -0:10 'i' ( in structure{}) -0:? Sequence -0:12 Branch: Return with expression -0:12 'o' ( temp structure{}) -0:10 Function Definition: main( ( temp void) -0:10 Function Parameters: -0:? Sequence -0:10 Sequence -0:10 move second child to first child ( temp structure{}) -0:? 'i' ( temp structure{}) -0:? 'i' ( in structure{}) -0:10 Sequence -0:10 move second child to first child ( temp structure{}) -0:? '@entryPointOutput' ( out structure{}) -0:10 Function Call: @main(struct-vs_in1; ( temp structure{}) -0:? 'i' ( temp structure{}) -0:? Linker Objects - - -Linked vertex stage: - - -Shader version: 500 -0:? Sequence -0:10 Function Definition: @main(struct-vs_in1; ( temp structure{}) -0:10 Function Parameters: -0:10 'i' ( in structure{}) -0:? Sequence -0:12 Branch: Return with expression -0:12 'o' ( temp structure{}) -0:10 Function Definition: main( ( temp void) -0:10 Function Parameters: -0:? Sequence -0:10 Sequence -0:10 move second child to first child ( temp structure{}) -0:? 'i' ( temp structure{}) -0:? 'i' ( in structure{}) -0:10 Sequence -0:10 move second child to first child ( temp structure{}) -0:? '@entryPointOutput' ( out structure{}) -0:10 Function Call: @main(struct-vs_in1; ( temp structure{}) -0:? 'i' ( temp structure{}) -0:? Linker Objects - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 27 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" - Source HLSL 500 - Name 4 "main" - Name 6 "vs_in" - Name 8 "vs_out" - Name 11 "@main(struct-vs_in1;" - Name 10 "i" - Name 14 "o" - Name 18 "i" - Name 20 "i" - Name 23 "@entryPointOutput" - Name 24 "param" - 2: TypeVoid - 3: TypeFunction 2 - 6(vs_in): TypeStruct - 7: TypePointer Function 6(vs_in) - 8(vs_out): TypeStruct - 9: TypeFunction 8(vs_out) 7(ptr) - 13: TypePointer Function 8(vs_out) - 19: TypePointer Input 6(vs_in) - 20(i): 19(ptr) Variable Input - 22: TypePointer Output 8(vs_out) -23(@entryPointOutput): 22(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 18(i): 7(ptr) Variable Function - 24(param): 7(ptr) Variable Function - 21: 6(vs_in) Load 20(i) - Store 18(i) 21 - 25: 6(vs_in) Load 18(i) - Store 24(param) 25 - 26: 8(vs_out) FunctionCall 11(@main(struct-vs_in1;) 24(param) - Store 23(@entryPointOutput) 26 - Return - FunctionEnd -11(@main(struct-vs_in1;): 8(vs_out) Function None 9 - 10(i): 7(ptr) FunctionParameter - 12: Label - 14(o): 13(ptr) Variable Function - 15: 8(vs_out) Load 14(o) - ReturnValue 15 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.entry-in.frag.out b/deps/glslang/Test/baseResults/hlsl.entry-in.frag.out deleted file mode 100644 index 4c322496..00000000 --- a/deps/glslang/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): 8000a -// 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/Test/baseResults/hlsl.entry-out.frag.out b/deps/glslang/Test/baseResults/hlsl.entry-out.frag.out deleted file mode 100644 index a8b47e9e..00000000 --- a/deps/glslang/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): 8000a -// 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/Test/baseResults/hlsl.entry.rename.frag.out b/deps/glslang/Test/baseResults/hlsl.entry.rename.frag.out deleted file mode 100644 index 2fd15d1d..00000000 --- a/deps/glslang/Test/baseResults/hlsl.entry.rename.frag.out +++ /dev/null @@ -1,134 +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): 8000a -// 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 - Decorate 31 Binding 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/Test/baseResults/hlsl.explicitDescriptorSet-2.frag.out b/deps/glslang/Test/baseResults/hlsl.explicitDescriptorSet-2.frag.out deleted file mode 100644 index 3ca773fe..00000000 --- a/deps/glslang/Test/baseResults/hlsl.explicitDescriptorSet-2.frag.out +++ /dev/null @@ -1,68 +0,0 @@ -hlsl.explicitDescriptorSet.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 31 - - Capability Shader - Capability Sampled1D - Capability SampledBuffer - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 19 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 9 "@main(" - Name 13 "g_sSamp2_amb" - Name 19 "@entryPointOutput" - Name 21 "g_sSamp" - Name 24 "g_tTex1df4" - Name 25 "$Global" - MemberName 25($Global) 0 "floatval_amb" - Name 27 "" - Name 30 "floatbuff" - Decorate 13(g_sSamp2_amb) DescriptorSet 3 - Decorate 13(g_sSamp2_amb) Binding 10 - Decorate 19(@entryPointOutput) Location 0 - Decorate 21(g_sSamp) DescriptorSet 3 - Decorate 21(g_sSamp) Binding 11 - Decorate 24(g_tTex1df4) DescriptorSet 3 - Decorate 24(g_tTex1df4) Binding 20 - MemberDecorate 25($Global) 0 Offset 0 - Decorate 25($Global) Block - Decorate 27 DescriptorSet 3 - Decorate 27 Binding 0 - Decorate 30(floatbuff) DescriptorSet 3 - Decorate 30(floatbuff) Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 11: TypeSampler - 12: TypePointer UniformConstant 11 -13(g_sSamp2_amb): 12(ptr) Variable UniformConstant - 14: 6(float) Constant 0 - 15: 7(fvec4) ConstantComposite 14 14 14 14 - 18: TypePointer Output 7(fvec4) -19(@entryPointOutput): 18(ptr) Variable Output - 21(g_sSamp): 12(ptr) Variable UniformConstant - 22: TypeImage 6(float) 1D sampled format:Unknown - 23: TypePointer UniformConstant 22 - 24(g_tTex1df4): 23(ptr) Variable UniformConstant - 25($Global): TypeStruct 6(float) - 26: TypePointer Uniform 25($Global) - 27: 26(ptr) Variable Uniform - 28: TypeImage 6(float) Buffer sampled format:R32f - 29: TypePointer UniformConstant 28 - 30(floatbuff): 29(ptr) Variable UniformConstant - 4(main): 2 Function None 3 - 5: Label - 20: 7(fvec4) FunctionCall 9(@main() - Store 19(@entryPointOutput) 20 - Return - FunctionEnd - 9(@main(): 7(fvec4) Function None 8 - 10: Label - ReturnValue 15 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.explicitDescriptorSet.frag.out b/deps/glslang/Test/baseResults/hlsl.explicitDescriptorSet.frag.out deleted file mode 100644 index 9ba0d93f..00000000 --- a/deps/glslang/Test/baseResults/hlsl.explicitDescriptorSet.frag.out +++ /dev/null @@ -1,68 +0,0 @@ -hlsl.explicitDescriptorSet.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 31 - - Capability Shader - Capability Sampled1D - Capability SampledBuffer - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 19 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 9 "@main(" - Name 13 "g_sSamp2_amb" - Name 19 "@entryPointOutput" - Name 21 "g_sSamp" - Name 24 "g_tTex1df4" - Name 25 "$Global" - MemberName 25($Global) 0 "floatval_amb" - Name 27 "" - Name 30 "floatbuff" - Decorate 13(g_sSamp2_amb) DescriptorSet 4 - Decorate 13(g_sSamp2_amb) Binding 10 - Decorate 19(@entryPointOutput) Location 0 - Decorate 21(g_sSamp) DescriptorSet 4 - Decorate 21(g_sSamp) Binding 11 - Decorate 24(g_tTex1df4) DescriptorSet 4 - Decorate 24(g_tTex1df4) Binding 20 - MemberDecorate 25($Global) 0 Offset 0 - Decorate 25($Global) Block - Decorate 27 DescriptorSet 4 - Decorate 27 Binding 0 - Decorate 30(floatbuff) DescriptorSet 4 - Decorate 30(floatbuff) Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 11: TypeSampler - 12: TypePointer UniformConstant 11 -13(g_sSamp2_amb): 12(ptr) Variable UniformConstant - 14: 6(float) Constant 0 - 15: 7(fvec4) ConstantComposite 14 14 14 14 - 18: TypePointer Output 7(fvec4) -19(@entryPointOutput): 18(ptr) Variable Output - 21(g_sSamp): 12(ptr) Variable UniformConstant - 22: TypeImage 6(float) 1D sampled format:Unknown - 23: TypePointer UniformConstant 22 - 24(g_tTex1df4): 23(ptr) Variable UniformConstant - 25($Global): TypeStruct 6(float) - 26: TypePointer Uniform 25($Global) - 27: 26(ptr) Variable Uniform - 28: TypeImage 6(float) Buffer sampled format:R32f - 29: TypePointer UniformConstant 28 - 30(floatbuff): 29(ptr) Variable UniformConstant - 4(main): 2 Function None 3 - 5: Label - 20: 7(fvec4) FunctionCall 9(@main() - Store 19(@entryPointOutput) 20 - Return - FunctionEnd - 9(@main(): 7(fvec4) Function None 8 - 10: Label - ReturnValue 15 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.flatten.return.frag.out b/deps/glslang/Test/baseResults/hlsl.flatten.return.frag.out deleted file mode 100644 index 9a51f1fc..00000000 --- a/deps/glslang/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:12 Constant: -0:12 1.000000 -0:12 1.000000 -0:12 1.000000 -0:12 1.000000 -0:12 2.000000 -0:12 3.000000 -0:12 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:12 Constant: -0:12 1.000000 -0:12 1.000000 -0:12 1.000000 -0:12 1.000000 -0:12 2.000000 -0:12 3.000000 -0:12 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): 8000a -// 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/Test/baseResults/hlsl.flattenOpaque.frag.out b/deps/glslang/Test/baseResults/hlsl.flattenOpaque.frag.out deleted file mode 100644 index 9a29081b..00000000 --- a/deps/glslang/Test/baseResults/hlsl.flattenOpaque.frag.out +++ /dev/null @@ -1,482 +0,0 @@ -hlsl.flattenOpaque.frag -WARNING: AST will form illegal SPIR-V; need to transform to legalize -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:15 Function Definition: osCall1(struct-os-p11; ( temp 4-component vector of float) -0:15 Function Parameters: -0:15 's' ( in structure{ temp sampler s2D}) -0:? Sequence -0:16 Branch: Return with expression -0:16 texture ( temp 4-component vector of float) -0:16 Construct combined texture-sampler ( temp sampler2D) -0:16 'tex' ( uniform texture2D) -0:16 s2D: direct index for structure ( temp sampler) -0:16 's' ( in structure{ temp sampler s2D}) -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 0.200000 -0:16 0.300000 -0:20 Function Definition: osCall2(struct-os-p11;vf2; ( temp 4-component vector of float) -0:20 Function Parameters: -0:20 's' ( in structure{ temp sampler s2D}) -0:20 'f2' ( in 2-component vector of float) -0:? Sequence -0:21 Branch: Return with expression -0:21 texture ( temp 4-component vector of float) -0:21 Construct combined texture-sampler ( temp sampler2D) -0:21 'tex' ( uniform texture2D) -0:21 s2D: direct index for structure ( temp sampler) -0:21 's' ( in structure{ temp sampler s2D}) -0:21 Constant: -0:21 0 (const int) -0:21 'f2' ( in 2-component vector of float) -0:25 Function Definition: os2Call1(struct-os2-p1-t211; ( temp 4-component vector of float) -0:25 Function Parameters: -0:25 's' ( in structure{ temp sampler s2D, temp texture2D tex}) -0:? Sequence -0:26 Branch: Return with expression -0:26 texture ( temp 4-component vector of float) -0:26 Construct combined texture-sampler ( temp sampler2D) -0:26 tex: direct index for structure ( temp texture2D) -0:26 's' ( in structure{ temp sampler s2D, temp texture2D tex}) -0:26 Constant: -0:26 1 (const int) -0:26 s2D: direct index for structure ( temp sampler) -0:26 's' ( in structure{ temp sampler s2D, temp texture2D tex}) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 0.200000 -0:26 0.300000 -0:30 Function Definition: os2Call2(struct-os2-p1-t211;vf2; ( temp 4-component vector of float) -0:30 Function Parameters: -0:30 's' ( in structure{ temp sampler s2D, temp texture2D tex}) -0:30 'f2' ( in 2-component vector of float) -0:? Sequence -0:31 Branch: Return with expression -0:31 texture ( temp 4-component vector of float) -0:31 Construct combined texture-sampler ( temp sampler2D) -0:31 tex: direct index for structure ( temp texture2D) -0:31 's' ( in structure{ temp sampler s2D, temp texture2D tex}) -0:31 Constant: -0:31 1 (const int) -0:31 s2D: direct index for structure ( temp sampler) -0:31 's' ( in structure{ temp sampler s2D, temp texture2D tex}) -0:31 Constant: -0:31 0 (const int) -0:31 'f2' ( in 2-component vector of float) -0:35 Function Definition: @main( ( temp 4-component vector of float) -0:35 Function Parameters: -0:? Sequence -0:39 Branch: Return with expression -0:38 add ( temp 4-component vector of float) -0:37 add ( temp 4-component vector of float) -0:36 add ( temp 4-component vector of float) -0:36 Function Call: osCall1(struct-os-p11; ( temp 4-component vector of float) -0:36 Comma ( temp structure{ temp sampler s2D}) -0:36 Sequence -0:36 move second child to first child ( temp sampler) -0:36 s2D: direct index for structure ( temp sampler) -0:36 'aggShadow' ( temp structure{ temp sampler s2D}) -0:36 Constant: -0:36 0 (const int) -0:? 's.s2D' ( uniform sampler) -0:36 'aggShadow' ( temp structure{ temp sampler s2D}) -0:37 Function Call: osCall2(struct-os-p11;vf2; ( temp 4-component vector of float) -0:37 Comma ( temp structure{ temp sampler s2D}) -0:37 Sequence -0:37 move second child to first child ( temp sampler) -0:37 s2D: direct index for structure ( temp sampler) -0:37 'aggShadow' ( temp structure{ temp sampler s2D}) -0:37 Constant: -0:37 0 (const int) -0:? 's.s2D' ( uniform sampler) -0:37 'aggShadow' ( temp structure{ temp sampler s2D}) -0:37 Constant: -0:37 0.200000 -0:37 0.300000 -0:38 Function Call: os2Call1(struct-os2-p1-t211; ( temp 4-component vector of float) -0:38 Comma ( temp structure{ temp sampler s2D, temp texture2D tex}) -0:38 Sequence -0:38 move second child to first child ( temp sampler) -0:38 s2D: direct index for structure ( temp sampler) -0:38 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex}) -0:38 Constant: -0:38 0 (const int) -0:? 's2.s2D' ( uniform sampler) -0:38 move second child to first child ( temp texture2D) -0:38 tex: direct index for structure ( temp texture2D) -0:38 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex}) -0:38 Constant: -0:38 1 (const int) -0:? 's2.tex' ( uniform texture2D) -0:38 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex}) -0:39 Function Call: os2Call2(struct-os2-p1-t211;vf2; ( temp 4-component vector of float) -0:39 Comma ( temp structure{ temp sampler s2D, temp texture2D tex}) -0:39 Sequence -0:39 move second child to first child ( temp sampler) -0:39 s2D: direct index for structure ( temp sampler) -0:39 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex}) -0:39 Constant: -0:39 0 (const int) -0:? 's2.s2D' ( uniform sampler) -0:39 move second child to first child ( temp texture2D) -0:39 tex: direct index for structure ( temp texture2D) -0:39 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex}) -0:39 Constant: -0:39 1 (const int) -0:? 's2.tex' ( uniform texture2D) -0:39 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex}) -0:39 Constant: -0:39 0.200000 -0:39 0.300000 -0:35 Function Definition: main( ( temp void) -0:35 Function Parameters: -0:? Sequence -0:35 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:35 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'tex' ( uniform texture2D) -0:? 's.s2D' ( uniform sampler) -0:? 's2.s2D' ( uniform sampler) -0:? 's2.tex' ( uniform texture2D) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:15 Function Definition: osCall1(struct-os-p11; ( temp 4-component vector of float) -0:15 Function Parameters: -0:15 's' ( in structure{ temp sampler s2D}) -0:? Sequence -0:16 Branch: Return with expression -0:16 texture ( temp 4-component vector of float) -0:16 Construct combined texture-sampler ( temp sampler2D) -0:16 'tex' ( uniform texture2D) -0:16 s2D: direct index for structure ( temp sampler) -0:16 's' ( in structure{ temp sampler s2D}) -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 0.200000 -0:16 0.300000 -0:20 Function Definition: osCall2(struct-os-p11;vf2; ( temp 4-component vector of float) -0:20 Function Parameters: -0:20 's' ( in structure{ temp sampler s2D}) -0:20 'f2' ( in 2-component vector of float) -0:? Sequence -0:21 Branch: Return with expression -0:21 texture ( temp 4-component vector of float) -0:21 Construct combined texture-sampler ( temp sampler2D) -0:21 'tex' ( uniform texture2D) -0:21 s2D: direct index for structure ( temp sampler) -0:21 's' ( in structure{ temp sampler s2D}) -0:21 Constant: -0:21 0 (const int) -0:21 'f2' ( in 2-component vector of float) -0:25 Function Definition: os2Call1(struct-os2-p1-t211; ( temp 4-component vector of float) -0:25 Function Parameters: -0:25 's' ( in structure{ temp sampler s2D, temp texture2D tex}) -0:? Sequence -0:26 Branch: Return with expression -0:26 texture ( temp 4-component vector of float) -0:26 Construct combined texture-sampler ( temp sampler2D) -0:26 tex: direct index for structure ( temp texture2D) -0:26 's' ( in structure{ temp sampler s2D, temp texture2D tex}) -0:26 Constant: -0:26 1 (const int) -0:26 s2D: direct index for structure ( temp sampler) -0:26 's' ( in structure{ temp sampler s2D, temp texture2D tex}) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 0.200000 -0:26 0.300000 -0:30 Function Definition: os2Call2(struct-os2-p1-t211;vf2; ( temp 4-component vector of float) -0:30 Function Parameters: -0:30 's' ( in structure{ temp sampler s2D, temp texture2D tex}) -0:30 'f2' ( in 2-component vector of float) -0:? Sequence -0:31 Branch: Return with expression -0:31 texture ( temp 4-component vector of float) -0:31 Construct combined texture-sampler ( temp sampler2D) -0:31 tex: direct index for structure ( temp texture2D) -0:31 's' ( in structure{ temp sampler s2D, temp texture2D tex}) -0:31 Constant: -0:31 1 (const int) -0:31 s2D: direct index for structure ( temp sampler) -0:31 's' ( in structure{ temp sampler s2D, temp texture2D tex}) -0:31 Constant: -0:31 0 (const int) -0:31 'f2' ( in 2-component vector of float) -0:35 Function Definition: @main( ( temp 4-component vector of float) -0:35 Function Parameters: -0:? Sequence -0:39 Branch: Return with expression -0:38 add ( temp 4-component vector of float) -0:37 add ( temp 4-component vector of float) -0:36 add ( temp 4-component vector of float) -0:36 Function Call: osCall1(struct-os-p11; ( temp 4-component vector of float) -0:36 Comma ( temp structure{ temp sampler s2D}) -0:36 Sequence -0:36 move second child to first child ( temp sampler) -0:36 s2D: direct index for structure ( temp sampler) -0:36 'aggShadow' ( temp structure{ temp sampler s2D}) -0:36 Constant: -0:36 0 (const int) -0:? 's.s2D' ( uniform sampler) -0:36 'aggShadow' ( temp structure{ temp sampler s2D}) -0:37 Function Call: osCall2(struct-os-p11;vf2; ( temp 4-component vector of float) -0:37 Comma ( temp structure{ temp sampler s2D}) -0:37 Sequence -0:37 move second child to first child ( temp sampler) -0:37 s2D: direct index for structure ( temp sampler) -0:37 'aggShadow' ( temp structure{ temp sampler s2D}) -0:37 Constant: -0:37 0 (const int) -0:? 's.s2D' ( uniform sampler) -0:37 'aggShadow' ( temp structure{ temp sampler s2D}) -0:37 Constant: -0:37 0.200000 -0:37 0.300000 -0:38 Function Call: os2Call1(struct-os2-p1-t211; ( temp 4-component vector of float) -0:38 Comma ( temp structure{ temp sampler s2D, temp texture2D tex}) -0:38 Sequence -0:38 move second child to first child ( temp sampler) -0:38 s2D: direct index for structure ( temp sampler) -0:38 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex}) -0:38 Constant: -0:38 0 (const int) -0:? 's2.s2D' ( uniform sampler) -0:38 move second child to first child ( temp texture2D) -0:38 tex: direct index for structure ( temp texture2D) -0:38 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex}) -0:38 Constant: -0:38 1 (const int) -0:? 's2.tex' ( uniform texture2D) -0:38 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex}) -0:39 Function Call: os2Call2(struct-os2-p1-t211;vf2; ( temp 4-component vector of float) -0:39 Comma ( temp structure{ temp sampler s2D, temp texture2D tex}) -0:39 Sequence -0:39 move second child to first child ( temp sampler) -0:39 s2D: direct index for structure ( temp sampler) -0:39 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex}) -0:39 Constant: -0:39 0 (const int) -0:? 's2.s2D' ( uniform sampler) -0:39 move second child to first child ( temp texture2D) -0:39 tex: direct index for structure ( temp texture2D) -0:39 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex}) -0:39 Constant: -0:39 1 (const int) -0:? 's2.tex' ( uniform texture2D) -0:39 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex}) -0:39 Constant: -0:39 0.200000 -0:39 0.300000 -0:35 Function Definition: main( ( temp void) -0:35 Function Parameters: -0:? Sequence -0:35 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:35 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'tex' ( uniform texture2D) -0:? 's.s2D' ( uniform sampler) -0:? 's2.s2D' ( uniform sampler) -0:? 's2.tex' ( uniform texture2D) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 122 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 120 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 7 "os" - MemberName 7(os) 0 "s2D" - Name 13 "osCall1(struct-os-p11;" - Name 12 "s" - Name 20 "osCall2(struct-os-p11;vf2;" - Name 18 "s" - Name 19 "f2" - Name 23 "os2" - MemberName 23(os2) 0 "s2D" - MemberName 23(os2) 1 "tex" - Name 27 "os2Call1(struct-os2-p1-t211;" - Name 26 "s" - Name 32 "os2Call2(struct-os2-p1-t211;vf2;" - Name 30 "s" - Name 31 "f2" - Name 35 "@main(" - Name 38 "tex" - Name 80 "aggShadow" - Name 82 "s.s2D" - Name 85 "param" - Name 88 "aggShadow" - Name 91 "param" - Name 93 "param" - Name 96 "aggShadow" - Name 97 "s2.s2D" - Name 100 "s2.tex" - Name 103 "param" - Name 107 "aggShadow" - Name 112 "param" - Name 114 "param" - Name 120 "@entryPointOutput" - Decorate 38(tex) DescriptorSet 0 - Decorate 38(tex) Binding 0 - Decorate 82(s.s2D) DescriptorSet 0 - Decorate 82(s.s2D) Binding 1 - Decorate 97(s2.s2D) DescriptorSet 0 - Decorate 97(s2.s2D) Binding 2 - Decorate 100(s2.tex) DescriptorSet 0 - Decorate 100(s2.tex) Binding 3 - Decorate 120(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeSampler - 7(os): TypeStruct 6 - 8: TypePointer Function 7(os) - 9: TypeFloat 32 - 10: TypeVector 9(float) 4 - 11: TypeFunction 10(fvec4) 8(ptr) - 15: TypeVector 9(float) 2 - 16: TypePointer Function 15(fvec2) - 17: TypeFunction 10(fvec4) 8(ptr) 16(ptr) - 22: TypeImage 9(float) 2D sampled format:Unknown - 23(os2): TypeStruct 6 22 - 24: TypePointer Function 23(os2) - 25: TypeFunction 10(fvec4) 24(ptr) - 29: TypeFunction 10(fvec4) 24(ptr) 16(ptr) - 34: TypeFunction 10(fvec4) - 37: TypePointer UniformConstant 22 - 38(tex): 37(ptr) Variable UniformConstant - 40: TypeInt 32 1 - 41: 40(int) Constant 0 - 42: TypePointer Function 6 - 45: TypeSampledImage 22 - 47: 9(float) Constant 1045220557 - 48: 9(float) Constant 1050253722 - 49: 15(fvec2) ConstantComposite 47 48 - 61: 40(int) Constant 1 - 62: TypePointer Function 22 - 81: TypePointer UniformConstant 6 - 82(s.s2D): 81(ptr) Variable UniformConstant - 97(s2.s2D): 81(ptr) Variable UniformConstant - 100(s2.tex): 37(ptr) Variable UniformConstant - 119: TypePointer Output 10(fvec4) -120(@entryPointOutput): 119(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 121: 10(fvec4) FunctionCall 35(@main() - Store 120(@entryPointOutput) 121 - Return - FunctionEnd -13(osCall1(struct-os-p11;): 10(fvec4) Function None 11 - 12(s): 8(ptr) FunctionParameter - 14: Label - 39: 22 Load 38(tex) - 43: 42(ptr) AccessChain 12(s) 41 - 44: 6 Load 43 - 46: 45 SampledImage 39 44 - 50: 10(fvec4) ImageSampleImplicitLod 46 49 - ReturnValue 50 - FunctionEnd -20(osCall2(struct-os-p11;vf2;): 10(fvec4) Function None 17 - 18(s): 8(ptr) FunctionParameter - 19(f2): 16(ptr) FunctionParameter - 21: Label - 53: 22 Load 38(tex) - 54: 42(ptr) AccessChain 18(s) 41 - 55: 6 Load 54 - 56: 45 SampledImage 53 55 - 57: 15(fvec2) Load 19(f2) - 58: 10(fvec4) ImageSampleImplicitLod 56 57 - ReturnValue 58 - FunctionEnd -27(os2Call1(struct-os2-p1-t211;): 10(fvec4) Function None 25 - 26(s): 24(ptr) FunctionParameter - 28: Label - 63: 62(ptr) AccessChain 26(s) 61 - 64: 22 Load 63 - 65: 42(ptr) AccessChain 26(s) 41 - 66: 6 Load 65 - 67: 45 SampledImage 64 66 - 68: 10(fvec4) ImageSampleImplicitLod 67 49 - ReturnValue 68 - FunctionEnd -32(os2Call2(struct-os2-p1-t211;vf2;): 10(fvec4) Function None 29 - 30(s): 24(ptr) FunctionParameter - 31(f2): 16(ptr) FunctionParameter - 33: Label - 71: 62(ptr) AccessChain 30(s) 61 - 72: 22 Load 71 - 73: 42(ptr) AccessChain 30(s) 41 - 74: 6 Load 73 - 75: 45 SampledImage 72 74 - 76: 15(fvec2) Load 31(f2) - 77: 10(fvec4) ImageSampleImplicitLod 75 76 - ReturnValue 77 - FunctionEnd - 35(@main(): 10(fvec4) Function None 34 - 36: Label - 80(aggShadow): 8(ptr) Variable Function - 85(param): 8(ptr) Variable Function - 88(aggShadow): 8(ptr) Variable Function - 91(param): 8(ptr) Variable Function - 93(param): 16(ptr) Variable Function - 96(aggShadow): 24(ptr) Variable Function - 103(param): 24(ptr) Variable Function - 107(aggShadow): 24(ptr) Variable Function - 112(param): 24(ptr) Variable Function - 114(param): 16(ptr) Variable Function - 83: 6 Load 82(s.s2D) - 84: 42(ptr) AccessChain 80(aggShadow) 41 - Store 84 83 - 86: 7(os) Load 80(aggShadow) - Store 85(param) 86 - 87: 10(fvec4) FunctionCall 13(osCall1(struct-os-p11;) 85(param) - 89: 6 Load 82(s.s2D) - 90: 42(ptr) AccessChain 88(aggShadow) 41 - Store 90 89 - 92: 7(os) Load 88(aggShadow) - Store 91(param) 92 - Store 93(param) 49 - 94: 10(fvec4) FunctionCall 20(osCall2(struct-os-p11;vf2;) 91(param) 93(param) - 95: 10(fvec4) FAdd 87 94 - 98: 6 Load 97(s2.s2D) - 99: 42(ptr) AccessChain 96(aggShadow) 41 - Store 99 98 - 101: 22 Load 100(s2.tex) - 102: 62(ptr) AccessChain 96(aggShadow) 61 - Store 102 101 - 104: 23(os2) Load 96(aggShadow) - Store 103(param) 104 - 105: 10(fvec4) FunctionCall 27(os2Call1(struct-os2-p1-t211;) 103(param) - 106: 10(fvec4) FAdd 95 105 - 108: 6 Load 97(s2.s2D) - 109: 42(ptr) AccessChain 107(aggShadow) 41 - Store 109 108 - 110: 22 Load 100(s2.tex) - 111: 62(ptr) AccessChain 107(aggShadow) 61 - Store 111 110 - 113: 23(os2) Load 107(aggShadow) - Store 112(param) 113 - Store 114(param) 49 - 115: 10(fvec4) FunctionCall 32(os2Call2(struct-os2-p1-t211;vf2;) 112(param) 114(param) - 116: 10(fvec4) FAdd 106 115 - ReturnValue 116 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.flattenOpaqueInit.vert.out b/deps/glslang/Test/baseResults/hlsl.flattenOpaqueInit.vert.out deleted file mode 100644 index 10e83450..00000000 --- a/deps/glslang/Test/baseResults/hlsl.flattenOpaqueInit.vert.out +++ /dev/null @@ -1,293 +0,0 @@ -hlsl.flattenOpaqueInit.vert -WARNING: AST will form illegal SPIR-V; need to transform to legalize -Shader version: 500 -0:? Sequence -0:5 Function Definition: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) -0:5 Function Parameters: -0:5 'tex' ( in structure{ temp sampler smpl, temp texture2D tex}) -0:? Sequence -0:6 Branch: Return with expression -0:6 texture ( temp 4-component vector of float) -0:6 Construct combined texture-sampler ( temp sampler2D) -0:6 tex: direct index for structure ( temp texture2D) -0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex}) -0:6 Constant: -0:6 1 (const int) -0:6 smpl: direct index for structure ( temp sampler) -0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex}) -0:6 Constant: -0:6 0 (const int) -0:6 Constant: -0:6 0.300000 -0:6 0.400000 -0:10 Function Definition: fillOpaque( ( temp structure{ temp sampler smpl, temp texture2D tex}) -0:10 Function Parameters: -0:? Sequence -0:12 move second child to first child ( temp sampler) -0:12 smpl: direct index for structure ( temp sampler) -0:12 't' ( temp structure{ temp sampler smpl, temp texture2D tex}) -0:12 Constant: -0:12 0 (const int) -0:12 'g_tInputTexture_sampler' ( uniform sampler) -0:13 move second child to first child ( temp texture2D) -0:13 tex: direct index for structure ( temp texture2D) -0:13 't' ( temp structure{ temp sampler smpl, temp texture2D tex}) -0:13 Constant: -0:13 1 (const int) -0:13 'g_tInputTexture' ( uniform texture2D) -0:14 Branch: Return with expression -0:14 't' ( temp structure{ temp sampler smpl, temp texture2D tex}) -0:18 Function Definition: @main( ( temp 4-component vector of float) -0:18 Function Parameters: -0:? Sequence -0:19 Sequence -0:19 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex}) -0:19 'tex1' ( temp structure{ temp sampler smpl, temp texture2D tex}) -0:19 Construct structure ( temp structure{ temp sampler smpl, temp texture2D tex}) -0:19 'g_tInputTexture_sampler' ( uniform sampler) -0:19 'g_tInputTexture' ( uniform texture2D) -0:20 Sequence -0:20 move second child to first child ( temp 4-component vector of float) -0:20 'res' ( temp 4-component vector of float) -0:20 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) -0:20 'tex1' ( temp structure{ temp sampler smpl, temp texture2D tex}) -0:21 Sequence -0:21 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex}) -0:21 'tex2' ( temp structure{ temp sampler smpl, temp texture2D tex}) -0:21 Function Call: fillOpaque( ( temp structure{ temp sampler smpl, temp texture2D tex}) -0:22 add second child into first child ( temp 4-component vector of float) -0:22 'res' ( temp 4-component vector of float) -0:22 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) -0:22 'tex2' ( temp structure{ temp sampler smpl, temp texture2D tex}) -0:23 Sequence -0:23 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex}) -0:23 'tex3' ( temp structure{ temp sampler smpl, temp texture2D tex}) -0:23 'tex1' ( temp structure{ temp sampler smpl, temp texture2D tex}) -0:24 add second child into first child ( temp 4-component vector of float) -0:24 'res' ( temp 4-component vector of float) -0:24 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) -0:24 'tex3' ( temp structure{ temp sampler smpl, temp texture2D tex}) -0:26 Branch: Return with expression -0:26 'res' ( temp 4-component vector of float) -0:18 Function Definition: main( ( temp void) -0:18 Function Parameters: -0:? Sequence -0:18 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:18 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'g_tInputTexture_sampler' ( uniform sampler) -0:? 'g_tInputTexture' ( uniform texture2D) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked vertex stage: - - -Shader version: 500 -0:? Sequence -0:5 Function Definition: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) -0:5 Function Parameters: -0:5 'tex' ( in structure{ temp sampler smpl, temp texture2D tex}) -0:? Sequence -0:6 Branch: Return with expression -0:6 texture ( temp 4-component vector of float) -0:6 Construct combined texture-sampler ( temp sampler2D) -0:6 tex: direct index for structure ( temp texture2D) -0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex}) -0:6 Constant: -0:6 1 (const int) -0:6 smpl: direct index for structure ( temp sampler) -0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex}) -0:6 Constant: -0:6 0 (const int) -0:6 Constant: -0:6 0.300000 -0:6 0.400000 -0:10 Function Definition: fillOpaque( ( temp structure{ temp sampler smpl, temp texture2D tex}) -0:10 Function Parameters: -0:? Sequence -0:12 move second child to first child ( temp sampler) -0:12 smpl: direct index for structure ( temp sampler) -0:12 't' ( temp structure{ temp sampler smpl, temp texture2D tex}) -0:12 Constant: -0:12 0 (const int) -0:12 'g_tInputTexture_sampler' ( uniform sampler) -0:13 move second child to first child ( temp texture2D) -0:13 tex: direct index for structure ( temp texture2D) -0:13 't' ( temp structure{ temp sampler smpl, temp texture2D tex}) -0:13 Constant: -0:13 1 (const int) -0:13 'g_tInputTexture' ( uniform texture2D) -0:14 Branch: Return with expression -0:14 't' ( temp structure{ temp sampler smpl, temp texture2D tex}) -0:18 Function Definition: @main( ( temp 4-component vector of float) -0:18 Function Parameters: -0:? Sequence -0:19 Sequence -0:19 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex}) -0:19 'tex1' ( temp structure{ temp sampler smpl, temp texture2D tex}) -0:19 Construct structure ( temp structure{ temp sampler smpl, temp texture2D tex}) -0:19 'g_tInputTexture_sampler' ( uniform sampler) -0:19 'g_tInputTexture' ( uniform texture2D) -0:20 Sequence -0:20 move second child to first child ( temp 4-component vector of float) -0:20 'res' ( temp 4-component vector of float) -0:20 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) -0:20 'tex1' ( temp structure{ temp sampler smpl, temp texture2D tex}) -0:21 Sequence -0:21 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex}) -0:21 'tex2' ( temp structure{ temp sampler smpl, temp texture2D tex}) -0:21 Function Call: fillOpaque( ( temp structure{ temp sampler smpl, temp texture2D tex}) -0:22 add second child into first child ( temp 4-component vector of float) -0:22 'res' ( temp 4-component vector of float) -0:22 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) -0:22 'tex2' ( temp structure{ temp sampler smpl, temp texture2D tex}) -0:23 Sequence -0:23 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex}) -0:23 'tex3' ( temp structure{ temp sampler smpl, temp texture2D tex}) -0:23 'tex1' ( temp structure{ temp sampler smpl, temp texture2D tex}) -0:24 add second child into first child ( temp 4-component vector of float) -0:24 'res' ( temp 4-component vector of float) -0:24 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) -0:24 'tex3' ( temp structure{ temp sampler smpl, temp texture2D tex}) -0:26 Branch: Return with expression -0:26 'res' ( temp 4-component vector of float) -0:18 Function Definition: main( ( temp void) -0:18 Function Parameters: -0:? Sequence -0:18 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:18 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'g_tInputTexture_sampler' ( uniform sampler) -0:? 'g_tInputTexture' ( uniform texture2D) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 82 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 80 - Source HLSL 500 - Name 4 "main" - Name 9 "FxaaTex" - MemberName 9(FxaaTex) 0 "smpl" - MemberName 9(FxaaTex) 1 "tex" - Name 14 "lookUp(struct-FxaaTex-p1-t211;" - Name 13 "tex" - Name 17 "fillOpaque(" - Name 20 "@main(" - Name 41 "t" - Name 43 "g_tInputTexture_sampler" - Name 47 "g_tInputTexture" - Name 53 "tex1" - Name 58 "res" - Name 59 "param" - Name 62 "tex2" - Name 64 "param" - Name 69 "tex3" - Name 71 "param" - Name 80 "@entryPointOutput" - Decorate 43(g_tInputTexture_sampler) DescriptorSet 0 - Decorate 43(g_tInputTexture_sampler) Binding 0 - Decorate 47(g_tInputTexture) DescriptorSet 0 - Decorate 47(g_tInputTexture) Binding 1 - Decorate 80(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeSampler - 7: TypeFloat 32 - 8: TypeImage 7(float) 2D sampled format:Unknown - 9(FxaaTex): TypeStruct 6 8 - 10: TypePointer Function 9(FxaaTex) - 11: TypeVector 7(float) 4 - 12: TypeFunction 11(fvec4) 10(ptr) - 16: TypeFunction 9(FxaaTex) - 19: TypeFunction 11(fvec4) - 22: TypeInt 32 1 - 23: 22(int) Constant 1 - 24: TypePointer Function 8 - 27: 22(int) Constant 0 - 28: TypePointer Function 6 - 31: TypeSampledImage 8 - 33: TypeVector 7(float) 2 - 34: 7(float) Constant 1050253722 - 35: 7(float) Constant 1053609165 - 36: 33(fvec2) ConstantComposite 34 35 - 37: 7(float) Constant 0 - 42: TypePointer UniformConstant 6 -43(g_tInputTexture_sampler): 42(ptr) Variable UniformConstant - 46: TypePointer UniformConstant 8 -47(g_tInputTexture): 46(ptr) Variable UniformConstant - 57: TypePointer Function 11(fvec4) - 79: TypePointer Output 11(fvec4) -80(@entryPointOutput): 79(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 81: 11(fvec4) FunctionCall 20(@main() - Store 80(@entryPointOutput) 81 - Return - FunctionEnd -14(lookUp(struct-FxaaTex-p1-t211;): 11(fvec4) Function None 12 - 13(tex): 10(ptr) FunctionParameter - 15: Label - 25: 24(ptr) AccessChain 13(tex) 23 - 26: 8 Load 25 - 29: 28(ptr) AccessChain 13(tex) 27 - 30: 6 Load 29 - 32: 31 SampledImage 26 30 - 38: 11(fvec4) ImageSampleExplicitLod 32 36 Lod 37 - ReturnValue 38 - FunctionEnd - 17(fillOpaque(): 9(FxaaTex) Function None 16 - 18: Label - 41(t): 10(ptr) Variable Function - 44: 6 Load 43(g_tInputTexture_sampler) - 45: 28(ptr) AccessChain 41(t) 27 - Store 45 44 - 48: 8 Load 47(g_tInputTexture) - 49: 24(ptr) AccessChain 41(t) 23 - Store 49 48 - 50: 9(FxaaTex) Load 41(t) - ReturnValue 50 - FunctionEnd - 20(@main(): 11(fvec4) Function None 19 - 21: Label - 53(tex1): 10(ptr) Variable Function - 58(res): 57(ptr) Variable Function - 59(param): 10(ptr) Variable Function - 62(tex2): 10(ptr) Variable Function - 64(param): 10(ptr) Variable Function - 69(tex3): 10(ptr) Variable Function - 71(param): 10(ptr) Variable Function - 54: 6 Load 43(g_tInputTexture_sampler) - 55: 8 Load 47(g_tInputTexture) - 56: 9(FxaaTex) CompositeConstruct 54 55 - Store 53(tex1) 56 - 60: 9(FxaaTex) Load 53(tex1) - Store 59(param) 60 - 61: 11(fvec4) FunctionCall 14(lookUp(struct-FxaaTex-p1-t211;) 59(param) - Store 58(res) 61 - 63: 9(FxaaTex) FunctionCall 17(fillOpaque() - Store 62(tex2) 63 - 65: 9(FxaaTex) Load 62(tex2) - Store 64(param) 65 - 66: 11(fvec4) FunctionCall 14(lookUp(struct-FxaaTex-p1-t211;) 64(param) - 67: 11(fvec4) Load 58(res) - 68: 11(fvec4) FAdd 67 66 - Store 58(res) 68 - 70: 9(FxaaTex) Load 53(tex1) - Store 69(tex3) 70 - 72: 9(FxaaTex) Load 69(tex3) - Store 71(param) 72 - 73: 11(fvec4) FunctionCall 14(lookUp(struct-FxaaTex-p1-t211;) 71(param) - 74: 11(fvec4) Load 58(res) - 75: 11(fvec4) FAdd 74 73 - Store 58(res) 75 - 76: 11(fvec4) Load 58(res) - ReturnValue 76 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.flattenOpaqueInitMix.vert.out b/deps/glslang/Test/baseResults/hlsl.flattenOpaqueInitMix.vert.out deleted file mode 100644 index c8d0b166..00000000 --- a/deps/glslang/Test/baseResults/hlsl.flattenOpaqueInitMix.vert.out +++ /dev/null @@ -1,197 +0,0 @@ -hlsl.flattenOpaqueInitMix.vert -WARNING: AST will form illegal SPIR-V; need to transform to legalize -Shader version: 500 -0:? Sequence -0:5 Function Definition: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float) -0:5 Function Parameters: -0:5 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f}) -0:? Sequence -0:6 Branch: Return with expression -0:6 texture ( temp 4-component vector of float) -0:6 Construct combined texture-sampler ( temp sampler2D) -0:6 tex: direct index for structure ( temp texture2D) -0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f}) -0:6 Constant: -0:6 1 (const int) -0:6 smpl: direct index for structure ( temp sampler) -0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f}) -0:6 Constant: -0:6 0 (const int) -0:6 Construct vec2 ( temp 2-component vector of float) -0:6 f: direct index for structure ( temp float) -0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f}) -0:6 Constant: -0:6 2 (const int) -0:6 f: direct index for structure ( temp float) -0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f}) -0:6 Constant: -0:6 2 (const int) -0:10 Function Definition: @main( ( temp 4-component vector of float) -0:10 Function Parameters: -0:? Sequence -0:11 Sequence -0:11 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f}) -0:11 'tex' ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f}) -0:11 Construct structure ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f}) -0:11 'g_tInputTexture_sampler' ( uniform sampler) -0:11 'g_tInputTexture' ( uniform texture2D) -0:11 Constant: -0:11 0.500000 -0:12 Branch: Return with expression -0:12 Function Call: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float) -0:12 'tex' ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f}) -0:10 Function Definition: main( ( temp void) -0:10 Function Parameters: -0:? Sequence -0:10 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:10 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'g_tInputTexture_sampler' ( uniform sampler) -0:? 'g_tInputTexture' ( uniform texture2D) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked vertex stage: - - -Shader version: 500 -0:? Sequence -0:5 Function Definition: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float) -0:5 Function Parameters: -0:5 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f}) -0:? Sequence -0:6 Branch: Return with expression -0:6 texture ( temp 4-component vector of float) -0:6 Construct combined texture-sampler ( temp sampler2D) -0:6 tex: direct index for structure ( temp texture2D) -0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f}) -0:6 Constant: -0:6 1 (const int) -0:6 smpl: direct index for structure ( temp sampler) -0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f}) -0:6 Constant: -0:6 0 (const int) -0:6 Construct vec2 ( temp 2-component vector of float) -0:6 f: direct index for structure ( temp float) -0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f}) -0:6 Constant: -0:6 2 (const int) -0:6 f: direct index for structure ( temp float) -0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f}) -0:6 Constant: -0:6 2 (const int) -0:10 Function Definition: @main( ( temp 4-component vector of float) -0:10 Function Parameters: -0:? Sequence -0:11 Sequence -0:11 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f}) -0:11 'tex' ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f}) -0:11 Construct structure ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f}) -0:11 'g_tInputTexture_sampler' ( uniform sampler) -0:11 'g_tInputTexture' ( uniform texture2D) -0:11 Constant: -0:11 0.500000 -0:12 Branch: Return with expression -0:12 Function Call: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float) -0:12 'tex' ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f}) -0:10 Function Definition: main( ( temp void) -0:10 Function Parameters: -0:? Sequence -0:10 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:10 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'g_tInputTexture_sampler' ( uniform sampler) -0:? 'g_tInputTexture' ( uniform texture2D) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 59 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 57 - Source HLSL 500 - Name 4 "main" - Name 9 "FxaaTex" - MemberName 9(FxaaTex) 0 "smpl" - MemberName 9(FxaaTex) 1 "tex" - MemberName 9(FxaaTex) 2 "f" - Name 14 "lookUp(struct-FxaaTex-p1-t21-f11;" - Name 13 "tex" - Name 17 "@main(" - Name 42 "tex" - Name 44 "g_tInputTexture_sampler" - Name 47 "g_tInputTexture" - Name 51 "param" - Name 57 "@entryPointOutput" - Decorate 44(g_tInputTexture_sampler) DescriptorSet 0 - Decorate 44(g_tInputTexture_sampler) Binding 0 - Decorate 47(g_tInputTexture) DescriptorSet 0 - Decorate 47(g_tInputTexture) Binding 1 - Decorate 57(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeSampler - 7: TypeFloat 32 - 8: TypeImage 7(float) 2D sampled format:Unknown - 9(FxaaTex): TypeStruct 6 8 7(float) - 10: TypePointer Function 9(FxaaTex) - 11: TypeVector 7(float) 4 - 12: TypeFunction 11(fvec4) 10(ptr) - 16: TypeFunction 11(fvec4) - 19: TypeInt 32 1 - 20: 19(int) Constant 1 - 21: TypePointer Function 8 - 24: 19(int) Constant 0 - 25: TypePointer Function 6 - 28: TypeSampledImage 8 - 30: 19(int) Constant 2 - 31: TypePointer Function 7(float) - 36: TypeVector 7(float) 2 - 38: 7(float) Constant 0 - 43: TypePointer UniformConstant 6 -44(g_tInputTexture_sampler): 43(ptr) Variable UniformConstant - 46: TypePointer UniformConstant 8 -47(g_tInputTexture): 46(ptr) Variable UniformConstant - 49: 7(float) Constant 1056964608 - 56: TypePointer Output 11(fvec4) -57(@entryPointOutput): 56(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 58: 11(fvec4) FunctionCall 17(@main() - Store 57(@entryPointOutput) 58 - Return - FunctionEnd -14(lookUp(struct-FxaaTex-p1-t21-f11;): 11(fvec4) Function None 12 - 13(tex): 10(ptr) FunctionParameter - 15: Label - 22: 21(ptr) AccessChain 13(tex) 20 - 23: 8 Load 22 - 26: 25(ptr) AccessChain 13(tex) 24 - 27: 6 Load 26 - 29: 28 SampledImage 23 27 - 32: 31(ptr) AccessChain 13(tex) 30 - 33: 7(float) Load 32 - 34: 31(ptr) AccessChain 13(tex) 30 - 35: 7(float) Load 34 - 37: 36(fvec2) CompositeConstruct 33 35 - 39: 11(fvec4) ImageSampleExplicitLod 29 37 Lod 38 - ReturnValue 39 - FunctionEnd - 17(@main(): 11(fvec4) Function None 16 - 18: Label - 42(tex): 10(ptr) Variable Function - 51(param): 10(ptr) Variable Function - 45: 6 Load 44(g_tInputTexture_sampler) - 48: 8 Load 47(g_tInputTexture) - 50: 9(FxaaTex) CompositeConstruct 45 48 49 - Store 42(tex) 50 - 52: 9(FxaaTex) Load 42(tex) - Store 51(param) 52 - 53: 11(fvec4) FunctionCall 14(lookUp(struct-FxaaTex-p1-t21-f11;) 51(param) - ReturnValue 53 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.flattenSubset.frag.out b/deps/glslang/Test/baseResults/hlsl.flattenSubset.frag.out deleted file mode 100644 index 7ec229a4..00000000 --- a/deps/glslang/Test/baseResults/hlsl.flattenSubset.frag.out +++ /dev/null @@ -1,218 +0,0 @@ -hlsl.flattenSubset.frag -WARNING: AST will form illegal SPIR-V; need to transform to legalize -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:30 Function Definition: @main(vf4; ( temp 4-component vector of float) -0:30 Function Parameters: -0:30 'vpos' ( in 4-component vector of float) -0:? Sequence -0:33 move second child to first child ( temp sampler) -0:33 ss: direct index for structure ( temp sampler) -0:33 s0: direct index for structure ( temp structure{ temp int x, temp int y, temp sampler ss}) -0:33 's1' ( temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a}) -0:33 Constant: -0:33 2 (const int) -0:33 Constant: -0:33 2 (const int) -0:33 'samp' ( uniform sampler) -0:34 move second child to first child ( temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a}) -0:34 resources: direct index for structure ( temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a}) -0:34 's2' ( temp structure{ temp int a1, temp int a2, temp int a3, temp int a4, temp int a5, temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a} resources}) -0:34 Constant: -0:34 5 (const int) -0:34 's1' ( temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a}) -0:35 Branch: Return with expression -0:35 texture ( temp 4-component vector of float) -0:35 Construct combined texture-sampler ( temp sampler2D) -0:35 'tex' ( uniform texture2D) -0:35 ss: direct index for structure ( temp sampler) -0:35 s0: direct index for structure ( temp structure{ temp int x, temp int y, temp sampler ss}) -0:35 resources: direct index for structure ( temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a}) -0:35 's2' ( temp structure{ temp int a1, temp int a2, temp int a3, temp int a4, temp int a5, temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a} resources}) -0:35 Constant: -0:35 5 (const int) -0:35 Constant: -0:35 2 (const int) -0:35 Constant: -0:35 2 (const int) -0:35 Constant: -0:35 0.500000 -0:35 0.500000 -0:30 Function Definition: main( ( temp void) -0:30 Function Parameters: -0:? Sequence -0:30 move second child to first child ( temp 4-component vector of float) -0:? 'vpos' ( temp 4-component vector of float) -0:? 'vpos' (layout( location=0) in 4-component vector of float) -0:30 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:30 Function Call: @main(vf4; ( temp 4-component vector of float) -0:? 'vpos' ( temp 4-component vector of float) -0:? Linker Objects -0:? 'samp' ( uniform sampler) -0:? 'tex' ( uniform texture2D) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'vpos' (layout( location=0) in 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:30 Function Definition: @main(vf4; ( temp 4-component vector of float) -0:30 Function Parameters: -0:30 'vpos' ( in 4-component vector of float) -0:? Sequence -0:33 move second child to first child ( temp sampler) -0:33 ss: direct index for structure ( temp sampler) -0:33 s0: direct index for structure ( temp structure{ temp int x, temp int y, temp sampler ss}) -0:33 's1' ( temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a}) -0:33 Constant: -0:33 2 (const int) -0:33 Constant: -0:33 2 (const int) -0:33 'samp' ( uniform sampler) -0:34 move second child to first child ( temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a}) -0:34 resources: direct index for structure ( temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a}) -0:34 's2' ( temp structure{ temp int a1, temp int a2, temp int a3, temp int a4, temp int a5, temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a} resources}) -0:34 Constant: -0:34 5 (const int) -0:34 's1' ( temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a}) -0:35 Branch: Return with expression -0:35 texture ( temp 4-component vector of float) -0:35 Construct combined texture-sampler ( temp sampler2D) -0:35 'tex' ( uniform texture2D) -0:35 ss: direct index for structure ( temp sampler) -0:35 s0: direct index for structure ( temp structure{ temp int x, temp int y, temp sampler ss}) -0:35 resources: direct index for structure ( temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a}) -0:35 's2' ( temp structure{ temp int a1, temp int a2, temp int a3, temp int a4, temp int a5, temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a} resources}) -0:35 Constant: -0:35 5 (const int) -0:35 Constant: -0:35 2 (const int) -0:35 Constant: -0:35 2 (const int) -0:35 Constant: -0:35 0.500000 -0:35 0.500000 -0:30 Function Definition: main( ( temp void) -0:30 Function Parameters: -0:? Sequence -0:30 move second child to first child ( temp 4-component vector of float) -0:? 'vpos' ( temp 4-component vector of float) -0:? 'vpos' (layout( location=0) in 4-component vector of float) -0:30 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:30 Function Call: @main(vf4; ( temp 4-component vector of float) -0:? 'vpos' ( temp 4-component vector of float) -0:? Linker Objects -0:? 'samp' ( uniform sampler) -0:? 'tex' ( uniform texture2D) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'vpos' (layout( location=0) in 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 54 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 47 50 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 11 "@main(vf4;" - Name 10 "vpos" - Name 15 "S0" - MemberName 15(S0) 0 "x" - MemberName 15(S0) 1 "y" - MemberName 15(S0) 2 "ss" - Name 16 "S1" - MemberName 16(S1) 0 "b" - MemberName 16(S1) 1 "samplerState" - MemberName 16(S1) 2 "s0" - MemberName 16(S1) 3 "a" - Name 18 "s1" - Name 21 "samp" - Name 25 "S2" - MemberName 25(S2) 0 "a1" - MemberName 25(S2) 1 "a2" - MemberName 25(S2) 2 "a3" - MemberName 25(S2) 3 "a4" - MemberName 25(S2) 4 "a5" - MemberName 25(S2) 5 "resources" - Name 27 "s2" - Name 33 "tex" - Name 45 "vpos" - Name 47 "vpos" - Name 50 "@entryPointOutput" - Name 51 "param" - Decorate 21(samp) DescriptorSet 0 - Decorate 21(samp) Binding 0 - Decorate 33(tex) DescriptorSet 0 - Decorate 33(tex) Binding 1 - Decorate 47(vpos) Location 0 - Decorate 50(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 9: TypeFunction 7(fvec4) 8(ptr) - 13: TypeSampler - 14: TypeInt 32 1 - 15(S0): TypeStruct 14(int) 14(int) 13 - 16(S1): TypeStruct 6(float) 13 15(S0) 14(int) - 17: TypePointer Function 16(S1) - 19: 14(int) Constant 2 - 20: TypePointer UniformConstant 13 - 21(samp): 20(ptr) Variable UniformConstant - 23: TypePointer Function 13 - 25(S2): TypeStruct 14(int) 14(int) 14(int) 14(int) 14(int) 16(S1) - 26: TypePointer Function 25(S2) - 28: 14(int) Constant 5 - 31: TypeImage 6(float) 2D sampled format:Unknown - 32: TypePointer UniformConstant 31 - 33(tex): 32(ptr) Variable UniformConstant - 37: TypeSampledImage 31 - 39: TypeVector 6(float) 2 - 40: 6(float) Constant 1056964608 - 41: 39(fvec2) ConstantComposite 40 40 - 46: TypePointer Input 7(fvec4) - 47(vpos): 46(ptr) Variable Input - 49: TypePointer Output 7(fvec4) -50(@entryPointOutput): 49(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 45(vpos): 8(ptr) Variable Function - 51(param): 8(ptr) Variable Function - 48: 7(fvec4) Load 47(vpos) - Store 45(vpos) 48 - 52: 7(fvec4) Load 45(vpos) - Store 51(param) 52 - 53: 7(fvec4) FunctionCall 11(@main(vf4;) 51(param) - Store 50(@entryPointOutput) 53 - Return - FunctionEnd - 11(@main(vf4;): 7(fvec4) Function None 9 - 10(vpos): 8(ptr) FunctionParameter - 12: Label - 18(s1): 17(ptr) Variable Function - 27(s2): 26(ptr) Variable Function - 22: 13 Load 21(samp) - 24: 23(ptr) AccessChain 18(s1) 19 19 - Store 24 22 - 29: 16(S1) Load 18(s1) - 30: 17(ptr) AccessChain 27(s2) 28 - Store 30 29 - 34: 31 Load 33(tex) - 35: 23(ptr) AccessChain 27(s2) 28 19 19 - 36: 13 Load 35 - 38: 37 SampledImage 34 36 - 42: 7(fvec4) ImageSampleImplicitLod 38 41 - ReturnValue 42 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.flattenSubset2.frag.out b/deps/glslang/Test/baseResults/hlsl.flattenSubset2.frag.out deleted file mode 100644 index c3196378..00000000 --- a/deps/glslang/Test/baseResults/hlsl.flattenSubset2.frag.out +++ /dev/null @@ -1,249 +0,0 @@ -hlsl.flattenSubset2.frag -WARNING: AST will form illegal SPIR-V; need to transform to legalize -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:8 Function Definition: @main(vf4; ( temp 4-component vector of float) -0:8 Function Parameters: -0:8 'vpos' ( in 4-component vector of float) -0:? Sequence -0:13 move second child to first child ( temp structure{ temp float y, temp texture2D texNested}) -0:13 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) -0:13 'a1' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x}) -0:13 Constant: -0:13 0 (const int) -0:13 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) -0:13 'a2' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x}) -0:13 Constant: -0:13 0 (const int) -0:14 move second child to first child ( temp structure{ temp float y, temp texture2D texNested}) -0:14 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) -0:14 'b' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp texture2D tex}) -0:14 Constant: -0:14 0 (const int) -0:14 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) -0:14 'a1' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x}) -0:14 Constant: -0:14 0 (const int) -0:17 Sequence -0:17 move second child to first child ( temp structure{ temp float y, temp texture2D texNested}) -0:17 'n' ( temp structure{ temp float y, temp texture2D texNested}) -0:17 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) -0:17 'b' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp texture2D tex}) -0:17 Constant: -0:17 0 (const int) -0:20 move second child to first child ( temp texture2D) -0:20 texNested: direct index for structure ( temp texture2D) -0:20 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) -0:20 'a2' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x}) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 'someTex' ( uniform texture2D) -0:21 move second child to first child ( temp float) -0:21 y: direct index for structure ( temp float) -0:21 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) -0:21 'a1' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x}) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1.000000 -0:23 Branch: Return with expression -0:23 Constant: -0:23 0.000000 -0:23 0.000000 -0:23 0.000000 -0:23 0.000000 -0:8 Function Definition: main( ( temp void) -0:8 Function Parameters: -0:? Sequence -0:8 move second child to first child ( temp 4-component vector of float) -0:? 'vpos' ( temp 4-component vector of float) -0:? 'vpos' (layout( location=0) in 4-component vector of float) -0:8 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:8 Function Call: @main(vf4; ( temp 4-component vector of float) -0:? 'vpos' ( temp 4-component vector of float) -0:? Linker Objects -0:? 'someTex' ( uniform texture2D) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'vpos' (layout( location=0) in 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:8 Function Definition: @main(vf4; ( temp 4-component vector of float) -0:8 Function Parameters: -0:8 'vpos' ( in 4-component vector of float) -0:? Sequence -0:13 move second child to first child ( temp structure{ temp float y, temp texture2D texNested}) -0:13 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) -0:13 'a1' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x}) -0:13 Constant: -0:13 0 (const int) -0:13 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) -0:13 'a2' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x}) -0:13 Constant: -0:13 0 (const int) -0:14 move second child to first child ( temp structure{ temp float y, temp texture2D texNested}) -0:14 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) -0:14 'b' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp texture2D tex}) -0:14 Constant: -0:14 0 (const int) -0:14 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) -0:14 'a1' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x}) -0:14 Constant: -0:14 0 (const int) -0:17 Sequence -0:17 move second child to first child ( temp structure{ temp float y, temp texture2D texNested}) -0:17 'n' ( temp structure{ temp float y, temp texture2D texNested}) -0:17 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) -0:17 'b' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp texture2D tex}) -0:17 Constant: -0:17 0 (const int) -0:20 move second child to first child ( temp texture2D) -0:20 texNested: direct index for structure ( temp texture2D) -0:20 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) -0:20 'a2' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x}) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 'someTex' ( uniform texture2D) -0:21 move second child to first child ( temp float) -0:21 y: direct index for structure ( temp float) -0:21 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) -0:21 'a1' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x}) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1.000000 -0:23 Branch: Return with expression -0:23 Constant: -0:23 0.000000 -0:23 0.000000 -0:23 0.000000 -0:23 0.000000 -0:8 Function Definition: main( ( temp void) -0:8 Function Parameters: -0:? Sequence -0:8 move second child to first child ( temp 4-component vector of float) -0:? 'vpos' ( temp 4-component vector of float) -0:? 'vpos' (layout( location=0) in 4-component vector of float) -0:8 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:8 Function Call: @main(vf4; ( temp 4-component vector of float) -0:? 'vpos' ( temp 4-component vector of float) -0:? Linker Objects -0:? 'someTex' ( uniform texture2D) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'vpos' (layout( location=0) in 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 56 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 49 52 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 11 "@main(vf4;" - Name 10 "vpos" - Name 14 "Nested" - MemberName 14(Nested) 0 "y" - MemberName 14(Nested) 1 "texNested" - Name 15 "A" - MemberName 15(A) 0 "n" - MemberName 15(A) 1 "x" - Name 17 "a1" - Name 20 "a2" - Name 25 "B" - MemberName 25(B) 0 "n" - MemberName 25(B) 1 "tex" - Name 27 "b" - Name 31 "n" - Name 36 "someTex" - Name 47 "vpos" - Name 49 "vpos" - Name 52 "@entryPointOutput" - Name 53 "param" - Decorate 36(someTex) DescriptorSet 0 - Decorate 36(someTex) Binding 0 - Decorate 49(vpos) Location 0 - Decorate 52(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 9: TypeFunction 7(fvec4) 8(ptr) - 13: TypeImage 6(float) 2D sampled format:Unknown - 14(Nested): TypeStruct 6(float) 13 - 15(A): TypeStruct 14(Nested) 6(float) - 16: TypePointer Function 15(A) - 18: TypeInt 32 1 - 19: 18(int) Constant 0 - 21: TypePointer Function 14(Nested) - 25(B): TypeStruct 14(Nested) 13 - 26: TypePointer Function 25(B) - 34: 18(int) Constant 1 - 35: TypePointer UniformConstant 13 - 36(someTex): 35(ptr) Variable UniformConstant - 38: TypePointer Function 13 - 40: 6(float) Constant 1065353216 - 41: TypePointer Function 6(float) - 43: 6(float) Constant 0 - 44: 7(fvec4) ConstantComposite 43 43 43 43 - 48: TypePointer Input 7(fvec4) - 49(vpos): 48(ptr) Variable Input - 51: TypePointer Output 7(fvec4) -52(@entryPointOutput): 51(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 47(vpos): 8(ptr) Variable Function - 53(param): 8(ptr) Variable Function - 50: 7(fvec4) Load 49(vpos) - Store 47(vpos) 50 - 54: 7(fvec4) Load 47(vpos) - Store 53(param) 54 - 55: 7(fvec4) FunctionCall 11(@main(vf4;) 53(param) - Store 52(@entryPointOutput) 55 - Return - FunctionEnd - 11(@main(vf4;): 7(fvec4) Function None 9 - 10(vpos): 8(ptr) FunctionParameter - 12: Label - 17(a1): 16(ptr) Variable Function - 20(a2): 16(ptr) Variable Function - 27(b): 26(ptr) Variable Function - 31(n): 21(ptr) Variable Function - 22: 21(ptr) AccessChain 20(a2) 19 - 23: 14(Nested) Load 22 - 24: 21(ptr) AccessChain 17(a1) 19 - Store 24 23 - 28: 21(ptr) AccessChain 17(a1) 19 - 29: 14(Nested) Load 28 - 30: 21(ptr) AccessChain 27(b) 19 - Store 30 29 - 32: 21(ptr) AccessChain 27(b) 19 - 33: 14(Nested) Load 32 - Store 31(n) 33 - 37: 13 Load 36(someTex) - 39: 38(ptr) AccessChain 20(a2) 19 34 - Store 39 37 - 42: 41(ptr) AccessChain 17(a1) 19 19 - Store 42 40 - ReturnValue 44 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.float1.frag.out b/deps/glslang/Test/baseResults/hlsl.float1.frag.out deleted file mode 100644 index 00bdea94..00000000 --- a/deps/glslang/Test/baseResults/hlsl.float1.frag.out +++ /dev/null @@ -1,111 +0,0 @@ -hlsl.float1.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:1 Sequence -0:1 move second child to first child ( temp 1-component vector of float) -0:1 'f1' ( global 1-component vector of float) -0:1 Constant: -0:1 1.000000 -0:2 Sequence -0:2 move second child to first child ( temp float) -0:2 'scalar' ( global float) -0:2 Constant: -0:2 2.000000 -0:5 Function Definition: ShaderFunction(vf1;f1; ( temp 1-component vector of float) -0:5 Function Parameters: -0:5 'inFloat1' ( in 1-component vector of float) -0:5 'inScalar' ( in float) -0:? Sequence -0:6 Branch: Return with expression -0:6 add ( temp 1-component vector of float) -0:6 vector-scale ( temp 1-component vector of float) -0:6 'f1' ( global 1-component vector of float) -0:6 'scalar' ( global float) -0:6 vector-scale ( temp 1-component vector of float) -0:6 'inFloat1' ( in 1-component vector of float) -0:6 'inScalar' ( in float) -0:? Linker Objects -0:? 'f1' ( global 1-component vector of float) -0:? 'scalar' ( global float) - - -Linked fragment stage: - -WARNING: Linking fragment stage: Entry point not found - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:1 Sequence -0:1 move second child to first child ( temp 1-component vector of float) -0:1 'f1' ( global 1-component vector of float) -0:1 Constant: -0:1 1.000000 -0:2 Sequence -0:2 move second child to first child ( temp float) -0:2 'scalar' ( global float) -0:2 Constant: -0:2 2.000000 -0:5 Function Definition: ShaderFunction(vf1;f1; ( temp 1-component vector of float) -0:5 Function Parameters: -0:5 'inFloat1' ( in 1-component vector of float) -0:5 'inScalar' ( in float) -0:? Sequence -0:6 Branch: Return with expression -0:6 add ( temp 1-component vector of float) -0:6 vector-scale ( temp 1-component vector of float) -0:6 'f1' ( global 1-component vector of float) -0:6 'scalar' ( global float) -0:6 vector-scale ( temp 1-component vector of float) -0:6 'inFloat1' ( in 1-component vector of float) -0:6 'inScalar' ( in float) -0:? Linker Objects -0:? 'f1' ( global 1-component vector of float) -0:? 'scalar' ( global float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 27 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "PixelShaderFunction" - Name 11 "ShaderFunction(vf1;f1;" - Name 9 "inFloat1" - Name 10 "inScalar" - Name 14 "f1" - Name 16 "scalar" - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypePointer Function 6(float) - 8: TypeFunction 6(float) 7(ptr) 7(ptr) - 13: TypePointer Private 6(float) - 14(f1): 13(ptr) Variable Private - 15: 6(float) Constant 1065353216 - 16(scalar): 13(ptr) Variable Private - 17: 6(float) Constant 1073741824 -4(PixelShaderFunction): 2 Function None 3 - 5: Label - Store 14(f1) 15 - Store 16(scalar) 17 - Return - FunctionEnd -11(ShaderFunction(vf1;f1;): 6(float) Function None 8 - 9(inFloat1): 7(ptr) FunctionParameter - 10(inScalar): 7(ptr) FunctionParameter - 12: Label - 18: 6(float) Load 14(f1) - 19: 6(float) Load 16(scalar) - 20: 6(float) FMul 18 19 - 21: 6(float) Load 9(inFloat1) - 22: 6(float) Load 10(inScalar) - 23: 6(float) FMul 21 22 - 24: 6(float) FAdd 20 23 - ReturnValue 24 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.float4.frag.out b/deps/glslang/Test/baseResults/hlsl.float4.frag.out deleted file mode 100644 index 0dbd935a..00000000 --- a/deps/glslang/Test/baseResults/hlsl.float4.frag.out +++ /dev/null @@ -1,97 +0,0 @@ -hlsl.float4.frag -WARNING: 0:5: 'register' : ignoring shader_profile -WARNING: 0:6: 'register' : ignoring shader_profile - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:9 Function Definition: ShaderFunction(vf4; ( temp 4-component vector of float) -0:9 Function Parameters: -0:9 'input' ( in 4-component vector of float) -0:? Sequence -0:10 Branch: Return with expression -0:10 component-wise multiply ( temp 4-component vector of float) -0:10 'input' ( in 4-component vector of float) -0:10 AmbientColor: direct index for structure ( uniform 4-component vector of float) -0:10 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float AmbientColor, uniform bool ff1, layout( offset=20) uniform float ff2, layout( binding=0 offset=32) uniform 4-component vector of float ff3, layout( binding=1 offset=48) uniform 4-component vector of float ff4}) -0:10 Constant: -0:10 0 (const uint) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float AmbientColor, uniform bool ff1, layout( offset=20) uniform float ff2, layout( binding=0 offset=32) uniform 4-component vector of float ff3, layout( binding=1 offset=48) uniform 4-component vector of float ff4}) - - -Linked fragment stage: - -WARNING: Linking fragment stage: Entry point not found - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:9 Function Definition: ShaderFunction(vf4; ( temp 4-component vector of float) -0:9 Function Parameters: -0:9 'input' ( in 4-component vector of float) -0:? Sequence -0:10 Branch: Return with expression -0:10 component-wise multiply ( temp 4-component vector of float) -0:10 'input' ( in 4-component vector of float) -0:10 AmbientColor: direct index for structure ( uniform 4-component vector of float) -0:10 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float AmbientColor, uniform bool ff1, layout( offset=20) uniform float ff2, layout( binding=0 offset=32) uniform 4-component vector of float ff3, layout( binding=1 offset=48) uniform 4-component vector of float ff4}) -0:10 Constant: -0:10 0 (const uint) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float AmbientColor, uniform bool ff1, layout( offset=20) uniform float ff2, layout( binding=0 offset=32) uniform 4-component vector of float ff3, layout( binding=1 offset=48) uniform 4-component vector of float ff4}) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 26 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "PixelShaderFunction" - Name 11 "ShaderFunction(vf4;" - Name 10 "input" - Name 15 "$Global" - MemberName 15($Global) 0 "AmbientColor" - MemberName 15($Global) 1 "ff1" - MemberName 15($Global) 2 "ff2" - MemberName 15($Global) 3 "ff3" - MemberName 15($Global) 4 "ff4" - Name 17 "" - MemberDecorate 15($Global) 0 Offset 0 - MemberDecorate 15($Global) 1 Offset 16 - MemberDecorate 15($Global) 2 Offset 20 - MemberDecorate 15($Global) 3 Offset 32 - MemberDecorate 15($Global) 4 Offset 48 - Decorate 15($Global) Block - Decorate 17 DescriptorSet 0 - Decorate 17 Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 9: TypeFunction 7(fvec4) 8(ptr) - 14: TypeInt 32 0 - 15($Global): TypeStruct 7(fvec4) 14(int) 6(float) 7(fvec4) 7(fvec4) - 16: TypePointer Uniform 15($Global) - 17: 16(ptr) Variable Uniform - 18: TypeInt 32 1 - 19: 18(int) Constant 0 - 20: TypePointer Uniform 7(fvec4) -4(PixelShaderFunction): 2 Function None 3 - 5: Label - Return - FunctionEnd -11(ShaderFunction(vf4;): 7(fvec4) Function None 9 - 10(input): 8(ptr) FunctionParameter - 12: Label - 13: 7(fvec4) Load 10(input) - 21: 20(ptr) AccessChain 17 19 - 22: 7(fvec4) Load 21 - 23: 7(fvec4) FMul 13 22 - ReturnValue 23 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.forLoop.frag.out b/deps/glslang/Test/baseResults/hlsl.forLoop.frag.out deleted file mode 100644 index 7bce3469..00000000 --- a/deps/glslang/Test/baseResults/hlsl.forLoop.frag.out +++ /dev/null @@ -1,912 +0,0 @@ -hlsl.forLoop.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:1 Function Definition: f0( ( temp void) -0:1 Function Parameters: -0:? Sequence -0:? Sequence -0:2 Loop with condition tested first -0:2 No loop condition -0:2 No loop body -0:5 Function Definition: f1(vf4; ( temp void) -0:5 Function Parameters: -0:5 'input' ( in 4-component vector of float) -0:? Sequence -0:6 Sequence -0:6 Pre-Increment ( temp 4-component vector of float) -0:6 'input' ( in 4-component vector of float) -0:6 Loop with condition tested first -0:6 No loop condition -0:6 No loop body -0:9 Function Definition: f2(vf4; ( temp void) -0:9 Function Parameters: -0:9 'input' ( in 4-component vector of float) -0:? Sequence -0:? Sequence -0:10 Loop with condition tested first: Unroll -0:10 Loop Condition -0:10 any ( temp bool) -0:10 NotEqual ( temp 4-component vector of bool) -0:10 'input' ( in 4-component vector of float) -0:10 'input' ( in 4-component vector of float) -0:10 No loop body -0:13 Function Definition: f3(vf4; ( temp float) -0:13 Function Parameters: -0:13 'input' ( in 4-component vector of float) -0:? Sequence -0:? Sequence -0:14 Loop with condition tested first -0:14 Loop Condition -0:14 any ( temp bool) -0:14 NotEqual ( 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 Loop Body -0:? Sequence -0:14 Branch: Return with expression -0:14 Construct float ( temp float) -0:14 Negate value ( temp 4-component vector of float) -0:14 'input' ( in 4-component vector of float) -0:17 Function Definition: f4(vf4; ( temp float) -0:17 Function Parameters: -0:17 'input' ( in 4-component vector of float) -0:? Sequence -0:18 Sequence -0:18 Pre-Decrement ( temp 4-component vector of float) -0:18 'input' ( in 4-component vector of float) -0:18 Loop with condition tested first -0:18 Loop Condition -0:18 any ( temp bool) -0:18 NotEqual ( temp 4-component vector of bool) -0:18 'input' ( in 4-component vector of float) -0:18 'input' ( in 4-component vector of float) -0:18 Loop Body -0:? Sequence -0:18 Branch: Return with expression -0:18 Construct float ( temp float) -0:18 Negate value ( temp 4-component vector of float) -0:18 'input' ( in 4-component vector of float) -0:18 Loop Terminal Expression -0:18 add second child into first child ( temp 4-component vector of float) -0:18 'input' ( in 4-component vector of float) -0:18 Constant: -0:18 2.000000 -0:21 Function Definition: f5(vf4; ( temp void) -0:21 Function Parameters: -0:21 'input' ( in 4-component vector of float) -0:? Sequence -0:? Sequence -0:22 Loop with condition tested first -0:22 No loop condition -0:22 Loop Body -0:22 Test condition and select ( temp void) -0:22 Condition -0:22 Compare Greater Than ( temp bool) -0:22 direct index ( temp float) -0:22 'input' ( in 4-component vector of float) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 2.000000 -0:22 true case -0:22 Branch: Break -0:25 Function Definition: f6(vf4; ( temp void) -0:25 Function Parameters: -0:25 'input' ( in 4-component vector of float) -0:? Sequence -0:? Sequence -0:26 Loop with condition tested first -0:26 No loop condition -0:26 Loop Body -0:26 Test condition and select ( temp void) -0:26 Condition -0:26 Compare Greater Than ( temp bool) -0:26 direct index ( temp float) -0:26 'input' ( in 4-component vector of float) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 2.000000 -0:26 true case -0:26 Branch: Continue -0:29 Function Definition: f99( ( temp void) -0:29 Function Parameters: -0:? Sequence -0:30 Sequence -0:30 move second child to first child ( temp int) -0:30 'first' ( temp int) -0:30 Constant: -0:30 0 (const int) -0:30 move second child to first child ( temp int) -0:30 'second' ( temp int) -0:30 Constant: -0:30 1 (const int) -0:30 Loop with condition tested first -0:30 No loop condition -0:30 Loop Body -0:30 add ( temp int) -0:30 'first' ( temp int) -0:30 'second' ( temp int) -0:33 Function Definition: f100(f1; ( temp void) -0:33 Function Parameters: -0:33 'ii' ( in float) -0:? Sequence -0:? Sequence -0:34 Comma ( temp float) -0:34 Comma ( temp float) -0:34 Pre-Decrement ( temp float) -0:34 'ii' ( in float) -0:34 Pre-Decrement ( temp float) -0:34 'ii' ( in float) -0:34 Pre-Decrement ( temp float) -0:34 'ii' ( in float) -0:34 Loop with condition tested first -0:34 No loop condition -0:34 Loop Body -0:34 'ii' ( in float) -0:38 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float) -0:38 Function Parameters: -0:38 'input' ( in 4-component vector of float) -0:? Sequence -0:39 Function Call: f0( ( temp void) -0:40 Function Call: f1(vf4; ( temp void) -0:40 'input' ( in 4-component vector of float) -0:41 Function Call: f2(vf4; ( temp void) -0:41 'input' ( in 4-component vector of float) -0:42 Function Call: f3(vf4; ( temp float) -0:42 'input' ( in 4-component vector of float) -0:43 Function Call: f4(vf4; ( temp float) -0:43 'input' ( in 4-component vector of float) -0:44 Function Call: f5(vf4; ( temp void) -0:44 'input' ( in 4-component vector of float) -0:45 Function Call: f6(vf4; ( temp void) -0:45 'input' ( in 4-component vector of float) -0:48 Sequence -0:48 move second child to first child ( temp int) -0:48 'ii' ( temp int) -0:48 Constant: -0:48 -1 (const int) -0:48 Loop with condition tested first -0:48 Loop Condition -0:48 Compare Less Than ( temp bool) -0:48 'ii' ( temp int) -0:48 Constant: -0:48 3 (const int) -0:48 Loop Body -0:48 Test condition and select ( temp void) -0:48 Condition -0:48 Compare Equal ( temp bool) -0:48 'ii' ( temp int) -0:48 Constant: -0:48 2 (const int) -0:48 true case -0:48 Branch: Continue -0:48 Loop Terminal Expression -0:48 Pre-Increment ( temp int) -0:48 'ii' ( temp int) -0:49 Pre-Decrement ( temp float) -0:49 'ii' ( temp float) -0:51 Function Call: f99( ( temp void) -0:53 Sequence -0:53 move second child to first child ( temp int) -0:53 'i' ( temp int) -0:53 Constant: -0:53 0 (const int) -0:53 move second child to first child ( temp int) -0:53 'count' ( temp int) -0:53 Convert float to int ( temp int) -0:53 'ii' ( temp float) -0:53 Loop with condition tested first -0:53 Loop Condition -0:53 Compare Less Than ( temp bool) -0:53 'i' ( temp int) -0:53 'count' ( temp int) -0:53 No loop body -0:53 Loop Terminal Expression -0:53 Post-Increment ( temp int) -0:53 'i' ( temp int) -0:54 Sequence -0:54 move second child to first child ( temp float) -0:54 'first' ( temp float) -0:54 Constant: -0:54 0.000000 -0:54 Loop with condition tested first -0:54 Loop Condition -0:54 Compare Less Than ( temp bool) -0:54 'first' ( temp float) -0:54 direct index ( temp float) -0:54 'second' ( temp 2-element array of float) -0:54 Constant: -0:54 0 (const int) -0:54 Loop Body -0:54 add ( temp float) -0:54 add ( temp float) -0:54 'first' ( temp float) -0:54 direct index ( temp float) -0:54 'second' ( temp 2-element array of float) -0:54 Constant: -0:54 1 (const int) -0:54 'third' ( temp float) -0:54 Loop Terminal Expression -0:54 Pre-Increment ( temp float) -0:54 direct index ( temp float) -0:54 'second' ( temp 2-element array of float) -0:54 Constant: -0:54 1 (const int) -0:56 Function Call: f100(f1; ( temp void) -0:56 'ii' ( temp float) -0:58 Branch: Return with expression -0:58 'input' ( in 4-component vector of float) -0:38 Function Definition: PixelShaderFunction( ( temp void) -0:38 Function Parameters: -0:? Sequence -0:38 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:38 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:38 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:1 Function Definition: f0( ( temp void) -0:1 Function Parameters: -0:? Sequence -0:? Sequence -0:2 Loop with condition tested first -0:2 No loop condition -0:2 No loop body -0:5 Function Definition: f1(vf4; ( temp void) -0:5 Function Parameters: -0:5 'input' ( in 4-component vector of float) -0:? Sequence -0:6 Sequence -0:6 Pre-Increment ( temp 4-component vector of float) -0:6 'input' ( in 4-component vector of float) -0:6 Loop with condition tested first -0:6 No loop condition -0:6 No loop body -0:9 Function Definition: f2(vf4; ( temp void) -0:9 Function Parameters: -0:9 'input' ( in 4-component vector of float) -0:? Sequence -0:? Sequence -0:10 Loop with condition tested first: Unroll -0:10 Loop Condition -0:10 any ( temp bool) -0:10 NotEqual ( temp 4-component vector of bool) -0:10 'input' ( in 4-component vector of float) -0:10 'input' ( in 4-component vector of float) -0:10 No loop body -0:13 Function Definition: f3(vf4; ( temp float) -0:13 Function Parameters: -0:13 'input' ( in 4-component vector of float) -0:? Sequence -0:? Sequence -0:14 Loop with condition tested first -0:14 Loop Condition -0:14 any ( temp bool) -0:14 NotEqual ( 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 Loop Body -0:? Sequence -0:14 Branch: Return with expression -0:14 Construct float ( temp float) -0:14 Negate value ( temp 4-component vector of float) -0:14 'input' ( in 4-component vector of float) -0:17 Function Definition: f4(vf4; ( temp float) -0:17 Function Parameters: -0:17 'input' ( in 4-component vector of float) -0:? Sequence -0:18 Sequence -0:18 Pre-Decrement ( temp 4-component vector of float) -0:18 'input' ( in 4-component vector of float) -0:18 Loop with condition tested first -0:18 Loop Condition -0:18 any ( temp bool) -0:18 NotEqual ( temp 4-component vector of bool) -0:18 'input' ( in 4-component vector of float) -0:18 'input' ( in 4-component vector of float) -0:18 Loop Body -0:? Sequence -0:18 Branch: Return with expression -0:18 Construct float ( temp float) -0:18 Negate value ( temp 4-component vector of float) -0:18 'input' ( in 4-component vector of float) -0:18 Loop Terminal Expression -0:18 add second child into first child ( temp 4-component vector of float) -0:18 'input' ( in 4-component vector of float) -0:18 Constant: -0:18 2.000000 -0:21 Function Definition: f5(vf4; ( temp void) -0:21 Function Parameters: -0:21 'input' ( in 4-component vector of float) -0:? Sequence -0:? Sequence -0:22 Loop with condition tested first -0:22 No loop condition -0:22 Loop Body -0:22 Test condition and select ( temp void) -0:22 Condition -0:22 Compare Greater Than ( temp bool) -0:22 direct index ( temp float) -0:22 'input' ( in 4-component vector of float) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 2.000000 -0:22 true case -0:22 Branch: Break -0:25 Function Definition: f6(vf4; ( temp void) -0:25 Function Parameters: -0:25 'input' ( in 4-component vector of float) -0:? Sequence -0:? Sequence -0:26 Loop with condition tested first -0:26 No loop condition -0:26 Loop Body -0:26 Test condition and select ( temp void) -0:26 Condition -0:26 Compare Greater Than ( temp bool) -0:26 direct index ( temp float) -0:26 'input' ( in 4-component vector of float) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 2.000000 -0:26 true case -0:26 Branch: Continue -0:29 Function Definition: f99( ( temp void) -0:29 Function Parameters: -0:? Sequence -0:30 Sequence -0:30 move second child to first child ( temp int) -0:30 'first' ( temp int) -0:30 Constant: -0:30 0 (const int) -0:30 move second child to first child ( temp int) -0:30 'second' ( temp int) -0:30 Constant: -0:30 1 (const int) -0:30 Loop with condition tested first -0:30 No loop condition -0:30 Loop Body -0:30 add ( temp int) -0:30 'first' ( temp int) -0:30 'second' ( temp int) -0:33 Function Definition: f100(f1; ( temp void) -0:33 Function Parameters: -0:33 'ii' ( in float) -0:? Sequence -0:? Sequence -0:34 Comma ( temp float) -0:34 Comma ( temp float) -0:34 Pre-Decrement ( temp float) -0:34 'ii' ( in float) -0:34 Pre-Decrement ( temp float) -0:34 'ii' ( in float) -0:34 Pre-Decrement ( temp float) -0:34 'ii' ( in float) -0:34 Loop with condition tested first -0:34 No loop condition -0:34 Loop Body -0:34 'ii' ( in float) -0:38 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float) -0:38 Function Parameters: -0:38 'input' ( in 4-component vector of float) -0:? Sequence -0:39 Function Call: f0( ( temp void) -0:40 Function Call: f1(vf4; ( temp void) -0:40 'input' ( in 4-component vector of float) -0:41 Function Call: f2(vf4; ( temp void) -0:41 'input' ( in 4-component vector of float) -0:42 Function Call: f3(vf4; ( temp float) -0:42 'input' ( in 4-component vector of float) -0:43 Function Call: f4(vf4; ( temp float) -0:43 'input' ( in 4-component vector of float) -0:44 Function Call: f5(vf4; ( temp void) -0:44 'input' ( in 4-component vector of float) -0:45 Function Call: f6(vf4; ( temp void) -0:45 'input' ( in 4-component vector of float) -0:48 Sequence -0:48 move second child to first child ( temp int) -0:48 'ii' ( temp int) -0:48 Constant: -0:48 -1 (const int) -0:48 Loop with condition tested first -0:48 Loop Condition -0:48 Compare Less Than ( temp bool) -0:48 'ii' ( temp int) -0:48 Constant: -0:48 3 (const int) -0:48 Loop Body -0:48 Test condition and select ( temp void) -0:48 Condition -0:48 Compare Equal ( temp bool) -0:48 'ii' ( temp int) -0:48 Constant: -0:48 2 (const int) -0:48 true case -0:48 Branch: Continue -0:48 Loop Terminal Expression -0:48 Pre-Increment ( temp int) -0:48 'ii' ( temp int) -0:49 Pre-Decrement ( temp float) -0:49 'ii' ( temp float) -0:51 Function Call: f99( ( temp void) -0:53 Sequence -0:53 move second child to first child ( temp int) -0:53 'i' ( temp int) -0:53 Constant: -0:53 0 (const int) -0:53 move second child to first child ( temp int) -0:53 'count' ( temp int) -0:53 Convert float to int ( temp int) -0:53 'ii' ( temp float) -0:53 Loop with condition tested first -0:53 Loop Condition -0:53 Compare Less Than ( temp bool) -0:53 'i' ( temp int) -0:53 'count' ( temp int) -0:53 No loop body -0:53 Loop Terminal Expression -0:53 Post-Increment ( temp int) -0:53 'i' ( temp int) -0:54 Sequence -0:54 move second child to first child ( temp float) -0:54 'first' ( temp float) -0:54 Constant: -0:54 0.000000 -0:54 Loop with condition tested first -0:54 Loop Condition -0:54 Compare Less Than ( temp bool) -0:54 'first' ( temp float) -0:54 direct index ( temp float) -0:54 'second' ( temp 2-element array of float) -0:54 Constant: -0:54 0 (const int) -0:54 Loop Body -0:54 add ( temp float) -0:54 add ( temp float) -0:54 'first' ( temp float) -0:54 direct index ( temp float) -0:54 'second' ( temp 2-element array of float) -0:54 Constant: -0:54 1 (const int) -0:54 'third' ( temp float) -0:54 Loop Terminal Expression -0:54 Pre-Increment ( temp float) -0:54 direct index ( temp float) -0:54 'second' ( temp 2-element array of float) -0:54 Constant: -0:54 1 (const int) -0:56 Function Call: f100(f1; ( temp void) -0:56 'ii' ( temp float) -0:58 Branch: Return with expression -0:58 'input' ( in 4-component vector of float) -0:38 Function Definition: PixelShaderFunction( ( temp void) -0:38 Function Parameters: -0:? Sequence -0:38 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:38 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:38 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): 8000a -// Id's are bound by 240 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 233 236 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "PixelShaderFunction" - Name 6 "f0(" - Name 13 "f1(vf4;" - Name 12 "input" - Name 16 "f2(vf4;" - Name 15 "input" - Name 20 "f3(vf4;" - Name 19 "input" - Name 23 "f4(vf4;" - Name 22 "input" - Name 26 "f5(vf4;" - Name 25 "input" - Name 29 "f6(vf4;" - Name 28 "input" - Name 31 "f99(" - Name 36 "f100(f1;" - Name 35 "ii" - Name 40 "@PixelShaderFunction(vf4;" - Name 39 "input" - Name 124 "first" - Name 126 "second" - Name 146 "param" - Name 149 "param" - Name 152 "param" - Name 155 "param" - Name 158 "param" - Name 161 "param" - Name 164 "ii" - Name 182 "ii" - Name 186 "i" - Name 187 "count" - Name 200 "first" - Name 211 "second" - Name 219 "third" - Name 225 "param" - Name 231 "input" - Name 233 "input" - Name 236 "@entryPointOutput" - Name 237 "param" - Decorate 233(input) Location 0 - Decorate 236(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 8: TypeFloat 32 - 9: TypeVector 8(float) 4 - 10: TypePointer Function 9(fvec4) - 11: TypeFunction 2 10(ptr) - 18: TypeFunction 8(float) 10(ptr) - 33: TypePointer Function 8(float) - 34: TypeFunction 2 33(ptr) - 38: TypeFunction 9(fvec4) 10(ptr) - 47: 8(float) Constant 1065353216 - 61: TypeBool - 62: TypeVector 61(bool) 4 - 95: 8(float) Constant 1073741824 - 104: TypeInt 32 0 - 105: 104(int) Constant 0 - 122: TypeInt 32 1 - 123: TypePointer Function 122(int) - 125: 122(int) Constant 0 - 127: 122(int) Constant 1 - 165: 122(int) Constant 4294967295 - 172: 122(int) Constant 3 - 175: 122(int) Constant 2 - 201: 8(float) Constant 0 - 208: 104(int) Constant 2 - 209: TypeArray 8(float) 208 - 210: TypePointer Function 209 - 232: TypePointer Input 9(fvec4) - 233(input): 232(ptr) Variable Input - 235: TypePointer Output 9(fvec4) -236(@entryPointOutput): 235(ptr) Variable Output -4(PixelShaderFunction): 2 Function None 3 - 5: Label - 231(input): 10(ptr) Variable Function - 237(param): 10(ptr) Variable Function - 234: 9(fvec4) Load 233(input) - Store 231(input) 234 - 238: 9(fvec4) Load 231(input) - Store 237(param) 238 - 239: 9(fvec4) FunctionCall 40(@PixelShaderFunction(vf4;) 237(param) - Store 236(@entryPointOutput) 239 - Return - FunctionEnd - 6(f0(): 2 Function None 3 - 7: Label - Branch 42 - 42: Label - LoopMerge 44 45 None - Branch 43 - 43: Label - Branch 45 - 45: Label - Branch 42 - 44: Label - Unreachable - FunctionEnd - 13(f1(vf4;): 2 Function None 11 - 12(input): 10(ptr) FunctionParameter - 14: Label - 46: 9(fvec4) Load 12(input) - 48: 9(fvec4) CompositeConstruct 47 47 47 47 - 49: 9(fvec4) FAdd 46 48 - Store 12(input) 49 - Branch 50 - 50: Label - LoopMerge 52 53 None - Branch 51 - 51: Label - Branch 53 - 53: Label - Branch 50 - 52: Label - Unreachable - FunctionEnd - 16(f2(vf4;): 2 Function None 11 - 15(input): 10(ptr) FunctionParameter - 17: Label - Branch 54 - 54: Label - LoopMerge 56 57 Unroll - Branch 58 - 58: Label - 59: 9(fvec4) Load 15(input) - 60: 9(fvec4) Load 15(input) - 63: 62(bvec4) FUnordNotEqual 59 60 - 64: 61(bool) Any 63 - BranchConditional 64 55 56 - 55: Label - Branch 57 - 57: Label - Branch 54 - 56: Label - Return - FunctionEnd - 20(f3(vf4;): 8(float) Function None 18 - 19(input): 10(ptr) FunctionParameter - 21: Label - Branch 65 - 65: Label - LoopMerge 67 68 None - Branch 69 - 69: Label - 70: 9(fvec4) Load 19(input) - 71: 9(fvec4) Load 19(input) - 72: 62(bvec4) FUnordNotEqual 70 71 - 73: 61(bool) Any 72 - BranchConditional 73 66 67 - 66: Label - 74: 9(fvec4) Load 19(input) - 75: 9(fvec4) FNegate 74 - 76: 8(float) CompositeExtract 75 0 - ReturnValue 76 - 68: Label - Branch 65 - 67: Label - 78: 8(float) Undef - ReturnValue 78 - FunctionEnd - 23(f4(vf4;): 8(float) Function None 18 - 22(input): 10(ptr) FunctionParameter - 24: Label - 79: 9(fvec4) Load 22(input) - 80: 9(fvec4) CompositeConstruct 47 47 47 47 - 81: 9(fvec4) FSub 79 80 - Store 22(input) 81 - Branch 82 - 82: Label - LoopMerge 84 85 None - Branch 86 - 86: Label - 87: 9(fvec4) Load 22(input) - 88: 9(fvec4) Load 22(input) - 89: 62(bvec4) FUnordNotEqual 87 88 - 90: 61(bool) Any 89 - BranchConditional 90 83 84 - 83: Label - 91: 9(fvec4) Load 22(input) - 92: 9(fvec4) FNegate 91 - 93: 8(float) CompositeExtract 92 0 - ReturnValue 93 - 85: Label - Branch 82 - 84: Label - 99: 8(float) Undef - ReturnValue 99 - FunctionEnd - 26(f5(vf4;): 2 Function None 11 - 25(input): 10(ptr) FunctionParameter - 27: Label - Branch 100 - 100: Label - LoopMerge 102 103 None - Branch 101 - 101: Label - 106: 33(ptr) AccessChain 25(input) 105 - 107: 8(float) Load 106 - 108: 61(bool) FOrdGreaterThan 107 95 - SelectionMerge 110 None - BranchConditional 108 109 110 - 109: Label - Branch 102 - 110: Label - Branch 103 - 103: Label - Branch 100 - 102: Label - Return - FunctionEnd - 29(f6(vf4;): 2 Function None 11 - 28(input): 10(ptr) FunctionParameter - 30: Label - Branch 112 - 112: Label - LoopMerge 114 115 None - Branch 113 - 113: Label - 116: 33(ptr) AccessChain 28(input) 105 - 117: 8(float) Load 116 - 118: 61(bool) FOrdGreaterThan 117 95 - SelectionMerge 120 None - BranchConditional 118 119 120 - 119: Label - Branch 115 - 120: Label - Branch 115 - 115: Label - Branch 112 - 114: Label - Unreachable - FunctionEnd - 31(f99(): 2 Function None 3 - 32: Label - 124(first): 123(ptr) Variable Function - 126(second): 123(ptr) Variable Function - Store 124(first) 125 - Store 126(second) 127 - Branch 128 - 128: Label - LoopMerge 130 131 None - Branch 129 - 129: Label - 132: 122(int) Load 124(first) - 133: 122(int) Load 126(second) - 134: 122(int) IAdd 132 133 - Branch 131 - 131: Label - Branch 128 - 130: Label - Unreachable - FunctionEnd - 36(f100(f1;): 2 Function None 34 - 35(ii): 33(ptr) FunctionParameter - 37: Label - 135: 8(float) Load 35(ii) - 136: 8(float) FSub 135 47 - Store 35(ii) 136 - 137: 8(float) Load 35(ii) - 138: 8(float) FSub 137 47 - Store 35(ii) 138 - 139: 8(float) Load 35(ii) - 140: 8(float) FSub 139 47 - Store 35(ii) 140 - Branch 141 - 141: Label - LoopMerge 143 144 None - Branch 142 - 142: Label - Branch 144 - 144: Label - Branch 141 - 143: Label - Unreachable - FunctionEnd -40(@PixelShaderFunction(vf4;): 9(fvec4) Function None 38 - 39(input): 10(ptr) FunctionParameter - 41: Label - 146(param): 10(ptr) Variable Function - 149(param): 10(ptr) Variable Function - 152(param): 10(ptr) Variable Function - 155(param): 10(ptr) Variable Function - 158(param): 10(ptr) Variable Function - 161(param): 10(ptr) Variable Function - 164(ii): 123(ptr) Variable Function - 182(ii): 33(ptr) Variable Function - 186(i): 123(ptr) Variable Function - 187(count): 123(ptr) Variable Function - 200(first): 33(ptr) Variable Function - 211(second): 210(ptr) Variable Function - 219(third): 33(ptr) Variable Function - 225(param): 33(ptr) Variable Function - 145: 2 FunctionCall 6(f0() - 147: 9(fvec4) Load 39(input) - Store 146(param) 147 - 148: 2 FunctionCall 13(f1(vf4;) 146(param) - 150: 9(fvec4) Load 39(input) - Store 149(param) 150 - 151: 2 FunctionCall 16(f2(vf4;) 149(param) - 153: 9(fvec4) Load 39(input) - Store 152(param) 153 - 154: 8(float) FunctionCall 20(f3(vf4;) 152(param) - 156: 9(fvec4) Load 39(input) - Store 155(param) 156 - 157: 8(float) FunctionCall 23(f4(vf4;) 155(param) - 159: 9(fvec4) Load 39(input) - Store 158(param) 159 - 160: 2 FunctionCall 26(f5(vf4;) 158(param) - 162: 9(fvec4) Load 39(input) - Store 161(param) 162 - 163: 2 FunctionCall 29(f6(vf4;) 161(param) - Store 164(ii) 165 - Branch 166 - 166: Label - LoopMerge 168 169 None - Branch 170 - 170: Label - 171: 122(int) Load 164(ii) - 173: 61(bool) SLessThan 171 172 - BranchConditional 173 167 168 - 167: Label - 174: 122(int) Load 164(ii) - 176: 61(bool) IEqual 174 175 - SelectionMerge 178 None - BranchConditional 176 177 178 - 177: Label - Branch 169 - 178: Label - Branch 169 - 169: Label - 180: 122(int) Load 164(ii) - 181: 122(int) IAdd 180 127 - Store 164(ii) 181 - Branch 166 - 168: Label - 183: 8(float) Load 182(ii) - 184: 8(float) FSub 183 47 - Store 182(ii) 184 - 185: 2 FunctionCall 31(f99() - Store 186(i) 125 - 188: 8(float) Load 182(ii) - 189: 122(int) ConvertFToS 188 - Store 187(count) 189 - Branch 190 - 190: Label - LoopMerge 192 193 None - Branch 194 - 194: Label - 195: 122(int) Load 186(i) - 196: 122(int) Load 187(count) - 197: 61(bool) SLessThan 195 196 - BranchConditional 197 191 192 - 191: Label - Branch 193 - 193: Label - 198: 122(int) Load 186(i) - 199: 122(int) IAdd 198 127 - Store 186(i) 199 - Branch 190 - 192: Label - Store 200(first) 201 - Branch 202 - 202: Label - LoopMerge 204 205 None - Branch 206 - 206: Label - 207: 8(float) Load 200(first) - 212: 33(ptr) AccessChain 211(second) 125 - 213: 8(float) Load 212 - 214: 61(bool) FOrdLessThan 207 213 - BranchConditional 214 203 204 - 203: Label - 215: 8(float) Load 200(first) - 216: 33(ptr) AccessChain 211(second) 127 - 217: 8(float) Load 216 - 218: 8(float) FAdd 215 217 - 220: 8(float) Load 219(third) - 221: 8(float) FAdd 218 220 - Branch 205 - 205: Label - 222: 33(ptr) AccessChain 211(second) 127 - 223: 8(float) Load 222 - 224: 8(float) FAdd 223 47 - Store 222 224 - Branch 202 - 204: Label - 226: 8(float) Load 182(ii) - Store 225(param) 226 - 227: 2 FunctionCall 36(f100(f1;) 225(param) - 228: 9(fvec4) Load 39(input) - ReturnValue 228 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.format.rwtexture.frag.out b/deps/glslang/Test/baseResults/hlsl.format.rwtexture.frag.out deleted file mode 100644 index e6eebbf2..00000000 --- a/deps/glslang/Test/baseResults/hlsl.format.rwtexture.frag.out +++ /dev/null @@ -1,501 +0,0 @@ -hlsl.format.rwtexture.frag -Shader version: 500 -gl_FragCoord origin is upper left -using depth_any -0:? Sequence -0:56 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:56 Function Parameters: -0:? Sequence -0:59 move second child to first child ( temp 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 Constant: -0:59 1.000000 -0:59 1.000000 -0:59 1.000000 -0:59 1.000000 -0:60 move second child to first child ( temp float) -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 Constant: -0:60 1.000000 -0:62 Branch: Return with expression -0:62 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:56 Function Definition: main( ( temp void) -0:56 Function Parameters: -0:? Sequence -0:56 Sequence -0:56 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:56 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:56 Function Call: @main( ( 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:? '@entryPointOutput.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 'flattenTemp' ( 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:? '@entryPointOutput.Depth' ( out float FragDepth) -0:56 Depth: direct index for structure ( temp float) -0:56 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:56 Constant: -0:56 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( rg32f) uniform iimage1D) -0:? 'g_tTex1du4' (layout( rgba8_snorm) uniform uimage1D) -0:? 'g_tTex2df4' (layout( rgba8i) uniform image2D) -0:? 'g_tTex2di4' (layout( r11f_g11f_b10f) uniform iimage2D) -0:? 'g_tTex2du4' (layout( r8_snorm) uniform uimage2D) -0:? 'g_tTex3df4' (layout( rg8) readonly uniform image3D) -0:? 'g_tTex3di4' (layout( rgba16i) writeonly uniform iimage3D) -0:? 'g_tTex3du4' (layout( r8i) readonly writeonly uniform uimage3D) -0:? 'g_tTex1df4a' (layout( rgba8ui) uniform image1DArray) -0:? 'g_tTex1di4a' (layout( rg32ui) uniform iimage1DArray) -0:? 'g_tTex1du4a' (layout( r16ui) uniform uimage1DArray) -0:? 'g_tTex2df4a' (layout( rgb10_a2ui) uniform image2DArray) -0:? 'g_tTex2di4a' (layout( r8ui) uniform iimage2DArray) -0:? 'g_tTex2du4a' (layout( rgba16f) uniform uimage2DArray) -0:? 'g_tTex01' (layout( rgba8) uniform iimage2DArray) -0:? 'g_tTex02' (layout( rg16f) uniform iimage2DArray) -0:? 'g_tTex03' (layout( r16f) uniform iimage2DArray) -0:? 'g_tTex04' (layout( rgb10_a2) uniform iimage2DArray) -0:? 'g_tTex05' (layout( rg16) uniform iimage2DArray) -0:? 'g_tTex06' (layout( r32f) uniform iimage2DArray) -0:? 'g_tTex07' (layout( rgba16) uniform iimage2DArray) -0:? 'g_tTex08' (layout( r16) uniform iimage2DArray) -0:? 'g_tTex09' (layout( r8) uniform iimage2DArray) -0:? 'g_tTex10' (layout( rgba16_snorm) uniform iimage2DArray) -0:? 'g_tTex11' (layout( rg16_snorm) uniform iimage2DArray) -0:? 'g_tTex12' (layout( r16_snorm) uniform iimage2DArray) -0:? 'g_tTex13' (layout( r8_snorm) uniform iimage2DArray) -0:? 'g_tTex14' (layout( rgba32i) uniform iimage2DArray) -0:? 'g_tTex15' (layout( r32i) uniform iimage2DArray) -0:? 'g_tTex16' (layout( r32ui) uniform iimage2DArray) -0:? 'g_tTex17' (layout( rg16i) uniform iimage2DArray) -0:? 'g_tTex18' (layout( r16i) uniform iimage2DArray) -0:? 'g_tTex19' (layout( rg32i) uniform iimage2DArray) -0:? 'g_tTex20' (layout( rg8i) uniform iimage2DArray) -0:? 'g_tTex21' (layout( rg8ui) uniform iimage2DArray) -0:? 'g_tTex22' (layout( rgba32ui) uniform iimage2DArray) -0:? 'g_tTex23' (layout( rgba16ui) uniform iimage2DArray) -0:? 'g_tTex24' (layout( rg32ui) uniform iimage2DArray) -0:? 'g_tTex25' (layout( rg16ui) uniform iimage2DArray) -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:56 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:56 Function Parameters: -0:? Sequence -0:59 move second child to first child ( temp 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 Constant: -0:59 1.000000 -0:59 1.000000 -0:59 1.000000 -0:59 1.000000 -0:60 move second child to first child ( temp float) -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 Constant: -0:60 1.000000 -0:62 Branch: Return with expression -0:62 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:56 Function Definition: main( ( temp void) -0:56 Function Parameters: -0:? Sequence -0:56 Sequence -0:56 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:56 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:56 Function Call: @main( ( 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:? '@entryPointOutput.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 'flattenTemp' ( 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:? '@entryPointOutput.Depth' ( out float FragDepth) -0:56 Depth: direct index for structure ( temp float) -0:56 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:56 Constant: -0:56 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( rg32f) uniform iimage1D) -0:? 'g_tTex1du4' (layout( rgba8_snorm) uniform uimage1D) -0:? 'g_tTex2df4' (layout( rgba8i) uniform image2D) -0:? 'g_tTex2di4' (layout( r11f_g11f_b10f) uniform iimage2D) -0:? 'g_tTex2du4' (layout( r8_snorm) uniform uimage2D) -0:? 'g_tTex3df4' (layout( rg8) readonly uniform image3D) -0:? 'g_tTex3di4' (layout( rgba16i) writeonly uniform iimage3D) -0:? 'g_tTex3du4' (layout( r8i) readonly writeonly uniform uimage3D) -0:? 'g_tTex1df4a' (layout( rgba8ui) uniform image1DArray) -0:? 'g_tTex1di4a' (layout( rg32ui) uniform iimage1DArray) -0:? 'g_tTex1du4a' (layout( r16ui) uniform uimage1DArray) -0:? 'g_tTex2df4a' (layout( rgb10_a2ui) uniform image2DArray) -0:? 'g_tTex2di4a' (layout( r8ui) uniform iimage2DArray) -0:? 'g_tTex2du4a' (layout( rgba16f) uniform uimage2DArray) -0:? 'g_tTex01' (layout( rgba8) uniform iimage2DArray) -0:? 'g_tTex02' (layout( rg16f) uniform iimage2DArray) -0:? 'g_tTex03' (layout( r16f) uniform iimage2DArray) -0:? 'g_tTex04' (layout( rgb10_a2) uniform iimage2DArray) -0:? 'g_tTex05' (layout( rg16) uniform iimage2DArray) -0:? 'g_tTex06' (layout( r32f) uniform iimage2DArray) -0:? 'g_tTex07' (layout( rgba16) uniform iimage2DArray) -0:? 'g_tTex08' (layout( r16) uniform iimage2DArray) -0:? 'g_tTex09' (layout( r8) uniform iimage2DArray) -0:? 'g_tTex10' (layout( rgba16_snorm) uniform iimage2DArray) -0:? 'g_tTex11' (layout( rg16_snorm) uniform iimage2DArray) -0:? 'g_tTex12' (layout( r16_snorm) uniform iimage2DArray) -0:? 'g_tTex13' (layout( r8_snorm) uniform iimage2DArray) -0:? 'g_tTex14' (layout( rgba32i) uniform iimage2DArray) -0:? 'g_tTex15' (layout( r32i) uniform iimage2DArray) -0:? 'g_tTex16' (layout( r32ui) uniform iimage2DArray) -0:? 'g_tTex17' (layout( rg16i) uniform iimage2DArray) -0:? 'g_tTex18' (layout( r16i) uniform iimage2DArray) -0:? 'g_tTex19' (layout( rg32i) uniform iimage2DArray) -0:? 'g_tTex20' (layout( rg8i) uniform iimage2DArray) -0:? 'g_tTex21' (layout( rg8ui) uniform iimage2DArray) -0:? 'g_tTex22' (layout( rgba32ui) uniform iimage2DArray) -0:? 'g_tTex23' (layout( rgba16ui) uniform iimage2DArray) -0:? 'g_tTex24' (layout( rg32ui) uniform iimage2DArray) -0:? 'g_tTex25' (layout( rg16ui) uniform iimage2DArray) -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): 8000a -// Id's are bound by 160 - - Capability Shader - Capability Image1D - Capability StorageImageExtendedFormats - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 29 33 - 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 "psout" - Name 26 "flattenTemp" - Name 29 "@entryPointOutput.Color" - Name 33 "@entryPointOutput.Depth" - Name 38 "g_sSamp" - Name 41 "g_tTex1df4" - Name 44 "g_tTex1di4" - Name 48 "g_tTex1du4" - Name 51 "g_tTex2df4" - Name 54 "g_tTex2di4" - Name 57 "g_tTex2du4" - Name 60 "g_tTex3df4" - Name 63 "g_tTex3di4" - Name 66 "g_tTex3du4" - Name 69 "g_tTex1df4a" - Name 72 "g_tTex1di4a" - Name 75 "g_tTex1du4a" - Name 78 "g_tTex2df4a" - Name 81 "g_tTex2di4a" - Name 84 "g_tTex2du4a" - Name 87 "g_tTex01" - Name 90 "g_tTex02" - Name 93 "g_tTex03" - Name 96 "g_tTex04" - Name 99 "g_tTex05" - Name 102 "g_tTex06" - Name 105 "g_tTex07" - Name 108 "g_tTex08" - Name 111 "g_tTex09" - Name 114 "g_tTex10" - Name 117 "g_tTex11" - Name 120 "g_tTex12" - Name 123 "g_tTex13" - Name 126 "g_tTex14" - Name 129 "g_tTex15" - Name 132 "g_tTex16" - Name 135 "g_tTex17" - Name 138 "g_tTex18" - Name 141 "g_tTex19" - Name 144 "g_tTex20" - Name 147 "g_tTex21" - Name 150 "g_tTex22" - Name 153 "g_tTex23" - Name 156 "g_tTex24" - Name 159 "g_tTex25" - Decorate 29(@entryPointOutput.Color) Location 0 - Decorate 33(@entryPointOutput.Depth) BuiltIn FragDepth - Decorate 38(g_sSamp) DescriptorSet 0 - Decorate 38(g_sSamp) Binding 0 - Decorate 41(g_tTex1df4) DescriptorSet 0 - Decorate 41(g_tTex1df4) Binding 0 - Decorate 44(g_tTex1di4) DescriptorSet 0 - Decorate 44(g_tTex1di4) Binding 0 - Decorate 48(g_tTex1du4) DescriptorSet 0 - Decorate 48(g_tTex1du4) Binding 0 - Decorate 51(g_tTex2df4) DescriptorSet 0 - Decorate 51(g_tTex2df4) Binding 0 - Decorate 54(g_tTex2di4) DescriptorSet 0 - Decorate 54(g_tTex2di4) Binding 0 - Decorate 57(g_tTex2du4) DescriptorSet 0 - Decorate 57(g_tTex2du4) Binding 0 - Decorate 60(g_tTex3df4) DescriptorSet 0 - Decorate 60(g_tTex3df4) Binding 0 - Decorate 60(g_tTex3df4) NonWritable - Decorate 63(g_tTex3di4) DescriptorSet 0 - Decorate 63(g_tTex3di4) Binding 0 - Decorate 63(g_tTex3di4) NonReadable - Decorate 66(g_tTex3du4) DescriptorSet 0 - Decorate 66(g_tTex3du4) Binding 0 - Decorate 66(g_tTex3du4) NonWritable - Decorate 66(g_tTex3du4) NonReadable - Decorate 69(g_tTex1df4a) DescriptorSet 0 - Decorate 69(g_tTex1df4a) Binding 0 - Decorate 72(g_tTex1di4a) DescriptorSet 0 - Decorate 72(g_tTex1di4a) Binding 0 - Decorate 75(g_tTex1du4a) DescriptorSet 0 - Decorate 75(g_tTex1du4a) Binding 0 - Decorate 78(g_tTex2df4a) DescriptorSet 0 - Decorate 78(g_tTex2df4a) Binding 0 - Decorate 81(g_tTex2di4a) DescriptorSet 0 - Decorate 81(g_tTex2di4a) Binding 0 - Decorate 84(g_tTex2du4a) DescriptorSet 0 - Decorate 84(g_tTex2du4a) Binding 0 - Decorate 87(g_tTex01) DescriptorSet 0 - Decorate 87(g_tTex01) Binding 0 - Decorate 90(g_tTex02) DescriptorSet 0 - Decorate 90(g_tTex02) Binding 0 - Decorate 93(g_tTex03) DescriptorSet 0 - Decorate 93(g_tTex03) Binding 0 - Decorate 96(g_tTex04) DescriptorSet 0 - Decorate 96(g_tTex04) Binding 0 - Decorate 99(g_tTex05) DescriptorSet 0 - Decorate 99(g_tTex05) Binding 0 - Decorate 102(g_tTex06) DescriptorSet 0 - Decorate 102(g_tTex06) Binding 0 - Decorate 105(g_tTex07) DescriptorSet 0 - Decorate 105(g_tTex07) Binding 0 - Decorate 108(g_tTex08) DescriptorSet 0 - Decorate 108(g_tTex08) Binding 0 - Decorate 111(g_tTex09) DescriptorSet 0 - Decorate 111(g_tTex09) Binding 0 - Decorate 114(g_tTex10) DescriptorSet 0 - Decorate 114(g_tTex10) Binding 0 - Decorate 117(g_tTex11) DescriptorSet 0 - Decorate 117(g_tTex11) Binding 0 - Decorate 120(g_tTex12) DescriptorSet 0 - Decorate 120(g_tTex12) Binding 0 - Decorate 123(g_tTex13) DescriptorSet 0 - Decorate 123(g_tTex13) Binding 0 - Decorate 126(g_tTex14) DescriptorSet 0 - Decorate 126(g_tTex14) Binding 0 - Decorate 129(g_tTex15) DescriptorSet 0 - Decorate 129(g_tTex15) Binding 0 - Decorate 132(g_tTex16) DescriptorSet 0 - Decorate 132(g_tTex16) Binding 0 - Decorate 135(g_tTex17) DescriptorSet 0 - Decorate 135(g_tTex17) Binding 0 - Decorate 138(g_tTex18) DescriptorSet 0 - Decorate 138(g_tTex18) Binding 0 - Decorate 141(g_tTex19) DescriptorSet 0 - Decorate 141(g_tTex19) Binding 0 - Decorate 144(g_tTex20) DescriptorSet 0 - Decorate 144(g_tTex20) Binding 0 - Decorate 147(g_tTex21) DescriptorSet 0 - Decorate 147(g_tTex21) Binding 0 - Decorate 150(g_tTex22) DescriptorSet 0 - Decorate 150(g_tTex22) Binding 0 - Decorate 153(g_tTex23) DescriptorSet 0 - Decorate 153(g_tTex23) Binding 0 - Decorate 156(g_tTex24) DescriptorSet 0 - Decorate 156(g_tTex24) Binding 0 - Decorate 159(g_tTex25) DescriptorSet 0 - Decorate 159(g_tTex25) 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 8(PS_OUTPUT) - 14: TypeInt 32 1 - 15: 14(int) Constant 0 - 16: 6(float) Constant 1065353216 - 17: 7(fvec4) ConstantComposite 16 16 16 16 - 18: TypePointer Function 7(fvec4) - 20: 14(int) Constant 1 - 21: TypePointer Function 6(float) - 28: TypePointer Output 7(fvec4) -29(@entryPointOutput.Color): 28(ptr) Variable Output - 32: TypePointer Output 6(float) -33(@entryPointOutput.Depth): 32(ptr) Variable Output - 36: TypeSampler - 37: TypePointer UniformConstant 36 - 38(g_sSamp): 37(ptr) Variable UniformConstant - 39: TypeImage 6(float) 1D nonsampled format:Rgba32f - 40: TypePointer UniformConstant 39 - 41(g_tTex1df4): 40(ptr) Variable UniformConstant - 42: TypeImage 14(int) 1D nonsampled format:Rg32f - 43: TypePointer UniformConstant 42 - 44(g_tTex1di4): 43(ptr) Variable UniformConstant - 45: TypeInt 32 0 - 46: TypeImage 45(int) 1D nonsampled format:Rgba8Snorm - 47: TypePointer UniformConstant 46 - 48(g_tTex1du4): 47(ptr) Variable UniformConstant - 49: TypeImage 6(float) 2D nonsampled format:Rgba8i - 50: TypePointer UniformConstant 49 - 51(g_tTex2df4): 50(ptr) Variable UniformConstant - 52: TypeImage 14(int) 2D nonsampled format:R11fG11fB10f - 53: TypePointer UniformConstant 52 - 54(g_tTex2di4): 53(ptr) Variable UniformConstant - 55: TypeImage 45(int) 2D nonsampled format:R8Snorm - 56: TypePointer UniformConstant 55 - 57(g_tTex2du4): 56(ptr) Variable UniformConstant - 58: TypeImage 6(float) 3D nonsampled format:Rg8 - 59: TypePointer UniformConstant 58 - 60(g_tTex3df4): 59(ptr) Variable UniformConstant - 61: TypeImage 14(int) 3D nonsampled format:Rgba16i - 62: TypePointer UniformConstant 61 - 63(g_tTex3di4): 62(ptr) Variable UniformConstant - 64: TypeImage 45(int) 3D nonsampled format:R8i - 65: TypePointer UniformConstant 64 - 66(g_tTex3du4): 65(ptr) Variable UniformConstant - 67: TypeImage 6(float) 1D array nonsampled format:Rgba8ui - 68: TypePointer UniformConstant 67 - 69(g_tTex1df4a): 68(ptr) Variable UniformConstant - 70: TypeImage 14(int) 1D array nonsampled format:Rg32ui - 71: TypePointer UniformConstant 70 - 72(g_tTex1di4a): 71(ptr) Variable UniformConstant - 73: TypeImage 45(int) 1D array nonsampled format:R16ui - 74: TypePointer UniformConstant 73 - 75(g_tTex1du4a): 74(ptr) Variable UniformConstant - 76: TypeImage 6(float) 2D array nonsampled format:Rgb10a2ui - 77: TypePointer UniformConstant 76 - 78(g_tTex2df4a): 77(ptr) Variable UniformConstant - 79: TypeImage 14(int) 2D array nonsampled format:R8ui - 80: TypePointer UniformConstant 79 - 81(g_tTex2di4a): 80(ptr) Variable UniformConstant - 82: TypeImage 45(int) 2D array nonsampled format:Rgba16f - 83: TypePointer UniformConstant 82 - 84(g_tTex2du4a): 83(ptr) Variable UniformConstant - 85: TypeImage 14(int) 2D array nonsampled format:Rgba8 - 86: TypePointer UniformConstant 85 - 87(g_tTex01): 86(ptr) Variable UniformConstant - 88: TypeImage 14(int) 2D array nonsampled format:Rg16f - 89: TypePointer UniformConstant 88 - 90(g_tTex02): 89(ptr) Variable UniformConstant - 91: TypeImage 14(int) 2D array nonsampled format:R16f - 92: TypePointer UniformConstant 91 - 93(g_tTex03): 92(ptr) Variable UniformConstant - 94: TypeImage 14(int) 2D array nonsampled format:Rgb10A2 - 95: TypePointer UniformConstant 94 - 96(g_tTex04): 95(ptr) Variable UniformConstant - 97: TypeImage 14(int) 2D array nonsampled format:Rg16 - 98: TypePointer UniformConstant 97 - 99(g_tTex05): 98(ptr) Variable UniformConstant - 100: TypeImage 14(int) 2D array nonsampled format:R32f - 101: TypePointer UniformConstant 100 - 102(g_tTex06): 101(ptr) Variable UniformConstant - 103: TypeImage 14(int) 2D array nonsampled format:Rgba16 - 104: TypePointer UniformConstant 103 - 105(g_tTex07): 104(ptr) Variable UniformConstant - 106: TypeImage 14(int) 2D array nonsampled format:R16 - 107: TypePointer UniformConstant 106 - 108(g_tTex08): 107(ptr) Variable UniformConstant - 109: TypeImage 14(int) 2D array nonsampled format:R8 - 110: TypePointer UniformConstant 109 - 111(g_tTex09): 110(ptr) Variable UniformConstant - 112: TypeImage 14(int) 2D array nonsampled format:Rgba16Snorm - 113: TypePointer UniformConstant 112 - 114(g_tTex10): 113(ptr) Variable UniformConstant - 115: TypeImage 14(int) 2D array nonsampled format:Rg16Snorm - 116: TypePointer UniformConstant 115 - 117(g_tTex11): 116(ptr) Variable UniformConstant - 118: TypeImage 14(int) 2D array nonsampled format:R16Snorm - 119: TypePointer UniformConstant 118 - 120(g_tTex12): 119(ptr) Variable UniformConstant - 121: TypeImage 14(int) 2D array nonsampled format:R8Snorm - 122: TypePointer UniformConstant 121 - 123(g_tTex13): 122(ptr) Variable UniformConstant - 124: TypeImage 14(int) 2D array nonsampled format:Rgba32i - 125: TypePointer UniformConstant 124 - 126(g_tTex14): 125(ptr) Variable UniformConstant - 127: TypeImage 14(int) 2D array nonsampled format:R32i - 128: TypePointer UniformConstant 127 - 129(g_tTex15): 128(ptr) Variable UniformConstant - 130: TypeImage 14(int) 2D array nonsampled format:R32ui - 131: TypePointer UniformConstant 130 - 132(g_tTex16): 131(ptr) Variable UniformConstant - 133: TypeImage 14(int) 2D array nonsampled format:Rg16i - 134: TypePointer UniformConstant 133 - 135(g_tTex17): 134(ptr) Variable UniformConstant - 136: TypeImage 14(int) 2D array nonsampled format:R16i - 137: TypePointer UniformConstant 136 - 138(g_tTex18): 137(ptr) Variable UniformConstant - 139: TypeImage 14(int) 2D array nonsampled format:Rg32i - 140: TypePointer UniformConstant 139 - 141(g_tTex19): 140(ptr) Variable UniformConstant - 142: TypeImage 14(int) 2D array nonsampled format:Rg8i - 143: TypePointer UniformConstant 142 - 144(g_tTex20): 143(ptr) Variable UniformConstant - 145: TypeImage 14(int) 2D array nonsampled format:Rg8ui - 146: TypePointer UniformConstant 145 - 147(g_tTex21): 146(ptr) Variable UniformConstant - 148: TypeImage 14(int) 2D array nonsampled format:Rgba32ui - 149: TypePointer UniformConstant 148 - 150(g_tTex22): 149(ptr) Variable UniformConstant - 151: TypeImage 14(int) 2D array nonsampled format:Rgba16ui - 152: TypePointer UniformConstant 151 - 153(g_tTex23): 152(ptr) Variable UniformConstant - 154: TypeImage 14(int) 2D array nonsampled format:Rg32ui - 155: TypePointer UniformConstant 154 - 156(g_tTex24): 155(ptr) Variable UniformConstant - 157: TypeImage 14(int) 2D array nonsampled format:Rg16ui - 158: TypePointer UniformConstant 157 - 159(g_tTex25): 158(ptr) Variable UniformConstant - 4(main): 2 Function None 3 - 5: Label - 26(flattenTemp): 12(ptr) Variable Function - 27:8(PS_OUTPUT) FunctionCall 10(@main() - Store 26(flattenTemp) 27 - 30: 18(ptr) AccessChain 26(flattenTemp) 15 - 31: 7(fvec4) Load 30 - Store 29(@entryPointOutput.Color) 31 - 34: 21(ptr) AccessChain 26(flattenTemp) 20 - 35: 6(float) Load 34 - Store 33(@entryPointOutput.Depth) 35 - Return - FunctionEnd - 10(@main():8(PS_OUTPUT) Function None 9 - 11: Label - 13(psout): 12(ptr) Variable Function - 19: 18(ptr) AccessChain 13(psout) 15 - Store 19 17 - 22: 21(ptr) AccessChain 13(psout) 20 - Store 22 16 - 23:8(PS_OUTPUT) Load 13(psout) - ReturnValue 23 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.frag.out b/deps/glslang/Test/baseResults/hlsl.frag.out deleted file mode 100644 index b0e6e4df..00000000 --- a/deps/glslang/Test/baseResults/hlsl.frag.out +++ /dev/null @@ -1,161 +0,0 @@ -hlsl.frag -Shader version: 450 -gl_FragCoord origin is upper left -0:? Sequence -0:1 move second child to first child (temp 4-component vector of float) -0:1 'AmbientColor' (temp 4-component vector of float) -0:? Constant: -0:? 1.000000 -0:? 0.500000 -0:? 0.000000 -0:? 1.000000 -0:2 move second child to first child (temp float) -0:2 'AmbientIntensity' (temp float) -0:2 Constant: -0:2 0.100000 -0:13 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) -0:5 Function Parameters: -0:5 'input' (in 4-component vector of float) -0:? Sequence -0:6 Branch: Return with expression -0:6 add (temp 4-component vector of float) -0:6 vector-scale (temp 4-component vector of float) -0:6 'input' (in 4-component vector of float) -0:6 'AmbientIntensity' (temp float) -0:6 'AmbientColor' (temp 4-component vector of float) -0:7 Branch: Return with expression -0:7 add (temp 4-component vector of float) -0:7 component-wise multiply (temp 4-component vector of float) -0:7 'input' (in 4-component vector of float) -0:7 'input' (in 4-component vector of float) -0:7 component-wise multiply (temp 4-component vector of float) -0:7 'input' (in 4-component vector of float) -0:7 'input' (in 4-component vector of float) -0:8 Branch: Return with expression -0:8 add (temp 4-component vector of float) -0:8 add (temp 4-component vector of float) -0:8 'input' (in 4-component vector of float) -0:8 component-wise multiply (temp 4-component vector of float) -0:8 'input' (in 4-component vector of float) -0:8 'input' (in 4-component vector of float) -0:8 'input' (in 4-component vector of float) -0:9 Branch: Return with expression -0:9 component-wise multiply (temp 4-component vector of float) -0:9 Pre-Increment (temp 4-component vector of float) -0:9 'input' (in 4-component vector of float) -0:9 Negate value (temp 4-component vector of float) -0:9 Negate value (temp 4-component vector of float) -0:9 Pre-Decrement (temp 4-component vector of float) -0:9 'input' (in 4-component vector of float) -0:10 Branch: Return with expression -0:10 add (temp 4-component vector of float) -0:10 Post-Increment (temp 4-component vector of float) -0:10 'input' (in 4-component vector of float) -0:10 Pre-Increment (temp 4-component vector of float) -0:10 'input' (in 4-component vector of float) -0:11 Branch: Return with expression -0:11 sine (global 4-component vector of float) -0:11 'input' (in 4-component vector of float) -0:? Linker Objects -0:? 'AmbientColor' (temp 4-component vector of float) -0:? 'AmbientIntensity' (temp float) - - -Linked fragment stage: - - -Shader version: 450 -gl_FragCoord origin is upper left -0:? Sequence -0:1 move second child to first child (temp 4-component vector of float) -0:1 'AmbientColor' (temp 4-component vector of float) -0:? Constant: -0:? 1.000000 -0:? 0.500000 -0:? 0.000000 -0:? 1.000000 -0:2 move second child to first child (temp float) -0:2 'AmbientIntensity' (temp float) -0:2 Constant: -0:2 0.100000 -0:13 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) -0:5 Function Parameters: -0:5 'input' (in 4-component vector of float) -0:? Sequence -0:6 Branch: Return with expression -0:6 add (temp 4-component vector of float) -0:6 vector-scale (temp 4-component vector of float) -0:6 'input' (in 4-component vector of float) -0:6 'AmbientIntensity' (temp float) -0:6 'AmbientColor' (temp 4-component vector of float) -0:7 Branch: Return with expression -0:7 add (temp 4-component vector of float) -0:7 component-wise multiply (temp 4-component vector of float) -0:7 'input' (in 4-component vector of float) -0:7 'input' (in 4-component vector of float) -0:7 component-wise multiply (temp 4-component vector of float) -0:7 'input' (in 4-component vector of float) -0:7 'input' (in 4-component vector of float) -0:8 Branch: Return with expression -0:8 add (temp 4-component vector of float) -0:8 add (temp 4-component vector of float) -0:8 'input' (in 4-component vector of float) -0:8 component-wise multiply (temp 4-component vector of float) -0:8 'input' (in 4-component vector of float) -0:8 'input' (in 4-component vector of float) -0:8 'input' (in 4-component vector of float) -0:9 Branch: Return with expression -0:9 component-wise multiply (temp 4-component vector of float) -0:9 Pre-Increment (temp 4-component vector of float) -0:9 'input' (in 4-component vector of float) -0:9 Negate value (temp 4-component vector of float) -0:9 Negate value (temp 4-component vector of float) -0:9 Pre-Decrement (temp 4-component vector of float) -0:9 'input' (in 4-component vector of float) -0:10 Branch: Return with expression -0:10 add (temp 4-component vector of float) -0:10 Post-Increment (temp 4-component vector of float) -0:10 'input' (in 4-component vector of float) -0:10 Pre-Increment (temp 4-component vector of float) -0:10 'input' (in 4-component vector of float) -0:11 Branch: Return with expression -0:11 sine (global 4-component vector of float) -0:11 'input' (in 4-component vector of float) -0:? Linker Objects -0:? 'AmbientColor' (temp 4-component vector of float) -0:? 'AmbientIntensity' (temp float) - -// Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 58 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 9 - ExecutionMode 4 OriginUpperLeft - Source HLSL 450 - Name 4 "PixelShaderFunction" - Name 9 "input" - Name 12 "AmbientIntensity" - Name 16 "AmbientColor" - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Input 7(fvec4) - 9(input): 8(ptr) Variable Input - 11: TypePointer Function 6(float) - 15: TypePointer Function 7(fvec4) - 37: 6(float) Constant 1065353216 -4(PixelShaderFunction): 2 Function None 3 - 5: Label -12(AmbientIntensity): 11(ptr) Variable Function -16(AmbientColor): 15(ptr) Variable Function - 10: 7(fvec4) Load 9(input) - 13: 6(float) Load 12(AmbientIntensity) - 14: 7(fvec4) VectorTimesScalar 10 13 - 17: 7(fvec4) Load 16(AmbientColor) - 18: 7(fvec4) FAdd 14 17 - ReturnValue 18 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.fraggeom.frag.out b/deps/glslang/Test/baseResults/hlsl.fraggeom.frag.out deleted file mode 100644 index d86fa969..00000000 --- a/deps/glslang/Test/baseResults/hlsl.fraggeom.frag.out +++ /dev/null @@ -1,112 +0,0 @@ -hlsl.fraggeom.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:9 Function Definition: GS_Draw(struct-myVertex-vf41;struct-myVertex-vf41; ( temp void) -0:9 Function Parameters: -0:9 'IN' ( in structure{ temp 4-component vector of float pos}) -0:9 'OutputStream' ( out structure{ temp 4-component vector of float pos}) -0:? Sequence -0:10 Constant: -0:10 0.000000 -0:11 Constant: -0:11 0.000000 -0:15 Function Definition: @main( ( temp 4-component vector of float) -0:15 Function Parameters: -0:? Sequence -0:16 Branch: Return with expression -0:16 Constant: -0:16 0.000000 -0:16 0.000000 -0:16 0.000000 -0:16 0.000000 -0:15 Function Definition: main( ( temp void) -0:15 Function Parameters: -0:? Sequence -0:15 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:15 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:9 Function Definition: GS_Draw(struct-myVertex-vf41;struct-myVertex-vf41; ( temp void) -0:9 Function Parameters: -0:9 'IN' ( in structure{ temp 4-component vector of float pos}) -0:9 'OutputStream' ( out structure{ temp 4-component vector of float pos}) -0:? Sequence -0:10 Constant: -0:10 0.000000 -0:11 Constant: -0:11 0.000000 -0:15 Function Definition: @main( ( temp 4-component vector of float) -0:15 Function Parameters: -0:? Sequence -0:16 Branch: Return with expression -0:16 Constant: -0:16 0.000000 -0:16 0.000000 -0:16 0.000000 -0:16 0.000000 -0:15 Function Definition: main( ( temp void) -0:15 Function Parameters: -0:? Sequence -0:15 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:15 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 25 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 23 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 8 "myVertex" - MemberName 8(myVertex) 0 "pos" - Name 13 "GS_Draw(struct-myVertex-vf41;struct-myVertex-vf41;" - Name 11 "IN" - Name 12 "OutputStream" - Name 16 "@main(" - Name 23 "@entryPointOutput" - Decorate 23(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8(myVertex): TypeStruct 7(fvec4) - 9: TypePointer Function 8(myVertex) - 10: TypeFunction 2 9(ptr) 9(ptr) - 15: TypeFunction 7(fvec4) - 18: 6(float) Constant 0 - 19: 7(fvec4) ConstantComposite 18 18 18 18 - 22: TypePointer Output 7(fvec4) -23(@entryPointOutput): 22(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 24: 7(fvec4) FunctionCall 16(@main() - Store 23(@entryPointOutput) 24 - Return - FunctionEnd -13(GS_Draw(struct-myVertex-vf41;struct-myVertex-vf41;): 2 Function None 10 - 11(IN): 9(ptr) FunctionParameter -12(OutputStream): 9(ptr) FunctionParameter - 14: Label - Return - FunctionEnd - 16(@main(): 7(fvec4) Function None 15 - 17: Label - ReturnValue 19 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.function.frag.out b/deps/glslang/Test/baseResults/hlsl.function.frag.out deleted file mode 100644 index faa31479..00000000 --- a/deps/glslang/Test/baseResults/hlsl.function.frag.out +++ /dev/null @@ -1,119 +0,0 @@ -hlsl.function.frag -ERROR: 0:24: 'fun1' : unknown variable -ERROR: 0:24: 'return' : type does not match, or is not convertible to, the function's return type -ERROR: 2 compilation errors. No code generated. - - -Shader version: 500 -gl_FragCoord origin is upper left -ERROR: node is still EOpNull! -0:2 Function Definition: fun0( ( temp 4-component vector of float) -0:2 Function Parameters: -0:? Sequence -0:3 Branch: Return with expression -0:3 Constant: -0:3 1.000000 -0:3 1.000000 -0:3 1.000000 -0:3 1.000000 -0:7 Function Definition: fun2(vf4; ( temp uint) -0:7 Function Parameters: -0:7 'col' ( in 4-component vector of float) -0:? Sequence -0:8 Branch: Return with expression -0:8 Constant: -0:8 7 (const uint) -0:12 Function Definition: fun4(u1;u1; ( temp 4-component vector of float) -0:12 Function Parameters: -0:12 'id1' ( in uint) -0:12 'id2' ( uniform uint) -0:? Sequence -0:13 Branch: Return with expression -0:13 Construct vec4 ( temp 4-component vector of float) -0:13 Convert uint to float ( temp float) -0:13 component-wise multiply ( temp uint) -0:13 'id1' ( in uint) -0:13 'id2' ( uniform uint) -0:17 Function Definition: fun1(i1; ( temp 4-component vector of float) -0:17 Function Parameters: -0:17 'index' ( in int) -0:? Sequence -0:18 Sequence -0:18 move second child to first child ( temp uint) -0:18 'entityId' ( temp uint) -0:18 Function Call: fun2(vf4; ( temp uint) -0:18 Function Call: fun0( ( temp 4-component vector of float) -0:19 Branch: Return with expression -0:19 Function Call: fun4(u1;u1; ( temp 4-component vector of float) -0:19 'entityId' ( temp uint) -0:19 'entityId' ( temp uint) -0:23 Function Definition: @main( ( temp int) -0:23 Function Parameters: -0:23 Function Definition: main( ( temp void) -0:23 Function Parameters: -0:? Sequence -0:23 move second child to first child ( temp int) -0:? '@entryPointOutput' (layout( location=0) out int) -0:23 Function Call: @main( ( temp int) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out int) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -ERROR: node is still EOpNull! -0:2 Function Definition: fun0( ( temp 4-component vector of float) -0:2 Function Parameters: -0:? Sequence -0:3 Branch: Return with expression -0:3 Constant: -0:3 1.000000 -0:3 1.000000 -0:3 1.000000 -0:3 1.000000 -0:7 Function Definition: fun2(vf4; ( temp uint) -0:7 Function Parameters: -0:7 'col' ( in 4-component vector of float) -0:? Sequence -0:8 Branch: Return with expression -0:8 Constant: -0:8 7 (const uint) -0:12 Function Definition: fun4(u1;u1; ( temp 4-component vector of float) -0:12 Function Parameters: -0:12 'id1' ( in uint) -0:12 'id2' ( uniform uint) -0:? Sequence -0:13 Branch: Return with expression -0:13 Construct vec4 ( temp 4-component vector of float) -0:13 Convert uint to float ( temp float) -0:13 component-wise multiply ( temp uint) -0:13 'id1' ( in uint) -0:13 'id2' ( uniform uint) -0:17 Function Definition: fun1(i1; ( temp 4-component vector of float) -0:17 Function Parameters: -0:17 'index' ( in int) -0:? Sequence -0:18 Sequence -0:18 move second child to first child ( temp uint) -0:18 'entityId' ( temp uint) -0:18 Function Call: fun2(vf4; ( temp uint) -0:18 Function Call: fun0( ( temp 4-component vector of float) -0:19 Branch: Return with expression -0:19 Function Call: fun4(u1;u1; ( temp 4-component vector of float) -0:19 'entityId' ( temp uint) -0:19 'entityId' ( temp uint) -0:23 Function Definition: @main( ( temp int) -0:23 Function Parameters: -0:23 Function Definition: main( ( temp void) -0:23 Function Parameters: -0:? Sequence -0:23 move second child to first child ( temp int) -0:? '@entryPointOutput' (layout( location=0) out int) -0:23 Function Call: @main( ( temp int) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out int) - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/hlsl.gather.array.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.gather.array.dx10.frag.out deleted file mode 100644 index e39d5a2a..00000000 --- a/deps/glslang/Test/baseResults/hlsl.gather.array.dx10.frag.out +++ /dev/null @@ -1,461 +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:29 Constant: -0:29 0.100000 -0:29 0.200000 -0:29 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 Constant: -0:30 0.300000 -0:30 0.400000 -0:30 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 Constant: -0:31 0.500000 -0:31 0.600000 -0:31 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 Constant: -0:35 0.100000 -0:35 0.200000 -0:35 0.300000 -0:35 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 Constant: -0:36 0.400000 -0:36 0.500000 -0:36 0.600000 -0:36 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 Constant: -0:37 0.700000 -0:37 0.800000 -0:37 0.900000 -0:37 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:29 Constant: -0:29 0.100000 -0:29 0.200000 -0:29 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 Constant: -0:30 0.300000 -0:30 0.400000 -0:30 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 Constant: -0:31 0.500000 -0:31 0.600000 -0:31 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 Constant: -0:35 0.100000 -0:35 0.200000 -0:35 0.300000 -0:35 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 Constant: -0:36 0.400000 -0:36 0.500000 -0:36 0.600000 -0:36 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 Constant: -0:37 0.700000 -0:37 0.800000 -0:37 0.900000 -0:37 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): 8000a -// 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 16(g_tTex2df4a) Binding 2 - Decorate 20(g_sSamp) DescriptorSet 0 - Decorate 20(g_sSamp) Binding 0 - Decorate 37(g_tTex2di4a) DescriptorSet 0 - Decorate 37(g_tTex2di4a) Binding 3 - Decorate 52(g_tTex2du4a) DescriptorSet 0 - Decorate 52(g_tTex2du4a) Binding 4 - Decorate 64(g_tTexcdf4a) DescriptorSet 0 - Decorate 64(g_tTexcdf4a) Binding 5 - Decorate 74(g_tTexcdi4a) DescriptorSet 0 - Decorate 74(g_tTexcdi4a) Binding 6 - Decorate 84(g_tTexcdu4a) DescriptorSet 0 - Decorate 84(g_tTexcdu4a) Binding 7 - 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 120(g_tTex1di4a) Binding 0 - Decorate 123(g_tTex1du4a) DescriptorSet 0 - Decorate 123(g_tTex1du4a) 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) 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/Test/baseResults/hlsl.gather.basic.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.gather.basic.dx10.frag.out deleted file mode 100644 index 99efd614..00000000 --- a/deps/glslang/Test/baseResults/hlsl.gather.basic.dx10.frag.out +++ /dev/null @@ -1,479 +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:34 Constant: -0:34 0.100000 -0:34 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 Constant: -0:35 0.300000 -0:35 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 Constant: -0:36 0.500000 -0:36 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 Constant: -0:40 0.100000 -0:40 0.200000 -0:40 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 Constant: -0:41 0.400000 -0:41 0.500000 -0:41 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 Constant: -0:42 0.700000 -0:42 0.800000 -0:42 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:34 Constant: -0:34 0.100000 -0:34 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 Constant: -0:35 0.300000 -0:35 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 Constant: -0:36 0.500000 -0:36 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 Constant: -0:40 0.100000 -0:40 0.200000 -0:40 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 Constant: -0:41 0.400000 -0:41 0.500000 -0:41 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 Constant: -0:42 0.700000 -0:42 0.800000 -0:42 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): 8000a -// 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 16(g_tTex2df4) Binding 2 - Decorate 20(g_sSamp) DescriptorSet 0 - Decorate 20(g_sSamp) Binding 0 - Decorate 36(g_tTex2di4) DescriptorSet 0 - Decorate 36(g_tTex2di4) Binding 3 - Decorate 51(g_tTex2du4) DescriptorSet 0 - Decorate 51(g_tTex2du4) Binding 4 - Decorate 63(g_tTexcdf4) DescriptorSet 0 - Decorate 63(g_tTexcdf4) Binding 5 - Decorate 74(g_tTexcdi4) DescriptorSet 0 - Decorate 74(g_tTexcdi4) Binding 6 - Decorate 84(g_tTexcdu4) DescriptorSet 0 - Decorate 84(g_tTexcdu4) Binding 7 - Decorate 108(@entryPointOutput.Color) Location 0 - Decorate 112(@entryPointOutput.Depth) BuiltIn FragDepth - Decorate 115(g_sSamp2d) DescriptorSet 0 - Decorate 115(g_sSamp2d) Binding 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 122(g_tTex1di4) Binding 0 - Decorate 125(g_tTex1du4) DescriptorSet 0 - Decorate 125(g_tTex1du4) Binding 0 - Decorate 128(g_tTex3df4) DescriptorSet 0 - Decorate 128(g_tTex3df4) Binding 0 - Decorate 131(g_tTex3di4) DescriptorSet 0 - Decorate 131(g_tTex3di4) Binding 0 - Decorate 134(g_tTex3du4) DescriptorSet 0 - Decorate 134(g_tTex3du4) 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) 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/Test/baseResults/hlsl.gather.basic.dx10.vert.out b/deps/glslang/Test/baseResults/hlsl.gather.basic.dx10.vert.out deleted file mode 100644 index 96525e0c..00000000 --- a/deps/glslang/Test/baseResults/hlsl.gather.basic.dx10.vert.out +++ /dev/null @@ -1,423 +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:33 Constant: -0:33 0.100000 -0:33 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 Constant: -0:34 0.300000 -0:34 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 Constant: -0:35 0.500000 -0:35 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 Constant: -0:39 0.100000 -0:39 0.200000 -0:39 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 Constant: -0:40 0.400000 -0:40 0.500000 -0:40 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 Constant: -0:41 0.700000 -0:41 0.800000 -0:41 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:43 Constant: -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 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:33 Constant: -0:33 0.100000 -0:33 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 Constant: -0:34 0.300000 -0:34 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 Constant: -0:35 0.500000 -0:35 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 Constant: -0:39 0.100000 -0:39 0.200000 -0:39 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 Constant: -0:40 0.400000 -0:40 0.500000 -0:40 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 Constant: -0:41 0.700000 -0:41 0.800000 -0:41 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:43 Constant: -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 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): 8000a -// 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 16(g_tTex2df4) Binding 2 - Decorate 20(g_sSamp) DescriptorSet 0 - Decorate 20(g_sSamp) Binding 0 - Decorate 36(g_tTex2di4) DescriptorSet 0 - Decorate 36(g_tTex2di4) Binding 3 - Decorate 51(g_tTex2du4) DescriptorSet 0 - Decorate 51(g_tTex2du4) Binding 4 - Decorate 63(g_tTexcdf4) DescriptorSet 0 - Decorate 63(g_tTexcdf4) Binding 5 - Decorate 74(g_tTexcdi4) DescriptorSet 0 - Decorate 74(g_tTexcdi4) Binding 6 - Decorate 84(g_tTexcdu4) DescriptorSet 0 - Decorate 84(g_tTexcdu4) Binding 7 - Decorate 103(@entryPointOutput.Pos) BuiltIn Position - Decorate 106(g_sSamp2d) DescriptorSet 0 - Decorate 106(g_sSamp2d) Binding 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 113(g_tTex1di4) Binding 0 - Decorate 116(g_tTex1du4) DescriptorSet 0 - Decorate 116(g_tTex1du4) Binding 0 - Decorate 119(g_tTex3df4) DescriptorSet 0 - Decorate 119(g_tTex3df4) Binding 0 - Decorate 122(g_tTex3di4) DescriptorSet 0 - Decorate 122(g_tTex3di4) Binding 0 - Decorate 125(g_tTex3du4) DescriptorSet 0 - Decorate 125(g_tTex3du4) 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: 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/Test/baseResults/hlsl.gather.offset.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.gather.offset.dx10.frag.out deleted file mode 100644 index 59bd8da8..00000000 --- a/deps/glslang/Test/baseResults/hlsl.gather.offset.dx10.frag.out +++ /dev/null @@ -1,399 +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:33 Constant: -0:33 0.100000 -0:33 0.200000 -0:33 Constant: -0:33 1 (const int) -0:33 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 Constant: -0:34 0.300000 -0:34 0.400000 -0:34 Constant: -0:34 1 (const int) -0:34 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 Constant: -0:35 0.500000 -0:35 0.600000 -0:35 Constant: -0:35 1 (const int) -0:35 -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:33 Constant: -0:33 0.100000 -0:33 0.200000 -0:33 Constant: -0:33 1 (const int) -0:33 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 Constant: -0:34 0.300000 -0:34 0.400000 -0:34 Constant: -0:34 1 (const int) -0:34 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 Constant: -0:35 0.500000 -0:35 0.600000 -0:35 Constant: -0:35 1 (const int) -0:35 -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): 8000a -// 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 16(g_tTex2df4) Binding 2 - Decorate 20(g_sSamp) DescriptorSet 0 - Decorate 20(g_sSamp) Binding 0 - Decorate 39(g_tTex2di4) DescriptorSet 0 - Decorate 39(g_tTex2di4) Binding 3 - Decorate 55(g_tTex2du4) DescriptorSet 0 - Decorate 55(g_tTex2du4) Binding 4 - 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 92(g_tTex1di4) Binding 0 - Decorate 95(g_tTex1du4) DescriptorSet 0 - Decorate 95(g_tTex1du4) Binding 0 - Decorate 98(g_tTex3df4) DescriptorSet 0 - Decorate 98(g_tTex3df4) Binding 0 - Decorate 101(g_tTex3di4) DescriptorSet 0 - Decorate 101(g_tTex3di4) Binding 0 - Decorate 104(g_tTex3du4) DescriptorSet 0 - Decorate 104(g_tTex3du4) Binding 0 - Decorate 107(g_tTexcdf4) DescriptorSet 0 - Decorate 107(g_tTexcdf4) Binding 0 - Decorate 110(g_tTexcdi4) DescriptorSet 0 - Decorate 110(g_tTexcdi4) Binding 0 - Decorate 113(g_tTexcdu4) DescriptorSet 0 - Decorate 113(g_tTexcdu4) 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) 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/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out deleted file mode 100644 index 942bd923..00000000 --- a/deps/glslang/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out +++ /dev/null @@ -1,358 +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:25 Constant: -0:25 0.100000 -0:25 0.200000 -0:25 0.300000 -0:25 Constant: -0:25 1 (const int) -0:25 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 Constant: -0:26 0.300000 -0:26 0.400000 -0:26 0.400000 -0:26 Constant: -0:26 1 (const int) -0:26 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 Constant: -0:27 0.500000 -0:27 0.600000 -0:27 0.700000 -0:27 Constant: -0:27 1 (const int) -0:27 -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:25 Constant: -0:25 0.100000 -0:25 0.200000 -0:25 0.300000 -0:25 Constant: -0:25 1 (const int) -0:25 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 Constant: -0:26 0.300000 -0:26 0.400000 -0:26 0.400000 -0:26 Constant: -0:26 1 (const int) -0:26 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 Constant: -0:27 0.500000 -0:27 0.600000 -0:27 0.700000 -0:27 Constant: -0:27 1 (const int) -0:27 -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): 8000a -// 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 16(g_tTex2df4) Binding 2 - Decorate 20(g_sSamp) DescriptorSet 0 - Decorate 20(g_sSamp) Binding 0 - Decorate 40(g_tTex2di4) DescriptorSet 0 - Decorate 40(g_tTex2di4) Binding 3 - Decorate 55(g_tTex2du4) DescriptorSet 0 - Decorate 55(g_tTex2du4) Binding 4 - 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 93(g_tTex1di4) Binding 0 - Decorate 96(g_tTex1du4) DescriptorSet 0 - Decorate 96(g_tTex1du4) 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) 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/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out deleted file mode 100644 index 75ea0368..00000000 --- a/deps/glslang/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out +++ /dev/null @@ -1,1129 +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): 8000a -// 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 16(g_tTex2df4a) Binding 1 - 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 28 Binding 7 - Decorate 41(g_tTex2di4a) DescriptorSet 0 - Decorate 41(g_tTex2di4a) Binding 2 - Decorate 55(g_tTex2du4a) DescriptorSet 0 - Decorate 55(g_tTex2du4a) Binding 3 - Decorate 131(g_tTexcdf4a) DescriptorSet 0 - Decorate 131(g_tTexcdf4a) Binding 4 - Decorate 143(g_tTexcdi4a) DescriptorSet 0 - Decorate 143(g_tTexcdi4a) Binding 5 - Decorate 154(g_tTexcdu4a) DescriptorSet 0 - Decorate 154(g_tTexcdu4a) Binding 6 - Decorate 238(@entryPointOutput.Color) Location 0 - Decorate 242(@entryPointOutput.Depth) BuiltIn FragDepth - Decorate 245(g_sSamp2d) DescriptorSet 0 - Decorate 245(g_sSamp2d) Binding 0 - Decorate 248(g_tTex1df4a) DescriptorSet 0 - Decorate 248(g_tTex1df4a) Binding 0 - Decorate 251(g_tTex1di4a) DescriptorSet 0 - Decorate 251(g_tTex1di4a) Binding 0 - Decorate 254(g_tTex1du4a) DescriptorSet 0 - Decorate 254(g_tTex1du4a) 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) 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/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out deleted file mode 100644 index 886ad737..00000000 --- a/deps/glslang/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out +++ /dev/null @@ -1,1158 +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): 8000a -// 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 16(g_tTex2df4) Binding 2 - 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 28 Binding 8 - Decorate 41(g_tTex2di4) DescriptorSet 0 - Decorate 41(g_tTex2di4) Binding 3 - Decorate 55(g_tTex2du4) DescriptorSet 0 - Decorate 55(g_tTex2du4) Binding 4 - Decorate 131(g_tTexcdf4) DescriptorSet 0 - Decorate 131(g_tTexcdf4) Binding 5 - Decorate 143(g_tTexcdi4) DescriptorSet 0 - Decorate 143(g_tTexcdi4) Binding 6 - Decorate 154(g_tTexcdu4) DescriptorSet 0 - Decorate 154(g_tTexcdu4) Binding 7 - Decorate 238(@entryPointOutput.Color) Location 0 - Decorate 242(@entryPointOutput.Depth) BuiltIn FragDepth - Decorate 245(g_sSamp2d) DescriptorSet 0 - Decorate 245(g_sSamp2d) Binding 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 252(g_tTex1di4) Binding 0 - Decorate 255(g_tTex1du4) DescriptorSet 0 - Decorate 255(g_tTex1du4) Binding 0 - Decorate 258(g_tTex3df4) DescriptorSet 0 - Decorate 258(g_tTex3df4) Binding 0 - Decorate 261(g_tTex3di4) DescriptorSet 0 - Decorate 261(g_tTex3di4) Binding 0 - Decorate 264(g_tTex3du4) DescriptorSet 0 - Decorate 264(g_tTex3du4) 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) 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/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out deleted file mode 100644 index b86cd222..00000000 --- a/deps/glslang/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out +++ /dev/null @@ -1,1806 +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) - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// 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 16(g_tTex2df4) Binding 2 - 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 32 Binding 5 - Decorate 47(g_tTex2di4) DescriptorSet 0 - Decorate 47(g_tTex2di4) Binding 3 - Decorate 63(g_tTex2du4) DescriptorSet 0 - Decorate 63(g_tTex2du4) Binding 4 - Decorate 363(@entryPointOutput.Color) Location 0 - Decorate 367(@entryPointOutput.Depth) BuiltIn FragDepth - Decorate 370(g_sSamp2d) DescriptorSet 0 - Decorate 370(g_sSamp2d) Binding 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 377(g_tTex1di4) Binding 0 - Decorate 380(g_tTex1du4) DescriptorSet 0 - Decorate 380(g_tTex1du4) Binding 0 - Decorate 383(g_tTex3df4) DescriptorSet 0 - Decorate 383(g_tTex3df4) Binding 0 - Decorate 386(g_tTex3di4) DescriptorSet 0 - Decorate 386(g_tTex3di4) Binding 0 - Decorate 389(g_tTex3du4) DescriptorSet 0 - Decorate 389(g_tTex3du4) Binding 0 - Decorate 392(g_tTexcdf4) DescriptorSet 0 - Decorate 392(g_tTexcdf4) Binding 0 - Decorate 395(g_tTexcdi4) DescriptorSet 0 - Decorate 395(g_tTexcdi4) Binding 0 - Decorate 398(g_tTexcdu4) DescriptorSet 0 - Decorate 398(g_tTexcdu4) 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) 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/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out deleted file mode 100644 index 1fa728a7..00000000 --- a/deps/glslang/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out +++ /dev/null @@ -1,1777 +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) - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// 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 16(g_tTex2df4a) Binding 1 - 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 32 Binding 4 - Decorate 47(g_tTex2di4a) DescriptorSet 0 - Decorate 47(g_tTex2di4a) Binding 2 - Decorate 63(g_tTex2du4a) DescriptorSet 0 - Decorate 63(g_tTex2du4a) Binding 3 - Decorate 363(@entryPointOutput.Color) Location 0 - Decorate 367(@entryPointOutput.Depth) BuiltIn FragDepth - Decorate 370(g_sSamp2d) DescriptorSet 0 - Decorate 370(g_sSamp2d) Binding 0 - Decorate 373(g_tTex1df4a) DescriptorSet 0 - Decorate 373(g_tTex1df4a) Binding 0 - Decorate 376(g_tTex1di4a) DescriptorSet 0 - Decorate 376(g_tTex1di4a) Binding 0 - Decorate 379(g_tTex1du4a) DescriptorSet 0 - Decorate 379(g_tTex1du4a) Binding 0 - Decorate 382(g_tTexcdf4a) DescriptorSet 0 - Decorate 382(g_tTexcdf4a) Binding 0 - Decorate 385(g_tTexcdi4a) DescriptorSet 0 - Decorate 385(g_tTexcdi4a) Binding 0 - Decorate 388(g_tTexcdu4a) DescriptorSet 0 - Decorate 388(g_tTexcdu4a) 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) 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/Test/baseResults/hlsl.gathercmpRGBA.offset.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.gathercmpRGBA.offset.dx10.frag.out deleted file mode 100644 index a858f15d..00000000 --- a/deps/glslang/Test/baseResults/hlsl.gathercmpRGBA.offset.dx10.frag.out +++ /dev/null @@ -1,723 +0,0 @@ -hlsl.gathercmpRGBA.offset.dx10.frag -Shader version: 500 -gl_FragCoord origin is upper left -using depth_any -0:? Sequence -0:38 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:38 Function Parameters: -0:? Sequence -0:45 Sequence -0:45 move second child to first child ( temp 4-component vector of float) -0:45 'txval001' ( temp 4-component vector of float) -0:45 textureGatherOffset ( temp 4-component vector of float) -0:45 Construct combined texture-sampler ( temp sampler2DShadow) -0:45 'g_tTex2df4' ( uniform texture2DShadow) -0:45 'g_sSampCmp' (layout( binding=0) uniform sampler) -0:45 c2: direct index for structure ( uniform 2-component vector of float) -0:45 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) -0:45 Constant: -0:45 1 (const uint) -0:45 Constant: -0:45 0.750000 -0:45 Constant: -0:45 1 (const int) -0:45 0 (const int) -0:46 Sequence -0:46 move second child to first child ( temp 4-component vector of int) -0:46 'txval011' ( temp 4-component vector of int) -0:46 textureGatherOffset ( temp 4-component vector of int) -0:46 Construct combined texture-sampler ( temp isampler2DShadow) -0:46 'g_tTex2di4' ( uniform itexture2DShadow) -0:46 'g_sSampCmp' (layout( binding=0) uniform sampler) -0:46 c2: direct index for structure ( uniform 2-component vector of float) -0:46 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) -0:46 Constant: -0:46 1 (const uint) -0:46 Constant: -0:46 0.750000 -0:46 Constant: -0:46 1 (const int) -0:46 -1 (const int) -0:47 Sequence -0:47 move second child to first child ( temp 4-component vector of uint) -0:47 'txval021' ( temp 4-component vector of uint) -0:47 textureGatherOffset ( temp 4-component vector of uint) -0:47 Construct combined texture-sampler ( temp usampler2DShadow) -0:47 'g_tTex2du4' ( uniform utexture2DShadow) -0:47 'g_sSampCmp' (layout( binding=0) uniform sampler) -0:47 c2: direct index for structure ( uniform 2-component vector of float) -0:47 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) -0:47 Constant: -0:47 1 (const uint) -0:47 Constant: -0:47 0.750000 -0:47 Constant: -0:47 1 (const int) -0:47 1 (const int) -0:49 Sequence -0:49 move second child to first child ( temp 4-component vector of float) -0:49 'txval004' ( temp 4-component vector of float) -0:49 textureGatherOffsets ( temp 4-component vector of float) -0:49 Construct combined texture-sampler ( temp sampler2DShadow) -0:49 'g_tTex2df4' ( uniform texture2DShadow) -0:49 'g_sSampCmp' (layout( binding=0) uniform sampler) -0:49 c2: direct index for structure ( uniform 2-component vector of float) -0:49 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) -0:49 Constant: -0:49 1 (const uint) -0:49 Constant: -0:49 0.750000 -0:49 Constant: -0:49 1 (const int) -0:49 0 (const int) -0:49 1 (const int) -0:49 0 (const int) -0:49 1 (const int) -0:49 0 (const int) -0:49 1 (const int) -0:49 0 (const int) -0:50 Sequence -0:50 move second child to first child ( temp 4-component vector of int) -0:50 'txval014' ( temp 4-component vector of int) -0:50 textureGatherOffsets ( temp 4-component vector of int) -0:50 Construct combined texture-sampler ( temp isampler2DShadow) -0:50 'g_tTex2di4' ( uniform itexture2DShadow) -0:50 'g_sSampCmp' (layout( binding=0) uniform sampler) -0:50 c2: direct index for structure ( uniform 2-component vector of float) -0:50 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) -0:50 Constant: -0:50 1 (const uint) -0:50 Constant: -0:50 0.750000 -0:50 Constant: -0:50 1 (const int) -0:50 -1 (const int) -0:50 1 (const int) -0:50 -1 (const int) -0:50 1 (const int) -0:50 -1 (const int) -0:50 1 (const int) -0:50 -1 (const int) -0:51 Sequence -0:51 move second child to first child ( temp 4-component vector of uint) -0:51 'txval024' ( temp 4-component vector of uint) -0:51 textureGatherOffsets ( temp 4-component vector of uint) -0:51 Construct combined texture-sampler ( temp usampler2DShadow) -0:51 'g_tTex2du4' ( uniform utexture2DShadow) -0:51 'g_sSampCmp' (layout( binding=0) uniform sampler) -0:51 c2: direct index for structure ( uniform 2-component vector of float) -0:51 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) -0:51 Constant: -0:51 1 (const uint) -0:51 Constant: -0:51 0.750000 -0:51 Constant: -0:51 1 (const int) -0:51 1 (const int) -0:51 1 (const int) -0:51 1 (const int) -0:51 1 (const int) -0:51 1 (const int) -0:51 1 (const int) -0:51 1 (const int) -0:53 Sequence -0:53 move second child to first child ( temp 4-component vector of float) -0:53 'txval401' ( temp 4-component vector of float) -0:53 textureGatherOffset ( temp 4-component vector of float) -0:53 Construct combined texture-sampler ( temp sampler2DShadow) -0:53 'g_tTex2df4' ( uniform texture2DShadow) -0:53 'g_sSampCmp' (layout( binding=0) uniform sampler) -0:53 c2: direct index for structure ( uniform 2-component vector of float) -0:53 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) -0:53 Constant: -0:53 1 (const uint) -0:53 Constant: -0:53 0.750000 -0:53 Constant: -0:53 1 (const int) -0:53 0 (const int) -0:54 Sequence -0:54 move second child to first child ( temp 4-component vector of int) -0:54 'txval411' ( temp 4-component vector of int) -0:54 textureGatherOffset ( temp 4-component vector of int) -0:54 Construct combined texture-sampler ( temp isampler2DShadow) -0:54 'g_tTex2di4' ( uniform itexture2DShadow) -0:54 'g_sSampCmp' (layout( binding=0) uniform sampler) -0:54 c2: direct index for structure ( uniform 2-component vector of float) -0:54 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) -0:54 Constant: -0:54 1 (const uint) -0:54 Constant: -0:54 0.750000 -0:54 Constant: -0:54 1 (const int) -0:54 -1 (const int) -0:55 Sequence -0:55 move second child to first child ( temp 4-component vector of uint) -0:55 'txval421' ( temp 4-component vector of uint) -0:55 textureGatherOffset ( temp 4-component vector of uint) -0:55 Construct combined texture-sampler ( temp usampler2DShadow) -0:55 'g_tTex2du4' ( uniform utexture2DShadow) -0:55 'g_sSampCmp' (layout( binding=0) uniform sampler) -0:55 c2: direct index for structure ( uniform 2-component vector of float) -0:55 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) -0:55 Constant: -0:55 1 (const uint) -0:55 Constant: -0:55 0.750000 -0:55 Constant: -0:55 1 (const int) -0:55 1 (const int) -0:110 move second child to first child ( temp 4-component vector of float) -0:110 Color: direct index for structure ( temp 4-component vector of float) -0:110 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:110 Constant: -0:110 0 (const int) -0:110 Constant: -0:110 1.000000 -0:110 1.000000 -0:110 1.000000 -0:110 1.000000 -0:111 move second child to first child ( temp float) -0:111 Depth: direct index for structure ( temp float) -0:111 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:111 Constant: -0:111 1 (const int) -0:111 Constant: -0:111 1.000000 -0:113 Branch: Return with expression -0:113 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:38 Function Definition: main( ( temp void) -0:38 Function Parameters: -0:? Sequence -0:38 Sequence -0:38 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:38 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:38 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) -0:38 Color: direct index for structure ( temp 4-component vector of float) -0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:38 Constant: -0:38 0 (const int) -0:38 move second child to first child ( temp float) -0:? '@entryPointOutput.Depth' ( out float FragDepth) -0:38 Depth: direct index for structure ( temp float) -0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:38 Constant: -0:38 1 (const int) -0:? Linker Objects -0:? 'g_sSampCmp' (layout( binding=0) uniform sampler) -0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) -0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) -0:? 'g_tTex1di4' ( uniform itexture1D) -0:? 'g_tTex1du4' ( uniform utexture1D) -0:? 'g_tTex2df4' ( uniform texture2DShadow) -0:? 'g_tTex2di4' ( uniform itexture2DShadow) -0:? 'g_tTex2du4' ( uniform utexture2DShadow) -0:? 'g_tTex3df4' ( uniform texture3D) -0:? 'g_tTex3di4' ( uniform itexture3D) -0:? 'g_tTex3du4' ( uniform utexture3D) -0:? 'g_tTexcdf4' ( uniform textureCube) -0:? 'g_tTexcdi4' ( uniform itextureCube) -0:? 'g_tTexcdu4' ( uniform utextureCube) -0:? 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) -0:? '@entryPointOutput.Depth' ( out float FragDepth) -0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -using depth_any -0:? Sequence -0:38 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:38 Function Parameters: -0:? Sequence -0:45 Sequence -0:45 move second child to first child ( temp 4-component vector of float) -0:45 'txval001' ( temp 4-component vector of float) -0:45 textureGatherOffset ( temp 4-component vector of float) -0:45 Construct combined texture-sampler ( temp sampler2DShadow) -0:45 'g_tTex2df4' ( uniform texture2DShadow) -0:45 'g_sSampCmp' (layout( binding=0) uniform sampler) -0:45 c2: direct index for structure ( uniform 2-component vector of float) -0:45 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) -0:45 Constant: -0:45 1 (const uint) -0:45 Constant: -0:45 0.750000 -0:45 Constant: -0:45 1 (const int) -0:45 0 (const int) -0:46 Sequence -0:46 move second child to first child ( temp 4-component vector of int) -0:46 'txval011' ( temp 4-component vector of int) -0:46 textureGatherOffset ( temp 4-component vector of int) -0:46 Construct combined texture-sampler ( temp isampler2DShadow) -0:46 'g_tTex2di4' ( uniform itexture2DShadow) -0:46 'g_sSampCmp' (layout( binding=0) uniform sampler) -0:46 c2: direct index for structure ( uniform 2-component vector of float) -0:46 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) -0:46 Constant: -0:46 1 (const uint) -0:46 Constant: -0:46 0.750000 -0:46 Constant: -0:46 1 (const int) -0:46 -1 (const int) -0:47 Sequence -0:47 move second child to first child ( temp 4-component vector of uint) -0:47 'txval021' ( temp 4-component vector of uint) -0:47 textureGatherOffset ( temp 4-component vector of uint) -0:47 Construct combined texture-sampler ( temp usampler2DShadow) -0:47 'g_tTex2du4' ( uniform utexture2DShadow) -0:47 'g_sSampCmp' (layout( binding=0) uniform sampler) -0:47 c2: direct index for structure ( uniform 2-component vector of float) -0:47 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) -0:47 Constant: -0:47 1 (const uint) -0:47 Constant: -0:47 0.750000 -0:47 Constant: -0:47 1 (const int) -0:47 1 (const int) -0:49 Sequence -0:49 move second child to first child ( temp 4-component vector of float) -0:49 'txval004' ( temp 4-component vector of float) -0:49 textureGatherOffsets ( temp 4-component vector of float) -0:49 Construct combined texture-sampler ( temp sampler2DShadow) -0:49 'g_tTex2df4' ( uniform texture2DShadow) -0:49 'g_sSampCmp' (layout( binding=0) uniform sampler) -0:49 c2: direct index for structure ( uniform 2-component vector of float) -0:49 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) -0:49 Constant: -0:49 1 (const uint) -0:49 Constant: -0:49 0.750000 -0:49 Constant: -0:49 1 (const int) -0:49 0 (const int) -0:49 1 (const int) -0:49 0 (const int) -0:49 1 (const int) -0:49 0 (const int) -0:49 1 (const int) -0:49 0 (const int) -0:50 Sequence -0:50 move second child to first child ( temp 4-component vector of int) -0:50 'txval014' ( temp 4-component vector of int) -0:50 textureGatherOffsets ( temp 4-component vector of int) -0:50 Construct combined texture-sampler ( temp isampler2DShadow) -0:50 'g_tTex2di4' ( uniform itexture2DShadow) -0:50 'g_sSampCmp' (layout( binding=0) uniform sampler) -0:50 c2: direct index for structure ( uniform 2-component vector of float) -0:50 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) -0:50 Constant: -0:50 1 (const uint) -0:50 Constant: -0:50 0.750000 -0:50 Constant: -0:50 1 (const int) -0:50 -1 (const int) -0:50 1 (const int) -0:50 -1 (const int) -0:50 1 (const int) -0:50 -1 (const int) -0:50 1 (const int) -0:50 -1 (const int) -0:51 Sequence -0:51 move second child to first child ( temp 4-component vector of uint) -0:51 'txval024' ( temp 4-component vector of uint) -0:51 textureGatherOffsets ( temp 4-component vector of uint) -0:51 Construct combined texture-sampler ( temp usampler2DShadow) -0:51 'g_tTex2du4' ( uniform utexture2DShadow) -0:51 'g_sSampCmp' (layout( binding=0) uniform sampler) -0:51 c2: direct index for structure ( uniform 2-component vector of float) -0:51 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) -0:51 Constant: -0:51 1 (const uint) -0:51 Constant: -0:51 0.750000 -0:51 Constant: -0:51 1 (const int) -0:51 1 (const int) -0:51 1 (const int) -0:51 1 (const int) -0:51 1 (const int) -0:51 1 (const int) -0:51 1 (const int) -0:51 1 (const int) -0:53 Sequence -0:53 move second child to first child ( temp 4-component vector of float) -0:53 'txval401' ( temp 4-component vector of float) -0:53 textureGatherOffset ( temp 4-component vector of float) -0:53 Construct combined texture-sampler ( temp sampler2DShadow) -0:53 'g_tTex2df4' ( uniform texture2DShadow) -0:53 'g_sSampCmp' (layout( binding=0) uniform sampler) -0:53 c2: direct index for structure ( uniform 2-component vector of float) -0:53 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) -0:53 Constant: -0:53 1 (const uint) -0:53 Constant: -0:53 0.750000 -0:53 Constant: -0:53 1 (const int) -0:53 0 (const int) -0:54 Sequence -0:54 move second child to first child ( temp 4-component vector of int) -0:54 'txval411' ( temp 4-component vector of int) -0:54 textureGatherOffset ( temp 4-component vector of int) -0:54 Construct combined texture-sampler ( temp isampler2DShadow) -0:54 'g_tTex2di4' ( uniform itexture2DShadow) -0:54 'g_sSampCmp' (layout( binding=0) uniform sampler) -0:54 c2: direct index for structure ( uniform 2-component vector of float) -0:54 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) -0:54 Constant: -0:54 1 (const uint) -0:54 Constant: -0:54 0.750000 -0:54 Constant: -0:54 1 (const int) -0:54 -1 (const int) -0:55 Sequence -0:55 move second child to first child ( temp 4-component vector of uint) -0:55 'txval421' ( temp 4-component vector of uint) -0:55 textureGatherOffset ( temp 4-component vector of uint) -0:55 Construct combined texture-sampler ( temp usampler2DShadow) -0:55 'g_tTex2du4' ( uniform utexture2DShadow) -0:55 'g_sSampCmp' (layout( binding=0) uniform sampler) -0:55 c2: direct index for structure ( uniform 2-component vector of float) -0:55 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) -0:55 Constant: -0:55 1 (const uint) -0:55 Constant: -0:55 0.750000 -0:55 Constant: -0:55 1 (const int) -0:55 1 (const int) -0:110 move second child to first child ( temp 4-component vector of float) -0:110 Color: direct index for structure ( temp 4-component vector of float) -0:110 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:110 Constant: -0:110 0 (const int) -0:110 Constant: -0:110 1.000000 -0:110 1.000000 -0:110 1.000000 -0:110 1.000000 -0:111 move second child to first child ( temp float) -0:111 Depth: direct index for structure ( temp float) -0:111 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:111 Constant: -0:111 1 (const int) -0:111 Constant: -0:111 1.000000 -0:113 Branch: Return with expression -0:113 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:38 Function Definition: main( ( temp void) -0:38 Function Parameters: -0:? Sequence -0:38 Sequence -0:38 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:38 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:38 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) -0:38 Color: direct index for structure ( temp 4-component vector of float) -0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:38 Constant: -0:38 0 (const int) -0:38 move second child to first child ( temp float) -0:? '@entryPointOutput.Depth' ( out float FragDepth) -0:38 Depth: direct index for structure ( temp float) -0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:38 Constant: -0:38 1 (const int) -0:? Linker Objects -0:? 'g_sSampCmp' (layout( binding=0) uniform sampler) -0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) -0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) -0:? 'g_tTex1di4' ( uniform itexture1D) -0:? 'g_tTex1du4' ( uniform utexture1D) -0:? 'g_tTex2df4' ( uniform texture2DShadow) -0:? 'g_tTex2di4' ( uniform itexture2DShadow) -0:? 'g_tTex2du4' ( uniform utexture2DShadow) -0:? 'g_tTex3df4' ( uniform texture3D) -0:? 'g_tTex3di4' ( uniform itexture3D) -0:? 'g_tTex3du4' ( uniform utexture3D) -0:? 'g_tTexcdf4' ( uniform textureCube) -0:? 'g_tTexcdi4' ( uniform itextureCube) -0:? 'g_tTexcdu4' ( uniform utextureCube) -0:? 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) -0:? '@entryPointOutput.Depth' ( out float FragDepth) -0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 164 - - Capability Shader - Capability ImageGatherExtended - Capability Sampled1D - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 129 133 - ExecutionMode 4 OriginUpperLeft - ExecutionMode 4 DepthReplacing - Source HLSL 500 - Name 4 "main" - Name 8 "PS_OUTPUT" - MemberName 8(PS_OUTPUT) 0 "Color" - MemberName 8(PS_OUTPUT) 1 "Depth" - Name 10 "@main(" - Name 13 "txval001" - Name 16 "g_tTex2df4" - Name 20 "g_sSampCmp" - Name 26 "$Global" - MemberName 26($Global) 0 "c1" - MemberName 26($Global) 1 "c2" - MemberName 26($Global) 2 "c3" - MemberName 26($Global) 3 "c4" - Name 28 "" - Name 41 "txval011" - Name 44 "g_tTex2di4" - Name 57 "txval021" - Name 60 "g_tTex2du4" - Name 69 "txval004" - Name 79 "txval014" - Name 87 "txval024" - Name 95 "txval401" - Name 102 "txval411" - Name 109 "txval421" - Name 117 "psout" - Name 126 "flattenTemp" - Name 129 "@entryPointOutput.Color" - Name 133 "@entryPointOutput.Depth" - Name 138 "g_tTex1df4a" - Name 139 "g_tTex1df4" - Name 142 "g_tTex1di4" - Name 145 "g_tTex1du4" - Name 148 "g_tTex3df4" - Name 151 "g_tTex3di4" - Name 154 "g_tTex3du4" - Name 157 "g_tTexcdf4" - Name 160 "g_tTexcdi4" - Name 163 "g_tTexcdu4" - Decorate 16(g_tTex2df4) DescriptorSet 0 - Decorate 16(g_tTex2df4) Binding 2 - Decorate 20(g_sSampCmp) DescriptorSet 0 - Decorate 20(g_sSampCmp) Binding 0 - MemberDecorate 26($Global) 0 Offset 0 - MemberDecorate 26($Global) 1 Offset 8 - MemberDecorate 26($Global) 2 Offset 16 - MemberDecorate 26($Global) 3 Offset 32 - Decorate 26($Global) Block - Decorate 28 DescriptorSet 0 - Decorate 28 Binding 5 - Decorate 44(g_tTex2di4) DescriptorSet 0 - Decorate 44(g_tTex2di4) Binding 3 - Decorate 60(g_tTex2du4) DescriptorSet 0 - Decorate 60(g_tTex2du4) Binding 4 - Decorate 129(@entryPointOutput.Color) Location 0 - Decorate 133(@entryPointOutput.Depth) BuiltIn FragDepth - Decorate 138(g_tTex1df4a) DescriptorSet 0 - Decorate 138(g_tTex1df4a) Binding 1 - Decorate 139(g_tTex1df4) DescriptorSet 0 - Decorate 139(g_tTex1df4) Binding 0 - Decorate 142(g_tTex1di4) DescriptorSet 0 - Decorate 142(g_tTex1di4) Binding 0 - Decorate 145(g_tTex1du4) DescriptorSet 0 - Decorate 145(g_tTex1du4) Binding 0 - Decorate 148(g_tTex3df4) DescriptorSet 0 - Decorate 148(g_tTex3df4) Binding 0 - Decorate 151(g_tTex3di4) DescriptorSet 0 - Decorate 151(g_tTex3di4) Binding 0 - Decorate 154(g_tTex3du4) DescriptorSet 0 - Decorate 154(g_tTex3du4) Binding 0 - Decorate 157(g_tTexcdf4) DescriptorSet 0 - Decorate 157(g_tTexcdf4) Binding 0 - Decorate 160(g_tTexcdi4) DescriptorSet 0 - Decorate 160(g_tTexcdi4) Binding 0 - Decorate 163(g_tTexcdu4) DescriptorSet 0 - Decorate 163(g_tTexcdu4) 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) 2D depth sampled format:Unknown - 15: TypePointer UniformConstant 14 - 16(g_tTex2df4): 15(ptr) Variable UniformConstant - 18: TypeSampler - 19: TypePointer UniformConstant 18 - 20(g_sSampCmp): 19(ptr) Variable UniformConstant - 22: TypeSampledImage 14 - 24: TypeVector 6(float) 2 - 25: TypeVector 6(float) 3 - 26($Global): TypeStruct 6(float) 24(fvec2) 25(fvec3) 7(fvec4) - 27: TypePointer Uniform 26($Global) - 28: 27(ptr) Variable Uniform - 29: TypeInt 32 1 - 30: 29(int) Constant 1 - 31: TypePointer Uniform 24(fvec2) - 34: 6(float) Constant 1061158912 - 35: TypeVector 29(int) 2 - 36: 29(int) Constant 0 - 37: 35(ivec2) ConstantComposite 30 36 - 39: TypeVector 29(int) 4 - 40: TypePointer Function 39(ivec4) - 42: TypeImage 29(int) 2D depth sampled format:Unknown - 43: TypePointer UniformConstant 42 - 44(g_tTex2di4): 43(ptr) Variable UniformConstant - 47: TypeSampledImage 42 - 51: 29(int) Constant 4294967295 - 52: 35(ivec2) ConstantComposite 30 51 - 54: TypeInt 32 0 - 55: TypeVector 54(int) 4 - 56: TypePointer Function 55(ivec4) - 58: TypeImage 54(int) 2D depth sampled format:Unknown - 59: TypePointer UniformConstant 58 - 60(g_tTex2du4): 59(ptr) Variable UniformConstant - 63: TypeSampledImage 58 - 67: 35(ivec2) ConstantComposite 30 30 - 75: 54(int) Constant 4 - 76: TypeArray 35(ivec2) 75 - 77: 76 ConstantComposite 37 37 37 37 - 85: 76 ConstantComposite 52 52 52 52 - 93: 76 ConstantComposite 67 67 67 67 - 116: TypePointer Function 8(PS_OUTPUT) - 118: 6(float) Constant 1065353216 - 119: 7(fvec4) ConstantComposite 118 118 118 118 - 121: TypePointer Function 6(float) - 128: TypePointer Output 7(fvec4) -129(@entryPointOutput.Color): 128(ptr) Variable Output - 132: TypePointer Output 6(float) -133(@entryPointOutput.Depth): 132(ptr) Variable Output - 136: TypeImage 6(float) 1D sampled format:Unknown - 137: TypePointer UniformConstant 136 -138(g_tTex1df4a): 137(ptr) Variable UniformConstant - 139(g_tTex1df4): 137(ptr) Variable UniformConstant - 140: TypeImage 29(int) 1D sampled format:Unknown - 141: TypePointer UniformConstant 140 - 142(g_tTex1di4): 141(ptr) Variable UniformConstant - 143: TypeImage 54(int) 1D sampled format:Unknown - 144: TypePointer UniformConstant 143 - 145(g_tTex1du4): 144(ptr) Variable UniformConstant - 146: TypeImage 6(float) 3D sampled format:Unknown - 147: TypePointer UniformConstant 146 - 148(g_tTex3df4): 147(ptr) Variable UniformConstant - 149: TypeImage 29(int) 3D sampled format:Unknown - 150: TypePointer UniformConstant 149 - 151(g_tTex3di4): 150(ptr) Variable UniformConstant - 152: TypeImage 54(int) 3D sampled format:Unknown - 153: TypePointer UniformConstant 152 - 154(g_tTex3du4): 153(ptr) Variable UniformConstant - 155: TypeImage 6(float) Cube sampled format:Unknown - 156: TypePointer UniformConstant 155 - 157(g_tTexcdf4): 156(ptr) Variable UniformConstant - 158: TypeImage 29(int) Cube sampled format:Unknown - 159: TypePointer UniformConstant 158 - 160(g_tTexcdi4): 159(ptr) Variable UniformConstant - 161: TypeImage 54(int) Cube sampled format:Unknown - 162: TypePointer UniformConstant 161 - 163(g_tTexcdu4): 162(ptr) Variable UniformConstant - 4(main): 2 Function None 3 - 5: Label -126(flattenTemp): 116(ptr) Variable Function - 127:8(PS_OUTPUT) FunctionCall 10(@main() - Store 126(flattenTemp) 127 - 130: 12(ptr) AccessChain 126(flattenTemp) 36 - 131: 7(fvec4) Load 130 - Store 129(@entryPointOutput.Color) 131 - 134: 121(ptr) AccessChain 126(flattenTemp) 30 - 135: 6(float) Load 134 - Store 133(@entryPointOutput.Depth) 135 - Return - FunctionEnd - 10(@main():8(PS_OUTPUT) Function None 9 - 11: Label - 13(txval001): 12(ptr) Variable Function - 41(txval011): 40(ptr) Variable Function - 57(txval021): 56(ptr) Variable Function - 69(txval004): 12(ptr) Variable Function - 79(txval014): 40(ptr) Variable Function - 87(txval024): 56(ptr) Variable Function - 95(txval401): 12(ptr) Variable Function - 102(txval411): 40(ptr) Variable Function - 109(txval421): 56(ptr) Variable Function - 117(psout): 116(ptr) Variable Function - 17: 14 Load 16(g_tTex2df4) - 21: 18 Load 20(g_sSampCmp) - 23: 22 SampledImage 17 21 - 32: 31(ptr) AccessChain 28 30 - 33: 24(fvec2) Load 32 - 38: 7(fvec4) ImageDrefGather 23 33 34 ConstOffset 37 - Store 13(txval001) 38 - 45: 42 Load 44(g_tTex2di4) - 46: 18 Load 20(g_sSampCmp) - 48: 47 SampledImage 45 46 - 49: 31(ptr) AccessChain 28 30 - 50: 24(fvec2) Load 49 - 53: 39(ivec4) ImageDrefGather 48 50 34 ConstOffset 52 - Store 41(txval011) 53 - 61: 58 Load 60(g_tTex2du4) - 62: 18 Load 20(g_sSampCmp) - 64: 63 SampledImage 61 62 - 65: 31(ptr) AccessChain 28 30 - 66: 24(fvec2) Load 65 - 68: 55(ivec4) ImageDrefGather 64 66 34 ConstOffset 67 - Store 57(txval021) 68 - 70: 14 Load 16(g_tTex2df4) - 71: 18 Load 20(g_sSampCmp) - 72: 22 SampledImage 70 71 - 73: 31(ptr) AccessChain 28 30 - 74: 24(fvec2) Load 73 - 78: 7(fvec4) ImageDrefGather 72 74 34 ConstOffsets 77 - Store 69(txval004) 78 - 80: 42 Load 44(g_tTex2di4) - 81: 18 Load 20(g_sSampCmp) - 82: 47 SampledImage 80 81 - 83: 31(ptr) AccessChain 28 30 - 84: 24(fvec2) Load 83 - 86: 39(ivec4) ImageDrefGather 82 84 34 ConstOffsets 85 - Store 79(txval014) 86 - 88: 58 Load 60(g_tTex2du4) - 89: 18 Load 20(g_sSampCmp) - 90: 63 SampledImage 88 89 - 91: 31(ptr) AccessChain 28 30 - 92: 24(fvec2) Load 91 - 94: 55(ivec4) ImageDrefGather 90 92 34 ConstOffsets 93 - Store 87(txval024) 94 - 96: 14 Load 16(g_tTex2df4) - 97: 18 Load 20(g_sSampCmp) - 98: 22 SampledImage 96 97 - 99: 31(ptr) AccessChain 28 30 - 100: 24(fvec2) Load 99 - 101: 7(fvec4) ImageDrefGather 98 100 34 ConstOffset 37 - Store 95(txval401) 101 - 103: 42 Load 44(g_tTex2di4) - 104: 18 Load 20(g_sSampCmp) - 105: 47 SampledImage 103 104 - 106: 31(ptr) AccessChain 28 30 - 107: 24(fvec2) Load 106 - 108: 39(ivec4) ImageDrefGather 105 107 34 ConstOffset 52 - Store 102(txval411) 108 - 110: 58 Load 60(g_tTex2du4) - 111: 18 Load 20(g_sSampCmp) - 112: 63 SampledImage 110 111 - 113: 31(ptr) AccessChain 28 30 - 114: 24(fvec2) Load 113 - 115: 55(ivec4) ImageDrefGather 112 114 34 ConstOffset 67 - Store 109(txval421) 115 - 120: 12(ptr) AccessChain 117(psout) 36 - Store 120 119 - 122: 121(ptr) AccessChain 117(psout) 30 - Store 122 118 - 123:8(PS_OUTPUT) Load 117(psout) - ReturnValue 123 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.getdimensions.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.getdimensions.dx10.frag.out deleted file mode 100644 index ba023599..00000000 --- a/deps/glslang/Test/baseResults/hlsl.getdimensions.dx10.frag.out +++ /dev/null @@ -1,3223 +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): 8000a -// 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 35(g_tTex1di4) Binding 1 - Decorate 48(g_tTex1du4) DescriptorSet 0 - Decorate 48(g_tTex1du4) Binding 2 - Decorate 63(g_tTex1df4a) DescriptorSet 0 - Decorate 63(g_tTex1df4a) Binding 12 - Decorate 85(g_tTex1di4a) DescriptorSet 0 - Decorate 85(g_tTex1di4a) Binding 13 - Decorate 104(g_tTex1du4a) DescriptorSet 0 - Decorate 104(g_tTex1du4a) Binding 14 - Decorate 123(g_tTex2df4) DescriptorSet 0 - Decorate 123(g_tTex2df4) Binding 3 - Decorate 143(g_tTex2di4) DescriptorSet 0 - Decorate 143(g_tTex2di4) Binding 4 - Decorate 162(g_tTex2du4) DescriptorSet 0 - Decorate 162(g_tTex2du4) Binding 5 - Decorate 183(g_tTex2df4a) DescriptorSet 0 - Decorate 183(g_tTex2df4a) Binding 15 - Decorate 207(g_tTex2di4a) DescriptorSet 0 - Decorate 207(g_tTex2di4a) Binding 16 - Decorate 230(g_tTex2du4a) DescriptorSet 0 - Decorate 230(g_tTex2du4a) Binding 17 - Decorate 253(g_tTex3df4) DescriptorSet 0 - Decorate 253(g_tTex3df4) Binding 6 - Decorate 277(g_tTex3di4) DescriptorSet 0 - Decorate 277(g_tTex3di4) Binding 7 - Decorate 300(g_tTex3du4) DescriptorSet 0 - Decorate 300(g_tTex3du4) Binding 8 - Decorate 323(g_tTexcdf4) DescriptorSet 0 - Decorate 323(g_tTexcdf4) Binding 9 - Decorate 342(g_tTexcdi4) DescriptorSet 0 - Decorate 342(g_tTexcdi4) Binding 10 - Decorate 361(g_tTexcdu4) DescriptorSet 0 - Decorate 361(g_tTexcdu4) Binding 11 - Decorate 380(g_tTexcdf4a) DescriptorSet 0 - Decorate 380(g_tTexcdf4a) Binding 18 - Decorate 403(g_tTexcdi4a) DescriptorSet 0 - Decorate 403(g_tTexcdi4a) Binding 19 - Decorate 426(g_tTexcdu4a) DescriptorSet 0 - Decorate 426(g_tTexcdu4a) Binding 20 - Decorate 449(g_tTex2dmsf4) DescriptorSet 0 - Decorate 449(g_tTex2dmsf4) Binding 21 - Decorate 462(g_tTex2dmsi4) DescriptorSet 0 - Decorate 462(g_tTex2dmsi4) Binding 22 - Decorate 474(g_tTex2dmsu4) DescriptorSet 0 - Decorate 474(g_tTex2dmsu4) Binding 23 - Decorate 486(g_tTex2dmsf4a) DescriptorSet 0 - Decorate 486(g_tTex2dmsf4a) Binding 24 - Decorate 500(g_tTex2dmsi4a) DescriptorSet 0 - Decorate 500(g_tTex2dmsi4a) Binding 25 - Decorate 514(g_tTex2dmsu4a) DescriptorSet 0 - Decorate 514(g_tTex2dmsu4a) Binding 26 - 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/Test/baseResults/hlsl.getdimensions.dx10.vert.out b/deps/glslang/Test/baseResults/hlsl.getdimensions.dx10.vert.out deleted file mode 100644 index 96a1cc15..00000000 --- a/deps/glslang/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:24 Constant: -0:24 0.000000 -0:24 0.000000 -0:24 0.000000 -0:24 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:24 Constant: -0:24 0.000000 -0:24 0.000000 -0:24 0.000000 -0:24 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): 8000a -// 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/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out deleted file mode 100644 index 1cce0cc0..00000000 --- a/deps/glslang/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out +++ /dev/null @@ -1,1135 +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): 8000a -// 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 26(g_tTex1di4) Binding 1 - Decorate 33(g_tTex1du4) DescriptorSet 0 - Decorate 33(g_tTex1du4) Binding 2 - Decorate 40(g_tBuffF) DescriptorSet 0 - Decorate 40(g_tBuffF) Binding 15 - Decorate 47(g_tBuffI) DescriptorSet 0 - Decorate 47(g_tBuffI) Binding 16 - Decorate 54(g_tBuffU) DescriptorSet 0 - Decorate 54(g_tBuffU) Binding 17 - Decorate 63(g_tTex1df4a) DescriptorSet 0 - Decorate 63(g_tTex1df4a) Binding 9 - Decorate 76(g_tTex1di4a) DescriptorSet 0 - Decorate 76(g_tTex1di4a) Binding 10 - Decorate 86(g_tTex1du4a) DescriptorSet 0 - Decorate 86(g_tTex1du4a) Binding 11 - Decorate 96(g_tTex2df4) DescriptorSet 0 - Decorate 96(g_tTex2df4) Binding 3 - Decorate 107(g_tTex2di4) DescriptorSet 0 - Decorate 107(g_tTex2di4) Binding 4 - Decorate 117(g_tTex2du4) DescriptorSet 0 - Decorate 117(g_tTex2du4) Binding 5 - Decorate 129(g_tTex2df4a) DescriptorSet 0 - Decorate 129(g_tTex2df4a) Binding 12 - Decorate 142(g_tTex2di4a) DescriptorSet 0 - Decorate 142(g_tTex2di4a) Binding 13 - Decorate 154(g_tTex2du4a) DescriptorSet 0 - Decorate 154(g_tTex2du4a) Binding 14 - Decorate 166(g_tTex3df4) DescriptorSet 0 - Decorate 166(g_tTex3df4) Binding 6 - Decorate 179(g_tTex3di4) DescriptorSet 0 - Decorate 179(g_tTex3di4) Binding 7 - Decorate 191(g_tTex3du4) DescriptorSet 0 - Decorate 191(g_tTex3du4) Binding 8 - 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 - Decorate 231 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 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/Test/baseResults/hlsl.getsampleposition.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.getsampleposition.dx10.frag.out deleted file mode 100644 index 5c499318..00000000 --- a/deps/glslang/Test/baseResults/hlsl.getsampleposition.dx10.frag.out +++ /dev/null @@ -1,848 +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): 8000a -// 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 23(g_tTex2dmsf4) Binding 1 - Decorate 131(g_tTex2dmsf4a) DescriptorSet 0 - Decorate 131(g_tTex2dmsf4a) Binding 2 - 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/Test/baseResults/hlsl.global-const-init.frag.out b/deps/glslang/Test/baseResults/hlsl.global-const-init.frag.out deleted file mode 100644 index 26895bba..00000000 --- a/deps/glslang/Test/baseResults/hlsl.global-const-init.frag.out +++ /dev/null @@ -1,179 +0,0 @@ -hlsl.global-const-init.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:6 Sequence -0:6 move second child to first child ( temp 4-component vector of float) -0:6 'bar' ( global 4-component vector of float) -0:6 foo: direct index for structure (layout( row_major std140) uniform 4-component vector of float) -0:6 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float foo}) -0:6 Constant: -0:6 0 (const uint) -0:8 Sequence -0:8 move second child to first child ( temp 2-element array of 2-component vector of float) -0:8 'a1' ( global 2-element array of 2-component vector of float) -0:8 Construct vec2 ( temp 2-element array of 2-component vector of float) -0:8 Constant: -0:8 1.000000 -0:8 2.000000 -0:8 Construct vec2 ( temp 2-component vector of float) -0:8 direct index ( temp float) -0:8 foo: direct index for structure (layout( row_major std140) uniform 4-component vector of float) -0:8 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float foo}) -0:8 Constant: -0:8 0 (const uint) -0:8 Constant: -0:8 0 (const int) -0:8 Constant: -0:8 4.000000 -0:12 Function Definition: @main( ( temp 4-component vector of float) -0:12 Function Parameters: -0:? Sequence -0:13 Branch: Return with expression -0:13 'bar' ( global 4-component vector of float) -0:12 Function Definition: main( ( temp void) -0:12 Function Parameters: -0:? Sequence -0:12 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:12 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float foo}) -0:? 'bar' ( global 4-component vector of float) -0:? 'a1' ( global 2-element array of 2-component vector of float) -0:? 'a2' ( const 2-element array of 2-component vector of float) -0:? 5.000000 -0:? 6.000000 -0:? 7.000000 -0:? 8.000000 -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:6 Sequence -0:6 move second child to first child ( temp 4-component vector of float) -0:6 'bar' ( global 4-component vector of float) -0:6 foo: direct index for structure (layout( row_major std140) uniform 4-component vector of float) -0:6 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float foo}) -0:6 Constant: -0:6 0 (const uint) -0:8 Sequence -0:8 move second child to first child ( temp 2-element array of 2-component vector of float) -0:8 'a1' ( global 2-element array of 2-component vector of float) -0:8 Construct vec2 ( temp 2-element array of 2-component vector of float) -0:8 Constant: -0:8 1.000000 -0:8 2.000000 -0:8 Construct vec2 ( temp 2-component vector of float) -0:8 direct index ( temp float) -0:8 foo: direct index for structure (layout( row_major std140) uniform 4-component vector of float) -0:8 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float foo}) -0:8 Constant: -0:8 0 (const uint) -0:8 Constant: -0:8 0 (const int) -0:8 Constant: -0:8 4.000000 -0:12 Function Definition: @main( ( temp 4-component vector of float) -0:12 Function Parameters: -0:? Sequence -0:13 Branch: Return with expression -0:13 'bar' ( global 4-component vector of float) -0:12 Function Definition: main( ( temp void) -0:12 Function Parameters: -0:? Sequence -0:12 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:12 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float foo}) -0:? 'bar' ( global 4-component vector of float) -0:? 'a1' ( global 2-element array of 2-component vector of float) -0:? 'a2' ( const 2-element array of 2-component vector of float) -0:? 5.000000 -0:? 6.000000 -0:? 7.000000 -0:? 8.000000 -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 50 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 41 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 9 "@main(" - Name 12 "bar" - Name 13 "CB" - MemberName 13(CB) 0 "foo" - Name 15 "" - Name 26 "a1" - Name 41 "@entryPointOutput" - MemberDecorate 13(CB) 0 Offset 0 - Decorate 13(CB) Block - Decorate 15 DescriptorSet 0 - Decorate 15 Binding 0 - Decorate 41(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 11: TypePointer Private 7(fvec4) - 12(bar): 11(ptr) Variable Private - 13(CB): TypeStruct 7(fvec4) - 14: TypePointer Uniform 13(CB) - 15: 14(ptr) Variable Uniform - 16: TypeInt 32 1 - 17: 16(int) Constant 0 - 18: TypePointer Uniform 7(fvec4) - 21: TypeVector 6(float) 2 - 22: TypeInt 32 0 - 23: 22(int) Constant 2 - 24: TypeArray 21(fvec2) 23 - 25: TypePointer Private 24 - 26(a1): 25(ptr) Variable Private - 27: 6(float) Constant 1065353216 - 28: 6(float) Constant 1073741824 - 29: 21(fvec2) ConstantComposite 27 28 - 30: 22(int) Constant 0 - 31: TypePointer Uniform 6(float) - 34: 6(float) Constant 1082130432 - 40: TypePointer Output 7(fvec4) -41(@entryPointOutput): 40(ptr) Variable Output - 43: 6(float) Constant 1084227584 - 44: 6(float) Constant 1086324736 - 45: 21(fvec2) ConstantComposite 43 44 - 46: 6(float) Constant 1088421888 - 47: 6(float) Constant 1090519040 - 48: 21(fvec2) ConstantComposite 46 47 - 49: 24 ConstantComposite 45 48 - 4(main): 2 Function None 3 - 5: Label - 19: 18(ptr) AccessChain 15 17 - 20: 7(fvec4) Load 19 - Store 12(bar) 20 - 32: 31(ptr) AccessChain 15 17 30 - 33: 6(float) Load 32 - 35: 21(fvec2) CompositeConstruct 33 34 - 36: 24 CompositeConstruct 29 35 - Store 26(a1) 36 - 42: 7(fvec4) FunctionCall 9(@main() - Store 41(@entryPointOutput) 42 - Return - FunctionEnd - 9(@main(): 7(fvec4) Function None 8 - 10: Label - 37: 7(fvec4) Load 12(bar) - ReturnValue 37 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.groupid.comp.out b/deps/glslang/Test/baseResults/hlsl.groupid.comp.out deleted file mode 100644 index bf39d11a..00000000 --- a/deps/glslang/Test/baseResults/hlsl.groupid.comp.out +++ /dev/null @@ -1,147 +0,0 @@ -hlsl.groupid.comp -Shader version: 500 -local_size = (8, 8, 1) -0:? Sequence -0:7 Function Definition: @main(vu2; ( temp void) -0:7 Function Parameters: -0:7 'vGroupId' ( in 2-component vector of uint) -0:? Sequence -0:8 Sequence -0:8 move second child to first child ( temp 4-component vector of float) -0:8 'storeTemp' ( temp 4-component vector of float) -0:8 Constant: -0:8 1.000000 -0:8 0.000000 -0:8 0.000000 -0:8 1.000000 -0:8 imageStore ( temp void) -0:8 'OutputTexture' (layout( rgba32f) uniform image2D) -0:8 vector swizzle ( temp 2-component vector of uint) -0:8 'vGroupId' ( in 2-component vector of uint) -0:8 Sequence -0:8 Constant: -0:8 0 (const int) -0:8 Constant: -0:8 1 (const int) -0:8 'storeTemp' ( temp 4-component vector of float) -0:8 'storeTemp' ( temp 4-component vector of float) -0:7 Function Definition: main( ( temp void) -0:7 Function Parameters: -0:? Sequence -0:7 move second child to first child ( temp 2-component vector of uint) -0:? 'vGroupId' ( temp 2-component vector of uint) -0:? Construct uvec2 ( temp 2-component vector of uint) -0:? 'vGroupId' ( in 3-component vector of uint WorkGroupID) -0:7 Function Call: @main(vu2; ( temp void) -0:? 'vGroupId' ( temp 2-component vector of uint) -0:? Linker Objects -0:? 'OutputTexture' (layout( rgba32f) uniform image2D) -0:? 'vGroupId' ( in 3-component vector of uint WorkGroupID) - - -Linked compute stage: - - -Shader version: 500 -local_size = (8, 8, 1) -0:? Sequence -0:7 Function Definition: @main(vu2; ( temp void) -0:7 Function Parameters: -0:7 'vGroupId' ( in 2-component vector of uint) -0:? Sequence -0:8 Sequence -0:8 move second child to first child ( temp 4-component vector of float) -0:8 'storeTemp' ( temp 4-component vector of float) -0:8 Constant: -0:8 1.000000 -0:8 0.000000 -0:8 0.000000 -0:8 1.000000 -0:8 imageStore ( temp void) -0:8 'OutputTexture' (layout( rgba32f) uniform image2D) -0:8 vector swizzle ( temp 2-component vector of uint) -0:8 'vGroupId' ( in 2-component vector of uint) -0:8 Sequence -0:8 Constant: -0:8 0 (const int) -0:8 Constant: -0:8 1 (const int) -0:8 'storeTemp' ( temp 4-component vector of float) -0:8 'storeTemp' ( temp 4-component vector of float) -0:7 Function Definition: main( ( temp void) -0:7 Function Parameters: -0:? Sequence -0:7 move second child to first child ( temp 2-component vector of uint) -0:? 'vGroupId' ( temp 2-component vector of uint) -0:? Construct uvec2 ( temp 2-component vector of uint) -0:? 'vGroupId' ( in 3-component vector of uint WorkGroupID) -0:7 Function Call: @main(vu2; ( temp void) -0:? 'vGroupId' ( temp 2-component vector of uint) -0:? Linker Objects -0:? 'OutputTexture' (layout( rgba32f) uniform image2D) -0:? 'vGroupId' ( in 3-component vector of uint WorkGroupID) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 37 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 29 - ExecutionMode 4 LocalSize 8 8 1 - Source HLSL 500 - Name 4 "main" - Name 11 "@main(vu2;" - Name 10 "vGroupId" - Name 16 "storeTemp" - Name 22 "OutputTexture" - Name 26 "vGroupId" - Name 29 "vGroupId" - Name 34 "param" - Decorate 22(OutputTexture) DescriptorSet 0 - Decorate 22(OutputTexture) Binding 0 - Decorate 29(vGroupId) BuiltIn WorkgroupId - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeVector 6(int) 2 - 8: TypePointer Function 7(ivec2) - 9: TypeFunction 2 8(ptr) - 13: TypeFloat 32 - 14: TypeVector 13(float) 4 - 15: TypePointer Function 14(fvec4) - 17: 13(float) Constant 1065353216 - 18: 13(float) Constant 0 - 19: 14(fvec4) ConstantComposite 17 18 18 17 - 20: TypeImage 13(float) 2D nonsampled format:Rgba32f - 21: TypePointer UniformConstant 20 -22(OutputTexture): 21(ptr) Variable UniformConstant - 27: TypeVector 6(int) 3 - 28: TypePointer Input 27(ivec3) - 29(vGroupId): 28(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 26(vGroupId): 8(ptr) Variable Function - 34(param): 8(ptr) Variable Function - 30: 27(ivec3) Load 29(vGroupId) - 31: 6(int) CompositeExtract 30 0 - 32: 6(int) CompositeExtract 30 1 - 33: 7(ivec2) CompositeConstruct 31 32 - Store 26(vGroupId) 33 - 35: 7(ivec2) Load 26(vGroupId) - Store 34(param) 35 - 36: 2 FunctionCall 11(@main(vu2;) 34(param) - Return - FunctionEnd - 11(@main(vu2;): 2 Function None 9 - 10(vGroupId): 8(ptr) FunctionParameter - 12: Label - 16(storeTemp): 15(ptr) Variable Function - Store 16(storeTemp) 19 - 23: 20 Load 22(OutputTexture) - 24: 7(ivec2) Load 10(vGroupId) - 25: 14(fvec4) Load 16(storeTemp) - ImageWrite 23 24 25 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.gs-hs-mix.tesc.out b/deps/glslang/Test/baseResults/hlsl.gs-hs-mix.tesc.out deleted file mode 100644 index c9496ac1..00000000 --- a/deps/glslang/Test/baseResults/hlsl.gs-hs-mix.tesc.out +++ /dev/null @@ -1,1378 +0,0 @@ -hlsl.gs-hs-mix.tesc -Shader version: 500 -vertices = 3 -vertex spacing = fractional_odd_spacing -triangle order = ccw -0:? Sequence -0:31 Function Definition: HSPatchConstant(struct-HSInput-vf3-vf31[3]; ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) -0:31 Function Parameters: -0:31 'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:? Sequence -0:32 Sequence -0:32 move second child to first child ( temp 3-component vector of float) -0:32 'roundedEdgeTessFactor' ( temp 3-component vector of float) -0:32 tess_factor: direct index for structure (layout( row_major std140) uniform 3-component vector of float) -0:32 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor}) -0:32 Constant: -0:32 6 (const uint) -0:33 Sequence -0:33 move second child to first child ( temp float) -0:33 'roundedInsideTessFactor' ( temp float) -0:33 Constant: -0:33 3.000000 -0:34 Sequence -0:34 move second child to first child ( temp float) -0:34 'insideTessFactor' ( temp float) -0:34 Constant: -0:34 1.000000 -0:39 move second child to first child ( temp float) -0:39 direct index ( temp float) -0:39 EdgeTessFactor: direct index for structure ( temp 3-element array of float) -0:39 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 direct index ( temp float) -0:39 'roundedEdgeTessFactor' ( temp 3-component vector of float) -0:39 Constant: -0:39 0 (const int) -0:40 move second child to first child ( temp float) -0:40 direct index ( temp float) -0:40 EdgeTessFactor: direct index for structure ( temp 3-element array of float) -0:40 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 direct index ( temp float) -0:40 'roundedEdgeTessFactor' ( temp 3-component vector of float) -0:40 Constant: -0:40 1 (const int) -0:41 move second child to first child ( temp float) -0:41 direct index ( temp float) -0:41 EdgeTessFactor: direct index for structure ( temp 3-element array of float) -0:41 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 2 (const int) -0:41 direct index ( temp float) -0:41 'roundedEdgeTessFactor' ( temp 3-component vector of float) -0:41 Constant: -0:41 2 (const int) -0:42 move second child to first child ( temp float) -0:42 InsideTessFactor: direct index for structure ( temp float) -0:42 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) -0:42 Constant: -0:42 1 (const int) -0:42 'roundedInsideTessFactor' ( temp float) -0:45 move second child to first child ( temp 3-component vector of float) -0:45 direct index ( temp 3-component vector of float) -0:45 NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float) -0:45 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) -0:45 Constant: -0:45 2 (const int) -0:45 Constant: -0:45 0 (const int) -0:45 NormalWS: direct index for structure ( temp 3-component vector of float) -0:45 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:45 'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:46 move second child to first child ( temp 3-component vector of float) -0:46 direct index ( temp 3-component vector of float) -0:46 NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float) -0:46 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) -0:46 Constant: -0:46 2 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 NormalWS: direct index for structure ( temp 3-component vector of float) -0:46 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:46 'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 1 (const int) -0:47 move second child to first child ( temp 3-component vector of float) -0:47 direct index ( temp 3-component vector of float) -0:47 NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float) -0:47 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) -0:47 Constant: -0:47 2 (const int) -0:47 Constant: -0:47 2 (const int) -0:47 NormalWS: direct index for structure ( temp 3-component vector of float) -0:47 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:47 'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:47 Constant: -0:47 2 (const int) -0:47 Constant: -0:47 1 (const int) -0:49 Branch: Return with expression -0:49 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) -0:61 Function Definition: @HSMain(struct-HSInput-vf3-vf31[3];u1; ( temp structure{ temp 3-component vector of float PositionWS}) -0:61 Function Parameters: -0:61 'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:61 'id' ( in uint) -0:? Sequence -0:63 move second child to first child ( temp 3-component vector of float) -0:63 PositionWS: direct index for structure ( temp 3-component vector of float) -0:63 'output' ( temp structure{ temp 3-component vector of float PositionWS}) -0:63 Constant: -0:63 0 (const int) -0:63 PositionWS: direct index for structure ( temp 3-component vector of float) -0:63 indirect index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:63 'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:63 'id' ( in uint) -0:63 Constant: -0:63 0 (const int) -0:64 Branch: Return with expression -0:64 'output' ( temp structure{ temp 3-component vector of float PositionWS}) -0:61 Function Definition: HSMain( ( temp void) -0:61 Function Parameters: -0:? Sequence -0:61 Sequence -0:61 move second child to first child ( temp 3-component vector of float) -0:61 PositionWS: direct index for structure ( temp 3-component vector of float) -0:61 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 0 (const int) -0:61 direct index (layout( location=0) in 3-component vector of float) -0:? 'patch.PositionWS' (layout( location=0) in 3-element array of 3-component vector of float) -0:61 Constant: -0:61 0 (const int) -0:61 move second child to first child ( temp 3-component vector of float) -0:61 NormalWS: direct index for structure ( temp 3-component vector of float) -0:61 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 direct index (layout( location=1) in 3-component vector of float) -0:? 'patch.NormalWS' (layout( location=1) in 3-element array of 3-component vector of float) -0:61 Constant: -0:61 0 (const int) -0:61 move second child to first child ( temp 3-component vector of float) -0:61 PositionWS: direct index for structure ( temp 3-component vector of float) -0:61 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:61 Constant: -0:61 1 (const int) -0:61 Constant: -0:61 0 (const int) -0:61 direct index (layout( location=0) in 3-component vector of float) -0:? 'patch.PositionWS' (layout( location=0) in 3-element array of 3-component vector of float) -0:61 Constant: -0:61 1 (const int) -0:61 move second child to first child ( temp 3-component vector of float) -0:61 NormalWS: direct index for structure ( temp 3-component vector of float) -0:61 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:61 Constant: -0:61 1 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 direct index (layout( location=1) in 3-component vector of float) -0:? 'patch.NormalWS' (layout( location=1) in 3-element array of 3-component vector of float) -0:61 Constant: -0:61 1 (const int) -0:61 move second child to first child ( temp 3-component vector of float) -0:61 PositionWS: direct index for structure ( temp 3-component vector of float) -0:61 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:61 Constant: -0:61 2 (const int) -0:61 Constant: -0:61 0 (const int) -0:61 direct index (layout( location=0) in 3-component vector of float) -0:? 'patch.PositionWS' (layout( location=0) in 3-element array of 3-component vector of float) -0:61 Constant: -0:61 2 (const int) -0:61 move second child to first child ( temp 3-component vector of float) -0:61 NormalWS: direct index for structure ( temp 3-component vector of float) -0:61 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:61 Constant: -0:61 2 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 direct index (layout( location=1) in 3-component vector of float) -0:? 'patch.NormalWS' (layout( location=1) in 3-element array of 3-component vector of float) -0:61 Constant: -0:61 2 (const int) -0:61 move second child to first child ( temp uint) -0:? 'id' ( temp uint) -0:? 'id' ( in uint InvocationID) -0:61 Sequence -0:61 move second child to first child ( temp 3-component vector of float) -0:61 indirect index (layout( location=0) out 3-component vector of float) -0:? '@entryPointOutput.PositionWS' (layout( location=0) out 3-element array of 3-component vector of float) -0:? 'id' ( in uint InvocationID) -0:61 PositionWS: direct index for structure ( temp 3-component vector of float) -0:61 Function Call: @HSMain(struct-HSInput-vf3-vf31[3];u1; ( temp structure{ temp 3-component vector of float PositionWS}) -0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:? 'id' ( temp uint) -0:61 Constant: -0:61 0 (const int) -0:? Barrier ( temp void) -0:? Test condition and select ( temp void) -0:? Condition -0:? Compare Equal ( temp bool) -0:? 'id' ( in uint InvocationID) -0:? Constant: -0:? 0 (const int) -0:? true case -0:? Sequence -0:? move second child to first child ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) -0:? Function Call: HSPatchConstant(struct-HSInput-vf3-vf31[3]; ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) -0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:? Sequence -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 0 (const int) -0:? direct index ( temp float) -0:? EdgeTessFactor: direct index for structure ( temp 3-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 0 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 1 (const int) -0:? direct index ( temp float) -0:? EdgeTessFactor: direct index for structure ( temp 3-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 1 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 2 (const int) -0:? direct index ( temp float) -0:? EdgeTessFactor: direct index for structure ( temp 3-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 2 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelInner) -0:? '@patchConstantOutput.InsideTessFactor' ( patch out 2-element array of float TessLevelInner) -0:? Constant: -0:? 0 (const int) -0:? InsideTessFactor: direct index for structure ( temp float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) -0:? Constant: -0:? 1 (const int) -0:? move second child to first child ( temp 3-component vector of float) -0:? '@patchConstantOutput.NormalWS[0]' (layout( location=1) patch out 3-component vector of float) -0:? direct index ( temp 3-component vector of float) -0:? NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) -0:? Constant: -0:? 2 (const int) -0:? Constant: -0:? 0 (const int) -0:? move second child to first child ( temp 3-component vector of float) -0:? '@patchConstantOutput.NormalWS[1]' (layout( location=2) patch out 3-component vector of float) -0:? direct index ( temp 3-component vector of float) -0:? NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) -0:? Constant: -0:? 2 (const int) -0:? Constant: -0:? 1 (const int) -0:? move second child to first child ( temp 3-component vector of float) -0:? '@patchConstantOutput.NormalWS[2]' (layout( location=3) patch out 3-component vector of float) -0:? direct index ( temp 3-component vector of float) -0:? NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) -0:? Constant: -0:? 2 (const int) -0:? Constant: -0:? 2 (const int) -0:84 Function Definition: GSMain(struct-GSVertexInput-vf3-vf31[3];struct-GSVertexOutput-vf41; ( temp void) -0:84 Function Parameters: -0:84 'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:84 'output' ( out structure{ temp 4-component vector of float PositionCS}) -0:? Sequence -0:86 Sequence -0:86 move second child to first child ( temp 3-component vector of float) -0:86 'P0' ( temp 3-component vector of float) -0:86 vector swizzle ( temp 3-component vector of float) -0:86 PositionWS: direct index for structure ( temp 3-component vector of float) -0:86 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:86 'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 0 (const int) -0:86 Sequence -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 1 (const int) -0:86 Constant: -0:86 2 (const int) -0:87 Sequence -0:87 move second child to first child ( temp 3-component vector of float) -0:87 'P1' ( temp 3-component vector of float) -0:87 vector swizzle ( temp 3-component vector of float) -0:87 PositionWS: direct index for structure ( temp 3-component vector of float) -0:87 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:87 'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:87 Constant: -0:87 1 (const int) -0:87 Constant: -0:87 0 (const int) -0:87 Sequence -0:87 Constant: -0:87 0 (const int) -0:87 Constant: -0:87 1 (const int) -0:87 Constant: -0:87 2 (const int) -0:88 Sequence -0:88 move second child to first child ( temp 3-component vector of float) -0:88 'P2' ( temp 3-component vector of float) -0:88 vector swizzle ( temp 3-component vector of float) -0:88 PositionWS: direct index for structure ( temp 3-component vector of float) -0:88 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:88 'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:88 Constant: -0:88 2 (const int) -0:88 Constant: -0:88 0 (const int) -0:88 Sequence -0:88 Constant: -0:88 0 (const int) -0:88 Constant: -0:88 1 (const int) -0:88 Constant: -0:88 2 (const int) -0:92 add second child into first child ( temp float) -0:92 direct index ( temp float) -0:92 'P0' ( temp 3-component vector of float) -0:92 Constant: -0:92 2 (const int) -0:92 Constant: -0:92 0.001000 -0:93 add second child into first child ( temp float) -0:93 direct index ( temp float) -0:93 'P1' ( temp 3-component vector of float) -0:93 Constant: -0:93 2 (const int) -0:93 Constant: -0:93 0.001000 -0:94 add second child into first child ( temp float) -0:94 direct index ( temp float) -0:94 'P2' ( temp 3-component vector of float) -0:94 Constant: -0:94 2 (const int) -0:94 Constant: -0:94 0.001000 -0:95 Sequence -0:95 move second child to first child ( temp 4-component vector of float) -0:95 'Q0' ( temp 4-component vector of float) -0:95 vector-times-matrix ( temp 4-component vector of float) -0:95 Construct vec4 ( temp 4-component vector of float) -0:95 'P0' ( temp 3-component vector of float) -0:95 Constant: -0:95 1.000000 -0:95 proj_matrix: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) -0:95 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor}) -0:95 Constant: -0:95 1 (const uint) -0:96 Sequence -0:96 move second child to first child ( temp 4-component vector of float) -0:96 'Q1' ( temp 4-component vector of float) -0:96 vector-times-matrix ( temp 4-component vector of float) -0:96 Construct vec4 ( temp 4-component vector of float) -0:96 'P1' ( temp 3-component vector of float) -0:96 Constant: -0:96 1.000000 -0:96 proj_matrix: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) -0:96 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor}) -0:96 Constant: -0:96 1 (const uint) -0:97 Sequence -0:97 move second child to first child ( temp 4-component vector of float) -0:97 'Q2' ( temp 4-component vector of float) -0:97 vector-times-matrix ( temp 4-component vector of float) -0:97 Construct vec4 ( temp 4-component vector of float) -0:97 'P2' ( temp 3-component vector of float) -0:97 Constant: -0:97 1.000000 -0:97 proj_matrix: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) -0:97 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor}) -0:97 Constant: -0:97 1 (const uint) -0:100 move second child to first child ( temp 4-component vector of float) -0:100 PositionCS: direct index for structure ( temp 4-component vector of float) -0:100 'vertex' ( temp structure{ temp 4-component vector of float PositionCS}) -0:100 Constant: -0:100 0 (const int) -0:100 'Q0' ( temp 4-component vector of float) -0:101 Constant: -0:101 0.000000 -0:102 move second child to first child ( temp 4-component vector of float) -0:102 PositionCS: direct index for structure ( temp 4-component vector of float) -0:102 'vertex' ( temp structure{ temp 4-component vector of float PositionCS}) -0:102 Constant: -0:102 0 (const int) -0:102 'Q1' ( temp 4-component vector of float) -0:103 Constant: -0:103 0.000000 -0:104 Constant: -0:104 0.000000 -0:107 move second child to first child ( temp 4-component vector of float) -0:107 PositionCS: direct index for structure ( temp 4-component vector of float) -0:107 'vertex' ( temp structure{ temp 4-component vector of float PositionCS}) -0:107 Constant: -0:107 0 (const int) -0:107 'Q1' ( temp 4-component vector of float) -0:108 Constant: -0:108 0.000000 -0:109 move second child to first child ( temp 4-component vector of float) -0:109 PositionCS: direct index for structure ( temp 4-component vector of float) -0:109 'vertex' ( temp structure{ temp 4-component vector of float PositionCS}) -0:109 Constant: -0:109 0 (const int) -0:109 'Q2' ( temp 4-component vector of float) -0:110 Constant: -0:110 0.000000 -0:111 Constant: -0:111 0.000000 -0:114 move second child to first child ( temp 4-component vector of float) -0:114 PositionCS: direct index for structure ( temp 4-component vector of float) -0:114 'vertex' ( temp structure{ temp 4-component vector of float PositionCS}) -0:114 Constant: -0:114 0 (const int) -0:114 'Q2' ( temp 4-component vector of float) -0:115 Constant: -0:115 0.000000 -0:116 move second child to first child ( temp 4-component vector of float) -0:116 PositionCS: direct index for structure ( temp 4-component vector of float) -0:116 'vertex' ( temp structure{ temp 4-component vector of float PositionCS}) -0:116 Constant: -0:116 0 (const int) -0:116 'Q0' ( temp 4-component vector of float) -0:117 Constant: -0:117 0.000000 -0:118 Constant: -0:118 0.000000 -0:? Linker Objects -0:? 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor}) -0:? '@entryPointOutput.PositionWS' (layout( location=0) out 3-element array of 3-component vector of float) -0:? 'patch.PositionWS' (layout( location=0) in 3-element array of 3-component vector of float) -0:? 'patch.NormalWS' (layout( location=1) in 3-element array of 3-component vector of float) -0:? 'id' ( in uint InvocationID) -0:? '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter) -0:? '@patchConstantOutput.InsideTessFactor' ( patch out 2-element array of float TessLevelInner) -0:? '@patchConstantOutput.NormalWS[0]' (layout( location=1) patch out 3-component vector of float) -0:? '@patchConstantOutput.NormalWS[1]' (layout( location=2) patch out 3-component vector of float) -0:? '@patchConstantOutput.NormalWS[2]' (layout( location=3) patch out 3-component vector of float) - - -Linked tessellation control stage: - - -Shader version: 500 -vertices = 3 -vertex spacing = fractional_odd_spacing -triangle order = ccw -0:? Sequence -0:31 Function Definition: HSPatchConstant(struct-HSInput-vf3-vf31[3]; ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) -0:31 Function Parameters: -0:31 'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:? Sequence -0:32 Sequence -0:32 move second child to first child ( temp 3-component vector of float) -0:32 'roundedEdgeTessFactor' ( temp 3-component vector of float) -0:32 tess_factor: direct index for structure (layout( row_major std140) uniform 3-component vector of float) -0:32 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor}) -0:32 Constant: -0:32 6 (const uint) -0:33 Sequence -0:33 move second child to first child ( temp float) -0:33 'roundedInsideTessFactor' ( temp float) -0:33 Constant: -0:33 3.000000 -0:34 Sequence -0:34 move second child to first child ( temp float) -0:34 'insideTessFactor' ( temp float) -0:34 Constant: -0:34 1.000000 -0:39 move second child to first child ( temp float) -0:39 direct index ( temp float) -0:39 EdgeTessFactor: direct index for structure ( temp 3-element array of float) -0:39 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 direct index ( temp float) -0:39 'roundedEdgeTessFactor' ( temp 3-component vector of float) -0:39 Constant: -0:39 0 (const int) -0:40 move second child to first child ( temp float) -0:40 direct index ( temp float) -0:40 EdgeTessFactor: direct index for structure ( temp 3-element array of float) -0:40 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 direct index ( temp float) -0:40 'roundedEdgeTessFactor' ( temp 3-component vector of float) -0:40 Constant: -0:40 1 (const int) -0:41 move second child to first child ( temp float) -0:41 direct index ( temp float) -0:41 EdgeTessFactor: direct index for structure ( temp 3-element array of float) -0:41 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 2 (const int) -0:41 direct index ( temp float) -0:41 'roundedEdgeTessFactor' ( temp 3-component vector of float) -0:41 Constant: -0:41 2 (const int) -0:42 move second child to first child ( temp float) -0:42 InsideTessFactor: direct index for structure ( temp float) -0:42 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) -0:42 Constant: -0:42 1 (const int) -0:42 'roundedInsideTessFactor' ( temp float) -0:45 move second child to first child ( temp 3-component vector of float) -0:45 direct index ( temp 3-component vector of float) -0:45 NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float) -0:45 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) -0:45 Constant: -0:45 2 (const int) -0:45 Constant: -0:45 0 (const int) -0:45 NormalWS: direct index for structure ( temp 3-component vector of float) -0:45 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:45 'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const int) -0:46 move second child to first child ( temp 3-component vector of float) -0:46 direct index ( temp 3-component vector of float) -0:46 NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float) -0:46 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) -0:46 Constant: -0:46 2 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 NormalWS: direct index for structure ( temp 3-component vector of float) -0:46 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:46 'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 1 (const int) -0:47 move second child to first child ( temp 3-component vector of float) -0:47 direct index ( temp 3-component vector of float) -0:47 NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float) -0:47 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) -0:47 Constant: -0:47 2 (const int) -0:47 Constant: -0:47 2 (const int) -0:47 NormalWS: direct index for structure ( temp 3-component vector of float) -0:47 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:47 'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:47 Constant: -0:47 2 (const int) -0:47 Constant: -0:47 1 (const int) -0:49 Branch: Return with expression -0:49 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) -0:61 Function Definition: @HSMain(struct-HSInput-vf3-vf31[3];u1; ( temp structure{ temp 3-component vector of float PositionWS}) -0:61 Function Parameters: -0:61 'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:61 'id' ( in uint) -0:? Sequence -0:63 move second child to first child ( temp 3-component vector of float) -0:63 PositionWS: direct index for structure ( temp 3-component vector of float) -0:63 'output' ( temp structure{ temp 3-component vector of float PositionWS}) -0:63 Constant: -0:63 0 (const int) -0:63 PositionWS: direct index for structure ( temp 3-component vector of float) -0:63 indirect index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:63 'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:63 'id' ( in uint) -0:63 Constant: -0:63 0 (const int) -0:64 Branch: Return with expression -0:64 'output' ( temp structure{ temp 3-component vector of float PositionWS}) -0:61 Function Definition: HSMain( ( temp void) -0:61 Function Parameters: -0:? Sequence -0:61 Sequence -0:61 move second child to first child ( temp 3-component vector of float) -0:61 PositionWS: direct index for structure ( temp 3-component vector of float) -0:61 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 0 (const int) -0:61 direct index (layout( location=0) in 3-component vector of float) -0:? 'patch.PositionWS' (layout( location=0) in 3-element array of 3-component vector of float) -0:61 Constant: -0:61 0 (const int) -0:61 move second child to first child ( temp 3-component vector of float) -0:61 NormalWS: direct index for structure ( temp 3-component vector of float) -0:61 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 direct index (layout( location=1) in 3-component vector of float) -0:? 'patch.NormalWS' (layout( location=1) in 3-element array of 3-component vector of float) -0:61 Constant: -0:61 0 (const int) -0:61 move second child to first child ( temp 3-component vector of float) -0:61 PositionWS: direct index for structure ( temp 3-component vector of float) -0:61 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:61 Constant: -0:61 1 (const int) -0:61 Constant: -0:61 0 (const int) -0:61 direct index (layout( location=0) in 3-component vector of float) -0:? 'patch.PositionWS' (layout( location=0) in 3-element array of 3-component vector of float) -0:61 Constant: -0:61 1 (const int) -0:61 move second child to first child ( temp 3-component vector of float) -0:61 NormalWS: direct index for structure ( temp 3-component vector of float) -0:61 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:61 Constant: -0:61 1 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 direct index (layout( location=1) in 3-component vector of float) -0:? 'patch.NormalWS' (layout( location=1) in 3-element array of 3-component vector of float) -0:61 Constant: -0:61 1 (const int) -0:61 move second child to first child ( temp 3-component vector of float) -0:61 PositionWS: direct index for structure ( temp 3-component vector of float) -0:61 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:61 Constant: -0:61 2 (const int) -0:61 Constant: -0:61 0 (const int) -0:61 direct index (layout( location=0) in 3-component vector of float) -0:? 'patch.PositionWS' (layout( location=0) in 3-element array of 3-component vector of float) -0:61 Constant: -0:61 2 (const int) -0:61 move second child to first child ( temp 3-component vector of float) -0:61 NormalWS: direct index for structure ( temp 3-component vector of float) -0:61 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:61 Constant: -0:61 2 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 direct index (layout( location=1) in 3-component vector of float) -0:? 'patch.NormalWS' (layout( location=1) in 3-element array of 3-component vector of float) -0:61 Constant: -0:61 2 (const int) -0:61 move second child to first child ( temp uint) -0:? 'id' ( temp uint) -0:? 'id' ( in uint InvocationID) -0:61 Sequence -0:61 move second child to first child ( temp 3-component vector of float) -0:61 indirect index (layout( location=0) out 3-component vector of float) -0:? '@entryPointOutput.PositionWS' (layout( location=0) out 3-element array of 3-component vector of float) -0:? 'id' ( in uint InvocationID) -0:61 PositionWS: direct index for structure ( temp 3-component vector of float) -0:61 Function Call: @HSMain(struct-HSInput-vf3-vf31[3];u1; ( temp structure{ temp 3-component vector of float PositionWS}) -0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:? 'id' ( temp uint) -0:61 Constant: -0:61 0 (const int) -0:? Barrier ( temp void) -0:? Test condition and select ( temp void) -0:? Condition -0:? Compare Equal ( temp bool) -0:? 'id' ( in uint InvocationID) -0:? Constant: -0:? 0 (const int) -0:? true case -0:? Sequence -0:? move second child to first child ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) -0:? Function Call: HSPatchConstant(struct-HSInput-vf3-vf31[3]; ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) -0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:? Sequence -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 0 (const int) -0:? direct index ( temp float) -0:? EdgeTessFactor: direct index for structure ( temp 3-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 0 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 1 (const int) -0:? direct index ( temp float) -0:? EdgeTessFactor: direct index for structure ( temp 3-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 1 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 2 (const int) -0:? direct index ( temp float) -0:? EdgeTessFactor: direct index for structure ( temp 3-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 2 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelInner) -0:? '@patchConstantOutput.InsideTessFactor' ( patch out 2-element array of float TessLevelInner) -0:? Constant: -0:? 0 (const int) -0:? InsideTessFactor: direct index for structure ( temp float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) -0:? Constant: -0:? 1 (const int) -0:? move second child to first child ( temp 3-component vector of float) -0:? '@patchConstantOutput.NormalWS[0]' (layout( location=1) patch out 3-component vector of float) -0:? direct index ( temp 3-component vector of float) -0:? NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) -0:? Constant: -0:? 2 (const int) -0:? Constant: -0:? 0 (const int) -0:? move second child to first child ( temp 3-component vector of float) -0:? '@patchConstantOutput.NormalWS[1]' (layout( location=2) patch out 3-component vector of float) -0:? direct index ( temp 3-component vector of float) -0:? NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) -0:? Constant: -0:? 2 (const int) -0:? Constant: -0:? 1 (const int) -0:? move second child to first child ( temp 3-component vector of float) -0:? '@patchConstantOutput.NormalWS[2]' (layout( location=3) patch out 3-component vector of float) -0:? direct index ( temp 3-component vector of float) -0:? NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) -0:? Constant: -0:? 2 (const int) -0:? Constant: -0:? 2 (const int) -0:84 Function Definition: GSMain(struct-GSVertexInput-vf3-vf31[3];struct-GSVertexOutput-vf41; ( temp void) -0:84 Function Parameters: -0:84 'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:84 'output' ( out structure{ temp 4-component vector of float PositionCS}) -0:? Sequence -0:86 Sequence -0:86 move second child to first child ( temp 3-component vector of float) -0:86 'P0' ( temp 3-component vector of float) -0:86 vector swizzle ( temp 3-component vector of float) -0:86 PositionWS: direct index for structure ( temp 3-component vector of float) -0:86 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:86 'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 0 (const int) -0:86 Sequence -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 1 (const int) -0:86 Constant: -0:86 2 (const int) -0:87 Sequence -0:87 move second child to first child ( temp 3-component vector of float) -0:87 'P1' ( temp 3-component vector of float) -0:87 vector swizzle ( temp 3-component vector of float) -0:87 PositionWS: direct index for structure ( temp 3-component vector of float) -0:87 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:87 'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:87 Constant: -0:87 1 (const int) -0:87 Constant: -0:87 0 (const int) -0:87 Sequence -0:87 Constant: -0:87 0 (const int) -0:87 Constant: -0:87 1 (const int) -0:87 Constant: -0:87 2 (const int) -0:88 Sequence -0:88 move second child to first child ( temp 3-component vector of float) -0:88 'P2' ( temp 3-component vector of float) -0:88 vector swizzle ( temp 3-component vector of float) -0:88 PositionWS: direct index for structure ( temp 3-component vector of float) -0:88 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:88 'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) -0:88 Constant: -0:88 2 (const int) -0:88 Constant: -0:88 0 (const int) -0:88 Sequence -0:88 Constant: -0:88 0 (const int) -0:88 Constant: -0:88 1 (const int) -0:88 Constant: -0:88 2 (const int) -0:92 add second child into first child ( temp float) -0:92 direct index ( temp float) -0:92 'P0' ( temp 3-component vector of float) -0:92 Constant: -0:92 2 (const int) -0:92 Constant: -0:92 0.001000 -0:93 add second child into first child ( temp float) -0:93 direct index ( temp float) -0:93 'P1' ( temp 3-component vector of float) -0:93 Constant: -0:93 2 (const int) -0:93 Constant: -0:93 0.001000 -0:94 add second child into first child ( temp float) -0:94 direct index ( temp float) -0:94 'P2' ( temp 3-component vector of float) -0:94 Constant: -0:94 2 (const int) -0:94 Constant: -0:94 0.001000 -0:95 Sequence -0:95 move second child to first child ( temp 4-component vector of float) -0:95 'Q0' ( temp 4-component vector of float) -0:95 vector-times-matrix ( temp 4-component vector of float) -0:95 Construct vec4 ( temp 4-component vector of float) -0:95 'P0' ( temp 3-component vector of float) -0:95 Constant: -0:95 1.000000 -0:95 proj_matrix: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) -0:95 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor}) -0:95 Constant: -0:95 1 (const uint) -0:96 Sequence -0:96 move second child to first child ( temp 4-component vector of float) -0:96 'Q1' ( temp 4-component vector of float) -0:96 vector-times-matrix ( temp 4-component vector of float) -0:96 Construct vec4 ( temp 4-component vector of float) -0:96 'P1' ( temp 3-component vector of float) -0:96 Constant: -0:96 1.000000 -0:96 proj_matrix: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) -0:96 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor}) -0:96 Constant: -0:96 1 (const uint) -0:97 Sequence -0:97 move second child to first child ( temp 4-component vector of float) -0:97 'Q2' ( temp 4-component vector of float) -0:97 vector-times-matrix ( temp 4-component vector of float) -0:97 Construct vec4 ( temp 4-component vector of float) -0:97 'P2' ( temp 3-component vector of float) -0:97 Constant: -0:97 1.000000 -0:97 proj_matrix: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) -0:97 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor}) -0:97 Constant: -0:97 1 (const uint) -0:100 move second child to first child ( temp 4-component vector of float) -0:100 PositionCS: direct index for structure ( temp 4-component vector of float) -0:100 'vertex' ( temp structure{ temp 4-component vector of float PositionCS}) -0:100 Constant: -0:100 0 (const int) -0:100 'Q0' ( temp 4-component vector of float) -0:101 Constant: -0:101 0.000000 -0:102 move second child to first child ( temp 4-component vector of float) -0:102 PositionCS: direct index for structure ( temp 4-component vector of float) -0:102 'vertex' ( temp structure{ temp 4-component vector of float PositionCS}) -0:102 Constant: -0:102 0 (const int) -0:102 'Q1' ( temp 4-component vector of float) -0:103 Constant: -0:103 0.000000 -0:104 Constant: -0:104 0.000000 -0:107 move second child to first child ( temp 4-component vector of float) -0:107 PositionCS: direct index for structure ( temp 4-component vector of float) -0:107 'vertex' ( temp structure{ temp 4-component vector of float PositionCS}) -0:107 Constant: -0:107 0 (const int) -0:107 'Q1' ( temp 4-component vector of float) -0:108 Constant: -0:108 0.000000 -0:109 move second child to first child ( temp 4-component vector of float) -0:109 PositionCS: direct index for structure ( temp 4-component vector of float) -0:109 'vertex' ( temp structure{ temp 4-component vector of float PositionCS}) -0:109 Constant: -0:109 0 (const int) -0:109 'Q2' ( temp 4-component vector of float) -0:110 Constant: -0:110 0.000000 -0:111 Constant: -0:111 0.000000 -0:114 move second child to first child ( temp 4-component vector of float) -0:114 PositionCS: direct index for structure ( temp 4-component vector of float) -0:114 'vertex' ( temp structure{ temp 4-component vector of float PositionCS}) -0:114 Constant: -0:114 0 (const int) -0:114 'Q2' ( temp 4-component vector of float) -0:115 Constant: -0:115 0.000000 -0:116 move second child to first child ( temp 4-component vector of float) -0:116 PositionCS: direct index for structure ( temp 4-component vector of float) -0:116 'vertex' ( temp structure{ temp 4-component vector of float PositionCS}) -0:116 Constant: -0:116 0 (const int) -0:116 'Q0' ( temp 4-component vector of float) -0:117 Constant: -0:117 0.000000 -0:118 Constant: -0:118 0.000000 -0:? Linker Objects -0:? 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor}) -0:? '@entryPointOutput.PositionWS' (layout( location=0) out 3-element array of 3-component vector of float) -0:? 'patch.PositionWS' (layout( location=0) in 3-element array of 3-component vector of float) -0:? 'patch.NormalWS' (layout( location=1) in 3-element array of 3-component vector of float) -0:? 'id' ( in uint InvocationID) -0:? '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter) -0:? '@patchConstantOutput.InsideTessFactor' ( patch out 2-element array of float TessLevelInner) -0:? '@patchConstantOutput.NormalWS[0]' (layout( location=1) patch out 3-component vector of float) -0:? '@patchConstantOutput.NormalWS[1]' (layout( location=2) patch out 3-component vector of float) -0:? '@patchConstantOutput.NormalWS[2]' (layout( location=3) patch out 3-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 236 - - Capability Tessellation - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint TessellationControl 4 "HSMain" 97 102 120 123 145 158 162 165 168 - ExecutionMode 4 OutputVertices 3 - ExecutionMode 4 Triangles - ExecutionMode 4 SpacingFractionalOdd - ExecutionMode 4 VertexOrderCcw - Source HLSL 500 - Name 4 "HSMain" - Name 8 "HSInput" - MemberName 8(HSInput) 0 "PositionWS" - MemberName 8(HSInput) 1 "NormalWS" - Name 15 "HSTrianglePatchConstant" - MemberName 15(HSTrianglePatchConstant) 0 "EdgeTessFactor" - MemberName 15(HSTrianglePatchConstant) 1 "InsideTessFactor" - MemberName 15(HSTrianglePatchConstant) 2 "NormalWS" - Name 18 "HSPatchConstant(struct-HSInput-vf3-vf31[3];" - Name 17 "patch" - Name 21 "HSOutput" - MemberName 21(HSOutput) 0 "PositionWS" - Name 25 "@HSMain(struct-HSInput-vf3-vf31[3];u1;" - Name 23 "patch" - Name 24 "id" - Name 27 "GSVertexInput" - MemberName 27(GSVertexInput) 0 "PositionWS" - MemberName 27(GSVertexInput) 1 "NormalWS" - Name 31 "GSVertexOutput" - MemberName 31(GSVertexOutput) 0 "PositionCS" - Name 36 "GSMain(struct-GSVertexInput-vf3-vf31[3];struct-GSVertexOutput-vf41;" - Name 34 "input" - Name 35 "output" - Name 39 "roundedEdgeTessFactor" - Name 42 "UniformBlock0" - MemberName 42(UniformBlock0) 0 "model_view_matrix" - MemberName 42(UniformBlock0) 1 "proj_matrix" - MemberName 42(UniformBlock0) 2 "model_view_proj_matrix" - MemberName 42(UniformBlock0) 3 "normal_matrix" - MemberName 42(UniformBlock0) 4 "color" - MemberName 42(UniformBlock0) 5 "view_dir" - MemberName 42(UniformBlock0) 6 "tess_factor" - Name 44 "" - Name 51 "roundedInsideTessFactor" - Name 53 "insideTessFactor" - Name 56 "result" - Name 87 "output" - Name 95 "patch" - Name 97 "patch.PositionWS" - Name 102 "patch.NormalWS" - Name 118 "id" - Name 120 "id" - Name 123 "@entryPointOutput.PositionWS" - Name 125 "param" - Name 127 "param" - Name 139 "@patchConstantResult" - Name 140 "param" - Name 145 "@patchConstantOutput.EdgeTessFactor" - Name 158 "@patchConstantOutput.InsideTessFactor" - Name 162 "@patchConstantOutput.NormalWS[0]" - Name 165 "@patchConstantOutput.NormalWS[1]" - Name 168 "@patchConstantOutput.NormalWS[2]" - Name 171 "P0" - Name 174 "P1" - Name 177 "P2" - Name 194 "Q0" - Name 204 "Q1" - Name 213 "Q2" - Name 222 "vertex" - MemberDecorate 42(UniformBlock0) 0 RowMajor - MemberDecorate 42(UniformBlock0) 0 Offset 0 - MemberDecorate 42(UniformBlock0) 0 MatrixStride 16 - MemberDecorate 42(UniformBlock0) 1 RowMajor - MemberDecorate 42(UniformBlock0) 1 Offset 64 - MemberDecorate 42(UniformBlock0) 1 MatrixStride 16 - MemberDecorate 42(UniformBlock0) 2 RowMajor - MemberDecorate 42(UniformBlock0) 2 Offset 128 - MemberDecorate 42(UniformBlock0) 2 MatrixStride 16 - MemberDecorate 42(UniformBlock0) 3 RowMajor - MemberDecorate 42(UniformBlock0) 3 Offset 192 - MemberDecorate 42(UniformBlock0) 3 MatrixStride 16 - MemberDecorate 42(UniformBlock0) 4 Offset 240 - MemberDecorate 42(UniformBlock0) 5 Offset 256 - MemberDecorate 42(UniformBlock0) 6 Offset 272 - Decorate 42(UniformBlock0) Block - Decorate 44 DescriptorSet 0 - Decorate 44 Binding 0 - Decorate 97(patch.PositionWS) Location 0 - Decorate 102(patch.NormalWS) Location 1 - Decorate 120(id) BuiltIn InvocationId - Decorate 123(@entryPointOutput.PositionWS) Location 0 - Decorate 145(@patchConstantOutput.EdgeTessFactor) Patch - Decorate 145(@patchConstantOutput.EdgeTessFactor) BuiltIn TessLevelOuter - Decorate 158(@patchConstantOutput.InsideTessFactor) Patch - Decorate 158(@patchConstantOutput.InsideTessFactor) BuiltIn TessLevelInner - Decorate 162(@patchConstantOutput.NormalWS[0]) Patch - Decorate 162(@patchConstantOutput.NormalWS[0]) Location 1 - Decorate 165(@patchConstantOutput.NormalWS[1]) Patch - Decorate 165(@patchConstantOutput.NormalWS[1]) Location 2 - Decorate 168(@patchConstantOutput.NormalWS[2]) Patch - Decorate 168(@patchConstantOutput.NormalWS[2]) Location 3 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 3 - 8(HSInput): TypeStruct 7(fvec3) 7(fvec3) - 9: TypeInt 32 0 - 10: 9(int) Constant 3 - 11: TypeArray 8(HSInput) 10 - 12: TypePointer Function 11 - 13: TypeArray 6(float) 10 - 14: TypeArray 7(fvec3) 10 -15(HSTrianglePatchConstant): TypeStruct 13 6(float) 14 - 16: TypeFunction 15(HSTrianglePatchConstant) 12(ptr) - 20: TypePointer Function 9(int) - 21(HSOutput): TypeStruct 7(fvec3) - 22: TypeFunction 21(HSOutput) 12(ptr) 20(ptr) -27(GSVertexInput): TypeStruct 7(fvec3) 7(fvec3) - 28: TypeArray 27(GSVertexInput) 10 - 29: TypePointer Function 28 - 30: TypeVector 6(float) 4 -31(GSVertexOutput): TypeStruct 30(fvec4) - 32: TypePointer Function 31(GSVertexOutput) - 33: TypeFunction 2 29(ptr) 32(ptr) - 38: TypePointer Function 7(fvec3) - 40: TypeMatrix 30(fvec4) 4 - 41: TypeMatrix 7(fvec3) 3 -42(UniformBlock0): TypeStruct 40 40 40 41 7(fvec3) 7(fvec3) 7(fvec3) - 43: TypePointer Uniform 42(UniformBlock0) - 44: 43(ptr) Variable Uniform - 45: TypeInt 32 1 - 46: 45(int) Constant 6 - 47: TypePointer Uniform 7(fvec3) - 50: TypePointer Function 6(float) - 52: 6(float) Constant 1077936128 - 54: 6(float) Constant 1065353216 - 55: TypePointer Function 15(HSTrianglePatchConstant) - 57: 45(int) Constant 0 - 58: 9(int) Constant 0 - 62: 45(int) Constant 1 - 63: 9(int) Constant 1 - 67: 45(int) Constant 2 - 68: 9(int) Constant 2 - 86: TypePointer Function 21(HSOutput) - 96: TypePointer Input 14 -97(patch.PositionWS): 96(ptr) Variable Input - 98: TypePointer Input 7(fvec3) -102(patch.NormalWS): 96(ptr) Variable Input - 119: TypePointer Input 9(int) - 120(id): 119(ptr) Variable Input - 122: TypePointer Output 14 -123(@entryPointOutput.PositionWS): 122(ptr) Variable Output - 131: TypePointer Output 7(fvec3) - 133: 9(int) Constant 4 - 135: TypeBool - 143: TypeArray 6(float) 133 - 144: TypePointer Output 143 -145(@patchConstantOutput.EdgeTessFactor): 144(ptr) Variable Output - 148: TypePointer Output 6(float) - 156: TypeArray 6(float) 68 - 157: TypePointer Output 156 -158(@patchConstantOutput.InsideTessFactor): 157(ptr) Variable Output -162(@patchConstantOutput.NormalWS[0]): 131(ptr) Variable Output -165(@patchConstantOutput.NormalWS[1]): 131(ptr) Variable Output -168(@patchConstantOutput.NormalWS[2]): 131(ptr) Variable Output - 180: 6(float) Constant 981668463 - 193: TypePointer Function 30(fvec4) - 200: TypePointer Uniform 40 - 225: 6(float) Constant 0 - 4(HSMain): 2 Function None 3 - 5: Label - 95(patch): 12(ptr) Variable Function - 118(id): 20(ptr) Variable Function - 125(param): 12(ptr) Variable Function - 127(param): 20(ptr) Variable Function -139(@patchConstantResult): 55(ptr) Variable Function - 140(param): 12(ptr) Variable Function - 99: 98(ptr) AccessChain 97(patch.PositionWS) 57 - 100: 7(fvec3) Load 99 - 101: 38(ptr) AccessChain 95(patch) 57 57 - Store 101 100 - 103: 98(ptr) AccessChain 102(patch.NormalWS) 57 - 104: 7(fvec3) Load 103 - 105: 38(ptr) AccessChain 95(patch) 57 62 - Store 105 104 - 106: 98(ptr) AccessChain 97(patch.PositionWS) 62 - 107: 7(fvec3) Load 106 - 108: 38(ptr) AccessChain 95(patch) 62 57 - Store 108 107 - 109: 98(ptr) AccessChain 102(patch.NormalWS) 62 - 110: 7(fvec3) Load 109 - 111: 38(ptr) AccessChain 95(patch) 62 62 - Store 111 110 - 112: 98(ptr) AccessChain 97(patch.PositionWS) 67 - 113: 7(fvec3) Load 112 - 114: 38(ptr) AccessChain 95(patch) 67 57 - Store 114 113 - 115: 98(ptr) AccessChain 102(patch.NormalWS) 67 - 116: 7(fvec3) Load 115 - 117: 38(ptr) AccessChain 95(patch) 67 62 - Store 117 116 - 121: 9(int) Load 120(id) - Store 118(id) 121 - 124: 9(int) Load 120(id) - 126: 11 Load 95(patch) - Store 125(param) 126 - 128: 9(int) Load 118(id) - Store 127(param) 128 - 129:21(HSOutput) FunctionCall 25(@HSMain(struct-HSInput-vf3-vf31[3];u1;) 125(param) 127(param) - 130: 7(fvec3) CompositeExtract 129 0 - 132: 131(ptr) AccessChain 123(@entryPointOutput.PositionWS) 124 - Store 132 130 - ControlBarrier 68 133 58 - 134: 9(int) Load 120(id) - 136: 135(bool) IEqual 134 57 - SelectionMerge 138 None - BranchConditional 136 137 138 - 137: Label - 141: 11 Load 95(patch) - Store 140(param) 141 - 142:15(HSTrianglePatchConstant) FunctionCall 18(HSPatchConstant(struct-HSInput-vf3-vf31[3];) 140(param) - Store 139(@patchConstantResult) 142 - 146: 50(ptr) AccessChain 139(@patchConstantResult) 57 57 - 147: 6(float) Load 146 - 149: 148(ptr) AccessChain 145(@patchConstantOutput.EdgeTessFactor) 57 - Store 149 147 - 150: 50(ptr) AccessChain 139(@patchConstantResult) 57 62 - 151: 6(float) Load 150 - 152: 148(ptr) AccessChain 145(@patchConstantOutput.EdgeTessFactor) 62 - Store 152 151 - 153: 50(ptr) AccessChain 139(@patchConstantResult) 57 67 - 154: 6(float) Load 153 - 155: 148(ptr) AccessChain 145(@patchConstantOutput.EdgeTessFactor) 67 - Store 155 154 - 159: 50(ptr) AccessChain 139(@patchConstantResult) 62 - 160: 6(float) Load 159 - 161: 148(ptr) AccessChain 158(@patchConstantOutput.InsideTessFactor) 57 - Store 161 160 - 163: 38(ptr) AccessChain 139(@patchConstantResult) 67 57 - 164: 7(fvec3) Load 163 - Store 162(@patchConstantOutput.NormalWS[0]) 164 - 166: 38(ptr) AccessChain 139(@patchConstantResult) 67 62 - 167: 7(fvec3) Load 166 - Store 165(@patchConstantOutput.NormalWS[1]) 167 - 169: 38(ptr) AccessChain 139(@patchConstantResult) 67 67 - 170: 7(fvec3) Load 169 - Store 168(@patchConstantOutput.NormalWS[2]) 170 - Branch 138 - 138: Label - Return - FunctionEnd -18(HSPatchConstant(struct-HSInput-vf3-vf31[3];):15(HSTrianglePatchConstant) Function None 16 - 17(patch): 12(ptr) FunctionParameter - 19: Label -39(roundedEdgeTessFactor): 38(ptr) Variable Function -51(roundedInsideTessFactor): 50(ptr) Variable Function -53(insideTessFactor): 50(ptr) Variable Function - 56(result): 55(ptr) Variable Function - 48: 47(ptr) AccessChain 44 46 - 49: 7(fvec3) Load 48 - Store 39(roundedEdgeTessFactor) 49 - Store 51(roundedInsideTessFactor) 52 - Store 53(insideTessFactor) 54 - 59: 50(ptr) AccessChain 39(roundedEdgeTessFactor) 58 - 60: 6(float) Load 59 - 61: 50(ptr) AccessChain 56(result) 57 57 - Store 61 60 - 64: 50(ptr) AccessChain 39(roundedEdgeTessFactor) 63 - 65: 6(float) Load 64 - 66: 50(ptr) AccessChain 56(result) 57 62 - Store 66 65 - 69: 50(ptr) AccessChain 39(roundedEdgeTessFactor) 68 - 70: 6(float) Load 69 - 71: 50(ptr) AccessChain 56(result) 57 67 - Store 71 70 - 72: 6(float) Load 51(roundedInsideTessFactor) - 73: 50(ptr) AccessChain 56(result) 62 - Store 73 72 - 74: 38(ptr) AccessChain 17(patch) 57 62 - 75: 7(fvec3) Load 74 - 76: 38(ptr) AccessChain 56(result) 67 57 - Store 76 75 - 77: 38(ptr) AccessChain 17(patch) 62 62 - 78: 7(fvec3) Load 77 - 79: 38(ptr) AccessChain 56(result) 67 62 - Store 79 78 - 80: 38(ptr) AccessChain 17(patch) 67 62 - 81: 7(fvec3) Load 80 - 82: 38(ptr) AccessChain 56(result) 67 67 - Store 82 81 - 83:15(HSTrianglePatchConstant) Load 56(result) - ReturnValue 83 - FunctionEnd -25(@HSMain(struct-HSInput-vf3-vf31[3];u1;):21(HSOutput) Function None 22 - 23(patch): 12(ptr) FunctionParameter - 24(id): 20(ptr) FunctionParameter - 26: Label - 87(output): 86(ptr) Variable Function - 88: 9(int) Load 24(id) - 89: 38(ptr) AccessChain 23(patch) 88 57 - 90: 7(fvec3) Load 89 - 91: 38(ptr) AccessChain 87(output) 57 - Store 91 90 - 92:21(HSOutput) Load 87(output) - ReturnValue 92 - FunctionEnd -36(GSMain(struct-GSVertexInput-vf3-vf31[3];struct-GSVertexOutput-vf41;): 2 Function None 33 - 34(input): 29(ptr) FunctionParameter - 35(output): 32(ptr) FunctionParameter - 37: Label - 171(P0): 38(ptr) Variable Function - 174(P1): 38(ptr) Variable Function - 177(P2): 38(ptr) Variable Function - 194(Q0): 193(ptr) Variable Function - 204(Q1): 193(ptr) Variable Function - 213(Q2): 193(ptr) Variable Function - 222(vertex): 32(ptr) Variable Function - 172: 38(ptr) AccessChain 34(input) 57 57 - 173: 7(fvec3) Load 172 - Store 171(P0) 173 - 175: 38(ptr) AccessChain 34(input) 62 57 - 176: 7(fvec3) Load 175 - Store 174(P1) 176 - 178: 38(ptr) AccessChain 34(input) 67 57 - 179: 7(fvec3) Load 178 - Store 177(P2) 179 - 181: 50(ptr) AccessChain 171(P0) 68 - 182: 6(float) Load 181 - 183: 6(float) FAdd 182 180 - 184: 50(ptr) AccessChain 171(P0) 68 - Store 184 183 - 185: 50(ptr) AccessChain 174(P1) 68 - 186: 6(float) Load 185 - 187: 6(float) FAdd 186 180 - 188: 50(ptr) AccessChain 174(P1) 68 - Store 188 187 - 189: 50(ptr) AccessChain 177(P2) 68 - 190: 6(float) Load 189 - 191: 6(float) FAdd 190 180 - 192: 50(ptr) AccessChain 177(P2) 68 - Store 192 191 - 195: 7(fvec3) Load 171(P0) - 196: 6(float) CompositeExtract 195 0 - 197: 6(float) CompositeExtract 195 1 - 198: 6(float) CompositeExtract 195 2 - 199: 30(fvec4) CompositeConstruct 196 197 198 54 - 201: 200(ptr) AccessChain 44 62 - 202: 40 Load 201 - 203: 30(fvec4) VectorTimesMatrix 199 202 - Store 194(Q0) 203 - 205: 7(fvec3) Load 174(P1) - 206: 6(float) CompositeExtract 205 0 - 207: 6(float) CompositeExtract 205 1 - 208: 6(float) CompositeExtract 205 2 - 209: 30(fvec4) CompositeConstruct 206 207 208 54 - 210: 200(ptr) AccessChain 44 62 - 211: 40 Load 210 - 212: 30(fvec4) VectorTimesMatrix 209 211 - Store 204(Q1) 212 - 214: 7(fvec3) Load 177(P2) - 215: 6(float) CompositeExtract 214 0 - 216: 6(float) CompositeExtract 214 1 - 217: 6(float) CompositeExtract 214 2 - 218: 30(fvec4) CompositeConstruct 215 216 217 54 - 219: 200(ptr) AccessChain 44 62 - 220: 40 Load 219 - 221: 30(fvec4) VectorTimesMatrix 218 220 - Store 213(Q2) 221 - 223: 30(fvec4) Load 194(Q0) - 224: 193(ptr) AccessChain 222(vertex) 57 - Store 224 223 - 226: 30(fvec4) Load 204(Q1) - 227: 193(ptr) AccessChain 222(vertex) 57 - Store 227 226 - 228: 30(fvec4) Load 204(Q1) - 229: 193(ptr) AccessChain 222(vertex) 57 - Store 229 228 - 230: 30(fvec4) Load 213(Q2) - 231: 193(ptr) AccessChain 222(vertex) 57 - Store 231 230 - 232: 30(fvec4) Load 213(Q2) - 233: 193(ptr) AccessChain 222(vertex) 57 - Store 233 232 - 234: 30(fvec4) Load 194(Q0) - 235: 193(ptr) AccessChain 222(vertex) 57 - Store 235 234 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.hlslOffset.vert.out b/deps/glslang/Test/baseResults/hlsl.hlslOffset.vert.out deleted file mode 100644 index 09545c88..00000000 --- a/deps/glslang/Test/baseResults/hlsl.hlslOffset.vert.out +++ /dev/null @@ -1,86 +0,0 @@ -hlsl.hlslOffset.vert -Shader version: 500 -0:? Sequence -0:20 Function Definition: @main( ( temp void) -0:20 Function Parameters: -0:20 Function Definition: main( ( temp void) -0:20 Function Parameters: -0:? Sequence -0:20 Function Call: @main( ( temp void) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform float m0, layout( row_major std140) uniform 3-component vector of float m4, layout( row_major std140) uniform float m16, layout( row_major std140 offset=20) uniform 3-component vector of float m20, layout( row_major std140 offset=36) uniform 3-component vector of float m36, layout( row_major std140 offset=56) uniform 2-component vector of float m56, layout( row_major std140) uniform float m64, layout( row_major std140) uniform 2-component vector of float m68, layout( row_major std140) uniform float m76, layout( row_major std140) uniform float m80, layout( row_major std140) uniform 1-element array of 2-component vector of float m96}) - - -Linked vertex stage: - - -Shader version: 500 -0:? Sequence -0:20 Function Definition: @main( ( temp void) -0:20 Function Parameters: -0:20 Function Definition: main( ( temp void) -0:20 Function Parameters: -0:? Sequence -0:20 Function Call: @main( ( temp void) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform float m0, layout( row_major std140) uniform 3-component vector of float m4, layout( row_major std140) uniform float m16, layout( row_major std140 offset=20) uniform 3-component vector of float m20, layout( row_major std140 offset=36) uniform 3-component vector of float m36, layout( row_major std140 offset=56) uniform 2-component vector of float m56, layout( row_major std140) uniform float m64, layout( row_major std140) uniform 2-component vector of float m68, layout( row_major std140) uniform float m76, layout( row_major std140) uniform float m80, layout( row_major std140) uniform 1-element array of 2-component vector of float m96}) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 18 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" - Source HLSL 500 - Name 4 "main" - Name 6 "@main(" - Name 15 "b" - MemberName 15(b) 0 "m0" - MemberName 15(b) 1 "m4" - MemberName 15(b) 2 "m16" - MemberName 15(b) 3 "m20" - MemberName 15(b) 4 "m36" - MemberName 15(b) 5 "m56" - MemberName 15(b) 6 "m64" - MemberName 15(b) 7 "m68" - MemberName 15(b) 8 "m76" - MemberName 15(b) 9 "m80" - MemberName 15(b) 10 "m96" - Name 17 "" - Decorate 14 ArrayStride 16 - MemberDecorate 15(b) 0 Offset 0 - MemberDecorate 15(b) 1 Offset 4 - MemberDecorate 15(b) 2 Offset 16 - MemberDecorate 15(b) 3 Offset 20 - MemberDecorate 15(b) 4 Offset 36 - MemberDecorate 15(b) 5 Offset 56 - MemberDecorate 15(b) 6 Offset 64 - MemberDecorate 15(b) 7 Offset 68 - MemberDecorate 15(b) 8 Offset 76 - MemberDecorate 15(b) 9 Offset 80 - MemberDecorate 15(b) 10 Offset 96 - Decorate 15(b) Block - Decorate 17 DescriptorSet 0 - Decorate 17 Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 9: TypeFloat 32 - 10: TypeVector 9(float) 3 - 11: TypeVector 9(float) 2 - 12: TypeInt 32 0 - 13: 12(int) Constant 1 - 14: TypeArray 11(fvec2) 13 - 15(b): TypeStruct 9(float) 10(fvec3) 9(float) 10(fvec3) 10(fvec3) 11(fvec2) 9(float) 11(fvec2) 9(float) 9(float) 14 - 16: TypePointer Uniform 15(b) - 17: 16(ptr) Variable Uniform - 4(main): 2 Function None 3 - 5: Label - 8: 2 FunctionCall 6(@main() - Return - FunctionEnd - 6(@main(): 2 Function None 3 - 7: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.hull.1.tesc.out b/deps/glslang/Test/baseResults/hlsl.hull.1.tesc.out deleted file mode 100644 index cba0f8bb..00000000 --- a/deps/glslang/Test/baseResults/hlsl.hull.1.tesc.out +++ /dev/null @@ -1,491 +0,0 @@ -hlsl.hull.1.tesc -Shader version: 500 -vertices = 4 -vertex spacing = equal_spacing -0:? Sequence -0:26 Function Definition: @main(struct-VS_OUT-vf31[4];u1; ( temp structure{ temp 3-component vector of float cpoint}) -0:26 Function Parameters: -0:26 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) -0:26 'm_cpid' ( in uint) -0:? Sequence -0:28 move second child to first child ( temp 3-component vector of float) -0:28 cpoint: direct index for structure ( temp 3-component vector of float) -0:28 'output' ( temp structure{ temp 3-component vector of float cpoint}) -0:28 Constant: -0:28 0 (const int) -0:28 cpoint: direct index for structure ( temp 3-component vector of float) -0:28 direct index ( temp structure{ temp 3-component vector of float cpoint}) -0:28 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 0 (const int) -0:29 Branch: Return with expression -0:29 'output' ( temp structure{ temp 3-component vector of float cpoint}) -0:26 Function Definition: main( ( temp void) -0:26 Function Parameters: -0:? Sequence -0:26 Sequence -0:26 move second child to first child ( temp 3-component vector of float) -0:26 cpoint: direct index for structure ( temp 3-component vector of float) -0:26 direct index ( temp structure{ temp 3-component vector of float cpoint}) -0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 0 (const int) -0:26 direct index (layout( location=0) in 3-component vector of float) -0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float) -0:26 Constant: -0:26 0 (const int) -0:26 move second child to first child ( temp 3-component vector of float) -0:26 cpoint: direct index for structure ( temp 3-component vector of float) -0:26 direct index ( temp structure{ temp 3-component vector of float cpoint}) -0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 0 (const int) -0:26 direct index (layout( location=0) in 3-component vector of float) -0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float) -0:26 Constant: -0:26 1 (const int) -0:26 move second child to first child ( temp 3-component vector of float) -0:26 cpoint: direct index for structure ( temp 3-component vector of float) -0:26 direct index ( temp structure{ temp 3-component vector of float cpoint}) -0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) -0:26 Constant: -0:26 2 (const int) -0:26 Constant: -0:26 0 (const int) -0:26 direct index (layout( location=0) in 3-component vector of float) -0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float) -0:26 Constant: -0:26 2 (const int) -0:26 move second child to first child ( temp 3-component vector of float) -0:26 cpoint: direct index for structure ( temp 3-component vector of float) -0:26 direct index ( temp structure{ temp 3-component vector of float cpoint}) -0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) -0:26 Constant: -0:26 3 (const int) -0:26 Constant: -0:26 0 (const int) -0:26 direct index (layout( location=0) in 3-component vector of float) -0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float) -0:26 Constant: -0:26 3 (const int) -0:26 move second child to first child ( temp uint) -0:? 'm_cpid' ( temp uint) -0:? 'm_cpid' ( in uint InvocationID) -0:26 Sequence -0:26 move second child to first child ( temp 3-component vector of float) -0:26 indirect index (layout( location=0) out 3-component vector of float) -0:? '@entryPointOutput.cpoint' (layout( location=0) out 4-element array of 3-component vector of float) -0:? 'm_cpid' ( in uint InvocationID) -0:26 cpoint: direct index for structure ( temp 3-component vector of float) -0:26 Function Call: @main(struct-VS_OUT-vf31[4];u1; ( temp structure{ temp 3-component vector of float cpoint}) -0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) -0:? 'm_cpid' ( temp uint) -0:26 Constant: -0:26 0 (const int) -0:? Barrier ( temp void) -0:? Test condition and select ( temp void) -0:? Condition -0:? Compare Equal ( temp bool) -0:? 'm_cpid' ( in uint InvocationID) -0:? Constant: -0:? 0 (const int) -0:? true case -0:? Sequence -0:? move second child to first child ( temp structure{ temp 2-element array of float edges}) -0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) -0:? Function Call: PCF(u1; ( temp structure{ temp 2-element array of float edges}) -0:? 'pid' ( in uint PrimitiveID) -0:? Sequence -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 0 (const int) -0:? direct index ( temp float) -0:? edges: direct index for structure ( temp 2-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 0 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 1 (const int) -0:? direct index ( temp float) -0:? edges: direct index for structure ( temp 2-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 1 (const int) -0:33 Function Definition: PCF(u1; ( temp structure{ temp 2-element array of float edges}) -0:33 Function Parameters: -0:33 'pid' ( in uint) -0:? Sequence -0:36 move second child to first child ( temp float) -0:36 direct index ( temp float) -0:36 edges: direct index for structure ( temp 2-element array of float) -0:36 'output' ( temp structure{ temp 2-element array of float edges}) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 2.000000 -0:37 move second child to first child ( temp float) -0:37 direct index ( temp float) -0:37 edges: direct index for structure ( temp 2-element array of float) -0:37 'output' ( temp structure{ temp 2-element array of float edges}) -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 1 (const int) -0:37 Constant: -0:37 8.000000 -0:38 Branch: Return with expression -0:38 'output' ( temp structure{ temp 2-element array of float edges}) -0:? Linker Objects -0:? '@entryPointOutput.cpoint' (layout( location=0) out 4-element array of 3-component vector of float) -0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float) -0:? 'm_cpid' ( in uint InvocationID) -0:? 'pid' ( in uint PrimitiveID) -0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) - - -Linked tessellation control stage: - - -Shader version: 500 -vertices = 4 -vertex spacing = equal_spacing -0:? Sequence -0:26 Function Definition: @main(struct-VS_OUT-vf31[4];u1; ( temp structure{ temp 3-component vector of float cpoint}) -0:26 Function Parameters: -0:26 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) -0:26 'm_cpid' ( in uint) -0:? Sequence -0:28 move second child to first child ( temp 3-component vector of float) -0:28 cpoint: direct index for structure ( temp 3-component vector of float) -0:28 'output' ( temp structure{ temp 3-component vector of float cpoint}) -0:28 Constant: -0:28 0 (const int) -0:28 cpoint: direct index for structure ( temp 3-component vector of float) -0:28 direct index ( temp structure{ temp 3-component vector of float cpoint}) -0:28 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 0 (const int) -0:29 Branch: Return with expression -0:29 'output' ( temp structure{ temp 3-component vector of float cpoint}) -0:26 Function Definition: main( ( temp void) -0:26 Function Parameters: -0:? Sequence -0:26 Sequence -0:26 move second child to first child ( temp 3-component vector of float) -0:26 cpoint: direct index for structure ( temp 3-component vector of float) -0:26 direct index ( temp structure{ temp 3-component vector of float cpoint}) -0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 0 (const int) -0:26 direct index (layout( location=0) in 3-component vector of float) -0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float) -0:26 Constant: -0:26 0 (const int) -0:26 move second child to first child ( temp 3-component vector of float) -0:26 cpoint: direct index for structure ( temp 3-component vector of float) -0:26 direct index ( temp structure{ temp 3-component vector of float cpoint}) -0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 0 (const int) -0:26 direct index (layout( location=0) in 3-component vector of float) -0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float) -0:26 Constant: -0:26 1 (const int) -0:26 move second child to first child ( temp 3-component vector of float) -0:26 cpoint: direct index for structure ( temp 3-component vector of float) -0:26 direct index ( temp structure{ temp 3-component vector of float cpoint}) -0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) -0:26 Constant: -0:26 2 (const int) -0:26 Constant: -0:26 0 (const int) -0:26 direct index (layout( location=0) in 3-component vector of float) -0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float) -0:26 Constant: -0:26 2 (const int) -0:26 move second child to first child ( temp 3-component vector of float) -0:26 cpoint: direct index for structure ( temp 3-component vector of float) -0:26 direct index ( temp structure{ temp 3-component vector of float cpoint}) -0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) -0:26 Constant: -0:26 3 (const int) -0:26 Constant: -0:26 0 (const int) -0:26 direct index (layout( location=0) in 3-component vector of float) -0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float) -0:26 Constant: -0:26 3 (const int) -0:26 move second child to first child ( temp uint) -0:? 'm_cpid' ( temp uint) -0:? 'm_cpid' ( in uint InvocationID) -0:26 Sequence -0:26 move second child to first child ( temp 3-component vector of float) -0:26 indirect index (layout( location=0) out 3-component vector of float) -0:? '@entryPointOutput.cpoint' (layout( location=0) out 4-element array of 3-component vector of float) -0:? 'm_cpid' ( in uint InvocationID) -0:26 cpoint: direct index for structure ( temp 3-component vector of float) -0:26 Function Call: @main(struct-VS_OUT-vf31[4];u1; ( temp structure{ temp 3-component vector of float cpoint}) -0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) -0:? 'm_cpid' ( temp uint) -0:26 Constant: -0:26 0 (const int) -0:? Barrier ( temp void) -0:? Test condition and select ( temp void) -0:? Condition -0:? Compare Equal ( temp bool) -0:? 'm_cpid' ( in uint InvocationID) -0:? Constant: -0:? 0 (const int) -0:? true case -0:? Sequence -0:? move second child to first child ( temp structure{ temp 2-element array of float edges}) -0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) -0:? Function Call: PCF(u1; ( temp structure{ temp 2-element array of float edges}) -0:? 'pid' ( in uint PrimitiveID) -0:? Sequence -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 0 (const int) -0:? direct index ( temp float) -0:? edges: direct index for structure ( temp 2-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 0 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 1 (const int) -0:? direct index ( temp float) -0:? edges: direct index for structure ( temp 2-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 1 (const int) -0:33 Function Definition: PCF(u1; ( temp structure{ temp 2-element array of float edges}) -0:33 Function Parameters: -0:33 'pid' ( in uint) -0:? Sequence -0:36 move second child to first child ( temp float) -0:36 direct index ( temp float) -0:36 edges: direct index for structure ( temp 2-element array of float) -0:36 'output' ( temp structure{ temp 2-element array of float edges}) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 2.000000 -0:37 move second child to first child ( temp float) -0:37 direct index ( temp float) -0:37 edges: direct index for structure ( temp 2-element array of float) -0:37 'output' ( temp structure{ temp 2-element array of float edges}) -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 1 (const int) -0:37 Constant: -0:37 8.000000 -0:38 Branch: Return with expression -0:38 'output' ( temp structure{ temp 2-element array of float edges}) -0:? Linker Objects -0:? '@entryPointOutput.cpoint' (layout( location=0) out 4-element array of 3-component vector of float) -0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float) -0:? 'm_cpid' ( in uint InvocationID) -0:? 'pid' ( in uint PrimitiveID) -0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 104 - - Capability Tessellation - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint TessellationControl 4 "main" 41 60 63 81 87 - ExecutionMode 4 OutputVertices 4 - ExecutionMode 4 Isolines - ExecutionMode 4 SpacingEqual - Source HLSL 500 - Name 4 "main" - Name 8 "VS_OUT" - MemberName 8(VS_OUT) 0 "cpoint" - Name 14 "HS_OUT" - MemberName 14(HS_OUT) 0 "cpoint" - Name 18 "@main(struct-VS_OUT-vf31[4];u1;" - Name 16 "ip" - Name 17 "m_cpid" - Name 22 "HS_CONSTANT_OUT" - MemberName 22(HS_CONSTANT_OUT) 0 "edges" - Name 25 "PCF(u1;" - Name 24 "pid" - Name 28 "output" - Name 38 "ip" - Name 41 "ip.cpoint" - Name 58 "m_cpid" - Name 60 "m_cpid" - Name 63 "@entryPointOutput.cpoint" - Name 65 "param" - Name 67 "param" - Name 80 "@patchConstantResult" - Name 81 "pid" - Name 82 "param" - Name 87 "@patchConstantOutput.edges" - Name 96 "output" - Decorate 41(ip.cpoint) Location 0 - Decorate 60(m_cpid) BuiltIn InvocationId - Decorate 63(@entryPointOutput.cpoint) Location 0 - Decorate 81(pid) BuiltIn PrimitiveId - Decorate 87(@patchConstantOutput.edges) Patch - Decorate 87(@patchConstantOutput.edges) BuiltIn TessLevelOuter - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 3 - 8(VS_OUT): TypeStruct 7(fvec3) - 9: TypeInt 32 0 - 10: 9(int) Constant 4 - 11: TypeArray 8(VS_OUT) 10 - 12: TypePointer Function 11 - 13: TypePointer Function 9(int) - 14(HS_OUT): TypeStruct 7(fvec3) - 15: TypeFunction 14(HS_OUT) 12(ptr) 13(ptr) - 20: 9(int) Constant 2 - 21: TypeArray 6(float) 20 -22(HS_CONSTANT_OUT): TypeStruct 21 - 23: TypeFunction 22(HS_CONSTANT_OUT) 13(ptr) - 27: TypePointer Function 14(HS_OUT) - 29: TypeInt 32 1 - 30: 29(int) Constant 0 - 31: TypePointer Function 7(fvec3) - 39: TypeArray 7(fvec3) 10 - 40: TypePointer Input 39 - 41(ip.cpoint): 40(ptr) Variable Input - 42: TypePointer Input 7(fvec3) - 46: 29(int) Constant 1 - 50: 29(int) Constant 2 - 54: 29(int) Constant 3 - 59: TypePointer Input 9(int) - 60(m_cpid): 59(ptr) Variable Input - 62: TypePointer Output 39 -63(@entryPointOutput.cpoint): 62(ptr) Variable Output - 71: TypePointer Output 7(fvec3) - 73: 9(int) Constant 0 - 75: TypeBool - 79: TypePointer Function 22(HS_CONSTANT_OUT) - 81(pid): 59(ptr) Variable Input - 85: TypeArray 6(float) 10 - 86: TypePointer Output 85 -87(@patchConstantOutput.edges): 86(ptr) Variable Output - 88: TypePointer Function 6(float) - 91: TypePointer Output 6(float) - 97: 6(float) Constant 1073741824 - 99: 6(float) Constant 1090519040 - 4(main): 2 Function None 3 - 5: Label - 38(ip): 12(ptr) Variable Function - 58(m_cpid): 13(ptr) Variable Function - 65(param): 12(ptr) Variable Function - 67(param): 13(ptr) Variable Function -80(@patchConstantResult): 79(ptr) Variable Function - 82(param): 13(ptr) Variable Function - 43: 42(ptr) AccessChain 41(ip.cpoint) 30 - 44: 7(fvec3) Load 43 - 45: 31(ptr) AccessChain 38(ip) 30 30 - Store 45 44 - 47: 42(ptr) AccessChain 41(ip.cpoint) 46 - 48: 7(fvec3) Load 47 - 49: 31(ptr) AccessChain 38(ip) 46 30 - Store 49 48 - 51: 42(ptr) AccessChain 41(ip.cpoint) 50 - 52: 7(fvec3) Load 51 - 53: 31(ptr) AccessChain 38(ip) 50 30 - Store 53 52 - 55: 42(ptr) AccessChain 41(ip.cpoint) 54 - 56: 7(fvec3) Load 55 - 57: 31(ptr) AccessChain 38(ip) 54 30 - Store 57 56 - 61: 9(int) Load 60(m_cpid) - Store 58(m_cpid) 61 - 64: 9(int) Load 60(m_cpid) - 66: 11 Load 38(ip) - Store 65(param) 66 - 68: 9(int) Load 58(m_cpid) - Store 67(param) 68 - 69: 14(HS_OUT) FunctionCall 18(@main(struct-VS_OUT-vf31[4];u1;) 65(param) 67(param) - 70: 7(fvec3) CompositeExtract 69 0 - 72: 71(ptr) AccessChain 63(@entryPointOutput.cpoint) 64 - Store 72 70 - ControlBarrier 20 10 73 - 74: 9(int) Load 60(m_cpid) - 76: 75(bool) IEqual 74 30 - SelectionMerge 78 None - BranchConditional 76 77 78 - 77: Label - 83: 9(int) Load 81(pid) - Store 82(param) 83 - 84:22(HS_CONSTANT_OUT) FunctionCall 25(PCF(u1;) 82(param) - Store 80(@patchConstantResult) 84 - 89: 88(ptr) AccessChain 80(@patchConstantResult) 30 30 - 90: 6(float) Load 89 - 92: 91(ptr) AccessChain 87(@patchConstantOutput.edges) 30 - Store 92 90 - 93: 88(ptr) AccessChain 80(@patchConstantResult) 30 46 - 94: 6(float) Load 93 - 95: 91(ptr) AccessChain 87(@patchConstantOutput.edges) 46 - Store 95 94 - Branch 78 - 78: Label - Return - FunctionEnd -18(@main(struct-VS_OUT-vf31[4];u1;): 14(HS_OUT) Function None 15 - 16(ip): 12(ptr) FunctionParameter - 17(m_cpid): 13(ptr) FunctionParameter - 19: Label - 28(output): 27(ptr) Variable Function - 32: 31(ptr) AccessChain 16(ip) 30 30 - 33: 7(fvec3) Load 32 - 34: 31(ptr) AccessChain 28(output) 30 - Store 34 33 - 35: 14(HS_OUT) Load 28(output) - ReturnValue 35 - FunctionEnd - 25(PCF(u1;):22(HS_CONSTANT_OUT) Function None 23 - 24(pid): 13(ptr) FunctionParameter - 26: Label - 96(output): 79(ptr) Variable Function - 98: 88(ptr) AccessChain 96(output) 30 30 - Store 98 97 - 100: 88(ptr) AccessChain 96(output) 30 46 - Store 100 99 - 101:22(HS_CONSTANT_OUT) Load 96(output) - ReturnValue 101 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.hull.2.tesc.out b/deps/glslang/Test/baseResults/hlsl.hull.2.tesc.out deleted file mode 100644 index 4e8a50c2..00000000 --- a/deps/glslang/Test/baseResults/hlsl.hull.2.tesc.out +++ /dev/null @@ -1,489 +0,0 @@ -hlsl.hull.2.tesc -Shader version: 500 -vertices = 4 -vertex spacing = equal_spacing -0:? Sequence -0:26 Function Definition: @main(struct-VS_OUT-vf31[4]; ( temp structure{ temp 3-component vector of float cpoint}) -0:26 Function Parameters: -0:26 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) -0:? Sequence -0:28 move second child to first child ( temp 3-component vector of float) -0:28 cpoint: direct index for structure ( temp 3-component vector of float) -0:28 'output' ( temp structure{ temp 3-component vector of float cpoint}) -0:28 Constant: -0:28 0 (const int) -0:28 cpoint: direct index for structure ( temp 3-component vector of float) -0:28 direct index ( temp structure{ temp 3-component vector of float cpoint}) -0:28 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 0 (const int) -0:29 Branch: Return with expression -0:29 'output' ( temp structure{ temp 3-component vector of float cpoint}) -0:26 Function Definition: main( ( temp void) -0:26 Function Parameters: -0:? Sequence -0:26 Sequence -0:26 move second child to first child ( temp 3-component vector of float) -0:26 cpoint: direct index for structure ( temp 3-component vector of float) -0:26 direct index ( temp structure{ temp 3-component vector of float cpoint}) -0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 0 (const int) -0:26 direct index (layout( location=0) in 3-component vector of float) -0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float) -0:26 Constant: -0:26 0 (const int) -0:26 move second child to first child ( temp 3-component vector of float) -0:26 cpoint: direct index for structure ( temp 3-component vector of float) -0:26 direct index ( temp structure{ temp 3-component vector of float cpoint}) -0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 0 (const int) -0:26 direct index (layout( location=0) in 3-component vector of float) -0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float) -0:26 Constant: -0:26 1 (const int) -0:26 move second child to first child ( temp 3-component vector of float) -0:26 cpoint: direct index for structure ( temp 3-component vector of float) -0:26 direct index ( temp structure{ temp 3-component vector of float cpoint}) -0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) -0:26 Constant: -0:26 2 (const int) -0:26 Constant: -0:26 0 (const int) -0:26 direct index (layout( location=0) in 3-component vector of float) -0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float) -0:26 Constant: -0:26 2 (const int) -0:26 move second child to first child ( temp 3-component vector of float) -0:26 cpoint: direct index for structure ( temp 3-component vector of float) -0:26 direct index ( temp structure{ temp 3-component vector of float cpoint}) -0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) -0:26 Constant: -0:26 3 (const int) -0:26 Constant: -0:26 0 (const int) -0:26 direct index (layout( location=0) in 3-component vector of float) -0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float) -0:26 Constant: -0:26 3 (const int) -0:26 Sequence -0:26 move second child to first child ( temp 3-component vector of float) -0:26 indirect index (layout( location=0) out 3-component vector of float) -0:? '@entryPointOutput.cpoint' (layout( location=0) out 4-element array of 3-component vector of float) -0:? 'InvocationId' ( in uint InvocationID) -0:26 cpoint: direct index for structure ( temp 3-component vector of float) -0:26 Function Call: @main(struct-VS_OUT-vf31[4]; ( temp structure{ temp 3-component vector of float cpoint}) -0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) -0:26 Constant: -0:26 0 (const int) -0:? Barrier ( temp void) -0:? Test condition and select ( temp void) -0:? Condition -0:? Compare Equal ( temp bool) -0:? 'InvocationId' ( in uint InvocationID) -0:? Constant: -0:? 0 (const int) -0:? true case -0:? Sequence -0:? move second child to first child ( temp structure{ temp 2-element array of float edges}) -0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) -0:? Function Call: PCF(u1;vf4; ( temp structure{ temp 2-element array of float edges}) -0:? 'pid' ( in uint PrimitiveID) -0:? 'pos' ( in 4-component vector of float Position) -0:? Sequence -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 0 (const int) -0:? direct index ( temp float) -0:? edges: direct index for structure ( temp 2-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 0 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 1 (const int) -0:? direct index ( temp float) -0:? edges: direct index for structure ( temp 2-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 1 (const int) -0:33 Function Definition: PCF(u1;vf4; ( temp structure{ temp 2-element array of float edges}) -0:33 Function Parameters: -0:33 'pid' ( in uint) -0:33 'pos' ( in 4-component vector of float) -0:? Sequence -0:36 move second child to first child ( temp float) -0:36 direct index ( temp float) -0:36 edges: direct index for structure ( temp 2-element array of float) -0:36 'output' ( temp structure{ temp 2-element array of float edges}) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 2.000000 -0:37 move second child to first child ( temp float) -0:37 direct index ( temp float) -0:37 edges: direct index for structure ( temp 2-element array of float) -0:37 'output' ( temp structure{ temp 2-element array of float edges}) -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 1 (const int) -0:37 Constant: -0:37 8.000000 -0:38 Branch: Return with expression -0:38 'output' ( temp structure{ temp 2-element array of float edges}) -0:? Linker Objects -0:? '@entryPointOutput.cpoint' (layout( location=0) out 4-element array of 3-component vector of float) -0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float) -0:? 'InvocationId' ( in uint InvocationID) -0:? 'pid' ( in uint PrimitiveID) -0:? 'pos' ( in 4-component vector of float Position) -0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) - - -Linked tessellation control stage: - - -Shader version: 500 -vertices = 4 -vertex spacing = equal_spacing -0:? Sequence -0:26 Function Definition: @main(struct-VS_OUT-vf31[4]; ( temp structure{ temp 3-component vector of float cpoint}) -0:26 Function Parameters: -0:26 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) -0:? Sequence -0:28 move second child to first child ( temp 3-component vector of float) -0:28 cpoint: direct index for structure ( temp 3-component vector of float) -0:28 'output' ( temp structure{ temp 3-component vector of float cpoint}) -0:28 Constant: -0:28 0 (const int) -0:28 cpoint: direct index for structure ( temp 3-component vector of float) -0:28 direct index ( temp structure{ temp 3-component vector of float cpoint}) -0:28 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 0 (const int) -0:29 Branch: Return with expression -0:29 'output' ( temp structure{ temp 3-component vector of float cpoint}) -0:26 Function Definition: main( ( temp void) -0:26 Function Parameters: -0:? Sequence -0:26 Sequence -0:26 move second child to first child ( temp 3-component vector of float) -0:26 cpoint: direct index for structure ( temp 3-component vector of float) -0:26 direct index ( temp structure{ temp 3-component vector of float cpoint}) -0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 0 (const int) -0:26 direct index (layout( location=0) in 3-component vector of float) -0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float) -0:26 Constant: -0:26 0 (const int) -0:26 move second child to first child ( temp 3-component vector of float) -0:26 cpoint: direct index for structure ( temp 3-component vector of float) -0:26 direct index ( temp structure{ temp 3-component vector of float cpoint}) -0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 0 (const int) -0:26 direct index (layout( location=0) in 3-component vector of float) -0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float) -0:26 Constant: -0:26 1 (const int) -0:26 move second child to first child ( temp 3-component vector of float) -0:26 cpoint: direct index for structure ( temp 3-component vector of float) -0:26 direct index ( temp structure{ temp 3-component vector of float cpoint}) -0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) -0:26 Constant: -0:26 2 (const int) -0:26 Constant: -0:26 0 (const int) -0:26 direct index (layout( location=0) in 3-component vector of float) -0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float) -0:26 Constant: -0:26 2 (const int) -0:26 move second child to first child ( temp 3-component vector of float) -0:26 cpoint: direct index for structure ( temp 3-component vector of float) -0:26 direct index ( temp structure{ temp 3-component vector of float cpoint}) -0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) -0:26 Constant: -0:26 3 (const int) -0:26 Constant: -0:26 0 (const int) -0:26 direct index (layout( location=0) in 3-component vector of float) -0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float) -0:26 Constant: -0:26 3 (const int) -0:26 Sequence -0:26 move second child to first child ( temp 3-component vector of float) -0:26 indirect index (layout( location=0) out 3-component vector of float) -0:? '@entryPointOutput.cpoint' (layout( location=0) out 4-element array of 3-component vector of float) -0:? 'InvocationId' ( in uint InvocationID) -0:26 cpoint: direct index for structure ( temp 3-component vector of float) -0:26 Function Call: @main(struct-VS_OUT-vf31[4]; ( temp structure{ temp 3-component vector of float cpoint}) -0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) -0:26 Constant: -0:26 0 (const int) -0:? Barrier ( temp void) -0:? Test condition and select ( temp void) -0:? Condition -0:? Compare Equal ( temp bool) -0:? 'InvocationId' ( in uint InvocationID) -0:? Constant: -0:? 0 (const int) -0:? true case -0:? Sequence -0:? move second child to first child ( temp structure{ temp 2-element array of float edges}) -0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) -0:? Function Call: PCF(u1;vf4; ( temp structure{ temp 2-element array of float edges}) -0:? 'pid' ( in uint PrimitiveID) -0:? 'pos' ( in 4-component vector of float Position) -0:? Sequence -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 0 (const int) -0:? direct index ( temp float) -0:? edges: direct index for structure ( temp 2-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 0 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 1 (const int) -0:? direct index ( temp float) -0:? edges: direct index for structure ( temp 2-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 1 (const int) -0:33 Function Definition: PCF(u1;vf4; ( temp structure{ temp 2-element array of float edges}) -0:33 Function Parameters: -0:33 'pid' ( in uint) -0:33 'pos' ( in 4-component vector of float) -0:? Sequence -0:36 move second child to first child ( temp float) -0:36 direct index ( temp float) -0:36 edges: direct index for structure ( temp 2-element array of float) -0:36 'output' ( temp structure{ temp 2-element array of float edges}) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 2.000000 -0:37 move second child to first child ( temp float) -0:37 direct index ( temp float) -0:37 edges: direct index for structure ( temp 2-element array of float) -0:37 'output' ( temp structure{ temp 2-element array of float edges}) -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 1 (const int) -0:37 Constant: -0:37 8.000000 -0:38 Branch: Return with expression -0:38 'output' ( temp structure{ temp 2-element array of float edges}) -0:? Linker Objects -0:? '@entryPointOutput.cpoint' (layout( location=0) out 4-element array of 3-component vector of float) -0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float) -0:? 'InvocationId' ( in uint InvocationID) -0:? 'pid' ( in uint PrimitiveID) -0:? 'pos' ( in 4-component vector of float Position) -0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 106 - - Capability Tessellation - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint TessellationControl 4 "main" 43 61 63 79 81 89 - ExecutionMode 4 OutputVertices 4 - ExecutionMode 4 Isolines - ExecutionMode 4 SpacingEqual - Source HLSL 500 - Name 4 "main" - Name 8 "VS_OUT" - MemberName 8(VS_OUT) 0 "cpoint" - Name 13 "HS_OUT" - MemberName 13(HS_OUT) 0 "cpoint" - Name 16 "@main(struct-VS_OUT-vf31[4];" - Name 15 "ip" - Name 23 "HS_CONSTANT_OUT" - MemberName 23(HS_CONSTANT_OUT) 0 "edges" - Name 27 "PCF(u1;vf4;" - Name 25 "pid" - Name 26 "pos" - Name 30 "output" - Name 40 "ip" - Name 43 "ip.cpoint" - Name 61 "@entryPointOutput.cpoint" - Name 63 "InvocationId" - Name 65 "param" - Name 78 "@patchConstantResult" - Name 79 "pid" - Name 81 "pos" - Name 82 "param" - Name 84 "param" - Name 89 "@patchConstantOutput.edges" - Name 98 "output" - Decorate 43(ip.cpoint) Location 0 - Decorate 61(@entryPointOutput.cpoint) Location 0 - Decorate 63(InvocationId) BuiltIn InvocationId - Decorate 79(pid) BuiltIn PrimitiveId - Decorate 81(pos) BuiltIn Position - Decorate 89(@patchConstantOutput.edges) Patch - Decorate 89(@patchConstantOutput.edges) BuiltIn TessLevelOuter - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 3 - 8(VS_OUT): TypeStruct 7(fvec3) - 9: TypeInt 32 0 - 10: 9(int) Constant 4 - 11: TypeArray 8(VS_OUT) 10 - 12: TypePointer Function 11 - 13(HS_OUT): TypeStruct 7(fvec3) - 14: TypeFunction 13(HS_OUT) 12(ptr) - 18: TypePointer Function 9(int) - 19: TypeVector 6(float) 4 - 20: TypePointer Function 19(fvec4) - 21: 9(int) Constant 2 - 22: TypeArray 6(float) 21 -23(HS_CONSTANT_OUT): TypeStruct 22 - 24: TypeFunction 23(HS_CONSTANT_OUT) 18(ptr) 20(ptr) - 29: TypePointer Function 13(HS_OUT) - 31: TypeInt 32 1 - 32: 31(int) Constant 0 - 33: TypePointer Function 7(fvec3) - 41: TypeArray 7(fvec3) 10 - 42: TypePointer Input 41 - 43(ip.cpoint): 42(ptr) Variable Input - 44: TypePointer Input 7(fvec3) - 48: 31(int) Constant 1 - 52: 31(int) Constant 2 - 56: 31(int) Constant 3 - 60: TypePointer Output 41 -61(@entryPointOutput.cpoint): 60(ptr) Variable Output - 62: TypePointer Input 9(int) -63(InvocationId): 62(ptr) Variable Input - 69: TypePointer Output 7(fvec3) - 71: 9(int) Constant 0 - 73: TypeBool - 77: TypePointer Function 23(HS_CONSTANT_OUT) - 79(pid): 62(ptr) Variable Input - 80: TypePointer Input 19(fvec4) - 81(pos): 80(ptr) Variable Input - 87: TypeArray 6(float) 10 - 88: TypePointer Output 87 -89(@patchConstantOutput.edges): 88(ptr) Variable Output - 90: TypePointer Function 6(float) - 93: TypePointer Output 6(float) - 99: 6(float) Constant 1073741824 - 101: 6(float) Constant 1090519040 - 4(main): 2 Function None 3 - 5: Label - 40(ip): 12(ptr) Variable Function - 65(param): 12(ptr) Variable Function -78(@patchConstantResult): 77(ptr) Variable Function - 82(param): 18(ptr) Variable Function - 84(param): 20(ptr) Variable Function - 45: 44(ptr) AccessChain 43(ip.cpoint) 32 - 46: 7(fvec3) Load 45 - 47: 33(ptr) AccessChain 40(ip) 32 32 - Store 47 46 - 49: 44(ptr) AccessChain 43(ip.cpoint) 48 - 50: 7(fvec3) Load 49 - 51: 33(ptr) AccessChain 40(ip) 48 32 - Store 51 50 - 53: 44(ptr) AccessChain 43(ip.cpoint) 52 - 54: 7(fvec3) Load 53 - 55: 33(ptr) AccessChain 40(ip) 52 32 - Store 55 54 - 57: 44(ptr) AccessChain 43(ip.cpoint) 56 - 58: 7(fvec3) Load 57 - 59: 33(ptr) AccessChain 40(ip) 56 32 - Store 59 58 - 64: 9(int) Load 63(InvocationId) - 66: 11 Load 40(ip) - Store 65(param) 66 - 67: 13(HS_OUT) FunctionCall 16(@main(struct-VS_OUT-vf31[4];) 65(param) - 68: 7(fvec3) CompositeExtract 67 0 - 70: 69(ptr) AccessChain 61(@entryPointOutput.cpoint) 64 - Store 70 68 - ControlBarrier 21 10 71 - 72: 9(int) Load 63(InvocationId) - 74: 73(bool) IEqual 72 32 - SelectionMerge 76 None - BranchConditional 74 75 76 - 75: Label - 83: 9(int) Load 79(pid) - Store 82(param) 83 - 85: 19(fvec4) Load 81(pos) - Store 84(param) 85 - 86:23(HS_CONSTANT_OUT) FunctionCall 27(PCF(u1;vf4;) 82(param) 84(param) - Store 78(@patchConstantResult) 86 - 91: 90(ptr) AccessChain 78(@patchConstantResult) 32 32 - 92: 6(float) Load 91 - 94: 93(ptr) AccessChain 89(@patchConstantOutput.edges) 32 - Store 94 92 - 95: 90(ptr) AccessChain 78(@patchConstantResult) 32 48 - 96: 6(float) Load 95 - 97: 93(ptr) AccessChain 89(@patchConstantOutput.edges) 48 - Store 97 96 - Branch 76 - 76: Label - Return - FunctionEnd -16(@main(struct-VS_OUT-vf31[4];): 13(HS_OUT) Function None 14 - 15(ip): 12(ptr) FunctionParameter - 17: Label - 30(output): 29(ptr) Variable Function - 34: 33(ptr) AccessChain 15(ip) 32 32 - 35: 7(fvec3) Load 34 - 36: 33(ptr) AccessChain 30(output) 32 - Store 36 35 - 37: 13(HS_OUT) Load 30(output) - ReturnValue 37 - FunctionEnd - 27(PCF(u1;vf4;):23(HS_CONSTANT_OUT) Function None 24 - 25(pid): 18(ptr) FunctionParameter - 26(pos): 20(ptr) FunctionParameter - 28: Label - 98(output): 77(ptr) Variable Function - 100: 90(ptr) AccessChain 98(output) 32 32 - Store 100 99 - 102: 90(ptr) AccessChain 98(output) 32 48 - Store 102 101 - 103:23(HS_CONSTANT_OUT) Load 98(output) - ReturnValue 103 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.hull.3.tesc.out b/deps/glslang/Test/baseResults/hlsl.hull.3.tesc.out deleted file mode 100644 index f40a79e4..00000000 --- a/deps/glslang/Test/baseResults/hlsl.hull.3.tesc.out +++ /dev/null @@ -1,490 +0,0 @@ -hlsl.hull.3.tesc -Shader version: 500 -vertices = 4 -vertex spacing = equal_spacing -0:? Sequence -0:26 Function Definition: @main(struct-VS_OUT-vf31[4]; ( temp structure{ temp 3-component vector of float cpoint}) -0:26 Function Parameters: -0:26 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) -0:? Sequence -0:28 move second child to first child ( temp 3-component vector of float) -0:28 cpoint: direct index for structure ( temp 3-component vector of float) -0:28 'output' ( temp structure{ temp 3-component vector of float cpoint}) -0:28 Constant: -0:28 0 (const int) -0:28 cpoint: direct index for structure ( temp 3-component vector of float) -0:28 direct index ( temp structure{ temp 3-component vector of float cpoint}) -0:28 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 0 (const int) -0:29 Branch: Return with expression -0:29 'output' ( temp structure{ temp 3-component vector of float cpoint}) -0:26 Function Definition: main( ( temp void) -0:26 Function Parameters: -0:? Sequence -0:26 Sequence -0:26 move second child to first child ( temp 3-component vector of float) -0:26 cpoint: direct index for structure ( temp 3-component vector of float) -0:26 direct index ( temp structure{ temp 3-component vector of float cpoint}) -0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 0 (const int) -0:26 direct index (layout( location=0) in 3-component vector of float) -0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float) -0:26 Constant: -0:26 0 (const int) -0:26 move second child to first child ( temp 3-component vector of float) -0:26 cpoint: direct index for structure ( temp 3-component vector of float) -0:26 direct index ( temp structure{ temp 3-component vector of float cpoint}) -0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 0 (const int) -0:26 direct index (layout( location=0) in 3-component vector of float) -0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float) -0:26 Constant: -0:26 1 (const int) -0:26 move second child to first child ( temp 3-component vector of float) -0:26 cpoint: direct index for structure ( temp 3-component vector of float) -0:26 direct index ( temp structure{ temp 3-component vector of float cpoint}) -0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) -0:26 Constant: -0:26 2 (const int) -0:26 Constant: -0:26 0 (const int) -0:26 direct index (layout( location=0) in 3-component vector of float) -0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float) -0:26 Constant: -0:26 2 (const int) -0:26 move second child to first child ( temp 3-component vector of float) -0:26 cpoint: direct index for structure ( temp 3-component vector of float) -0:26 direct index ( temp structure{ temp 3-component vector of float cpoint}) -0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) -0:26 Constant: -0:26 3 (const int) -0:26 Constant: -0:26 0 (const int) -0:26 direct index (layout( location=0) in 3-component vector of float) -0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float) -0:26 Constant: -0:26 3 (const int) -0:26 Sequence -0:26 move second child to first child ( temp 3-component vector of float) -0:26 indirect index (layout( location=0) out 3-component vector of float) -0:? '@entryPointOutput.cpoint' (layout( location=0) out 4-element array of 3-component vector of float) -0:? 'InvocationId' ( in uint InvocationID) -0:26 cpoint: direct index for structure ( temp 3-component vector of float) -0:26 Function Call: @main(struct-VS_OUT-vf31[4]; ( temp structure{ temp 3-component vector of float cpoint}) -0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) -0:26 Constant: -0:26 0 (const int) -0:? Barrier ( temp void) -0:? Test condition and select ( temp void) -0:? Condition -0:? Compare Equal ( temp bool) -0:? 'InvocationId' ( in uint InvocationID) -0:? Constant: -0:? 0 (const int) -0:? true case -0:? Sequence -0:? move second child to first child ( temp structure{ temp 2-element array of float edges}) -0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) -0:? Function Call: PCF(u1;vf4; ( temp structure{ temp 2-element array of float edges}) -0:? 'pid' ( in uint PrimitiveID) -0:? 'pos' ( in 4-component vector of float Position) -0:? Sequence -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 0 (const int) -0:? direct index ( temp float) -0:? edges: direct index for structure ( temp 2-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 0 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 1 (const int) -0:? direct index ( temp float) -0:? edges: direct index for structure ( temp 2-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 1 (const int) -0:33 Function Definition: PCF(u1;vf4; ( temp structure{ temp 2-element array of float edges}) -0:33 Function Parameters: -0:33 'pid' ( in uint) -0:33 'pos' ( in 4-component vector of float) -0:? Sequence -0:36 move second child to first child ( temp float) -0:36 direct index ( temp float) -0:36 edges: direct index for structure ( temp 2-element array of float) -0:36 'output' ( temp structure{ temp 2-element array of float edges}) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 2.000000 -0:37 move second child to first child ( temp float) -0:37 direct index ( temp float) -0:37 edges: direct index for structure ( temp 2-element array of float) -0:37 'output' ( temp structure{ temp 2-element array of float edges}) -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 1 (const int) -0:37 Constant: -0:37 8.000000 -0:38 Branch: Return with expression -0:38 'output' ( temp structure{ temp 2-element array of float edges}) -0:? Linker Objects -0:? '@entryPointOutput.cpoint' (layout( location=0) out 4-element array of 3-component vector of float) -0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float) -0:? 'InvocationId' ( in uint InvocationID) -0:? 'pid' ( in uint PrimitiveID) -0:? 'pos' ( in 4-component vector of float Position) -0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) - - -Linked tessellation control stage: - - -Shader version: 500 -vertices = 4 -vertex spacing = equal_spacing -0:? Sequence -0:26 Function Definition: @main(struct-VS_OUT-vf31[4]; ( temp structure{ temp 3-component vector of float cpoint}) -0:26 Function Parameters: -0:26 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) -0:? Sequence -0:28 move second child to first child ( temp 3-component vector of float) -0:28 cpoint: direct index for structure ( temp 3-component vector of float) -0:28 'output' ( temp structure{ temp 3-component vector of float cpoint}) -0:28 Constant: -0:28 0 (const int) -0:28 cpoint: direct index for structure ( temp 3-component vector of float) -0:28 direct index ( temp structure{ temp 3-component vector of float cpoint}) -0:28 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 0 (const int) -0:29 Branch: Return with expression -0:29 'output' ( temp structure{ temp 3-component vector of float cpoint}) -0:26 Function Definition: main( ( temp void) -0:26 Function Parameters: -0:? Sequence -0:26 Sequence -0:26 move second child to first child ( temp 3-component vector of float) -0:26 cpoint: direct index for structure ( temp 3-component vector of float) -0:26 direct index ( temp structure{ temp 3-component vector of float cpoint}) -0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 0 (const int) -0:26 direct index (layout( location=0) in 3-component vector of float) -0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float) -0:26 Constant: -0:26 0 (const int) -0:26 move second child to first child ( temp 3-component vector of float) -0:26 cpoint: direct index for structure ( temp 3-component vector of float) -0:26 direct index ( temp structure{ temp 3-component vector of float cpoint}) -0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 0 (const int) -0:26 direct index (layout( location=0) in 3-component vector of float) -0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float) -0:26 Constant: -0:26 1 (const int) -0:26 move second child to first child ( temp 3-component vector of float) -0:26 cpoint: direct index for structure ( temp 3-component vector of float) -0:26 direct index ( temp structure{ temp 3-component vector of float cpoint}) -0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) -0:26 Constant: -0:26 2 (const int) -0:26 Constant: -0:26 0 (const int) -0:26 direct index (layout( location=0) in 3-component vector of float) -0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float) -0:26 Constant: -0:26 2 (const int) -0:26 move second child to first child ( temp 3-component vector of float) -0:26 cpoint: direct index for structure ( temp 3-component vector of float) -0:26 direct index ( temp structure{ temp 3-component vector of float cpoint}) -0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) -0:26 Constant: -0:26 3 (const int) -0:26 Constant: -0:26 0 (const int) -0:26 direct index (layout( location=0) in 3-component vector of float) -0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float) -0:26 Constant: -0:26 3 (const int) -0:26 Sequence -0:26 move second child to first child ( temp 3-component vector of float) -0:26 indirect index (layout( location=0) out 3-component vector of float) -0:? '@entryPointOutput.cpoint' (layout( location=0) out 4-element array of 3-component vector of float) -0:? 'InvocationId' ( in uint InvocationID) -0:26 cpoint: direct index for structure ( temp 3-component vector of float) -0:26 Function Call: @main(struct-VS_OUT-vf31[4]; ( temp structure{ temp 3-component vector of float cpoint}) -0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) -0:26 Constant: -0:26 0 (const int) -0:? Barrier ( temp void) -0:? Test condition and select ( temp void) -0:? Condition -0:? Compare Equal ( temp bool) -0:? 'InvocationId' ( in uint InvocationID) -0:? Constant: -0:? 0 (const int) -0:? true case -0:? Sequence -0:? move second child to first child ( temp structure{ temp 2-element array of float edges}) -0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) -0:? Function Call: PCF(u1;vf4; ( temp structure{ temp 2-element array of float edges}) -0:? 'pid' ( in uint PrimitiveID) -0:? 'pos' ( in 4-component vector of float Position) -0:? Sequence -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 0 (const int) -0:? direct index ( temp float) -0:? edges: direct index for structure ( temp 2-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 0 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 1 (const int) -0:? direct index ( temp float) -0:? edges: direct index for structure ( temp 2-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 1 (const int) -0:33 Function Definition: PCF(u1;vf4; ( temp structure{ temp 2-element array of float edges}) -0:33 Function Parameters: -0:33 'pid' ( in uint) -0:33 'pos' ( in 4-component vector of float) -0:? Sequence -0:36 move second child to first child ( temp float) -0:36 direct index ( temp float) -0:36 edges: direct index for structure ( temp 2-element array of float) -0:36 'output' ( temp structure{ temp 2-element array of float edges}) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 2.000000 -0:37 move second child to first child ( temp float) -0:37 direct index ( temp float) -0:37 edges: direct index for structure ( temp 2-element array of float) -0:37 'output' ( temp structure{ temp 2-element array of float edges}) -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 1 (const int) -0:37 Constant: -0:37 8.000000 -0:38 Branch: Return with expression -0:38 'output' ( temp structure{ temp 2-element array of float edges}) -0:? Linker Objects -0:? '@entryPointOutput.cpoint' (layout( location=0) out 4-element array of 3-component vector of float) -0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float) -0:? 'InvocationId' ( in uint InvocationID) -0:? 'pid' ( in uint PrimitiveID) -0:? 'pos' ( in 4-component vector of float Position) -0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 106 - - Capability Tessellation - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint TessellationControl 4 "main" 43 61 63 79 81 89 - ExecutionMode 4 OutputVertices 4 - ExecutionMode 4 Triangles - ExecutionMode 4 SpacingEqual - ExecutionMode 4 PointMode - Source HLSL 500 - Name 4 "main" - Name 8 "VS_OUT" - MemberName 8(VS_OUT) 0 "cpoint" - Name 13 "HS_OUT" - MemberName 13(HS_OUT) 0 "cpoint" - Name 16 "@main(struct-VS_OUT-vf31[4];" - Name 15 "ip" - Name 23 "HS_CONSTANT_OUT" - MemberName 23(HS_CONSTANT_OUT) 0 "edges" - Name 27 "PCF(u1;vf4;" - Name 25 "pid" - Name 26 "pos" - Name 30 "output" - Name 40 "ip" - Name 43 "ip.cpoint" - Name 61 "@entryPointOutput.cpoint" - Name 63 "InvocationId" - Name 65 "param" - Name 78 "@patchConstantResult" - Name 79 "pid" - Name 81 "pos" - Name 82 "param" - Name 84 "param" - Name 89 "@patchConstantOutput.edges" - Name 98 "output" - Decorate 43(ip.cpoint) Location 0 - Decorate 61(@entryPointOutput.cpoint) Location 0 - Decorate 63(InvocationId) BuiltIn InvocationId - Decorate 79(pid) BuiltIn PrimitiveId - Decorate 81(pos) BuiltIn Position - Decorate 89(@patchConstantOutput.edges) Patch - Decorate 89(@patchConstantOutput.edges) BuiltIn TessLevelOuter - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 3 - 8(VS_OUT): TypeStruct 7(fvec3) - 9: TypeInt 32 0 - 10: 9(int) Constant 4 - 11: TypeArray 8(VS_OUT) 10 - 12: TypePointer Function 11 - 13(HS_OUT): TypeStruct 7(fvec3) - 14: TypeFunction 13(HS_OUT) 12(ptr) - 18: TypePointer Function 9(int) - 19: TypeVector 6(float) 4 - 20: TypePointer Function 19(fvec4) - 21: 9(int) Constant 2 - 22: TypeArray 6(float) 21 -23(HS_CONSTANT_OUT): TypeStruct 22 - 24: TypeFunction 23(HS_CONSTANT_OUT) 18(ptr) 20(ptr) - 29: TypePointer Function 13(HS_OUT) - 31: TypeInt 32 1 - 32: 31(int) Constant 0 - 33: TypePointer Function 7(fvec3) - 41: TypeArray 7(fvec3) 10 - 42: TypePointer Input 41 - 43(ip.cpoint): 42(ptr) Variable Input - 44: TypePointer Input 7(fvec3) - 48: 31(int) Constant 1 - 52: 31(int) Constant 2 - 56: 31(int) Constant 3 - 60: TypePointer Output 41 -61(@entryPointOutput.cpoint): 60(ptr) Variable Output - 62: TypePointer Input 9(int) -63(InvocationId): 62(ptr) Variable Input - 69: TypePointer Output 7(fvec3) - 71: 9(int) Constant 0 - 73: TypeBool - 77: TypePointer Function 23(HS_CONSTANT_OUT) - 79(pid): 62(ptr) Variable Input - 80: TypePointer Input 19(fvec4) - 81(pos): 80(ptr) Variable Input - 87: TypeArray 6(float) 10 - 88: TypePointer Output 87 -89(@patchConstantOutput.edges): 88(ptr) Variable Output - 90: TypePointer Function 6(float) - 93: TypePointer Output 6(float) - 99: 6(float) Constant 1073741824 - 101: 6(float) Constant 1090519040 - 4(main): 2 Function None 3 - 5: Label - 40(ip): 12(ptr) Variable Function - 65(param): 12(ptr) Variable Function -78(@patchConstantResult): 77(ptr) Variable Function - 82(param): 18(ptr) Variable Function - 84(param): 20(ptr) Variable Function - 45: 44(ptr) AccessChain 43(ip.cpoint) 32 - 46: 7(fvec3) Load 45 - 47: 33(ptr) AccessChain 40(ip) 32 32 - Store 47 46 - 49: 44(ptr) AccessChain 43(ip.cpoint) 48 - 50: 7(fvec3) Load 49 - 51: 33(ptr) AccessChain 40(ip) 48 32 - Store 51 50 - 53: 44(ptr) AccessChain 43(ip.cpoint) 52 - 54: 7(fvec3) Load 53 - 55: 33(ptr) AccessChain 40(ip) 52 32 - Store 55 54 - 57: 44(ptr) AccessChain 43(ip.cpoint) 56 - 58: 7(fvec3) Load 57 - 59: 33(ptr) AccessChain 40(ip) 56 32 - Store 59 58 - 64: 9(int) Load 63(InvocationId) - 66: 11 Load 40(ip) - Store 65(param) 66 - 67: 13(HS_OUT) FunctionCall 16(@main(struct-VS_OUT-vf31[4];) 65(param) - 68: 7(fvec3) CompositeExtract 67 0 - 70: 69(ptr) AccessChain 61(@entryPointOutput.cpoint) 64 - Store 70 68 - ControlBarrier 21 10 71 - 72: 9(int) Load 63(InvocationId) - 74: 73(bool) IEqual 72 32 - SelectionMerge 76 None - BranchConditional 74 75 76 - 75: Label - 83: 9(int) Load 79(pid) - Store 82(param) 83 - 85: 19(fvec4) Load 81(pos) - Store 84(param) 85 - 86:23(HS_CONSTANT_OUT) FunctionCall 27(PCF(u1;vf4;) 82(param) 84(param) - Store 78(@patchConstantResult) 86 - 91: 90(ptr) AccessChain 78(@patchConstantResult) 32 32 - 92: 6(float) Load 91 - 94: 93(ptr) AccessChain 89(@patchConstantOutput.edges) 32 - Store 94 92 - 95: 90(ptr) AccessChain 78(@patchConstantResult) 32 48 - 96: 6(float) Load 95 - 97: 93(ptr) AccessChain 89(@patchConstantOutput.edges) 48 - Store 97 96 - Branch 76 - 76: Label - Return - FunctionEnd -16(@main(struct-VS_OUT-vf31[4];): 13(HS_OUT) Function None 14 - 15(ip): 12(ptr) FunctionParameter - 17: Label - 30(output): 29(ptr) Variable Function - 34: 33(ptr) AccessChain 15(ip) 32 32 - 35: 7(fvec3) Load 34 - 36: 33(ptr) AccessChain 30(output) 32 - Store 36 35 - 37: 13(HS_OUT) Load 30(output) - ReturnValue 37 - FunctionEnd - 27(PCF(u1;vf4;):23(HS_CONSTANT_OUT) Function None 24 - 25(pid): 18(ptr) FunctionParameter - 26(pos): 20(ptr) FunctionParameter - 28: Label - 98(output): 77(ptr) Variable Function - 100: 90(ptr) AccessChain 98(output) 32 32 - Store 100 99 - 102: 90(ptr) AccessChain 98(output) 32 48 - Store 102 101 - 103:23(HS_CONSTANT_OUT) Load 98(output) - ReturnValue 103 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.hull.4.tesc.out b/deps/glslang/Test/baseResults/hlsl.hull.4.tesc.out deleted file mode 100644 index aa766ed4..00000000 --- a/deps/glslang/Test/baseResults/hlsl.hull.4.tesc.out +++ /dev/null @@ -1,656 +0,0 @@ -hlsl.hull.4.tesc -Shader version: 500 -vertices = 3 -vertex spacing = fractional_odd_spacing -triangle order = cw -0:? Sequence -0:25 Function Definition: HS_ConstFunc(struct-HS_Input-vf4-vf41[3]; ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) -0:25 Function Parameters: -0:25 'I' ( in 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:? Sequence -0:26 Sequence -0:26 move second child to first child ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) -0:26 'O' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) -0:26 Constant: -0:26 0.000000 -0:26 0.000000 -0:26 0.000000 -0:26 0.000000 -0:28 move second child to first child ( temp float) -0:28 fInsideTessFactor: direct index for structure ( temp float) -0:28 'O' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) -0:28 Constant: -0:28 1 (const int) -0:28 add ( temp float) -0:28 direct index ( temp float) -0:28 m_Position: direct index for structure ( temp 4-component vector of float) -0:28 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:28 'I' ( in 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 3 (const int) -0:28 direct index ( temp float) -0:28 m_Normal: direct index for structure ( temp 4-component vector of float) -0:28 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:28 'I' ( in 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 1 (const int) -0:28 Constant: -0:28 3 (const int) -0:30 Branch: Return with expression -0:30 'O' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) -0:39 Function Definition: @main(struct-HS_Input-vf4-vf41[3];u1; ( temp structure{ temp 4-component vector of float m_Position}) -0:39 Function Parameters: -0:39 'I' ( in 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:39 'cpid' ( in uint) -0:? Sequence -0:40 Sequence -0:40 move second child to first child ( temp structure{ temp 4-component vector of float m_Position}) -0:40 'output' ( temp structure{ temp 4-component vector of float m_Position}) -0:40 Constant: -0:40 0.000000 -0:40 0.000000 -0:40 0.000000 -0:40 0.000000 -0:41 move second child to first child ( temp 4-component vector of float) -0:41 m_Position: direct index for structure ( temp 4-component vector of float) -0:41 'output' ( temp structure{ temp 4-component vector of float m_Position}) -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 0.000000 -0:41 0.000000 -0:41 0.000000 -0:41 0.000000 -0:42 Branch: Return with expression -0:42 'output' ( temp structure{ temp 4-component vector of float m_Position}) -0:39 Function Definition: main( ( temp void) -0:39 Function Parameters: -0:? Sequence -0:39 Sequence -0:39 move second child to first child ( temp 4-component vector of float) -0:39 m_Position: direct index for structure ( temp 4-component vector of float) -0:39 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 direct index ( in 4-component vector of float Position) -0:? 'I.m_Position' ( in 3-element array of 4-component vector of float Position) -0:39 Constant: -0:39 0 (const int) -0:39 move second child to first child ( temp 4-component vector of float) -0:39 m_Normal: direct index for structure ( temp 4-component vector of float) -0:39 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 direct index (layout( location=0) in 4-component vector of float) -0:? 'I.m_Normal' (layout( location=0) in 3-element array of 4-component vector of float) -0:39 Constant: -0:39 0 (const int) -0:39 move second child to first child ( temp 4-component vector of float) -0:39 m_Position: direct index for structure ( temp 4-component vector of float) -0:39 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 direct index ( in 4-component vector of float Position) -0:? 'I.m_Position' ( in 3-element array of 4-component vector of float Position) -0:39 Constant: -0:39 1 (const int) -0:39 move second child to first child ( temp 4-component vector of float) -0:39 m_Normal: direct index for structure ( temp 4-component vector of float) -0:39 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 direct index (layout( location=0) in 4-component vector of float) -0:? 'I.m_Normal' (layout( location=0) in 3-element array of 4-component vector of float) -0:39 Constant: -0:39 1 (const int) -0:39 move second child to first child ( temp 4-component vector of float) -0:39 m_Position: direct index for structure ( temp 4-component vector of float) -0:39 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:39 Constant: -0:39 2 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 direct index ( in 4-component vector of float Position) -0:? 'I.m_Position' ( in 3-element array of 4-component vector of float Position) -0:39 Constant: -0:39 2 (const int) -0:39 move second child to first child ( temp 4-component vector of float) -0:39 m_Normal: direct index for structure ( temp 4-component vector of float) -0:39 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:39 Constant: -0:39 2 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 direct index (layout( location=0) in 4-component vector of float) -0:? 'I.m_Normal' (layout( location=0) in 3-element array of 4-component vector of float) -0:39 Constant: -0:39 2 (const int) -0:39 move second child to first child ( temp uint) -0:? 'cpid' ( temp uint) -0:? 'cpid' ( in uint InvocationID) -0:39 Sequence -0:39 move second child to first child ( temp 4-component vector of float) -0:39 indirect index ( out 4-component vector of float Position) -0:? '@entryPointOutput.m_Position' ( out 3-element array of 4-component vector of float Position) -0:? 'cpid' ( in uint InvocationID) -0:39 m_Position: direct index for structure ( temp 4-component vector of float) -0:39 Function Call: @main(struct-HS_Input-vf4-vf41[3];u1; ( temp structure{ temp 4-component vector of float m_Position}) -0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:? 'cpid' ( temp uint) -0:39 Constant: -0:39 0 (const int) -0:? Barrier ( temp void) -0:? Test condition and select ( temp void) -0:? Condition -0:? Compare Equal ( temp bool) -0:? 'cpid' ( in uint InvocationID) -0:? Constant: -0:? 0 (const int) -0:? true case -0:? Sequence -0:? move second child to first child ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) -0:? Function Call: HS_ConstFunc(struct-HS_Input-vf4-vf41[3]; ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) -0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:? Sequence -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.fTessFactor' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 0 (const int) -0:? direct index ( temp float) -0:? fTessFactor: direct index for structure ( temp 3-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 0 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.fTessFactor' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 1 (const int) -0:? direct index ( temp float) -0:? fTessFactor: direct index for structure ( temp 3-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 1 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.fTessFactor' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 2 (const int) -0:? direct index ( temp float) -0:? fTessFactor: direct index for structure ( temp 3-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 2 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelInner) -0:? '@patchConstantOutput.fInsideTessFactor' ( patch out 2-element array of float TessLevelInner) -0:? Constant: -0:? 0 (const int) -0:? fInsideTessFactor: direct index for structure ( temp float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) -0:? Constant: -0:? 1 (const int) -0:? Linker Objects -0:? '@entryPointOutput.m_Position' ( out 3-element array of 4-component vector of float Position) -0:? 'I.m_Position' ( in 3-element array of 4-component vector of float Position) -0:? 'I.m_Normal' (layout( location=0) in 3-element array of 4-component vector of float) -0:? 'cpid' ( in uint InvocationID) -0:? '@patchConstantOutput.fTessFactor' ( patch out 4-element array of float TessLevelOuter) -0:? '@patchConstantOutput.fInsideTessFactor' ( patch out 2-element array of float TessLevelInner) - - -Linked tessellation control stage: - - -Shader version: 500 -vertices = 3 -vertex spacing = fractional_odd_spacing -triangle order = cw -0:? Sequence -0:25 Function Definition: HS_ConstFunc(struct-HS_Input-vf4-vf41[3]; ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) -0:25 Function Parameters: -0:25 'I' ( in 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:? Sequence -0:26 Sequence -0:26 move second child to first child ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) -0:26 'O' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) -0:26 Constant: -0:26 0.000000 -0:26 0.000000 -0:26 0.000000 -0:26 0.000000 -0:28 move second child to first child ( temp float) -0:28 fInsideTessFactor: direct index for structure ( temp float) -0:28 'O' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) -0:28 Constant: -0:28 1 (const int) -0:28 add ( temp float) -0:28 direct index ( temp float) -0:28 m_Position: direct index for structure ( temp 4-component vector of float) -0:28 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:28 'I' ( in 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 3 (const int) -0:28 direct index ( temp float) -0:28 m_Normal: direct index for structure ( temp 4-component vector of float) -0:28 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:28 'I' ( in 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 1 (const int) -0:28 Constant: -0:28 3 (const int) -0:30 Branch: Return with expression -0:30 'O' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) -0:39 Function Definition: @main(struct-HS_Input-vf4-vf41[3];u1; ( temp structure{ temp 4-component vector of float m_Position}) -0:39 Function Parameters: -0:39 'I' ( in 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:39 'cpid' ( in uint) -0:? Sequence -0:40 Sequence -0:40 move second child to first child ( temp structure{ temp 4-component vector of float m_Position}) -0:40 'output' ( temp structure{ temp 4-component vector of float m_Position}) -0:40 Constant: -0:40 0.000000 -0:40 0.000000 -0:40 0.000000 -0:40 0.000000 -0:41 move second child to first child ( temp 4-component vector of float) -0:41 m_Position: direct index for structure ( temp 4-component vector of float) -0:41 'output' ( temp structure{ temp 4-component vector of float m_Position}) -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 0.000000 -0:41 0.000000 -0:41 0.000000 -0:41 0.000000 -0:42 Branch: Return with expression -0:42 'output' ( temp structure{ temp 4-component vector of float m_Position}) -0:39 Function Definition: main( ( temp void) -0:39 Function Parameters: -0:? Sequence -0:39 Sequence -0:39 move second child to first child ( temp 4-component vector of float) -0:39 m_Position: direct index for structure ( temp 4-component vector of float) -0:39 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 direct index ( in 4-component vector of float Position) -0:? 'I.m_Position' ( in 3-element array of 4-component vector of float Position) -0:39 Constant: -0:39 0 (const int) -0:39 move second child to first child ( temp 4-component vector of float) -0:39 m_Normal: direct index for structure ( temp 4-component vector of float) -0:39 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 direct index (layout( location=0) in 4-component vector of float) -0:? 'I.m_Normal' (layout( location=0) in 3-element array of 4-component vector of float) -0:39 Constant: -0:39 0 (const int) -0:39 move second child to first child ( temp 4-component vector of float) -0:39 m_Position: direct index for structure ( temp 4-component vector of float) -0:39 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 direct index ( in 4-component vector of float Position) -0:? 'I.m_Position' ( in 3-element array of 4-component vector of float Position) -0:39 Constant: -0:39 1 (const int) -0:39 move second child to first child ( temp 4-component vector of float) -0:39 m_Normal: direct index for structure ( temp 4-component vector of float) -0:39 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 direct index (layout( location=0) in 4-component vector of float) -0:? 'I.m_Normal' (layout( location=0) in 3-element array of 4-component vector of float) -0:39 Constant: -0:39 1 (const int) -0:39 move second child to first child ( temp 4-component vector of float) -0:39 m_Position: direct index for structure ( temp 4-component vector of float) -0:39 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:39 Constant: -0:39 2 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 direct index ( in 4-component vector of float Position) -0:? 'I.m_Position' ( in 3-element array of 4-component vector of float Position) -0:39 Constant: -0:39 2 (const int) -0:39 move second child to first child ( temp 4-component vector of float) -0:39 m_Normal: direct index for structure ( temp 4-component vector of float) -0:39 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:39 Constant: -0:39 2 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 direct index (layout( location=0) in 4-component vector of float) -0:? 'I.m_Normal' (layout( location=0) in 3-element array of 4-component vector of float) -0:39 Constant: -0:39 2 (const int) -0:39 move second child to first child ( temp uint) -0:? 'cpid' ( temp uint) -0:? 'cpid' ( in uint InvocationID) -0:39 Sequence -0:39 move second child to first child ( temp 4-component vector of float) -0:39 indirect index ( out 4-component vector of float Position) -0:? '@entryPointOutput.m_Position' ( out 3-element array of 4-component vector of float Position) -0:? 'cpid' ( in uint InvocationID) -0:39 m_Position: direct index for structure ( temp 4-component vector of float) -0:39 Function Call: @main(struct-HS_Input-vf4-vf41[3];u1; ( temp structure{ temp 4-component vector of float m_Position}) -0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:? 'cpid' ( temp uint) -0:39 Constant: -0:39 0 (const int) -0:? Barrier ( temp void) -0:? Test condition and select ( temp void) -0:? Condition -0:? Compare Equal ( temp bool) -0:? 'cpid' ( in uint InvocationID) -0:? Constant: -0:? 0 (const int) -0:? true case -0:? Sequence -0:? move second child to first child ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) -0:? Function Call: HS_ConstFunc(struct-HS_Input-vf4-vf41[3]; ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) -0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:? Sequence -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.fTessFactor' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 0 (const int) -0:? direct index ( temp float) -0:? fTessFactor: direct index for structure ( temp 3-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 0 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.fTessFactor' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 1 (const int) -0:? direct index ( temp float) -0:? fTessFactor: direct index for structure ( temp 3-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 1 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.fTessFactor' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 2 (const int) -0:? direct index ( temp float) -0:? fTessFactor: direct index for structure ( temp 3-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 2 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelInner) -0:? '@patchConstantOutput.fInsideTessFactor' ( patch out 2-element array of float TessLevelInner) -0:? Constant: -0:? 0 (const int) -0:? fInsideTessFactor: direct index for structure ( temp float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) -0:? Constant: -0:? 1 (const int) -0:? Linker Objects -0:? '@entryPointOutput.m_Position' ( out 3-element array of 4-component vector of float Position) -0:? 'I.m_Position' ( in 3-element array of 4-component vector of float Position) -0:? 'I.m_Normal' (layout( location=0) in 3-element array of 4-component vector of float) -0:? 'cpid' ( in uint InvocationID) -0:? '@patchConstantOutput.fTessFactor' ( patch out 4-element array of float TessLevelOuter) -0:? '@patchConstantOutput.fInsideTessFactor' ( patch out 2-element array of float TessLevelInner) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 124 - - Capability Tessellation - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint TessellationControl 4 "main" 56 61 80 83 107 120 - ExecutionMode 4 OutputVertices 3 - ExecutionMode 4 Triangles - ExecutionMode 4 SpacingFractionalOdd - ExecutionMode 4 VertexOrderCw - Source HLSL 500 - Name 4 "main" - Name 8 "HS_Input" - MemberName 8(HS_Input) 0 "m_Position" - MemberName 8(HS_Input) 1 "m_Normal" - Name 14 "HS_Output" - MemberName 14(HS_Output) 0 "fTessFactor" - MemberName 14(HS_Output) 1 "fInsideTessFactor" - Name 17 "HS_ConstFunc(struct-HS_Input-vf4-vf41[3];" - Name 16 "I" - Name 20 "HS_Main_Output" - MemberName 20(HS_Main_Output) 0 "m_Position" - Name 24 "@main(struct-HS_Input-vf4-vf41[3];u1;" - Name 22 "I" - Name 23 "cpid" - Name 27 "O" - Name 45 "output" - Name 53 "I" - Name 56 "I.m_Position" - Name 61 "I.m_Normal" - Name 78 "cpid" - Name 80 "cpid" - Name 83 "@entryPointOutput.m_Position" - Name 85 "param" - Name 87 "param" - Name 101 "@patchConstantResult" - Name 102 "param" - Name 107 "@patchConstantOutput.fTessFactor" - Name 120 "@patchConstantOutput.fInsideTessFactor" - Decorate 56(I.m_Position) BuiltIn Position - Decorate 61(I.m_Normal) Location 0 - Decorate 80(cpid) BuiltIn InvocationId - Decorate 83(@entryPointOutput.m_Position) BuiltIn Position - Decorate 107(@patchConstantOutput.fTessFactor) Patch - Decorate 107(@patchConstantOutput.fTessFactor) BuiltIn TessLevelOuter - Decorate 120(@patchConstantOutput.fInsideTessFactor) Patch - Decorate 120(@patchConstantOutput.fInsideTessFactor) BuiltIn TessLevelInner - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8(HS_Input): TypeStruct 7(fvec4) 7(fvec4) - 9: TypeInt 32 0 - 10: 9(int) Constant 3 - 11: TypeArray 8(HS_Input) 10 - 12: TypePointer Function 11 - 13: TypeArray 6(float) 10 - 14(HS_Output): TypeStruct 13 6(float) - 15: TypeFunction 14(HS_Output) 12(ptr) - 19: TypePointer Function 9(int) -20(HS_Main_Output): TypeStruct 7(fvec4) - 21: TypeFunction 20(HS_Main_Output) 12(ptr) 19(ptr) - 26: TypePointer Function 14(HS_Output) - 28: 6(float) Constant 0 - 29: 13 ConstantComposite 28 28 28 - 30:14(HS_Output) ConstantComposite 29 28 - 31: TypeInt 32 1 - 32: 31(int) Constant 1 - 33: 31(int) Constant 0 - 34: TypePointer Function 6(float) - 44: TypePointer Function 20(HS_Main_Output) - 46: 7(fvec4) ConstantComposite 28 28 28 28 - 47:20(HS_Main_Output) ConstantComposite 46 - 48: TypePointer Function 7(fvec4) - 54: TypeArray 7(fvec4) 10 - 55: TypePointer Input 54 -56(I.m_Position): 55(ptr) Variable Input - 57: TypePointer Input 7(fvec4) - 61(I.m_Normal): 55(ptr) Variable Input - 71: 31(int) Constant 2 - 79: TypePointer Input 9(int) - 80(cpid): 79(ptr) Variable Input - 82: TypePointer Output 54 -83(@entryPointOutput.m_Position): 82(ptr) Variable Output - 91: TypePointer Output 7(fvec4) - 93: 9(int) Constant 2 - 94: 9(int) Constant 4 - 95: 9(int) Constant 0 - 97: TypeBool - 105: TypeArray 6(float) 94 - 106: TypePointer Output 105 -107(@patchConstantOutput.fTessFactor): 106(ptr) Variable Output - 110: TypePointer Output 6(float) - 118: TypeArray 6(float) 93 - 119: TypePointer Output 118 -120(@patchConstantOutput.fInsideTessFactor): 119(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 53(I): 12(ptr) Variable Function - 78(cpid): 19(ptr) Variable Function - 85(param): 12(ptr) Variable Function - 87(param): 19(ptr) Variable Function -101(@patchConstantResult): 26(ptr) Variable Function - 102(param): 12(ptr) Variable Function - 58: 57(ptr) AccessChain 56(I.m_Position) 33 - 59: 7(fvec4) Load 58 - 60: 48(ptr) AccessChain 53(I) 33 33 - Store 60 59 - 62: 57(ptr) AccessChain 61(I.m_Normal) 33 - 63: 7(fvec4) Load 62 - 64: 48(ptr) AccessChain 53(I) 33 32 - Store 64 63 - 65: 57(ptr) AccessChain 56(I.m_Position) 32 - 66: 7(fvec4) Load 65 - 67: 48(ptr) AccessChain 53(I) 32 33 - Store 67 66 - 68: 57(ptr) AccessChain 61(I.m_Normal) 32 - 69: 7(fvec4) Load 68 - 70: 48(ptr) AccessChain 53(I) 32 32 - Store 70 69 - 72: 57(ptr) AccessChain 56(I.m_Position) 71 - 73: 7(fvec4) Load 72 - 74: 48(ptr) AccessChain 53(I) 71 33 - Store 74 73 - 75: 57(ptr) AccessChain 61(I.m_Normal) 71 - 76: 7(fvec4) Load 75 - 77: 48(ptr) AccessChain 53(I) 71 32 - Store 77 76 - 81: 9(int) Load 80(cpid) - Store 78(cpid) 81 - 84: 9(int) Load 80(cpid) - 86: 11 Load 53(I) - Store 85(param) 86 - 88: 9(int) Load 78(cpid) - Store 87(param) 88 - 89:20(HS_Main_Output) FunctionCall 24(@main(struct-HS_Input-vf4-vf41[3];u1;) 85(param) 87(param) - 90: 7(fvec4) CompositeExtract 89 0 - 92: 91(ptr) AccessChain 83(@entryPointOutput.m_Position) 84 - Store 92 90 - ControlBarrier 93 94 95 - 96: 9(int) Load 80(cpid) - 98: 97(bool) IEqual 96 33 - SelectionMerge 100 None - BranchConditional 98 99 100 - 99: Label - 103: 11 Load 53(I) - Store 102(param) 103 - 104:14(HS_Output) FunctionCall 17(HS_ConstFunc(struct-HS_Input-vf4-vf41[3];) 102(param) - Store 101(@patchConstantResult) 104 - 108: 34(ptr) AccessChain 101(@patchConstantResult) 33 33 - 109: 6(float) Load 108 - 111: 110(ptr) AccessChain 107(@patchConstantOutput.fTessFactor) 33 - Store 111 109 - 112: 34(ptr) AccessChain 101(@patchConstantResult) 33 32 - 113: 6(float) Load 112 - 114: 110(ptr) AccessChain 107(@patchConstantOutput.fTessFactor) 32 - Store 114 113 - 115: 34(ptr) AccessChain 101(@patchConstantResult) 33 71 - 116: 6(float) Load 115 - 117: 110(ptr) AccessChain 107(@patchConstantOutput.fTessFactor) 71 - Store 117 116 - 121: 34(ptr) AccessChain 101(@patchConstantResult) 32 - 122: 6(float) Load 121 - 123: 110(ptr) AccessChain 120(@patchConstantOutput.fInsideTessFactor) 33 - Store 123 122 - Branch 100 - 100: Label - Return - FunctionEnd -17(HS_ConstFunc(struct-HS_Input-vf4-vf41[3];):14(HS_Output) Function None 15 - 16(I): 12(ptr) FunctionParameter - 18: Label - 27(O): 26(ptr) Variable Function - Store 27(O) 30 - 35: 34(ptr) AccessChain 16(I) 33 33 10 - 36: 6(float) Load 35 - 37: 34(ptr) AccessChain 16(I) 33 32 10 - 38: 6(float) Load 37 - 39: 6(float) FAdd 36 38 - 40: 34(ptr) AccessChain 27(O) 32 - Store 40 39 - 41:14(HS_Output) Load 27(O) - ReturnValue 41 - FunctionEnd -24(@main(struct-HS_Input-vf4-vf41[3];u1;):20(HS_Main_Output) Function None 21 - 22(I): 12(ptr) FunctionParameter - 23(cpid): 19(ptr) FunctionParameter - 25: Label - 45(output): 44(ptr) Variable Function - Store 45(output) 47 - 49: 48(ptr) AccessChain 45(output) 33 - Store 49 46 - 50:20(HS_Main_Output) Load 45(output) - ReturnValue 50 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.hull.5.tesc.out b/deps/glslang/Test/baseResults/hlsl.hull.5.tesc.out deleted file mode 100644 index 656427b6..00000000 --- a/deps/glslang/Test/baseResults/hlsl.hull.5.tesc.out +++ /dev/null @@ -1,188 +0,0 @@ -hlsl.hull.5.tesc -ERROR: 0:0: '' : unimplemented: PCF input patch without entry point input patch parameter -ERROR: 1 compilation errors. No code generated. - - -Shader version: 500 -vertices = 3 -vertex spacing = fractional_odd_spacing -triangle order = cw -ERROR: node is still EOpNull! -0:25 Function Definition: HS_ConstFunc(struct-HS_Input-vf4-vf41[3]; ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) -0:25 Function Parameters: -0:25 'I' ( in 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:? Sequence -0:26 Sequence -0:26 move second child to first child ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) -0:26 'O' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) -0:26 Constant: -0:26 0.000000 -0:26 0.000000 -0:26 0.000000 -0:26 0.000000 -0:28 move second child to first child ( temp float) -0:28 fInsideTessFactor: direct index for structure ( temp float) -0:28 'O' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) -0:28 Constant: -0:28 1 (const int) -0:28 add ( temp float) -0:28 direct index ( temp float) -0:28 m_Position: direct index for structure ( temp 4-component vector of float) -0:28 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:28 'I' ( in 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 3 (const int) -0:28 direct index ( temp float) -0:28 m_Normal: direct index for structure ( temp 4-component vector of float) -0:28 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:28 'I' ( in 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 1 (const int) -0:28 Constant: -0:28 3 (const int) -0:30 Branch: Return with expression -0:30 'O' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) -0:39 Function Definition: @main(u1; ( temp structure{ temp 4-component vector of float m_Position}) -0:39 Function Parameters: -0:39 'cpid' ( in uint) -0:? Sequence -0:40 Sequence -0:40 move second child to first child ( temp structure{ temp 4-component vector of float m_Position}) -0:40 'output' ( temp structure{ temp 4-component vector of float m_Position}) -0:40 Constant: -0:40 0.000000 -0:40 0.000000 -0:40 0.000000 -0:40 0.000000 -0:41 move second child to first child ( temp 4-component vector of float) -0:41 m_Position: direct index for structure ( temp 4-component vector of float) -0:41 'output' ( temp structure{ temp 4-component vector of float m_Position}) -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 0.000000 -0:41 0.000000 -0:41 0.000000 -0:41 0.000000 -0:42 Branch: Return with expression -0:42 'output' ( temp structure{ temp 4-component vector of float m_Position}) -0:39 Function Definition: main( ( temp void) -0:39 Function Parameters: -0:? Sequence -0:39 move second child to first child ( temp uint) -0:? 'cpid' ( temp uint) -0:? 'cpid' ( in uint InvocationID) -0:39 Sequence -0:39 move second child to first child ( temp 4-component vector of float) -0:39 indirect index ( out 4-component vector of float Position) -0:? '@entryPointOutput.m_Position' ( out 3-element array of 4-component vector of float Position) -0:? 'cpid' ( in uint InvocationID) -0:39 m_Position: direct index for structure ( temp 4-component vector of float) -0:39 Function Call: @main(u1; ( temp structure{ temp 4-component vector of float m_Position}) -0:? 'cpid' ( temp uint) -0:39 Constant: -0:39 0 (const int) -0:? Linker Objects -0:? '@entryPointOutput.m_Position' ( out 3-element array of 4-component vector of float Position) -0:? 'cpid' ( in uint InvocationID) - - -Linked tessellation control stage: - - -Shader version: 500 -vertices = 3 -vertex spacing = fractional_odd_spacing -triangle order = cw -ERROR: node is still EOpNull! -0:25 Function Definition: HS_ConstFunc(struct-HS_Input-vf4-vf41[3]; ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) -0:25 Function Parameters: -0:25 'I' ( in 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:? Sequence -0:26 Sequence -0:26 move second child to first child ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) -0:26 'O' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) -0:26 Constant: -0:26 0.000000 -0:26 0.000000 -0:26 0.000000 -0:26 0.000000 -0:28 move second child to first child ( temp float) -0:28 fInsideTessFactor: direct index for structure ( temp float) -0:28 'O' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) -0:28 Constant: -0:28 1 (const int) -0:28 add ( temp float) -0:28 direct index ( temp float) -0:28 m_Position: direct index for structure ( temp 4-component vector of float) -0:28 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:28 'I' ( in 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 3 (const int) -0:28 direct index ( temp float) -0:28 m_Normal: direct index for structure ( temp 4-component vector of float) -0:28 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:28 'I' ( in 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 1 (const int) -0:28 Constant: -0:28 3 (const int) -0:30 Branch: Return with expression -0:30 'O' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) -0:39 Function Definition: @main(u1; ( temp structure{ temp 4-component vector of float m_Position}) -0:39 Function Parameters: -0:39 'cpid' ( in uint) -0:? Sequence -0:40 Sequence -0:40 move second child to first child ( temp structure{ temp 4-component vector of float m_Position}) -0:40 'output' ( temp structure{ temp 4-component vector of float m_Position}) -0:40 Constant: -0:40 0.000000 -0:40 0.000000 -0:40 0.000000 -0:40 0.000000 -0:41 move second child to first child ( temp 4-component vector of float) -0:41 m_Position: direct index for structure ( temp 4-component vector of float) -0:41 'output' ( temp structure{ temp 4-component vector of float m_Position}) -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 0.000000 -0:41 0.000000 -0:41 0.000000 -0:41 0.000000 -0:42 Branch: Return with expression -0:42 'output' ( temp structure{ temp 4-component vector of float m_Position}) -0:39 Function Definition: main( ( temp void) -0:39 Function Parameters: -0:? Sequence -0:39 move second child to first child ( temp uint) -0:? 'cpid' ( temp uint) -0:? 'cpid' ( in uint InvocationID) -0:39 Sequence -0:39 move second child to first child ( temp 4-component vector of float) -0:39 indirect index ( out 4-component vector of float Position) -0:? '@entryPointOutput.m_Position' ( out 3-element array of 4-component vector of float Position) -0:? 'cpid' ( in uint InvocationID) -0:39 m_Position: direct index for structure ( temp 4-component vector of float) -0:39 Function Call: @main(u1; ( temp structure{ temp 4-component vector of float m_Position}) -0:? 'cpid' ( temp uint) -0:39 Constant: -0:39 0 (const int) -0:? Linker Objects -0:? '@entryPointOutput.m_Position' ( out 3-element array of 4-component vector of float Position) -0:? 'cpid' ( in uint InvocationID) - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/hlsl.hull.6.tesc.out b/deps/glslang/Test/baseResults/hlsl.hull.6.tesc.out deleted file mode 100644 index efb6e5b1..00000000 --- a/deps/glslang/Test/baseResults/hlsl.hull.6.tesc.out +++ /dev/null @@ -1,679 +0,0 @@ -hlsl.hull.6.tesc -Shader version: 500 -vertices = 1 -vertex spacing = fractional_even_spacing -triangle order = ccw -0:? Sequence -0:17 Function Definition: ConstantHS(struct-VSOutput-vf4-vf31[1];u1;f1[2]; ( temp structure{ temp 4-element array of float Edges}) -0:17 Function Parameters: -0:17 'p' ( in 1-element array of structure{ temp 4-component vector of float f4Position, temp 3-component vector of float f3Color}) -0:17 'BlockID' ( in uint) -0:17 'Inside' ( out 2-element array of float) -0:? Sequence -0:19 move second child to first child ( temp float) -0:19 direct index ( temp float) -0:19 Edges: direct index for structure ( temp 4-element array of float) -0:19 'Factors' ( temp structure{ temp 4-element array of float Edges}) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 2.500000 -0:20 move second child to first child ( temp float) -0:20 direct index ( temp float) -0:20 Edges: direct index for structure ( temp 4-element array of float) -0:20 'Factors' ( temp structure{ temp 4-element array of float Edges}) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 4.250000 -0:21 move second child to first child ( temp float) -0:21 direct index ( temp float) -0:21 Edges: direct index for structure ( temp 4-element array of float) -0:21 'Factors' ( temp structure{ temp 4-element array of float Edges}) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 2 (const int) -0:21 Constant: -0:21 5.750000 -0:22 move second child to first child ( temp float) -0:22 direct index ( temp float) -0:22 Edges: direct index for structure ( temp 4-element array of float) -0:22 'Factors' ( temp structure{ temp 4-element array of float Edges}) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 3 (const int) -0:22 Constant: -0:22 7.500000 -0:24 move second child to first child ( temp float) -0:24 direct index ( temp float) -0:24 'Inside' ( out 2-element array of float) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 6.750000 -0:25 move second child to first child ( temp float) -0:25 direct index ( temp float) -0:25 'Inside' ( out 2-element array of float) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 7.250000 -0:27 Branch: Return with expression -0:27 'Factors' ( temp structure{ temp 4-element array of float Edges}) -0:42 Function Definition: @main(struct-VSOutput-vf4-vf31[1];u1; ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float Color}) -0:42 Function Parameters: -0:42 'inputPatch' ( in 1-element array of structure{ temp 4-component vector of float f4Position, temp 3-component vector of float f3Color}) -0:42 'uCPID' ( in uint) -0:? Sequence -0:44 move second child to first child ( temp 4-component vector of float) -0:44 Position: direct index for structure ( temp 4-component vector of float) -0:44 'Out' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float Color}) -0:44 Constant: -0:44 0 (const int) -0:44 f4Position: direct index for structure ( temp 4-component vector of float) -0:44 indirect index ( temp structure{ temp 4-component vector of float f4Position, temp 3-component vector of float f3Color}) -0:44 'inputPatch' ( in 1-element array of structure{ temp 4-component vector of float f4Position, temp 3-component vector of float f3Color}) -0:44 'uCPID' ( in uint) -0:44 Constant: -0:44 0 (const int) -0:45 move second child to first child ( temp 3-component vector of float) -0:45 Color: direct index for structure ( temp 3-component vector of float) -0:45 'Out' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float Color}) -0:45 Constant: -0:45 1 (const int) -0:45 f3Color: direct index for structure ( temp 3-component vector of float) -0:45 indirect index ( temp structure{ temp 4-component vector of float f4Position, temp 3-component vector of float f3Color}) -0:45 'inputPatch' ( in 1-element array of structure{ temp 4-component vector of float f4Position, temp 3-component vector of float f3Color}) -0:45 'uCPID' ( in uint) -0:45 Constant: -0:45 1 (const int) -0:46 Branch: Return with expression -0:46 'Out' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float Color}) -0:42 Function Definition: main( ( temp void) -0:42 Function Parameters: -0:? Sequence -0:42 Sequence -0:42 move second child to first child ( temp 4-component vector of float) -0:42 f4Position: direct index for structure ( temp 4-component vector of float) -0:42 direct index ( temp structure{ temp 4-component vector of float f4Position, temp 3-component vector of float f3Color}) -0:? 'inputPatch' ( temp 1-element array of structure{ temp 4-component vector of float f4Position, temp 3-component vector of float f3Color}) -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 0 (const int) -0:42 direct index ( in 4-component vector of float Position) -0:? 'inputPatch.f4Position' ( in 1-element array of 4-component vector of float Position) -0:42 Constant: -0:42 0 (const int) -0:42 move second child to first child ( temp 3-component vector of float) -0:42 f3Color: direct index for structure ( temp 3-component vector of float) -0:42 direct index ( temp structure{ temp 4-component vector of float f4Position, temp 3-component vector of float f3Color}) -0:? 'inputPatch' ( temp 1-element array of structure{ temp 4-component vector of float f4Position, temp 3-component vector of float f3Color}) -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 direct index (layout( location=0) in 3-component vector of float) -0:? 'inputPatch.f3Color' (layout( location=0) in 1-element array of 3-component vector of float) -0:42 Constant: -0:42 0 (const int) -0:42 move second child to first child ( temp uint) -0:? 'uCPID' ( temp uint) -0:? 'uCPID' ( in uint InvocationID) -0:42 Sequence -0:42 move second child to first child ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float Color}) -0:42 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float Color}) -0:42 Function Call: @main(struct-VSOutput-vf4-vf31[1];u1; ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float Color}) -0:? 'inputPatch' ( temp 1-element array of structure{ temp 4-component vector of float f4Position, temp 3-component vector of float f3Color}) -0:? 'uCPID' ( temp uint) -0:42 move second child to first child ( temp 4-component vector of float) -0:42 indirect index (layout( location=0) out 4-component vector of float) -0:? '@entryPointOutput.Position' (layout( location=0) out 1-element array of 4-component vector of float) -0:? 'uCPID' ( in uint InvocationID) -0:42 Position: direct index for structure ( temp 4-component vector of float) -0:42 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float Color}) -0:42 Constant: -0:42 0 (const int) -0:42 move second child to first child ( temp 3-component vector of float) -0:42 indirect index (layout( location=1) out 3-component vector of float) -0:? '@entryPointOutput.Color' (layout( location=1) out 1-element array of 3-component vector of float) -0:? 'uCPID' ( in uint InvocationID) -0:42 Color: direct index for structure ( temp 3-component vector of float) -0:42 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float Color}) -0:42 Constant: -0:42 1 (const int) -0:? Barrier ( temp void) -0:? Test condition and select ( temp void) -0:? Condition -0:? Compare Equal ( temp bool) -0:? 'uCPID' ( in uint InvocationID) -0:? Constant: -0:? 0 (const int) -0:? true case -0:? Sequence -0:? move second child to first child ( temp structure{ temp 4-element array of float Edges}) -0:? '@patchConstantResult' ( temp structure{ temp 4-element array of float Edges}) -0:? Function Call: ConstantHS(struct-VSOutput-vf4-vf31[1];u1;f1[2]; ( temp structure{ temp 4-element array of float Edges}) -0:? 'inputPatch' ( temp 1-element array of structure{ temp 4-component vector of float f4Position, temp 3-component vector of float f3Color}) -0:? 'BlockID' ( in uint PrimitiveID) -0:? 'Inside' ( patch out 2-element array of float TessLevelInner) -0:? Sequence -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.Edges' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 0 (const int) -0:? direct index ( temp float) -0:? Edges: direct index for structure ( temp 4-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 4-element array of float Edges}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 0 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.Edges' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 1 (const int) -0:? direct index ( temp float) -0:? Edges: direct index for structure ( temp 4-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 4-element array of float Edges}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 1 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.Edges' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 2 (const int) -0:? direct index ( temp float) -0:? Edges: direct index for structure ( temp 4-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 4-element array of float Edges}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 2 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.Edges' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 3 (const int) -0:? direct index ( temp float) -0:? Edges: direct index for structure ( temp 4-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 4-element array of float Edges}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 3 (const int) -0:? Linker Objects -0:? '@entryPointOutput.Position' (layout( location=0) out 1-element array of 4-component vector of float) -0:? '@entryPointOutput.Color' (layout( location=1) out 1-element array of 3-component vector of float) -0:? 'inputPatch.f4Position' ( in 1-element array of 4-component vector of float Position) -0:? 'inputPatch.f3Color' (layout( location=0) in 1-element array of 3-component vector of float) -0:? 'uCPID' ( in uint InvocationID) -0:? 'BlockID' ( in uint PrimitiveID) -0:? 'Inside' ( patch out 2-element array of float TessLevelInner) -0:? '@patchConstantOutput.Edges' ( patch out 4-element array of float TessLevelOuter) - - -Linked tessellation control stage: - - -Shader version: 500 -vertices = 1 -vertex spacing = fractional_even_spacing -triangle order = ccw -0:? Sequence -0:17 Function Definition: ConstantHS(struct-VSOutput-vf4-vf31[1];u1;f1[2]; ( temp structure{ temp 4-element array of float Edges}) -0:17 Function Parameters: -0:17 'p' ( in 1-element array of structure{ temp 4-component vector of float f4Position, temp 3-component vector of float f3Color}) -0:17 'BlockID' ( in uint) -0:17 'Inside' ( out 2-element array of float) -0:? Sequence -0:19 move second child to first child ( temp float) -0:19 direct index ( temp float) -0:19 Edges: direct index for structure ( temp 4-element array of float) -0:19 'Factors' ( temp structure{ temp 4-element array of float Edges}) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 2.500000 -0:20 move second child to first child ( temp float) -0:20 direct index ( temp float) -0:20 Edges: direct index for structure ( temp 4-element array of float) -0:20 'Factors' ( temp structure{ temp 4-element array of float Edges}) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 4.250000 -0:21 move second child to first child ( temp float) -0:21 direct index ( temp float) -0:21 Edges: direct index for structure ( temp 4-element array of float) -0:21 'Factors' ( temp structure{ temp 4-element array of float Edges}) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 2 (const int) -0:21 Constant: -0:21 5.750000 -0:22 move second child to first child ( temp float) -0:22 direct index ( temp float) -0:22 Edges: direct index for structure ( temp 4-element array of float) -0:22 'Factors' ( temp structure{ temp 4-element array of float Edges}) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 3 (const int) -0:22 Constant: -0:22 7.500000 -0:24 move second child to first child ( temp float) -0:24 direct index ( temp float) -0:24 'Inside' ( out 2-element array of float) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 6.750000 -0:25 move second child to first child ( temp float) -0:25 direct index ( temp float) -0:25 'Inside' ( out 2-element array of float) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 7.250000 -0:27 Branch: Return with expression -0:27 'Factors' ( temp structure{ temp 4-element array of float Edges}) -0:42 Function Definition: @main(struct-VSOutput-vf4-vf31[1];u1; ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float Color}) -0:42 Function Parameters: -0:42 'inputPatch' ( in 1-element array of structure{ temp 4-component vector of float f4Position, temp 3-component vector of float f3Color}) -0:42 'uCPID' ( in uint) -0:? Sequence -0:44 move second child to first child ( temp 4-component vector of float) -0:44 Position: direct index for structure ( temp 4-component vector of float) -0:44 'Out' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float Color}) -0:44 Constant: -0:44 0 (const int) -0:44 f4Position: direct index for structure ( temp 4-component vector of float) -0:44 indirect index ( temp structure{ temp 4-component vector of float f4Position, temp 3-component vector of float f3Color}) -0:44 'inputPatch' ( in 1-element array of structure{ temp 4-component vector of float f4Position, temp 3-component vector of float f3Color}) -0:44 'uCPID' ( in uint) -0:44 Constant: -0:44 0 (const int) -0:45 move second child to first child ( temp 3-component vector of float) -0:45 Color: direct index for structure ( temp 3-component vector of float) -0:45 'Out' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float Color}) -0:45 Constant: -0:45 1 (const int) -0:45 f3Color: direct index for structure ( temp 3-component vector of float) -0:45 indirect index ( temp structure{ temp 4-component vector of float f4Position, temp 3-component vector of float f3Color}) -0:45 'inputPatch' ( in 1-element array of structure{ temp 4-component vector of float f4Position, temp 3-component vector of float f3Color}) -0:45 'uCPID' ( in uint) -0:45 Constant: -0:45 1 (const int) -0:46 Branch: Return with expression -0:46 'Out' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float Color}) -0:42 Function Definition: main( ( temp void) -0:42 Function Parameters: -0:? Sequence -0:42 Sequence -0:42 move second child to first child ( temp 4-component vector of float) -0:42 f4Position: direct index for structure ( temp 4-component vector of float) -0:42 direct index ( temp structure{ temp 4-component vector of float f4Position, temp 3-component vector of float f3Color}) -0:? 'inputPatch' ( temp 1-element array of structure{ temp 4-component vector of float f4Position, temp 3-component vector of float f3Color}) -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 0 (const int) -0:42 direct index ( in 4-component vector of float Position) -0:? 'inputPatch.f4Position' ( in 1-element array of 4-component vector of float Position) -0:42 Constant: -0:42 0 (const int) -0:42 move second child to first child ( temp 3-component vector of float) -0:42 f3Color: direct index for structure ( temp 3-component vector of float) -0:42 direct index ( temp structure{ temp 4-component vector of float f4Position, temp 3-component vector of float f3Color}) -0:? 'inputPatch' ( temp 1-element array of structure{ temp 4-component vector of float f4Position, temp 3-component vector of float f3Color}) -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 direct index (layout( location=0) in 3-component vector of float) -0:? 'inputPatch.f3Color' (layout( location=0) in 1-element array of 3-component vector of float) -0:42 Constant: -0:42 0 (const int) -0:42 move second child to first child ( temp uint) -0:? 'uCPID' ( temp uint) -0:? 'uCPID' ( in uint InvocationID) -0:42 Sequence -0:42 move second child to first child ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float Color}) -0:42 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float Color}) -0:42 Function Call: @main(struct-VSOutput-vf4-vf31[1];u1; ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float Color}) -0:? 'inputPatch' ( temp 1-element array of structure{ temp 4-component vector of float f4Position, temp 3-component vector of float f3Color}) -0:? 'uCPID' ( temp uint) -0:42 move second child to first child ( temp 4-component vector of float) -0:42 indirect index (layout( location=0) out 4-component vector of float) -0:? '@entryPointOutput.Position' (layout( location=0) out 1-element array of 4-component vector of float) -0:? 'uCPID' ( in uint InvocationID) -0:42 Position: direct index for structure ( temp 4-component vector of float) -0:42 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float Color}) -0:42 Constant: -0:42 0 (const int) -0:42 move second child to first child ( temp 3-component vector of float) -0:42 indirect index (layout( location=1) out 3-component vector of float) -0:? '@entryPointOutput.Color' (layout( location=1) out 1-element array of 3-component vector of float) -0:? 'uCPID' ( in uint InvocationID) -0:42 Color: direct index for structure ( temp 3-component vector of float) -0:42 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float Color}) -0:42 Constant: -0:42 1 (const int) -0:? Barrier ( temp void) -0:? Test condition and select ( temp void) -0:? Condition -0:? Compare Equal ( temp bool) -0:? 'uCPID' ( in uint InvocationID) -0:? Constant: -0:? 0 (const int) -0:? true case -0:? Sequence -0:? move second child to first child ( temp structure{ temp 4-element array of float Edges}) -0:? '@patchConstantResult' ( temp structure{ temp 4-element array of float Edges}) -0:? Function Call: ConstantHS(struct-VSOutput-vf4-vf31[1];u1;f1[2]; ( temp structure{ temp 4-element array of float Edges}) -0:? 'inputPatch' ( temp 1-element array of structure{ temp 4-component vector of float f4Position, temp 3-component vector of float f3Color}) -0:? 'BlockID' ( in uint PrimitiveID) -0:? 'Inside' ( patch out 2-element array of float TessLevelInner) -0:? Sequence -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.Edges' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 0 (const int) -0:? direct index ( temp float) -0:? Edges: direct index for structure ( temp 4-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 4-element array of float Edges}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 0 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.Edges' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 1 (const int) -0:? direct index ( temp float) -0:? Edges: direct index for structure ( temp 4-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 4-element array of float Edges}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 1 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.Edges' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 2 (const int) -0:? direct index ( temp float) -0:? Edges: direct index for structure ( temp 4-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 4-element array of float Edges}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 2 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.Edges' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 3 (const int) -0:? direct index ( temp float) -0:? Edges: direct index for structure ( temp 4-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 4-element array of float Edges}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 3 (const int) -0:? Linker Objects -0:? '@entryPointOutput.Position' (layout( location=0) out 1-element array of 4-component vector of float) -0:? '@entryPointOutput.Color' (layout( location=1) out 1-element array of 3-component vector of float) -0:? 'inputPatch.f4Position' ( in 1-element array of 4-component vector of float Position) -0:? 'inputPatch.f3Color' (layout( location=0) in 1-element array of 3-component vector of float) -0:? 'uCPID' ( in uint InvocationID) -0:? 'BlockID' ( in uint PrimitiveID) -0:? 'Inside' ( patch out 2-element array of float TessLevelInner) -0:? '@patchConstantOutput.Edges' ( patch out 4-element array of float TessLevelOuter) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 142 - - Capability Tessellation - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint TessellationControl 4 "main" 74 81 88 97 104 117 119 128 - ExecutionMode 4 OutputVertices 1 - ExecutionMode 4 Quads - ExecutionMode 4 SpacingFractionalEven - ExecutionMode 4 VertexOrderCcw - Source HLSL 500 - Name 4 "main" - Name 9 "VSOutput" - MemberName 9(VSOutput) 0 "f4Position" - MemberName 9(VSOutput) 1 "f3Color" - Name 20 "HS_CONSTANT_DATA_OUTPUT" - MemberName 20(HS_CONSTANT_DATA_OUTPUT) 0 "Edges" - Name 25 "ConstantHS(struct-VSOutput-vf4-vf31[1];u1;f1[2];" - Name 22 "p" - Name 23 "BlockID" - Name 24 "Inside" - Name 27 "HSOutput" - MemberName 27(HSOutput) 0 "Position" - MemberName 27(HSOutput) 1 "Color" - Name 31 "@main(struct-VSOutput-vf4-vf31[1];u1;" - Name 29 "inputPatch" - Name 30 "uCPID" - Name 34 "Factors" - Name 57 "Out" - Name 71 "inputPatch" - Name 74 "inputPatch.f4Position" - Name 81 "inputPatch.f3Color" - Name 86 "uCPID" - Name 88 "uCPID" - Name 90 "flattenTemp" - Name 91 "param" - Name 93 "param" - Name 97 "@entryPointOutput.Position" - Name 104 "@entryPointOutput.Color" - Name 116 "@patchConstantResult" - Name 117 "BlockID" - Name 119 "Inside" - Name 120 "param" - Name 122 "param" - Name 124 "param" - Name 128 "@patchConstantOutput.Edges" - Decorate 74(inputPatch.f4Position) BuiltIn Position - Decorate 81(inputPatch.f3Color) Location 0 - Decorate 88(uCPID) BuiltIn InvocationId - Decorate 97(@entryPointOutput.Position) Location 0 - Decorate 104(@entryPointOutput.Color) Location 1 - Decorate 117(BlockID) BuiltIn PrimitiveId - Decorate 119(Inside) Patch - Decorate 119(Inside) BuiltIn TessLevelInner - Decorate 128(@patchConstantOutput.Edges) Patch - Decorate 128(@patchConstantOutput.Edges) BuiltIn TessLevelOuter - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeVector 6(float) 3 - 9(VSOutput): TypeStruct 7(fvec4) 8(fvec3) - 10: TypeInt 32 0 - 11: 10(int) Constant 1 - 12: TypeArray 9(VSOutput) 11 - 13: TypePointer Function 12 - 14: TypePointer Function 10(int) - 15: 10(int) Constant 2 - 16: TypeArray 6(float) 15 - 17: TypePointer Function 16 - 18: 10(int) Constant 4 - 19: TypeArray 6(float) 18 -20(HS_CONSTANT_DATA_OUTPUT): TypeStruct 19 - 21: TypeFunction 20(HS_CONSTANT_DATA_OUTPUT) 13(ptr) 14(ptr) 17(ptr) - 27(HSOutput): TypeStruct 7(fvec4) 8(fvec3) - 28: TypeFunction 27(HSOutput) 13(ptr) 14(ptr) - 33: TypePointer Function 20(HS_CONSTANT_DATA_OUTPUT) - 35: TypeInt 32 1 - 36: 35(int) Constant 0 - 37: 6(float) Constant 1075838976 - 38: TypePointer Function 6(float) - 40: 35(int) Constant 1 - 41: 6(float) Constant 1082654720 - 43: 35(int) Constant 2 - 44: 6(float) Constant 1085800448 - 46: 35(int) Constant 3 - 47: 6(float) Constant 1089470464 - 49: 6(float) Constant 1087897600 - 51: 6(float) Constant 1088946176 - 56: TypePointer Function 27(HSOutput) - 59: TypePointer Function 7(fvec4) - 64: TypePointer Function 8(fvec3) - 72: TypeArray 7(fvec4) 11 - 73: TypePointer Input 72 -74(inputPatch.f4Position): 73(ptr) Variable Input - 75: TypePointer Input 7(fvec4) - 79: TypeArray 8(fvec3) 11 - 80: TypePointer Input 79 -81(inputPatch.f3Color): 80(ptr) Variable Input - 82: TypePointer Input 8(fvec3) - 87: TypePointer Input 10(int) - 88(uCPID): 87(ptr) Variable Input - 96: TypePointer Output 72 -97(@entryPointOutput.Position): 96(ptr) Variable Output - 101: TypePointer Output 7(fvec4) - 103: TypePointer Output 79 -104(@entryPointOutput.Color): 103(ptr) Variable Output - 108: TypePointer Output 8(fvec3) - 110: 10(int) Constant 0 - 112: TypeBool - 117(BlockID): 87(ptr) Variable Input - 118: TypePointer Output 16 - 119(Inside): 118(ptr) Variable Output - 127: TypePointer Output 19 -128(@patchConstantOutput.Edges): 127(ptr) Variable Output - 131: TypePointer Output 6(float) - 4(main): 2 Function None 3 - 5: Label - 71(inputPatch): 13(ptr) Variable Function - 86(uCPID): 14(ptr) Variable Function - 90(flattenTemp): 56(ptr) Variable Function - 91(param): 13(ptr) Variable Function - 93(param): 14(ptr) Variable Function -116(@patchConstantResult): 33(ptr) Variable Function - 120(param): 13(ptr) Variable Function - 122(param): 14(ptr) Variable Function - 124(param): 17(ptr) Variable Function - 76: 75(ptr) AccessChain 74(inputPatch.f4Position) 36 - 77: 7(fvec4) Load 76 - 78: 59(ptr) AccessChain 71(inputPatch) 36 36 - Store 78 77 - 83: 82(ptr) AccessChain 81(inputPatch.f3Color) 36 - 84: 8(fvec3) Load 83 - 85: 64(ptr) AccessChain 71(inputPatch) 36 40 - Store 85 84 - 89: 10(int) Load 88(uCPID) - Store 86(uCPID) 89 - 92: 12 Load 71(inputPatch) - Store 91(param) 92 - 94: 10(int) Load 86(uCPID) - Store 93(param) 94 - 95:27(HSOutput) FunctionCall 31(@main(struct-VSOutput-vf4-vf31[1];u1;) 91(param) 93(param) - Store 90(flattenTemp) 95 - 98: 10(int) Load 88(uCPID) - 99: 59(ptr) AccessChain 90(flattenTemp) 36 - 100: 7(fvec4) Load 99 - 102: 101(ptr) AccessChain 97(@entryPointOutput.Position) 98 - Store 102 100 - 105: 10(int) Load 88(uCPID) - 106: 64(ptr) AccessChain 90(flattenTemp) 40 - 107: 8(fvec3) Load 106 - 109: 108(ptr) AccessChain 104(@entryPointOutput.Color) 105 - Store 109 107 - ControlBarrier 15 18 110 - 111: 10(int) Load 88(uCPID) - 113: 112(bool) IEqual 111 36 - SelectionMerge 115 None - BranchConditional 113 114 115 - 114: Label - 121: 12 Load 71(inputPatch) - Store 120(param) 121 - 123: 10(int) Load 117(BlockID) - Store 122(param) 123 - 125:20(HS_CONSTANT_DATA_OUTPUT) FunctionCall 25(ConstantHS(struct-VSOutput-vf4-vf31[1];u1;f1[2];) 120(param) 122(param) 124(param) - 126: 16 Load 124(param) - Store 119(Inside) 126 - Store 116(@patchConstantResult) 125 - 129: 38(ptr) AccessChain 116(@patchConstantResult) 36 36 - 130: 6(float) Load 129 - 132: 131(ptr) AccessChain 128(@patchConstantOutput.Edges) 36 - Store 132 130 - 133: 38(ptr) AccessChain 116(@patchConstantResult) 36 40 - 134: 6(float) Load 133 - 135: 131(ptr) AccessChain 128(@patchConstantOutput.Edges) 40 - Store 135 134 - 136: 38(ptr) AccessChain 116(@patchConstantResult) 36 43 - 137: 6(float) Load 136 - 138: 131(ptr) AccessChain 128(@patchConstantOutput.Edges) 43 - Store 138 137 - 139: 38(ptr) AccessChain 116(@patchConstantResult) 36 46 - 140: 6(float) Load 139 - 141: 131(ptr) AccessChain 128(@patchConstantOutput.Edges) 46 - Store 141 140 - Branch 115 - 115: Label - Return - FunctionEnd -25(ConstantHS(struct-VSOutput-vf4-vf31[1];u1;f1[2];):20(HS_CONSTANT_DATA_OUTPUT) Function None 21 - 22(p): 13(ptr) FunctionParameter - 23(BlockID): 14(ptr) FunctionParameter - 24(Inside): 17(ptr) FunctionParameter - 26: Label - 34(Factors): 33(ptr) Variable Function - 39: 38(ptr) AccessChain 34(Factors) 36 36 - Store 39 37 - 42: 38(ptr) AccessChain 34(Factors) 36 40 - Store 42 41 - 45: 38(ptr) AccessChain 34(Factors) 36 43 - Store 45 44 - 48: 38(ptr) AccessChain 34(Factors) 36 46 - Store 48 47 - 50: 38(ptr) AccessChain 24(Inside) 36 - Store 50 49 - 52: 38(ptr) AccessChain 24(Inside) 40 - Store 52 51 - 53:20(HS_CONSTANT_DATA_OUTPUT) Load 34(Factors) - ReturnValue 53 - FunctionEnd -31(@main(struct-VSOutput-vf4-vf31[1];u1;):27(HSOutput) Function None 28 - 29(inputPatch): 13(ptr) FunctionParameter - 30(uCPID): 14(ptr) FunctionParameter - 32: Label - 57(Out): 56(ptr) Variable Function - 58: 10(int) Load 30(uCPID) - 60: 59(ptr) AccessChain 29(inputPatch) 58 36 - 61: 7(fvec4) Load 60 - 62: 59(ptr) AccessChain 57(Out) 36 - Store 62 61 - 63: 10(int) Load 30(uCPID) - 65: 64(ptr) AccessChain 29(inputPatch) 63 40 - 66: 8(fvec3) Load 65 - 67: 64(ptr) AccessChain 57(Out) 40 - Store 67 66 - 68:27(HSOutput) Load 57(Out) - ReturnValue 68 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.hull.ctrlpt-1.tesc.out b/deps/glslang/Test/baseResults/hlsl.hull.ctrlpt-1.tesc.out deleted file mode 100644 index 70881e9b..00000000 --- a/deps/glslang/Test/baseResults/hlsl.hull.ctrlpt-1.tesc.out +++ /dev/null @@ -1,693 +0,0 @@ -hlsl.hull.ctrlpt-1.tesc -Shader version: 500 -vertices = 3 -vertex spacing = fractional_odd_spacing -triangle order = cw -0:? Sequence -0:27 Function Definition: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) -0:27 Function Parameters: -0:27 'i' ( in 3-element array of structure{ temp 3-component vector of float val}) -0:27 'cpid' ( in uint) -0:? Sequence -0:29 move second child to first child ( temp 3-component vector of float) -0:29 val: direct index for structure ( temp 3-component vector of float) -0:29 'o' ( temp structure{ temp 3-component vector of float val}) -0:29 Constant: -0:29 0 (const int) -0:29 Construct vec3 ( temp 3-component vector of float) -0:29 Convert uint to float ( temp float) -0:29 'cpid' ( in uint) -0:30 Branch: Return with expression -0:30 'o' ( temp structure{ temp 3-component vector of float val}) -0:27 Function Definition: main( ( temp void) -0:27 Function Parameters: -0:? Sequence -0:27 Sequence -0:27 move second child to first child ( temp 3-component vector of float) -0:27 val: direct index for structure ( temp 3-component vector of float) -0:27 direct index ( temp structure{ temp 3-component vector of float val}) -0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 0 (const int) -0:27 direct index (layout( location=0) in 3-component vector of float) -0:? 'i.val' (layout( location=0) in 3-element array of 3-component vector of float) -0:27 Constant: -0:27 0 (const int) -0:27 move second child to first child ( temp 3-component vector of float) -0:27 val: direct index for structure ( temp 3-component vector of float) -0:27 direct index ( temp structure{ temp 3-component vector of float val}) -0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:27 Constant: -0:27 1 (const int) -0:27 Constant: -0:27 0 (const int) -0:27 direct index (layout( location=0) in 3-component vector of float) -0:? 'i.val' (layout( location=0) in 3-element array of 3-component vector of float) -0:27 Constant: -0:27 1 (const int) -0:27 move second child to first child ( temp 3-component vector of float) -0:27 val: direct index for structure ( temp 3-component vector of float) -0:27 direct index ( temp structure{ temp 3-component vector of float val}) -0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:27 Constant: -0:27 2 (const int) -0:27 Constant: -0:27 0 (const int) -0:27 direct index (layout( location=0) in 3-component vector of float) -0:? 'i.val' (layout( location=0) in 3-element array of 3-component vector of float) -0:27 Constant: -0:27 2 (const int) -0:27 move second child to first child ( temp uint) -0:? 'cpid' ( temp uint) -0:? 'cpid' ( in uint InvocationID) -0:27 Sequence -0:27 move second child to first child ( temp 3-component vector of float) -0:27 indirect index (layout( location=0) out 3-component vector of float) -0:? '@entryPointOutput.val' (layout( location=0) out 3-element array of 3-component vector of float) -0:? 'cpid' ( in uint InvocationID) -0:27 val: direct index for structure ( temp 3-component vector of float) -0:27 Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) -0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:? 'cpid' ( temp uint) -0:27 Constant: -0:27 0 (const int) -0:? Barrier ( temp void) -0:? Test condition and select ( temp void) -0:? Condition -0:? Compare Equal ( temp bool) -0:? 'cpid' ( in uint InvocationID) -0:? Constant: -0:? 0 (const int) -0:? true case -0:? Sequence -0:? move second child to first child ( temp structure{ temp 3-component vector of float val}) -0:? direct index ( temp structure{ temp 3-component vector of float val}) -0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:? Constant: -0:? 0 (const int) -0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) -0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:? Constant: -0:? 0 (const uint) -0:? move second child to first child ( temp structure{ temp 3-component vector of float val}) -0:? direct index ( temp structure{ temp 3-component vector of float val}) -0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:? Constant: -0:? 1 (const int) -0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) -0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:? Constant: -0:? 1 (const uint) -0:? move second child to first child ( temp structure{ temp 3-component vector of float val}) -0:? direct index ( temp structure{ temp 3-component vector of float val}) -0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:? Constant: -0:? 2 (const int) -0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) -0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:? Constant: -0:? 2 (const uint) -0:? move second child to first child ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:? Function Call: PCF(struct-hs_out_t-vf31[3]; ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:? Sequence -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 0 (const int) -0:? direct index ( temp float) -0:? tfactor: direct index for structure ( temp 3-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 0 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 1 (const int) -0:? direct index ( temp float) -0:? tfactor: direct index for structure ( temp 3-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 1 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 2 (const int) -0:? direct index ( temp float) -0:? tfactor: direct index for structure ( temp 3-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 2 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelInner) -0:? '@patchConstantOutput.flInFactor' ( patch out 2-element array of float TessLevelInner) -0:? Constant: -0:? 0 (const int) -0:? flInFactor: direct index for structure ( temp float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:? Constant: -0:? 1 (const int) -0:34 Function Definition: PCF(struct-hs_out_t-vf31[3]; ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:34 Function Parameters: -0:34 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) -0:? Sequence -0:37 move second child to first child ( temp float) -0:37 direct index ( temp float) -0:37 tfactor: direct index for structure ( temp 3-element array of float) -0:37 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 0 (const int) -0:37 direct index ( temp float) -0:37 val: direct index for structure ( temp 3-component vector of float) -0:37 direct index ( temp structure{ temp 3-component vector of float val}) -0:37 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 0 (const int) -0:38 move second child to first child ( temp float) -0:38 direct index ( temp float) -0:38 tfactor: direct index for structure ( temp 3-element array of float) -0:38 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 1 (const int) -0:38 direct index ( temp float) -0:38 val: direct index for structure ( temp 3-component vector of float) -0:38 direct index ( temp structure{ temp 3-component vector of float val}) -0:38 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) -0:38 Constant: -0:38 1 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 0 (const int) -0:39 move second child to first child ( temp float) -0:39 direct index ( temp float) -0:39 tfactor: direct index for structure ( temp 3-element array of float) -0:39 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 2 (const int) -0:39 direct index ( temp float) -0:39 val: direct index for structure ( temp 3-component vector of float) -0:39 direct index ( temp structure{ temp 3-component vector of float val}) -0:39 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) -0:39 Constant: -0:39 2 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 0 (const int) -0:40 move second child to first child ( temp float) -0:40 flInFactor: direct index for structure ( temp float) -0:40 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 4.000000 -0:42 Branch: Return with expression -0:42 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:? Linker Objects -0:? '@entryPointOutput.val' (layout( location=0) out 3-element array of 3-component vector of float) -0:? 'i.val' (layout( location=0) in 3-element array of 3-component vector of float) -0:? 'cpid' ( in uint InvocationID) -0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) -0:? '@patchConstantOutput.flInFactor' ( patch out 2-element array of float TessLevelInner) - - -Linked tessellation control stage: - - -Shader version: 500 -vertices = 3 -vertex spacing = fractional_odd_spacing -triangle order = cw -0:? Sequence -0:27 Function Definition: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) -0:27 Function Parameters: -0:27 'i' ( in 3-element array of structure{ temp 3-component vector of float val}) -0:27 'cpid' ( in uint) -0:? Sequence -0:29 move second child to first child ( temp 3-component vector of float) -0:29 val: direct index for structure ( temp 3-component vector of float) -0:29 'o' ( temp structure{ temp 3-component vector of float val}) -0:29 Constant: -0:29 0 (const int) -0:29 Construct vec3 ( temp 3-component vector of float) -0:29 Convert uint to float ( temp float) -0:29 'cpid' ( in uint) -0:30 Branch: Return with expression -0:30 'o' ( temp structure{ temp 3-component vector of float val}) -0:27 Function Definition: main( ( temp void) -0:27 Function Parameters: -0:? Sequence -0:27 Sequence -0:27 move second child to first child ( temp 3-component vector of float) -0:27 val: direct index for structure ( temp 3-component vector of float) -0:27 direct index ( temp structure{ temp 3-component vector of float val}) -0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 0 (const int) -0:27 direct index (layout( location=0) in 3-component vector of float) -0:? 'i.val' (layout( location=0) in 3-element array of 3-component vector of float) -0:27 Constant: -0:27 0 (const int) -0:27 move second child to first child ( temp 3-component vector of float) -0:27 val: direct index for structure ( temp 3-component vector of float) -0:27 direct index ( temp structure{ temp 3-component vector of float val}) -0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:27 Constant: -0:27 1 (const int) -0:27 Constant: -0:27 0 (const int) -0:27 direct index (layout( location=0) in 3-component vector of float) -0:? 'i.val' (layout( location=0) in 3-element array of 3-component vector of float) -0:27 Constant: -0:27 1 (const int) -0:27 move second child to first child ( temp 3-component vector of float) -0:27 val: direct index for structure ( temp 3-component vector of float) -0:27 direct index ( temp structure{ temp 3-component vector of float val}) -0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:27 Constant: -0:27 2 (const int) -0:27 Constant: -0:27 0 (const int) -0:27 direct index (layout( location=0) in 3-component vector of float) -0:? 'i.val' (layout( location=0) in 3-element array of 3-component vector of float) -0:27 Constant: -0:27 2 (const int) -0:27 move second child to first child ( temp uint) -0:? 'cpid' ( temp uint) -0:? 'cpid' ( in uint InvocationID) -0:27 Sequence -0:27 move second child to first child ( temp 3-component vector of float) -0:27 indirect index (layout( location=0) out 3-component vector of float) -0:? '@entryPointOutput.val' (layout( location=0) out 3-element array of 3-component vector of float) -0:? 'cpid' ( in uint InvocationID) -0:27 val: direct index for structure ( temp 3-component vector of float) -0:27 Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) -0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:? 'cpid' ( temp uint) -0:27 Constant: -0:27 0 (const int) -0:? Barrier ( temp void) -0:? Test condition and select ( temp void) -0:? Condition -0:? Compare Equal ( temp bool) -0:? 'cpid' ( in uint InvocationID) -0:? Constant: -0:? 0 (const int) -0:? true case -0:? Sequence -0:? move second child to first child ( temp structure{ temp 3-component vector of float val}) -0:? direct index ( temp structure{ temp 3-component vector of float val}) -0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:? Constant: -0:? 0 (const int) -0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) -0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:? Constant: -0:? 0 (const uint) -0:? move second child to first child ( temp structure{ temp 3-component vector of float val}) -0:? direct index ( temp structure{ temp 3-component vector of float val}) -0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:? Constant: -0:? 1 (const int) -0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) -0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:? Constant: -0:? 1 (const uint) -0:? move second child to first child ( temp structure{ temp 3-component vector of float val}) -0:? direct index ( temp structure{ temp 3-component vector of float val}) -0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:? Constant: -0:? 2 (const int) -0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) -0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:? Constant: -0:? 2 (const uint) -0:? move second child to first child ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:? Function Call: PCF(struct-hs_out_t-vf31[3]; ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:? Sequence -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 0 (const int) -0:? direct index ( temp float) -0:? tfactor: direct index for structure ( temp 3-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 0 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 1 (const int) -0:? direct index ( temp float) -0:? tfactor: direct index for structure ( temp 3-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 1 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 2 (const int) -0:? direct index ( temp float) -0:? tfactor: direct index for structure ( temp 3-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 2 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelInner) -0:? '@patchConstantOutput.flInFactor' ( patch out 2-element array of float TessLevelInner) -0:? Constant: -0:? 0 (const int) -0:? flInFactor: direct index for structure ( temp float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:? Constant: -0:? 1 (const int) -0:34 Function Definition: PCF(struct-hs_out_t-vf31[3]; ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:34 Function Parameters: -0:34 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) -0:? Sequence -0:37 move second child to first child ( temp float) -0:37 direct index ( temp float) -0:37 tfactor: direct index for structure ( temp 3-element array of float) -0:37 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 0 (const int) -0:37 direct index ( temp float) -0:37 val: direct index for structure ( temp 3-component vector of float) -0:37 direct index ( temp structure{ temp 3-component vector of float val}) -0:37 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 0 (const int) -0:38 move second child to first child ( temp float) -0:38 direct index ( temp float) -0:38 tfactor: direct index for structure ( temp 3-element array of float) -0:38 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 1 (const int) -0:38 direct index ( temp float) -0:38 val: direct index for structure ( temp 3-component vector of float) -0:38 direct index ( temp structure{ temp 3-component vector of float val}) -0:38 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) -0:38 Constant: -0:38 1 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 0 (const int) -0:39 move second child to first child ( temp float) -0:39 direct index ( temp float) -0:39 tfactor: direct index for structure ( temp 3-element array of float) -0:39 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 2 (const int) -0:39 direct index ( temp float) -0:39 val: direct index for structure ( temp 3-component vector of float) -0:39 direct index ( temp structure{ temp 3-component vector of float val}) -0:39 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) -0:39 Constant: -0:39 2 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 0 (const int) -0:40 move second child to first child ( temp float) -0:40 flInFactor: direct index for structure ( temp float) -0:40 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 4.000000 -0:42 Branch: Return with expression -0:42 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:? Linker Objects -0:? '@entryPointOutput.val' (layout( location=0) out 3-element array of 3-component vector of float) -0:? 'i.val' (layout( location=0) in 3-element array of 3-component vector of float) -0:? 'cpid' ( in uint InvocationID) -0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) -0:? '@patchConstantOutput.flInFactor' ( patch out 2-element array of float TessLevelInner) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 135 - - Capability Tessellation - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint TessellationControl 4 "main" 42 57 60 105 119 - ExecutionMode 4 OutputVertices 3 - ExecutionMode 4 Triangles - ExecutionMode 4 SpacingFractionalOdd - ExecutionMode 4 VertexOrderCw - Source HLSL 500 - Name 4 "main" - Name 8 "hs_in_t" - MemberName 8(hs_in_t) 0 "val" - Name 14 "hs_out_t" - MemberName 14(hs_out_t) 0 "val" - Name 18 "@main(struct-hs_in_t-vf31[3];u1;" - Name 16 "i" - Name 17 "cpid" - Name 22 "hs_pcf_t" - MemberName 22(hs_pcf_t) 0 "tfactor" - MemberName 22(hs_pcf_t) 1 "flInFactor" - Name 25 "PCF(struct-hs_out_t-vf31[3];" - Name 24 "pcf_out" - Name 28 "o" - Name 39 "i" - Name 42 "i.val" - Name 55 "cpid" - Name 57 "cpid" - Name 60 "@entryPointOutput.val" - Name 62 "param" - Name 64 "param" - Name 79 "pcf_out" - Name 80 "i" - Name 81 "param" - Name 83 "param" - Name 86 "i" - Name 88 "param" - Name 90 "param" - Name 93 "i" - Name 94 "param" - Name 96 "param" - Name 100 "@patchConstantResult" - Name 105 "@patchConstantOutput.tfactor" - Name 119 "@patchConstantOutput.flInFactor" - Name 123 "o" - Decorate 42(i.val) Location 0 - Decorate 57(cpid) BuiltIn InvocationId - Decorate 60(@entryPointOutput.val) Location 0 - Decorate 105(@patchConstantOutput.tfactor) Patch - Decorate 105(@patchConstantOutput.tfactor) BuiltIn TessLevelOuter - Decorate 119(@patchConstantOutput.flInFactor) Patch - Decorate 119(@patchConstantOutput.flInFactor) BuiltIn TessLevelInner - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 3 - 8(hs_in_t): TypeStruct 7(fvec3) - 9: TypeInt 32 0 - 10: 9(int) Constant 3 - 11: TypeArray 8(hs_in_t) 10 - 12: TypePointer Function 11 - 13: TypePointer Function 9(int) - 14(hs_out_t): TypeStruct 7(fvec3) - 15: TypeFunction 14(hs_out_t) 12(ptr) 13(ptr) - 20: TypeArray 14(hs_out_t) 10 - 21: TypeArray 6(float) 10 - 22(hs_pcf_t): TypeStruct 21 6(float) - 23: TypeFunction 22(hs_pcf_t) 20 - 27: TypePointer Function 14(hs_out_t) - 29: TypeInt 32 1 - 30: 29(int) Constant 0 - 34: TypePointer Function 7(fvec3) - 40: TypeArray 7(fvec3) 10 - 41: TypePointer Input 40 - 42(i.val): 41(ptr) Variable Input - 43: TypePointer Input 7(fvec3) - 47: 29(int) Constant 1 - 51: 29(int) Constant 2 - 56: TypePointer Input 9(int) - 57(cpid): 56(ptr) Variable Input - 59: TypePointer Output 40 -60(@entryPointOutput.val): 59(ptr) Variable Output - 68: TypePointer Output 7(fvec3) - 70: 9(int) Constant 2 - 71: 9(int) Constant 4 - 72: 9(int) Constant 0 - 74: TypeBool - 78: TypePointer Function 20 - 87: 9(int) Constant 1 - 99: TypePointer Function 22(hs_pcf_t) - 103: TypeArray 6(float) 71 - 104: TypePointer Output 103 -105(@patchConstantOutput.tfactor): 104(ptr) Variable Output - 106: TypePointer Function 6(float) - 109: TypePointer Output 6(float) - 117: TypeArray 6(float) 70 - 118: TypePointer Output 117 -119(@patchConstantOutput.flInFactor): 118(ptr) Variable Output - 130: 6(float) Constant 1082130432 - 4(main): 2 Function None 3 - 5: Label - 39(i): 12(ptr) Variable Function - 55(cpid): 13(ptr) Variable Function - 62(param): 12(ptr) Variable Function - 64(param): 13(ptr) Variable Function - 79(pcf_out): 78(ptr) Variable Function - 80(i): 12(ptr) Variable Function - 81(param): 12(ptr) Variable Function - 83(param): 13(ptr) Variable Function - 86(i): 12(ptr) Variable Function - 88(param): 12(ptr) Variable Function - 90(param): 13(ptr) Variable Function - 93(i): 12(ptr) Variable Function - 94(param): 12(ptr) Variable Function - 96(param): 13(ptr) Variable Function -100(@patchConstantResult): 99(ptr) Variable Function - 44: 43(ptr) AccessChain 42(i.val) 30 - 45: 7(fvec3) Load 44 - 46: 34(ptr) AccessChain 39(i) 30 30 - Store 46 45 - 48: 43(ptr) AccessChain 42(i.val) 47 - 49: 7(fvec3) Load 48 - 50: 34(ptr) AccessChain 39(i) 47 30 - Store 50 49 - 52: 43(ptr) AccessChain 42(i.val) 51 - 53: 7(fvec3) Load 52 - 54: 34(ptr) AccessChain 39(i) 51 30 - Store 54 53 - 58: 9(int) Load 57(cpid) - Store 55(cpid) 58 - 61: 9(int) Load 57(cpid) - 63: 11 Load 39(i) - Store 62(param) 63 - 65: 9(int) Load 55(cpid) - Store 64(param) 65 - 66:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 62(param) 64(param) - 67: 7(fvec3) CompositeExtract 66 0 - 69: 68(ptr) AccessChain 60(@entryPointOutput.val) 61 - Store 69 67 - ControlBarrier 70 71 72 - 73: 9(int) Load 57(cpid) - 75: 74(bool) IEqual 73 30 - SelectionMerge 77 None - BranchConditional 75 76 77 - 76: Label - 82: 11 Load 80(i) - Store 81(param) 82 - Store 83(param) 72 - 84:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 81(param) 83(param) - 85: 27(ptr) AccessChain 79(pcf_out) 30 - Store 85 84 - 89: 11 Load 86(i) - Store 88(param) 89 - Store 90(param) 87 - 91:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 88(param) 90(param) - 92: 27(ptr) AccessChain 79(pcf_out) 47 - Store 92 91 - 95: 11 Load 93(i) - Store 94(param) 95 - Store 96(param) 70 - 97:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 94(param) 96(param) - 98: 27(ptr) AccessChain 79(pcf_out) 51 - Store 98 97 - 101: 20 Load 79(pcf_out) - 102:22(hs_pcf_t) FunctionCall 25(PCF(struct-hs_out_t-vf31[3];) 101 - Store 100(@patchConstantResult) 102 - 107: 106(ptr) AccessChain 100(@patchConstantResult) 30 30 - 108: 6(float) Load 107 - 110: 109(ptr) AccessChain 105(@patchConstantOutput.tfactor) 30 - Store 110 108 - 111: 106(ptr) AccessChain 100(@patchConstantResult) 30 47 - 112: 6(float) Load 111 - 113: 109(ptr) AccessChain 105(@patchConstantOutput.tfactor) 47 - Store 113 112 - 114: 106(ptr) AccessChain 100(@patchConstantResult) 30 51 - 115: 6(float) Load 114 - 116: 109(ptr) AccessChain 105(@patchConstantOutput.tfactor) 51 - Store 116 115 - 120: 106(ptr) AccessChain 100(@patchConstantResult) 47 - 121: 6(float) Load 120 - 122: 109(ptr) AccessChain 119(@patchConstantOutput.flInFactor) 30 - Store 122 121 - Branch 77 - 77: Label - Return - FunctionEnd -18(@main(struct-hs_in_t-vf31[3];u1;):14(hs_out_t) Function None 15 - 16(i): 12(ptr) FunctionParameter - 17(cpid): 13(ptr) FunctionParameter - 19: Label - 28(o): 27(ptr) Variable Function - 31: 9(int) Load 17(cpid) - 32: 6(float) ConvertUToF 31 - 33: 7(fvec3) CompositeConstruct 32 32 32 - 35: 34(ptr) AccessChain 28(o) 30 - Store 35 33 - 36:14(hs_out_t) Load 28(o) - ReturnValue 36 - FunctionEnd -25(PCF(struct-hs_out_t-vf31[3];):22(hs_pcf_t) Function None 23 - 24(pcf_out): 20 FunctionParameter - 26: Label - 123(o): 99(ptr) Variable Function - 124: 6(float) CompositeExtract 24(pcf_out) 0 0 0 - 125: 106(ptr) AccessChain 123(o) 30 30 - Store 125 124 - 126: 6(float) CompositeExtract 24(pcf_out) 1 0 0 - 127: 106(ptr) AccessChain 123(o) 30 47 - Store 127 126 - 128: 6(float) CompositeExtract 24(pcf_out) 2 0 0 - 129: 106(ptr) AccessChain 123(o) 30 51 - Store 129 128 - 131: 106(ptr) AccessChain 123(o) 47 - Store 131 130 - 132:22(hs_pcf_t) Load 123(o) - ReturnValue 132 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.hull.ctrlpt-2.tesc.out b/deps/glslang/Test/baseResults/hlsl.hull.ctrlpt-2.tesc.out deleted file mode 100644 index d59e1630..00000000 --- a/deps/glslang/Test/baseResults/hlsl.hull.ctrlpt-2.tesc.out +++ /dev/null @@ -1,714 +0,0 @@ -hlsl.hull.ctrlpt-2.tesc -Shader version: 500 -vertices = 3 -vertex spacing = fractional_odd_spacing -triangle order = cw -0:? Sequence -0:28 Function Definition: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) -0:28 Function Parameters: -0:28 'i' ( in 3-element array of structure{ temp 3-component vector of float val}) -0:28 'cpid' ( in uint) -0:? Sequence -0:29 val: direct index for structure ( temp 3-component vector of float) -0:29 direct index ( temp structure{ temp 3-component vector of float val}) -0:29 'i' ( in 3-element array of structure{ temp 3-component vector of float val}) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 0 (const int) -0:32 move second child to first child ( temp 3-component vector of float) -0:32 val: direct index for structure ( temp 3-component vector of float) -0:32 'o' ( temp structure{ temp 3-component vector of float val}) -0:32 Constant: -0:32 0 (const int) -0:32 Construct vec3 ( temp 3-component vector of float) -0:32 Convert uint to float ( temp float) -0:32 'cpid' ( in uint) -0:33 Branch: Return with expression -0:33 'o' ( temp structure{ temp 3-component vector of float val}) -0:28 Function Definition: main( ( temp void) -0:28 Function Parameters: -0:? Sequence -0:28 Sequence -0:28 move second child to first child ( temp 3-component vector of float) -0:28 val: direct index for structure ( temp 3-component vector of float) -0:28 direct index ( temp structure{ temp 3-component vector of float val}) -0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 0 (const int) -0:28 direct index (layout( location=0) in 3-component vector of float) -0:? 'i.val' (layout( location=0) in 3-element array of 3-component vector of float) -0:28 Constant: -0:28 0 (const int) -0:28 move second child to first child ( temp 3-component vector of float) -0:28 val: direct index for structure ( temp 3-component vector of float) -0:28 direct index ( temp structure{ temp 3-component vector of float val}) -0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:28 Constant: -0:28 1 (const int) -0:28 Constant: -0:28 0 (const int) -0:28 direct index (layout( location=0) in 3-component vector of float) -0:? 'i.val' (layout( location=0) in 3-element array of 3-component vector of float) -0:28 Constant: -0:28 1 (const int) -0:28 move second child to first child ( temp 3-component vector of float) -0:28 val: direct index for structure ( temp 3-component vector of float) -0:28 direct index ( temp structure{ temp 3-component vector of float val}) -0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:28 Constant: -0:28 2 (const int) -0:28 Constant: -0:28 0 (const int) -0:28 direct index (layout( location=0) in 3-component vector of float) -0:? 'i.val' (layout( location=0) in 3-element array of 3-component vector of float) -0:28 Constant: -0:28 2 (const int) -0:28 move second child to first child ( temp uint) -0:? 'cpid' ( temp uint) -0:? 'cpid' ( in uint InvocationID) -0:28 Sequence -0:28 move second child to first child ( temp 3-component vector of float) -0:28 indirect index (layout( location=0) out 3-component vector of float) -0:? '@entryPointOutput.val' (layout( location=0) out 3-element array of 3-component vector of float) -0:? 'cpid' ( in uint InvocationID) -0:28 val: direct index for structure ( temp 3-component vector of float) -0:28 Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) -0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:? 'cpid' ( temp uint) -0:28 Constant: -0:28 0 (const int) -0:? Barrier ( temp void) -0:? Test condition and select ( temp void) -0:? Condition -0:? Compare Equal ( temp bool) -0:? 'cpid' ( in uint InvocationID) -0:? Constant: -0:? 0 (const int) -0:? true case -0:? Sequence -0:? move second child to first child ( temp structure{ temp 3-component vector of float val}) -0:? direct index ( temp structure{ temp 3-component vector of float val}) -0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:? Constant: -0:? 0 (const int) -0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) -0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:? Constant: -0:? 0 (const uint) -0:? move second child to first child ( temp structure{ temp 3-component vector of float val}) -0:? direct index ( temp structure{ temp 3-component vector of float val}) -0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:? Constant: -0:? 1 (const int) -0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) -0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:? Constant: -0:? 1 (const uint) -0:? move second child to first child ( temp structure{ temp 3-component vector of float val}) -0:? direct index ( temp structure{ temp 3-component vector of float val}) -0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:? Constant: -0:? 2 (const int) -0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) -0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:? Constant: -0:? 2 (const uint) -0:? move second child to first child ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:? Function Call: PCF(struct-hs_out_t-vf31[3];struct-hs_in_t-vf31[3]; ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:? Sequence -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 0 (const int) -0:? direct index ( temp float) -0:? tfactor: direct index for structure ( temp 3-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 0 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 1 (const int) -0:? direct index ( temp float) -0:? tfactor: direct index for structure ( temp 3-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 1 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 2 (const int) -0:? direct index ( temp float) -0:? tfactor: direct index for structure ( temp 3-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 2 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelInner) -0:? '@patchConstantOutput.flInFactor' ( patch out 2-element array of float TessLevelInner) -0:? Constant: -0:? 0 (const int) -0:? flInFactor: direct index for structure ( temp float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:? Constant: -0:? 1 (const int) -0:38 Function Definition: PCF(struct-hs_out_t-vf31[3];struct-hs_in_t-vf31[3]; ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:38 Function Parameters: -0:38 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) -0:38 'pcf_in' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) -0:? Sequence -0:41 move second child to first child ( temp float) -0:41 direct index ( temp float) -0:41 tfactor: direct index for structure ( temp 3-element array of float) -0:41 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 0 (const int) -0:41 direct index ( temp float) -0:41 val: direct index for structure ( temp 3-component vector of float) -0:41 direct index ( temp structure{ temp 3-component vector of float val}) -0:41 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 0 (const int) -0:42 move second child to first child ( temp float) -0:42 direct index ( temp float) -0:42 tfactor: direct index for structure ( temp 3-element array of float) -0:42 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 direct index ( temp float) -0:42 val: direct index for structure ( temp 3-component vector of float) -0:42 direct index ( temp structure{ temp 3-component vector of float val}) -0:42 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 0 (const int) -0:43 move second child to first child ( temp float) -0:43 direct index ( temp float) -0:43 tfactor: direct index for structure ( temp 3-element array of float) -0:43 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:43 Constant: -0:43 0 (const int) -0:43 Constant: -0:43 2 (const int) -0:43 direct index ( temp float) -0:43 val: direct index for structure ( temp 3-component vector of float) -0:43 direct index ( temp structure{ temp 3-component vector of float val}) -0:43 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) -0:43 Constant: -0:43 2 (const int) -0:43 Constant: -0:43 0 (const int) -0:43 Constant: -0:43 0 (const int) -0:44 move second child to first child ( temp float) -0:44 flInFactor: direct index for structure ( temp float) -0:44 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:44 Constant: -0:44 1 (const int) -0:44 Constant: -0:44 4.000000 -0:46 Branch: Return with expression -0:46 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:? Linker Objects -0:? '@entryPointOutput.val' (layout( location=0) out 3-element array of 3-component vector of float) -0:? 'i.val' (layout( location=0) in 3-element array of 3-component vector of float) -0:? 'cpid' ( in uint InvocationID) -0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) -0:? '@patchConstantOutput.flInFactor' ( patch out 2-element array of float TessLevelInner) - - -Linked tessellation control stage: - - -Shader version: 500 -vertices = 3 -vertex spacing = fractional_odd_spacing -triangle order = cw -0:? Sequence -0:28 Function Definition: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) -0:28 Function Parameters: -0:28 'i' ( in 3-element array of structure{ temp 3-component vector of float val}) -0:28 'cpid' ( in uint) -0:? Sequence -0:29 val: direct index for structure ( temp 3-component vector of float) -0:29 direct index ( temp structure{ temp 3-component vector of float val}) -0:29 'i' ( in 3-element array of structure{ temp 3-component vector of float val}) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 0 (const int) -0:32 move second child to first child ( temp 3-component vector of float) -0:32 val: direct index for structure ( temp 3-component vector of float) -0:32 'o' ( temp structure{ temp 3-component vector of float val}) -0:32 Constant: -0:32 0 (const int) -0:32 Construct vec3 ( temp 3-component vector of float) -0:32 Convert uint to float ( temp float) -0:32 'cpid' ( in uint) -0:33 Branch: Return with expression -0:33 'o' ( temp structure{ temp 3-component vector of float val}) -0:28 Function Definition: main( ( temp void) -0:28 Function Parameters: -0:? Sequence -0:28 Sequence -0:28 move second child to first child ( temp 3-component vector of float) -0:28 val: direct index for structure ( temp 3-component vector of float) -0:28 direct index ( temp structure{ temp 3-component vector of float val}) -0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 0 (const int) -0:28 direct index (layout( location=0) in 3-component vector of float) -0:? 'i.val' (layout( location=0) in 3-element array of 3-component vector of float) -0:28 Constant: -0:28 0 (const int) -0:28 move second child to first child ( temp 3-component vector of float) -0:28 val: direct index for structure ( temp 3-component vector of float) -0:28 direct index ( temp structure{ temp 3-component vector of float val}) -0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:28 Constant: -0:28 1 (const int) -0:28 Constant: -0:28 0 (const int) -0:28 direct index (layout( location=0) in 3-component vector of float) -0:? 'i.val' (layout( location=0) in 3-element array of 3-component vector of float) -0:28 Constant: -0:28 1 (const int) -0:28 move second child to first child ( temp 3-component vector of float) -0:28 val: direct index for structure ( temp 3-component vector of float) -0:28 direct index ( temp structure{ temp 3-component vector of float val}) -0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:28 Constant: -0:28 2 (const int) -0:28 Constant: -0:28 0 (const int) -0:28 direct index (layout( location=0) in 3-component vector of float) -0:? 'i.val' (layout( location=0) in 3-element array of 3-component vector of float) -0:28 Constant: -0:28 2 (const int) -0:28 move second child to first child ( temp uint) -0:? 'cpid' ( temp uint) -0:? 'cpid' ( in uint InvocationID) -0:28 Sequence -0:28 move second child to first child ( temp 3-component vector of float) -0:28 indirect index (layout( location=0) out 3-component vector of float) -0:? '@entryPointOutput.val' (layout( location=0) out 3-element array of 3-component vector of float) -0:? 'cpid' ( in uint InvocationID) -0:28 val: direct index for structure ( temp 3-component vector of float) -0:28 Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) -0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:? 'cpid' ( temp uint) -0:28 Constant: -0:28 0 (const int) -0:? Barrier ( temp void) -0:? Test condition and select ( temp void) -0:? Condition -0:? Compare Equal ( temp bool) -0:? 'cpid' ( in uint InvocationID) -0:? Constant: -0:? 0 (const int) -0:? true case -0:? Sequence -0:? move second child to first child ( temp structure{ temp 3-component vector of float val}) -0:? direct index ( temp structure{ temp 3-component vector of float val}) -0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:? Constant: -0:? 0 (const int) -0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) -0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:? Constant: -0:? 0 (const uint) -0:? move second child to first child ( temp structure{ temp 3-component vector of float val}) -0:? direct index ( temp structure{ temp 3-component vector of float val}) -0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:? Constant: -0:? 1 (const int) -0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) -0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:? Constant: -0:? 1 (const uint) -0:? move second child to first child ( temp structure{ temp 3-component vector of float val}) -0:? direct index ( temp structure{ temp 3-component vector of float val}) -0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:? Constant: -0:? 2 (const int) -0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) -0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:? Constant: -0:? 2 (const uint) -0:? move second child to first child ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:? Function Call: PCF(struct-hs_out_t-vf31[3];struct-hs_in_t-vf31[3]; ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) -0:? Sequence -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 0 (const int) -0:? direct index ( temp float) -0:? tfactor: direct index for structure ( temp 3-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 0 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 1 (const int) -0:? direct index ( temp float) -0:? tfactor: direct index for structure ( temp 3-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 1 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelOuter) -0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) -0:? Constant: -0:? 2 (const int) -0:? direct index ( temp float) -0:? tfactor: direct index for structure ( temp 3-element array of float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:? Constant: -0:? 0 (const int) -0:? Constant: -0:? 2 (const int) -0:? move second child to first child ( temp float) -0:? direct index ( patch out float TessLevelInner) -0:? '@patchConstantOutput.flInFactor' ( patch out 2-element array of float TessLevelInner) -0:? Constant: -0:? 0 (const int) -0:? flInFactor: direct index for structure ( temp float) -0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:? Constant: -0:? 1 (const int) -0:38 Function Definition: PCF(struct-hs_out_t-vf31[3];struct-hs_in_t-vf31[3]; ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:38 Function Parameters: -0:38 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) -0:38 'pcf_in' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) -0:? Sequence -0:41 move second child to first child ( temp float) -0:41 direct index ( temp float) -0:41 tfactor: direct index for structure ( temp 3-element array of float) -0:41 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 0 (const int) -0:41 direct index ( temp float) -0:41 val: direct index for structure ( temp 3-component vector of float) -0:41 direct index ( temp structure{ temp 3-component vector of float val}) -0:41 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 0 (const int) -0:42 move second child to first child ( temp float) -0:42 direct index ( temp float) -0:42 tfactor: direct index for structure ( temp 3-element array of float) -0:42 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 direct index ( temp float) -0:42 val: direct index for structure ( temp 3-component vector of float) -0:42 direct index ( temp structure{ temp 3-component vector of float val}) -0:42 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 0 (const int) -0:43 move second child to first child ( temp float) -0:43 direct index ( temp float) -0:43 tfactor: direct index for structure ( temp 3-element array of float) -0:43 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:43 Constant: -0:43 0 (const int) -0:43 Constant: -0:43 2 (const int) -0:43 direct index ( temp float) -0:43 val: direct index for structure ( temp 3-component vector of float) -0:43 direct index ( temp structure{ temp 3-component vector of float val}) -0:43 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) -0:43 Constant: -0:43 2 (const int) -0:43 Constant: -0:43 0 (const int) -0:43 Constant: -0:43 0 (const int) -0:44 move second child to first child ( temp float) -0:44 flInFactor: direct index for structure ( temp float) -0:44 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:44 Constant: -0:44 1 (const int) -0:44 Constant: -0:44 4.000000 -0:46 Branch: Return with expression -0:46 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) -0:? Linker Objects -0:? '@entryPointOutput.val' (layout( location=0) out 3-element array of 3-component vector of float) -0:? 'i.val' (layout( location=0) in 3-element array of 3-component vector of float) -0:? 'cpid' ( in uint InvocationID) -0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) -0:? '@patchConstantOutput.flInFactor' ( patch out 2-element array of float TessLevelInner) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 137 - - Capability Tessellation - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint TessellationControl 4 "main" 43 58 61 107 121 - ExecutionMode 4 OutputVertices 3 - ExecutionMode 4 Triangles - ExecutionMode 4 SpacingFractionalOdd - ExecutionMode 4 VertexOrderCw - Source HLSL 500 - Name 4 "main" - Name 8 "hs_in_t" - MemberName 8(hs_in_t) 0 "val" - Name 14 "hs_out_t" - MemberName 14(hs_out_t) 0 "val" - Name 18 "@main(struct-hs_in_t-vf31[3];u1;" - Name 16 "i" - Name 17 "cpid" - Name 22 "hs_pcf_t" - MemberName 22(hs_pcf_t) 0 "tfactor" - MemberName 22(hs_pcf_t) 1 "flInFactor" - Name 26 "PCF(struct-hs_out_t-vf31[3];struct-hs_in_t-vf31[3];" - Name 24 "pcf_out" - Name 25 "pcf_in" - Name 31 "o" - Name 40 "i" - Name 43 "i.val" - Name 56 "cpid" - Name 58 "cpid" - Name 61 "@entryPointOutput.val" - Name 63 "param" - Name 65 "param" - Name 80 "pcf_out" - Name 81 "i" - Name 82 "param" - Name 84 "param" - Name 87 "i" - Name 89 "param" - Name 91 "param" - Name 94 "i" - Name 95 "param" - Name 97 "param" - Name 101 "@patchConstantResult" - Name 107 "@patchConstantOutput.tfactor" - Name 121 "@patchConstantOutput.flInFactor" - Name 125 "o" - Decorate 43(i.val) Location 0 - Decorate 58(cpid) BuiltIn InvocationId - Decorate 61(@entryPointOutput.val) Location 0 - Decorate 107(@patchConstantOutput.tfactor) Patch - Decorate 107(@patchConstantOutput.tfactor) BuiltIn TessLevelOuter - Decorate 121(@patchConstantOutput.flInFactor) Patch - Decorate 121(@patchConstantOutput.flInFactor) BuiltIn TessLevelInner - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 3 - 8(hs_in_t): TypeStruct 7(fvec3) - 9: TypeInt 32 0 - 10: 9(int) Constant 3 - 11: TypeArray 8(hs_in_t) 10 - 12: TypePointer Function 11 - 13: TypePointer Function 9(int) - 14(hs_out_t): TypeStruct 7(fvec3) - 15: TypeFunction 14(hs_out_t) 12(ptr) 13(ptr) - 20: TypeArray 14(hs_out_t) 10 - 21: TypeArray 6(float) 10 - 22(hs_pcf_t): TypeStruct 21 6(float) - 23: TypeFunction 22(hs_pcf_t) 20 11 - 28: TypeInt 32 1 - 29: 28(int) Constant 0 - 30: TypePointer Function 14(hs_out_t) - 35: TypePointer Function 7(fvec3) - 41: TypeArray 7(fvec3) 10 - 42: TypePointer Input 41 - 43(i.val): 42(ptr) Variable Input - 44: TypePointer Input 7(fvec3) - 48: 28(int) Constant 1 - 52: 28(int) Constant 2 - 57: TypePointer Input 9(int) - 58(cpid): 57(ptr) Variable Input - 60: TypePointer Output 41 -61(@entryPointOutput.val): 60(ptr) Variable Output - 69: TypePointer Output 7(fvec3) - 71: 9(int) Constant 2 - 72: 9(int) Constant 4 - 73: 9(int) Constant 0 - 75: TypeBool - 79: TypePointer Function 20 - 88: 9(int) Constant 1 - 100: TypePointer Function 22(hs_pcf_t) - 105: TypeArray 6(float) 72 - 106: TypePointer Output 105 -107(@patchConstantOutput.tfactor): 106(ptr) Variable Output - 108: TypePointer Function 6(float) - 111: TypePointer Output 6(float) - 119: TypeArray 6(float) 71 - 120: TypePointer Output 119 -121(@patchConstantOutput.flInFactor): 120(ptr) Variable Output - 132: 6(float) Constant 1082130432 - 4(main): 2 Function None 3 - 5: Label - 40(i): 12(ptr) Variable Function - 56(cpid): 13(ptr) Variable Function - 63(param): 12(ptr) Variable Function - 65(param): 13(ptr) Variable Function - 80(pcf_out): 79(ptr) Variable Function - 81(i): 12(ptr) Variable Function - 82(param): 12(ptr) Variable Function - 84(param): 13(ptr) Variable Function - 87(i): 12(ptr) Variable Function - 89(param): 12(ptr) Variable Function - 91(param): 13(ptr) Variable Function - 94(i): 12(ptr) Variable Function - 95(param): 12(ptr) Variable Function - 97(param): 13(ptr) Variable Function -101(@patchConstantResult): 100(ptr) Variable Function - 45: 44(ptr) AccessChain 43(i.val) 29 - 46: 7(fvec3) Load 45 - 47: 35(ptr) AccessChain 40(i) 29 29 - Store 47 46 - 49: 44(ptr) AccessChain 43(i.val) 48 - 50: 7(fvec3) Load 49 - 51: 35(ptr) AccessChain 40(i) 48 29 - Store 51 50 - 53: 44(ptr) AccessChain 43(i.val) 52 - 54: 7(fvec3) Load 53 - 55: 35(ptr) AccessChain 40(i) 52 29 - Store 55 54 - 59: 9(int) Load 58(cpid) - Store 56(cpid) 59 - 62: 9(int) Load 58(cpid) - 64: 11 Load 40(i) - Store 63(param) 64 - 66: 9(int) Load 56(cpid) - Store 65(param) 66 - 67:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 63(param) 65(param) - 68: 7(fvec3) CompositeExtract 67 0 - 70: 69(ptr) AccessChain 61(@entryPointOutput.val) 62 - Store 70 68 - ControlBarrier 71 72 73 - 74: 9(int) Load 58(cpid) - 76: 75(bool) IEqual 74 29 - SelectionMerge 78 None - BranchConditional 76 77 78 - 77: Label - 83: 11 Load 81(i) - Store 82(param) 83 - Store 84(param) 73 - 85:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 82(param) 84(param) - 86: 30(ptr) AccessChain 80(pcf_out) 29 - Store 86 85 - 90: 11 Load 87(i) - Store 89(param) 90 - Store 91(param) 88 - 92:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 89(param) 91(param) - 93: 30(ptr) AccessChain 80(pcf_out) 48 - Store 93 92 - 96: 11 Load 94(i) - Store 95(param) 96 - Store 97(param) 71 - 98:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 95(param) 97(param) - 99: 30(ptr) AccessChain 80(pcf_out) 52 - Store 99 98 - 102: 20 Load 80(pcf_out) - 103: 11 Load 40(i) - 104:22(hs_pcf_t) FunctionCall 26(PCF(struct-hs_out_t-vf31[3];struct-hs_in_t-vf31[3];) 102 103 - Store 101(@patchConstantResult) 104 - 109: 108(ptr) AccessChain 101(@patchConstantResult) 29 29 - 110: 6(float) Load 109 - 112: 111(ptr) AccessChain 107(@patchConstantOutput.tfactor) 29 - Store 112 110 - 113: 108(ptr) AccessChain 101(@patchConstantResult) 29 48 - 114: 6(float) Load 113 - 115: 111(ptr) AccessChain 107(@patchConstantOutput.tfactor) 48 - Store 115 114 - 116: 108(ptr) AccessChain 101(@patchConstantResult) 29 52 - 117: 6(float) Load 116 - 118: 111(ptr) AccessChain 107(@patchConstantOutput.tfactor) 52 - Store 118 117 - 122: 108(ptr) AccessChain 101(@patchConstantResult) 48 - 123: 6(float) Load 122 - 124: 111(ptr) AccessChain 121(@patchConstantOutput.flInFactor) 29 - Store 124 123 - Branch 78 - 78: Label - Return - FunctionEnd -18(@main(struct-hs_in_t-vf31[3];u1;):14(hs_out_t) Function None 15 - 16(i): 12(ptr) FunctionParameter - 17(cpid): 13(ptr) FunctionParameter - 19: Label - 31(o): 30(ptr) Variable Function - 32: 9(int) Load 17(cpid) - 33: 6(float) ConvertUToF 32 - 34: 7(fvec3) CompositeConstruct 33 33 33 - 36: 35(ptr) AccessChain 31(o) 29 - Store 36 34 - 37:14(hs_out_t) Load 31(o) - ReturnValue 37 - FunctionEnd -26(PCF(struct-hs_out_t-vf31[3];struct-hs_in_t-vf31[3];):22(hs_pcf_t) Function None 23 - 24(pcf_out): 20 FunctionParameter - 25(pcf_in): 11 FunctionParameter - 27: Label - 125(o): 100(ptr) Variable Function - 126: 6(float) CompositeExtract 24(pcf_out) 0 0 0 - 127: 108(ptr) AccessChain 125(o) 29 29 - Store 127 126 - 128: 6(float) CompositeExtract 24(pcf_out) 1 0 0 - 129: 108(ptr) AccessChain 125(o) 29 48 - Store 129 128 - 130: 6(float) CompositeExtract 24(pcf_out) 2 0 0 - 131: 108(ptr) AccessChain 125(o) 29 52 - Store 131 130 - 133: 108(ptr) AccessChain 125(o) 48 - Store 133 132 - 134:22(hs_pcf_t) Load 125(o) - ReturnValue 134 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.hull.void.tesc.out b/deps/glslang/Test/baseResults/hlsl.hull.void.tesc.out deleted file mode 100644 index 22493604..00000000 --- a/deps/glslang/Test/baseResults/hlsl.hull.void.tesc.out +++ /dev/null @@ -1,294 +0,0 @@ -hlsl.hull.void.tesc -Shader version: 500 -vertices = 3 -vertex spacing = fractional_even_spacing -triangle order = ccw -0:? Sequence -0:26 Function Definition: @main(struct-VS_OUT-vf31[3]; ( temp structure{ temp 3-component vector of float cpoint}) -0:26 Function Parameters: -0:26 'ip' ( in 3-element array of structure{ temp 3-component vector of float cpoint}) -0:? Sequence -0:28 move second child to first child ( temp 3-component vector of float) -0:28 cpoint: direct index for structure ( temp 3-component vector of float) -0:28 'output' ( temp structure{ temp 3-component vector of float cpoint}) -0:28 Constant: -0:28 0 (const int) -0:28 cpoint: direct index for structure ( temp 3-component vector of float) -0:28 direct index ( temp structure{ temp 3-component vector of float cpoint}) -0:28 'ip' ( in 3-element array of structure{ temp 3-component vector of float cpoint}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 0 (const int) -0:29 Branch: Return with expression -0:29 'output' ( temp structure{ temp 3-component vector of float cpoint}) -0:26 Function Definition: main( ( temp void) -0:26 Function Parameters: -0:? Sequence -0:26 Sequence -0:26 move second child to first child ( temp 3-component vector of float) -0:26 cpoint: direct index for structure ( temp 3-component vector of float) -0:26 direct index ( temp structure{ temp 3-component vector of float cpoint}) -0:? 'ip' ( temp 3-element array of structure{ temp 3-component vector of float cpoint}) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 0 (const int) -0:26 direct index (layout( location=0) in 3-component vector of float) -0:? 'ip.cpoint' (layout( location=0) in 3-element array of 3-component vector of float) -0:26 Constant: -0:26 0 (const int) -0:26 move second child to first child ( temp 3-component vector of float) -0:26 cpoint: direct index for structure ( temp 3-component vector of float) -0:26 direct index ( temp structure{ temp 3-component vector of float cpoint}) -0:? 'ip' ( temp 3-element array of structure{ temp 3-component vector of float cpoint}) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 0 (const int) -0:26 direct index (layout( location=0) in 3-component vector of float) -0:? 'ip.cpoint' (layout( location=0) in 3-element array of 3-component vector of float) -0:26 Constant: -0:26 1 (const int) -0:26 move second child to first child ( temp 3-component vector of float) -0:26 cpoint: direct index for structure ( temp 3-component vector of float) -0:26 direct index ( temp structure{ temp 3-component vector of float cpoint}) -0:? 'ip' ( temp 3-element array of structure{ temp 3-component vector of float cpoint}) -0:26 Constant: -0:26 2 (const int) -0:26 Constant: -0:26 0 (const int) -0:26 direct index (layout( location=0) in 3-component vector of float) -0:? 'ip.cpoint' (layout( location=0) in 3-element array of 3-component vector of float) -0:26 Constant: -0:26 2 (const int) -0:26 Sequence -0:26 move second child to first child ( temp 3-component vector of float) -0:26 indirect index (layout( location=0) out 3-component vector of float) -0:? '@entryPointOutput.cpoint' (layout( location=0) out 3-element array of 3-component vector of float) -0:? 'InvocationId' ( in uint InvocationID) -0:26 cpoint: direct index for structure ( temp 3-component vector of float) -0:26 Function Call: @main(struct-VS_OUT-vf31[3]; ( temp structure{ temp 3-component vector of float cpoint}) -0:? 'ip' ( temp 3-element array of structure{ temp 3-component vector of float cpoint}) -0:26 Constant: -0:26 0 (const int) -0:? Barrier ( temp void) -0:? Test condition and select ( temp void) -0:? Condition -0:? Compare Equal ( temp bool) -0:? 'InvocationId' ( in uint InvocationID) -0:? Constant: -0:? 0 (const int) -0:? true case -0:? Sequence -0:? Function Call: PCF( ( temp void) -0:33 Function Definition: PCF( ( temp void) -0:33 Function Parameters: -0:? Linker Objects -0:? '@entryPointOutput.cpoint' (layout( location=0) out 3-element array of 3-component vector of float) -0:? 'ip.cpoint' (layout( location=0) in 3-element array of 3-component vector of float) -0:? 'InvocationId' ( in uint InvocationID) - - -Linked tessellation control stage: - - -Shader version: 500 -vertices = 3 -vertex spacing = fractional_even_spacing -triangle order = ccw -0:? Sequence -0:26 Function Definition: @main(struct-VS_OUT-vf31[3]; ( temp structure{ temp 3-component vector of float cpoint}) -0:26 Function Parameters: -0:26 'ip' ( in 3-element array of structure{ temp 3-component vector of float cpoint}) -0:? Sequence -0:28 move second child to first child ( temp 3-component vector of float) -0:28 cpoint: direct index for structure ( temp 3-component vector of float) -0:28 'output' ( temp structure{ temp 3-component vector of float cpoint}) -0:28 Constant: -0:28 0 (const int) -0:28 cpoint: direct index for structure ( temp 3-component vector of float) -0:28 direct index ( temp structure{ temp 3-component vector of float cpoint}) -0:28 'ip' ( in 3-element array of structure{ temp 3-component vector of float cpoint}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 0 (const int) -0:29 Branch: Return with expression -0:29 'output' ( temp structure{ temp 3-component vector of float cpoint}) -0:26 Function Definition: main( ( temp void) -0:26 Function Parameters: -0:? Sequence -0:26 Sequence -0:26 move second child to first child ( temp 3-component vector of float) -0:26 cpoint: direct index for structure ( temp 3-component vector of float) -0:26 direct index ( temp structure{ temp 3-component vector of float cpoint}) -0:? 'ip' ( temp 3-element array of structure{ temp 3-component vector of float cpoint}) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 0 (const int) -0:26 direct index (layout( location=0) in 3-component vector of float) -0:? 'ip.cpoint' (layout( location=0) in 3-element array of 3-component vector of float) -0:26 Constant: -0:26 0 (const int) -0:26 move second child to first child ( temp 3-component vector of float) -0:26 cpoint: direct index for structure ( temp 3-component vector of float) -0:26 direct index ( temp structure{ temp 3-component vector of float cpoint}) -0:? 'ip' ( temp 3-element array of structure{ temp 3-component vector of float cpoint}) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 0 (const int) -0:26 direct index (layout( location=0) in 3-component vector of float) -0:? 'ip.cpoint' (layout( location=0) in 3-element array of 3-component vector of float) -0:26 Constant: -0:26 1 (const int) -0:26 move second child to first child ( temp 3-component vector of float) -0:26 cpoint: direct index for structure ( temp 3-component vector of float) -0:26 direct index ( temp structure{ temp 3-component vector of float cpoint}) -0:? 'ip' ( temp 3-element array of structure{ temp 3-component vector of float cpoint}) -0:26 Constant: -0:26 2 (const int) -0:26 Constant: -0:26 0 (const int) -0:26 direct index (layout( location=0) in 3-component vector of float) -0:? 'ip.cpoint' (layout( location=0) in 3-element array of 3-component vector of float) -0:26 Constant: -0:26 2 (const int) -0:26 Sequence -0:26 move second child to first child ( temp 3-component vector of float) -0:26 indirect index (layout( location=0) out 3-component vector of float) -0:? '@entryPointOutput.cpoint' (layout( location=0) out 3-element array of 3-component vector of float) -0:? 'InvocationId' ( in uint InvocationID) -0:26 cpoint: direct index for structure ( temp 3-component vector of float) -0:26 Function Call: @main(struct-VS_OUT-vf31[3]; ( temp structure{ temp 3-component vector of float cpoint}) -0:? 'ip' ( temp 3-element array of structure{ temp 3-component vector of float cpoint}) -0:26 Constant: -0:26 0 (const int) -0:? Barrier ( temp void) -0:? Test condition and select ( temp void) -0:? Condition -0:? Compare Equal ( temp bool) -0:? 'InvocationId' ( in uint InvocationID) -0:? Constant: -0:? 0 (const int) -0:? true case -0:? Sequence -0:? Function Call: PCF( ( temp void) -0:33 Function Definition: PCF( ( temp void) -0:33 Function Parameters: -0:? Linker Objects -0:? '@entryPointOutput.cpoint' (layout( location=0) out 3-element array of 3-component vector of float) -0:? 'ip.cpoint' (layout( location=0) in 3-element array of 3-component vector of float) -0:? 'InvocationId' ( in uint InvocationID) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 67 - - Capability Tessellation - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint TessellationControl 4 "main" 34 48 50 - ExecutionMode 4 OutputVertices 3 - ExecutionMode 4 Triangles - ExecutionMode 4 SpacingFractionalEven - ExecutionMode 4 VertexOrderCcw - Source HLSL 500 - Name 4 "main" - Name 8 "VS_OUT" - MemberName 8(VS_OUT) 0 "cpoint" - Name 13 "HS_OUT" - MemberName 13(HS_OUT) 0 "cpoint" - Name 16 "@main(struct-VS_OUT-vf31[3];" - Name 15 "ip" - Name 18 "PCF(" - Name 21 "output" - Name 31 "ip" - Name 34 "ip.cpoint" - Name 48 "@entryPointOutput.cpoint" - Name 50 "InvocationId" - Name 52 "param" - Decorate 34(ip.cpoint) Location 0 - Decorate 48(@entryPointOutput.cpoint) Location 0 - Decorate 50(InvocationId) BuiltIn InvocationId - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 3 - 8(VS_OUT): TypeStruct 7(fvec3) - 9: TypeInt 32 0 - 10: 9(int) Constant 3 - 11: TypeArray 8(VS_OUT) 10 - 12: TypePointer Function 11 - 13(HS_OUT): TypeStruct 7(fvec3) - 14: TypeFunction 13(HS_OUT) 12(ptr) - 20: TypePointer Function 13(HS_OUT) - 22: TypeInt 32 1 - 23: 22(int) Constant 0 - 24: TypePointer Function 7(fvec3) - 32: TypeArray 7(fvec3) 10 - 33: TypePointer Input 32 - 34(ip.cpoint): 33(ptr) Variable Input - 35: TypePointer Input 7(fvec3) - 39: 22(int) Constant 1 - 43: 22(int) Constant 2 - 47: TypePointer Output 32 -48(@entryPointOutput.cpoint): 47(ptr) Variable Output - 49: TypePointer Input 9(int) -50(InvocationId): 49(ptr) Variable Input - 56: TypePointer Output 7(fvec3) - 58: 9(int) Constant 2 - 59: 9(int) Constant 4 - 60: 9(int) Constant 0 - 62: TypeBool - 4(main): 2 Function None 3 - 5: Label - 31(ip): 12(ptr) Variable Function - 52(param): 12(ptr) Variable Function - 36: 35(ptr) AccessChain 34(ip.cpoint) 23 - 37: 7(fvec3) Load 36 - 38: 24(ptr) AccessChain 31(ip) 23 23 - Store 38 37 - 40: 35(ptr) AccessChain 34(ip.cpoint) 39 - 41: 7(fvec3) Load 40 - 42: 24(ptr) AccessChain 31(ip) 39 23 - Store 42 41 - 44: 35(ptr) AccessChain 34(ip.cpoint) 43 - 45: 7(fvec3) Load 44 - 46: 24(ptr) AccessChain 31(ip) 43 23 - Store 46 45 - 51: 9(int) Load 50(InvocationId) - 53: 11 Load 31(ip) - Store 52(param) 53 - 54: 13(HS_OUT) FunctionCall 16(@main(struct-VS_OUT-vf31[3];) 52(param) - 55: 7(fvec3) CompositeExtract 54 0 - 57: 56(ptr) AccessChain 48(@entryPointOutput.cpoint) 51 - Store 57 55 - ControlBarrier 58 59 60 - 61: 9(int) Load 50(InvocationId) - 63: 62(bool) IEqual 61 23 - SelectionMerge 65 None - BranchConditional 63 64 65 - 64: Label - 66: 2 FunctionCall 18(PCF() - Branch 65 - 65: Label - Return - FunctionEnd -16(@main(struct-VS_OUT-vf31[3];): 13(HS_OUT) Function None 14 - 15(ip): 12(ptr) FunctionParameter - 17: Label - 21(output): 20(ptr) Variable Function - 25: 24(ptr) AccessChain 15(ip) 23 23 - 26: 7(fvec3) Load 25 - 27: 24(ptr) AccessChain 21(output) 23 - Store 27 26 - 28: 13(HS_OUT) Load 21(output) - ReturnValue 28 - FunctionEnd - 18(PCF(): 2 Function None 3 - 19: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.identifier.sample.frag.out b/deps/glslang/Test/baseResults/hlsl.identifier.sample.frag.out deleted file mode 100644 index e0a89aa4..00000000 --- a/deps/glslang/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:15 Constant: -0:15 3.000000 -0:15 4.000000 -0:15 5.000000 -0:15 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:15 Constant: -0:15 3.000000 -0:15 4.000000 -0:15 5.000000 -0:15 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): 8000a -// 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/Test/baseResults/hlsl.if.frag.out b/deps/glslang/Test/baseResults/hlsl.if.frag.out deleted file mode 100644 index e77c7ac3..00000000 --- a/deps/glslang/Test/baseResults/hlsl.if.frag.out +++ /dev/null @@ -1,418 +0,0 @@ -hlsl.if.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:1 Function Definition: f0(vf4; ( temp 4-component vector of float) -0:1 Function Parameters: -0:1 'input' ( in 4-component vector of float) -0:? Sequence -0:2 Test condition and select ( temp void) -0:2 Condition -0:2 all ( temp bool) -0:2 Equal ( temp 4-component vector of bool) -0:2 'input' ( in 4-component vector of float) -0:2 'input' ( in 4-component vector of float) -0:2 true case -0:3 Branch: Return with expression -0:3 'input' ( in 4-component vector of float) -0:2 false case -0:5 Branch: Return with expression -0:5 Negate value ( temp 4-component vector of float) -0:5 'input' ( in 4-component vector of float) -0:8 Function Definition: f1(vf4; ( temp 4-component vector of float) -0:8 Function Parameters: -0:8 'input' ( in 4-component vector of float) -0:? Sequence -0:9 Test condition and select ( temp void) -0:9 Condition -0:9 all ( temp bool) -0:9 Equal ( temp 4-component vector of bool) -0:9 'input' ( in 4-component vector of float) -0:9 'input' ( in 4-component vector of float) -0:9 true case -0:? Sequence -0:10 Branch: Return with expression -0:10 'input' ( in 4-component vector of float) -0:9 false case -0:? Sequence -0:12 Branch: Return with expression -0:12 Negate value ( temp 4-component vector of float) -0:12 'input' ( in 4-component vector of float) -0:17 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float) -0:17 Function Parameters: -0:17 'input' ( in 4-component vector of float) -0:? Sequence -0:18 Test condition and select ( temp void) -0:18 Condition -0:18 all ( temp bool) -0:18 Equal ( temp 4-component vector of bool) -0:18 'input' ( in 4-component vector of float) -0:18 'input' ( in 4-component vector of float) -0:18 true case -0:19 Branch: Return with expression -0:19 'input' ( in 4-component vector of float) -0:21 Function Call: f0(vf4; ( temp 4-component vector of float) -0:21 '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 is null -0:26 Test condition and select ( temp void) -0:26 Condition -0:26 all ( temp bool) -0:26 Equal ( temp 4-component vector of bool) -0:26 'input' ( in 4-component vector of float) -0:26 'input' ( in 4-component vector of float) -0:26 true case is null -0:31 Test condition and select ( temp void): Flatten -0:31 Condition -0:31 all ( temp bool) -0:31 Equal ( temp 4-component vector of bool) -0:31 'input' ( in 4-component vector of float) -0:31 'input' ( in 4-component vector of float) -0:31 true case -0:? Sequence -0:32 Branch: Return with expression -0:32 'input' ( in 4-component vector of float) -0:35 Function Call: f1(vf4; ( temp 4-component vector of float) -0:35 'input' ( in 4-component vector of float) -0:38 Test condition and select ( temp void) -0:38 Condition -0:38 Convert float to bool ( temp bool) -0:38 move second child to first child ( temp float) -0:38 'ii' ( temp float) -0:38 direct index ( temp float) -0:38 'input' ( in 4-component vector of float) -0:38 Constant: -0:38 2 (const int) -0:38 true case -0:39 Pre-Increment ( temp float) -0:39 'ii' ( temp float) -0:40 Pre-Increment ( temp int) -0:40 'ii' ( temp int) -0:41 Test condition and select ( temp void) -0:41 Condition -0:41 Compare Equal ( temp bool) -0:41 Convert int to float ( temp float) -0:41 'ii' ( temp int) -0:41 Constant: -0:41 1.000000 -0:41 true case -0:42 Pre-Increment ( temp int) -0:42 'ii' ( temp int) -0:17 Function Definition: PixelShaderFunction( ( temp void) -0:17 Function Parameters: -0:? Sequence -0:17 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:17 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:17 Function Call: @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:1 Function Definition: f0(vf4; ( temp 4-component vector of float) -0:1 Function Parameters: -0:1 'input' ( in 4-component vector of float) -0:? Sequence -0:2 Test condition and select ( temp void) -0:2 Condition -0:2 all ( temp bool) -0:2 Equal ( temp 4-component vector of bool) -0:2 'input' ( in 4-component vector of float) -0:2 'input' ( in 4-component vector of float) -0:2 true case -0:3 Branch: Return with expression -0:3 'input' ( in 4-component vector of float) -0:2 false case -0:5 Branch: Return with expression -0:5 Negate value ( temp 4-component vector of float) -0:5 'input' ( in 4-component vector of float) -0:8 Function Definition: f1(vf4; ( temp 4-component vector of float) -0:8 Function Parameters: -0:8 'input' ( in 4-component vector of float) -0:? Sequence -0:9 Test condition and select ( temp void) -0:9 Condition -0:9 all ( temp bool) -0:9 Equal ( temp 4-component vector of bool) -0:9 'input' ( in 4-component vector of float) -0:9 'input' ( in 4-component vector of float) -0:9 true case -0:? Sequence -0:10 Branch: Return with expression -0:10 'input' ( in 4-component vector of float) -0:9 false case -0:? Sequence -0:12 Branch: Return with expression -0:12 Negate value ( temp 4-component vector of float) -0:12 'input' ( in 4-component vector of float) -0:17 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float) -0:17 Function Parameters: -0:17 'input' ( in 4-component vector of float) -0:? Sequence -0:18 Test condition and select ( temp void) -0:18 Condition -0:18 all ( temp bool) -0:18 Equal ( temp 4-component vector of bool) -0:18 'input' ( in 4-component vector of float) -0:18 'input' ( in 4-component vector of float) -0:18 true case -0:19 Branch: Return with expression -0:19 'input' ( in 4-component vector of float) -0:21 Function Call: f0(vf4; ( temp 4-component vector of float) -0:21 '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 is null -0:26 Test condition and select ( temp void) -0:26 Condition -0:26 all ( temp bool) -0:26 Equal ( temp 4-component vector of bool) -0:26 'input' ( in 4-component vector of float) -0:26 'input' ( in 4-component vector of float) -0:26 true case is null -0:31 Test condition and select ( temp void): Flatten -0:31 Condition -0:31 all ( temp bool) -0:31 Equal ( temp 4-component vector of bool) -0:31 'input' ( in 4-component vector of float) -0:31 'input' ( in 4-component vector of float) -0:31 true case -0:? Sequence -0:32 Branch: Return with expression -0:32 'input' ( in 4-component vector of float) -0:35 Function Call: f1(vf4; ( temp 4-component vector of float) -0:35 'input' ( in 4-component vector of float) -0:38 Test condition and select ( temp void) -0:38 Condition -0:38 Convert float to bool ( temp bool) -0:38 move second child to first child ( temp float) -0:38 'ii' ( temp float) -0:38 direct index ( temp float) -0:38 'input' ( in 4-component vector of float) -0:38 Constant: -0:38 2 (const int) -0:38 true case -0:39 Pre-Increment ( temp float) -0:39 'ii' ( temp float) -0:40 Pre-Increment ( temp int) -0:40 'ii' ( temp int) -0:41 Test condition and select ( temp void) -0:41 Condition -0:41 Compare Equal ( temp bool) -0:41 Convert int to float ( temp float) -0:41 'ii' ( temp int) -0:41 Constant: -0:41 1.000000 -0:41 true case -0:42 Pre-Increment ( temp int) -0:42 'ii' ( temp int) -0:17 Function Definition: PixelShaderFunction( ( temp void) -0:17 Function Parameters: -0:? Sequence -0:17 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:17 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:17 Function Call: @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): 8000a -// Id's are bound by 117 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 110 113 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "PixelShaderFunction" - Name 11 "f0(vf4;" - Name 10 "input" - Name 14 "f1(vf4;" - Name 13 "input" - Name 17 "@PixelShaderFunction(vf4;" - Name 16 "input" - Name 55 "param" - Name 78 "param" - Name 82 "ii" - Name 96 "ii" - Name 108 "input" - Name 110 "input" - Name 113 "@entryPointOutput" - Name 114 "param" - Decorate 110(input) Location 0 - Decorate 113(@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) - 21: TypeBool - 22: TypeVector 21(bool) 4 - 81: TypePointer Function 6(float) - 83: TypeInt 32 0 - 84: 83(int) Constant 2 - 87: 6(float) Constant 0 - 92: 6(float) Constant 1065353216 - 94: TypeInt 32 1 - 95: TypePointer Function 94(int) - 98: 94(int) Constant 1 - 109: TypePointer Input 7(fvec4) - 110(input): 109(ptr) Variable Input - 112: TypePointer Output 7(fvec4) -113(@entryPointOutput): 112(ptr) Variable Output -4(PixelShaderFunction): 2 Function None 3 - 5: Label - 108(input): 8(ptr) Variable Function - 114(param): 8(ptr) Variable Function - 111: 7(fvec4) Load 110(input) - Store 108(input) 111 - 115: 7(fvec4) Load 108(input) - Store 114(param) 115 - 116: 7(fvec4) FunctionCall 17(@PixelShaderFunction(vf4;) 114(param) - Store 113(@entryPointOutput) 116 - Return - FunctionEnd - 11(f0(vf4;): 7(fvec4) Function None 9 - 10(input): 8(ptr) FunctionParameter - 12: Label - 19: 7(fvec4) Load 10(input) - 20: 7(fvec4) Load 10(input) - 23: 22(bvec4) FOrdEqual 19 20 - 24: 21(bool) All 23 - SelectionMerge 26 None - BranchConditional 24 25 29 - 25: Label - 27: 7(fvec4) Load 10(input) - ReturnValue 27 - 29: Label - 30: 7(fvec4) Load 10(input) - 31: 7(fvec4) FNegate 30 - ReturnValue 31 - 26: Label - Unreachable - FunctionEnd - 14(f1(vf4;): 7(fvec4) Function None 9 - 13(input): 8(ptr) FunctionParameter - 15: Label - 34: 7(fvec4) Load 13(input) - 35: 7(fvec4) Load 13(input) - 36: 22(bvec4) FOrdEqual 34 35 - 37: 21(bool) All 36 - SelectionMerge 39 None - BranchConditional 37 38 42 - 38: Label - 40: 7(fvec4) Load 13(input) - ReturnValue 40 - 42: Label - 43: 7(fvec4) Load 13(input) - 44: 7(fvec4) FNegate 43 - ReturnValue 44 - 39: Label - Unreachable - FunctionEnd -17(@PixelShaderFunction(vf4;): 7(fvec4) Function None 9 - 16(input): 8(ptr) FunctionParameter - 18: Label - 55(param): 8(ptr) Variable Function - 78(param): 8(ptr) Variable Function - 82(ii): 81(ptr) Variable Function - 96(ii): 95(ptr) Variable Function - 47: 7(fvec4) Load 16(input) - 48: 7(fvec4) Load 16(input) - 49: 22(bvec4) FOrdEqual 47 48 - 50: 21(bool) All 49 - SelectionMerge 52 None - BranchConditional 50 51 52 - 51: Label - 53: 7(fvec4) Load 16(input) - ReturnValue 53 - 52: Label - 56: 7(fvec4) Load 16(input) - Store 55(param) 56 - 57: 7(fvec4) FunctionCall 11(f0(vf4;) 55(param) - 58: 7(fvec4) Load 16(input) - 59: 7(fvec4) Load 16(input) - 60: 22(bvec4) FOrdEqual 58 59 - 61: 21(bool) All 60 - SelectionMerge 63 None - BranchConditional 61 62 63 - 62: Label - Branch 63 - 63: Label - 64: 7(fvec4) Load 16(input) - 65: 7(fvec4) Load 16(input) - 66: 22(bvec4) FOrdEqual 64 65 - 67: 21(bool) All 66 - SelectionMerge 69 None - BranchConditional 67 68 69 - 68: Label - Branch 69 - 69: Label - 70: 7(fvec4) Load 16(input) - 71: 7(fvec4) Load 16(input) - 72: 22(bvec4) FOrdEqual 70 71 - 73: 21(bool) All 72 - SelectionMerge 75 Flatten - BranchConditional 73 74 75 - 74: Label - 76: 7(fvec4) Load 16(input) - ReturnValue 76 - 75: Label - 79: 7(fvec4) Load 16(input) - Store 78(param) 79 - 80: 7(fvec4) FunctionCall 14(f1(vf4;) 78(param) - 85: 81(ptr) AccessChain 16(input) 84 - 86: 6(float) Load 85 - Store 82(ii) 86 - 88: 21(bool) FUnordNotEqual 86 87 - SelectionMerge 90 None - BranchConditional 88 89 90 - 89: Label - 91: 6(float) Load 82(ii) - 93: 6(float) FAdd 91 92 - Store 82(ii) 93 - Branch 90 - 90: Label - 97: 94(int) Load 96(ii) - 99: 94(int) IAdd 97 98 - Store 96(ii) 99 - 100: 94(int) Load 96(ii) - 101: 6(float) ConvertSToF 100 - 102: 21(bool) FOrdEqual 101 92 - SelectionMerge 104 None - BranchConditional 102 103 104 - 103: Label - 105: 94(int) Load 96(ii) - 106: 94(int) IAdd 105 98 - Store 96(ii) 106 - Branch 104 - 104: Label - 107: 7(fvec4) Undef - ReturnValue 107 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.imagefetch-subvec4.comp.out b/deps/glslang/Test/baseResults/hlsl.imagefetch-subvec4.comp.out deleted file mode 100644 index ff201eb0..00000000 --- a/deps/glslang/Test/baseResults/hlsl.imagefetch-subvec4.comp.out +++ /dev/null @@ -1,685 +0,0 @@ -hlsl.imagefetch-subvec4.comp -Shader version: 500 -local_size = (8, 8, 8) -0:? Sequence -0:21 Function Definition: @main(vu3; ( temp void) -0:21 Function Parameters: -0:21 'tid' ( in 3-component vector of uint) -0:? Sequence -0:22 Sequence -0:22 move second child to first child ( temp float) -0:22 'f' ( temp float) -0:22 Constant: -0:22 0.000000 -0:23 add second child into first child ( temp float) -0:23 'f' ( temp float) -0:23 textureFetch ( temp float) -0:23 'i1D' (layout( binding=0) uniform texture1D) -0:23 direct index ( temp uint) -0:23 'tid' ( in 3-component vector of uint) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 0 (const int) -0:24 add second child into first child ( temp float) -0:24 'f' ( temp float) -0:24 textureFetch ( temp float) -0:24 'i2D' (layout( binding=1) uniform texture2D) -0:24 vector swizzle ( temp 2-component vector of uint) -0:24 'tid' ( in 3-component vector of uint) -0:24 Sequence -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 0 (const int) -0:25 add second child into first child ( temp float) -0:25 'f' ( temp float) -0:25 textureFetch ( temp float) -0:25 'i3D' (layout( binding=2) uniform texture3D) -0:25 'tid' ( in 3-component vector of uint) -0:25 Constant: -0:25 0 (const int) -0:26 add second child into first child ( temp float) -0:26 'f' ( temp float) -0:26 textureFetch ( temp float) -0:26 'i1DArray' (layout( binding=3) uniform texture1DArray) -0:26 vector swizzle ( temp 2-component vector of uint) -0:26 'tid' ( in 3-component vector of uint) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 0 (const int) -0:27 add second child into first child ( temp float) -0:27 'f' ( temp float) -0:27 textureFetch ( temp float) -0:27 'i2DArray' (layout( binding=4) uniform texture2DArray) -0:27 'tid' ( in 3-component vector of uint) -0:27 Constant: -0:27 0 (const int) -0:28 add second child into first child ( temp float) -0:28 'f' ( temp float) -0:28 Construct float ( temp float) -0:? textureFetch ( temp 4-component vector of float) -0:28 'i2DMS' (layout( binding=5) uniform texture2DMS) -0:28 Convert uint to int ( temp 2-component vector of int) -0:28 vector swizzle ( temp 2-component vector of uint) -0:28 'tid' ( in 3-component vector of uint) -0:28 Sequence -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 1 (const int) -0:28 Constant: -0:28 1 (const int) -0:29 add second child into first child ( temp float) -0:29 'f' ( temp float) -0:29 Construct float ( temp float) -0:? textureFetch ( temp 4-component vector of float) -0:29 'i2DMSArray' (layout( binding=6) uniform texture2DMSArray) -0:29 Convert uint to int ( temp 3-component vector of int) -0:29 'tid' ( in 3-component vector of uint) -0:29 Constant: -0:29 3 (const int) -0:31 Sequence -0:31 move second child to first child ( temp int) -0:31 'i' ( temp int) -0:31 Constant: -0:31 0 (const int) -0:32 add second child into first child ( temp int) -0:32 'i' ( temp int) -0:32 textureFetch ( temp int) -0:32 'ii1D' (layout( binding=7) uniform itexture1D) -0:32 direct index ( temp uint) -0:32 'tid' ( in 3-component vector of uint) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 0 (const int) -0:33 add second child into first child ( temp int) -0:33 'i' ( temp int) -0:33 textureFetch ( temp int) -0:33 'ii2D' (layout( binding=8) uniform itexture2D) -0:33 vector swizzle ( temp 2-component vector of uint) -0:33 'tid' ( in 3-component vector of uint) -0:33 Sequence -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 0 (const int) -0:34 add second child into first child ( temp int) -0:34 'i' ( temp int) -0:34 textureFetch ( temp int) -0:34 'ii3D' (layout( binding=9) uniform itexture3D) -0:34 'tid' ( in 3-component vector of uint) -0:34 Constant: -0:34 0 (const int) -0:35 add second child into first child ( temp int) -0:35 'i' ( temp int) -0:35 textureFetch ( temp int) -0:35 'ii1DArray' (layout( binding=10) uniform itexture1DArray) -0:35 vector swizzle ( temp 2-component vector of uint) -0:35 'tid' ( in 3-component vector of uint) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 0 (const int) -0:36 add second child into first child ( temp int) -0:36 'i' ( temp int) -0:36 textureFetch ( temp int) -0:36 'ii2DArray' (layout( binding=11) uniform itexture2DArray) -0:36 'tid' ( in 3-component vector of uint) -0:36 Constant: -0:36 0 (const int) -0:37 add second child into first child ( temp int) -0:37 'i' ( temp int) -0:37 Construct int ( temp int) -0:? textureFetch ( temp 4-component vector of int) -0:37 'ii2DMS' (layout( binding=12) uniform itexture2DMS) -0:37 Convert uint to int ( temp 2-component vector of int) -0:37 vector swizzle ( temp 2-component vector of uint) -0:37 'tid' ( in 3-component vector of uint) -0:37 Sequence -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 1 (const int) -0:37 Constant: -0:37 1 (const int) -0:38 add second child into first child ( temp int) -0:38 'i' ( temp int) -0:38 Construct int ( temp int) -0:? textureFetch ( temp 4-component vector of int) -0:38 'ii2DMSArray' (layout( binding=13) uniform itexture2DMSArray) -0:38 Convert uint to int ( temp 3-component vector of int) -0:38 'tid' ( in 3-component vector of uint) -0:38 Constant: -0:38 3 (const int) -0:40 Sequence -0:40 move second child to first child ( temp float) -0:40 'storeTemp' ( temp float) -0:40 add ( temp float) -0:40 'f' ( temp float) -0:40 Convert int to float ( temp float) -0:40 'i' ( temp int) -0:40 imageStore ( temp void) -0:40 'OUT' (layout( binding=0 r32f) uniform image3D) -0:40 'tid' ( in 3-component vector of uint) -0:40 'storeTemp' ( temp float) -0:40 'storeTemp' ( temp float) -0:21 Function Definition: main( ( temp void) -0:21 Function Parameters: -0:? Sequence -0:21 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:21 Function Call: @main(vu3; ( temp void) -0:? 'tid' ( temp 3-component vector of uint) -0:? Linker Objects -0:? 'i1D' (layout( binding=0) uniform texture1D) -0:? 'i2D' (layout( binding=1) uniform texture2D) -0:? 'i3D' (layout( binding=2) uniform texture3D) -0:? 'i1DArray' (layout( binding=3) uniform texture1DArray) -0:? 'i2DArray' (layout( binding=4) uniform texture2DArray) -0:? 'i2DMS' (layout( binding=5) uniform texture2DMS) -0:? 'i2DMSArray' (layout( binding=6) uniform texture2DMSArray) -0:? 'ii1D' (layout( binding=7) uniform itexture1D) -0:? 'ii2D' (layout( binding=8) uniform itexture2D) -0:? 'ii3D' (layout( binding=9) uniform itexture3D) -0:? 'ii1DArray' (layout( binding=10) uniform itexture1DArray) -0:? 'ii2DArray' (layout( binding=11) uniform itexture2DArray) -0:? 'ii2DMS' (layout( binding=12) uniform itexture2DMS) -0:? 'ii2DMSArray' (layout( binding=13) uniform itexture2DMSArray) -0:? 'OUT' (layout( binding=0 r32f) uniform image3D) -0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) - - -Linked compute stage: - - -Shader version: 500 -local_size = (8, 8, 8) -0:? Sequence -0:21 Function Definition: @main(vu3; ( temp void) -0:21 Function Parameters: -0:21 'tid' ( in 3-component vector of uint) -0:? Sequence -0:22 Sequence -0:22 move second child to first child ( temp float) -0:22 'f' ( temp float) -0:22 Constant: -0:22 0.000000 -0:23 add second child into first child ( temp float) -0:23 'f' ( temp float) -0:23 textureFetch ( temp float) -0:23 'i1D' (layout( binding=0) uniform texture1D) -0:23 direct index ( temp uint) -0:23 'tid' ( in 3-component vector of uint) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 0 (const int) -0:24 add second child into first child ( temp float) -0:24 'f' ( temp float) -0:24 textureFetch ( temp float) -0:24 'i2D' (layout( binding=1) uniform texture2D) -0:24 vector swizzle ( temp 2-component vector of uint) -0:24 'tid' ( in 3-component vector of uint) -0:24 Sequence -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 0 (const int) -0:25 add second child into first child ( temp float) -0:25 'f' ( temp float) -0:25 textureFetch ( temp float) -0:25 'i3D' (layout( binding=2) uniform texture3D) -0:25 'tid' ( in 3-component vector of uint) -0:25 Constant: -0:25 0 (const int) -0:26 add second child into first child ( temp float) -0:26 'f' ( temp float) -0:26 textureFetch ( temp float) -0:26 'i1DArray' (layout( binding=3) uniform texture1DArray) -0:26 vector swizzle ( temp 2-component vector of uint) -0:26 'tid' ( in 3-component vector of uint) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 0 (const int) -0:27 add second child into first child ( temp float) -0:27 'f' ( temp float) -0:27 textureFetch ( temp float) -0:27 'i2DArray' (layout( binding=4) uniform texture2DArray) -0:27 'tid' ( in 3-component vector of uint) -0:27 Constant: -0:27 0 (const int) -0:28 add second child into first child ( temp float) -0:28 'f' ( temp float) -0:28 Construct float ( temp float) -0:? textureFetch ( temp 4-component vector of float) -0:28 'i2DMS' (layout( binding=5) uniform texture2DMS) -0:28 Convert uint to int ( temp 2-component vector of int) -0:28 vector swizzle ( temp 2-component vector of uint) -0:28 'tid' ( in 3-component vector of uint) -0:28 Sequence -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 1 (const int) -0:28 Constant: -0:28 1 (const int) -0:29 add second child into first child ( temp float) -0:29 'f' ( temp float) -0:29 Construct float ( temp float) -0:? textureFetch ( temp 4-component vector of float) -0:29 'i2DMSArray' (layout( binding=6) uniform texture2DMSArray) -0:29 Convert uint to int ( temp 3-component vector of int) -0:29 'tid' ( in 3-component vector of uint) -0:29 Constant: -0:29 3 (const int) -0:31 Sequence -0:31 move second child to first child ( temp int) -0:31 'i' ( temp int) -0:31 Constant: -0:31 0 (const int) -0:32 add second child into first child ( temp int) -0:32 'i' ( temp int) -0:32 textureFetch ( temp int) -0:32 'ii1D' (layout( binding=7) uniform itexture1D) -0:32 direct index ( temp uint) -0:32 'tid' ( in 3-component vector of uint) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 0 (const int) -0:33 add second child into first child ( temp int) -0:33 'i' ( temp int) -0:33 textureFetch ( temp int) -0:33 'ii2D' (layout( binding=8) uniform itexture2D) -0:33 vector swizzle ( temp 2-component vector of uint) -0:33 'tid' ( in 3-component vector of uint) -0:33 Sequence -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 0 (const int) -0:34 add second child into first child ( temp int) -0:34 'i' ( temp int) -0:34 textureFetch ( temp int) -0:34 'ii3D' (layout( binding=9) uniform itexture3D) -0:34 'tid' ( in 3-component vector of uint) -0:34 Constant: -0:34 0 (const int) -0:35 add second child into first child ( temp int) -0:35 'i' ( temp int) -0:35 textureFetch ( temp int) -0:35 'ii1DArray' (layout( binding=10) uniform itexture1DArray) -0:35 vector swizzle ( temp 2-component vector of uint) -0:35 'tid' ( in 3-component vector of uint) -0:35 Sequence -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const int) -0:35 Constant: -0:35 0 (const int) -0:36 add second child into first child ( temp int) -0:36 'i' ( temp int) -0:36 textureFetch ( temp int) -0:36 'ii2DArray' (layout( binding=11) uniform itexture2DArray) -0:36 'tid' ( in 3-component vector of uint) -0:36 Constant: -0:36 0 (const int) -0:37 add second child into first child ( temp int) -0:37 'i' ( temp int) -0:37 Construct int ( temp int) -0:? textureFetch ( temp 4-component vector of int) -0:37 'ii2DMS' (layout( binding=12) uniform itexture2DMS) -0:37 Convert uint to int ( temp 2-component vector of int) -0:37 vector swizzle ( temp 2-component vector of uint) -0:37 'tid' ( in 3-component vector of uint) -0:37 Sequence -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 1 (const int) -0:37 Constant: -0:37 1 (const int) -0:38 add second child into first child ( temp int) -0:38 'i' ( temp int) -0:38 Construct int ( temp int) -0:? textureFetch ( temp 4-component vector of int) -0:38 'ii2DMSArray' (layout( binding=13) uniform itexture2DMSArray) -0:38 Convert uint to int ( temp 3-component vector of int) -0:38 'tid' ( in 3-component vector of uint) -0:38 Constant: -0:38 3 (const int) -0:40 Sequence -0:40 move second child to first child ( temp float) -0:40 'storeTemp' ( temp float) -0:40 add ( temp float) -0:40 'f' ( temp float) -0:40 Convert int to float ( temp float) -0:40 'i' ( temp int) -0:40 imageStore ( temp void) -0:40 'OUT' (layout( binding=0 r32f) uniform image3D) -0:40 'tid' ( in 3-component vector of uint) -0:40 'storeTemp' ( temp float) -0:40 'storeTemp' ( temp float) -0:21 Function Definition: main( ( temp void) -0:21 Function Parameters: -0:? Sequence -0:21 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:21 Function Call: @main(vu3; ( temp void) -0:? 'tid' ( temp 3-component vector of uint) -0:? Linker Objects -0:? 'i1D' (layout( binding=0) uniform texture1D) -0:? 'i2D' (layout( binding=1) uniform texture2D) -0:? 'i3D' (layout( binding=2) uniform texture3D) -0:? 'i1DArray' (layout( binding=3) uniform texture1DArray) -0:? 'i2DArray' (layout( binding=4) uniform texture2DArray) -0:? 'i2DMS' (layout( binding=5) uniform texture2DMS) -0:? 'i2DMSArray' (layout( binding=6) uniform texture2DMSArray) -0:? 'ii1D' (layout( binding=7) uniform itexture1D) -0:? 'ii2D' (layout( binding=8) uniform itexture2D) -0:? 'ii3D' (layout( binding=9) uniform itexture3D) -0:? 'ii1DArray' (layout( binding=10) uniform itexture1DArray) -0:? 'ii2DArray' (layout( binding=11) uniform itexture2DArray) -0:? 'ii2DMS' (layout( binding=12) uniform itexture2DMS) -0:? 'ii2DMSArray' (layout( binding=13) uniform itexture2DMSArray) -0:? 'OUT' (layout( binding=0 r32f) uniform image3D) -0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 186 - - Capability Shader - Capability Sampled1D - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 181 - ExecutionMode 4 LocalSize 8 8 8 - Source HLSL 500 - Name 4 "main" - Name 11 "@main(vu3;" - Name 10 "tid" - Name 15 "f" - Name 19 "i1D" - Name 34 "i2D" - Name 45 "i3D" - Name 54 "i1DArray" - Name 64 "i2DArray" - Name 73 "i2DMS" - Name 86 "i2DMSArray" - Name 97 "i" - Name 100 "ii1D" - Name 111 "ii2D" - Name 121 "ii3D" - Name 130 "ii1DArray" - Name 140 "ii2DArray" - Name 149 "ii2DMS" - Name 160 "ii2DMSArray" - Name 168 "storeTemp" - Name 175 "OUT" - Name 179 "tid" - Name 181 "tid" - Name 183 "param" - Decorate 19(i1D) DescriptorSet 0 - Decorate 19(i1D) Binding 0 - Decorate 34(i2D) DescriptorSet 0 - Decorate 34(i2D) Binding 1 - Decorate 45(i3D) DescriptorSet 0 - Decorate 45(i3D) Binding 2 - Decorate 54(i1DArray) DescriptorSet 0 - Decorate 54(i1DArray) Binding 3 - Decorate 64(i2DArray) DescriptorSet 0 - Decorate 64(i2DArray) Binding 4 - Decorate 73(i2DMS) DescriptorSet 0 - Decorate 73(i2DMS) Binding 5 - Decorate 86(i2DMSArray) DescriptorSet 0 - Decorate 86(i2DMSArray) Binding 6 - Decorate 100(ii1D) DescriptorSet 0 - Decorate 100(ii1D) Binding 7 - Decorate 111(ii2D) DescriptorSet 0 - Decorate 111(ii2D) Binding 8 - Decorate 121(ii3D) DescriptorSet 0 - Decorate 121(ii3D) Binding 9 - Decorate 130(ii1DArray) DescriptorSet 0 - Decorate 130(ii1DArray) Binding 10 - Decorate 140(ii2DArray) DescriptorSet 0 - Decorate 140(ii2DArray) Binding 11 - Decorate 149(ii2DMS) DescriptorSet 0 - Decorate 149(ii2DMS) Binding 12 - Decorate 160(ii2DMSArray) DescriptorSet 0 - Decorate 160(ii2DMSArray) Binding 13 - Decorate 175(OUT) DescriptorSet 0 - Decorate 175(OUT) Binding 0 - Decorate 181(tid) BuiltIn GlobalInvocationId - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeVector 6(int) 3 - 8: TypePointer Function 7(ivec3) - 9: TypeFunction 2 8(ptr) - 13: TypeFloat 32 - 14: TypePointer Function 13(float) - 16: 13(float) Constant 0 - 17: TypeImage 13(float) 1D sampled format:Unknown - 18: TypePointer UniformConstant 17 - 19(i1D): 18(ptr) Variable UniformConstant - 21: 6(int) Constant 0 - 22: TypePointer Function 6(int) - 25: TypeInt 32 1 - 26: 25(int) Constant 0 - 27: TypeVector 13(float) 4 - 32: TypeImage 13(float) 2D sampled format:Unknown - 33: TypePointer UniformConstant 32 - 34(i2D): 33(ptr) Variable UniformConstant - 36: TypeVector 6(int) 2 - 43: TypeImage 13(float) 3D sampled format:Unknown - 44: TypePointer UniformConstant 43 - 45(i3D): 44(ptr) Variable UniformConstant - 52: TypeImage 13(float) 1D array sampled format:Unknown - 53: TypePointer UniformConstant 52 - 54(i1DArray): 53(ptr) Variable UniformConstant - 62: TypeImage 13(float) 2D array sampled format:Unknown - 63: TypePointer UniformConstant 62 - 64(i2DArray): 63(ptr) Variable UniformConstant - 71: TypeImage 13(float) 2D multi-sampled sampled format:Unknown - 72: TypePointer UniformConstant 71 - 73(i2DMS): 72(ptr) Variable UniformConstant - 77: TypeVector 25(int) 2 - 79: 25(int) Constant 1 - 84: TypeImage 13(float) 2D array multi-sampled sampled format:Unknown - 85: TypePointer UniformConstant 84 - 86(i2DMSArray): 85(ptr) Variable UniformConstant - 89: TypeVector 25(int) 3 - 91: 25(int) Constant 3 - 96: TypePointer Function 25(int) - 98: TypeImage 25(int) 1D sampled format:Unknown - 99: TypePointer UniformConstant 98 - 100(ii1D): 99(ptr) Variable UniformConstant - 104: TypeVector 25(int) 4 - 109: TypeImage 25(int) 2D sampled format:Unknown - 110: TypePointer UniformConstant 109 - 111(ii2D): 110(ptr) Variable UniformConstant - 119: TypeImage 25(int) 3D sampled format:Unknown - 120: TypePointer UniformConstant 119 - 121(ii3D): 120(ptr) Variable UniformConstant - 128: TypeImage 25(int) 1D array sampled format:Unknown - 129: TypePointer UniformConstant 128 - 130(ii1DArray): 129(ptr) Variable UniformConstant - 138: TypeImage 25(int) 2D array sampled format:Unknown - 139: TypePointer UniformConstant 138 - 140(ii2DArray): 139(ptr) Variable UniformConstant - 147: TypeImage 25(int) 2D multi-sampled sampled format:Unknown - 148: TypePointer UniformConstant 147 - 149(ii2DMS): 148(ptr) Variable UniformConstant - 158: TypeImage 25(int) 2D array multi-sampled sampled format:Unknown - 159: TypePointer UniformConstant 158 -160(ii2DMSArray): 159(ptr) Variable UniformConstant - 173: TypeImage 13(float) 3D nonsampled format:R32f - 174: TypePointer UniformConstant 173 - 175(OUT): 174(ptr) Variable UniformConstant - 180: TypePointer Input 7(ivec3) - 181(tid): 180(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 179(tid): 8(ptr) Variable Function - 183(param): 8(ptr) Variable Function - 182: 7(ivec3) Load 181(tid) - Store 179(tid) 182 - 184: 7(ivec3) Load 179(tid) - Store 183(param) 184 - 185: 2 FunctionCall 11(@main(vu3;) 183(param) - Return - FunctionEnd - 11(@main(vu3;): 2 Function None 9 - 10(tid): 8(ptr) FunctionParameter - 12: Label - 15(f): 14(ptr) Variable Function - 97(i): 96(ptr) Variable Function - 168(storeTemp): 14(ptr) Variable Function - Store 15(f) 16 - 20: 17 Load 19(i1D) - 23: 22(ptr) AccessChain 10(tid) 21 - 24: 6(int) Load 23 - 28: 27(fvec4) ImageFetch 20 24 Lod 26 - 29: 13(float) CompositeExtract 28 0 - 30: 13(float) Load 15(f) - 31: 13(float) FAdd 30 29 - Store 15(f) 31 - 35: 32 Load 34(i2D) - 37: 7(ivec3) Load 10(tid) - 38: 36(ivec2) VectorShuffle 37 37 0 1 - 39: 27(fvec4) ImageFetch 35 38 Lod 26 - 40: 13(float) CompositeExtract 39 0 - 41: 13(float) Load 15(f) - 42: 13(float) FAdd 41 40 - Store 15(f) 42 - 46: 43 Load 45(i3D) - 47: 7(ivec3) Load 10(tid) - 48: 27(fvec4) ImageFetch 46 47 Lod 26 - 49: 13(float) CompositeExtract 48 0 - 50: 13(float) Load 15(f) - 51: 13(float) FAdd 50 49 - Store 15(f) 51 - 55: 52 Load 54(i1DArray) - 56: 7(ivec3) Load 10(tid) - 57: 36(ivec2) VectorShuffle 56 56 0 1 - 58: 27(fvec4) ImageFetch 55 57 Lod 26 - 59: 13(float) CompositeExtract 58 0 - 60: 13(float) Load 15(f) - 61: 13(float) FAdd 60 59 - Store 15(f) 61 - 65: 62 Load 64(i2DArray) - 66: 7(ivec3) Load 10(tid) - 67: 27(fvec4) ImageFetch 65 66 Lod 26 - 68: 13(float) CompositeExtract 67 0 - 69: 13(float) Load 15(f) - 70: 13(float) FAdd 69 68 - Store 15(f) 70 - 74: 71 Load 73(i2DMS) - 75: 7(ivec3) Load 10(tid) - 76: 36(ivec2) VectorShuffle 75 75 0 1 - 78: 77(ivec2) Bitcast 76 - 80: 27(fvec4) ImageFetch 74 78 Sample 79 - 81: 13(float) CompositeExtract 80 0 - 82: 13(float) Load 15(f) - 83: 13(float) FAdd 82 81 - Store 15(f) 83 - 87: 84 Load 86(i2DMSArray) - 88: 7(ivec3) Load 10(tid) - 90: 89(ivec3) Bitcast 88 - 92: 27(fvec4) ImageFetch 87 90 Sample 91 - 93: 13(float) CompositeExtract 92 0 - 94: 13(float) Load 15(f) - 95: 13(float) FAdd 94 93 - Store 15(f) 95 - Store 97(i) 26 - 101: 98 Load 100(ii1D) - 102: 22(ptr) AccessChain 10(tid) 21 - 103: 6(int) Load 102 - 105: 104(ivec4) ImageFetch 101 103 Lod 26 - 106: 25(int) CompositeExtract 105 0 - 107: 25(int) Load 97(i) - 108: 25(int) IAdd 107 106 - Store 97(i) 108 - 112: 109 Load 111(ii2D) - 113: 7(ivec3) Load 10(tid) - 114: 36(ivec2) VectorShuffle 113 113 0 1 - 115: 104(ivec4) ImageFetch 112 114 Lod 26 - 116: 25(int) CompositeExtract 115 0 - 117: 25(int) Load 97(i) - 118: 25(int) IAdd 117 116 - Store 97(i) 118 - 122: 119 Load 121(ii3D) - 123: 7(ivec3) Load 10(tid) - 124: 104(ivec4) ImageFetch 122 123 Lod 26 - 125: 25(int) CompositeExtract 124 0 - 126: 25(int) Load 97(i) - 127: 25(int) IAdd 126 125 - Store 97(i) 127 - 131: 128 Load 130(ii1DArray) - 132: 7(ivec3) Load 10(tid) - 133: 36(ivec2) VectorShuffle 132 132 0 1 - 134: 104(ivec4) ImageFetch 131 133 Lod 26 - 135: 25(int) CompositeExtract 134 0 - 136: 25(int) Load 97(i) - 137: 25(int) IAdd 136 135 - Store 97(i) 137 - 141: 138 Load 140(ii2DArray) - 142: 7(ivec3) Load 10(tid) - 143: 104(ivec4) ImageFetch 141 142 Lod 26 - 144: 25(int) CompositeExtract 143 0 - 145: 25(int) Load 97(i) - 146: 25(int) IAdd 145 144 - Store 97(i) 146 - 150: 147 Load 149(ii2DMS) - 151: 7(ivec3) Load 10(tid) - 152: 36(ivec2) VectorShuffle 151 151 0 1 - 153: 77(ivec2) Bitcast 152 - 154: 104(ivec4) ImageFetch 150 153 Sample 79 - 155: 25(int) CompositeExtract 154 0 - 156: 25(int) Load 97(i) - 157: 25(int) IAdd 156 155 - Store 97(i) 157 - 161: 158 Load 160(ii2DMSArray) - 162: 7(ivec3) Load 10(tid) - 163: 89(ivec3) Bitcast 162 - 164: 104(ivec4) ImageFetch 161 163 Sample 91 - 165: 25(int) CompositeExtract 164 0 - 166: 25(int) Load 97(i) - 167: 25(int) IAdd 166 165 - Store 97(i) 167 - 169: 13(float) Load 15(f) - 170: 25(int) Load 97(i) - 171: 13(float) ConvertSToF 170 - 172: 13(float) FAdd 169 171 - Store 168(storeTemp) 172 - 176: 173 Load 175(OUT) - 177: 7(ivec3) Load 10(tid) - 178: 13(float) Load 168(storeTemp) - ImageWrite 176 177 178 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.imageload-subvec4.comp.out b/deps/glslang/Test/baseResults/hlsl.imageload-subvec4.comp.out deleted file mode 100644 index 4d038a19..00000000 --- a/deps/glslang/Test/baseResults/hlsl.imageload-subvec4.comp.out +++ /dev/null @@ -1,477 +0,0 @@ -hlsl.imageload-subvec4.comp -Shader version: 500 -local_size = (8, 8, 8) -0:? Sequence -0:17 Function Definition: @main(vu3; ( temp void) -0:17 Function Parameters: -0:17 'tid' ( in 3-component vector of uint) -0:? Sequence -0:18 Sequence -0:18 move second child to first child ( temp float) -0:18 'f' ( temp float) -0:18 Constant: -0:18 0.000000 -0:19 add second child into first child ( temp float) -0:19 'f' ( temp float) -0:19 imageLoad ( temp float) -0:19 'i1D' (layout( binding=0 r32f) uniform image1D) -0:19 direct index ( temp uint) -0:19 'tid' ( in 3-component vector of uint) -0:19 Constant: -0:19 0 (const int) -0:20 add second child into first child ( temp float) -0:20 'f' ( temp float) -0:20 imageLoad ( temp float) -0:20 'i2D' (layout( binding=1 r32f) uniform image2D) -0:20 vector swizzle ( temp 2-component vector of uint) -0:20 'tid' ( in 3-component vector of uint) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:21 add second child into first child ( temp float) -0:21 'f' ( temp float) -0:21 imageLoad ( temp float) -0:21 'i3D' (layout( binding=2 r32f) uniform image3D) -0:21 'tid' ( in 3-component vector of uint) -0:22 add second child into first child ( temp float) -0:22 'f' ( temp float) -0:22 imageLoad ( temp float) -0:22 'i1DArray' (layout( binding=3 r32f) uniform image1DArray) -0:22 vector swizzle ( temp 2-component vector of uint) -0:22 'tid' ( in 3-component vector of uint) -0:22 Sequence -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:23 add second child into first child ( temp float) -0:23 'f' ( temp float) -0:23 imageLoad ( temp float) -0:23 'i2DArray' (layout( binding=4 r32f) uniform image2DArray) -0:23 'tid' ( in 3-component vector of uint) -0:25 Sequence -0:25 move second child to first child ( temp int) -0:25 'i' ( temp int) -0:25 Constant: -0:25 0 (const int) -0:26 add second child into first child ( temp int) -0:26 'i' ( temp int) -0:26 imageLoad ( temp int) -0:26 'ii1D' (layout( binding=5 r32i) uniform iimage1D) -0:26 direct index ( temp uint) -0:26 'tid' ( in 3-component vector of uint) -0:26 Constant: -0:26 0 (const int) -0:27 add second child into first child ( temp int) -0:27 'i' ( temp int) -0:27 imageLoad ( temp int) -0:27 'ii2D' (layout( binding=6 r32i) uniform iimage2D) -0:27 vector swizzle ( temp 2-component vector of uint) -0:27 'tid' ( in 3-component vector of uint) -0:27 Sequence -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 1 (const int) -0:28 add second child into first child ( temp int) -0:28 'i' ( temp int) -0:28 imageLoad ( temp int) -0:28 'ii3D' (layout( binding=7 r32i) uniform iimage3D) -0:28 'tid' ( in 3-component vector of uint) -0:29 add second child into first child ( temp int) -0:29 'i' ( temp int) -0:29 imageLoad ( temp int) -0:29 'ii1DArray' (layout( binding=8 r32i) uniform iimage1DArray) -0:29 vector swizzle ( temp 2-component vector of uint) -0:29 'tid' ( in 3-component vector of uint) -0:29 Sequence -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 1 (const int) -0:30 add second child into first child ( temp int) -0:30 'i' ( temp int) -0:30 imageLoad ( temp int) -0:30 'ii2DArray' (layout( binding=9 r32i) uniform iimage2DArray) -0:30 'tid' ( in 3-component vector of uint) -0:32 Sequence -0:32 move second child to first child ( temp float) -0:32 'storeTemp' ( temp float) -0:32 add ( temp float) -0:32 'f' ( temp float) -0:32 Convert int to float ( temp float) -0:32 'i' ( temp int) -0:32 imageStore ( temp void) -0:32 'OUT' (layout( binding=10 r32f) uniform image3D) -0:32 'tid' ( in 3-component vector of uint) -0:32 'storeTemp' ( temp float) -0:32 'storeTemp' ( temp float) -0:17 Function Definition: main( ( temp void) -0:17 Function Parameters: -0:? Sequence -0:17 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:17 Function Call: @main(vu3; ( temp void) -0:? 'tid' ( temp 3-component vector of uint) -0:? Linker Objects -0:? 'i1D' (layout( binding=0 r32f) uniform image1D) -0:? 'i2D' (layout( binding=1 r32f) uniform image2D) -0:? 'i3D' (layout( binding=2 r32f) uniform image3D) -0:? 'i1DArray' (layout( binding=3 r32f) uniform image1DArray) -0:? 'i2DArray' (layout( binding=4 r32f) uniform image2DArray) -0:? 'ii1D' (layout( binding=5 r32i) uniform iimage1D) -0:? 'ii2D' (layout( binding=6 r32i) uniform iimage2D) -0:? 'ii3D' (layout( binding=7 r32i) uniform iimage3D) -0:? 'ii1DArray' (layout( binding=8 r32i) uniform iimage1DArray) -0:? 'ii2DArray' (layout( binding=9 r32i) uniform iimage2DArray) -0:? 'OUT' (layout( binding=10 r32f) uniform image3D) -0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) - - -Linked compute stage: - - -Shader version: 500 -local_size = (8, 8, 8) -0:? Sequence -0:17 Function Definition: @main(vu3; ( temp void) -0:17 Function Parameters: -0:17 'tid' ( in 3-component vector of uint) -0:? Sequence -0:18 Sequence -0:18 move second child to first child ( temp float) -0:18 'f' ( temp float) -0:18 Constant: -0:18 0.000000 -0:19 add second child into first child ( temp float) -0:19 'f' ( temp float) -0:19 imageLoad ( temp float) -0:19 'i1D' (layout( binding=0 r32f) uniform image1D) -0:19 direct index ( temp uint) -0:19 'tid' ( in 3-component vector of uint) -0:19 Constant: -0:19 0 (const int) -0:20 add second child into first child ( temp float) -0:20 'f' ( temp float) -0:20 imageLoad ( temp float) -0:20 'i2D' (layout( binding=1 r32f) uniform image2D) -0:20 vector swizzle ( temp 2-component vector of uint) -0:20 'tid' ( in 3-component vector of uint) -0:20 Sequence -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:21 add second child into first child ( temp float) -0:21 'f' ( temp float) -0:21 imageLoad ( temp float) -0:21 'i3D' (layout( binding=2 r32f) uniform image3D) -0:21 'tid' ( in 3-component vector of uint) -0:22 add second child into first child ( temp float) -0:22 'f' ( temp float) -0:22 imageLoad ( temp float) -0:22 'i1DArray' (layout( binding=3 r32f) uniform image1DArray) -0:22 vector swizzle ( temp 2-component vector of uint) -0:22 'tid' ( in 3-component vector of uint) -0:22 Sequence -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:23 add second child into first child ( temp float) -0:23 'f' ( temp float) -0:23 imageLoad ( temp float) -0:23 'i2DArray' (layout( binding=4 r32f) uniform image2DArray) -0:23 'tid' ( in 3-component vector of uint) -0:25 Sequence -0:25 move second child to first child ( temp int) -0:25 'i' ( temp int) -0:25 Constant: -0:25 0 (const int) -0:26 add second child into first child ( temp int) -0:26 'i' ( temp int) -0:26 imageLoad ( temp int) -0:26 'ii1D' (layout( binding=5 r32i) uniform iimage1D) -0:26 direct index ( temp uint) -0:26 'tid' ( in 3-component vector of uint) -0:26 Constant: -0:26 0 (const int) -0:27 add second child into first child ( temp int) -0:27 'i' ( temp int) -0:27 imageLoad ( temp int) -0:27 'ii2D' (layout( binding=6 r32i) uniform iimage2D) -0:27 vector swizzle ( temp 2-component vector of uint) -0:27 'tid' ( in 3-component vector of uint) -0:27 Sequence -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 1 (const int) -0:28 add second child into first child ( temp int) -0:28 'i' ( temp int) -0:28 imageLoad ( temp int) -0:28 'ii3D' (layout( binding=7 r32i) uniform iimage3D) -0:28 'tid' ( in 3-component vector of uint) -0:29 add second child into first child ( temp int) -0:29 'i' ( temp int) -0:29 imageLoad ( temp int) -0:29 'ii1DArray' (layout( binding=8 r32i) uniform iimage1DArray) -0:29 vector swizzle ( temp 2-component vector of uint) -0:29 'tid' ( in 3-component vector of uint) -0:29 Sequence -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 1 (const int) -0:30 add second child into first child ( temp int) -0:30 'i' ( temp int) -0:30 imageLoad ( temp int) -0:30 'ii2DArray' (layout( binding=9 r32i) uniform iimage2DArray) -0:30 'tid' ( in 3-component vector of uint) -0:32 Sequence -0:32 move second child to first child ( temp float) -0:32 'storeTemp' ( temp float) -0:32 add ( temp float) -0:32 'f' ( temp float) -0:32 Convert int to float ( temp float) -0:32 'i' ( temp int) -0:32 imageStore ( temp void) -0:32 'OUT' (layout( binding=10 r32f) uniform image3D) -0:32 'tid' ( in 3-component vector of uint) -0:32 'storeTemp' ( temp float) -0:32 'storeTemp' ( temp float) -0:17 Function Definition: main( ( temp void) -0:17 Function Parameters: -0:? Sequence -0:17 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:17 Function Call: @main(vu3; ( temp void) -0:? 'tid' ( temp 3-component vector of uint) -0:? Linker Objects -0:? 'i1D' (layout( binding=0 r32f) uniform image1D) -0:? 'i2D' (layout( binding=1 r32f) uniform image2D) -0:? 'i3D' (layout( binding=2 r32f) uniform image3D) -0:? 'i1DArray' (layout( binding=3 r32f) uniform image1DArray) -0:? 'i2DArray' (layout( binding=4 r32f) uniform image2DArray) -0:? 'ii1D' (layout( binding=5 r32i) uniform iimage1D) -0:? 'ii2D' (layout( binding=6 r32i) uniform iimage2D) -0:? 'ii3D' (layout( binding=7 r32i) uniform iimage3D) -0:? 'ii1DArray' (layout( binding=8 r32i) uniform iimage1DArray) -0:? 'ii2DArray' (layout( binding=9 r32i) uniform iimage2DArray) -0:? 'OUT' (layout( binding=10 r32f) uniform image3D) -0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 138 - - Capability Shader - Capability Image1D - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 133 - ExecutionMode 4 LocalSize 8 8 8 - Source HLSL 500 - Name 4 "main" - Name 11 "@main(vu3;" - Name 10 "tid" - Name 15 "f" - Name 19 "i1D" - Name 32 "i2D" - Name 43 "i3D" - Name 52 "i1DArray" - Name 62 "i2DArray" - Name 71 "i" - Name 75 "ii1D" - Name 86 "ii2D" - Name 96 "ii3D" - Name 105 "ii1DArray" - Name 115 "ii2DArray" - Name 122 "storeTemp" - Name 127 "OUT" - Name 131 "tid" - Name 133 "tid" - Name 135 "param" - Decorate 19(i1D) DescriptorSet 0 - Decorate 19(i1D) Binding 0 - Decorate 32(i2D) DescriptorSet 0 - Decorate 32(i2D) Binding 1 - Decorate 43(i3D) DescriptorSet 0 - Decorate 43(i3D) Binding 2 - Decorate 52(i1DArray) DescriptorSet 0 - Decorate 52(i1DArray) Binding 3 - Decorate 62(i2DArray) DescriptorSet 0 - Decorate 62(i2DArray) Binding 4 - Decorate 75(ii1D) DescriptorSet 0 - Decorate 75(ii1D) Binding 5 - Decorate 86(ii2D) DescriptorSet 0 - Decorate 86(ii2D) Binding 6 - Decorate 96(ii3D) DescriptorSet 0 - Decorate 96(ii3D) Binding 7 - Decorate 105(ii1DArray) DescriptorSet 0 - Decorate 105(ii1DArray) Binding 8 - Decorate 115(ii2DArray) DescriptorSet 0 - Decorate 115(ii2DArray) Binding 9 - Decorate 127(OUT) DescriptorSet 0 - Decorate 127(OUT) Binding 10 - Decorate 133(tid) BuiltIn GlobalInvocationId - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeVector 6(int) 3 - 8: TypePointer Function 7(ivec3) - 9: TypeFunction 2 8(ptr) - 13: TypeFloat 32 - 14: TypePointer Function 13(float) - 16: 13(float) Constant 0 - 17: TypeImage 13(float) 1D nonsampled format:R32f - 18: TypePointer UniformConstant 17 - 19(i1D): 18(ptr) Variable UniformConstant - 21: 6(int) Constant 0 - 22: TypePointer Function 6(int) - 25: TypeVector 13(float) 4 - 30: TypeImage 13(float) 2D nonsampled format:R32f - 31: TypePointer UniformConstant 30 - 32(i2D): 31(ptr) Variable UniformConstant - 34: TypeVector 6(int) 2 - 41: TypeImage 13(float) 3D nonsampled format:R32f - 42: TypePointer UniformConstant 41 - 43(i3D): 42(ptr) Variable UniformConstant - 50: TypeImage 13(float) 1D array nonsampled format:R32f - 51: TypePointer UniformConstant 50 - 52(i1DArray): 51(ptr) Variable UniformConstant - 60: TypeImage 13(float) 2D array nonsampled format:R32f - 61: TypePointer UniformConstant 60 - 62(i2DArray): 61(ptr) Variable UniformConstant - 69: TypeInt 32 1 - 70: TypePointer Function 69(int) - 72: 69(int) Constant 0 - 73: TypeImage 69(int) 1D nonsampled format:R32i - 74: TypePointer UniformConstant 73 - 75(ii1D): 74(ptr) Variable UniformConstant - 79: TypeVector 69(int) 4 - 84: TypeImage 69(int) 2D nonsampled format:R32i - 85: TypePointer UniformConstant 84 - 86(ii2D): 85(ptr) Variable UniformConstant - 94: TypeImage 69(int) 3D nonsampled format:R32i - 95: TypePointer UniformConstant 94 - 96(ii3D): 95(ptr) Variable UniformConstant - 103: TypeImage 69(int) 1D array nonsampled format:R32i - 104: TypePointer UniformConstant 103 - 105(ii1DArray): 104(ptr) Variable UniformConstant - 113: TypeImage 69(int) 2D array nonsampled format:R32i - 114: TypePointer UniformConstant 113 - 115(ii2DArray): 114(ptr) Variable UniformConstant - 127(OUT): 42(ptr) Variable UniformConstant - 132: TypePointer Input 7(ivec3) - 133(tid): 132(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 131(tid): 8(ptr) Variable Function - 135(param): 8(ptr) Variable Function - 134: 7(ivec3) Load 133(tid) - Store 131(tid) 134 - 136: 7(ivec3) Load 131(tid) - Store 135(param) 136 - 137: 2 FunctionCall 11(@main(vu3;) 135(param) - Return - FunctionEnd - 11(@main(vu3;): 2 Function None 9 - 10(tid): 8(ptr) FunctionParameter - 12: Label - 15(f): 14(ptr) Variable Function - 71(i): 70(ptr) Variable Function - 122(storeTemp): 14(ptr) Variable Function - Store 15(f) 16 - 20: 17 Load 19(i1D) - 23: 22(ptr) AccessChain 10(tid) 21 - 24: 6(int) Load 23 - 26: 25(fvec4) ImageRead 20 24 - 27: 13(float) CompositeExtract 26 0 - 28: 13(float) Load 15(f) - 29: 13(float) FAdd 28 27 - Store 15(f) 29 - 33: 30 Load 32(i2D) - 35: 7(ivec3) Load 10(tid) - 36: 34(ivec2) VectorShuffle 35 35 0 1 - 37: 25(fvec4) ImageRead 33 36 - 38: 13(float) CompositeExtract 37 0 - 39: 13(float) Load 15(f) - 40: 13(float) FAdd 39 38 - Store 15(f) 40 - 44: 41 Load 43(i3D) - 45: 7(ivec3) Load 10(tid) - 46: 25(fvec4) ImageRead 44 45 - 47: 13(float) CompositeExtract 46 0 - 48: 13(float) Load 15(f) - 49: 13(float) FAdd 48 47 - Store 15(f) 49 - 53: 50 Load 52(i1DArray) - 54: 7(ivec3) Load 10(tid) - 55: 34(ivec2) VectorShuffle 54 54 0 1 - 56: 25(fvec4) ImageRead 53 55 - 57: 13(float) CompositeExtract 56 0 - 58: 13(float) Load 15(f) - 59: 13(float) FAdd 58 57 - Store 15(f) 59 - 63: 60 Load 62(i2DArray) - 64: 7(ivec3) Load 10(tid) - 65: 25(fvec4) ImageRead 63 64 - 66: 13(float) CompositeExtract 65 0 - 67: 13(float) Load 15(f) - 68: 13(float) FAdd 67 66 - Store 15(f) 68 - Store 71(i) 72 - 76: 73 Load 75(ii1D) - 77: 22(ptr) AccessChain 10(tid) 21 - 78: 6(int) Load 77 - 80: 79(ivec4) ImageRead 76 78 - 81: 69(int) CompositeExtract 80 0 - 82: 69(int) Load 71(i) - 83: 69(int) IAdd 82 81 - Store 71(i) 83 - 87: 84 Load 86(ii2D) - 88: 7(ivec3) Load 10(tid) - 89: 34(ivec2) VectorShuffle 88 88 0 1 - 90: 79(ivec4) ImageRead 87 89 - 91: 69(int) CompositeExtract 90 0 - 92: 69(int) Load 71(i) - 93: 69(int) IAdd 92 91 - Store 71(i) 93 - 97: 94 Load 96(ii3D) - 98: 7(ivec3) Load 10(tid) - 99: 79(ivec4) ImageRead 97 98 - 100: 69(int) CompositeExtract 99 0 - 101: 69(int) Load 71(i) - 102: 69(int) IAdd 101 100 - Store 71(i) 102 - 106: 103 Load 105(ii1DArray) - 107: 7(ivec3) Load 10(tid) - 108: 34(ivec2) VectorShuffle 107 107 0 1 - 109: 79(ivec4) ImageRead 106 108 - 110: 69(int) CompositeExtract 109 0 - 111: 69(int) Load 71(i) - 112: 69(int) IAdd 111 110 - Store 71(i) 112 - 116: 113 Load 115(ii2DArray) - 117: 7(ivec3) Load 10(tid) - 118: 79(ivec4) ImageRead 116 117 - 119: 69(int) CompositeExtract 118 0 - 120: 69(int) Load 71(i) - 121: 69(int) IAdd 120 119 - Store 71(i) 121 - 123: 13(float) Load 15(f) - 124: 69(int) Load 71(i) - 125: 13(float) ConvertSToF 124 - 126: 13(float) FAdd 123 125 - Store 122(storeTemp) 126 - 128: 41 Load 127(OUT) - 129: 7(ivec3) Load 10(tid) - 130: 13(float) Load 122(storeTemp) - ImageWrite 128 129 130 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.implicitBool.frag.out b/deps/glslang/Test/baseResults/hlsl.implicitBool.frag.out deleted file mode 100644 index dd93b7f1..00000000 --- a/deps/glslang/Test/baseResults/hlsl.implicitBool.frag.out +++ /dev/null @@ -1,539 +0,0 @@ -hlsl.implicitBool.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:7 Function Definition: @main( ( temp 4-component vector of float) -0:7 Function Parameters: -0:? Sequence -0:8 Sequence -0:8 move second child to first child ( temp 4-component vector of float) -0:8 'a' ( temp 4-component vector of float) -0:8 Constant: -0:8 2.000000 -0:8 2.000000 -0:8 2.000000 -0:8 2.000000 -0:9 Test condition and select ( temp void) -0:9 Condition -0:9 Convert int to bool ( temp bool) -0:9 condi: direct index for structure ( uniform int) -0:9 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) -0:9 Constant: -0:9 1 (const uint) -0:9 true case -0:10 Branch: Return with expression -0:10 add ( temp 4-component vector of float) -0:10 'a' ( temp 4-component vector of float) -0:10 Constant: -0:10 1.000000 -0:11 Test condition and select ( temp void) -0:11 Condition -0:11 Convert float to bool ( temp bool) -0:11 condf: direct index for structure ( uniform float) -0:11 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) -0:11 Constant: -0:11 0 (const uint) -0:11 true case -0:12 Branch: Return with expression -0:12 add ( temp 4-component vector of float) -0:12 'a' ( temp 4-component vector of float) -0:12 Constant: -0:12 2.000000 -0:13 Test condition and select ( temp void) -0:13 Condition -0:13 Convert float to bool ( temp bool) -0:13 condf1: direct index for structure ( uniform 1-component vector of float) -0:13 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) -0:13 Constant: -0:13 2 (const uint) -0:13 true case -0:14 Branch: Return with expression -0:14 add ( temp 4-component vector of float) -0:14 'a' ( temp 4-component vector of float) -0:14 Constant: -0:14 3.000000 -0:15 Test condition and select ( temp void) -0:15 Condition -0:15 Convert int to bool ( temp bool) -0:15 condi1: direct index for structure ( uniform 1-component vector of int) -0:15 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) -0:15 Constant: -0:15 3 (const uint) -0:15 true case -0:16 Branch: Return with expression -0:16 add ( temp 4-component vector of float) -0:16 'a' ( temp 4-component vector of float) -0:16 Constant: -0:16 4.000000 -0:17 Test condition and select ( temp void) -0:17 Condition -0:17 logical-or ( temp bool) -0:17 logical-and ( temp bool) -0:17 Convert int to bool ( temp bool) -0:17 condi: direct index for structure ( uniform int) -0:17 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) -0:17 Constant: -0:17 1 (const uint) -0:17 Convert float to bool ( temp bool) -0:17 condf: direct index for structure ( uniform float) -0:17 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) -0:17 Constant: -0:17 0 (const uint) -0:17 Convert float to bool ( temp bool) -0:17 condf1: direct index for structure ( uniform 1-component vector of float) -0:17 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) -0:17 Constant: -0:17 2 (const uint) -0:17 true case -0:18 Branch: Return with expression -0:18 add ( temp 4-component vector of float) -0:18 'a' ( temp 4-component vector of float) -0:18 Constant: -0:18 5.000000 -0:20 Sequence -0:20 move second child to first child ( temp float) -0:20 'f' ( temp float) -0:20 condf: direct index for structure ( uniform float) -0:20 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) -0:20 Constant: -0:20 0 (const uint) -0:21 Loop with condition tested first -0:21 Loop Condition -0:21 Convert float to bool ( temp bool) -0:21 'f' ( temp float) -0:21 Loop Body -0:? Sequence -0:21 Pre-Decrement ( temp float) -0:21 'f' ( temp float) -0:23 Sequence -0:23 move second child to first child ( temp int) -0:23 'i' ( temp int) -0:23 condi: direct index for structure ( uniform int) -0:23 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) -0:23 Constant: -0:23 1 (const uint) -0:24 Loop with condition not tested first -0:24 Loop Condition -0:24 Convert int to bool ( temp bool) -0:24 'i' ( temp int) -0:24 Loop Body -0:? Sequence -0:24 Pre-Decrement ( temp int) -0:24 'i' ( temp int) -0:? Sequence -0:26 Loop with condition tested first -0:26 Loop Condition -0:26 Convert int to bool ( temp bool) -0:26 'i' ( temp int) -0:26 Loop Body -0:? Sequence -0:26 Pre-Decrement ( temp int) -0:26 'i' ( temp int) -0:28 Sequence -0:28 move second child to first child ( temp float) -0:28 'g' ( temp float) -0:28 Test condition and select ( temp float): no shortcircuit -0:28 Condition -0:28 Convert float to bool ( temp bool) -0:28 condf: direct index for structure ( uniform float) -0:28 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) -0:28 Constant: -0:28 0 (const uint) -0:28 true case -0:28 Constant: -0:28 7.000000 -0:28 false case -0:28 Constant: -0:28 8.000000 -0:29 add second child into first child ( temp 4-component vector of float) -0:29 'a' ( temp 4-component vector of float) -0:29 'g' ( temp float) -0:31 Branch: Return with expression -0:31 subtract ( temp 4-component vector of float) -0:31 'a' ( temp 4-component vector of float) -0:31 Constant: -0:31 1.000000 -0:7 Function Definition: main( ( temp void) -0:7 Function Parameters: -0:? Sequence -0:7 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:7 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:7 Function Definition: @main( ( temp 4-component vector of float) -0:7 Function Parameters: -0:? Sequence -0:8 Sequence -0:8 move second child to first child ( temp 4-component vector of float) -0:8 'a' ( temp 4-component vector of float) -0:8 Constant: -0:8 2.000000 -0:8 2.000000 -0:8 2.000000 -0:8 2.000000 -0:9 Test condition and select ( temp void) -0:9 Condition -0:9 Convert int to bool ( temp bool) -0:9 condi: direct index for structure ( uniform int) -0:9 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) -0:9 Constant: -0:9 1 (const uint) -0:9 true case -0:10 Branch: Return with expression -0:10 add ( temp 4-component vector of float) -0:10 'a' ( temp 4-component vector of float) -0:10 Constant: -0:10 1.000000 -0:11 Test condition and select ( temp void) -0:11 Condition -0:11 Convert float to bool ( temp bool) -0:11 condf: direct index for structure ( uniform float) -0:11 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) -0:11 Constant: -0:11 0 (const uint) -0:11 true case -0:12 Branch: Return with expression -0:12 add ( temp 4-component vector of float) -0:12 'a' ( temp 4-component vector of float) -0:12 Constant: -0:12 2.000000 -0:13 Test condition and select ( temp void) -0:13 Condition -0:13 Convert float to bool ( temp bool) -0:13 condf1: direct index for structure ( uniform 1-component vector of float) -0:13 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) -0:13 Constant: -0:13 2 (const uint) -0:13 true case -0:14 Branch: Return with expression -0:14 add ( temp 4-component vector of float) -0:14 'a' ( temp 4-component vector of float) -0:14 Constant: -0:14 3.000000 -0:15 Test condition and select ( temp void) -0:15 Condition -0:15 Convert int to bool ( temp bool) -0:15 condi1: direct index for structure ( uniform 1-component vector of int) -0:15 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) -0:15 Constant: -0:15 3 (const uint) -0:15 true case -0:16 Branch: Return with expression -0:16 add ( temp 4-component vector of float) -0:16 'a' ( temp 4-component vector of float) -0:16 Constant: -0:16 4.000000 -0:17 Test condition and select ( temp void) -0:17 Condition -0:17 logical-or ( temp bool) -0:17 logical-and ( temp bool) -0:17 Convert int to bool ( temp bool) -0:17 condi: direct index for structure ( uniform int) -0:17 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) -0:17 Constant: -0:17 1 (const uint) -0:17 Convert float to bool ( temp bool) -0:17 condf: direct index for structure ( uniform float) -0:17 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) -0:17 Constant: -0:17 0 (const uint) -0:17 Convert float to bool ( temp bool) -0:17 condf1: direct index for structure ( uniform 1-component vector of float) -0:17 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) -0:17 Constant: -0:17 2 (const uint) -0:17 true case -0:18 Branch: Return with expression -0:18 add ( temp 4-component vector of float) -0:18 'a' ( temp 4-component vector of float) -0:18 Constant: -0:18 5.000000 -0:20 Sequence -0:20 move second child to first child ( temp float) -0:20 'f' ( temp float) -0:20 condf: direct index for structure ( uniform float) -0:20 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) -0:20 Constant: -0:20 0 (const uint) -0:21 Loop with condition tested first -0:21 Loop Condition -0:21 Convert float to bool ( temp bool) -0:21 'f' ( temp float) -0:21 Loop Body -0:? Sequence -0:21 Pre-Decrement ( temp float) -0:21 'f' ( temp float) -0:23 Sequence -0:23 move second child to first child ( temp int) -0:23 'i' ( temp int) -0:23 condi: direct index for structure ( uniform int) -0:23 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) -0:23 Constant: -0:23 1 (const uint) -0:24 Loop with condition not tested first -0:24 Loop Condition -0:24 Convert int to bool ( temp bool) -0:24 'i' ( temp int) -0:24 Loop Body -0:? Sequence -0:24 Pre-Decrement ( temp int) -0:24 'i' ( temp int) -0:? Sequence -0:26 Loop with condition tested first -0:26 Loop Condition -0:26 Convert int to bool ( temp bool) -0:26 'i' ( temp int) -0:26 Loop Body -0:? Sequence -0:26 Pre-Decrement ( temp int) -0:26 'i' ( temp int) -0:28 Sequence -0:28 move second child to first child ( temp float) -0:28 'g' ( temp float) -0:28 Test condition and select ( temp float): no shortcircuit -0:28 Condition -0:28 Convert float to bool ( temp bool) -0:28 condf: direct index for structure ( uniform float) -0:28 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) -0:28 Constant: -0:28 0 (const uint) -0:28 true case -0:28 Constant: -0:28 7.000000 -0:28 false case -0:28 Constant: -0:28 8.000000 -0:29 add second child into first child ( temp 4-component vector of float) -0:29 'a' ( temp 4-component vector of float) -0:29 'g' ( temp float) -0:31 Branch: Return with expression -0:31 subtract ( temp 4-component vector of float) -0:31 'a' ( temp 4-component vector of float) -0:31 Constant: -0:31 1.000000 -0:7 Function Definition: main( ( temp void) -0:7 Function Parameters: -0:? Sequence -0:7 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:7 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 139 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 137 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 9 "@main(" - Name 12 "a" - Name 16 "$Global" - MemberName 16($Global) 0 "condf" - MemberName 16($Global) 1 "condi" - MemberName 16($Global) 2 "condf1" - MemberName 16($Global) 3 "condi1" - Name 18 "" - Name 87 "f" - Name 100 "i" - Name 120 "g" - Name 137 "@entryPointOutput" - MemberDecorate 16($Global) 0 Offset 0 - MemberDecorate 16($Global) 1 Offset 4 - MemberDecorate 16($Global) 2 Offset 8 - MemberDecorate 16($Global) 3 Offset 12 - Decorate 16($Global) Block - Decorate 18 DescriptorSet 0 - Decorate 18 Binding 0 - Decorate 137(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 11: TypePointer Function 7(fvec4) - 13: 6(float) Constant 1073741824 - 14: 7(fvec4) ConstantComposite 13 13 13 13 - 15: TypeInt 32 1 - 16($Global): TypeStruct 6(float) 15(int) 6(float) 15(int) - 17: TypePointer Uniform 16($Global) - 18: 17(ptr) Variable Uniform - 19: 15(int) Constant 1 - 20: TypePointer Uniform 15(int) - 23: TypeBool - 24: TypeInt 32 0 - 25: 24(int) Constant 0 - 30: 6(float) Constant 1065353216 - 34: 15(int) Constant 0 - 35: TypePointer Uniform 6(float) - 38: 6(float) Constant 0 - 46: 15(int) Constant 2 - 53: 6(float) Constant 1077936128 - 57: 15(int) Constant 3 - 64: 6(float) Constant 1082130432 - 82: 6(float) Constant 1084227584 - 86: TypePointer Function 6(float) - 99: TypePointer Function 15(int) - 124: 6(float) Constant 1088421888 - 125: 6(float) Constant 1090519040 - 136: TypePointer Output 7(fvec4) -137(@entryPointOutput): 136(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 138: 7(fvec4) FunctionCall 9(@main() - Store 137(@entryPointOutput) 138 - Return - FunctionEnd - 9(@main(): 7(fvec4) Function None 8 - 10: Label - 12(a): 11(ptr) Variable Function - 87(f): 86(ptr) Variable Function - 100(i): 99(ptr) Variable Function - 120(g): 86(ptr) Variable Function - Store 12(a) 14 - 21: 20(ptr) AccessChain 18 19 - 22: 15(int) Load 21 - 26: 23(bool) INotEqual 22 25 - SelectionMerge 28 None - BranchConditional 26 27 28 - 27: Label - 29: 7(fvec4) Load 12(a) - 31: 7(fvec4) CompositeConstruct 30 30 30 30 - 32: 7(fvec4) FAdd 29 31 - ReturnValue 32 - 28: Label - 36: 35(ptr) AccessChain 18 34 - 37: 6(float) Load 36 - 39: 23(bool) FUnordNotEqual 37 38 - SelectionMerge 41 None - BranchConditional 39 40 41 - 40: Label - 42: 7(fvec4) Load 12(a) - 43: 7(fvec4) CompositeConstruct 13 13 13 13 - 44: 7(fvec4) FAdd 42 43 - ReturnValue 44 - 41: Label - 47: 35(ptr) AccessChain 18 46 - 48: 6(float) Load 47 - 49: 23(bool) FUnordNotEqual 48 38 - SelectionMerge 51 None - BranchConditional 49 50 51 - 50: Label - 52: 7(fvec4) Load 12(a) - 54: 7(fvec4) CompositeConstruct 53 53 53 53 - 55: 7(fvec4) FAdd 52 54 - ReturnValue 55 - 51: Label - 58: 20(ptr) AccessChain 18 57 - 59: 15(int) Load 58 - 60: 23(bool) INotEqual 59 25 - SelectionMerge 62 None - BranchConditional 60 61 62 - 61: Label - 63: 7(fvec4) Load 12(a) - 65: 7(fvec4) CompositeConstruct 64 64 64 64 - 66: 7(fvec4) FAdd 63 65 - ReturnValue 66 - 62: Label - 68: 20(ptr) AccessChain 18 19 - 69: 15(int) Load 68 - 70: 23(bool) INotEqual 69 25 - 71: 35(ptr) AccessChain 18 34 - 72: 6(float) Load 71 - 73: 23(bool) FUnordNotEqual 72 38 - 74: 23(bool) LogicalAnd 70 73 - 75: 35(ptr) AccessChain 18 46 - 76: 6(float) Load 75 - 77: 23(bool) FUnordNotEqual 76 38 - 78: 23(bool) LogicalOr 74 77 - SelectionMerge 80 None - BranchConditional 78 79 80 - 79: Label - 81: 7(fvec4) Load 12(a) - 83: 7(fvec4) CompositeConstruct 82 82 82 82 - 84: 7(fvec4) FAdd 81 83 - ReturnValue 84 - 80: Label - 88: 35(ptr) AccessChain 18 34 - 89: 6(float) Load 88 - Store 87(f) 89 - Branch 90 - 90: Label - LoopMerge 92 93 None - Branch 94 - 94: Label - 95: 6(float) Load 87(f) - 96: 23(bool) FUnordNotEqual 95 38 - BranchConditional 96 91 92 - 91: Label - 97: 6(float) Load 87(f) - 98: 6(float) FSub 97 30 - Store 87(f) 98 - Branch 93 - 93: Label - Branch 90 - 92: Label - 101: 20(ptr) AccessChain 18 19 - 102: 15(int) Load 101 - Store 100(i) 102 - Branch 103 - 103: Label - LoopMerge 105 106 None - Branch 104 - 104: Label - 107: 15(int) Load 100(i) - 108: 15(int) ISub 107 19 - Store 100(i) 108 - Branch 106 - 106: Label - 109: 15(int) Load 100(i) - 110: 23(bool) INotEqual 109 25 - BranchConditional 110 103 105 - 105: Label - Branch 111 - 111: Label - LoopMerge 113 114 None - Branch 115 - 115: Label - 116: 15(int) Load 100(i) - 117: 23(bool) INotEqual 116 25 - BranchConditional 117 112 113 - 112: Label - 118: 15(int) Load 100(i) - 119: 15(int) ISub 118 19 - Store 100(i) 119 - Branch 114 - 114: Label - Branch 111 - 113: Label - 121: 35(ptr) AccessChain 18 34 - 122: 6(float) Load 121 - 123: 23(bool) FUnordNotEqual 122 38 - 126: 6(float) Select 123 124 125 - Store 120(g) 126 - 127: 6(float) Load 120(g) - 128: 7(fvec4) Load 12(a) - 129: 7(fvec4) CompositeConstruct 127 127 127 127 - 130: 7(fvec4) FAdd 128 129 - Store 12(a) 130 - 131: 7(fvec4) Load 12(a) - 132: 7(fvec4) CompositeConstruct 30 30 30 30 - 133: 7(fvec4) FSub 131 132 - ReturnValue 133 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.include.vert.d.out b/deps/glslang/Test/baseResults/hlsl.include.vert.d.out deleted file mode 100644 index f2e54ff4..00000000 --- a/deps/glslang/Test/baseResults/hlsl.include.vert.d.out +++ /dev/null @@ -1 +0,0 @@ -vert.spv: ../Test/hlsl.include.vert ../Test/./inc1/bar.h ../Test/./inc1/foo.h ../Test/bar.h ../Test/inc2/bar.h ../Test/inc2/foo.h ../Test/parent.h diff --git a/deps/glslang/Test/baseResults/hlsl.include.vert.out b/deps/glslang/Test/baseResults/hlsl.include.vert.out deleted file mode 100644 index f46658d2..00000000 --- a/deps/glslang/Test/baseResults/hlsl.include.vert.out +++ /dev/null @@ -1,76 +0,0 @@ -../Test/hlsl.include.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 44 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 42 - Source HLSL 500 - Name 4 "main" - Name 9 "@main(" - Name 11 "$Global" - MemberName 11($Global) 0 "i1" - MemberName 11($Global) 1 "i2" - MemberName 11($Global) 2 "i4" - MemberName 11($Global) 3 "i3" - MemberName 11($Global) 4 "i6" - MemberName 11($Global) 5 "i5" - Name 13 "" - Name 42 "@entryPointOutput" - MemberDecorate 11($Global) 0 Offset 0 - MemberDecorate 11($Global) 1 Offset 16 - MemberDecorate 11($Global) 2 Offset 32 - MemberDecorate 11($Global) 3 Offset 48 - MemberDecorate 11($Global) 4 Offset 64 - MemberDecorate 11($Global) 5 Offset 80 - Decorate 11($Global) Block - Decorate 13 DescriptorSet 0 - Decorate 13 Binding 0 - Decorate 42(@entryPointOutput) BuiltIn Position - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 11($Global): TypeStruct 7(fvec4) 7(fvec4) 7(fvec4) 7(fvec4) 7(fvec4) 7(fvec4) - 12: TypePointer Uniform 11($Global) - 13: 12(ptr) Variable Uniform - 14: TypeInt 32 1 - 15: 14(int) Constant 0 - 16: TypePointer Uniform 7(fvec4) - 19: 14(int) Constant 1 - 23: 14(int) Constant 3 - 27: 14(int) Constant 2 - 31: 14(int) Constant 5 - 35: 14(int) Constant 4 - 41: TypePointer Output 7(fvec4) -42(@entryPointOutput): 41(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 43: 7(fvec4) FunctionCall 9(@main() - Store 42(@entryPointOutput) 43 - Return - FunctionEnd - 9(@main(): 7(fvec4) Function None 8 - 10: Label - 17: 16(ptr) AccessChain 13 15 - 18: 7(fvec4) Load 17 - 20: 16(ptr) AccessChain 13 19 - 21: 7(fvec4) Load 20 - 22: 7(fvec4) FAdd 18 21 - 24: 16(ptr) AccessChain 13 23 - 25: 7(fvec4) Load 24 - 26: 7(fvec4) FAdd 22 25 - 28: 16(ptr) AccessChain 13 27 - 29: 7(fvec4) Load 28 - 30: 7(fvec4) FAdd 26 29 - 32: 16(ptr) AccessChain 13 31 - 33: 7(fvec4) Load 32 - 34: 7(fvec4) FAdd 30 33 - 36: 16(ptr) AccessChain 13 35 - 37: 7(fvec4) Load 36 - 38: 7(fvec4) FAdd 34 37 - ReturnValue 38 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.includeNegative.vert.out b/deps/glslang/Test/baseResults/hlsl.includeNegative.vert.out deleted file mode 100644 index 67bf41c7..00000000 --- a/deps/glslang/Test/baseResults/hlsl.includeNegative.vert.out +++ /dev/null @@ -1,11 +0,0 @@ -hlsl.includeNegative.vert -ERROR: ./foo.h:1: '#error' : should not be included -ERROR: ./inc2/../foo.h:1: '#error' : should not be included -ERROR: ./parentBad:3: '#error' : bad parent -ERROR: hlsl.includeNegative.vert:7: '#error' : in main -ERROR: hlsl.includeNegative.vert:6: 'declaration' : Expected -hlsl.includeNegative.vert(8): error at column 0, HLSL parsing failed. -ERROR: 6 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/hlsl.inf.vert.out b/deps/glslang/Test/baseResults/hlsl.inf.vert.out deleted file mode 100644 index bb9a1849..00000000 --- a/deps/glslang/Test/baseResults/hlsl.inf.vert.out +++ /dev/null @@ -1,172 +0,0 @@ -hlsl.inf.vert -Shader version: 500 -0:? Sequence -0:2 Function Definition: @main( ( temp 4-component vector of float) -0:2 Function Parameters: -0:? Sequence -0:3 Sequence -0:3 move second child to first child ( temp float) -0:3 'f1' ( temp float) -0:3 Constant: -0:3 -1.#INF -0:4 Sequence -0:4 move second child to first child ( temp float) -0:4 'f2' ( temp float) -0:4 Constant: -0:4 +1.#INF -0:5 Sequence -0:5 move second child to first child ( temp float) -0:5 'f3' ( temp float) -0:5 Constant: -0:5 +1.#INF -0:6 Sequence -0:6 move second child to first child ( temp float) -0:6 'f4' ( temp float) -0:6 add ( temp float) -0:6 component-wise multiply ( temp float) -0:6 'f2' ( temp float) -0:6 Constant: -0:6 +1.#INF -0:6 Constant: -0:6 +1.#INF -0:10 Branch: Return with expression -0:10 Construct vec4 ( temp 4-component vector of float) -0:10 add ( temp float) -0:10 add ( temp float) -0:10 add ( temp float) -0:10 add ( temp float) -0:10 add ( temp float) -0:10 'f1' ( temp float) -0:10 'f2' ( temp float) -0:10 'f3' ( temp float) -0:10 'f4' ( temp float) -0:10 Constant: -0:10 -1.#INF -0:10 Constant: -0:10 1.#IND -0:2 Function Definition: main( ( temp void) -0:2 Function Parameters: -0:? Sequence -0:2 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' ( out 4-component vector of float Position) -0:2 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput' ( out 4-component vector of float Position) - - -Linked vertex stage: - - -Shader version: 500 -0:? Sequence -0:2 Function Definition: @main( ( temp 4-component vector of float) -0:2 Function Parameters: -0:? Sequence -0:3 Sequence -0:3 move second child to first child ( temp float) -0:3 'f1' ( temp float) -0:3 Constant: -0:3 -1.#INF -0:4 Sequence -0:4 move second child to first child ( temp float) -0:4 'f2' ( temp float) -0:4 Constant: -0:4 +1.#INF -0:5 Sequence -0:5 move second child to first child ( temp float) -0:5 'f3' ( temp float) -0:5 Constant: -0:5 +1.#INF -0:6 Sequence -0:6 move second child to first child ( temp float) -0:6 'f4' ( temp float) -0:6 add ( temp float) -0:6 component-wise multiply ( temp float) -0:6 'f2' ( temp float) -0:6 Constant: -0:6 +1.#INF -0:6 Constant: -0:6 +1.#INF -0:10 Branch: Return with expression -0:10 Construct vec4 ( temp 4-component vector of float) -0:10 add ( temp float) -0:10 add ( temp float) -0:10 add ( temp float) -0:10 add ( temp float) -0:10 add ( temp float) -0:10 'f1' ( temp float) -0:10 'f2' ( temp float) -0:10 'f3' ( temp float) -0:10 'f4' ( temp float) -0:10 Constant: -0:10 -1.#INF -0:10 Constant: -0:10 1.#IND -0:2 Function Definition: main( ( temp void) -0:2 Function Parameters: -0:? Sequence -0:2 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' ( out 4-component vector of float Position) -0:2 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput' ( out 4-component vector of float Position) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 37 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 35 - Source HLSL 500 - Name 4 "main" - Name 9 "@main(" - Name 12 "f1" - Name 14 "f2" - Name 16 "f3" - Name 17 "f4" - Name 35 "@entryPointOutput" - Decorate 35(@entryPointOutput) BuiltIn Position - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 11: TypePointer Function 6(float) - 13: 6(float) Constant 4286578688 - 15: 6(float) Constant 2139095040 - 29: 6(float) Constant 4290772992 - 34: TypePointer Output 7(fvec4) -35(@entryPointOutput): 34(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 36: 7(fvec4) FunctionCall 9(@main() - Store 35(@entryPointOutput) 36 - Return - FunctionEnd - 9(@main(): 7(fvec4) Function None 8 - 10: Label - 12(f1): 11(ptr) Variable Function - 14(f2): 11(ptr) Variable Function - 16(f3): 11(ptr) Variable Function - 17(f4): 11(ptr) Variable Function - Store 12(f1) 13 - Store 14(f2) 15 - Store 16(f3) 15 - 18: 6(float) Load 14(f2) - 19: 6(float) FMul 18 15 - 20: 6(float) FAdd 19 15 - Store 17(f4) 20 - 21: 6(float) Load 12(f1) - 22: 6(float) Load 14(f2) - 23: 6(float) FAdd 21 22 - 24: 6(float) Load 16(f3) - 25: 6(float) FAdd 23 24 - 26: 6(float) Load 17(f4) - 27: 6(float) FAdd 25 26 - 28: 6(float) FAdd 27 13 - 30: 6(float) FAdd 28 29 - 31: 7(fvec4) CompositeConstruct 30 30 30 30 - ReturnValue 31 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.init.frag.out b/deps/glslang/Test/baseResults/hlsl.init.frag.out deleted file mode 100644 index f604f0a0..00000000 --- a/deps/glslang/Test/baseResults/hlsl.init.frag.out +++ /dev/null @@ -1,531 +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:1 Constant: -0:1 1.000000 -0:1 0.500000 -0:1 0.000000 -0:1 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 Constant: -0:1 2.000000 -0:1 2.500000 -0:1 2.100000 -0:1 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:22 Constant: -0:22 0.200000 -0:22 0.300000 -0:22 0.400000 -0:22 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: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: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:1 Constant: -0:1 1.000000 -0:1 0.500000 -0:1 0.000000 -0:1 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 Constant: -0:1 2.000000 -0:1 2.500000 -0:1 2.100000 -0:1 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:22 Constant: -0:22 0.200000 -0:22 0.300000 -0:22 0.400000 -0:22 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: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: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): 8000a -// 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 - Decorate 109 Binding 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/Test/baseResults/hlsl.init2.frag.out b/deps/glslang/Test/baseResults/hlsl.init2.frag.out deleted file mode 100644 index 5039333b..00000000 --- a/deps/glslang/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:27 Constant: -0:27 0.577350 -0:27 0.577350 -0:27 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:28 Constant: -0:28 -0.577350 -0:28 -0.577350 -0:28 -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:29 Constant: -0:29 -0.577350 -0:29 -0.577350 -0:29 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:30 Constant: -0:30 -0.577350 -0:30 0.577350 -0:30 -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:31 Constant: -0:31 -0.577350 -0:31 0.577350 -0:31 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:32 Constant: -0:32 0.577350 -0:32 -0.577350 -0:32 -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:33 Constant: -0:33 0.577350 -0:33 -0.577350 -0:33 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:34 Constant: -0:34 0.577350 -0:34 0.577350 -0:34 -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:36 Constant: -0:36 -0.577350 -0:36 0.577350 -0:36 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:38 Constant: -0:38 -0.577350 -0:38 0.577350 -0:38 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:39 Constant: -0:39 -0.577350 -0:39 0.577350 -0:39 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:27 Constant: -0:27 0.577350 -0:27 0.577350 -0:27 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:28 Constant: -0:28 -0.577350 -0:28 -0.577350 -0:28 -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:29 Constant: -0:29 -0.577350 -0:29 -0.577350 -0:29 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:30 Constant: -0:30 -0.577350 -0:30 0.577350 -0:30 -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:31 Constant: -0:31 -0.577350 -0:31 0.577350 -0:31 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:32 Constant: -0:32 0.577350 -0:32 -0.577350 -0:32 -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:33 Constant: -0:33 0.577350 -0:33 -0.577350 -0:33 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:34 Constant: -0:34 0.577350 -0:34 0.577350 -0:34 -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:36 Constant: -0:36 -0.577350 -0:36 0.577350 -0:36 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:38 Constant: -0:38 -0.577350 -0:38 0.577350 -0:38 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:39 Constant: -0:39 -0.577350 -0:39 0.577350 -0:39 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): 8000a -// 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/Test/baseResults/hlsl.inoutquals.frag.out b/deps/glslang/Test/baseResults/hlsl.inoutquals.frag.out deleted file mode 100644 index 25186cb0..00000000 --- a/deps/glslang/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:22 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:22 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): 8000a -// 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/Test/baseResults/hlsl.inoutquals.negative.frag.out b/deps/glslang/Test/baseResults/hlsl.inoutquals.negative.frag.out deleted file mode 100644 index 933e6a6a..00000000 --- a/deps/glslang/Test/baseResults/hlsl.inoutquals.negative.frag.out +++ /dev/null @@ -1,43 +0,0 @@ -hlsl.inoutquals.negative.frag -ERROR: 0:1: 'invalid1' : in/out qualifiers are only valid on parameters -ERROR: 0:2: 'invalid2' : in/out qualifiers are only valid on parameters -ERROR: 0:3: 'invalid3' : in/out qualifiers are only valid on parameters -ERROR: 0:4: 'invalid4' : in/out qualifiers are only valid on parameters -ERROR: 4 compilation errors. No code generated. - - -Shader version: 500 -gl_FragCoord origin is upper left -ERROR: node is still EOpNull! -0:6 Function Definition: @main( ( temp void) -0:6 Function Parameters: -0:6 Function Definition: main( ( temp void) -0:6 Function Parameters: -0:? Sequence -0:6 Function Call: @main( ( temp void) -0:? Linker Objects -0:? 'invalid1' ( in float) -0:? 'invalid2' ( inout float) -0:? 'invalid3' ( inout float) -0:? 'invalid4' ( out float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -ERROR: node is still EOpNull! -0:6 Function Definition: @main( ( temp void) -0:6 Function Parameters: -0:6 Function Definition: main( ( temp void) -0:6 Function Parameters: -0:? Sequence -0:6 Function Call: @main( ( temp void) -0:? Linker Objects -0:? 'invalid1' ( in float) -0:? 'invalid2' ( inout float) -0:? 'invalid3' ( inout float) -0:? 'invalid4' ( out float) - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/hlsl.int.dot.frag.out b/deps/glslang/Test/baseResults/hlsl.int.dot.frag.out deleted file mode 100644 index 3272cb4c..00000000 --- a/deps/glslang/Test/baseResults/hlsl.int.dot.frag.out +++ /dev/null @@ -1,339 +0,0 @@ -hlsl.int.dot.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:1 Function Definition: @main( ( temp 4-component vector of float) -0:1 Function Parameters: -0:? Sequence -0:2 Sequence -0:2 move second child to first child ( temp int) -0:2 'i' ( temp int) -0:2 Constant: -0:2 1 (const int) -0:3 Sequence -0:3 move second child to first child ( temp 1-component vector of int) -0:3 'i2' ( temp 1-component vector of int) -0:3 Constant: -0:3 2 (const int) -0:4 Sequence -0:4 move second child to first child ( temp 2-component vector of int) -0:4 'i3' ( temp 2-component vector of int) -0:4 Constant: -0:4 3 (const int) -0:4 3 (const int) -0:5 Sequence -0:5 move second child to first child ( temp 3-component vector of int) -0:5 'i4' ( temp 3-component vector of int) -0:5 Constant: -0:5 4 (const int) -0:5 4 (const int) -0:5 4 (const int) -0:6 Sequence -0:6 move second child to first child ( temp 4-component vector of int) -0:6 'i5' ( temp 4-component vector of int) -0:6 Constant: -0:6 5 (const int) -0:6 5 (const int) -0:6 5 (const int) -0:6 5 (const int) -0:8 move second child to first child ( temp int) -0:8 'i' ( temp int) -0:8 dot-product ( temp int) -0:8 'i' ( temp int) -0:8 'i' ( temp int) -0:9 move second child to first child ( temp 1-component vector of int) -0:9 'i2' ( temp 1-component vector of int) -0:9 Construct int ( temp 1-component vector of int) -0:9 dot-product ( temp int) -0:9 Construct int ( in int) -0:9 'i2' ( temp 1-component vector of int) -0:9 Construct int ( in int) -0:9 'i2' ( temp 1-component vector of int) -0:10 move second child to first child ( temp 2-component vector of int) -0:10 'i3' ( temp 2-component vector of int) -0:10 Construct ivec2 ( temp 2-component vector of int) -0:10 dot-product ( temp int) -0:10 'i3' ( temp 2-component vector of int) -0:10 'i3' ( temp 2-component vector of int) -0:11 move second child to first child ( temp 3-component vector of int) -0:11 'i4' ( temp 3-component vector of int) -0:11 Construct ivec3 ( temp 3-component vector of int) -0:11 dot-product ( temp int) -0:11 'i4' ( temp 3-component vector of int) -0:11 'i4' ( temp 3-component vector of int) -0:12 move second child to first child ( temp 4-component vector of int) -0:12 'i5' ( temp 4-component vector of int) -0:12 Construct ivec4 ( temp 4-component vector of int) -0:12 dot-product ( temp int) -0:12 'i5' ( temp 4-component vector of int) -0:12 'i5' ( temp 4-component vector of int) -0:13 Branch: Return with expression -0:13 Convert int to float ( temp 4-component vector of float) -0:13 add ( temp 4-component vector of int) -0:13 add ( temp 4-component vector of int) -0:13 add ( temp 4-component vector of int) -0:13 add ( temp 4-component vector of int) -0:13 'i' ( temp int) -0:13 Construct ivec4 ( temp 4-component vector of int) -0:13 Construct int ( temp int) -0:13 'i2' ( temp 1-component vector of int) -0:13 vector swizzle ( temp 4-component vector of int) -0:13 'i3' ( temp 2-component vector of int) -0:13 Sequence -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 1 (const int) -0:13 vector swizzle ( temp 4-component vector of int) -0:13 'i4' ( temp 3-component vector of int) -0:13 Sequence -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 2 (const int) -0:13 Constant: -0:13 0 (const int) -0:13 'i5' ( temp 4-component vector of int) -0:1 Function Definition: main( ( temp void) -0:1 Function Parameters: -0:? Sequence -0:1 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:1 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:1 Function Definition: @main( ( temp 4-component vector of float) -0:1 Function Parameters: -0:? Sequence -0:2 Sequence -0:2 move second child to first child ( temp int) -0:2 'i' ( temp int) -0:2 Constant: -0:2 1 (const int) -0:3 Sequence -0:3 move second child to first child ( temp 1-component vector of int) -0:3 'i2' ( temp 1-component vector of int) -0:3 Constant: -0:3 2 (const int) -0:4 Sequence -0:4 move second child to first child ( temp 2-component vector of int) -0:4 'i3' ( temp 2-component vector of int) -0:4 Constant: -0:4 3 (const int) -0:4 3 (const int) -0:5 Sequence -0:5 move second child to first child ( temp 3-component vector of int) -0:5 'i4' ( temp 3-component vector of int) -0:5 Constant: -0:5 4 (const int) -0:5 4 (const int) -0:5 4 (const int) -0:6 Sequence -0:6 move second child to first child ( temp 4-component vector of int) -0:6 'i5' ( temp 4-component vector of int) -0:6 Constant: -0:6 5 (const int) -0:6 5 (const int) -0:6 5 (const int) -0:6 5 (const int) -0:8 move second child to first child ( temp int) -0:8 'i' ( temp int) -0:8 dot-product ( temp int) -0:8 'i' ( temp int) -0:8 'i' ( temp int) -0:9 move second child to first child ( temp 1-component vector of int) -0:9 'i2' ( temp 1-component vector of int) -0:9 Construct int ( temp 1-component vector of int) -0:9 dot-product ( temp int) -0:9 Construct int ( in int) -0:9 'i2' ( temp 1-component vector of int) -0:9 Construct int ( in int) -0:9 'i2' ( temp 1-component vector of int) -0:10 move second child to first child ( temp 2-component vector of int) -0:10 'i3' ( temp 2-component vector of int) -0:10 Construct ivec2 ( temp 2-component vector of int) -0:10 dot-product ( temp int) -0:10 'i3' ( temp 2-component vector of int) -0:10 'i3' ( temp 2-component vector of int) -0:11 move second child to first child ( temp 3-component vector of int) -0:11 'i4' ( temp 3-component vector of int) -0:11 Construct ivec3 ( temp 3-component vector of int) -0:11 dot-product ( temp int) -0:11 'i4' ( temp 3-component vector of int) -0:11 'i4' ( temp 3-component vector of int) -0:12 move second child to first child ( temp 4-component vector of int) -0:12 'i5' ( temp 4-component vector of int) -0:12 Construct ivec4 ( temp 4-component vector of int) -0:12 dot-product ( temp int) -0:12 'i5' ( temp 4-component vector of int) -0:12 'i5' ( temp 4-component vector of int) -0:13 Branch: Return with expression -0:13 Convert int to float ( temp 4-component vector of float) -0:13 add ( temp 4-component vector of int) -0:13 add ( temp 4-component vector of int) -0:13 add ( temp 4-component vector of int) -0:13 add ( temp 4-component vector of int) -0:13 'i' ( temp int) -0:13 Construct ivec4 ( temp 4-component vector of int) -0:13 Construct int ( temp int) -0:13 'i2' ( temp 1-component vector of int) -0:13 vector swizzle ( temp 4-component vector of int) -0:13 'i3' ( temp 2-component vector of int) -0:13 Sequence -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 1 (const int) -0:13 vector swizzle ( temp 4-component vector of int) -0:13 'i4' ( temp 3-component vector of int) -0:13 Sequence -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 2 (const int) -0:13 Constant: -0:13 0 (const int) -0:13 'i5' ( temp 4-component vector of int) -0:1 Function Definition: main( ( temp void) -0:1 Function Parameters: -0:? Sequence -0:1 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:1 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 10300 -// Generated by (magic number): 8000a -// Id's are bound by 84 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 82 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 9 "@main(" - Name 13 "i" - Name 15 "i2" - Name 19 "i3" - Name 24 "i4" - Name 29 "i5" - Name 82 "@entryPointOutput" - Decorate 82(@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 1 - 16: 11(int) Constant 2 - 17: TypeVector 11(int) 2 - 18: TypePointer Function 17(ivec2) - 20: 11(int) Constant 3 - 21: 17(ivec2) ConstantComposite 20 20 - 22: TypeVector 11(int) 3 - 23: TypePointer Function 22(ivec3) - 25: 11(int) Constant 4 - 26: 22(ivec3) ConstantComposite 25 25 25 - 27: TypeVector 11(int) 4 - 28: TypePointer Function 27(ivec4) - 30: 11(int) Constant 5 - 31: 27(ivec4) ConstantComposite 30 30 30 30 - 81: TypePointer Output 7(fvec4) -82(@entryPointOutput): 81(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 83: 7(fvec4) FunctionCall 9(@main() - Store 82(@entryPointOutput) 83 - Return - FunctionEnd - 9(@main(): 7(fvec4) Function None 8 - 10: Label - 13(i): 12(ptr) Variable Function - 15(i2): 12(ptr) Variable Function - 19(i3): 18(ptr) Variable Function - 24(i4): 23(ptr) Variable Function - 29(i5): 28(ptr) Variable Function - Store 13(i) 14 - Store 15(i2) 16 - Store 19(i3) 21 - Store 24(i4) 26 - Store 29(i5) 31 - 32: 11(int) Load 13(i) - 33: 11(int) Load 13(i) - 34: 11(int) IMul 32 33 - Store 13(i) 34 - 35: 11(int) Load 15(i2) - 36: 11(int) Load 15(i2) - 37: 11(int) IMul 35 36 - Store 15(i2) 37 - 38: 17(ivec2) Load 19(i3) - 39: 17(ivec2) Load 19(i3) - 40: 17(ivec2) IMul 38 39 - 41: 11(int) CompositeExtract 40 0 - 42: 11(int) CompositeExtract 40 1 - 43: 11(int) IAdd 41 42 - 44: 17(ivec2) CompositeConstruct 43 43 - Store 19(i3) 44 - 45: 22(ivec3) Load 24(i4) - 46: 22(ivec3) Load 24(i4) - 47: 22(ivec3) IMul 45 46 - 48: 11(int) CompositeExtract 47 0 - 49: 11(int) CompositeExtract 47 1 - 50: 11(int) IAdd 48 49 - 51: 11(int) CompositeExtract 47 2 - 52: 11(int) IAdd 50 51 - 53: 22(ivec3) CompositeConstruct 52 52 52 - Store 24(i4) 53 - 54: 27(ivec4) Load 29(i5) - 55: 27(ivec4) Load 29(i5) - 56: 27(ivec4) IMul 54 55 - 57: 11(int) CompositeExtract 56 0 - 58: 11(int) CompositeExtract 56 1 - 59: 11(int) IAdd 57 58 - 60: 11(int) CompositeExtract 56 2 - 61: 11(int) IAdd 59 60 - 62: 11(int) CompositeExtract 56 3 - 63: 11(int) IAdd 61 62 - 64: 27(ivec4) CompositeConstruct 63 63 63 63 - Store 29(i5) 64 - 65: 11(int) Load 13(i) - 66: 11(int) Load 15(i2) - 67: 27(ivec4) CompositeConstruct 66 66 66 66 - 68: 27(ivec4) CompositeConstruct 65 65 65 65 - 69: 27(ivec4) IAdd 68 67 - 70: 17(ivec2) Load 19(i3) - 71: 27(ivec4) VectorShuffle 70 70 0 1 0 1 - 72: 27(ivec4) IAdd 69 71 - 73: 22(ivec3) Load 24(i4) - 74: 27(ivec4) VectorShuffle 73 73 0 1 2 0 - 75: 27(ivec4) IAdd 72 74 - 76: 27(ivec4) Load 29(i5) - 77: 27(ivec4) IAdd 75 76 - 78: 7(fvec4) ConvertSToF 77 - ReturnValue 78 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.intrinsic.frexp.frag.out b/deps/glslang/Test/baseResults/hlsl.intrinsic.frexp.frag.out deleted file mode 100644 index 1595a609..00000000 --- a/deps/glslang/Test/baseResults/hlsl.intrinsic.frexp.frag.out +++ /dev/null @@ -1,336 +0,0 @@ -hlsl.intrinsic.frexp.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:3 Function Definition: PixelShaderFunctionS(f1;f1; ( temp float) -0:3 Function Parameters: -0:3 'inF0' ( in float) -0:3 'inF1' ( in float) -0:? Sequence -0:4 Sequence -0:4 move second child to first child ( temp float) -0:4 'r000' ( temp float) -0:4 frexp ( temp float) -0:4 'inF0' ( in float) -0:4 'inF1' ( in float) -0:5 Branch: Return with expression -0:5 Constant: -0:5 0.000000 -0:9 Function Definition: PixelShaderFunction2(vf2;vf2; ( temp 2-component vector of float) -0:9 Function Parameters: -0:9 'inF0' ( in 2-component vector of float) -0:9 'inF1' ( in 2-component vector of float) -0:? Sequence -0:10 Sequence -0:10 move second child to first child ( temp 2-component vector of float) -0:10 'r000' ( temp 2-component vector of float) -0:10 frexp ( temp 2-component vector of float) -0:10 'inF0' ( in 2-component vector of float) -0:10 'inF1' ( in 2-component vector of float) -0:11 Branch: Return with expression -0:11 Constant: -0:11 1.000000 -0:11 2.000000 -0:15 Function Definition: PixelShaderFunction3(vf3;vf3; ( temp 3-component vector of float) -0:15 Function Parameters: -0:15 'inF0' ( in 3-component vector of float) -0:15 'inF1' ( in 3-component vector of float) -0:? Sequence -0:16 Sequence -0:16 move second child to first child ( temp 3-component vector of float) -0:16 'r000' ( temp 3-component vector of float) -0:16 frexp ( temp 3-component vector of float) -0:16 'inF0' ( in 3-component vector of float) -0:16 'inF1' ( in 3-component vector of float) -0:17 Branch: Return with expression -0:17 Constant: -0:17 1.000000 -0:17 2.000000 -0:17 3.000000 -0:21 Function Definition: PixelShaderFunction(vf4;vf4; ( temp 4-component vector of float) -0:21 Function Parameters: -0:21 'inF0' ( in 4-component vector of float) -0:21 'inF1' ( in 4-component vector of float) -0:? Sequence -0:22 Sequence -0:22 move second child to first child ( temp 4-component vector of float) -0:22 'r000' ( temp 4-component vector of float) -0:22 frexp ( temp 4-component vector of float) -0:22 'inF0' ( in 4-component vector of float) -0:22 'inF1' ( in 4-component vector of float) -0:23 Branch: Return with expression -0:23 Constant: -0:23 1.000000 -0:23 2.000000 -0:23 3.000000 -0:23 4.000000 -0:33 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) -0:33 Function Parameters: -0:? Sequence -0:35 move second child to first child ( temp 4-component vector of float) -0:35 color: direct index for structure ( temp 4-component vector of float) -0:35 'ps_output' ( temp structure{ temp 4-component vector of float color}) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1.000000 -0:35 1.000000 -0:35 1.000000 -0:35 1.000000 -0:36 Branch: Return with expression -0:36 'ps_output' ( temp structure{ temp 4-component vector of float color}) -0:33 Function Definition: main( ( temp void) -0:33 Function Parameters: -0:? Sequence -0:33 Sequence -0:33 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) -0:33 color: direct index for structure ( temp 4-component vector of float) -0:33 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) -0:33 Constant: -0:33 0 (const int) -0:? Linker Objects -0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:3 Function Definition: PixelShaderFunctionS(f1;f1; ( temp float) -0:3 Function Parameters: -0:3 'inF0' ( in float) -0:3 'inF1' ( in float) -0:? Sequence -0:4 Sequence -0:4 move second child to first child ( temp float) -0:4 'r000' ( temp float) -0:4 frexp ( temp float) -0:4 'inF0' ( in float) -0:4 'inF1' ( in float) -0:5 Branch: Return with expression -0:5 Constant: -0:5 0.000000 -0:9 Function Definition: PixelShaderFunction2(vf2;vf2; ( temp 2-component vector of float) -0:9 Function Parameters: -0:9 'inF0' ( in 2-component vector of float) -0:9 'inF1' ( in 2-component vector of float) -0:? Sequence -0:10 Sequence -0:10 move second child to first child ( temp 2-component vector of float) -0:10 'r000' ( temp 2-component vector of float) -0:10 frexp ( temp 2-component vector of float) -0:10 'inF0' ( in 2-component vector of float) -0:10 'inF1' ( in 2-component vector of float) -0:11 Branch: Return with expression -0:11 Constant: -0:11 1.000000 -0:11 2.000000 -0:15 Function Definition: PixelShaderFunction3(vf3;vf3; ( temp 3-component vector of float) -0:15 Function Parameters: -0:15 'inF0' ( in 3-component vector of float) -0:15 'inF1' ( in 3-component vector of float) -0:? Sequence -0:16 Sequence -0:16 move second child to first child ( temp 3-component vector of float) -0:16 'r000' ( temp 3-component vector of float) -0:16 frexp ( temp 3-component vector of float) -0:16 'inF0' ( in 3-component vector of float) -0:16 'inF1' ( in 3-component vector of float) -0:17 Branch: Return with expression -0:17 Constant: -0:17 1.000000 -0:17 2.000000 -0:17 3.000000 -0:21 Function Definition: PixelShaderFunction(vf4;vf4; ( temp 4-component vector of float) -0:21 Function Parameters: -0:21 'inF0' ( in 4-component vector of float) -0:21 'inF1' ( in 4-component vector of float) -0:? Sequence -0:22 Sequence -0:22 move second child to first child ( temp 4-component vector of float) -0:22 'r000' ( temp 4-component vector of float) -0:22 frexp ( temp 4-component vector of float) -0:22 'inF0' ( in 4-component vector of float) -0:22 'inF1' ( in 4-component vector of float) -0:23 Branch: Return with expression -0:23 Constant: -0:23 1.000000 -0:23 2.000000 -0:23 3.000000 -0:23 4.000000 -0:33 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) -0:33 Function Parameters: -0:? Sequence -0:35 move second child to first child ( temp 4-component vector of float) -0:35 color: direct index for structure ( temp 4-component vector of float) -0:35 'ps_output' ( temp structure{ temp 4-component vector of float color}) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1.000000 -0:35 1.000000 -0:35 1.000000 -0:35 1.000000 -0:36 Branch: Return with expression -0:36 'ps_output' ( temp structure{ temp 4-component vector of float color}) -0:33 Function Definition: main( ( temp void) -0:33 Function Parameters: -0:? Sequence -0:33 Sequence -0:33 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) -0:33 color: direct index for structure ( temp 4-component vector of float) -0:33 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) -0:33 Constant: -0:33 0 (const int) -0:? Linker Objects -0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 98 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 95 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 11 "PixelShaderFunctionS(f1;f1;" - Name 9 "inF0" - Name 10 "inF1" - Name 18 "PixelShaderFunction2(vf2;vf2;" - Name 16 "inF0" - Name 17 "inF1" - Name 25 "PixelShaderFunction3(vf3;vf3;" - Name 23 "inF0" - Name 24 "inF1" - Name 32 "PixelShaderFunction(vf4;vf4;" - Name 30 "inF0" - Name 31 "inF1" - Name 34 "PS_OUTPUT" - MemberName 34(PS_OUTPUT) 0 "color" - Name 36 "@main(" - Name 38 "r000" - Name 41 "ResType" - Name 49 "r000" - Name 52 "ResType" - Name 62 "r000" - Name 65 "ResType" - Name 74 "r000" - Name 77 "ResType" - Name 87 "ps_output" - Name 95 "@entryPointOutput.color" - Decorate 95(@entryPointOutput.color) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypePointer Function 6(float) - 8: TypeFunction 6(float) 7(ptr) 7(ptr) - 13: TypeVector 6(float) 2 - 14: TypePointer Function 13(fvec2) - 15: TypeFunction 13(fvec2) 14(ptr) 14(ptr) - 20: TypeVector 6(float) 3 - 21: TypePointer Function 20(fvec3) - 22: TypeFunction 20(fvec3) 21(ptr) 21(ptr) - 27: TypeVector 6(float) 4 - 28: TypePointer Function 27(fvec4) - 29: TypeFunction 27(fvec4) 28(ptr) 28(ptr) - 34(PS_OUTPUT): TypeStruct 27(fvec4) - 35: TypeFunction 34(PS_OUTPUT) - 40: TypeInt 32 1 - 41(ResType): TypeStruct 6(float) 40(int) - 46: 6(float) Constant 0 - 51: TypeVector 40(int) 2 - 52(ResType): TypeStruct 13(fvec2) 51(ivec2) - 57: 6(float) Constant 1065353216 - 58: 6(float) Constant 1073741824 - 59: 13(fvec2) ConstantComposite 57 58 - 64: TypeVector 40(int) 3 - 65(ResType): TypeStruct 20(fvec3) 64(ivec3) - 70: 6(float) Constant 1077936128 - 71: 20(fvec3) ConstantComposite 57 58 70 - 76: TypeVector 40(int) 4 - 77(ResType): TypeStruct 27(fvec4) 76(ivec4) - 82: 6(float) Constant 1082130432 - 83: 27(fvec4) ConstantComposite 57 58 70 82 - 86: TypePointer Function 34(PS_OUTPUT) - 88: 40(int) Constant 0 - 89: 27(fvec4) ConstantComposite 57 57 57 57 - 94: TypePointer Output 27(fvec4) -95(@entryPointOutput.color): 94(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 96:34(PS_OUTPUT) FunctionCall 36(@main() - 97: 27(fvec4) CompositeExtract 96 0 - Store 95(@entryPointOutput.color) 97 - Return - FunctionEnd -11(PixelShaderFunctionS(f1;f1;): 6(float) Function None 8 - 9(inF0): 7(ptr) FunctionParameter - 10(inF1): 7(ptr) FunctionParameter - 12: Label - 38(r000): 7(ptr) Variable Function - 39: 6(float) Load 9(inF0) - 42: 41(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 39 - 43: 40(int) CompositeExtract 42 1 - 44: 6(float) ConvertSToF 43 - Store 10(inF1) 44 - 45: 6(float) CompositeExtract 42 0 - Store 38(r000) 45 - ReturnValue 46 - FunctionEnd -18(PixelShaderFunction2(vf2;vf2;): 13(fvec2) Function None 15 - 16(inF0): 14(ptr) FunctionParameter - 17(inF1): 14(ptr) FunctionParameter - 19: Label - 49(r000): 14(ptr) Variable Function - 50: 13(fvec2) Load 16(inF0) - 53: 52(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 50 - 54: 51(ivec2) CompositeExtract 53 1 - 55: 13(fvec2) ConvertSToF 54 - Store 17(inF1) 55 - 56: 13(fvec2) CompositeExtract 53 0 - Store 49(r000) 56 - ReturnValue 59 - FunctionEnd -25(PixelShaderFunction3(vf3;vf3;): 20(fvec3) Function None 22 - 23(inF0): 21(ptr) FunctionParameter - 24(inF1): 21(ptr) FunctionParameter - 26: Label - 62(r000): 21(ptr) Variable Function - 63: 20(fvec3) Load 23(inF0) - 66: 65(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 63 - 67: 64(ivec3) CompositeExtract 66 1 - 68: 20(fvec3) ConvertSToF 67 - Store 24(inF1) 68 - 69: 20(fvec3) CompositeExtract 66 0 - Store 62(r000) 69 - ReturnValue 71 - FunctionEnd -32(PixelShaderFunction(vf4;vf4;): 27(fvec4) Function None 29 - 30(inF0): 28(ptr) FunctionParameter - 31(inF1): 28(ptr) FunctionParameter - 33: Label - 74(r000): 28(ptr) Variable Function - 75: 27(fvec4) Load 30(inF0) - 78: 77(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 75 - 79: 76(ivec4) CompositeExtract 78 1 - 80: 27(fvec4) ConvertSToF 79 - Store 31(inF1) 80 - 81: 27(fvec4) CompositeExtract 78 0 - Store 74(r000) 81 - ReturnValue 83 - FunctionEnd - 36(@main():34(PS_OUTPUT) Function None 35 - 37: Label - 87(ps_output): 86(ptr) Variable Function - 90: 28(ptr) AccessChain 87(ps_output) 88 - Store 90 89 - 91:34(PS_OUTPUT) Load 87(ps_output) - ReturnValue 91 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.intrinsic.frexp.vert.out b/deps/glslang/Test/baseResults/hlsl.intrinsic.frexp.vert.out deleted file mode 100644 index 0418ed6c..00000000 --- a/deps/glslang/Test/baseResults/hlsl.intrinsic.frexp.vert.out +++ /dev/null @@ -1,222 +0,0 @@ -hlsl.intrinsic.frexp.vert -Shader version: 500 -0:? Sequence -0:2 Function Definition: VertexShaderFunctionS(f1;f1; ( temp float) -0:2 Function Parameters: -0:2 'inF0' ( in float) -0:2 'inF1' ( in float) -0:? Sequence -0:3 frexp ( temp float) -0:3 'inF0' ( in float) -0:3 'inF1' ( in float) -0:4 Branch: Return with expression -0:4 Constant: -0:4 0.000000 -0:8 Function Definition: VertexShaderFunction2(vf2;vf2; ( temp 2-component vector of float) -0:8 Function Parameters: -0:8 'inF0' ( in 2-component vector of float) -0:8 'inF1' ( in 2-component vector of float) -0:? Sequence -0:9 frexp ( temp 2-component vector of float) -0:9 'inF0' ( in 2-component vector of float) -0:9 'inF1' ( in 2-component vector of float) -0:10 Branch: Return with expression -0:10 Constant: -0:10 1.000000 -0:10 2.000000 -0:14 Function Definition: VertexShaderFunction3(vf3;vf3; ( temp 3-component vector of float) -0:14 Function Parameters: -0:14 'inF0' ( in 3-component vector of float) -0:14 'inF1' ( in 3-component vector of float) -0:? Sequence -0:15 frexp ( temp 3-component vector of float) -0:15 'inF0' ( in 3-component vector of float) -0:15 'inF1' ( in 3-component vector of float) -0:16 Branch: Return with expression -0:16 Constant: -0:16 1.000000 -0:16 2.000000 -0:16 3.000000 -0:20 Function Definition: VertexShaderFunction4(vf4;vf4; ( temp 4-component vector of float) -0:20 Function Parameters: -0:20 'inF0' ( in 4-component vector of float) -0:20 'inF1' ( in 4-component vector of float) -0:? Sequence -0:21 frexp ( temp 4-component vector of float) -0:21 'inF0' ( in 4-component vector of float) -0:21 'inF1' ( in 4-component vector of float) -0:22 Branch: Return with expression -0:22 Constant: -0:22 1.000000 -0:22 2.000000 -0:22 3.000000 -0:22 4.000000 -0:? Linker Objects - - -Linked vertex stage: - -WARNING: Linking vertex stage: Entry point not found - -Shader version: 500 -0:? Sequence -0:2 Function Definition: VertexShaderFunctionS(f1;f1; ( temp float) -0:2 Function Parameters: -0:2 'inF0' ( in float) -0:2 'inF1' ( in float) -0:? Sequence -0:3 frexp ( temp float) -0:3 'inF0' ( in float) -0:3 'inF1' ( in float) -0:4 Branch: Return with expression -0:4 Constant: -0:4 0.000000 -0:8 Function Definition: VertexShaderFunction2(vf2;vf2; ( temp 2-component vector of float) -0:8 Function Parameters: -0:8 'inF0' ( in 2-component vector of float) -0:8 'inF1' ( in 2-component vector of float) -0:? Sequence -0:9 frexp ( temp 2-component vector of float) -0:9 'inF0' ( in 2-component vector of float) -0:9 'inF1' ( in 2-component vector of float) -0:10 Branch: Return with expression -0:10 Constant: -0:10 1.000000 -0:10 2.000000 -0:14 Function Definition: VertexShaderFunction3(vf3;vf3; ( temp 3-component vector of float) -0:14 Function Parameters: -0:14 'inF0' ( in 3-component vector of float) -0:14 'inF1' ( in 3-component vector of float) -0:? Sequence -0:15 frexp ( temp 3-component vector of float) -0:15 'inF0' ( in 3-component vector of float) -0:15 'inF1' ( in 3-component vector of float) -0:16 Branch: Return with expression -0:16 Constant: -0:16 1.000000 -0:16 2.000000 -0:16 3.000000 -0:20 Function Definition: VertexShaderFunction4(vf4;vf4; ( temp 4-component vector of float) -0:20 Function Parameters: -0:20 'inF0' ( in 4-component vector of float) -0:20 'inF1' ( in 4-component vector of float) -0:? Sequence -0:21 frexp ( temp 4-component vector of float) -0:21 'inF0' ( in 4-component vector of float) -0:21 'inF1' ( in 4-component vector of float) -0:22 Branch: Return with expression -0:22 Constant: -0:22 1.000000 -0:22 2.000000 -0:22 3.000000 -0:22 4.000000 -0:? Linker Objects - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 78 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "VertexShaderFunction" - Source HLSL 500 - Name 4 "VertexShaderFunction" - Name 11 "VertexShaderFunctionS(f1;f1;" - Name 9 "inF0" - Name 10 "inF1" - Name 18 "VertexShaderFunction2(vf2;vf2;" - Name 16 "inF0" - Name 17 "inF1" - Name 25 "VertexShaderFunction3(vf3;vf3;" - Name 23 "inF0" - Name 24 "inF1" - Name 32 "VertexShaderFunction4(vf4;vf4;" - Name 30 "inF0" - Name 31 "inF1" - Name 36 "ResType" - Name 46 "ResType" - Name 58 "ResType" - Name 69 "ResType" - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypePointer Function 6(float) - 8: TypeFunction 6(float) 7(ptr) 7(ptr) - 13: TypeVector 6(float) 2 - 14: TypePointer Function 13(fvec2) - 15: TypeFunction 13(fvec2) 14(ptr) 14(ptr) - 20: TypeVector 6(float) 3 - 21: TypePointer Function 20(fvec3) - 22: TypeFunction 20(fvec3) 21(ptr) 21(ptr) - 27: TypeVector 6(float) 4 - 28: TypePointer Function 27(fvec4) - 29: TypeFunction 27(fvec4) 28(ptr) 28(ptr) - 35: TypeInt 32 1 - 36(ResType): TypeStruct 6(float) 35(int) - 41: 6(float) Constant 0 - 45: TypeVector 35(int) 2 - 46(ResType): TypeStruct 13(fvec2) 45(ivec2) - 51: 6(float) Constant 1065353216 - 52: 6(float) Constant 1073741824 - 53: 13(fvec2) ConstantComposite 51 52 - 57: TypeVector 35(int) 3 - 58(ResType): TypeStruct 20(fvec3) 57(ivec3) - 63: 6(float) Constant 1077936128 - 64: 20(fvec3) ConstantComposite 51 52 63 - 68: TypeVector 35(int) 4 - 69(ResType): TypeStruct 27(fvec4) 68(ivec4) - 74: 6(float) Constant 1082130432 - 75: 27(fvec4) ConstantComposite 51 52 63 74 -4(VertexShaderFunction): 2 Function None 3 - 5: Label - Return - FunctionEnd -11(VertexShaderFunctionS(f1;f1;): 6(float) Function None 8 - 9(inF0): 7(ptr) FunctionParameter - 10(inF1): 7(ptr) FunctionParameter - 12: Label - 34: 6(float) Load 9(inF0) - 37: 36(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 34 - 38: 35(int) CompositeExtract 37 1 - 39: 6(float) ConvertSToF 38 - Store 10(inF1) 39 - 40: 6(float) CompositeExtract 37 0 - ReturnValue 41 - FunctionEnd -18(VertexShaderFunction2(vf2;vf2;): 13(fvec2) Function None 15 - 16(inF0): 14(ptr) FunctionParameter - 17(inF1): 14(ptr) FunctionParameter - 19: Label - 44: 13(fvec2) Load 16(inF0) - 47: 46(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 44 - 48: 45(ivec2) CompositeExtract 47 1 - 49: 13(fvec2) ConvertSToF 48 - Store 17(inF1) 49 - 50: 13(fvec2) CompositeExtract 47 0 - ReturnValue 53 - FunctionEnd -25(VertexShaderFunction3(vf3;vf3;): 20(fvec3) Function None 22 - 23(inF0): 21(ptr) FunctionParameter - 24(inF1): 21(ptr) FunctionParameter - 26: Label - 56: 20(fvec3) Load 23(inF0) - 59: 58(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 56 - 60: 57(ivec3) CompositeExtract 59 1 - 61: 20(fvec3) ConvertSToF 60 - Store 24(inF1) 61 - 62: 20(fvec3) CompositeExtract 59 0 - ReturnValue 64 - FunctionEnd -32(VertexShaderFunction4(vf4;vf4;): 27(fvec4) Function None 29 - 30(inF0): 28(ptr) FunctionParameter - 31(inF1): 28(ptr) FunctionParameter - 33: Label - 67: 27(fvec4) Load 30(inF0) - 70: 69(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 67 - 71: 68(ivec4) CompositeExtract 70 1 - 72: 27(fvec4) ConvertSToF 71 - Store 31(inF1) 72 - 73: 27(fvec4) CompositeExtract 70 0 - ReturnValue 75 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.intrinsics.barriers.comp.out b/deps/glslang/Test/baseResults/hlsl.intrinsics.barriers.comp.out deleted file mode 100644 index abb9650f..00000000 --- a/deps/glslang/Test/baseResults/hlsl.intrinsics.barriers.comp.out +++ /dev/null @@ -1,76 +0,0 @@ -hlsl.intrinsics.barriers.comp -Shader version: 500 -local_size = (1, 1, 1) -0:? Sequence -0:3 Function Definition: @ComputeShaderFunction( ( temp void) -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:3 Function Definition: ComputeShaderFunction( ( temp void) -0:3 Function Parameters: -0:? Sequence -0:3 Function Call: @ComputeShaderFunction( ( temp void) -0:? Linker Objects - - -Linked compute stage: - - -Shader version: 500 -local_size = (1, 1, 1) -0:? Sequence -0:3 Function Definition: @ComputeShaderFunction( ( temp void) -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:3 Function Definition: ComputeShaderFunction( ( temp void) -0:3 Function Parameters: -0:? Sequence -0:3 Function Call: @ComputeShaderFunction( ( temp void) -0:? Linker Objects - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 15 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "ComputeShaderFunction" - ExecutionMode 4 LocalSize 1 1 1 - Source HLSL 500 - Name 4 "ComputeShaderFunction" - Name 6 "@ComputeShaderFunction(" - 2: TypeVoid - 3: TypeFunction 2 - 8: TypeInt 32 0 - 9: 8(int) Constant 1 - 10: 8(int) Constant 3400 - 11: 8(int) Constant 2 - 12: 8(int) Constant 2120 - 13: 8(int) Constant 264 -4(ComputeShaderFunction): 2 Function None 3 - 5: Label - 14: 2 FunctionCall 6(@ComputeShaderFunction() - Return - FunctionEnd -6(@ComputeShaderFunction(): 2 Function None 3 - 7: Label - MemoryBarrier 9 10 - ControlBarrier 11 9 10 - MemoryBarrier 9 12 - ControlBarrier 11 9 12 - MemoryBarrier 11 13 - ControlBarrier 11 11 13 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.intrinsics.comp.out b/deps/glslang/Test/baseResults/hlsl.intrinsics.comp.out deleted file mode 100644 index bce3d149..00000000 --- a/deps/glslang/Test/baseResults/hlsl.intrinsics.comp.out +++ /dev/null @@ -1,1103 +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:74 Constant: -0:74 1.000000 -0:74 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:101 Constant: -0:101 1.000000 -0:101 2.000000 -0:101 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:128 Constant: -0:128 1.000000 -0:128 2.000000 -0:128 3.000000 -0:128 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:74 Constant: -0:74 1.000000 -0:74 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:101 Constant: -0:101 1.000000 -0:101 2.000000 -0:101 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:128 Constant: -0:128 1.000000 -0:128 2.000000 -0:128 3.000000 -0:128 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) - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// 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) FUnordNotEqual 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) FUnordNotEqual 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) FUnordNotEqual 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) FUnordNotEqual 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/Test/baseResults/hlsl.intrinsics.d3dcolortoubyte4.frag.out b/deps/glslang/Test/baseResults/hlsl.intrinsics.d3dcolortoubyte4.frag.out deleted file mode 100644 index b0eeaa9a..00000000 --- a/deps/glslang/Test/baseResults/hlsl.intrinsics.d3dcolortoubyte4.frag.out +++ /dev/null @@ -1,126 +0,0 @@ -hlsl.intrinsics.d3dcolortoubyte4.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:5 Function Definition: @main( ( temp 4-component vector of int) -0:5 Function Parameters: -0:? Sequence -0:6 Branch: Return with expression -0:6 Convert float to int ( temp 4-component vector of int) -0:6 vector-scale ( temp 4-component vector of float) -0:6 Constant: -0:6 255.001953 -0:6 vector swizzle ( temp 4-component vector of float) -0:6 col4: direct index for structure ( uniform 4-component vector of float) -0:6 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float col4}) -0:6 Constant: -0:6 0 (const uint) -0:6 Sequence -0:6 Constant: -0:6 2 (const int) -0:6 Constant: -0:6 1 (const int) -0:6 Constant: -0:6 0 (const int) -0:6 Constant: -0:6 3 (const int) -0:5 Function Definition: main( ( temp void) -0:5 Function Parameters: -0:? Sequence -0:5 move second child to first child ( temp 4-component vector of int) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of int) -0:5 Function Call: @main( ( temp 4-component vector of int) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float col4}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of int) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:5 Function Definition: @main( ( temp 4-component vector of int) -0:5 Function Parameters: -0:? Sequence -0:6 Branch: Return with expression -0:6 Convert float to int ( temp 4-component vector of int) -0:6 vector-scale ( temp 4-component vector of float) -0:6 Constant: -0:6 255.001953 -0:6 vector swizzle ( temp 4-component vector of float) -0:6 col4: direct index for structure ( uniform 4-component vector of float) -0:6 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float col4}) -0:6 Constant: -0:6 0 (const uint) -0:6 Sequence -0:6 Constant: -0:6 2 (const int) -0:6 Constant: -0:6 1 (const int) -0:6 Constant: -0:6 0 (const int) -0:6 Constant: -0:6 3 (const int) -0:5 Function Definition: main( ( temp void) -0:5 Function Parameters: -0:? Sequence -0:5 move second child to first child ( temp 4-component vector of int) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of int) -0:5 Function Call: @main( ( temp 4-component vector of int) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float col4}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of int) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 29 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 27 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 9 "@main(" - Name 14 "$Global" - MemberName 14($Global) 0 "col4" - Name 16 "" - Name 27 "@entryPointOutput" - MemberDecorate 14($Global) 0 Offset 0 - Decorate 14($Global) Block - Decorate 16 DescriptorSet 0 - Decorate 16 Binding 0 - Decorate 27(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypeVector 6(int) 4 - 8: TypeFunction 7(ivec4) - 11: TypeFloat 32 - 12: 11(float) Constant 1132396672 - 13: TypeVector 11(float) 4 - 14($Global): TypeStruct 13(fvec4) - 15: TypePointer Uniform 14($Global) - 16: 15(ptr) Variable Uniform - 17: 6(int) Constant 0 - 18: TypePointer Uniform 13(fvec4) - 26: TypePointer Output 7(ivec4) -27(@entryPointOutput): 26(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 28: 7(ivec4) FunctionCall 9(@main() - Store 27(@entryPointOutput) 28 - Return - FunctionEnd - 9(@main(): 7(ivec4) Function None 8 - 10: Label - 19: 18(ptr) AccessChain 16 17 - 20: 13(fvec4) Load 19 - 21: 13(fvec4) VectorShuffle 20 20 2 1 0 3 - 22: 13(fvec4) VectorTimesScalar 21 12 - 23: 7(ivec4) ConvertFToS 22 - ReturnValue 23 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.intrinsics.double.frag.out b/deps/glslang/Test/baseResults/hlsl.intrinsics.double.frag.out deleted file mode 100644 index 8444e20a..00000000 --- a/deps/glslang/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): 8000a -// 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/Test/baseResults/hlsl.intrinsics.f1632.frag.out b/deps/glslang/Test/baseResults/hlsl.intrinsics.f1632.frag.out deleted file mode 100644 index 90a4b989..00000000 --- a/deps/glslang/Test/baseResults/hlsl.intrinsics.f1632.frag.out +++ /dev/null @@ -1,402 +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 Construct float ( temp 1-component vector of float) -0:8 direct index ( temp float) -0:8 unpackHalf2x16 ( temp 2-component vector of float) -0:8 Construct uint ( in uint) -0:8 'inF0' ( in 1-component vector of uint) -0:8 Constant: -0:8 0 (const int) -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 Construct float ( temp 1-component vector of float) -0:8 direct index ( temp float) -0:8 unpackHalf2x16 ( temp 2-component vector of float) -0:8 Construct uint ( in uint) -0:8 'inF0' ( in 1-component vector of uint) -0:8 Constant: -0:8 0 (const int) -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): 8000a -// Id's are bound by 106 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 104 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 11 "PixelShaderFunctionS(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 104 "@entryPointOutput" - Decorate 104(@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 - 55: 6(int) Constant 1 - 71: 6(int) Constant 2 - 91: 6(int) Constant 3 - 99: 8(float) Constant 0 - 100: 32(fvec4) ConstantComposite 99 99 99 99 - 103: TypePointer Output 32(fvec4) -104(@entryPointOutput): 103(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 105: 32(fvec4) FunctionCall 38(@main() - Store 104(@entryPointOutput) 105 - 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 - 46: 6(int) Load 13(inF0) - 47: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 46 - 48: 8(float) CompositeExtract 47 0 - ReturnValue 48 - FunctionEnd -21(PixelShaderFunction2(vu2;): 18(fvec2) Function None 19 - 20(inF0): 17(ptr) FunctionParameter - 22: Label - 51: 7(ptr) AccessChain 20(inF0) 42 - 52: 6(int) Load 51 - 53: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 52 - 54: 8(float) CompositeExtract 53 0 - 56: 7(ptr) AccessChain 20(inF0) 55 - 57: 6(int) Load 56 - 58: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 57 - 59: 8(float) CompositeExtract 58 0 - 60: 18(fvec2) CompositeConstruct 54 59 - ReturnValue 60 - FunctionEnd -28(PixelShaderFunction3(vu3;): 25(fvec3) Function None 26 - 27(inF0): 24(ptr) FunctionParameter - 29: Label - 63: 7(ptr) AccessChain 27(inF0) 42 - 64: 6(int) Load 63 - 65: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 64 - 66: 8(float) CompositeExtract 65 0 - 67: 7(ptr) AccessChain 27(inF0) 55 - 68: 6(int) Load 67 - 69: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 68 - 70: 8(float) CompositeExtract 69 0 - 72: 7(ptr) AccessChain 27(inF0) 71 - 73: 6(int) Load 72 - 74: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 73 - 75: 8(float) CompositeExtract 74 0 - 76: 25(fvec3) CompositeConstruct 66 70 75 - ReturnValue 76 - FunctionEnd -35(PixelShaderFunction(vu4;): 32(fvec4) Function None 33 - 34(inF0): 31(ptr) FunctionParameter - 36: Label - 79: 7(ptr) AccessChain 34(inF0) 42 - 80: 6(int) Load 79 - 81: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 80 - 82: 8(float) CompositeExtract 81 0 - 83: 7(ptr) AccessChain 34(inF0) 55 - 84: 6(int) Load 83 - 85: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 84 - 86: 8(float) CompositeExtract 85 0 - 87: 7(ptr) AccessChain 34(inF0) 71 - 88: 6(int) Load 87 - 89: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 88 - 90: 8(float) CompositeExtract 89 0 - 92: 7(ptr) AccessChain 34(inF0) 91 - 93: 6(int) Load 92 - 94: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 93 - 95: 8(float) CompositeExtract 94 0 - 96: 32(fvec4) CompositeConstruct 82 86 90 95 - ReturnValue 96 - FunctionEnd - 38(@main(): 32(fvec4) Function None 37 - 39: Label - ReturnValue 100 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.intrinsics.f3216.frag.out b/deps/glslang/Test/baseResults/hlsl.intrinsics.f3216.frag.out deleted file mode 100644 index ddf9a708..00000000 --- a/deps/glslang/Test/baseResults/hlsl.intrinsics.f3216.frag.out +++ /dev/null @@ -1,402 +0,0 @@ -hlsl.intrinsics.f3216.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:2 Function Definition: PixelShaderFunctionS(f1; ( temp uint) -0:2 Function Parameters: -0:2 'inF0' ( in float) -0:? Sequence -0:3 Branch: Return with expression -0:3 packHalf2x16 ( temp uint) -0:3 Construct vec2 ( temp 2-component vector of float) -0:3 'inF0' ( in float) -0:3 Constant: -0:3 0.000000 -0:7 Function Definition: PixelShaderFunction1(vf1; ( temp 1-component vector of uint) -0:7 Function Parameters: -0:7 'inF0' ( in 1-component vector of float) -0:? Sequence -0:8 Branch: Return with expression -0:8 Construct uint ( temp 1-component vector of uint) -0:8 packHalf2x16 ( temp uint) -0:8 Construct vec2 ( temp 2-component vector of float) -0:8 Construct float ( in float) -0:8 'inF0' ( in 1-component vector of float) -0:8 Constant: -0:8 0.000000 -0:12 Function Definition: PixelShaderFunction2(vf2; ( temp 2-component vector of uint) -0:12 Function Parameters: -0:12 'inF0' ( in 2-component vector of float) -0:? Sequence -0:13 Branch: Return with expression -0:13 Construct uvec2 ( temp 2-component vector of uint) -0:13 packHalf2x16 ( temp uint) -0:13 Construct vec2 ( temp 2-component vector of float) -0:13 direct index ( temp float) -0:13 'inF0' ( in 2-component vector of float) -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 0.000000 -0:13 packHalf2x16 ( temp uint) -0:13 Construct vec2 ( temp 2-component vector of float) -0:13 direct index ( temp float) -0:13 'inF0' ( in 2-component vector of float) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 0.000000 -0:17 Function Definition: PixelShaderFunction3(vf3; ( temp 3-component vector of uint) -0:17 Function Parameters: -0:17 'inF0' ( in 3-component vector of float) -0:? Sequence -0:18 Branch: Return with expression -0:18 Construct uvec3 ( temp 3-component vector of uint) -0:18 packHalf2x16 ( temp uint) -0:18 Construct vec2 ( temp 2-component vector of float) -0:18 direct index ( temp float) -0:18 'inF0' ( in 3-component vector of float) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0.000000 -0:18 packHalf2x16 ( temp uint) -0:18 Construct vec2 ( temp 2-component vector of float) -0:18 direct index ( temp float) -0:18 'inF0' ( in 3-component vector of float) -0:18 Constant: -0:18 1 (const int) -0:18 Constant: -0:18 0.000000 -0:18 packHalf2x16 ( temp uint) -0:18 Construct vec2 ( temp 2-component vector of float) -0:18 direct index ( temp float) -0:18 'inF0' ( in 3-component vector of float) -0:18 Constant: -0:18 2 (const int) -0:18 Constant: -0:18 0.000000 -0:22 Function Definition: PixelShaderFunction(vf4; ( temp 4-component vector of uint) -0:22 Function Parameters: -0:22 'inF0' ( in 4-component vector of float) -0:? Sequence -0:23 Branch: Return with expression -0:23 Construct uvec4 ( temp 4-component vector of uint) -0:23 packHalf2x16 ( temp uint) -0:23 Construct vec2 ( temp 2-component vector of float) -0:23 direct index ( temp float) -0:23 'inF0' ( in 4-component vector of float) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 0.000000 -0:23 packHalf2x16 ( temp uint) -0:23 Construct vec2 ( temp 2-component vector of float) -0:23 direct index ( temp float) -0:23 'inF0' ( in 4-component vector of float) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 0.000000 -0:23 packHalf2x16 ( temp uint) -0:23 Construct vec2 ( temp 2-component vector of float) -0:23 direct index ( temp float) -0:23 'inF0' ( in 4-component vector of float) -0:23 Constant: -0:23 2 (const int) -0:23 Constant: -0:23 0.000000 -0:23 packHalf2x16 ( temp uint) -0:23 Construct vec2 ( temp 2-component vector of float) -0:23 direct index ( temp float) -0:23 'inF0' ( in 4-component vector of float) -0:23 Constant: -0:23 3 (const int) -0:23 Constant: -0:23 0.000000 -0:27 Function Definition: @main( ( temp 4-component vector of float) -0:27 Function Parameters: -0:? Sequence -0:28 Branch: Return with expression -0:28 Constant: -0:28 0.000000 -0:28 0.000000 -0:28 0.000000 -0:28 0.000000 -0:27 Function Definition: main( ( temp void) -0:27 Function Parameters: -0:? Sequence -0:27 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:27 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:2 Function Definition: PixelShaderFunctionS(f1; ( temp uint) -0:2 Function Parameters: -0:2 'inF0' ( in float) -0:? Sequence -0:3 Branch: Return with expression -0:3 packHalf2x16 ( temp uint) -0:3 Construct vec2 ( temp 2-component vector of float) -0:3 'inF0' ( in float) -0:3 Constant: -0:3 0.000000 -0:7 Function Definition: PixelShaderFunction1(vf1; ( temp 1-component vector of uint) -0:7 Function Parameters: -0:7 'inF0' ( in 1-component vector of float) -0:? Sequence -0:8 Branch: Return with expression -0:8 Construct uint ( temp 1-component vector of uint) -0:8 packHalf2x16 ( temp uint) -0:8 Construct vec2 ( temp 2-component vector of float) -0:8 Construct float ( in float) -0:8 'inF0' ( in 1-component vector of float) -0:8 Constant: -0:8 0.000000 -0:12 Function Definition: PixelShaderFunction2(vf2; ( temp 2-component vector of uint) -0:12 Function Parameters: -0:12 'inF0' ( in 2-component vector of float) -0:? Sequence -0:13 Branch: Return with expression -0:13 Construct uvec2 ( temp 2-component vector of uint) -0:13 packHalf2x16 ( temp uint) -0:13 Construct vec2 ( temp 2-component vector of float) -0:13 direct index ( temp float) -0:13 'inF0' ( in 2-component vector of float) -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 0.000000 -0:13 packHalf2x16 ( temp uint) -0:13 Construct vec2 ( temp 2-component vector of float) -0:13 direct index ( temp float) -0:13 'inF0' ( in 2-component vector of float) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 0.000000 -0:17 Function Definition: PixelShaderFunction3(vf3; ( temp 3-component vector of uint) -0:17 Function Parameters: -0:17 'inF0' ( in 3-component vector of float) -0:? Sequence -0:18 Branch: Return with expression -0:18 Construct uvec3 ( temp 3-component vector of uint) -0:18 packHalf2x16 ( temp uint) -0:18 Construct vec2 ( temp 2-component vector of float) -0:18 direct index ( temp float) -0:18 'inF0' ( in 3-component vector of float) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0.000000 -0:18 packHalf2x16 ( temp uint) -0:18 Construct vec2 ( temp 2-component vector of float) -0:18 direct index ( temp float) -0:18 'inF0' ( in 3-component vector of float) -0:18 Constant: -0:18 1 (const int) -0:18 Constant: -0:18 0.000000 -0:18 packHalf2x16 ( temp uint) -0:18 Construct vec2 ( temp 2-component vector of float) -0:18 direct index ( temp float) -0:18 'inF0' ( in 3-component vector of float) -0:18 Constant: -0:18 2 (const int) -0:18 Constant: -0:18 0.000000 -0:22 Function Definition: PixelShaderFunction(vf4; ( temp 4-component vector of uint) -0:22 Function Parameters: -0:22 'inF0' ( in 4-component vector of float) -0:? Sequence -0:23 Branch: Return with expression -0:23 Construct uvec4 ( temp 4-component vector of uint) -0:23 packHalf2x16 ( temp uint) -0:23 Construct vec2 ( temp 2-component vector of float) -0:23 direct index ( temp float) -0:23 'inF0' ( in 4-component vector of float) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 0.000000 -0:23 packHalf2x16 ( temp uint) -0:23 Construct vec2 ( temp 2-component vector of float) -0:23 direct index ( temp float) -0:23 'inF0' ( in 4-component vector of float) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 0.000000 -0:23 packHalf2x16 ( temp uint) -0:23 Construct vec2 ( temp 2-component vector of float) -0:23 direct index ( temp float) -0:23 'inF0' ( in 4-component vector of float) -0:23 Constant: -0:23 2 (const int) -0:23 Constant: -0:23 0.000000 -0:23 packHalf2x16 ( temp uint) -0:23 Construct vec2 ( temp 2-component vector of float) -0:23 direct index ( temp float) -0:23 'inF0' ( in 4-component vector of float) -0:23 Constant: -0:23 3 (const int) -0:23 Constant: -0:23 0.000000 -0:27 Function Definition: @main( ( temp 4-component vector of float) -0:27 Function Parameters: -0:? Sequence -0:28 Branch: Return with expression -0:28 Constant: -0:28 0.000000 -0:28 0.000000 -0:28 0.000000 -0:28 0.000000 -0:27 Function Definition: main( ( temp void) -0:27 Function Parameters: -0:? Sequence -0:27 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:27 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 106 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 104 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 11 "PixelShaderFunctionS(f1;" - Name 10 "inF0" - Name 14 "PixelShaderFunction1(vf1;" - Name 13 "inF0" - Name 21 "PixelShaderFunction2(vf2;" - Name 20 "inF0" - Name 28 "PixelShaderFunction3(vf3;" - Name 27 "inF0" - Name 35 "PixelShaderFunction(vf4;" - Name 34 "inF0" - Name 38 "@main(" - Name 104 "@entryPointOutput" - Decorate 104(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypePointer Function 6(float) - 8: TypeInt 32 0 - 9: TypeFunction 8(int) 7(ptr) - 16: TypeVector 6(float) 2 - 17: TypePointer Function 16(fvec2) - 18: TypeVector 8(int) 2 - 19: TypeFunction 18(ivec2) 17(ptr) - 23: TypeVector 6(float) 3 - 24: TypePointer Function 23(fvec3) - 25: TypeVector 8(int) 3 - 26: TypeFunction 25(ivec3) 24(ptr) - 30: TypeVector 6(float) 4 - 31: TypePointer Function 30(fvec4) - 32: TypeVector 8(int) 4 - 33: TypeFunction 32(ivec4) 31(ptr) - 37: TypeFunction 30(fvec4) - 41: 6(float) Constant 0 - 51: 8(int) Constant 0 - 56: 8(int) Constant 1 - 72: 8(int) Constant 2 - 92: 8(int) Constant 3 - 100: 30(fvec4) ConstantComposite 41 41 41 41 - 103: TypePointer Output 30(fvec4) -104(@entryPointOutput): 103(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 105: 30(fvec4) FunctionCall 38(@main() - Store 104(@entryPointOutput) 105 - Return - FunctionEnd -11(PixelShaderFunctionS(f1;): 8(int) Function None 9 - 10(inF0): 7(ptr) FunctionParameter - 12: Label - 40: 6(float) Load 10(inF0) - 42: 16(fvec2) CompositeConstruct 40 41 - 43: 8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 42 - ReturnValue 43 - FunctionEnd -14(PixelShaderFunction1(vf1;): 8(int) Function None 9 - 13(inF0): 7(ptr) FunctionParameter - 15: Label - 46: 6(float) Load 13(inF0) - 47: 16(fvec2) CompositeConstruct 46 41 - 48: 8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 47 - ReturnValue 48 - FunctionEnd -21(PixelShaderFunction2(vf2;): 18(ivec2) Function None 19 - 20(inF0): 17(ptr) FunctionParameter - 22: Label - 52: 7(ptr) AccessChain 20(inF0) 51 - 53: 6(float) Load 52 - 54: 16(fvec2) CompositeConstruct 53 41 - 55: 8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 54 - 57: 7(ptr) AccessChain 20(inF0) 56 - 58: 6(float) Load 57 - 59: 16(fvec2) CompositeConstruct 58 41 - 60: 8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 59 - 61: 18(ivec2) CompositeConstruct 55 60 - ReturnValue 61 - FunctionEnd -28(PixelShaderFunction3(vf3;): 25(ivec3) Function None 26 - 27(inF0): 24(ptr) FunctionParameter - 29: Label - 64: 7(ptr) AccessChain 27(inF0) 51 - 65: 6(float) Load 64 - 66: 16(fvec2) CompositeConstruct 65 41 - 67: 8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 66 - 68: 7(ptr) AccessChain 27(inF0) 56 - 69: 6(float) Load 68 - 70: 16(fvec2) CompositeConstruct 69 41 - 71: 8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 70 - 73: 7(ptr) AccessChain 27(inF0) 72 - 74: 6(float) Load 73 - 75: 16(fvec2) CompositeConstruct 74 41 - 76: 8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 75 - 77: 25(ivec3) CompositeConstruct 67 71 76 - ReturnValue 77 - FunctionEnd -35(PixelShaderFunction(vf4;): 32(ivec4) Function None 33 - 34(inF0): 31(ptr) FunctionParameter - 36: Label - 80: 7(ptr) AccessChain 34(inF0) 51 - 81: 6(float) Load 80 - 82: 16(fvec2) CompositeConstruct 81 41 - 83: 8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 82 - 84: 7(ptr) AccessChain 34(inF0) 56 - 85: 6(float) Load 84 - 86: 16(fvec2) CompositeConstruct 85 41 - 87: 8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 86 - 88: 7(ptr) AccessChain 34(inF0) 72 - 89: 6(float) Load 88 - 90: 16(fvec2) CompositeConstruct 89 41 - 91: 8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 90 - 93: 7(ptr) AccessChain 34(inF0) 92 - 94: 6(float) Load 93 - 95: 16(fvec2) CompositeConstruct 94 41 - 96: 8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 95 - 97: 32(ivec4) CompositeConstruct 83 87 91 96 - ReturnValue 97 - FunctionEnd - 38(@main(): 30(fvec4) Function None 37 - 39: Label - ReturnValue 100 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.intrinsics.frag.out b/deps/glslang/Test/baseResults/hlsl.intrinsics.frag.out deleted file mode 100644 index 02b1e6d1..00000000 --- a/deps/glslang/Test/baseResults/hlsl.intrinsics.frag.out +++ /dev/null @@ -1,8496 +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:45 Sequence -0:45 move second child to first child ( temp float) -0:45 'r024' ( temp float) -0:45 distance ( temp float) -0:45 'inF0' ( in float) -0:45 'inF1' ( in float) -0:49 Sequence -0:49 move second child to first child ( temp float) -0:49 'r027' ( temp float) -0:49 exp ( temp float) -0:49 'inF0' ( in float) -0:50 Sequence -0:50 move second child to first child ( temp float) -0:50 'r028' ( temp float) -0:50 exp2 ( temp float) -0:50 'inF0' ( in float) -0:51 Sequence -0:51 move second child to first child ( temp uint) -0:51 'r029' ( temp uint) -0:51 Convert int to uint ( temp uint) -0:51 findMSB ( temp int) -0:51 Constant: -0:51 7 (const int) -0:52 Sequence -0:52 move second child to first child ( temp uint) -0:52 'r030' ( temp uint) -0:52 Convert int to uint ( temp uint) -0:52 findLSB ( temp int) -0:52 Constant: -0:52 7 (const int) -0:53 Sequence -0:53 move second child to first child ( temp float) -0:53 'r031' ( temp float) -0:53 Floor ( temp float) -0:53 'inF0' ( in float) -0:55 Sequence -0:55 move second child to first child ( temp float) -0:55 'r033' ( temp float) -0:55 mod ( 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 'r033i' ( temp float) -0:56 mod ( temp float) -0:56 'inF0' ( in float) -0:56 Constant: -0:56 2.000000 -0:57 Sequence -0:57 move second child to first child ( temp float) -0:57 'r034' ( temp float) -0:57 Fraction ( temp float) -0:57 'inF0' ( in float) -0:58 Sequence -0:58 move second child to first child ( temp float) -0:58 'r036' ( temp float) -0:58 fwidth ( temp float) -0:58 'inF0' ( in float) -0:59 Sequence -0:59 move second child to first child ( temp bool) -0:59 'r037' ( temp bool) -0:59 isinf ( temp bool) -0:59 'inF0' ( in float) -0:60 Sequence -0:60 move second child to first child ( temp bool) -0:60 'r038' ( temp bool) -0:60 isnan ( temp bool) -0:60 'inF0' ( in float) -0:61 Sequence -0:61 move second child to first child ( temp float) -0:61 'r039' ( temp float) -0:61 ldexp ( temp float) -0:61 'inF0' ( in float) -0:61 'inF1' ( in float) -0:62 Sequence -0:62 move second child to first child ( temp float) -0:62 'r039a' ( temp float) -0:62 mix ( temp float) -0:62 'inF0' ( in float) -0:62 'inF1' ( in float) -0:62 'inF2' ( in float) -0:63 Sequence -0:63 move second child to first child ( temp float) -0:63 'r040' ( temp float) -0:63 log ( temp float) -0:63 'inF0' ( in float) -0:64 Sequence -0:64 move second child to first child ( temp float) -0:64 'r041' ( temp float) -0:64 component-wise multiply ( temp float) -0:64 log2 ( temp float) -0:64 'inF0' ( in float) -0:64 Constant: -0:64 0.301030 -0:65 Sequence -0:65 move second child to first child ( temp float) -0:65 'r042' ( temp float) -0:65 log2 ( temp float) -0:65 'inF0' ( in float) -0:66 Sequence -0:66 move second child to first child ( temp float) -0:66 'r043' ( temp float) -0:66 max ( 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 'r044' ( temp float) -0:67 min ( temp float) -0:67 'inF0' ( in float) -0:67 'inF1' ( in float) -0:68 Sequence -0:68 move second child to first child ( temp float) -0:68 'r045' ( temp float) -0:68 pow ( temp float) -0:68 'inF0' ( in float) -0:68 'inF1' ( in float) -0:69 Sequence -0:69 move second child to first child ( temp float) -0:69 'r046' ( temp float) -0:69 radians ( temp float) -0:69 'inF0' ( in float) -0:70 Sequence -0:70 move second child to first child ( temp float) -0:70 'r047' ( temp float) -0:70 divide ( temp float) -0:70 Constant: -0:70 1.000000 -0:70 'inF0' ( in float) -0:71 Sequence -0:71 move second child to first child ( temp uint) -0:71 'r048' ( temp uint) -0:71 Convert int to uint ( temp uint) -0:71 bitFieldReverse ( temp int) -0:71 Constant: -0:71 2 (const int) -0:72 Sequence -0:72 move second child to first child ( temp float) -0:72 'r049' ( temp float) -0:72 roundEven ( temp float) -0:72 'inF0' ( in float) -0:73 Sequence -0:73 move second child to first child ( temp float) -0:73 'r050' ( temp float) -0:73 inverse sqrt ( temp float) -0:73 'inF0' ( in float) -0:74 Sequence -0:74 move second child to first child ( temp float) -0:74 'r051' ( temp float) -0:74 clamp ( temp float) -0:74 'inF0' ( in float) -0:74 Constant: -0:74 0.000000 -0:74 Constant: -0:74 1.000000 -0:75 Sequence -0:75 move second child to first child ( temp float) -0:75 'r052' ( temp float) -0:75 Sign ( temp float) -0:75 'inF0' ( in float) -0:76 Sequence -0:76 move second child to first child ( temp float) -0:76 'r053' ( temp float) -0:76 sine ( temp float) -0:76 'inF0' ( in float) -0:77 Sequence -0:77 move second child to first child ( temp float) -0:77 'inF1' ( in float) -0:77 sine ( temp float) -0:77 'inF0' ( in float) -0:77 move second child to first child ( temp float) -0:77 'inF2' ( in float) -0:77 cosine ( temp float) -0:77 'inF0' ( in float) -0:78 Sequence -0:78 move second child to first child ( temp float) -0:78 'r055' ( temp float) -0:78 hyp. sine ( temp float) -0:78 'inF0' ( in float) -0:79 Sequence -0:79 move second child to first child ( temp float) -0:79 'r056' ( temp float) -0:79 smoothstep ( temp float) -0:79 'inF0' ( in float) -0:79 'inF1' ( in float) -0:79 'inF2' ( in float) -0:80 Sequence -0:80 move second child to first child ( temp float) -0:80 'r057' ( temp float) -0:80 sqrt ( temp float) -0:80 'inF0' ( in float) -0:81 Sequence -0:81 move second child to first child ( temp float) -0:81 'r058' ( temp float) -0:81 step ( temp float) -0:81 'inF0' ( in float) -0:81 'inF1' ( in float) -0:82 Sequence -0:82 move second child to first child ( temp float) -0:82 'r059' ( temp float) -0:82 tangent ( temp float) -0:82 'inF0' ( in float) -0:83 Sequence -0:83 move second child to first child ( temp float) -0:83 'r060' ( temp float) -0:83 hyp. tangent ( temp float) -0:83 'inF0' ( in float) -0:85 Sequence -0:85 move second child to first child ( temp float) -0:85 'r061' ( temp float) -0:85 trunc ( temp float) -0:85 'inF0' ( in float) -0:87 Branch: Return with expression -0:87 Constant: -0:87 0.000000 -0:91 Function Definition: PixelShaderFunction1(vf1;vf1;vf1; ( temp 1-component vector of float) -0:91 Function Parameters: -0:91 'inF0' ( in 1-component vector of float) -0:91 'inF1' ( in 1-component vector of float) -0:91 'inF2' ( in 1-component vector of float) -0:? Sequence -0:93 Branch: Return with expression -0:93 Constant: -0:93 0.000000 -0:97 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vu2;vu2; ( temp 2-component vector of float) -0:97 Function Parameters: -0:97 'inF0' ( in 2-component vector of float) -0:97 'inF1' ( in 2-component vector of float) -0:97 'inF2' ( in 2-component vector of float) -0:97 'inU0' ( in 2-component vector of uint) -0:97 'inU1' ( in 2-component vector of uint) -0:? Sequence -0:100 Sequence -0:100 move second child to first child ( temp bool) -0:100 'r000' ( temp bool) -0:100 all ( temp bool) -0:100 Convert float to bool ( temp 2-component vector of bool) -0:100 'inF0' ( in 2-component vector of float) -0:101 Sequence -0:101 move second child to first child ( temp 2-component vector of float) -0:101 'r001' ( temp 2-component vector of float) -0:101 Absolute value ( temp 2-component vector of float) -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 'r002' ( temp 2-component vector of float) -0:102 arc cosine ( 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 bool) -0:103 'r003' ( temp bool) -0:103 any ( temp bool) -0:103 Convert float to bool ( temp 2-component vector of bool) -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 float) -0:104 'r004' ( temp 2-component vector of float) -0:104 arc sine ( temp 2-component vector of float) -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 int) -0:105 'r005' ( temp 2-component vector of int) -0:105 floatBitsToInt ( temp 2-component vector of int) -0:105 'inF0' ( in 2-component vector of float) -0:106 Sequence -0:106 move second child to first child ( temp 2-component vector of uint) -0:106 'r006' ( temp 2-component vector of uint) -0:106 floatBitsToUint ( temp 2-component vector of uint) -0:106 'inF0' ( in 2-component vector of float) -0:107 Sequence -0:107 move second child to first child ( temp 2-component vector of float) -0:107 'r007' ( temp 2-component vector of float) -0:107 intBitsToFloat ( temp 2-component vector of float) -0:107 'inU0' ( in 2-component vector of uint) -0:109 Sequence -0:109 move second child to first child ( temp 2-component vector of float) -0:109 'r009' ( temp 2-component vector of float) -0:109 arc tangent ( 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 'r010' ( temp 2-component vector of float) -0:110 arc tangent ( 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:111 Sequence -0:111 move second child to first child ( temp 2-component vector of float) -0:111 'r011' ( temp 2-component vector of float) -0:111 Ceiling ( temp 2-component vector of float) -0:111 'inF0' ( in 2-component vector of float) -0:112 Sequence -0:112 move second child to first child ( temp 2-component vector of float) -0:112 'r012' ( temp 2-component vector of float) -0:112 clamp ( 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:112 'inF2' ( in 2-component vector of float) -0:113 Test condition and select ( temp void) -0:113 Condition -0:113 any ( temp bool) -0:113 Compare Less Than ( temp 2-component vector of bool) -0:113 'inF0' ( in 2-component vector of float) -0:113 Constant: -0:113 0.000000 -0:113 0.000000 -0:113 true case -0:113 Branch: Kill -0:114 Test condition and select ( temp void) -0:114 Condition -0:114 any ( temp bool) -0:114 Compare Less Than ( temp 2-component vector of bool) -0:114 'inU0' ( in 2-component vector of uint) -0:114 Constant: -0:114 0.000000 -0:114 0.000000 -0:114 true case -0:114 Branch: Kill -0:115 Sequence -0:115 move second child to first child ( temp 2-component vector of float) -0:115 'r013' ( temp 2-component vector of float) -0:115 cosine ( 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 'r015' ( temp 2-component vector of float) -0:116 hyp. cosine ( 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 int) -0:117 'r016' ( temp 2-component vector of int) -0:117 bitCount ( temp 2-component vector of int) -0:117 Constant: -0:117 7 (const int) -0:117 3 (const int) -0:118 Sequence -0:118 move second child to first child ( temp 2-component vector of float) -0:118 'r017' ( temp 2-component vector of float) -0:118 dPdx ( 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 'r018' ( temp 2-component vector of float) -0:119 dPdxCoarse ( 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 'r019' ( temp 2-component vector of float) -0:120 dPdxFine ( 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 'r020' ( temp 2-component vector of float) -0:121 dPdy ( 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 'r021' ( temp 2-component vector of float) -0:122 dPdyCoarse ( 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 'r022' ( temp 2-component vector of float) -0:123 dPdyFine ( temp 2-component vector of float) -0:123 'inF0' ( in 2-component vector of float) -0:124 Sequence -0:124 move second child to first child ( temp 2-component vector of float) -0:124 'r023' ( temp 2-component vector of float) -0:124 degrees ( temp 2-component vector of float) -0:124 'inF0' ( in 2-component vector of float) -0:128 Sequence -0:128 move second child to first child ( temp float) -0:128 'r026' ( temp float) -0:128 distance ( temp float) -0:128 'inF0' ( in 2-component vector of float) -0:128 'inF1' ( in 2-component vector of float) -0:129 Sequence -0:129 move second child to first child ( temp float) -0:129 'r027' ( temp float) -0:129 dot-product ( temp float) -0:129 'inF0' ( in 2-component vector of float) -0:129 'inF1' ( 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 'r028' ( temp 2-component vector of float) -0:133 exp ( temp 2-component vector of float) -0:133 'inF0' ( in 2-component vector of float) -0:134 Sequence -0:134 move second child to first child ( temp 2-component vector of float) -0:134 'r029' ( temp 2-component vector of float) -0:134 exp2 ( temp 2-component vector of float) -0:134 'inF0' ( in 2-component vector of float) -0:135 Sequence -0:135 move second child to first child ( temp 2-component vector of float) -0:135 'r030' ( temp 2-component vector of float) -0:135 face-forward ( temp 2-component vector of float) -0:135 'inF0' ( in 2-component vector of float) -0:135 'inF1' ( in 2-component vector of float) -0:135 'inF2' ( in 2-component vector of float) -0:136 Sequence -0:136 move second child to first child ( temp 2-component vector of uint) -0:136 'r031' ( temp 2-component vector of uint) -0:136 findMSB ( temp 2-component vector of uint) -0:136 Constant: -0:136 7 (const uint) -0:136 8 (const uint) -0:137 Sequence -0:137 move second child to first child ( temp 2-component vector of uint) -0:137 'r032' ( temp 2-component vector of uint) -0:137 findLSB ( temp 2-component vector of uint) -0:137 Constant: -0:137 7 (const uint) -0:137 8 (const uint) -0:138 Sequence -0:138 move second child to first child ( temp 2-component vector of float) -0:138 'r033' ( temp 2-component vector of float) -0:138 Floor ( temp 2-component vector of float) -0:138 '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 'r035' ( temp 2-component vector of float) -0:140 mod ( temp 2-component vector of float) -0:140 'inF0' ( in 2-component vector of float) -0:140 'inF1' ( in 2-component vector of float) -0:141 Sequence -0:141 move second child to first child ( temp 2-component vector of float) -0:141 'r036' ( temp 2-component vector of float) -0:141 Fraction ( temp 2-component vector of float) -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 float) -0:142 'r038' ( temp 2-component vector of float) -0:142 fwidth ( temp 2-component vector of float) -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 bool) -0:143 'r039' ( temp 2-component vector of bool) -0:143 isinf ( temp 2-component vector of bool) -0:143 'inF0' ( in 2-component vector of float) -0:144 Sequence -0:144 move second child to first child ( temp 2-component vector of bool) -0:144 'r040' ( temp 2-component vector of bool) -0:144 isnan ( temp 2-component vector of bool) -0:144 'inF0' ( in 2-component vector of float) -0:145 Sequence -0:145 move second child to first child ( temp 2-component vector of float) -0:145 'r041' ( temp 2-component vector of float) -0:145 ldexp ( temp 2-component vector of float) -0:145 'inF0' ( in 2-component vector of float) -0:145 'inF1' ( in 2-component vector of float) -0:146 Sequence -0:146 move second child to first child ( temp 2-component vector of float) -0:146 'r039a' ( temp 2-component vector of float) -0:146 mix ( temp 2-component vector of float) -0:146 'inF0' ( in 2-component vector of float) -0:146 'inF1' ( in 2-component vector of float) -0:146 'inF2' ( in 2-component vector of float) -0:147 Sequence -0:147 move second child to first child ( temp float) -0:147 'r042' ( temp float) -0:147 length ( temp float) -0:147 'inF0' ( in 2-component vector of float) -0:148 Sequence -0:148 move second child to first child ( temp 2-component vector of float) -0:148 'r043' ( temp 2-component vector of float) -0:148 log ( 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 'r044' ( temp 2-component vector of float) -0:149 vector-scale ( temp 2-component vector of float) -0:149 log2 ( temp 2-component vector of float) -0:149 'inF0' ( in 2-component vector of float) -0:149 Constant: -0:149 0.301030 -0:150 Sequence -0:150 move second child to first child ( temp 2-component vector of float) -0:150 'r045' ( temp 2-component vector of float) -0:150 log2 ( temp 2-component vector of float) -0:150 'inF0' ( 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 'r046' ( temp 2-component vector of float) -0:151 max ( temp 2-component vector of float) -0:151 'inF0' ( in 2-component vector of float) -0:151 'inF1' ( in 2-component vector of float) -0:152 Sequence -0:152 move second child to first child ( temp 2-component vector of float) -0:152 'r047' ( temp 2-component vector of float) -0:152 min ( 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 'r048' ( temp 2-component vector of float) -0:153 normalize ( 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 'r049' ( temp 2-component vector of float) -0:154 pow ( temp 2-component vector of float) -0:154 'inF0' ( in 2-component vector of float) -0:154 'inF1' ( 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 'r050' ( temp 2-component vector of float) -0:155 radians ( temp 2-component vector of float) -0:155 'inF0' ( 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 'r051' ( temp 2-component vector of float) -0:156 divide ( temp 2-component vector of float) -0:156 Constant: -0:156 1.000000 -0:156 'inF0' ( in 2-component vector of float) -0:157 Sequence -0:157 move second child to first child ( temp 2-component vector of float) -0:157 'r052' ( temp 2-component vector of float) -0:157 reflect ( temp 2-component vector of float) -0:157 'inF0' ( in 2-component vector of float) -0:157 'inF1' ( in 2-component vector of float) -0:158 Sequence -0:158 move second child to first child ( temp 2-component vector of float) -0:158 'r053' ( temp 2-component vector of float) -0:158 refract ( temp 2-component vector of float) -0:158 'inF0' ( in 2-component vector of float) -0:158 'inF1' ( in 2-component vector of float) -0:158 Constant: -0:158 2.000000 -0:159 Sequence -0:159 move second child to first child ( temp 2-component vector of uint) -0:159 'r054' ( temp 2-component vector of uint) -0:159 bitFieldReverse ( temp 2-component vector of uint) -0:159 Constant: -0:159 1 (const uint) -0:159 2 (const uint) -0:160 Sequence -0:160 move second child to first child ( temp 2-component vector of float) -0:160 'r055' ( temp 2-component vector of float) -0:160 roundEven ( temp 2-component vector of float) -0:160 'inF0' ( in 2-component vector of float) -0:161 Sequence -0:161 move second child to first child ( temp 2-component vector of float) -0:161 'r056' ( temp 2-component vector of float) -0:161 inverse sqrt ( 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 'r057' ( temp 2-component vector of float) -0:162 clamp ( temp 2-component vector of float) -0:162 'inF0' ( in 2-component vector of float) -0:162 Constant: -0:162 0.000000 -0:162 Constant: -0:162 1.000000 -0:163 Sequence -0:163 move second child to first child ( temp 2-component vector of float) -0:163 'r058' ( temp 2-component vector of float) -0:163 Sign ( 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 'r059' ( temp 2-component vector of float) -0:164 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 'inF1' ( in 2-component vector of float) -0:165 sine ( temp 2-component vector of float) -0:165 'inF0' ( in 2-component vector of float) -0:165 move second child to first child ( temp 2-component vector of float) -0:165 'inF2' ( in 2-component vector of float) -0:165 cosine ( temp 2-component vector of float) -0:165 'inF0' ( 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 'r060' ( temp 2-component vector of float) -0:166 hyp. sine ( 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 'r061' ( temp 2-component vector of float) -0:167 smoothstep ( 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 'inF2' ( 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 'r062' ( temp 2-component vector of float) -0:168 sqrt ( 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 'r063' ( temp 2-component vector of float) -0:169 step ( temp 2-component vector of float) -0:169 'inF0' ( in 2-component vector of float) -0:169 'inF1' ( in 2-component vector of float) -0:170 Sequence -0:170 move second child to first child ( temp 2-component vector of float) -0:170 'r064' ( temp 2-component vector of float) -0:170 tangent ( temp 2-component vector of float) -0:170 '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 'r065' ( temp 2-component vector of float) -0:171 hyp. tangent ( temp 2-component vector of float) -0:171 'inF0' ( in 2-component vector of float) -0:173 Sequence -0:173 move second child to first child ( temp 2-component vector of float) -0:173 'r066' ( temp 2-component vector of float) -0:173 trunc ( temp 2-component vector of float) -0:173 'inF0' ( in 2-component vector of float) -0:176 Branch: Return with expression -0:176 Constant: -0:176 1.000000 -0:176 2.000000 -0:180 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3; ( temp 3-component vector of float) -0:180 Function Parameters: -0:180 'inF0' ( in 3-component vector of float) -0:180 'inF1' ( in 3-component vector of float) -0:180 'inF2' ( in 3-component vector of float) -0:180 'inU0' ( in 3-component vector of uint) -0:180 'inU1' ( in 3-component vector of uint) -0:? Sequence -0:183 Sequence -0:183 move second child to first child ( temp bool) -0:183 'r000' ( temp bool) -0:183 all ( temp bool) -0:183 Convert float to bool ( temp 3-component vector of bool) -0:183 'inF0' ( in 3-component vector of float) -0:184 Sequence -0:184 move second child to first child ( temp 3-component vector of float) -0:184 'r001' ( temp 3-component vector of float) -0:184 Absolute value ( temp 3-component vector of float) -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 'r002' ( temp 3-component vector of float) -0:185 arc cosine ( 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 bool) -0:186 'r003' ( temp bool) -0:186 any ( temp bool) -0:186 Convert float to bool ( temp 3-component vector of bool) -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 float) -0:187 'r004' ( temp 3-component vector of float) -0:187 arc sine ( temp 3-component vector of float) -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 int) -0:188 'r005' ( temp 3-component vector of int) -0:188 floatBitsToInt ( temp 3-component vector of int) -0:188 'inF0' ( in 3-component vector of float) -0:189 Sequence -0:189 move second child to first child ( temp 3-component vector of uint) -0:189 'r006' ( temp 3-component vector of uint) -0:189 floatBitsToUint ( temp 3-component vector of uint) -0:189 'inF0' ( in 3-component vector of float) -0:190 Sequence -0:190 move second child to first child ( temp 3-component vector of float) -0:190 'r007' ( temp 3-component vector of float) -0:190 intBitsToFloat ( temp 3-component vector of float) -0:190 'inU0' ( in 3-component vector of uint) -0:192 Sequence -0:192 move second child to first child ( temp 3-component vector of float) -0:192 'r009' ( temp 3-component vector of float) -0:192 arc tangent ( 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 'r010' ( temp 3-component vector of float) -0:193 arc tangent ( temp 3-component vector of float) -0:193 'inF0' ( in 3-component vector of float) -0:193 'inF1' ( in 3-component vector of float) -0:194 Sequence -0:194 move second child to first child ( temp 3-component vector of float) -0:194 'r011' ( temp 3-component vector of float) -0:194 Ceiling ( temp 3-component vector of float) -0:194 'inF0' ( in 3-component vector of float) -0:195 Sequence -0:195 move second child to first child ( temp 3-component vector of float) -0:195 'r012' ( temp 3-component vector of float) -0:195 clamp ( 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 Test condition and select ( temp void) -0:196 Condition -0:196 any ( temp bool) -0:196 Compare Less Than ( temp 3-component vector of bool) -0:196 'inF0' ( in 3-component vector of float) -0:196 Constant: -0:196 0.000000 -0:196 0.000000 -0:196 0.000000 -0:196 true case -0:196 Branch: Kill -0:197 Test condition and select ( temp void) -0:197 Condition -0:197 any ( temp bool) -0:197 Compare Less Than ( temp 3-component vector of bool) -0:197 'inU0' ( in 3-component vector of uint) -0:197 Constant: -0:197 0.000000 -0:197 0.000000 -0:197 0.000000 -0:197 true case -0:197 Branch: Kill -0:198 Sequence -0:198 move second child to first child ( temp 3-component vector of float) -0:198 'r013' ( temp 3-component vector of float) -0:198 cosine ( temp 3-component vector of float) -0:198 'inF0' ( 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 'r014' ( temp 3-component vector of float) -0:199 hyp. cosine ( 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 uint) -0:200 'r015' ( temp 3-component vector of uint) -0:200 bitCount ( temp 3-component vector of uint) -0:200 Constant: -0:200 7 (const uint) -0:200 3 (const uint) -0:200 5 (const uint) -0:201 Sequence -0:201 move second child to first child ( temp 3-component vector of float) -0:201 'r016' ( temp 3-component vector of float) -0:201 cross-product ( temp 3-component vector of float) -0:201 'inF0' ( in 3-component vector of float) -0:201 'inF1' ( in 3-component vector of float) -0:202 Sequence -0:202 move second child to first child ( temp 3-component vector of float) -0:202 'r017' ( temp 3-component vector of float) -0:202 dPdx ( 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 'r018' ( temp 3-component vector of float) -0:203 dPdxCoarse ( 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 'r019' ( temp 3-component vector of float) -0:204 dPdxFine ( 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 'r020' ( temp 3-component vector of float) -0:205 dPdy ( 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 'r021' ( temp 3-component vector of float) -0:206 dPdyCoarse ( 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 3-component vector of float) -0:207 'r022' ( temp 3-component vector of float) -0:207 dPdyFine ( temp 3-component vector of float) -0:207 'inF0' ( in 3-component vector of float) -0:208 Sequence -0:208 move second child to first child ( temp 3-component vector of float) -0:208 'r023' ( temp 3-component vector of float) -0:208 degrees ( temp 3-component vector of float) -0:208 'inF0' ( in 3-component vector of float) -0:209 Sequence -0:209 move second child to first child ( temp float) -0:209 'r024' ( temp float) -0:209 distance ( temp float) -0:209 'inF0' ( in 3-component vector of float) -0:209 'inF1' ( in 3-component vector of float) -0:210 Sequence -0:210 move second child to first child ( temp float) -0:210 'r025' ( temp float) -0:210 dot-product ( temp float) -0:210 'inF0' ( in 3-component vector of float) -0:210 'inF1' ( 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 'r029' ( temp 3-component vector of float) -0:214 exp ( temp 3-component vector of float) -0:214 'inF0' ( in 3-component vector of float) -0:215 Sequence -0:215 move second child to first child ( temp 3-component vector of float) -0:215 'r030' ( temp 3-component vector of float) -0:215 exp2 ( temp 3-component vector of float) -0:215 'inF0' ( in 3-component vector of float) -0:216 Sequence -0:216 move second child to first child ( temp 3-component vector of float) -0:216 'r031' ( temp 3-component vector of float) -0:216 face-forward ( temp 3-component vector of float) -0:216 'inF0' ( in 3-component vector of float) -0:216 'inF1' ( in 3-component vector of float) -0:216 'inF2' ( in 3-component vector of float) -0:217 Sequence -0:217 move second child to first child ( temp 3-component vector of uint) -0:217 'r032' ( temp 3-component vector of uint) -0:217 findMSB ( temp 3-component vector of uint) -0:217 Constant: -0:217 2 (const uint) -0:217 3 (const uint) -0:217 4 (const uint) -0:218 Sequence -0:218 move second child to first child ( temp 3-component vector of uint) -0:218 'r033' ( temp 3-component vector of uint) -0:218 findLSB ( temp 3-component vector of uint) -0:218 Constant: -0:218 2 (const uint) -0:218 3 (const uint) -0:218 4 (const uint) -0:219 Sequence -0:219 move second child to first child ( temp 3-component vector of float) -0:219 'r034' ( temp 3-component vector of float) -0:219 Floor ( temp 3-component vector of float) -0:219 '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 'r036' ( temp 3-component vector of float) -0:221 mod ( temp 3-component vector of float) -0:221 'inF0' ( in 3-component vector of float) -0:221 'inF1' ( in 3-component vector of float) -0:222 Sequence -0:222 move second child to first child ( temp 3-component vector of float) -0:222 'r037' ( temp 3-component vector of float) -0:222 Fraction ( temp 3-component vector of float) -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 float) -0:223 'r039' ( temp 3-component vector of float) -0:223 fwidth ( temp 3-component vector of float) -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 bool) -0:224 'r040' ( temp 3-component vector of bool) -0:224 isinf ( temp 3-component vector of bool) -0:224 'inF0' ( in 3-component vector of float) -0:225 Sequence -0:225 move second child to first child ( temp 3-component vector of bool) -0:225 'r041' ( temp 3-component vector of bool) -0:225 isnan ( temp 3-component vector of bool) -0:225 'inF0' ( 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 'r042' ( temp 3-component vector of float) -0:226 ldexp ( 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:227 Sequence -0:227 move second child to first child ( temp 3-component vector of float) -0:227 'r039a' ( temp 3-component vector of float) -0:227 mix ( temp 3-component vector of float) -0:227 'inF0' ( in 3-component vector of float) -0:227 'inF1' ( in 3-component vector of float) -0:227 'inF2' ( 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 'r039b' ( temp 3-component vector of float) -0:228 mix ( temp 3-component vector of float) -0:228 'inF0' ( in 3-component vector of float) -0:228 'inF1' ( in 3-component vector of float) -0:228 Constant: -0:228 0.300000 -0:229 Sequence -0:229 move second child to first child ( temp float) -0:229 'r043' ( temp float) -0:229 length ( temp float) -0:229 'inF0' ( in 3-component vector of float) -0:230 Sequence -0:230 move second child to first child ( temp 3-component vector of float) -0:230 'r044' ( temp 3-component vector of float) -0:230 log ( 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 'r045' ( temp 3-component vector of float) -0:231 vector-scale ( temp 3-component vector of float) -0:231 log2 ( temp 3-component vector of float) -0:231 'inF0' ( in 3-component vector of float) -0:231 Constant: -0:231 0.301030 -0:232 Sequence -0:232 move second child to first child ( temp 3-component vector of float) -0:232 'r046' ( temp 3-component vector of float) -0:232 log2 ( temp 3-component vector of float) -0:232 'inF0' ( in 3-component vector of float) -0:233 Sequence -0:233 move second child to first child ( temp 3-component vector of float) -0:233 'r047' ( temp 3-component vector of float) -0:233 max ( temp 3-component vector of float) -0:233 'inF0' ( in 3-component vector of float) -0:233 'inF1' ( in 3-component vector of float) -0:234 Sequence -0:234 move second child to first child ( temp 3-component vector of float) -0:234 'r048' ( temp 3-component vector of float) -0:234 min ( 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 'r049' ( temp 3-component vector of float) -0:235 normalize ( 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 'r050' ( temp 3-component vector of float) -0:236 pow ( temp 3-component vector of float) -0:236 'inF0' ( in 3-component vector of float) -0:236 'inF1' ( in 3-component vector of float) -0:237 Sequence -0:237 move second child to first child ( temp 3-component vector of float) -0:237 'r051' ( temp 3-component vector of float) -0:237 radians ( temp 3-component vector of float) -0:237 'inF0' ( in 3-component vector of float) -0:238 Sequence -0:238 move second child to first child ( temp 3-component vector of float) -0:238 'r052' ( temp 3-component vector of float) -0:238 divide ( temp 3-component vector of float) -0:238 Constant: -0:238 1.000000 -0:238 'inF0' ( in 3-component vector of float) -0:239 Sequence -0:239 move second child to first child ( temp 3-component vector of float) -0:239 'r053' ( temp 3-component vector of float) -0:239 reflect ( temp 3-component vector of float) -0:239 'inF0' ( in 3-component vector of float) -0:239 'inF1' ( in 3-component vector of float) -0:240 Sequence -0:240 move second child to first child ( temp 3-component vector of float) -0:240 'r054' ( temp 3-component vector of float) -0:240 refract ( temp 3-component vector of float) -0:240 'inF0' ( in 3-component vector of float) -0:240 'inF1' ( in 3-component vector of float) -0:240 Constant: -0:240 2.000000 -0:241 Sequence -0:241 move second child to first child ( temp 3-component vector of uint) -0:241 'r055' ( temp 3-component vector of uint) -0:241 bitFieldReverse ( temp 3-component vector of uint) -0:241 Constant: -0:241 1 (const uint) -0:241 2 (const uint) -0:241 3 (const uint) -0:242 Sequence -0:242 move second child to first child ( temp 3-component vector of float) -0:242 'r056' ( temp 3-component vector of float) -0:242 roundEven ( temp 3-component vector of float) -0:242 'inF0' ( in 3-component vector of float) -0:243 Sequence -0:243 move second child to first child ( temp 3-component vector of float) -0:243 'r057' ( temp 3-component vector of float) -0:243 inverse sqrt ( 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 'r058' ( temp 3-component vector of float) -0:244 clamp ( temp 3-component vector of float) -0:244 'inF0' ( in 3-component vector of float) -0:244 Constant: -0:244 0.000000 -0:244 Constant: -0:244 1.000000 -0:245 Sequence -0:245 move second child to first child ( temp 3-component vector of float) -0:245 'r059' ( temp 3-component vector of float) -0:245 Sign ( 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 'r060' ( temp 3-component vector of float) -0:246 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 'inF1' ( in 3-component vector of float) -0:247 sine ( temp 3-component vector of float) -0:247 'inF0' ( in 3-component vector of float) -0:247 move second child to first child ( temp 3-component vector of float) -0:247 'inF2' ( in 3-component vector of float) -0:247 cosine ( temp 3-component vector of float) -0:247 'inF0' ( in 3-component vector of float) -0:248 Sequence -0:248 move second child to first child ( temp 3-component vector of float) -0:248 'r061' ( temp 3-component vector of float) -0:248 hyp. sine ( 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 'r062' ( temp 3-component vector of float) -0:249 smoothstep ( 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 'inF2' ( 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 'r063' ( temp 3-component vector of float) -0:250 sqrt ( 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 'r064' ( temp 3-component vector of float) -0:251 step ( temp 3-component vector of float) -0:251 'inF0' ( in 3-component vector of float) -0:251 'inF1' ( in 3-component vector of float) -0:252 Sequence -0:252 move second child to first child ( temp 3-component vector of float) -0:252 'r065' ( temp 3-component vector of float) -0:252 tangent ( temp 3-component vector of float) -0:252 '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 'r066' ( temp 3-component vector of float) -0:253 hyp. tangent ( temp 3-component vector of float) -0:253 'inF0' ( in 3-component vector of float) -0:255 Sequence -0:255 move second child to first child ( temp 3-component vector of float) -0:255 'r067' ( temp 3-component vector of float) -0:255 trunc ( temp 3-component vector of float) -0:255 'inF0' ( in 3-component vector of float) -0:258 Branch: Return with expression -0:258 Constant: -0:258 1.000000 -0:258 2.000000 -0:258 3.000000 -0:262 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; ( temp 4-component vector of float) -0:262 Function Parameters: -0:262 'inF0' ( in 4-component vector of float) -0:262 'inF1' ( in 4-component vector of float) -0:262 'inF2' ( in 4-component vector of float) -0:262 'inU0' ( in 4-component vector of uint) -0:262 'inU1' ( in 4-component vector of uint) -0:? Sequence -0:265 Sequence -0:265 move second child to first child ( temp bool) -0:265 'r000' ( temp bool) -0:265 all ( temp bool) -0:265 Convert float to bool ( temp 4-component vector of bool) -0:265 'inF0' ( in 4-component vector of float) -0:266 Sequence -0:266 move second child to first child ( temp 4-component vector of float) -0:266 'r001' ( temp 4-component vector of float) -0:266 Absolute value ( 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 'r002' ( temp 4-component vector of float) -0:267 arc cosine ( 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 bool) -0:268 'r003' ( temp bool) -0:268 any ( temp bool) -0:268 Convert float to bool ( temp 4-component vector of bool) -0:268 'inF0' ( in 4-component vector of float) -0:269 Sequence -0:269 move second child to first child ( temp 4-component vector of float) -0:269 'r004' ( temp 4-component vector of float) -0:269 arc sine ( temp 4-component vector of float) -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 int) -0:270 'r005' ( temp 4-component vector of int) -0:270 floatBitsToInt ( temp 4-component vector of int) -0:270 'inF0' ( in 4-component vector of float) -0:271 Sequence -0:271 move second child to first child ( temp 4-component vector of uint) -0:271 'r006' ( temp 4-component vector of uint) -0:271 floatBitsToUint ( temp 4-component vector of uint) -0:271 'inF0' ( in 4-component vector of float) -0:272 Sequence -0:272 move second child to first child ( temp 4-component vector of float) -0:272 'r007' ( temp 4-component vector of float) -0:272 intBitsToFloat ( temp 4-component vector of float) -0:272 'inU0' ( in 4-component vector of uint) -0:274 Sequence -0:274 move second child to first child ( temp 4-component vector of float) -0:274 'r009' ( temp 4-component vector of float) -0:274 arc tangent ( 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 'r010' ( temp 4-component vector of float) -0:275 arc tangent ( 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:276 Sequence -0:276 move second child to first child ( temp 4-component vector of float) -0:276 'r011' ( temp 4-component vector of float) -0:276 Ceiling ( temp 4-component vector of float) -0:276 'inF0' ( in 4-component vector of float) -0:277 Sequence -0:277 move second child to first child ( temp 4-component vector of float) -0:277 'r012' ( temp 4-component vector of float) -0:277 clamp ( temp 4-component vector of float) -0:277 'inF0' ( in 4-component vector of float) -0:277 'inF1' ( in 4-component vector of float) -0:277 'inF2' ( in 4-component vector of float) -0:278 Test condition and select ( temp void) -0:278 Condition -0:278 any ( temp bool) -0:278 Compare Less Than ( temp 4-component vector of bool) -0:278 'inF0' ( in 4-component vector of float) -0:278 Constant: -0:278 0.000000 -0:278 0.000000 -0:278 0.000000 -0:278 0.000000 -0:278 true case -0:278 Branch: Kill -0:279 Test condition and select ( temp void) -0:279 Condition -0:279 any ( temp bool) -0:279 Compare Less Than ( temp 4-component vector of bool) -0:279 'inU0' ( in 4-component vector of uint) -0:279 Constant: -0:279 0.000000 -0:279 0.000000 -0:279 0.000000 -0:279 0.000000 -0:279 true case -0:279 Branch: Kill -0:280 Sequence -0:280 move second child to first child ( temp 4-component vector of float) -0:280 'r013' ( temp 4-component vector of float) -0:280 cosine ( 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 'r014' ( temp 4-component vector of float) -0:281 hyp. cosine ( 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 uint) -0:282 'r015' ( temp 4-component vector of uint) -0:282 bitCount ( temp 4-component vector of uint) -0:282 Constant: -0:282 7 (const uint) -0:282 3 (const uint) -0:282 5 (const uint) -0:282 2 (const uint) -0:283 Sequence -0:283 move second child to first child ( temp 4-component vector of float) -0:283 'r016' ( temp 4-component vector of float) -0:283 dPdx ( 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 'r017' ( temp 4-component vector of float) -0:284 dPdxCoarse ( 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 'r018' ( temp 4-component vector of float) -0:285 dPdxFine ( 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 'r019' ( temp 4-component vector of float) -0:286 dPdy ( 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 'r020' ( temp 4-component vector of float) -0:287 dPdyCoarse ( 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 4-component vector of float) -0:288 'r021' ( temp 4-component vector of float) -0:288 dPdyFine ( temp 4-component vector of float) -0:288 'inF0' ( 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 'r022' ( temp 4-component vector of float) -0:289 degrees ( temp 4-component vector of float) -0:289 'inF0' ( in 4-component vector of float) -0:290 Sequence -0:290 move second child to first child ( temp float) -0:290 'r023' ( temp float) -0:290 distance ( temp float) -0:290 'inF0' ( in 4-component vector of float) -0:290 'inF1' ( in 4-component vector of float) -0:291 Sequence -0:291 move second child to first child ( temp float) -0:291 'r024' ( temp float) -0:291 dot-product ( temp float) -0:291 'inF0' ( in 4-component vector of float) -0:291 'inF1' ( in 4-component vector of float) -0:292 Sequence -0:292 move second child to first child ( temp 4-component vector of float) -0:292 'r025' ( temp 4-component vector of float) -0:292 Construct vec4 ( temp 4-component vector of float) -0:292 Constant: -0:292 1.000000 -0:292 component-wise multiply ( temp float) -0:292 direct index ( temp float) -0:292 'inF0' ( in 4-component vector of float) -0:292 Constant: -0:292 1 (const int) -0:292 direct index ( temp float) -0:292 'inF1' ( in 4-component vector of float) -0:292 Constant: -0:292 1 (const int) -0:292 direct index ( temp float) -0:292 'inF0' ( in 4-component vector of float) -0:292 Constant: -0:292 2 (const int) -0:292 direct index ( temp float) -0:292 'inF1' ( in 4-component vector of float) -0:292 Constant: -0:292 3 (const int) -0:296 Sequence -0:296 move second child to first child ( temp 4-component vector of float) -0:296 'r029' ( temp 4-component vector of float) -0:296 exp ( temp 4-component vector of float) -0:296 'inF0' ( in 4-component vector of float) -0:297 Sequence -0:297 move second child to first child ( temp 4-component vector of float) -0:297 'r030' ( temp 4-component vector of float) -0:297 exp2 ( temp 4-component vector of float) -0:297 'inF0' ( in 4-component vector of float) -0:298 Sequence -0:298 move second child to first child ( temp 4-component vector of float) -0:298 'r031' ( temp 4-component vector of float) -0:298 face-forward ( temp 4-component vector of float) -0:298 'inF0' ( in 4-component vector of float) -0:298 'inF1' ( in 4-component vector of float) -0:298 'inF2' ( in 4-component vector of float) -0:299 Sequence -0:299 move second child to first child ( temp 4-component vector of uint) -0:299 'r032' ( temp 4-component vector of uint) -0:299 findMSB ( temp 4-component vector of uint) -0:299 Constant: -0:299 7 (const uint) -0:299 8 (const uint) -0:299 9 (const uint) -0:299 10 (const uint) -0:300 Sequence -0:300 move second child to first child ( temp 4-component vector of uint) -0:300 'r033' ( temp 4-component vector of uint) -0:300 findLSB ( temp 4-component vector of uint) -0:300 Constant: -0:300 7 (const uint) -0:300 8 (const uint) -0:300 9 (const uint) -0:300 10 (const uint) -0:301 Sequence -0:301 move second child to first child ( temp 4-component vector of float) -0:301 'r034' ( temp 4-component vector of float) -0:301 Floor ( temp 4-component vector of float) -0:301 '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 'r036' ( temp 4-component vector of float) -0:303 mod ( temp 4-component vector of float) -0:303 'inF0' ( in 4-component vector of float) -0:303 'inF1' ( in 4-component vector of float) -0:304 Sequence -0:304 move second child to first child ( temp 4-component vector of float) -0:304 'r037' ( temp 4-component vector of float) -0:304 Fraction ( temp 4-component vector of float) -0:304 'inF0' ( in 4-component vector of float) -0:305 Sequence -0:305 move second child to first child ( temp 4-component vector of float) -0:305 'r039' ( temp 4-component vector of float) -0:305 fwidth ( temp 4-component vector of float) -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 bool) -0:306 'r040' ( temp 4-component vector of bool) -0:306 isinf ( temp 4-component vector of bool) -0:306 'inF0' ( in 4-component vector of float) -0:307 Sequence -0:307 move second child to first child ( temp 4-component vector of bool) -0:307 'r041' ( temp 4-component vector of bool) -0:307 isnan ( temp 4-component vector of bool) -0:307 'inF0' ( in 4-component vector of float) -0:308 Sequence -0:308 move second child to first child ( temp 4-component vector of float) -0:308 'r042' ( temp 4-component vector of float) -0:308 ldexp ( temp 4-component vector of float) -0:308 'inF0' ( in 4-component vector of float) -0:308 'inF1' ( 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 'r039a' ( temp 4-component vector of float) -0:309 mix ( temp 4-component vector of float) -0:309 'inF0' ( in 4-component vector of float) -0:309 'inF1' ( in 4-component vector of float) -0:309 'inF2' ( in 4-component vector of float) -0:310 Sequence -0:310 move second child to first child ( temp float) -0:310 'r043' ( temp float) -0:310 length ( temp float) -0:310 'inF0' ( in 4-component vector of float) -0:311 Sequence -0:311 move second child to first child ( temp 4-component vector of float) -0:311 'r044' ( temp 4-component vector of float) -0:311 log ( 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 'r045' ( temp 4-component vector of float) -0:312 vector-scale ( temp 4-component vector of float) -0:312 log2 ( temp 4-component vector of float) -0:312 'inF0' ( in 4-component vector of float) -0:312 Constant: -0:312 0.301030 -0:313 Sequence -0:313 move second child to first child ( temp 4-component vector of float) -0:313 'r046' ( temp 4-component vector of float) -0:313 log2 ( temp 4-component vector of float) -0:313 'inF0' ( in 4-component vector of float) -0:314 Sequence -0:314 move second child to first child ( temp 4-component vector of float) -0:314 'r047' ( temp 4-component vector of float) -0:314 max ( temp 4-component vector of float) -0:314 'inF0' ( in 4-component vector of float) -0:314 'inF1' ( in 4-component vector of float) -0:315 Sequence -0:315 move second child to first child ( temp 4-component vector of float) -0:315 'r048' ( temp 4-component vector of float) -0:315 min ( 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 'r049' ( temp 4-component vector of float) -0:316 normalize ( 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 'r050' ( temp 4-component vector of float) -0:317 pow ( temp 4-component vector of float) -0:317 'inF0' ( in 4-component vector of float) -0:317 'inF1' ( in 4-component vector of float) -0:318 Sequence -0:318 move second child to first child ( temp 4-component vector of float) -0:318 'r051' ( temp 4-component vector of float) -0:318 radians ( temp 4-component vector of float) -0:318 'inF0' ( 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 'r052' ( temp 4-component vector of float) -0:319 divide ( temp 4-component vector of float) -0:319 Constant: -0:319 1.000000 -0:319 'inF0' ( in 4-component vector of float) -0:320 Sequence -0:320 move second child to first child ( temp 4-component vector of float) -0:320 'r053' ( temp 4-component vector of float) -0:320 reflect ( temp 4-component vector of float) -0:320 'inF0' ( in 4-component vector of float) -0:320 'inF1' ( in 4-component vector of float) -0:321 Sequence -0:321 move second child to first child ( temp 4-component vector of float) -0:321 'r054' ( temp 4-component vector of float) -0:321 refract ( temp 4-component vector of float) -0:321 'inF0' ( in 4-component vector of float) -0:321 'inF1' ( in 4-component vector of float) -0:321 Constant: -0:321 2.000000 -0:322 Sequence -0:322 move second child to first child ( temp 4-component vector of uint) -0:322 'r055' ( temp 4-component vector of uint) -0:322 bitFieldReverse ( temp 4-component vector of uint) -0:322 Constant: -0:322 1 (const uint) -0:322 2 (const uint) -0:322 3 (const uint) -0:322 4 (const uint) -0:323 Sequence -0:323 move second child to first child ( temp 4-component vector of float) -0:323 'r056' ( temp 4-component vector of float) -0:323 roundEven ( temp 4-component vector of float) -0:323 'inF0' ( in 4-component vector of float) -0:324 Sequence -0:324 move second child to first child ( temp 4-component vector of float) -0:324 'r057' ( temp 4-component vector of float) -0:324 inverse sqrt ( 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 'r058' ( temp 4-component vector of float) -0:325 clamp ( temp 4-component vector of float) -0:325 'inF0' ( in 4-component vector of float) -0:325 Constant: -0:325 0.000000 -0:325 Constant: -0:325 1.000000 -0:326 Sequence -0:326 move second child to first child ( temp 4-component vector of float) -0:326 'r059' ( temp 4-component vector of float) -0:326 Sign ( 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 'r060' ( temp 4-component vector of float) -0:327 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 'inF1' ( in 4-component vector of float) -0:328 sine ( temp 4-component vector of float) -0:328 'inF0' ( in 4-component vector of float) -0:328 move second child to first child ( temp 4-component vector of float) -0:328 'inF2' ( in 4-component vector of float) -0:328 cosine ( temp 4-component vector of float) -0:328 'inF0' ( in 4-component vector of float) -0:329 Sequence -0:329 move second child to first child ( temp 4-component vector of float) -0:329 'r061' ( temp 4-component vector of float) -0:329 hyp. sine ( 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 'r062' ( temp 4-component vector of float) -0:330 smoothstep ( 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 'inF2' ( 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 'r063' ( temp 4-component vector of float) -0:331 sqrt ( 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 'r064' ( temp 4-component vector of float) -0:332 step ( temp 4-component vector of float) -0:332 'inF0' ( in 4-component vector of float) -0:332 'inF1' ( in 4-component vector of float) -0:333 Sequence -0:333 move second child to first child ( temp 4-component vector of float) -0:333 'r065' ( temp 4-component vector of float) -0:333 tangent ( temp 4-component vector of float) -0:333 '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 'r066' ( temp 4-component vector of float) -0:334 hyp. tangent ( temp 4-component vector of float) -0:334 'inF0' ( in 4-component vector of float) -0:336 Sequence -0:336 move second child to first child ( temp 4-component vector of float) -0:336 'r067' ( temp 4-component vector of float) -0:336 trunc ( temp 4-component vector of float) -0:336 'inF0' ( in 4-component vector of float) -0:339 Branch: Return with expression -0:339 Constant: -0:339 1.000000 -0:339 2.000000 -0:339 3.000000 -0:339 4.000000 -0:402 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; ( temp 2X2 matrix of float) -0:402 Function Parameters: -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:? Sequence -0:404 Sequence -0:404 move second child to first child ( temp bool) -0:404 'r000' ( temp bool) -0:404 all ( temp bool) -0:404 Convert float to bool ( temp 2X2 matrix of bool) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r001' ( temp 2X2 matrix of float) -0:404 Absolute value ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 arc cosine ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp bool) -0:404 'r003' ( temp bool) -0:404 any ( temp bool) -0:404 Convert float to bool ( temp 2X2 matrix of bool) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r004' ( temp 2X2 matrix of float) -0:404 arc sine ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r005' ( temp 2X2 matrix of float) -0:404 arc tangent ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r006' ( temp 2X2 matrix of float) -0:404 arc tangent ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 'inF1' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r007' ( temp 2X2 matrix of float) -0:404 Ceiling ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Test condition and select ( temp void) -0:404 Condition -0:404 any ( temp bool) -0:404 Compare Less Than ( temp 2X2 matrix of bool) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Constant: -0:404 0.000000 -0:404 0.000000 -0:404 0.000000 -0:404 0.000000 -0:404 true case -0:404 Branch: Kill -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r008' ( temp 2X2 matrix of float) -0:404 clamp ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 'inF1' ( in 2X2 matrix of float) -0:404 'inF2' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r009' ( temp 2X2 matrix of float) -0:404 cosine ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r010' ( temp 2X2 matrix of float) -0:404 hyp. cosine ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r011' ( temp 2X2 matrix of float) -0:404 dPdx ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r012' ( temp 2X2 matrix of float) -0:404 dPdxCoarse ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r013' ( temp 2X2 matrix of float) -0:404 dPdxFine ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r014' ( temp 2X2 matrix of float) -0:404 dPdy ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r015' ( temp 2X2 matrix of float) -0:404 dPdyCoarse ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r016' ( temp 2X2 matrix of float) -0:404 dPdyFine ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r017' ( temp 2X2 matrix of float) -0:404 degrees ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp float) -0:404 'r018' ( temp float) -0:404 determinant ( temp float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r019' ( temp 2X2 matrix of float) -0:404 exp ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'R020' ( temp 2X2 matrix of float) -0:404 exp2 ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r021' ( temp 2X2 matrix of float) -0:404 Floor ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r022' ( temp 2X2 matrix of float) -0:404 mod ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 'inF1' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r023' ( temp 2X2 matrix of float) -0:404 Fraction ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r025' ( temp 2X2 matrix of float) -0:404 fwidth ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r026' ( temp 2X2 matrix of float) -0:404 ldexp ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 'inF1' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r026a' ( temp 2X2 matrix of float) -0:404 mix ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 'inF1' ( in 2X2 matrix of float) -0:404 'inF2' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r027' ( temp 2X2 matrix of float) -0:404 log ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r028' ( temp 2X2 matrix of float) -0:404 matrix-scale ( temp 2X2 matrix of float) -0:404 log2 ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Constant: -0:404 0.301030 -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r029' ( temp 2X2 matrix of float) -0:404 log2 ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r030' ( temp 2X2 matrix of float) -0:404 max ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 'inF1' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r031' ( temp 2X2 matrix of float) -0:404 min ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 'inF1' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r032' ( temp 2X2 matrix of float) -0:404 pow ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 'inF1' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r033' ( temp 2X2 matrix of float) -0:404 radians ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r034' ( temp 2X2 matrix of float) -0:404 roundEven ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r035' ( temp 2X2 matrix of float) -0:404 inverse sqrt ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r036' ( temp 2X2 matrix of float) -0:404 clamp ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Constant: -0:404 0.000000 -0:404 Constant: -0:404 1.000000 -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r037' ( temp 2X2 matrix of float) -0:404 Sign ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r038' ( temp 2X2 matrix of float) -0:404 sine ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'inF1' ( in 2X2 matrix of float) -0:404 sine ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'inF2' ( in 2X2 matrix of float) -0:404 cosine ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r039' ( temp 2X2 matrix of float) -0:404 hyp. sine ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r049' ( temp 2X2 matrix of float) -0:404 smoothstep ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 'inF1' ( in 2X2 matrix of float) -0:404 'inF2' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r041' ( temp 2X2 matrix of float) -0:404 sqrt ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r042' ( temp 2X2 matrix of float) -0:404 step ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 'inF1' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r043' ( temp 2X2 matrix of float) -0:404 tangent ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r044' ( temp 2X2 matrix of float) -0:404 hyp. tangent ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 transpose ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r046' ( temp 2X2 matrix of float) -0:404 trunc ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:407 Branch: Return with expression -0:407 Constant: -0:407 2.000000 -0:407 2.000000 -0:407 2.000000 -0:407 2.000000 -0:411 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; ( temp 3X3 matrix of float) -0:411 Function Parameters: -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:? Sequence -0:413 Sequence -0:413 move second child to first child ( temp bool) -0:413 'r000' ( temp bool) -0:413 all ( temp bool) -0:413 Convert float to bool ( temp 3X3 matrix of bool) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r001' ( temp 3X3 matrix of float) -0:413 Absolute value ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 arc cosine ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp bool) -0:413 'r003' ( temp bool) -0:413 any ( temp bool) -0:413 Convert float to bool ( temp 3X3 matrix of bool) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r004' ( temp 3X3 matrix of float) -0:413 arc sine ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r005' ( temp 3X3 matrix of float) -0:413 arc tangent ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r006' ( temp 3X3 matrix of float) -0:413 arc tangent ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 'inF1' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r007' ( temp 3X3 matrix of float) -0:413 Ceiling ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Test condition and select ( temp void) -0:413 Condition -0:413 any ( temp bool) -0:413 Compare Less Than ( temp 3X3 matrix of bool) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Constant: -0:413 0.000000 -0:413 0.000000 -0:413 0.000000 -0:413 0.000000 -0:413 0.000000 -0:413 0.000000 -0:413 0.000000 -0:413 0.000000 -0:413 0.000000 -0:413 true case -0:413 Branch: Kill -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r008' ( temp 3X3 matrix of float) -0:413 clamp ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 'inF1' ( in 3X3 matrix of float) -0:413 'inF2' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r009' ( temp 3X3 matrix of float) -0:413 cosine ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r010' ( temp 3X3 matrix of float) -0:413 hyp. cosine ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r011' ( temp 3X3 matrix of float) -0:413 dPdx ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r012' ( temp 3X3 matrix of float) -0:413 dPdxCoarse ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r013' ( temp 3X3 matrix of float) -0:413 dPdxFine ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r014' ( temp 3X3 matrix of float) -0:413 dPdy ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r015' ( temp 3X3 matrix of float) -0:413 dPdyCoarse ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r016' ( temp 3X3 matrix of float) -0:413 dPdyFine ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r017' ( temp 3X3 matrix of float) -0:413 degrees ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp float) -0:413 'r018' ( temp float) -0:413 determinant ( temp float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r019' ( temp 3X3 matrix of float) -0:413 exp ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'R020' ( temp 3X3 matrix of float) -0:413 exp2 ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r021' ( temp 3X3 matrix of float) -0:413 Floor ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r022' ( temp 3X3 matrix of float) -0:413 mod ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 'inF1' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r023' ( temp 3X3 matrix of float) -0:413 Fraction ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r025' ( temp 3X3 matrix of float) -0:413 fwidth ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r026' ( temp 3X3 matrix of float) -0:413 ldexp ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 'inF1' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r026a' ( temp 3X3 matrix of float) -0:413 mix ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 'inF1' ( in 3X3 matrix of float) -0:413 'inF2' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r027' ( temp 3X3 matrix of float) -0:413 log ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r028' ( temp 3X3 matrix of float) -0:413 matrix-scale ( temp 3X3 matrix of float) -0:413 log2 ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Constant: -0:413 0.301030 -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r029' ( temp 3X3 matrix of float) -0:413 log2 ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r030' ( temp 3X3 matrix of float) -0:413 max ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 'inF1' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r031' ( temp 3X3 matrix of float) -0:413 min ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 'inF1' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r032' ( temp 3X3 matrix of float) -0:413 pow ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 'inF1' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r033' ( temp 3X3 matrix of float) -0:413 radians ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r034' ( temp 3X3 matrix of float) -0:413 roundEven ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r035' ( temp 3X3 matrix of float) -0:413 inverse sqrt ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r036' ( temp 3X3 matrix of float) -0:413 clamp ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Constant: -0:413 0.000000 -0:413 Constant: -0:413 1.000000 -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r037' ( temp 3X3 matrix of float) -0:413 Sign ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r038' ( temp 3X3 matrix of float) -0:413 sine ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'inF1' ( in 3X3 matrix of float) -0:413 sine ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'inF2' ( in 3X3 matrix of float) -0:413 cosine ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r039' ( temp 3X3 matrix of float) -0:413 hyp. sine ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r049' ( temp 3X3 matrix of float) -0:413 smoothstep ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 'inF1' ( in 3X3 matrix of float) -0:413 'inF2' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r041' ( temp 3X3 matrix of float) -0:413 sqrt ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r042' ( temp 3X3 matrix of float) -0:413 step ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 'inF1' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r043' ( temp 3X3 matrix of float) -0:413 tangent ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r044' ( temp 3X3 matrix of float) -0:413 hyp. tangent ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 transpose ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r046' ( temp 3X3 matrix of float) -0:413 trunc ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:416 Branch: Return with expression -0:416 Constant: -0:416 3.000000 -0:416 3.000000 -0:416 3.000000 -0:416 3.000000 -0:416 3.000000 -0:416 3.000000 -0:416 3.000000 -0:416 3.000000 -0:416 3.000000 -0:420 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; ( temp 4X4 matrix of float) -0:420 Function Parameters: -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:? Sequence -0:422 Sequence -0:422 move second child to first child ( temp bool) -0:422 'r000' ( temp bool) -0:422 all ( temp bool) -0:422 Convert float to bool ( temp 4X4 matrix of bool) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r001' ( temp 4X4 matrix of float) -0:422 Absolute value ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 arc cosine ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp bool) -0:422 'r003' ( temp bool) -0:422 any ( temp bool) -0:422 Convert float to bool ( temp 4X4 matrix of bool) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r004' ( temp 4X4 matrix of float) -0:422 arc sine ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r005' ( temp 4X4 matrix of float) -0:422 arc tangent ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r006' ( temp 4X4 matrix of float) -0:422 arc tangent ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 'inF1' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r007' ( temp 4X4 matrix of float) -0:422 Ceiling ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Test condition and select ( temp void) -0:422 Condition -0:422 any ( temp bool) -0:422 Compare Less Than ( temp 4X4 matrix of bool) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Constant: -0:422 0.000000 -0:422 0.000000 -0:422 0.000000 -0:422 0.000000 -0:422 0.000000 -0:422 0.000000 -0:422 0.000000 -0:422 0.000000 -0:422 0.000000 -0:422 0.000000 -0:422 0.000000 -0:422 0.000000 -0:422 0.000000 -0:422 0.000000 -0:422 0.000000 -0:422 0.000000 -0:422 true case -0:422 Branch: Kill -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r008' ( temp 4X4 matrix of float) -0:422 clamp ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 'inF1' ( in 4X4 matrix of float) -0:422 'inF2' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r009' ( temp 4X4 matrix of float) -0:422 cosine ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r010' ( temp 4X4 matrix of float) -0:422 hyp. cosine ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r011' ( temp 4X4 matrix of float) -0:422 dPdx ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r012' ( temp 4X4 matrix of float) -0:422 dPdxCoarse ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r013' ( temp 4X4 matrix of float) -0:422 dPdxFine ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r014' ( temp 4X4 matrix of float) -0:422 dPdy ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r015' ( temp 4X4 matrix of float) -0:422 dPdyCoarse ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r016' ( temp 4X4 matrix of float) -0:422 dPdyFine ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r017' ( temp 4X4 matrix of float) -0:422 degrees ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp float) -0:422 'r018' ( temp float) -0:422 determinant ( temp float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r019' ( temp 4X4 matrix of float) -0:422 exp ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'R020' ( temp 4X4 matrix of float) -0:422 exp2 ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r021' ( temp 4X4 matrix of float) -0:422 Floor ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r022' ( temp 4X4 matrix of float) -0:422 mod ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 'inF1' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r023' ( temp 4X4 matrix of float) -0:422 Fraction ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r025' ( temp 4X4 matrix of float) -0:422 fwidth ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r026' ( temp 4X4 matrix of float) -0:422 ldexp ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 'inF1' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r026a' ( temp 4X4 matrix of float) -0:422 mix ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 'inF1' ( in 4X4 matrix of float) -0:422 'inF2' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r027' ( temp 4X4 matrix of float) -0:422 log ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r028' ( temp 4X4 matrix of float) -0:422 matrix-scale ( temp 4X4 matrix of float) -0:422 log2 ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Constant: -0:422 0.301030 -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r029' ( temp 4X4 matrix of float) -0:422 log2 ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r030' ( temp 4X4 matrix of float) -0:422 max ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 'inF1' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r031' ( temp 4X4 matrix of float) -0:422 min ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 'inF1' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r032' ( temp 4X4 matrix of float) -0:422 pow ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 'inF1' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r033' ( temp 4X4 matrix of float) -0:422 radians ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r034' ( temp 4X4 matrix of float) -0:422 roundEven ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r035' ( temp 4X4 matrix of float) -0:422 inverse sqrt ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r036' ( temp 4X4 matrix of float) -0:422 clamp ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Constant: -0:422 0.000000 -0:422 Constant: -0:422 1.000000 -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r037' ( temp 4X4 matrix of float) -0:422 Sign ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r038' ( temp 4X4 matrix of float) -0:422 sine ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'inF1' ( in 4X4 matrix of float) -0:422 sine ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'inF2' ( in 4X4 matrix of float) -0:422 cosine ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r039' ( temp 4X4 matrix of float) -0:422 hyp. sine ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r049' ( temp 4X4 matrix of float) -0:422 smoothstep ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 'inF1' ( in 4X4 matrix of float) -0:422 'inF2' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r041' ( temp 4X4 matrix of float) -0:422 sqrt ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r042' ( temp 4X4 matrix of float) -0:422 step ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 'inF1' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r043' ( temp 4X4 matrix of float) -0:422 tangent ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r044' ( temp 4X4 matrix of float) -0:422 hyp. tangent ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 transpose ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r046' ( temp 4X4 matrix of float) -0:422 trunc ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:425 Branch: Return with expression -0:425 Constant: -0:425 4.000000 -0:425 4.000000 -0:425 4.000000 -0:425 4.000000 -0:425 4.000000 -0:425 4.000000 -0:425 4.000000 -0:425 4.000000 -0:425 4.000000 -0:425 4.000000 -0:425 4.000000 -0:425 4.000000 -0:425 4.000000 -0:425 4.000000 -0:425 4.000000 -0:425 4.000000 -0:443 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; ( temp void) -0:443 Function Parameters: -0:443 'inF0' ( in float) -0:443 'inF1' ( in float) -0:443 'inFV0' ( in 2-component vector of float) -0:443 'inFV1' ( in 2-component vector of float) -0:443 'inFM0' ( in 2X2 matrix of float) -0:443 'inFM1' ( in 2X2 matrix of float) -0:? Sequence -0:444 Sequence -0:444 move second child to first child ( temp float) -0:444 'r0' ( temp float) -0:444 component-wise multiply ( temp float) -0:444 'inF1' ( in float) -0:444 'inF0' ( in float) -0:444 Sequence -0:444 move second child to first child ( temp 2-component vector of float) -0:444 'r1' ( temp 2-component vector of float) -0:444 vector-scale ( temp 2-component vector of float) -0:444 'inF0' ( in float) -0:444 'inFV0' ( in 2-component vector of float) -0:444 Sequence -0:444 move second child to first child ( temp 2-component vector of float) -0:444 'r2' ( temp 2-component vector of float) -0:444 vector-scale ( temp 2-component vector of float) -0:444 'inFV0' ( in 2-component vector of float) -0:444 'inF0' ( in float) -0:444 Sequence -0:444 move second child to first child ( temp float) -0:444 'r3' ( temp float) -0:444 dot-product ( temp float) -0:444 'inFV0' ( in 2-component vector of float) -0:444 'inFV1' ( in 2-component vector of float) -0:444 Sequence -0:444 move second child to first child ( temp 2-component vector of float) -0:444 'r4' ( temp 2-component vector of float) -0:444 vector-times-matrix ( temp 2-component vector of float) -0:444 'inFV0' ( in 2-component vector of float) -0:444 'inFM0' ( in 2X2 matrix of float) -0:444 Sequence -0:444 move second child to first child ( temp 2-component vector of float) -0:444 'r5' ( temp 2-component vector of float) -0:444 matrix-times-vector ( temp 2-component vector of float) -0:444 'inFM0' ( in 2X2 matrix of float) -0:444 'inFV0' ( in 2-component vector of float) -0:444 Sequence -0:444 move second child to first child ( temp 2X2 matrix of float) -0:444 'r6' ( temp 2X2 matrix of float) -0:444 matrix-scale ( temp 2X2 matrix of float) -0:444 'inF0' ( in float) -0:444 'inFM0' ( in 2X2 matrix of float) -0:444 Sequence -0:444 move second child to first child ( temp 2X2 matrix of float) -0:444 'r7' ( temp 2X2 matrix of float) -0:444 matrix-scale ( temp 2X2 matrix of float) -0:444 'inFM0' ( in 2X2 matrix of float) -0:444 'inF0' ( in float) -0:444 Sequence -0:444 move second child to first child ( temp 2X2 matrix of float) -0:444 'r8' ( temp 2X2 matrix of float) -0:444 matrix-multiply ( temp 2X2 matrix of float) -0:444 'inFM1' ( in 2X2 matrix of float) -0:444 'inFM0' ( in 2X2 matrix of float) -0:450 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; ( temp void) -0:450 Function Parameters: -0:450 'inF0' ( in float) -0:450 'inF1' ( in float) -0:450 'inFV0' ( in 3-component vector of float) -0:450 'inFV1' ( in 3-component vector of float) -0:450 'inFM0' ( in 3X3 matrix of float) -0:450 'inFM1' ( in 3X3 matrix of float) -0:? Sequence -0:451 Sequence -0:451 move second child to first child ( temp float) -0:451 'r0' ( temp float) -0:451 component-wise multiply ( temp float) -0:451 'inF1' ( in float) -0:451 'inF0' ( in float) -0:451 Sequence -0:451 move second child to first child ( temp 3-component vector of float) -0:451 'r1' ( temp 3-component vector of float) -0:451 vector-scale ( temp 3-component vector of float) -0:451 'inF0' ( in float) -0:451 'inFV0' ( in 3-component vector of float) -0:451 Sequence -0:451 move second child to first child ( temp 3-component vector of float) -0:451 'r2' ( temp 3-component vector of float) -0:451 vector-scale ( temp 3-component vector of float) -0:451 'inFV0' ( in 3-component vector of float) -0:451 'inF0' ( in float) -0:451 Sequence -0:451 move second child to first child ( temp float) -0:451 'r3' ( temp float) -0:451 dot-product ( temp float) -0:451 'inFV0' ( in 3-component vector of float) -0:451 'inFV1' ( in 3-component vector of float) -0:451 Sequence -0:451 move second child to first child ( temp 3-component vector of float) -0:451 'r4' ( temp 3-component vector of float) -0:451 vector-times-matrix ( temp 3-component vector of float) -0:451 'inFV0' ( in 3-component vector of float) -0:451 'inFM0' ( in 3X3 matrix of float) -0:451 Sequence -0:451 move second child to first child ( temp 3-component vector of float) -0:451 'r5' ( temp 3-component vector of float) -0:451 matrix-times-vector ( temp 3-component vector of float) -0:451 'inFM0' ( in 3X3 matrix of float) -0:451 'inFV0' ( in 3-component vector of float) -0:451 Sequence -0:451 move second child to first child ( temp 3X3 matrix of float) -0:451 'r6' ( temp 3X3 matrix of float) -0:451 matrix-scale ( temp 3X3 matrix of float) -0:451 'inF0' ( in float) -0:451 'inFM0' ( in 3X3 matrix of float) -0:451 Sequence -0:451 move second child to first child ( temp 3X3 matrix of float) -0:451 'r7' ( temp 3X3 matrix of float) -0:451 matrix-scale ( temp 3X3 matrix of float) -0:451 'inFM0' ( in 3X3 matrix of float) -0:451 'inF0' ( in float) -0:451 Sequence -0:451 move second child to first child ( temp 3X3 matrix of float) -0:451 'r8' ( temp 3X3 matrix of float) -0:451 matrix-multiply ( temp 3X3 matrix of float) -0:451 'inFM1' ( in 3X3 matrix of float) -0:451 'inFM0' ( in 3X3 matrix of float) -0:457 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; ( temp void) -0:457 Function Parameters: -0:457 'inF0' ( in float) -0:457 'inF1' ( in float) -0:457 'inFV0' ( in 4-component vector of float) -0:457 'inFV1' ( in 4-component vector of float) -0:457 'inFM0' ( in 4X4 matrix of float) -0:457 'inFM1' ( in 4X4 matrix of float) -0:? Sequence -0:458 Sequence -0:458 move second child to first child ( temp float) -0:458 'r0' ( temp float) -0:458 component-wise multiply ( temp float) -0:458 'inF1' ( in float) -0:458 'inF0' ( in float) -0:458 Sequence -0:458 move second child to first child ( temp 4-component vector of float) -0:458 'r1' ( temp 4-component vector of float) -0:458 vector-scale ( temp 4-component vector of float) -0:458 'inF0' ( in float) -0:458 'inFV0' ( in 4-component vector of float) -0:458 Sequence -0:458 move second child to first child ( temp 4-component vector of float) -0:458 'r2' ( temp 4-component vector of float) -0:458 vector-scale ( temp 4-component vector of float) -0:458 'inFV0' ( in 4-component vector of float) -0:458 'inF0' ( in float) -0:458 Sequence -0:458 move second child to first child ( temp float) -0:458 'r3' ( temp float) -0:458 dot-product ( temp float) -0:458 'inFV0' ( in 4-component vector of float) -0:458 'inFV1' ( in 4-component vector of float) -0:458 Sequence -0:458 move second child to first child ( temp 4-component vector of float) -0:458 'r4' ( temp 4-component vector of float) -0:458 vector-times-matrix ( temp 4-component vector of float) -0:458 'inFV0' ( in 4-component vector of float) -0:458 'inFM0' ( in 4X4 matrix of float) -0:458 Sequence -0:458 move second child to first child ( temp 4-component vector of float) -0:458 'r5' ( temp 4-component vector of float) -0:458 matrix-times-vector ( temp 4-component vector of float) -0:458 'inFM0' ( in 4X4 matrix of float) -0:458 'inFV0' ( in 4-component vector of float) -0:458 Sequence -0:458 move second child to first child ( temp 4X4 matrix of float) -0:458 'r6' ( temp 4X4 matrix of float) -0:458 matrix-scale ( temp 4X4 matrix of float) -0:458 'inF0' ( in float) -0:458 'inFM0' ( in 4X4 matrix of float) -0:458 Sequence -0:458 move second child to first child ( temp 4X4 matrix of float) -0:458 'r7' ( temp 4X4 matrix of float) -0:458 matrix-scale ( temp 4X4 matrix of float) -0:458 'inFM0' ( in 4X4 matrix of float) -0:458 'inF0' ( in float) -0:458 Sequence -0:458 move second child to first child ( temp 4X4 matrix of float) -0:458 'r8' ( temp 4X4 matrix of float) -0:458 matrix-multiply ( temp 4X4 matrix of float) -0:458 'inFM1' ( in 4X4 matrix of float) -0:458 'inFM0' ( in 4X4 matrix of float) -0:467 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24; ( temp void) -0:467 Function Parameters: -0:467 'inF0' ( in float) -0:467 'inF1' ( in float) -0:467 'inFV2' ( in 2-component vector of float) -0:467 'inFV3' ( in 3-component vector of float) -0:467 'inFM2x3' ( in 2X3 matrix of float) -0:467 'inFM3x2' ( in 3X2 matrix of float) -0:467 'inFM3x3' ( in 3X3 matrix of float) -0:467 'inFM3x4' ( in 3X4 matrix of float) -0:467 'inFM2x4' ( in 2X4 matrix of float) -0:? Sequence -0:468 Sequence -0:468 move second child to first child ( temp float) -0:468 'r00' ( temp float) -0:468 component-wise multiply ( temp float) -0:468 'inF1' ( in float) -0:468 'inF0' ( in float) -0:469 Sequence -0:469 move second child to first child ( temp 2-component vector of float) -0:469 'r01' ( temp 2-component vector of float) -0:469 vector-scale ( temp 2-component vector of float) -0:469 'inF0' ( in float) -0:469 'inFV2' ( in 2-component vector of float) -0:470 Sequence -0:470 move second child to first child ( temp 3-component vector of float) -0:470 'r02' ( temp 3-component vector of float) -0:470 vector-scale ( temp 3-component vector of float) -0:470 'inF0' ( in float) -0:470 'inFV3' ( in 3-component vector of float) -0:471 Sequence -0:471 move second child to first child ( temp 2-component vector of float) -0:471 'r03' ( temp 2-component vector of float) -0:471 vector-scale ( temp 2-component vector of float) -0:471 'inFV2' ( in 2-component vector of float) -0:471 'inF0' ( in float) -0:472 Sequence -0:472 move second child to first child ( temp 3-component vector of float) -0:472 'r04' ( temp 3-component vector of float) -0:472 vector-scale ( temp 3-component vector of float) -0:472 'inFV3' ( in 3-component vector of float) -0:472 'inF0' ( in float) -0:473 Sequence -0:473 move second child to first child ( temp float) -0:473 'r05' ( temp float) -0:473 dot-product ( temp float) -0:473 'inFV2' ( in 2-component vector of float) -0:473 'inFV2' ( in 2-component vector of float) -0:474 Sequence -0:474 move second child to first child ( temp float) -0:474 'r06' ( temp float) -0:474 dot-product ( temp float) -0:474 'inFV3' ( in 3-component vector of float) -0:474 'inFV3' ( in 3-component vector of float) -0:475 Sequence -0:475 move second child to first child ( temp 3-component vector of float) -0:475 'r07' ( temp 3-component vector of float) -0:475 matrix-times-vector ( temp 3-component vector of float) -0:475 'inFM2x3' ( in 2X3 matrix of float) -0:475 'inFV2' ( in 2-component vector of float) -0:476 Sequence -0:476 move second child to first child ( temp 2-component vector of float) -0:476 'r08' ( temp 2-component vector of float) -0:476 matrix-times-vector ( temp 2-component vector of float) -0:476 'inFM3x2' ( in 3X2 matrix of float) -0:476 'inFV3' ( in 3-component vector of float) -0:477 Sequence -0:477 move second child to first child ( temp 2-component vector of float) -0:477 'r09' ( temp 2-component vector of float) -0:477 vector-times-matrix ( temp 2-component vector of float) -0:477 'inFV3' ( in 3-component vector of float) -0:477 'inFM2x3' ( in 2X3 matrix of float) -0:478 Sequence -0:478 move second child to first child ( temp 3-component vector of float) -0:478 'r10' ( temp 3-component vector of float) -0:478 vector-times-matrix ( temp 3-component vector of float) -0:478 'inFV2' ( in 2-component vector of float) -0:478 'inFM3x2' ( in 3X2 matrix of float) -0:479 Sequence -0:479 move second child to first child ( temp 2X3 matrix of float) -0:479 'r11' ( temp 2X3 matrix of float) -0:479 matrix-scale ( temp 2X3 matrix of float) -0:479 'inF0' ( in float) -0:479 'inFM2x3' ( in 2X3 matrix of float) -0:480 Sequence -0:480 move second child to first child ( temp 3X2 matrix of float) -0:480 'r12' ( temp 3X2 matrix of float) -0:480 matrix-scale ( temp 3X2 matrix of float) -0:480 'inF0' ( in float) -0:480 'inFM3x2' ( in 3X2 matrix of float) -0:481 Sequence -0:481 move second child to first child ( temp 2X2 matrix of float) -0:481 'r13' ( temp 2X2 matrix of float) -0:481 matrix-multiply ( temp 2X2 matrix of float) -0:481 'inFM3x2' ( in 3X2 matrix of float) -0:481 'inFM2x3' ( in 2X3 matrix of float) -0:482 Sequence -0:482 move second child to first child ( temp 2X3 matrix of float) -0:482 'r14' ( temp 2X3 matrix of float) -0:482 matrix-multiply ( temp 2X3 matrix of float) -0:482 'inFM3x3' ( in 3X3 matrix of float) -0:482 'inFM2x3' ( in 2X3 matrix of float) -0:483 Sequence -0:483 move second child to first child ( temp 2X4 matrix of float) -0:483 'r15' ( temp 2X4 matrix of float) -0:483 matrix-multiply ( temp 2X4 matrix of float) -0:483 'inFM3x4' ( in 3X4 matrix of float) -0:483 'inFM2x3' ( in 2X3 matrix of float) -0:484 Sequence -0:484 move second child to first child ( temp 3X4 matrix of float) -0:484 'r16' ( temp 3X4 matrix of float) -0:484 matrix-multiply ( temp 3X4 matrix of float) -0:484 'inFM2x4' ( in 2X4 matrix of float) -0:484 'inFM3x2' ( in 3X2 matrix of float) -0:490 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) -0:490 Function Parameters: -0:? Sequence -0:492 move second child to first child ( temp 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 Constant: -0:492 1.000000 -0:492 1.000000 -0:492 1.000000 -0:492 1.000000 -0:493 Branch: Return with expression -0:493 'ps_output' ( temp structure{ temp 4-component vector of float color}) -0:490 Function Definition: main( ( temp void) -0:490 Function Parameters: -0:? Sequence -0:490 Sequence -0:490 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) -0:490 color: direct index for structure ( temp 4-component vector of float) -0:490 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) -0:490 Constant: -0:490 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:45 Sequence -0:45 move second child to first child ( temp float) -0:45 'r024' ( temp float) -0:45 distance ( temp float) -0:45 'inF0' ( in float) -0:45 'inF1' ( in float) -0:49 Sequence -0:49 move second child to first child ( temp float) -0:49 'r027' ( temp float) -0:49 exp ( temp float) -0:49 'inF0' ( in float) -0:50 Sequence -0:50 move second child to first child ( temp float) -0:50 'r028' ( temp float) -0:50 exp2 ( temp float) -0:50 'inF0' ( in float) -0:51 Sequence -0:51 move second child to first child ( temp uint) -0:51 'r029' ( temp uint) -0:51 Convert int to uint ( temp uint) -0:51 findMSB ( temp int) -0:51 Constant: -0:51 7 (const int) -0:52 Sequence -0:52 move second child to first child ( temp uint) -0:52 'r030' ( temp uint) -0:52 Convert int to uint ( temp uint) -0:52 findLSB ( temp int) -0:52 Constant: -0:52 7 (const int) -0:53 Sequence -0:53 move second child to first child ( temp float) -0:53 'r031' ( temp float) -0:53 Floor ( temp float) -0:53 'inF0' ( in float) -0:55 Sequence -0:55 move second child to first child ( temp float) -0:55 'r033' ( temp float) -0:55 mod ( 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 'r033i' ( temp float) -0:56 mod ( temp float) -0:56 'inF0' ( in float) -0:56 Constant: -0:56 2.000000 -0:57 Sequence -0:57 move second child to first child ( temp float) -0:57 'r034' ( temp float) -0:57 Fraction ( temp float) -0:57 'inF0' ( in float) -0:58 Sequence -0:58 move second child to first child ( temp float) -0:58 'r036' ( temp float) -0:58 fwidth ( temp float) -0:58 'inF0' ( in float) -0:59 Sequence -0:59 move second child to first child ( temp bool) -0:59 'r037' ( temp bool) -0:59 isinf ( temp bool) -0:59 'inF0' ( in float) -0:60 Sequence -0:60 move second child to first child ( temp bool) -0:60 'r038' ( temp bool) -0:60 isnan ( temp bool) -0:60 'inF0' ( in float) -0:61 Sequence -0:61 move second child to first child ( temp float) -0:61 'r039' ( temp float) -0:61 ldexp ( temp float) -0:61 'inF0' ( in float) -0:61 'inF1' ( in float) -0:62 Sequence -0:62 move second child to first child ( temp float) -0:62 'r039a' ( temp float) -0:62 mix ( temp float) -0:62 'inF0' ( in float) -0:62 'inF1' ( in float) -0:62 'inF2' ( in float) -0:63 Sequence -0:63 move second child to first child ( temp float) -0:63 'r040' ( temp float) -0:63 log ( temp float) -0:63 'inF0' ( in float) -0:64 Sequence -0:64 move second child to first child ( temp float) -0:64 'r041' ( temp float) -0:64 component-wise multiply ( temp float) -0:64 log2 ( temp float) -0:64 'inF0' ( in float) -0:64 Constant: -0:64 0.301030 -0:65 Sequence -0:65 move second child to first child ( temp float) -0:65 'r042' ( temp float) -0:65 log2 ( temp float) -0:65 'inF0' ( in float) -0:66 Sequence -0:66 move second child to first child ( temp float) -0:66 'r043' ( temp float) -0:66 max ( 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 'r044' ( temp float) -0:67 min ( temp float) -0:67 'inF0' ( in float) -0:67 'inF1' ( in float) -0:68 Sequence -0:68 move second child to first child ( temp float) -0:68 'r045' ( temp float) -0:68 pow ( temp float) -0:68 'inF0' ( in float) -0:68 'inF1' ( in float) -0:69 Sequence -0:69 move second child to first child ( temp float) -0:69 'r046' ( temp float) -0:69 radians ( temp float) -0:69 'inF0' ( in float) -0:70 Sequence -0:70 move second child to first child ( temp float) -0:70 'r047' ( temp float) -0:70 divide ( temp float) -0:70 Constant: -0:70 1.000000 -0:70 'inF0' ( in float) -0:71 Sequence -0:71 move second child to first child ( temp uint) -0:71 'r048' ( temp uint) -0:71 Convert int to uint ( temp uint) -0:71 bitFieldReverse ( temp int) -0:71 Constant: -0:71 2 (const int) -0:72 Sequence -0:72 move second child to first child ( temp float) -0:72 'r049' ( temp float) -0:72 roundEven ( temp float) -0:72 'inF0' ( in float) -0:73 Sequence -0:73 move second child to first child ( temp float) -0:73 'r050' ( temp float) -0:73 inverse sqrt ( temp float) -0:73 'inF0' ( in float) -0:74 Sequence -0:74 move second child to first child ( temp float) -0:74 'r051' ( temp float) -0:74 clamp ( temp float) -0:74 'inF0' ( in float) -0:74 Constant: -0:74 0.000000 -0:74 Constant: -0:74 1.000000 -0:75 Sequence -0:75 move second child to first child ( temp float) -0:75 'r052' ( temp float) -0:75 Sign ( temp float) -0:75 'inF0' ( in float) -0:76 Sequence -0:76 move second child to first child ( temp float) -0:76 'r053' ( temp float) -0:76 sine ( temp float) -0:76 'inF0' ( in float) -0:77 Sequence -0:77 move second child to first child ( temp float) -0:77 'inF1' ( in float) -0:77 sine ( temp float) -0:77 'inF0' ( in float) -0:77 move second child to first child ( temp float) -0:77 'inF2' ( in float) -0:77 cosine ( temp float) -0:77 'inF0' ( in float) -0:78 Sequence -0:78 move second child to first child ( temp float) -0:78 'r055' ( temp float) -0:78 hyp. sine ( temp float) -0:78 'inF0' ( in float) -0:79 Sequence -0:79 move second child to first child ( temp float) -0:79 'r056' ( temp float) -0:79 smoothstep ( temp float) -0:79 'inF0' ( in float) -0:79 'inF1' ( in float) -0:79 'inF2' ( in float) -0:80 Sequence -0:80 move second child to first child ( temp float) -0:80 'r057' ( temp float) -0:80 sqrt ( temp float) -0:80 'inF0' ( in float) -0:81 Sequence -0:81 move second child to first child ( temp float) -0:81 'r058' ( temp float) -0:81 step ( temp float) -0:81 'inF0' ( in float) -0:81 'inF1' ( in float) -0:82 Sequence -0:82 move second child to first child ( temp float) -0:82 'r059' ( temp float) -0:82 tangent ( temp float) -0:82 'inF0' ( in float) -0:83 Sequence -0:83 move second child to first child ( temp float) -0:83 'r060' ( temp float) -0:83 hyp. tangent ( temp float) -0:83 'inF0' ( in float) -0:85 Sequence -0:85 move second child to first child ( temp float) -0:85 'r061' ( temp float) -0:85 trunc ( temp float) -0:85 'inF0' ( in float) -0:87 Branch: Return with expression -0:87 Constant: -0:87 0.000000 -0:91 Function Definition: PixelShaderFunction1(vf1;vf1;vf1; ( temp 1-component vector of float) -0:91 Function Parameters: -0:91 'inF0' ( in 1-component vector of float) -0:91 'inF1' ( in 1-component vector of float) -0:91 'inF2' ( in 1-component vector of float) -0:? Sequence -0:93 Branch: Return with expression -0:93 Constant: -0:93 0.000000 -0:97 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vu2;vu2; ( temp 2-component vector of float) -0:97 Function Parameters: -0:97 'inF0' ( in 2-component vector of float) -0:97 'inF1' ( in 2-component vector of float) -0:97 'inF2' ( in 2-component vector of float) -0:97 'inU0' ( in 2-component vector of uint) -0:97 'inU1' ( in 2-component vector of uint) -0:? Sequence -0:100 Sequence -0:100 move second child to first child ( temp bool) -0:100 'r000' ( temp bool) -0:100 all ( temp bool) -0:100 Convert float to bool ( temp 2-component vector of bool) -0:100 'inF0' ( in 2-component vector of float) -0:101 Sequence -0:101 move second child to first child ( temp 2-component vector of float) -0:101 'r001' ( temp 2-component vector of float) -0:101 Absolute value ( temp 2-component vector of float) -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 'r002' ( temp 2-component vector of float) -0:102 arc cosine ( 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 bool) -0:103 'r003' ( temp bool) -0:103 any ( temp bool) -0:103 Convert float to bool ( temp 2-component vector of bool) -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 float) -0:104 'r004' ( temp 2-component vector of float) -0:104 arc sine ( temp 2-component vector of float) -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 int) -0:105 'r005' ( temp 2-component vector of int) -0:105 floatBitsToInt ( temp 2-component vector of int) -0:105 'inF0' ( in 2-component vector of float) -0:106 Sequence -0:106 move second child to first child ( temp 2-component vector of uint) -0:106 'r006' ( temp 2-component vector of uint) -0:106 floatBitsToUint ( temp 2-component vector of uint) -0:106 'inF0' ( in 2-component vector of float) -0:107 Sequence -0:107 move second child to first child ( temp 2-component vector of float) -0:107 'r007' ( temp 2-component vector of float) -0:107 intBitsToFloat ( temp 2-component vector of float) -0:107 'inU0' ( in 2-component vector of uint) -0:109 Sequence -0:109 move second child to first child ( temp 2-component vector of float) -0:109 'r009' ( temp 2-component vector of float) -0:109 arc tangent ( 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 'r010' ( temp 2-component vector of float) -0:110 arc tangent ( 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:111 Sequence -0:111 move second child to first child ( temp 2-component vector of float) -0:111 'r011' ( temp 2-component vector of float) -0:111 Ceiling ( temp 2-component vector of float) -0:111 'inF0' ( in 2-component vector of float) -0:112 Sequence -0:112 move second child to first child ( temp 2-component vector of float) -0:112 'r012' ( temp 2-component vector of float) -0:112 clamp ( 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:112 'inF2' ( in 2-component vector of float) -0:113 Test condition and select ( temp void) -0:113 Condition -0:113 any ( temp bool) -0:113 Compare Less Than ( temp 2-component vector of bool) -0:113 'inF0' ( in 2-component vector of float) -0:113 Constant: -0:113 0.000000 -0:113 0.000000 -0:113 true case -0:113 Branch: Kill -0:114 Test condition and select ( temp void) -0:114 Condition -0:114 any ( temp bool) -0:114 Compare Less Than ( temp 2-component vector of bool) -0:114 'inU0' ( in 2-component vector of uint) -0:114 Constant: -0:114 0.000000 -0:114 0.000000 -0:114 true case -0:114 Branch: Kill -0:115 Sequence -0:115 move second child to first child ( temp 2-component vector of float) -0:115 'r013' ( temp 2-component vector of float) -0:115 cosine ( 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 'r015' ( temp 2-component vector of float) -0:116 hyp. cosine ( 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 int) -0:117 'r016' ( temp 2-component vector of int) -0:117 bitCount ( temp 2-component vector of int) -0:117 Constant: -0:117 7 (const int) -0:117 3 (const int) -0:118 Sequence -0:118 move second child to first child ( temp 2-component vector of float) -0:118 'r017' ( temp 2-component vector of float) -0:118 dPdx ( 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 'r018' ( temp 2-component vector of float) -0:119 dPdxCoarse ( 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 'r019' ( temp 2-component vector of float) -0:120 dPdxFine ( 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 'r020' ( temp 2-component vector of float) -0:121 dPdy ( 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 'r021' ( temp 2-component vector of float) -0:122 dPdyCoarse ( 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 'r022' ( temp 2-component vector of float) -0:123 dPdyFine ( temp 2-component vector of float) -0:123 'inF0' ( in 2-component vector of float) -0:124 Sequence -0:124 move second child to first child ( temp 2-component vector of float) -0:124 'r023' ( temp 2-component vector of float) -0:124 degrees ( temp 2-component vector of float) -0:124 'inF0' ( in 2-component vector of float) -0:128 Sequence -0:128 move second child to first child ( temp float) -0:128 'r026' ( temp float) -0:128 distance ( temp float) -0:128 'inF0' ( in 2-component vector of float) -0:128 'inF1' ( in 2-component vector of float) -0:129 Sequence -0:129 move second child to first child ( temp float) -0:129 'r027' ( temp float) -0:129 dot-product ( temp float) -0:129 'inF0' ( in 2-component vector of float) -0:129 'inF1' ( 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 'r028' ( temp 2-component vector of float) -0:133 exp ( temp 2-component vector of float) -0:133 'inF0' ( in 2-component vector of float) -0:134 Sequence -0:134 move second child to first child ( temp 2-component vector of float) -0:134 'r029' ( temp 2-component vector of float) -0:134 exp2 ( temp 2-component vector of float) -0:134 'inF0' ( in 2-component vector of float) -0:135 Sequence -0:135 move second child to first child ( temp 2-component vector of float) -0:135 'r030' ( temp 2-component vector of float) -0:135 face-forward ( temp 2-component vector of float) -0:135 'inF0' ( in 2-component vector of float) -0:135 'inF1' ( in 2-component vector of float) -0:135 'inF2' ( in 2-component vector of float) -0:136 Sequence -0:136 move second child to first child ( temp 2-component vector of uint) -0:136 'r031' ( temp 2-component vector of uint) -0:136 findMSB ( temp 2-component vector of uint) -0:136 Constant: -0:136 7 (const uint) -0:136 8 (const uint) -0:137 Sequence -0:137 move second child to first child ( temp 2-component vector of uint) -0:137 'r032' ( temp 2-component vector of uint) -0:137 findLSB ( temp 2-component vector of uint) -0:137 Constant: -0:137 7 (const uint) -0:137 8 (const uint) -0:138 Sequence -0:138 move second child to first child ( temp 2-component vector of float) -0:138 'r033' ( temp 2-component vector of float) -0:138 Floor ( temp 2-component vector of float) -0:138 '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 'r035' ( temp 2-component vector of float) -0:140 mod ( temp 2-component vector of float) -0:140 'inF0' ( in 2-component vector of float) -0:140 'inF1' ( in 2-component vector of float) -0:141 Sequence -0:141 move second child to first child ( temp 2-component vector of float) -0:141 'r036' ( temp 2-component vector of float) -0:141 Fraction ( temp 2-component vector of float) -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 float) -0:142 'r038' ( temp 2-component vector of float) -0:142 fwidth ( temp 2-component vector of float) -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 bool) -0:143 'r039' ( temp 2-component vector of bool) -0:143 isinf ( temp 2-component vector of bool) -0:143 'inF0' ( in 2-component vector of float) -0:144 Sequence -0:144 move second child to first child ( temp 2-component vector of bool) -0:144 'r040' ( temp 2-component vector of bool) -0:144 isnan ( temp 2-component vector of bool) -0:144 'inF0' ( in 2-component vector of float) -0:145 Sequence -0:145 move second child to first child ( temp 2-component vector of float) -0:145 'r041' ( temp 2-component vector of float) -0:145 ldexp ( temp 2-component vector of float) -0:145 'inF0' ( in 2-component vector of float) -0:145 'inF1' ( in 2-component vector of float) -0:146 Sequence -0:146 move second child to first child ( temp 2-component vector of float) -0:146 'r039a' ( temp 2-component vector of float) -0:146 mix ( temp 2-component vector of float) -0:146 'inF0' ( in 2-component vector of float) -0:146 'inF1' ( in 2-component vector of float) -0:146 'inF2' ( in 2-component vector of float) -0:147 Sequence -0:147 move second child to first child ( temp float) -0:147 'r042' ( temp float) -0:147 length ( temp float) -0:147 'inF0' ( in 2-component vector of float) -0:148 Sequence -0:148 move second child to first child ( temp 2-component vector of float) -0:148 'r043' ( temp 2-component vector of float) -0:148 log ( 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 'r044' ( temp 2-component vector of float) -0:149 vector-scale ( temp 2-component vector of float) -0:149 log2 ( temp 2-component vector of float) -0:149 'inF0' ( in 2-component vector of float) -0:149 Constant: -0:149 0.301030 -0:150 Sequence -0:150 move second child to first child ( temp 2-component vector of float) -0:150 'r045' ( temp 2-component vector of float) -0:150 log2 ( temp 2-component vector of float) -0:150 'inF0' ( 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 'r046' ( temp 2-component vector of float) -0:151 max ( temp 2-component vector of float) -0:151 'inF0' ( in 2-component vector of float) -0:151 'inF1' ( in 2-component vector of float) -0:152 Sequence -0:152 move second child to first child ( temp 2-component vector of float) -0:152 'r047' ( temp 2-component vector of float) -0:152 min ( 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 'r048' ( temp 2-component vector of float) -0:153 normalize ( 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 'r049' ( temp 2-component vector of float) -0:154 pow ( temp 2-component vector of float) -0:154 'inF0' ( in 2-component vector of float) -0:154 'inF1' ( 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 'r050' ( temp 2-component vector of float) -0:155 radians ( temp 2-component vector of float) -0:155 'inF0' ( 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 'r051' ( temp 2-component vector of float) -0:156 divide ( temp 2-component vector of float) -0:156 Constant: -0:156 1.000000 -0:156 'inF0' ( in 2-component vector of float) -0:157 Sequence -0:157 move second child to first child ( temp 2-component vector of float) -0:157 'r052' ( temp 2-component vector of float) -0:157 reflect ( temp 2-component vector of float) -0:157 'inF0' ( in 2-component vector of float) -0:157 'inF1' ( in 2-component vector of float) -0:158 Sequence -0:158 move second child to first child ( temp 2-component vector of float) -0:158 'r053' ( temp 2-component vector of float) -0:158 refract ( temp 2-component vector of float) -0:158 'inF0' ( in 2-component vector of float) -0:158 'inF1' ( in 2-component vector of float) -0:158 Constant: -0:158 2.000000 -0:159 Sequence -0:159 move second child to first child ( temp 2-component vector of uint) -0:159 'r054' ( temp 2-component vector of uint) -0:159 bitFieldReverse ( temp 2-component vector of uint) -0:159 Constant: -0:159 1 (const uint) -0:159 2 (const uint) -0:160 Sequence -0:160 move second child to first child ( temp 2-component vector of float) -0:160 'r055' ( temp 2-component vector of float) -0:160 roundEven ( temp 2-component vector of float) -0:160 'inF0' ( in 2-component vector of float) -0:161 Sequence -0:161 move second child to first child ( temp 2-component vector of float) -0:161 'r056' ( temp 2-component vector of float) -0:161 inverse sqrt ( 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 'r057' ( temp 2-component vector of float) -0:162 clamp ( temp 2-component vector of float) -0:162 'inF0' ( in 2-component vector of float) -0:162 Constant: -0:162 0.000000 -0:162 Constant: -0:162 1.000000 -0:163 Sequence -0:163 move second child to first child ( temp 2-component vector of float) -0:163 'r058' ( temp 2-component vector of float) -0:163 Sign ( 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 'r059' ( temp 2-component vector of float) -0:164 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 'inF1' ( in 2-component vector of float) -0:165 sine ( temp 2-component vector of float) -0:165 'inF0' ( in 2-component vector of float) -0:165 move second child to first child ( temp 2-component vector of float) -0:165 'inF2' ( in 2-component vector of float) -0:165 cosine ( temp 2-component vector of float) -0:165 'inF0' ( 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 'r060' ( temp 2-component vector of float) -0:166 hyp. sine ( 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 'r061' ( temp 2-component vector of float) -0:167 smoothstep ( 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 'inF2' ( 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 'r062' ( temp 2-component vector of float) -0:168 sqrt ( 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 'r063' ( temp 2-component vector of float) -0:169 step ( temp 2-component vector of float) -0:169 'inF0' ( in 2-component vector of float) -0:169 'inF1' ( in 2-component vector of float) -0:170 Sequence -0:170 move second child to first child ( temp 2-component vector of float) -0:170 'r064' ( temp 2-component vector of float) -0:170 tangent ( temp 2-component vector of float) -0:170 '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 'r065' ( temp 2-component vector of float) -0:171 hyp. tangent ( temp 2-component vector of float) -0:171 'inF0' ( in 2-component vector of float) -0:173 Sequence -0:173 move second child to first child ( temp 2-component vector of float) -0:173 'r066' ( temp 2-component vector of float) -0:173 trunc ( temp 2-component vector of float) -0:173 'inF0' ( in 2-component vector of float) -0:176 Branch: Return with expression -0:176 Constant: -0:176 1.000000 -0:176 2.000000 -0:180 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3; ( temp 3-component vector of float) -0:180 Function Parameters: -0:180 'inF0' ( in 3-component vector of float) -0:180 'inF1' ( in 3-component vector of float) -0:180 'inF2' ( in 3-component vector of float) -0:180 'inU0' ( in 3-component vector of uint) -0:180 'inU1' ( in 3-component vector of uint) -0:? Sequence -0:183 Sequence -0:183 move second child to first child ( temp bool) -0:183 'r000' ( temp bool) -0:183 all ( temp bool) -0:183 Convert float to bool ( temp 3-component vector of bool) -0:183 'inF0' ( in 3-component vector of float) -0:184 Sequence -0:184 move second child to first child ( temp 3-component vector of float) -0:184 'r001' ( temp 3-component vector of float) -0:184 Absolute value ( temp 3-component vector of float) -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 'r002' ( temp 3-component vector of float) -0:185 arc cosine ( 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 bool) -0:186 'r003' ( temp bool) -0:186 any ( temp bool) -0:186 Convert float to bool ( temp 3-component vector of bool) -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 float) -0:187 'r004' ( temp 3-component vector of float) -0:187 arc sine ( temp 3-component vector of float) -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 int) -0:188 'r005' ( temp 3-component vector of int) -0:188 floatBitsToInt ( temp 3-component vector of int) -0:188 'inF0' ( in 3-component vector of float) -0:189 Sequence -0:189 move second child to first child ( temp 3-component vector of uint) -0:189 'r006' ( temp 3-component vector of uint) -0:189 floatBitsToUint ( temp 3-component vector of uint) -0:189 'inF0' ( in 3-component vector of float) -0:190 Sequence -0:190 move second child to first child ( temp 3-component vector of float) -0:190 'r007' ( temp 3-component vector of float) -0:190 intBitsToFloat ( temp 3-component vector of float) -0:190 'inU0' ( in 3-component vector of uint) -0:192 Sequence -0:192 move second child to first child ( temp 3-component vector of float) -0:192 'r009' ( temp 3-component vector of float) -0:192 arc tangent ( 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 'r010' ( temp 3-component vector of float) -0:193 arc tangent ( temp 3-component vector of float) -0:193 'inF0' ( in 3-component vector of float) -0:193 'inF1' ( in 3-component vector of float) -0:194 Sequence -0:194 move second child to first child ( temp 3-component vector of float) -0:194 'r011' ( temp 3-component vector of float) -0:194 Ceiling ( temp 3-component vector of float) -0:194 'inF0' ( in 3-component vector of float) -0:195 Sequence -0:195 move second child to first child ( temp 3-component vector of float) -0:195 'r012' ( temp 3-component vector of float) -0:195 clamp ( 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 Test condition and select ( temp void) -0:196 Condition -0:196 any ( temp bool) -0:196 Compare Less Than ( temp 3-component vector of bool) -0:196 'inF0' ( in 3-component vector of float) -0:196 Constant: -0:196 0.000000 -0:196 0.000000 -0:196 0.000000 -0:196 true case -0:196 Branch: Kill -0:197 Test condition and select ( temp void) -0:197 Condition -0:197 any ( temp bool) -0:197 Compare Less Than ( temp 3-component vector of bool) -0:197 'inU0' ( in 3-component vector of uint) -0:197 Constant: -0:197 0.000000 -0:197 0.000000 -0:197 0.000000 -0:197 true case -0:197 Branch: Kill -0:198 Sequence -0:198 move second child to first child ( temp 3-component vector of float) -0:198 'r013' ( temp 3-component vector of float) -0:198 cosine ( temp 3-component vector of float) -0:198 'inF0' ( 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 'r014' ( temp 3-component vector of float) -0:199 hyp. cosine ( 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 uint) -0:200 'r015' ( temp 3-component vector of uint) -0:200 bitCount ( temp 3-component vector of uint) -0:200 Constant: -0:200 7 (const uint) -0:200 3 (const uint) -0:200 5 (const uint) -0:201 Sequence -0:201 move second child to first child ( temp 3-component vector of float) -0:201 'r016' ( temp 3-component vector of float) -0:201 cross-product ( temp 3-component vector of float) -0:201 'inF0' ( in 3-component vector of float) -0:201 'inF1' ( in 3-component vector of float) -0:202 Sequence -0:202 move second child to first child ( temp 3-component vector of float) -0:202 'r017' ( temp 3-component vector of float) -0:202 dPdx ( 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 'r018' ( temp 3-component vector of float) -0:203 dPdxCoarse ( 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 'r019' ( temp 3-component vector of float) -0:204 dPdxFine ( 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 'r020' ( temp 3-component vector of float) -0:205 dPdy ( 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 'r021' ( temp 3-component vector of float) -0:206 dPdyCoarse ( 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 3-component vector of float) -0:207 'r022' ( temp 3-component vector of float) -0:207 dPdyFine ( temp 3-component vector of float) -0:207 'inF0' ( in 3-component vector of float) -0:208 Sequence -0:208 move second child to first child ( temp 3-component vector of float) -0:208 'r023' ( temp 3-component vector of float) -0:208 degrees ( temp 3-component vector of float) -0:208 'inF0' ( in 3-component vector of float) -0:209 Sequence -0:209 move second child to first child ( temp float) -0:209 'r024' ( temp float) -0:209 distance ( temp float) -0:209 'inF0' ( in 3-component vector of float) -0:209 'inF1' ( in 3-component vector of float) -0:210 Sequence -0:210 move second child to first child ( temp float) -0:210 'r025' ( temp float) -0:210 dot-product ( temp float) -0:210 'inF0' ( in 3-component vector of float) -0:210 'inF1' ( 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 'r029' ( temp 3-component vector of float) -0:214 exp ( temp 3-component vector of float) -0:214 'inF0' ( in 3-component vector of float) -0:215 Sequence -0:215 move second child to first child ( temp 3-component vector of float) -0:215 'r030' ( temp 3-component vector of float) -0:215 exp2 ( temp 3-component vector of float) -0:215 'inF0' ( in 3-component vector of float) -0:216 Sequence -0:216 move second child to first child ( temp 3-component vector of float) -0:216 'r031' ( temp 3-component vector of float) -0:216 face-forward ( temp 3-component vector of float) -0:216 'inF0' ( in 3-component vector of float) -0:216 'inF1' ( in 3-component vector of float) -0:216 'inF2' ( in 3-component vector of float) -0:217 Sequence -0:217 move second child to first child ( temp 3-component vector of uint) -0:217 'r032' ( temp 3-component vector of uint) -0:217 findMSB ( temp 3-component vector of uint) -0:217 Constant: -0:217 2 (const uint) -0:217 3 (const uint) -0:217 4 (const uint) -0:218 Sequence -0:218 move second child to first child ( temp 3-component vector of uint) -0:218 'r033' ( temp 3-component vector of uint) -0:218 findLSB ( temp 3-component vector of uint) -0:218 Constant: -0:218 2 (const uint) -0:218 3 (const uint) -0:218 4 (const uint) -0:219 Sequence -0:219 move second child to first child ( temp 3-component vector of float) -0:219 'r034' ( temp 3-component vector of float) -0:219 Floor ( temp 3-component vector of float) -0:219 '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 'r036' ( temp 3-component vector of float) -0:221 mod ( temp 3-component vector of float) -0:221 'inF0' ( in 3-component vector of float) -0:221 'inF1' ( in 3-component vector of float) -0:222 Sequence -0:222 move second child to first child ( temp 3-component vector of float) -0:222 'r037' ( temp 3-component vector of float) -0:222 Fraction ( temp 3-component vector of float) -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 float) -0:223 'r039' ( temp 3-component vector of float) -0:223 fwidth ( temp 3-component vector of float) -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 bool) -0:224 'r040' ( temp 3-component vector of bool) -0:224 isinf ( temp 3-component vector of bool) -0:224 'inF0' ( in 3-component vector of float) -0:225 Sequence -0:225 move second child to first child ( temp 3-component vector of bool) -0:225 'r041' ( temp 3-component vector of bool) -0:225 isnan ( temp 3-component vector of bool) -0:225 'inF0' ( 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 'r042' ( temp 3-component vector of float) -0:226 ldexp ( 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:227 Sequence -0:227 move second child to first child ( temp 3-component vector of float) -0:227 'r039a' ( temp 3-component vector of float) -0:227 mix ( temp 3-component vector of float) -0:227 'inF0' ( in 3-component vector of float) -0:227 'inF1' ( in 3-component vector of float) -0:227 'inF2' ( 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 'r039b' ( temp 3-component vector of float) -0:228 mix ( temp 3-component vector of float) -0:228 'inF0' ( in 3-component vector of float) -0:228 'inF1' ( in 3-component vector of float) -0:228 Constant: -0:228 0.300000 -0:229 Sequence -0:229 move second child to first child ( temp float) -0:229 'r043' ( temp float) -0:229 length ( temp float) -0:229 'inF0' ( in 3-component vector of float) -0:230 Sequence -0:230 move second child to first child ( temp 3-component vector of float) -0:230 'r044' ( temp 3-component vector of float) -0:230 log ( 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 'r045' ( temp 3-component vector of float) -0:231 vector-scale ( temp 3-component vector of float) -0:231 log2 ( temp 3-component vector of float) -0:231 'inF0' ( in 3-component vector of float) -0:231 Constant: -0:231 0.301030 -0:232 Sequence -0:232 move second child to first child ( temp 3-component vector of float) -0:232 'r046' ( temp 3-component vector of float) -0:232 log2 ( temp 3-component vector of float) -0:232 'inF0' ( in 3-component vector of float) -0:233 Sequence -0:233 move second child to first child ( temp 3-component vector of float) -0:233 'r047' ( temp 3-component vector of float) -0:233 max ( temp 3-component vector of float) -0:233 'inF0' ( in 3-component vector of float) -0:233 'inF1' ( in 3-component vector of float) -0:234 Sequence -0:234 move second child to first child ( temp 3-component vector of float) -0:234 'r048' ( temp 3-component vector of float) -0:234 min ( 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 'r049' ( temp 3-component vector of float) -0:235 normalize ( 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 'r050' ( temp 3-component vector of float) -0:236 pow ( temp 3-component vector of float) -0:236 'inF0' ( in 3-component vector of float) -0:236 'inF1' ( in 3-component vector of float) -0:237 Sequence -0:237 move second child to first child ( temp 3-component vector of float) -0:237 'r051' ( temp 3-component vector of float) -0:237 radians ( temp 3-component vector of float) -0:237 'inF0' ( in 3-component vector of float) -0:238 Sequence -0:238 move second child to first child ( temp 3-component vector of float) -0:238 'r052' ( temp 3-component vector of float) -0:238 divide ( temp 3-component vector of float) -0:238 Constant: -0:238 1.000000 -0:238 'inF0' ( in 3-component vector of float) -0:239 Sequence -0:239 move second child to first child ( temp 3-component vector of float) -0:239 'r053' ( temp 3-component vector of float) -0:239 reflect ( temp 3-component vector of float) -0:239 'inF0' ( in 3-component vector of float) -0:239 'inF1' ( in 3-component vector of float) -0:240 Sequence -0:240 move second child to first child ( temp 3-component vector of float) -0:240 'r054' ( temp 3-component vector of float) -0:240 refract ( temp 3-component vector of float) -0:240 'inF0' ( in 3-component vector of float) -0:240 'inF1' ( in 3-component vector of float) -0:240 Constant: -0:240 2.000000 -0:241 Sequence -0:241 move second child to first child ( temp 3-component vector of uint) -0:241 'r055' ( temp 3-component vector of uint) -0:241 bitFieldReverse ( temp 3-component vector of uint) -0:241 Constant: -0:241 1 (const uint) -0:241 2 (const uint) -0:241 3 (const uint) -0:242 Sequence -0:242 move second child to first child ( temp 3-component vector of float) -0:242 'r056' ( temp 3-component vector of float) -0:242 roundEven ( temp 3-component vector of float) -0:242 'inF0' ( in 3-component vector of float) -0:243 Sequence -0:243 move second child to first child ( temp 3-component vector of float) -0:243 'r057' ( temp 3-component vector of float) -0:243 inverse sqrt ( 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 'r058' ( temp 3-component vector of float) -0:244 clamp ( temp 3-component vector of float) -0:244 'inF0' ( in 3-component vector of float) -0:244 Constant: -0:244 0.000000 -0:244 Constant: -0:244 1.000000 -0:245 Sequence -0:245 move second child to first child ( temp 3-component vector of float) -0:245 'r059' ( temp 3-component vector of float) -0:245 Sign ( 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 'r060' ( temp 3-component vector of float) -0:246 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 'inF1' ( in 3-component vector of float) -0:247 sine ( temp 3-component vector of float) -0:247 'inF0' ( in 3-component vector of float) -0:247 move second child to first child ( temp 3-component vector of float) -0:247 'inF2' ( in 3-component vector of float) -0:247 cosine ( temp 3-component vector of float) -0:247 'inF0' ( in 3-component vector of float) -0:248 Sequence -0:248 move second child to first child ( temp 3-component vector of float) -0:248 'r061' ( temp 3-component vector of float) -0:248 hyp. sine ( 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 'r062' ( temp 3-component vector of float) -0:249 smoothstep ( 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 'inF2' ( 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 'r063' ( temp 3-component vector of float) -0:250 sqrt ( 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 'r064' ( temp 3-component vector of float) -0:251 step ( temp 3-component vector of float) -0:251 'inF0' ( in 3-component vector of float) -0:251 'inF1' ( in 3-component vector of float) -0:252 Sequence -0:252 move second child to first child ( temp 3-component vector of float) -0:252 'r065' ( temp 3-component vector of float) -0:252 tangent ( temp 3-component vector of float) -0:252 '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 'r066' ( temp 3-component vector of float) -0:253 hyp. tangent ( temp 3-component vector of float) -0:253 'inF0' ( in 3-component vector of float) -0:255 Sequence -0:255 move second child to first child ( temp 3-component vector of float) -0:255 'r067' ( temp 3-component vector of float) -0:255 trunc ( temp 3-component vector of float) -0:255 'inF0' ( in 3-component vector of float) -0:258 Branch: Return with expression -0:258 Constant: -0:258 1.000000 -0:258 2.000000 -0:258 3.000000 -0:262 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; ( temp 4-component vector of float) -0:262 Function Parameters: -0:262 'inF0' ( in 4-component vector of float) -0:262 'inF1' ( in 4-component vector of float) -0:262 'inF2' ( in 4-component vector of float) -0:262 'inU0' ( in 4-component vector of uint) -0:262 'inU1' ( in 4-component vector of uint) -0:? Sequence -0:265 Sequence -0:265 move second child to first child ( temp bool) -0:265 'r000' ( temp bool) -0:265 all ( temp bool) -0:265 Convert float to bool ( temp 4-component vector of bool) -0:265 'inF0' ( in 4-component vector of float) -0:266 Sequence -0:266 move second child to first child ( temp 4-component vector of float) -0:266 'r001' ( temp 4-component vector of float) -0:266 Absolute value ( 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 'r002' ( temp 4-component vector of float) -0:267 arc cosine ( 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 bool) -0:268 'r003' ( temp bool) -0:268 any ( temp bool) -0:268 Convert float to bool ( temp 4-component vector of bool) -0:268 'inF0' ( in 4-component vector of float) -0:269 Sequence -0:269 move second child to first child ( temp 4-component vector of float) -0:269 'r004' ( temp 4-component vector of float) -0:269 arc sine ( temp 4-component vector of float) -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 int) -0:270 'r005' ( temp 4-component vector of int) -0:270 floatBitsToInt ( temp 4-component vector of int) -0:270 'inF0' ( in 4-component vector of float) -0:271 Sequence -0:271 move second child to first child ( temp 4-component vector of uint) -0:271 'r006' ( temp 4-component vector of uint) -0:271 floatBitsToUint ( temp 4-component vector of uint) -0:271 'inF0' ( in 4-component vector of float) -0:272 Sequence -0:272 move second child to first child ( temp 4-component vector of float) -0:272 'r007' ( temp 4-component vector of float) -0:272 intBitsToFloat ( temp 4-component vector of float) -0:272 'inU0' ( in 4-component vector of uint) -0:274 Sequence -0:274 move second child to first child ( temp 4-component vector of float) -0:274 'r009' ( temp 4-component vector of float) -0:274 arc tangent ( 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 'r010' ( temp 4-component vector of float) -0:275 arc tangent ( 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:276 Sequence -0:276 move second child to first child ( temp 4-component vector of float) -0:276 'r011' ( temp 4-component vector of float) -0:276 Ceiling ( temp 4-component vector of float) -0:276 'inF0' ( in 4-component vector of float) -0:277 Sequence -0:277 move second child to first child ( temp 4-component vector of float) -0:277 'r012' ( temp 4-component vector of float) -0:277 clamp ( temp 4-component vector of float) -0:277 'inF0' ( in 4-component vector of float) -0:277 'inF1' ( in 4-component vector of float) -0:277 'inF2' ( in 4-component vector of float) -0:278 Test condition and select ( temp void) -0:278 Condition -0:278 any ( temp bool) -0:278 Compare Less Than ( temp 4-component vector of bool) -0:278 'inF0' ( in 4-component vector of float) -0:278 Constant: -0:278 0.000000 -0:278 0.000000 -0:278 0.000000 -0:278 0.000000 -0:278 true case -0:278 Branch: Kill -0:279 Test condition and select ( temp void) -0:279 Condition -0:279 any ( temp bool) -0:279 Compare Less Than ( temp 4-component vector of bool) -0:279 'inU0' ( in 4-component vector of uint) -0:279 Constant: -0:279 0.000000 -0:279 0.000000 -0:279 0.000000 -0:279 0.000000 -0:279 true case -0:279 Branch: Kill -0:280 Sequence -0:280 move second child to first child ( temp 4-component vector of float) -0:280 'r013' ( temp 4-component vector of float) -0:280 cosine ( 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 'r014' ( temp 4-component vector of float) -0:281 hyp. cosine ( 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 uint) -0:282 'r015' ( temp 4-component vector of uint) -0:282 bitCount ( temp 4-component vector of uint) -0:282 Constant: -0:282 7 (const uint) -0:282 3 (const uint) -0:282 5 (const uint) -0:282 2 (const uint) -0:283 Sequence -0:283 move second child to first child ( temp 4-component vector of float) -0:283 'r016' ( temp 4-component vector of float) -0:283 dPdx ( 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 'r017' ( temp 4-component vector of float) -0:284 dPdxCoarse ( 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 'r018' ( temp 4-component vector of float) -0:285 dPdxFine ( 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 'r019' ( temp 4-component vector of float) -0:286 dPdy ( 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 'r020' ( temp 4-component vector of float) -0:287 dPdyCoarse ( 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 4-component vector of float) -0:288 'r021' ( temp 4-component vector of float) -0:288 dPdyFine ( temp 4-component vector of float) -0:288 'inF0' ( 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 'r022' ( temp 4-component vector of float) -0:289 degrees ( temp 4-component vector of float) -0:289 'inF0' ( in 4-component vector of float) -0:290 Sequence -0:290 move second child to first child ( temp float) -0:290 'r023' ( temp float) -0:290 distance ( temp float) -0:290 'inF0' ( in 4-component vector of float) -0:290 'inF1' ( in 4-component vector of float) -0:291 Sequence -0:291 move second child to first child ( temp float) -0:291 'r024' ( temp float) -0:291 dot-product ( temp float) -0:291 'inF0' ( in 4-component vector of float) -0:291 'inF1' ( in 4-component vector of float) -0:292 Sequence -0:292 move second child to first child ( temp 4-component vector of float) -0:292 'r025' ( temp 4-component vector of float) -0:292 Construct vec4 ( temp 4-component vector of float) -0:292 Constant: -0:292 1.000000 -0:292 component-wise multiply ( temp float) -0:292 direct index ( temp float) -0:292 'inF0' ( in 4-component vector of float) -0:292 Constant: -0:292 1 (const int) -0:292 direct index ( temp float) -0:292 'inF1' ( in 4-component vector of float) -0:292 Constant: -0:292 1 (const int) -0:292 direct index ( temp float) -0:292 'inF0' ( in 4-component vector of float) -0:292 Constant: -0:292 2 (const int) -0:292 direct index ( temp float) -0:292 'inF1' ( in 4-component vector of float) -0:292 Constant: -0:292 3 (const int) -0:296 Sequence -0:296 move second child to first child ( temp 4-component vector of float) -0:296 'r029' ( temp 4-component vector of float) -0:296 exp ( temp 4-component vector of float) -0:296 'inF0' ( in 4-component vector of float) -0:297 Sequence -0:297 move second child to first child ( temp 4-component vector of float) -0:297 'r030' ( temp 4-component vector of float) -0:297 exp2 ( temp 4-component vector of float) -0:297 'inF0' ( in 4-component vector of float) -0:298 Sequence -0:298 move second child to first child ( temp 4-component vector of float) -0:298 'r031' ( temp 4-component vector of float) -0:298 face-forward ( temp 4-component vector of float) -0:298 'inF0' ( in 4-component vector of float) -0:298 'inF1' ( in 4-component vector of float) -0:298 'inF2' ( in 4-component vector of float) -0:299 Sequence -0:299 move second child to first child ( temp 4-component vector of uint) -0:299 'r032' ( temp 4-component vector of uint) -0:299 findMSB ( temp 4-component vector of uint) -0:299 Constant: -0:299 7 (const uint) -0:299 8 (const uint) -0:299 9 (const uint) -0:299 10 (const uint) -0:300 Sequence -0:300 move second child to first child ( temp 4-component vector of uint) -0:300 'r033' ( temp 4-component vector of uint) -0:300 findLSB ( temp 4-component vector of uint) -0:300 Constant: -0:300 7 (const uint) -0:300 8 (const uint) -0:300 9 (const uint) -0:300 10 (const uint) -0:301 Sequence -0:301 move second child to first child ( temp 4-component vector of float) -0:301 'r034' ( temp 4-component vector of float) -0:301 Floor ( temp 4-component vector of float) -0:301 '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 'r036' ( temp 4-component vector of float) -0:303 mod ( temp 4-component vector of float) -0:303 'inF0' ( in 4-component vector of float) -0:303 'inF1' ( in 4-component vector of float) -0:304 Sequence -0:304 move second child to first child ( temp 4-component vector of float) -0:304 'r037' ( temp 4-component vector of float) -0:304 Fraction ( temp 4-component vector of float) -0:304 'inF0' ( in 4-component vector of float) -0:305 Sequence -0:305 move second child to first child ( temp 4-component vector of float) -0:305 'r039' ( temp 4-component vector of float) -0:305 fwidth ( temp 4-component vector of float) -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 bool) -0:306 'r040' ( temp 4-component vector of bool) -0:306 isinf ( temp 4-component vector of bool) -0:306 'inF0' ( in 4-component vector of float) -0:307 Sequence -0:307 move second child to first child ( temp 4-component vector of bool) -0:307 'r041' ( temp 4-component vector of bool) -0:307 isnan ( temp 4-component vector of bool) -0:307 'inF0' ( in 4-component vector of float) -0:308 Sequence -0:308 move second child to first child ( temp 4-component vector of float) -0:308 'r042' ( temp 4-component vector of float) -0:308 ldexp ( temp 4-component vector of float) -0:308 'inF0' ( in 4-component vector of float) -0:308 'inF1' ( 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 'r039a' ( temp 4-component vector of float) -0:309 mix ( temp 4-component vector of float) -0:309 'inF0' ( in 4-component vector of float) -0:309 'inF1' ( in 4-component vector of float) -0:309 'inF2' ( in 4-component vector of float) -0:310 Sequence -0:310 move second child to first child ( temp float) -0:310 'r043' ( temp float) -0:310 length ( temp float) -0:310 'inF0' ( in 4-component vector of float) -0:311 Sequence -0:311 move second child to first child ( temp 4-component vector of float) -0:311 'r044' ( temp 4-component vector of float) -0:311 log ( 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 'r045' ( temp 4-component vector of float) -0:312 vector-scale ( temp 4-component vector of float) -0:312 log2 ( temp 4-component vector of float) -0:312 'inF0' ( in 4-component vector of float) -0:312 Constant: -0:312 0.301030 -0:313 Sequence -0:313 move second child to first child ( temp 4-component vector of float) -0:313 'r046' ( temp 4-component vector of float) -0:313 log2 ( temp 4-component vector of float) -0:313 'inF0' ( in 4-component vector of float) -0:314 Sequence -0:314 move second child to first child ( temp 4-component vector of float) -0:314 'r047' ( temp 4-component vector of float) -0:314 max ( temp 4-component vector of float) -0:314 'inF0' ( in 4-component vector of float) -0:314 'inF1' ( in 4-component vector of float) -0:315 Sequence -0:315 move second child to first child ( temp 4-component vector of float) -0:315 'r048' ( temp 4-component vector of float) -0:315 min ( 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 'r049' ( temp 4-component vector of float) -0:316 normalize ( 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 'r050' ( temp 4-component vector of float) -0:317 pow ( temp 4-component vector of float) -0:317 'inF0' ( in 4-component vector of float) -0:317 'inF1' ( in 4-component vector of float) -0:318 Sequence -0:318 move second child to first child ( temp 4-component vector of float) -0:318 'r051' ( temp 4-component vector of float) -0:318 radians ( temp 4-component vector of float) -0:318 'inF0' ( 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 'r052' ( temp 4-component vector of float) -0:319 divide ( temp 4-component vector of float) -0:319 Constant: -0:319 1.000000 -0:319 'inF0' ( in 4-component vector of float) -0:320 Sequence -0:320 move second child to first child ( temp 4-component vector of float) -0:320 'r053' ( temp 4-component vector of float) -0:320 reflect ( temp 4-component vector of float) -0:320 'inF0' ( in 4-component vector of float) -0:320 'inF1' ( in 4-component vector of float) -0:321 Sequence -0:321 move second child to first child ( temp 4-component vector of float) -0:321 'r054' ( temp 4-component vector of float) -0:321 refract ( temp 4-component vector of float) -0:321 'inF0' ( in 4-component vector of float) -0:321 'inF1' ( in 4-component vector of float) -0:321 Constant: -0:321 2.000000 -0:322 Sequence -0:322 move second child to first child ( temp 4-component vector of uint) -0:322 'r055' ( temp 4-component vector of uint) -0:322 bitFieldReverse ( temp 4-component vector of uint) -0:322 Constant: -0:322 1 (const uint) -0:322 2 (const uint) -0:322 3 (const uint) -0:322 4 (const uint) -0:323 Sequence -0:323 move second child to first child ( temp 4-component vector of float) -0:323 'r056' ( temp 4-component vector of float) -0:323 roundEven ( temp 4-component vector of float) -0:323 'inF0' ( in 4-component vector of float) -0:324 Sequence -0:324 move second child to first child ( temp 4-component vector of float) -0:324 'r057' ( temp 4-component vector of float) -0:324 inverse sqrt ( 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 'r058' ( temp 4-component vector of float) -0:325 clamp ( temp 4-component vector of float) -0:325 'inF0' ( in 4-component vector of float) -0:325 Constant: -0:325 0.000000 -0:325 Constant: -0:325 1.000000 -0:326 Sequence -0:326 move second child to first child ( temp 4-component vector of float) -0:326 'r059' ( temp 4-component vector of float) -0:326 Sign ( 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 'r060' ( temp 4-component vector of float) -0:327 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 'inF1' ( in 4-component vector of float) -0:328 sine ( temp 4-component vector of float) -0:328 'inF0' ( in 4-component vector of float) -0:328 move second child to first child ( temp 4-component vector of float) -0:328 'inF2' ( in 4-component vector of float) -0:328 cosine ( temp 4-component vector of float) -0:328 'inF0' ( in 4-component vector of float) -0:329 Sequence -0:329 move second child to first child ( temp 4-component vector of float) -0:329 'r061' ( temp 4-component vector of float) -0:329 hyp. sine ( 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 'r062' ( temp 4-component vector of float) -0:330 smoothstep ( 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 'inF2' ( 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 'r063' ( temp 4-component vector of float) -0:331 sqrt ( 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 'r064' ( temp 4-component vector of float) -0:332 step ( temp 4-component vector of float) -0:332 'inF0' ( in 4-component vector of float) -0:332 'inF1' ( in 4-component vector of float) -0:333 Sequence -0:333 move second child to first child ( temp 4-component vector of float) -0:333 'r065' ( temp 4-component vector of float) -0:333 tangent ( temp 4-component vector of float) -0:333 '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 'r066' ( temp 4-component vector of float) -0:334 hyp. tangent ( temp 4-component vector of float) -0:334 'inF0' ( in 4-component vector of float) -0:336 Sequence -0:336 move second child to first child ( temp 4-component vector of float) -0:336 'r067' ( temp 4-component vector of float) -0:336 trunc ( temp 4-component vector of float) -0:336 'inF0' ( in 4-component vector of float) -0:339 Branch: Return with expression -0:339 Constant: -0:339 1.000000 -0:339 2.000000 -0:339 3.000000 -0:339 4.000000 -0:402 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; ( temp 2X2 matrix of float) -0:402 Function Parameters: -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:? Sequence -0:404 Sequence -0:404 move second child to first child ( temp bool) -0:404 'r000' ( temp bool) -0:404 all ( temp bool) -0:404 Convert float to bool ( temp 2X2 matrix of bool) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r001' ( temp 2X2 matrix of float) -0:404 Absolute value ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 arc cosine ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp bool) -0:404 'r003' ( temp bool) -0:404 any ( temp bool) -0:404 Convert float to bool ( temp 2X2 matrix of bool) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r004' ( temp 2X2 matrix of float) -0:404 arc sine ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r005' ( temp 2X2 matrix of float) -0:404 arc tangent ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r006' ( temp 2X2 matrix of float) -0:404 arc tangent ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 'inF1' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r007' ( temp 2X2 matrix of float) -0:404 Ceiling ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Test condition and select ( temp void) -0:404 Condition -0:404 any ( temp bool) -0:404 Compare Less Than ( temp 2X2 matrix of bool) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Constant: -0:404 0.000000 -0:404 0.000000 -0:404 0.000000 -0:404 0.000000 -0:404 true case -0:404 Branch: Kill -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r008' ( temp 2X2 matrix of float) -0:404 clamp ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 'inF1' ( in 2X2 matrix of float) -0:404 'inF2' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r009' ( temp 2X2 matrix of float) -0:404 cosine ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r010' ( temp 2X2 matrix of float) -0:404 hyp. cosine ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r011' ( temp 2X2 matrix of float) -0:404 dPdx ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r012' ( temp 2X2 matrix of float) -0:404 dPdxCoarse ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r013' ( temp 2X2 matrix of float) -0:404 dPdxFine ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r014' ( temp 2X2 matrix of float) -0:404 dPdy ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r015' ( temp 2X2 matrix of float) -0:404 dPdyCoarse ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r016' ( temp 2X2 matrix of float) -0:404 dPdyFine ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r017' ( temp 2X2 matrix of float) -0:404 degrees ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp float) -0:404 'r018' ( temp float) -0:404 determinant ( temp float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r019' ( temp 2X2 matrix of float) -0:404 exp ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'R020' ( temp 2X2 matrix of float) -0:404 exp2 ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r021' ( temp 2X2 matrix of float) -0:404 Floor ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r022' ( temp 2X2 matrix of float) -0:404 mod ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 'inF1' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r023' ( temp 2X2 matrix of float) -0:404 Fraction ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r025' ( temp 2X2 matrix of float) -0:404 fwidth ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r026' ( temp 2X2 matrix of float) -0:404 ldexp ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 'inF1' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r026a' ( temp 2X2 matrix of float) -0:404 mix ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 'inF1' ( in 2X2 matrix of float) -0:404 'inF2' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r027' ( temp 2X2 matrix of float) -0:404 log ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r028' ( temp 2X2 matrix of float) -0:404 matrix-scale ( temp 2X2 matrix of float) -0:404 log2 ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Constant: -0:404 0.301030 -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r029' ( temp 2X2 matrix of float) -0:404 log2 ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r030' ( temp 2X2 matrix of float) -0:404 max ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 'inF1' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r031' ( temp 2X2 matrix of float) -0:404 min ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 'inF1' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r032' ( temp 2X2 matrix of float) -0:404 pow ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 'inF1' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r033' ( temp 2X2 matrix of float) -0:404 radians ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r034' ( temp 2X2 matrix of float) -0:404 roundEven ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r035' ( temp 2X2 matrix of float) -0:404 inverse sqrt ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r036' ( temp 2X2 matrix of float) -0:404 clamp ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Constant: -0:404 0.000000 -0:404 Constant: -0:404 1.000000 -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r037' ( temp 2X2 matrix of float) -0:404 Sign ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r038' ( temp 2X2 matrix of float) -0:404 sine ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'inF1' ( in 2X2 matrix of float) -0:404 sine ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'inF2' ( in 2X2 matrix of float) -0:404 cosine ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r039' ( temp 2X2 matrix of float) -0:404 hyp. sine ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r049' ( temp 2X2 matrix of float) -0:404 smoothstep ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 'inF1' ( in 2X2 matrix of float) -0:404 'inF2' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r041' ( temp 2X2 matrix of float) -0:404 sqrt ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r042' ( temp 2X2 matrix of float) -0:404 step ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 'inF1' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r043' ( temp 2X2 matrix of float) -0:404 tangent ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r044' ( temp 2X2 matrix of float) -0:404 hyp. tangent ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 transpose ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:404 Sequence -0:404 move second child to first child ( temp 2X2 matrix of float) -0:404 'r046' ( temp 2X2 matrix of float) -0:404 trunc ( temp 2X2 matrix of float) -0:404 'inF0' ( in 2X2 matrix of float) -0:407 Branch: Return with expression -0:407 Constant: -0:407 2.000000 -0:407 2.000000 -0:407 2.000000 -0:407 2.000000 -0:411 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; ( temp 3X3 matrix of float) -0:411 Function Parameters: -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:? Sequence -0:413 Sequence -0:413 move second child to first child ( temp bool) -0:413 'r000' ( temp bool) -0:413 all ( temp bool) -0:413 Convert float to bool ( temp 3X3 matrix of bool) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r001' ( temp 3X3 matrix of float) -0:413 Absolute value ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 arc cosine ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp bool) -0:413 'r003' ( temp bool) -0:413 any ( temp bool) -0:413 Convert float to bool ( temp 3X3 matrix of bool) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r004' ( temp 3X3 matrix of float) -0:413 arc sine ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r005' ( temp 3X3 matrix of float) -0:413 arc tangent ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r006' ( temp 3X3 matrix of float) -0:413 arc tangent ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 'inF1' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r007' ( temp 3X3 matrix of float) -0:413 Ceiling ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Test condition and select ( temp void) -0:413 Condition -0:413 any ( temp bool) -0:413 Compare Less Than ( temp 3X3 matrix of bool) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Constant: -0:413 0.000000 -0:413 0.000000 -0:413 0.000000 -0:413 0.000000 -0:413 0.000000 -0:413 0.000000 -0:413 0.000000 -0:413 0.000000 -0:413 0.000000 -0:413 true case -0:413 Branch: Kill -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r008' ( temp 3X3 matrix of float) -0:413 clamp ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 'inF1' ( in 3X3 matrix of float) -0:413 'inF2' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r009' ( temp 3X3 matrix of float) -0:413 cosine ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r010' ( temp 3X3 matrix of float) -0:413 hyp. cosine ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r011' ( temp 3X3 matrix of float) -0:413 dPdx ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r012' ( temp 3X3 matrix of float) -0:413 dPdxCoarse ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r013' ( temp 3X3 matrix of float) -0:413 dPdxFine ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r014' ( temp 3X3 matrix of float) -0:413 dPdy ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r015' ( temp 3X3 matrix of float) -0:413 dPdyCoarse ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r016' ( temp 3X3 matrix of float) -0:413 dPdyFine ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r017' ( temp 3X3 matrix of float) -0:413 degrees ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp float) -0:413 'r018' ( temp float) -0:413 determinant ( temp float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r019' ( temp 3X3 matrix of float) -0:413 exp ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'R020' ( temp 3X3 matrix of float) -0:413 exp2 ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r021' ( temp 3X3 matrix of float) -0:413 Floor ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r022' ( temp 3X3 matrix of float) -0:413 mod ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 'inF1' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r023' ( temp 3X3 matrix of float) -0:413 Fraction ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r025' ( temp 3X3 matrix of float) -0:413 fwidth ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r026' ( temp 3X3 matrix of float) -0:413 ldexp ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 'inF1' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r026a' ( temp 3X3 matrix of float) -0:413 mix ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 'inF1' ( in 3X3 matrix of float) -0:413 'inF2' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r027' ( temp 3X3 matrix of float) -0:413 log ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r028' ( temp 3X3 matrix of float) -0:413 matrix-scale ( temp 3X3 matrix of float) -0:413 log2 ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Constant: -0:413 0.301030 -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r029' ( temp 3X3 matrix of float) -0:413 log2 ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r030' ( temp 3X3 matrix of float) -0:413 max ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 'inF1' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r031' ( temp 3X3 matrix of float) -0:413 min ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 'inF1' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r032' ( temp 3X3 matrix of float) -0:413 pow ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 'inF1' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r033' ( temp 3X3 matrix of float) -0:413 radians ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r034' ( temp 3X3 matrix of float) -0:413 roundEven ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r035' ( temp 3X3 matrix of float) -0:413 inverse sqrt ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r036' ( temp 3X3 matrix of float) -0:413 clamp ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Constant: -0:413 0.000000 -0:413 Constant: -0:413 1.000000 -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r037' ( temp 3X3 matrix of float) -0:413 Sign ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r038' ( temp 3X3 matrix of float) -0:413 sine ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'inF1' ( in 3X3 matrix of float) -0:413 sine ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'inF2' ( in 3X3 matrix of float) -0:413 cosine ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r039' ( temp 3X3 matrix of float) -0:413 hyp. sine ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r049' ( temp 3X3 matrix of float) -0:413 smoothstep ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 'inF1' ( in 3X3 matrix of float) -0:413 'inF2' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r041' ( temp 3X3 matrix of float) -0:413 sqrt ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r042' ( temp 3X3 matrix of float) -0:413 step ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 'inF1' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r043' ( temp 3X3 matrix of float) -0:413 tangent ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r044' ( temp 3X3 matrix of float) -0:413 hyp. tangent ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 transpose ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:413 Sequence -0:413 move second child to first child ( temp 3X3 matrix of float) -0:413 'r046' ( temp 3X3 matrix of float) -0:413 trunc ( temp 3X3 matrix of float) -0:413 'inF0' ( in 3X3 matrix of float) -0:416 Branch: Return with expression -0:416 Constant: -0:416 3.000000 -0:416 3.000000 -0:416 3.000000 -0:416 3.000000 -0:416 3.000000 -0:416 3.000000 -0:416 3.000000 -0:416 3.000000 -0:416 3.000000 -0:420 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; ( temp 4X4 matrix of float) -0:420 Function Parameters: -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:? Sequence -0:422 Sequence -0:422 move second child to first child ( temp bool) -0:422 'r000' ( temp bool) -0:422 all ( temp bool) -0:422 Convert float to bool ( temp 4X4 matrix of bool) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r001' ( temp 4X4 matrix of float) -0:422 Absolute value ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 arc cosine ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp bool) -0:422 'r003' ( temp bool) -0:422 any ( temp bool) -0:422 Convert float to bool ( temp 4X4 matrix of bool) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r004' ( temp 4X4 matrix of float) -0:422 arc sine ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r005' ( temp 4X4 matrix of float) -0:422 arc tangent ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r006' ( temp 4X4 matrix of float) -0:422 arc tangent ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 'inF1' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r007' ( temp 4X4 matrix of float) -0:422 Ceiling ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Test condition and select ( temp void) -0:422 Condition -0:422 any ( temp bool) -0:422 Compare Less Than ( temp 4X4 matrix of bool) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Constant: -0:422 0.000000 -0:422 0.000000 -0:422 0.000000 -0:422 0.000000 -0:422 0.000000 -0:422 0.000000 -0:422 0.000000 -0:422 0.000000 -0:422 0.000000 -0:422 0.000000 -0:422 0.000000 -0:422 0.000000 -0:422 0.000000 -0:422 0.000000 -0:422 0.000000 -0:422 0.000000 -0:422 true case -0:422 Branch: Kill -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r008' ( temp 4X4 matrix of float) -0:422 clamp ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 'inF1' ( in 4X4 matrix of float) -0:422 'inF2' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r009' ( temp 4X4 matrix of float) -0:422 cosine ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r010' ( temp 4X4 matrix of float) -0:422 hyp. cosine ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r011' ( temp 4X4 matrix of float) -0:422 dPdx ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r012' ( temp 4X4 matrix of float) -0:422 dPdxCoarse ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r013' ( temp 4X4 matrix of float) -0:422 dPdxFine ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r014' ( temp 4X4 matrix of float) -0:422 dPdy ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r015' ( temp 4X4 matrix of float) -0:422 dPdyCoarse ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r016' ( temp 4X4 matrix of float) -0:422 dPdyFine ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r017' ( temp 4X4 matrix of float) -0:422 degrees ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp float) -0:422 'r018' ( temp float) -0:422 determinant ( temp float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r019' ( temp 4X4 matrix of float) -0:422 exp ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'R020' ( temp 4X4 matrix of float) -0:422 exp2 ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r021' ( temp 4X4 matrix of float) -0:422 Floor ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r022' ( temp 4X4 matrix of float) -0:422 mod ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 'inF1' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r023' ( temp 4X4 matrix of float) -0:422 Fraction ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r025' ( temp 4X4 matrix of float) -0:422 fwidth ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r026' ( temp 4X4 matrix of float) -0:422 ldexp ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 'inF1' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r026a' ( temp 4X4 matrix of float) -0:422 mix ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 'inF1' ( in 4X4 matrix of float) -0:422 'inF2' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r027' ( temp 4X4 matrix of float) -0:422 log ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r028' ( temp 4X4 matrix of float) -0:422 matrix-scale ( temp 4X4 matrix of float) -0:422 log2 ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Constant: -0:422 0.301030 -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r029' ( temp 4X4 matrix of float) -0:422 log2 ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r030' ( temp 4X4 matrix of float) -0:422 max ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 'inF1' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r031' ( temp 4X4 matrix of float) -0:422 min ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 'inF1' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r032' ( temp 4X4 matrix of float) -0:422 pow ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 'inF1' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r033' ( temp 4X4 matrix of float) -0:422 radians ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r034' ( temp 4X4 matrix of float) -0:422 roundEven ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r035' ( temp 4X4 matrix of float) -0:422 inverse sqrt ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r036' ( temp 4X4 matrix of float) -0:422 clamp ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Constant: -0:422 0.000000 -0:422 Constant: -0:422 1.000000 -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r037' ( temp 4X4 matrix of float) -0:422 Sign ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r038' ( temp 4X4 matrix of float) -0:422 sine ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'inF1' ( in 4X4 matrix of float) -0:422 sine ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'inF2' ( in 4X4 matrix of float) -0:422 cosine ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r039' ( temp 4X4 matrix of float) -0:422 hyp. sine ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r049' ( temp 4X4 matrix of float) -0:422 smoothstep ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 'inF1' ( in 4X4 matrix of float) -0:422 'inF2' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r041' ( temp 4X4 matrix of float) -0:422 sqrt ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r042' ( temp 4X4 matrix of float) -0:422 step ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 'inF1' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r043' ( temp 4X4 matrix of float) -0:422 tangent ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r044' ( temp 4X4 matrix of float) -0:422 hyp. tangent ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 transpose ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:422 Sequence -0:422 move second child to first child ( temp 4X4 matrix of float) -0:422 'r046' ( temp 4X4 matrix of float) -0:422 trunc ( temp 4X4 matrix of float) -0:422 'inF0' ( in 4X4 matrix of float) -0:425 Branch: Return with expression -0:425 Constant: -0:425 4.000000 -0:425 4.000000 -0:425 4.000000 -0:425 4.000000 -0:425 4.000000 -0:425 4.000000 -0:425 4.000000 -0:425 4.000000 -0:425 4.000000 -0:425 4.000000 -0:425 4.000000 -0:425 4.000000 -0:425 4.000000 -0:425 4.000000 -0:425 4.000000 -0:425 4.000000 -0:443 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; ( temp void) -0:443 Function Parameters: -0:443 'inF0' ( in float) -0:443 'inF1' ( in float) -0:443 'inFV0' ( in 2-component vector of float) -0:443 'inFV1' ( in 2-component vector of float) -0:443 'inFM0' ( in 2X2 matrix of float) -0:443 'inFM1' ( in 2X2 matrix of float) -0:? Sequence -0:444 Sequence -0:444 move second child to first child ( temp float) -0:444 'r0' ( temp float) -0:444 component-wise multiply ( temp float) -0:444 'inF1' ( in float) -0:444 'inF0' ( in float) -0:444 Sequence -0:444 move second child to first child ( temp 2-component vector of float) -0:444 'r1' ( temp 2-component vector of float) -0:444 vector-scale ( temp 2-component vector of float) -0:444 'inF0' ( in float) -0:444 'inFV0' ( in 2-component vector of float) -0:444 Sequence -0:444 move second child to first child ( temp 2-component vector of float) -0:444 'r2' ( temp 2-component vector of float) -0:444 vector-scale ( temp 2-component vector of float) -0:444 'inFV0' ( in 2-component vector of float) -0:444 'inF0' ( in float) -0:444 Sequence -0:444 move second child to first child ( temp float) -0:444 'r3' ( temp float) -0:444 dot-product ( temp float) -0:444 'inFV0' ( in 2-component vector of float) -0:444 'inFV1' ( in 2-component vector of float) -0:444 Sequence -0:444 move second child to first child ( temp 2-component vector of float) -0:444 'r4' ( temp 2-component vector of float) -0:444 vector-times-matrix ( temp 2-component vector of float) -0:444 'inFV0' ( in 2-component vector of float) -0:444 'inFM0' ( in 2X2 matrix of float) -0:444 Sequence -0:444 move second child to first child ( temp 2-component vector of float) -0:444 'r5' ( temp 2-component vector of float) -0:444 matrix-times-vector ( temp 2-component vector of float) -0:444 'inFM0' ( in 2X2 matrix of float) -0:444 'inFV0' ( in 2-component vector of float) -0:444 Sequence -0:444 move second child to first child ( temp 2X2 matrix of float) -0:444 'r6' ( temp 2X2 matrix of float) -0:444 matrix-scale ( temp 2X2 matrix of float) -0:444 'inF0' ( in float) -0:444 'inFM0' ( in 2X2 matrix of float) -0:444 Sequence -0:444 move second child to first child ( temp 2X2 matrix of float) -0:444 'r7' ( temp 2X2 matrix of float) -0:444 matrix-scale ( temp 2X2 matrix of float) -0:444 'inFM0' ( in 2X2 matrix of float) -0:444 'inF0' ( in float) -0:444 Sequence -0:444 move second child to first child ( temp 2X2 matrix of float) -0:444 'r8' ( temp 2X2 matrix of float) -0:444 matrix-multiply ( temp 2X2 matrix of float) -0:444 'inFM1' ( in 2X2 matrix of float) -0:444 'inFM0' ( in 2X2 matrix of float) -0:450 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; ( temp void) -0:450 Function Parameters: -0:450 'inF0' ( in float) -0:450 'inF1' ( in float) -0:450 'inFV0' ( in 3-component vector of float) -0:450 'inFV1' ( in 3-component vector of float) -0:450 'inFM0' ( in 3X3 matrix of float) -0:450 'inFM1' ( in 3X3 matrix of float) -0:? Sequence -0:451 Sequence -0:451 move second child to first child ( temp float) -0:451 'r0' ( temp float) -0:451 component-wise multiply ( temp float) -0:451 'inF1' ( in float) -0:451 'inF0' ( in float) -0:451 Sequence -0:451 move second child to first child ( temp 3-component vector of float) -0:451 'r1' ( temp 3-component vector of float) -0:451 vector-scale ( temp 3-component vector of float) -0:451 'inF0' ( in float) -0:451 'inFV0' ( in 3-component vector of float) -0:451 Sequence -0:451 move second child to first child ( temp 3-component vector of float) -0:451 'r2' ( temp 3-component vector of float) -0:451 vector-scale ( temp 3-component vector of float) -0:451 'inFV0' ( in 3-component vector of float) -0:451 'inF0' ( in float) -0:451 Sequence -0:451 move second child to first child ( temp float) -0:451 'r3' ( temp float) -0:451 dot-product ( temp float) -0:451 'inFV0' ( in 3-component vector of float) -0:451 'inFV1' ( in 3-component vector of float) -0:451 Sequence -0:451 move second child to first child ( temp 3-component vector of float) -0:451 'r4' ( temp 3-component vector of float) -0:451 vector-times-matrix ( temp 3-component vector of float) -0:451 'inFV0' ( in 3-component vector of float) -0:451 'inFM0' ( in 3X3 matrix of float) -0:451 Sequence -0:451 move second child to first child ( temp 3-component vector of float) -0:451 'r5' ( temp 3-component vector of float) -0:451 matrix-times-vector ( temp 3-component vector of float) -0:451 'inFM0' ( in 3X3 matrix of float) -0:451 'inFV0' ( in 3-component vector of float) -0:451 Sequence -0:451 move second child to first child ( temp 3X3 matrix of float) -0:451 'r6' ( temp 3X3 matrix of float) -0:451 matrix-scale ( temp 3X3 matrix of float) -0:451 'inF0' ( in float) -0:451 'inFM0' ( in 3X3 matrix of float) -0:451 Sequence -0:451 move second child to first child ( temp 3X3 matrix of float) -0:451 'r7' ( temp 3X3 matrix of float) -0:451 matrix-scale ( temp 3X3 matrix of float) -0:451 'inFM0' ( in 3X3 matrix of float) -0:451 'inF0' ( in float) -0:451 Sequence -0:451 move second child to first child ( temp 3X3 matrix of float) -0:451 'r8' ( temp 3X3 matrix of float) -0:451 matrix-multiply ( temp 3X3 matrix of float) -0:451 'inFM1' ( in 3X3 matrix of float) -0:451 'inFM0' ( in 3X3 matrix of float) -0:457 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; ( temp void) -0:457 Function Parameters: -0:457 'inF0' ( in float) -0:457 'inF1' ( in float) -0:457 'inFV0' ( in 4-component vector of float) -0:457 'inFV1' ( in 4-component vector of float) -0:457 'inFM0' ( in 4X4 matrix of float) -0:457 'inFM1' ( in 4X4 matrix of float) -0:? Sequence -0:458 Sequence -0:458 move second child to first child ( temp float) -0:458 'r0' ( temp float) -0:458 component-wise multiply ( temp float) -0:458 'inF1' ( in float) -0:458 'inF0' ( in float) -0:458 Sequence -0:458 move second child to first child ( temp 4-component vector of float) -0:458 'r1' ( temp 4-component vector of float) -0:458 vector-scale ( temp 4-component vector of float) -0:458 'inF0' ( in float) -0:458 'inFV0' ( in 4-component vector of float) -0:458 Sequence -0:458 move second child to first child ( temp 4-component vector of float) -0:458 'r2' ( temp 4-component vector of float) -0:458 vector-scale ( temp 4-component vector of float) -0:458 'inFV0' ( in 4-component vector of float) -0:458 'inF0' ( in float) -0:458 Sequence -0:458 move second child to first child ( temp float) -0:458 'r3' ( temp float) -0:458 dot-product ( temp float) -0:458 'inFV0' ( in 4-component vector of float) -0:458 'inFV1' ( in 4-component vector of float) -0:458 Sequence -0:458 move second child to first child ( temp 4-component vector of float) -0:458 'r4' ( temp 4-component vector of float) -0:458 vector-times-matrix ( temp 4-component vector of float) -0:458 'inFV0' ( in 4-component vector of float) -0:458 'inFM0' ( in 4X4 matrix of float) -0:458 Sequence -0:458 move second child to first child ( temp 4-component vector of float) -0:458 'r5' ( temp 4-component vector of float) -0:458 matrix-times-vector ( temp 4-component vector of float) -0:458 'inFM0' ( in 4X4 matrix of float) -0:458 'inFV0' ( in 4-component vector of float) -0:458 Sequence -0:458 move second child to first child ( temp 4X4 matrix of float) -0:458 'r6' ( temp 4X4 matrix of float) -0:458 matrix-scale ( temp 4X4 matrix of float) -0:458 'inF0' ( in float) -0:458 'inFM0' ( in 4X4 matrix of float) -0:458 Sequence -0:458 move second child to first child ( temp 4X4 matrix of float) -0:458 'r7' ( temp 4X4 matrix of float) -0:458 matrix-scale ( temp 4X4 matrix of float) -0:458 'inFM0' ( in 4X4 matrix of float) -0:458 'inF0' ( in float) -0:458 Sequence -0:458 move second child to first child ( temp 4X4 matrix of float) -0:458 'r8' ( temp 4X4 matrix of float) -0:458 matrix-multiply ( temp 4X4 matrix of float) -0:458 'inFM1' ( in 4X4 matrix of float) -0:458 'inFM0' ( in 4X4 matrix of float) -0:467 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24; ( temp void) -0:467 Function Parameters: -0:467 'inF0' ( in float) -0:467 'inF1' ( in float) -0:467 'inFV2' ( in 2-component vector of float) -0:467 'inFV3' ( in 3-component vector of float) -0:467 'inFM2x3' ( in 2X3 matrix of float) -0:467 'inFM3x2' ( in 3X2 matrix of float) -0:467 'inFM3x3' ( in 3X3 matrix of float) -0:467 'inFM3x4' ( in 3X4 matrix of float) -0:467 'inFM2x4' ( in 2X4 matrix of float) -0:? Sequence -0:468 Sequence -0:468 move second child to first child ( temp float) -0:468 'r00' ( temp float) -0:468 component-wise multiply ( temp float) -0:468 'inF1' ( in float) -0:468 'inF0' ( in float) -0:469 Sequence -0:469 move second child to first child ( temp 2-component vector of float) -0:469 'r01' ( temp 2-component vector of float) -0:469 vector-scale ( temp 2-component vector of float) -0:469 'inF0' ( in float) -0:469 'inFV2' ( in 2-component vector of float) -0:470 Sequence -0:470 move second child to first child ( temp 3-component vector of float) -0:470 'r02' ( temp 3-component vector of float) -0:470 vector-scale ( temp 3-component vector of float) -0:470 'inF0' ( in float) -0:470 'inFV3' ( in 3-component vector of float) -0:471 Sequence -0:471 move second child to first child ( temp 2-component vector of float) -0:471 'r03' ( temp 2-component vector of float) -0:471 vector-scale ( temp 2-component vector of float) -0:471 'inFV2' ( in 2-component vector of float) -0:471 'inF0' ( in float) -0:472 Sequence -0:472 move second child to first child ( temp 3-component vector of float) -0:472 'r04' ( temp 3-component vector of float) -0:472 vector-scale ( temp 3-component vector of float) -0:472 'inFV3' ( in 3-component vector of float) -0:472 'inF0' ( in float) -0:473 Sequence -0:473 move second child to first child ( temp float) -0:473 'r05' ( temp float) -0:473 dot-product ( temp float) -0:473 'inFV2' ( in 2-component vector of float) -0:473 'inFV2' ( in 2-component vector of float) -0:474 Sequence -0:474 move second child to first child ( temp float) -0:474 'r06' ( temp float) -0:474 dot-product ( temp float) -0:474 'inFV3' ( in 3-component vector of float) -0:474 'inFV3' ( in 3-component vector of float) -0:475 Sequence -0:475 move second child to first child ( temp 3-component vector of float) -0:475 'r07' ( temp 3-component vector of float) -0:475 matrix-times-vector ( temp 3-component vector of float) -0:475 'inFM2x3' ( in 2X3 matrix of float) -0:475 'inFV2' ( in 2-component vector of float) -0:476 Sequence -0:476 move second child to first child ( temp 2-component vector of float) -0:476 'r08' ( temp 2-component vector of float) -0:476 matrix-times-vector ( temp 2-component vector of float) -0:476 'inFM3x2' ( in 3X2 matrix of float) -0:476 'inFV3' ( in 3-component vector of float) -0:477 Sequence -0:477 move second child to first child ( temp 2-component vector of float) -0:477 'r09' ( temp 2-component vector of float) -0:477 vector-times-matrix ( temp 2-component vector of float) -0:477 'inFV3' ( in 3-component vector of float) -0:477 'inFM2x3' ( in 2X3 matrix of float) -0:478 Sequence -0:478 move second child to first child ( temp 3-component vector of float) -0:478 'r10' ( temp 3-component vector of float) -0:478 vector-times-matrix ( temp 3-component vector of float) -0:478 'inFV2' ( in 2-component vector of float) -0:478 'inFM3x2' ( in 3X2 matrix of float) -0:479 Sequence -0:479 move second child to first child ( temp 2X3 matrix of float) -0:479 'r11' ( temp 2X3 matrix of float) -0:479 matrix-scale ( temp 2X3 matrix of float) -0:479 'inF0' ( in float) -0:479 'inFM2x3' ( in 2X3 matrix of float) -0:480 Sequence -0:480 move second child to first child ( temp 3X2 matrix of float) -0:480 'r12' ( temp 3X2 matrix of float) -0:480 matrix-scale ( temp 3X2 matrix of float) -0:480 'inF0' ( in float) -0:480 'inFM3x2' ( in 3X2 matrix of float) -0:481 Sequence -0:481 move second child to first child ( temp 2X2 matrix of float) -0:481 'r13' ( temp 2X2 matrix of float) -0:481 matrix-multiply ( temp 2X2 matrix of float) -0:481 'inFM3x2' ( in 3X2 matrix of float) -0:481 'inFM2x3' ( in 2X3 matrix of float) -0:482 Sequence -0:482 move second child to first child ( temp 2X3 matrix of float) -0:482 'r14' ( temp 2X3 matrix of float) -0:482 matrix-multiply ( temp 2X3 matrix of float) -0:482 'inFM3x3' ( in 3X3 matrix of float) -0:482 'inFM2x3' ( in 2X3 matrix of float) -0:483 Sequence -0:483 move second child to first child ( temp 2X4 matrix of float) -0:483 'r15' ( temp 2X4 matrix of float) -0:483 matrix-multiply ( temp 2X4 matrix of float) -0:483 'inFM3x4' ( in 3X4 matrix of float) -0:483 'inFM2x3' ( in 2X3 matrix of float) -0:484 Sequence -0:484 move second child to first child ( temp 3X4 matrix of float) -0:484 'r16' ( temp 3X4 matrix of float) -0:484 matrix-multiply ( temp 3X4 matrix of float) -0:484 'inFM2x4' ( in 2X4 matrix of float) -0:484 'inFM3x2' ( in 3X2 matrix of float) -0:490 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) -0:490 Function Parameters: -0:? Sequence -0:492 move second child to first child ( temp 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 Constant: -0:492 1.000000 -0:492 1.000000 -0:492 1.000000 -0:492 1.000000 -0:493 Branch: Return with expression -0:493 'ps_output' ( temp structure{ temp 4-component vector of float color}) -0:490 Function Definition: main( ( temp void) -0:490 Function Parameters: -0:? Sequence -0:490 Sequence -0:490 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) -0:490 color: direct index for structure ( temp 4-component vector of float) -0:490 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) -0:490 Constant: -0:490 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) - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 1839 - - Capability Shader - Capability DerivativeControl - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 1820 - 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 "r024" - Name 226 "r027" - Name 229 "r028" - Name 232 "r029" - Name 235 "r030" - Name 238 "r031" - Name 241 "r033" - Name 245 "r033i" - Name 249 "r034" - Name 252 "r036" - Name 255 "r037" - Name 258 "r038" - Name 261 "r039" - Name 265 "r039a" - Name 270 "r040" - Name 273 "r041" - Name 278 "r042" - Name 281 "r043" - Name 285 "r044" - Name 289 "r045" - Name 293 "r046" - Name 296 "r047" - Name 300 "r048" - Name 304 "r049" - Name 307 "r050" - Name 310 "r051" - Name 313 "r052" - Name 316 "r053" - Name 323 "r055" - Name 326 "r056" - Name 331 "r057" - Name 334 "r058" - Name 338 "r059" - Name 341 "r060" - Name 344 "r061" - Name 351 "r000" - Name 357 "r001" - Name 360 "r002" - Name 363 "r003" - Name 367 "r004" - Name 372 "r005" - Name 375 "r006" - Name 378 "r007" - Name 381 "r009" - Name 384 "r010" - Name 388 "r011" - Name 391 "r012" - Name 410 "r013" - Name 413 "r015" - Name 416 "r016" - Name 420 "r017" - Name 423 "r018" - Name 426 "r019" - Name 429 "r020" - Name 432 "r021" - Name 435 "r022" - Name 438 "r023" - Name 441 "r026" - Name 445 "r027" - Name 449 "r028" - Name 452 "r029" - Name 455 "r030" - Name 460 "r031" - Name 465 "r032" - Name 467 "r033" - Name 470 "r035" - Name 474 "r036" - Name 477 "r038" - Name 481 "r039" - Name 484 "r040" - Name 487 "r041" - Name 491 "r039a" - Name 496 "r042" - Name 499 "r043" - Name 502 "r044" - Name 506 "r045" - Name 509 "r046" - Name 513 "r047" - Name 517 "r048" - Name 520 "r049" - Name 524 "r050" - Name 527 "r051" - Name 531 "r052" - Name 535 "r053" - Name 539 "r054" - Name 544 "r055" - Name 547 "r056" - Name 550 "r057" - Name 555 "r058" - Name 558 "r059" - Name 565 "r060" - Name 568 "r061" - Name 573 "r062" - Name 576 "r063" - Name 580 "r064" - Name 583 "r065" - Name 586 "r066" - Name 592 "r000" - Name 598 "r001" - Name 601 "r002" - Name 604 "r003" - Name 608 "r004" - Name 613 "r005" - Name 616 "r006" - Name 619 "r007" - Name 622 "r009" - Name 625 "r010" - Name 629 "r011" - Name 632 "r012" - Name 650 "r013" - Name 653 "r014" - Name 656 "r015" - Name 661 "r016" - Name 665 "r017" - Name 668 "r018" - Name 671 "r019" - Name 674 "r020" - Name 677 "r021" - Name 680 "r022" - Name 683 "r023" - Name 686 "r024" - Name 690 "r025" - Name 694 "r029" - Name 697 "r030" - Name 700 "r031" - Name 705 "r032" - Name 709 "r033" - Name 711 "r034" - Name 714 "r036" - Name 718 "r037" - Name 721 "r039" - Name 725 "r040" - Name 728 "r041" - Name 731 "r042" - Name 735 "r039a" - Name 740 "r039b" - Name 746 "r043" - Name 749 "r044" - Name 752 "r045" - Name 756 "r046" - Name 759 "r047" - Name 763 "r048" - Name 767 "r049" - Name 770 "r050" - Name 774 "r051" - Name 777 "r052" - Name 781 "r053" - Name 785 "r054" - Name 789 "r055" - Name 792 "r056" - Name 795 "r057" - Name 798 "r058" - Name 803 "r059" - Name 806 "r060" - Name 813 "r061" - Name 816 "r062" - Name 821 "r063" - Name 824 "r064" - Name 828 "r065" - Name 831 "r066" - Name 834 "r067" - Name 841 "r000" - Name 847 "r001" - Name 850 "r002" - Name 853 "r003" - Name 857 "r004" - Name 862 "r005" - Name 865 "r006" - Name 868 "r007" - Name 871 "r009" - Name 874 "r010" - Name 878 "r011" - Name 881 "r012" - Name 899 "r013" - Name 902 "r014" - Name 905 "r015" - Name 908 "r016" - Name 911 "r017" - Name 914 "r018" - Name 917 "r019" - Name 920 "r020" - Name 923 "r021" - Name 926 "r022" - Name 929 "r023" - Name 933 "r024" - Name 937 "r025" - Name 948 "r029" - Name 951 "r030" - Name 954 "r031" - Name 959 "r032" - Name 964 "r033" - Name 966 "r034" - Name 969 "r036" - Name 973 "r037" - Name 976 "r039" - Name 980 "r040" - Name 983 "r041" - Name 986 "r042" - Name 990 "r039a" - Name 995 "r043" - Name 998 "r044" - Name 1001 "r045" - Name 1005 "r046" - Name 1008 "r047" - Name 1012 "r048" - Name 1016 "r049" - Name 1019 "r050" - Name 1023 "r051" - Name 1026 "r052" - Name 1030 "r053" - Name 1034 "r054" - Name 1038 "r055" - Name 1041 "r056" - Name 1044 "r057" - Name 1047 "r058" - Name 1052 "r059" - Name 1055 "r060" - Name 1062 "r061" - Name 1065 "r062" - Name 1070 "r063" - Name 1073 "r064" - Name 1077 "r065" - Name 1080 "r066" - Name 1083 "r067" - Name 1090 "r000" - Name 1095 "r001" - Name 1100 "r003" - Name 1104 "r004" - Name 1107 "r005" - Name 1110 "r006" - Name 1114 "r007" - Name 1124 "r008" - Name 1129 "r009" - Name 1132 "r010" - Name 1135 "r011" - Name 1138 "r012" - Name 1141 "r013" - Name 1144 "r014" - Name 1147 "r015" - Name 1150 "r016" - Name 1153 "r017" - Name 1156 "r018" - Name 1159 "r019" - Name 1162 "R020" - Name 1165 "r021" - Name 1168 "r022" - Name 1178 "r023" - Name 1181 "r025" - Name 1184 "r026" - Name 1188 "r026a" - Name 1193 "r027" - Name 1196 "r028" - Name 1200 "r029" - Name 1203 "r030" - Name 1207 "r031" - Name 1211 "r032" - Name 1215 "r033" - Name 1218 "r034" - Name 1221 "r035" - Name 1224 "r036" - Name 1229 "r037" - Name 1232 "r038" - Name 1239 "r039" - Name 1242 "r049" - Name 1247 "r041" - Name 1250 "r042" - Name 1254 "r043" - Name 1257 "r044" - Name 1262 "r046" - Name 1269 "r000" - Name 1274 "r001" - Name 1279 "r003" - Name 1283 "r004" - Name 1286 "r005" - Name 1289 "r006" - Name 1293 "r007" - Name 1303 "r008" - Name 1308 "r009" - Name 1311 "r010" - Name 1314 "r011" - Name 1317 "r012" - Name 1320 "r013" - Name 1323 "r014" - Name 1326 "r015" - Name 1329 "r016" - Name 1332 "r017" - Name 1335 "r018" - Name 1338 "r019" - Name 1341 "R020" - Name 1344 "r021" - Name 1347 "r022" - Name 1360 "r023" - Name 1363 "r025" - Name 1366 "r026" - Name 1370 "r026a" - Name 1375 "r027" - Name 1378 "r028" - Name 1382 "r029" - Name 1385 "r030" - Name 1389 "r031" - Name 1393 "r032" - Name 1397 "r033" - Name 1400 "r034" - Name 1403 "r035" - Name 1406 "r036" - Name 1411 "r037" - Name 1414 "r038" - Name 1421 "r039" - Name 1424 "r049" - Name 1429 "r041" - Name 1432 "r042" - Name 1436 "r043" - Name 1439 "r044" - Name 1444 "r046" - Name 1451 "r000" - Name 1456 "r001" - Name 1461 "r003" - Name 1465 "r004" - Name 1468 "r005" - Name 1471 "r006" - Name 1475 "r007" - Name 1485 "r008" - Name 1490 "r009" - Name 1493 "r010" - Name 1496 "r011" - Name 1499 "r012" - Name 1502 "r013" - Name 1505 "r014" - Name 1508 "r015" - Name 1511 "r016" - Name 1514 "r017" - Name 1517 "r018" - Name 1520 "r019" - Name 1523 "R020" - Name 1526 "r021" - Name 1529 "r022" - Name 1545 "r023" - Name 1548 "r025" - Name 1551 "r026" - Name 1555 "r026a" - Name 1560 "r027" - Name 1563 "r028" - Name 1567 "r029" - Name 1570 "r030" - Name 1574 "r031" - Name 1578 "r032" - Name 1582 "r033" - Name 1585 "r034" - Name 1588 "r035" - Name 1591 "r036" - Name 1596 "r037" - Name 1599 "r038" - Name 1606 "r039" - Name 1609 "r049" - Name 1614 "r041" - Name 1617 "r042" - Name 1621 "r043" - Name 1624 "r044" - Name 1629 "r046" - Name 1636 "r0" - Name 1640 "r1" - Name 1644 "r2" - Name 1648 "r3" - Name 1652 "r4" - Name 1656 "r5" - Name 1660 "r6" - Name 1664 "r7" - Name 1668 "r8" - Name 1672 "r0" - Name 1676 "r1" - Name 1680 "r2" - Name 1684 "r3" - Name 1688 "r4" - Name 1692 "r5" - Name 1696 "r6" - Name 1700 "r7" - Name 1704 "r8" - Name 1708 "r0" - Name 1712 "r1" - Name 1716 "r2" - Name 1720 "r3" - Name 1724 "r4" - Name 1728 "r5" - Name 1732 "r6" - Name 1736 "r7" - Name 1740 "r8" - Name 1744 "r00" - Name 1748 "r01" - Name 1752 "r02" - Name 1756 "r03" - Name 1760 "r04" - Name 1764 "r05" - Name 1768 "r06" - Name 1772 "r07" - Name 1776 "r08" - Name 1780 "r09" - Name 1784 "r10" - Name 1788 "r11" - Name 1792 "r12" - Name 1796 "r13" - Name 1800 "r14" - Name 1804 "r15" - Name 1808 "r16" - Name 1813 "ps_output" - Name 1820 "@entryPointOutput.color" - Name 1824 "gs_ua" - Name 1825 "gs_ub" - Name 1826 "gs_uc" - Name 1828 "gs_ua2" - Name 1829 "gs_ub2" - Name 1830 "gs_uc2" - Name 1832 "gs_ua3" - Name 1833 "gs_ub3" - Name 1834 "gs_uc3" - Name 1836 "gs_ua4" - Name 1837 "gs_ub4" - Name 1838 "gs_uc4" - Decorate 1820(@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 - 247: 6(float) Constant 1073741824 - 276: 6(float) Constant 1050288283 - 297: 6(float) Constant 1065353216 - 301: 10(int) Constant 2 - 353: TypeVector 137(bool) 2 - 354: 26(fvec2) ConstantComposite 141 141 - 370: TypeVector 10(int) 2 - 371: TypePointer Function 370(ivec2) - 403: 8(int) Constant 0 - 404: 28(ivec2) ConstantComposite 403 403 - 417: 10(int) Constant 3 - 418: 370(ivec2) ConstantComposite 199 417 - 461: 8(int) Constant 7 - 462: 8(int) Constant 8 - 463: 28(ivec2) ConstantComposite 461 462 - 480: TypePointer Function 353(bvec2) - 540: 8(int) Constant 1 - 541: 8(int) Constant 2 - 542: 28(ivec2) ConstantComposite 540 541 - 589: 26(fvec2) ConstantComposite 297 247 - 594: TypeVector 137(bool) 3 - 595: 38(fvec3) ConstantComposite 141 141 141 - 611: TypeVector 10(int) 3 - 612: TypePointer Function 611(ivec3) - 644: 40(ivec3) ConstantComposite 403 403 403 - 657: 8(int) Constant 3 - 658: 8(int) Constant 5 - 659: 40(ivec3) ConstantComposite 461 657 658 - 706: 8(int) Constant 4 - 707: 40(ivec3) ConstantComposite 541 657 706 - 724: TypePointer Function 594(bvec3) - 743: 6(float) Constant 1050253722 - 790: 40(ivec3) ConstantComposite 540 541 657 - 837: 6(float) Constant 1077936128 - 838: 38(fvec3) ConstantComposite 297 247 837 - 843: TypeVector 137(bool) 4 - 844: 50(fvec4) ConstantComposite 141 141 141 141 - 860: TypeVector 10(int) 4 - 861: TypePointer Function 860(ivec4) - 893: 52(ivec4) ConstantComposite 403 403 403 403 - 906: 52(ivec4) ConstantComposite 461 657 658 541 - 960: 8(int) Constant 9 - 961: 8(int) Constant 10 - 962: 52(ivec4) ConstantComposite 461 462 960 961 - 979: TypePointer Function 843(bvec4) - 1039: 52(ivec4) ConstantComposite 540 541 657 706 - 1086: 6(float) Constant 1082130432 - 1087: 50(fvec4) ConstantComposite 297 247 837 1086 - 1092: TypeMatrix 353(bvec2) 2 - 1118: 62 ConstantComposite 354 354 - 1265: 26(fvec2) ConstantComposite 247 247 - 1266: 62 ConstantComposite 1265 1265 - 1271: TypeMatrix 594(bvec3) 3 - 1297: 70 ConstantComposite 595 595 595 - 1447: 38(fvec3) ConstantComposite 837 837 837 - 1448: 70 ConstantComposite 1447 1447 1447 - 1453: TypeMatrix 843(bvec4) 4 - 1479: 78 ConstantComposite 844 844 844 844 - 1632: 50(fvec4) ConstantComposite 1086 1086 1086 1086 - 1633: 78 ConstantComposite 1632 1632 1632 1632 - 1812: TypePointer Function 133(PS_OUTPUT) - 1814: 50(fvec4) ConstantComposite 297 297 297 297 - 1819: TypePointer Output 50(fvec4) -1820(@entryPointOutput.color): 1819(ptr) Variable Output - 1823: TypePointer Workgroup 8(int) - 1824(gs_ua): 1823(ptr) Variable Workgroup - 1825(gs_ub): 1823(ptr) Variable Workgroup - 1826(gs_uc): 1823(ptr) Variable Workgroup - 1827: TypePointer Workgroup 28(ivec2) - 1828(gs_ua2): 1827(ptr) Variable Workgroup - 1829(gs_ub2): 1827(ptr) Variable Workgroup - 1830(gs_uc2): 1827(ptr) Variable Workgroup - 1831: TypePointer Workgroup 40(ivec3) - 1832(gs_ua3): 1831(ptr) Variable Workgroup - 1833(gs_ub3): 1831(ptr) Variable Workgroup - 1834(gs_uc3): 1831(ptr) Variable Workgroup - 1835: TypePointer Workgroup 52(ivec4) - 1836(gs_ua4): 1835(ptr) Variable Workgroup - 1837(gs_ub4): 1835(ptr) Variable Workgroup - 1838(gs_uc4): 1835(ptr) Variable Workgroup - 4(main): 2 Function None 3 - 5: Label - 1821:133(PS_OUTPUT) FunctionCall 135(@main() - 1822: 50(fvec4) CompositeExtract 1821 0 - Store 1820(@entryPointOutput.color) 1822 - 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(r024): 7(ptr) Variable Function - 226(r027): 7(ptr) Variable Function - 229(r028): 7(ptr) Variable Function - 232(r029): 9(ptr) Variable Function - 235(r030): 9(ptr) Variable Function - 238(r031): 7(ptr) Variable Function - 241(r033): 7(ptr) Variable Function - 245(r033i): 7(ptr) Variable Function - 249(r034): 7(ptr) Variable Function - 252(r036): 7(ptr) Variable Function - 255(r037): 138(ptr) Variable Function - 258(r038): 138(ptr) Variable Function - 261(r039): 7(ptr) Variable Function - 265(r039a): 7(ptr) Variable Function - 270(r040): 7(ptr) Variable Function - 273(r041): 7(ptr) Variable Function - 278(r042): 7(ptr) Variable Function - 281(r043): 7(ptr) Variable Function - 285(r044): 7(ptr) Variable Function - 289(r045): 7(ptr) Variable Function - 293(r046): 7(ptr) Variable Function - 296(r047): 7(ptr) Variable Function - 300(r048): 9(ptr) Variable Function - 304(r049): 7(ptr) Variable Function - 307(r050): 7(ptr) Variable Function - 310(r051): 7(ptr) Variable Function - 313(r052): 7(ptr) Variable Function - 316(r053): 7(ptr) Variable Function - 323(r055): 7(ptr) Variable Function - 326(r056): 7(ptr) Variable Function - 331(r057): 7(ptr) Variable Function - 334(r058): 7(ptr) Variable Function - 338(r059): 7(ptr) Variable Function - 341(r060): 7(ptr) Variable Function - 344(r061): 7(ptr) Variable Function - 140: 6(float) Load 13(inF0) - 142: 137(bool) FUnordNotEqual 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) FUnordNotEqual 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) Load 14(inF1) - 225: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 223 224 - Store 222(r024) 225 - 227: 6(float) Load 13(inF0) - 228: 6(float) ExtInst 1(GLSL.std.450) 27(Exp) 227 - Store 226(r027) 228 - 230: 6(float) Load 13(inF0) - 231: 6(float) ExtInst 1(GLSL.std.450) 29(Exp2) 230 - Store 229(r028) 231 - 233: 10(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 199 - 234: 8(int) Bitcast 233 - Store 232(r029) 234 - 236: 10(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 199 - 237: 8(int) Bitcast 236 - Store 235(r030) 237 - 239: 6(float) Load 13(inF0) - 240: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 239 - Store 238(r031) 240 - 242: 6(float) Load 13(inF0) - 243: 6(float) Load 14(inF1) - 244: 6(float) FMod 242 243 - Store 241(r033) 244 - 246: 6(float) Load 13(inF0) - 248: 6(float) FMod 246 247 - Store 245(r033i) 248 - 250: 6(float) Load 13(inF0) - 251: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 250 - Store 249(r034) 251 - 253: 6(float) Load 13(inF0) - 254: 6(float) Fwidth 253 - Store 252(r036) 254 - 256: 6(float) Load 13(inF0) - 257: 137(bool) IsInf 256 - Store 255(r037) 257 - 259: 6(float) Load 13(inF0) - 260: 137(bool) IsNan 259 - Store 258(r038) 260 - 262: 6(float) Load 13(inF0) - 263: 6(float) Load 14(inF1) - 264: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 262 263 - Store 261(r039) 264 - 266: 6(float) Load 13(inF0) - 267: 6(float) Load 14(inF1) - 268: 6(float) Load 15(inF2) - 269: 6(float) ExtInst 1(GLSL.std.450) 46(FMix) 266 267 268 - Store 265(r039a) 269 - 271: 6(float) Load 13(inF0) - 272: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 271 - Store 270(r040) 272 - 274: 6(float) Load 13(inF0) - 275: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 274 - 277: 6(float) FMul 275 276 - Store 273(r041) 277 - 279: 6(float) Load 13(inF0) - 280: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 279 - Store 278(r042) 280 - 282: 6(float) Load 13(inF0) - 283: 6(float) Load 14(inF1) - 284: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 282 283 - Store 281(r043) 284 - 286: 6(float) Load 13(inF0) - 287: 6(float) Load 14(inF1) - 288: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 286 287 - Store 285(r044) 288 - 290: 6(float) Load 13(inF0) - 291: 6(float) Load 14(inF1) - 292: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 290 291 - Store 289(r045) 292 - 294: 6(float) Load 13(inF0) - 295: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 294 - Store 293(r046) 295 - 298: 6(float) Load 13(inF0) - 299: 6(float) FDiv 297 298 - Store 296(r047) 299 - 302: 10(int) BitReverse 301 - 303: 8(int) Bitcast 302 - Store 300(r048) 303 - 305: 6(float) Load 13(inF0) - 306: 6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 305 - Store 304(r049) 306 - 308: 6(float) Load 13(inF0) - 309: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 308 - Store 307(r050) 309 - 311: 6(float) Load 13(inF0) - 312: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 311 141 297 - Store 310(r051) 312 - 314: 6(float) Load 13(inF0) - 315: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 314 - Store 313(r052) 315 - 317: 6(float) Load 13(inF0) - 318: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 317 - Store 316(r053) 318 - 319: 6(float) Load 13(inF0) - 320: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 319 - Store 14(inF1) 320 - 321: 6(float) Load 13(inF0) - 322: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 321 - Store 15(inF2) 322 - 324: 6(float) Load 13(inF0) - 325: 6(float) ExtInst 1(GLSL.std.450) 19(Sinh) 324 - Store 323(r055) 325 - 327: 6(float) Load 13(inF0) - 328: 6(float) Load 14(inF1) - 329: 6(float) Load 15(inF2) - 330: 6(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 327 328 329 - Store 326(r056) 330 - 332: 6(float) Load 13(inF0) - 333: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 332 - Store 331(r057) 333 - 335: 6(float) Load 13(inF0) - 336: 6(float) Load 14(inF1) - 337: 6(float) ExtInst 1(GLSL.std.450) 48(Step) 335 336 - Store 334(r058) 337 - 339: 6(float) Load 13(inF0) - 340: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 339 - Store 338(r059) 340 - 342: 6(float) Load 13(inF0) - 343: 6(float) ExtInst 1(GLSL.std.450) 21(Tanh) 342 - Store 341(r060) 343 - 345: 6(float) Load 13(inF0) - 346: 6(float) ExtInst 1(GLSL.std.450) 3(Trunc) 345 - Store 344(r061) 346 - 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 - 351(r000): 138(ptr) Variable Function - 357(r001): 27(ptr) Variable Function - 360(r002): 27(ptr) Variable Function - 363(r003): 138(ptr) Variable Function - 367(r004): 27(ptr) Variable Function - 372(r005): 371(ptr) Variable Function - 375(r006): 29(ptr) Variable Function - 378(r007): 27(ptr) Variable Function - 381(r009): 27(ptr) Variable Function - 384(r010): 27(ptr) Variable Function - 388(r011): 27(ptr) Variable Function - 391(r012): 27(ptr) Variable Function - 410(r013): 27(ptr) Variable Function - 413(r015): 27(ptr) Variable Function - 416(r016): 371(ptr) Variable Function - 420(r017): 27(ptr) Variable Function - 423(r018): 27(ptr) Variable Function - 426(r019): 27(ptr) Variable Function - 429(r020): 27(ptr) Variable Function - 432(r021): 27(ptr) Variable Function - 435(r022): 27(ptr) Variable Function - 438(r023): 27(ptr) Variable Function - 441(r026): 7(ptr) Variable Function - 445(r027): 7(ptr) Variable Function - 449(r028): 27(ptr) Variable Function - 452(r029): 27(ptr) Variable Function - 455(r030): 27(ptr) Variable Function - 460(r031): 29(ptr) Variable Function - 465(r032): 29(ptr) Variable Function - 467(r033): 27(ptr) Variable Function - 470(r035): 27(ptr) Variable Function - 474(r036): 27(ptr) Variable Function - 477(r038): 27(ptr) Variable Function - 481(r039): 480(ptr) Variable Function - 484(r040): 480(ptr) Variable Function - 487(r041): 27(ptr) Variable Function - 491(r039a): 27(ptr) Variable Function - 496(r042): 7(ptr) Variable Function - 499(r043): 27(ptr) Variable Function - 502(r044): 27(ptr) Variable Function - 506(r045): 27(ptr) Variable Function - 509(r046): 27(ptr) Variable Function - 513(r047): 27(ptr) Variable Function - 517(r048): 27(ptr) Variable Function - 520(r049): 27(ptr) Variable Function - 524(r050): 27(ptr) Variable Function - 527(r051): 27(ptr) Variable Function - 531(r052): 27(ptr) Variable Function - 535(r053): 27(ptr) Variable Function - 539(r054): 29(ptr) Variable Function - 544(r055): 27(ptr) Variable Function - 547(r056): 27(ptr) Variable Function - 550(r057): 27(ptr) Variable Function - 555(r058): 27(ptr) Variable Function - 558(r059): 27(ptr) Variable Function - 565(r060): 27(ptr) Variable Function - 568(r061): 27(ptr) Variable Function - 573(r062): 27(ptr) Variable Function - 576(r063): 27(ptr) Variable Function - 580(r064): 27(ptr) Variable Function - 583(r065): 27(ptr) Variable Function - 586(r066): 27(ptr) Variable Function - 352: 26(fvec2) Load 31(inF0) - 355: 353(bvec2) FUnordNotEqual 352 354 - 356: 137(bool) All 355 - Store 351(r000) 356 - 358: 26(fvec2) Load 31(inF0) - 359: 26(fvec2) ExtInst 1(GLSL.std.450) 4(FAbs) 358 - Store 357(r001) 359 - 361: 26(fvec2) Load 31(inF0) - 362: 26(fvec2) ExtInst 1(GLSL.std.450) 17(Acos) 361 - Store 360(r002) 362 - 364: 26(fvec2) Load 31(inF0) - 365: 353(bvec2) FUnordNotEqual 364 354 - 366: 137(bool) Any 365 - Store 363(r003) 366 - 368: 26(fvec2) Load 31(inF0) - 369: 26(fvec2) ExtInst 1(GLSL.std.450) 16(Asin) 368 - Store 367(r004) 369 - 373: 26(fvec2) Load 31(inF0) - 374: 370(ivec2) Bitcast 373 - Store 372(r005) 374 - 376: 26(fvec2) Load 31(inF0) - 377: 28(ivec2) Bitcast 376 - Store 375(r006) 377 - 379: 28(ivec2) Load 34(inU0) - 380: 26(fvec2) Bitcast 379 - Store 378(r007) 380 - 382: 26(fvec2) Load 31(inF0) - 383: 26(fvec2) ExtInst 1(GLSL.std.450) 18(Atan) 382 - Store 381(r009) 383 - 385: 26(fvec2) Load 31(inF0) - 386: 26(fvec2) Load 32(inF1) - 387: 26(fvec2) ExtInst 1(GLSL.std.450) 25(Atan2) 385 386 - Store 384(r010) 387 - 389: 26(fvec2) Load 31(inF0) - 390: 26(fvec2) ExtInst 1(GLSL.std.450) 9(Ceil) 389 - Store 388(r011) 390 - 392: 26(fvec2) Load 31(inF0) - 393: 26(fvec2) Load 32(inF1) - 394: 26(fvec2) Load 33(inF2) - 395: 26(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 392 393 394 - Store 391(r012) 395 - 396: 26(fvec2) Load 31(inF0) - 397: 353(bvec2) FOrdLessThan 396 354 - 398: 137(bool) Any 397 - SelectionMerge 400 None - BranchConditional 398 399 400 - 399: Label - Kill - 400: Label - 402: 28(ivec2) Load 34(inU0) - 405: 353(bvec2) ULessThan 402 404 - 406: 137(bool) Any 405 - SelectionMerge 408 None - BranchConditional 406 407 408 - 407: Label - Kill - 408: Label - 411: 26(fvec2) Load 31(inF0) - 412: 26(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 411 - Store 410(r013) 412 - 414: 26(fvec2) Load 31(inF0) - 415: 26(fvec2) ExtInst 1(GLSL.std.450) 20(Cosh) 414 - Store 413(r015) 415 - 419: 370(ivec2) BitCount 418 - Store 416(r016) 419 - 421: 26(fvec2) Load 31(inF0) - 422: 26(fvec2) DPdx 421 - Store 420(r017) 422 - 424: 26(fvec2) Load 31(inF0) - 425: 26(fvec2) DPdxCoarse 424 - Store 423(r018) 425 - 427: 26(fvec2) Load 31(inF0) - 428: 26(fvec2) DPdxFine 427 - Store 426(r019) 428 - 430: 26(fvec2) Load 31(inF0) - 431: 26(fvec2) DPdy 430 - Store 429(r020) 431 - 433: 26(fvec2) Load 31(inF0) - 434: 26(fvec2) DPdyCoarse 433 - Store 432(r021) 434 - 436: 26(fvec2) Load 31(inF0) - 437: 26(fvec2) DPdyFine 436 - Store 435(r022) 437 - 439: 26(fvec2) Load 31(inF0) - 440: 26(fvec2) ExtInst 1(GLSL.std.450) 12(Degrees) 439 - Store 438(r023) 440 - 442: 26(fvec2) Load 31(inF0) - 443: 26(fvec2) Load 32(inF1) - 444: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 442 443 - Store 441(r026) 444 - 446: 26(fvec2) Load 31(inF0) - 447: 26(fvec2) Load 32(inF1) - 448: 6(float) Dot 446 447 - Store 445(r027) 448 - 450: 26(fvec2) Load 31(inF0) - 451: 26(fvec2) ExtInst 1(GLSL.std.450) 27(Exp) 450 - Store 449(r028) 451 - 453: 26(fvec2) Load 31(inF0) - 454: 26(fvec2) ExtInst 1(GLSL.std.450) 29(Exp2) 453 - Store 452(r029) 454 - 456: 26(fvec2) Load 31(inF0) - 457: 26(fvec2) Load 32(inF1) - 458: 26(fvec2) Load 33(inF2) - 459: 26(fvec2) ExtInst 1(GLSL.std.450) 70(FaceForward) 456 457 458 - Store 455(r030) 459 - 464: 28(ivec2) ExtInst 1(GLSL.std.450) 75(FindUMsb) 463 - Store 460(r031) 464 - 466: 28(ivec2) ExtInst 1(GLSL.std.450) 73(FindILsb) 463 - Store 465(r032) 466 - 468: 26(fvec2) Load 31(inF0) - 469: 26(fvec2) ExtInst 1(GLSL.std.450) 8(Floor) 468 - Store 467(r033) 469 - 471: 26(fvec2) Load 31(inF0) - 472: 26(fvec2) Load 32(inF1) - 473: 26(fvec2) FMod 471 472 - Store 470(r035) 473 - 475: 26(fvec2) Load 31(inF0) - 476: 26(fvec2) ExtInst 1(GLSL.std.450) 10(Fract) 475 - Store 474(r036) 476 - 478: 26(fvec2) Load 31(inF0) - 479: 26(fvec2) Fwidth 478 - Store 477(r038) 479 - 482: 26(fvec2) Load 31(inF0) - 483: 353(bvec2) IsInf 482 - Store 481(r039) 483 - 485: 26(fvec2) Load 31(inF0) - 486: 353(bvec2) IsNan 485 - Store 484(r040) 486 - 488: 26(fvec2) Load 31(inF0) - 489: 26(fvec2) Load 32(inF1) - 490: 26(fvec2) ExtInst 1(GLSL.std.450) 53(Ldexp) 488 489 - Store 487(r041) 490 - 492: 26(fvec2) Load 31(inF0) - 493: 26(fvec2) Load 32(inF1) - 494: 26(fvec2) Load 33(inF2) - 495: 26(fvec2) ExtInst 1(GLSL.std.450) 46(FMix) 492 493 494 - Store 491(r039a) 495 - 497: 26(fvec2) Load 31(inF0) - 498: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 497 - Store 496(r042) 498 - 500: 26(fvec2) Load 31(inF0) - 501: 26(fvec2) ExtInst 1(GLSL.std.450) 28(Log) 500 - Store 499(r043) 501 - 503: 26(fvec2) Load 31(inF0) - 504: 26(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 503 - 505: 26(fvec2) VectorTimesScalar 504 276 - Store 502(r044) 505 - 507: 26(fvec2) Load 31(inF0) - 508: 26(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 507 - Store 506(r045) 508 - 510: 26(fvec2) Load 31(inF0) - 511: 26(fvec2) Load 32(inF1) - 512: 26(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 510 511 - Store 509(r046) 512 - 514: 26(fvec2) Load 31(inF0) - 515: 26(fvec2) Load 32(inF1) - 516: 26(fvec2) ExtInst 1(GLSL.std.450) 37(FMin) 514 515 - Store 513(r047) 516 - 518: 26(fvec2) Load 31(inF0) - 519: 26(fvec2) ExtInst 1(GLSL.std.450) 69(Normalize) 518 - Store 517(r048) 519 - 521: 26(fvec2) Load 31(inF0) - 522: 26(fvec2) Load 32(inF1) - 523: 26(fvec2) ExtInst 1(GLSL.std.450) 26(Pow) 521 522 - Store 520(r049) 523 - 525: 26(fvec2) Load 31(inF0) - 526: 26(fvec2) ExtInst 1(GLSL.std.450) 11(Radians) 525 - Store 524(r050) 526 - 528: 26(fvec2) Load 31(inF0) - 529: 26(fvec2) CompositeConstruct 297 297 - 530: 26(fvec2) FDiv 529 528 - Store 527(r051) 530 - 532: 26(fvec2) Load 31(inF0) - 533: 26(fvec2) Load 32(inF1) - 534: 26(fvec2) ExtInst 1(GLSL.std.450) 71(Reflect) 532 533 - Store 531(r052) 534 - 536: 26(fvec2) Load 31(inF0) - 537: 26(fvec2) Load 32(inF1) - 538: 26(fvec2) ExtInst 1(GLSL.std.450) 72(Refract) 536 537 247 - Store 535(r053) 538 - 543: 28(ivec2) BitReverse 542 - Store 539(r054) 543 - 545: 26(fvec2) Load 31(inF0) - 546: 26(fvec2) ExtInst 1(GLSL.std.450) 2(RoundEven) 545 - Store 544(r055) 546 - 548: 26(fvec2) Load 31(inF0) - 549: 26(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 548 - Store 547(r056) 549 - 551: 26(fvec2) Load 31(inF0) - 552: 26(fvec2) CompositeConstruct 141 141 - 553: 26(fvec2) CompositeConstruct 297 297 - 554: 26(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 551 552 553 - Store 550(r057) 554 - 556: 26(fvec2) Load 31(inF0) - 557: 26(fvec2) ExtInst 1(GLSL.std.450) 6(FSign) 556 - Store 555(r058) 557 - 559: 26(fvec2) Load 31(inF0) - 560: 26(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 559 - Store 558(r059) 560 - 561: 26(fvec2) Load 31(inF0) - 562: 26(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 561 - Store 32(inF1) 562 - 563: 26(fvec2) Load 31(inF0) - 564: 26(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 563 - Store 33(inF2) 564 - 566: 26(fvec2) Load 31(inF0) - 567: 26(fvec2) ExtInst 1(GLSL.std.450) 19(Sinh) 566 - Store 565(r060) 567 - 569: 26(fvec2) Load 31(inF0) - 570: 26(fvec2) Load 32(inF1) - 571: 26(fvec2) Load 33(inF2) - 572: 26(fvec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 569 570 571 - Store 568(r061) 572 - 574: 26(fvec2) Load 31(inF0) - 575: 26(fvec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 574 - Store 573(r062) 575 - 577: 26(fvec2) Load 31(inF0) - 578: 26(fvec2) Load 32(inF1) - 579: 26(fvec2) ExtInst 1(GLSL.std.450) 48(Step) 577 578 - Store 576(r063) 579 - 581: 26(fvec2) Load 31(inF0) - 582: 26(fvec2) ExtInst 1(GLSL.std.450) 15(Tan) 581 - Store 580(r064) 582 - 584: 26(fvec2) Load 31(inF0) - 585: 26(fvec2) ExtInst 1(GLSL.std.450) 21(Tanh) 584 - Store 583(r065) 585 - 587: 26(fvec2) Load 31(inF0) - 588: 26(fvec2) ExtInst 1(GLSL.std.450) 3(Trunc) 587 - Store 586(r066) 588 - ReturnValue 589 - 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 - 592(r000): 138(ptr) Variable Function - 598(r001): 39(ptr) Variable Function - 601(r002): 39(ptr) Variable Function - 604(r003): 138(ptr) Variable Function - 608(r004): 39(ptr) Variable Function - 613(r005): 612(ptr) Variable Function - 616(r006): 41(ptr) Variable Function - 619(r007): 39(ptr) Variable Function - 622(r009): 39(ptr) Variable Function - 625(r010): 39(ptr) Variable Function - 629(r011): 39(ptr) Variable Function - 632(r012): 39(ptr) Variable Function - 650(r013): 39(ptr) Variable Function - 653(r014): 39(ptr) Variable Function - 656(r015): 41(ptr) Variable Function - 661(r016): 39(ptr) Variable Function - 665(r017): 39(ptr) Variable Function - 668(r018): 39(ptr) Variable Function - 671(r019): 39(ptr) Variable Function - 674(r020): 39(ptr) Variable Function - 677(r021): 39(ptr) Variable Function - 680(r022): 39(ptr) Variable Function - 683(r023): 39(ptr) Variable Function - 686(r024): 7(ptr) Variable Function - 690(r025): 7(ptr) Variable Function - 694(r029): 39(ptr) Variable Function - 697(r030): 39(ptr) Variable Function - 700(r031): 39(ptr) Variable Function - 705(r032): 41(ptr) Variable Function - 709(r033): 41(ptr) Variable Function - 711(r034): 39(ptr) Variable Function - 714(r036): 39(ptr) Variable Function - 718(r037): 39(ptr) Variable Function - 721(r039): 39(ptr) Variable Function - 725(r040): 724(ptr) Variable Function - 728(r041): 724(ptr) Variable Function - 731(r042): 39(ptr) Variable Function - 735(r039a): 39(ptr) Variable Function - 740(r039b): 39(ptr) Variable Function - 746(r043): 7(ptr) Variable Function - 749(r044): 39(ptr) Variable Function - 752(r045): 39(ptr) Variable Function - 756(r046): 39(ptr) Variable Function - 759(r047): 39(ptr) Variable Function - 763(r048): 39(ptr) Variable Function - 767(r049): 39(ptr) Variable Function - 770(r050): 39(ptr) Variable Function - 774(r051): 39(ptr) Variable Function - 777(r052): 39(ptr) Variable Function - 781(r053): 39(ptr) Variable Function - 785(r054): 39(ptr) Variable Function - 789(r055): 41(ptr) Variable Function - 792(r056): 39(ptr) Variable Function - 795(r057): 39(ptr) Variable Function - 798(r058): 39(ptr) Variable Function - 803(r059): 39(ptr) Variable Function - 806(r060): 39(ptr) Variable Function - 813(r061): 39(ptr) Variable Function - 816(r062): 39(ptr) Variable Function - 821(r063): 39(ptr) Variable Function - 824(r064): 39(ptr) Variable Function - 828(r065): 39(ptr) Variable Function - 831(r066): 39(ptr) Variable Function - 834(r067): 39(ptr) Variable Function - 593: 38(fvec3) Load 43(inF0) - 596: 594(bvec3) FUnordNotEqual 593 595 - 597: 137(bool) All 596 - Store 592(r000) 597 - 599: 38(fvec3) Load 43(inF0) - 600: 38(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 599 - Store 598(r001) 600 - 602: 38(fvec3) Load 43(inF0) - 603: 38(fvec3) ExtInst 1(GLSL.std.450) 17(Acos) 602 - Store 601(r002) 603 - 605: 38(fvec3) Load 43(inF0) - 606: 594(bvec3) FUnordNotEqual 605 595 - 607: 137(bool) Any 606 - Store 604(r003) 607 - 609: 38(fvec3) Load 43(inF0) - 610: 38(fvec3) ExtInst 1(GLSL.std.450) 16(Asin) 609 - Store 608(r004) 610 - 614: 38(fvec3) Load 43(inF0) - 615: 611(ivec3) Bitcast 614 - Store 613(r005) 615 - 617: 38(fvec3) Load 43(inF0) - 618: 40(ivec3) Bitcast 617 - Store 616(r006) 618 - 620: 40(ivec3) Load 46(inU0) - 621: 38(fvec3) Bitcast 620 - Store 619(r007) 621 - 623: 38(fvec3) Load 43(inF0) - 624: 38(fvec3) ExtInst 1(GLSL.std.450) 18(Atan) 623 - Store 622(r009) 624 - 626: 38(fvec3) Load 43(inF0) - 627: 38(fvec3) Load 44(inF1) - 628: 38(fvec3) ExtInst 1(GLSL.std.450) 25(Atan2) 626 627 - Store 625(r010) 628 - 630: 38(fvec3) Load 43(inF0) - 631: 38(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 630 - Store 629(r011) 631 - 633: 38(fvec3) Load 43(inF0) - 634: 38(fvec3) Load 44(inF1) - 635: 38(fvec3) Load 45(inF2) - 636: 38(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 633 634 635 - Store 632(r012) 636 - 637: 38(fvec3) Load 43(inF0) - 638: 594(bvec3) FOrdLessThan 637 595 - 639: 137(bool) Any 638 - SelectionMerge 641 None - BranchConditional 639 640 641 - 640: Label - Kill - 641: Label - 643: 40(ivec3) Load 46(inU0) - 645: 594(bvec3) ULessThan 643 644 - 646: 137(bool) Any 645 - SelectionMerge 648 None - BranchConditional 646 647 648 - 647: Label - Kill - 648: Label - 651: 38(fvec3) Load 43(inF0) - 652: 38(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 651 - Store 650(r013) 652 - 654: 38(fvec3) Load 43(inF0) - 655: 38(fvec3) ExtInst 1(GLSL.std.450) 20(Cosh) 654 - Store 653(r014) 655 - 660: 40(ivec3) BitCount 659 - Store 656(r015) 660 - 662: 38(fvec3) Load 43(inF0) - 663: 38(fvec3) Load 44(inF1) - 664: 38(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 662 663 - Store 661(r016) 664 - 666: 38(fvec3) Load 43(inF0) - 667: 38(fvec3) DPdx 666 - Store 665(r017) 667 - 669: 38(fvec3) Load 43(inF0) - 670: 38(fvec3) DPdxCoarse 669 - Store 668(r018) 670 - 672: 38(fvec3) Load 43(inF0) - 673: 38(fvec3) DPdxFine 672 - Store 671(r019) 673 - 675: 38(fvec3) Load 43(inF0) - 676: 38(fvec3) DPdy 675 - Store 674(r020) 676 - 678: 38(fvec3) Load 43(inF0) - 679: 38(fvec3) DPdyCoarse 678 - Store 677(r021) 679 - 681: 38(fvec3) Load 43(inF0) - 682: 38(fvec3) DPdyFine 681 - Store 680(r022) 682 - 684: 38(fvec3) Load 43(inF0) - 685: 38(fvec3) ExtInst 1(GLSL.std.450) 12(Degrees) 684 - Store 683(r023) 685 - 687: 38(fvec3) Load 43(inF0) - 688: 38(fvec3) Load 44(inF1) - 689: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 687 688 - Store 686(r024) 689 - 691: 38(fvec3) Load 43(inF0) - 692: 38(fvec3) Load 44(inF1) - 693: 6(float) Dot 691 692 - Store 690(r025) 693 - 695: 38(fvec3) Load 43(inF0) - 696: 38(fvec3) ExtInst 1(GLSL.std.450) 27(Exp) 695 - Store 694(r029) 696 - 698: 38(fvec3) Load 43(inF0) - 699: 38(fvec3) ExtInst 1(GLSL.std.450) 29(Exp2) 698 - Store 697(r030) 699 - 701: 38(fvec3) Load 43(inF0) - 702: 38(fvec3) Load 44(inF1) - 703: 38(fvec3) Load 45(inF2) - 704: 38(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 701 702 703 - Store 700(r031) 704 - 708: 40(ivec3) ExtInst 1(GLSL.std.450) 75(FindUMsb) 707 - Store 705(r032) 708 - 710: 40(ivec3) ExtInst 1(GLSL.std.450) 73(FindILsb) 707 - Store 709(r033) 710 - 712: 38(fvec3) Load 43(inF0) - 713: 38(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 712 - Store 711(r034) 713 - 715: 38(fvec3) Load 43(inF0) - 716: 38(fvec3) Load 44(inF1) - 717: 38(fvec3) FMod 715 716 - Store 714(r036) 717 - 719: 38(fvec3) Load 43(inF0) - 720: 38(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 719 - Store 718(r037) 720 - 722: 38(fvec3) Load 43(inF0) - 723: 38(fvec3) Fwidth 722 - Store 721(r039) 723 - 726: 38(fvec3) Load 43(inF0) - 727: 594(bvec3) IsInf 726 - Store 725(r040) 727 - 729: 38(fvec3) Load 43(inF0) - 730: 594(bvec3) IsNan 729 - Store 728(r041) 730 - 732: 38(fvec3) Load 43(inF0) - 733: 38(fvec3) Load 44(inF1) - 734: 38(fvec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 732 733 - Store 731(r042) 734 - 736: 38(fvec3) Load 43(inF0) - 737: 38(fvec3) Load 44(inF1) - 738: 38(fvec3) Load 45(inF2) - 739: 38(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 736 737 738 - Store 735(r039a) 739 - 741: 38(fvec3) Load 43(inF0) - 742: 38(fvec3) Load 44(inF1) - 744: 38(fvec3) CompositeConstruct 743 743 743 - 745: 38(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 741 742 744 - Store 740(r039b) 745 - 747: 38(fvec3) Load 43(inF0) - 748: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 747 - Store 746(r043) 748 - 750: 38(fvec3) Load 43(inF0) - 751: 38(fvec3) ExtInst 1(GLSL.std.450) 28(Log) 750 - Store 749(r044) 751 - 753: 38(fvec3) Load 43(inF0) - 754: 38(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 753 - 755: 38(fvec3) VectorTimesScalar 754 276 - Store 752(r045) 755 - 757: 38(fvec3) Load 43(inF0) - 758: 38(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 757 - Store 756(r046) 758 - 760: 38(fvec3) Load 43(inF0) - 761: 38(fvec3) Load 44(inF1) - 762: 38(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 760 761 - Store 759(r047) 762 - 764: 38(fvec3) Load 43(inF0) - 765: 38(fvec3) Load 44(inF1) - 766: 38(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 764 765 - Store 763(r048) 766 - 768: 38(fvec3) Load 43(inF0) - 769: 38(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 768 - Store 767(r049) 769 - 771: 38(fvec3) Load 43(inF0) - 772: 38(fvec3) Load 44(inF1) - 773: 38(fvec3) ExtInst 1(GLSL.std.450) 26(Pow) 771 772 - Store 770(r050) 773 - 775: 38(fvec3) Load 43(inF0) - 776: 38(fvec3) ExtInst 1(GLSL.std.450) 11(Radians) 775 - Store 774(r051) 776 - 778: 38(fvec3) Load 43(inF0) - 779: 38(fvec3) CompositeConstruct 297 297 297 - 780: 38(fvec3) FDiv 779 778 - Store 777(r052) 780 - 782: 38(fvec3) Load 43(inF0) - 783: 38(fvec3) Load 44(inF1) - 784: 38(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 782 783 - Store 781(r053) 784 - 786: 38(fvec3) Load 43(inF0) - 787: 38(fvec3) Load 44(inF1) - 788: 38(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 786 787 247 - Store 785(r054) 788 - 791: 40(ivec3) BitReverse 790 - Store 789(r055) 791 - 793: 38(fvec3) Load 43(inF0) - 794: 38(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 793 - Store 792(r056) 794 - 796: 38(fvec3) Load 43(inF0) - 797: 38(fvec3) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 796 - Store 795(r057) 797 - 799: 38(fvec3) Load 43(inF0) - 800: 38(fvec3) CompositeConstruct 141 141 141 - 801: 38(fvec3) CompositeConstruct 297 297 297 - 802: 38(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 799 800 801 - Store 798(r058) 802 - 804: 38(fvec3) Load 43(inF0) - 805: 38(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 804 - Store 803(r059) 805 - 807: 38(fvec3) Load 43(inF0) - 808: 38(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 807 - Store 806(r060) 808 - 809: 38(fvec3) Load 43(inF0) - 810: 38(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 809 - Store 44(inF1) 810 - 811: 38(fvec3) Load 43(inF0) - 812: 38(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 811 - Store 45(inF2) 812 - 814: 38(fvec3) Load 43(inF0) - 815: 38(fvec3) ExtInst 1(GLSL.std.450) 19(Sinh) 814 - Store 813(r061) 815 - 817: 38(fvec3) Load 43(inF0) - 818: 38(fvec3) Load 44(inF1) - 819: 38(fvec3) Load 45(inF2) - 820: 38(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 817 818 819 - Store 816(r062) 820 - 822: 38(fvec3) Load 43(inF0) - 823: 38(fvec3) ExtInst 1(GLSL.std.450) 31(Sqrt) 822 - Store 821(r063) 823 - 825: 38(fvec3) Load 43(inF0) - 826: 38(fvec3) Load 44(inF1) - 827: 38(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 825 826 - Store 824(r064) 827 - 829: 38(fvec3) Load 43(inF0) - 830: 38(fvec3) ExtInst 1(GLSL.std.450) 15(Tan) 829 - Store 828(r065) 830 - 832: 38(fvec3) Load 43(inF0) - 833: 38(fvec3) ExtInst 1(GLSL.std.450) 21(Tanh) 832 - Store 831(r066) 833 - 835: 38(fvec3) Load 43(inF0) - 836: 38(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 835 - Store 834(r067) 836 - ReturnValue 838 - 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 - 841(r000): 138(ptr) Variable Function - 847(r001): 51(ptr) Variable Function - 850(r002): 51(ptr) Variable Function - 853(r003): 138(ptr) Variable Function - 857(r004): 51(ptr) Variable Function - 862(r005): 861(ptr) Variable Function - 865(r006): 53(ptr) Variable Function - 868(r007): 51(ptr) Variable Function - 871(r009): 51(ptr) Variable Function - 874(r010): 51(ptr) Variable Function - 878(r011): 51(ptr) Variable Function - 881(r012): 51(ptr) Variable Function - 899(r013): 51(ptr) Variable Function - 902(r014): 51(ptr) Variable Function - 905(r015): 53(ptr) Variable Function - 908(r016): 51(ptr) Variable Function - 911(r017): 51(ptr) Variable Function - 914(r018): 51(ptr) Variable Function - 917(r019): 51(ptr) Variable Function - 920(r020): 51(ptr) Variable Function - 923(r021): 51(ptr) Variable Function - 926(r022): 51(ptr) Variable Function - 929(r023): 7(ptr) Variable Function - 933(r024): 7(ptr) Variable Function - 937(r025): 51(ptr) Variable Function - 948(r029): 51(ptr) Variable Function - 951(r030): 51(ptr) Variable Function - 954(r031): 51(ptr) Variable Function - 959(r032): 53(ptr) Variable Function - 964(r033): 53(ptr) Variable Function - 966(r034): 51(ptr) Variable Function - 969(r036): 51(ptr) Variable Function - 973(r037): 51(ptr) Variable Function - 976(r039): 51(ptr) Variable Function - 980(r040): 979(ptr) Variable Function - 983(r041): 979(ptr) Variable Function - 986(r042): 51(ptr) Variable Function - 990(r039a): 51(ptr) Variable Function - 995(r043): 7(ptr) Variable Function - 998(r044): 51(ptr) Variable Function - 1001(r045): 51(ptr) Variable Function - 1005(r046): 51(ptr) Variable Function - 1008(r047): 51(ptr) Variable Function - 1012(r048): 51(ptr) Variable Function - 1016(r049): 51(ptr) Variable Function - 1019(r050): 51(ptr) Variable Function - 1023(r051): 51(ptr) Variable Function - 1026(r052): 51(ptr) Variable Function - 1030(r053): 51(ptr) Variable Function - 1034(r054): 51(ptr) Variable Function - 1038(r055): 53(ptr) Variable Function - 1041(r056): 51(ptr) Variable Function - 1044(r057): 51(ptr) Variable Function - 1047(r058): 51(ptr) Variable Function - 1052(r059): 51(ptr) Variable Function - 1055(r060): 51(ptr) Variable Function - 1062(r061): 51(ptr) Variable Function - 1065(r062): 51(ptr) Variable Function - 1070(r063): 51(ptr) Variable Function - 1073(r064): 51(ptr) Variable Function - 1077(r065): 51(ptr) Variable Function - 1080(r066): 51(ptr) Variable Function - 1083(r067): 51(ptr) Variable Function - 842: 50(fvec4) Load 55(inF0) - 845: 843(bvec4) FUnordNotEqual 842 844 - 846: 137(bool) All 845 - Store 841(r000) 846 - 848: 50(fvec4) Load 55(inF0) - 849: 50(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 848 - Store 847(r001) 849 - 851: 50(fvec4) Load 55(inF0) - 852: 50(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 851 - Store 850(r002) 852 - 854: 50(fvec4) Load 55(inF0) - 855: 843(bvec4) FUnordNotEqual 854 844 - 856: 137(bool) Any 855 - Store 853(r003) 856 - 858: 50(fvec4) Load 55(inF0) - 859: 50(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 858 - Store 857(r004) 859 - 863: 50(fvec4) Load 55(inF0) - 864: 860(ivec4) Bitcast 863 - Store 862(r005) 864 - 866: 50(fvec4) Load 55(inF0) - 867: 52(ivec4) Bitcast 866 - Store 865(r006) 867 - 869: 52(ivec4) Load 58(inU0) - 870: 50(fvec4) Bitcast 869 - Store 868(r007) 870 - 872: 50(fvec4) Load 55(inF0) - 873: 50(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 872 - Store 871(r009) 873 - 875: 50(fvec4) Load 55(inF0) - 876: 50(fvec4) Load 56(inF1) - 877: 50(fvec4) ExtInst 1(GLSL.std.450) 25(Atan2) 875 876 - Store 874(r010) 877 - 879: 50(fvec4) Load 55(inF0) - 880: 50(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 879 - Store 878(r011) 880 - 882: 50(fvec4) Load 55(inF0) - 883: 50(fvec4) Load 56(inF1) - 884: 50(fvec4) Load 57(inF2) - 885: 50(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 882 883 884 - Store 881(r012) 885 - 886: 50(fvec4) Load 55(inF0) - 887: 843(bvec4) FOrdLessThan 886 844 - 888: 137(bool) Any 887 - SelectionMerge 890 None - BranchConditional 888 889 890 - 889: Label - Kill - 890: Label - 892: 52(ivec4) Load 58(inU0) - 894: 843(bvec4) ULessThan 892 893 - 895: 137(bool) Any 894 - SelectionMerge 897 None - BranchConditional 895 896 897 - 896: Label - Kill - 897: Label - 900: 50(fvec4) Load 55(inF0) - 901: 50(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 900 - Store 899(r013) 901 - 903: 50(fvec4) Load 55(inF0) - 904: 50(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 903 - Store 902(r014) 904 - 907: 52(ivec4) BitCount 906 - Store 905(r015) 907 - 909: 50(fvec4) Load 55(inF0) - 910: 50(fvec4) DPdx 909 - Store 908(r016) 910 - 912: 50(fvec4) Load 55(inF0) - 913: 50(fvec4) DPdxCoarse 912 - Store 911(r017) 913 - 915: 50(fvec4) Load 55(inF0) - 916: 50(fvec4) DPdxFine 915 - Store 914(r018) 916 - 918: 50(fvec4) Load 55(inF0) - 919: 50(fvec4) DPdy 918 - Store 917(r019) 919 - 921: 50(fvec4) Load 55(inF0) - 922: 50(fvec4) DPdyCoarse 921 - Store 920(r020) 922 - 924: 50(fvec4) Load 55(inF0) - 925: 50(fvec4) DPdyFine 924 - Store 923(r021) 925 - 927: 50(fvec4) Load 55(inF0) - 928: 50(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 927 - Store 926(r022) 928 - 930: 50(fvec4) Load 55(inF0) - 931: 50(fvec4) Load 56(inF1) - 932: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 930 931 - Store 929(r023) 932 - 934: 50(fvec4) Load 55(inF0) - 935: 50(fvec4) Load 56(inF1) - 936: 6(float) Dot 934 935 - Store 933(r024) 936 - 938: 7(ptr) AccessChain 55(inF0) 540 - 939: 6(float) Load 938 - 940: 7(ptr) AccessChain 56(inF1) 540 - 941: 6(float) Load 940 - 942: 6(float) FMul 939 941 - 943: 7(ptr) AccessChain 55(inF0) 541 - 944: 6(float) Load 943 - 945: 7(ptr) AccessChain 56(inF1) 657 - 946: 6(float) Load 945 - 947: 50(fvec4) CompositeConstruct 297 942 944 946 - Store 937(r025) 947 - 949: 50(fvec4) Load 55(inF0) - 950: 50(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 949 - Store 948(r029) 950 - 952: 50(fvec4) Load 55(inF0) - 953: 50(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 952 - Store 951(r030) 953 - 955: 50(fvec4) Load 55(inF0) - 956: 50(fvec4) Load 56(inF1) - 957: 50(fvec4) Load 57(inF2) - 958: 50(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 955 956 957 - Store 954(r031) 958 - 963: 52(ivec4) ExtInst 1(GLSL.std.450) 75(FindUMsb) 962 - Store 959(r032) 963 - 965: 52(ivec4) ExtInst 1(GLSL.std.450) 73(FindILsb) 962 - Store 964(r033) 965 - 967: 50(fvec4) Load 55(inF0) - 968: 50(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 967 - Store 966(r034) 968 - 970: 50(fvec4) Load 55(inF0) - 971: 50(fvec4) Load 56(inF1) - 972: 50(fvec4) FMod 970 971 - Store 969(r036) 972 - 974: 50(fvec4) Load 55(inF0) - 975: 50(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 974 - Store 973(r037) 975 - 977: 50(fvec4) Load 55(inF0) - 978: 50(fvec4) Fwidth 977 - Store 976(r039) 978 - 981: 50(fvec4) Load 55(inF0) - 982: 843(bvec4) IsInf 981 - Store 980(r040) 982 - 984: 50(fvec4) Load 55(inF0) - 985: 843(bvec4) IsNan 984 - Store 983(r041) 985 - 987: 50(fvec4) Load 55(inF0) - 988: 50(fvec4) Load 56(inF1) - 989: 50(fvec4) ExtInst 1(GLSL.std.450) 53(Ldexp) 987 988 - Store 986(r042) 989 - 991: 50(fvec4) Load 55(inF0) - 992: 50(fvec4) Load 56(inF1) - 993: 50(fvec4) Load 57(inF2) - 994: 50(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 991 992 993 - Store 990(r039a) 994 - 996: 50(fvec4) Load 55(inF0) - 997: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 996 - Store 995(r043) 997 - 999: 50(fvec4) Load 55(inF0) - 1000: 50(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 999 - Store 998(r044) 1000 - 1002: 50(fvec4) Load 55(inF0) - 1003: 50(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 1002 - 1004: 50(fvec4) VectorTimesScalar 1003 276 - Store 1001(r045) 1004 - 1006: 50(fvec4) Load 55(inF0) - 1007: 50(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 1006 - Store 1005(r046) 1007 - 1009: 50(fvec4) Load 55(inF0) - 1010: 50(fvec4) Load 56(inF1) - 1011: 50(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 1009 1010 - Store 1008(r047) 1011 - 1013: 50(fvec4) Load 55(inF0) - 1014: 50(fvec4) Load 56(inF1) - 1015: 50(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 1013 1014 - Store 1012(r048) 1015 - 1017: 50(fvec4) Load 55(inF0) - 1018: 50(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 1017 - Store 1016(r049) 1018 - 1020: 50(fvec4) Load 55(inF0) - 1021: 50(fvec4) Load 56(inF1) - 1022: 50(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 1020 1021 - Store 1019(r050) 1022 - 1024: 50(fvec4) Load 55(inF0) - 1025: 50(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 1024 - Store 1023(r051) 1025 - 1027: 50(fvec4) Load 55(inF0) - 1028: 50(fvec4) CompositeConstruct 297 297 297 297 - 1029: 50(fvec4) FDiv 1028 1027 - Store 1026(r052) 1029 - 1031: 50(fvec4) Load 55(inF0) - 1032: 50(fvec4) Load 56(inF1) - 1033: 50(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 1031 1032 - Store 1030(r053) 1033 - 1035: 50(fvec4) Load 55(inF0) - 1036: 50(fvec4) Load 56(inF1) - 1037: 50(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 1035 1036 247 - Store 1034(r054) 1037 - 1040: 52(ivec4) BitReverse 1039 - Store 1038(r055) 1040 - 1042: 50(fvec4) Load 55(inF0) - 1043: 50(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 1042 - Store 1041(r056) 1043 - 1045: 50(fvec4) Load 55(inF0) - 1046: 50(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1045 - Store 1044(r057) 1046 - 1048: 50(fvec4) Load 55(inF0) - 1049: 50(fvec4) CompositeConstruct 141 141 141 141 - 1050: 50(fvec4) CompositeConstruct 297 297 297 297 - 1051: 50(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 1048 1049 1050 - Store 1047(r058) 1051 - 1053: 50(fvec4) Load 55(inF0) - 1054: 50(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 1053 - Store 1052(r059) 1054 - 1056: 50(fvec4) Load 55(inF0) - 1057: 50(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 1056 - Store 1055(r060) 1057 - 1058: 50(fvec4) Load 55(inF0) - 1059: 50(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 1058 - Store 56(inF1) 1059 - 1060: 50(fvec4) Load 55(inF0) - 1061: 50(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 1060 - Store 57(inF2) 1061 - 1063: 50(fvec4) Load 55(inF0) - 1064: 50(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 1063 - Store 1062(r061) 1064 - 1066: 50(fvec4) Load 55(inF0) - 1067: 50(fvec4) Load 56(inF1) - 1068: 50(fvec4) Load 57(inF2) - 1069: 50(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 1066 1067 1068 - Store 1065(r062) 1069 - 1071: 50(fvec4) Load 55(inF0) - 1072: 50(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 1071 - Store 1070(r063) 1072 - 1074: 50(fvec4) Load 55(inF0) - 1075: 50(fvec4) Load 56(inF1) - 1076: 50(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 1074 1075 - Store 1073(r064) 1076 - 1078: 50(fvec4) Load 55(inF0) - 1079: 50(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 1078 - Store 1077(r065) 1079 - 1081: 50(fvec4) Load 55(inF0) - 1082: 50(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 1081 - Store 1080(r066) 1082 - 1084: 50(fvec4) Load 55(inF0) - 1085: 50(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 1084 - Store 1083(r067) 1085 - ReturnValue 1087 - 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 - 1090(r000): 138(ptr) Variable Function - 1095(r001): 63(ptr) Variable Function - 1100(r003): 138(ptr) Variable Function - 1104(r004): 63(ptr) Variable Function - 1107(r005): 63(ptr) Variable Function - 1110(r006): 63(ptr) Variable Function - 1114(r007): 63(ptr) Variable Function - 1124(r008): 63(ptr) Variable Function - 1129(r009): 63(ptr) Variable Function - 1132(r010): 63(ptr) Variable Function - 1135(r011): 63(ptr) Variable Function - 1138(r012): 63(ptr) Variable Function - 1141(r013): 63(ptr) Variable Function - 1144(r014): 63(ptr) Variable Function - 1147(r015): 63(ptr) Variable Function - 1150(r016): 63(ptr) Variable Function - 1153(r017): 63(ptr) Variable Function - 1156(r018): 7(ptr) Variable Function - 1159(r019): 63(ptr) Variable Function - 1162(R020): 63(ptr) Variable Function - 1165(r021): 63(ptr) Variable Function - 1168(r022): 63(ptr) Variable Function - 1178(r023): 63(ptr) Variable Function - 1181(r025): 63(ptr) Variable Function - 1184(r026): 63(ptr) Variable Function - 1188(r026a): 63(ptr) Variable Function - 1193(r027): 63(ptr) Variable Function - 1196(r028): 63(ptr) Variable Function - 1200(r029): 63(ptr) Variable Function - 1203(r030): 63(ptr) Variable Function - 1207(r031): 63(ptr) Variable Function - 1211(r032): 63(ptr) Variable Function - 1215(r033): 63(ptr) Variable Function - 1218(r034): 63(ptr) Variable Function - 1221(r035): 63(ptr) Variable Function - 1224(r036): 63(ptr) Variable Function - 1229(r037): 63(ptr) Variable Function - 1232(r038): 63(ptr) Variable Function - 1239(r039): 63(ptr) Variable Function - 1242(r049): 63(ptr) Variable Function - 1247(r041): 63(ptr) Variable Function - 1250(r042): 63(ptr) Variable Function - 1254(r043): 63(ptr) Variable Function - 1257(r044): 63(ptr) Variable Function - 1262(r046): 63(ptr) Variable Function - 1091: 62 Load 65(inF0) - 1093: 1092 FUnordNotEqual 1091 141 - 1094: 137(bool) All 1093 - Store 1090(r000) 1094 - 1096: 62 Load 65(inF0) - 1097: 62 ExtInst 1(GLSL.std.450) 4(FAbs) 1096 - Store 1095(r001) 1097 - 1098: 62 Load 65(inF0) - 1099: 62 ExtInst 1(GLSL.std.450) 17(Acos) 1098 - 1101: 62 Load 65(inF0) - 1102: 1092 FUnordNotEqual 1101 141 - 1103: 137(bool) Any 1102 - Store 1100(r003) 1103 - 1105: 62 Load 65(inF0) - 1106: 62 ExtInst 1(GLSL.std.450) 16(Asin) 1105 - Store 1104(r004) 1106 - 1108: 62 Load 65(inF0) - 1109: 62 ExtInst 1(GLSL.std.450) 18(Atan) 1108 - Store 1107(r005) 1109 - 1111: 62 Load 65(inF0) - 1112: 62 Load 66(inF1) - 1113: 62 ExtInst 1(GLSL.std.450) 25(Atan2) 1111 1112 - Store 1110(r006) 1113 - 1115: 62 Load 65(inF0) - 1116: 62 ExtInst 1(GLSL.std.450) 9(Ceil) 1115 - Store 1114(r007) 1116 - 1117: 62 Load 65(inF0) - 1119: 1092 FOrdLessThan 1117 1118 - 1120: 137(bool) Any 1119 - SelectionMerge 1122 None - BranchConditional 1120 1121 1122 - 1121: Label - Kill - 1122: Label - 1125: 62 Load 65(inF0) - 1126: 62 Load 66(inF1) - 1127: 62 Load 67(inF2) - 1128: 62 ExtInst 1(GLSL.std.450) 43(FClamp) 1125 1126 1127 - Store 1124(r008) 1128 - 1130: 62 Load 65(inF0) - 1131: 62 ExtInst 1(GLSL.std.450) 14(Cos) 1130 - Store 1129(r009) 1131 - 1133: 62 Load 65(inF0) - 1134: 62 ExtInst 1(GLSL.std.450) 20(Cosh) 1133 - Store 1132(r010) 1134 - 1136: 62 Load 65(inF0) - 1137: 62 DPdx 1136 - Store 1135(r011) 1137 - 1139: 62 Load 65(inF0) - 1140: 62 DPdxCoarse 1139 - Store 1138(r012) 1140 - 1142: 62 Load 65(inF0) - 1143: 62 DPdxFine 1142 - Store 1141(r013) 1143 - 1145: 62 Load 65(inF0) - 1146: 62 DPdy 1145 - Store 1144(r014) 1146 - 1148: 62 Load 65(inF0) - 1149: 62 DPdyCoarse 1148 - Store 1147(r015) 1149 - 1151: 62 Load 65(inF0) - 1152: 62 DPdyFine 1151 - Store 1150(r016) 1152 - 1154: 62 Load 65(inF0) - 1155: 62 ExtInst 1(GLSL.std.450) 12(Degrees) 1154 - Store 1153(r017) 1155 - 1157: 62 Load 65(inF0) - 1158: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1157 - Store 1156(r018) 1158 - 1160: 62 Load 65(inF0) - 1161: 62 ExtInst 1(GLSL.std.450) 27(Exp) 1160 - Store 1159(r019) 1161 - 1163: 62 Load 65(inF0) - 1164: 62 ExtInst 1(GLSL.std.450) 29(Exp2) 1163 - Store 1162(R020) 1164 - 1166: 62 Load 65(inF0) - 1167: 62 ExtInst 1(GLSL.std.450) 8(Floor) 1166 - Store 1165(r021) 1167 - 1169: 62 Load 65(inF0) - 1170: 62 Load 66(inF1) - 1171: 26(fvec2) CompositeExtract 1169 0 - 1172: 26(fvec2) CompositeExtract 1170 0 - 1173: 26(fvec2) FMod 1171 1172 - 1174: 26(fvec2) CompositeExtract 1169 1 - 1175: 26(fvec2) CompositeExtract 1170 1 - 1176: 26(fvec2) FMod 1174 1175 - 1177: 62 CompositeConstruct 1173 1176 - Store 1168(r022) 1177 - 1179: 62 Load 65(inF0) - 1180: 62 ExtInst 1(GLSL.std.450) 10(Fract) 1179 - Store 1178(r023) 1180 - 1182: 62 Load 65(inF0) - 1183: 62 Fwidth 1182 - Store 1181(r025) 1183 - 1185: 62 Load 65(inF0) - 1186: 62 Load 66(inF1) - 1187: 62 ExtInst 1(GLSL.std.450) 53(Ldexp) 1185 1186 - Store 1184(r026) 1187 - 1189: 62 Load 65(inF0) - 1190: 62 Load 66(inF1) - 1191: 62 Load 67(inF2) - 1192: 62 ExtInst 1(GLSL.std.450) 46(FMix) 1189 1190 1191 - Store 1188(r026a) 1192 - 1194: 62 Load 65(inF0) - 1195: 62 ExtInst 1(GLSL.std.450) 28(Log) 1194 - Store 1193(r027) 1195 - 1197: 62 Load 65(inF0) - 1198: 62 ExtInst 1(GLSL.std.450) 30(Log2) 1197 - 1199: 62 MatrixTimesScalar 1198 276 - Store 1196(r028) 1199 - 1201: 62 Load 65(inF0) - 1202: 62 ExtInst 1(GLSL.std.450) 30(Log2) 1201 - Store 1200(r029) 1202 - 1204: 62 Load 65(inF0) - 1205: 62 Load 66(inF1) - 1206: 62 ExtInst 1(GLSL.std.450) 40(FMax) 1204 1205 - Store 1203(r030) 1206 - 1208: 62 Load 65(inF0) - 1209: 62 Load 66(inF1) - 1210: 62 ExtInst 1(GLSL.std.450) 37(FMin) 1208 1209 - Store 1207(r031) 1210 - 1212: 62 Load 65(inF0) - 1213: 62 Load 66(inF1) - 1214: 62 ExtInst 1(GLSL.std.450) 26(Pow) 1212 1213 - Store 1211(r032) 1214 - 1216: 62 Load 65(inF0) - 1217: 62 ExtInst 1(GLSL.std.450) 11(Radians) 1216 - Store 1215(r033) 1217 - 1219: 62 Load 65(inF0) - 1220: 62 ExtInst 1(GLSL.std.450) 2(RoundEven) 1219 - Store 1218(r034) 1220 - 1222: 62 Load 65(inF0) - 1223: 62 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1222 - Store 1221(r035) 1223 - 1225: 62 Load 65(inF0) - 1226: 26(fvec2) CompositeConstruct 141 141 - 1227: 26(fvec2) CompositeConstruct 297 297 - 1228: 62 ExtInst 1(GLSL.std.450) 43(FClamp) 1225 1226 1227 - Store 1224(r036) 1228 - 1230: 62 Load 65(inF0) - 1231: 62 ExtInst 1(GLSL.std.450) 6(FSign) 1230 - Store 1229(r037) 1231 - 1233: 62 Load 65(inF0) - 1234: 62 ExtInst 1(GLSL.std.450) 13(Sin) 1233 - Store 1232(r038) 1234 - 1235: 62 Load 65(inF0) - 1236: 62 ExtInst 1(GLSL.std.450) 13(Sin) 1235 - Store 66(inF1) 1236 - 1237: 62 Load 65(inF0) - 1238: 62 ExtInst 1(GLSL.std.450) 14(Cos) 1237 - Store 67(inF2) 1238 - 1240: 62 Load 65(inF0) - 1241: 62 ExtInst 1(GLSL.std.450) 19(Sinh) 1240 - Store 1239(r039) 1241 - 1243: 62 Load 65(inF0) - 1244: 62 Load 66(inF1) - 1245: 62 Load 67(inF2) - 1246: 62 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1243 1244 1245 - Store 1242(r049) 1246 - 1248: 62 Load 65(inF0) - 1249: 62 ExtInst 1(GLSL.std.450) 31(Sqrt) 1248 - Store 1247(r041) 1249 - 1251: 62 Load 65(inF0) - 1252: 62 Load 66(inF1) - 1253: 62 ExtInst 1(GLSL.std.450) 48(Step) 1251 1252 - Store 1250(r042) 1253 - 1255: 62 Load 65(inF0) - 1256: 62 ExtInst 1(GLSL.std.450) 15(Tan) 1255 - Store 1254(r043) 1256 - 1258: 62 Load 65(inF0) - 1259: 62 ExtInst 1(GLSL.std.450) 21(Tanh) 1258 - Store 1257(r044) 1259 - 1260: 62 Load 65(inF0) - 1261: 62 Transpose 1260 - 1263: 62 Load 65(inF0) - 1264: 62 ExtInst 1(GLSL.std.450) 3(Trunc) 1263 - Store 1262(r046) 1264 - ReturnValue 1266 - 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 - 1269(r000): 138(ptr) Variable Function - 1274(r001): 71(ptr) Variable Function - 1279(r003): 138(ptr) Variable Function - 1283(r004): 71(ptr) Variable Function - 1286(r005): 71(ptr) Variable Function - 1289(r006): 71(ptr) Variable Function - 1293(r007): 71(ptr) Variable Function - 1303(r008): 71(ptr) Variable Function - 1308(r009): 71(ptr) Variable Function - 1311(r010): 71(ptr) Variable Function - 1314(r011): 71(ptr) Variable Function - 1317(r012): 71(ptr) Variable Function - 1320(r013): 71(ptr) Variable Function - 1323(r014): 71(ptr) Variable Function - 1326(r015): 71(ptr) Variable Function - 1329(r016): 71(ptr) Variable Function - 1332(r017): 71(ptr) Variable Function - 1335(r018): 7(ptr) Variable Function - 1338(r019): 71(ptr) Variable Function - 1341(R020): 71(ptr) Variable Function - 1344(r021): 71(ptr) Variable Function - 1347(r022): 71(ptr) Variable Function - 1360(r023): 71(ptr) Variable Function - 1363(r025): 71(ptr) Variable Function - 1366(r026): 71(ptr) Variable Function - 1370(r026a): 71(ptr) Variable Function - 1375(r027): 71(ptr) Variable Function - 1378(r028): 71(ptr) Variable Function - 1382(r029): 71(ptr) Variable Function - 1385(r030): 71(ptr) Variable Function - 1389(r031): 71(ptr) Variable Function - 1393(r032): 71(ptr) Variable Function - 1397(r033): 71(ptr) Variable Function - 1400(r034): 71(ptr) Variable Function - 1403(r035): 71(ptr) Variable Function - 1406(r036): 71(ptr) Variable Function - 1411(r037): 71(ptr) Variable Function - 1414(r038): 71(ptr) Variable Function - 1421(r039): 71(ptr) Variable Function - 1424(r049): 71(ptr) Variable Function - 1429(r041): 71(ptr) Variable Function - 1432(r042): 71(ptr) Variable Function - 1436(r043): 71(ptr) Variable Function - 1439(r044): 71(ptr) Variable Function - 1444(r046): 71(ptr) Variable Function - 1270: 70 Load 73(inF0) - 1272: 1271 FUnordNotEqual 1270 141 - 1273: 137(bool) All 1272 - Store 1269(r000) 1273 - 1275: 70 Load 73(inF0) - 1276: 70 ExtInst 1(GLSL.std.450) 4(FAbs) 1275 - Store 1274(r001) 1276 - 1277: 70 Load 73(inF0) - 1278: 70 ExtInst 1(GLSL.std.450) 17(Acos) 1277 - 1280: 70 Load 73(inF0) - 1281: 1271 FUnordNotEqual 1280 141 - 1282: 137(bool) Any 1281 - Store 1279(r003) 1282 - 1284: 70 Load 73(inF0) - 1285: 70 ExtInst 1(GLSL.std.450) 16(Asin) 1284 - Store 1283(r004) 1285 - 1287: 70 Load 73(inF0) - 1288: 70 ExtInst 1(GLSL.std.450) 18(Atan) 1287 - Store 1286(r005) 1288 - 1290: 70 Load 73(inF0) - 1291: 70 Load 74(inF1) - 1292: 70 ExtInst 1(GLSL.std.450) 25(Atan2) 1290 1291 - Store 1289(r006) 1292 - 1294: 70 Load 73(inF0) - 1295: 70 ExtInst 1(GLSL.std.450) 9(Ceil) 1294 - Store 1293(r007) 1295 - 1296: 70 Load 73(inF0) - 1298: 1271 FOrdLessThan 1296 1297 - 1299: 137(bool) Any 1298 - SelectionMerge 1301 None - BranchConditional 1299 1300 1301 - 1300: Label - Kill - 1301: Label - 1304: 70 Load 73(inF0) - 1305: 70 Load 74(inF1) - 1306: 70 Load 75(inF2) - 1307: 70 ExtInst 1(GLSL.std.450) 43(FClamp) 1304 1305 1306 - Store 1303(r008) 1307 - 1309: 70 Load 73(inF0) - 1310: 70 ExtInst 1(GLSL.std.450) 14(Cos) 1309 - Store 1308(r009) 1310 - 1312: 70 Load 73(inF0) - 1313: 70 ExtInst 1(GLSL.std.450) 20(Cosh) 1312 - Store 1311(r010) 1313 - 1315: 70 Load 73(inF0) - 1316: 70 DPdx 1315 - Store 1314(r011) 1316 - 1318: 70 Load 73(inF0) - 1319: 70 DPdxCoarse 1318 - Store 1317(r012) 1319 - 1321: 70 Load 73(inF0) - 1322: 70 DPdxFine 1321 - Store 1320(r013) 1322 - 1324: 70 Load 73(inF0) - 1325: 70 DPdy 1324 - Store 1323(r014) 1325 - 1327: 70 Load 73(inF0) - 1328: 70 DPdyCoarse 1327 - Store 1326(r015) 1328 - 1330: 70 Load 73(inF0) - 1331: 70 DPdyFine 1330 - Store 1329(r016) 1331 - 1333: 70 Load 73(inF0) - 1334: 70 ExtInst 1(GLSL.std.450) 12(Degrees) 1333 - Store 1332(r017) 1334 - 1336: 70 Load 73(inF0) - 1337: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1336 - Store 1335(r018) 1337 - 1339: 70 Load 73(inF0) - 1340: 70 ExtInst 1(GLSL.std.450) 27(Exp) 1339 - Store 1338(r019) 1340 - 1342: 70 Load 73(inF0) - 1343: 70 ExtInst 1(GLSL.std.450) 29(Exp2) 1342 - Store 1341(R020) 1343 - 1345: 70 Load 73(inF0) - 1346: 70 ExtInst 1(GLSL.std.450) 8(Floor) 1345 - Store 1344(r021) 1346 - 1348: 70 Load 73(inF0) - 1349: 70 Load 74(inF1) - 1350: 38(fvec3) CompositeExtract 1348 0 - 1351: 38(fvec3) CompositeExtract 1349 0 - 1352: 38(fvec3) FMod 1350 1351 - 1353: 38(fvec3) CompositeExtract 1348 1 - 1354: 38(fvec3) CompositeExtract 1349 1 - 1355: 38(fvec3) FMod 1353 1354 - 1356: 38(fvec3) CompositeExtract 1348 2 - 1357: 38(fvec3) CompositeExtract 1349 2 - 1358: 38(fvec3) FMod 1356 1357 - 1359: 70 CompositeConstruct 1352 1355 1358 - Store 1347(r022) 1359 - 1361: 70 Load 73(inF0) - 1362: 70 ExtInst 1(GLSL.std.450) 10(Fract) 1361 - Store 1360(r023) 1362 - 1364: 70 Load 73(inF0) - 1365: 70 Fwidth 1364 - Store 1363(r025) 1365 - 1367: 70 Load 73(inF0) - 1368: 70 Load 74(inF1) - 1369: 70 ExtInst 1(GLSL.std.450) 53(Ldexp) 1367 1368 - Store 1366(r026) 1369 - 1371: 70 Load 73(inF0) - 1372: 70 Load 74(inF1) - 1373: 70 Load 75(inF2) - 1374: 70 ExtInst 1(GLSL.std.450) 46(FMix) 1371 1372 1373 - Store 1370(r026a) 1374 - 1376: 70 Load 73(inF0) - 1377: 70 ExtInst 1(GLSL.std.450) 28(Log) 1376 - Store 1375(r027) 1377 - 1379: 70 Load 73(inF0) - 1380: 70 ExtInst 1(GLSL.std.450) 30(Log2) 1379 - 1381: 70 MatrixTimesScalar 1380 276 - Store 1378(r028) 1381 - 1383: 70 Load 73(inF0) - 1384: 70 ExtInst 1(GLSL.std.450) 30(Log2) 1383 - Store 1382(r029) 1384 - 1386: 70 Load 73(inF0) - 1387: 70 Load 74(inF1) - 1388: 70 ExtInst 1(GLSL.std.450) 40(FMax) 1386 1387 - Store 1385(r030) 1388 - 1390: 70 Load 73(inF0) - 1391: 70 Load 74(inF1) - 1392: 70 ExtInst 1(GLSL.std.450) 37(FMin) 1390 1391 - Store 1389(r031) 1392 - 1394: 70 Load 73(inF0) - 1395: 70 Load 74(inF1) - 1396: 70 ExtInst 1(GLSL.std.450) 26(Pow) 1394 1395 - Store 1393(r032) 1396 - 1398: 70 Load 73(inF0) - 1399: 70 ExtInst 1(GLSL.std.450) 11(Radians) 1398 - Store 1397(r033) 1399 - 1401: 70 Load 73(inF0) - 1402: 70 ExtInst 1(GLSL.std.450) 2(RoundEven) 1401 - Store 1400(r034) 1402 - 1404: 70 Load 73(inF0) - 1405: 70 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1404 - Store 1403(r035) 1405 - 1407: 70 Load 73(inF0) - 1408: 38(fvec3) CompositeConstruct 141 141 141 - 1409: 38(fvec3) CompositeConstruct 297 297 297 - 1410: 70 ExtInst 1(GLSL.std.450) 43(FClamp) 1407 1408 1409 - Store 1406(r036) 1410 - 1412: 70 Load 73(inF0) - 1413: 70 ExtInst 1(GLSL.std.450) 6(FSign) 1412 - Store 1411(r037) 1413 - 1415: 70 Load 73(inF0) - 1416: 70 ExtInst 1(GLSL.std.450) 13(Sin) 1415 - Store 1414(r038) 1416 - 1417: 70 Load 73(inF0) - 1418: 70 ExtInst 1(GLSL.std.450) 13(Sin) 1417 - Store 74(inF1) 1418 - 1419: 70 Load 73(inF0) - 1420: 70 ExtInst 1(GLSL.std.450) 14(Cos) 1419 - Store 75(inF2) 1420 - 1422: 70 Load 73(inF0) - 1423: 70 ExtInst 1(GLSL.std.450) 19(Sinh) 1422 - Store 1421(r039) 1423 - 1425: 70 Load 73(inF0) - 1426: 70 Load 74(inF1) - 1427: 70 Load 75(inF2) - 1428: 70 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1425 1426 1427 - Store 1424(r049) 1428 - 1430: 70 Load 73(inF0) - 1431: 70 ExtInst 1(GLSL.std.450) 31(Sqrt) 1430 - Store 1429(r041) 1431 - 1433: 70 Load 73(inF0) - 1434: 70 Load 74(inF1) - 1435: 70 ExtInst 1(GLSL.std.450) 48(Step) 1433 1434 - Store 1432(r042) 1435 - 1437: 70 Load 73(inF0) - 1438: 70 ExtInst 1(GLSL.std.450) 15(Tan) 1437 - Store 1436(r043) 1438 - 1440: 70 Load 73(inF0) - 1441: 70 ExtInst 1(GLSL.std.450) 21(Tanh) 1440 - Store 1439(r044) 1441 - 1442: 70 Load 73(inF0) - 1443: 70 Transpose 1442 - 1445: 70 Load 73(inF0) - 1446: 70 ExtInst 1(GLSL.std.450) 3(Trunc) 1445 - Store 1444(r046) 1446 - ReturnValue 1448 - 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 - 1451(r000): 138(ptr) Variable Function - 1456(r001): 79(ptr) Variable Function - 1461(r003): 138(ptr) Variable Function - 1465(r004): 79(ptr) Variable Function - 1468(r005): 79(ptr) Variable Function - 1471(r006): 79(ptr) Variable Function - 1475(r007): 79(ptr) Variable Function - 1485(r008): 79(ptr) Variable Function - 1490(r009): 79(ptr) Variable Function - 1493(r010): 79(ptr) Variable Function - 1496(r011): 79(ptr) Variable Function - 1499(r012): 79(ptr) Variable Function - 1502(r013): 79(ptr) Variable Function - 1505(r014): 79(ptr) Variable Function - 1508(r015): 79(ptr) Variable Function - 1511(r016): 79(ptr) Variable Function - 1514(r017): 79(ptr) Variable Function - 1517(r018): 7(ptr) Variable Function - 1520(r019): 79(ptr) Variable Function - 1523(R020): 79(ptr) Variable Function - 1526(r021): 79(ptr) Variable Function - 1529(r022): 79(ptr) Variable Function - 1545(r023): 79(ptr) Variable Function - 1548(r025): 79(ptr) Variable Function - 1551(r026): 79(ptr) Variable Function - 1555(r026a): 79(ptr) Variable Function - 1560(r027): 79(ptr) Variable Function - 1563(r028): 79(ptr) Variable Function - 1567(r029): 79(ptr) Variable Function - 1570(r030): 79(ptr) Variable Function - 1574(r031): 79(ptr) Variable Function - 1578(r032): 79(ptr) Variable Function - 1582(r033): 79(ptr) Variable Function - 1585(r034): 79(ptr) Variable Function - 1588(r035): 79(ptr) Variable Function - 1591(r036): 79(ptr) Variable Function - 1596(r037): 79(ptr) Variable Function - 1599(r038): 79(ptr) Variable Function - 1606(r039): 79(ptr) Variable Function - 1609(r049): 79(ptr) Variable Function - 1614(r041): 79(ptr) Variable Function - 1617(r042): 79(ptr) Variable Function - 1621(r043): 79(ptr) Variable Function - 1624(r044): 79(ptr) Variable Function - 1629(r046): 79(ptr) Variable Function - 1452: 78 Load 81(inF0) - 1454: 1453 FUnordNotEqual 1452 141 - 1455: 137(bool) All 1454 - Store 1451(r000) 1455 - 1457: 78 Load 81(inF0) - 1458: 78 ExtInst 1(GLSL.std.450) 4(FAbs) 1457 - Store 1456(r001) 1458 - 1459: 78 Load 81(inF0) - 1460: 78 ExtInst 1(GLSL.std.450) 17(Acos) 1459 - 1462: 78 Load 81(inF0) - 1463: 1453 FUnordNotEqual 1462 141 - 1464: 137(bool) Any 1463 - Store 1461(r003) 1464 - 1466: 78 Load 81(inF0) - 1467: 78 ExtInst 1(GLSL.std.450) 16(Asin) 1466 - Store 1465(r004) 1467 - 1469: 78 Load 81(inF0) - 1470: 78 ExtInst 1(GLSL.std.450) 18(Atan) 1469 - Store 1468(r005) 1470 - 1472: 78 Load 81(inF0) - 1473: 78 Load 82(inF1) - 1474: 78 ExtInst 1(GLSL.std.450) 25(Atan2) 1472 1473 - Store 1471(r006) 1474 - 1476: 78 Load 81(inF0) - 1477: 78 ExtInst 1(GLSL.std.450) 9(Ceil) 1476 - Store 1475(r007) 1477 - 1478: 78 Load 81(inF0) - 1480: 1453 FOrdLessThan 1478 1479 - 1481: 137(bool) Any 1480 - SelectionMerge 1483 None - BranchConditional 1481 1482 1483 - 1482: Label - Kill - 1483: Label - 1486: 78 Load 81(inF0) - 1487: 78 Load 82(inF1) - 1488: 78 Load 83(inF2) - 1489: 78 ExtInst 1(GLSL.std.450) 43(FClamp) 1486 1487 1488 - Store 1485(r008) 1489 - 1491: 78 Load 81(inF0) - 1492: 78 ExtInst 1(GLSL.std.450) 14(Cos) 1491 - Store 1490(r009) 1492 - 1494: 78 Load 81(inF0) - 1495: 78 ExtInst 1(GLSL.std.450) 20(Cosh) 1494 - Store 1493(r010) 1495 - 1497: 78 Load 81(inF0) - 1498: 78 DPdx 1497 - Store 1496(r011) 1498 - 1500: 78 Load 81(inF0) - 1501: 78 DPdxCoarse 1500 - Store 1499(r012) 1501 - 1503: 78 Load 81(inF0) - 1504: 78 DPdxFine 1503 - Store 1502(r013) 1504 - 1506: 78 Load 81(inF0) - 1507: 78 DPdy 1506 - Store 1505(r014) 1507 - 1509: 78 Load 81(inF0) - 1510: 78 DPdyCoarse 1509 - Store 1508(r015) 1510 - 1512: 78 Load 81(inF0) - 1513: 78 DPdyFine 1512 - Store 1511(r016) 1513 - 1515: 78 Load 81(inF0) - 1516: 78 ExtInst 1(GLSL.std.450) 12(Degrees) 1515 - Store 1514(r017) 1516 - 1518: 78 Load 81(inF0) - 1519: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1518 - Store 1517(r018) 1519 - 1521: 78 Load 81(inF0) - 1522: 78 ExtInst 1(GLSL.std.450) 27(Exp) 1521 - Store 1520(r019) 1522 - 1524: 78 Load 81(inF0) - 1525: 78 ExtInst 1(GLSL.std.450) 29(Exp2) 1524 - Store 1523(R020) 1525 - 1527: 78 Load 81(inF0) - 1528: 78 ExtInst 1(GLSL.std.450) 8(Floor) 1527 - Store 1526(r021) 1528 - 1530: 78 Load 81(inF0) - 1531: 78 Load 82(inF1) - 1532: 50(fvec4) CompositeExtract 1530 0 - 1533: 50(fvec4) CompositeExtract 1531 0 - 1534: 50(fvec4) FMod 1532 1533 - 1535: 50(fvec4) CompositeExtract 1530 1 - 1536: 50(fvec4) CompositeExtract 1531 1 - 1537: 50(fvec4) FMod 1535 1536 - 1538: 50(fvec4) CompositeExtract 1530 2 - 1539: 50(fvec4) CompositeExtract 1531 2 - 1540: 50(fvec4) FMod 1538 1539 - 1541: 50(fvec4) CompositeExtract 1530 3 - 1542: 50(fvec4) CompositeExtract 1531 3 - 1543: 50(fvec4) FMod 1541 1542 - 1544: 78 CompositeConstruct 1534 1537 1540 1543 - Store 1529(r022) 1544 - 1546: 78 Load 81(inF0) - 1547: 78 ExtInst 1(GLSL.std.450) 10(Fract) 1546 - Store 1545(r023) 1547 - 1549: 78 Load 81(inF0) - 1550: 78 Fwidth 1549 - Store 1548(r025) 1550 - 1552: 78 Load 81(inF0) - 1553: 78 Load 82(inF1) - 1554: 78 ExtInst 1(GLSL.std.450) 53(Ldexp) 1552 1553 - Store 1551(r026) 1554 - 1556: 78 Load 81(inF0) - 1557: 78 Load 82(inF1) - 1558: 78 Load 83(inF2) - 1559: 78 ExtInst 1(GLSL.std.450) 46(FMix) 1556 1557 1558 - Store 1555(r026a) 1559 - 1561: 78 Load 81(inF0) - 1562: 78 ExtInst 1(GLSL.std.450) 28(Log) 1561 - Store 1560(r027) 1562 - 1564: 78 Load 81(inF0) - 1565: 78 ExtInst 1(GLSL.std.450) 30(Log2) 1564 - 1566: 78 MatrixTimesScalar 1565 276 - Store 1563(r028) 1566 - 1568: 78 Load 81(inF0) - 1569: 78 ExtInst 1(GLSL.std.450) 30(Log2) 1568 - Store 1567(r029) 1569 - 1571: 78 Load 81(inF0) - 1572: 78 Load 82(inF1) - 1573: 78 ExtInst 1(GLSL.std.450) 40(FMax) 1571 1572 - Store 1570(r030) 1573 - 1575: 78 Load 81(inF0) - 1576: 78 Load 82(inF1) - 1577: 78 ExtInst 1(GLSL.std.450) 37(FMin) 1575 1576 - Store 1574(r031) 1577 - 1579: 78 Load 81(inF0) - 1580: 78 Load 82(inF1) - 1581: 78 ExtInst 1(GLSL.std.450) 26(Pow) 1579 1580 - Store 1578(r032) 1581 - 1583: 78 Load 81(inF0) - 1584: 78 ExtInst 1(GLSL.std.450) 11(Radians) 1583 - Store 1582(r033) 1584 - 1586: 78 Load 81(inF0) - 1587: 78 ExtInst 1(GLSL.std.450) 2(RoundEven) 1586 - Store 1585(r034) 1587 - 1589: 78 Load 81(inF0) - 1590: 78 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1589 - Store 1588(r035) 1590 - 1592: 78 Load 81(inF0) - 1593: 50(fvec4) CompositeConstruct 141 141 141 141 - 1594: 50(fvec4) CompositeConstruct 297 297 297 297 - 1595: 78 ExtInst 1(GLSL.std.450) 43(FClamp) 1592 1593 1594 - Store 1591(r036) 1595 - 1597: 78 Load 81(inF0) - 1598: 78 ExtInst 1(GLSL.std.450) 6(FSign) 1597 - Store 1596(r037) 1598 - 1600: 78 Load 81(inF0) - 1601: 78 ExtInst 1(GLSL.std.450) 13(Sin) 1600 - Store 1599(r038) 1601 - 1602: 78 Load 81(inF0) - 1603: 78 ExtInst 1(GLSL.std.450) 13(Sin) 1602 - Store 82(inF1) 1603 - 1604: 78 Load 81(inF0) - 1605: 78 ExtInst 1(GLSL.std.450) 14(Cos) 1604 - Store 83(inF2) 1605 - 1607: 78 Load 81(inF0) - 1608: 78 ExtInst 1(GLSL.std.450) 19(Sinh) 1607 - Store 1606(r039) 1608 - 1610: 78 Load 81(inF0) - 1611: 78 Load 82(inF1) - 1612: 78 Load 83(inF2) - 1613: 78 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1610 1611 1612 - Store 1609(r049) 1613 - 1615: 78 Load 81(inF0) - 1616: 78 ExtInst 1(GLSL.std.450) 31(Sqrt) 1615 - Store 1614(r041) 1616 - 1618: 78 Load 81(inF0) - 1619: 78 Load 82(inF1) - 1620: 78 ExtInst 1(GLSL.std.450) 48(Step) 1618 1619 - Store 1617(r042) 1620 - 1622: 78 Load 81(inF0) - 1623: 78 ExtInst 1(GLSL.std.450) 15(Tan) 1622 - Store 1621(r043) 1623 - 1625: 78 Load 81(inF0) - 1626: 78 ExtInst 1(GLSL.std.450) 21(Tanh) 1625 - Store 1624(r044) 1626 - 1627: 78 Load 81(inF0) - 1628: 78 Transpose 1627 - 1630: 78 Load 81(inF0) - 1631: 78 ExtInst 1(GLSL.std.450) 3(Trunc) 1630 - Store 1629(r046) 1631 - ReturnValue 1633 - 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 - 1636(r0): 7(ptr) Variable Function - 1640(r1): 27(ptr) Variable Function - 1644(r2): 27(ptr) Variable Function - 1648(r3): 7(ptr) Variable Function - 1652(r4): 27(ptr) Variable Function - 1656(r5): 27(ptr) Variable Function - 1660(r6): 63(ptr) Variable Function - 1664(r7): 63(ptr) Variable Function - 1668(r8): 63(ptr) Variable Function - 1637: 6(float) Load 88(inF1) - 1638: 6(float) Load 87(inF0) - 1639: 6(float) FMul 1637 1638 - Store 1636(r0) 1639 - 1641: 6(float) Load 87(inF0) - 1642: 26(fvec2) Load 89(inFV0) - 1643: 26(fvec2) VectorTimesScalar 1642 1641 - Store 1640(r1) 1643 - 1645: 26(fvec2) Load 89(inFV0) - 1646: 6(float) Load 87(inF0) - 1647: 26(fvec2) VectorTimesScalar 1645 1646 - Store 1644(r2) 1647 - 1649: 26(fvec2) Load 89(inFV0) - 1650: 26(fvec2) Load 90(inFV1) - 1651: 6(float) Dot 1649 1650 - Store 1648(r3) 1651 - 1653: 26(fvec2) Load 89(inFV0) - 1654: 62 Load 91(inFM0) - 1655: 26(fvec2) VectorTimesMatrix 1653 1654 - Store 1652(r4) 1655 - 1657: 62 Load 91(inFM0) - 1658: 26(fvec2) Load 89(inFV0) - 1659: 26(fvec2) MatrixTimesVector 1657 1658 - Store 1656(r5) 1659 - 1661: 6(float) Load 87(inF0) - 1662: 62 Load 91(inFM0) - 1663: 62 MatrixTimesScalar 1662 1661 - Store 1660(r6) 1663 - 1665: 62 Load 91(inFM0) - 1666: 6(float) Load 87(inF0) - 1667: 62 MatrixTimesScalar 1665 1666 - Store 1664(r7) 1667 - 1669: 62 Load 92(inFM1) - 1670: 62 Load 91(inFM0) - 1671: 62 MatrixTimesMatrix 1669 1670 - Store 1668(r8) 1671 - 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 - 1672(r0): 7(ptr) Variable Function - 1676(r1): 39(ptr) Variable Function - 1680(r2): 39(ptr) Variable Function - 1684(r3): 7(ptr) Variable Function - 1688(r4): 39(ptr) Variable Function - 1692(r5): 39(ptr) Variable Function - 1696(r6): 71(ptr) Variable Function - 1700(r7): 71(ptr) Variable Function - 1704(r8): 71(ptr) Variable Function - 1673: 6(float) Load 97(inF1) - 1674: 6(float) Load 96(inF0) - 1675: 6(float) FMul 1673 1674 - Store 1672(r0) 1675 - 1677: 6(float) Load 96(inF0) - 1678: 38(fvec3) Load 98(inFV0) - 1679: 38(fvec3) VectorTimesScalar 1678 1677 - Store 1676(r1) 1679 - 1681: 38(fvec3) Load 98(inFV0) - 1682: 6(float) Load 96(inF0) - 1683: 38(fvec3) VectorTimesScalar 1681 1682 - Store 1680(r2) 1683 - 1685: 38(fvec3) Load 98(inFV0) - 1686: 38(fvec3) Load 99(inFV1) - 1687: 6(float) Dot 1685 1686 - Store 1684(r3) 1687 - 1689: 38(fvec3) Load 98(inFV0) - 1690: 70 Load 100(inFM0) - 1691: 38(fvec3) VectorTimesMatrix 1689 1690 - Store 1688(r4) 1691 - 1693: 70 Load 100(inFM0) - 1694: 38(fvec3) Load 98(inFV0) - 1695: 38(fvec3) MatrixTimesVector 1693 1694 - Store 1692(r5) 1695 - 1697: 6(float) Load 96(inF0) - 1698: 70 Load 100(inFM0) - 1699: 70 MatrixTimesScalar 1698 1697 - Store 1696(r6) 1699 - 1701: 70 Load 100(inFM0) - 1702: 6(float) Load 96(inF0) - 1703: 70 MatrixTimesScalar 1701 1702 - Store 1700(r7) 1703 - 1705: 70 Load 101(inFM1) - 1706: 70 Load 100(inFM0) - 1707: 70 MatrixTimesMatrix 1705 1706 - Store 1704(r8) 1707 - 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 - 1708(r0): 7(ptr) Variable Function - 1712(r1): 51(ptr) Variable Function - 1716(r2): 51(ptr) Variable Function - 1720(r3): 7(ptr) Variable Function - 1724(r4): 51(ptr) Variable Function - 1728(r5): 51(ptr) Variable Function - 1732(r6): 79(ptr) Variable Function - 1736(r7): 79(ptr) Variable Function - 1740(r8): 79(ptr) Variable Function - 1709: 6(float) Load 106(inF1) - 1710: 6(float) Load 105(inF0) - 1711: 6(float) FMul 1709 1710 - Store 1708(r0) 1711 - 1713: 6(float) Load 105(inF0) - 1714: 50(fvec4) Load 107(inFV0) - 1715: 50(fvec4) VectorTimesScalar 1714 1713 - Store 1712(r1) 1715 - 1717: 50(fvec4) Load 107(inFV0) - 1718: 6(float) Load 105(inF0) - 1719: 50(fvec4) VectorTimesScalar 1717 1718 - Store 1716(r2) 1719 - 1721: 50(fvec4) Load 107(inFV0) - 1722: 50(fvec4) Load 108(inFV1) - 1723: 6(float) Dot 1721 1722 - Store 1720(r3) 1723 - 1725: 50(fvec4) Load 107(inFV0) - 1726: 78 Load 109(inFM0) - 1727: 50(fvec4) VectorTimesMatrix 1725 1726 - Store 1724(r4) 1727 - 1729: 78 Load 109(inFM0) - 1730: 50(fvec4) Load 107(inFV0) - 1731: 50(fvec4) MatrixTimesVector 1729 1730 - Store 1728(r5) 1731 - 1733: 6(float) Load 105(inF0) - 1734: 78 Load 109(inFM0) - 1735: 78 MatrixTimesScalar 1734 1733 - Store 1732(r6) 1735 - 1737: 78 Load 109(inFM0) - 1738: 6(float) Load 105(inF0) - 1739: 78 MatrixTimesScalar 1737 1738 - Store 1736(r7) 1739 - 1741: 78 Load 110(inFM1) - 1742: 78 Load 109(inFM0) - 1743: 78 MatrixTimesMatrix 1741 1742 - Store 1740(r8) 1743 - 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 - 1744(r00): 7(ptr) Variable Function - 1748(r01): 27(ptr) Variable Function - 1752(r02): 39(ptr) Variable Function - 1756(r03): 27(ptr) Variable Function - 1760(r04): 39(ptr) Variable Function - 1764(r05): 7(ptr) Variable Function - 1768(r06): 7(ptr) Variable Function - 1772(r07): 39(ptr) Variable Function - 1776(r08): 27(ptr) Variable Function - 1780(r09): 27(ptr) Variable Function - 1784(r10): 39(ptr) Variable Function - 1788(r11): 114(ptr) Variable Function - 1792(r12): 116(ptr) Variable Function - 1796(r13): 63(ptr) Variable Function - 1800(r14): 114(ptr) Variable Function - 1804(r15): 120(ptr) Variable Function - 1808(r16): 118(ptr) Variable Function - 1745: 6(float) Load 123(inF1) - 1746: 6(float) Load 122(inF0) - 1747: 6(float) FMul 1745 1746 - Store 1744(r00) 1747 - 1749: 6(float) Load 122(inF0) - 1750: 26(fvec2) Load 124(inFV2) - 1751: 26(fvec2) VectorTimesScalar 1750 1749 - Store 1748(r01) 1751 - 1753: 6(float) Load 122(inF0) - 1754: 38(fvec3) Load 125(inFV3) - 1755: 38(fvec3) VectorTimesScalar 1754 1753 - Store 1752(r02) 1755 - 1757: 26(fvec2) Load 124(inFV2) - 1758: 6(float) Load 122(inF0) - 1759: 26(fvec2) VectorTimesScalar 1757 1758 - Store 1756(r03) 1759 - 1761: 38(fvec3) Load 125(inFV3) - 1762: 6(float) Load 122(inF0) - 1763: 38(fvec3) VectorTimesScalar 1761 1762 - Store 1760(r04) 1763 - 1765: 26(fvec2) Load 124(inFV2) - 1766: 26(fvec2) Load 124(inFV2) - 1767: 6(float) Dot 1765 1766 - Store 1764(r05) 1767 - 1769: 38(fvec3) Load 125(inFV3) - 1770: 38(fvec3) Load 125(inFV3) - 1771: 6(float) Dot 1769 1770 - Store 1768(r06) 1771 - 1773: 113 Load 126(inFM2x3) - 1774: 26(fvec2) Load 124(inFV2) - 1775: 38(fvec3) MatrixTimesVector 1773 1774 - Store 1772(r07) 1775 - 1777: 115 Load 127(inFM3x2) - 1778: 38(fvec3) Load 125(inFV3) - 1779: 26(fvec2) MatrixTimesVector 1777 1778 - Store 1776(r08) 1779 - 1781: 38(fvec3) Load 125(inFV3) - 1782: 113 Load 126(inFM2x3) - 1783: 26(fvec2) VectorTimesMatrix 1781 1782 - Store 1780(r09) 1783 - 1785: 26(fvec2) Load 124(inFV2) - 1786: 115 Load 127(inFM3x2) - 1787: 38(fvec3) VectorTimesMatrix 1785 1786 - Store 1784(r10) 1787 - 1789: 6(float) Load 122(inF0) - 1790: 113 Load 126(inFM2x3) - 1791: 113 MatrixTimesScalar 1790 1789 - Store 1788(r11) 1791 - 1793: 6(float) Load 122(inF0) - 1794: 115 Load 127(inFM3x2) - 1795: 115 MatrixTimesScalar 1794 1793 - Store 1792(r12) 1795 - 1797: 115 Load 127(inFM3x2) - 1798: 113 Load 126(inFM2x3) - 1799: 62 MatrixTimesMatrix 1797 1798 - Store 1796(r13) 1799 - 1801: 70 Load 128(inFM3x3) - 1802: 113 Load 126(inFM2x3) - 1803: 113 MatrixTimesMatrix 1801 1802 - Store 1800(r14) 1803 - 1805: 117 Load 129(inFM3x4) - 1806: 113 Load 126(inFM2x3) - 1807: 119 MatrixTimesMatrix 1805 1806 - Store 1804(r15) 1807 - 1809: 119 Load 130(inFM2x4) - 1810: 115 Load 127(inFM3x2) - 1811: 117 MatrixTimesMatrix 1809 1810 - Store 1808(r16) 1811 - Return - FunctionEnd - 135(@main():133(PS_OUTPUT) Function None 134 - 136: Label - 1813(ps_output): 1812(ptr) Variable Function - 1815: 51(ptr) AccessChain 1813(ps_output) 187 - Store 1815 1814 - 1816:133(PS_OUTPUT) Load 1813(ps_output) - ReturnValue 1816 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.intrinsics.lit.frag.out b/deps/glslang/Test/baseResults/hlsl.intrinsics.lit.frag.out deleted file mode 100644 index ef5759eb..00000000 --- a/deps/glslang/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): 8000a -// 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/Test/baseResults/hlsl.intrinsics.negative.comp.out b/deps/glslang/Test/baseResults/hlsl.intrinsics.negative.comp.out deleted file mode 100644 index c0a543c2..00000000 --- a/deps/glslang/Test/baseResults/hlsl.intrinsics.negative.comp.out +++ /dev/null @@ -1,272 +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 void) -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:55 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1;vi1; ( temp void) -0:55 Function Parameters: -0:55 'inF0' ( in 1-component vector of float) -0:55 'inF1' ( in 1-component vector of float) -0:55 'inF2' ( in 1-component vector of float) -0:55 'inI0' ( in 1-component vector of int) -0:62 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vi2; ( temp void) -0:62 Function Parameters: -0:62 'inF0' ( in 2-component vector of float) -0:62 'inF1' ( in 2-component vector of float) -0:62 'inF2' ( in 2-component vector of float) -0:62 'inI0' ( in 2-component vector of int) -0:107 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vi3; ( temp void) -0:107 Function Parameters: -0:107 'inF0' ( in 3-component vector of float) -0:107 'inF1' ( in 3-component vector of float) -0:107 'inF2' ( in 3-component vector of float) -0:107 'inI0' ( in 3-component vector of int) -0:150 Function Definition: @ComputeShaderFunction(vf4;vf4;vf4;vi4; ( temp void) -0:150 Function Parameters: -0:150 'inF0' ( in 4-component vector of float) -0:150 'inF1' ( in 4-component vector of float) -0:150 'inF2' ( in 4-component vector of float) -0:150 'inI0' ( in 4-component vector of int) -0:150 Function Definition: ComputeShaderFunction( ( temp void) -0:150 Function Parameters: -0:? Sequence -0:150 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:150 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:150 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:150 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:150 Function Call: @ComputeShaderFunction(vf4;vf4;vf4;vi4; ( temp void) -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:? '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 void) -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:55 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1;vi1; ( temp void) -0:55 Function Parameters: -0:55 'inF0' ( in 1-component vector of float) -0:55 'inF1' ( in 1-component vector of float) -0:55 'inF2' ( in 1-component vector of float) -0:55 'inI0' ( in 1-component vector of int) -0:62 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vi2; ( temp void) -0:62 Function Parameters: -0:62 'inF0' ( in 2-component vector of float) -0:62 'inF1' ( in 2-component vector of float) -0:62 'inF2' ( in 2-component vector of float) -0:62 'inI0' ( in 2-component vector of int) -0:107 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vi3; ( temp void) -0:107 Function Parameters: -0:107 'inF0' ( in 3-component vector of float) -0:107 'inF1' ( in 3-component vector of float) -0:107 'inF2' ( in 3-component vector of float) -0:107 'inI0' ( in 3-component vector of int) -0:150 Function Definition: @ComputeShaderFunction(vf4;vf4;vf4;vi4; ( temp void) -0:150 Function Parameters: -0:150 'inF0' ( in 4-component vector of float) -0:150 'inF1' ( in 4-component vector of float) -0:150 'inF2' ( in 4-component vector of float) -0:150 'inI0' ( in 4-component vector of int) -0:150 Function Definition: ComputeShaderFunction( ( temp void) -0:150 Function Parameters: -0:? Sequence -0:150 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:150 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:150 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:150 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:150 Function Call: @ComputeShaderFunction(vf4;vf4;vf4;vi4; ( temp void) -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:? '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): 8000a -// Id's are bound by 79 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "ComputeShaderFunction" 58 61 64 68 - 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 56 "inF0" - Name 58 "inF0" - Name 60 "inF1" - Name 61 "inF1" - Name 63 "inF2" - Name 64 "inF2" - Name 66 "inI0" - Name 68 "inI0" - Name 70 "param" - Name 72 "param" - Name 74 "param" - Name 76 "param" - Decorate 58(inF0) Location 0 - Decorate 61(inF1) Location 1 - Decorate 64(inF2) Location 2 - Decorate 68(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 2 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 2 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 2 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 2 46(ptr) 46(ptr) 46(ptr) 48(ptr) - 57: TypePointer Input 45(fvec4) - 58(inF0): 57(ptr) Variable Input - 61(inF1): 57(ptr) Variable Input - 64(inF2): 57(ptr) Variable Input - 67: TypePointer Input 47(ivec4) - 68(inI0): 67(ptr) Variable Input -4(ComputeShaderFunction): 2 Function None 3 - 5: Label - 56(inF0): 46(ptr) Variable Function - 60(inF1): 46(ptr) Variable Function - 63(inF2): 46(ptr) Variable Function - 66(inI0): 48(ptr) Variable Function - 70(param): 46(ptr) Variable Function - 72(param): 46(ptr) Variable Function - 74(param): 46(ptr) Variable Function - 76(param): 48(ptr) Variable Function - 59: 45(fvec4) Load 58(inF0) - Store 56(inF0) 59 - 62: 45(fvec4) Load 61(inF1) - Store 60(inF1) 62 - 65: 45(fvec4) Load 64(inF2) - Store 63(inF2) 65 - 69: 47(ivec4) Load 68(inI0) - Store 66(inI0) 69 - 71: 45(fvec4) Load 56(inF0) - Store 70(param) 71 - 73: 45(fvec4) Load 60(inF1) - Store 72(param) 73 - 75: 45(fvec4) Load 63(inF2) - Store 74(param) 75 - 77: 47(ivec4) Load 66(inI0) - Store 76(param) 77 - 78: 2 FunctionCall 54(@ComputeShaderFunction(vf4;vf4;vf4;vi4;) 70(param) 72(param) 74(param) 76(param) - Return - FunctionEnd -15(ComputeShaderFunctionS(f1;f1;f1;i1;): 2 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 - Return - FunctionEnd -21(ComputeShaderFunction1(vf1;vf1;vf1;vi1;): 2 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 - Return - FunctionEnd -32(ComputeShaderFunction2(vf2;vf2;vf2;vi2;): 2 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 - Return - FunctionEnd -43(ComputeShaderFunction3(vf3;vf3;vf3;vi3;): 2 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 - Return - FunctionEnd -54(@ComputeShaderFunction(vf4;vf4;vf4;vi4;): 2 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 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.intrinsics.negative.frag.out b/deps/glslang/Test/baseResults/hlsl.intrinsics.negative.frag.out deleted file mode 100644 index 4c021e02..00000000 --- a/deps/glslang/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:59 Constant: -0:59 1.000000 -0:59 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:76 Constant: -0:76 1.000000 -0:76 2.000000 -0:76 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:92 Constant: -0:92 1.000000 -0:92 2.000000 -0:92 3.000000 -0:92 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:119 Constant: -0:119 2.000000 -0:119 2.000000 -0:119 2.000000 -0:119 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:127 Constant: -0:127 3.000000 -0:127 3.000000 -0:127 3.000000 -0:127 3.000000 -0:127 3.000000 -0:127 3.000000 -0:127 3.000000 -0:127 3.000000 -0:127 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:135 Constant: -0:135 4.000000 -0:135 4.000000 -0:135 4.000000 -0:135 4.000000 -0:135 4.000000 -0:135 4.000000 -0:135 4.000000 -0:135 4.000000 -0:135 4.000000 -0:135 4.000000 -0:135 4.000000 -0:135 4.000000 -0:135 4.000000 -0:135 4.000000 -0:135 4.000000 -0:135 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:59 Constant: -0:59 1.000000 -0:59 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:76 Constant: -0:76 1.000000 -0:76 2.000000 -0:76 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:92 Constant: -0:92 1.000000 -0:92 2.000000 -0:92 3.000000 -0:92 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:119 Constant: -0:119 2.000000 -0:119 2.000000 -0:119 2.000000 -0:119 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:127 Constant: -0:127 3.000000 -0:127 3.000000 -0:127 3.000000 -0:127 3.000000 -0:127 3.000000 -0:127 3.000000 -0:127 3.000000 -0:127 3.000000 -0:127 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:135 Constant: -0:135 4.000000 -0:135 4.000000 -0:135 4.000000 -0:135 4.000000 -0:135 4.000000 -0:135 4.000000 -0:135 4.000000 -0:135 4.000000 -0:135 4.000000 -0:135 4.000000 -0:135 4.000000 -0:135 4.000000 -0:135 4.000000 -0:135 4.000000 -0:135 4.000000 -0:135 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/Test/baseResults/hlsl.intrinsics.negative.vert.out b/deps/glslang/Test/baseResults/hlsl.intrinsics.negative.vert.out deleted file mode 100644 index f1ab5826..00000000 --- a/deps/glslang/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:127 Constant: -0:127 1.000000 -0:127 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:172 Constant: -0:172 1.000000 -0:172 2.000000 -0:172 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:217 Constant: -0:217 1.000000 -0:217 2.000000 -0:217 3.000000 -0:217 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:230 Constant: -0:230 2.000000 -0:230 2.000000 -0:230 2.000000 -0:230 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:238 Constant: -0:238 3.000000 -0:238 3.000000 -0:238 3.000000 -0:238 3.000000 -0:238 3.000000 -0:238 3.000000 -0:238 3.000000 -0:238 3.000000 -0:238 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:246 Constant: -0:246 4.000000 -0:246 4.000000 -0:246 4.000000 -0:246 4.000000 -0:246 4.000000 -0:246 4.000000 -0:246 4.000000 -0:246 4.000000 -0:246 4.000000 -0:246 4.000000 -0:246 4.000000 -0:246 4.000000 -0:246 4.000000 -0:246 4.000000 -0:246 4.000000 -0:246 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:127 Constant: -0:127 1.000000 -0:127 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:172 Constant: -0:172 1.000000 -0:172 2.000000 -0:172 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:217 Constant: -0:217 1.000000 -0:217 2.000000 -0:217 3.000000 -0:217 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:230 Constant: -0:230 2.000000 -0:230 2.000000 -0:230 2.000000 -0:230 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:238 Constant: -0:238 3.000000 -0:238 3.000000 -0:238 3.000000 -0:238 3.000000 -0:238 3.000000 -0:238 3.000000 -0:238 3.000000 -0:238 3.000000 -0:238 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:246 Constant: -0:246 4.000000 -0:246 4.000000 -0:246 4.000000 -0:246 4.000000 -0:246 4.000000 -0:246 4.000000 -0:246 4.000000 -0:246 4.000000 -0:246 4.000000 -0:246 4.000000 -0:246 4.000000 -0:246 4.000000 -0:246 4.000000 -0:246 4.000000 -0:246 4.000000 -0:246 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): 8000a -// 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/Test/baseResults/hlsl.intrinsics.promote.down.frag.out b/deps/glslang/Test/baseResults/hlsl.intrinsics.promote.down.frag.out deleted file mode 100644 index bd73fae2..00000000 --- a/deps/glslang/Test/baseResults/hlsl.intrinsics.promote.down.frag.out +++ /dev/null @@ -1,199 +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:20 Constant: -0:20 0.000000 -0:20 0.000000 -0:20 0.000000 -0:20 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:20 Constant: -0:20 0.000000 -0:20 0.000000 -0:20 0.000000 -0:20 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): 8000a -// 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 21 Binding 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/Test/baseResults/hlsl.intrinsics.promote.frag.out b/deps/glslang/Test/baseResults/hlsl.intrinsics.promote.frag.out deleted file mode 100644 index 18fd0370..00000000 --- a/deps/glslang/Test/baseResults/hlsl.intrinsics.promote.frag.out +++ /dev/null @@ -1,1331 +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): 8000a -// 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 21 Binding 0 - Decorate 258(g_tTexbfs) DescriptorSet 0 - Decorate 258(g_tTexbfs) Binding 1 - Decorate 277(g_tTex1df4) DescriptorSet 0 - Decorate 277(g_tTex1df4) Binding 2 - 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/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out b/deps/glslang/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out deleted file mode 100644 index 1abed4c9..00000000 --- a/deps/glslang/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out +++ /dev/null @@ -1,357 +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): 8000a -// 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 19 Binding 0 - Decorate 31(g_tTex1df4) DescriptorSet 0 - Decorate 31(g_tTex1df4) Binding 1 - Decorate 74(@entryPointOutput.color) Location 0 - Decorate 79(g_tTexbfs) DescriptorSet 0 - Decorate 79(g_tTexbfs) Binding 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/Test/baseResults/hlsl.intrinsics.vert.out b/deps/glslang/Test/baseResults/hlsl.intrinsics.vert.out deleted file mode 100644 index 647570c9..00000000 --- a/deps/glslang/Test/baseResults/hlsl.intrinsics.vert.out +++ /dev/null @@ -1,4197 +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:85 bitCount ( temp 2-component vector of int) -0:85 Constant: -0:85 7 (const int) -0:85 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:117 bitFieldReverse ( temp 2-component vector of int) -0:117 Constant: -0:117 1 (const int) -0:117 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:134 Constant: -0:134 1.000000 -0:134 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:154 bitCount ( temp 3-component vector of int) -0:154 Constant: -0:154 7 (const int) -0:154 3 (const int) -0:154 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:187 bitFieldReverse ( temp 3-component vector of int) -0:187 Constant: -0:187 1 (const int) -0:187 2 (const int) -0:187 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:204 Constant: -0:204 1.000000 -0:204 2.000000 -0:204 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:224 bitCount ( temp 4-component vector of int) -0:224 Constant: -0:224 7 (const int) -0:224 3 (const int) -0:224 5 (const int) -0:224 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:257 bitFieldReverse ( temp 4-component vector of int) -0:257 Constant: -0:257 1 (const int) -0:257 2 (const int) -0:257 3 (const int) -0:257 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:274 Constant: -0:274 1.000000 -0:274 2.000000 -0:274 3.000000 -0:274 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:336 Constant: -0:336 2.000000 -0:336 2.000000 -0:336 2.000000 -0:336 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:345 Constant: -0:345 3.000000 -0:345 3.000000 -0:345 3.000000 -0:345 3.000000 -0:345 3.000000 -0:345 3.000000 -0:345 3.000000 -0:345 3.000000 -0:345 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:354 Constant: -0:354 4.000000 -0:354 4.000000 -0:354 4.000000 -0:354 4.000000 -0:354 4.000000 -0:354 4.000000 -0:354 4.000000 -0:354 4.000000 -0:354 4.000000 -0:354 4.000000 -0:354 4.000000 -0:354 4.000000 -0:354 4.000000 -0:354 4.000000 -0:354 4.000000 -0:354 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:85 bitCount ( temp 2-component vector of int) -0:85 Constant: -0:85 7 (const int) -0:85 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:117 bitFieldReverse ( temp 2-component vector of int) -0:117 Constant: -0:117 1 (const int) -0:117 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:134 Constant: -0:134 1.000000 -0:134 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:154 bitCount ( temp 3-component vector of int) -0:154 Constant: -0:154 7 (const int) -0:154 3 (const int) -0:154 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:187 bitFieldReverse ( temp 3-component vector of int) -0:187 Constant: -0:187 1 (const int) -0:187 2 (const int) -0:187 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:204 Constant: -0:204 1.000000 -0:204 2.000000 -0:204 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:224 bitCount ( temp 4-component vector of int) -0:224 Constant: -0:224 7 (const int) -0:224 3 (const int) -0:224 5 (const int) -0:224 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:257 bitFieldReverse ( temp 4-component vector of int) -0:257 Constant: -0:257 1 (const int) -0:257 2 (const int) -0:257 3 (const int) -0:257 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:274 Constant: -0:274 1.000000 -0:274 2.000000 -0:274 3.000000 -0:274 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:336 Constant: -0:336 2.000000 -0:336 2.000000 -0:336 2.000000 -0:336 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:345 Constant: -0:345 3.000000 -0:345 3.000000 -0:345 3.000000 -0:345 3.000000 -0:345 3.000000 -0:345 3.000000 -0:345 3.000000 -0:345 3.000000 -0:345 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:354 Constant: -0:354 4.000000 -0:354 4.000000 -0:354 4.000000 -0:354 4.000000 -0:354 4.000000 -0:354 4.000000 -0:354 4.000000 -0:354 4.000000 -0:354 4.000000 -0:354 4.000000 -0:354 4.000000 -0:354 4.000000 -0:354 4.000000 -0:354 4.000000 -0:354 4.000000 -0:354 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 - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// 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) FUnordNotEqual 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) FUnordNotEqual 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) FUnordNotEqual 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) FUnordNotEqual 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) FUnordNotEqual 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) FUnordNotEqual 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) FUnordNotEqual 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) FUnordNotEqual 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 FUnordNotEqual 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 FUnordNotEqual 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 FUnordNotEqual 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 FUnordNotEqual 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 FUnordNotEqual 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 FUnordNotEqual 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/Test/baseResults/hlsl.isfinite.frag.out b/deps/glslang/Test/baseResults/hlsl.isfinite.frag.out deleted file mode 100644 index 430ff064..00000000 --- a/deps/glslang/Test/baseResults/hlsl.isfinite.frag.out +++ /dev/null @@ -1,294 +0,0 @@ -hlsl.isfinite.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:7 Function Definition: test1(f1; ( temp bool) -0:7 Function Parameters: -0:7 'v' ( in float) -0:? Sequence -0:8 Branch: Return with expression -0:8 logical-and ( temp bool) -0:8 Negate conditional ( temp bool) -0:8 isnan ( temp bool) -0:8 'v' ( in float) -0:8 Sequence -0:8 move second child to first child ( temp float) -0:8 '@finitetmp' ( temp float) -0:8 'v' ( in float) -0:8 logical-and ( temp bool) -0:8 Negate conditional ( temp bool) -0:8 isnan ( temp bool) -0:8 '@finitetmp' ( temp float) -0:8 Negate conditional ( temp bool) -0:8 isinf ( temp bool) -0:8 '@finitetmp' ( temp float) -0:12 Function Definition: @main( ( temp 4-component vector of float) -0:12 Function Parameters: -0:? Sequence -0:13 Sequence -0:13 move second child to first child ( temp float) -0:13 '@finitetmp' ( temp float) -0:13 f: direct index for structure ( uniform float) -0:13 'anon@0' (layout( row_major std140) uniform block{ uniform float f, uniform 2-component vector of float f2, uniform 3-component vector of float f3}) -0:13 Constant: -0:13 0 (const uint) -0:13 logical-and ( temp bool) -0:13 Negate conditional ( temp bool) -0:13 isnan ( temp bool) -0:13 '@finitetmp' ( temp float) -0:13 Negate conditional ( temp bool) -0:13 isinf ( temp bool) -0:13 '@finitetmp' ( temp float) -0:14 Sequence -0:14 move second child to first child ( temp 2-component vector of float) -0:14 '@finitetmp' ( temp 2-component vector of float) -0:14 f2: direct index for structure ( uniform 2-component vector of float) -0:14 'anon@0' (layout( row_major std140) uniform block{ uniform float f, uniform 2-component vector of float f2, uniform 3-component vector of float f3}) -0:14 Constant: -0:14 1 (const uint) -0:14 logical-and ( temp 2-component vector of bool) -0:14 Negate conditional ( temp 2-component vector of bool) -0:14 isnan ( temp 2-component vector of bool) -0:14 '@finitetmp' ( temp 2-component vector of float) -0:14 Negate conditional ( temp 2-component vector of bool) -0:14 isinf ( temp 2-component vector of bool) -0:14 '@finitetmp' ( temp 2-component vector of float) -0:15 Sequence -0:15 move second child to first child ( temp 3-component vector of float) -0:15 '@finitetmp' ( temp 3-component vector of float) -0:15 f3: direct index for structure ( uniform 3-component vector of float) -0:15 'anon@0' (layout( row_major std140) uniform block{ uniform float f, uniform 2-component vector of float f2, uniform 3-component vector of float f3}) -0:15 Constant: -0:15 2 (const uint) -0:15 logical-and ( temp 3-component vector of bool) -0:15 Negate conditional ( temp 3-component vector of bool) -0:15 isnan ( temp 3-component vector of bool) -0:15 '@finitetmp' ( temp 3-component vector of float) -0:15 Negate conditional ( temp 3-component vector of bool) -0:15 isinf ( temp 3-component vector of bool) -0:15 '@finitetmp' ( temp 3-component vector of float) -0:17 Branch: Return with expression -0:17 Constant: -0:17 0.000000 -0:17 0.000000 -0:17 0.000000 -0:17 0.000000 -0:12 Function Definition: main( ( temp void) -0:12 Function Parameters: -0:? Sequence -0:12 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:12 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{ uniform float f, uniform 2-component vector of float f2, uniform 3-component vector of float f3}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:7 Function Definition: test1(f1; ( temp bool) -0:7 Function Parameters: -0:7 'v' ( in float) -0:? Sequence -0:8 Branch: Return with expression -0:8 logical-and ( temp bool) -0:8 Negate conditional ( temp bool) -0:8 isnan ( temp bool) -0:8 'v' ( in float) -0:8 Sequence -0:8 move second child to first child ( temp float) -0:8 '@finitetmp' ( temp float) -0:8 'v' ( in float) -0:8 logical-and ( temp bool) -0:8 Negate conditional ( temp bool) -0:8 isnan ( temp bool) -0:8 '@finitetmp' ( temp float) -0:8 Negate conditional ( temp bool) -0:8 isinf ( temp bool) -0:8 '@finitetmp' ( temp float) -0:12 Function Definition: @main( ( temp 4-component vector of float) -0:12 Function Parameters: -0:? Sequence -0:13 Sequence -0:13 move second child to first child ( temp float) -0:13 '@finitetmp' ( temp float) -0:13 f: direct index for structure ( uniform float) -0:13 'anon@0' (layout( row_major std140) uniform block{ uniform float f, uniform 2-component vector of float f2, uniform 3-component vector of float f3}) -0:13 Constant: -0:13 0 (const uint) -0:13 logical-and ( temp bool) -0:13 Negate conditional ( temp bool) -0:13 isnan ( temp bool) -0:13 '@finitetmp' ( temp float) -0:13 Negate conditional ( temp bool) -0:13 isinf ( temp bool) -0:13 '@finitetmp' ( temp float) -0:14 Sequence -0:14 move second child to first child ( temp 2-component vector of float) -0:14 '@finitetmp' ( temp 2-component vector of float) -0:14 f2: direct index for structure ( uniform 2-component vector of float) -0:14 'anon@0' (layout( row_major std140) uniform block{ uniform float f, uniform 2-component vector of float f2, uniform 3-component vector of float f3}) -0:14 Constant: -0:14 1 (const uint) -0:14 logical-and ( temp 2-component vector of bool) -0:14 Negate conditional ( temp 2-component vector of bool) -0:14 isnan ( temp 2-component vector of bool) -0:14 '@finitetmp' ( temp 2-component vector of float) -0:14 Negate conditional ( temp 2-component vector of bool) -0:14 isinf ( temp 2-component vector of bool) -0:14 '@finitetmp' ( temp 2-component vector of float) -0:15 Sequence -0:15 move second child to first child ( temp 3-component vector of float) -0:15 '@finitetmp' ( temp 3-component vector of float) -0:15 f3: direct index for structure ( uniform 3-component vector of float) -0:15 'anon@0' (layout( row_major std140) uniform block{ uniform float f, uniform 2-component vector of float f2, uniform 3-component vector of float f3}) -0:15 Constant: -0:15 2 (const uint) -0:15 logical-and ( temp 3-component vector of bool) -0:15 Negate conditional ( temp 3-component vector of bool) -0:15 isnan ( temp 3-component vector of bool) -0:15 '@finitetmp' ( temp 3-component vector of float) -0:15 Negate conditional ( temp 3-component vector of bool) -0:15 isinf ( temp 3-component vector of bool) -0:15 '@finitetmp' ( temp 3-component vector of float) -0:17 Branch: Return with expression -0:17 Constant: -0:17 0.000000 -0:17 0.000000 -0:17 0.000000 -0:17 0.000000 -0:12 Function Definition: main( ( temp void) -0:12 Function Parameters: -0:? Sequence -0:12 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:12 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{ uniform float f, uniform 2-component vector of float f2, uniform 3-component vector of float f3}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 85 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 83 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 11 "test1(f1;" - Name 10 "v" - Name 15 "@main(" - Name 20 "@finitetmp" - Name 32 "@finitetmp" - Name 35 "$Global" - MemberName 35($Global) 0 "f" - MemberName 35($Global) 1 "f2" - MemberName 35($Global) 2 "f3" - Name 37 "" - Name 51 "@finitetmp" - Name 65 "@finitetmp" - Name 83 "@entryPointOutput" - MemberDecorate 35($Global) 0 Offset 0 - MemberDecorate 35($Global) 1 Offset 8 - MemberDecorate 35($Global) 2 Offset 16 - Decorate 35($Global) Block - Decorate 37 DescriptorSet 0 - Decorate 37 Binding 0 - Decorate 83(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypePointer Function 6(float) - 8: TypeBool - 9: TypeFunction 8(bool) 7(ptr) - 13: TypeVector 6(float) 4 - 14: TypeFunction 13(fvec4) - 33: TypeVector 6(float) 2 - 34: TypeVector 6(float) 3 - 35($Global): TypeStruct 6(float) 33(fvec2) 34(fvec3) - 36: TypePointer Uniform 35($Global) - 37: 36(ptr) Variable Uniform - 38: TypeInt 32 1 - 39: 38(int) Constant 0 - 40: TypePointer Uniform 6(float) - 50: TypePointer Function 33(fvec2) - 52: 38(int) Constant 1 - 53: TypePointer Uniform 33(fvec2) - 57: TypeVector 8(bool) 2 - 64: TypePointer Function 34(fvec3) - 66: 38(int) Constant 2 - 67: TypePointer Uniform 34(fvec3) - 71: TypeVector 8(bool) 3 - 78: 6(float) Constant 0 - 79: 13(fvec4) ConstantComposite 78 78 78 78 - 82: TypePointer Output 13(fvec4) -83(@entryPointOutput): 82(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 84: 13(fvec4) FunctionCall 15(@main() - Store 83(@entryPointOutput) 84 - Return - FunctionEnd - 11(test1(f1;): 8(bool) Function None 9 - 10(v): 7(ptr) FunctionParameter - 12: Label - 20(@finitetmp): 7(ptr) Variable Function - 17: 6(float) Load 10(v) - 18: 8(bool) IsNan 17 - 19: 8(bool) LogicalNot 18 - 21: 6(float) Load 10(v) - Store 20(@finitetmp) 21 - 22: 6(float) Load 20(@finitetmp) - 23: 8(bool) IsNan 22 - 24: 8(bool) LogicalNot 23 - 25: 6(float) Load 20(@finitetmp) - 26: 8(bool) IsInf 25 - 27: 8(bool) LogicalNot 26 - 28: 8(bool) LogicalAnd 24 27 - 29: 8(bool) LogicalAnd 19 28 - ReturnValue 29 - FunctionEnd - 15(@main(): 13(fvec4) Function None 14 - 16: Label - 32(@finitetmp): 7(ptr) Variable Function - 51(@finitetmp): 50(ptr) Variable Function - 65(@finitetmp): 64(ptr) Variable Function - 41: 40(ptr) AccessChain 37 39 - 42: 6(float) Load 41 - Store 32(@finitetmp) 42 - 43: 6(float) Load 32(@finitetmp) - 44: 8(bool) IsNan 43 - 45: 8(bool) LogicalNot 44 - 46: 6(float) Load 32(@finitetmp) - 47: 8(bool) IsInf 46 - 48: 8(bool) LogicalNot 47 - 49: 8(bool) LogicalAnd 45 48 - 54: 53(ptr) AccessChain 37 52 - 55: 33(fvec2) Load 54 - Store 51(@finitetmp) 55 - 56: 33(fvec2) Load 51(@finitetmp) - 58: 57(bvec2) IsNan 56 - 59: 57(bvec2) LogicalNot 58 - 60: 33(fvec2) Load 51(@finitetmp) - 61: 57(bvec2) IsInf 60 - 62: 57(bvec2) LogicalNot 61 - 63: 57(bvec2) LogicalAnd 59 62 - 68: 67(ptr) AccessChain 37 66 - 69: 34(fvec3) Load 68 - Store 65(@finitetmp) 69 - 70: 34(fvec3) Load 65(@finitetmp) - 72: 71(bvec3) IsNan 70 - 73: 71(bvec3) LogicalNot 72 - 74: 34(fvec3) Load 65(@finitetmp) - 75: 71(bvec3) IsInf 74 - 76: 71(bvec3) LogicalNot 75 - 77: 71(bvec3) LogicalAnd 73 76 - ReturnValue 79 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.layout.frag.out b/deps/glslang/Test/baseResults/hlsl.layout.frag.out deleted file mode 100644 index 9007e933..00000000 --- a/deps/glslang/Test/baseResults/hlsl.layout.frag.out +++ /dev/null @@ -1,172 +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}) - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// 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/Test/baseResults/hlsl.layoutOverride.vert.out b/deps/glslang/Test/baseResults/hlsl.layoutOverride.vert.out deleted file mode 100644 index a3b89601..00000000 --- a/deps/glslang/Test/baseResults/hlsl.layoutOverride.vert.out +++ /dev/null @@ -1,105 +0,0 @@ -hlsl.layoutOverride.vert -Shader version: 500 -0:? Sequence -0:5 Function Definition: @main( ( temp 4-component vector of float) -0:5 Function Parameters: -0:? Sequence -0:6 Branch: Return with expression -0:6 texture ( temp 4-component vector of float) -0:6 Construct combined texture-sampler ( temp sampler2D) -0:6 'tex' (layout( set=2 binding=0) uniform texture2D) -0:6 'samp' ( uniform sampler) -0:6 Constant: -0:6 0.200000 -0:6 0.300000 -0:5 Function Definition: main( ( temp void) -0:5 Function Parameters: -0:? Sequence -0:5 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' ( out 4-component vector of float Position) -0:5 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'tex' (layout( set=2 binding=0) uniform texture2D) -0:? 'samp' ( uniform sampler) -0:? '@entryPointOutput' ( out 4-component vector of float Position) - - -Linked vertex stage: - - -Shader version: 500 -0:? Sequence -0:5 Function Definition: @main( ( temp 4-component vector of float) -0:5 Function Parameters: -0:? Sequence -0:6 Branch: Return with expression -0:6 texture ( temp 4-component vector of float) -0:6 Construct combined texture-sampler ( temp sampler2D) -0:6 'tex' (layout( set=2 binding=0) uniform texture2D) -0:6 'samp' ( uniform sampler) -0:6 Constant: -0:6 0.200000 -0:6 0.300000 -0:5 Function Definition: main( ( temp void) -0:5 Function Parameters: -0:? Sequence -0:5 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' ( out 4-component vector of float Position) -0:5 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'tex' (layout( set=2 binding=0) uniform texture2D) -0:? 'samp' ( uniform sampler) -0:? '@entryPointOutput' ( out 4-component vector of float Position) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 32 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 30 - Source HLSL 500 - Name 4 "main" - Name 9 "@main(" - Name 13 "tex" - Name 17 "samp" - Name 30 "@entryPointOutput" - Decorate 13(tex) DescriptorSet 2 - Decorate 13(tex) Binding 0 - Decorate 17(samp) DescriptorSet 0 - Decorate 17(samp) Binding 0 - Decorate 30(@entryPointOutput) BuiltIn Position - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 11: TypeImage 6(float) 2D sampled format:Unknown - 12: TypePointer UniformConstant 11 - 13(tex): 12(ptr) Variable UniformConstant - 15: TypeSampler - 16: TypePointer UniformConstant 15 - 17(samp): 16(ptr) Variable UniformConstant - 19: TypeSampledImage 11 - 21: TypeVector 6(float) 2 - 22: 6(float) Constant 1045220557 - 23: 6(float) Constant 1050253722 - 24: 21(fvec2) ConstantComposite 22 23 - 25: 6(float) Constant 0 - 29: TypePointer Output 7(fvec4) -30(@entryPointOutput): 29(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 31: 7(fvec4) FunctionCall 9(@main() - Store 30(@entryPointOutput) 31 - Return - FunctionEnd - 9(@main(): 7(fvec4) Function None 8 - 10: Label - 14: 11 Load 13(tex) - 18: 15 Load 17(samp) - 20: 19 SampledImage 14 18 - 26: 7(fvec4) ImageSampleExplicitLod 20 24 Lod 25 - ReturnValue 26 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.load.2dms.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.load.2dms.dx10.frag.out deleted file mode 100644 index daa28b26..00000000 --- a/deps/glslang/Test/baseResults/hlsl.load.2dms.dx10.frag.out +++ /dev/null @@ -1,529 +0,0 @@ -hlsl.load.2dms.dx10.frag -Shader version: 500 -gl_FragCoord origin is upper left -using depth_any -0:? Sequence -0:23 Function Definition: getOffset( ( temp 2-component vector of int) -0:23 Function Parameters: -0:? Sequence -0:24 Branch: Return with expression -0:24 Constant: -0:24 1 (const int) -0:24 1 (const int) -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}) -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}) -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}) -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}) -0:37 Constant: -0:37 1 (const uint) -0:37 Constant: -0:37 3 (const int) -0:37 Function Call: getOffset( ( temp 2-component vector of int) -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}) -0:38 Constant: -0:38 1 (const uint) -0:38 Constant: -0:38 3 (const int) -0:38 Function Call: getOffset( ( temp 2-component vector of int) -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}) -0:39 Constant: -0:39 1 (const uint) -0:39 Constant: -0:39 3 (const int) -0:39 Function Call: getOffset( ( temp 2-component vector of int) -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}) -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}) -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}) -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}) -0:47 Constant: -0:47 2 (const uint) -0:47 Constant: -0:47 3 (const int) -0:47 Function Call: getOffset( ( temp 2-component vector of int) -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}) -0:48 Constant: -0:48 2 (const uint) -0:48 Constant: -0:48 3 (const int) -0:48 Function Call: getOffset( ( temp 2-component vector of int) -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}) -0:49 Constant: -0:49 2 (const uint) -0:49 Constant: -0:49 3 (const int) -0:49 Function Call: getOffset( ( temp 2-component vector of int) -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}) -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:23 Function Definition: getOffset( ( temp 2-component vector of int) -0:23 Function Parameters: -0:? Sequence -0:24 Branch: Return with expression -0:24 Constant: -0:24 1 (const int) -0:24 1 (const int) -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}) -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}) -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}) -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}) -0:37 Constant: -0:37 1 (const uint) -0:37 Constant: -0:37 3 (const int) -0:37 Function Call: getOffset( ( temp 2-component vector of int) -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}) -0:38 Constant: -0:38 1 (const uint) -0:38 Constant: -0:38 3 (const int) -0:38 Function Call: getOffset( ( temp 2-component vector of int) -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}) -0:39 Constant: -0:39 1 (const uint) -0:39 Constant: -0:39 3 (const int) -0:39 Function Call: getOffset( ( temp 2-component vector of int) -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}) -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}) -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}) -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}) -0:47 Constant: -0:47 2 (const uint) -0:47 Constant: -0:47 3 (const int) -0:47 Function Call: getOffset( ( temp 2-component vector of int) -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}) -0:48 Constant: -0:48 2 (const uint) -0:48 Constant: -0:48 3 (const int) -0:48 Function Call: getOffset( ( temp 2-component vector of int) -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}) -0:49 Constant: -0:49 2 (const uint) -0:49 Constant: -0:49 3 (const int) -0:49 Function Call: getOffset( ( temp 2-component vector of int) -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}) -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): 8000a -// Id's are bound by 129 - - Capability Shader - Capability ImageGatherExtended - 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 9 "getOffset(" - Name 13 "PS_OUTPUT" - MemberName 13(PS_OUTPUT) 0 "Color" - MemberName 13(PS_OUTPUT) 1 "Depth" - Name 15 "@main(" - Name 23 "g_tTex2dmsf4" - Name 27 "$Global" - MemberName 27($Global) 0 "c1" - MemberName 27($Global) 1 "c2" - MemberName 27($Global) 2 "c3" - MemberName 27($Global) 3 "c4" - Name 29 "" - Name 37 "g_tTex2dmsi4" - Name 45 "g_tTex2dmsu4" - Name 68 "g_tTex2dmsf4a" - Name 77 "g_tTex2dmsi4a" - Name 84 "g_tTex2dmsu4a" - Name 105 "psout" - Name 116 "flattenTemp" - Name 119 "@entryPointOutput.Color" - Name 123 "@entryPointOutput.Depth" - Name 128 "g_sSamp" - Decorate 23(g_tTex2dmsf4) DescriptorSet 0 - Decorate 23(g_tTex2dmsf4) Binding 1 - MemberDecorate 27($Global) 0 Offset 0 - MemberDecorate 27($Global) 1 Offset 8 - MemberDecorate 27($Global) 2 Offset 16 - MemberDecorate 27($Global) 3 Offset 32 - Decorate 27($Global) Block - Decorate 29 DescriptorSet 0 - Decorate 29 Binding 7 - Decorate 37(g_tTex2dmsi4) DescriptorSet 0 - Decorate 37(g_tTex2dmsi4) Binding 2 - Decorate 45(g_tTex2dmsu4) DescriptorSet 0 - Decorate 45(g_tTex2dmsu4) Binding 3 - Decorate 68(g_tTex2dmsf4a) DescriptorSet 0 - Decorate 68(g_tTex2dmsf4a) Binding 4 - Decorate 77(g_tTex2dmsi4a) DescriptorSet 0 - Decorate 77(g_tTex2dmsi4a) Binding 5 - Decorate 84(g_tTex2dmsu4a) DescriptorSet 0 - Decorate 84(g_tTex2dmsu4a) Binding 6 - Decorate 119(@entryPointOutput.Color) Location 0 - Decorate 123(@entryPointOutput.Depth) BuiltIn FragDepth - Decorate 128(g_sSamp) DescriptorSet 0 - Decorate 128(g_sSamp) Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypeVector 6(int) 2 - 8: TypeFunction 7(ivec2) - 11: TypeFloat 32 - 12: TypeVector 11(float) 4 - 13(PS_OUTPUT): TypeStruct 12(fvec4) 11(float) - 14: TypeFunction 13(PS_OUTPUT) - 17: 6(int) Constant 1 - 18: 7(ivec2) ConstantComposite 17 17 - 21: TypeImage 11(float) 2D multi-sampled sampled format:Unknown - 22: TypePointer UniformConstant 21 -23(g_tTex2dmsf4): 22(ptr) Variable UniformConstant - 25: TypeVector 6(int) 3 - 26: TypeVector 6(int) 4 - 27($Global): TypeStruct 6(int) 7(ivec2) 25(ivec3) 26(ivec4) - 28: TypePointer Uniform 27($Global) - 29: 28(ptr) Variable Uniform - 30: TypePointer Uniform 7(ivec2) - 33: 6(int) Constant 3 - 35: TypeImage 6(int) 2D multi-sampled sampled format:Unknown - 36: TypePointer UniformConstant 35 -37(g_tTex2dmsi4): 36(ptr) Variable UniformConstant - 42: TypeInt 32 0 - 43: TypeImage 42(int) 2D multi-sampled sampled format:Unknown - 44: TypePointer UniformConstant 43 -45(g_tTex2dmsu4): 44(ptr) Variable UniformConstant - 49: TypeVector 42(int) 4 - 66: TypeImage 11(float) 2D array multi-sampled sampled format:Unknown - 67: TypePointer UniformConstant 66 -68(g_tTex2dmsf4a): 67(ptr) Variable UniformConstant - 70: 6(int) Constant 2 - 71: TypePointer Uniform 25(ivec3) - 75: TypeImage 6(int) 2D array multi-sampled sampled format:Unknown - 76: TypePointer UniformConstant 75 -77(g_tTex2dmsi4a): 76(ptr) Variable UniformConstant - 82: TypeImage 42(int) 2D array multi-sampled sampled format:Unknown - 83: TypePointer UniformConstant 82 -84(g_tTex2dmsu4a): 83(ptr) Variable UniformConstant - 104: TypePointer Function 13(PS_OUTPUT) - 106: 6(int) Constant 0 - 107: 11(float) Constant 1065353216 - 108: 12(fvec4) ConstantComposite 107 107 107 107 - 109: TypePointer Function 12(fvec4) - 111: TypePointer Function 11(float) - 118: TypePointer Output 12(fvec4) -119(@entryPointOutput.Color): 118(ptr) Variable Output - 122: TypePointer Output 11(float) -123(@entryPointOutput.Depth): 122(ptr) Variable Output - 126: TypeSampler - 127: TypePointer UniformConstant 126 - 128(g_sSamp): 127(ptr) Variable UniformConstant - 4(main): 2 Function None 3 - 5: Label -116(flattenTemp): 104(ptr) Variable Function - 117:13(PS_OUTPUT) FunctionCall 15(@main() - Store 116(flattenTemp) 117 - 120: 109(ptr) AccessChain 116(flattenTemp) 106 - 121: 12(fvec4) Load 120 - Store 119(@entryPointOutput.Color) 121 - 124: 111(ptr) AccessChain 116(flattenTemp) 17 - 125: 11(float) Load 124 - Store 123(@entryPointOutput.Depth) 125 - Return - FunctionEnd - 9(getOffset(): 7(ivec2) Function None 8 - 10: Label - ReturnValue 18 - FunctionEnd - 15(@main():13(PS_OUTPUT) Function None 14 - 16: Label - 105(psout): 104(ptr) Variable Function - 24: 21 Load 23(g_tTex2dmsf4) - 31: 30(ptr) AccessChain 29 17 - 32: 7(ivec2) Load 31 - 34: 12(fvec4) ImageFetch 24 32 Sample 33 - 38: 35 Load 37(g_tTex2dmsi4) - 39: 30(ptr) AccessChain 29 17 - 40: 7(ivec2) Load 39 - 41: 26(ivec4) ImageFetch 38 40 Sample 33 - 46: 43 Load 45(g_tTex2dmsu4) - 47: 30(ptr) AccessChain 29 17 - 48: 7(ivec2) Load 47 - 50: 49(ivec4) ImageFetch 46 48 Sample 33 - 51: 21 Load 23(g_tTex2dmsf4) - 52: 30(ptr) AccessChain 29 17 - 53: 7(ivec2) Load 52 - 54: 7(ivec2) FunctionCall 9(getOffset() - 55: 12(fvec4) ImageFetch 51 53 Offset Sample 54 33 - 56: 35 Load 37(g_tTex2dmsi4) - 57: 30(ptr) AccessChain 29 17 - 58: 7(ivec2) Load 57 - 59: 7(ivec2) FunctionCall 9(getOffset() - 60: 26(ivec4) ImageFetch 56 58 Offset Sample 59 33 - 61: 43 Load 45(g_tTex2dmsu4) - 62: 30(ptr) AccessChain 29 17 - 63: 7(ivec2) Load 62 - 64: 7(ivec2) FunctionCall 9(getOffset() - 65: 49(ivec4) ImageFetch 61 63 Offset Sample 64 33 - 69: 66 Load 68(g_tTex2dmsf4a) - 72: 71(ptr) AccessChain 29 70 - 73: 25(ivec3) Load 72 - 74: 12(fvec4) ImageFetch 69 73 Sample 33 - 78: 75 Load 77(g_tTex2dmsi4a) - 79: 71(ptr) AccessChain 29 70 - 80: 25(ivec3) Load 79 - 81: 26(ivec4) ImageFetch 78 80 Sample 33 - 85: 82 Load 84(g_tTex2dmsu4a) - 86: 71(ptr) AccessChain 29 70 - 87: 25(ivec3) Load 86 - 88: 49(ivec4) ImageFetch 85 87 Sample 33 - 89: 66 Load 68(g_tTex2dmsf4a) - 90: 71(ptr) AccessChain 29 70 - 91: 25(ivec3) Load 90 - 92: 7(ivec2) FunctionCall 9(getOffset() - 93: 12(fvec4) ImageFetch 89 91 Offset Sample 92 33 - 94: 75 Load 77(g_tTex2dmsi4a) - 95: 71(ptr) AccessChain 29 70 - 96: 25(ivec3) Load 95 - 97: 7(ivec2) FunctionCall 9(getOffset() - 98: 26(ivec4) ImageFetch 94 96 Offset Sample 97 33 - 99: 82 Load 84(g_tTex2dmsu4a) - 100: 71(ptr) AccessChain 29 70 - 101: 25(ivec3) Load 100 - 102: 7(ivec2) FunctionCall 9(getOffset() - 103: 49(ivec4) ImageFetch 99 101 Offset Sample 102 33 - 110: 109(ptr) AccessChain 105(psout) 106 - Store 110 108 - 112: 111(ptr) AccessChain 105(psout) 17 - Store 112 107 - 113:13(PS_OUTPUT) Load 105(psout) - ReturnValue 113 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.load.array.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.load.array.dx10.frag.out deleted file mode 100644 index 0440779f..00000000 --- a/deps/glslang/Test/baseResults/hlsl.load.array.dx10.frag.out +++ /dev/null @@ -1,664 +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): 8000a -// 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 - Decorate 14(g_tTex1df4a) Binding 1 - 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 22 Binding 7 - Decorate 36(g_tTex1di4a) DescriptorSet 0 - Decorate 36(g_tTex1di4a) Binding 2 - Decorate 46(g_tTex1du4a) DescriptorSet 0 - Decorate 46(g_tTex1du4a) Binding 3 - Decorate 57(g_tTex2df4a) DescriptorSet 0 - Decorate 57(g_tTex2df4a) Binding 4 - Decorate 70(g_tTex2di4a) DescriptorSet 0 - Decorate 70(g_tTex2di4a) Binding 5 - Decorate 80(g_tTex2du4a) DescriptorSet 0 - Decorate 80(g_tTex2du4a) Binding 6 - 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 119(g_tTex1di4) Binding 0 - Decorate 122(g_tTex1du4) DescriptorSet 0 - Decorate 122(g_tTex1du4) Binding 0 - Decorate 125(g_tTex2df4) DescriptorSet 0 - Decorate 125(g_tTex2df4) Binding 0 - Decorate 128(g_tTex2di4) DescriptorSet 0 - Decorate 128(g_tTex2di4) Binding 0 - Decorate 131(g_tTex2du4) DescriptorSet 0 - Decorate 131(g_tTex2du4) Binding 0 - Decorate 134(g_tTex3df4) DescriptorSet 0 - Decorate 134(g_tTex3df4) Binding 0 - Decorate 137(g_tTex3di4) DescriptorSet 0 - Decorate 137(g_tTex3di4) Binding 0 - Decorate 140(g_tTex3du4) DescriptorSet 0 - Decorate 140(g_tTex3du4) Binding 0 - Decorate 143(g_tTexcdf4) DescriptorSet 0 - Decorate 143(g_tTexcdf4) Binding 0 - Decorate 146(g_tTexcdi4) DescriptorSet 0 - Decorate 146(g_tTexcdi4) Binding 0 - Decorate 149(g_tTexcdu4) DescriptorSet 0 - Decorate 149(g_tTexcdu4) Binding 0 - Decorate 152(g_tTexcdf4a) DescriptorSet 0 - Decorate 152(g_tTexcdf4a) Binding 0 - Decorate 155(g_tTexcdi4a) DescriptorSet 0 - Decorate 155(g_tTexcdi4a) Binding 0 - Decorate 158(g_tTexcdu4a) DescriptorSet 0 - Decorate 158(g_tTexcdu4a) 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) 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/Test/baseResults/hlsl.load.basic.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.load.basic.dx10.frag.out deleted file mode 100644 index 2aef83db..00000000 --- a/deps/glslang/Test/baseResults/hlsl.load.basic.dx10.frag.out +++ /dev/null @@ -1,786 +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): 8000a -// 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 22 Binding 9 - Decorate 35(g_tTex1di4) DescriptorSet 0 - Decorate 35(g_tTex1di4) Binding 1 - Decorate 44(g_tTex1du4) DescriptorSet 0 - Decorate 44(g_tTex1du4) Binding 2 - Decorate 54(g_tTex2df4) DescriptorSet 0 - Decorate 54(g_tTex2df4) Binding 3 - Decorate 67(g_tTex2di4) DescriptorSet 0 - Decorate 67(g_tTex2di4) Binding 4 - Decorate 77(g_tTex2du4) DescriptorSet 0 - Decorate 77(g_tTex2du4) Binding 5 - Decorate 87(g_tTex3df4) DescriptorSet 0 - Decorate 87(g_tTex3df4) Binding 6 - Decorate 100(g_tTex3di4) DescriptorSet 0 - Decorate 100(g_tTex3di4) Binding 7 - Decorate 110(g_tTex3du4) DescriptorSet 0 - Decorate 110(g_tTex3du4) Binding 8 - 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 145(g_tTexcdf4) Binding 0 - Decorate 148(g_tTexcdi4) DescriptorSet 0 - Decorate 148(g_tTexcdi4) Binding 0 - Decorate 151(g_tTexcdu4) DescriptorSet 0 - Decorate 151(g_tTexcdu4) Binding 0 - Decorate 154(g_tTex1df4a) DescriptorSet 0 - Decorate 154(g_tTex1df4a) Binding 0 - Decorate 157(g_tTex1di4a) DescriptorSet 0 - Decorate 157(g_tTex1di4a) Binding 0 - Decorate 160(g_tTex1du4a) DescriptorSet 0 - Decorate 160(g_tTex1du4a) Binding 0 - Decorate 163(g_tTex2df4a) DescriptorSet 0 - Decorate 163(g_tTex2df4a) Binding 0 - Decorate 166(g_tTex2di4a) DescriptorSet 0 - Decorate 166(g_tTex2di4a) Binding 0 - Decorate 169(g_tTex2du4a) DescriptorSet 0 - Decorate 169(g_tTex2du4a) Binding 0 - Decorate 172(g_tTexcdf4a) DescriptorSet 0 - Decorate 172(g_tTexcdf4a) Binding 0 - Decorate 175(g_tTexcdi4a) DescriptorSet 0 - Decorate 175(g_tTexcdi4a) Binding 0 - Decorate 178(g_tTexcdu4a) DescriptorSet 0 - Decorate 178(g_tTexcdu4a) 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) 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/Test/baseResults/hlsl.load.basic.dx10.vert.out b/deps/glslang/Test/baseResults/hlsl.load.basic.dx10.vert.out deleted file mode 100644 index 8b9a04f8..00000000 --- a/deps/glslang/Test/baseResults/hlsl.load.basic.dx10.vert.out +++ /dev/null @@ -1,731 +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:67 Constant: -0:67 0.000000 -0:67 0.000000 -0:67 0.000000 -0:67 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:67 Constant: -0:67 0.000000 -0:67 0.000000 -0:67 0.000000 -0:67 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): 8000a -// 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 22 Binding 9 - Decorate 35(g_tTex1di4) DescriptorSet 0 - Decorate 35(g_tTex1di4) Binding 1 - Decorate 44(g_tTex1du4) DescriptorSet 0 - Decorate 44(g_tTex1du4) Binding 2 - Decorate 54(g_tTex2df4) DescriptorSet 0 - Decorate 54(g_tTex2df4) Binding 3 - Decorate 67(g_tTex2di4) DescriptorSet 0 - Decorate 67(g_tTex2di4) Binding 4 - Decorate 77(g_tTex2du4) DescriptorSet 0 - Decorate 77(g_tTex2du4) Binding 5 - Decorate 87(g_tTex3df4) DescriptorSet 0 - Decorate 87(g_tTex3df4) Binding 6 - Decorate 100(g_tTex3di4) DescriptorSet 0 - Decorate 100(g_tTex3di4) Binding 7 - Decorate 110(g_tTex3du4) DescriptorSet 0 - Decorate 110(g_tTex3du4) Binding 8 - 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 137(g_tTexcdf4) Binding 0 - Decorate 140(g_tTexcdi4) DescriptorSet 0 - Decorate 140(g_tTexcdi4) Binding 0 - Decorate 143(g_tTexcdu4) DescriptorSet 0 - Decorate 143(g_tTexcdu4) Binding 0 - Decorate 146(g_tTex1df4a) DescriptorSet 0 - Decorate 146(g_tTex1df4a) Binding 0 - Decorate 149(g_tTex1di4a) DescriptorSet 0 - Decorate 149(g_tTex1di4a) Binding 0 - Decorate 152(g_tTex1du4a) DescriptorSet 0 - Decorate 152(g_tTex1du4a) Binding 0 - Decorate 155(g_tTex2df4a) DescriptorSet 0 - Decorate 155(g_tTex2df4a) Binding 0 - Decorate 158(g_tTex2di4a) DescriptorSet 0 - Decorate 158(g_tTex2di4a) Binding 0 - Decorate 161(g_tTex2du4a) DescriptorSet 0 - Decorate 161(g_tTex2du4a) Binding 0 - Decorate 164(g_tTexcdf4a) DescriptorSet 0 - Decorate 164(g_tTexcdf4a) Binding 0 - Decorate 167(g_tTexcdi4a) DescriptorSet 0 - Decorate 167(g_tTexcdi4a) Binding 0 - Decorate 170(g_tTexcdu4a) DescriptorSet 0 - Decorate 170(g_tTexcdu4a) 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: 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/Test/baseResults/hlsl.load.buffer.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.load.buffer.dx10.frag.out deleted file mode 100644 index 299bde15..00000000 --- a/deps/glslang/Test/baseResults/hlsl.load.buffer.dx10.frag.out +++ /dev/null @@ -1,306 +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): 8000a -// 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 - Decorate 16(g_tTexbf4) Binding 1 - 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 24 Binding 4 - Decorate 34(g_tTexbi4) DescriptorSet 0 - Decorate 34(g_tTexbi4) Binding 2 - Decorate 45(g_tTexbu4) DescriptorSet 0 - Decorate 45(g_tTexbu4) Binding 3 - 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/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out deleted file mode 100644 index f7a530c7..00000000 --- a/deps/glslang/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out +++ /dev/null @@ -1,315 +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): 8000a -// 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 - Decorate 16(g_tTexbfs) Binding 1 - 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 24 Binding 4 - Decorate 35(g_tTexbis) DescriptorSet 0 - Decorate 35(g_tTexbis) Binding 2 - Decorate 46(g_tTexbus) DescriptorSet 0 - Decorate 46(g_tTexbus) Binding 3 - 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/Test/baseResults/hlsl.load.offset.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.load.offset.dx10.frag.out deleted file mode 100644 index 106af539..00000000 --- a/deps/glslang/Test/baseResults/hlsl.load.offset.dx10.frag.out +++ /dev/null @@ -1,868 +0,0 @@ -hlsl.load.offset.dx10.frag -Shader version: 500 -gl_FragCoord origin is upper left -using depth_any -0:? Sequence -0:43 Function Definition: getOffset1( ( temp int) -0:43 Function Parameters: -0:? Sequence -0:44 Branch: Return with expression -0:44 Constant: -0:44 1 (const int) -0:48 Function Definition: getOffset2( ( temp 2-component vector of int) -0:48 Function Parameters: -0:? Sequence -0:49 Branch: Return with expression -0:49 Constant: -0:49 1 (const int) -0:49 1 (const int) -0:53 Function Definition: getOffset3( ( temp 3-component vector of int) -0:53 Function Parameters: -0:? Sequence -0:54 Branch: Return with expression -0:54 Constant: -0:54 1 (const int) -0:54 1 (const int) -0:54 1 (const int) -0:58 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:58 Function Parameters: -0:? Sequence -0:62 textureFetchOffset ( temp 4-component vector of float) -0:62 'g_tTex1df4' (layout( binding=0) uniform texture1D) -0:62 vector swizzle ( temp int) -0:62 c2: direct index for structure ( uniform 2-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}) -0:62 Constant: -0:62 1 (const uint) -0:62 Sequence -0:62 Constant: -0:62 0 (const int) -0:62 direct index ( temp int) -0:62 c2: direct index for structure ( uniform 2-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}) -0:62 Constant: -0:62 1 (const uint) -0:62 Constant: -0:62 1 (const int) -0:62 Function Call: getOffset1( ( temp int) -0:63 textureFetchOffset ( temp 4-component vector of int) -0:63 'g_tTex1di4' ( uniform itexture1D) -0:63 vector swizzle ( temp int) -0:63 c2: direct index for structure ( uniform 2-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}) -0:63 Constant: -0:63 1 (const uint) -0:63 Sequence -0:63 Constant: -0:63 0 (const int) -0:63 direct index ( temp int) -0:63 c2: direct index for structure ( uniform 2-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}) -0:63 Constant: -0:63 1 (const uint) -0:63 Constant: -0:63 1 (const int) -0:63 Function Call: getOffset1( ( temp int) -0:64 textureFetchOffset ( temp 4-component vector of uint) -0:64 'g_tTex1du4' ( uniform utexture1D) -0:64 vector swizzle ( temp int) -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}) -0:64 Constant: -0:64 1 (const uint) -0:64 Sequence -0:64 Constant: -0:64 0 (const int) -0:64 direct index ( temp int) -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}) -0:64 Constant: -0:64 1 (const uint) -0:64 Constant: -0:64 1 (const int) -0:64 Function Call: getOffset1( ( temp int) -0:67 textureFetchOffset ( temp 4-component vector of float) -0:67 'g_tTex2df4' ( uniform texture2D) -0:67 vector swizzle ( temp 2-component vector of int) -0:67 c3: direct index for structure ( uniform 3-component vector of 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}) -0:67 Constant: -0:67 2 (const uint) -0:67 Sequence -0:67 Constant: -0:67 0 (const int) -0:67 Constant: -0:67 1 (const int) -0:67 direct index ( temp int) -0:67 c3: direct index for structure ( uniform 3-component vector of 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}) -0:67 Constant: -0:67 2 (const uint) -0:67 Constant: -0:67 2 (const int) -0:67 Function Call: getOffset2( ( temp 2-component vector of int) -0:68 textureFetchOffset ( temp 4-component vector of int) -0:68 'g_tTex2di4' ( uniform itexture2D) -0:68 vector swizzle ( temp 2-component vector of int) -0:68 c3: direct index for structure ( uniform 3-component vector of 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}) -0:68 Constant: -0:68 2 (const uint) -0:68 Sequence -0:68 Constant: -0:68 0 (const int) -0:68 Constant: -0:68 1 (const int) -0:68 direct index ( temp int) -0:68 c3: direct index for structure ( uniform 3-component vector of 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}) -0:68 Constant: -0:68 2 (const uint) -0:68 Constant: -0:68 2 (const int) -0:68 Function Call: getOffset2( ( temp 2-component vector of int) -0:69 textureFetchOffset ( temp 4-component vector of uint) -0:69 'g_tTex2du4' ( uniform utexture2D) -0:69 vector swizzle ( temp 2-component vector of int) -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}) -0:69 Constant: -0:69 2 (const uint) -0:69 Sequence -0:69 Constant: -0:69 0 (const int) -0:69 Constant: -0:69 1 (const int) -0:69 direct index ( temp int) -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}) -0:69 Constant: -0:69 2 (const uint) -0:69 Constant: -0:69 2 (const int) -0:69 Function Call: getOffset2( ( temp 2-component vector of int) -0:72 textureFetchOffset ( temp 4-component vector of float) -0:72 'g_tTex3df4' ( uniform texture3D) -0:72 vector swizzle ( temp 3-component vector of int) -0:72 c4: direct index for structure ( uniform 4-component vector of int) -0:72 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4}) -0:72 Constant: -0:72 3 (const uint) -0:72 Sequence -0:72 Constant: -0:72 0 (const int) -0:72 Constant: -0:72 1 (const int) -0:72 Constant: -0:72 2 (const int) -0:72 direct index ( temp int) -0:72 c4: direct index for structure ( uniform 4-component vector of int) -0:72 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4}) -0:72 Constant: -0:72 3 (const uint) -0:72 Constant: -0:72 3 (const int) -0:72 Function Call: getOffset3( ( temp 3-component vector of int) -0:73 textureFetchOffset ( temp 4-component vector of int) -0:73 'g_tTex3di4' ( uniform itexture3D) -0:73 vector swizzle ( temp 3-component vector of int) -0:73 c4: direct index for structure ( uniform 4-component vector of int) -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}) -0:73 Constant: -0:73 3 (const uint) -0:73 Sequence -0:73 Constant: -0:73 0 (const int) -0:73 Constant: -0:73 1 (const int) -0:73 Constant: -0:73 2 (const int) -0:73 direct index ( temp int) -0:73 c4: direct index for structure ( uniform 4-component vector of int) -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}) -0:73 Constant: -0:73 3 (const uint) -0:73 Constant: -0:73 3 (const int) -0:73 Function Call: getOffset3( ( temp 3-component vector of int) -0:74 textureFetchOffset ( temp 4-component vector of uint) -0:74 'g_tTex3du4' ( uniform utexture3D) -0:74 vector swizzle ( temp 3-component vector of int) -0:74 c4: direct index for structure ( uniform 4-component vector of int) -0:74 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4}) -0:74 Constant: -0:74 3 (const uint) -0:74 Sequence -0:74 Constant: -0:74 0 (const int) -0:74 Constant: -0:74 1 (const int) -0:74 Constant: -0:74 2 (const int) -0:74 direct index ( temp int) -0:74 c4: direct index for structure ( uniform 4-component vector of int) -0:74 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4}) -0:74 Constant: -0:74 3 (const uint) -0:74 Constant: -0:74 3 (const int) -0:74 Function Call: getOffset3( ( temp 3-component vector of int) -0:82 move second child to first child ( temp 4-component vector of float) -0:82 Color: direct index for structure ( temp 4-component vector of float) -0:82 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:82 Constant: -0:82 0 (const int) -0:82 Constant: -0:82 1.000000 -0:82 1.000000 -0:82 1.000000 -0:82 1.000000 -0:83 move second child to first child ( temp float) -0:83 Depth: direct index for structure ( temp float) -0:83 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:83 Constant: -0:83 1 (const int) -0:83 Constant: -0:83 1.000000 -0:85 Branch: Return with expression -0:85 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:58 Function Definition: main( ( temp void) -0:58 Function Parameters: -0:? Sequence -0:58 Sequence -0:58 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:58 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:58 Function Call: @main( ( 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:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) -0:58 Color: direct index for structure ( temp 4-component vector of float) -0:58 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:58 Constant: -0:58 0 (const int) -0:58 move second child to first child ( temp float) -0:? '@entryPointOutput.Depth' ( out float FragDepth) -0:58 Depth: direct index for structure ( temp float) -0:58 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:58 Constant: -0:58 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}) -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:43 Function Definition: getOffset1( ( temp int) -0:43 Function Parameters: -0:? Sequence -0:44 Branch: Return with expression -0:44 Constant: -0:44 1 (const int) -0:48 Function Definition: getOffset2( ( temp 2-component vector of int) -0:48 Function Parameters: -0:? Sequence -0:49 Branch: Return with expression -0:49 Constant: -0:49 1 (const int) -0:49 1 (const int) -0:53 Function Definition: getOffset3( ( temp 3-component vector of int) -0:53 Function Parameters: -0:? Sequence -0:54 Branch: Return with expression -0:54 Constant: -0:54 1 (const int) -0:54 1 (const int) -0:54 1 (const int) -0:58 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:58 Function Parameters: -0:? Sequence -0:62 textureFetchOffset ( temp 4-component vector of float) -0:62 'g_tTex1df4' (layout( binding=0) uniform texture1D) -0:62 vector swizzle ( temp int) -0:62 c2: direct index for structure ( uniform 2-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}) -0:62 Constant: -0:62 1 (const uint) -0:62 Sequence -0:62 Constant: -0:62 0 (const int) -0:62 direct index ( temp int) -0:62 c2: direct index for structure ( uniform 2-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}) -0:62 Constant: -0:62 1 (const uint) -0:62 Constant: -0:62 1 (const int) -0:62 Function Call: getOffset1( ( temp int) -0:63 textureFetchOffset ( temp 4-component vector of int) -0:63 'g_tTex1di4' ( uniform itexture1D) -0:63 vector swizzle ( temp int) -0:63 c2: direct index for structure ( uniform 2-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}) -0:63 Constant: -0:63 1 (const uint) -0:63 Sequence -0:63 Constant: -0:63 0 (const int) -0:63 direct index ( temp int) -0:63 c2: direct index for structure ( uniform 2-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}) -0:63 Constant: -0:63 1 (const uint) -0:63 Constant: -0:63 1 (const int) -0:63 Function Call: getOffset1( ( temp int) -0:64 textureFetchOffset ( temp 4-component vector of uint) -0:64 'g_tTex1du4' ( uniform utexture1D) -0:64 vector swizzle ( temp int) -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}) -0:64 Constant: -0:64 1 (const uint) -0:64 Sequence -0:64 Constant: -0:64 0 (const int) -0:64 direct index ( temp int) -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}) -0:64 Constant: -0:64 1 (const uint) -0:64 Constant: -0:64 1 (const int) -0:64 Function Call: getOffset1( ( temp int) -0:67 textureFetchOffset ( temp 4-component vector of float) -0:67 'g_tTex2df4' ( uniform texture2D) -0:67 vector swizzle ( temp 2-component vector of int) -0:67 c3: direct index for structure ( uniform 3-component vector of 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}) -0:67 Constant: -0:67 2 (const uint) -0:67 Sequence -0:67 Constant: -0:67 0 (const int) -0:67 Constant: -0:67 1 (const int) -0:67 direct index ( temp int) -0:67 c3: direct index for structure ( uniform 3-component vector of 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}) -0:67 Constant: -0:67 2 (const uint) -0:67 Constant: -0:67 2 (const int) -0:67 Function Call: getOffset2( ( temp 2-component vector of int) -0:68 textureFetchOffset ( temp 4-component vector of int) -0:68 'g_tTex2di4' ( uniform itexture2D) -0:68 vector swizzle ( temp 2-component vector of int) -0:68 c3: direct index for structure ( uniform 3-component vector of 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}) -0:68 Constant: -0:68 2 (const uint) -0:68 Sequence -0:68 Constant: -0:68 0 (const int) -0:68 Constant: -0:68 1 (const int) -0:68 direct index ( temp int) -0:68 c3: direct index for structure ( uniform 3-component vector of 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}) -0:68 Constant: -0:68 2 (const uint) -0:68 Constant: -0:68 2 (const int) -0:68 Function Call: getOffset2( ( temp 2-component vector of int) -0:69 textureFetchOffset ( temp 4-component vector of uint) -0:69 'g_tTex2du4' ( uniform utexture2D) -0:69 vector swizzle ( temp 2-component vector of int) -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}) -0:69 Constant: -0:69 2 (const uint) -0:69 Sequence -0:69 Constant: -0:69 0 (const int) -0:69 Constant: -0:69 1 (const int) -0:69 direct index ( temp int) -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}) -0:69 Constant: -0:69 2 (const uint) -0:69 Constant: -0:69 2 (const int) -0:69 Function Call: getOffset2( ( temp 2-component vector of int) -0:72 textureFetchOffset ( temp 4-component vector of float) -0:72 'g_tTex3df4' ( uniform texture3D) -0:72 vector swizzle ( temp 3-component vector of int) -0:72 c4: direct index for structure ( uniform 4-component vector of int) -0:72 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4}) -0:72 Constant: -0:72 3 (const uint) -0:72 Sequence -0:72 Constant: -0:72 0 (const int) -0:72 Constant: -0:72 1 (const int) -0:72 Constant: -0:72 2 (const int) -0:72 direct index ( temp int) -0:72 c4: direct index for structure ( uniform 4-component vector of int) -0:72 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4}) -0:72 Constant: -0:72 3 (const uint) -0:72 Constant: -0:72 3 (const int) -0:72 Function Call: getOffset3( ( temp 3-component vector of int) -0:73 textureFetchOffset ( temp 4-component vector of int) -0:73 'g_tTex3di4' ( uniform itexture3D) -0:73 vector swizzle ( temp 3-component vector of int) -0:73 c4: direct index for structure ( uniform 4-component vector of int) -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}) -0:73 Constant: -0:73 3 (const uint) -0:73 Sequence -0:73 Constant: -0:73 0 (const int) -0:73 Constant: -0:73 1 (const int) -0:73 Constant: -0:73 2 (const int) -0:73 direct index ( temp int) -0:73 c4: direct index for structure ( uniform 4-component vector of int) -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}) -0:73 Constant: -0:73 3 (const uint) -0:73 Constant: -0:73 3 (const int) -0:73 Function Call: getOffset3( ( temp 3-component vector of int) -0:74 textureFetchOffset ( temp 4-component vector of uint) -0:74 'g_tTex3du4' ( uniform utexture3D) -0:74 vector swizzle ( temp 3-component vector of int) -0:74 c4: direct index for structure ( uniform 4-component vector of int) -0:74 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4}) -0:74 Constant: -0:74 3 (const uint) -0:74 Sequence -0:74 Constant: -0:74 0 (const int) -0:74 Constant: -0:74 1 (const int) -0:74 Constant: -0:74 2 (const int) -0:74 direct index ( temp int) -0:74 c4: direct index for structure ( uniform 4-component vector of int) -0:74 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4}) -0:74 Constant: -0:74 3 (const uint) -0:74 Constant: -0:74 3 (const int) -0:74 Function Call: getOffset3( ( temp 3-component vector of int) -0:82 move second child to first child ( temp 4-component vector of float) -0:82 Color: direct index for structure ( temp 4-component vector of float) -0:82 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:82 Constant: -0:82 0 (const int) -0:82 Constant: -0:82 1.000000 -0:82 1.000000 -0:82 1.000000 -0:82 1.000000 -0:83 move second child to first child ( temp float) -0:83 Depth: direct index for structure ( temp float) -0:83 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:83 Constant: -0:83 1 (const int) -0:83 Constant: -0:83 1.000000 -0:85 Branch: Return with expression -0:85 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:58 Function Definition: main( ( temp void) -0:58 Function Parameters: -0:? Sequence -0:58 Sequence -0:58 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:58 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:58 Function Call: @main( ( 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:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) -0:58 Color: direct index for structure ( temp 4-component vector of float) -0:58 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:58 Constant: -0:58 0 (const int) -0:58 move second child to first child ( temp float) -0:? '@entryPointOutput.Depth' ( out float FragDepth) -0:58 Depth: direct index for structure ( temp float) -0:58 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:58 Constant: -0:58 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}) -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): 8000a -// Id's are bound by 205 - - Capability Shader - Capability ImageGatherExtended - Capability Sampled1D - Capability SampledCubeArray - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 159 163 - ExecutionMode 4 OriginUpperLeft - ExecutionMode 4 DepthReplacing - Source HLSL 500 - Name 4 "main" - Name 8 "getOffset1(" - Name 12 "getOffset2(" - Name 16 "getOffset3(" - Name 20 "PS_OUTPUT" - MemberName 20(PS_OUTPUT) 0 "Color" - MemberName 20(PS_OUTPUT) 1 "Depth" - Name 22 "@main(" - Name 35 "g_tTex1df4" - Name 38 "$Global" - MemberName 38($Global) 0 "c1" - MemberName 38($Global) 1 "c2" - MemberName 38($Global) 2 "c3" - MemberName 38($Global) 3 "c4" - Name 40 "" - Name 53 "g_tTex1di4" - Name 63 "g_tTex1du4" - Name 74 "g_tTex2df4" - Name 88 "g_tTex2di4" - Name 99 "g_tTex2du4" - Name 110 "g_tTex3df4" - Name 124 "g_tTex3di4" - Name 135 "g_tTex3du4" - Name 145 "psout" - Name 156 "flattenTemp" - Name 159 "@entryPointOutput.Color" - Name 163 "@entryPointOutput.Depth" - Name 168 "g_sSamp" - Name 171 "g_tTexcdf4" - Name 174 "g_tTexcdi4" - Name 177 "g_tTexcdu4" - Name 180 "g_tTex1df4a" - Name 183 "g_tTex1di4a" - Name 186 "g_tTex1du4a" - Name 189 "g_tTex2df4a" - Name 192 "g_tTex2di4a" - Name 195 "g_tTex2du4a" - Name 198 "g_tTexcdf4a" - Name 201 "g_tTexcdi4a" - Name 204 "g_tTexcdu4a" - Decorate 35(g_tTex1df4) DescriptorSet 0 - Decorate 35(g_tTex1df4) Binding 0 - MemberDecorate 38($Global) 0 Offset 0 - MemberDecorate 38($Global) 1 Offset 8 - MemberDecorate 38($Global) 2 Offset 16 - MemberDecorate 38($Global) 3 Offset 32 - Decorate 38($Global) Block - Decorate 40 DescriptorSet 0 - Decorate 40 Binding 9 - Decorate 53(g_tTex1di4) DescriptorSet 0 - Decorate 53(g_tTex1di4) Binding 1 - Decorate 63(g_tTex1du4) DescriptorSet 0 - Decorate 63(g_tTex1du4) Binding 2 - Decorate 74(g_tTex2df4) DescriptorSet 0 - Decorate 74(g_tTex2df4) Binding 3 - Decorate 88(g_tTex2di4) DescriptorSet 0 - Decorate 88(g_tTex2di4) Binding 4 - Decorate 99(g_tTex2du4) DescriptorSet 0 - Decorate 99(g_tTex2du4) Binding 5 - Decorate 110(g_tTex3df4) DescriptorSet 0 - Decorate 110(g_tTex3df4) Binding 6 - Decorate 124(g_tTex3di4) DescriptorSet 0 - Decorate 124(g_tTex3di4) Binding 7 - Decorate 135(g_tTex3du4) DescriptorSet 0 - Decorate 135(g_tTex3du4) Binding 8 - Decorate 159(@entryPointOutput.Color) Location 0 - Decorate 163(@entryPointOutput.Depth) BuiltIn FragDepth - Decorate 168(g_sSamp) DescriptorSet 0 - Decorate 168(g_sSamp) Binding 0 - Decorate 171(g_tTexcdf4) DescriptorSet 0 - Decorate 171(g_tTexcdf4) Binding 0 - Decorate 174(g_tTexcdi4) DescriptorSet 0 - Decorate 174(g_tTexcdi4) Binding 0 - Decorate 177(g_tTexcdu4) DescriptorSet 0 - Decorate 177(g_tTexcdu4) Binding 0 - Decorate 180(g_tTex1df4a) DescriptorSet 0 - Decorate 180(g_tTex1df4a) Binding 0 - Decorate 183(g_tTex1di4a) DescriptorSet 0 - Decorate 183(g_tTex1di4a) Binding 0 - Decorate 186(g_tTex1du4a) DescriptorSet 0 - Decorate 186(g_tTex1du4a) Binding 0 - Decorate 189(g_tTex2df4a) DescriptorSet 0 - Decorate 189(g_tTex2df4a) Binding 0 - Decorate 192(g_tTex2di4a) DescriptorSet 0 - Decorate 192(g_tTex2di4a) Binding 0 - Decorate 195(g_tTex2du4a) DescriptorSet 0 - Decorate 195(g_tTex2du4a) Binding 0 - Decorate 198(g_tTexcdf4a) DescriptorSet 0 - Decorate 198(g_tTexcdf4a) Binding 0 - Decorate 201(g_tTexcdi4a) DescriptorSet 0 - Decorate 201(g_tTexcdi4a) Binding 0 - Decorate 204(g_tTexcdu4a) DescriptorSet 0 - Decorate 204(g_tTexcdu4a) Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypeFunction 6(int) - 10: TypeVector 6(int) 2 - 11: TypeFunction 10(ivec2) - 14: TypeVector 6(int) 3 - 15: TypeFunction 14(ivec3) - 18: TypeFloat 32 - 19: TypeVector 18(float) 4 - 20(PS_OUTPUT): TypeStruct 19(fvec4) 18(float) - 21: TypeFunction 20(PS_OUTPUT) - 24: 6(int) Constant 1 - 27: 10(ivec2) ConstantComposite 24 24 - 30: 14(ivec3) ConstantComposite 24 24 24 - 33: TypeImage 18(float) 1D sampled format:Unknown - 34: TypePointer UniformConstant 33 - 35(g_tTex1df4): 34(ptr) Variable UniformConstant - 37: TypeVector 6(int) 4 - 38($Global): TypeStruct 6(int) 10(ivec2) 14(ivec3) 37(ivec4) - 39: TypePointer Uniform 38($Global) - 40: 39(ptr) Variable Uniform - 41: TypeInt 32 0 - 42: 41(int) Constant 0 - 43: TypePointer Uniform 6(int) - 46: 41(int) Constant 1 - 51: TypeImage 6(int) 1D sampled format:Unknown - 52: TypePointer UniformConstant 51 - 53(g_tTex1di4): 52(ptr) Variable UniformConstant - 61: TypeImage 41(int) 1D sampled format:Unknown - 62: TypePointer UniformConstant 61 - 63(g_tTex1du4): 62(ptr) Variable UniformConstant - 70: TypeVector 41(int) 4 - 72: TypeImage 18(float) 2D sampled format:Unknown - 73: TypePointer UniformConstant 72 - 74(g_tTex2df4): 73(ptr) Variable UniformConstant - 76: 6(int) Constant 2 - 77: TypePointer Uniform 14(ivec3) - 81: 41(int) Constant 2 - 86: TypeImage 6(int) 2D sampled format:Unknown - 87: TypePointer UniformConstant 86 - 88(g_tTex2di4): 87(ptr) Variable UniformConstant - 97: TypeImage 41(int) 2D sampled format:Unknown - 98: TypePointer UniformConstant 97 - 99(g_tTex2du4): 98(ptr) Variable UniformConstant - 108: TypeImage 18(float) 3D sampled format:Unknown - 109: TypePointer UniformConstant 108 - 110(g_tTex3df4): 109(ptr) Variable UniformConstant - 112: 6(int) Constant 3 - 113: TypePointer Uniform 37(ivec4) - 117: 41(int) Constant 3 - 122: TypeImage 6(int) 3D sampled format:Unknown - 123: TypePointer UniformConstant 122 - 124(g_tTex3di4): 123(ptr) Variable UniformConstant - 133: TypeImage 41(int) 3D sampled format:Unknown - 134: TypePointer UniformConstant 133 - 135(g_tTex3du4): 134(ptr) Variable UniformConstant - 144: TypePointer Function 20(PS_OUTPUT) - 146: 6(int) Constant 0 - 147: 18(float) Constant 1065353216 - 148: 19(fvec4) ConstantComposite 147 147 147 147 - 149: TypePointer Function 19(fvec4) - 151: TypePointer Function 18(float) - 158: TypePointer Output 19(fvec4) -159(@entryPointOutput.Color): 158(ptr) Variable Output - 162: TypePointer Output 18(float) -163(@entryPointOutput.Depth): 162(ptr) Variable Output - 166: TypeSampler - 167: TypePointer UniformConstant 166 - 168(g_sSamp): 167(ptr) Variable UniformConstant - 169: TypeImage 18(float) Cube sampled format:Unknown - 170: TypePointer UniformConstant 169 - 171(g_tTexcdf4): 170(ptr) Variable UniformConstant - 172: TypeImage 6(int) Cube sampled format:Unknown - 173: TypePointer UniformConstant 172 - 174(g_tTexcdi4): 173(ptr) Variable UniformConstant - 175: TypeImage 41(int) Cube sampled format:Unknown - 176: TypePointer UniformConstant 175 - 177(g_tTexcdu4): 176(ptr) Variable UniformConstant - 178: TypeImage 18(float) 1D array sampled format:Unknown - 179: TypePointer UniformConstant 178 -180(g_tTex1df4a): 179(ptr) Variable UniformConstant - 181: TypeImage 6(int) 1D array sampled format:Unknown - 182: TypePointer UniformConstant 181 -183(g_tTex1di4a): 182(ptr) Variable UniformConstant - 184: TypeImage 41(int) 1D array sampled format:Unknown - 185: TypePointer UniformConstant 184 -186(g_tTex1du4a): 185(ptr) Variable UniformConstant - 187: TypeImage 18(float) 2D array sampled format:Unknown - 188: TypePointer UniformConstant 187 -189(g_tTex2df4a): 188(ptr) Variable UniformConstant - 190: TypeImage 6(int) 2D array sampled format:Unknown - 191: TypePointer UniformConstant 190 -192(g_tTex2di4a): 191(ptr) Variable UniformConstant - 193: TypeImage 41(int) 2D array sampled format:Unknown - 194: TypePointer UniformConstant 193 -195(g_tTex2du4a): 194(ptr) Variable UniformConstant - 196: TypeImage 18(float) Cube array sampled format:Unknown - 197: TypePointer UniformConstant 196 -198(g_tTexcdf4a): 197(ptr) Variable UniformConstant - 199: TypeImage 6(int) Cube array sampled format:Unknown - 200: TypePointer UniformConstant 199 -201(g_tTexcdi4a): 200(ptr) Variable UniformConstant - 202: TypeImage 41(int) Cube array sampled format:Unknown - 203: TypePointer UniformConstant 202 -204(g_tTexcdu4a): 203(ptr) Variable UniformConstant - 4(main): 2 Function None 3 - 5: Label -156(flattenTemp): 144(ptr) Variable Function - 157:20(PS_OUTPUT) FunctionCall 22(@main() - Store 156(flattenTemp) 157 - 160: 149(ptr) AccessChain 156(flattenTemp) 146 - 161: 19(fvec4) Load 160 - Store 159(@entryPointOutput.Color) 161 - 164: 151(ptr) AccessChain 156(flattenTemp) 24 - 165: 18(float) Load 164 - Store 163(@entryPointOutput.Depth) 165 - Return - FunctionEnd - 8(getOffset1(): 6(int) Function None 7 - 9: Label - ReturnValue 24 - FunctionEnd - 12(getOffset2(): 10(ivec2) Function None 11 - 13: Label - ReturnValue 27 - FunctionEnd - 16(getOffset3(): 14(ivec3) Function None 15 - 17: Label - ReturnValue 30 - FunctionEnd - 22(@main():20(PS_OUTPUT) Function None 21 - 23: Label - 145(psout): 144(ptr) Variable Function - 36: 33 Load 35(g_tTex1df4) - 44: 43(ptr) AccessChain 40 24 42 - 45: 6(int) Load 44 - 47: 43(ptr) AccessChain 40 24 46 - 48: 6(int) Load 47 - 49: 6(int) FunctionCall 8(getOffset1() - 50: 19(fvec4) ImageFetch 36 45 Lod Offset 48 49 - 54: 51 Load 53(g_tTex1di4) - 55: 43(ptr) AccessChain 40 24 42 - 56: 6(int) Load 55 - 57: 43(ptr) AccessChain 40 24 46 - 58: 6(int) Load 57 - 59: 6(int) FunctionCall 8(getOffset1() - 60: 37(ivec4) ImageFetch 54 56 Lod Offset 58 59 - 64: 61 Load 63(g_tTex1du4) - 65: 43(ptr) AccessChain 40 24 42 - 66: 6(int) Load 65 - 67: 43(ptr) AccessChain 40 24 46 - 68: 6(int) Load 67 - 69: 6(int) FunctionCall 8(getOffset1() - 71: 70(ivec4) ImageFetch 64 66 Lod Offset 68 69 - 75: 72 Load 74(g_tTex2df4) - 78: 77(ptr) AccessChain 40 76 - 79: 14(ivec3) Load 78 - 80: 10(ivec2) VectorShuffle 79 79 0 1 - 82: 43(ptr) AccessChain 40 76 81 - 83: 6(int) Load 82 - 84: 10(ivec2) FunctionCall 12(getOffset2() - 85: 19(fvec4) ImageFetch 75 80 Lod Offset 83 84 - 89: 86 Load 88(g_tTex2di4) - 90: 77(ptr) AccessChain 40 76 - 91: 14(ivec3) Load 90 - 92: 10(ivec2) VectorShuffle 91 91 0 1 - 93: 43(ptr) AccessChain 40 76 81 - 94: 6(int) Load 93 - 95: 10(ivec2) FunctionCall 12(getOffset2() - 96: 37(ivec4) ImageFetch 89 92 Lod Offset 94 95 - 100: 97 Load 99(g_tTex2du4) - 101: 77(ptr) AccessChain 40 76 - 102: 14(ivec3) Load 101 - 103: 10(ivec2) VectorShuffle 102 102 0 1 - 104: 43(ptr) AccessChain 40 76 81 - 105: 6(int) Load 104 - 106: 10(ivec2) FunctionCall 12(getOffset2() - 107: 70(ivec4) ImageFetch 100 103 Lod Offset 105 106 - 111: 108 Load 110(g_tTex3df4) - 114: 113(ptr) AccessChain 40 112 - 115: 37(ivec4) Load 114 - 116: 14(ivec3) VectorShuffle 115 115 0 1 2 - 118: 43(ptr) AccessChain 40 112 117 - 119: 6(int) Load 118 - 120: 14(ivec3) FunctionCall 16(getOffset3() - 121: 19(fvec4) ImageFetch 111 116 Lod Offset 119 120 - 125: 122 Load 124(g_tTex3di4) - 126: 113(ptr) AccessChain 40 112 - 127: 37(ivec4) Load 126 - 128: 14(ivec3) VectorShuffle 127 127 0 1 2 - 129: 43(ptr) AccessChain 40 112 117 - 130: 6(int) Load 129 - 131: 14(ivec3) FunctionCall 16(getOffset3() - 132: 37(ivec4) ImageFetch 125 128 Lod Offset 130 131 - 136: 133 Load 135(g_tTex3du4) - 137: 113(ptr) AccessChain 40 112 - 138: 37(ivec4) Load 137 - 139: 14(ivec3) VectorShuffle 138 138 0 1 2 - 140: 43(ptr) AccessChain 40 112 117 - 141: 6(int) Load 140 - 142: 14(ivec3) FunctionCall 16(getOffset3() - 143: 70(ivec4) ImageFetch 136 139 Lod Offset 141 142 - 150: 149(ptr) AccessChain 145(psout) 146 - Store 150 148 - 152: 151(ptr) AccessChain 145(psout) 24 - Store 152 147 - 153:20(PS_OUTPUT) Load 145(psout) - ReturnValue 153 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out deleted file mode 100644 index 04ea4827..00000000 --- a/deps/glslang/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out +++ /dev/null @@ -1,714 +0,0 @@ -hlsl.load.offsetarray.dx10.frag -Shader version: 500 -gl_FragCoord origin is upper left -using depth_any -0:? Sequence -0:43 Function Definition: getOffset1( ( temp int) -0:43 Function Parameters: -0:? Sequence -0:44 Branch: Return with expression -0:44 Constant: -0:44 1 (const int) -0:48 Function Definition: getOffset2( ( temp 2-component vector of int) -0:48 Function Parameters: -0:? Sequence -0:49 Branch: Return with expression -0:49 Constant: -0:49 1 (const int) -0:49 1 (const int) -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 textureFetchOffset ( temp 4-component vector of float) -0:57 'g_tTex1df4a' ( uniform texture1DArray) -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}) -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}) -0:57 Constant: -0:57 2 (const uint) -0:57 Constant: -0:57 2 (const int) -0:57 Function Call: getOffset1( ( temp int) -0:58 textureFetchOffset ( temp 4-component vector of int) -0:58 'g_tTex1di4a' ( uniform itexture1DArray) -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}) -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}) -0:58 Constant: -0:58 2 (const uint) -0:58 Constant: -0:58 2 (const int) -0:58 Function Call: getOffset1( ( temp int) -0:59 textureFetchOffset ( temp 4-component vector of uint) -0:59 'g_tTex1du4a' ( uniform utexture1DArray) -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}) -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}) -0:59 Constant: -0:59 2 (const uint) -0:59 Constant: -0:59 2 (const int) -0:59 Function Call: getOffset1( ( temp int) -0:62 textureFetchOffset ( temp 4-component vector of float) -0:62 'g_tTex2df4a' ( uniform texture2DArray) -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}) -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}) -0:62 Constant: -0:62 3 (const uint) -0:62 Constant: -0:62 3 (const int) -0:62 Function Call: getOffset2( ( temp 2-component vector of int) -0:63 textureFetchOffset ( temp 4-component vector of int) -0:63 'g_tTex2di4a' ( uniform itexture2DArray) -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}) -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}) -0:63 Constant: -0:63 3 (const uint) -0:63 Constant: -0:63 3 (const int) -0:63 Function Call: getOffset2( ( temp 2-component vector of int) -0:64 textureFetchOffset ( temp 4-component vector of uint) -0:64 'g_tTex2du4a' ( uniform utexture2DArray) -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}) -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}) -0:64 Constant: -0:64 3 (const uint) -0:64 Constant: -0:64 3 (const int) -0:64 Function Call: getOffset2( ( temp 2-component vector of 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, temp float Depth}) -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:71 move second child to first child ( temp float) -0:71 Depth: direct index for structure ( temp float) -0:71 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:71 Constant: -0:71 1 (const int) -0:71 Constant: -0:71 1.000000 -0:73 Branch: Return with expression -0:73 '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_tTex1df4' (layout( binding=0) uniform texture1D) -0:? 'g_tTex1di4' ( uniform itexture1D) -0:? 'g_tTex1du4' ( uniform utexture1D) -0:? 'g_tTex2df4' ( uniform texture2D) -0:? 'g_tTex2di4' ( uniform itexture2D) -0:? 'g_tTex2du4' ( uniform utexture2D) -0:? 'g_tTex3df4' ( uniform texture3D) -0:? '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}) -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:43 Function Definition: getOffset1( ( temp int) -0:43 Function Parameters: -0:? Sequence -0:44 Branch: Return with expression -0:44 Constant: -0:44 1 (const int) -0:48 Function Definition: getOffset2( ( temp 2-component vector of int) -0:48 Function Parameters: -0:? Sequence -0:49 Branch: Return with expression -0:49 Constant: -0:49 1 (const int) -0:49 1 (const int) -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 textureFetchOffset ( temp 4-component vector of float) -0:57 'g_tTex1df4a' ( uniform texture1DArray) -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}) -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}) -0:57 Constant: -0:57 2 (const uint) -0:57 Constant: -0:57 2 (const int) -0:57 Function Call: getOffset1( ( temp int) -0:58 textureFetchOffset ( temp 4-component vector of int) -0:58 'g_tTex1di4a' ( uniform itexture1DArray) -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}) -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}) -0:58 Constant: -0:58 2 (const uint) -0:58 Constant: -0:58 2 (const int) -0:58 Function Call: getOffset1( ( temp int) -0:59 textureFetchOffset ( temp 4-component vector of uint) -0:59 'g_tTex1du4a' ( uniform utexture1DArray) -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}) -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}) -0:59 Constant: -0:59 2 (const uint) -0:59 Constant: -0:59 2 (const int) -0:59 Function Call: getOffset1( ( temp int) -0:62 textureFetchOffset ( temp 4-component vector of float) -0:62 'g_tTex2df4a' ( uniform texture2DArray) -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}) -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}) -0:62 Constant: -0:62 3 (const uint) -0:62 Constant: -0:62 3 (const int) -0:62 Function Call: getOffset2( ( temp 2-component vector of int) -0:63 textureFetchOffset ( temp 4-component vector of int) -0:63 'g_tTex2di4a' ( uniform itexture2DArray) -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}) -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}) -0:63 Constant: -0:63 3 (const uint) -0:63 Constant: -0:63 3 (const int) -0:63 Function Call: getOffset2( ( temp 2-component vector of int) -0:64 textureFetchOffset ( temp 4-component vector of uint) -0:64 'g_tTex2du4a' ( uniform utexture2DArray) -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}) -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}) -0:64 Constant: -0:64 3 (const uint) -0:64 Constant: -0:64 3 (const int) -0:64 Function Call: getOffset2( ( temp 2-component vector of 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, temp float Depth}) -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:71 move second child to first child ( temp float) -0:71 Depth: direct index for structure ( temp float) -0:71 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:71 Constant: -0:71 1 (const int) -0:71 Constant: -0:71 1.000000 -0:73 Branch: Return with expression -0:73 '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_tTex1df4' (layout( binding=0) uniform texture1D) -0:? 'g_tTex1di4' ( uniform itexture1D) -0:? 'g_tTex1du4' ( uniform utexture1D) -0:? 'g_tTex2df4' ( uniform texture2D) -0:? 'g_tTex2di4' ( uniform itexture2D) -0:? 'g_tTex2du4' ( uniform utexture2D) -0:? 'g_tTex3df4' ( uniform texture3D) -0:? '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}) -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): 8000a -// Id's are bound by 176 - - Capability Shader - Capability ImageGatherExtended - Capability Sampled1D - Capability SampledCubeArray - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 121 125 - ExecutionMode 4 OriginUpperLeft - ExecutionMode 4 DepthReplacing - Source HLSL 500 - Name 4 "main" - Name 8 "getOffset1(" - Name 12 "getOffset2(" - Name 16 "PS_OUTPUT" - MemberName 16(PS_OUTPUT) 0 "Color" - MemberName 16(PS_OUTPUT) 1 "Depth" - Name 18 "@main(" - Name 28 "g_tTex1df4a" - Name 32 "$Global" - MemberName 32($Global) 0 "c1" - MemberName 32($Global) 1 "c2" - MemberName 32($Global) 2 "c3" - MemberName 32($Global) 3 "c4" - Name 34 "" - Name 49 "g_tTex1di4a" - Name 60 "g_tTex1du4a" - Name 72 "g_tTex2df4a" - Name 86 "g_tTex2di4a" - Name 97 "g_tTex2du4a" - Name 107 "psout" - Name 118 "flattenTemp" - Name 121 "@entryPointOutput.Color" - Name 125 "@entryPointOutput.Depth" - Name 130 "g_sSamp" - Name 133 "g_tTex1df4" - Name 136 "g_tTex1di4" - Name 139 "g_tTex1du4" - Name 142 "g_tTex2df4" - Name 145 "g_tTex2di4" - Name 148 "g_tTex2du4" - Name 151 "g_tTex3df4" - Name 154 "g_tTex3di4" - Name 157 "g_tTex3du4" - Name 160 "g_tTexcdf4" - Name 163 "g_tTexcdi4" - Name 166 "g_tTexcdu4" - Name 169 "g_tTexcdf4a" - Name 172 "g_tTexcdi4a" - Name 175 "g_tTexcdu4a" - Decorate 28(g_tTex1df4a) DescriptorSet 0 - Decorate 28(g_tTex1df4a) Binding 1 - MemberDecorate 32($Global) 0 Offset 0 - MemberDecorate 32($Global) 1 Offset 8 - MemberDecorate 32($Global) 2 Offset 16 - MemberDecorate 32($Global) 3 Offset 32 - Decorate 32($Global) Block - Decorate 34 DescriptorSet 0 - Decorate 34 Binding 7 - Decorate 49(g_tTex1di4a) DescriptorSet 0 - Decorate 49(g_tTex1di4a) Binding 2 - Decorate 60(g_tTex1du4a) DescriptorSet 0 - Decorate 60(g_tTex1du4a) Binding 3 - Decorate 72(g_tTex2df4a) DescriptorSet 0 - Decorate 72(g_tTex2df4a) Binding 4 - Decorate 86(g_tTex2di4a) DescriptorSet 0 - Decorate 86(g_tTex2di4a) Binding 5 - Decorate 97(g_tTex2du4a) DescriptorSet 0 - Decorate 97(g_tTex2du4a) Binding 6 - Decorate 121(@entryPointOutput.Color) Location 0 - Decorate 125(@entryPointOutput.Depth) BuiltIn FragDepth - Decorate 130(g_sSamp) DescriptorSet 0 - Decorate 130(g_sSamp) Binding 0 - Decorate 133(g_tTex1df4) DescriptorSet 0 - Decorate 133(g_tTex1df4) Binding 0 - Decorate 136(g_tTex1di4) DescriptorSet 0 - Decorate 136(g_tTex1di4) Binding 0 - Decorate 139(g_tTex1du4) DescriptorSet 0 - Decorate 139(g_tTex1du4) Binding 0 - Decorate 142(g_tTex2df4) DescriptorSet 0 - Decorate 142(g_tTex2df4) Binding 0 - Decorate 145(g_tTex2di4) DescriptorSet 0 - Decorate 145(g_tTex2di4) Binding 0 - Decorate 148(g_tTex2du4) DescriptorSet 0 - Decorate 148(g_tTex2du4) Binding 0 - Decorate 151(g_tTex3df4) DescriptorSet 0 - Decorate 151(g_tTex3df4) Binding 0 - Decorate 154(g_tTex3di4) DescriptorSet 0 - Decorate 154(g_tTex3di4) Binding 0 - Decorate 157(g_tTex3du4) DescriptorSet 0 - Decorate 157(g_tTex3du4) Binding 0 - Decorate 160(g_tTexcdf4) DescriptorSet 0 - Decorate 160(g_tTexcdf4) Binding 0 - Decorate 163(g_tTexcdi4) DescriptorSet 0 - Decorate 163(g_tTexcdi4) Binding 0 - Decorate 166(g_tTexcdu4) DescriptorSet 0 - Decorate 166(g_tTexcdu4) Binding 0 - Decorate 169(g_tTexcdf4a) DescriptorSet 0 - Decorate 169(g_tTexcdf4a) Binding 0 - Decorate 172(g_tTexcdi4a) DescriptorSet 0 - Decorate 172(g_tTexcdi4a) Binding 0 - Decorate 175(g_tTexcdu4a) DescriptorSet 0 - Decorate 175(g_tTexcdu4a) Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypeFunction 6(int) - 10: TypeVector 6(int) 2 - 11: TypeFunction 10(ivec2) - 14: TypeFloat 32 - 15: TypeVector 14(float) 4 - 16(PS_OUTPUT): TypeStruct 15(fvec4) 14(float) - 17: TypeFunction 16(PS_OUTPUT) - 20: 6(int) Constant 1 - 23: 10(ivec2) ConstantComposite 20 20 - 26: TypeImage 14(float) 1D array sampled format:Unknown - 27: TypePointer UniformConstant 26 - 28(g_tTex1df4a): 27(ptr) Variable UniformConstant - 30: TypeVector 6(int) 3 - 31: TypeVector 6(int) 4 - 32($Global): TypeStruct 6(int) 10(ivec2) 30(ivec3) 31(ivec4) - 33: TypePointer Uniform 32($Global) - 34: 33(ptr) Variable Uniform - 35: 6(int) Constant 2 - 36: TypePointer Uniform 30(ivec3) - 40: TypeInt 32 0 - 41: 40(int) Constant 2 - 42: TypePointer Uniform 6(int) - 47: TypeImage 6(int) 1D array sampled format:Unknown - 48: TypePointer UniformConstant 47 - 49(g_tTex1di4a): 48(ptr) Variable UniformConstant - 58: TypeImage 40(int) 1D array sampled format:Unknown - 59: TypePointer UniformConstant 58 - 60(g_tTex1du4a): 59(ptr) Variable UniformConstant - 68: TypeVector 40(int) 4 - 70: TypeImage 14(float) 2D array sampled format:Unknown - 71: TypePointer UniformConstant 70 - 72(g_tTex2df4a): 71(ptr) Variable UniformConstant - 74: 6(int) Constant 3 - 75: TypePointer Uniform 31(ivec4) - 79: 40(int) Constant 3 - 84: TypeImage 6(int) 2D array sampled format:Unknown - 85: TypePointer UniformConstant 84 - 86(g_tTex2di4a): 85(ptr) Variable UniformConstant - 95: TypeImage 40(int) 2D array sampled format:Unknown - 96: TypePointer UniformConstant 95 - 97(g_tTex2du4a): 96(ptr) Variable UniformConstant - 106: TypePointer Function 16(PS_OUTPUT) - 108: 6(int) Constant 0 - 109: 14(float) Constant 1065353216 - 110: 15(fvec4) ConstantComposite 109 109 109 109 - 111: TypePointer Function 15(fvec4) - 113: TypePointer Function 14(float) - 120: TypePointer Output 15(fvec4) -121(@entryPointOutput.Color): 120(ptr) Variable Output - 124: TypePointer Output 14(float) -125(@entryPointOutput.Depth): 124(ptr) Variable Output - 128: TypeSampler - 129: TypePointer UniformConstant 128 - 130(g_sSamp): 129(ptr) Variable UniformConstant - 131: TypeImage 14(float) 1D sampled format:Unknown - 132: TypePointer UniformConstant 131 - 133(g_tTex1df4): 132(ptr) Variable UniformConstant - 134: TypeImage 6(int) 1D sampled format:Unknown - 135: TypePointer UniformConstant 134 - 136(g_tTex1di4): 135(ptr) Variable UniformConstant - 137: TypeImage 40(int) 1D sampled format:Unknown - 138: TypePointer UniformConstant 137 - 139(g_tTex1du4): 138(ptr) Variable UniformConstant - 140: TypeImage 14(float) 2D sampled format:Unknown - 141: TypePointer UniformConstant 140 - 142(g_tTex2df4): 141(ptr) Variable UniformConstant - 143: TypeImage 6(int) 2D sampled format:Unknown - 144: TypePointer UniformConstant 143 - 145(g_tTex2di4): 144(ptr) Variable UniformConstant - 146: TypeImage 40(int) 2D sampled format:Unknown - 147: TypePointer UniformConstant 146 - 148(g_tTex2du4): 147(ptr) Variable UniformConstant - 149: TypeImage 14(float) 3D sampled format:Unknown - 150: TypePointer UniformConstant 149 - 151(g_tTex3df4): 150(ptr) Variable UniformConstant - 152: TypeImage 6(int) 3D sampled format:Unknown - 153: TypePointer UniformConstant 152 - 154(g_tTex3di4): 153(ptr) Variable UniformConstant - 155: TypeImage 40(int) 3D sampled format:Unknown - 156: TypePointer UniformConstant 155 - 157(g_tTex3du4): 156(ptr) Variable UniformConstant - 158: TypeImage 14(float) Cube sampled format:Unknown - 159: TypePointer UniformConstant 158 - 160(g_tTexcdf4): 159(ptr) Variable UniformConstant - 161: TypeImage 6(int) Cube sampled format:Unknown - 162: TypePointer UniformConstant 161 - 163(g_tTexcdi4): 162(ptr) Variable UniformConstant - 164: TypeImage 40(int) Cube sampled format:Unknown - 165: TypePointer UniformConstant 164 - 166(g_tTexcdu4): 165(ptr) Variable UniformConstant - 167: TypeImage 14(float) Cube array sampled format:Unknown - 168: TypePointer UniformConstant 167 -169(g_tTexcdf4a): 168(ptr) Variable UniformConstant - 170: TypeImage 6(int) Cube array sampled format:Unknown - 171: TypePointer UniformConstant 170 -172(g_tTexcdi4a): 171(ptr) Variable UniformConstant - 173: TypeImage 40(int) Cube array sampled format:Unknown - 174: TypePointer UniformConstant 173 -175(g_tTexcdu4a): 174(ptr) Variable UniformConstant - 4(main): 2 Function None 3 - 5: Label -118(flattenTemp): 106(ptr) Variable Function - 119:16(PS_OUTPUT) FunctionCall 18(@main() - Store 118(flattenTemp) 119 - 122: 111(ptr) AccessChain 118(flattenTemp) 108 - 123: 15(fvec4) Load 122 - Store 121(@entryPointOutput.Color) 123 - 126: 113(ptr) AccessChain 118(flattenTemp) 20 - 127: 14(float) Load 126 - Store 125(@entryPointOutput.Depth) 127 - Return - FunctionEnd - 8(getOffset1(): 6(int) Function None 7 - 9: Label - ReturnValue 20 - FunctionEnd - 12(getOffset2(): 10(ivec2) Function None 11 - 13: Label - ReturnValue 23 - FunctionEnd - 18(@main():16(PS_OUTPUT) Function None 17 - 19: Label - 107(psout): 106(ptr) Variable Function - 29: 26 Load 28(g_tTex1df4a) - 37: 36(ptr) AccessChain 34 35 - 38: 30(ivec3) Load 37 - 39: 10(ivec2) VectorShuffle 38 38 0 1 - 43: 42(ptr) AccessChain 34 35 41 - 44: 6(int) Load 43 - 45: 6(int) FunctionCall 8(getOffset1() - 46: 15(fvec4) ImageFetch 29 39 Lod Offset 44 45 - 50: 47 Load 49(g_tTex1di4a) - 51: 36(ptr) AccessChain 34 35 - 52: 30(ivec3) Load 51 - 53: 10(ivec2) VectorShuffle 52 52 0 1 - 54: 42(ptr) AccessChain 34 35 41 - 55: 6(int) Load 54 - 56: 6(int) FunctionCall 8(getOffset1() - 57: 31(ivec4) ImageFetch 50 53 Lod Offset 55 56 - 61: 58 Load 60(g_tTex1du4a) - 62: 36(ptr) AccessChain 34 35 - 63: 30(ivec3) Load 62 - 64: 10(ivec2) VectorShuffle 63 63 0 1 - 65: 42(ptr) AccessChain 34 35 41 - 66: 6(int) Load 65 - 67: 6(int) FunctionCall 8(getOffset1() - 69: 68(ivec4) ImageFetch 61 64 Lod Offset 66 67 - 73: 70 Load 72(g_tTex2df4a) - 76: 75(ptr) AccessChain 34 74 - 77: 31(ivec4) Load 76 - 78: 30(ivec3) VectorShuffle 77 77 0 1 2 - 80: 42(ptr) AccessChain 34 74 79 - 81: 6(int) Load 80 - 82: 10(ivec2) FunctionCall 12(getOffset2() - 83: 15(fvec4) ImageFetch 73 78 Lod Offset 81 82 - 87: 84 Load 86(g_tTex2di4a) - 88: 75(ptr) AccessChain 34 74 - 89: 31(ivec4) Load 88 - 90: 30(ivec3) VectorShuffle 89 89 0 1 2 - 91: 42(ptr) AccessChain 34 74 79 - 92: 6(int) Load 91 - 93: 10(ivec2) FunctionCall 12(getOffset2() - 94: 31(ivec4) ImageFetch 87 90 Lod Offset 92 93 - 98: 95 Load 97(g_tTex2du4a) - 99: 75(ptr) AccessChain 34 74 - 100: 31(ivec4) Load 99 - 101: 30(ivec3) VectorShuffle 100 100 0 1 2 - 102: 42(ptr) AccessChain 34 74 79 - 103: 6(int) Load 102 - 104: 10(ivec2) FunctionCall 12(getOffset2() - 105: 68(ivec4) ImageFetch 98 101 Lod Offset 103 104 - 112: 111(ptr) AccessChain 107(psout) 108 - Store 112 110 - 114: 113(ptr) AccessChain 107(psout) 20 - Store 114 109 - 115:16(PS_OUTPUT) Load 107(psout) - ReturnValue 115 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out deleted file mode 100644 index 73a854b1..00000000 --- a/deps/glslang/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out +++ /dev/null @@ -1,218 +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): 8000a -// 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 - Decorate 14(g_tBuffF) 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 22 Binding 3 - Decorate 31(g_tBuffU) DescriptorSet 0 - Decorate 31(g_tBuffU) Binding 2 - Decorate 39(g_tBuffI) DescriptorSet 0 - Decorate 39(g_tBuffI) Binding 1 - 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/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out deleted file mode 100644 index db105d77..00000000 --- a/deps/glslang/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out +++ /dev/null @@ -1,425 +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): 8000a -// 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 - Decorate 14(g_tTex1df4a) Binding 1 - 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 22 Binding 7 - Decorate 30(g_tTex1di4a) DescriptorSet 0 - Decorate 30(g_tTex1di4a) Binding 2 - Decorate 38(g_tTex1du4a) DescriptorSet 0 - Decorate 38(g_tTex1du4a) Binding 3 - Decorate 46(g_tTex2df4a) DescriptorSet 0 - Decorate 46(g_tTex2df4a) Binding 4 - Decorate 55(g_tTex2di4a) DescriptorSet 0 - Decorate 55(g_tTex2di4a) Binding 5 - Decorate 62(g_tTex2du4a) DescriptorSet 0 - Decorate 62(g_tTex2du4a) Binding 6 - 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 97(g_tTex1di4) Binding 0 - Decorate 100(g_tTex1du4) DescriptorSet 0 - Decorate 100(g_tTex1du4) Binding 0 - Decorate 103(g_tTex2df4) DescriptorSet 0 - Decorate 103(g_tTex2df4) Binding 0 - Decorate 106(g_tTex2di4) DescriptorSet 0 - Decorate 106(g_tTex2di4) Binding 0 - Decorate 109(g_tTex2du4) DescriptorSet 0 - Decorate 109(g_tTex2du4) Binding 0 - Decorate 112(g_tTex3df4) DescriptorSet 0 - Decorate 112(g_tTex3df4) Binding 0 - Decorate 115(g_tTex3di4) DescriptorSet 0 - Decorate 115(g_tTex3di4) Binding 0 - Decorate 118(g_tTex3du4) DescriptorSet 0 - Decorate 118(g_tTex3du4) 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) 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/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out deleted file mode 100644 index c063e0c0..00000000 --- a/deps/glslang/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out +++ /dev/null @@ -1,474 +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): 8000a -// 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 22 Binding 9 - Decorate 30(g_tTex1di4) DescriptorSet 0 - Decorate 30(g_tTex1di4) Binding 1 - Decorate 38(g_tTex1du4) DescriptorSet 0 - Decorate 38(g_tTex1du4) Binding 2 - Decorate 46(g_tTex2df4) DescriptorSet 0 - Decorate 46(g_tTex2df4) Binding 3 - Decorate 55(g_tTex2di4) DescriptorSet 0 - Decorate 55(g_tTex2di4) Binding 4 - Decorate 62(g_tTex2du4) DescriptorSet 0 - Decorate 62(g_tTex2du4) Binding 5 - Decorate 69(g_tTex3df4) DescriptorSet 0 - Decorate 69(g_tTex3df4) Binding 6 - Decorate 78(g_tTex3di4) DescriptorSet 0 - Decorate 78(g_tTex3di4) Binding 7 - Decorate 85(g_tTex3du4) DescriptorSet 0 - Decorate 85(g_tTex3du4) Binding 8 - 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 116(g_tTex1df4a) Binding 0 - Decorate 119(g_tTex1di4a) DescriptorSet 0 - Decorate 119(g_tTex1di4a) Binding 0 - Decorate 122(g_tTex1du4a) DescriptorSet 0 - Decorate 122(g_tTex1du4a) Binding 0 - Decorate 125(g_tTex2df4a) DescriptorSet 0 - Decorate 125(g_tTex2df4a) Binding 0 - Decorate 128(g_tTex2di4a) DescriptorSet 0 - Decorate 128(g_tTex2di4a) Binding 0 - Decorate 131(g_tTex2du4a) DescriptorSet 0 - Decorate 131(g_tTex2du4a) 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) 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/Test/baseResults/hlsl.localStructuredBuffer.comp.out b/deps/glslang/Test/baseResults/hlsl.localStructuredBuffer.comp.out deleted file mode 100644 index a2b4db0e..00000000 --- a/deps/glslang/Test/baseResults/hlsl.localStructuredBuffer.comp.out +++ /dev/null @@ -1,34 +0,0 @@ -hlsl.localStructuredBuffer.comp -ERROR: 0:3: 'block initializer' : buffer aliasing not yet supported -ERROR: 1 compilation errors. No code generated. - - -Shader version: 500 -local_size = (1, 1, 1) -ERROR: node is still EOpNull! -0:2 Function Definition: @main( ( temp void) -0:2 Function Parameters: -0:2 Function Definition: main( ( temp void) -0:2 Function Parameters: -0:? Sequence -0:2 Function Call: @main( ( temp void) -0:? Linker Objects -0:? 'srt0' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) - - -Linked compute stage: - - -Shader version: 500 -local_size = (1, 1, 1) -ERROR: node is still EOpNull! -0:2 Function Definition: @main( ( temp void) -0:2 Function Parameters: -0:2 Function Definition: main( ( temp void) -0:2 Function Parameters: -0:? Sequence -0:2 Function Call: @main( ( temp void) -0:? Linker Objects -0:? 'srt0' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/hlsl.logical.binary.frag.out b/deps/glslang/Test/baseResults/hlsl.logical.binary.frag.out deleted file mode 100644 index d66eb7cd..00000000 --- a/deps/glslang/Test/baseResults/hlsl.logical.binary.frag.out +++ /dev/null @@ -1,219 +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): 8000a -// 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 16 Binding 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) FUnordNotEqual 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) FUnordNotEqual 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/Test/baseResults/hlsl.logical.binary.vec.frag.out b/deps/glslang/Test/baseResults/hlsl.logical.binary.vec.frag.out deleted file mode 100644 index 20f87b8a..00000000 --- a/deps/glslang/Test/baseResults/hlsl.logical.binary.vec.frag.out +++ /dev/null @@ -1,416 +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): 8000a -// 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 20 Binding 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/Test/baseResults/hlsl.logical.unary.frag.out b/deps/glslang/Test/baseResults/hlsl.logical.unary.frag.out deleted file mode 100644 index 711625dc..00000000 --- a/deps/glslang/Test/baseResults/hlsl.logical.unary.frag.out +++ /dev/null @@ -1,313 +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): 8000a -// 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 16 Binding 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) FUnordNotEqual 38 39 - 41: 21(bool) LogicalNot 40 - 44: 43(ptr) AccessChain 16 42 - 45: 7(fvec4) Load 44 - 47: 30(bvec4) FUnordNotEqual 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) FUnordNotEqual 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) FUnordNotEqual 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/Test/baseResults/hlsl.logicalConvert.frag.out b/deps/glslang/Test/baseResults/hlsl.logicalConvert.frag.out deleted file mode 100644 index 44e1961d..00000000 --- a/deps/glslang/Test/baseResults/hlsl.logicalConvert.frag.out +++ /dev/null @@ -1,342 +0,0 @@ -hlsl.logicalConvert.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:2 Function Definition: @main( ( temp 4-component vector of float) -0:2 Function Parameters: -0:? Sequence -0:3 Test condition and select ( temp void) -0:3 Condition -0:3 Constant: -0:3 false (const bool) -0:3 true case -0:4 Branch: Return with expression -0:4 Constant: -0:4 0.000000 -0:4 0.000000 -0:4 0.000000 -0:4 0.000000 -0:5 Test condition and select ( temp void) -0:5 Condition -0:5 Constant: -0:5 false (const bool) -0:5 true case -0:6 Branch: Return with expression -0:6 Constant: -0:6 0.000000 -0:6 0.000000 -0:6 0.000000 -0:6 0.000000 -0:7 Test condition and select ( temp void) -0:7 Condition -0:7 Constant: -0:7 true (const bool) -0:7 true case -0:8 Branch: Return with expression -0:8 Constant: -0:8 0.000000 -0:8 0.000000 -0:8 0.000000 -0:8 0.000000 -0:9 Test condition and select ( temp void) -0:9 Condition -0:9 Constant: -0:9 true (const bool) -0:9 true case -0:10 Branch: Return with expression -0:10 Constant: -0:10 0.000000 -0:10 0.000000 -0:10 0.000000 -0:10 0.000000 -0:11 Test condition and select ( temp void) -0:11 Condition -0:11 Constant: -0:11 false (const bool) -0:11 true case -0:12 Branch: Return with expression -0:12 Constant: -0:12 0.000000 -0:12 0.000000 -0:12 0.000000 -0:12 0.000000 -0:13 Test condition and select ( temp void) -0:13 Condition -0:13 Constant: -0:13 false (const bool) -0:13 true case -0:14 Branch: Return with expression -0:14 Constant: -0:14 0.000000 -0:14 0.000000 -0:14 0.000000 -0:14 0.000000 -0:15 Test condition and select ( temp void) -0:15 Condition -0:15 Constant: -0:15 true (const bool) -0:15 true case -0:16 Branch: Return with expression -0:16 Constant: -0:16 0.000000 -0:16 0.000000 -0:16 0.000000 -0:16 0.000000 -0:17 Test condition and select ( temp void) -0:17 Condition -0:17 Constant: -0:17 false (const bool) -0:17 true case -0:18 Branch: Return with expression -0:18 Constant: -0:18 0.000000 -0:18 0.000000 -0:18 0.000000 -0:18 0.000000 -0:19 Test condition and select ( temp void) -0:19 Condition -0:19 Constant: -0:19 true (const bool) -0:19 true case -0:20 Branch: Return with expression -0:20 Constant: -0:20 0.000000 -0:20 0.000000 -0:20 0.000000 -0:20 0.000000 -0:21 Test condition and select ( temp void) -0:21 Condition -0:21 Constant: -0:21 true (const bool) -0:21 true case -0:22 Branch: Return with expression -0:22 Constant: -0:22 0.000000 -0:22 0.000000 -0:22 0.000000 -0:22 0.000000 -0:2 Function Definition: main( ( temp void) -0:2 Function Parameters: -0:? Sequence -0:2 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:2 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:2 Function Definition: @main( ( temp 4-component vector of float) -0:2 Function Parameters: -0:? Sequence -0:3 Test condition and select ( temp void) -0:3 Condition -0:3 Constant: -0:3 false (const bool) -0:3 true case -0:4 Branch: Return with expression -0:4 Constant: -0:4 0.000000 -0:4 0.000000 -0:4 0.000000 -0:4 0.000000 -0:5 Test condition and select ( temp void) -0:5 Condition -0:5 Constant: -0:5 false (const bool) -0:5 true case -0:6 Branch: Return with expression -0:6 Constant: -0:6 0.000000 -0:6 0.000000 -0:6 0.000000 -0:6 0.000000 -0:7 Test condition and select ( temp void) -0:7 Condition -0:7 Constant: -0:7 true (const bool) -0:7 true case -0:8 Branch: Return with expression -0:8 Constant: -0:8 0.000000 -0:8 0.000000 -0:8 0.000000 -0:8 0.000000 -0:9 Test condition and select ( temp void) -0:9 Condition -0:9 Constant: -0:9 true (const bool) -0:9 true case -0:10 Branch: Return with expression -0:10 Constant: -0:10 0.000000 -0:10 0.000000 -0:10 0.000000 -0:10 0.000000 -0:11 Test condition and select ( temp void) -0:11 Condition -0:11 Constant: -0:11 false (const bool) -0:11 true case -0:12 Branch: Return with expression -0:12 Constant: -0:12 0.000000 -0:12 0.000000 -0:12 0.000000 -0:12 0.000000 -0:13 Test condition and select ( temp void) -0:13 Condition -0:13 Constant: -0:13 false (const bool) -0:13 true case -0:14 Branch: Return with expression -0:14 Constant: -0:14 0.000000 -0:14 0.000000 -0:14 0.000000 -0:14 0.000000 -0:15 Test condition and select ( temp void) -0:15 Condition -0:15 Constant: -0:15 true (const bool) -0:15 true case -0:16 Branch: Return with expression -0:16 Constant: -0:16 0.000000 -0:16 0.000000 -0:16 0.000000 -0:16 0.000000 -0:17 Test condition and select ( temp void) -0:17 Condition -0:17 Constant: -0:17 false (const bool) -0:17 true case -0:18 Branch: Return with expression -0:18 Constant: -0:18 0.000000 -0:18 0.000000 -0:18 0.000000 -0:18 0.000000 -0:19 Test condition and select ( temp void) -0:19 Condition -0:19 Constant: -0:19 true (const bool) -0:19 true case -0:20 Branch: Return with expression -0:20 Constant: -0:20 0.000000 -0:20 0.000000 -0:20 0.000000 -0:20 0.000000 -0:21 Test condition and select ( temp void) -0:21 Condition -0:21 Constant: -0:21 true (const bool) -0:21 true case -0:22 Branch: Return with expression -0:22 Constant: -0:22 0.000000 -0:22 0.000000 -0:22 0.000000 -0:22 0.000000 -0:2 Function Definition: main( ( temp void) -0:2 Function Parameters: -0:? Sequence -0:2 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:2 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 50 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 48 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 9 "@main(" - Name 48 "@entryPointOutput" - Decorate 48(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 11: TypeBool - 12: 11(bool) ConstantFalse - 15: 6(float) Constant 0 - 16: 7(fvec4) ConstantComposite 15 15 15 15 - 21: 11(bool) ConstantTrue - 47: TypePointer Output 7(fvec4) -48(@entryPointOutput): 47(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 49: 7(fvec4) FunctionCall 9(@main() - Store 48(@entryPointOutput) 49 - Return - FunctionEnd - 9(@main(): 7(fvec4) Function None 8 - 10: Label - SelectionMerge 14 None - BranchConditional 12 13 14 - 13: Label - ReturnValue 16 - 14: Label - SelectionMerge 19 None - BranchConditional 12 18 19 - 18: Label - ReturnValue 16 - 19: Label - SelectionMerge 23 None - BranchConditional 21 22 23 - 22: Label - ReturnValue 16 - 23: Label - SelectionMerge 26 None - BranchConditional 21 25 26 - 25: Label - ReturnValue 16 - 26: Label - SelectionMerge 29 None - BranchConditional 12 28 29 - 28: Label - ReturnValue 16 - 29: Label - SelectionMerge 32 None - BranchConditional 12 31 32 - 31: Label - ReturnValue 16 - 32: Label - SelectionMerge 35 None - BranchConditional 21 34 35 - 34: Label - ReturnValue 16 - 35: Label - SelectionMerge 38 None - BranchConditional 12 37 38 - 37: Label - ReturnValue 16 - 38: Label - SelectionMerge 41 None - BranchConditional 21 40 41 - 40: Label - ReturnValue 16 - 41: Label - SelectionMerge 44 None - BranchConditional 21 43 44 - 43: Label - ReturnValue 16 - 44: Label - 46: 7(fvec4) Undef - ReturnValue 46 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.loopattr.frag.out b/deps/glslang/Test/baseResults/hlsl.loopattr.frag.out deleted file mode 100644 index ea37109d..00000000 --- a/deps/glslang/Test/baseResults/hlsl.loopattr.frag.out +++ /dev/null @@ -1,233 +0,0 @@ -hlsl.loopattr.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:3 Function Definition: @main( ( temp 4-component vector of float) -0:3 Function Parameters: -0:? Sequence -0:5 Sequence -0:5 move second child to first child ( temp int) -0:5 'x' ( temp int) -0:5 Constant: -0:5 0 (const int) -0:5 Loop with condition tested first: Unroll -0:5 Loop Condition -0:5 Compare Less Than ( temp bool) -0:5 'x' ( temp int) -0:5 Constant: -0:5 5 (const int) -0:5 No loop body -0:5 Loop Terminal Expression -0:5 Pre-Increment ( temp int) -0:5 'x' ( temp int) -0:8 Sequence -0:8 move second child to first child ( temp int) -0:8 'y' ( temp int) -0:8 Constant: -0:8 0 (const int) -0:8 Loop with condition tested first: DontUnroll -0:8 Loop Condition -0:8 Compare Less Than ( temp bool) -0:8 'y' ( temp int) -0:8 Constant: -0:8 5 (const int) -0:8 No loop body -0:8 Loop Terminal Expression -0:8 Pre-Increment ( temp int) -0:8 'y' ( temp int) -0:11 Sequence -0:11 move second child to first child ( temp int) -0:11 'z' ( temp int) -0:11 Constant: -0:11 0 (const int) -0:11 Loop with condition tested first -0:11 Loop Condition -0:11 Compare Less Than ( temp bool) -0:11 'z' ( temp int) -0:11 Constant: -0:11 5 (const int) -0:11 No loop body -0:11 Loop Terminal Expression -0:11 Pre-Increment ( temp int) -0:11 'z' ( temp int) -0:13 Branch: Return with expression -0:13 Constant: -0:13 0.000000 -0:13 0.000000 -0:13 0.000000 -0:13 0.000000 -0:3 Function Definition: main( ( temp void) -0:3 Function Parameters: -0:? Sequence -0:3 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:3 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:3 Function Definition: @main( ( temp 4-component vector of float) -0:3 Function Parameters: -0:? Sequence -0:5 Sequence -0:5 move second child to first child ( temp int) -0:5 'x' ( temp int) -0:5 Constant: -0:5 0 (const int) -0:5 Loop with condition tested first: Unroll -0:5 Loop Condition -0:5 Compare Less Than ( temp bool) -0:5 'x' ( temp int) -0:5 Constant: -0:5 5 (const int) -0:5 No loop body -0:5 Loop Terminal Expression -0:5 Pre-Increment ( temp int) -0:5 'x' ( temp int) -0:8 Sequence -0:8 move second child to first child ( temp int) -0:8 'y' ( temp int) -0:8 Constant: -0:8 0 (const int) -0:8 Loop with condition tested first: DontUnroll -0:8 Loop Condition -0:8 Compare Less Than ( temp bool) -0:8 'y' ( temp int) -0:8 Constant: -0:8 5 (const int) -0:8 No loop body -0:8 Loop Terminal Expression -0:8 Pre-Increment ( temp int) -0:8 'y' ( temp int) -0:11 Sequence -0:11 move second child to first child ( temp int) -0:11 'z' ( temp int) -0:11 Constant: -0:11 0 (const int) -0:11 Loop with condition tested first -0:11 Loop Condition -0:11 Compare Less Than ( temp bool) -0:11 'z' ( temp int) -0:11 Constant: -0:11 5 (const int) -0:11 No loop body -0:11 Loop Terminal Expression -0:11 Pre-Increment ( temp int) -0:11 'z' ( temp int) -0:13 Branch: Return with expression -0:13 Constant: -0:13 0.000000 -0:13 0.000000 -0:13 0.000000 -0:13 0.000000 -0:3 Function Definition: main( ( temp void) -0:3 Function Parameters: -0:? Sequence -0:3 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:3 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 54 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 52 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 9 "@main(" - Name 13 "x" - Name 27 "y" - Name 37 "z" - Name 52 "@entryPointOutput" - Decorate 52(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 11: TypeInt 32 1 - 12: TypePointer Function 11(int) - 14: 11(int) Constant 0 - 21: 11(int) Constant 5 - 22: TypeBool - 25: 11(int) Constant 1 - 47: 6(float) Constant 0 - 48: 7(fvec4) ConstantComposite 47 47 47 47 - 51: TypePointer Output 7(fvec4) -52(@entryPointOutput): 51(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 53: 7(fvec4) FunctionCall 9(@main() - Store 52(@entryPointOutput) 53 - Return - FunctionEnd - 9(@main(): 7(fvec4) Function None 8 - 10: Label - 13(x): 12(ptr) Variable Function - 27(y): 12(ptr) Variable Function - 37(z): 12(ptr) Variable Function - Store 13(x) 14 - Branch 15 - 15: Label - LoopMerge 17 18 Unroll - Branch 19 - 19: Label - 20: 11(int) Load 13(x) - 23: 22(bool) SLessThan 20 21 - BranchConditional 23 16 17 - 16: Label - Branch 18 - 18: Label - 24: 11(int) Load 13(x) - 26: 11(int) IAdd 24 25 - Store 13(x) 26 - Branch 15 - 17: Label - Store 27(y) 14 - Branch 28 - 28: Label - LoopMerge 30 31 DontUnroll - Branch 32 - 32: Label - 33: 11(int) Load 27(y) - 34: 22(bool) SLessThan 33 21 - BranchConditional 34 29 30 - 29: Label - Branch 31 - 31: Label - 35: 11(int) Load 27(y) - 36: 11(int) IAdd 35 25 - Store 27(y) 36 - Branch 28 - 30: Label - Store 37(z) 14 - Branch 38 - 38: Label - LoopMerge 40 41 None - Branch 42 - 42: Label - 43: 11(int) Load 37(z) - 44: 22(bool) SLessThan 43 21 - BranchConditional 44 39 40 - 39: Label - Branch 41 - 41: Label - 45: 11(int) Load 37(z) - 46: 11(int) IAdd 45 25 - Store 37(z) 46 - Branch 38 - 40: Label - ReturnValue 48 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.matNx1.frag.out b/deps/glslang/Test/baseResults/hlsl.matNx1.frag.out deleted file mode 100644 index 48a7180b..00000000 --- a/deps/glslang/Test/baseResults/hlsl.matNx1.frag.out +++ /dev/null @@ -1,276 +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) - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// 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/Test/baseResults/hlsl.matType.bool.frag.out b/deps/glslang/Test/baseResults/hlsl.matType.bool.frag.out deleted file mode 100644 index 500b311c..00000000 --- a/deps/glslang/Test/baseResults/hlsl.matType.bool.frag.out +++ /dev/null @@ -1,434 +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:51 Constant: -0:51 0.000000 -0:51 0.000000 -0:51 0.000000 -0:51 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:51 Constant: -0:51 0.000000 -0:51 0.000000 -0:51 0.000000 -0:51 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) - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// 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/Test/baseResults/hlsl.matType.frag.out b/deps/glslang/Test/baseResults/hlsl.matType.frag.out deleted file mode 100644 index 1117df1d..00000000 --- a/deps/glslang/Test/baseResults/hlsl.matType.frag.out +++ /dev/null @@ -1,105 +0,0 @@ -hlsl.matType.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:9 Function Definition: ShaderFunction(vf1;f1; ( temp 1-component vector of float) -0:9 Function Parameters: -0:9 'inFloat1' ( in 1-component vector of float) -0:9 'inScalar' ( in float) -0:? Sequence -0:10 Branch: Return with expression -0:10 'inFloat1' ( in 1-component vector of float) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 1-component vector of float f1, uniform 1X1 matrix of float fmat11, uniform 4X1 matrix of float fmat41, uniform 1X2 matrix of float fmat12, uniform 2X3 matrix of double dmat23, uniform 4X4 matrix of int int44}) - - -Linked fragment stage: - -WARNING: Linking fragment stage: Entry point not found - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:9 Function Definition: ShaderFunction(vf1;f1; ( temp 1-component vector of float) -0:9 Function Parameters: -0:9 'inFloat1' ( in 1-component vector of float) -0:9 'inScalar' ( in float) -0:? Sequence -0:10 Branch: Return with expression -0:10 'inFloat1' ( in 1-component vector of float) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 1-component vector of float f1, uniform 1X1 matrix of float fmat11, uniform 4X1 matrix of float fmat41, uniform 1X2 matrix of float fmat12, uniform 2X3 matrix of double dmat23, uniform 4X4 matrix of int int44}) - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 30 - - Capability Shader - Capability Float64 - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "PixelShaderFunction" - Name 11 "ShaderFunction(vf1;f1;" - Name 9 "inFloat1" - Name 10 "inScalar" - Name 27 "$Global" - MemberName 27($Global) 0 "f1" - MemberName 27($Global) 1 "fmat11" - MemberName 27($Global) 2 "fmat41" - MemberName 27($Global) 3 "fmat12" - MemberName 27($Global) 4 "dmat23" - MemberName 27($Global) 5 "int44" - Name 29 "" - MemberDecorate 27($Global) 0 Offset 0 - MemberDecorate 27($Global) 1 RowMajor - MemberDecorate 27($Global) 1 Offset 16 - MemberDecorate 27($Global) 1 MatrixStride 16 - MemberDecorate 27($Global) 2 RowMajor - MemberDecorate 27($Global) 2 Offset 32 - MemberDecorate 27($Global) 2 MatrixStride 16 - MemberDecorate 27($Global) 3 RowMajor - MemberDecorate 27($Global) 3 Offset 48 - MemberDecorate 27($Global) 3 MatrixStride 16 - MemberDecorate 27($Global) 4 RowMajor - MemberDecorate 27($Global) 4 Offset 80 - MemberDecorate 27($Global) 4 MatrixStride 16 - MemberDecorate 27($Global) 5 RowMajor - MemberDecorate 27($Global) 5 Offset 128 - MemberDecorate 27($Global) 5 MatrixStride 16 - Decorate 27($Global) Block - Decorate 29 DescriptorSet 0 - Decorate 29 Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypePointer Function 6(float) - 8: TypeFunction 6(float) 7(ptr) 7(ptr) - 16: TypeVector 6(float) 1 - 17: TypeMatrix 16(fvec) 1 - 18: TypeMatrix 16(fvec) 4 - 19: TypeVector 6(float) 2 - 20: TypeMatrix 19(fvec2) 1 - 21: TypeFloat 64 - 22: TypeVector 21(float64_t) 3 - 23: TypeMatrix 22(f64vec3) 2 - 24: TypeInt 32 1 - 25: TypeVector 24(int) 4 - 26: TypeMatrix 25(ivec4) 4 - 27($Global): TypeStruct 6(float) 17 18 20 23 26 - 28: TypePointer Uniform 27($Global) - 29: 28(ptr) Variable Uniform -4(PixelShaderFunction): 2 Function None 3 - 5: Label - Return - FunctionEnd -11(ShaderFunction(vf1;f1;): 6(float) Function None 8 - 9(inFloat1): 7(ptr) FunctionParameter - 10(inScalar): 7(ptr) FunctionParameter - 12: Label - 13: 6(float) Load 9(inFloat1) - ReturnValue 13 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.matType.int.frag.out b/deps/glslang/Test/baseResults/hlsl.matType.int.frag.out deleted file mode 100644 index a99bd15f..00000000 --- a/deps/glslang/Test/baseResults/hlsl.matType.int.frag.out +++ /dev/null @@ -1,753 +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:95 Constant: -0:95 0.000000 -0:95 0.000000 -0:95 0.000000 -0:95 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:95 Constant: -0:95 0.000000 -0:95 0.000000 -0:95 0.000000 -0:95 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) - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// 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/Test/baseResults/hlsl.matpack-1.frag.out b/deps/glslang/Test/baseResults/hlsl.matpack-1.frag.out deleted file mode 100644 index c480f780..00000000 --- a/deps/glslang/Test/baseResults/hlsl.matpack-1.frag.out +++ /dev/null @@ -1,188 +0,0 @@ -hlsl.matpack-1.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:23 Function Definition: @main( ( temp 4-component vector of float) -0:23 Function Parameters: -0:? Sequence -0:25 Branch: Return with expression -0:24 add ( temp 4-component vector of float) -0:24 vector-times-matrix ( temp 4-component vector of float) -0:24 vec1: direct index for structure ( temp 4-component vector of float) -0:24 g_MyBuffer1: direct index for structure (layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, temp 4-component vector of float vec1, temp float foo}) -0:24 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, temp 4-component vector of float vec1, temp float foo} g_MyBuffer1, layout( row_major std140) uniform structure{layout( column_major) temp 4X4 matrix of float mat1, temp 4-component vector of float vec1} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) -0:24 Constant: -0:24 0 (const uint) -0:24 Constant: -0:24 2 (const int) -0:24 mat1: direct index for structure (layout( row_major) temp 4X4 matrix of float) -0:24 g_MyBuffer1: direct index for structure (layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, temp 4-component vector of float vec1, temp float foo}) -0:24 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, temp 4-component vector of float vec1, temp float foo} g_MyBuffer1, layout( row_major std140) uniform structure{layout( column_major) temp 4X4 matrix of float mat1, temp 4-component vector of float vec1} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) -0:24 Constant: -0:24 0 (const uint) -0:24 Constant: -0:24 0 (const int) -0:25 vector-times-matrix ( temp 4-component vector of float) -0:25 vec1: direct index for structure ( temp 4-component vector of float) -0:25 g_MyBuffer2: direct index for structure (layout( row_major std140) uniform structure{layout( column_major) temp 4X4 matrix of float mat1, temp 4-component vector of float vec1}) -0:25 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, temp 4-component vector of float vec1, temp float foo} g_MyBuffer1, layout( row_major std140) uniform structure{layout( column_major) temp 4X4 matrix of float mat1, temp 4-component vector of float vec1} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) -0:25 Constant: -0:25 1 (const uint) -0:25 Constant: -0:25 1 (const int) -0:25 mat1: direct index for structure (layout( column_major) temp 4X4 matrix of float) -0:25 g_MyBuffer2: direct index for structure (layout( row_major std140) uniform structure{layout( column_major) temp 4X4 matrix of float mat1, temp 4-component vector of float vec1}) -0:25 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, temp 4-component vector of float vec1, temp float foo} g_MyBuffer1, layout( row_major std140) uniform structure{layout( column_major) temp 4X4 matrix of float mat1, temp 4-component vector of float vec1} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) -0:25 Constant: -0:25 1 (const uint) -0:25 Constant: -0:25 0 (const int) -0:23 Function Definition: main( ( temp void) -0:23 Function Parameters: -0:? Sequence -0:23 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:23 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, temp 4-component vector of float vec1, temp float foo} g_MyBuffer1, layout( row_major std140) uniform structure{layout( column_major) temp 4X4 matrix of float mat1, temp 4-component vector of float vec1} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:23 Function Definition: @main( ( temp 4-component vector of float) -0:23 Function Parameters: -0:? Sequence -0:25 Branch: Return with expression -0:24 add ( temp 4-component vector of float) -0:24 vector-times-matrix ( temp 4-component vector of float) -0:24 vec1: direct index for structure ( temp 4-component vector of float) -0:24 g_MyBuffer1: direct index for structure (layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, temp 4-component vector of float vec1, temp float foo}) -0:24 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, temp 4-component vector of float vec1, temp float foo} g_MyBuffer1, layout( row_major std140) uniform structure{layout( column_major) temp 4X4 matrix of float mat1, temp 4-component vector of float vec1} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) -0:24 Constant: -0:24 0 (const uint) -0:24 Constant: -0:24 2 (const int) -0:24 mat1: direct index for structure (layout( row_major) temp 4X4 matrix of float) -0:24 g_MyBuffer1: direct index for structure (layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, temp 4-component vector of float vec1, temp float foo}) -0:24 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, temp 4-component vector of float vec1, temp float foo} g_MyBuffer1, layout( row_major std140) uniform structure{layout( column_major) temp 4X4 matrix of float mat1, temp 4-component vector of float vec1} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) -0:24 Constant: -0:24 0 (const uint) -0:24 Constant: -0:24 0 (const int) -0:25 vector-times-matrix ( temp 4-component vector of float) -0:25 vec1: direct index for structure ( temp 4-component vector of float) -0:25 g_MyBuffer2: direct index for structure (layout( row_major std140) uniform structure{layout( column_major) temp 4X4 matrix of float mat1, temp 4-component vector of float vec1}) -0:25 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, temp 4-component vector of float vec1, temp float foo} g_MyBuffer1, layout( row_major std140) uniform structure{layout( column_major) temp 4X4 matrix of float mat1, temp 4-component vector of float vec1} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) -0:25 Constant: -0:25 1 (const uint) -0:25 Constant: -0:25 1 (const int) -0:25 mat1: direct index for structure (layout( column_major) temp 4X4 matrix of float) -0:25 g_MyBuffer2: direct index for structure (layout( row_major std140) uniform structure{layout( column_major) temp 4X4 matrix of float mat1, temp 4-component vector of float vec1}) -0:25 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, temp 4-component vector of float vec1, temp float foo} g_MyBuffer1, layout( row_major std140) uniform structure{layout( column_major) temp 4X4 matrix of float mat1, temp 4-component vector of float vec1} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) -0:25 Constant: -0:25 1 (const uint) -0:25 Constant: -0:25 0 (const int) -0:23 Function Definition: main( ( temp void) -0:23 Function Parameters: -0:? Sequence -0:23 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:23 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, temp 4-component vector of float vec1, temp float foo} g_MyBuffer1, layout( row_major std140) uniform structure{layout( column_major) temp 4X4 matrix of float mat1, temp 4-component vector of float vec1} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 39 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 37 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 9 "@main(" - Name 12 "MyBuffer1" - MemberName 12(MyBuffer1) 0 "mat1" - MemberName 12(MyBuffer1) 1 "mat2" - MemberName 12(MyBuffer1) 2 "vec1" - MemberName 12(MyBuffer1) 3 "foo" - Name 13 "MyBuffer2" - MemberName 13(MyBuffer2) 0 "mat1" - MemberName 13(MyBuffer2) 1 "vec1" - Name 14 "Example" - MemberName 14(Example) 0 "g_MyBuffer1" - MemberName 14(Example) 1 "g_MyBuffer2" - MemberName 14(Example) 2 "mat1a" - Name 16 "" - Name 37 "@entryPointOutput" - MemberDecorate 12(MyBuffer1) 0 RowMajor - MemberDecorate 12(MyBuffer1) 0 Offset 0 - MemberDecorate 12(MyBuffer1) 0 MatrixStride 16 - MemberDecorate 12(MyBuffer1) 1 ColMajor - MemberDecorate 12(MyBuffer1) 1 Offset 64 - MemberDecorate 12(MyBuffer1) 1 MatrixStride 16 - MemberDecorate 12(MyBuffer1) 2 Offset 128 - MemberDecorate 12(MyBuffer1) 3 Offset 144 - MemberDecorate 13(MyBuffer2) 0 ColMajor - MemberDecorate 13(MyBuffer2) 0 Offset 0 - MemberDecorate 13(MyBuffer2) 0 MatrixStride 16 - MemberDecorate 13(MyBuffer2) 1 Offset 64 - MemberDecorate 14(Example) 0 Offset 0 - MemberDecorate 14(Example) 1 Offset 160 - MemberDecorate 14(Example) 2 RowMajor - MemberDecorate 14(Example) 2 Offset 240 - MemberDecorate 14(Example) 2 MatrixStride 16 - Decorate 14(Example) Block - Decorate 16 DescriptorSet 0 - Decorate 16 Binding 0 - Decorate 37(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 11: TypeMatrix 7(fvec4) 4 - 12(MyBuffer1): TypeStruct 11 11 7(fvec4) 6(float) - 13(MyBuffer2): TypeStruct 11 7(fvec4) - 14(Example): TypeStruct 12(MyBuffer1) 13(MyBuffer2) 11 - 15: TypePointer Uniform 14(Example) - 16: 15(ptr) Variable Uniform - 17: TypeInt 32 1 - 18: 17(int) Constant 0 - 19: 17(int) Constant 2 - 20: TypePointer Uniform 7(fvec4) - 23: TypePointer Uniform 11 - 27: 17(int) Constant 1 - 36: TypePointer Output 7(fvec4) -37(@entryPointOutput): 36(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 38: 7(fvec4) FunctionCall 9(@main() - Store 37(@entryPointOutput) 38 - Return - FunctionEnd - 9(@main(): 7(fvec4) Function None 8 - 10: Label - 21: 20(ptr) AccessChain 16 18 19 - 22: 7(fvec4) Load 21 - 24: 23(ptr) AccessChain 16 18 18 - 25: 11 Load 24 - 26: 7(fvec4) VectorTimesMatrix 22 25 - 28: 20(ptr) AccessChain 16 27 27 - 29: 7(fvec4) Load 28 - 30: 23(ptr) AccessChain 16 27 18 - 31: 11 Load 30 - 32: 7(fvec4) VectorTimesMatrix 29 31 - 33: 7(fvec4) FAdd 26 32 - ReturnValue 33 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.matpack-pragma-global.frag.out b/deps/glslang/Test/baseResults/hlsl.matpack-pragma-global.frag.out deleted file mode 100644 index 2feef9e9..00000000 --- a/deps/glslang/Test/baseResults/hlsl.matpack-pragma-global.frag.out +++ /dev/null @@ -1,102 +0,0 @@ -hlsl.matpack-pragma-global.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:6 Function Definition: @main( ( temp 4-component vector of float) -0:6 Function Parameters: -0:? Sequence -0:7 Branch: Return with expression -0:7 direct index ( temp 4-component vector of float) -0:7 g_GlobalMat1: direct index for structure ( uniform 4X4 matrix of float) -0:7 'anon@0' (layout( column_major std140) uniform block{ uniform 4X4 matrix of float g_GlobalMat1}) -0:7 Constant: -0:7 0 (const uint) -0:7 Constant: -0:7 0 (const int) -0:6 Function Definition: main( ( temp void) -0:6 Function Parameters: -0:? Sequence -0:6 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:6 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'anon@0' (layout( column_major std140) uniform block{ uniform 4X4 matrix of float g_GlobalMat1}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:6 Function Definition: @main( ( temp 4-component vector of float) -0:6 Function Parameters: -0:? Sequence -0:7 Branch: Return with expression -0:7 direct index ( temp 4-component vector of float) -0:7 g_GlobalMat1: direct index for structure ( uniform 4X4 matrix of float) -0:7 'anon@0' (layout( column_major std140) uniform block{ uniform 4X4 matrix of float g_GlobalMat1}) -0:7 Constant: -0:7 0 (const uint) -0:7 Constant: -0:7 0 (const int) -0:6 Function Definition: main( ( temp void) -0:6 Function Parameters: -0:? Sequence -0:6 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:6 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'anon@0' (layout( column_major std140) uniform block{ uniform 4X4 matrix of float g_GlobalMat1}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 25 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 23 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 9 "@main(" - Name 12 "$Global" - MemberName 12($Global) 0 "g_GlobalMat1" - Name 14 "" - Name 23 "@entryPointOutput" - MemberDecorate 12($Global) 0 ColMajor - MemberDecorate 12($Global) 0 Offset 0 - MemberDecorate 12($Global) 0 MatrixStride 16 - Decorate 12($Global) Block - Decorate 14 DescriptorSet 0 - Decorate 14 Binding 0 - Decorate 23(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 11: TypeMatrix 7(fvec4) 4 - 12($Global): TypeStruct 11 - 13: TypePointer Uniform 12($Global) - 14: 13(ptr) Variable Uniform - 15: TypeInt 32 1 - 16: 15(int) Constant 0 - 17: TypePointer Uniform 7(fvec4) - 22: TypePointer Output 7(fvec4) -23(@entryPointOutput): 22(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 24: 7(fvec4) FunctionCall 9(@main() - Store 23(@entryPointOutput) 24 - Return - FunctionEnd - 9(@main(): 7(fvec4) Function None 8 - 10: Label - 18: 17(ptr) AccessChain 14 16 16 - 19: 7(fvec4) Load 18 - ReturnValue 19 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.matpack-pragma.frag.out b/deps/glslang/Test/baseResults/hlsl.matpack-pragma.frag.out deleted file mode 100644 index bd5ca50c..00000000 --- a/deps/glslang/Test/baseResults/hlsl.matpack-pragma.frag.out +++ /dev/null @@ -1,269 +0,0 @@ -hlsl.matpack-pragma.frag -WARNING: 0:19: 'random_string_foo' : unknown pack_matrix pragma value - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:29 Function Definition: @main( ( temp 4-component vector of float) -0:29 Function Parameters: -0:? Sequence -0:32 Branch: Return with expression -0:32 add ( temp 4-component vector of float) -0:32 add ( temp 4-component vector of float) -0:31 add ( temp 4-component vector of float) -0:31 add ( temp 4-component vector of float) -0:31 add ( temp 4-component vector of float) -0:31 direct index (layout( row_major) temp 4-component vector of float) -0:31 mat1: direct index for structure (layout( row_major) temp 4X4 matrix of float) -0:31 g_MyBuffer1: direct index for structure (layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3}) -0:31 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3} g_MyBuffer1, layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) -0:31 Constant: -0:31 0 (const uint) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 0 (const int) -0:31 direct index (layout( column_major) temp 4-component vector of float) -0:31 mat2: direct index for structure (layout( column_major) temp 4X4 matrix of float) -0:31 g_MyBuffer1: direct index for structure (layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3}) -0:31 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3} g_MyBuffer1, layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) -0:31 Constant: -0:31 0 (const uint) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 0 (const int) -0:31 direct index (layout( column_major) temp 4-component vector of float) -0:31 mat3: direct index for structure (layout( column_major) temp 4X4 matrix of float) -0:31 g_MyBuffer1: direct index for structure (layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3}) -0:31 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3} g_MyBuffer1, layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) -0:31 Constant: -0:31 0 (const uint) -0:31 Constant: -0:31 2 (const int) -0:31 Constant: -0:31 0 (const int) -0:32 direct index (layout( row_major) temp 4-component vector of float) -0:32 mat1: direct index for structure (layout( row_major) temp 4X4 matrix of float) -0:32 g_MyBuffer2: direct index for structure (layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3}) -0:32 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3} g_MyBuffer1, layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) -0:32 Constant: -0:32 1 (const uint) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 0 (const int) -0:32 direct index (layout( column_major) temp 4-component vector of float) -0:32 mat2: direct index for structure (layout( column_major) temp 4X4 matrix of float) -0:32 g_MyBuffer2: direct index for structure (layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3}) -0:32 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3} g_MyBuffer1, layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) -0:32 Constant: -0:32 1 (const uint) -0:32 Constant: -0:32 1 (const int) -0:32 Constant: -0:32 0 (const int) -0:32 direct index (layout( row_major) temp 4-component vector of float) -0:32 mat3: direct index for structure (layout( row_major) temp 4X4 matrix of float) -0:32 g_MyBuffer2: direct index for structure (layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3}) -0:32 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3} g_MyBuffer1, layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) -0:32 Constant: -0:32 1 (const uint) -0:32 Constant: -0:32 2 (const int) -0:32 Constant: -0:32 0 (const int) -0:29 Function Definition: main( ( temp void) -0:29 Function Parameters: -0:? Sequence -0:29 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:29 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3} g_MyBuffer1, layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:29 Function Definition: @main( ( temp 4-component vector of float) -0:29 Function Parameters: -0:? Sequence -0:32 Branch: Return with expression -0:32 add ( temp 4-component vector of float) -0:32 add ( temp 4-component vector of float) -0:31 add ( temp 4-component vector of float) -0:31 add ( temp 4-component vector of float) -0:31 add ( temp 4-component vector of float) -0:31 direct index (layout( row_major) temp 4-component vector of float) -0:31 mat1: direct index for structure (layout( row_major) temp 4X4 matrix of float) -0:31 g_MyBuffer1: direct index for structure (layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3}) -0:31 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3} g_MyBuffer1, layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) -0:31 Constant: -0:31 0 (const uint) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 0 (const int) -0:31 direct index (layout( column_major) temp 4-component vector of float) -0:31 mat2: direct index for structure (layout( column_major) temp 4X4 matrix of float) -0:31 g_MyBuffer1: direct index for structure (layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3}) -0:31 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3} g_MyBuffer1, layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) -0:31 Constant: -0:31 0 (const uint) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 0 (const int) -0:31 direct index (layout( column_major) temp 4-component vector of float) -0:31 mat3: direct index for structure (layout( column_major) temp 4X4 matrix of float) -0:31 g_MyBuffer1: direct index for structure (layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3}) -0:31 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3} g_MyBuffer1, layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) -0:31 Constant: -0:31 0 (const uint) -0:31 Constant: -0:31 2 (const int) -0:31 Constant: -0:31 0 (const int) -0:32 direct index (layout( row_major) temp 4-component vector of float) -0:32 mat1: direct index for structure (layout( row_major) temp 4X4 matrix of float) -0:32 g_MyBuffer2: direct index for structure (layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3}) -0:32 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3} g_MyBuffer1, layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) -0:32 Constant: -0:32 1 (const uint) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 0 (const int) -0:32 direct index (layout( column_major) temp 4-component vector of float) -0:32 mat2: direct index for structure (layout( column_major) temp 4X4 matrix of float) -0:32 g_MyBuffer2: direct index for structure (layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3}) -0:32 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3} g_MyBuffer1, layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) -0:32 Constant: -0:32 1 (const uint) -0:32 Constant: -0:32 1 (const int) -0:32 Constant: -0:32 0 (const int) -0:32 direct index (layout( row_major) temp 4-component vector of float) -0:32 mat3: direct index for structure (layout( row_major) temp 4X4 matrix of float) -0:32 g_MyBuffer2: direct index for structure (layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3}) -0:32 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3} g_MyBuffer1, layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) -0:32 Constant: -0:32 1 (const uint) -0:32 Constant: -0:32 2 (const int) -0:32 Constant: -0:32 0 (const int) -0:29 Function Definition: main( ( temp void) -0:29 Function Parameters: -0:? Sequence -0:29 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:29 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3} g_MyBuffer1, layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 44 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 42 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 9 "@main(" - Name 12 "MyBuffer1" - MemberName 12(MyBuffer1) 0 "mat1" - MemberName 12(MyBuffer1) 1 "mat2" - MemberName 12(MyBuffer1) 2 "mat3" - Name 13 "MyBuffer2" - MemberName 13(MyBuffer2) 0 "mat1" - MemberName 13(MyBuffer2) 1 "mat2" - MemberName 13(MyBuffer2) 2 "mat3" - Name 14 "Example" - MemberName 14(Example) 0 "g_MyBuffer1" - MemberName 14(Example) 1 "g_MyBuffer2" - MemberName 14(Example) 2 "mat1a" - Name 16 "" - Name 42 "@entryPointOutput" - MemberDecorate 12(MyBuffer1) 0 RowMajor - MemberDecorate 12(MyBuffer1) 0 Offset 0 - MemberDecorate 12(MyBuffer1) 0 MatrixStride 16 - MemberDecorate 12(MyBuffer1) 1 ColMajor - MemberDecorate 12(MyBuffer1) 1 Offset 64 - MemberDecorate 12(MyBuffer1) 1 MatrixStride 16 - MemberDecorate 12(MyBuffer1) 2 ColMajor - MemberDecorate 12(MyBuffer1) 2 Offset 128 - MemberDecorate 12(MyBuffer1) 2 MatrixStride 16 - MemberDecorate 13(MyBuffer2) 0 RowMajor - MemberDecorate 13(MyBuffer2) 0 Offset 0 - MemberDecorate 13(MyBuffer2) 0 MatrixStride 16 - MemberDecorate 13(MyBuffer2) 1 ColMajor - MemberDecorate 13(MyBuffer2) 1 Offset 64 - MemberDecorate 13(MyBuffer2) 1 MatrixStride 16 - MemberDecorate 13(MyBuffer2) 2 RowMajor - MemberDecorate 13(MyBuffer2) 2 Offset 128 - MemberDecorate 13(MyBuffer2) 2 MatrixStride 16 - MemberDecorate 14(Example) 0 Offset 0 - MemberDecorate 14(Example) 1 Offset 192 - MemberDecorate 14(Example) 2 RowMajor - MemberDecorate 14(Example) 2 Offset 384 - MemberDecorate 14(Example) 2 MatrixStride 16 - Decorate 14(Example) Block - Decorate 16 DescriptorSet 0 - Decorate 16 Binding 0 - Decorate 42(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 11: TypeMatrix 7(fvec4) 4 - 12(MyBuffer1): TypeStruct 11 11 11 - 13(MyBuffer2): TypeStruct 11 11 11 - 14(Example): TypeStruct 12(MyBuffer1) 13(MyBuffer2) 11 - 15: TypePointer Uniform 14(Example) - 16: 15(ptr) Variable Uniform - 17: TypeInt 32 1 - 18: 17(int) Constant 0 - 19: TypePointer Uniform 7(fvec4) - 22: 17(int) Constant 1 - 26: 17(int) Constant 2 - 41: TypePointer Output 7(fvec4) -42(@entryPointOutput): 41(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 43: 7(fvec4) FunctionCall 9(@main() - Store 42(@entryPointOutput) 43 - Return - FunctionEnd - 9(@main(): 7(fvec4) Function None 8 - 10: Label - 20: 19(ptr) AccessChain 16 18 18 18 - 21: 7(fvec4) Load 20 - 23: 19(ptr) AccessChain 16 18 22 18 - 24: 7(fvec4) Load 23 - 25: 7(fvec4) FAdd 21 24 - 27: 19(ptr) AccessChain 16 18 26 18 - 28: 7(fvec4) Load 27 - 29: 7(fvec4) FAdd 25 28 - 30: 19(ptr) AccessChain 16 22 18 18 - 31: 7(fvec4) Load 30 - 32: 7(fvec4) FAdd 29 31 - 33: 19(ptr) AccessChain 16 22 22 18 - 34: 7(fvec4) Load 33 - 35: 7(fvec4) FAdd 32 34 - 36: 19(ptr) AccessChain 16 22 26 18 - 37: 7(fvec4) Load 36 - 38: 7(fvec4) FAdd 35 37 - ReturnValue 38 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.matrixSwizzle.vert.out b/deps/glslang/Test/baseResults/hlsl.matrixSwizzle.vert.out deleted file mode 100644 index 4082cb27..00000000 --- a/deps/glslang/Test/baseResults/hlsl.matrixSwizzle.vert.out +++ /dev/null @@ -1,852 +0,0 @@ -hlsl.matrixSwizzle.vert -Shader version: 500 -0:? Sequence -0:2 Function Definition: @ShaderFunction(f1; ( temp void) -0:2 Function Parameters: -0:2 'inf' ( in float) -0:? Sequence -0:7 move second child to first child ( temp float) -0:7 direct index ( temp float) -0:7 direct index ( temp 4-component vector of float) -0:7 'm' ( temp 3X4 matrix of float) -0:7 Constant: -0:7 2 (const int) -0:7 Constant: -0:7 3 (const int) -0:7 Constant: -0:7 1.000000 -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 direct index ( temp 4-component vector of float) -0:8 'm' ( temp 3X4 matrix of float) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 3 (const int) -0:8 Constant: -0:8 2.000000 -0:9 move second child to first child ( temp float) -0:9 direct index ( temp float) -0:9 direct index ( temp 4-component vector of float) -0:9 'm' ( temp 3X4 matrix of float) -0:9 Constant: -0:9 2 (const int) -0:9 Constant: -0:9 3 (const int) -0:9 Constant: -0:9 2.000000 -0:11 move second child to first child ( temp 4-component vector of float) -0:11 direct index ( temp 4-component vector of float) -0:11 'm' ( temp 3X4 matrix of float) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 3.000000 -0:11 3.000000 -0:11 3.000000 -0:11 3.000000 -0:12 move second child to first child ( temp 4-component vector of float) -0:12 direct index ( temp 4-component vector of float) -0:12 'm' ( temp 3X4 matrix of float) -0:12 Constant: -0:12 1 (const int) -0:12 Constant: -0:12 3.000000 -0:12 3.000000 -0:12 3.000000 -0:12 3.000000 -0:13 move second child to first child ( temp 4-component vector of float) -0:13 direct index ( temp 4-component vector of float) -0:13 'm' ( temp 3X4 matrix of float) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 3.000000 -0:13 3.000000 -0:13 3.000000 -0:13 3.000000 -0:? Sequence -0:18 move second child to first child ( temp float) -0:18 direct index ( temp float) -0:18 direct index ( temp 4-component vector of float) -0:18 'm' ( temp 3X4 matrix of float) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 direct index ( temp float) -0:18 'f3' ( temp 3-component vector of float) -0:18 Constant: -0:18 0 (const int) -0:18 move second child to first child ( temp float) -0:18 direct index ( temp float) -0:18 direct index ( temp 4-component vector of float) -0:18 'm' ( temp 3X4 matrix of float) -0:18 Constant: -0:18 1 (const int) -0:18 Constant: -0:18 1 (const int) -0:18 direct index ( temp float) -0:18 'f3' ( temp 3-component vector of float) -0:18 Constant: -0:18 1 (const int) -0:18 move second child to first child ( temp float) -0:18 direct index ( temp float) -0:18 direct index ( temp 4-component vector of float) -0:18 'm' ( temp 3X4 matrix of float) -0:18 Constant: -0:18 1 (const int) -0:18 Constant: -0:18 2 (const int) -0:18 direct index ( temp float) -0:18 'f3' ( temp 3-component vector of float) -0:18 Constant: -0:18 2 (const int) -0:19 Sequence -0:19 move second child to first child ( temp 3-component vector of float) -0:19 'intermVec' ( temp 3-component vector of float) -0:19 Constant: -0:19 5.000000 -0:19 5.000000 -0:19 5.000000 -0:19 move second child to first child ( temp float) -0:19 direct index ( temp float) -0:19 direct index ( temp 4-component vector of float) -0:19 'm' ( temp 3X4 matrix of float) -0:19 Constant: -0:19 1 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 direct index ( temp float) -0:19 'intermVec' ( temp 3-component vector of float) -0:19 Constant: -0:19 0 (const int) -0:19 move second child to first child ( temp float) -0:19 direct index ( temp float) -0:19 direct index ( temp 4-component vector of float) -0:19 'm' ( temp 3X4 matrix of float) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const int) -0:19 direct index ( temp float) -0:19 'intermVec' ( temp 3-component vector of float) -0:19 Constant: -0:19 1 (const int) -0:19 move second child to first child ( temp float) -0:19 direct index ( temp float) -0:19 direct index ( temp 4-component vector of float) -0:19 'm' ( temp 3X4 matrix of float) -0:19 Constant: -0:19 2 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 direct index ( temp float) -0:19 'intermVec' ( temp 3-component vector of float) -0:19 Constant: -0:19 2 (const int) -0:20 Sequence -0:20 move second child to first child ( temp 3-component vector of float) -0:20 'intermVec' ( temp 3-component vector of float) -0:20 vector-scale ( temp 3-component vector of float) -0:20 Constant: -0:20 2.000000 -0:20 'f3' ( temp 3-component vector of float) -0:20 move second child to first child ( temp float) -0:20 direct index ( temp float) -0:20 direct index ( temp 4-component vector of float) -0:20 'm' ( temp 3X4 matrix of float) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 direct index ( temp float) -0:20 'intermVec' ( temp 3-component vector of float) -0:20 Constant: -0:20 0 (const int) -0:20 move second child to first child ( temp float) -0:20 direct index ( temp float) -0:20 direct index ( temp 4-component vector of float) -0:20 'm' ( temp 3X4 matrix of float) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 direct index ( temp float) -0:20 'intermVec' ( temp 3-component vector of float) -0:20 Constant: -0:20 1 (const int) -0:20 move second child to first child ( temp float) -0:20 direct index ( temp float) -0:20 direct index ( temp 4-component vector of float) -0:20 'm' ( temp 3X4 matrix of float) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 direct index ( temp float) -0:20 'intermVec' ( temp 3-component vector of float) -0:20 Constant: -0:20 2 (const int) -0:23 move second child to first child ( temp 3-component vector of float) -0:23 'f3' ( temp 3-component vector of float) -0:23 matrix swizzle ( temp 3-component vector of float) -0:23 'm' ( temp 3X4 matrix of float) -0:23 Sequence -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 2 (const int) -0:23 Constant: -0:23 0 (const int) -0:2 Function Definition: ShaderFunction( ( temp void) -0:2 Function Parameters: -0:? Sequence -0:2 move second child to first child ( temp float) -0:? 'inf' ( temp float) -0:? 'inf' (layout( location=0) in float) -0:2 Function Call: @ShaderFunction(f1; ( temp void) -0:? 'inf' ( temp float) -0:27 Function Definition: createMat3x3(vf3;vf3;vf3; ( temp 3X3 matrix of float) -0:27 Function Parameters: -0:27 'a' ( in 3-component vector of float) -0:27 'b' ( in 3-component vector of float) -0:27 'c' ( in 3-component vector of float) -0:? Sequence -0:? Sequence -0:29 move second child to first child ( temp float) -0:29 direct index ( temp float) -0:29 direct index ( temp 3-component vector of float) -0:29 'm' ( temp 3X3 matrix of float) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 0 (const int) -0:29 direct index ( temp float) -0:29 'a' ( in 3-component vector of float) -0:29 Constant: -0:29 0 (const int) -0:29 move second child to first child ( temp float) -0:29 direct index ( temp float) -0:29 direct index ( temp 3-component vector of float) -0:29 'm' ( temp 3X3 matrix of float) -0:29 Constant: -0:29 1 (const int) -0:29 Constant: -0:29 0 (const int) -0:29 direct index ( temp float) -0:29 'a' ( in 3-component vector of float) -0:29 Constant: -0:29 1 (const int) -0:29 move second child to first child ( temp float) -0:29 direct index ( temp float) -0:29 direct index ( temp 3-component vector of float) -0:29 'm' ( temp 3X3 matrix of float) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 0 (const int) -0:29 direct index ( temp float) -0:29 'a' ( in 3-component vector of float) -0:29 Constant: -0:29 2 (const int) -0:? Sequence -0:30 move second child to first child ( temp float) -0:30 direct index ( temp float) -0:30 direct index ( temp 3-component vector of float) -0:30 'm' ( temp 3X3 matrix of float) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 direct index ( temp float) -0:30 'b' ( in 3-component vector of float) -0:30 Constant: -0:30 0 (const int) -0:30 move second child to first child ( temp float) -0:30 direct index ( temp float) -0:30 direct index ( temp 3-component vector of float) -0:30 'm' ( temp 3X3 matrix of float) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 direct index ( temp float) -0:30 'b' ( in 3-component vector of float) -0:30 Constant: -0:30 1 (const int) -0:30 move second child to first child ( temp float) -0:30 direct index ( temp float) -0:30 direct index ( temp 3-component vector of float) -0:30 'm' ( temp 3X3 matrix of float) -0:30 Constant: -0:30 2 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 direct index ( temp float) -0:30 'b' ( in 3-component vector of float) -0:30 Constant: -0:30 2 (const int) -0:? Sequence -0:31 move second child to first child ( temp float) -0:31 direct index ( temp float) -0:31 direct index ( temp 3-component vector of float) -0:31 'm' ( temp 3X3 matrix of float) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 direct index ( temp float) -0:31 'c' ( in 3-component vector of float) -0:31 Constant: -0:31 0 (const int) -0:31 move second child to first child ( temp float) -0:31 direct index ( temp float) -0:31 direct index ( temp 3-component vector of float) -0:31 'm' ( temp 3X3 matrix of float) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 direct index ( temp float) -0:31 'c' ( in 3-component vector of float) -0:31 Constant: -0:31 1 (const int) -0:31 move second child to first child ( temp float) -0:31 direct index ( temp float) -0:31 direct index ( temp 3-component vector of float) -0:31 'm' ( temp 3X3 matrix of float) -0:31 Constant: -0:31 2 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 direct index ( temp float) -0:31 'c' ( in 3-component vector of float) -0:31 Constant: -0:31 2 (const int) -0:32 Branch: Return with expression -0:32 'm' ( temp 3X3 matrix of float) -0:? Linker Objects -0:? 'inf' (layout( location=0) in float) - - -Linked vertex stage: - - -Shader version: 500 -0:? Sequence -0:2 Function Definition: @ShaderFunction(f1; ( temp void) -0:2 Function Parameters: -0:2 'inf' ( in float) -0:? Sequence -0:7 move second child to first child ( temp float) -0:7 direct index ( temp float) -0:7 direct index ( temp 4-component vector of float) -0:7 'm' ( temp 3X4 matrix of float) -0:7 Constant: -0:7 2 (const int) -0:7 Constant: -0:7 3 (const int) -0:7 Constant: -0:7 1.000000 -0:8 move second child to first child ( temp float) -0:8 direct index ( temp float) -0:8 direct index ( temp 4-component vector of float) -0:8 'm' ( temp 3X4 matrix of float) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 3 (const int) -0:8 Constant: -0:8 2.000000 -0:9 move second child to first child ( temp float) -0:9 direct index ( temp float) -0:9 direct index ( temp 4-component vector of float) -0:9 'm' ( temp 3X4 matrix of float) -0:9 Constant: -0:9 2 (const int) -0:9 Constant: -0:9 3 (const int) -0:9 Constant: -0:9 2.000000 -0:11 move second child to first child ( temp 4-component vector of float) -0:11 direct index ( temp 4-component vector of float) -0:11 'm' ( temp 3X4 matrix of float) -0:11 Constant: -0:11 0 (const int) -0:11 Constant: -0:11 3.000000 -0:11 3.000000 -0:11 3.000000 -0:11 3.000000 -0:12 move second child to first child ( temp 4-component vector of float) -0:12 direct index ( temp 4-component vector of float) -0:12 'm' ( temp 3X4 matrix of float) -0:12 Constant: -0:12 1 (const int) -0:12 Constant: -0:12 3.000000 -0:12 3.000000 -0:12 3.000000 -0:12 3.000000 -0:13 move second child to first child ( temp 4-component vector of float) -0:13 direct index ( temp 4-component vector of float) -0:13 'm' ( temp 3X4 matrix of float) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 3.000000 -0:13 3.000000 -0:13 3.000000 -0:13 3.000000 -0:? Sequence -0:18 move second child to first child ( temp float) -0:18 direct index ( temp float) -0:18 direct index ( temp 4-component vector of float) -0:18 'm' ( temp 3X4 matrix of float) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:18 direct index ( temp float) -0:18 'f3' ( temp 3-component vector of float) -0:18 Constant: -0:18 0 (const int) -0:18 move second child to first child ( temp float) -0:18 direct index ( temp float) -0:18 direct index ( temp 4-component vector of float) -0:18 'm' ( temp 3X4 matrix of float) -0:18 Constant: -0:18 1 (const int) -0:18 Constant: -0:18 1 (const int) -0:18 direct index ( temp float) -0:18 'f3' ( temp 3-component vector of float) -0:18 Constant: -0:18 1 (const int) -0:18 move second child to first child ( temp float) -0:18 direct index ( temp float) -0:18 direct index ( temp 4-component vector of float) -0:18 'm' ( temp 3X4 matrix of float) -0:18 Constant: -0:18 1 (const int) -0:18 Constant: -0:18 2 (const int) -0:18 direct index ( temp float) -0:18 'f3' ( temp 3-component vector of float) -0:18 Constant: -0:18 2 (const int) -0:19 Sequence -0:19 move second child to first child ( temp 3-component vector of float) -0:19 'intermVec' ( temp 3-component vector of float) -0:19 Constant: -0:19 5.000000 -0:19 5.000000 -0:19 5.000000 -0:19 move second child to first child ( temp float) -0:19 direct index ( temp float) -0:19 direct index ( temp 4-component vector of float) -0:19 'm' ( temp 3X4 matrix of float) -0:19 Constant: -0:19 1 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 direct index ( temp float) -0:19 'intermVec' ( temp 3-component vector of float) -0:19 Constant: -0:19 0 (const int) -0:19 move second child to first child ( temp float) -0:19 direct index ( temp float) -0:19 direct index ( temp 4-component vector of float) -0:19 'm' ( temp 3X4 matrix of float) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const int) -0:19 direct index ( temp float) -0:19 'intermVec' ( temp 3-component vector of float) -0:19 Constant: -0:19 1 (const int) -0:19 move second child to first child ( temp float) -0:19 direct index ( temp float) -0:19 direct index ( temp 4-component vector of float) -0:19 'm' ( temp 3X4 matrix of float) -0:19 Constant: -0:19 2 (const int) -0:19 Constant: -0:19 0 (const int) -0:19 direct index ( temp float) -0:19 'intermVec' ( temp 3-component vector of float) -0:19 Constant: -0:19 2 (const int) -0:20 Sequence -0:20 move second child to first child ( temp 3-component vector of float) -0:20 'intermVec' ( temp 3-component vector of float) -0:20 vector-scale ( temp 3-component vector of float) -0:20 Constant: -0:20 2.000000 -0:20 'f3' ( temp 3-component vector of float) -0:20 move second child to first child ( temp float) -0:20 direct index ( temp float) -0:20 direct index ( temp 4-component vector of float) -0:20 'm' ( temp 3X4 matrix of float) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 direct index ( temp float) -0:20 'intermVec' ( temp 3-component vector of float) -0:20 Constant: -0:20 0 (const int) -0:20 move second child to first child ( temp float) -0:20 direct index ( temp float) -0:20 direct index ( temp 4-component vector of float) -0:20 'm' ( temp 3X4 matrix of float) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 direct index ( temp float) -0:20 'intermVec' ( temp 3-component vector of float) -0:20 Constant: -0:20 1 (const int) -0:20 move second child to first child ( temp float) -0:20 direct index ( temp float) -0:20 direct index ( temp 4-component vector of float) -0:20 'm' ( temp 3X4 matrix of float) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 direct index ( temp float) -0:20 'intermVec' ( temp 3-component vector of float) -0:20 Constant: -0:20 2 (const int) -0:23 move second child to first child ( temp 3-component vector of float) -0:23 'f3' ( temp 3-component vector of float) -0:23 matrix swizzle ( temp 3-component vector of float) -0:23 'm' ( temp 3X4 matrix of float) -0:23 Sequence -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 2 (const int) -0:23 Constant: -0:23 0 (const int) -0:2 Function Definition: ShaderFunction( ( temp void) -0:2 Function Parameters: -0:? Sequence -0:2 move second child to first child ( temp float) -0:? 'inf' ( temp float) -0:? 'inf' (layout( location=0) in float) -0:2 Function Call: @ShaderFunction(f1; ( temp void) -0:? 'inf' ( temp float) -0:27 Function Definition: createMat3x3(vf3;vf3;vf3; ( temp 3X3 matrix of float) -0:27 Function Parameters: -0:27 'a' ( in 3-component vector of float) -0:27 'b' ( in 3-component vector of float) -0:27 'c' ( in 3-component vector of float) -0:? Sequence -0:? Sequence -0:29 move second child to first child ( temp float) -0:29 direct index ( temp float) -0:29 direct index ( temp 3-component vector of float) -0:29 'm' ( temp 3X3 matrix of float) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 0 (const int) -0:29 direct index ( temp float) -0:29 'a' ( in 3-component vector of float) -0:29 Constant: -0:29 0 (const int) -0:29 move second child to first child ( temp float) -0:29 direct index ( temp float) -0:29 direct index ( temp 3-component vector of float) -0:29 'm' ( temp 3X3 matrix of float) -0:29 Constant: -0:29 1 (const int) -0:29 Constant: -0:29 0 (const int) -0:29 direct index ( temp float) -0:29 'a' ( in 3-component vector of float) -0:29 Constant: -0:29 1 (const int) -0:29 move second child to first child ( temp float) -0:29 direct index ( temp float) -0:29 direct index ( temp 3-component vector of float) -0:29 'm' ( temp 3X3 matrix of float) -0:29 Constant: -0:29 2 (const int) -0:29 Constant: -0:29 0 (const int) -0:29 direct index ( temp float) -0:29 'a' ( in 3-component vector of float) -0:29 Constant: -0:29 2 (const int) -0:? Sequence -0:30 move second child to first child ( temp float) -0:30 direct index ( temp float) -0:30 direct index ( temp 3-component vector of float) -0:30 'm' ( temp 3X3 matrix of float) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 direct index ( temp float) -0:30 'b' ( in 3-component vector of float) -0:30 Constant: -0:30 0 (const int) -0:30 move second child to first child ( temp float) -0:30 direct index ( temp float) -0:30 direct index ( temp 3-component vector of float) -0:30 'm' ( temp 3X3 matrix of float) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 direct index ( temp float) -0:30 'b' ( in 3-component vector of float) -0:30 Constant: -0:30 1 (const int) -0:30 move second child to first child ( temp float) -0:30 direct index ( temp float) -0:30 direct index ( temp 3-component vector of float) -0:30 'm' ( temp 3X3 matrix of float) -0:30 Constant: -0:30 2 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 direct index ( temp float) -0:30 'b' ( in 3-component vector of float) -0:30 Constant: -0:30 2 (const int) -0:? Sequence -0:31 move second child to first child ( temp float) -0:31 direct index ( temp float) -0:31 direct index ( temp 3-component vector of float) -0:31 'm' ( temp 3X3 matrix of float) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 direct index ( temp float) -0:31 'c' ( in 3-component vector of float) -0:31 Constant: -0:31 0 (const int) -0:31 move second child to first child ( temp float) -0:31 direct index ( temp float) -0:31 direct index ( temp 3-component vector of float) -0:31 'm' ( temp 3X3 matrix of float) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 direct index ( temp float) -0:31 'c' ( in 3-component vector of float) -0:31 Constant: -0:31 1 (const int) -0:31 move second child to first child ( temp float) -0:31 direct index ( temp float) -0:31 direct index ( temp 3-component vector of float) -0:31 'm' ( temp 3X3 matrix of float) -0:31 Constant: -0:31 2 (const int) -0:31 Constant: -0:31 2 (const int) -0:31 direct index ( temp float) -0:31 'c' ( in 3-component vector of float) -0:31 Constant: -0:31 2 (const int) -0:32 Branch: Return with expression -0:32 'm' ( temp 3X3 matrix of float) -0:? Linker Objects -0:? 'inf' (layout( location=0) in float) - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 118 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "ShaderFunction" 81 - Source HLSL 500 - Name 4 "ShaderFunction" - Name 10 "@ShaderFunction(f1;" - Name 9 "inf" - Name 19 "createMat3x3(vf3;vf3;vf3;" - Name 16 "a" - Name 17 "b" - Name 18 "c" - Name 24 "m" - Name 42 "f3" - Name 55 "intermVec" - Name 67 "intermVec" - Name 79 "inf" - Name 81 "inf" - Name 83 "param" - Name 87 "m" - Decorate 81(inf) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypePointer Function 6(float) - 8: TypeFunction 2 7(ptr) - 12: TypeVector 6(float) 3 - 13: TypePointer Function 12(fvec3) - 14: TypeMatrix 12(fvec3) 3 - 15: TypeFunction 14 13(ptr) 13(ptr) 13(ptr) - 21: TypeVector 6(float) 4 - 22: TypeMatrix 21(fvec4) 3 - 23: TypePointer Function 22 - 25: TypeInt 32 1 - 26: 25(int) Constant 2 - 27: 6(float) Constant 1065353216 - 28: TypeInt 32 0 - 29: 28(int) Constant 3 - 31: 6(float) Constant 1073741824 - 34: 25(int) Constant 0 - 35: 6(float) Constant 1077936128 - 36: 21(fvec4) ConstantComposite 35 35 35 35 - 37: TypePointer Function 21(fvec4) - 39: 25(int) Constant 1 - 43: 28(int) Constant 0 - 47: 28(int) Constant 1 - 51: 28(int) Constant 2 - 56: 6(float) Constant 1084227584 - 57: 12(fvec3) ConstantComposite 56 56 56 - 80: TypePointer Input 6(float) - 81(inf): 80(ptr) Variable Input - 86: TypePointer Function 14 -4(ShaderFunction): 2 Function None 3 - 5: Label - 79(inf): 7(ptr) Variable Function - 83(param): 7(ptr) Variable Function - 82: 6(float) Load 81(inf) - Store 79(inf) 82 - 84: 6(float) Load 79(inf) - Store 83(param) 84 - 85: 2 FunctionCall 10(@ShaderFunction(f1;) 83(param) - Return - FunctionEnd -10(@ShaderFunction(f1;): 2 Function None 8 - 9(inf): 7(ptr) FunctionParameter - 11: Label - 24(m): 23(ptr) Variable Function - 42(f3): 13(ptr) Variable Function - 55(intermVec): 13(ptr) Variable Function - 67(intermVec): 13(ptr) Variable Function - 30: 7(ptr) AccessChain 24(m) 26 29 - Store 30 27 - 32: 7(ptr) AccessChain 24(m) 26 29 - Store 32 31 - 33: 7(ptr) AccessChain 24(m) 26 29 - Store 33 31 - 38: 37(ptr) AccessChain 24(m) 34 - Store 38 36 - 40: 37(ptr) AccessChain 24(m) 39 - Store 40 36 - 41: 37(ptr) AccessChain 24(m) 39 - Store 41 36 - 44: 7(ptr) AccessChain 42(f3) 43 - 45: 6(float) Load 44 - 46: 7(ptr) AccessChain 24(m) 34 43 - Store 46 45 - 48: 7(ptr) AccessChain 42(f3) 47 - 49: 6(float) Load 48 - 50: 7(ptr) AccessChain 24(m) 39 47 - Store 50 49 - 52: 7(ptr) AccessChain 42(f3) 51 - 53: 6(float) Load 52 - 54: 7(ptr) AccessChain 24(m) 39 51 - Store 54 53 - Store 55(intermVec) 57 - 58: 7(ptr) AccessChain 55(intermVec) 43 - 59: 6(float) Load 58 - 60: 7(ptr) AccessChain 24(m) 39 43 - Store 60 59 - 61: 7(ptr) AccessChain 55(intermVec) 47 - 62: 6(float) Load 61 - 63: 7(ptr) AccessChain 24(m) 34 47 - Store 63 62 - 64: 7(ptr) AccessChain 55(intermVec) 51 - 65: 6(float) Load 64 - 66: 7(ptr) AccessChain 24(m) 26 43 - Store 66 65 - 68: 12(fvec3) Load 42(f3) - 69: 12(fvec3) VectorTimesScalar 68 31 - Store 67(intermVec) 69 - 70: 7(ptr) AccessChain 67(intermVec) 43 - 71: 6(float) Load 70 - 72: 7(ptr) AccessChain 24(m) 34 43 - Store 72 71 - 73: 7(ptr) AccessChain 67(intermVec) 47 - 74: 6(float) Load 73 - 75: 7(ptr) AccessChain 24(m) 34 47 - Store 75 74 - 76: 7(ptr) AccessChain 67(intermVec) 51 - 77: 6(float) Load 76 - 78: 7(ptr) AccessChain 24(m) 39 43 - Store 78 77 - Store 42(f3) 34 - Return - FunctionEnd -19(createMat3x3(vf3;vf3;vf3;): 14 Function None 15 - 16(a): 13(ptr) FunctionParameter - 17(b): 13(ptr) FunctionParameter - 18(c): 13(ptr) FunctionParameter - 20: Label - 87(m): 86(ptr) Variable Function - 88: 7(ptr) AccessChain 16(a) 43 - 89: 6(float) Load 88 - 90: 7(ptr) AccessChain 87(m) 34 43 - Store 90 89 - 91: 7(ptr) AccessChain 16(a) 47 - 92: 6(float) Load 91 - 93: 7(ptr) AccessChain 87(m) 39 43 - Store 93 92 - 94: 7(ptr) AccessChain 16(a) 51 - 95: 6(float) Load 94 - 96: 7(ptr) AccessChain 87(m) 26 43 - Store 96 95 - 97: 7(ptr) AccessChain 17(b) 43 - 98: 6(float) Load 97 - 99: 7(ptr) AccessChain 87(m) 34 47 - Store 99 98 - 100: 7(ptr) AccessChain 17(b) 47 - 101: 6(float) Load 100 - 102: 7(ptr) AccessChain 87(m) 39 47 - Store 102 101 - 103: 7(ptr) AccessChain 17(b) 51 - 104: 6(float) Load 103 - 105: 7(ptr) AccessChain 87(m) 26 47 - Store 105 104 - 106: 7(ptr) AccessChain 18(c) 43 - 107: 6(float) Load 106 - 108: 7(ptr) AccessChain 87(m) 34 51 - Store 108 107 - 109: 7(ptr) AccessChain 18(c) 47 - 110: 6(float) Load 109 - 111: 7(ptr) AccessChain 87(m) 39 51 - Store 111 110 - 112: 7(ptr) AccessChain 18(c) 51 - 113: 6(float) Load 112 - 114: 7(ptr) AccessChain 87(m) 26 51 - Store 114 113 - 115: 14 Load 87(m) - ReturnValue 115 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.matrixindex.frag.out b/deps/glslang/Test/baseResults/hlsl.matrixindex.frag.out deleted file mode 100644 index fa7a8c0c..00000000 --- a/deps/glslang/Test/baseResults/hlsl.matrixindex.frag.out +++ /dev/null @@ -1,422 +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): 8000a -// 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 54 Binding 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/Test/baseResults/hlsl.max.frag.out b/deps/glslang/Test/baseResults/hlsl.max.frag.out deleted file mode 100644 index 7a0c5d25..00000000 --- a/deps/glslang/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): 8000a -// 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/Test/baseResults/hlsl.memberFunCall.frag.out b/deps/glslang/Test/baseResults/hlsl.memberFunCall.frag.out deleted file mode 100644 index 2886f8fb..00000000 --- a/deps/glslang/Test/baseResults/hlsl.memberFunCall.frag.out +++ /dev/null @@ -1,264 +0,0 @@ -hlsl.memberFunCall.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:1 Function Definition: method3(f1; ( temp float) -0:1 Function Parameters: -0:1 'a' ( in float) -0:? Sequence -0:1 Branch: Return with expression -0:1 Constant: -0:1 1.000000 -0:4 Function Definition: myContext::method1( ( temp float) -0:4 Function Parameters: -0:4 '@this' ( temp structure{ temp float f}) -0:? Sequence -0:4 Branch: Return with expression -0:4 Function Call: myContext::method2( ( temp float) -0:? '@this' ( temp structure{ temp float f}) -0:5 Function Definition: myContext::method2( ( temp float) -0:5 Function Parameters: -0:5 '@this' ( temp structure{ temp float f}) -0:? Sequence -0:5 Branch: Return with expression -0:5 Function Call: myContext::method3(f1; ( temp float) -0:? '@this' ( temp structure{ temp float f}) -0:5 Constant: -0:5 1.000000 -0:6 Function Definition: myContext::method3(f1; ( temp float) -0:6 Function Parameters: -0:6 '@this' ( temp structure{ temp float f}) -0:6 'a' ( in float) -0:? Sequence -0:6 Branch: Return with expression -0:6 Function Call: myContext::method4(f1;f1; ( temp float) -0:? '@this' ( temp structure{ temp float f}) -0:6 'a' ( in float) -0:6 'a' ( in float) -0:7 Function Definition: myContext::method4(f1;f1; ( temp float) -0:7 Function Parameters: -0:7 '@this' ( temp structure{ temp float f}) -0:7 'a' ( in float) -0:7 'b' ( in float) -0:? Sequence -0:7 Branch: Return with expression -0:7 add ( temp float) -0:7 add ( temp float) -0:7 'a' ( in float) -0:7 'b' ( in float) -0:7 f: direct index for structure ( temp float) -0:7 '@this' ( temp structure{ temp float f}) -0:7 Constant: -0:7 0 (const uint) -0:12 Function Definition: @main( ( temp 4-component vector of float) -0:12 Function Parameters: -0:? Sequence -0:14 move second child to first child ( temp float) -0:14 f: direct index for structure ( temp float) -0:14 'context' ( temp structure{ temp float f}) -0:14 Constant: -0:14 0 (const int) -0:14 Constant: -0:14 3.000000 -0:15 Branch: Return with expression -0:15 Construct vec4 ( temp 4-component vector of float) -0:15 Function Call: myContext::method1( ( temp float) -0:15 'context' ( temp structure{ temp float f}) -0:12 Function Definition: main( ( temp void) -0:12 Function Parameters: -0:? Sequence -0:12 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:12 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:1 Function Definition: method3(f1; ( temp float) -0:1 Function Parameters: -0:1 'a' ( in float) -0:? Sequence -0:1 Branch: Return with expression -0:1 Constant: -0:1 1.000000 -0:4 Function Definition: myContext::method1( ( temp float) -0:4 Function Parameters: -0:4 '@this' ( temp structure{ temp float f}) -0:? Sequence -0:4 Branch: Return with expression -0:4 Function Call: myContext::method2( ( temp float) -0:? '@this' ( temp structure{ temp float f}) -0:5 Function Definition: myContext::method2( ( temp float) -0:5 Function Parameters: -0:5 '@this' ( temp structure{ temp float f}) -0:? Sequence -0:5 Branch: Return with expression -0:5 Function Call: myContext::method3(f1; ( temp float) -0:? '@this' ( temp structure{ temp float f}) -0:5 Constant: -0:5 1.000000 -0:6 Function Definition: myContext::method3(f1; ( temp float) -0:6 Function Parameters: -0:6 '@this' ( temp structure{ temp float f}) -0:6 'a' ( in float) -0:? Sequence -0:6 Branch: Return with expression -0:6 Function Call: myContext::method4(f1;f1; ( temp float) -0:? '@this' ( temp structure{ temp float f}) -0:6 'a' ( in float) -0:6 'a' ( in float) -0:7 Function Definition: myContext::method4(f1;f1; ( temp float) -0:7 Function Parameters: -0:7 '@this' ( temp structure{ temp float f}) -0:7 'a' ( in float) -0:7 'b' ( in float) -0:? Sequence -0:7 Branch: Return with expression -0:7 add ( temp float) -0:7 add ( temp float) -0:7 'a' ( in float) -0:7 'b' ( in float) -0:7 f: direct index for structure ( temp float) -0:7 '@this' ( temp structure{ temp float f}) -0:7 Constant: -0:7 0 (const uint) -0:12 Function Definition: @main( ( temp 4-component vector of float) -0:12 Function Parameters: -0:? Sequence -0:14 move second child to first child ( temp float) -0:14 f: direct index for structure ( temp float) -0:14 'context' ( temp structure{ temp float f}) -0:14 Constant: -0:14 0 (const int) -0:14 Constant: -0:14 3.000000 -0:15 Branch: Return with expression -0:15 Construct vec4 ( temp 4-component vector of float) -0:15 Function Call: myContext::method1( ( temp float) -0:15 'context' ( temp structure{ temp float f}) -0:12 Function Definition: main( ( temp void) -0:12 Function Parameters: -0:? Sequence -0:12 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:12 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 73 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 71 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 10 "method3(f1;" - Name 9 "a" - Name 12 "myContext" - MemberName 12(myContext) 0 "f" - Name 16 "myContext::method1(" - Name 15 "@this" - Name 19 "myContext::method2(" - Name 18 "@this" - Name 24 "myContext::method3(f1;" - Name 22 "@this" - Name 23 "a" - Name 30 "myContext::method4(f1;f1;" - Name 27 "@this" - Name 28 "a" - Name 29 "b" - Name 34 "@main(" - Name 42 "param" - Name 46 "param" - Name 48 "param" - Name 63 "context" - Name 71 "@entryPointOutput" - Decorate 71(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypePointer Function 6(float) - 8: TypeFunction 6(float) 7(ptr) - 12(myContext): TypeStruct 6(float) - 13: TypePointer Function 12(myContext) - 14: TypeFunction 6(float) 13(ptr) - 21: TypeFunction 6(float) 13(ptr) 7(ptr) - 26: TypeFunction 6(float) 13(ptr) 7(ptr) 7(ptr) - 32: TypeVector 6(float) 4 - 33: TypeFunction 32(fvec4) - 36: 6(float) Constant 1065353216 - 56: TypeInt 32 1 - 57: 56(int) Constant 0 - 64: 6(float) Constant 1077936128 - 70: TypePointer Output 32(fvec4) -71(@entryPointOutput): 70(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 72: 32(fvec4) FunctionCall 34(@main() - Store 71(@entryPointOutput) 72 - Return - FunctionEnd - 10(method3(f1;): 6(float) Function None 8 - 9(a): 7(ptr) FunctionParameter - 11: Label - ReturnValue 36 - FunctionEnd -16(myContext::method1(): 6(float) Function None 14 - 15(@this): 13(ptr) FunctionParameter - 17: Label - 39: 6(float) FunctionCall 19(myContext::method2() 15(@this) - ReturnValue 39 - FunctionEnd -19(myContext::method2(): 6(float) Function None 14 - 18(@this): 13(ptr) FunctionParameter - 20: Label - 42(param): 7(ptr) Variable Function - Store 42(param) 36 - 43: 6(float) FunctionCall 24(myContext::method3(f1;) 18(@this) 42(param) - ReturnValue 43 - FunctionEnd -24(myContext::method3(f1;): 6(float) Function None 21 - 22(@this): 13(ptr) FunctionParameter - 23(a): 7(ptr) FunctionParameter - 25: Label - 46(param): 7(ptr) Variable Function - 48(param): 7(ptr) Variable Function - 47: 6(float) Load 23(a) - Store 46(param) 47 - 49: 6(float) Load 23(a) - Store 48(param) 49 - 50: 6(float) FunctionCall 30(myContext::method4(f1;f1;) 22(@this) 46(param) 48(param) - ReturnValue 50 - FunctionEnd -30(myContext::method4(f1;f1;): 6(float) Function None 26 - 27(@this): 13(ptr) FunctionParameter - 28(a): 7(ptr) FunctionParameter - 29(b): 7(ptr) FunctionParameter - 31: Label - 53: 6(float) Load 28(a) - 54: 6(float) Load 29(b) - 55: 6(float) FAdd 53 54 - 58: 7(ptr) AccessChain 27(@this) 57 - 59: 6(float) Load 58 - 60: 6(float) FAdd 55 59 - ReturnValue 60 - FunctionEnd - 34(@main(): 32(fvec4) Function None 33 - 35: Label - 63(context): 13(ptr) Variable Function - 65: 7(ptr) AccessChain 63(context) 57 - Store 65 64 - 66: 6(float) FunctionCall 16(myContext::method1() 63(context) - 67: 32(fvec4) CompositeConstruct 66 66 66 66 - ReturnValue 67 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.mintypes.frag.out b/deps/glslang/Test/baseResults/hlsl.mintypes.frag.out deleted file mode 100644 index 013f8d41..00000000 --- a/deps/glslang/Test/baseResults/hlsl.mintypes.frag.out +++ /dev/null @@ -1,239 +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): 8000a -// 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 - Decorate 69 Binding 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/Test/baseResults/hlsl.mip.negative.frag.out b/deps/glslang/Test/baseResults/hlsl.mip.negative.frag.out deleted file mode 100644 index 4fb8f6ee..00000000 --- a/deps/glslang/Test/baseResults/hlsl.mip.negative.frag.out +++ /dev/null @@ -1,68 +0,0 @@ -hlsl.mip.negative.frag -ERROR: 0:5: '' : unterminated mips operator: -ERROR: 1 compilation errors. No code generated. - - -Shader version: 500 -gl_FragCoord origin is upper left -ERROR: node is still EOpNull! -0:4 Function Definition: @main( ( temp 4-component vector of float) -0:4 Function Parameters: -0:? Sequence -0:5 textureFetch ( temp 4-component vector of float) -0:5 'g_tTex2df4' ( uniform texture2D) -0:5 Constant: -0:5 3 (const uint) -0:5 4 (const uint) -0:5 Constant: -0:5 2 (const int) -0:7 Branch: Return with expression -0:7 Constant: -0:7 0.000000 -0:7 0.000000 -0:7 0.000000 -0:7 0.000000 -0:4 Function Definition: main( ( temp void) -0:4 Function Parameters: -0:? Sequence -0:4 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:4 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'g_tTex2df4' ( uniform texture2D) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -ERROR: node is still EOpNull! -0:4 Function Definition: @main( ( temp 4-component vector of float) -0:4 Function Parameters: -0:? Sequence -0:5 textureFetch ( temp 4-component vector of float) -0:5 'g_tTex2df4' ( uniform texture2D) -0:5 Constant: -0:5 3 (const uint) -0:5 4 (const uint) -0:5 Constant: -0:5 2 (const int) -0:7 Branch: Return with expression -0:7 Constant: -0:7 0.000000 -0:7 0.000000 -0:7 0.000000 -0:7 0.000000 -0:4 Function Definition: main( ( temp void) -0:4 Function Parameters: -0:? Sequence -0:4 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:4 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'g_tTex2df4' ( uniform texture2D) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/hlsl.mip.negative2.frag.out b/deps/glslang/Test/baseResults/hlsl.mip.negative2.frag.out deleted file mode 100644 index 0036f639..00000000 --- a/deps/glslang/Test/baseResults/hlsl.mip.negative2.frag.out +++ /dev/null @@ -1,74 +0,0 @@ -hlsl.mip.negative2.frag -ERROR: 0:5: 'r' : unexpected operator on texture type: uniform texture2D -ERROR: 1 compilation errors. No code generated. - - -Shader version: 500 -gl_FragCoord origin is upper left -ERROR: node is still EOpNull! -0:4 Function Definition: @main( ( temp 4-component vector of float) -0:4 Function Parameters: -0:? Sequence -0:5 direct index ( temp float) -0:5 textureFetch ( temp 4-component vector of float) -0:5 'g_tTex2df4' ( uniform texture2D) -0:5 Constant: -0:5 2 (const int) -0:5 Constant: -0:5 0 (const int) -0:5 Constant: -0:5 3 (const uint) -0:5 4 (const uint) -0:7 Branch: Return with expression -0:7 Constant: -0:7 0.000000 -0:7 0.000000 -0:7 0.000000 -0:7 0.000000 -0:4 Function Definition: main( ( temp void) -0:4 Function Parameters: -0:? Sequence -0:4 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:4 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'g_tTex2df4' ( uniform texture2D) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -ERROR: node is still EOpNull! -0:4 Function Definition: @main( ( temp 4-component vector of float) -0:4 Function Parameters: -0:? Sequence -0:5 direct index ( temp float) -0:5 textureFetch ( temp 4-component vector of float) -0:5 'g_tTex2df4' ( uniform texture2D) -0:5 Constant: -0:5 2 (const int) -0:5 Constant: -0:5 0 (const int) -0:5 Constant: -0:5 3 (const uint) -0:5 4 (const uint) -0:7 Branch: Return with expression -0:7 Constant: -0:7 0.000000 -0:7 0.000000 -0:7 0.000000 -0:7 0.000000 -0:4 Function Definition: main( ( temp void) -0:4 Function Parameters: -0:? Sequence -0:4 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:4 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'g_tTex2df4' ( uniform texture2D) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/hlsl.mip.operator.frag.out b/deps/glslang/Test/baseResults/hlsl.mip.operator.frag.out deleted file mode 100644 index 48e563ca..00000000 --- a/deps/glslang/Test/baseResults/hlsl.mip.operator.frag.out +++ /dev/null @@ -1,211 +0,0 @@ -hlsl.mip.operator.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:5 Function Definition: @main( ( temp 4-component vector of float) -0:5 Function Parameters: -0:? Sequence -0:13 Branch: Return with expression -0:9 add ( temp 4-component vector of float) -0:6 add ( temp 4-component vector of float) -0:6 textureFetch ( temp 4-component vector of float) -0:6 'g_tTex2df4' ( uniform texture2D) -0:6 Constant: -0:6 3 (const uint) -0:6 4 (const uint) -0:6 Constant: -0:6 2 (const int) -0:9 textureFetch ( temp 4-component vector of float) -0:9 'g_tTex2df4a' ( uniform texture2DArray) -0:9 Constant: -0:9 6 (const uint) -0:9 7 (const uint) -0:9 8 (const uint) -0:9 Constant: -0:9 5 (const uint) -0:13 textureFetch ( temp 4-component vector of float) -0:13 'g_tTex2df4' ( uniform texture2D) -0:13 Convert float to uint ( temp 2-component vector of uint) -0:13 vector swizzle ( temp 2-component vector of float) -0:13 textureFetch ( temp 4-component vector of float) -0:13 'g_tTex2df4' ( uniform texture2D) -0:13 Constant: -0:13 14 (const uint) -0:13 15 (const uint) -0:13 Constant: -0:13 13 (const int) -0:13 Sequence -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 1 (const int) -0:13 Convert float to uint ( temp uint) -0:13 direct index ( temp float) -0:13 textureFetch ( temp 4-component vector of float) -0:13 'g_tTex2df4' ( uniform texture2D) -0:13 Constant: -0:13 10 (const uint) -0:13 11 (const uint) -0:13 Constant: -0:13 9 (const int) -0:13 Constant: -0:13 0 (const int) -0:5 Function Definition: main( ( temp void) -0:5 Function Parameters: -0:? Sequence -0:5 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:5 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'g_tTex2df4a' ( uniform texture2DArray) -0:? 'g_tTex2df4' ( uniform texture2D) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:5 Function Definition: @main( ( temp 4-component vector of float) -0:5 Function Parameters: -0:? Sequence -0:13 Branch: Return with expression -0:9 add ( temp 4-component vector of float) -0:6 add ( temp 4-component vector of float) -0:6 textureFetch ( temp 4-component vector of float) -0:6 'g_tTex2df4' ( uniform texture2D) -0:6 Constant: -0:6 3 (const uint) -0:6 4 (const uint) -0:6 Constant: -0:6 2 (const int) -0:9 textureFetch ( temp 4-component vector of float) -0:9 'g_tTex2df4a' ( uniform texture2DArray) -0:9 Constant: -0:9 6 (const uint) -0:9 7 (const uint) -0:9 8 (const uint) -0:9 Constant: -0:9 5 (const uint) -0:13 textureFetch ( temp 4-component vector of float) -0:13 'g_tTex2df4' ( uniform texture2D) -0:13 Convert float to uint ( temp 2-component vector of uint) -0:13 vector swizzle ( temp 2-component vector of float) -0:13 textureFetch ( temp 4-component vector of float) -0:13 'g_tTex2df4' ( uniform texture2D) -0:13 Constant: -0:13 14 (const uint) -0:13 15 (const uint) -0:13 Constant: -0:13 13 (const int) -0:13 Sequence -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 1 (const int) -0:13 Convert float to uint ( temp uint) -0:13 direct index ( temp float) -0:13 textureFetch ( temp 4-component vector of float) -0:13 'g_tTex2df4' ( uniform texture2D) -0:13 Constant: -0:13 10 (const uint) -0:13 11 (const uint) -0:13 Constant: -0:13 9 (const int) -0:13 Constant: -0:13 0 (const int) -0:5 Function Definition: main( ( temp void) -0:5 Function Parameters: -0:? Sequence -0:5 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:5 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'g_tTex2df4a' ( uniform texture2DArray) -0:? 'g_tTex2df4' ( uniform texture2D) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 61 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 59 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 9 "@main(" - Name 13 "g_tTex2df4" - Name 25 "g_tTex2df4a" - Name 59 "@entryPointOutput" - Decorate 13(g_tTex2df4) DescriptorSet 0 - Decorate 13(g_tTex2df4) Binding 1 - Decorate 25(g_tTex2df4a) DescriptorSet 0 - Decorate 25(g_tTex2df4a) Binding 0 - Decorate 59(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 11: TypeImage 6(float) 2D sampled format:Unknown - 12: TypePointer UniformConstant 11 - 13(g_tTex2df4): 12(ptr) Variable UniformConstant - 15: TypeInt 32 0 - 16: TypeVector 15(int) 2 - 17: 15(int) Constant 3 - 18: 15(int) Constant 4 - 19: 16(ivec2) ConstantComposite 17 18 - 20: TypeInt 32 1 - 21: 20(int) Constant 2 - 23: TypeImage 6(float) 2D array sampled format:Unknown - 24: TypePointer UniformConstant 23 - 25(g_tTex2df4a): 24(ptr) Variable UniformConstant - 27: TypeVector 15(int) 3 - 28: 15(int) Constant 6 - 29: 15(int) Constant 7 - 30: 15(int) Constant 8 - 31: 27(ivec3) ConstantComposite 28 29 30 - 32: 15(int) Constant 5 - 37: 15(int) Constant 14 - 38: 15(int) Constant 15 - 39: 16(ivec2) ConstantComposite 37 38 - 40: 20(int) Constant 13 - 42: TypeVector 6(float) 2 - 46: 15(int) Constant 10 - 47: 15(int) Constant 11 - 48: 16(ivec2) ConstantComposite 46 47 - 49: 20(int) Constant 9 - 51: 15(int) Constant 0 - 58: TypePointer Output 7(fvec4) -59(@entryPointOutput): 58(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 60: 7(fvec4) FunctionCall 9(@main() - Store 59(@entryPointOutput) 60 - Return - FunctionEnd - 9(@main(): 7(fvec4) Function None 8 - 10: Label - 14: 11 Load 13(g_tTex2df4) - 22: 7(fvec4) ImageFetch 14 19 Lod 21 - 26: 23 Load 25(g_tTex2df4a) - 33: 7(fvec4) ImageFetch 26 31 Lod 32 - 34: 7(fvec4) FAdd 22 33 - 35: 11 Load 13(g_tTex2df4) - 36: 11 Load 13(g_tTex2df4) - 41: 7(fvec4) ImageFetch 36 39 Lod 40 - 43: 42(fvec2) VectorShuffle 41 41 0 1 - 44: 16(ivec2) ConvertFToU 43 - 45: 11 Load 13(g_tTex2df4) - 50: 7(fvec4) ImageFetch 45 48 Lod 49 - 52: 6(float) CompositeExtract 50 0 - 53: 15(int) ConvertFToU 52 - 54: 7(fvec4) ImageFetch 35 44 Lod 53 - 55: 7(fvec4) FAdd 34 54 - ReturnValue 55 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.mul-truncate.frag.out b/deps/glslang/Test/baseResults/hlsl.mul-truncate.frag.out deleted file mode 100644 index 25e7b2ea..00000000 --- a/deps/glslang/Test/baseResults/hlsl.mul-truncate.frag.out +++ /dev/null @@ -1,644 +0,0 @@ -hlsl.mul-truncate.frag -WARNING: 0:24: '' : mul() matrix size mismatch -WARNING: 0:25: '' : mul() matrix size mismatch -WARNING: 0:28: '' : mul() matrix size mismatch -WARNING: 0:29: '' : mul() matrix size mismatch -WARNING: 0:32: '' : mul() matrix size mismatch -WARNING: 0:33: '' : mul() matrix size mismatch -WARNING: 0:34: '' : mul() matrix size mismatch -WARNING: 0:35: '' : mul() matrix size mismatch - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:18 Function Definition: @main( ( temp 4-component vector of float) -0:18 Function Parameters: -0:? Sequence -0:20 Sequence -0:20 move second child to first child ( temp float) -0:20 'r00' ( temp float) -0:20 dot-product ( temp float) -0:20 v2: direct index for structure (layout( row_major std140) uniform 2-component vector of float) -0:20 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:20 Constant: -0:20 8 (const uint) -0:20 Construct vec2 ( in 2-component vector of float) -0:20 v3: direct index for structure (layout( row_major std140) uniform 3-component vector of float) -0:20 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:20 Constant: -0:20 7 (const uint) -0:21 Sequence -0:21 move second child to first child ( temp float) -0:21 'r01' ( temp float) -0:21 dot-product ( temp float) -0:21 Construct vec2 ( in 2-component vector of float) -0:21 v4: direct index for structure (layout( row_major std140) uniform 4-component vector of float) -0:21 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:21 Constant: -0:21 6 (const uint) -0:21 v2: direct index for structure (layout( row_major std140) uniform 2-component vector of float) -0:21 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:21 Constant: -0:21 8 (const uint) -0:24 Sequence -0:24 move second child to first child ( temp 4-component vector of float) -0:24 'r10' ( temp 4-component vector of float) -0:24 matrix-times-vector ( temp 4-component vector of float) -0:24 Construct mat3x4 ( uniform 3X4 matrix of float) -0:24 m44: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) -0:24 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:24 Constant: -0:24 0 (const uint) -0:24 v3: direct index for structure (layout( row_major std140) uniform 3-component vector of float) -0:24 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:24 Constant: -0:24 7 (const uint) -0:25 Sequence -0:25 move second child to first child ( temp 4-component vector of float) -0:25 'r11' ( temp 4-component vector of float) -0:25 matrix-times-vector ( temp 4-component vector of float) -0:25 m34: direct index for structure (layout( row_major std140) uniform 3X4 matrix of float) -0:25 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:25 Constant: -0:25 2 (const uint) -0:25 Construct vec3 ( uniform 3-component vector of float) -0:25 v4: direct index for structure (layout( row_major std140) uniform 4-component vector of float) -0:25 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:25 Constant: -0:25 6 (const uint) -0:28 Sequence -0:28 move second child to first child ( temp 4-component vector of float) -0:28 'r20' ( temp 4-component vector of float) -0:28 vector-times-matrix ( temp 4-component vector of float) -0:28 v3: direct index for structure (layout( row_major std140) uniform 3-component vector of float) -0:28 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:28 Constant: -0:28 7 (const uint) -0:28 Construct mat4x3 ( uniform 4X3 matrix of float) -0:28 m44: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) -0:28 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:28 Constant: -0:28 0 (const uint) -0:29 Sequence -0:29 move second child to first child ( temp 4-component vector of float) -0:29 'r21' ( temp 4-component vector of float) -0:29 vector-times-matrix ( temp 4-component vector of float) -0:29 Construct vec3 ( uniform 3-component vector of float) -0:29 v4: direct index for structure (layout( row_major std140) uniform 4-component vector of float) -0:29 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:29 Constant: -0:29 6 (const uint) -0:29 m43: direct index for structure (layout( row_major std140) uniform 4X3 matrix of float) -0:29 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:29 Constant: -0:29 1 (const uint) -0:32 Sequence -0:32 move second child to first child ( temp 2X3 matrix of float) -0:32 'r30' ( temp 2X3 matrix of float) -0:32 matrix-multiply ( temp 2X3 matrix of float) -0:32 m33: direct index for structure (layout( row_major std140) uniform 3X3 matrix of float) -0:32 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:32 Constant: -0:32 3 (const uint) -0:32 Construct mat2x3 ( uniform 2X3 matrix of float) -0:32 m24: direct index for structure (layout( row_major std140) uniform 2X4 matrix of float) -0:32 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:32 Constant: -0:32 4 (const uint) -0:33 Sequence -0:33 move second child to first child ( temp 3X4 matrix of float) -0:33 'r31' ( temp 3X4 matrix of float) -0:33 matrix-multiply ( temp 3X4 matrix of float) -0:33 m24: direct index for structure (layout( row_major std140) uniform 2X4 matrix of float) -0:33 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:33 Constant: -0:33 4 (const uint) -0:33 Construct mat3x2 ( uniform 3X2 matrix of float) -0:33 m33: direct index for structure (layout( row_major std140) uniform 3X3 matrix of float) -0:33 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:33 Constant: -0:33 3 (const uint) -0:34 Sequence -0:34 move second child to first child ( temp 3X2 matrix of float) -0:34 'r32' ( temp 3X2 matrix of float) -0:34 matrix-multiply ( temp 3X2 matrix of float) -0:34 Construct mat3x2 ( uniform 3X2 matrix of float) -0:34 m42: direct index for structure (layout( row_major std140) uniform 4X2 matrix of float) -0:34 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:34 Constant: -0:34 5 (const uint) -0:34 m33: direct index for structure (layout( row_major std140) uniform 3X3 matrix of float) -0:34 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:34 Constant: -0:34 3 (const uint) -0:35 Sequence -0:35 move second child to first child ( temp 4X3 matrix of float) -0:35 'r33' ( temp 4X3 matrix of float) -0:35 matrix-multiply ( temp 4X3 matrix of float) -0:35 Construct mat2x3 ( uniform 2X3 matrix of float) -0:35 m33: direct index for structure (layout( row_major std140) uniform 3X3 matrix of float) -0:35 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:35 Constant: -0:35 3 (const uint) -0:35 m42: direct index for structure (layout( row_major std140) uniform 4X2 matrix of float) -0:35 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:35 Constant: -0:35 5 (const uint) -0:37 Branch: Return with expression -0:37 add ( temp 4-component vector of float) -0:37 add ( temp 4-component vector of float) -0:37 add ( temp 4-component vector of float) -0:37 add ( temp 4-component vector of float) -0:37 add ( temp 4-component vector of float) -0:37 add ( temp 4-component vector of float) -0:37 add ( temp 4-component vector of float) -0:37 add ( temp 4-component vector of float) -0:37 add ( temp 4-component vector of float) -0:37 'r10' ( temp 4-component vector of float) -0:37 'r11' ( temp 4-component vector of float) -0:37 'r20' ( temp 4-component vector of float) -0:37 'r21' ( temp 4-component vector of float) -0:37 'r00' ( temp float) -0:37 'r01' ( temp float) -0:37 direct index ( temp float) -0:37 direct index ( temp 3-component vector of float) -0:37 'r30' ( temp 2X3 matrix of float) -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 0 (const int) -0:37 direct index ( temp 4-component vector of float) -0:37 'r31' ( temp 3X4 matrix of float) -0:37 Constant: -0:37 0 (const int) -0:37 direct index ( temp float) -0:37 direct index ( temp 2-component vector of float) -0:37 'r32' ( temp 3X2 matrix of float) -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 0 (const int) -0:37 direct index ( temp 4-component vector of float) -0:37 transpose ( temp 3X4 matrix of float) -0:37 'r33' ( temp 4X3 matrix of float) -0:37 Constant: -0:37 0 (const int) -0:18 Function Definition: main( ( temp void) -0:18 Function Parameters: -0:? Sequence -0:18 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:18 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:18 Function Definition: @main( ( temp 4-component vector of float) -0:18 Function Parameters: -0:? Sequence -0:20 Sequence -0:20 move second child to first child ( temp float) -0:20 'r00' ( temp float) -0:20 dot-product ( temp float) -0:20 v2: direct index for structure (layout( row_major std140) uniform 2-component vector of float) -0:20 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:20 Constant: -0:20 8 (const uint) -0:20 Construct vec2 ( in 2-component vector of float) -0:20 v3: direct index for structure (layout( row_major std140) uniform 3-component vector of float) -0:20 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:20 Constant: -0:20 7 (const uint) -0:21 Sequence -0:21 move second child to first child ( temp float) -0:21 'r01' ( temp float) -0:21 dot-product ( temp float) -0:21 Construct vec2 ( in 2-component vector of float) -0:21 v4: direct index for structure (layout( row_major std140) uniform 4-component vector of float) -0:21 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:21 Constant: -0:21 6 (const uint) -0:21 v2: direct index for structure (layout( row_major std140) uniform 2-component vector of float) -0:21 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:21 Constant: -0:21 8 (const uint) -0:24 Sequence -0:24 move second child to first child ( temp 4-component vector of float) -0:24 'r10' ( temp 4-component vector of float) -0:24 matrix-times-vector ( temp 4-component vector of float) -0:24 Construct mat3x4 ( uniform 3X4 matrix of float) -0:24 m44: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) -0:24 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:24 Constant: -0:24 0 (const uint) -0:24 v3: direct index for structure (layout( row_major std140) uniform 3-component vector of float) -0:24 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:24 Constant: -0:24 7 (const uint) -0:25 Sequence -0:25 move second child to first child ( temp 4-component vector of float) -0:25 'r11' ( temp 4-component vector of float) -0:25 matrix-times-vector ( temp 4-component vector of float) -0:25 m34: direct index for structure (layout( row_major std140) uniform 3X4 matrix of float) -0:25 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:25 Constant: -0:25 2 (const uint) -0:25 Construct vec3 ( uniform 3-component vector of float) -0:25 v4: direct index for structure (layout( row_major std140) uniform 4-component vector of float) -0:25 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:25 Constant: -0:25 6 (const uint) -0:28 Sequence -0:28 move second child to first child ( temp 4-component vector of float) -0:28 'r20' ( temp 4-component vector of float) -0:28 vector-times-matrix ( temp 4-component vector of float) -0:28 v3: direct index for structure (layout( row_major std140) uniform 3-component vector of float) -0:28 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:28 Constant: -0:28 7 (const uint) -0:28 Construct mat4x3 ( uniform 4X3 matrix of float) -0:28 m44: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) -0:28 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:28 Constant: -0:28 0 (const uint) -0:29 Sequence -0:29 move second child to first child ( temp 4-component vector of float) -0:29 'r21' ( temp 4-component vector of float) -0:29 vector-times-matrix ( temp 4-component vector of float) -0:29 Construct vec3 ( uniform 3-component vector of float) -0:29 v4: direct index for structure (layout( row_major std140) uniform 4-component vector of float) -0:29 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:29 Constant: -0:29 6 (const uint) -0:29 m43: direct index for structure (layout( row_major std140) uniform 4X3 matrix of float) -0:29 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:29 Constant: -0:29 1 (const uint) -0:32 Sequence -0:32 move second child to first child ( temp 2X3 matrix of float) -0:32 'r30' ( temp 2X3 matrix of float) -0:32 matrix-multiply ( temp 2X3 matrix of float) -0:32 m33: direct index for structure (layout( row_major std140) uniform 3X3 matrix of float) -0:32 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:32 Constant: -0:32 3 (const uint) -0:32 Construct mat2x3 ( uniform 2X3 matrix of float) -0:32 m24: direct index for structure (layout( row_major std140) uniform 2X4 matrix of float) -0:32 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:32 Constant: -0:32 4 (const uint) -0:33 Sequence -0:33 move second child to first child ( temp 3X4 matrix of float) -0:33 'r31' ( temp 3X4 matrix of float) -0:33 matrix-multiply ( temp 3X4 matrix of float) -0:33 m24: direct index for structure (layout( row_major std140) uniform 2X4 matrix of float) -0:33 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:33 Constant: -0:33 4 (const uint) -0:33 Construct mat3x2 ( uniform 3X2 matrix of float) -0:33 m33: direct index for structure (layout( row_major std140) uniform 3X3 matrix of float) -0:33 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:33 Constant: -0:33 3 (const uint) -0:34 Sequence -0:34 move second child to first child ( temp 3X2 matrix of float) -0:34 'r32' ( temp 3X2 matrix of float) -0:34 matrix-multiply ( temp 3X2 matrix of float) -0:34 Construct mat3x2 ( uniform 3X2 matrix of float) -0:34 m42: direct index for structure (layout( row_major std140) uniform 4X2 matrix of float) -0:34 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:34 Constant: -0:34 5 (const uint) -0:34 m33: direct index for structure (layout( row_major std140) uniform 3X3 matrix of float) -0:34 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:34 Constant: -0:34 3 (const uint) -0:35 Sequence -0:35 move second child to first child ( temp 4X3 matrix of float) -0:35 'r33' ( temp 4X3 matrix of float) -0:35 matrix-multiply ( temp 4X3 matrix of float) -0:35 Construct mat2x3 ( uniform 2X3 matrix of float) -0:35 m33: direct index for structure (layout( row_major std140) uniform 3X3 matrix of float) -0:35 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:35 Constant: -0:35 3 (const uint) -0:35 m42: direct index for structure (layout( row_major std140) uniform 4X2 matrix of float) -0:35 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:35 Constant: -0:35 5 (const uint) -0:37 Branch: Return with expression -0:37 add ( temp 4-component vector of float) -0:37 add ( temp 4-component vector of float) -0:37 add ( temp 4-component vector of float) -0:37 add ( temp 4-component vector of float) -0:37 add ( temp 4-component vector of float) -0:37 add ( temp 4-component vector of float) -0:37 add ( temp 4-component vector of float) -0:37 add ( temp 4-component vector of float) -0:37 add ( temp 4-component vector of float) -0:37 'r10' ( temp 4-component vector of float) -0:37 'r11' ( temp 4-component vector of float) -0:37 'r20' ( temp 4-component vector of float) -0:37 'r21' ( temp 4-component vector of float) -0:37 'r00' ( temp float) -0:37 'r01' ( temp float) -0:37 direct index ( temp float) -0:37 direct index ( temp 3-component vector of float) -0:37 'r30' ( temp 2X3 matrix of float) -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 0 (const int) -0:37 direct index ( temp 4-component vector of float) -0:37 'r31' ( temp 3X4 matrix of float) -0:37 Constant: -0:37 0 (const int) -0:37 direct index ( temp float) -0:37 direct index ( temp 2-component vector of float) -0:37 'r32' ( temp 3X2 matrix of float) -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 0 (const int) -0:37 direct index ( temp 4-component vector of float) -0:37 transpose ( temp 3X4 matrix of float) -0:37 'r33' ( temp 4X3 matrix of float) -0:37 Constant: -0:37 0 (const int) -0:18 Function Definition: main( ( temp void) -0:18 Function Parameters: -0:? Sequence -0:18 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:18 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 190 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 188 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 9 "@main(" - Name 12 "r00" - Name 21 "Matrix" - MemberName 21(Matrix) 0 "m44" - MemberName 21(Matrix) 1 "m43" - MemberName 21(Matrix) 2 "m34" - MemberName 21(Matrix) 3 "m33" - MemberName 21(Matrix) 4 "m24" - MemberName 21(Matrix) 5 "m42" - MemberName 21(Matrix) 6 "v4" - MemberName 21(Matrix) 7 "v3" - MemberName 21(Matrix) 8 "v2" - Name 23 "" - Name 37 "r01" - Name 49 "r10" - Name 61 "r11" - Name 73 "r20" - Name 88 "r21" - Name 102 "r30" - Name 118 "r31" - Name 133 "r32" - Name 146 "r33" - Name 188 "@entryPointOutput" - MemberDecorate 21(Matrix) 0 RowMajor - MemberDecorate 21(Matrix) 0 Offset 0 - MemberDecorate 21(Matrix) 0 MatrixStride 16 - MemberDecorate 21(Matrix) 1 RowMajor - MemberDecorate 21(Matrix) 1 Offset 64 - MemberDecorate 21(Matrix) 1 MatrixStride 16 - MemberDecorate 21(Matrix) 2 RowMajor - MemberDecorate 21(Matrix) 2 Offset 112 - MemberDecorate 21(Matrix) 2 MatrixStride 16 - MemberDecorate 21(Matrix) 3 RowMajor - MemberDecorate 21(Matrix) 3 Offset 176 - MemberDecorate 21(Matrix) 3 MatrixStride 16 - MemberDecorate 21(Matrix) 4 RowMajor - MemberDecorate 21(Matrix) 4 Offset 224 - MemberDecorate 21(Matrix) 4 MatrixStride 16 - MemberDecorate 21(Matrix) 5 RowMajor - MemberDecorate 21(Matrix) 5 Offset 288 - MemberDecorate 21(Matrix) 5 MatrixStride 16 - MemberDecorate 21(Matrix) 6 Offset 320 - MemberDecorate 21(Matrix) 7 Offset 336 - MemberDecorate 21(Matrix) 8 Offset 352 - Decorate 21(Matrix) Block - Decorate 23 DescriptorSet 0 - Decorate 23 Binding 0 - Decorate 188(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 11: TypePointer Function 6(float) - 13: TypeMatrix 7(fvec4) 4 - 14: TypeVector 6(float) 3 - 15: TypeMatrix 14(fvec3) 4 - 16: TypeMatrix 7(fvec4) 3 - 17: TypeMatrix 14(fvec3) 3 - 18: TypeMatrix 7(fvec4) 2 - 19: TypeVector 6(float) 2 - 20: TypeMatrix 19(fvec2) 4 - 21(Matrix): TypeStruct 13 15 16 17 18 20 7(fvec4) 14(fvec3) 19(fvec2) - 22: TypePointer Uniform 21(Matrix) - 23: 22(ptr) Variable Uniform - 24: TypeInt 32 1 - 25: 24(int) Constant 8 - 26: TypePointer Uniform 19(fvec2) - 29: 24(int) Constant 7 - 30: TypePointer Uniform 14(fvec3) - 38: 24(int) Constant 6 - 39: TypePointer Uniform 7(fvec4) - 48: TypePointer Function 7(fvec4) - 50: 24(int) Constant 0 - 51: TypePointer Uniform 13 - 62: 24(int) Constant 2 - 63: TypePointer Uniform 16 - 95: 24(int) Constant 1 - 96: TypePointer Uniform 15 - 100: TypeMatrix 14(fvec3) 2 - 101: TypePointer Function 100 - 103: 24(int) Constant 3 - 104: TypePointer Uniform 17 - 107: 24(int) Constant 4 - 108: TypePointer Uniform 18 - 117: TypePointer Function 16 - 123: TypeMatrix 19(fvec2) 3 - 132: TypePointer Function 123 - 134: 24(int) Constant 5 - 135: TypePointer Uniform 20 - 145: TypePointer Function 15 - 168: TypeInt 32 0 - 169: 168(int) Constant 0 - 187: TypePointer Output 7(fvec4) -188(@entryPointOutput): 187(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 189: 7(fvec4) FunctionCall 9(@main() - Store 188(@entryPointOutput) 189 - Return - FunctionEnd - 9(@main(): 7(fvec4) Function None 8 - 10: Label - 12(r00): 11(ptr) Variable Function - 37(r01): 11(ptr) Variable Function - 49(r10): 48(ptr) Variable Function - 61(r11): 48(ptr) Variable Function - 73(r20): 48(ptr) Variable Function - 88(r21): 48(ptr) Variable Function - 102(r30): 101(ptr) Variable Function - 118(r31): 117(ptr) Variable Function - 133(r32): 132(ptr) Variable Function - 146(r33): 145(ptr) Variable Function - 27: 26(ptr) AccessChain 23 25 - 28: 19(fvec2) Load 27 - 31: 30(ptr) AccessChain 23 29 - 32: 14(fvec3) Load 31 - 33: 6(float) CompositeExtract 32 0 - 34: 6(float) CompositeExtract 32 1 - 35: 19(fvec2) CompositeConstruct 33 34 - 36: 6(float) Dot 28 35 - Store 12(r00) 36 - 40: 39(ptr) AccessChain 23 38 - 41: 7(fvec4) Load 40 - 42: 6(float) CompositeExtract 41 0 - 43: 6(float) CompositeExtract 41 1 - 44: 19(fvec2) CompositeConstruct 42 43 - 45: 26(ptr) AccessChain 23 25 - 46: 19(fvec2) Load 45 - 47: 6(float) Dot 44 46 - Store 37(r01) 47 - 52: 51(ptr) AccessChain 23 50 - 53: 13 Load 52 - 54: 7(fvec4) CompositeExtract 53 0 - 55: 7(fvec4) CompositeExtract 53 1 - 56: 7(fvec4) CompositeExtract 53 2 - 57: 16 CompositeConstruct 54 55 56 - 58: 30(ptr) AccessChain 23 29 - 59: 14(fvec3) Load 58 - 60: 7(fvec4) MatrixTimesVector 57 59 - Store 49(r10) 60 - 64: 63(ptr) AccessChain 23 62 - 65: 16 Load 64 - 66: 39(ptr) AccessChain 23 38 - 67: 7(fvec4) Load 66 - 68: 6(float) CompositeExtract 67 0 - 69: 6(float) CompositeExtract 67 1 - 70: 6(float) CompositeExtract 67 2 - 71: 14(fvec3) CompositeConstruct 68 69 70 - 72: 7(fvec4) MatrixTimesVector 65 71 - Store 61(r11) 72 - 74: 30(ptr) AccessChain 23 29 - 75: 14(fvec3) Load 74 - 76: 51(ptr) AccessChain 23 50 - 77: 13 Load 76 - 78: 7(fvec4) CompositeExtract 77 0 - 79: 14(fvec3) VectorShuffle 78 78 0 1 2 - 80: 7(fvec4) CompositeExtract 77 1 - 81: 14(fvec3) VectorShuffle 80 80 0 1 2 - 82: 7(fvec4) CompositeExtract 77 2 - 83: 14(fvec3) VectorShuffle 82 82 0 1 2 - 84: 7(fvec4) CompositeExtract 77 3 - 85: 14(fvec3) VectorShuffle 84 84 0 1 2 - 86: 15 CompositeConstruct 79 81 83 85 - 87: 7(fvec4) VectorTimesMatrix 75 86 - Store 73(r20) 87 - 89: 39(ptr) AccessChain 23 38 - 90: 7(fvec4) Load 89 - 91: 6(float) CompositeExtract 90 0 - 92: 6(float) CompositeExtract 90 1 - 93: 6(float) CompositeExtract 90 2 - 94: 14(fvec3) CompositeConstruct 91 92 93 - 97: 96(ptr) AccessChain 23 95 - 98: 15 Load 97 - 99: 7(fvec4) VectorTimesMatrix 94 98 - Store 88(r21) 99 - 105: 104(ptr) AccessChain 23 103 - 106: 17 Load 105 - 109: 108(ptr) AccessChain 23 107 - 110: 18 Load 109 - 111: 7(fvec4) CompositeExtract 110 0 - 112: 14(fvec3) VectorShuffle 111 111 0 1 2 - 113: 7(fvec4) CompositeExtract 110 1 - 114: 14(fvec3) VectorShuffle 113 113 0 1 2 - 115: 100 CompositeConstruct 112 114 - 116: 100 MatrixTimesMatrix 106 115 - Store 102(r30) 116 - 119: 108(ptr) AccessChain 23 107 - 120: 18 Load 119 - 121: 104(ptr) AccessChain 23 103 - 122: 17 Load 121 - 124: 14(fvec3) CompositeExtract 122 0 - 125: 19(fvec2) VectorShuffle 124 124 0 1 - 126: 14(fvec3) CompositeExtract 122 1 - 127: 19(fvec2) VectorShuffle 126 126 0 1 - 128: 14(fvec3) CompositeExtract 122 2 - 129: 19(fvec2) VectorShuffle 128 128 0 1 - 130: 123 CompositeConstruct 125 127 129 - 131: 16 MatrixTimesMatrix 120 130 - Store 118(r31) 131 - 136: 135(ptr) AccessChain 23 134 - 137: 20 Load 136 - 138: 19(fvec2) CompositeExtract 137 0 - 139: 19(fvec2) CompositeExtract 137 1 - 140: 19(fvec2) CompositeExtract 137 2 - 141: 123 CompositeConstruct 138 139 140 - 142: 104(ptr) AccessChain 23 103 - 143: 17 Load 142 - 144: 123 MatrixTimesMatrix 141 143 - Store 133(r32) 144 - 147: 104(ptr) AccessChain 23 103 - 148: 17 Load 147 - 149: 14(fvec3) CompositeExtract 148 0 - 150: 14(fvec3) CompositeExtract 148 1 - 151: 100 CompositeConstruct 149 150 - 152: 135(ptr) AccessChain 23 134 - 153: 20 Load 152 - 154: 15 MatrixTimesMatrix 151 153 - Store 146(r33) 154 - 155: 7(fvec4) Load 49(r10) - 156: 7(fvec4) Load 61(r11) - 157: 7(fvec4) FAdd 155 156 - 158: 7(fvec4) Load 73(r20) - 159: 7(fvec4) FAdd 157 158 - 160: 7(fvec4) Load 88(r21) - 161: 7(fvec4) FAdd 159 160 - 162: 6(float) Load 12(r00) - 163: 7(fvec4) CompositeConstruct 162 162 162 162 - 164: 7(fvec4) FAdd 161 163 - 165: 6(float) Load 37(r01) - 166: 7(fvec4) CompositeConstruct 165 165 165 165 - 167: 7(fvec4) FAdd 164 166 - 170: 11(ptr) AccessChain 102(r30) 50 169 - 171: 6(float) Load 170 - 172: 7(fvec4) CompositeConstruct 171 171 171 171 - 173: 7(fvec4) FAdd 167 172 - 174: 48(ptr) AccessChain 118(r31) 50 - 175: 7(fvec4) Load 174 - 176: 7(fvec4) FAdd 173 175 - 177: 11(ptr) AccessChain 133(r32) 50 169 - 178: 6(float) Load 177 - 179: 7(fvec4) CompositeConstruct 178 178 178 178 - 180: 7(fvec4) FAdd 176 179 - 181: 15 Load 146(r33) - 182: 16 Transpose 181 - 183: 7(fvec4) CompositeExtract 182 0 - 184: 7(fvec4) FAdd 180 183 - ReturnValue 184 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.multiDescriptorSet.frag.out b/deps/glslang/Test/baseResults/hlsl.multiDescriptorSet.frag.out deleted file mode 100644 index cfe3ea8d..00000000 --- a/deps/glslang/Test/baseResults/hlsl.multiDescriptorSet.frag.out +++ /dev/null @@ -1,168 +0,0 @@ -hlsl.multiDescriptorSet.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 92 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 78 82 86 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 9 "PS_INPUT" - MemberName 9(PS_INPUT) 0 "Pos" - MemberName 9(PS_INPUT) 1 "Tex" - Name 13 "@main(struct-PS_INPUT-vf4-vf21;" - Name 12 "input" - Name 15 "output" - Name 23 "cbChangesEveryFrame" - MemberName 23(cbChangesEveryFrame) 0 "World" - MemberName 23(cbChangesEveryFrame) 1 "vMeshColor" - Name 25 "" - Name 34 "cbNeverChanges" - MemberName 34(cbNeverChanges) 0 "View" - Name 36 "" - Name 43 "cbChangeOnResize" - MemberName 43(cbChangeOnResize) 0 "Projection" - Name 45 "" - Name 59 "txDiffuseA" - Name 63 "samLinearA" - Name 76 "input" - Name 78 "input.Pos" - Name 82 "input.Tex" - Name 86 "@entryPointOutput" - Name 87 "param" - Name 90 "txDiffuseB" - Name 91 "samLinearB" - MemberDecorate 23(cbChangesEveryFrame) 0 RowMajor - MemberDecorate 23(cbChangesEveryFrame) 0 Offset 0 - MemberDecorate 23(cbChangesEveryFrame) 0 MatrixStride 16 - MemberDecorate 23(cbChangesEveryFrame) 1 Offset 64 - Decorate 23(cbChangesEveryFrame) Block - Decorate 25 DescriptorSet 2 - Decorate 25 Binding 2 - MemberDecorate 34(cbNeverChanges) 0 RowMajor - MemberDecorate 34(cbNeverChanges) 0 Offset 0 - MemberDecorate 34(cbNeverChanges) 0 MatrixStride 16 - Decorate 34(cbNeverChanges) Block - Decorate 36 DescriptorSet 2 - Decorate 36 Binding 0 - MemberDecorate 43(cbChangeOnResize) 0 RowMajor - MemberDecorate 43(cbChangeOnResize) 0 Offset 0 - MemberDecorate 43(cbChangeOnResize) 0 MatrixStride 16 - Decorate 43(cbChangeOnResize) Block - Decorate 45 DescriptorSet 2 - Decorate 45 Binding 1 - Decorate 59(txDiffuseA) DescriptorSet 0 - Decorate 59(txDiffuseA) Binding 0 - Decorate 63(samLinearA) DescriptorSet 0 - Decorate 63(samLinearA) Binding 1 - Decorate 78(input.Pos) BuiltIn FragCoord - Decorate 82(input.Tex) Location 0 - Decorate 86(@entryPointOutput) Location 0 - Decorate 90(txDiffuseB) DescriptorSet 1 - Decorate 90(txDiffuseB) Binding 0 - Decorate 91(samLinearB) DescriptorSet 1 - Decorate 91(samLinearB) Binding 1 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeVector 6(float) 2 - 9(PS_INPUT): TypeStruct 7(fvec4) 8(fvec2) - 10: TypePointer Function 9(PS_INPUT) - 11: TypeFunction 7(fvec4) 10(ptr) - 16: 6(float) Constant 0 - 17: 7(fvec4) ConstantComposite 16 16 16 16 - 18: 8(fvec2) ConstantComposite 16 16 - 19: 9(PS_INPUT) ConstantComposite 17 18 - 20: TypeInt 32 1 - 21: 20(int) Constant 0 - 22: TypeMatrix 7(fvec4) 4 -23(cbChangesEveryFrame): TypeStruct 22 7(fvec4) - 24: TypePointer Uniform 23(cbChangesEveryFrame) - 25: 24(ptr) Variable Uniform - 26: TypePointer Uniform 22 - 29: TypePointer Function 7(fvec4) -34(cbNeverChanges): TypeStruct 22 - 35: TypePointer Uniform 34(cbNeverChanges) - 36: 35(ptr) Variable Uniform -43(cbChangeOnResize): TypeStruct 22 - 44: TypePointer Uniform 43(cbChangeOnResize) - 45: 44(ptr) Variable Uniform - 52: 20(int) Constant 1 - 53: TypePointer Function 8(fvec2) - 57: TypeImage 6(float) 2D sampled format:Unknown - 58: TypePointer UniformConstant 57 - 59(txDiffuseA): 58(ptr) Variable UniformConstant - 61: TypeSampler - 62: TypePointer UniformConstant 61 - 63(samLinearA): 62(ptr) Variable UniformConstant - 65: TypeSampledImage 57 - 70: TypePointer Uniform 7(fvec4) - 77: TypePointer Input 7(fvec4) - 78(input.Pos): 77(ptr) Variable Input - 81: TypePointer Input 8(fvec2) - 82(input.Tex): 81(ptr) Variable Input - 85: TypePointer Output 7(fvec4) -86(@entryPointOutput): 85(ptr) Variable Output - 90(txDiffuseB): 58(ptr) Variable UniformConstant - 91(samLinearB): 62(ptr) Variable UniformConstant - 4(main): 2 Function None 3 - 5: Label - 76(input): 10(ptr) Variable Function - 87(param): 10(ptr) Variable Function - 79: 7(fvec4) Load 78(input.Pos) - 80: 29(ptr) AccessChain 76(input) 21 - Store 80 79 - 83: 8(fvec2) Load 82(input.Tex) - 84: 53(ptr) AccessChain 76(input) 52 - Store 84 83 - 88: 9(PS_INPUT) Load 76(input) - Store 87(param) 88 - 89: 7(fvec4) FunctionCall 13(@main(struct-PS_INPUT-vf4-vf21;) 87(param) - Store 86(@entryPointOutput) 89 - Return - FunctionEnd -13(@main(struct-PS_INPUT-vf4-vf21;): 7(fvec4) Function None 11 - 12(input): 10(ptr) FunctionParameter - 14: Label - 15(output): 10(ptr) Variable Function - Store 15(output) 19 - 27: 26(ptr) AccessChain 25 21 - 28: 22 Load 27 - 30: 29(ptr) AccessChain 12(input) 21 - 31: 7(fvec4) Load 30 - 32: 7(fvec4) MatrixTimesVector 28 31 - 33: 29(ptr) AccessChain 15(output) 21 - Store 33 32 - 37: 26(ptr) AccessChain 36 21 - 38: 22 Load 37 - 39: 29(ptr) AccessChain 15(output) 21 - 40: 7(fvec4) Load 39 - 41: 7(fvec4) MatrixTimesVector 38 40 - 42: 29(ptr) AccessChain 15(output) 21 - Store 42 41 - 46: 26(ptr) AccessChain 45 21 - 47: 22 Load 46 - 48: 29(ptr) AccessChain 15(output) 21 - 49: 7(fvec4) Load 48 - 50: 7(fvec4) MatrixTimesVector 47 49 - 51: 29(ptr) AccessChain 15(output) 21 - Store 51 50 - 54: 53(ptr) AccessChain 12(input) 52 - 55: 8(fvec2) Load 54 - 56: 53(ptr) AccessChain 15(output) 52 - Store 56 55 - 60: 57 Load 59(txDiffuseA) - 64: 61 Load 63(samLinearA) - 66: 65 SampledImage 60 64 - 67: 53(ptr) AccessChain 15(output) 52 - 68: 8(fvec2) Load 67 - 69: 7(fvec4) ImageSampleImplicitLod 66 68 - 71: 70(ptr) AccessChain 25 52 - 72: 7(fvec4) Load 71 - 73: 7(fvec4) FMul 69 72 - ReturnValue 73 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.multiEntry.vert.out b/deps/glslang/Test/baseResults/hlsl.multiEntry.vert.out deleted file mode 100644 index fcb9f18f..00000000 --- a/deps/glslang/Test/baseResults/hlsl.multiEntry.vert.out +++ /dev/null @@ -1,141 +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): 8000a -// 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 19(Position) Binding 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/Test/baseResults/hlsl.multiReturn.frag.out b/deps/glslang/Test/baseResults/hlsl.multiReturn.frag.out deleted file mode 100644 index 93798634..00000000 --- a/deps/glslang/Test/baseResults/hlsl.multiReturn.frag.out +++ /dev/null @@ -1,129 +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): 8000a -// 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 - Decorate 18 Binding 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/Test/baseResults/hlsl.namespace.frag.out b/deps/glslang/Test/baseResults/hlsl.namespace.frag.out deleted file mode 100644 index e224eb92..00000000 --- a/deps/glslang/Test/baseResults/hlsl.namespace.frag.out +++ /dev/null @@ -1,173 +0,0 @@ -hlsl.namespace.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:5 Function Definition: N1::getVec( ( temp 4-component vector of float) -0:5 Function Parameters: -0:? Sequence -0:5 Branch: Return with expression -0:5 'v1' ( global 4-component vector of float) -0:10 Function Definition: N2::getVec( ( temp 4-component vector of float) -0:10 Function Parameters: -0:? Sequence -0:10 Branch: Return with expression -0:10 'v2' ( global 4-component vector of float) -0:12 Function Definition: N2::N3::getVec( ( temp 4-component vector of float) -0:12 Function Parameters: -0:? Sequence -0:12 Branch: Return with expression -0:12 'v2' ( global 4-component vector of float) -0:15 Function Definition: N2::N3::C1::getVec( ( global 4-component vector of float) -0:15 Function Parameters: -0:? Sequence -0:15 Branch: Return with expression -0:15 'v2' ( global 4-component vector of float) -0:21 Function Definition: @main( ( temp 4-component vector of float) -0:21 Function Parameters: -0:? Sequence -0:22 Branch: Return with expression -0:22 add ( temp 4-component vector of float) -0:22 add ( temp 4-component vector of float) -0:22 add ( temp 4-component vector of float) -0:22 Function Call: N1::getVec( ( temp 4-component vector of float) -0:22 Function Call: N2::getVec( ( temp 4-component vector of float) -0:22 Function Call: N2::N3::getVec( ( temp 4-component vector of float) -0:22 vector-scale ( temp 4-component vector of float) -0:22 Function Call: N2::N3::C1::getVec( ( global 4-component vector of float) -0:22 'N2::gf' ( global float) -0:21 Function Definition: main( ( temp void) -0:21 Function Parameters: -0:? Sequence -0:21 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:21 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'v1' ( global 4-component vector of float) -0:? 'v2' ( global 4-component vector of float) -0:? 'N2::gf' ( global float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:5 Function Definition: N1::getVec( ( temp 4-component vector of float) -0:5 Function Parameters: -0:? Sequence -0:5 Branch: Return with expression -0:5 'v1' ( global 4-component vector of float) -0:10 Function Definition: N2::getVec( ( temp 4-component vector of float) -0:10 Function Parameters: -0:? Sequence -0:10 Branch: Return with expression -0:10 'v2' ( global 4-component vector of float) -0:12 Function Definition: N2::N3::getVec( ( temp 4-component vector of float) -0:12 Function Parameters: -0:? Sequence -0:12 Branch: Return with expression -0:12 'v2' ( global 4-component vector of float) -0:15 Function Definition: N2::N3::C1::getVec( ( global 4-component vector of float) -0:15 Function Parameters: -0:? Sequence -0:15 Branch: Return with expression -0:15 'v2' ( global 4-component vector of float) -0:21 Function Definition: @main( ( temp 4-component vector of float) -0:21 Function Parameters: -0:? Sequence -0:22 Branch: Return with expression -0:22 add ( temp 4-component vector of float) -0:22 add ( temp 4-component vector of float) -0:22 add ( temp 4-component vector of float) -0:22 Function Call: N1::getVec( ( temp 4-component vector of float) -0:22 Function Call: N2::getVec( ( temp 4-component vector of float) -0:22 Function Call: N2::N3::getVec( ( temp 4-component vector of float) -0:22 vector-scale ( temp 4-component vector of float) -0:22 Function Call: N2::N3::C1::getVec( ( global 4-component vector of float) -0:22 'N2::gf' ( global float) -0:21 Function Definition: main( ( temp void) -0:21 Function Parameters: -0:? Sequence -0:21 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:21 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'v1' ( global 4-component vector of float) -0:? 'v2' ( global 4-component vector of float) -0:? 'N2::gf' ( global float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 50 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 48 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 9 "N1::getVec(" - Name 11 "N2::getVec(" - Name 13 "N2::N3::getVec(" - Name 15 "N2::N3::C1::getVec(" - Name 17 "@main(" - Name 20 "v1" - Name 24 "v2" - Name 41 "N2::gf" - Name 48 "@entryPointOutput" - Decorate 48(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 19: TypePointer Private 7(fvec4) - 20(v1): 19(ptr) Variable Private - 24(v2): 19(ptr) Variable Private - 40: TypePointer Private 6(float) - 41(N2::gf): 40(ptr) Variable Private - 47: TypePointer Output 7(fvec4) -48(@entryPointOutput): 47(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 49: 7(fvec4) FunctionCall 17(@main() - Store 48(@entryPointOutput) 49 - Return - FunctionEnd - 9(N1::getVec(): 7(fvec4) Function None 8 - 10: Label - 21: 7(fvec4) Load 20(v1) - ReturnValue 21 - FunctionEnd - 11(N2::getVec(): 7(fvec4) Function None 8 - 12: Label - 25: 7(fvec4) Load 24(v2) - ReturnValue 25 - FunctionEnd -13(N2::N3::getVec(): 7(fvec4) Function None 8 - 14: Label - 28: 7(fvec4) Load 24(v2) - ReturnValue 28 - FunctionEnd -15(N2::N3::C1::getVec(): 7(fvec4) Function None 8 - 16: Label - 31: 7(fvec4) Load 24(v2) - ReturnValue 31 - FunctionEnd - 17(@main(): 7(fvec4) Function None 8 - 18: Label - 34: 7(fvec4) FunctionCall 9(N1::getVec() - 35: 7(fvec4) FunctionCall 11(N2::getVec() - 36: 7(fvec4) FAdd 34 35 - 37: 7(fvec4) FunctionCall 13(N2::N3::getVec() - 38: 7(fvec4) FAdd 36 37 - 39: 7(fvec4) FunctionCall 15(N2::N3::C1::getVec() - 42: 6(float) Load 41(N2::gf) - 43: 7(fvec4) VectorTimesScalar 39 42 - 44: 7(fvec4) FAdd 38 43 - ReturnValue 44 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.noSemantic.functionality1.comp.out b/deps/glslang/Test/baseResults/hlsl.noSemantic.functionality1.comp.out deleted file mode 100644 index 3531a347..00000000 --- a/deps/glslang/Test/baseResults/hlsl.noSemantic.functionality1.comp.out +++ /dev/null @@ -1,63 +0,0 @@ -hlsl.noSemantic.functionality1.comp -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 30 - - Capability Shader - Extension "SPV_GOOGLE_hlsl_functionality1" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" - ExecutionMode 4 LocalSize 1 1 1 - Source HLSL 500 - Name 4 "main" - Name 6 "@main(" - Name 11 "Buf" - MemberName 11(Buf) 0 "@data" - Name 13 "Buf" - Name 17 "Buf@count" - MemberName 17(Buf@count) 0 "@count" - Name 19 "Buf@count" - Decorate 10 ArrayStride 16 - MemberDecorate 11(Buf) 0 Offset 0 - Decorate 11(Buf) BufferBlock - Decorate 13(Buf) DescriptorSet 0 - Decorate 13(Buf) Binding 0 - MemberDecorate 17(Buf@count) 0 Offset 0 - Decorate 17(Buf@count) BufferBlock - Decorate 19(Buf@count) DescriptorSet 0 - Decorate 19(Buf@count) Binding 0 - DecorateId 13(Buf) DecorationHlslCounterBufferGOOGLE 19(Buf@count) - 2: TypeVoid - 3: TypeFunction 2 - 8: TypeFloat 32 - 9: TypeVector 8(float) 4 - 10: TypeRuntimeArray 9(fvec4) - 11(Buf): TypeStruct 10 - 12: TypePointer Uniform 11(Buf) - 13(Buf): 12(ptr) Variable Uniform - 14: TypeInt 32 1 - 15: 14(int) Constant 0 - 16: TypeInt 32 0 - 17(Buf@count): TypeStruct 16(int) - 18: TypePointer Uniform 17(Buf@count) - 19(Buf@count): 18(ptr) Variable Uniform - 20: TypePointer Uniform 16(int) - 22: 16(int) Constant 1 - 23: 16(int) Constant 0 - 25: 8(float) Constant 1065353216 - 26: 9(fvec4) ConstantComposite 25 25 25 25 - 27: TypePointer Uniform 9(fvec4) - 4(main): 2 Function None 3 - 5: Label - 29: 2 FunctionCall 6(@main() - Return - FunctionEnd - 6(@main(): 2 Function None 3 - 7: Label - 21: 20(ptr) AccessChain 19(Buf@count) 15 - 24: 16(int) AtomicIAdd 21 22 23 22 - 28: 27(ptr) AccessChain 13(Buf) 15 24 - Store 28 26 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.nonint-index.frag.out b/deps/glslang/Test/baseResults/hlsl.nonint-index.frag.out deleted file mode 100644 index 897f8bc3..00000000 --- a/deps/glslang/Test/baseResults/hlsl.nonint-index.frag.out +++ /dev/null @@ -1,152 +0,0 @@ -hlsl.nonint-index.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:4 Function Definition: @main(f1; ( temp float) -0:4 Function Parameters: -0:4 'input' ( in float) -0:? Sequence -0:7 Branch: Return with expression -0:7 add ( temp float) -0:7 add ( temp float) -0:7 add ( temp float) -0:7 indirect index ( temp float) -0:7 Constant: -0:7 1.000000 -0:7 2.000000 -0:7 3.000000 -0:7 Convert float to uint ( temp uint) -0:7 'input' ( in float) -0:7 Constant: -0:7 3.000000 -0:7 Constant: -0:7 2.000000 -0:7 Constant: -0:7 1.000000 -0:4 Function Definition: main( ( temp void) -0:4 Function Parameters: -0:? Sequence -0:4 move second child to first child ( temp float) -0:? 'input' ( temp float) -0:? 'input' (layout( location=0) in float) -0:4 move second child to first child ( temp float) -0:? '@entryPointOutput' (layout( location=0) out float) -0:4 Function Call: @main(f1; ( temp float) -0:? 'input' ( temp float) -0:? Linker Objects -0:? 'array' ( const 3-element array of float) -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? '@entryPointOutput' (layout( location=0) out float) -0:? 'input' (layout( location=0) in float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:4 Function Definition: @main(f1; ( temp float) -0:4 Function Parameters: -0:4 'input' ( in float) -0:? Sequence -0:7 Branch: Return with expression -0:7 add ( temp float) -0:7 add ( temp float) -0:7 add ( temp float) -0:7 indirect index ( temp float) -0:7 Constant: -0:7 1.000000 -0:7 2.000000 -0:7 3.000000 -0:7 Convert float to uint ( temp uint) -0:7 'input' ( in float) -0:7 Constant: -0:7 3.000000 -0:7 Constant: -0:7 2.000000 -0:7 Constant: -0:7 1.000000 -0:4 Function Definition: main( ( temp void) -0:4 Function Parameters: -0:? Sequence -0:4 move second child to first child ( temp float) -0:? 'input' ( temp float) -0:? 'input' (layout( location=0) in float) -0:4 move second child to first child ( temp float) -0:? '@entryPointOutput' (layout( location=0) out float) -0:4 Function Call: @main(f1; ( temp float) -0:? 'input' ( temp float) -0:? Linker Objects -0:? 'array' ( const 3-element array of float) -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? '@entryPointOutput' (layout( location=0) out float) -0:? 'input' (layout( location=0) in float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 39 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 32 35 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 10 "@main(f1;" - Name 9 "input" - Name 22 "indexable" - Name 30 "input" - Name 32 "input" - Name 35 "@entryPointOutput" - Name 36 "param" - Decorate 32(input) Location 0 - Decorate 35(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypePointer Function 6(float) - 8: TypeFunction 6(float) 7(ptr) - 12: TypeInt 32 0 - 13: 12(int) Constant 3 - 14: TypeArray 6(float) 13 - 15: 6(float) Constant 1065353216 - 16: 6(float) Constant 1073741824 - 17: 6(float) Constant 1077936128 - 18: 14 ConstantComposite 15 16 17 - 21: TypePointer Function 14 - 31: TypePointer Input 6(float) - 32(input): 31(ptr) Variable Input - 34: TypePointer Output 6(float) -35(@entryPointOutput): 34(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 30(input): 7(ptr) Variable Function - 36(param): 7(ptr) Variable Function - 33: 6(float) Load 32(input) - Store 30(input) 33 - 37: 6(float) Load 30(input) - Store 36(param) 37 - 38: 6(float) FunctionCall 10(@main(f1;) 36(param) - Store 35(@entryPointOutput) 38 - Return - FunctionEnd - 10(@main(f1;): 6(float) Function None 8 - 9(input): 7(ptr) FunctionParameter - 11: Label - 22(indexable): 21(ptr) Variable Function - 19: 6(float) Load 9(input) - 20: 12(int) ConvertFToU 19 - Store 22(indexable) 18 - 23: 7(ptr) AccessChain 22(indexable) 20 - 24: 6(float) Load 23 - 25: 6(float) FAdd 24 17 - 26: 6(float) FAdd 25 16 - 27: 6(float) FAdd 26 15 - ReturnValue 27 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.nonstaticMemberFunction.frag.out b/deps/glslang/Test/baseResults/hlsl.nonstaticMemberFunction.frag.out deleted file mode 100644 index 5a485c67..00000000 --- a/deps/glslang/Test/baseResults/hlsl.nonstaticMemberFunction.frag.out +++ /dev/null @@ -1,436 +0,0 @@ -hlsl.nonstaticMemberFunction.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:1 Sequence -0:1 move second child to first child ( temp 2-component vector of float) -0:1 'i' ( global 2-component vector of float) -0:1 Constant: -0:1 1.000000 -0:1 2.000000 -0:5 Function Definition: type1::setmem(vf4; ( temp void) -0:5 Function Parameters: -0:5 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) -0:5 'm' ( in 4-component vector of float) -0:? Sequence -0:5 move second child to first child ( temp 4-component vector of float) -0:5 memVar: direct index for structure ( temp 4-component vector of float) -0:5 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) -0:5 Constant: -0:5 0 (const uint) -0:5 'm' ( in 4-component vector of float) -0:6 Function Definition: type1::seti(i1; ( temp void) -0:6 Function Parameters: -0:6 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) -0:6 'si' ( in int) -0:? Sequence -0:6 move second child to first child ( temp int) -0:6 i: direct index for structure ( temp int) -0:6 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) -0:6 Constant: -0:6 1 (const uint) -0:6 'si' ( in int) -0:9 Function Definition: type1::memFun(vf4; ( temp 4-component vector of float) -0:9 Function Parameters: -0:9 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) -0:9 'a' ( in 4-component vector of float) -0:? Sequence -0:10 Branch: Return with expression -0:10 add ( temp 4-component vector of float) -0:10 vector-scale ( temp 4-component vector of float) -0:10 Convert int to float ( temp float) -0:10 i: direct index for structure ( temp int) -0:10 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) -0:10 Constant: -0:10 1 (const uint) -0:10 'a' ( in 4-component vector of float) -0:10 memVar: direct index for structure ( temp 4-component vector of float) -0:10 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) -0:10 Constant: -0:10 0 (const uint) -0:13 Function Definition: type1::memFun(i1; ( temp int) -0:13 Function Parameters: -0:13 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) -0:13 'a' ( in int) -0:? Sequence -0:14 Branch: Return with expression -0:14 Convert float to int ( temp int) -0:14 subtract ( temp float) -0:14 Convert int to float ( temp float) -0:14 add ( temp int) -0:14 i: direct index for structure ( temp int) -0:14 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) -0:14 Constant: -0:14 1 (const uint) -0:14 'a' ( in int) -0:14 direct index ( temp float) -0:14 memVar: direct index for structure ( temp 4-component vector of float) -0:14 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) -0:14 Constant: -0:14 0 (const uint) -0:14 Constant: -0:14 2 (const int) -0:19 Sequence -0:19 move second child to first child ( temp 2-component vector of float) -0:19 'j' ( global 2-component vector of float) -0:19 'i' ( global 2-component vector of float) -0:23 Function Definition: type2::memFun( ( temp 2-component vector of float) -0:23 Function Parameters: -0:23 '@this' ( temp structure{}) -0:? Sequence -0:23 Branch: Return with expression -0:23 'i' ( global 2-component vector of float) -0:27 Function Definition: @main( ( temp 4-component vector of float) -0:27 Function Parameters: -0:? Sequence -0:29 Function Call: type1::setmem(vf4; ( temp void) -0:29 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i}) -0:29 Constant: -0:29 2.000000 -0:29 2.000000 -0:29 2.000000 -0:29 2.000000 -0:30 Function Call: type1::seti(i1; ( temp void) -0:30 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i}) -0:30 Constant: -0:30 17 (const int) -0:31 Sequence -0:31 move second child to first child ( temp 4-component vector of float) -0:31 'f4' ( temp 4-component vector of float) -0:31 Constant: -0:31 1.000000 -0:31 1.000000 -0:31 1.000000 -0:31 1.000000 -0:32 add second child into first child ( temp 4-component vector of float) -0:32 'f4' ( temp 4-component vector of float) -0:32 Function Call: type1::memFun(vf4; ( temp 4-component vector of float) -0:32 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i}) -0:32 Constant: -0:32 5.000000 -0:32 5.000000 -0:32 5.000000 -0:32 5.000000 -0:33 add second child into first child ( temp 4-component vector of float) -0:33 'f4' ( temp 4-component vector of float) -0:33 Convert int to float ( temp float) -0:33 Function Call: type1::memFun(i1; ( temp int) -0:33 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i}) -0:33 Constant: -0:33 7 (const int) -0:34 Branch: Return with expression -0:34 'f4' ( temp 4-component vector of float) -0:27 Function Definition: main( ( temp void) -0:27 Function Parameters: -0:? Sequence -0:27 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:27 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'i' ( global 2-component vector of float) -0:? 'j' ( global 2-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:1 Sequence -0:1 move second child to first child ( temp 2-component vector of float) -0:1 'i' ( global 2-component vector of float) -0:1 Constant: -0:1 1.000000 -0:1 2.000000 -0:5 Function Definition: type1::setmem(vf4; ( temp void) -0:5 Function Parameters: -0:5 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) -0:5 'm' ( in 4-component vector of float) -0:? Sequence -0:5 move second child to first child ( temp 4-component vector of float) -0:5 memVar: direct index for structure ( temp 4-component vector of float) -0:5 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) -0:5 Constant: -0:5 0 (const uint) -0:5 'm' ( in 4-component vector of float) -0:6 Function Definition: type1::seti(i1; ( temp void) -0:6 Function Parameters: -0:6 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) -0:6 'si' ( in int) -0:? Sequence -0:6 move second child to first child ( temp int) -0:6 i: direct index for structure ( temp int) -0:6 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) -0:6 Constant: -0:6 1 (const uint) -0:6 'si' ( in int) -0:9 Function Definition: type1::memFun(vf4; ( temp 4-component vector of float) -0:9 Function Parameters: -0:9 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) -0:9 'a' ( in 4-component vector of float) -0:? Sequence -0:10 Branch: Return with expression -0:10 add ( temp 4-component vector of float) -0:10 vector-scale ( temp 4-component vector of float) -0:10 Convert int to float ( temp float) -0:10 i: direct index for structure ( temp int) -0:10 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) -0:10 Constant: -0:10 1 (const uint) -0:10 'a' ( in 4-component vector of float) -0:10 memVar: direct index for structure ( temp 4-component vector of float) -0:10 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) -0:10 Constant: -0:10 0 (const uint) -0:13 Function Definition: type1::memFun(i1; ( temp int) -0:13 Function Parameters: -0:13 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) -0:13 'a' ( in int) -0:? Sequence -0:14 Branch: Return with expression -0:14 Convert float to int ( temp int) -0:14 subtract ( temp float) -0:14 Convert int to float ( temp float) -0:14 add ( temp int) -0:14 i: direct index for structure ( temp int) -0:14 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) -0:14 Constant: -0:14 1 (const uint) -0:14 'a' ( in int) -0:14 direct index ( temp float) -0:14 memVar: direct index for structure ( temp 4-component vector of float) -0:14 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) -0:14 Constant: -0:14 0 (const uint) -0:14 Constant: -0:14 2 (const int) -0:19 Sequence -0:19 move second child to first child ( temp 2-component vector of float) -0:19 'j' ( global 2-component vector of float) -0:19 'i' ( global 2-component vector of float) -0:23 Function Definition: type2::memFun( ( temp 2-component vector of float) -0:23 Function Parameters: -0:23 '@this' ( temp structure{}) -0:? Sequence -0:23 Branch: Return with expression -0:23 'i' ( global 2-component vector of float) -0:27 Function Definition: @main( ( temp 4-component vector of float) -0:27 Function Parameters: -0:? Sequence -0:29 Function Call: type1::setmem(vf4; ( temp void) -0:29 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i}) -0:29 Constant: -0:29 2.000000 -0:29 2.000000 -0:29 2.000000 -0:29 2.000000 -0:30 Function Call: type1::seti(i1; ( temp void) -0:30 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i}) -0:30 Constant: -0:30 17 (const int) -0:31 Sequence -0:31 move second child to first child ( temp 4-component vector of float) -0:31 'f4' ( temp 4-component vector of float) -0:31 Constant: -0:31 1.000000 -0:31 1.000000 -0:31 1.000000 -0:31 1.000000 -0:32 add second child into first child ( temp 4-component vector of float) -0:32 'f4' ( temp 4-component vector of float) -0:32 Function Call: type1::memFun(vf4; ( temp 4-component vector of float) -0:32 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i}) -0:32 Constant: -0:32 5.000000 -0:32 5.000000 -0:32 5.000000 -0:32 5.000000 -0:33 add second child into first child ( temp 4-component vector of float) -0:33 'f4' ( temp 4-component vector of float) -0:33 Convert int to float ( temp float) -0:33 Function Call: type1::memFun(i1; ( temp int) -0:33 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i}) -0:33 Constant: -0:33 7 (const int) -0:34 Branch: Return with expression -0:34 'f4' ( temp 4-component vector of float) -0:27 Function Definition: main( ( temp void) -0:27 Function Parameters: -0:? Sequence -0:27 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:27 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'i' ( global 2-component vector of float) -0:? 'j' ( global 2-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 111 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 109 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 9 "type1" - MemberName 9(type1) 0 "memVar" - MemberName 9(type1) 1 "i" - Name 15 "type1::setmem(vf4;" - Name 13 "@this" - Name 14 "m" - Name 21 "type1::seti(i1;" - Name 19 "@this" - Name 20 "si" - Name 26 "type1::memFun(vf4;" - Name 24 "@this" - Name 25 "a" - Name 31 "type1::memFun(i1;" - Name 29 "@this" - Name 30 "a" - Name 33 "type2" - Name 38 "type2::memFun(" - Name 37 "@this" - Name 41 "@main(" - Name 44 "i" - Name 48 "j" - Name 83 "test" - Name 85 "param" - Name 88 "param" - Name 90 "f4" - Name 94 "param" - Name 99 "param" - Name 109 "@entryPointOutput" - Decorate 109(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeInt 32 1 - 9(type1): TypeStruct 7(fvec4) 8(int) - 10: TypePointer Function 9(type1) - 11: TypePointer Function 7(fvec4) - 12: TypeFunction 2 10(ptr) 11(ptr) - 17: TypePointer Function 8(int) - 18: TypeFunction 2 10(ptr) 17(ptr) - 23: TypeFunction 7(fvec4) 10(ptr) 11(ptr) - 28: TypeFunction 8(int) 10(ptr) 17(ptr) - 33(type2): TypeStruct - 34: TypePointer Function 33(type2) - 35: TypeVector 6(float) 2 - 36: TypeFunction 35(fvec2) 34(ptr) - 40: TypeFunction 7(fvec4) - 43: TypePointer Private 35(fvec2) - 44(i): 43(ptr) Variable Private - 45: 6(float) Constant 1065353216 - 46: 6(float) Constant 1073741824 - 47: 35(fvec2) ConstantComposite 45 46 - 48(j): 43(ptr) Variable Private - 50: 8(int) Constant 0 - 53: 8(int) Constant 1 - 71: TypeInt 32 0 - 72: 71(int) Constant 2 - 73: TypePointer Function 6(float) - 84: 7(fvec4) ConstantComposite 46 46 46 46 - 87: 8(int) Constant 17 - 91: 7(fvec4) ConstantComposite 45 45 45 45 - 92: 6(float) Constant 1084227584 - 93: 7(fvec4) ConstantComposite 92 92 92 92 - 98: 8(int) Constant 7 - 108: TypePointer Output 7(fvec4) -109(@entryPointOutput): 108(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - Store 44(i) 47 - 49: 35(fvec2) Load 44(i) - Store 48(j) 49 - 110: 7(fvec4) FunctionCall 41(@main() - Store 109(@entryPointOutput) 110 - Return - FunctionEnd -15(type1::setmem(vf4;): 2 Function None 12 - 13(@this): 10(ptr) FunctionParameter - 14(m): 11(ptr) FunctionParameter - 16: Label - 51: 7(fvec4) Load 14(m) - 52: 11(ptr) AccessChain 13(@this) 50 - Store 52 51 - Return - FunctionEnd -21(type1::seti(i1;): 2 Function None 18 - 19(@this): 10(ptr) FunctionParameter - 20(si): 17(ptr) FunctionParameter - 22: Label - 54: 8(int) Load 20(si) - 55: 17(ptr) AccessChain 19(@this) 53 - Store 55 54 - Return - FunctionEnd -26(type1::memFun(vf4;): 7(fvec4) Function None 23 - 24(@this): 10(ptr) FunctionParameter - 25(a): 11(ptr) FunctionParameter - 27: Label - 56: 17(ptr) AccessChain 24(@this) 53 - 57: 8(int) Load 56 - 58: 6(float) ConvertSToF 57 - 59: 7(fvec4) Load 25(a) - 60: 7(fvec4) VectorTimesScalar 59 58 - 61: 11(ptr) AccessChain 24(@this) 50 - 62: 7(fvec4) Load 61 - 63: 7(fvec4) FAdd 60 62 - ReturnValue 63 - FunctionEnd -31(type1::memFun(i1;): 8(int) Function None 28 - 29(@this): 10(ptr) FunctionParameter - 30(a): 17(ptr) FunctionParameter - 32: Label - 66: 17(ptr) AccessChain 29(@this) 53 - 67: 8(int) Load 66 - 68: 8(int) Load 30(a) - 69: 8(int) IAdd 67 68 - 70: 6(float) ConvertSToF 69 - 74: 73(ptr) AccessChain 29(@this) 50 72 - 75: 6(float) Load 74 - 76: 6(float) FSub 70 75 - 77: 8(int) ConvertFToS 76 - ReturnValue 77 - FunctionEnd -38(type2::memFun(): 35(fvec2) Function None 36 - 37(@this): 34(ptr) FunctionParameter - 39: Label - 80: 35(fvec2) Load 44(i) - ReturnValue 80 - FunctionEnd - 41(@main(): 7(fvec4) Function None 40 - 42: Label - 83(test): 10(ptr) Variable Function - 85(param): 11(ptr) Variable Function - 88(param): 17(ptr) Variable Function - 90(f4): 11(ptr) Variable Function - 94(param): 11(ptr) Variable Function - 99(param): 17(ptr) Variable Function - Store 85(param) 84 - 86: 2 FunctionCall 15(type1::setmem(vf4;) 83(test) 85(param) - Store 88(param) 87 - 89: 2 FunctionCall 21(type1::seti(i1;) 83(test) 88(param) - Store 90(f4) 91 - Store 94(param) 93 - 95: 7(fvec4) FunctionCall 26(type1::memFun(vf4;) 83(test) 94(param) - 96: 7(fvec4) Load 90(f4) - 97: 7(fvec4) FAdd 96 95 - Store 90(f4) 97 - Store 99(param) 98 - 100: 8(int) FunctionCall 31(type1::memFun(i1;) 83(test) 99(param) - 101: 6(float) ConvertSToF 100 - 102: 7(fvec4) Load 90(f4) - 103: 7(fvec4) CompositeConstruct 101 101 101 101 - 104: 7(fvec4) FAdd 102 103 - Store 90(f4) 104 - 105: 7(fvec4) Load 90(f4) - ReturnValue 105 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.numericsuffixes.frag.out b/deps/glslang/Test/baseResults/hlsl.numericsuffixes.frag.out deleted file mode 100644 index 1725d3f2..00000000 --- a/deps/glslang/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): 8000a -// 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/Test/baseResults/hlsl.numthreads.comp.out b/deps/glslang/Test/baseResults/hlsl.numthreads.comp.out deleted file mode 100644 index c8676e38..00000000 --- a/deps/glslang/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): 8000a -// 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/Test/baseResults/hlsl.opaque-type-bug.frag.out b/deps/glslang/Test/baseResults/hlsl.opaque-type-bug.frag.out deleted file mode 100644 index 738fa4f0..00000000 --- a/deps/glslang/Test/baseResults/hlsl.opaque-type-bug.frag.out +++ /dev/null @@ -1,112 +0,0 @@ -hlsl.opaque-type-bug.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:6 Function Definition: TexFunc(t21;vf3; ( temp void) -0:6 Function Parameters: -0:6 't2D' ( const (read only) texture2D) -0:6 'RGB' ( out 3-component vector of float) -0:? Sequence -0:7 move second child to first child ( temp 3-component vector of float) -0:7 'RGB' ( out 3-component vector of float) -0:7 Constant: -0:7 0.000000 -0:7 0.000000 -0:7 0.000000 -0:12 Function Definition: @main( ( temp void) -0:12 Function Parameters: -0:? Sequence -0:15 Function Call: TexFunc(t21;vf3; ( temp void) -0:15 'MyTexture' (layout( binding=0) uniform texture2D) -0:15 'final_RGB' ( temp 3-component vector of float) -0:12 Function Definition: main( ( temp void) -0:12 Function Parameters: -0:? Sequence -0:12 Function Call: @main( ( temp void) -0:? Linker Objects -0:? 'MyTexture' (layout( binding=0) uniform texture2D) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:6 Function Definition: TexFunc(t21;vf3; ( temp void) -0:6 Function Parameters: -0:6 't2D' ( const (read only) texture2D) -0:6 'RGB' ( out 3-component vector of float) -0:? Sequence -0:7 move second child to first child ( temp 3-component vector of float) -0:7 'RGB' ( out 3-component vector of float) -0:7 Constant: -0:7 0.000000 -0:7 0.000000 -0:7 0.000000 -0:12 Function Definition: @main( ( temp void) -0:12 Function Parameters: -0:? Sequence -0:15 Function Call: TexFunc(t21;vf3; ( temp void) -0:15 'MyTexture' (layout( binding=0) uniform texture2D) -0:15 'final_RGB' ( temp 3-component vector of float) -0:12 Function Definition: main( ( temp void) -0:12 Function Parameters: -0:? Sequence -0:12 Function Call: @main( ( temp void) -0:? Linker Objects -0:? 'MyTexture' (layout( binding=0) uniform texture2D) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 27 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 13 "TexFunc(t21;vf3;" - Name 11 "t2D" - Name 12 "RGB" - Name 15 "@main(" - Name 20 "MyTexture" - Name 22 "final_RGB" - Name 23 "param" - Decorate 20(MyTexture) DescriptorSet 0 - Decorate 20(MyTexture) Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeImage 6(float) 2D sampled format:Unknown - 8: TypeVector 6(float) 3 - 9: TypePointer Function 8(fvec3) - 10: TypeFunction 2 7 9(ptr) - 17: 6(float) Constant 0 - 18: 8(fvec3) ConstantComposite 17 17 17 - 19: TypePointer UniformConstant 7 - 20(MyTexture): 19(ptr) Variable UniformConstant - 4(main): 2 Function None 3 - 5: Label - 26: 2 FunctionCall 15(@main() - Return - FunctionEnd -13(TexFunc(t21;vf3;): 2 Function None 10 - 11(t2D): 7 FunctionParameter - 12(RGB): 9(ptr) FunctionParameter - 14: Label - Store 12(RGB) 18 - Return - FunctionEnd - 15(@main(): 2 Function None 3 - 16: Label - 22(final_RGB): 9(ptr) Variable Function - 23(param): 9(ptr) Variable Function - 21: 7 Load 20(MyTexture) - 24: 2 FunctionCall 13(TexFunc(t21;vf3;) 21 23(param) - 25: 8(fvec3) Load 23(param) - Store 22(final_RGB) 25 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.overload.frag.out b/deps/glslang/Test/baseResults/hlsl.overload.frag.out deleted file mode 100644 index 4cfc3911..00000000 --- a/deps/glslang/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:134 Convert int to uint ( temp 2-component vector of uint) -0:134 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:134 Convert int to uint ( temp 2-component vector of uint) -0:134 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): 8000a -// 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) FUnordNotEqual 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) FUnordNotEqual 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/Test/baseResults/hlsl.params.default.frag.out b/deps/glslang/Test/baseResults/hlsl.params.default.frag.out deleted file mode 100644 index 6898240f..00000000 --- a/deps/glslang/Test/baseResults/hlsl.params.default.frag.out +++ /dev/null @@ -1,654 +0,0 @@ -hlsl.params.default.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:9 Function Definition: fn1(vi4;b1;b1; ( temp 4-component vector of int) -0:9 Function Parameters: -0:9 'p0' ( in 4-component vector of int) -0:9 'b1' ( in bool) -0:9 'b2' ( in bool) -0:? Sequence -0:10 Branch: Return with expression -0:10 'p0' ( in 4-component vector of int) -0:17 Function Definition: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) -0:17 Function Parameters: -0:17 'p0' ( in 4-component vector of int) -0:17 'p1' ( in 4-component vector of int) -0:17 'p2' ( in 2-element array of int) -0:17 'p3' ( in int) -0:? Sequence -0:18 Branch: Return with expression -0:18 add ( temp 4-component vector of int) -0:18 add ( temp 4-component vector of int) -0:18 add ( temp 4-component vector of int) -0:18 'p0' ( in 4-component vector of int) -0:18 'p1' ( in 4-component vector of int) -0:18 direct index ( temp int) -0:18 'p2' ( in 2-element array of int) -0:18 Constant: -0:18 0 (const int) -0:18 'p3' ( in int) -0:23 Function Definition: fn2(vi4;i1; ( temp 4-component vector of int) -0:23 Function Parameters: -0:23 'p0' ( in 4-component vector of int) -0:23 'x' ( in int) -0:? Sequence -0:24 Branch: Return with expression -0:24 Constant: -0:24 10 (const int) -0:24 11 (const int) -0:24 12 (const int) -0:24 13 (const int) -0:28 Function Definition: fn2(vi4;f1; ( temp 4-component vector of int) -0:28 Function Parameters: -0:28 'p0' ( in 4-component vector of int) -0:28 'x' ( in float) -0:? Sequence -0:29 Branch: Return with expression -0:29 add ( temp 4-component vector of int) -0:29 'p0' ( in 4-component vector of int) -0:29 Constant: -0:29 20 (const int) -0:29 21 (const int) -0:29 22 (const int) -0:29 23 (const int) -0:32 Function Definition: fn3(i1; ( temp void) -0:32 Function Parameters: -0:32 'p0' ( in int) -0:36 Function Definition: @main( ( temp 4-component vector of int) -0:36 Function Parameters: -0:? Sequence -0:37 Sequence -0:37 move second child to first child ( temp 2-element array of int) -0:37 'myarray' ( temp 2-element array of int) -0:37 Constant: -0:37 30 (const int) -0:37 31 (const int) -0:39 Function Call: fn3(i1; ( temp void) -0:32 Constant: -0:32 3 (const int) -0:40 Function Call: fn3(i1; ( temp void) -0:40 Constant: -0:40 5 (const int) -0:50 Branch: Return with expression -0:49 add ( temp 4-component vector of int) -0:47 add ( temp 4-component vector of int) -0:46 add ( temp 4-component vector of int) -0:45 add ( temp 4-component vector of int) -0:44 add ( temp 4-component vector of int) -0:43 add ( temp 4-component vector of int) -0:42 add ( temp 4-component vector of int) -0:42 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) -0:42 Constant: -0:42 100 (const int) -0:42 100 (const int) -0:42 100 (const int) -0:42 100 (const int) -0:14 Constant: -0:14 -1 (const int) -0:14 -2 (const int) -0:14 -3 (const int) -0:14 -4 (const int) -0:15 Constant: -0:15 1 (const int) -0:15 2 (const int) -0:16 Constant: -0:16 42 (const int) -0:43 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) -0:43 Constant: -0:43 101 (const int) -0:43 101 (const int) -0:43 101 (const int) -0:43 101 (const int) -0:43 ui4: direct index for structure ( uniform 4-component vector of int) -0:43 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4}) -0:43 Constant: -0:43 0 (const uint) -0:15 Constant: -0:15 1 (const int) -0:15 2 (const int) -0:16 Constant: -0:16 42 (const int) -0:44 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) -0:44 Constant: -0:44 102 (const int) -0:44 102 (const int) -0:44 102 (const int) -0:44 102 (const int) -0:44 ui4: direct index for structure ( uniform 4-component vector of int) -0:44 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4}) -0:44 Constant: -0:44 0 (const uint) -0:44 'myarray' ( temp 2-element array of int) -0:16 Constant: -0:16 42 (const int) -0:45 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) -0:45 Constant: -0:45 103 (const int) -0:45 103 (const int) -0:45 103 (const int) -0:45 103 (const int) -0:45 ui4: direct index for structure ( uniform 4-component vector of int) -0:45 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4}) -0:45 Constant: -0:45 0 (const uint) -0:45 'myarray' ( temp 2-element array of int) -0:45 Constant: -0:45 99 (const int) -0:46 Function Call: fn1(vi4;b1;b1; ( temp 4-component vector of int) -0:46 Constant: -0:46 104 (const int) -0:46 104 (const int) -0:46 104 (const int) -0:46 104 (const int) -0:46 Constant: -0:46 false (const bool) -0:9 Constant: -0:9 false (const bool) -0:47 Function Call: fn1(vi4;b1;b1; ( temp 4-component vector of int) -0:47 Constant: -0:47 105 (const int) -0:47 105 (const int) -0:47 105 (const int) -0:47 105 (const int) -0:47 Constant: -0:47 false (const bool) -0:47 Constant: -0:47 true (const bool) -0:49 Function Call: fn2(vi4;f1; ( temp 4-component vector of int) -0:49 Constant: -0:49 110 (const int) -0:49 110 (const int) -0:49 110 (const int) -0:49 110 (const int) -0:49 Constant: -0:49 11.110000 -0:50 Function Call: fn2(vi4;i1; ( temp 4-component vector of int) -0:50 Constant: -0:50 111 (const int) -0:50 111 (const int) -0:50 111 (const int) -0:50 111 (const int) -0:50 Constant: -0:50 12 (const int) -0:36 Function Definition: main( ( temp void) -0:36 Function Parameters: -0:? Sequence -0:36 move second child to first child ( temp 4-component vector of int) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of int) -0:36 Function Call: @main( ( temp 4-component vector of int) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4}) -0:? 'cia' ( const int) -0:? -4 (const int) -0:? 'cib' ( const int) -0:? -42 (const int) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of int) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:9 Function Definition: fn1(vi4;b1;b1; ( temp 4-component vector of int) -0:9 Function Parameters: -0:9 'p0' ( in 4-component vector of int) -0:9 'b1' ( in bool) -0:9 'b2' ( in bool) -0:? Sequence -0:10 Branch: Return with expression -0:10 'p0' ( in 4-component vector of int) -0:17 Function Definition: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) -0:17 Function Parameters: -0:17 'p0' ( in 4-component vector of int) -0:17 'p1' ( in 4-component vector of int) -0:17 'p2' ( in 2-element array of int) -0:17 'p3' ( in int) -0:? Sequence -0:18 Branch: Return with expression -0:18 add ( temp 4-component vector of int) -0:18 add ( temp 4-component vector of int) -0:18 add ( temp 4-component vector of int) -0:18 'p0' ( in 4-component vector of int) -0:18 'p1' ( in 4-component vector of int) -0:18 direct index ( temp int) -0:18 'p2' ( in 2-element array of int) -0:18 Constant: -0:18 0 (const int) -0:18 'p3' ( in int) -0:23 Function Definition: fn2(vi4;i1; ( temp 4-component vector of int) -0:23 Function Parameters: -0:23 'p0' ( in 4-component vector of int) -0:23 'x' ( in int) -0:? Sequence -0:24 Branch: Return with expression -0:24 Constant: -0:24 10 (const int) -0:24 11 (const int) -0:24 12 (const int) -0:24 13 (const int) -0:28 Function Definition: fn2(vi4;f1; ( temp 4-component vector of int) -0:28 Function Parameters: -0:28 'p0' ( in 4-component vector of int) -0:28 'x' ( in float) -0:? Sequence -0:29 Branch: Return with expression -0:29 add ( temp 4-component vector of int) -0:29 'p0' ( in 4-component vector of int) -0:29 Constant: -0:29 20 (const int) -0:29 21 (const int) -0:29 22 (const int) -0:29 23 (const int) -0:32 Function Definition: fn3(i1; ( temp void) -0:32 Function Parameters: -0:32 'p0' ( in int) -0:36 Function Definition: @main( ( temp 4-component vector of int) -0:36 Function Parameters: -0:? Sequence -0:37 Sequence -0:37 move second child to first child ( temp 2-element array of int) -0:37 'myarray' ( temp 2-element array of int) -0:37 Constant: -0:37 30 (const int) -0:37 31 (const int) -0:39 Function Call: fn3(i1; ( temp void) -0:32 Constant: -0:32 3 (const int) -0:40 Function Call: fn3(i1; ( temp void) -0:40 Constant: -0:40 5 (const int) -0:50 Branch: Return with expression -0:49 add ( temp 4-component vector of int) -0:47 add ( temp 4-component vector of int) -0:46 add ( temp 4-component vector of int) -0:45 add ( temp 4-component vector of int) -0:44 add ( temp 4-component vector of int) -0:43 add ( temp 4-component vector of int) -0:42 add ( temp 4-component vector of int) -0:42 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) -0:42 Constant: -0:42 100 (const int) -0:42 100 (const int) -0:42 100 (const int) -0:42 100 (const int) -0:14 Constant: -0:14 -1 (const int) -0:14 -2 (const int) -0:14 -3 (const int) -0:14 -4 (const int) -0:15 Constant: -0:15 1 (const int) -0:15 2 (const int) -0:16 Constant: -0:16 42 (const int) -0:43 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) -0:43 Constant: -0:43 101 (const int) -0:43 101 (const int) -0:43 101 (const int) -0:43 101 (const int) -0:43 ui4: direct index for structure ( uniform 4-component vector of int) -0:43 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4}) -0:43 Constant: -0:43 0 (const uint) -0:15 Constant: -0:15 1 (const int) -0:15 2 (const int) -0:16 Constant: -0:16 42 (const int) -0:44 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) -0:44 Constant: -0:44 102 (const int) -0:44 102 (const int) -0:44 102 (const int) -0:44 102 (const int) -0:44 ui4: direct index for structure ( uniform 4-component vector of int) -0:44 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4}) -0:44 Constant: -0:44 0 (const uint) -0:44 'myarray' ( temp 2-element array of int) -0:16 Constant: -0:16 42 (const int) -0:45 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) -0:45 Constant: -0:45 103 (const int) -0:45 103 (const int) -0:45 103 (const int) -0:45 103 (const int) -0:45 ui4: direct index for structure ( uniform 4-component vector of int) -0:45 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4}) -0:45 Constant: -0:45 0 (const uint) -0:45 'myarray' ( temp 2-element array of int) -0:45 Constant: -0:45 99 (const int) -0:46 Function Call: fn1(vi4;b1;b1; ( temp 4-component vector of int) -0:46 Constant: -0:46 104 (const int) -0:46 104 (const int) -0:46 104 (const int) -0:46 104 (const int) -0:46 Constant: -0:46 false (const bool) -0:9 Constant: -0:9 false (const bool) -0:47 Function Call: fn1(vi4;b1;b1; ( temp 4-component vector of int) -0:47 Constant: -0:47 105 (const int) -0:47 105 (const int) -0:47 105 (const int) -0:47 105 (const int) -0:47 Constant: -0:47 false (const bool) -0:47 Constant: -0:47 true (const bool) -0:49 Function Call: fn2(vi4;f1; ( temp 4-component vector of int) -0:49 Constant: -0:49 110 (const int) -0:49 110 (const int) -0:49 110 (const int) -0:49 110 (const int) -0:49 Constant: -0:49 11.110000 -0:50 Function Call: fn2(vi4;i1; ( temp 4-component vector of int) -0:50 Constant: -0:50 111 (const int) -0:50 111 (const int) -0:50 111 (const int) -0:50 111 (const int) -0:50 Constant: -0:50 12 (const int) -0:36 Function Definition: main( ( temp void) -0:36 Function Parameters: -0:? Sequence -0:36 move second child to first child ( temp 4-component vector of int) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of int) -0:36 Function Call: @main( ( temp 4-component vector of int) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4}) -0:? 'cia' ( const int) -0:? -4 (const int) -0:? 'cib' ( const int) -0:? -42 (const int) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of int) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 178 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 175 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 15 "fn1(vi4;b1;b1;" - Name 12 "p0" - Name 13 "b1" - Name 14 "b2" - Name 27 "fn1(vi4;vi4;i1[2];i1;" - Name 23 "p0" - Name 24 "p1" - Name 25 "p2" - Name 26 "p3" - Name 32 "fn2(vi4;i1;" - Name 30 "p0" - Name 31 "x" - Name 39 "fn2(vi4;f1;" - Name 37 "p0" - Name 38 "x" - Name 43 "fn3(i1;" - Name 42 "p0" - Name 46 "@main(" - Name 80 "myarray" - Name 85 "param" - Name 88 "param" - Name 101 "param" - Name 102 "param" - Name 103 "param" - Name 104 "param" - Name 108 "$Global" - MemberName 108($Global) 0 "ui4" - Name 110 "" - Name 111 "param" - Name 112 "param" - Name 116 "param" - Name 117 "param" - Name 122 "param" - Name 123 "param" - Name 126 "param" - Name 128 "param" - Name 134 "param" - Name 135 "param" - Name 138 "param" - Name 140 "param" - Name 146 "param" - Name 147 "param" - Name 148 "param" - Name 154 "param" - Name 155 "param" - Name 156 "param" - Name 162 "param" - Name 163 "param" - Name 168 "param" - Name 169 "param" - Name 175 "@entryPointOutput" - MemberDecorate 108($Global) 0 Offset 0 - Decorate 108($Global) Block - Decorate 110 DescriptorSet 0 - Decorate 110 Binding 0 - Decorate 175(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypeVector 6(int) 4 - 8: TypePointer Function 7(ivec4) - 9: TypeBool - 10: TypePointer Function 9(bool) - 11: TypeFunction 7(ivec4) 8(ptr) 10(ptr) 10(ptr) - 17: TypeInt 32 0 - 18: 17(int) Constant 2 - 19: TypeArray 6(int) 18 - 20: TypePointer Function 19 - 21: TypePointer Function 6(int) - 22: TypeFunction 7(ivec4) 8(ptr) 8(ptr) 20(ptr) 21(ptr) - 29: TypeFunction 7(ivec4) 8(ptr) 21(ptr) - 34: TypeFloat 32 - 35: TypePointer Function 34(float) - 36: TypeFunction 7(ivec4) 8(ptr) 35(ptr) - 41: TypeFunction 2 21(ptr) - 45: TypeFunction 7(ivec4) - 54: 6(int) Constant 0 - 64: 6(int) Constant 10 - 65: 6(int) Constant 11 - 66: 6(int) Constant 12 - 67: 6(int) Constant 13 - 68: 7(ivec4) ConstantComposite 64 65 66 67 - 72: 6(int) Constant 20 - 73: 6(int) Constant 21 - 74: 6(int) Constant 22 - 75: 6(int) Constant 23 - 76: 7(ivec4) ConstantComposite 72 73 74 75 - 81: 6(int) Constant 30 - 82: 6(int) Constant 31 - 83: 19 ConstantComposite 81 82 - 84: 6(int) Constant 3 - 87: 6(int) Constant 5 - 90: 6(int) Constant 100 - 91: 7(ivec4) ConstantComposite 90 90 90 90 - 92: 6(int) Constant 4294967295 - 93: 6(int) Constant 4294967294 - 94: 6(int) Constant 4294967293 - 95: 6(int) Constant 4294967292 - 96: 7(ivec4) ConstantComposite 92 93 94 95 - 97: 6(int) Constant 1 - 98: 6(int) Constant 2 - 99: 19 ConstantComposite 97 98 - 100: 6(int) Constant 42 - 106: 6(int) Constant 101 - 107: 7(ivec4) ConstantComposite 106 106 106 106 - 108($Global): TypeStruct 7(ivec4) - 109: TypePointer Uniform 108($Global) - 110: 109(ptr) Variable Uniform - 113: TypePointer Uniform 7(ivec4) - 120: 6(int) Constant 102 - 121: 7(ivec4) ConstantComposite 120 120 120 120 - 131: 6(int) Constant 103 - 132: 7(ivec4) ConstantComposite 131 131 131 131 - 133: 6(int) Constant 99 - 143: 6(int) Constant 104 - 144: 7(ivec4) ConstantComposite 143 143 143 143 - 145: 9(bool) ConstantFalse - 151: 6(int) Constant 105 - 152: 7(ivec4) ConstantComposite 151 151 151 151 - 153: 9(bool) ConstantTrue - 159: 6(int) Constant 110 - 160: 7(ivec4) ConstantComposite 159 159 159 159 - 161: 34(float) Constant 1093780111 - 166: 6(int) Constant 111 - 167: 7(ivec4) ConstantComposite 166 166 166 166 - 174: TypePointer Output 7(ivec4) -175(@entryPointOutput): 174(ptr) Variable Output - 177: 6(int) Constant 4294967254 - 4(main): 2 Function None 3 - 5: Label - 176: 7(ivec4) FunctionCall 46(@main() - Store 175(@entryPointOutput) 176 - Return - FunctionEnd -15(fn1(vi4;b1;b1;): 7(ivec4) Function None 11 - 12(p0): 8(ptr) FunctionParameter - 13(b1): 10(ptr) FunctionParameter - 14(b2): 10(ptr) FunctionParameter - 16: Label - 48: 7(ivec4) Load 12(p0) - ReturnValue 48 - FunctionEnd -27(fn1(vi4;vi4;i1[2];i1;): 7(ivec4) Function None 22 - 23(p0): 8(ptr) FunctionParameter - 24(p1): 8(ptr) FunctionParameter - 25(p2): 20(ptr) FunctionParameter - 26(p3): 21(ptr) FunctionParameter - 28: Label - 51: 7(ivec4) Load 23(p0) - 52: 7(ivec4) Load 24(p1) - 53: 7(ivec4) IAdd 51 52 - 55: 21(ptr) AccessChain 25(p2) 54 - 56: 6(int) Load 55 - 57: 7(ivec4) CompositeConstruct 56 56 56 56 - 58: 7(ivec4) IAdd 53 57 - 59: 6(int) Load 26(p3) - 60: 7(ivec4) CompositeConstruct 59 59 59 59 - 61: 7(ivec4) IAdd 58 60 - ReturnValue 61 - FunctionEnd - 32(fn2(vi4;i1;): 7(ivec4) Function None 29 - 30(p0): 8(ptr) FunctionParameter - 31(x): 21(ptr) FunctionParameter - 33: Label - ReturnValue 68 - FunctionEnd - 39(fn2(vi4;f1;): 7(ivec4) Function None 36 - 37(p0): 8(ptr) FunctionParameter - 38(x): 35(ptr) FunctionParameter - 40: Label - 71: 7(ivec4) Load 37(p0) - 77: 7(ivec4) IAdd 71 76 - ReturnValue 77 - FunctionEnd - 43(fn3(i1;): 2 Function None 41 - 42(p0): 21(ptr) FunctionParameter - 44: Label - Return - FunctionEnd - 46(@main(): 7(ivec4) Function None 45 - 47: Label - 80(myarray): 20(ptr) Variable Function - 85(param): 21(ptr) Variable Function - 88(param): 21(ptr) Variable Function - 101(param): 8(ptr) Variable Function - 102(param): 8(ptr) Variable Function - 103(param): 20(ptr) Variable Function - 104(param): 21(ptr) Variable Function - 111(param): 8(ptr) Variable Function - 112(param): 8(ptr) Variable Function - 116(param): 20(ptr) Variable Function - 117(param): 21(ptr) Variable Function - 122(param): 8(ptr) Variable Function - 123(param): 8(ptr) Variable Function - 126(param): 20(ptr) Variable Function - 128(param): 21(ptr) Variable Function - 134(param): 8(ptr) Variable Function - 135(param): 8(ptr) Variable Function - 138(param): 20(ptr) Variable Function - 140(param): 21(ptr) Variable Function - 146(param): 8(ptr) Variable Function - 147(param): 10(ptr) Variable Function - 148(param): 10(ptr) Variable Function - 154(param): 8(ptr) Variable Function - 155(param): 10(ptr) Variable Function - 156(param): 10(ptr) Variable Function - 162(param): 8(ptr) Variable Function - 163(param): 35(ptr) Variable Function - 168(param): 8(ptr) Variable Function - 169(param): 21(ptr) Variable Function - Store 80(myarray) 83 - Store 85(param) 84 - 86: 2 FunctionCall 43(fn3(i1;) 85(param) - Store 88(param) 87 - 89: 2 FunctionCall 43(fn3(i1;) 88(param) - Store 101(param) 91 - Store 102(param) 96 - Store 103(param) 99 - Store 104(param) 100 - 105: 7(ivec4) FunctionCall 27(fn1(vi4;vi4;i1[2];i1;) 101(param) 102(param) 103(param) 104(param) - Store 111(param) 107 - 114: 113(ptr) AccessChain 110 54 - 115: 7(ivec4) Load 114 - Store 112(param) 115 - Store 116(param) 99 - Store 117(param) 100 - 118: 7(ivec4) FunctionCall 27(fn1(vi4;vi4;i1[2];i1;) 111(param) 112(param) 116(param) 117(param) - 119: 7(ivec4) IAdd 105 118 - Store 122(param) 121 - 124: 113(ptr) AccessChain 110 54 - 125: 7(ivec4) Load 124 - Store 123(param) 125 - 127: 19 Load 80(myarray) - Store 126(param) 127 - Store 128(param) 100 - 129: 7(ivec4) FunctionCall 27(fn1(vi4;vi4;i1[2];i1;) 122(param) 123(param) 126(param) 128(param) - 130: 7(ivec4) IAdd 119 129 - Store 134(param) 132 - 136: 113(ptr) AccessChain 110 54 - 137: 7(ivec4) Load 136 - Store 135(param) 137 - 139: 19 Load 80(myarray) - Store 138(param) 139 - Store 140(param) 133 - 141: 7(ivec4) FunctionCall 27(fn1(vi4;vi4;i1[2];i1;) 134(param) 135(param) 138(param) 140(param) - 142: 7(ivec4) IAdd 130 141 - Store 146(param) 144 - Store 147(param) 145 - Store 148(param) 145 - 149: 7(ivec4) FunctionCall 15(fn1(vi4;b1;b1;) 146(param) 147(param) 148(param) - 150: 7(ivec4) IAdd 142 149 - Store 154(param) 152 - Store 155(param) 145 - Store 156(param) 153 - 157: 7(ivec4) FunctionCall 15(fn1(vi4;b1;b1;) 154(param) 155(param) 156(param) - 158: 7(ivec4) IAdd 150 157 - Store 162(param) 160 - Store 163(param) 161 - 164: 7(ivec4) FunctionCall 39(fn2(vi4;f1;) 162(param) 163(param) - 165: 7(ivec4) IAdd 158 164 - Store 168(param) 167 - Store 169(param) 66 - 170: 7(ivec4) FunctionCall 32(fn2(vi4;i1;) 168(param) 169(param) - 171: 7(ivec4) IAdd 165 170 - ReturnValue 171 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.params.default.negative.frag.out b/deps/glslang/Test/baseResults/hlsl.params.default.negative.frag.out deleted file mode 100644 index 213687ab..00000000 --- a/deps/glslang/Test/baseResults/hlsl.params.default.negative.frag.out +++ /dev/null @@ -1,385 +0,0 @@ -hlsl.params.default.negative.frag -ERROR: 0:27: '' : invalid default parameter value -ERROR: 0:32: 'p1' : invalid parameter after default value parameters -ERROR: 0:40: 'fn1' : ambiguous best function under implicit type conversion -ERROR: 0:47: 'fn2' : ambiguous best function under implicit type conversion -ERROR: 4 compilation errors. No code generated. - - -Shader version: 500 -gl_FragCoord origin is upper left -ERROR: node is still EOpNull! -0:7 Function Definition: fn1(vi4; ( temp 4-component vector of int) -0:7 Function Parameters: -0:7 'p0' ( in 4-component vector of int) -0:? Sequence -0:7 Branch: Return with expression -0:7 Constant: -0:7 1 (const int) -0:7 2 (const int) -0:7 3 (const int) -0:7 4 (const int) -0:9 Function Definition: fn1(vi4;b1;b1; ( temp 4-component vector of int) -0:9 Function Parameters: -0:9 'p0' ( in 4-component vector of int) -0:9 'b1' ( in bool) -0:9 'b2' ( in bool) -0:? Sequence -0:10 Branch: Return with expression -0:10 'p0' ( in 4-component vector of int) -0:17 Function Definition: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) -0:17 Function Parameters: -0:17 'p0' ( in 4-component vector of int) -0:17 'p1' ( in 4-component vector of int) -0:17 'p2' ( in 2-element array of int) -0:17 'p3' ( in int) -0:? Sequence -0:18 Branch: Return with expression -0:18 add ( temp 4-component vector of int) -0:18 add ( temp 4-component vector of int) -0:18 add ( temp 4-component vector of int) -0:18 'p0' ( in 4-component vector of int) -0:18 'p1' ( in 4-component vector of int) -0:18 direct index ( temp int) -0:18 'p2' ( in 2-element array of int) -0:18 Constant: -0:18 0 (const int) -0:18 'p3' ( in int) -0:23 Function Definition: fn2(vi4;i1; ( temp 4-component vector of int) -0:23 Function Parameters: -0:23 'p0' ( in 4-component vector of int) -0:23 'x' ( in int) -0:? Sequence -0:24 Branch: Return with expression -0:24 Constant: -0:24 10 (const int) -0:24 11 (const int) -0:24 12 (const int) -0:24 13 (const int) -0:28 Function Definition: fn2(vi4; ( temp 4-component vector of int) -0:28 Function Parameters: -0:28 'p0' ( in 4-component vector of int) -0:? Sequence -0:29 Branch: Return with expression -0:29 add ( temp 4-component vector of int) -0:29 'p0' ( in 4-component vector of int) -0:29 Constant: -0:29 20 (const int) -0:29 21 (const int) -0:29 22 (const int) -0:29 23 (const int) -0:33 Function Definition: fn3(i1; ( temp void) -0:33 Function Parameters: -0:33 'p0' ( in int) -0:37 Function Definition: @main( ( temp 4-component vector of int) -0:37 Function Parameters: -0:? Sequence -0:38 Sequence -0:38 move second child to first child ( temp 2-element array of int) -0:38 'myarray' ( temp 2-element array of int) -0:38 Constant: -0:38 30 (const int) -0:38 31 (const int) -0:49 Branch: Return with expression -0:48 add ( temp 4-component vector of int) -0:47 add ( temp 4-component vector of int) -0:45 add ( temp 4-component vector of int) -0:44 add ( temp 4-component vector of int) -0:43 add ( temp 4-component vector of int) -0:42 add ( temp 4-component vector of int) -0:41 add ( temp 4-component vector of int) -0:40 add ( temp 4-component vector of int) -0:40 Function Call: fn1(vi4; ( temp 4-component vector of int) -0:40 Constant: -0:40 100 (const int) -0:40 100 (const int) -0:40 100 (const int) -0:40 100 (const int) -0:41 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) -0:41 Constant: -0:41 101 (const int) -0:41 101 (const int) -0:41 101 (const int) -0:41 101 (const int) -0:41 ui4: direct index for structure ( uniform 4-component vector of int) -0:41 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4, uniform float ufvar}) -0:41 Constant: -0:41 0 (const uint) -0:15 Constant: -0:15 1 (const int) -0:15 2 (const int) -0:16 Constant: -0:16 42 (const int) -0:42 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) -0:42 Constant: -0:42 102 (const int) -0:42 102 (const int) -0:42 102 (const int) -0:42 102 (const int) -0:42 ui4: direct index for structure ( uniform 4-component vector of int) -0:42 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4, uniform float ufvar}) -0:42 Constant: -0:42 0 (const uint) -0:42 'myarray' ( temp 2-element array of int) -0:16 Constant: -0:16 42 (const int) -0:43 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) -0:43 Constant: -0:43 103 (const int) -0:43 103 (const int) -0:43 103 (const int) -0:43 103 (const int) -0:43 ui4: direct index for structure ( uniform 4-component vector of int) -0:43 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4, uniform float ufvar}) -0:43 Constant: -0:43 0 (const uint) -0:43 'myarray' ( temp 2-element array of int) -0:43 Constant: -0:43 99 (const int) -0:44 Function Call: fn1(vi4;b1;b1; ( temp 4-component vector of int) -0:44 Constant: -0:44 104 (const int) -0:44 104 (const int) -0:44 104 (const int) -0:44 104 (const int) -0:44 Constant: -0:44 false (const bool) -0:9 Constant: -0:9 false (const bool) -0:45 Function Call: fn1(vi4;b1;b1; ( temp 4-component vector of int) -0:45 Constant: -0:45 105 (const int) -0:45 105 (const int) -0:45 105 (const int) -0:45 105 (const int) -0:45 Constant: -0:45 false (const bool) -0:45 Constant: -0:45 true (const bool) -0:47 Function Call: fn2(vi4; ( temp 4-component vector of int) -0:47 Constant: -0:47 112 (const int) -0:47 112 (const int) -0:47 112 (const int) -0:47 112 (const int) -0:48 Function Call: fn2(vi4;i1; ( temp 4-component vector of int) -0:48 Constant: -0:48 110 (const int) -0:48 110 (const int) -0:48 110 (const int) -0:48 110 (const int) -0:48 Constant: -0:48 11 (const int) -0:49 Function Call: fn2(vi4;i1; ( temp 4-component vector of int) -0:49 Constant: -0:49 111 (const int) -0:49 111 (const int) -0:49 111 (const int) -0:49 111 (const int) -0:49 Constant: -0:49 12 (const int) -0:37 Function Definition: main( ( temp void) -0:37 Function Parameters: -0:? Sequence -0:37 move second child to first child ( temp 4-component vector of int) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of int) -0:37 Function Call: @main( ( temp 4-component vector of int) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4, uniform float ufvar}) -0:? 'cia' ( const int) -0:? -4 (const int) -0:? 'cib' ( const int) -0:? -42 (const int) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of int) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -ERROR: node is still EOpNull! -0:7 Function Definition: fn1(vi4; ( temp 4-component vector of int) -0:7 Function Parameters: -0:7 'p0' ( in 4-component vector of int) -0:? Sequence -0:7 Branch: Return with expression -0:7 Constant: -0:7 1 (const int) -0:7 2 (const int) -0:7 3 (const int) -0:7 4 (const int) -0:9 Function Definition: fn1(vi4;b1;b1; ( temp 4-component vector of int) -0:9 Function Parameters: -0:9 'p0' ( in 4-component vector of int) -0:9 'b1' ( in bool) -0:9 'b2' ( in bool) -0:? Sequence -0:10 Branch: Return with expression -0:10 'p0' ( in 4-component vector of int) -0:17 Function Definition: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) -0:17 Function Parameters: -0:17 'p0' ( in 4-component vector of int) -0:17 'p1' ( in 4-component vector of int) -0:17 'p2' ( in 2-element array of int) -0:17 'p3' ( in int) -0:? Sequence -0:18 Branch: Return with expression -0:18 add ( temp 4-component vector of int) -0:18 add ( temp 4-component vector of int) -0:18 add ( temp 4-component vector of int) -0:18 'p0' ( in 4-component vector of int) -0:18 'p1' ( in 4-component vector of int) -0:18 direct index ( temp int) -0:18 'p2' ( in 2-element array of int) -0:18 Constant: -0:18 0 (const int) -0:18 'p3' ( in int) -0:23 Function Definition: fn2(vi4;i1; ( temp 4-component vector of int) -0:23 Function Parameters: -0:23 'p0' ( in 4-component vector of int) -0:23 'x' ( in int) -0:? Sequence -0:24 Branch: Return with expression -0:24 Constant: -0:24 10 (const int) -0:24 11 (const int) -0:24 12 (const int) -0:24 13 (const int) -0:28 Function Definition: fn2(vi4; ( temp 4-component vector of int) -0:28 Function Parameters: -0:28 'p0' ( in 4-component vector of int) -0:? Sequence -0:29 Branch: Return with expression -0:29 add ( temp 4-component vector of int) -0:29 'p0' ( in 4-component vector of int) -0:29 Constant: -0:29 20 (const int) -0:29 21 (const int) -0:29 22 (const int) -0:29 23 (const int) -0:33 Function Definition: fn3(i1; ( temp void) -0:33 Function Parameters: -0:33 'p0' ( in int) -0:37 Function Definition: @main( ( temp 4-component vector of int) -0:37 Function Parameters: -0:? Sequence -0:38 Sequence -0:38 move second child to first child ( temp 2-element array of int) -0:38 'myarray' ( temp 2-element array of int) -0:38 Constant: -0:38 30 (const int) -0:38 31 (const int) -0:49 Branch: Return with expression -0:48 add ( temp 4-component vector of int) -0:47 add ( temp 4-component vector of int) -0:45 add ( temp 4-component vector of int) -0:44 add ( temp 4-component vector of int) -0:43 add ( temp 4-component vector of int) -0:42 add ( temp 4-component vector of int) -0:41 add ( temp 4-component vector of int) -0:40 add ( temp 4-component vector of int) -0:40 Function Call: fn1(vi4; ( temp 4-component vector of int) -0:40 Constant: -0:40 100 (const int) -0:40 100 (const int) -0:40 100 (const int) -0:40 100 (const int) -0:41 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) -0:41 Constant: -0:41 101 (const int) -0:41 101 (const int) -0:41 101 (const int) -0:41 101 (const int) -0:41 ui4: direct index for structure ( uniform 4-component vector of int) -0:41 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4, uniform float ufvar}) -0:41 Constant: -0:41 0 (const uint) -0:15 Constant: -0:15 1 (const int) -0:15 2 (const int) -0:16 Constant: -0:16 42 (const int) -0:42 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) -0:42 Constant: -0:42 102 (const int) -0:42 102 (const int) -0:42 102 (const int) -0:42 102 (const int) -0:42 ui4: direct index for structure ( uniform 4-component vector of int) -0:42 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4, uniform float ufvar}) -0:42 Constant: -0:42 0 (const uint) -0:42 'myarray' ( temp 2-element array of int) -0:16 Constant: -0:16 42 (const int) -0:43 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) -0:43 Constant: -0:43 103 (const int) -0:43 103 (const int) -0:43 103 (const int) -0:43 103 (const int) -0:43 ui4: direct index for structure ( uniform 4-component vector of int) -0:43 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4, uniform float ufvar}) -0:43 Constant: -0:43 0 (const uint) -0:43 'myarray' ( temp 2-element array of int) -0:43 Constant: -0:43 99 (const int) -0:44 Function Call: fn1(vi4;b1;b1; ( temp 4-component vector of int) -0:44 Constant: -0:44 104 (const int) -0:44 104 (const int) -0:44 104 (const int) -0:44 104 (const int) -0:44 Constant: -0:44 false (const bool) -0:9 Constant: -0:9 false (const bool) -0:45 Function Call: fn1(vi4;b1;b1; ( temp 4-component vector of int) -0:45 Constant: -0:45 105 (const int) -0:45 105 (const int) -0:45 105 (const int) -0:45 105 (const int) -0:45 Constant: -0:45 false (const bool) -0:45 Constant: -0:45 true (const bool) -0:47 Function Call: fn2(vi4; ( temp 4-component vector of int) -0:47 Constant: -0:47 112 (const int) -0:47 112 (const int) -0:47 112 (const int) -0:47 112 (const int) -0:48 Function Call: fn2(vi4;i1; ( temp 4-component vector of int) -0:48 Constant: -0:48 110 (const int) -0:48 110 (const int) -0:48 110 (const int) -0:48 110 (const int) -0:48 Constant: -0:48 11 (const int) -0:49 Function Call: fn2(vi4;i1; ( temp 4-component vector of int) -0:49 Constant: -0:49 111 (const int) -0:49 111 (const int) -0:49 111 (const int) -0:49 111 (const int) -0:49 Constant: -0:49 12 (const int) -0:37 Function Definition: main( ( temp void) -0:37 Function Parameters: -0:? Sequence -0:37 move second child to first child ( temp 4-component vector of int) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of int) -0:37 Function Call: @main( ( temp 4-component vector of int) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4, uniform float ufvar}) -0:? 'cia' ( const int) -0:? -4 (const int) -0:? 'cib' ( const int) -0:? -42 (const int) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of int) - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/hlsl.partialFlattenLocal.vert.out b/deps/glslang/Test/baseResults/hlsl.partialFlattenLocal.vert.out deleted file mode 100644 index 7bcc8791..00000000 --- a/deps/glslang/Test/baseResults/hlsl.partialFlattenLocal.vert.out +++ /dev/null @@ -1,380 +0,0 @@ -hlsl.partialFlattenLocal.vert -WARNING: AST will form illegal SPIR-V; need to transform to legalize -Shader version: 500 -0:? Sequence -0:12 Function Definition: @main(vf4; ( temp 4-component vector of float) -0:12 Function Parameters: -0:12 'pos' ( in 4-component vector of float) -0:? Sequence -0:14 move second child to first child ( temp texture2D) -0:14 tex: direct index for structure ( temp texture2D) -0:14 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) -0:14 Constant: -0:14 0 (const int) -0:14 'tex' ( uniform texture2D) -0:15 move second child to first child ( temp 3-component vector of float) -0:15 direct index ( temp 3-component vector of float) -0:15 pos: direct index for structure ( temp 3-element array of 3-component vector of float) -0:15 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) -0:15 Constant: -0:15 1 (const int) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0.000000 -0:15 0.000000 -0:15 0.000000 -0:16 move second child to first child ( temp 2-component vector of float) -0:16 direct index ( temp 2-component vector of float) -0:16 uv: direct index for structure ( temp 2-element array of 2-component vector of float) -0:16 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) -0:16 Constant: -0:16 2 (const int) -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 0.000000 -0:16 1.000000 -0:17 move second child to first child ( temp float) -0:17 x: direct index for structure ( temp float) -0:17 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) -0:17 Constant: -0:17 3 (const int) -0:17 Constant: -0:17 1.000000 -0:18 move second child to first child ( temp int) -0:18 n: direct index for structure ( temp int) -0:18 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) -0:18 Constant: -0:18 4 (const int) -0:18 Constant: -0:18 3 (const int) -0:20 Sequence -0:20 move second child to first child ( temp int) -0:20 'i' ( temp int) -0:20 Constant: -0:20 0 (const int) -0:20 Loop with condition tested first -0:20 Loop Condition -0:20 Compare Less Than ( temp bool) -0:20 'i' ( temp int) -0:20 Constant: -0:20 1 (const int) -0:20 Loop Body -0:? Sequence -0:21 add second child into first child ( temp 2-component vector of float) -0:21 vector swizzle ( temp 2-component vector of float) -0:21 indirect index ( temp 3-component vector of float) -0:21 pos: direct index for structure ( temp 3-element array of 3-component vector of float) -0:21 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) -0:21 Constant: -0:21 1 (const int) -0:21 'i' ( temp int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 indirect index ( temp 2-component vector of float) -0:21 uv: direct index for structure ( temp 2-element array of 2-component vector of float) -0:21 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) -0:21 Constant: -0:21 2 (const int) -0:21 'i' ( temp int) -0:20 Loop Terminal Expression -0:20 Pre-Increment ( temp int) -0:20 'i' ( temp int) -0:24 Sequence -0:24 move second child to first child ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) -0:24 'packed2' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) -0:24 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) -0:26 Branch: Return with expression -0:26 add ( temp 4-component vector of float) -0:26 'pos' ( in 4-component vector of float) -0:26 Construct vec4 ( temp 4-component vector of float) -0:26 direct index ( temp 3-component vector of float) -0:26 pos: direct index for structure ( temp 3-element array of 3-component vector of float) -0:26 'packed2' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 0.000000 -0:12 Function Definition: main( ( temp void) -0:12 Function Parameters: -0:? Sequence -0:12 move second child to first child ( temp 4-component vector of float) -0:? 'pos' ( temp 4-component vector of float) -0:? 'pos' (layout( location=0) in 4-component vector of float) -0:12 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' ( out 4-component vector of float Position) -0:12 Function Call: @main(vf4; ( temp 4-component vector of float) -0:? 'pos' ( temp 4-component vector of float) -0:? Linker Objects -0:? 'tex' ( uniform texture2D) -0:? '@entryPointOutput' ( out 4-component vector of float Position) -0:? 'pos' (layout( location=0) in 4-component vector of float) - - -Linked vertex stage: - - -Shader version: 500 -0:? Sequence -0:12 Function Definition: @main(vf4; ( temp 4-component vector of float) -0:12 Function Parameters: -0:12 'pos' ( in 4-component vector of float) -0:? Sequence -0:14 move second child to first child ( temp texture2D) -0:14 tex: direct index for structure ( temp texture2D) -0:14 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) -0:14 Constant: -0:14 0 (const int) -0:14 'tex' ( uniform texture2D) -0:15 move second child to first child ( temp 3-component vector of float) -0:15 direct index ( temp 3-component vector of float) -0:15 pos: direct index for structure ( temp 3-element array of 3-component vector of float) -0:15 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) -0:15 Constant: -0:15 1 (const int) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0.000000 -0:15 0.000000 -0:15 0.000000 -0:16 move second child to first child ( temp 2-component vector of float) -0:16 direct index ( temp 2-component vector of float) -0:16 uv: direct index for structure ( temp 2-element array of 2-component vector of float) -0:16 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) -0:16 Constant: -0:16 2 (const int) -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 0.000000 -0:16 1.000000 -0:17 move second child to first child ( temp float) -0:17 x: direct index for structure ( temp float) -0:17 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) -0:17 Constant: -0:17 3 (const int) -0:17 Constant: -0:17 1.000000 -0:18 move second child to first child ( temp int) -0:18 n: direct index for structure ( temp int) -0:18 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) -0:18 Constant: -0:18 4 (const int) -0:18 Constant: -0:18 3 (const int) -0:20 Sequence -0:20 move second child to first child ( temp int) -0:20 'i' ( temp int) -0:20 Constant: -0:20 0 (const int) -0:20 Loop with condition tested first -0:20 Loop Condition -0:20 Compare Less Than ( temp bool) -0:20 'i' ( temp int) -0:20 Constant: -0:20 1 (const int) -0:20 Loop Body -0:? Sequence -0:21 add second child into first child ( temp 2-component vector of float) -0:21 vector swizzle ( temp 2-component vector of float) -0:21 indirect index ( temp 3-component vector of float) -0:21 pos: direct index for structure ( temp 3-element array of 3-component vector of float) -0:21 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) -0:21 Constant: -0:21 1 (const int) -0:21 'i' ( temp int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 indirect index ( temp 2-component vector of float) -0:21 uv: direct index for structure ( temp 2-element array of 2-component vector of float) -0:21 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) -0:21 Constant: -0:21 2 (const int) -0:21 'i' ( temp int) -0:20 Loop Terminal Expression -0:20 Pre-Increment ( temp int) -0:20 'i' ( temp int) -0:24 Sequence -0:24 move second child to first child ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) -0:24 'packed2' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) -0:24 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) -0:26 Branch: Return with expression -0:26 add ( temp 4-component vector of float) -0:26 'pos' ( in 4-component vector of float) -0:26 Construct vec4 ( temp 4-component vector of float) -0:26 direct index ( temp 3-component vector of float) -0:26 pos: direct index for structure ( temp 3-element array of 3-component vector of float) -0:26 'packed2' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 0.000000 -0:12 Function Definition: main( ( temp void) -0:12 Function Parameters: -0:? Sequence -0:12 move second child to first child ( temp 4-component vector of float) -0:? 'pos' ( temp 4-component vector of float) -0:? 'pos' (layout( location=0) in 4-component vector of float) -0:12 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' ( out 4-component vector of float Position) -0:12 Function Call: @main(vf4; ( temp 4-component vector of float) -0:? 'pos' ( temp 4-component vector of float) -0:? Linker Objects -0:? 'tex' ( uniform texture2D) -0:? '@entryPointOutput' ( out 4-component vector of float Position) -0:? 'pos' (layout( location=0) in 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 93 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 86 89 - Source HLSL 500 - Name 4 "main" - Name 11 "@main(vf4;" - Name 10 "pos" - Name 22 "Packed" - MemberName 22(Packed) 0 "tex" - MemberName 22(Packed) 1 "pos" - MemberName 22(Packed) 2 "uv" - MemberName 22(Packed) 3 "x" - MemberName 22(Packed) 4 "n" - Name 24 "packed" - Name 27 "tex" - Name 47 "i" - Name 72 "packed2" - Name 84 "pos" - Name 86 "pos" - Name 89 "@entryPointOutput" - Name 90 "param" - Decorate 27(tex) DescriptorSet 0 - Decorate 27(tex) Binding 0 - Decorate 86(pos) Location 0 - Decorate 89(@entryPointOutput) BuiltIn Position - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 9: TypeFunction 7(fvec4) 8(ptr) - 13: TypeImage 6(float) 2D sampled format:Unknown - 14: TypeVector 6(float) 3 - 15: TypeInt 32 0 - 16: 15(int) Constant 3 - 17: TypeArray 14(fvec3) 16 - 18: TypeVector 6(float) 2 - 19: 15(int) Constant 2 - 20: TypeArray 18(fvec2) 19 - 21: TypeInt 32 1 - 22(Packed): TypeStruct 13 17 20 6(float) 21(int) - 23: TypePointer Function 22(Packed) - 25: 21(int) Constant 0 - 26: TypePointer UniformConstant 13 - 27(tex): 26(ptr) Variable UniformConstant - 29: TypePointer Function 13 - 31: 21(int) Constant 1 - 32: 6(float) Constant 0 - 33: 14(fvec3) ConstantComposite 32 32 32 - 34: TypePointer Function 14(fvec3) - 36: 21(int) Constant 2 - 37: 6(float) Constant 1065353216 - 38: 18(fvec2) ConstantComposite 32 37 - 39: TypePointer Function 18(fvec2) - 41: 21(int) Constant 3 - 42: TypePointer Function 6(float) - 44: 21(int) Constant 4 - 45: TypePointer Function 21(int) - 54: TypeBool - 64: 15(int) Constant 0 - 67: 15(int) Constant 1 - 85: TypePointer Input 7(fvec4) - 86(pos): 85(ptr) Variable Input - 88: TypePointer Output 7(fvec4) -89(@entryPointOutput): 88(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 84(pos): 8(ptr) Variable Function - 90(param): 8(ptr) Variable Function - 87: 7(fvec4) Load 86(pos) - Store 84(pos) 87 - 91: 7(fvec4) Load 84(pos) - Store 90(param) 91 - 92: 7(fvec4) FunctionCall 11(@main(vf4;) 90(param) - Store 89(@entryPointOutput) 92 - Return - FunctionEnd - 11(@main(vf4;): 7(fvec4) Function None 9 - 10(pos): 8(ptr) FunctionParameter - 12: Label - 24(packed): 23(ptr) Variable Function - 47(i): 45(ptr) Variable Function - 72(packed2): 23(ptr) Variable Function - 28: 13 Load 27(tex) - 30: 29(ptr) AccessChain 24(packed) 25 - Store 30 28 - 35: 34(ptr) AccessChain 24(packed) 31 25 - Store 35 33 - 40: 39(ptr) AccessChain 24(packed) 36 25 - Store 40 38 - 43: 42(ptr) AccessChain 24(packed) 41 - Store 43 37 - 46: 45(ptr) AccessChain 24(packed) 44 - Store 46 41 - Store 47(i) 25 - Branch 48 - 48: Label - LoopMerge 50 51 None - Branch 52 - 52: Label - 53: 21(int) Load 47(i) - 55: 54(bool) SLessThan 53 31 - BranchConditional 55 49 50 - 49: Label - 56: 21(int) Load 47(i) - 57: 21(int) Load 47(i) - 58: 39(ptr) AccessChain 24(packed) 36 57 - 59: 18(fvec2) Load 58 - 60: 34(ptr) AccessChain 24(packed) 31 56 - 61: 14(fvec3) Load 60 - 62: 18(fvec2) VectorShuffle 61 61 0 1 - 63: 18(fvec2) FAdd 62 59 - 65: 42(ptr) AccessChain 24(packed) 31 56 64 - 66: 6(float) CompositeExtract 63 0 - Store 65 66 - 68: 42(ptr) AccessChain 24(packed) 31 56 67 - 69: 6(float) CompositeExtract 63 1 - Store 68 69 - Branch 51 - 51: Label - 70: 21(int) Load 47(i) - 71: 21(int) IAdd 70 31 - Store 47(i) 71 - Branch 48 - 50: Label - 73: 22(Packed) Load 24(packed) - Store 72(packed2) 73 - 74: 7(fvec4) Load 10(pos) - 75: 34(ptr) AccessChain 72(packed2) 31 25 - 76: 14(fvec3) Load 75 - 77: 6(float) CompositeExtract 76 0 - 78: 6(float) CompositeExtract 76 1 - 79: 6(float) CompositeExtract 76 2 - 80: 7(fvec4) CompositeConstruct 77 78 79 32 - 81: 7(fvec4) FAdd 74 80 - ReturnValue 81 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.partialFlattenMixed.vert.out b/deps/glslang/Test/baseResults/hlsl.partialFlattenMixed.vert.out deleted file mode 100644 index c9fcc6f4..00000000 --- a/deps/glslang/Test/baseResults/hlsl.partialFlattenMixed.vert.out +++ /dev/null @@ -1,169 +0,0 @@ -hlsl.partialFlattenMixed.vert -WARNING: AST will form illegal SPIR-V; need to transform to legalize -Shader version: 500 -0:? Sequence -0:10 Function Definition: @main(vf4; ( temp 4-component vector of float) -0:10 Function Parameters: -0:10 'pos' ( in 4-component vector of float) -0:? Sequence -0:13 Sequence -0:13 move second child to first child ( temp texture2D) -0:13 direct index ( temp texture2D) -0:13 membTex: direct index for structure ( temp 2-element array of texture2D) -0:13 'packed' ( temp structure{ temp int a, temp 2-element array of texture2D membTex, temp int b}) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 0 (const int) -0:? 'tex[0]' ( uniform texture2D) -0:13 move second child to first child ( temp texture2D) -0:13 direct index ( temp texture2D) -0:13 membTex: direct index for structure ( temp 2-element array of texture2D) -0:13 'packed' ( temp structure{ temp int a, temp 2-element array of texture2D membTex, temp int b}) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 1 (const int) -0:? 'tex[1]' ( uniform texture2D) -0:15 Branch: Return with expression -0:15 'pos' ( in 4-component vector of float) -0:10 Function Definition: main( ( temp void) -0:10 Function Parameters: -0:? Sequence -0:10 move second child to first child ( temp 4-component vector of float) -0:? 'pos' ( temp 4-component vector of float) -0:? 'pos' (layout( location=0) in 4-component vector of float) -0:10 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' ( out 4-component vector of float Position) -0:10 Function Call: @main(vf4; ( temp 4-component vector of float) -0:? 'pos' ( temp 4-component vector of float) -0:? Linker Objects -0:? 'tex[0]' ( uniform texture2D) -0:? 'tex[1]' ( uniform texture2D) -0:? '@entryPointOutput' ( out 4-component vector of float Position) -0:? 'pos' (layout( location=0) in 4-component vector of float) - - -Linked vertex stage: - - -Shader version: 500 -0:? Sequence -0:10 Function Definition: @main(vf4; ( temp 4-component vector of float) -0:10 Function Parameters: -0:10 'pos' ( in 4-component vector of float) -0:? Sequence -0:13 Sequence -0:13 move second child to first child ( temp texture2D) -0:13 direct index ( temp texture2D) -0:13 membTex: direct index for structure ( temp 2-element array of texture2D) -0:13 'packed' ( temp structure{ temp int a, temp 2-element array of texture2D membTex, temp int b}) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 0 (const int) -0:? 'tex[0]' ( uniform texture2D) -0:13 move second child to first child ( temp texture2D) -0:13 direct index ( temp texture2D) -0:13 membTex: direct index for structure ( temp 2-element array of texture2D) -0:13 'packed' ( temp structure{ temp int a, temp 2-element array of texture2D membTex, temp int b}) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 1 (const int) -0:? 'tex[1]' ( uniform texture2D) -0:15 Branch: Return with expression -0:15 'pos' ( in 4-component vector of float) -0:10 Function Definition: main( ( temp void) -0:10 Function Parameters: -0:? Sequence -0:10 move second child to first child ( temp 4-component vector of float) -0:? 'pos' ( temp 4-component vector of float) -0:? 'pos' (layout( location=0) in 4-component vector of float) -0:10 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' ( out 4-component vector of float Position) -0:10 Function Call: @main(vf4; ( temp 4-component vector of float) -0:? 'pos' ( temp 4-component vector of float) -0:? Linker Objects -0:? 'tex[0]' ( uniform texture2D) -0:? 'tex[1]' ( uniform texture2D) -0:? '@entryPointOutput' ( out 4-component vector of float Position) -0:? 'pos' (layout( location=0) in 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 43 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 36 39 - Source HLSL 500 - Name 4 "main" - Name 11 "@main(vf4;" - Name 10 "pos" - Name 18 "Packed" - MemberName 18(Packed) 0 "a" - MemberName 18(Packed) 1 "membTex" - MemberName 18(Packed) 2 "b" - Name 20 "packed" - Name 24 "tex[0]" - Name 28 "tex[1]" - Name 34 "pos" - Name 36 "pos" - Name 39 "@entryPointOutput" - Name 40 "param" - Decorate 24(tex[0]) DescriptorSet 0 - Decorate 24(tex[0]) Binding 0 - Decorate 28(tex[1]) DescriptorSet 0 - Decorate 28(tex[1]) Binding 1 - Decorate 36(pos) Location 0 - Decorate 39(@entryPointOutput) BuiltIn Position - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 9: TypeFunction 7(fvec4) 8(ptr) - 13: TypeInt 32 1 - 14: TypeImage 6(float) 2D sampled format:Unknown - 15: TypeInt 32 0 - 16: 15(int) Constant 2 - 17: TypeArray 14 16 - 18(Packed): TypeStruct 13(int) 17 13(int) - 19: TypePointer Function 18(Packed) - 21: 13(int) Constant 1 - 22: 13(int) Constant 0 - 23: TypePointer UniformConstant 14 - 24(tex[0]): 23(ptr) Variable UniformConstant - 26: TypePointer Function 14 - 28(tex[1]): 23(ptr) Variable UniformConstant - 35: TypePointer Input 7(fvec4) - 36(pos): 35(ptr) Variable Input - 38: TypePointer Output 7(fvec4) -39(@entryPointOutput): 38(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 34(pos): 8(ptr) Variable Function - 40(param): 8(ptr) Variable Function - 37: 7(fvec4) Load 36(pos) - Store 34(pos) 37 - 41: 7(fvec4) Load 34(pos) - Store 40(param) 41 - 42: 7(fvec4) FunctionCall 11(@main(vf4;) 40(param) - Store 39(@entryPointOutput) 42 - Return - FunctionEnd - 11(@main(vf4;): 7(fvec4) Function None 9 - 10(pos): 8(ptr) FunctionParameter - 12: Label - 20(packed): 19(ptr) Variable Function - 25: 14 Load 24(tex[0]) - 27: 26(ptr) AccessChain 20(packed) 21 22 - Store 27 25 - 29: 14 Load 28(tex[1]) - 30: 26(ptr) AccessChain 20(packed) 21 21 - Store 30 29 - 31: 7(fvec4) Load 10(pos) - ReturnValue 31 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.partialInit.frag.out b/deps/glslang/Test/baseResults/hlsl.partialInit.frag.out deleted file mode 100644 index 4686566d..00000000 --- a/deps/glslang/Test/baseResults/hlsl.partialInit.frag.out +++ /dev/null @@ -1,568 +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) - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// 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/Test/baseResults/hlsl.pp.expand.frag.err b/deps/glslang/Test/baseResults/hlsl.pp.expand.frag.err deleted file mode 100644 index e69de29b..00000000 diff --git a/deps/glslang/Test/baseResults/hlsl.pp.expand.frag.out b/deps/glslang/Test/baseResults/hlsl.pp.expand.frag.out deleted file mode 100644 index adfe02c1..00000000 --- a/deps/glslang/Test/baseResults/hlsl.pp.expand.frag.out +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - -struct A -{ - float4 a; - float4 b; - float4 c = { 1, 2, 3, 4 }; - float4 d = {({ {(({ 1, 2, 3, 4 }))} })}, { { 1, 2, 3, 4 } }; -}; - -void main() -{ - "a string" -} - diff --git a/deps/glslang/Test/baseResults/hlsl.pp.line.frag.out b/deps/glslang/Test/baseResults/hlsl.pp.line.frag.out deleted file mode 100644 index 68476d2a..00000000 --- a/deps/glslang/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:126 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:126 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): 8000a -// 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/Test/baseResults/hlsl.pp.line2.frag.out b/deps/glslang/Test/baseResults/hlsl.pp.line2.frag.out deleted file mode 100644 index 9ccf05c1..00000000 --- a/deps/glslang/Test/baseResults/hlsl.pp.line2.frag.out +++ /dev/null @@ -1,185 +0,0 @@ -hlsl.pp.line2.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 80 - - Capability Shader - 2: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 5 "MainPs" 71 75 - ExecutionMode 5 OriginUpperLeft - 1: String "hlsl.pp.line2.frag" - 17: String "foo.frag" - 32: String "foo.h" - 42: String "foo2.h" - Source HLSL 500 1 "// OpModuleProcessed auto-map-locations -// OpModuleProcessed auto-map-bindings -// OpModuleProcessed entry-point MainPs -// OpModuleProcessed client vulkan100 -// OpModuleProcessed target-env vulkan1.0 -// OpModuleProcessed keep-uncalled -// OpModuleProcessed hlsl-offsets -#line 1 -#line 1 "foo.frag" -Texture2D g_tColor[ 128 ] ; - -layout (push_constant) cbuffer PerViewConstantBuffer_t -{ - uint g_nDataIdx; - uint g_nDataIdx2; - bool g_B; -} ; - -SamplerState g_sAniso; - -struct PS_INPUT -{ - float2 vTextureCoords : TEXCOORD2 ; -} ; - -struct PS_OUTPUT -{ - float4 vColor : SV_Target0 ; -} ; - -PS_OUTPUT MainPs ( PS_INPUT i ) -{ - PS_OUTPUT ps_output ; - - uint u; -#line 47 - if (g_B) -#line 3 "foo.h" - u = g_nDataIdx; - else -#line 67 - u = g_nDataIdx2; -#line 7 "foo2.h" - ps_output . vColor = g_tColor [ u ] . Sample ( g_sAniso , i . vTextureCoords . xy ); -#line 105 - return ps_output ; -} - -" - Name 5 "MainPs" - Name 9 "PS_INPUT" - MemberName 9(PS_INPUT) 0 "vTextureCoords" - Name 12 "PS_OUTPUT" - MemberName 12(PS_OUTPUT) 0 "vColor" - Name 15 "@MainPs(struct-PS_INPUT-vf21;" - Name 14 "i" - Name 19 "PerViewConstantBuffer_t" - MemberName 19(PerViewConstantBuffer_t) 0 "g_nDataIdx" - MemberName 19(PerViewConstantBuffer_t) 1 "g_nDataIdx2" - MemberName 19(PerViewConstantBuffer_t) 2 "g_B" - Name 21 "" - Name 34 "u" - Name 44 "ps_output" - Name 49 "g_tColor" - Name 56 "g_sAniso" - Name 69 "i" - Name 71 "i.vTextureCoords" - Name 75 "@entryPointOutput.vColor" - Name 76 "param" - MemberDecorate 19(PerViewConstantBuffer_t) 0 Offset 0 - MemberDecorate 19(PerViewConstantBuffer_t) 1 Offset 4 - MemberDecorate 19(PerViewConstantBuffer_t) 2 Offset 8 - Decorate 19(PerViewConstantBuffer_t) Block - Decorate 49(g_tColor) DescriptorSet 0 - Decorate 49(g_tColor) Binding 0 - Decorate 56(g_sAniso) DescriptorSet 0 - Decorate 56(g_sAniso) Binding 1 - Decorate 71(i.vTextureCoords) Location 0 - Decorate 75(@entryPointOutput.vColor) Location 0 - 3: TypeVoid - 4: TypeFunction 3 - 7: TypeFloat 32 - 8: TypeVector 7(float) 2 - 9(PS_INPUT): TypeStruct 8(fvec2) - 10: TypePointer Function 9(PS_INPUT) - 11: TypeVector 7(float) 4 - 12(PS_OUTPUT): TypeStruct 11(fvec4) - 13: TypeFunction 12(PS_OUTPUT) 10(ptr) - 18: TypeInt 32 0 -19(PerViewConstantBuffer_t): TypeStruct 18(int) 18(int) 18(int) - 20: TypePointer PushConstant 19(PerViewConstantBuffer_t) - 21: 20(ptr) Variable PushConstant - 22: TypeInt 32 1 - 23: 22(int) Constant 2 - 24: TypePointer PushConstant 18(int) - 27: TypeBool - 28: 18(int) Constant 0 - 33: TypePointer Function 18(int) - 35: 22(int) Constant 0 - 39: 22(int) Constant 1 - 43: TypePointer Function 12(PS_OUTPUT) - 45: TypeImage 7(float) 2D sampled format:Unknown - 46: 18(int) Constant 128 - 47: TypeArray 45 46 - 48: TypePointer UniformConstant 47 - 49(g_tColor): 48(ptr) Variable UniformConstant - 51: TypePointer UniformConstant 45 - 54: TypeSampler - 55: TypePointer UniformConstant 54 - 56(g_sAniso): 55(ptr) Variable UniformConstant - 58: TypeSampledImage 45 - 60: TypePointer Function 8(fvec2) - 64: TypePointer Function 11(fvec4) - 70: TypePointer Input 8(fvec2) -71(i.vTextureCoords): 70(ptr) Variable Input - 74: TypePointer Output 11(fvec4) -75(@entryPointOutput.vColor): 74(ptr) Variable Output - 5(MainPs): 3 Function None 4 - 6: Label - 69(i): 10(ptr) Variable Function - 76(param): 10(ptr) Variable Function - Line 17 23 0 - 72: 8(fvec2) Load 71(i.vTextureCoords) - 73: 60(ptr) AccessChain 69(i) 35 - Store 73 72 - 77: 9(PS_INPUT) Load 69(i) - Store 76(param) 77 - 78:12(PS_OUTPUT) FunctionCall 15(@MainPs(struct-PS_INPUT-vf21;) 76(param) - 79: 11(fvec4) CompositeExtract 78 0 - Store 75(@entryPointOutput.vColor) 79 - Return - FunctionEnd -15(@MainPs(struct-PS_INPUT-vf21;):12(PS_OUTPUT) Function None 13 - 14(i): 10(ptr) FunctionParameter - 16: Label - 34(u): 33(ptr) Variable Function - 44(ps_output): 43(ptr) Variable Function - Line 17 47 0 - 25: 24(ptr) AccessChain 21 23 - 26: 18(int) Load 25 - 29: 27(bool) INotEqual 26 28 - SelectionMerge 31 None - BranchConditional 29 30 38 - 30: Label - Line 32 3 0 - 36: 24(ptr) AccessChain 21 35 - 37: 18(int) Load 36 - Store 34(u) 37 - Branch 31 - 38: Label - Line 32 67 0 - 40: 24(ptr) AccessChain 21 39 - 41: 18(int) Load 40 - Store 34(u) 41 - Branch 31 - 31: Label - Line 42 7 0 - 50: 18(int) Load 34(u) - 52: 51(ptr) AccessChain 49(g_tColor) 50 - 53: 45 Load 52 - 57: 54 Load 56(g_sAniso) - 59: 58 SampledImage 53 57 - 61: 60(ptr) AccessChain 14(i) 35 - 62: 8(fvec2) Load 61 - 63: 11(fvec4) ImageSampleImplicitLod 59 62 - 65: 64(ptr) AccessChain 44(ps_output) 35 - Store 65 63 - Line 42 105 0 - 66:12(PS_OUTPUT) Load 44(ps_output) - ReturnValue 66 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.pp.line3.frag.out b/deps/glslang/Test/baseResults/hlsl.pp.line3.frag.out deleted file mode 100644 index d19c516c..00000000 --- a/deps/glslang/Test/baseResults/hlsl.pp.line3.frag.out +++ /dev/null @@ -1,176 +0,0 @@ -hlsl.pp.line3.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 78 - - Capability Shader - 3: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 6 "MainPs" 69 73 - ExecutionMode 6 OriginUpperLeft - 1: String "hlsl.pp.line3.frag" - 2: String "./i1.h" - Source HLSL 500 1 "// OpModuleProcessed entry-point MainPs -// OpModuleProcessed client vulkan100 -// OpModuleProcessed target-env vulkan1.0 -// OpModuleProcessed hlsl-offsets -#line 1 -Texture2D g_tColor[ 128 ] ; - -layout (push_constant) cbuffer PerViewConstantBuffer_t -{ - uint g_nDataIdx; - uint g_nDataIdx2; - bool g_B; -} ; - -SamplerState g_sAniso; - -struct PS_INPUT -{ - float2 vTextureCoords : TEXCOORD2 ; -} ; - -struct PS_OUTPUT -{ - float4 vColor : SV_Target0 ; -} ; - -PS_OUTPUT MainPs ( PS_INPUT i ) -{ - PS_OUTPUT ps_output ; - - uint u; - if (g_B) -#include "i1.h" - else - u = g_nDataIdx2; - ps_output . vColor = g_tColor [ u ] . Sample ( g_sAniso , i . vTextureCoords . xy ); - return ps_output ; -} - -" - Source HLSL 500 2 " u = g_nDataIdx; -" - Name 6 "MainPs" - Name 10 "PS_INPUT" - MemberName 10(PS_INPUT) 0 "vTextureCoords" - Name 13 "PS_OUTPUT" - MemberName 13(PS_OUTPUT) 0 "vColor" - Name 16 "@MainPs(struct-PS_INPUT-vf21;" - Name 15 "i" - Name 19 "PerViewConstantBuffer_t" - MemberName 19(PerViewConstantBuffer_t) 0 "g_nDataIdx" - MemberName 19(PerViewConstantBuffer_t) 1 "g_nDataIdx2" - MemberName 19(PerViewConstantBuffer_t) 2 "g_B" - Name 21 "" - Name 33 "u" - Name 42 "ps_output" - Name 47 "g_tColor" - Name 54 "g_sAniso" - Name 67 "i" - Name 69 "i.vTextureCoords" - Name 73 "@entryPointOutput.vColor" - Name 74 "param" - MemberDecorate 19(PerViewConstantBuffer_t) 0 Offset 0 - MemberDecorate 19(PerViewConstantBuffer_t) 1 Offset 4 - MemberDecorate 19(PerViewConstantBuffer_t) 2 Offset 8 - Decorate 19(PerViewConstantBuffer_t) Block - Decorate 47(g_tColor) DescriptorSet 0 - Decorate 47(g_tColor) Binding 0 - Decorate 54(g_sAniso) DescriptorSet 0 - Decorate 54(g_sAniso) Binding 0 - Decorate 69(i.vTextureCoords) Location 0 - Decorate 73(@entryPointOutput.vColor) Location 0 - 4: TypeVoid - 5: TypeFunction 4 - 8: TypeFloat 32 - 9: TypeVector 8(float) 2 - 10(PS_INPUT): TypeStruct 9(fvec2) - 11: TypePointer Function 10(PS_INPUT) - 12: TypeVector 8(float) 4 - 13(PS_OUTPUT): TypeStruct 12(fvec4) - 14: TypeFunction 13(PS_OUTPUT) 11(ptr) - 18: TypeInt 32 0 -19(PerViewConstantBuffer_t): TypeStruct 18(int) 18(int) 18(int) - 20: TypePointer PushConstant 19(PerViewConstantBuffer_t) - 21: 20(ptr) Variable PushConstant - 22: TypeInt 32 1 - 23: 22(int) Constant 2 - 24: TypePointer PushConstant 18(int) - 27: TypeBool - 28: 18(int) Constant 0 - 32: TypePointer Function 18(int) - 34: 22(int) Constant 0 - 38: 22(int) Constant 1 - 41: TypePointer Function 13(PS_OUTPUT) - 43: TypeImage 8(float) 2D sampled format:Unknown - 44: 18(int) Constant 128 - 45: TypeArray 43 44 - 46: TypePointer UniformConstant 45 - 47(g_tColor): 46(ptr) Variable UniformConstant - 49: TypePointer UniformConstant 43 - 52: TypeSampler - 53: TypePointer UniformConstant 52 - 54(g_sAniso): 53(ptr) Variable UniformConstant - 56: TypeSampledImage 43 - 58: TypePointer Function 9(fvec2) - 62: TypePointer Function 12(fvec4) - 68: TypePointer Input 9(fvec2) -69(i.vTextureCoords): 68(ptr) Variable Input - 72: TypePointer Output 12(fvec4) -73(@entryPointOutput.vColor): 72(ptr) Variable Output - 6(MainPs): 4 Function None 5 - 7: Label - 67(i): 11(ptr) Variable Function - 74(param): 11(ptr) Variable Function - Line 1 23 0 - 70: 9(fvec2) Load 69(i.vTextureCoords) - 71: 58(ptr) AccessChain 67(i) 34 - Store 71 70 - 75:10(PS_INPUT) Load 67(i) - Store 74(param) 75 - 76:13(PS_OUTPUT) FunctionCall 16(@MainPs(struct-PS_INPUT-vf21;) 74(param) - 77: 12(fvec4) CompositeExtract 76 0 - Store 73(@entryPointOutput.vColor) 77 - Return - FunctionEnd -16(@MainPs(struct-PS_INPUT-vf21;):13(PS_OUTPUT) Function None 14 - 15(i): 11(ptr) FunctionParameter - 17: Label - 33(u): 32(ptr) Variable Function - 42(ps_output): 41(ptr) Variable Function - Line 1 27 0 - 25: 24(ptr) AccessChain 21 23 - 26: 18(int) Load 25 - 29: 27(bool) INotEqual 26 28 - SelectionMerge 31 None - BranchConditional 29 30 37 - 30: Label - Line 2 1 0 - 35: 24(ptr) AccessChain 21 34 - 36: 18(int) Load 35 - Store 33(u) 36 - Branch 31 - 37: Label - Line 1 30 0 - 39: 24(ptr) AccessChain 21 38 - 40: 18(int) Load 39 - Store 33(u) 40 - Branch 31 - 31: Label - Line 1 31 0 - 48: 18(int) Load 33(u) - 50: 49(ptr) AccessChain 47(g_tColor) 48 - 51: 43 Load 50 - 55: 52 Load 54(g_sAniso) - 57: 56 SampledImage 51 55 - 59: 58(ptr) AccessChain 15(i) 34 - 60: 9(fvec2) Load 59 - 61: 12(fvec4) ImageSampleImplicitLod 57 60 - 63: 62(ptr) AccessChain 42(ps_output) 34 - Store 63 61 - Line 1 32 0 - 64:13(PS_OUTPUT) Load 42(ps_output) - ReturnValue 64 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.pp.line4.frag.out b/deps/glslang/Test/baseResults/hlsl.pp.line4.frag.out deleted file mode 100644 index 2244588b..00000000 --- a/deps/glslang/Test/baseResults/hlsl.pp.line4.frag.out +++ /dev/null @@ -1,146 +0,0 @@ -hlsl.pp.line4.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 116 - - Capability Shader - 2: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 5 "MainPs" 70 74 - ExecutionMode 5 OriginUpperLeft - 1: String "hlsl.pp.line4.frag" - 17: String "C:\\Users\\Greg\\shaders\\line\\foo4.frag" - 32: String "C:\\Users\\Greg\\shaders\\line\\u1.h" - Source HLSL 500 1 "// OpModuleProcessed auto-map-locations -// OpModuleProcessed auto-map-bindings -// OpModuleProcessed entry-point MainPs -// OpModuleProcessed client vulkan100 -// OpModuleProcessed target-env vulkan1.0 -// OpModuleProcessed keep-uncalled -// OpModuleProcessed hlsl-offsets -#line 1 -#line 1 "C:\\Users\\Greg\\shaders\\line\\foo4.frag" -Texture2D g_tColor [ 128 ] ; - -layout ( push_constant ) cbuffer PerViewConstantBuffer_t -{ - uint g_nDataIdx ; - uint g_nDataIdx2 ; - bool g_B ; -} ; - -#line 12 -SamplerState g_sAniso ; - -struct PS_INPUT -{ - float2 vTextureCoords : TEXCOORD2 ; -} ; - -struct PS_OUTPUT -{ - float4 vColor : SV_Target0 ; -} ; - -PS_OUTPUT MainPs ( PS_INPUT i ) -{ - PS_OUTPUT ps_output ; - - uint u ; - if ( g_B ) - - -#line 1 "C:\\Users\\Greg\\shaders\\line\\u1.h" - u = g_nDataIdx ; - - -#line 31 "C:\\Users\\Greg\\shaders\\line\\foo4.frag" - else - u = g_nDataIdx2 ; - ps_output . vColor = g_tColor [ u ] . Sample ( g_sAniso , i . vTextureCoords . xy ) ; - return ps_output ; -} - -" - Name 5 "MainPs" - Name 19 "PerViewConstantBuffer_t" - MemberName 19(PerViewConstantBuffer_t) 0 "g_nDataIdx" - MemberName 19(PerViewConstantBuffer_t) 1 "g_nDataIdx2" - MemberName 19(PerViewConstantBuffer_t) 2 "g_B" - Name 21 "" - Name 48 "g_tColor" - Name 55 "g_sAniso" - Name 70 "i.vTextureCoords" - Name 74 "@entryPointOutput.vColor" - MemberDecorate 19(PerViewConstantBuffer_t) 0 Offset 0 - MemberDecorate 19(PerViewConstantBuffer_t) 1 Offset 4 - MemberDecorate 19(PerViewConstantBuffer_t) 2 Offset 8 - Decorate 19(PerViewConstantBuffer_t) Block - Decorate 48(g_tColor) DescriptorSet 0 - Decorate 48(g_tColor) Binding 0 - Decorate 55(g_sAniso) DescriptorSet 0 - Decorate 55(g_sAniso) Binding 1 - Decorate 70(i.vTextureCoords) Location 0 - Decorate 74(@entryPointOutput.vColor) Location 0 - 3: TypeVoid - 4: TypeFunction 3 - 7: TypeFloat 32 - 8: TypeVector 7(float) 2 - 11: TypeVector 7(float) 4 - 18: TypeInt 32 0 -19(PerViewConstantBuffer_t): TypeStruct 18(int) 18(int) 18(int) - 20: TypePointer PushConstant 19(PerViewConstantBuffer_t) - 21: 20(ptr) Variable PushConstant - 22: TypeInt 32 1 - 23: 22(int) Constant 2 - 24: TypePointer PushConstant 18(int) - 27: TypeBool - 28: 18(int) Constant 0 - 35: 22(int) Constant 0 - 39: 22(int) Constant 1 - 44: TypeImage 7(float) 2D sampled format:Unknown - 45: 18(int) Constant 128 - 46: TypeArray 44 45 - 47: TypePointer UniformConstant 46 - 48(g_tColor): 47(ptr) Variable UniformConstant - 50: TypePointer UniformConstant 44 - 53: TypeSampler - 54: TypePointer UniformConstant 53 - 55(g_sAniso): 54(ptr) Variable UniformConstant - 57: TypeSampledImage 44 - 69: TypePointer Input 8(fvec2) -70(i.vTextureCoords): 69(ptr) Variable Input - 73: TypePointer Output 11(fvec4) -74(@entryPointOutput.vColor): 73(ptr) Variable Output - 5(MainPs): 3 Function None 4 - 6: Label - Line 17 25 0 - 71: 8(fvec2) Load 70(i.vTextureCoords) - Line 17 29 0 - 83: 24(ptr) AccessChain 21 23 - 84: 18(int) Load 83 - 85: 27(bool) INotEqual 84 28 - SelectionMerge 92 None - BranchConditional 85 86 89 - 86: Label - Line 32 1 0 - 87: 24(ptr) AccessChain 21 35 - 88: 18(int) Load 87 - Branch 92 - 89: Label - Line 17 32 0 - 90: 24(ptr) AccessChain 21 39 - 91: 18(int) Load 90 - Branch 92 - 92: Label - 115: 18(int) Phi 88 86 91 89 - Line 17 33 0 - 94: 50(ptr) AccessChain 48(g_tColor) 115 - 95: 44 Load 94 - 96: 53 Load 55(g_sAniso) - 97: 57 SampledImage 95 96 - 100: 11(fvec4) ImageSampleImplicitLod 97 71 - Line 17 25 0 - Store 74(@entryPointOutput.vColor) 100 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.pp.vert.out b/deps/glslang/Test/baseResults/hlsl.pp.vert.out deleted file mode 100644 index 54781011..00000000 --- a/deps/glslang/Test/baseResults/hlsl.pp.vert.out +++ /dev/null @@ -1,62 +0,0 @@ -hlsl.pp.vert -Shader version: 500 -0:? Sequence -0:17 Function Definition: @main( ( temp void) -0:17 Function Parameters: -0:17 Function Definition: main( ( temp void) -0:17 Function Parameters: -0:? Sequence -0:17 Function Call: @main( ( temp void) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int goodGlobal1, uniform int goodGlobal2}) - - -Linked vertex stage: - - -Shader version: 500 -0:? Sequence -0:17 Function Definition: @main( ( temp void) -0:17 Function Parameters: -0:17 Function Definition: main( ( temp void) -0:17 Function Parameters: -0:? Sequence -0:17 Function Call: @main( ( temp void) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int goodGlobal1, uniform int goodGlobal2}) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 13 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" - Source HLSL 500 - Name 4 "main" - Name 6 "@main(" - Name 10 "$Global" - MemberName 10($Global) 0 "goodGlobal1" - MemberName 10($Global) 1 "goodGlobal2" - Name 12 "" - MemberDecorate 10($Global) 0 Offset 0 - MemberDecorate 10($Global) 1 Offset 4 - Decorate 10($Global) Block - Decorate 12 DescriptorSet 0 - Decorate 12 Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 9: TypeInt 32 1 - 10($Global): TypeStruct 9(int) 9(int) - 11: TypePointer Uniform 10($Global) - 12: 11(ptr) Variable Uniform - 4(main): 2 Function None 3 - 5: Label - 8: 2 FunctionCall 6(@main() - Return - FunctionEnd - 6(@main(): 2 Function None 3 - 7: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.precedence.frag.out b/deps/glslang/Test/baseResults/hlsl.precedence.frag.out deleted file mode 100644 index 3992618d..00000000 --- a/deps/glslang/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:8 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:8 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): 8000a -// 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/Test/baseResults/hlsl.precedence2.frag.out b/deps/glslang/Test/baseResults/hlsl.precedence2.frag.out deleted file mode 100644 index f231b351..00000000 --- a/deps/glslang/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): 8000a -// 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/Test/baseResults/hlsl.precise.frag.out b/deps/glslang/Test/baseResults/hlsl.precise.frag.out deleted file mode 100644 index 39e35783..00000000 --- a/deps/glslang/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): 8000a -// 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/Test/baseResults/hlsl.preprocessor.frag.out b/deps/glslang/Test/baseResults/hlsl.preprocessor.frag.out deleted file mode 100644 index 754d0d87..00000000 --- a/deps/glslang/Test/baseResults/hlsl.preprocessor.frag.out +++ /dev/null @@ -1,165 +0,0 @@ -hlsl.preprocessor.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:9 Function Definition: @main(vf4; ( temp 4-component vector of float) -0:9 Function Parameters: -0:9 'input' ( in 4-component vector of float) -0:? Sequence -0:10 Sequence -0:10 move second child to first child ( temp 4-component vector of float) -0:10 'tex' ( temp 4-component vector of float) -0:10 texture ( temp 4-component vector of float) -0:10 Construct combined texture-sampler ( temp sampler2D) -0:10 'test_texture' ( uniform texture2D) -0:10 'test_texture_ss' ( uniform sampler) -0:10 vector swizzle ( temp 2-component vector of float) -0:10 vector swizzle ( temp 2-component vector of float) -0:10 'input' ( in 4-component vector of float) -0:10 Sequence -0:10 Constant: -0:10 0 (const int) -0:10 Constant: -0:10 1 (const int) -0:10 Sequence -0:10 Constant: -0:10 0 (const int) -0:10 Constant: -0:10 1 (const int) -0:11 Branch: Return with expression -0:11 'tex' ( temp 4-component vector of float) -0:9 Function Definition: main( ( temp void) -0:9 Function Parameters: -0:? Sequence -0:9 move second child to first child ( temp 4-component vector of float) -0:? 'input' ( temp 4-component vector of float) -0:? 'input' (layout( location=0) in 4-component vector of float) -0:9 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:9 Function Call: @main(vf4; ( temp 4-component vector of float) -0:? 'input' ( temp 4-component vector of float) -0:? Linker Objects -0:? 'test_texture' ( uniform texture2D) -0:? 'test_texture_ss' ( uniform sampler) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'input' (layout( location=0) in 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:9 Function Definition: @main(vf4; ( temp 4-component vector of float) -0:9 Function Parameters: -0:9 'input' ( in 4-component vector of float) -0:? Sequence -0:10 Sequence -0:10 move second child to first child ( temp 4-component vector of float) -0:10 'tex' ( temp 4-component vector of float) -0:10 texture ( temp 4-component vector of float) -0:10 Construct combined texture-sampler ( temp sampler2D) -0:10 'test_texture' ( uniform texture2D) -0:10 'test_texture_ss' ( uniform sampler) -0:10 vector swizzle ( temp 2-component vector of float) -0:10 vector swizzle ( temp 2-component vector of float) -0:10 'input' ( in 4-component vector of float) -0:10 Sequence -0:10 Constant: -0:10 0 (const int) -0:10 Constant: -0:10 1 (const int) -0:10 Sequence -0:10 Constant: -0:10 0 (const int) -0:10 Constant: -0:10 1 (const int) -0:11 Branch: Return with expression -0:11 'tex' ( temp 4-component vector of float) -0:9 Function Definition: main( ( temp void) -0:9 Function Parameters: -0:? Sequence -0:9 move second child to first child ( temp 4-component vector of float) -0:? 'input' ( temp 4-component vector of float) -0:? 'input' (layout( location=0) in 4-component vector of float) -0:9 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:9 Function Call: @main(vf4; ( temp 4-component vector of float) -0:? 'input' ( temp 4-component vector of float) -0:? Linker Objects -0:? 'test_texture' ( uniform texture2D) -0:? 'test_texture_ss' ( uniform sampler) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'input' (layout( location=0) in 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 40 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 33 36 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 11 "@main(vf4;" - Name 10 "input" - Name 13 "tex" - Name 16 "test_texture" - Name 20 "test_texture_ss" - Name 31 "input" - Name 33 "input" - Name 36 "@entryPointOutput" - Name 37 "param" - Decorate 16(test_texture) DescriptorSet 0 - Decorate 16(test_texture) Binding 0 - Decorate 20(test_texture_ss) DescriptorSet 0 - Decorate 20(test_texture_ss) Binding 1 - Decorate 33(input) Location 0 - Decorate 36(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 9: TypeFunction 7(fvec4) 8(ptr) - 14: TypeImage 6(float) 2D sampled format:Unknown - 15: TypePointer UniformConstant 14 -16(test_texture): 15(ptr) Variable UniformConstant - 18: TypeSampler - 19: TypePointer UniformConstant 18 -20(test_texture_ss): 19(ptr) Variable UniformConstant - 22: TypeSampledImage 14 - 24: TypeVector 6(float) 2 - 32: TypePointer Input 7(fvec4) - 33(input): 32(ptr) Variable Input - 35: TypePointer Output 7(fvec4) -36(@entryPointOutput): 35(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 31(input): 8(ptr) Variable Function - 37(param): 8(ptr) Variable Function - 34: 7(fvec4) Load 33(input) - Store 31(input) 34 - 38: 7(fvec4) Load 31(input) - Store 37(param) 38 - 39: 7(fvec4) FunctionCall 11(@main(vf4;) 37(param) - Store 36(@entryPointOutput) 39 - Return - FunctionEnd - 11(@main(vf4;): 7(fvec4) Function None 9 - 10(input): 8(ptr) FunctionParameter - 12: Label - 13(tex): 8(ptr) Variable Function - 17: 14 Load 16(test_texture) - 21: 18 Load 20(test_texture_ss) - 23: 22 SampledImage 17 21 - 25: 7(fvec4) Load 10(input) - 26: 24(fvec2) VectorShuffle 25 25 0 1 - 27: 7(fvec4) ImageSampleImplicitLod 23 26 - Store 13(tex) 27 - 28: 7(fvec4) Load 13(tex) - ReturnValue 28 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.printf.comp.out b/deps/glslang/Test/baseResults/hlsl.printf.comp.out deleted file mode 100644 index ea31c353..00000000 --- a/deps/glslang/Test/baseResults/hlsl.printf.comp.out +++ /dev/null @@ -1,178 +0,0 @@ -hlsl.printf.comp -Shader version: 500 -local_size = (1, 1, 1) -0:? Sequence -0:4 Function Definition: @main( ( temp void) -0:4 Function Parameters: -0:? Sequence -0:5 Debug printf ( temp void) -0:5 Constant: -0:5 "first string" -0:6 Debug printf ( temp void) -0:6 Constant: -0:6 "please print this message." -0:7 Debug printf ( temp void) -0:7 Constant: -0:7 "Variables are: %d %d %.2f" -0:7 Constant: -0:7 1 (const uint) -0:7 Constant: -0:7 2 (const uint) -0:7 Constant: -0:7 1.500000 -0:8 Debug printf ( temp void) -0:8 Constant: -0:8 "Integers are: %d %d %d" -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 3 (const int) -0:9 Debug printf ( temp void) -0:9 Constant: -0:9 "More: %d %d %d %d %d %d %d %d %d %d" -0:9 Constant: -0:9 1 (const int) -0:9 Constant: -0:9 2 (const int) -0:9 Constant: -0:9 3 (const int) -0:9 Constant: -0:9 4 (const int) -0:9 Constant: -0:9 5 (const int) -0:9 Constant: -0:9 6 (const int) -0:9 Constant: -0:9 7 (const int) -0:9 Constant: -0:9 8 (const int) -0:9 Constant: -0:9 9 (const int) -0:9 Constant: -0:9 10 (const int) -0:4 Function Definition: main( ( temp void) -0:4 Function Parameters: -0:? Sequence -0:4 Function Call: @main( ( temp void) -0:? Linker Objects -0:? 'first' ( const string) -0:? "first string" - - -Linked compute stage: - - -Shader version: 500 -local_size = (1, 1, 1) -0:? Sequence -0:4 Function Definition: @main( ( temp void) -0:4 Function Parameters: -0:? Sequence -0:5 Debug printf ( temp void) -0:5 Constant: -0:5 "first string" -0:6 Debug printf ( temp void) -0:6 Constant: -0:6 "please print this message." -0:7 Debug printf ( temp void) -0:7 Constant: -0:7 "Variables are: %d %d %.2f" -0:7 Constant: -0:7 1 (const uint) -0:7 Constant: -0:7 2 (const uint) -0:7 Constant: -0:7 1.500000 -0:8 Debug printf ( temp void) -0:8 Constant: -0:8 "Integers are: %d %d %d" -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 3 (const int) -0:9 Debug printf ( temp void) -0:9 Constant: -0:9 "More: %d %d %d %d %d %d %d %d %d %d" -0:9 Constant: -0:9 1 (const int) -0:9 Constant: -0:9 2 (const int) -0:9 Constant: -0:9 3 (const int) -0:9 Constant: -0:9 4 (const int) -0:9 Constant: -0:9 5 (const int) -0:9 Constant: -0:9 6 (const int) -0:9 Constant: -0:9 7 (const int) -0:9 Constant: -0:9 8 (const int) -0:9 Constant: -0:9 9 (const int) -0:9 Constant: -0:9 10 (const int) -0:4 Function Definition: main( ( temp void) -0:4 Function Parameters: -0:? Sequence -0:4 Function Call: @main( ( temp void) -0:? Linker Objects -0:? 'first' ( const string) -0:? "first string" - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 36 - - Capability Shader - Extension "SPV_KHR_non_semantic_info" - 1: ExtInstImport "GLSL.std.450" - 9: ExtInstImport "NonSemantic.DebugPrintf" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" - ExecutionMode 4 LocalSize 1 1 1 - 8: String "first string" - 11: String "please print this message." - 13: String "Variables are: %d %d %.2f" - 20: String "Integers are: %d %d %d" - 26: String "More: %d %d %d %d %d %d %d %d %d %d" - Source HLSL 500 - Name 4 "main" - Name 6 "@main(" - 2: TypeVoid - 3: TypeFunction 2 - 14: TypeInt 32 0 - 15: 14(int) Constant 1 - 16: 14(int) Constant 2 - 17: TypeFloat 32 - 18: 17(float) Constant 1069547520 - 21: TypeInt 32 1 - 22: 21(int) Constant 1 - 23: 21(int) Constant 2 - 24: 21(int) Constant 3 - 27: 21(int) Constant 4 - 28: 21(int) Constant 5 - 29: 21(int) Constant 6 - 30: 21(int) Constant 7 - 31: 21(int) Constant 8 - 32: 21(int) Constant 9 - 33: 21(int) Constant 10 - 4(main): 2 Function None 3 - 5: Label - 35: 2 FunctionCall 6(@main() - Return - FunctionEnd - 6(@main(): 2 Function None 3 - 7: Label - 10: 2 ExtInst 9(NonSemantic.DebugPrintf) 1(DebugPrintf) 8 - 12: 2 ExtInst 9(NonSemantic.DebugPrintf) 1(DebugPrintf) 11 - 19: 2 ExtInst 9(NonSemantic.DebugPrintf) 1(DebugPrintf) 13 15 16 18 - 25: 2 ExtInst 9(NonSemantic.DebugPrintf) 1(DebugPrintf) 20 22 23 24 - 34: 2 ExtInst 9(NonSemantic.DebugPrintf) 1(DebugPrintf) 26 22 23 24 27 28 29 30 31 32 33 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.promote.atomic.frag.out b/deps/glslang/Test/baseResults/hlsl.promote.atomic.frag.out deleted file mode 100644 index a34b7ddd..00000000 --- a/deps/glslang/Test/baseResults/hlsl.promote.atomic.frag.out +++ /dev/null @@ -1,124 +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:15 Constant: -0:15 0.000000 -0:15 0.000000 -0:15 0.000000 -0:15 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:15 Constant: -0:15 0.000000 -0:15 0.000000 -0:15 0.000000 -0:15 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): 8000a -// 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 17(s_uintbuff) Binding 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/Test/baseResults/hlsl.promote.binary.frag.out b/deps/glslang/Test/baseResults/hlsl.promote.binary.frag.out deleted file mode 100644 index a0007c32..00000000 --- a/deps/glslang/Test/baseResults/hlsl.promote.binary.frag.out +++ /dev/null @@ -1,295 +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): 8000a -// 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 18 Binding 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/Test/baseResults/hlsl.promote.vec1.frag.out b/deps/glslang/Test/baseResults/hlsl.promote.vec1.frag.out deleted file mode 100644 index 11e324f9..00000000 --- a/deps/glslang/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:15 Constant: -0:15 0.000000 -0:15 0.000000 -0:15 0.000000 -0:15 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:15 Constant: -0:15 0.000000 -0:15 0.000000 -0:15 0.000000 -0:15 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): 8000a -// 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/Test/baseResults/hlsl.promotions.frag.out b/deps/glslang/Test/baseResults/hlsl.promotions.frag.out deleted file mode 100644 index f1354063..00000000 --- a/deps/glslang/Test/baseResults/hlsl.promotions.frag.out +++ /dev/null @@ -1,2382 +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:196 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:196 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): 8000a -// 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 113 Binding 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) FUnordNotEqual 252 142 - Store 87(p) 253 - 254: 182(ptr) AccessChain 113 181 - 255: 7(fvec3) Load 254 - 256: 28(bvec3) FUnordNotEqual 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) FUnordNotEqual 260 262 - Store 90(p) 263 - 264: 152(ptr) AccessChain 113 151 - 265: 35(f64vec3) Load 264 - 266: 28(bvec3) FUnordNotEqual 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) FUnordNotEqual 366 142 - Store 364(r32) 367 - 369: 152(ptr) AccessChain 113 151 - 370: 35(f64vec3) Load 369 - 371: 28(bvec3) FUnordNotEqual 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/Test/baseResults/hlsl.reflection.binding.frag.out b/deps/glslang/Test/baseResults/hlsl.reflection.binding.frag.out deleted file mode 100644 index e559dd36..00000000 --- a/deps/glslang/Test/baseResults/hlsl.reflection.binding.frag.out +++ /dev/null @@ -1,26 +0,0 @@ -hlsl.reflection.binding.frag -Uniform reflection: -t1: offset -1, type 8b5d, size 1, index -1, binding 15, stages 16 -s1: offset -1, type 0, size 1, index -1, binding 5, stages 16 -t1a: offset -1, type 8b5d, size 1, index -1, binding 16, stages 16, arrayStride 4, topLevelArrayStride 4 -s1a: offset -1, type 0, size 1, index -1, binding 6, stages 16, arrayStride 4, topLevelArrayStride 4 -c1_a: offset 0, type 8b52, size 1, index 0, binding -1, stages 16 -c1_b: offset 16, type 1404, size 1, index 0, binding -1, stages 16 -c1_c: offset 20, type 1406, size 1, index 0, binding -1, stages 16 -c2_a: offset 0, type 8b52, size 1, index 1, binding -1, stages 16 -c2_b: offset 16, type 1404, size 1, index 1, binding -1, stages 16 -c2_c: offset 20, type 1406, size 1, index 1, binding -1, stages 16 - -Uniform block reflection: -cbuff1: offset -1, type ffffffff, size 24, index 0, binding 2, stages 16, numMembers 3 -cbuff2: offset -1, type ffffffff, size 24, index 1, binding 3, stages 16, numMembers 3 - -Buffer variable reflection: - -Buffer block reflection: - -Pipeline input reflection: - -Pipeline output reflection: -psout.Color: offset 0, type 8b52, size 1, index 0, binding -1, stages 16 - diff --git a/deps/glslang/Test/baseResults/hlsl.reflection.binding.vert.out b/deps/glslang/Test/baseResults/hlsl.reflection.binding.vert.out deleted file mode 100644 index f1368df9..00000000 --- a/deps/glslang/Test/baseResults/hlsl.reflection.binding.vert.out +++ /dev/null @@ -1,15 +0,0 @@ -hlsl.reflection.binding.vert - -Linked vertex stage: - - -Uniform reflection: -t1: offset -1, type 8b5d, size 1, index -1, binding 15 -s1: offset -1, type 0, size 1, index -1, binding 5 -t1a: offset -1, type 8b5d, size 1, index -1, binding 16 -s1a: offset -1, type 0, size 1, index -1, binding 6 - -Uniform block reflection: - -Vertex attribute reflection: - diff --git a/deps/glslang/Test/baseResults/hlsl.reflection.vert.out b/deps/glslang/Test/baseResults/hlsl.reflection.vert.out deleted file mode 100644 index 796784ba..00000000 --- a/deps/glslang/Test/baseResults/hlsl.reflection.vert.out +++ /dev/null @@ -1,85 +0,0 @@ -hlsl.reflection.vert -Uniform reflection: -anonDeadMember2: offset 64, type 8b52, size 1, index 0, binding -1, stages 1 -ufDead4: offset 28, type 1406, size 1, index 1, binding -1, stages 1 -anonMember1: offset 0, type 8b51, size 1, index 0, binding -1, stages 1 -uf1: offset 16, type 1406, size 1, index 1, binding -1, stages 1 -anonMember3: offset 80, type 8b52, size 1, index 0, binding -1, stages 1 -s.a: offset 0, type 1404, size 1, index 1, binding -1, stages 1 -m23: offset 16, type 8b67, size 1, index 0, binding -1, stages 1 -scalarAfterm23: offset 48, type 1404, size 1, index 0, binding -1, stages 1 -c_m23: offset 16, type 8b67, size 1, index 2, binding -1, stages 1 -c_scalarAfterm23: offset 48, type 1404, size 1, index 2, binding -1, stages 1 -scalarBeforeArray: offset 96, type 1404, size 1, index 0, binding -1, stages 1 -floatArray: offset 112, type 1406, size 5, index 0, binding -1, stages 1, arrayStride 16, topLevelArrayStride 16 -scalarAfterArray: offset 192, type 1404, size 1, index 0, binding -1, stages 1 -m22: offset 208, type 8b5a, size 9, index 0, binding -1, stages 1, arrayStride 32, topLevelArrayStride 32 -dm22: offset 32, type 8b5a, size 4, index 1, binding -1, stages 1, arrayStride 32, topLevelArrayStride 32 -foo.n1.a: offset 0, type 1406, size 1, index 3, binding -1, stages 1 -foo.n2.b: offset 16, type 1406, size 1, index 3, binding -1, stages 1 -foo.n2.c: offset 20, type 1406, size 1, index 3, binding -1, stages 1 -foo.n2.d: offset 24, type 1406, size 1, index 3, binding -1, stages 1 -deepA.d2.d1[2].va: offset 440, type 8b50, size 2, index 1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 304 -deepB.d2.d1.va: offset 984, type 8b50, size 2, index 1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 304 -deepB.d2.d1[0].va: offset 984, type 8b50, size 2, index 1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 304 -deepB.d2.d1[1].va: offset 1016, type 8b50, size 2, index 1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 304 -deepB.d2.d1[2].va: offset 1048, type 8b50, size 2, index 1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 304 -deepB.d2.d1[3].va: offset 1080, type 8b50, size 2, index 1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 304 -deepC.iv4: offset 1568, type 8b52, size 1, index 1, binding -1, stages 1, topLevelArrayStride 304 -deepC.d2.i: offset 1584, type 1404, size 1, index 1, binding -1, stages 1, topLevelArrayStride 304 -deepC.d2.d1[0].va: offset 1592, type 8b50, size 3, index 1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 304 -deepC.d2.d1[0].b: offset 1616, type 8b56, size 1, index 1, binding -1, stages 1, topLevelArrayStride 304 -deepC.d2.d1[1].va: offset 1624, type 8b50, size 3, index 1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 304 -deepC.d2.d1[1].b: offset 1648, type 8b56, size 1, index 1, binding -1, stages 1, topLevelArrayStride 304 -deepC.d2.d1[2].va: offset 1656, type 8b50, size 3, index 1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 304 -deepC.d2.d1[2].b: offset 1680, type 8b56, size 1, index 1, binding -1, stages 1, topLevelArrayStride 304 -deepC.d2.d1[3].va: offset 1688, type 8b50, size 3, index 1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 304 -deepC.d2.d1[3].b: offset 1712, type 8b56, size 1, index 1, binding -1, stages 1, topLevelArrayStride 304 -deepC.v3: offset 1728, type 8b54, size 1, index 1, binding -1, stages 1, topLevelArrayStride 304 -deepD[0].iv4: offset 2480, type 8b52, size 1, index 1, binding -1, stages 1, topLevelArrayStride 304 -deepD[0].d2.i: offset 2496, type 1404, size 1, index 1, binding -1, stages 1, topLevelArrayStride 304 -deepD[0].d2.d1[0].va: offset 2504, type 8b50, size 3, index 1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 304 -deepD[0].d2.d1[0].b: offset 2528, type 8b56, size 1, index 1, binding -1, stages 1, topLevelArrayStride 304 -deepD[0].d2.d1[1].va: offset 2536, type 8b50, size 3, index 1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 304 -deepD[0].d2.d1[1].b: offset 2560, type 8b56, size 1, index 1, binding -1, stages 1, topLevelArrayStride 304 -deepD[0].d2.d1[2].va: offset 2568, type 8b50, size 3, index 1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 304 -deepD[0].d2.d1[2].b: offset 2592, type 8b56, size 1, index 1, binding -1, stages 1, topLevelArrayStride 304 -deepD[0].d2.d1[3].va: offset 2600, type 8b50, size 3, index 1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 304 -deepD[0].d2.d1[3].b: offset 2624, type 8b56, size 1, index 1, binding -1, stages 1, topLevelArrayStride 304 -deepD[0].v3: offset 2640, type 8b54, size 1, index 1, binding -1, stages 1, topLevelArrayStride 304 -deepD[1].iv4: offset 2784, type 8b52, size 1, index 1, binding -1, stages 1, topLevelArrayStride 304 -deepD[1].d2.i: offset 2800, type 1404, size 1, index 1, binding -1, stages 1, topLevelArrayStride 304 -deepD[1].d2.d1[0].va: offset 2808, type 8b50, size 3, index 1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 304 -deepD[1].d2.d1[0].b: offset 2832, type 8b56, size 1, index 1, binding -1, stages 1, topLevelArrayStride 304 -deepD[1].d2.d1[1].va: offset 2840, type 8b50, size 3, index 1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 304 -deepD[1].d2.d1[1].b: offset 2864, type 8b56, size 1, index 1, binding -1, stages 1, topLevelArrayStride 304 -deepD[1].d2.d1[2].va: offset 2872, type 8b50, size 3, index 1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 304 -deepD[1].d2.d1[2].b: offset 2896, type 8b56, size 1, index 1, binding -1, stages 1, topLevelArrayStride 304 -deepD[1].d2.d1[3].va: offset 2904, type 8b50, size 3, index 1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 304 -deepD[1].d2.d1[3].b: offset 2928, type 8b56, size 1, index 1, binding -1, stages 1, topLevelArrayStride 304 -deepD[1].v3: offset 2944, type 8b54, size 1, index 1, binding -1, stages 1, topLevelArrayStride 304 -ufDead3: offset 24, type 1406, size 1, index 1, binding -1, stages 1 -foo1: offset 0, type 1406, size 1, index 4, binding -1, stages 1 -foo2: offset 0, type 1406, size 1, index 5, binding -1, stages 1 - -Uniform block reflection: -nameless: offset -1, type ffffffff, size 496, index 0, binding -1, stages 1, numMembers 9 -$Global: offset -1, type ffffffff, size 3088, index 1, binding -1, stages 1, numMembers 106 -c_nameless: offset -1, type ffffffff, size 96, index 2, binding -1, stages 1, numMembers 5 -nested: offset -1, type ffffffff, size 32, index 3, binding -1, stages 1, numMembers 4 -abl: offset -1, type ffffffff, size 4, index 4, binding -1, stages 1, numMembers 1 -abl2: offset -1, type ffffffff, size 4, index 5, binding -1, stages 1, numMembers 1 - -Buffer variable reflection: - -Buffer block reflection: - -Pipeline input reflection: -attributeFloat: offset 0, type 1406, size 1, index 0, binding -1, stages 1 -attributeFloat2: offset 0, type 8b50, size 1, index 0, binding -1, stages 1 -attributeFloat3: offset 0, type 8b51, size 1, index 0, binding -1, stages 1 -attributeFloat4: offset 0, type 8b52, size 1, index 0, binding -1, stages 1 -attributeMat4: offset 0, type 8b5c, size 1, index 0, binding -1, stages 1 - -Pipeline output reflection: - diff --git a/deps/glslang/Test/baseResults/hlsl.round.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.round.dx10.frag.out deleted file mode 100644 index be72dc59..00000000 --- a/deps/glslang/Test/baseResults/hlsl.round.dx10.frag.out +++ /dev/null @@ -1,60 +0,0 @@ -hlsl.round.dx10.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 roundEven ( temp 4-component vector of float) -0:3 'input' ( in 4-component vector of float) -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; ( 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 roundEven ( temp 4-component vector of float) -0:3 'input' ( in 4-component vector of float) -0:? Linker Objects - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 17 - - 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" - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 9: TypeFunction 7(fvec4) 8(ptr) - 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) - 14: 7(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 13 - ReturnValue 14 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.round.dx9.frag.out b/deps/glslang/Test/baseResults/hlsl.round.dx9.frag.out deleted file mode 100644 index 9333c7dc..00000000 --- a/deps/glslang/Test/baseResults/hlsl.round.dx9.frag.out +++ /dev/null @@ -1,70 +0,0 @@ -hlsl.round.dx9.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 round ( temp 4-component vector of float) -0:3 'input' ( in 4-component vector of float) -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; ( 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 round ( temp 4-component vector of float) -0:3 'input' ( in 4-component vector of float) -0:? Linker Objects - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 18 - - Capability Shader - 2: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 5 "main" - ExecutionMode 5 OriginUpperLeft - 1: String "" - Source HLSL 500 1 "// OpModuleProcessed auto-map-locations -// OpModuleProcessed auto-map-bindings -// OpModuleProcessed entry-point main -// OpModuleProcessed client vulkan100 -// OpModuleProcessed target-env vulkan1.0 -// OpModuleProcessed keep-uncalled -// OpModuleProcessed hlsl-offsets -#line 1 -" - Name 5 "main" - Name 12 "PixelShaderFunction(vf4;" - Name 11 "input" - 3: TypeVoid - 4: TypeFunction 3 - 7: TypeFloat 32 - 8: TypeVector 7(float) 4 - 9: TypePointer Function 8(fvec4) - 10: TypeFunction 8(fvec4) 9(ptr) - 5(main): 3 Function None 4 - 6: Label - Return - FunctionEnd -12(PixelShaderFunction(vf4;): 8(fvec4) Function None 10 - 11(input): 9(ptr) FunctionParameter - 13: Label - Line 1 3 0 - 14: 8(fvec4) Load 11(input) - 15: 8(fvec4) ExtInst 2(GLSL.std.450) 1(Round) 14 - ReturnValue 15 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.rw.atomics.frag.out b/deps/glslang/Test/baseResults/hlsl.rw.atomics.frag.out deleted file mode 100644 index 06bc3172..00000000 --- a/deps/glslang/Test/baseResults/hlsl.rw.atomics.frag.out +++ /dev/null @@ -1,5295 +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): 8000a -// 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 - Decorate 15(g_tTex1di1) Binding 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 23 Binding 10 - Decorate 121(g_tTex1du1) DescriptorSet 0 - Decorate 121(g_tTex1du1) Binding 1 - Decorate 217(g_tTex2di1) DescriptorSet 0 - Decorate 217(g_tTex2di1) Binding 2 - Decorate 308(g_tTex2du1) DescriptorSet 0 - Decorate 308(g_tTex2du1) Binding 3 - Decorate 399(g_tTex3di1) DescriptorSet 0 - Decorate 399(g_tTex3di1) Binding 4 - Decorate 490(g_tTex3du1) DescriptorSet 0 - Decorate 490(g_tTex3du1) Binding 5 - Decorate 581(g_tTex1di1a) DescriptorSet 0 - Decorate 581(g_tTex1di1a) Binding 6 - Decorate 670(g_tTex1du1a) DescriptorSet 0 - Decorate 670(g_tTex1du1a) Binding 7 - Decorate 931(g_tBuffI) DescriptorSet 0 - Decorate 931(g_tBuffI) Binding 8 - Decorate 1020(g_tBuffU) DescriptorSet 0 - Decorate 1020(g_tBuffU) Binding 9 - Decorate 1117(@entryPointOutput.Color) Location 0 - Decorate 1122(g_sSamp) DescriptorSet 0 - Decorate 1122(g_sSamp) Binding 0 - Decorate 1125(g_tTex1df1) DescriptorSet 0 - Decorate 1125(g_tTex1df1) Binding 0 - Decorate 1128(g_tTex2df1) DescriptorSet 0 - Decorate 1128(g_tTex2df1) Binding 0 - Decorate 1131(g_tTex3df1) DescriptorSet 0 - Decorate 1131(g_tTex3df1) Binding 0 - Decorate 1134(g_tTex1df1a) DescriptorSet 0 - Decorate 1134(g_tTex1df1a) Binding 0 - Decorate 1137(g_tTex2df1a) DescriptorSet 0 - Decorate 1137(g_tTex2df1a) Binding 0 - Decorate 1140(g_tTex2di1a) DescriptorSet 0 - Decorate 1140(g_tTex2di1a) Binding 0 - Decorate 1143(g_tTex2du1a) DescriptorSet 0 - Decorate 1143(g_tTex2du1a) Binding 0 - Decorate 1146(g_tBuffF) DescriptorSet 0 - Decorate 1146(g_tBuffF) Binding 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/Test/baseResults/hlsl.rw.bracket.frag.out b/deps/glslang/Test/baseResults/hlsl.rw.bracket.frag.out deleted file mode 100644 index c79877c0..00000000 --- a/deps/glslang/Test/baseResults/hlsl.rw.bracket.frag.out +++ /dev/null @@ -1,2680 +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:79 Constant: -0:79 2 (const int) -0:79 2 (const int) -0:79 3 (const int) -0:79 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:80 Constant: -0:80 3 (const uint) -0:80 2 (const uint) -0:80 3 (const uint) -0:80 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:97 Constant: -0:97 5 (const int) -0:97 2 (const int) -0:97 3 (const int) -0:97 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:98 Constant: -0:98 6 (const uint) -0:98 2 (const uint) -0:98 3 (const uint) -0:98 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:103 Constant: -0:103 8 (const int) -0:103 6 (const int) -0:103 7 (const int) -0:103 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:104 Constant: -0:104 9 (const uint) -0:104 2 (const uint) -0:104 3 (const uint) -0:104 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:135 imageLoad ( temp 4-component vector of float) -0:135 'g_tTex2df4' (layout( rgba32f) uniform image2D) -0:135 Constant: -0:135 2 (const int) -0:135 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:79 Constant: -0:79 2 (const int) -0:79 2 (const int) -0:79 3 (const int) -0:79 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:80 Constant: -0:80 3 (const uint) -0:80 2 (const uint) -0:80 3 (const uint) -0:80 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:97 Constant: -0:97 5 (const int) -0:97 2 (const int) -0:97 3 (const int) -0:97 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:98 Constant: -0:98 6 (const uint) -0:98 2 (const uint) -0:98 3 (const uint) -0:98 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:103 Constant: -0:103 8 (const int) -0:103 6 (const int) -0:103 7 (const int) -0:103 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:104 Constant: -0:104 9 (const uint) -0:104 2 (const uint) -0:104 3 (const uint) -0:104 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:135 imageLoad ( temp 4-component vector of float) -0:135 'g_tTex2df4' (layout( rgba32f) uniform image2D) -0:135 Constant: -0:135 2 (const int) -0:135 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): 8000a -// 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 65 Binding 9 - Decorate 75(g_tTex1df4) DescriptorSet 0 - Decorate 75(g_tTex1df4) Binding 0 - Decorate 89(g_tTex1di4) DescriptorSet 0 - Decorate 89(g_tTex1di4) Binding 1 - Decorate 97(g_tTex1du4) DescriptorSet 0 - Decorate 97(g_tTex1du4) Binding 2 - Decorate 105(g_tTex2df4) DescriptorSet 0 - Decorate 105(g_tTex2df4) Binding 3 - Decorate 115(g_tTex2di4) DescriptorSet 0 - Decorate 115(g_tTex2di4) Binding 4 - Decorate 123(g_tTex2du4) DescriptorSet 0 - Decorate 123(g_tTex2du4) Binding 5 - Decorate 131(g_tTex3df4) DescriptorSet 0 - Decorate 131(g_tTex3df4) Binding 6 - Decorate 141(g_tTex3di4) DescriptorSet 0 - Decorate 141(g_tTex3di4) Binding 7 - Decorate 149(g_tTex3du4) DescriptorSet 0 - Decorate 149(g_tTex3du4) Binding 8 - 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 591(g_tTex1df4a) Binding 0 - Decorate 594(g_tTex1di4a) DescriptorSet 0 - Decorate 594(g_tTex1di4a) Binding 0 - Decorate 597(g_tTex1du4a) DescriptorSet 0 - Decorate 597(g_tTex1du4a) Binding 0 - Decorate 600(g_tTex2df4a) DescriptorSet 0 - Decorate 600(g_tTex2df4a) Binding 0 - Decorate 603(g_tTex2di4a) DescriptorSet 0 - Decorate 603(g_tTex2di4a) Binding 0 - Decorate 606(g_tTex2du4a) DescriptorSet 0 - Decorate 606(g_tTex2du4a) Binding 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/Test/baseResults/hlsl.rw.register.frag.out b/deps/glslang/Test/baseResults/hlsl.rw.register.frag.out deleted file mode 100644 index 265eaf9e..00000000 --- a/deps/glslang/Test/baseResults/hlsl.rw.register.frag.out +++ /dev/null @@ -1,175 +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): 8000a -// Id's are bound by 45 - - Capability Shader - Capability Image1D - Capability ImageBuffer - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 42 - 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 24 "r01" - Name 27 "g_tBuf1du1" - Name 33 "psout" - Name 42 "@entryPointOutput.Color" - Decorate 16(g_tTex1df1) DescriptorSet 0 - Decorate 16(g_tTex1df1) Binding 2 - Decorate 27(g_tBuf1du1) DescriptorSet 0 - Decorate 27(g_tBuf1du1) Binding 3 - Decorate 42(@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 - 22: TypeInt 32 0 - 23: TypePointer Function 22(int) - 25: TypeImage 22(int) Buffer nonsampled format:R32ui - 26: TypePointer UniformConstant 25 - 27(g_tBuf1du1): 26(ptr) Variable UniformConstant - 29: TypeVector 22(int) 4 - 32: TypePointer Function 8(PS_OUTPUT) - 34: 6(float) Constant 1065353216 - 35: 7(fvec4) ConstantComposite 34 34 34 34 - 36: TypePointer Function 7(fvec4) - 41: TypePointer Output 7(fvec4) -42(@entryPointOutput.Color): 41(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 43:8(PS_OUTPUT) FunctionCall 10(@main() - 44: 7(fvec4) CompositeExtract 43 0 - Store 42(@entryPointOutput.Color) 44 - Return - FunctionEnd - 10(@main():8(PS_OUTPUT) Function None 9 - 11: Label - 13(r00): 12(ptr) Variable Function - 24(r01): 23(ptr) Variable Function - 33(psout): 32(ptr) Variable Function - 17: 14 Load 16(g_tTex1df1) - 20: 7(fvec4) ImageRead 17 19 - 21: 6(float) CompositeExtract 20 0 - Store 13(r00) 21 - 28: 25 Load 27(g_tBuf1du1) - 30: 29(ivec4) ImageRead 28 19 - 31: 22(int) CompositeExtract 30 0 - Store 24(r01) 31 - 37: 36(ptr) AccessChain 33(psout) 19 - Store 37 35 - 38:8(PS_OUTPUT) Load 33(psout) - ReturnValue 38 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.rw.scalar.bracket.frag.out b/deps/glslang/Test/baseResults/hlsl.rw.scalar.bracket.frag.out deleted file mode 100644 index 8e4716b7..00000000 --- a/deps/glslang/Test/baseResults/hlsl.rw.scalar.bracket.frag.out +++ /dev/null @@ -1,2626 +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:135 imageLoad ( temp float) -0:135 'g_tTex2df1' (layout( r32f) uniform image2D) -0:135 Constant: -0:135 2 (const int) -0:135 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:135 imageLoad ( temp float) -0:135 'g_tTex2df1' (layout( r32f) uniform image2D) -0:135 Constant: -0:135 2 (const int) -0:135 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): 8000a -// 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 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 76 "r00" - Name 82 "r01" - Name 85 "g_tTex1di1" - Name 91 "r02" - Name 94 "g_tTex1du1" - Name 101 "r10" - Name 104 "g_tTex2df1" - Name 112 "r11" - Name 115 "g_tTex2di1" - Name 121 "r12" - Name 124 "g_tTex2du1" - Name 130 "r20" - Name 133 "g_tTex3df1" - Name 141 "r21" - Name 144 "g_tTex3di1" - Name 150 "r22" - Name 153 "g_tTex3du1" - Name 159 "lf1" - Name 164 "storeTemp" - Name 174 "storeTemp" - Name 179 "storeTemp" - Name 185 "val1" - Name 186 "coordTemp" - Name 189 "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 325 "storeTemp" - Name 331 "storeTemp" - Name 341 "storeTemp" - Name 346 "storeTemp" - Name 357 "param" - Name 364 "param" - Name 371 "param" - Name 373 "tempArg" - Name 374 "param" - Name 381 "tempArg" - Name 382 "param" - Name 389 "tempArg" - Name 390 "param" - Name 397 "coordTemp" - Name 400 "storeTemp" - Name 411 "coordTemp" - Name 414 "storeTemp" - Name 424 "coordTemp" - Name 427 "storeTemp" - Name 437 "coordTemp" - Name 440 "storeTemp" - Name 450 "coordTemp" - Name 453 "storeTemp" - Name 463 "coordTemp" - Name 466 "storeTemp" - Name 476 "coordTemp" - Name 479 "storeTempPre" - Name 484 "storeTempPost" - Name 491 "coordTemp" - Name 494 "storeTempPre" - Name 499 "storeTempPost" - Name 506 "coordTemp" - Name 509 "storeTempPre" - Name 514 "storeTempPost" - Name 521 "coordTemp" - Name 524 "storeTempPre" - Name 529 "storeTempPost" - Name 536 "coordTemp" - Name 539 "storeTempPre" - Name 544 "storeTempPost" - Name 551 "coordTemp" - Name 554 "storeTempPre" - Name 559 "storeTempPost" - Name 566 "storeTemp" - Name 575 "psout" - Name 583 "@entryPointOutput.Color" - Name 588 "g_sSamp" - Name 591 "g_tTex1df1a" - Name 594 "g_tTex1di1a" - Name 597 "g_tTex1du1a" - Name 600 "g_tTex2df1a" - Name 603 "g_tTex2di1a" - Name 606 "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 61 Binding 10 - Decorate 70(g_tTex1df1) DescriptorSet 0 - Decorate 70(g_tTex1df1) Binding 1 - Decorate 85(g_tTex1di1) DescriptorSet 0 - Decorate 85(g_tTex1di1) Binding 2 - Decorate 94(g_tTex1du1) DescriptorSet 0 - Decorate 94(g_tTex1du1) Binding 3 - Decorate 104(g_tTex2df1) DescriptorSet 0 - Decorate 104(g_tTex2df1) Binding 4 - Decorate 115(g_tTex2di1) DescriptorSet 0 - Decorate 115(g_tTex2di1) Binding 5 - Decorate 124(g_tTex2du1) DescriptorSet 0 - Decorate 124(g_tTex2du1) Binding 6 - Decorate 133(g_tTex3df1) DescriptorSet 0 - Decorate 133(g_tTex3df1) Binding 7 - Decorate 144(g_tTex3di1) DescriptorSet 0 - Decorate 144(g_tTex3di1) Binding 8 - Decorate 153(g_tTex3du1) DescriptorSet 0 - Decorate 153(g_tTex3du1) Binding 9 - Decorate 583(@entryPointOutput.Color) Location 0 - Decorate 588(g_sSamp) DescriptorSet 0 - Decorate 588(g_sSamp) Binding 0 - Decorate 591(g_tTex1df1a) DescriptorSet 0 - Decorate 591(g_tTex1df1a) Binding 0 - Decorate 594(g_tTex1di1a) DescriptorSet 0 - Decorate 594(g_tTex1di1a) Binding 0 - Decorate 597(g_tTex1du1a) DescriptorSet 0 - Decorate 597(g_tTex1du1a) Binding 0 - Decorate 600(g_tTex2df1a) DescriptorSet 0 - Decorate 600(g_tTex2df1a) Binding 0 - Decorate 603(g_tTex2di1a) DescriptorSet 0 - Decorate 603(g_tTex2di1a) Binding 0 - Decorate 606(g_tTex2du1a) DescriptorSet 0 - Decorate 606(g_tTex2du1a) Binding 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 - 83: TypeImage 6(int) 1D nonsampled format:R32i - 84: TypePointer UniformConstant 83 - 85(g_tTex1di1): 84(ptr) Variable UniformConstant - 92: TypeImage 12(int) 1D nonsampled format:R32ui - 93: TypePointer UniformConstant 92 - 94(g_tTex1du1): 93(ptr) Variable UniformConstant - 98: TypeVector 12(int) 4 - 102: TypeImage 18(float) 2D nonsampled format:R32f - 103: TypePointer UniformConstant 102 - 104(g_tTex2df1): 103(ptr) Variable UniformConstant - 106: 6(int) Constant 1 - 107: TypePointer Uniform 56(ivec2) - 113: TypeImage 6(int) 2D nonsampled format:R32i - 114: TypePointer UniformConstant 113 - 115(g_tTex2di1): 114(ptr) Variable UniformConstant - 122: TypeImage 12(int) 2D nonsampled format:R32ui - 123: TypePointer UniformConstant 122 - 124(g_tTex2du1): 123(ptr) Variable UniformConstant - 131: TypeImage 18(float) 3D nonsampled format:R32f - 132: TypePointer UniformConstant 131 - 133(g_tTex3df1): 132(ptr) Variable UniformConstant - 135: 6(int) Constant 2 - 136: TypePointer Uniform 57(ivec3) - 142: TypeImage 6(int) 3D nonsampled format:R32i - 143: TypePointer UniformConstant 142 - 144(g_tTex3di1): 143(ptr) Variable UniformConstant - 151: TypeImage 12(int) 3D nonsampled format:R32ui - 152: TypePointer UniformConstant 151 - 153(g_tTex3du1): 152(ptr) Variable UniformConstant - 160: 6(int) Constant 8 - 161: TypePointer Uniform 18(float) - 180: 12(int) Constant 3 - 194: 18(float) Constant 1073741824 - 209: 18(float) Constant 1077936128 - 223: 18(float) Constant 1082130432 - 263: 6(int) Constant 65535 - 277: 6(int) Constant 61680 - 320: 6(int) Constant 5 - 326: 12(int) Constant 6 - 347: 12(int) Constant 9 - 406: 18(float) Constant 1065353216 - 568: 6(int) Constant 3 - 569: 56(ivec2) ConstantComposite 135 568 - 574: TypePointer Function 40(PS_OUTPUT) - 576: 39(fvec4) ConstantComposite 406 406 406 406 - 577: TypePointer Function 39(fvec4) - 582: TypePointer Output 39(fvec4) -583(@entryPointOutput.Color): 582(ptr) Variable Output - 586: TypeSampler - 587: TypePointer UniformConstant 586 - 588(g_sSamp): 587(ptr) Variable UniformConstant - 589: TypeImage 18(float) 1D array nonsampled format:R32f - 590: TypePointer UniformConstant 589 -591(g_tTex1df1a): 590(ptr) Variable UniformConstant - 592: TypeImage 6(int) 1D array nonsampled format:R32i - 593: TypePointer UniformConstant 592 -594(g_tTex1di1a): 593(ptr) Variable UniformConstant - 595: TypeImage 12(int) 1D array nonsampled format:R32ui - 596: TypePointer UniformConstant 595 -597(g_tTex1du1a): 596(ptr) Variable UniformConstant - 598: TypeImage 18(float) 2D array nonsampled format:R32f - 599: TypePointer UniformConstant 598 -600(g_tTex2df1a): 599(ptr) Variable UniformConstant - 601: TypeImage 6(int) 2D array nonsampled format:R32i - 602: TypePointer UniformConstant 601 -603(g_tTex2di1a): 602(ptr) Variable UniformConstant - 604: TypeImage 12(int) 2D array nonsampled format:R32ui - 605: TypePointer UniformConstant 604 -606(g_tTex2du1a): 605(ptr) Variable UniformConstant - 4(main): 2 Function None 3 - 5: Label - 584:40(PS_OUTPUT) FunctionCall 42(@main() - 585: 39(fvec4) CompositeExtract 584 0 - Store 583(@entryPointOutput.Color) 585 - 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 - 76(r00): 19(ptr) Variable Function - 82(r01): 7(ptr) Variable Function - 91(r02): 13(ptr) Variable Function - 101(r10): 19(ptr) Variable Function - 112(r11): 7(ptr) Variable Function - 121(r12): 13(ptr) Variable Function - 130(r20): 19(ptr) Variable Function - 141(r21): 7(ptr) Variable Function - 150(r22): 13(ptr) Variable Function - 159(lf1): 19(ptr) Variable Function - 164(storeTemp): 19(ptr) Variable Function - 174(storeTemp): 7(ptr) Variable Function - 179(storeTemp): 13(ptr) Variable Function - 185(val1): 19(ptr) Variable Function - 186(coordTemp): 7(ptr) Variable Function - 189(storeTemp): 19(ptr) Variable Function - 201(coordTemp): 7(ptr) Variable Function - 204(storeTemp): 19(ptr) Variable Function - 215(coordTemp): 7(ptr) Variable Function - 218(storeTemp): 19(ptr) Variable Function - 229(coordTemp): 7(ptr) Variable Function - 232(storeTemp): 7(ptr) Variable Function - 242(coordTemp): 7(ptr) Variable Function - 245(storeTemp): 7(ptr) Variable Function - 255(coordTemp): 7(ptr) Variable Function - 258(storeTemp): 7(ptr) Variable Function - 269(coordTemp): 7(ptr) Variable Function - 272(storeTemp): 7(ptr) Variable Function - 283(coordTemp): 7(ptr) Variable Function - 286(storeTemp): 7(ptr) Variable Function - 296(coordTemp): 7(ptr) Variable Function - 299(storeTemp): 7(ptr) Variable Function - 309(storeTemp): 19(ptr) Variable Function - 319(storeTemp): 7(ptr) Variable Function - 325(storeTemp): 13(ptr) Variable Function - 331(storeTemp): 19(ptr) Variable Function - 341(storeTemp): 7(ptr) Variable Function - 346(storeTemp): 13(ptr) Variable Function - 357(param): 19(ptr) Variable Function - 364(param): 7(ptr) Variable Function - 371(param): 13(ptr) Variable Function - 373(tempArg): 19(ptr) Variable Function - 374(param): 19(ptr) Variable Function - 381(tempArg): 7(ptr) Variable Function - 382(param): 7(ptr) Variable Function - 389(tempArg): 13(ptr) Variable Function - 390(param): 13(ptr) Variable Function - 397(coordTemp): 7(ptr) Variable Function - 400(storeTemp): 19(ptr) Variable Function - 411(coordTemp): 7(ptr) Variable Function - 414(storeTemp): 7(ptr) Variable Function - 424(coordTemp): 7(ptr) Variable Function - 427(storeTemp): 13(ptr) Variable Function - 437(coordTemp): 7(ptr) Variable Function - 440(storeTemp): 19(ptr) Variable Function - 450(coordTemp): 7(ptr) Variable Function - 453(storeTemp): 7(ptr) Variable Function - 463(coordTemp): 7(ptr) Variable Function - 466(storeTemp): 13(ptr) Variable Function - 476(coordTemp): 7(ptr) Variable Function -479(storeTempPre): 19(ptr) Variable Function -484(storeTempPost): 19(ptr) Variable Function - 491(coordTemp): 7(ptr) Variable Function -494(storeTempPre): 13(ptr) Variable Function -499(storeTempPost): 13(ptr) Variable Function - 506(coordTemp): 7(ptr) Variable Function -509(storeTempPre): 7(ptr) Variable Function -514(storeTempPost): 7(ptr) Variable Function - 521(coordTemp): 7(ptr) Variable Function -524(storeTempPre): 19(ptr) Variable Function -529(storeTempPost): 19(ptr) Variable Function - 536(coordTemp): 7(ptr) Variable Function -539(storeTempPre): 7(ptr) Variable Function -544(storeTempPost): 7(ptr) Variable Function - 551(coordTemp): 7(ptr) Variable Function -554(storeTempPre): 13(ptr) Variable Function -559(storeTempPost): 13(ptr) Variable Function - 566(storeTemp): 19(ptr) Variable Function - 575(psout): 574(ptr) Variable Function - 71: 68 Load 70(g_tTex1df1) - 72: 62(ptr) AccessChain 61 53 - 73: 6(int) Load 72 - 74: 39(fvec4) ImageRead 71 73 - 75: 18(float) CompositeExtract 74 0 - 77: 68 Load 70(g_tTex1df1) - 78: 62(ptr) AccessChain 61 53 - 79: 6(int) Load 78 - 80: 39(fvec4) ImageRead 77 79 - 81: 18(float) CompositeExtract 80 0 - Store 76(r00) 81 - 86: 83 Load 85(g_tTex1di1) - 87: 62(ptr) AccessChain 61 53 - 88: 6(int) Load 87 - 89: 58(ivec4) ImageRead 86 88 - 90: 6(int) CompositeExtract 89 0 - Store 82(r01) 90 - 95: 92 Load 94(g_tTex1du1) - 96: 62(ptr) AccessChain 61 53 - 97: 6(int) Load 96 - 99: 98(ivec4) ImageRead 95 97 - 100: 12(int) CompositeExtract 99 0 - Store 91(r02) 100 - 105: 102 Load 104(g_tTex2df1) - 108: 107(ptr) AccessChain 61 106 - 109: 56(ivec2) Load 108 - 110: 39(fvec4) ImageRead 105 109 - 111: 18(float) CompositeExtract 110 0 - Store 101(r10) 111 - 116: 113 Load 115(g_tTex2di1) - 117: 107(ptr) AccessChain 61 106 - 118: 56(ivec2) Load 117 - 119: 58(ivec4) ImageRead 116 118 - 120: 6(int) CompositeExtract 119 0 - Store 112(r11) 120 - 125: 122 Load 124(g_tTex2du1) - 126: 107(ptr) AccessChain 61 106 - 127: 56(ivec2) Load 126 - 128: 98(ivec4) ImageRead 125 127 - 129: 12(int) CompositeExtract 128 0 - Store 121(r12) 129 - 134: 131 Load 133(g_tTex3df1) - 137: 136(ptr) AccessChain 61 135 - 138: 57(ivec3) Load 137 - 139: 39(fvec4) ImageRead 134 138 - 140: 18(float) CompositeExtract 139 0 - Store 130(r20) 140 - 145: 142 Load 144(g_tTex3di1) - 146: 136(ptr) AccessChain 61 135 - 147: 57(ivec3) Load 146 - 148: 58(ivec4) ImageRead 145 147 - 149: 6(int) CompositeExtract 148 0 - Store 141(r21) 149 - 154: 151 Load 153(g_tTex3du1) - 155: 136(ptr) AccessChain 61 135 - 156: 57(ivec3) Load 155 - 157: 98(ivec4) ImageRead 154 156 - 158: 12(int) CompositeExtract 157 0 - Store 150(r22) 158 - 162: 161(ptr) AccessChain 61 160 - 163: 18(float) Load 162 - Store 159(lf1) 163 - 165: 18(float) FunctionCall 37(SomeValue() - Store 164(storeTemp) 165 - 166: 68 Load 70(g_tTex1df1) - 167: 62(ptr) AccessChain 61 53 - 168: 6(int) Load 167 - 169: 18(float) Load 164(storeTemp) - ImageWrite 166 168 169 - 170: 68 Load 70(g_tTex1df1) - 171: 62(ptr) AccessChain 61 53 - 172: 6(int) Load 171 - 173: 18(float) Load 159(lf1) - ImageWrite 170 172 173 - Store 174(storeTemp) 135 - 175: 83 Load 85(g_tTex1di1) - 176: 62(ptr) AccessChain 61 53 - 177: 6(int) Load 176 - 178: 6(int) Load 174(storeTemp) - ImageWrite 175 177 178 - Store 179(storeTemp) 180 - 181: 92 Load 94(g_tTex1du1) - 182: 62(ptr) AccessChain 61 53 - 183: 6(int) Load 182 - 184: 12(int) Load 179(storeTemp) - ImageWrite 181 183 184 - 187: 62(ptr) AccessChain 61 53 - 188: 6(int) Load 187 - Store 186(coordTemp) 188 - 190: 68 Load 70(g_tTex1df1) - 191: 6(int) Load 186(coordTemp) - 192: 39(fvec4) ImageRead 190 191 - 193: 18(float) CompositeExtract 192 0 - Store 189(storeTemp) 193 - 195: 18(float) Load 189(storeTemp) - 196: 18(float) FMul 195 194 - Store 189(storeTemp) 196 - 197: 68 Load 70(g_tTex1df1) - 198: 6(int) Load 186(coordTemp) - 199: 18(float) Load 189(storeTemp) - ImageWrite 197 198 199 - 200: 18(float) Load 189(storeTemp) - Store 185(val1) 200 - 202: 62(ptr) AccessChain 61 53 - 203: 6(int) Load 202 - Store 201(coordTemp) 203 - 205: 68 Load 70(g_tTex1df1) - 206: 6(int) Load 201(coordTemp) - 207: 39(fvec4) ImageRead 205 206 - 208: 18(float) CompositeExtract 207 0 - Store 204(storeTemp) 208 - 210: 18(float) Load 204(storeTemp) - 211: 18(float) FSub 210 209 - Store 204(storeTemp) 211 - 212: 68 Load 70(g_tTex1df1) - 213: 6(int) Load 201(coordTemp) - 214: 18(float) Load 204(storeTemp) - ImageWrite 212 213 214 - 216: 62(ptr) AccessChain 61 53 - 217: 6(int) Load 216 - Store 215(coordTemp) 217 - 219: 68 Load 70(g_tTex1df1) - 220: 6(int) Load 215(coordTemp) - 221: 39(fvec4) ImageRead 219 220 - 222: 18(float) CompositeExtract 221 0 - Store 218(storeTemp) 222 - 224: 18(float) Load 218(storeTemp) - 225: 18(float) FAdd 224 223 - Store 218(storeTemp) 225 - 226: 68 Load 70(g_tTex1df1) - 227: 6(int) Load 215(coordTemp) - 228: 18(float) Load 218(storeTemp) - ImageWrite 226 227 228 - 230: 62(ptr) AccessChain 61 53 - 231: 6(int) Load 230 - Store 229(coordTemp) 231 - 233: 83 Load 85(g_tTex1di1) - 234: 6(int) Load 229(coordTemp) - 235: 58(ivec4) ImageRead 233 234 - 236: 6(int) CompositeExtract 235 0 - Store 232(storeTemp) 236 - 237: 6(int) Load 232(storeTemp) - 238: 6(int) SDiv 237 135 - Store 232(storeTemp) 238 - 239: 83 Load 85(g_tTex1di1) - 240: 6(int) Load 229(coordTemp) - 241: 6(int) Load 232(storeTemp) - ImageWrite 239 240 241 - 243: 62(ptr) AccessChain 61 53 - 244: 6(int) Load 243 - Store 242(coordTemp) 244 - 246: 83 Load 85(g_tTex1di1) - 247: 6(int) Load 242(coordTemp) - 248: 58(ivec4) ImageRead 246 247 - 249: 6(int) CompositeExtract 248 0 - Store 245(storeTemp) 249 - 250: 6(int) Load 245(storeTemp) - 251: 6(int) SMod 250 135 - Store 245(storeTemp) 251 - 252: 83 Load 85(g_tTex1di1) - 253: 6(int) Load 242(coordTemp) - 254: 6(int) Load 245(storeTemp) - ImageWrite 252 253 254 - 256: 62(ptr) AccessChain 61 53 - 257: 6(int) Load 256 - Store 255(coordTemp) 257 - 259: 83 Load 85(g_tTex1di1) - 260: 6(int) Load 255(coordTemp) - 261: 58(ivec4) ImageRead 259 260 - 262: 6(int) CompositeExtract 261 0 - Store 258(storeTemp) 262 - 264: 6(int) Load 258(storeTemp) - 265: 6(int) BitwiseAnd 264 263 - Store 258(storeTemp) 265 - 266: 83 Load 85(g_tTex1di1) - 267: 6(int) Load 255(coordTemp) - 268: 6(int) Load 258(storeTemp) - ImageWrite 266 267 268 - 270: 62(ptr) AccessChain 61 53 - 271: 6(int) Load 270 - Store 269(coordTemp) 271 - 273: 83 Load 85(g_tTex1di1) - 274: 6(int) Load 269(coordTemp) - 275: 58(ivec4) ImageRead 273 274 - 276: 6(int) CompositeExtract 275 0 - Store 272(storeTemp) 276 - 278: 6(int) Load 272(storeTemp) - 279: 6(int) BitwiseOr 278 277 - Store 272(storeTemp) 279 - 280: 83 Load 85(g_tTex1di1) - 281: 6(int) Load 269(coordTemp) - 282: 6(int) Load 272(storeTemp) - ImageWrite 280 281 282 - 284: 62(ptr) AccessChain 61 53 - 285: 6(int) Load 284 - Store 283(coordTemp) 285 - 287: 83 Load 85(g_tTex1di1) - 288: 6(int) Load 283(coordTemp) - 289: 58(ivec4) ImageRead 287 288 - 290: 6(int) CompositeExtract 289 0 - Store 286(storeTemp) 290 - 291: 6(int) Load 286(storeTemp) - 292: 6(int) ShiftLeftLogical 291 135 - Store 286(storeTemp) 292 - 293: 83 Load 85(g_tTex1di1) - 294: 6(int) Load 283(coordTemp) - 295: 6(int) Load 286(storeTemp) - ImageWrite 293 294 295 - 297: 62(ptr) AccessChain 61 53 - 298: 6(int) Load 297 - Store 296(coordTemp) 298 - 300: 83 Load 85(g_tTex1di1) - 301: 6(int) Load 296(coordTemp) - 302: 58(ivec4) ImageRead 300 301 - 303: 6(int) CompositeExtract 302 0 - Store 299(storeTemp) 303 - 304: 6(int) Load 299(storeTemp) - 305: 6(int) ShiftRightArithmetic 304 135 - Store 299(storeTemp) 305 - 306: 83 Load 85(g_tTex1di1) - 307: 6(int) Load 296(coordTemp) - 308: 6(int) Load 299(storeTemp) - ImageWrite 306 307 308 - 310: 18(float) FunctionCall 37(SomeValue() - Store 309(storeTemp) 310 - 311: 102 Load 104(g_tTex2df1) - 312: 107(ptr) AccessChain 61 106 - 313: 56(ivec2) Load 312 - 314: 18(float) Load 309(storeTemp) - ImageWrite 311 313 314 - 315: 102 Load 104(g_tTex2df1) - 316: 107(ptr) AccessChain 61 106 - 317: 56(ivec2) Load 316 - 318: 18(float) Load 159(lf1) - ImageWrite 315 317 318 - Store 319(storeTemp) 320 - 321: 113 Load 115(g_tTex2di1) - 322: 107(ptr) AccessChain 61 106 - 323: 56(ivec2) Load 322 - 324: 6(int) Load 319(storeTemp) - ImageWrite 321 323 324 - Store 325(storeTemp) 326 - 327: 122 Load 124(g_tTex2du1) - 328: 107(ptr) AccessChain 61 106 - 329: 56(ivec2) Load 328 - 330: 12(int) Load 325(storeTemp) - ImageWrite 327 329 330 - 332: 18(float) FunctionCall 37(SomeValue() - Store 331(storeTemp) 332 - 333: 131 Load 133(g_tTex3df1) - 334: 136(ptr) AccessChain 61 135 - 335: 57(ivec3) Load 334 - 336: 18(float) Load 331(storeTemp) - ImageWrite 333 335 336 - 337: 131 Load 133(g_tTex3df1) - 338: 136(ptr) AccessChain 61 135 - 339: 57(ivec3) Load 338 - 340: 18(float) Load 159(lf1) - ImageWrite 337 339 340 - Store 341(storeTemp) 160 - 342: 142 Load 144(g_tTex3di1) - 343: 136(ptr) AccessChain 61 135 - 344: 57(ivec3) Load 343 - 345: 6(int) Load 341(storeTemp) - ImageWrite 342 344 345 - Store 346(storeTemp) 347 - 348: 151 Load 153(g_tTex3du1) - 349: 136(ptr) AccessChain 61 135 - 350: 57(ivec3) Load 349 - 351: 12(int) Load 346(storeTemp) - ImageWrite 348 350 351 - 352: 68 Load 70(g_tTex1df1) - 353: 62(ptr) AccessChain 61 53 - 354: 6(int) Load 353 - 355: 39(fvec4) ImageRead 352 354 - 356: 18(float) CompositeExtract 355 0 - Store 357(param) 356 - 358: 18(float) FunctionCall 22(Fn1(f1;) 357(param) - 359: 83 Load 85(g_tTex1di1) - 360: 62(ptr) AccessChain 61 53 - 361: 6(int) Load 360 - 362: 58(ivec4) ImageRead 359 361 - 363: 6(int) CompositeExtract 362 0 - Store 364(param) 363 - 365: 6(int) FunctionCall 10(Fn1(i1;) 364(param) - 366: 92 Load 94(g_tTex1du1) - 367: 62(ptr) AccessChain 61 53 - 368: 6(int) Load 367 - 369: 98(ivec4) ImageRead 366 368 - 370: 12(int) CompositeExtract 369 0 - Store 371(param) 370 - 372: 12(int) FunctionCall 16(Fn1(u1;) 371(param) - 375: 2 FunctionCall 34(Fn2(f1;) 374(param) - 376: 18(float) Load 374(param) - Store 373(tempArg) 376 - 377: 68 Load 70(g_tTex1df1) - 378: 62(ptr) AccessChain 61 53 - 379: 6(int) Load 378 - 380: 18(float) Load 373(tempArg) - ImageWrite 377 379 380 - 383: 2 FunctionCall 26(Fn2(i1;) 382(param) - 384: 6(int) Load 382(param) - Store 381(tempArg) 384 - 385: 83 Load 85(g_tTex1di1) - 386: 62(ptr) AccessChain 61 53 - 387: 6(int) Load 386 - 388: 6(int) Load 381(tempArg) - ImageWrite 385 387 388 - 391: 2 FunctionCall 30(Fn2(u1;) 390(param) - 392: 12(int) Load 390(param) - Store 389(tempArg) 392 - 393: 92 Load 94(g_tTex1du1) - 394: 62(ptr) AccessChain 61 53 - 395: 6(int) Load 394 - 396: 12(int) Load 389(tempArg) - ImageWrite 393 395 396 - 398: 62(ptr) AccessChain 61 53 - 399: 6(int) Load 398 - Store 397(coordTemp) 399 - 401: 68 Load 70(g_tTex1df1) - 402: 6(int) Load 397(coordTemp) - 403: 39(fvec4) ImageRead 401 402 - 404: 18(float) CompositeExtract 403 0 - Store 400(storeTemp) 404 - 405: 18(float) Load 400(storeTemp) - 407: 18(float) FAdd 405 406 - Store 400(storeTemp) 407 - 408: 68 Load 70(g_tTex1df1) - 409: 6(int) Load 397(coordTemp) - 410: 18(float) Load 400(storeTemp) - ImageWrite 408 409 410 - 412: 62(ptr) AccessChain 61 53 - 413: 6(int) Load 412 - Store 411(coordTemp) 413 - 415: 83 Load 85(g_tTex1di1) - 416: 6(int) Load 411(coordTemp) - 417: 58(ivec4) ImageRead 415 416 - 418: 6(int) CompositeExtract 417 0 - Store 414(storeTemp) 418 - 419: 6(int) Load 414(storeTemp) - 420: 6(int) IAdd 419 106 - Store 414(storeTemp) 420 - 421: 83 Load 85(g_tTex1di1) - 422: 6(int) Load 411(coordTemp) - 423: 6(int) Load 414(storeTemp) - ImageWrite 421 422 423 - 425: 62(ptr) AccessChain 61 53 - 426: 6(int) Load 425 - Store 424(coordTemp) 426 - 428: 92 Load 94(g_tTex1du1) - 429: 6(int) Load 424(coordTemp) - 430: 98(ivec4) ImageRead 428 429 - 431: 12(int) CompositeExtract 430 0 - Store 427(storeTemp) 431 - 432: 12(int) Load 427(storeTemp) - 433: 12(int) IAdd 432 106 - Store 427(storeTemp) 433 - 434: 92 Load 94(g_tTex1du1) - 435: 6(int) Load 424(coordTemp) - 436: 12(int) Load 427(storeTemp) - ImageWrite 434 435 436 - 438: 62(ptr) AccessChain 61 53 - 439: 6(int) Load 438 - Store 437(coordTemp) 439 - 441: 68 Load 70(g_tTex1df1) - 442: 6(int) Load 437(coordTemp) - 443: 39(fvec4) ImageRead 441 442 - 444: 18(float) CompositeExtract 443 0 - Store 440(storeTemp) 444 - 445: 18(float) Load 440(storeTemp) - 446: 18(float) FSub 445 406 - Store 440(storeTemp) 446 - 447: 68 Load 70(g_tTex1df1) - 448: 6(int) Load 437(coordTemp) - 449: 18(float) Load 440(storeTemp) - ImageWrite 447 448 449 - 451: 62(ptr) AccessChain 61 53 - 452: 6(int) Load 451 - Store 450(coordTemp) 452 - 454: 83 Load 85(g_tTex1di1) - 455: 6(int) Load 450(coordTemp) - 456: 58(ivec4) ImageRead 454 455 - 457: 6(int) CompositeExtract 456 0 - Store 453(storeTemp) 457 - 458: 6(int) Load 453(storeTemp) - 459: 6(int) ISub 458 106 - Store 453(storeTemp) 459 - 460: 83 Load 85(g_tTex1di1) - 461: 6(int) Load 450(coordTemp) - 462: 6(int) Load 453(storeTemp) - ImageWrite 460 461 462 - 464: 62(ptr) AccessChain 61 53 - 465: 6(int) Load 464 - Store 463(coordTemp) 465 - 467: 92 Load 94(g_tTex1du1) - 468: 6(int) Load 463(coordTemp) - 469: 98(ivec4) ImageRead 467 468 - 470: 12(int) CompositeExtract 469 0 - Store 466(storeTemp) 470 - 471: 12(int) Load 466(storeTemp) - 472: 12(int) ISub 471 106 - Store 466(storeTemp) 472 - 473: 92 Load 94(g_tTex1du1) - 474: 6(int) Load 463(coordTemp) - 475: 12(int) Load 466(storeTemp) - ImageWrite 473 474 475 - 477: 62(ptr) AccessChain 61 53 - 478: 6(int) Load 477 - Store 476(coordTemp) 478 - 480: 68 Load 70(g_tTex1df1) - 481: 6(int) Load 476(coordTemp) - 482: 39(fvec4) ImageRead 480 481 - 483: 18(float) CompositeExtract 482 0 - Store 479(storeTempPre) 483 - 485: 18(float) Load 479(storeTempPre) - Store 484(storeTempPost) 485 - 486: 18(float) Load 484(storeTempPost) - 487: 18(float) FAdd 486 406 - Store 484(storeTempPost) 487 - 488: 68 Load 70(g_tTex1df1) - 489: 6(int) Load 476(coordTemp) - 490: 18(float) Load 484(storeTempPost) - ImageWrite 488 489 490 - 492: 62(ptr) AccessChain 61 53 - 493: 6(int) Load 492 - Store 491(coordTemp) 493 - 495: 92 Load 94(g_tTex1du1) - 496: 6(int) Load 491(coordTemp) - 497: 98(ivec4) ImageRead 495 496 - 498: 12(int) CompositeExtract 497 0 - Store 494(storeTempPre) 498 - 500: 12(int) Load 494(storeTempPre) - Store 499(storeTempPost) 500 - 501: 12(int) Load 499(storeTempPost) - 502: 12(int) ISub 501 106 - Store 499(storeTempPost) 502 - 503: 92 Load 94(g_tTex1du1) - 504: 6(int) Load 491(coordTemp) - 505: 12(int) Load 499(storeTempPost) - ImageWrite 503 504 505 - 507: 62(ptr) AccessChain 61 53 - 508: 6(int) Load 507 - Store 506(coordTemp) 508 - 510: 83 Load 85(g_tTex1di1) - 511: 6(int) Load 506(coordTemp) - 512: 58(ivec4) ImageRead 510 511 - 513: 6(int) CompositeExtract 512 0 - Store 509(storeTempPre) 513 - 515: 6(int) Load 509(storeTempPre) - Store 514(storeTempPost) 515 - 516: 6(int) Load 514(storeTempPost) - 517: 6(int) IAdd 516 106 - Store 514(storeTempPost) 517 - 518: 83 Load 85(g_tTex1di1) - 519: 6(int) Load 506(coordTemp) - 520: 6(int) Load 514(storeTempPost) - ImageWrite 518 519 520 - 522: 62(ptr) AccessChain 61 53 - 523: 6(int) Load 522 - Store 521(coordTemp) 523 - 525: 68 Load 70(g_tTex1df1) - 526: 6(int) Load 521(coordTemp) - 527: 39(fvec4) ImageRead 525 526 - 528: 18(float) CompositeExtract 527 0 - Store 524(storeTempPre) 528 - 530: 18(float) Load 524(storeTempPre) - Store 529(storeTempPost) 530 - 531: 18(float) Load 529(storeTempPost) - 532: 18(float) FSub 531 406 - Store 529(storeTempPost) 532 - 533: 68 Load 70(g_tTex1df1) - 534: 6(int) Load 521(coordTemp) - 535: 18(float) Load 529(storeTempPost) - ImageWrite 533 534 535 - 537: 62(ptr) AccessChain 61 53 - 538: 6(int) Load 537 - Store 536(coordTemp) 538 - 540: 83 Load 85(g_tTex1di1) - 541: 6(int) Load 536(coordTemp) - 542: 58(ivec4) ImageRead 540 541 - 543: 6(int) CompositeExtract 542 0 - Store 539(storeTempPre) 543 - 545: 6(int) Load 539(storeTempPre) - Store 544(storeTempPost) 545 - 546: 6(int) Load 544(storeTempPost) - 547: 6(int) IAdd 546 106 - Store 544(storeTempPost) 547 - 548: 83 Load 85(g_tTex1di1) - 549: 6(int) Load 536(coordTemp) - 550: 6(int) Load 544(storeTempPost) - ImageWrite 548 549 550 - 552: 62(ptr) AccessChain 61 53 - 553: 6(int) Load 552 - Store 551(coordTemp) 553 - 555: 92 Load 94(g_tTex1du1) - 556: 6(int) Load 551(coordTemp) - 557: 98(ivec4) ImageRead 555 556 - 558: 12(int) CompositeExtract 557 0 - Store 554(storeTempPre) 558 - 560: 12(int) Load 554(storeTempPre) - Store 559(storeTempPost) 560 - 561: 12(int) Load 559(storeTempPost) - 562: 12(int) ISub 561 106 - Store 559(storeTempPost) 562 - 563: 92 Load 94(g_tTex1du1) - 564: 6(int) Load 551(coordTemp) - 565: 12(int) Load 559(storeTempPost) - ImageWrite 563 564 565 - 567: 102 Load 104(g_tTex2df1) - 570: 39(fvec4) ImageRead 567 569 - 571: 18(float) CompositeExtract 570 0 - Store 566(storeTemp) 571 - 572: 68 Load 70(g_tTex1df1) - 573: 18(float) Load 566(storeTemp) - ImageWrite 572 106 573 - 578: 577(ptr) AccessChain 575(psout) 53 - Store 578 576 - 579:40(PS_OUTPUT) Load 575(psout) - ReturnValue 579 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.rw.swizzle.frag.out b/deps/glslang/Test/baseResults/hlsl.rw.swizzle.frag.out deleted file mode 100644 index 97dd0dc4..00000000 --- a/deps/glslang/Test/baseResults/hlsl.rw.swizzle.frag.out +++ /dev/null @@ -1,302 +0,0 @@ -hlsl.rw.swizzle.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:4 Function Definition: SomeValue( ( temp 3-component vector of float) -0:4 Function Parameters: -0:? Sequence -0:4 Branch: Return with expression -0:4 Constant: -0:4 1.000000 -0:4 2.000000 -0:4 3.000000 -0:7 Function Definition: @main( ( temp 4-component vector of float) -0:7 Function Parameters: -0:? Sequence -0:8 Sequence -0:8 move second child to first child ( temp 2-component vector of int) -0:8 'tc2' ( temp 2-component vector of int) -0:8 Constant: -0:8 0 (const int) -0:8 0 (const int) -0:9 Sequence -0:9 move second child to first child ( temp int) -0:9 'tc' ( temp int) -0:9 Constant: -0:9 0 (const int) -0:12 Sequence -0:12 move second child to first child ( temp 3-component vector of float) -0:12 vector swizzle ( temp 3-component vector of float) -0:12 'storeTemp' ( temp 3-component vector of float) -0:12 Sequence -0:12 Constant: -0:12 2 (const int) -0:12 Constant: -0:12 1 (const int) -0:12 Constant: -0:12 0 (const int) -0:12 Constant: -0:12 1.000000 -0:12 2.000000 -0:12 3.000000 -0:12 imageStore ( temp void) -0:12 'rwtx' (layout( rgba32f) uniform image2D) -0:12 'tc2' ( temp 2-component vector of int) -0:12 'storeTemp' ( temp 3-component vector of float) -0:12 'storeTemp' ( temp 3-component vector of float) -0:13 Sequence -0:13 move second child to first child ( temp 3-component vector of float) -0:13 vector swizzle ( temp 3-component vector of float) -0:13 'storeTemp' ( temp 3-component vector of float) -0:13 Sequence -0:13 Constant: -0:13 2 (const int) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 0 (const int) -0:13 Function Call: SomeValue( ( temp 3-component vector of float) -0:13 imageStore ( temp void) -0:13 'rwtx' (layout( rgba32f) uniform image2D) -0:13 'tc2' ( temp 2-component vector of int) -0:13 'storeTemp' ( temp 3-component vector of float) -0:13 'storeTemp' ( temp 3-component vector of float) -0:14 Sequence -0:14 move second child to first child ( temp 3-component vector of float) -0:14 vector swizzle ( temp 3-component vector of float) -0:14 'storeTemp' ( temp 3-component vector of float) -0:14 Sequence -0:14 Constant: -0:14 2 (const int) -0:14 Constant: -0:14 1 (const int) -0:14 Constant: -0:14 0 (const int) -0:14 Constant: -0:14 2.000000 -0:14 2.000000 -0:14 2.000000 -0:14 imageStore ( temp void) -0:14 'rwtx' (layout( rgba32f) uniform image2D) -0:14 'tc2' ( temp 2-component vector of int) -0:14 'storeTemp' ( temp 3-component vector of float) -0:14 'storeTemp' ( temp 3-component vector of float) -0:27 Branch: Return with expression -0:27 Constant: -0:27 0.000000 -0:27 0.000000 -0:27 0.000000 -0:27 0.000000 -0:7 Function Definition: main( ( temp void) -0:7 Function Parameters: -0:? Sequence -0:7 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:7 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'rwtx' (layout( rgba32f) uniform image2D) -0:? 'buf' (layout( rgba32f) uniform imageBuffer) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:4 Function Definition: SomeValue( ( temp 3-component vector of float) -0:4 Function Parameters: -0:? Sequence -0:4 Branch: Return with expression -0:4 Constant: -0:4 1.000000 -0:4 2.000000 -0:4 3.000000 -0:7 Function Definition: @main( ( temp 4-component vector of float) -0:7 Function Parameters: -0:? Sequence -0:8 Sequence -0:8 move second child to first child ( temp 2-component vector of int) -0:8 'tc2' ( temp 2-component vector of int) -0:8 Constant: -0:8 0 (const int) -0:8 0 (const int) -0:9 Sequence -0:9 move second child to first child ( temp int) -0:9 'tc' ( temp int) -0:9 Constant: -0:9 0 (const int) -0:12 Sequence -0:12 move second child to first child ( temp 3-component vector of float) -0:12 vector swizzle ( temp 3-component vector of float) -0:12 'storeTemp' ( temp 3-component vector of float) -0:12 Sequence -0:12 Constant: -0:12 2 (const int) -0:12 Constant: -0:12 1 (const int) -0:12 Constant: -0:12 0 (const int) -0:12 Constant: -0:12 1.000000 -0:12 2.000000 -0:12 3.000000 -0:12 imageStore ( temp void) -0:12 'rwtx' (layout( rgba32f) uniform image2D) -0:12 'tc2' ( temp 2-component vector of int) -0:12 'storeTemp' ( temp 3-component vector of float) -0:12 'storeTemp' ( temp 3-component vector of float) -0:13 Sequence -0:13 move second child to first child ( temp 3-component vector of float) -0:13 vector swizzle ( temp 3-component vector of float) -0:13 'storeTemp' ( temp 3-component vector of float) -0:13 Sequence -0:13 Constant: -0:13 2 (const int) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 0 (const int) -0:13 Function Call: SomeValue( ( temp 3-component vector of float) -0:13 imageStore ( temp void) -0:13 'rwtx' (layout( rgba32f) uniform image2D) -0:13 'tc2' ( temp 2-component vector of int) -0:13 'storeTemp' ( temp 3-component vector of float) -0:13 'storeTemp' ( temp 3-component vector of float) -0:14 Sequence -0:14 move second child to first child ( temp 3-component vector of float) -0:14 vector swizzle ( temp 3-component vector of float) -0:14 'storeTemp' ( temp 3-component vector of float) -0:14 Sequence -0:14 Constant: -0:14 2 (const int) -0:14 Constant: -0:14 1 (const int) -0:14 Constant: -0:14 0 (const int) -0:14 Constant: -0:14 2.000000 -0:14 2.000000 -0:14 2.000000 -0:14 imageStore ( temp void) -0:14 'rwtx' (layout( rgba32f) uniform image2D) -0:14 'tc2' ( temp 2-component vector of int) -0:14 'storeTemp' ( temp 3-component vector of float) -0:14 'storeTemp' ( temp 3-component vector of float) -0:27 Branch: Return with expression -0:27 Constant: -0:27 0.000000 -0:27 0.000000 -0:27 0.000000 -0:27 0.000000 -0:7 Function Definition: main( ( temp void) -0:7 Function Parameters: -0:? Sequence -0:7 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:7 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'rwtx' (layout( rgba32f) uniform image2D) -0:? 'buf' (layout( rgba32f) uniform imageBuffer) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 63 - - Capability Shader - Capability ImageBuffer - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 58 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 9 "SomeValue(" - Name 13 "@main(" - Name 24 "tc2" - Name 28 "tc" - Name 30 "storeTemp" - Name 35 "rwtx" - Name 39 "storeTemp" - Name 46 "storeTemp" - Name 58 "@entryPointOutput" - Name 62 "buf" - Decorate 35(rwtx) DescriptorSet 0 - Decorate 35(rwtx) Binding 0 - Decorate 58(@entryPointOutput) Location 0 - Decorate 62(buf) DescriptorSet 0 - Decorate 62(buf) Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 3 - 8: TypeFunction 7(fvec3) - 11: TypeVector 6(float) 4 - 12: TypeFunction 11(fvec4) - 15: 6(float) Constant 1065353216 - 16: 6(float) Constant 1073741824 - 17: 6(float) Constant 1077936128 - 18: 7(fvec3) ConstantComposite 15 16 17 - 21: TypeInt 32 1 - 22: TypeVector 21(int) 2 - 23: TypePointer Function 22(ivec2) - 25: 21(int) Constant 0 - 26: 22(ivec2) ConstantComposite 25 25 - 27: TypePointer Function 21(int) - 29: TypePointer Function 7(fvec3) - 33: TypeImage 6(float) 2D nonsampled format:Rgba32f - 34: TypePointer UniformConstant 33 - 35(rwtx): 34(ptr) Variable UniformConstant - 47: 7(fvec3) ConstantComposite 16 16 16 - 53: 6(float) Constant 0 - 54: 11(fvec4) ConstantComposite 53 53 53 53 - 57: TypePointer Output 11(fvec4) -58(@entryPointOutput): 57(ptr) Variable Output - 60: TypeImage 6(float) Buffer nonsampled format:Rgba32f - 61: TypePointer UniformConstant 60 - 62(buf): 61(ptr) Variable UniformConstant - 4(main): 2 Function None 3 - 5: Label - 59: 11(fvec4) FunctionCall 13(@main() - Store 58(@entryPointOutput) 59 - Return - FunctionEnd - 9(SomeValue(): 7(fvec3) Function None 8 - 10: Label - ReturnValue 18 - FunctionEnd - 13(@main(): 11(fvec4) Function None 12 - 14: Label - 24(tc2): 23(ptr) Variable Function - 28(tc): 27(ptr) Variable Function - 30(storeTemp): 29(ptr) Variable Function - 39(storeTemp): 29(ptr) Variable Function - 46(storeTemp): 29(ptr) Variable Function - Store 24(tc2) 26 - Store 28(tc) 25 - 31: 7(fvec3) Load 30(storeTemp) - 32: 7(fvec3) VectorShuffle 31 18 5 4 3 - Store 30(storeTemp) 32 - 36: 33 Load 35(rwtx) - 37: 22(ivec2) Load 24(tc2) - 38: 7(fvec3) Load 30(storeTemp) - ImageWrite 36 37 38 - 40: 7(fvec3) FunctionCall 9(SomeValue() - 41: 7(fvec3) Load 39(storeTemp) - 42: 7(fvec3) VectorShuffle 41 40 5 4 3 - Store 39(storeTemp) 42 - 43: 33 Load 35(rwtx) - 44: 22(ivec2) Load 24(tc2) - 45: 7(fvec3) Load 39(storeTemp) - ImageWrite 43 44 45 - 48: 7(fvec3) Load 46(storeTemp) - 49: 7(fvec3) VectorShuffle 48 47 5 4 3 - Store 46(storeTemp) 49 - 50: 33 Load 35(rwtx) - 51: 22(ivec2) Load 24(tc2) - 52: 7(fvec3) Load 46(storeTemp) - ImageWrite 50 51 52 - ReturnValue 54 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.rw.vec2.bracket.frag.out b/deps/glslang/Test/baseResults/hlsl.rw.vec2.bracket.frag.out deleted file mode 100644 index 1f77a778..00000000 --- a/deps/glslang/Test/baseResults/hlsl.rw.vec2.bracket.frag.out +++ /dev/null @@ -1,2749 +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:46 Constant: -0:46 0 (const int) -0:46 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:47 Constant: -0:47 0 (const uint) -0:47 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:48 Constant: -0:48 0.000000 -0:48 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:79 Constant: -0:79 2 (const int) -0:79 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:80 Constant: -0:80 3 (const uint) -0:80 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:97 Constant: -0:97 5 (const int) -0:97 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:98 Constant: -0:98 6 (const uint) -0:98 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:103 Constant: -0:103 8 (const int) -0:103 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:104 Constant: -0:104 9 (const uint) -0:104 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:135 imageLoad ( temp 2-component vector of float) -0:135 'g_tTex2df2' (layout( rg32f) uniform image2D) -0:135 Constant: -0:135 2 (const int) -0:135 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:46 Constant: -0:46 0 (const int) -0:46 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:47 Constant: -0:47 0 (const uint) -0:47 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:48 Constant: -0:48 0.000000 -0:48 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:79 Constant: -0:79 2 (const int) -0:79 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:80 Constant: -0:80 3 (const uint) -0:80 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:97 Constant: -0:97 5 (const int) -0:97 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:98 Constant: -0:98 6 (const uint) -0:98 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:103 Constant: -0:103 8 (const int) -0:103 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:104 Constant: -0:104 9 (const uint) -0:104 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:135 imageLoad ( temp 2-component vector of float) -0:135 'g_tTex2df2' (layout( rg32f) uniform image2D) -0:135 Constant: -0:135 2 (const int) -0:135 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): 8000a -// Id's are bound by 711 - - Capability Shader - Capability Image1D - Capability StorageImageExtendedFormats - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 687 - 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 85 "r00" - Name 93 "r01" - Name 96 "g_tTex1di2" - Name 104 "r02" - Name 107 "g_tTex1du2" - Name 116 "r10" - Name 119 "g_tTex2df2" - Name 127 "r11" - Name 130 "g_tTex2di2" - Name 138 "r12" - Name 141 "g_tTex2du2" - Name 149 "r20" - Name 152 "g_tTex3df2" - Name 162 "r21" - Name 165 "g_tTex3di2" - Name 173 "r22" - Name 176 "g_tTex3du2" - Name 184 "lf2" - Name 189 "storeTemp" - Name 199 "storeTemp" - Name 205 "storeTemp" - Name 213 "val1" - Name 215 "coordTemp" - Name 218 "storeTemp" - Name 232 "coordTemp" - Name 235 "storeTemp" - Name 249 "coordTemp" - Name 252 "storeTemp" - Name 266 "coordTemp" - Name 269 "storeTemp" - Name 282 "coordTemp" - Name 285 "storeTemp" - Name 298 "coordTemp" - Name 301 "storeTemp" - Name 315 "coordTemp" - Name 318 "storeTemp" - Name 332 "coordTemp" - Name 335 "storeTemp" - Name 348 "coordTemp" - Name 351 "storeTemp" - Name 364 "storeTemp" - Name 374 "storeTemp" - Name 381 "storeTemp" - Name 388 "storeTemp" - Name 398 "storeTemp" - Name 405 "storeTemp" - Name 419 "param" - Name 428 "param" - Name 437 "param" - Name 439 "tempArg" - Name 440 "param" - Name 447 "tempArg" - Name 448 "param" - Name 455 "tempArg" - Name 456 "param" - Name 463 "coordTemp" - Name 466 "storeTemp" - Name 480 "coordTemp" - Name 483 "storeTemp" - Name 496 "coordTemp" - Name 499 "storeTemp" - Name 512 "coordTemp" - Name 515 "storeTemp" - Name 528 "coordTemp" - Name 531 "storeTemp" - Name 544 "coordTemp" - Name 547 "storeTemp" - Name 560 "coordTemp" - Name 563 "storeTempPre" - Name 570 "storeTempPost" - Name 578 "coordTemp" - Name 581 "storeTempPre" - Name 588 "storeTempPost" - Name 596 "coordTemp" - Name 599 "storeTempPre" - Name 606 "storeTempPost" - Name 614 "coordTemp" - Name 617 "storeTempPre" - Name 624 "storeTempPost" - Name 632 "coordTemp" - Name 635 "storeTempPre" - Name 642 "storeTempPost" - Name 650 "coordTemp" - Name 653 "storeTempPre" - Name 660 "storeTempPost" - Name 668 "storeTemp" - Name 679 "psout" - Name 687 "@entryPointOutput.Color" - Name 692 "g_sSamp" - Name 695 "g_tTex1df2a" - Name 698 "g_tTex1di2a" - Name 701 "g_tTex1du2a" - Name 704 "g_tTex2df2a" - Name 707 "g_tTex2di2a" - Name 710 "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 66 Binding 10 - Decorate 76(g_tTex1df2) DescriptorSet 0 - Decorate 76(g_tTex1df2) Binding 1 - Decorate 96(g_tTex1di2) DescriptorSet 0 - Decorate 96(g_tTex1di2) Binding 2 - Decorate 107(g_tTex1du2) DescriptorSet 0 - Decorate 107(g_tTex1du2) Binding 3 - Decorate 119(g_tTex2df2) DescriptorSet 0 - Decorate 119(g_tTex2df2) Binding 4 - Decorate 130(g_tTex2di2) DescriptorSet 0 - Decorate 130(g_tTex2di2) Binding 5 - Decorate 141(g_tTex2du2) DescriptorSet 0 - Decorate 141(g_tTex2du2) Binding 6 - Decorate 152(g_tTex3df2) DescriptorSet 0 - Decorate 152(g_tTex3df2) Binding 7 - Decorate 165(g_tTex3di2) DescriptorSet 0 - Decorate 165(g_tTex3di2) Binding 8 - Decorate 176(g_tTex3du2) DescriptorSet 0 - Decorate 176(g_tTex3du2) Binding 9 - Decorate 687(@entryPointOutput.Color) Location 0 - Decorate 692(g_sSamp) DescriptorSet 0 - Decorate 692(g_sSamp) Binding 0 - Decorate 695(g_tTex1df2a) DescriptorSet 0 - Decorate 695(g_tTex1df2a) Binding 0 - Decorate 698(g_tTex1di2a) DescriptorSet 0 - Decorate 698(g_tTex1di2a) Binding 0 - Decorate 701(g_tTex1du2a) DescriptorSet 0 - Decorate 701(g_tTex1du2a) Binding 0 - Decorate 704(g_tTex2df2a) DescriptorSet 0 - Decorate 704(g_tTex2df2a) Binding 0 - Decorate 707(g_tTex2di2a) DescriptorSet 0 - Decorate 707(g_tTex2di2a) Binding 0 - Decorate 710(g_tTex2du2a) DescriptorSet 0 - Decorate 710(g_tTex2du2a) Binding 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) - 94: TypeImage 6(int) 1D nonsampled format:Rg32i - 95: TypePointer UniformConstant 94 - 96(g_tTex1di2): 95(ptr) Variable UniformConstant - 105: TypeImage 13(int) 1D nonsampled format:Rg32ui - 106: TypePointer UniformConstant 105 - 107(g_tTex1du2): 106(ptr) Variable UniformConstant - 111: TypeVector 13(int) 4 - 117: TypeImage 20(float) 2D nonsampled format:Rg32f - 118: TypePointer UniformConstant 117 - 119(g_tTex2df2): 118(ptr) Variable UniformConstant - 128: TypeImage 6(int) 2D nonsampled format:Rg32i - 129: TypePointer UniformConstant 128 - 130(g_tTex2di2): 129(ptr) Variable UniformConstant - 139: TypeImage 13(int) 2D nonsampled format:Rg32ui - 140: TypePointer UniformConstant 139 - 141(g_tTex2du2): 140(ptr) Variable UniformConstant - 150: TypeImage 20(float) 3D nonsampled format:Rg32f - 151: TypePointer UniformConstant 150 - 152(g_tTex3df2): 151(ptr) Variable UniformConstant - 154: 6(int) Constant 2 - 155: TypePointer Uniform 62(ivec3) - 163: TypeImage 6(int) 3D nonsampled format:Rg32i - 164: TypePointer UniformConstant 163 - 165(g_tTex3di2): 164(ptr) Variable UniformConstant - 174: TypeImage 13(int) 3D nonsampled format:Rg32ui - 175: TypePointer UniformConstant 174 - 176(g_tTex3du2): 175(ptr) Variable UniformConstant - 185: 6(int) Constant 8 - 186: TypePointer Uniform 21(fvec2) - 200: 7(ivec2) ConstantComposite 154 154 - 206: 13(int) Constant 3 - 207: 13(int) Constant 2 - 208: 14(ivec2) ConstantComposite 206 207 - 214: TypePointer Function 6(int) - 225: 20(float) Constant 1073741824 - 242: 20(float) Constant 1077936128 - 259: 20(float) Constant 1082130432 - 308: 6(int) Constant 65535 - 325: 6(int) Constant 61680 - 375: 6(int) Constant 5 - 376: 7(ivec2) ConstantComposite 375 154 - 382: 13(int) Constant 6 - 383: 14(ivec2) ConstantComposite 382 207 - 399: 6(int) Constant 6 - 400: 7(ivec2) ConstantComposite 185 399 - 406: 13(int) Constant 9 - 407: 14(ivec2) ConstantComposite 406 207 - 474: 20(float) Constant 1065353216 - 670: 6(int) Constant 3 - 671: 7(ivec2) ConstantComposite 154 670 - 678: TypePointer Function 43(PS_OUTPUT) - 680: 42(fvec4) ConstantComposite 474 474 474 474 - 681: TypePointer Function 42(fvec4) - 686: TypePointer Output 42(fvec4) -687(@entryPointOutput.Color): 686(ptr) Variable Output - 690: TypeSampler - 691: TypePointer UniformConstant 690 - 692(g_sSamp): 691(ptr) Variable UniformConstant - 693: TypeImage 20(float) 1D array nonsampled format:Rg32f - 694: TypePointer UniformConstant 693 -695(g_tTex1df2a): 694(ptr) Variable UniformConstant - 696: TypeImage 6(int) 1D array nonsampled format:Rg32i - 697: TypePointer UniformConstant 696 -698(g_tTex1di2a): 697(ptr) Variable UniformConstant - 699: TypeImage 13(int) 1D array nonsampled format:Rg32ui - 700: TypePointer UniformConstant 699 -701(g_tTex1du2a): 700(ptr) Variable UniformConstant - 702: TypeImage 20(float) 2D array nonsampled format:Rg32f - 703: TypePointer UniformConstant 702 -704(g_tTex2df2a): 703(ptr) Variable UniformConstant - 705: TypeImage 6(int) 2D array nonsampled format:Rg32i - 706: TypePointer UniformConstant 705 -707(g_tTex2di2a): 706(ptr) Variable UniformConstant - 708: TypeImage 13(int) 2D array nonsampled format:Rg32ui - 709: TypePointer UniformConstant 708 -710(g_tTex2du2a): 709(ptr) Variable UniformConstant - 4(main): 2 Function None 3 - 5: Label - 688:43(PS_OUTPUT) FunctionCall 45(@main() - 689: 42(fvec4) CompositeExtract 688 0 - Store 687(@entryPointOutput.Color) 689 - 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 - 85(r00): 22(ptr) Variable Function - 93(r01): 8(ptr) Variable Function - 104(r02): 15(ptr) Variable Function - 116(r10): 22(ptr) Variable Function - 127(r11): 8(ptr) Variable Function - 138(r12): 15(ptr) Variable Function - 149(r20): 22(ptr) Variable Function - 162(r21): 8(ptr) Variable Function - 173(r22): 15(ptr) Variable Function - 184(lf2): 22(ptr) Variable Function - 189(storeTemp): 22(ptr) Variable Function - 199(storeTemp): 8(ptr) Variable Function - 205(storeTemp): 15(ptr) Variable Function - 213(val1): 22(ptr) Variable Function - 215(coordTemp): 214(ptr) Variable Function - 218(storeTemp): 22(ptr) Variable Function - 232(coordTemp): 214(ptr) Variable Function - 235(storeTemp): 22(ptr) Variable Function - 249(coordTemp): 214(ptr) Variable Function - 252(storeTemp): 22(ptr) Variable Function - 266(coordTemp): 214(ptr) Variable Function - 269(storeTemp): 8(ptr) Variable Function - 282(coordTemp): 214(ptr) Variable Function - 285(storeTemp): 8(ptr) Variable Function - 298(coordTemp): 214(ptr) Variable Function - 301(storeTemp): 8(ptr) Variable Function - 315(coordTemp): 214(ptr) Variable Function - 318(storeTemp): 8(ptr) Variable Function - 332(coordTemp): 214(ptr) Variable Function - 335(storeTemp): 8(ptr) Variable Function - 348(coordTemp): 214(ptr) Variable Function - 351(storeTemp): 8(ptr) Variable Function - 364(storeTemp): 22(ptr) Variable Function - 374(storeTemp): 8(ptr) Variable Function - 381(storeTemp): 15(ptr) Variable Function - 388(storeTemp): 22(ptr) Variable Function - 398(storeTemp): 8(ptr) Variable Function - 405(storeTemp): 15(ptr) Variable Function - 419(param): 22(ptr) Variable Function - 428(param): 8(ptr) Variable Function - 437(param): 15(ptr) Variable Function - 439(tempArg): 22(ptr) Variable Function - 440(param): 22(ptr) Variable Function - 447(tempArg): 8(ptr) Variable Function - 448(param): 8(ptr) Variable Function - 455(tempArg): 15(ptr) Variable Function - 456(param): 15(ptr) Variable Function - 463(coordTemp): 214(ptr) Variable Function - 466(storeTemp): 22(ptr) Variable Function - 480(coordTemp): 214(ptr) Variable Function - 483(storeTemp): 8(ptr) Variable Function - 496(coordTemp): 214(ptr) Variable Function - 499(storeTemp): 15(ptr) Variable Function - 512(coordTemp): 214(ptr) Variable Function - 515(storeTemp): 22(ptr) Variable Function - 528(coordTemp): 214(ptr) Variable Function - 531(storeTemp): 8(ptr) Variable Function - 544(coordTemp): 214(ptr) Variable Function - 547(storeTemp): 15(ptr) Variable Function - 560(coordTemp): 214(ptr) Variable Function -563(storeTempPre): 22(ptr) Variable Function -570(storeTempPost): 22(ptr) Variable Function - 578(coordTemp): 214(ptr) Variable Function -581(storeTempPre): 15(ptr) Variable Function -588(storeTempPost): 15(ptr) Variable Function - 596(coordTemp): 214(ptr) Variable Function -599(storeTempPre): 8(ptr) Variable Function -606(storeTempPost): 8(ptr) Variable Function - 614(coordTemp): 214(ptr) Variable Function -617(storeTempPre): 22(ptr) Variable Function -624(storeTempPost): 22(ptr) Variable Function - 632(coordTemp): 214(ptr) Variable Function -635(storeTempPre): 8(ptr) Variable Function -642(storeTempPost): 8(ptr) Variable Function - 650(coordTemp): 214(ptr) Variable Function -653(storeTempPre): 15(ptr) Variable Function -660(storeTempPost): 15(ptr) Variable Function - 668(storeTemp): 22(ptr) Variable Function - 679(psout): 678(ptr) Variable Function - 77: 74 Load 76(g_tTex1df2) - 79: 78(ptr) AccessChain 66 56 - 80: 6(int) Load 79 - 81: 42(fvec4) ImageRead 77 80 - 82: 20(float) CompositeExtract 81 0 - 83: 20(float) CompositeExtract 81 1 - 84: 21(fvec2) CompositeConstruct 82 83 - 86: 74 Load 76(g_tTex1df2) - 87: 78(ptr) AccessChain 66 56 - 88: 6(int) Load 87 - 89: 42(fvec4) ImageRead 86 88 - 90: 20(float) CompositeExtract 89 0 - 91: 20(float) CompositeExtract 89 1 - 92: 21(fvec2) CompositeConstruct 90 91 - Store 85(r00) 92 - 97: 94 Load 96(g_tTex1di2) - 98: 78(ptr) AccessChain 66 56 - 99: 6(int) Load 98 - 100: 63(ivec4) ImageRead 97 99 - 101: 6(int) CompositeExtract 100 0 - 102: 6(int) CompositeExtract 100 1 - 103: 7(ivec2) CompositeConstruct 101 102 - Store 93(r01) 103 - 108: 105 Load 107(g_tTex1du2) - 109: 78(ptr) AccessChain 66 56 - 110: 6(int) Load 109 - 112: 111(ivec4) ImageRead 108 110 - 113: 13(int) CompositeExtract 112 0 - 114: 13(int) CompositeExtract 112 1 - 115: 14(ivec2) CompositeConstruct 113 114 - Store 104(r02) 115 - 120: 117 Load 119(g_tTex2df2) - 121: 68(ptr) AccessChain 66 67 - 122: 7(ivec2) Load 121 - 123: 42(fvec4) ImageRead 120 122 - 124: 20(float) CompositeExtract 123 0 - 125: 20(float) CompositeExtract 123 1 - 126: 21(fvec2) CompositeConstruct 124 125 - Store 116(r10) 126 - 131: 128 Load 130(g_tTex2di2) - 132: 68(ptr) AccessChain 66 67 - 133: 7(ivec2) Load 132 - 134: 63(ivec4) ImageRead 131 133 - 135: 6(int) CompositeExtract 134 0 - 136: 6(int) CompositeExtract 134 1 - 137: 7(ivec2) CompositeConstruct 135 136 - Store 127(r11) 137 - 142: 139 Load 141(g_tTex2du2) - 143: 68(ptr) AccessChain 66 67 - 144: 7(ivec2) Load 143 - 145: 111(ivec4) ImageRead 142 144 - 146: 13(int) CompositeExtract 145 0 - 147: 13(int) CompositeExtract 145 1 - 148: 14(ivec2) CompositeConstruct 146 147 - Store 138(r12) 148 - 153: 150 Load 152(g_tTex3df2) - 156: 155(ptr) AccessChain 66 154 - 157: 62(ivec3) Load 156 - 158: 42(fvec4) ImageRead 153 157 - 159: 20(float) CompositeExtract 158 0 - 160: 20(float) CompositeExtract 158 1 - 161: 21(fvec2) CompositeConstruct 159 160 - Store 149(r20) 161 - 166: 163 Load 165(g_tTex3di2) - 167: 155(ptr) AccessChain 66 154 - 168: 62(ivec3) Load 167 - 169: 63(ivec4) ImageRead 166 168 - 170: 6(int) CompositeExtract 169 0 - 171: 6(int) CompositeExtract 169 1 - 172: 7(ivec2) CompositeConstruct 170 171 - Store 162(r21) 172 - 177: 174 Load 176(g_tTex3du2) - 178: 155(ptr) AccessChain 66 154 - 179: 62(ivec3) Load 178 - 180: 111(ivec4) ImageRead 177 179 - 181: 13(int) CompositeExtract 180 0 - 182: 13(int) CompositeExtract 180 1 - 183: 14(ivec2) CompositeConstruct 181 182 - Store 173(r22) 183 - 187: 186(ptr) AccessChain 66 185 - 188: 21(fvec2) Load 187 - Store 184(lf2) 188 - 190: 21(fvec2) FunctionCall 40(SomeValue() - Store 189(storeTemp) 190 - 191: 74 Load 76(g_tTex1df2) - 192: 78(ptr) AccessChain 66 56 - 193: 6(int) Load 192 - 194: 21(fvec2) Load 189(storeTemp) - ImageWrite 191 193 194 - 195: 74 Load 76(g_tTex1df2) - 196: 78(ptr) AccessChain 66 56 - 197: 6(int) Load 196 - 198: 21(fvec2) Load 184(lf2) - ImageWrite 195 197 198 - Store 199(storeTemp) 200 - 201: 94 Load 96(g_tTex1di2) - 202: 78(ptr) AccessChain 66 56 - 203: 6(int) Load 202 - 204: 7(ivec2) Load 199(storeTemp) - ImageWrite 201 203 204 - Store 205(storeTemp) 208 - 209: 105 Load 107(g_tTex1du2) - 210: 78(ptr) AccessChain 66 56 - 211: 6(int) Load 210 - 212: 14(ivec2) Load 205(storeTemp) - ImageWrite 209 211 212 - 216: 78(ptr) AccessChain 66 56 - 217: 6(int) Load 216 - Store 215(coordTemp) 217 - 219: 74 Load 76(g_tTex1df2) - 220: 6(int) Load 215(coordTemp) - 221: 42(fvec4) ImageRead 219 220 - 222: 20(float) CompositeExtract 221 0 - 223: 20(float) CompositeExtract 221 1 - 224: 21(fvec2) CompositeConstruct 222 223 - Store 218(storeTemp) 224 - 226: 21(fvec2) Load 218(storeTemp) - 227: 21(fvec2) VectorTimesScalar 226 225 - Store 218(storeTemp) 227 - 228: 74 Load 76(g_tTex1df2) - 229: 6(int) Load 215(coordTemp) - 230: 21(fvec2) Load 218(storeTemp) - ImageWrite 228 229 230 - 231: 21(fvec2) Load 218(storeTemp) - Store 213(val1) 231 - 233: 78(ptr) AccessChain 66 56 - 234: 6(int) Load 233 - Store 232(coordTemp) 234 - 236: 74 Load 76(g_tTex1df2) - 237: 6(int) Load 232(coordTemp) - 238: 42(fvec4) ImageRead 236 237 - 239: 20(float) CompositeExtract 238 0 - 240: 20(float) CompositeExtract 238 1 - 241: 21(fvec2) CompositeConstruct 239 240 - Store 235(storeTemp) 241 - 243: 21(fvec2) Load 235(storeTemp) - 244: 21(fvec2) CompositeConstruct 242 242 - 245: 21(fvec2) FSub 243 244 - Store 235(storeTemp) 245 - 246: 74 Load 76(g_tTex1df2) - 247: 6(int) Load 232(coordTemp) - 248: 21(fvec2) Load 235(storeTemp) - ImageWrite 246 247 248 - 250: 78(ptr) AccessChain 66 56 - 251: 6(int) Load 250 - Store 249(coordTemp) 251 - 253: 74 Load 76(g_tTex1df2) - 254: 6(int) Load 249(coordTemp) - 255: 42(fvec4) ImageRead 253 254 - 256: 20(float) CompositeExtract 255 0 - 257: 20(float) CompositeExtract 255 1 - 258: 21(fvec2) CompositeConstruct 256 257 - Store 252(storeTemp) 258 - 260: 21(fvec2) Load 252(storeTemp) - 261: 21(fvec2) CompositeConstruct 259 259 - 262: 21(fvec2) FAdd 260 261 - Store 252(storeTemp) 262 - 263: 74 Load 76(g_tTex1df2) - 264: 6(int) Load 249(coordTemp) - 265: 21(fvec2) Load 252(storeTemp) - ImageWrite 263 264 265 - 267: 78(ptr) AccessChain 66 56 - 268: 6(int) Load 267 - Store 266(coordTemp) 268 - 270: 94 Load 96(g_tTex1di2) - 271: 6(int) Load 266(coordTemp) - 272: 63(ivec4) ImageRead 270 271 - 273: 6(int) CompositeExtract 272 0 - 274: 6(int) CompositeExtract 272 1 - 275: 7(ivec2) CompositeConstruct 273 274 - Store 269(storeTemp) 275 - 276: 7(ivec2) Load 269(storeTemp) - 277: 7(ivec2) CompositeConstruct 154 154 - 278: 7(ivec2) SDiv 276 277 - Store 269(storeTemp) 278 - 279: 94 Load 96(g_tTex1di2) - 280: 6(int) Load 266(coordTemp) - 281: 7(ivec2) Load 269(storeTemp) - ImageWrite 279 280 281 - 283: 78(ptr) AccessChain 66 56 - 284: 6(int) Load 283 - Store 282(coordTemp) 284 - 286: 94 Load 96(g_tTex1di2) - 287: 6(int) Load 282(coordTemp) - 288: 63(ivec4) ImageRead 286 287 - 289: 6(int) CompositeExtract 288 0 - 290: 6(int) CompositeExtract 288 1 - 291: 7(ivec2) CompositeConstruct 289 290 - Store 285(storeTemp) 291 - 292: 7(ivec2) Load 285(storeTemp) - 293: 7(ivec2) CompositeConstruct 154 154 - 294: 7(ivec2) SMod 292 293 - Store 285(storeTemp) 294 - 295: 94 Load 96(g_tTex1di2) - 296: 6(int) Load 282(coordTemp) - 297: 7(ivec2) Load 285(storeTemp) - ImageWrite 295 296 297 - 299: 78(ptr) AccessChain 66 56 - 300: 6(int) Load 299 - Store 298(coordTemp) 300 - 302: 94 Load 96(g_tTex1di2) - 303: 6(int) Load 298(coordTemp) - 304: 63(ivec4) ImageRead 302 303 - 305: 6(int) CompositeExtract 304 0 - 306: 6(int) CompositeExtract 304 1 - 307: 7(ivec2) CompositeConstruct 305 306 - Store 301(storeTemp) 307 - 309: 7(ivec2) Load 301(storeTemp) - 310: 7(ivec2) CompositeConstruct 308 308 - 311: 7(ivec2) BitwiseAnd 309 310 - Store 301(storeTemp) 311 - 312: 94 Load 96(g_tTex1di2) - 313: 6(int) Load 298(coordTemp) - 314: 7(ivec2) Load 301(storeTemp) - ImageWrite 312 313 314 - 316: 78(ptr) AccessChain 66 56 - 317: 6(int) Load 316 - Store 315(coordTemp) 317 - 319: 94 Load 96(g_tTex1di2) - 320: 6(int) Load 315(coordTemp) - 321: 63(ivec4) ImageRead 319 320 - 322: 6(int) CompositeExtract 321 0 - 323: 6(int) CompositeExtract 321 1 - 324: 7(ivec2) CompositeConstruct 322 323 - Store 318(storeTemp) 324 - 326: 7(ivec2) Load 318(storeTemp) - 327: 7(ivec2) CompositeConstruct 325 325 - 328: 7(ivec2) BitwiseOr 326 327 - Store 318(storeTemp) 328 - 329: 94 Load 96(g_tTex1di2) - 330: 6(int) Load 315(coordTemp) - 331: 7(ivec2) Load 318(storeTemp) - ImageWrite 329 330 331 - 333: 78(ptr) AccessChain 66 56 - 334: 6(int) Load 333 - Store 332(coordTemp) 334 - 336: 94 Load 96(g_tTex1di2) - 337: 6(int) Load 332(coordTemp) - 338: 63(ivec4) ImageRead 336 337 - 339: 6(int) CompositeExtract 338 0 - 340: 6(int) CompositeExtract 338 1 - 341: 7(ivec2) CompositeConstruct 339 340 - Store 335(storeTemp) 341 - 342: 7(ivec2) Load 335(storeTemp) - 343: 7(ivec2) CompositeConstruct 154 154 - 344: 7(ivec2) ShiftLeftLogical 342 343 - Store 335(storeTemp) 344 - 345: 94 Load 96(g_tTex1di2) - 346: 6(int) Load 332(coordTemp) - 347: 7(ivec2) Load 335(storeTemp) - ImageWrite 345 346 347 - 349: 78(ptr) AccessChain 66 56 - 350: 6(int) Load 349 - Store 348(coordTemp) 350 - 352: 94 Load 96(g_tTex1di2) - 353: 6(int) Load 348(coordTemp) - 354: 63(ivec4) ImageRead 352 353 - 355: 6(int) CompositeExtract 354 0 - 356: 6(int) CompositeExtract 354 1 - 357: 7(ivec2) CompositeConstruct 355 356 - Store 351(storeTemp) 357 - 358: 7(ivec2) Load 351(storeTemp) - 359: 7(ivec2) CompositeConstruct 154 154 - 360: 7(ivec2) ShiftRightArithmetic 358 359 - Store 351(storeTemp) 360 - 361: 94 Load 96(g_tTex1di2) - 362: 6(int) Load 348(coordTemp) - 363: 7(ivec2) Load 351(storeTemp) - ImageWrite 361 362 363 - 365: 21(fvec2) FunctionCall 40(SomeValue() - Store 364(storeTemp) 365 - 366: 117 Load 119(g_tTex2df2) - 367: 68(ptr) AccessChain 66 67 - 368: 7(ivec2) Load 367 - 369: 21(fvec2) Load 364(storeTemp) - ImageWrite 366 368 369 - 370: 117 Load 119(g_tTex2df2) - 371: 68(ptr) AccessChain 66 67 - 372: 7(ivec2) Load 371 - 373: 21(fvec2) Load 184(lf2) - ImageWrite 370 372 373 - Store 374(storeTemp) 376 - 377: 128 Load 130(g_tTex2di2) - 378: 68(ptr) AccessChain 66 67 - 379: 7(ivec2) Load 378 - 380: 7(ivec2) Load 374(storeTemp) - ImageWrite 377 379 380 - Store 381(storeTemp) 383 - 384: 139 Load 141(g_tTex2du2) - 385: 68(ptr) AccessChain 66 67 - 386: 7(ivec2) Load 385 - 387: 14(ivec2) Load 381(storeTemp) - ImageWrite 384 386 387 - 389: 21(fvec2) FunctionCall 40(SomeValue() - Store 388(storeTemp) 389 - 390: 150 Load 152(g_tTex3df2) - 391: 155(ptr) AccessChain 66 154 - 392: 62(ivec3) Load 391 - 393: 21(fvec2) Load 388(storeTemp) - ImageWrite 390 392 393 - 394: 150 Load 152(g_tTex3df2) - 395: 155(ptr) AccessChain 66 154 - 396: 62(ivec3) Load 395 - 397: 21(fvec2) Load 184(lf2) - ImageWrite 394 396 397 - Store 398(storeTemp) 400 - 401: 163 Load 165(g_tTex3di2) - 402: 155(ptr) AccessChain 66 154 - 403: 62(ivec3) Load 402 - 404: 7(ivec2) Load 398(storeTemp) - ImageWrite 401 403 404 - Store 405(storeTemp) 407 - 408: 174 Load 176(g_tTex3du2) - 409: 155(ptr) AccessChain 66 154 - 410: 62(ivec3) Load 409 - 411: 14(ivec2) Load 405(storeTemp) - ImageWrite 408 410 411 - 412: 74 Load 76(g_tTex1df2) - 413: 78(ptr) AccessChain 66 56 - 414: 6(int) Load 413 - 415: 42(fvec4) ImageRead 412 414 - 416: 20(float) CompositeExtract 415 0 - 417: 20(float) CompositeExtract 415 1 - 418: 21(fvec2) CompositeConstruct 416 417 - Store 419(param) 418 - 420: 21(fvec2) FunctionCall 25(Fn1(vf2;) 419(param) - 421: 94 Load 96(g_tTex1di2) - 422: 78(ptr) AccessChain 66 56 - 423: 6(int) Load 422 - 424: 63(ivec4) ImageRead 421 423 - 425: 6(int) CompositeExtract 424 0 - 426: 6(int) CompositeExtract 424 1 - 427: 7(ivec2) CompositeConstruct 425 426 - Store 428(param) 427 - 429: 7(ivec2) FunctionCall 11(Fn1(vi2;) 428(param) - 430: 105 Load 107(g_tTex1du2) - 431: 78(ptr) AccessChain 66 56 - 432: 6(int) Load 431 - 433: 111(ivec4) ImageRead 430 432 - 434: 13(int) CompositeExtract 433 0 - 435: 13(int) CompositeExtract 433 1 - 436: 14(ivec2) CompositeConstruct 434 435 - Store 437(param) 436 - 438: 14(ivec2) FunctionCall 18(Fn1(vu2;) 437(param) - 441: 2 FunctionCall 37(Fn2(vf2;) 440(param) - 442: 21(fvec2) Load 440(param) - Store 439(tempArg) 442 - 443: 74 Load 76(g_tTex1df2) - 444: 78(ptr) AccessChain 66 56 - 445: 6(int) Load 444 - 446: 21(fvec2) Load 439(tempArg) - ImageWrite 443 445 446 - 449: 2 FunctionCall 29(Fn2(vi2;) 448(param) - 450: 7(ivec2) Load 448(param) - Store 447(tempArg) 450 - 451: 94 Load 96(g_tTex1di2) - 452: 78(ptr) AccessChain 66 56 - 453: 6(int) Load 452 - 454: 7(ivec2) Load 447(tempArg) - ImageWrite 451 453 454 - 457: 2 FunctionCall 33(Fn2(vu2;) 456(param) - 458: 14(ivec2) Load 456(param) - Store 455(tempArg) 458 - 459: 105 Load 107(g_tTex1du2) - 460: 78(ptr) AccessChain 66 56 - 461: 6(int) Load 460 - 462: 14(ivec2) Load 455(tempArg) - ImageWrite 459 461 462 - 464: 78(ptr) AccessChain 66 56 - 465: 6(int) Load 464 - Store 463(coordTemp) 465 - 467: 74 Load 76(g_tTex1df2) - 468: 6(int) Load 463(coordTemp) - 469: 42(fvec4) ImageRead 467 468 - 470: 20(float) CompositeExtract 469 0 - 471: 20(float) CompositeExtract 469 1 - 472: 21(fvec2) CompositeConstruct 470 471 - Store 466(storeTemp) 472 - 473: 21(fvec2) Load 466(storeTemp) - 475: 21(fvec2) CompositeConstruct 474 474 - 476: 21(fvec2) FAdd 473 475 - Store 466(storeTemp) 476 - 477: 74 Load 76(g_tTex1df2) - 478: 6(int) Load 463(coordTemp) - 479: 21(fvec2) Load 466(storeTemp) - ImageWrite 477 478 479 - 481: 78(ptr) AccessChain 66 56 - 482: 6(int) Load 481 - Store 480(coordTemp) 482 - 484: 94 Load 96(g_tTex1di2) - 485: 6(int) Load 480(coordTemp) - 486: 63(ivec4) ImageRead 484 485 - 487: 6(int) CompositeExtract 486 0 - 488: 6(int) CompositeExtract 486 1 - 489: 7(ivec2) CompositeConstruct 487 488 - Store 483(storeTemp) 489 - 490: 7(ivec2) Load 483(storeTemp) - 491: 7(ivec2) CompositeConstruct 67 67 - 492: 7(ivec2) IAdd 490 491 - Store 483(storeTemp) 492 - 493: 94 Load 96(g_tTex1di2) - 494: 6(int) Load 480(coordTemp) - 495: 7(ivec2) Load 483(storeTemp) - ImageWrite 493 494 495 - 497: 78(ptr) AccessChain 66 56 - 498: 6(int) Load 497 - Store 496(coordTemp) 498 - 500: 105 Load 107(g_tTex1du2) - 501: 6(int) Load 496(coordTemp) - 502: 111(ivec4) ImageRead 500 501 - 503: 13(int) CompositeExtract 502 0 - 504: 13(int) CompositeExtract 502 1 - 505: 14(ivec2) CompositeConstruct 503 504 - Store 499(storeTemp) 505 - 506: 14(ivec2) Load 499(storeTemp) - 507: 7(ivec2) CompositeConstruct 67 67 - 508: 14(ivec2) IAdd 506 507 - Store 499(storeTemp) 508 - 509: 105 Load 107(g_tTex1du2) - 510: 6(int) Load 496(coordTemp) - 511: 14(ivec2) Load 499(storeTemp) - ImageWrite 509 510 511 - 513: 78(ptr) AccessChain 66 56 - 514: 6(int) Load 513 - Store 512(coordTemp) 514 - 516: 74 Load 76(g_tTex1df2) - 517: 6(int) Load 512(coordTemp) - 518: 42(fvec4) ImageRead 516 517 - 519: 20(float) CompositeExtract 518 0 - 520: 20(float) CompositeExtract 518 1 - 521: 21(fvec2) CompositeConstruct 519 520 - Store 515(storeTemp) 521 - 522: 21(fvec2) Load 515(storeTemp) - 523: 21(fvec2) CompositeConstruct 474 474 - 524: 21(fvec2) FSub 522 523 - Store 515(storeTemp) 524 - 525: 74 Load 76(g_tTex1df2) - 526: 6(int) Load 512(coordTemp) - 527: 21(fvec2) Load 515(storeTemp) - ImageWrite 525 526 527 - 529: 78(ptr) AccessChain 66 56 - 530: 6(int) Load 529 - Store 528(coordTemp) 530 - 532: 94 Load 96(g_tTex1di2) - 533: 6(int) Load 528(coordTemp) - 534: 63(ivec4) ImageRead 532 533 - 535: 6(int) CompositeExtract 534 0 - 536: 6(int) CompositeExtract 534 1 - 537: 7(ivec2) CompositeConstruct 535 536 - Store 531(storeTemp) 537 - 538: 7(ivec2) Load 531(storeTemp) - 539: 7(ivec2) CompositeConstruct 67 67 - 540: 7(ivec2) ISub 538 539 - Store 531(storeTemp) 540 - 541: 94 Load 96(g_tTex1di2) - 542: 6(int) Load 528(coordTemp) - 543: 7(ivec2) Load 531(storeTemp) - ImageWrite 541 542 543 - 545: 78(ptr) AccessChain 66 56 - 546: 6(int) Load 545 - Store 544(coordTemp) 546 - 548: 105 Load 107(g_tTex1du2) - 549: 6(int) Load 544(coordTemp) - 550: 111(ivec4) ImageRead 548 549 - 551: 13(int) CompositeExtract 550 0 - 552: 13(int) CompositeExtract 550 1 - 553: 14(ivec2) CompositeConstruct 551 552 - Store 547(storeTemp) 553 - 554: 14(ivec2) Load 547(storeTemp) - 555: 7(ivec2) CompositeConstruct 67 67 - 556: 14(ivec2) ISub 554 555 - Store 547(storeTemp) 556 - 557: 105 Load 107(g_tTex1du2) - 558: 6(int) Load 544(coordTemp) - 559: 14(ivec2) Load 547(storeTemp) - ImageWrite 557 558 559 - 561: 78(ptr) AccessChain 66 56 - 562: 6(int) Load 561 - Store 560(coordTemp) 562 - 564: 74 Load 76(g_tTex1df2) - 565: 6(int) Load 560(coordTemp) - 566: 42(fvec4) ImageRead 564 565 - 567: 20(float) CompositeExtract 566 0 - 568: 20(float) CompositeExtract 566 1 - 569: 21(fvec2) CompositeConstruct 567 568 - Store 563(storeTempPre) 569 - 571: 21(fvec2) Load 563(storeTempPre) - Store 570(storeTempPost) 571 - 572: 21(fvec2) Load 570(storeTempPost) - 573: 21(fvec2) CompositeConstruct 474 474 - 574: 21(fvec2) FAdd 572 573 - Store 570(storeTempPost) 574 - 575: 74 Load 76(g_tTex1df2) - 576: 6(int) Load 560(coordTemp) - 577: 21(fvec2) Load 570(storeTempPost) - ImageWrite 575 576 577 - 579: 78(ptr) AccessChain 66 56 - 580: 6(int) Load 579 - Store 578(coordTemp) 580 - 582: 105 Load 107(g_tTex1du2) - 583: 6(int) Load 578(coordTemp) - 584: 111(ivec4) ImageRead 582 583 - 585: 13(int) CompositeExtract 584 0 - 586: 13(int) CompositeExtract 584 1 - 587: 14(ivec2) CompositeConstruct 585 586 - Store 581(storeTempPre) 587 - 589: 14(ivec2) Load 581(storeTempPre) - Store 588(storeTempPost) 589 - 590: 14(ivec2) Load 588(storeTempPost) - 591: 7(ivec2) CompositeConstruct 67 67 - 592: 14(ivec2) ISub 590 591 - Store 588(storeTempPost) 592 - 593: 105 Load 107(g_tTex1du2) - 594: 6(int) Load 578(coordTemp) - 595: 14(ivec2) Load 588(storeTempPost) - ImageWrite 593 594 595 - 597: 78(ptr) AccessChain 66 56 - 598: 6(int) Load 597 - Store 596(coordTemp) 598 - 600: 94 Load 96(g_tTex1di2) - 601: 6(int) Load 596(coordTemp) - 602: 63(ivec4) ImageRead 600 601 - 603: 6(int) CompositeExtract 602 0 - 604: 6(int) CompositeExtract 602 1 - 605: 7(ivec2) CompositeConstruct 603 604 - Store 599(storeTempPre) 605 - 607: 7(ivec2) Load 599(storeTempPre) - Store 606(storeTempPost) 607 - 608: 7(ivec2) Load 606(storeTempPost) - 609: 7(ivec2) CompositeConstruct 67 67 - 610: 7(ivec2) IAdd 608 609 - Store 606(storeTempPost) 610 - 611: 94 Load 96(g_tTex1di2) - 612: 6(int) Load 596(coordTemp) - 613: 7(ivec2) Load 606(storeTempPost) - ImageWrite 611 612 613 - 615: 78(ptr) AccessChain 66 56 - 616: 6(int) Load 615 - Store 614(coordTemp) 616 - 618: 74 Load 76(g_tTex1df2) - 619: 6(int) Load 614(coordTemp) - 620: 42(fvec4) ImageRead 618 619 - 621: 20(float) CompositeExtract 620 0 - 622: 20(float) CompositeExtract 620 1 - 623: 21(fvec2) CompositeConstruct 621 622 - Store 617(storeTempPre) 623 - 625: 21(fvec2) Load 617(storeTempPre) - Store 624(storeTempPost) 625 - 626: 21(fvec2) Load 624(storeTempPost) - 627: 21(fvec2) CompositeConstruct 474 474 - 628: 21(fvec2) FSub 626 627 - Store 624(storeTempPost) 628 - 629: 74 Load 76(g_tTex1df2) - 630: 6(int) Load 614(coordTemp) - 631: 21(fvec2) Load 624(storeTempPost) - ImageWrite 629 630 631 - 633: 78(ptr) AccessChain 66 56 - 634: 6(int) Load 633 - Store 632(coordTemp) 634 - 636: 94 Load 96(g_tTex1di2) - 637: 6(int) Load 632(coordTemp) - 638: 63(ivec4) ImageRead 636 637 - 639: 6(int) CompositeExtract 638 0 - 640: 6(int) CompositeExtract 638 1 - 641: 7(ivec2) CompositeConstruct 639 640 - Store 635(storeTempPre) 641 - 643: 7(ivec2) Load 635(storeTempPre) - Store 642(storeTempPost) 643 - 644: 7(ivec2) Load 642(storeTempPost) - 645: 7(ivec2) CompositeConstruct 67 67 - 646: 7(ivec2) IAdd 644 645 - Store 642(storeTempPost) 646 - 647: 94 Load 96(g_tTex1di2) - 648: 6(int) Load 632(coordTemp) - 649: 7(ivec2) Load 642(storeTempPost) - ImageWrite 647 648 649 - 651: 78(ptr) AccessChain 66 56 - 652: 6(int) Load 651 - Store 650(coordTemp) 652 - 654: 105 Load 107(g_tTex1du2) - 655: 6(int) Load 650(coordTemp) - 656: 111(ivec4) ImageRead 654 655 - 657: 13(int) CompositeExtract 656 0 - 658: 13(int) CompositeExtract 656 1 - 659: 14(ivec2) CompositeConstruct 657 658 - Store 653(storeTempPre) 659 - 661: 14(ivec2) Load 653(storeTempPre) - Store 660(storeTempPost) 661 - 662: 14(ivec2) Load 660(storeTempPost) - 663: 7(ivec2) CompositeConstruct 67 67 - 664: 14(ivec2) ISub 662 663 - Store 660(storeTempPost) 664 - 665: 105 Load 107(g_tTex1du2) - 666: 6(int) Load 650(coordTemp) - 667: 14(ivec2) Load 660(storeTempPost) - ImageWrite 665 666 667 - 669: 117 Load 119(g_tTex2df2) - 672: 42(fvec4) ImageRead 669 671 - 673: 20(float) CompositeExtract 672 0 - 674: 20(float) CompositeExtract 672 1 - 675: 21(fvec2) CompositeConstruct 673 674 - Store 668(storeTemp) 675 - 676: 74 Load 76(g_tTex1df2) - 677: 21(fvec2) Load 668(storeTemp) - ImageWrite 676 67 677 - 682: 681(ptr) AccessChain 679(psout) 56 - Store 682 680 - 683:43(PS_OUTPUT) Load 679(psout) - ReturnValue 683 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.sample.array.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.sample.array.dx10.frag.out deleted file mode 100644 index 28d96f0d..00000000 --- a/deps/glslang/Test/baseResults/hlsl.sample.array.dx10.frag.out +++ /dev/null @@ -1,549 +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:27 Constant: -0:27 0.100000 -0:27 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 Constant: -0:28 0.200000 -0:28 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 Constant: -0:29 0.300000 -0:29 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 Constant: -0:31 0.100000 -0:31 0.200000 -0:31 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 Constant: -0:32 0.300000 -0:32 0.400000 -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 Constant: -0:33 0.500000 -0:33 0.600000 -0:33 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 Constant: -0:35 0.100000 -0:35 0.200000 -0:35 0.300000 -0:35 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 Constant: -0:36 0.400000 -0:36 0.500000 -0:36 0.600000 -0:36 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 Constant: -0:37 0.700000 -0:37 0.800000 -0:37 0.900000 -0:37 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:27 Constant: -0:27 0.100000 -0:27 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 Constant: -0:28 0.200000 -0:28 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 Constant: -0:29 0.300000 -0:29 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 Constant: -0:31 0.100000 -0:31 0.200000 -0:31 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 Constant: -0:32 0.300000 -0:32 0.400000 -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 Constant: -0:33 0.500000 -0:33 0.600000 -0:33 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 Constant: -0:35 0.100000 -0:35 0.200000 -0:35 0.300000 -0:35 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 Constant: -0:36 0.400000 -0:36 0.500000 -0:36 0.600000 -0:36 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 Constant: -0:37 0.700000 -0:37 0.800000 -0:37 0.900000 -0:37 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): 8000a -// 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 35(g_tTex1di4) Binding 2 - Decorate 49(g_tTex1du4) DescriptorSet 0 - Decorate 49(g_tTex1du4) Binding 3 - Decorate 60(g_tTex2df4) DescriptorSet 0 - Decorate 60(g_tTex2df4) Binding 4 - Decorate 71(g_tTex2di4) DescriptorSet 0 - Decorate 71(g_tTex2di4) Binding 5 - Decorate 82(g_tTex2du4) DescriptorSet 0 - Decorate 82(g_tTex2du4) Binding 6 - Decorate 94(g_tTexcdf4) DescriptorSet 0 - Decorate 94(g_tTexcdf4) Binding 7 - Decorate 104(g_tTexcdi4) DescriptorSet 0 - Decorate 104(g_tTexcdi4) Binding 8 - Decorate 114(g_tTexcdu4) DescriptorSet 0 - Decorate 114(g_tTexcdu4) Binding 9 - 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/Test/baseResults/hlsl.sample.basic.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.sample.basic.dx10.frag.out deleted file mode 100644 index 12c67111..00000000 --- a/deps/glslang/Test/baseResults/hlsl.sample.basic.dx10.frag.out +++ /dev/null @@ -1,875 +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:74 Constant: -0:74 0.100000 -0:74 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 Constant: -0:75 0.300000 -0:75 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 Constant: -0:76 0.500000 -0:76 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 Constant: -0:78 0.100000 -0:78 0.200000 -0:78 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 Constant: -0:79 0.400000 -0:79 0.500000 -0:79 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 Constant: -0:80 0.700000 -0:80 0.800000 -0:80 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 Constant: -0:82 0.100000 -0:82 0.200000 -0:82 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 Constant: -0:83 0.400000 -0:83 0.500000 -0:83 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 Constant: -0:84 0.700000 -0:84 0.800000 -0:84 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:74 Constant: -0:74 0.100000 -0:74 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 Constant: -0:75 0.300000 -0:75 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 Constant: -0:76 0.500000 -0:76 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 Constant: -0:78 0.100000 -0:78 0.200000 -0:78 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 Constant: -0:79 0.400000 -0:79 0.500000 -0:79 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 Constant: -0:80 0.700000 -0:80 0.800000 -0:80 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 Constant: -0:82 0.100000 -0:82 0.200000 -0:82 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 Constant: -0:83 0.400000 -0:83 0.500000 -0:83 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 Constant: -0:84 0.700000 -0:84 0.800000 -0:84 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): 8000a -// 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 60(g_tTex1di4) Binding 2 - Decorate 73(g_tTex1du4) DescriptorSet 0 - Decorate 73(g_tTex1du4) Binding 3 - Decorate 83(g_tTex2df4) DescriptorSet 0 - Decorate 83(g_tTex2df4) Binding 4 - Decorate 94(g_tTex2di4) DescriptorSet 0 - Decorate 94(g_tTex2di4) Binding 5 - Decorate 105(g_tTex2du4) DescriptorSet 0 - Decorate 105(g_tTex2du4) Binding 6 - Decorate 117(g_tTex3df4) DescriptorSet 0 - Decorate 117(g_tTex3df4) Binding 7 - Decorate 128(g_tTex3di4) DescriptorSet 0 - Decorate 128(g_tTex3di4) Binding 8 - Decorate 138(g_tTex3du4) DescriptorSet 0 - Decorate 138(g_tTex3du4) Binding 9 - Decorate 151(g_tTexcdf4) DescriptorSet 0 - Decorate 151(g_tTexcdf4) Binding 10 - Decorate 160(g_tTexcdi4) DescriptorSet 0 - Decorate 160(g_tTexcdi4) Binding 11 - Decorate 169(g_tTexcdu4) DescriptorSet 0 - Decorate 169(g_tTexcdu4) Binding 12 - Decorate 188(@entryPointOutput.Color) Location 0 - Decorate 192(@entryPointOutput.Depth) BuiltIn FragDepth - Decorate 195(g_sSamp2d) DescriptorSet 0 - Decorate 195(g_sSamp2d) Binding 0 - Decorate 196(g_sSamp2D_b) DescriptorSet 0 - Decorate 196(g_sSamp2D_b) Binding 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/Test/baseResults/hlsl.sample.dx9.frag.out b/deps/glslang/Test/baseResults/hlsl.sample.dx9.frag.out deleted file mode 100644 index 282455c7..00000000 --- a/deps/glslang/Test/baseResults/hlsl.sample.dx9.frag.out +++ /dev/null @@ -1,592 +0,0 @@ -hlsl.sample.dx9.frag -Shader version: 500 -gl_FragCoord origin is upper left -using depth_any -0:? Sequence -0:15 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:15 Function Parameters: -0:? Sequence -0:18 Sequence -0:18 move second child to first child ( temp 4-component vector of float) -0:18 'ColorOut' ( temp 4-component vector of float) -0:18 Constant: -0:18 0.000000 -0:18 0.000000 -0:18 0.000000 -0:18 0.000000 -0:20 add second child into first child ( temp 4-component vector of float) -0:20 'ColorOut' ( temp 4-component vector of float) -0:20 texture ( temp 4-component vector of float) -0:20 'g_sam' (layout( binding=0) uniform sampler2D) -0:20 Constant: -0:20 0.400000 -0:20 0.300000 -0:21 add second child into first child ( temp 4-component vector of float) -0:21 'ColorOut' ( temp 4-component vector of float) -0:21 texture ( temp 4-component vector of float) -0:21 'g_sam1D' (layout( binding=1) uniform sampler1D) -0:21 Constant: -0:21 0.500000 -0:22 add second child into first child ( temp 4-component vector of float) -0:22 'ColorOut' ( temp 4-component vector of float) -0:22 texture ( temp 4-component vector of float) -0:22 'g_sam2D' (layout( binding=2) uniform sampler2D) -0:22 Constant: -0:22 0.500000 -0:22 0.600000 -0:23 add second child into first child ( temp 4-component vector of float) -0:23 'ColorOut' ( temp 4-component vector of float) -0:23 texture ( temp 4-component vector of float) -0:23 'g_sam3D' (layout( binding=3) uniform sampler3D) -0:23 Constant: -0:23 0.500000 -0:23 0.600000 -0:23 0.400000 -0:24 add second child into first child ( temp 4-component vector of float) -0:24 'ColorOut' ( temp 4-component vector of float) -0:24 texture ( temp 4-component vector of float) -0:24 'g_samCube' (layout( binding=4) uniform samplerCube) -0:24 Constant: -0:24 0.500000 -0:24 0.600000 -0:24 0.400000 -0:26 add second child into first child ( temp 4-component vector of float) -0:26 'ColorOut' ( temp 4-component vector of float) -0:26 textureLod ( temp 4-component vector of float) -0:26 'g_sam' (layout( binding=0) uniform sampler2D) -0:26 Construct vec2 ( temp 2-component vector of float) -0:26 Constant: -0:26 0.400000 -0:26 0.300000 -0:26 0.000000 -0:26 0.000000 -0:26 direct index ( temp float) -0:26 Constant: -0:26 0.400000 -0:26 0.300000 -0:26 0.000000 -0:26 0.000000 -0:26 Constant: -0:26 3 (const int) -0:27 add second child into first child ( temp 4-component vector of float) -0:27 'ColorOut' ( temp 4-component vector of float) -0:27 textureLod ( temp 4-component vector of float) -0:27 'g_sam1D' (layout( binding=1) uniform sampler1D) -0:27 Construct float ( temp float) -0:27 Constant: -0:27 0.500000 -0:27 0.000000 -0:27 0.000000 -0:27 0.000000 -0:27 direct index ( temp float) -0:27 Constant: -0:27 0.500000 -0:27 0.000000 -0:27 0.000000 -0:27 0.000000 -0:27 Constant: -0:27 3 (const int) -0:28 add second child into first child ( temp 4-component vector of float) -0:28 'ColorOut' ( temp 4-component vector of float) -0:28 textureLod ( temp 4-component vector of float) -0:28 'g_sam2D' (layout( binding=2) uniform sampler2D) -0:28 Construct vec2 ( temp 2-component vector of float) -0:28 Constant: -0:28 0.500000 -0:28 0.600000 -0:28 0.000000 -0:28 0.000000 -0:28 direct index ( temp float) -0:28 Constant: -0:28 0.500000 -0:28 0.600000 -0:28 0.000000 -0:28 0.000000 -0:28 Constant: -0:28 3 (const int) -0:29 add second child into first child ( temp 4-component vector of float) -0:29 'ColorOut' ( temp 4-component vector of float) -0:29 textureLod ( temp 4-component vector of float) -0:29 'g_sam3D' (layout( binding=3) uniform sampler3D) -0:29 Construct vec3 ( temp 3-component vector of float) -0:29 Constant: -0:29 0.500000 -0:29 0.600000 -0:29 0.400000 -0:29 0.000000 -0:29 direct index ( temp float) -0:29 Constant: -0:29 0.500000 -0:29 0.600000 -0:29 0.400000 -0:29 0.000000 -0:29 Constant: -0:29 3 (const int) -0:30 add second child into first child ( temp 4-component vector of float) -0:30 'ColorOut' ( temp 4-component vector of float) -0:30 textureLod ( temp 4-component vector of float) -0:30 'g_samCube' (layout( binding=4) uniform samplerCube) -0:30 Construct vec3 ( temp 3-component vector of float) -0:30 Constant: -0:30 0.500000 -0:30 0.600000 -0:30 0.400000 -0:30 0.000000 -0:30 direct index ( temp float) -0:30 Constant: -0:30 0.500000 -0:30 0.600000 -0:30 0.400000 -0:30 0.000000 -0:30 Constant: -0:30 3 (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 divide ( temp 4-component vector of float) -0:32 'ColorOut' ( temp 4-component vector of float) -0:32 Constant: -0:32 10.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:15 Function Definition: main( ( temp void) -0:15 Function Parameters: -0:? Sequence -0:15 Sequence -0:15 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:15 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:15 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -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 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:15 Constant: -0:15 0 (const int) -0:15 move second child to first child ( temp float) -0:? '@entryPointOutput.Depth' ( out float FragDepth) -0:15 Depth: direct index for structure ( temp float) -0:15 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:15 Constant: -0:15 1 (const int) -0:? Linker Objects -0:? 'g_sam' (layout( binding=0) uniform sampler2D) -0:? 'g_sam1D' (layout( binding=1) uniform sampler1D) -0:? 'g_sam2D' (layout( binding=2) uniform sampler2D) -0:? 'g_sam3D' (layout( binding=3) uniform sampler3D) -0:? 'g_samCube' (layout( binding=4) uniform samplerCube) -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:15 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:15 Function Parameters: -0:? Sequence -0:18 Sequence -0:18 move second child to first child ( temp 4-component vector of float) -0:18 'ColorOut' ( temp 4-component vector of float) -0:18 Constant: -0:18 0.000000 -0:18 0.000000 -0:18 0.000000 -0:18 0.000000 -0:20 add second child into first child ( temp 4-component vector of float) -0:20 'ColorOut' ( temp 4-component vector of float) -0:20 texture ( temp 4-component vector of float) -0:20 'g_sam' (layout( binding=0) uniform sampler2D) -0:20 Constant: -0:20 0.400000 -0:20 0.300000 -0:21 add second child into first child ( temp 4-component vector of float) -0:21 'ColorOut' ( temp 4-component vector of float) -0:21 texture ( temp 4-component vector of float) -0:21 'g_sam1D' (layout( binding=1) uniform sampler1D) -0:21 Constant: -0:21 0.500000 -0:22 add second child into first child ( temp 4-component vector of float) -0:22 'ColorOut' ( temp 4-component vector of float) -0:22 texture ( temp 4-component vector of float) -0:22 'g_sam2D' (layout( binding=2) uniform sampler2D) -0:22 Constant: -0:22 0.500000 -0:22 0.600000 -0:23 add second child into first child ( temp 4-component vector of float) -0:23 'ColorOut' ( temp 4-component vector of float) -0:23 texture ( temp 4-component vector of float) -0:23 'g_sam3D' (layout( binding=3) uniform sampler3D) -0:23 Constant: -0:23 0.500000 -0:23 0.600000 -0:23 0.400000 -0:24 add second child into first child ( temp 4-component vector of float) -0:24 'ColorOut' ( temp 4-component vector of float) -0:24 texture ( temp 4-component vector of float) -0:24 'g_samCube' (layout( binding=4) uniform samplerCube) -0:24 Constant: -0:24 0.500000 -0:24 0.600000 -0:24 0.400000 -0:26 add second child into first child ( temp 4-component vector of float) -0:26 'ColorOut' ( temp 4-component vector of float) -0:26 textureLod ( temp 4-component vector of float) -0:26 'g_sam' (layout( binding=0) uniform sampler2D) -0:26 Construct vec2 ( temp 2-component vector of float) -0:26 Constant: -0:26 0.400000 -0:26 0.300000 -0:26 0.000000 -0:26 0.000000 -0:26 direct index ( temp float) -0:26 Constant: -0:26 0.400000 -0:26 0.300000 -0:26 0.000000 -0:26 0.000000 -0:26 Constant: -0:26 3 (const int) -0:27 add second child into first child ( temp 4-component vector of float) -0:27 'ColorOut' ( temp 4-component vector of float) -0:27 textureLod ( temp 4-component vector of float) -0:27 'g_sam1D' (layout( binding=1) uniform sampler1D) -0:27 Construct float ( temp float) -0:27 Constant: -0:27 0.500000 -0:27 0.000000 -0:27 0.000000 -0:27 0.000000 -0:27 direct index ( temp float) -0:27 Constant: -0:27 0.500000 -0:27 0.000000 -0:27 0.000000 -0:27 0.000000 -0:27 Constant: -0:27 3 (const int) -0:28 add second child into first child ( temp 4-component vector of float) -0:28 'ColorOut' ( temp 4-component vector of float) -0:28 textureLod ( temp 4-component vector of float) -0:28 'g_sam2D' (layout( binding=2) uniform sampler2D) -0:28 Construct vec2 ( temp 2-component vector of float) -0:28 Constant: -0:28 0.500000 -0:28 0.600000 -0:28 0.000000 -0:28 0.000000 -0:28 direct index ( temp float) -0:28 Constant: -0:28 0.500000 -0:28 0.600000 -0:28 0.000000 -0:28 0.000000 -0:28 Constant: -0:28 3 (const int) -0:29 add second child into first child ( temp 4-component vector of float) -0:29 'ColorOut' ( temp 4-component vector of float) -0:29 textureLod ( temp 4-component vector of float) -0:29 'g_sam3D' (layout( binding=3) uniform sampler3D) -0:29 Construct vec3 ( temp 3-component vector of float) -0:29 Constant: -0:29 0.500000 -0:29 0.600000 -0:29 0.400000 -0:29 0.000000 -0:29 direct index ( temp float) -0:29 Constant: -0:29 0.500000 -0:29 0.600000 -0:29 0.400000 -0:29 0.000000 -0:29 Constant: -0:29 3 (const int) -0:30 add second child into first child ( temp 4-component vector of float) -0:30 'ColorOut' ( temp 4-component vector of float) -0:30 textureLod ( temp 4-component vector of float) -0:30 'g_samCube' (layout( binding=4) uniform samplerCube) -0:30 Construct vec3 ( temp 3-component vector of float) -0:30 Constant: -0:30 0.500000 -0:30 0.600000 -0:30 0.400000 -0:30 0.000000 -0:30 direct index ( temp float) -0:30 Constant: -0:30 0.500000 -0:30 0.600000 -0:30 0.400000 -0:30 0.000000 -0:30 Constant: -0:30 3 (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 divide ( temp 4-component vector of float) -0:32 'ColorOut' ( temp 4-component vector of float) -0:32 Constant: -0:32 10.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:15 Function Definition: main( ( temp void) -0:15 Function Parameters: -0:? Sequence -0:15 Sequence -0:15 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:15 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:15 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -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 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:15 Constant: -0:15 0 (const int) -0:15 move second child to first child ( temp float) -0:? '@entryPointOutput.Depth' ( out float FragDepth) -0:15 Depth: direct index for structure ( temp float) -0:15 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:15 Constant: -0:15 1 (const int) -0:? Linker Objects -0:? 'g_sam' (layout( binding=0) uniform sampler2D) -0:? 'g_sam1D' (layout( binding=1) uniform sampler1D) -0:? 'g_sam2D' (layout( binding=2) uniform sampler2D) -0:? 'g_sam3D' (layout( binding=3) uniform sampler3D) -0:? 'g_samCube' (layout( binding=4) uniform samplerCube) -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): 8000a -// Id's are bound by 135 - - Capability Shader - Capability Sampled1D - 2: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 5 "main" 128 132 - ExecutionMode 5 OriginUpperLeft - ExecutionMode 5 DepthReplacing - 1: String "" - Source HLSL 500 1 "// OpModuleProcessed auto-map-locations -// OpModuleProcessed auto-map-bindings -// OpModuleProcessed entry-point main -// OpModuleProcessed client vulkan100 -// OpModuleProcessed target-env vulkan1.0 -// OpModuleProcessed keep-uncalled -// OpModuleProcessed hlsl-offsets -#line 1 -" - Name 5 "main" - Name 9 "PS_OUTPUT" - MemberName 9(PS_OUTPUT) 0 "Color" - MemberName 9(PS_OUTPUT) 1 "Depth" - Name 11 "@main(" - Name 14 "ColorOut" - Name 20 "g_sam" - Name 32 "g_sam1D" - Name 38 "g_sam2D" - Name 48 "g_sam3D" - Name 58 "g_samCube" - Name 110 "psout" - Name 125 "flattenTemp" - Name 128 "@entryPointOutput.Color" - Name 132 "@entryPointOutput.Depth" - Decorate 20(g_sam) DescriptorSet 0 - Decorate 20(g_sam) Binding 0 - Decorate 32(g_sam1D) DescriptorSet 0 - Decorate 32(g_sam1D) Binding 1 - Decorate 38(g_sam2D) DescriptorSet 0 - Decorate 38(g_sam2D) Binding 2 - Decorate 48(g_sam3D) DescriptorSet 0 - Decorate 48(g_sam3D) Binding 3 - Decorate 58(g_samCube) DescriptorSet 0 - Decorate 58(g_samCube) Binding 4 - Decorate 128(@entryPointOutput.Color) Location 0 - Decorate 132(@entryPointOutput.Depth) BuiltIn FragDepth - 3: TypeVoid - 4: TypeFunction 3 - 7: TypeFloat 32 - 8: TypeVector 7(float) 4 - 9(PS_OUTPUT): TypeStruct 8(fvec4) 7(float) - 10: TypeFunction 9(PS_OUTPUT) - 13: TypePointer Function 8(fvec4) - 15: 7(float) Constant 0 - 16: 8(fvec4) ConstantComposite 15 15 15 15 - 17: TypeImage 7(float) 2D sampled format:Unknown - 18: TypeSampledImage 17 - 19: TypePointer UniformConstant 18 - 20(g_sam): 19(ptr) Variable UniformConstant - 22: TypeVector 7(float) 2 - 23: 7(float) Constant 1053609165 - 24: 7(float) Constant 1050253722 - 25: 22(fvec2) ConstantComposite 23 24 - 29: TypeImage 7(float) 1D sampled format:Unknown - 30: TypeSampledImage 29 - 31: TypePointer UniformConstant 30 - 32(g_sam1D): 31(ptr) Variable UniformConstant - 34: 7(float) Constant 1056964608 - 38(g_sam2D): 19(ptr) Variable UniformConstant - 40: 7(float) Constant 1058642330 - 41: 22(fvec2) ConstantComposite 34 40 - 45: TypeImage 7(float) 3D sampled format:Unknown - 46: TypeSampledImage 45 - 47: TypePointer UniformConstant 46 - 48(g_sam3D): 47(ptr) Variable UniformConstant - 50: TypeVector 7(float) 3 - 51: 50(fvec3) ConstantComposite 34 40 23 - 55: TypeImage 7(float) Cube sampled format:Unknown - 56: TypeSampledImage 55 - 57: TypePointer UniformConstant 56 - 58(g_samCube): 57(ptr) Variable UniformConstant - 64: 8(fvec4) ConstantComposite 23 24 15 15 - 68: TypeInt 32 0 - 69: 68(int) Constant 3 - 75: 8(fvec4) ConstantComposite 34 15 15 15 - 82: 8(fvec4) ConstantComposite 34 40 15 15 - 91: 8(fvec4) ConstantComposite 34 40 23 15 - 109: TypePointer Function 9(PS_OUTPUT) - 111: TypeInt 32 1 - 112: 111(int) Constant 0 - 114: 7(float) Constant 1092616192 - 118: 111(int) Constant 1 - 119: 7(float) Constant 1065353216 - 120: TypePointer Function 7(float) - 127: TypePointer Output 8(fvec4) -128(@entryPointOutput.Color): 127(ptr) Variable Output - 131: TypePointer Output 7(float) -132(@entryPointOutput.Depth): 131(ptr) Variable Output - 5(main): 3 Function None 4 - 6: Label -125(flattenTemp): 109(ptr) Variable Function - Line 1 15 0 - 126:9(PS_OUTPUT) FunctionCall 11(@main() - Store 125(flattenTemp) 126 - 129: 13(ptr) AccessChain 125(flattenTemp) 112 - 130: 8(fvec4) Load 129 - Store 128(@entryPointOutput.Color) 130 - 133: 120(ptr) AccessChain 125(flattenTemp) 118 - 134: 7(float) Load 133 - Store 132(@entryPointOutput.Depth) 134 - Return - FunctionEnd - 11(@main():9(PS_OUTPUT) Function None 10 - 12: Label - 14(ColorOut): 13(ptr) Variable Function - 110(psout): 109(ptr) Variable Function - Line 1 18 0 - Store 14(ColorOut) 16 - Line 1 20 0 - 21: 18 Load 20(g_sam) - 26: 8(fvec4) ImageSampleImplicitLod 21 25 - 27: 8(fvec4) Load 14(ColorOut) - 28: 8(fvec4) FAdd 27 26 - Store 14(ColorOut) 28 - Line 1 21 0 - 33: 30 Load 32(g_sam1D) - 35: 8(fvec4) ImageSampleImplicitLod 33 34 - 36: 8(fvec4) Load 14(ColorOut) - 37: 8(fvec4) FAdd 36 35 - Store 14(ColorOut) 37 - Line 1 22 0 - 39: 18 Load 38(g_sam2D) - 42: 8(fvec4) ImageSampleImplicitLod 39 41 - 43: 8(fvec4) Load 14(ColorOut) - 44: 8(fvec4) FAdd 43 42 - Store 14(ColorOut) 44 - Line 1 23 0 - 49: 46 Load 48(g_sam3D) - 52: 8(fvec4) ImageSampleImplicitLod 49 51 - 53: 8(fvec4) Load 14(ColorOut) - 54: 8(fvec4) FAdd 53 52 - Store 14(ColorOut) 54 - Line 1 24 0 - 59: 56 Load 58(g_samCube) - 60: 8(fvec4) ImageSampleImplicitLod 59 51 - 61: 8(fvec4) Load 14(ColorOut) - 62: 8(fvec4) FAdd 61 60 - Store 14(ColorOut) 62 - Line 1 26 0 - 63: 18 Load 20(g_sam) - 65: 7(float) CompositeExtract 64 0 - 66: 7(float) CompositeExtract 64 1 - 67: 22(fvec2) CompositeConstruct 65 66 - 70: 7(float) CompositeExtract 64 3 - 71: 8(fvec4) ImageSampleExplicitLod 63 67 Lod 70 - 72: 8(fvec4) Load 14(ColorOut) - 73: 8(fvec4) FAdd 72 71 - Store 14(ColorOut) 73 - Line 1 27 0 - 74: 30 Load 32(g_sam1D) - 76: 7(float) CompositeExtract 75 0 - 77: 7(float) CompositeExtract 75 3 - 78: 8(fvec4) ImageSampleExplicitLod 74 76 Lod 77 - 79: 8(fvec4) Load 14(ColorOut) - 80: 8(fvec4) FAdd 79 78 - Store 14(ColorOut) 80 - Line 1 28 0 - 81: 18 Load 38(g_sam2D) - 83: 7(float) CompositeExtract 82 0 - 84: 7(float) CompositeExtract 82 1 - 85: 22(fvec2) CompositeConstruct 83 84 - 86: 7(float) CompositeExtract 82 3 - 87: 8(fvec4) ImageSampleExplicitLod 81 85 Lod 86 - 88: 8(fvec4) Load 14(ColorOut) - 89: 8(fvec4) FAdd 88 87 - Store 14(ColorOut) 89 - Line 1 29 0 - 90: 46 Load 48(g_sam3D) - 92: 7(float) CompositeExtract 91 0 - 93: 7(float) CompositeExtract 91 1 - 94: 7(float) CompositeExtract 91 2 - 95: 50(fvec3) CompositeConstruct 92 93 94 - 96: 7(float) CompositeExtract 91 3 - 97: 8(fvec4) ImageSampleExplicitLod 90 95 Lod 96 - 98: 8(fvec4) Load 14(ColorOut) - 99: 8(fvec4) FAdd 98 97 - Store 14(ColorOut) 99 - Line 1 30 0 - 100: 56 Load 58(g_samCube) - 101: 7(float) CompositeExtract 91 0 - 102: 7(float) CompositeExtract 91 1 - 103: 7(float) CompositeExtract 91 2 - 104: 50(fvec3) CompositeConstruct 101 102 103 - 105: 7(float) CompositeExtract 91 3 - 106: 8(fvec4) ImageSampleExplicitLod 100 104 Lod 105 - 107: 8(fvec4) Load 14(ColorOut) - 108: 8(fvec4) FAdd 107 106 - Store 14(ColorOut) 108 - Line 1 32 0 - 113: 8(fvec4) Load 14(ColorOut) - 115: 8(fvec4) CompositeConstruct 114 114 114 114 - 116: 8(fvec4) FDiv 113 115 - 117: 13(ptr) AccessChain 110(psout) 112 - Store 117 116 - Line 1 33 0 - 121: 120(ptr) AccessChain 110(psout) 118 - Store 121 119 - Line 1 35 0 - 122:9(PS_OUTPUT) Load 110(psout) - ReturnValue 122 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.sample.dx9.vert.out b/deps/glslang/Test/baseResults/hlsl.sample.dx9.vert.out deleted file mode 100644 index 4b718cf1..00000000 --- a/deps/glslang/Test/baseResults/hlsl.sample.dx9.vert.out +++ /dev/null @@ -1,261 +0,0 @@ -hlsl.sample.dx9.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:14 Sequence -0:14 move second child to first child ( temp 4-component vector of float) -0:14 'PosOut' ( temp 4-component vector of float) -0:14 Constant: -0:14 0.000000 -0:14 0.000000 -0:14 0.000000 -0:14 0.000000 -0:16 add second child into first child ( temp 4-component vector of float) -0:16 'PosOut' ( temp 4-component vector of float) -0:16 textureLod ( temp 4-component vector of float) -0:16 'g_sam' (layout( binding=0) uniform sampler2D) -0:16 Construct vec2 ( temp 2-component vector of float) -0:16 Constant: -0:16 0.300000 -0:16 0.400000 -0:16 0.000000 -0:16 1.000000 -0:16 direct index ( temp float) -0:16 Constant: -0:16 0.300000 -0:16 0.400000 -0:16 0.000000 -0:16 1.000000 -0:16 Constant: -0:16 3 (const int) -0:17 add second child into first child ( temp 4-component vector of float) -0:17 'PosOut' ( temp 4-component vector of float) -0:17 textureLod ( temp 4-component vector of float) -0:17 'g_sam2D' (layout( binding=1) uniform sampler2D) -0:17 Construct vec2 ( temp 2-component vector of float) -0:17 Constant: -0:17 0.500000 -0:17 0.600000 -0:17 0.000000 -0:17 1.000000 -0:17 direct index ( temp float) -0:17 Constant: -0:17 0.500000 -0:17 0.600000 -0:17 0.000000 -0:17 1.000000 -0:17 Constant: -0:17 3 (const int) -0:19 move second child to first child ( temp 4-component vector of float) -0:19 Pos: direct index for structure ( temp 4-component vector of float) -0:19 'vsout' ( temp structure{ temp 4-component vector of float Pos}) -0:19 Constant: -0:19 0 (const int) -0:19 divide ( temp 4-component vector of float) -0:19 'PosOut' ( temp 4-component vector of float) -0:19 Constant: -0:19 2.000000 -0:21 Branch: Return with expression -0:21 '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_sam' (layout( binding=0) uniform sampler2D) -0:? 'g_sam2D' (layout( binding=1) uniform sampler2D) -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:14 Sequence -0:14 move second child to first child ( temp 4-component vector of float) -0:14 'PosOut' ( temp 4-component vector of float) -0:14 Constant: -0:14 0.000000 -0:14 0.000000 -0:14 0.000000 -0:14 0.000000 -0:16 add second child into first child ( temp 4-component vector of float) -0:16 'PosOut' ( temp 4-component vector of float) -0:16 textureLod ( temp 4-component vector of float) -0:16 'g_sam' (layout( binding=0) uniform sampler2D) -0:16 Construct vec2 ( temp 2-component vector of float) -0:16 Constant: -0:16 0.300000 -0:16 0.400000 -0:16 0.000000 -0:16 1.000000 -0:16 direct index ( temp float) -0:16 Constant: -0:16 0.300000 -0:16 0.400000 -0:16 0.000000 -0:16 1.000000 -0:16 Constant: -0:16 3 (const int) -0:17 add second child into first child ( temp 4-component vector of float) -0:17 'PosOut' ( temp 4-component vector of float) -0:17 textureLod ( temp 4-component vector of float) -0:17 'g_sam2D' (layout( binding=1) uniform sampler2D) -0:17 Construct vec2 ( temp 2-component vector of float) -0:17 Constant: -0:17 0.500000 -0:17 0.600000 -0:17 0.000000 -0:17 1.000000 -0:17 direct index ( temp float) -0:17 Constant: -0:17 0.500000 -0:17 0.600000 -0:17 0.000000 -0:17 1.000000 -0:17 Constant: -0:17 3 (const int) -0:19 move second child to first child ( temp 4-component vector of float) -0:19 Pos: direct index for structure ( temp 4-component vector of float) -0:19 'vsout' ( temp structure{ temp 4-component vector of float Pos}) -0:19 Constant: -0:19 0 (const int) -0:19 divide ( temp 4-component vector of float) -0:19 'PosOut' ( temp 4-component vector of float) -0:19 Constant: -0:19 2.000000 -0:21 Branch: Return with expression -0:21 '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_sam' (layout( binding=0) uniform sampler2D) -0:? 'g_sam2D' (layout( binding=1) uniform sampler2D) -0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 64 - - Capability Shader - 2: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 5 "main" 61 - 1: String "" - Source HLSL 500 1 "// OpModuleProcessed auto-map-locations -// OpModuleProcessed auto-map-bindings -// OpModuleProcessed entry-point main -// OpModuleProcessed client vulkan100 -// OpModuleProcessed target-env vulkan1.0 -// OpModuleProcessed keep-uncalled -// OpModuleProcessed hlsl-offsets -#line 1 -" - Name 5 "main" - Name 9 "VS_OUTPUT" - MemberName 9(VS_OUTPUT) 0 "Pos" - Name 11 "@main(" - Name 14 "PosOut" - Name 20 "g_sam" - Name 36 "g_sam2D" - Name 49 "vsout" - Name 61 "@entryPointOutput.Pos" - Decorate 20(g_sam) DescriptorSet 0 - Decorate 20(g_sam) Binding 0 - Decorate 36(g_sam2D) DescriptorSet 0 - Decorate 36(g_sam2D) Binding 1 - Decorate 61(@entryPointOutput.Pos) BuiltIn Position - 3: TypeVoid - 4: TypeFunction 3 - 7: TypeFloat 32 - 8: TypeVector 7(float) 4 - 9(VS_OUTPUT): TypeStruct 8(fvec4) - 10: TypeFunction 9(VS_OUTPUT) - 13: TypePointer Function 8(fvec4) - 15: 7(float) Constant 0 - 16: 8(fvec4) ConstantComposite 15 15 15 15 - 17: TypeImage 7(float) 2D sampled format:Unknown - 18: TypeSampledImage 17 - 19: TypePointer UniformConstant 18 - 20(g_sam): 19(ptr) Variable UniformConstant - 22: 7(float) Constant 1050253722 - 23: 7(float) Constant 1053609165 - 24: 7(float) Constant 1065353216 - 25: 8(fvec4) ConstantComposite 22 23 15 24 - 26: TypeVector 7(float) 2 - 30: TypeInt 32 0 - 31: 30(int) Constant 3 - 36(g_sam2D): 19(ptr) Variable UniformConstant - 38: 7(float) Constant 1056964608 - 39: 7(float) Constant 1058642330 - 40: 8(fvec4) ConstantComposite 38 39 15 24 - 48: TypePointer Function 9(VS_OUTPUT) - 50: TypeInt 32 1 - 51: 50(int) Constant 0 - 53: 7(float) Constant 1073741824 - 60: TypePointer Output 8(fvec4) -61(@entryPointOutput.Pos): 60(ptr) Variable Output - 5(main): 3 Function None 4 - 6: Label - Line 1 11 0 - 62:9(VS_OUTPUT) FunctionCall 11(@main() - 63: 8(fvec4) CompositeExtract 62 0 - Store 61(@entryPointOutput.Pos) 63 - Return - FunctionEnd - 11(@main():9(VS_OUTPUT) Function None 10 - 12: Label - 14(PosOut): 13(ptr) Variable Function - 49(vsout): 48(ptr) Variable Function - Line 1 14 0 - Store 14(PosOut) 16 - Line 1 16 0 - 21: 18 Load 20(g_sam) - 27: 7(float) CompositeExtract 25 0 - 28: 7(float) CompositeExtract 25 1 - 29: 26(fvec2) CompositeConstruct 27 28 - 32: 7(float) CompositeExtract 25 3 - 33: 8(fvec4) ImageSampleExplicitLod 21 29 Lod 32 - 34: 8(fvec4) Load 14(PosOut) - 35: 8(fvec4) FAdd 34 33 - Store 14(PosOut) 35 - Line 1 17 0 - 37: 18 Load 36(g_sam2D) - 41: 7(float) CompositeExtract 40 0 - 42: 7(float) CompositeExtract 40 1 - 43: 26(fvec2) CompositeConstruct 41 42 - 44: 7(float) CompositeExtract 40 3 - 45: 8(fvec4) ImageSampleExplicitLod 37 43 Lod 44 - 46: 8(fvec4) Load 14(PosOut) - 47: 8(fvec4) FAdd 46 45 - Store 14(PosOut) 47 - Line 1 19 0 - 52: 8(fvec4) Load 14(PosOut) - 54: 8(fvec4) CompositeConstruct 53 53 53 53 - 55: 8(fvec4) FDiv 52 54 - 56: 13(ptr) AccessChain 49(vsout) 51 - Store 56 55 - Line 1 21 0 - 57:9(VS_OUTPUT) Load 49(vsout) - ReturnValue 57 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.sample.offset.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.sample.offset.dx10.frag.out deleted file mode 100644 index e5d204f9..00000000 --- a/deps/glslang/Test/baseResults/hlsl.sample.offset.dx10.frag.out +++ /dev/null @@ -1,614 +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:35 Constant: -0:35 0.100000 -0:35 0.200000 -0:35 Constant: -0:35 1 (const int) -0:35 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 Constant: -0:36 0.300000 -0:36 0.400000 -0:36 Constant: -0:36 1 (const int) -0:36 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 Constant: -0:37 0.500000 -0:37 0.600000 -0:37 Constant: -0:37 1 (const int) -0:37 -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 Constant: -0:39 0.100000 -0:39 0.200000 -0:39 0.300000 -0:39 Constant: -0:39 1 (const int) -0:39 0 (const int) -0:39 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 Constant: -0:40 0.400000 -0:40 0.500000 -0:40 0.600000 -0:40 Constant: -0:40 1 (const int) -0:40 1 (const int) -0:40 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 Constant: -0:41 0.700000 -0:41 0.800000 -0:41 0.900000 -0:41 Constant: -0:41 1 (const int) -0:41 0 (const int) -0:41 -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:35 Constant: -0:35 0.100000 -0:35 0.200000 -0:35 Constant: -0:35 1 (const int) -0:35 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 Constant: -0:36 0.300000 -0:36 0.400000 -0:36 Constant: -0:36 1 (const int) -0:36 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 Constant: -0:37 0.500000 -0:37 0.600000 -0:37 Constant: -0:37 1 (const int) -0:37 -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 Constant: -0:39 0.100000 -0:39 0.200000 -0:39 0.300000 -0:39 Constant: -0:39 1 (const int) -0:39 0 (const int) -0:39 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 Constant: -0:40 0.400000 -0:40 0.500000 -0:40 0.600000 -0:40 Constant: -0:40 1 (const int) -0:40 1 (const int) -0:40 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 Constant: -0:41 0.700000 -0:41 0.800000 -0:41 0.900000 -0:41 Constant: -0:41 1 (const int) -0:41 0 (const int) -0:41 -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): 8000a -// 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 33(g_tTex1di4) Binding 2 - Decorate 46(g_tTex1du4) DescriptorSet 0 - Decorate 46(g_tTex1du4) Binding 3 - Decorate 56(g_tTex2df4) DescriptorSet 0 - Decorate 56(g_tTex2df4) Binding 4 - Decorate 70(g_tTex2di4) DescriptorSet 0 - Decorate 70(g_tTex2di4) Binding 5 - Decorate 82(g_tTex2du4) DescriptorSet 0 - Decorate 82(g_tTex2du4) Binding 6 - Decorate 96(g_tTex3df4) DescriptorSet 0 - Decorate 96(g_tTex3df4) Binding 7 - Decorate 109(g_tTex3di4) DescriptorSet 0 - Decorate 109(g_tTex3di4) Binding 8 - Decorate 120(g_tTex3du4) DescriptorSet 0 - Decorate 120(g_tTex3du4) Binding 9 - 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 154(g_tTexcdf4) Binding 0 - Decorate 157(g_tTexcdi4) DescriptorSet 0 - Decorate 157(g_tTexcdi4) Binding 0 - Decorate 160(g_tTexcdu4) DescriptorSet 0 - Decorate 160(g_tTexcdu4) 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 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/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out deleted file mode 100644 index 5b14c657..00000000 --- a/deps/glslang/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out +++ /dev/null @@ -1,457 +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:23 Constant: -0:23 0.100000 -0:23 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 Constant: -0:24 0.200000 -0:24 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 Constant: -0:25 0.300000 -0:25 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 Constant: -0:27 0.100000 -0:27 0.200000 -0:27 0.300000 -0:27 Constant: -0:27 0 (const int) -0:27 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 Constant: -0:28 0.300000 -0:28 0.400000 -0:28 0.500000 -0:28 Constant: -0:28 0 (const int) -0:28 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 Constant: -0:29 0.500000 -0:29 0.600000 -0:29 0.700000 -0:29 Constant: -0:29 0 (const int) -0:29 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:23 Constant: -0:23 0.100000 -0:23 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 Constant: -0:24 0.200000 -0:24 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 Constant: -0:25 0.300000 -0:25 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 Constant: -0:27 0.100000 -0:27 0.200000 -0:27 0.300000 -0:27 Constant: -0:27 0 (const int) -0:27 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 Constant: -0:28 0.300000 -0:28 0.400000 -0:28 0.500000 -0:28 Constant: -0:28 0 (const int) -0:28 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 Constant: -0:29 0.500000 -0:29 0.600000 -0:29 0.700000 -0:29 Constant: -0:29 0 (const int) -0:29 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): 8000a -// 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 36(g_tTex1di4) Binding 2 - Decorate 51(g_tTex1du4) DescriptorSet 0 - Decorate 51(g_tTex1du4) Binding 3 - Decorate 63(g_tTex2df4) DescriptorSet 0 - Decorate 63(g_tTex2df4) Binding 4 - Decorate 76(g_tTex2di4) DescriptorSet 0 - Decorate 76(g_tTex2di4) Binding 5 - Decorate 87(g_tTex2du4) DescriptorSet 0 - Decorate 87(g_tTex2du4) Binding 6 - 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/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out deleted file mode 100644 index 8754a038..00000000 --- a/deps/glslang/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out +++ /dev/null @@ -1,270 +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): 8000a -// 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 16(g_tTex1df1) Binding 1 - Decorate 20(g_sSamp) DescriptorSet 0 - Decorate 20(g_sSamp) Binding 0 - Decorate 30(g_tTex1df2) DescriptorSet 0 - Decorate 30(g_tTex1df2) Binding 2 - Decorate 42(g_tTex1df3) DescriptorSet 0 - Decorate 42(g_tTex1df3) Binding 3 - Decorate 53(g_tTex1df4) DescriptorSet 0 - Decorate 53(g_tTex1df4) Binding 4 - 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/Test/baseResults/hlsl.samplebias.array.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.samplebias.array.dx10.frag.out deleted file mode 100644 index e177d77b..00000000 --- a/deps/glslang/Test/baseResults/hlsl.samplebias.array.dx10.frag.out +++ /dev/null @@ -1,585 +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:27 Constant: -0:27 0.100000 -0:27 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 Constant: -0:28 0.200000 -0:28 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 Constant: -0:29 0.300000 -0:29 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 Constant: -0:31 0.100000 -0:31 0.200000 -0:31 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:32 Constant: -0:32 0.300000 -0:32 0.400000 -0:32 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:33 Constant: -0:33 0.500000 -0:33 0.600000 -0:33 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:35 Constant: -0:35 0.100000 -0:35 0.200000 -0:35 0.300000 -0:35 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:36 Constant: -0:36 0.400000 -0:36 0.500000 -0:36 0.600000 -0:36 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:37 Constant: -0:37 0.700000 -0:37 0.800000 -0:37 0.900000 -0:37 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:27 Constant: -0:27 0.100000 -0:27 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 Constant: -0:28 0.200000 -0:28 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 Constant: -0:29 0.300000 -0:29 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 Constant: -0:31 0.100000 -0:31 0.200000 -0:31 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:32 Constant: -0:32 0.300000 -0:32 0.400000 -0:32 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:33 Constant: -0:33 0.500000 -0:33 0.600000 -0:33 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:35 Constant: -0:35 0.100000 -0:35 0.200000 -0:35 0.300000 -0:35 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:36 Constant: -0:36 0.400000 -0:36 0.500000 -0:36 0.600000 -0:36 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:37 Constant: -0:37 0.700000 -0:37 0.800000 -0:37 0.900000 -0:37 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): 8000a -// 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 36(g_tTex1di4) Binding 2 - Decorate 50(g_tTex1du4) DescriptorSet 0 - Decorate 50(g_tTex1du4) Binding 3 - Decorate 61(g_tTex2df4) DescriptorSet 0 - Decorate 61(g_tTex2df4) Binding 4 - Decorate 72(g_tTex2di4) DescriptorSet 0 - Decorate 72(g_tTex2di4) Binding 5 - Decorate 82(g_tTex2du4) DescriptorSet 0 - Decorate 82(g_tTex2du4) Binding 6 - Decorate 94(g_tTexcdf4) DescriptorSet 0 - Decorate 94(g_tTexcdf4) Binding 7 - Decorate 104(g_tTexcdi4) DescriptorSet 0 - Decorate 104(g_tTexcdi4) Binding 8 - Decorate 114(g_tTexcdu4) DescriptorSet 0 - Decorate 114(g_tTexcdu4) Binding 9 - 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/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out deleted file mode 100644 index 2f15b42b..00000000 --- a/deps/glslang/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out +++ /dev/null @@ -1,689 +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:35 Constant: -0:35 0.100000 -0:35 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 Constant: -0:36 0.300000 -0:36 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 Constant: -0:37 0.500000 -0:37 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 Constant: -0:39 0.100000 -0:39 0.200000 -0:39 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:40 Constant: -0:40 0.400000 -0:40 0.500000 -0:40 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:41 Constant: -0:41 0.700000 -0:41 0.800000 -0:41 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:43 Constant: -0:43 0.100000 -0:43 0.200000 -0:43 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:44 Constant: -0:44 0.400000 -0:44 0.500000 -0:44 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:45 Constant: -0:45 0.700000 -0:45 0.800000 -0:45 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:35 Constant: -0:35 0.100000 -0:35 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 Constant: -0:36 0.300000 -0:36 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 Constant: -0:37 0.500000 -0:37 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 Constant: -0:39 0.100000 -0:39 0.200000 -0:39 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:40 Constant: -0:40 0.400000 -0:40 0.500000 -0:40 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:41 Constant: -0:41 0.700000 -0:41 0.800000 -0:41 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:43 Constant: -0:43 0.100000 -0:43 0.200000 -0:43 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:44 Constant: -0:44 0.400000 -0:44 0.500000 -0:44 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:45 Constant: -0:45 0.700000 -0:45 0.800000 -0:45 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): 8000a -// 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 33(g_tTex1di4) Binding 2 - Decorate 46(g_tTex1du4) DescriptorSet 0 - Decorate 46(g_tTex1du4) Binding 3 - Decorate 56(g_tTex2df4) DescriptorSet 0 - Decorate 56(g_tTex2df4) Binding 4 - Decorate 67(g_tTex2di4) DescriptorSet 0 - Decorate 67(g_tTex2di4) Binding 5 - Decorate 78(g_tTex2du4) DescriptorSet 0 - Decorate 78(g_tTex2du4) Binding 6 - Decorate 89(g_tTex3df4) DescriptorSet 0 - Decorate 89(g_tTex3df4) Binding 7 - Decorate 100(g_tTex3di4) DescriptorSet 0 - Decorate 100(g_tTex3di4) Binding 8 - Decorate 110(g_tTex3du4) DescriptorSet 0 - Decorate 110(g_tTex3du4) Binding 9 - Decorate 123(g_tTexcdf4) DescriptorSet 0 - Decorate 123(g_tTexcdf4) Binding 10 - Decorate 132(g_tTexcdi4) DescriptorSet 0 - Decorate 132(g_tTexcdi4) Binding 11 - Decorate 141(g_tTexcdu4) DescriptorSet 0 - Decorate 141(g_tTexcdu4) Binding 12 - 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/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out deleted file mode 100644 index 291f6248..00000000 --- a/deps/glslang/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out +++ /dev/null @@ -1,650 +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 1 (const int) -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 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: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 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: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 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 Constant: -0:35 0.100000 -0:35 0.200000 -0:35 Constant: -0:35 1 (const int) -0:35 0 (const int) -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 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 Constant: -0:36 0.300000 -0:36 0.400000 -0:36 Constant: -0:36 1 (const int) -0:36 1 (const int) -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 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 Constant: -0:37 0.500000 -0:37 0.600000 -0:37 Constant: -0:37 1 (const int) -0:37 -1 (const int) -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 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 Constant: -0:39 0.100000 -0:39 0.200000 -0:39 0.300000 -0:39 Constant: -0:39 1 (const int) -0:39 0 (const int) -0:39 1 (const int) -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 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 Constant: -0:40 0.400000 -0:40 0.500000 -0:40 0.600000 -0:40 Constant: -0:40 1 (const int) -0:40 1 (const int) -0:40 1 (const int) -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 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 Constant: -0:41 0.700000 -0:41 0.800000 -0:41 0.900000 -0:41 Constant: -0:41 1 (const int) -0:41 0 (const int) -0:41 -1 (const int) -0:41 Constant: -0:41 0.500000 -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: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 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: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 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: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 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 Constant: -0:35 0.100000 -0:35 0.200000 -0:35 Constant: -0:35 1 (const int) -0:35 0 (const int) -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 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 Constant: -0:36 0.300000 -0:36 0.400000 -0:36 Constant: -0:36 1 (const int) -0:36 1 (const int) -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 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 Constant: -0:37 0.500000 -0:37 0.600000 -0:37 Constant: -0:37 1 (const int) -0:37 -1 (const int) -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 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 Constant: -0:39 0.100000 -0:39 0.200000 -0:39 0.300000 -0:39 Constant: -0:39 1 (const int) -0:39 0 (const int) -0:39 1 (const int) -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 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 Constant: -0:40 0.400000 -0:40 0.500000 -0:40 0.600000 -0:40 Constant: -0:40 1 (const int) -0:40 1 (const int) -0:40 1 (const int) -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 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 Constant: -0:41 0.700000 -0:41 0.800000 -0:41 0.900000 -0:41 Constant: -0:41 1 (const int) -0:41 0 (const int) -0:41 -1 (const int) -0:41 Constant: -0:41 0.500000 -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): 8000a -// 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 34(g_tTex1di4) Binding 2 - Decorate 47(g_tTex1du4) DescriptorSet 0 - Decorate 47(g_tTex1du4) Binding 3 - Decorate 57(g_tTex2df4) DescriptorSet 0 - Decorate 57(g_tTex2df4) Binding 4 - Decorate 71(g_tTex2di4) DescriptorSet 0 - Decorate 71(g_tTex2di4) Binding 5 - Decorate 83(g_tTex2du4) DescriptorSet 0 - Decorate 83(g_tTex2du4) Binding 6 - Decorate 96(g_tTex3df4) DescriptorSet 0 - Decorate 96(g_tTex3df4) Binding 7 - Decorate 109(g_tTex3di4) DescriptorSet 0 - Decorate 109(g_tTex3di4) Binding 8 - Decorate 120(g_tTex3du4) DescriptorSet 0 - Decorate 120(g_tTex3du4) Binding 9 - 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 154(g_tTexcdf4) Binding 0 - Decorate 157(g_tTexcdi4) DescriptorSet 0 - Decorate 157(g_tTexcdi4) Binding 0 - Decorate 160(g_tTexcdu4) DescriptorSet 0 - Decorate 160(g_tTexcdu4) 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 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 - 27: 6(float) Constant 1056964608 - 29: TypeVector 25(int) 4 - 30: TypePointer Function 29(ivec4) - 32: TypeImage 25(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 25(int) 2 - 65: 25(int) Constant 0 - 66: 64(ivec2) ConstantComposite 26 65 - 69: TypeImage 25(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 26 26 - 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 27 88 - 90: 25(int) Constant 4294967295 - 91: 64(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 39 52 - 103: TypeVector 25(int) 3 - 104: 103(ivec3) ConstantComposite 26 65 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 76 27 88 - 115: 103(ivec3) ConstantComposite 26 26 26 - 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 26 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 25(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) 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 - 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 26 - 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 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) ImageSampleImplicitLod 51 52 Bias ConstOffset 27 26 - 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 27 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) ImageSampleImplicitLod 75 77 Bias ConstOffset 27 78 - 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 27 91 - 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 27 104 - 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 27 115 - 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 27 129 - Store 117(txval32) 130 - 135: 12(ptr) AccessChain 132(psout) 65 - 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/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out deleted file mode 100644 index a5bb6139..00000000 --- a/deps/glslang/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out +++ /dev/null @@ -1,481 +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:23 Constant: -0:23 0.100000 -0:23 0.200000 -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 0.500000 -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 Constant: -0:24 0.200000 -0:24 0.300000 -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 0.500000 -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 Constant: -0:25 0.300000 -0:25 0.400000 -0:25 Constant: -0:25 2 (const int) -0:25 Constant: -0:25 0.500000 -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 Constant: -0:27 0.100000 -0:27 0.200000 -0:27 0.300000 -0:27 Constant: -0:27 0 (const int) -0:27 0 (const int) -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 '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 Constant: -0:28 0.300000 -0:28 0.400000 -0:28 0.500000 -0:28 Constant: -0:28 0 (const int) -0:28 0 (const int) -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 '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 Constant: -0:29 0.500000 -0:29 0.600000 -0:29 0.700000 -0:29 Constant: -0:29 0 (const int) -0:29 1 (const int) -0:29 Constant: -0:29 0.500000 -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:23 Constant: -0:23 0.100000 -0:23 0.200000 -0:23 Constant: -0:23 0 (const int) -0:23 Constant: -0:23 0.500000 -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 Constant: -0:24 0.200000 -0:24 0.300000 -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 0.500000 -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 Constant: -0:25 0.300000 -0:25 0.400000 -0:25 Constant: -0:25 2 (const int) -0:25 Constant: -0:25 0.500000 -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 Constant: -0:27 0.100000 -0:27 0.200000 -0:27 0.300000 -0:27 Constant: -0:27 0 (const int) -0:27 0 (const int) -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 '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 Constant: -0:28 0.300000 -0:28 0.400000 -0:28 0.500000 -0:28 Constant: -0:28 0 (const int) -0:28 0 (const int) -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 '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 Constant: -0:29 0.500000 -0:29 0.600000 -0:29 0.700000 -0:29 Constant: -0:29 0 (const int) -0:29 1 (const int) -0:29 Constant: -0:29 0.500000 -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): 8000a -// 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 37(g_tTex1di4) Binding 2 - Decorate 52(g_tTex1du4) DescriptorSet 0 - Decorate 52(g_tTex1du4) Binding 3 - Decorate 64(g_tTex2df4) DescriptorSet 0 - Decorate 64(g_tTex2df4) Binding 4 - Decorate 77(g_tTex2di4) DescriptorSet 0 - Decorate 77(g_tTex2di4) Binding 5 - Decorate 87(g_tTex2du4) DescriptorSet 0 - Decorate 87(g_tTex2du4) Binding 6 - 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 - 30: 6(float) Constant 1056964608 - 32: TypeVector 28(int) 4 - 33: TypePointer Function 32(ivec4) - 35: TypeImage 28(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: 28(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: 28(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 28(int) 2 - 72: 71(ivec2) ConstantComposite 29 29 - 75: TypeImage 28(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 30 - 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 30 92 93 - 95: 71(ivec2) ConstantComposite 29 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) 29 - 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 29 - 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 30 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) ImageSampleImplicitLod 56 58 Bias ConstOffset 30 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) ImageSampleImplicitLod 68 70 Bias ConstOffset 30 72 - 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 30 72 - 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 30 95 - Store 84(txval22) 96 - 101: 12(ptr) AccessChain 98(psout) 29 - 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/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out deleted file mode 100644 index 0ab61eba..00000000 --- a/deps/glslang/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out +++ /dev/null @@ -1,722 +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:42 Constant: -0:42 0.100000 -0:42 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:43 Constant: -0:43 0.100000 -0:43 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:44 Constant: -0:44 0.100000 -0:44 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:47 Constant: -0:47 0.100000 -0:47 0.200000 -0:47 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:48 Constant: -0:48 0.100000 -0:48 0.200000 -0:48 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:49 Constant: -0:49 0.100000 -0:49 0.200000 -0:49 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:52 Constant: -0:52 0.100000 -0:52 0.200000 -0:52 0.300000 -0:52 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:53 Constant: -0:53 0.100000 -0:53 0.200000 -0:53 0.300000 -0:53 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:54 Constant: -0:54 0.100000 -0:54 0.200000 -0:54 0.300000 -0:54 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:42 Constant: -0:42 0.100000 -0:42 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:43 Constant: -0:43 0.100000 -0:43 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:44 Constant: -0:44 0.100000 -0:44 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:47 Constant: -0:47 0.100000 -0:47 0.200000 -0:47 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:48 Constant: -0:48 0.100000 -0:48 0.200000 -0:48 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:49 Constant: -0:49 0.100000 -0:49 0.200000 -0:49 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:52 Constant: -0:52 0.100000 -0:52 0.200000 -0:52 0.300000 -0:52 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:53 Constant: -0:53 0.100000 -0:53 0.200000 -0:53 0.300000 -0:53 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:54 Constant: -0:54 0.100000 -0:54 0.200000 -0:54 0.300000 -0:54 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) - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// 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 16(g_tTex1df4a) Binding 1 - Decorate 20(g_sSamp) DescriptorSet 0 - Decorate 20(g_sSamp) Binding 0 - Decorate 39(g_tTex1di4a) DescriptorSet 0 - Decorate 39(g_tTex1di4a) Binding 2 - Decorate 53(g_tTex1du4a) DescriptorSet 0 - Decorate 53(g_tTex1du4a) Binding 3 - Decorate 66(g_tTex2df4a) DescriptorSet 0 - Decorate 66(g_tTex2df4a) Binding 4 - Decorate 82(g_tTex2di4a) DescriptorSet 0 - Decorate 82(g_tTex2di4a) Binding 5 - Decorate 96(g_tTex2du4a) DescriptorSet 0 - Decorate 96(g_tTex2du4a) Binding 6 - Decorate 110(g_tTexcdf4a) DescriptorSet 0 - Decorate 110(g_tTexcdf4a) Binding 7 - Decorate 126(g_tTexcdi4a) DescriptorSet 0 - Decorate 126(g_tTexcdi4a) Binding 8 - Decorate 140(g_tTexcdu4a) DescriptorSet 0 - Decorate 140(g_tTexcdu4a) Binding 9 - 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 178(g_tTex1di4) Binding 0 - Decorate 181(g_tTex1du4) DescriptorSet 0 - Decorate 181(g_tTex1du4) Binding 0 - Decorate 184(g_tTex2df4) DescriptorSet 0 - Decorate 184(g_tTex2df4) Binding 0 - Decorate 187(g_tTex2di4) DescriptorSet 0 - Decorate 187(g_tTex2di4) Binding 0 - Decorate 190(g_tTex2du4) DescriptorSet 0 - Decorate 190(g_tTex2du4) Binding 0 - Decorate 193(g_tTex3df4) DescriptorSet 0 - Decorate 193(g_tTex3df4) Binding 0 - Decorate 196(g_tTex3di4) DescriptorSet 0 - Decorate 196(g_tTex3di4) Binding 0 - Decorate 199(g_tTex3du4) DescriptorSet 0 - Decorate 199(g_tTex3du4) Binding 0 - Decorate 202(g_tTexcdf4) DescriptorSet 0 - Decorate 202(g_tTexcdf4) Binding 0 - Decorate 205(g_tTexcdi4) DescriptorSet 0 - Decorate 205(g_tTexcdi4) Binding 0 - Decorate 208(g_tTexcdu4) DescriptorSet 0 - Decorate 208(g_tTexcdu4) 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 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/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out deleted file mode 100644 index c178c571..00000000 --- a/deps/glslang/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out +++ /dev/null @@ -1,693 +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:47 Constant: -0:47 0.100000 -0:47 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:48 Constant: -0:48 0.100000 -0:48 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:49 Constant: -0:49 0.100000 -0:49 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:53 Constant: -0:53 0.100000 -0:53 0.200000 -0:53 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:54 Constant: -0:54 0.100000 -0:54 0.200000 -0:54 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:55 Constant: -0:55 0.100000 -0:55 0.200000 -0:55 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:47 Constant: -0:47 0.100000 -0:47 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:48 Constant: -0:48 0.100000 -0:48 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:49 Constant: -0:49 0.100000 -0:49 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:53 Constant: -0:53 0.100000 -0:53 0.200000 -0:53 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:54 Constant: -0:54 0.100000 -0:54 0.200000 -0:54 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:55 Constant: -0:55 0.100000 -0:55 0.200000 -0:55 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) - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// 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 34(g_tTex1di4) Binding 1 - Decorate 46(g_tTex1du4) DescriptorSet 0 - Decorate 46(g_tTex1du4) Binding 2 - Decorate 57(g_tTex2df4) DescriptorSet 0 - Decorate 57(g_tTex2df4) Binding 3 - Decorate 73(g_tTex2di4) DescriptorSet 0 - Decorate 73(g_tTex2di4) Binding 4 - Decorate 86(g_tTex2du4) DescriptorSet 0 - Decorate 86(g_tTex2du4) Binding 5 - Decorate 99(g_tTexcdf4) DescriptorSet 0 - Decorate 99(g_tTexcdf4) Binding 6 - Decorate 115(g_tTexcdi4) DescriptorSet 0 - Decorate 115(g_tTexcdi4) Binding 7 - Decorate 129(g_tTexcdu4) DescriptorSet 0 - Decorate 129(g_tTexcdu4) Binding 8 - Decorate 155(@entryPointOutput.Color) Location 0 - Decorate 159(@entryPointOutput.Depth) BuiltIn FragDepth - Decorate 164(g_tTex3df4) DescriptorSet 0 - Decorate 164(g_tTex3df4) Binding 0 - Decorate 167(g_tTex3di4) DescriptorSet 0 - Decorate 167(g_tTex3di4) Binding 0 - Decorate 170(g_tTex3du4) DescriptorSet 0 - Decorate 170(g_tTex3du4) Binding 0 - Decorate 173(g_tTex1df4a) DescriptorSet 0 - Decorate 173(g_tTex1df4a) Binding 0 - Decorate 176(g_tTex1di4a) DescriptorSet 0 - Decorate 176(g_tTex1di4a) Binding 0 - Decorate 179(g_tTex1du4a) DescriptorSet 0 - Decorate 179(g_tTex1du4a) Binding 0 - Decorate 182(g_tTex2df4a) DescriptorSet 0 - Decorate 182(g_tTex2df4a) Binding 0 - Decorate 185(g_tTex2di4a) DescriptorSet 0 - Decorate 185(g_tTex2di4a) Binding 0 - Decorate 188(g_tTex2du4a) DescriptorSet 0 - Decorate 188(g_tTex2du4a) Binding 0 - Decorate 191(g_tTexcdf4a) DescriptorSet 0 - Decorate 191(g_tTexcdf4a) Binding 0 - Decorate 194(g_tTexcdi4a) DescriptorSet 0 - Decorate 194(g_tTexcdi4a) Binding 0 - Decorate 197(g_tTexcdu4a) DescriptorSet 0 - Decorate 197(g_tTexcdu4a) 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 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/Test/baseResults/hlsl.samplecmp.dualmode.frag.out b/deps/glslang/Test/baseResults/hlsl.samplecmp.dualmode.frag.out deleted file mode 100644 index 6859f6d9..00000000 --- a/deps/glslang/Test/baseResults/hlsl.samplecmp.dualmode.frag.out +++ /dev/null @@ -1,157 +0,0 @@ -hlsl.samplecmp.dualmode.frag -WARNING: AST will form illegal SPIR-V; need to transform to legalize -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:7 Function Definition: @main( ( temp 4-component vector of float) -0:7 Function Parameters: -0:? Sequence -0:10 texture ( temp float) -0:10 Construct combined texture-sampler ( temp sampler1DShadow) -0:10 'g_tTex' (layout( binding=3) uniform texture1DShadow) -0:10 'g_sSampCmp' (layout( binding=1) uniform sampler) -0:10 Construct vec2 ( temp 2-component vector of float) -0:10 Constant: -0:10 0.100000 -0:10 Constant: -0:10 0.750000 -0:11 texture ( temp 4-component vector of float) -0:11 Construct combined texture-sampler ( temp sampler1D) -0:11 'g_tTex' (layout( binding=3) uniform texture1D) -0:11 'g_sSamp' (layout( binding=0) uniform sampler) -0:11 Constant: -0:11 0.100000 -0:13 Branch: Return with expression -0:13 Constant: -0:13 0.000000 -0:13 0.000000 -0:13 0.000000 -0:13 0.000000 -0:7 Function Definition: main( ( temp void) -0:7 Function Parameters: -0:? Sequence -0:7 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:7 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'g_sSamp' (layout( binding=0) uniform sampler) -0:? 'g_sSampCmp' (layout( binding=1) uniform sampler) -0:? 'g_tTex' (layout( binding=3) uniform texture1DShadow) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'g_tTex' (layout( binding=3) uniform texture1D) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:7 Function Definition: @main( ( temp 4-component vector of float) -0:7 Function Parameters: -0:? Sequence -0:10 texture ( temp float) -0:10 Construct combined texture-sampler ( temp sampler1DShadow) -0:10 'g_tTex' (layout( binding=3) uniform texture1DShadow) -0:10 'g_sSampCmp' (layout( binding=1) uniform sampler) -0:10 Construct vec2 ( temp 2-component vector of float) -0:10 Constant: -0:10 0.100000 -0:10 Constant: -0:10 0.750000 -0:11 texture ( temp 4-component vector of float) -0:11 Construct combined texture-sampler ( temp sampler1D) -0:11 'g_tTex' (layout( binding=3) uniform texture1D) -0:11 'g_sSamp' (layout( binding=0) uniform sampler) -0:11 Constant: -0:11 0.100000 -0:13 Branch: Return with expression -0:13 Constant: -0:13 0.000000 -0:13 0.000000 -0:13 0.000000 -0:13 0.000000 -0:7 Function Definition: main( ( temp void) -0:7 Function Parameters: -0:? Sequence -0:7 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:7 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'g_sSamp' (layout( binding=0) uniform sampler) -0:? 'g_sSampCmp' (layout( binding=1) uniform sampler) -0:? 'g_tTex' (layout( binding=3) uniform texture1DShadow) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'g_tTex' (layout( binding=3) uniform texture1D) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 43 - - Capability Shader - Capability Sampled1D - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 41 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 9 "@main(" - Name 13 "g_tTex" - Name 17 "g_sSampCmp" - Name 29 "g_tTex" - Name 31 "g_sSamp" - Name 41 "@entryPointOutput" - Decorate 13(g_tTex) DescriptorSet 0 - Decorate 13(g_tTex) Binding 3 - Decorate 17(g_sSampCmp) DescriptorSet 0 - Decorate 17(g_sSampCmp) Binding 1 - Decorate 29(g_tTex) DescriptorSet 0 - Decorate 29(g_tTex) Binding 3 - Decorate 31(g_sSamp) DescriptorSet 0 - Decorate 31(g_sSamp) Binding 0 - Decorate 41(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 11: TypeImage 6(float) 1D depth sampled format:Unknown - 12: TypePointer UniformConstant 11 - 13(g_tTex): 12(ptr) Variable UniformConstant - 15: TypeSampler - 16: TypePointer UniformConstant 15 - 17(g_sSampCmp): 16(ptr) Variable UniformConstant - 19: TypeSampledImage 11 - 21: 6(float) Constant 1036831949 - 22: 6(float) Constant 1061158912 - 23: TypeVector 6(float) 2 - 27: TypeImage 6(float) 1D sampled format:Unknown - 28: TypePointer UniformConstant 27 - 29(g_tTex): 28(ptr) Variable UniformConstant - 31(g_sSamp): 16(ptr) Variable UniformConstant - 33: TypeSampledImage 27 - 36: 6(float) Constant 0 - 37: 7(fvec4) ConstantComposite 36 36 36 36 - 40: TypePointer Output 7(fvec4) -41(@entryPointOutput): 40(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 42: 7(fvec4) FunctionCall 9(@main() - Store 41(@entryPointOutput) 42 - Return - FunctionEnd - 9(@main(): 7(fvec4) Function None 8 - 10: Label - 14: 11 Load 13(g_tTex) - 18: 15 Load 17(g_sSampCmp) - 20: 19 SampledImage 14 18 - 24: 23(fvec2) CompositeConstruct 21 22 - 25: 6(float) CompositeExtract 24 1 - 26: 6(float) ImageSampleDrefImplicitLod 20 24 25 - 30: 27 Load 29(g_tTex) - 32: 15 Load 31(g_sSamp) - 34: 33 SampledImage 30 32 - 35: 7(fvec4) ImageSampleImplicitLod 34 21 - ReturnValue 37 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.samplecmp.negative.frag.out b/deps/glslang/Test/baseResults/hlsl.samplecmp.negative.frag.out deleted file mode 100644 index 37a324be..00000000 --- a/deps/glslang/Test/baseResults/hlsl.samplecmp.negative.frag.out +++ /dev/null @@ -1,98 +0,0 @@ -hlsl.samplecmp.negative.frag -ERROR: 0:10: '' : expected: SamplerComparisonState -ERROR: 1 compilation errors. No code generated. - - -Shader version: 500 -gl_FragCoord origin is upper left -ERROR: node is still EOpNull! -0:8 Function Definition: @main( ( temp 4-component vector of float) -0:8 Function Parameters: -0:? Sequence -0:9 texture ( temp float) -0:9 Construct combined texture-sampler ( temp sampler2DShadow) -0:9 'g_shadowTex' ( uniform texture2DShadow) -0:9 'g_shadowSamplerComp' ( uniform sampler) -0:9 Construct vec3 ( temp 3-component vector of float) -0:9 Constant: -0:9 0.000000 -0:9 0.000000 -0:9 Constant: -0:9 0.000000 -0:10 ERROR: Bad aggregation op - ( temp float) -0:10 'g_nonShadowTex' ( uniform texture2D) -0:10 'g_shadowSampler' ( uniform sampler) -0:10 Constant: -0:10 0.000000 -0:10 0.000000 -0:10 Constant: -0:10 0.000000 -0:12 Branch: Return with expression -0:12 Constant: -0:12 0.000000 -0:12 0.000000 -0:12 0.000000 -0:12 0.000000 -0:8 Function Definition: main( ( temp void) -0:8 Function Parameters: -0:? Sequence -0:8 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:8 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'g_nonShadowTex' ( uniform texture2D) -0:? 'g_shadowTex' ( uniform texture2DShadow) -0:? 'g_shadowSampler' ( uniform sampler) -0:? 'g_shadowSamplerComp' ( uniform sampler) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -ERROR: node is still EOpNull! -0:8 Function Definition: @main( ( temp 4-component vector of float) -0:8 Function Parameters: -0:? Sequence -0:9 texture ( temp float) -0:9 Construct combined texture-sampler ( temp sampler2DShadow) -0:9 'g_shadowTex' ( uniform texture2DShadow) -0:9 'g_shadowSamplerComp' ( uniform sampler) -0:9 Construct vec3 ( temp 3-component vector of float) -0:9 Constant: -0:9 0.000000 -0:9 0.000000 -0:9 Constant: -0:9 0.000000 -0:10 ERROR: Bad aggregation op - ( temp float) -0:10 'g_nonShadowTex' ( uniform texture2D) -0:10 'g_shadowSampler' ( uniform sampler) -0:10 Constant: -0:10 0.000000 -0:10 0.000000 -0:10 Constant: -0:10 0.000000 -0:12 Branch: Return with expression -0:12 Constant: -0:12 0.000000 -0:12 0.000000 -0:12 0.000000 -0:12 0.000000 -0:8 Function Definition: main( ( temp void) -0:8 Function Parameters: -0:? Sequence -0:8 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:8 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'g_nonShadowTex' ( uniform texture2D) -0:? 'g_shadowTex' ( uniform texture2DShadow) -0:? 'g_shadowSampler' ( uniform sampler) -0:? 'g_shadowSamplerComp' ( uniform sampler) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/hlsl.samplecmp.negative2.frag.out b/deps/glslang/Test/baseResults/hlsl.samplecmp.negative2.frag.out deleted file mode 100644 index 893a6d91..00000000 --- a/deps/glslang/Test/baseResults/hlsl.samplecmp.negative2.frag.out +++ /dev/null @@ -1,80 +0,0 @@ -hlsl.samplecmp.negative2.frag -ERROR: 0:7: '' : expected: SamplerComparisonState -ERROR: 1 compilation errors. No code generated. - - -Shader version: 500 -gl_FragCoord origin is upper left -ERROR: node is still EOpNull! -0:6 Function Definition: @main( ( temp 4-component vector of float) -0:6 Function Parameters: -0:? Sequence -0:7 ERROR: Bad aggregation op - ( temp 4-component vector of float) -0:7 'g_shadowTex' ( uniform texture2D) -0:7 'g_shadowSampler' ( uniform sampler) -0:7 Constant: -0:7 0.000000 -0:7 0.000000 -0:7 Constant: -0:7 0.000000 -0:7 Constant: -0:7 0 (const int) -0:7 0 (const int) -0:9 Branch: Return with expression -0:9 Constant: -0:9 0.000000 -0:9 0.000000 -0:9 0.000000 -0:9 0.000000 -0:6 Function Definition: main( ( temp void) -0:6 Function Parameters: -0:? Sequence -0:6 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:6 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'g_shadowTex' ( uniform texture2D) -0:? 'g_shadowSampler' ( uniform sampler) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -ERROR: node is still EOpNull! -0:6 Function Definition: @main( ( temp 4-component vector of float) -0:6 Function Parameters: -0:? Sequence -0:7 ERROR: Bad aggregation op - ( temp 4-component vector of float) -0:7 'g_shadowTex' ( uniform texture2D) -0:7 'g_shadowSampler' ( uniform sampler) -0:7 Constant: -0:7 0.000000 -0:7 0.000000 -0:7 Constant: -0:7 0.000000 -0:7 Constant: -0:7 0 (const int) -0:7 0 (const int) -0:9 Branch: Return with expression -0:9 Constant: -0:9 0.000000 -0:9 0.000000 -0:9 0.000000 -0:9 0.000000 -0:6 Function Definition: main( ( temp void) -0:6 Function Parameters: -0:? Sequence -0:6 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:6 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'g_shadowTex' ( uniform texture2D) -0:? 'g_shadowSampler' ( uniform sampler) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out deleted file mode 100644 index 1e50d7bb..00000000 --- a/deps/glslang/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out +++ /dev/null @@ -1,602 +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:47 Constant: -0:47 0.100000 -0:47 0.200000 -0:47 Constant: -0:47 0.750000 -0:47 Constant: -0:47 2 (const int) -0:47 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:48 Constant: -0:48 0.100000 -0:48 0.200000 -0:48 Constant: -0:48 0.750000 -0:48 Constant: -0:48 2 (const int) -0:48 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:49 Constant: -0:49 0.100000 -0:49 0.200000 -0:49 Constant: -0:49 0.750000 -0:49 Constant: -0:49 2 (const int) -0:49 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:47 Constant: -0:47 0.100000 -0:47 0.200000 -0:47 Constant: -0:47 0.750000 -0:47 Constant: -0:47 2 (const int) -0:47 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:48 Constant: -0:48 0.100000 -0:48 0.200000 -0:48 Constant: -0:48 0.750000 -0:48 Constant: -0:48 2 (const int) -0:48 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:49 Constant: -0:49 0.100000 -0:49 0.200000 -0:49 Constant: -0:49 0.750000 -0:49 Constant: -0:49 2 (const int) -0:49 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) - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// 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 35(g_tTex1di4) Binding 1 - Decorate 47(g_tTex1du4) DescriptorSet 0 - Decorate 47(g_tTex1du4) Binding 2 - Decorate 58(g_tTex2df4) DescriptorSet 0 - Decorate 58(g_tTex2df4) Binding 3 - Decorate 77(g_tTex2di4) DescriptorSet 0 - Decorate 77(g_tTex2di4) Binding 4 - Decorate 90(g_tTex2du4) DescriptorSet 0 - Decorate 90(g_tTex2du4) Binding 5 - Decorate 115(@entryPointOutput.Color) Location 0 - Decorate 119(@entryPointOutput.Depth) BuiltIn FragDepth - Decorate 124(g_tTex3df4) DescriptorSet 0 - Decorate 124(g_tTex3df4) Binding 0 - Decorate 127(g_tTex3di4) DescriptorSet 0 - Decorate 127(g_tTex3di4) Binding 0 - Decorate 130(g_tTex3du4) DescriptorSet 0 - Decorate 130(g_tTex3du4) Binding 0 - Decorate 133(g_tTexcdf4) DescriptorSet 0 - Decorate 133(g_tTexcdf4) Binding 0 - Decorate 136(g_tTexcdi4) DescriptorSet 0 - Decorate 136(g_tTexcdi4) Binding 0 - Decorate 139(g_tTexcdu4) DescriptorSet 0 - Decorate 139(g_tTexcdu4) Binding 0 - Decorate 142(g_tTex1df4a) DescriptorSet 0 - Decorate 142(g_tTex1df4a) Binding 0 - Decorate 145(g_tTex1di4a) DescriptorSet 0 - Decorate 145(g_tTex1di4a) Binding 0 - Decorate 148(g_tTex1du4a) DescriptorSet 0 - Decorate 148(g_tTex1du4a) Binding 0 - Decorate 151(g_tTex2df4a) DescriptorSet 0 - Decorate 151(g_tTex2df4a) Binding 0 - Decorate 154(g_tTex2di4a) DescriptorSet 0 - Decorate 154(g_tTex2di4a) Binding 0 - Decorate 157(g_tTex2du4a) DescriptorSet 0 - Decorate 157(g_tTex2du4a) Binding 0 - Decorate 160(g_tTexcdf4a) DescriptorSet 0 - Decorate 160(g_tTexcdf4a) Binding 0 - Decorate 163(g_tTexcdi4a) DescriptorSet 0 - Decorate 163(g_tTexcdi4a) Binding 0 - Decorate 166(g_tTexcdu4a) DescriptorSet 0 - Decorate 166(g_tTexcdu4a) 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 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/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out deleted file mode 100644 index 3b1eb6f6..00000000 --- a/deps/glslang/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out +++ /dev/null @@ -1,625 +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:42 Constant: -0:42 0.100000 -0:42 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:43 Constant: -0:43 0.100000 -0:43 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:44 Constant: -0:44 0.100000 -0:44 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:47 Constant: -0:47 0.100000 -0:47 0.200000 -0:47 0.300000 -0:47 Constant: -0:47 0.750000 -0:47 Constant: -0:47 2 (const int) -0:47 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:48 Constant: -0:48 0.100000 -0:48 0.200000 -0:48 0.300000 -0:48 Constant: -0:48 0.750000 -0:48 Constant: -0:48 2 (const int) -0:48 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:49 Constant: -0:49 0.100000 -0:49 0.200000 -0:49 0.300000 -0:49 Constant: -0:49 0.750000 -0:49 Constant: -0:49 2 (const int) -0:49 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:42 Constant: -0:42 0.100000 -0:42 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:43 Constant: -0:43 0.100000 -0:43 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:44 Constant: -0:44 0.100000 -0:44 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:47 Constant: -0:47 0.100000 -0:47 0.200000 -0:47 0.300000 -0:47 Constant: -0:47 0.750000 -0:47 Constant: -0:47 2 (const int) -0:47 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:48 Constant: -0:48 0.100000 -0:48 0.200000 -0:48 0.300000 -0:48 Constant: -0:48 0.750000 -0:48 Constant: -0:48 2 (const int) -0:48 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:49 Constant: -0:49 0.100000 -0:49 0.200000 -0:49 0.300000 -0:49 Constant: -0:49 0.750000 -0:49 Constant: -0:49 2 (const int) -0:49 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) - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// 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 16(g_tTex1df4a) Binding 1 - Decorate 20(g_sSamp) DescriptorSet 0 - Decorate 20(g_sSamp) Binding 0 - Decorate 40(g_tTex1di4a) DescriptorSet 0 - Decorate 40(g_tTex1di4a) Binding 2 - Decorate 54(g_tTex1du4a) DescriptorSet 0 - Decorate 54(g_tTex1du4a) Binding 3 - Decorate 67(g_tTex2df4a) DescriptorSet 0 - Decorate 67(g_tTex2df4a) Binding 4 - Decorate 86(g_tTex2di4a) DescriptorSet 0 - Decorate 86(g_tTex2di4a) Binding 5 - Decorate 100(g_tTex2du4a) DescriptorSet 0 - Decorate 100(g_tTex2du4a) Binding 6 - 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 138(g_tTex1di4) Binding 0 - Decorate 141(g_tTex1du4) DescriptorSet 0 - Decorate 141(g_tTex1du4) Binding 0 - Decorate 144(g_tTex2df4) DescriptorSet 0 - Decorate 144(g_tTex2df4) Binding 0 - Decorate 147(g_tTex2di4) DescriptorSet 0 - Decorate 147(g_tTex2di4) Binding 0 - Decorate 150(g_tTex2du4) DescriptorSet 0 - Decorate 150(g_tTex2du4) Binding 0 - Decorate 153(g_tTex3df4) DescriptorSet 0 - Decorate 153(g_tTex3df4) Binding 0 - Decorate 156(g_tTex3di4) DescriptorSet 0 - Decorate 156(g_tTex3di4) Binding 0 - Decorate 159(g_tTex3du4) DescriptorSet 0 - Decorate 159(g_tTex3du4) Binding 0 - Decorate 162(g_tTexcdf4) DescriptorSet 0 - Decorate 162(g_tTexcdf4) Binding 0 - Decorate 165(g_tTexcdi4) DescriptorSet 0 - Decorate 165(g_tTexcdi4) Binding 0 - Decorate 168(g_tTexcdu4) DescriptorSet 0 - Decorate 168(g_tTexcdu4) Binding 0 - Decorate 171(g_tTexcdf4a) DescriptorSet 0 - Decorate 171(g_tTexcdf4a) Binding 0 - Decorate 174(g_tTexcdi4a) DescriptorSet 0 - Decorate 174(g_tTexcdi4a) Binding 0 - Decorate 177(g_tTexcdu4a) DescriptorSet 0 - Decorate 177(g_tTexcdu4a) 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 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/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out deleted file mode 100644 index a734e544..00000000 --- a/deps/glslang/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out +++ /dev/null @@ -1,759 +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:42 Constant: -0:42 0.100000 -0:42 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:43 Constant: -0:43 0.100000 -0:43 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:44 Constant: -0:44 0.100000 -0:44 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:47 Constant: -0:47 0.100000 -0:47 0.200000 -0:47 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:48 Constant: -0:48 0.100000 -0:48 0.200000 -0:48 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:49 Constant: -0:49 0.100000 -0:49 0.200000 -0:49 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:52 Constant: -0:52 0.100000 -0:52 0.200000 -0:52 0.300000 -0:52 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:53 Constant: -0:53 0.100000 -0:53 0.200000 -0:53 0.300000 -0:53 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:54 Constant: -0:54 0.100000 -0:54 0.200000 -0:54 0.300000 -0:54 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:42 Constant: -0:42 0.100000 -0:42 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:43 Constant: -0:43 0.100000 -0:43 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:44 Constant: -0:44 0.100000 -0:44 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:47 Constant: -0:47 0.100000 -0:47 0.200000 -0:47 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:48 Constant: -0:48 0.100000 -0:48 0.200000 -0:48 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:49 Constant: -0:49 0.100000 -0:49 0.200000 -0:49 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:52 Constant: -0:52 0.100000 -0:52 0.200000 -0:52 0.300000 -0:52 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:53 Constant: -0:53 0.100000 -0:53 0.200000 -0:53 0.300000 -0:53 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:54 Constant: -0:54 0.100000 -0:54 0.200000 -0:54 0.300000 -0:54 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) - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// 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 16(g_tTex1df4a) Binding 1 - Decorate 20(g_sSamp) DescriptorSet 0 - Decorate 20(g_sSamp) Binding 0 - Decorate 40(g_tTex1di4a) DescriptorSet 0 - Decorate 40(g_tTex1di4a) Binding 2 - Decorate 54(g_tTex1du4a) DescriptorSet 0 - Decorate 54(g_tTex1du4a) Binding 3 - Decorate 67(g_tTex2df4a) DescriptorSet 0 - Decorate 67(g_tTex2df4a) Binding 4 - Decorate 83(g_tTex2di4a) DescriptorSet 0 - Decorate 83(g_tTex2di4a) Binding 5 - Decorate 97(g_tTex2du4a) DescriptorSet 0 - Decorate 97(g_tTex2du4a) Binding 6 - Decorate 111(g_tTexcdf4a) DescriptorSet 0 - Decorate 111(g_tTexcdf4a) Binding 7 - Decorate 127(g_tTexcdi4a) DescriptorSet 0 - Decorate 127(g_tTexcdi4a) Binding 8 - Decorate 141(g_tTexcdu4a) DescriptorSet 0 - Decorate 141(g_tTexcdu4a) Binding 9 - 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 179(g_tTex1di4) Binding 0 - Decorate 182(g_tTex1du4) DescriptorSet 0 - Decorate 182(g_tTex1du4) Binding 0 - Decorate 185(g_tTex2df4) DescriptorSet 0 - Decorate 185(g_tTex2df4) Binding 0 - Decorate 188(g_tTex2di4) DescriptorSet 0 - Decorate 188(g_tTex2di4) Binding 0 - Decorate 191(g_tTex2du4) DescriptorSet 0 - Decorate 191(g_tTex2du4) Binding 0 - Decorate 194(g_tTex3df4) DescriptorSet 0 - Decorate 194(g_tTex3df4) Binding 0 - Decorate 197(g_tTex3di4) DescriptorSet 0 - Decorate 197(g_tTex3di4) Binding 0 - Decorate 200(g_tTex3du4) DescriptorSet 0 - Decorate 200(g_tTex3du4) Binding 0 - Decorate 203(g_tTexcdf4) DescriptorSet 0 - Decorate 203(g_tTexcdf4) Binding 0 - Decorate 206(g_tTexcdi4) DescriptorSet 0 - Decorate 206(g_tTexcdi4) Binding 0 - Decorate 209(g_tTexcdu4) DescriptorSet 0 - Decorate 209(g_tTexcdu4) 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 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/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out deleted file mode 100644 index 54135cdb..00000000 --- a/deps/glslang/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out +++ /dev/null @@ -1,730 +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:47 Constant: -0:47 0.100000 -0:47 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:48 Constant: -0:48 0.100000 -0:48 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:49 Constant: -0:49 0.100000 -0:49 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:53 Constant: -0:53 0.100000 -0:53 0.200000 -0:53 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:54 Constant: -0:54 0.100000 -0:54 0.200000 -0:54 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:55 Constant: -0:55 0.100000 -0:55 0.200000 -0:55 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:47 Constant: -0:47 0.100000 -0:47 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:48 Constant: -0:48 0.100000 -0:48 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:49 Constant: -0:49 0.100000 -0:49 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:53 Constant: -0:53 0.100000 -0:53 0.200000 -0:53 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:54 Constant: -0:54 0.100000 -0:54 0.200000 -0:54 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:55 Constant: -0:55 0.100000 -0:55 0.200000 -0:55 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) - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// 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 35(g_tTex1di4) Binding 1 - Decorate 47(g_tTex1du4) DescriptorSet 0 - Decorate 47(g_tTex1du4) Binding 2 - Decorate 58(g_tTex2df4) DescriptorSet 0 - Decorate 58(g_tTex2df4) Binding 3 - Decorate 74(g_tTex2di4) DescriptorSet 0 - Decorate 74(g_tTex2di4) Binding 4 - Decorate 87(g_tTex2du4) DescriptorSet 0 - Decorate 87(g_tTex2du4) Binding 5 - Decorate 100(g_tTexcdf4) DescriptorSet 0 - Decorate 100(g_tTexcdf4) Binding 6 - Decorate 116(g_tTexcdi4) DescriptorSet 0 - Decorate 116(g_tTexcdi4) Binding 7 - Decorate 130(g_tTexcdu4) DescriptorSet 0 - Decorate 130(g_tTexcdu4) Binding 8 - Decorate 156(@entryPointOutput.Color) Location 0 - Decorate 160(@entryPointOutput.Depth) BuiltIn FragDepth - Decorate 165(g_tTex3df4) DescriptorSet 0 - Decorate 165(g_tTex3df4) Binding 0 - Decorate 168(g_tTex3di4) DescriptorSet 0 - Decorate 168(g_tTex3di4) Binding 0 - Decorate 171(g_tTex3du4) DescriptorSet 0 - Decorate 171(g_tTex3du4) Binding 0 - Decorate 174(g_tTex1df4a) DescriptorSet 0 - Decorate 174(g_tTex1df4a) Binding 0 - Decorate 177(g_tTex1di4a) DescriptorSet 0 - Decorate 177(g_tTex1di4a) Binding 0 - Decorate 180(g_tTex1du4a) DescriptorSet 0 - Decorate 180(g_tTex1du4a) Binding 0 - Decorate 183(g_tTex2df4a) DescriptorSet 0 - Decorate 183(g_tTex2df4a) Binding 0 - Decorate 186(g_tTex2di4a) DescriptorSet 0 - Decorate 186(g_tTex2di4a) Binding 0 - Decorate 189(g_tTex2du4a) DescriptorSet 0 - Decorate 189(g_tTex2du4a) Binding 0 - Decorate 192(g_tTexcdf4a) DescriptorSet 0 - Decorate 192(g_tTexcdf4a) Binding 0 - Decorate 195(g_tTexcdi4a) DescriptorSet 0 - Decorate 195(g_tTexcdi4a) Binding 0 - Decorate 198(g_tTexcdu4a) DescriptorSet 0 - Decorate 198(g_tTexcdu4a) 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 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/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out deleted file mode 100644 index 4922cded..00000000 --- a/deps/glslang/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out +++ /dev/null @@ -1,627 +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:47 Constant: -0:47 0.100000 -0:47 0.200000 -0:47 Constant: -0:47 0.750000 -0:47 Constant: -0:47 0.000000 -0:47 Constant: -0:47 2 (const int) -0:47 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:48 Constant: -0:48 0.100000 -0:48 0.200000 -0:48 Constant: -0:48 0.750000 -0:48 Constant: -0:48 0.000000 -0:48 Constant: -0:48 2 (const int) -0:48 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:49 Constant: -0:49 0.100000 -0:49 0.200000 -0:49 Constant: -0:49 0.750000 -0:49 Constant: -0:49 0.000000 -0:49 Constant: -0:49 2 (const int) -0:49 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:47 Constant: -0:47 0.100000 -0:47 0.200000 -0:47 Constant: -0:47 0.750000 -0:47 Constant: -0:47 0.000000 -0:47 Constant: -0:47 2 (const int) -0:47 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:48 Constant: -0:48 0.100000 -0:48 0.200000 -0:48 Constant: -0:48 0.750000 -0:48 Constant: -0:48 0.000000 -0:48 Constant: -0:48 2 (const int) -0:48 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:49 Constant: -0:49 0.100000 -0:49 0.200000 -0:49 Constant: -0:49 0.750000 -0:49 Constant: -0:49 0.000000 -0:49 Constant: -0:49 2 (const int) -0:49 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) - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// 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 36(g_tTex1di4) Binding 1 - Decorate 48(g_tTex1du4) DescriptorSet 0 - Decorate 48(g_tTex1du4) Binding 2 - Decorate 59(g_tTex2df4) DescriptorSet 0 - Decorate 59(g_tTex2df4) Binding 3 - Decorate 78(g_tTex2di4) DescriptorSet 0 - Decorate 78(g_tTex2di4) Binding 4 - Decorate 91(g_tTex2du4) DescriptorSet 0 - Decorate 91(g_tTex2du4) Binding 5 - Decorate 116(@entryPointOutput.Color) Location 0 - Decorate 120(@entryPointOutput.Depth) BuiltIn FragDepth - Decorate 125(g_tTex3df4) DescriptorSet 0 - Decorate 125(g_tTex3df4) Binding 0 - Decorate 128(g_tTex3di4) DescriptorSet 0 - Decorate 128(g_tTex3di4) Binding 0 - Decorate 131(g_tTex3du4) DescriptorSet 0 - Decorate 131(g_tTex3du4) Binding 0 - Decorate 134(g_tTexcdf4) DescriptorSet 0 - Decorate 134(g_tTexcdf4) Binding 0 - Decorate 137(g_tTexcdi4) DescriptorSet 0 - Decorate 137(g_tTexcdi4) Binding 0 - Decorate 140(g_tTexcdu4) DescriptorSet 0 - Decorate 140(g_tTexcdu4) Binding 0 - Decorate 143(g_tTex1df4a) DescriptorSet 0 - Decorate 143(g_tTex1df4a) Binding 0 - Decorate 146(g_tTex1di4a) DescriptorSet 0 - Decorate 146(g_tTex1di4a) Binding 0 - Decorate 149(g_tTex1du4a) DescriptorSet 0 - Decorate 149(g_tTex1du4a) Binding 0 - Decorate 152(g_tTex2df4a) DescriptorSet 0 - Decorate 152(g_tTex2df4a) Binding 0 - Decorate 155(g_tTex2di4a) DescriptorSet 0 - Decorate 155(g_tTex2di4a) Binding 0 - Decorate 158(g_tTex2du4a) DescriptorSet 0 - Decorate 158(g_tTex2du4a) Binding 0 - Decorate 161(g_tTexcdf4a) DescriptorSet 0 - Decorate 161(g_tTexcdf4a) Binding 0 - Decorate 164(g_tTexcdi4a) DescriptorSet 0 - Decorate 164(g_tTexcdi4a) Binding 0 - Decorate 167(g_tTexcdu4a) DescriptorSet 0 - Decorate 167(g_tTexcdu4a) 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 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/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out deleted file mode 100644 index 22bd2577..00000000 --- a/deps/glslang/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out +++ /dev/null @@ -1,650 +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:42 Constant: -0:42 0.100000 -0:42 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:43 Constant: -0:43 0.100000 -0:43 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:44 Constant: -0:44 0.100000 -0:44 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:47 Constant: -0:47 0.100000 -0:47 0.200000 -0:47 0.300000 -0:47 Constant: -0:47 0.750000 -0:47 Constant: -0:47 0.000000 -0:47 Constant: -0:47 2 (const int) -0:47 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:48 Constant: -0:48 0.100000 -0:48 0.200000 -0:48 0.300000 -0:48 Constant: -0:48 0.750000 -0:48 Constant: -0:48 0.000000 -0:48 Constant: -0:48 2 (const int) -0:48 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:49 Constant: -0:49 0.100000 -0:49 0.200000 -0:49 0.300000 -0:49 Constant: -0:49 0.750000 -0:49 Constant: -0:49 0.000000 -0:49 Constant: -0:49 2 (const int) -0:49 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:42 Constant: -0:42 0.100000 -0:42 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:43 Constant: -0:43 0.100000 -0:43 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:44 Constant: -0:44 0.100000 -0:44 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:47 Constant: -0:47 0.100000 -0:47 0.200000 -0:47 0.300000 -0:47 Constant: -0:47 0.750000 -0:47 Constant: -0:47 0.000000 -0:47 Constant: -0:47 2 (const int) -0:47 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:48 Constant: -0:48 0.100000 -0:48 0.200000 -0:48 0.300000 -0:48 Constant: -0:48 0.750000 -0:48 Constant: -0:48 0.000000 -0:48 Constant: -0:48 2 (const int) -0:48 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:49 Constant: -0:49 0.100000 -0:49 0.200000 -0:49 0.300000 -0:49 Constant: -0:49 0.750000 -0:49 Constant: -0:49 0.000000 -0:49 Constant: -0:49 2 (const int) -0:49 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) - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// 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 16(g_tTex1df4a) Binding 1 - Decorate 20(g_sSamp) DescriptorSet 0 - Decorate 20(g_sSamp) Binding 0 - Decorate 41(g_tTex1di4a) DescriptorSet 0 - Decorate 41(g_tTex1di4a) Binding 2 - Decorate 55(g_tTex1du4a) DescriptorSet 0 - Decorate 55(g_tTex1du4a) Binding 3 - Decorate 68(g_tTex2df4a) DescriptorSet 0 - Decorate 68(g_tTex2df4a) Binding 4 - Decorate 87(g_tTex2di4a) DescriptorSet 0 - Decorate 87(g_tTex2di4a) Binding 5 - Decorate 101(g_tTex2du4a) DescriptorSet 0 - Decorate 101(g_tTex2du4a) Binding 6 - 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 139(g_tTex1di4) Binding 0 - Decorate 142(g_tTex1du4) DescriptorSet 0 - Decorate 142(g_tTex1du4) Binding 0 - Decorate 145(g_tTex2df4) DescriptorSet 0 - Decorate 145(g_tTex2df4) Binding 0 - Decorate 148(g_tTex2di4) DescriptorSet 0 - Decorate 148(g_tTex2di4) Binding 0 - Decorate 151(g_tTex2du4) DescriptorSet 0 - Decorate 151(g_tTex2du4) Binding 0 - Decorate 154(g_tTex3df4) DescriptorSet 0 - Decorate 154(g_tTex3df4) Binding 0 - Decorate 157(g_tTex3di4) DescriptorSet 0 - Decorate 157(g_tTex3di4) Binding 0 - Decorate 160(g_tTex3du4) DescriptorSet 0 - Decorate 160(g_tTex3du4) Binding 0 - Decorate 163(g_tTexcdf4) DescriptorSet 0 - Decorate 163(g_tTexcdf4) Binding 0 - Decorate 166(g_tTexcdi4) DescriptorSet 0 - Decorate 166(g_tTexcdi4) Binding 0 - Decorate 169(g_tTexcdu4) DescriptorSet 0 - Decorate 169(g_tTexcdu4) Binding 0 - Decorate 172(g_tTexcdf4a) DescriptorSet 0 - Decorate 172(g_tTexcdf4a) Binding 0 - Decorate 175(g_tTexcdi4a) DescriptorSet 0 - Decorate 175(g_tTexcdi4a) Binding 0 - Decorate 178(g_tTexcdu4a) DescriptorSet 0 - Decorate 178(g_tTexcdu4a) 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 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/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out deleted file mode 100644 index 67e1d157..00000000 --- a/deps/glslang/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out +++ /dev/null @@ -1,651 +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:27 Constant: -0:27 0.100000 -0:27 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:28 Constant: -0:28 0.100000 -0:28 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:29 Constant: -0:29 0.100000 -0:29 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:31 Constant: -0:31 0.100000 -0:31 0.200000 -0:31 0.300000 -0:31 Constant: -0:31 1.100000 -0:31 1.200000 -0:31 Constant: -0:31 1.100000 -0:31 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 Constant: -0:32 0.100000 -0:32 0.200000 -0:32 0.300000 -0:32 Constant: -0:32 1.100000 -0:32 1.200000 -0:32 Constant: -0:32 1.100000 -0:32 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 Constant: -0:33 0.100000 -0:33 0.200000 -0:33 0.300000 -0:33 Constant: -0:33 1.100000 -0:33 1.200000 -0:33 Constant: -0:33 1.100000 -0:33 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 Constant: -0:35 0.100000 -0:35 0.200000 -0:35 0.300000 -0:35 0.400000 -0:35 Constant: -0:35 1.100000 -0:35 1.200000 -0:35 1.300000 -0:35 Constant: -0:35 1.100000 -0:35 1.200000 -0:35 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 Constant: -0:36 0.100000 -0:36 0.200000 -0:36 0.300000 -0:36 0.400000 -0:36 Constant: -0:36 1.100000 -0:36 1.200000 -0:36 1.300000 -0:36 Constant: -0:36 1.100000 -0:36 1.200000 -0:36 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 Constant: -0:37 0.100000 -0:37 0.200000 -0:37 0.300000 -0:37 0.400000 -0:37 Constant: -0:37 1.100000 -0:37 1.200000 -0:37 1.300000 -0:37 Constant: -0:37 1.100000 -0:37 1.200000 -0:37 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:27 Constant: -0:27 0.100000 -0:27 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:28 Constant: -0:28 0.100000 -0:28 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:29 Constant: -0:29 0.100000 -0:29 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:31 Constant: -0:31 0.100000 -0:31 0.200000 -0:31 0.300000 -0:31 Constant: -0:31 1.100000 -0:31 1.200000 -0:31 Constant: -0:31 1.100000 -0:31 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 Constant: -0:32 0.100000 -0:32 0.200000 -0:32 0.300000 -0:32 Constant: -0:32 1.100000 -0:32 1.200000 -0:32 Constant: -0:32 1.100000 -0:32 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 Constant: -0:33 0.100000 -0:33 0.200000 -0:33 0.300000 -0:33 Constant: -0:33 1.100000 -0:33 1.200000 -0:33 Constant: -0:33 1.100000 -0:33 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 Constant: -0:35 0.100000 -0:35 0.200000 -0:35 0.300000 -0:35 0.400000 -0:35 Constant: -0:35 1.100000 -0:35 1.200000 -0:35 1.300000 -0:35 Constant: -0:35 1.100000 -0:35 1.200000 -0:35 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 Constant: -0:36 0.100000 -0:36 0.200000 -0:36 0.300000 -0:36 0.400000 -0:36 Constant: -0:36 1.100000 -0:36 1.200000 -0:36 1.300000 -0:36 Constant: -0:36 1.100000 -0:36 1.200000 -0:36 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 Constant: -0:37 0.100000 -0:37 0.200000 -0:37 0.300000 -0:37 0.400000 -0:37 Constant: -0:37 1.100000 -0:37 1.200000 -0:37 1.300000 -0:37 Constant: -0:37 1.100000 -0:37 1.200000 -0:37 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): 8000a -// 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 37(g_tTex1di4) Binding 2 - Decorate 49(g_tTex1du4) DescriptorSet 0 - Decorate 49(g_tTex1du4) Binding 3 - Decorate 58(g_tTex2df4) DescriptorSet 0 - Decorate 58(g_tTex2df4) Binding 4 - Decorate 71(g_tTex2di4) DescriptorSet 0 - Decorate 71(g_tTex2di4) Binding 5 - Decorate 80(g_tTex2du4) DescriptorSet 0 - Decorate 80(g_tTex2du4) Binding 6 - Decorate 89(g_tTexcdf4) DescriptorSet 0 - Decorate 89(g_tTexcdf4) Binding 7 - Decorate 102(g_tTexcdi4) DescriptorSet 0 - Decorate 102(g_tTexcdi4) Binding 8 - Decorate 111(g_tTexcdu4) DescriptorSet 0 - Decorate 111(g_tTexcdu4) Binding 9 - 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/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out deleted file mode 100644 index 8f2fabc4..00000000 --- a/deps/glslang/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out +++ /dev/null @@ -1,802 +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:35 Constant: -0:35 0.100000 -0:35 0.200000 -0:35 Constant: -0:35 1.100000 -0:35 1.200000 -0:35 Constant: -0:35 1.100000 -0:35 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 Constant: -0:36 0.300000 -0:36 0.400000 -0:36 Constant: -0:36 1.100000 -0:36 1.200000 -0:36 Constant: -0:36 1.100000 -0:36 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 Constant: -0:37 0.500000 -0:37 0.600000 -0:37 Constant: -0:37 1.100000 -0:37 1.200000 -0:37 Constant: -0:37 1.100000 -0:37 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 Constant: -0:39 0.100000 -0:39 0.200000 -0:39 0.300000 -0:39 Constant: -0:39 1.100000 -0:39 1.200000 -0:39 1.300000 -0:39 Constant: -0:39 1.100000 -0:39 1.200000 -0:39 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 Constant: -0:40 0.400000 -0:40 0.500000 -0:40 0.600000 -0:40 Constant: -0:40 1.100000 -0:40 1.200000 -0:40 1.300000 -0:40 Constant: -0:40 1.100000 -0:40 1.200000 -0:40 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 Constant: -0:41 0.700000 -0:41 0.800000 -0:41 0.900000 -0:41 Constant: -0:41 1.100000 -0:41 1.200000 -0:41 1.300000 -0:41 Constant: -0:41 1.100000 -0:41 1.200000 -0:41 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 Constant: -0:43 0.100000 -0:43 0.200000 -0:43 0.300000 -0:43 Constant: -0:43 1.100000 -0:43 1.200000 -0:43 1.300000 -0:43 Constant: -0:43 1.100000 -0:43 1.200000 -0:43 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 Constant: -0:44 0.400000 -0:44 0.500000 -0:44 0.600000 -0:44 Constant: -0:44 1.100000 -0:44 1.200000 -0:44 1.300000 -0:44 Constant: -0:44 1.100000 -0:44 1.200000 -0:44 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 Constant: -0:45 0.700000 -0:45 0.800000 -0:45 0.900000 -0:45 Constant: -0:45 1.100000 -0:45 1.200000 -0:45 1.300000 -0:45 Constant: -0:45 1.100000 -0:45 1.200000 -0:45 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:35 Constant: -0:35 0.100000 -0:35 0.200000 -0:35 Constant: -0:35 1.100000 -0:35 1.200000 -0:35 Constant: -0:35 1.100000 -0:35 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 Constant: -0:36 0.300000 -0:36 0.400000 -0:36 Constant: -0:36 1.100000 -0:36 1.200000 -0:36 Constant: -0:36 1.100000 -0:36 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 Constant: -0:37 0.500000 -0:37 0.600000 -0:37 Constant: -0:37 1.100000 -0:37 1.200000 -0:37 Constant: -0:37 1.100000 -0:37 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 Constant: -0:39 0.100000 -0:39 0.200000 -0:39 0.300000 -0:39 Constant: -0:39 1.100000 -0:39 1.200000 -0:39 1.300000 -0:39 Constant: -0:39 1.100000 -0:39 1.200000 -0:39 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 Constant: -0:40 0.400000 -0:40 0.500000 -0:40 0.600000 -0:40 Constant: -0:40 1.100000 -0:40 1.200000 -0:40 1.300000 -0:40 Constant: -0:40 1.100000 -0:40 1.200000 -0:40 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 Constant: -0:41 0.700000 -0:41 0.800000 -0:41 0.900000 -0:41 Constant: -0:41 1.100000 -0:41 1.200000 -0:41 1.300000 -0:41 Constant: -0:41 1.100000 -0:41 1.200000 -0:41 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 Constant: -0:43 0.100000 -0:43 0.200000 -0:43 0.300000 -0:43 Constant: -0:43 1.100000 -0:43 1.200000 -0:43 1.300000 -0:43 Constant: -0:43 1.100000 -0:43 1.200000 -0:43 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 Constant: -0:44 0.400000 -0:44 0.500000 -0:44 0.600000 -0:44 Constant: -0:44 1.100000 -0:44 1.200000 -0:44 1.300000 -0:44 Constant: -0:44 1.100000 -0:44 1.200000 -0:44 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 Constant: -0:45 0.700000 -0:45 0.800000 -0:45 0.900000 -0:45 Constant: -0:45 1.100000 -0:45 1.200000 -0:45 1.300000 -0:45 Constant: -0:45 1.100000 -0:45 1.200000 -0:45 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): 8000a -// 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 34(g_tTex1di4) Binding 2 - Decorate 47(g_tTex1du4) DescriptorSet 0 - Decorate 47(g_tTex1du4) Binding 3 - Decorate 57(g_tTex2df4) DescriptorSet 0 - Decorate 57(g_tTex2df4) Binding 4 - Decorate 69(g_tTex2di4) DescriptorSet 0 - Decorate 69(g_tTex2di4) Binding 5 - Decorate 80(g_tTex2du4) DescriptorSet 0 - Decorate 80(g_tTex2du4) Binding 6 - Decorate 92(g_tTex3df4) DescriptorSet 0 - Decorate 92(g_tTex3df4) Binding 7 - Decorate 105(g_tTex3di4) DescriptorSet 0 - Decorate 105(g_tTex3di4) Binding 8 - Decorate 115(g_tTex3du4) DescriptorSet 0 - Decorate 115(g_tTex3du4) Binding 9 - Decorate 128(g_tTexcdf4) DescriptorSet 0 - Decorate 128(g_tTexcdf4) Binding 10 - Decorate 137(g_tTexcdi4) DescriptorSet 0 - Decorate 137(g_tTexcdi4) Binding 11 - Decorate 146(g_tTexcdu4) DescriptorSet 0 - Decorate 146(g_tTexcdu4) Binding 12 - 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/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out b/deps/glslang/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out deleted file mode 100644 index 69820905..00000000 --- a/deps/glslang/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out +++ /dev/null @@ -1,746 +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:34 Constant: -0:34 0.100000 -0:34 0.200000 -0:34 Constant: -0:34 1.100000 -0:34 1.200000 -0:34 Constant: -0:34 1.100000 -0:34 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 Constant: -0:35 0.300000 -0:35 0.400000 -0:35 Constant: -0:35 1.100000 -0:35 1.200000 -0:35 Constant: -0:35 1.100000 -0:35 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 Constant: -0:36 0.500000 -0:36 0.600000 -0:36 Constant: -0:36 1.100000 -0:36 1.200000 -0:36 Constant: -0:36 1.100000 -0:36 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 Constant: -0:38 0.100000 -0:38 0.200000 -0:38 0.300000 -0:38 Constant: -0:38 1.100000 -0:38 1.200000 -0:38 1.300000 -0:38 Constant: -0:38 1.100000 -0:38 1.200000 -0:38 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 Constant: -0:39 0.400000 -0:39 0.500000 -0:39 0.600000 -0:39 Constant: -0:39 1.100000 -0:39 1.200000 -0:39 1.300000 -0:39 Constant: -0:39 1.100000 -0:39 1.200000 -0:39 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 Constant: -0:40 0.700000 -0:40 0.800000 -0:40 0.900000 -0:40 Constant: -0:40 1.100000 -0:40 1.200000 -0:40 1.300000 -0:40 Constant: -0:40 1.100000 -0:40 1.200000 -0:40 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 Constant: -0:42 0.100000 -0:42 0.200000 -0:42 0.300000 -0:42 Constant: -0:42 1.100000 -0:42 1.200000 -0:42 1.300000 -0:42 Constant: -0:42 1.100000 -0:42 1.200000 -0:42 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 Constant: -0:43 0.400000 -0:43 0.500000 -0:43 0.600000 -0:43 Constant: -0:43 1.100000 -0:43 1.200000 -0:43 1.300000 -0:43 Constant: -0:43 1.100000 -0:43 1.200000 -0:43 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 Constant: -0:44 0.700000 -0:44 0.800000 -0:44 0.900000 -0:44 Constant: -0:44 1.100000 -0:44 1.200000 -0:44 1.300000 -0:44 Constant: -0:44 1.100000 -0:44 1.200000 -0:44 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:46 Constant: -0:46 0.000000 -0:46 0.000000 -0:46 0.000000 -0:46 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:34 Constant: -0:34 0.100000 -0:34 0.200000 -0:34 Constant: -0:34 1.100000 -0:34 1.200000 -0:34 Constant: -0:34 1.100000 -0:34 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 Constant: -0:35 0.300000 -0:35 0.400000 -0:35 Constant: -0:35 1.100000 -0:35 1.200000 -0:35 Constant: -0:35 1.100000 -0:35 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 Constant: -0:36 0.500000 -0:36 0.600000 -0:36 Constant: -0:36 1.100000 -0:36 1.200000 -0:36 Constant: -0:36 1.100000 -0:36 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 Constant: -0:38 0.100000 -0:38 0.200000 -0:38 0.300000 -0:38 Constant: -0:38 1.100000 -0:38 1.200000 -0:38 1.300000 -0:38 Constant: -0:38 1.100000 -0:38 1.200000 -0:38 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 Constant: -0:39 0.400000 -0:39 0.500000 -0:39 0.600000 -0:39 Constant: -0:39 1.100000 -0:39 1.200000 -0:39 1.300000 -0:39 Constant: -0:39 1.100000 -0:39 1.200000 -0:39 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 Constant: -0:40 0.700000 -0:40 0.800000 -0:40 0.900000 -0:40 Constant: -0:40 1.100000 -0:40 1.200000 -0:40 1.300000 -0:40 Constant: -0:40 1.100000 -0:40 1.200000 -0:40 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 Constant: -0:42 0.100000 -0:42 0.200000 -0:42 0.300000 -0:42 Constant: -0:42 1.100000 -0:42 1.200000 -0:42 1.300000 -0:42 Constant: -0:42 1.100000 -0:42 1.200000 -0:42 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 Constant: -0:43 0.400000 -0:43 0.500000 -0:43 0.600000 -0:43 Constant: -0:43 1.100000 -0:43 1.200000 -0:43 1.300000 -0:43 Constant: -0:43 1.100000 -0:43 1.200000 -0:43 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 Constant: -0:44 0.700000 -0:44 0.800000 -0:44 0.900000 -0:44 Constant: -0:44 1.100000 -0:44 1.200000 -0:44 1.300000 -0:44 Constant: -0:44 1.100000 -0:44 1.200000 -0:44 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:46 Constant: -0:46 0.000000 -0:46 0.000000 -0:46 0.000000 -0:46 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): 8000a -// 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 34(g_tTex1di4) Binding 2 - Decorate 47(g_tTex1du4) DescriptorSet 0 - Decorate 47(g_tTex1du4) Binding 3 - Decorate 57(g_tTex2df4) DescriptorSet 0 - Decorate 57(g_tTex2df4) Binding 4 - Decorate 69(g_tTex2di4) DescriptorSet 0 - Decorate 69(g_tTex2di4) Binding 5 - Decorate 80(g_tTex2du4) DescriptorSet 0 - Decorate 80(g_tTex2du4) Binding 6 - Decorate 92(g_tTex3df4) DescriptorSet 0 - Decorate 92(g_tTex3df4) Binding 7 - Decorate 105(g_tTex3di4) DescriptorSet 0 - Decorate 105(g_tTex3di4) Binding 8 - Decorate 115(g_tTex3du4) DescriptorSet 0 - Decorate 115(g_tTex3du4) Binding 9 - Decorate 128(g_tTexcdf4) DescriptorSet 0 - Decorate 128(g_tTexcdf4) Binding 10 - Decorate 137(g_tTexcdi4) DescriptorSet 0 - Decorate 137(g_tTexcdi4) Binding 11 - Decorate 146(g_tTexcdu4) DescriptorSet 0 - Decorate 146(g_tTexcdu4) Binding 12 - 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/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out deleted file mode 100644 index 5694f89b..00000000 --- a/deps/glslang/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out +++ /dev/null @@ -1,727 +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:35 Constant: -0:35 0.100000 -0:35 0.200000 -0:35 Constant: -0:35 0.100000 -0:35 0.200000 -0:35 Constant: -0:35 1.100000 -0:35 1.200000 -0:35 Constant: -0:35 1 (const int) -0:35 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 Constant: -0:36 0.300000 -0:36 0.400000 -0:36 Constant: -0:36 0.100000 -0:36 0.200000 -0:36 Constant: -0:36 1.100000 -0:36 1.200000 -0:36 Constant: -0:36 1 (const int) -0:36 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 Constant: -0:37 0.500000 -0:37 0.600000 -0:37 Constant: -0:37 0.100000 -0:37 0.200000 -0:37 Constant: -0:37 1.100000 -0:37 1.200000 -0:37 Constant: -0:37 1 (const int) -0:37 -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 Constant: -0:39 0.100000 -0:39 0.200000 -0:39 0.300000 -0:39 Constant: -0:39 1.100000 -0:39 1.200000 -0:39 1.300000 -0:39 Constant: -0:39 1.100000 -0:39 1.200000 -0:39 1.300000 -0:39 Constant: -0:39 1 (const int) -0:39 0 (const int) -0:39 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 Constant: -0:40 0.400000 -0:40 0.500000 -0:40 0.600000 -0:40 Constant: -0:40 1.100000 -0:40 1.200000 -0:40 1.300000 -0:40 Constant: -0:40 1.100000 -0:40 1.200000 -0:40 1.300000 -0:40 Constant: -0:40 1 (const int) -0:40 1 (const int) -0:40 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 Constant: -0:41 0.700000 -0:41 0.800000 -0:41 0.900000 -0:41 Constant: -0:41 1.100000 -0:41 1.200000 -0:41 1.300000 -0:41 Constant: -0:41 1.100000 -0:41 1.200000 -0:41 1.300000 -0:41 Constant: -0:41 1 (const int) -0:41 0 (const int) -0:41 -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:35 Constant: -0:35 0.100000 -0:35 0.200000 -0:35 Constant: -0:35 0.100000 -0:35 0.200000 -0:35 Constant: -0:35 1.100000 -0:35 1.200000 -0:35 Constant: -0:35 1 (const int) -0:35 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 Constant: -0:36 0.300000 -0:36 0.400000 -0:36 Constant: -0:36 0.100000 -0:36 0.200000 -0:36 Constant: -0:36 1.100000 -0:36 1.200000 -0:36 Constant: -0:36 1 (const int) -0:36 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 Constant: -0:37 0.500000 -0:37 0.600000 -0:37 Constant: -0:37 0.100000 -0:37 0.200000 -0:37 Constant: -0:37 1.100000 -0:37 1.200000 -0:37 Constant: -0:37 1 (const int) -0:37 -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 Constant: -0:39 0.100000 -0:39 0.200000 -0:39 0.300000 -0:39 Constant: -0:39 1.100000 -0:39 1.200000 -0:39 1.300000 -0:39 Constant: -0:39 1.100000 -0:39 1.200000 -0:39 1.300000 -0:39 Constant: -0:39 1 (const int) -0:39 0 (const int) -0:39 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 Constant: -0:40 0.400000 -0:40 0.500000 -0:40 0.600000 -0:40 Constant: -0:40 1.100000 -0:40 1.200000 -0:40 1.300000 -0:40 Constant: -0:40 1.100000 -0:40 1.200000 -0:40 1.300000 -0:40 Constant: -0:40 1 (const int) -0:40 1 (const int) -0:40 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 Constant: -0:41 0.700000 -0:41 0.800000 -0:41 0.900000 -0:41 Constant: -0:41 1.100000 -0:41 1.200000 -0:41 1.300000 -0:41 Constant: -0:41 1.100000 -0:41 1.200000 -0:41 1.300000 -0:41 Constant: -0:41 1 (const int) -0:41 0 (const int) -0:41 -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): 8000a -// 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 35(g_tTex1di4) Binding 2 - Decorate 48(g_tTex1du4) DescriptorSet 0 - Decorate 48(g_tTex1du4) Binding 3 - Decorate 58(g_tTex2df4) DescriptorSet 0 - Decorate 58(g_tTex2df4) Binding 4 - Decorate 73(g_tTex2di4) DescriptorSet 0 - Decorate 73(g_tTex2di4) Binding 5 - Decorate 85(g_tTex2du4) DescriptorSet 0 - Decorate 85(g_tTex2du4) Binding 6 - Decorate 99(g_tTex3df4) DescriptorSet 0 - Decorate 99(g_tTex3df4) Binding 7 - Decorate 114(g_tTex3di4) DescriptorSet 0 - Decorate 114(g_tTex3di4) Binding 8 - Decorate 125(g_tTex3du4) DescriptorSet 0 - Decorate 125(g_tTex3du4) Binding 9 - 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 159(g_tTexcdf4) Binding 0 - Decorate 162(g_tTexcdi4) DescriptorSet 0 - Decorate 162(g_tTexcdi4) Binding 0 - Decorate 165(g_tTexcdu4) DescriptorSet 0 - Decorate 165(g_tTexcdu4) 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 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/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out deleted file mode 100644 index a3bc4c14..00000000 --- a/deps/glslang/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out +++ /dev/null @@ -1,535 +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:27 Constant: -0:27 0.100000 -0:27 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:28 Constant: -0:28 0.100000 -0:28 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:29 Constant: -0:29 0.100000 -0:29 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:31 Constant: -0:31 0.100000 -0:31 0.200000 -0:31 0.300000 -0:31 Constant: -0:31 1.100000 -0:31 1.200000 -0:31 Constant: -0:31 1.100000 -0:31 1.200000 -0:31 Constant: -0:31 1 (const int) -0:31 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 Constant: -0:32 0.100000 -0:32 0.200000 -0:32 0.300000 -0:32 Constant: -0:32 1.100000 -0:32 1.200000 -0:32 Constant: -0:32 1.100000 -0:32 1.200000 -0:32 Constant: -0:32 1 (const int) -0:32 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 Constant: -0:33 0.100000 -0:33 0.200000 -0:33 0.300000 -0:33 Constant: -0:33 1.100000 -0:33 1.200000 -0:33 Constant: -0:33 1.100000 -0:33 1.200000 -0:33 Constant: -0:33 1 (const int) -0:33 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:27 Constant: -0:27 0.100000 -0:27 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:28 Constant: -0:28 0.100000 -0:28 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:29 Constant: -0:29 0.100000 -0:29 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:31 Constant: -0:31 0.100000 -0:31 0.200000 -0:31 0.300000 -0:31 Constant: -0:31 1.100000 -0:31 1.200000 -0:31 Constant: -0:31 1.100000 -0:31 1.200000 -0:31 Constant: -0:31 1 (const int) -0:31 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 Constant: -0:32 0.100000 -0:32 0.200000 -0:32 0.300000 -0:32 Constant: -0:32 1.100000 -0:32 1.200000 -0:32 Constant: -0:32 1.100000 -0:32 1.200000 -0:32 Constant: -0:32 1 (const int) -0:32 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 Constant: -0:33 0.100000 -0:33 0.200000 -0:33 0.300000 -0:33 Constant: -0:33 1.100000 -0:33 1.200000 -0:33 Constant: -0:33 1.100000 -0:33 1.200000 -0:33 Constant: -0:33 1 (const int) -0:33 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): 8000a -// 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 38(g_tTex1di4) Binding 2 - Decorate 50(g_tTex1du4) DescriptorSet 0 - Decorate 50(g_tTex1du4) Binding 3 - Decorate 59(g_tTex2df4) DescriptorSet 0 - Decorate 59(g_tTex2df4) Binding 4 - Decorate 75(g_tTex2di4) DescriptorSet 0 - Decorate 75(g_tTex2di4) Binding 5 - Decorate 84(g_tTex2du4) DescriptorSet 0 - Decorate 84(g_tTex2du4) Binding 6 - 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 113(g_tTexcdf4) Binding 0 - Decorate 116(g_tTexcdi4) DescriptorSet 0 - Decorate 116(g_tTexcdi4) Binding 0 - Decorate 119(g_tTexcdu4) DescriptorSet 0 - Decorate 119(g_tTexcdu4) 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_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/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out deleted file mode 100644 index 68e0e87d..00000000 --- a/deps/glslang/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out +++ /dev/null @@ -1,586 +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:27 Constant: -0:27 0.100000 -0:27 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 Constant: -0:28 0.200000 -0:28 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 Constant: -0:29 0.300000 -0:29 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 Constant: -0:31 0.100000 -0:31 0.200000 -0:31 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:32 Constant: -0:32 0.300000 -0:32 0.400000 -0:32 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:33 Constant: -0:33 0.500000 -0:33 0.600000 -0:33 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:35 Constant: -0:35 0.100000 -0:35 0.200000 -0:35 0.300000 -0:35 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:36 Constant: -0:36 0.400000 -0:36 0.500000 -0:36 0.600000 -0:36 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:37 Constant: -0:37 0.700000 -0:37 0.800000 -0:37 0.900000 -0:37 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:27 Constant: -0:27 0.100000 -0:27 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 Constant: -0:28 0.200000 -0:28 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 Constant: -0:29 0.300000 -0:29 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 Constant: -0:31 0.100000 -0:31 0.200000 -0:31 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:32 Constant: -0:32 0.300000 -0:32 0.400000 -0:32 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:33 Constant: -0:33 0.500000 -0:33 0.600000 -0:33 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:35 Constant: -0:35 0.100000 -0:35 0.200000 -0:35 0.300000 -0:35 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:36 Constant: -0:36 0.400000 -0:36 0.500000 -0:36 0.600000 -0:36 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:37 Constant: -0:37 0.700000 -0:37 0.800000 -0:37 0.900000 -0:37 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): 8000a -// 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 36(g_tTex1di4a) Binding 2 - Decorate 50(g_tTex1du4a) DescriptorSet 0 - Decorate 50(g_tTex1du4a) Binding 3 - Decorate 61(g_tTex2df4a) DescriptorSet 0 - Decorate 61(g_tTex2df4a) Binding 4 - Decorate 72(g_tTex2di4a) DescriptorSet 0 - Decorate 72(g_tTex2di4a) Binding 5 - Decorate 83(g_tTex2du4a) DescriptorSet 0 - Decorate 83(g_tTex2du4a) Binding 6 - Decorate 95(g_tTexcdf4a) DescriptorSet 0 - Decorate 95(g_tTexcdf4a) Binding 7 - Decorate 105(g_tTexcdi4a) DescriptorSet 0 - Decorate 105(g_tTexcdi4a) Binding 8 - Decorate 115(g_tTexcdu4a) DescriptorSet 0 - Decorate 115(g_tTexcdu4a) Binding 9 - 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/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out deleted file mode 100644 index ee3588da..00000000 --- a/deps/glslang/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out +++ /dev/null @@ -1,696 +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:36 Constant: -0:36 0.100000 -0:36 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 Constant: -0:37 0.300000 -0:37 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 Constant: -0:38 0.500000 -0:38 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 Constant: -0:40 0.100000 -0:40 0.200000 -0:40 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:41 Constant: -0:41 0.400000 -0:41 0.500000 -0:41 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:42 Constant: -0:42 0.700000 -0:42 0.800000 -0:42 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:44 Constant: -0:44 0.100000 -0:44 0.200000 -0:44 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:45 Constant: -0:45 0.400000 -0:45 0.500000 -0:45 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:46 Constant: -0:46 0.700000 -0:46 0.800000 -0:46 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:36 Constant: -0:36 0.100000 -0:36 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 Constant: -0:37 0.300000 -0:37 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 Constant: -0:38 0.500000 -0:38 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 Constant: -0:40 0.100000 -0:40 0.200000 -0:40 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:41 Constant: -0:41 0.400000 -0:41 0.500000 -0:41 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:42 Constant: -0:42 0.700000 -0:42 0.800000 -0:42 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:44 Constant: -0:44 0.100000 -0:44 0.200000 -0:44 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:45 Constant: -0:45 0.400000 -0:45 0.500000 -0:45 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:46 Constant: -0:46 0.700000 -0:46 0.800000 -0:46 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): 8000a -// 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 33(g_tTex1di4) Binding 2 - Decorate 46(g_tTex1du4) DescriptorSet 0 - Decorate 46(g_tTex1du4) Binding 3 - Decorate 56(g_tTex2df4) DescriptorSet 0 - Decorate 56(g_tTex2df4) Binding 4 - Decorate 67(g_tTex2di4) DescriptorSet 0 - Decorate 67(g_tTex2di4) Binding 5 - Decorate 78(g_tTex2du4) DescriptorSet 0 - Decorate 78(g_tTex2du4) Binding 6 - Decorate 90(g_tTex3df4) DescriptorSet 0 - Decorate 90(g_tTex3df4) Binding 7 - Decorate 101(g_tTex3di4) DescriptorSet 0 - Decorate 101(g_tTex3di4) Binding 8 - Decorate 111(g_tTex3du4) DescriptorSet 0 - Decorate 111(g_tTex3du4) Binding 9 - Decorate 124(g_tTexcdf4) DescriptorSet 0 - Decorate 124(g_tTexcdf4) Binding 10 - Decorate 133(g_tTexcdi4) DescriptorSet 0 - Decorate 133(g_tTexcdi4) Binding 11 - Decorate 142(g_tTexcdu4) DescriptorSet 0 - Decorate 142(g_tTexcdu4) Binding 12 - Decorate 163(@entryPointOutput.Color) Location 0 - Decorate 167(@entryPointOutput.Depth) BuiltIn FragDepth - Decorate 170(g_sSamp2d) DescriptorSet 0 - Decorate 170(g_sSamp2d) Binding 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/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out b/deps/glslang/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out deleted file mode 100644 index a3ff9e66..00000000 --- a/deps/glslang/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out +++ /dev/null @@ -1,634 +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:34 Constant: -0:34 0.100000 -0:34 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 Constant: -0:35 0.300000 -0:35 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 Constant: -0:36 0.500000 -0:36 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 Constant: -0:38 0.100000 -0:38 0.200000 -0:38 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:39 Constant: -0:39 0.400000 -0:39 0.500000 -0:39 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:40 Constant: -0:40 0.700000 -0:40 0.800000 -0:40 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:42 Constant: -0:42 0.100000 -0:42 0.200000 -0:42 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:43 Constant: -0:43 0.400000 -0:43 0.500000 -0:43 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:44 Constant: -0:44 0.700000 -0:44 0.800000 -0:44 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:46 Constant: -0:46 0.000000 -0:46 0.000000 -0:46 0.000000 -0:46 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:34 Constant: -0:34 0.100000 -0:34 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 Constant: -0:35 0.300000 -0:35 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 Constant: -0:36 0.500000 -0:36 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 Constant: -0:38 0.100000 -0:38 0.200000 -0:38 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:39 Constant: -0:39 0.400000 -0:39 0.500000 -0:39 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:40 Constant: -0:40 0.700000 -0:40 0.800000 -0:40 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:42 Constant: -0:42 0.100000 -0:42 0.200000 -0:42 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:43 Constant: -0:43 0.400000 -0:43 0.500000 -0:43 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:44 Constant: -0:44 0.700000 -0:44 0.800000 -0:44 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:46 Constant: -0:46 0.000000 -0:46 0.000000 -0:46 0.000000 -0:46 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): 8000a -// 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 33(g_tTex1di4) Binding 2 - Decorate 46(g_tTex1du4) DescriptorSet 0 - Decorate 46(g_tTex1du4) Binding 3 - Decorate 56(g_tTex2df4) DescriptorSet 0 - Decorate 56(g_tTex2df4) Binding 4 - Decorate 67(g_tTex2di4) DescriptorSet 0 - Decorate 67(g_tTex2di4) Binding 5 - Decorate 78(g_tTex2du4) DescriptorSet 0 - Decorate 78(g_tTex2du4) Binding 6 - Decorate 90(g_tTex3df4) DescriptorSet 0 - Decorate 90(g_tTex3df4) Binding 7 - Decorate 101(g_tTex3di4) DescriptorSet 0 - Decorate 101(g_tTex3di4) Binding 8 - Decorate 111(g_tTex3du4) DescriptorSet 0 - Decorate 111(g_tTex3du4) Binding 9 - Decorate 124(g_tTexcdf4) DescriptorSet 0 - Decorate 124(g_tTexcdf4) Binding 10 - Decorate 133(g_tTexcdi4) DescriptorSet 0 - Decorate 133(g_tTexcdi4) Binding 11 - Decorate 142(g_tTexcdu4) DescriptorSet 0 - Decorate 142(g_tTexcdu4) Binding 12 - 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/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out deleted file mode 100644 index c9d431b2..00000000 --- a/deps/glslang/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out +++ /dev/null @@ -1,651 +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:35 Constant: -0:35 0.100000 -0:35 0.200000 -0:35 Constant: -0:35 0.750000 -0:35 Constant: -0:35 1 (const int) -0:35 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 Constant: -0:36 0.300000 -0:36 0.400000 -0:36 Constant: -0:36 0.750000 -0:36 Constant: -0:36 1 (const int) -0:36 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 Constant: -0:37 0.500000 -0:37 0.600000 -0:37 Constant: -0:37 0.750000 -0:37 Constant: -0:37 1 (const int) -0:37 -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 Constant: -0:39 0.100000 -0:39 0.200000 -0:39 0.300000 -0:39 Constant: -0:39 0.750000 -0:39 Constant: -0:39 1 (const int) -0:39 0 (const int) -0:39 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 Constant: -0:40 0.400000 -0:40 0.500000 -0:40 0.600000 -0:40 Constant: -0:40 0.750000 -0:40 Constant: -0:40 1 (const int) -0:40 1 (const int) -0:40 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 Constant: -0:41 0.700000 -0:41 0.800000 -0:41 0.900000 -0:41 Constant: -0:41 0.750000 -0:41 Constant: -0:41 1 (const int) -0:41 0 (const int) -0:41 -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:35 Constant: -0:35 0.100000 -0:35 0.200000 -0:35 Constant: -0:35 0.750000 -0:35 Constant: -0:35 1 (const int) -0:35 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 Constant: -0:36 0.300000 -0:36 0.400000 -0:36 Constant: -0:36 0.750000 -0:36 Constant: -0:36 1 (const int) -0:36 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 Constant: -0:37 0.500000 -0:37 0.600000 -0:37 Constant: -0:37 0.750000 -0:37 Constant: -0:37 1 (const int) -0:37 -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 Constant: -0:39 0.100000 -0:39 0.200000 -0:39 0.300000 -0:39 Constant: -0:39 0.750000 -0:39 Constant: -0:39 1 (const int) -0:39 0 (const int) -0:39 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 Constant: -0:40 0.400000 -0:40 0.500000 -0:40 0.600000 -0:40 Constant: -0:40 0.750000 -0:40 Constant: -0:40 1 (const int) -0:40 1 (const int) -0:40 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 Constant: -0:41 0.700000 -0:41 0.800000 -0:41 0.900000 -0:41 Constant: -0:41 0.750000 -0:41 Constant: -0:41 1 (const int) -0:41 0 (const int) -0:41 -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): 8000a -// 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 34(g_tTex1di4) Binding 2 - Decorate 47(g_tTex1du4) DescriptorSet 0 - Decorate 47(g_tTex1du4) Binding 3 - Decorate 57(g_tTex2df4) DescriptorSet 0 - Decorate 57(g_tTex2df4) Binding 4 - Decorate 71(g_tTex2di4) DescriptorSet 0 - Decorate 71(g_tTex2di4) Binding 5 - Decorate 83(g_tTex2du4) DescriptorSet 0 - Decorate 83(g_tTex2du4) Binding 6 - Decorate 97(g_tTex3df4) DescriptorSet 0 - Decorate 97(g_tTex3df4) Binding 7 - Decorate 110(g_tTex3di4) DescriptorSet 0 - Decorate 110(g_tTex3di4) Binding 8 - Decorate 121(g_tTex3du4) DescriptorSet 0 - Decorate 121(g_tTex3du4) Binding 9 - 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 155(g_tTexcdf4) Binding 0 - Decorate 158(g_tTexcdi4) DescriptorSet 0 - Decorate 158(g_tTexcdi4) Binding 0 - Decorate 161(g_tTexcdu4) DescriptorSet 0 - Decorate 161(g_tTexcdu4) 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 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/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out b/deps/glslang/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out deleted file mode 100644 index 3f6ae556..00000000 --- a/deps/glslang/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out +++ /dev/null @@ -1,482 +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:23 Constant: -0:23 0.100000 -0:23 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:24 Constant: -0:24 0.200000 -0:24 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:25 Constant: -0:25 0.300000 -0:25 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:27 Constant: -0:27 0.100000 -0:27 0.200000 -0:27 0.300000 -0:27 Constant: -0:27 0.750000 -0:27 Constant: -0:27 0 (const int) -0:27 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 Constant: -0:28 0.300000 -0:28 0.400000 -0:28 0.500000 -0:28 Constant: -0:28 0.750000 -0:28 Constant: -0:28 0 (const int) -0:28 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 Constant: -0:29 0.500000 -0:29 0.600000 -0:29 0.700000 -0:29 Constant: -0:29 0.750000 -0:29 Constant: -0:29 0 (const int) -0:29 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:23 Constant: -0:23 0.100000 -0:23 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:24 Constant: -0:24 0.200000 -0:24 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:25 Constant: -0:25 0.300000 -0:25 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:27 Constant: -0:27 0.100000 -0:27 0.200000 -0:27 0.300000 -0:27 Constant: -0:27 0.750000 -0:27 Constant: -0:27 0 (const int) -0:27 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 Constant: -0:28 0.300000 -0:28 0.400000 -0:28 0.500000 -0:28 Constant: -0:28 0.750000 -0:28 Constant: -0:28 0 (const int) -0:28 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 Constant: -0:29 0.500000 -0:29 0.600000 -0:29 0.700000 -0:29 Constant: -0:29 0.750000 -0:29 Constant: -0:29 0 (const int) -0:29 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): 8000a -// 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 37(g_tTex1di4) Binding 2 - Decorate 52(g_tTex1du4) DescriptorSet 0 - Decorate 52(g_tTex1du4) Binding 3 - Decorate 64(g_tTex2df4) DescriptorSet 0 - Decorate 64(g_tTex2df4) Binding 4 - Decorate 77(g_tTex2di4) DescriptorSet 0 - Decorate 77(g_tTex2di4) Binding 5 - Decorate 88(g_tTex2du4) DescriptorSet 0 - Decorate 88(g_tTex2du4) Binding 6 - 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/Test/baseResults/hlsl.scalar-length.frag.out b/deps/glslang/Test/baseResults/hlsl.scalar-length.frag.out deleted file mode 100644 index c09216ae..00000000 --- a/deps/glslang/Test/baseResults/hlsl.scalar-length.frag.out +++ /dev/null @@ -1,112 +0,0 @@ -hlsl.scalar-length.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:2 Function Definition: @main( ( temp 4-component vector of float) -0:2 Function Parameters: -0:? Sequence -0:3 Sequence -0:3 move second child to first child ( temp 4-component vector of float) -0:3 'test' ( temp 4-component vector of float) -0:3 Constant: -0:3 0.000000 -0:3 1.000000 -0:3 2.000000 -0:3 3.000000 -0:5 Branch: Return with expression -0:5 Construct vec4 ( temp 4-component vector of float) -0:5 length ( temp float) -0:5 direct index ( temp float) -0:5 'test' ( temp 4-component vector of float) -0:5 Constant: -0:5 3 (const int) -0:2 Function Definition: main( ( temp void) -0:2 Function Parameters: -0:? Sequence -0:2 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:2 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:2 Function Definition: @main( ( temp 4-component vector of float) -0:2 Function Parameters: -0:? Sequence -0:3 Sequence -0:3 move second child to first child ( temp 4-component vector of float) -0:3 'test' ( temp 4-component vector of float) -0:3 Constant: -0:3 0.000000 -0:3 1.000000 -0:3 2.000000 -0:3 3.000000 -0:5 Branch: Return with expression -0:5 Construct vec4 ( temp 4-component vector of float) -0:5 length ( temp float) -0:5 direct index ( temp float) -0:5 'test' ( temp 4-component vector of float) -0:5 Constant: -0:5 3 (const int) -0:2 Function Definition: main( ( temp void) -0:2 Function Parameters: -0:? Sequence -0:2 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:2 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 30 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 28 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 9 "@main(" - Name 12 "test" - Name 28 "@entryPointOutput" - Decorate 28(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 11: TypePointer Function 7(fvec4) - 13: 6(float) Constant 0 - 14: 6(float) Constant 1065353216 - 15: 6(float) Constant 1073741824 - 16: 6(float) Constant 1077936128 - 17: 7(fvec4) ConstantComposite 13 14 15 16 - 18: TypeInt 32 0 - 19: 18(int) Constant 3 - 20: TypePointer Function 6(float) - 27: TypePointer Output 7(fvec4) -28(@entryPointOutput): 27(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 29: 7(fvec4) FunctionCall 9(@main() - Store 28(@entryPointOutput) 29 - Return - FunctionEnd - 9(@main(): 7(fvec4) Function None 8 - 10: Label - 12(test): 11(ptr) Variable Function - Store 12(test) 17 - 21: 20(ptr) AccessChain 12(test) 19 - 22: 6(float) Load 21 - 23: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 22 - 24: 7(fvec4) CompositeConstruct 23 23 23 23 - ReturnValue 24 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.scalar2matrix.frag.out b/deps/glslang/Test/baseResults/hlsl.scalar2matrix.frag.out deleted file mode 100644 index 62980dd6..00000000 --- a/deps/glslang/Test/baseResults/hlsl.scalar2matrix.frag.out +++ /dev/null @@ -1,506 +0,0 @@ -hlsl.scalar2matrix.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:2 Function Definition: Fn1(mf44; ( temp void) -0:2 Function Parameters: -0:2 'p' ( in 4X4 matrix of float) -0:5 Function Definition: @main( ( temp 4-component vector of float) -0:5 Function Parameters: -0:? Sequence -0:10 Sequence -0:10 move second child to first child ( temp 4X4 matrix of float) -0:10 'mat1' ( temp 4X4 matrix of float) -0:10 Constant: -0:10 0.250000 -0:10 0.250000 -0:10 0.250000 -0:10 0.250000 -0:10 0.250000 -0:10 0.250000 -0:10 0.250000 -0:10 0.250000 -0:10 0.250000 -0:10 0.250000 -0:10 0.250000 -0:10 0.250000 -0:10 0.250000 -0:10 0.250000 -0:10 0.250000 -0:10 0.250000 -0:11 Sequence -0:11 move second child to first child ( temp 4X4 matrix of float) -0:11 'mat2' ( temp 4X4 matrix of float) -0:11 Constant: -0:11 3.000000 -0:11 3.100000 -0:11 3.200000 -0:11 0.000000 -0:11 0.000000 -0:11 0.000000 -0:11 0.000000 -0:11 0.000000 -0:11 0.000000 -0:11 0.000000 -0:11 0.000000 -0:11 0.000000 -0:11 0.000000 -0:11 0.000000 -0:11 0.000000 -0:11 0.000000 -0:12 Sequence -0:12 move second child to first child ( temp 4X4 matrix of float) -0:12 'mat3' ( temp 4X4 matrix of float) -0:12 Constant: -0:12 0.375000 -0:12 0.375000 -0:12 0.375000 -0:12 0.375000 -0:12 0.375000 -0:12 0.375000 -0:12 0.375000 -0:12 0.375000 -0:12 0.375000 -0:12 0.375000 -0:12 0.375000 -0:12 0.375000 -0:12 0.375000 -0:12 0.375000 -0:12 0.375000 -0:12 0.375000 -0:16 move second child to first child ( temp 4X4 matrix of float) -0:16 'mat4' ( temp 4X4 matrix of float) -0:16 Constant: -0:16 0.750000 -0:16 0.750000 -0:16 0.750000 -0:16 0.750000 -0:16 0.750000 -0:16 0.750000 -0:16 0.750000 -0:16 0.750000 -0:16 0.750000 -0:16 0.750000 -0:16 0.750000 -0:16 0.750000 -0:16 0.750000 -0:16 0.750000 -0:16 0.750000 -0:16 0.750000 -0:17 move second child to first child ( temp 4X4 matrix of float) -0:17 'mat4' ( temp 4X4 matrix of float) -0:17 Constant: -0:17 4.000000 -0:17 4.100000 -0:17 4.200000 -0:17 0.000000 -0:17 0.000000 -0:17 0.000000 -0:17 0.000000 -0:17 0.000000 -0:17 0.000000 -0:17 0.000000 -0:17 0.000000 -0:17 0.000000 -0:17 0.000000 -0:17 0.000000 -0:17 0.000000 -0:17 0.000000 -0:18 move second child to first child ( temp 4X4 matrix of float) -0:18 'mat4' ( temp 4X4 matrix of float) -0:18 Constant: -0:18 0.500000 -0:18 0.500000 -0:18 0.500000 -0:18 0.500000 -0:18 0.500000 -0:18 0.500000 -0:18 0.500000 -0:18 0.500000 -0:18 0.500000 -0:18 0.500000 -0:18 0.500000 -0:18 0.500000 -0:18 0.500000 -0:18 0.500000 -0:18 0.500000 -0:18 0.500000 -0:20 matrix scale second child into first child ( temp 4X4 matrix of float) -0:20 'mat4' ( temp 4X4 matrix of float) -0:20 Constant: -0:20 0.750000 -0:21 add second child into first child ( temp 4X4 matrix of float) -0:21 'mat4' ( temp 4X4 matrix of float) -0:21 Constant: -0:21 0.750000 -0:22 subtract second child into first child ( temp 4X4 matrix of float) -0:22 'mat4' ( temp 4X4 matrix of float) -0:22 Constant: -0:22 0.500000 -0:23 divide second child into first child ( temp 4X4 matrix of float) -0:23 'mat4' ( temp 4X4 matrix of float) -0:23 Constant: -0:23 2.000000 -0:25 Function Call: Fn1(mf44; ( temp void) -0:25 Constant: -0:25 5.000000 -0:25 5.000000 -0:25 5.000000 -0:25 5.000000 -0:25 5.000000 -0:25 5.000000 -0:25 5.000000 -0:25 5.000000 -0:25 5.000000 -0:25 5.000000 -0:25 5.000000 -0:25 5.000000 -0:25 5.000000 -0:25 5.000000 -0:25 5.000000 -0:25 5.000000 -0:27 Branch: Return with expression -0:27 add ( temp 4-component vector of float) -0:27 add ( temp 4-component vector of float) -0:27 Constant: -0:27 0.300000 -0:27 0.300000 -0:27 0.300000 -0:27 0.300000 -0:27 direct index ( temp 4-component vector of float) -0:27 'mat1' ( temp 4X4 matrix of float) -0:27 Constant: -0:27 1 (const int) -0:27 direct index ( temp 4-component vector of float) -0:27 'mat4' ( temp 4X4 matrix of float) -0:27 Constant: -0:27 2 (const int) -0:5 Function Definition: main( ( temp void) -0:5 Function Parameters: -0:? Sequence -0:5 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:5 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:2 Function Definition: Fn1(mf44; ( temp void) -0:2 Function Parameters: -0:2 'p' ( in 4X4 matrix of float) -0:5 Function Definition: @main( ( temp 4-component vector of float) -0:5 Function Parameters: -0:? Sequence -0:10 Sequence -0:10 move second child to first child ( temp 4X4 matrix of float) -0:10 'mat1' ( temp 4X4 matrix of float) -0:10 Constant: -0:10 0.250000 -0:10 0.250000 -0:10 0.250000 -0:10 0.250000 -0:10 0.250000 -0:10 0.250000 -0:10 0.250000 -0:10 0.250000 -0:10 0.250000 -0:10 0.250000 -0:10 0.250000 -0:10 0.250000 -0:10 0.250000 -0:10 0.250000 -0:10 0.250000 -0:10 0.250000 -0:11 Sequence -0:11 move second child to first child ( temp 4X4 matrix of float) -0:11 'mat2' ( temp 4X4 matrix of float) -0:11 Constant: -0:11 3.000000 -0:11 3.100000 -0:11 3.200000 -0:11 0.000000 -0:11 0.000000 -0:11 0.000000 -0:11 0.000000 -0:11 0.000000 -0:11 0.000000 -0:11 0.000000 -0:11 0.000000 -0:11 0.000000 -0:11 0.000000 -0:11 0.000000 -0:11 0.000000 -0:11 0.000000 -0:12 Sequence -0:12 move second child to first child ( temp 4X4 matrix of float) -0:12 'mat3' ( temp 4X4 matrix of float) -0:12 Constant: -0:12 0.375000 -0:12 0.375000 -0:12 0.375000 -0:12 0.375000 -0:12 0.375000 -0:12 0.375000 -0:12 0.375000 -0:12 0.375000 -0:12 0.375000 -0:12 0.375000 -0:12 0.375000 -0:12 0.375000 -0:12 0.375000 -0:12 0.375000 -0:12 0.375000 -0:12 0.375000 -0:16 move second child to first child ( temp 4X4 matrix of float) -0:16 'mat4' ( temp 4X4 matrix of float) -0:16 Constant: -0:16 0.750000 -0:16 0.750000 -0:16 0.750000 -0:16 0.750000 -0:16 0.750000 -0:16 0.750000 -0:16 0.750000 -0:16 0.750000 -0:16 0.750000 -0:16 0.750000 -0:16 0.750000 -0:16 0.750000 -0:16 0.750000 -0:16 0.750000 -0:16 0.750000 -0:16 0.750000 -0:17 move second child to first child ( temp 4X4 matrix of float) -0:17 'mat4' ( temp 4X4 matrix of float) -0:17 Constant: -0:17 4.000000 -0:17 4.100000 -0:17 4.200000 -0:17 0.000000 -0:17 0.000000 -0:17 0.000000 -0:17 0.000000 -0:17 0.000000 -0:17 0.000000 -0:17 0.000000 -0:17 0.000000 -0:17 0.000000 -0:17 0.000000 -0:17 0.000000 -0:17 0.000000 -0:17 0.000000 -0:18 move second child to first child ( temp 4X4 matrix of float) -0:18 'mat4' ( temp 4X4 matrix of float) -0:18 Constant: -0:18 0.500000 -0:18 0.500000 -0:18 0.500000 -0:18 0.500000 -0:18 0.500000 -0:18 0.500000 -0:18 0.500000 -0:18 0.500000 -0:18 0.500000 -0:18 0.500000 -0:18 0.500000 -0:18 0.500000 -0:18 0.500000 -0:18 0.500000 -0:18 0.500000 -0:18 0.500000 -0:20 matrix scale second child into first child ( temp 4X4 matrix of float) -0:20 'mat4' ( temp 4X4 matrix of float) -0:20 Constant: -0:20 0.750000 -0:21 add second child into first child ( temp 4X4 matrix of float) -0:21 'mat4' ( temp 4X4 matrix of float) -0:21 Constant: -0:21 0.750000 -0:22 subtract second child into first child ( temp 4X4 matrix of float) -0:22 'mat4' ( temp 4X4 matrix of float) -0:22 Constant: -0:22 0.500000 -0:23 divide second child into first child ( temp 4X4 matrix of float) -0:23 'mat4' ( temp 4X4 matrix of float) -0:23 Constant: -0:23 2.000000 -0:25 Function Call: Fn1(mf44; ( temp void) -0:25 Constant: -0:25 5.000000 -0:25 5.000000 -0:25 5.000000 -0:25 5.000000 -0:25 5.000000 -0:25 5.000000 -0:25 5.000000 -0:25 5.000000 -0:25 5.000000 -0:25 5.000000 -0:25 5.000000 -0:25 5.000000 -0:25 5.000000 -0:25 5.000000 -0:25 5.000000 -0:25 5.000000 -0:27 Branch: Return with expression -0:27 add ( temp 4-component vector of float) -0:27 add ( temp 4-component vector of float) -0:27 Constant: -0:27 0.300000 -0:27 0.300000 -0:27 0.300000 -0:27 0.300000 -0:27 direct index ( temp 4-component vector of float) -0:27 'mat1' ( temp 4X4 matrix of float) -0:27 Constant: -0:27 1 (const int) -0:27 direct index ( temp 4-component vector of float) -0:27 'mat4' ( temp 4X4 matrix of float) -0:27 Constant: -0:27 2 (const int) -0:5 Function Definition: main( ( temp void) -0:5 Function Parameters: -0:? Sequence -0:5 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:5 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 96 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 94 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 12 "Fn1(mf44;" - Name 11 "p" - Name 15 "@main(" - Name 17 "mat1" - Name 21 "mat2" - Name 29 "mat3" - Name 33 "mat4" - Name 77 "param" - Name 94 "@entryPointOutput" - Decorate 94(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeMatrix 7(fvec4) 4 - 9: TypePointer Function 8 - 10: TypeFunction 2 9(ptr) - 14: TypeFunction 7(fvec4) - 18: 6(float) Constant 1048576000 - 19: 7(fvec4) ConstantComposite 18 18 18 18 - 20: 8 ConstantComposite 19 19 19 19 - 22: 6(float) Constant 1077936128 - 23: 6(float) Constant 1078355558 - 24: 6(float) Constant 1078774989 - 25: 6(float) Constant 0 - 26: 7(fvec4) ConstantComposite 22 23 24 25 - 27: 7(fvec4) ConstantComposite 25 25 25 25 - 28: 8 ConstantComposite 26 27 27 27 - 30: 6(float) Constant 1052770304 - 31: 7(fvec4) ConstantComposite 30 30 30 30 - 32: 8 ConstantComposite 31 31 31 31 - 34: 6(float) Constant 1061158912 - 35: 7(fvec4) ConstantComposite 34 34 34 34 - 36: 8 ConstantComposite 35 35 35 35 - 37: 6(float) Constant 1082130432 - 38: 6(float) Constant 1082340147 - 39: 6(float) Constant 1082549862 - 40: 7(fvec4) ConstantComposite 37 38 39 25 - 41: 8 ConstantComposite 40 27 27 27 - 42: 6(float) Constant 1056964608 - 43: 7(fvec4) ConstantComposite 42 42 42 42 - 44: 8 ConstantComposite 43 43 43 43 - 69: 6(float) Constant 1073741824 - 71: 6(float) Constant 1065353216 - 74: 6(float) Constant 1084227584 - 75: 7(fvec4) ConstantComposite 74 74 74 74 - 76: 8 ConstantComposite 75 75 75 75 - 79: 6(float) Constant 1050253722 - 80: 7(fvec4) ConstantComposite 79 79 79 79 - 81: TypeInt 32 1 - 82: 81(int) Constant 1 - 83: TypePointer Function 7(fvec4) - 87: 81(int) Constant 2 - 93: TypePointer Output 7(fvec4) -94(@entryPointOutput): 93(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 95: 7(fvec4) FunctionCall 15(@main() - Store 94(@entryPointOutput) 95 - Return - FunctionEnd - 12(Fn1(mf44;): 2 Function None 10 - 11(p): 9(ptr) FunctionParameter - 13: Label - Return - FunctionEnd - 15(@main(): 7(fvec4) Function None 14 - 16: Label - 17(mat1): 9(ptr) Variable Function - 21(mat2): 9(ptr) Variable Function - 29(mat3): 9(ptr) Variable Function - 33(mat4): 9(ptr) Variable Function - 77(param): 9(ptr) Variable Function - Store 17(mat1) 20 - Store 21(mat2) 28 - Store 29(mat3) 32 - Store 33(mat4) 36 - Store 33(mat4) 41 - Store 33(mat4) 44 - 45: 8 Load 33(mat4) - 46: 8 MatrixTimesScalar 45 34 - Store 33(mat4) 46 - 47: 8 Load 33(mat4) - 48: 7(fvec4) CompositeConstruct 34 34 34 34 - 49: 7(fvec4) CompositeExtract 47 0 - 50: 7(fvec4) FAdd 49 48 - 51: 7(fvec4) CompositeExtract 47 1 - 52: 7(fvec4) FAdd 51 48 - 53: 7(fvec4) CompositeExtract 47 2 - 54: 7(fvec4) FAdd 53 48 - 55: 7(fvec4) CompositeExtract 47 3 - 56: 7(fvec4) FAdd 55 48 - 57: 8 CompositeConstruct 50 52 54 56 - Store 33(mat4) 57 - 58: 8 Load 33(mat4) - 59: 7(fvec4) CompositeConstruct 42 42 42 42 - 60: 7(fvec4) CompositeExtract 58 0 - 61: 7(fvec4) FSub 60 59 - 62: 7(fvec4) CompositeExtract 58 1 - 63: 7(fvec4) FSub 62 59 - 64: 7(fvec4) CompositeExtract 58 2 - 65: 7(fvec4) FSub 64 59 - 66: 7(fvec4) CompositeExtract 58 3 - 67: 7(fvec4) FSub 66 59 - 68: 8 CompositeConstruct 61 63 65 67 - Store 33(mat4) 68 - 70: 8 Load 33(mat4) - 72: 6(float) FDiv 71 69 - 73: 8 MatrixTimesScalar 70 72 - Store 33(mat4) 73 - Store 77(param) 76 - 78: 2 FunctionCall 12(Fn1(mf44;) 77(param) - 84: 83(ptr) AccessChain 17(mat1) 82 - 85: 7(fvec4) Load 84 - 86: 7(fvec4) FAdd 80 85 - 88: 83(ptr) AccessChain 33(mat4) 87 - 89: 7(fvec4) Load 88 - 90: 7(fvec4) FAdd 86 89 - ReturnValue 90 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.scalarCast.vert.out b/deps/glslang/Test/baseResults/hlsl.scalarCast.vert.out deleted file mode 100644 index 17356f94..00000000 --- a/deps/glslang/Test/baseResults/hlsl.scalarCast.vert.out +++ /dev/null @@ -1,493 +0,0 @@ -hlsl.scalarCast.vert -Shader version: 500 -0:? Sequence -0:5 Function Definition: r0( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:5 Function Parameters: -0:? Sequence -0:7 Branch: Return with expression -0:7 Constant: -0:7 2.000000 -0:7 2.000000 -0:7 2.000000 -0:7 2.000000 -0:7 2.000000 -0:7 2.000000 -0:9 Function Definition: r1( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:9 Function Parameters: -0:? Sequence -0:11 Branch: Return with expression -0:11 Constant: -0:11 3.000000 -0:11 3.000000 -0:11 3.000000 -0:11 3.000000 -0:11 3.000000 -0:11 3.000000 -0:13 Function Definition: r2( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:13 Function Parameters: -0:? Sequence -0:15 Branch: Return with expression -0:15 Constant: -0:15 0.909297 -0:15 0.909297 -0:15 0.909297 -0:15 0.909297 -0:15 0.909297 -0:15 0.909297 -0:17 Function Definition: r3( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:17 Function Parameters: -0:? Sequence -0:18 Sequence -0:18 move second child to first child ( temp float) -0:18 'f' ( temp float) -0:18 Constant: -0:18 2.000000 -0:19 Branch: Return with expression -0:19 Construct structure ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:19 Construct vec4 ( temp 4-component vector of float) -0:19 'f' ( temp float) -0:19 'f' ( temp float) -0:19 'f' ( temp float) -0:19 'f' ( temp float) -0:19 Construct vec2 ( temp 2-component vector of float) -0:19 'f' ( temp float) -0:19 'f' ( temp float) -0:21 Function Definition: r4( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:21 Function Parameters: -0:? Sequence -0:22 Sequence -0:22 move second child to first child ( temp float) -0:22 'f' ( temp float) -0:22 Constant: -0:22 2.000000 -0:23 Branch: Return with expression -0:23 Comma ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:23 move second child to first child ( temp float) -0:23 'scalarCopy' ( temp float) -0:23 add ( temp float) -0:23 'f' ( temp float) -0:23 Constant: -0:23 1.000000 -0:23 Construct structure ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:23 Construct vec4 ( temp 4-component vector of float) -0:23 'scalarCopy' ( temp float) -0:23 'scalarCopy' ( temp float) -0:23 'scalarCopy' ( temp float) -0:23 'scalarCopy' ( temp float) -0:23 Construct vec2 ( temp 2-component vector of float) -0:23 'scalarCopy' ( temp float) -0:23 'scalarCopy' ( temp float) -0:25 Function Definition: r5( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:25 Function Parameters: -0:? Sequence -0:26 Sequence -0:26 move second child to first child ( temp float) -0:26 'f' ( temp float) -0:26 Constant: -0:26 2.000000 -0:27 Branch: Return with expression -0:27 Comma ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:27 move second child to first child ( temp float) -0:27 'scalarCopy' ( temp float) -0:27 sine ( temp float) -0:27 'f' ( temp float) -0:27 Construct structure ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:27 Construct vec4 ( temp 4-component vector of float) -0:27 'scalarCopy' ( temp float) -0:27 'scalarCopy' ( temp float) -0:27 'scalarCopy' ( temp float) -0:27 'scalarCopy' ( temp float) -0:27 Construct vec2 ( temp 2-component vector of float) -0:27 'scalarCopy' ( temp float) -0:27 'scalarCopy' ( temp float) -0:29 Function Definition: @main( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:29 Function Parameters: -0:? Sequence -0:30 Sequence -0:30 move second child to first child ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:30 'v0' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:30 Function Call: r0( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:31 Sequence -0:31 move second child to first child ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:31 'v1' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:31 Function Call: r1( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:32 Sequence -0:32 move second child to first child ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:32 'v2' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:32 Function Call: r2( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:33 Sequence -0:33 move second child to first child ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:33 'v3' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:33 Function Call: r3( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:34 Sequence -0:34 move second child to first child ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:34 'v4' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:34 Function Call: r4( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:35 Sequence -0:35 move second child to first child ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:35 'v5' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:35 Function Call: r5( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:36 Branch: Return with expression -0:36 Constant: -0:36 1.000000 -0:36 1.000000 -0:36 1.000000 -0:36 1.000000 -0:36 1.000000 -0:36 1.000000 -0:29 Function Definition: main( ( temp void) -0:29 Function Parameters: -0:? Sequence -0:29 Sequence -0:29 move second child to first child ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:29 Function Call: @main( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:29 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.position' ( out 4-component vector of float Position) -0:29 position: direct index for structure ( temp 4-component vector of float) -0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:29 Constant: -0:29 0 (const int) -0:29 move second child to first child ( temp 2-component vector of float) -0:? '@entryPointOutput.texCoord' (layout( location=0) out 2-component vector of float) -0:29 texCoord: direct index for structure ( temp 2-component vector of float) -0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:29 Constant: -0:29 1 (const int) -0:? Linker Objects -0:? '@entryPointOutput.position' ( out 4-component vector of float Position) -0:? '@entryPointOutput.texCoord' (layout( location=0) out 2-component vector of float) - - -Linked vertex stage: - - -Shader version: 500 -0:? Sequence -0:5 Function Definition: r0( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:5 Function Parameters: -0:? Sequence -0:7 Branch: Return with expression -0:7 Constant: -0:7 2.000000 -0:7 2.000000 -0:7 2.000000 -0:7 2.000000 -0:7 2.000000 -0:7 2.000000 -0:9 Function Definition: r1( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:9 Function Parameters: -0:? Sequence -0:11 Branch: Return with expression -0:11 Constant: -0:11 3.000000 -0:11 3.000000 -0:11 3.000000 -0:11 3.000000 -0:11 3.000000 -0:11 3.000000 -0:13 Function Definition: r2( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:13 Function Parameters: -0:? Sequence -0:15 Branch: Return with expression -0:15 Constant: -0:15 0.909297 -0:15 0.909297 -0:15 0.909297 -0:15 0.909297 -0:15 0.909297 -0:15 0.909297 -0:17 Function Definition: r3( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:17 Function Parameters: -0:? Sequence -0:18 Sequence -0:18 move second child to first child ( temp float) -0:18 'f' ( temp float) -0:18 Constant: -0:18 2.000000 -0:19 Branch: Return with expression -0:19 Construct structure ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:19 Construct vec4 ( temp 4-component vector of float) -0:19 'f' ( temp float) -0:19 'f' ( temp float) -0:19 'f' ( temp float) -0:19 'f' ( temp float) -0:19 Construct vec2 ( temp 2-component vector of float) -0:19 'f' ( temp float) -0:19 'f' ( temp float) -0:21 Function Definition: r4( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:21 Function Parameters: -0:? Sequence -0:22 Sequence -0:22 move second child to first child ( temp float) -0:22 'f' ( temp float) -0:22 Constant: -0:22 2.000000 -0:23 Branch: Return with expression -0:23 Comma ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:23 move second child to first child ( temp float) -0:23 'scalarCopy' ( temp float) -0:23 add ( temp float) -0:23 'f' ( temp float) -0:23 Constant: -0:23 1.000000 -0:23 Construct structure ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:23 Construct vec4 ( temp 4-component vector of float) -0:23 'scalarCopy' ( temp float) -0:23 'scalarCopy' ( temp float) -0:23 'scalarCopy' ( temp float) -0:23 'scalarCopy' ( temp float) -0:23 Construct vec2 ( temp 2-component vector of float) -0:23 'scalarCopy' ( temp float) -0:23 'scalarCopy' ( temp float) -0:25 Function Definition: r5( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:25 Function Parameters: -0:? Sequence -0:26 Sequence -0:26 move second child to first child ( temp float) -0:26 'f' ( temp float) -0:26 Constant: -0:26 2.000000 -0:27 Branch: Return with expression -0:27 Comma ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:27 move second child to first child ( temp float) -0:27 'scalarCopy' ( temp float) -0:27 sine ( temp float) -0:27 'f' ( temp float) -0:27 Construct structure ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:27 Construct vec4 ( temp 4-component vector of float) -0:27 'scalarCopy' ( temp float) -0:27 'scalarCopy' ( temp float) -0:27 'scalarCopy' ( temp float) -0:27 'scalarCopy' ( temp float) -0:27 Construct vec2 ( temp 2-component vector of float) -0:27 'scalarCopy' ( temp float) -0:27 'scalarCopy' ( temp float) -0:29 Function Definition: @main( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:29 Function Parameters: -0:? Sequence -0:30 Sequence -0:30 move second child to first child ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:30 'v0' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:30 Function Call: r0( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:31 Sequence -0:31 move second child to first child ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:31 'v1' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:31 Function Call: r1( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:32 Sequence -0:32 move second child to first child ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:32 'v2' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:32 Function Call: r2( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:33 Sequence -0:33 move second child to first child ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:33 'v3' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:33 Function Call: r3( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:34 Sequence -0:34 move second child to first child ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:34 'v4' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:34 Function Call: r4( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:35 Sequence -0:35 move second child to first child ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:35 'v5' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:35 Function Call: r5( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:36 Branch: Return with expression -0:36 Constant: -0:36 1.000000 -0:36 1.000000 -0:36 1.000000 -0:36 1.000000 -0:36 1.000000 -0:36 1.000000 -0:29 Function Definition: main( ( temp void) -0:29 Function Parameters: -0:? Sequence -0:29 Sequence -0:29 move second child to first child ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:29 Function Call: @main( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:29 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.position' ( out 4-component vector of float Position) -0:29 position: direct index for structure ( temp 4-component vector of float) -0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:29 Constant: -0:29 0 (const int) -0:29 move second child to first child ( temp 2-component vector of float) -0:? '@entryPointOutput.texCoord' (layout( location=0) out 2-component vector of float) -0:29 texCoord: direct index for structure ( temp 2-component vector of float) -0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) -0:29 Constant: -0:29 1 (const int) -0:? Linker Objects -0:? '@entryPointOutput.position' ( out 4-component vector of float Position) -0:? '@entryPointOutput.texCoord' (layout( location=0) out 2-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 120 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 108 115 - Source HLSL 500 - Name 4 "main" - Name 9 "VertexOut" - MemberName 9(VertexOut) 0 "position" - MemberName 9(VertexOut) 1 "texCoord" - Name 11 "r0(" - Name 13 "r1(" - Name 15 "r2(" - Name 17 "r3(" - Name 19 "r4(" - Name 21 "r5(" - Name 23 "@main(" - Name 44 "f" - Name 56 "f" - Name 57 "scalarCopy" - Name 72 "f" - Name 73 "scalarCopy" - Name 88 "v0" - Name 90 "v1" - Name 92 "v2" - Name 94 "v3" - Name 96 "v4" - Name 98 "v5" - Name 105 "flattenTemp" - Name 108 "@entryPointOutput.position" - Name 115 "@entryPointOutput.texCoord" - Decorate 108(@entryPointOutput.position) BuiltIn Position - Decorate 115(@entryPointOutput.texCoord) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeVector 6(float) 2 - 9(VertexOut): TypeStruct 7(fvec4) 8(fvec2) - 10: TypeFunction 9(VertexOut) - 25: 6(float) Constant 1073741824 - 26: 7(fvec4) ConstantComposite 25 25 25 25 - 27: 8(fvec2) ConstantComposite 25 25 - 28:9(VertexOut) ConstantComposite 26 27 - 31: 6(float) Constant 1077936128 - 32: 7(fvec4) ConstantComposite 31 31 31 31 - 33: 8(fvec2) ConstantComposite 31 31 - 34:9(VertexOut) ConstantComposite 32 33 - 37: 6(float) Constant 1063831479 - 38: 7(fvec4) ConstantComposite 37 37 37 37 - 39: 8(fvec2) ConstantComposite 37 37 - 40:9(VertexOut) ConstantComposite 38 39 - 43: TypePointer Function 6(float) - 59: 6(float) Constant 1065353216 - 87: TypePointer Function 9(VertexOut) - 100: 7(fvec4) ConstantComposite 59 59 59 59 - 101: 8(fvec2) ConstantComposite 59 59 - 102:9(VertexOut) ConstantComposite 100 101 - 107: TypePointer Output 7(fvec4) -108(@entryPointOutput.position): 107(ptr) Variable Output - 109: TypeInt 32 1 - 110: 109(int) Constant 0 - 111: TypePointer Function 7(fvec4) - 114: TypePointer Output 8(fvec2) -115(@entryPointOutput.texCoord): 114(ptr) Variable Output - 116: 109(int) Constant 1 - 117: TypePointer Function 8(fvec2) - 4(main): 2 Function None 3 - 5: Label -105(flattenTemp): 87(ptr) Variable Function - 106:9(VertexOut) FunctionCall 23(@main() - Store 105(flattenTemp) 106 - 112: 111(ptr) AccessChain 105(flattenTemp) 110 - 113: 7(fvec4) Load 112 - Store 108(@entryPointOutput.position) 113 - 118: 117(ptr) AccessChain 105(flattenTemp) 116 - 119: 8(fvec2) Load 118 - Store 115(@entryPointOutput.texCoord) 119 - Return - FunctionEnd - 11(r0():9(VertexOut) Function None 10 - 12: Label - ReturnValue 28 - FunctionEnd - 13(r1():9(VertexOut) Function None 10 - 14: Label - ReturnValue 34 - FunctionEnd - 15(r2():9(VertexOut) Function None 10 - 16: Label - ReturnValue 40 - FunctionEnd - 17(r3():9(VertexOut) Function None 10 - 18: Label - 44(f): 43(ptr) Variable Function - Store 44(f) 25 - 45: 6(float) Load 44(f) - 46: 6(float) Load 44(f) - 47: 6(float) Load 44(f) - 48: 6(float) Load 44(f) - 49: 7(fvec4) CompositeConstruct 45 46 47 48 - 50: 6(float) Load 44(f) - 51: 6(float) Load 44(f) - 52: 8(fvec2) CompositeConstruct 50 51 - 53:9(VertexOut) CompositeConstruct 49 52 - ReturnValue 53 - FunctionEnd - 19(r4():9(VertexOut) Function None 10 - 20: Label - 56(f): 43(ptr) Variable Function - 57(scalarCopy): 43(ptr) Variable Function - Store 56(f) 25 - 58: 6(float) Load 56(f) - 60: 6(float) FAdd 58 59 - Store 57(scalarCopy) 60 - 61: 6(float) Load 57(scalarCopy) - 62: 6(float) Load 57(scalarCopy) - 63: 6(float) Load 57(scalarCopy) - 64: 6(float) Load 57(scalarCopy) - 65: 7(fvec4) CompositeConstruct 61 62 63 64 - 66: 6(float) Load 57(scalarCopy) - 67: 6(float) Load 57(scalarCopy) - 68: 8(fvec2) CompositeConstruct 66 67 - 69:9(VertexOut) CompositeConstruct 65 68 - ReturnValue 69 - FunctionEnd - 21(r5():9(VertexOut) Function None 10 - 22: Label - 72(f): 43(ptr) Variable Function - 73(scalarCopy): 43(ptr) Variable Function - Store 72(f) 25 - 74: 6(float) Load 72(f) - 75: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 74 - Store 73(scalarCopy) 75 - 76: 6(float) Load 73(scalarCopy) - 77: 6(float) Load 73(scalarCopy) - 78: 6(float) Load 73(scalarCopy) - 79: 6(float) Load 73(scalarCopy) - 80: 7(fvec4) CompositeConstruct 76 77 78 79 - 81: 6(float) Load 73(scalarCopy) - 82: 6(float) Load 73(scalarCopy) - 83: 8(fvec2) CompositeConstruct 81 82 - 84:9(VertexOut) CompositeConstruct 80 83 - ReturnValue 84 - FunctionEnd - 23(@main():9(VertexOut) Function None 10 - 24: Label - 88(v0): 87(ptr) Variable Function - 90(v1): 87(ptr) Variable Function - 92(v2): 87(ptr) Variable Function - 94(v3): 87(ptr) Variable Function - 96(v4): 87(ptr) Variable Function - 98(v5): 87(ptr) Variable Function - 89:9(VertexOut) FunctionCall 11(r0() - Store 88(v0) 89 - 91:9(VertexOut) FunctionCall 13(r1() - Store 90(v1) 91 - 93:9(VertexOut) FunctionCall 15(r2() - Store 92(v2) 93 - 95:9(VertexOut) FunctionCall 17(r3() - Store 94(v3) 95 - 97:9(VertexOut) FunctionCall 19(r4() - Store 96(v4) 97 - 99:9(VertexOut) FunctionCall 21(r5() - Store 98(v5) 99 - ReturnValue 102 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.scope.frag.out b/deps/glslang/Test/baseResults/hlsl.scope.frag.out deleted file mode 100644 index 5d73bbad..00000000 --- a/deps/glslang/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): 8000a -// 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/Test/baseResults/hlsl.self_cast.frag.out b/deps/glslang/Test/baseResults/hlsl.self_cast.frag.out deleted file mode 100644 index ad4252ba..00000000 --- a/deps/glslang/Test/baseResults/hlsl.self_cast.frag.out +++ /dev/null @@ -1,130 +0,0 @@ -hlsl.self_cast.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:5 Function Definition: @main( ( temp void) -0:5 Function Parameters: -0:? Sequence -0:? Sequence -0:8 Sequence -0:8 move second child to first child ( temp structure{}) -0:8 'b' ( temp structure{}) -0:8 'a' ( temp structure{}) -0:? Sequence -0:13 Sequence -0:13 move second child to first child ( temp structure{ temp float f}) -0:13 'b' ( temp structure{ temp float f}) -0:13 'a' ( temp structure{ temp float f}) -0:? Sequence -0:18 Sequence -0:18 move second child to first child ( temp 2-element array of structure{}) -0:18 'b' ( temp 2-element array of structure{}) -0:18 'a' ( temp 2-element array of structure{}) -0:? Sequence -0:23 Sequence -0:23 move second child to first child ( temp 2-element array of structure{ temp float f}) -0:23 'b' ( temp 2-element array of structure{ temp float f}) -0:23 'a' ( temp 2-element array of structure{ temp float f}) -0:5 Function Definition: main( ( temp void) -0:5 Function Parameters: -0:? Sequence -0:5 Function Call: @main( ( temp void) -0:? Linker Objects - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:5 Function Definition: @main( ( temp void) -0:5 Function Parameters: -0:? Sequence -0:? Sequence -0:8 Sequence -0:8 move second child to first child ( temp structure{}) -0:8 'b' ( temp structure{}) -0:8 'a' ( temp structure{}) -0:? Sequence -0:13 Sequence -0:13 move second child to first child ( temp structure{ temp float f}) -0:13 'b' ( temp structure{ temp float f}) -0:13 'a' ( temp structure{ temp float f}) -0:? Sequence -0:18 Sequence -0:18 move second child to first child ( temp 2-element array of structure{}) -0:18 'b' ( temp 2-element array of structure{}) -0:18 'a' ( temp 2-element array of structure{}) -0:? Sequence -0:23 Sequence -0:23 move second child to first child ( temp 2-element array of structure{ temp float f}) -0:23 'b' ( temp 2-element array of structure{ temp float f}) -0:23 'a' ( temp 2-element array of structure{ temp float f}) -0:5 Function Definition: main( ( temp void) -0:5 Function Parameters: -0:? Sequence -0:5 Function Call: @main( ( temp void) -0:? Linker Objects - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 32 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 6 "@main(" - Name 8 "Test0" - Name 10 "b" - Name 11 "a" - Name 14 "Test1" - MemberName 14(Test1) 0 "f" - Name 16 "b" - Name 17 "a" - Name 23 "b" - Name 24 "a" - Name 28 "b" - Name 29 "a" - 2: TypeVoid - 3: TypeFunction 2 - 8(Test0): TypeStruct - 9: TypePointer Function 8(Test0) - 13: TypeFloat 32 - 14(Test1): TypeStruct 13(float) - 15: TypePointer Function 14(Test1) - 19: TypeInt 32 0 - 20: 19(int) Constant 2 - 21: TypeArray 8(Test0) 20 - 22: TypePointer Function 21 - 26: TypeArray 14(Test1) 20 - 27: TypePointer Function 26 - 4(main): 2 Function None 3 - 5: Label - 31: 2 FunctionCall 6(@main() - Return - FunctionEnd - 6(@main(): 2 Function None 3 - 7: Label - 10(b): 9(ptr) Variable Function - 11(a): 9(ptr) Variable Function - 16(b): 15(ptr) Variable Function - 17(a): 15(ptr) Variable Function - 23(b): 22(ptr) Variable Function - 24(a): 22(ptr) Variable Function - 28(b): 27(ptr) Variable Function - 29(a): 27(ptr) Variable Function - 12: 8(Test0) Load 11(a) - Store 10(b) 12 - 18: 14(Test1) Load 17(a) - Store 16(b) 18 - 25: 21 Load 24(a) - Store 23(b) 25 - 30: 26 Load 29(a) - Store 28(b) 30 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.semantic-1.vert.out b/deps/glslang/Test/baseResults/hlsl.semantic-1.vert.out deleted file mode 100644 index 25fb5822..00000000 --- a/deps/glslang/Test/baseResults/hlsl.semantic-1.vert.out +++ /dev/null @@ -1,374 +0,0 @@ -hlsl.semantic-1.vert -Shader version: 500 -0:? Sequence -0:16 Function Definition: @main(vf4; ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) -0:16 Function Parameters: -0:16 'v' ( in 4-component vector of float) -0:? Sequence -0:18 move second child to first child ( temp 4-component vector of float) -0:18 pos: direct index for structure ( temp 4-component vector of float) -0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) -0:18 Constant: -0:18 0 (const int) -0:18 'v' ( in 4-component vector of float) -0:19 move second child to first child ( temp 2-component vector of float) -0:19 UV0: direct index for structure ( temp 2-component vector of float) -0:19 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) -0:19 Constant: -0:19 1 (const int) -0:19 Construct vec2 ( temp 2-component vector of float) -0:19 direct index ( temp float) -0:19 'v' ( in 4-component vector of float) -0:19 Constant: -0:19 0 (const int) -0:19 direct index ( temp float) -0:19 'v' ( in 4-component vector of float) -0:19 Constant: -0:19 0 (const int) -0:20 move second child to first child ( temp 2-component vector of float) -0:20 UV1: direct index for structure ( temp 2-component vector of float) -0:20 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) -0:20 Constant: -0:20 2 (const int) -0:20 Construct vec2 ( temp 2-component vector of float) -0:20 direct index ( temp float) -0:20 'v' ( in 4-component vector of float) -0:20 Constant: -0:20 1 (const int) -0:20 direct index ( temp float) -0:20 'v' ( in 4-component vector of float) -0:20 Constant: -0:20 1 (const int) -0:21 move second child to first child ( temp 2-component vector of float) -0:21 UV2: direct index for structure ( temp 2-component vector of float) -0:21 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) -0:21 Constant: -0:21 3 (const int) -0:21 Construct vec2 ( temp 2-component vector of float) -0:21 direct index ( temp float) -0:21 'v' ( in 4-component vector of float) -0:21 Constant: -0:21 2 (const int) -0:21 direct index ( temp float) -0:21 'v' ( in 4-component vector of float) -0:21 Constant: -0:21 2 (const int) -0:22 move second child to first child ( temp 2-component vector of float) -0:22 UV3: direct index for structure ( temp 2-component vector of float) -0:22 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) -0:22 Constant: -0:22 4 (const int) -0:22 Construct vec2 ( temp 2-component vector of float) -0:22 direct index ( temp float) -0:22 'v' ( in 4-component vector of float) -0:22 Constant: -0:22 3 (const int) -0:22 direct index ( temp float) -0:22 'v' ( in 4-component vector of float) -0:22 Constant: -0:22 3 (const int) -0:23 Branch: Return with expression -0:23 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) -0:16 Function Definition: main( ( temp void) -0:16 Function Parameters: -0:? Sequence -0:16 move second child to first child ( temp 4-component vector of float) -0:? 'v' ( temp 4-component vector of float) -0:? 'v' (layout( location=0) in 4-component vector of float) -0:16 Sequence -0:16 move second child to first child ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) -0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) -0:16 Function Call: @main(vf4; ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) -0:? 'v' ( temp 4-component vector of float) -0:16 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) -0:16 pos: direct index for structure ( temp 4-component vector of float) -0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) -0:16 Constant: -0:16 0 (const int) -0:16 move second child to first child ( temp 2-component vector of float) -0:? '@entryPointOutput.UV0' (layout( location=1) out 2-component vector of float) -0:16 UV0: direct index for structure ( temp 2-component vector of float) -0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) -0:16 Constant: -0:16 1 (const int) -0:16 move second child to first child ( temp 2-component vector of float) -0:? '@entryPointOutput.UV1' (layout( location=2) out 2-component vector of float) -0:16 UV1: direct index for structure ( temp 2-component vector of float) -0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) -0:16 Constant: -0:16 2 (const int) -0:16 move second child to first child ( temp 2-component vector of float) -0:? '@entryPointOutput.UV2' (layout( location=3) out 2-component vector of float) -0:16 UV2: direct index for structure ( temp 2-component vector of float) -0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) -0:16 Constant: -0:16 3 (const int) -0:16 move second child to first child ( temp 2-component vector of float) -0:? '@entryPointOutput.UV3' (layout( location=4) out 2-component vector of float) -0:16 UV3: direct index for structure ( temp 2-component vector of float) -0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) -0:16 Constant: -0:16 4 (const int) -0:? Linker Objects -0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) -0:? '@entryPointOutput.UV0' (layout( location=1) out 2-component vector of float) -0:? '@entryPointOutput.UV1' (layout( location=2) out 2-component vector of float) -0:? '@entryPointOutput.UV2' (layout( location=3) out 2-component vector of float) -0:? '@entryPointOutput.UV3' (layout( location=4) out 2-component vector of float) -0:? 'v' (layout( location=0) in 4-component vector of float) - - -Linked vertex stage: - - -Shader version: 500 -0:? Sequence -0:16 Function Definition: @main(vf4; ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) -0:16 Function Parameters: -0:16 'v' ( in 4-component vector of float) -0:? Sequence -0:18 move second child to first child ( temp 4-component vector of float) -0:18 pos: direct index for structure ( temp 4-component vector of float) -0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) -0:18 Constant: -0:18 0 (const int) -0:18 'v' ( in 4-component vector of float) -0:19 move second child to first child ( temp 2-component vector of float) -0:19 UV0: direct index for structure ( temp 2-component vector of float) -0:19 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) -0:19 Constant: -0:19 1 (const int) -0:19 Construct vec2 ( temp 2-component vector of float) -0:19 direct index ( temp float) -0:19 'v' ( in 4-component vector of float) -0:19 Constant: -0:19 0 (const int) -0:19 direct index ( temp float) -0:19 'v' ( in 4-component vector of float) -0:19 Constant: -0:19 0 (const int) -0:20 move second child to first child ( temp 2-component vector of float) -0:20 UV1: direct index for structure ( temp 2-component vector of float) -0:20 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) -0:20 Constant: -0:20 2 (const int) -0:20 Construct vec2 ( temp 2-component vector of float) -0:20 direct index ( temp float) -0:20 'v' ( in 4-component vector of float) -0:20 Constant: -0:20 1 (const int) -0:20 direct index ( temp float) -0:20 'v' ( in 4-component vector of float) -0:20 Constant: -0:20 1 (const int) -0:21 move second child to first child ( temp 2-component vector of float) -0:21 UV2: direct index for structure ( temp 2-component vector of float) -0:21 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) -0:21 Constant: -0:21 3 (const int) -0:21 Construct vec2 ( temp 2-component vector of float) -0:21 direct index ( temp float) -0:21 'v' ( in 4-component vector of float) -0:21 Constant: -0:21 2 (const int) -0:21 direct index ( temp float) -0:21 'v' ( in 4-component vector of float) -0:21 Constant: -0:21 2 (const int) -0:22 move second child to first child ( temp 2-component vector of float) -0:22 UV3: direct index for structure ( temp 2-component vector of float) -0:22 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) -0:22 Constant: -0:22 4 (const int) -0:22 Construct vec2 ( temp 2-component vector of float) -0:22 direct index ( temp float) -0:22 'v' ( in 4-component vector of float) -0:22 Constant: -0:22 3 (const int) -0:22 direct index ( temp float) -0:22 'v' ( in 4-component vector of float) -0:22 Constant: -0:22 3 (const int) -0:23 Branch: Return with expression -0:23 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) -0:16 Function Definition: main( ( temp void) -0:16 Function Parameters: -0:? Sequence -0:16 move second child to first child ( temp 4-component vector of float) -0:? 'v' ( temp 4-component vector of float) -0:? 'v' (layout( location=0) in 4-component vector of float) -0:16 Sequence -0:16 move second child to first child ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) -0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) -0:16 Function Call: @main(vf4; ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) -0:? 'v' ( temp 4-component vector of float) -0:16 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) -0:16 pos: direct index for structure ( temp 4-component vector of float) -0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) -0:16 Constant: -0:16 0 (const int) -0:16 move second child to first child ( temp 2-component vector of float) -0:? '@entryPointOutput.UV0' (layout( location=1) out 2-component vector of float) -0:16 UV0: direct index for structure ( temp 2-component vector of float) -0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) -0:16 Constant: -0:16 1 (const int) -0:16 move second child to first child ( temp 2-component vector of float) -0:? '@entryPointOutput.UV1' (layout( location=2) out 2-component vector of float) -0:16 UV1: direct index for structure ( temp 2-component vector of float) -0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) -0:16 Constant: -0:16 2 (const int) -0:16 move second child to first child ( temp 2-component vector of float) -0:? '@entryPointOutput.UV2' (layout( location=3) out 2-component vector of float) -0:16 UV2: direct index for structure ( temp 2-component vector of float) -0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) -0:16 Constant: -0:16 3 (const int) -0:16 move second child to first child ( temp 2-component vector of float) -0:? '@entryPointOutput.UV3' (layout( location=4) out 2-component vector of float) -0:16 UV3: direct index for structure ( temp 2-component vector of float) -0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) -0:16 Constant: -0:16 4 (const int) -0:? Linker Objects -0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) -0:? '@entryPointOutput.UV0' (layout( location=1) out 2-component vector of float) -0:? '@entryPointOutput.UV1' (layout( location=2) out 2-component vector of float) -0:? '@entryPointOutput.UV2' (layout( location=3) out 2-component vector of float) -0:? '@entryPointOutput.UV3' (layout( location=4) out 2-component vector of float) -0:? 'v' (layout( location=0) in 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 84 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 61 68 72 75 78 81 - Source HLSL 500 - Name 4 "main" - Name 10 "S" - MemberName 10(S) 0 "pos" - MemberName 10(S) 1 "UV0" - MemberName 10(S) 2 "UV1" - MemberName 10(S) 3 "UV2" - MemberName 10(S) 4 "UV3" - Name 13 "@main(vf4;" - Name 12 "v" - Name 16 "s" - Name 59 "v" - Name 61 "v" - Name 63 "flattenTemp" - Name 64 "param" - Name 68 "@entryPointOutput.pos" - Name 72 "@entryPointOutput.UV0" - Name 75 "@entryPointOutput.UV1" - Name 78 "@entryPointOutput.UV2" - Name 81 "@entryPointOutput.UV3" - Decorate 61(v) Location 0 - Decorate 68(@entryPointOutput.pos) Location 0 - Decorate 72(@entryPointOutput.UV0) Location 1 - Decorate 75(@entryPointOutput.UV1) Location 2 - Decorate 78(@entryPointOutput.UV2) Location 3 - Decorate 81(@entryPointOutput.UV3) Location 4 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 9: TypeVector 6(float) 2 - 10(S): TypeStruct 7(fvec4) 9(fvec2) 9(fvec2) 9(fvec2) 9(fvec2) - 11: TypeFunction 10(S) 8(ptr) - 15: TypePointer Function 10(S) - 17: TypeInt 32 1 - 18: 17(int) Constant 0 - 21: 17(int) Constant 1 - 22: TypeInt 32 0 - 23: 22(int) Constant 0 - 24: TypePointer Function 6(float) - 30: TypePointer Function 9(fvec2) - 32: 17(int) Constant 2 - 33: 22(int) Constant 1 - 40: 17(int) Constant 3 - 41: 22(int) Constant 2 - 48: 17(int) Constant 4 - 49: 22(int) Constant 3 - 60: TypePointer Input 7(fvec4) - 61(v): 60(ptr) Variable Input - 67: TypePointer Output 7(fvec4) -68(@entryPointOutput.pos): 67(ptr) Variable Output - 71: TypePointer Output 9(fvec2) -72(@entryPointOutput.UV0): 71(ptr) Variable Output -75(@entryPointOutput.UV1): 71(ptr) Variable Output -78(@entryPointOutput.UV2): 71(ptr) Variable Output -81(@entryPointOutput.UV3): 71(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 59(v): 8(ptr) Variable Function - 63(flattenTemp): 15(ptr) Variable Function - 64(param): 8(ptr) Variable Function - 62: 7(fvec4) Load 61(v) - Store 59(v) 62 - 65: 7(fvec4) Load 59(v) - Store 64(param) 65 - 66: 10(S) FunctionCall 13(@main(vf4;) 64(param) - Store 63(flattenTemp) 66 - 69: 8(ptr) AccessChain 63(flattenTemp) 18 - 70: 7(fvec4) Load 69 - Store 68(@entryPointOutput.pos) 70 - 73: 30(ptr) AccessChain 63(flattenTemp) 21 - 74: 9(fvec2) Load 73 - Store 72(@entryPointOutput.UV0) 74 - 76: 30(ptr) AccessChain 63(flattenTemp) 32 - 77: 9(fvec2) Load 76 - Store 75(@entryPointOutput.UV1) 77 - 79: 30(ptr) AccessChain 63(flattenTemp) 40 - 80: 9(fvec2) Load 79 - Store 78(@entryPointOutput.UV2) 80 - 82: 30(ptr) AccessChain 63(flattenTemp) 48 - 83: 9(fvec2) Load 82 - Store 81(@entryPointOutput.UV3) 83 - Return - FunctionEnd - 13(@main(vf4;): 10(S) Function None 11 - 12(v): 8(ptr) FunctionParameter - 14: Label - 16(s): 15(ptr) Variable Function - 19: 7(fvec4) Load 12(v) - 20: 8(ptr) AccessChain 16(s) 18 - Store 20 19 - 25: 24(ptr) AccessChain 12(v) 23 - 26: 6(float) Load 25 - 27: 24(ptr) AccessChain 12(v) 23 - 28: 6(float) Load 27 - 29: 9(fvec2) CompositeConstruct 26 28 - 31: 30(ptr) AccessChain 16(s) 21 - Store 31 29 - 34: 24(ptr) AccessChain 12(v) 33 - 35: 6(float) Load 34 - 36: 24(ptr) AccessChain 12(v) 33 - 37: 6(float) Load 36 - 38: 9(fvec2) CompositeConstruct 35 37 - 39: 30(ptr) AccessChain 16(s) 32 - Store 39 38 - 42: 24(ptr) AccessChain 12(v) 41 - 43: 6(float) Load 42 - 44: 24(ptr) AccessChain 12(v) 41 - 45: 6(float) Load 44 - 46: 9(fvec2) CompositeConstruct 43 45 - 47: 30(ptr) AccessChain 16(s) 40 - Store 47 46 - 50: 24(ptr) AccessChain 12(v) 49 - 51: 6(float) Load 50 - 52: 24(ptr) AccessChain 12(v) 49 - 53: 6(float) Load 52 - 54: 9(fvec2) CompositeConstruct 51 53 - 55: 30(ptr) AccessChain 16(s) 48 - Store 55 54 - 56: 10(S) Load 16(s) - ReturnValue 56 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.semantic.geom.out b/deps/glslang/Test/baseResults/hlsl.semantic.geom.out deleted file mode 100644 index 0aba0003..00000000 --- a/deps/glslang/Test/baseResults/hlsl.semantic.geom.out +++ /dev/null @@ -1,421 +0,0 @@ -hlsl.semantic.geom -Shader version: 500 -invocations = -1 -max_vertices = 4 -input primitive = triangles -output primitive = line_strip -0:? Sequence -0:13 Function Definition: @main(u1[3];struct-S-f1-f1-f1-u1-u1-i11; ( temp void) -0:13 Function Parameters: -0:13 'VertexID' ( in 3-element array of uint) -0:13 'OutputStream' ( out structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) -0:? Sequence -0:15 Sequence -0:15 Sequence -0:15 move second child to first child ( temp float) -0:? 'OutputStream.clip0' ( out float Position) -0:15 clip0: direct index for structure ( temp float) -0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) -0:15 Constant: -0:15 0 (const int) -0:? Sequence -0:15 move second child to first child ( temp float) -0:15 direct index ( out float ClipDistance) -0:? 'OutputStream.clip0' ( out 1-element array of float ClipDistance) -0:15 Constant: -0:15 0 (const int) -0:15 clip0: direct index for structure ( temp float) -0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) -0:15 Constant: -0:15 1 (const int) -0:? Sequence -0:15 move second child to first child ( temp float) -0:15 direct index ( out float CullDistance) -0:? 'OutputStream.cull0' ( out 1-element array of float CullDistance) -0:15 Constant: -0:15 0 (const int) -0:15 cull0: direct index for structure ( temp float) -0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) -0:15 Constant: -0:15 2 (const int) -0:15 move second child to first child ( temp uint) -0:? 'OutputStream.vpai' ( out uint ViewportIndex) -0:15 vpai: direct index for structure ( temp uint) -0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) -0:15 Constant: -0:15 3 (const int) -0:15 move second child to first child ( temp uint) -0:? 'OutputStream.rtai' ( out uint Layer) -0:15 rtai: direct index for structure ( temp uint) -0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) -0:15 Constant: -0:15 4 (const int) -0:15 move second child to first child ( temp int) -0:? 'OutputStream.ii' (layout( location=0) out int) -0:15 ii: direct index for structure ( temp int) -0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) -0:15 Constant: -0:15 5 (const int) -0:15 EmitVertex ( temp void) -0:13 Function Definition: main( ( temp void) -0:13 Function Parameters: -0:? Sequence -0:13 move second child to first child ( temp 3-element array of uint) -0:? 'VertexID' ( temp 3-element array of uint) -0:? 'VertexID' (layout( location=0) in 3-element array of uint) -0:13 Function Call: @main(u1[3];struct-S-f1-f1-f1-u1-u1-i11; ( temp void) -0:? 'VertexID' ( temp 3-element array of uint) -0:? 'OutputStream' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) -0:21 Function Definition: notmain(u1[2];struct-S-f1-f1-f1-u1-u1-i11; ( temp void) -0:21 Function Parameters: -0:21 'VertexID' ( in 2-element array of uint) -0:21 'OutputStream' ( out structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) -0:? Sequence -0:23 Sequence -0:23 Sequence -0:23 move second child to first child ( temp float) -0:? 'OutputStream.clip0' ( out float Position) -0:23 clip0: direct index for structure ( temp float) -0:23 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) -0:23 Constant: -0:23 0 (const int) -0:? Sequence -0:23 move second child to first child ( temp float) -0:23 direct index ( out float ClipDistance) -0:? 'OutputStream.clip0' ( out 1-element array of float ClipDistance) -0:23 Constant: -0:23 0 (const int) -0:23 clip0: direct index for structure ( temp float) -0:23 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) -0:23 Constant: -0:23 1 (const int) -0:? Sequence -0:23 move second child to first child ( temp float) -0:23 direct index ( out float CullDistance) -0:? 'OutputStream.cull0' ( out 1-element array of float CullDistance) -0:23 Constant: -0:23 0 (const int) -0:23 cull0: direct index for structure ( temp float) -0:23 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) -0:23 Constant: -0:23 2 (const int) -0:23 move second child to first child ( temp uint) -0:? 'OutputStream.vpai' ( out uint ViewportIndex) -0:23 vpai: direct index for structure ( temp uint) -0:23 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) -0:23 Constant: -0:23 3 (const int) -0:23 move second child to first child ( temp uint) -0:? 'OutputStream.rtai' ( out uint Layer) -0:23 rtai: direct index for structure ( temp uint) -0:23 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) -0:23 Constant: -0:23 4 (const int) -0:23 move second child to first child ( temp int) -0:? 'OutputStream.ii' (layout( location=0) out int) -0:23 ii: direct index for structure ( temp int) -0:23 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) -0:23 Constant: -0:23 5 (const int) -0:23 EmitVertex ( temp void) -0:? Linker Objects -0:? 'VertexID' (layout( location=0) in 3-element array of uint) -0:? 'OutputStream.clip0' ( out float Position) -0:? 'OutputStream.vpai' ( out uint ViewportIndex) -0:? 'OutputStream.rtai' ( out uint Layer) -0:? 'OutputStream.ii' (layout( location=0) out int) -0:? 'OutputStream.clip0' ( out 1-element array of float ClipDistance) -0:? 'OutputStream.cull0' ( out 1-element array of float CullDistance) - - -Linked geometry stage: - - -Shader version: 500 -invocations = 1 -max_vertices = 4 -input primitive = triangles -output primitive = line_strip -0:? Sequence -0:13 Function Definition: @main(u1[3];struct-S-f1-f1-f1-u1-u1-i11; ( temp void) -0:13 Function Parameters: -0:13 'VertexID' ( in 3-element array of uint) -0:13 'OutputStream' ( out structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) -0:? Sequence -0:15 Sequence -0:15 Sequence -0:15 move second child to first child ( temp float) -0:? 'OutputStream.clip0' ( out float Position) -0:15 clip0: direct index for structure ( temp float) -0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) -0:15 Constant: -0:15 0 (const int) -0:? Sequence -0:15 move second child to first child ( temp float) -0:15 direct index ( out float ClipDistance) -0:? 'OutputStream.clip0' ( out 1-element array of float ClipDistance) -0:15 Constant: -0:15 0 (const int) -0:15 clip0: direct index for structure ( temp float) -0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) -0:15 Constant: -0:15 1 (const int) -0:? Sequence -0:15 move second child to first child ( temp float) -0:15 direct index ( out float CullDistance) -0:? 'OutputStream.cull0' ( out 1-element array of float CullDistance) -0:15 Constant: -0:15 0 (const int) -0:15 cull0: direct index for structure ( temp float) -0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) -0:15 Constant: -0:15 2 (const int) -0:15 move second child to first child ( temp uint) -0:? 'OutputStream.vpai' ( out uint ViewportIndex) -0:15 vpai: direct index for structure ( temp uint) -0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) -0:15 Constant: -0:15 3 (const int) -0:15 move second child to first child ( temp uint) -0:? 'OutputStream.rtai' ( out uint Layer) -0:15 rtai: direct index for structure ( temp uint) -0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) -0:15 Constant: -0:15 4 (const int) -0:15 move second child to first child ( temp int) -0:? 'OutputStream.ii' (layout( location=0) out int) -0:15 ii: direct index for structure ( temp int) -0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) -0:15 Constant: -0:15 5 (const int) -0:15 EmitVertex ( temp void) -0:13 Function Definition: main( ( temp void) -0:13 Function Parameters: -0:? Sequence -0:13 move second child to first child ( temp 3-element array of uint) -0:? 'VertexID' ( temp 3-element array of uint) -0:? 'VertexID' (layout( location=0) in 3-element array of uint) -0:13 Function Call: @main(u1[3];struct-S-f1-f1-f1-u1-u1-i11; ( temp void) -0:? 'VertexID' ( temp 3-element array of uint) -0:? 'OutputStream' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) -0:21 Function Definition: notmain(u1[2];struct-S-f1-f1-f1-u1-u1-i11; ( temp void) -0:21 Function Parameters: -0:21 'VertexID' ( in 2-element array of uint) -0:21 'OutputStream' ( out structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) -0:? Sequence -0:23 Sequence -0:23 Sequence -0:23 move second child to first child ( temp float) -0:? 'OutputStream.clip0' ( out float Position) -0:23 clip0: direct index for structure ( temp float) -0:23 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) -0:23 Constant: -0:23 0 (const int) -0:? Sequence -0:23 move second child to first child ( temp float) -0:23 direct index ( out float ClipDistance) -0:? 'OutputStream.clip0' ( out 1-element array of float ClipDistance) -0:23 Constant: -0:23 0 (const int) -0:23 clip0: direct index for structure ( temp float) -0:23 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) -0:23 Constant: -0:23 1 (const int) -0:? Sequence -0:23 move second child to first child ( temp float) -0:23 direct index ( out float CullDistance) -0:? 'OutputStream.cull0' ( out 1-element array of float CullDistance) -0:23 Constant: -0:23 0 (const int) -0:23 cull0: direct index for structure ( temp float) -0:23 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) -0:23 Constant: -0:23 2 (const int) -0:23 move second child to first child ( temp uint) -0:? 'OutputStream.vpai' ( out uint ViewportIndex) -0:23 vpai: direct index for structure ( temp uint) -0:23 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) -0:23 Constant: -0:23 3 (const int) -0:23 move second child to first child ( temp uint) -0:? 'OutputStream.rtai' ( out uint Layer) -0:23 rtai: direct index for structure ( temp uint) -0:23 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) -0:23 Constant: -0:23 4 (const int) -0:23 move second child to first child ( temp int) -0:? 'OutputStream.ii' (layout( location=0) out int) -0:23 ii: direct index for structure ( temp int) -0:23 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) -0:23 Constant: -0:23 5 (const int) -0:23 EmitVertex ( temp void) -0:? Linker Objects -0:? 'VertexID' (layout( location=0) in 3-element array of uint) -0:? 'OutputStream.clip0' ( out float Position) -0:? 'OutputStream.vpai' ( out uint ViewportIndex) -0:? 'OutputStream.rtai' ( out uint Layer) -0:? 'OutputStream.ii' (layout( location=0) out int) -0:? 'OutputStream.clip0' ( out 1-element array of float ClipDistance) -0:? 'OutputStream.cull0' ( out 1-element array of float CullDistance) - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 88 - - Capability Geometry - Capability ClipDistance - Capability CullDistance - Capability MultiViewport - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Geometry 4 "main" 28 37 42 48 53 58 65 - ExecutionMode 4 Triangles - ExecutionMode 4 Invocations 1 - ExecutionMode 4 OutputLineStrip - ExecutionMode 4 OutputVertices 4 - Source HLSL 500 - Name 4 "main" - Name 12 "S" - MemberName 12(S) 0 "clip0" - MemberName 12(S) 1 "clip0" - MemberName 12(S) 2 "cull0" - MemberName 12(S) 3 "vpai" - MemberName 12(S) 4 "rtai" - MemberName 12(S) 5 "ii" - Name 17 "@main(u1[3];struct-S-f1-f1-f1-u1-u1-i11;" - Name 15 "VertexID" - Name 16 "OutputStream" - Name 25 "notmain(u1[2];struct-S-f1-f1-f1-u1-u1-i11;" - Name 23 "VertexID" - Name 24 "OutputStream" - Name 28 "OutputStream.clip0" - Name 29 "s" - Name 37 "OutputStream.clip0" - Name 42 "OutputStream.cull0" - Name 48 "OutputStream.vpai" - Name 53 "OutputStream.rtai" - Name 58 "OutputStream.ii" - Name 63 "VertexID" - Name 65 "VertexID" - Name 67 "OutputStream" - Name 68 "param" - Name 70 "param" - Name 73 "s" - Decorate 28(OutputStream.clip0) BuiltIn Position - Decorate 37(OutputStream.clip0) BuiltIn ClipDistance - Decorate 42(OutputStream.cull0) BuiltIn CullDistance - Decorate 48(OutputStream.vpai) BuiltIn ViewportIndex - Decorate 53(OutputStream.rtai) BuiltIn Layer - Decorate 58(OutputStream.ii) Location 0 - Decorate 65(VertexID) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: 6(int) Constant 3 - 8: TypeArray 6(int) 7 - 9: TypePointer Function 8 - 10: TypeFloat 32 - 11: TypeInt 32 1 - 12(S): TypeStruct 10(float) 10(float) 10(float) 6(int) 6(int) 11(int) - 13: TypePointer Function 12(S) - 14: TypeFunction 2 9(ptr) 13(ptr) - 19: 6(int) Constant 2 - 20: TypeArray 6(int) 19 - 21: TypePointer Function 20 - 22: TypeFunction 2 21(ptr) 13(ptr) - 27: TypePointer Output 10(float) -28(OutputStream.clip0): 27(ptr) Variable Output - 30: 11(int) Constant 0 - 31: TypePointer Function 10(float) - 34: 6(int) Constant 1 - 35: TypeArray 10(float) 34 - 36: TypePointer Output 35 -37(OutputStream.clip0): 36(ptr) Variable Output - 38: 11(int) Constant 1 -42(OutputStream.cull0): 36(ptr) Variable Output - 43: 11(int) Constant 2 - 47: TypePointer Output 6(int) -48(OutputStream.vpai): 47(ptr) Variable Output - 49: 11(int) Constant 3 - 50: TypePointer Function 6(int) -53(OutputStream.rtai): 47(ptr) Variable Output - 54: 11(int) Constant 4 - 57: TypePointer Output 11(int) -58(OutputStream.ii): 57(ptr) Variable Output - 59: 11(int) Constant 5 - 60: TypePointer Function 11(int) - 64: TypePointer Input 8 - 65(VertexID): 64(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 63(VertexID): 9(ptr) Variable Function -67(OutputStream): 13(ptr) Variable Function - 68(param): 9(ptr) Variable Function - 70(param): 13(ptr) Variable Function - 66: 8 Load 65(VertexID) - Store 63(VertexID) 66 - 69: 8 Load 63(VertexID) - Store 68(param) 69 - 71: 2 FunctionCall 17(@main(u1[3];struct-S-f1-f1-f1-u1-u1-i11;) 68(param) 70(param) - 72: 12(S) Load 70(param) - Store 67(OutputStream) 72 - Return - FunctionEnd -17(@main(u1[3];struct-S-f1-f1-f1-u1-u1-i11;): 2 Function None 14 - 15(VertexID): 9(ptr) FunctionParameter -16(OutputStream): 13(ptr) FunctionParameter - 18: Label - 29(s): 13(ptr) Variable Function - 32: 31(ptr) AccessChain 29(s) 30 - 33: 10(float) Load 32 - Store 28(OutputStream.clip0) 33 - 39: 31(ptr) AccessChain 29(s) 38 - 40: 10(float) Load 39 - 41: 27(ptr) AccessChain 37(OutputStream.clip0) 30 - Store 41 40 - 44: 31(ptr) AccessChain 29(s) 43 - 45: 10(float) Load 44 - 46: 27(ptr) AccessChain 42(OutputStream.cull0) 30 - Store 46 45 - 51: 50(ptr) AccessChain 29(s) 49 - 52: 6(int) Load 51 - Store 48(OutputStream.vpai) 52 - 55: 50(ptr) AccessChain 29(s) 54 - 56: 6(int) Load 55 - Store 53(OutputStream.rtai) 56 - 61: 60(ptr) AccessChain 29(s) 59 - 62: 11(int) Load 61 - Store 58(OutputStream.ii) 62 - EmitVertex - Return - FunctionEnd -25(notmain(u1[2];struct-S-f1-f1-f1-u1-u1-i11;): 2 Function None 22 - 23(VertexID): 21(ptr) FunctionParameter -24(OutputStream): 13(ptr) FunctionParameter - 26: Label - 73(s): 13(ptr) Variable Function - 74: 31(ptr) AccessChain 73(s) 30 - 75: 10(float) Load 74 - Store 28(OutputStream.clip0) 75 - 76: 31(ptr) AccessChain 73(s) 38 - 77: 10(float) Load 76 - 78: 27(ptr) AccessChain 37(OutputStream.clip0) 30 - Store 78 77 - 79: 31(ptr) AccessChain 73(s) 43 - 80: 10(float) Load 79 - 81: 27(ptr) AccessChain 42(OutputStream.cull0) 30 - Store 81 80 - 82: 50(ptr) AccessChain 73(s) 49 - 83: 6(int) Load 82 - Store 48(OutputStream.vpai) 83 - 84: 50(ptr) AccessChain 73(s) 54 - 85: 6(int) Load 84 - Store 53(OutputStream.rtai) 85 - 86: 60(ptr) AccessChain 73(s) 59 - 87: 11(int) Load 86 - Store 58(OutputStream.ii) 87 - EmitVertex - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.semantic.vert.out b/deps/glslang/Test/baseResults/hlsl.semantic.vert.out deleted file mode 100644 index c17969a5..00000000 --- a/deps/glslang/Test/baseResults/hlsl.semantic.vert.out +++ /dev/null @@ -1,334 +0,0 @@ -hlsl.semantic.vert -Shader version: 500 -0:? Sequence -0:10 Function Definition: @main(struct-S-f1-f1-f1-f1-i11; ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) -0:10 Function Parameters: -0:10 'ins' ( in structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) -0:? Sequence -0:12 Branch: Return with expression -0:12 's' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) -0:10 Function Definition: main( ( temp void) -0:10 Function Parameters: -0:? Sequence -0:10 Sequence -0:10 move second child to first child ( temp float) -0:10 clip0: direct index for structure ( temp float) -0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) -0:10 Constant: -0:10 0 (const int) -0:? 'ins.clip0' (layout( location=0) in float) -0:10 move second child to first child ( temp float) -0:10 clip1: direct index for structure ( temp float) -0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) -0:10 Constant: -0:10 1 (const int) -0:? 'ins.clip1' (layout( location=1) in float) -0:10 move second child to first child ( temp float) -0:10 cull0: direct index for structure ( temp float) -0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) -0:10 Constant: -0:10 2 (const int) -0:? 'ins.cull0' (layout( location=0) in float) -0:10 move second child to first child ( temp float) -0:10 cull1: direct index for structure ( temp float) -0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) -0:10 Constant: -0:10 3 (const int) -0:? 'ins.cull1' (layout( location=1) in float) -0:10 move second child to first child ( temp int) -0:10 ii: direct index for structure ( temp int) -0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) -0:10 Constant: -0:10 4 (const int) -0:? 'ins.ii' ( in int InstanceIndex) -0:10 Sequence -0:10 move second child to first child ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) -0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) -0:10 Function Call: @main(struct-S-f1-f1-f1-f1-i11; ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) -0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) -0:? Sequence -0:10 move second child to first child ( temp float) -0:10 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 2-element array of float ClipDistance) -0:10 Constant: -0:10 0 (const int) -0:10 clip0: direct index for structure ( temp float) -0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) -0:10 Constant: -0:10 0 (const int) -0:? Sequence -0:10 move second child to first child ( temp float) -0:10 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 2-element array of float ClipDistance) -0:10 Constant: -0:10 1 (const int) -0:10 clip1: direct index for structure ( temp float) -0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) -0:10 Constant: -0:10 1 (const int) -0:? Sequence -0:10 move second child to first child ( temp float) -0:10 direct index ( out float CullDistance) -0:? '@entryPointOutput.cull1' ( out 2-element array of float CullDistance) -0:10 Constant: -0:10 0 (const int) -0:10 cull0: direct index for structure ( temp float) -0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) -0:10 Constant: -0:10 2 (const int) -0:? Sequence -0:10 move second child to first child ( temp float) -0:10 direct index ( out float CullDistance) -0:? '@entryPointOutput.cull1' ( out 2-element array of float CullDistance) -0:10 Constant: -0:10 1 (const int) -0:10 cull1: direct index for structure ( temp float) -0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) -0:10 Constant: -0:10 3 (const int) -0:10 move second child to first child ( temp int) -0:? '@entryPointOutput.ii' (layout( location=0) out int) -0:10 ii: direct index for structure ( temp int) -0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) -0:10 Constant: -0:10 4 (const int) -0:? Linker Objects -0:? '@entryPointOutput.ii' (layout( location=0) out int) -0:? 'ins.ii' ( in int InstanceIndex) -0:? 'ins.clip0' (layout( location=0) in float) -0:? 'ins.clip1' (layout( location=1) in float) -0:? 'ins.cull0' (layout( location=0) in float) -0:? 'ins.cull1' (layout( location=1) in float) -0:? '@entryPointOutput.clip1' ( out 2-element array of float ClipDistance) -0:? '@entryPointOutput.cull1' ( out 2-element array of float CullDistance) - - -Linked vertex stage: - - -Shader version: 500 -0:? Sequence -0:10 Function Definition: @main(struct-S-f1-f1-f1-f1-i11; ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) -0:10 Function Parameters: -0:10 'ins' ( in structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) -0:? Sequence -0:12 Branch: Return with expression -0:12 's' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) -0:10 Function Definition: main( ( temp void) -0:10 Function Parameters: -0:? Sequence -0:10 Sequence -0:10 move second child to first child ( temp float) -0:10 clip0: direct index for structure ( temp float) -0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) -0:10 Constant: -0:10 0 (const int) -0:? 'ins.clip0' (layout( location=0) in float) -0:10 move second child to first child ( temp float) -0:10 clip1: direct index for structure ( temp float) -0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) -0:10 Constant: -0:10 1 (const int) -0:? 'ins.clip1' (layout( location=1) in float) -0:10 move second child to first child ( temp float) -0:10 cull0: direct index for structure ( temp float) -0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) -0:10 Constant: -0:10 2 (const int) -0:? 'ins.cull0' (layout( location=0) in float) -0:10 move second child to first child ( temp float) -0:10 cull1: direct index for structure ( temp float) -0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) -0:10 Constant: -0:10 3 (const int) -0:? 'ins.cull1' (layout( location=1) in float) -0:10 move second child to first child ( temp int) -0:10 ii: direct index for structure ( temp int) -0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) -0:10 Constant: -0:10 4 (const int) -0:? 'ins.ii' ( in int InstanceIndex) -0:10 Sequence -0:10 move second child to first child ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) -0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) -0:10 Function Call: @main(struct-S-f1-f1-f1-f1-i11; ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) -0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) -0:? Sequence -0:10 move second child to first child ( temp float) -0:10 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 2-element array of float ClipDistance) -0:10 Constant: -0:10 0 (const int) -0:10 clip0: direct index for structure ( temp float) -0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) -0:10 Constant: -0:10 0 (const int) -0:? Sequence -0:10 move second child to first child ( temp float) -0:10 direct index ( out float ClipDistance) -0:? '@entryPointOutput.clip1' ( out 2-element array of float ClipDistance) -0:10 Constant: -0:10 1 (const int) -0:10 clip1: direct index for structure ( temp float) -0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) -0:10 Constant: -0:10 1 (const int) -0:? Sequence -0:10 move second child to first child ( temp float) -0:10 direct index ( out float CullDistance) -0:? '@entryPointOutput.cull1' ( out 2-element array of float CullDistance) -0:10 Constant: -0:10 0 (const int) -0:10 cull0: direct index for structure ( temp float) -0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) -0:10 Constant: -0:10 2 (const int) -0:? Sequence -0:10 move second child to first child ( temp float) -0:10 direct index ( out float CullDistance) -0:? '@entryPointOutput.cull1' ( out 2-element array of float CullDistance) -0:10 Constant: -0:10 1 (const int) -0:10 cull1: direct index for structure ( temp float) -0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) -0:10 Constant: -0:10 3 (const int) -0:10 move second child to first child ( temp int) -0:? '@entryPointOutput.ii' (layout( location=0) out int) -0:10 ii: direct index for structure ( temp int) -0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) -0:10 Constant: -0:10 4 (const int) -0:? Linker Objects -0:? '@entryPointOutput.ii' (layout( location=0) out int) -0:? 'ins.ii' ( in int InstanceIndex) -0:? 'ins.clip0' (layout( location=0) in float) -0:? 'ins.clip1' (layout( location=1) in float) -0:? 'ins.cull0' (layout( location=0) in float) -0:? 'ins.cull1' (layout( location=1) in float) -0:? '@entryPointOutput.clip1' ( out 2-element array of float ClipDistance) -0:? '@entryPointOutput.cull1' ( out 2-element array of float CullDistance) - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 70 - - Capability Shader - Capability ClipDistance - Capability CullDistance - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 21 26 30 34 39 51 59 67 - Source HLSL 500 - Name 4 "main" - Name 8 "S" - MemberName 8(S) 0 "clip0" - MemberName 8(S) 1 "clip1" - MemberName 8(S) 2 "cull0" - MemberName 8(S) 3 "cull1" - MemberName 8(S) 4 "ii" - Name 12 "@main(struct-S-f1-f1-f1-f1-i11;" - Name 11 "ins" - Name 14 "s" - Name 18 "ins" - Name 21 "ins.clip0" - Name 26 "ins.clip1" - Name 30 "ins.cull0" - Name 34 "ins.cull1" - Name 39 "ins.ii" - Name 43 "flattenTemp" - Name 44 "param" - Name 51 "@entryPointOutput.clip1" - Name 59 "@entryPointOutput.cull1" - Name 67 "@entryPointOutput.ii" - Decorate 21(ins.clip0) Location 0 - Decorate 26(ins.clip1) Location 1 - Decorate 30(ins.cull0) Location 0 - Decorate 34(ins.cull1) Location 1 - Decorate 39(ins.ii) BuiltIn InstanceIndex - Decorate 51(@entryPointOutput.clip1) BuiltIn ClipDistance - Decorate 59(@entryPointOutput.cull1) BuiltIn CullDistance - Decorate 67(@entryPointOutput.ii) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeInt 32 1 - 8(S): TypeStruct 6(float) 6(float) 6(float) 6(float) 7(int) - 9: TypePointer Function 8(S) - 10: TypeFunction 8(S) 9(ptr) - 19: 7(int) Constant 0 - 20: TypePointer Input 6(float) - 21(ins.clip0): 20(ptr) Variable Input - 23: TypePointer Function 6(float) - 25: 7(int) Constant 1 - 26(ins.clip1): 20(ptr) Variable Input - 29: 7(int) Constant 2 - 30(ins.cull0): 20(ptr) Variable Input - 33: 7(int) Constant 3 - 34(ins.cull1): 20(ptr) Variable Input - 37: 7(int) Constant 4 - 38: TypePointer Input 7(int) - 39(ins.ii): 38(ptr) Variable Input - 41: TypePointer Function 7(int) - 47: TypeInt 32 0 - 48: 47(int) Constant 2 - 49: TypeArray 6(float) 48 - 50: TypePointer Output 49 -51(@entryPointOutput.clip1): 50(ptr) Variable Output - 54: TypePointer Output 6(float) -59(@entryPointOutput.cull1): 50(ptr) Variable Output - 66: TypePointer Output 7(int) -67(@entryPointOutput.ii): 66(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 18(ins): 9(ptr) Variable Function - 43(flattenTemp): 9(ptr) Variable Function - 44(param): 9(ptr) Variable Function - 22: 6(float) Load 21(ins.clip0) - 24: 23(ptr) AccessChain 18(ins) 19 - Store 24 22 - 27: 6(float) Load 26(ins.clip1) - 28: 23(ptr) AccessChain 18(ins) 25 - Store 28 27 - 31: 6(float) Load 30(ins.cull0) - 32: 23(ptr) AccessChain 18(ins) 29 - Store 32 31 - 35: 6(float) Load 34(ins.cull1) - 36: 23(ptr) AccessChain 18(ins) 33 - Store 36 35 - 40: 7(int) Load 39(ins.ii) - 42: 41(ptr) AccessChain 18(ins) 37 - Store 42 40 - 45: 8(S) Load 18(ins) - Store 44(param) 45 - 46: 8(S) FunctionCall 12(@main(struct-S-f1-f1-f1-f1-i11;) 44(param) - Store 43(flattenTemp) 46 - 52: 23(ptr) AccessChain 43(flattenTemp) 19 - 53: 6(float) Load 52 - 55: 54(ptr) AccessChain 51(@entryPointOutput.clip1) 19 - Store 55 53 - 56: 23(ptr) AccessChain 43(flattenTemp) 25 - 57: 6(float) Load 56 - 58: 54(ptr) AccessChain 51(@entryPointOutput.clip1) 25 - Store 58 57 - 60: 23(ptr) AccessChain 43(flattenTemp) 29 - 61: 6(float) Load 60 - 62: 54(ptr) AccessChain 59(@entryPointOutput.cull1) 19 - Store 62 61 - 63: 23(ptr) AccessChain 43(flattenTemp) 33 - 64: 6(float) Load 63 - 65: 54(ptr) AccessChain 59(@entryPointOutput.cull1) 25 - Store 65 64 - 68: 41(ptr) AccessChain 43(flattenTemp) 37 - 69: 7(int) Load 68 - Store 67(@entryPointOutput.ii) 69 - Return - FunctionEnd -12(@main(struct-S-f1-f1-f1-f1-i11;): 8(S) Function None 10 - 11(ins): 9(ptr) FunctionParameter - 13: Label - 14(s): 9(ptr) Variable Function - 15: 8(S) Load 14(s) - ReturnValue 15 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.semicolons.frag.out b/deps/glslang/Test/baseResults/hlsl.semicolons.frag.out deleted file mode 100644 index 1afcd5b4..00000000 --- a/deps/glslang/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): 8000a -// 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/Test/baseResults/hlsl.shapeConv.frag.out b/deps/glslang/Test/baseResults/hlsl.shapeConv.frag.out deleted file mode 100644 index d3b17f01..00000000 --- a/deps/glslang/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): 8000a -// 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) FUnordNotEqual 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/Test/baseResults/hlsl.shapeConvRet.frag.out b/deps/glslang/Test/baseResults/hlsl.shapeConvRet.frag.out deleted file mode 100644 index e3e27a26..00000000 --- a/deps/glslang/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): 8000a -// 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/Test/baseResults/hlsl.shift.per-set.frag.out b/deps/glslang/Test/baseResults/hlsl.shift.per-set.frag.out deleted file mode 100644 index ad0b7e0b..00000000 --- a/deps/glslang/Test/baseResults/hlsl.shift.per-set.frag.out +++ /dev/null @@ -1,237 +0,0 @@ -hlsl.shift.per-set.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:34 Function Definition: @main( ( temp 4-component vector of float) -0:34 Function Parameters: -0:? Sequence -0:35 't1' (layout( set=1 binding=1) uniform texture1D) -0:36 't2' (layout( set=1 binding=2) uniform texture2D) -0:37 't3' (layout( set=2 binding=1) uniform texture3D) -0:38 direct index (layout( row_major std430) buffer 4-component vector of float) -0:38 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float) -0:38 't4' (layout( set=3 binding=1 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) -0:38 Constant: -0:38 0 (const uint) -0:38 Constant: -0:38 0 (const int) -0:39 indirect index (layout( row_major std430) buffer uint) -0:39 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:39 't5' (layout( set=3 binding=2 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:39 Constant: -0:39 0 (const uint) -0:39 right-shift ( temp int) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 2 (const int) -0:40 't6' (layout( set=3 binding=3 rgba32f) uniform textureBuffer) -0:42 's1' (layout( set=1 binding=1) uniform sampler) -0:43 's2' (layout( set=2 binding=2) uniform sampler) -0:45 'u1' (layout( set=1 binding=1 rgba32f) uniform image1D) -0:46 'u2' (layout( set=2 binding=2 rgba32f) uniform image2D) -0:47 'u3' (layout( set=2 binding=3 rgba32f) uniform image3D) -0:49 imageLoad ( temp float) -0:49 'u4' (layout( set=1 binding=4 r32f) uniform imageBuffer) -0:49 Constant: -0:49 0 (const int) -0:50 indirect index (layout( row_major std430) buffer uint) -0:50 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:50 'u5' (layout( set=2 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:50 Constant: -0:50 0 (const uint) -0:50 right-shift ( temp int) -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 2 (const int) -0:51 direct index (layout( row_major std430) buffer float) -0:51 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) -0:51 'u6' (layout( set=3 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) -0:51 Constant: -0:51 0 (const uint) -0:51 Constant: -0:51 0 (const int) -0:52 'u7' (layout( set=4 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) -0:53 'u8' (layout( set=5 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) -0:55 cb1: direct index for structure (layout( row_major std140) uniform int) -0:55 'anon@0' (layout( set=6 binding=1 row_major std140) uniform block{layout( row_major std140) uniform int cb1}) -0:55 Constant: -0:55 0 (const uint) -0:56 tb1: direct index for structure (layout( row_major std430) buffer int) -0:56 'anon@1' (layout( binding=7 row_major std430) readonly buffer block{layout( row_major std430) buffer int tb1}) -0:56 Constant: -0:56 0 (const uint) -0:57 'ts6' (layout( set=6 binding=1) uniform texture3D) -0:59 Branch: Return with expression -0:59 Constant: -0:59 0.000000 -0:59 0.000000 -0:59 0.000000 -0:59 0.000000 -0:34 Function Definition: main( ( temp void) -0:34 Function Parameters: -0:? Sequence -0:34 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:34 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 's1' (layout( set=1 binding=1) uniform sampler) -0:? 's2' (layout( set=2 binding=2) uniform sampler) -0:? 't1' (layout( set=1 binding=1) uniform texture1D) -0:? 't2' (layout( set=1 binding=2) uniform texture2D) -0:? 't3' (layout( set=2 binding=1) uniform texture3D) -0:? 'ts6' (layout( set=6 binding=1) uniform texture3D) -0:? 't4' (layout( set=3 binding=1 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) -0:? 't5' (layout( set=3 binding=2 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:? 't6' (layout( set=3 binding=3 rgba32f) uniform textureBuffer) -0:? 'u1' (layout( set=1 binding=1 rgba32f) uniform image1D) -0:? 'u2' (layout( set=2 binding=2 rgba32f) uniform image2D) -0:? 'u3' (layout( set=2 binding=3 rgba32f) uniform image3D) -0:? 'u4' (layout( set=1 binding=4 r32f) uniform imageBuffer) -0:? 'u5' (layout( set=2 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:? 'u6' (layout( set=3 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) -0:? 'u7' (layout( set=4 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) -0:? 'u8' (layout( set=5 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) -0:? 'anon@0' (layout( set=6 binding=1 row_major std140) uniform block{layout( row_major std140) uniform int cb1}) -0:? 'anon@1' (layout( binding=7 row_major std430) readonly buffer block{layout( row_major std430) buffer int tb1}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:34 Function Definition: @main( ( temp 4-component vector of float) -0:34 Function Parameters: -0:? Sequence -0:35 't1' (layout( set=1 binding=1) uniform texture1D) -0:36 't2' (layout( set=1 binding=2) uniform texture2D) -0:37 't3' (layout( set=2 binding=1) uniform texture3D) -0:38 direct index (layout( row_major std430) buffer 4-component vector of float) -0:38 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float) -0:38 't4' (layout( set=3 binding=1 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) -0:38 Constant: -0:38 0 (const uint) -0:38 Constant: -0:38 0 (const int) -0:39 indirect index (layout( row_major std430) buffer uint) -0:39 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:39 't5' (layout( set=3 binding=2 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:39 Constant: -0:39 0 (const uint) -0:39 right-shift ( temp int) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 2 (const int) -0:40 't6' (layout( set=3 binding=3 rgba32f) uniform textureBuffer) -0:42 's1' (layout( set=1 binding=1) uniform sampler) -0:43 's2' (layout( set=2 binding=2) uniform sampler) -0:45 'u1' (layout( set=1 binding=1 rgba32f) uniform image1D) -0:46 'u2' (layout( set=2 binding=2 rgba32f) uniform image2D) -0:47 'u3' (layout( set=2 binding=3 rgba32f) uniform image3D) -0:49 imageLoad ( temp float) -0:49 'u4' (layout( set=1 binding=4 r32f) uniform imageBuffer) -0:49 Constant: -0:49 0 (const int) -0:50 indirect index (layout( row_major std430) buffer uint) -0:50 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:50 'u5' (layout( set=2 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:50 Constant: -0:50 0 (const uint) -0:50 right-shift ( temp int) -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 2 (const int) -0:51 direct index (layout( row_major std430) buffer float) -0:51 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) -0:51 'u6' (layout( set=3 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) -0:51 Constant: -0:51 0 (const uint) -0:51 Constant: -0:51 0 (const int) -0:52 'u7' (layout( set=4 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) -0:53 'u8' (layout( set=5 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) -0:55 cb1: direct index for structure (layout( row_major std140) uniform int) -0:55 'anon@0' (layout( set=6 binding=1 row_major std140) uniform block{layout( row_major std140) uniform int cb1}) -0:55 Constant: -0:55 0 (const uint) -0:56 tb1: direct index for structure (layout( row_major std430) buffer int) -0:56 'anon@1' (layout( binding=7 row_major std430) readonly buffer block{layout( row_major std430) buffer int tb1}) -0:56 Constant: -0:56 0 (const uint) -0:57 'ts6' (layout( set=6 binding=1) uniform texture3D) -0:59 Branch: Return with expression -0:59 Constant: -0:59 0.000000 -0:59 0.000000 -0:59 0.000000 -0:59 0.000000 -0:34 Function Definition: main( ( temp void) -0:34 Function Parameters: -0:? Sequence -0:34 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:34 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 's1' (layout( set=1 binding=1) uniform sampler) -0:? 's2' (layout( set=2 binding=2) uniform sampler) -0:? 't1' (layout( set=1 binding=1) uniform texture1D) -0:? 't2' (layout( set=1 binding=2) uniform texture2D) -0:? 't3' (layout( set=2 binding=1) uniform texture3D) -0:? 'ts6' (layout( set=6 binding=1) uniform texture3D) -0:? 't4' (layout( set=3 binding=1 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) -0:? 't5' (layout( set=3 binding=2 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:? 't6' (layout( set=3 binding=3 rgba32f) uniform textureBuffer) -0:? 'u1' (layout( set=1 binding=1 rgba32f) uniform image1D) -0:? 'u2' (layout( set=2 binding=2 rgba32f) uniform image2D) -0:? 'u3' (layout( set=2 binding=3 rgba32f) uniform image3D) -0:? 'u4' (layout( set=1 binding=4 r32f) uniform imageBuffer) -0:? 'u5' (layout( set=2 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:? 'u6' (layout( set=3 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) -0:? 'u7' (layout( set=4 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) -0:? 'u8' (layout( set=5 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) -0:? 'anon@0' (layout( set=6 binding=1 row_major std140) uniform block{layout( row_major std140) uniform int cb1}) -0:? 'anon@1' (layout( binding=7 row_major std430) readonly buffer block{layout( row_major std430) buffer int tb1}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -Uniform reflection: -t1: offset -1, type 8b5d, size 1, index -1, binding 21, stages 16 -t2: offset -1, type 8b5e, size 1, index -1, binding 22, stages 16 -t3: offset -1, type 8b5f, size 1, index -1, binding 26, stages 16 -t4.@data: offset 0, type 8b52, size 1, index 0, binding -1, stages 16, arrayStride 16, topLevelArrayStride 16 -t5.@data: offset 0, type 1405, size 0, index 1, binding -1, stages 16, arrayStride 4, topLevelArrayStride 4 -t6: offset -1, type 8dc2, size 1, index -1, binding 23, stages 16 -s1: offset -1, type 0, size 1, index -1, binding 11, stages 16 -s2: offset -1, type 0, size 1, index -1, binding 17, stages 16 -u1: offset -1, type 904c, size 1, index -1, binding 31, stages 16 -u2: offset -1, type 904d, size 1, index -1, binding 42, stages 16 -u3: offset -1, type 904e, size 1, index -1, binding 43, stages 16 -u4: offset -1, type 9051, size 1, index -1, binding 34, stages 16 -u5.@data: offset 0, type 1405, size 0, index 2, binding -1, stages 16, arrayStride 4, topLevelArrayStride 4 -u6.@data: offset 0, type 1406, size 1, index 3, binding -1, stages 16, arrayStride 4, topLevelArrayStride 4 -cb1: offset 0, type 1404, size 1, index 4, binding -1, stages 16 -tb1: offset 0, type 1404, size 1, index 5, binding -1, stages 16 -ts6: offset -1, type 8b5f, size 1, index -1, binding 71, stages 16 - -Uniform block reflection: -t4: offset -1, type ffffffff, size 16, index 0, binding 21, stages 16, numMembers 1 -t5: offset -1, type ffffffff, size 4, index 1, binding 22, stages 16, numMembers 1 -u5: offset -1, type ffffffff, size 4, index 2, binding 44, stages 16, numMembers 1 -u6: offset -1, type ffffffff, size 4, index 3, binding 34, stages 16, numMembers 1 -cb: offset -1, type ffffffff, size 4, index 4, binding 51, stages 16, numMembers 1 -tb: offset -1, type ffffffff, size 4, index 5, binding 27, stages 16, numMembers 1 - -Buffer variable reflection: - -Buffer block reflection: - -Pipeline input reflection: - -Pipeline output reflection: -@entryPointOutput: offset 0, type 8b52, size 1, index 0, binding -1, stages 16 - diff --git a/deps/glslang/Test/baseResults/hlsl.sin.frag.out b/deps/glslang/Test/baseResults/hlsl.sin.frag.out deleted file mode 100644 index bf88ce86..00000000 --- a/deps/glslang/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): 8000a -// 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/Test/baseResults/hlsl.singleArgIntPromo.vert.out b/deps/glslang/Test/baseResults/hlsl.singleArgIntPromo.vert.out deleted file mode 100644 index a6105944..00000000 --- a/deps/glslang/Test/baseResults/hlsl.singleArgIntPromo.vert.out +++ /dev/null @@ -1,312 +0,0 @@ -hlsl.singleArgIntPromo.vert -Shader version: 500 -0:? Sequence -0:2 Function Definition: @main( ( temp float) -0:2 Function Parameters: -0:? Sequence -0:3 Sequence -0:3 move second child to first child ( temp int) -0:3 'd' ( temp int) -0:3 Constant: -0:3 4 (const int) -0:4 Sequence -0:4 move second child to first child ( temp 2-component vector of int) -0:4 'd2' ( temp 2-component vector of int) -0:4 Construct ivec2 ( temp 2-component vector of int) -0:4 Constant: -0:4 5 (const int) -0:4 'd' ( temp int) -0:5 Sequence -0:5 move second child to first child ( temp float) -0:5 'f1' ( temp float) -0:5 Constant: -0:5 2.321928 -0:6 Sequence -0:6 move second child to first child ( temp 2-component vector of float) -0:6 'f2' ( temp 2-component vector of float) -0:6 log ( temp 2-component vector of float) -0:6 Convert int to float ( temp 2-component vector of float) -0:6 'd2' ( temp 2-component vector of int) -0:7 Sequence -0:7 move second child to first child ( temp 3-component vector of float) -0:7 'f3' ( temp 3-component vector of float) -0:7 Constant: -0:7 1.945910 -0:7 0.693147 -0:7 1.098612 -0:8 Sequence -0:8 move second child to first child ( temp 2-component vector of float) -0:8 'f22' ( temp 2-component vector of float) -0:8 Constant: -0:8 0.000000 -0:8 0.000000 -0:10 Sequence -0:10 move second child to first child ( temp int) -0:10 'a' ( temp int) -0:10 Constant: -0:10 5 (const int) -0:11 Sequence -0:11 move second child to first child ( temp mediump float) -0:11 'b' ( temp mediump float) -0:11 direct index ( temp mediump float) -0:11 unpackHalf2x16 ( temp mediump 2-component vector of float) -0:11 Convert int to uint ( temp mediump uint) -0:11 'a' ( temp mediump int) -0:11 Constant: -0:11 0 (const int) -0:12 multiply second child into first child ( temp mediump float) -0:12 'b' ( temp mediump float) -0:12 'b' ( temp mediump float) -0:13 Sequence -0:13 move second child to first child ( temp uint) -0:13 'c' ( temp uint) -0:13 packHalf2x16 ( temp uint) -0:13 Construct vec2 ( temp 2-component vector of float) -0:13 'b' ( temp mediump float) -0:13 Constant: -0:13 0.000000 -0:15 Branch: Return with expression -0:15 add ( temp float) -0:15 add ( temp float) -0:15 add ( temp float) -0:15 add ( temp float) -0:15 'f1' ( temp float) -0:15 direct index ( temp float) -0:15 'f2' ( temp 2-component vector of float) -0:15 Constant: -0:15 0 (const int) -0:15 direct index ( temp float) -0:15 'f3' ( temp 3-component vector of float) -0:15 Constant: -0:15 2 (const int) -0:15 direct index ( temp float) -0:15 'f22' ( temp 2-component vector of float) -0:15 Constant: -0:15 1 (const int) -0:15 Convert uint to float ( temp float) -0:15 'c' ( temp uint) -0:2 Function Definition: main( ( temp void) -0:2 Function Parameters: -0:? Sequence -0:2 move second child to first child ( temp float) -0:? '@entryPointOutput' (layout( location=0) out float) -0:2 Function Call: @main( ( temp float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out float) - - -Linked vertex stage: - - -Shader version: 500 -0:? Sequence -0:2 Function Definition: @main( ( temp float) -0:2 Function Parameters: -0:? Sequence -0:3 Sequence -0:3 move second child to first child ( temp int) -0:3 'd' ( temp int) -0:3 Constant: -0:3 4 (const int) -0:4 Sequence -0:4 move second child to first child ( temp 2-component vector of int) -0:4 'd2' ( temp 2-component vector of int) -0:4 Construct ivec2 ( temp 2-component vector of int) -0:4 Constant: -0:4 5 (const int) -0:4 'd' ( temp int) -0:5 Sequence -0:5 move second child to first child ( temp float) -0:5 'f1' ( temp float) -0:5 Constant: -0:5 2.321928 -0:6 Sequence -0:6 move second child to first child ( temp 2-component vector of float) -0:6 'f2' ( temp 2-component vector of float) -0:6 log ( temp 2-component vector of float) -0:6 Convert int to float ( temp 2-component vector of float) -0:6 'd2' ( temp 2-component vector of int) -0:7 Sequence -0:7 move second child to first child ( temp 3-component vector of float) -0:7 'f3' ( temp 3-component vector of float) -0:7 Constant: -0:7 1.945910 -0:7 0.693147 -0:7 1.098612 -0:8 Sequence -0:8 move second child to first child ( temp 2-component vector of float) -0:8 'f22' ( temp 2-component vector of float) -0:8 Constant: -0:8 0.000000 -0:8 0.000000 -0:10 Sequence -0:10 move second child to first child ( temp int) -0:10 'a' ( temp int) -0:10 Constant: -0:10 5 (const int) -0:11 Sequence -0:11 move second child to first child ( temp mediump float) -0:11 'b' ( temp mediump float) -0:11 direct index ( temp mediump float) -0:11 unpackHalf2x16 ( temp mediump 2-component vector of float) -0:11 Convert int to uint ( temp mediump uint) -0:11 'a' ( temp mediump int) -0:11 Constant: -0:11 0 (const int) -0:12 multiply second child into first child ( temp mediump float) -0:12 'b' ( temp mediump float) -0:12 'b' ( temp mediump float) -0:13 Sequence -0:13 move second child to first child ( temp uint) -0:13 'c' ( temp uint) -0:13 packHalf2x16 ( temp uint) -0:13 Construct vec2 ( temp 2-component vector of float) -0:13 'b' ( temp mediump float) -0:13 Constant: -0:13 0.000000 -0:15 Branch: Return with expression -0:15 add ( temp float) -0:15 add ( temp float) -0:15 add ( temp float) -0:15 add ( temp float) -0:15 'f1' ( temp float) -0:15 direct index ( temp float) -0:15 'f2' ( temp 2-component vector of float) -0:15 Constant: -0:15 0 (const int) -0:15 direct index ( temp float) -0:15 'f3' ( temp 3-component vector of float) -0:15 Constant: -0:15 2 (const int) -0:15 direct index ( temp float) -0:15 'f22' ( temp 2-component vector of float) -0:15 Constant: -0:15 1 (const int) -0:15 Convert uint to float ( temp float) -0:15 'c' ( temp uint) -0:2 Function Definition: main( ( temp void) -0:2 Function Parameters: -0:? Sequence -0:2 move second child to first child ( temp float) -0:? '@entryPointOutput' (layout( location=0) out float) -0:2 Function Call: @main( ( temp float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 75 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 73 - Source HLSL 500 - Name 4 "main" - Name 8 "@main(" - Name 12 "d" - Name 16 "d2" - Name 21 "f1" - Name 25 "f2" - Name 31 "f3" - Name 36 "f22" - Name 39 "a" - Name 40 "b" - Name 51 "c" - Name 73 "@entryPointOutput" - Decorate 40(b) RelaxedPrecision - Decorate 41 RelaxedPrecision - Decorate 43 RelaxedPrecision - Decorate 44 RelaxedPrecision - Decorate 46 RelaxedPrecision - Decorate 47 RelaxedPrecision - Decorate 48 RelaxedPrecision - Decorate 49 RelaxedPrecision - Decorate 52 RelaxedPrecision - Decorate 73(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeFunction 6(float) - 10: TypeInt 32 1 - 11: TypePointer Function 10(int) - 13: 10(int) Constant 4 - 14: TypeVector 10(int) 2 - 15: TypePointer Function 14(ivec2) - 17: 10(int) Constant 5 - 20: TypePointer Function 6(float) - 22: 6(float) Constant 1075092088 - 23: TypeVector 6(float) 2 - 24: TypePointer Function 23(fvec2) - 29: TypeVector 6(float) 3 - 30: TypePointer Function 29(fvec3) - 32: 6(float) Constant 1073288085 - 33: 6(float) Constant 1060205080 - 34: 6(float) Constant 1066180436 - 35: 29(fvec3) ConstantComposite 32 33 34 - 37: 6(float) Constant 0 - 38: 23(fvec2) ConstantComposite 37 37 - 42: TypeInt 32 0 - 45: 42(int) Constant 0 - 50: TypePointer Function 42(int) - 59: 42(int) Constant 2 - 63: 42(int) Constant 1 - 72: TypePointer Output 6(float) -73(@entryPointOutput): 72(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 74: 6(float) FunctionCall 8(@main() - Store 73(@entryPointOutput) 74 - Return - FunctionEnd - 8(@main(): 6(float) Function None 7 - 9: Label - 12(d): 11(ptr) Variable Function - 16(d2): 15(ptr) Variable Function - 21(f1): 20(ptr) Variable Function - 25(f2): 24(ptr) Variable Function - 31(f3): 30(ptr) Variable Function - 36(f22): 24(ptr) Variable Function - 39(a): 11(ptr) Variable Function - 40(b): 20(ptr) Variable Function - 51(c): 50(ptr) Variable Function - Store 12(d) 13 - 18: 10(int) Load 12(d) - 19: 14(ivec2) CompositeConstruct 17 18 - Store 16(d2) 19 - Store 21(f1) 22 - 26: 14(ivec2) Load 16(d2) - 27: 23(fvec2) ConvertSToF 26 - 28: 23(fvec2) ExtInst 1(GLSL.std.450) 28(Log) 27 - Store 25(f2) 28 - Store 31(f3) 35 - Store 36(f22) 38 - Store 39(a) 17 - 41: 10(int) Load 39(a) - 43: 42(int) Bitcast 41 - 44: 23(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 43 - 46: 6(float) CompositeExtract 44 0 - Store 40(b) 46 - 47: 6(float) Load 40(b) - 48: 6(float) Load 40(b) - 49: 6(float) FMul 48 47 - Store 40(b) 49 - 52: 6(float) Load 40(b) - 53: 23(fvec2) CompositeConstruct 52 37 - 54: 42(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 53 - Store 51(c) 54 - 55: 6(float) Load 21(f1) - 56: 20(ptr) AccessChain 25(f2) 45 - 57: 6(float) Load 56 - 58: 6(float) FAdd 55 57 - 60: 20(ptr) AccessChain 31(f3) 59 - 61: 6(float) Load 60 - 62: 6(float) FAdd 58 61 - 64: 20(ptr) AccessChain 36(f22) 63 - 65: 6(float) Load 64 - 66: 6(float) FAdd 62 65 - 67: 42(int) Load 51(c) - 68: 6(float) ConvertUToF 67 - 69: 6(float) FAdd 66 68 - ReturnValue 69 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.snorm.uav.comp.out b/deps/glslang/Test/baseResults/hlsl.snorm.uav.comp.out deleted file mode 100644 index 7b8cd416..00000000 --- a/deps/glslang/Test/baseResults/hlsl.snorm.uav.comp.out +++ /dev/null @@ -1,213 +0,0 @@ -hlsl.snorm.uav.comp -Shader version: 500 -local_size = (16, 16, 1) -0:? Sequence -0:12 Function Definition: @main(vu3; ( temp void) -0:12 Function Parameters: -0:12 'tid' ( in 3-component vector of uint) -0:? Sequence -0:13 Sequence -0:13 move second child to first child ( temp 4-component vector of float) -0:13 'storeTemp' ( temp 4-component vector of float) -0:13 add ( temp 4-component vector of float) -0:13 textureFetch ( temp 4-component vector of float) -0:13 'ResultInS' (layout( binding=1) uniform texture3D) -0:13 'tid' ( in 3-component vector of uint) -0:13 Constant: -0:13 0 (const int) -0:13 uf4: direct index for structure ( uniform 4-component vector of float) -0:13 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float uf4}) -0:13 Constant: -0:13 0 (const uint) -0:13 imageStore ( temp void) -0:13 'ResultOutS' (layout( binding=1 rgba32f) uniform image3D) -0:13 'tid' ( in 3-component vector of uint) -0:13 'storeTemp' ( temp 4-component vector of float) -0:13 'storeTemp' ( temp 4-component vector of float) -0:14 Sequence -0:14 move second child to first child ( temp 4-component vector of float) -0:14 'storeTemp' ( temp 4-component vector of float) -0:14 textureFetch ( temp 4-component vector of float) -0:14 'ResultInU' (layout( binding=0) uniform texture3D) -0:14 'tid' ( in 3-component vector of uint) -0:14 Constant: -0:14 0 (const int) -0:14 imageStore ( temp void) -0:14 'ResultOutU' (layout( binding=0 rgba32f) uniform image3D) -0:14 'tid' ( in 3-component vector of uint) -0:14 'storeTemp' ( temp 4-component vector of float) -0:14 'storeTemp' ( temp 4-component vector of float) -0:12 Function Definition: main( ( temp void) -0:12 Function Parameters: -0:? Sequence -0:12 move second child to first child ( temp 3-component vector of uint) -0:? 'tid' ( temp 3-component vector of uint) -0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) -0:12 Function Call: @main(vu3; ( temp void) -0:? 'tid' ( temp 3-component vector of uint) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float uf4}) -0:? 'ResultInU' (layout( binding=0) uniform texture3D) -0:? 'ResultOutU' (layout( binding=0 rgba32f) uniform image3D) -0:? 'ResultInS' (layout( binding=1) uniform texture3D) -0:? 'ResultOutS' (layout( binding=1 rgba32f) uniform image3D) -0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) - - -Linked compute stage: - - -Shader version: 500 -local_size = (16, 16, 1) -0:? Sequence -0:12 Function Definition: @main(vu3; ( temp void) -0:12 Function Parameters: -0:12 'tid' ( in 3-component vector of uint) -0:? Sequence -0:13 Sequence -0:13 move second child to first child ( temp 4-component vector of float) -0:13 'storeTemp' ( temp 4-component vector of float) -0:13 add ( temp 4-component vector of float) -0:13 textureFetch ( temp 4-component vector of float) -0:13 'ResultInS' (layout( binding=1) uniform texture3D) -0:13 'tid' ( in 3-component vector of uint) -0:13 Constant: -0:13 0 (const int) -0:13 uf4: direct index for structure ( uniform 4-component vector of float) -0:13 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float uf4}) -0:13 Constant: -0:13 0 (const uint) -0:13 imageStore ( temp void) -0:13 'ResultOutS' (layout( binding=1 rgba32f) uniform image3D) -0:13 'tid' ( in 3-component vector of uint) -0:13 'storeTemp' ( temp 4-component vector of float) -0:13 'storeTemp' ( temp 4-component vector of float) -0:14 Sequence -0:14 move second child to first child ( temp 4-component vector of float) -0:14 'storeTemp' ( temp 4-component vector of float) -0:14 textureFetch ( temp 4-component vector of float) -0:14 'ResultInU' (layout( binding=0) uniform texture3D) -0:14 'tid' ( in 3-component vector of uint) -0:14 Constant: -0:14 0 (const int) -0:14 imageStore ( temp void) -0:14 'ResultOutU' (layout( binding=0 rgba32f) uniform image3D) -0:14 'tid' ( in 3-component vector of uint) -0:14 'storeTemp' ( temp 4-component vector of float) -0:14 'storeTemp' ( temp 4-component vector of float) -0:12 Function Definition: main( ( temp void) -0:12 Function Parameters: -0:? Sequence -0:12 move second child to first child ( temp 3-component vector of uint) -0:? 'tid' ( temp 3-component vector of uint) -0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) -0:12 Function Call: @main(vu3; ( temp void) -0:? 'tid' ( temp 3-component vector of uint) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float uf4}) -0:? 'ResultInU' (layout( binding=0) uniform texture3D) -0:? 'ResultOutU' (layout( binding=0 rgba32f) uniform image3D) -0:? 'ResultInS' (layout( binding=1) uniform texture3D) -0:? 'ResultOutS' (layout( binding=1 rgba32f) uniform image3D) -0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 54 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 49 - ExecutionMode 4 LocalSize 16 16 1 - Source HLSL 500 - Name 4 "main" - Name 11 "@main(vu3;" - Name 10 "tid" - Name 16 "storeTemp" - Name 19 "ResultInS" - Name 25 "$Global" - MemberName 25($Global) 0 "uf4" - Name 27 "" - Name 34 "ResultOutS" - Name 38 "storeTemp" - Name 39 "ResultInU" - Name 43 "ResultOutU" - Name 47 "tid" - Name 49 "tid" - Name 51 "param" - Decorate 19(ResultInS) DescriptorSet 0 - Decorate 19(ResultInS) Binding 1 - MemberDecorate 25($Global) 0 Offset 0 - Decorate 25($Global) Block - Decorate 27 DescriptorSet 0 - Decorate 27 Binding 2 - Decorate 34(ResultOutS) DescriptorSet 0 - Decorate 34(ResultOutS) Binding 1 - Decorate 39(ResultInU) DescriptorSet 0 - Decorate 39(ResultInU) Binding 0 - Decorate 43(ResultOutU) DescriptorSet 0 - Decorate 43(ResultOutU) Binding 0 - Decorate 49(tid) BuiltIn GlobalInvocationId - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeVector 6(int) 3 - 8: TypePointer Function 7(ivec3) - 9: TypeFunction 2 8(ptr) - 13: TypeFloat 32 - 14: TypeVector 13(float) 4 - 15: TypePointer Function 14(fvec4) - 17: TypeImage 13(float) 3D sampled format:Unknown - 18: TypePointer UniformConstant 17 - 19(ResultInS): 18(ptr) Variable UniformConstant - 22: TypeInt 32 1 - 23: 22(int) Constant 0 - 25($Global): TypeStruct 14(fvec4) - 26: TypePointer Uniform 25($Global) - 27: 26(ptr) Variable Uniform - 28: TypePointer Uniform 14(fvec4) - 32: TypeImage 13(float) 3D nonsampled format:Rgba32f - 33: TypePointer UniformConstant 32 - 34(ResultOutS): 33(ptr) Variable UniformConstant - 39(ResultInU): 18(ptr) Variable UniformConstant - 43(ResultOutU): 33(ptr) Variable UniformConstant - 48: TypePointer Input 7(ivec3) - 49(tid): 48(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 47(tid): 8(ptr) Variable Function - 51(param): 8(ptr) Variable Function - 50: 7(ivec3) Load 49(tid) - Store 47(tid) 50 - 52: 7(ivec3) Load 47(tid) - Store 51(param) 52 - 53: 2 FunctionCall 11(@main(vu3;) 51(param) - Return - FunctionEnd - 11(@main(vu3;): 2 Function None 9 - 10(tid): 8(ptr) FunctionParameter - 12: Label - 16(storeTemp): 15(ptr) Variable Function - 38(storeTemp): 15(ptr) Variable Function - 20: 17 Load 19(ResultInS) - 21: 7(ivec3) Load 10(tid) - 24: 14(fvec4) ImageFetch 20 21 Lod 23 - 29: 28(ptr) AccessChain 27 23 - 30: 14(fvec4) Load 29 - 31: 14(fvec4) FAdd 24 30 - Store 16(storeTemp) 31 - 35: 32 Load 34(ResultOutS) - 36: 7(ivec3) Load 10(tid) - 37: 14(fvec4) Load 16(storeTemp) - ImageWrite 35 36 37 - 40: 17 Load 39(ResultInU) - 41: 7(ivec3) Load 10(tid) - 42: 14(fvec4) ImageFetch 40 41 Lod 23 - Store 38(storeTemp) 42 - 44: 32 Load 43(ResultOutU) - 45: 7(ivec3) Load 10(tid) - 46: 14(fvec4) Load 38(storeTemp) - ImageWrite 44 45 46 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.specConstant.frag.out b/deps/glslang/Test/baseResults/hlsl.specConstant.frag.out deleted file mode 100644 index eb62242c..00000000 --- a/deps/glslang/Test/baseResults/hlsl.specConstant.frag.out +++ /dev/null @@ -1,230 +0,0 @@ -hlsl.specConstant.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:6 Function Definition: @main( ( temp 4-component vector of float) -0:6 Function Parameters: -0:? Sequence -0:8 Sequence -0:8 move second child to first child ( temp uint) -0:8 'i' ( temp uint) -0:8 Constant: -0:8 0 (const uint) -0:8 Loop with condition tested first -0:8 Loop Condition -0:8 Compare Less Than ( temp bool) -0:8 'i' ( temp uint) -0:8 indirect index ( const uint) -0:8 Constant: -0:8 10 (const uint) -0:8 20 (const uint) -0:8 30 (const uint) -0:8 40 (const uint) -0:8 'index' ( specialization-constant const uint) -0:8 2 (const uint) -0:8 Loop Body -0:9 move second child to first child ( temp 4-component vector of float) -0:9 'r' ( temp 4-component vector of float) -0:9 Construct vec4 ( temp 4-component vector of float) -0:9 Convert uint to float ( temp float) -0:9 'i' ( temp uint) -0:8 Loop Terminal Expression -0:8 Post-Increment ( temp uint) -0:8 'i' ( temp uint) -0:11 add second child into first child ( temp 4-component vector of float) -0:11 'r' ( temp 4-component vector of float) -0:11 Convert uint to float ( temp float) -0:11 add ( specialization-constant const uint) -0:11 'index' ( specialization-constant const uint) -0:11 2 (const uint) -0:11 'index' ( specialization-constant const uint) -0:11 2 (const uint) -0:12 add second child into first child ( temp 4-component vector of float) -0:12 'r' ( temp 4-component vector of float) -0:12 Convert uint to float ( temp float) -0:12 component-wise multiply ( specialization-constant const uint) -0:12 Constant: -0:12 2 (const uint) -0:12 'index' ( specialization-constant const uint) -0:12 2 (const uint) -0:14 Branch: Return with expression -0:14 'r' ( temp 4-component vector of float) -0:6 Function Definition: main( ( temp void) -0:6 Function Parameters: -0:? Sequence -0:6 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:6 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'index' ( specialization-constant const uint) -0:? 2 (const uint) -0:? 'array' ( const 4-element array of uint) -0:? 10 (const uint) -0:? 20 (const uint) -0:? 30 (const uint) -0:? 40 (const uint) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:6 Function Definition: @main( ( temp 4-component vector of float) -0:6 Function Parameters: -0:? Sequence -0:8 Sequence -0:8 move second child to first child ( temp uint) -0:8 'i' ( temp uint) -0:8 Constant: -0:8 0 (const uint) -0:8 Loop with condition tested first -0:8 Loop Condition -0:8 Compare Less Than ( temp bool) -0:8 'i' ( temp uint) -0:8 indirect index ( const uint) -0:8 Constant: -0:8 10 (const uint) -0:8 20 (const uint) -0:8 30 (const uint) -0:8 40 (const uint) -0:8 'index' ( specialization-constant const uint) -0:8 2 (const uint) -0:8 Loop Body -0:9 move second child to first child ( temp 4-component vector of float) -0:9 'r' ( temp 4-component vector of float) -0:9 Construct vec4 ( temp 4-component vector of float) -0:9 Convert uint to float ( temp float) -0:9 'i' ( temp uint) -0:8 Loop Terminal Expression -0:8 Post-Increment ( temp uint) -0:8 'i' ( temp uint) -0:11 add second child into first child ( temp 4-component vector of float) -0:11 'r' ( temp 4-component vector of float) -0:11 Convert uint to float ( temp float) -0:11 add ( specialization-constant const uint) -0:11 'index' ( specialization-constant const uint) -0:11 2 (const uint) -0:11 'index' ( specialization-constant const uint) -0:11 2 (const uint) -0:12 add second child into first child ( temp 4-component vector of float) -0:12 'r' ( temp 4-component vector of float) -0:12 Convert uint to float ( temp float) -0:12 component-wise multiply ( specialization-constant const uint) -0:12 Constant: -0:12 2 (const uint) -0:12 'index' ( specialization-constant const uint) -0:12 2 (const uint) -0:14 Branch: Return with expression -0:14 'r' ( temp 4-component vector of float) -0:6 Function Definition: main( ( temp void) -0:6 Function Parameters: -0:? Sequence -0:6 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:6 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'index' ( specialization-constant const uint) -0:? 2 (const uint) -0:? 'array' ( const 4-element array of uint) -0:? 10 (const uint) -0:? 20 (const uint) -0:? 30 (const uint) -0:? 40 (const uint) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 61 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 59 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 9 "@main(" - Name 13 "i" - Name 28 "index" - Name 30 "indexable" - Name 36 "r" - Name 59 "@entryPointOutput" - Decorate 28(index) SpecId 0 - Decorate 59(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 11: TypeInt 32 0 - 12: TypePointer Function 11(int) - 14: 11(int) Constant 0 - 21: 11(int) Constant 4 - 22: TypeArray 11(int) 21 - 23: 11(int) Constant 10 - 24: 11(int) Constant 20 - 25: 11(int) Constant 30 - 26: 11(int) Constant 40 - 27: 22 ConstantComposite 23 24 25 26 - 28(index): 11(int) SpecConstant 2 - 29: TypePointer Function 22 - 33: TypeBool - 35: TypePointer Function 7(fvec4) - 41: TypeInt 32 1 - 42: 41(int) Constant 1 - 44: 11(int) SpecConstantOp 128 28(index) 28(index) - 49: 11(int) Constant 2 - 50: 11(int) SpecConstantOp 132 49 28(index) - 58: TypePointer Output 7(fvec4) -59(@entryPointOutput): 58(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 60: 7(fvec4) FunctionCall 9(@main() - Store 59(@entryPointOutput) 60 - Return - FunctionEnd - 9(@main(): 7(fvec4) Function None 8 - 10: Label - 13(i): 12(ptr) Variable Function - 30(indexable): 29(ptr) Variable Function - 36(r): 35(ptr) Variable Function - Store 13(i) 14 - Branch 15 - 15: Label - LoopMerge 17 18 None - Branch 19 - 19: Label - 20: 11(int) Load 13(i) - Store 30(indexable) 27 - 31: 12(ptr) AccessChain 30(indexable) 28(index) - 32: 11(int) Load 31 - 34: 33(bool) ULessThan 20 32 - BranchConditional 34 16 17 - 16: Label - 37: 11(int) Load 13(i) - 38: 6(float) ConvertUToF 37 - 39: 7(fvec4) CompositeConstruct 38 38 38 38 - Store 36(r) 39 - Branch 18 - 18: Label - 40: 11(int) Load 13(i) - 43: 11(int) IAdd 40 42 - Store 13(i) 43 - Branch 15 - 17: Label - 45: 6(float) ConvertUToF 44 - 46: 7(fvec4) Load 36(r) - 47: 7(fvec4) CompositeConstruct 45 45 45 45 - 48: 7(fvec4) FAdd 46 47 - Store 36(r) 48 - 51: 6(float) ConvertUToF 50 - 52: 7(fvec4) Load 36(r) - 53: 7(fvec4) CompositeConstruct 51 51 51 51 - 54: 7(fvec4) FAdd 52 53 - Store 36(r) 54 - 55: 7(fvec4) Load 36(r) - ReturnValue 55 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.spv.1.6.discard.frag.out b/deps/glslang/Test/baseResults/hlsl.spv.1.6.discard.frag.out deleted file mode 100644 index d5219144..00000000 --- a/deps/glslang/Test/baseResults/hlsl.spv.1.6.discard.frag.out +++ /dev/null @@ -1,195 +0,0 @@ -hlsl.spv.1.6.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 10600 -// Generated by (magic number): 8000a -// Id's are bound by 47 - - Capability Shader - Capability DemoteToHelperInvocationEXT - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 42 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "PixelShaderFunction" - Name 10 "foo(f1;" - Name 9 "f" - Name 16 "@PixelShaderFunction(vf4;" - Name 15 "input" - Name 24 "param" - Name 37 "f" - Name 40 "input" - Name 42 "input" - Name 44 "param" - Decorate 42(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 - 25: TypeInt 32 0 - 26: 25(int) Constant 2 - 30: 25(int) Constant 0 - 33: 6(float) Constant 0 - 41: TypePointer Input 12(fvec4) - 42(input): 41(ptr) Variable Input -4(PixelShaderFunction): 2 Function None 3 - 5: Label - 40(input): 13(ptr) Variable Function - 44(param): 13(ptr) Variable Function - 43: 12(fvec4) Load 42(input) - Store 40(input) 43 - 45: 12(fvec4) Load 40(input) - Store 44(param) 45 - 46: 2 FunctionCall 16(@PixelShaderFunction(vf4;) 44(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 - DemoteToHelperInvocationEXT - Branch 23 - 23: Label - Return - FunctionEnd -16(@PixelShaderFunction(vf4;): 2 Function None 14 - 15(input): 13(ptr) FunctionParameter - 17: Label - 24(param): 7(ptr) Variable Function - 37(f): 7(ptr) Variable Function - 27: 7(ptr) AccessChain 15(input) 26 - 28: 6(float) Load 27 - Store 24(param) 28 - 29: 2 FunctionCall 10(foo(f1;) 24(param) - 31: 7(ptr) AccessChain 15(input) 30 - 32: 6(float) Load 31 - 34: 20(bool) FUnordNotEqual 32 33 - SelectionMerge 36 None - BranchConditional 34 35 36 - 35: Label - DemoteToHelperInvocationEXT - Branch 36 - 36: Label - 38: 7(ptr) AccessChain 15(input) 30 - 39: 6(float) Load 38 - Store 37(f) 39 - DemoteToHelperInvocationEXT - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.staticFuncInit.frag.out b/deps/glslang/Test/baseResults/hlsl.staticFuncInit.frag.out deleted file mode 100644 index 586daceb..00000000 --- a/deps/glslang/Test/baseResults/hlsl.staticFuncInit.frag.out +++ /dev/null @@ -1,218 +0,0 @@ -hlsl.staticFuncInit.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:12Sequence -0:1 Sequence -0:1 move second child to first child ( temp float) -0:1 'x' ( global float) -0:1 Constant: -0:1 1.000000 -0:5 Sequence -0:5 move second child to first child ( temp float) -0:5 'x' ( global float) -0:5 Constant: -0:5 2.000000 -0:4 Function Definition: f1( ( temp float) -0:4 Function Parameters: -0:? Sequence -0:6 add second child into first child ( temp float) -0:6 'x' ( global float) -0:6 Constant: -0:6 10.000000 -0:7 Branch: Return with expression -0:7 'x' ( global float) -0:12 Sequence -0:12 move second child to first child ( temp float) -0:12 'x' ( global float) -0:12 Constant: -0:12 7.000000 -0:11 Function Definition: f2(f1; ( temp float) -0:11 Function Parameters: -0:11 'p' ( in float) -0:? Sequence -0:13 add second child into first child ( temp float) -0:13 'x' ( global float) -0:13 'p' ( in float) -0:14 Branch: Return with expression -0:14 'x' ( global float) -0:18 Function Definition: @main( ( temp 4-component vector of float) -0:18 Function Parameters: -0:? Sequence -0:19 Branch: Return with expression -0:19 Construct vec4 ( temp 4-component vector of float) -0:19 add ( temp float) -0:19 add ( temp float) -0:19 add ( temp float) -0:19 add ( temp float) -0:19 'x' ( global float) -0:19 Function Call: f1( ( temp float) -0:19 Function Call: f1( ( temp float) -0:19 Function Call: f2(f1; ( temp float) -0:19 Constant: -0:19 5.000000 -0:19 Function Call: f2(f1; ( temp float) -0:19 'x' ( global float) -0:18 Function Definition: main( ( temp void) -0:18 Function Parameters: -0:? Sequence -0:18 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:18 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'x' ( global float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:12Sequence -0:1 Sequence -0:1 move second child to first child ( temp float) -0:1 'x' ( global float) -0:1 Constant: -0:1 1.000000 -0:5 Sequence -0:5 move second child to first child ( temp float) -0:5 'x' ( global float) -0:5 Constant: -0:5 2.000000 -0:4 Function Definition: f1( ( temp float) -0:4 Function Parameters: -0:? Sequence -0:6 add second child into first child ( temp float) -0:6 'x' ( global float) -0:6 Constant: -0:6 10.000000 -0:7 Branch: Return with expression -0:7 'x' ( global float) -0:12 Sequence -0:12 move second child to first child ( temp float) -0:12 'x' ( global float) -0:12 Constant: -0:12 7.000000 -0:11 Function Definition: f2(f1; ( temp float) -0:11 Function Parameters: -0:11 'p' ( in float) -0:? Sequence -0:13 add second child into first child ( temp float) -0:13 'x' ( global float) -0:13 'p' ( in float) -0:14 Branch: Return with expression -0:14 'x' ( global float) -0:18 Function Definition: @main( ( temp 4-component vector of float) -0:18 Function Parameters: -0:? Sequence -0:19 Branch: Return with expression -0:19 Construct vec4 ( temp 4-component vector of float) -0:19 add ( temp float) -0:19 add ( temp float) -0:19 add ( temp float) -0:19 add ( temp float) -0:19 'x' ( global float) -0:19 Function Call: f1( ( temp float) -0:19 Function Call: f1( ( temp float) -0:19 Function Call: f2(f1; ( temp float) -0:19 Constant: -0:19 5.000000 -0:19 Function Call: f2(f1; ( temp float) -0:19 'x' ( global float) -0:18 Function Definition: main( ( temp void) -0:18 Function Parameters: -0:? Sequence -0:18 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:18 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'x' ( global float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 57 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 55 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 8 "f1(" - Name 13 "f2(f1;" - Name 12 "p" - Name 17 "@main(" - Name 20 "x" - Name 22 "x" - Name 24 "x" - Name 44 "param" - Name 47 "param" - Name 55 "@entryPointOutput" - Decorate 55(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeFunction 6(float) - 10: TypePointer Function 6(float) - 11: TypeFunction 6(float) 10(ptr) - 15: TypeVector 6(float) 4 - 16: TypeFunction 15(fvec4) - 19: TypePointer Private 6(float) - 20(x): 19(ptr) Variable Private - 21: 6(float) Constant 1065353216 - 22(x): 19(ptr) Variable Private - 23: 6(float) Constant 1073741824 - 24(x): 19(ptr) Variable Private - 25: 6(float) Constant 1088421888 - 26: 6(float) Constant 1092616192 - 43: 6(float) Constant 1084227584 - 54: TypePointer Output 15(fvec4) -55(@entryPointOutput): 54(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - Store 20(x) 21 - Store 22(x) 23 - Store 24(x) 25 - 56: 15(fvec4) FunctionCall 17(@main() - Store 55(@entryPointOutput) 56 - Return - FunctionEnd - 8(f1(): 6(float) Function None 7 - 9: Label - 27: 6(float) Load 22(x) - 28: 6(float) FAdd 27 26 - Store 22(x) 28 - 29: 6(float) Load 22(x) - ReturnValue 29 - FunctionEnd - 13(f2(f1;): 6(float) Function None 11 - 12(p): 10(ptr) FunctionParameter - 14: Label - 32: 6(float) Load 12(p) - 33: 6(float) Load 24(x) - 34: 6(float) FAdd 33 32 - Store 24(x) 34 - 35: 6(float) Load 24(x) - ReturnValue 35 - FunctionEnd - 17(@main(): 15(fvec4) Function None 16 - 18: Label - 44(param): 10(ptr) Variable Function - 47(param): 10(ptr) Variable Function - 38: 6(float) Load 20(x) - 39: 6(float) FunctionCall 8(f1() - 40: 6(float) FAdd 38 39 - 41: 6(float) FunctionCall 8(f1() - 42: 6(float) FAdd 40 41 - Store 44(param) 43 - 45: 6(float) FunctionCall 13(f2(f1;) 44(param) - 46: 6(float) FAdd 42 45 - 48: 6(float) Load 20(x) - Store 47(param) 48 - 49: 6(float) FunctionCall 13(f2(f1;) 47(param) - 50: 6(float) FAdd 46 49 - 51: 15(fvec4) CompositeConstruct 50 50 50 50 - ReturnValue 51 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.staticMemberFunction.frag.out b/deps/glslang/Test/baseResults/hlsl.staticMemberFunction.frag.out deleted file mode 100644 index f0e5f9f0..00000000 --- a/deps/glslang/Test/baseResults/hlsl.staticMemberFunction.frag.out +++ /dev/null @@ -1,200 +0,0 @@ -hlsl.staticMemberFunction.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:5 Function Definition: Test::staticMemFun(vf4; ( global 4-component vector of float) -0:5 Function Parameters: -0:5 'a' ( in 4-component vector of float) -0:? Sequence -0:6 Branch: Return with expression -0:6 vector-scale ( temp 4-component vector of float) -0:6 Constant: -0:6 2.000000 -0:6 'a' ( in 4-component vector of float) -0:9 Function Definition: Test::staticMemFun(i1; ( global int) -0:9 Function Parameters: -0:9 'a' ( in int) -0:? Sequence -0:10 Branch: Return with expression -0:10 add ( temp int) -0:10 Constant: -0:10 2 (const int) -0:10 'a' ( in int) -0:16 Function Definition: @main( ( temp 4-component vector of float) -0:16 Function Parameters: -0:? Sequence -0:18 Sequence -0:18 move second child to first child ( temp 4-component vector of float) -0:18 'f4' ( temp 4-component vector of float) -0:18 Constant: -0:18 1.000000 -0:18 1.000000 -0:18 1.000000 -0:18 1.000000 -0:19 add second child into first child ( temp 4-component vector of float) -0:19 'f4' ( temp 4-component vector of float) -0:19 Function Call: Test::staticMemFun(vf4; ( global 4-component vector of float) -0:19 Constant: -0:19 5.000000 -0:19 5.000000 -0:19 5.000000 -0:19 5.000000 -0:20 add second child into first child ( temp 4-component vector of float) -0:20 'f4' ( temp 4-component vector of float) -0:20 Convert int to float ( temp float) -0:20 Function Call: Test::staticMemFun(i1; ( global int) -0:20 Constant: -0:20 7 (const int) -0:21 Branch: Return with expression -0:21 'f4' ( temp 4-component vector of float) -0:16 Function Definition: main( ( temp void) -0:16 Function Parameters: -0:? Sequence -0:16 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:16 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:5 Function Definition: Test::staticMemFun(vf4; ( global 4-component vector of float) -0:5 Function Parameters: -0:5 'a' ( in 4-component vector of float) -0:? Sequence -0:6 Branch: Return with expression -0:6 vector-scale ( temp 4-component vector of float) -0:6 Constant: -0:6 2.000000 -0:6 'a' ( in 4-component vector of float) -0:9 Function Definition: Test::staticMemFun(i1; ( global int) -0:9 Function Parameters: -0:9 'a' ( in int) -0:? Sequence -0:10 Branch: Return with expression -0:10 add ( temp int) -0:10 Constant: -0:10 2 (const int) -0:10 'a' ( in int) -0:16 Function Definition: @main( ( temp 4-component vector of float) -0:16 Function Parameters: -0:? Sequence -0:18 Sequence -0:18 move second child to first child ( temp 4-component vector of float) -0:18 'f4' ( temp 4-component vector of float) -0:18 Constant: -0:18 1.000000 -0:18 1.000000 -0:18 1.000000 -0:18 1.000000 -0:19 add second child into first child ( temp 4-component vector of float) -0:19 'f4' ( temp 4-component vector of float) -0:19 Function Call: Test::staticMemFun(vf4; ( global 4-component vector of float) -0:19 Constant: -0:19 5.000000 -0:19 5.000000 -0:19 5.000000 -0:19 5.000000 -0:20 add second child into first child ( temp 4-component vector of float) -0:20 'f4' ( temp 4-component vector of float) -0:20 Convert int to float ( temp float) -0:20 Function Call: Test::staticMemFun(i1; ( global int) -0:20 Constant: -0:20 7 (const int) -0:21 Branch: Return with expression -0:21 'f4' ( temp 4-component vector of float) -0:16 Function Definition: main( ( temp void) -0:16 Function Parameters: -0:? Sequence -0:16 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:16 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 54 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 52 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 11 "Test::staticMemFun(vf4;" - Name 10 "a" - Name 17 "Test::staticMemFun(i1;" - Name 16 "a" - Name 20 "@main(" - Name 32 "f4" - Name 37 "param" - Name 42 "param" - Name 52 "@entryPointOutput" - Decorate 52(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 9: TypeFunction 7(fvec4) 8(ptr) - 13: TypeInt 32 1 - 14: TypePointer Function 13(int) - 15: TypeFunction 13(int) 14(ptr) - 19: TypeFunction 7(fvec4) - 22: 6(float) Constant 1073741824 - 27: 13(int) Constant 2 - 33: 6(float) Constant 1065353216 - 34: 7(fvec4) ConstantComposite 33 33 33 33 - 35: 6(float) Constant 1084227584 - 36: 7(fvec4) ConstantComposite 35 35 35 35 - 41: 13(int) Constant 7 - 51: TypePointer Output 7(fvec4) -52(@entryPointOutput): 51(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 53: 7(fvec4) FunctionCall 20(@main() - Store 52(@entryPointOutput) 53 - Return - FunctionEnd -11(Test::staticMemFun(vf4;): 7(fvec4) Function None 9 - 10(a): 8(ptr) FunctionParameter - 12: Label - 23: 7(fvec4) Load 10(a) - 24: 7(fvec4) VectorTimesScalar 23 22 - ReturnValue 24 - FunctionEnd -17(Test::staticMemFun(i1;): 13(int) Function None 15 - 16(a): 14(ptr) FunctionParameter - 18: Label - 28: 13(int) Load 16(a) - 29: 13(int) IAdd 27 28 - ReturnValue 29 - FunctionEnd - 20(@main(): 7(fvec4) Function None 19 - 21: Label - 32(f4): 8(ptr) Variable Function - 37(param): 8(ptr) Variable Function - 42(param): 14(ptr) Variable Function - Store 32(f4) 34 - Store 37(param) 36 - 38: 7(fvec4) FunctionCall 11(Test::staticMemFun(vf4;) 37(param) - 39: 7(fvec4) Load 32(f4) - 40: 7(fvec4) FAdd 39 38 - Store 32(f4) 40 - Store 42(param) 41 - 43: 13(int) FunctionCall 17(Test::staticMemFun(i1;) 42(param) - 44: 6(float) ConvertSToF 43 - 45: 7(fvec4) Load 32(f4) - 46: 7(fvec4) CompositeConstruct 44 44 44 44 - 47: 7(fvec4) FAdd 45 46 - Store 32(f4) 47 - 48: 7(fvec4) Load 32(f4) - ReturnValue 48 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.store.rwbyteaddressbuffer.type.comp.out b/deps/glslang/Test/baseResults/hlsl.store.rwbyteaddressbuffer.type.comp.out deleted file mode 100644 index e5188218..00000000 --- a/deps/glslang/Test/baseResults/hlsl.store.rwbyteaddressbuffer.type.comp.out +++ /dev/null @@ -1,174 +0,0 @@ -hlsl.store.rwbyteaddressbuffer.type.comp -Shader version: 500 -local_size = (64, 1, 1) -0:? Sequence -0:5 Function Definition: @main(vu3; ( temp void) -0:5 Function Parameters: -0:5 'dispatchThreadID' ( in 3-component vector of uint) -0:? Sequence -0:6 Test condition and select ( temp void) -0:6 Condition -0:6 Compare Equal ( temp bool) -0:6 direct index ( temp uint) -0:6 'dispatchThreadID' ( in 3-component vector of uint) -0:6 Constant: -0:6 0 (const int) -0:6 Constant: -0:6 0 (const uint) -0:6 true case -0:? Sequence -0:7 move second child to first child ( temp int) -0:7 'byteAddrTemp' ( temp int) -0:7 right-shift ( temp int) -0:7 Constant: -0:7 0 (const int) -0:7 Constant: -0:7 2 (const int) -0:7 move second child to first child ( temp uint) -0:7 indirect index (layout( row_major std430) buffer uint) -0:7 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:7 'buffer' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:7 Constant: -0:7 0 (const uint) -0:7 'byteAddrTemp' ( temp int) -0:7 Constant: -0:7 2 (const uint) -0:5 Function Definition: main( ( temp void) -0:5 Function Parameters: -0:? Sequence -0:5 move second child to first child ( temp 3-component vector of uint) -0:? 'dispatchThreadID' ( temp 3-component vector of uint) -0:? 'dispatchThreadID' ( in 3-component vector of uint GlobalInvocationID) -0:5 Function Call: @main(vu3; ( temp void) -0:? 'dispatchThreadID' ( temp 3-component vector of uint) -0:? Linker Objects -0:? 'buffer' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:? 'dispatchThreadID' ( in 3-component vector of uint GlobalInvocationID) - - -Linked compute stage: - - -Shader version: 500 -local_size = (64, 1, 1) -0:? Sequence -0:5 Function Definition: @main(vu3; ( temp void) -0:5 Function Parameters: -0:5 'dispatchThreadID' ( in 3-component vector of uint) -0:? Sequence -0:6 Test condition and select ( temp void) -0:6 Condition -0:6 Compare Equal ( temp bool) -0:6 direct index ( temp uint) -0:6 'dispatchThreadID' ( in 3-component vector of uint) -0:6 Constant: -0:6 0 (const int) -0:6 Constant: -0:6 0 (const uint) -0:6 true case -0:? Sequence -0:7 move second child to first child ( temp int) -0:7 'byteAddrTemp' ( temp int) -0:7 right-shift ( temp int) -0:7 Constant: -0:7 0 (const int) -0:7 Constant: -0:7 2 (const int) -0:7 move second child to first child ( temp uint) -0:7 indirect index (layout( row_major std430) buffer uint) -0:7 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:7 'buffer' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:7 Constant: -0:7 0 (const uint) -0:7 'byteAddrTemp' ( temp int) -0:7 Constant: -0:7 2 (const uint) -0:5 Function Definition: main( ( temp void) -0:5 Function Parameters: -0:? Sequence -0:5 move second child to first child ( temp 3-component vector of uint) -0:? 'dispatchThreadID' ( temp 3-component vector of uint) -0:? 'dispatchThreadID' ( in 3-component vector of uint GlobalInvocationID) -0:5 Function Call: @main(vu3; ( temp void) -0:? 'dispatchThreadID' ( temp 3-component vector of uint) -0:? Linker Objects -0:? 'buffer' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:? 'dispatchThreadID' ( in 3-component vector of uint GlobalInvocationID) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 42 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 37 - ExecutionMode 4 LocalSize 64 1 1 - Source HLSL 500 - Name 4 "main" - Name 11 "@main(vu3;" - Name 10 "dispatchThreadID" - Name 23 "byteAddrTemp" - Name 28 "buffer" - MemberName 28(buffer) 0 "@data" - Name 30 "buffer" - Name 35 "dispatchThreadID" - Name 37 "dispatchThreadID" - Name 39 "param" - Decorate 27 ArrayStride 4 - MemberDecorate 28(buffer) 0 Offset 0 - Decorate 28(buffer) BufferBlock - Decorate 30(buffer) DescriptorSet 0 - Decorate 30(buffer) Binding 0 - Decorate 37(dispatchThreadID) BuiltIn GlobalInvocationId - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeVector 6(int) 3 - 8: TypePointer Function 7(ivec3) - 9: TypeFunction 2 8(ptr) - 13: 6(int) Constant 0 - 14: TypePointer Function 6(int) - 17: TypeBool - 21: TypeInt 32 1 - 22: TypePointer Function 21(int) - 24: 21(int) Constant 0 - 25: 21(int) Constant 2 - 27: TypeRuntimeArray 6(int) - 28(buffer): TypeStruct 27 - 29: TypePointer Uniform 28(buffer) - 30(buffer): 29(ptr) Variable Uniform - 32: 6(int) Constant 2 - 33: TypePointer Uniform 6(int) - 36: TypePointer Input 7(ivec3) -37(dispatchThreadID): 36(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label -35(dispatchThreadID): 8(ptr) Variable Function - 39(param): 8(ptr) Variable Function - 38: 7(ivec3) Load 37(dispatchThreadID) - Store 35(dispatchThreadID) 38 - 40: 7(ivec3) Load 35(dispatchThreadID) - Store 39(param) 40 - 41: 2 FunctionCall 11(@main(vu3;) 39(param) - Return - FunctionEnd - 11(@main(vu3;): 2 Function None 9 -10(dispatchThreadID): 8(ptr) FunctionParameter - 12: Label -23(byteAddrTemp): 22(ptr) Variable Function - 15: 14(ptr) AccessChain 10(dispatchThreadID) 13 - 16: 6(int) Load 15 - 18: 17(bool) IEqual 16 13 - SelectionMerge 20 None - BranchConditional 18 19 20 - 19: Label - 26: 21(int) ShiftRightArithmetic 24 25 - Store 23(byteAddrTemp) 26 - 31: 21(int) Load 23(byteAddrTemp) - 34: 33(ptr) AccessChain 30(buffer) 24 31 - Store 34 32 - Branch 20 - 20: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.string.frag.out b/deps/glslang/Test/baseResults/hlsl.string.frag.out deleted file mode 100644 index 047f4136..00000000 --- a/deps/glslang/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): 8000a -// 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/Test/baseResults/hlsl.stringtoken.frag.out b/deps/glslang/Test/baseResults/hlsl.stringtoken.frag.out deleted file mode 100644 index f2ca742c..00000000 --- a/deps/glslang/Test/baseResults/hlsl.stringtoken.frag.out +++ /dev/null @@ -1,134 +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:18 Constant: -0:18 0.000000 -0:18 0.000000 -0:18 0.000000 -0:18 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:18 Constant: -0:18 0.000000 -0:18 0.000000 -0:18 0.000000 -0:18 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): 8000a -// 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 - Decorate 30(TestTexture) Binding 0 - MemberDecorate 31($Global) 0 Offset 0 - Decorate 31($Global) Block - Decorate 33 DescriptorSet 0 - Decorate 33 Binding 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/Test/baseResults/hlsl.struct.frag.out b/deps/glslang/Test/baseResults/hlsl.struct.frag.out deleted file mode 100644 index 7330f567..00000000 --- a/deps/glslang/Test/baseResults/hlsl.struct.frag.out +++ /dev/null @@ -1,415 +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) - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// 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 - Decorate 101 Binding 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/Test/baseResults/hlsl.struct.split-1.vert.out b/deps/glslang/Test/baseResults/hlsl.struct.split-1.vert.out deleted file mode 100644 index f204bd50..00000000 --- a/deps/glslang/Test/baseResults/hlsl.struct.split-1.vert.out +++ /dev/null @@ -1,321 +0,0 @@ -hlsl.struct.split-1.vert -Shader version: 500 -0:? Sequence -0:17 Function Definition: @main(struct-VS_INPUT-i1-vf4-i11;vf4; ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:17 Function Parameters: -0:17 'vsin' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) -0:17 'Pos_loose' ( in 4-component vector of float) -0:? Sequence -0:20 move second child to first child ( temp int) -0:20 x0_out: direct index for structure ( temp int) -0:20 'vsout' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:20 Constant: -0:20 0 (const int) -0:20 x0_in: direct index for structure ( temp int) -0:20 'vsin' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) -0:20 Constant: -0:20 0 (const int) -0:21 move second child to first child ( temp 4-component vector of float) -0:21 Pos_out: direct index for structure ( temp 4-component vector of float) -0:21 'vsout' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:21 Constant: -0:21 1 (const int) -0:21 add ( temp 4-component vector of float) -0:21 Pos_in: direct index for structure ( temp 4-component vector of float) -0:21 'vsin' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) -0:21 Constant: -0:21 1 (const int) -0:21 'Pos_loose' ( in 4-component vector of float) -0:22 move second child to first child ( temp int) -0:22 x1_out: direct index for structure ( temp int) -0:22 'vsout' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:22 Constant: -0:22 2 (const int) -0:22 x1_in: direct index for structure ( temp int) -0:22 'vsin' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) -0:22 Constant: -0:22 2 (const int) -0:24 Branch: Return with expression -0:24 'vsout' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:17 Function Definition: main( ( temp void) -0:17 Function Parameters: -0:? Sequence -0:17 Sequence -0:17 move second child to first child ( temp int) -0:17 x0_in: direct index for structure ( temp int) -0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) -0:17 Constant: -0:17 0 (const int) -0:? 'vsin.x0_in' (layout( location=0) in int) -0:17 move second child to first child ( temp 4-component vector of float) -0:17 Pos_in: direct index for structure ( temp 4-component vector of float) -0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) -0:17 Constant: -0:17 1 (const int) -0:? 'vsin.Pos_in' (layout( location=1) in 4-component vector of float) -0:17 move second child to first child ( temp int) -0:17 x1_in: direct index for structure ( temp int) -0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) -0:17 Constant: -0:17 2 (const int) -0:? 'vsin.x1_in' (layout( location=2) in int) -0:17 move second child to first child ( temp 4-component vector of float) -0:? 'Pos_loose' ( temp 4-component vector of float) -0:? 'Pos_loose' (layout( location=3) in 4-component vector of float) -0:17 Sequence -0:17 move second child to first child ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:17 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:17 Function Call: @main(struct-VS_INPUT-i1-vf4-i11;vf4; ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) -0:? 'Pos_loose' ( temp 4-component vector of float) -0:17 move second child to first child ( temp int) -0:? '@entryPointOutput.x0_out' (layout( location=0) out int) -0:17 x0_out: direct index for structure ( temp int) -0:17 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:17 Constant: -0:17 0 (const int) -0:17 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.Pos_out' ( out 4-component vector of float Position) -0:17 Pos_out: direct index for structure ( temp 4-component vector of float) -0:17 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:17 Constant: -0:17 1 (const int) -0:17 move second child to first child ( temp int) -0:? '@entryPointOutput.x1_out' (layout( location=1) out int) -0:17 x1_out: direct index for structure ( temp int) -0:17 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:17 Constant: -0:17 2 (const int) -0:? Linker Objects -0:? '@entryPointOutput.Pos_out' ( out 4-component vector of float Position) -0:? '@entryPointOutput.x0_out' (layout( location=0) out int) -0:? '@entryPointOutput.x1_out' (layout( location=1) out int) -0:? 'vsin.x0_in' (layout( location=0) in int) -0:? 'vsin.Pos_in' (layout( location=1) in 4-component vector of float) -0:? 'vsin.x1_in' (layout( location=2) in int) -0:? 'Pos_loose' (layout( location=3) in 4-component vector of float) - - -Linked vertex stage: - - -Shader version: 500 -0:? Sequence -0:17 Function Definition: @main(struct-VS_INPUT-i1-vf4-i11;vf4; ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:17 Function Parameters: -0:17 'vsin' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) -0:17 'Pos_loose' ( in 4-component vector of float) -0:? Sequence -0:20 move second child to first child ( temp int) -0:20 x0_out: direct index for structure ( temp int) -0:20 'vsout' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:20 Constant: -0:20 0 (const int) -0:20 x0_in: direct index for structure ( temp int) -0:20 'vsin' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) -0:20 Constant: -0:20 0 (const int) -0:21 move second child to first child ( temp 4-component vector of float) -0:21 Pos_out: direct index for structure ( temp 4-component vector of float) -0:21 'vsout' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:21 Constant: -0:21 1 (const int) -0:21 add ( temp 4-component vector of float) -0:21 Pos_in: direct index for structure ( temp 4-component vector of float) -0:21 'vsin' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) -0:21 Constant: -0:21 1 (const int) -0:21 'Pos_loose' ( in 4-component vector of float) -0:22 move second child to first child ( temp int) -0:22 x1_out: direct index for structure ( temp int) -0:22 'vsout' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:22 Constant: -0:22 2 (const int) -0:22 x1_in: direct index for structure ( temp int) -0:22 'vsin' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) -0:22 Constant: -0:22 2 (const int) -0:24 Branch: Return with expression -0:24 'vsout' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:17 Function Definition: main( ( temp void) -0:17 Function Parameters: -0:? Sequence -0:17 Sequence -0:17 move second child to first child ( temp int) -0:17 x0_in: direct index for structure ( temp int) -0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) -0:17 Constant: -0:17 0 (const int) -0:? 'vsin.x0_in' (layout( location=0) in int) -0:17 move second child to first child ( temp 4-component vector of float) -0:17 Pos_in: direct index for structure ( temp 4-component vector of float) -0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) -0:17 Constant: -0:17 1 (const int) -0:? 'vsin.Pos_in' (layout( location=1) in 4-component vector of float) -0:17 move second child to first child ( temp int) -0:17 x1_in: direct index for structure ( temp int) -0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) -0:17 Constant: -0:17 2 (const int) -0:? 'vsin.x1_in' (layout( location=2) in int) -0:17 move second child to first child ( temp 4-component vector of float) -0:? 'Pos_loose' ( temp 4-component vector of float) -0:? 'Pos_loose' (layout( location=3) in 4-component vector of float) -0:17 Sequence -0:17 move second child to first child ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:17 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:17 Function Call: @main(struct-VS_INPUT-i1-vf4-i11;vf4; ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) -0:? 'Pos_loose' ( temp 4-component vector of float) -0:17 move second child to first child ( temp int) -0:? '@entryPointOutput.x0_out' (layout( location=0) out int) -0:17 x0_out: direct index for structure ( temp int) -0:17 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:17 Constant: -0:17 0 (const int) -0:17 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.Pos_out' ( out 4-component vector of float Position) -0:17 Pos_out: direct index for structure ( temp 4-component vector of float) -0:17 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:17 Constant: -0:17 1 (const int) -0:17 move second child to first child ( temp int) -0:? '@entryPointOutput.x1_out' (layout( location=1) out int) -0:17 x1_out: direct index for structure ( temp int) -0:17 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:17 Constant: -0:17 2 (const int) -0:? Linker Objects -0:? '@entryPointOutput.Pos_out' ( out 4-component vector of float Position) -0:? '@entryPointOutput.x0_out' (layout( location=0) out int) -0:? '@entryPointOutput.x1_out' (layout( location=1) out int) -0:? 'vsin.x0_in' (layout( location=0) in int) -0:? 'vsin.Pos_in' (layout( location=1) in 4-component vector of float) -0:? 'vsin.x1_in' (layout( location=2) in int) -0:? 'Pos_loose' (layout( location=3) in 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 70 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 40 44 47 51 60 64 67 - Source HLSL 500 - Name 4 "main" - Name 9 "VS_INPUT" - MemberName 9(VS_INPUT) 0 "x0_in" - MemberName 9(VS_INPUT) 1 "Pos_in" - MemberName 9(VS_INPUT) 2 "x1_in" - Name 12 "VS_OUTPUT" - MemberName 12(VS_OUTPUT) 0 "x0_out" - MemberName 12(VS_OUTPUT) 1 "Pos_out" - MemberName 12(VS_OUTPUT) 2 "x1_out" - Name 16 "@main(struct-VS_INPUT-i1-vf4-i11;vf4;" - Name 14 "vsin" - Name 15 "Pos_loose" - Name 19 "vsout" - Name 38 "vsin" - Name 40 "vsin.x0_in" - Name 44 "vsin.Pos_in" - Name 47 "vsin.x1_in" - Name 50 "Pos_loose" - Name 51 "Pos_loose" - Name 53 "flattenTemp" - Name 54 "param" - Name 56 "param" - Name 60 "@entryPointOutput.x0_out" - Name 64 "@entryPointOutput.Pos_out" - Name 67 "@entryPointOutput.x1_out" - Decorate 40(vsin.x0_in) Location 0 - Decorate 44(vsin.Pos_in) Location 1 - Decorate 47(vsin.x1_in) Location 2 - Decorate 51(Pos_loose) Location 3 - Decorate 60(@entryPointOutput.x0_out) Location 0 - Decorate 64(@entryPointOutput.Pos_out) BuiltIn Position - Decorate 67(@entryPointOutput.x1_out) Location 1 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypeFloat 32 - 8: TypeVector 7(float) 4 - 9(VS_INPUT): TypeStruct 6(int) 8(fvec4) 6(int) - 10: TypePointer Function 9(VS_INPUT) - 11: TypePointer Function 8(fvec4) - 12(VS_OUTPUT): TypeStruct 6(int) 8(fvec4) 6(int) - 13: TypeFunction 12(VS_OUTPUT) 10(ptr) 11(ptr) - 18: TypePointer Function 12(VS_OUTPUT) - 20: 6(int) Constant 0 - 21: TypePointer Function 6(int) - 25: 6(int) Constant 1 - 31: 6(int) Constant 2 - 39: TypePointer Input 6(int) - 40(vsin.x0_in): 39(ptr) Variable Input - 43: TypePointer Input 8(fvec4) - 44(vsin.Pos_in): 43(ptr) Variable Input - 47(vsin.x1_in): 39(ptr) Variable Input - 51(Pos_loose): 43(ptr) Variable Input - 59: TypePointer Output 6(int) -60(@entryPointOutput.x0_out): 59(ptr) Variable Output - 63: TypePointer Output 8(fvec4) -64(@entryPointOutput.Pos_out): 63(ptr) Variable Output -67(@entryPointOutput.x1_out): 59(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 38(vsin): 10(ptr) Variable Function - 50(Pos_loose): 11(ptr) Variable Function - 53(flattenTemp): 18(ptr) Variable Function - 54(param): 10(ptr) Variable Function - 56(param): 11(ptr) Variable Function - 41: 6(int) Load 40(vsin.x0_in) - 42: 21(ptr) AccessChain 38(vsin) 20 - Store 42 41 - 45: 8(fvec4) Load 44(vsin.Pos_in) - 46: 11(ptr) AccessChain 38(vsin) 25 - Store 46 45 - 48: 6(int) Load 47(vsin.x1_in) - 49: 21(ptr) AccessChain 38(vsin) 31 - Store 49 48 - 52: 8(fvec4) Load 51(Pos_loose) - Store 50(Pos_loose) 52 - 55: 9(VS_INPUT) Load 38(vsin) - Store 54(param) 55 - 57: 8(fvec4) Load 50(Pos_loose) - Store 56(param) 57 - 58:12(VS_OUTPUT) FunctionCall 16(@main(struct-VS_INPUT-i1-vf4-i11;vf4;) 54(param) 56(param) - Store 53(flattenTemp) 58 - 61: 21(ptr) AccessChain 53(flattenTemp) 20 - 62: 6(int) Load 61 - Store 60(@entryPointOutput.x0_out) 62 - 65: 11(ptr) AccessChain 53(flattenTemp) 25 - 66: 8(fvec4) Load 65 - Store 64(@entryPointOutput.Pos_out) 66 - 68: 21(ptr) AccessChain 53(flattenTemp) 31 - 69: 6(int) Load 68 - Store 67(@entryPointOutput.x1_out) 69 - Return - FunctionEnd -16(@main(struct-VS_INPUT-i1-vf4-i11;vf4;):12(VS_OUTPUT) Function None 13 - 14(vsin): 10(ptr) FunctionParameter - 15(Pos_loose): 11(ptr) FunctionParameter - 17: Label - 19(vsout): 18(ptr) Variable Function - 22: 21(ptr) AccessChain 14(vsin) 20 - 23: 6(int) Load 22 - 24: 21(ptr) AccessChain 19(vsout) 20 - Store 24 23 - 26: 11(ptr) AccessChain 14(vsin) 25 - 27: 8(fvec4) Load 26 - 28: 8(fvec4) Load 15(Pos_loose) - 29: 8(fvec4) FAdd 27 28 - 30: 11(ptr) AccessChain 19(vsout) 25 - Store 30 29 - 32: 21(ptr) AccessChain 14(vsin) 31 - 33: 6(int) Load 32 - 34: 21(ptr) AccessChain 19(vsout) 31 - Store 34 33 - 35:12(VS_OUTPUT) Load 19(vsout) - ReturnValue 35 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.struct.split.array.geom.out b/deps/glslang/Test/baseResults/hlsl.struct.split.array.geom.out deleted file mode 100644 index 3d75fb87..00000000 --- a/deps/glslang/Test/baseResults/hlsl.struct.split.array.geom.out +++ /dev/null @@ -1,306 +0,0 @@ -hlsl.struct.split.array.geom -Shader version: 500 -invocations = -1 -max_vertices = 4 -input primitive = points -output primitive = triangle_strip -0:? Sequence -0:13 Function Definition: @main(u1[1];struct-PSInput-vf4-vf2-vf3-u11; ( temp void) -0:13 Function Parameters: -0:13 'v' ( in 1-element array of uint) -0:13 'OutputStream' ( out structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) -0:? Sequence -0:16 Sequence -0:16 move second child to first child ( temp structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) -0:16 'Out' ( temp structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) -0:16 Constant: -0:16 0.000000 -0:16 0.000000 -0:16 0.000000 -0:16 0.000000 -0:16 0.000000 -0:16 0.000000 -0:16 0.000000 -0:16 0.000000 -0:16 0.000000 -0:16 0 (const uint) -0:18 Sequence -0:18 move second child to first child ( temp int) -0:18 'x' ( temp int) -0:18 Constant: -0:18 0 (const int) -0:18 Loop with condition tested first -0:18 Loop Condition -0:18 Compare Less Than ( temp bool) -0:18 'x' ( temp int) -0:18 Constant: -0:18 2 (const int) -0:18 Loop Body -0:19 Sequence -0:19 move second child to first child ( temp int) -0:19 'y' ( temp int) -0:19 Constant: -0:19 0 (const int) -0:19 Loop with condition tested first -0:19 Loop Condition -0:19 Compare Less Than ( temp bool) -0:19 'y' ( temp int) -0:19 Constant: -0:19 2 (const int) -0:19 Loop Body -0:20 move second child to first child ( temp structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) -0:20 indirect index ( temp structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) -0:20 indirect index ( temp 3-element array of structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) -0:20 'Verts' ( temp 2-element array of 3-element array of structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) -0:20 'x' ( temp int) -0:20 'y' ( temp int) -0:20 'Out' ( temp structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) -0:19 Loop Terminal Expression -0:19 Pre-Increment ( temp int) -0:19 'y' ( temp int) -0:18 Loop Terminal Expression -0:18 Pre-Increment ( temp int) -0:18 'x' ( temp int) -0:13 Function Definition: main( ( temp void) -0:13 Function Parameters: -0:? Sequence -0:13 move second child to first child ( temp 1-element array of uint) -0:? 'v' ( temp 1-element array of uint) -0:? 'v' (layout( location=0) in 1-element array of uint) -0:13 Function Call: @main(u1[1];struct-PSInput-vf4-vf2-vf3-u11; ( temp void) -0:? 'v' ( temp 1-element array of uint) -0:? 'OutputStream' ( temp structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) -0:? Linker Objects -0:? 'v' (layout( location=0) in 1-element array of uint) -0:? 'OutputStream.Pos' ( out 4-component vector of float Position) -0:? 'OutputStream.TexCoord' (layout( location=0) out 2-component vector of float) -0:? 'OutputStream.TerrainPos' (layout( location=1) out 3-component vector of float) -0:? 'OutputStream.VertexID' (layout( location=2) out uint) - - -Linked geometry stage: - - -Shader version: 500 -invocations = 1 -max_vertices = 4 -input primitive = points -output primitive = triangle_strip -0:? Sequence -0:13 Function Definition: @main(u1[1];struct-PSInput-vf4-vf2-vf3-u11; ( temp void) -0:13 Function Parameters: -0:13 'v' ( in 1-element array of uint) -0:13 'OutputStream' ( out structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) -0:? Sequence -0:16 Sequence -0:16 move second child to first child ( temp structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) -0:16 'Out' ( temp structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) -0:16 Constant: -0:16 0.000000 -0:16 0.000000 -0:16 0.000000 -0:16 0.000000 -0:16 0.000000 -0:16 0.000000 -0:16 0.000000 -0:16 0.000000 -0:16 0.000000 -0:16 0 (const uint) -0:18 Sequence -0:18 move second child to first child ( temp int) -0:18 'x' ( temp int) -0:18 Constant: -0:18 0 (const int) -0:18 Loop with condition tested first -0:18 Loop Condition -0:18 Compare Less Than ( temp bool) -0:18 'x' ( temp int) -0:18 Constant: -0:18 2 (const int) -0:18 Loop Body -0:19 Sequence -0:19 move second child to first child ( temp int) -0:19 'y' ( temp int) -0:19 Constant: -0:19 0 (const int) -0:19 Loop with condition tested first -0:19 Loop Condition -0:19 Compare Less Than ( temp bool) -0:19 'y' ( temp int) -0:19 Constant: -0:19 2 (const int) -0:19 Loop Body -0:20 move second child to first child ( temp structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) -0:20 indirect index ( temp structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) -0:20 indirect index ( temp 3-element array of structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) -0:20 'Verts' ( temp 2-element array of 3-element array of structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) -0:20 'x' ( temp int) -0:20 'y' ( temp int) -0:20 'Out' ( temp structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) -0:19 Loop Terminal Expression -0:19 Pre-Increment ( temp int) -0:19 'y' ( temp int) -0:18 Loop Terminal Expression -0:18 Pre-Increment ( temp int) -0:18 'x' ( temp int) -0:13 Function Definition: main( ( temp void) -0:13 Function Parameters: -0:? Sequence -0:13 move second child to first child ( temp 1-element array of uint) -0:? 'v' ( temp 1-element array of uint) -0:? 'v' (layout( location=0) in 1-element array of uint) -0:13 Function Call: @main(u1[1];struct-PSInput-vf4-vf2-vf3-u11; ( temp void) -0:? 'v' ( temp 1-element array of uint) -0:? 'OutputStream' ( temp structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) -0:? Linker Objects -0:? 'v' (layout( location=0) in 1-element array of uint) -0:? 'OutputStream.Pos' ( out 4-component vector of float Position) -0:? 'OutputStream.TexCoord' (layout( location=0) out 2-component vector of float) -0:? 'OutputStream.TerrainPos' (layout( location=1) out 3-component vector of float) -0:? 'OutputStream.VertexID' (layout( location=2) out uint) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 82 - - Capability Geometry - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Geometry 4 "main" 66 75 77 79 81 - ExecutionMode 4 InputPoints - ExecutionMode 4 Invocations 1 - ExecutionMode 4 OutputTriangleStrip - ExecutionMode 4 OutputVertices 4 - Source HLSL 500 - Name 4 "main" - Name 14 "PSInput" - MemberName 14(PSInput) 0 "Pos" - MemberName 14(PSInput) 1 "TexCoord" - MemberName 14(PSInput) 2 "TerrainPos" - MemberName 14(PSInput) 3 "VertexID" - Name 19 "@main(u1[1];struct-PSInput-vf4-vf2-vf3-u11;" - Name 17 "v" - Name 18 "OutputStream" - Name 21 "Out" - Name 30 "x" - Name 41 "y" - Name 54 "Verts" - Name 64 "v" - Name 66 "v" - Name 68 "OutputStream" - Name 69 "param" - Name 71 "param" - Name 75 "OutputStream.Pos" - Name 77 "OutputStream.TexCoord" - Name 79 "OutputStream.TerrainPos" - Name 81 "OutputStream.VertexID" - Decorate 66(v) Location 0 - Decorate 75(OutputStream.Pos) BuiltIn Position - Decorate 77(OutputStream.TexCoord) Location 0 - Decorate 79(OutputStream.TerrainPos) Location 1 - Decorate 81(OutputStream.VertexID) Location 2 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: 6(int) Constant 1 - 8: TypeArray 6(int) 7 - 9: TypePointer Function 8 - 10: TypeFloat 32 - 11: TypeVector 10(float) 4 - 12: TypeVector 10(float) 2 - 13: TypeVector 10(float) 3 - 14(PSInput): TypeStruct 11(fvec4) 12(fvec2) 13(fvec3) 6(int) - 15: TypePointer Function 14(PSInput) - 16: TypeFunction 2 9(ptr) 15(ptr) - 22: 10(float) Constant 0 - 23: 11(fvec4) ConstantComposite 22 22 22 22 - 24: 12(fvec2) ConstantComposite 22 22 - 25: 13(fvec3) ConstantComposite 22 22 22 - 26: 6(int) Constant 0 - 27: 14(PSInput) ConstantComposite 23 24 25 26 - 28: TypeInt 32 1 - 29: TypePointer Function 28(int) - 31: 28(int) Constant 0 - 38: 28(int) Constant 2 - 39: TypeBool - 49: 6(int) Constant 3 - 50: TypeArray 14(PSInput) 49 - 51: 6(int) Constant 2 - 52: TypeArray 50 51 - 53: TypePointer Function 52 - 60: 28(int) Constant 1 - 65: TypePointer Input 8 - 66(v): 65(ptr) Variable Input - 74: TypePointer Output 11(fvec4) -75(OutputStream.Pos): 74(ptr) Variable Output - 76: TypePointer Output 12(fvec2) -77(OutputStream.TexCoord): 76(ptr) Variable Output - 78: TypePointer Output 13(fvec3) -79(OutputStream.TerrainPos): 78(ptr) Variable Output - 80: TypePointer Output 6(int) -81(OutputStream.VertexID): 80(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 64(v): 9(ptr) Variable Function -68(OutputStream): 15(ptr) Variable Function - 69(param): 9(ptr) Variable Function - 71(param): 15(ptr) Variable Function - 67: 8 Load 66(v) - Store 64(v) 67 - 70: 8 Load 64(v) - Store 69(param) 70 - 72: 2 FunctionCall 19(@main(u1[1];struct-PSInput-vf4-vf2-vf3-u11;) 69(param) 71(param) - 73: 14(PSInput) Load 71(param) - Store 68(OutputStream) 73 - Return - FunctionEnd -19(@main(u1[1];struct-PSInput-vf4-vf2-vf3-u11;): 2 Function None 16 - 17(v): 9(ptr) FunctionParameter -18(OutputStream): 15(ptr) FunctionParameter - 20: Label - 21(Out): 15(ptr) Variable Function - 30(x): 29(ptr) Variable Function - 41(y): 29(ptr) Variable Function - 54(Verts): 53(ptr) Variable Function - Store 21(Out) 27 - Store 30(x) 31 - Branch 32 - 32: Label - LoopMerge 34 35 None - Branch 36 - 36: Label - 37: 28(int) Load 30(x) - 40: 39(bool) SLessThan 37 38 - BranchConditional 40 33 34 - 33: Label - Store 41(y) 31 - Branch 42 - 42: Label - LoopMerge 44 45 None - Branch 46 - 46: Label - 47: 28(int) Load 41(y) - 48: 39(bool) SLessThan 47 38 - BranchConditional 48 43 44 - 43: Label - 55: 28(int) Load 30(x) - 56: 28(int) Load 41(y) - 57: 14(PSInput) Load 21(Out) - 58: 15(ptr) AccessChain 54(Verts) 55 56 - Store 58 57 - Branch 45 - 45: Label - 59: 28(int) Load 41(y) - 61: 28(int) IAdd 59 60 - Store 41(y) 61 - Branch 42 - 44: Label - Branch 35 - 35: Label - 62: 28(int) Load 30(x) - 63: 28(int) IAdd 62 60 - Store 30(x) 63 - Branch 32 - 34: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.struct.split.assign.frag.out b/deps/glslang/Test/baseResults/hlsl.struct.split.assign.frag.out deleted file mode 100644 index c40dbd68..00000000 --- a/deps/glslang/Test/baseResults/hlsl.struct.split.assign.frag.out +++ /dev/null @@ -1,322 +0,0 @@ -hlsl.struct.split.assign.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:7 Function Definition: @main(i1;struct-S-f1-vf41[3]; ( temp 4-component vector of float) -0:7 Function Parameters: -0:7 'i' ( in int) -0:7 'input' ( in 3-element array of structure{ temp float f, temp 4-component vector of float pos}) -0:? Sequence -0:9 move second child to first child ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) -0:9 'input' ( in 3-element array of structure{ temp float f, temp 4-component vector of float pos}) -0:9 'a' ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) -0:11 Branch: Return with expression -0:11 pos: direct index for structure ( temp 4-component vector of float) -0:11 direct index ( temp structure{ temp float f, temp 4-component vector of float pos}) -0:11 'a' ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 1 (const int) -0:7 Function Definition: main( ( temp void) -0:7 Function Parameters: -0:? Sequence -0:7 move second child to first child ( temp int) -0:? 'i' ( temp int) -0:? 'i' (layout( location=0) flat in int) -0:7 Sequence -0:7 move second child to first child ( temp float) -0:7 f: direct index for structure ( temp float) -0:7 direct index ( temp structure{ temp float f, temp 4-component vector of float pos}) -0:? 'input' ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) -0:7 Constant: -0:7 0 (const int) -0:7 Constant: -0:7 0 (const int) -0:? 'input[0].f' (layout( location=1) in float) -0:7 move second child to first child ( temp 4-component vector of float) -0:7 pos: direct index for structure ( temp 4-component vector of float) -0:7 direct index ( temp structure{ temp float f, temp 4-component vector of float pos}) -0:? 'input' ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) -0:7 Constant: -0:7 0 (const int) -0:7 Constant: -0:7 1 (const int) -0:7 direct index ( in 4-component vector of float FragCoord) -0:? 'input.pos' ( in 3-element array of 4-component vector of float FragCoord) -0:7 Constant: -0:7 0 (const int) -0:7 move second child to first child ( temp float) -0:7 f: direct index for structure ( temp float) -0:7 direct index ( temp structure{ temp float f, temp 4-component vector of float pos}) -0:? 'input' ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) -0:7 Constant: -0:7 1 (const int) -0:7 Constant: -0:7 0 (const int) -0:? 'input[1].f' (layout( location=2) in float) -0:7 move second child to first child ( temp 4-component vector of float) -0:7 pos: direct index for structure ( temp 4-component vector of float) -0:7 direct index ( temp structure{ temp float f, temp 4-component vector of float pos}) -0:? 'input' ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) -0:7 Constant: -0:7 1 (const int) -0:7 Constant: -0:7 1 (const int) -0:7 direct index ( in 4-component vector of float FragCoord) -0:? 'input.pos' ( in 3-element array of 4-component vector of float FragCoord) -0:7 Constant: -0:7 1 (const int) -0:7 move second child to first child ( temp float) -0:7 f: direct index for structure ( temp float) -0:7 direct index ( temp structure{ temp float f, temp 4-component vector of float pos}) -0:? 'input' ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) -0:7 Constant: -0:7 2 (const int) -0:7 Constant: -0:7 0 (const int) -0:? 'input[2].f' (layout( location=3) in float) -0:7 move second child to first child ( temp 4-component vector of float) -0:7 pos: direct index for structure ( temp 4-component vector of float) -0:7 direct index ( temp structure{ temp float f, temp 4-component vector of float pos}) -0:? 'input' ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) -0:7 Constant: -0:7 2 (const int) -0:7 Constant: -0:7 1 (const int) -0:7 direct index ( in 4-component vector of float FragCoord) -0:? 'input.pos' ( in 3-element array of 4-component vector of float FragCoord) -0:7 Constant: -0:7 2 (const int) -0:7 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:7 Function Call: @main(i1;struct-S-f1-vf41[3]; ( temp 4-component vector of float) -0:? 'i' ( temp int) -0:? 'input' ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'i' (layout( location=0) flat in int) -0:? 'input.pos' ( in 3-element array of 4-component vector of float FragCoord) -0:? 'input[0].f' (layout( location=1) in float) -0:? 'input[1].f' (layout( location=2) in float) -0:? 'input[2].f' (layout( location=3) in float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:7 Function Definition: @main(i1;struct-S-f1-vf41[3]; ( temp 4-component vector of float) -0:7 Function Parameters: -0:7 'i' ( in int) -0:7 'input' ( in 3-element array of structure{ temp float f, temp 4-component vector of float pos}) -0:? Sequence -0:9 move second child to first child ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) -0:9 'input' ( in 3-element array of structure{ temp float f, temp 4-component vector of float pos}) -0:9 'a' ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) -0:11 Branch: Return with expression -0:11 pos: direct index for structure ( temp 4-component vector of float) -0:11 direct index ( temp structure{ temp float f, temp 4-component vector of float pos}) -0:11 'a' ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) -0:11 Constant: -0:11 1 (const int) -0:11 Constant: -0:11 1 (const int) -0:7 Function Definition: main( ( temp void) -0:7 Function Parameters: -0:? Sequence -0:7 move second child to first child ( temp int) -0:? 'i' ( temp int) -0:? 'i' (layout( location=0) flat in int) -0:7 Sequence -0:7 move second child to first child ( temp float) -0:7 f: direct index for structure ( temp float) -0:7 direct index ( temp structure{ temp float f, temp 4-component vector of float pos}) -0:? 'input' ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) -0:7 Constant: -0:7 0 (const int) -0:7 Constant: -0:7 0 (const int) -0:? 'input[0].f' (layout( location=1) in float) -0:7 move second child to first child ( temp 4-component vector of float) -0:7 pos: direct index for structure ( temp 4-component vector of float) -0:7 direct index ( temp structure{ temp float f, temp 4-component vector of float pos}) -0:? 'input' ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) -0:7 Constant: -0:7 0 (const int) -0:7 Constant: -0:7 1 (const int) -0:7 direct index ( in 4-component vector of float FragCoord) -0:? 'input.pos' ( in 3-element array of 4-component vector of float FragCoord) -0:7 Constant: -0:7 0 (const int) -0:7 move second child to first child ( temp float) -0:7 f: direct index for structure ( temp float) -0:7 direct index ( temp structure{ temp float f, temp 4-component vector of float pos}) -0:? 'input' ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) -0:7 Constant: -0:7 1 (const int) -0:7 Constant: -0:7 0 (const int) -0:? 'input[1].f' (layout( location=2) in float) -0:7 move second child to first child ( temp 4-component vector of float) -0:7 pos: direct index for structure ( temp 4-component vector of float) -0:7 direct index ( temp structure{ temp float f, temp 4-component vector of float pos}) -0:? 'input' ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) -0:7 Constant: -0:7 1 (const int) -0:7 Constant: -0:7 1 (const int) -0:7 direct index ( in 4-component vector of float FragCoord) -0:? 'input.pos' ( in 3-element array of 4-component vector of float FragCoord) -0:7 Constant: -0:7 1 (const int) -0:7 move second child to first child ( temp float) -0:7 f: direct index for structure ( temp float) -0:7 direct index ( temp structure{ temp float f, temp 4-component vector of float pos}) -0:? 'input' ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) -0:7 Constant: -0:7 2 (const int) -0:7 Constant: -0:7 0 (const int) -0:? 'input[2].f' (layout( location=3) in float) -0:7 move second child to first child ( temp 4-component vector of float) -0:7 pos: direct index for structure ( temp 4-component vector of float) -0:7 direct index ( temp structure{ temp float f, temp 4-component vector of float pos}) -0:? 'input' ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) -0:7 Constant: -0:7 2 (const int) -0:7 Constant: -0:7 1 (const int) -0:7 direct index ( in 4-component vector of float FragCoord) -0:? 'input.pos' ( in 3-element array of 4-component vector of float FragCoord) -0:7 Constant: -0:7 2 (const int) -0:7 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:7 Function Call: @main(i1;struct-S-f1-vf41[3]; ( temp 4-component vector of float) -0:? 'i' ( temp int) -0:? 'input' ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'i' (layout( location=0) flat in int) -0:? 'input.pos' ( in 3-element array of 4-component vector of float FragCoord) -0:? 'input[0].f' (layout( location=1) in float) -0:? 'input[1].f' (layout( location=2) in float) -0:? 'input[2].f' (layout( location=3) in float) - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 66 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 30 35 41 46 53 60 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 10 "S" - MemberName 10(S) 0 "f" - MemberName 10(S) 1 "pos" - Name 18 "@main(i1;struct-S-f1-vf41[3];" - Name 16 "i" - Name 17 "input" - Name 20 "a" - Name 28 "i" - Name 30 "i" - Name 32 "input" - Name 35 "input[0].f" - Name 41 "input.pos" - Name 46 "input[1].f" - Name 53 "input[2].f" - Name 60 "@entryPointOutput" - Name 61 "param" - Name 63 "param" - Decorate 30(i) Flat - Decorate 30(i) Location 0 - Decorate 35(input[0].f) Location 1 - Decorate 41(input.pos) BuiltIn FragCoord - Decorate 46(input[1].f) Location 2 - Decorate 53(input[2].f) Location 3 - Decorate 60(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Function 6(int) - 8: TypeFloat 32 - 9: TypeVector 8(float) 4 - 10(S): TypeStruct 8(float) 9(fvec4) - 11: TypeInt 32 0 - 12: 11(int) Constant 3 - 13: TypeArray 10(S) 12 - 14: TypePointer Function 13 - 15: TypeFunction 9(fvec4) 7(ptr) 14(ptr) - 22: 6(int) Constant 1 - 23: TypePointer Function 9(fvec4) - 29: TypePointer Input 6(int) - 30(i): 29(ptr) Variable Input - 33: 6(int) Constant 0 - 34: TypePointer Input 8(float) - 35(input[0].f): 34(ptr) Variable Input - 37: TypePointer Function 8(float) - 39: TypeArray 9(fvec4) 12 - 40: TypePointer Input 39 - 41(input.pos): 40(ptr) Variable Input - 42: TypePointer Input 9(fvec4) - 46(input[1].f): 34(ptr) Variable Input - 52: 6(int) Constant 2 - 53(input[2].f): 34(ptr) Variable Input - 59: TypePointer Output 9(fvec4) -60(@entryPointOutput): 59(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 28(i): 7(ptr) Variable Function - 32(input): 14(ptr) Variable Function - 61(param): 7(ptr) Variable Function - 63(param): 14(ptr) Variable Function - 31: 6(int) Load 30(i) - Store 28(i) 31 - 36: 8(float) Load 35(input[0].f) - 38: 37(ptr) AccessChain 32(input) 33 33 - Store 38 36 - 43: 42(ptr) AccessChain 41(input.pos) 33 - 44: 9(fvec4) Load 43 - 45: 23(ptr) AccessChain 32(input) 33 22 - Store 45 44 - 47: 8(float) Load 46(input[1].f) - 48: 37(ptr) AccessChain 32(input) 22 33 - Store 48 47 - 49: 42(ptr) AccessChain 41(input.pos) 22 - 50: 9(fvec4) Load 49 - 51: 23(ptr) AccessChain 32(input) 22 22 - Store 51 50 - 54: 8(float) Load 53(input[2].f) - 55: 37(ptr) AccessChain 32(input) 52 33 - Store 55 54 - 56: 42(ptr) AccessChain 41(input.pos) 52 - 57: 9(fvec4) Load 56 - 58: 23(ptr) AccessChain 32(input) 52 22 - Store 58 57 - 62: 6(int) Load 28(i) - Store 61(param) 62 - 64: 13 Load 32(input) - Store 63(param) 64 - 65: 9(fvec4) FunctionCall 18(@main(i1;struct-S-f1-vf41[3];) 61(param) 63(param) - Store 60(@entryPointOutput) 65 - Return - FunctionEnd -18(@main(i1;struct-S-f1-vf41[3];): 9(fvec4) Function None 15 - 16(i): 7(ptr) FunctionParameter - 17(input): 14(ptr) FunctionParameter - 19: Label - 20(a): 14(ptr) Variable Function - 21: 13 Load 20(a) - Store 17(input) 21 - 24: 23(ptr) AccessChain 20(a) 22 22 - 25: 9(fvec4) Load 24 - ReturnValue 25 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.struct.split.call.vert.out b/deps/glslang/Test/baseResults/hlsl.struct.split.call.vert.out deleted file mode 100644 index 2570552e..00000000 --- a/deps/glslang/Test/baseResults/hlsl.struct.split.call.vert.out +++ /dev/null @@ -1,348 +0,0 @@ -hlsl.struct.split.call.vert -Shader version: 500 -0:? Sequence -0:17 Function Definition: Fn1(struct-VS_INPUT-i1-vf4-i11;struct-VS_OUTPUT-i1-vf4-i11; ( temp void) -0:17 Function Parameters: -0:17 'fn1_in' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) -0:17 'fn1_out' ( in structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:? Sequence -0:18 add ( temp 4-component vector of float) -0:18 Pos_in: direct index for structure ( temp 4-component vector of float) -0:18 'fn1_in' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) -0:18 Constant: -0:18 1 (const int) -0:18 Pos_out: direct index for structure ( temp 4-component vector of float) -0:18 'fn1_out' ( in structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:18 Constant: -0:18 1 (const int) -0:22 Function Definition: @main(struct-VS_INPUT-i1-vf4-i11; ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:22 Function Parameters: -0:22 'vsin' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) -0:? Sequence -0:25 move second child to first child ( temp int) -0:25 x0_out: direct index for structure ( temp int) -0:25 'vsout' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:25 Constant: -0:25 0 (const int) -0:25 x0_in: direct index for structure ( temp int) -0:25 'vsin' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) -0:25 Constant: -0:25 0 (const int) -0:26 move second child to first child ( temp 4-component vector of float) -0:26 Pos_out: direct index for structure ( temp 4-component vector of float) -0:26 'vsout' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:26 Constant: -0:26 1 (const int) -0:26 Pos_in: direct index for structure ( temp 4-component vector of float) -0:26 'vsin' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) -0:26 Constant: -0:26 1 (const int) -0:27 move second child to first child ( temp int) -0:27 x1_out: direct index for structure ( temp int) -0:27 'vsout' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:27 Constant: -0:27 2 (const int) -0:27 x1_in: direct index for structure ( temp int) -0:27 'vsin' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) -0:27 Constant: -0:27 2 (const int) -0:29 Function Call: Fn1(struct-VS_INPUT-i1-vf4-i11;struct-VS_OUTPUT-i1-vf4-i11; ( temp void) -0:29 'vsin' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) -0:29 'vsout' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:31 Branch: Return with expression -0:31 'vsout' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:22 Function Definition: main( ( temp void) -0:22 Function Parameters: -0:? Sequence -0:22 Sequence -0:22 move second child to first child ( temp int) -0:22 x0_in: direct index for structure ( temp int) -0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) -0:22 Constant: -0:22 0 (const int) -0:? 'vsin.x0_in' (layout( location=0) in int) -0:22 move second child to first child ( temp 4-component vector of float) -0:22 Pos_in: direct index for structure ( temp 4-component vector of float) -0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) -0:22 Constant: -0:22 1 (const int) -0:? 'vsin.Pos_in' (layout( location=1) in 4-component vector of float) -0:22 move second child to first child ( temp int) -0:22 x1_in: direct index for structure ( temp int) -0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) -0:22 Constant: -0:22 2 (const int) -0:? 'vsin.x1_in' (layout( location=2) in int) -0:22 Sequence -0:22 move second child to first child ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:22 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:22 Function Call: @main(struct-VS_INPUT-i1-vf4-i11; ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) -0:22 move second child to first child ( temp int) -0:? '@entryPointOutput.x0_out' (layout( location=0) out int) -0:22 x0_out: direct index for structure ( temp int) -0:22 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:22 Constant: -0:22 0 (const int) -0:22 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.Pos_out' ( out 4-component vector of float Position) -0:22 Pos_out: direct index for structure ( temp 4-component vector of float) -0:22 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:22 Constant: -0:22 1 (const int) -0:22 move second child to first child ( temp int) -0:? '@entryPointOutput.x1_out' (layout( location=1) out int) -0:22 x1_out: direct index for structure ( temp int) -0:22 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:22 Constant: -0:22 2 (const int) -0:? Linker Objects -0:? '@entryPointOutput.Pos_out' ( out 4-component vector of float Position) -0:? '@entryPointOutput.x0_out' (layout( location=0) out int) -0:? '@entryPointOutput.x1_out' (layout( location=1) out int) -0:? 'vsin.x0_in' (layout( location=0) in int) -0:? 'vsin.Pos_in' (layout( location=1) in 4-component vector of float) -0:? 'vsin.x1_in' (layout( location=2) in int) - - -Linked vertex stage: - - -Shader version: 500 -0:? Sequence -0:17 Function Definition: Fn1(struct-VS_INPUT-i1-vf4-i11;struct-VS_OUTPUT-i1-vf4-i11; ( temp void) -0:17 Function Parameters: -0:17 'fn1_in' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) -0:17 'fn1_out' ( in structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:? Sequence -0:18 add ( temp 4-component vector of float) -0:18 Pos_in: direct index for structure ( temp 4-component vector of float) -0:18 'fn1_in' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) -0:18 Constant: -0:18 1 (const int) -0:18 Pos_out: direct index for structure ( temp 4-component vector of float) -0:18 'fn1_out' ( in structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:18 Constant: -0:18 1 (const int) -0:22 Function Definition: @main(struct-VS_INPUT-i1-vf4-i11; ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:22 Function Parameters: -0:22 'vsin' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) -0:? Sequence -0:25 move second child to first child ( temp int) -0:25 x0_out: direct index for structure ( temp int) -0:25 'vsout' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:25 Constant: -0:25 0 (const int) -0:25 x0_in: direct index for structure ( temp int) -0:25 'vsin' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) -0:25 Constant: -0:25 0 (const int) -0:26 move second child to first child ( temp 4-component vector of float) -0:26 Pos_out: direct index for structure ( temp 4-component vector of float) -0:26 'vsout' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:26 Constant: -0:26 1 (const int) -0:26 Pos_in: direct index for structure ( temp 4-component vector of float) -0:26 'vsin' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) -0:26 Constant: -0:26 1 (const int) -0:27 move second child to first child ( temp int) -0:27 x1_out: direct index for structure ( temp int) -0:27 'vsout' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:27 Constant: -0:27 2 (const int) -0:27 x1_in: direct index for structure ( temp int) -0:27 'vsin' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) -0:27 Constant: -0:27 2 (const int) -0:29 Function Call: Fn1(struct-VS_INPUT-i1-vf4-i11;struct-VS_OUTPUT-i1-vf4-i11; ( temp void) -0:29 'vsin' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) -0:29 'vsout' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:31 Branch: Return with expression -0:31 'vsout' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:22 Function Definition: main( ( temp void) -0:22 Function Parameters: -0:? Sequence -0:22 Sequence -0:22 move second child to first child ( temp int) -0:22 x0_in: direct index for structure ( temp int) -0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) -0:22 Constant: -0:22 0 (const int) -0:? 'vsin.x0_in' (layout( location=0) in int) -0:22 move second child to first child ( temp 4-component vector of float) -0:22 Pos_in: direct index for structure ( temp 4-component vector of float) -0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) -0:22 Constant: -0:22 1 (const int) -0:? 'vsin.Pos_in' (layout( location=1) in 4-component vector of float) -0:22 move second child to first child ( temp int) -0:22 x1_in: direct index for structure ( temp int) -0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) -0:22 Constant: -0:22 2 (const int) -0:? 'vsin.x1_in' (layout( location=2) in int) -0:22 Sequence -0:22 move second child to first child ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:22 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:22 Function Call: @main(struct-VS_INPUT-i1-vf4-i11; ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) -0:22 move second child to first child ( temp int) -0:? '@entryPointOutput.x0_out' (layout( location=0) out int) -0:22 x0_out: direct index for structure ( temp int) -0:22 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:22 Constant: -0:22 0 (const int) -0:22 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.Pos_out' ( out 4-component vector of float Position) -0:22 Pos_out: direct index for structure ( temp 4-component vector of float) -0:22 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:22 Constant: -0:22 1 (const int) -0:22 move second child to first child ( temp int) -0:? '@entryPointOutput.x1_out' (layout( location=1) out int) -0:22 x1_out: direct index for structure ( temp int) -0:22 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) -0:22 Constant: -0:22 2 (const int) -0:? Linker Objects -0:? '@entryPointOutput.Pos_out' ( out 4-component vector of float Position) -0:? '@entryPointOutput.x0_out' (layout( location=0) out int) -0:? '@entryPointOutput.x1_out' (layout( location=1) out int) -0:? 'vsin.x0_in' (layout( location=0) in int) -0:? 'vsin.Pos_in' (layout( location=1) in 4-component vector of float) -0:? 'vsin.x1_in' (layout( location=2) in int) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 77 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 52 56 59 67 71 74 - Source HLSL 500 - Name 4 "main" - Name 9 "VS_INPUT" - MemberName 9(VS_INPUT) 0 "x0_in" - MemberName 9(VS_INPUT) 1 "Pos_in" - MemberName 9(VS_INPUT) 2 "x1_in" - Name 11 "VS_OUTPUT" - MemberName 11(VS_OUTPUT) 0 "x0_out" - MemberName 11(VS_OUTPUT) 1 "Pos_out" - MemberName 11(VS_OUTPUT) 2 "x1_out" - Name 16 "Fn1(struct-VS_INPUT-i1-vf4-i11;struct-VS_OUTPUT-i1-vf4-i11;" - Name 14 "fn1_in" - Name 15 "fn1_out" - Name 20 "@main(struct-VS_INPUT-i1-vf4-i11;" - Name 19 "vsin" - Name 29 "vsout" - Name 42 "param" - Name 44 "param" - Name 50 "vsin" - Name 52 "vsin.x0_in" - Name 56 "vsin.Pos_in" - Name 59 "vsin.x1_in" - Name 62 "flattenTemp" - Name 63 "param" - Name 67 "@entryPointOutput.x0_out" - Name 71 "@entryPointOutput.Pos_out" - Name 74 "@entryPointOutput.x1_out" - Decorate 52(vsin.x0_in) Location 0 - Decorate 56(vsin.Pos_in) Location 1 - Decorate 59(vsin.x1_in) Location 2 - Decorate 67(@entryPointOutput.x0_out) Location 0 - Decorate 71(@entryPointOutput.Pos_out) BuiltIn Position - Decorate 74(@entryPointOutput.x1_out) Location 1 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypeFloat 32 - 8: TypeVector 7(float) 4 - 9(VS_INPUT): TypeStruct 6(int) 8(fvec4) 6(int) - 10: TypePointer Function 9(VS_INPUT) - 11(VS_OUTPUT): TypeStruct 6(int) 8(fvec4) 6(int) - 12: TypePointer Function 11(VS_OUTPUT) - 13: TypeFunction 2 10(ptr) 12(ptr) - 18: TypeFunction 11(VS_OUTPUT) 10(ptr) - 22: 6(int) Constant 1 - 23: TypePointer Function 8(fvec4) - 30: 6(int) Constant 0 - 31: TypePointer Function 6(int) - 38: 6(int) Constant 2 - 51: TypePointer Input 6(int) - 52(vsin.x0_in): 51(ptr) Variable Input - 55: TypePointer Input 8(fvec4) - 56(vsin.Pos_in): 55(ptr) Variable Input - 59(vsin.x1_in): 51(ptr) Variable Input - 66: TypePointer Output 6(int) -67(@entryPointOutput.x0_out): 66(ptr) Variable Output - 70: TypePointer Output 8(fvec4) -71(@entryPointOutput.Pos_out): 70(ptr) Variable Output -74(@entryPointOutput.x1_out): 66(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 50(vsin): 10(ptr) Variable Function - 62(flattenTemp): 12(ptr) Variable Function - 63(param): 10(ptr) Variable Function - 53: 6(int) Load 52(vsin.x0_in) - 54: 31(ptr) AccessChain 50(vsin) 30 - Store 54 53 - 57: 8(fvec4) Load 56(vsin.Pos_in) - 58: 23(ptr) AccessChain 50(vsin) 22 - Store 58 57 - 60: 6(int) Load 59(vsin.x1_in) - 61: 31(ptr) AccessChain 50(vsin) 38 - Store 61 60 - 64: 9(VS_INPUT) Load 50(vsin) - Store 63(param) 64 - 65:11(VS_OUTPUT) FunctionCall 20(@main(struct-VS_INPUT-i1-vf4-i11;) 63(param) - Store 62(flattenTemp) 65 - 68: 31(ptr) AccessChain 62(flattenTemp) 30 - 69: 6(int) Load 68 - Store 67(@entryPointOutput.x0_out) 69 - 72: 23(ptr) AccessChain 62(flattenTemp) 22 - 73: 8(fvec4) Load 72 - Store 71(@entryPointOutput.Pos_out) 73 - 75: 31(ptr) AccessChain 62(flattenTemp) 38 - 76: 6(int) Load 75 - Store 74(@entryPointOutput.x1_out) 76 - Return - FunctionEnd -16(Fn1(struct-VS_INPUT-i1-vf4-i11;struct-VS_OUTPUT-i1-vf4-i11;): 2 Function None 13 - 14(fn1_in): 10(ptr) FunctionParameter - 15(fn1_out): 12(ptr) FunctionParameter - 17: Label - 24: 23(ptr) AccessChain 14(fn1_in) 22 - 25: 8(fvec4) Load 24 - 26: 23(ptr) AccessChain 15(fn1_out) 22 - 27: 8(fvec4) Load 26 - 28: 8(fvec4) FAdd 25 27 - Return - FunctionEnd -20(@main(struct-VS_INPUT-i1-vf4-i11;):11(VS_OUTPUT) Function None 18 - 19(vsin): 10(ptr) FunctionParameter - 21: Label - 29(vsout): 12(ptr) Variable Function - 42(param): 10(ptr) Variable Function - 44(param): 12(ptr) Variable Function - 32: 31(ptr) AccessChain 19(vsin) 30 - 33: 6(int) Load 32 - 34: 31(ptr) AccessChain 29(vsout) 30 - Store 34 33 - 35: 23(ptr) AccessChain 19(vsin) 22 - 36: 8(fvec4) Load 35 - 37: 23(ptr) AccessChain 29(vsout) 22 - Store 37 36 - 39: 31(ptr) AccessChain 19(vsin) 38 - 40: 6(int) Load 39 - 41: 31(ptr) AccessChain 29(vsout) 38 - Store 41 40 - 43: 9(VS_INPUT) Load 19(vsin) - Store 42(param) 43 - 45:11(VS_OUTPUT) Load 29(vsout) - Store 44(param) 45 - 46: 2 FunctionCall 16(Fn1(struct-VS_INPUT-i1-vf4-i11;struct-VS_OUTPUT-i1-vf4-i11;) 42(param) 44(param) - 47:11(VS_OUTPUT) Load 29(vsout) - ReturnValue 47 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.struct.split.nested.geom.out b/deps/glslang/Test/baseResults/hlsl.struct.split.nested.geom.out deleted file mode 100644 index 1abe4c38..00000000 --- a/deps/glslang/Test/baseResults/hlsl.struct.split.nested.geom.out +++ /dev/null @@ -1,596 +0,0 @@ -hlsl.struct.split.nested.geom -Shader version: 500 -invocations = -1 -max_vertices = 3 -input primitive = triangles -output primitive = triangle_strip -0:? Sequence -0:24 Function Definition: @main(struct-PS_IN-vf4-vf21[3];struct-GS_OUT-struct-PS_IN-vf4-vf21-struct-STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO-f1[2]-i111; ( temp void) -0:24 Function Parameters: -0:24 'tin' ( in 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:24 'ts' ( out structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) -0:? Sequence -0:27 move second child to first child ( temp 4-component vector of float) -0:27 pos: direct index for structure ( temp 4-component vector of float) -0:27 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:27 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 1.000000 -0:27 2.000000 -0:27 3.000000 -0:27 4.000000 -0:28 move second child to first child ( temp 2-component vector of float) -0:28 tc: direct index for structure ( temp 2-component vector of float) -0:28 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:28 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 1 (const int) -0:28 Constant: -0:28 5.000000 -0:28 6.000000 -0:29 move second child to first child ( temp float) -0:29 direct index ( temp float) -0:29 m0_array: direct index for structure ( temp 2-element array of float) -0:29 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) -0:29 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) -0:29 Constant: -0:29 1 (const int) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 2.300000 -0:30 move second child to first child ( temp float) -0:30 direct index ( temp float) -0:30 m0_array: direct index for structure ( temp 2-element array of float) -0:30 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) -0:30 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 2.300000 -0:31 move second child to first child ( temp int) -0:31 m1: direct index for structure ( temp int) -0:31 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) -0:31 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 2 (const int) -0:33 Sequence -0:33 Sequence -0:33 move second child to first child ( temp 4-component vector of float) -0:? 'ts.pos' ( out 4-component vector of float Position) -0:33 pos: direct index for structure ( temp 4-component vector of float) -0:33 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 move second child to first child ( temp 2-component vector of float) -0:? 'ts.psIn.tc' (layout( location=0) out 2-component vector of float) -0:33 tc: direct index for structure ( temp 2-component vector of float) -0:33 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 1 (const int) -0:33 move second child to first child ( temp float) -0:? 'ts.contains_no_builtin_io.m0_array[0]' (layout( location=1) out float) -0:33 direct index ( temp float) -0:33 m0_array: direct index for structure ( temp 2-element array of float) -0:33 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) -0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 move second child to first child ( temp float) -0:? 'ts.contains_no_builtin_io.m0_array[1]' (layout( location=2) out float) -0:33 direct index ( temp float) -0:33 m0_array: direct index for structure ( temp 2-element array of float) -0:33 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) -0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 1 (const int) -0:33 move second child to first child ( temp int) -0:? 'ts.contains_no_builtin_io.m1' (layout( location=3) out int) -0:33 m1: direct index for structure ( temp int) -0:33 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) -0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 1 (const int) -0:33 EmitVertex ( temp void) -0:24 Function Definition: main( ( temp void) -0:24 Function Parameters: -0:? Sequence -0:24 Sequence -0:24 move second child to first child ( temp 4-component vector of float) -0:24 pos: direct index for structure ( temp 4-component vector of float) -0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 0 (const int) -0:24 direct index ( in 4-component vector of float Position) -0:? 'tin.pos' ( in 3-element array of 4-component vector of float Position) -0:24 Constant: -0:24 0 (const int) -0:24 move second child to first child ( temp 2-component vector of float) -0:24 tc: direct index for structure ( temp 2-component vector of float) -0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 direct index (layout( location=0) in 2-component vector of float) -0:? 'tin.tc' (layout( location=0) in 3-element array of 2-component vector of float) -0:24 Constant: -0:24 0 (const int) -0:24 move second child to first child ( temp 4-component vector of float) -0:24 pos: direct index for structure ( temp 4-component vector of float) -0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 0 (const int) -0:24 direct index ( in 4-component vector of float Position) -0:? 'tin.pos' ( in 3-element array of 4-component vector of float Position) -0:24 Constant: -0:24 1 (const int) -0:24 move second child to first child ( temp 2-component vector of float) -0:24 tc: direct index for structure ( temp 2-component vector of float) -0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 direct index (layout( location=0) in 2-component vector of float) -0:? 'tin.tc' (layout( location=0) in 3-element array of 2-component vector of float) -0:24 Constant: -0:24 1 (const int) -0:24 move second child to first child ( temp 4-component vector of float) -0:24 pos: direct index for structure ( temp 4-component vector of float) -0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:24 Constant: -0:24 2 (const int) -0:24 Constant: -0:24 0 (const int) -0:24 direct index ( in 4-component vector of float Position) -0:? 'tin.pos' ( in 3-element array of 4-component vector of float Position) -0:24 Constant: -0:24 2 (const int) -0:24 move second child to first child ( temp 2-component vector of float) -0:24 tc: direct index for structure ( temp 2-component vector of float) -0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:24 Constant: -0:24 2 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 direct index (layout( location=0) in 2-component vector of float) -0:? 'tin.tc' (layout( location=0) in 3-element array of 2-component vector of float) -0:24 Constant: -0:24 2 (const int) -0:24 Function Call: @main(struct-PS_IN-vf4-vf21[3];struct-GS_OUT-struct-PS_IN-vf4-vf21-struct-STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO-f1[2]-i111; ( temp void) -0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:? 'ts' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) -0:? Linker Objects -0:? 'tin.pos' ( in 3-element array of 4-component vector of float Position) -0:? 'tin.tc' (layout( location=0) in 3-element array of 2-component vector of float) -0:? 'ts.pos' ( out 4-component vector of float Position) -0:? 'ts.psIn.tc' (layout( location=0) out 2-component vector of float) -0:? 'ts.contains_no_builtin_io.m0_array[0]' (layout( location=1) out float) -0:? 'ts.contains_no_builtin_io.m0_array[1]' (layout( location=2) out float) -0:? 'ts.contains_no_builtin_io.m1' (layout( location=3) out int) - - -Linked geometry stage: - - -Shader version: 500 -invocations = 1 -max_vertices = 3 -input primitive = triangles -output primitive = triangle_strip -0:? Sequence -0:24 Function Definition: @main(struct-PS_IN-vf4-vf21[3];struct-GS_OUT-struct-PS_IN-vf4-vf21-struct-STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO-f1[2]-i111; ( temp void) -0:24 Function Parameters: -0:24 'tin' ( in 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:24 'ts' ( out structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) -0:? Sequence -0:27 move second child to first child ( temp 4-component vector of float) -0:27 pos: direct index for structure ( temp 4-component vector of float) -0:27 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:27 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 1.000000 -0:27 2.000000 -0:27 3.000000 -0:27 4.000000 -0:28 move second child to first child ( temp 2-component vector of float) -0:28 tc: direct index for structure ( temp 2-component vector of float) -0:28 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:28 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 1 (const int) -0:28 Constant: -0:28 5.000000 -0:28 6.000000 -0:29 move second child to first child ( temp float) -0:29 direct index ( temp float) -0:29 m0_array: direct index for structure ( temp 2-element array of float) -0:29 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) -0:29 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) -0:29 Constant: -0:29 1 (const int) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 2.300000 -0:30 move second child to first child ( temp float) -0:30 direct index ( temp float) -0:30 m0_array: direct index for structure ( temp 2-element array of float) -0:30 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) -0:30 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 2.300000 -0:31 move second child to first child ( temp int) -0:31 m1: direct index for structure ( temp int) -0:31 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) -0:31 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 2 (const int) -0:33 Sequence -0:33 Sequence -0:33 move second child to first child ( temp 4-component vector of float) -0:? 'ts.pos' ( out 4-component vector of float Position) -0:33 pos: direct index for structure ( temp 4-component vector of float) -0:33 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 move second child to first child ( temp 2-component vector of float) -0:? 'ts.psIn.tc' (layout( location=0) out 2-component vector of float) -0:33 tc: direct index for structure ( temp 2-component vector of float) -0:33 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 1 (const int) -0:33 move second child to first child ( temp float) -0:? 'ts.contains_no_builtin_io.m0_array[0]' (layout( location=1) out float) -0:33 direct index ( temp float) -0:33 m0_array: direct index for structure ( temp 2-element array of float) -0:33 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) -0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 move second child to first child ( temp float) -0:? 'ts.contains_no_builtin_io.m0_array[1]' (layout( location=2) out float) -0:33 direct index ( temp float) -0:33 m0_array: direct index for structure ( temp 2-element array of float) -0:33 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) -0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 1 (const int) -0:33 move second child to first child ( temp int) -0:? 'ts.contains_no_builtin_io.m1' (layout( location=3) out int) -0:33 m1: direct index for structure ( temp int) -0:33 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) -0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 1 (const int) -0:33 EmitVertex ( temp void) -0:24 Function Definition: main( ( temp void) -0:24 Function Parameters: -0:? Sequence -0:24 Sequence -0:24 move second child to first child ( temp 4-component vector of float) -0:24 pos: direct index for structure ( temp 4-component vector of float) -0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 0 (const int) -0:24 direct index ( in 4-component vector of float Position) -0:? 'tin.pos' ( in 3-element array of 4-component vector of float Position) -0:24 Constant: -0:24 0 (const int) -0:24 move second child to first child ( temp 2-component vector of float) -0:24 tc: direct index for structure ( temp 2-component vector of float) -0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 direct index (layout( location=0) in 2-component vector of float) -0:? 'tin.tc' (layout( location=0) in 3-element array of 2-component vector of float) -0:24 Constant: -0:24 0 (const int) -0:24 move second child to first child ( temp 4-component vector of float) -0:24 pos: direct index for structure ( temp 4-component vector of float) -0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 0 (const int) -0:24 direct index ( in 4-component vector of float Position) -0:? 'tin.pos' ( in 3-element array of 4-component vector of float Position) -0:24 Constant: -0:24 1 (const int) -0:24 move second child to first child ( temp 2-component vector of float) -0:24 tc: direct index for structure ( temp 2-component vector of float) -0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 direct index (layout( location=0) in 2-component vector of float) -0:? 'tin.tc' (layout( location=0) in 3-element array of 2-component vector of float) -0:24 Constant: -0:24 1 (const int) -0:24 move second child to first child ( temp 4-component vector of float) -0:24 pos: direct index for structure ( temp 4-component vector of float) -0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:24 Constant: -0:24 2 (const int) -0:24 Constant: -0:24 0 (const int) -0:24 direct index ( in 4-component vector of float Position) -0:? 'tin.pos' ( in 3-element array of 4-component vector of float Position) -0:24 Constant: -0:24 2 (const int) -0:24 move second child to first child ( temp 2-component vector of float) -0:24 tc: direct index for structure ( temp 2-component vector of float) -0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:24 Constant: -0:24 2 (const int) -0:24 Constant: -0:24 1 (const int) -0:24 direct index (layout( location=0) in 2-component vector of float) -0:? 'tin.tc' (layout( location=0) in 3-element array of 2-component vector of float) -0:24 Constant: -0:24 2 (const int) -0:24 Function Call: @main(struct-PS_IN-vf4-vf21[3];struct-GS_OUT-struct-PS_IN-vf4-vf21-struct-STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO-f1[2]-i111; ( temp void) -0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:? 'ts' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) -0:? Linker Objects -0:? 'tin.pos' ( in 3-element array of 4-component vector of float Position) -0:? 'tin.tc' (layout( location=0) in 3-element array of 2-component vector of float) -0:? 'ts.pos' ( out 4-component vector of float Position) -0:? 'ts.psIn.tc' (layout( location=0) out 2-component vector of float) -0:? 'ts.contains_no_builtin_io.m0_array[0]' (layout( location=1) out float) -0:? 'ts.contains_no_builtin_io.m0_array[1]' (layout( location=2) out float) -0:? 'ts.contains_no_builtin_io.m1' (layout( location=3) out int) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 99 - - Capability Geometry - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Geometry 4 "main" 48 52 56 59 63 69 76 - ExecutionMode 4 Triangles - ExecutionMode 4 Invocations 1 - ExecutionMode 4 OutputTriangleStrip - ExecutionMode 4 OutputVertices 3 - Source HLSL 500 - Name 4 "main" - Name 9 "PS_IN" - MemberName 9(PS_IN) 0 "pos" - MemberName 9(PS_IN) 1 "tc" - Name 17 "STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO" - MemberName 17(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO) 0 "m0_array" - MemberName 17(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO) 1 "m1" - Name 18 "GS_OUT" - MemberName 18(GS_OUT) 0 "psIn" - MemberName 18(GS_OUT) 1 "contains_no_builtin_io" - Name 23 "@main(struct-PS_IN-vf4-vf21[3];struct-GS_OUT-struct-PS_IN-vf4-vf21-struct-STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO-f1[2]-i111;" - Name 21 "tin" - Name 22 "ts" - Name 25 "o" - Name 48 "ts.pos" - Name 52 "ts.psIn.tc" - Name 56 "ts.contains_no_builtin_io.m0_array[0]" - Name 59 "ts.contains_no_builtin_io.m0_array[1]" - Name 63 "ts.contains_no_builtin_io.m1" - Name 66 "tin" - Name 69 "tin.pos" - Name 76 "tin.tc" - Name 93 "ts" - Name 94 "param" - Name 96 "param" - Decorate 48(ts.pos) BuiltIn Position - Decorate 52(ts.psIn.tc) Location 0 - Decorate 56(ts.contains_no_builtin_io.m0_array[0]) Location 1 - Decorate 59(ts.contains_no_builtin_io.m0_array[1]) Location 2 - Decorate 63(ts.contains_no_builtin_io.m1) Location 3 - Decorate 69(tin.pos) BuiltIn Position - Decorate 76(tin.tc) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeVector 6(float) 2 - 9(PS_IN): TypeStruct 7(fvec4) 8(fvec2) - 10: TypeInt 32 0 - 11: 10(int) Constant 3 - 12: TypeArray 9(PS_IN) 11 - 13: TypePointer Function 12 - 14: 10(int) Constant 2 - 15: TypeArray 6(float) 14 - 16: TypeInt 32 1 -17(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO): TypeStruct 15 16(int) - 18(GS_OUT): TypeStruct 9(PS_IN) 17(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO) - 19: TypePointer Function 18(GS_OUT) - 20: TypeFunction 2 13(ptr) 19(ptr) - 26: 16(int) Constant 0 - 27: 6(float) Constant 1065353216 - 28: 6(float) Constant 1073741824 - 29: 6(float) Constant 1077936128 - 30: 6(float) Constant 1082130432 - 31: 7(fvec4) ConstantComposite 27 28 29 30 - 32: TypePointer Function 7(fvec4) - 34: 16(int) Constant 1 - 35: 6(float) Constant 1084227584 - 36: 6(float) Constant 1086324736 - 37: 8(fvec2) ConstantComposite 35 36 - 38: TypePointer Function 8(fvec2) - 40: 6(float) Constant 1075000115 - 41: TypePointer Function 6(float) - 44: 16(int) Constant 2 - 45: TypePointer Function 16(int) - 47: TypePointer Output 7(fvec4) - 48(ts.pos): 47(ptr) Variable Output - 51: TypePointer Output 8(fvec2) - 52(ts.psIn.tc): 51(ptr) Variable Output - 55: TypePointer Output 6(float) -56(ts.contains_no_builtin_io.m0_array[0]): 55(ptr) Variable Output -59(ts.contains_no_builtin_io.m0_array[1]): 55(ptr) Variable Output - 62: TypePointer Output 16(int) -63(ts.contains_no_builtin_io.m1): 62(ptr) Variable Output - 67: TypeArray 7(fvec4) 11 - 68: TypePointer Input 67 - 69(tin.pos): 68(ptr) Variable Input - 70: TypePointer Input 7(fvec4) - 74: TypeArray 8(fvec2) 11 - 75: TypePointer Input 74 - 76(tin.tc): 75(ptr) Variable Input - 77: TypePointer Input 8(fvec2) - 4(main): 2 Function None 3 - 5: Label - 66(tin): 13(ptr) Variable Function - 93(ts): 19(ptr) Variable Function - 94(param): 13(ptr) Variable Function - 96(param): 19(ptr) Variable Function - 71: 70(ptr) AccessChain 69(tin.pos) 26 - 72: 7(fvec4) Load 71 - 73: 32(ptr) AccessChain 66(tin) 26 26 - Store 73 72 - 78: 77(ptr) AccessChain 76(tin.tc) 26 - 79: 8(fvec2) Load 78 - 80: 38(ptr) AccessChain 66(tin) 26 34 - Store 80 79 - 81: 70(ptr) AccessChain 69(tin.pos) 34 - 82: 7(fvec4) Load 81 - 83: 32(ptr) AccessChain 66(tin) 34 26 - Store 83 82 - 84: 77(ptr) AccessChain 76(tin.tc) 34 - 85: 8(fvec2) Load 84 - 86: 38(ptr) AccessChain 66(tin) 34 34 - Store 86 85 - 87: 70(ptr) AccessChain 69(tin.pos) 44 - 88: 7(fvec4) Load 87 - 89: 32(ptr) AccessChain 66(tin) 44 26 - Store 89 88 - 90: 77(ptr) AccessChain 76(tin.tc) 44 - 91: 8(fvec2) Load 90 - 92: 38(ptr) AccessChain 66(tin) 44 34 - Store 92 91 - 95: 12 Load 66(tin) - Store 94(param) 95 - 97: 2 FunctionCall 23(@main(struct-PS_IN-vf4-vf21[3];struct-GS_OUT-struct-PS_IN-vf4-vf21-struct-STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO-f1[2]-i111;) 94(param) 96(param) - 98: 18(GS_OUT) Load 96(param) - Store 93(ts) 98 - Return - FunctionEnd -23(@main(struct-PS_IN-vf4-vf21[3];struct-GS_OUT-struct-PS_IN-vf4-vf21-struct-STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO-f1[2]-i111;): 2 Function None 20 - 21(tin): 13(ptr) FunctionParameter - 22(ts): 19(ptr) FunctionParameter - 24: Label - 25(o): 19(ptr) Variable Function - 33: 32(ptr) AccessChain 25(o) 26 26 - Store 33 31 - 39: 38(ptr) AccessChain 25(o) 26 34 - Store 39 37 - 42: 41(ptr) AccessChain 25(o) 34 26 26 - Store 42 40 - 43: 41(ptr) AccessChain 25(o) 34 26 34 - Store 43 40 - 46: 45(ptr) AccessChain 25(o) 34 34 - Store 46 44 - 49: 32(ptr) AccessChain 25(o) 26 26 - 50: 7(fvec4) Load 49 - Store 48(ts.pos) 50 - 53: 38(ptr) AccessChain 25(o) 26 34 - 54: 8(fvec2) Load 53 - Store 52(ts.psIn.tc) 54 - 57: 41(ptr) AccessChain 25(o) 34 26 26 - 58: 6(float) Load 57 - Store 56(ts.contains_no_builtin_io.m0_array[0]) 58 - 60: 41(ptr) AccessChain 25(o) 34 26 34 - 61: 6(float) Load 60 - Store 59(ts.contains_no_builtin_io.m0_array[1]) 61 - 64: 45(ptr) AccessChain 25(o) 34 34 - 65: 16(int) Load 64 - Store 63(ts.contains_no_builtin_io.m1) 65 - EmitVertex - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.struct.split.trivial.geom.out b/deps/glslang/Test/baseResults/hlsl.struct.split.trivial.geom.out deleted file mode 100644 index 89c02bf2..00000000 --- a/deps/glslang/Test/baseResults/hlsl.struct.split.trivial.geom.out +++ /dev/null @@ -1,309 +0,0 @@ -hlsl.struct.split.trivial.geom -Shader version: 500 -invocations = -1 -max_vertices = 3 -input primitive = triangles -output primitive = triangle_strip -0:? Sequence -0:14 Function Definition: @main(struct-PS_IN-vf41[3];struct-GS_OUT-vf41; ( temp void) -0:14 Function Parameters: -0:14 'i' ( in 3-element array of structure{ temp 4-component vector of float pos}) -0:14 'ts' ( out structure{ temp 4-component vector of float pos}) -0:? Sequence -0:17 Sequence -0:17 move second child to first child ( temp int) -0:17 'x' ( temp int) -0:17 Constant: -0:17 0 (const int) -0:17 Loop with condition tested first -0:17 Loop Condition -0:17 Compare Less Than ( temp bool) -0:17 'x' ( temp int) -0:17 Constant: -0:17 3 (const int) -0:17 Loop Body -0:? Sequence -0:18 move second child to first child ( temp 4-component vector of float) -0:18 pos: direct index for structure ( temp 4-component vector of float) -0:18 'o' ( temp structure{ temp 4-component vector of float pos}) -0:18 Constant: -0:18 0 (const int) -0:18 pos: direct index for structure ( temp 4-component vector of float) -0:18 indirect index ( temp structure{ temp 4-component vector of float pos}) -0:18 'i' ( in 3-element array of structure{ temp 4-component vector of float pos}) -0:18 'x' ( temp int) -0:18 Constant: -0:18 0 (const int) -0:19 Sequence -0:19 Sequence -0:19 move second child to first child ( temp 4-component vector of float) -0:? 'ts.pos' ( out 4-component vector of float Position) -0:19 pos: direct index for structure ( temp 4-component vector of float) -0:19 'o' ( temp structure{ temp 4-component vector of float pos}) -0:19 Constant: -0:19 0 (const int) -0:19 EmitVertex ( temp void) -0:17 Loop Terminal Expression -0:17 Pre-Increment ( temp int) -0:17 'x' ( temp int) -0:14 Function Definition: main( ( temp void) -0:14 Function Parameters: -0:? Sequence -0:14 Sequence -0:14 move second child to first child ( temp 4-component vector of float) -0:14 pos: direct index for structure ( temp 4-component vector of float) -0:14 direct index ( temp structure{ temp 4-component vector of float pos}) -0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos}) -0:14 Constant: -0:14 0 (const int) -0:14 Constant: -0:14 0 (const int) -0:14 direct index ( in 4-component vector of float Position) -0:? 'i.pos' ( in 3-element array of 4-component vector of float Position) -0:14 Constant: -0:14 0 (const int) -0:14 move second child to first child ( temp 4-component vector of float) -0:14 pos: direct index for structure ( temp 4-component vector of float) -0:14 direct index ( temp structure{ temp 4-component vector of float pos}) -0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos}) -0:14 Constant: -0:14 1 (const int) -0:14 Constant: -0:14 0 (const int) -0:14 direct index ( in 4-component vector of float Position) -0:? 'i.pos' ( in 3-element array of 4-component vector of float Position) -0:14 Constant: -0:14 1 (const int) -0:14 move second child to first child ( temp 4-component vector of float) -0:14 pos: direct index for structure ( temp 4-component vector of float) -0:14 direct index ( temp structure{ temp 4-component vector of float pos}) -0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos}) -0:14 Constant: -0:14 2 (const int) -0:14 Constant: -0:14 0 (const int) -0:14 direct index ( in 4-component vector of float Position) -0:? 'i.pos' ( in 3-element array of 4-component vector of float Position) -0:14 Constant: -0:14 2 (const int) -0:14 Function Call: @main(struct-PS_IN-vf41[3];struct-GS_OUT-vf41; ( temp void) -0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos}) -0:? 'ts' ( temp structure{ temp 4-component vector of float pos}) -0:? Linker Objects -0:? 'i.pos' ( in 3-element array of 4-component vector of float Position) -0:? 'ts.pos' ( out 4-component vector of float Position) - - -Linked geometry stage: - - -Shader version: 500 -invocations = 1 -max_vertices = 3 -input primitive = triangles -output primitive = triangle_strip -0:? Sequence -0:14 Function Definition: @main(struct-PS_IN-vf41[3];struct-GS_OUT-vf41; ( temp void) -0:14 Function Parameters: -0:14 'i' ( in 3-element array of structure{ temp 4-component vector of float pos}) -0:14 'ts' ( out structure{ temp 4-component vector of float pos}) -0:? Sequence -0:17 Sequence -0:17 move second child to first child ( temp int) -0:17 'x' ( temp int) -0:17 Constant: -0:17 0 (const int) -0:17 Loop with condition tested first -0:17 Loop Condition -0:17 Compare Less Than ( temp bool) -0:17 'x' ( temp int) -0:17 Constant: -0:17 3 (const int) -0:17 Loop Body -0:? Sequence -0:18 move second child to first child ( temp 4-component vector of float) -0:18 pos: direct index for structure ( temp 4-component vector of float) -0:18 'o' ( temp structure{ temp 4-component vector of float pos}) -0:18 Constant: -0:18 0 (const int) -0:18 pos: direct index for structure ( temp 4-component vector of float) -0:18 indirect index ( temp structure{ temp 4-component vector of float pos}) -0:18 'i' ( in 3-element array of structure{ temp 4-component vector of float pos}) -0:18 'x' ( temp int) -0:18 Constant: -0:18 0 (const int) -0:19 Sequence -0:19 Sequence -0:19 move second child to first child ( temp 4-component vector of float) -0:? 'ts.pos' ( out 4-component vector of float Position) -0:19 pos: direct index for structure ( temp 4-component vector of float) -0:19 'o' ( temp structure{ temp 4-component vector of float pos}) -0:19 Constant: -0:19 0 (const int) -0:19 EmitVertex ( temp void) -0:17 Loop Terminal Expression -0:17 Pre-Increment ( temp int) -0:17 'x' ( temp int) -0:14 Function Definition: main( ( temp void) -0:14 Function Parameters: -0:? Sequence -0:14 Sequence -0:14 move second child to first child ( temp 4-component vector of float) -0:14 pos: direct index for structure ( temp 4-component vector of float) -0:14 direct index ( temp structure{ temp 4-component vector of float pos}) -0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos}) -0:14 Constant: -0:14 0 (const int) -0:14 Constant: -0:14 0 (const int) -0:14 direct index ( in 4-component vector of float Position) -0:? 'i.pos' ( in 3-element array of 4-component vector of float Position) -0:14 Constant: -0:14 0 (const int) -0:14 move second child to first child ( temp 4-component vector of float) -0:14 pos: direct index for structure ( temp 4-component vector of float) -0:14 direct index ( temp structure{ temp 4-component vector of float pos}) -0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos}) -0:14 Constant: -0:14 1 (const int) -0:14 Constant: -0:14 0 (const int) -0:14 direct index ( in 4-component vector of float Position) -0:? 'i.pos' ( in 3-element array of 4-component vector of float Position) -0:14 Constant: -0:14 1 (const int) -0:14 move second child to first child ( temp 4-component vector of float) -0:14 pos: direct index for structure ( temp 4-component vector of float) -0:14 direct index ( temp structure{ temp 4-component vector of float pos}) -0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos}) -0:14 Constant: -0:14 2 (const int) -0:14 Constant: -0:14 0 (const int) -0:14 direct index ( in 4-component vector of float Position) -0:? 'i.pos' ( in 3-element array of 4-component vector of float Position) -0:14 Constant: -0:14 2 (const int) -0:14 Function Call: @main(struct-PS_IN-vf41[3];struct-GS_OUT-vf41; ( temp void) -0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos}) -0:? 'ts' ( temp structure{ temp 4-component vector of float pos}) -0:? Linker Objects -0:? 'i.pos' ( in 3-element array of 4-component vector of float Position) -0:? 'ts.pos' ( out 4-component vector of float Position) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 67 - - Capability Geometry - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Geometry 4 "main" 40 49 - ExecutionMode 4 Triangles - ExecutionMode 4 Invocations 1 - ExecutionMode 4 OutputTriangleStrip - ExecutionMode 4 OutputVertices 3 - Source HLSL 500 - Name 4 "main" - Name 8 "PS_IN" - MemberName 8(PS_IN) 0 "pos" - Name 13 "GS_OUT" - MemberName 13(GS_OUT) 0 "pos" - Name 18 "@main(struct-PS_IN-vf41[3];struct-GS_OUT-vf41;" - Name 16 "i" - Name 17 "ts" - Name 22 "x" - Name 33 "o" - Name 40 "ts.pos" - Name 46 "i" - Name 49 "i.pos" - Name 61 "ts" - Name 62 "param" - Name 64 "param" - Decorate 40(ts.pos) BuiltIn Position - Decorate 49(i.pos) BuiltIn Position - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8(PS_IN): TypeStruct 7(fvec4) - 9: TypeInt 32 0 - 10: 9(int) Constant 3 - 11: TypeArray 8(PS_IN) 10 - 12: TypePointer Function 11 - 13(GS_OUT): TypeStruct 7(fvec4) - 14: TypePointer Function 13(GS_OUT) - 15: TypeFunction 2 12(ptr) 14(ptr) - 20: TypeInt 32 1 - 21: TypePointer Function 20(int) - 23: 20(int) Constant 0 - 30: 20(int) Constant 3 - 31: TypeBool - 35: TypePointer Function 7(fvec4) - 39: TypePointer Output 7(fvec4) - 40(ts.pos): 39(ptr) Variable Output - 44: 20(int) Constant 1 - 47: TypeArray 7(fvec4) 10 - 48: TypePointer Input 47 - 49(i.pos): 48(ptr) Variable Input - 50: TypePointer Input 7(fvec4) - 57: 20(int) Constant 2 - 4(main): 2 Function None 3 - 5: Label - 46(i): 12(ptr) Variable Function - 61(ts): 14(ptr) Variable Function - 62(param): 12(ptr) Variable Function - 64(param): 14(ptr) Variable Function - 51: 50(ptr) AccessChain 49(i.pos) 23 - 52: 7(fvec4) Load 51 - 53: 35(ptr) AccessChain 46(i) 23 23 - Store 53 52 - 54: 50(ptr) AccessChain 49(i.pos) 44 - 55: 7(fvec4) Load 54 - 56: 35(ptr) AccessChain 46(i) 44 23 - Store 56 55 - 58: 50(ptr) AccessChain 49(i.pos) 57 - 59: 7(fvec4) Load 58 - 60: 35(ptr) AccessChain 46(i) 57 23 - Store 60 59 - 63: 11 Load 46(i) - Store 62(param) 63 - 65: 2 FunctionCall 18(@main(struct-PS_IN-vf41[3];struct-GS_OUT-vf41;) 62(param) 64(param) - 66: 13(GS_OUT) Load 64(param) - Store 61(ts) 66 - Return - FunctionEnd -18(@main(struct-PS_IN-vf41[3];struct-GS_OUT-vf41;): 2 Function None 15 - 16(i): 12(ptr) FunctionParameter - 17(ts): 14(ptr) FunctionParameter - 19: Label - 22(x): 21(ptr) Variable Function - 33(o): 14(ptr) Variable Function - Store 22(x) 23 - Branch 24 - 24: Label - LoopMerge 26 27 None - Branch 28 - 28: Label - 29: 20(int) Load 22(x) - 32: 31(bool) SLessThan 29 30 - BranchConditional 32 25 26 - 25: Label - 34: 20(int) Load 22(x) - 36: 35(ptr) AccessChain 16(i) 34 23 - 37: 7(fvec4) Load 36 - 38: 35(ptr) AccessChain 33(o) 23 - Store 38 37 - 41: 35(ptr) AccessChain 33(o) 23 - 42: 7(fvec4) Load 41 - Store 40(ts.pos) 42 - EmitVertex - Branch 27 - 27: Label - 43: 20(int) Load 22(x) - 45: 20(int) IAdd 43 44 - Store 22(x) 45 - Branch 24 - 26: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.struct.split.trivial.vert.out b/deps/glslang/Test/baseResults/hlsl.struct.split.trivial.vert.out deleted file mode 100644 index f1470ab6..00000000 --- a/deps/glslang/Test/baseResults/hlsl.struct.split.trivial.vert.out +++ /dev/null @@ -1,178 +0,0 @@ -hlsl.struct.split.trivial.vert -Shader version: 500 -0:? Sequence -0:16 Function Definition: @main(struct-VS_INPUT-vf41;vf4; ( temp structure{ temp 4-component vector of float Pos}) -0:16 Function Parameters: -0:16 'vsin' ( in structure{ temp 4-component vector of float Pos_in}) -0:16 'Pos_loose' ( in 4-component vector of float) -0:? Sequence -0:19 move second child to first child ( temp 4-component vector of float) -0:19 Pos: direct index for structure ( temp 4-component vector of float) -0:19 'vsout' ( temp structure{ temp 4-component vector of float Pos}) -0:19 Constant: -0:19 0 (const int) -0:19 add ( temp 4-component vector of float) -0:19 Pos_in: direct index for structure ( temp 4-component vector of float) -0:19 'vsin' ( in structure{ temp 4-component vector of float Pos_in}) -0:19 Constant: -0:19 0 (const int) -0:19 'Pos_loose' ( in 4-component vector of float) -0:21 Branch: Return with expression -0:21 'vsout' ( temp structure{ temp 4-component vector of float Pos}) -0:16 Function Definition: main( ( temp void) -0:16 Function Parameters: -0:? Sequence -0:16 Sequence -0:16 move second child to first child ( temp 4-component vector of float) -0:16 Pos_in: direct index for structure ( temp 4-component vector of float) -0:? 'vsin' ( temp structure{ temp 4-component vector of float Pos_in}) -0:16 Constant: -0:16 0 (const int) -0:? 'vsin.Pos_in' (layout( location=0) in 4-component vector of float) -0:16 move second child to first child ( temp 4-component vector of float) -0:? 'Pos_loose' ( temp 4-component vector of float) -0:? 'Pos_loose' (layout( location=1) in 4-component vector of float) -0:16 Sequence -0:16 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) -0:16 Pos: direct index for structure ( temp 4-component vector of float) -0:16 Function Call: @main(struct-VS_INPUT-vf41;vf4; ( temp structure{ temp 4-component vector of float Pos}) -0:? 'vsin' ( temp structure{ temp 4-component vector of float Pos_in}) -0:? 'Pos_loose' ( temp 4-component vector of float) -0:16 Constant: -0:16 0 (const int) -0:? Linker Objects -0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) -0:? 'vsin.Pos_in' (layout( location=0) in 4-component vector of float) -0:? 'Pos_loose' (layout( location=1) in 4-component vector of float) - - -Linked vertex stage: - - -Shader version: 500 -0:? Sequence -0:16 Function Definition: @main(struct-VS_INPUT-vf41;vf4; ( temp structure{ temp 4-component vector of float Pos}) -0:16 Function Parameters: -0:16 'vsin' ( in structure{ temp 4-component vector of float Pos_in}) -0:16 'Pos_loose' ( in 4-component vector of float) -0:? Sequence -0:19 move second child to first child ( temp 4-component vector of float) -0:19 Pos: direct index for structure ( temp 4-component vector of float) -0:19 'vsout' ( temp structure{ temp 4-component vector of float Pos}) -0:19 Constant: -0:19 0 (const int) -0:19 add ( temp 4-component vector of float) -0:19 Pos_in: direct index for structure ( temp 4-component vector of float) -0:19 'vsin' ( in structure{ temp 4-component vector of float Pos_in}) -0:19 Constant: -0:19 0 (const int) -0:19 'Pos_loose' ( in 4-component vector of float) -0:21 Branch: Return with expression -0:21 'vsout' ( temp structure{ temp 4-component vector of float Pos}) -0:16 Function Definition: main( ( temp void) -0:16 Function Parameters: -0:? Sequence -0:16 Sequence -0:16 move second child to first child ( temp 4-component vector of float) -0:16 Pos_in: direct index for structure ( temp 4-component vector of float) -0:? 'vsin' ( temp structure{ temp 4-component vector of float Pos_in}) -0:16 Constant: -0:16 0 (const int) -0:? 'vsin.Pos_in' (layout( location=0) in 4-component vector of float) -0:16 move second child to first child ( temp 4-component vector of float) -0:? 'Pos_loose' ( temp 4-component vector of float) -0:? 'Pos_loose' (layout( location=1) in 4-component vector of float) -0:16 Sequence -0:16 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) -0:16 Pos: direct index for structure ( temp 4-component vector of float) -0:16 Function Call: @main(struct-VS_INPUT-vf41;vf4; ( temp structure{ temp 4-component vector of float Pos}) -0:? 'vsin' ( temp structure{ temp 4-component vector of float Pos_in}) -0:? 'Pos_loose' ( temp 4-component vector of float) -0:16 Constant: -0:16 0 (const int) -0:? Linker Objects -0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) -0:? 'vsin.Pos_in' (layout( location=0) in 4-component vector of float) -0:? 'Pos_loose' (layout( location=1) in 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 45 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 31 35 38 - Source HLSL 500 - Name 4 "main" - Name 8 "VS_INPUT" - MemberName 8(VS_INPUT) 0 "Pos_in" - Name 11 "VS_OUTPUT" - MemberName 11(VS_OUTPUT) 0 "Pos" - Name 15 "@main(struct-VS_INPUT-vf41;vf4;" - Name 13 "vsin" - Name 14 "Pos_loose" - Name 18 "vsout" - Name 29 "vsin" - Name 31 "vsin.Pos_in" - Name 34 "Pos_loose" - Name 35 "Pos_loose" - Name 38 "@entryPointOutput.Pos" - Name 39 "param" - Name 41 "param" - Decorate 31(vsin.Pos_in) Location 0 - Decorate 35(Pos_loose) Location 1 - Decorate 38(@entryPointOutput.Pos) BuiltIn Position - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8(VS_INPUT): TypeStruct 7(fvec4) - 9: TypePointer Function 8(VS_INPUT) - 10: TypePointer Function 7(fvec4) - 11(VS_OUTPUT): TypeStruct 7(fvec4) - 12: TypeFunction 11(VS_OUTPUT) 9(ptr) 10(ptr) - 17: TypePointer Function 11(VS_OUTPUT) - 19: TypeInt 32 1 - 20: 19(int) Constant 0 - 30: TypePointer Input 7(fvec4) - 31(vsin.Pos_in): 30(ptr) Variable Input - 35(Pos_loose): 30(ptr) Variable Input - 37: TypePointer Output 7(fvec4) -38(@entryPointOutput.Pos): 37(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 29(vsin): 9(ptr) Variable Function - 34(Pos_loose): 10(ptr) Variable Function - 39(param): 9(ptr) Variable Function - 41(param): 10(ptr) Variable Function - 32: 7(fvec4) Load 31(vsin.Pos_in) - 33: 10(ptr) AccessChain 29(vsin) 20 - Store 33 32 - 36: 7(fvec4) Load 35(Pos_loose) - Store 34(Pos_loose) 36 - 40: 8(VS_INPUT) Load 29(vsin) - Store 39(param) 40 - 42: 7(fvec4) Load 34(Pos_loose) - Store 41(param) 42 - 43:11(VS_OUTPUT) FunctionCall 15(@main(struct-VS_INPUT-vf41;vf4;) 39(param) 41(param) - 44: 7(fvec4) CompositeExtract 43 0 - Store 38(@entryPointOutput.Pos) 44 - Return - FunctionEnd -15(@main(struct-VS_INPUT-vf41;vf4;):11(VS_OUTPUT) Function None 12 - 13(vsin): 9(ptr) FunctionParameter - 14(Pos_loose): 10(ptr) FunctionParameter - 16: Label - 18(vsout): 17(ptr) Variable Function - 21: 10(ptr) AccessChain 13(vsin) 20 - 22: 7(fvec4) Load 21 - 23: 7(fvec4) Load 14(Pos_loose) - 24: 7(fvec4) FAdd 22 23 - 25: 10(ptr) AccessChain 18(vsout) 20 - Store 25 24 - 26:11(VS_OUTPUT) Load 18(vsout) - ReturnValue 26 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.structIoFourWay.frag.out b/deps/glslang/Test/baseResults/hlsl.structIoFourWay.frag.out deleted file mode 100644 index fd1a8bb4..00000000 --- a/deps/glslang/Test/baseResults/hlsl.structIoFourWay.frag.out +++ /dev/null @@ -1,302 +0,0 @@ -hlsl.structIoFourWay.frag -Shader version: 500 -gl_FragCoord origin is upper left -using depth_greater -0:? Sequence -0:15 Function Definition: @main(struct-T-f1-f1-f1-vf41; ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) -0:15 Function Parameters: -0:15 't' ( in structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) -0:? Sequence -0:17 Branch: Return with expression -0:17 'local' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) -0:15 Function Definition: main( ( temp void) -0:15 Function Parameters: -0:? Sequence -0:15 Sequence -0:15 move second child to first child ( temp float) -0:15 f: direct index for structure ( temp float) -0:? 't' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) -0:15 Constant: -0:15 0 (const int) -0:? 't.f' (layout( location=0) in float) -0:15 move second child to first child ( temp float) -0:15 g: direct index for structure ( temp float) -0:? 't' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) -0:15 Constant: -0:15 1 (const int) -0:? 't.g' (layout( location=1) centroid in float) -0:15 move second child to first child ( temp float) -0:15 d: direct index for structure ( temp float) -0:? 't' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) -0:15 Constant: -0:15 2 (const int) -0:? 't.d' (layout( location=2) in float) -0:15 move second child to first child ( temp 4-component vector of float) -0:15 normal: direct index for structure ( temp 4-component vector of float) -0:? 't' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) -0:15 Constant: -0:15 3 (const int) -0:? 't.normal' (layout( location=3) in 4-component vector of float) -0:15 Sequence -0:15 move second child to first child ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) -0:15 'flattenTemp' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) -0:15 Function Call: @main(struct-T-f1-f1-f1-vf41; ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) -0:? 't' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) -0:15 move second child to first child ( temp float) -0:? '@entryPointOutput.f' (layout( location=0) out float) -0:15 f: direct index for structure ( temp float) -0:15 'flattenTemp' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) -0:15 Constant: -0:15 0 (const int) -0:15 move second child to first child ( temp float) -0:? '@entryPointOutput.g' (layout( location=1) out float) -0:15 g: direct index for structure ( temp float) -0:15 'flattenTemp' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) -0:15 Constant: -0:15 1 (const int) -0:15 move second child to first child ( temp float) -0:? '@entryPointOutput.d' ( out float FragDepth) -0:15 d: direct index for structure ( temp float) -0:15 'flattenTemp' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) -0:15 Constant: -0:15 2 (const int) -0:15 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.normal' (layout( location=2) out 4-component vector of float) -0:15 normal: direct index for structure ( temp 4-component vector of float) -0:15 'flattenTemp' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) -0:15 Constant: -0:15 3 (const int) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{ uniform structure{layout( offset=68) temp float f, temp float g, temp float d, temp 4-component vector of float normal} s}) -0:? 'anon@1' (layout( row_major std140) uniform block{layout( row_major std140 offset=88) uniform structure{layout( offset=68) temp float f, temp float g, temp float d, temp 4-component vector of float normal} t}) -0:? '@entryPointOutput.d' ( out float FragDepth) -0:? '@entryPointOutput.f' (layout( location=0) out float) -0:? '@entryPointOutput.g' (layout( location=1) out float) -0:? '@entryPointOutput.normal' (layout( location=2) out 4-component vector of float) -0:? 't.f' (layout( location=0) in float) -0:? 't.g' (layout( location=1) centroid in float) -0:? 't.d' (layout( location=2) in float) -0:? 't.normal' (layout( location=3) in 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -using depth_greater -0:? Sequence -0:15 Function Definition: @main(struct-T-f1-f1-f1-vf41; ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) -0:15 Function Parameters: -0:15 't' ( in structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) -0:? Sequence -0:17 Branch: Return with expression -0:17 'local' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) -0:15 Function Definition: main( ( temp void) -0:15 Function Parameters: -0:? Sequence -0:15 Sequence -0:15 move second child to first child ( temp float) -0:15 f: direct index for structure ( temp float) -0:? 't' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) -0:15 Constant: -0:15 0 (const int) -0:? 't.f' (layout( location=0) in float) -0:15 move second child to first child ( temp float) -0:15 g: direct index for structure ( temp float) -0:? 't' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) -0:15 Constant: -0:15 1 (const int) -0:? 't.g' (layout( location=1) centroid in float) -0:15 move second child to first child ( temp float) -0:15 d: direct index for structure ( temp float) -0:? 't' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) -0:15 Constant: -0:15 2 (const int) -0:? 't.d' (layout( location=2) in float) -0:15 move second child to first child ( temp 4-component vector of float) -0:15 normal: direct index for structure ( temp 4-component vector of float) -0:? 't' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) -0:15 Constant: -0:15 3 (const int) -0:? 't.normal' (layout( location=3) in 4-component vector of float) -0:15 Sequence -0:15 move second child to first child ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) -0:15 'flattenTemp' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) -0:15 Function Call: @main(struct-T-f1-f1-f1-vf41; ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) -0:? 't' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) -0:15 move second child to first child ( temp float) -0:? '@entryPointOutput.f' (layout( location=0) out float) -0:15 f: direct index for structure ( temp float) -0:15 'flattenTemp' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) -0:15 Constant: -0:15 0 (const int) -0:15 move second child to first child ( temp float) -0:? '@entryPointOutput.g' (layout( location=1) out float) -0:15 g: direct index for structure ( temp float) -0:15 'flattenTemp' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) -0:15 Constant: -0:15 1 (const int) -0:15 move second child to first child ( temp float) -0:? '@entryPointOutput.d' ( out float FragDepth) -0:15 d: direct index for structure ( temp float) -0:15 'flattenTemp' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) -0:15 Constant: -0:15 2 (const int) -0:15 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.normal' (layout( location=2) out 4-component vector of float) -0:15 normal: direct index for structure ( temp 4-component vector of float) -0:15 'flattenTemp' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) -0:15 Constant: -0:15 3 (const int) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{ uniform structure{layout( offset=68) temp float f, temp float g, temp float d, temp 4-component vector of float normal} s}) -0:? 'anon@1' (layout( row_major std140) uniform block{layout( row_major std140 offset=88) uniform structure{layout( offset=68) temp float f, temp float g, temp float d, temp 4-component vector of float normal} t}) -0:? '@entryPointOutput.d' ( out float FragDepth) -0:? '@entryPointOutput.f' (layout( location=0) out float) -0:? '@entryPointOutput.g' (layout( location=1) out float) -0:? '@entryPointOutput.normal' (layout( location=2) out 4-component vector of float) -0:? 't.f' (layout( location=0) in float) -0:? 't.g' (layout( location=1) centroid in float) -0:? 't.d' (layout( location=2) in float) -0:? 't.normal' (layout( location=3) in 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 65 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 22 27 31 36 45 48 51 55 - ExecutionMode 4 OriginUpperLeft - ExecutionMode 4 DepthReplacing - ExecutionMode 4 DepthGreater - Source HLSL 500 - Name 4 "main" - Name 8 "T" - MemberName 8(T) 0 "f" - MemberName 8(T) 1 "g" - MemberName 8(T) 2 "d" - MemberName 8(T) 3 "normal" - Name 12 "@main(struct-T-f1-f1-f1-vf41;" - Name 11 "t" - Name 14 "local" - Name 18 "t" - Name 22 "t.f" - Name 27 "t.g" - Name 31 "t.d" - Name 36 "t.normal" - Name 40 "flattenTemp" - Name 41 "param" - Name 45 "@entryPointOutput.f" - Name 48 "@entryPointOutput.g" - Name 51 "@entryPointOutput.d" - Name 55 "@entryPointOutput.normal" - Name 58 "T" - MemberName 58(T) 0 "f" - MemberName 58(T) 1 "g" - MemberName 58(T) 2 "d" - MemberName 58(T) 3 "normal" - Name 59 "$Global" - MemberName 59($Global) 0 "s" - Name 61 "" - Name 62 "buff" - MemberName 62(buff) 0 "t" - Name 64 "" - Decorate 22(t.f) Location 0 - Decorate 27(t.g) Centroid - Decorate 27(t.g) Location 1 - Decorate 31(t.d) Location 2 - Decorate 36(t.normal) Location 3 - Decorate 45(@entryPointOutput.f) Location 0 - Decorate 48(@entryPointOutput.g) Location 1 - Decorate 51(@entryPointOutput.d) BuiltIn FragDepth - Decorate 55(@entryPointOutput.normal) Location 2 - MemberDecorate 58(T) 0 Offset 68 - MemberDecorate 58(T) 1 Offset 72 - MemberDecorate 58(T) 2 Offset 76 - MemberDecorate 58(T) 3 Offset 80 - MemberDecorate 59($Global) 0 Offset 0 - Decorate 59($Global) Block - Decorate 61 DescriptorSet 0 - Decorate 61 Binding 0 - MemberDecorate 62(buff) 0 Offset 96 - Decorate 62(buff) Block - Decorate 64 DescriptorSet 0 - Decorate 64 Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8(T): TypeStruct 6(float) 6(float) 6(float) 7(fvec4) - 9: TypePointer Function 8(T) - 10: TypeFunction 8(T) 9(ptr) - 19: TypeInt 32 1 - 20: 19(int) Constant 0 - 21: TypePointer Input 6(float) - 22(t.f): 21(ptr) Variable Input - 24: TypePointer Function 6(float) - 26: 19(int) Constant 1 - 27(t.g): 21(ptr) Variable Input - 30: 19(int) Constant 2 - 31(t.d): 21(ptr) Variable Input - 34: 19(int) Constant 3 - 35: TypePointer Input 7(fvec4) - 36(t.normal): 35(ptr) Variable Input - 38: TypePointer Function 7(fvec4) - 44: TypePointer Output 6(float) -45(@entryPointOutput.f): 44(ptr) Variable Output -48(@entryPointOutput.g): 44(ptr) Variable Output -51(@entryPointOutput.d): 44(ptr) Variable Output - 54: TypePointer Output 7(fvec4) -55(@entryPointOutput.normal): 54(ptr) Variable Output - 58(T): TypeStruct 6(float) 6(float) 6(float) 7(fvec4) - 59($Global): TypeStruct 58(T) - 60: TypePointer Uniform 59($Global) - 61: 60(ptr) Variable Uniform - 62(buff): TypeStruct 58(T) - 63: TypePointer Uniform 62(buff) - 64: 63(ptr) Variable Uniform - 4(main): 2 Function None 3 - 5: Label - 18(t): 9(ptr) Variable Function - 40(flattenTemp): 9(ptr) Variable Function - 41(param): 9(ptr) Variable Function - 23: 6(float) Load 22(t.f) - 25: 24(ptr) AccessChain 18(t) 20 - Store 25 23 - 28: 6(float) Load 27(t.g) - 29: 24(ptr) AccessChain 18(t) 26 - Store 29 28 - 32: 6(float) Load 31(t.d) - 33: 24(ptr) AccessChain 18(t) 30 - Store 33 32 - 37: 7(fvec4) Load 36(t.normal) - 39: 38(ptr) AccessChain 18(t) 34 - Store 39 37 - 42: 8(T) Load 18(t) - Store 41(param) 42 - 43: 8(T) FunctionCall 12(@main(struct-T-f1-f1-f1-vf41;) 41(param) - Store 40(flattenTemp) 43 - 46: 24(ptr) AccessChain 40(flattenTemp) 20 - 47: 6(float) Load 46 - Store 45(@entryPointOutput.f) 47 - 49: 24(ptr) AccessChain 40(flattenTemp) 26 - 50: 6(float) Load 49 - Store 48(@entryPointOutput.g) 50 - 52: 24(ptr) AccessChain 40(flattenTemp) 30 - 53: 6(float) Load 52 - Store 51(@entryPointOutput.d) 53 - 56: 38(ptr) AccessChain 40(flattenTemp) 34 - 57: 7(fvec4) Load 56 - Store 55(@entryPointOutput.normal) 57 - Return - FunctionEnd -12(@main(struct-T-f1-f1-f1-vf41;): 8(T) Function None 10 - 11(t): 9(ptr) FunctionParameter - 13: Label - 14(local): 9(ptr) Variable Function - 15: 8(T) Load 14(local) - ReturnValue 15 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.structStructName.frag.out b/deps/glslang/Test/baseResults/hlsl.structStructName.frag.out deleted file mode 100644 index 3fdbca95..00000000 --- a/deps/glslang/Test/baseResults/hlsl.structStructName.frag.out +++ /dev/null @@ -1,85 +0,0 @@ -hlsl.structStructName.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:4 Function Definition: @main( ( temp int) -0:4 Function Parameters: -0:? Sequence -0:6 Branch: Return with expression -0:6 s: direct index for structure ( temp int) -0:6 't' ( temp structure{ temp int s}) -0:6 Constant: -0:6 0 (const int) -0:4 Function Definition: main( ( temp void) -0:4 Function Parameters: -0:? Sequence -0:4 move second child to first child ( temp int) -0:? '@entryPointOutput' (layout( location=0) out int) -0:4 Function Call: @main( ( temp int) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out int) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:4 Function Definition: @main( ( temp int) -0:4 Function Parameters: -0:? Sequence -0:6 Branch: Return with expression -0:6 s: direct index for structure ( temp int) -0:6 't' ( temp structure{ temp int s}) -0:6 Constant: -0:6 0 (const int) -0:4 Function Definition: main( ( temp void) -0:4 Function Parameters: -0:? Sequence -0:4 move second child to first child ( temp int) -0:? '@entryPointOutput' (layout( location=0) out int) -0:4 Function Call: @main( ( temp int) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out int) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 22 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 20 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 8 "@main(" - Name 10 "S" - MemberName 10(S) 0 "s" - Name 12 "t" - Name 20 "@entryPointOutput" - Decorate 20(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypeFunction 6(int) - 10(S): TypeStruct 6(int) - 11: TypePointer Function 10(S) - 13: 6(int) Constant 0 - 14: TypePointer Function 6(int) - 19: TypePointer Output 6(int) -20(@entryPointOutput): 19(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 21: 6(int) FunctionCall 8(@main() - Store 20(@entryPointOutput) 21 - Return - FunctionEnd - 8(@main(): 6(int) Function None 7 - 9: Label - 12(t): 11(ptr) Variable Function - 15: 14(ptr) AccessChain 12(t) 13 - 16: 6(int) Load 15 - ReturnValue 16 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.structarray.flatten.frag.out b/deps/glslang/Test/baseResults/hlsl.structarray.flatten.frag.out deleted file mode 100644 index 97e57b16..00000000 --- a/deps/glslang/Test/baseResults/hlsl.structarray.flatten.frag.out +++ /dev/null @@ -1,332 +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) - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// 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 18(g_texdata.tex) Binding 1 - Decorate 22(g_texdata.samp) DescriptorSet 0 - Decorate 22(g_texdata.samp) Binding 0 - Decorate 28(g_texdata_array[1].tex) DescriptorSet 0 - Decorate 28(g_texdata_array[1].tex) Binding 3 - Decorate 30(g_texdata_array[1].samp) DescriptorSet 0 - Decorate 30(g_texdata_array[1].samp) Binding 2 - Decorate 40(g_texdata_array2[1].tex) DescriptorSet 0 - Decorate 40(g_texdata_array2[1].tex) Binding 5 - Decorate 45(g_texdata_array2[1].samp) DescriptorSet 0 - Decorate 45(g_texdata_array2[1].samp) Binding 4 - Decorate 59(ps_output.color) Location 0 - Decorate 62(g_samp) DescriptorSet 0 - Decorate 62(g_samp) Binding 0 - Decorate 63(g_tex) DescriptorSet 0 - Decorate 63(g_tex) Binding 0 - Decorate 65(g_texdata.nonopaque_thing) Location 0 - Decorate 65(g_texdata.nonopaque_thing) DescriptorSet 0 - Decorate 66(g_texdata_array[0].samp) DescriptorSet 0 - Decorate 66(g_texdata_array[0].samp) Binding 0 - Decorate 67(g_texdata_array[0].tex) DescriptorSet 0 - Decorate 67(g_texdata_array[0].tex) Binding 0 - Decorate 68(g_texdata_array[0].nonopaque_thing) Location 1 - Decorate 68(g_texdata_array[0].nonopaque_thing) DescriptorSet 0 - Decorate 69(g_texdata_array[1].nonopaque_thing) Location 2 - Decorate 69(g_texdata_array[1].nonopaque_thing) DescriptorSet 0 - Decorate 70(g_texdata_array[2].samp) DescriptorSet 0 - Decorate 70(g_texdata_array[2].samp) Binding 0 - Decorate 71(g_texdata_array[2].tex) DescriptorSet 0 - Decorate 71(g_texdata_array[2].tex) Binding 0 - Decorate 72(g_texdata_array[2].nonopaque_thing) Location 3 - Decorate 72(g_texdata_array[2].nonopaque_thing) DescriptorSet 0 - Decorate 73(g_texdata_array2[0].samp) DescriptorSet 0 - Decorate 73(g_texdata_array2[0].samp) Binding 0 - Decorate 74(g_texdata_array2[0].tex) DescriptorSet 0 - Decorate 74(g_texdata_array2[0].tex) Binding 0 - Decorate 75(g_texdata_array2[0].nonopaque_thing) Location 4 - Decorate 75(g_texdata_array2[0].nonopaque_thing) DescriptorSet 0 - Decorate 76(g_texdata_array2[1].nonopaque_thing) Location 5 - Decorate 76(g_texdata_array2[1].nonopaque_thing) DescriptorSet 0 - Decorate 77(g_texdata_array2[2].samp) DescriptorSet 0 - Decorate 77(g_texdata_array2[2].samp) Binding 0 - Decorate 78(g_texdata_array2[2].tex) DescriptorSet 0 - Decorate 78(g_texdata_array2[2].tex) Binding 0 - Decorate 79(g_texdata_array2[2].nonopaque_thing) Location 6 - Decorate 79(g_texdata_array2[2].nonopaque_thing) 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/Test/baseResults/hlsl.structarray.flatten.geom.out b/deps/glslang/Test/baseResults/hlsl.structarray.flatten.geom.out deleted file mode 100644 index 619dccf6..00000000 --- a/deps/glslang/Test/baseResults/hlsl.structarray.flatten.geom.out +++ /dev/null @@ -1,456 +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 Sequence -0:16 move second child to first child ( temp 4-component vector of float) -0:16 position: direct index for structure ( temp 4-component vector of float) -0:16 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:? '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:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 0 (const int) -0:16 direct index (layout( location=0) in 4-component vector of float) -0:? 'vin.position' (layout( location=0) in 2-element array of 4-component vector of float) -0:16 Constant: -0:16 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 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:? '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:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 1 (const int) -0:16 direct index (layout( location=1) in 4-component vector of float) -0:? 'vin.color' (layout( location=1) in 2-element array of 4-component vector of float) -0:16 Constant: -0:16 0 (const int) -0:16 move second child to first child ( temp 2-component vector of float) -0:16 uv: direct index for structure ( temp 2-component vector of float) -0:16 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:? '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:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 2 (const int) -0:16 direct index (layout( location=2) in 2-component vector of float) -0:? 'vin.uv' (layout( location=2) in 2-element array of 2-component vector of float) -0:16 Constant: -0:16 0 (const int) -0:16 move second child to first child ( temp 4-component vector of float) -0:16 position: direct index for structure ( temp 4-component vector of float) -0:16 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:? '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:16 Constant: -0:16 1 (const int) -0:16 Constant: -0:16 0 (const int) -0:16 direct index (layout( location=0) in 4-component vector of float) -0:? 'vin.position' (layout( location=0) in 2-element array of 4-component vector of float) -0:16 Constant: -0:16 1 (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 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:? '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:16 Constant: -0:16 1 (const int) -0:16 Constant: -0:16 1 (const int) -0:16 direct index (layout( location=1) in 4-component vector of float) -0:? 'vin.color' (layout( location=1) in 2-element array of 4-component vector of float) -0:16 Constant: -0:16 1 (const int) -0:16 move second child to first child ( temp 2-component vector of float) -0:16 uv: direct index for structure ( temp 2-component vector of float) -0:16 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:? '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:16 Constant: -0:16 1 (const int) -0:16 Constant: -0:16 2 (const int) -0:16 direct index (layout( location=2) in 2-component vector of float) -0:? 'vin.uv' (layout( location=2) in 2-element array of 2-component vector of float) -0:16 Constant: -0:16 1 (const int) -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.position' (layout( location=0) in 2-element array of 4-component vector of float) -0:? 'vin.color' (layout( location=1) in 2-element array of 4-component vector of float) -0:? 'vin.uv' (layout( location=2) in 2-element array of 2-component vector of float) -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 Sequence -0:16 move second child to first child ( temp 4-component vector of float) -0:16 position: direct index for structure ( temp 4-component vector of float) -0:16 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:? '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:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 0 (const int) -0:16 direct index (layout( location=0) in 4-component vector of float) -0:? 'vin.position' (layout( location=0) in 2-element array of 4-component vector of float) -0:16 Constant: -0:16 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 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:? '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:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 1 (const int) -0:16 direct index (layout( location=1) in 4-component vector of float) -0:? 'vin.color' (layout( location=1) in 2-element array of 4-component vector of float) -0:16 Constant: -0:16 0 (const int) -0:16 move second child to first child ( temp 2-component vector of float) -0:16 uv: direct index for structure ( temp 2-component vector of float) -0:16 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:? '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:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 2 (const int) -0:16 direct index (layout( location=2) in 2-component vector of float) -0:? 'vin.uv' (layout( location=2) in 2-element array of 2-component vector of float) -0:16 Constant: -0:16 0 (const int) -0:16 move second child to first child ( temp 4-component vector of float) -0:16 position: direct index for structure ( temp 4-component vector of float) -0:16 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:? '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:16 Constant: -0:16 1 (const int) -0:16 Constant: -0:16 0 (const int) -0:16 direct index (layout( location=0) in 4-component vector of float) -0:? 'vin.position' (layout( location=0) in 2-element array of 4-component vector of float) -0:16 Constant: -0:16 1 (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 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:? '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:16 Constant: -0:16 1 (const int) -0:16 Constant: -0:16 1 (const int) -0:16 direct index (layout( location=1) in 4-component vector of float) -0:? 'vin.color' (layout( location=1) in 2-element array of 4-component vector of float) -0:16 Constant: -0:16 1 (const int) -0:16 move second child to first child ( temp 2-component vector of float) -0:16 uv: direct index for structure ( temp 2-component vector of float) -0:16 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:? '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:16 Constant: -0:16 1 (const int) -0:16 Constant: -0:16 2 (const int) -0:16 direct index (layout( location=2) in 2-component vector of float) -0:? 'vin.uv' (layout( location=2) in 2-element array of 2-component vector of float) -0:16 Constant: -0:16 1 (const int) -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.position' (layout( location=0) in 2-element array of 4-component vector of float) -0:? 'vin.color' (layout( location=1) in 2-element array of 4-component vector of float) -0:? 'vin.uv' (layout( location=2) in 2-element array of 2-component vector of float) -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): 8000a -// Id's are bound by 82 - - Capability Geometry - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Geometry 4 "main" 38 41 45 51 56 62 - 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 51 "vin.position" - Name 56 "vin.color" - Name 62 "vin.uv" - Name 76 "outStream" - Name 77 "param" - Name 79 "param" - Decorate 38(outStream.position) BuiltIn Position - Decorate 41(outStream.color) Location 0 - Decorate 45(outStream.uv) Location 1 - Decorate 51(vin.position) Location 0 - Decorate 56(vin.color) Location 1 - Decorate 62(vin.uv) Location 2 - 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: TypeArray 7(fvec4) 11 - 50: TypePointer Input 49 -51(vin.position): 50(ptr) Variable Input - 52: TypePointer Input 7(fvec4) - 56(vin.color): 50(ptr) Variable Input - 60: TypeArray 8(fvec2) 11 - 61: TypePointer Input 60 - 62(vin.uv): 61(ptr) Variable Input - 63: TypePointer Input 8(fvec2) - 4(main): 2 Function None 3 - 5: Label - 48(vin): 13(ptr) Variable Function - 76(outStream): 15(ptr) Variable Function - 77(param): 13(ptr) Variable Function - 79(param): 15(ptr) Variable Function - 53: 52(ptr) AccessChain 51(vin.position) 33 - 54: 7(fvec4) Load 53 - 55: 24(ptr) AccessChain 48(vin) 33 33 - Store 55 54 - 57: 52(ptr) AccessChain 56(vin.color) 33 - 58: 7(fvec4) Load 57 - 59: 24(ptr) AccessChain 48(vin) 33 23 - Store 59 58 - 64: 63(ptr) AccessChain 62(vin.uv) 33 - 65: 8(fvec2) Load 64 - 66: 29(ptr) AccessChain 48(vin) 33 28 - Store 66 65 - 67: 52(ptr) AccessChain 51(vin.position) 23 - 68: 7(fvec4) Load 67 - 69: 24(ptr) AccessChain 48(vin) 23 33 - Store 69 68 - 70: 52(ptr) AccessChain 56(vin.color) 23 - 71: 7(fvec4) Load 70 - 72: 24(ptr) AccessChain 48(vin) 23 23 - Store 72 71 - 73: 63(ptr) AccessChain 62(vin.uv) 23 - 74: 8(fvec2) Load 73 - 75: 29(ptr) AccessChain 48(vin) 23 28 - Store 75 74 - 78: 12 Load 48(vin) - Store 77(param) 78 - 80: 2 FunctionCall 19(@main(struct-VertexData-vf4-vf4-vf21[2];struct-PS_IN-vf4-vf4-vf21;) 77(param) 79(param) - 81: 14(PS_IN) Load 79(param) - Store 76(outStream) 81 - 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/Test/baseResults/hlsl.structbuffer.append.fn.frag.out b/deps/glslang/Test/baseResults/hlsl.structbuffer.append.fn.frag.out deleted file mode 100644 index a4e540f0..00000000 --- a/deps/glslang/Test/baseResults/hlsl.structbuffer.append.fn.frag.out +++ /dev/null @@ -1,284 +0,0 @@ -hlsl.structbuffer.append.fn.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:8 Function Definition: Fn2(block--vf4[0]1;block--vf4[0]1; ( temp 4-component vector of float) -0:8 Function Parameters: -0:8 'arg_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) -0:8 'arg_a@count' ( buffer block{layout( row_major std430) buffer uint @count}) -0:8 'arg_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) -0:8 'arg_c@count' ( buffer block{layout( row_major std430) buffer uint @count}) -0:? Sequence -0:9 move second child to first child ( temp 4-component vector of float) -0:9 indirect index ( buffer 4-component vector of float) -0:9 @data: direct index for structure ( buffer unsized 1-element array of 4-component vector of float) -0:9 'arg_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) -0:9 Constant: -0:9 0 (const uint) -0:9 AtomicAdd ( temp uint) -0:9 @count: direct index for structure ( temp uint) -0:9 'arg_a@count' ( buffer block{layout( row_major std430) buffer uint @count}) -0:9 Constant: -0:9 0 (const int) -0:9 Constant: -0:9 1 (const uint) -0:9 Constant: -0:9 1.000000 -0:9 2.000000 -0:9 3.000000 -0:9 4.000000 -0:10 Branch: Return with expression -0:10 indirect index ( buffer 4-component vector of float) -0:10 @data: direct index for structure ( buffer unsized 1-element array of 4-component vector of float) -0:10 'arg_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) -0:10 Constant: -0:10 0 (const uint) -0:10 add ( temp uint) -0:10 AtomicAdd ( temp uint) -0:10 @count: direct index for structure ( temp uint) -0:10 'arg_c@count' ( buffer block{layout( row_major std430) buffer uint @count}) -0:10 Constant: -0:10 0 (const int) -0:10 Constant: -0:10 4294967295 (const uint) -0:10 Constant: -0:10 -1 (const int) -0:19 Function Definition: @main(u1; ( temp 4-component vector of float) -0:19 Function Parameters: -0:19 'pos' ( in uint) -0:? Sequence -0:22 Branch: Return with expression -0:22 Function Call: Fn2(block--vf4[0]1;block--vf4[0]1; ( temp 4-component vector of float) -0:22 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) -0:22 'sbuf_a@count' ( buffer block{layout( row_major std430) buffer uint @count}) -0:22 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) -0:22 'sbuf_c@count' ( buffer block{layout( row_major std430) buffer uint @count}) -0:19 Function Definition: main( ( temp void) -0:19 Function Parameters: -0:? Sequence -0:19 move second child to first child ( temp uint) -0:? 'pos' ( temp uint) -0:? 'pos' (layout( location=0) flat in uint) -0:19 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:19 Function Call: @main(u1; ( temp 4-component vector of float) -0:? 'pos' ( temp uint) -0:? Linker Objects -0:? 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) -0:? 'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) -0:? 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) -0:? 'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) -0:? 'sbuf_unused' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'pos' (layout( location=0) flat in uint) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:8 Function Definition: Fn2(block--vf4[0]1;block--vf4[0]1; ( temp 4-component vector of float) -0:8 Function Parameters: -0:8 'arg_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) -0:8 'arg_a@count' ( buffer block{layout( row_major std430) buffer uint @count}) -0:8 'arg_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) -0:8 'arg_c@count' ( buffer block{layout( row_major std430) buffer uint @count}) -0:? Sequence -0:9 move second child to first child ( temp 4-component vector of float) -0:9 indirect index ( buffer 4-component vector of float) -0:9 @data: direct index for structure ( buffer unsized 1-element array of 4-component vector of float) -0:9 'arg_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) -0:9 Constant: -0:9 0 (const uint) -0:9 AtomicAdd ( temp uint) -0:9 @count: direct index for structure ( temp uint) -0:9 'arg_a@count' ( buffer block{layout( row_major std430) buffer uint @count}) -0:9 Constant: -0:9 0 (const int) -0:9 Constant: -0:9 1 (const uint) -0:9 Constant: -0:9 1.000000 -0:9 2.000000 -0:9 3.000000 -0:9 4.000000 -0:10 Branch: Return with expression -0:10 indirect index ( buffer 4-component vector of float) -0:10 @data: direct index for structure ( buffer unsized 1-element array of 4-component vector of float) -0:10 'arg_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) -0:10 Constant: -0:10 0 (const uint) -0:10 add ( temp uint) -0:10 AtomicAdd ( temp uint) -0:10 @count: direct index for structure ( temp uint) -0:10 'arg_c@count' ( buffer block{layout( row_major std430) buffer uint @count}) -0:10 Constant: -0:10 0 (const int) -0:10 Constant: -0:10 4294967295 (const uint) -0:10 Constant: -0:10 -1 (const int) -0:19 Function Definition: @main(u1; ( temp 4-component vector of float) -0:19 Function Parameters: -0:19 'pos' ( in uint) -0:? Sequence -0:22 Branch: Return with expression -0:22 Function Call: Fn2(block--vf4[0]1;block--vf4[0]1; ( temp 4-component vector of float) -0:22 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) -0:22 'sbuf_a@count' ( buffer block{layout( row_major std430) buffer uint @count}) -0:22 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) -0:22 'sbuf_c@count' ( buffer block{layout( row_major std430) buffer uint @count}) -0:19 Function Definition: main( ( temp void) -0:19 Function Parameters: -0:? Sequence -0:19 move second child to first child ( temp uint) -0:? 'pos' ( temp uint) -0:? 'pos' (layout( location=0) flat in uint) -0:19 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:19 Function Call: @main(u1; ( temp 4-component vector of float) -0:? 'pos' ( temp uint) -0:? Linker Objects -0:? 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) -0:? 'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) -0:? 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) -0:? 'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) -0:? 'sbuf_unused' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'pos' (layout( location=0) flat in uint) - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 70 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 58 61 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 9 "" - MemberName 9 0 "@data" - Name 12 "" - MemberName 12 0 "@count" - Name 19 "Fn2(block--vf4[0]1;block--vf4[0]1;" - Name 15 "arg_a" - Name 16 "arg_a@count" - Name 17 "arg_c" - Name 18 "arg_c@count" - Name 24 "@main(u1;" - Name 23 "pos" - Name 49 "sbuf_a" - Name 50 "sbuf_a@count" - Name 51 "sbuf_c" - Name 52 "sbuf_c@count" - Name 56 "pos" - Name 58 "pos" - Name 61 "@entryPointOutput" - Name 62 "param" - Name 65 "sbuf_a@count" - MemberName 65(sbuf_a@count) 0 "@count" - Name 67 "sbuf_a@count" - Name 68 "sbuf_c@count" - Name 69 "sbuf_unused" - Decorate 8 ArrayStride 16 - MemberDecorate 9 0 Offset 0 - Decorate 9 BufferBlock - Decorate 12 BufferBlock - Decorate 49(sbuf_a) DescriptorSet 0 - Decorate 49(sbuf_a) Binding 0 - Decorate 50(sbuf_a@count) DescriptorSet 0 - Decorate 50(sbuf_a@count) Binding 0 - Decorate 51(sbuf_c) DescriptorSet 0 - Decorate 51(sbuf_c) Binding 1 - Decorate 52(sbuf_c@count) DescriptorSet 0 - Decorate 52(sbuf_c@count) Binding 0 - Decorate 58(pos) Flat - Decorate 58(pos) Location 0 - Decorate 61(@entryPointOutput) Location 0 - MemberDecorate 65(sbuf_a@count) 0 Offset 0 - Decorate 65(sbuf_a@count) BufferBlock - Decorate 67(sbuf_a@count) DescriptorSet 0 - Decorate 67(sbuf_a@count) Binding 0 - Decorate 68(sbuf_c@count) DescriptorSet 0 - Decorate 68(sbuf_c@count) Binding 0 - Decorate 69(sbuf_unused) DescriptorSet 0 - Decorate 69(sbuf_unused) Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeRuntimeArray 7(fvec4) - 9: TypeStruct 8 - 10: TypePointer Uniform 9(struct) - 11: TypeInt 32 0 - 12: TypeStruct 11(int) - 13: TypePointer Uniform 12(struct) - 14: TypeFunction 7(fvec4) 10(ptr) 13(ptr) 10(ptr) 13(ptr) - 21: TypePointer Function 11(int) - 22: TypeFunction 7(fvec4) 21(ptr) - 26: TypeInt 32 1 - 27: 26(int) Constant 0 - 28: TypePointer Uniform 11(int) - 30: 11(int) Constant 1 - 31: 11(int) Constant 0 - 33: 6(float) Constant 1065353216 - 34: 6(float) Constant 1073741824 - 35: 6(float) Constant 1077936128 - 36: 6(float) Constant 1082130432 - 37: 7(fvec4) ConstantComposite 33 34 35 36 - 38: TypePointer Uniform 7(fvec4) - 41: 11(int) Constant 4294967295 - 43: 26(int) Constant 4294967295 - 49(sbuf_a): 10(ptr) Variable Uniform -50(sbuf_a@count): 13(ptr) Variable Uniform - 51(sbuf_c): 10(ptr) Variable Uniform -52(sbuf_c@count): 13(ptr) Variable Uniform - 57: TypePointer Input 11(int) - 58(pos): 57(ptr) Variable Input - 60: TypePointer Output 7(fvec4) -61(@entryPointOutput): 60(ptr) Variable Output -65(sbuf_a@count): TypeStruct 11(int) - 66: TypePointer Uniform 65(sbuf_a@count) -67(sbuf_a@count): 66(ptr) Variable Uniform -68(sbuf_c@count): 66(ptr) Variable Uniform - 69(sbuf_unused): 10(ptr) Variable Uniform - 4(main): 2 Function None 3 - 5: Label - 56(pos): 21(ptr) Variable Function - 62(param): 21(ptr) Variable Function - 59: 11(int) Load 58(pos) - Store 56(pos) 59 - 63: 11(int) Load 56(pos) - Store 62(param) 63 - 64: 7(fvec4) FunctionCall 24(@main(u1;) 62(param) - Store 61(@entryPointOutput) 64 - Return - FunctionEnd -19(Fn2(block--vf4[0]1;block--vf4[0]1;): 7(fvec4) Function None 14 - 15(arg_a): 10(ptr) FunctionParameter - 16(arg_a@count): 13(ptr) FunctionParameter - 17(arg_c): 10(ptr) FunctionParameter - 18(arg_c@count): 13(ptr) FunctionParameter - 20: Label - 29: 28(ptr) AccessChain 16(arg_a@count) 27 - 32: 11(int) AtomicIAdd 29 30 31 30 - 39: 38(ptr) AccessChain 15(arg_a) 27 32 - Store 39 37 - 40: 28(ptr) AccessChain 18(arg_c@count) 27 - 42: 11(int) AtomicIAdd 40 30 31 41 - 44: 11(int) IAdd 42 43 - 45: 38(ptr) AccessChain 17(arg_c) 27 44 - 46: 7(fvec4) Load 45 - ReturnValue 46 - FunctionEnd - 24(@main(u1;): 7(fvec4) Function None 22 - 23(pos): 21(ptr) FunctionParameter - 25: Label - 53: 7(fvec4) FunctionCall 19(Fn2(block--vf4[0]1;block--vf4[0]1;) 49(sbuf_a) 50(sbuf_a@count) 51(sbuf_c) 52(sbuf_c@count) - ReturnValue 53 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.structbuffer.append.frag.out b/deps/glslang/Test/baseResults/hlsl.structbuffer.append.frag.out deleted file mode 100644 index 518b67f0..00000000 --- a/deps/glslang/Test/baseResults/hlsl.structbuffer.append.frag.out +++ /dev/null @@ -1,229 +0,0 @@ -hlsl.structbuffer.append.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:7 Function Definition: @main(u1; ( temp 4-component vector of float) -0:7 Function Parameters: -0:7 'pos' ( in uint) -0:? Sequence -0:8 move second child to first child ( temp 4-component vector of float) -0:8 indirect index (layout( row_major std430) buffer 4-component vector of float) -0:8 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float) -0:8 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) -0:8 Constant: -0:8 0 (const uint) -0:8 AtomicAdd ( temp uint) -0:8 @count: direct index for structure ( temp uint) -0:8 'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) -0:8 Constant: -0:8 0 (const int) -0:8 Constant: -0:8 1 (const uint) -0:8 Constant: -0:8 1.000000 -0:8 2.000000 -0:8 3.000000 -0:8 4.000000 -0:10 Branch: Return with expression -0:10 indirect index (layout( row_major std430) buffer 4-component vector of float) -0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float) -0:10 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) -0:10 Constant: -0:10 0 (const uint) -0:10 add ( temp uint) -0:10 AtomicAdd ( temp uint) -0:10 @count: direct index for structure ( temp uint) -0:10 'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) -0:10 Constant: -0:10 0 (const int) -0:10 Constant: -0:10 4294967295 (const uint) -0:10 Constant: -0:10 -1 (const int) -0:7 Function Definition: main( ( temp void) -0:7 Function Parameters: -0:? Sequence -0:7 move second child to first child ( temp uint) -0:? 'pos' ( temp uint) -0:? 'pos' (layout( location=0) flat in uint) -0:7 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:7 Function Call: @main(u1; ( temp 4-component vector of float) -0:? 'pos' ( temp uint) -0:? Linker Objects -0:? 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) -0:? 'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) -0:? 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) -0:? 'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) -0:? 'sbuf_unused' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'pos' (layout( location=0) flat in uint) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:7 Function Definition: @main(u1; ( temp 4-component vector of float) -0:7 Function Parameters: -0:7 'pos' ( in uint) -0:? Sequence -0:8 move second child to first child ( temp 4-component vector of float) -0:8 indirect index (layout( row_major std430) buffer 4-component vector of float) -0:8 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float) -0:8 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) -0:8 Constant: -0:8 0 (const uint) -0:8 AtomicAdd ( temp uint) -0:8 @count: direct index for structure ( temp uint) -0:8 'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) -0:8 Constant: -0:8 0 (const int) -0:8 Constant: -0:8 1 (const uint) -0:8 Constant: -0:8 1.000000 -0:8 2.000000 -0:8 3.000000 -0:8 4.000000 -0:10 Branch: Return with expression -0:10 indirect index (layout( row_major std430) buffer 4-component vector of float) -0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float) -0:10 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) -0:10 Constant: -0:10 0 (const uint) -0:10 add ( temp uint) -0:10 AtomicAdd ( temp uint) -0:10 @count: direct index for structure ( temp uint) -0:10 'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) -0:10 Constant: -0:10 0 (const int) -0:10 Constant: -0:10 4294967295 (const uint) -0:10 Constant: -0:10 -1 (const int) -0:7 Function Definition: main( ( temp void) -0:7 Function Parameters: -0:? Sequence -0:7 move second child to first child ( temp uint) -0:? 'pos' ( temp uint) -0:? 'pos' (layout( location=0) flat in uint) -0:7 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:7 Function Call: @main(u1; ( temp 4-component vector of float) -0:? 'pos' ( temp uint) -0:? Linker Objects -0:? 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) -0:? 'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) -0:? 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) -0:? 'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) -0:? 'sbuf_unused' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'pos' (layout( location=0) flat in uint) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 56 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 48 51 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 12 "@main(u1;" - Name 11 "pos" - Name 15 "sbuf_a" - MemberName 15(sbuf_a) 0 "@data" - Name 17 "sbuf_a" - Name 20 "sbuf_a@count" - MemberName 20(sbuf_a@count) 0 "@count" - Name 22 "sbuf_a@count" - Name 35 "sbuf_c" - Name 36 "sbuf_c@count" - Name 46 "pos" - Name 48 "pos" - Name 51 "@entryPointOutput" - Name 52 "param" - Name 55 "sbuf_unused" - Decorate 14 ArrayStride 16 - MemberDecorate 15(sbuf_a) 0 Offset 0 - Decorate 15(sbuf_a) BufferBlock - Decorate 17(sbuf_a) DescriptorSet 0 - Decorate 17(sbuf_a) Binding 0 - MemberDecorate 20(sbuf_a@count) 0 Offset 0 - Decorate 20(sbuf_a@count) BufferBlock - Decorate 22(sbuf_a@count) DescriptorSet 0 - Decorate 22(sbuf_a@count) Binding 1 - Decorate 35(sbuf_c) DescriptorSet 0 - Decorate 35(sbuf_c) Binding 2 - Decorate 36(sbuf_c@count) DescriptorSet 0 - Decorate 36(sbuf_c@count) Binding 3 - Decorate 48(pos) Flat - Decorate 48(pos) Location 0 - Decorate 51(@entryPointOutput) Location 0 - Decorate 55(sbuf_unused) DescriptorSet 0 - Decorate 55(sbuf_unused) Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 8: TypeFloat 32 - 9: TypeVector 8(float) 4 - 10: TypeFunction 9(fvec4) 7(ptr) - 14: TypeRuntimeArray 9(fvec4) - 15(sbuf_a): TypeStruct 14 - 16: TypePointer Uniform 15(sbuf_a) - 17(sbuf_a): 16(ptr) Variable Uniform - 18: TypeInt 32 1 - 19: 18(int) Constant 0 -20(sbuf_a@count): TypeStruct 6(int) - 21: TypePointer Uniform 20(sbuf_a@count) -22(sbuf_a@count): 21(ptr) Variable Uniform - 23: TypePointer Uniform 6(int) - 25: 6(int) Constant 1 - 26: 6(int) Constant 0 - 28: 8(float) Constant 1065353216 - 29: 8(float) Constant 1073741824 - 30: 8(float) Constant 1077936128 - 31: 8(float) Constant 1082130432 - 32: 9(fvec4) ConstantComposite 28 29 30 31 - 33: TypePointer Uniform 9(fvec4) - 35(sbuf_c): 16(ptr) Variable Uniform -36(sbuf_c@count): 21(ptr) Variable Uniform - 38: 6(int) Constant 4294967295 - 40: 18(int) Constant 4294967295 - 47: TypePointer Input 6(int) - 48(pos): 47(ptr) Variable Input - 50: TypePointer Output 9(fvec4) -51(@entryPointOutput): 50(ptr) Variable Output - 55(sbuf_unused): 16(ptr) Variable Uniform - 4(main): 2 Function None 3 - 5: Label - 46(pos): 7(ptr) Variable Function - 52(param): 7(ptr) Variable Function - 49: 6(int) Load 48(pos) - Store 46(pos) 49 - 53: 6(int) Load 46(pos) - Store 52(param) 53 - 54: 9(fvec4) FunctionCall 12(@main(u1;) 52(param) - Store 51(@entryPointOutput) 54 - Return - FunctionEnd - 12(@main(u1;): 9(fvec4) Function None 10 - 11(pos): 7(ptr) FunctionParameter - 13: Label - 24: 23(ptr) AccessChain 22(sbuf_a@count) 19 - 27: 6(int) AtomicIAdd 24 25 26 25 - 34: 33(ptr) AccessChain 17(sbuf_a) 19 27 - Store 34 32 - 37: 23(ptr) AccessChain 36(sbuf_c@count) 19 - 39: 6(int) AtomicIAdd 37 25 26 38 - 41: 6(int) IAdd 39 40 - 42: 33(ptr) AccessChain 35(sbuf_c) 19 41 - 43: 9(fvec4) Load 42 - ReturnValue 43 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.structbuffer.atomics.frag.out b/deps/glslang/Test/baseResults/hlsl.structbuffer.atomics.frag.out deleted file mode 100644 index ba874ee6..00000000 --- a/deps/glslang/Test/baseResults/hlsl.structbuffer.atomics.frag.out +++ /dev/null @@ -1,603 +0,0 @@ -hlsl.structbuffer.atomics.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:5 Function Definition: @main(u1; ( temp 4-component vector of float) -0:5 Function Parameters: -0:5 'pos' ( in uint) -0:? Sequence -0:8 AtomicAdd ( temp uint) -0:8 indirect index (layout( row_major std430) buffer uint) -0:8 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:8 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:8 Constant: -0:8 0 (const uint) -0:8 right-shift ( temp int) -0:8 Constant: -0:8 8 (const int) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 1 (const int) -0:9 move second child to first child ( temp uint) -0:9 'u' ( temp uint) -0:9 AtomicAdd ( temp uint) -0:9 indirect index (layout( row_major std430) buffer uint) -0:9 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:9 Constant: -0:9 0 (const uint) -0:9 right-shift ( temp int) -0:9 Constant: -0:9 8 (const int) -0:9 Constant: -0:9 2 (const int) -0:9 Constant: -0:9 1 (const int) -0:10 AtomicAnd ( temp uint) -0:10 indirect index (layout( row_major std430) buffer uint) -0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:10 Constant: -0:10 0 (const uint) -0:10 right-shift ( temp int) -0:10 Constant: -0:10 8 (const int) -0:10 Constant: -0:10 2 (const int) -0:10 Constant: -0:10 1 (const int) -0:11 move second child to first child ( temp uint) -0:11 'u' ( temp uint) -0:11 AtomicAnd ( temp uint) -0:11 indirect index (layout( row_major std430) buffer uint) -0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 right-shift ( temp int) -0:11 Constant: -0:11 8 (const int) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 1 (const int) -0:12 move second child to first child ( temp uint) -0:12 'u' ( temp uint) -0:12 Convert int to uint ( temp uint) -0:12 AtomicCompSwap ( temp int) -0:12 indirect index (layout( row_major std430) buffer uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 right-shift ( temp int) -0:12 Constant: -0:12 8 (const int) -0:12 Constant: -0:12 2 (const int) -0:12 Constant: -0:12 1 (const int) -0:12 Constant: -0:12 2 (const int) -0:14 move second child to first child ( temp uint) -0:14 'u' ( temp uint) -0:14 AtomicExchange ( temp uint) -0:14 indirect index (layout( row_major std430) buffer uint) -0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:14 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:14 Constant: -0:14 0 (const uint) -0:14 right-shift ( temp int) -0:14 Constant: -0:14 8 (const int) -0:14 Constant: -0:14 2 (const int) -0:14 Constant: -0:14 1 (const int) -0:15 AtomicMax ( temp uint) -0:15 indirect index (layout( row_major std430) buffer uint) -0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:15 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:15 Constant: -0:15 0 (const uint) -0:15 right-shift ( temp int) -0:15 Constant: -0:15 8 (const int) -0:15 Constant: -0:15 2 (const int) -0:15 Constant: -0:15 1 (const int) -0:16 move second child to first child ( temp uint) -0:16 'u' ( temp uint) -0:16 AtomicMax ( temp uint) -0:16 indirect index (layout( row_major std430) buffer uint) -0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:16 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:16 Constant: -0:16 0 (const uint) -0:16 right-shift ( temp int) -0:16 Constant: -0:16 8 (const int) -0:16 Constant: -0:16 2 (const int) -0:16 Constant: -0:16 1 (const int) -0:17 AtomicMin ( temp uint) -0:17 indirect index (layout( row_major std430) buffer uint) -0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:17 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:17 Constant: -0:17 0 (const uint) -0:17 right-shift ( temp int) -0:17 Constant: -0:17 8 (const int) -0:17 Constant: -0:17 2 (const int) -0:17 Constant: -0:17 1 (const int) -0:18 move second child to first child ( temp uint) -0:18 'u' ( temp uint) -0:18 AtomicMin ( temp uint) -0:18 indirect index (layout( row_major std430) buffer uint) -0:18 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:18 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:18 Constant: -0:18 0 (const uint) -0:18 right-shift ( temp int) -0:18 Constant: -0:18 8 (const int) -0:18 Constant: -0:18 2 (const int) -0:18 Constant: -0:18 1 (const int) -0:19 AtomicOr ( temp uint) -0:19 indirect index (layout( row_major std430) buffer uint) -0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:19 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:19 Constant: -0:19 0 (const uint) -0:19 right-shift ( temp int) -0:19 Constant: -0:19 8 (const int) -0:19 Constant: -0:19 2 (const int) -0:19 Constant: -0:19 1 (const int) -0:20 move second child to first child ( temp uint) -0:20 'u' ( temp uint) -0:20 AtomicOr ( temp uint) -0:20 indirect index (layout( row_major std430) buffer uint) -0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:20 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:20 Constant: -0:20 0 (const uint) -0:20 right-shift ( temp int) -0:20 Constant: -0:20 8 (const int) -0:20 Constant: -0:20 2 (const int) -0:20 Constant: -0:20 1 (const int) -0:21 AtomicXor ( temp uint) -0:21 indirect index (layout( row_major std430) buffer uint) -0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:21 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:21 Constant: -0:21 0 (const uint) -0:21 right-shift ( temp int) -0:21 Constant: -0:21 8 (const int) -0:21 Constant: -0:21 2 (const int) -0:21 Constant: -0:21 1 (const int) -0:22 move second child to first child ( temp uint) -0:22 'u' ( temp uint) -0:22 AtomicXor ( temp uint) -0:22 indirect index (layout( row_major std430) buffer uint) -0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:22 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:22 Constant: -0:22 0 (const uint) -0:22 right-shift ( temp int) -0:22 Constant: -0:22 8 (const int) -0:22 Constant: -0:22 2 (const int) -0:22 Constant: -0:22 1 (const int) -0:24 Branch: Return with expression -0:24 Construct vec4 ( temp 4-component vector of float) -0:24 Convert uint to float ( temp float) -0:24 indirect index (layout( row_major std430) buffer uint) -0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:24 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:24 Constant: -0:24 0 (const uint) -0:24 right-shift ( temp int) -0:24 'pos' ( in uint) -0:24 Constant: -0:24 2 (const int) -0:5 Function Definition: main( ( temp void) -0:5 Function Parameters: -0:? Sequence -0:5 move second child to first child ( temp uint) -0:? 'pos' ( temp uint) -0:? 'pos' (layout( location=0) flat in uint) -0:5 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:5 Function Call: @main(u1; ( temp 4-component vector of float) -0:? 'pos' ( temp uint) -0:? Linker Objects -0:? 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'pos' (layout( location=0) flat in uint) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:5 Function Definition: @main(u1; ( temp 4-component vector of float) -0:5 Function Parameters: -0:5 'pos' ( in uint) -0:? Sequence -0:8 AtomicAdd ( temp uint) -0:8 indirect index (layout( row_major std430) buffer uint) -0:8 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:8 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:8 Constant: -0:8 0 (const uint) -0:8 right-shift ( temp int) -0:8 Constant: -0:8 8 (const int) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 1 (const int) -0:9 move second child to first child ( temp uint) -0:9 'u' ( temp uint) -0:9 AtomicAdd ( temp uint) -0:9 indirect index (layout( row_major std430) buffer uint) -0:9 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:9 Constant: -0:9 0 (const uint) -0:9 right-shift ( temp int) -0:9 Constant: -0:9 8 (const int) -0:9 Constant: -0:9 2 (const int) -0:9 Constant: -0:9 1 (const int) -0:10 AtomicAnd ( temp uint) -0:10 indirect index (layout( row_major std430) buffer uint) -0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:10 Constant: -0:10 0 (const uint) -0:10 right-shift ( temp int) -0:10 Constant: -0:10 8 (const int) -0:10 Constant: -0:10 2 (const int) -0:10 Constant: -0:10 1 (const int) -0:11 move second child to first child ( temp uint) -0:11 'u' ( temp uint) -0:11 AtomicAnd ( temp uint) -0:11 indirect index (layout( row_major std430) buffer uint) -0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 right-shift ( temp int) -0:11 Constant: -0:11 8 (const int) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 1 (const int) -0:12 move second child to first child ( temp uint) -0:12 'u' ( temp uint) -0:12 Convert int to uint ( temp uint) -0:12 AtomicCompSwap ( temp int) -0:12 indirect index (layout( row_major std430) buffer uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 right-shift ( temp int) -0:12 Constant: -0:12 8 (const int) -0:12 Constant: -0:12 2 (const int) -0:12 Constant: -0:12 1 (const int) -0:12 Constant: -0:12 2 (const int) -0:14 move second child to first child ( temp uint) -0:14 'u' ( temp uint) -0:14 AtomicExchange ( temp uint) -0:14 indirect index (layout( row_major std430) buffer uint) -0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:14 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:14 Constant: -0:14 0 (const uint) -0:14 right-shift ( temp int) -0:14 Constant: -0:14 8 (const int) -0:14 Constant: -0:14 2 (const int) -0:14 Constant: -0:14 1 (const int) -0:15 AtomicMax ( temp uint) -0:15 indirect index (layout( row_major std430) buffer uint) -0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:15 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:15 Constant: -0:15 0 (const uint) -0:15 right-shift ( temp int) -0:15 Constant: -0:15 8 (const int) -0:15 Constant: -0:15 2 (const int) -0:15 Constant: -0:15 1 (const int) -0:16 move second child to first child ( temp uint) -0:16 'u' ( temp uint) -0:16 AtomicMax ( temp uint) -0:16 indirect index (layout( row_major std430) buffer uint) -0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:16 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:16 Constant: -0:16 0 (const uint) -0:16 right-shift ( temp int) -0:16 Constant: -0:16 8 (const int) -0:16 Constant: -0:16 2 (const int) -0:16 Constant: -0:16 1 (const int) -0:17 AtomicMin ( temp uint) -0:17 indirect index (layout( row_major std430) buffer uint) -0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:17 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:17 Constant: -0:17 0 (const uint) -0:17 right-shift ( temp int) -0:17 Constant: -0:17 8 (const int) -0:17 Constant: -0:17 2 (const int) -0:17 Constant: -0:17 1 (const int) -0:18 move second child to first child ( temp uint) -0:18 'u' ( temp uint) -0:18 AtomicMin ( temp uint) -0:18 indirect index (layout( row_major std430) buffer uint) -0:18 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:18 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:18 Constant: -0:18 0 (const uint) -0:18 right-shift ( temp int) -0:18 Constant: -0:18 8 (const int) -0:18 Constant: -0:18 2 (const int) -0:18 Constant: -0:18 1 (const int) -0:19 AtomicOr ( temp uint) -0:19 indirect index (layout( row_major std430) buffer uint) -0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:19 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:19 Constant: -0:19 0 (const uint) -0:19 right-shift ( temp int) -0:19 Constant: -0:19 8 (const int) -0:19 Constant: -0:19 2 (const int) -0:19 Constant: -0:19 1 (const int) -0:20 move second child to first child ( temp uint) -0:20 'u' ( temp uint) -0:20 AtomicOr ( temp uint) -0:20 indirect index (layout( row_major std430) buffer uint) -0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:20 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:20 Constant: -0:20 0 (const uint) -0:20 right-shift ( temp int) -0:20 Constant: -0:20 8 (const int) -0:20 Constant: -0:20 2 (const int) -0:20 Constant: -0:20 1 (const int) -0:21 AtomicXor ( temp uint) -0:21 indirect index (layout( row_major std430) buffer uint) -0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:21 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:21 Constant: -0:21 0 (const uint) -0:21 right-shift ( temp int) -0:21 Constant: -0:21 8 (const int) -0:21 Constant: -0:21 2 (const int) -0:21 Constant: -0:21 1 (const int) -0:22 move second child to first child ( temp uint) -0:22 'u' ( temp uint) -0:22 AtomicXor ( temp uint) -0:22 indirect index (layout( row_major std430) buffer uint) -0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:22 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:22 Constant: -0:22 0 (const uint) -0:22 right-shift ( temp int) -0:22 Constant: -0:22 8 (const int) -0:22 Constant: -0:22 2 (const int) -0:22 Constant: -0:22 1 (const int) -0:24 Branch: Return with expression -0:24 Construct vec4 ( temp 4-component vector of float) -0:24 Convert uint to float ( temp float) -0:24 indirect index (layout( row_major std430) buffer uint) -0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:24 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:24 Constant: -0:24 0 (const uint) -0:24 right-shift ( temp int) -0:24 'pos' ( in uint) -0:24 Constant: -0:24 2 (const int) -0:5 Function Definition: main( ( temp void) -0:5 Function Parameters: -0:? Sequence -0:5 move second child to first child ( temp uint) -0:? 'pos' ( temp uint) -0:? 'pos' (layout( location=0) flat in uint) -0:5 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:5 Function Call: @main(u1; ( temp 4-component vector of float) -0:? 'pos' ( temp uint) -0:? Linker Objects -0:? 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'pos' (layout( location=0) flat in uint) - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 87 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 80 83 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 12 "@main(u1;" - Name 11 "pos" - Name 15 "sbuf" - MemberName 15(sbuf) 0 "@data" - Name 17 "sbuf" - Name 29 "u" - Name 78 "pos" - Name 80 "pos" - Name 83 "@entryPointOutput" - Name 84 "param" - Decorate 14 ArrayStride 4 - MemberDecorate 15(sbuf) 0 Offset 0 - Decorate 15(sbuf) BufferBlock - Decorate 17(sbuf) DescriptorSet 0 - Decorate 17(sbuf) Binding 0 - Decorate 80(pos) Flat - Decorate 80(pos) Location 0 - Decorate 83(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 8: TypeFloat 32 - 9: TypeVector 8(float) 4 - 10: TypeFunction 9(fvec4) 7(ptr) - 14: TypeRuntimeArray 6(int) - 15(sbuf): TypeStruct 14 - 16: TypePointer Uniform 15(sbuf) - 17(sbuf): 16(ptr) Variable Uniform - 18: TypeInt 32 1 - 19: 18(int) Constant 0 - 20: 18(int) Constant 8 - 21: 18(int) Constant 2 - 23: TypePointer Uniform 6(int) - 25: 18(int) Constant 1 - 26: 6(int) Constant 1 - 27: 6(int) Constant 0 - 79: TypePointer Input 6(int) - 80(pos): 79(ptr) Variable Input - 82: TypePointer Output 9(fvec4) -83(@entryPointOutput): 82(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 78(pos): 7(ptr) Variable Function - 84(param): 7(ptr) Variable Function - 81: 6(int) Load 80(pos) - Store 78(pos) 81 - 85: 6(int) Load 78(pos) - Store 84(param) 85 - 86: 9(fvec4) FunctionCall 12(@main(u1;) 84(param) - Store 83(@entryPointOutput) 86 - Return - FunctionEnd - 12(@main(u1;): 9(fvec4) Function None 10 - 11(pos): 7(ptr) FunctionParameter - 13: Label - 29(u): 7(ptr) Variable Function - 22: 18(int) ShiftRightArithmetic 20 21 - 24: 23(ptr) AccessChain 17(sbuf) 19 22 - 28: 6(int) AtomicIAdd 24 26 27 25 - 30: 18(int) ShiftRightArithmetic 20 21 - 31: 23(ptr) AccessChain 17(sbuf) 19 30 - 32: 6(int) AtomicIAdd 31 26 27 25 - Store 29(u) 32 - 33: 18(int) ShiftRightArithmetic 20 21 - 34: 23(ptr) AccessChain 17(sbuf) 19 33 - 35: 6(int) AtomicAnd 34 26 27 25 - 36: 18(int) ShiftRightArithmetic 20 21 - 37: 23(ptr) AccessChain 17(sbuf) 19 36 - 38: 6(int) AtomicAnd 37 26 27 25 - Store 29(u) 38 - 39: 18(int) ShiftRightArithmetic 20 21 - 40: 23(ptr) AccessChain 17(sbuf) 19 39 - 41: 18(int) AtomicCompareExchange 40 26 27 27 21 25 - 42: 6(int) Bitcast 41 - Store 29(u) 42 - 43: 18(int) ShiftRightArithmetic 20 21 - 44: 23(ptr) AccessChain 17(sbuf) 19 43 - 45: 6(int) AtomicExchange 44 26 27 25 - Store 29(u) 45 - 46: 18(int) ShiftRightArithmetic 20 21 - 47: 23(ptr) AccessChain 17(sbuf) 19 46 - 48: 6(int) AtomicUMax 47 26 27 25 - 49: 18(int) ShiftRightArithmetic 20 21 - 50: 23(ptr) AccessChain 17(sbuf) 19 49 - 51: 6(int) AtomicUMax 50 26 27 25 - Store 29(u) 51 - 52: 18(int) ShiftRightArithmetic 20 21 - 53: 23(ptr) AccessChain 17(sbuf) 19 52 - 54: 6(int) AtomicUMin 53 26 27 25 - 55: 18(int) ShiftRightArithmetic 20 21 - 56: 23(ptr) AccessChain 17(sbuf) 19 55 - 57: 6(int) AtomicUMin 56 26 27 25 - Store 29(u) 57 - 58: 18(int) ShiftRightArithmetic 20 21 - 59: 23(ptr) AccessChain 17(sbuf) 19 58 - 60: 6(int) AtomicOr 59 26 27 25 - 61: 18(int) ShiftRightArithmetic 20 21 - 62: 23(ptr) AccessChain 17(sbuf) 19 61 - 63: 6(int) AtomicOr 62 26 27 25 - Store 29(u) 63 - 64: 18(int) ShiftRightArithmetic 20 21 - 65: 23(ptr) AccessChain 17(sbuf) 19 64 - 66: 6(int) AtomicXor 65 26 27 25 - 67: 18(int) ShiftRightArithmetic 20 21 - 68: 23(ptr) AccessChain 17(sbuf) 19 67 - 69: 6(int) AtomicXor 68 26 27 25 - Store 29(u) 69 - 70: 6(int) Load 11(pos) - 71: 18(int) ShiftRightLogical 70 21 - 72: 23(ptr) AccessChain 17(sbuf) 19 71 - 73: 6(int) Load 72 - 74: 8(float) ConvertUToF 73 - 75: 9(fvec4) CompositeConstruct 74 74 74 74 - ReturnValue 75 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.structbuffer.byte.frag.out b/deps/glslang/Test/baseResults/hlsl.structbuffer.byte.frag.out deleted file mode 100644 index b5252bce..00000000 --- a/deps/glslang/Test/baseResults/hlsl.structbuffer.byte.frag.out +++ /dev/null @@ -1,479 +0,0 @@ -hlsl.structbuffer.byte.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:5 Function Definition: @main(u1; ( temp 4-component vector of float) -0:5 Function Parameters: -0:5 'pos' ( in uint) -0:? Sequence -0:7 Sequence -0:7 move second child to first child ( temp uint) -0:7 'size' ( temp uint) -0:7 array length ( temp uint) -0:7 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:7 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:7 Constant: -0:7 0 (const uint) -0:12 Branch: Return with expression -0:11 add ( temp 4-component vector of float) -0:10 add ( temp 4-component vector of float) -0:9 add ( temp 4-component vector of float) -0:9 Convert uint to float ( temp float) -0:9 indirect index (layout( row_major std430) buffer uint) -0:9 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:9 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:9 Constant: -0:9 0 (const uint) -0:9 right-shift ( temp int) -0:9 'pos' ( in uint) -0:9 Constant: -0:9 2 (const int) -0:10 Construct vec4 ( temp 4-component vector of float) -0:? Convert uint to float ( temp 2-component vector of float) -0:? Sequence -0:10 move second child to first child ( temp int) -0:10 'byteAddrTemp' ( temp int) -0:10 right-shift ( temp int) -0:10 add ( temp uint) -0:10 'pos' ( in uint) -0:10 Constant: -0:10 4 (const uint) -0:10 Constant: -0:10 2 (const int) -0:? Construct vec2 ( temp 2-component vector of uint) -0:10 indirect index ( temp uint) -0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:10 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:10 Constant: -0:10 0 (const uint) -0:10 'byteAddrTemp' ( temp int) -0:10 indirect index ( temp uint) -0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:10 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:10 Constant: -0:10 0 (const uint) -0:10 add ( temp int) -0:10 'byteAddrTemp' ( temp int) -0:10 Constant: -0:10 1 (const int) -0:10 Constant: -0:10 0.000000 -0:10 Constant: -0:10 0.000000 -0:11 Construct vec4 ( temp 4-component vector of float) -0:? Convert uint to float ( temp 3-component vector of float) -0:? Sequence -0:11 move second child to first child ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 right-shift ( temp int) -0:11 add ( temp uint) -0:11 'pos' ( in uint) -0:11 Constant: -0:11 8 (const uint) -0:11 Constant: -0:11 2 (const int) -0:? Construct vec3 ( temp 3-component vector of uint) -0:11 indirect index ( temp uint) -0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:11 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 'byteAddrTemp' ( temp int) -0:11 indirect index ( temp uint) -0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:11 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 add ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 Constant: -0:11 1 (const int) -0:11 indirect index ( temp uint) -0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:11 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 add ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 0.000000 -0:? Convert uint to float ( temp 4-component vector of float) -0:? Sequence -0:12 move second child to first child ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 right-shift ( temp int) -0:12 add ( temp uint) -0:12 'pos' ( in uint) -0:12 Constant: -0:12 12 (const uint) -0:12 Constant: -0:12 2 (const int) -0:? Construct vec4 ( temp 4-component vector of uint) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 'byteAddrTemp' ( temp int) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 1 (const int) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 2 (const int) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 3 (const int) -0:5 Function Definition: main( ( temp void) -0:5 Function Parameters: -0:? Sequence -0:5 move second child to first child ( temp uint) -0:? 'pos' ( temp uint) -0:? 'pos' (layout( location=0) flat in uint) -0:5 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:5 Function Call: @main(u1; ( temp 4-component vector of float) -0:? 'pos' ( temp uint) -0:? Linker Objects -0:? 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'pos' (layout( location=0) flat in uint) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:5 Function Definition: @main(u1; ( temp 4-component vector of float) -0:5 Function Parameters: -0:5 'pos' ( in uint) -0:? Sequence -0:7 Sequence -0:7 move second child to first child ( temp uint) -0:7 'size' ( temp uint) -0:7 array length ( temp uint) -0:7 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:7 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:7 Constant: -0:7 0 (const uint) -0:12 Branch: Return with expression -0:11 add ( temp 4-component vector of float) -0:10 add ( temp 4-component vector of float) -0:9 add ( temp 4-component vector of float) -0:9 Convert uint to float ( temp float) -0:9 indirect index (layout( row_major std430) buffer uint) -0:9 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:9 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:9 Constant: -0:9 0 (const uint) -0:9 right-shift ( temp int) -0:9 'pos' ( in uint) -0:9 Constant: -0:9 2 (const int) -0:10 Construct vec4 ( temp 4-component vector of float) -0:? Convert uint to float ( temp 2-component vector of float) -0:? Sequence -0:10 move second child to first child ( temp int) -0:10 'byteAddrTemp' ( temp int) -0:10 right-shift ( temp int) -0:10 add ( temp uint) -0:10 'pos' ( in uint) -0:10 Constant: -0:10 4 (const uint) -0:10 Constant: -0:10 2 (const int) -0:? Construct vec2 ( temp 2-component vector of uint) -0:10 indirect index ( temp uint) -0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:10 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:10 Constant: -0:10 0 (const uint) -0:10 'byteAddrTemp' ( temp int) -0:10 indirect index ( temp uint) -0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:10 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:10 Constant: -0:10 0 (const uint) -0:10 add ( temp int) -0:10 'byteAddrTemp' ( temp int) -0:10 Constant: -0:10 1 (const int) -0:10 Constant: -0:10 0.000000 -0:10 Constant: -0:10 0.000000 -0:11 Construct vec4 ( temp 4-component vector of float) -0:? Convert uint to float ( temp 3-component vector of float) -0:? Sequence -0:11 move second child to first child ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 right-shift ( temp int) -0:11 add ( temp uint) -0:11 'pos' ( in uint) -0:11 Constant: -0:11 8 (const uint) -0:11 Constant: -0:11 2 (const int) -0:? Construct vec3 ( temp 3-component vector of uint) -0:11 indirect index ( temp uint) -0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:11 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 'byteAddrTemp' ( temp int) -0:11 indirect index ( temp uint) -0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:11 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 add ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 Constant: -0:11 1 (const int) -0:11 indirect index ( temp uint) -0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:11 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 add ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 0.000000 -0:? Convert uint to float ( temp 4-component vector of float) -0:? Sequence -0:12 move second child to first child ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 right-shift ( temp int) -0:12 add ( temp uint) -0:12 'pos' ( in uint) -0:12 Constant: -0:12 12 (const uint) -0:12 Constant: -0:12 2 (const int) -0:? Construct vec4 ( temp 4-component vector of uint) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 'byteAddrTemp' ( temp int) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 1 (const int) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 2 (const int) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 3 (const int) -0:5 Function Definition: main( ( temp void) -0:5 Function Parameters: -0:? Sequence -0:5 move second child to first child ( temp uint) -0:? 'pos' ( temp uint) -0:? 'pos' (layout( location=0) flat in uint) -0:5 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:5 Function Call: @main(u1; ( temp 4-component vector of float) -0:? 'pos' ( temp uint) -0:? Linker Objects -0:? 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'pos' (layout( location=0) flat in uint) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 114 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 107 110 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 12 "@main(u1;" - Name 11 "pos" - Name 14 "size" - Name 16 "sbuf" - MemberName 16(sbuf) 0 "@data" - Name 18 "sbuf" - Name 30 "byteAddrTemp" - Name 53 "byteAddrTemp" - Name 78 "byteAddrTemp" - Name 105 "pos" - Name 107 "pos" - Name 110 "@entryPointOutput" - Name 111 "param" - Decorate 15 ArrayStride 4 - MemberDecorate 16(sbuf) 0 NonWritable - MemberDecorate 16(sbuf) 0 Offset 0 - Decorate 16(sbuf) BufferBlock - Decorate 18(sbuf) DescriptorSet 0 - Decorate 18(sbuf) Binding 0 - Decorate 107(pos) Flat - Decorate 107(pos) Location 0 - Decorate 110(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 8: TypeFloat 32 - 9: TypeVector 8(float) 4 - 10: TypeFunction 9(fvec4) 7(ptr) - 15: TypeRuntimeArray 6(int) - 16(sbuf): TypeStruct 15 - 17: TypePointer Uniform 16(sbuf) - 18(sbuf): 17(ptr) Variable Uniform - 20: TypeInt 32 1 - 21: 20(int) Constant 0 - 23: 20(int) Constant 2 - 25: TypePointer Uniform 6(int) - 29: TypePointer Function 20(int) - 32: 6(int) Constant 4 - 39: 20(int) Constant 1 - 43: TypeVector 6(int) 2 - 45: TypeVector 8(float) 2 - 47: 8(float) Constant 0 - 55: 6(int) Constant 8 - 69: TypeVector 6(int) 3 - 71: TypeVector 8(float) 3 - 80: 6(int) Constant 12 - 95: 20(int) Constant 3 - 99: TypeVector 6(int) 4 - 106: TypePointer Input 6(int) - 107(pos): 106(ptr) Variable Input - 109: TypePointer Output 9(fvec4) -110(@entryPointOutput): 109(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 105(pos): 7(ptr) Variable Function - 111(param): 7(ptr) Variable Function - 108: 6(int) Load 107(pos) - Store 105(pos) 108 - 112: 6(int) Load 105(pos) - Store 111(param) 112 - 113: 9(fvec4) FunctionCall 12(@main(u1;) 111(param) - Store 110(@entryPointOutput) 113 - Return - FunctionEnd - 12(@main(u1;): 9(fvec4) Function None 10 - 11(pos): 7(ptr) FunctionParameter - 13: Label - 14(size): 7(ptr) Variable Function -30(byteAddrTemp): 29(ptr) Variable Function -53(byteAddrTemp): 29(ptr) Variable Function -78(byteAddrTemp): 29(ptr) Variable Function - 19: 6(int) ArrayLength 18(sbuf) 0 - Store 14(size) 19 - 22: 6(int) Load 11(pos) - 24: 20(int) ShiftRightLogical 22 23 - 26: 25(ptr) AccessChain 18(sbuf) 21 24 - 27: 6(int) Load 26 - 28: 8(float) ConvertUToF 27 - 31: 6(int) Load 11(pos) - 33: 6(int) IAdd 31 32 - 34: 20(int) ShiftRightLogical 33 23 - Store 30(byteAddrTemp) 34 - 35: 20(int) Load 30(byteAddrTemp) - 36: 25(ptr) AccessChain 18(sbuf) 21 35 - 37: 6(int) Load 36 - 38: 20(int) Load 30(byteAddrTemp) - 40: 20(int) IAdd 38 39 - 41: 25(ptr) AccessChain 18(sbuf) 21 40 - 42: 6(int) Load 41 - 44: 43(ivec2) CompositeConstruct 37 42 - 46: 45(fvec2) ConvertUToF 44 - 48: 8(float) CompositeExtract 46 0 - 49: 8(float) CompositeExtract 46 1 - 50: 9(fvec4) CompositeConstruct 48 49 47 47 - 51: 9(fvec4) CompositeConstruct 28 28 28 28 - 52: 9(fvec4) FAdd 51 50 - 54: 6(int) Load 11(pos) - 56: 6(int) IAdd 54 55 - 57: 20(int) ShiftRightLogical 56 23 - Store 53(byteAddrTemp) 57 - 58: 20(int) Load 53(byteAddrTemp) - 59: 25(ptr) AccessChain 18(sbuf) 21 58 - 60: 6(int) Load 59 - 61: 20(int) Load 53(byteAddrTemp) - 62: 20(int) IAdd 61 39 - 63: 25(ptr) AccessChain 18(sbuf) 21 62 - 64: 6(int) Load 63 - 65: 20(int) Load 53(byteAddrTemp) - 66: 20(int) IAdd 65 23 - 67: 25(ptr) AccessChain 18(sbuf) 21 66 - 68: 6(int) Load 67 - 70: 69(ivec3) CompositeConstruct 60 64 68 - 72: 71(fvec3) ConvertUToF 70 - 73: 8(float) CompositeExtract 72 0 - 74: 8(float) CompositeExtract 72 1 - 75: 8(float) CompositeExtract 72 2 - 76: 9(fvec4) CompositeConstruct 73 74 75 47 - 77: 9(fvec4) FAdd 52 76 - 79: 6(int) Load 11(pos) - 81: 6(int) IAdd 79 80 - 82: 20(int) ShiftRightLogical 81 23 - Store 78(byteAddrTemp) 82 - 83: 20(int) Load 78(byteAddrTemp) - 84: 25(ptr) AccessChain 18(sbuf) 21 83 - 85: 6(int) Load 84 - 86: 20(int) Load 78(byteAddrTemp) - 87: 20(int) IAdd 86 39 - 88: 25(ptr) AccessChain 18(sbuf) 21 87 - 89: 6(int) Load 88 - 90: 20(int) Load 78(byteAddrTemp) - 91: 20(int) IAdd 90 23 - 92: 25(ptr) AccessChain 18(sbuf) 21 91 - 93: 6(int) Load 92 - 94: 20(int) Load 78(byteAddrTemp) - 96: 20(int) IAdd 94 95 - 97: 25(ptr) AccessChain 18(sbuf) 21 96 - 98: 6(int) Load 97 - 100: 99(ivec4) CompositeConstruct 85 89 93 98 - 101: 9(fvec4) ConvertUToF 100 - 102: 9(fvec4) FAdd 77 101 - ReturnValue 102 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.structbuffer.coherent.frag.out b/deps/glslang/Test/baseResults/hlsl.structbuffer.coherent.frag.out deleted file mode 100644 index 3d97ee55..00000000 --- a/deps/glslang/Test/baseResults/hlsl.structbuffer.coherent.frag.out +++ /dev/null @@ -1,309 +0,0 @@ -hlsl.structbuffer.coherent.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:12 Function Definition: @main(u1; ( temp 4-component vector of float) -0:12 Function Parameters: -0:12 'pos' ( in uint) -0:? Sequence -0:13 move second child to first child ( temp float) -0:13 indirect index (layout( row_major std430) buffer float) -0:13 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) -0:13 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) -0:13 Constant: -0:13 0 (const uint) -0:13 add ( temp uint) -0:13 'pos' ( in uint) -0:13 Constant: -0:13 1 (const uint) -0:13 Constant: -0:13 42.000000 -0:17 Sequence -0:17 move second child to first child ( temp uint) -0:17 'size' ( temp uint) -0:17 array length ( temp uint) -0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) -0:17 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) -0:17 Constant: -0:17 0 (const uint) -0:17 move second child to first child ( temp uint) -0:17 'stride' ( temp uint) -0:17 Constant: -0:17 16 (const uint) -0:19 Test condition and select ( temp void) -0:19 Condition -0:19 test: direct index for structure ( temp bool) -0:19 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test}) -0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) -0:19 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) -0:19 Constant: -0:19 0 (const uint) -0:19 'pos' ( in uint) -0:19 Constant: -0:19 1 (const int) -0:19 true case -0:20 Branch: Return with expression -0:20 Construct vec4 ( temp 4-component vector of float) -0:20 add ( temp 3-component vector of float) -0:20 color: direct index for structure ( temp 3-component vector of float) -0:20 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test}) -0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) -0:20 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) -0:20 Constant: -0:20 0 (const uint) -0:20 'pos' ( in uint) -0:20 Constant: -0:20 0 (const int) -0:20 indirect index (layout( row_major std430) buffer float) -0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) -0:20 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) -0:20 Constant: -0:20 0 (const uint) -0:20 'pos' ( in uint) -0:20 Constant: -0:20 0.000000 -0:19 false case -0:22 Branch: Return with expression -0:22 Construct vec4 ( temp 4-component vector of float) -0:22 Convert uint to float ( temp float) -0:22 add ( temp uint) -0:22 'size' ( temp uint) -0:22 'stride' ( temp uint) -0:12 Function Definition: main( ( temp void) -0:12 Function Parameters: -0:? Sequence -0:12 move second child to first child ( temp uint) -0:? 'pos' ( temp uint) -0:? 'pos' (layout( location=0) flat in uint) -0:12 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:12 Function Call: @main(u1; ( temp 4-component vector of float) -0:? 'pos' ( temp uint) -0:? Linker Objects -0:? 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) -0:? 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'pos' (layout( location=0) flat in uint) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:12 Function Definition: @main(u1; ( temp 4-component vector of float) -0:12 Function Parameters: -0:12 'pos' ( in uint) -0:? Sequence -0:13 move second child to first child ( temp float) -0:13 indirect index (layout( row_major std430) buffer float) -0:13 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) -0:13 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) -0:13 Constant: -0:13 0 (const uint) -0:13 add ( temp uint) -0:13 'pos' ( in uint) -0:13 Constant: -0:13 1 (const uint) -0:13 Constant: -0:13 42.000000 -0:17 Sequence -0:17 move second child to first child ( temp uint) -0:17 'size' ( temp uint) -0:17 array length ( temp uint) -0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) -0:17 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) -0:17 Constant: -0:17 0 (const uint) -0:17 move second child to first child ( temp uint) -0:17 'stride' ( temp uint) -0:17 Constant: -0:17 16 (const uint) -0:19 Test condition and select ( temp void) -0:19 Condition -0:19 test: direct index for structure ( temp bool) -0:19 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test}) -0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) -0:19 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) -0:19 Constant: -0:19 0 (const uint) -0:19 'pos' ( in uint) -0:19 Constant: -0:19 1 (const int) -0:19 true case -0:20 Branch: Return with expression -0:20 Construct vec4 ( temp 4-component vector of float) -0:20 add ( temp 3-component vector of float) -0:20 color: direct index for structure ( temp 3-component vector of float) -0:20 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test}) -0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) -0:20 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) -0:20 Constant: -0:20 0 (const uint) -0:20 'pos' ( in uint) -0:20 Constant: -0:20 0 (const int) -0:20 indirect index (layout( row_major std430) buffer float) -0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) -0:20 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) -0:20 Constant: -0:20 0 (const uint) -0:20 'pos' ( in uint) -0:20 Constant: -0:20 0.000000 -0:19 false case -0:22 Branch: Return with expression -0:22 Construct vec4 ( temp 4-component vector of float) -0:22 Convert uint to float ( temp float) -0:22 add ( temp uint) -0:22 'size' ( temp uint) -0:22 'stride' ( temp uint) -0:12 Function Definition: main( ( temp void) -0:12 Function Parameters: -0:? Sequence -0:12 move second child to first child ( temp uint) -0:? 'pos' ( temp uint) -0:? 'pos' (layout( location=0) flat in uint) -0:12 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:12 Function Call: @main(u1; ( temp 4-component vector of float) -0:? 'pos' ( temp uint) -0:? Linker Objects -0:? 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) -0:? 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'pos' (layout( location=0) flat in uint) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 78 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 71 74 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 12 "@main(u1;" - Name 11 "pos" - Name 15 "sbuf2" - MemberName 15(sbuf2) 0 "@data" - Name 17 "sbuf2" - Name 26 "size" - Name 28 "sb_t" - MemberName 28(sb_t) 0 "color" - MemberName 28(sb_t) 1 "test" - Name 30 "sbuf" - MemberName 30(sbuf) 0 "@data" - Name 32 "sbuf" - Name 34 "stride" - Name 69 "pos" - Name 71 "pos" - Name 74 "@entryPointOutput" - Name 75 "param" - Decorate 14 ArrayStride 4 - MemberDecorate 15(sbuf2) 0 Coherent - MemberDecorate 15(sbuf2) 0 Offset 0 - Decorate 15(sbuf2) BufferBlock - Decorate 17(sbuf2) DescriptorSet 0 - Decorate 17(sbuf2) Binding 1 - MemberDecorate 28(sb_t) 0 Offset 0 - MemberDecorate 28(sb_t) 1 Offset 12 - Decorate 29 ArrayStride 16 - MemberDecorate 30(sbuf) 0 Coherent - MemberDecorate 30(sbuf) 0 Offset 0 - Decorate 30(sbuf) BufferBlock - Decorate 32(sbuf) DescriptorSet 0 - Decorate 32(sbuf) Binding 0 - Decorate 71(pos) Flat - Decorate 71(pos) Location 0 - Decorate 74(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 8: TypeFloat 32 - 9: TypeVector 8(float) 4 - 10: TypeFunction 9(fvec4) 7(ptr) - 14: TypeRuntimeArray 8(float) - 15(sbuf2): TypeStruct 14 - 16: TypePointer Uniform 15(sbuf2) - 17(sbuf2): 16(ptr) Variable Uniform - 18: TypeInt 32 1 - 19: 18(int) Constant 0 - 21: 6(int) Constant 1 - 23: 8(float) Constant 1109917696 - 24: TypePointer Uniform 8(float) - 27: TypeVector 8(float) 3 - 28(sb_t): TypeStruct 27(fvec3) 6(int) - 29: TypeRuntimeArray 28(sb_t) - 30(sbuf): TypeStruct 29 - 31: TypePointer Uniform 30(sbuf) - 32(sbuf): 31(ptr) Variable Uniform - 35: 6(int) Constant 16 - 37: 18(int) Constant 1 - 38: TypePointer Uniform 6(int) - 41: TypeBool - 42: 6(int) Constant 0 - 47: TypePointer Uniform 27(fvec3) - 55: 8(float) Constant 0 - 70: TypePointer Input 6(int) - 71(pos): 70(ptr) Variable Input - 73: TypePointer Output 9(fvec4) -74(@entryPointOutput): 73(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 69(pos): 7(ptr) Variable Function - 75(param): 7(ptr) Variable Function - 72: 6(int) Load 71(pos) - Store 69(pos) 72 - 76: 6(int) Load 69(pos) - Store 75(param) 76 - 77: 9(fvec4) FunctionCall 12(@main(u1;) 75(param) - Store 74(@entryPointOutput) 77 - Return - FunctionEnd - 12(@main(u1;): 9(fvec4) Function None 10 - 11(pos): 7(ptr) FunctionParameter - 13: Label - 26(size): 7(ptr) Variable Function - 34(stride): 7(ptr) Variable Function - 20: 6(int) Load 11(pos) - 22: 6(int) IAdd 20 21 - 25: 24(ptr) AccessChain 17(sbuf2) 19 22 - Store 25 23 - 33: 6(int) ArrayLength 32(sbuf) 0 - Store 26(size) 33 - Store 34(stride) 35 - 36: 6(int) Load 11(pos) - 39: 38(ptr) AccessChain 32(sbuf) 19 36 37 - 40: 6(int) Load 39 - 43: 41(bool) INotEqual 40 42 - SelectionMerge 45 None - BranchConditional 43 44 61 - 44: Label - 46: 6(int) Load 11(pos) - 48: 47(ptr) AccessChain 32(sbuf) 19 46 19 - 49: 27(fvec3) Load 48 - 50: 6(int) Load 11(pos) - 51: 24(ptr) AccessChain 17(sbuf2) 19 50 - 52: 8(float) Load 51 - 53: 27(fvec3) CompositeConstruct 52 52 52 - 54: 27(fvec3) FAdd 49 53 - 56: 8(float) CompositeExtract 54 0 - 57: 8(float) CompositeExtract 54 1 - 58: 8(float) CompositeExtract 54 2 - 59: 9(fvec4) CompositeConstruct 56 57 58 55 - ReturnValue 59 - 61: Label - 62: 6(int) Load 26(size) - 63: 6(int) Load 34(stride) - 64: 6(int) IAdd 62 63 - 65: 8(float) ConvertUToF 64 - 66: 9(fvec4) CompositeConstruct 65 65 65 65 - ReturnValue 66 - 45: Label - Unreachable - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.structbuffer.floatidx.comp.out b/deps/glslang/Test/baseResults/hlsl.structbuffer.floatidx.comp.out deleted file mode 100644 index a7668a7f..00000000 --- a/deps/glslang/Test/baseResults/hlsl.structbuffer.floatidx.comp.out +++ /dev/null @@ -1,330 +0,0 @@ -hlsl.structbuffer.floatidx.comp -Shader version: 500 -local_size = (1, 1, 1) -0:? Sequence -0:13 Function Definition: @main(vu3; ( temp void) -0:13 Function Parameters: -0:13 'nThreadId' ( in 3-component vector of uint) -0:? Sequence -0:14 Sequence -0:14 move second child to first child ( temp structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId}) -0:14 'data' ( temp structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId}) -0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId}) -0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId}) -0:14 'csb' (layout( binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId} @data}) -0:14 Constant: -0:14 0 (const uint) -0:14 add ( temp uint) -0:14 AtomicAdd ( temp uint) -0:14 @count: direct index for structure ( temp uint) -0:14 'csb@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) -0:14 Constant: -0:14 0 (const int) -0:14 Constant: -0:14 4294967295 (const uint) -0:14 Constant: -0:14 -1 (const int) -0:15 Sequence -0:15 move second child to first child ( temp 2-component vector of float) -0:15 'coord' ( temp 2-component vector of float) -0:15 Convert uint to float ( temp 2-component vector of float) -0:15 vector swizzle ( temp 2-component vector of uint) -0:15 threadId: direct index for structure ( temp 2-component vector of uint) -0:15 'data' ( temp structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId}) -0:15 Constant: -0:15 1 (const int) -0:15 Sequence -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 1 (const int) -0:16 Sequence -0:16 move second child to first child ( temp 4-component vector of float) -0:16 'storeTemp' ( temp 4-component vector of float) -0:16 color: direct index for structure ( temp 4-component vector of float) -0:16 'data' ( temp structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId}) -0:16 Constant: -0:16 0 (const int) -0:16 imageStore ( temp void) -0:16 'outtx' (layout( rgba32f) uniform image2D) -0:16 Convert float to uint ( temp 2-component vector of uint) -0:16 'coord' ( temp 2-component vector of float) -0:16 'storeTemp' ( temp 4-component vector of float) -0:16 'storeTemp' ( temp 4-component vector of float) -0:18 move second child to first child ( temp 4-component vector of float) -0:18 indirect index (layout( row_major std430) buffer 4-component vector of float) -0:18 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float) -0:18 'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) -0:18 Constant: -0:18 0 (const uint) -0:18 Convert float to uint ( temp uint) -0:18 direct index ( temp float) -0:18 'coord' ( temp 2-component vector of float) -0:18 Constant: -0:18 0 (const int) -0:18 indirect index (layout( row_major std430) buffer 4-component vector of float) -0:18 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float) -0:18 'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) -0:18 Constant: -0:18 0 (const uint) -0:18 Convert float to uint ( temp uint) -0:18 direct index ( temp float) -0:18 'coord' ( temp 2-component vector of float) -0:18 Constant: -0:18 1 (const int) -0:13 Function Definition: main( ( temp void) -0:13 Function Parameters: -0:? Sequence -0:13 move second child to first child ( temp 3-component vector of uint) -0:? 'nThreadId' ( temp 3-component vector of uint) -0:? 'nThreadId' ( in 3-component vector of uint GlobalInvocationID) -0:13 Function Call: @main(vu3; ( temp void) -0:? 'nThreadId' ( temp 3-component vector of uint) -0:? Linker Objects -0:? 'outtx' (layout( rgba32f) uniform image2D) -0:? 'csb' (layout( binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId} @data}) -0:? 'csb@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) -0:? 'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) -0:? 'nThreadId' ( in 3-component vector of uint GlobalInvocationID) - - -Linked compute stage: - - -Shader version: 500 -local_size = (1, 1, 1) -0:? Sequence -0:13 Function Definition: @main(vu3; ( temp void) -0:13 Function Parameters: -0:13 'nThreadId' ( in 3-component vector of uint) -0:? Sequence -0:14 Sequence -0:14 move second child to first child ( temp structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId}) -0:14 'data' ( temp structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId}) -0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId}) -0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId}) -0:14 'csb' (layout( binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId} @data}) -0:14 Constant: -0:14 0 (const uint) -0:14 add ( temp uint) -0:14 AtomicAdd ( temp uint) -0:14 @count: direct index for structure ( temp uint) -0:14 'csb@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) -0:14 Constant: -0:14 0 (const int) -0:14 Constant: -0:14 4294967295 (const uint) -0:14 Constant: -0:14 -1 (const int) -0:15 Sequence -0:15 move second child to first child ( temp 2-component vector of float) -0:15 'coord' ( temp 2-component vector of float) -0:15 Convert uint to float ( temp 2-component vector of float) -0:15 vector swizzle ( temp 2-component vector of uint) -0:15 threadId: direct index for structure ( temp 2-component vector of uint) -0:15 'data' ( temp structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId}) -0:15 Constant: -0:15 1 (const int) -0:15 Sequence -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 1 (const int) -0:16 Sequence -0:16 move second child to first child ( temp 4-component vector of float) -0:16 'storeTemp' ( temp 4-component vector of float) -0:16 color: direct index for structure ( temp 4-component vector of float) -0:16 'data' ( temp structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId}) -0:16 Constant: -0:16 0 (const int) -0:16 imageStore ( temp void) -0:16 'outtx' (layout( rgba32f) uniform image2D) -0:16 Convert float to uint ( temp 2-component vector of uint) -0:16 'coord' ( temp 2-component vector of float) -0:16 'storeTemp' ( temp 4-component vector of float) -0:16 'storeTemp' ( temp 4-component vector of float) -0:18 move second child to first child ( temp 4-component vector of float) -0:18 indirect index (layout( row_major std430) buffer 4-component vector of float) -0:18 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float) -0:18 'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) -0:18 Constant: -0:18 0 (const uint) -0:18 Convert float to uint ( temp uint) -0:18 direct index ( temp float) -0:18 'coord' ( temp 2-component vector of float) -0:18 Constant: -0:18 0 (const int) -0:18 indirect index (layout( row_major std430) buffer 4-component vector of float) -0:18 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float) -0:18 'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) -0:18 Constant: -0:18 0 (const uint) -0:18 Convert float to uint ( temp uint) -0:18 direct index ( temp float) -0:18 'coord' ( temp 2-component vector of float) -0:18 Constant: -0:18 1 (const int) -0:13 Function Definition: main( ( temp void) -0:13 Function Parameters: -0:? Sequence -0:13 move second child to first child ( temp 3-component vector of uint) -0:? 'nThreadId' ( temp 3-component vector of uint) -0:? 'nThreadId' ( in 3-component vector of uint GlobalInvocationID) -0:13 Function Call: @main(vu3; ( temp void) -0:? 'nThreadId' ( temp 3-component vector of uint) -0:? Linker Objects -0:? 'outtx' (layout( rgba32f) uniform image2D) -0:? 'csb' (layout( binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId} @data}) -0:? 'csb@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) -0:? 'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) -0:? 'nThreadId' ( in 3-component vector of uint GlobalInvocationID) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 85 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 80 - ExecutionMode 4 LocalSize 1 1 1 - Source HLSL 500 - Name 4 "main" - Name 11 "@main(vu3;" - Name 10 "nThreadId" - Name 16 "sb_t" - MemberName 16(sb_t) 0 "color" - MemberName 16(sb_t) 1 "threadId" - Name 18 "data" - Name 19 "sb_t" - MemberName 19(sb_t) 0 "color" - MemberName 19(sb_t) 1 "threadId" - Name 21 "csb" - MemberName 21(csb) 0 "@data" - Name 23 "csb" - Name 26 "csb@count" - MemberName 26(csb@count) 0 "@count" - Name 28 "csb@count" - Name 49 "coord" - Name 53 "storeTemp" - Name 58 "outtx" - Name 64 "rwsb" - MemberName 64(rwsb) 0 "@data" - Name 66 "rwsb" - Name 78 "nThreadId" - Name 80 "nThreadId" - Name 82 "param" - MemberDecorate 19(sb_t) 0 Offset 0 - MemberDecorate 19(sb_t) 1 Offset 16 - Decorate 20 ArrayStride 32 - MemberDecorate 21(csb) 0 Offset 0 - Decorate 21(csb) BufferBlock - Decorate 23(csb) DescriptorSet 0 - Decorate 23(csb) Binding 1 - MemberDecorate 26(csb@count) 0 Offset 0 - Decorate 26(csb@count) BufferBlock - Decorate 28(csb@count) DescriptorSet 0 - Decorate 28(csb@count) Binding 2 - Decorate 58(outtx) DescriptorSet 0 - Decorate 58(outtx) Binding 0 - Decorate 63 ArrayStride 16 - MemberDecorate 64(rwsb) 0 Offset 0 - Decorate 64(rwsb) BufferBlock - Decorate 66(rwsb) DescriptorSet 0 - Decorate 66(rwsb) Binding 3 - Decorate 80(nThreadId) BuiltIn GlobalInvocationId - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeVector 6(int) 3 - 8: TypePointer Function 7(ivec3) - 9: TypeFunction 2 8(ptr) - 13: TypeFloat 32 - 14: TypeVector 13(float) 4 - 15: TypeVector 6(int) 2 - 16(sb_t): TypeStruct 14(fvec4) 15(ivec2) - 17: TypePointer Function 16(sb_t) - 19(sb_t): TypeStruct 14(fvec4) 15(ivec2) - 20: TypeRuntimeArray 19(sb_t) - 21(csb): TypeStruct 20 - 22: TypePointer Uniform 21(csb) - 23(csb): 22(ptr) Variable Uniform - 24: TypeInt 32 1 - 25: 24(int) Constant 0 - 26(csb@count): TypeStruct 6(int) - 27: TypePointer Uniform 26(csb@count) - 28(csb@count): 27(ptr) Variable Uniform - 29: TypePointer Uniform 6(int) - 31: 6(int) Constant 4294967295 - 32: 6(int) Constant 1 - 33: 6(int) Constant 0 - 35: 24(int) Constant 4294967295 - 37: TypePointer Uniform 19(sb_t) - 41: TypePointer Function 14(fvec4) - 44: 24(int) Constant 1 - 45: TypePointer Function 15(ivec2) - 47: TypeVector 13(float) 2 - 48: TypePointer Function 47(fvec2) - 56: TypeImage 13(float) 2D nonsampled format:Rgba32f - 57: TypePointer UniformConstant 56 - 58(outtx): 57(ptr) Variable UniformConstant - 63: TypeRuntimeArray 14(fvec4) - 64(rwsb): TypeStruct 63 - 65: TypePointer Uniform 64(rwsb) - 66(rwsb): 65(ptr) Variable Uniform - 67: TypePointer Function 13(float) - 74: TypePointer Uniform 14(fvec4) - 79: TypePointer Input 7(ivec3) - 80(nThreadId): 79(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 78(nThreadId): 8(ptr) Variable Function - 82(param): 8(ptr) Variable Function - 81: 7(ivec3) Load 80(nThreadId) - Store 78(nThreadId) 81 - 83: 7(ivec3) Load 78(nThreadId) - Store 82(param) 83 - 84: 2 FunctionCall 11(@main(vu3;) 82(param) - Return - FunctionEnd - 11(@main(vu3;): 2 Function None 9 - 10(nThreadId): 8(ptr) FunctionParameter - 12: Label - 18(data): 17(ptr) Variable Function - 49(coord): 48(ptr) Variable Function - 53(storeTemp): 41(ptr) Variable Function - 30: 29(ptr) AccessChain 28(csb@count) 25 - 34: 6(int) AtomicIAdd 30 32 33 31 - 36: 6(int) IAdd 34 35 - 38: 37(ptr) AccessChain 23(csb) 25 36 - 39: 19(sb_t) Load 38 - 40: 14(fvec4) CompositeExtract 39 0 - 42: 41(ptr) AccessChain 18(data) 25 - Store 42 40 - 43: 15(ivec2) CompositeExtract 39 1 - 46: 45(ptr) AccessChain 18(data) 44 - Store 46 43 - 50: 45(ptr) AccessChain 18(data) 44 - 51: 15(ivec2) Load 50 - 52: 47(fvec2) ConvertUToF 51 - Store 49(coord) 52 - 54: 41(ptr) AccessChain 18(data) 25 - 55: 14(fvec4) Load 54 - Store 53(storeTemp) 55 - 59: 56 Load 58(outtx) - 60: 47(fvec2) Load 49(coord) - 61: 15(ivec2) ConvertFToU 60 - 62: 14(fvec4) Load 53(storeTemp) - ImageWrite 59 61 62 - 68: 67(ptr) AccessChain 49(coord) 33 - 69: 13(float) Load 68 - 70: 6(int) ConvertFToU 69 - 71: 67(ptr) AccessChain 49(coord) 32 - 72: 13(float) Load 71 - 73: 6(int) ConvertFToU 72 - 75: 74(ptr) AccessChain 66(rwsb) 25 73 - 76: 14(fvec4) Load 75 - 77: 74(ptr) AccessChain 66(rwsb) 25 70 - Store 77 76 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.structbuffer.fn.frag.out b/deps/glslang/Test/baseResults/hlsl.structbuffer.fn.frag.out deleted file mode 100644 index bd2a4e67..00000000 --- a/deps/glslang/Test/baseResults/hlsl.structbuffer.fn.frag.out +++ /dev/null @@ -1,298 +0,0 @@ -hlsl.structbuffer.fn.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:5 Function Definition: get(block--vu4[0]1;u1; ( temp 4-component vector of uint) -0:5 Function Parameters: -0:5 'sb' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) -0:5 'bufferOffset' ( in uint) -0:? Sequence -0:6 Branch: Return with expression -0:6 indirect index (layout( row_major std430) buffer 4-component vector of uint) -0:6 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint) -0:6 'sb' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) -0:6 Constant: -0:6 0 (const uint) -0:6 'bufferOffset' ( in uint) -0:10 Function Definition: set(block--vu4[0]1;u1;vu4; ( temp void) -0:10 Function Parameters: -0:10 'sb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) -0:10 'sb@count' ( buffer block{layout( row_major std430) buffer uint @count}) -0:10 'bufferOffset' ( in uint) -0:10 'data' ( in 4-component vector of uint) -0:? Sequence -0:11 move second child to first child ( temp 4-component vector of uint) -0:11 indirect index ( buffer 4-component vector of uint) -0:11 @data: direct index for structure ( buffer unsized 1-element array of 4-component vector of uint) -0:11 'sb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 'bufferOffset' ( in uint) -0:11 'data' ( in 4-component vector of uint) -0:20 Function Definition: @main(u1; ( temp 4-component vector of float) -0:20 Function Parameters: -0:20 'pos' ( in uint) -0:? Sequence -0:21 Function Call: set(block--vu4[0]1;u1;vu4; ( temp void) -0:21 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) -0:21 'sbuf2@count' ( buffer block{layout( row_major std430) buffer uint @count}) -0:21 Constant: -0:21 2 (const uint) -0:21 Function Call: get(block--vu4[0]1;u1; ( temp 4-component vector of uint) -0:21 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) -0:21 Constant: -0:21 3 (const uint) -0:23 Branch: Return with expression -0:23 Constant: -0:23 0.000000 -0:23 0.000000 -0:23 0.000000 -0:23 0.000000 -0:20 Function Definition: main( ( temp void) -0:20 Function Parameters: -0:? Sequence -0:20 move second child to first child ( temp uint) -0:? 'pos' ( temp uint) -0:? 'pos' (layout( location=0) flat in uint) -0:20 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:20 Function Call: @main(u1; ( temp 4-component vector of float) -0:? 'pos' ( temp uint) -0:? Linker Objects -0:? 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) -0:? 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) -0:? 'sbuf2@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) -0:? 'sbuf3' (layout( binding=12 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 3-component vector of uint @data}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'pos' (layout( location=0) flat in uint) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:5 Function Definition: get(block--vu4[0]1;u1; ( temp 4-component vector of uint) -0:5 Function Parameters: -0:5 'sb' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) -0:5 'bufferOffset' ( in uint) -0:? Sequence -0:6 Branch: Return with expression -0:6 indirect index (layout( row_major std430) buffer 4-component vector of uint) -0:6 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint) -0:6 'sb' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) -0:6 Constant: -0:6 0 (const uint) -0:6 'bufferOffset' ( in uint) -0:10 Function Definition: set(block--vu4[0]1;u1;vu4; ( temp void) -0:10 Function Parameters: -0:10 'sb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) -0:10 'sb@count' ( buffer block{layout( row_major std430) buffer uint @count}) -0:10 'bufferOffset' ( in uint) -0:10 'data' ( in 4-component vector of uint) -0:? Sequence -0:11 move second child to first child ( temp 4-component vector of uint) -0:11 indirect index ( buffer 4-component vector of uint) -0:11 @data: direct index for structure ( buffer unsized 1-element array of 4-component vector of uint) -0:11 'sb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 'bufferOffset' ( in uint) -0:11 'data' ( in 4-component vector of uint) -0:20 Function Definition: @main(u1; ( temp 4-component vector of float) -0:20 Function Parameters: -0:20 'pos' ( in uint) -0:? Sequence -0:21 Function Call: set(block--vu4[0]1;u1;vu4; ( temp void) -0:21 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) -0:21 'sbuf2@count' ( buffer block{layout( row_major std430) buffer uint @count}) -0:21 Constant: -0:21 2 (const uint) -0:21 Function Call: get(block--vu4[0]1;u1; ( temp 4-component vector of uint) -0:21 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) -0:21 Constant: -0:21 3 (const uint) -0:23 Branch: Return with expression -0:23 Constant: -0:23 0.000000 -0:23 0.000000 -0:23 0.000000 -0:23 0.000000 -0:20 Function Definition: main( ( temp void) -0:20 Function Parameters: -0:? Sequence -0:20 move second child to first child ( temp uint) -0:? 'pos' ( temp uint) -0:? 'pos' (layout( location=0) flat in uint) -0:20 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:20 Function Call: @main(u1; ( temp 4-component vector of float) -0:? 'pos' ( temp uint) -0:? Linker Objects -0:? 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) -0:? 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) -0:? 'sbuf2@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) -0:? 'sbuf3' (layout( binding=12 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 3-component vector of uint @data}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'pos' (layout( location=0) flat in uint) - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 78 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 63 66 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 9 "" - MemberName 9 0 "@data" - Name 15 "get(block--vu4[0]1;u1;" - Name 13 "sb" - Name 14 "bufferOffset" - Name 18 "" - MemberName 18 0 "@data" - Name 20 "" - MemberName 20 0 "@count" - Name 28 "set(block--vu4[0]1;u1;vu4;" - Name 24 "sb" - Name 25 "sb@count" - Name 26 "bufferOffset" - Name 27 "data" - Name 34 "@main(u1;" - Name 33 "pos" - Name 47 "sbuf2" - Name 48 "sbuf2@count" - Name 50 "sbuf" - Name 52 "param" - Name 54 "param" - Name 55 "param" - Name 61 "pos" - Name 63 "pos" - Name 66 "@entryPointOutput" - Name 67 "param" - Name 70 "sbuf2@count" - MemberName 70(sbuf2@count) 0 "@count" - Name 72 "sbuf2@count" - Name 75 "sbuf3" - MemberName 75(sbuf3) 0 "@data" - Name 77 "sbuf3" - Decorate 8 ArrayStride 16 - MemberDecorate 9 0 NonWritable - MemberDecorate 9 0 Offset 0 - Decorate 9 BufferBlock - Decorate 13(sb) NonWritable - Decorate 17 ArrayStride 16 - MemberDecorate 18 0 Offset 0 - Decorate 18 BufferBlock - Decorate 20 BufferBlock - Decorate 47(sbuf2) DescriptorSet 0 - Decorate 47(sbuf2) Binding 0 - Decorate 48(sbuf2@count) DescriptorSet 0 - Decorate 48(sbuf2@count) Binding 0 - Decorate 50(sbuf) DescriptorSet 0 - Decorate 50(sbuf) Binding 10 - Decorate 63(pos) Flat - Decorate 63(pos) Location 0 - Decorate 66(@entryPointOutput) Location 0 - MemberDecorate 70(sbuf2@count) 0 Offset 0 - Decorate 70(sbuf2@count) BufferBlock - Decorate 72(sbuf2@count) DescriptorSet 0 - Decorate 72(sbuf2@count) Binding 0 - Decorate 74 ArrayStride 16 - MemberDecorate 75(sbuf3) 0 NonWritable - MemberDecorate 75(sbuf3) 0 Offset 0 - Decorate 75(sbuf3) BufferBlock - Decorate 77(sbuf3) DescriptorSet 0 - Decorate 77(sbuf3) Binding 12 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeVector 6(int) 4 - 8: TypeRuntimeArray 7(ivec4) - 9: TypeStruct 8 - 10: TypePointer Uniform 9(struct) - 11: TypePointer Function 6(int) - 12: TypeFunction 7(ivec4) 10(ptr) 11(ptr) - 17: TypeRuntimeArray 7(ivec4) - 18: TypeStruct 17 - 19: TypePointer Uniform 18(struct) - 20: TypeStruct 6(int) - 21: TypePointer Uniform 20(struct) - 22: TypePointer Function 7(ivec4) - 23: TypeFunction 2 19(ptr) 21(ptr) 11(ptr) 22(ptr) - 30: TypeFloat 32 - 31: TypeVector 30(float) 4 - 32: TypeFunction 31(fvec4) 11(ptr) - 36: TypeInt 32 1 - 37: 36(int) Constant 0 - 39: TypePointer Uniform 7(ivec4) - 47(sbuf2): 19(ptr) Variable Uniform - 48(sbuf2@count): 21(ptr) Variable Uniform - 49: 6(int) Constant 2 - 50(sbuf): 10(ptr) Variable Uniform - 51: 6(int) Constant 3 - 57: 30(float) Constant 0 - 58: 31(fvec4) ConstantComposite 57 57 57 57 - 62: TypePointer Input 6(int) - 63(pos): 62(ptr) Variable Input - 65: TypePointer Output 31(fvec4) -66(@entryPointOutput): 65(ptr) Variable Output - 70(sbuf2@count): TypeStruct 6(int) - 71: TypePointer Uniform 70(sbuf2@count) - 72(sbuf2@count): 71(ptr) Variable Uniform - 73: TypeVector 6(int) 3 - 74: TypeRuntimeArray 73(ivec3) - 75(sbuf3): TypeStruct 74 - 76: TypePointer Uniform 75(sbuf3) - 77(sbuf3): 76(ptr) Variable Uniform - 4(main): 2 Function None 3 - 5: Label - 61(pos): 11(ptr) Variable Function - 67(param): 11(ptr) Variable Function - 64: 6(int) Load 63(pos) - Store 61(pos) 64 - 68: 6(int) Load 61(pos) - Store 67(param) 68 - 69: 31(fvec4) FunctionCall 34(@main(u1;) 67(param) - Store 66(@entryPointOutput) 69 - Return - FunctionEnd -15(get(block--vu4[0]1;u1;): 7(ivec4) Function None 12 - 13(sb): 10(ptr) FunctionParameter -14(bufferOffset): 11(ptr) FunctionParameter - 16: Label - 38: 6(int) Load 14(bufferOffset) - 40: 39(ptr) AccessChain 13(sb) 37 38 - 41: 7(ivec4) Load 40 - ReturnValue 41 - FunctionEnd -28(set(block--vu4[0]1;u1;vu4;): 2 Function None 23 - 24(sb): 19(ptr) FunctionParameter - 25(sb@count): 21(ptr) FunctionParameter -26(bufferOffset): 11(ptr) FunctionParameter - 27(data): 22(ptr) FunctionParameter - 29: Label - 44: 6(int) Load 26(bufferOffset) - 45: 7(ivec4) Load 27(data) - 46: 39(ptr) AccessChain 24(sb) 37 44 - Store 46 45 - Return - FunctionEnd - 34(@main(u1;): 31(fvec4) Function None 32 - 33(pos): 11(ptr) FunctionParameter - 35: Label - 52(param): 11(ptr) Variable Function - 54(param): 11(ptr) Variable Function - 55(param): 22(ptr) Variable Function - Store 52(param) 51 - 53: 7(ivec4) FunctionCall 15(get(block--vu4[0]1;u1;) 50(sbuf) 52(param) - Store 54(param) 49 - Store 55(param) 53 - 56: 2 FunctionCall 28(set(block--vu4[0]1;u1;vu4;) 47(sbuf2) 48(sbuf2@count) 54(param) 55(param) - ReturnValue 58 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.structbuffer.fn2.comp.out b/deps/glslang/Test/baseResults/hlsl.structbuffer.fn2.comp.out deleted file mode 100644 index 3409a5f7..00000000 --- a/deps/glslang/Test/baseResults/hlsl.structbuffer.fn2.comp.out +++ /dev/null @@ -1,248 +0,0 @@ -hlsl.structbuffer.fn2.comp -Shader version: 500 -local_size = (256, 1, 1) -0:? Sequence -0:5 Function Definition: testLoad(u1;block--u1[0]1; ( temp 2-component vector of uint) -0:5 Function Parameters: -0:5 'loc' ( in uint) -0:5 'buffer' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:? Sequence -0:6 Sequence -0:6 move second child to first child ( temp 2-component vector of uint) -0:6 'result' ( temp 2-component vector of uint) -0:? Sequence -0:6 move second child to first child ( temp int) -0:6 'byteAddrTemp' ( temp int) -0:6 right-shift ( temp int) -0:6 'loc' ( in uint) -0:6 Constant: -0:6 2 (const int) -0:? Construct vec2 ( temp 2-component vector of uint) -0:6 indirect index ( temp uint) -0:6 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:6 'buffer' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:6 Constant: -0:6 0 (const uint) -0:6 'byteAddrTemp' ( temp int) -0:6 indirect index ( temp uint) -0:6 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:6 'buffer' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:6 Constant: -0:6 0 (const uint) -0:6 add ( temp int) -0:6 'byteAddrTemp' ( temp int) -0:6 Constant: -0:6 1 (const int) -0:7 Branch: Return with expression -0:7 'result' ( temp 2-component vector of uint) -0:12 Function Definition: @main(u1; ( temp void) -0:12 Function Parameters: -0:12 'dispatchId' ( in uint) -0:? Sequence -0:13 Sequence -0:13 move second child to first child ( temp 2-component vector of uint) -0:13 'result' ( temp 2-component vector of uint) -0:13 Function Call: testLoad(u1;block--u1[0]1; ( temp 2-component vector of uint) -0:13 'dispatchId' ( in uint) -0:13 'g_input' (layout( binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:14 Sequence -0:14 imageStore ( temp void) -0:14 'g_output' (layout( binding=1 rg32ui) uniform uimageBuffer) -0:14 'dispatchId' ( in uint) -0:14 'result' ( temp 2-component vector of uint) -0:14 'result' ( temp 2-component vector of uint) -0:12 Function Definition: main( ( temp void) -0:12 Function Parameters: -0:? Sequence -0:12 move second child to first child ( temp uint) -0:? 'dispatchId' ( temp uint) -0:? Construct uint ( temp uint) -0:? 'dispatchId' ( in 3-component vector of uint GlobalInvocationID) -0:12 Function Call: @main(u1; ( temp void) -0:? 'dispatchId' ( temp uint) -0:? Linker Objects -0:? 'g_input' (layout( binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:? 'g_output' (layout( binding=1 rg32ui) uniform uimageBuffer) -0:? 'dispatchId' ( in 3-component vector of uint GlobalInvocationID) - - -Linked compute stage: - - -Shader version: 500 -local_size = (256, 1, 1) -0:? Sequence -0:5 Function Definition: testLoad(u1;block--u1[0]1; ( temp 2-component vector of uint) -0:5 Function Parameters: -0:5 'loc' ( in uint) -0:5 'buffer' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:? Sequence -0:6 Sequence -0:6 move second child to first child ( temp 2-component vector of uint) -0:6 'result' ( temp 2-component vector of uint) -0:? Sequence -0:6 move second child to first child ( temp int) -0:6 'byteAddrTemp' ( temp int) -0:6 right-shift ( temp int) -0:6 'loc' ( in uint) -0:6 Constant: -0:6 2 (const int) -0:? Construct vec2 ( temp 2-component vector of uint) -0:6 indirect index ( temp uint) -0:6 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:6 'buffer' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:6 Constant: -0:6 0 (const uint) -0:6 'byteAddrTemp' ( temp int) -0:6 indirect index ( temp uint) -0:6 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:6 'buffer' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:6 Constant: -0:6 0 (const uint) -0:6 add ( temp int) -0:6 'byteAddrTemp' ( temp int) -0:6 Constant: -0:6 1 (const int) -0:7 Branch: Return with expression -0:7 'result' ( temp 2-component vector of uint) -0:12 Function Definition: @main(u1; ( temp void) -0:12 Function Parameters: -0:12 'dispatchId' ( in uint) -0:? Sequence -0:13 Sequence -0:13 move second child to first child ( temp 2-component vector of uint) -0:13 'result' ( temp 2-component vector of uint) -0:13 Function Call: testLoad(u1;block--u1[0]1; ( temp 2-component vector of uint) -0:13 'dispatchId' ( in uint) -0:13 'g_input' (layout( binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:14 Sequence -0:14 imageStore ( temp void) -0:14 'g_output' (layout( binding=1 rg32ui) uniform uimageBuffer) -0:14 'dispatchId' ( in uint) -0:14 'result' ( temp 2-component vector of uint) -0:14 'result' ( temp 2-component vector of uint) -0:12 Function Definition: main( ( temp void) -0:12 Function Parameters: -0:? Sequence -0:12 move second child to first child ( temp uint) -0:? 'dispatchId' ( temp uint) -0:? Construct uint ( temp uint) -0:? 'dispatchId' ( in 3-component vector of uint GlobalInvocationID) -0:12 Function Call: @main(u1; ( temp void) -0:? 'dispatchId' ( temp uint) -0:? Linker Objects -0:? 'g_input' (layout( binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:? 'g_output' (layout( binding=1 rg32ui) uniform uimageBuffer) -0:? 'dispatchId' ( in 3-component vector of uint GlobalInvocationID) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 63 - - Capability Shader - Capability ImageBuffer - Capability StorageImageExtendedFormats - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 57 - ExecutionMode 4 LocalSize 256 1 1 - Source HLSL 500 - Name 4 "main" - Name 9 "" - MemberName 9 0 "@data" - Name 15 "testLoad(u1;block--u1[0]1;" - Name 13 "loc" - Name 14 "buffer" - Name 19 "@main(u1;" - Name 18 "dispatchId" - Name 22 "result" - Name 25 "byteAddrTemp" - Name 43 "result" - Name 44 "g_input" - Name 45 "param" - Name 50 "g_output" - Name 54 "dispatchId" - Name 57 "dispatchId" - Name 60 "param" - Decorate 8 ArrayStride 4 - MemberDecorate 9 0 NonWritable - MemberDecorate 9 0 Offset 0 - Decorate 9 BufferBlock - Decorate 14(buffer) NonWritable - Decorate 44(g_input) DescriptorSet 0 - Decorate 44(g_input) Binding 0 - Decorate 50(g_output) DescriptorSet 0 - Decorate 50(g_output) Binding 1 - Decorate 57(dispatchId) BuiltIn GlobalInvocationId - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 8: TypeRuntimeArray 6(int) - 9: TypeStruct 8 - 10: TypePointer Uniform 9(struct) - 11: TypeVector 6(int) 2 - 12: TypeFunction 11(ivec2) 7(ptr) 10(ptr) - 17: TypeFunction 2 7(ptr) - 21: TypePointer Function 11(ivec2) - 23: TypeInt 32 1 - 24: TypePointer Function 23(int) - 27: 23(int) Constant 2 - 29: 23(int) Constant 0 - 31: TypePointer Uniform 6(int) - 35: 23(int) Constant 1 - 44(g_input): 10(ptr) Variable Uniform - 48: TypeImage 6(int) Buffer nonsampled format:Rg32ui - 49: TypePointer UniformConstant 48 - 50(g_output): 49(ptr) Variable UniformConstant - 55: TypeVector 6(int) 3 - 56: TypePointer Input 55(ivec3) - 57(dispatchId): 56(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 54(dispatchId): 7(ptr) Variable Function - 60(param): 7(ptr) Variable Function - 58: 55(ivec3) Load 57(dispatchId) - 59: 6(int) CompositeExtract 58 0 - Store 54(dispatchId) 59 - 61: 6(int) Load 54(dispatchId) - Store 60(param) 61 - 62: 2 FunctionCall 19(@main(u1;) 60(param) - Return - FunctionEnd -15(testLoad(u1;block--u1[0]1;): 11(ivec2) Function None 12 - 13(loc): 7(ptr) FunctionParameter - 14(buffer): 10(ptr) FunctionParameter - 16: Label - 22(result): 21(ptr) Variable Function -25(byteAddrTemp): 24(ptr) Variable Function - 26: 6(int) Load 13(loc) - 28: 23(int) ShiftRightLogical 26 27 - Store 25(byteAddrTemp) 28 - 30: 23(int) Load 25(byteAddrTemp) - 32: 31(ptr) AccessChain 14(buffer) 29 30 - 33: 6(int) Load 32 - 34: 23(int) Load 25(byteAddrTemp) - 36: 23(int) IAdd 34 35 - 37: 31(ptr) AccessChain 14(buffer) 29 36 - 38: 6(int) Load 37 - 39: 11(ivec2) CompositeConstruct 33 38 - Store 22(result) 39 - 40: 11(ivec2) Load 22(result) - ReturnValue 40 - FunctionEnd - 19(@main(u1;): 2 Function None 17 - 18(dispatchId): 7(ptr) FunctionParameter - 20: Label - 43(result): 21(ptr) Variable Function - 45(param): 7(ptr) Variable Function - 46: 6(int) Load 18(dispatchId) - Store 45(param) 46 - 47: 11(ivec2) FunctionCall 15(testLoad(u1;block--u1[0]1;) 45(param) 44(g_input) - Store 43(result) 47 - 51: 48 Load 50(g_output) - 52: 6(int) Load 18(dispatchId) - 53: 11(ivec2) Load 43(result) - ImageWrite 51 52 53 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.structbuffer.frag.out b/deps/glslang/Test/baseResults/hlsl.structbuffer.frag.out deleted file mode 100644 index 294a1c6c..00000000 --- a/deps/glslang/Test/baseResults/hlsl.structbuffer.frag.out +++ /dev/null @@ -1,348 +0,0 @@ -hlsl.structbuffer.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:12 Function Definition: @main(u1; ( temp 4-component vector of float) -0:12 Function Parameters: -0:12 'pos' ( in uint) -0:? Sequence -0:13 Sequence -0:13 move second child to first child ( temp structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) -0:13 'mydata' ( temp structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) -0:13 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) -0:13 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) -0:13 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) -0:13 Constant: -0:13 0 (const uint) -0:13 'pos' ( in uint) -0:17 Sequence -0:17 move second child to first child ( temp uint) -0:17 'size' ( temp uint) -0:17 array length ( temp uint) -0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) -0:17 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) -0:17 Constant: -0:17 0 (const uint) -0:17 move second child to first child ( temp uint) -0:17 'stride' ( temp uint) -0:17 Constant: -0:17 32 (const uint) -0:19 Test condition and select ( temp void) -0:19 Condition -0:19 test: direct index for structure ( temp bool) -0:19 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) -0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) -0:19 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) -0:19 Constant: -0:19 0 (const uint) -0:19 'pos' ( in uint) -0:19 Constant: -0:19 1 (const int) -0:19 true case -0:20 Branch: Return with expression -0:20 Construct vec4 ( temp 4-component vector of float) -0:20 add ( temp 3-component vector of float) -0:20 color: direct index for structure ( temp 3-component vector of float) -0:20 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) -0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) -0:20 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) -0:20 Constant: -0:20 0 (const uint) -0:20 'pos' ( in uint) -0:20 Constant: -0:20 0 (const int) -0:20 indirect index (layout( row_major std430) buffer float) -0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) -0:20 'sbuf2' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) -0:20 Constant: -0:20 0 (const uint) -0:20 'pos' ( in uint) -0:20 Constant: -0:20 0.000000 -0:19 false case -0:22 Branch: Return with expression -0:22 Construct vec4 ( temp 4-component vector of float) -0:22 add ( temp float) -0:22 add ( temp float) -0:22 direct index ( temp float) -0:22 color: direct index for structure ( temp 3-component vector of float) -0:22 'mydata' ( temp structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 0 (const int) -0:22 Convert uint to float ( temp float) -0:22 'size' ( temp uint) -0:22 Convert uint to float ( temp float) -0:22 'stride' ( temp uint) -0:12 Function Definition: main( ( temp void) -0:12 Function Parameters: -0:? Sequence -0:12 move second child to first child ( temp uint) -0:? 'pos' ( temp uint) -0:? 'pos' (layout( location=0) flat in uint) -0:12 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:12 Function Call: @main(u1; ( temp 4-component vector of float) -0:? 'pos' ( temp uint) -0:? Linker Objects -0:? 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) -0:? 'sbuf2' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'pos' (layout( location=0) flat in uint) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:12 Function Definition: @main(u1; ( temp 4-component vector of float) -0:12 Function Parameters: -0:12 'pos' ( in uint) -0:? Sequence -0:13 Sequence -0:13 move second child to first child ( temp structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) -0:13 'mydata' ( temp structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) -0:13 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) -0:13 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) -0:13 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) -0:13 Constant: -0:13 0 (const uint) -0:13 'pos' ( in uint) -0:17 Sequence -0:17 move second child to first child ( temp uint) -0:17 'size' ( temp uint) -0:17 array length ( temp uint) -0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) -0:17 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) -0:17 Constant: -0:17 0 (const uint) -0:17 move second child to first child ( temp uint) -0:17 'stride' ( temp uint) -0:17 Constant: -0:17 32 (const uint) -0:19 Test condition and select ( temp void) -0:19 Condition -0:19 test: direct index for structure ( temp bool) -0:19 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) -0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) -0:19 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) -0:19 Constant: -0:19 0 (const uint) -0:19 'pos' ( in uint) -0:19 Constant: -0:19 1 (const int) -0:19 true case -0:20 Branch: Return with expression -0:20 Construct vec4 ( temp 4-component vector of float) -0:20 add ( temp 3-component vector of float) -0:20 color: direct index for structure ( temp 3-component vector of float) -0:20 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) -0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) -0:20 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) -0:20 Constant: -0:20 0 (const uint) -0:20 'pos' ( in uint) -0:20 Constant: -0:20 0 (const int) -0:20 indirect index (layout( row_major std430) buffer float) -0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) -0:20 'sbuf2' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) -0:20 Constant: -0:20 0 (const uint) -0:20 'pos' ( in uint) -0:20 Constant: -0:20 0.000000 -0:19 false case -0:22 Branch: Return with expression -0:22 Construct vec4 ( temp 4-component vector of float) -0:22 add ( temp float) -0:22 add ( temp float) -0:22 direct index ( temp float) -0:22 color: direct index for structure ( temp 3-component vector of float) -0:22 'mydata' ( temp structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 0 (const int) -0:22 Convert uint to float ( temp float) -0:22 'size' ( temp uint) -0:22 Convert uint to float ( temp float) -0:22 'stride' ( temp uint) -0:12 Function Definition: main( ( temp void) -0:12 Function Parameters: -0:? Sequence -0:12 move second child to first child ( temp uint) -0:? 'pos' ( temp uint) -0:? 'pos' (layout( location=0) flat in uint) -0:12 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:12 Function Call: @main(u1; ( temp 4-component vector of float) -0:? 'pos' ( temp uint) -0:? Linker Objects -0:? 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) -0:? 'sbuf2' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'pos' (layout( location=0) flat in uint) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 96 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 89 92 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 12 "@main(u1;" - Name 11 "pos" - Name 16 "sb_t" - MemberName 16(sb_t) 0 "color" - MemberName 16(sb_t) 1 "test" - MemberName 16(sb_t) 2 "test2" - Name 18 "mydata" - Name 19 "sb_t" - MemberName 19(sb_t) 0 "color" - MemberName 19(sb_t) 1 "test" - MemberName 19(sb_t) 2 "test2" - Name 21 "sbuf" - MemberName 21(sbuf) 0 "@data" - Name 23 "sbuf" - Name 43 "size" - Name 45 "stride" - Name 59 "sbuf2" - MemberName 59(sbuf2) 0 "@data" - Name 61 "sbuf2" - Name 87 "pos" - Name 89 "pos" - Name 92 "@entryPointOutput" - Name 93 "param" - MemberDecorate 19(sb_t) 0 Offset 0 - MemberDecorate 19(sb_t) 1 Offset 12 - MemberDecorate 19(sb_t) 2 Offset 16 - Decorate 20 ArrayStride 32 - MemberDecorate 21(sbuf) 0 NonWritable - MemberDecorate 21(sbuf) 0 Offset 0 - Decorate 21(sbuf) BufferBlock - Decorate 23(sbuf) DescriptorSet 0 - Decorate 23(sbuf) Binding 10 - Decorate 58 ArrayStride 4 - MemberDecorate 59(sbuf2) 0 NonWritable - MemberDecorate 59(sbuf2) 0 Offset 0 - Decorate 59(sbuf2) BufferBlock - Decorate 61(sbuf2) DescriptorSet 0 - Decorate 61(sbuf2) Binding 0 - Decorate 89(pos) Flat - Decorate 89(pos) Location 0 - Decorate 92(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 8: TypeFloat 32 - 9: TypeVector 8(float) 4 - 10: TypeFunction 9(fvec4) 7(ptr) - 14: TypeVector 8(float) 3 - 15: TypeBool - 16(sb_t): TypeStruct 14(fvec3) 15(bool) 15(bool) - 17: TypePointer Function 16(sb_t) - 19(sb_t): TypeStruct 14(fvec3) 6(int) 6(int) - 20: TypeRuntimeArray 19(sb_t) - 21(sbuf): TypeStruct 20 - 22: TypePointer Uniform 21(sbuf) - 23(sbuf): 22(ptr) Variable Uniform - 24: TypeInt 32 1 - 25: 24(int) Constant 0 - 27: TypePointer Uniform 19(sb_t) - 31: TypePointer Function 14(fvec3) - 34: 24(int) Constant 1 - 35: 6(int) Constant 0 - 37: TypePointer Function 15(bool) - 40: 24(int) Constant 2 - 46: 6(int) Constant 32 - 48: TypePointer Uniform 6(int) - 55: TypePointer Uniform 14(fvec3) - 58: TypeRuntimeArray 8(float) - 59(sbuf2): TypeStruct 58 - 60: TypePointer Uniform 59(sbuf2) - 61(sbuf2): 60(ptr) Variable Uniform - 63: TypePointer Uniform 8(float) - 68: 8(float) Constant 0 - 75: TypePointer Function 8(float) - 88: TypePointer Input 6(int) - 89(pos): 88(ptr) Variable Input - 91: TypePointer Output 9(fvec4) -92(@entryPointOutput): 91(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 87(pos): 7(ptr) Variable Function - 93(param): 7(ptr) Variable Function - 90: 6(int) Load 89(pos) - Store 87(pos) 90 - 94: 6(int) Load 87(pos) - Store 93(param) 94 - 95: 9(fvec4) FunctionCall 12(@main(u1;) 93(param) - Store 92(@entryPointOutput) 95 - Return - FunctionEnd - 12(@main(u1;): 9(fvec4) Function None 10 - 11(pos): 7(ptr) FunctionParameter - 13: Label - 18(mydata): 17(ptr) Variable Function - 43(size): 7(ptr) Variable Function - 45(stride): 7(ptr) Variable Function - 26: 6(int) Load 11(pos) - 28: 27(ptr) AccessChain 23(sbuf) 25 26 - 29: 19(sb_t) Load 28 - 30: 14(fvec3) CompositeExtract 29 0 - 32: 31(ptr) AccessChain 18(mydata) 25 - Store 32 30 - 33: 6(int) CompositeExtract 29 1 - 36: 15(bool) INotEqual 33 35 - 38: 37(ptr) AccessChain 18(mydata) 34 - Store 38 36 - 39: 6(int) CompositeExtract 29 2 - 41: 15(bool) INotEqual 39 35 - 42: 37(ptr) AccessChain 18(mydata) 40 - Store 42 41 - 44: 6(int) ArrayLength 23(sbuf) 0 - Store 43(size) 44 - Store 45(stride) 46 - 47: 6(int) Load 11(pos) - 49: 48(ptr) AccessChain 23(sbuf) 25 47 34 - 50: 6(int) Load 49 - 51: 15(bool) INotEqual 50 35 - SelectionMerge 53 None - BranchConditional 51 52 74 - 52: Label - 54: 6(int) Load 11(pos) - 56: 55(ptr) AccessChain 23(sbuf) 25 54 25 - 57: 14(fvec3) Load 56 - 62: 6(int) Load 11(pos) - 64: 63(ptr) AccessChain 61(sbuf2) 25 62 - 65: 8(float) Load 64 - 66: 14(fvec3) CompositeConstruct 65 65 65 - 67: 14(fvec3) FAdd 57 66 - 69: 8(float) CompositeExtract 67 0 - 70: 8(float) CompositeExtract 67 1 - 71: 8(float) CompositeExtract 67 2 - 72: 9(fvec4) CompositeConstruct 69 70 71 68 - ReturnValue 72 - 74: Label - 76: 75(ptr) AccessChain 18(mydata) 25 35 - 77: 8(float) Load 76 - 78: 6(int) Load 43(size) - 79: 8(float) ConvertUToF 78 - 80: 8(float) FAdd 77 79 - 81: 6(int) Load 45(stride) - 82: 8(float) ConvertUToF 81 - 83: 8(float) FAdd 80 82 - 84: 9(fvec4) CompositeConstruct 83 83 83 83 - ReturnValue 84 - 53: Label - Unreachable - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.structbuffer.incdec.frag.hlslfun1.out b/deps/glslang/Test/baseResults/hlsl.structbuffer.incdec.frag.hlslfun1.out deleted file mode 100644 index 23b21256..00000000 --- a/deps/glslang/Test/baseResults/hlsl.structbuffer.incdec.frag.hlslfun1.out +++ /dev/null @@ -1,130 +0,0 @@ -hlsl.structbuffer.incdec.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 70 - - Capability Shader - Extension "SPV_GOOGLE_hlsl_functionality1" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 63 66 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 12 "@main(u1;" - Name 11 "pos" - Name 16 "result" - Name 20 "sbuf_rw_i" - MemberName 20(sbuf_rw_i) 0 "@data" - Name 22 "sbuf_rw_i" - Name 26 "sbuf_rw_d" - Name 27 "sbuf_rw_nocounter" - Name 33 "c1" - Name 34 "sbuf_rw_i@count" - MemberName 34(sbuf_rw_i@count) 0 "@count" - Name 36 "sbuf_rw_i@count" - Name 41 "c2" - Name 42 "sbuf_rw_d@count" - Name 61 "pos" - Name 63 "pos" - Name 66 "@entryPointOutput" - Name 67 "param" - Decorate 19 ArrayStride 16 - MemberDecorate 20(sbuf_rw_i) 0 Offset 0 - Decorate 20(sbuf_rw_i) BufferBlock - Decorate 22(sbuf_rw_i) DescriptorSet 0 - Decorate 22(sbuf_rw_i) Binding 0 - Decorate 26(sbuf_rw_d) DescriptorSet 0 - Decorate 26(sbuf_rw_d) Binding 0 - Decorate 27(sbuf_rw_nocounter) DescriptorSet 0 - Decorate 27(sbuf_rw_nocounter) Binding 0 - MemberDecorate 34(sbuf_rw_i@count) 0 Offset 0 - Decorate 34(sbuf_rw_i@count) BufferBlock - Decorate 36(sbuf_rw_i@count) DescriptorSet 0 - Decorate 36(sbuf_rw_i@count) Binding 0 - Decorate 42(sbuf_rw_d@count) DescriptorSet 0 - Decorate 42(sbuf_rw_d@count) Binding 0 - Decorate 63(pos) Flat - Decorate 63(pos) Location 0 - DecorateStringGOOGLE 63(pos) DecorationHlslSemanticGOOGLE "FOO" - Decorate 66(@entryPointOutput) Location 0 - DecorateStringGOOGLE 66(@entryPointOutput) DecorationHlslSemanticGOOGLE "SV_TARGET0" - DecorateId 22(sbuf_rw_i) DecorationHlslCounterBufferGOOGLE 36(sbuf_rw_i@count) - DecorateId 26(sbuf_rw_d) DecorationHlslCounterBufferGOOGLE 42(sbuf_rw_d@count) - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 8: TypeFloat 32 - 9: TypeVector 8(float) 4 - 10: TypeFunction 9(fvec4) 7(ptr) - 14: TypeVector 6(int) 4 - 15: TypePointer Function 14(ivec4) - 17: 6(int) Constant 0 - 18: 14(ivec4) ConstantComposite 17 17 17 17 - 19: TypeRuntimeArray 14(ivec4) - 20(sbuf_rw_i): TypeStruct 19 - 21: TypePointer Uniform 20(sbuf_rw_i) - 22(sbuf_rw_i): 21(ptr) Variable Uniform - 23: TypeInt 32 1 - 24: 23(int) Constant 0 - 25: 23(int) Constant 7 - 26(sbuf_rw_d): 21(ptr) Variable Uniform -27(sbuf_rw_nocounter): 21(ptr) Variable Uniform - 28: 23(int) Constant 5 - 29: 6(int) Constant 2 - 30: 14(ivec4) ConstantComposite 29 29 29 29 - 31: TypePointer Uniform 14(ivec4) -34(sbuf_rw_i@count): TypeStruct 6(int) - 35: TypePointer Uniform 34(sbuf_rw_i@count) -36(sbuf_rw_i@count): 35(ptr) Variable Uniform - 37: TypePointer Uniform 6(int) - 39: 6(int) Constant 1 -42(sbuf_rw_d@count): 35(ptr) Variable Uniform - 44: 6(int) Constant 4294967295 - 46: 23(int) Constant 4294967295 - 62: TypePointer Input 6(int) - 63(pos): 62(ptr) Variable Input - 65: TypePointer Output 9(fvec4) -66(@entryPointOutput): 65(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 61(pos): 7(ptr) Variable Function - 67(param): 7(ptr) Variable Function - 64: 6(int) Load 63(pos) - Store 61(pos) 64 - 68: 6(int) Load 61(pos) - Store 67(param) 68 - 69: 9(fvec4) FunctionCall 12(@main(u1;) 67(param) - Store 66(@entryPointOutput) 69 - Return - FunctionEnd - 12(@main(u1;): 9(fvec4) Function None 10 - 11(pos): 7(ptr) FunctionParameter - 13: Label - 16(result): 15(ptr) Variable Function - 33(c1): 7(ptr) Variable Function - 41(c2): 7(ptr) Variable Function - Store 16(result) 18 - 32: 31(ptr) AccessChain 27(sbuf_rw_nocounter) 24 28 - Store 32 30 - 38: 37(ptr) AccessChain 36(sbuf_rw_i@count) 24 - 40: 6(int) AtomicIAdd 38 39 17 39 - Store 33(c1) 40 - 43: 37(ptr) AccessChain 42(sbuf_rw_d@count) 24 - 45: 6(int) AtomicIAdd 43 39 17 44 - 47: 6(int) IAdd 45 46 - Store 41(c2) 47 - 48: 7(ptr) AccessChain 16(result) 17 - 49: 6(int) Load 48 - 50: 8(float) ConvertUToF 49 - 51: 7(ptr) AccessChain 16(result) 39 - 52: 6(int) Load 51 - 53: 8(float) ConvertUToF 52 - 54: 6(int) Load 33(c1) - 55: 8(float) ConvertUToF 54 - 56: 6(int) Load 41(c2) - 57: 8(float) ConvertUToF 56 - 58: 9(fvec4) CompositeConstruct 50 53 55 57 - ReturnValue 58 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.structbuffer.incdec.frag.out b/deps/glslang/Test/baseResults/hlsl.structbuffer.incdec.frag.out deleted file mode 100644 index 26057779..00000000 --- a/deps/glslang/Test/baseResults/hlsl.structbuffer.incdec.frag.out +++ /dev/null @@ -1,329 +0,0 @@ -hlsl.structbuffer.incdec.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:7 Function Definition: @main(u1; ( temp 4-component vector of float) -0:7 Function Parameters: -0:7 'pos' ( in uint) -0:? Sequence -0:8 Sequence -0:8 move second child to first child ( temp 4-component vector of uint) -0:8 'result' ( temp 4-component vector of uint) -0:8 Constant: -0:8 0 (const uint) -0:8 0 (const uint) -0:8 0 (const uint) -0:8 0 (const uint) -0:10 direct index (layout( row_major std430) buffer 4-component vector of uint) -0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint) -0:10 'sbuf_rw_i' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) -0:10 Constant: -0:10 0 (const uint) -0:10 Constant: -0:10 7 (const int) -0:11 direct index (layout( row_major std430) buffer 4-component vector of uint) -0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint) -0:11 'sbuf_rw_d' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 Constant: -0:11 7 (const int) -0:13 move second child to first child ( temp 4-component vector of uint) -0:13 direct index (layout( row_major std430) buffer 4-component vector of uint) -0:13 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint) -0:13 'sbuf_rw_nocounter' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) -0:13 Constant: -0:13 0 (const uint) -0:13 Constant: -0:13 5 (const int) -0:13 Constant: -0:13 2 (const uint) -0:13 2 (const uint) -0:13 2 (const uint) -0:13 2 (const uint) -0:15 Sequence -0:15 move second child to first child ( temp uint) -0:15 'c1' ( temp uint) -0:15 AtomicAdd ( temp uint) -0:15 @count: direct index for structure ( temp uint) -0:15 'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 1 (const uint) -0:16 Sequence -0:16 move second child to first child ( temp uint) -0:16 'c2' ( temp uint) -0:16 add ( temp uint) -0:16 AtomicAdd ( temp uint) -0:16 @count: direct index for structure ( temp uint) -0:16 'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 4294967295 (const uint) -0:16 Constant: -0:16 -1 (const int) -0:18 Branch: Return with expression -0:18 Construct vec4 ( temp 4-component vector of float) -0:18 Convert uint to float ( temp float) -0:18 direct index ( temp uint) -0:18 'result' ( temp 4-component vector of uint) -0:18 Constant: -0:18 0 (const int) -0:18 Convert uint to float ( temp float) -0:18 direct index ( temp uint) -0:18 'result' ( temp 4-component vector of uint) -0:18 Constant: -0:18 1 (const int) -0:18 Convert uint to float ( temp float) -0:18 'c1' ( temp uint) -0:18 Convert uint to float ( temp float) -0:18 'c2' ( temp uint) -0:7 Function Definition: main( ( temp void) -0:7 Function Parameters: -0:? Sequence -0:7 move second child to first child ( temp uint) -0:? 'pos' ( temp uint) -0:? 'pos' (layout( location=0) flat in uint) -0:7 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:7 Function Call: @main(u1; ( temp 4-component vector of float) -0:? 'pos' ( temp uint) -0:? Linker Objects -0:? 'sbuf_rw_i' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) -0:? 'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) -0:? 'sbuf_rw_d' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) -0:? 'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) -0:? 'sbuf_rw_nocounter' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'pos' (layout( location=0) flat in uint) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:7 Function Definition: @main(u1; ( temp 4-component vector of float) -0:7 Function Parameters: -0:7 'pos' ( in uint) -0:? Sequence -0:8 Sequence -0:8 move second child to first child ( temp 4-component vector of uint) -0:8 'result' ( temp 4-component vector of uint) -0:8 Constant: -0:8 0 (const uint) -0:8 0 (const uint) -0:8 0 (const uint) -0:8 0 (const uint) -0:10 direct index (layout( row_major std430) buffer 4-component vector of uint) -0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint) -0:10 'sbuf_rw_i' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) -0:10 Constant: -0:10 0 (const uint) -0:10 Constant: -0:10 7 (const int) -0:11 direct index (layout( row_major std430) buffer 4-component vector of uint) -0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint) -0:11 'sbuf_rw_d' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 Constant: -0:11 7 (const int) -0:13 move second child to first child ( temp 4-component vector of uint) -0:13 direct index (layout( row_major std430) buffer 4-component vector of uint) -0:13 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint) -0:13 'sbuf_rw_nocounter' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) -0:13 Constant: -0:13 0 (const uint) -0:13 Constant: -0:13 5 (const int) -0:13 Constant: -0:13 2 (const uint) -0:13 2 (const uint) -0:13 2 (const uint) -0:13 2 (const uint) -0:15 Sequence -0:15 move second child to first child ( temp uint) -0:15 'c1' ( temp uint) -0:15 AtomicAdd ( temp uint) -0:15 @count: direct index for structure ( temp uint) -0:15 'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 1 (const uint) -0:16 Sequence -0:16 move second child to first child ( temp uint) -0:16 'c2' ( temp uint) -0:16 add ( temp uint) -0:16 AtomicAdd ( temp uint) -0:16 @count: direct index for structure ( temp uint) -0:16 'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 4294967295 (const uint) -0:16 Constant: -0:16 -1 (const int) -0:18 Branch: Return with expression -0:18 Construct vec4 ( temp 4-component vector of float) -0:18 Convert uint to float ( temp float) -0:18 direct index ( temp uint) -0:18 'result' ( temp 4-component vector of uint) -0:18 Constant: -0:18 0 (const int) -0:18 Convert uint to float ( temp float) -0:18 direct index ( temp uint) -0:18 'result' ( temp 4-component vector of uint) -0:18 Constant: -0:18 1 (const int) -0:18 Convert uint to float ( temp float) -0:18 'c1' ( temp uint) -0:18 Convert uint to float ( temp float) -0:18 'c2' ( temp uint) -0:7 Function Definition: main( ( temp void) -0:7 Function Parameters: -0:? Sequence -0:7 move second child to first child ( temp uint) -0:? 'pos' ( temp uint) -0:? 'pos' (layout( location=0) flat in uint) -0:7 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:7 Function Call: @main(u1; ( temp 4-component vector of float) -0:? 'pos' ( temp uint) -0:? Linker Objects -0:? 'sbuf_rw_i' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) -0:? 'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) -0:? 'sbuf_rw_d' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) -0:? 'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) -0:? 'sbuf_rw_nocounter' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'pos' (layout( location=0) flat in uint) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 70 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 63 66 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 12 "@main(u1;" - Name 11 "pos" - Name 16 "result" - Name 20 "sbuf_rw_i" - MemberName 20(sbuf_rw_i) 0 "@data" - Name 22 "sbuf_rw_i" - Name 26 "sbuf_rw_d" - Name 27 "sbuf_rw_nocounter" - Name 33 "c1" - Name 34 "sbuf_rw_i@count" - MemberName 34(sbuf_rw_i@count) 0 "@count" - Name 36 "sbuf_rw_i@count" - Name 41 "c2" - Name 42 "sbuf_rw_d@count" - Name 61 "pos" - Name 63 "pos" - Name 66 "@entryPointOutput" - Name 67 "param" - Decorate 19 ArrayStride 16 - MemberDecorate 20(sbuf_rw_i) 0 Offset 0 - Decorate 20(sbuf_rw_i) BufferBlock - Decorate 22(sbuf_rw_i) DescriptorSet 0 - Decorate 22(sbuf_rw_i) Binding 0 - Decorate 26(sbuf_rw_d) DescriptorSet 0 - Decorate 26(sbuf_rw_d) Binding 2 - Decorate 27(sbuf_rw_nocounter) DescriptorSet 0 - Decorate 27(sbuf_rw_nocounter) Binding 4 - MemberDecorate 34(sbuf_rw_i@count) 0 Offset 0 - Decorate 34(sbuf_rw_i@count) BufferBlock - Decorate 36(sbuf_rw_i@count) DescriptorSet 0 - Decorate 36(sbuf_rw_i@count) Binding 1 - Decorate 42(sbuf_rw_d@count) DescriptorSet 0 - Decorate 42(sbuf_rw_d@count) Binding 3 - Decorate 63(pos) Flat - Decorate 63(pos) Location 0 - Decorate 66(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 8: TypeFloat 32 - 9: TypeVector 8(float) 4 - 10: TypeFunction 9(fvec4) 7(ptr) - 14: TypeVector 6(int) 4 - 15: TypePointer Function 14(ivec4) - 17: 6(int) Constant 0 - 18: 14(ivec4) ConstantComposite 17 17 17 17 - 19: TypeRuntimeArray 14(ivec4) - 20(sbuf_rw_i): TypeStruct 19 - 21: TypePointer Uniform 20(sbuf_rw_i) - 22(sbuf_rw_i): 21(ptr) Variable Uniform - 23: TypeInt 32 1 - 24: 23(int) Constant 0 - 25: 23(int) Constant 7 - 26(sbuf_rw_d): 21(ptr) Variable Uniform -27(sbuf_rw_nocounter): 21(ptr) Variable Uniform - 28: 23(int) Constant 5 - 29: 6(int) Constant 2 - 30: 14(ivec4) ConstantComposite 29 29 29 29 - 31: TypePointer Uniform 14(ivec4) -34(sbuf_rw_i@count): TypeStruct 6(int) - 35: TypePointer Uniform 34(sbuf_rw_i@count) -36(sbuf_rw_i@count): 35(ptr) Variable Uniform - 37: TypePointer Uniform 6(int) - 39: 6(int) Constant 1 -42(sbuf_rw_d@count): 35(ptr) Variable Uniform - 44: 6(int) Constant 4294967295 - 46: 23(int) Constant 4294967295 - 62: TypePointer Input 6(int) - 63(pos): 62(ptr) Variable Input - 65: TypePointer Output 9(fvec4) -66(@entryPointOutput): 65(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 61(pos): 7(ptr) Variable Function - 67(param): 7(ptr) Variable Function - 64: 6(int) Load 63(pos) - Store 61(pos) 64 - 68: 6(int) Load 61(pos) - Store 67(param) 68 - 69: 9(fvec4) FunctionCall 12(@main(u1;) 67(param) - Store 66(@entryPointOutput) 69 - Return - FunctionEnd - 12(@main(u1;): 9(fvec4) Function None 10 - 11(pos): 7(ptr) FunctionParameter - 13: Label - 16(result): 15(ptr) Variable Function - 33(c1): 7(ptr) Variable Function - 41(c2): 7(ptr) Variable Function - Store 16(result) 18 - 32: 31(ptr) AccessChain 27(sbuf_rw_nocounter) 24 28 - Store 32 30 - 38: 37(ptr) AccessChain 36(sbuf_rw_i@count) 24 - 40: 6(int) AtomicIAdd 38 39 17 39 - Store 33(c1) 40 - 43: 37(ptr) AccessChain 42(sbuf_rw_d@count) 24 - 45: 6(int) AtomicIAdd 43 39 17 44 - 47: 6(int) IAdd 45 46 - Store 41(c2) 47 - 48: 7(ptr) AccessChain 16(result) 17 - 49: 6(int) Load 48 - 50: 8(float) ConvertUToF 49 - 51: 7(ptr) AccessChain 16(result) 39 - 52: 6(int) Load 51 - 53: 8(float) ConvertUToF 52 - 54: 6(int) Load 33(c1) - 55: 8(float) ConvertUToF 54 - 56: 6(int) Load 41(c2) - 57: 8(float) ConvertUToF 56 - 58: 9(fvec4) CompositeConstruct 50 53 55 57 - ReturnValue 58 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.structbuffer.rw.frag.out b/deps/glslang/Test/baseResults/hlsl.structbuffer.rw.frag.out deleted file mode 100644 index 1eb98aa1..00000000 --- a/deps/glslang/Test/baseResults/hlsl.structbuffer.rw.frag.out +++ /dev/null @@ -1,307 +0,0 @@ -hlsl.structbuffer.rw.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:12 Function Definition: @main(u1; ( temp 4-component vector of float) -0:12 Function Parameters: -0:12 'pos' ( in uint) -0:? Sequence -0:13 move second child to first child ( temp float) -0:13 indirect index (layout( row_major std430) buffer float) -0:13 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) -0:13 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) -0:13 Constant: -0:13 0 (const uint) -0:13 add ( temp uint) -0:13 'pos' ( in uint) -0:13 Constant: -0:13 1 (const uint) -0:13 Constant: -0:13 42.000000 -0:17 Sequence -0:17 move second child to first child ( temp uint) -0:17 'size' ( temp uint) -0:17 array length ( temp uint) -0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) -0:17 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) -0:17 Constant: -0:17 0 (const uint) -0:17 move second child to first child ( temp uint) -0:17 'stride' ( temp uint) -0:17 Constant: -0:17 16 (const uint) -0:19 Test condition and select ( temp void) -0:19 Condition -0:19 test: direct index for structure ( temp bool) -0:19 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test}) -0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) -0:19 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) -0:19 Constant: -0:19 0 (const uint) -0:19 'pos' ( in uint) -0:19 Constant: -0:19 1 (const int) -0:19 true case -0:20 Branch: Return with expression -0:20 Construct vec4 ( temp 4-component vector of float) -0:20 add ( temp 3-component vector of float) -0:20 color: direct index for structure ( temp 3-component vector of float) -0:20 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test}) -0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) -0:20 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) -0:20 Constant: -0:20 0 (const uint) -0:20 'pos' ( in uint) -0:20 Constant: -0:20 0 (const int) -0:20 indirect index (layout( row_major std430) buffer float) -0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) -0:20 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) -0:20 Constant: -0:20 0 (const uint) -0:20 'pos' ( in uint) -0:20 Constant: -0:20 0.000000 -0:19 false case -0:22 Branch: Return with expression -0:22 Construct vec4 ( temp 4-component vector of float) -0:22 Convert uint to float ( temp float) -0:22 add ( temp uint) -0:22 'size' ( temp uint) -0:22 'stride' ( temp uint) -0:12 Function Definition: main( ( temp void) -0:12 Function Parameters: -0:? Sequence -0:12 move second child to first child ( temp uint) -0:? 'pos' ( temp uint) -0:? 'pos' (layout( location=0) flat in uint) -0:12 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:12 Function Call: @main(u1; ( temp 4-component vector of float) -0:? 'pos' ( temp uint) -0:? Linker Objects -0:? 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) -0:? 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'pos' (layout( location=0) flat in uint) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:12 Function Definition: @main(u1; ( temp 4-component vector of float) -0:12 Function Parameters: -0:12 'pos' ( in uint) -0:? Sequence -0:13 move second child to first child ( temp float) -0:13 indirect index (layout( row_major std430) buffer float) -0:13 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) -0:13 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) -0:13 Constant: -0:13 0 (const uint) -0:13 add ( temp uint) -0:13 'pos' ( in uint) -0:13 Constant: -0:13 1 (const uint) -0:13 Constant: -0:13 42.000000 -0:17 Sequence -0:17 move second child to first child ( temp uint) -0:17 'size' ( temp uint) -0:17 array length ( temp uint) -0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) -0:17 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) -0:17 Constant: -0:17 0 (const uint) -0:17 move second child to first child ( temp uint) -0:17 'stride' ( temp uint) -0:17 Constant: -0:17 16 (const uint) -0:19 Test condition and select ( temp void) -0:19 Condition -0:19 test: direct index for structure ( temp bool) -0:19 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test}) -0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) -0:19 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) -0:19 Constant: -0:19 0 (const uint) -0:19 'pos' ( in uint) -0:19 Constant: -0:19 1 (const int) -0:19 true case -0:20 Branch: Return with expression -0:20 Construct vec4 ( temp 4-component vector of float) -0:20 add ( temp 3-component vector of float) -0:20 color: direct index for structure ( temp 3-component vector of float) -0:20 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test}) -0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) -0:20 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) -0:20 Constant: -0:20 0 (const uint) -0:20 'pos' ( in uint) -0:20 Constant: -0:20 0 (const int) -0:20 indirect index (layout( row_major std430) buffer float) -0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) -0:20 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) -0:20 Constant: -0:20 0 (const uint) -0:20 'pos' ( in uint) -0:20 Constant: -0:20 0.000000 -0:19 false case -0:22 Branch: Return with expression -0:22 Construct vec4 ( temp 4-component vector of float) -0:22 Convert uint to float ( temp float) -0:22 add ( temp uint) -0:22 'size' ( temp uint) -0:22 'stride' ( temp uint) -0:12 Function Definition: main( ( temp void) -0:12 Function Parameters: -0:? Sequence -0:12 move second child to first child ( temp uint) -0:? 'pos' ( temp uint) -0:? 'pos' (layout( location=0) flat in uint) -0:12 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:12 Function Call: @main(u1; ( temp 4-component vector of float) -0:? 'pos' ( temp uint) -0:? Linker Objects -0:? 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) -0:? 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'pos' (layout( location=0) flat in uint) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 78 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 71 74 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 12 "@main(u1;" - Name 11 "pos" - Name 15 "sbuf2" - MemberName 15(sbuf2) 0 "@data" - Name 17 "sbuf2" - Name 26 "size" - Name 28 "sb_t" - MemberName 28(sb_t) 0 "color" - MemberName 28(sb_t) 1 "test" - Name 30 "sbuf" - MemberName 30(sbuf) 0 "@data" - Name 32 "sbuf" - Name 34 "stride" - Name 69 "pos" - Name 71 "pos" - Name 74 "@entryPointOutput" - Name 75 "param" - Decorate 14 ArrayStride 4 - MemberDecorate 15(sbuf2) 0 Offset 0 - Decorate 15(sbuf2) BufferBlock - Decorate 17(sbuf2) DescriptorSet 0 - Decorate 17(sbuf2) Binding 1 - MemberDecorate 28(sb_t) 0 Offset 0 - MemberDecorate 28(sb_t) 1 Offset 12 - Decorate 29 ArrayStride 16 - MemberDecorate 30(sbuf) 0 Offset 0 - Decorate 30(sbuf) BufferBlock - Decorate 32(sbuf) DescriptorSet 0 - Decorate 32(sbuf) Binding 0 - Decorate 71(pos) Flat - Decorate 71(pos) Location 0 - Decorate 74(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 8: TypeFloat 32 - 9: TypeVector 8(float) 4 - 10: TypeFunction 9(fvec4) 7(ptr) - 14: TypeRuntimeArray 8(float) - 15(sbuf2): TypeStruct 14 - 16: TypePointer Uniform 15(sbuf2) - 17(sbuf2): 16(ptr) Variable Uniform - 18: TypeInt 32 1 - 19: 18(int) Constant 0 - 21: 6(int) Constant 1 - 23: 8(float) Constant 1109917696 - 24: TypePointer Uniform 8(float) - 27: TypeVector 8(float) 3 - 28(sb_t): TypeStruct 27(fvec3) 6(int) - 29: TypeRuntimeArray 28(sb_t) - 30(sbuf): TypeStruct 29 - 31: TypePointer Uniform 30(sbuf) - 32(sbuf): 31(ptr) Variable Uniform - 35: 6(int) Constant 16 - 37: 18(int) Constant 1 - 38: TypePointer Uniform 6(int) - 41: TypeBool - 42: 6(int) Constant 0 - 47: TypePointer Uniform 27(fvec3) - 55: 8(float) Constant 0 - 70: TypePointer Input 6(int) - 71(pos): 70(ptr) Variable Input - 73: TypePointer Output 9(fvec4) -74(@entryPointOutput): 73(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 69(pos): 7(ptr) Variable Function - 75(param): 7(ptr) Variable Function - 72: 6(int) Load 71(pos) - Store 69(pos) 72 - 76: 6(int) Load 69(pos) - Store 75(param) 76 - 77: 9(fvec4) FunctionCall 12(@main(u1;) 75(param) - Store 74(@entryPointOutput) 77 - Return - FunctionEnd - 12(@main(u1;): 9(fvec4) Function None 10 - 11(pos): 7(ptr) FunctionParameter - 13: Label - 26(size): 7(ptr) Variable Function - 34(stride): 7(ptr) Variable Function - 20: 6(int) Load 11(pos) - 22: 6(int) IAdd 20 21 - 25: 24(ptr) AccessChain 17(sbuf2) 19 22 - Store 25 23 - 33: 6(int) ArrayLength 32(sbuf) 0 - Store 26(size) 33 - Store 34(stride) 35 - 36: 6(int) Load 11(pos) - 39: 38(ptr) AccessChain 32(sbuf) 19 36 37 - 40: 6(int) Load 39 - 43: 41(bool) INotEqual 40 42 - SelectionMerge 45 None - BranchConditional 43 44 61 - 44: Label - 46: 6(int) Load 11(pos) - 48: 47(ptr) AccessChain 32(sbuf) 19 46 19 - 49: 27(fvec3) Load 48 - 50: 6(int) Load 11(pos) - 51: 24(ptr) AccessChain 17(sbuf2) 19 50 - 52: 8(float) Load 51 - 53: 27(fvec3) CompositeConstruct 52 52 52 - 54: 27(fvec3) FAdd 49 53 - 56: 8(float) CompositeExtract 54 0 - 57: 8(float) CompositeExtract 54 1 - 58: 8(float) CompositeExtract 54 2 - 59: 9(fvec4) CompositeConstruct 56 57 58 55 - ReturnValue 59 - 61: Label - 62: 6(int) Load 26(size) - 63: 6(int) Load 34(stride) - 64: 6(int) IAdd 62 63 - 65: 8(float) ConvertUToF 64 - 66: 9(fvec4) CompositeConstruct 65 65 65 65 - ReturnValue 66 - 45: Label - Unreachable - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.structbuffer.rwbyte.frag.out b/deps/glslang/Test/baseResults/hlsl.structbuffer.rwbyte.frag.out deleted file mode 100644 index 337442d5..00000000 --- a/deps/glslang/Test/baseResults/hlsl.structbuffer.rwbyte.frag.out +++ /dev/null @@ -1,1307 +0,0 @@ -hlsl.structbuffer.rwbyte.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:5 Function Definition: @main(u1; ( temp 4-component vector of float) -0:5 Function Parameters: -0:5 'pos' ( in uint) -0:? Sequence -0:7 Sequence -0:7 move second child to first child ( temp uint) -0:7 'size' ( temp uint) -0:7 array length ( temp uint) -0:7 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:7 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:7 Constant: -0:7 0 (const uint) -0:? Sequence -0:9 move second child to first child ( temp int) -0:9 'byteAddrTemp' ( temp int) -0:9 right-shift ( temp int) -0:9 'pos' ( in uint) -0:9 Constant: -0:9 2 (const int) -0:9 move second child to first child ( temp uint) -0:9 indirect index (layout( row_major std430) buffer uint) -0:9 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:9 Constant: -0:9 0 (const uint) -0:9 'byteAddrTemp' ( temp int) -0:9 indirect index (layout( row_major std430) buffer uint) -0:9 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:9 Constant: -0:9 0 (const uint) -0:9 right-shift ( temp int) -0:9 'pos' ( in uint) -0:9 Constant: -0:9 2 (const int) -0:? Sequence -0:10 move second child to first child ( temp int) -0:10 'byteAddrTemp' ( temp int) -0:10 right-shift ( temp int) -0:10 'pos' ( in uint) -0:10 Constant: -0:10 2 (const int) -0:10 move second child to first child ( temp uint) -0:10 indirect index (layout( row_major std430) buffer uint) -0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:10 Constant: -0:10 0 (const uint) -0:10 'byteAddrTemp' ( temp int) -0:10 direct index ( temp uint) -0:? Sequence -0:10 move second child to first child ( temp int) -0:10 'byteAddrTemp' ( temp int) -0:10 right-shift ( temp int) -0:10 'pos' ( in uint) -0:10 Constant: -0:10 2 (const int) -0:? Construct vec2 ( temp 2-component vector of uint) -0:10 indirect index ( temp uint) -0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:10 Constant: -0:10 0 (const uint) -0:10 'byteAddrTemp' ( temp int) -0:10 indirect index ( temp uint) -0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:10 Constant: -0:10 0 (const uint) -0:10 add ( temp int) -0:10 'byteAddrTemp' ( temp int) -0:10 Constant: -0:10 1 (const int) -0:10 Constant: -0:10 0 (const int) -0:10 move second child to first child ( temp uint) -0:10 indirect index (layout( row_major std430) buffer uint) -0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:10 Constant: -0:10 0 (const uint) -0:10 add ( temp int) -0:10 'byteAddrTemp' ( temp int) -0:10 Constant: -0:10 1 (const int) -0:10 direct index ( temp uint) -0:? Sequence -0:10 move second child to first child ( temp int) -0:10 'byteAddrTemp' ( temp int) -0:10 right-shift ( temp int) -0:10 'pos' ( in uint) -0:10 Constant: -0:10 2 (const int) -0:? Construct vec2 ( temp 2-component vector of uint) -0:10 indirect index ( temp uint) -0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:10 Constant: -0:10 0 (const uint) -0:10 'byteAddrTemp' ( temp int) -0:10 indirect index ( temp uint) -0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:10 Constant: -0:10 0 (const uint) -0:10 add ( temp int) -0:10 'byteAddrTemp' ( temp int) -0:10 Constant: -0:10 1 (const int) -0:10 Constant: -0:10 1 (const int) -0:? Sequence -0:11 move second child to first child ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 right-shift ( temp int) -0:11 'pos' ( in uint) -0:11 Constant: -0:11 2 (const int) -0:11 move second child to first child ( temp uint) -0:11 indirect index (layout( row_major std430) buffer uint) -0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 'byteAddrTemp' ( temp int) -0:11 direct index ( temp uint) -0:? Sequence -0:11 move second child to first child ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 right-shift ( temp int) -0:11 'pos' ( in uint) -0:11 Constant: -0:11 2 (const int) -0:? Construct vec3 ( temp 3-component vector of uint) -0:11 indirect index ( temp uint) -0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 'byteAddrTemp' ( temp int) -0:11 indirect index ( temp uint) -0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 add ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 Constant: -0:11 1 (const int) -0:11 indirect index ( temp uint) -0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 add ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 move second child to first child ( temp uint) -0:11 indirect index (layout( row_major std430) buffer uint) -0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 add ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 Constant: -0:11 1 (const int) -0:11 direct index ( temp uint) -0:? Sequence -0:11 move second child to first child ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 right-shift ( temp int) -0:11 'pos' ( in uint) -0:11 Constant: -0:11 2 (const int) -0:? Construct vec3 ( temp 3-component vector of uint) -0:11 indirect index ( temp uint) -0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 'byteAddrTemp' ( temp int) -0:11 indirect index ( temp uint) -0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 add ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 Constant: -0:11 1 (const int) -0:11 indirect index ( temp uint) -0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 add ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 move second child to first child ( temp uint) -0:11 indirect index (layout( row_major std430) buffer uint) -0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 add ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 Constant: -0:11 2 (const int) -0:11 direct index ( temp uint) -0:? Sequence -0:11 move second child to first child ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 right-shift ( temp int) -0:11 'pos' ( in uint) -0:11 Constant: -0:11 2 (const int) -0:? Construct vec3 ( temp 3-component vector of uint) -0:11 indirect index ( temp uint) -0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 'byteAddrTemp' ( temp int) -0:11 indirect index ( temp uint) -0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 add ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 Constant: -0:11 1 (const int) -0:11 indirect index ( temp uint) -0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 add ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 2 (const int) -0:? Sequence -0:12 move second child to first child ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 right-shift ( temp int) -0:12 'pos' ( in uint) -0:12 Constant: -0:12 2 (const int) -0:12 move second child to first child ( temp uint) -0:12 indirect index (layout( row_major std430) buffer uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 'byteAddrTemp' ( temp int) -0:12 direct index ( temp uint) -0:? Sequence -0:12 move second child to first child ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 right-shift ( temp int) -0:12 'pos' ( in uint) -0:12 Constant: -0:12 2 (const int) -0:? Construct vec4 ( temp 4-component vector of uint) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 'byteAddrTemp' ( temp int) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 1 (const int) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 2 (const int) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 3 (const int) -0:12 Constant: -0:12 0 (const int) -0:12 move second child to first child ( temp uint) -0:12 indirect index (layout( row_major std430) buffer uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 1 (const int) -0:12 direct index ( temp uint) -0:? Sequence -0:12 move second child to first child ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 right-shift ( temp int) -0:12 'pos' ( in uint) -0:12 Constant: -0:12 2 (const int) -0:? Construct vec4 ( temp 4-component vector of uint) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 'byteAddrTemp' ( temp int) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 1 (const int) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 2 (const int) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 3 (const int) -0:12 Constant: -0:12 1 (const int) -0:12 move second child to first child ( temp uint) -0:12 indirect index (layout( row_major std430) buffer uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 2 (const int) -0:12 direct index ( temp uint) -0:? Sequence -0:12 move second child to first child ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 right-shift ( temp int) -0:12 'pos' ( in uint) -0:12 Constant: -0:12 2 (const int) -0:? Construct vec4 ( temp 4-component vector of uint) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 'byteAddrTemp' ( temp int) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 1 (const int) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 2 (const int) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 3 (const int) -0:12 Constant: -0:12 2 (const int) -0:12 move second child to first child ( temp uint) -0:12 indirect index (layout( row_major std430) buffer uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 3 (const int) -0:12 direct index ( temp uint) -0:? Sequence -0:12 move second child to first child ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 right-shift ( temp int) -0:12 'pos' ( in uint) -0:12 Constant: -0:12 2 (const int) -0:? Construct vec4 ( temp 4-component vector of uint) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 'byteAddrTemp' ( temp int) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 1 (const int) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 2 (const int) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 3 (const int) -0:12 Constant: -0:12 3 (const int) -0:14 Branch: Return with expression -0:14 Construct vec4 ( temp 4-component vector of float) -0:14 Convert uint to float ( temp float) -0:14 indirect index (layout( row_major std430) buffer uint) -0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:14 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:14 Constant: -0:14 0 (const uint) -0:14 right-shift ( temp int) -0:14 'pos' ( in uint) -0:14 Constant: -0:14 2 (const int) -0:5 Function Definition: main( ( temp void) -0:5 Function Parameters: -0:? Sequence -0:5 move second child to first child ( temp uint) -0:? 'pos' ( temp uint) -0:? 'pos' (layout( location=0) flat in uint) -0:5 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:5 Function Call: @main(u1; ( temp 4-component vector of float) -0:? 'pos' ( temp uint) -0:? Linker Objects -0:? 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'pos' (layout( location=0) flat in uint) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:5 Function Definition: @main(u1; ( temp 4-component vector of float) -0:5 Function Parameters: -0:5 'pos' ( in uint) -0:? Sequence -0:7 Sequence -0:7 move second child to first child ( temp uint) -0:7 'size' ( temp uint) -0:7 array length ( temp uint) -0:7 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:7 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:7 Constant: -0:7 0 (const uint) -0:? Sequence -0:9 move second child to first child ( temp int) -0:9 'byteAddrTemp' ( temp int) -0:9 right-shift ( temp int) -0:9 'pos' ( in uint) -0:9 Constant: -0:9 2 (const int) -0:9 move second child to first child ( temp uint) -0:9 indirect index (layout( row_major std430) buffer uint) -0:9 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:9 Constant: -0:9 0 (const uint) -0:9 'byteAddrTemp' ( temp int) -0:9 indirect index (layout( row_major std430) buffer uint) -0:9 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:9 Constant: -0:9 0 (const uint) -0:9 right-shift ( temp int) -0:9 'pos' ( in uint) -0:9 Constant: -0:9 2 (const int) -0:? Sequence -0:10 move second child to first child ( temp int) -0:10 'byteAddrTemp' ( temp int) -0:10 right-shift ( temp int) -0:10 'pos' ( in uint) -0:10 Constant: -0:10 2 (const int) -0:10 move second child to first child ( temp uint) -0:10 indirect index (layout( row_major std430) buffer uint) -0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:10 Constant: -0:10 0 (const uint) -0:10 'byteAddrTemp' ( temp int) -0:10 direct index ( temp uint) -0:? Sequence -0:10 move second child to first child ( temp int) -0:10 'byteAddrTemp' ( temp int) -0:10 right-shift ( temp int) -0:10 'pos' ( in uint) -0:10 Constant: -0:10 2 (const int) -0:? Construct vec2 ( temp 2-component vector of uint) -0:10 indirect index ( temp uint) -0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:10 Constant: -0:10 0 (const uint) -0:10 'byteAddrTemp' ( temp int) -0:10 indirect index ( temp uint) -0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:10 Constant: -0:10 0 (const uint) -0:10 add ( temp int) -0:10 'byteAddrTemp' ( temp int) -0:10 Constant: -0:10 1 (const int) -0:10 Constant: -0:10 0 (const int) -0:10 move second child to first child ( temp uint) -0:10 indirect index (layout( row_major std430) buffer uint) -0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:10 Constant: -0:10 0 (const uint) -0:10 add ( temp int) -0:10 'byteAddrTemp' ( temp int) -0:10 Constant: -0:10 1 (const int) -0:10 direct index ( temp uint) -0:? Sequence -0:10 move second child to first child ( temp int) -0:10 'byteAddrTemp' ( temp int) -0:10 right-shift ( temp int) -0:10 'pos' ( in uint) -0:10 Constant: -0:10 2 (const int) -0:? Construct vec2 ( temp 2-component vector of uint) -0:10 indirect index ( temp uint) -0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:10 Constant: -0:10 0 (const uint) -0:10 'byteAddrTemp' ( temp int) -0:10 indirect index ( temp uint) -0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:10 Constant: -0:10 0 (const uint) -0:10 add ( temp int) -0:10 'byteAddrTemp' ( temp int) -0:10 Constant: -0:10 1 (const int) -0:10 Constant: -0:10 1 (const int) -0:? Sequence -0:11 move second child to first child ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 right-shift ( temp int) -0:11 'pos' ( in uint) -0:11 Constant: -0:11 2 (const int) -0:11 move second child to first child ( temp uint) -0:11 indirect index (layout( row_major std430) buffer uint) -0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 'byteAddrTemp' ( temp int) -0:11 direct index ( temp uint) -0:? Sequence -0:11 move second child to first child ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 right-shift ( temp int) -0:11 'pos' ( in uint) -0:11 Constant: -0:11 2 (const int) -0:? Construct vec3 ( temp 3-component vector of uint) -0:11 indirect index ( temp uint) -0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 'byteAddrTemp' ( temp int) -0:11 indirect index ( temp uint) -0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 add ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 Constant: -0:11 1 (const int) -0:11 indirect index ( temp uint) -0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 add ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 move second child to first child ( temp uint) -0:11 indirect index (layout( row_major std430) buffer uint) -0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 add ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 Constant: -0:11 1 (const int) -0:11 direct index ( temp uint) -0:? Sequence -0:11 move second child to first child ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 right-shift ( temp int) -0:11 'pos' ( in uint) -0:11 Constant: -0:11 2 (const int) -0:? Construct vec3 ( temp 3-component vector of uint) -0:11 indirect index ( temp uint) -0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 'byteAddrTemp' ( temp int) -0:11 indirect index ( temp uint) -0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 add ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 Constant: -0:11 1 (const int) -0:11 indirect index ( temp uint) -0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 add ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 move second child to first child ( temp uint) -0:11 indirect index (layout( row_major std430) buffer uint) -0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 add ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 Constant: -0:11 2 (const int) -0:11 direct index ( temp uint) -0:? Sequence -0:11 move second child to first child ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 right-shift ( temp int) -0:11 'pos' ( in uint) -0:11 Constant: -0:11 2 (const int) -0:? Construct vec3 ( temp 3-component vector of uint) -0:11 indirect index ( temp uint) -0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 'byteAddrTemp' ( temp int) -0:11 indirect index ( temp uint) -0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 add ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 Constant: -0:11 1 (const int) -0:11 indirect index ( temp uint) -0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 add ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 Constant: -0:11 2 (const int) -0:11 Constant: -0:11 2 (const int) -0:? Sequence -0:12 move second child to first child ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 right-shift ( temp int) -0:12 'pos' ( in uint) -0:12 Constant: -0:12 2 (const int) -0:12 move second child to first child ( temp uint) -0:12 indirect index (layout( row_major std430) buffer uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 'byteAddrTemp' ( temp int) -0:12 direct index ( temp uint) -0:? Sequence -0:12 move second child to first child ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 right-shift ( temp int) -0:12 'pos' ( in uint) -0:12 Constant: -0:12 2 (const int) -0:? Construct vec4 ( temp 4-component vector of uint) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 'byteAddrTemp' ( temp int) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 1 (const int) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 2 (const int) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 3 (const int) -0:12 Constant: -0:12 0 (const int) -0:12 move second child to first child ( temp uint) -0:12 indirect index (layout( row_major std430) buffer uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 1 (const int) -0:12 direct index ( temp uint) -0:? Sequence -0:12 move second child to first child ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 right-shift ( temp int) -0:12 'pos' ( in uint) -0:12 Constant: -0:12 2 (const int) -0:? Construct vec4 ( temp 4-component vector of uint) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 'byteAddrTemp' ( temp int) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 1 (const int) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 2 (const int) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 3 (const int) -0:12 Constant: -0:12 1 (const int) -0:12 move second child to first child ( temp uint) -0:12 indirect index (layout( row_major std430) buffer uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 2 (const int) -0:12 direct index ( temp uint) -0:? Sequence -0:12 move second child to first child ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 right-shift ( temp int) -0:12 'pos' ( in uint) -0:12 Constant: -0:12 2 (const int) -0:? Construct vec4 ( temp 4-component vector of uint) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 'byteAddrTemp' ( temp int) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 1 (const int) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 2 (const int) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 3 (const int) -0:12 Constant: -0:12 2 (const int) -0:12 move second child to first child ( temp uint) -0:12 indirect index (layout( row_major std430) buffer uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 3 (const int) -0:12 direct index ( temp uint) -0:? Sequence -0:12 move second child to first child ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 right-shift ( temp int) -0:12 'pos' ( in uint) -0:12 Constant: -0:12 2 (const int) -0:? Construct vec4 ( temp 4-component vector of uint) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 'byteAddrTemp' ( temp int) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 1 (const int) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 2 (const int) -0:12 indirect index ( temp uint) -0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 3 (const int) -0:12 Constant: -0:12 3 (const int) -0:14 Branch: Return with expression -0:14 Construct vec4 ( temp 4-component vector of float) -0:14 Convert uint to float ( temp float) -0:14 indirect index (layout( row_major std430) buffer uint) -0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:14 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:14 Constant: -0:14 0 (const uint) -0:14 right-shift ( temp int) -0:14 'pos' ( in uint) -0:14 Constant: -0:14 2 (const int) -0:5 Function Definition: main( ( temp void) -0:5 Function Parameters: -0:? Sequence -0:5 move second child to first child ( temp uint) -0:? 'pos' ( temp uint) -0:? 'pos' (layout( location=0) flat in uint) -0:5 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:5 Function Call: @main(u1; ( temp 4-component vector of float) -0:? 'pos' ( temp uint) -0:? Linker Objects -0:? 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'pos' (layout( location=0) flat in uint) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 239 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 232 235 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 12 "@main(u1;" - Name 11 "pos" - Name 14 "size" - Name 16 "sbuf" - MemberName 16(sbuf) 0 "@data" - Name 18 "sbuf" - Name 22 "byteAddrTemp" - Name 34 "byteAddrTemp" - Name 38 "byteAddrTemp" - Name 69 "byteAddrTemp" - Name 73 "byteAddrTemp" - Name 128 "byteAddrTemp" - Name 132 "byteAddrTemp" - Name 230 "pos" - Name 232 "pos" - Name 235 "@entryPointOutput" - Name 236 "param" - Decorate 15 ArrayStride 4 - MemberDecorate 16(sbuf) 0 Offset 0 - Decorate 16(sbuf) BufferBlock - Decorate 18(sbuf) DescriptorSet 0 - Decorate 18(sbuf) Binding 0 - Decorate 232(pos) Flat - Decorate 232(pos) Location 0 - Decorate 235(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 8: TypeFloat 32 - 9: TypeVector 8(float) 4 - 10: TypeFunction 9(fvec4) 7(ptr) - 15: TypeRuntimeArray 6(int) - 16(sbuf): TypeStruct 15 - 17: TypePointer Uniform 16(sbuf) - 18(sbuf): 17(ptr) Variable Uniform - 20: TypeInt 32 1 - 21: TypePointer Function 20(int) - 24: 20(int) Constant 2 - 26: 20(int) Constant 0 - 30: TypePointer Uniform 6(int) - 45: 20(int) Constant 1 - 49: TypeVector 6(int) 2 - 51: 6(int) Constant 0 - 66: 6(int) Constant 1 - 87: TypeVector 6(int) 3 - 125: 6(int) Constant 2 - 147: 20(int) Constant 3 - 151: TypeVector 6(int) 4 - 219: 6(int) Constant 3 - 231: TypePointer Input 6(int) - 232(pos): 231(ptr) Variable Input - 234: TypePointer Output 9(fvec4) -235(@entryPointOutput): 234(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 230(pos): 7(ptr) Variable Function - 236(param): 7(ptr) Variable Function - 233: 6(int) Load 232(pos) - Store 230(pos) 233 - 237: 6(int) Load 230(pos) - Store 236(param) 237 - 238: 9(fvec4) FunctionCall 12(@main(u1;) 236(param) - Store 235(@entryPointOutput) 238 - Return - FunctionEnd - 12(@main(u1;): 9(fvec4) Function None 10 - 11(pos): 7(ptr) FunctionParameter - 13: Label - 14(size): 7(ptr) Variable Function -22(byteAddrTemp): 21(ptr) Variable Function -34(byteAddrTemp): 21(ptr) Variable Function -38(byteAddrTemp): 21(ptr) Variable Function -69(byteAddrTemp): 21(ptr) Variable Function -73(byteAddrTemp): 21(ptr) Variable Function -128(byteAddrTemp): 21(ptr) Variable Function -132(byteAddrTemp): 21(ptr) Variable Function - 19: 6(int) ArrayLength 18(sbuf) 0 - Store 14(size) 19 - 23: 6(int) Load 11(pos) - 25: 20(int) ShiftRightLogical 23 24 - Store 22(byteAddrTemp) 25 - 27: 20(int) Load 22(byteAddrTemp) - 28: 6(int) Load 11(pos) - 29: 20(int) ShiftRightLogical 28 24 - 31: 30(ptr) AccessChain 18(sbuf) 26 29 - 32: 6(int) Load 31 - 33: 30(ptr) AccessChain 18(sbuf) 26 27 - Store 33 32 - 35: 6(int) Load 11(pos) - 36: 20(int) ShiftRightLogical 35 24 - Store 34(byteAddrTemp) 36 - 37: 20(int) Load 34(byteAddrTemp) - 39: 6(int) Load 11(pos) - 40: 20(int) ShiftRightLogical 39 24 - Store 38(byteAddrTemp) 40 - 41: 20(int) Load 38(byteAddrTemp) - 42: 30(ptr) AccessChain 18(sbuf) 26 41 - 43: 6(int) Load 42 - 44: 20(int) Load 38(byteAddrTemp) - 46: 20(int) IAdd 44 45 - 47: 30(ptr) AccessChain 18(sbuf) 26 46 - 48: 6(int) Load 47 - 50: 49(ivec2) CompositeConstruct 43 48 - 52: 6(int) CompositeExtract 50 0 - 53: 30(ptr) AccessChain 18(sbuf) 26 37 - Store 53 52 - 54: 20(int) Load 34(byteAddrTemp) - 55: 20(int) IAdd 54 45 - 56: 6(int) Load 11(pos) - 57: 20(int) ShiftRightLogical 56 24 - Store 38(byteAddrTemp) 57 - 58: 20(int) Load 38(byteAddrTemp) - 59: 30(ptr) AccessChain 18(sbuf) 26 58 - 60: 6(int) Load 59 - 61: 20(int) Load 38(byteAddrTemp) - 62: 20(int) IAdd 61 45 - 63: 30(ptr) AccessChain 18(sbuf) 26 62 - 64: 6(int) Load 63 - 65: 49(ivec2) CompositeConstruct 60 64 - 67: 6(int) CompositeExtract 65 1 - 68: 30(ptr) AccessChain 18(sbuf) 26 55 - Store 68 67 - 70: 6(int) Load 11(pos) - 71: 20(int) ShiftRightLogical 70 24 - Store 69(byteAddrTemp) 71 - 72: 20(int) Load 69(byteAddrTemp) - 74: 6(int) Load 11(pos) - 75: 20(int) ShiftRightLogical 74 24 - Store 73(byteAddrTemp) 75 - 76: 20(int) Load 73(byteAddrTemp) - 77: 30(ptr) AccessChain 18(sbuf) 26 76 - 78: 6(int) Load 77 - 79: 20(int) Load 73(byteAddrTemp) - 80: 20(int) IAdd 79 45 - 81: 30(ptr) AccessChain 18(sbuf) 26 80 - 82: 6(int) Load 81 - 83: 20(int) Load 73(byteAddrTemp) - 84: 20(int) IAdd 83 24 - 85: 30(ptr) AccessChain 18(sbuf) 26 84 - 86: 6(int) Load 85 - 88: 87(ivec3) CompositeConstruct 78 82 86 - 89: 6(int) CompositeExtract 88 0 - 90: 30(ptr) AccessChain 18(sbuf) 26 72 - Store 90 89 - 91: 20(int) Load 69(byteAddrTemp) - 92: 20(int) IAdd 91 45 - 93: 6(int) Load 11(pos) - 94: 20(int) ShiftRightLogical 93 24 - Store 73(byteAddrTemp) 94 - 95: 20(int) Load 73(byteAddrTemp) - 96: 30(ptr) AccessChain 18(sbuf) 26 95 - 97: 6(int) Load 96 - 98: 20(int) Load 73(byteAddrTemp) - 99: 20(int) IAdd 98 45 - 100: 30(ptr) AccessChain 18(sbuf) 26 99 - 101: 6(int) Load 100 - 102: 20(int) Load 73(byteAddrTemp) - 103: 20(int) IAdd 102 24 - 104: 30(ptr) AccessChain 18(sbuf) 26 103 - 105: 6(int) Load 104 - 106: 87(ivec3) CompositeConstruct 97 101 105 - 107: 6(int) CompositeExtract 106 1 - 108: 30(ptr) AccessChain 18(sbuf) 26 92 - Store 108 107 - 109: 20(int) Load 69(byteAddrTemp) - 110: 20(int) IAdd 109 24 - 111: 6(int) Load 11(pos) - 112: 20(int) ShiftRightLogical 111 24 - Store 73(byteAddrTemp) 112 - 113: 20(int) Load 73(byteAddrTemp) - 114: 30(ptr) AccessChain 18(sbuf) 26 113 - 115: 6(int) Load 114 - 116: 20(int) Load 73(byteAddrTemp) - 117: 20(int) IAdd 116 45 - 118: 30(ptr) AccessChain 18(sbuf) 26 117 - 119: 6(int) Load 118 - 120: 20(int) Load 73(byteAddrTemp) - 121: 20(int) IAdd 120 24 - 122: 30(ptr) AccessChain 18(sbuf) 26 121 - 123: 6(int) Load 122 - 124: 87(ivec3) CompositeConstruct 115 119 123 - 126: 6(int) CompositeExtract 124 2 - 127: 30(ptr) AccessChain 18(sbuf) 26 110 - Store 127 126 - 129: 6(int) Load 11(pos) - 130: 20(int) ShiftRightLogical 129 24 - Store 128(byteAddrTemp) 130 - 131: 20(int) Load 128(byteAddrTemp) - 133: 6(int) Load 11(pos) - 134: 20(int) ShiftRightLogical 133 24 - Store 132(byteAddrTemp) 134 - 135: 20(int) Load 132(byteAddrTemp) - 136: 30(ptr) AccessChain 18(sbuf) 26 135 - 137: 6(int) Load 136 - 138: 20(int) Load 132(byteAddrTemp) - 139: 20(int) IAdd 138 45 - 140: 30(ptr) AccessChain 18(sbuf) 26 139 - 141: 6(int) Load 140 - 142: 20(int) Load 132(byteAddrTemp) - 143: 20(int) IAdd 142 24 - 144: 30(ptr) AccessChain 18(sbuf) 26 143 - 145: 6(int) Load 144 - 146: 20(int) Load 132(byteAddrTemp) - 148: 20(int) IAdd 146 147 - 149: 30(ptr) AccessChain 18(sbuf) 26 148 - 150: 6(int) Load 149 - 152: 151(ivec4) CompositeConstruct 137 141 145 150 - 153: 6(int) CompositeExtract 152 0 - 154: 30(ptr) AccessChain 18(sbuf) 26 131 - Store 154 153 - 155: 20(int) Load 128(byteAddrTemp) - 156: 20(int) IAdd 155 45 - 157: 6(int) Load 11(pos) - 158: 20(int) ShiftRightLogical 157 24 - Store 132(byteAddrTemp) 158 - 159: 20(int) Load 132(byteAddrTemp) - 160: 30(ptr) AccessChain 18(sbuf) 26 159 - 161: 6(int) Load 160 - 162: 20(int) Load 132(byteAddrTemp) - 163: 20(int) IAdd 162 45 - 164: 30(ptr) AccessChain 18(sbuf) 26 163 - 165: 6(int) Load 164 - 166: 20(int) Load 132(byteAddrTemp) - 167: 20(int) IAdd 166 24 - 168: 30(ptr) AccessChain 18(sbuf) 26 167 - 169: 6(int) Load 168 - 170: 20(int) Load 132(byteAddrTemp) - 171: 20(int) IAdd 170 147 - 172: 30(ptr) AccessChain 18(sbuf) 26 171 - 173: 6(int) Load 172 - 174: 151(ivec4) CompositeConstruct 161 165 169 173 - 175: 6(int) CompositeExtract 174 1 - 176: 30(ptr) AccessChain 18(sbuf) 26 156 - Store 176 175 - 177: 20(int) Load 128(byteAddrTemp) - 178: 20(int) IAdd 177 24 - 179: 6(int) Load 11(pos) - 180: 20(int) ShiftRightLogical 179 24 - Store 132(byteAddrTemp) 180 - 181: 20(int) Load 132(byteAddrTemp) - 182: 30(ptr) AccessChain 18(sbuf) 26 181 - 183: 6(int) Load 182 - 184: 20(int) Load 132(byteAddrTemp) - 185: 20(int) IAdd 184 45 - 186: 30(ptr) AccessChain 18(sbuf) 26 185 - 187: 6(int) Load 186 - 188: 20(int) Load 132(byteAddrTemp) - 189: 20(int) IAdd 188 24 - 190: 30(ptr) AccessChain 18(sbuf) 26 189 - 191: 6(int) Load 190 - 192: 20(int) Load 132(byteAddrTemp) - 193: 20(int) IAdd 192 147 - 194: 30(ptr) AccessChain 18(sbuf) 26 193 - 195: 6(int) Load 194 - 196: 151(ivec4) CompositeConstruct 183 187 191 195 - 197: 6(int) CompositeExtract 196 2 - 198: 30(ptr) AccessChain 18(sbuf) 26 178 - Store 198 197 - 199: 20(int) Load 128(byteAddrTemp) - 200: 20(int) IAdd 199 147 - 201: 6(int) Load 11(pos) - 202: 20(int) ShiftRightLogical 201 24 - Store 132(byteAddrTemp) 202 - 203: 20(int) Load 132(byteAddrTemp) - 204: 30(ptr) AccessChain 18(sbuf) 26 203 - 205: 6(int) Load 204 - 206: 20(int) Load 132(byteAddrTemp) - 207: 20(int) IAdd 206 45 - 208: 30(ptr) AccessChain 18(sbuf) 26 207 - 209: 6(int) Load 208 - 210: 20(int) Load 132(byteAddrTemp) - 211: 20(int) IAdd 210 24 - 212: 30(ptr) AccessChain 18(sbuf) 26 211 - 213: 6(int) Load 212 - 214: 20(int) Load 132(byteAddrTemp) - 215: 20(int) IAdd 214 147 - 216: 30(ptr) AccessChain 18(sbuf) 26 215 - 217: 6(int) Load 216 - 218: 151(ivec4) CompositeConstruct 205 209 213 217 - 220: 6(int) CompositeExtract 218 3 - 221: 30(ptr) AccessChain 18(sbuf) 26 200 - Store 221 220 - 222: 6(int) Load 11(pos) - 223: 20(int) ShiftRightLogical 222 24 - 224: 30(ptr) AccessChain 18(sbuf) 26 223 - 225: 6(int) Load 224 - 226: 8(float) ConvertUToF 225 - 227: 9(fvec4) CompositeConstruct 226 226 226 226 - ReturnValue 227 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.structbuffer.rwbyte2.comp.out b/deps/glslang/Test/baseResults/hlsl.structbuffer.rwbyte2.comp.out deleted file mode 100644 index 127d52cc..00000000 --- a/deps/glslang/Test/baseResults/hlsl.structbuffer.rwbyte2.comp.out +++ /dev/null @@ -1,140 +0,0 @@ -hlsl.structbuffer.rwbyte2.comp -Shader version: 500 -local_size = (1, 1, 1) -0:? Sequence -0:6 Function Definition: @main( ( temp void) -0:6 Function Parameters: -0:? Sequence -0:7 Sequence -0:7 move second child to first child ( temp uint) -0:7 'f' ( temp uint) -0:7 indirect index (layout( row_major std430) buffer uint) -0:7 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:7 'g_bbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:7 Constant: -0:7 0 (const uint) -0:7 right-shift ( temp int) -0:7 Constant: -0:7 16 (const int) -0:7 Constant: -0:7 2 (const int) -0:8 move second child to first child ( temp uint) -0:8 direct index (layout( row_major std430) buffer uint) -0:8 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:8 'g_sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:8 Constant: -0:8 0 (const uint) -0:8 Constant: -0:8 0 (const int) -0:8 'f' ( temp uint) -0:6 Function Definition: main( ( temp void) -0:6 Function Parameters: -0:? Sequence -0:6 Function Call: @main( ( temp void) -0:? Linker Objects -0:? 'g_sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:? 'g_bbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) - - -Linked compute stage: - - -Shader version: 500 -local_size = (1, 1, 1) -0:? Sequence -0:6 Function Definition: @main( ( temp void) -0:6 Function Parameters: -0:? Sequence -0:7 Sequence -0:7 move second child to first child ( temp uint) -0:7 'f' ( temp uint) -0:7 indirect index (layout( row_major std430) buffer uint) -0:7 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:7 'g_bbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:7 Constant: -0:7 0 (const uint) -0:7 right-shift ( temp int) -0:7 Constant: -0:7 16 (const int) -0:7 Constant: -0:7 2 (const int) -0:8 move second child to first child ( temp uint) -0:8 direct index (layout( row_major std430) buffer uint) -0:8 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:8 'g_sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:8 Constant: -0:8 0 (const uint) -0:8 Constant: -0:8 0 (const int) -0:8 'f' ( temp uint) -0:6 Function Definition: main( ( temp void) -0:6 Function Parameters: -0:? Sequence -0:6 Function Call: @main( ( temp void) -0:? Linker Objects -0:? 'g_sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:? 'g_bbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 30 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" - ExecutionMode 4 LocalSize 1 1 1 - Source HLSL 500 - Name 4 "main" - Name 6 "@main(" - Name 10 "f" - Name 12 "g_bbuf" - MemberName 12(g_bbuf) 0 "@data" - Name 14 "g_bbuf" - Name 24 "g_sbuf" - MemberName 24(g_sbuf) 0 "@data" - Name 26 "g_sbuf" - Decorate 11 ArrayStride 4 - MemberDecorate 12(g_bbuf) 0 Offset 0 - Decorate 12(g_bbuf) BufferBlock - Decorate 14(g_bbuf) DescriptorSet 0 - Decorate 14(g_bbuf) Binding 1 - Decorate 23 ArrayStride 4 - MemberDecorate 24(g_sbuf) 0 Offset 0 - Decorate 24(g_sbuf) BufferBlock - Decorate 26(g_sbuf) DescriptorSet 0 - Decorate 26(g_sbuf) Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 8: TypeInt 32 0 - 9: TypePointer Function 8(int) - 11: TypeRuntimeArray 8(int) - 12(g_bbuf): TypeStruct 11 - 13: TypePointer Uniform 12(g_bbuf) - 14(g_bbuf): 13(ptr) Variable Uniform - 15: TypeInt 32 1 - 16: 15(int) Constant 0 - 17: 15(int) Constant 16 - 18: 15(int) Constant 2 - 20: TypePointer Uniform 8(int) - 23: TypeRuntimeArray 8(int) - 24(g_sbuf): TypeStruct 23 - 25: TypePointer Uniform 24(g_sbuf) - 26(g_sbuf): 25(ptr) Variable Uniform - 4(main): 2 Function None 3 - 5: Label - 29: 2 FunctionCall 6(@main() - Return - FunctionEnd - 6(@main(): 2 Function None 3 - 7: Label - 10(f): 9(ptr) Variable Function - 19: 15(int) ShiftRightArithmetic 17 18 - 21: 20(ptr) AccessChain 14(g_bbuf) 16 19 - 22: 8(int) Load 21 - Store 10(f) 22 - 27: 8(int) Load 10(f) - 28: 20(ptr) AccessChain 26(g_sbuf) 16 16 - Store 28 27 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.structin.vert.out b/deps/glslang/Test/baseResults/hlsl.structin.vert.out deleted file mode 100644 index 85f63463..00000000 --- a/deps/glslang/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): 8000a -// 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/Test/baseResults/hlsl.subpass.frag.out b/deps/glslang/Test/baseResults/hlsl.subpass.frag.out deleted file mode 100644 index 2aca6287..00000000 --- a/deps/glslang/Test/baseResults/hlsl.subpass.frag.out +++ /dev/null @@ -1,801 +0,0 @@ -hlsl.subpass.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:68 Function Definition: @main( ( temp 4-component vector of float) -0:68 Function Parameters: -0:? Sequence -0:69 Sequence -0:69 move second child to first child ( temp 4-component vector of float) -0:69 'result00' ( temp 4-component vector of float) -0:69 subpassLoad ( temp 4-component vector of float) -0:69 'subpass_f4' (layout( binding=1 input_attachment_index=1) uniform subpassInput) -0:70 Sequence -0:70 move second child to first child ( temp 4-component vector of int) -0:70 'result01' ( temp 4-component vector of int) -0:70 subpassLoad ( temp 4-component vector of int) -0:70 'subpass_i4' ( uniform isubpassInput) -0:71 Sequence -0:71 move second child to first child ( temp 4-component vector of uint) -0:71 'result02' ( temp 4-component vector of uint) -0:71 subpassLoad ( temp 4-component vector of uint) -0:71 'subpass_u4' ( uniform usubpassInput) -0:73 Sequence -0:73 move second child to first child ( temp 4-component vector of float) -0:73 'result10' ( temp 4-component vector of float) -0:73 subpassLoadMS ( temp 4-component vector of float) -0:73 'subpass_ms_f4' ( uniform subpassInputMS) -0:73 Constant: -0:73 3 (const int) -0:74 Sequence -0:74 move second child to first child ( temp 4-component vector of int) -0:74 'result11' ( temp 4-component vector of int) -0:74 subpassLoadMS ( temp 4-component vector of int) -0:74 'subpass_ms_i4' ( uniform isubpassInputMS) -0:74 Constant: -0:74 3 (const int) -0:75 Sequence -0:75 move second child to first child ( temp 4-component vector of uint) -0:75 'result12' ( temp 4-component vector of uint) -0:75 subpassLoadMS ( temp 4-component vector of uint) -0:75 'subpass_ms_u4' ( uniform usubpassInputMS) -0:75 Constant: -0:75 3 (const int) -0:77 Sequence -0:77 move second child to first child ( temp 3-component vector of float) -0:77 'result20' ( temp 3-component vector of float) -0:77 Construct vec3 ( temp 3-component vector of float) -0:77 subpassLoad ( temp 4-component vector of float) -0:77 'subpass_f3' ( uniform subpassInput) -0:78 Sequence -0:78 move second child to first child ( temp 3-component vector of int) -0:78 'result21' ( temp 3-component vector of int) -0:78 Construct ivec3 ( temp 3-component vector of int) -0:78 subpassLoad ( temp 4-component vector of int) -0:78 'subpass_i3' ( uniform isubpassInput) -0:79 Sequence -0:79 move second child to first child ( temp 3-component vector of uint) -0:79 'result22' ( temp 3-component vector of uint) -0:79 Construct uvec3 ( temp 3-component vector of uint) -0:79 subpassLoad ( temp 4-component vector of uint) -0:79 'subpass_u3' ( uniform usubpassInput) -0:81 Sequence -0:81 move second child to first child ( temp 3-component vector of float) -0:81 'result30' ( temp 3-component vector of float) -0:81 Construct vec3 ( temp 3-component vector of float) -0:81 subpassLoadMS ( temp 4-component vector of float) -0:81 'subpass_ms_f3' ( uniform subpassInputMS) -0:81 Constant: -0:81 3 (const int) -0:82 Sequence -0:82 move second child to first child ( temp 3-component vector of int) -0:82 'result31' ( temp 3-component vector of int) -0:82 Construct ivec3 ( temp 3-component vector of int) -0:82 subpassLoadMS ( temp 4-component vector of int) -0:82 'subpass_ms_i3' ( uniform isubpassInputMS) -0:82 Constant: -0:82 3 (const int) -0:83 Sequence -0:83 move second child to first child ( temp 3-component vector of uint) -0:83 'result32' ( temp 3-component vector of uint) -0:83 Construct uvec3 ( temp 3-component vector of uint) -0:83 subpassLoadMS ( temp 4-component vector of uint) -0:83 'subpass_ms_u3' ( uniform usubpassInputMS) -0:83 Constant: -0:83 3 (const int) -0:85 Sequence -0:85 move second child to first child ( temp 2-component vector of float) -0:85 'result40' ( temp 2-component vector of float) -0:85 Construct vec2 ( temp 2-component vector of float) -0:85 subpassLoad ( temp 4-component vector of float) -0:85 'subpass_f2' ( uniform subpassInput) -0:86 Sequence -0:86 move second child to first child ( temp 2-component vector of int) -0:86 'result41' ( temp 2-component vector of int) -0:86 Construct ivec2 ( temp 2-component vector of int) -0:86 subpassLoad ( temp 4-component vector of int) -0:86 'subpass_i2' ( uniform isubpassInput) -0:87 Sequence -0:87 move second child to first child ( temp 2-component vector of uint) -0:87 'result42' ( temp 2-component vector of uint) -0:87 Construct uvec2 ( temp 2-component vector of uint) -0:87 subpassLoad ( temp 4-component vector of uint) -0:87 'subpass_u2' ( uniform usubpassInput) -0:89 Sequence -0:89 move second child to first child ( temp 2-component vector of float) -0:89 'result50' ( temp 2-component vector of float) -0:89 Construct vec2 ( temp 2-component vector of float) -0:89 subpassLoadMS ( temp 4-component vector of float) -0:89 'subpass_ms_f2' ( uniform subpassInputMS) -0:89 Constant: -0:89 2 (const int) -0:90 Sequence -0:90 move second child to first child ( temp 2-component vector of int) -0:90 'result51' ( temp 2-component vector of int) -0:90 Construct ivec2 ( temp 2-component vector of int) -0:90 subpassLoadMS ( temp 4-component vector of int) -0:90 'subpass_ms_i2' ( uniform isubpassInputMS) -0:90 Constant: -0:90 2 (const int) -0:91 Sequence -0:91 move second child to first child ( temp 2-component vector of uint) -0:91 'result52' ( temp 2-component vector of uint) -0:91 Construct uvec2 ( temp 2-component vector of uint) -0:91 subpassLoadMS ( temp 4-component vector of uint) -0:91 'subpass_ms_u2' ( uniform usubpassInputMS) -0:91 Constant: -0:91 2 (const int) -0:93 Sequence -0:93 move second child to first child ( temp float) -0:93 'result60' ( temp float) -0:93 Construct float ( temp float) -0:93 subpassLoad ( temp 4-component vector of float) -0:93 'subpass_f' ( uniform subpassInput) -0:94 Sequence -0:94 move second child to first child ( temp int) -0:94 'result61' ( temp int) -0:94 Construct int ( temp int) -0:94 subpassLoad ( temp 4-component vector of int) -0:94 'subpass_i' ( uniform isubpassInput) -0:95 Sequence -0:95 move second child to first child ( temp uint) -0:95 'result62' ( temp uint) -0:95 Construct uint ( temp uint) -0:95 subpassLoad ( temp 4-component vector of uint) -0:95 'subpass_u' ( uniform usubpassInput) -0:97 Sequence -0:97 move second child to first child ( temp float) -0:97 'result70' ( temp float) -0:97 Construct float ( temp float) -0:97 subpassLoadMS ( temp 4-component vector of float) -0:97 'subpass_ms_f' ( uniform subpassInputMS) -0:97 Constant: -0:97 2 (const int) -0:98 Sequence -0:98 move second child to first child ( temp int) -0:98 'result71' ( temp int) -0:98 Construct int ( temp int) -0:98 subpassLoadMS ( temp 4-component vector of int) -0:98 'subpass_ms_i' ( uniform isubpassInputMS) -0:98 Constant: -0:98 2 (const int) -0:99 Sequence -0:99 move second child to first child ( temp uint) -0:99 'result72' ( temp uint) -0:99 Construct uint ( temp uint) -0:99 subpassLoadMS ( temp 4-component vector of uint) -0:99 'subpass_ms_u' ( uniform usubpassInputMS) -0:99 Constant: -0:99 2 (const int) -0:101 Sequence -0:101 move second child to first child ( temp 4-component vector of float) -0:101 'result73' ( temp 4-component vector of float) -0:101 subpassLoad ( temp 4-component vector of float) -0:101 'subpass_2' ( uniform subpassInput) -0:112 Branch: Return with expression -0:112 Constant: -0:112 0.000000 -0:112 0.000000 -0:112 0.000000 -0:112 0.000000 -0:68 Function Definition: main( ( temp void) -0:68 Function Parameters: -0:? Sequence -0:68 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:68 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'subpass_f4' (layout( binding=1 input_attachment_index=1) uniform subpassInput) -0:? 'subpass_i4' ( uniform isubpassInput) -0:? 'subpass_u4' ( uniform usubpassInput) -0:? 'subpass_ms_f4' ( uniform subpassInputMS) -0:? 'subpass_ms_i4' ( uniform isubpassInputMS) -0:? 'subpass_ms_u4' ( uniform usubpassInputMS) -0:? 'subpass_f3' ( uniform subpassInput) -0:? 'subpass_i3' ( uniform isubpassInput) -0:? 'subpass_u3' ( uniform usubpassInput) -0:? 'subpass_ms_f3' ( uniform subpassInputMS) -0:? 'subpass_ms_i3' ( uniform isubpassInputMS) -0:? 'subpass_ms_u3' ( uniform usubpassInputMS) -0:? 'subpass_f2' ( uniform subpassInput) -0:? 'subpass_i2' ( uniform isubpassInput) -0:? 'subpass_u2' ( uniform usubpassInput) -0:? 'subpass_ms_f2' ( uniform subpassInputMS) -0:? 'subpass_ms_i2' ( uniform isubpassInputMS) -0:? 'subpass_ms_u2' ( uniform usubpassInputMS) -0:? 'subpass_f' ( uniform subpassInput) -0:? 'subpass_i' ( uniform isubpassInput) -0:? 'subpass_u' ( uniform usubpassInput) -0:? 'subpass_ms_f' ( uniform subpassInputMS) -0:? 'subpass_ms_i' ( uniform isubpassInputMS) -0:? 'subpass_ms_u' ( uniform usubpassInputMS) -0:? 'subpass_2' ( uniform subpassInput) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:68 Function Definition: @main( ( temp 4-component vector of float) -0:68 Function Parameters: -0:? Sequence -0:69 Sequence -0:69 move second child to first child ( temp 4-component vector of float) -0:69 'result00' ( temp 4-component vector of float) -0:69 subpassLoad ( temp 4-component vector of float) -0:69 'subpass_f4' (layout( binding=1 input_attachment_index=1) uniform subpassInput) -0:70 Sequence -0:70 move second child to first child ( temp 4-component vector of int) -0:70 'result01' ( temp 4-component vector of int) -0:70 subpassLoad ( temp 4-component vector of int) -0:70 'subpass_i4' ( uniform isubpassInput) -0:71 Sequence -0:71 move second child to first child ( temp 4-component vector of uint) -0:71 'result02' ( temp 4-component vector of uint) -0:71 subpassLoad ( temp 4-component vector of uint) -0:71 'subpass_u4' ( uniform usubpassInput) -0:73 Sequence -0:73 move second child to first child ( temp 4-component vector of float) -0:73 'result10' ( temp 4-component vector of float) -0:73 subpassLoadMS ( temp 4-component vector of float) -0:73 'subpass_ms_f4' ( uniform subpassInputMS) -0:73 Constant: -0:73 3 (const int) -0:74 Sequence -0:74 move second child to first child ( temp 4-component vector of int) -0:74 'result11' ( temp 4-component vector of int) -0:74 subpassLoadMS ( temp 4-component vector of int) -0:74 'subpass_ms_i4' ( uniform isubpassInputMS) -0:74 Constant: -0:74 3 (const int) -0:75 Sequence -0:75 move second child to first child ( temp 4-component vector of uint) -0:75 'result12' ( temp 4-component vector of uint) -0:75 subpassLoadMS ( temp 4-component vector of uint) -0:75 'subpass_ms_u4' ( uniform usubpassInputMS) -0:75 Constant: -0:75 3 (const int) -0:77 Sequence -0:77 move second child to first child ( temp 3-component vector of float) -0:77 'result20' ( temp 3-component vector of float) -0:77 Construct vec3 ( temp 3-component vector of float) -0:77 subpassLoad ( temp 4-component vector of float) -0:77 'subpass_f3' ( uniform subpassInput) -0:78 Sequence -0:78 move second child to first child ( temp 3-component vector of int) -0:78 'result21' ( temp 3-component vector of int) -0:78 Construct ivec3 ( temp 3-component vector of int) -0:78 subpassLoad ( temp 4-component vector of int) -0:78 'subpass_i3' ( uniform isubpassInput) -0:79 Sequence -0:79 move second child to first child ( temp 3-component vector of uint) -0:79 'result22' ( temp 3-component vector of uint) -0:79 Construct uvec3 ( temp 3-component vector of uint) -0:79 subpassLoad ( temp 4-component vector of uint) -0:79 'subpass_u3' ( uniform usubpassInput) -0:81 Sequence -0:81 move second child to first child ( temp 3-component vector of float) -0:81 'result30' ( temp 3-component vector of float) -0:81 Construct vec3 ( temp 3-component vector of float) -0:81 subpassLoadMS ( temp 4-component vector of float) -0:81 'subpass_ms_f3' ( uniform subpassInputMS) -0:81 Constant: -0:81 3 (const int) -0:82 Sequence -0:82 move second child to first child ( temp 3-component vector of int) -0:82 'result31' ( temp 3-component vector of int) -0:82 Construct ivec3 ( temp 3-component vector of int) -0:82 subpassLoadMS ( temp 4-component vector of int) -0:82 'subpass_ms_i3' ( uniform isubpassInputMS) -0:82 Constant: -0:82 3 (const int) -0:83 Sequence -0:83 move second child to first child ( temp 3-component vector of uint) -0:83 'result32' ( temp 3-component vector of uint) -0:83 Construct uvec3 ( temp 3-component vector of uint) -0:83 subpassLoadMS ( temp 4-component vector of uint) -0:83 'subpass_ms_u3' ( uniform usubpassInputMS) -0:83 Constant: -0:83 3 (const int) -0:85 Sequence -0:85 move second child to first child ( temp 2-component vector of float) -0:85 'result40' ( temp 2-component vector of float) -0:85 Construct vec2 ( temp 2-component vector of float) -0:85 subpassLoad ( temp 4-component vector of float) -0:85 'subpass_f2' ( uniform subpassInput) -0:86 Sequence -0:86 move second child to first child ( temp 2-component vector of int) -0:86 'result41' ( temp 2-component vector of int) -0:86 Construct ivec2 ( temp 2-component vector of int) -0:86 subpassLoad ( temp 4-component vector of int) -0:86 'subpass_i2' ( uniform isubpassInput) -0:87 Sequence -0:87 move second child to first child ( temp 2-component vector of uint) -0:87 'result42' ( temp 2-component vector of uint) -0:87 Construct uvec2 ( temp 2-component vector of uint) -0:87 subpassLoad ( temp 4-component vector of uint) -0:87 'subpass_u2' ( uniform usubpassInput) -0:89 Sequence -0:89 move second child to first child ( temp 2-component vector of float) -0:89 'result50' ( temp 2-component vector of float) -0:89 Construct vec2 ( temp 2-component vector of float) -0:89 subpassLoadMS ( temp 4-component vector of float) -0:89 'subpass_ms_f2' ( uniform subpassInputMS) -0:89 Constant: -0:89 2 (const int) -0:90 Sequence -0:90 move second child to first child ( temp 2-component vector of int) -0:90 'result51' ( temp 2-component vector of int) -0:90 Construct ivec2 ( temp 2-component vector of int) -0:90 subpassLoadMS ( temp 4-component vector of int) -0:90 'subpass_ms_i2' ( uniform isubpassInputMS) -0:90 Constant: -0:90 2 (const int) -0:91 Sequence -0:91 move second child to first child ( temp 2-component vector of uint) -0:91 'result52' ( temp 2-component vector of uint) -0:91 Construct uvec2 ( temp 2-component vector of uint) -0:91 subpassLoadMS ( temp 4-component vector of uint) -0:91 'subpass_ms_u2' ( uniform usubpassInputMS) -0:91 Constant: -0:91 2 (const int) -0:93 Sequence -0:93 move second child to first child ( temp float) -0:93 'result60' ( temp float) -0:93 Construct float ( temp float) -0:93 subpassLoad ( temp 4-component vector of float) -0:93 'subpass_f' ( uniform subpassInput) -0:94 Sequence -0:94 move second child to first child ( temp int) -0:94 'result61' ( temp int) -0:94 Construct int ( temp int) -0:94 subpassLoad ( temp 4-component vector of int) -0:94 'subpass_i' ( uniform isubpassInput) -0:95 Sequence -0:95 move second child to first child ( temp uint) -0:95 'result62' ( temp uint) -0:95 Construct uint ( temp uint) -0:95 subpassLoad ( temp 4-component vector of uint) -0:95 'subpass_u' ( uniform usubpassInput) -0:97 Sequence -0:97 move second child to first child ( temp float) -0:97 'result70' ( temp float) -0:97 Construct float ( temp float) -0:97 subpassLoadMS ( temp 4-component vector of float) -0:97 'subpass_ms_f' ( uniform subpassInputMS) -0:97 Constant: -0:97 2 (const int) -0:98 Sequence -0:98 move second child to first child ( temp int) -0:98 'result71' ( temp int) -0:98 Construct int ( temp int) -0:98 subpassLoadMS ( temp 4-component vector of int) -0:98 'subpass_ms_i' ( uniform isubpassInputMS) -0:98 Constant: -0:98 2 (const int) -0:99 Sequence -0:99 move second child to first child ( temp uint) -0:99 'result72' ( temp uint) -0:99 Construct uint ( temp uint) -0:99 subpassLoadMS ( temp 4-component vector of uint) -0:99 'subpass_ms_u' ( uniform usubpassInputMS) -0:99 Constant: -0:99 2 (const int) -0:101 Sequence -0:101 move second child to first child ( temp 4-component vector of float) -0:101 'result73' ( temp 4-component vector of float) -0:101 subpassLoad ( temp 4-component vector of float) -0:101 'subpass_2' ( uniform subpassInput) -0:112 Branch: Return with expression -0:112 Constant: -0:112 0.000000 -0:112 0.000000 -0:112 0.000000 -0:112 0.000000 -0:68 Function Definition: main( ( temp void) -0:68 Function Parameters: -0:? Sequence -0:68 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:68 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'subpass_f4' (layout( binding=1 input_attachment_index=1) uniform subpassInput) -0:? 'subpass_i4' ( uniform isubpassInput) -0:? 'subpass_u4' ( uniform usubpassInput) -0:? 'subpass_ms_f4' ( uniform subpassInputMS) -0:? 'subpass_ms_i4' ( uniform isubpassInputMS) -0:? 'subpass_ms_u4' ( uniform usubpassInputMS) -0:? 'subpass_f3' ( uniform subpassInput) -0:? 'subpass_i3' ( uniform isubpassInput) -0:? 'subpass_u3' ( uniform usubpassInput) -0:? 'subpass_ms_f3' ( uniform subpassInputMS) -0:? 'subpass_ms_i3' ( uniform isubpassInputMS) -0:? 'subpass_ms_u3' ( uniform usubpassInputMS) -0:? 'subpass_f2' ( uniform subpassInput) -0:? 'subpass_i2' ( uniform isubpassInput) -0:? 'subpass_u2' ( uniform usubpassInput) -0:? 'subpass_ms_f2' ( uniform subpassInputMS) -0:? 'subpass_ms_i2' ( uniform isubpassInputMS) -0:? 'subpass_ms_u2' ( uniform usubpassInputMS) -0:? 'subpass_f' ( uniform subpassInput) -0:? 'subpass_i' ( uniform isubpassInput) -0:? 'subpass_u' ( uniform usubpassInput) -0:? 'subpass_ms_f' ( uniform subpassInputMS) -0:? 'subpass_ms_i' ( uniform isubpassInputMS) -0:? 'subpass_ms_u' ( uniform usubpassInputMS) -0:? 'subpass_2' ( uniform subpassInput) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 204 - - Capability Shader - Capability InputAttachment - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 202 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 9 "@main(" - Name 12 "result00" - Name 15 "subpass_f4" - Name 24 "result01" - Name 27 "subpass_i4" - Name 33 "result02" - Name 36 "subpass_u4" - Name 39 "result10" - Name 42 "subpass_ms_f4" - Name 46 "result11" - Name 49 "subpass_ms_i4" - Name 52 "result12" - Name 55 "subpass_ms_u4" - Name 60 "result20" - Name 61 "subpass_f3" - Name 70 "result21" - Name 71 "subpass_i3" - Name 80 "result22" - Name 81 "subpass_u3" - Name 88 "result30" - Name 89 "subpass_ms_f3" - Name 96 "result31" - Name 97 "subpass_ms_i3" - Name 104 "result32" - Name 105 "subpass_ms_u3" - Name 114 "result40" - Name 115 "subpass_f2" - Name 122 "result41" - Name 123 "subpass_i2" - Name 131 "result42" - Name 132 "subpass_u2" - Name 138 "result50" - Name 139 "subpass_ms_f2" - Name 146 "result51" - Name 147 "subpass_ms_i2" - Name 153 "result52" - Name 154 "subpass_ms_u2" - Name 161 "result60" - Name 162 "subpass_f" - Name 167 "result61" - Name 168 "subpass_i" - Name 173 "result62" - Name 174 "subpass_u" - Name 178 "result70" - Name 179 "subpass_ms_f" - Name 183 "result71" - Name 184 "subpass_ms_i" - Name 188 "result72" - Name 189 "subpass_ms_u" - Name 193 "result73" - Name 194 "subpass_2" - Name 202 "@entryPointOutput" - Decorate 15(subpass_f4) DescriptorSet 0 - Decorate 15(subpass_f4) Binding 1 - Decorate 15(subpass_f4) InputAttachmentIndex 1 - Decorate 27(subpass_i4) DescriptorSet 0 - Decorate 27(subpass_i4) Binding 0 - Decorate 27(subpass_i4) InputAttachmentIndex 2 - Decorate 36(subpass_u4) DescriptorSet 0 - Decorate 36(subpass_u4) Binding 2 - Decorate 36(subpass_u4) InputAttachmentIndex 3 - Decorate 42(subpass_ms_f4) DescriptorSet 0 - Decorate 42(subpass_ms_f4) Binding 3 - Decorate 42(subpass_ms_f4) InputAttachmentIndex 4 - Decorate 49(subpass_ms_i4) DescriptorSet 0 - Decorate 49(subpass_ms_i4) Binding 4 - Decorate 49(subpass_ms_i4) InputAttachmentIndex 5 - Decorate 55(subpass_ms_u4) DescriptorSet 0 - Decorate 55(subpass_ms_u4) Binding 5 - Decorate 55(subpass_ms_u4) InputAttachmentIndex 6 - Decorate 61(subpass_f3) DescriptorSet 0 - Decorate 61(subpass_f3) Binding 6 - Decorate 61(subpass_f3) InputAttachmentIndex 1 - Decorate 71(subpass_i3) DescriptorSet 0 - Decorate 71(subpass_i3) Binding 7 - Decorate 71(subpass_i3) InputAttachmentIndex 2 - Decorate 81(subpass_u3) DescriptorSet 0 - Decorate 81(subpass_u3) Binding 8 - Decorate 81(subpass_u3) InputAttachmentIndex 3 - Decorate 89(subpass_ms_f3) DescriptorSet 0 - Decorate 89(subpass_ms_f3) Binding 9 - Decorate 89(subpass_ms_f3) InputAttachmentIndex 4 - Decorate 97(subpass_ms_i3) DescriptorSet 0 - Decorate 97(subpass_ms_i3) Binding 10 - Decorate 97(subpass_ms_i3) InputAttachmentIndex 5 - Decorate 105(subpass_ms_u3) DescriptorSet 0 - Decorate 105(subpass_ms_u3) Binding 11 - Decorate 105(subpass_ms_u3) InputAttachmentIndex 6 - Decorate 115(subpass_f2) DescriptorSet 0 - Decorate 115(subpass_f2) Binding 12 - Decorate 115(subpass_f2) InputAttachmentIndex 1 - Decorate 123(subpass_i2) DescriptorSet 0 - Decorate 123(subpass_i2) Binding 13 - Decorate 123(subpass_i2) InputAttachmentIndex 2 - Decorate 132(subpass_u2) DescriptorSet 0 - Decorate 132(subpass_u2) Binding 14 - Decorate 132(subpass_u2) InputAttachmentIndex 3 - Decorate 139(subpass_ms_f2) DescriptorSet 0 - Decorate 139(subpass_ms_f2) Binding 15 - Decorate 139(subpass_ms_f2) InputAttachmentIndex 4 - Decorate 147(subpass_ms_i2) DescriptorSet 0 - Decorate 147(subpass_ms_i2) Binding 16 - Decorate 147(subpass_ms_i2) InputAttachmentIndex 5 - Decorate 154(subpass_ms_u2) DescriptorSet 0 - Decorate 154(subpass_ms_u2) Binding 17 - Decorate 154(subpass_ms_u2) InputAttachmentIndex 6 - Decorate 162(subpass_f) DescriptorSet 0 - Decorate 162(subpass_f) Binding 18 - Decorate 162(subpass_f) InputAttachmentIndex 1 - Decorate 168(subpass_i) DescriptorSet 0 - Decorate 168(subpass_i) Binding 19 - Decorate 168(subpass_i) InputAttachmentIndex 2 - Decorate 174(subpass_u) DescriptorSet 0 - Decorate 174(subpass_u) Binding 20 - Decorate 174(subpass_u) InputAttachmentIndex 3 - Decorate 179(subpass_ms_f) DescriptorSet 0 - Decorate 179(subpass_ms_f) Binding 21 - Decorate 179(subpass_ms_f) InputAttachmentIndex 4 - Decorate 184(subpass_ms_i) DescriptorSet 0 - Decorate 184(subpass_ms_i) Binding 22 - Decorate 184(subpass_ms_i) InputAttachmentIndex 5 - Decorate 189(subpass_ms_u) DescriptorSet 0 - Decorate 189(subpass_ms_u) Binding 23 - Decorate 189(subpass_ms_u) InputAttachmentIndex 6 - Decorate 194(subpass_2) DescriptorSet 0 - Decorate 194(subpass_2) Binding 24 - Decorate 194(subpass_2) InputAttachmentIndex 7 - Decorate 202(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 11: TypePointer Function 7(fvec4) - 13: TypeImage 6(float) SubpassData nonsampled format:Unknown - 14: TypePointer UniformConstant 13 - 15(subpass_f4): 14(ptr) Variable UniformConstant - 17: TypeInt 32 1 - 18: 17(int) Constant 0 - 19: TypeVector 17(int) 2 - 20: 19(ivec2) ConstantComposite 18 18 - 22: TypeVector 17(int) 4 - 23: TypePointer Function 22(ivec4) - 25: TypeImage 17(int) SubpassData nonsampled format:Unknown - 26: TypePointer UniformConstant 25 - 27(subpass_i4): 26(ptr) Variable UniformConstant - 30: TypeInt 32 0 - 31: TypeVector 30(int) 4 - 32: TypePointer Function 31(ivec4) - 34: TypeImage 30(int) SubpassData nonsampled format:Unknown - 35: TypePointer UniformConstant 34 - 36(subpass_u4): 35(ptr) Variable UniformConstant - 40: TypeImage 6(float) SubpassData multi-sampled nonsampled format:Unknown - 41: TypePointer UniformConstant 40 -42(subpass_ms_f4): 41(ptr) Variable UniformConstant - 44: 17(int) Constant 3 - 47: TypeImage 17(int) SubpassData multi-sampled nonsampled format:Unknown - 48: TypePointer UniformConstant 47 -49(subpass_ms_i4): 48(ptr) Variable UniformConstant - 53: TypeImage 30(int) SubpassData multi-sampled nonsampled format:Unknown - 54: TypePointer UniformConstant 53 -55(subpass_ms_u4): 54(ptr) Variable UniformConstant - 58: TypeVector 6(float) 3 - 59: TypePointer Function 58(fvec3) - 61(subpass_f3): 14(ptr) Variable UniformConstant - 68: TypeVector 17(int) 3 - 69: TypePointer Function 68(ivec3) - 71(subpass_i3): 26(ptr) Variable UniformConstant - 78: TypeVector 30(int) 3 - 79: TypePointer Function 78(ivec3) - 81(subpass_u3): 35(ptr) Variable UniformConstant -89(subpass_ms_f3): 41(ptr) Variable UniformConstant -97(subpass_ms_i3): 48(ptr) Variable UniformConstant -105(subpass_ms_u3): 54(ptr) Variable UniformConstant - 112: TypeVector 6(float) 2 - 113: TypePointer Function 112(fvec2) - 115(subpass_f2): 14(ptr) Variable UniformConstant - 121: TypePointer Function 19(ivec2) - 123(subpass_i2): 26(ptr) Variable UniformConstant - 129: TypeVector 30(int) 2 - 130: TypePointer Function 129(ivec2) - 132(subpass_u2): 35(ptr) Variable UniformConstant -139(subpass_ms_f2): 41(ptr) Variable UniformConstant - 141: 17(int) Constant 2 -147(subpass_ms_i2): 48(ptr) Variable UniformConstant -154(subpass_ms_u2): 54(ptr) Variable UniformConstant - 160: TypePointer Function 6(float) - 162(subpass_f): 14(ptr) Variable UniformConstant - 166: TypePointer Function 17(int) - 168(subpass_i): 26(ptr) Variable UniformConstant - 172: TypePointer Function 30(int) - 174(subpass_u): 35(ptr) Variable UniformConstant -179(subpass_ms_f): 41(ptr) Variable UniformConstant -184(subpass_ms_i): 48(ptr) Variable UniformConstant -189(subpass_ms_u): 54(ptr) Variable UniformConstant - 194(subpass_2): 14(ptr) Variable UniformConstant - 197: 6(float) Constant 0 - 198: 7(fvec4) ConstantComposite 197 197 197 197 - 201: TypePointer Output 7(fvec4) -202(@entryPointOutput): 201(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 203: 7(fvec4) FunctionCall 9(@main() - Store 202(@entryPointOutput) 203 - Return - FunctionEnd - 9(@main(): 7(fvec4) Function None 8 - 10: Label - 12(result00): 11(ptr) Variable Function - 24(result01): 23(ptr) Variable Function - 33(result02): 32(ptr) Variable Function - 39(result10): 11(ptr) Variable Function - 46(result11): 23(ptr) Variable Function - 52(result12): 32(ptr) Variable Function - 60(result20): 59(ptr) Variable Function - 70(result21): 69(ptr) Variable Function - 80(result22): 79(ptr) Variable Function - 88(result30): 59(ptr) Variable Function - 96(result31): 69(ptr) Variable Function - 104(result32): 79(ptr) Variable Function - 114(result40): 113(ptr) Variable Function - 122(result41): 121(ptr) Variable Function - 131(result42): 130(ptr) Variable Function - 138(result50): 113(ptr) Variable Function - 146(result51): 121(ptr) Variable Function - 153(result52): 130(ptr) Variable Function - 161(result60): 160(ptr) Variable Function - 167(result61): 166(ptr) Variable Function - 173(result62): 172(ptr) Variable Function - 178(result70): 160(ptr) Variable Function - 183(result71): 166(ptr) Variable Function - 188(result72): 172(ptr) Variable Function - 193(result73): 11(ptr) Variable Function - 16: 13 Load 15(subpass_f4) - 21: 7(fvec4) ImageRead 16 20 - Store 12(result00) 21 - 28: 25 Load 27(subpass_i4) - 29: 22(ivec4) ImageRead 28 20 - Store 24(result01) 29 - 37: 34 Load 36(subpass_u4) - 38: 31(ivec4) ImageRead 37 20 - Store 33(result02) 38 - 43: 40 Load 42(subpass_ms_f4) - 45: 7(fvec4) ImageRead 43 20 Sample 44 - Store 39(result10) 45 - 50: 47 Load 49(subpass_ms_i4) - 51: 22(ivec4) ImageRead 50 20 Sample 44 - Store 46(result11) 51 - 56: 53 Load 55(subpass_ms_u4) - 57: 31(ivec4) ImageRead 56 20 Sample 44 - Store 52(result12) 57 - 62: 13 Load 61(subpass_f3) - 63: 7(fvec4) ImageRead 62 20 - 64: 6(float) CompositeExtract 63 0 - 65: 6(float) CompositeExtract 63 1 - 66: 6(float) CompositeExtract 63 2 - 67: 58(fvec3) CompositeConstruct 64 65 66 - Store 60(result20) 67 - 72: 25 Load 71(subpass_i3) - 73: 22(ivec4) ImageRead 72 20 - 74: 17(int) CompositeExtract 73 0 - 75: 17(int) CompositeExtract 73 1 - 76: 17(int) CompositeExtract 73 2 - 77: 68(ivec3) CompositeConstruct 74 75 76 - Store 70(result21) 77 - 82: 34 Load 81(subpass_u3) - 83: 31(ivec4) ImageRead 82 20 - 84: 30(int) CompositeExtract 83 0 - 85: 30(int) CompositeExtract 83 1 - 86: 30(int) CompositeExtract 83 2 - 87: 78(ivec3) CompositeConstruct 84 85 86 - Store 80(result22) 87 - 90: 40 Load 89(subpass_ms_f3) - 91: 7(fvec4) ImageRead 90 20 Sample 44 - 92: 6(float) CompositeExtract 91 0 - 93: 6(float) CompositeExtract 91 1 - 94: 6(float) CompositeExtract 91 2 - 95: 58(fvec3) CompositeConstruct 92 93 94 - Store 88(result30) 95 - 98: 47 Load 97(subpass_ms_i3) - 99: 22(ivec4) ImageRead 98 20 Sample 44 - 100: 17(int) CompositeExtract 99 0 - 101: 17(int) CompositeExtract 99 1 - 102: 17(int) CompositeExtract 99 2 - 103: 68(ivec3) CompositeConstruct 100 101 102 - Store 96(result31) 103 - 106: 53 Load 105(subpass_ms_u3) - 107: 31(ivec4) ImageRead 106 20 Sample 44 - 108: 30(int) CompositeExtract 107 0 - 109: 30(int) CompositeExtract 107 1 - 110: 30(int) CompositeExtract 107 2 - 111: 78(ivec3) CompositeConstruct 108 109 110 - Store 104(result32) 111 - 116: 13 Load 115(subpass_f2) - 117: 7(fvec4) ImageRead 116 20 - 118: 6(float) CompositeExtract 117 0 - 119: 6(float) CompositeExtract 117 1 - 120: 112(fvec2) CompositeConstruct 118 119 - Store 114(result40) 120 - 124: 25 Load 123(subpass_i2) - 125: 22(ivec4) ImageRead 124 20 - 126: 17(int) CompositeExtract 125 0 - 127: 17(int) CompositeExtract 125 1 - 128: 19(ivec2) CompositeConstruct 126 127 - Store 122(result41) 128 - 133: 34 Load 132(subpass_u2) - 134: 31(ivec4) ImageRead 133 20 - 135: 30(int) CompositeExtract 134 0 - 136: 30(int) CompositeExtract 134 1 - 137: 129(ivec2) CompositeConstruct 135 136 - Store 131(result42) 137 - 140: 40 Load 139(subpass_ms_f2) - 142: 7(fvec4) ImageRead 140 20 Sample 141 - 143: 6(float) CompositeExtract 142 0 - 144: 6(float) CompositeExtract 142 1 - 145: 112(fvec2) CompositeConstruct 143 144 - Store 138(result50) 145 - 148: 47 Load 147(subpass_ms_i2) - 149: 22(ivec4) ImageRead 148 20 Sample 141 - 150: 17(int) CompositeExtract 149 0 - 151: 17(int) CompositeExtract 149 1 - 152: 19(ivec2) CompositeConstruct 150 151 - Store 146(result51) 152 - 155: 53 Load 154(subpass_ms_u2) - 156: 31(ivec4) ImageRead 155 20 Sample 141 - 157: 30(int) CompositeExtract 156 0 - 158: 30(int) CompositeExtract 156 1 - 159: 129(ivec2) CompositeConstruct 157 158 - Store 153(result52) 159 - 163: 13 Load 162(subpass_f) - 164: 7(fvec4) ImageRead 163 20 - 165: 6(float) CompositeExtract 164 0 - Store 161(result60) 165 - 169: 25 Load 168(subpass_i) - 170: 22(ivec4) ImageRead 169 20 - 171: 17(int) CompositeExtract 170 0 - Store 167(result61) 171 - 175: 34 Load 174(subpass_u) - 176: 31(ivec4) ImageRead 175 20 - 177: 30(int) CompositeExtract 176 0 - Store 173(result62) 177 - 180: 40 Load 179(subpass_ms_f) - 181: 7(fvec4) ImageRead 180 20 Sample 141 - 182: 6(float) CompositeExtract 181 0 - Store 178(result70) 182 - 185: 47 Load 184(subpass_ms_i) - 186: 22(ivec4) ImageRead 185 20 Sample 141 - 187: 17(int) CompositeExtract 186 0 - Store 183(result71) 187 - 190: 53 Load 189(subpass_ms_u) - 191: 31(ivec4) ImageRead 190 20 Sample 141 - 192: 30(int) CompositeExtract 191 0 - Store 188(result72) 192 - 195: 13 Load 194(subpass_2) - 196: 7(fvec4) ImageRead 195 20 - Store 193(result73) 196 - ReturnValue 198 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.switch.frag.out b/deps/glslang/Test/baseResults/hlsl.switch.frag.out deleted file mode 100644 index c239640f..00000000 --- a/deps/glslang/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): 8000a -// 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/Test/baseResults/hlsl.swizzle.frag.out b/deps/glslang/Test/baseResults/hlsl.swizzle.frag.out deleted file mode 100644 index 88ea3cc9..00000000 --- a/deps/glslang/Test/baseResults/hlsl.swizzle.frag.out +++ /dev/null @@ -1,123 +0,0 @@ -hlsl.swizzle.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:1 Sequence -0:1 move second child to first child ( temp 4-component vector of float) -0:1 'AmbientColor' ( global 4-component vector of float) -0:1 Constant: -0:1 1.000000 -0:1 0.500000 -0:1 0.000000 -0:1 1.000000 -0:4 Function Definition: ShaderFunction(vf4; ( temp 4-component vector of float) -0:4 Function Parameters: -0:4 'input' ( in 4-component vector of float) -0:? Sequence -0:5 Branch: Return with expression -0:5 component-wise multiply ( temp 4-component vector of float) -0:5 vector swizzle ( temp 4-component vector of float) -0:5 'input' ( in 4-component vector of float) -0:5 Sequence -0:5 Constant: -0:5 3 (const int) -0:5 Constant: -0:5 3 (const int) -0:5 Constant: -0:5 1 (const int) -0:5 Constant: -0:5 0 (const int) -0:5 Construct vec4 ( temp 4-component vector of float) -0:5 direct index ( temp float) -0:5 'AmbientColor' ( global 4-component vector of float) -0:5 Constant: -0:5 2 (const int) -0:? Linker Objects -0:? 'AmbientColor' ( global 4-component vector of float) - - -Linked fragment stage: - -WARNING: Linking fragment stage: Entry point not found - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:1 Sequence -0:1 move second child to first child ( temp 4-component vector of float) -0:1 'AmbientColor' ( global 4-component vector of float) -0:1 Constant: -0:1 1.000000 -0:1 0.500000 -0:1 0.000000 -0:1 1.000000 -0:4 Function Definition: ShaderFunction(vf4; ( temp 4-component vector of float) -0:4 Function Parameters: -0:4 'input' ( in 4-component vector of float) -0:? Sequence -0:5 Branch: Return with expression -0:5 component-wise multiply ( temp 4-component vector of float) -0:5 vector swizzle ( temp 4-component vector of float) -0:5 'input' ( in 4-component vector of float) -0:5 Sequence -0:5 Constant: -0:5 3 (const int) -0:5 Constant: -0:5 3 (const int) -0:5 Constant: -0:5 1 (const int) -0:5 Constant: -0:5 0 (const int) -0:5 Construct vec4 ( temp 4-component vector of float) -0:5 direct index ( temp float) -0:5 'AmbientColor' ( global 4-component vector of float) -0:5 Constant: -0:5 2 (const int) -0:? Linker Objects -0:? 'AmbientColor' ( global 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 30 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "PixelShaderFunction" - Name 11 "ShaderFunction(vf4;" - Name 10 "input" - Name 14 "AmbientColor" - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 9: TypeFunction 7(fvec4) 8(ptr) - 13: TypePointer Private 7(fvec4) -14(AmbientColor): 13(ptr) Variable Private - 15: 6(float) Constant 1065353216 - 16: 6(float) Constant 1056964608 - 17: 6(float) Constant 0 - 18: 7(fvec4) ConstantComposite 15 16 17 15 - 21: TypeInt 32 0 - 22: 21(int) Constant 2 - 23: TypePointer Private 6(float) -4(PixelShaderFunction): 2 Function None 3 - 5: Label - Store 14(AmbientColor) 18 - Return - FunctionEnd -11(ShaderFunction(vf4;): 7(fvec4) Function None 9 - 10(input): 8(ptr) FunctionParameter - 12: Label - 19: 7(fvec4) Load 10(input) - 20: 7(fvec4) VectorShuffle 19 19 3 3 1 0 - 24: 23(ptr) AccessChain 14(AmbientColor) 22 - 25: 6(float) Load 24 - 26: 7(fvec4) CompositeConstruct 25 25 25 25 - 27: 7(fvec4) FMul 20 26 - ReturnValue 27 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.synthesizeInput.frag.out b/deps/glslang/Test/baseResults/hlsl.synthesizeInput.frag.out deleted file mode 100644 index 316a3529..00000000 --- a/deps/glslang/Test/baseResults/hlsl.synthesizeInput.frag.out +++ /dev/null @@ -1,172 +0,0 @@ -hlsl.synthesizeInput.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:7 Function Definition: @main(struct-PSInput-f1-u11; ( temp 4-component vector of float) -0:7 Function Parameters: -0:7 'input' ( in structure{ temp float interp, temp uint no_interp}) -0:? Sequence -0:8 Branch: Return with expression -0:8 Construct vec4 ( temp 4-component vector of float) -0:8 Convert uint to float ( temp float) -0:8 no_interp: direct index for structure ( temp uint) -0:8 'input' ( in structure{ temp float interp, temp uint no_interp}) -0:8 Constant: -0:8 1 (const int) -0:8 interp: direct index for structure ( temp float) -0:8 'input' ( in structure{ temp float interp, temp uint no_interp}) -0:8 Constant: -0:8 0 (const int) -0:8 Constant: -0:8 0.000000 -0:8 Constant: -0:8 1.000000 -0:7 Function Definition: main( ( temp void) -0:7 Function Parameters: -0:? Sequence -0:7 Sequence -0:7 move second child to first child ( temp float) -0:7 interp: direct index for structure ( temp float) -0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) -0:7 Constant: -0:7 0 (const int) -0:? 'input.interp' (layout( location=0) in float) -0:7 move second child to first child ( temp uint) -0:7 no_interp: direct index for structure ( temp uint) -0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) -0:7 Constant: -0:7 1 (const int) -0:? 'input.no_interp' (layout( location=1) flat in uint) -0:7 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:7 Function Call: @main(struct-PSInput-f1-u11; ( temp 4-component vector of float) -0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'input.interp' (layout( location=0) in float) -0:? 'input.no_interp' (layout( location=1) flat in uint) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:7 Function Definition: @main(struct-PSInput-f1-u11; ( temp 4-component vector of float) -0:7 Function Parameters: -0:7 'input' ( in structure{ temp float interp, temp uint no_interp}) -0:? Sequence -0:8 Branch: Return with expression -0:8 Construct vec4 ( temp 4-component vector of float) -0:8 Convert uint to float ( temp float) -0:8 no_interp: direct index for structure ( temp uint) -0:8 'input' ( in structure{ temp float interp, temp uint no_interp}) -0:8 Constant: -0:8 1 (const int) -0:8 interp: direct index for structure ( temp float) -0:8 'input' ( in structure{ temp float interp, temp uint no_interp}) -0:8 Constant: -0:8 0 (const int) -0:8 Constant: -0:8 0.000000 -0:8 Constant: -0:8 1.000000 -0:7 Function Definition: main( ( temp void) -0:7 Function Parameters: -0:? Sequence -0:7 Sequence -0:7 move second child to first child ( temp float) -0:7 interp: direct index for structure ( temp float) -0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) -0:7 Constant: -0:7 0 (const int) -0:? 'input.interp' (layout( location=0) in float) -0:7 move second child to first child ( temp uint) -0:7 no_interp: direct index for structure ( temp uint) -0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) -0:7 Constant: -0:7 1 (const int) -0:? 'input.no_interp' (layout( location=1) flat in uint) -0:7 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:7 Function Call: @main(struct-PSInput-f1-u11; ( temp 4-component vector of float) -0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'input.interp' (layout( location=0) in float) -0:? 'input.no_interp' (layout( location=1) flat in uint) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 44 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 32 36 40 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 8 "PSInput" - MemberName 8(PSInput) 0 "interp" - MemberName 8(PSInput) 1 "no_interp" - Name 13 "@main(struct-PSInput-f1-u11;" - Name 12 "input" - Name 30 "input" - Name 32 "input.interp" - Name 36 "input.no_interp" - Name 40 "@entryPointOutput" - Name 41 "param" - Decorate 32(input.interp) Location 0 - Decorate 36(input.no_interp) Flat - Decorate 36(input.no_interp) Location 1 - Decorate 40(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeInt 32 0 - 8(PSInput): TypeStruct 6(float) 7(int) - 9: TypePointer Function 8(PSInput) - 10: TypeVector 6(float) 4 - 11: TypeFunction 10(fvec4) 9(ptr) - 15: TypeInt 32 1 - 16: 15(int) Constant 1 - 17: TypePointer Function 7(int) - 21: 15(int) Constant 0 - 22: TypePointer Function 6(float) - 25: 6(float) Constant 0 - 26: 6(float) Constant 1065353216 - 31: TypePointer Input 6(float) -32(input.interp): 31(ptr) Variable Input - 35: TypePointer Input 7(int) -36(input.no_interp): 35(ptr) Variable Input - 39: TypePointer Output 10(fvec4) -40(@entryPointOutput): 39(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 30(input): 9(ptr) Variable Function - 41(param): 9(ptr) Variable Function - 33: 6(float) Load 32(input.interp) - 34: 22(ptr) AccessChain 30(input) 21 - Store 34 33 - 37: 7(int) Load 36(input.no_interp) - 38: 17(ptr) AccessChain 30(input) 16 - Store 38 37 - 42: 8(PSInput) Load 30(input) - Store 41(param) 42 - 43: 10(fvec4) FunctionCall 13(@main(struct-PSInput-f1-u11;) 41(param) - Store 40(@entryPointOutput) 43 - Return - FunctionEnd -13(@main(struct-PSInput-f1-u11;): 10(fvec4) Function None 11 - 12(input): 9(ptr) FunctionParameter - 14: Label - 18: 17(ptr) AccessChain 12(input) 16 - 19: 7(int) Load 18 - 20: 6(float) ConvertUToF 19 - 23: 22(ptr) AccessChain 12(input) 21 - 24: 6(float) Load 23 - 27: 10(fvec4) CompositeConstruct 20 24 25 26 - ReturnValue 27 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.target.frag.out b/deps/glslang/Test/baseResults/hlsl.target.frag.out deleted file mode 100644 index 8bfaa2ba..00000000 --- a/deps/glslang/Test/baseResults/hlsl.target.frag.out +++ /dev/null @@ -1,209 +0,0 @@ -hlsl.target.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:7 Function Definition: @main(struct-PSInput-f1-u11;vf4;vf4; ( temp void) -0:7 Function Parameters: -0:7 'input' ( in structure{ temp float interp, temp uint no_interp}) -0:7 'out1' ( out 4-component vector of float) -0:7 'out2' ( out 4-component vector of float) -0:? Sequence -0:8 move second child to first child ( temp 4-component vector of float) -0:8 'out1' ( out 4-component vector of float) -0:8 Constant: -0:8 1.000000 -0:8 1.000000 -0:8 1.000000 -0:8 1.000000 -0:9 move second child to first child ( temp 4-component vector of float) -0:9 'out2' ( out 4-component vector of float) -0:9 Constant: -0:9 0.000000 -0:9 0.000000 -0:9 0.000000 -0:9 0.000000 -0:7 Function Definition: main( ( temp void) -0:7 Function Parameters: -0:? Sequence -0:7 Sequence -0:7 move second child to first child ( temp float) -0:7 interp: direct index for structure ( temp float) -0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) -0:7 Constant: -0:7 0 (const int) -0:? 'input.interp' (layout( location=0) in float) -0:7 move second child to first child ( temp uint) -0:7 no_interp: direct index for structure ( temp uint) -0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) -0:7 Constant: -0:7 1 (const int) -0:? 'input.no_interp' (layout( location=1) flat in uint) -0:7 Function Call: @main(struct-PSInput-f1-u11;vf4;vf4; ( temp void) -0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) -0:? 'out1' ( temp 4-component vector of float) -0:? 'out2' ( temp 4-component vector of float) -0:7 move second child to first child ( temp 4-component vector of float) -0:? 'out1' (layout( location=1) out 4-component vector of float) -0:? 'out1' ( temp 4-component vector of float) -0:7 move second child to first child ( temp 4-component vector of float) -0:? 'out2' (layout( location=3) out 4-component vector of float) -0:? 'out2' ( temp 4-component vector of float) -0:? Linker Objects -0:? 'input.interp' (layout( location=0) in float) -0:? 'input.no_interp' (layout( location=1) flat in uint) -0:? 'out1' (layout( location=1) out 4-component vector of float) -0:? 'out2' (layout( location=3) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:7 Function Definition: @main(struct-PSInput-f1-u11;vf4;vf4; ( temp void) -0:7 Function Parameters: -0:7 'input' ( in structure{ temp float interp, temp uint no_interp}) -0:7 'out1' ( out 4-component vector of float) -0:7 'out2' ( out 4-component vector of float) -0:? Sequence -0:8 move second child to first child ( temp 4-component vector of float) -0:8 'out1' ( out 4-component vector of float) -0:8 Constant: -0:8 1.000000 -0:8 1.000000 -0:8 1.000000 -0:8 1.000000 -0:9 move second child to first child ( temp 4-component vector of float) -0:9 'out2' ( out 4-component vector of float) -0:9 Constant: -0:9 0.000000 -0:9 0.000000 -0:9 0.000000 -0:9 0.000000 -0:7 Function Definition: main( ( temp void) -0:7 Function Parameters: -0:? Sequence -0:7 Sequence -0:7 move second child to first child ( temp float) -0:7 interp: direct index for structure ( temp float) -0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) -0:7 Constant: -0:7 0 (const int) -0:? 'input.interp' (layout( location=0) in float) -0:7 move second child to first child ( temp uint) -0:7 no_interp: direct index for structure ( temp uint) -0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) -0:7 Constant: -0:7 1 (const int) -0:? 'input.no_interp' (layout( location=1) flat in uint) -0:7 Function Call: @main(struct-PSInput-f1-u11;vf4;vf4; ( temp void) -0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) -0:? 'out1' ( temp 4-component vector of float) -0:? 'out2' ( temp 4-component vector of float) -0:7 move second child to first child ( temp 4-component vector of float) -0:? 'out1' (layout( location=1) out 4-component vector of float) -0:? 'out1' ( temp 4-component vector of float) -0:7 move second child to first child ( temp 4-component vector of float) -0:? 'out2' (layout( location=3) out 4-component vector of float) -0:? 'out2' ( temp 4-component vector of float) -0:? Linker Objects -0:? 'input.interp' (layout( location=0) in float) -0:? 'input.no_interp' (layout( location=1) flat in uint) -0:? 'out1' (layout( location=1) out 4-component vector of float) -0:? 'out2' (layout( location=3) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 50 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 26 32 46 48 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 8 "PSInput" - MemberName 8(PSInput) 0 "interp" - MemberName 8(PSInput) 1 "no_interp" - Name 16 "@main(struct-PSInput-f1-u11;vf4;vf4;" - Name 13 "input" - Name 14 "out1" - Name 15 "out2" - Name 22 "input" - Name 26 "input.interp" - Name 32 "input.no_interp" - Name 36 "out1" - Name 37 "out2" - Name 38 "param" - Name 40 "param" - Name 41 "param" - Name 46 "out1" - Name 48 "out2" - Decorate 26(input.interp) Location 0 - Decorate 32(input.no_interp) Flat - Decorate 32(input.no_interp) Location 1 - Decorate 46(out1) Location 1 - Decorate 48(out2) Location 3 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeInt 32 0 - 8(PSInput): TypeStruct 6(float) 7(int) - 9: TypePointer Function 8(PSInput) - 10: TypeVector 6(float) 4 - 11: TypePointer Function 10(fvec4) - 12: TypeFunction 2 9(ptr) 11(ptr) 11(ptr) - 18: 6(float) Constant 1065353216 - 19: 10(fvec4) ConstantComposite 18 18 18 18 - 20: 6(float) Constant 0 - 21: 10(fvec4) ConstantComposite 20 20 20 20 - 23: TypeInt 32 1 - 24: 23(int) Constant 0 - 25: TypePointer Input 6(float) -26(input.interp): 25(ptr) Variable Input - 28: TypePointer Function 6(float) - 30: 23(int) Constant 1 - 31: TypePointer Input 7(int) -32(input.no_interp): 31(ptr) Variable Input - 34: TypePointer Function 7(int) - 45: TypePointer Output 10(fvec4) - 46(out1): 45(ptr) Variable Output - 48(out2): 45(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 22(input): 9(ptr) Variable Function - 36(out1): 11(ptr) Variable Function - 37(out2): 11(ptr) Variable Function - 38(param): 9(ptr) Variable Function - 40(param): 11(ptr) Variable Function - 41(param): 11(ptr) Variable Function - 27: 6(float) Load 26(input.interp) - 29: 28(ptr) AccessChain 22(input) 24 - Store 29 27 - 33: 7(int) Load 32(input.no_interp) - 35: 34(ptr) AccessChain 22(input) 30 - Store 35 33 - 39: 8(PSInput) Load 22(input) - Store 38(param) 39 - 42: 2 FunctionCall 16(@main(struct-PSInput-f1-u11;vf4;vf4;) 38(param) 40(param) 41(param) - 43: 10(fvec4) Load 40(param) - Store 36(out1) 43 - 44: 10(fvec4) Load 41(param) - Store 37(out2) 44 - 47: 10(fvec4) Load 36(out1) - Store 46(out1) 47 - 49: 10(fvec4) Load 37(out2) - Store 48(out2) 49 - Return - FunctionEnd -16(@main(struct-PSInput-f1-u11;vf4;vf4;): 2 Function None 12 - 13(input): 9(ptr) FunctionParameter - 14(out1): 11(ptr) FunctionParameter - 15(out2): 11(ptr) FunctionParameter - 17: Label - Store 14(out1) 19 - Store 15(out2) 21 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.targetStruct1.frag.out b/deps/glslang/Test/baseResults/hlsl.targetStruct1.frag.out deleted file mode 100644 index 095d15d0..00000000 --- a/deps/glslang/Test/baseResults/hlsl.targetStruct1.frag.out +++ /dev/null @@ -1,298 +0,0 @@ -hlsl.targetStruct1.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:12 Function Definition: @main(struct-PSInput-f1-u11;vf4; ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) -0:12 Function Parameters: -0:12 'input' ( in structure{ temp float interp, temp uint no_interp}) -0:12 'po' ( out 4-component vector of float) -0:? Sequence -0:14 move second child to first child ( temp 4-component vector of float) -0:14 o1: direct index for structure ( temp 4-component vector of float) -0:14 'pso' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) -0:14 Constant: -0:14 0 (const int) -0:14 Construct vec4 ( temp 4-component vector of float) -0:14 Convert uint to float ( temp float) -0:14 no_interp: direct index for structure ( temp uint) -0:14 'input' ( in structure{ temp float interp, temp uint no_interp}) -0:14 Constant: -0:14 1 (const int) -0:14 interp: direct index for structure ( temp float) -0:14 'input' ( in structure{ temp float interp, temp uint no_interp}) -0:14 Constant: -0:14 0 (const int) -0:14 Constant: -0:14 0.000000 -0:14 Constant: -0:14 1.000000 -0:15 move second child to first child ( temp 4-component vector of float) -0:15 o2: direct index for structure ( temp 4-component vector of float) -0:15 'pso' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) -0:15 Constant: -0:15 1 (const int) -0:15 Constant: -0:15 1.000000 -0:15 1.000000 -0:15 1.000000 -0:15 1.000000 -0:16 move second child to first child ( temp 4-component vector of float) -0:16 'po' ( out 4-component vector of float) -0:16 Constant: -0:16 0.000000 -0:16 0.000000 -0:16 0.000000 -0:16 0.000000 -0:18 Branch: Return with expression -0:18 'pso' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) -0:12 Function Definition: main( ( temp void) -0:12 Function Parameters: -0:? Sequence -0:12 Sequence -0:12 move second child to first child ( temp float) -0:12 interp: direct index for structure ( temp float) -0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) -0:12 Constant: -0:12 0 (const int) -0:? 'input.interp' (layout( location=0) in float) -0:12 move second child to first child ( temp uint) -0:12 no_interp: direct index for structure ( temp uint) -0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) -0:12 Constant: -0:12 1 (const int) -0:? 'input.no_interp' (layout( location=1) flat in uint) -0:12 Sequence -0:12 move second child to first child ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) -0:12 'flattenTemp' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) -0:12 Function Call: @main(struct-PSInput-f1-u11;vf4; ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) -0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) -0:? 'po' ( temp 4-component vector of float) -0:12 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.o1' (layout( location=2) out 4-component vector of float) -0:12 o1: direct index for structure ( temp 4-component vector of float) -0:12 'flattenTemp' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) -0:12 Constant: -0:12 0 (const int) -0:12 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.o2' (layout( location=1) out 4-component vector of float) -0:12 o2: direct index for structure ( temp 4-component vector of float) -0:12 'flattenTemp' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) -0:12 Constant: -0:12 1 (const int) -0:12 move second child to first child ( temp 4-component vector of float) -0:? 'po' (layout( location=0) out 4-component vector of float) -0:? 'po' ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput.o1' (layout( location=2) out 4-component vector of float) -0:? '@entryPointOutput.o2' (layout( location=1) out 4-component vector of float) -0:? 'input.interp' (layout( location=0) in float) -0:? 'input.no_interp' (layout( location=1) flat in uint) -0:? 'po' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:12 Function Definition: @main(struct-PSInput-f1-u11;vf4; ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) -0:12 Function Parameters: -0:12 'input' ( in structure{ temp float interp, temp uint no_interp}) -0:12 'po' ( out 4-component vector of float) -0:? Sequence -0:14 move second child to first child ( temp 4-component vector of float) -0:14 o1: direct index for structure ( temp 4-component vector of float) -0:14 'pso' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) -0:14 Constant: -0:14 0 (const int) -0:14 Construct vec4 ( temp 4-component vector of float) -0:14 Convert uint to float ( temp float) -0:14 no_interp: direct index for structure ( temp uint) -0:14 'input' ( in structure{ temp float interp, temp uint no_interp}) -0:14 Constant: -0:14 1 (const int) -0:14 interp: direct index for structure ( temp float) -0:14 'input' ( in structure{ temp float interp, temp uint no_interp}) -0:14 Constant: -0:14 0 (const int) -0:14 Constant: -0:14 0.000000 -0:14 Constant: -0:14 1.000000 -0:15 move second child to first child ( temp 4-component vector of float) -0:15 o2: direct index for structure ( temp 4-component vector of float) -0:15 'pso' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) -0:15 Constant: -0:15 1 (const int) -0:15 Constant: -0:15 1.000000 -0:15 1.000000 -0:15 1.000000 -0:15 1.000000 -0:16 move second child to first child ( temp 4-component vector of float) -0:16 'po' ( out 4-component vector of float) -0:16 Constant: -0:16 0.000000 -0:16 0.000000 -0:16 0.000000 -0:16 0.000000 -0:18 Branch: Return with expression -0:18 'pso' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) -0:12 Function Definition: main( ( temp void) -0:12 Function Parameters: -0:? Sequence -0:12 Sequence -0:12 move second child to first child ( temp float) -0:12 interp: direct index for structure ( temp float) -0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) -0:12 Constant: -0:12 0 (const int) -0:? 'input.interp' (layout( location=0) in float) -0:12 move second child to first child ( temp uint) -0:12 no_interp: direct index for structure ( temp uint) -0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) -0:12 Constant: -0:12 1 (const int) -0:? 'input.no_interp' (layout( location=1) flat in uint) -0:12 Sequence -0:12 move second child to first child ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) -0:12 'flattenTemp' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) -0:12 Function Call: @main(struct-PSInput-f1-u11;vf4; ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) -0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) -0:? 'po' ( temp 4-component vector of float) -0:12 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.o1' (layout( location=2) out 4-component vector of float) -0:12 o1: direct index for structure ( temp 4-component vector of float) -0:12 'flattenTemp' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) -0:12 Constant: -0:12 0 (const int) -0:12 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.o2' (layout( location=1) out 4-component vector of float) -0:12 o2: direct index for structure ( temp 4-component vector of float) -0:12 'flattenTemp' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) -0:12 Constant: -0:12 1 (const int) -0:12 move second child to first child ( temp 4-component vector of float) -0:? 'po' (layout( location=0) out 4-component vector of float) -0:? 'po' ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput.o1' (layout( location=2) out 4-component vector of float) -0:? '@entryPointOutput.o2' (layout( location=1) out 4-component vector of float) -0:? 'input.interp' (layout( location=0) in float) -0:? 'input.no_interp' (layout( location=1) flat in uint) -0:? 'po' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 65 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 42 46 57 60 63 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 8 "PSInput" - MemberName 8(PSInput) 0 "interp" - MemberName 8(PSInput) 1 "no_interp" - Name 12 "PSOutput" - MemberName 12(PSOutput) 0 "o1" - MemberName 12(PSOutput) 1 "o2" - Name 16 "@main(struct-PSInput-f1-u11;vf4;" - Name 14 "input" - Name 15 "po" - Name 19 "pso" - Name 40 "input" - Name 42 "input.interp" - Name 46 "input.no_interp" - Name 49 "flattenTemp" - Name 50 "po" - Name 51 "param" - Name 53 "param" - Name 57 "@entryPointOutput.o1" - Name 60 "@entryPointOutput.o2" - Name 63 "po" - Decorate 42(input.interp) Location 0 - Decorate 46(input.no_interp) Flat - Decorate 46(input.no_interp) Location 1 - Decorate 57(@entryPointOutput.o1) Location 2 - Decorate 60(@entryPointOutput.o2) Location 1 - Decorate 63(po) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeInt 32 0 - 8(PSInput): TypeStruct 6(float) 7(int) - 9: TypePointer Function 8(PSInput) - 10: TypeVector 6(float) 4 - 11: TypePointer Function 10(fvec4) - 12(PSOutput): TypeStruct 10(fvec4) 10(fvec4) - 13: TypeFunction 12(PSOutput) 9(ptr) 11(ptr) - 18: TypePointer Function 12(PSOutput) - 20: TypeInt 32 1 - 21: 20(int) Constant 0 - 22: 20(int) Constant 1 - 23: TypePointer Function 7(int) - 27: TypePointer Function 6(float) - 30: 6(float) Constant 0 - 31: 6(float) Constant 1065353216 - 34: 10(fvec4) ConstantComposite 31 31 31 31 - 36: 10(fvec4) ConstantComposite 30 30 30 30 - 41: TypePointer Input 6(float) -42(input.interp): 41(ptr) Variable Input - 45: TypePointer Input 7(int) -46(input.no_interp): 45(ptr) Variable Input - 56: TypePointer Output 10(fvec4) -57(@entryPointOutput.o1): 56(ptr) Variable Output -60(@entryPointOutput.o2): 56(ptr) Variable Output - 63(po): 56(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 40(input): 9(ptr) Variable Function - 49(flattenTemp): 18(ptr) Variable Function - 50(po): 11(ptr) Variable Function - 51(param): 9(ptr) Variable Function - 53(param): 11(ptr) Variable Function - 43: 6(float) Load 42(input.interp) - 44: 27(ptr) AccessChain 40(input) 21 - Store 44 43 - 47: 7(int) Load 46(input.no_interp) - 48: 23(ptr) AccessChain 40(input) 22 - Store 48 47 - 52: 8(PSInput) Load 40(input) - Store 51(param) 52 - 54:12(PSOutput) FunctionCall 16(@main(struct-PSInput-f1-u11;vf4;) 51(param) 53(param) - 55: 10(fvec4) Load 53(param) - Store 50(po) 55 - Store 49(flattenTemp) 54 - 58: 11(ptr) AccessChain 49(flattenTemp) 21 - 59: 10(fvec4) Load 58 - Store 57(@entryPointOutput.o1) 59 - 61: 11(ptr) AccessChain 49(flattenTemp) 22 - 62: 10(fvec4) Load 61 - Store 60(@entryPointOutput.o2) 62 - 64: 10(fvec4) Load 50(po) - Store 63(po) 64 - Return - FunctionEnd -16(@main(struct-PSInput-f1-u11;vf4;):12(PSOutput) Function None 13 - 14(input): 9(ptr) FunctionParameter - 15(po): 11(ptr) FunctionParameter - 17: Label - 19(pso): 18(ptr) Variable Function - 24: 23(ptr) AccessChain 14(input) 22 - 25: 7(int) Load 24 - 26: 6(float) ConvertUToF 25 - 28: 27(ptr) AccessChain 14(input) 21 - 29: 6(float) Load 28 - 32: 10(fvec4) CompositeConstruct 26 29 30 31 - 33: 11(ptr) AccessChain 19(pso) 21 - Store 33 32 - 35: 11(ptr) AccessChain 19(pso) 22 - Store 35 34 - Store 15(po) 36 - 37:12(PSOutput) Load 19(pso) - ReturnValue 37 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.targetStruct2.frag.out b/deps/glslang/Test/baseResults/hlsl.targetStruct2.frag.out deleted file mode 100644 index c57ae008..00000000 --- a/deps/glslang/Test/baseResults/hlsl.targetStruct2.frag.out +++ /dev/null @@ -1,298 +0,0 @@ -hlsl.targetStruct2.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:12 Function Definition: @main(struct-PSInput-f1-u11;vf4; ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) -0:12 Function Parameters: -0:12 'input' ( in structure{ temp float interp, temp uint no_interp}) -0:12 'po' ( out 4-component vector of float) -0:? Sequence -0:14 move second child to first child ( temp 4-component vector of float) -0:14 o1: direct index for structure ( temp 4-component vector of float) -0:14 'pso' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) -0:14 Constant: -0:14 0 (const int) -0:14 Construct vec4 ( temp 4-component vector of float) -0:14 Convert uint to float ( temp float) -0:14 no_interp: direct index for structure ( temp uint) -0:14 'input' ( in structure{ temp float interp, temp uint no_interp}) -0:14 Constant: -0:14 1 (const int) -0:14 interp: direct index for structure ( temp float) -0:14 'input' ( in structure{ temp float interp, temp uint no_interp}) -0:14 Constant: -0:14 0 (const int) -0:14 Constant: -0:14 0.000000 -0:14 Constant: -0:14 1.000000 -0:15 move second child to first child ( temp 4-component vector of float) -0:15 o2: direct index for structure ( temp 4-component vector of float) -0:15 'pso' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) -0:15 Constant: -0:15 1 (const int) -0:15 Constant: -0:15 1.000000 -0:15 1.000000 -0:15 1.000000 -0:15 1.000000 -0:16 move second child to first child ( temp 4-component vector of float) -0:16 'po' ( out 4-component vector of float) -0:16 Constant: -0:16 0.000000 -0:16 0.000000 -0:16 0.000000 -0:16 0.000000 -0:18 Branch: Return with expression -0:18 'pso' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) -0:12 Function Definition: main( ( temp void) -0:12 Function Parameters: -0:? Sequence -0:12 Sequence -0:12 move second child to first child ( temp float) -0:12 interp: direct index for structure ( temp float) -0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) -0:12 Constant: -0:12 0 (const int) -0:? 'input.interp' (layout( location=0) in float) -0:12 move second child to first child ( temp uint) -0:12 no_interp: direct index for structure ( temp uint) -0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) -0:12 Constant: -0:12 1 (const int) -0:? 'input.no_interp' (layout( location=1) flat in uint) -0:12 Sequence -0:12 move second child to first child ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) -0:12 'flattenTemp' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) -0:12 Function Call: @main(struct-PSInput-f1-u11;vf4; ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) -0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) -0:? 'po' ( temp 4-component vector of float) -0:12 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.o1' (layout( location=2) out 4-component vector of float) -0:12 o1: direct index for structure ( temp 4-component vector of float) -0:12 'flattenTemp' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) -0:12 Constant: -0:12 0 (const int) -0:12 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.o2' (layout( location=3) out 4-component vector of float) -0:12 o2: direct index for structure ( temp 4-component vector of float) -0:12 'flattenTemp' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) -0:12 Constant: -0:12 1 (const int) -0:12 move second child to first child ( temp 4-component vector of float) -0:? 'po' (layout( location=0) out 4-component vector of float) -0:? 'po' ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput.o1' (layout( location=2) out 4-component vector of float) -0:? '@entryPointOutput.o2' (layout( location=3) out 4-component vector of float) -0:? 'input.interp' (layout( location=0) in float) -0:? 'input.no_interp' (layout( location=1) flat in uint) -0:? 'po' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:12 Function Definition: @main(struct-PSInput-f1-u11;vf4; ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) -0:12 Function Parameters: -0:12 'input' ( in structure{ temp float interp, temp uint no_interp}) -0:12 'po' ( out 4-component vector of float) -0:? Sequence -0:14 move second child to first child ( temp 4-component vector of float) -0:14 o1: direct index for structure ( temp 4-component vector of float) -0:14 'pso' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) -0:14 Constant: -0:14 0 (const int) -0:14 Construct vec4 ( temp 4-component vector of float) -0:14 Convert uint to float ( temp float) -0:14 no_interp: direct index for structure ( temp uint) -0:14 'input' ( in structure{ temp float interp, temp uint no_interp}) -0:14 Constant: -0:14 1 (const int) -0:14 interp: direct index for structure ( temp float) -0:14 'input' ( in structure{ temp float interp, temp uint no_interp}) -0:14 Constant: -0:14 0 (const int) -0:14 Constant: -0:14 0.000000 -0:14 Constant: -0:14 1.000000 -0:15 move second child to first child ( temp 4-component vector of float) -0:15 o2: direct index for structure ( temp 4-component vector of float) -0:15 'pso' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) -0:15 Constant: -0:15 1 (const int) -0:15 Constant: -0:15 1.000000 -0:15 1.000000 -0:15 1.000000 -0:15 1.000000 -0:16 move second child to first child ( temp 4-component vector of float) -0:16 'po' ( out 4-component vector of float) -0:16 Constant: -0:16 0.000000 -0:16 0.000000 -0:16 0.000000 -0:16 0.000000 -0:18 Branch: Return with expression -0:18 'pso' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) -0:12 Function Definition: main( ( temp void) -0:12 Function Parameters: -0:? Sequence -0:12 Sequence -0:12 move second child to first child ( temp float) -0:12 interp: direct index for structure ( temp float) -0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) -0:12 Constant: -0:12 0 (const int) -0:? 'input.interp' (layout( location=0) in float) -0:12 move second child to first child ( temp uint) -0:12 no_interp: direct index for structure ( temp uint) -0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) -0:12 Constant: -0:12 1 (const int) -0:? 'input.no_interp' (layout( location=1) flat in uint) -0:12 Sequence -0:12 move second child to first child ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) -0:12 'flattenTemp' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) -0:12 Function Call: @main(struct-PSInput-f1-u11;vf4; ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) -0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) -0:? 'po' ( temp 4-component vector of float) -0:12 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.o1' (layout( location=2) out 4-component vector of float) -0:12 o1: direct index for structure ( temp 4-component vector of float) -0:12 'flattenTemp' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) -0:12 Constant: -0:12 0 (const int) -0:12 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.o2' (layout( location=3) out 4-component vector of float) -0:12 o2: direct index for structure ( temp 4-component vector of float) -0:12 'flattenTemp' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) -0:12 Constant: -0:12 1 (const int) -0:12 move second child to first child ( temp 4-component vector of float) -0:? 'po' (layout( location=0) out 4-component vector of float) -0:? 'po' ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput.o1' (layout( location=2) out 4-component vector of float) -0:? '@entryPointOutput.o2' (layout( location=3) out 4-component vector of float) -0:? 'input.interp' (layout( location=0) in float) -0:? 'input.no_interp' (layout( location=1) flat in uint) -0:? 'po' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 65 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 42 46 57 60 63 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 8 "PSInput" - MemberName 8(PSInput) 0 "interp" - MemberName 8(PSInput) 1 "no_interp" - Name 12 "PSOutput" - MemberName 12(PSOutput) 0 "o1" - MemberName 12(PSOutput) 1 "o2" - Name 16 "@main(struct-PSInput-f1-u11;vf4;" - Name 14 "input" - Name 15 "po" - Name 19 "pso" - Name 40 "input" - Name 42 "input.interp" - Name 46 "input.no_interp" - Name 49 "flattenTemp" - Name 50 "po" - Name 51 "param" - Name 53 "param" - Name 57 "@entryPointOutput.o1" - Name 60 "@entryPointOutput.o2" - Name 63 "po" - Decorate 42(input.interp) Location 0 - Decorate 46(input.no_interp) Flat - Decorate 46(input.no_interp) Location 1 - Decorate 57(@entryPointOutput.o1) Location 2 - Decorate 60(@entryPointOutput.o2) Location 3 - Decorate 63(po) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeInt 32 0 - 8(PSInput): TypeStruct 6(float) 7(int) - 9: TypePointer Function 8(PSInput) - 10: TypeVector 6(float) 4 - 11: TypePointer Function 10(fvec4) - 12(PSOutput): TypeStruct 10(fvec4) 10(fvec4) - 13: TypeFunction 12(PSOutput) 9(ptr) 11(ptr) - 18: TypePointer Function 12(PSOutput) - 20: TypeInt 32 1 - 21: 20(int) Constant 0 - 22: 20(int) Constant 1 - 23: TypePointer Function 7(int) - 27: TypePointer Function 6(float) - 30: 6(float) Constant 0 - 31: 6(float) Constant 1065353216 - 34: 10(fvec4) ConstantComposite 31 31 31 31 - 36: 10(fvec4) ConstantComposite 30 30 30 30 - 41: TypePointer Input 6(float) -42(input.interp): 41(ptr) Variable Input - 45: TypePointer Input 7(int) -46(input.no_interp): 45(ptr) Variable Input - 56: TypePointer Output 10(fvec4) -57(@entryPointOutput.o1): 56(ptr) Variable Output -60(@entryPointOutput.o2): 56(ptr) Variable Output - 63(po): 56(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 40(input): 9(ptr) Variable Function - 49(flattenTemp): 18(ptr) Variable Function - 50(po): 11(ptr) Variable Function - 51(param): 9(ptr) Variable Function - 53(param): 11(ptr) Variable Function - 43: 6(float) Load 42(input.interp) - 44: 27(ptr) AccessChain 40(input) 21 - Store 44 43 - 47: 7(int) Load 46(input.no_interp) - 48: 23(ptr) AccessChain 40(input) 22 - Store 48 47 - 52: 8(PSInput) Load 40(input) - Store 51(param) 52 - 54:12(PSOutput) FunctionCall 16(@main(struct-PSInput-f1-u11;vf4;) 51(param) 53(param) - 55: 10(fvec4) Load 53(param) - Store 50(po) 55 - Store 49(flattenTemp) 54 - 58: 11(ptr) AccessChain 49(flattenTemp) 21 - 59: 10(fvec4) Load 58 - Store 57(@entryPointOutput.o1) 59 - 61: 11(ptr) AccessChain 49(flattenTemp) 22 - 62: 10(fvec4) Load 61 - Store 60(@entryPointOutput.o2) 62 - 64: 10(fvec4) Load 50(po) - Store 63(po) 64 - Return - FunctionEnd -16(@main(struct-PSInput-f1-u11;vf4;):12(PSOutput) Function None 13 - 14(input): 9(ptr) FunctionParameter - 15(po): 11(ptr) FunctionParameter - 17: Label - 19(pso): 18(ptr) Variable Function - 24: 23(ptr) AccessChain 14(input) 22 - 25: 7(int) Load 24 - 26: 6(float) ConvertUToF 25 - 28: 27(ptr) AccessChain 14(input) 21 - 29: 6(float) Load 28 - 32: 10(fvec4) CompositeConstruct 26 29 30 31 - 33: 11(ptr) AccessChain 19(pso) 21 - Store 33 32 - 35: 11(ptr) AccessChain 19(pso) 22 - Store 35 34 - Store 15(po) 36 - 37:12(PSOutput) Load 19(pso) - ReturnValue 37 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.templatetypes.frag.out b/deps/glslang/Test/baseResults/hlsl.templatetypes.frag.out deleted file mode 100644 index 842ed0d6..00000000 --- a/deps/glslang/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:4 Constant: -0:4 1.000000 -0:4 2.000000 -0:4 3.000000 -0:4 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 Constant: -0:5 2.000000 -0:5 3.000000 -0:5 4.000000 -0:5 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:13 Constant: -0:13 false (const bool) -0:13 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 Constant: -0:14 1 (const int) -0:14 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 Constant: -0:15 1.000000 -0:15 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 Constant: -0:16 1.000000 -0:16 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 Constant: -0:17 1 (const uint) -0:17 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 Constant: -0:19 false (const bool) -0:19 true (const bool) -0:19 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 Constant: -0:20 1 (const int) -0:20 2 (const int) -0:20 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 Constant: -0:21 1.000000 -0:21 2.000000 -0:21 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 Constant: -0:22 1.000000 -0:22 2.000000 -0:22 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 Constant: -0:23 1 (const uint) -0:23 2 (const uint) -0:23 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 Constant: -0:25 false (const bool) -0:25 true (const bool) -0:25 true (const bool) -0:25 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 Constant: -0:26 1 (const int) -0:26 2 (const int) -0:26 3 (const int) -0:26 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 Constant: -0:27 1.000000 -0:27 2.000000 -0:27 3.000000 -0:27 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 Constant: -0:28 1.000000 -0:28 2.000000 -0:28 3.000000 -0:28 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 Constant: -0:29 1 (const uint) -0:29 2 (const uint) -0:29 3 (const uint) -0:29 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 Constant: -0:31 0.000000 -0:31 1.000000 -0:31 2.000000 -0:31 3.000000 -0:31 4.000000 -0:31 5.000000 -0:31 6.000000 -0:31 7.000000 -0:31 8.000000 -0:31 9.000000 -0:31 10.000000 -0:31 11.000000 -0:31 12.000000 -0:31 13.000000 -0:31 14.000000 -0:31 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 Constant: -0:32 0.000000 -0:32 1.000000 -0:32 2.000000 -0:32 3.000000 -0:32 4.000000 -0:32 5.000000 -0:32 6.000000 -0:32 7.000000 -0:32 8.000000 -0:32 9.000000 -0:32 10.000000 -0:32 11.000000 -0:32 12.000000 -0:32 13.000000 -0:32 14.000000 -0:32 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 Constant: -0:35 1.000000 -0:35 2.000000 -0:35 3.000000 -0:35 4.000000 -0:35 5.000000 -0:35 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 Constant: -0:36 1.000000 -0:36 2.000000 -0:36 3.000000 -0:36 4.000000 -0:36 5.000000 -0:36 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 Constant: -0:39 1.000000 -0:39 2.000000 -0:39 3.000000 -0:39 4.000000 -0:39 5.000000 -0:39 6.000000 -0:39 7.000000 -0:39 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 Constant: -0:40 1.000000 -0:40 2.000000 -0:40 3.000000 -0:40 4.000000 -0:40 5.000000 -0:40 6.000000 -0:40 7.000000 -0:40 8.000000 -0:40 9.000000 -0:40 10.000000 -0:40 11.000000 -0:40 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:4 Constant: -0:4 1.000000 -0:4 2.000000 -0:4 3.000000 -0:4 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 Constant: -0:5 2.000000 -0:5 3.000000 -0:5 4.000000 -0:5 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:13 Constant: -0:13 false (const bool) -0:13 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 Constant: -0:14 1 (const int) -0:14 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 Constant: -0:15 1.000000 -0:15 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 Constant: -0:16 1.000000 -0:16 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 Constant: -0:17 1 (const uint) -0:17 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 Constant: -0:19 false (const bool) -0:19 true (const bool) -0:19 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 Constant: -0:20 1 (const int) -0:20 2 (const int) -0:20 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 Constant: -0:21 1.000000 -0:21 2.000000 -0:21 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 Constant: -0:22 1.000000 -0:22 2.000000 -0:22 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 Constant: -0:23 1 (const uint) -0:23 2 (const uint) -0:23 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 Constant: -0:25 false (const bool) -0:25 true (const bool) -0:25 true (const bool) -0:25 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 Constant: -0:26 1 (const int) -0:26 2 (const int) -0:26 3 (const int) -0:26 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 Constant: -0:27 1.000000 -0:27 2.000000 -0:27 3.000000 -0:27 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 Constant: -0:28 1.000000 -0:28 2.000000 -0:28 3.000000 -0:28 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 Constant: -0:29 1 (const uint) -0:29 2 (const uint) -0:29 3 (const uint) -0:29 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 Constant: -0:31 0.000000 -0:31 1.000000 -0:31 2.000000 -0:31 3.000000 -0:31 4.000000 -0:31 5.000000 -0:31 6.000000 -0:31 7.000000 -0:31 8.000000 -0:31 9.000000 -0:31 10.000000 -0:31 11.000000 -0:31 12.000000 -0:31 13.000000 -0:31 14.000000 -0:31 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 Constant: -0:32 0.000000 -0:32 1.000000 -0:32 2.000000 -0:32 3.000000 -0:32 4.000000 -0:32 5.000000 -0:32 6.000000 -0:32 7.000000 -0:32 8.000000 -0:32 9.000000 -0:32 10.000000 -0:32 11.000000 -0:32 12.000000 -0:32 13.000000 -0:32 14.000000 -0:32 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 Constant: -0:35 1.000000 -0:35 2.000000 -0:35 3.000000 -0:35 4.000000 -0:35 5.000000 -0:35 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 Constant: -0:36 1.000000 -0:36 2.000000 -0:36 3.000000 -0:36 4.000000 -0:36 5.000000 -0:36 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 Constant: -0:39 1.000000 -0:39 2.000000 -0:39 3.000000 -0:39 4.000000 -0:39 5.000000 -0:39 6.000000 -0:39 7.000000 -0:39 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 Constant: -0:40 1.000000 -0:40 2.000000 -0:40 3.000000 -0:40 4.000000 -0:40 5.000000 -0:40 6.000000 -0:40 7.000000 -0:40 8.000000 -0:40 9.000000 -0:40 10.000000 -0:40 11.000000 -0:40 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): 8000a -// 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/Test/baseResults/hlsl.texture.struct.frag.out b/deps/glslang/Test/baseResults/hlsl.texture.struct.frag.out deleted file mode 100644 index bf9ab680..00000000 --- a/deps/glslang/Test/baseResults/hlsl.texture.struct.frag.out +++ /dev/null @@ -1,1205 +0,0 @@ -hlsl.texture.struct.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:38 Function Definition: fn1(t2-tx-struct0-1; ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) -0:38 Function Parameters: -0:38 't1' ( in texture2D) -0:? Sequence -0:38 Branch: Return with expression -0:38 Sequence -0:38 move second child to first child ( temp 4-component vector of float) -0:38 '@sampleResultShadow' ( temp 4-component vector of float) -0:? texture ( temp 4-component vector of float) -0:38 Construct combined texture-sampler ( temp sampler2D) -0:38 't1' ( in texture2D) -0:38 'g_sSamp' ( uniform sampler) -0:38 Constant: -0:38 0.600000 -0:38 0.610000 -0:38 move second child to first child ( temp float) -0:38 c0: direct index for structure ( temp float) -0:38 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) -0:38 Constant: -0:38 0 (const uint) -0:38 direct index ( temp float) -0:38 '@sampleResultShadow' ( temp 4-component vector of float) -0:38 Constant: -0:38 0 (const uint) -0:38 move second child to first child ( temp float) -0:38 direct index ( temp float) -0:38 c1: direct index for structure ( temp 2-component vector of float) -0:38 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) -0:38 Constant: -0:38 1 (const uint) -0:38 Constant: -0:38 0 (const int) -0:38 direct index ( temp float) -0:38 '@sampleResultShadow' ( temp 4-component vector of float) -0:38 Constant: -0:38 1 (const uint) -0:38 move second child to first child ( temp float) -0:38 direct index ( temp float) -0:38 c1: direct index for structure ( temp 2-component vector of float) -0:38 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) -0:38 Constant: -0:38 1 (const uint) -0:38 Constant: -0:38 1 (const int) -0:38 direct index ( temp float) -0:38 '@sampleResultShadow' ( temp 4-component vector of float) -0:38 Constant: -0:38 2 (const uint) -0:38 move second child to first child ( temp float) -0:38 c2: direct index for structure ( temp float) -0:38 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) -0:38 Constant: -0:38 2 (const uint) -0:38 direct index ( temp float) -0:38 '@sampleResultShadow' ( temp 4-component vector of float) -0:38 Constant: -0:38 3 (const uint) -0:38 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) -0:39 Function Definition: fn1(t2-tx-struct1-1; ( temp structure{ temp float c0, temp 3-component vector of float c1}) -0:39 Function Parameters: -0:39 't2' ( in texture2D) -0:? Sequence -0:39 Branch: Return with expression -0:39 Sequence -0:39 move second child to first child ( temp 4-component vector of float) -0:39 '@sampleResultShadow' ( temp 4-component vector of float) -0:? texture ( temp 4-component vector of float) -0:39 Construct combined texture-sampler ( temp sampler2D) -0:39 't2' ( in texture2D) -0:39 'g_sSamp' ( uniform sampler) -0:39 Constant: -0:39 0.600000 -0:39 0.610000 -0:39 move second child to first child ( temp float) -0:39 c0: direct index for structure ( temp float) -0:39 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) -0:39 Constant: -0:39 0 (const uint) -0:39 direct index ( temp float) -0:39 '@sampleResultShadow' ( temp 4-component vector of float) -0:39 Constant: -0:39 0 (const uint) -0:39 move second child to first child ( temp float) -0:39 direct index ( temp float) -0:39 c1: direct index for structure ( temp 3-component vector of float) -0:39 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) -0:39 Constant: -0:39 1 (const uint) -0:39 Constant: -0:39 0 (const int) -0:39 direct index ( temp float) -0:39 '@sampleResultShadow' ( temp 4-component vector of float) -0:39 Constant: -0:39 1 (const uint) -0:39 move second child to first child ( temp float) -0:39 direct index ( temp float) -0:39 c1: direct index for structure ( temp 3-component vector of float) -0:39 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) -0:39 Constant: -0:39 1 (const uint) -0:39 Constant: -0:39 1 (const int) -0:39 direct index ( temp float) -0:39 '@sampleResultShadow' ( temp 4-component vector of float) -0:39 Constant: -0:39 2 (const uint) -0:39 move second child to first child ( temp float) -0:39 direct index ( temp float) -0:39 c1: direct index for structure ( temp 3-component vector of float) -0:39 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) -0:39 Constant: -0:39 1 (const uint) -0:39 Constant: -0:39 2 (const int) -0:39 direct index ( temp float) -0:39 '@sampleResultShadow' ( temp 4-component vector of float) -0:39 Constant: -0:39 3 (const uint) -0:39 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) -0:42 Function Definition: @main( ( temp 4-component vector of float) -0:42 Function Parameters: -0:? Sequence -0:43 Sequence -0:43 move second child to first child ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) -0:43 's1' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) -0:43 Sequence -0:43 move second child to first child ( temp 4-component vector of float) -0:43 '@sampleResultShadow' ( temp 4-component vector of float) -0:? texture ( temp 4-component vector of float) -0:43 Construct combined texture-sampler ( temp sampler2D) -0:43 'g_tTex2s1' ( uniform texture2D) -0:43 'g_sSamp' ( uniform sampler) -0:43 Constant: -0:43 0.100000 -0:43 0.110000 -0:43 move second child to first child ( temp float) -0:43 c0: direct index for structure ( temp float) -0:43 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) -0:43 Constant: -0:43 0 (const uint) -0:43 direct index ( temp float) -0:43 '@sampleResultShadow' ( temp 4-component vector of float) -0:43 Constant: -0:43 0 (const uint) -0:43 move second child to first child ( temp float) -0:43 direct index ( temp float) -0:43 c1: direct index for structure ( temp 2-component vector of float) -0:43 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) -0:43 Constant: -0:43 1 (const uint) -0:43 Constant: -0:43 0 (const int) -0:43 direct index ( temp float) -0:43 '@sampleResultShadow' ( temp 4-component vector of float) -0:43 Constant: -0:43 1 (const uint) -0:43 move second child to first child ( temp float) -0:43 direct index ( temp float) -0:43 c1: direct index for structure ( temp 2-component vector of float) -0:43 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) -0:43 Constant: -0:43 1 (const uint) -0:43 Constant: -0:43 1 (const int) -0:43 direct index ( temp float) -0:43 '@sampleResultShadow' ( temp 4-component vector of float) -0:43 Constant: -0:43 2 (const uint) -0:43 move second child to first child ( temp float) -0:43 c2: direct index for structure ( temp float) -0:43 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) -0:43 Constant: -0:43 2 (const uint) -0:43 direct index ( temp float) -0:43 '@sampleResultShadow' ( temp 4-component vector of float) -0:43 Constant: -0:43 3 (const uint) -0:43 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) -0:44 Sequence -0:44 move second child to first child ( temp structure{ temp float c0, temp 3-component vector of float c1}) -0:44 's2' ( temp structure{ temp float c0, temp 3-component vector of float c1}) -0:44 Sequence -0:44 move second child to first child ( temp 4-component vector of float) -0:44 '@sampleResultShadow' ( temp 4-component vector of float) -0:? texture ( temp 4-component vector of float) -0:44 Construct combined texture-sampler ( temp sampler2D) -0:44 'g_tTex2s2' ( uniform texture2D) -0:44 'g_sSamp' ( uniform sampler) -0:44 Constant: -0:44 0.200000 -0:44 0.210000 -0:44 move second child to first child ( temp float) -0:44 c0: direct index for structure ( temp float) -0:44 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) -0:44 Constant: -0:44 0 (const uint) -0:44 direct index ( temp float) -0:44 '@sampleResultShadow' ( temp 4-component vector of float) -0:44 Constant: -0:44 0 (const uint) -0:44 move second child to first child ( temp float) -0:44 direct index ( temp float) -0:44 c1: direct index for structure ( temp 3-component vector of float) -0:44 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) -0:44 Constant: -0:44 1 (const uint) -0:44 Constant: -0:44 0 (const int) -0:44 direct index ( temp float) -0:44 '@sampleResultShadow' ( temp 4-component vector of float) -0:44 Constant: -0:44 1 (const uint) -0:44 move second child to first child ( temp float) -0:44 direct index ( temp float) -0:44 c1: direct index for structure ( temp 3-component vector of float) -0:44 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) -0:44 Constant: -0:44 1 (const uint) -0:44 Constant: -0:44 1 (const int) -0:44 direct index ( temp float) -0:44 '@sampleResultShadow' ( temp 4-component vector of float) -0:44 Constant: -0:44 2 (const uint) -0:44 move second child to first child ( temp float) -0:44 direct index ( temp float) -0:44 c1: direct index for structure ( temp 3-component vector of float) -0:44 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) -0:44 Constant: -0:44 1 (const uint) -0:44 Constant: -0:44 2 (const int) -0:44 direct index ( temp float) -0:44 '@sampleResultShadow' ( temp 4-component vector of float) -0:44 Constant: -0:44 3 (const uint) -0:44 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) -0:45 Sequence -0:45 move second child to first child ( temp structure{ temp 2-component vector of float c0, temp 1-component vector of float c1}) -0:45 's3' ( temp structure{ temp 2-component vector of float c0, temp 1-component vector of float c1}) -0:45 Sequence -0:45 move second child to first child ( temp 4-component vector of float) -0:45 '@sampleResultShadow' ( temp 4-component vector of float) -0:? texture ( temp 4-component vector of float) -0:45 Construct combined texture-sampler ( temp sampler2D) -0:45 'g_tTex2s3' ( uniform texture2D) -0:45 'g_sSamp' ( uniform sampler) -0:45 Constant: -0:45 0.300000 -0:45 0.310000 -0:45 move second child to first child ( temp float) -0:45 direct index ( temp float) -0:45 c0: direct index for structure ( temp 2-component vector of float) -0:45 '@sampleStructTemp' ( temp structure{ temp 2-component vector of float c0, temp 1-component vector of float c1}) -0:45 Constant: -0:45 0 (const uint) -0:45 Constant: -0:45 0 (const int) -0:45 direct index ( temp float) -0:45 '@sampleResultShadow' ( temp 4-component vector of float) -0:45 Constant: -0:45 0 (const uint) -0:45 move second child to first child ( temp float) -0:45 direct index ( temp float) -0:45 c0: direct index for structure ( temp 2-component vector of float) -0:45 '@sampleStructTemp' ( temp structure{ temp 2-component vector of float c0, temp 1-component vector of float c1}) -0:45 Constant: -0:45 0 (const uint) -0:45 Constant: -0:45 1 (const int) -0:45 direct index ( temp float) -0:45 '@sampleResultShadow' ( temp 4-component vector of float) -0:45 Constant: -0:45 1 (const uint) -0:45 move second child to first child ( temp float) -0:45 direct index ( temp float) -0:45 c1: direct index for structure ( temp 1-component vector of float) -0:45 '@sampleStructTemp' ( temp structure{ temp 2-component vector of float c0, temp 1-component vector of float c1}) -0:45 Constant: -0:45 1 (const uint) -0:45 Constant: -0:45 0 (const int) -0:45 direct index ( temp float) -0:45 '@sampleResultShadow' ( temp 4-component vector of float) -0:45 Constant: -0:45 2 (const uint) -0:45 '@sampleStructTemp' ( temp structure{ temp 2-component vector of float c0, temp 1-component vector of float c1}) -0:46 Sequence -0:46 move second child to first child ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) -0:46 's4' ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) -0:46 Sequence -0:46 move second child to first child ( temp 4-component vector of int) -0:46 '@sampleResultShadow' ( temp 4-component vector of int) -0:? texture ( temp 4-component vector of int) -0:46 Construct combined texture-sampler ( temp isampler2D) -0:46 'g_tTex2s4' ( uniform itexture2D) -0:46 'g_sSamp' ( uniform sampler) -0:46 Constant: -0:46 0.400000 -0:46 0.410000 -0:46 move second child to first child ( temp int) -0:46 c0: direct index for structure ( temp int) -0:46 '@sampleStructTemp' ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) -0:46 Constant: -0:46 0 (const uint) -0:46 direct index ( temp int) -0:46 '@sampleResultShadow' ( temp 4-component vector of int) -0:46 Constant: -0:46 0 (const uint) -0:46 move second child to first child ( temp float) -0:46 direct index ( temp float) -0:46 c1: direct index for structure ( temp 2-component vector of int) -0:46 '@sampleStructTemp' ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) -0:46 Constant: -0:46 1 (const uint) -0:46 Constant: -0:46 0 (const int) -0:46 Convert int to float ( temp float) -0:46 direct index ( temp int) -0:46 '@sampleResultShadow' ( temp 4-component vector of int) -0:46 Constant: -0:46 1 (const uint) -0:46 move second child to first child ( temp float) -0:46 direct index ( temp float) -0:46 c1: direct index for structure ( temp 2-component vector of int) -0:46 '@sampleStructTemp' ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) -0:46 Constant: -0:46 1 (const uint) -0:46 Constant: -0:46 1 (const int) -0:46 Convert int to float ( temp float) -0:46 direct index ( temp int) -0:46 '@sampleResultShadow' ( temp 4-component vector of int) -0:46 Constant: -0:46 2 (const uint) -0:46 move second child to first child ( temp int) -0:46 c2: direct index for structure ( temp int) -0:46 '@sampleStructTemp' ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) -0:46 Constant: -0:46 2 (const uint) -0:46 direct index ( temp int) -0:46 '@sampleResultShadow' ( temp 4-component vector of int) -0:46 Constant: -0:46 3 (const uint) -0:46 '@sampleStructTemp' ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) -0:47 Sequence -0:47 move second child to first child ( temp structure{ temp uint c0, temp uint c1}) -0:47 's5' ( temp structure{ temp uint c0, temp uint c1}) -0:47 Sequence -0:47 move second child to first child ( temp 4-component vector of uint) -0:47 '@sampleResultShadow' ( temp 4-component vector of uint) -0:? texture ( temp 4-component vector of uint) -0:47 Construct combined texture-sampler ( temp usampler2D) -0:47 'g_tTex2s5' ( uniform utexture2D) -0:47 'g_sSamp' ( uniform sampler) -0:47 Constant: -0:47 0.500000 -0:47 0.510000 -0:47 move second child to first child ( temp uint) -0:47 c0: direct index for structure ( temp uint) -0:47 '@sampleStructTemp' ( temp structure{ temp uint c0, temp uint c1}) -0:47 Constant: -0:47 0 (const uint) -0:47 direct index ( temp uint) -0:47 '@sampleResultShadow' ( temp 4-component vector of uint) -0:47 Constant: -0:47 0 (const uint) -0:47 move second child to first child ( temp uint) -0:47 c1: direct index for structure ( temp uint) -0:47 '@sampleStructTemp' ( temp structure{ temp uint c0, temp uint c1}) -0:47 Constant: -0:47 1 (const uint) -0:47 direct index ( temp uint) -0:47 '@sampleResultShadow' ( temp 4-component vector of uint) -0:47 Constant: -0:47 1 (const uint) -0:47 '@sampleStructTemp' ( temp structure{ temp uint c0, temp uint c1}) -0:49 Sequence -0:49 move second child to first child ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) -0:49 'r0' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) -0:49 Function Call: fn1(t2-tx-struct0-1; ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) -0:49 'g_tTex2s1' ( uniform texture2D) -0:50 Sequence -0:50 move second child to first child ( temp structure{ temp float c0, temp 3-component vector of float c1}) -0:50 'r1' ( temp structure{ temp float c0, temp 3-component vector of float c1}) -0:50 Function Call: fn1(t2-tx-struct1-1; ( temp structure{ temp float c0, temp 3-component vector of float c1}) -0:50 'g_tTex2s2' ( uniform texture2D) -0:51 Sequence -0:51 move second child to first child ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) -0:51 'r2' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) -0:51 Function Call: fn1(t2-tx-struct0-1; ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) -0:51 'g_tTex2s1a' ( uniform texture2D) -0:53 Branch: Return with expression -0:53 Constant: -0:53 0.000000 -0:53 0.000000 -0:53 0.000000 -0:53 0.000000 -0:42 Function Definition: main( ( temp void) -0:42 Function Parameters: -0:? Sequence -0:42 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:42 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'g_sSamp' ( uniform sampler) -0:? 'g_tTex2s1' ( uniform texture2D) -0:? 'g_tTex2s2' ( uniform texture2D) -0:? 'g_tTex2s3' ( uniform texture2D) -0:? 'g_tTex2s4' ( uniform itexture2D) -0:? 'g_tTex2s5' ( uniform utexture2D) -0:? 'g_tTex2s1a' ( uniform texture2D) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:38 Function Definition: fn1(t2-tx-struct0-1; ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) -0:38 Function Parameters: -0:38 't1' ( in texture2D) -0:? Sequence -0:38 Branch: Return with expression -0:38 Sequence -0:38 move second child to first child ( temp 4-component vector of float) -0:38 '@sampleResultShadow' ( temp 4-component vector of float) -0:? texture ( temp 4-component vector of float) -0:38 Construct combined texture-sampler ( temp sampler2D) -0:38 't1' ( in texture2D) -0:38 'g_sSamp' ( uniform sampler) -0:38 Constant: -0:38 0.600000 -0:38 0.610000 -0:38 move second child to first child ( temp float) -0:38 c0: direct index for structure ( temp float) -0:38 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) -0:38 Constant: -0:38 0 (const uint) -0:38 direct index ( temp float) -0:38 '@sampleResultShadow' ( temp 4-component vector of float) -0:38 Constant: -0:38 0 (const uint) -0:38 move second child to first child ( temp float) -0:38 direct index ( temp float) -0:38 c1: direct index for structure ( temp 2-component vector of float) -0:38 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) -0:38 Constant: -0:38 1 (const uint) -0:38 Constant: -0:38 0 (const int) -0:38 direct index ( temp float) -0:38 '@sampleResultShadow' ( temp 4-component vector of float) -0:38 Constant: -0:38 1 (const uint) -0:38 move second child to first child ( temp float) -0:38 direct index ( temp float) -0:38 c1: direct index for structure ( temp 2-component vector of float) -0:38 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) -0:38 Constant: -0:38 1 (const uint) -0:38 Constant: -0:38 1 (const int) -0:38 direct index ( temp float) -0:38 '@sampleResultShadow' ( temp 4-component vector of float) -0:38 Constant: -0:38 2 (const uint) -0:38 move second child to first child ( temp float) -0:38 c2: direct index for structure ( temp float) -0:38 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) -0:38 Constant: -0:38 2 (const uint) -0:38 direct index ( temp float) -0:38 '@sampleResultShadow' ( temp 4-component vector of float) -0:38 Constant: -0:38 3 (const uint) -0:38 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) -0:39 Function Definition: fn1(t2-tx-struct1-1; ( temp structure{ temp float c0, temp 3-component vector of float c1}) -0:39 Function Parameters: -0:39 't2' ( in texture2D) -0:? Sequence -0:39 Branch: Return with expression -0:39 Sequence -0:39 move second child to first child ( temp 4-component vector of float) -0:39 '@sampleResultShadow' ( temp 4-component vector of float) -0:? texture ( temp 4-component vector of float) -0:39 Construct combined texture-sampler ( temp sampler2D) -0:39 't2' ( in texture2D) -0:39 'g_sSamp' ( uniform sampler) -0:39 Constant: -0:39 0.600000 -0:39 0.610000 -0:39 move second child to first child ( temp float) -0:39 c0: direct index for structure ( temp float) -0:39 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) -0:39 Constant: -0:39 0 (const uint) -0:39 direct index ( temp float) -0:39 '@sampleResultShadow' ( temp 4-component vector of float) -0:39 Constant: -0:39 0 (const uint) -0:39 move second child to first child ( temp float) -0:39 direct index ( temp float) -0:39 c1: direct index for structure ( temp 3-component vector of float) -0:39 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) -0:39 Constant: -0:39 1 (const uint) -0:39 Constant: -0:39 0 (const int) -0:39 direct index ( temp float) -0:39 '@sampleResultShadow' ( temp 4-component vector of float) -0:39 Constant: -0:39 1 (const uint) -0:39 move second child to first child ( temp float) -0:39 direct index ( temp float) -0:39 c1: direct index for structure ( temp 3-component vector of float) -0:39 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) -0:39 Constant: -0:39 1 (const uint) -0:39 Constant: -0:39 1 (const int) -0:39 direct index ( temp float) -0:39 '@sampleResultShadow' ( temp 4-component vector of float) -0:39 Constant: -0:39 2 (const uint) -0:39 move second child to first child ( temp float) -0:39 direct index ( temp float) -0:39 c1: direct index for structure ( temp 3-component vector of float) -0:39 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) -0:39 Constant: -0:39 1 (const uint) -0:39 Constant: -0:39 2 (const int) -0:39 direct index ( temp float) -0:39 '@sampleResultShadow' ( temp 4-component vector of float) -0:39 Constant: -0:39 3 (const uint) -0:39 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) -0:42 Function Definition: @main( ( temp 4-component vector of float) -0:42 Function Parameters: -0:? Sequence -0:43 Sequence -0:43 move second child to first child ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) -0:43 's1' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) -0:43 Sequence -0:43 move second child to first child ( temp 4-component vector of float) -0:43 '@sampleResultShadow' ( temp 4-component vector of float) -0:? texture ( temp 4-component vector of float) -0:43 Construct combined texture-sampler ( temp sampler2D) -0:43 'g_tTex2s1' ( uniform texture2D) -0:43 'g_sSamp' ( uniform sampler) -0:43 Constant: -0:43 0.100000 -0:43 0.110000 -0:43 move second child to first child ( temp float) -0:43 c0: direct index for structure ( temp float) -0:43 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) -0:43 Constant: -0:43 0 (const uint) -0:43 direct index ( temp float) -0:43 '@sampleResultShadow' ( temp 4-component vector of float) -0:43 Constant: -0:43 0 (const uint) -0:43 move second child to first child ( temp float) -0:43 direct index ( temp float) -0:43 c1: direct index for structure ( temp 2-component vector of float) -0:43 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) -0:43 Constant: -0:43 1 (const uint) -0:43 Constant: -0:43 0 (const int) -0:43 direct index ( temp float) -0:43 '@sampleResultShadow' ( temp 4-component vector of float) -0:43 Constant: -0:43 1 (const uint) -0:43 move second child to first child ( temp float) -0:43 direct index ( temp float) -0:43 c1: direct index for structure ( temp 2-component vector of float) -0:43 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) -0:43 Constant: -0:43 1 (const uint) -0:43 Constant: -0:43 1 (const int) -0:43 direct index ( temp float) -0:43 '@sampleResultShadow' ( temp 4-component vector of float) -0:43 Constant: -0:43 2 (const uint) -0:43 move second child to first child ( temp float) -0:43 c2: direct index for structure ( temp float) -0:43 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) -0:43 Constant: -0:43 2 (const uint) -0:43 direct index ( temp float) -0:43 '@sampleResultShadow' ( temp 4-component vector of float) -0:43 Constant: -0:43 3 (const uint) -0:43 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) -0:44 Sequence -0:44 move second child to first child ( temp structure{ temp float c0, temp 3-component vector of float c1}) -0:44 's2' ( temp structure{ temp float c0, temp 3-component vector of float c1}) -0:44 Sequence -0:44 move second child to first child ( temp 4-component vector of float) -0:44 '@sampleResultShadow' ( temp 4-component vector of float) -0:? texture ( temp 4-component vector of float) -0:44 Construct combined texture-sampler ( temp sampler2D) -0:44 'g_tTex2s2' ( uniform texture2D) -0:44 'g_sSamp' ( uniform sampler) -0:44 Constant: -0:44 0.200000 -0:44 0.210000 -0:44 move second child to first child ( temp float) -0:44 c0: direct index for structure ( temp float) -0:44 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) -0:44 Constant: -0:44 0 (const uint) -0:44 direct index ( temp float) -0:44 '@sampleResultShadow' ( temp 4-component vector of float) -0:44 Constant: -0:44 0 (const uint) -0:44 move second child to first child ( temp float) -0:44 direct index ( temp float) -0:44 c1: direct index for structure ( temp 3-component vector of float) -0:44 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) -0:44 Constant: -0:44 1 (const uint) -0:44 Constant: -0:44 0 (const int) -0:44 direct index ( temp float) -0:44 '@sampleResultShadow' ( temp 4-component vector of float) -0:44 Constant: -0:44 1 (const uint) -0:44 move second child to first child ( temp float) -0:44 direct index ( temp float) -0:44 c1: direct index for structure ( temp 3-component vector of float) -0:44 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) -0:44 Constant: -0:44 1 (const uint) -0:44 Constant: -0:44 1 (const int) -0:44 direct index ( temp float) -0:44 '@sampleResultShadow' ( temp 4-component vector of float) -0:44 Constant: -0:44 2 (const uint) -0:44 move second child to first child ( temp float) -0:44 direct index ( temp float) -0:44 c1: direct index for structure ( temp 3-component vector of float) -0:44 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) -0:44 Constant: -0:44 1 (const uint) -0:44 Constant: -0:44 2 (const int) -0:44 direct index ( temp float) -0:44 '@sampleResultShadow' ( temp 4-component vector of float) -0:44 Constant: -0:44 3 (const uint) -0:44 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) -0:45 Sequence -0:45 move second child to first child ( temp structure{ temp 2-component vector of float c0, temp 1-component vector of float c1}) -0:45 's3' ( temp structure{ temp 2-component vector of float c0, temp 1-component vector of float c1}) -0:45 Sequence -0:45 move second child to first child ( temp 4-component vector of float) -0:45 '@sampleResultShadow' ( temp 4-component vector of float) -0:? texture ( temp 4-component vector of float) -0:45 Construct combined texture-sampler ( temp sampler2D) -0:45 'g_tTex2s3' ( uniform texture2D) -0:45 'g_sSamp' ( uniform sampler) -0:45 Constant: -0:45 0.300000 -0:45 0.310000 -0:45 move second child to first child ( temp float) -0:45 direct index ( temp float) -0:45 c0: direct index for structure ( temp 2-component vector of float) -0:45 '@sampleStructTemp' ( temp structure{ temp 2-component vector of float c0, temp 1-component vector of float c1}) -0:45 Constant: -0:45 0 (const uint) -0:45 Constant: -0:45 0 (const int) -0:45 direct index ( temp float) -0:45 '@sampleResultShadow' ( temp 4-component vector of float) -0:45 Constant: -0:45 0 (const uint) -0:45 move second child to first child ( temp float) -0:45 direct index ( temp float) -0:45 c0: direct index for structure ( temp 2-component vector of float) -0:45 '@sampleStructTemp' ( temp structure{ temp 2-component vector of float c0, temp 1-component vector of float c1}) -0:45 Constant: -0:45 0 (const uint) -0:45 Constant: -0:45 1 (const int) -0:45 direct index ( temp float) -0:45 '@sampleResultShadow' ( temp 4-component vector of float) -0:45 Constant: -0:45 1 (const uint) -0:45 move second child to first child ( temp float) -0:45 direct index ( temp float) -0:45 c1: direct index for structure ( temp 1-component vector of float) -0:45 '@sampleStructTemp' ( temp structure{ temp 2-component vector of float c0, temp 1-component vector of float c1}) -0:45 Constant: -0:45 1 (const uint) -0:45 Constant: -0:45 0 (const int) -0:45 direct index ( temp float) -0:45 '@sampleResultShadow' ( temp 4-component vector of float) -0:45 Constant: -0:45 2 (const uint) -0:45 '@sampleStructTemp' ( temp structure{ temp 2-component vector of float c0, temp 1-component vector of float c1}) -0:46 Sequence -0:46 move second child to first child ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) -0:46 's4' ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) -0:46 Sequence -0:46 move second child to first child ( temp 4-component vector of int) -0:46 '@sampleResultShadow' ( temp 4-component vector of int) -0:? texture ( temp 4-component vector of int) -0:46 Construct combined texture-sampler ( temp isampler2D) -0:46 'g_tTex2s4' ( uniform itexture2D) -0:46 'g_sSamp' ( uniform sampler) -0:46 Constant: -0:46 0.400000 -0:46 0.410000 -0:46 move second child to first child ( temp int) -0:46 c0: direct index for structure ( temp int) -0:46 '@sampleStructTemp' ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) -0:46 Constant: -0:46 0 (const uint) -0:46 direct index ( temp int) -0:46 '@sampleResultShadow' ( temp 4-component vector of int) -0:46 Constant: -0:46 0 (const uint) -0:46 move second child to first child ( temp float) -0:46 direct index ( temp float) -0:46 c1: direct index for structure ( temp 2-component vector of int) -0:46 '@sampleStructTemp' ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) -0:46 Constant: -0:46 1 (const uint) -0:46 Constant: -0:46 0 (const int) -0:46 Convert int to float ( temp float) -0:46 direct index ( temp int) -0:46 '@sampleResultShadow' ( temp 4-component vector of int) -0:46 Constant: -0:46 1 (const uint) -0:46 move second child to first child ( temp float) -0:46 direct index ( temp float) -0:46 c1: direct index for structure ( temp 2-component vector of int) -0:46 '@sampleStructTemp' ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) -0:46 Constant: -0:46 1 (const uint) -0:46 Constant: -0:46 1 (const int) -0:46 Convert int to float ( temp float) -0:46 direct index ( temp int) -0:46 '@sampleResultShadow' ( temp 4-component vector of int) -0:46 Constant: -0:46 2 (const uint) -0:46 move second child to first child ( temp int) -0:46 c2: direct index for structure ( temp int) -0:46 '@sampleStructTemp' ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) -0:46 Constant: -0:46 2 (const uint) -0:46 direct index ( temp int) -0:46 '@sampleResultShadow' ( temp 4-component vector of int) -0:46 Constant: -0:46 3 (const uint) -0:46 '@sampleStructTemp' ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) -0:47 Sequence -0:47 move second child to first child ( temp structure{ temp uint c0, temp uint c1}) -0:47 's5' ( temp structure{ temp uint c0, temp uint c1}) -0:47 Sequence -0:47 move second child to first child ( temp 4-component vector of uint) -0:47 '@sampleResultShadow' ( temp 4-component vector of uint) -0:? texture ( temp 4-component vector of uint) -0:47 Construct combined texture-sampler ( temp usampler2D) -0:47 'g_tTex2s5' ( uniform utexture2D) -0:47 'g_sSamp' ( uniform sampler) -0:47 Constant: -0:47 0.500000 -0:47 0.510000 -0:47 move second child to first child ( temp uint) -0:47 c0: direct index for structure ( temp uint) -0:47 '@sampleStructTemp' ( temp structure{ temp uint c0, temp uint c1}) -0:47 Constant: -0:47 0 (const uint) -0:47 direct index ( temp uint) -0:47 '@sampleResultShadow' ( temp 4-component vector of uint) -0:47 Constant: -0:47 0 (const uint) -0:47 move second child to first child ( temp uint) -0:47 c1: direct index for structure ( temp uint) -0:47 '@sampleStructTemp' ( temp structure{ temp uint c0, temp uint c1}) -0:47 Constant: -0:47 1 (const uint) -0:47 direct index ( temp uint) -0:47 '@sampleResultShadow' ( temp 4-component vector of uint) -0:47 Constant: -0:47 1 (const uint) -0:47 '@sampleStructTemp' ( temp structure{ temp uint c0, temp uint c1}) -0:49 Sequence -0:49 move second child to first child ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) -0:49 'r0' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) -0:49 Function Call: fn1(t2-tx-struct0-1; ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) -0:49 'g_tTex2s1' ( uniform texture2D) -0:50 Sequence -0:50 move second child to first child ( temp structure{ temp float c0, temp 3-component vector of float c1}) -0:50 'r1' ( temp structure{ temp float c0, temp 3-component vector of float c1}) -0:50 Function Call: fn1(t2-tx-struct1-1; ( temp structure{ temp float c0, temp 3-component vector of float c1}) -0:50 'g_tTex2s2' ( uniform texture2D) -0:51 Sequence -0:51 move second child to first child ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) -0:51 'r2' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) -0:51 Function Call: fn1(t2-tx-struct0-1; ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) -0:51 'g_tTex2s1a' ( uniform texture2D) -0:53 Branch: Return with expression -0:53 Constant: -0:53 0.000000 -0:53 0.000000 -0:53 0.000000 -0:53 0.000000 -0:42 Function Definition: main( ( temp void) -0:42 Function Parameters: -0:? Sequence -0:42 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:42 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'g_sSamp' ( uniform sampler) -0:? 'g_tTex2s1' ( uniform texture2D) -0:? 'g_tTex2s2' ( uniform texture2D) -0:? 'g_tTex2s3' ( uniform texture2D) -0:? 'g_tTex2s4' ( uniform itexture2D) -0:? 'g_tTex2s5' ( uniform utexture2D) -0:? 'g_tTex2s1a' ( uniform texture2D) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 240 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 238 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 10 "s1_t" - MemberName 10(s1_t) 0 "c0" - MemberName 10(s1_t) 1 "c1" - MemberName 10(s1_t) 2 "c2" - Name 13 "fn1(t2-tx-struct0-1;" - Name 12 "t1" - Name 16 "s2_t" - MemberName 16(s2_t) 0 "c0" - MemberName 16(s2_t) 1 "c1" - Name 19 "fn1(t2-tx-struct1-1;" - Name 18 "t2" - Name 23 "@main(" - Name 26 "@sampleResultShadow" - Name 30 "g_sSamp" - Name 39 "@sampleStructTemp" - Name 65 "@sampleResultShadow" - Name 71 "@sampleStructTemp" - Name 87 "s1" - Name 88 "@sampleResultShadow" - Name 90 "g_tTex2s1" - Name 98 "@sampleStructTemp" - Name 112 "s2" - Name 113 "@sampleResultShadow" - Name 114 "g_tTex2s2" - Name 122 "@sampleStructTemp" - Name 136 "s3_t" - MemberName 136(s3_t) 0 "c0" - MemberName 136(s3_t) 1 "c1" - Name 138 "s3" - Name 139 "@sampleResultShadow" - Name 140 "g_tTex2s3" - Name 148 "@sampleStructTemp" - Name 160 "s4_t" - MemberName 160(s4_t) 0 "c0" - MemberName 160(s4_t) 1 "c1" - MemberName 160(s4_t) 2 "c2" - Name 162 "s4" - Name 165 "@sampleResultShadow" - Name 168 "g_tTex2s4" - Name 177 "@sampleStructTemp" - Name 194 "s5_t" - MemberName 194(s5_t) 0 "c0" - MemberName 194(s5_t) 1 "c1" - Name 196 "s5" - Name 199 "@sampleResultShadow" - Name 202 "g_tTex2s5" - Name 211 "@sampleStructTemp" - Name 220 "r0" - Name 221 "param" - Name 224 "r1" - Name 225 "param" - Name 228 "r2" - Name 229 "g_tTex2s1a" - Name 230 "param" - Name 238 "@entryPointOutput" - Decorate 30(g_sSamp) DescriptorSet 0 - Decorate 30(g_sSamp) Binding 0 - Decorate 90(g_tTex2s1) DescriptorSet 0 - Decorate 90(g_tTex2s1) Binding 1 - Decorate 114(g_tTex2s2) DescriptorSet 0 - Decorate 114(g_tTex2s2) Binding 2 - Decorate 140(g_tTex2s3) DescriptorSet 0 - Decorate 140(g_tTex2s3) Binding 3 - Decorate 168(g_tTex2s4) DescriptorSet 0 - Decorate 168(g_tTex2s4) Binding 4 - Decorate 202(g_tTex2s5) DescriptorSet 0 - Decorate 202(g_tTex2s5) Binding 5 - Decorate 229(g_tTex2s1a) DescriptorSet 0 - Decorate 229(g_tTex2s1a) Binding 6 - Decorate 238(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeImage 6(float) 2D sampled format:Unknown - 8: TypePointer Function 7 - 9: TypeVector 6(float) 2 - 10(s1_t): TypeStruct 6(float) 9(fvec2) 6(float) - 11: TypeFunction 10(s1_t) 8(ptr) - 15: TypeVector 6(float) 3 - 16(s2_t): TypeStruct 6(float) 15(fvec3) - 17: TypeFunction 16(s2_t) 8(ptr) - 21: TypeVector 6(float) 4 - 22: TypeFunction 21(fvec4) - 25: TypePointer Function 21(fvec4) - 28: TypeSampler - 29: TypePointer UniformConstant 28 - 30(g_sSamp): 29(ptr) Variable UniformConstant - 32: TypeSampledImage 7 - 34: 6(float) Constant 1058642330 - 35: 6(float) Constant 1058810102 - 36: 9(fvec2) ConstantComposite 34 35 - 38: TypePointer Function 10(s1_t) - 40: TypeInt 32 1 - 41: 40(int) Constant 0 - 42: TypeInt 32 0 - 43: 42(int) Constant 0 - 44: TypePointer Function 6(float) - 48: 40(int) Constant 1 - 49: 42(int) Constant 1 - 53: 42(int) Constant 2 - 57: 40(int) Constant 2 - 58: 42(int) Constant 3 - 70: TypePointer Function 16(s2_t) - 89: TypePointer UniformConstant 7 - 90(g_tTex2s1): 89(ptr) Variable UniformConstant - 94: 6(float) Constant 1036831949 - 95: 6(float) Constant 1038174126 - 96: 9(fvec2) ConstantComposite 94 95 - 114(g_tTex2s2): 89(ptr) Variable UniformConstant - 118: 6(float) Constant 1045220557 - 119: 6(float) Constant 1045891645 - 120: 9(fvec2) ConstantComposite 118 119 - 136(s3_t): TypeStruct 9(fvec2) 6(float) - 137: TypePointer Function 136(s3_t) - 140(g_tTex2s3): 89(ptr) Variable UniformConstant - 144: 6(float) Constant 1050253722 - 145: 6(float) Constant 1050589266 - 146: 9(fvec2) ConstantComposite 144 145 - 159: TypeVector 40(int) 2 - 160(s4_t): TypeStruct 40(int) 159(ivec2) 40(int) - 161: TypePointer Function 160(s4_t) - 163: TypeVector 40(int) 4 - 164: TypePointer Function 163(ivec4) - 166: TypeImage 40(int) 2D sampled format:Unknown - 167: TypePointer UniformConstant 166 - 168(g_tTex2s4): 167(ptr) Variable UniformConstant - 171: TypeSampledImage 166 - 173: 6(float) Constant 1053609165 - 174: 6(float) Constant 1053944709 - 175: 9(fvec2) ConstantComposite 173 174 - 178: TypePointer Function 40(int) - 194(s5_t): TypeStruct 42(int) 42(int) - 195: TypePointer Function 194(s5_t) - 197: TypeVector 42(int) 4 - 198: TypePointer Function 197(ivec4) - 200: TypeImage 42(int) 2D sampled format:Unknown - 201: TypePointer UniformConstant 200 - 202(g_tTex2s5): 201(ptr) Variable UniformConstant - 205: TypeSampledImage 200 - 207: 6(float) Constant 1056964608 - 208: 6(float) Constant 1057132380 - 209: 9(fvec2) ConstantComposite 207 208 - 212: TypePointer Function 42(int) - 229(g_tTex2s1a): 89(ptr) Variable UniformConstant - 233: 6(float) Constant 0 - 234: 21(fvec4) ConstantComposite 233 233 233 233 - 237: TypePointer Output 21(fvec4) -238(@entryPointOutput): 237(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 239: 21(fvec4) FunctionCall 23(@main() - Store 238(@entryPointOutput) 239 - Return - FunctionEnd -13(fn1(t2-tx-struct0-1;): 10(s1_t) Function None 11 - 12(t1): 8(ptr) FunctionParameter - 14: Label -26(@sampleResultShadow): 25(ptr) Variable Function -39(@sampleStructTemp): 38(ptr) Variable Function - 27: 7 Load 12(t1) - 31: 28 Load 30(g_sSamp) - 33: 32 SampledImage 27 31 - 37: 21(fvec4) ImageSampleImplicitLod 33 36 - Store 26(@sampleResultShadow) 37 - 45: 44(ptr) AccessChain 26(@sampleResultShadow) 43 - 46: 6(float) Load 45 - 47: 44(ptr) AccessChain 39(@sampleStructTemp) 41 - Store 47 46 - 50: 44(ptr) AccessChain 26(@sampleResultShadow) 49 - 51: 6(float) Load 50 - 52: 44(ptr) AccessChain 39(@sampleStructTemp) 48 43 - Store 52 51 - 54: 44(ptr) AccessChain 26(@sampleResultShadow) 53 - 55: 6(float) Load 54 - 56: 44(ptr) AccessChain 39(@sampleStructTemp) 48 49 - Store 56 55 - 59: 44(ptr) AccessChain 26(@sampleResultShadow) 58 - 60: 6(float) Load 59 - 61: 44(ptr) AccessChain 39(@sampleStructTemp) 57 - Store 61 60 - 62: 10(s1_t) Load 39(@sampleStructTemp) - ReturnValue 62 - FunctionEnd -19(fn1(t2-tx-struct1-1;): 16(s2_t) Function None 17 - 18(t2): 8(ptr) FunctionParameter - 20: Label -65(@sampleResultShadow): 25(ptr) Variable Function -71(@sampleStructTemp): 70(ptr) Variable Function - 66: 7 Load 18(t2) - 67: 28 Load 30(g_sSamp) - 68: 32 SampledImage 66 67 - 69: 21(fvec4) ImageSampleImplicitLod 68 36 - Store 65(@sampleResultShadow) 69 - 72: 44(ptr) AccessChain 65(@sampleResultShadow) 43 - 73: 6(float) Load 72 - 74: 44(ptr) AccessChain 71(@sampleStructTemp) 41 - Store 74 73 - 75: 44(ptr) AccessChain 65(@sampleResultShadow) 49 - 76: 6(float) Load 75 - 77: 44(ptr) AccessChain 71(@sampleStructTemp) 48 43 - Store 77 76 - 78: 44(ptr) AccessChain 65(@sampleResultShadow) 53 - 79: 6(float) Load 78 - 80: 44(ptr) AccessChain 71(@sampleStructTemp) 48 49 - Store 80 79 - 81: 44(ptr) AccessChain 65(@sampleResultShadow) 58 - 82: 6(float) Load 81 - 83: 44(ptr) AccessChain 71(@sampleStructTemp) 48 53 - Store 83 82 - 84: 16(s2_t) Load 71(@sampleStructTemp) - ReturnValue 84 - FunctionEnd - 23(@main(): 21(fvec4) Function None 22 - 24: Label - 87(s1): 38(ptr) Variable Function -88(@sampleResultShadow): 25(ptr) Variable Function -98(@sampleStructTemp): 38(ptr) Variable Function - 112(s2): 70(ptr) Variable Function -113(@sampleResultShadow): 25(ptr) Variable Function -122(@sampleStructTemp): 70(ptr) Variable Function - 138(s3): 137(ptr) Variable Function -139(@sampleResultShadow): 25(ptr) Variable Function -148(@sampleStructTemp): 137(ptr) Variable Function - 162(s4): 161(ptr) Variable Function -165(@sampleResultShadow): 164(ptr) Variable Function -177(@sampleStructTemp): 161(ptr) Variable Function - 196(s5): 195(ptr) Variable Function -199(@sampleResultShadow): 198(ptr) Variable Function -211(@sampleStructTemp): 195(ptr) Variable Function - 220(r0): 38(ptr) Variable Function - 221(param): 8(ptr) Variable Function - 224(r1): 70(ptr) Variable Function - 225(param): 8(ptr) Variable Function - 228(r2): 38(ptr) Variable Function - 230(param): 8(ptr) Variable Function - 91: 7 Load 90(g_tTex2s1) - 92: 28 Load 30(g_sSamp) - 93: 32 SampledImage 91 92 - 97: 21(fvec4) ImageSampleImplicitLod 93 96 - Store 88(@sampleResultShadow) 97 - 99: 44(ptr) AccessChain 88(@sampleResultShadow) 43 - 100: 6(float) Load 99 - 101: 44(ptr) AccessChain 98(@sampleStructTemp) 41 - Store 101 100 - 102: 44(ptr) AccessChain 88(@sampleResultShadow) 49 - 103: 6(float) Load 102 - 104: 44(ptr) AccessChain 98(@sampleStructTemp) 48 43 - Store 104 103 - 105: 44(ptr) AccessChain 88(@sampleResultShadow) 53 - 106: 6(float) Load 105 - 107: 44(ptr) AccessChain 98(@sampleStructTemp) 48 49 - Store 107 106 - 108: 44(ptr) AccessChain 88(@sampleResultShadow) 58 - 109: 6(float) Load 108 - 110: 44(ptr) AccessChain 98(@sampleStructTemp) 57 - Store 110 109 - 111: 10(s1_t) Load 98(@sampleStructTemp) - Store 87(s1) 111 - 115: 7 Load 114(g_tTex2s2) - 116: 28 Load 30(g_sSamp) - 117: 32 SampledImage 115 116 - 121: 21(fvec4) ImageSampleImplicitLod 117 120 - Store 113(@sampleResultShadow) 121 - 123: 44(ptr) AccessChain 113(@sampleResultShadow) 43 - 124: 6(float) Load 123 - 125: 44(ptr) AccessChain 122(@sampleStructTemp) 41 - Store 125 124 - 126: 44(ptr) AccessChain 113(@sampleResultShadow) 49 - 127: 6(float) Load 126 - 128: 44(ptr) AccessChain 122(@sampleStructTemp) 48 43 - Store 128 127 - 129: 44(ptr) AccessChain 113(@sampleResultShadow) 53 - 130: 6(float) Load 129 - 131: 44(ptr) AccessChain 122(@sampleStructTemp) 48 49 - Store 131 130 - 132: 44(ptr) AccessChain 113(@sampleResultShadow) 58 - 133: 6(float) Load 132 - 134: 44(ptr) AccessChain 122(@sampleStructTemp) 48 53 - Store 134 133 - 135: 16(s2_t) Load 122(@sampleStructTemp) - Store 112(s2) 135 - 141: 7 Load 140(g_tTex2s3) - 142: 28 Load 30(g_sSamp) - 143: 32 SampledImage 141 142 - 147: 21(fvec4) ImageSampleImplicitLod 143 146 - Store 139(@sampleResultShadow) 147 - 149: 44(ptr) AccessChain 139(@sampleResultShadow) 43 - 150: 6(float) Load 149 - 151: 44(ptr) AccessChain 148(@sampleStructTemp) 41 43 - Store 151 150 - 152: 44(ptr) AccessChain 139(@sampleResultShadow) 49 - 153: 6(float) Load 152 - 154: 44(ptr) AccessChain 148(@sampleStructTemp) 41 49 - Store 154 153 - 155: 44(ptr) AccessChain 139(@sampleResultShadow) 53 - 156: 6(float) Load 155 - 157: 44(ptr) AccessChain 148(@sampleStructTemp) 48 - Store 157 156 - 158: 136(s3_t) Load 148(@sampleStructTemp) - Store 138(s3) 158 - 169: 166 Load 168(g_tTex2s4) - 170: 28 Load 30(g_sSamp) - 172: 171 SampledImage 169 170 - 176: 163(ivec4) ImageSampleImplicitLod 172 175 - Store 165(@sampleResultShadow) 176 - 179: 178(ptr) AccessChain 165(@sampleResultShadow) 43 - 180: 40(int) Load 179 - 181: 178(ptr) AccessChain 177(@sampleStructTemp) 41 - Store 181 180 - 182: 178(ptr) AccessChain 165(@sampleResultShadow) 49 - 183: 40(int) Load 182 - 184: 6(float) ConvertSToF 183 - 185: 178(ptr) AccessChain 177(@sampleStructTemp) 48 43 - Store 185 184 - 186: 178(ptr) AccessChain 165(@sampleResultShadow) 53 - 187: 40(int) Load 186 - 188: 6(float) ConvertSToF 187 - 189: 178(ptr) AccessChain 177(@sampleStructTemp) 48 49 - Store 189 188 - 190: 178(ptr) AccessChain 165(@sampleResultShadow) 58 - 191: 40(int) Load 190 - 192: 178(ptr) AccessChain 177(@sampleStructTemp) 57 - Store 192 191 - 193: 160(s4_t) Load 177(@sampleStructTemp) - Store 162(s4) 193 - 203: 200 Load 202(g_tTex2s5) - 204: 28 Load 30(g_sSamp) - 206: 205 SampledImage 203 204 - 210: 197(ivec4) ImageSampleImplicitLod 206 209 - Store 199(@sampleResultShadow) 210 - 213: 212(ptr) AccessChain 199(@sampleResultShadow) 43 - 214: 42(int) Load 213 - 215: 212(ptr) AccessChain 211(@sampleStructTemp) 41 - Store 215 214 - 216: 212(ptr) AccessChain 199(@sampleResultShadow) 49 - 217: 42(int) Load 216 - 218: 212(ptr) AccessChain 211(@sampleStructTemp) 48 - Store 218 217 - 219: 194(s5_t) Load 211(@sampleStructTemp) - Store 196(s5) 219 - 222: 7 Load 90(g_tTex2s1) - Store 221(param) 222 - 223: 10(s1_t) FunctionCall 13(fn1(t2-tx-struct0-1;) 221(param) - Store 220(r0) 223 - 226: 7 Load 114(g_tTex2s2) - Store 225(param) 226 - 227: 16(s2_t) FunctionCall 19(fn1(t2-tx-struct1-1;) 225(param) - Store 224(r1) 227 - 231: 7 Load 229(g_tTex2s1a) - Store 230(param) 231 - 232: 10(s1_t) FunctionCall 13(fn1(t2-tx-struct0-1;) 230(param) - Store 228(r2) 232 - ReturnValue 234 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.texture.subvec4.frag.out b/deps/glslang/Test/baseResults/hlsl.texture.subvec4.frag.out deleted file mode 100644 index 1a7816d8..00000000 --- a/deps/glslang/Test/baseResults/hlsl.texture.subvec4.frag.out +++ /dev/null @@ -1,553 +0,0 @@ -hlsl.texture.subvec4.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:15 Function Definition: @main( ( temp 4-component vector of float) -0:15 Function Parameters: -0:? Sequence -0:24 Sequence -0:24 move second child to first child ( temp 2-component vector of uint) -0:24 'sizeQueryTemp' ( temp 2-component vector of uint) -0:24 textureSize ( temp 2-component vector of uint) -0:24 'g_tTex2dmsf1' ( uniform texture2DMS) -0:24 move second child to first child ( temp uint) -0:24 'WidthU' ( temp uint) -0:24 direct index ( temp uint) -0:24 'sizeQueryTemp' ( temp 2-component vector of uint) -0:24 Constant: -0:24 0 (const int) -0:24 move second child to first child ( temp uint) -0:24 'HeightU' ( temp uint) -0:24 direct index ( temp uint) -0:24 'sizeQueryTemp' ( temp 2-component vector of uint) -0:24 Constant: -0:24 1 (const int) -0:24 move second child to first child ( temp uint) -0:24 'NumberOfSamplesU' ( temp uint) -0:24 imageQuerySamples ( temp uint) -0:24 'g_tTex2dmsf1' ( uniform texture2DMS) -0:25 Sequence -0:25 move second child to first child ( temp 2-component vector of uint) -0:25 'sizeQueryTemp' ( temp 2-component vector of uint) -0:25 textureSize ( temp 2-component vector of uint) -0:25 'g_tTex2dmsf2' ( uniform texture2DMS) -0:25 move second child to first child ( temp uint) -0:25 'WidthU' ( temp uint) -0:25 direct index ( temp uint) -0:25 'sizeQueryTemp' ( temp 2-component vector of uint) -0:25 Constant: -0:25 0 (const int) -0:25 move second child to first child ( temp uint) -0:25 'HeightU' ( temp uint) -0:25 direct index ( temp uint) -0:25 'sizeQueryTemp' ( temp 2-component vector of uint) -0:25 Constant: -0:25 1 (const int) -0:25 move second child to first child ( temp uint) -0:25 'NumberOfSamplesU' ( temp uint) -0:25 imageQuerySamples ( temp uint) -0:25 'g_tTex2dmsf2' ( uniform texture2DMS) -0:26 Sequence -0:26 move second child to first child ( temp 2-component vector of uint) -0:26 'sizeQueryTemp' ( temp 2-component vector of uint) -0:26 textureSize ( temp 2-component vector of uint) -0:26 'g_tTex2dmsf3' ( uniform texture2DMS) -0:26 move second child to first child ( temp uint) -0:26 'WidthU' ( temp uint) -0:26 direct index ( temp uint) -0:26 'sizeQueryTemp' ( temp 2-component vector of uint) -0:26 Constant: -0:26 0 (const int) -0:26 move second child to first child ( temp uint) -0:26 'HeightU' ( temp uint) -0:26 direct index ( temp uint) -0:26 'sizeQueryTemp' ( temp 2-component vector of uint) -0:26 Constant: -0:26 1 (const int) -0:26 move second child to first child ( temp uint) -0:26 'NumberOfSamplesU' ( temp uint) -0:26 imageQuerySamples ( temp uint) -0:26 'g_tTex2dmsf3' ( uniform texture2DMS) -0:27 Sequence -0:27 move second child to first child ( temp 2-component vector of uint) -0:27 'sizeQueryTemp' ( temp 2-component vector of uint) -0:27 textureSize ( temp 2-component vector of uint) -0:27 'g_tTex2dmsf4' ( uniform texture2DMS) -0:27 move second child to first child ( temp uint) -0:27 'WidthU' ( temp uint) -0:27 direct index ( temp uint) -0:27 'sizeQueryTemp' ( temp 2-component vector of uint) -0:27 Constant: -0:27 0 (const int) -0:27 move second child to first child ( temp uint) -0:27 'HeightU' ( temp uint) -0:27 direct index ( temp uint) -0:27 'sizeQueryTemp' ( temp 2-component vector of uint) -0:27 Constant: -0:27 1 (const int) -0:27 move second child to first child ( temp uint) -0:27 'NumberOfSamplesU' ( temp uint) -0:27 imageQuerySamples ( temp uint) -0:27 'g_tTex2dmsf4' ( uniform texture2DMS) -0:29 Construct float ( temp float) -0:? textureFetch ( temp 4-component vector of float) -0:29 'g_tTex2dmsf1' ( uniform texture2DMS) -0:29 Constant: -0:29 1 (const int) -0:29 2 (const int) -0:29 Constant: -0:29 3 (const int) -0:30 Construct vec2 ( temp 2-component vector of float) -0:? textureFetch ( temp 4-component vector of float) -0:30 'g_tTex2dmsf2' ( uniform texture2DMS) -0:30 Constant: -0:30 1 (const int) -0:30 2 (const int) -0:30 Constant: -0:30 3 (const int) -0:31 Construct vec3 ( temp 3-component vector of float) -0:? textureFetch ( temp 4-component vector of float) -0:31 'g_tTex2dmsf3' ( uniform texture2DMS) -0:31 Constant: -0:31 1 (const int) -0:31 2 (const int) -0:31 Constant: -0:31 3 (const int) -0:32 textureFetch ( temp 4-component vector of float) -0:32 'g_tTex2dmsf4' ( uniform texture2DMS) -0:32 Constant: -0:32 1 (const int) -0:32 2 (const int) -0:32 Constant: -0:32 3 (const int) -0:34 Construct float ( temp float) -0:? texture ( temp 4-component vector of float) -0:34 Construct combined texture-sampler ( temp sampler2D) -0:34 'g_tTex2df1' ( uniform texture2D) -0:34 'g_sSamp' ( uniform sampler) -0:34 Constant: -0:34 0.100000 -0:34 0.200000 -0:35 Construct vec2 ( temp 2-component vector of float) -0:? texture ( temp 4-component vector of float) -0:35 Construct combined texture-sampler ( temp sampler2D) -0:35 'g_tTex2df2' ( uniform texture2D) -0:35 'g_sSamp' ( uniform sampler) -0:35 Constant: -0:35 0.100000 -0:35 0.200000 -0:36 Construct vec3 ( temp 3-component vector of float) -0:? texture ( temp 4-component vector of float) -0:36 Construct combined texture-sampler ( temp sampler2D) -0:36 'g_tTex2df3' ( uniform texture2D) -0:36 'g_sSamp' ( uniform sampler) -0:36 Constant: -0:36 0.100000 -0:36 0.200000 -0:37 texture ( temp 4-component vector of float) -0:37 Construct combined texture-sampler ( temp sampler2D) -0:37 'g_tTex2df4' ( uniform texture2D) -0:37 'g_sSamp' ( uniform sampler) -0:37 Constant: -0:37 0.100000 -0:37 0.200000 -0:39 Branch: Return with expression -0:39 Constant: -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:15 Function Definition: main( ( temp void) -0:15 Function Parameters: -0:? Sequence -0:15 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:15 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'g_tTex2dmsf1' ( uniform texture2DMS) -0:? 'g_tTex2dmsf2' ( uniform texture2DMS) -0:? 'g_tTex2dmsf3' ( uniform texture2DMS) -0:? 'g_tTex2dmsf4' ( uniform texture2DMS) -0:? 'g_tTex2df1' ( uniform texture2D) -0:? 'g_tTex2df2' ( uniform texture2D) -0:? 'g_tTex2df3' ( uniform texture2D) -0:? 'g_tTex2df4' ( uniform texture2D) -0:? 'g_sSamp' ( uniform sampler) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:15 Function Definition: @main( ( temp 4-component vector of float) -0:15 Function Parameters: -0:? Sequence -0:24 Sequence -0:24 move second child to first child ( temp 2-component vector of uint) -0:24 'sizeQueryTemp' ( temp 2-component vector of uint) -0:24 textureSize ( temp 2-component vector of uint) -0:24 'g_tTex2dmsf1' ( uniform texture2DMS) -0:24 move second child to first child ( temp uint) -0:24 'WidthU' ( temp uint) -0:24 direct index ( temp uint) -0:24 'sizeQueryTemp' ( temp 2-component vector of uint) -0:24 Constant: -0:24 0 (const int) -0:24 move second child to first child ( temp uint) -0:24 'HeightU' ( temp uint) -0:24 direct index ( temp uint) -0:24 'sizeQueryTemp' ( temp 2-component vector of uint) -0:24 Constant: -0:24 1 (const int) -0:24 move second child to first child ( temp uint) -0:24 'NumberOfSamplesU' ( temp uint) -0:24 imageQuerySamples ( temp uint) -0:24 'g_tTex2dmsf1' ( uniform texture2DMS) -0:25 Sequence -0:25 move second child to first child ( temp 2-component vector of uint) -0:25 'sizeQueryTemp' ( temp 2-component vector of uint) -0:25 textureSize ( temp 2-component vector of uint) -0:25 'g_tTex2dmsf2' ( uniform texture2DMS) -0:25 move second child to first child ( temp uint) -0:25 'WidthU' ( temp uint) -0:25 direct index ( temp uint) -0:25 'sizeQueryTemp' ( temp 2-component vector of uint) -0:25 Constant: -0:25 0 (const int) -0:25 move second child to first child ( temp uint) -0:25 'HeightU' ( temp uint) -0:25 direct index ( temp uint) -0:25 'sizeQueryTemp' ( temp 2-component vector of uint) -0:25 Constant: -0:25 1 (const int) -0:25 move second child to first child ( temp uint) -0:25 'NumberOfSamplesU' ( temp uint) -0:25 imageQuerySamples ( temp uint) -0:25 'g_tTex2dmsf2' ( uniform texture2DMS) -0:26 Sequence -0:26 move second child to first child ( temp 2-component vector of uint) -0:26 'sizeQueryTemp' ( temp 2-component vector of uint) -0:26 textureSize ( temp 2-component vector of uint) -0:26 'g_tTex2dmsf3' ( uniform texture2DMS) -0:26 move second child to first child ( temp uint) -0:26 'WidthU' ( temp uint) -0:26 direct index ( temp uint) -0:26 'sizeQueryTemp' ( temp 2-component vector of uint) -0:26 Constant: -0:26 0 (const int) -0:26 move second child to first child ( temp uint) -0:26 'HeightU' ( temp uint) -0:26 direct index ( temp uint) -0:26 'sizeQueryTemp' ( temp 2-component vector of uint) -0:26 Constant: -0:26 1 (const int) -0:26 move second child to first child ( temp uint) -0:26 'NumberOfSamplesU' ( temp uint) -0:26 imageQuerySamples ( temp uint) -0:26 'g_tTex2dmsf3' ( uniform texture2DMS) -0:27 Sequence -0:27 move second child to first child ( temp 2-component vector of uint) -0:27 'sizeQueryTemp' ( temp 2-component vector of uint) -0:27 textureSize ( temp 2-component vector of uint) -0:27 'g_tTex2dmsf4' ( uniform texture2DMS) -0:27 move second child to first child ( temp uint) -0:27 'WidthU' ( temp uint) -0:27 direct index ( temp uint) -0:27 'sizeQueryTemp' ( temp 2-component vector of uint) -0:27 Constant: -0:27 0 (const int) -0:27 move second child to first child ( temp uint) -0:27 'HeightU' ( temp uint) -0:27 direct index ( temp uint) -0:27 'sizeQueryTemp' ( temp 2-component vector of uint) -0:27 Constant: -0:27 1 (const int) -0:27 move second child to first child ( temp uint) -0:27 'NumberOfSamplesU' ( temp uint) -0:27 imageQuerySamples ( temp uint) -0:27 'g_tTex2dmsf4' ( uniform texture2DMS) -0:29 Construct float ( temp float) -0:? textureFetch ( temp 4-component vector of float) -0:29 'g_tTex2dmsf1' ( uniform texture2DMS) -0:29 Constant: -0:29 1 (const int) -0:29 2 (const int) -0:29 Constant: -0:29 3 (const int) -0:30 Construct vec2 ( temp 2-component vector of float) -0:? textureFetch ( temp 4-component vector of float) -0:30 'g_tTex2dmsf2' ( uniform texture2DMS) -0:30 Constant: -0:30 1 (const int) -0:30 2 (const int) -0:30 Constant: -0:30 3 (const int) -0:31 Construct vec3 ( temp 3-component vector of float) -0:? textureFetch ( temp 4-component vector of float) -0:31 'g_tTex2dmsf3' ( uniform texture2DMS) -0:31 Constant: -0:31 1 (const int) -0:31 2 (const int) -0:31 Constant: -0:31 3 (const int) -0:32 textureFetch ( temp 4-component vector of float) -0:32 'g_tTex2dmsf4' ( uniform texture2DMS) -0:32 Constant: -0:32 1 (const int) -0:32 2 (const int) -0:32 Constant: -0:32 3 (const int) -0:34 Construct float ( temp float) -0:? texture ( temp 4-component vector of float) -0:34 Construct combined texture-sampler ( temp sampler2D) -0:34 'g_tTex2df1' ( uniform texture2D) -0:34 'g_sSamp' ( uniform sampler) -0:34 Constant: -0:34 0.100000 -0:34 0.200000 -0:35 Construct vec2 ( temp 2-component vector of float) -0:? texture ( temp 4-component vector of float) -0:35 Construct combined texture-sampler ( temp sampler2D) -0:35 'g_tTex2df2' ( uniform texture2D) -0:35 'g_sSamp' ( uniform sampler) -0:35 Constant: -0:35 0.100000 -0:35 0.200000 -0:36 Construct vec3 ( temp 3-component vector of float) -0:? texture ( temp 4-component vector of float) -0:36 Construct combined texture-sampler ( temp sampler2D) -0:36 'g_tTex2df3' ( uniform texture2D) -0:36 'g_sSamp' ( uniform sampler) -0:36 Constant: -0:36 0.100000 -0:36 0.200000 -0:37 texture ( temp 4-component vector of float) -0:37 Construct combined texture-sampler ( temp sampler2D) -0:37 'g_tTex2df4' ( uniform texture2D) -0:37 'g_sSamp' ( uniform sampler) -0:37 Constant: -0:37 0.100000 -0:37 0.200000 -0:39 Branch: Return with expression -0:39 Constant: -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:15 Function Definition: main( ( temp void) -0:15 Function Parameters: -0:? Sequence -0:15 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:15 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'g_tTex2dmsf1' ( uniform texture2DMS) -0:? 'g_tTex2dmsf2' ( uniform texture2DMS) -0:? 'g_tTex2dmsf3' ( uniform texture2DMS) -0:? 'g_tTex2dmsf4' ( uniform texture2DMS) -0:? 'g_tTex2df1' ( uniform texture2D) -0:? 'g_tTex2df2' ( uniform texture2D) -0:? 'g_tTex2df3' ( uniform texture2D) -0:? 'g_tTex2df4' ( uniform texture2D) -0:? 'g_sSamp' ( uniform sampler) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 130 - - Capability Shader - Capability ImageQuery - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 128 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 9 "@main(" - Name 14 "sizeQueryTemp" - Name 17 "g_tTex2dmsf1" - Name 21 "WidthU" - Name 25 "HeightU" - Name 29 "NumberOfSamplesU" - Name 32 "sizeQueryTemp" - Name 33 "g_tTex2dmsf2" - Name 42 "sizeQueryTemp" - Name 43 "g_tTex2dmsf3" - Name 52 "sizeQueryTemp" - Name 53 "g_tTex2dmsf4" - Name 88 "g_tTex2df1" - Name 92 "g_sSamp" - Name 101 "g_tTex2df2" - Name 109 "g_tTex2df3" - Name 118 "g_tTex2df4" - Name 128 "@entryPointOutput" - Decorate 17(g_tTex2dmsf1) DescriptorSet 0 - Decorate 17(g_tTex2dmsf1) Binding 0 - Decorate 33(g_tTex2dmsf2) DescriptorSet 0 - Decorate 33(g_tTex2dmsf2) Binding 1 - Decorate 43(g_tTex2dmsf3) DescriptorSet 0 - Decorate 43(g_tTex2dmsf3) Binding 2 - Decorate 53(g_tTex2dmsf4) DescriptorSet 0 - Decorate 53(g_tTex2dmsf4) Binding 3 - Decorate 88(g_tTex2df1) DescriptorSet 0 - Decorate 88(g_tTex2df1) Binding 4 - Decorate 92(g_sSamp) DescriptorSet 0 - Decorate 92(g_sSamp) Binding 8 - Decorate 101(g_tTex2df2) DescriptorSet 0 - Decorate 101(g_tTex2df2) Binding 5 - Decorate 109(g_tTex2df3) DescriptorSet 0 - Decorate 109(g_tTex2df3) Binding 6 - Decorate 118(g_tTex2df4) DescriptorSet 0 - Decorate 118(g_tTex2df4) Binding 7 - Decorate 128(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 11: TypeInt 32 0 - 12: TypeVector 11(int) 2 - 13: TypePointer Function 12(ivec2) - 15: TypeImage 6(float) 2D multi-sampled sampled format:Unknown - 16: TypePointer UniformConstant 15 -17(g_tTex2dmsf1): 16(ptr) Variable UniformConstant - 20: TypePointer Function 11(int) - 22: 11(int) Constant 0 - 26: 11(int) Constant 1 -33(g_tTex2dmsf2): 16(ptr) Variable UniformConstant -43(g_tTex2dmsf3): 16(ptr) Variable UniformConstant -53(g_tTex2dmsf4): 16(ptr) Variable UniformConstant - 63: TypeInt 32 1 - 64: TypeVector 63(int) 2 - 65: 63(int) Constant 1 - 66: 63(int) Constant 2 - 67: 64(ivec2) ConstantComposite 65 66 - 68: 63(int) Constant 3 - 73: TypeVector 6(float) 2 - 79: TypeVector 6(float) 3 - 86: TypeImage 6(float) 2D sampled format:Unknown - 87: TypePointer UniformConstant 86 - 88(g_tTex2df1): 87(ptr) Variable UniformConstant - 90: TypeSampler - 91: TypePointer UniformConstant 90 - 92(g_sSamp): 91(ptr) Variable UniformConstant - 94: TypeSampledImage 86 - 96: 6(float) Constant 1036831949 - 97: 6(float) Constant 1045220557 - 98: 73(fvec2) ConstantComposite 96 97 - 101(g_tTex2df2): 87(ptr) Variable UniformConstant - 109(g_tTex2df3): 87(ptr) Variable UniformConstant - 118(g_tTex2df4): 87(ptr) Variable UniformConstant - 123: 6(float) Constant 0 - 124: 7(fvec4) ConstantComposite 123 123 123 123 - 127: TypePointer Output 7(fvec4) -128(@entryPointOutput): 127(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 129: 7(fvec4) FunctionCall 9(@main() - Store 128(@entryPointOutput) 129 - Return - FunctionEnd - 9(@main(): 7(fvec4) Function None 8 - 10: Label -14(sizeQueryTemp): 13(ptr) Variable Function - 21(WidthU): 20(ptr) Variable Function - 25(HeightU): 20(ptr) Variable Function -29(NumberOfSamplesU): 20(ptr) Variable Function -32(sizeQueryTemp): 13(ptr) Variable Function -42(sizeQueryTemp): 13(ptr) Variable Function -52(sizeQueryTemp): 13(ptr) Variable Function - 18: 15 Load 17(g_tTex2dmsf1) - 19: 12(ivec2) ImageQuerySize 18 - Store 14(sizeQueryTemp) 19 - 23: 20(ptr) AccessChain 14(sizeQueryTemp) 22 - 24: 11(int) Load 23 - Store 21(WidthU) 24 - 27: 20(ptr) AccessChain 14(sizeQueryTemp) 26 - 28: 11(int) Load 27 - Store 25(HeightU) 28 - 30: 15 Load 17(g_tTex2dmsf1) - 31: 11(int) ImageQuerySamples 30 - Store 29(NumberOfSamplesU) 31 - 34: 15 Load 33(g_tTex2dmsf2) - 35: 12(ivec2) ImageQuerySize 34 - Store 32(sizeQueryTemp) 35 - 36: 20(ptr) AccessChain 32(sizeQueryTemp) 22 - 37: 11(int) Load 36 - Store 21(WidthU) 37 - 38: 20(ptr) AccessChain 32(sizeQueryTemp) 26 - 39: 11(int) Load 38 - Store 25(HeightU) 39 - 40: 15 Load 33(g_tTex2dmsf2) - 41: 11(int) ImageQuerySamples 40 - Store 29(NumberOfSamplesU) 41 - 44: 15 Load 43(g_tTex2dmsf3) - 45: 12(ivec2) ImageQuerySize 44 - Store 42(sizeQueryTemp) 45 - 46: 20(ptr) AccessChain 42(sizeQueryTemp) 22 - 47: 11(int) Load 46 - Store 21(WidthU) 47 - 48: 20(ptr) AccessChain 42(sizeQueryTemp) 26 - 49: 11(int) Load 48 - Store 25(HeightU) 49 - 50: 15 Load 43(g_tTex2dmsf3) - 51: 11(int) ImageQuerySamples 50 - Store 29(NumberOfSamplesU) 51 - 54: 15 Load 53(g_tTex2dmsf4) - 55: 12(ivec2) ImageQuerySize 54 - Store 52(sizeQueryTemp) 55 - 56: 20(ptr) AccessChain 52(sizeQueryTemp) 22 - 57: 11(int) Load 56 - Store 21(WidthU) 57 - 58: 20(ptr) AccessChain 52(sizeQueryTemp) 26 - 59: 11(int) Load 58 - Store 25(HeightU) 59 - 60: 15 Load 53(g_tTex2dmsf4) - 61: 11(int) ImageQuerySamples 60 - Store 29(NumberOfSamplesU) 61 - 62: 15 Load 17(g_tTex2dmsf1) - 69: 7(fvec4) ImageFetch 62 67 Sample 68 - 70: 6(float) CompositeExtract 69 0 - 71: 15 Load 33(g_tTex2dmsf2) - 72: 7(fvec4) ImageFetch 71 67 Sample 68 - 74: 6(float) CompositeExtract 72 0 - 75: 6(float) CompositeExtract 72 1 - 76: 73(fvec2) CompositeConstruct 74 75 - 77: 15 Load 43(g_tTex2dmsf3) - 78: 7(fvec4) ImageFetch 77 67 Sample 68 - 80: 6(float) CompositeExtract 78 0 - 81: 6(float) CompositeExtract 78 1 - 82: 6(float) CompositeExtract 78 2 - 83: 79(fvec3) CompositeConstruct 80 81 82 - 84: 15 Load 53(g_tTex2dmsf4) - 85: 7(fvec4) ImageFetch 84 67 Sample 68 - 89: 86 Load 88(g_tTex2df1) - 93: 90 Load 92(g_sSamp) - 95: 94 SampledImage 89 93 - 99: 7(fvec4) ImageSampleImplicitLod 95 98 - 100: 6(float) CompositeExtract 99 0 - 102: 86 Load 101(g_tTex2df2) - 103: 90 Load 92(g_sSamp) - 104: 94 SampledImage 102 103 - 105: 7(fvec4) ImageSampleImplicitLod 104 98 - 106: 6(float) CompositeExtract 105 0 - 107: 6(float) CompositeExtract 105 1 - 108: 73(fvec2) CompositeConstruct 106 107 - 110: 86 Load 109(g_tTex2df3) - 111: 90 Load 92(g_sSamp) - 112: 94 SampledImage 110 111 - 113: 7(fvec4) ImageSampleImplicitLod 112 98 - 114: 6(float) CompositeExtract 113 0 - 115: 6(float) CompositeExtract 113 1 - 116: 6(float) CompositeExtract 113 2 - 117: 79(fvec3) CompositeConstruct 114 115 116 - 119: 86 Load 118(g_tTex2df4) - 120: 90 Load 92(g_sSamp) - 121: 94 SampledImage 119 120 - 122: 7(fvec4) ImageSampleImplicitLod 121 98 - ReturnValue 124 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.texturebuffer.frag.out b/deps/glslang/Test/baseResults/hlsl.texturebuffer.frag.out deleted file mode 100644 index 37e19c25..00000000 --- a/deps/glslang/Test/baseResults/hlsl.texturebuffer.frag.out +++ /dev/null @@ -1,154 +0,0 @@ -hlsl.texturebuffer.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:15 Function Definition: @main(vf4; ( temp 4-component vector of float) -0:15 Function Parameters: -0:15 'pos' ( in 4-component vector of float) -0:? Sequence -0:16 Branch: Return with expression -0:16 add ( temp 4-component vector of float) -0:16 f: direct index for structure (layout( row_major std430) buffer 4-component vector of float) -0:16 'TextureBuffer_var' (layout( binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer 4-component vector of float f, layout( row_major std430) buffer 4-component vector of int i}) -0:16 Constant: -0:16 0 (const int) -0:16 f2: direct index for structure (layout( row_major std430) buffer 4-component vector of float) -0:16 'anon@0' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer 4-component vector of float f2, layout( row_major std430) buffer 4-component vector of int i2}) -0:16 Constant: -0:16 0 (const uint) -0:15 Function Definition: main( ( temp void) -0:15 Function Parameters: -0:? Sequence -0:15 move second child to first child ( temp 4-component vector of float) -0:? 'pos' ( temp 4-component vector of float) -0:? 'pos' ( in 4-component vector of float FragCoord) -0:15 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:15 Function Call: @main(vf4; ( temp 4-component vector of float) -0:? 'pos' ( temp 4-component vector of float) -0:? Linker Objects -0:? 'TextureBuffer_var' (layout( binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer 4-component vector of float f, layout( row_major std430) buffer 4-component vector of int i}) -0:? 'anon@0' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer 4-component vector of float f2, layout( row_major std430) buffer 4-component vector of int i2}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'pos' ( in 4-component vector of float FragCoord) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:15 Function Definition: @main(vf4; ( temp 4-component vector of float) -0:15 Function Parameters: -0:15 'pos' ( in 4-component vector of float) -0:? Sequence -0:16 Branch: Return with expression -0:16 add ( temp 4-component vector of float) -0:16 f: direct index for structure (layout( row_major std430) buffer 4-component vector of float) -0:16 'TextureBuffer_var' (layout( binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer 4-component vector of float f, layout( row_major std430) buffer 4-component vector of int i}) -0:16 Constant: -0:16 0 (const int) -0:16 f2: direct index for structure (layout( row_major std430) buffer 4-component vector of float) -0:16 'anon@0' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer 4-component vector of float f2, layout( row_major std430) buffer 4-component vector of int i2}) -0:16 Constant: -0:16 0 (const uint) -0:15 Function Definition: main( ( temp void) -0:15 Function Parameters: -0:? Sequence -0:15 move second child to first child ( temp 4-component vector of float) -0:? 'pos' ( temp 4-component vector of float) -0:? 'pos' ( in 4-component vector of float FragCoord) -0:15 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:15 Function Call: @main(vf4; ( temp 4-component vector of float) -0:? 'pos' ( temp 4-component vector of float) -0:? Linker Objects -0:? 'TextureBuffer_var' (layout( binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer 4-component vector of float f, layout( row_major std430) buffer 4-component vector of int i}) -0:? 'anon@0' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer 4-component vector of float f2, layout( row_major std430) buffer 4-component vector of int i2}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'pos' ( in 4-component vector of float FragCoord) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 39 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 32 35 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 11 "@main(vf4;" - Name 10 "pos" - Name 15 "TextureBuffer_var" - MemberName 15(TextureBuffer_var) 0 "f" - MemberName 15(TextureBuffer_var) 1 "i" - Name 17 "TextureBuffer_var" - Name 22 "tbuf2" - MemberName 22(tbuf2) 0 "f2" - MemberName 22(tbuf2) 1 "i2" - Name 24 "" - Name 30 "pos" - Name 32 "pos" - Name 35 "@entryPointOutput" - Name 36 "param" - MemberDecorate 15(TextureBuffer_var) 0 NonWritable - MemberDecorate 15(TextureBuffer_var) 0 Offset 0 - MemberDecorate 15(TextureBuffer_var) 1 NonWritable - MemberDecorate 15(TextureBuffer_var) 1 Offset 16 - Decorate 15(TextureBuffer_var) BufferBlock - Decorate 17(TextureBuffer_var) DescriptorSet 0 - Decorate 17(TextureBuffer_var) Binding 0 - MemberDecorate 22(tbuf2) 0 NonWritable - MemberDecorate 22(tbuf2) 0 Offset 0 - MemberDecorate 22(tbuf2) 1 NonWritable - MemberDecorate 22(tbuf2) 1 Offset 16 - Decorate 22(tbuf2) BufferBlock - Decorate 24 DescriptorSet 0 - Decorate 24 Binding 1 - Decorate 32(pos) BuiltIn FragCoord - Decorate 35(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 9: TypeFunction 7(fvec4) 8(ptr) - 13: TypeInt 32 1 - 14: TypeVector 13(int) 4 -15(TextureBuffer_var): TypeStruct 7(fvec4) 14(ivec4) - 16: TypePointer Uniform 15(TextureBuffer_var) -17(TextureBuffer_var): 16(ptr) Variable Uniform - 18: 13(int) Constant 0 - 19: TypePointer Uniform 7(fvec4) - 22(tbuf2): TypeStruct 7(fvec4) 14(ivec4) - 23: TypePointer Uniform 22(tbuf2) - 24: 23(ptr) Variable Uniform - 31: TypePointer Input 7(fvec4) - 32(pos): 31(ptr) Variable Input - 34: TypePointer Output 7(fvec4) -35(@entryPointOutput): 34(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 30(pos): 8(ptr) Variable Function - 36(param): 8(ptr) Variable Function - 33: 7(fvec4) Load 32(pos) - Store 30(pos) 33 - 37: 7(fvec4) Load 30(pos) - Store 36(param) 37 - 38: 7(fvec4) FunctionCall 11(@main(vf4;) 36(param) - Store 35(@entryPointOutput) 38 - Return - FunctionEnd - 11(@main(vf4;): 7(fvec4) Function None 9 - 10(pos): 8(ptr) FunctionParameter - 12: Label - 20: 19(ptr) AccessChain 17(TextureBuffer_var) 18 - 21: 7(fvec4) Load 20 - 25: 19(ptr) AccessChain 24 18 - 26: 7(fvec4) Load 25 - 27: 7(fvec4) FAdd 21 26 - ReturnValue 27 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.this.frag.out b/deps/glslang/Test/baseResults/hlsl.this.frag.out deleted file mode 100644 index e6b54cf3..00000000 --- a/deps/glslang/Test/baseResults/hlsl.this.frag.out +++ /dev/null @@ -1,379 +0,0 @@ -hlsl.this.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:1 Sequence -0:1 move second child to first child ( temp 2-component vector of float) -0:1 'var' ( global 2-component vector of float) -0:1 Constant: -0:1 1.000000 -0:1 2.000000 -0:6 Function Definition: type1::memFun1(vi3; ( temp int) -0:6 Function Parameters: -0:6 '@this' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) -0:6 'var' ( in 3-component vector of int) -0:? Sequence -0:7 Branch: Return with expression -0:7 add ( temp int) -0:7 add ( temp int) -0:7 direct index ( temp int) -0:7 'var' ( in 3-component vector of int) -0:7 Constant: -0:7 2 (const int) -0:7 var: direct index for structure ( temp int) -0:7 '@this' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) -0:7 Constant: -0:7 1 (const int) -0:7 var2: direct index for structure ( temp int) -0:7 '@this' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) -0:7 Constant: -0:7 2 (const uint) -0:10 Function Definition: type1::memFun2(i1; ( temp int) -0:10 Function Parameters: -0:10 '@this' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) -0:10 'a' ( in int) -0:? Sequence -0:11 Sequence -0:11 move second child to first child ( temp 3-component vector of int) -0:11 'var' ( temp 3-component vector of int) -0:11 Constant: -0:11 1 (const int) -0:11 2 (const int) -0:11 3 (const int) -0:12 Branch: Return with expression -0:12 add ( temp int) -0:12 add ( temp int) -0:12 direct index ( temp int) -0:12 'var' ( temp 3-component vector of int) -0:12 Constant: -0:12 2 (const int) -0:12 Convert float to int ( temp int) -0:12 direct index ( temp float) -0:12 bar: direct index for structure ( temp 2-component vector of float) -0:12 '@this' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) -0:12 Constant: -0:12 0 (const uint) -0:12 Constant: -0:12 1 (const int) -0:12 var2: direct index for structure ( temp int) -0:12 '@this' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) -0:12 Constant: -0:12 2 (const int) -0:20 Function Definition: @main( ( temp 4-component vector of float) -0:20 Function Parameters: -0:? Sequence -0:22 move second child to first child ( temp 2-component vector of float) -0:22 bar: direct index for structure ( temp 2-component vector of float) -0:22 'T' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) -0:22 Constant: -0:22 0 (const int) -0:22 'var' ( global 2-component vector of float) -0:23 move second child to first child ( temp int) -0:23 var: direct index for structure ( temp int) -0:23 'T' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 7 (const int) -0:24 move second child to first child ( temp int) -0:24 var2: direct index for structure ( temp int) -0:24 'T' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) -0:24 Constant: -0:24 2 (const int) -0:24 Constant: -0:24 9 (const int) -0:25 Sequence -0:25 move second child to first child ( temp int) -0:25 'i' ( temp int) -0:25 Function Call: type1::memFun1(vi3; ( temp int) -0:25 'T' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) -0:25 Constant: -0:25 10 (const int) -0:25 11 (const int) -0:25 12 (const int) -0:26 add second child into first child ( temp int) -0:26 'i' ( temp int) -0:26 Function Call: type1::memFun2(i1; ( temp int) -0:26 'T' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) -0:26 Constant: -0:26 17 (const int) -0:28 Branch: Return with expression -0:28 Construct vec4 ( temp 4-component vector of float) -0:28 Convert int to float ( temp float) -0:28 'i' ( temp int) -0:28 Convert int to float ( temp float) -0:28 'i' ( temp int) -0:28 Convert int to float ( temp float) -0:28 'i' ( temp int) -0:28 Convert int to float ( temp float) -0:28 'i' ( temp int) -0:20 Function Definition: main( ( temp void) -0:20 Function Parameters: -0:? Sequence -0:20 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:20 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'var' ( global 2-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:1 Sequence -0:1 move second child to first child ( temp 2-component vector of float) -0:1 'var' ( global 2-component vector of float) -0:1 Constant: -0:1 1.000000 -0:1 2.000000 -0:6 Function Definition: type1::memFun1(vi3; ( temp int) -0:6 Function Parameters: -0:6 '@this' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) -0:6 'var' ( in 3-component vector of int) -0:? Sequence -0:7 Branch: Return with expression -0:7 add ( temp int) -0:7 add ( temp int) -0:7 direct index ( temp int) -0:7 'var' ( in 3-component vector of int) -0:7 Constant: -0:7 2 (const int) -0:7 var: direct index for structure ( temp int) -0:7 '@this' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) -0:7 Constant: -0:7 1 (const int) -0:7 var2: direct index for structure ( temp int) -0:7 '@this' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) -0:7 Constant: -0:7 2 (const uint) -0:10 Function Definition: type1::memFun2(i1; ( temp int) -0:10 Function Parameters: -0:10 '@this' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) -0:10 'a' ( in int) -0:? Sequence -0:11 Sequence -0:11 move second child to first child ( temp 3-component vector of int) -0:11 'var' ( temp 3-component vector of int) -0:11 Constant: -0:11 1 (const int) -0:11 2 (const int) -0:11 3 (const int) -0:12 Branch: Return with expression -0:12 add ( temp int) -0:12 add ( temp int) -0:12 direct index ( temp int) -0:12 'var' ( temp 3-component vector of int) -0:12 Constant: -0:12 2 (const int) -0:12 Convert float to int ( temp int) -0:12 direct index ( temp float) -0:12 bar: direct index for structure ( temp 2-component vector of float) -0:12 '@this' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) -0:12 Constant: -0:12 0 (const uint) -0:12 Constant: -0:12 1 (const int) -0:12 var2: direct index for structure ( temp int) -0:12 '@this' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) -0:12 Constant: -0:12 2 (const int) -0:20 Function Definition: @main( ( temp 4-component vector of float) -0:20 Function Parameters: -0:? Sequence -0:22 move second child to first child ( temp 2-component vector of float) -0:22 bar: direct index for structure ( temp 2-component vector of float) -0:22 'T' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) -0:22 Constant: -0:22 0 (const int) -0:22 'var' ( global 2-component vector of float) -0:23 move second child to first child ( temp int) -0:23 var: direct index for structure ( temp int) -0:23 'T' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 7 (const int) -0:24 move second child to first child ( temp int) -0:24 var2: direct index for structure ( temp int) -0:24 'T' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) -0:24 Constant: -0:24 2 (const int) -0:24 Constant: -0:24 9 (const int) -0:25 Sequence -0:25 move second child to first child ( temp int) -0:25 'i' ( temp int) -0:25 Function Call: type1::memFun1(vi3; ( temp int) -0:25 'T' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) -0:25 Constant: -0:25 10 (const int) -0:25 11 (const int) -0:25 12 (const int) -0:26 add second child into first child ( temp int) -0:26 'i' ( temp int) -0:26 Function Call: type1::memFun2(i1; ( temp int) -0:26 'T' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) -0:26 Constant: -0:26 17 (const int) -0:28 Branch: Return with expression -0:28 Construct vec4 ( temp 4-component vector of float) -0:28 Convert int to float ( temp float) -0:28 'i' ( temp int) -0:28 Convert int to float ( temp float) -0:28 'i' ( temp int) -0:28 Convert int to float ( temp float) -0:28 'i' ( temp int) -0:28 Convert int to float ( temp float) -0:28 'i' ( temp int) -0:20 Function Definition: main( ( temp void) -0:20 Function Parameters: -0:? Sequence -0:20 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:20 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'var' ( global 2-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 98 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 96 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 9 "type1" - MemberName 9(type1) 0 "bar" - MemberName 9(type1) 1 "var" - MemberName 9(type1) 2 "var2" - Name 16 "type1::memFun1(vi3;" - Name 14 "@this" - Name 15 "var" - Name 22 "type1::memFun2(i1;" - Name 20 "@this" - Name 21 "a" - Name 26 "@main(" - Name 29 "var" - Name 47 "var" - Name 64 "T" - Name 72 "i" - Name 77 "param" - Name 80 "param" - Name 96 "@entryPointOutput" - Decorate 96(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 2 - 8: TypeInt 32 1 - 9(type1): TypeStruct 7(fvec2) 8(int) 8(int) - 10: TypePointer Function 9(type1) - 11: TypeVector 8(int) 3 - 12: TypePointer Function 11(ivec3) - 13: TypeFunction 8(int) 10(ptr) 12(ptr) - 18: TypePointer Function 8(int) - 19: TypeFunction 8(int) 10(ptr) 18(ptr) - 24: TypeVector 6(float) 4 - 25: TypeFunction 24(fvec4) - 28: TypePointer Private 7(fvec2) - 29(var): 28(ptr) Variable Private - 30: 6(float) Constant 1065353216 - 31: 6(float) Constant 1073741824 - 32: 7(fvec2) ConstantComposite 30 31 - 33: TypeInt 32 0 - 34: 33(int) Constant 2 - 37: 8(int) Constant 1 - 41: 8(int) Constant 2 - 48: 8(int) Constant 3 - 49: 11(ivec3) ConstantComposite 37 41 48 - 52: 8(int) Constant 0 - 53: 33(int) Constant 1 - 54: TypePointer Function 6(float) - 66: TypePointer Function 7(fvec2) - 68: 8(int) Constant 7 - 70: 8(int) Constant 9 - 73: 8(int) Constant 10 - 74: 8(int) Constant 11 - 75: 8(int) Constant 12 - 76: 11(ivec3) ConstantComposite 73 74 75 - 79: 8(int) Constant 17 - 95: TypePointer Output 24(fvec4) -96(@entryPointOutput): 95(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - Store 29(var) 32 - 97: 24(fvec4) FunctionCall 26(@main() - Store 96(@entryPointOutput) 97 - Return - FunctionEnd -16(type1::memFun1(vi3;): 8(int) Function None 13 - 14(@this): 10(ptr) FunctionParameter - 15(var): 12(ptr) FunctionParameter - 17: Label - 35: 18(ptr) AccessChain 15(var) 34 - 36: 8(int) Load 35 - 38: 18(ptr) AccessChain 14(@this) 37 - 39: 8(int) Load 38 - 40: 8(int) IAdd 36 39 - 42: 18(ptr) AccessChain 14(@this) 41 - 43: 8(int) Load 42 - 44: 8(int) IAdd 40 43 - ReturnValue 44 - FunctionEnd -22(type1::memFun2(i1;): 8(int) Function None 19 - 20(@this): 10(ptr) FunctionParameter - 21(a): 18(ptr) FunctionParameter - 23: Label - 47(var): 12(ptr) Variable Function - Store 47(var) 49 - 50: 18(ptr) AccessChain 47(var) 34 - 51: 8(int) Load 50 - 55: 54(ptr) AccessChain 20(@this) 52 53 - 56: 6(float) Load 55 - 57: 8(int) ConvertFToS 56 - 58: 8(int) IAdd 51 57 - 59: 18(ptr) AccessChain 20(@this) 41 - 60: 8(int) Load 59 - 61: 8(int) IAdd 58 60 - ReturnValue 61 - FunctionEnd - 26(@main(): 24(fvec4) Function None 25 - 27: Label - 64(T): 10(ptr) Variable Function - 72(i): 18(ptr) Variable Function - 77(param): 12(ptr) Variable Function - 80(param): 18(ptr) Variable Function - 65: 7(fvec2) Load 29(var) - 67: 66(ptr) AccessChain 64(T) 52 - Store 67 65 - 69: 18(ptr) AccessChain 64(T) 37 - Store 69 68 - 71: 18(ptr) AccessChain 64(T) 41 - Store 71 70 - Store 77(param) 76 - 78: 8(int) FunctionCall 16(type1::memFun1(vi3;) 64(T) 77(param) - Store 72(i) 78 - Store 80(param) 79 - 81: 8(int) FunctionCall 22(type1::memFun2(i1;) 64(T) 80(param) - 82: 8(int) Load 72(i) - 83: 8(int) IAdd 82 81 - Store 72(i) 83 - 84: 8(int) Load 72(i) - 85: 6(float) ConvertSToF 84 - 86: 8(int) Load 72(i) - 87: 6(float) ConvertSToF 86 - 88: 8(int) Load 72(i) - 89: 6(float) ConvertSToF 88 - 90: 8(int) Load 72(i) - 91: 6(float) ConvertSToF 90 - 92: 24(fvec4) CompositeConstruct 85 87 89 91 - ReturnValue 92 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.tristream-append.geom.out b/deps/glslang/Test/baseResults/hlsl.tristream-append.geom.out deleted file mode 100644 index 53e8c049..00000000 --- a/deps/glslang/Test/baseResults/hlsl.tristream-append.geom.out +++ /dev/null @@ -1,274 +0,0 @@ -hlsl.tristream-append.geom -Shader version: 500 -invocations = -1 -max_vertices = 3 -input primitive = triangles -output primitive = triangle_strip -0:? Sequence -0:8 Function Definition: EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1; ( temp void) -0:8 Function Parameters: -0:8 'output' ( in structure{}) -0:8 'TriStream' ( out structure{}) -0:? Sequence -0:9 Sequence -0:9 Sequence -0:9 move second child to first child ( temp structure{}) -0:9 'TriStream' ( out structure{}) -0:9 'output' ( in structure{}) -0:9 EmitVertex ( temp void) -0:14 Function Definition: @main(struct-GSPS_INPUT1[3];struct-GSPS_INPUT1; ( temp void) -0:14 Function Parameters: -0:14 'input' ( in 3-element array of structure{}) -0:14 'TriStream' ( out structure{}) -0:? Sequence -0:15 Function Call: EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1; ( temp void) -0:15 direct index ( temp structure{}) -0:15 'input' ( in 3-element array of structure{}) -0:15 Constant: -0:15 0 (const int) -0:15 'TriStream' ( out structure{}) -0:16 Function Call: EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1; ( temp void) -0:16 direct index ( temp structure{}) -0:16 'input' ( in 3-element array of structure{}) -0:16 Constant: -0:16 1 (const int) -0:16 'TriStream' ( out structure{}) -0:17 Function Call: EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1; ( temp void) -0:17 direct index ( temp structure{}) -0:17 'input' ( in 3-element array of structure{}) -0:17 Constant: -0:17 2 (const int) -0:17 'TriStream' ( out structure{}) -0:14 Function Definition: main( ( temp void) -0:14 Function Parameters: -0:? Sequence -0:14 Sequence -0:14 move second child to first child ( temp structure{}) -0:14 direct index ( temp structure{}) -0:? 'input' ( temp 3-element array of structure{}) -0:14 Constant: -0:14 0 (const int) -0:14 direct index ( in structure{}) -0:? 'input' ( in 3-element array of structure{}) -0:14 Constant: -0:14 0 (const int) -0:14 move second child to first child ( temp structure{}) -0:14 direct index ( temp structure{}) -0:? 'input' ( temp 3-element array of structure{}) -0:14 Constant: -0:14 1 (const int) -0:14 direct index ( in structure{}) -0:? 'input' ( in 3-element array of structure{}) -0:14 Constant: -0:14 1 (const int) -0:14 move second child to first child ( temp structure{}) -0:14 direct index ( temp structure{}) -0:? 'input' ( temp 3-element array of structure{}) -0:14 Constant: -0:14 2 (const int) -0:14 direct index ( in structure{}) -0:? 'input' ( in 3-element array of structure{}) -0:14 Constant: -0:14 2 (const int) -0:14 Function Call: @main(struct-GSPS_INPUT1[3];struct-GSPS_INPUT1; ( temp void) -0:? 'input' ( temp 3-element array of structure{}) -0:? 'TriStream' ( temp structure{}) -0:? Linker Objects - - -Linked geometry stage: - - -Shader version: 500 -invocations = 1 -max_vertices = 3 -input primitive = triangles -output primitive = triangle_strip -0:? Sequence -0:8 Function Definition: EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1; ( temp void) -0:8 Function Parameters: -0:8 'output' ( in structure{}) -0:8 'TriStream' ( out structure{}) -0:? Sequence -0:9 Sequence -0:9 Sequence -0:9 move second child to first child ( temp structure{}) -0:9 'TriStream' ( out structure{}) -0:9 'output' ( in structure{}) -0:9 EmitVertex ( temp void) -0:14 Function Definition: @main(struct-GSPS_INPUT1[3];struct-GSPS_INPUT1; ( temp void) -0:14 Function Parameters: -0:14 'input' ( in 3-element array of structure{}) -0:14 'TriStream' ( out structure{}) -0:? Sequence -0:15 Function Call: EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1; ( temp void) -0:15 direct index ( temp structure{}) -0:15 'input' ( in 3-element array of structure{}) -0:15 Constant: -0:15 0 (const int) -0:15 'TriStream' ( out structure{}) -0:16 Function Call: EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1; ( temp void) -0:16 direct index ( temp structure{}) -0:16 'input' ( in 3-element array of structure{}) -0:16 Constant: -0:16 1 (const int) -0:16 'TriStream' ( out structure{}) -0:17 Function Call: EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1; ( temp void) -0:17 direct index ( temp structure{}) -0:17 'input' ( in 3-element array of structure{}) -0:17 Constant: -0:17 2 (const int) -0:17 'TriStream' ( out structure{}) -0:14 Function Definition: main( ( temp void) -0:14 Function Parameters: -0:? Sequence -0:14 Sequence -0:14 move second child to first child ( temp structure{}) -0:14 direct index ( temp structure{}) -0:? 'input' ( temp 3-element array of structure{}) -0:14 Constant: -0:14 0 (const int) -0:14 direct index ( in structure{}) -0:? 'input' ( in 3-element array of structure{}) -0:14 Constant: -0:14 0 (const int) -0:14 move second child to first child ( temp structure{}) -0:14 direct index ( temp structure{}) -0:? 'input' ( temp 3-element array of structure{}) -0:14 Constant: -0:14 1 (const int) -0:14 direct index ( in structure{}) -0:? 'input' ( in 3-element array of structure{}) -0:14 Constant: -0:14 1 (const int) -0:14 move second child to first child ( temp structure{}) -0:14 direct index ( temp structure{}) -0:? 'input' ( temp 3-element array of structure{}) -0:14 Constant: -0:14 2 (const int) -0:14 direct index ( in structure{}) -0:? 'input' ( in 3-element array of structure{}) -0:14 Constant: -0:14 2 (const int) -0:14 Function Call: @main(struct-GSPS_INPUT1[3];struct-GSPS_INPUT1; ( temp void) -0:? 'input' ( temp 3-element array of structure{}) -0:? 'TriStream' ( temp structure{}) -0:? Linker Objects - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 66 - - Capability Geometry - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Geometry 4 "main" - ExecutionMode 4 Triangles - ExecutionMode 4 Invocations 1 - ExecutionMode 4 OutputTriangleStrip - ExecutionMode 4 OutputVertices 3 - Source HLSL 500 - Name 4 "main" - Name 6 "GSPS_INPUT" - Name 11 "EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1;" - Name 9 "output" - Name 10 "TriStream" - Name 20 "@main(struct-GSPS_INPUT1[3];struct-GSPS_INPUT1;" - Name 18 "input" - Name 19 "TriStream" - Name 23 "TriStream" - Name 27 "param" - Name 30 "param" - Name 34 "param" - Name 37 "param" - Name 41 "param" - Name 44 "param" - Name 47 "input" - Name 49 "input" - Name 60 "TriStream" - Name 61 "param" - Name 63 "param" - 2: TypeVoid - 3: TypeFunction 2 - 6(GSPS_INPUT): TypeStruct - 7: TypePointer Function 6(GSPS_INPUT) - 8: TypeFunction 2 7(ptr) 7(ptr) - 13: TypeInt 32 0 - 14: 13(int) Constant 3 - 15: TypeArray 6(GSPS_INPUT) 14 - 16: TypePointer Function 15 - 17: TypeFunction 2 16(ptr) 7(ptr) - 22: TypePointer Output 6(GSPS_INPUT) - 23(TriStream): 22(ptr) Variable Output - 25: TypeInt 32 1 - 26: 25(int) Constant 0 - 33: 25(int) Constant 1 - 40: 25(int) Constant 2 - 48: TypePointer Input 15 - 49(input): 48(ptr) Variable Input - 50: TypePointer Input 6(GSPS_INPUT) - 4(main): 2 Function None 3 - 5: Label - 47(input): 16(ptr) Variable Function - 60(TriStream): 7(ptr) Variable Function - 61(param): 16(ptr) Variable Function - 63(param): 7(ptr) Variable Function - 51: 50(ptr) AccessChain 49(input) 26 - 52:6(GSPS_INPUT) Load 51 - 53: 7(ptr) AccessChain 47(input) 26 - Store 53 52 - 54: 50(ptr) AccessChain 49(input) 33 - 55:6(GSPS_INPUT) Load 54 - 56: 7(ptr) AccessChain 47(input) 33 - Store 56 55 - 57: 50(ptr) AccessChain 49(input) 40 - 58:6(GSPS_INPUT) Load 57 - 59: 7(ptr) AccessChain 47(input) 40 - Store 59 58 - 62: 15 Load 47(input) - Store 61(param) 62 - 64: 2 FunctionCall 20(@main(struct-GSPS_INPUT1[3];struct-GSPS_INPUT1;) 61(param) 63(param) - 65:6(GSPS_INPUT) Load 63(param) - Store 60(TriStream) 65 - Return - FunctionEnd -11(EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1;): 2 Function None 8 - 9(output): 7(ptr) FunctionParameter - 10(TriStream): 7(ptr) FunctionParameter - 12: Label - 24:6(GSPS_INPUT) Load 9(output) - Store 23(TriStream) 24 - EmitVertex - Return - FunctionEnd -20(@main(struct-GSPS_INPUT1[3];struct-GSPS_INPUT1;): 2 Function None 17 - 18(input): 16(ptr) FunctionParameter - 19(TriStream): 7(ptr) FunctionParameter - 21: Label - 27(param): 7(ptr) Variable Function - 30(param): 7(ptr) Variable Function - 34(param): 7(ptr) Variable Function - 37(param): 7(ptr) Variable Function - 41(param): 7(ptr) Variable Function - 44(param): 7(ptr) Variable Function - 28: 7(ptr) AccessChain 18(input) 26 - 29:6(GSPS_INPUT) Load 28 - Store 27(param) 29 - 31: 2 FunctionCall 11(EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1;) 27(param) 30(param) - 32:6(GSPS_INPUT) Load 30(param) - Store 19(TriStream) 32 - 35: 7(ptr) AccessChain 18(input) 33 - 36:6(GSPS_INPUT) Load 35 - Store 34(param) 36 - 38: 2 FunctionCall 11(EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1;) 34(param) 37(param) - 39:6(GSPS_INPUT) Load 37(param) - Store 19(TriStream) 39 - 42: 7(ptr) AccessChain 18(input) 40 - 43:6(GSPS_INPUT) Load 42 - Store 41(param) 43 - 45: 2 FunctionCall 11(EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1;) 41(param) 44(param) - 46:6(GSPS_INPUT) Load 44(param) - Store 19(TriStream) 46 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.tx.bracket.frag.out b/deps/glslang/Test/baseResults/hlsl.tx.bracket.frag.out deleted file mode 100644 index 424b8480..00000000 --- a/deps/glslang/Test/baseResults/hlsl.tx.bracket.frag.out +++ /dev/null @@ -1,731 +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): 8000a -// 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 47 Binding 9 - Decorate 57(g_tTex1df4) DescriptorSet 0 - Decorate 57(g_tTex1df4) Binding 0 - Decorate 72(g_tTex1di4) DescriptorSet 0 - Decorate 72(g_tTex1di4) Binding 1 - Decorate 80(g_tTex1du4) DescriptorSet 0 - Decorate 80(g_tTex1du4) Binding 2 - Decorate 88(g_tTex2df4) DescriptorSet 0 - Decorate 88(g_tTex2df4) Binding 3 - Decorate 98(g_tTex2di4) DescriptorSet 0 - Decorate 98(g_tTex2di4) Binding 4 - Decorate 106(g_tTex2du4) DescriptorSet 0 - Decorate 106(g_tTex2du4) Binding 5 - Decorate 114(g_tTex3df4) DescriptorSet 0 - Decorate 114(g_tTex3df4) Binding 6 - Decorate 124(g_tTex3di4) DescriptorSet 0 - Decorate 124(g_tTex3di4) Binding 7 - Decorate 132(g_tTex3du4) DescriptorSet 0 - Decorate 132(g_tTex3du4) Binding 8 - 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 172(g_tTex1df4a) Binding 0 - Decorate 175(g_tTex1di4a) DescriptorSet 0 - Decorate 175(g_tTex1di4a) Binding 0 - Decorate 178(g_tTex1du4a) DescriptorSet 0 - Decorate 178(g_tTex1du4a) Binding 0 - Decorate 181(g_tTex2df4a) DescriptorSet 0 - Decorate 181(g_tTex2df4a) Binding 0 - Decorate 184(g_tTex2di4a) DescriptorSet 0 - Decorate 184(g_tTex2di4a) Binding 0 - Decorate 187(g_tTex2du4a) DescriptorSet 0 - Decorate 187(g_tTex2du4a) Binding 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/Test/baseResults/hlsl.tx.overload.frag.out b/deps/glslang/Test/baseResults/hlsl.tx.overload.frag.out deleted file mode 100644 index 7fb0640e..00000000 --- a/deps/glslang/Test/baseResults/hlsl.tx.overload.frag.out +++ /dev/null @@ -1,251 +0,0 @@ -hlsl.tx.overload.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:8 Function Definition: Func(t211; ( temp float) -0:8 Function Parameters: -0:8 'DummyTex' ( in texture2D) -0:? Sequence -0:8 Branch: Return with expression -0:8 Constant: -0:8 1.000000 -0:9 Function Definition: Func(t21; ( temp 4-component vector of float) -0:9 Function Parameters: -0:9 'DummyTex' ( in texture2D) -0:? Sequence -0:9 Branch: Return with expression -0:9 Constant: -0:9 0.000000 -0:9 0.000000 -0:9 0.000000 -0:9 0.000000 -0:11 Function Definition: Func(I211; ( temp float) -0:11 Function Parameters: -0:11 'DummyTex' (layout( r32f) in image2D) -0:? Sequence -0:11 Branch: Return with expression -0:11 Constant: -0:11 1.000000 -0:12 Function Definition: Func(I21; ( temp 4-component vector of float) -0:12 Function Parameters: -0:12 'DummyTex' (layout( rgba32f) in image2D) -0:? Sequence -0:12 Branch: Return with expression -0:12 Constant: -0:12 0.000000 -0:12 0.000000 -0:12 0.000000 -0:12 0.000000 -0:15 Function Definition: @main( ( temp 4-component vector of float) -0:15 Function Parameters: -0:? Sequence -0:16 Branch: Return with expression -0:16 add ( temp 4-component vector of float) -0:16 add ( temp 4-component vector of float) -0:16 add ( temp 4-component vector of float) -0:16 Function Call: Func(t211; ( temp float) -0:16 'tf1' ( uniform texture2D) -0:16 Function Call: Func(t21; ( temp 4-component vector of float) -0:16 'tf4' ( uniform texture2D) -0:16 Function Call: Func(I211; ( temp float) -0:16 'twf1' (layout( r32f) uniform image2D) -0:16 Function Call: Func(I21; ( temp 4-component vector of float) -0:16 'twf4' (layout( rgba32f) uniform image2D) -0:15 Function Definition: main( ( temp void) -0:15 Function Parameters: -0:? Sequence -0:15 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:15 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'tf1' ( uniform texture2D) -0:? 'tf4' ( uniform texture2D) -0:? 'twf1' (layout( r32f) uniform image2D) -0:? 'twf4' (layout( rgba32f) uniform image2D) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:8 Function Definition: Func(t211; ( temp float) -0:8 Function Parameters: -0:8 'DummyTex' ( in texture2D) -0:? Sequence -0:8 Branch: Return with expression -0:8 Constant: -0:8 1.000000 -0:9 Function Definition: Func(t21; ( temp 4-component vector of float) -0:9 Function Parameters: -0:9 'DummyTex' ( in texture2D) -0:? Sequence -0:9 Branch: Return with expression -0:9 Constant: -0:9 0.000000 -0:9 0.000000 -0:9 0.000000 -0:9 0.000000 -0:11 Function Definition: Func(I211; ( temp float) -0:11 Function Parameters: -0:11 'DummyTex' (layout( r32f) in image2D) -0:? Sequence -0:11 Branch: Return with expression -0:11 Constant: -0:11 1.000000 -0:12 Function Definition: Func(I21; ( temp 4-component vector of float) -0:12 Function Parameters: -0:12 'DummyTex' (layout( rgba32f) in image2D) -0:? Sequence -0:12 Branch: Return with expression -0:12 Constant: -0:12 0.000000 -0:12 0.000000 -0:12 0.000000 -0:12 0.000000 -0:15 Function Definition: @main( ( temp 4-component vector of float) -0:15 Function Parameters: -0:? Sequence -0:16 Branch: Return with expression -0:16 add ( temp 4-component vector of float) -0:16 add ( temp 4-component vector of float) -0:16 add ( temp 4-component vector of float) -0:16 Function Call: Func(t211; ( temp float) -0:16 'tf1' ( uniform texture2D) -0:16 Function Call: Func(t21; ( temp 4-component vector of float) -0:16 'tf4' ( uniform texture2D) -0:16 Function Call: Func(I211; ( temp float) -0:16 'twf1' (layout( r32f) uniform image2D) -0:16 Function Call: Func(I21; ( temp 4-component vector of float) -0:16 'twf4' (layout( rgba32f) uniform image2D) -0:15 Function Definition: main( ( temp void) -0:15 Function Parameters: -0:? Sequence -0:15 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:15 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? 'tf1' ( uniform texture2D) -0:? 'tf4' ( uniform texture2D) -0:? 'twf1' (layout( r32f) uniform image2D) -0:? 'twf4' (layout( rgba32f) uniform image2D) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 73 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 71 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 11 "Func(t211;" - Name 10 "DummyTex" - Name 16 "Func(t21;" - Name 15 "DummyTex" - Name 22 "Func(I211;" - Name 21 "DummyTex" - Name 28 "Func(I21;" - Name 27 "DummyTex" - Name 31 "@main(" - Name 45 "tf1" - Name 46 "param" - Name 49 "tf4" - Name 50 "param" - Name 56 "twf1" - Name 57 "param" - Name 63 "twf4" - Name 64 "param" - Name 71 "@entryPointOutput" - Decorate 45(tf1) DescriptorSet 0 - Decorate 45(tf1) Binding 0 - Decorate 49(tf4) DescriptorSet 0 - Decorate 49(tf4) Binding 1 - Decorate 56(twf1) DescriptorSet 0 - Decorate 56(twf1) Binding 2 - Decorate 63(twf4) DescriptorSet 0 - Decorate 63(twf4) Binding 3 - Decorate 71(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeImage 6(float) 2D sampled format:Unknown - 8: TypePointer Function 7 - 9: TypeFunction 6(float) 8(ptr) - 13: TypeVector 6(float) 4 - 14: TypeFunction 13(fvec4) 8(ptr) - 18: TypeImage 6(float) 2D nonsampled format:R32f - 19: TypePointer Function 18 - 20: TypeFunction 6(float) 19(ptr) - 24: TypeImage 6(float) 2D nonsampled format:Rgba32f - 25: TypePointer Function 24 - 26: TypeFunction 13(fvec4) 25(ptr) - 30: TypeFunction 13(fvec4) - 33: 6(float) Constant 1065353216 - 36: 6(float) Constant 0 - 37: 13(fvec4) ConstantComposite 36 36 36 36 - 44: TypePointer UniformConstant 7 - 45(tf1): 44(ptr) Variable UniformConstant - 49(tf4): 44(ptr) Variable UniformConstant - 55: TypePointer UniformConstant 18 - 56(twf1): 55(ptr) Variable UniformConstant - 62: TypePointer UniformConstant 24 - 63(twf4): 62(ptr) Variable UniformConstant - 70: TypePointer Output 13(fvec4) -71(@entryPointOutput): 70(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 72: 13(fvec4) FunctionCall 31(@main() - Store 71(@entryPointOutput) 72 - Return - FunctionEnd - 11(Func(t211;): 6(float) Function None 9 - 10(DummyTex): 8(ptr) FunctionParameter - 12: Label - ReturnValue 33 - FunctionEnd - 16(Func(t21;): 13(fvec4) Function None 14 - 15(DummyTex): 8(ptr) FunctionParameter - 17: Label - ReturnValue 37 - FunctionEnd - 22(Func(I211;): 6(float) Function None 20 - 21(DummyTex): 19(ptr) FunctionParameter - 23: Label - ReturnValue 33 - FunctionEnd - 28(Func(I21;): 13(fvec4) Function None 26 - 27(DummyTex): 25(ptr) FunctionParameter - 29: Label - ReturnValue 37 - FunctionEnd - 31(@main(): 13(fvec4) Function None 30 - 32: Label - 46(param): 8(ptr) Variable Function - 50(param): 8(ptr) Variable Function - 57(param): 19(ptr) Variable Function - 64(param): 25(ptr) Variable Function - 47: 7 Load 45(tf1) - Store 46(param) 47 - 48: 6(float) FunctionCall 11(Func(t211;) 46(param) - 51: 7 Load 49(tf4) - Store 50(param) 51 - 52: 13(fvec4) FunctionCall 16(Func(t21;) 50(param) - 53: 13(fvec4) CompositeConstruct 48 48 48 48 - 54: 13(fvec4) FAdd 53 52 - 58: 18 Load 56(twf1) - Store 57(param) 58 - 59: 6(float) FunctionCall 22(Func(I211;) 57(param) - 60: 13(fvec4) CompositeConstruct 59 59 59 59 - 61: 13(fvec4) FAdd 54 60 - 65: 24 Load 63(twf4) - Store 64(param) 65 - 66: 13(fvec4) FunctionCall 28(Func(I21;) 64(param) - 67: 13(fvec4) FAdd 61 66 - ReturnValue 67 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.type.half.frag.out b/deps/glslang/Test/baseResults/hlsl.type.half.frag.out deleted file mode 100644 index 68f1b240..00000000 --- a/deps/glslang/Test/baseResults/hlsl.type.half.frag.out +++ /dev/null @@ -1,254 +0,0 @@ -hlsl.type.half.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:3 Function Definition: @main( ( temp 4-component vector of float) -0:3 Function Parameters: -0:? Sequence -0:4 Sequence -0:4 move second child to first child ( temp float) -0:4 'h0' ( temp float) -0:4 Constant: -0:4 0.000000 -0:5 Sequence -0:5 move second child to first child ( temp 1-component vector of float) -0:5 'h1' ( temp 1-component vector of float) -0:5 Constant: -0:5 1.000000 -0:6 Sequence -0:6 move second child to first child ( temp 2-component vector of float) -0:6 'h2' ( temp 2-component vector of float) -0:6 Constant: -0:6 2.000000 -0:6 2.000000 -0:7 Sequence -0:7 move second child to first child ( temp 3-component vector of float) -0:7 'h3' ( temp 3-component vector of float) -0:7 Constant: -0:7 3.000000 -0:7 3.000000 -0:7 3.000000 -0:8 Sequence -0:8 move second child to first child ( temp 4-component vector of float) -0:8 'h4' ( temp 4-component vector of float) -0:8 Constant: -0:8 4.000000 -0:8 4.000000 -0:8 4.000000 -0:8 4.000000 -0:15 Sequence -0:15 move second child to first child ( temp 2X2 matrix of float) -0:15 'h22' ( temp 2X2 matrix of float) -0:15 Constant: -0:15 1.000000 -0:15 2.000000 -0:15 3.000000 -0:15 4.000000 -0:16 Sequence -0:16 move second child to first child ( temp 2X3 matrix of float) -0:16 'h23' ( temp 2X3 matrix of float) -0:16 Constant: -0:16 4.900000 -0:16 4.900000 -0:16 4.900000 -0:16 4.900000 -0:16 4.900000 -0:16 4.900000 -0:27 Branch: Return with expression -0:27 Construct vec4 ( temp 4-component vector of float) -0:27 add ( temp float) -0:27 add ( temp float) -0:27 direct index ( temp float) -0:27 direct index ( temp 3-component vector of float) -0:27 'h23' ( temp 2X3 matrix of float) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 0 (const int) -0:27 direct index ( temp float) -0:27 'h4' ( temp 4-component vector of float) -0:27 Constant: -0:27 1 (const int) -0:27 'h0' ( temp float) -0:3 Function Definition: main( ( temp void) -0:3 Function Parameters: -0:? Sequence -0:3 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:3 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:3 Function Definition: @main( ( temp 4-component vector of float) -0:3 Function Parameters: -0:? Sequence -0:4 Sequence -0:4 move second child to first child ( temp float) -0:4 'h0' ( temp float) -0:4 Constant: -0:4 0.000000 -0:5 Sequence -0:5 move second child to first child ( temp 1-component vector of float) -0:5 'h1' ( temp 1-component vector of float) -0:5 Constant: -0:5 1.000000 -0:6 Sequence -0:6 move second child to first child ( temp 2-component vector of float) -0:6 'h2' ( temp 2-component vector of float) -0:6 Constant: -0:6 2.000000 -0:6 2.000000 -0:7 Sequence -0:7 move second child to first child ( temp 3-component vector of float) -0:7 'h3' ( temp 3-component vector of float) -0:7 Constant: -0:7 3.000000 -0:7 3.000000 -0:7 3.000000 -0:8 Sequence -0:8 move second child to first child ( temp 4-component vector of float) -0:8 'h4' ( temp 4-component vector of float) -0:8 Constant: -0:8 4.000000 -0:8 4.000000 -0:8 4.000000 -0:8 4.000000 -0:15 Sequence -0:15 move second child to first child ( temp 2X2 matrix of float) -0:15 'h22' ( temp 2X2 matrix of float) -0:15 Constant: -0:15 1.000000 -0:15 2.000000 -0:15 3.000000 -0:15 4.000000 -0:16 Sequence -0:16 move second child to first child ( temp 2X3 matrix of float) -0:16 'h23' ( temp 2X3 matrix of float) -0:16 Constant: -0:16 4.900000 -0:16 4.900000 -0:16 4.900000 -0:16 4.900000 -0:16 4.900000 -0:16 4.900000 -0:27 Branch: Return with expression -0:27 Construct vec4 ( temp 4-component vector of float) -0:27 add ( temp float) -0:27 add ( temp float) -0:27 direct index ( temp float) -0:27 direct index ( temp 3-component vector of float) -0:27 'h23' ( temp 2X3 matrix of float) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 0 (const int) -0:27 direct index ( temp float) -0:27 'h4' ( temp 4-component vector of float) -0:27 Constant: -0:27 1 (const int) -0:27 'h0' ( temp float) -0:3 Function Definition: main( ( temp void) -0:3 Function Parameters: -0:? Sequence -0:3 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:3 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 60 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 58 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 9 "@main(" - Name 12 "h0" - Name 14 "h1" - Name 18 "h2" - Name 23 "h3" - Name 27 "h4" - Name 32 "h22" - Name 38 "h23" - Name 58 "@entryPointOutput" - Decorate 58(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 11: TypePointer Function 6(float) - 13: 6(float) Constant 0 - 15: 6(float) Constant 1065353216 - 16: TypeVector 6(float) 2 - 17: TypePointer Function 16(fvec2) - 19: 6(float) Constant 1073741824 - 20: 16(fvec2) ConstantComposite 19 19 - 21: TypeVector 6(float) 3 - 22: TypePointer Function 21(fvec3) - 24: 6(float) Constant 1077936128 - 25: 21(fvec3) ConstantComposite 24 24 24 - 26: TypePointer Function 7(fvec4) - 28: 6(float) Constant 1082130432 - 29: 7(fvec4) ConstantComposite 28 28 28 28 - 30: TypeMatrix 16(fvec2) 2 - 31: TypePointer Function 30 - 33: 16(fvec2) ConstantComposite 15 19 - 34: 16(fvec2) ConstantComposite 24 28 - 35: 30 ConstantComposite 33 34 - 36: TypeMatrix 21(fvec3) 2 - 37: TypePointer Function 36 - 39: 6(float) Constant 1084017869 - 40: 21(fvec3) ConstantComposite 39 39 39 - 41: 36 ConstantComposite 40 40 - 42: TypeInt 32 1 - 43: 42(int) Constant 0 - 44: TypeInt 32 0 - 45: 44(int) Constant 0 - 48: 44(int) Constant 1 - 57: TypePointer Output 7(fvec4) -58(@entryPointOutput): 57(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 59: 7(fvec4) FunctionCall 9(@main() - Store 58(@entryPointOutput) 59 - Return - FunctionEnd - 9(@main(): 7(fvec4) Function None 8 - 10: Label - 12(h0): 11(ptr) Variable Function - 14(h1): 11(ptr) Variable Function - 18(h2): 17(ptr) Variable Function - 23(h3): 22(ptr) Variable Function - 27(h4): 26(ptr) Variable Function - 32(h22): 31(ptr) Variable Function - 38(h23): 37(ptr) Variable Function - Store 12(h0) 13 - Store 14(h1) 15 - Store 18(h2) 20 - Store 23(h3) 25 - Store 27(h4) 29 - Store 32(h22) 35 - Store 38(h23) 41 - 46: 11(ptr) AccessChain 38(h23) 43 45 - 47: 6(float) Load 46 - 49: 11(ptr) AccessChain 27(h4) 48 - 50: 6(float) Load 49 - 51: 6(float) FAdd 47 50 - 52: 6(float) Load 12(h0) - 53: 6(float) FAdd 51 52 - 54: 7(fvec4) CompositeConstruct 53 53 53 53 - ReturnValue 54 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.type.identifier.frag.out b/deps/glslang/Test/baseResults/hlsl.type.identifier.frag.out deleted file mode 100644 index 5705fb76..00000000 --- a/deps/glslang/Test/baseResults/hlsl.type.identifier.frag.out +++ /dev/null @@ -1,436 +0,0 @@ -hlsl.type.identifier.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:6 Function Definition: fn(f1; ( temp float) -0:6 Function Parameters: -0:6 'float' ( in float) -0:? Sequence -0:6 Branch: Return with expression -0:6 'float' ( in float) -0:9 Function Definition: @main( ( temp 4-component vector of float) -0:9 Function Parameters: -0:? Sequence -0:10 Sequence -0:10 move second child to first child ( temp float) -0:10 'float' ( temp float) -0:10 Constant: -0:10 7.000000 -0:11 Sequence -0:11 move second child to first child ( temp 2-element array of bool) -0:11 'bool' ( temp 2-element array of bool) -0:11 Construct bool ( temp 2-element array of bool) -0:11 Convert float to bool ( temp bool) -0:11 'float' ( temp float) -0:11 Convert float to bool ( temp bool) -0:11 'float' ( temp float) -0:12 Sequence -0:12 move second child to first child ( temp int) -0:12 'int' ( temp int) -0:12 Convert bool to int ( temp int) -0:12 direct index ( temp bool) -0:12 'bool' ( temp 2-element array of bool) -0:12 Constant: -0:12 1 (const int) -0:13 Sequence -0:13 move second child to first child ( temp uint) -0:13 'uint' ( temp uint) -0:13 Convert float to uint ( temp uint) -0:13 add ( temp float) -0:13 'float' ( temp float) -0:13 Convert int to float ( temp float) -0:13 'int' ( temp int) -0:14 Sequence -0:14 move second child to first child ( temp mediump float) -0:14 'min16float' ( temp mediump float) -0:14 Convert uint to float ( temp mediump float) -0:14 'uint' ( temp mediump uint) -0:15 Sequence -0:15 move second child to first child ( temp mediump float) -0:15 'min10float' ( temp mediump float) -0:15 'min16float' ( temp mediump float) -0:16 Sequence -0:16 move second child to first child ( temp float) -0:16 'half' ( temp float) -0:16 Constant: -0:16 0.500000 -0:? Sequence -0:20 move second child to first child ( temp float) -0:20 float: direct index for structure ( temp float) -0:20 'float' ( temp structure{ temp float float}) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 42.000000 -0:23 move second child to first child ( temp bool) -0:23 direct index ( temp bool) -0:23 'bool' ( temp 2-element array of bool) -0:23 Constant: -0:23 0 (const int) -0:23 direct index ( temp bool) -0:23 'bool' ( temp 2-element array of bool) -0:23 Constant: -0:23 1 (const int) -0:25 move second child to first child ( temp mediump float) -0:25 'float' ( temp mediump float) -0:25 add ( temp mediump float) -0:25 add ( temp mediump float) -0:25 add ( temp mediump float) -0:25 add ( temp mediump float) -0:25 add ( temp mediump float) -0:25 add ( temp mediump float) -0:25 'float' ( temp mediump float) -0:25 Convert int to float ( temp mediump float) -0:25 'int' ( temp mediump int) -0:25 Convert uint to float ( temp mediump float) -0:25 'uint' ( temp mediump uint) -0:25 'min16float' ( temp mediump float) -0:25 'min10float' ( temp mediump float) -0:25 Test condition and select ( temp mediump float): no shortcircuit -0:25 Condition -0:25 direct index ( temp bool) -0:25 'bool' ( temp 2-element array of bool) -0:25 Constant: -0:25 0 (const int) -0:25 true case -0:25 Convert int to float ( temp mediump float) -0:25 'int' ( temp mediump int) -0:25 false case -0:25 'float' ( temp mediump float) -0:25 Function Call: fn(f1; ( temp mediump float) -0:25 'float' ( temp mediump float) -0:28 move second child to first child ( temp float) -0:28 direct index ( temp float) -0:28 direct index ( temp 3-component vector of float) -0:28 'half2x3' ( temp 2X3 matrix of float) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 0 (const int) -0:28 component-wise multiply ( temp float) -0:28 'float' ( temp float) -0:28 'float' ( temp float) -0:30 Branch: Return with expression -0:30 Construct vec4 ( temp 4-component vector of float) -0:30 add ( temp float) -0:30 'float' ( temp float) -0:30 direct index ( temp float) -0:30 direct index ( temp 3-component vector of float) -0:30 'half2x3' ( temp 2X3 matrix of float) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 0 (const int) -0:9 Function Definition: main( ( temp void) -0:9 Function Parameters: -0:? Sequence -0:9 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:9 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:6 Function Definition: fn(f1; ( temp float) -0:6 Function Parameters: -0:6 'float' ( in float) -0:? Sequence -0:6 Branch: Return with expression -0:6 'float' ( in float) -0:9 Function Definition: @main( ( temp 4-component vector of float) -0:9 Function Parameters: -0:? Sequence -0:10 Sequence -0:10 move second child to first child ( temp float) -0:10 'float' ( temp float) -0:10 Constant: -0:10 7.000000 -0:11 Sequence -0:11 move second child to first child ( temp 2-element array of bool) -0:11 'bool' ( temp 2-element array of bool) -0:11 Construct bool ( temp 2-element array of bool) -0:11 Convert float to bool ( temp bool) -0:11 'float' ( temp float) -0:11 Convert float to bool ( temp bool) -0:11 'float' ( temp float) -0:12 Sequence -0:12 move second child to first child ( temp int) -0:12 'int' ( temp int) -0:12 Convert bool to int ( temp int) -0:12 direct index ( temp bool) -0:12 'bool' ( temp 2-element array of bool) -0:12 Constant: -0:12 1 (const int) -0:13 Sequence -0:13 move second child to first child ( temp uint) -0:13 'uint' ( temp uint) -0:13 Convert float to uint ( temp uint) -0:13 add ( temp float) -0:13 'float' ( temp float) -0:13 Convert int to float ( temp float) -0:13 'int' ( temp int) -0:14 Sequence -0:14 move second child to first child ( temp mediump float) -0:14 'min16float' ( temp mediump float) -0:14 Convert uint to float ( temp mediump float) -0:14 'uint' ( temp mediump uint) -0:15 Sequence -0:15 move second child to first child ( temp mediump float) -0:15 'min10float' ( temp mediump float) -0:15 'min16float' ( temp mediump float) -0:16 Sequence -0:16 move second child to first child ( temp float) -0:16 'half' ( temp float) -0:16 Constant: -0:16 0.500000 -0:? Sequence -0:20 move second child to first child ( temp float) -0:20 float: direct index for structure ( temp float) -0:20 'float' ( temp structure{ temp float float}) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 42.000000 -0:23 move second child to first child ( temp bool) -0:23 direct index ( temp bool) -0:23 'bool' ( temp 2-element array of bool) -0:23 Constant: -0:23 0 (const int) -0:23 direct index ( temp bool) -0:23 'bool' ( temp 2-element array of bool) -0:23 Constant: -0:23 1 (const int) -0:25 move second child to first child ( temp mediump float) -0:25 'float' ( temp mediump float) -0:25 add ( temp mediump float) -0:25 add ( temp mediump float) -0:25 add ( temp mediump float) -0:25 add ( temp mediump float) -0:25 add ( temp mediump float) -0:25 add ( temp mediump float) -0:25 'float' ( temp mediump float) -0:25 Convert int to float ( temp mediump float) -0:25 'int' ( temp mediump int) -0:25 Convert uint to float ( temp mediump float) -0:25 'uint' ( temp mediump uint) -0:25 'min16float' ( temp mediump float) -0:25 'min10float' ( temp mediump float) -0:25 Test condition and select ( temp mediump float): no shortcircuit -0:25 Condition -0:25 direct index ( temp bool) -0:25 'bool' ( temp 2-element array of bool) -0:25 Constant: -0:25 0 (const int) -0:25 true case -0:25 Convert int to float ( temp mediump float) -0:25 'int' ( temp mediump int) -0:25 false case -0:25 'float' ( temp mediump float) -0:25 Function Call: fn(f1; ( temp mediump float) -0:25 'float' ( temp mediump float) -0:28 move second child to first child ( temp float) -0:28 direct index ( temp float) -0:28 direct index ( temp 3-component vector of float) -0:28 'half2x3' ( temp 2X3 matrix of float) -0:28 Constant: -0:28 0 (const int) -0:28 Constant: -0:28 0 (const int) -0:28 component-wise multiply ( temp float) -0:28 'float' ( temp float) -0:28 'float' ( temp float) -0:30 Branch: Return with expression -0:30 Construct vec4 ( temp 4-component vector of float) -0:30 add ( temp float) -0:30 'float' ( temp float) -0:30 direct index ( temp float) -0:30 direct index ( temp 3-component vector of float) -0:30 'half2x3' ( temp 2X3 matrix of float) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 0 (const int) -0:9 Function Definition: main( ( temp void) -0:9 Function Parameters: -0:? Sequence -0:9 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:9 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 105 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 103 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 10 "fn(f1;" - Name 9 "float" - Name 14 "@main(" - Name 19 "float" - Name 26 "bool" - Name 35 "int" - Name 43 "uint" - Name 49 "min16float" - Name 52 "min10float" - Name 54 "half" - Name 56 "foo_t" - MemberName 56(foo_t) 0 "float" - Name 58 "float" - Name 82 "param" - Name 89 "half2x3" - Name 103 "@entryPointOutput" - Decorate 49(min16float) RelaxedPrecision - Decorate 50 RelaxedPrecision - Decorate 51 RelaxedPrecision - Decorate 52(min10float) RelaxedPrecision - Decorate 53 RelaxedPrecision - Decorate 64 RelaxedPrecision - Decorate 65 RelaxedPrecision - Decorate 66 RelaxedPrecision - Decorate 67 RelaxedPrecision - Decorate 68 RelaxedPrecision - Decorate 69 RelaxedPrecision - Decorate 70 RelaxedPrecision - Decorate 71 RelaxedPrecision - Decorate 72 RelaxedPrecision - Decorate 73 RelaxedPrecision - Decorate 74 RelaxedPrecision - Decorate 77 RelaxedPrecision - Decorate 78 RelaxedPrecision - Decorate 79 RelaxedPrecision - Decorate 81 RelaxedPrecision - Decorate 83 RelaxedPrecision - Decorate 84 RelaxedPrecision - Decorate 85 RelaxedPrecision - Decorate 103(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypePointer Function 6(float) - 8: TypeFunction 6(float) 7(ptr) - 12: TypeVector 6(float) 4 - 13: TypeFunction 12(fvec4) - 20: 6(float) Constant 1088421888 - 21: TypeBool - 22: TypeInt 32 0 - 23: 22(int) Constant 2 - 24: TypeArray 21(bool) 23 - 25: TypePointer Function 24 - 28: 6(float) Constant 0 - 33: TypeInt 32 1 - 34: TypePointer Function 33(int) - 36: 33(int) Constant 1 - 37: TypePointer Function 21(bool) - 40: 33(int) Constant 0 - 42: TypePointer Function 22(int) - 55: 6(float) Constant 1056964608 - 56(foo_t): TypeStruct 6(float) - 57: TypePointer Function 56(foo_t) - 59: 6(float) Constant 1109917696 - 86: TypeVector 6(float) 3 - 87: TypeMatrix 86(fvec3) 2 - 88: TypePointer Function 87 - 93: 22(int) Constant 0 - 102: TypePointer Output 12(fvec4) -103(@entryPointOutput): 102(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 104: 12(fvec4) FunctionCall 14(@main() - Store 103(@entryPointOutput) 104 - Return - FunctionEnd - 10(fn(f1;): 6(float) Function None 8 - 9(float): 7(ptr) FunctionParameter - 11: Label - 16: 6(float) Load 9(float) - ReturnValue 16 - FunctionEnd - 14(@main(): 12(fvec4) Function None 13 - 15: Label - 19(float): 7(ptr) Variable Function - 26(bool): 25(ptr) Variable Function - 35(int): 34(ptr) Variable Function - 43(uint): 42(ptr) Variable Function - 49(min16float): 7(ptr) Variable Function - 52(min10float): 7(ptr) Variable Function - 54(half): 7(ptr) Variable Function - 58(float): 57(ptr) Variable Function - 82(param): 7(ptr) Variable Function - 89(half2x3): 88(ptr) Variable Function - Store 19(float) 20 - 27: 6(float) Load 19(float) - 29: 21(bool) FUnordNotEqual 27 28 - 30: 6(float) Load 19(float) - 31: 21(bool) FUnordNotEqual 30 28 - 32: 24 CompositeConstruct 29 31 - Store 26(bool) 32 - 38: 37(ptr) AccessChain 26(bool) 36 - 39: 21(bool) Load 38 - 41: 33(int) Select 39 36 40 - Store 35(int) 41 - 44: 6(float) Load 19(float) - 45: 33(int) Load 35(int) - 46: 6(float) ConvertSToF 45 - 47: 6(float) FAdd 44 46 - 48: 22(int) ConvertFToU 47 - Store 43(uint) 48 - 50: 22(int) Load 43(uint) - 51: 6(float) ConvertUToF 50 - Store 49(min16float) 51 - 53: 6(float) Load 49(min16float) - Store 52(min10float) 53 - Store 54(half) 55 - 60: 7(ptr) AccessChain 58(float) 40 - Store 60 59 - 61: 37(ptr) AccessChain 26(bool) 36 - 62: 21(bool) Load 61 - 63: 37(ptr) AccessChain 26(bool) 40 - Store 63 62 - 64: 6(float) Load 19(float) - 65: 33(int) Load 35(int) - 66: 6(float) ConvertSToF 65 - 67: 6(float) FAdd 64 66 - 68: 22(int) Load 43(uint) - 69: 6(float) ConvertUToF 68 - 70: 6(float) FAdd 67 69 - 71: 6(float) Load 49(min16float) - 72: 6(float) FAdd 70 71 - 73: 6(float) Load 52(min10float) - 74: 6(float) FAdd 72 73 - 75: 37(ptr) AccessChain 26(bool) 40 - 76: 21(bool) Load 75 - 77: 33(int) Load 35(int) - 78: 6(float) ConvertSToF 77 - 79: 6(float) Load 19(float) - 80: 6(float) Select 76 78 79 - 81: 6(float) FAdd 74 80 - 83: 6(float) Load 19(float) - Store 82(param) 83 - 84: 6(float) FunctionCall 10(fn(f1;) 82(param) - 85: 6(float) FAdd 81 84 - Store 19(float) 85 - 90: 6(float) Load 19(float) - 91: 6(float) Load 19(float) - 92: 6(float) FMul 90 91 - 94: 7(ptr) AccessChain 89(half2x3) 40 93 - Store 94 92 - 95: 6(float) Load 19(float) - 96: 7(ptr) AccessChain 89(half2x3) 40 93 - 97: 6(float) Load 96 - 98: 6(float) FAdd 95 97 - 99: 12(fvec4) CompositeConstruct 98 98 98 98 - ReturnValue 99 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.type.type.conversion.all.frag.out b/deps/glslang/Test/baseResults/hlsl.type.type.conversion.all.frag.out deleted file mode 100644 index ae05dc2a..00000000 --- a/deps/glslang/Test/baseResults/hlsl.type.type.conversion.all.frag.out +++ /dev/null @@ -1,1469 +0,0 @@ -hlsl.type.type.conversion.all.frag -ERROR: 0:88: '=' : cannot convert from ' const 2X2 matrix of float' to ' temp 2-component vector of float' -ERROR: 0:89: '=' : cannot convert from ' const 2X3 matrix of float' to ' temp 2-component vector of float' -ERROR: 0:90: '=' : cannot convert from ' const 2X4 matrix of float' to ' temp 2-component vector of float' -ERROR: 0:91: '=' : cannot convert from ' const 3X2 matrix of float' to ' temp 2-component vector of float' -ERROR: 0:92: '=' : cannot convert from ' const 3X3 matrix of float' to ' temp 2-component vector of float' -ERROR: 0:93: '=' : cannot convert from ' const 3X4 matrix of float' to ' temp 2-component vector of float' -ERROR: 0:94: '=' : cannot convert from ' const 4X2 matrix of float' to ' temp 2-component vector of float' -ERROR: 0:95: '=' : cannot convert from ' const 4X3 matrix of float' to ' temp 2-component vector of float' -ERROR: 0:96: '=' : cannot convert from ' const 4X4 matrix of float' to ' temp 2-component vector of float' -ERROR: 0:97: '=' : cannot convert from ' const 2-component vector of float' to ' temp 3-component vector of float' -ERROR: 0:98: '=' : cannot convert from ' const 2X2 matrix of float' to ' temp 3-component vector of float' -ERROR: 0:99: '=' : cannot convert from ' const 2X3 matrix of float' to ' temp 3-component vector of float' -ERROR: 0:100: '=' : cannot convert from ' const 2X4 matrix of float' to ' temp 3-component vector of float' -ERROR: 0:101: '=' : cannot convert from ' const 3X2 matrix of float' to ' temp 3-component vector of float' -ERROR: 0:102: '=' : cannot convert from ' const 3X3 matrix of float' to ' temp 3-component vector of float' -ERROR: 0:103: '=' : cannot convert from ' const 3X4 matrix of float' to ' temp 3-component vector of float' -ERROR: 0:104: '=' : cannot convert from ' const 4X2 matrix of float' to ' temp 3-component vector of float' -ERROR: 0:105: '=' : cannot convert from ' const 4X3 matrix of float' to ' temp 3-component vector of float' -ERROR: 0:106: '=' : cannot convert from ' const 4X4 matrix of float' to ' temp 3-component vector of float' -ERROR: 0:107: '=' : cannot convert from ' const 2-component vector of float' to ' temp 4-component vector of float' -ERROR: 0:108: '=' : cannot convert from ' const 3-component vector of float' to ' temp 4-component vector of float' -ERROR: 0:109: '=' : cannot convert from ' const 2X3 matrix of float' to ' temp 4-component vector of float' -ERROR: 0:110: '=' : cannot convert from ' const 2X4 matrix of float' to ' temp 4-component vector of float' -ERROR: 0:111: '=' : cannot convert from ' const 3X2 matrix of float' to ' temp 4-component vector of float' -ERROR: 0:112: '=' : cannot convert from ' const 3X3 matrix of float' to ' temp 4-component vector of float' -ERROR: 0:113: '=' : cannot convert from ' const 3X4 matrix of float' to ' temp 4-component vector of float' -ERROR: 0:114: '=' : cannot convert from ' const 4X2 matrix of float' to ' temp 4-component vector of float' -ERROR: 0:115: '=' : cannot convert from ' const 4X3 matrix of float' to ' temp 4-component vector of float' -ERROR: 0:116: '=' : cannot convert from ' const 4X4 matrix of float' to ' temp 4-component vector of float' -ERROR: 0:117: '=' : cannot convert from ' const 2-component vector of float' to ' temp 2X2 matrix of float' -ERROR: 0:118: '=' : cannot convert from ' const 3-component vector of float' to ' temp 2X2 matrix of float' -ERROR: 0:119: '=' : cannot convert from ' const 2-component vector of float' to ' temp 2X3 matrix of float' -ERROR: 0:120: '=' : cannot convert from ' const 3-component vector of float' to ' temp 2X3 matrix of float' -ERROR: 0:121: '=' : cannot convert from ' const 4-component vector of float' to ' temp 2X3 matrix of float' -ERROR: 0:122: '=' : cannot convert from ' const 2X2 matrix of float' to ' temp 2X3 matrix of float' -ERROR: 0:123: '=' : cannot convert from ' const 3X2 matrix of float' to ' temp 2X3 matrix of float' -ERROR: 0:124: '=' : cannot convert from ' const 4X2 matrix of float' to ' temp 2X3 matrix of float' -ERROR: 0:125: '=' : cannot convert from ' const 2-component vector of float' to ' temp 2X4 matrix of float' -ERROR: 0:126: '=' : cannot convert from ' const 3-component vector of float' to ' temp 2X4 matrix of float' -ERROR: 0:127: '=' : cannot convert from ' const 4-component vector of float' to ' temp 2X4 matrix of float' -ERROR: 0:128: '=' : cannot convert from ' const 2X2 matrix of float' to ' temp 2X4 matrix of float' -ERROR: 0:129: '=' : cannot convert from ' const 2X3 matrix of float' to ' temp 2X4 matrix of float' -ERROR: 0:130: '=' : cannot convert from ' const 3X2 matrix of float' to ' temp 2X4 matrix of float' -ERROR: 0:131: '=' : cannot convert from ' const 3X3 matrix of float' to ' temp 2X4 matrix of float' -ERROR: 0:132: '=' : cannot convert from ' const 4X2 matrix of float' to ' temp 2X4 matrix of float' -ERROR: 0:133: '=' : cannot convert from ' const 4X3 matrix of float' to ' temp 2X4 matrix of float' -ERROR: 0:134: '=' : cannot convert from ' const 2-component vector of float' to ' temp 3X2 matrix of float' -ERROR: 0:135: '=' : cannot convert from ' const 3-component vector of float' to ' temp 3X2 matrix of float' -ERROR: 0:136: '=' : cannot convert from ' const 4-component vector of float' to ' temp 3X2 matrix of float' -ERROR: 0:137: '=' : cannot convert from ' const 2X2 matrix of float' to ' temp 3X2 matrix of float' -ERROR: 0:138: '=' : cannot convert from ' const 2X3 matrix of float' to ' temp 3X2 matrix of float' -ERROR: 0:139: '=' : cannot convert from ' const 2X4 matrix of float' to ' temp 3X2 matrix of float' -ERROR: 0:140: '=' : cannot convert from ' const 2-component vector of float' to ' temp 3X3 matrix of float' -ERROR: 0:141: '=' : cannot convert from ' const 3-component vector of float' to ' temp 3X3 matrix of float' -ERROR: 0:142: '=' : cannot convert from ' const 4-component vector of float' to ' temp 3X3 matrix of float' -ERROR: 0:143: '=' : cannot convert from ' const 2X2 matrix of float' to ' temp 3X3 matrix of float' -ERROR: 0:144: '=' : cannot convert from ' const 2X3 matrix of float' to ' temp 3X3 matrix of float' -ERROR: 0:145: '=' : cannot convert from ' const 2X4 matrix of float' to ' temp 3X3 matrix of float' -ERROR: 0:146: '=' : cannot convert from ' const 3X2 matrix of float' to ' temp 3X3 matrix of float' -ERROR: 0:147: '=' : cannot convert from ' const 4X2 matrix of float' to ' temp 3X3 matrix of float' -ERROR: 0:148: '=' : cannot convert from ' const 2-component vector of float' to ' temp 3X4 matrix of float' -ERROR: 0:149: '=' : cannot convert from ' const 3-component vector of float' to ' temp 3X4 matrix of float' -ERROR: 0:150: '=' : cannot convert from ' const 4-component vector of float' to ' temp 3X4 matrix of float' -ERROR: 0:151: '=' : cannot convert from ' const 2X2 matrix of float' to ' temp 3X4 matrix of float' -ERROR: 0:152: '=' : cannot convert from ' const 2X3 matrix of float' to ' temp 3X4 matrix of float' -ERROR: 0:153: '=' : cannot convert from ' const 2X4 matrix of float' to ' temp 3X4 matrix of float' -ERROR: 0:154: '=' : cannot convert from ' const 3X2 matrix of float' to ' temp 3X4 matrix of float' -ERROR: 0:155: '=' : cannot convert from ' const 3X3 matrix of float' to ' temp 3X4 matrix of float' -ERROR: 0:156: '=' : cannot convert from ' const 4X2 matrix of float' to ' temp 3X4 matrix of float' -ERROR: 0:157: '=' : cannot convert from ' const 4X3 matrix of float' to ' temp 3X4 matrix of float' -ERROR: 0:158: '=' : cannot convert from ' const 2-component vector of float' to ' temp 4X2 matrix of float' -ERROR: 0:159: '=' : cannot convert from ' const 3-component vector of float' to ' temp 4X2 matrix of float' -ERROR: 0:160: '=' : cannot convert from ' const 4-component vector of float' to ' temp 4X2 matrix of float' -ERROR: 0:161: '=' : cannot convert from ' const 2X2 matrix of float' to ' temp 4X2 matrix of float' -ERROR: 0:162: '=' : cannot convert from ' const 2X3 matrix of float' to ' temp 4X2 matrix of float' -ERROR: 0:163: '=' : cannot convert from ' const 2X4 matrix of float' to ' temp 4X2 matrix of float' -ERROR: 0:164: '=' : cannot convert from ' const 3X2 matrix of float' to ' temp 4X2 matrix of float' -ERROR: 0:165: '=' : cannot convert from ' const 3X3 matrix of float' to ' temp 4X2 matrix of float' -ERROR: 0:166: '=' : cannot convert from ' const 3X4 matrix of float' to ' temp 4X2 matrix of float' -ERROR: 0:167: '=' : cannot convert from ' const 2-component vector of float' to ' temp 4X3 matrix of float' -ERROR: 0:168: '=' : cannot convert from ' const 3-component vector of float' to ' temp 4X3 matrix of float' -ERROR: 0:169: '=' : cannot convert from ' const 4-component vector of float' to ' temp 4X3 matrix of float' -ERROR: 0:170: '=' : cannot convert from ' const 2X2 matrix of float' to ' temp 4X3 matrix of float' -ERROR: 0:171: '=' : cannot convert from ' const 2X3 matrix of float' to ' temp 4X3 matrix of float' -ERROR: 0:172: '=' : cannot convert from ' const 2X4 matrix of float' to ' temp 4X3 matrix of float' -ERROR: 0:173: '=' : cannot convert from ' const 3X2 matrix of float' to ' temp 4X3 matrix of float' -ERROR: 0:174: '=' : cannot convert from ' const 3X3 matrix of float' to ' temp 4X3 matrix of float' -ERROR: 0:175: '=' : cannot convert from ' const 3X4 matrix of float' to ' temp 4X3 matrix of float' -ERROR: 0:176: '=' : cannot convert from ' const 4X2 matrix of float' to ' temp 4X3 matrix of float' -ERROR: 0:177: '=' : cannot convert from ' const 2-component vector of float' to ' temp 4X4 matrix of float' -ERROR: 0:178: '=' : cannot convert from ' const 3-component vector of float' to ' temp 4X4 matrix of float' -ERROR: 0:179: '=' : cannot convert from ' const 4-component vector of float' to ' temp 4X4 matrix of float' -ERROR: 0:180: '=' : cannot convert from ' const 2X2 matrix of float' to ' temp 4X4 matrix of float' -ERROR: 0:181: '=' : cannot convert from ' const 2X3 matrix of float' to ' temp 4X4 matrix of float' -ERROR: 0:182: '=' : cannot convert from ' const 2X4 matrix of float' to ' temp 4X4 matrix of float' -ERROR: 0:183: '=' : cannot convert from ' const 3X2 matrix of float' to ' temp 4X4 matrix of float' -ERROR: 0:184: '=' : cannot convert from ' const 3X3 matrix of float' to ' temp 4X4 matrix of float' -ERROR: 0:185: '=' : cannot convert from ' const 3X4 matrix of float' to ' temp 4X4 matrix of float' -ERROR: 0:186: '=' : cannot convert from ' const 4X2 matrix of float' to ' temp 4X4 matrix of float' -ERROR: 0:187: '=' : cannot convert from ' const 4X3 matrix of float' to ' temp 4X4 matrix of float' -ERROR: 100 compilation errors. No code generated. - - -Shader version: 500 -gl_FragCoord origin is upper left -ERROR: node is still EOpNull! -0:18 Function Definition: @main( ( temp 4-component vector of float) -0:18 Function Parameters: -0:? Sequence -0:19 Sequence -0:19 move second child to first child ( temp float) -0:19 'var0' ( temp float) -0:19 Constant: -0:19 0.000000 -0:20 Sequence -0:20 move second child to first child ( temp 2-component vector of float) -0:20 'var13' ( temp 2-component vector of float) -0:20 Constant: -0:20 0.000000 -0:20 0.000000 -0:21 Sequence -0:21 move second child to first child ( temp 2-component vector of float) -0:21 'var14' ( temp 2-component vector of float) -0:21 Constant: -0:21 0.000000 -0:21 0.000000 -0:22 Sequence -0:22 move second child to first child ( temp 3-component vector of float) -0:22 'var26' ( temp 3-component vector of float) -0:22 Constant: -0:22 0.000000 -0:22 0.000000 -0:22 0.000000 -0:23 Sequence -0:23 move second child to first child ( temp 3-component vector of float) -0:23 'var28' ( temp 3-component vector of float) -0:23 Constant: -0:23 0.000000 -0:23 0.000000 -0:23 0.000000 -0:24 Sequence -0:24 move second child to first child ( temp 4-component vector of float) -0:24 'var39' ( temp 4-component vector of float) -0:24 Constant: -0:24 0.000000 -0:24 0.000000 -0:24 0.000000 -0:24 0.000000 -0:25 Sequence -0:25 move second child to first child ( temp 4-component vector of float) -0:25 'var42' ( temp 4-component vector of float) -0:25 Constant: -0:25 0.000000 -0:25 0.000000 -0:25 0.000000 -0:25 0.000000 -0:26 Sequence -0:26 move second child to first child ( temp 4-component vector of float) -0:26 'var43' ( 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:27 Sequence -0:27 move second child to first child ( temp 2X2 matrix of float) -0:27 'var52' ( temp 2X2 matrix of float) -0:27 Constant: -0:27 0.000000 -0:27 0.000000 -0:27 0.000000 -0:27 0.000000 -0:28 Sequence -0:28 move second child to first child ( temp 2X2 matrix of float) -0:28 'var55' ( temp 2X2 matrix of float) -0:28 Constant: -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 2X2 matrix of float) -0:29 'var56' ( temp 2X2 matrix of float) -0:29 Constant: -0:29 0.000000 -0:29 0.000000 -0:29 0.000000 -0:29 0.000000 -0:30 Sequence -0:30 move second child to first child ( temp 2X3 matrix of float) -0:30 'var65' ( temp 2X3 matrix of float) -0:30 Constant: -0:30 0.000000 -0:30 0.000000 -0:30 0.000000 -0:30 0.000000 -0:30 0.000000 -0:30 0.000000 -0:31 Sequence -0:31 move second child to first child ( temp 2X3 matrix of float) -0:31 'var70' ( temp 2X3 matrix of float) -0:31 Constant: -0:31 0.000000 -0:31 0.000000 -0:31 0.000000 -0:31 0.000000 -0:31 0.000000 -0:31 0.000000 -0:32 Sequence -0:32 move second child to first child ( temp 2X4 matrix of float) -0:32 'var78' ( temp 2X4 matrix of float) -0:32 Constant: -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:33 Sequence -0:33 move second child to first child ( temp 2X4 matrix of float) -0:33 'var84' ( temp 2X4 matrix of float) -0:33 Constant: -0:33 0.000000 -0:33 0.000000 -0:33 0.000000 -0:33 0.000000 -0:33 0.000000 -0:33 0.000000 -0:33 0.000000 -0:33 0.000000 -0:34 Sequence -0:34 move second child to first child ( temp 3X2 matrix of float) -0:34 'var91' ( temp 3X2 matrix of float) -0:34 Constant: -0:34 0.000000 -0:34 0.000000 -0:34 0.000000 -0:34 0.000000 -0:34 0.000000 -0:34 0.000000 -0:35 Sequence -0:35 move second child to first child ( temp 3X2 matrix of float) -0:35 'var98' ( temp 3X2 matrix of float) -0:35 Constant: -0:35 0.000000 -0:35 0.000000 -0:35 0.000000 -0:35 0.000000 -0:35 0.000000 -0:35 0.000000 -0:36 Sequence -0:36 move second child to first child ( temp 3X3 matrix of float) -0:36 'var104' ( temp 3X3 matrix of float) -0:36 Constant: -0:36 0.000000 -0:36 0.000000 -0:36 0.000000 -0:36 0.000000 -0:36 0.000000 -0:36 0.000000 -0:36 0.000000 -0:36 0.000000 -0:36 0.000000 -0:37 Sequence -0:37 move second child to first child ( temp 3X3 matrix of float) -0:37 'var112' ( temp 3X3 matrix of float) -0:37 Constant: -0:37 0.000000 -0:37 0.000000 -0:37 0.000000 -0:37 0.000000 -0:37 0.000000 -0:37 0.000000 -0:37 0.000000 -0:37 0.000000 -0:37 0.000000 -0:38 Sequence -0:38 move second child to first child ( temp 3X4 matrix of float) -0:38 'var117' ( temp 3X4 matrix of float) -0:38 Constant: -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:39 Sequence -0:39 move second child to first child ( temp 3X4 matrix of float) -0:39 'var126' ( temp 3X4 matrix of float) -0:39 Constant: -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:40 Sequence -0:40 move second child to first child ( temp 4X2 matrix of float) -0:40 'var130' ( temp 4X2 matrix of float) -0:40 Constant: -0:40 0.000000 -0:40 0.000000 -0:40 0.000000 -0:40 0.000000 -0:40 0.000000 -0:40 0.000000 -0:40 0.000000 -0:40 0.000000 -0:41 Sequence -0:41 move second child to first child ( temp 4X2 matrix of float) -0:41 'var140' ( temp 4X2 matrix of float) -0:41 Constant: -0:41 0.000000 -0:41 0.000000 -0:41 0.000000 -0:41 0.000000 -0:41 0.000000 -0:41 0.000000 -0:41 0.000000 -0:41 0.000000 -0:42 Sequence -0:42 move second child to first child ( temp 4X3 matrix of float) -0:42 'var143' ( temp 4X3 matrix of float) -0:42 Constant: -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:43 Sequence -0:43 move second child to first child ( temp 4X3 matrix of float) -0:43 'var154' ( temp 4X3 matrix of float) -0:43 Constant: -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:44 Sequence -0:44 move second child to first child ( temp 4X4 matrix of float) -0:44 'var156' ( temp 4X4 matrix of float) -0:44 Constant: -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:45 Sequence -0:45 move second child to first child ( temp 4X4 matrix of float) -0:45 'var168' ( temp 4X4 matrix of float) -0:45 Constant: -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:46 Sequence -0:46 move second child to first child ( temp float) -0:46 'var1' ( temp float) -0:46 Constant: -0:46 0.000000 -0:47 Sequence -0:47 move second child to first child ( temp float) -0:47 'var2' ( temp float) -0:47 Constant: -0:47 0.000000 -0:48 Sequence -0:48 move second child to first child ( temp float) -0:48 'var3' ( temp float) -0:48 Constant: -0:48 0.000000 -0:49 Sequence -0:49 move second child to first child ( temp float) -0:49 'var4' ( temp float) -0:49 Constant: -0:49 0.000000 -0:50 Sequence -0:50 move second child to first child ( temp float) -0:50 'var5' ( temp float) -0:50 Constant: -0:50 0.000000 -0:51 Sequence -0:51 move second child to first child ( temp float) -0:51 'var6' ( temp float) -0:51 Constant: -0:51 0.000000 -0:52 Sequence -0:52 move second child to first child ( temp float) -0:52 'var7' ( temp float) -0:52 Constant: -0:52 0.000000 -0:53 Sequence -0:53 move second child to first child ( temp float) -0:53 'var8' ( temp float) -0:53 Constant: -0:53 0.000000 -0:54 Sequence -0:54 move second child to first child ( temp float) -0:54 'var9' ( temp float) -0:54 Constant: -0:54 0.000000 -0:55 Sequence -0:55 move second child to first child ( temp float) -0:55 'var10' ( temp float) -0:55 Constant: -0:55 0.000000 -0:56 Sequence -0:56 move second child to first child ( temp float) -0:56 'var11' ( temp float) -0:56 Constant: -0:56 0.000000 -0:57 Sequence -0:57 move second child to first child ( temp float) -0:57 'var12' ( temp float) -0:57 Constant: -0:57 0.000000 -0:58 Sequence -0:58 move second child to first child ( temp 2-component vector of float) -0:58 'var15' ( temp 2-component vector of float) -0:58 Constant: -0:58 0.000000 -0:58 0.000000 -0:59 Sequence -0:59 move second child to first child ( temp 2-component vector of float) -0:59 'var16' ( temp 2-component vector of float) -0:59 Constant: -0:59 0.000000 -0:59 0.000000 -0:60 Sequence -0:60 move second child to first child ( temp 3-component vector of float) -0:60 'var29' ( temp 3-component vector of float) -0:60 Constant: -0:60 0.000000 -0:60 0.000000 -0:60 0.000000 -0:61 Sequence -0:61 move second child to first child ( temp 2X2 matrix of float) -0:61 'var57' ( temp 2X2 matrix of float) -0:61 Constant: -0:61 0.000000 -0:61 0.000000 -0:61 0.000000 -0:61 0.000000 -0:62 Sequence -0:62 move second child to first child ( temp 2X2 matrix of float) -0:62 'var58' ( temp 2X2 matrix of float) -0:62 Constant: -0:62 0.000000 -0:62 0.000000 -0:62 0.000000 -0:62 0.000000 -0:63 Sequence -0:63 move second child to first child ( temp 2X2 matrix of float) -0:63 'var59' ( temp 2X2 matrix of float) -0:63 Constant: -0:63 0.000000 -0:63 0.000000 -0:63 0.000000 -0:63 0.000000 -0:64 Sequence -0:64 move second child to first child ( temp 2X2 matrix of float) -0:64 'var60' ( temp 2X2 matrix of float) -0:64 Constant: -0:64 0.000000 -0:64 0.000000 -0:64 0.000000 -0:64 0.000000 -0:65 Sequence -0:65 move second child to first child ( temp 2X2 matrix of float) -0:65 'var61' ( temp 2X2 matrix of float) -0:65 Constant: -0:65 0.000000 -0:65 0.000000 -0:65 0.000000 -0:65 0.000000 -0:66 Sequence -0:66 move second child to first child ( temp 2X2 matrix of float) -0:66 'var62' ( temp 2X2 matrix of float) -0:66 Constant: -0:66 0.000000 -0:66 0.000000 -0:66 0.000000 -0:66 0.000000 -0:67 Sequence -0:67 move second child to first child ( temp 2X2 matrix of float) -0:67 'var63' ( temp 2X2 matrix of float) -0:67 Constant: -0:67 0.000000 -0:67 0.000000 -0:67 0.000000 -0:67 0.000000 -0:68 Sequence -0:68 move second child to first child ( temp 2X2 matrix of float) -0:68 'var64' ( temp 2X2 matrix of float) -0:68 Constant: -0:68 0.000000 -0:68 0.000000 -0:68 0.000000 -0:68 0.000000 -0:69 Sequence -0:69 move second child to first child ( temp 2X3 matrix of float) -0:69 'var71' ( temp 2X3 matrix of float) -0:69 Constant: -0:69 0.000000 -0:69 0.000000 -0:69 0.000000 -0:69 0.000000 -0:69 0.000000 -0:69 0.000000 -0:70 Sequence -0:70 move second child to first child ( temp 2X3 matrix of float) -0:70 'var73' ( temp 2X3 matrix of float) -0:70 Constant: -0:70 0.000000 -0:70 0.000000 -0:70 0.000000 -0:70 0.000000 -0:70 0.000000 -0:70 0.000000 -0:71 Sequence -0:71 move second child to first child ( temp 2X3 matrix of float) -0:71 'var74' ( temp 2X3 matrix of float) -0:71 Constant: -0:71 0.000000 -0:71 0.000000 -0:71 0.000000 -0:71 0.000000 -0:71 0.000000 -0:71 0.000000 -0:72 Sequence -0:72 move second child to first child ( temp 2X3 matrix of float) -0:72 'var76' ( temp 2X3 matrix of float) -0:72 Constant: -0:72 0.000000 -0:72 0.000000 -0:72 0.000000 -0:72 0.000000 -0:72 0.000000 -0:72 0.000000 -0:73 Sequence -0:73 move second child to first child ( temp 2X3 matrix of float) -0:73 'var77' ( temp 2X3 matrix of float) -0:73 Constant: -0:73 0.000000 -0:73 0.000000 -0:73 0.000000 -0:73 0.000000 -0:73 0.000000 -0:73 0.000000 -0:74 Sequence -0:74 move second child to first child ( temp 2X4 matrix of float) -0:74 'var87' ( temp 2X4 matrix of float) -0:74 Constant: -0:74 0.000000 -0:74 0.000000 -0:74 0.000000 -0:74 0.000000 -0:74 0.000000 -0:74 0.000000 -0:74 0.000000 -0:74 0.000000 -0:75 Sequence -0:75 move second child to first child ( temp 2X4 matrix of float) -0:75 'var90' ( temp 2X4 matrix of float) -0:75 Constant: -0:75 0.000000 -0:75 0.000000 -0:75 0.000000 -0:75 0.000000 -0:75 0.000000 -0:75 0.000000 -0:75 0.000000 -0:75 0.000000 -0:76 Sequence -0:76 move second child to first child ( temp 3X2 matrix of float) -0:76 'var99' ( temp 3X2 matrix of float) -0:76 Constant: -0:76 0.000000 -0:76 0.000000 -0:76 0.000000 -0:76 0.000000 -0:76 0.000000 -0:76 0.000000 -0:77 Sequence -0:77 move second child to first child ( temp 3X2 matrix of float) -0:77 'var100' ( temp 3X2 matrix of float) -0:77 Constant: -0:77 0.000000 -0:77 0.000000 -0:77 0.000000 -0:77 0.000000 -0:77 0.000000 -0:77 0.000000 -0:78 Sequence -0:78 move second child to first child ( temp 3X2 matrix of float) -0:78 'var101' ( temp 3X2 matrix of float) -0:78 Constant: -0:78 0.000000 -0:78 0.000000 -0:78 0.000000 -0:78 0.000000 -0:78 0.000000 -0:78 0.000000 -0:79 Sequence -0:79 move second child to first child ( temp 3X2 matrix of float) -0:79 'var102' ( temp 3X2 matrix of float) -0:79 Constant: -0:79 0.000000 -0:79 0.000000 -0:79 0.000000 -0:79 0.000000 -0:79 0.000000 -0:79 0.000000 -0:80 Sequence -0:80 move second child to first child ( temp 3X2 matrix of float) -0:80 'var103' ( temp 3X2 matrix of float) -0:80 Constant: -0:80 0.000000 -0:80 0.000000 -0:80 0.000000 -0:80 0.000000 -0:80 0.000000 -0:80 0.000000 -0:81 Sequence -0:81 move second child to first child ( temp 3X3 matrix of float) -0:81 'var113' ( temp 3X3 matrix of float) -0:81 Constant: -0:81 0.000000 -0:81 0.000000 -0:81 0.000000 -0:81 0.000000 -0:81 0.000000 -0:81 0.000000 -0:81 0.000000 -0:81 0.000000 -0:81 0.000000 -0:82 Sequence -0:82 move second child to first child ( temp 3X3 matrix of float) -0:82 'var115' ( temp 3X3 matrix of float) -0:82 Constant: -0:82 0.000000 -0:82 0.000000 -0:82 0.000000 -0:82 0.000000 -0:82 0.000000 -0:82 0.000000 -0:82 0.000000 -0:82 0.000000 -0:82 0.000000 -0:83 Sequence -0:83 move second child to first child ( temp 3X3 matrix of float) -0:83 'var116' ( temp 3X3 matrix of float) -0:83 Constant: -0:83 0.000000 -0:83 0.000000 -0:83 0.000000 -0:83 0.000000 -0:83 0.000000 -0:83 0.000000 -0:83 0.000000 -0:83 0.000000 -0:83 0.000000 -0:84 Sequence -0:84 move second child to first child ( temp 3X4 matrix of float) -0:84 'var129' ( temp 3X4 matrix of float) -0:84 Constant: -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:85 Sequence -0:85 move second child to first child ( temp 4X2 matrix of float) -0:85 'var141' ( temp 4X2 matrix of float) -0:85 Constant: -0:85 0.000000 -0:85 0.000000 -0:85 0.000000 -0:85 0.000000 -0:85 0.000000 -0:85 0.000000 -0:85 0.000000 -0:85 0.000000 -0:86 Sequence -0:86 move second child to first child ( temp 4X2 matrix of float) -0:86 'var142' ( temp 4X2 matrix of float) -0:86 Constant: -0:86 0.000000 -0:86 0.000000 -0:86 0.000000 -0:86 0.000000 -0:86 0.000000 -0:86 0.000000 -0:86 0.000000 -0:86 0.000000 -0:87 Sequence -0:87 move second child to first child ( temp 4X3 matrix of float) -0:87 'var155' ( temp 4X3 matrix of float) -0:87 Constant: -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:188 Branch: Return with expression -0:188 Constant: -0:188 0.000000 -0:188 0.000000 -0:188 0.000000 -0:188 0.000000 -0:18 Function Definition: main( ( temp void) -0:18 Function Parameters: -0:? Sequence -0:18 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:18 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -ERROR: node is still EOpNull! -0:18 Function Definition: @main( ( temp 4-component vector of float) -0:18 Function Parameters: -0:? Sequence -0:19 Sequence -0:19 move second child to first child ( temp float) -0:19 'var0' ( temp float) -0:19 Constant: -0:19 0.000000 -0:20 Sequence -0:20 move second child to first child ( temp 2-component vector of float) -0:20 'var13' ( temp 2-component vector of float) -0:20 Constant: -0:20 0.000000 -0:20 0.000000 -0:21 Sequence -0:21 move second child to first child ( temp 2-component vector of float) -0:21 'var14' ( temp 2-component vector of float) -0:21 Constant: -0:21 0.000000 -0:21 0.000000 -0:22 Sequence -0:22 move second child to first child ( temp 3-component vector of float) -0:22 'var26' ( temp 3-component vector of float) -0:22 Constant: -0:22 0.000000 -0:22 0.000000 -0:22 0.000000 -0:23 Sequence -0:23 move second child to first child ( temp 3-component vector of float) -0:23 'var28' ( temp 3-component vector of float) -0:23 Constant: -0:23 0.000000 -0:23 0.000000 -0:23 0.000000 -0:24 Sequence -0:24 move second child to first child ( temp 4-component vector of float) -0:24 'var39' ( temp 4-component vector of float) -0:24 Constant: -0:24 0.000000 -0:24 0.000000 -0:24 0.000000 -0:24 0.000000 -0:25 Sequence -0:25 move second child to first child ( temp 4-component vector of float) -0:25 'var42' ( temp 4-component vector of float) -0:25 Constant: -0:25 0.000000 -0:25 0.000000 -0:25 0.000000 -0:25 0.000000 -0:26 Sequence -0:26 move second child to first child ( temp 4-component vector of float) -0:26 'var43' ( 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:27 Sequence -0:27 move second child to first child ( temp 2X2 matrix of float) -0:27 'var52' ( temp 2X2 matrix of float) -0:27 Constant: -0:27 0.000000 -0:27 0.000000 -0:27 0.000000 -0:27 0.000000 -0:28 Sequence -0:28 move second child to first child ( temp 2X2 matrix of float) -0:28 'var55' ( temp 2X2 matrix of float) -0:28 Constant: -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 2X2 matrix of float) -0:29 'var56' ( temp 2X2 matrix of float) -0:29 Constant: -0:29 0.000000 -0:29 0.000000 -0:29 0.000000 -0:29 0.000000 -0:30 Sequence -0:30 move second child to first child ( temp 2X3 matrix of float) -0:30 'var65' ( temp 2X3 matrix of float) -0:30 Constant: -0:30 0.000000 -0:30 0.000000 -0:30 0.000000 -0:30 0.000000 -0:30 0.000000 -0:30 0.000000 -0:31 Sequence -0:31 move second child to first child ( temp 2X3 matrix of float) -0:31 'var70' ( temp 2X3 matrix of float) -0:31 Constant: -0:31 0.000000 -0:31 0.000000 -0:31 0.000000 -0:31 0.000000 -0:31 0.000000 -0:31 0.000000 -0:32 Sequence -0:32 move second child to first child ( temp 2X4 matrix of float) -0:32 'var78' ( temp 2X4 matrix of float) -0:32 Constant: -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:33 Sequence -0:33 move second child to first child ( temp 2X4 matrix of float) -0:33 'var84' ( temp 2X4 matrix of float) -0:33 Constant: -0:33 0.000000 -0:33 0.000000 -0:33 0.000000 -0:33 0.000000 -0:33 0.000000 -0:33 0.000000 -0:33 0.000000 -0:33 0.000000 -0:34 Sequence -0:34 move second child to first child ( temp 3X2 matrix of float) -0:34 'var91' ( temp 3X2 matrix of float) -0:34 Constant: -0:34 0.000000 -0:34 0.000000 -0:34 0.000000 -0:34 0.000000 -0:34 0.000000 -0:34 0.000000 -0:35 Sequence -0:35 move second child to first child ( temp 3X2 matrix of float) -0:35 'var98' ( temp 3X2 matrix of float) -0:35 Constant: -0:35 0.000000 -0:35 0.000000 -0:35 0.000000 -0:35 0.000000 -0:35 0.000000 -0:35 0.000000 -0:36 Sequence -0:36 move second child to first child ( temp 3X3 matrix of float) -0:36 'var104' ( temp 3X3 matrix of float) -0:36 Constant: -0:36 0.000000 -0:36 0.000000 -0:36 0.000000 -0:36 0.000000 -0:36 0.000000 -0:36 0.000000 -0:36 0.000000 -0:36 0.000000 -0:36 0.000000 -0:37 Sequence -0:37 move second child to first child ( temp 3X3 matrix of float) -0:37 'var112' ( temp 3X3 matrix of float) -0:37 Constant: -0:37 0.000000 -0:37 0.000000 -0:37 0.000000 -0:37 0.000000 -0:37 0.000000 -0:37 0.000000 -0:37 0.000000 -0:37 0.000000 -0:37 0.000000 -0:38 Sequence -0:38 move second child to first child ( temp 3X4 matrix of float) -0:38 'var117' ( temp 3X4 matrix of float) -0:38 Constant: -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:39 Sequence -0:39 move second child to first child ( temp 3X4 matrix of float) -0:39 'var126' ( temp 3X4 matrix of float) -0:39 Constant: -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:40 Sequence -0:40 move second child to first child ( temp 4X2 matrix of float) -0:40 'var130' ( temp 4X2 matrix of float) -0:40 Constant: -0:40 0.000000 -0:40 0.000000 -0:40 0.000000 -0:40 0.000000 -0:40 0.000000 -0:40 0.000000 -0:40 0.000000 -0:40 0.000000 -0:41 Sequence -0:41 move second child to first child ( temp 4X2 matrix of float) -0:41 'var140' ( temp 4X2 matrix of float) -0:41 Constant: -0:41 0.000000 -0:41 0.000000 -0:41 0.000000 -0:41 0.000000 -0:41 0.000000 -0:41 0.000000 -0:41 0.000000 -0:41 0.000000 -0:42 Sequence -0:42 move second child to first child ( temp 4X3 matrix of float) -0:42 'var143' ( temp 4X3 matrix of float) -0:42 Constant: -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:43 Sequence -0:43 move second child to first child ( temp 4X3 matrix of float) -0:43 'var154' ( temp 4X3 matrix of float) -0:43 Constant: -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:44 Sequence -0:44 move second child to first child ( temp 4X4 matrix of float) -0:44 'var156' ( temp 4X4 matrix of float) -0:44 Constant: -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:45 Sequence -0:45 move second child to first child ( temp 4X4 matrix of float) -0:45 'var168' ( temp 4X4 matrix of float) -0:45 Constant: -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:46 Sequence -0:46 move second child to first child ( temp float) -0:46 'var1' ( temp float) -0:46 Constant: -0:46 0.000000 -0:47 Sequence -0:47 move second child to first child ( temp float) -0:47 'var2' ( temp float) -0:47 Constant: -0:47 0.000000 -0:48 Sequence -0:48 move second child to first child ( temp float) -0:48 'var3' ( temp float) -0:48 Constant: -0:48 0.000000 -0:49 Sequence -0:49 move second child to first child ( temp float) -0:49 'var4' ( temp float) -0:49 Constant: -0:49 0.000000 -0:50 Sequence -0:50 move second child to first child ( temp float) -0:50 'var5' ( temp float) -0:50 Constant: -0:50 0.000000 -0:51 Sequence -0:51 move second child to first child ( temp float) -0:51 'var6' ( temp float) -0:51 Constant: -0:51 0.000000 -0:52 Sequence -0:52 move second child to first child ( temp float) -0:52 'var7' ( temp float) -0:52 Constant: -0:52 0.000000 -0:53 Sequence -0:53 move second child to first child ( temp float) -0:53 'var8' ( temp float) -0:53 Constant: -0:53 0.000000 -0:54 Sequence -0:54 move second child to first child ( temp float) -0:54 'var9' ( temp float) -0:54 Constant: -0:54 0.000000 -0:55 Sequence -0:55 move second child to first child ( temp float) -0:55 'var10' ( temp float) -0:55 Constant: -0:55 0.000000 -0:56 Sequence -0:56 move second child to first child ( temp float) -0:56 'var11' ( temp float) -0:56 Constant: -0:56 0.000000 -0:57 Sequence -0:57 move second child to first child ( temp float) -0:57 'var12' ( temp float) -0:57 Constant: -0:57 0.000000 -0:58 Sequence -0:58 move second child to first child ( temp 2-component vector of float) -0:58 'var15' ( temp 2-component vector of float) -0:58 Constant: -0:58 0.000000 -0:58 0.000000 -0:59 Sequence -0:59 move second child to first child ( temp 2-component vector of float) -0:59 'var16' ( temp 2-component vector of float) -0:59 Constant: -0:59 0.000000 -0:59 0.000000 -0:60 Sequence -0:60 move second child to first child ( temp 3-component vector of float) -0:60 'var29' ( temp 3-component vector of float) -0:60 Constant: -0:60 0.000000 -0:60 0.000000 -0:60 0.000000 -0:61 Sequence -0:61 move second child to first child ( temp 2X2 matrix of float) -0:61 'var57' ( temp 2X2 matrix of float) -0:61 Constant: -0:61 0.000000 -0:61 0.000000 -0:61 0.000000 -0:61 0.000000 -0:62 Sequence -0:62 move second child to first child ( temp 2X2 matrix of float) -0:62 'var58' ( temp 2X2 matrix of float) -0:62 Constant: -0:62 0.000000 -0:62 0.000000 -0:62 0.000000 -0:62 0.000000 -0:63 Sequence -0:63 move second child to first child ( temp 2X2 matrix of float) -0:63 'var59' ( temp 2X2 matrix of float) -0:63 Constant: -0:63 0.000000 -0:63 0.000000 -0:63 0.000000 -0:63 0.000000 -0:64 Sequence -0:64 move second child to first child ( temp 2X2 matrix of float) -0:64 'var60' ( temp 2X2 matrix of float) -0:64 Constant: -0:64 0.000000 -0:64 0.000000 -0:64 0.000000 -0:64 0.000000 -0:65 Sequence -0:65 move second child to first child ( temp 2X2 matrix of float) -0:65 'var61' ( temp 2X2 matrix of float) -0:65 Constant: -0:65 0.000000 -0:65 0.000000 -0:65 0.000000 -0:65 0.000000 -0:66 Sequence -0:66 move second child to first child ( temp 2X2 matrix of float) -0:66 'var62' ( temp 2X2 matrix of float) -0:66 Constant: -0:66 0.000000 -0:66 0.000000 -0:66 0.000000 -0:66 0.000000 -0:67 Sequence -0:67 move second child to first child ( temp 2X2 matrix of float) -0:67 'var63' ( temp 2X2 matrix of float) -0:67 Constant: -0:67 0.000000 -0:67 0.000000 -0:67 0.000000 -0:67 0.000000 -0:68 Sequence -0:68 move second child to first child ( temp 2X2 matrix of float) -0:68 'var64' ( temp 2X2 matrix of float) -0:68 Constant: -0:68 0.000000 -0:68 0.000000 -0:68 0.000000 -0:68 0.000000 -0:69 Sequence -0:69 move second child to first child ( temp 2X3 matrix of float) -0:69 'var71' ( temp 2X3 matrix of float) -0:69 Constant: -0:69 0.000000 -0:69 0.000000 -0:69 0.000000 -0:69 0.000000 -0:69 0.000000 -0:69 0.000000 -0:70 Sequence -0:70 move second child to first child ( temp 2X3 matrix of float) -0:70 'var73' ( temp 2X3 matrix of float) -0:70 Constant: -0:70 0.000000 -0:70 0.000000 -0:70 0.000000 -0:70 0.000000 -0:70 0.000000 -0:70 0.000000 -0:71 Sequence -0:71 move second child to first child ( temp 2X3 matrix of float) -0:71 'var74' ( temp 2X3 matrix of float) -0:71 Constant: -0:71 0.000000 -0:71 0.000000 -0:71 0.000000 -0:71 0.000000 -0:71 0.000000 -0:71 0.000000 -0:72 Sequence -0:72 move second child to first child ( temp 2X3 matrix of float) -0:72 'var76' ( temp 2X3 matrix of float) -0:72 Constant: -0:72 0.000000 -0:72 0.000000 -0:72 0.000000 -0:72 0.000000 -0:72 0.000000 -0:72 0.000000 -0:73 Sequence -0:73 move second child to first child ( temp 2X3 matrix of float) -0:73 'var77' ( temp 2X3 matrix of float) -0:73 Constant: -0:73 0.000000 -0:73 0.000000 -0:73 0.000000 -0:73 0.000000 -0:73 0.000000 -0:73 0.000000 -0:74 Sequence -0:74 move second child to first child ( temp 2X4 matrix of float) -0:74 'var87' ( temp 2X4 matrix of float) -0:74 Constant: -0:74 0.000000 -0:74 0.000000 -0:74 0.000000 -0:74 0.000000 -0:74 0.000000 -0:74 0.000000 -0:74 0.000000 -0:74 0.000000 -0:75 Sequence -0:75 move second child to first child ( temp 2X4 matrix of float) -0:75 'var90' ( temp 2X4 matrix of float) -0:75 Constant: -0:75 0.000000 -0:75 0.000000 -0:75 0.000000 -0:75 0.000000 -0:75 0.000000 -0:75 0.000000 -0:75 0.000000 -0:75 0.000000 -0:76 Sequence -0:76 move second child to first child ( temp 3X2 matrix of float) -0:76 'var99' ( temp 3X2 matrix of float) -0:76 Constant: -0:76 0.000000 -0:76 0.000000 -0:76 0.000000 -0:76 0.000000 -0:76 0.000000 -0:76 0.000000 -0:77 Sequence -0:77 move second child to first child ( temp 3X2 matrix of float) -0:77 'var100' ( temp 3X2 matrix of float) -0:77 Constant: -0:77 0.000000 -0:77 0.000000 -0:77 0.000000 -0:77 0.000000 -0:77 0.000000 -0:77 0.000000 -0:78 Sequence -0:78 move second child to first child ( temp 3X2 matrix of float) -0:78 'var101' ( temp 3X2 matrix of float) -0:78 Constant: -0:78 0.000000 -0:78 0.000000 -0:78 0.000000 -0:78 0.000000 -0:78 0.000000 -0:78 0.000000 -0:79 Sequence -0:79 move second child to first child ( temp 3X2 matrix of float) -0:79 'var102' ( temp 3X2 matrix of float) -0:79 Constant: -0:79 0.000000 -0:79 0.000000 -0:79 0.000000 -0:79 0.000000 -0:79 0.000000 -0:79 0.000000 -0:80 Sequence -0:80 move second child to first child ( temp 3X2 matrix of float) -0:80 'var103' ( temp 3X2 matrix of float) -0:80 Constant: -0:80 0.000000 -0:80 0.000000 -0:80 0.000000 -0:80 0.000000 -0:80 0.000000 -0:80 0.000000 -0:81 Sequence -0:81 move second child to first child ( temp 3X3 matrix of float) -0:81 'var113' ( temp 3X3 matrix of float) -0:81 Constant: -0:81 0.000000 -0:81 0.000000 -0:81 0.000000 -0:81 0.000000 -0:81 0.000000 -0:81 0.000000 -0:81 0.000000 -0:81 0.000000 -0:81 0.000000 -0:82 Sequence -0:82 move second child to first child ( temp 3X3 matrix of float) -0:82 'var115' ( temp 3X3 matrix of float) -0:82 Constant: -0:82 0.000000 -0:82 0.000000 -0:82 0.000000 -0:82 0.000000 -0:82 0.000000 -0:82 0.000000 -0:82 0.000000 -0:82 0.000000 -0:82 0.000000 -0:83 Sequence -0:83 move second child to first child ( temp 3X3 matrix of float) -0:83 'var116' ( temp 3X3 matrix of float) -0:83 Constant: -0:83 0.000000 -0:83 0.000000 -0:83 0.000000 -0:83 0.000000 -0:83 0.000000 -0:83 0.000000 -0:83 0.000000 -0:83 0.000000 -0:83 0.000000 -0:84 Sequence -0:84 move second child to first child ( temp 3X4 matrix of float) -0:84 'var129' ( temp 3X4 matrix of float) -0:84 Constant: -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:85 Sequence -0:85 move second child to first child ( temp 4X2 matrix of float) -0:85 'var141' ( temp 4X2 matrix of float) -0:85 Constant: -0:85 0.000000 -0:85 0.000000 -0:85 0.000000 -0:85 0.000000 -0:85 0.000000 -0:85 0.000000 -0:85 0.000000 -0:85 0.000000 -0:86 Sequence -0:86 move second child to first child ( temp 4X2 matrix of float) -0:86 'var142' ( temp 4X2 matrix of float) -0:86 Constant: -0:86 0.000000 -0:86 0.000000 -0:86 0.000000 -0:86 0.000000 -0:86 0.000000 -0:86 0.000000 -0:86 0.000000 -0:86 0.000000 -0:87 Sequence -0:87 move second child to first child ( temp 4X3 matrix of float) -0:87 'var155' ( temp 4X3 matrix of float) -0:87 Constant: -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:188 Branch: Return with expression -0:188 Constant: -0:188 0.000000 -0:188 0.000000 -0:188 0.000000 -0:188 0.000000 -0:18 Function Definition: main( ( temp void) -0:18 Function Parameters: -0:? Sequence -0:18 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:18 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/hlsl.type.type.conversion.valid.frag.out b/deps/glslang/Test/baseResults/hlsl.type.type.conversion.valid.frag.out deleted file mode 100644 index 73200746..00000000 --- a/deps/glslang/Test/baseResults/hlsl.type.type.conversion.valid.frag.out +++ /dev/null @@ -1,1640 +0,0 @@ -hlsl.type.type.conversion.valid.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:18 Function Definition: @main( ( temp 4-component vector of float) -0:18 Function Parameters: -0:? Sequence -0:19 Sequence -0:19 move second child to first child ( temp float) -0:19 'var0' ( temp float) -0:19 Constant: -0:19 0.000000 -0:20 Sequence -0:20 move second child to first child ( temp 2-component vector of float) -0:20 'var13' ( temp 2-component vector of float) -0:20 Constant: -0:20 0.000000 -0:20 0.000000 -0:21 Sequence -0:21 move second child to first child ( temp 2-component vector of float) -0:21 'var14' ( temp 2-component vector of float) -0:21 Constant: -0:21 0.000000 -0:21 0.000000 -0:22 Sequence -0:22 move second child to first child ( temp 3-component vector of float) -0:22 'var26' ( temp 3-component vector of float) -0:22 Constant: -0:22 0.000000 -0:22 0.000000 -0:22 0.000000 -0:23 Sequence -0:23 move second child to first child ( temp 3-component vector of float) -0:23 'var28' ( temp 3-component vector of float) -0:23 Constant: -0:23 0.000000 -0:23 0.000000 -0:23 0.000000 -0:24 Sequence -0:24 move second child to first child ( temp 4-component vector of float) -0:24 'var39' ( temp 4-component vector of float) -0:24 Constant: -0:24 0.000000 -0:24 0.000000 -0:24 0.000000 -0:24 0.000000 -0:25 Sequence -0:25 move second child to first child ( temp 4-component vector of float) -0:25 'var42' ( temp 4-component vector of float) -0:25 Constant: -0:25 0.000000 -0:25 0.000000 -0:25 0.000000 -0:25 0.000000 -0:26 Sequence -0:26 move second child to first child ( temp 4-component vector of float) -0:26 'var43' ( 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:27 Sequence -0:27 move second child to first child ( temp 2X2 matrix of float) -0:27 'var52' ( temp 2X2 matrix of float) -0:27 Constant: -0:27 0.000000 -0:27 0.000000 -0:27 0.000000 -0:27 0.000000 -0:28 Sequence -0:28 move second child to first child ( temp 2X2 matrix of float) -0:28 'var55' ( temp 2X2 matrix of float) -0:28 Constant: -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 2X2 matrix of float) -0:29 'var56' ( temp 2X2 matrix of float) -0:29 Constant: -0:29 0.000000 -0:29 0.000000 -0:29 0.000000 -0:29 0.000000 -0:30 Sequence -0:30 move second child to first child ( temp 2X3 matrix of float) -0:30 'var65' ( temp 2X3 matrix of float) -0:30 Constant: -0:30 0.000000 -0:30 0.000000 -0:30 0.000000 -0:30 0.000000 -0:30 0.000000 -0:30 0.000000 -0:31 Sequence -0:31 move second child to first child ( temp 2X3 matrix of float) -0:31 'var70' ( temp 2X3 matrix of float) -0:31 Constant: -0:31 0.000000 -0:31 0.000000 -0:31 0.000000 -0:31 0.000000 -0:31 0.000000 -0:31 0.000000 -0:32 Sequence -0:32 move second child to first child ( temp 2X4 matrix of float) -0:32 'var78' ( temp 2X4 matrix of float) -0:32 Constant: -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:33 Sequence -0:33 move second child to first child ( temp 2X4 matrix of float) -0:33 'var84' ( temp 2X4 matrix of float) -0:33 Constant: -0:33 0.000000 -0:33 0.000000 -0:33 0.000000 -0:33 0.000000 -0:33 0.000000 -0:33 0.000000 -0:33 0.000000 -0:33 0.000000 -0:34 Sequence -0:34 move second child to first child ( temp 3X2 matrix of float) -0:34 'var91' ( temp 3X2 matrix of float) -0:34 Constant: -0:34 0.000000 -0:34 0.000000 -0:34 0.000000 -0:34 0.000000 -0:34 0.000000 -0:34 0.000000 -0:35 Sequence -0:35 move second child to first child ( temp 3X2 matrix of float) -0:35 'var98' ( temp 3X2 matrix of float) -0:35 Constant: -0:35 0.000000 -0:35 0.000000 -0:35 0.000000 -0:35 0.000000 -0:35 0.000000 -0:35 0.000000 -0:36 Sequence -0:36 move second child to first child ( temp 3X3 matrix of float) -0:36 'var104' ( temp 3X3 matrix of float) -0:36 Constant: -0:36 0.000000 -0:36 0.000000 -0:36 0.000000 -0:36 0.000000 -0:36 0.000000 -0:36 0.000000 -0:36 0.000000 -0:36 0.000000 -0:36 0.000000 -0:37 Sequence -0:37 move second child to first child ( temp 3X3 matrix of float) -0:37 'var112' ( temp 3X3 matrix of float) -0:37 Constant: -0:37 0.000000 -0:37 0.000000 -0:37 0.000000 -0:37 0.000000 -0:37 0.000000 -0:37 0.000000 -0:37 0.000000 -0:37 0.000000 -0:37 0.000000 -0:38 Sequence -0:38 move second child to first child ( temp 3X4 matrix of float) -0:38 'var117' ( temp 3X4 matrix of float) -0:38 Constant: -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:39 Sequence -0:39 move second child to first child ( temp 3X4 matrix of float) -0:39 'var126' ( temp 3X4 matrix of float) -0:39 Constant: -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:40 Sequence -0:40 move second child to first child ( temp 4X2 matrix of float) -0:40 'var130' ( temp 4X2 matrix of float) -0:40 Constant: -0:40 0.000000 -0:40 0.000000 -0:40 0.000000 -0:40 0.000000 -0:40 0.000000 -0:40 0.000000 -0:40 0.000000 -0:40 0.000000 -0:41 Sequence -0:41 move second child to first child ( temp 4X2 matrix of float) -0:41 'var140' ( temp 4X2 matrix of float) -0:41 Constant: -0:41 0.000000 -0:41 0.000000 -0:41 0.000000 -0:41 0.000000 -0:41 0.000000 -0:41 0.000000 -0:41 0.000000 -0:41 0.000000 -0:42 Sequence -0:42 move second child to first child ( temp 4X3 matrix of float) -0:42 'var143' ( temp 4X3 matrix of float) -0:42 Constant: -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:43 Sequence -0:43 move second child to first child ( temp 4X3 matrix of float) -0:43 'var154' ( temp 4X3 matrix of float) -0:43 Constant: -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:44 Sequence -0:44 move second child to first child ( temp 4X4 matrix of float) -0:44 'var156' ( temp 4X4 matrix of float) -0:44 Constant: -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:45 Sequence -0:45 move second child to first child ( temp 4X4 matrix of float) -0:45 'var168' ( temp 4X4 matrix of float) -0:45 Constant: -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:46 Sequence -0:46 move second child to first child ( temp float) -0:46 'var1' ( temp float) -0:46 Constant: -0:46 0.000000 -0:47 Sequence -0:47 move second child to first child ( temp float) -0:47 'var2' ( temp float) -0:47 Constant: -0:47 0.000000 -0:48 Sequence -0:48 move second child to first child ( temp float) -0:48 'var3' ( temp float) -0:48 Constant: -0:48 0.000000 -0:49 Sequence -0:49 move second child to first child ( temp float) -0:49 'var4' ( temp float) -0:49 Constant: -0:49 0.000000 -0:50 Sequence -0:50 move second child to first child ( temp float) -0:50 'var5' ( temp float) -0:50 Constant: -0:50 0.000000 -0:51 Sequence -0:51 move second child to first child ( temp float) -0:51 'var6' ( temp float) -0:51 Constant: -0:51 0.000000 -0:52 Sequence -0:52 move second child to first child ( temp float) -0:52 'var7' ( temp float) -0:52 Constant: -0:52 0.000000 -0:53 Sequence -0:53 move second child to first child ( temp float) -0:53 'var8' ( temp float) -0:53 Constant: -0:53 0.000000 -0:54 Sequence -0:54 move second child to first child ( temp float) -0:54 'var9' ( temp float) -0:54 Constant: -0:54 0.000000 -0:55 Sequence -0:55 move second child to first child ( temp float) -0:55 'var10' ( temp float) -0:55 Constant: -0:55 0.000000 -0:56 Sequence -0:56 move second child to first child ( temp float) -0:56 'var11' ( temp float) -0:56 Constant: -0:56 0.000000 -0:57 Sequence -0:57 move second child to first child ( temp float) -0:57 'var12' ( temp float) -0:57 Constant: -0:57 0.000000 -0:58 Sequence -0:58 move second child to first child ( temp 2-component vector of float) -0:58 'var15' ( temp 2-component vector of float) -0:58 Constant: -0:58 0.000000 -0:58 0.000000 -0:59 Sequence -0:59 move second child to first child ( temp 2-component vector of float) -0:59 'var16' ( temp 2-component vector of float) -0:59 Constant: -0:59 0.000000 -0:59 0.000000 -0:60 Sequence -0:60 move second child to first child ( temp 3-component vector of float) -0:60 'var29' ( temp 3-component vector of float) -0:60 Constant: -0:60 0.000000 -0:60 0.000000 -0:60 0.000000 -0:61 Sequence -0:61 move second child to first child ( temp 2X2 matrix of float) -0:61 'var57' ( temp 2X2 matrix of float) -0:61 Constant: -0:61 0.000000 -0:61 0.000000 -0:61 0.000000 -0:61 0.000000 -0:62 Sequence -0:62 move second child to first child ( temp 2X2 matrix of float) -0:62 'var58' ( temp 2X2 matrix of float) -0:62 Constant: -0:62 0.000000 -0:62 0.000000 -0:62 0.000000 -0:62 0.000000 -0:63 Sequence -0:63 move second child to first child ( temp 2X2 matrix of float) -0:63 'var59' ( temp 2X2 matrix of float) -0:63 Constant: -0:63 0.000000 -0:63 0.000000 -0:63 0.000000 -0:63 0.000000 -0:64 Sequence -0:64 move second child to first child ( temp 2X2 matrix of float) -0:64 'var60' ( temp 2X2 matrix of float) -0:64 Constant: -0:64 0.000000 -0:64 0.000000 -0:64 0.000000 -0:64 0.000000 -0:65 Sequence -0:65 move second child to first child ( temp 2X2 matrix of float) -0:65 'var61' ( temp 2X2 matrix of float) -0:65 Constant: -0:65 0.000000 -0:65 0.000000 -0:65 0.000000 -0:65 0.000000 -0:66 Sequence -0:66 move second child to first child ( temp 2X2 matrix of float) -0:66 'var62' ( temp 2X2 matrix of float) -0:66 Constant: -0:66 0.000000 -0:66 0.000000 -0:66 0.000000 -0:66 0.000000 -0:67 Sequence -0:67 move second child to first child ( temp 2X2 matrix of float) -0:67 'var63' ( temp 2X2 matrix of float) -0:67 Constant: -0:67 0.000000 -0:67 0.000000 -0:67 0.000000 -0:67 0.000000 -0:68 Sequence -0:68 move second child to first child ( temp 2X2 matrix of float) -0:68 'var64' ( temp 2X2 matrix of float) -0:68 Constant: -0:68 0.000000 -0:68 0.000000 -0:68 0.000000 -0:68 0.000000 -0:69 Sequence -0:69 move second child to first child ( temp 2X3 matrix of float) -0:69 'var71' ( temp 2X3 matrix of float) -0:69 Constant: -0:69 0.000000 -0:69 0.000000 -0:69 0.000000 -0:69 0.000000 -0:69 0.000000 -0:69 0.000000 -0:70 Sequence -0:70 move second child to first child ( temp 2X3 matrix of float) -0:70 'var73' ( temp 2X3 matrix of float) -0:70 Constant: -0:70 0.000000 -0:70 0.000000 -0:70 0.000000 -0:70 0.000000 -0:70 0.000000 -0:70 0.000000 -0:71 Sequence -0:71 move second child to first child ( temp 2X3 matrix of float) -0:71 'var74' ( temp 2X3 matrix of float) -0:71 Constant: -0:71 0.000000 -0:71 0.000000 -0:71 0.000000 -0:71 0.000000 -0:71 0.000000 -0:71 0.000000 -0:72 Sequence -0:72 move second child to first child ( temp 2X3 matrix of float) -0:72 'var76' ( temp 2X3 matrix of float) -0:72 Constant: -0:72 0.000000 -0:72 0.000000 -0:72 0.000000 -0:72 0.000000 -0:72 0.000000 -0:72 0.000000 -0:73 Sequence -0:73 move second child to first child ( temp 2X3 matrix of float) -0:73 'var77' ( temp 2X3 matrix of float) -0:73 Constant: -0:73 0.000000 -0:73 0.000000 -0:73 0.000000 -0:73 0.000000 -0:73 0.000000 -0:73 0.000000 -0:74 Sequence -0:74 move second child to first child ( temp 2X4 matrix of float) -0:74 'var87' ( temp 2X4 matrix of float) -0:74 Constant: -0:74 0.000000 -0:74 0.000000 -0:74 0.000000 -0:74 0.000000 -0:74 0.000000 -0:74 0.000000 -0:74 0.000000 -0:74 0.000000 -0:75 Sequence -0:75 move second child to first child ( temp 2X4 matrix of float) -0:75 'var90' ( temp 2X4 matrix of float) -0:75 Constant: -0:75 0.000000 -0:75 0.000000 -0:75 0.000000 -0:75 0.000000 -0:75 0.000000 -0:75 0.000000 -0:75 0.000000 -0:75 0.000000 -0:76 Sequence -0:76 move second child to first child ( temp 3X2 matrix of float) -0:76 'var99' ( temp 3X2 matrix of float) -0:76 Constant: -0:76 0.000000 -0:76 0.000000 -0:76 0.000000 -0:76 0.000000 -0:76 0.000000 -0:76 0.000000 -0:77 Sequence -0:77 move second child to first child ( temp 3X2 matrix of float) -0:77 'var100' ( temp 3X2 matrix of float) -0:77 Constant: -0:77 0.000000 -0:77 0.000000 -0:77 0.000000 -0:77 0.000000 -0:77 0.000000 -0:77 0.000000 -0:78 Sequence -0:78 move second child to first child ( temp 3X2 matrix of float) -0:78 'var101' ( temp 3X2 matrix of float) -0:78 Constant: -0:78 0.000000 -0:78 0.000000 -0:78 0.000000 -0:78 0.000000 -0:78 0.000000 -0:78 0.000000 -0:79 Sequence -0:79 move second child to first child ( temp 3X2 matrix of float) -0:79 'var102' ( temp 3X2 matrix of float) -0:79 Constant: -0:79 0.000000 -0:79 0.000000 -0:79 0.000000 -0:79 0.000000 -0:79 0.000000 -0:79 0.000000 -0:80 Sequence -0:80 move second child to first child ( temp 3X2 matrix of float) -0:80 'var103' ( temp 3X2 matrix of float) -0:80 Constant: -0:80 0.000000 -0:80 0.000000 -0:80 0.000000 -0:80 0.000000 -0:80 0.000000 -0:80 0.000000 -0:81 Sequence -0:81 move second child to first child ( temp 3X3 matrix of float) -0:81 'var113' ( temp 3X3 matrix of float) -0:81 Constant: -0:81 0.000000 -0:81 0.000000 -0:81 0.000000 -0:81 0.000000 -0:81 0.000000 -0:81 0.000000 -0:81 0.000000 -0:81 0.000000 -0:81 0.000000 -0:82 Sequence -0:82 move second child to first child ( temp 3X3 matrix of float) -0:82 'var115' ( temp 3X3 matrix of float) -0:82 Constant: -0:82 0.000000 -0:82 0.000000 -0:82 0.000000 -0:82 0.000000 -0:82 0.000000 -0:82 0.000000 -0:82 0.000000 -0:82 0.000000 -0:82 0.000000 -0:83 Sequence -0:83 move second child to first child ( temp 3X3 matrix of float) -0:83 'var116' ( temp 3X3 matrix of float) -0:83 Constant: -0:83 0.000000 -0:83 0.000000 -0:83 0.000000 -0:83 0.000000 -0:83 0.000000 -0:83 0.000000 -0:83 0.000000 -0:83 0.000000 -0:83 0.000000 -0:84 Sequence -0:84 move second child to first child ( temp 3X4 matrix of float) -0:84 'var129' ( temp 3X4 matrix of float) -0:84 Constant: -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:85 Sequence -0:85 move second child to first child ( temp 4X2 matrix of float) -0:85 'var141' ( temp 4X2 matrix of float) -0:85 Constant: -0:85 0.000000 -0:85 0.000000 -0:85 0.000000 -0:85 0.000000 -0:85 0.000000 -0:85 0.000000 -0:85 0.000000 -0:85 0.000000 -0:86 Sequence -0:86 move second child to first child ( temp 4X2 matrix of float) -0:86 'var142' ( temp 4X2 matrix of float) -0:86 Constant: -0:86 0.000000 -0:86 0.000000 -0:86 0.000000 -0:86 0.000000 -0:86 0.000000 -0:86 0.000000 -0:86 0.000000 -0:86 0.000000 -0:87 Sequence -0:87 move second child to first child ( temp 4X3 matrix of float) -0:87 'var155' ( temp 4X3 matrix of float) -0:87 Constant: -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:88 Branch: Return with expression -0:88 Constant: -0:88 0.000000 -0:88 0.000000 -0:88 0.000000 -0:88 0.000000 -0:18 Function Definition: main( ( temp void) -0:18 Function Parameters: -0:? Sequence -0:18 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:18 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:18 Function Definition: @main( ( temp 4-component vector of float) -0:18 Function Parameters: -0:? Sequence -0:19 Sequence -0:19 move second child to first child ( temp float) -0:19 'var0' ( temp float) -0:19 Constant: -0:19 0.000000 -0:20 Sequence -0:20 move second child to first child ( temp 2-component vector of float) -0:20 'var13' ( temp 2-component vector of float) -0:20 Constant: -0:20 0.000000 -0:20 0.000000 -0:21 Sequence -0:21 move second child to first child ( temp 2-component vector of float) -0:21 'var14' ( temp 2-component vector of float) -0:21 Constant: -0:21 0.000000 -0:21 0.000000 -0:22 Sequence -0:22 move second child to first child ( temp 3-component vector of float) -0:22 'var26' ( temp 3-component vector of float) -0:22 Constant: -0:22 0.000000 -0:22 0.000000 -0:22 0.000000 -0:23 Sequence -0:23 move second child to first child ( temp 3-component vector of float) -0:23 'var28' ( temp 3-component vector of float) -0:23 Constant: -0:23 0.000000 -0:23 0.000000 -0:23 0.000000 -0:24 Sequence -0:24 move second child to first child ( temp 4-component vector of float) -0:24 'var39' ( temp 4-component vector of float) -0:24 Constant: -0:24 0.000000 -0:24 0.000000 -0:24 0.000000 -0:24 0.000000 -0:25 Sequence -0:25 move second child to first child ( temp 4-component vector of float) -0:25 'var42' ( temp 4-component vector of float) -0:25 Constant: -0:25 0.000000 -0:25 0.000000 -0:25 0.000000 -0:25 0.000000 -0:26 Sequence -0:26 move second child to first child ( temp 4-component vector of float) -0:26 'var43' ( 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:27 Sequence -0:27 move second child to first child ( temp 2X2 matrix of float) -0:27 'var52' ( temp 2X2 matrix of float) -0:27 Constant: -0:27 0.000000 -0:27 0.000000 -0:27 0.000000 -0:27 0.000000 -0:28 Sequence -0:28 move second child to first child ( temp 2X2 matrix of float) -0:28 'var55' ( temp 2X2 matrix of float) -0:28 Constant: -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 2X2 matrix of float) -0:29 'var56' ( temp 2X2 matrix of float) -0:29 Constant: -0:29 0.000000 -0:29 0.000000 -0:29 0.000000 -0:29 0.000000 -0:30 Sequence -0:30 move second child to first child ( temp 2X3 matrix of float) -0:30 'var65' ( temp 2X3 matrix of float) -0:30 Constant: -0:30 0.000000 -0:30 0.000000 -0:30 0.000000 -0:30 0.000000 -0:30 0.000000 -0:30 0.000000 -0:31 Sequence -0:31 move second child to first child ( temp 2X3 matrix of float) -0:31 'var70' ( temp 2X3 matrix of float) -0:31 Constant: -0:31 0.000000 -0:31 0.000000 -0:31 0.000000 -0:31 0.000000 -0:31 0.000000 -0:31 0.000000 -0:32 Sequence -0:32 move second child to first child ( temp 2X4 matrix of float) -0:32 'var78' ( temp 2X4 matrix of float) -0:32 Constant: -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:33 Sequence -0:33 move second child to first child ( temp 2X4 matrix of float) -0:33 'var84' ( temp 2X4 matrix of float) -0:33 Constant: -0:33 0.000000 -0:33 0.000000 -0:33 0.000000 -0:33 0.000000 -0:33 0.000000 -0:33 0.000000 -0:33 0.000000 -0:33 0.000000 -0:34 Sequence -0:34 move second child to first child ( temp 3X2 matrix of float) -0:34 'var91' ( temp 3X2 matrix of float) -0:34 Constant: -0:34 0.000000 -0:34 0.000000 -0:34 0.000000 -0:34 0.000000 -0:34 0.000000 -0:34 0.000000 -0:35 Sequence -0:35 move second child to first child ( temp 3X2 matrix of float) -0:35 'var98' ( temp 3X2 matrix of float) -0:35 Constant: -0:35 0.000000 -0:35 0.000000 -0:35 0.000000 -0:35 0.000000 -0:35 0.000000 -0:35 0.000000 -0:36 Sequence -0:36 move second child to first child ( temp 3X3 matrix of float) -0:36 'var104' ( temp 3X3 matrix of float) -0:36 Constant: -0:36 0.000000 -0:36 0.000000 -0:36 0.000000 -0:36 0.000000 -0:36 0.000000 -0:36 0.000000 -0:36 0.000000 -0:36 0.000000 -0:36 0.000000 -0:37 Sequence -0:37 move second child to first child ( temp 3X3 matrix of float) -0:37 'var112' ( temp 3X3 matrix of float) -0:37 Constant: -0:37 0.000000 -0:37 0.000000 -0:37 0.000000 -0:37 0.000000 -0:37 0.000000 -0:37 0.000000 -0:37 0.000000 -0:37 0.000000 -0:37 0.000000 -0:38 Sequence -0:38 move second child to first child ( temp 3X4 matrix of float) -0:38 'var117' ( temp 3X4 matrix of float) -0:38 Constant: -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:39 Sequence -0:39 move second child to first child ( temp 3X4 matrix of float) -0:39 'var126' ( temp 3X4 matrix of float) -0:39 Constant: -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:40 Sequence -0:40 move second child to first child ( temp 4X2 matrix of float) -0:40 'var130' ( temp 4X2 matrix of float) -0:40 Constant: -0:40 0.000000 -0:40 0.000000 -0:40 0.000000 -0:40 0.000000 -0:40 0.000000 -0:40 0.000000 -0:40 0.000000 -0:40 0.000000 -0:41 Sequence -0:41 move second child to first child ( temp 4X2 matrix of float) -0:41 'var140' ( temp 4X2 matrix of float) -0:41 Constant: -0:41 0.000000 -0:41 0.000000 -0:41 0.000000 -0:41 0.000000 -0:41 0.000000 -0:41 0.000000 -0:41 0.000000 -0:41 0.000000 -0:42 Sequence -0:42 move second child to first child ( temp 4X3 matrix of float) -0:42 'var143' ( temp 4X3 matrix of float) -0:42 Constant: -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:42 0.000000 -0:43 Sequence -0:43 move second child to first child ( temp 4X3 matrix of float) -0:43 'var154' ( temp 4X3 matrix of float) -0:43 Constant: -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:43 0.000000 -0:44 Sequence -0:44 move second child to first child ( temp 4X4 matrix of float) -0:44 'var156' ( temp 4X4 matrix of float) -0:44 Constant: -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:45 Sequence -0:45 move second child to first child ( temp 4X4 matrix of float) -0:45 'var168' ( temp 4X4 matrix of float) -0:45 Constant: -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:45 0.000000 -0:46 Sequence -0:46 move second child to first child ( temp float) -0:46 'var1' ( temp float) -0:46 Constant: -0:46 0.000000 -0:47 Sequence -0:47 move second child to first child ( temp float) -0:47 'var2' ( temp float) -0:47 Constant: -0:47 0.000000 -0:48 Sequence -0:48 move second child to first child ( temp float) -0:48 'var3' ( temp float) -0:48 Constant: -0:48 0.000000 -0:49 Sequence -0:49 move second child to first child ( temp float) -0:49 'var4' ( temp float) -0:49 Constant: -0:49 0.000000 -0:50 Sequence -0:50 move second child to first child ( temp float) -0:50 'var5' ( temp float) -0:50 Constant: -0:50 0.000000 -0:51 Sequence -0:51 move second child to first child ( temp float) -0:51 'var6' ( temp float) -0:51 Constant: -0:51 0.000000 -0:52 Sequence -0:52 move second child to first child ( temp float) -0:52 'var7' ( temp float) -0:52 Constant: -0:52 0.000000 -0:53 Sequence -0:53 move second child to first child ( temp float) -0:53 'var8' ( temp float) -0:53 Constant: -0:53 0.000000 -0:54 Sequence -0:54 move second child to first child ( temp float) -0:54 'var9' ( temp float) -0:54 Constant: -0:54 0.000000 -0:55 Sequence -0:55 move second child to first child ( temp float) -0:55 'var10' ( temp float) -0:55 Constant: -0:55 0.000000 -0:56 Sequence -0:56 move second child to first child ( temp float) -0:56 'var11' ( temp float) -0:56 Constant: -0:56 0.000000 -0:57 Sequence -0:57 move second child to first child ( temp float) -0:57 'var12' ( temp float) -0:57 Constant: -0:57 0.000000 -0:58 Sequence -0:58 move second child to first child ( temp 2-component vector of float) -0:58 'var15' ( temp 2-component vector of float) -0:58 Constant: -0:58 0.000000 -0:58 0.000000 -0:59 Sequence -0:59 move second child to first child ( temp 2-component vector of float) -0:59 'var16' ( temp 2-component vector of float) -0:59 Constant: -0:59 0.000000 -0:59 0.000000 -0:60 Sequence -0:60 move second child to first child ( temp 3-component vector of float) -0:60 'var29' ( temp 3-component vector of float) -0:60 Constant: -0:60 0.000000 -0:60 0.000000 -0:60 0.000000 -0:61 Sequence -0:61 move second child to first child ( temp 2X2 matrix of float) -0:61 'var57' ( temp 2X2 matrix of float) -0:61 Constant: -0:61 0.000000 -0:61 0.000000 -0:61 0.000000 -0:61 0.000000 -0:62 Sequence -0:62 move second child to first child ( temp 2X2 matrix of float) -0:62 'var58' ( temp 2X2 matrix of float) -0:62 Constant: -0:62 0.000000 -0:62 0.000000 -0:62 0.000000 -0:62 0.000000 -0:63 Sequence -0:63 move second child to first child ( temp 2X2 matrix of float) -0:63 'var59' ( temp 2X2 matrix of float) -0:63 Constant: -0:63 0.000000 -0:63 0.000000 -0:63 0.000000 -0:63 0.000000 -0:64 Sequence -0:64 move second child to first child ( temp 2X2 matrix of float) -0:64 'var60' ( temp 2X2 matrix of float) -0:64 Constant: -0:64 0.000000 -0:64 0.000000 -0:64 0.000000 -0:64 0.000000 -0:65 Sequence -0:65 move second child to first child ( temp 2X2 matrix of float) -0:65 'var61' ( temp 2X2 matrix of float) -0:65 Constant: -0:65 0.000000 -0:65 0.000000 -0:65 0.000000 -0:65 0.000000 -0:66 Sequence -0:66 move second child to first child ( temp 2X2 matrix of float) -0:66 'var62' ( temp 2X2 matrix of float) -0:66 Constant: -0:66 0.000000 -0:66 0.000000 -0:66 0.000000 -0:66 0.000000 -0:67 Sequence -0:67 move second child to first child ( temp 2X2 matrix of float) -0:67 'var63' ( temp 2X2 matrix of float) -0:67 Constant: -0:67 0.000000 -0:67 0.000000 -0:67 0.000000 -0:67 0.000000 -0:68 Sequence -0:68 move second child to first child ( temp 2X2 matrix of float) -0:68 'var64' ( temp 2X2 matrix of float) -0:68 Constant: -0:68 0.000000 -0:68 0.000000 -0:68 0.000000 -0:68 0.000000 -0:69 Sequence -0:69 move second child to first child ( temp 2X3 matrix of float) -0:69 'var71' ( temp 2X3 matrix of float) -0:69 Constant: -0:69 0.000000 -0:69 0.000000 -0:69 0.000000 -0:69 0.000000 -0:69 0.000000 -0:69 0.000000 -0:70 Sequence -0:70 move second child to first child ( temp 2X3 matrix of float) -0:70 'var73' ( temp 2X3 matrix of float) -0:70 Constant: -0:70 0.000000 -0:70 0.000000 -0:70 0.000000 -0:70 0.000000 -0:70 0.000000 -0:70 0.000000 -0:71 Sequence -0:71 move second child to first child ( temp 2X3 matrix of float) -0:71 'var74' ( temp 2X3 matrix of float) -0:71 Constant: -0:71 0.000000 -0:71 0.000000 -0:71 0.000000 -0:71 0.000000 -0:71 0.000000 -0:71 0.000000 -0:72 Sequence -0:72 move second child to first child ( temp 2X3 matrix of float) -0:72 'var76' ( temp 2X3 matrix of float) -0:72 Constant: -0:72 0.000000 -0:72 0.000000 -0:72 0.000000 -0:72 0.000000 -0:72 0.000000 -0:72 0.000000 -0:73 Sequence -0:73 move second child to first child ( temp 2X3 matrix of float) -0:73 'var77' ( temp 2X3 matrix of float) -0:73 Constant: -0:73 0.000000 -0:73 0.000000 -0:73 0.000000 -0:73 0.000000 -0:73 0.000000 -0:73 0.000000 -0:74 Sequence -0:74 move second child to first child ( temp 2X4 matrix of float) -0:74 'var87' ( temp 2X4 matrix of float) -0:74 Constant: -0:74 0.000000 -0:74 0.000000 -0:74 0.000000 -0:74 0.000000 -0:74 0.000000 -0:74 0.000000 -0:74 0.000000 -0:74 0.000000 -0:75 Sequence -0:75 move second child to first child ( temp 2X4 matrix of float) -0:75 'var90' ( temp 2X4 matrix of float) -0:75 Constant: -0:75 0.000000 -0:75 0.000000 -0:75 0.000000 -0:75 0.000000 -0:75 0.000000 -0:75 0.000000 -0:75 0.000000 -0:75 0.000000 -0:76 Sequence -0:76 move second child to first child ( temp 3X2 matrix of float) -0:76 'var99' ( temp 3X2 matrix of float) -0:76 Constant: -0:76 0.000000 -0:76 0.000000 -0:76 0.000000 -0:76 0.000000 -0:76 0.000000 -0:76 0.000000 -0:77 Sequence -0:77 move second child to first child ( temp 3X2 matrix of float) -0:77 'var100' ( temp 3X2 matrix of float) -0:77 Constant: -0:77 0.000000 -0:77 0.000000 -0:77 0.000000 -0:77 0.000000 -0:77 0.000000 -0:77 0.000000 -0:78 Sequence -0:78 move second child to first child ( temp 3X2 matrix of float) -0:78 'var101' ( temp 3X2 matrix of float) -0:78 Constant: -0:78 0.000000 -0:78 0.000000 -0:78 0.000000 -0:78 0.000000 -0:78 0.000000 -0:78 0.000000 -0:79 Sequence -0:79 move second child to first child ( temp 3X2 matrix of float) -0:79 'var102' ( temp 3X2 matrix of float) -0:79 Constant: -0:79 0.000000 -0:79 0.000000 -0:79 0.000000 -0:79 0.000000 -0:79 0.000000 -0:79 0.000000 -0:80 Sequence -0:80 move second child to first child ( temp 3X2 matrix of float) -0:80 'var103' ( temp 3X2 matrix of float) -0:80 Constant: -0:80 0.000000 -0:80 0.000000 -0:80 0.000000 -0:80 0.000000 -0:80 0.000000 -0:80 0.000000 -0:81 Sequence -0:81 move second child to first child ( temp 3X3 matrix of float) -0:81 'var113' ( temp 3X3 matrix of float) -0:81 Constant: -0:81 0.000000 -0:81 0.000000 -0:81 0.000000 -0:81 0.000000 -0:81 0.000000 -0:81 0.000000 -0:81 0.000000 -0:81 0.000000 -0:81 0.000000 -0:82 Sequence -0:82 move second child to first child ( temp 3X3 matrix of float) -0:82 'var115' ( temp 3X3 matrix of float) -0:82 Constant: -0:82 0.000000 -0:82 0.000000 -0:82 0.000000 -0:82 0.000000 -0:82 0.000000 -0:82 0.000000 -0:82 0.000000 -0:82 0.000000 -0:82 0.000000 -0:83 Sequence -0:83 move second child to first child ( temp 3X3 matrix of float) -0:83 'var116' ( temp 3X3 matrix of float) -0:83 Constant: -0:83 0.000000 -0:83 0.000000 -0:83 0.000000 -0:83 0.000000 -0:83 0.000000 -0:83 0.000000 -0:83 0.000000 -0:83 0.000000 -0:83 0.000000 -0:84 Sequence -0:84 move second child to first child ( temp 3X4 matrix of float) -0:84 'var129' ( temp 3X4 matrix of float) -0:84 Constant: -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:84 0.000000 -0:85 Sequence -0:85 move second child to first child ( temp 4X2 matrix of float) -0:85 'var141' ( temp 4X2 matrix of float) -0:85 Constant: -0:85 0.000000 -0:85 0.000000 -0:85 0.000000 -0:85 0.000000 -0:85 0.000000 -0:85 0.000000 -0:85 0.000000 -0:85 0.000000 -0:86 Sequence -0:86 move second child to first child ( temp 4X2 matrix of float) -0:86 'var142' ( temp 4X2 matrix of float) -0:86 Constant: -0:86 0.000000 -0:86 0.000000 -0:86 0.000000 -0:86 0.000000 -0:86 0.000000 -0:86 0.000000 -0:86 0.000000 -0:86 0.000000 -0:87 Sequence -0:87 move second child to first child ( temp 4X3 matrix of float) -0:87 'var155' ( temp 4X3 matrix of float) -0:87 Constant: -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:87 0.000000 -0:88 Branch: Return with expression -0:88 Constant: -0:88 0.000000 -0:88 0.000000 -0:88 0.000000 -0:88 0.000000 -0:18 Function Definition: main( ( temp void) -0:18 Function Parameters: -0:? Sequence -0:18 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:18 Function Call: @main( ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 122 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 120 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 9 "@main(" - Name 12 "var0" - Name 16 "var13" - Name 18 "var14" - Name 21 "var26" - Name 23 "var28" - Name 25 "var39" - Name 27 "var42" - Name 28 "var43" - Name 31 "var52" - Name 33 "var55" - Name 34 "var56" - Name 37 "var65" - Name 39 "var70" - Name 42 "var78" - Name 44 "var84" - Name 47 "var91" - Name 49 "var98" - Name 52 "var104" - Name 54 "var112" - Name 57 "var117" - Name 59 "var126" - Name 62 "var130" - Name 64 "var140" - Name 67 "var143" - Name 69 "var154" - Name 72 "var156" - Name 74 "var168" - Name 75 "var1" - Name 76 "var2" - Name 77 "var3" - Name 78 "var4" - Name 79 "var5" - Name 80 "var6" - Name 81 "var7" - Name 82 "var8" - Name 83 "var9" - Name 84 "var10" - Name 85 "var11" - Name 86 "var12" - Name 87 "var15" - Name 88 "var16" - Name 89 "var29" - Name 90 "var57" - Name 91 "var58" - Name 92 "var59" - Name 93 "var60" - Name 94 "var61" - Name 95 "var62" - Name 96 "var63" - Name 97 "var64" - Name 98 "var71" - Name 99 "var73" - Name 100 "var74" - Name 101 "var76" - Name 102 "var77" - Name 103 "var87" - Name 104 "var90" - Name 105 "var99" - Name 106 "var100" - Name 107 "var101" - Name 108 "var102" - Name 109 "var103" - Name 110 "var113" - Name 111 "var115" - Name 112 "var116" - Name 113 "var129" - Name 114 "var141" - Name 115 "var142" - Name 116 "var155" - Name 120 "@entryPointOutput" - Decorate 120(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 11: TypePointer Function 6(float) - 13: 6(float) Constant 0 - 14: TypeVector 6(float) 2 - 15: TypePointer Function 14(fvec2) - 17: 14(fvec2) ConstantComposite 13 13 - 19: TypeVector 6(float) 3 - 20: TypePointer Function 19(fvec3) - 22: 19(fvec3) ConstantComposite 13 13 13 - 24: TypePointer Function 7(fvec4) - 26: 7(fvec4) ConstantComposite 13 13 13 13 - 29: TypeMatrix 14(fvec2) 2 - 30: TypePointer Function 29 - 32: 29 ConstantComposite 17 17 - 35: TypeMatrix 19(fvec3) 2 - 36: TypePointer Function 35 - 38: 35 ConstantComposite 22 22 - 40: TypeMatrix 7(fvec4) 2 - 41: TypePointer Function 40 - 43: 40 ConstantComposite 26 26 - 45: TypeMatrix 14(fvec2) 3 - 46: TypePointer Function 45 - 48: 45 ConstantComposite 17 17 17 - 50: TypeMatrix 19(fvec3) 3 - 51: TypePointer Function 50 - 53: 50 ConstantComposite 22 22 22 - 55: TypeMatrix 7(fvec4) 3 - 56: TypePointer Function 55 - 58: 55 ConstantComposite 26 26 26 - 60: TypeMatrix 14(fvec2) 4 - 61: TypePointer Function 60 - 63: 60 ConstantComposite 17 17 17 17 - 65: TypeMatrix 19(fvec3) 4 - 66: TypePointer Function 65 - 68: 65 ConstantComposite 22 22 22 22 - 70: TypeMatrix 7(fvec4) 4 - 71: TypePointer Function 70 - 73: 70 ConstantComposite 26 26 26 26 - 119: TypePointer Output 7(fvec4) -120(@entryPointOutput): 119(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 121: 7(fvec4) FunctionCall 9(@main() - Store 120(@entryPointOutput) 121 - Return - FunctionEnd - 9(@main(): 7(fvec4) Function None 8 - 10: Label - 12(var0): 11(ptr) Variable Function - 16(var13): 15(ptr) Variable Function - 18(var14): 15(ptr) Variable Function - 21(var26): 20(ptr) Variable Function - 23(var28): 20(ptr) Variable Function - 25(var39): 24(ptr) Variable Function - 27(var42): 24(ptr) Variable Function - 28(var43): 24(ptr) Variable Function - 31(var52): 30(ptr) Variable Function - 33(var55): 30(ptr) Variable Function - 34(var56): 30(ptr) Variable Function - 37(var65): 36(ptr) Variable Function - 39(var70): 36(ptr) Variable Function - 42(var78): 41(ptr) Variable Function - 44(var84): 41(ptr) Variable Function - 47(var91): 46(ptr) Variable Function - 49(var98): 46(ptr) Variable Function - 52(var104): 51(ptr) Variable Function - 54(var112): 51(ptr) Variable Function - 57(var117): 56(ptr) Variable Function - 59(var126): 56(ptr) Variable Function - 62(var130): 61(ptr) Variable Function - 64(var140): 61(ptr) Variable Function - 67(var143): 66(ptr) Variable Function - 69(var154): 66(ptr) Variable Function - 72(var156): 71(ptr) Variable Function - 74(var168): 71(ptr) Variable Function - 75(var1): 11(ptr) Variable Function - 76(var2): 11(ptr) Variable Function - 77(var3): 11(ptr) Variable Function - 78(var4): 11(ptr) Variable Function - 79(var5): 11(ptr) Variable Function - 80(var6): 11(ptr) Variable Function - 81(var7): 11(ptr) Variable Function - 82(var8): 11(ptr) Variable Function - 83(var9): 11(ptr) Variable Function - 84(var10): 11(ptr) Variable Function - 85(var11): 11(ptr) Variable Function - 86(var12): 11(ptr) Variable Function - 87(var15): 15(ptr) Variable Function - 88(var16): 15(ptr) Variable Function - 89(var29): 20(ptr) Variable Function - 90(var57): 30(ptr) Variable Function - 91(var58): 30(ptr) Variable Function - 92(var59): 30(ptr) Variable Function - 93(var60): 30(ptr) Variable Function - 94(var61): 30(ptr) Variable Function - 95(var62): 30(ptr) Variable Function - 96(var63): 30(ptr) Variable Function - 97(var64): 30(ptr) Variable Function - 98(var71): 36(ptr) Variable Function - 99(var73): 36(ptr) Variable Function - 100(var74): 36(ptr) Variable Function - 101(var76): 36(ptr) Variable Function - 102(var77): 36(ptr) Variable Function - 103(var87): 41(ptr) Variable Function - 104(var90): 41(ptr) Variable Function - 105(var99): 46(ptr) Variable Function - 106(var100): 46(ptr) Variable Function - 107(var101): 46(ptr) Variable Function - 108(var102): 46(ptr) Variable Function - 109(var103): 46(ptr) Variable Function - 110(var113): 51(ptr) Variable Function - 111(var115): 51(ptr) Variable Function - 112(var116): 51(ptr) Variable Function - 113(var129): 56(ptr) Variable Function - 114(var141): 61(ptr) Variable Function - 115(var142): 61(ptr) Variable Function - 116(var155): 66(ptr) Variable Function - Store 12(var0) 13 - Store 16(var13) 17 - Store 18(var14) 17 - Store 21(var26) 22 - Store 23(var28) 22 - Store 25(var39) 26 - Store 27(var42) 26 - Store 28(var43) 26 - Store 31(var52) 32 - Store 33(var55) 32 - Store 34(var56) 32 - Store 37(var65) 38 - Store 39(var70) 38 - Store 42(var78) 43 - Store 44(var84) 43 - Store 47(var91) 48 - Store 49(var98) 48 - Store 52(var104) 53 - Store 54(var112) 53 - Store 57(var117) 58 - Store 59(var126) 58 - Store 62(var130) 63 - Store 64(var140) 63 - Store 67(var143) 68 - Store 69(var154) 68 - Store 72(var156) 73 - Store 74(var168) 73 - Store 75(var1) 13 - Store 76(var2) 13 - Store 77(var3) 13 - Store 78(var4) 13 - Store 79(var5) 13 - Store 80(var6) 13 - Store 81(var7) 13 - Store 82(var8) 13 - Store 83(var9) 13 - Store 84(var10) 13 - Store 85(var11) 13 - Store 86(var12) 13 - Store 87(var15) 17 - Store 88(var16) 17 - Store 89(var29) 22 - Store 90(var57) 32 - Store 91(var58) 32 - Store 92(var59) 32 - Store 93(var60) 32 - Store 94(var61) 32 - Store 95(var62) 32 - Store 96(var63) 32 - Store 97(var64) 32 - Store 98(var71) 38 - Store 99(var73) 38 - Store 100(var74) 38 - Store 101(var76) 38 - Store 102(var77) 38 - Store 103(var87) 43 - Store 104(var90) 43 - Store 105(var99) 48 - Store 106(var100) 48 - Store 107(var101) 48 - Store 108(var102) 48 - Store 109(var103) 48 - Store 110(var113) 53 - Store 111(var115) 53 - Store 112(var116) 53 - Store 113(var129) 58 - Store 114(var141) 63 - Store 115(var142) 63 - Store 116(var155) 68 - ReturnValue 26 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.typeGraphCopy.vert.out b/deps/glslang/Test/baseResults/hlsl.typeGraphCopy.vert.out deleted file mode 100644 index cedf601c..00000000 --- a/deps/glslang/Test/baseResults/hlsl.typeGraphCopy.vert.out +++ /dev/null @@ -1,129 +0,0 @@ -hlsl.typeGraphCopy.vert -Shader version: 500 -0:? Sequence -0:22 Function Definition: @main( ( temp float) -0:22 Function Parameters: -0:? Sequence -0:23 Branch: Return with expression -0:23 b: direct index for structure ( temp float) -0:23 s2: direct index for structure ( temp structure{ temp int a, temp float b}) -0:23 t3: direct index for structure ( temp structure{ temp structure{ temp int a, temp float b} s1, temp structure{ temp int a, temp float b} s2}) -0:23 foo: direct index for structure ( uniform structure{ temp structure{ temp structure{ temp int a, temp float b} s1, temp structure{ temp int a, temp float b} s2} t1, temp structure{ temp int a, temp float b} t2, temp structure{ temp structure{ temp int a, temp float b} s1, temp structure{ temp int a, temp float b} s2} t3}) -0:23 'anon@0' (layout( row_major std140) uniform block{ uniform structure{ temp structure{ temp structure{ temp int a, temp float b} s1, temp structure{ temp int a, temp float b} s2} t1, temp structure{ temp int a, temp float b} t2, temp structure{ temp structure{ temp int a, temp float b} s1, temp structure{ temp int a, temp float b} s2} t3} foo}) -0:23 Constant: -0:23 0 (const uint) -0:23 Constant: -0:23 2 (const int) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 1 (const int) -0:22 Function Definition: main( ( temp void) -0:22 Function Parameters: -0:? Sequence -0:22 move second child to first child ( temp float) -0:? '@entryPointOutput' (layout( location=0) out float) -0:22 Function Call: @main( ( temp float) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{ uniform structure{ temp structure{ temp structure{ temp int a, temp float b} s1, temp structure{ temp int a, temp float b} s2} t1, temp structure{ temp int a, temp float b} t2, temp structure{ temp structure{ temp int a, temp float b} s1, temp structure{ temp int a, temp float b} s2} t3} foo}) -0:? '@entryPointOutput' (layout( location=0) out float) - - -Linked vertex stage: - - -Shader version: 500 -0:? Sequence -0:22 Function Definition: @main( ( temp float) -0:22 Function Parameters: -0:? Sequence -0:23 Branch: Return with expression -0:23 b: direct index for structure ( temp float) -0:23 s2: direct index for structure ( temp structure{ temp int a, temp float b}) -0:23 t3: direct index for structure ( temp structure{ temp structure{ temp int a, temp float b} s1, temp structure{ temp int a, temp float b} s2}) -0:23 foo: direct index for structure ( uniform structure{ temp structure{ temp structure{ temp int a, temp float b} s1, temp structure{ temp int a, temp float b} s2} t1, temp structure{ temp int a, temp float b} t2, temp structure{ temp structure{ temp int a, temp float b} s1, temp structure{ temp int a, temp float b} s2} t3}) -0:23 'anon@0' (layout( row_major std140) uniform block{ uniform structure{ temp structure{ temp structure{ temp int a, temp float b} s1, temp structure{ temp int a, temp float b} s2} t1, temp structure{ temp int a, temp float b} t2, temp structure{ temp structure{ temp int a, temp float b} s1, temp structure{ temp int a, temp float b} s2} t3} foo}) -0:23 Constant: -0:23 0 (const uint) -0:23 Constant: -0:23 2 (const int) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 1 (const int) -0:22 Function Definition: main( ( temp void) -0:22 Function Parameters: -0:? Sequence -0:22 move second child to first child ( temp float) -0:? '@entryPointOutput' (layout( location=0) out float) -0:22 Function Call: @main( ( temp float) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{ uniform structure{ temp structure{ temp structure{ temp int a, temp float b} s1, temp structure{ temp int a, temp float b} s2} t1, temp structure{ temp int a, temp float b} t2, temp structure{ temp structure{ temp int a, temp float b} s1, temp structure{ temp int a, temp float b} s2} t3} foo}) -0:? '@entryPointOutput' (layout( location=0) out float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 28 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 26 - Source HLSL 500 - Name 4 "main" - Name 8 "@main(" - Name 11 "N1" - MemberName 11(N1) 0 "a" - MemberName 11(N1) 1 "b" - Name 12 "N2" - MemberName 12(N2) 0 "s1" - MemberName 12(N2) 1 "s2" - Name 13 "N3" - MemberName 13(N3) 0 "t1" - MemberName 13(N3) 1 "t2" - MemberName 13(N3) 2 "t3" - Name 14 "$Global" - MemberName 14($Global) 0 "foo" - Name 16 "" - Name 26 "@entryPointOutput" - MemberDecorate 11(N1) 0 Offset 0 - MemberDecorate 11(N1) 1 Offset 4 - MemberDecorate 12(N2) 0 Offset 0 - MemberDecorate 12(N2) 1 Offset 16 - MemberDecorate 13(N3) 0 Offset 0 - MemberDecorate 13(N3) 1 Offset 32 - MemberDecorate 13(N3) 2 Offset 48 - MemberDecorate 14($Global) 0 Offset 0 - Decorate 14($Global) Block - Decorate 16 DescriptorSet 0 - Decorate 16 Binding 0 - Decorate 26(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeFunction 6(float) - 10: TypeInt 32 1 - 11(N1): TypeStruct 10(int) 6(float) - 12(N2): TypeStruct 11(N1) 11(N1) - 13(N3): TypeStruct 12(N2) 11(N1) 12(N2) - 14($Global): TypeStruct 13(N3) - 15: TypePointer Uniform 14($Global) - 16: 15(ptr) Variable Uniform - 17: 10(int) Constant 0 - 18: 10(int) Constant 2 - 19: 10(int) Constant 1 - 20: TypePointer Uniform 6(float) - 25: TypePointer Output 6(float) -26(@entryPointOutput): 25(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 27: 6(float) FunctionCall 8(@main() - Store 26(@entryPointOutput) 27 - Return - FunctionEnd - 8(@main(): 6(float) Function None 7 - 9: Label - 21: 20(ptr) AccessChain 16 17 18 19 19 - 22: 6(float) Load 21 - ReturnValue 22 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.typedef.frag.out b/deps/glslang/Test/baseResults/hlsl.typedef.frag.out deleted file mode 100644 index d925124a..00000000 --- a/deps/glslang/Test/baseResults/hlsl.typedef.frag.out +++ /dev/null @@ -1,134 +0,0 @@ -hlsl.typedef.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:4 Function Definition: ShaderFunction(vf4;i1; ( temp 4-component vector of float) -0:4 Function Parameters: -0:4 'input' ( in 4-component vector of float) -0:4 'ii' ( in int) -0:? Sequence -0:6 Sequence -0:6 move second child to first child ( temp 4-component vector of float) -0:6 'a1' ( temp 4-component vector of float) -0:6 Constant: -0:6 1.000000 -0:6 1.000000 -0:6 1.000000 -0:6 1.000000 -0:7 Sequence -0:7 move second child to first child ( temp int) -0:7 'i' ( temp int) -0:7 Constant: -0:7 2 (const int) -0:9 Sequence -0:9 move second child to first child ( temp int) -0:9 'j' ( temp int) -0:9 'ii' ( in int) -0:10 Branch: Return with expression -0:10 add ( temp 4-component vector of float) -0:10 component-wise multiply ( temp 4-component vector of float) -0:10 'input' ( in 4-component vector of float) -0:10 'a1' ( temp 4-component vector of float) -0:10 Construct vec4 ( uniform 4-component vector of float) -0:10 Convert int to float ( temp float) -0:10 add ( temp int) -0:10 'i' ( temp int) -0:10 'j' ( temp int) -0:? Linker Objects - - -Linked fragment stage: - -WARNING: Linking fragment stage: Entry point not found - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:4 Function Definition: ShaderFunction(vf4;i1; ( temp 4-component vector of float) -0:4 Function Parameters: -0:4 'input' ( in 4-component vector of float) -0:4 'ii' ( in int) -0:? Sequence -0:6 Sequence -0:6 move second child to first child ( temp 4-component vector of float) -0:6 'a1' ( temp 4-component vector of float) -0:6 Constant: -0:6 1.000000 -0:6 1.000000 -0:6 1.000000 -0:6 1.000000 -0:7 Sequence -0:7 move second child to first child ( temp int) -0:7 'i' ( temp int) -0:7 Constant: -0:7 2 (const int) -0:9 Sequence -0:9 move second child to first child ( temp int) -0:9 'j' ( temp int) -0:9 'ii' ( in int) -0:10 Branch: Return with expression -0:10 add ( temp 4-component vector of float) -0:10 component-wise multiply ( temp 4-component vector of float) -0:10 'input' ( in 4-component vector of float) -0:10 'a1' ( temp 4-component vector of float) -0:10 Construct vec4 ( uniform 4-component vector of float) -0:10 Convert int to float ( temp float) -0:10 add ( temp int) -0:10 'i' ( temp int) -0:10 'j' ( temp int) -0:? Linker Objects - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 34 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "PixelShaderFunction" - Name 14 "ShaderFunction(vf4;i1;" - Name 12 "input" - Name 13 "ii" - Name 16 "a1" - Name 19 "i" - Name 21 "j" - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 9: TypeInt 32 1 - 10: TypePointer Function 9(int) - 11: TypeFunction 7(fvec4) 8(ptr) 10(ptr) - 17: 6(float) Constant 1065353216 - 18: 7(fvec4) ConstantComposite 17 17 17 17 - 20: 9(int) Constant 2 -4(PixelShaderFunction): 2 Function None 3 - 5: Label - Return - FunctionEnd -14(ShaderFunction(vf4;i1;): 7(fvec4) Function None 11 - 12(input): 8(ptr) FunctionParameter - 13(ii): 10(ptr) FunctionParameter - 15: Label - 16(a1): 8(ptr) Variable Function - 19(i): 10(ptr) Variable Function - 21(j): 10(ptr) Variable Function - Store 16(a1) 18 - Store 19(i) 20 - 22: 9(int) Load 13(ii) - Store 21(j) 22 - 23: 7(fvec4) Load 12(input) - 24: 7(fvec4) Load 16(a1) - 25: 7(fvec4) FMul 23 24 - 26: 9(int) Load 19(i) - 27: 9(int) Load 21(j) - 28: 9(int) IAdd 26 27 - 29: 6(float) ConvertSToF 28 - 30: 7(fvec4) CompositeConstruct 29 29 29 29 - 31: 7(fvec4) FAdd 25 30 - ReturnValue 31 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.void.frag.out b/deps/glslang/Test/baseResults/hlsl.void.frag.out deleted file mode 100644 index f93cca0d..00000000 --- a/deps/glslang/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): 8000a -// 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/Test/baseResults/hlsl.w-recip.frag.out b/deps/glslang/Test/baseResults/hlsl.w-recip.frag.out deleted file mode 100644 index b72f361e..00000000 --- a/deps/glslang/Test/baseResults/hlsl.w-recip.frag.out +++ /dev/null @@ -1,268 +0,0 @@ -hlsl.w-recip.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:5 Function Definition: @main(vf4; ( temp 4-component vector of float) -0:5 Function Parameters: -0:5 'vpos' ( in 4-component vector of float) -0:? Sequence -0:6 Sequence -0:6 move second child to first child ( temp 4-component vector of float) -0:6 'vpos_t' ( temp 4-component vector of float) -0:6 Construct vec4 ( temp 4-component vector of float) -0:6 vector swizzle ( temp 3-component vector of float) -0:6 'vpos' ( in 4-component vector of float) -0:6 Sequence -0:6 Constant: -0:6 0 (const int) -0:6 Constant: -0:6 1 (const int) -0:6 Constant: -0:6 2 (const int) -0:6 divide ( temp float) -0:6 Constant: -0:6 1.000000 -0:6 direct index ( temp float) -0:6 'vpos' ( in 4-component vector of float) -0:6 Constant: -0:6 3 (const int) -0:7 Test condition and select ( temp void) -0:7 Condition -0:7 Compare Less Than ( temp bool) -0:7 direct index ( temp float) -0:7 'vpos_t' ( temp 4-component vector of float) -0:7 Constant: -0:7 0 (const int) -0:7 Constant: -0:7 400.000000 -0:7 true case -0:8 Branch: Return with expression -0:8 AmbientColor: direct index for structure ( uniform 4-component vector of float) -0:8 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float AmbientColor, uniform 4-component vector of float AmbientColor2}) -0:8 Constant: -0:8 0 (const uint) -0:7 false case -0:10 Branch: Return with expression -0:10 AmbientColor2: 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 4-component vector of float AmbientColor2}) -0:10 Constant: -0:10 1 (const uint) -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:? 'vpos' ( temp 4-component vector of float) -0:5 Construct vec4 ( temp 4-component vector of float) -0:5 vector swizzle ( temp 3-component vector of float) -0:? 'vpos' ( in 4-component vector of float FragCoord) -0:5 Sequence -0:5 Constant: -0:5 0 (const int) -0:5 Constant: -0:5 1 (const int) -0:5 Constant: -0:5 2 (const int) -0:5 divide ( temp float) -0:5 Constant: -0:5 1.000000 -0:5 direct index ( temp float) -0:? 'vpos' ( in 4-component vector of float FragCoord) -0:5 Constant: -0:5 3 (const int) -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(vf4; ( temp 4-component vector of float) -0:? 'vpos' ( temp 4-component vector of float) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float AmbientColor, uniform 4-component vector of float AmbientColor2}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'vpos' ( in 4-component vector of float FragCoord) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:5 Function Definition: @main(vf4; ( temp 4-component vector of float) -0:5 Function Parameters: -0:5 'vpos' ( in 4-component vector of float) -0:? Sequence -0:6 Sequence -0:6 move second child to first child ( temp 4-component vector of float) -0:6 'vpos_t' ( temp 4-component vector of float) -0:6 Construct vec4 ( temp 4-component vector of float) -0:6 vector swizzle ( temp 3-component vector of float) -0:6 'vpos' ( in 4-component vector of float) -0:6 Sequence -0:6 Constant: -0:6 0 (const int) -0:6 Constant: -0:6 1 (const int) -0:6 Constant: -0:6 2 (const int) -0:6 divide ( temp float) -0:6 Constant: -0:6 1.000000 -0:6 direct index ( temp float) -0:6 'vpos' ( in 4-component vector of float) -0:6 Constant: -0:6 3 (const int) -0:7 Test condition and select ( temp void) -0:7 Condition -0:7 Compare Less Than ( temp bool) -0:7 direct index ( temp float) -0:7 'vpos_t' ( temp 4-component vector of float) -0:7 Constant: -0:7 0 (const int) -0:7 Constant: -0:7 400.000000 -0:7 true case -0:8 Branch: Return with expression -0:8 AmbientColor: direct index for structure ( uniform 4-component vector of float) -0:8 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float AmbientColor, uniform 4-component vector of float AmbientColor2}) -0:8 Constant: -0:8 0 (const uint) -0:7 false case -0:10 Branch: Return with expression -0:10 AmbientColor2: 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 4-component vector of float AmbientColor2}) -0:10 Constant: -0:10 1 (const uint) -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:? 'vpos' ( temp 4-component vector of float) -0:5 Construct vec4 ( temp 4-component vector of float) -0:5 vector swizzle ( temp 3-component vector of float) -0:? 'vpos' ( in 4-component vector of float FragCoord) -0:5 Sequence -0:5 Constant: -0:5 0 (const int) -0:5 Constant: -0:5 1 (const int) -0:5 Constant: -0:5 2 (const int) -0:5 divide ( temp float) -0:5 Constant: -0:5 1.000000 -0:5 direct index ( temp float) -0:? 'vpos' ( in 4-component vector of float FragCoord) -0:5 Constant: -0:5 3 (const int) -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(vf4; ( temp 4-component vector of float) -0:? 'vpos' ( temp 4-component vector of float) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float AmbientColor, uniform 4-component vector of float AmbientColor2}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'vpos' ( in 4-component vector of float FragCoord) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 69 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 53 65 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 11 "@main(vf4;" - Name 10 "vpos" - Name 13 "vpos_t" - Name 36 "$Global" - MemberName 36($Global) 0 "AmbientColor" - MemberName 36($Global) 1 "AmbientColor2" - Name 38 "" - Name 51 "vpos" - Name 53 "vpos" - Name 65 "@entryPointOutput" - Name 66 "param" - MemberDecorate 36($Global) 0 Offset 0 - MemberDecorate 36($Global) 1 Offset 16 - Decorate 36($Global) Block - Decorate 38 DescriptorSet 0 - Decorate 38 Binding 0 - Decorate 53(vpos) BuiltIn FragCoord - Decorate 65(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 9: TypeFunction 7(fvec4) 8(ptr) - 14: TypeVector 6(float) 3 - 17: 6(float) Constant 1065353216 - 18: TypeInt 32 0 - 19: 18(int) Constant 3 - 20: TypePointer Function 6(float) - 28: 18(int) Constant 0 - 31: 6(float) Constant 1137180672 - 32: TypeBool - 36($Global): TypeStruct 7(fvec4) 7(fvec4) - 37: TypePointer Uniform 36($Global) - 38: 37(ptr) Variable Uniform - 39: TypeInt 32 1 - 40: 39(int) Constant 0 - 41: TypePointer Uniform 7(fvec4) - 46: 39(int) Constant 1 - 52: TypePointer Input 7(fvec4) - 53(vpos): 52(ptr) Variable Input - 56: TypePointer Input 6(float) - 64: TypePointer Output 7(fvec4) -65(@entryPointOutput): 64(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 51(vpos): 8(ptr) Variable Function - 66(param): 8(ptr) Variable Function - 54: 7(fvec4) Load 53(vpos) - 55: 14(fvec3) VectorShuffle 54 54 0 1 2 - 57: 56(ptr) AccessChain 53(vpos) 19 - 58: 6(float) Load 57 - 59: 6(float) FDiv 17 58 - 60: 6(float) CompositeExtract 55 0 - 61: 6(float) CompositeExtract 55 1 - 62: 6(float) CompositeExtract 55 2 - 63: 7(fvec4) CompositeConstruct 60 61 62 59 - Store 51(vpos) 63 - 67: 7(fvec4) Load 51(vpos) - Store 66(param) 67 - 68: 7(fvec4) FunctionCall 11(@main(vf4;) 66(param) - Store 65(@entryPointOutput) 68 - Return - FunctionEnd - 11(@main(vf4;): 7(fvec4) Function None 9 - 10(vpos): 8(ptr) FunctionParameter - 12: Label - 13(vpos_t): 8(ptr) Variable Function - 15: 7(fvec4) Load 10(vpos) - 16: 14(fvec3) VectorShuffle 15 15 0 1 2 - 21: 20(ptr) AccessChain 10(vpos) 19 - 22: 6(float) Load 21 - 23: 6(float) FDiv 17 22 - 24: 6(float) CompositeExtract 16 0 - 25: 6(float) CompositeExtract 16 1 - 26: 6(float) CompositeExtract 16 2 - 27: 7(fvec4) CompositeConstruct 24 25 26 23 - Store 13(vpos_t) 27 - 29: 20(ptr) AccessChain 13(vpos_t) 28 - 30: 6(float) Load 29 - 33: 32(bool) FOrdLessThan 30 31 - SelectionMerge 35 None - BranchConditional 33 34 45 - 34: Label - 42: 41(ptr) AccessChain 38 40 - 43: 7(fvec4) Load 42 - ReturnValue 43 - 45: Label - 47: 41(ptr) AccessChain 38 46 - 48: 7(fvec4) Load 47 - ReturnValue 48 - 35: Label - Unreachable - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.w-recip2.frag.out b/deps/glslang/Test/baseResults/hlsl.w-recip2.frag.out deleted file mode 100644 index 6fee15c4..00000000 --- a/deps/glslang/Test/baseResults/hlsl.w-recip2.frag.out +++ /dev/null @@ -1,305 +0,0 @@ -hlsl.w-recip2.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:13 Function Definition: @main(struct-VSOutput-vf4-vf3-vf3-vf21; ( temp 4-component vector of float) -0:13 Function Parameters: -0:13 'VSOut' ( in structure{ temp 4-component vector of float PositionPS, temp 3-component vector of float PosInLightViewSpace, temp 3-component vector of float NormalWS, temp 2-component vector of float TexCoord}) -0:? Sequence -0:14 Test condition and select ( temp void) -0:14 Condition -0:14 Compare Less Than ( temp bool) -0:14 direct index ( temp float) -0:14 PositionPS: direct index for structure ( temp 4-component vector of float) -0:14 'VSOut' ( in structure{ temp 4-component vector of float PositionPS, temp 3-component vector of float PosInLightViewSpace, temp 3-component vector of float NormalWS, temp 2-component vector of float TexCoord}) -0:14 Constant: -0:14 0 (const int) -0:14 Constant: -0:14 0 (const int) -0:14 Constant: -0:14 400.000000 -0:14 true case -0:15 Branch: Return with expression -0:15 AmbientColor: direct index for structure ( uniform 4-component vector of float) -0:15 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float AmbientColor, uniform 4-component vector of float AmbientColor2}) -0:15 Constant: -0:15 0 (const uint) -0:14 false case -0:17 Branch: Return with expression -0:17 AmbientColor2: 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 AmbientColor, uniform 4-component vector of float AmbientColor2}) -0:17 Constant: -0:17 1 (const uint) -0:13 Function Definition: main( ( temp void) -0:13 Function Parameters: -0:? Sequence -0:13 Sequence -0:13 Sequence -0:13 move second child to first child ( temp 4-component vector of float) -0:13 '@fragcoord' ( temp 4-component vector of float) -0:? 'VSOut.PositionPS' ( in 4-component vector of float FragCoord) -0:13 move second child to first child ( temp float) -0:13 direct index ( in float FragCoord) -0:13 '@fragcoord' ( temp 4-component vector of float) -0:13 Constant: -0:13 3 (const int) -0:13 divide ( temp float) -0:13 Constant: -0:13 1.000000 -0:13 direct index ( in float FragCoord) -0:13 '@fragcoord' ( temp 4-component vector of float) -0:13 Constant: -0:13 3 (const int) -0:13 move second child to first child ( temp 4-component vector of float) -0:13 PositionPS: direct index for structure ( temp 4-component vector of float) -0:? 'VSOut' ( temp structure{ temp 4-component vector of float PositionPS, temp 3-component vector of float PosInLightViewSpace, temp 3-component vector of float NormalWS, temp 2-component vector of float TexCoord}) -0:13 Constant: -0:13 0 (const int) -0:13 '@fragcoord' ( temp 4-component vector of float) -0:13 move second child to first child ( temp 3-component vector of float) -0:13 PosInLightViewSpace: direct index for structure ( temp 3-component vector of float) -0:? 'VSOut' ( temp structure{ temp 4-component vector of float PositionPS, temp 3-component vector of float PosInLightViewSpace, temp 3-component vector of float NormalWS, temp 2-component vector of float TexCoord}) -0:13 Constant: -0:13 1 (const int) -0:? 'VSOut.PosInLightViewSpace' (layout( location=0) in 3-component vector of float) -0:13 move second child to first child ( temp 3-component vector of float) -0:13 NormalWS: direct index for structure ( temp 3-component vector of float) -0:? 'VSOut' ( temp structure{ temp 4-component vector of float PositionPS, temp 3-component vector of float PosInLightViewSpace, temp 3-component vector of float NormalWS, temp 2-component vector of float TexCoord}) -0:13 Constant: -0:13 2 (const int) -0:? 'VSOut.NormalWS' (layout( location=1) in 3-component vector of float) -0:13 move second child to first child ( temp 2-component vector of float) -0:13 TexCoord: direct index for structure ( temp 2-component vector of float) -0:? 'VSOut' ( temp structure{ temp 4-component vector of float PositionPS, temp 3-component vector of float PosInLightViewSpace, temp 3-component vector of float NormalWS, temp 2-component vector of float TexCoord}) -0:13 Constant: -0:13 3 (const int) -0:? 'VSOut.TexCoord' (layout( location=2) in 2-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: @main(struct-VSOutput-vf4-vf3-vf3-vf21; ( temp 4-component vector of float) -0:? 'VSOut' ( temp structure{ temp 4-component vector of float PositionPS, temp 3-component vector of float PosInLightViewSpace, temp 3-component vector of float NormalWS, temp 2-component vector of float TexCoord}) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float AmbientColor, uniform 4-component vector of float AmbientColor2}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'VSOut.PositionPS' ( in 4-component vector of float FragCoord) -0:? 'VSOut.PosInLightViewSpace' (layout( location=0) in 3-component vector of float) -0:? 'VSOut.NormalWS' (layout( location=1) in 3-component vector of float) -0:? 'VSOut.TexCoord' (layout( location=2) in 2-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:13 Function Definition: @main(struct-VSOutput-vf4-vf3-vf3-vf21; ( temp 4-component vector of float) -0:13 Function Parameters: -0:13 'VSOut' ( in structure{ temp 4-component vector of float PositionPS, temp 3-component vector of float PosInLightViewSpace, temp 3-component vector of float NormalWS, temp 2-component vector of float TexCoord}) -0:? Sequence -0:14 Test condition and select ( temp void) -0:14 Condition -0:14 Compare Less Than ( temp bool) -0:14 direct index ( temp float) -0:14 PositionPS: direct index for structure ( temp 4-component vector of float) -0:14 'VSOut' ( in structure{ temp 4-component vector of float PositionPS, temp 3-component vector of float PosInLightViewSpace, temp 3-component vector of float NormalWS, temp 2-component vector of float TexCoord}) -0:14 Constant: -0:14 0 (const int) -0:14 Constant: -0:14 0 (const int) -0:14 Constant: -0:14 400.000000 -0:14 true case -0:15 Branch: Return with expression -0:15 AmbientColor: direct index for structure ( uniform 4-component vector of float) -0:15 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float AmbientColor, uniform 4-component vector of float AmbientColor2}) -0:15 Constant: -0:15 0 (const uint) -0:14 false case -0:17 Branch: Return with expression -0:17 AmbientColor2: 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 AmbientColor, uniform 4-component vector of float AmbientColor2}) -0:17 Constant: -0:17 1 (const uint) -0:13 Function Definition: main( ( temp void) -0:13 Function Parameters: -0:? Sequence -0:13 Sequence -0:13 Sequence -0:13 move second child to first child ( temp 4-component vector of float) -0:13 '@fragcoord' ( temp 4-component vector of float) -0:? 'VSOut.PositionPS' ( in 4-component vector of float FragCoord) -0:13 move second child to first child ( temp float) -0:13 direct index ( in float FragCoord) -0:13 '@fragcoord' ( temp 4-component vector of float) -0:13 Constant: -0:13 3 (const int) -0:13 divide ( temp float) -0:13 Constant: -0:13 1.000000 -0:13 direct index ( in float FragCoord) -0:13 '@fragcoord' ( temp 4-component vector of float) -0:13 Constant: -0:13 3 (const int) -0:13 move second child to first child ( temp 4-component vector of float) -0:13 PositionPS: direct index for structure ( temp 4-component vector of float) -0:? 'VSOut' ( temp structure{ temp 4-component vector of float PositionPS, temp 3-component vector of float PosInLightViewSpace, temp 3-component vector of float NormalWS, temp 2-component vector of float TexCoord}) -0:13 Constant: -0:13 0 (const int) -0:13 '@fragcoord' ( temp 4-component vector of float) -0:13 move second child to first child ( temp 3-component vector of float) -0:13 PosInLightViewSpace: direct index for structure ( temp 3-component vector of float) -0:? 'VSOut' ( temp structure{ temp 4-component vector of float PositionPS, temp 3-component vector of float PosInLightViewSpace, temp 3-component vector of float NormalWS, temp 2-component vector of float TexCoord}) -0:13 Constant: -0:13 1 (const int) -0:? 'VSOut.PosInLightViewSpace' (layout( location=0) in 3-component vector of float) -0:13 move second child to first child ( temp 3-component vector of float) -0:13 NormalWS: direct index for structure ( temp 3-component vector of float) -0:? 'VSOut' ( temp structure{ temp 4-component vector of float PositionPS, temp 3-component vector of float PosInLightViewSpace, temp 3-component vector of float NormalWS, temp 2-component vector of float TexCoord}) -0:13 Constant: -0:13 2 (const int) -0:? 'VSOut.NormalWS' (layout( location=1) in 3-component vector of float) -0:13 move second child to first child ( temp 2-component vector of float) -0:13 TexCoord: direct index for structure ( temp 2-component vector of float) -0:? 'VSOut' ( temp structure{ temp 4-component vector of float PositionPS, temp 3-component vector of float PosInLightViewSpace, temp 3-component vector of float NormalWS, temp 2-component vector of float TexCoord}) -0:13 Constant: -0:13 3 (const int) -0:? 'VSOut.TexCoord' (layout( location=2) in 2-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: @main(struct-VSOutput-vf4-vf3-vf3-vf21; ( temp 4-component vector of float) -0:? 'VSOut' ( temp structure{ temp 4-component vector of float PositionPS, temp 3-component vector of float PosInLightViewSpace, temp 3-component vector of float NormalWS, temp 2-component vector of float TexCoord}) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float AmbientColor, uniform 4-component vector of float AmbientColor2}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:? 'VSOut.PositionPS' ( in 4-component vector of float FragCoord) -0:? 'VSOut.PosInLightViewSpace' (layout( location=0) in 3-component vector of float) -0:? 'VSOut.NormalWS' (layout( location=1) in 3-component vector of float) -0:? 'VSOut.TexCoord' (layout( location=2) in 2-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 75 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 44 56 61 66 71 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 10 "VSOutput" - MemberName 10(VSOutput) 0 "PositionPS" - MemberName 10(VSOutput) 1 "PosInLightViewSpace" - MemberName 10(VSOutput) 2 "NormalWS" - MemberName 10(VSOutput) 3 "TexCoord" - Name 14 "@main(struct-VSOutput-vf4-vf3-vf3-vf21;" - Name 13 "VSOut" - Name 28 "$Global" - MemberName 28($Global) 0 "AmbientColor" - MemberName 28($Global) 1 "AmbientColor2" - Name 30 "" - Name 42 "@fragcoord" - Name 44 "VSOut.PositionPS" - Name 52 "VSOut" - Name 56 "VSOut.PosInLightViewSpace" - Name 61 "VSOut.NormalWS" - Name 66 "VSOut.TexCoord" - Name 71 "@entryPointOutput" - Name 72 "param" - MemberDecorate 28($Global) 0 Offset 0 - MemberDecorate 28($Global) 1 Offset 16 - Decorate 28($Global) Block - Decorate 30 DescriptorSet 0 - Decorate 30 Binding 0 - Decorate 44(VSOut.PositionPS) BuiltIn FragCoord - Decorate 56(VSOut.PosInLightViewSpace) Location 0 - Decorate 61(VSOut.NormalWS) Location 1 - Decorate 66(VSOut.TexCoord) Location 2 - Decorate 71(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeVector 6(float) 3 - 9: TypeVector 6(float) 2 - 10(VSOutput): TypeStruct 7(fvec4) 8(fvec3) 8(fvec3) 9(fvec2) - 11: TypePointer Function 10(VSOutput) - 12: TypeFunction 7(fvec4) 11(ptr) - 16: TypeInt 32 1 - 17: 16(int) Constant 0 - 18: TypeInt 32 0 - 19: 18(int) Constant 0 - 20: TypePointer Function 6(float) - 23: 6(float) Constant 1137180672 - 24: TypeBool - 28($Global): TypeStruct 7(fvec4) 7(fvec4) - 29: TypePointer Uniform 28($Global) - 30: 29(ptr) Variable Uniform - 31: TypePointer Uniform 7(fvec4) - 36: 16(int) Constant 1 - 41: TypePointer Function 7(fvec4) - 43: TypePointer Input 7(fvec4) -44(VSOut.PositionPS): 43(ptr) Variable Input - 46: 6(float) Constant 1065353216 - 47: 18(int) Constant 3 - 55: TypePointer Input 8(fvec3) -56(VSOut.PosInLightViewSpace): 55(ptr) Variable Input - 58: TypePointer Function 8(fvec3) - 60: 16(int) Constant 2 -61(VSOut.NormalWS): 55(ptr) Variable Input - 64: 16(int) Constant 3 - 65: TypePointer Input 9(fvec2) -66(VSOut.TexCoord): 65(ptr) Variable Input - 68: TypePointer Function 9(fvec2) - 70: TypePointer Output 7(fvec4) -71(@entryPointOutput): 70(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 42(@fragcoord): 41(ptr) Variable Function - 52(VSOut): 11(ptr) Variable Function - 72(param): 11(ptr) Variable Function - 45: 7(fvec4) Load 44(VSOut.PositionPS) - Store 42(@fragcoord) 45 - 48: 20(ptr) AccessChain 42(@fragcoord) 47 - 49: 6(float) Load 48 - 50: 6(float) FDiv 46 49 - 51: 20(ptr) AccessChain 42(@fragcoord) 47 - Store 51 50 - 53: 7(fvec4) Load 42(@fragcoord) - 54: 41(ptr) AccessChain 52(VSOut) 17 - Store 54 53 - 57: 8(fvec3) Load 56(VSOut.PosInLightViewSpace) - 59: 58(ptr) AccessChain 52(VSOut) 36 - Store 59 57 - 62: 8(fvec3) Load 61(VSOut.NormalWS) - 63: 58(ptr) AccessChain 52(VSOut) 60 - Store 63 62 - 67: 9(fvec2) Load 66(VSOut.TexCoord) - 69: 68(ptr) AccessChain 52(VSOut) 64 - Store 69 67 - 73:10(VSOutput) Load 52(VSOut) - Store 72(param) 73 - 74: 7(fvec4) FunctionCall 14(@main(struct-VSOutput-vf4-vf3-vf3-vf21;) 72(param) - Store 71(@entryPointOutput) 74 - Return - FunctionEnd -14(@main(struct-VSOutput-vf4-vf3-vf3-vf21;): 7(fvec4) Function None 12 - 13(VSOut): 11(ptr) FunctionParameter - 15: Label - 21: 20(ptr) AccessChain 13(VSOut) 17 19 - 22: 6(float) Load 21 - 25: 24(bool) FOrdLessThan 22 23 - SelectionMerge 27 None - BranchConditional 25 26 35 - 26: Label - 32: 31(ptr) AccessChain 30 17 - 33: 7(fvec4) Load 32 - ReturnValue 33 - 35: Label - 37: 31(ptr) AccessChain 30 36 - 38: 7(fvec4) Load 37 - ReturnValue 38 - 27: Label - Unreachable - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.wavebroadcast.comp.out b/deps/glslang/Test/baseResults/hlsl.wavebroadcast.comp.out deleted file mode 100644 index 01bc953d..00000000 --- a/deps/glslang/Test/baseResults/hlsl.wavebroadcast.comp.out +++ /dev/null @@ -1,2790 +0,0 @@ -hlsl.wavebroadcast.comp -Shader version: 500 -local_size = (32, 16, 1) -0:? Sequence -0:13 Function Definition: @CSMain(vu3; ( temp void) -0:13 Function Parameters: -0:13 'dti' ( in 3-component vector of uint) -0:? Sequence -0:14 move second child to first child ( temp 4-component vector of uint) -0:14 u: direct index for structure ( temp 4-component vector of uint) -0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:14 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:14 Constant: -0:14 0 (const uint) -0:14 direct index ( temp uint) -0:14 'dti' ( in 3-component vector of uint) -0:14 Constant: -0:14 0 (const int) -0:14 Constant: -0:14 0 (const int) -0:14 subgroupShuffle ( temp 4-component vector of uint) -0:14 u: direct index for structure ( temp 4-component vector of uint) -0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:14 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:14 Constant: -0:14 0 (const uint) -0:14 direct index ( temp uint) -0:14 'dti' ( in 3-component vector of uint) -0:14 Constant: -0:14 0 (const int) -0:14 Constant: -0:14 0 (const int) -0:14 Constant: -0:14 13 (const uint) -0:15 move second child to first child ( temp uint) -0:15 direct index ( temp uint) -0:15 u: direct index for structure ( temp 4-component vector of uint) -0:15 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:15 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:15 Constant: -0:15 0 (const uint) -0:15 direct index ( temp uint) -0:15 'dti' ( in 3-component vector of uint) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0 (const int) -0:15 subgroupShuffle ( temp uint) -0:15 direct index ( temp uint) -0:15 u: direct index for structure ( temp 4-component vector of uint) -0:15 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:15 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:15 Constant: -0:15 0 (const uint) -0:15 direct index ( temp uint) -0:15 'dti' ( in 3-component vector of uint) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 13 (const uint) -0:16 move second child to first child ( temp 2-component vector of uint) -0:16 vector swizzle ( temp 2-component vector of uint) -0:16 u: direct index for structure ( temp 4-component vector of uint) -0:16 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:16 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:16 Constant: -0:16 0 (const uint) -0:16 direct index ( temp uint) -0:16 'dti' ( in 3-component vector of uint) -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 0 (const int) -0:16 Sequence -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 1 (const int) -0:16 subgroupShuffle ( temp 2-component vector of uint) -0:16 vector swizzle ( temp 2-component vector of uint) -0:16 u: direct index for structure ( temp 4-component vector of uint) -0:16 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:16 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:16 Constant: -0:16 0 (const uint) -0:16 direct index ( temp uint) -0:16 'dti' ( in 3-component vector of uint) -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 0 (const int) -0:16 Sequence -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 1 (const int) -0:16 Constant: -0:16 13 (const uint) -0:17 move second child to first child ( temp 3-component vector of uint) -0:17 vector swizzle ( temp 3-component vector of uint) -0:17 u: direct index for structure ( temp 4-component vector of uint) -0:17 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:17 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:17 Constant: -0:17 0 (const uint) -0:17 direct index ( temp uint) -0:17 'dti' ( in 3-component vector of uint) -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 0 (const int) -0:17 Sequence -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 1 (const int) -0:17 Constant: -0:17 2 (const int) -0:17 subgroupShuffle ( temp 3-component vector of uint) -0:17 vector swizzle ( temp 3-component vector of uint) -0:17 u: direct index for structure ( temp 4-component vector of uint) -0:17 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:17 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:17 Constant: -0:17 0 (const uint) -0:17 direct index ( temp uint) -0:17 'dti' ( in 3-component vector of uint) -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 0 (const int) -0:17 Sequence -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 1 (const int) -0:17 Constant: -0:17 2 (const int) -0:17 Constant: -0:17 13 (const uint) -0:19 move second child to first child ( temp 4-component vector of int) -0:19 i: direct index for structure ( temp 4-component vector of int) -0:19 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:19 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:19 Constant: -0:19 0 (const uint) -0:19 direct index ( temp uint) -0:19 'dti' ( in 3-component vector of uint) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const int) -0:19 subgroupShuffle ( temp 4-component vector of int) -0:19 i: direct index for structure ( temp 4-component vector of int) -0:19 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:19 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:19 Constant: -0:19 0 (const uint) -0:19 direct index ( temp uint) -0:19 'dti' ( in 3-component vector of uint) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const int) -0:19 Constant: -0:19 13 (const uint) -0:20 move second child to first child ( temp int) -0:20 direct index ( temp int) -0:20 i: direct index for structure ( temp 4-component vector of int) -0:20 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:20 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:20 Constant: -0:20 0 (const uint) -0:20 direct index ( temp uint) -0:20 'dti' ( in 3-component vector of uint) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 subgroupShuffle ( temp int) -0:20 direct index ( temp int) -0:20 i: direct index for structure ( temp 4-component vector of int) -0:20 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:20 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:20 Constant: -0:20 0 (const uint) -0:20 direct index ( temp uint) -0:20 'dti' ( in 3-component vector of uint) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 13 (const uint) -0:21 move second child to first child ( temp 2-component vector of int) -0:21 vector swizzle ( temp 2-component vector of int) -0:21 i: direct index for structure ( temp 4-component vector of int) -0:21 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:21 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:21 Constant: -0:21 0 (const uint) -0:21 direct index ( temp uint) -0:21 'dti' ( in 3-component vector of uint) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 subgroupShuffle ( temp 2-component vector of int) -0:21 vector swizzle ( temp 2-component vector of int) -0:21 i: direct index for structure ( temp 4-component vector of int) -0:21 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:21 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:21 Constant: -0:21 0 (const uint) -0:21 direct index ( temp uint) -0:21 'dti' ( in 3-component vector of uint) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Constant: -0:21 13 (const uint) -0:22 move second child to first child ( temp 3-component vector of int) -0:22 vector swizzle ( temp 3-component vector of int) -0:22 i: direct index for structure ( temp 4-component vector of int) -0:22 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:22 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:22 Constant: -0:22 0 (const uint) -0:22 direct index ( temp uint) -0:22 'dti' ( in 3-component vector of uint) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 Sequence -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 Constant: -0:22 2 (const int) -0:22 subgroupShuffle ( temp 3-component vector of int) -0:22 vector swizzle ( temp 3-component vector of int) -0:22 i: direct index for structure ( temp 4-component vector of int) -0:22 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:22 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:22 Constant: -0:22 0 (const uint) -0:22 direct index ( temp uint) -0:22 'dti' ( in 3-component vector of uint) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 Sequence -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 Constant: -0:22 2 (const int) -0:22 Constant: -0:22 13 (const uint) -0:24 move second child to first child ( temp 4-component vector of float) -0:24 f: direct index for structure ( temp 4-component vector of float) -0:24 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:24 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:24 Constant: -0:24 0 (const uint) -0:24 direct index ( temp uint) -0:24 'dti' ( in 3-component vector of uint) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 2 (const int) -0:24 subgroupShuffle ( temp 4-component vector of float) -0:24 f: direct index for structure ( temp 4-component vector of float) -0:24 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:24 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:24 Constant: -0:24 0 (const uint) -0:24 direct index ( temp uint) -0:24 'dti' ( in 3-component vector of uint) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 2 (const int) -0:24 Constant: -0:24 13 (const uint) -0:25 move second child to first child ( temp float) -0:25 direct index ( temp float) -0:25 f: direct index for structure ( temp 4-component vector of float) -0:25 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:25 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:25 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:25 Constant: -0:25 0 (const uint) -0:25 direct index ( temp uint) -0:25 'dti' ( in 3-component vector of uint) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 Constant: -0:25 0 (const int) -0:25 subgroupShuffle ( temp float) -0:25 direct index ( temp float) -0:25 f: direct index for structure ( temp 4-component vector of float) -0:25 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:25 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:25 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:25 Constant: -0:25 0 (const uint) -0:25 direct index ( temp uint) -0:25 'dti' ( in 3-component vector of uint) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 13 (const uint) -0:26 move second child to first child ( temp 2-component vector of float) -0:26 vector swizzle ( temp 2-component vector of float) -0:26 f: direct index for structure ( temp 4-component vector of float) -0:26 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:26 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:26 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:26 Constant: -0:26 0 (const uint) -0:26 direct index ( temp uint) -0:26 'dti' ( in 3-component vector of uint) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 subgroupShuffle ( temp 2-component vector of float) -0:26 vector swizzle ( temp 2-component vector of float) -0:26 f: direct index for structure ( temp 4-component vector of float) -0:26 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:26 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:26 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:26 Constant: -0:26 0 (const uint) -0:26 direct index ( temp uint) -0:26 'dti' ( in 3-component vector of uint) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 13 (const uint) -0:27 move second child to first child ( temp 3-component vector of float) -0:27 vector swizzle ( temp 3-component vector of float) -0:27 f: direct index for structure ( temp 4-component vector of float) -0:27 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:27 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:27 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:27 Constant: -0:27 0 (const uint) -0:27 direct index ( temp uint) -0:27 'dti' ( in 3-component vector of uint) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 2 (const int) -0:27 Sequence -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Constant: -0:27 2 (const int) -0:27 subgroupShuffle ( temp 3-component vector of float) -0:27 vector swizzle ( temp 3-component vector of float) -0:27 f: direct index for structure ( temp 4-component vector of float) -0:27 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:27 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:27 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:27 Constant: -0:27 0 (const uint) -0:27 direct index ( temp uint) -0:27 'dti' ( in 3-component vector of uint) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 2 (const int) -0:27 Sequence -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Constant: -0:27 2 (const int) -0:27 Constant: -0:27 13 (const uint) -0:29 move second child to first child ( temp 4-component vector of double) -0:29 d: direct index for structure ( temp 4-component vector of double) -0:29 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:29 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:29 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:29 Constant: -0:29 0 (const uint) -0:29 direct index ( temp uint) -0:29 'dti' ( in 3-component vector of uint) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 3 (const int) -0:29 subgroupBroadcastFirst ( temp 4-component vector of double) -0:29 d: direct index for structure ( temp 4-component vector of double) -0:29 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:29 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:29 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:29 Constant: -0:29 0 (const uint) -0:29 direct index ( temp uint) -0:29 'dti' ( in 3-component vector of uint) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 3 (const int) -0:30 move second child to first child ( temp double) -0:30 direct index ( temp double) -0:30 d: direct index for structure ( temp 4-component vector of double) -0:30 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:30 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:30 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:30 Constant: -0:30 0 (const uint) -0:30 direct index ( temp uint) -0:30 'dti' ( in 3-component vector of uint) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 3 (const int) -0:30 Constant: -0:30 0 (const int) -0:30 subgroupBroadcastFirst ( temp double) -0:30 direct index ( temp double) -0:30 d: direct index for structure ( temp 4-component vector of double) -0:30 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:30 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:30 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:30 Constant: -0:30 0 (const uint) -0:30 direct index ( temp uint) -0:30 'dti' ( in 3-component vector of uint) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 3 (const int) -0:30 Constant: -0:30 0 (const int) -0:31 move second child to first child ( temp 2-component vector of double) -0:31 vector swizzle ( temp 2-component vector of double) -0:31 d: direct index for structure ( temp 4-component vector of double) -0:31 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:31 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:31 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:31 Constant: -0:31 0 (const uint) -0:31 direct index ( temp uint) -0:31 'dti' ( in 3-component vector of uint) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 3 (const int) -0:31 Sequence -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 subgroupBroadcastFirst ( temp 2-component vector of double) -0:31 vector swizzle ( temp 2-component vector of double) -0:31 d: direct index for structure ( temp 4-component vector of double) -0:31 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:31 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:31 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:31 Constant: -0:31 0 (const uint) -0:31 direct index ( temp uint) -0:31 'dti' ( in 3-component vector of uint) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 3 (const int) -0:31 Sequence -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:32 move second child to first child ( temp 3-component vector of double) -0:32 vector swizzle ( temp 3-component vector of double) -0:32 d: direct index for structure ( temp 4-component vector of double) -0:32 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:32 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:32 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:32 Constant: -0:32 0 (const uint) -0:32 direct index ( temp uint) -0:32 'dti' ( in 3-component vector of uint) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 3 (const int) -0:32 Sequence -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 1 (const int) -0:32 Constant: -0:32 2 (const int) -0:32 subgroupBroadcastFirst ( temp 3-component vector of double) -0:32 vector swizzle ( temp 3-component vector of double) -0:32 d: direct index for structure ( temp 4-component vector of double) -0:32 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:32 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:32 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:32 Constant: -0:32 0 (const uint) -0:32 direct index ( temp uint) -0:32 'dti' ( in 3-component vector of uint) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 3 (const int) -0:32 Sequence -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 1 (const int) -0:32 Constant: -0:32 2 (const int) -0:34 move second child to first child ( temp 4-component vector of uint) -0:34 u: direct index for structure ( temp 4-component vector of uint) -0:34 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:34 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:34 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:34 Constant: -0:34 0 (const uint) -0:34 direct index ( temp uint) -0:34 'dti' ( in 3-component vector of uint) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 subgroupBroadcastFirst ( temp 4-component vector of uint) -0:34 u: direct index for structure ( temp 4-component vector of uint) -0:34 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:34 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:34 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:34 Constant: -0:34 0 (const uint) -0:34 direct index ( temp uint) -0:34 'dti' ( in 3-component vector of uint) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 0 (const int) -0:35 move second child to first child ( temp uint) -0:35 direct index ( temp uint) -0:35 u: direct index for structure ( temp 4-component vector of uint) -0:35 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:35 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:35 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:35 Constant: -0:35 0 (const uint) -0:35 direct index ( temp uint) -0:35 'dti' ( in 3-component vector of uint) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 subgroupBroadcastFirst ( temp uint) -0:35 direct index ( temp uint) -0:35 u: direct index for structure ( temp 4-component vector of uint) -0:35 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:35 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:35 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:35 Constant: -0:35 0 (const uint) -0:35 direct index ( temp uint) -0:35 'dti' ( in 3-component vector of uint) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 0 (const int) -0:36 move second child to first child ( temp 2-component vector of uint) -0:36 vector swizzle ( temp 2-component vector of uint) -0:36 u: direct index for structure ( temp 4-component vector of uint) -0:36 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:36 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:36 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:36 Constant: -0:36 0 (const uint) -0:36 direct index ( temp uint) -0:36 'dti' ( in 3-component vector of uint) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 subgroupBroadcastFirst ( temp 2-component vector of uint) -0:36 vector swizzle ( temp 2-component vector of uint) -0:36 u: direct index for structure ( temp 4-component vector of uint) -0:36 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:36 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:36 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:36 Constant: -0:36 0 (const uint) -0:36 direct index ( temp uint) -0:36 'dti' ( in 3-component vector of uint) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:37 move second child to first child ( temp 3-component vector of uint) -0:37 vector swizzle ( temp 3-component vector of uint) -0:37 u: direct index for structure ( temp 4-component vector of uint) -0:37 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:37 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:37 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:37 Constant: -0:37 0 (const uint) -0:37 direct index ( temp uint) -0:37 'dti' ( in 3-component vector of uint) -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 0 (const int) -0:37 Sequence -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 1 (const int) -0:37 Constant: -0:37 2 (const int) -0:37 subgroupBroadcastFirst ( temp 3-component vector of uint) -0:37 vector swizzle ( temp 3-component vector of uint) -0:37 u: direct index for structure ( temp 4-component vector of uint) -0:37 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:37 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:37 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:37 Constant: -0:37 0 (const uint) -0:37 direct index ( temp uint) -0:37 'dti' ( in 3-component vector of uint) -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 0 (const int) -0:37 Sequence -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 1 (const int) -0:37 Constant: -0:37 2 (const int) -0:39 move second child to first child ( temp 4-component vector of int) -0:39 i: direct index for structure ( temp 4-component vector of int) -0:39 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:39 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:39 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:39 Constant: -0:39 0 (const uint) -0:39 direct index ( temp uint) -0:39 'dti' ( in 3-component vector of uint) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 subgroupBroadcastFirst ( temp 4-component vector of int) -0:39 i: direct index for structure ( temp 4-component vector of int) -0:39 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:39 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:39 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:39 Constant: -0:39 0 (const uint) -0:39 direct index ( temp uint) -0:39 'dti' ( in 3-component vector of uint) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:40 move second child to first child ( temp int) -0:40 direct index ( temp int) -0:40 i: direct index for structure ( temp 4-component vector of int) -0:40 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:40 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:40 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:40 Constant: -0:40 0 (const uint) -0:40 direct index ( temp uint) -0:40 'dti' ( in 3-component vector of uint) -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 subgroupBroadcastFirst ( temp int) -0:40 direct index ( temp int) -0:40 i: direct index for structure ( temp 4-component vector of int) -0:40 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:40 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:40 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:40 Constant: -0:40 0 (const uint) -0:40 direct index ( temp uint) -0:40 'dti' ( in 3-component vector of uint) -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 0 (const int) -0:41 move second child to first child ( temp 2-component vector of int) -0:41 vector swizzle ( temp 2-component vector of int) -0:41 i: direct index for structure ( temp 4-component vector of int) -0:41 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:41 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:41 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:41 Constant: -0:41 0 (const uint) -0:41 direct index ( temp uint) -0:41 'dti' ( in 3-component vector of uint) -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 subgroupBroadcastFirst ( temp 2-component vector of int) -0:41 vector swizzle ( temp 2-component vector of int) -0:41 i: direct index for structure ( temp 4-component vector of int) -0:41 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:41 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:41 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:41 Constant: -0:41 0 (const uint) -0:41 direct index ( temp uint) -0:41 'dti' ( in 3-component vector of uint) -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:42 move second child to first child ( temp 3-component vector of int) -0:42 vector swizzle ( temp 3-component vector of int) -0:42 i: direct index for structure ( temp 4-component vector of int) -0:42 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:42 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:42 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:42 Constant: -0:42 0 (const uint) -0:42 direct index ( temp uint) -0:42 'dti' ( in 3-component vector of uint) -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Sequence -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 2 (const int) -0:42 subgroupBroadcastFirst ( temp 3-component vector of int) -0:42 vector swizzle ( temp 3-component vector of int) -0:42 i: direct index for structure ( temp 4-component vector of int) -0:42 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:42 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:42 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:42 Constant: -0:42 0 (const uint) -0:42 direct index ( temp uint) -0:42 'dti' ( in 3-component vector of uint) -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Sequence -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 2 (const int) -0:44 move second child to first child ( temp 4-component vector of float) -0:44 f: direct index for structure ( temp 4-component vector of float) -0:44 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:44 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:44 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:44 Constant: -0:44 0 (const uint) -0:44 direct index ( temp uint) -0:44 'dti' ( in 3-component vector of uint) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 2 (const int) -0:44 subgroupBroadcastFirst ( temp 4-component vector of float) -0:44 f: direct index for structure ( temp 4-component vector of float) -0:44 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:44 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:44 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:44 Constant: -0:44 0 (const uint) -0:44 direct index ( temp uint) -0:44 'dti' ( in 3-component vector of uint) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 2 (const int) -0:45 move second child to first child ( temp float) -0:45 direct index ( temp float) -0:45 f: direct index for structure ( temp 4-component vector of float) -0:45 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:45 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:45 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:45 Constant: -0:45 0 (const uint) -0:45 direct index ( temp uint) -0:45 'dti' ( in 3-component vector of uint) -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 Constant: -0:45 0 (const int) -0:45 subgroupBroadcastFirst ( temp float) -0:45 direct index ( temp float) -0:45 f: direct index for structure ( temp 4-component vector of float) -0:45 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:45 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:45 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:45 Constant: -0:45 0 (const uint) -0:45 direct index ( temp uint) -0:45 'dti' ( in 3-component vector of uint) -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 Constant: -0:45 0 (const int) -0:46 move second child to first child ( temp 2-component vector of float) -0:46 vector swizzle ( temp 2-component vector of float) -0:46 f: direct index for structure ( temp 4-component vector of float) -0:46 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:46 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:46 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:46 Constant: -0:46 0 (const uint) -0:46 direct index ( temp uint) -0:46 'dti' ( in 3-component vector of uint) -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 subgroupBroadcastFirst ( temp 2-component vector of float) -0:46 vector swizzle ( temp 2-component vector of float) -0:46 f: direct index for structure ( temp 4-component vector of float) -0:46 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:46 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:46 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:46 Constant: -0:46 0 (const uint) -0:46 direct index ( temp uint) -0:46 'dti' ( in 3-component vector of uint) -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:47 move second child to first child ( temp 3-component vector of float) -0:47 vector swizzle ( temp 3-component vector of float) -0:47 f: direct index for structure ( temp 4-component vector of float) -0:47 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:47 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:47 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:47 Constant: -0:47 0 (const uint) -0:47 direct index ( temp uint) -0:47 'dti' ( in 3-component vector of uint) -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 2 (const int) -0:47 Sequence -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 1 (const int) -0:47 Constant: -0:47 2 (const int) -0:47 subgroupBroadcastFirst ( temp 3-component vector of float) -0:47 vector swizzle ( temp 3-component vector of float) -0:47 f: direct index for structure ( temp 4-component vector of float) -0:47 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:47 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:47 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:47 Constant: -0:47 0 (const uint) -0:47 direct index ( temp uint) -0:47 'dti' ( in 3-component vector of uint) -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 2 (const int) -0:47 Sequence -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 1 (const int) -0:47 Constant: -0:47 2 (const int) -0:49 move second child to first child ( temp 4-component vector of double) -0:49 d: direct index for structure ( temp 4-component vector of double) -0:49 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:49 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:49 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:49 Constant: -0:49 0 (const uint) -0:49 direct index ( temp uint) -0:49 'dti' ( in 3-component vector of uint) -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 3 (const int) -0:49 subgroupBroadcastFirst ( temp 4-component vector of double) -0:49 d: direct index for structure ( temp 4-component vector of double) -0:49 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:49 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:49 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:49 Constant: -0:49 0 (const uint) -0:49 direct index ( temp uint) -0:49 'dti' ( in 3-component vector of uint) -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 3 (const int) -0:50 move second child to first child ( temp double) -0:50 direct index ( temp double) -0:50 d: direct index for structure ( temp 4-component vector of double) -0:50 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:50 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:50 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:50 Constant: -0:50 0 (const uint) -0:50 direct index ( temp uint) -0:50 'dti' ( in 3-component vector of uint) -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 3 (const int) -0:50 Constant: -0:50 0 (const int) -0:50 subgroupBroadcastFirst ( temp double) -0:50 direct index ( temp double) -0:50 d: direct index for structure ( temp 4-component vector of double) -0:50 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:50 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:50 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:50 Constant: -0:50 0 (const uint) -0:50 direct index ( temp uint) -0:50 'dti' ( in 3-component vector of uint) -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 3 (const int) -0:50 Constant: -0:50 0 (const int) -0:51 move second child to first child ( temp 2-component vector of double) -0:51 vector swizzle ( temp 2-component vector of double) -0:51 d: direct index for structure ( temp 4-component vector of double) -0:51 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:51 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:51 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:51 Constant: -0:51 0 (const uint) -0:51 direct index ( temp uint) -0:51 'dti' ( in 3-component vector of uint) -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 3 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 subgroupBroadcastFirst ( temp 2-component vector of double) -0:51 vector swizzle ( temp 2-component vector of double) -0:51 d: direct index for structure ( temp 4-component vector of double) -0:51 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:51 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:51 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:51 Constant: -0:51 0 (const uint) -0:51 direct index ( temp uint) -0:51 'dti' ( in 3-component vector of uint) -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 3 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:52 move second child to first child ( temp 3-component vector of double) -0:52 vector swizzle ( temp 3-component vector of double) -0:52 d: direct index for structure ( temp 4-component vector of double) -0:52 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:52 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:52 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:52 Constant: -0:52 0 (const uint) -0:52 direct index ( temp uint) -0:52 'dti' ( in 3-component vector of uint) -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 3 (const int) -0:52 Sequence -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 1 (const int) -0:52 Constant: -0:52 2 (const int) -0:52 subgroupBroadcastFirst ( temp 3-component vector of double) -0:52 vector swizzle ( temp 3-component vector of double) -0:52 d: direct index for structure ( temp 4-component vector of double) -0:52 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:52 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:52 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:52 Constant: -0:52 0 (const uint) -0:52 direct index ( temp uint) -0:52 'dti' ( in 3-component vector of uint) -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 3 (const int) -0:52 Sequence -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 1 (const int) -0:52 Constant: -0:52 2 (const int) -0:13 Function Definition: CSMain( ( temp void) -0:13 Function Parameters: -0:? Sequence -0:13 move second child to first child ( temp 3-component vector of uint) -0:? 'dti' ( temp 3-component vector of uint) -0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) -0:13 Function Call: @CSMain(vu3; ( temp void) -0:? 'dti' ( temp 3-component vector of uint) -0:? Linker Objects -0:? 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) - - -Linked compute stage: - - -Shader version: 500 -local_size = (32, 16, 1) -0:? Sequence -0:13 Function Definition: @CSMain(vu3; ( temp void) -0:13 Function Parameters: -0:13 'dti' ( in 3-component vector of uint) -0:? Sequence -0:14 move second child to first child ( temp 4-component vector of uint) -0:14 u: direct index for structure ( temp 4-component vector of uint) -0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:14 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:14 Constant: -0:14 0 (const uint) -0:14 direct index ( temp uint) -0:14 'dti' ( in 3-component vector of uint) -0:14 Constant: -0:14 0 (const int) -0:14 Constant: -0:14 0 (const int) -0:14 subgroupShuffle ( temp 4-component vector of uint) -0:14 u: direct index for structure ( temp 4-component vector of uint) -0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:14 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:14 Constant: -0:14 0 (const uint) -0:14 direct index ( temp uint) -0:14 'dti' ( in 3-component vector of uint) -0:14 Constant: -0:14 0 (const int) -0:14 Constant: -0:14 0 (const int) -0:14 Constant: -0:14 13 (const uint) -0:15 move second child to first child ( temp uint) -0:15 direct index ( temp uint) -0:15 u: direct index for structure ( temp 4-component vector of uint) -0:15 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:15 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:15 Constant: -0:15 0 (const uint) -0:15 direct index ( temp uint) -0:15 'dti' ( in 3-component vector of uint) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0 (const int) -0:15 subgroupShuffle ( temp uint) -0:15 direct index ( temp uint) -0:15 u: direct index for structure ( temp 4-component vector of uint) -0:15 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:15 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:15 Constant: -0:15 0 (const uint) -0:15 direct index ( temp uint) -0:15 'dti' ( in 3-component vector of uint) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 13 (const uint) -0:16 move second child to first child ( temp 2-component vector of uint) -0:16 vector swizzle ( temp 2-component vector of uint) -0:16 u: direct index for structure ( temp 4-component vector of uint) -0:16 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:16 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:16 Constant: -0:16 0 (const uint) -0:16 direct index ( temp uint) -0:16 'dti' ( in 3-component vector of uint) -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 0 (const int) -0:16 Sequence -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 1 (const int) -0:16 subgroupShuffle ( temp 2-component vector of uint) -0:16 vector swizzle ( temp 2-component vector of uint) -0:16 u: direct index for structure ( temp 4-component vector of uint) -0:16 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:16 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:16 Constant: -0:16 0 (const uint) -0:16 direct index ( temp uint) -0:16 'dti' ( in 3-component vector of uint) -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 0 (const int) -0:16 Sequence -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 1 (const int) -0:16 Constant: -0:16 13 (const uint) -0:17 move second child to first child ( temp 3-component vector of uint) -0:17 vector swizzle ( temp 3-component vector of uint) -0:17 u: direct index for structure ( temp 4-component vector of uint) -0:17 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:17 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:17 Constant: -0:17 0 (const uint) -0:17 direct index ( temp uint) -0:17 'dti' ( in 3-component vector of uint) -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 0 (const int) -0:17 Sequence -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 1 (const int) -0:17 Constant: -0:17 2 (const int) -0:17 subgroupShuffle ( temp 3-component vector of uint) -0:17 vector swizzle ( temp 3-component vector of uint) -0:17 u: direct index for structure ( temp 4-component vector of uint) -0:17 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:17 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:17 Constant: -0:17 0 (const uint) -0:17 direct index ( temp uint) -0:17 'dti' ( in 3-component vector of uint) -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 0 (const int) -0:17 Sequence -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 1 (const int) -0:17 Constant: -0:17 2 (const int) -0:17 Constant: -0:17 13 (const uint) -0:19 move second child to first child ( temp 4-component vector of int) -0:19 i: direct index for structure ( temp 4-component vector of int) -0:19 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:19 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:19 Constant: -0:19 0 (const uint) -0:19 direct index ( temp uint) -0:19 'dti' ( in 3-component vector of uint) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const int) -0:19 subgroupShuffle ( temp 4-component vector of int) -0:19 i: direct index for structure ( temp 4-component vector of int) -0:19 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:19 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:19 Constant: -0:19 0 (const uint) -0:19 direct index ( temp uint) -0:19 'dti' ( in 3-component vector of uint) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const int) -0:19 Constant: -0:19 13 (const uint) -0:20 move second child to first child ( temp int) -0:20 direct index ( temp int) -0:20 i: direct index for structure ( temp 4-component vector of int) -0:20 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:20 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:20 Constant: -0:20 0 (const uint) -0:20 direct index ( temp uint) -0:20 'dti' ( in 3-component vector of uint) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 subgroupShuffle ( temp int) -0:20 direct index ( temp int) -0:20 i: direct index for structure ( temp 4-component vector of int) -0:20 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:20 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:20 Constant: -0:20 0 (const uint) -0:20 direct index ( temp uint) -0:20 'dti' ( in 3-component vector of uint) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 13 (const uint) -0:21 move second child to first child ( temp 2-component vector of int) -0:21 vector swizzle ( temp 2-component vector of int) -0:21 i: direct index for structure ( temp 4-component vector of int) -0:21 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:21 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:21 Constant: -0:21 0 (const uint) -0:21 direct index ( temp uint) -0:21 'dti' ( in 3-component vector of uint) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 subgroupShuffle ( temp 2-component vector of int) -0:21 vector swizzle ( temp 2-component vector of int) -0:21 i: direct index for structure ( temp 4-component vector of int) -0:21 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:21 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:21 Constant: -0:21 0 (const uint) -0:21 direct index ( temp uint) -0:21 'dti' ( in 3-component vector of uint) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Constant: -0:21 13 (const uint) -0:22 move second child to first child ( temp 3-component vector of int) -0:22 vector swizzle ( temp 3-component vector of int) -0:22 i: direct index for structure ( temp 4-component vector of int) -0:22 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:22 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:22 Constant: -0:22 0 (const uint) -0:22 direct index ( temp uint) -0:22 'dti' ( in 3-component vector of uint) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 Sequence -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 Constant: -0:22 2 (const int) -0:22 subgroupShuffle ( temp 3-component vector of int) -0:22 vector swizzle ( temp 3-component vector of int) -0:22 i: direct index for structure ( temp 4-component vector of int) -0:22 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:22 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:22 Constant: -0:22 0 (const uint) -0:22 direct index ( temp uint) -0:22 'dti' ( in 3-component vector of uint) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 Sequence -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 Constant: -0:22 2 (const int) -0:22 Constant: -0:22 13 (const uint) -0:24 move second child to first child ( temp 4-component vector of float) -0:24 f: direct index for structure ( temp 4-component vector of float) -0:24 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:24 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:24 Constant: -0:24 0 (const uint) -0:24 direct index ( temp uint) -0:24 'dti' ( in 3-component vector of uint) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 2 (const int) -0:24 subgroupShuffle ( temp 4-component vector of float) -0:24 f: direct index for structure ( temp 4-component vector of float) -0:24 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:24 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:24 Constant: -0:24 0 (const uint) -0:24 direct index ( temp uint) -0:24 'dti' ( in 3-component vector of uint) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 2 (const int) -0:24 Constant: -0:24 13 (const uint) -0:25 move second child to first child ( temp float) -0:25 direct index ( temp float) -0:25 f: direct index for structure ( temp 4-component vector of float) -0:25 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:25 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:25 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:25 Constant: -0:25 0 (const uint) -0:25 direct index ( temp uint) -0:25 'dti' ( in 3-component vector of uint) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 Constant: -0:25 0 (const int) -0:25 subgroupShuffle ( temp float) -0:25 direct index ( temp float) -0:25 f: direct index for structure ( temp 4-component vector of float) -0:25 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:25 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:25 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:25 Constant: -0:25 0 (const uint) -0:25 direct index ( temp uint) -0:25 'dti' ( in 3-component vector of uint) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 13 (const uint) -0:26 move second child to first child ( temp 2-component vector of float) -0:26 vector swizzle ( temp 2-component vector of float) -0:26 f: direct index for structure ( temp 4-component vector of float) -0:26 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:26 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:26 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:26 Constant: -0:26 0 (const uint) -0:26 direct index ( temp uint) -0:26 'dti' ( in 3-component vector of uint) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 subgroupShuffle ( temp 2-component vector of float) -0:26 vector swizzle ( temp 2-component vector of float) -0:26 f: direct index for structure ( temp 4-component vector of float) -0:26 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:26 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:26 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:26 Constant: -0:26 0 (const uint) -0:26 direct index ( temp uint) -0:26 'dti' ( in 3-component vector of uint) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 13 (const uint) -0:27 move second child to first child ( temp 3-component vector of float) -0:27 vector swizzle ( temp 3-component vector of float) -0:27 f: direct index for structure ( temp 4-component vector of float) -0:27 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:27 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:27 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:27 Constant: -0:27 0 (const uint) -0:27 direct index ( temp uint) -0:27 'dti' ( in 3-component vector of uint) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 2 (const int) -0:27 Sequence -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Constant: -0:27 2 (const int) -0:27 subgroupShuffle ( temp 3-component vector of float) -0:27 vector swizzle ( temp 3-component vector of float) -0:27 f: direct index for structure ( temp 4-component vector of float) -0:27 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:27 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:27 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:27 Constant: -0:27 0 (const uint) -0:27 direct index ( temp uint) -0:27 'dti' ( in 3-component vector of uint) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 2 (const int) -0:27 Sequence -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Constant: -0:27 2 (const int) -0:27 Constant: -0:27 13 (const uint) -0:29 move second child to first child ( temp 4-component vector of double) -0:29 d: direct index for structure ( temp 4-component vector of double) -0:29 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:29 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:29 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:29 Constant: -0:29 0 (const uint) -0:29 direct index ( temp uint) -0:29 'dti' ( in 3-component vector of uint) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 3 (const int) -0:29 subgroupBroadcastFirst ( temp 4-component vector of double) -0:29 d: direct index for structure ( temp 4-component vector of double) -0:29 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:29 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:29 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:29 Constant: -0:29 0 (const uint) -0:29 direct index ( temp uint) -0:29 'dti' ( in 3-component vector of uint) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 3 (const int) -0:30 move second child to first child ( temp double) -0:30 direct index ( temp double) -0:30 d: direct index for structure ( temp 4-component vector of double) -0:30 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:30 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:30 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:30 Constant: -0:30 0 (const uint) -0:30 direct index ( temp uint) -0:30 'dti' ( in 3-component vector of uint) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 3 (const int) -0:30 Constant: -0:30 0 (const int) -0:30 subgroupBroadcastFirst ( temp double) -0:30 direct index ( temp double) -0:30 d: direct index for structure ( temp 4-component vector of double) -0:30 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:30 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:30 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:30 Constant: -0:30 0 (const uint) -0:30 direct index ( temp uint) -0:30 'dti' ( in 3-component vector of uint) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 3 (const int) -0:30 Constant: -0:30 0 (const int) -0:31 move second child to first child ( temp 2-component vector of double) -0:31 vector swizzle ( temp 2-component vector of double) -0:31 d: direct index for structure ( temp 4-component vector of double) -0:31 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:31 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:31 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:31 Constant: -0:31 0 (const uint) -0:31 direct index ( temp uint) -0:31 'dti' ( in 3-component vector of uint) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 3 (const int) -0:31 Sequence -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 subgroupBroadcastFirst ( temp 2-component vector of double) -0:31 vector swizzle ( temp 2-component vector of double) -0:31 d: direct index for structure ( temp 4-component vector of double) -0:31 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:31 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:31 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:31 Constant: -0:31 0 (const uint) -0:31 direct index ( temp uint) -0:31 'dti' ( in 3-component vector of uint) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 3 (const int) -0:31 Sequence -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:32 move second child to first child ( temp 3-component vector of double) -0:32 vector swizzle ( temp 3-component vector of double) -0:32 d: direct index for structure ( temp 4-component vector of double) -0:32 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:32 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:32 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:32 Constant: -0:32 0 (const uint) -0:32 direct index ( temp uint) -0:32 'dti' ( in 3-component vector of uint) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 3 (const int) -0:32 Sequence -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 1 (const int) -0:32 Constant: -0:32 2 (const int) -0:32 subgroupBroadcastFirst ( temp 3-component vector of double) -0:32 vector swizzle ( temp 3-component vector of double) -0:32 d: direct index for structure ( temp 4-component vector of double) -0:32 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:32 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:32 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:32 Constant: -0:32 0 (const uint) -0:32 direct index ( temp uint) -0:32 'dti' ( in 3-component vector of uint) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 3 (const int) -0:32 Sequence -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 1 (const int) -0:32 Constant: -0:32 2 (const int) -0:34 move second child to first child ( temp 4-component vector of uint) -0:34 u: direct index for structure ( temp 4-component vector of uint) -0:34 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:34 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:34 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:34 Constant: -0:34 0 (const uint) -0:34 direct index ( temp uint) -0:34 'dti' ( in 3-component vector of uint) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 subgroupBroadcastFirst ( temp 4-component vector of uint) -0:34 u: direct index for structure ( temp 4-component vector of uint) -0:34 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:34 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:34 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:34 Constant: -0:34 0 (const uint) -0:34 direct index ( temp uint) -0:34 'dti' ( in 3-component vector of uint) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 0 (const int) -0:35 move second child to first child ( temp uint) -0:35 direct index ( temp uint) -0:35 u: direct index for structure ( temp 4-component vector of uint) -0:35 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:35 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:35 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:35 Constant: -0:35 0 (const uint) -0:35 direct index ( temp uint) -0:35 'dti' ( in 3-component vector of uint) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 subgroupBroadcastFirst ( temp uint) -0:35 direct index ( temp uint) -0:35 u: direct index for structure ( temp 4-component vector of uint) -0:35 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:35 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:35 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:35 Constant: -0:35 0 (const uint) -0:35 direct index ( temp uint) -0:35 'dti' ( in 3-component vector of uint) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 0 (const int) -0:36 move second child to first child ( temp 2-component vector of uint) -0:36 vector swizzle ( temp 2-component vector of uint) -0:36 u: direct index for structure ( temp 4-component vector of uint) -0:36 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:36 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:36 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:36 Constant: -0:36 0 (const uint) -0:36 direct index ( temp uint) -0:36 'dti' ( in 3-component vector of uint) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 subgroupBroadcastFirst ( temp 2-component vector of uint) -0:36 vector swizzle ( temp 2-component vector of uint) -0:36 u: direct index for structure ( temp 4-component vector of uint) -0:36 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:36 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:36 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:36 Constant: -0:36 0 (const uint) -0:36 direct index ( temp uint) -0:36 'dti' ( in 3-component vector of uint) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:37 move second child to first child ( temp 3-component vector of uint) -0:37 vector swizzle ( temp 3-component vector of uint) -0:37 u: direct index for structure ( temp 4-component vector of uint) -0:37 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:37 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:37 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:37 Constant: -0:37 0 (const uint) -0:37 direct index ( temp uint) -0:37 'dti' ( in 3-component vector of uint) -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 0 (const int) -0:37 Sequence -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 1 (const int) -0:37 Constant: -0:37 2 (const int) -0:37 subgroupBroadcastFirst ( temp 3-component vector of uint) -0:37 vector swizzle ( temp 3-component vector of uint) -0:37 u: direct index for structure ( temp 4-component vector of uint) -0:37 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:37 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:37 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:37 Constant: -0:37 0 (const uint) -0:37 direct index ( temp uint) -0:37 'dti' ( in 3-component vector of uint) -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 0 (const int) -0:37 Sequence -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 1 (const int) -0:37 Constant: -0:37 2 (const int) -0:39 move second child to first child ( temp 4-component vector of int) -0:39 i: direct index for structure ( temp 4-component vector of int) -0:39 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:39 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:39 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:39 Constant: -0:39 0 (const uint) -0:39 direct index ( temp uint) -0:39 'dti' ( in 3-component vector of uint) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 subgroupBroadcastFirst ( temp 4-component vector of int) -0:39 i: direct index for structure ( temp 4-component vector of int) -0:39 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:39 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:39 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:39 Constant: -0:39 0 (const uint) -0:39 direct index ( temp uint) -0:39 'dti' ( in 3-component vector of uint) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:40 move second child to first child ( temp int) -0:40 direct index ( temp int) -0:40 i: direct index for structure ( temp 4-component vector of int) -0:40 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:40 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:40 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:40 Constant: -0:40 0 (const uint) -0:40 direct index ( temp uint) -0:40 'dti' ( in 3-component vector of uint) -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 subgroupBroadcastFirst ( temp int) -0:40 direct index ( temp int) -0:40 i: direct index for structure ( temp 4-component vector of int) -0:40 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:40 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:40 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:40 Constant: -0:40 0 (const uint) -0:40 direct index ( temp uint) -0:40 'dti' ( in 3-component vector of uint) -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 0 (const int) -0:41 move second child to first child ( temp 2-component vector of int) -0:41 vector swizzle ( temp 2-component vector of int) -0:41 i: direct index for structure ( temp 4-component vector of int) -0:41 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:41 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:41 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:41 Constant: -0:41 0 (const uint) -0:41 direct index ( temp uint) -0:41 'dti' ( in 3-component vector of uint) -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 subgroupBroadcastFirst ( temp 2-component vector of int) -0:41 vector swizzle ( temp 2-component vector of int) -0:41 i: direct index for structure ( temp 4-component vector of int) -0:41 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:41 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:41 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:41 Constant: -0:41 0 (const uint) -0:41 direct index ( temp uint) -0:41 'dti' ( in 3-component vector of uint) -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:42 move second child to first child ( temp 3-component vector of int) -0:42 vector swizzle ( temp 3-component vector of int) -0:42 i: direct index for structure ( temp 4-component vector of int) -0:42 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:42 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:42 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:42 Constant: -0:42 0 (const uint) -0:42 direct index ( temp uint) -0:42 'dti' ( in 3-component vector of uint) -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Sequence -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 2 (const int) -0:42 subgroupBroadcastFirst ( temp 3-component vector of int) -0:42 vector swizzle ( temp 3-component vector of int) -0:42 i: direct index for structure ( temp 4-component vector of int) -0:42 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:42 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:42 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:42 Constant: -0:42 0 (const uint) -0:42 direct index ( temp uint) -0:42 'dti' ( in 3-component vector of uint) -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Sequence -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 2 (const int) -0:44 move second child to first child ( temp 4-component vector of float) -0:44 f: direct index for structure ( temp 4-component vector of float) -0:44 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:44 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:44 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:44 Constant: -0:44 0 (const uint) -0:44 direct index ( temp uint) -0:44 'dti' ( in 3-component vector of uint) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 2 (const int) -0:44 subgroupBroadcastFirst ( temp 4-component vector of float) -0:44 f: direct index for structure ( temp 4-component vector of float) -0:44 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:44 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:44 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:44 Constant: -0:44 0 (const uint) -0:44 direct index ( temp uint) -0:44 'dti' ( in 3-component vector of uint) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 2 (const int) -0:45 move second child to first child ( temp float) -0:45 direct index ( temp float) -0:45 f: direct index for structure ( temp 4-component vector of float) -0:45 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:45 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:45 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:45 Constant: -0:45 0 (const uint) -0:45 direct index ( temp uint) -0:45 'dti' ( in 3-component vector of uint) -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 Constant: -0:45 0 (const int) -0:45 subgroupBroadcastFirst ( temp float) -0:45 direct index ( temp float) -0:45 f: direct index for structure ( temp 4-component vector of float) -0:45 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:45 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:45 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:45 Constant: -0:45 0 (const uint) -0:45 direct index ( temp uint) -0:45 'dti' ( in 3-component vector of uint) -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 Constant: -0:45 0 (const int) -0:46 move second child to first child ( temp 2-component vector of float) -0:46 vector swizzle ( temp 2-component vector of float) -0:46 f: direct index for structure ( temp 4-component vector of float) -0:46 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:46 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:46 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:46 Constant: -0:46 0 (const uint) -0:46 direct index ( temp uint) -0:46 'dti' ( in 3-component vector of uint) -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 subgroupBroadcastFirst ( temp 2-component vector of float) -0:46 vector swizzle ( temp 2-component vector of float) -0:46 f: direct index for structure ( temp 4-component vector of float) -0:46 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:46 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:46 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:46 Constant: -0:46 0 (const uint) -0:46 direct index ( temp uint) -0:46 'dti' ( in 3-component vector of uint) -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:47 move second child to first child ( temp 3-component vector of float) -0:47 vector swizzle ( temp 3-component vector of float) -0:47 f: direct index for structure ( temp 4-component vector of float) -0:47 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:47 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:47 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:47 Constant: -0:47 0 (const uint) -0:47 direct index ( temp uint) -0:47 'dti' ( in 3-component vector of uint) -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 2 (const int) -0:47 Sequence -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 1 (const int) -0:47 Constant: -0:47 2 (const int) -0:47 subgroupBroadcastFirst ( temp 3-component vector of float) -0:47 vector swizzle ( temp 3-component vector of float) -0:47 f: direct index for structure ( temp 4-component vector of float) -0:47 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:47 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:47 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:47 Constant: -0:47 0 (const uint) -0:47 direct index ( temp uint) -0:47 'dti' ( in 3-component vector of uint) -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 2 (const int) -0:47 Sequence -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 1 (const int) -0:47 Constant: -0:47 2 (const int) -0:49 move second child to first child ( temp 4-component vector of double) -0:49 d: direct index for structure ( temp 4-component vector of double) -0:49 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:49 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:49 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:49 Constant: -0:49 0 (const uint) -0:49 direct index ( temp uint) -0:49 'dti' ( in 3-component vector of uint) -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 3 (const int) -0:49 subgroupBroadcastFirst ( temp 4-component vector of double) -0:49 d: direct index for structure ( temp 4-component vector of double) -0:49 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:49 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:49 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:49 Constant: -0:49 0 (const uint) -0:49 direct index ( temp uint) -0:49 'dti' ( in 3-component vector of uint) -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 3 (const int) -0:50 move second child to first child ( temp double) -0:50 direct index ( temp double) -0:50 d: direct index for structure ( temp 4-component vector of double) -0:50 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:50 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:50 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:50 Constant: -0:50 0 (const uint) -0:50 direct index ( temp uint) -0:50 'dti' ( in 3-component vector of uint) -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 3 (const int) -0:50 Constant: -0:50 0 (const int) -0:50 subgroupBroadcastFirst ( temp double) -0:50 direct index ( temp double) -0:50 d: direct index for structure ( temp 4-component vector of double) -0:50 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:50 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:50 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:50 Constant: -0:50 0 (const uint) -0:50 direct index ( temp uint) -0:50 'dti' ( in 3-component vector of uint) -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 3 (const int) -0:50 Constant: -0:50 0 (const int) -0:51 move second child to first child ( temp 2-component vector of double) -0:51 vector swizzle ( temp 2-component vector of double) -0:51 d: direct index for structure ( temp 4-component vector of double) -0:51 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:51 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:51 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:51 Constant: -0:51 0 (const uint) -0:51 direct index ( temp uint) -0:51 'dti' ( in 3-component vector of uint) -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 3 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 subgroupBroadcastFirst ( temp 2-component vector of double) -0:51 vector swizzle ( temp 2-component vector of double) -0:51 d: direct index for structure ( temp 4-component vector of double) -0:51 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:51 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:51 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:51 Constant: -0:51 0 (const uint) -0:51 direct index ( temp uint) -0:51 'dti' ( in 3-component vector of uint) -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 3 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:52 move second child to first child ( temp 3-component vector of double) -0:52 vector swizzle ( temp 3-component vector of double) -0:52 d: direct index for structure ( temp 4-component vector of double) -0:52 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:52 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:52 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:52 Constant: -0:52 0 (const uint) -0:52 direct index ( temp uint) -0:52 'dti' ( in 3-component vector of uint) -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 3 (const int) -0:52 Sequence -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 1 (const int) -0:52 Constant: -0:52 2 (const int) -0:52 subgroupBroadcastFirst ( temp 3-component vector of double) -0:52 vector swizzle ( temp 3-component vector of double) -0:52 d: direct index for structure ( temp 4-component vector of double) -0:52 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:52 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:52 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:52 Constant: -0:52 0 (const uint) -0:52 direct index ( temp uint) -0:52 'dti' ( in 3-component vector of uint) -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 3 (const int) -0:52 Sequence -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 1 (const int) -0:52 Constant: -0:52 2 (const int) -0:13 Function Definition: CSMain( ( temp void) -0:13 Function Parameters: -0:? Sequence -0:13 move second child to first child ( temp 3-component vector of uint) -0:? 'dti' ( temp 3-component vector of uint) -0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) -0:13 Function Call: @CSMain(vu3; ( temp void) -0:? 'dti' ( temp 3-component vector of uint) -0:? Linker Objects -0:? 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) - -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 393 - - Capability Shader - Capability Float64 - Capability GroupNonUniform - Capability GroupNonUniformBallot - Capability GroupNonUniformShuffle - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "CSMain" 388 - ExecutionMode 4 LocalSize 32 16 1 - Source HLSL 500 - Name 4 "CSMain" - Name 11 "@CSMain(vu3;" - Name 10 "dti" - Name 20 "Types" - MemberName 20(Types) 0 "u" - MemberName 20(Types) 1 "i" - MemberName 20(Types) 2 "f" - MemberName 20(Types) 3 "d" - Name 22 "data" - MemberName 22(data) 0 "@data" - Name 24 "data" - Name 386 "dti" - Name 388 "dti" - Name 390 "param" - MemberDecorate 20(Types) 0 Offset 0 - MemberDecorate 20(Types) 1 Offset 16 - MemberDecorate 20(Types) 2 Offset 32 - MemberDecorate 20(Types) 3 Offset 64 - Decorate 21 ArrayStride 96 - MemberDecorate 22(data) 0 Offset 0 - Decorate 22(data) BufferBlock - Decorate 24(data) DescriptorSet 0 - Decorate 24(data) Binding 0 - Decorate 388(dti) BuiltIn GlobalInvocationId - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeVector 6(int) 3 - 8: TypePointer Function 7(ivec3) - 9: TypeFunction 2 8(ptr) - 13: TypeVector 6(int) 4 - 14: TypeInt 32 1 - 15: TypeVector 14(int) 4 - 16: TypeFloat 32 - 17: TypeVector 16(float) 4 - 18: TypeFloat 64 - 19: TypeVector 18(float64_t) 4 - 20(Types): TypeStruct 13(ivec4) 15(ivec4) 17(fvec4) 19(f64vec4) - 21: TypeRuntimeArray 20(Types) - 22(data): TypeStruct 21 - 23: TypePointer Uniform 22(data) - 24(data): 23(ptr) Variable Uniform - 25: 14(int) Constant 0 - 26: 6(int) Constant 0 - 27: TypePointer Function 6(int) - 32: TypePointer Uniform 13(ivec4) - 35: 6(int) Constant 13 - 36: 6(int) Constant 3 - 43: TypePointer Uniform 6(int) - 52: TypeVector 6(int) 2 - 59: 6(int) Constant 1 - 74: 6(int) Constant 2 - 79: 14(int) Constant 1 - 82: TypePointer Uniform 15(ivec4) - 91: TypePointer Uniform 14(int) - 100: TypeVector 14(int) 2 - 113: TypeVector 14(int) 3 - 126: 14(int) Constant 2 - 129: TypePointer Uniform 17(fvec4) - 138: TypePointer Uniform 16(float) - 147: TypeVector 16(float) 2 - 160: TypeVector 16(float) 3 - 173: 14(int) Constant 3 - 176: TypePointer Uniform 19(f64vec4) - 185: TypePointer Uniform 18(float64_t) - 194: TypeVector 18(float64_t) 2 - 207: TypeVector 18(float64_t) 3 - 387: TypePointer Input 7(ivec3) - 388(dti): 387(ptr) Variable Input - 4(CSMain): 2 Function None 3 - 5: Label - 386(dti): 8(ptr) Variable Function - 390(param): 8(ptr) Variable Function - 389: 7(ivec3) Load 388(dti) - Store 386(dti) 389 - 391: 7(ivec3) Load 386(dti) - Store 390(param) 391 - 392: 2 FunctionCall 11(@CSMain(vu3;) 390(param) - Return - FunctionEnd -11(@CSMain(vu3;): 2 Function None 9 - 10(dti): 8(ptr) FunctionParameter - 12: Label - 28: 27(ptr) AccessChain 10(dti) 26 - 29: 6(int) Load 28 - 30: 27(ptr) AccessChain 10(dti) 26 - 31: 6(int) Load 30 - 33: 32(ptr) AccessChain 24(data) 25 31 25 - 34: 13(ivec4) Load 33 - 37: 13(ivec4) GroupNonUniformShuffle 36 34 35 - 38: 32(ptr) AccessChain 24(data) 25 29 25 - Store 38 37 - 39: 27(ptr) AccessChain 10(dti) 26 - 40: 6(int) Load 39 - 41: 27(ptr) AccessChain 10(dti) 26 - 42: 6(int) Load 41 - 44: 43(ptr) AccessChain 24(data) 25 42 25 26 - 45: 6(int) Load 44 - 46: 6(int) GroupNonUniformShuffle 36 45 35 - 47: 43(ptr) AccessChain 24(data) 25 40 25 26 - Store 47 46 - 48: 27(ptr) AccessChain 10(dti) 26 - 49: 6(int) Load 48 - 50: 27(ptr) AccessChain 10(dti) 26 - 51: 6(int) Load 50 - 53: 32(ptr) AccessChain 24(data) 25 51 25 - 54: 13(ivec4) Load 53 - 55: 52(ivec2) VectorShuffle 54 54 0 1 - 56: 52(ivec2) GroupNonUniformShuffle 36 55 35 - 57: 43(ptr) AccessChain 24(data) 25 49 25 26 - 58: 6(int) CompositeExtract 56 0 - Store 57 58 - 60: 43(ptr) AccessChain 24(data) 25 49 25 59 - 61: 6(int) CompositeExtract 56 1 - Store 60 61 - 62: 27(ptr) AccessChain 10(dti) 26 - 63: 6(int) Load 62 - 64: 27(ptr) AccessChain 10(dti) 26 - 65: 6(int) Load 64 - 66: 32(ptr) AccessChain 24(data) 25 65 25 - 67: 13(ivec4) Load 66 - 68: 7(ivec3) VectorShuffle 67 67 0 1 2 - 69: 7(ivec3) GroupNonUniformShuffle 36 68 35 - 70: 43(ptr) AccessChain 24(data) 25 63 25 26 - 71: 6(int) CompositeExtract 69 0 - Store 70 71 - 72: 43(ptr) AccessChain 24(data) 25 63 25 59 - 73: 6(int) CompositeExtract 69 1 - Store 72 73 - 75: 43(ptr) AccessChain 24(data) 25 63 25 74 - 76: 6(int) CompositeExtract 69 2 - Store 75 76 - 77: 27(ptr) AccessChain 10(dti) 26 - 78: 6(int) Load 77 - 80: 27(ptr) AccessChain 10(dti) 26 - 81: 6(int) Load 80 - 83: 82(ptr) AccessChain 24(data) 25 81 79 - 84: 15(ivec4) Load 83 - 85: 15(ivec4) GroupNonUniformShuffle 36 84 35 - 86: 82(ptr) AccessChain 24(data) 25 78 79 - Store 86 85 - 87: 27(ptr) AccessChain 10(dti) 26 - 88: 6(int) Load 87 - 89: 27(ptr) AccessChain 10(dti) 26 - 90: 6(int) Load 89 - 92: 91(ptr) AccessChain 24(data) 25 90 79 26 - 93: 14(int) Load 92 - 94: 14(int) GroupNonUniformShuffle 36 93 35 - 95: 91(ptr) AccessChain 24(data) 25 88 79 26 - Store 95 94 - 96: 27(ptr) AccessChain 10(dti) 26 - 97: 6(int) Load 96 - 98: 27(ptr) AccessChain 10(dti) 26 - 99: 6(int) Load 98 - 101: 82(ptr) AccessChain 24(data) 25 99 79 - 102: 15(ivec4) Load 101 - 103: 100(ivec2) VectorShuffle 102 102 0 1 - 104: 100(ivec2) GroupNonUniformShuffle 36 103 35 - 105: 91(ptr) AccessChain 24(data) 25 97 79 26 - 106: 14(int) CompositeExtract 104 0 - Store 105 106 - 107: 91(ptr) AccessChain 24(data) 25 97 79 59 - 108: 14(int) CompositeExtract 104 1 - Store 107 108 - 109: 27(ptr) AccessChain 10(dti) 26 - 110: 6(int) Load 109 - 111: 27(ptr) AccessChain 10(dti) 26 - 112: 6(int) Load 111 - 114: 82(ptr) AccessChain 24(data) 25 112 79 - 115: 15(ivec4) Load 114 - 116: 113(ivec3) VectorShuffle 115 115 0 1 2 - 117: 113(ivec3) GroupNonUniformShuffle 36 116 35 - 118: 91(ptr) AccessChain 24(data) 25 110 79 26 - 119: 14(int) CompositeExtract 117 0 - Store 118 119 - 120: 91(ptr) AccessChain 24(data) 25 110 79 59 - 121: 14(int) CompositeExtract 117 1 - Store 120 121 - 122: 91(ptr) AccessChain 24(data) 25 110 79 74 - 123: 14(int) CompositeExtract 117 2 - Store 122 123 - 124: 27(ptr) AccessChain 10(dti) 26 - 125: 6(int) Load 124 - 127: 27(ptr) AccessChain 10(dti) 26 - 128: 6(int) Load 127 - 130: 129(ptr) AccessChain 24(data) 25 128 126 - 131: 17(fvec4) Load 130 - 132: 17(fvec4) GroupNonUniformShuffle 36 131 35 - 133: 129(ptr) AccessChain 24(data) 25 125 126 - Store 133 132 - 134: 27(ptr) AccessChain 10(dti) 26 - 135: 6(int) Load 134 - 136: 27(ptr) AccessChain 10(dti) 26 - 137: 6(int) Load 136 - 139: 138(ptr) AccessChain 24(data) 25 137 126 26 - 140: 16(float) Load 139 - 141: 16(float) GroupNonUniformShuffle 36 140 35 - 142: 138(ptr) AccessChain 24(data) 25 135 126 26 - Store 142 141 - 143: 27(ptr) AccessChain 10(dti) 26 - 144: 6(int) Load 143 - 145: 27(ptr) AccessChain 10(dti) 26 - 146: 6(int) Load 145 - 148: 129(ptr) AccessChain 24(data) 25 146 126 - 149: 17(fvec4) Load 148 - 150: 147(fvec2) VectorShuffle 149 149 0 1 - 151: 147(fvec2) GroupNonUniformShuffle 36 150 35 - 152: 138(ptr) AccessChain 24(data) 25 144 126 26 - 153: 16(float) CompositeExtract 151 0 - Store 152 153 - 154: 138(ptr) AccessChain 24(data) 25 144 126 59 - 155: 16(float) CompositeExtract 151 1 - Store 154 155 - 156: 27(ptr) AccessChain 10(dti) 26 - 157: 6(int) Load 156 - 158: 27(ptr) AccessChain 10(dti) 26 - 159: 6(int) Load 158 - 161: 129(ptr) AccessChain 24(data) 25 159 126 - 162: 17(fvec4) Load 161 - 163: 160(fvec3) VectorShuffle 162 162 0 1 2 - 164: 160(fvec3) GroupNonUniformShuffle 36 163 35 - 165: 138(ptr) AccessChain 24(data) 25 157 126 26 - 166: 16(float) CompositeExtract 164 0 - Store 165 166 - 167: 138(ptr) AccessChain 24(data) 25 157 126 59 - 168: 16(float) CompositeExtract 164 1 - Store 167 168 - 169: 138(ptr) AccessChain 24(data) 25 157 126 74 - 170: 16(float) CompositeExtract 164 2 - Store 169 170 - 171: 27(ptr) AccessChain 10(dti) 26 - 172: 6(int) Load 171 - 174: 27(ptr) AccessChain 10(dti) 26 - 175: 6(int) Load 174 - 177: 176(ptr) AccessChain 24(data) 25 175 173 - 178: 19(f64vec4) Load 177 - 179: 19(f64vec4) GroupNonUniformBroadcastFirst 36 178 - 180: 176(ptr) AccessChain 24(data) 25 172 173 - Store 180 179 - 181: 27(ptr) AccessChain 10(dti) 26 - 182: 6(int) Load 181 - 183: 27(ptr) AccessChain 10(dti) 26 - 184: 6(int) Load 183 - 186: 185(ptr) AccessChain 24(data) 25 184 173 26 - 187:18(float64_t) Load 186 - 188:18(float64_t) GroupNonUniformBroadcastFirst 36 187 - 189: 185(ptr) AccessChain 24(data) 25 182 173 26 - Store 189 188 - 190: 27(ptr) AccessChain 10(dti) 26 - 191: 6(int) Load 190 - 192: 27(ptr) AccessChain 10(dti) 26 - 193: 6(int) Load 192 - 195: 176(ptr) AccessChain 24(data) 25 193 173 - 196: 19(f64vec4) Load 195 - 197:194(f64vec2) VectorShuffle 196 196 0 1 - 198:194(f64vec2) GroupNonUniformBroadcastFirst 36 197 - 199: 185(ptr) AccessChain 24(data) 25 191 173 26 - 200:18(float64_t) CompositeExtract 198 0 - Store 199 200 - 201: 185(ptr) AccessChain 24(data) 25 191 173 59 - 202:18(float64_t) CompositeExtract 198 1 - Store 201 202 - 203: 27(ptr) AccessChain 10(dti) 26 - 204: 6(int) Load 203 - 205: 27(ptr) AccessChain 10(dti) 26 - 206: 6(int) Load 205 - 208: 176(ptr) AccessChain 24(data) 25 206 173 - 209: 19(f64vec4) Load 208 - 210:207(f64vec3) VectorShuffle 209 209 0 1 2 - 211:207(f64vec3) GroupNonUniformBroadcastFirst 36 210 - 212: 185(ptr) AccessChain 24(data) 25 204 173 26 - 213:18(float64_t) CompositeExtract 211 0 - Store 212 213 - 214: 185(ptr) AccessChain 24(data) 25 204 173 59 - 215:18(float64_t) CompositeExtract 211 1 - Store 214 215 - 216: 185(ptr) AccessChain 24(data) 25 204 173 74 - 217:18(float64_t) CompositeExtract 211 2 - Store 216 217 - 218: 27(ptr) AccessChain 10(dti) 26 - 219: 6(int) Load 218 - 220: 27(ptr) AccessChain 10(dti) 26 - 221: 6(int) Load 220 - 222: 32(ptr) AccessChain 24(data) 25 221 25 - 223: 13(ivec4) Load 222 - 224: 13(ivec4) GroupNonUniformBroadcastFirst 36 223 - 225: 32(ptr) AccessChain 24(data) 25 219 25 - Store 225 224 - 226: 27(ptr) AccessChain 10(dti) 26 - 227: 6(int) Load 226 - 228: 27(ptr) AccessChain 10(dti) 26 - 229: 6(int) Load 228 - 230: 43(ptr) AccessChain 24(data) 25 229 25 26 - 231: 6(int) Load 230 - 232: 6(int) GroupNonUniformBroadcastFirst 36 231 - 233: 43(ptr) AccessChain 24(data) 25 227 25 26 - Store 233 232 - 234: 27(ptr) AccessChain 10(dti) 26 - 235: 6(int) Load 234 - 236: 27(ptr) AccessChain 10(dti) 26 - 237: 6(int) Load 236 - 238: 32(ptr) AccessChain 24(data) 25 237 25 - 239: 13(ivec4) Load 238 - 240: 52(ivec2) VectorShuffle 239 239 0 1 - 241: 52(ivec2) GroupNonUniformBroadcastFirst 36 240 - 242: 43(ptr) AccessChain 24(data) 25 235 25 26 - 243: 6(int) CompositeExtract 241 0 - Store 242 243 - 244: 43(ptr) AccessChain 24(data) 25 235 25 59 - 245: 6(int) CompositeExtract 241 1 - Store 244 245 - 246: 27(ptr) AccessChain 10(dti) 26 - 247: 6(int) Load 246 - 248: 27(ptr) AccessChain 10(dti) 26 - 249: 6(int) Load 248 - 250: 32(ptr) AccessChain 24(data) 25 249 25 - 251: 13(ivec4) Load 250 - 252: 7(ivec3) VectorShuffle 251 251 0 1 2 - 253: 7(ivec3) GroupNonUniformBroadcastFirst 36 252 - 254: 43(ptr) AccessChain 24(data) 25 247 25 26 - 255: 6(int) CompositeExtract 253 0 - Store 254 255 - 256: 43(ptr) AccessChain 24(data) 25 247 25 59 - 257: 6(int) CompositeExtract 253 1 - Store 256 257 - 258: 43(ptr) AccessChain 24(data) 25 247 25 74 - 259: 6(int) CompositeExtract 253 2 - Store 258 259 - 260: 27(ptr) AccessChain 10(dti) 26 - 261: 6(int) Load 260 - 262: 27(ptr) AccessChain 10(dti) 26 - 263: 6(int) Load 262 - 264: 82(ptr) AccessChain 24(data) 25 263 79 - 265: 15(ivec4) Load 264 - 266: 15(ivec4) GroupNonUniformBroadcastFirst 36 265 - 267: 82(ptr) AccessChain 24(data) 25 261 79 - Store 267 266 - 268: 27(ptr) AccessChain 10(dti) 26 - 269: 6(int) Load 268 - 270: 27(ptr) AccessChain 10(dti) 26 - 271: 6(int) Load 270 - 272: 91(ptr) AccessChain 24(data) 25 271 79 26 - 273: 14(int) Load 272 - 274: 14(int) GroupNonUniformBroadcastFirst 36 273 - 275: 91(ptr) AccessChain 24(data) 25 269 79 26 - Store 275 274 - 276: 27(ptr) AccessChain 10(dti) 26 - 277: 6(int) Load 276 - 278: 27(ptr) AccessChain 10(dti) 26 - 279: 6(int) Load 278 - 280: 82(ptr) AccessChain 24(data) 25 279 79 - 281: 15(ivec4) Load 280 - 282: 100(ivec2) VectorShuffle 281 281 0 1 - 283: 100(ivec2) GroupNonUniformBroadcastFirst 36 282 - 284: 91(ptr) AccessChain 24(data) 25 277 79 26 - 285: 14(int) CompositeExtract 283 0 - Store 284 285 - 286: 91(ptr) AccessChain 24(data) 25 277 79 59 - 287: 14(int) CompositeExtract 283 1 - Store 286 287 - 288: 27(ptr) AccessChain 10(dti) 26 - 289: 6(int) Load 288 - 290: 27(ptr) AccessChain 10(dti) 26 - 291: 6(int) Load 290 - 292: 82(ptr) AccessChain 24(data) 25 291 79 - 293: 15(ivec4) Load 292 - 294: 113(ivec3) VectorShuffle 293 293 0 1 2 - 295: 113(ivec3) GroupNonUniformBroadcastFirst 36 294 - 296: 91(ptr) AccessChain 24(data) 25 289 79 26 - 297: 14(int) CompositeExtract 295 0 - Store 296 297 - 298: 91(ptr) AccessChain 24(data) 25 289 79 59 - 299: 14(int) CompositeExtract 295 1 - Store 298 299 - 300: 91(ptr) AccessChain 24(data) 25 289 79 74 - 301: 14(int) CompositeExtract 295 2 - Store 300 301 - 302: 27(ptr) AccessChain 10(dti) 26 - 303: 6(int) Load 302 - 304: 27(ptr) AccessChain 10(dti) 26 - 305: 6(int) Load 304 - 306: 129(ptr) AccessChain 24(data) 25 305 126 - 307: 17(fvec4) Load 306 - 308: 17(fvec4) GroupNonUniformBroadcastFirst 36 307 - 309: 129(ptr) AccessChain 24(data) 25 303 126 - Store 309 308 - 310: 27(ptr) AccessChain 10(dti) 26 - 311: 6(int) Load 310 - 312: 27(ptr) AccessChain 10(dti) 26 - 313: 6(int) Load 312 - 314: 138(ptr) AccessChain 24(data) 25 313 126 26 - 315: 16(float) Load 314 - 316: 16(float) GroupNonUniformBroadcastFirst 36 315 - 317: 138(ptr) AccessChain 24(data) 25 311 126 26 - Store 317 316 - 318: 27(ptr) AccessChain 10(dti) 26 - 319: 6(int) Load 318 - 320: 27(ptr) AccessChain 10(dti) 26 - 321: 6(int) Load 320 - 322: 129(ptr) AccessChain 24(data) 25 321 126 - 323: 17(fvec4) Load 322 - 324: 147(fvec2) VectorShuffle 323 323 0 1 - 325: 147(fvec2) GroupNonUniformBroadcastFirst 36 324 - 326: 138(ptr) AccessChain 24(data) 25 319 126 26 - 327: 16(float) CompositeExtract 325 0 - Store 326 327 - 328: 138(ptr) AccessChain 24(data) 25 319 126 59 - 329: 16(float) CompositeExtract 325 1 - Store 328 329 - 330: 27(ptr) AccessChain 10(dti) 26 - 331: 6(int) Load 330 - 332: 27(ptr) AccessChain 10(dti) 26 - 333: 6(int) Load 332 - 334: 129(ptr) AccessChain 24(data) 25 333 126 - 335: 17(fvec4) Load 334 - 336: 160(fvec3) VectorShuffle 335 335 0 1 2 - 337: 160(fvec3) GroupNonUniformBroadcastFirst 36 336 - 338: 138(ptr) AccessChain 24(data) 25 331 126 26 - 339: 16(float) CompositeExtract 337 0 - Store 338 339 - 340: 138(ptr) AccessChain 24(data) 25 331 126 59 - 341: 16(float) CompositeExtract 337 1 - Store 340 341 - 342: 138(ptr) AccessChain 24(data) 25 331 126 74 - 343: 16(float) CompositeExtract 337 2 - Store 342 343 - 344: 27(ptr) AccessChain 10(dti) 26 - 345: 6(int) Load 344 - 346: 27(ptr) AccessChain 10(dti) 26 - 347: 6(int) Load 346 - 348: 176(ptr) AccessChain 24(data) 25 347 173 - 349: 19(f64vec4) Load 348 - 350: 19(f64vec4) GroupNonUniformBroadcastFirst 36 349 - 351: 176(ptr) AccessChain 24(data) 25 345 173 - Store 351 350 - 352: 27(ptr) AccessChain 10(dti) 26 - 353: 6(int) Load 352 - 354: 27(ptr) AccessChain 10(dti) 26 - 355: 6(int) Load 354 - 356: 185(ptr) AccessChain 24(data) 25 355 173 26 - 357:18(float64_t) Load 356 - 358:18(float64_t) GroupNonUniformBroadcastFirst 36 357 - 359: 185(ptr) AccessChain 24(data) 25 353 173 26 - Store 359 358 - 360: 27(ptr) AccessChain 10(dti) 26 - 361: 6(int) Load 360 - 362: 27(ptr) AccessChain 10(dti) 26 - 363: 6(int) Load 362 - 364: 176(ptr) AccessChain 24(data) 25 363 173 - 365: 19(f64vec4) Load 364 - 366:194(f64vec2) VectorShuffle 365 365 0 1 - 367:194(f64vec2) GroupNonUniformBroadcastFirst 36 366 - 368: 185(ptr) AccessChain 24(data) 25 361 173 26 - 369:18(float64_t) CompositeExtract 367 0 - Store 368 369 - 370: 185(ptr) AccessChain 24(data) 25 361 173 59 - 371:18(float64_t) CompositeExtract 367 1 - Store 370 371 - 372: 27(ptr) AccessChain 10(dti) 26 - 373: 6(int) Load 372 - 374: 27(ptr) AccessChain 10(dti) 26 - 375: 6(int) Load 374 - 376: 176(ptr) AccessChain 24(data) 25 375 173 - 377: 19(f64vec4) Load 376 - 378:207(f64vec3) VectorShuffle 377 377 0 1 2 - 379:207(f64vec3) GroupNonUniformBroadcastFirst 36 378 - 380: 185(ptr) AccessChain 24(data) 25 373 173 26 - 381:18(float64_t) CompositeExtract 379 0 - Store 380 381 - 382: 185(ptr) AccessChain 24(data) 25 373 173 59 - 383:18(float64_t) CompositeExtract 379 1 - Store 382 383 - 384: 185(ptr) AccessChain 24(data) 25 373 173 74 - 385:18(float64_t) CompositeExtract 379 2 - Store 384 385 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.waveprefix.comp.out b/deps/glslang/Test/baseResults/hlsl.waveprefix.comp.out deleted file mode 100644 index cc4737ed..00000000 --- a/deps/glslang/Test/baseResults/hlsl.waveprefix.comp.out +++ /dev/null @@ -1,2825 +0,0 @@ -hlsl.waveprefix.comp -Shader version: 500 -local_size = (32, 16, 1) -0:? Sequence -0:13 Function Definition: @CSMain(vu3; ( temp void) -0:13 Function Parameters: -0:13 'dti' ( in 3-component vector of uint) -0:? Sequence -0:14 move second child to first child ( temp 4-component vector of uint) -0:14 u: direct index for structure ( temp 4-component vector of uint) -0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:14 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:14 Constant: -0:14 0 (const uint) -0:14 direct index ( temp uint) -0:14 'dti' ( in 3-component vector of uint) -0:14 Constant: -0:14 0 (const int) -0:14 Constant: -0:14 0 (const int) -0:14 subgroupInclusiveAdd ( temp 4-component vector of uint) -0:14 u: direct index for structure ( temp 4-component vector of uint) -0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:14 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:14 Constant: -0:14 0 (const uint) -0:14 direct index ( temp uint) -0:14 'dti' ( in 3-component vector of uint) -0:14 Constant: -0:14 0 (const int) -0:14 Constant: -0:14 0 (const int) -0:15 move second child to first child ( temp uint) -0:15 direct index ( temp uint) -0:15 u: direct index for structure ( temp 4-component vector of uint) -0:15 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:15 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:15 Constant: -0:15 0 (const uint) -0:15 direct index ( temp uint) -0:15 'dti' ( in 3-component vector of uint) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0 (const int) -0:15 subgroupInclusiveAdd ( temp uint) -0:15 direct index ( temp uint) -0:15 u: direct index for structure ( temp 4-component vector of uint) -0:15 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:15 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:15 Constant: -0:15 0 (const uint) -0:15 direct index ( temp uint) -0:15 'dti' ( in 3-component vector of uint) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0 (const int) -0:16 move second child to first child ( temp 2-component vector of uint) -0:16 vector swizzle ( temp 2-component vector of uint) -0:16 u: direct index for structure ( temp 4-component vector of uint) -0:16 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:16 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:16 Constant: -0:16 0 (const uint) -0:16 direct index ( temp uint) -0:16 'dti' ( in 3-component vector of uint) -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 0 (const int) -0:16 Sequence -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 1 (const int) -0:16 subgroupInclusiveAdd ( temp 2-component vector of uint) -0:16 vector swizzle ( temp 2-component vector of uint) -0:16 u: direct index for structure ( temp 4-component vector of uint) -0:16 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:16 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:16 Constant: -0:16 0 (const uint) -0:16 direct index ( temp uint) -0:16 'dti' ( in 3-component vector of uint) -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 0 (const int) -0:16 Sequence -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 1 (const int) -0:17 move second child to first child ( temp 3-component vector of uint) -0:17 vector swizzle ( temp 3-component vector of uint) -0:17 u: direct index for structure ( temp 4-component vector of uint) -0:17 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:17 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:17 Constant: -0:17 0 (const uint) -0:17 direct index ( temp uint) -0:17 'dti' ( in 3-component vector of uint) -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 0 (const int) -0:17 Sequence -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 1 (const int) -0:17 Constant: -0:17 2 (const int) -0:17 subgroupInclusiveAdd ( temp 3-component vector of uint) -0:17 vector swizzle ( temp 3-component vector of uint) -0:17 u: direct index for structure ( temp 4-component vector of uint) -0:17 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:17 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:17 Constant: -0:17 0 (const uint) -0:17 direct index ( temp uint) -0:17 'dti' ( in 3-component vector of uint) -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 0 (const int) -0:17 Sequence -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 1 (const int) -0:17 Constant: -0:17 2 (const int) -0:19 move second child to first child ( temp 4-component vector of int) -0:19 i: direct index for structure ( temp 4-component vector of int) -0:19 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:19 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:19 Constant: -0:19 0 (const uint) -0:19 direct index ( temp uint) -0:19 'dti' ( in 3-component vector of uint) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const int) -0:19 subgroupInclusiveAdd ( temp 4-component vector of int) -0:19 i: direct index for structure ( temp 4-component vector of int) -0:19 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:19 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:19 Constant: -0:19 0 (const uint) -0:19 direct index ( temp uint) -0:19 'dti' ( in 3-component vector of uint) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const int) -0:20 move second child to first child ( temp int) -0:20 direct index ( temp int) -0:20 i: direct index for structure ( temp 4-component vector of int) -0:20 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:20 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:20 Constant: -0:20 0 (const uint) -0:20 direct index ( temp uint) -0:20 'dti' ( in 3-component vector of uint) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 subgroupInclusiveAdd ( temp int) -0:20 direct index ( temp int) -0:20 i: direct index for structure ( temp 4-component vector of int) -0:20 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:20 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:20 Constant: -0:20 0 (const uint) -0:20 direct index ( temp uint) -0:20 'dti' ( in 3-component vector of uint) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 0 (const int) -0:21 move second child to first child ( temp 2-component vector of int) -0:21 vector swizzle ( temp 2-component vector of int) -0:21 i: direct index for structure ( temp 4-component vector of int) -0:21 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:21 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:21 Constant: -0:21 0 (const uint) -0:21 direct index ( temp uint) -0:21 'dti' ( in 3-component vector of uint) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 subgroupInclusiveAdd ( temp 2-component vector of int) -0:21 vector swizzle ( temp 2-component vector of int) -0:21 i: direct index for structure ( temp 4-component vector of int) -0:21 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:21 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:21 Constant: -0:21 0 (const uint) -0:21 direct index ( temp uint) -0:21 'dti' ( in 3-component vector of uint) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:22 move second child to first child ( temp 3-component vector of int) -0:22 vector swizzle ( temp 3-component vector of int) -0:22 i: direct index for structure ( temp 4-component vector of int) -0:22 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:22 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:22 Constant: -0:22 0 (const uint) -0:22 direct index ( temp uint) -0:22 'dti' ( in 3-component vector of uint) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 Sequence -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 Constant: -0:22 2 (const int) -0:22 subgroupInclusiveAdd ( temp 3-component vector of int) -0:22 vector swizzle ( temp 3-component vector of int) -0:22 i: direct index for structure ( temp 4-component vector of int) -0:22 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:22 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:22 Constant: -0:22 0 (const uint) -0:22 direct index ( temp uint) -0:22 'dti' ( in 3-component vector of uint) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 Sequence -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 Constant: -0:22 2 (const int) -0:24 move second child to first child ( temp 4-component vector of float) -0:24 f: direct index for structure ( temp 4-component vector of float) -0:24 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:24 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:24 Constant: -0:24 0 (const uint) -0:24 direct index ( temp uint) -0:24 'dti' ( in 3-component vector of uint) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 2 (const int) -0:24 subgroupInclusiveAdd ( temp 4-component vector of float) -0:24 f: direct index for structure ( temp 4-component vector of float) -0:24 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:24 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:24 Constant: -0:24 0 (const uint) -0:24 direct index ( temp uint) -0:24 'dti' ( in 3-component vector of uint) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 2 (const int) -0:25 move second child to first child ( temp float) -0:25 direct index ( temp float) -0:25 f: direct index for structure ( temp 4-component vector of float) -0:25 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:25 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:25 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:25 Constant: -0:25 0 (const uint) -0:25 direct index ( temp uint) -0:25 'dti' ( in 3-component vector of uint) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 Constant: -0:25 0 (const int) -0:25 subgroupInclusiveAdd ( temp float) -0:25 direct index ( temp float) -0:25 f: direct index for structure ( temp 4-component vector of float) -0:25 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:25 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:25 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:25 Constant: -0:25 0 (const uint) -0:25 direct index ( temp uint) -0:25 'dti' ( in 3-component vector of uint) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 Constant: -0:25 0 (const int) -0:26 move second child to first child ( temp 2-component vector of float) -0:26 vector swizzle ( temp 2-component vector of float) -0:26 f: direct index for structure ( temp 4-component vector of float) -0:26 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:26 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:26 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:26 Constant: -0:26 0 (const uint) -0:26 direct index ( temp uint) -0:26 'dti' ( in 3-component vector of uint) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 subgroupInclusiveAdd ( temp 2-component vector of float) -0:26 vector swizzle ( temp 2-component vector of float) -0:26 f: direct index for structure ( temp 4-component vector of float) -0:26 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:26 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:26 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:26 Constant: -0:26 0 (const uint) -0:26 direct index ( temp uint) -0:26 'dti' ( in 3-component vector of uint) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:27 move second child to first child ( temp 3-component vector of float) -0:27 vector swizzle ( temp 3-component vector of float) -0:27 f: direct index for structure ( temp 4-component vector of float) -0:27 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:27 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:27 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:27 Constant: -0:27 0 (const uint) -0:27 direct index ( temp uint) -0:27 'dti' ( in 3-component vector of uint) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 2 (const int) -0:27 Sequence -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Constant: -0:27 2 (const int) -0:27 subgroupInclusiveAdd ( temp 3-component vector of float) -0:27 vector swizzle ( temp 3-component vector of float) -0:27 f: direct index for structure ( temp 4-component vector of float) -0:27 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:27 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:27 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:27 Constant: -0:27 0 (const uint) -0:27 direct index ( temp uint) -0:27 'dti' ( in 3-component vector of uint) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 2 (const int) -0:27 Sequence -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Constant: -0:27 2 (const int) -0:29 move second child to first child ( temp 4-component vector of double) -0:29 d: direct index for structure ( temp 4-component vector of double) -0:29 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:29 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:29 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:29 Constant: -0:29 0 (const uint) -0:29 direct index ( temp uint) -0:29 'dti' ( in 3-component vector of uint) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 3 (const int) -0:29 subgroupInclusiveAdd ( temp 4-component vector of double) -0:29 d: direct index for structure ( temp 4-component vector of double) -0:29 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:29 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:29 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:29 Constant: -0:29 0 (const uint) -0:29 direct index ( temp uint) -0:29 'dti' ( in 3-component vector of uint) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 3 (const int) -0:30 move second child to first child ( temp double) -0:30 direct index ( temp double) -0:30 d: direct index for structure ( temp 4-component vector of double) -0:30 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:30 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:30 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:30 Constant: -0:30 0 (const uint) -0:30 direct index ( temp uint) -0:30 'dti' ( in 3-component vector of uint) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 3 (const int) -0:30 Constant: -0:30 0 (const int) -0:30 subgroupInclusiveAdd ( temp double) -0:30 direct index ( temp double) -0:30 d: direct index for structure ( temp 4-component vector of double) -0:30 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:30 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:30 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:30 Constant: -0:30 0 (const uint) -0:30 direct index ( temp uint) -0:30 'dti' ( in 3-component vector of uint) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 3 (const int) -0:30 Constant: -0:30 0 (const int) -0:31 move second child to first child ( temp 2-component vector of double) -0:31 vector swizzle ( temp 2-component vector of double) -0:31 d: direct index for structure ( temp 4-component vector of double) -0:31 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:31 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:31 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:31 Constant: -0:31 0 (const uint) -0:31 direct index ( temp uint) -0:31 'dti' ( in 3-component vector of uint) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 3 (const int) -0:31 Sequence -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 subgroupInclusiveAdd ( temp 2-component vector of double) -0:31 vector swizzle ( temp 2-component vector of double) -0:31 d: direct index for structure ( temp 4-component vector of double) -0:31 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:31 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:31 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:31 Constant: -0:31 0 (const uint) -0:31 direct index ( temp uint) -0:31 'dti' ( in 3-component vector of uint) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 3 (const int) -0:31 Sequence -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:32 move second child to first child ( temp 3-component vector of double) -0:32 vector swizzle ( temp 3-component vector of double) -0:32 d: direct index for structure ( temp 4-component vector of double) -0:32 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:32 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:32 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:32 Constant: -0:32 0 (const uint) -0:32 direct index ( temp uint) -0:32 'dti' ( in 3-component vector of uint) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 3 (const int) -0:32 Sequence -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 1 (const int) -0:32 Constant: -0:32 2 (const int) -0:32 subgroupInclusiveAdd ( temp 3-component vector of double) -0:32 vector swizzle ( temp 3-component vector of double) -0:32 d: direct index for structure ( temp 4-component vector of double) -0:32 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:32 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:32 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:32 Constant: -0:32 0 (const uint) -0:32 direct index ( temp uint) -0:32 'dti' ( in 3-component vector of uint) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 3 (const int) -0:32 Sequence -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 1 (const int) -0:32 Constant: -0:32 2 (const int) -0:34 move second child to first child ( temp 4-component vector of uint) -0:34 u: direct index for structure ( temp 4-component vector of uint) -0:34 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:34 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:34 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:34 Constant: -0:34 0 (const uint) -0:34 direct index ( temp uint) -0:34 'dti' ( in 3-component vector of uint) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 subgroupInclusiveMul ( temp 4-component vector of uint) -0:34 u: direct index for structure ( temp 4-component vector of uint) -0:34 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:34 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:34 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:34 Constant: -0:34 0 (const uint) -0:34 direct index ( temp uint) -0:34 'dti' ( in 3-component vector of uint) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 0 (const int) -0:35 move second child to first child ( temp uint) -0:35 direct index ( temp uint) -0:35 u: direct index for structure ( temp 4-component vector of uint) -0:35 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:35 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:35 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:35 Constant: -0:35 0 (const uint) -0:35 direct index ( temp uint) -0:35 'dti' ( in 3-component vector of uint) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 subgroupInclusiveMul ( temp uint) -0:35 direct index ( temp uint) -0:35 u: direct index for structure ( temp 4-component vector of uint) -0:35 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:35 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:35 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:35 Constant: -0:35 0 (const uint) -0:35 direct index ( temp uint) -0:35 'dti' ( in 3-component vector of uint) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 0 (const int) -0:36 move second child to first child ( temp 2-component vector of uint) -0:36 vector swizzle ( temp 2-component vector of uint) -0:36 u: direct index for structure ( temp 4-component vector of uint) -0:36 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:36 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:36 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:36 Constant: -0:36 0 (const uint) -0:36 direct index ( temp uint) -0:36 'dti' ( in 3-component vector of uint) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 subgroupInclusiveMul ( temp 2-component vector of uint) -0:36 vector swizzle ( temp 2-component vector of uint) -0:36 u: direct index for structure ( temp 4-component vector of uint) -0:36 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:36 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:36 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:36 Constant: -0:36 0 (const uint) -0:36 direct index ( temp uint) -0:36 'dti' ( in 3-component vector of uint) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:37 move second child to first child ( temp 3-component vector of uint) -0:37 vector swizzle ( temp 3-component vector of uint) -0:37 u: direct index for structure ( temp 4-component vector of uint) -0:37 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:37 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:37 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:37 Constant: -0:37 0 (const uint) -0:37 direct index ( temp uint) -0:37 'dti' ( in 3-component vector of uint) -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 0 (const int) -0:37 Sequence -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 1 (const int) -0:37 Constant: -0:37 2 (const int) -0:37 subgroupInclusiveMul ( temp 3-component vector of uint) -0:37 vector swizzle ( temp 3-component vector of uint) -0:37 u: direct index for structure ( temp 4-component vector of uint) -0:37 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:37 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:37 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:37 Constant: -0:37 0 (const uint) -0:37 direct index ( temp uint) -0:37 'dti' ( in 3-component vector of uint) -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 0 (const int) -0:37 Sequence -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 1 (const int) -0:37 Constant: -0:37 2 (const int) -0:39 move second child to first child ( temp 4-component vector of int) -0:39 i: direct index for structure ( temp 4-component vector of int) -0:39 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:39 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:39 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:39 Constant: -0:39 0 (const uint) -0:39 direct index ( temp uint) -0:39 'dti' ( in 3-component vector of uint) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 subgroupInclusiveMul ( temp 4-component vector of int) -0:39 i: direct index for structure ( temp 4-component vector of int) -0:39 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:39 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:39 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:39 Constant: -0:39 0 (const uint) -0:39 direct index ( temp uint) -0:39 'dti' ( in 3-component vector of uint) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:40 move second child to first child ( temp int) -0:40 direct index ( temp int) -0:40 i: direct index for structure ( temp 4-component vector of int) -0:40 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:40 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:40 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:40 Constant: -0:40 0 (const uint) -0:40 direct index ( temp uint) -0:40 'dti' ( in 3-component vector of uint) -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 subgroupInclusiveMul ( temp int) -0:40 direct index ( temp int) -0:40 i: direct index for structure ( temp 4-component vector of int) -0:40 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:40 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:40 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:40 Constant: -0:40 0 (const uint) -0:40 direct index ( temp uint) -0:40 'dti' ( in 3-component vector of uint) -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 0 (const int) -0:41 move second child to first child ( temp 2-component vector of int) -0:41 vector swizzle ( temp 2-component vector of int) -0:41 i: direct index for structure ( temp 4-component vector of int) -0:41 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:41 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:41 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:41 Constant: -0:41 0 (const uint) -0:41 direct index ( temp uint) -0:41 'dti' ( in 3-component vector of uint) -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 subgroupInclusiveMul ( temp 2-component vector of int) -0:41 vector swizzle ( temp 2-component vector of int) -0:41 i: direct index for structure ( temp 4-component vector of int) -0:41 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:41 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:41 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:41 Constant: -0:41 0 (const uint) -0:41 direct index ( temp uint) -0:41 'dti' ( in 3-component vector of uint) -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:42 move second child to first child ( temp 3-component vector of int) -0:42 vector swizzle ( temp 3-component vector of int) -0:42 i: direct index for structure ( temp 4-component vector of int) -0:42 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:42 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:42 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:42 Constant: -0:42 0 (const uint) -0:42 direct index ( temp uint) -0:42 'dti' ( in 3-component vector of uint) -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Sequence -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 2 (const int) -0:42 subgroupInclusiveMul ( temp 3-component vector of int) -0:42 vector swizzle ( temp 3-component vector of int) -0:42 i: direct index for structure ( temp 4-component vector of int) -0:42 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:42 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:42 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:42 Constant: -0:42 0 (const uint) -0:42 direct index ( temp uint) -0:42 'dti' ( in 3-component vector of uint) -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Sequence -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 2 (const int) -0:44 move second child to first child ( temp 4-component vector of float) -0:44 f: direct index for structure ( temp 4-component vector of float) -0:44 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:44 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:44 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:44 Constant: -0:44 0 (const uint) -0:44 direct index ( temp uint) -0:44 'dti' ( in 3-component vector of uint) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 2 (const int) -0:44 subgroupInclusiveMul ( temp 4-component vector of float) -0:44 f: direct index for structure ( temp 4-component vector of float) -0:44 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:44 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:44 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:44 Constant: -0:44 0 (const uint) -0:44 direct index ( temp uint) -0:44 'dti' ( in 3-component vector of uint) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 2 (const int) -0:45 move second child to first child ( temp float) -0:45 direct index ( temp float) -0:45 f: direct index for structure ( temp 4-component vector of float) -0:45 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:45 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:45 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:45 Constant: -0:45 0 (const uint) -0:45 direct index ( temp uint) -0:45 'dti' ( in 3-component vector of uint) -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 Constant: -0:45 0 (const int) -0:45 subgroupInclusiveMul ( temp float) -0:45 direct index ( temp float) -0:45 f: direct index for structure ( temp 4-component vector of float) -0:45 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:45 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:45 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:45 Constant: -0:45 0 (const uint) -0:45 direct index ( temp uint) -0:45 'dti' ( in 3-component vector of uint) -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 Constant: -0:45 0 (const int) -0:46 move second child to first child ( temp 2-component vector of float) -0:46 vector swizzle ( temp 2-component vector of float) -0:46 f: direct index for structure ( temp 4-component vector of float) -0:46 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:46 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:46 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:46 Constant: -0:46 0 (const uint) -0:46 direct index ( temp uint) -0:46 'dti' ( in 3-component vector of uint) -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 subgroupInclusiveMul ( temp 2-component vector of float) -0:46 vector swizzle ( temp 2-component vector of float) -0:46 f: direct index for structure ( temp 4-component vector of float) -0:46 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:46 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:46 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:46 Constant: -0:46 0 (const uint) -0:46 direct index ( temp uint) -0:46 'dti' ( in 3-component vector of uint) -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:47 move second child to first child ( temp 3-component vector of float) -0:47 vector swizzle ( temp 3-component vector of float) -0:47 f: direct index for structure ( temp 4-component vector of float) -0:47 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:47 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:47 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:47 Constant: -0:47 0 (const uint) -0:47 direct index ( temp uint) -0:47 'dti' ( in 3-component vector of uint) -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 2 (const int) -0:47 Sequence -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 1 (const int) -0:47 Constant: -0:47 2 (const int) -0:47 subgroupInclusiveMul ( temp 3-component vector of float) -0:47 vector swizzle ( temp 3-component vector of float) -0:47 f: direct index for structure ( temp 4-component vector of float) -0:47 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:47 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:47 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:47 Constant: -0:47 0 (const uint) -0:47 direct index ( temp uint) -0:47 'dti' ( in 3-component vector of uint) -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 2 (const int) -0:47 Sequence -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 1 (const int) -0:47 Constant: -0:47 2 (const int) -0:49 move second child to first child ( temp 4-component vector of double) -0:49 d: direct index for structure ( temp 4-component vector of double) -0:49 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:49 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:49 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:49 Constant: -0:49 0 (const uint) -0:49 direct index ( temp uint) -0:49 'dti' ( in 3-component vector of uint) -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 3 (const int) -0:49 subgroupInclusiveMul ( temp 4-component vector of double) -0:49 d: direct index for structure ( temp 4-component vector of double) -0:49 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:49 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:49 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:49 Constant: -0:49 0 (const uint) -0:49 direct index ( temp uint) -0:49 'dti' ( in 3-component vector of uint) -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 3 (const int) -0:50 move second child to first child ( temp double) -0:50 direct index ( temp double) -0:50 d: direct index for structure ( temp 4-component vector of double) -0:50 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:50 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:50 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:50 Constant: -0:50 0 (const uint) -0:50 direct index ( temp uint) -0:50 'dti' ( in 3-component vector of uint) -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 3 (const int) -0:50 Constant: -0:50 0 (const int) -0:50 subgroupInclusiveMul ( temp double) -0:50 direct index ( temp double) -0:50 d: direct index for structure ( temp 4-component vector of double) -0:50 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:50 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:50 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:50 Constant: -0:50 0 (const uint) -0:50 direct index ( temp uint) -0:50 'dti' ( in 3-component vector of uint) -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 3 (const int) -0:50 Constant: -0:50 0 (const int) -0:51 move second child to first child ( temp 2-component vector of double) -0:51 vector swizzle ( temp 2-component vector of double) -0:51 d: direct index for structure ( temp 4-component vector of double) -0:51 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:51 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:51 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:51 Constant: -0:51 0 (const uint) -0:51 direct index ( temp uint) -0:51 'dti' ( in 3-component vector of uint) -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 3 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 subgroupInclusiveMul ( temp 2-component vector of double) -0:51 vector swizzle ( temp 2-component vector of double) -0:51 d: direct index for structure ( temp 4-component vector of double) -0:51 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:51 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:51 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:51 Constant: -0:51 0 (const uint) -0:51 direct index ( temp uint) -0:51 'dti' ( in 3-component vector of uint) -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 3 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:52 move second child to first child ( temp 3-component vector of double) -0:52 vector swizzle ( temp 3-component vector of double) -0:52 d: direct index for structure ( temp 4-component vector of double) -0:52 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:52 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:52 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:52 Constant: -0:52 0 (const uint) -0:52 direct index ( temp uint) -0:52 'dti' ( in 3-component vector of uint) -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 3 (const int) -0:52 Sequence -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 1 (const int) -0:52 Constant: -0:52 2 (const int) -0:52 subgroupInclusiveMul ( temp 3-component vector of double) -0:52 vector swizzle ( temp 3-component vector of double) -0:52 d: direct index for structure ( temp 4-component vector of double) -0:52 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:52 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:52 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:52 Constant: -0:52 0 (const uint) -0:52 direct index ( temp uint) -0:52 'dti' ( in 3-component vector of uint) -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 3 (const int) -0:52 Sequence -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 1 (const int) -0:52 Constant: -0:52 2 (const int) -0:54 move second child to first child ( temp uint) -0:54 direct index ( temp uint) -0:54 u: direct index for structure ( temp 4-component vector of uint) -0:54 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:54 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:54 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:54 Constant: -0:54 0 (const uint) -0:54 direct index ( temp uint) -0:54 'dti' ( in 3-component vector of uint) -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 subgroupBallotInclusiveBitCount ( temp uint) -0:54 subgroupBallot ( temp 4-component vector of uint) -0:54 Compare Equal ( temp bool) -0:54 direct index ( temp uint) -0:54 u: direct index for structure ( temp 4-component vector of uint) -0:54 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:54 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:54 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:54 Constant: -0:54 0 (const uint) -0:54 direct index ( temp uint) -0:54 'dti' ( in 3-component vector of uint) -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 0 (const uint) -0:13 Function Definition: CSMain( ( temp void) -0:13 Function Parameters: -0:? Sequence -0:13 move second child to first child ( temp 3-component vector of uint) -0:? 'dti' ( temp 3-component vector of uint) -0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) -0:13 Function Call: @CSMain(vu3; ( temp void) -0:? 'dti' ( temp 3-component vector of uint) -0:? Linker Objects -0:? 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) - - -Linked compute stage: - - -Shader version: 500 -local_size = (32, 16, 1) -0:? Sequence -0:13 Function Definition: @CSMain(vu3; ( temp void) -0:13 Function Parameters: -0:13 'dti' ( in 3-component vector of uint) -0:? Sequence -0:14 move second child to first child ( temp 4-component vector of uint) -0:14 u: direct index for structure ( temp 4-component vector of uint) -0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:14 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:14 Constant: -0:14 0 (const uint) -0:14 direct index ( temp uint) -0:14 'dti' ( in 3-component vector of uint) -0:14 Constant: -0:14 0 (const int) -0:14 Constant: -0:14 0 (const int) -0:14 subgroupInclusiveAdd ( temp 4-component vector of uint) -0:14 u: direct index for structure ( temp 4-component vector of uint) -0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:14 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:14 Constant: -0:14 0 (const uint) -0:14 direct index ( temp uint) -0:14 'dti' ( in 3-component vector of uint) -0:14 Constant: -0:14 0 (const int) -0:14 Constant: -0:14 0 (const int) -0:15 move second child to first child ( temp uint) -0:15 direct index ( temp uint) -0:15 u: direct index for structure ( temp 4-component vector of uint) -0:15 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:15 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:15 Constant: -0:15 0 (const uint) -0:15 direct index ( temp uint) -0:15 'dti' ( in 3-component vector of uint) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0 (const int) -0:15 subgroupInclusiveAdd ( temp uint) -0:15 direct index ( temp uint) -0:15 u: direct index for structure ( temp 4-component vector of uint) -0:15 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:15 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:15 Constant: -0:15 0 (const uint) -0:15 direct index ( temp uint) -0:15 'dti' ( in 3-component vector of uint) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0 (const int) -0:16 move second child to first child ( temp 2-component vector of uint) -0:16 vector swizzle ( temp 2-component vector of uint) -0:16 u: direct index for structure ( temp 4-component vector of uint) -0:16 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:16 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:16 Constant: -0:16 0 (const uint) -0:16 direct index ( temp uint) -0:16 'dti' ( in 3-component vector of uint) -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 0 (const int) -0:16 Sequence -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 1 (const int) -0:16 subgroupInclusiveAdd ( temp 2-component vector of uint) -0:16 vector swizzle ( temp 2-component vector of uint) -0:16 u: direct index for structure ( temp 4-component vector of uint) -0:16 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:16 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:16 Constant: -0:16 0 (const uint) -0:16 direct index ( temp uint) -0:16 'dti' ( in 3-component vector of uint) -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 0 (const int) -0:16 Sequence -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 1 (const int) -0:17 move second child to first child ( temp 3-component vector of uint) -0:17 vector swizzle ( temp 3-component vector of uint) -0:17 u: direct index for structure ( temp 4-component vector of uint) -0:17 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:17 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:17 Constant: -0:17 0 (const uint) -0:17 direct index ( temp uint) -0:17 'dti' ( in 3-component vector of uint) -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 0 (const int) -0:17 Sequence -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 1 (const int) -0:17 Constant: -0:17 2 (const int) -0:17 subgroupInclusiveAdd ( temp 3-component vector of uint) -0:17 vector swizzle ( temp 3-component vector of uint) -0:17 u: direct index for structure ( temp 4-component vector of uint) -0:17 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:17 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:17 Constant: -0:17 0 (const uint) -0:17 direct index ( temp uint) -0:17 'dti' ( in 3-component vector of uint) -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 0 (const int) -0:17 Sequence -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 1 (const int) -0:17 Constant: -0:17 2 (const int) -0:19 move second child to first child ( temp 4-component vector of int) -0:19 i: direct index for structure ( temp 4-component vector of int) -0:19 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:19 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:19 Constant: -0:19 0 (const uint) -0:19 direct index ( temp uint) -0:19 'dti' ( in 3-component vector of uint) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const int) -0:19 subgroupInclusiveAdd ( temp 4-component vector of int) -0:19 i: direct index for structure ( temp 4-component vector of int) -0:19 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:19 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:19 Constant: -0:19 0 (const uint) -0:19 direct index ( temp uint) -0:19 'dti' ( in 3-component vector of uint) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const int) -0:20 move second child to first child ( temp int) -0:20 direct index ( temp int) -0:20 i: direct index for structure ( temp 4-component vector of int) -0:20 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:20 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:20 Constant: -0:20 0 (const uint) -0:20 direct index ( temp uint) -0:20 'dti' ( in 3-component vector of uint) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 subgroupInclusiveAdd ( temp int) -0:20 direct index ( temp int) -0:20 i: direct index for structure ( temp 4-component vector of int) -0:20 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:20 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:20 Constant: -0:20 0 (const uint) -0:20 direct index ( temp uint) -0:20 'dti' ( in 3-component vector of uint) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 0 (const int) -0:21 move second child to first child ( temp 2-component vector of int) -0:21 vector swizzle ( temp 2-component vector of int) -0:21 i: direct index for structure ( temp 4-component vector of int) -0:21 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:21 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:21 Constant: -0:21 0 (const uint) -0:21 direct index ( temp uint) -0:21 'dti' ( in 3-component vector of uint) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 subgroupInclusiveAdd ( temp 2-component vector of int) -0:21 vector swizzle ( temp 2-component vector of int) -0:21 i: direct index for structure ( temp 4-component vector of int) -0:21 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:21 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:21 Constant: -0:21 0 (const uint) -0:21 direct index ( temp uint) -0:21 'dti' ( in 3-component vector of uint) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:22 move second child to first child ( temp 3-component vector of int) -0:22 vector swizzle ( temp 3-component vector of int) -0:22 i: direct index for structure ( temp 4-component vector of int) -0:22 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:22 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:22 Constant: -0:22 0 (const uint) -0:22 direct index ( temp uint) -0:22 'dti' ( in 3-component vector of uint) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 Sequence -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 Constant: -0:22 2 (const int) -0:22 subgroupInclusiveAdd ( temp 3-component vector of int) -0:22 vector swizzle ( temp 3-component vector of int) -0:22 i: direct index for structure ( temp 4-component vector of int) -0:22 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:22 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:22 Constant: -0:22 0 (const uint) -0:22 direct index ( temp uint) -0:22 'dti' ( in 3-component vector of uint) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 Sequence -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 Constant: -0:22 2 (const int) -0:24 move second child to first child ( temp 4-component vector of float) -0:24 f: direct index for structure ( temp 4-component vector of float) -0:24 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:24 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:24 Constant: -0:24 0 (const uint) -0:24 direct index ( temp uint) -0:24 'dti' ( in 3-component vector of uint) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 2 (const int) -0:24 subgroupInclusiveAdd ( temp 4-component vector of float) -0:24 f: direct index for structure ( temp 4-component vector of float) -0:24 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:24 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:24 Constant: -0:24 0 (const uint) -0:24 direct index ( temp uint) -0:24 'dti' ( in 3-component vector of uint) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 2 (const int) -0:25 move second child to first child ( temp float) -0:25 direct index ( temp float) -0:25 f: direct index for structure ( temp 4-component vector of float) -0:25 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:25 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:25 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:25 Constant: -0:25 0 (const uint) -0:25 direct index ( temp uint) -0:25 'dti' ( in 3-component vector of uint) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 Constant: -0:25 0 (const int) -0:25 subgroupInclusiveAdd ( temp float) -0:25 direct index ( temp float) -0:25 f: direct index for structure ( temp 4-component vector of float) -0:25 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:25 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:25 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:25 Constant: -0:25 0 (const uint) -0:25 direct index ( temp uint) -0:25 'dti' ( in 3-component vector of uint) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 Constant: -0:25 0 (const int) -0:26 move second child to first child ( temp 2-component vector of float) -0:26 vector swizzle ( temp 2-component vector of float) -0:26 f: direct index for structure ( temp 4-component vector of float) -0:26 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:26 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:26 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:26 Constant: -0:26 0 (const uint) -0:26 direct index ( temp uint) -0:26 'dti' ( in 3-component vector of uint) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 subgroupInclusiveAdd ( temp 2-component vector of float) -0:26 vector swizzle ( temp 2-component vector of float) -0:26 f: direct index for structure ( temp 4-component vector of float) -0:26 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:26 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:26 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:26 Constant: -0:26 0 (const uint) -0:26 direct index ( temp uint) -0:26 'dti' ( in 3-component vector of uint) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:27 move second child to first child ( temp 3-component vector of float) -0:27 vector swizzle ( temp 3-component vector of float) -0:27 f: direct index for structure ( temp 4-component vector of float) -0:27 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:27 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:27 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:27 Constant: -0:27 0 (const uint) -0:27 direct index ( temp uint) -0:27 'dti' ( in 3-component vector of uint) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 2 (const int) -0:27 Sequence -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Constant: -0:27 2 (const int) -0:27 subgroupInclusiveAdd ( temp 3-component vector of float) -0:27 vector swizzle ( temp 3-component vector of float) -0:27 f: direct index for structure ( temp 4-component vector of float) -0:27 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:27 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:27 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:27 Constant: -0:27 0 (const uint) -0:27 direct index ( temp uint) -0:27 'dti' ( in 3-component vector of uint) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 2 (const int) -0:27 Sequence -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Constant: -0:27 2 (const int) -0:29 move second child to first child ( temp 4-component vector of double) -0:29 d: direct index for structure ( temp 4-component vector of double) -0:29 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:29 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:29 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:29 Constant: -0:29 0 (const uint) -0:29 direct index ( temp uint) -0:29 'dti' ( in 3-component vector of uint) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 3 (const int) -0:29 subgroupInclusiveAdd ( temp 4-component vector of double) -0:29 d: direct index for structure ( temp 4-component vector of double) -0:29 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:29 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:29 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:29 Constant: -0:29 0 (const uint) -0:29 direct index ( temp uint) -0:29 'dti' ( in 3-component vector of uint) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 3 (const int) -0:30 move second child to first child ( temp double) -0:30 direct index ( temp double) -0:30 d: direct index for structure ( temp 4-component vector of double) -0:30 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:30 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:30 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:30 Constant: -0:30 0 (const uint) -0:30 direct index ( temp uint) -0:30 'dti' ( in 3-component vector of uint) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 3 (const int) -0:30 Constant: -0:30 0 (const int) -0:30 subgroupInclusiveAdd ( temp double) -0:30 direct index ( temp double) -0:30 d: direct index for structure ( temp 4-component vector of double) -0:30 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:30 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:30 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:30 Constant: -0:30 0 (const uint) -0:30 direct index ( temp uint) -0:30 'dti' ( in 3-component vector of uint) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 3 (const int) -0:30 Constant: -0:30 0 (const int) -0:31 move second child to first child ( temp 2-component vector of double) -0:31 vector swizzle ( temp 2-component vector of double) -0:31 d: direct index for structure ( temp 4-component vector of double) -0:31 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:31 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:31 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:31 Constant: -0:31 0 (const uint) -0:31 direct index ( temp uint) -0:31 'dti' ( in 3-component vector of uint) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 3 (const int) -0:31 Sequence -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 subgroupInclusiveAdd ( temp 2-component vector of double) -0:31 vector swizzle ( temp 2-component vector of double) -0:31 d: direct index for structure ( temp 4-component vector of double) -0:31 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:31 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:31 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:31 Constant: -0:31 0 (const uint) -0:31 direct index ( temp uint) -0:31 'dti' ( in 3-component vector of uint) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 3 (const int) -0:31 Sequence -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:32 move second child to first child ( temp 3-component vector of double) -0:32 vector swizzle ( temp 3-component vector of double) -0:32 d: direct index for structure ( temp 4-component vector of double) -0:32 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:32 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:32 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:32 Constant: -0:32 0 (const uint) -0:32 direct index ( temp uint) -0:32 'dti' ( in 3-component vector of uint) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 3 (const int) -0:32 Sequence -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 1 (const int) -0:32 Constant: -0:32 2 (const int) -0:32 subgroupInclusiveAdd ( temp 3-component vector of double) -0:32 vector swizzle ( temp 3-component vector of double) -0:32 d: direct index for structure ( temp 4-component vector of double) -0:32 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:32 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:32 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:32 Constant: -0:32 0 (const uint) -0:32 direct index ( temp uint) -0:32 'dti' ( in 3-component vector of uint) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 3 (const int) -0:32 Sequence -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 1 (const int) -0:32 Constant: -0:32 2 (const int) -0:34 move second child to first child ( temp 4-component vector of uint) -0:34 u: direct index for structure ( temp 4-component vector of uint) -0:34 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:34 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:34 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:34 Constant: -0:34 0 (const uint) -0:34 direct index ( temp uint) -0:34 'dti' ( in 3-component vector of uint) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 subgroupInclusiveMul ( temp 4-component vector of uint) -0:34 u: direct index for structure ( temp 4-component vector of uint) -0:34 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:34 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:34 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:34 Constant: -0:34 0 (const uint) -0:34 direct index ( temp uint) -0:34 'dti' ( in 3-component vector of uint) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 0 (const int) -0:35 move second child to first child ( temp uint) -0:35 direct index ( temp uint) -0:35 u: direct index for structure ( temp 4-component vector of uint) -0:35 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:35 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:35 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:35 Constant: -0:35 0 (const uint) -0:35 direct index ( temp uint) -0:35 'dti' ( in 3-component vector of uint) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 subgroupInclusiveMul ( temp uint) -0:35 direct index ( temp uint) -0:35 u: direct index for structure ( temp 4-component vector of uint) -0:35 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:35 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:35 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:35 Constant: -0:35 0 (const uint) -0:35 direct index ( temp uint) -0:35 'dti' ( in 3-component vector of uint) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 0 (const int) -0:36 move second child to first child ( temp 2-component vector of uint) -0:36 vector swizzle ( temp 2-component vector of uint) -0:36 u: direct index for structure ( temp 4-component vector of uint) -0:36 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:36 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:36 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:36 Constant: -0:36 0 (const uint) -0:36 direct index ( temp uint) -0:36 'dti' ( in 3-component vector of uint) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 subgroupInclusiveMul ( temp 2-component vector of uint) -0:36 vector swizzle ( temp 2-component vector of uint) -0:36 u: direct index for structure ( temp 4-component vector of uint) -0:36 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:36 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:36 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:36 Constant: -0:36 0 (const uint) -0:36 direct index ( temp uint) -0:36 'dti' ( in 3-component vector of uint) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:37 move second child to first child ( temp 3-component vector of uint) -0:37 vector swizzle ( temp 3-component vector of uint) -0:37 u: direct index for structure ( temp 4-component vector of uint) -0:37 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:37 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:37 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:37 Constant: -0:37 0 (const uint) -0:37 direct index ( temp uint) -0:37 'dti' ( in 3-component vector of uint) -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 0 (const int) -0:37 Sequence -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 1 (const int) -0:37 Constant: -0:37 2 (const int) -0:37 subgroupInclusiveMul ( temp 3-component vector of uint) -0:37 vector swizzle ( temp 3-component vector of uint) -0:37 u: direct index for structure ( temp 4-component vector of uint) -0:37 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:37 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:37 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:37 Constant: -0:37 0 (const uint) -0:37 direct index ( temp uint) -0:37 'dti' ( in 3-component vector of uint) -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 0 (const int) -0:37 Sequence -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 1 (const int) -0:37 Constant: -0:37 2 (const int) -0:39 move second child to first child ( temp 4-component vector of int) -0:39 i: direct index for structure ( temp 4-component vector of int) -0:39 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:39 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:39 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:39 Constant: -0:39 0 (const uint) -0:39 direct index ( temp uint) -0:39 'dti' ( in 3-component vector of uint) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 subgroupInclusiveMul ( temp 4-component vector of int) -0:39 i: direct index for structure ( temp 4-component vector of int) -0:39 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:39 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:39 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:39 Constant: -0:39 0 (const uint) -0:39 direct index ( temp uint) -0:39 'dti' ( in 3-component vector of uint) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:40 move second child to first child ( temp int) -0:40 direct index ( temp int) -0:40 i: direct index for structure ( temp 4-component vector of int) -0:40 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:40 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:40 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:40 Constant: -0:40 0 (const uint) -0:40 direct index ( temp uint) -0:40 'dti' ( in 3-component vector of uint) -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 subgroupInclusiveMul ( temp int) -0:40 direct index ( temp int) -0:40 i: direct index for structure ( temp 4-component vector of int) -0:40 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:40 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:40 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:40 Constant: -0:40 0 (const uint) -0:40 direct index ( temp uint) -0:40 'dti' ( in 3-component vector of uint) -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 0 (const int) -0:41 move second child to first child ( temp 2-component vector of int) -0:41 vector swizzle ( temp 2-component vector of int) -0:41 i: direct index for structure ( temp 4-component vector of int) -0:41 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:41 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:41 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:41 Constant: -0:41 0 (const uint) -0:41 direct index ( temp uint) -0:41 'dti' ( in 3-component vector of uint) -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 subgroupInclusiveMul ( temp 2-component vector of int) -0:41 vector swizzle ( temp 2-component vector of int) -0:41 i: direct index for structure ( temp 4-component vector of int) -0:41 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:41 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:41 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:41 Constant: -0:41 0 (const uint) -0:41 direct index ( temp uint) -0:41 'dti' ( in 3-component vector of uint) -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:42 move second child to first child ( temp 3-component vector of int) -0:42 vector swizzle ( temp 3-component vector of int) -0:42 i: direct index for structure ( temp 4-component vector of int) -0:42 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:42 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:42 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:42 Constant: -0:42 0 (const uint) -0:42 direct index ( temp uint) -0:42 'dti' ( in 3-component vector of uint) -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Sequence -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 2 (const int) -0:42 subgroupInclusiveMul ( temp 3-component vector of int) -0:42 vector swizzle ( temp 3-component vector of int) -0:42 i: direct index for structure ( temp 4-component vector of int) -0:42 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:42 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:42 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:42 Constant: -0:42 0 (const uint) -0:42 direct index ( temp uint) -0:42 'dti' ( in 3-component vector of uint) -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Sequence -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 2 (const int) -0:44 move second child to first child ( temp 4-component vector of float) -0:44 f: direct index for structure ( temp 4-component vector of float) -0:44 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:44 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:44 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:44 Constant: -0:44 0 (const uint) -0:44 direct index ( temp uint) -0:44 'dti' ( in 3-component vector of uint) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 2 (const int) -0:44 subgroupInclusiveMul ( temp 4-component vector of float) -0:44 f: direct index for structure ( temp 4-component vector of float) -0:44 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:44 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:44 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:44 Constant: -0:44 0 (const uint) -0:44 direct index ( temp uint) -0:44 'dti' ( in 3-component vector of uint) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 2 (const int) -0:45 move second child to first child ( temp float) -0:45 direct index ( temp float) -0:45 f: direct index for structure ( temp 4-component vector of float) -0:45 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:45 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:45 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:45 Constant: -0:45 0 (const uint) -0:45 direct index ( temp uint) -0:45 'dti' ( in 3-component vector of uint) -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 Constant: -0:45 0 (const int) -0:45 subgroupInclusiveMul ( temp float) -0:45 direct index ( temp float) -0:45 f: direct index for structure ( temp 4-component vector of float) -0:45 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:45 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:45 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:45 Constant: -0:45 0 (const uint) -0:45 direct index ( temp uint) -0:45 'dti' ( in 3-component vector of uint) -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 Constant: -0:45 0 (const int) -0:46 move second child to first child ( temp 2-component vector of float) -0:46 vector swizzle ( temp 2-component vector of float) -0:46 f: direct index for structure ( temp 4-component vector of float) -0:46 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:46 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:46 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:46 Constant: -0:46 0 (const uint) -0:46 direct index ( temp uint) -0:46 'dti' ( in 3-component vector of uint) -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 subgroupInclusiveMul ( temp 2-component vector of float) -0:46 vector swizzle ( temp 2-component vector of float) -0:46 f: direct index for structure ( temp 4-component vector of float) -0:46 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:46 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:46 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:46 Constant: -0:46 0 (const uint) -0:46 direct index ( temp uint) -0:46 'dti' ( in 3-component vector of uint) -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:47 move second child to first child ( temp 3-component vector of float) -0:47 vector swizzle ( temp 3-component vector of float) -0:47 f: direct index for structure ( temp 4-component vector of float) -0:47 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:47 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:47 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:47 Constant: -0:47 0 (const uint) -0:47 direct index ( temp uint) -0:47 'dti' ( in 3-component vector of uint) -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 2 (const int) -0:47 Sequence -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 1 (const int) -0:47 Constant: -0:47 2 (const int) -0:47 subgroupInclusiveMul ( temp 3-component vector of float) -0:47 vector swizzle ( temp 3-component vector of float) -0:47 f: direct index for structure ( temp 4-component vector of float) -0:47 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:47 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:47 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:47 Constant: -0:47 0 (const uint) -0:47 direct index ( temp uint) -0:47 'dti' ( in 3-component vector of uint) -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 2 (const int) -0:47 Sequence -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 1 (const int) -0:47 Constant: -0:47 2 (const int) -0:49 move second child to first child ( temp 4-component vector of double) -0:49 d: direct index for structure ( temp 4-component vector of double) -0:49 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:49 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:49 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:49 Constant: -0:49 0 (const uint) -0:49 direct index ( temp uint) -0:49 'dti' ( in 3-component vector of uint) -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 3 (const int) -0:49 subgroupInclusiveMul ( temp 4-component vector of double) -0:49 d: direct index for structure ( temp 4-component vector of double) -0:49 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:49 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:49 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:49 Constant: -0:49 0 (const uint) -0:49 direct index ( temp uint) -0:49 'dti' ( in 3-component vector of uint) -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 3 (const int) -0:50 move second child to first child ( temp double) -0:50 direct index ( temp double) -0:50 d: direct index for structure ( temp 4-component vector of double) -0:50 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:50 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:50 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:50 Constant: -0:50 0 (const uint) -0:50 direct index ( temp uint) -0:50 'dti' ( in 3-component vector of uint) -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 3 (const int) -0:50 Constant: -0:50 0 (const int) -0:50 subgroupInclusiveMul ( temp double) -0:50 direct index ( temp double) -0:50 d: direct index for structure ( temp 4-component vector of double) -0:50 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:50 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:50 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:50 Constant: -0:50 0 (const uint) -0:50 direct index ( temp uint) -0:50 'dti' ( in 3-component vector of uint) -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 3 (const int) -0:50 Constant: -0:50 0 (const int) -0:51 move second child to first child ( temp 2-component vector of double) -0:51 vector swizzle ( temp 2-component vector of double) -0:51 d: direct index for structure ( temp 4-component vector of double) -0:51 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:51 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:51 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:51 Constant: -0:51 0 (const uint) -0:51 direct index ( temp uint) -0:51 'dti' ( in 3-component vector of uint) -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 3 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 subgroupInclusiveMul ( temp 2-component vector of double) -0:51 vector swizzle ( temp 2-component vector of double) -0:51 d: direct index for structure ( temp 4-component vector of double) -0:51 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:51 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:51 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:51 Constant: -0:51 0 (const uint) -0:51 direct index ( temp uint) -0:51 'dti' ( in 3-component vector of uint) -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 3 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:52 move second child to first child ( temp 3-component vector of double) -0:52 vector swizzle ( temp 3-component vector of double) -0:52 d: direct index for structure ( temp 4-component vector of double) -0:52 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:52 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:52 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:52 Constant: -0:52 0 (const uint) -0:52 direct index ( temp uint) -0:52 'dti' ( in 3-component vector of uint) -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 3 (const int) -0:52 Sequence -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 1 (const int) -0:52 Constant: -0:52 2 (const int) -0:52 subgroupInclusiveMul ( temp 3-component vector of double) -0:52 vector swizzle ( temp 3-component vector of double) -0:52 d: direct index for structure ( temp 4-component vector of double) -0:52 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:52 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:52 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:52 Constant: -0:52 0 (const uint) -0:52 direct index ( temp uint) -0:52 'dti' ( in 3-component vector of uint) -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 3 (const int) -0:52 Sequence -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 1 (const int) -0:52 Constant: -0:52 2 (const int) -0:54 move second child to first child ( temp uint) -0:54 direct index ( temp uint) -0:54 u: direct index for structure ( temp 4-component vector of uint) -0:54 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:54 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:54 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:54 Constant: -0:54 0 (const uint) -0:54 direct index ( temp uint) -0:54 'dti' ( in 3-component vector of uint) -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 subgroupBallotInclusiveBitCount ( temp uint) -0:54 subgroupBallot ( temp 4-component vector of uint) -0:54 Compare Equal ( temp bool) -0:54 direct index ( temp uint) -0:54 u: direct index for structure ( temp 4-component vector of uint) -0:54 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:54 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:54 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:54 Constant: -0:54 0 (const uint) -0:54 direct index ( temp uint) -0:54 'dti' ( in 3-component vector of uint) -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 0 (const uint) -0:13 Function Definition: CSMain( ( temp void) -0:13 Function Parameters: -0:? Sequence -0:13 move second child to first child ( temp 3-component vector of uint) -0:? 'dti' ( temp 3-component vector of uint) -0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) -0:13 Function Call: @CSMain(vu3; ( temp void) -0:? 'dti' ( temp 3-component vector of uint) -0:? Linker Objects -0:? 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) - -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 403 - - Capability Shader - Capability Float64 - Capability GroupNonUniform - Capability GroupNonUniformArithmetic - Capability GroupNonUniformBallot - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "CSMain" 398 - ExecutionMode 4 LocalSize 32 16 1 - Source HLSL 500 - Name 4 "CSMain" - Name 11 "@CSMain(vu3;" - Name 10 "dti" - Name 20 "Types" - MemberName 20(Types) 0 "u" - MemberName 20(Types) 1 "i" - MemberName 20(Types) 2 "f" - MemberName 20(Types) 3 "d" - Name 22 "data" - MemberName 22(data) 0 "@data" - Name 24 "data" - Name 396 "dti" - Name 398 "dti" - Name 400 "param" - MemberDecorate 20(Types) 0 Offset 0 - MemberDecorate 20(Types) 1 Offset 16 - MemberDecorate 20(Types) 2 Offset 32 - MemberDecorate 20(Types) 3 Offset 64 - Decorate 21 ArrayStride 96 - MemberDecorate 22(data) 0 Offset 0 - Decorate 22(data) BufferBlock - Decorate 24(data) DescriptorSet 0 - Decorate 24(data) Binding 0 - Decorate 398(dti) BuiltIn GlobalInvocationId - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeVector 6(int) 3 - 8: TypePointer Function 7(ivec3) - 9: TypeFunction 2 8(ptr) - 13: TypeVector 6(int) 4 - 14: TypeInt 32 1 - 15: TypeVector 14(int) 4 - 16: TypeFloat 32 - 17: TypeVector 16(float) 4 - 18: TypeFloat 64 - 19: TypeVector 18(float64_t) 4 - 20(Types): TypeStruct 13(ivec4) 15(ivec4) 17(fvec4) 19(f64vec4) - 21: TypeRuntimeArray 20(Types) - 22(data): TypeStruct 21 - 23: TypePointer Uniform 22(data) - 24(data): 23(ptr) Variable Uniform - 25: 14(int) Constant 0 - 26: 6(int) Constant 0 - 27: TypePointer Function 6(int) - 32: TypePointer Uniform 13(ivec4) - 35: 6(int) Constant 3 - 42: TypePointer Uniform 6(int) - 51: TypeVector 6(int) 2 - 58: 6(int) Constant 1 - 73: 6(int) Constant 2 - 78: 14(int) Constant 1 - 81: TypePointer Uniform 15(ivec4) - 90: TypePointer Uniform 14(int) - 99: TypeVector 14(int) 2 - 112: TypeVector 14(int) 3 - 125: 14(int) Constant 2 - 128: TypePointer Uniform 17(fvec4) - 137: TypePointer Uniform 16(float) - 146: TypeVector 16(float) 2 - 159: TypeVector 16(float) 3 - 172: 14(int) Constant 3 - 175: TypePointer Uniform 19(f64vec4) - 184: TypePointer Uniform 18(float64_t) - 193: TypeVector 18(float64_t) 2 - 206: TypeVector 18(float64_t) 3 - 391: TypeBool - 397: TypePointer Input 7(ivec3) - 398(dti): 397(ptr) Variable Input - 4(CSMain): 2 Function None 3 - 5: Label - 396(dti): 8(ptr) Variable Function - 400(param): 8(ptr) Variable Function - 399: 7(ivec3) Load 398(dti) - Store 396(dti) 399 - 401: 7(ivec3) Load 396(dti) - Store 400(param) 401 - 402: 2 FunctionCall 11(@CSMain(vu3;) 400(param) - Return - FunctionEnd -11(@CSMain(vu3;): 2 Function None 9 - 10(dti): 8(ptr) FunctionParameter - 12: Label - 28: 27(ptr) AccessChain 10(dti) 26 - 29: 6(int) Load 28 - 30: 27(ptr) AccessChain 10(dti) 26 - 31: 6(int) Load 30 - 33: 32(ptr) AccessChain 24(data) 25 31 25 - 34: 13(ivec4) Load 33 - 36: 13(ivec4) GroupNonUniformIAdd 35 InclusiveScan 34 - 37: 32(ptr) AccessChain 24(data) 25 29 25 - Store 37 36 - 38: 27(ptr) AccessChain 10(dti) 26 - 39: 6(int) Load 38 - 40: 27(ptr) AccessChain 10(dti) 26 - 41: 6(int) Load 40 - 43: 42(ptr) AccessChain 24(data) 25 41 25 26 - 44: 6(int) Load 43 - 45: 6(int) GroupNonUniformIAdd 35 InclusiveScan 44 - 46: 42(ptr) AccessChain 24(data) 25 39 25 26 - Store 46 45 - 47: 27(ptr) AccessChain 10(dti) 26 - 48: 6(int) Load 47 - 49: 27(ptr) AccessChain 10(dti) 26 - 50: 6(int) Load 49 - 52: 32(ptr) AccessChain 24(data) 25 50 25 - 53: 13(ivec4) Load 52 - 54: 51(ivec2) VectorShuffle 53 53 0 1 - 55: 51(ivec2) GroupNonUniformIAdd 35 InclusiveScan 54 - 56: 42(ptr) AccessChain 24(data) 25 48 25 26 - 57: 6(int) CompositeExtract 55 0 - Store 56 57 - 59: 42(ptr) AccessChain 24(data) 25 48 25 58 - 60: 6(int) CompositeExtract 55 1 - Store 59 60 - 61: 27(ptr) AccessChain 10(dti) 26 - 62: 6(int) Load 61 - 63: 27(ptr) AccessChain 10(dti) 26 - 64: 6(int) Load 63 - 65: 32(ptr) AccessChain 24(data) 25 64 25 - 66: 13(ivec4) Load 65 - 67: 7(ivec3) VectorShuffle 66 66 0 1 2 - 68: 7(ivec3) GroupNonUniformIAdd 35 InclusiveScan 67 - 69: 42(ptr) AccessChain 24(data) 25 62 25 26 - 70: 6(int) CompositeExtract 68 0 - Store 69 70 - 71: 42(ptr) AccessChain 24(data) 25 62 25 58 - 72: 6(int) CompositeExtract 68 1 - Store 71 72 - 74: 42(ptr) AccessChain 24(data) 25 62 25 73 - 75: 6(int) CompositeExtract 68 2 - Store 74 75 - 76: 27(ptr) AccessChain 10(dti) 26 - 77: 6(int) Load 76 - 79: 27(ptr) AccessChain 10(dti) 26 - 80: 6(int) Load 79 - 82: 81(ptr) AccessChain 24(data) 25 80 78 - 83: 15(ivec4) Load 82 - 84: 15(ivec4) GroupNonUniformIAdd 35 InclusiveScan 83 - 85: 81(ptr) AccessChain 24(data) 25 77 78 - Store 85 84 - 86: 27(ptr) AccessChain 10(dti) 26 - 87: 6(int) Load 86 - 88: 27(ptr) AccessChain 10(dti) 26 - 89: 6(int) Load 88 - 91: 90(ptr) AccessChain 24(data) 25 89 78 26 - 92: 14(int) Load 91 - 93: 14(int) GroupNonUniformIAdd 35 InclusiveScan 92 - 94: 90(ptr) AccessChain 24(data) 25 87 78 26 - Store 94 93 - 95: 27(ptr) AccessChain 10(dti) 26 - 96: 6(int) Load 95 - 97: 27(ptr) AccessChain 10(dti) 26 - 98: 6(int) Load 97 - 100: 81(ptr) AccessChain 24(data) 25 98 78 - 101: 15(ivec4) Load 100 - 102: 99(ivec2) VectorShuffle 101 101 0 1 - 103: 99(ivec2) GroupNonUniformIAdd 35 InclusiveScan 102 - 104: 90(ptr) AccessChain 24(data) 25 96 78 26 - 105: 14(int) CompositeExtract 103 0 - Store 104 105 - 106: 90(ptr) AccessChain 24(data) 25 96 78 58 - 107: 14(int) CompositeExtract 103 1 - Store 106 107 - 108: 27(ptr) AccessChain 10(dti) 26 - 109: 6(int) Load 108 - 110: 27(ptr) AccessChain 10(dti) 26 - 111: 6(int) Load 110 - 113: 81(ptr) AccessChain 24(data) 25 111 78 - 114: 15(ivec4) Load 113 - 115: 112(ivec3) VectorShuffle 114 114 0 1 2 - 116: 112(ivec3) GroupNonUniformIAdd 35 InclusiveScan 115 - 117: 90(ptr) AccessChain 24(data) 25 109 78 26 - 118: 14(int) CompositeExtract 116 0 - Store 117 118 - 119: 90(ptr) AccessChain 24(data) 25 109 78 58 - 120: 14(int) CompositeExtract 116 1 - Store 119 120 - 121: 90(ptr) AccessChain 24(data) 25 109 78 73 - 122: 14(int) CompositeExtract 116 2 - Store 121 122 - 123: 27(ptr) AccessChain 10(dti) 26 - 124: 6(int) Load 123 - 126: 27(ptr) AccessChain 10(dti) 26 - 127: 6(int) Load 126 - 129: 128(ptr) AccessChain 24(data) 25 127 125 - 130: 17(fvec4) Load 129 - 131: 17(fvec4) GroupNonUniformFAdd 35 InclusiveScan 130 - 132: 128(ptr) AccessChain 24(data) 25 124 125 - Store 132 131 - 133: 27(ptr) AccessChain 10(dti) 26 - 134: 6(int) Load 133 - 135: 27(ptr) AccessChain 10(dti) 26 - 136: 6(int) Load 135 - 138: 137(ptr) AccessChain 24(data) 25 136 125 26 - 139: 16(float) Load 138 - 140: 16(float) GroupNonUniformFAdd 35 InclusiveScan 139 - 141: 137(ptr) AccessChain 24(data) 25 134 125 26 - Store 141 140 - 142: 27(ptr) AccessChain 10(dti) 26 - 143: 6(int) Load 142 - 144: 27(ptr) AccessChain 10(dti) 26 - 145: 6(int) Load 144 - 147: 128(ptr) AccessChain 24(data) 25 145 125 - 148: 17(fvec4) Load 147 - 149: 146(fvec2) VectorShuffle 148 148 0 1 - 150: 146(fvec2) GroupNonUniformFAdd 35 InclusiveScan 149 - 151: 137(ptr) AccessChain 24(data) 25 143 125 26 - 152: 16(float) CompositeExtract 150 0 - Store 151 152 - 153: 137(ptr) AccessChain 24(data) 25 143 125 58 - 154: 16(float) CompositeExtract 150 1 - Store 153 154 - 155: 27(ptr) AccessChain 10(dti) 26 - 156: 6(int) Load 155 - 157: 27(ptr) AccessChain 10(dti) 26 - 158: 6(int) Load 157 - 160: 128(ptr) AccessChain 24(data) 25 158 125 - 161: 17(fvec4) Load 160 - 162: 159(fvec3) VectorShuffle 161 161 0 1 2 - 163: 159(fvec3) GroupNonUniformFAdd 35 InclusiveScan 162 - 164: 137(ptr) AccessChain 24(data) 25 156 125 26 - 165: 16(float) CompositeExtract 163 0 - Store 164 165 - 166: 137(ptr) AccessChain 24(data) 25 156 125 58 - 167: 16(float) CompositeExtract 163 1 - Store 166 167 - 168: 137(ptr) AccessChain 24(data) 25 156 125 73 - 169: 16(float) CompositeExtract 163 2 - Store 168 169 - 170: 27(ptr) AccessChain 10(dti) 26 - 171: 6(int) Load 170 - 173: 27(ptr) AccessChain 10(dti) 26 - 174: 6(int) Load 173 - 176: 175(ptr) AccessChain 24(data) 25 174 172 - 177: 19(f64vec4) Load 176 - 178: 19(f64vec4) GroupNonUniformFAdd 35 InclusiveScan 177 - 179: 175(ptr) AccessChain 24(data) 25 171 172 - Store 179 178 - 180: 27(ptr) AccessChain 10(dti) 26 - 181: 6(int) Load 180 - 182: 27(ptr) AccessChain 10(dti) 26 - 183: 6(int) Load 182 - 185: 184(ptr) AccessChain 24(data) 25 183 172 26 - 186:18(float64_t) Load 185 - 187:18(float64_t) GroupNonUniformFAdd 35 InclusiveScan 186 - 188: 184(ptr) AccessChain 24(data) 25 181 172 26 - Store 188 187 - 189: 27(ptr) AccessChain 10(dti) 26 - 190: 6(int) Load 189 - 191: 27(ptr) AccessChain 10(dti) 26 - 192: 6(int) Load 191 - 194: 175(ptr) AccessChain 24(data) 25 192 172 - 195: 19(f64vec4) Load 194 - 196:193(f64vec2) VectorShuffle 195 195 0 1 - 197:193(f64vec2) GroupNonUniformFAdd 35 InclusiveScan 196 - 198: 184(ptr) AccessChain 24(data) 25 190 172 26 - 199:18(float64_t) CompositeExtract 197 0 - Store 198 199 - 200: 184(ptr) AccessChain 24(data) 25 190 172 58 - 201:18(float64_t) CompositeExtract 197 1 - Store 200 201 - 202: 27(ptr) AccessChain 10(dti) 26 - 203: 6(int) Load 202 - 204: 27(ptr) AccessChain 10(dti) 26 - 205: 6(int) Load 204 - 207: 175(ptr) AccessChain 24(data) 25 205 172 - 208: 19(f64vec4) Load 207 - 209:206(f64vec3) VectorShuffle 208 208 0 1 2 - 210:206(f64vec3) GroupNonUniformFAdd 35 InclusiveScan 209 - 211: 184(ptr) AccessChain 24(data) 25 203 172 26 - 212:18(float64_t) CompositeExtract 210 0 - Store 211 212 - 213: 184(ptr) AccessChain 24(data) 25 203 172 58 - 214:18(float64_t) CompositeExtract 210 1 - Store 213 214 - 215: 184(ptr) AccessChain 24(data) 25 203 172 73 - 216:18(float64_t) CompositeExtract 210 2 - Store 215 216 - 217: 27(ptr) AccessChain 10(dti) 26 - 218: 6(int) Load 217 - 219: 27(ptr) AccessChain 10(dti) 26 - 220: 6(int) Load 219 - 221: 32(ptr) AccessChain 24(data) 25 220 25 - 222: 13(ivec4) Load 221 - 223: 13(ivec4) GroupNonUniformIMul 35 InclusiveScan 222 - 224: 32(ptr) AccessChain 24(data) 25 218 25 - Store 224 223 - 225: 27(ptr) AccessChain 10(dti) 26 - 226: 6(int) Load 225 - 227: 27(ptr) AccessChain 10(dti) 26 - 228: 6(int) Load 227 - 229: 42(ptr) AccessChain 24(data) 25 228 25 26 - 230: 6(int) Load 229 - 231: 6(int) GroupNonUniformIMul 35 InclusiveScan 230 - 232: 42(ptr) AccessChain 24(data) 25 226 25 26 - Store 232 231 - 233: 27(ptr) AccessChain 10(dti) 26 - 234: 6(int) Load 233 - 235: 27(ptr) AccessChain 10(dti) 26 - 236: 6(int) Load 235 - 237: 32(ptr) AccessChain 24(data) 25 236 25 - 238: 13(ivec4) Load 237 - 239: 51(ivec2) VectorShuffle 238 238 0 1 - 240: 51(ivec2) GroupNonUniformIMul 35 InclusiveScan 239 - 241: 42(ptr) AccessChain 24(data) 25 234 25 26 - 242: 6(int) CompositeExtract 240 0 - Store 241 242 - 243: 42(ptr) AccessChain 24(data) 25 234 25 58 - 244: 6(int) CompositeExtract 240 1 - Store 243 244 - 245: 27(ptr) AccessChain 10(dti) 26 - 246: 6(int) Load 245 - 247: 27(ptr) AccessChain 10(dti) 26 - 248: 6(int) Load 247 - 249: 32(ptr) AccessChain 24(data) 25 248 25 - 250: 13(ivec4) Load 249 - 251: 7(ivec3) VectorShuffle 250 250 0 1 2 - 252: 7(ivec3) GroupNonUniformIMul 35 InclusiveScan 251 - 253: 42(ptr) AccessChain 24(data) 25 246 25 26 - 254: 6(int) CompositeExtract 252 0 - Store 253 254 - 255: 42(ptr) AccessChain 24(data) 25 246 25 58 - 256: 6(int) CompositeExtract 252 1 - Store 255 256 - 257: 42(ptr) AccessChain 24(data) 25 246 25 73 - 258: 6(int) CompositeExtract 252 2 - Store 257 258 - 259: 27(ptr) AccessChain 10(dti) 26 - 260: 6(int) Load 259 - 261: 27(ptr) AccessChain 10(dti) 26 - 262: 6(int) Load 261 - 263: 81(ptr) AccessChain 24(data) 25 262 78 - 264: 15(ivec4) Load 263 - 265: 15(ivec4) GroupNonUniformIMul 35 InclusiveScan 264 - 266: 81(ptr) AccessChain 24(data) 25 260 78 - Store 266 265 - 267: 27(ptr) AccessChain 10(dti) 26 - 268: 6(int) Load 267 - 269: 27(ptr) AccessChain 10(dti) 26 - 270: 6(int) Load 269 - 271: 90(ptr) AccessChain 24(data) 25 270 78 26 - 272: 14(int) Load 271 - 273: 14(int) GroupNonUniformIMul 35 InclusiveScan 272 - 274: 90(ptr) AccessChain 24(data) 25 268 78 26 - Store 274 273 - 275: 27(ptr) AccessChain 10(dti) 26 - 276: 6(int) Load 275 - 277: 27(ptr) AccessChain 10(dti) 26 - 278: 6(int) Load 277 - 279: 81(ptr) AccessChain 24(data) 25 278 78 - 280: 15(ivec4) Load 279 - 281: 99(ivec2) VectorShuffle 280 280 0 1 - 282: 99(ivec2) GroupNonUniformIMul 35 InclusiveScan 281 - 283: 90(ptr) AccessChain 24(data) 25 276 78 26 - 284: 14(int) CompositeExtract 282 0 - Store 283 284 - 285: 90(ptr) AccessChain 24(data) 25 276 78 58 - 286: 14(int) CompositeExtract 282 1 - Store 285 286 - 287: 27(ptr) AccessChain 10(dti) 26 - 288: 6(int) Load 287 - 289: 27(ptr) AccessChain 10(dti) 26 - 290: 6(int) Load 289 - 291: 81(ptr) AccessChain 24(data) 25 290 78 - 292: 15(ivec4) Load 291 - 293: 112(ivec3) VectorShuffle 292 292 0 1 2 - 294: 112(ivec3) GroupNonUniformIMul 35 InclusiveScan 293 - 295: 90(ptr) AccessChain 24(data) 25 288 78 26 - 296: 14(int) CompositeExtract 294 0 - Store 295 296 - 297: 90(ptr) AccessChain 24(data) 25 288 78 58 - 298: 14(int) CompositeExtract 294 1 - Store 297 298 - 299: 90(ptr) AccessChain 24(data) 25 288 78 73 - 300: 14(int) CompositeExtract 294 2 - Store 299 300 - 301: 27(ptr) AccessChain 10(dti) 26 - 302: 6(int) Load 301 - 303: 27(ptr) AccessChain 10(dti) 26 - 304: 6(int) Load 303 - 305: 128(ptr) AccessChain 24(data) 25 304 125 - 306: 17(fvec4) Load 305 - 307: 17(fvec4) GroupNonUniformFMul 35 InclusiveScan 306 - 308: 128(ptr) AccessChain 24(data) 25 302 125 - Store 308 307 - 309: 27(ptr) AccessChain 10(dti) 26 - 310: 6(int) Load 309 - 311: 27(ptr) AccessChain 10(dti) 26 - 312: 6(int) Load 311 - 313: 137(ptr) AccessChain 24(data) 25 312 125 26 - 314: 16(float) Load 313 - 315: 16(float) GroupNonUniformFMul 35 InclusiveScan 314 - 316: 137(ptr) AccessChain 24(data) 25 310 125 26 - Store 316 315 - 317: 27(ptr) AccessChain 10(dti) 26 - 318: 6(int) Load 317 - 319: 27(ptr) AccessChain 10(dti) 26 - 320: 6(int) Load 319 - 321: 128(ptr) AccessChain 24(data) 25 320 125 - 322: 17(fvec4) Load 321 - 323: 146(fvec2) VectorShuffle 322 322 0 1 - 324: 146(fvec2) GroupNonUniformFMul 35 InclusiveScan 323 - 325: 137(ptr) AccessChain 24(data) 25 318 125 26 - 326: 16(float) CompositeExtract 324 0 - Store 325 326 - 327: 137(ptr) AccessChain 24(data) 25 318 125 58 - 328: 16(float) CompositeExtract 324 1 - Store 327 328 - 329: 27(ptr) AccessChain 10(dti) 26 - 330: 6(int) Load 329 - 331: 27(ptr) AccessChain 10(dti) 26 - 332: 6(int) Load 331 - 333: 128(ptr) AccessChain 24(data) 25 332 125 - 334: 17(fvec4) Load 333 - 335: 159(fvec3) VectorShuffle 334 334 0 1 2 - 336: 159(fvec3) GroupNonUniformFMul 35 InclusiveScan 335 - 337: 137(ptr) AccessChain 24(data) 25 330 125 26 - 338: 16(float) CompositeExtract 336 0 - Store 337 338 - 339: 137(ptr) AccessChain 24(data) 25 330 125 58 - 340: 16(float) CompositeExtract 336 1 - Store 339 340 - 341: 137(ptr) AccessChain 24(data) 25 330 125 73 - 342: 16(float) CompositeExtract 336 2 - Store 341 342 - 343: 27(ptr) AccessChain 10(dti) 26 - 344: 6(int) Load 343 - 345: 27(ptr) AccessChain 10(dti) 26 - 346: 6(int) Load 345 - 347: 175(ptr) AccessChain 24(data) 25 346 172 - 348: 19(f64vec4) Load 347 - 349: 19(f64vec4) GroupNonUniformFMul 35 InclusiveScan 348 - 350: 175(ptr) AccessChain 24(data) 25 344 172 - Store 350 349 - 351: 27(ptr) AccessChain 10(dti) 26 - 352: 6(int) Load 351 - 353: 27(ptr) AccessChain 10(dti) 26 - 354: 6(int) Load 353 - 355: 184(ptr) AccessChain 24(data) 25 354 172 26 - 356:18(float64_t) Load 355 - 357:18(float64_t) GroupNonUniformFMul 35 InclusiveScan 356 - 358: 184(ptr) AccessChain 24(data) 25 352 172 26 - Store 358 357 - 359: 27(ptr) AccessChain 10(dti) 26 - 360: 6(int) Load 359 - 361: 27(ptr) AccessChain 10(dti) 26 - 362: 6(int) Load 361 - 363: 175(ptr) AccessChain 24(data) 25 362 172 - 364: 19(f64vec4) Load 363 - 365:193(f64vec2) VectorShuffle 364 364 0 1 - 366:193(f64vec2) GroupNonUniformFMul 35 InclusiveScan 365 - 367: 184(ptr) AccessChain 24(data) 25 360 172 26 - 368:18(float64_t) CompositeExtract 366 0 - Store 367 368 - 369: 184(ptr) AccessChain 24(data) 25 360 172 58 - 370:18(float64_t) CompositeExtract 366 1 - Store 369 370 - 371: 27(ptr) AccessChain 10(dti) 26 - 372: 6(int) Load 371 - 373: 27(ptr) AccessChain 10(dti) 26 - 374: 6(int) Load 373 - 375: 175(ptr) AccessChain 24(data) 25 374 172 - 376: 19(f64vec4) Load 375 - 377:206(f64vec3) VectorShuffle 376 376 0 1 2 - 378:206(f64vec3) GroupNonUniformFMul 35 InclusiveScan 377 - 379: 184(ptr) AccessChain 24(data) 25 372 172 26 - 380:18(float64_t) CompositeExtract 378 0 - Store 379 380 - 381: 184(ptr) AccessChain 24(data) 25 372 172 58 - 382:18(float64_t) CompositeExtract 378 1 - Store 381 382 - 383: 184(ptr) AccessChain 24(data) 25 372 172 73 - 384:18(float64_t) CompositeExtract 378 2 - Store 383 384 - 385: 27(ptr) AccessChain 10(dti) 26 - 386: 6(int) Load 385 - 387: 27(ptr) AccessChain 10(dti) 26 - 388: 6(int) Load 387 - 389: 42(ptr) AccessChain 24(data) 25 388 25 26 - 390: 6(int) Load 389 - 392: 391(bool) IEqual 390 26 - 393: 13(ivec4) GroupNonUniformBallot 35 392 - 394: 6(int) GroupNonUniformBallotBitCount 35 InclusiveScan 393 - 395: 42(ptr) AccessChain 24(data) 25 386 25 26 - Store 395 394 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.wavequad.comp.out b/deps/glslang/Test/baseResults/hlsl.wavequad.comp.out deleted file mode 100644 index e4311c74..00000000 --- a/deps/glslang/Test/baseResults/hlsl.wavequad.comp.out +++ /dev/null @@ -1,9496 +0,0 @@ -hlsl.wavequad.comp -Shader version: 500 -local_size = (32, 16, 1) -0:? Sequence -0:13 Function Definition: @CSMain(vu3; ( temp void) -0:13 Function Parameters: -0:13 'dti' ( in 3-component vector of uint) -0:? Sequence -0:14 move second child to first child ( temp 4-component vector of uint) -0:14 u: direct index for structure ( temp 4-component vector of uint) -0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:14 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:14 Constant: -0:14 0 (const uint) -0:14 direct index ( temp uint) -0:14 'dti' ( in 3-component vector of uint) -0:14 Constant: -0:14 0 (const int) -0:14 Constant: -0:14 0 (const int) -0:14 subgroupQuadBroadcast ( temp 4-component vector of uint) -0:14 u: direct index for structure ( temp 4-component vector of uint) -0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:14 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:14 Constant: -0:14 0 (const uint) -0:14 direct index ( temp uint) -0:14 'dti' ( in 3-component vector of uint) -0:14 Constant: -0:14 0 (const int) -0:14 Constant: -0:14 0 (const int) -0:14 Constant: -0:14 0 (const uint) -0:15 move second child to first child ( temp uint) -0:15 direct index ( temp uint) -0:15 u: direct index for structure ( temp 4-component vector of uint) -0:15 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:15 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:15 Constant: -0:15 0 (const uint) -0:15 direct index ( temp uint) -0:15 'dti' ( in 3-component vector of uint) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0 (const int) -0:15 subgroupQuadBroadcast ( temp uint) -0:15 direct index ( temp uint) -0:15 u: direct index for structure ( temp 4-component vector of uint) -0:15 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:15 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:15 Constant: -0:15 0 (const uint) -0:15 direct index ( temp uint) -0:15 'dti' ( in 3-component vector of uint) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0 (const uint) -0:16 move second child to first child ( temp 2-component vector of uint) -0:16 vector swizzle ( temp 2-component vector of uint) -0:16 u: direct index for structure ( temp 4-component vector of uint) -0:16 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:16 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:16 Constant: -0:16 0 (const uint) -0:16 direct index ( temp uint) -0:16 'dti' ( in 3-component vector of uint) -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 0 (const int) -0:16 Sequence -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 1 (const int) -0:16 subgroupQuadBroadcast ( temp 2-component vector of uint) -0:16 vector swizzle ( temp 2-component vector of uint) -0:16 u: direct index for structure ( temp 4-component vector of uint) -0:16 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:16 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:16 Constant: -0:16 0 (const uint) -0:16 direct index ( temp uint) -0:16 'dti' ( in 3-component vector of uint) -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 0 (const int) -0:16 Sequence -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 1 (const int) -0:16 Constant: -0:16 0 (const uint) -0:17 move second child to first child ( temp 3-component vector of uint) -0:17 vector swizzle ( temp 3-component vector of uint) -0:17 u: direct index for structure ( temp 4-component vector of uint) -0:17 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:17 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:17 Constant: -0:17 0 (const uint) -0:17 direct index ( temp uint) -0:17 'dti' ( in 3-component vector of uint) -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 0 (const int) -0:17 Sequence -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 1 (const int) -0:17 Constant: -0:17 2 (const int) -0:17 subgroupQuadBroadcast ( temp 3-component vector of uint) -0:17 vector swizzle ( temp 3-component vector of uint) -0:17 u: direct index for structure ( temp 4-component vector of uint) -0:17 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:17 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:17 Constant: -0:17 0 (const uint) -0:17 direct index ( temp uint) -0:17 'dti' ( in 3-component vector of uint) -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 0 (const int) -0:17 Sequence -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 1 (const int) -0:17 Constant: -0:17 2 (const int) -0:17 Constant: -0:17 0 (const uint) -0:19 move second child to first child ( temp 4-component vector of int) -0:19 i: direct index for structure ( temp 4-component vector of int) -0:19 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:19 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:19 Constant: -0:19 0 (const uint) -0:19 direct index ( temp uint) -0:19 'dti' ( in 3-component vector of uint) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const int) -0:19 subgroupQuadBroadcast ( temp 4-component vector of int) -0:19 i: direct index for structure ( temp 4-component vector of int) -0:19 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:19 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:19 Constant: -0:19 0 (const uint) -0:19 direct index ( temp uint) -0:19 'dti' ( in 3-component vector of uint) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const int) -0:19 Constant: -0:19 0 (const uint) -0:20 move second child to first child ( temp int) -0:20 direct index ( temp int) -0:20 i: direct index for structure ( temp 4-component vector of int) -0:20 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:20 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:20 Constant: -0:20 0 (const uint) -0:20 direct index ( temp uint) -0:20 'dti' ( in 3-component vector of uint) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 subgroupQuadBroadcast ( temp int) -0:20 direct index ( temp int) -0:20 i: direct index for structure ( temp 4-component vector of int) -0:20 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:20 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:20 Constant: -0:20 0 (const uint) -0:20 direct index ( temp uint) -0:20 'dti' ( in 3-component vector of uint) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 0 (const uint) -0:21 move second child to first child ( temp 2-component vector of int) -0:21 vector swizzle ( temp 2-component vector of int) -0:21 i: direct index for structure ( temp 4-component vector of int) -0:21 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:21 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:21 Constant: -0:21 0 (const uint) -0:21 direct index ( temp uint) -0:21 'dti' ( in 3-component vector of uint) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 subgroupQuadBroadcast ( temp 2-component vector of int) -0:21 vector swizzle ( temp 2-component vector of int) -0:21 i: direct index for structure ( temp 4-component vector of int) -0:21 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:21 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:21 Constant: -0:21 0 (const uint) -0:21 direct index ( temp uint) -0:21 'dti' ( in 3-component vector of uint) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Constant: -0:21 0 (const uint) -0:22 move second child to first child ( temp 3-component vector of int) -0:22 vector swizzle ( temp 3-component vector of int) -0:22 i: direct index for structure ( temp 4-component vector of int) -0:22 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:22 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:22 Constant: -0:22 0 (const uint) -0:22 direct index ( temp uint) -0:22 'dti' ( in 3-component vector of uint) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 Sequence -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 Constant: -0:22 2 (const int) -0:22 subgroupQuadBroadcast ( temp 3-component vector of int) -0:22 vector swizzle ( temp 3-component vector of int) -0:22 i: direct index for structure ( temp 4-component vector of int) -0:22 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:22 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:22 Constant: -0:22 0 (const uint) -0:22 direct index ( temp uint) -0:22 'dti' ( in 3-component vector of uint) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 Sequence -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 Constant: -0:22 2 (const int) -0:22 Constant: -0:22 0 (const uint) -0:24 move second child to first child ( temp 4-component vector of float) -0:24 f: direct index for structure ( temp 4-component vector of float) -0:24 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:24 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:24 Constant: -0:24 0 (const uint) -0:24 direct index ( temp uint) -0:24 'dti' ( in 3-component vector of uint) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 2 (const int) -0:24 subgroupQuadBroadcast ( temp 4-component vector of float) -0:24 f: direct index for structure ( temp 4-component vector of float) -0:24 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:24 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:24 Constant: -0:24 0 (const uint) -0:24 direct index ( temp uint) -0:24 'dti' ( in 3-component vector of uint) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 2 (const int) -0:24 Constant: -0:24 0 (const uint) -0:25 move second child to first child ( temp float) -0:25 direct index ( temp float) -0:25 f: direct index for structure ( temp 4-component vector of float) -0:25 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:25 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:25 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:25 Constant: -0:25 0 (const uint) -0:25 direct index ( temp uint) -0:25 'dti' ( in 3-component vector of uint) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 Constant: -0:25 0 (const int) -0:25 subgroupQuadBroadcast ( temp float) -0:25 direct index ( temp float) -0:25 f: direct index for structure ( temp 4-component vector of float) -0:25 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:25 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:25 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:25 Constant: -0:25 0 (const uint) -0:25 direct index ( temp uint) -0:25 'dti' ( in 3-component vector of uint) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 0 (const uint) -0:26 move second child to first child ( temp 2-component vector of float) -0:26 vector swizzle ( temp 2-component vector of float) -0:26 f: direct index for structure ( temp 4-component vector of float) -0:26 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:26 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:26 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:26 Constant: -0:26 0 (const uint) -0:26 direct index ( temp uint) -0:26 'dti' ( in 3-component vector of uint) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 subgroupQuadBroadcast ( temp 2-component vector of float) -0:26 vector swizzle ( temp 2-component vector of float) -0:26 f: direct index for structure ( temp 4-component vector of float) -0:26 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:26 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:26 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:26 Constant: -0:26 0 (const uint) -0:26 direct index ( temp uint) -0:26 'dti' ( in 3-component vector of uint) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 0 (const uint) -0:27 move second child to first child ( temp 3-component vector of float) -0:27 vector swizzle ( temp 3-component vector of float) -0:27 f: direct index for structure ( temp 4-component vector of float) -0:27 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:27 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:27 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:27 Constant: -0:27 0 (const uint) -0:27 direct index ( temp uint) -0:27 'dti' ( in 3-component vector of uint) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 2 (const int) -0:27 Sequence -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Constant: -0:27 2 (const int) -0:27 subgroupQuadBroadcast ( temp 3-component vector of float) -0:27 vector swizzle ( temp 3-component vector of float) -0:27 f: direct index for structure ( temp 4-component vector of float) -0:27 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:27 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:27 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:27 Constant: -0:27 0 (const uint) -0:27 direct index ( temp uint) -0:27 'dti' ( in 3-component vector of uint) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 2 (const int) -0:27 Sequence -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Constant: -0:27 2 (const int) -0:27 Constant: -0:27 0 (const uint) -0:29 move second child to first child ( temp 4-component vector of double) -0:29 d: direct index for structure ( temp 4-component vector of double) -0:29 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:29 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:29 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:29 Constant: -0:29 0 (const uint) -0:29 direct index ( temp uint) -0:29 'dti' ( in 3-component vector of uint) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 3 (const int) -0:29 subgroupQuadBroadcast ( temp 4-component vector of double) -0:29 d: direct index for structure ( temp 4-component vector of double) -0:29 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:29 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:29 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:29 Constant: -0:29 0 (const uint) -0:29 direct index ( temp uint) -0:29 'dti' ( in 3-component vector of uint) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 3 (const int) -0:29 Constant: -0:29 0 (const uint) -0:30 move second child to first child ( temp double) -0:30 direct index ( temp double) -0:30 d: direct index for structure ( temp 4-component vector of double) -0:30 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:30 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:30 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:30 Constant: -0:30 0 (const uint) -0:30 direct index ( temp uint) -0:30 'dti' ( in 3-component vector of uint) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 3 (const int) -0:30 Constant: -0:30 0 (const int) -0:30 subgroupQuadBroadcast ( temp double) -0:30 direct index ( temp double) -0:30 d: direct index for structure ( temp 4-component vector of double) -0:30 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:30 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:30 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:30 Constant: -0:30 0 (const uint) -0:30 direct index ( temp uint) -0:30 'dti' ( in 3-component vector of uint) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 3 (const int) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 0 (const uint) -0:31 move second child to first child ( temp 2-component vector of double) -0:31 vector swizzle ( temp 2-component vector of double) -0:31 d: direct index for structure ( temp 4-component vector of double) -0:31 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:31 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:31 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:31 Constant: -0:31 0 (const uint) -0:31 direct index ( temp uint) -0:31 'dti' ( in 3-component vector of uint) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 3 (const int) -0:31 Sequence -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 subgroupQuadBroadcast ( temp 2-component vector of double) -0:31 vector swizzle ( temp 2-component vector of double) -0:31 d: direct index for structure ( temp 4-component vector of double) -0:31 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:31 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:31 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:31 Constant: -0:31 0 (const uint) -0:31 direct index ( temp uint) -0:31 'dti' ( in 3-component vector of uint) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 3 (const int) -0:31 Sequence -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 0 (const uint) -0:32 move second child to first child ( temp 3-component vector of double) -0:32 vector swizzle ( temp 3-component vector of double) -0:32 d: direct index for structure ( temp 4-component vector of double) -0:32 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:32 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:32 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:32 Constant: -0:32 0 (const uint) -0:32 direct index ( temp uint) -0:32 'dti' ( in 3-component vector of uint) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 3 (const int) -0:32 Sequence -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 1 (const int) -0:32 Constant: -0:32 2 (const int) -0:32 subgroupQuadBroadcast ( temp 3-component vector of double) -0:32 vector swizzle ( temp 3-component vector of double) -0:32 d: direct index for structure ( temp 4-component vector of double) -0:32 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:32 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:32 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:32 Constant: -0:32 0 (const uint) -0:32 direct index ( temp uint) -0:32 'dti' ( in 3-component vector of uint) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 3 (const int) -0:32 Sequence -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 1 (const int) -0:32 Constant: -0:32 2 (const int) -0:32 Constant: -0:32 0 (const uint) -0:34 move second child to first child ( temp 4-component vector of uint) -0:34 u: direct index for structure ( temp 4-component vector of uint) -0:34 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:34 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:34 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:34 Constant: -0:34 0 (const uint) -0:34 direct index ( temp uint) -0:34 'dti' ( in 3-component vector of uint) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 subgroupQuadBroadcast ( temp 4-component vector of uint) -0:34 u: direct index for structure ( temp 4-component vector of uint) -0:34 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:34 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:34 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:34 Constant: -0:34 0 (const uint) -0:34 direct index ( temp uint) -0:34 'dti' ( in 3-component vector of uint) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 1 (const uint) -0:35 move second child to first child ( temp uint) -0:35 direct index ( temp uint) -0:35 u: direct index for structure ( temp 4-component vector of uint) -0:35 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:35 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:35 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:35 Constant: -0:35 0 (const uint) -0:35 direct index ( temp uint) -0:35 'dti' ( in 3-component vector of uint) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 subgroupQuadBroadcast ( temp uint) -0:35 direct index ( temp uint) -0:35 u: direct index for structure ( temp 4-component vector of uint) -0:35 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:35 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:35 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:35 Constant: -0:35 0 (const uint) -0:35 direct index ( temp uint) -0:35 'dti' ( in 3-component vector of uint) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const uint) -0:36 move second child to first child ( temp 2-component vector of uint) -0:36 vector swizzle ( temp 2-component vector of uint) -0:36 u: direct index for structure ( temp 4-component vector of uint) -0:36 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:36 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:36 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:36 Constant: -0:36 0 (const uint) -0:36 direct index ( temp uint) -0:36 'dti' ( in 3-component vector of uint) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 subgroupQuadBroadcast ( temp 2-component vector of uint) -0:36 vector swizzle ( temp 2-component vector of uint) -0:36 u: direct index for structure ( temp 4-component vector of uint) -0:36 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:36 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:36 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:36 Constant: -0:36 0 (const uint) -0:36 direct index ( temp uint) -0:36 'dti' ( in 3-component vector of uint) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 1 (const uint) -0:37 move second child to first child ( temp 3-component vector of uint) -0:37 vector swizzle ( temp 3-component vector of uint) -0:37 u: direct index for structure ( temp 4-component vector of uint) -0:37 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:37 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:37 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:37 Constant: -0:37 0 (const uint) -0:37 direct index ( temp uint) -0:37 'dti' ( in 3-component vector of uint) -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 0 (const int) -0:37 Sequence -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 1 (const int) -0:37 Constant: -0:37 2 (const int) -0:37 subgroupQuadBroadcast ( temp 3-component vector of uint) -0:37 vector swizzle ( temp 3-component vector of uint) -0:37 u: direct index for structure ( temp 4-component vector of uint) -0:37 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:37 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:37 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:37 Constant: -0:37 0 (const uint) -0:37 direct index ( temp uint) -0:37 'dti' ( in 3-component vector of uint) -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 0 (const int) -0:37 Sequence -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 1 (const int) -0:37 Constant: -0:37 2 (const int) -0:37 Constant: -0:37 1 (const uint) -0:39 move second child to first child ( temp 4-component vector of int) -0:39 i: direct index for structure ( temp 4-component vector of int) -0:39 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:39 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:39 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:39 Constant: -0:39 0 (const uint) -0:39 direct index ( temp uint) -0:39 'dti' ( in 3-component vector of uint) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 subgroupQuadBroadcast ( temp 4-component vector of int) -0:39 i: direct index for structure ( temp 4-component vector of int) -0:39 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:39 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:39 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:39 Constant: -0:39 0 (const uint) -0:39 direct index ( temp uint) -0:39 'dti' ( in 3-component vector of uint) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 1 (const uint) -0:40 move second child to first child ( temp int) -0:40 direct index ( temp int) -0:40 i: direct index for structure ( temp 4-component vector of int) -0:40 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:40 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:40 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:40 Constant: -0:40 0 (const uint) -0:40 direct index ( temp uint) -0:40 'dti' ( in 3-component vector of uint) -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 subgroupQuadBroadcast ( temp int) -0:40 direct index ( temp int) -0:40 i: direct index for structure ( temp 4-component vector of int) -0:40 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:40 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:40 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:40 Constant: -0:40 0 (const uint) -0:40 direct index ( temp uint) -0:40 'dti' ( in 3-component vector of uint) -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const uint) -0:41 move second child to first child ( temp 2-component vector of int) -0:41 vector swizzle ( temp 2-component vector of int) -0:41 i: direct index for structure ( temp 4-component vector of int) -0:41 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:41 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:41 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:41 Constant: -0:41 0 (const uint) -0:41 direct index ( temp uint) -0:41 'dti' ( in 3-component vector of uint) -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 subgroupQuadBroadcast ( temp 2-component vector of int) -0:41 vector swizzle ( temp 2-component vector of int) -0:41 i: direct index for structure ( temp 4-component vector of int) -0:41 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:41 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:41 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:41 Constant: -0:41 0 (const uint) -0:41 direct index ( temp uint) -0:41 'dti' ( in 3-component vector of uint) -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 1 (const uint) -0:42 move second child to first child ( temp 3-component vector of int) -0:42 vector swizzle ( temp 3-component vector of int) -0:42 i: direct index for structure ( temp 4-component vector of int) -0:42 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:42 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:42 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:42 Constant: -0:42 0 (const uint) -0:42 direct index ( temp uint) -0:42 'dti' ( in 3-component vector of uint) -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Sequence -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 2 (const int) -0:42 subgroupQuadBroadcast ( temp 3-component vector of int) -0:42 vector swizzle ( temp 3-component vector of int) -0:42 i: direct index for structure ( temp 4-component vector of int) -0:42 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:42 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:42 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:42 Constant: -0:42 0 (const uint) -0:42 direct index ( temp uint) -0:42 'dti' ( in 3-component vector of uint) -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Sequence -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 2 (const int) -0:42 Constant: -0:42 1 (const uint) -0:44 move second child to first child ( temp 4-component vector of float) -0:44 f: direct index for structure ( temp 4-component vector of float) -0:44 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:44 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:44 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:44 Constant: -0:44 0 (const uint) -0:44 direct index ( temp uint) -0:44 'dti' ( in 3-component vector of uint) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 2 (const int) -0:44 subgroupQuadBroadcast ( temp 4-component vector of float) -0:44 f: direct index for structure ( temp 4-component vector of float) -0:44 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:44 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:44 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:44 Constant: -0:44 0 (const uint) -0:44 direct index ( temp uint) -0:44 'dti' ( in 3-component vector of uint) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 2 (const int) -0:44 Constant: -0:44 1 (const uint) -0:45 move second child to first child ( temp float) -0:45 direct index ( temp float) -0:45 f: direct index for structure ( temp 4-component vector of float) -0:45 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:45 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:45 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:45 Constant: -0:45 0 (const uint) -0:45 direct index ( temp uint) -0:45 'dti' ( in 3-component vector of uint) -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 Constant: -0:45 0 (const int) -0:45 subgroupQuadBroadcast ( temp float) -0:45 direct index ( temp float) -0:45 f: direct index for structure ( temp 4-component vector of float) -0:45 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:45 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:45 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:45 Constant: -0:45 0 (const uint) -0:45 direct index ( temp uint) -0:45 'dti' ( in 3-component vector of uint) -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const uint) -0:46 move second child to first child ( temp 2-component vector of float) -0:46 vector swizzle ( temp 2-component vector of float) -0:46 f: direct index for structure ( temp 4-component vector of float) -0:46 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:46 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:46 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:46 Constant: -0:46 0 (const uint) -0:46 direct index ( temp uint) -0:46 'dti' ( in 3-component vector of uint) -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 subgroupQuadBroadcast ( temp 2-component vector of float) -0:46 vector swizzle ( temp 2-component vector of float) -0:46 f: direct index for structure ( temp 4-component vector of float) -0:46 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:46 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:46 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:46 Constant: -0:46 0 (const uint) -0:46 direct index ( temp uint) -0:46 'dti' ( in 3-component vector of uint) -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 1 (const uint) -0:47 move second child to first child ( temp 3-component vector of float) -0:47 vector swizzle ( temp 3-component vector of float) -0:47 f: direct index for structure ( temp 4-component vector of float) -0:47 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:47 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:47 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:47 Constant: -0:47 0 (const uint) -0:47 direct index ( temp uint) -0:47 'dti' ( in 3-component vector of uint) -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 2 (const int) -0:47 Sequence -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 1 (const int) -0:47 Constant: -0:47 2 (const int) -0:47 subgroupQuadBroadcast ( temp 3-component vector of float) -0:47 vector swizzle ( temp 3-component vector of float) -0:47 f: direct index for structure ( temp 4-component vector of float) -0:47 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:47 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:47 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:47 Constant: -0:47 0 (const uint) -0:47 direct index ( temp uint) -0:47 'dti' ( in 3-component vector of uint) -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 2 (const int) -0:47 Sequence -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 1 (const int) -0:47 Constant: -0:47 2 (const int) -0:47 Constant: -0:47 1 (const uint) -0:49 move second child to first child ( temp 4-component vector of double) -0:49 d: direct index for structure ( temp 4-component vector of double) -0:49 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:49 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:49 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:49 Constant: -0:49 0 (const uint) -0:49 direct index ( temp uint) -0:49 'dti' ( in 3-component vector of uint) -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 3 (const int) -0:49 subgroupQuadBroadcast ( temp 4-component vector of double) -0:49 d: direct index for structure ( temp 4-component vector of double) -0:49 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:49 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:49 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:49 Constant: -0:49 0 (const uint) -0:49 direct index ( temp uint) -0:49 'dti' ( in 3-component vector of uint) -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 3 (const int) -0:49 Constant: -0:49 1 (const uint) -0:50 move second child to first child ( temp double) -0:50 direct index ( temp double) -0:50 d: direct index for structure ( temp 4-component vector of double) -0:50 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:50 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:50 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:50 Constant: -0:50 0 (const uint) -0:50 direct index ( temp uint) -0:50 'dti' ( in 3-component vector of uint) -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 3 (const int) -0:50 Constant: -0:50 0 (const int) -0:50 subgroupQuadBroadcast ( temp double) -0:50 direct index ( temp double) -0:50 d: direct index for structure ( temp 4-component vector of double) -0:50 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:50 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:50 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:50 Constant: -0:50 0 (const uint) -0:50 direct index ( temp uint) -0:50 'dti' ( in 3-component vector of uint) -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 3 (const int) -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const uint) -0:51 move second child to first child ( temp 2-component vector of double) -0:51 vector swizzle ( temp 2-component vector of double) -0:51 d: direct index for structure ( temp 4-component vector of double) -0:51 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:51 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:51 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:51 Constant: -0:51 0 (const uint) -0:51 direct index ( temp uint) -0:51 'dti' ( in 3-component vector of uint) -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 3 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 subgroupQuadBroadcast ( temp 2-component vector of double) -0:51 vector swizzle ( temp 2-component vector of double) -0:51 d: direct index for structure ( temp 4-component vector of double) -0:51 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:51 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:51 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:51 Constant: -0:51 0 (const uint) -0:51 direct index ( temp uint) -0:51 'dti' ( in 3-component vector of uint) -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 3 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 1 (const uint) -0:52 move second child to first child ( temp 3-component vector of double) -0:52 vector swizzle ( temp 3-component vector of double) -0:52 d: direct index for structure ( temp 4-component vector of double) -0:52 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:52 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:52 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:52 Constant: -0:52 0 (const uint) -0:52 direct index ( temp uint) -0:52 'dti' ( in 3-component vector of uint) -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 3 (const int) -0:52 Sequence -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 1 (const int) -0:52 Constant: -0:52 2 (const int) -0:52 subgroupQuadBroadcast ( temp 3-component vector of double) -0:52 vector swizzle ( temp 3-component vector of double) -0:52 d: direct index for structure ( temp 4-component vector of double) -0:52 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:52 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:52 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:52 Constant: -0:52 0 (const uint) -0:52 direct index ( temp uint) -0:52 'dti' ( in 3-component vector of uint) -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 3 (const int) -0:52 Sequence -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 1 (const int) -0:52 Constant: -0:52 2 (const int) -0:52 Constant: -0:52 1 (const uint) -0:54 move second child to first child ( temp 4-component vector of uint) -0:54 u: direct index for structure ( temp 4-component vector of uint) -0:54 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:54 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:54 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:54 Constant: -0:54 0 (const uint) -0:54 direct index ( temp uint) -0:54 'dti' ( in 3-component vector of uint) -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 subgroupQuadBroadcast ( temp 4-component vector of uint) -0:54 u: direct index for structure ( temp 4-component vector of uint) -0:54 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:54 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:54 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:54 Constant: -0:54 0 (const uint) -0:54 direct index ( temp uint) -0:54 'dti' ( in 3-component vector of uint) -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 2 (const uint) -0:55 move second child to first child ( temp uint) -0:55 direct index ( temp uint) -0:55 u: direct index for structure ( temp 4-component vector of uint) -0:55 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:55 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:55 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:55 Constant: -0:55 0 (const uint) -0:55 direct index ( temp uint) -0:55 'dti' ( in 3-component vector of uint) -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 0 (const int) -0:55 subgroupQuadBroadcast ( temp uint) -0:55 direct index ( temp uint) -0:55 u: direct index for structure ( temp 4-component vector of uint) -0:55 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:55 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:55 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:55 Constant: -0:55 0 (const uint) -0:55 direct index ( temp uint) -0:55 'dti' ( in 3-component vector of uint) -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 2 (const uint) -0:56 move second child to first child ( temp 2-component vector of uint) -0:56 vector swizzle ( temp 2-component vector of uint) -0:56 u: direct index for structure ( temp 4-component vector of uint) -0:56 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:56 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:56 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:56 Constant: -0:56 0 (const uint) -0:56 direct index ( temp uint) -0:56 'dti' ( in 3-component vector of uint) -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 0 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 subgroupQuadBroadcast ( temp 2-component vector of uint) -0:56 vector swizzle ( temp 2-component vector of uint) -0:56 u: direct index for structure ( temp 4-component vector of uint) -0:56 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:56 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:56 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:56 Constant: -0:56 0 (const uint) -0:56 direct index ( temp uint) -0:56 'dti' ( in 3-component vector of uint) -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 0 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 2 (const uint) -0:57 move second child to first child ( temp 3-component vector of uint) -0:57 vector swizzle ( temp 3-component vector of uint) -0:57 u: direct index for structure ( temp 4-component vector of uint) -0:57 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:57 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:57 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:57 Constant: -0:57 0 (const uint) -0:57 direct index ( temp uint) -0:57 'dti' ( in 3-component vector of uint) -0:57 Constant: -0:57 0 (const int) -0:57 Constant: -0:57 0 (const int) -0:57 Sequence -0:57 Constant: -0:57 0 (const int) -0:57 Constant: -0:57 1 (const int) -0:57 Constant: -0:57 2 (const int) -0:57 subgroupQuadBroadcast ( temp 3-component vector of uint) -0:57 vector swizzle ( temp 3-component vector of uint) -0:57 u: direct index for structure ( temp 4-component vector of uint) -0:57 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:57 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:57 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:57 Constant: -0:57 0 (const uint) -0:57 direct index ( temp uint) -0:57 'dti' ( in 3-component vector of uint) -0:57 Constant: -0:57 0 (const int) -0:57 Constant: -0:57 0 (const int) -0:57 Sequence -0:57 Constant: -0:57 0 (const int) -0:57 Constant: -0:57 1 (const int) -0:57 Constant: -0:57 2 (const int) -0:57 Constant: -0:57 2 (const uint) -0:59 move second child to first child ( temp 4-component vector of int) -0:59 i: direct index for structure ( temp 4-component vector of int) -0:59 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:59 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:59 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:59 Constant: -0:59 0 (const uint) -0:59 direct index ( temp uint) -0:59 'dti' ( in 3-component vector of uint) -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 1 (const int) -0:59 subgroupQuadBroadcast ( temp 4-component vector of int) -0:59 i: direct index for structure ( temp 4-component vector of int) -0:59 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:59 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:59 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:59 Constant: -0:59 0 (const uint) -0:59 direct index ( temp uint) -0:59 'dti' ( in 3-component vector of uint) -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 1 (const int) -0:59 Constant: -0:59 2 (const uint) -0:60 move second child to first child ( temp int) -0:60 direct index ( temp int) -0:60 i: direct index for structure ( temp 4-component vector of int) -0:60 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:60 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:60 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:60 Constant: -0:60 0 (const uint) -0:60 direct index ( temp uint) -0:60 'dti' ( in 3-component vector of uint) -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 0 (const int) -0:60 subgroupQuadBroadcast ( temp int) -0:60 direct index ( temp int) -0:60 i: direct index for structure ( temp 4-component vector of int) -0:60 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:60 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:60 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:60 Constant: -0:60 0 (const uint) -0:60 direct index ( temp uint) -0:60 'dti' ( in 3-component vector of uint) -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 2 (const uint) -0:61 move second child to first child ( temp 2-component vector of int) -0:61 vector swizzle ( temp 2-component vector of int) -0:61 i: direct index for structure ( temp 4-component vector of int) -0:61 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:61 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:61 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:61 Constant: -0:61 0 (const uint) -0:61 direct index ( temp uint) -0:61 'dti' ( in 3-component vector of uint) -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 Sequence -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 subgroupQuadBroadcast ( temp 2-component vector of int) -0:61 vector swizzle ( temp 2-component vector of int) -0:61 i: direct index for structure ( temp 4-component vector of int) -0:61 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:61 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:61 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:61 Constant: -0:61 0 (const uint) -0:61 direct index ( temp uint) -0:61 'dti' ( in 3-component vector of uint) -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 Sequence -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 Constant: -0:61 2 (const uint) -0:62 move second child to first child ( temp 3-component vector of int) -0:62 vector swizzle ( temp 3-component vector of int) -0:62 i: direct index for structure ( temp 4-component vector of int) -0:62 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:62 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:62 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:62 Constant: -0:62 0 (const uint) -0:62 direct index ( temp uint) -0:62 'dti' ( in 3-component vector of uint) -0:62 Constant: -0:62 0 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 Sequence -0:62 Constant: -0:62 0 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 Constant: -0:62 2 (const int) -0:62 subgroupQuadBroadcast ( temp 3-component vector of int) -0:62 vector swizzle ( temp 3-component vector of int) -0:62 i: direct index for structure ( temp 4-component vector of int) -0:62 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:62 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:62 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:62 Constant: -0:62 0 (const uint) -0:62 direct index ( temp uint) -0:62 'dti' ( in 3-component vector of uint) -0:62 Constant: -0:62 0 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 Sequence -0:62 Constant: -0:62 0 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 Constant: -0:62 2 (const int) -0:62 Constant: -0:62 2 (const uint) -0:64 move second child to first child ( temp 4-component vector of float) -0:64 f: direct index for structure ( temp 4-component vector of float) -0:64 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:64 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:64 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:64 Constant: -0:64 0 (const uint) -0:64 direct index ( temp uint) -0:64 'dti' ( in 3-component vector of uint) -0:64 Constant: -0:64 0 (const int) -0:64 Constant: -0:64 2 (const int) -0:64 subgroupQuadBroadcast ( temp 4-component vector of float) -0:64 f: direct index for structure ( temp 4-component vector of float) -0:64 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:64 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:64 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:64 Constant: -0:64 0 (const uint) -0:64 direct index ( temp uint) -0:64 'dti' ( in 3-component vector of uint) -0:64 Constant: -0:64 0 (const int) -0:64 Constant: -0:64 2 (const int) -0:64 Constant: -0:64 2 (const uint) -0:65 move second child to first child ( temp float) -0:65 direct index ( temp float) -0:65 f: direct index for structure ( temp 4-component vector of float) -0:65 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:65 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:65 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:65 Constant: -0:65 0 (const uint) -0:65 direct index ( temp uint) -0:65 'dti' ( in 3-component vector of uint) -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 2 (const int) -0:65 Constant: -0:65 0 (const int) -0:65 subgroupQuadBroadcast ( temp float) -0:65 direct index ( temp float) -0:65 f: direct index for structure ( temp 4-component vector of float) -0:65 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:65 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:65 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:65 Constant: -0:65 0 (const uint) -0:65 direct index ( temp uint) -0:65 'dti' ( in 3-component vector of uint) -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 2 (const int) -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 2 (const uint) -0:66 move second child to first child ( temp 2-component vector of float) -0:66 vector swizzle ( temp 2-component vector of float) -0:66 f: direct index for structure ( temp 4-component vector of float) -0:66 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:66 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:66 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:66 Constant: -0:66 0 (const uint) -0:66 direct index ( temp uint) -0:66 'dti' ( in 3-component vector of uint) -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 2 (const int) -0:66 Sequence -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 subgroupQuadBroadcast ( temp 2-component vector of float) -0:66 vector swizzle ( temp 2-component vector of float) -0:66 f: direct index for structure ( temp 4-component vector of float) -0:66 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:66 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:66 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:66 Constant: -0:66 0 (const uint) -0:66 direct index ( temp uint) -0:66 'dti' ( in 3-component vector of uint) -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 2 (const int) -0:66 Sequence -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 2 (const uint) -0:67 move second child to first child ( temp 3-component vector of float) -0:67 vector swizzle ( temp 3-component vector of float) -0:67 f: direct index for structure ( temp 4-component vector of float) -0:67 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:67 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:67 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:67 Constant: -0:67 0 (const uint) -0:67 direct index ( temp uint) -0:67 'dti' ( in 3-component vector of uint) -0:67 Constant: -0:67 0 (const int) -0:67 Constant: -0:67 2 (const int) -0:67 Sequence -0:67 Constant: -0:67 0 (const int) -0:67 Constant: -0:67 1 (const int) -0:67 Constant: -0:67 2 (const int) -0:67 subgroupQuadBroadcast ( temp 3-component vector of float) -0:67 vector swizzle ( temp 3-component vector of float) -0:67 f: direct index for structure ( temp 4-component vector of float) -0:67 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:67 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:67 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:67 Constant: -0:67 0 (const uint) -0:67 direct index ( temp uint) -0:67 'dti' ( in 3-component vector of uint) -0:67 Constant: -0:67 0 (const int) -0:67 Constant: -0:67 2 (const int) -0:67 Sequence -0:67 Constant: -0:67 0 (const int) -0:67 Constant: -0:67 1 (const int) -0:67 Constant: -0:67 2 (const int) -0:67 Constant: -0:67 2 (const uint) -0:69 move second child to first child ( temp 4-component vector of double) -0:69 d: direct index for structure ( temp 4-component vector of double) -0:69 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:69 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:69 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:69 Constant: -0:69 0 (const uint) -0:69 direct index ( temp uint) -0:69 'dti' ( in 3-component vector of uint) -0:69 Constant: -0:69 0 (const int) -0:69 Constant: -0:69 3 (const int) -0:69 subgroupQuadBroadcast ( temp 4-component vector of double) -0:69 d: direct index for structure ( temp 4-component vector of double) -0:69 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:69 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:69 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:69 Constant: -0:69 0 (const uint) -0:69 direct index ( temp uint) -0:69 'dti' ( in 3-component vector of uint) -0:69 Constant: -0:69 0 (const int) -0:69 Constant: -0:69 3 (const int) -0:69 Constant: -0:69 2 (const uint) -0:70 move second child to first child ( temp double) -0:70 direct index ( temp double) -0:70 d: direct index for structure ( temp 4-component vector of double) -0:70 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:70 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:70 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:70 Constant: -0:70 0 (const uint) -0:70 direct index ( temp uint) -0:70 'dti' ( in 3-component vector of uint) -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 3 (const int) -0:70 Constant: -0:70 0 (const int) -0:70 subgroupQuadBroadcast ( temp double) -0:70 direct index ( temp double) -0:70 d: direct index for structure ( temp 4-component vector of double) -0:70 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:70 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:70 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:70 Constant: -0:70 0 (const uint) -0:70 direct index ( temp uint) -0:70 'dti' ( in 3-component vector of uint) -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 3 (const int) -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 2 (const uint) -0:71 move second child to first child ( temp 2-component vector of double) -0:71 vector swizzle ( temp 2-component vector of double) -0:71 d: direct index for structure ( temp 4-component vector of double) -0:71 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:71 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:71 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:71 Constant: -0:71 0 (const uint) -0:71 direct index ( temp uint) -0:71 'dti' ( in 3-component vector of uint) -0:71 Constant: -0:71 0 (const int) -0:71 Constant: -0:71 3 (const int) -0:71 Sequence -0:71 Constant: -0:71 0 (const int) -0:71 Constant: -0:71 1 (const int) -0:71 subgroupQuadBroadcast ( temp 2-component vector of double) -0:71 vector swizzle ( temp 2-component vector of double) -0:71 d: direct index for structure ( temp 4-component vector of double) -0:71 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:71 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:71 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:71 Constant: -0:71 0 (const uint) -0:71 direct index ( temp uint) -0:71 'dti' ( in 3-component vector of uint) -0:71 Constant: -0:71 0 (const int) -0:71 Constant: -0:71 3 (const int) -0:71 Sequence -0:71 Constant: -0:71 0 (const int) -0:71 Constant: -0:71 1 (const int) -0:71 Constant: -0:71 2 (const uint) -0:72 move second child to first child ( temp 3-component vector of double) -0:72 vector swizzle ( temp 3-component vector of double) -0:72 d: direct index for structure ( temp 4-component vector of double) -0:72 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:72 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:72 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:72 Constant: -0:72 0 (const uint) -0:72 direct index ( temp uint) -0:72 'dti' ( in 3-component vector of uint) -0:72 Constant: -0:72 0 (const int) -0:72 Constant: -0:72 3 (const int) -0:72 Sequence -0:72 Constant: -0:72 0 (const int) -0:72 Constant: -0:72 1 (const int) -0:72 Constant: -0:72 2 (const int) -0:72 subgroupQuadBroadcast ( temp 3-component vector of double) -0:72 vector swizzle ( temp 3-component vector of double) -0:72 d: direct index for structure ( temp 4-component vector of double) -0:72 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:72 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:72 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:72 Constant: -0:72 0 (const uint) -0:72 direct index ( temp uint) -0:72 'dti' ( in 3-component vector of uint) -0:72 Constant: -0:72 0 (const int) -0:72 Constant: -0:72 3 (const int) -0:72 Sequence -0:72 Constant: -0:72 0 (const int) -0:72 Constant: -0:72 1 (const int) -0:72 Constant: -0:72 2 (const int) -0:72 Constant: -0:72 2 (const uint) -0:74 move second child to first child ( temp 4-component vector of uint) -0:74 u: direct index for structure ( temp 4-component vector of uint) -0:74 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:74 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:74 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:74 Constant: -0:74 0 (const uint) -0:74 direct index ( temp uint) -0:74 'dti' ( in 3-component vector of uint) -0:74 Constant: -0:74 0 (const int) -0:74 Constant: -0:74 0 (const int) -0:74 subgroupQuadBroadcast ( temp 4-component vector of uint) -0:74 u: direct index for structure ( temp 4-component vector of uint) -0:74 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:74 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:74 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:74 Constant: -0:74 0 (const uint) -0:74 direct index ( temp uint) -0:74 'dti' ( in 3-component vector of uint) -0:74 Constant: -0:74 0 (const int) -0:74 Constant: -0:74 0 (const int) -0:74 Constant: -0:74 3 (const uint) -0:75 move second child to first child ( temp uint) -0:75 direct index ( temp uint) -0:75 u: direct index for structure ( temp 4-component vector of uint) -0:75 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:75 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:75 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:75 Constant: -0:75 0 (const uint) -0:75 direct index ( temp uint) -0:75 'dti' ( in 3-component vector of uint) -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 0 (const int) -0:75 subgroupQuadBroadcast ( temp uint) -0:75 direct index ( temp uint) -0:75 u: direct index for structure ( temp 4-component vector of uint) -0:75 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:75 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:75 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:75 Constant: -0:75 0 (const uint) -0:75 direct index ( temp uint) -0:75 'dti' ( in 3-component vector of uint) -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 3 (const uint) -0:76 move second child to first child ( temp 2-component vector of uint) -0:76 vector swizzle ( temp 2-component vector of uint) -0:76 u: direct index for structure ( temp 4-component vector of uint) -0:76 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:76 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:76 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:76 Constant: -0:76 0 (const uint) -0:76 direct index ( temp uint) -0:76 'dti' ( in 3-component vector of uint) -0:76 Constant: -0:76 0 (const int) -0:76 Constant: -0:76 0 (const int) -0:76 Sequence -0:76 Constant: -0:76 0 (const int) -0:76 Constant: -0:76 1 (const int) -0:76 subgroupQuadBroadcast ( temp 2-component vector of uint) -0:76 vector swizzle ( temp 2-component vector of uint) -0:76 u: direct index for structure ( temp 4-component vector of uint) -0:76 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:76 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:76 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:76 Constant: -0:76 0 (const uint) -0:76 direct index ( temp uint) -0:76 'dti' ( in 3-component vector of uint) -0:76 Constant: -0:76 0 (const int) -0:76 Constant: -0:76 0 (const int) -0:76 Sequence -0:76 Constant: -0:76 0 (const int) -0:76 Constant: -0:76 1 (const int) -0:76 Constant: -0:76 3 (const uint) -0:77 move second child to first child ( temp 3-component vector of uint) -0:77 vector swizzle ( temp 3-component vector of uint) -0:77 u: direct index for structure ( temp 4-component vector of uint) -0:77 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:77 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:77 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:77 Constant: -0:77 0 (const uint) -0:77 direct index ( temp uint) -0:77 'dti' ( in 3-component vector of uint) -0:77 Constant: -0:77 0 (const int) -0:77 Constant: -0:77 0 (const int) -0:77 Sequence -0:77 Constant: -0:77 0 (const int) -0:77 Constant: -0:77 1 (const int) -0:77 Constant: -0:77 2 (const int) -0:77 subgroupQuadBroadcast ( temp 3-component vector of uint) -0:77 vector swizzle ( temp 3-component vector of uint) -0:77 u: direct index for structure ( temp 4-component vector of uint) -0:77 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:77 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:77 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:77 Constant: -0:77 0 (const uint) -0:77 direct index ( temp uint) -0:77 'dti' ( in 3-component vector of uint) -0:77 Constant: -0:77 0 (const int) -0:77 Constant: -0:77 0 (const int) -0:77 Sequence -0:77 Constant: -0:77 0 (const int) -0:77 Constant: -0:77 1 (const int) -0:77 Constant: -0:77 2 (const int) -0:77 Constant: -0:77 3 (const uint) -0:79 move second child to first child ( temp 4-component vector of int) -0:79 i: direct index for structure ( temp 4-component vector of int) -0:79 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:79 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:79 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:79 Constant: -0:79 0 (const uint) -0:79 direct index ( temp uint) -0:79 'dti' ( in 3-component vector of uint) -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 1 (const int) -0:79 subgroupQuadBroadcast ( temp 4-component vector of int) -0:79 i: direct index for structure ( temp 4-component vector of int) -0:79 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:79 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:79 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:79 Constant: -0:79 0 (const uint) -0:79 direct index ( temp uint) -0:79 'dti' ( in 3-component vector of uint) -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 1 (const int) -0:79 Constant: -0:79 3 (const uint) -0:80 move second child to first child ( temp int) -0:80 direct index ( temp int) -0:80 i: direct index for structure ( temp 4-component vector of int) -0:80 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:80 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:80 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:80 Constant: -0:80 0 (const uint) -0:80 direct index ( temp uint) -0:80 'dti' ( in 3-component vector of uint) -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 1 (const int) -0:80 Constant: -0:80 0 (const int) -0:80 subgroupQuadBroadcast ( temp int) -0:80 direct index ( temp int) -0:80 i: direct index for structure ( temp 4-component vector of int) -0:80 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:80 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:80 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:80 Constant: -0:80 0 (const uint) -0:80 direct index ( temp uint) -0:80 'dti' ( in 3-component vector of uint) -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 1 (const int) -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 3 (const uint) -0:81 move second child to first child ( temp 2-component vector of int) -0:81 vector swizzle ( temp 2-component vector of int) -0:81 i: direct index for structure ( temp 4-component vector of int) -0:81 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:81 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:81 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:81 Constant: -0:81 0 (const uint) -0:81 direct index ( temp uint) -0:81 'dti' ( in 3-component vector of uint) -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 1 (const int) -0:81 Sequence -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 1 (const int) -0:81 subgroupQuadBroadcast ( temp 2-component vector of int) -0:81 vector swizzle ( temp 2-component vector of int) -0:81 i: direct index for structure ( temp 4-component vector of int) -0:81 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:81 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:81 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:81 Constant: -0:81 0 (const uint) -0:81 direct index ( temp uint) -0:81 'dti' ( in 3-component vector of uint) -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 1 (const int) -0:81 Sequence -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 1 (const int) -0:81 Constant: -0:81 3 (const uint) -0:82 move second child to first child ( temp 3-component vector of int) -0:82 vector swizzle ( temp 3-component vector of int) -0:82 i: direct index for structure ( temp 4-component vector of int) -0:82 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:82 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:82 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:82 Constant: -0:82 0 (const uint) -0:82 direct index ( temp uint) -0:82 'dti' ( in 3-component vector of uint) -0:82 Constant: -0:82 0 (const int) -0:82 Constant: -0:82 1 (const int) -0:82 Sequence -0:82 Constant: -0:82 0 (const int) -0:82 Constant: -0:82 1 (const int) -0:82 Constant: -0:82 2 (const int) -0:82 subgroupQuadBroadcast ( temp 3-component vector of int) -0:82 vector swizzle ( temp 3-component vector of int) -0:82 i: direct index for structure ( temp 4-component vector of int) -0:82 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:82 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:82 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:82 Constant: -0:82 0 (const uint) -0:82 direct index ( temp uint) -0:82 'dti' ( in 3-component vector of uint) -0:82 Constant: -0:82 0 (const int) -0:82 Constant: -0:82 1 (const int) -0:82 Sequence -0:82 Constant: -0:82 0 (const int) -0:82 Constant: -0:82 1 (const int) -0:82 Constant: -0:82 2 (const int) -0:82 Constant: -0:82 3 (const uint) -0:84 move second child to first child ( temp 4-component vector of float) -0:84 f: direct index for structure ( temp 4-component vector of float) -0:84 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:84 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:84 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:84 Constant: -0:84 0 (const uint) -0:84 direct index ( temp uint) -0:84 'dti' ( in 3-component vector of uint) -0:84 Constant: -0:84 0 (const int) -0:84 Constant: -0:84 2 (const int) -0:84 subgroupQuadBroadcast ( temp 4-component vector of float) -0:84 f: direct index for structure ( temp 4-component vector of float) -0:84 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:84 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:84 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:84 Constant: -0:84 0 (const uint) -0:84 direct index ( temp uint) -0:84 'dti' ( in 3-component vector of uint) -0:84 Constant: -0:84 0 (const int) -0:84 Constant: -0:84 2 (const int) -0:84 Constant: -0:84 3 (const uint) -0:85 move second child to first child ( temp float) -0:85 direct index ( temp float) -0:85 f: direct index for structure ( temp 4-component vector of float) -0:85 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:85 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:85 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:85 Constant: -0:85 0 (const uint) -0:85 direct index ( temp uint) -0:85 'dti' ( in 3-component vector of uint) -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 2 (const int) -0:85 Constant: -0:85 0 (const int) -0:85 subgroupQuadBroadcast ( temp float) -0:85 direct index ( temp float) -0:85 f: direct index for structure ( temp 4-component vector of float) -0:85 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:85 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:85 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:85 Constant: -0:85 0 (const uint) -0:85 direct index ( temp uint) -0:85 'dti' ( in 3-component vector of uint) -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 2 (const int) -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 3 (const uint) -0:86 move second child to first child ( temp 2-component vector of float) -0:86 vector swizzle ( temp 2-component vector of float) -0:86 f: direct index for structure ( temp 4-component vector of float) -0:86 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:86 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:86 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:86 Constant: -0:86 0 (const uint) -0:86 direct index ( temp uint) -0:86 'dti' ( in 3-component vector of uint) -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 2 (const int) -0:86 Sequence -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 1 (const int) -0:86 subgroupQuadBroadcast ( temp 2-component vector of float) -0:86 vector swizzle ( temp 2-component vector of float) -0:86 f: direct index for structure ( temp 4-component vector of float) -0:86 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:86 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:86 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:86 Constant: -0:86 0 (const uint) -0:86 direct index ( temp uint) -0:86 'dti' ( in 3-component vector of uint) -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 2 (const int) -0:86 Sequence -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 1 (const int) -0:86 Constant: -0:86 3 (const uint) -0:87 move second child to first child ( temp 3-component vector of float) -0:87 vector swizzle ( temp 3-component vector of float) -0:87 f: direct index for structure ( temp 4-component vector of float) -0:87 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:87 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:87 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:87 Constant: -0:87 0 (const uint) -0:87 direct index ( temp uint) -0:87 'dti' ( in 3-component vector of uint) -0:87 Constant: -0:87 0 (const int) -0:87 Constant: -0:87 2 (const int) -0:87 Sequence -0:87 Constant: -0:87 0 (const int) -0:87 Constant: -0:87 1 (const int) -0:87 Constant: -0:87 2 (const int) -0:87 subgroupQuadBroadcast ( temp 3-component vector of float) -0:87 vector swizzle ( temp 3-component vector of float) -0:87 f: direct index for structure ( temp 4-component vector of float) -0:87 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:87 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:87 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:87 Constant: -0:87 0 (const uint) -0:87 direct index ( temp uint) -0:87 'dti' ( in 3-component vector of uint) -0:87 Constant: -0:87 0 (const int) -0:87 Constant: -0:87 2 (const int) -0:87 Sequence -0:87 Constant: -0:87 0 (const int) -0:87 Constant: -0:87 1 (const int) -0:87 Constant: -0:87 2 (const int) -0:87 Constant: -0:87 3 (const uint) -0:89 move second child to first child ( temp 4-component vector of double) -0:89 d: direct index for structure ( temp 4-component vector of double) -0:89 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:89 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:89 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:89 Constant: -0:89 0 (const uint) -0:89 direct index ( temp uint) -0:89 'dti' ( in 3-component vector of uint) -0:89 Constant: -0:89 0 (const int) -0:89 Constant: -0:89 3 (const int) -0:89 subgroupQuadBroadcast ( temp 4-component vector of double) -0:89 d: direct index for structure ( temp 4-component vector of double) -0:89 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:89 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:89 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:89 Constant: -0:89 0 (const uint) -0:89 direct index ( temp uint) -0:89 'dti' ( in 3-component vector of uint) -0:89 Constant: -0:89 0 (const int) -0:89 Constant: -0:89 3 (const int) -0:89 Constant: -0:89 3 (const uint) -0:90 move second child to first child ( temp double) -0:90 direct index ( temp double) -0:90 d: direct index for structure ( temp 4-component vector of double) -0:90 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:90 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:90 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:90 Constant: -0:90 0 (const uint) -0:90 direct index ( temp uint) -0:90 'dti' ( in 3-component vector of uint) -0:90 Constant: -0:90 0 (const int) -0:90 Constant: -0:90 3 (const int) -0:90 Constant: -0:90 0 (const int) -0:90 subgroupQuadBroadcast ( temp double) -0:90 direct index ( temp double) -0:90 d: direct index for structure ( temp 4-component vector of double) -0:90 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:90 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:90 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:90 Constant: -0:90 0 (const uint) -0:90 direct index ( temp uint) -0:90 'dti' ( in 3-component vector of uint) -0:90 Constant: -0:90 0 (const int) -0:90 Constant: -0:90 3 (const int) -0:90 Constant: -0:90 0 (const int) -0:90 Constant: -0:90 3 (const uint) -0:91 move second child to first child ( temp 2-component vector of double) -0:91 vector swizzle ( temp 2-component vector of double) -0:91 d: direct index for structure ( temp 4-component vector of double) -0:91 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:91 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:91 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:91 Constant: -0:91 0 (const uint) -0:91 direct index ( temp uint) -0:91 'dti' ( in 3-component vector of uint) -0:91 Constant: -0:91 0 (const int) -0:91 Constant: -0:91 3 (const int) -0:91 Sequence -0:91 Constant: -0:91 0 (const int) -0:91 Constant: -0:91 1 (const int) -0:91 subgroupQuadBroadcast ( temp 2-component vector of double) -0:91 vector swizzle ( temp 2-component vector of double) -0:91 d: direct index for structure ( temp 4-component vector of double) -0:91 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:91 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:91 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:91 Constant: -0:91 0 (const uint) -0:91 direct index ( temp uint) -0:91 'dti' ( in 3-component vector of uint) -0:91 Constant: -0:91 0 (const int) -0:91 Constant: -0:91 3 (const int) -0:91 Sequence -0:91 Constant: -0:91 0 (const int) -0:91 Constant: -0:91 1 (const int) -0:91 Constant: -0:91 3 (const uint) -0:92 move second child to first child ( temp 3-component vector of double) -0:92 vector swizzle ( temp 3-component vector of double) -0:92 d: direct index for structure ( temp 4-component vector of double) -0:92 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:92 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:92 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:92 Constant: -0:92 0 (const uint) -0:92 direct index ( temp uint) -0:92 'dti' ( in 3-component vector of uint) -0:92 Constant: -0:92 0 (const int) -0:92 Constant: -0:92 3 (const int) -0:92 Sequence -0:92 Constant: -0:92 0 (const int) -0:92 Constant: -0:92 1 (const int) -0:92 Constant: -0:92 2 (const int) -0:92 subgroupQuadBroadcast ( temp 3-component vector of double) -0:92 vector swizzle ( temp 3-component vector of double) -0:92 d: direct index for structure ( temp 4-component vector of double) -0:92 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:92 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:92 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:92 Constant: -0:92 0 (const uint) -0:92 direct index ( temp uint) -0:92 'dti' ( in 3-component vector of uint) -0:92 Constant: -0:92 0 (const int) -0:92 Constant: -0:92 3 (const int) -0:92 Sequence -0:92 Constant: -0:92 0 (const int) -0:92 Constant: -0:92 1 (const int) -0:92 Constant: -0:92 2 (const int) -0:92 Constant: -0:92 3 (const uint) -0:94 move second child to first child ( temp 4-component vector of uint) -0:94 u: direct index for structure ( temp 4-component vector of uint) -0:94 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:94 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:94 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:94 Constant: -0:94 0 (const uint) -0:94 direct index ( temp uint) -0:94 'dti' ( in 3-component vector of uint) -0:94 Constant: -0:94 0 (const int) -0:94 Constant: -0:94 0 (const int) -0:94 subgroupQuadSwapHorizontal ( temp 4-component vector of uint) -0:94 u: direct index for structure ( temp 4-component vector of uint) -0:94 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:94 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:94 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:94 Constant: -0:94 0 (const uint) -0:94 direct index ( temp uint) -0:94 'dti' ( in 3-component vector of uint) -0:94 Constant: -0:94 0 (const int) -0:94 Constant: -0:94 0 (const int) -0:95 move second child to first child ( temp uint) -0:95 direct index ( temp uint) -0:95 u: direct index for structure ( temp 4-component vector of uint) -0:95 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:95 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:95 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:95 Constant: -0:95 0 (const uint) -0:95 direct index ( temp uint) -0:95 'dti' ( in 3-component vector of uint) -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 0 (const int) -0:95 subgroupQuadSwapHorizontal ( temp uint) -0:95 direct index ( temp uint) -0:95 u: direct index for structure ( temp 4-component vector of uint) -0:95 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:95 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:95 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:95 Constant: -0:95 0 (const uint) -0:95 direct index ( temp uint) -0:95 'dti' ( in 3-component vector of uint) -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 0 (const int) -0:96 move second child to first child ( temp 2-component vector of uint) -0:96 vector swizzle ( temp 2-component vector of uint) -0:96 u: direct index for structure ( temp 4-component vector of uint) -0:96 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:96 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:96 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:96 Constant: -0:96 0 (const uint) -0:96 direct index ( temp uint) -0:96 'dti' ( in 3-component vector of uint) -0:96 Constant: -0:96 0 (const int) -0:96 Constant: -0:96 0 (const int) -0:96 Sequence -0:96 Constant: -0:96 0 (const int) -0:96 Constant: -0:96 1 (const int) -0:96 subgroupQuadSwapHorizontal ( temp 2-component vector of uint) -0:96 vector swizzle ( temp 2-component vector of uint) -0:96 u: direct index for structure ( temp 4-component vector of uint) -0:96 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:96 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:96 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:96 Constant: -0:96 0 (const uint) -0:96 direct index ( temp uint) -0:96 'dti' ( in 3-component vector of uint) -0:96 Constant: -0:96 0 (const int) -0:96 Constant: -0:96 0 (const int) -0:96 Sequence -0:96 Constant: -0:96 0 (const int) -0:96 Constant: -0:96 1 (const int) -0:97 move second child to first child ( temp 3-component vector of uint) -0:97 vector swizzle ( temp 3-component vector of uint) -0:97 u: direct index for structure ( temp 4-component vector of uint) -0:97 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:97 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:97 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:97 Constant: -0:97 0 (const uint) -0:97 direct index ( temp uint) -0:97 'dti' ( in 3-component vector of uint) -0:97 Constant: -0:97 0 (const int) -0:97 Constant: -0:97 0 (const int) -0:97 Sequence -0:97 Constant: -0:97 0 (const int) -0:97 Constant: -0:97 1 (const int) -0:97 Constant: -0:97 2 (const int) -0:97 subgroupQuadSwapHorizontal ( temp 3-component vector of uint) -0:97 vector swizzle ( temp 3-component vector of uint) -0:97 u: direct index for structure ( temp 4-component vector of uint) -0:97 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:97 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:97 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:97 Constant: -0:97 0 (const uint) -0:97 direct index ( temp uint) -0:97 'dti' ( in 3-component vector of uint) -0:97 Constant: -0:97 0 (const int) -0:97 Constant: -0:97 0 (const int) -0:97 Sequence -0:97 Constant: -0:97 0 (const int) -0:97 Constant: -0:97 1 (const int) -0:97 Constant: -0:97 2 (const int) -0:99 move second child to first child ( temp 4-component vector of int) -0:99 i: direct index for structure ( temp 4-component vector of int) -0:99 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:99 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:99 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:99 Constant: -0:99 0 (const uint) -0:99 direct index ( temp uint) -0:99 'dti' ( in 3-component vector of uint) -0:99 Constant: -0:99 0 (const int) -0:99 Constant: -0:99 1 (const int) -0:99 subgroupQuadSwapHorizontal ( temp 4-component vector of int) -0:99 i: direct index for structure ( temp 4-component vector of int) -0:99 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:99 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:99 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:99 Constant: -0:99 0 (const uint) -0:99 direct index ( temp uint) -0:99 'dti' ( in 3-component vector of uint) -0:99 Constant: -0:99 0 (const int) -0:99 Constant: -0:99 1 (const int) -0:100 move second child to first child ( temp int) -0:100 direct index ( temp int) -0:100 i: direct index for structure ( temp 4-component vector of int) -0:100 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:100 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:100 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:100 Constant: -0:100 0 (const uint) -0:100 direct index ( temp uint) -0:100 'dti' ( in 3-component vector of uint) -0:100 Constant: -0:100 0 (const int) -0:100 Constant: -0:100 1 (const int) -0:100 Constant: -0:100 0 (const int) -0:100 subgroupQuadSwapHorizontal ( temp int) -0:100 direct index ( temp int) -0:100 i: direct index for structure ( temp 4-component vector of int) -0:100 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:100 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:100 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:100 Constant: -0:100 0 (const uint) -0:100 direct index ( temp uint) -0:100 'dti' ( in 3-component vector of uint) -0:100 Constant: -0:100 0 (const int) -0:100 Constant: -0:100 1 (const int) -0:100 Constant: -0:100 0 (const int) -0:101 move second child to first child ( temp 2-component vector of int) -0:101 vector swizzle ( temp 2-component vector of int) -0:101 i: direct index for structure ( temp 4-component vector of int) -0:101 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:101 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:101 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:101 Constant: -0:101 0 (const uint) -0:101 direct index ( temp uint) -0:101 'dti' ( in 3-component vector of uint) -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 1 (const int) -0:101 Sequence -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 1 (const int) -0:101 subgroupQuadSwapHorizontal ( temp 2-component vector of int) -0:101 vector swizzle ( temp 2-component vector of int) -0:101 i: direct index for structure ( temp 4-component vector of int) -0:101 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:101 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:101 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:101 Constant: -0:101 0 (const uint) -0:101 direct index ( temp uint) -0:101 'dti' ( in 3-component vector of uint) -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 1 (const int) -0:101 Sequence -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 1 (const int) -0:102 move second child to first child ( temp 3-component vector of int) -0:102 vector swizzle ( temp 3-component vector of int) -0:102 i: direct index for structure ( temp 4-component vector of int) -0:102 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:102 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:102 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:102 Constant: -0:102 0 (const uint) -0:102 direct index ( temp uint) -0:102 'dti' ( in 3-component vector of uint) -0:102 Constant: -0:102 0 (const int) -0:102 Constant: -0:102 1 (const int) -0:102 Sequence -0:102 Constant: -0:102 0 (const int) -0:102 Constant: -0:102 1 (const int) -0:102 Constant: -0:102 2 (const int) -0:102 subgroupQuadSwapHorizontal ( temp 3-component vector of int) -0:102 vector swizzle ( temp 3-component vector of int) -0:102 i: direct index for structure ( temp 4-component vector of int) -0:102 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:102 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:102 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:102 Constant: -0:102 0 (const uint) -0:102 direct index ( temp uint) -0:102 'dti' ( in 3-component vector of uint) -0:102 Constant: -0:102 0 (const int) -0:102 Constant: -0:102 1 (const int) -0:102 Sequence -0:102 Constant: -0:102 0 (const int) -0:102 Constant: -0:102 1 (const int) -0:102 Constant: -0:102 2 (const int) -0:104 move second child to first child ( temp 4-component vector of float) -0:104 f: direct index for structure ( temp 4-component vector of float) -0:104 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:104 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:104 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:104 Constant: -0:104 0 (const uint) -0:104 direct index ( temp uint) -0:104 'dti' ( in 3-component vector of uint) -0:104 Constant: -0:104 0 (const int) -0:104 Constant: -0:104 2 (const int) -0:104 subgroupQuadSwapHorizontal ( temp 4-component vector of float) -0:104 f: direct index for structure ( temp 4-component vector of float) -0:104 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:104 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:104 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:104 Constant: -0:104 0 (const uint) -0:104 direct index ( temp uint) -0:104 'dti' ( in 3-component vector of uint) -0:104 Constant: -0:104 0 (const int) -0:104 Constant: -0:104 2 (const int) -0:105 move second child to first child ( temp float) -0:105 direct index ( temp float) -0:105 f: direct index for structure ( temp 4-component vector of float) -0:105 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:105 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:105 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:105 Constant: -0:105 0 (const uint) -0:105 direct index ( temp uint) -0:105 'dti' ( in 3-component vector of uint) -0:105 Constant: -0:105 0 (const int) -0:105 Constant: -0:105 2 (const int) -0:105 Constant: -0:105 0 (const int) -0:105 subgroupQuadSwapHorizontal ( temp float) -0:105 direct index ( temp float) -0:105 f: direct index for structure ( temp 4-component vector of float) -0:105 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:105 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:105 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:105 Constant: -0:105 0 (const uint) -0:105 direct index ( temp uint) -0:105 'dti' ( in 3-component vector of uint) -0:105 Constant: -0:105 0 (const int) -0:105 Constant: -0:105 2 (const int) -0:105 Constant: -0:105 0 (const int) -0:106 move second child to first child ( temp 2-component vector of float) -0:106 vector swizzle ( temp 2-component vector of float) -0:106 f: direct index for structure ( temp 4-component vector of float) -0:106 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:106 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:106 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:106 Constant: -0:106 0 (const uint) -0:106 direct index ( temp uint) -0:106 'dti' ( in 3-component vector of uint) -0:106 Constant: -0:106 0 (const int) -0:106 Constant: -0:106 2 (const int) -0:106 Sequence -0:106 Constant: -0:106 0 (const int) -0:106 Constant: -0:106 1 (const int) -0:106 subgroupQuadSwapHorizontal ( temp 2-component vector of float) -0:106 vector swizzle ( temp 2-component vector of float) -0:106 f: direct index for structure ( temp 4-component vector of float) -0:106 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:106 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:106 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:106 Constant: -0:106 0 (const uint) -0:106 direct index ( temp uint) -0:106 'dti' ( in 3-component vector of uint) -0:106 Constant: -0:106 0 (const int) -0:106 Constant: -0:106 2 (const int) -0:106 Sequence -0:106 Constant: -0:106 0 (const int) -0:106 Constant: -0:106 1 (const int) -0:107 move second child to first child ( temp 3-component vector of float) -0:107 vector swizzle ( temp 3-component vector of float) -0:107 f: direct index for structure ( temp 4-component vector of float) -0:107 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:107 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:107 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:107 Constant: -0:107 0 (const uint) -0:107 direct index ( temp uint) -0:107 'dti' ( in 3-component vector of uint) -0:107 Constant: -0:107 0 (const int) -0:107 Constant: -0:107 2 (const int) -0:107 Sequence -0:107 Constant: -0:107 0 (const int) -0:107 Constant: -0:107 1 (const int) -0:107 Constant: -0:107 2 (const int) -0:107 subgroupQuadSwapHorizontal ( temp 3-component vector of float) -0:107 vector swizzle ( temp 3-component vector of float) -0:107 f: direct index for structure ( temp 4-component vector of float) -0:107 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:107 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:107 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:107 Constant: -0:107 0 (const uint) -0:107 direct index ( temp uint) -0:107 'dti' ( in 3-component vector of uint) -0:107 Constant: -0:107 0 (const int) -0:107 Constant: -0:107 2 (const int) -0:107 Sequence -0:107 Constant: -0:107 0 (const int) -0:107 Constant: -0:107 1 (const int) -0:107 Constant: -0:107 2 (const int) -0:109 move second child to first child ( temp 4-component vector of double) -0:109 d: direct index for structure ( temp 4-component vector of double) -0:109 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:109 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:109 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:109 Constant: -0:109 0 (const uint) -0:109 direct index ( temp uint) -0:109 'dti' ( in 3-component vector of uint) -0:109 Constant: -0:109 0 (const int) -0:109 Constant: -0:109 3 (const int) -0:109 subgroupQuadSwapHorizontal ( temp 4-component vector of double) -0:109 d: direct index for structure ( temp 4-component vector of double) -0:109 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:109 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:109 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:109 Constant: -0:109 0 (const uint) -0:109 direct index ( temp uint) -0:109 'dti' ( in 3-component vector of uint) -0:109 Constant: -0:109 0 (const int) -0:109 Constant: -0:109 3 (const int) -0:110 move second child to first child ( temp double) -0:110 direct index ( temp double) -0:110 d: direct index for structure ( temp 4-component vector of double) -0:110 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:110 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:110 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:110 Constant: -0:110 0 (const uint) -0:110 direct index ( temp uint) -0:110 'dti' ( in 3-component vector of uint) -0:110 Constant: -0:110 0 (const int) -0:110 Constant: -0:110 3 (const int) -0:110 Constant: -0:110 0 (const int) -0:110 subgroupQuadSwapHorizontal ( temp double) -0:110 direct index ( temp double) -0:110 d: direct index for structure ( temp 4-component vector of double) -0:110 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:110 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:110 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:110 Constant: -0:110 0 (const uint) -0:110 direct index ( temp uint) -0:110 'dti' ( in 3-component vector of uint) -0:110 Constant: -0:110 0 (const int) -0:110 Constant: -0:110 3 (const int) -0:110 Constant: -0:110 0 (const int) -0:111 move second child to first child ( temp 2-component vector of double) -0:111 vector swizzle ( temp 2-component vector of double) -0:111 d: direct index for structure ( temp 4-component vector of double) -0:111 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:111 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:111 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:111 Constant: -0:111 0 (const uint) -0:111 direct index ( temp uint) -0:111 'dti' ( in 3-component vector of uint) -0:111 Constant: -0:111 0 (const int) -0:111 Constant: -0:111 3 (const int) -0:111 Sequence -0:111 Constant: -0:111 0 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 subgroupQuadSwapHorizontal ( temp 2-component vector of double) -0:111 vector swizzle ( temp 2-component vector of double) -0:111 d: direct index for structure ( temp 4-component vector of double) -0:111 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:111 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:111 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:111 Constant: -0:111 0 (const uint) -0:111 direct index ( temp uint) -0:111 'dti' ( in 3-component vector of uint) -0:111 Constant: -0:111 0 (const int) -0:111 Constant: -0:111 3 (const int) -0:111 Sequence -0:111 Constant: -0:111 0 (const int) -0:111 Constant: -0:111 1 (const int) -0:112 move second child to first child ( temp 3-component vector of double) -0:112 vector swizzle ( temp 3-component vector of double) -0:112 d: direct index for structure ( temp 4-component vector of double) -0:112 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:112 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:112 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:112 Constant: -0:112 0 (const uint) -0:112 direct index ( temp uint) -0:112 'dti' ( in 3-component vector of uint) -0:112 Constant: -0:112 0 (const int) -0:112 Constant: -0:112 3 (const int) -0:112 Sequence -0:112 Constant: -0:112 0 (const int) -0:112 Constant: -0:112 1 (const int) -0:112 Constant: -0:112 2 (const int) -0:112 subgroupQuadSwapHorizontal ( temp 3-component vector of double) -0:112 vector swizzle ( temp 3-component vector of double) -0:112 d: direct index for structure ( temp 4-component vector of double) -0:112 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:112 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:112 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:112 Constant: -0:112 0 (const uint) -0:112 direct index ( temp uint) -0:112 'dti' ( in 3-component vector of uint) -0:112 Constant: -0:112 0 (const int) -0:112 Constant: -0:112 3 (const int) -0:112 Sequence -0:112 Constant: -0:112 0 (const int) -0:112 Constant: -0:112 1 (const int) -0:112 Constant: -0:112 2 (const int) -0:114 move second child to first child ( temp 4-component vector of uint) -0:114 u: direct index for structure ( temp 4-component vector of uint) -0:114 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:114 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:114 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:114 Constant: -0:114 0 (const uint) -0:114 direct index ( temp uint) -0:114 'dti' ( in 3-component vector of uint) -0:114 Constant: -0:114 0 (const int) -0:114 Constant: -0:114 0 (const int) -0:114 subgroupQuadSwapVertical ( temp 4-component vector of uint) -0:114 u: direct index for structure ( temp 4-component vector of uint) -0:114 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:114 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:114 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:114 Constant: -0:114 0 (const uint) -0:114 direct index ( temp uint) -0:114 'dti' ( in 3-component vector of uint) -0:114 Constant: -0:114 0 (const int) -0:114 Constant: -0:114 0 (const int) -0:115 move second child to first child ( temp uint) -0:115 direct index ( temp uint) -0:115 u: direct index for structure ( temp 4-component vector of uint) -0:115 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:115 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:115 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:115 Constant: -0:115 0 (const uint) -0:115 direct index ( temp uint) -0:115 'dti' ( in 3-component vector of uint) -0:115 Constant: -0:115 0 (const int) -0:115 Constant: -0:115 0 (const int) -0:115 Constant: -0:115 0 (const int) -0:115 subgroupQuadSwapVertical ( temp uint) -0:115 direct index ( temp uint) -0:115 u: direct index for structure ( temp 4-component vector of uint) -0:115 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:115 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:115 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:115 Constant: -0:115 0 (const uint) -0:115 direct index ( temp uint) -0:115 'dti' ( in 3-component vector of uint) -0:115 Constant: -0:115 0 (const int) -0:115 Constant: -0:115 0 (const int) -0:115 Constant: -0:115 0 (const int) -0:116 move second child to first child ( temp 2-component vector of uint) -0:116 vector swizzle ( temp 2-component vector of uint) -0:116 u: direct index for structure ( temp 4-component vector of uint) -0:116 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:116 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:116 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:116 Constant: -0:116 0 (const uint) -0:116 direct index ( temp uint) -0:116 'dti' ( in 3-component vector of uint) -0:116 Constant: -0:116 0 (const int) -0:116 Constant: -0:116 0 (const int) -0:116 Sequence -0:116 Constant: -0:116 0 (const int) -0:116 Constant: -0:116 1 (const int) -0:116 subgroupQuadSwapVertical ( temp 2-component vector of uint) -0:116 vector swizzle ( temp 2-component vector of uint) -0:116 u: direct index for structure ( temp 4-component vector of uint) -0:116 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:116 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:116 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:116 Constant: -0:116 0 (const uint) -0:116 direct index ( temp uint) -0:116 'dti' ( in 3-component vector of uint) -0:116 Constant: -0:116 0 (const int) -0:116 Constant: -0:116 0 (const int) -0:116 Sequence -0:116 Constant: -0:116 0 (const int) -0:116 Constant: -0:116 1 (const int) -0:117 move second child to first child ( temp 3-component vector of uint) -0:117 vector swizzle ( temp 3-component vector of uint) -0:117 u: direct index for structure ( temp 4-component vector of uint) -0:117 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:117 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:117 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:117 Constant: -0:117 0 (const uint) -0:117 direct index ( temp uint) -0:117 'dti' ( in 3-component vector of uint) -0:117 Constant: -0:117 0 (const int) -0:117 Constant: -0:117 0 (const int) -0:117 Sequence -0:117 Constant: -0:117 0 (const int) -0:117 Constant: -0:117 1 (const int) -0:117 Constant: -0:117 2 (const int) -0:117 subgroupQuadSwapVertical ( temp 3-component vector of uint) -0:117 vector swizzle ( temp 3-component vector of uint) -0:117 u: direct index for structure ( temp 4-component vector of uint) -0:117 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:117 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:117 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:117 Constant: -0:117 0 (const uint) -0:117 direct index ( temp uint) -0:117 'dti' ( in 3-component vector of uint) -0:117 Constant: -0:117 0 (const int) -0:117 Constant: -0:117 0 (const int) -0:117 Sequence -0:117 Constant: -0:117 0 (const int) -0:117 Constant: -0:117 1 (const int) -0:117 Constant: -0:117 2 (const int) -0:119 move second child to first child ( temp 4-component vector of int) -0:119 i: direct index for structure ( temp 4-component vector of int) -0:119 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:119 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:119 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:119 Constant: -0:119 0 (const uint) -0:119 direct index ( temp uint) -0:119 'dti' ( in 3-component vector of uint) -0:119 Constant: -0:119 0 (const int) -0:119 Constant: -0:119 1 (const int) -0:119 subgroupQuadSwapVertical ( temp 4-component vector of int) -0:119 i: direct index for structure ( temp 4-component vector of int) -0:119 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:119 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:119 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:119 Constant: -0:119 0 (const uint) -0:119 direct index ( temp uint) -0:119 'dti' ( in 3-component vector of uint) -0:119 Constant: -0:119 0 (const int) -0:119 Constant: -0:119 1 (const int) -0:120 move second child to first child ( temp int) -0:120 direct index ( temp int) -0:120 i: direct index for structure ( temp 4-component vector of int) -0:120 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:120 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:120 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:120 Constant: -0:120 0 (const uint) -0:120 direct index ( temp uint) -0:120 'dti' ( in 3-component vector of uint) -0:120 Constant: -0:120 0 (const int) -0:120 Constant: -0:120 1 (const int) -0:120 Constant: -0:120 0 (const int) -0:120 subgroupQuadSwapVertical ( temp int) -0:120 direct index ( temp int) -0:120 i: direct index for structure ( temp 4-component vector of int) -0:120 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:120 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:120 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:120 Constant: -0:120 0 (const uint) -0:120 direct index ( temp uint) -0:120 'dti' ( in 3-component vector of uint) -0:120 Constant: -0:120 0 (const int) -0:120 Constant: -0:120 1 (const int) -0:120 Constant: -0:120 0 (const int) -0:121 move second child to first child ( temp 2-component vector of int) -0:121 vector swizzle ( temp 2-component vector of int) -0:121 i: direct index for structure ( temp 4-component vector of int) -0:121 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:121 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:121 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:121 Constant: -0:121 0 (const uint) -0:121 direct index ( temp uint) -0:121 'dti' ( in 3-component vector of uint) -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 1 (const int) -0:121 Sequence -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 1 (const int) -0:121 subgroupQuadSwapVertical ( temp 2-component vector of int) -0:121 vector swizzle ( temp 2-component vector of int) -0:121 i: direct index for structure ( temp 4-component vector of int) -0:121 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:121 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:121 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:121 Constant: -0:121 0 (const uint) -0:121 direct index ( temp uint) -0:121 'dti' ( in 3-component vector of uint) -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 1 (const int) -0:121 Sequence -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 1 (const int) -0:122 move second child to first child ( temp 3-component vector of int) -0:122 vector swizzle ( temp 3-component vector of int) -0:122 i: direct index for structure ( temp 4-component vector of int) -0:122 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:122 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:122 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:122 Constant: -0:122 0 (const uint) -0:122 direct index ( temp uint) -0:122 'dti' ( in 3-component vector of uint) -0:122 Constant: -0:122 0 (const int) -0:122 Constant: -0:122 1 (const int) -0:122 Sequence -0:122 Constant: -0:122 0 (const int) -0:122 Constant: -0:122 1 (const int) -0:122 Constant: -0:122 2 (const int) -0:122 subgroupQuadSwapVertical ( temp 3-component vector of int) -0:122 vector swizzle ( temp 3-component vector of int) -0:122 i: direct index for structure ( temp 4-component vector of int) -0:122 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:122 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:122 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:122 Constant: -0:122 0 (const uint) -0:122 direct index ( temp uint) -0:122 'dti' ( in 3-component vector of uint) -0:122 Constant: -0:122 0 (const int) -0:122 Constant: -0:122 1 (const int) -0:122 Sequence -0:122 Constant: -0:122 0 (const int) -0:122 Constant: -0:122 1 (const int) -0:122 Constant: -0:122 2 (const int) -0:124 move second child to first child ( temp 4-component vector of float) -0:124 f: direct index for structure ( temp 4-component vector of float) -0:124 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:124 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:124 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:124 Constant: -0:124 0 (const uint) -0:124 direct index ( temp uint) -0:124 'dti' ( in 3-component vector of uint) -0:124 Constant: -0:124 0 (const int) -0:124 Constant: -0:124 2 (const int) -0:124 subgroupQuadSwapVertical ( temp 4-component vector of float) -0:124 f: direct index for structure ( temp 4-component vector of float) -0:124 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:124 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:124 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:124 Constant: -0:124 0 (const uint) -0:124 direct index ( temp uint) -0:124 'dti' ( in 3-component vector of uint) -0:124 Constant: -0:124 0 (const int) -0:124 Constant: -0:124 2 (const int) -0:125 move second child to first child ( temp float) -0:125 direct index ( temp float) -0:125 f: direct index for structure ( temp 4-component vector of float) -0:125 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:125 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:125 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:125 Constant: -0:125 0 (const uint) -0:125 direct index ( temp uint) -0:125 'dti' ( in 3-component vector of uint) -0:125 Constant: -0:125 0 (const int) -0:125 Constant: -0:125 2 (const int) -0:125 Constant: -0:125 0 (const int) -0:125 subgroupQuadSwapVertical ( temp float) -0:125 direct index ( temp float) -0:125 f: direct index for structure ( temp 4-component vector of float) -0:125 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:125 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:125 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:125 Constant: -0:125 0 (const uint) -0:125 direct index ( temp uint) -0:125 'dti' ( in 3-component vector of uint) -0:125 Constant: -0:125 0 (const int) -0:125 Constant: -0:125 2 (const int) -0:125 Constant: -0:125 0 (const int) -0:126 move second child to first child ( temp 2-component vector of float) -0:126 vector swizzle ( temp 2-component vector of float) -0:126 f: direct index for structure ( temp 4-component vector of float) -0:126 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:126 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:126 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:126 Constant: -0:126 0 (const uint) -0:126 direct index ( temp uint) -0:126 'dti' ( in 3-component vector of uint) -0:126 Constant: -0:126 0 (const int) -0:126 Constant: -0:126 2 (const int) -0:126 Sequence -0:126 Constant: -0:126 0 (const int) -0:126 Constant: -0:126 1 (const int) -0:126 subgroupQuadSwapVertical ( temp 2-component vector of float) -0:126 vector swizzle ( temp 2-component vector of float) -0:126 f: direct index for structure ( temp 4-component vector of float) -0:126 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:126 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:126 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:126 Constant: -0:126 0 (const uint) -0:126 direct index ( temp uint) -0:126 'dti' ( in 3-component vector of uint) -0:126 Constant: -0:126 0 (const int) -0:126 Constant: -0:126 2 (const int) -0:126 Sequence -0:126 Constant: -0:126 0 (const int) -0:126 Constant: -0:126 1 (const int) -0:127 move second child to first child ( temp 3-component vector of float) -0:127 vector swizzle ( temp 3-component vector of float) -0:127 f: direct index for structure ( temp 4-component vector of float) -0:127 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:127 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:127 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:127 Constant: -0:127 0 (const uint) -0:127 direct index ( temp uint) -0:127 'dti' ( in 3-component vector of uint) -0:127 Constant: -0:127 0 (const int) -0:127 Constant: -0:127 2 (const int) -0:127 Sequence -0:127 Constant: -0:127 0 (const int) -0:127 Constant: -0:127 1 (const int) -0:127 Constant: -0:127 2 (const int) -0:127 subgroupQuadSwapVertical ( temp 3-component vector of float) -0:127 vector swizzle ( temp 3-component vector of float) -0:127 f: direct index for structure ( temp 4-component vector of float) -0:127 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:127 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:127 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:127 Constant: -0:127 0 (const uint) -0:127 direct index ( temp uint) -0:127 'dti' ( in 3-component vector of uint) -0:127 Constant: -0:127 0 (const int) -0:127 Constant: -0:127 2 (const int) -0:127 Sequence -0:127 Constant: -0:127 0 (const int) -0:127 Constant: -0:127 1 (const int) -0:127 Constant: -0:127 2 (const int) -0:129 move second child to first child ( temp 4-component vector of double) -0:129 d: direct index for structure ( temp 4-component vector of double) -0:129 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:129 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:129 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:129 Constant: -0:129 0 (const uint) -0:129 direct index ( temp uint) -0:129 'dti' ( in 3-component vector of uint) -0:129 Constant: -0:129 0 (const int) -0:129 Constant: -0:129 3 (const int) -0:129 subgroupQuadSwapVertical ( temp 4-component vector of double) -0:129 d: direct index for structure ( temp 4-component vector of double) -0:129 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:129 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:129 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:129 Constant: -0:129 0 (const uint) -0:129 direct index ( temp uint) -0:129 'dti' ( in 3-component vector of uint) -0:129 Constant: -0:129 0 (const int) -0:129 Constant: -0:129 3 (const int) -0:130 move second child to first child ( temp double) -0:130 direct index ( temp double) -0:130 d: direct index for structure ( temp 4-component vector of double) -0:130 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:130 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:130 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:130 Constant: -0:130 0 (const uint) -0:130 direct index ( temp uint) -0:130 'dti' ( in 3-component vector of uint) -0:130 Constant: -0:130 0 (const int) -0:130 Constant: -0:130 3 (const int) -0:130 Constant: -0:130 0 (const int) -0:130 subgroupQuadSwapVertical ( temp double) -0:130 direct index ( temp double) -0:130 d: direct index for structure ( temp 4-component vector of double) -0:130 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:130 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:130 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:130 Constant: -0:130 0 (const uint) -0:130 direct index ( temp uint) -0:130 'dti' ( in 3-component vector of uint) -0:130 Constant: -0:130 0 (const int) -0:130 Constant: -0:130 3 (const int) -0:130 Constant: -0:130 0 (const int) -0:131 move second child to first child ( temp 2-component vector of double) -0:131 vector swizzle ( temp 2-component vector of double) -0:131 d: direct index for structure ( temp 4-component vector of double) -0:131 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:131 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:131 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:131 Constant: -0:131 0 (const uint) -0:131 direct index ( temp uint) -0:131 'dti' ( in 3-component vector of uint) -0:131 Constant: -0:131 0 (const int) -0:131 Constant: -0:131 3 (const int) -0:131 Sequence -0:131 Constant: -0:131 0 (const int) -0:131 Constant: -0:131 1 (const int) -0:131 subgroupQuadSwapVertical ( temp 2-component vector of double) -0:131 vector swizzle ( temp 2-component vector of double) -0:131 d: direct index for structure ( temp 4-component vector of double) -0:131 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:131 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:131 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:131 Constant: -0:131 0 (const uint) -0:131 direct index ( temp uint) -0:131 'dti' ( in 3-component vector of uint) -0:131 Constant: -0:131 0 (const int) -0:131 Constant: -0:131 3 (const int) -0:131 Sequence -0:131 Constant: -0:131 0 (const int) -0:131 Constant: -0:131 1 (const int) -0:132 move second child to first child ( temp 3-component vector of double) -0:132 vector swizzle ( temp 3-component vector of double) -0:132 d: direct index for structure ( temp 4-component vector of double) -0:132 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:132 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:132 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:132 Constant: -0:132 0 (const uint) -0:132 direct index ( temp uint) -0:132 'dti' ( in 3-component vector of uint) -0:132 Constant: -0:132 0 (const int) -0:132 Constant: -0:132 3 (const int) -0:132 Sequence -0:132 Constant: -0:132 0 (const int) -0:132 Constant: -0:132 1 (const int) -0:132 Constant: -0:132 2 (const int) -0:132 subgroupQuadSwapVertical ( temp 3-component vector of double) -0:132 vector swizzle ( temp 3-component vector of double) -0:132 d: direct index for structure ( temp 4-component vector of double) -0:132 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:132 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:132 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:132 Constant: -0:132 0 (const uint) -0:132 direct index ( temp uint) -0:132 'dti' ( in 3-component vector of uint) -0:132 Constant: -0:132 0 (const int) -0:132 Constant: -0:132 3 (const int) -0:132 Sequence -0:132 Constant: -0:132 0 (const int) -0:132 Constant: -0:132 1 (const int) -0:132 Constant: -0:132 2 (const int) -0:134 move second child to first child ( temp 4-component vector of uint) -0:134 u: direct index for structure ( temp 4-component vector of uint) -0:134 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:134 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:134 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:134 Constant: -0:134 0 (const uint) -0:134 direct index ( temp uint) -0:134 'dti' ( in 3-component vector of uint) -0:134 Constant: -0:134 0 (const int) -0:134 Constant: -0:134 0 (const int) -0:134 subgroupQuadSwapDiagonal ( temp 4-component vector of uint) -0:134 u: direct index for structure ( temp 4-component vector of uint) -0:134 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:134 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:134 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:134 Constant: -0:134 0 (const uint) -0:134 direct index ( temp uint) -0:134 'dti' ( in 3-component vector of uint) -0:134 Constant: -0:134 0 (const int) -0:134 Constant: -0:134 0 (const int) -0:135 move second child to first child ( temp uint) -0:135 direct index ( temp uint) -0:135 u: direct index for structure ( temp 4-component vector of uint) -0:135 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:135 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:135 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:135 Constant: -0:135 0 (const uint) -0:135 direct index ( temp uint) -0:135 'dti' ( in 3-component vector of uint) -0:135 Constant: -0:135 0 (const int) -0:135 Constant: -0:135 0 (const int) -0:135 Constant: -0:135 0 (const int) -0:135 subgroupQuadSwapDiagonal ( temp uint) -0:135 direct index ( temp uint) -0:135 u: direct index for structure ( temp 4-component vector of uint) -0:135 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:135 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:135 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:135 Constant: -0:135 0 (const uint) -0:135 direct index ( temp uint) -0:135 'dti' ( in 3-component vector of uint) -0:135 Constant: -0:135 0 (const int) -0:135 Constant: -0:135 0 (const int) -0:135 Constant: -0:135 0 (const int) -0:136 move second child to first child ( temp 2-component vector of uint) -0:136 vector swizzle ( temp 2-component vector of uint) -0:136 u: direct index for structure ( temp 4-component vector of uint) -0:136 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:136 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:136 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:136 Constant: -0:136 0 (const uint) -0:136 direct index ( temp uint) -0:136 'dti' ( in 3-component vector of uint) -0:136 Constant: -0:136 0 (const int) -0:136 Constant: -0:136 0 (const int) -0:136 Sequence -0:136 Constant: -0:136 0 (const int) -0:136 Constant: -0:136 1 (const int) -0:136 subgroupQuadSwapDiagonal ( temp 2-component vector of uint) -0:136 vector swizzle ( temp 2-component vector of uint) -0:136 u: direct index for structure ( temp 4-component vector of uint) -0:136 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:136 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:136 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:136 Constant: -0:136 0 (const uint) -0:136 direct index ( temp uint) -0:136 'dti' ( in 3-component vector of uint) -0:136 Constant: -0:136 0 (const int) -0:136 Constant: -0:136 0 (const int) -0:136 Sequence -0:136 Constant: -0:136 0 (const int) -0:136 Constant: -0:136 1 (const int) -0:137 move second child to first child ( temp 3-component vector of uint) -0:137 vector swizzle ( temp 3-component vector of uint) -0:137 u: direct index for structure ( temp 4-component vector of uint) -0:137 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:137 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:137 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:137 Constant: -0:137 0 (const uint) -0:137 direct index ( temp uint) -0:137 'dti' ( in 3-component vector of uint) -0:137 Constant: -0:137 0 (const int) -0:137 Constant: -0:137 0 (const int) -0:137 Sequence -0:137 Constant: -0:137 0 (const int) -0:137 Constant: -0:137 1 (const int) -0:137 Constant: -0:137 2 (const int) -0:137 subgroupQuadSwapDiagonal ( temp 3-component vector of uint) -0:137 vector swizzle ( temp 3-component vector of uint) -0:137 u: direct index for structure ( temp 4-component vector of uint) -0:137 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:137 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:137 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:137 Constant: -0:137 0 (const uint) -0:137 direct index ( temp uint) -0:137 'dti' ( in 3-component vector of uint) -0:137 Constant: -0:137 0 (const int) -0:137 Constant: -0:137 0 (const int) -0:137 Sequence -0:137 Constant: -0:137 0 (const int) -0:137 Constant: -0:137 1 (const int) -0:137 Constant: -0:137 2 (const int) -0:139 move second child to first child ( temp 4-component vector of int) -0:139 i: direct index for structure ( temp 4-component vector of int) -0:139 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:139 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:139 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:139 Constant: -0:139 0 (const uint) -0:139 direct index ( temp uint) -0:139 'dti' ( in 3-component vector of uint) -0:139 Constant: -0:139 0 (const int) -0:139 Constant: -0:139 1 (const int) -0:139 subgroupQuadSwapDiagonal ( temp 4-component vector of int) -0:139 i: direct index for structure ( temp 4-component vector of int) -0:139 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:139 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:139 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:139 Constant: -0:139 0 (const uint) -0:139 direct index ( temp uint) -0:139 'dti' ( in 3-component vector of uint) -0:139 Constant: -0:139 0 (const int) -0:139 Constant: -0:139 1 (const int) -0:140 move second child to first child ( temp int) -0:140 direct index ( temp int) -0:140 i: direct index for structure ( temp 4-component vector of int) -0:140 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:140 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:140 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:140 Constant: -0:140 0 (const uint) -0:140 direct index ( temp uint) -0:140 'dti' ( in 3-component vector of uint) -0:140 Constant: -0:140 0 (const int) -0:140 Constant: -0:140 1 (const int) -0:140 Constant: -0:140 0 (const int) -0:140 subgroupQuadSwapDiagonal ( temp int) -0:140 direct index ( temp int) -0:140 i: direct index for structure ( temp 4-component vector of int) -0:140 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:140 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:140 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:140 Constant: -0:140 0 (const uint) -0:140 direct index ( temp uint) -0:140 'dti' ( in 3-component vector of uint) -0:140 Constant: -0:140 0 (const int) -0:140 Constant: -0:140 1 (const int) -0:140 Constant: -0:140 0 (const int) -0:141 move second child to first child ( temp 2-component vector of int) -0:141 vector swizzle ( temp 2-component vector of int) -0:141 i: direct index for structure ( temp 4-component vector of int) -0:141 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:141 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:141 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:141 Constant: -0:141 0 (const uint) -0:141 direct index ( temp uint) -0:141 'dti' ( in 3-component vector of uint) -0:141 Constant: -0:141 0 (const int) -0:141 Constant: -0:141 1 (const int) -0:141 Sequence -0:141 Constant: -0:141 0 (const int) -0:141 Constant: -0:141 1 (const int) -0:141 subgroupQuadSwapDiagonal ( temp 2-component vector of int) -0:141 vector swizzle ( temp 2-component vector of int) -0:141 i: direct index for structure ( temp 4-component vector of int) -0:141 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:141 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:141 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:141 Constant: -0:141 0 (const uint) -0:141 direct index ( temp uint) -0:141 'dti' ( in 3-component vector of uint) -0:141 Constant: -0:141 0 (const int) -0:141 Constant: -0:141 1 (const int) -0:141 Sequence -0:141 Constant: -0:141 0 (const int) -0:141 Constant: -0:141 1 (const int) -0:142 move second child to first child ( temp 3-component vector of int) -0:142 vector swizzle ( temp 3-component vector of int) -0:142 i: direct index for structure ( temp 4-component vector of int) -0:142 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:142 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:142 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:142 Constant: -0:142 0 (const uint) -0:142 direct index ( temp uint) -0:142 'dti' ( in 3-component vector of uint) -0:142 Constant: -0:142 0 (const int) -0:142 Constant: -0:142 1 (const int) -0:142 Sequence -0:142 Constant: -0:142 0 (const int) -0:142 Constant: -0:142 1 (const int) -0:142 Constant: -0:142 2 (const int) -0:142 subgroupQuadSwapDiagonal ( temp 3-component vector of int) -0:142 vector swizzle ( temp 3-component vector of int) -0:142 i: direct index for structure ( temp 4-component vector of int) -0:142 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:142 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:142 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:142 Constant: -0:142 0 (const uint) -0:142 direct index ( temp uint) -0:142 'dti' ( in 3-component vector of uint) -0:142 Constant: -0:142 0 (const int) -0:142 Constant: -0:142 1 (const int) -0:142 Sequence -0:142 Constant: -0:142 0 (const int) -0:142 Constant: -0:142 1 (const int) -0:142 Constant: -0:142 2 (const int) -0:144 move second child to first child ( temp 4-component vector of float) -0:144 f: direct index for structure ( temp 4-component vector of float) -0:144 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:144 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:144 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:144 Constant: -0:144 0 (const uint) -0:144 direct index ( temp uint) -0:144 'dti' ( in 3-component vector of uint) -0:144 Constant: -0:144 0 (const int) -0:144 Constant: -0:144 2 (const int) -0:144 subgroupQuadSwapDiagonal ( temp 4-component vector of float) -0:144 f: direct index for structure ( temp 4-component vector of float) -0:144 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:144 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:144 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:144 Constant: -0:144 0 (const uint) -0:144 direct index ( temp uint) -0:144 'dti' ( in 3-component vector of uint) -0:144 Constant: -0:144 0 (const int) -0:144 Constant: -0:144 2 (const int) -0:145 move second child to first child ( temp float) -0:145 direct index ( temp float) -0:145 f: direct index for structure ( temp 4-component vector of float) -0:145 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:145 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:145 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:145 Constant: -0:145 0 (const uint) -0:145 direct index ( temp uint) -0:145 'dti' ( in 3-component vector of uint) -0:145 Constant: -0:145 0 (const int) -0:145 Constant: -0:145 2 (const int) -0:145 Constant: -0:145 0 (const int) -0:145 subgroupQuadSwapDiagonal ( temp float) -0:145 direct index ( temp float) -0:145 f: direct index for structure ( temp 4-component vector of float) -0:145 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:145 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:145 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:145 Constant: -0:145 0 (const uint) -0:145 direct index ( temp uint) -0:145 'dti' ( in 3-component vector of uint) -0:145 Constant: -0:145 0 (const int) -0:145 Constant: -0:145 2 (const int) -0:145 Constant: -0:145 0 (const int) -0:146 move second child to first child ( temp 2-component vector of float) -0:146 vector swizzle ( temp 2-component vector of float) -0:146 f: direct index for structure ( temp 4-component vector of float) -0:146 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:146 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:146 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:146 Constant: -0:146 0 (const uint) -0:146 direct index ( temp uint) -0:146 'dti' ( in 3-component vector of uint) -0:146 Constant: -0:146 0 (const int) -0:146 Constant: -0:146 2 (const int) -0:146 Sequence -0:146 Constant: -0:146 0 (const int) -0:146 Constant: -0:146 1 (const int) -0:146 subgroupQuadSwapDiagonal ( temp 2-component vector of float) -0:146 vector swizzle ( temp 2-component vector of float) -0:146 f: direct index for structure ( temp 4-component vector of float) -0:146 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:146 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:146 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:146 Constant: -0:146 0 (const uint) -0:146 direct index ( temp uint) -0:146 'dti' ( in 3-component vector of uint) -0:146 Constant: -0:146 0 (const int) -0:146 Constant: -0:146 2 (const int) -0:146 Sequence -0:146 Constant: -0:146 0 (const int) -0:146 Constant: -0:146 1 (const int) -0:147 move second child to first child ( temp 3-component vector of float) -0:147 vector swizzle ( temp 3-component vector of float) -0:147 f: direct index for structure ( temp 4-component vector of float) -0:147 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:147 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:147 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:147 Constant: -0:147 0 (const uint) -0:147 direct index ( temp uint) -0:147 'dti' ( in 3-component vector of uint) -0:147 Constant: -0:147 0 (const int) -0:147 Constant: -0:147 2 (const int) -0:147 Sequence -0:147 Constant: -0:147 0 (const int) -0:147 Constant: -0:147 1 (const int) -0:147 Constant: -0:147 2 (const int) -0:147 subgroupQuadSwapDiagonal ( temp 3-component vector of float) -0:147 vector swizzle ( temp 3-component vector of float) -0:147 f: direct index for structure ( temp 4-component vector of float) -0:147 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:147 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:147 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:147 Constant: -0:147 0 (const uint) -0:147 direct index ( temp uint) -0:147 'dti' ( in 3-component vector of uint) -0:147 Constant: -0:147 0 (const int) -0:147 Constant: -0:147 2 (const int) -0:147 Sequence -0:147 Constant: -0:147 0 (const int) -0:147 Constant: -0:147 1 (const int) -0:147 Constant: -0:147 2 (const int) -0:149 move second child to first child ( temp 4-component vector of double) -0:149 d: direct index for structure ( temp 4-component vector of double) -0:149 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:149 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:149 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:149 Constant: -0:149 0 (const uint) -0:149 direct index ( temp uint) -0:149 'dti' ( in 3-component vector of uint) -0:149 Constant: -0:149 0 (const int) -0:149 Constant: -0:149 3 (const int) -0:149 subgroupQuadSwapDiagonal ( temp 4-component vector of double) -0:149 d: direct index for structure ( temp 4-component vector of double) -0:149 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:149 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:149 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:149 Constant: -0:149 0 (const uint) -0:149 direct index ( temp uint) -0:149 'dti' ( in 3-component vector of uint) -0:149 Constant: -0:149 0 (const int) -0:149 Constant: -0:149 3 (const int) -0:150 move second child to first child ( temp double) -0:150 direct index ( temp double) -0:150 d: direct index for structure ( temp 4-component vector of double) -0:150 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:150 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:150 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:150 Constant: -0:150 0 (const uint) -0:150 direct index ( temp uint) -0:150 'dti' ( in 3-component vector of uint) -0:150 Constant: -0:150 0 (const int) -0:150 Constant: -0:150 3 (const int) -0:150 Constant: -0:150 0 (const int) -0:150 subgroupQuadSwapDiagonal ( temp double) -0:150 direct index ( temp double) -0:150 d: direct index for structure ( temp 4-component vector of double) -0:150 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:150 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:150 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:150 Constant: -0:150 0 (const uint) -0:150 direct index ( temp uint) -0:150 'dti' ( in 3-component vector of uint) -0:150 Constant: -0:150 0 (const int) -0:150 Constant: -0:150 3 (const int) -0:150 Constant: -0:150 0 (const int) -0:151 move second child to first child ( temp 2-component vector of double) -0:151 vector swizzle ( temp 2-component vector of double) -0:151 d: direct index for structure ( temp 4-component vector of double) -0:151 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:151 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:151 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:151 Constant: -0:151 0 (const uint) -0:151 direct index ( temp uint) -0:151 'dti' ( in 3-component vector of uint) -0:151 Constant: -0:151 0 (const int) -0:151 Constant: -0:151 3 (const int) -0:151 Sequence -0:151 Constant: -0:151 0 (const int) -0:151 Constant: -0:151 1 (const int) -0:151 subgroupQuadSwapDiagonal ( temp 2-component vector of double) -0:151 vector swizzle ( temp 2-component vector of double) -0:151 d: direct index for structure ( temp 4-component vector of double) -0:151 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:151 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:151 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:151 Constant: -0:151 0 (const uint) -0:151 direct index ( temp uint) -0:151 'dti' ( in 3-component vector of uint) -0:151 Constant: -0:151 0 (const int) -0:151 Constant: -0:151 3 (const int) -0:151 Sequence -0:151 Constant: -0:151 0 (const int) -0:151 Constant: -0:151 1 (const int) -0:152 move second child to first child ( temp 3-component vector of double) -0:152 vector swizzle ( temp 3-component vector of double) -0:152 d: direct index for structure ( temp 4-component vector of double) -0:152 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:152 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:152 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:152 Constant: -0:152 0 (const uint) -0:152 direct index ( temp uint) -0:152 'dti' ( in 3-component vector of uint) -0:152 Constant: -0:152 0 (const int) -0:152 Constant: -0:152 3 (const int) -0:152 Sequence -0:152 Constant: -0:152 0 (const int) -0:152 Constant: -0:152 1 (const int) -0:152 Constant: -0:152 2 (const int) -0:152 subgroupQuadSwapDiagonal ( temp 3-component vector of double) -0:152 vector swizzle ( temp 3-component vector of double) -0:152 d: direct index for structure ( temp 4-component vector of double) -0:152 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:152 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:152 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:152 Constant: -0:152 0 (const uint) -0:152 direct index ( temp uint) -0:152 'dti' ( in 3-component vector of uint) -0:152 Constant: -0:152 0 (const int) -0:152 Constant: -0:152 3 (const int) -0:152 Sequence -0:152 Constant: -0:152 0 (const int) -0:152 Constant: -0:152 1 (const int) -0:152 Constant: -0:152 2 (const int) -0:13 Function Definition: CSMain( ( temp void) -0:13 Function Parameters: -0:? Sequence -0:13 move second child to first child ( temp 3-component vector of uint) -0:? 'dti' ( temp 3-component vector of uint) -0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) -0:13 Function Call: @CSMain(vu3; ( temp void) -0:? 'dti' ( temp 3-component vector of uint) -0:? Linker Objects -0:? 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) - - -Linked compute stage: - - -Shader version: 500 -local_size = (32, 16, 1) -0:? Sequence -0:13 Function Definition: @CSMain(vu3; ( temp void) -0:13 Function Parameters: -0:13 'dti' ( in 3-component vector of uint) -0:? Sequence -0:14 move second child to first child ( temp 4-component vector of uint) -0:14 u: direct index for structure ( temp 4-component vector of uint) -0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:14 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:14 Constant: -0:14 0 (const uint) -0:14 direct index ( temp uint) -0:14 'dti' ( in 3-component vector of uint) -0:14 Constant: -0:14 0 (const int) -0:14 Constant: -0:14 0 (const int) -0:14 subgroupQuadBroadcast ( temp 4-component vector of uint) -0:14 u: direct index for structure ( temp 4-component vector of uint) -0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:14 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:14 Constant: -0:14 0 (const uint) -0:14 direct index ( temp uint) -0:14 'dti' ( in 3-component vector of uint) -0:14 Constant: -0:14 0 (const int) -0:14 Constant: -0:14 0 (const int) -0:14 Constant: -0:14 0 (const uint) -0:15 move second child to first child ( temp uint) -0:15 direct index ( temp uint) -0:15 u: direct index for structure ( temp 4-component vector of uint) -0:15 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:15 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:15 Constant: -0:15 0 (const uint) -0:15 direct index ( temp uint) -0:15 'dti' ( in 3-component vector of uint) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0 (const int) -0:15 subgroupQuadBroadcast ( temp uint) -0:15 direct index ( temp uint) -0:15 u: direct index for structure ( temp 4-component vector of uint) -0:15 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:15 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:15 Constant: -0:15 0 (const uint) -0:15 direct index ( temp uint) -0:15 'dti' ( in 3-component vector of uint) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0 (const uint) -0:16 move second child to first child ( temp 2-component vector of uint) -0:16 vector swizzle ( temp 2-component vector of uint) -0:16 u: direct index for structure ( temp 4-component vector of uint) -0:16 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:16 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:16 Constant: -0:16 0 (const uint) -0:16 direct index ( temp uint) -0:16 'dti' ( in 3-component vector of uint) -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 0 (const int) -0:16 Sequence -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 1 (const int) -0:16 subgroupQuadBroadcast ( temp 2-component vector of uint) -0:16 vector swizzle ( temp 2-component vector of uint) -0:16 u: direct index for structure ( temp 4-component vector of uint) -0:16 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:16 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:16 Constant: -0:16 0 (const uint) -0:16 direct index ( temp uint) -0:16 'dti' ( in 3-component vector of uint) -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 0 (const int) -0:16 Sequence -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 1 (const int) -0:16 Constant: -0:16 0 (const uint) -0:17 move second child to first child ( temp 3-component vector of uint) -0:17 vector swizzle ( temp 3-component vector of uint) -0:17 u: direct index for structure ( temp 4-component vector of uint) -0:17 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:17 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:17 Constant: -0:17 0 (const uint) -0:17 direct index ( temp uint) -0:17 'dti' ( in 3-component vector of uint) -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 0 (const int) -0:17 Sequence -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 1 (const int) -0:17 Constant: -0:17 2 (const int) -0:17 subgroupQuadBroadcast ( temp 3-component vector of uint) -0:17 vector swizzle ( temp 3-component vector of uint) -0:17 u: direct index for structure ( temp 4-component vector of uint) -0:17 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:17 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:17 Constant: -0:17 0 (const uint) -0:17 direct index ( temp uint) -0:17 'dti' ( in 3-component vector of uint) -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 0 (const int) -0:17 Sequence -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 1 (const int) -0:17 Constant: -0:17 2 (const int) -0:17 Constant: -0:17 0 (const uint) -0:19 move second child to first child ( temp 4-component vector of int) -0:19 i: direct index for structure ( temp 4-component vector of int) -0:19 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:19 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:19 Constant: -0:19 0 (const uint) -0:19 direct index ( temp uint) -0:19 'dti' ( in 3-component vector of uint) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const int) -0:19 subgroupQuadBroadcast ( temp 4-component vector of int) -0:19 i: direct index for structure ( temp 4-component vector of int) -0:19 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:19 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:19 Constant: -0:19 0 (const uint) -0:19 direct index ( temp uint) -0:19 'dti' ( in 3-component vector of uint) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const int) -0:19 Constant: -0:19 0 (const uint) -0:20 move second child to first child ( temp int) -0:20 direct index ( temp int) -0:20 i: direct index for structure ( temp 4-component vector of int) -0:20 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:20 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:20 Constant: -0:20 0 (const uint) -0:20 direct index ( temp uint) -0:20 'dti' ( in 3-component vector of uint) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 subgroupQuadBroadcast ( temp int) -0:20 direct index ( temp int) -0:20 i: direct index for structure ( temp 4-component vector of int) -0:20 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:20 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:20 Constant: -0:20 0 (const uint) -0:20 direct index ( temp uint) -0:20 'dti' ( in 3-component vector of uint) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 0 (const uint) -0:21 move second child to first child ( temp 2-component vector of int) -0:21 vector swizzle ( temp 2-component vector of int) -0:21 i: direct index for structure ( temp 4-component vector of int) -0:21 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:21 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:21 Constant: -0:21 0 (const uint) -0:21 direct index ( temp uint) -0:21 'dti' ( in 3-component vector of uint) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 subgroupQuadBroadcast ( temp 2-component vector of int) -0:21 vector swizzle ( temp 2-component vector of int) -0:21 i: direct index for structure ( temp 4-component vector of int) -0:21 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:21 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:21 Constant: -0:21 0 (const uint) -0:21 direct index ( temp uint) -0:21 'dti' ( in 3-component vector of uint) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Constant: -0:21 0 (const uint) -0:22 move second child to first child ( temp 3-component vector of int) -0:22 vector swizzle ( temp 3-component vector of int) -0:22 i: direct index for structure ( temp 4-component vector of int) -0:22 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:22 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:22 Constant: -0:22 0 (const uint) -0:22 direct index ( temp uint) -0:22 'dti' ( in 3-component vector of uint) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 Sequence -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 Constant: -0:22 2 (const int) -0:22 subgroupQuadBroadcast ( temp 3-component vector of int) -0:22 vector swizzle ( temp 3-component vector of int) -0:22 i: direct index for structure ( temp 4-component vector of int) -0:22 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:22 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:22 Constant: -0:22 0 (const uint) -0:22 direct index ( temp uint) -0:22 'dti' ( in 3-component vector of uint) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 Sequence -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 Constant: -0:22 2 (const int) -0:22 Constant: -0:22 0 (const uint) -0:24 move second child to first child ( temp 4-component vector of float) -0:24 f: direct index for structure ( temp 4-component vector of float) -0:24 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:24 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:24 Constant: -0:24 0 (const uint) -0:24 direct index ( temp uint) -0:24 'dti' ( in 3-component vector of uint) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 2 (const int) -0:24 subgroupQuadBroadcast ( temp 4-component vector of float) -0:24 f: direct index for structure ( temp 4-component vector of float) -0:24 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:24 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:24 Constant: -0:24 0 (const uint) -0:24 direct index ( temp uint) -0:24 'dti' ( in 3-component vector of uint) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 2 (const int) -0:24 Constant: -0:24 0 (const uint) -0:25 move second child to first child ( temp float) -0:25 direct index ( temp float) -0:25 f: direct index for structure ( temp 4-component vector of float) -0:25 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:25 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:25 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:25 Constant: -0:25 0 (const uint) -0:25 direct index ( temp uint) -0:25 'dti' ( in 3-component vector of uint) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 Constant: -0:25 0 (const int) -0:25 subgroupQuadBroadcast ( temp float) -0:25 direct index ( temp float) -0:25 f: direct index for structure ( temp 4-component vector of float) -0:25 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:25 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:25 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:25 Constant: -0:25 0 (const uint) -0:25 direct index ( temp uint) -0:25 'dti' ( in 3-component vector of uint) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 0 (const uint) -0:26 move second child to first child ( temp 2-component vector of float) -0:26 vector swizzle ( temp 2-component vector of float) -0:26 f: direct index for structure ( temp 4-component vector of float) -0:26 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:26 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:26 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:26 Constant: -0:26 0 (const uint) -0:26 direct index ( temp uint) -0:26 'dti' ( in 3-component vector of uint) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 subgroupQuadBroadcast ( temp 2-component vector of float) -0:26 vector swizzle ( temp 2-component vector of float) -0:26 f: direct index for structure ( temp 4-component vector of float) -0:26 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:26 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:26 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:26 Constant: -0:26 0 (const uint) -0:26 direct index ( temp uint) -0:26 'dti' ( in 3-component vector of uint) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 0 (const uint) -0:27 move second child to first child ( temp 3-component vector of float) -0:27 vector swizzle ( temp 3-component vector of float) -0:27 f: direct index for structure ( temp 4-component vector of float) -0:27 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:27 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:27 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:27 Constant: -0:27 0 (const uint) -0:27 direct index ( temp uint) -0:27 'dti' ( in 3-component vector of uint) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 2 (const int) -0:27 Sequence -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Constant: -0:27 2 (const int) -0:27 subgroupQuadBroadcast ( temp 3-component vector of float) -0:27 vector swizzle ( temp 3-component vector of float) -0:27 f: direct index for structure ( temp 4-component vector of float) -0:27 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:27 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:27 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:27 Constant: -0:27 0 (const uint) -0:27 direct index ( temp uint) -0:27 'dti' ( in 3-component vector of uint) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 2 (const int) -0:27 Sequence -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Constant: -0:27 2 (const int) -0:27 Constant: -0:27 0 (const uint) -0:29 move second child to first child ( temp 4-component vector of double) -0:29 d: direct index for structure ( temp 4-component vector of double) -0:29 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:29 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:29 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:29 Constant: -0:29 0 (const uint) -0:29 direct index ( temp uint) -0:29 'dti' ( in 3-component vector of uint) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 3 (const int) -0:29 subgroupQuadBroadcast ( temp 4-component vector of double) -0:29 d: direct index for structure ( temp 4-component vector of double) -0:29 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:29 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:29 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:29 Constant: -0:29 0 (const uint) -0:29 direct index ( temp uint) -0:29 'dti' ( in 3-component vector of uint) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 3 (const int) -0:29 Constant: -0:29 0 (const uint) -0:30 move second child to first child ( temp double) -0:30 direct index ( temp double) -0:30 d: direct index for structure ( temp 4-component vector of double) -0:30 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:30 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:30 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:30 Constant: -0:30 0 (const uint) -0:30 direct index ( temp uint) -0:30 'dti' ( in 3-component vector of uint) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 3 (const int) -0:30 Constant: -0:30 0 (const int) -0:30 subgroupQuadBroadcast ( temp double) -0:30 direct index ( temp double) -0:30 d: direct index for structure ( temp 4-component vector of double) -0:30 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:30 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:30 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:30 Constant: -0:30 0 (const uint) -0:30 direct index ( temp uint) -0:30 'dti' ( in 3-component vector of uint) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 3 (const int) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 0 (const uint) -0:31 move second child to first child ( temp 2-component vector of double) -0:31 vector swizzle ( temp 2-component vector of double) -0:31 d: direct index for structure ( temp 4-component vector of double) -0:31 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:31 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:31 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:31 Constant: -0:31 0 (const uint) -0:31 direct index ( temp uint) -0:31 'dti' ( in 3-component vector of uint) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 3 (const int) -0:31 Sequence -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 subgroupQuadBroadcast ( temp 2-component vector of double) -0:31 vector swizzle ( temp 2-component vector of double) -0:31 d: direct index for structure ( temp 4-component vector of double) -0:31 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:31 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:31 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:31 Constant: -0:31 0 (const uint) -0:31 direct index ( temp uint) -0:31 'dti' ( in 3-component vector of uint) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 3 (const int) -0:31 Sequence -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 0 (const uint) -0:32 move second child to first child ( temp 3-component vector of double) -0:32 vector swizzle ( temp 3-component vector of double) -0:32 d: direct index for structure ( temp 4-component vector of double) -0:32 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:32 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:32 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:32 Constant: -0:32 0 (const uint) -0:32 direct index ( temp uint) -0:32 'dti' ( in 3-component vector of uint) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 3 (const int) -0:32 Sequence -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 1 (const int) -0:32 Constant: -0:32 2 (const int) -0:32 subgroupQuadBroadcast ( temp 3-component vector of double) -0:32 vector swizzle ( temp 3-component vector of double) -0:32 d: direct index for structure ( temp 4-component vector of double) -0:32 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:32 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:32 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:32 Constant: -0:32 0 (const uint) -0:32 direct index ( temp uint) -0:32 'dti' ( in 3-component vector of uint) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 3 (const int) -0:32 Sequence -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 1 (const int) -0:32 Constant: -0:32 2 (const int) -0:32 Constant: -0:32 0 (const uint) -0:34 move second child to first child ( temp 4-component vector of uint) -0:34 u: direct index for structure ( temp 4-component vector of uint) -0:34 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:34 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:34 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:34 Constant: -0:34 0 (const uint) -0:34 direct index ( temp uint) -0:34 'dti' ( in 3-component vector of uint) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 subgroupQuadBroadcast ( temp 4-component vector of uint) -0:34 u: direct index for structure ( temp 4-component vector of uint) -0:34 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:34 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:34 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:34 Constant: -0:34 0 (const uint) -0:34 direct index ( temp uint) -0:34 'dti' ( in 3-component vector of uint) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 1 (const uint) -0:35 move second child to first child ( temp uint) -0:35 direct index ( temp uint) -0:35 u: direct index for structure ( temp 4-component vector of uint) -0:35 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:35 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:35 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:35 Constant: -0:35 0 (const uint) -0:35 direct index ( temp uint) -0:35 'dti' ( in 3-component vector of uint) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 subgroupQuadBroadcast ( temp uint) -0:35 direct index ( temp uint) -0:35 u: direct index for structure ( temp 4-component vector of uint) -0:35 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:35 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:35 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:35 Constant: -0:35 0 (const uint) -0:35 direct index ( temp uint) -0:35 'dti' ( in 3-component vector of uint) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 1 (const uint) -0:36 move second child to first child ( temp 2-component vector of uint) -0:36 vector swizzle ( temp 2-component vector of uint) -0:36 u: direct index for structure ( temp 4-component vector of uint) -0:36 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:36 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:36 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:36 Constant: -0:36 0 (const uint) -0:36 direct index ( temp uint) -0:36 'dti' ( in 3-component vector of uint) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 subgroupQuadBroadcast ( temp 2-component vector of uint) -0:36 vector swizzle ( temp 2-component vector of uint) -0:36 u: direct index for structure ( temp 4-component vector of uint) -0:36 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:36 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:36 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:36 Constant: -0:36 0 (const uint) -0:36 direct index ( temp uint) -0:36 'dti' ( in 3-component vector of uint) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 1 (const uint) -0:37 move second child to first child ( temp 3-component vector of uint) -0:37 vector swizzle ( temp 3-component vector of uint) -0:37 u: direct index for structure ( temp 4-component vector of uint) -0:37 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:37 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:37 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:37 Constant: -0:37 0 (const uint) -0:37 direct index ( temp uint) -0:37 'dti' ( in 3-component vector of uint) -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 0 (const int) -0:37 Sequence -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 1 (const int) -0:37 Constant: -0:37 2 (const int) -0:37 subgroupQuadBroadcast ( temp 3-component vector of uint) -0:37 vector swizzle ( temp 3-component vector of uint) -0:37 u: direct index for structure ( temp 4-component vector of uint) -0:37 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:37 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:37 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:37 Constant: -0:37 0 (const uint) -0:37 direct index ( temp uint) -0:37 'dti' ( in 3-component vector of uint) -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 0 (const int) -0:37 Sequence -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 1 (const int) -0:37 Constant: -0:37 2 (const int) -0:37 Constant: -0:37 1 (const uint) -0:39 move second child to first child ( temp 4-component vector of int) -0:39 i: direct index for structure ( temp 4-component vector of int) -0:39 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:39 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:39 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:39 Constant: -0:39 0 (const uint) -0:39 direct index ( temp uint) -0:39 'dti' ( in 3-component vector of uint) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 subgroupQuadBroadcast ( temp 4-component vector of int) -0:39 i: direct index for structure ( temp 4-component vector of int) -0:39 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:39 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:39 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:39 Constant: -0:39 0 (const uint) -0:39 direct index ( temp uint) -0:39 'dti' ( in 3-component vector of uint) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 1 (const uint) -0:40 move second child to first child ( temp int) -0:40 direct index ( temp int) -0:40 i: direct index for structure ( temp 4-component vector of int) -0:40 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:40 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:40 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:40 Constant: -0:40 0 (const uint) -0:40 direct index ( temp uint) -0:40 'dti' ( in 3-component vector of uint) -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 subgroupQuadBroadcast ( temp int) -0:40 direct index ( temp int) -0:40 i: direct index for structure ( temp 4-component vector of int) -0:40 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:40 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:40 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:40 Constant: -0:40 0 (const uint) -0:40 direct index ( temp uint) -0:40 'dti' ( in 3-component vector of uint) -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const uint) -0:41 move second child to first child ( temp 2-component vector of int) -0:41 vector swizzle ( temp 2-component vector of int) -0:41 i: direct index for structure ( temp 4-component vector of int) -0:41 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:41 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:41 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:41 Constant: -0:41 0 (const uint) -0:41 direct index ( temp uint) -0:41 'dti' ( in 3-component vector of uint) -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 subgroupQuadBroadcast ( temp 2-component vector of int) -0:41 vector swizzle ( temp 2-component vector of int) -0:41 i: direct index for structure ( temp 4-component vector of int) -0:41 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:41 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:41 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:41 Constant: -0:41 0 (const uint) -0:41 direct index ( temp uint) -0:41 'dti' ( in 3-component vector of uint) -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Constant: -0:41 1 (const uint) -0:42 move second child to first child ( temp 3-component vector of int) -0:42 vector swizzle ( temp 3-component vector of int) -0:42 i: direct index for structure ( temp 4-component vector of int) -0:42 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:42 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:42 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:42 Constant: -0:42 0 (const uint) -0:42 direct index ( temp uint) -0:42 'dti' ( in 3-component vector of uint) -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Sequence -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 2 (const int) -0:42 subgroupQuadBroadcast ( temp 3-component vector of int) -0:42 vector swizzle ( temp 3-component vector of int) -0:42 i: direct index for structure ( temp 4-component vector of int) -0:42 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:42 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:42 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:42 Constant: -0:42 0 (const uint) -0:42 direct index ( temp uint) -0:42 'dti' ( in 3-component vector of uint) -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Sequence -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 2 (const int) -0:42 Constant: -0:42 1 (const uint) -0:44 move second child to first child ( temp 4-component vector of float) -0:44 f: direct index for structure ( temp 4-component vector of float) -0:44 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:44 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:44 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:44 Constant: -0:44 0 (const uint) -0:44 direct index ( temp uint) -0:44 'dti' ( in 3-component vector of uint) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 2 (const int) -0:44 subgroupQuadBroadcast ( temp 4-component vector of float) -0:44 f: direct index for structure ( temp 4-component vector of float) -0:44 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:44 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:44 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:44 Constant: -0:44 0 (const uint) -0:44 direct index ( temp uint) -0:44 'dti' ( in 3-component vector of uint) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 2 (const int) -0:44 Constant: -0:44 1 (const uint) -0:45 move second child to first child ( temp float) -0:45 direct index ( temp float) -0:45 f: direct index for structure ( temp 4-component vector of float) -0:45 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:45 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:45 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:45 Constant: -0:45 0 (const uint) -0:45 direct index ( temp uint) -0:45 'dti' ( in 3-component vector of uint) -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 Constant: -0:45 0 (const int) -0:45 subgroupQuadBroadcast ( temp float) -0:45 direct index ( temp float) -0:45 f: direct index for structure ( temp 4-component vector of float) -0:45 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:45 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:45 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:45 Constant: -0:45 0 (const uint) -0:45 direct index ( temp uint) -0:45 'dti' ( in 3-component vector of uint) -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 1 (const uint) -0:46 move second child to first child ( temp 2-component vector of float) -0:46 vector swizzle ( temp 2-component vector of float) -0:46 f: direct index for structure ( temp 4-component vector of float) -0:46 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:46 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:46 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:46 Constant: -0:46 0 (const uint) -0:46 direct index ( temp uint) -0:46 'dti' ( in 3-component vector of uint) -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 subgroupQuadBroadcast ( temp 2-component vector of float) -0:46 vector swizzle ( temp 2-component vector of float) -0:46 f: direct index for structure ( temp 4-component vector of float) -0:46 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:46 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:46 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:46 Constant: -0:46 0 (const uint) -0:46 direct index ( temp uint) -0:46 'dti' ( in 3-component vector of uint) -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 1 (const uint) -0:47 move second child to first child ( temp 3-component vector of float) -0:47 vector swizzle ( temp 3-component vector of float) -0:47 f: direct index for structure ( temp 4-component vector of float) -0:47 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:47 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:47 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:47 Constant: -0:47 0 (const uint) -0:47 direct index ( temp uint) -0:47 'dti' ( in 3-component vector of uint) -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 2 (const int) -0:47 Sequence -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 1 (const int) -0:47 Constant: -0:47 2 (const int) -0:47 subgroupQuadBroadcast ( temp 3-component vector of float) -0:47 vector swizzle ( temp 3-component vector of float) -0:47 f: direct index for structure ( temp 4-component vector of float) -0:47 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:47 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:47 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:47 Constant: -0:47 0 (const uint) -0:47 direct index ( temp uint) -0:47 'dti' ( in 3-component vector of uint) -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 2 (const int) -0:47 Sequence -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 1 (const int) -0:47 Constant: -0:47 2 (const int) -0:47 Constant: -0:47 1 (const uint) -0:49 move second child to first child ( temp 4-component vector of double) -0:49 d: direct index for structure ( temp 4-component vector of double) -0:49 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:49 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:49 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:49 Constant: -0:49 0 (const uint) -0:49 direct index ( temp uint) -0:49 'dti' ( in 3-component vector of uint) -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 3 (const int) -0:49 subgroupQuadBroadcast ( temp 4-component vector of double) -0:49 d: direct index for structure ( temp 4-component vector of double) -0:49 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:49 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:49 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:49 Constant: -0:49 0 (const uint) -0:49 direct index ( temp uint) -0:49 'dti' ( in 3-component vector of uint) -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 3 (const int) -0:49 Constant: -0:49 1 (const uint) -0:50 move second child to first child ( temp double) -0:50 direct index ( temp double) -0:50 d: direct index for structure ( temp 4-component vector of double) -0:50 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:50 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:50 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:50 Constant: -0:50 0 (const uint) -0:50 direct index ( temp uint) -0:50 'dti' ( in 3-component vector of uint) -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 3 (const int) -0:50 Constant: -0:50 0 (const int) -0:50 subgroupQuadBroadcast ( temp double) -0:50 direct index ( temp double) -0:50 d: direct index for structure ( temp 4-component vector of double) -0:50 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:50 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:50 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:50 Constant: -0:50 0 (const uint) -0:50 direct index ( temp uint) -0:50 'dti' ( in 3-component vector of uint) -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 3 (const int) -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 1 (const uint) -0:51 move second child to first child ( temp 2-component vector of double) -0:51 vector swizzle ( temp 2-component vector of double) -0:51 d: direct index for structure ( temp 4-component vector of double) -0:51 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:51 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:51 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:51 Constant: -0:51 0 (const uint) -0:51 direct index ( temp uint) -0:51 'dti' ( in 3-component vector of uint) -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 3 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 subgroupQuadBroadcast ( temp 2-component vector of double) -0:51 vector swizzle ( temp 2-component vector of double) -0:51 d: direct index for structure ( temp 4-component vector of double) -0:51 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:51 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:51 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:51 Constant: -0:51 0 (const uint) -0:51 direct index ( temp uint) -0:51 'dti' ( in 3-component vector of uint) -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 3 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 1 (const uint) -0:52 move second child to first child ( temp 3-component vector of double) -0:52 vector swizzle ( temp 3-component vector of double) -0:52 d: direct index for structure ( temp 4-component vector of double) -0:52 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:52 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:52 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:52 Constant: -0:52 0 (const uint) -0:52 direct index ( temp uint) -0:52 'dti' ( in 3-component vector of uint) -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 3 (const int) -0:52 Sequence -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 1 (const int) -0:52 Constant: -0:52 2 (const int) -0:52 subgroupQuadBroadcast ( temp 3-component vector of double) -0:52 vector swizzle ( temp 3-component vector of double) -0:52 d: direct index for structure ( temp 4-component vector of double) -0:52 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:52 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:52 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:52 Constant: -0:52 0 (const uint) -0:52 direct index ( temp uint) -0:52 'dti' ( in 3-component vector of uint) -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 3 (const int) -0:52 Sequence -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 1 (const int) -0:52 Constant: -0:52 2 (const int) -0:52 Constant: -0:52 1 (const uint) -0:54 move second child to first child ( temp 4-component vector of uint) -0:54 u: direct index for structure ( temp 4-component vector of uint) -0:54 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:54 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:54 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:54 Constant: -0:54 0 (const uint) -0:54 direct index ( temp uint) -0:54 'dti' ( in 3-component vector of uint) -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 subgroupQuadBroadcast ( temp 4-component vector of uint) -0:54 u: direct index for structure ( temp 4-component vector of uint) -0:54 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:54 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:54 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:54 Constant: -0:54 0 (const uint) -0:54 direct index ( temp uint) -0:54 'dti' ( in 3-component vector of uint) -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 2 (const uint) -0:55 move second child to first child ( temp uint) -0:55 direct index ( temp uint) -0:55 u: direct index for structure ( temp 4-component vector of uint) -0:55 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:55 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:55 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:55 Constant: -0:55 0 (const uint) -0:55 direct index ( temp uint) -0:55 'dti' ( in 3-component vector of uint) -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 0 (const int) -0:55 subgroupQuadBroadcast ( temp uint) -0:55 direct index ( temp uint) -0:55 u: direct index for structure ( temp 4-component vector of uint) -0:55 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:55 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:55 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:55 Constant: -0:55 0 (const uint) -0:55 direct index ( temp uint) -0:55 'dti' ( in 3-component vector of uint) -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 2 (const uint) -0:56 move second child to first child ( temp 2-component vector of uint) -0:56 vector swizzle ( temp 2-component vector of uint) -0:56 u: direct index for structure ( temp 4-component vector of uint) -0:56 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:56 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:56 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:56 Constant: -0:56 0 (const uint) -0:56 direct index ( temp uint) -0:56 'dti' ( in 3-component vector of uint) -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 0 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 subgroupQuadBroadcast ( temp 2-component vector of uint) -0:56 vector swizzle ( temp 2-component vector of uint) -0:56 u: direct index for structure ( temp 4-component vector of uint) -0:56 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:56 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:56 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:56 Constant: -0:56 0 (const uint) -0:56 direct index ( temp uint) -0:56 'dti' ( in 3-component vector of uint) -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 0 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 2 (const uint) -0:57 move second child to first child ( temp 3-component vector of uint) -0:57 vector swizzle ( temp 3-component vector of uint) -0:57 u: direct index for structure ( temp 4-component vector of uint) -0:57 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:57 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:57 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:57 Constant: -0:57 0 (const uint) -0:57 direct index ( temp uint) -0:57 'dti' ( in 3-component vector of uint) -0:57 Constant: -0:57 0 (const int) -0:57 Constant: -0:57 0 (const int) -0:57 Sequence -0:57 Constant: -0:57 0 (const int) -0:57 Constant: -0:57 1 (const int) -0:57 Constant: -0:57 2 (const int) -0:57 subgroupQuadBroadcast ( temp 3-component vector of uint) -0:57 vector swizzle ( temp 3-component vector of uint) -0:57 u: direct index for structure ( temp 4-component vector of uint) -0:57 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:57 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:57 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:57 Constant: -0:57 0 (const uint) -0:57 direct index ( temp uint) -0:57 'dti' ( in 3-component vector of uint) -0:57 Constant: -0:57 0 (const int) -0:57 Constant: -0:57 0 (const int) -0:57 Sequence -0:57 Constant: -0:57 0 (const int) -0:57 Constant: -0:57 1 (const int) -0:57 Constant: -0:57 2 (const int) -0:57 Constant: -0:57 2 (const uint) -0:59 move second child to first child ( temp 4-component vector of int) -0:59 i: direct index for structure ( temp 4-component vector of int) -0:59 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:59 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:59 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:59 Constant: -0:59 0 (const uint) -0:59 direct index ( temp uint) -0:59 'dti' ( in 3-component vector of uint) -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 1 (const int) -0:59 subgroupQuadBroadcast ( temp 4-component vector of int) -0:59 i: direct index for structure ( temp 4-component vector of int) -0:59 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:59 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:59 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:59 Constant: -0:59 0 (const uint) -0:59 direct index ( temp uint) -0:59 'dti' ( in 3-component vector of uint) -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 1 (const int) -0:59 Constant: -0:59 2 (const uint) -0:60 move second child to first child ( temp int) -0:60 direct index ( temp int) -0:60 i: direct index for structure ( temp 4-component vector of int) -0:60 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:60 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:60 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:60 Constant: -0:60 0 (const uint) -0:60 direct index ( temp uint) -0:60 'dti' ( in 3-component vector of uint) -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 0 (const int) -0:60 subgroupQuadBroadcast ( temp int) -0:60 direct index ( temp int) -0:60 i: direct index for structure ( temp 4-component vector of int) -0:60 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:60 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:60 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:60 Constant: -0:60 0 (const uint) -0:60 direct index ( temp uint) -0:60 'dti' ( in 3-component vector of uint) -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 2 (const uint) -0:61 move second child to first child ( temp 2-component vector of int) -0:61 vector swizzle ( temp 2-component vector of int) -0:61 i: direct index for structure ( temp 4-component vector of int) -0:61 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:61 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:61 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:61 Constant: -0:61 0 (const uint) -0:61 direct index ( temp uint) -0:61 'dti' ( in 3-component vector of uint) -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 Sequence -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 subgroupQuadBroadcast ( temp 2-component vector of int) -0:61 vector swizzle ( temp 2-component vector of int) -0:61 i: direct index for structure ( temp 4-component vector of int) -0:61 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:61 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:61 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:61 Constant: -0:61 0 (const uint) -0:61 direct index ( temp uint) -0:61 'dti' ( in 3-component vector of uint) -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 Sequence -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 Constant: -0:61 2 (const uint) -0:62 move second child to first child ( temp 3-component vector of int) -0:62 vector swizzle ( temp 3-component vector of int) -0:62 i: direct index for structure ( temp 4-component vector of int) -0:62 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:62 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:62 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:62 Constant: -0:62 0 (const uint) -0:62 direct index ( temp uint) -0:62 'dti' ( in 3-component vector of uint) -0:62 Constant: -0:62 0 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 Sequence -0:62 Constant: -0:62 0 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 Constant: -0:62 2 (const int) -0:62 subgroupQuadBroadcast ( temp 3-component vector of int) -0:62 vector swizzle ( temp 3-component vector of int) -0:62 i: direct index for structure ( temp 4-component vector of int) -0:62 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:62 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:62 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:62 Constant: -0:62 0 (const uint) -0:62 direct index ( temp uint) -0:62 'dti' ( in 3-component vector of uint) -0:62 Constant: -0:62 0 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 Sequence -0:62 Constant: -0:62 0 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 Constant: -0:62 2 (const int) -0:62 Constant: -0:62 2 (const uint) -0:64 move second child to first child ( temp 4-component vector of float) -0:64 f: direct index for structure ( temp 4-component vector of float) -0:64 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:64 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:64 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:64 Constant: -0:64 0 (const uint) -0:64 direct index ( temp uint) -0:64 'dti' ( in 3-component vector of uint) -0:64 Constant: -0:64 0 (const int) -0:64 Constant: -0:64 2 (const int) -0:64 subgroupQuadBroadcast ( temp 4-component vector of float) -0:64 f: direct index for structure ( temp 4-component vector of float) -0:64 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:64 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:64 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:64 Constant: -0:64 0 (const uint) -0:64 direct index ( temp uint) -0:64 'dti' ( in 3-component vector of uint) -0:64 Constant: -0:64 0 (const int) -0:64 Constant: -0:64 2 (const int) -0:64 Constant: -0:64 2 (const uint) -0:65 move second child to first child ( temp float) -0:65 direct index ( temp float) -0:65 f: direct index for structure ( temp 4-component vector of float) -0:65 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:65 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:65 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:65 Constant: -0:65 0 (const uint) -0:65 direct index ( temp uint) -0:65 'dti' ( in 3-component vector of uint) -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 2 (const int) -0:65 Constant: -0:65 0 (const int) -0:65 subgroupQuadBroadcast ( temp float) -0:65 direct index ( temp float) -0:65 f: direct index for structure ( temp 4-component vector of float) -0:65 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:65 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:65 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:65 Constant: -0:65 0 (const uint) -0:65 direct index ( temp uint) -0:65 'dti' ( in 3-component vector of uint) -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 2 (const int) -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 2 (const uint) -0:66 move second child to first child ( temp 2-component vector of float) -0:66 vector swizzle ( temp 2-component vector of float) -0:66 f: direct index for structure ( temp 4-component vector of float) -0:66 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:66 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:66 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:66 Constant: -0:66 0 (const uint) -0:66 direct index ( temp uint) -0:66 'dti' ( in 3-component vector of uint) -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 2 (const int) -0:66 Sequence -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 subgroupQuadBroadcast ( temp 2-component vector of float) -0:66 vector swizzle ( temp 2-component vector of float) -0:66 f: direct index for structure ( temp 4-component vector of float) -0:66 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:66 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:66 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:66 Constant: -0:66 0 (const uint) -0:66 direct index ( temp uint) -0:66 'dti' ( in 3-component vector of uint) -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 2 (const int) -0:66 Sequence -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 Constant: -0:66 2 (const uint) -0:67 move second child to first child ( temp 3-component vector of float) -0:67 vector swizzle ( temp 3-component vector of float) -0:67 f: direct index for structure ( temp 4-component vector of float) -0:67 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:67 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:67 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:67 Constant: -0:67 0 (const uint) -0:67 direct index ( temp uint) -0:67 'dti' ( in 3-component vector of uint) -0:67 Constant: -0:67 0 (const int) -0:67 Constant: -0:67 2 (const int) -0:67 Sequence -0:67 Constant: -0:67 0 (const int) -0:67 Constant: -0:67 1 (const int) -0:67 Constant: -0:67 2 (const int) -0:67 subgroupQuadBroadcast ( temp 3-component vector of float) -0:67 vector swizzle ( temp 3-component vector of float) -0:67 f: direct index for structure ( temp 4-component vector of float) -0:67 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:67 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:67 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:67 Constant: -0:67 0 (const uint) -0:67 direct index ( temp uint) -0:67 'dti' ( in 3-component vector of uint) -0:67 Constant: -0:67 0 (const int) -0:67 Constant: -0:67 2 (const int) -0:67 Sequence -0:67 Constant: -0:67 0 (const int) -0:67 Constant: -0:67 1 (const int) -0:67 Constant: -0:67 2 (const int) -0:67 Constant: -0:67 2 (const uint) -0:69 move second child to first child ( temp 4-component vector of double) -0:69 d: direct index for structure ( temp 4-component vector of double) -0:69 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:69 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:69 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:69 Constant: -0:69 0 (const uint) -0:69 direct index ( temp uint) -0:69 'dti' ( in 3-component vector of uint) -0:69 Constant: -0:69 0 (const int) -0:69 Constant: -0:69 3 (const int) -0:69 subgroupQuadBroadcast ( temp 4-component vector of double) -0:69 d: direct index for structure ( temp 4-component vector of double) -0:69 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:69 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:69 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:69 Constant: -0:69 0 (const uint) -0:69 direct index ( temp uint) -0:69 'dti' ( in 3-component vector of uint) -0:69 Constant: -0:69 0 (const int) -0:69 Constant: -0:69 3 (const int) -0:69 Constant: -0:69 2 (const uint) -0:70 move second child to first child ( temp double) -0:70 direct index ( temp double) -0:70 d: direct index for structure ( temp 4-component vector of double) -0:70 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:70 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:70 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:70 Constant: -0:70 0 (const uint) -0:70 direct index ( temp uint) -0:70 'dti' ( in 3-component vector of uint) -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 3 (const int) -0:70 Constant: -0:70 0 (const int) -0:70 subgroupQuadBroadcast ( temp double) -0:70 direct index ( temp double) -0:70 d: direct index for structure ( temp 4-component vector of double) -0:70 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:70 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:70 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:70 Constant: -0:70 0 (const uint) -0:70 direct index ( temp uint) -0:70 'dti' ( in 3-component vector of uint) -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 3 (const int) -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 2 (const uint) -0:71 move second child to first child ( temp 2-component vector of double) -0:71 vector swizzle ( temp 2-component vector of double) -0:71 d: direct index for structure ( temp 4-component vector of double) -0:71 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:71 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:71 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:71 Constant: -0:71 0 (const uint) -0:71 direct index ( temp uint) -0:71 'dti' ( in 3-component vector of uint) -0:71 Constant: -0:71 0 (const int) -0:71 Constant: -0:71 3 (const int) -0:71 Sequence -0:71 Constant: -0:71 0 (const int) -0:71 Constant: -0:71 1 (const int) -0:71 subgroupQuadBroadcast ( temp 2-component vector of double) -0:71 vector swizzle ( temp 2-component vector of double) -0:71 d: direct index for structure ( temp 4-component vector of double) -0:71 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:71 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:71 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:71 Constant: -0:71 0 (const uint) -0:71 direct index ( temp uint) -0:71 'dti' ( in 3-component vector of uint) -0:71 Constant: -0:71 0 (const int) -0:71 Constant: -0:71 3 (const int) -0:71 Sequence -0:71 Constant: -0:71 0 (const int) -0:71 Constant: -0:71 1 (const int) -0:71 Constant: -0:71 2 (const uint) -0:72 move second child to first child ( temp 3-component vector of double) -0:72 vector swizzle ( temp 3-component vector of double) -0:72 d: direct index for structure ( temp 4-component vector of double) -0:72 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:72 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:72 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:72 Constant: -0:72 0 (const uint) -0:72 direct index ( temp uint) -0:72 'dti' ( in 3-component vector of uint) -0:72 Constant: -0:72 0 (const int) -0:72 Constant: -0:72 3 (const int) -0:72 Sequence -0:72 Constant: -0:72 0 (const int) -0:72 Constant: -0:72 1 (const int) -0:72 Constant: -0:72 2 (const int) -0:72 subgroupQuadBroadcast ( temp 3-component vector of double) -0:72 vector swizzle ( temp 3-component vector of double) -0:72 d: direct index for structure ( temp 4-component vector of double) -0:72 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:72 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:72 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:72 Constant: -0:72 0 (const uint) -0:72 direct index ( temp uint) -0:72 'dti' ( in 3-component vector of uint) -0:72 Constant: -0:72 0 (const int) -0:72 Constant: -0:72 3 (const int) -0:72 Sequence -0:72 Constant: -0:72 0 (const int) -0:72 Constant: -0:72 1 (const int) -0:72 Constant: -0:72 2 (const int) -0:72 Constant: -0:72 2 (const uint) -0:74 move second child to first child ( temp 4-component vector of uint) -0:74 u: direct index for structure ( temp 4-component vector of uint) -0:74 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:74 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:74 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:74 Constant: -0:74 0 (const uint) -0:74 direct index ( temp uint) -0:74 'dti' ( in 3-component vector of uint) -0:74 Constant: -0:74 0 (const int) -0:74 Constant: -0:74 0 (const int) -0:74 subgroupQuadBroadcast ( temp 4-component vector of uint) -0:74 u: direct index for structure ( temp 4-component vector of uint) -0:74 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:74 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:74 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:74 Constant: -0:74 0 (const uint) -0:74 direct index ( temp uint) -0:74 'dti' ( in 3-component vector of uint) -0:74 Constant: -0:74 0 (const int) -0:74 Constant: -0:74 0 (const int) -0:74 Constant: -0:74 3 (const uint) -0:75 move second child to first child ( temp uint) -0:75 direct index ( temp uint) -0:75 u: direct index for structure ( temp 4-component vector of uint) -0:75 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:75 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:75 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:75 Constant: -0:75 0 (const uint) -0:75 direct index ( temp uint) -0:75 'dti' ( in 3-component vector of uint) -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 0 (const int) -0:75 subgroupQuadBroadcast ( temp uint) -0:75 direct index ( temp uint) -0:75 u: direct index for structure ( temp 4-component vector of uint) -0:75 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:75 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:75 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:75 Constant: -0:75 0 (const uint) -0:75 direct index ( temp uint) -0:75 'dti' ( in 3-component vector of uint) -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 3 (const uint) -0:76 move second child to first child ( temp 2-component vector of uint) -0:76 vector swizzle ( temp 2-component vector of uint) -0:76 u: direct index for structure ( temp 4-component vector of uint) -0:76 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:76 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:76 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:76 Constant: -0:76 0 (const uint) -0:76 direct index ( temp uint) -0:76 'dti' ( in 3-component vector of uint) -0:76 Constant: -0:76 0 (const int) -0:76 Constant: -0:76 0 (const int) -0:76 Sequence -0:76 Constant: -0:76 0 (const int) -0:76 Constant: -0:76 1 (const int) -0:76 subgroupQuadBroadcast ( temp 2-component vector of uint) -0:76 vector swizzle ( temp 2-component vector of uint) -0:76 u: direct index for structure ( temp 4-component vector of uint) -0:76 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:76 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:76 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:76 Constant: -0:76 0 (const uint) -0:76 direct index ( temp uint) -0:76 'dti' ( in 3-component vector of uint) -0:76 Constant: -0:76 0 (const int) -0:76 Constant: -0:76 0 (const int) -0:76 Sequence -0:76 Constant: -0:76 0 (const int) -0:76 Constant: -0:76 1 (const int) -0:76 Constant: -0:76 3 (const uint) -0:77 move second child to first child ( temp 3-component vector of uint) -0:77 vector swizzle ( temp 3-component vector of uint) -0:77 u: direct index for structure ( temp 4-component vector of uint) -0:77 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:77 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:77 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:77 Constant: -0:77 0 (const uint) -0:77 direct index ( temp uint) -0:77 'dti' ( in 3-component vector of uint) -0:77 Constant: -0:77 0 (const int) -0:77 Constant: -0:77 0 (const int) -0:77 Sequence -0:77 Constant: -0:77 0 (const int) -0:77 Constant: -0:77 1 (const int) -0:77 Constant: -0:77 2 (const int) -0:77 subgroupQuadBroadcast ( temp 3-component vector of uint) -0:77 vector swizzle ( temp 3-component vector of uint) -0:77 u: direct index for structure ( temp 4-component vector of uint) -0:77 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:77 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:77 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:77 Constant: -0:77 0 (const uint) -0:77 direct index ( temp uint) -0:77 'dti' ( in 3-component vector of uint) -0:77 Constant: -0:77 0 (const int) -0:77 Constant: -0:77 0 (const int) -0:77 Sequence -0:77 Constant: -0:77 0 (const int) -0:77 Constant: -0:77 1 (const int) -0:77 Constant: -0:77 2 (const int) -0:77 Constant: -0:77 3 (const uint) -0:79 move second child to first child ( temp 4-component vector of int) -0:79 i: direct index for structure ( temp 4-component vector of int) -0:79 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:79 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:79 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:79 Constant: -0:79 0 (const uint) -0:79 direct index ( temp uint) -0:79 'dti' ( in 3-component vector of uint) -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 1 (const int) -0:79 subgroupQuadBroadcast ( temp 4-component vector of int) -0:79 i: direct index for structure ( temp 4-component vector of int) -0:79 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:79 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:79 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:79 Constant: -0:79 0 (const uint) -0:79 direct index ( temp uint) -0:79 'dti' ( in 3-component vector of uint) -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 1 (const int) -0:79 Constant: -0:79 3 (const uint) -0:80 move second child to first child ( temp int) -0:80 direct index ( temp int) -0:80 i: direct index for structure ( temp 4-component vector of int) -0:80 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:80 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:80 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:80 Constant: -0:80 0 (const uint) -0:80 direct index ( temp uint) -0:80 'dti' ( in 3-component vector of uint) -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 1 (const int) -0:80 Constant: -0:80 0 (const int) -0:80 subgroupQuadBroadcast ( temp int) -0:80 direct index ( temp int) -0:80 i: direct index for structure ( temp 4-component vector of int) -0:80 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:80 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:80 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:80 Constant: -0:80 0 (const uint) -0:80 direct index ( temp uint) -0:80 'dti' ( in 3-component vector of uint) -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 1 (const int) -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 3 (const uint) -0:81 move second child to first child ( temp 2-component vector of int) -0:81 vector swizzle ( temp 2-component vector of int) -0:81 i: direct index for structure ( temp 4-component vector of int) -0:81 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:81 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:81 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:81 Constant: -0:81 0 (const uint) -0:81 direct index ( temp uint) -0:81 'dti' ( in 3-component vector of uint) -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 1 (const int) -0:81 Sequence -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 1 (const int) -0:81 subgroupQuadBroadcast ( temp 2-component vector of int) -0:81 vector swizzle ( temp 2-component vector of int) -0:81 i: direct index for structure ( temp 4-component vector of int) -0:81 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:81 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:81 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:81 Constant: -0:81 0 (const uint) -0:81 direct index ( temp uint) -0:81 'dti' ( in 3-component vector of uint) -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 1 (const int) -0:81 Sequence -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 1 (const int) -0:81 Constant: -0:81 3 (const uint) -0:82 move second child to first child ( temp 3-component vector of int) -0:82 vector swizzle ( temp 3-component vector of int) -0:82 i: direct index for structure ( temp 4-component vector of int) -0:82 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:82 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:82 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:82 Constant: -0:82 0 (const uint) -0:82 direct index ( temp uint) -0:82 'dti' ( in 3-component vector of uint) -0:82 Constant: -0:82 0 (const int) -0:82 Constant: -0:82 1 (const int) -0:82 Sequence -0:82 Constant: -0:82 0 (const int) -0:82 Constant: -0:82 1 (const int) -0:82 Constant: -0:82 2 (const int) -0:82 subgroupQuadBroadcast ( temp 3-component vector of int) -0:82 vector swizzle ( temp 3-component vector of int) -0:82 i: direct index for structure ( temp 4-component vector of int) -0:82 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:82 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:82 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:82 Constant: -0:82 0 (const uint) -0:82 direct index ( temp uint) -0:82 'dti' ( in 3-component vector of uint) -0:82 Constant: -0:82 0 (const int) -0:82 Constant: -0:82 1 (const int) -0:82 Sequence -0:82 Constant: -0:82 0 (const int) -0:82 Constant: -0:82 1 (const int) -0:82 Constant: -0:82 2 (const int) -0:82 Constant: -0:82 3 (const uint) -0:84 move second child to first child ( temp 4-component vector of float) -0:84 f: direct index for structure ( temp 4-component vector of float) -0:84 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:84 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:84 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:84 Constant: -0:84 0 (const uint) -0:84 direct index ( temp uint) -0:84 'dti' ( in 3-component vector of uint) -0:84 Constant: -0:84 0 (const int) -0:84 Constant: -0:84 2 (const int) -0:84 subgroupQuadBroadcast ( temp 4-component vector of float) -0:84 f: direct index for structure ( temp 4-component vector of float) -0:84 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:84 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:84 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:84 Constant: -0:84 0 (const uint) -0:84 direct index ( temp uint) -0:84 'dti' ( in 3-component vector of uint) -0:84 Constant: -0:84 0 (const int) -0:84 Constant: -0:84 2 (const int) -0:84 Constant: -0:84 3 (const uint) -0:85 move second child to first child ( temp float) -0:85 direct index ( temp float) -0:85 f: direct index for structure ( temp 4-component vector of float) -0:85 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:85 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:85 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:85 Constant: -0:85 0 (const uint) -0:85 direct index ( temp uint) -0:85 'dti' ( in 3-component vector of uint) -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 2 (const int) -0:85 Constant: -0:85 0 (const int) -0:85 subgroupQuadBroadcast ( temp float) -0:85 direct index ( temp float) -0:85 f: direct index for structure ( temp 4-component vector of float) -0:85 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:85 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:85 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:85 Constant: -0:85 0 (const uint) -0:85 direct index ( temp uint) -0:85 'dti' ( in 3-component vector of uint) -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 2 (const int) -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 3 (const uint) -0:86 move second child to first child ( temp 2-component vector of float) -0:86 vector swizzle ( temp 2-component vector of float) -0:86 f: direct index for structure ( temp 4-component vector of float) -0:86 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:86 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:86 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:86 Constant: -0:86 0 (const uint) -0:86 direct index ( temp uint) -0:86 'dti' ( in 3-component vector of uint) -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 2 (const int) -0:86 Sequence -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 1 (const int) -0:86 subgroupQuadBroadcast ( temp 2-component vector of float) -0:86 vector swizzle ( temp 2-component vector of float) -0:86 f: direct index for structure ( temp 4-component vector of float) -0:86 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:86 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:86 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:86 Constant: -0:86 0 (const uint) -0:86 direct index ( temp uint) -0:86 'dti' ( in 3-component vector of uint) -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 2 (const int) -0:86 Sequence -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 1 (const int) -0:86 Constant: -0:86 3 (const uint) -0:87 move second child to first child ( temp 3-component vector of float) -0:87 vector swizzle ( temp 3-component vector of float) -0:87 f: direct index for structure ( temp 4-component vector of float) -0:87 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:87 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:87 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:87 Constant: -0:87 0 (const uint) -0:87 direct index ( temp uint) -0:87 'dti' ( in 3-component vector of uint) -0:87 Constant: -0:87 0 (const int) -0:87 Constant: -0:87 2 (const int) -0:87 Sequence -0:87 Constant: -0:87 0 (const int) -0:87 Constant: -0:87 1 (const int) -0:87 Constant: -0:87 2 (const int) -0:87 subgroupQuadBroadcast ( temp 3-component vector of float) -0:87 vector swizzle ( temp 3-component vector of float) -0:87 f: direct index for structure ( temp 4-component vector of float) -0:87 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:87 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:87 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:87 Constant: -0:87 0 (const uint) -0:87 direct index ( temp uint) -0:87 'dti' ( in 3-component vector of uint) -0:87 Constant: -0:87 0 (const int) -0:87 Constant: -0:87 2 (const int) -0:87 Sequence -0:87 Constant: -0:87 0 (const int) -0:87 Constant: -0:87 1 (const int) -0:87 Constant: -0:87 2 (const int) -0:87 Constant: -0:87 3 (const uint) -0:89 move second child to first child ( temp 4-component vector of double) -0:89 d: direct index for structure ( temp 4-component vector of double) -0:89 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:89 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:89 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:89 Constant: -0:89 0 (const uint) -0:89 direct index ( temp uint) -0:89 'dti' ( in 3-component vector of uint) -0:89 Constant: -0:89 0 (const int) -0:89 Constant: -0:89 3 (const int) -0:89 subgroupQuadBroadcast ( temp 4-component vector of double) -0:89 d: direct index for structure ( temp 4-component vector of double) -0:89 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:89 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:89 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:89 Constant: -0:89 0 (const uint) -0:89 direct index ( temp uint) -0:89 'dti' ( in 3-component vector of uint) -0:89 Constant: -0:89 0 (const int) -0:89 Constant: -0:89 3 (const int) -0:89 Constant: -0:89 3 (const uint) -0:90 move second child to first child ( temp double) -0:90 direct index ( temp double) -0:90 d: direct index for structure ( temp 4-component vector of double) -0:90 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:90 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:90 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:90 Constant: -0:90 0 (const uint) -0:90 direct index ( temp uint) -0:90 'dti' ( in 3-component vector of uint) -0:90 Constant: -0:90 0 (const int) -0:90 Constant: -0:90 3 (const int) -0:90 Constant: -0:90 0 (const int) -0:90 subgroupQuadBroadcast ( temp double) -0:90 direct index ( temp double) -0:90 d: direct index for structure ( temp 4-component vector of double) -0:90 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:90 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:90 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:90 Constant: -0:90 0 (const uint) -0:90 direct index ( temp uint) -0:90 'dti' ( in 3-component vector of uint) -0:90 Constant: -0:90 0 (const int) -0:90 Constant: -0:90 3 (const int) -0:90 Constant: -0:90 0 (const int) -0:90 Constant: -0:90 3 (const uint) -0:91 move second child to first child ( temp 2-component vector of double) -0:91 vector swizzle ( temp 2-component vector of double) -0:91 d: direct index for structure ( temp 4-component vector of double) -0:91 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:91 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:91 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:91 Constant: -0:91 0 (const uint) -0:91 direct index ( temp uint) -0:91 'dti' ( in 3-component vector of uint) -0:91 Constant: -0:91 0 (const int) -0:91 Constant: -0:91 3 (const int) -0:91 Sequence -0:91 Constant: -0:91 0 (const int) -0:91 Constant: -0:91 1 (const int) -0:91 subgroupQuadBroadcast ( temp 2-component vector of double) -0:91 vector swizzle ( temp 2-component vector of double) -0:91 d: direct index for structure ( temp 4-component vector of double) -0:91 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:91 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:91 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:91 Constant: -0:91 0 (const uint) -0:91 direct index ( temp uint) -0:91 'dti' ( in 3-component vector of uint) -0:91 Constant: -0:91 0 (const int) -0:91 Constant: -0:91 3 (const int) -0:91 Sequence -0:91 Constant: -0:91 0 (const int) -0:91 Constant: -0:91 1 (const int) -0:91 Constant: -0:91 3 (const uint) -0:92 move second child to first child ( temp 3-component vector of double) -0:92 vector swizzle ( temp 3-component vector of double) -0:92 d: direct index for structure ( temp 4-component vector of double) -0:92 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:92 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:92 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:92 Constant: -0:92 0 (const uint) -0:92 direct index ( temp uint) -0:92 'dti' ( in 3-component vector of uint) -0:92 Constant: -0:92 0 (const int) -0:92 Constant: -0:92 3 (const int) -0:92 Sequence -0:92 Constant: -0:92 0 (const int) -0:92 Constant: -0:92 1 (const int) -0:92 Constant: -0:92 2 (const int) -0:92 subgroupQuadBroadcast ( temp 3-component vector of double) -0:92 vector swizzle ( temp 3-component vector of double) -0:92 d: direct index for structure ( temp 4-component vector of double) -0:92 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:92 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:92 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:92 Constant: -0:92 0 (const uint) -0:92 direct index ( temp uint) -0:92 'dti' ( in 3-component vector of uint) -0:92 Constant: -0:92 0 (const int) -0:92 Constant: -0:92 3 (const int) -0:92 Sequence -0:92 Constant: -0:92 0 (const int) -0:92 Constant: -0:92 1 (const int) -0:92 Constant: -0:92 2 (const int) -0:92 Constant: -0:92 3 (const uint) -0:94 move second child to first child ( temp 4-component vector of uint) -0:94 u: direct index for structure ( temp 4-component vector of uint) -0:94 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:94 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:94 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:94 Constant: -0:94 0 (const uint) -0:94 direct index ( temp uint) -0:94 'dti' ( in 3-component vector of uint) -0:94 Constant: -0:94 0 (const int) -0:94 Constant: -0:94 0 (const int) -0:94 subgroupQuadSwapHorizontal ( temp 4-component vector of uint) -0:94 u: direct index for structure ( temp 4-component vector of uint) -0:94 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:94 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:94 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:94 Constant: -0:94 0 (const uint) -0:94 direct index ( temp uint) -0:94 'dti' ( in 3-component vector of uint) -0:94 Constant: -0:94 0 (const int) -0:94 Constant: -0:94 0 (const int) -0:95 move second child to first child ( temp uint) -0:95 direct index ( temp uint) -0:95 u: direct index for structure ( temp 4-component vector of uint) -0:95 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:95 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:95 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:95 Constant: -0:95 0 (const uint) -0:95 direct index ( temp uint) -0:95 'dti' ( in 3-component vector of uint) -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 0 (const int) -0:95 subgroupQuadSwapHorizontal ( temp uint) -0:95 direct index ( temp uint) -0:95 u: direct index for structure ( temp 4-component vector of uint) -0:95 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:95 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:95 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:95 Constant: -0:95 0 (const uint) -0:95 direct index ( temp uint) -0:95 'dti' ( in 3-component vector of uint) -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 0 (const int) -0:96 move second child to first child ( temp 2-component vector of uint) -0:96 vector swizzle ( temp 2-component vector of uint) -0:96 u: direct index for structure ( temp 4-component vector of uint) -0:96 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:96 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:96 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:96 Constant: -0:96 0 (const uint) -0:96 direct index ( temp uint) -0:96 'dti' ( in 3-component vector of uint) -0:96 Constant: -0:96 0 (const int) -0:96 Constant: -0:96 0 (const int) -0:96 Sequence -0:96 Constant: -0:96 0 (const int) -0:96 Constant: -0:96 1 (const int) -0:96 subgroupQuadSwapHorizontal ( temp 2-component vector of uint) -0:96 vector swizzle ( temp 2-component vector of uint) -0:96 u: direct index for structure ( temp 4-component vector of uint) -0:96 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:96 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:96 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:96 Constant: -0:96 0 (const uint) -0:96 direct index ( temp uint) -0:96 'dti' ( in 3-component vector of uint) -0:96 Constant: -0:96 0 (const int) -0:96 Constant: -0:96 0 (const int) -0:96 Sequence -0:96 Constant: -0:96 0 (const int) -0:96 Constant: -0:96 1 (const int) -0:97 move second child to first child ( temp 3-component vector of uint) -0:97 vector swizzle ( temp 3-component vector of uint) -0:97 u: direct index for structure ( temp 4-component vector of uint) -0:97 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:97 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:97 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:97 Constant: -0:97 0 (const uint) -0:97 direct index ( temp uint) -0:97 'dti' ( in 3-component vector of uint) -0:97 Constant: -0:97 0 (const int) -0:97 Constant: -0:97 0 (const int) -0:97 Sequence -0:97 Constant: -0:97 0 (const int) -0:97 Constant: -0:97 1 (const int) -0:97 Constant: -0:97 2 (const int) -0:97 subgroupQuadSwapHorizontal ( temp 3-component vector of uint) -0:97 vector swizzle ( temp 3-component vector of uint) -0:97 u: direct index for structure ( temp 4-component vector of uint) -0:97 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:97 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:97 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:97 Constant: -0:97 0 (const uint) -0:97 direct index ( temp uint) -0:97 'dti' ( in 3-component vector of uint) -0:97 Constant: -0:97 0 (const int) -0:97 Constant: -0:97 0 (const int) -0:97 Sequence -0:97 Constant: -0:97 0 (const int) -0:97 Constant: -0:97 1 (const int) -0:97 Constant: -0:97 2 (const int) -0:99 move second child to first child ( temp 4-component vector of int) -0:99 i: direct index for structure ( temp 4-component vector of int) -0:99 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:99 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:99 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:99 Constant: -0:99 0 (const uint) -0:99 direct index ( temp uint) -0:99 'dti' ( in 3-component vector of uint) -0:99 Constant: -0:99 0 (const int) -0:99 Constant: -0:99 1 (const int) -0:99 subgroupQuadSwapHorizontal ( temp 4-component vector of int) -0:99 i: direct index for structure ( temp 4-component vector of int) -0:99 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:99 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:99 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:99 Constant: -0:99 0 (const uint) -0:99 direct index ( temp uint) -0:99 'dti' ( in 3-component vector of uint) -0:99 Constant: -0:99 0 (const int) -0:99 Constant: -0:99 1 (const int) -0:100 move second child to first child ( temp int) -0:100 direct index ( temp int) -0:100 i: direct index for structure ( temp 4-component vector of int) -0:100 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:100 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:100 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:100 Constant: -0:100 0 (const uint) -0:100 direct index ( temp uint) -0:100 'dti' ( in 3-component vector of uint) -0:100 Constant: -0:100 0 (const int) -0:100 Constant: -0:100 1 (const int) -0:100 Constant: -0:100 0 (const int) -0:100 subgroupQuadSwapHorizontal ( temp int) -0:100 direct index ( temp int) -0:100 i: direct index for structure ( temp 4-component vector of int) -0:100 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:100 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:100 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:100 Constant: -0:100 0 (const uint) -0:100 direct index ( temp uint) -0:100 'dti' ( in 3-component vector of uint) -0:100 Constant: -0:100 0 (const int) -0:100 Constant: -0:100 1 (const int) -0:100 Constant: -0:100 0 (const int) -0:101 move second child to first child ( temp 2-component vector of int) -0:101 vector swizzle ( temp 2-component vector of int) -0:101 i: direct index for structure ( temp 4-component vector of int) -0:101 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:101 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:101 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:101 Constant: -0:101 0 (const uint) -0:101 direct index ( temp uint) -0:101 'dti' ( in 3-component vector of uint) -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 1 (const int) -0:101 Sequence -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 1 (const int) -0:101 subgroupQuadSwapHorizontal ( temp 2-component vector of int) -0:101 vector swizzle ( temp 2-component vector of int) -0:101 i: direct index for structure ( temp 4-component vector of int) -0:101 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:101 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:101 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:101 Constant: -0:101 0 (const uint) -0:101 direct index ( temp uint) -0:101 'dti' ( in 3-component vector of uint) -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 1 (const int) -0:101 Sequence -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 1 (const int) -0:102 move second child to first child ( temp 3-component vector of int) -0:102 vector swizzle ( temp 3-component vector of int) -0:102 i: direct index for structure ( temp 4-component vector of int) -0:102 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:102 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:102 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:102 Constant: -0:102 0 (const uint) -0:102 direct index ( temp uint) -0:102 'dti' ( in 3-component vector of uint) -0:102 Constant: -0:102 0 (const int) -0:102 Constant: -0:102 1 (const int) -0:102 Sequence -0:102 Constant: -0:102 0 (const int) -0:102 Constant: -0:102 1 (const int) -0:102 Constant: -0:102 2 (const int) -0:102 subgroupQuadSwapHorizontal ( temp 3-component vector of int) -0:102 vector swizzle ( temp 3-component vector of int) -0:102 i: direct index for structure ( temp 4-component vector of int) -0:102 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:102 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:102 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:102 Constant: -0:102 0 (const uint) -0:102 direct index ( temp uint) -0:102 'dti' ( in 3-component vector of uint) -0:102 Constant: -0:102 0 (const int) -0:102 Constant: -0:102 1 (const int) -0:102 Sequence -0:102 Constant: -0:102 0 (const int) -0:102 Constant: -0:102 1 (const int) -0:102 Constant: -0:102 2 (const int) -0:104 move second child to first child ( temp 4-component vector of float) -0:104 f: direct index for structure ( temp 4-component vector of float) -0:104 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:104 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:104 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:104 Constant: -0:104 0 (const uint) -0:104 direct index ( temp uint) -0:104 'dti' ( in 3-component vector of uint) -0:104 Constant: -0:104 0 (const int) -0:104 Constant: -0:104 2 (const int) -0:104 subgroupQuadSwapHorizontal ( temp 4-component vector of float) -0:104 f: direct index for structure ( temp 4-component vector of float) -0:104 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:104 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:104 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:104 Constant: -0:104 0 (const uint) -0:104 direct index ( temp uint) -0:104 'dti' ( in 3-component vector of uint) -0:104 Constant: -0:104 0 (const int) -0:104 Constant: -0:104 2 (const int) -0:105 move second child to first child ( temp float) -0:105 direct index ( temp float) -0:105 f: direct index for structure ( temp 4-component vector of float) -0:105 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:105 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:105 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:105 Constant: -0:105 0 (const uint) -0:105 direct index ( temp uint) -0:105 'dti' ( in 3-component vector of uint) -0:105 Constant: -0:105 0 (const int) -0:105 Constant: -0:105 2 (const int) -0:105 Constant: -0:105 0 (const int) -0:105 subgroupQuadSwapHorizontal ( temp float) -0:105 direct index ( temp float) -0:105 f: direct index for structure ( temp 4-component vector of float) -0:105 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:105 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:105 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:105 Constant: -0:105 0 (const uint) -0:105 direct index ( temp uint) -0:105 'dti' ( in 3-component vector of uint) -0:105 Constant: -0:105 0 (const int) -0:105 Constant: -0:105 2 (const int) -0:105 Constant: -0:105 0 (const int) -0:106 move second child to first child ( temp 2-component vector of float) -0:106 vector swizzle ( temp 2-component vector of float) -0:106 f: direct index for structure ( temp 4-component vector of float) -0:106 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:106 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:106 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:106 Constant: -0:106 0 (const uint) -0:106 direct index ( temp uint) -0:106 'dti' ( in 3-component vector of uint) -0:106 Constant: -0:106 0 (const int) -0:106 Constant: -0:106 2 (const int) -0:106 Sequence -0:106 Constant: -0:106 0 (const int) -0:106 Constant: -0:106 1 (const int) -0:106 subgroupQuadSwapHorizontal ( temp 2-component vector of float) -0:106 vector swizzle ( temp 2-component vector of float) -0:106 f: direct index for structure ( temp 4-component vector of float) -0:106 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:106 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:106 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:106 Constant: -0:106 0 (const uint) -0:106 direct index ( temp uint) -0:106 'dti' ( in 3-component vector of uint) -0:106 Constant: -0:106 0 (const int) -0:106 Constant: -0:106 2 (const int) -0:106 Sequence -0:106 Constant: -0:106 0 (const int) -0:106 Constant: -0:106 1 (const int) -0:107 move second child to first child ( temp 3-component vector of float) -0:107 vector swizzle ( temp 3-component vector of float) -0:107 f: direct index for structure ( temp 4-component vector of float) -0:107 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:107 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:107 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:107 Constant: -0:107 0 (const uint) -0:107 direct index ( temp uint) -0:107 'dti' ( in 3-component vector of uint) -0:107 Constant: -0:107 0 (const int) -0:107 Constant: -0:107 2 (const int) -0:107 Sequence -0:107 Constant: -0:107 0 (const int) -0:107 Constant: -0:107 1 (const int) -0:107 Constant: -0:107 2 (const int) -0:107 subgroupQuadSwapHorizontal ( temp 3-component vector of float) -0:107 vector swizzle ( temp 3-component vector of float) -0:107 f: direct index for structure ( temp 4-component vector of float) -0:107 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:107 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:107 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:107 Constant: -0:107 0 (const uint) -0:107 direct index ( temp uint) -0:107 'dti' ( in 3-component vector of uint) -0:107 Constant: -0:107 0 (const int) -0:107 Constant: -0:107 2 (const int) -0:107 Sequence -0:107 Constant: -0:107 0 (const int) -0:107 Constant: -0:107 1 (const int) -0:107 Constant: -0:107 2 (const int) -0:109 move second child to first child ( temp 4-component vector of double) -0:109 d: direct index for structure ( temp 4-component vector of double) -0:109 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:109 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:109 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:109 Constant: -0:109 0 (const uint) -0:109 direct index ( temp uint) -0:109 'dti' ( in 3-component vector of uint) -0:109 Constant: -0:109 0 (const int) -0:109 Constant: -0:109 3 (const int) -0:109 subgroupQuadSwapHorizontal ( temp 4-component vector of double) -0:109 d: direct index for structure ( temp 4-component vector of double) -0:109 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:109 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:109 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:109 Constant: -0:109 0 (const uint) -0:109 direct index ( temp uint) -0:109 'dti' ( in 3-component vector of uint) -0:109 Constant: -0:109 0 (const int) -0:109 Constant: -0:109 3 (const int) -0:110 move second child to first child ( temp double) -0:110 direct index ( temp double) -0:110 d: direct index for structure ( temp 4-component vector of double) -0:110 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:110 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:110 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:110 Constant: -0:110 0 (const uint) -0:110 direct index ( temp uint) -0:110 'dti' ( in 3-component vector of uint) -0:110 Constant: -0:110 0 (const int) -0:110 Constant: -0:110 3 (const int) -0:110 Constant: -0:110 0 (const int) -0:110 subgroupQuadSwapHorizontal ( temp double) -0:110 direct index ( temp double) -0:110 d: direct index for structure ( temp 4-component vector of double) -0:110 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:110 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:110 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:110 Constant: -0:110 0 (const uint) -0:110 direct index ( temp uint) -0:110 'dti' ( in 3-component vector of uint) -0:110 Constant: -0:110 0 (const int) -0:110 Constant: -0:110 3 (const int) -0:110 Constant: -0:110 0 (const int) -0:111 move second child to first child ( temp 2-component vector of double) -0:111 vector swizzle ( temp 2-component vector of double) -0:111 d: direct index for structure ( temp 4-component vector of double) -0:111 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:111 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:111 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:111 Constant: -0:111 0 (const uint) -0:111 direct index ( temp uint) -0:111 'dti' ( in 3-component vector of uint) -0:111 Constant: -0:111 0 (const int) -0:111 Constant: -0:111 3 (const int) -0:111 Sequence -0:111 Constant: -0:111 0 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 subgroupQuadSwapHorizontal ( temp 2-component vector of double) -0:111 vector swizzle ( temp 2-component vector of double) -0:111 d: direct index for structure ( temp 4-component vector of double) -0:111 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:111 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:111 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:111 Constant: -0:111 0 (const uint) -0:111 direct index ( temp uint) -0:111 'dti' ( in 3-component vector of uint) -0:111 Constant: -0:111 0 (const int) -0:111 Constant: -0:111 3 (const int) -0:111 Sequence -0:111 Constant: -0:111 0 (const int) -0:111 Constant: -0:111 1 (const int) -0:112 move second child to first child ( temp 3-component vector of double) -0:112 vector swizzle ( temp 3-component vector of double) -0:112 d: direct index for structure ( temp 4-component vector of double) -0:112 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:112 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:112 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:112 Constant: -0:112 0 (const uint) -0:112 direct index ( temp uint) -0:112 'dti' ( in 3-component vector of uint) -0:112 Constant: -0:112 0 (const int) -0:112 Constant: -0:112 3 (const int) -0:112 Sequence -0:112 Constant: -0:112 0 (const int) -0:112 Constant: -0:112 1 (const int) -0:112 Constant: -0:112 2 (const int) -0:112 subgroupQuadSwapHorizontal ( temp 3-component vector of double) -0:112 vector swizzle ( temp 3-component vector of double) -0:112 d: direct index for structure ( temp 4-component vector of double) -0:112 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:112 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:112 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:112 Constant: -0:112 0 (const uint) -0:112 direct index ( temp uint) -0:112 'dti' ( in 3-component vector of uint) -0:112 Constant: -0:112 0 (const int) -0:112 Constant: -0:112 3 (const int) -0:112 Sequence -0:112 Constant: -0:112 0 (const int) -0:112 Constant: -0:112 1 (const int) -0:112 Constant: -0:112 2 (const int) -0:114 move second child to first child ( temp 4-component vector of uint) -0:114 u: direct index for structure ( temp 4-component vector of uint) -0:114 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:114 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:114 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:114 Constant: -0:114 0 (const uint) -0:114 direct index ( temp uint) -0:114 'dti' ( in 3-component vector of uint) -0:114 Constant: -0:114 0 (const int) -0:114 Constant: -0:114 0 (const int) -0:114 subgroupQuadSwapVertical ( temp 4-component vector of uint) -0:114 u: direct index for structure ( temp 4-component vector of uint) -0:114 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:114 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:114 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:114 Constant: -0:114 0 (const uint) -0:114 direct index ( temp uint) -0:114 'dti' ( in 3-component vector of uint) -0:114 Constant: -0:114 0 (const int) -0:114 Constant: -0:114 0 (const int) -0:115 move second child to first child ( temp uint) -0:115 direct index ( temp uint) -0:115 u: direct index for structure ( temp 4-component vector of uint) -0:115 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:115 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:115 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:115 Constant: -0:115 0 (const uint) -0:115 direct index ( temp uint) -0:115 'dti' ( in 3-component vector of uint) -0:115 Constant: -0:115 0 (const int) -0:115 Constant: -0:115 0 (const int) -0:115 Constant: -0:115 0 (const int) -0:115 subgroupQuadSwapVertical ( temp uint) -0:115 direct index ( temp uint) -0:115 u: direct index for structure ( temp 4-component vector of uint) -0:115 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:115 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:115 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:115 Constant: -0:115 0 (const uint) -0:115 direct index ( temp uint) -0:115 'dti' ( in 3-component vector of uint) -0:115 Constant: -0:115 0 (const int) -0:115 Constant: -0:115 0 (const int) -0:115 Constant: -0:115 0 (const int) -0:116 move second child to first child ( temp 2-component vector of uint) -0:116 vector swizzle ( temp 2-component vector of uint) -0:116 u: direct index for structure ( temp 4-component vector of uint) -0:116 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:116 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:116 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:116 Constant: -0:116 0 (const uint) -0:116 direct index ( temp uint) -0:116 'dti' ( in 3-component vector of uint) -0:116 Constant: -0:116 0 (const int) -0:116 Constant: -0:116 0 (const int) -0:116 Sequence -0:116 Constant: -0:116 0 (const int) -0:116 Constant: -0:116 1 (const int) -0:116 subgroupQuadSwapVertical ( temp 2-component vector of uint) -0:116 vector swizzle ( temp 2-component vector of uint) -0:116 u: direct index for structure ( temp 4-component vector of uint) -0:116 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:116 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:116 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:116 Constant: -0:116 0 (const uint) -0:116 direct index ( temp uint) -0:116 'dti' ( in 3-component vector of uint) -0:116 Constant: -0:116 0 (const int) -0:116 Constant: -0:116 0 (const int) -0:116 Sequence -0:116 Constant: -0:116 0 (const int) -0:116 Constant: -0:116 1 (const int) -0:117 move second child to first child ( temp 3-component vector of uint) -0:117 vector swizzle ( temp 3-component vector of uint) -0:117 u: direct index for structure ( temp 4-component vector of uint) -0:117 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:117 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:117 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:117 Constant: -0:117 0 (const uint) -0:117 direct index ( temp uint) -0:117 'dti' ( in 3-component vector of uint) -0:117 Constant: -0:117 0 (const int) -0:117 Constant: -0:117 0 (const int) -0:117 Sequence -0:117 Constant: -0:117 0 (const int) -0:117 Constant: -0:117 1 (const int) -0:117 Constant: -0:117 2 (const int) -0:117 subgroupQuadSwapVertical ( temp 3-component vector of uint) -0:117 vector swizzle ( temp 3-component vector of uint) -0:117 u: direct index for structure ( temp 4-component vector of uint) -0:117 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:117 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:117 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:117 Constant: -0:117 0 (const uint) -0:117 direct index ( temp uint) -0:117 'dti' ( in 3-component vector of uint) -0:117 Constant: -0:117 0 (const int) -0:117 Constant: -0:117 0 (const int) -0:117 Sequence -0:117 Constant: -0:117 0 (const int) -0:117 Constant: -0:117 1 (const int) -0:117 Constant: -0:117 2 (const int) -0:119 move second child to first child ( temp 4-component vector of int) -0:119 i: direct index for structure ( temp 4-component vector of int) -0:119 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:119 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:119 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:119 Constant: -0:119 0 (const uint) -0:119 direct index ( temp uint) -0:119 'dti' ( in 3-component vector of uint) -0:119 Constant: -0:119 0 (const int) -0:119 Constant: -0:119 1 (const int) -0:119 subgroupQuadSwapVertical ( temp 4-component vector of int) -0:119 i: direct index for structure ( temp 4-component vector of int) -0:119 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:119 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:119 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:119 Constant: -0:119 0 (const uint) -0:119 direct index ( temp uint) -0:119 'dti' ( in 3-component vector of uint) -0:119 Constant: -0:119 0 (const int) -0:119 Constant: -0:119 1 (const int) -0:120 move second child to first child ( temp int) -0:120 direct index ( temp int) -0:120 i: direct index for structure ( temp 4-component vector of int) -0:120 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:120 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:120 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:120 Constant: -0:120 0 (const uint) -0:120 direct index ( temp uint) -0:120 'dti' ( in 3-component vector of uint) -0:120 Constant: -0:120 0 (const int) -0:120 Constant: -0:120 1 (const int) -0:120 Constant: -0:120 0 (const int) -0:120 subgroupQuadSwapVertical ( temp int) -0:120 direct index ( temp int) -0:120 i: direct index for structure ( temp 4-component vector of int) -0:120 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:120 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:120 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:120 Constant: -0:120 0 (const uint) -0:120 direct index ( temp uint) -0:120 'dti' ( in 3-component vector of uint) -0:120 Constant: -0:120 0 (const int) -0:120 Constant: -0:120 1 (const int) -0:120 Constant: -0:120 0 (const int) -0:121 move second child to first child ( temp 2-component vector of int) -0:121 vector swizzle ( temp 2-component vector of int) -0:121 i: direct index for structure ( temp 4-component vector of int) -0:121 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:121 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:121 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:121 Constant: -0:121 0 (const uint) -0:121 direct index ( temp uint) -0:121 'dti' ( in 3-component vector of uint) -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 1 (const int) -0:121 Sequence -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 1 (const int) -0:121 subgroupQuadSwapVertical ( temp 2-component vector of int) -0:121 vector swizzle ( temp 2-component vector of int) -0:121 i: direct index for structure ( temp 4-component vector of int) -0:121 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:121 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:121 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:121 Constant: -0:121 0 (const uint) -0:121 direct index ( temp uint) -0:121 'dti' ( in 3-component vector of uint) -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 1 (const int) -0:121 Sequence -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 1 (const int) -0:122 move second child to first child ( temp 3-component vector of int) -0:122 vector swizzle ( temp 3-component vector of int) -0:122 i: direct index for structure ( temp 4-component vector of int) -0:122 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:122 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:122 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:122 Constant: -0:122 0 (const uint) -0:122 direct index ( temp uint) -0:122 'dti' ( in 3-component vector of uint) -0:122 Constant: -0:122 0 (const int) -0:122 Constant: -0:122 1 (const int) -0:122 Sequence -0:122 Constant: -0:122 0 (const int) -0:122 Constant: -0:122 1 (const int) -0:122 Constant: -0:122 2 (const int) -0:122 subgroupQuadSwapVertical ( temp 3-component vector of int) -0:122 vector swizzle ( temp 3-component vector of int) -0:122 i: direct index for structure ( temp 4-component vector of int) -0:122 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:122 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:122 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:122 Constant: -0:122 0 (const uint) -0:122 direct index ( temp uint) -0:122 'dti' ( in 3-component vector of uint) -0:122 Constant: -0:122 0 (const int) -0:122 Constant: -0:122 1 (const int) -0:122 Sequence -0:122 Constant: -0:122 0 (const int) -0:122 Constant: -0:122 1 (const int) -0:122 Constant: -0:122 2 (const int) -0:124 move second child to first child ( temp 4-component vector of float) -0:124 f: direct index for structure ( temp 4-component vector of float) -0:124 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:124 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:124 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:124 Constant: -0:124 0 (const uint) -0:124 direct index ( temp uint) -0:124 'dti' ( in 3-component vector of uint) -0:124 Constant: -0:124 0 (const int) -0:124 Constant: -0:124 2 (const int) -0:124 subgroupQuadSwapVertical ( temp 4-component vector of float) -0:124 f: direct index for structure ( temp 4-component vector of float) -0:124 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:124 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:124 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:124 Constant: -0:124 0 (const uint) -0:124 direct index ( temp uint) -0:124 'dti' ( in 3-component vector of uint) -0:124 Constant: -0:124 0 (const int) -0:124 Constant: -0:124 2 (const int) -0:125 move second child to first child ( temp float) -0:125 direct index ( temp float) -0:125 f: direct index for structure ( temp 4-component vector of float) -0:125 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:125 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:125 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:125 Constant: -0:125 0 (const uint) -0:125 direct index ( temp uint) -0:125 'dti' ( in 3-component vector of uint) -0:125 Constant: -0:125 0 (const int) -0:125 Constant: -0:125 2 (const int) -0:125 Constant: -0:125 0 (const int) -0:125 subgroupQuadSwapVertical ( temp float) -0:125 direct index ( temp float) -0:125 f: direct index for structure ( temp 4-component vector of float) -0:125 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:125 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:125 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:125 Constant: -0:125 0 (const uint) -0:125 direct index ( temp uint) -0:125 'dti' ( in 3-component vector of uint) -0:125 Constant: -0:125 0 (const int) -0:125 Constant: -0:125 2 (const int) -0:125 Constant: -0:125 0 (const int) -0:126 move second child to first child ( temp 2-component vector of float) -0:126 vector swizzle ( temp 2-component vector of float) -0:126 f: direct index for structure ( temp 4-component vector of float) -0:126 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:126 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:126 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:126 Constant: -0:126 0 (const uint) -0:126 direct index ( temp uint) -0:126 'dti' ( in 3-component vector of uint) -0:126 Constant: -0:126 0 (const int) -0:126 Constant: -0:126 2 (const int) -0:126 Sequence -0:126 Constant: -0:126 0 (const int) -0:126 Constant: -0:126 1 (const int) -0:126 subgroupQuadSwapVertical ( temp 2-component vector of float) -0:126 vector swizzle ( temp 2-component vector of float) -0:126 f: direct index for structure ( temp 4-component vector of float) -0:126 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:126 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:126 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:126 Constant: -0:126 0 (const uint) -0:126 direct index ( temp uint) -0:126 'dti' ( in 3-component vector of uint) -0:126 Constant: -0:126 0 (const int) -0:126 Constant: -0:126 2 (const int) -0:126 Sequence -0:126 Constant: -0:126 0 (const int) -0:126 Constant: -0:126 1 (const int) -0:127 move second child to first child ( temp 3-component vector of float) -0:127 vector swizzle ( temp 3-component vector of float) -0:127 f: direct index for structure ( temp 4-component vector of float) -0:127 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:127 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:127 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:127 Constant: -0:127 0 (const uint) -0:127 direct index ( temp uint) -0:127 'dti' ( in 3-component vector of uint) -0:127 Constant: -0:127 0 (const int) -0:127 Constant: -0:127 2 (const int) -0:127 Sequence -0:127 Constant: -0:127 0 (const int) -0:127 Constant: -0:127 1 (const int) -0:127 Constant: -0:127 2 (const int) -0:127 subgroupQuadSwapVertical ( temp 3-component vector of float) -0:127 vector swizzle ( temp 3-component vector of float) -0:127 f: direct index for structure ( temp 4-component vector of float) -0:127 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:127 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:127 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:127 Constant: -0:127 0 (const uint) -0:127 direct index ( temp uint) -0:127 'dti' ( in 3-component vector of uint) -0:127 Constant: -0:127 0 (const int) -0:127 Constant: -0:127 2 (const int) -0:127 Sequence -0:127 Constant: -0:127 0 (const int) -0:127 Constant: -0:127 1 (const int) -0:127 Constant: -0:127 2 (const int) -0:129 move second child to first child ( temp 4-component vector of double) -0:129 d: direct index for structure ( temp 4-component vector of double) -0:129 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:129 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:129 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:129 Constant: -0:129 0 (const uint) -0:129 direct index ( temp uint) -0:129 'dti' ( in 3-component vector of uint) -0:129 Constant: -0:129 0 (const int) -0:129 Constant: -0:129 3 (const int) -0:129 subgroupQuadSwapVertical ( temp 4-component vector of double) -0:129 d: direct index for structure ( temp 4-component vector of double) -0:129 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:129 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:129 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:129 Constant: -0:129 0 (const uint) -0:129 direct index ( temp uint) -0:129 'dti' ( in 3-component vector of uint) -0:129 Constant: -0:129 0 (const int) -0:129 Constant: -0:129 3 (const int) -0:130 move second child to first child ( temp double) -0:130 direct index ( temp double) -0:130 d: direct index for structure ( temp 4-component vector of double) -0:130 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:130 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:130 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:130 Constant: -0:130 0 (const uint) -0:130 direct index ( temp uint) -0:130 'dti' ( in 3-component vector of uint) -0:130 Constant: -0:130 0 (const int) -0:130 Constant: -0:130 3 (const int) -0:130 Constant: -0:130 0 (const int) -0:130 subgroupQuadSwapVertical ( temp double) -0:130 direct index ( temp double) -0:130 d: direct index for structure ( temp 4-component vector of double) -0:130 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:130 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:130 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:130 Constant: -0:130 0 (const uint) -0:130 direct index ( temp uint) -0:130 'dti' ( in 3-component vector of uint) -0:130 Constant: -0:130 0 (const int) -0:130 Constant: -0:130 3 (const int) -0:130 Constant: -0:130 0 (const int) -0:131 move second child to first child ( temp 2-component vector of double) -0:131 vector swizzle ( temp 2-component vector of double) -0:131 d: direct index for structure ( temp 4-component vector of double) -0:131 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:131 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:131 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:131 Constant: -0:131 0 (const uint) -0:131 direct index ( temp uint) -0:131 'dti' ( in 3-component vector of uint) -0:131 Constant: -0:131 0 (const int) -0:131 Constant: -0:131 3 (const int) -0:131 Sequence -0:131 Constant: -0:131 0 (const int) -0:131 Constant: -0:131 1 (const int) -0:131 subgroupQuadSwapVertical ( temp 2-component vector of double) -0:131 vector swizzle ( temp 2-component vector of double) -0:131 d: direct index for structure ( temp 4-component vector of double) -0:131 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:131 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:131 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:131 Constant: -0:131 0 (const uint) -0:131 direct index ( temp uint) -0:131 'dti' ( in 3-component vector of uint) -0:131 Constant: -0:131 0 (const int) -0:131 Constant: -0:131 3 (const int) -0:131 Sequence -0:131 Constant: -0:131 0 (const int) -0:131 Constant: -0:131 1 (const int) -0:132 move second child to first child ( temp 3-component vector of double) -0:132 vector swizzle ( temp 3-component vector of double) -0:132 d: direct index for structure ( temp 4-component vector of double) -0:132 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:132 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:132 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:132 Constant: -0:132 0 (const uint) -0:132 direct index ( temp uint) -0:132 'dti' ( in 3-component vector of uint) -0:132 Constant: -0:132 0 (const int) -0:132 Constant: -0:132 3 (const int) -0:132 Sequence -0:132 Constant: -0:132 0 (const int) -0:132 Constant: -0:132 1 (const int) -0:132 Constant: -0:132 2 (const int) -0:132 subgroupQuadSwapVertical ( temp 3-component vector of double) -0:132 vector swizzle ( temp 3-component vector of double) -0:132 d: direct index for structure ( temp 4-component vector of double) -0:132 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:132 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:132 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:132 Constant: -0:132 0 (const uint) -0:132 direct index ( temp uint) -0:132 'dti' ( in 3-component vector of uint) -0:132 Constant: -0:132 0 (const int) -0:132 Constant: -0:132 3 (const int) -0:132 Sequence -0:132 Constant: -0:132 0 (const int) -0:132 Constant: -0:132 1 (const int) -0:132 Constant: -0:132 2 (const int) -0:134 move second child to first child ( temp 4-component vector of uint) -0:134 u: direct index for structure ( temp 4-component vector of uint) -0:134 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:134 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:134 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:134 Constant: -0:134 0 (const uint) -0:134 direct index ( temp uint) -0:134 'dti' ( in 3-component vector of uint) -0:134 Constant: -0:134 0 (const int) -0:134 Constant: -0:134 0 (const int) -0:134 subgroupQuadSwapDiagonal ( temp 4-component vector of uint) -0:134 u: direct index for structure ( temp 4-component vector of uint) -0:134 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:134 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:134 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:134 Constant: -0:134 0 (const uint) -0:134 direct index ( temp uint) -0:134 'dti' ( in 3-component vector of uint) -0:134 Constant: -0:134 0 (const int) -0:134 Constant: -0:134 0 (const int) -0:135 move second child to first child ( temp uint) -0:135 direct index ( temp uint) -0:135 u: direct index for structure ( temp 4-component vector of uint) -0:135 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:135 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:135 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:135 Constant: -0:135 0 (const uint) -0:135 direct index ( temp uint) -0:135 'dti' ( in 3-component vector of uint) -0:135 Constant: -0:135 0 (const int) -0:135 Constant: -0:135 0 (const int) -0:135 Constant: -0:135 0 (const int) -0:135 subgroupQuadSwapDiagonal ( temp uint) -0:135 direct index ( temp uint) -0:135 u: direct index for structure ( temp 4-component vector of uint) -0:135 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:135 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:135 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:135 Constant: -0:135 0 (const uint) -0:135 direct index ( temp uint) -0:135 'dti' ( in 3-component vector of uint) -0:135 Constant: -0:135 0 (const int) -0:135 Constant: -0:135 0 (const int) -0:135 Constant: -0:135 0 (const int) -0:136 move second child to first child ( temp 2-component vector of uint) -0:136 vector swizzle ( temp 2-component vector of uint) -0:136 u: direct index for structure ( temp 4-component vector of uint) -0:136 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:136 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:136 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:136 Constant: -0:136 0 (const uint) -0:136 direct index ( temp uint) -0:136 'dti' ( in 3-component vector of uint) -0:136 Constant: -0:136 0 (const int) -0:136 Constant: -0:136 0 (const int) -0:136 Sequence -0:136 Constant: -0:136 0 (const int) -0:136 Constant: -0:136 1 (const int) -0:136 subgroupQuadSwapDiagonal ( temp 2-component vector of uint) -0:136 vector swizzle ( temp 2-component vector of uint) -0:136 u: direct index for structure ( temp 4-component vector of uint) -0:136 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:136 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:136 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:136 Constant: -0:136 0 (const uint) -0:136 direct index ( temp uint) -0:136 'dti' ( in 3-component vector of uint) -0:136 Constant: -0:136 0 (const int) -0:136 Constant: -0:136 0 (const int) -0:136 Sequence -0:136 Constant: -0:136 0 (const int) -0:136 Constant: -0:136 1 (const int) -0:137 move second child to first child ( temp 3-component vector of uint) -0:137 vector swizzle ( temp 3-component vector of uint) -0:137 u: direct index for structure ( temp 4-component vector of uint) -0:137 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:137 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:137 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:137 Constant: -0:137 0 (const uint) -0:137 direct index ( temp uint) -0:137 'dti' ( in 3-component vector of uint) -0:137 Constant: -0:137 0 (const int) -0:137 Constant: -0:137 0 (const int) -0:137 Sequence -0:137 Constant: -0:137 0 (const int) -0:137 Constant: -0:137 1 (const int) -0:137 Constant: -0:137 2 (const int) -0:137 subgroupQuadSwapDiagonal ( temp 3-component vector of uint) -0:137 vector swizzle ( temp 3-component vector of uint) -0:137 u: direct index for structure ( temp 4-component vector of uint) -0:137 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:137 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:137 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:137 Constant: -0:137 0 (const uint) -0:137 direct index ( temp uint) -0:137 'dti' ( in 3-component vector of uint) -0:137 Constant: -0:137 0 (const int) -0:137 Constant: -0:137 0 (const int) -0:137 Sequence -0:137 Constant: -0:137 0 (const int) -0:137 Constant: -0:137 1 (const int) -0:137 Constant: -0:137 2 (const int) -0:139 move second child to first child ( temp 4-component vector of int) -0:139 i: direct index for structure ( temp 4-component vector of int) -0:139 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:139 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:139 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:139 Constant: -0:139 0 (const uint) -0:139 direct index ( temp uint) -0:139 'dti' ( in 3-component vector of uint) -0:139 Constant: -0:139 0 (const int) -0:139 Constant: -0:139 1 (const int) -0:139 subgroupQuadSwapDiagonal ( temp 4-component vector of int) -0:139 i: direct index for structure ( temp 4-component vector of int) -0:139 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:139 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:139 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:139 Constant: -0:139 0 (const uint) -0:139 direct index ( temp uint) -0:139 'dti' ( in 3-component vector of uint) -0:139 Constant: -0:139 0 (const int) -0:139 Constant: -0:139 1 (const int) -0:140 move second child to first child ( temp int) -0:140 direct index ( temp int) -0:140 i: direct index for structure ( temp 4-component vector of int) -0:140 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:140 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:140 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:140 Constant: -0:140 0 (const uint) -0:140 direct index ( temp uint) -0:140 'dti' ( in 3-component vector of uint) -0:140 Constant: -0:140 0 (const int) -0:140 Constant: -0:140 1 (const int) -0:140 Constant: -0:140 0 (const int) -0:140 subgroupQuadSwapDiagonal ( temp int) -0:140 direct index ( temp int) -0:140 i: direct index for structure ( temp 4-component vector of int) -0:140 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:140 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:140 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:140 Constant: -0:140 0 (const uint) -0:140 direct index ( temp uint) -0:140 'dti' ( in 3-component vector of uint) -0:140 Constant: -0:140 0 (const int) -0:140 Constant: -0:140 1 (const int) -0:140 Constant: -0:140 0 (const int) -0:141 move second child to first child ( temp 2-component vector of int) -0:141 vector swizzle ( temp 2-component vector of int) -0:141 i: direct index for structure ( temp 4-component vector of int) -0:141 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:141 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:141 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:141 Constant: -0:141 0 (const uint) -0:141 direct index ( temp uint) -0:141 'dti' ( in 3-component vector of uint) -0:141 Constant: -0:141 0 (const int) -0:141 Constant: -0:141 1 (const int) -0:141 Sequence -0:141 Constant: -0:141 0 (const int) -0:141 Constant: -0:141 1 (const int) -0:141 subgroupQuadSwapDiagonal ( temp 2-component vector of int) -0:141 vector swizzle ( temp 2-component vector of int) -0:141 i: direct index for structure ( temp 4-component vector of int) -0:141 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:141 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:141 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:141 Constant: -0:141 0 (const uint) -0:141 direct index ( temp uint) -0:141 'dti' ( in 3-component vector of uint) -0:141 Constant: -0:141 0 (const int) -0:141 Constant: -0:141 1 (const int) -0:141 Sequence -0:141 Constant: -0:141 0 (const int) -0:141 Constant: -0:141 1 (const int) -0:142 move second child to first child ( temp 3-component vector of int) -0:142 vector swizzle ( temp 3-component vector of int) -0:142 i: direct index for structure ( temp 4-component vector of int) -0:142 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:142 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:142 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:142 Constant: -0:142 0 (const uint) -0:142 direct index ( temp uint) -0:142 'dti' ( in 3-component vector of uint) -0:142 Constant: -0:142 0 (const int) -0:142 Constant: -0:142 1 (const int) -0:142 Sequence -0:142 Constant: -0:142 0 (const int) -0:142 Constant: -0:142 1 (const int) -0:142 Constant: -0:142 2 (const int) -0:142 subgroupQuadSwapDiagonal ( temp 3-component vector of int) -0:142 vector swizzle ( temp 3-component vector of int) -0:142 i: direct index for structure ( temp 4-component vector of int) -0:142 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:142 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:142 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:142 Constant: -0:142 0 (const uint) -0:142 direct index ( temp uint) -0:142 'dti' ( in 3-component vector of uint) -0:142 Constant: -0:142 0 (const int) -0:142 Constant: -0:142 1 (const int) -0:142 Sequence -0:142 Constant: -0:142 0 (const int) -0:142 Constant: -0:142 1 (const int) -0:142 Constant: -0:142 2 (const int) -0:144 move second child to first child ( temp 4-component vector of float) -0:144 f: direct index for structure ( temp 4-component vector of float) -0:144 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:144 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:144 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:144 Constant: -0:144 0 (const uint) -0:144 direct index ( temp uint) -0:144 'dti' ( in 3-component vector of uint) -0:144 Constant: -0:144 0 (const int) -0:144 Constant: -0:144 2 (const int) -0:144 subgroupQuadSwapDiagonal ( temp 4-component vector of float) -0:144 f: direct index for structure ( temp 4-component vector of float) -0:144 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:144 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:144 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:144 Constant: -0:144 0 (const uint) -0:144 direct index ( temp uint) -0:144 'dti' ( in 3-component vector of uint) -0:144 Constant: -0:144 0 (const int) -0:144 Constant: -0:144 2 (const int) -0:145 move second child to first child ( temp float) -0:145 direct index ( temp float) -0:145 f: direct index for structure ( temp 4-component vector of float) -0:145 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:145 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:145 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:145 Constant: -0:145 0 (const uint) -0:145 direct index ( temp uint) -0:145 'dti' ( in 3-component vector of uint) -0:145 Constant: -0:145 0 (const int) -0:145 Constant: -0:145 2 (const int) -0:145 Constant: -0:145 0 (const int) -0:145 subgroupQuadSwapDiagonal ( temp float) -0:145 direct index ( temp float) -0:145 f: direct index for structure ( temp 4-component vector of float) -0:145 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:145 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:145 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:145 Constant: -0:145 0 (const uint) -0:145 direct index ( temp uint) -0:145 'dti' ( in 3-component vector of uint) -0:145 Constant: -0:145 0 (const int) -0:145 Constant: -0:145 2 (const int) -0:145 Constant: -0:145 0 (const int) -0:146 move second child to first child ( temp 2-component vector of float) -0:146 vector swizzle ( temp 2-component vector of float) -0:146 f: direct index for structure ( temp 4-component vector of float) -0:146 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:146 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:146 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:146 Constant: -0:146 0 (const uint) -0:146 direct index ( temp uint) -0:146 'dti' ( in 3-component vector of uint) -0:146 Constant: -0:146 0 (const int) -0:146 Constant: -0:146 2 (const int) -0:146 Sequence -0:146 Constant: -0:146 0 (const int) -0:146 Constant: -0:146 1 (const int) -0:146 subgroupQuadSwapDiagonal ( temp 2-component vector of float) -0:146 vector swizzle ( temp 2-component vector of float) -0:146 f: direct index for structure ( temp 4-component vector of float) -0:146 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:146 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:146 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:146 Constant: -0:146 0 (const uint) -0:146 direct index ( temp uint) -0:146 'dti' ( in 3-component vector of uint) -0:146 Constant: -0:146 0 (const int) -0:146 Constant: -0:146 2 (const int) -0:146 Sequence -0:146 Constant: -0:146 0 (const int) -0:146 Constant: -0:146 1 (const int) -0:147 move second child to first child ( temp 3-component vector of float) -0:147 vector swizzle ( temp 3-component vector of float) -0:147 f: direct index for structure ( temp 4-component vector of float) -0:147 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:147 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:147 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:147 Constant: -0:147 0 (const uint) -0:147 direct index ( temp uint) -0:147 'dti' ( in 3-component vector of uint) -0:147 Constant: -0:147 0 (const int) -0:147 Constant: -0:147 2 (const int) -0:147 Sequence -0:147 Constant: -0:147 0 (const int) -0:147 Constant: -0:147 1 (const int) -0:147 Constant: -0:147 2 (const int) -0:147 subgroupQuadSwapDiagonal ( temp 3-component vector of float) -0:147 vector swizzle ( temp 3-component vector of float) -0:147 f: direct index for structure ( temp 4-component vector of float) -0:147 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:147 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:147 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:147 Constant: -0:147 0 (const uint) -0:147 direct index ( temp uint) -0:147 'dti' ( in 3-component vector of uint) -0:147 Constant: -0:147 0 (const int) -0:147 Constant: -0:147 2 (const int) -0:147 Sequence -0:147 Constant: -0:147 0 (const int) -0:147 Constant: -0:147 1 (const int) -0:147 Constant: -0:147 2 (const int) -0:149 move second child to first child ( temp 4-component vector of double) -0:149 d: direct index for structure ( temp 4-component vector of double) -0:149 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:149 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:149 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:149 Constant: -0:149 0 (const uint) -0:149 direct index ( temp uint) -0:149 'dti' ( in 3-component vector of uint) -0:149 Constant: -0:149 0 (const int) -0:149 Constant: -0:149 3 (const int) -0:149 subgroupQuadSwapDiagonal ( temp 4-component vector of double) -0:149 d: direct index for structure ( temp 4-component vector of double) -0:149 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:149 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:149 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:149 Constant: -0:149 0 (const uint) -0:149 direct index ( temp uint) -0:149 'dti' ( in 3-component vector of uint) -0:149 Constant: -0:149 0 (const int) -0:149 Constant: -0:149 3 (const int) -0:150 move second child to first child ( temp double) -0:150 direct index ( temp double) -0:150 d: direct index for structure ( temp 4-component vector of double) -0:150 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:150 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:150 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:150 Constant: -0:150 0 (const uint) -0:150 direct index ( temp uint) -0:150 'dti' ( in 3-component vector of uint) -0:150 Constant: -0:150 0 (const int) -0:150 Constant: -0:150 3 (const int) -0:150 Constant: -0:150 0 (const int) -0:150 subgroupQuadSwapDiagonal ( temp double) -0:150 direct index ( temp double) -0:150 d: direct index for structure ( temp 4-component vector of double) -0:150 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:150 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:150 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:150 Constant: -0:150 0 (const uint) -0:150 direct index ( temp uint) -0:150 'dti' ( in 3-component vector of uint) -0:150 Constant: -0:150 0 (const int) -0:150 Constant: -0:150 3 (const int) -0:150 Constant: -0:150 0 (const int) -0:151 move second child to first child ( temp 2-component vector of double) -0:151 vector swizzle ( temp 2-component vector of double) -0:151 d: direct index for structure ( temp 4-component vector of double) -0:151 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:151 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:151 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:151 Constant: -0:151 0 (const uint) -0:151 direct index ( temp uint) -0:151 'dti' ( in 3-component vector of uint) -0:151 Constant: -0:151 0 (const int) -0:151 Constant: -0:151 3 (const int) -0:151 Sequence -0:151 Constant: -0:151 0 (const int) -0:151 Constant: -0:151 1 (const int) -0:151 subgroupQuadSwapDiagonal ( temp 2-component vector of double) -0:151 vector swizzle ( temp 2-component vector of double) -0:151 d: direct index for structure ( temp 4-component vector of double) -0:151 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:151 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:151 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:151 Constant: -0:151 0 (const uint) -0:151 direct index ( temp uint) -0:151 'dti' ( in 3-component vector of uint) -0:151 Constant: -0:151 0 (const int) -0:151 Constant: -0:151 3 (const int) -0:151 Sequence -0:151 Constant: -0:151 0 (const int) -0:151 Constant: -0:151 1 (const int) -0:152 move second child to first child ( temp 3-component vector of double) -0:152 vector swizzle ( temp 3-component vector of double) -0:152 d: direct index for structure ( temp 4-component vector of double) -0:152 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:152 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:152 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:152 Constant: -0:152 0 (const uint) -0:152 direct index ( temp uint) -0:152 'dti' ( in 3-component vector of uint) -0:152 Constant: -0:152 0 (const int) -0:152 Constant: -0:152 3 (const int) -0:152 Sequence -0:152 Constant: -0:152 0 (const int) -0:152 Constant: -0:152 1 (const int) -0:152 Constant: -0:152 2 (const int) -0:152 subgroupQuadSwapDiagonal ( temp 3-component vector of double) -0:152 vector swizzle ( temp 3-component vector of double) -0:152 d: direct index for structure ( temp 4-component vector of double) -0:152 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:152 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:152 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:152 Constant: -0:152 0 (const uint) -0:152 direct index ( temp uint) -0:152 'dti' ( in 3-component vector of uint) -0:152 Constant: -0:152 0 (const int) -0:152 Constant: -0:152 3 (const int) -0:152 Sequence -0:152 Constant: -0:152 0 (const int) -0:152 Constant: -0:152 1 (const int) -0:152 Constant: -0:152 2 (const int) -0:13 Function Definition: CSMain( ( temp void) -0:13 Function Parameters: -0:? Sequence -0:13 move second child to first child ( temp 3-component vector of uint) -0:? 'dti' ( temp 3-component vector of uint) -0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) -0:13 Function Call: @CSMain(vu3; ( temp void) -0:? 'dti' ( temp 3-component vector of uint) -0:? Linker Objects -0:? 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) - -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 1232 - - Capability Shader - Capability Float64 - Capability GroupNonUniform - Capability GroupNonUniformQuad - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "CSMain" 1227 - ExecutionMode 4 LocalSize 32 16 1 - Source HLSL 500 - Name 4 "CSMain" - Name 11 "@CSMain(vu3;" - Name 10 "dti" - Name 20 "Types" - MemberName 20(Types) 0 "u" - MemberName 20(Types) 1 "i" - MemberName 20(Types) 2 "f" - MemberName 20(Types) 3 "d" - Name 22 "data" - MemberName 22(data) 0 "@data" - Name 24 "data" - Name 1225 "dti" - Name 1227 "dti" - Name 1229 "param" - MemberDecorate 20(Types) 0 Offset 0 - MemberDecorate 20(Types) 1 Offset 16 - MemberDecorate 20(Types) 2 Offset 32 - MemberDecorate 20(Types) 3 Offset 64 - Decorate 21 ArrayStride 96 - MemberDecorate 22(data) 0 Offset 0 - Decorate 22(data) BufferBlock - Decorate 24(data) DescriptorSet 0 - Decorate 24(data) Binding 0 - Decorate 1227(dti) BuiltIn GlobalInvocationId - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeVector 6(int) 3 - 8: TypePointer Function 7(ivec3) - 9: TypeFunction 2 8(ptr) - 13: TypeVector 6(int) 4 - 14: TypeInt 32 1 - 15: TypeVector 14(int) 4 - 16: TypeFloat 32 - 17: TypeVector 16(float) 4 - 18: TypeFloat 64 - 19: TypeVector 18(float64_t) 4 - 20(Types): TypeStruct 13(ivec4) 15(ivec4) 17(fvec4) 19(f64vec4) - 21: TypeRuntimeArray 20(Types) - 22(data): TypeStruct 21 - 23: TypePointer Uniform 22(data) - 24(data): 23(ptr) Variable Uniform - 25: 14(int) Constant 0 - 26: 6(int) Constant 0 - 27: TypePointer Function 6(int) - 32: TypePointer Uniform 13(ivec4) - 35: 6(int) Constant 3 - 42: TypePointer Uniform 6(int) - 51: TypeVector 6(int) 2 - 58: 6(int) Constant 1 - 73: 6(int) Constant 2 - 78: 14(int) Constant 1 - 81: TypePointer Uniform 15(ivec4) - 90: TypePointer Uniform 14(int) - 99: TypeVector 14(int) 2 - 112: TypeVector 14(int) 3 - 125: 14(int) Constant 2 - 128: TypePointer Uniform 17(fvec4) - 137: TypePointer Uniform 16(float) - 146: TypeVector 16(float) 2 - 159: TypeVector 16(float) 3 - 172: 14(int) Constant 3 - 175: TypePointer Uniform 19(f64vec4) - 184: TypePointer Uniform 18(float64_t) - 193: TypeVector 18(float64_t) 2 - 206: TypeVector 18(float64_t) 3 - 1226: TypePointer Input 7(ivec3) - 1227(dti): 1226(ptr) Variable Input - 4(CSMain): 2 Function None 3 - 5: Label - 1225(dti): 8(ptr) Variable Function - 1229(param): 8(ptr) Variable Function - 1228: 7(ivec3) Load 1227(dti) - Store 1225(dti) 1228 - 1230: 7(ivec3) Load 1225(dti) - Store 1229(param) 1230 - 1231: 2 FunctionCall 11(@CSMain(vu3;) 1229(param) - Return - FunctionEnd -11(@CSMain(vu3;): 2 Function None 9 - 10(dti): 8(ptr) FunctionParameter - 12: Label - 28: 27(ptr) AccessChain 10(dti) 26 - 29: 6(int) Load 28 - 30: 27(ptr) AccessChain 10(dti) 26 - 31: 6(int) Load 30 - 33: 32(ptr) AccessChain 24(data) 25 31 25 - 34: 13(ivec4) Load 33 - 36: 13(ivec4) GroupNonUniformQuadBroadcast 35 34 26 - 37: 32(ptr) AccessChain 24(data) 25 29 25 - Store 37 36 - 38: 27(ptr) AccessChain 10(dti) 26 - 39: 6(int) Load 38 - 40: 27(ptr) AccessChain 10(dti) 26 - 41: 6(int) Load 40 - 43: 42(ptr) AccessChain 24(data) 25 41 25 26 - 44: 6(int) Load 43 - 45: 6(int) GroupNonUniformQuadBroadcast 35 44 26 - 46: 42(ptr) AccessChain 24(data) 25 39 25 26 - Store 46 45 - 47: 27(ptr) AccessChain 10(dti) 26 - 48: 6(int) Load 47 - 49: 27(ptr) AccessChain 10(dti) 26 - 50: 6(int) Load 49 - 52: 32(ptr) AccessChain 24(data) 25 50 25 - 53: 13(ivec4) Load 52 - 54: 51(ivec2) VectorShuffle 53 53 0 1 - 55: 51(ivec2) GroupNonUniformQuadBroadcast 35 54 26 - 56: 42(ptr) AccessChain 24(data) 25 48 25 26 - 57: 6(int) CompositeExtract 55 0 - Store 56 57 - 59: 42(ptr) AccessChain 24(data) 25 48 25 58 - 60: 6(int) CompositeExtract 55 1 - Store 59 60 - 61: 27(ptr) AccessChain 10(dti) 26 - 62: 6(int) Load 61 - 63: 27(ptr) AccessChain 10(dti) 26 - 64: 6(int) Load 63 - 65: 32(ptr) AccessChain 24(data) 25 64 25 - 66: 13(ivec4) Load 65 - 67: 7(ivec3) VectorShuffle 66 66 0 1 2 - 68: 7(ivec3) GroupNonUniformQuadBroadcast 35 67 26 - 69: 42(ptr) AccessChain 24(data) 25 62 25 26 - 70: 6(int) CompositeExtract 68 0 - Store 69 70 - 71: 42(ptr) AccessChain 24(data) 25 62 25 58 - 72: 6(int) CompositeExtract 68 1 - Store 71 72 - 74: 42(ptr) AccessChain 24(data) 25 62 25 73 - 75: 6(int) CompositeExtract 68 2 - Store 74 75 - 76: 27(ptr) AccessChain 10(dti) 26 - 77: 6(int) Load 76 - 79: 27(ptr) AccessChain 10(dti) 26 - 80: 6(int) Load 79 - 82: 81(ptr) AccessChain 24(data) 25 80 78 - 83: 15(ivec4) Load 82 - 84: 15(ivec4) GroupNonUniformQuadBroadcast 35 83 26 - 85: 81(ptr) AccessChain 24(data) 25 77 78 - Store 85 84 - 86: 27(ptr) AccessChain 10(dti) 26 - 87: 6(int) Load 86 - 88: 27(ptr) AccessChain 10(dti) 26 - 89: 6(int) Load 88 - 91: 90(ptr) AccessChain 24(data) 25 89 78 26 - 92: 14(int) Load 91 - 93: 14(int) GroupNonUniformQuadBroadcast 35 92 26 - 94: 90(ptr) AccessChain 24(data) 25 87 78 26 - Store 94 93 - 95: 27(ptr) AccessChain 10(dti) 26 - 96: 6(int) Load 95 - 97: 27(ptr) AccessChain 10(dti) 26 - 98: 6(int) Load 97 - 100: 81(ptr) AccessChain 24(data) 25 98 78 - 101: 15(ivec4) Load 100 - 102: 99(ivec2) VectorShuffle 101 101 0 1 - 103: 99(ivec2) GroupNonUniformQuadBroadcast 35 102 26 - 104: 90(ptr) AccessChain 24(data) 25 96 78 26 - 105: 14(int) CompositeExtract 103 0 - Store 104 105 - 106: 90(ptr) AccessChain 24(data) 25 96 78 58 - 107: 14(int) CompositeExtract 103 1 - Store 106 107 - 108: 27(ptr) AccessChain 10(dti) 26 - 109: 6(int) Load 108 - 110: 27(ptr) AccessChain 10(dti) 26 - 111: 6(int) Load 110 - 113: 81(ptr) AccessChain 24(data) 25 111 78 - 114: 15(ivec4) Load 113 - 115: 112(ivec3) VectorShuffle 114 114 0 1 2 - 116: 112(ivec3) GroupNonUniformQuadBroadcast 35 115 26 - 117: 90(ptr) AccessChain 24(data) 25 109 78 26 - 118: 14(int) CompositeExtract 116 0 - Store 117 118 - 119: 90(ptr) AccessChain 24(data) 25 109 78 58 - 120: 14(int) CompositeExtract 116 1 - Store 119 120 - 121: 90(ptr) AccessChain 24(data) 25 109 78 73 - 122: 14(int) CompositeExtract 116 2 - Store 121 122 - 123: 27(ptr) AccessChain 10(dti) 26 - 124: 6(int) Load 123 - 126: 27(ptr) AccessChain 10(dti) 26 - 127: 6(int) Load 126 - 129: 128(ptr) AccessChain 24(data) 25 127 125 - 130: 17(fvec4) Load 129 - 131: 17(fvec4) GroupNonUniformQuadBroadcast 35 130 26 - 132: 128(ptr) AccessChain 24(data) 25 124 125 - Store 132 131 - 133: 27(ptr) AccessChain 10(dti) 26 - 134: 6(int) Load 133 - 135: 27(ptr) AccessChain 10(dti) 26 - 136: 6(int) Load 135 - 138: 137(ptr) AccessChain 24(data) 25 136 125 26 - 139: 16(float) Load 138 - 140: 16(float) GroupNonUniformQuadBroadcast 35 139 26 - 141: 137(ptr) AccessChain 24(data) 25 134 125 26 - Store 141 140 - 142: 27(ptr) AccessChain 10(dti) 26 - 143: 6(int) Load 142 - 144: 27(ptr) AccessChain 10(dti) 26 - 145: 6(int) Load 144 - 147: 128(ptr) AccessChain 24(data) 25 145 125 - 148: 17(fvec4) Load 147 - 149: 146(fvec2) VectorShuffle 148 148 0 1 - 150: 146(fvec2) GroupNonUniformQuadBroadcast 35 149 26 - 151: 137(ptr) AccessChain 24(data) 25 143 125 26 - 152: 16(float) CompositeExtract 150 0 - Store 151 152 - 153: 137(ptr) AccessChain 24(data) 25 143 125 58 - 154: 16(float) CompositeExtract 150 1 - Store 153 154 - 155: 27(ptr) AccessChain 10(dti) 26 - 156: 6(int) Load 155 - 157: 27(ptr) AccessChain 10(dti) 26 - 158: 6(int) Load 157 - 160: 128(ptr) AccessChain 24(data) 25 158 125 - 161: 17(fvec4) Load 160 - 162: 159(fvec3) VectorShuffle 161 161 0 1 2 - 163: 159(fvec3) GroupNonUniformQuadBroadcast 35 162 26 - 164: 137(ptr) AccessChain 24(data) 25 156 125 26 - 165: 16(float) CompositeExtract 163 0 - Store 164 165 - 166: 137(ptr) AccessChain 24(data) 25 156 125 58 - 167: 16(float) CompositeExtract 163 1 - Store 166 167 - 168: 137(ptr) AccessChain 24(data) 25 156 125 73 - 169: 16(float) CompositeExtract 163 2 - Store 168 169 - 170: 27(ptr) AccessChain 10(dti) 26 - 171: 6(int) Load 170 - 173: 27(ptr) AccessChain 10(dti) 26 - 174: 6(int) Load 173 - 176: 175(ptr) AccessChain 24(data) 25 174 172 - 177: 19(f64vec4) Load 176 - 178: 19(f64vec4) GroupNonUniformQuadBroadcast 35 177 26 - 179: 175(ptr) AccessChain 24(data) 25 171 172 - Store 179 178 - 180: 27(ptr) AccessChain 10(dti) 26 - 181: 6(int) Load 180 - 182: 27(ptr) AccessChain 10(dti) 26 - 183: 6(int) Load 182 - 185: 184(ptr) AccessChain 24(data) 25 183 172 26 - 186:18(float64_t) Load 185 - 187:18(float64_t) GroupNonUniformQuadBroadcast 35 186 26 - 188: 184(ptr) AccessChain 24(data) 25 181 172 26 - Store 188 187 - 189: 27(ptr) AccessChain 10(dti) 26 - 190: 6(int) Load 189 - 191: 27(ptr) AccessChain 10(dti) 26 - 192: 6(int) Load 191 - 194: 175(ptr) AccessChain 24(data) 25 192 172 - 195: 19(f64vec4) Load 194 - 196:193(f64vec2) VectorShuffle 195 195 0 1 - 197:193(f64vec2) GroupNonUniformQuadBroadcast 35 196 26 - 198: 184(ptr) AccessChain 24(data) 25 190 172 26 - 199:18(float64_t) CompositeExtract 197 0 - Store 198 199 - 200: 184(ptr) AccessChain 24(data) 25 190 172 58 - 201:18(float64_t) CompositeExtract 197 1 - Store 200 201 - 202: 27(ptr) AccessChain 10(dti) 26 - 203: 6(int) Load 202 - 204: 27(ptr) AccessChain 10(dti) 26 - 205: 6(int) Load 204 - 207: 175(ptr) AccessChain 24(data) 25 205 172 - 208: 19(f64vec4) Load 207 - 209:206(f64vec3) VectorShuffle 208 208 0 1 2 - 210:206(f64vec3) GroupNonUniformQuadBroadcast 35 209 26 - 211: 184(ptr) AccessChain 24(data) 25 203 172 26 - 212:18(float64_t) CompositeExtract 210 0 - Store 211 212 - 213: 184(ptr) AccessChain 24(data) 25 203 172 58 - 214:18(float64_t) CompositeExtract 210 1 - Store 213 214 - 215: 184(ptr) AccessChain 24(data) 25 203 172 73 - 216:18(float64_t) CompositeExtract 210 2 - Store 215 216 - 217: 27(ptr) AccessChain 10(dti) 26 - 218: 6(int) Load 217 - 219: 27(ptr) AccessChain 10(dti) 26 - 220: 6(int) Load 219 - 221: 32(ptr) AccessChain 24(data) 25 220 25 - 222: 13(ivec4) Load 221 - 223: 13(ivec4) GroupNonUniformQuadBroadcast 35 222 58 - 224: 32(ptr) AccessChain 24(data) 25 218 25 - Store 224 223 - 225: 27(ptr) AccessChain 10(dti) 26 - 226: 6(int) Load 225 - 227: 27(ptr) AccessChain 10(dti) 26 - 228: 6(int) Load 227 - 229: 42(ptr) AccessChain 24(data) 25 228 25 26 - 230: 6(int) Load 229 - 231: 6(int) GroupNonUniformQuadBroadcast 35 230 58 - 232: 42(ptr) AccessChain 24(data) 25 226 25 26 - Store 232 231 - 233: 27(ptr) AccessChain 10(dti) 26 - 234: 6(int) Load 233 - 235: 27(ptr) AccessChain 10(dti) 26 - 236: 6(int) Load 235 - 237: 32(ptr) AccessChain 24(data) 25 236 25 - 238: 13(ivec4) Load 237 - 239: 51(ivec2) VectorShuffle 238 238 0 1 - 240: 51(ivec2) GroupNonUniformQuadBroadcast 35 239 58 - 241: 42(ptr) AccessChain 24(data) 25 234 25 26 - 242: 6(int) CompositeExtract 240 0 - Store 241 242 - 243: 42(ptr) AccessChain 24(data) 25 234 25 58 - 244: 6(int) CompositeExtract 240 1 - Store 243 244 - 245: 27(ptr) AccessChain 10(dti) 26 - 246: 6(int) Load 245 - 247: 27(ptr) AccessChain 10(dti) 26 - 248: 6(int) Load 247 - 249: 32(ptr) AccessChain 24(data) 25 248 25 - 250: 13(ivec4) Load 249 - 251: 7(ivec3) VectorShuffle 250 250 0 1 2 - 252: 7(ivec3) GroupNonUniformQuadBroadcast 35 251 58 - 253: 42(ptr) AccessChain 24(data) 25 246 25 26 - 254: 6(int) CompositeExtract 252 0 - Store 253 254 - 255: 42(ptr) AccessChain 24(data) 25 246 25 58 - 256: 6(int) CompositeExtract 252 1 - Store 255 256 - 257: 42(ptr) AccessChain 24(data) 25 246 25 73 - 258: 6(int) CompositeExtract 252 2 - Store 257 258 - 259: 27(ptr) AccessChain 10(dti) 26 - 260: 6(int) Load 259 - 261: 27(ptr) AccessChain 10(dti) 26 - 262: 6(int) Load 261 - 263: 81(ptr) AccessChain 24(data) 25 262 78 - 264: 15(ivec4) Load 263 - 265: 15(ivec4) GroupNonUniformQuadBroadcast 35 264 58 - 266: 81(ptr) AccessChain 24(data) 25 260 78 - Store 266 265 - 267: 27(ptr) AccessChain 10(dti) 26 - 268: 6(int) Load 267 - 269: 27(ptr) AccessChain 10(dti) 26 - 270: 6(int) Load 269 - 271: 90(ptr) AccessChain 24(data) 25 270 78 26 - 272: 14(int) Load 271 - 273: 14(int) GroupNonUniformQuadBroadcast 35 272 58 - 274: 90(ptr) AccessChain 24(data) 25 268 78 26 - Store 274 273 - 275: 27(ptr) AccessChain 10(dti) 26 - 276: 6(int) Load 275 - 277: 27(ptr) AccessChain 10(dti) 26 - 278: 6(int) Load 277 - 279: 81(ptr) AccessChain 24(data) 25 278 78 - 280: 15(ivec4) Load 279 - 281: 99(ivec2) VectorShuffle 280 280 0 1 - 282: 99(ivec2) GroupNonUniformQuadBroadcast 35 281 58 - 283: 90(ptr) AccessChain 24(data) 25 276 78 26 - 284: 14(int) CompositeExtract 282 0 - Store 283 284 - 285: 90(ptr) AccessChain 24(data) 25 276 78 58 - 286: 14(int) CompositeExtract 282 1 - Store 285 286 - 287: 27(ptr) AccessChain 10(dti) 26 - 288: 6(int) Load 287 - 289: 27(ptr) AccessChain 10(dti) 26 - 290: 6(int) Load 289 - 291: 81(ptr) AccessChain 24(data) 25 290 78 - 292: 15(ivec4) Load 291 - 293: 112(ivec3) VectorShuffle 292 292 0 1 2 - 294: 112(ivec3) GroupNonUniformQuadBroadcast 35 293 58 - 295: 90(ptr) AccessChain 24(data) 25 288 78 26 - 296: 14(int) CompositeExtract 294 0 - Store 295 296 - 297: 90(ptr) AccessChain 24(data) 25 288 78 58 - 298: 14(int) CompositeExtract 294 1 - Store 297 298 - 299: 90(ptr) AccessChain 24(data) 25 288 78 73 - 300: 14(int) CompositeExtract 294 2 - Store 299 300 - 301: 27(ptr) AccessChain 10(dti) 26 - 302: 6(int) Load 301 - 303: 27(ptr) AccessChain 10(dti) 26 - 304: 6(int) Load 303 - 305: 128(ptr) AccessChain 24(data) 25 304 125 - 306: 17(fvec4) Load 305 - 307: 17(fvec4) GroupNonUniformQuadBroadcast 35 306 58 - 308: 128(ptr) AccessChain 24(data) 25 302 125 - Store 308 307 - 309: 27(ptr) AccessChain 10(dti) 26 - 310: 6(int) Load 309 - 311: 27(ptr) AccessChain 10(dti) 26 - 312: 6(int) Load 311 - 313: 137(ptr) AccessChain 24(data) 25 312 125 26 - 314: 16(float) Load 313 - 315: 16(float) GroupNonUniformQuadBroadcast 35 314 58 - 316: 137(ptr) AccessChain 24(data) 25 310 125 26 - Store 316 315 - 317: 27(ptr) AccessChain 10(dti) 26 - 318: 6(int) Load 317 - 319: 27(ptr) AccessChain 10(dti) 26 - 320: 6(int) Load 319 - 321: 128(ptr) AccessChain 24(data) 25 320 125 - 322: 17(fvec4) Load 321 - 323: 146(fvec2) VectorShuffle 322 322 0 1 - 324: 146(fvec2) GroupNonUniformQuadBroadcast 35 323 58 - 325: 137(ptr) AccessChain 24(data) 25 318 125 26 - 326: 16(float) CompositeExtract 324 0 - Store 325 326 - 327: 137(ptr) AccessChain 24(data) 25 318 125 58 - 328: 16(float) CompositeExtract 324 1 - Store 327 328 - 329: 27(ptr) AccessChain 10(dti) 26 - 330: 6(int) Load 329 - 331: 27(ptr) AccessChain 10(dti) 26 - 332: 6(int) Load 331 - 333: 128(ptr) AccessChain 24(data) 25 332 125 - 334: 17(fvec4) Load 333 - 335: 159(fvec3) VectorShuffle 334 334 0 1 2 - 336: 159(fvec3) GroupNonUniformQuadBroadcast 35 335 58 - 337: 137(ptr) AccessChain 24(data) 25 330 125 26 - 338: 16(float) CompositeExtract 336 0 - Store 337 338 - 339: 137(ptr) AccessChain 24(data) 25 330 125 58 - 340: 16(float) CompositeExtract 336 1 - Store 339 340 - 341: 137(ptr) AccessChain 24(data) 25 330 125 73 - 342: 16(float) CompositeExtract 336 2 - Store 341 342 - 343: 27(ptr) AccessChain 10(dti) 26 - 344: 6(int) Load 343 - 345: 27(ptr) AccessChain 10(dti) 26 - 346: 6(int) Load 345 - 347: 175(ptr) AccessChain 24(data) 25 346 172 - 348: 19(f64vec4) Load 347 - 349: 19(f64vec4) GroupNonUniformQuadBroadcast 35 348 58 - 350: 175(ptr) AccessChain 24(data) 25 344 172 - Store 350 349 - 351: 27(ptr) AccessChain 10(dti) 26 - 352: 6(int) Load 351 - 353: 27(ptr) AccessChain 10(dti) 26 - 354: 6(int) Load 353 - 355: 184(ptr) AccessChain 24(data) 25 354 172 26 - 356:18(float64_t) Load 355 - 357:18(float64_t) GroupNonUniformQuadBroadcast 35 356 58 - 358: 184(ptr) AccessChain 24(data) 25 352 172 26 - Store 358 357 - 359: 27(ptr) AccessChain 10(dti) 26 - 360: 6(int) Load 359 - 361: 27(ptr) AccessChain 10(dti) 26 - 362: 6(int) Load 361 - 363: 175(ptr) AccessChain 24(data) 25 362 172 - 364: 19(f64vec4) Load 363 - 365:193(f64vec2) VectorShuffle 364 364 0 1 - 366:193(f64vec2) GroupNonUniformQuadBroadcast 35 365 58 - 367: 184(ptr) AccessChain 24(data) 25 360 172 26 - 368:18(float64_t) CompositeExtract 366 0 - Store 367 368 - 369: 184(ptr) AccessChain 24(data) 25 360 172 58 - 370:18(float64_t) CompositeExtract 366 1 - Store 369 370 - 371: 27(ptr) AccessChain 10(dti) 26 - 372: 6(int) Load 371 - 373: 27(ptr) AccessChain 10(dti) 26 - 374: 6(int) Load 373 - 375: 175(ptr) AccessChain 24(data) 25 374 172 - 376: 19(f64vec4) Load 375 - 377:206(f64vec3) VectorShuffle 376 376 0 1 2 - 378:206(f64vec3) GroupNonUniformQuadBroadcast 35 377 58 - 379: 184(ptr) AccessChain 24(data) 25 372 172 26 - 380:18(float64_t) CompositeExtract 378 0 - Store 379 380 - 381: 184(ptr) AccessChain 24(data) 25 372 172 58 - 382:18(float64_t) CompositeExtract 378 1 - Store 381 382 - 383: 184(ptr) AccessChain 24(data) 25 372 172 73 - 384:18(float64_t) CompositeExtract 378 2 - Store 383 384 - 385: 27(ptr) AccessChain 10(dti) 26 - 386: 6(int) Load 385 - 387: 27(ptr) AccessChain 10(dti) 26 - 388: 6(int) Load 387 - 389: 32(ptr) AccessChain 24(data) 25 388 25 - 390: 13(ivec4) Load 389 - 391: 13(ivec4) GroupNonUniformQuadBroadcast 35 390 73 - 392: 32(ptr) AccessChain 24(data) 25 386 25 - Store 392 391 - 393: 27(ptr) AccessChain 10(dti) 26 - 394: 6(int) Load 393 - 395: 27(ptr) AccessChain 10(dti) 26 - 396: 6(int) Load 395 - 397: 42(ptr) AccessChain 24(data) 25 396 25 26 - 398: 6(int) Load 397 - 399: 6(int) GroupNonUniformQuadBroadcast 35 398 73 - 400: 42(ptr) AccessChain 24(data) 25 394 25 26 - Store 400 399 - 401: 27(ptr) AccessChain 10(dti) 26 - 402: 6(int) Load 401 - 403: 27(ptr) AccessChain 10(dti) 26 - 404: 6(int) Load 403 - 405: 32(ptr) AccessChain 24(data) 25 404 25 - 406: 13(ivec4) Load 405 - 407: 51(ivec2) VectorShuffle 406 406 0 1 - 408: 51(ivec2) GroupNonUniformQuadBroadcast 35 407 73 - 409: 42(ptr) AccessChain 24(data) 25 402 25 26 - 410: 6(int) CompositeExtract 408 0 - Store 409 410 - 411: 42(ptr) AccessChain 24(data) 25 402 25 58 - 412: 6(int) CompositeExtract 408 1 - Store 411 412 - 413: 27(ptr) AccessChain 10(dti) 26 - 414: 6(int) Load 413 - 415: 27(ptr) AccessChain 10(dti) 26 - 416: 6(int) Load 415 - 417: 32(ptr) AccessChain 24(data) 25 416 25 - 418: 13(ivec4) Load 417 - 419: 7(ivec3) VectorShuffle 418 418 0 1 2 - 420: 7(ivec3) GroupNonUniformQuadBroadcast 35 419 73 - 421: 42(ptr) AccessChain 24(data) 25 414 25 26 - 422: 6(int) CompositeExtract 420 0 - Store 421 422 - 423: 42(ptr) AccessChain 24(data) 25 414 25 58 - 424: 6(int) CompositeExtract 420 1 - Store 423 424 - 425: 42(ptr) AccessChain 24(data) 25 414 25 73 - 426: 6(int) CompositeExtract 420 2 - Store 425 426 - 427: 27(ptr) AccessChain 10(dti) 26 - 428: 6(int) Load 427 - 429: 27(ptr) AccessChain 10(dti) 26 - 430: 6(int) Load 429 - 431: 81(ptr) AccessChain 24(data) 25 430 78 - 432: 15(ivec4) Load 431 - 433: 15(ivec4) GroupNonUniformQuadBroadcast 35 432 73 - 434: 81(ptr) AccessChain 24(data) 25 428 78 - Store 434 433 - 435: 27(ptr) AccessChain 10(dti) 26 - 436: 6(int) Load 435 - 437: 27(ptr) AccessChain 10(dti) 26 - 438: 6(int) Load 437 - 439: 90(ptr) AccessChain 24(data) 25 438 78 26 - 440: 14(int) Load 439 - 441: 14(int) GroupNonUniformQuadBroadcast 35 440 73 - 442: 90(ptr) AccessChain 24(data) 25 436 78 26 - Store 442 441 - 443: 27(ptr) AccessChain 10(dti) 26 - 444: 6(int) Load 443 - 445: 27(ptr) AccessChain 10(dti) 26 - 446: 6(int) Load 445 - 447: 81(ptr) AccessChain 24(data) 25 446 78 - 448: 15(ivec4) Load 447 - 449: 99(ivec2) VectorShuffle 448 448 0 1 - 450: 99(ivec2) GroupNonUniformQuadBroadcast 35 449 73 - 451: 90(ptr) AccessChain 24(data) 25 444 78 26 - 452: 14(int) CompositeExtract 450 0 - Store 451 452 - 453: 90(ptr) AccessChain 24(data) 25 444 78 58 - 454: 14(int) CompositeExtract 450 1 - Store 453 454 - 455: 27(ptr) AccessChain 10(dti) 26 - 456: 6(int) Load 455 - 457: 27(ptr) AccessChain 10(dti) 26 - 458: 6(int) Load 457 - 459: 81(ptr) AccessChain 24(data) 25 458 78 - 460: 15(ivec4) Load 459 - 461: 112(ivec3) VectorShuffle 460 460 0 1 2 - 462: 112(ivec3) GroupNonUniformQuadBroadcast 35 461 73 - 463: 90(ptr) AccessChain 24(data) 25 456 78 26 - 464: 14(int) CompositeExtract 462 0 - Store 463 464 - 465: 90(ptr) AccessChain 24(data) 25 456 78 58 - 466: 14(int) CompositeExtract 462 1 - Store 465 466 - 467: 90(ptr) AccessChain 24(data) 25 456 78 73 - 468: 14(int) CompositeExtract 462 2 - Store 467 468 - 469: 27(ptr) AccessChain 10(dti) 26 - 470: 6(int) Load 469 - 471: 27(ptr) AccessChain 10(dti) 26 - 472: 6(int) Load 471 - 473: 128(ptr) AccessChain 24(data) 25 472 125 - 474: 17(fvec4) Load 473 - 475: 17(fvec4) GroupNonUniformQuadBroadcast 35 474 73 - 476: 128(ptr) AccessChain 24(data) 25 470 125 - Store 476 475 - 477: 27(ptr) AccessChain 10(dti) 26 - 478: 6(int) Load 477 - 479: 27(ptr) AccessChain 10(dti) 26 - 480: 6(int) Load 479 - 481: 137(ptr) AccessChain 24(data) 25 480 125 26 - 482: 16(float) Load 481 - 483: 16(float) GroupNonUniformQuadBroadcast 35 482 73 - 484: 137(ptr) AccessChain 24(data) 25 478 125 26 - Store 484 483 - 485: 27(ptr) AccessChain 10(dti) 26 - 486: 6(int) Load 485 - 487: 27(ptr) AccessChain 10(dti) 26 - 488: 6(int) Load 487 - 489: 128(ptr) AccessChain 24(data) 25 488 125 - 490: 17(fvec4) Load 489 - 491: 146(fvec2) VectorShuffle 490 490 0 1 - 492: 146(fvec2) GroupNonUniformQuadBroadcast 35 491 73 - 493: 137(ptr) AccessChain 24(data) 25 486 125 26 - 494: 16(float) CompositeExtract 492 0 - Store 493 494 - 495: 137(ptr) AccessChain 24(data) 25 486 125 58 - 496: 16(float) CompositeExtract 492 1 - Store 495 496 - 497: 27(ptr) AccessChain 10(dti) 26 - 498: 6(int) Load 497 - 499: 27(ptr) AccessChain 10(dti) 26 - 500: 6(int) Load 499 - 501: 128(ptr) AccessChain 24(data) 25 500 125 - 502: 17(fvec4) Load 501 - 503: 159(fvec3) VectorShuffle 502 502 0 1 2 - 504: 159(fvec3) GroupNonUniformQuadBroadcast 35 503 73 - 505: 137(ptr) AccessChain 24(data) 25 498 125 26 - 506: 16(float) CompositeExtract 504 0 - Store 505 506 - 507: 137(ptr) AccessChain 24(data) 25 498 125 58 - 508: 16(float) CompositeExtract 504 1 - Store 507 508 - 509: 137(ptr) AccessChain 24(data) 25 498 125 73 - 510: 16(float) CompositeExtract 504 2 - Store 509 510 - 511: 27(ptr) AccessChain 10(dti) 26 - 512: 6(int) Load 511 - 513: 27(ptr) AccessChain 10(dti) 26 - 514: 6(int) Load 513 - 515: 175(ptr) AccessChain 24(data) 25 514 172 - 516: 19(f64vec4) Load 515 - 517: 19(f64vec4) GroupNonUniformQuadBroadcast 35 516 73 - 518: 175(ptr) AccessChain 24(data) 25 512 172 - Store 518 517 - 519: 27(ptr) AccessChain 10(dti) 26 - 520: 6(int) Load 519 - 521: 27(ptr) AccessChain 10(dti) 26 - 522: 6(int) Load 521 - 523: 184(ptr) AccessChain 24(data) 25 522 172 26 - 524:18(float64_t) Load 523 - 525:18(float64_t) GroupNonUniformQuadBroadcast 35 524 73 - 526: 184(ptr) AccessChain 24(data) 25 520 172 26 - Store 526 525 - 527: 27(ptr) AccessChain 10(dti) 26 - 528: 6(int) Load 527 - 529: 27(ptr) AccessChain 10(dti) 26 - 530: 6(int) Load 529 - 531: 175(ptr) AccessChain 24(data) 25 530 172 - 532: 19(f64vec4) Load 531 - 533:193(f64vec2) VectorShuffle 532 532 0 1 - 534:193(f64vec2) GroupNonUniformQuadBroadcast 35 533 73 - 535: 184(ptr) AccessChain 24(data) 25 528 172 26 - 536:18(float64_t) CompositeExtract 534 0 - Store 535 536 - 537: 184(ptr) AccessChain 24(data) 25 528 172 58 - 538:18(float64_t) CompositeExtract 534 1 - Store 537 538 - 539: 27(ptr) AccessChain 10(dti) 26 - 540: 6(int) Load 539 - 541: 27(ptr) AccessChain 10(dti) 26 - 542: 6(int) Load 541 - 543: 175(ptr) AccessChain 24(data) 25 542 172 - 544: 19(f64vec4) Load 543 - 545:206(f64vec3) VectorShuffle 544 544 0 1 2 - 546:206(f64vec3) GroupNonUniformQuadBroadcast 35 545 73 - 547: 184(ptr) AccessChain 24(data) 25 540 172 26 - 548:18(float64_t) CompositeExtract 546 0 - Store 547 548 - 549: 184(ptr) AccessChain 24(data) 25 540 172 58 - 550:18(float64_t) CompositeExtract 546 1 - Store 549 550 - 551: 184(ptr) AccessChain 24(data) 25 540 172 73 - 552:18(float64_t) CompositeExtract 546 2 - Store 551 552 - 553: 27(ptr) AccessChain 10(dti) 26 - 554: 6(int) Load 553 - 555: 27(ptr) AccessChain 10(dti) 26 - 556: 6(int) Load 555 - 557: 32(ptr) AccessChain 24(data) 25 556 25 - 558: 13(ivec4) Load 557 - 559: 13(ivec4) GroupNonUniformQuadBroadcast 35 558 35 - 560: 32(ptr) AccessChain 24(data) 25 554 25 - Store 560 559 - 561: 27(ptr) AccessChain 10(dti) 26 - 562: 6(int) Load 561 - 563: 27(ptr) AccessChain 10(dti) 26 - 564: 6(int) Load 563 - 565: 42(ptr) AccessChain 24(data) 25 564 25 26 - 566: 6(int) Load 565 - 567: 6(int) GroupNonUniformQuadBroadcast 35 566 35 - 568: 42(ptr) AccessChain 24(data) 25 562 25 26 - Store 568 567 - 569: 27(ptr) AccessChain 10(dti) 26 - 570: 6(int) Load 569 - 571: 27(ptr) AccessChain 10(dti) 26 - 572: 6(int) Load 571 - 573: 32(ptr) AccessChain 24(data) 25 572 25 - 574: 13(ivec4) Load 573 - 575: 51(ivec2) VectorShuffle 574 574 0 1 - 576: 51(ivec2) GroupNonUniformQuadBroadcast 35 575 35 - 577: 42(ptr) AccessChain 24(data) 25 570 25 26 - 578: 6(int) CompositeExtract 576 0 - Store 577 578 - 579: 42(ptr) AccessChain 24(data) 25 570 25 58 - 580: 6(int) CompositeExtract 576 1 - Store 579 580 - 581: 27(ptr) AccessChain 10(dti) 26 - 582: 6(int) Load 581 - 583: 27(ptr) AccessChain 10(dti) 26 - 584: 6(int) Load 583 - 585: 32(ptr) AccessChain 24(data) 25 584 25 - 586: 13(ivec4) Load 585 - 587: 7(ivec3) VectorShuffle 586 586 0 1 2 - 588: 7(ivec3) GroupNonUniformQuadBroadcast 35 587 35 - 589: 42(ptr) AccessChain 24(data) 25 582 25 26 - 590: 6(int) CompositeExtract 588 0 - Store 589 590 - 591: 42(ptr) AccessChain 24(data) 25 582 25 58 - 592: 6(int) CompositeExtract 588 1 - Store 591 592 - 593: 42(ptr) AccessChain 24(data) 25 582 25 73 - 594: 6(int) CompositeExtract 588 2 - Store 593 594 - 595: 27(ptr) AccessChain 10(dti) 26 - 596: 6(int) Load 595 - 597: 27(ptr) AccessChain 10(dti) 26 - 598: 6(int) Load 597 - 599: 81(ptr) AccessChain 24(data) 25 598 78 - 600: 15(ivec4) Load 599 - 601: 15(ivec4) GroupNonUniformQuadBroadcast 35 600 35 - 602: 81(ptr) AccessChain 24(data) 25 596 78 - Store 602 601 - 603: 27(ptr) AccessChain 10(dti) 26 - 604: 6(int) Load 603 - 605: 27(ptr) AccessChain 10(dti) 26 - 606: 6(int) Load 605 - 607: 90(ptr) AccessChain 24(data) 25 606 78 26 - 608: 14(int) Load 607 - 609: 14(int) GroupNonUniformQuadBroadcast 35 608 35 - 610: 90(ptr) AccessChain 24(data) 25 604 78 26 - Store 610 609 - 611: 27(ptr) AccessChain 10(dti) 26 - 612: 6(int) Load 611 - 613: 27(ptr) AccessChain 10(dti) 26 - 614: 6(int) Load 613 - 615: 81(ptr) AccessChain 24(data) 25 614 78 - 616: 15(ivec4) Load 615 - 617: 99(ivec2) VectorShuffle 616 616 0 1 - 618: 99(ivec2) GroupNonUniformQuadBroadcast 35 617 35 - 619: 90(ptr) AccessChain 24(data) 25 612 78 26 - 620: 14(int) CompositeExtract 618 0 - Store 619 620 - 621: 90(ptr) AccessChain 24(data) 25 612 78 58 - 622: 14(int) CompositeExtract 618 1 - Store 621 622 - 623: 27(ptr) AccessChain 10(dti) 26 - 624: 6(int) Load 623 - 625: 27(ptr) AccessChain 10(dti) 26 - 626: 6(int) Load 625 - 627: 81(ptr) AccessChain 24(data) 25 626 78 - 628: 15(ivec4) Load 627 - 629: 112(ivec3) VectorShuffle 628 628 0 1 2 - 630: 112(ivec3) GroupNonUniformQuadBroadcast 35 629 35 - 631: 90(ptr) AccessChain 24(data) 25 624 78 26 - 632: 14(int) CompositeExtract 630 0 - Store 631 632 - 633: 90(ptr) AccessChain 24(data) 25 624 78 58 - 634: 14(int) CompositeExtract 630 1 - Store 633 634 - 635: 90(ptr) AccessChain 24(data) 25 624 78 73 - 636: 14(int) CompositeExtract 630 2 - Store 635 636 - 637: 27(ptr) AccessChain 10(dti) 26 - 638: 6(int) Load 637 - 639: 27(ptr) AccessChain 10(dti) 26 - 640: 6(int) Load 639 - 641: 128(ptr) AccessChain 24(data) 25 640 125 - 642: 17(fvec4) Load 641 - 643: 17(fvec4) GroupNonUniformQuadBroadcast 35 642 35 - 644: 128(ptr) AccessChain 24(data) 25 638 125 - Store 644 643 - 645: 27(ptr) AccessChain 10(dti) 26 - 646: 6(int) Load 645 - 647: 27(ptr) AccessChain 10(dti) 26 - 648: 6(int) Load 647 - 649: 137(ptr) AccessChain 24(data) 25 648 125 26 - 650: 16(float) Load 649 - 651: 16(float) GroupNonUniformQuadBroadcast 35 650 35 - 652: 137(ptr) AccessChain 24(data) 25 646 125 26 - Store 652 651 - 653: 27(ptr) AccessChain 10(dti) 26 - 654: 6(int) Load 653 - 655: 27(ptr) AccessChain 10(dti) 26 - 656: 6(int) Load 655 - 657: 128(ptr) AccessChain 24(data) 25 656 125 - 658: 17(fvec4) Load 657 - 659: 146(fvec2) VectorShuffle 658 658 0 1 - 660: 146(fvec2) GroupNonUniformQuadBroadcast 35 659 35 - 661: 137(ptr) AccessChain 24(data) 25 654 125 26 - 662: 16(float) CompositeExtract 660 0 - Store 661 662 - 663: 137(ptr) AccessChain 24(data) 25 654 125 58 - 664: 16(float) CompositeExtract 660 1 - Store 663 664 - 665: 27(ptr) AccessChain 10(dti) 26 - 666: 6(int) Load 665 - 667: 27(ptr) AccessChain 10(dti) 26 - 668: 6(int) Load 667 - 669: 128(ptr) AccessChain 24(data) 25 668 125 - 670: 17(fvec4) Load 669 - 671: 159(fvec3) VectorShuffle 670 670 0 1 2 - 672: 159(fvec3) GroupNonUniformQuadBroadcast 35 671 35 - 673: 137(ptr) AccessChain 24(data) 25 666 125 26 - 674: 16(float) CompositeExtract 672 0 - Store 673 674 - 675: 137(ptr) AccessChain 24(data) 25 666 125 58 - 676: 16(float) CompositeExtract 672 1 - Store 675 676 - 677: 137(ptr) AccessChain 24(data) 25 666 125 73 - 678: 16(float) CompositeExtract 672 2 - Store 677 678 - 679: 27(ptr) AccessChain 10(dti) 26 - 680: 6(int) Load 679 - 681: 27(ptr) AccessChain 10(dti) 26 - 682: 6(int) Load 681 - 683: 175(ptr) AccessChain 24(data) 25 682 172 - 684: 19(f64vec4) Load 683 - 685: 19(f64vec4) GroupNonUniformQuadBroadcast 35 684 35 - 686: 175(ptr) AccessChain 24(data) 25 680 172 - Store 686 685 - 687: 27(ptr) AccessChain 10(dti) 26 - 688: 6(int) Load 687 - 689: 27(ptr) AccessChain 10(dti) 26 - 690: 6(int) Load 689 - 691: 184(ptr) AccessChain 24(data) 25 690 172 26 - 692:18(float64_t) Load 691 - 693:18(float64_t) GroupNonUniformQuadBroadcast 35 692 35 - 694: 184(ptr) AccessChain 24(data) 25 688 172 26 - Store 694 693 - 695: 27(ptr) AccessChain 10(dti) 26 - 696: 6(int) Load 695 - 697: 27(ptr) AccessChain 10(dti) 26 - 698: 6(int) Load 697 - 699: 175(ptr) AccessChain 24(data) 25 698 172 - 700: 19(f64vec4) Load 699 - 701:193(f64vec2) VectorShuffle 700 700 0 1 - 702:193(f64vec2) GroupNonUniformQuadBroadcast 35 701 35 - 703: 184(ptr) AccessChain 24(data) 25 696 172 26 - 704:18(float64_t) CompositeExtract 702 0 - Store 703 704 - 705: 184(ptr) AccessChain 24(data) 25 696 172 58 - 706:18(float64_t) CompositeExtract 702 1 - Store 705 706 - 707: 27(ptr) AccessChain 10(dti) 26 - 708: 6(int) Load 707 - 709: 27(ptr) AccessChain 10(dti) 26 - 710: 6(int) Load 709 - 711: 175(ptr) AccessChain 24(data) 25 710 172 - 712: 19(f64vec4) Load 711 - 713:206(f64vec3) VectorShuffle 712 712 0 1 2 - 714:206(f64vec3) GroupNonUniformQuadBroadcast 35 713 35 - 715: 184(ptr) AccessChain 24(data) 25 708 172 26 - 716:18(float64_t) CompositeExtract 714 0 - Store 715 716 - 717: 184(ptr) AccessChain 24(data) 25 708 172 58 - 718:18(float64_t) CompositeExtract 714 1 - Store 717 718 - 719: 184(ptr) AccessChain 24(data) 25 708 172 73 - 720:18(float64_t) CompositeExtract 714 2 - Store 719 720 - 721: 27(ptr) AccessChain 10(dti) 26 - 722: 6(int) Load 721 - 723: 27(ptr) AccessChain 10(dti) 26 - 724: 6(int) Load 723 - 725: 32(ptr) AccessChain 24(data) 25 724 25 - 726: 13(ivec4) Load 725 - 727: 13(ivec4) GroupNonUniformQuadSwap 35 726 26 - 728: 32(ptr) AccessChain 24(data) 25 722 25 - Store 728 727 - 729: 27(ptr) AccessChain 10(dti) 26 - 730: 6(int) Load 729 - 731: 27(ptr) AccessChain 10(dti) 26 - 732: 6(int) Load 731 - 733: 42(ptr) AccessChain 24(data) 25 732 25 26 - 734: 6(int) Load 733 - 735: 6(int) GroupNonUniformQuadSwap 35 734 26 - 736: 42(ptr) AccessChain 24(data) 25 730 25 26 - Store 736 735 - 737: 27(ptr) AccessChain 10(dti) 26 - 738: 6(int) Load 737 - 739: 27(ptr) AccessChain 10(dti) 26 - 740: 6(int) Load 739 - 741: 32(ptr) AccessChain 24(data) 25 740 25 - 742: 13(ivec4) Load 741 - 743: 51(ivec2) VectorShuffle 742 742 0 1 - 744: 51(ivec2) GroupNonUniformQuadSwap 35 743 26 - 745: 42(ptr) AccessChain 24(data) 25 738 25 26 - 746: 6(int) CompositeExtract 744 0 - Store 745 746 - 747: 42(ptr) AccessChain 24(data) 25 738 25 58 - 748: 6(int) CompositeExtract 744 1 - Store 747 748 - 749: 27(ptr) AccessChain 10(dti) 26 - 750: 6(int) Load 749 - 751: 27(ptr) AccessChain 10(dti) 26 - 752: 6(int) Load 751 - 753: 32(ptr) AccessChain 24(data) 25 752 25 - 754: 13(ivec4) Load 753 - 755: 7(ivec3) VectorShuffle 754 754 0 1 2 - 756: 7(ivec3) GroupNonUniformQuadSwap 35 755 26 - 757: 42(ptr) AccessChain 24(data) 25 750 25 26 - 758: 6(int) CompositeExtract 756 0 - Store 757 758 - 759: 42(ptr) AccessChain 24(data) 25 750 25 58 - 760: 6(int) CompositeExtract 756 1 - Store 759 760 - 761: 42(ptr) AccessChain 24(data) 25 750 25 73 - 762: 6(int) CompositeExtract 756 2 - Store 761 762 - 763: 27(ptr) AccessChain 10(dti) 26 - 764: 6(int) Load 763 - 765: 27(ptr) AccessChain 10(dti) 26 - 766: 6(int) Load 765 - 767: 81(ptr) AccessChain 24(data) 25 766 78 - 768: 15(ivec4) Load 767 - 769: 15(ivec4) GroupNonUniformQuadSwap 35 768 26 - 770: 81(ptr) AccessChain 24(data) 25 764 78 - Store 770 769 - 771: 27(ptr) AccessChain 10(dti) 26 - 772: 6(int) Load 771 - 773: 27(ptr) AccessChain 10(dti) 26 - 774: 6(int) Load 773 - 775: 90(ptr) AccessChain 24(data) 25 774 78 26 - 776: 14(int) Load 775 - 777: 14(int) GroupNonUniformQuadSwap 35 776 26 - 778: 90(ptr) AccessChain 24(data) 25 772 78 26 - Store 778 777 - 779: 27(ptr) AccessChain 10(dti) 26 - 780: 6(int) Load 779 - 781: 27(ptr) AccessChain 10(dti) 26 - 782: 6(int) Load 781 - 783: 81(ptr) AccessChain 24(data) 25 782 78 - 784: 15(ivec4) Load 783 - 785: 99(ivec2) VectorShuffle 784 784 0 1 - 786: 99(ivec2) GroupNonUniformQuadSwap 35 785 26 - 787: 90(ptr) AccessChain 24(data) 25 780 78 26 - 788: 14(int) CompositeExtract 786 0 - Store 787 788 - 789: 90(ptr) AccessChain 24(data) 25 780 78 58 - 790: 14(int) CompositeExtract 786 1 - Store 789 790 - 791: 27(ptr) AccessChain 10(dti) 26 - 792: 6(int) Load 791 - 793: 27(ptr) AccessChain 10(dti) 26 - 794: 6(int) Load 793 - 795: 81(ptr) AccessChain 24(data) 25 794 78 - 796: 15(ivec4) Load 795 - 797: 112(ivec3) VectorShuffle 796 796 0 1 2 - 798: 112(ivec3) GroupNonUniformQuadSwap 35 797 26 - 799: 90(ptr) AccessChain 24(data) 25 792 78 26 - 800: 14(int) CompositeExtract 798 0 - Store 799 800 - 801: 90(ptr) AccessChain 24(data) 25 792 78 58 - 802: 14(int) CompositeExtract 798 1 - Store 801 802 - 803: 90(ptr) AccessChain 24(data) 25 792 78 73 - 804: 14(int) CompositeExtract 798 2 - Store 803 804 - 805: 27(ptr) AccessChain 10(dti) 26 - 806: 6(int) Load 805 - 807: 27(ptr) AccessChain 10(dti) 26 - 808: 6(int) Load 807 - 809: 128(ptr) AccessChain 24(data) 25 808 125 - 810: 17(fvec4) Load 809 - 811: 17(fvec4) GroupNonUniformQuadSwap 35 810 26 - 812: 128(ptr) AccessChain 24(data) 25 806 125 - Store 812 811 - 813: 27(ptr) AccessChain 10(dti) 26 - 814: 6(int) Load 813 - 815: 27(ptr) AccessChain 10(dti) 26 - 816: 6(int) Load 815 - 817: 137(ptr) AccessChain 24(data) 25 816 125 26 - 818: 16(float) Load 817 - 819: 16(float) GroupNonUniformQuadSwap 35 818 26 - 820: 137(ptr) AccessChain 24(data) 25 814 125 26 - Store 820 819 - 821: 27(ptr) AccessChain 10(dti) 26 - 822: 6(int) Load 821 - 823: 27(ptr) AccessChain 10(dti) 26 - 824: 6(int) Load 823 - 825: 128(ptr) AccessChain 24(data) 25 824 125 - 826: 17(fvec4) Load 825 - 827: 146(fvec2) VectorShuffle 826 826 0 1 - 828: 146(fvec2) GroupNonUniformQuadSwap 35 827 26 - 829: 137(ptr) AccessChain 24(data) 25 822 125 26 - 830: 16(float) CompositeExtract 828 0 - Store 829 830 - 831: 137(ptr) AccessChain 24(data) 25 822 125 58 - 832: 16(float) CompositeExtract 828 1 - Store 831 832 - 833: 27(ptr) AccessChain 10(dti) 26 - 834: 6(int) Load 833 - 835: 27(ptr) AccessChain 10(dti) 26 - 836: 6(int) Load 835 - 837: 128(ptr) AccessChain 24(data) 25 836 125 - 838: 17(fvec4) Load 837 - 839: 159(fvec3) VectorShuffle 838 838 0 1 2 - 840: 159(fvec3) GroupNonUniformQuadSwap 35 839 26 - 841: 137(ptr) AccessChain 24(data) 25 834 125 26 - 842: 16(float) CompositeExtract 840 0 - Store 841 842 - 843: 137(ptr) AccessChain 24(data) 25 834 125 58 - 844: 16(float) CompositeExtract 840 1 - Store 843 844 - 845: 137(ptr) AccessChain 24(data) 25 834 125 73 - 846: 16(float) CompositeExtract 840 2 - Store 845 846 - 847: 27(ptr) AccessChain 10(dti) 26 - 848: 6(int) Load 847 - 849: 27(ptr) AccessChain 10(dti) 26 - 850: 6(int) Load 849 - 851: 175(ptr) AccessChain 24(data) 25 850 172 - 852: 19(f64vec4) Load 851 - 853: 19(f64vec4) GroupNonUniformQuadSwap 35 852 26 - 854: 175(ptr) AccessChain 24(data) 25 848 172 - Store 854 853 - 855: 27(ptr) AccessChain 10(dti) 26 - 856: 6(int) Load 855 - 857: 27(ptr) AccessChain 10(dti) 26 - 858: 6(int) Load 857 - 859: 184(ptr) AccessChain 24(data) 25 858 172 26 - 860:18(float64_t) Load 859 - 861:18(float64_t) GroupNonUniformQuadSwap 35 860 26 - 862: 184(ptr) AccessChain 24(data) 25 856 172 26 - Store 862 861 - 863: 27(ptr) AccessChain 10(dti) 26 - 864: 6(int) Load 863 - 865: 27(ptr) AccessChain 10(dti) 26 - 866: 6(int) Load 865 - 867: 175(ptr) AccessChain 24(data) 25 866 172 - 868: 19(f64vec4) Load 867 - 869:193(f64vec2) VectorShuffle 868 868 0 1 - 870:193(f64vec2) GroupNonUniformQuadSwap 35 869 26 - 871: 184(ptr) AccessChain 24(data) 25 864 172 26 - 872:18(float64_t) CompositeExtract 870 0 - Store 871 872 - 873: 184(ptr) AccessChain 24(data) 25 864 172 58 - 874:18(float64_t) CompositeExtract 870 1 - Store 873 874 - 875: 27(ptr) AccessChain 10(dti) 26 - 876: 6(int) Load 875 - 877: 27(ptr) AccessChain 10(dti) 26 - 878: 6(int) Load 877 - 879: 175(ptr) AccessChain 24(data) 25 878 172 - 880: 19(f64vec4) Load 879 - 881:206(f64vec3) VectorShuffle 880 880 0 1 2 - 882:206(f64vec3) GroupNonUniformQuadSwap 35 881 26 - 883: 184(ptr) AccessChain 24(data) 25 876 172 26 - 884:18(float64_t) CompositeExtract 882 0 - Store 883 884 - 885: 184(ptr) AccessChain 24(data) 25 876 172 58 - 886:18(float64_t) CompositeExtract 882 1 - Store 885 886 - 887: 184(ptr) AccessChain 24(data) 25 876 172 73 - 888:18(float64_t) CompositeExtract 882 2 - Store 887 888 - 889: 27(ptr) AccessChain 10(dti) 26 - 890: 6(int) Load 889 - 891: 27(ptr) AccessChain 10(dti) 26 - 892: 6(int) Load 891 - 893: 32(ptr) AccessChain 24(data) 25 892 25 - 894: 13(ivec4) Load 893 - 895: 13(ivec4) GroupNonUniformQuadSwap 35 894 58 - 896: 32(ptr) AccessChain 24(data) 25 890 25 - Store 896 895 - 897: 27(ptr) AccessChain 10(dti) 26 - 898: 6(int) Load 897 - 899: 27(ptr) AccessChain 10(dti) 26 - 900: 6(int) Load 899 - 901: 42(ptr) AccessChain 24(data) 25 900 25 26 - 902: 6(int) Load 901 - 903: 6(int) GroupNonUniformQuadSwap 35 902 58 - 904: 42(ptr) AccessChain 24(data) 25 898 25 26 - Store 904 903 - 905: 27(ptr) AccessChain 10(dti) 26 - 906: 6(int) Load 905 - 907: 27(ptr) AccessChain 10(dti) 26 - 908: 6(int) Load 907 - 909: 32(ptr) AccessChain 24(data) 25 908 25 - 910: 13(ivec4) Load 909 - 911: 51(ivec2) VectorShuffle 910 910 0 1 - 912: 51(ivec2) GroupNonUniformQuadSwap 35 911 58 - 913: 42(ptr) AccessChain 24(data) 25 906 25 26 - 914: 6(int) CompositeExtract 912 0 - Store 913 914 - 915: 42(ptr) AccessChain 24(data) 25 906 25 58 - 916: 6(int) CompositeExtract 912 1 - Store 915 916 - 917: 27(ptr) AccessChain 10(dti) 26 - 918: 6(int) Load 917 - 919: 27(ptr) AccessChain 10(dti) 26 - 920: 6(int) Load 919 - 921: 32(ptr) AccessChain 24(data) 25 920 25 - 922: 13(ivec4) Load 921 - 923: 7(ivec3) VectorShuffle 922 922 0 1 2 - 924: 7(ivec3) GroupNonUniformQuadSwap 35 923 58 - 925: 42(ptr) AccessChain 24(data) 25 918 25 26 - 926: 6(int) CompositeExtract 924 0 - Store 925 926 - 927: 42(ptr) AccessChain 24(data) 25 918 25 58 - 928: 6(int) CompositeExtract 924 1 - Store 927 928 - 929: 42(ptr) AccessChain 24(data) 25 918 25 73 - 930: 6(int) CompositeExtract 924 2 - Store 929 930 - 931: 27(ptr) AccessChain 10(dti) 26 - 932: 6(int) Load 931 - 933: 27(ptr) AccessChain 10(dti) 26 - 934: 6(int) Load 933 - 935: 81(ptr) AccessChain 24(data) 25 934 78 - 936: 15(ivec4) Load 935 - 937: 15(ivec4) GroupNonUniformQuadSwap 35 936 58 - 938: 81(ptr) AccessChain 24(data) 25 932 78 - Store 938 937 - 939: 27(ptr) AccessChain 10(dti) 26 - 940: 6(int) Load 939 - 941: 27(ptr) AccessChain 10(dti) 26 - 942: 6(int) Load 941 - 943: 90(ptr) AccessChain 24(data) 25 942 78 26 - 944: 14(int) Load 943 - 945: 14(int) GroupNonUniformQuadSwap 35 944 58 - 946: 90(ptr) AccessChain 24(data) 25 940 78 26 - Store 946 945 - 947: 27(ptr) AccessChain 10(dti) 26 - 948: 6(int) Load 947 - 949: 27(ptr) AccessChain 10(dti) 26 - 950: 6(int) Load 949 - 951: 81(ptr) AccessChain 24(data) 25 950 78 - 952: 15(ivec4) Load 951 - 953: 99(ivec2) VectorShuffle 952 952 0 1 - 954: 99(ivec2) GroupNonUniformQuadSwap 35 953 58 - 955: 90(ptr) AccessChain 24(data) 25 948 78 26 - 956: 14(int) CompositeExtract 954 0 - Store 955 956 - 957: 90(ptr) AccessChain 24(data) 25 948 78 58 - 958: 14(int) CompositeExtract 954 1 - Store 957 958 - 959: 27(ptr) AccessChain 10(dti) 26 - 960: 6(int) Load 959 - 961: 27(ptr) AccessChain 10(dti) 26 - 962: 6(int) Load 961 - 963: 81(ptr) AccessChain 24(data) 25 962 78 - 964: 15(ivec4) Load 963 - 965: 112(ivec3) VectorShuffle 964 964 0 1 2 - 966: 112(ivec3) GroupNonUniformQuadSwap 35 965 58 - 967: 90(ptr) AccessChain 24(data) 25 960 78 26 - 968: 14(int) CompositeExtract 966 0 - Store 967 968 - 969: 90(ptr) AccessChain 24(data) 25 960 78 58 - 970: 14(int) CompositeExtract 966 1 - Store 969 970 - 971: 90(ptr) AccessChain 24(data) 25 960 78 73 - 972: 14(int) CompositeExtract 966 2 - Store 971 972 - 973: 27(ptr) AccessChain 10(dti) 26 - 974: 6(int) Load 973 - 975: 27(ptr) AccessChain 10(dti) 26 - 976: 6(int) Load 975 - 977: 128(ptr) AccessChain 24(data) 25 976 125 - 978: 17(fvec4) Load 977 - 979: 17(fvec4) GroupNonUniformQuadSwap 35 978 58 - 980: 128(ptr) AccessChain 24(data) 25 974 125 - Store 980 979 - 981: 27(ptr) AccessChain 10(dti) 26 - 982: 6(int) Load 981 - 983: 27(ptr) AccessChain 10(dti) 26 - 984: 6(int) Load 983 - 985: 137(ptr) AccessChain 24(data) 25 984 125 26 - 986: 16(float) Load 985 - 987: 16(float) GroupNonUniformQuadSwap 35 986 58 - 988: 137(ptr) AccessChain 24(data) 25 982 125 26 - Store 988 987 - 989: 27(ptr) AccessChain 10(dti) 26 - 990: 6(int) Load 989 - 991: 27(ptr) AccessChain 10(dti) 26 - 992: 6(int) Load 991 - 993: 128(ptr) AccessChain 24(data) 25 992 125 - 994: 17(fvec4) Load 993 - 995: 146(fvec2) VectorShuffle 994 994 0 1 - 996: 146(fvec2) GroupNonUniformQuadSwap 35 995 58 - 997: 137(ptr) AccessChain 24(data) 25 990 125 26 - 998: 16(float) CompositeExtract 996 0 - Store 997 998 - 999: 137(ptr) AccessChain 24(data) 25 990 125 58 - 1000: 16(float) CompositeExtract 996 1 - Store 999 1000 - 1001: 27(ptr) AccessChain 10(dti) 26 - 1002: 6(int) Load 1001 - 1003: 27(ptr) AccessChain 10(dti) 26 - 1004: 6(int) Load 1003 - 1005: 128(ptr) AccessChain 24(data) 25 1004 125 - 1006: 17(fvec4) Load 1005 - 1007: 159(fvec3) VectorShuffle 1006 1006 0 1 2 - 1008: 159(fvec3) GroupNonUniformQuadSwap 35 1007 58 - 1009: 137(ptr) AccessChain 24(data) 25 1002 125 26 - 1010: 16(float) CompositeExtract 1008 0 - Store 1009 1010 - 1011: 137(ptr) AccessChain 24(data) 25 1002 125 58 - 1012: 16(float) CompositeExtract 1008 1 - Store 1011 1012 - 1013: 137(ptr) AccessChain 24(data) 25 1002 125 73 - 1014: 16(float) CompositeExtract 1008 2 - Store 1013 1014 - 1015: 27(ptr) AccessChain 10(dti) 26 - 1016: 6(int) Load 1015 - 1017: 27(ptr) AccessChain 10(dti) 26 - 1018: 6(int) Load 1017 - 1019: 175(ptr) AccessChain 24(data) 25 1018 172 - 1020: 19(f64vec4) Load 1019 - 1021: 19(f64vec4) GroupNonUniformQuadSwap 35 1020 58 - 1022: 175(ptr) AccessChain 24(data) 25 1016 172 - Store 1022 1021 - 1023: 27(ptr) AccessChain 10(dti) 26 - 1024: 6(int) Load 1023 - 1025: 27(ptr) AccessChain 10(dti) 26 - 1026: 6(int) Load 1025 - 1027: 184(ptr) AccessChain 24(data) 25 1026 172 26 - 1028:18(float64_t) Load 1027 - 1029:18(float64_t) GroupNonUniformQuadSwap 35 1028 58 - 1030: 184(ptr) AccessChain 24(data) 25 1024 172 26 - Store 1030 1029 - 1031: 27(ptr) AccessChain 10(dti) 26 - 1032: 6(int) Load 1031 - 1033: 27(ptr) AccessChain 10(dti) 26 - 1034: 6(int) Load 1033 - 1035: 175(ptr) AccessChain 24(data) 25 1034 172 - 1036: 19(f64vec4) Load 1035 - 1037:193(f64vec2) VectorShuffle 1036 1036 0 1 - 1038:193(f64vec2) GroupNonUniformQuadSwap 35 1037 58 - 1039: 184(ptr) AccessChain 24(data) 25 1032 172 26 - 1040:18(float64_t) CompositeExtract 1038 0 - Store 1039 1040 - 1041: 184(ptr) AccessChain 24(data) 25 1032 172 58 - 1042:18(float64_t) CompositeExtract 1038 1 - Store 1041 1042 - 1043: 27(ptr) AccessChain 10(dti) 26 - 1044: 6(int) Load 1043 - 1045: 27(ptr) AccessChain 10(dti) 26 - 1046: 6(int) Load 1045 - 1047: 175(ptr) AccessChain 24(data) 25 1046 172 - 1048: 19(f64vec4) Load 1047 - 1049:206(f64vec3) VectorShuffle 1048 1048 0 1 2 - 1050:206(f64vec3) GroupNonUniformQuadSwap 35 1049 58 - 1051: 184(ptr) AccessChain 24(data) 25 1044 172 26 - 1052:18(float64_t) CompositeExtract 1050 0 - Store 1051 1052 - 1053: 184(ptr) AccessChain 24(data) 25 1044 172 58 - 1054:18(float64_t) CompositeExtract 1050 1 - Store 1053 1054 - 1055: 184(ptr) AccessChain 24(data) 25 1044 172 73 - 1056:18(float64_t) CompositeExtract 1050 2 - Store 1055 1056 - 1057: 27(ptr) AccessChain 10(dti) 26 - 1058: 6(int) Load 1057 - 1059: 27(ptr) AccessChain 10(dti) 26 - 1060: 6(int) Load 1059 - 1061: 32(ptr) AccessChain 24(data) 25 1060 25 - 1062: 13(ivec4) Load 1061 - 1063: 13(ivec4) GroupNonUniformQuadSwap 35 1062 73 - 1064: 32(ptr) AccessChain 24(data) 25 1058 25 - Store 1064 1063 - 1065: 27(ptr) AccessChain 10(dti) 26 - 1066: 6(int) Load 1065 - 1067: 27(ptr) AccessChain 10(dti) 26 - 1068: 6(int) Load 1067 - 1069: 42(ptr) AccessChain 24(data) 25 1068 25 26 - 1070: 6(int) Load 1069 - 1071: 6(int) GroupNonUniformQuadSwap 35 1070 73 - 1072: 42(ptr) AccessChain 24(data) 25 1066 25 26 - Store 1072 1071 - 1073: 27(ptr) AccessChain 10(dti) 26 - 1074: 6(int) Load 1073 - 1075: 27(ptr) AccessChain 10(dti) 26 - 1076: 6(int) Load 1075 - 1077: 32(ptr) AccessChain 24(data) 25 1076 25 - 1078: 13(ivec4) Load 1077 - 1079: 51(ivec2) VectorShuffle 1078 1078 0 1 - 1080: 51(ivec2) GroupNonUniformQuadSwap 35 1079 73 - 1081: 42(ptr) AccessChain 24(data) 25 1074 25 26 - 1082: 6(int) CompositeExtract 1080 0 - Store 1081 1082 - 1083: 42(ptr) AccessChain 24(data) 25 1074 25 58 - 1084: 6(int) CompositeExtract 1080 1 - Store 1083 1084 - 1085: 27(ptr) AccessChain 10(dti) 26 - 1086: 6(int) Load 1085 - 1087: 27(ptr) AccessChain 10(dti) 26 - 1088: 6(int) Load 1087 - 1089: 32(ptr) AccessChain 24(data) 25 1088 25 - 1090: 13(ivec4) Load 1089 - 1091: 7(ivec3) VectorShuffle 1090 1090 0 1 2 - 1092: 7(ivec3) GroupNonUniformQuadSwap 35 1091 73 - 1093: 42(ptr) AccessChain 24(data) 25 1086 25 26 - 1094: 6(int) CompositeExtract 1092 0 - Store 1093 1094 - 1095: 42(ptr) AccessChain 24(data) 25 1086 25 58 - 1096: 6(int) CompositeExtract 1092 1 - Store 1095 1096 - 1097: 42(ptr) AccessChain 24(data) 25 1086 25 73 - 1098: 6(int) CompositeExtract 1092 2 - Store 1097 1098 - 1099: 27(ptr) AccessChain 10(dti) 26 - 1100: 6(int) Load 1099 - 1101: 27(ptr) AccessChain 10(dti) 26 - 1102: 6(int) Load 1101 - 1103: 81(ptr) AccessChain 24(data) 25 1102 78 - 1104: 15(ivec4) Load 1103 - 1105: 15(ivec4) GroupNonUniformQuadSwap 35 1104 73 - 1106: 81(ptr) AccessChain 24(data) 25 1100 78 - Store 1106 1105 - 1107: 27(ptr) AccessChain 10(dti) 26 - 1108: 6(int) Load 1107 - 1109: 27(ptr) AccessChain 10(dti) 26 - 1110: 6(int) Load 1109 - 1111: 90(ptr) AccessChain 24(data) 25 1110 78 26 - 1112: 14(int) Load 1111 - 1113: 14(int) GroupNonUniformQuadSwap 35 1112 73 - 1114: 90(ptr) AccessChain 24(data) 25 1108 78 26 - Store 1114 1113 - 1115: 27(ptr) AccessChain 10(dti) 26 - 1116: 6(int) Load 1115 - 1117: 27(ptr) AccessChain 10(dti) 26 - 1118: 6(int) Load 1117 - 1119: 81(ptr) AccessChain 24(data) 25 1118 78 - 1120: 15(ivec4) Load 1119 - 1121: 99(ivec2) VectorShuffle 1120 1120 0 1 - 1122: 99(ivec2) GroupNonUniformQuadSwap 35 1121 73 - 1123: 90(ptr) AccessChain 24(data) 25 1116 78 26 - 1124: 14(int) CompositeExtract 1122 0 - Store 1123 1124 - 1125: 90(ptr) AccessChain 24(data) 25 1116 78 58 - 1126: 14(int) CompositeExtract 1122 1 - Store 1125 1126 - 1127: 27(ptr) AccessChain 10(dti) 26 - 1128: 6(int) Load 1127 - 1129: 27(ptr) AccessChain 10(dti) 26 - 1130: 6(int) Load 1129 - 1131: 81(ptr) AccessChain 24(data) 25 1130 78 - 1132: 15(ivec4) Load 1131 - 1133: 112(ivec3) VectorShuffle 1132 1132 0 1 2 - 1134: 112(ivec3) GroupNonUniformQuadSwap 35 1133 73 - 1135: 90(ptr) AccessChain 24(data) 25 1128 78 26 - 1136: 14(int) CompositeExtract 1134 0 - Store 1135 1136 - 1137: 90(ptr) AccessChain 24(data) 25 1128 78 58 - 1138: 14(int) CompositeExtract 1134 1 - Store 1137 1138 - 1139: 90(ptr) AccessChain 24(data) 25 1128 78 73 - 1140: 14(int) CompositeExtract 1134 2 - Store 1139 1140 - 1141: 27(ptr) AccessChain 10(dti) 26 - 1142: 6(int) Load 1141 - 1143: 27(ptr) AccessChain 10(dti) 26 - 1144: 6(int) Load 1143 - 1145: 128(ptr) AccessChain 24(data) 25 1144 125 - 1146: 17(fvec4) Load 1145 - 1147: 17(fvec4) GroupNonUniformQuadSwap 35 1146 73 - 1148: 128(ptr) AccessChain 24(data) 25 1142 125 - Store 1148 1147 - 1149: 27(ptr) AccessChain 10(dti) 26 - 1150: 6(int) Load 1149 - 1151: 27(ptr) AccessChain 10(dti) 26 - 1152: 6(int) Load 1151 - 1153: 137(ptr) AccessChain 24(data) 25 1152 125 26 - 1154: 16(float) Load 1153 - 1155: 16(float) GroupNonUniformQuadSwap 35 1154 73 - 1156: 137(ptr) AccessChain 24(data) 25 1150 125 26 - Store 1156 1155 - 1157: 27(ptr) AccessChain 10(dti) 26 - 1158: 6(int) Load 1157 - 1159: 27(ptr) AccessChain 10(dti) 26 - 1160: 6(int) Load 1159 - 1161: 128(ptr) AccessChain 24(data) 25 1160 125 - 1162: 17(fvec4) Load 1161 - 1163: 146(fvec2) VectorShuffle 1162 1162 0 1 - 1164: 146(fvec2) GroupNonUniformQuadSwap 35 1163 73 - 1165: 137(ptr) AccessChain 24(data) 25 1158 125 26 - 1166: 16(float) CompositeExtract 1164 0 - Store 1165 1166 - 1167: 137(ptr) AccessChain 24(data) 25 1158 125 58 - 1168: 16(float) CompositeExtract 1164 1 - Store 1167 1168 - 1169: 27(ptr) AccessChain 10(dti) 26 - 1170: 6(int) Load 1169 - 1171: 27(ptr) AccessChain 10(dti) 26 - 1172: 6(int) Load 1171 - 1173: 128(ptr) AccessChain 24(data) 25 1172 125 - 1174: 17(fvec4) Load 1173 - 1175: 159(fvec3) VectorShuffle 1174 1174 0 1 2 - 1176: 159(fvec3) GroupNonUniformQuadSwap 35 1175 73 - 1177: 137(ptr) AccessChain 24(data) 25 1170 125 26 - 1178: 16(float) CompositeExtract 1176 0 - Store 1177 1178 - 1179: 137(ptr) AccessChain 24(data) 25 1170 125 58 - 1180: 16(float) CompositeExtract 1176 1 - Store 1179 1180 - 1181: 137(ptr) AccessChain 24(data) 25 1170 125 73 - 1182: 16(float) CompositeExtract 1176 2 - Store 1181 1182 - 1183: 27(ptr) AccessChain 10(dti) 26 - 1184: 6(int) Load 1183 - 1185: 27(ptr) AccessChain 10(dti) 26 - 1186: 6(int) Load 1185 - 1187: 175(ptr) AccessChain 24(data) 25 1186 172 - 1188: 19(f64vec4) Load 1187 - 1189: 19(f64vec4) GroupNonUniformQuadSwap 35 1188 73 - 1190: 175(ptr) AccessChain 24(data) 25 1184 172 - Store 1190 1189 - 1191: 27(ptr) AccessChain 10(dti) 26 - 1192: 6(int) Load 1191 - 1193: 27(ptr) AccessChain 10(dti) 26 - 1194: 6(int) Load 1193 - 1195: 184(ptr) AccessChain 24(data) 25 1194 172 26 - 1196:18(float64_t) Load 1195 - 1197:18(float64_t) GroupNonUniformQuadSwap 35 1196 73 - 1198: 184(ptr) AccessChain 24(data) 25 1192 172 26 - Store 1198 1197 - 1199: 27(ptr) AccessChain 10(dti) 26 - 1200: 6(int) Load 1199 - 1201: 27(ptr) AccessChain 10(dti) 26 - 1202: 6(int) Load 1201 - 1203: 175(ptr) AccessChain 24(data) 25 1202 172 - 1204: 19(f64vec4) Load 1203 - 1205:193(f64vec2) VectorShuffle 1204 1204 0 1 - 1206:193(f64vec2) GroupNonUniformQuadSwap 35 1205 73 - 1207: 184(ptr) AccessChain 24(data) 25 1200 172 26 - 1208:18(float64_t) CompositeExtract 1206 0 - Store 1207 1208 - 1209: 184(ptr) AccessChain 24(data) 25 1200 172 58 - 1210:18(float64_t) CompositeExtract 1206 1 - Store 1209 1210 - 1211: 27(ptr) AccessChain 10(dti) 26 - 1212: 6(int) Load 1211 - 1213: 27(ptr) AccessChain 10(dti) 26 - 1214: 6(int) Load 1213 - 1215: 175(ptr) AccessChain 24(data) 25 1214 172 - 1216: 19(f64vec4) Load 1215 - 1217:206(f64vec3) VectorShuffle 1216 1216 0 1 2 - 1218:206(f64vec3) GroupNonUniformQuadSwap 35 1217 73 - 1219: 184(ptr) AccessChain 24(data) 25 1212 172 26 - 1220:18(float64_t) CompositeExtract 1218 0 - Store 1219 1220 - 1221: 184(ptr) AccessChain 24(data) 25 1212 172 58 - 1222:18(float64_t) CompositeExtract 1218 1 - Store 1221 1222 - 1223: 184(ptr) AccessChain 24(data) 25 1212 172 73 - 1224:18(float64_t) CompositeExtract 1218 2 - Store 1223 1224 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.wavequery.comp.out b/deps/glslang/Test/baseResults/hlsl.wavequery.comp.out deleted file mode 100644 index dcd11ae7..00000000 --- a/deps/glslang/Test/baseResults/hlsl.wavequery.comp.out +++ /dev/null @@ -1,117 +0,0 @@ -hlsl.wavequery.comp -Shader version: 500 -local_size = (32, 16, 1) -0:? Sequence -0:5 Function Definition: @CSMain( ( temp void) -0:5 Function Parameters: -0:? Sequence -0:6 move second child to first child ( temp uint) -0:6 indirect index (layout( row_major std430) buffer uint) -0:6 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:6 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:6 Constant: -0:6 0 (const uint) -0:6 '@gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:6 Test condition and select ( temp uint): no shortcircuit -0:6 Condition -0:6 subgroupElect ( temp bool) -0:6 true case -0:6 '@gl_SubgroupSize' ( in uint SubgroupSize) -0:6 false case -0:6 Constant: -0:6 0 (const uint) -0:5 Function Definition: CSMain( ( temp void) -0:5 Function Parameters: -0:? Sequence -0:5 Function Call: @CSMain( ( temp void) -0:? Linker Objects -0:? 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) - - -Linked compute stage: - - -Shader version: 500 -local_size = (32, 16, 1) -0:? Sequence -0:5 Function Definition: @CSMain( ( temp void) -0:5 Function Parameters: -0:? Sequence -0:6 move second child to first child ( temp uint) -0:6 indirect index (layout( row_major std430) buffer uint) -0:6 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) -0:6 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) -0:6 Constant: -0:6 0 (const uint) -0:6 '@gl_SubgroupInvocationID' ( in uint SubgroupInvocationID) -0:6 Test condition and select ( temp uint): no shortcircuit -0:6 Condition -0:6 subgroupElect ( temp bool) -0:6 true case -0:6 '@gl_SubgroupSize' ( in uint SubgroupSize) -0:6 false case -0:6 Constant: -0:6 0 (const uint) -0:5 Function Definition: CSMain( ( temp void) -0:5 Function Parameters: -0:? Sequence -0:5 Function Call: @CSMain( ( temp void) -0:? Linker Objects -0:? 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) - -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 28 - - Capability Shader - Capability GroupNonUniform - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "CSMain" 16 21 - ExecutionMode 4 LocalSize 32 16 1 - Source HLSL 500 - Name 4 "CSMain" - Name 6 "@CSMain(" - Name 10 "data" - MemberName 10(data) 0 "@data" - Name 12 "data" - Name 16 "@gl_SubgroupInvocationID" - Name 21 "@gl_SubgroupSize" - Decorate 9 ArrayStride 4 - MemberDecorate 10(data) 0 Offset 0 - Decorate 10(data) BufferBlock - Decorate 12(data) DescriptorSet 0 - Decorate 12(data) Binding 0 - Decorate 16(@gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId - Decorate 21(@gl_SubgroupSize) BuiltIn SubgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 8: TypeInt 32 0 - 9: TypeRuntimeArray 8(int) - 10(data): TypeStruct 9 - 11: TypePointer Uniform 10(data) - 12(data): 11(ptr) Variable Uniform - 13: TypeInt 32 1 - 14: 13(int) Constant 0 - 15: TypePointer Input 8(int) -16(@gl_SubgroupInvocationID): 15(ptr) Variable Input - 18: TypeBool - 19: 8(int) Constant 3 -21(@gl_SubgroupSize): 15(ptr) Variable Input - 23: 8(int) Constant 0 - 25: TypePointer Uniform 8(int) - 4(CSMain): 2 Function None 3 - 5: Label - 27: 2 FunctionCall 6(@CSMain() - Return - FunctionEnd - 6(@CSMain(): 2 Function None 3 - 7: Label - 17: 8(int) Load 16(@gl_SubgroupInvocationID) - 20: 18(bool) GroupNonUniformElect 19 - 22: 8(int) Load 21(@gl_SubgroupSize) - 24: 8(int) Select 20 22 23 - 26: 25(ptr) AccessChain 12(data) 14 17 - Store 26 24 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.wavequery.frag.out b/deps/glslang/Test/baseResults/hlsl.wavequery.frag.out deleted file mode 100644 index df1b5969..00000000 --- a/deps/glslang/Test/baseResults/hlsl.wavequery.frag.out +++ /dev/null @@ -1,122 +0,0 @@ -hlsl.wavequery.frag -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:2 Function Definition: @PixelShaderFunction( ( temp 4-component vector of float) -0:2 Function Parameters: -0:? Sequence -0:3 Test condition and select ( temp void) -0:3 Condition -0:3 subgroupElect ( temp bool) -0:3 true case -0:? Sequence -0:5 Branch: Return with expression -0:5 Constant: -0:5 1.000000 -0:5 2.000000 -0:5 3.000000 -0:5 4.000000 -0:3 false case -0:? Sequence -0:9 Branch: Return with expression -0:9 Constant: -0:9 4.000000 -0:9 3.000000 -0:9 2.000000 -0:9 1.000000 -0:2 Function Definition: PixelShaderFunction( ( temp void) -0:2 Function Parameters: -0:? Sequence -0:2 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:2 Function Call: @PixelShaderFunction( ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 500 -gl_FragCoord origin is upper left -0:? Sequence -0:2 Function Definition: @PixelShaderFunction( ( temp 4-component vector of float) -0:2 Function Parameters: -0:? Sequence -0:3 Test condition and select ( temp void) -0:3 Condition -0:3 subgroupElect ( temp bool) -0:3 true case -0:? Sequence -0:5 Branch: Return with expression -0:5 Constant: -0:5 1.000000 -0:5 2.000000 -0:5 3.000000 -0:5 4.000000 -0:3 false case -0:? Sequence -0:9 Branch: Return with expression -0:9 Constant: -0:9 4.000000 -0:9 3.000000 -0:9 2.000000 -0:9 1.000000 -0:2 Function Definition: PixelShaderFunction( ( temp void) -0:2 Function Parameters: -0:? Sequence -0:2 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:2 Function Call: @PixelShaderFunction( ( temp 4-component vector of float) -0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) - -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 30 - - Capability Shader - Capability GroupNonUniform - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 28 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "PixelShaderFunction" - Name 9 "@PixelShaderFunction(" - Name 28 "@entryPointOutput" - Decorate 28(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 11: TypeBool - 12: TypeInt 32 0 - 13: 12(int) Constant 3 - 17: 6(float) Constant 1065353216 - 18: 6(float) Constant 1073741824 - 19: 6(float) Constant 1077936128 - 20: 6(float) Constant 1082130432 - 21: 7(fvec4) ConstantComposite 17 18 19 20 - 24: 7(fvec4) ConstantComposite 20 19 18 17 - 27: TypePointer Output 7(fvec4) -28(@entryPointOutput): 27(ptr) Variable Output -4(PixelShaderFunction): 2 Function None 3 - 5: Label - 29: 7(fvec4) FunctionCall 9(@PixelShaderFunction() - Store 28(@entryPointOutput) 29 - Return - FunctionEnd -9(@PixelShaderFunction(): 7(fvec4) Function None 8 - 10: Label - 14: 11(bool) GroupNonUniformElect 13 - SelectionMerge 16 None - BranchConditional 14 15 23 - 15: Label - ReturnValue 21 - 23: Label - ReturnValue 24 - 16: Label - Unreachable - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.wavereduction.comp.out b/deps/glslang/Test/baseResults/hlsl.wavereduction.comp.out deleted file mode 100644 index 64a4e7c3..00000000 --- a/deps/glslang/Test/baseResults/hlsl.wavereduction.comp.out +++ /dev/null @@ -1,7375 +0,0 @@ -hlsl.wavereduction.comp -Shader version: 500 -local_size = (32, 16, 1) -0:? Sequence -0:13 Function Definition: @CSMain(vu3; ( temp void) -0:13 Function Parameters: -0:13 'dti' ( in 3-component vector of uint) -0:? Sequence -0:14 move second child to first child ( temp 4-component vector of uint) -0:14 u: direct index for structure ( temp 4-component vector of uint) -0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:14 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:14 Constant: -0:14 0 (const uint) -0:14 direct index ( temp uint) -0:14 'dti' ( in 3-component vector of uint) -0:14 Constant: -0:14 0 (const int) -0:14 Constant: -0:14 0 (const int) -0:14 subgroupAdd ( temp 4-component vector of uint) -0:14 u: direct index for structure ( temp 4-component vector of uint) -0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:14 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:14 Constant: -0:14 0 (const uint) -0:14 direct index ( temp uint) -0:14 'dti' ( in 3-component vector of uint) -0:14 Constant: -0:14 0 (const int) -0:14 Constant: -0:14 0 (const int) -0:15 move second child to first child ( temp uint) -0:15 direct index ( temp uint) -0:15 u: direct index for structure ( temp 4-component vector of uint) -0:15 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:15 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:15 Constant: -0:15 0 (const uint) -0:15 direct index ( temp uint) -0:15 'dti' ( in 3-component vector of uint) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0 (const int) -0:15 subgroupAdd ( temp uint) -0:15 direct index ( temp uint) -0:15 u: direct index for structure ( temp 4-component vector of uint) -0:15 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:15 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:15 Constant: -0:15 0 (const uint) -0:15 direct index ( temp uint) -0:15 'dti' ( in 3-component vector of uint) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0 (const int) -0:16 move second child to first child ( temp 2-component vector of uint) -0:16 vector swizzle ( temp 2-component vector of uint) -0:16 u: direct index for structure ( temp 4-component vector of uint) -0:16 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:16 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:16 Constant: -0:16 0 (const uint) -0:16 direct index ( temp uint) -0:16 'dti' ( in 3-component vector of uint) -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 0 (const int) -0:16 Sequence -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 1 (const int) -0:16 subgroupAdd ( temp 2-component vector of uint) -0:16 vector swizzle ( temp 2-component vector of uint) -0:16 u: direct index for structure ( temp 4-component vector of uint) -0:16 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:16 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:16 Constant: -0:16 0 (const uint) -0:16 direct index ( temp uint) -0:16 'dti' ( in 3-component vector of uint) -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 0 (const int) -0:16 Sequence -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 1 (const int) -0:17 move second child to first child ( temp 3-component vector of uint) -0:17 vector swizzle ( temp 3-component vector of uint) -0:17 u: direct index for structure ( temp 4-component vector of uint) -0:17 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:17 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:17 Constant: -0:17 0 (const uint) -0:17 direct index ( temp uint) -0:17 'dti' ( in 3-component vector of uint) -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 0 (const int) -0:17 Sequence -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 1 (const int) -0:17 Constant: -0:17 2 (const int) -0:17 subgroupAdd ( temp 3-component vector of uint) -0:17 vector swizzle ( temp 3-component vector of uint) -0:17 u: direct index for structure ( temp 4-component vector of uint) -0:17 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:17 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:17 Constant: -0:17 0 (const uint) -0:17 direct index ( temp uint) -0:17 'dti' ( in 3-component vector of uint) -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 0 (const int) -0:17 Sequence -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 1 (const int) -0:17 Constant: -0:17 2 (const int) -0:19 move second child to first child ( temp 4-component vector of int) -0:19 i: direct index for structure ( temp 4-component vector of int) -0:19 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:19 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:19 Constant: -0:19 0 (const uint) -0:19 direct index ( temp uint) -0:19 'dti' ( in 3-component vector of uint) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const int) -0:19 subgroupAdd ( temp 4-component vector of int) -0:19 i: direct index for structure ( temp 4-component vector of int) -0:19 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:19 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:19 Constant: -0:19 0 (const uint) -0:19 direct index ( temp uint) -0:19 'dti' ( in 3-component vector of uint) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const int) -0:20 move second child to first child ( temp int) -0:20 direct index ( temp int) -0:20 i: direct index for structure ( temp 4-component vector of int) -0:20 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:20 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:20 Constant: -0:20 0 (const uint) -0:20 direct index ( temp uint) -0:20 'dti' ( in 3-component vector of uint) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 subgroupAdd ( temp int) -0:20 direct index ( temp int) -0:20 i: direct index for structure ( temp 4-component vector of int) -0:20 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:20 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:20 Constant: -0:20 0 (const uint) -0:20 direct index ( temp uint) -0:20 'dti' ( in 3-component vector of uint) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 0 (const int) -0:21 move second child to first child ( temp 2-component vector of int) -0:21 vector swizzle ( temp 2-component vector of int) -0:21 i: direct index for structure ( temp 4-component vector of int) -0:21 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:21 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:21 Constant: -0:21 0 (const uint) -0:21 direct index ( temp uint) -0:21 'dti' ( in 3-component vector of uint) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 subgroupAdd ( temp 2-component vector of int) -0:21 vector swizzle ( temp 2-component vector of int) -0:21 i: direct index for structure ( temp 4-component vector of int) -0:21 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:21 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:21 Constant: -0:21 0 (const uint) -0:21 direct index ( temp uint) -0:21 'dti' ( in 3-component vector of uint) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:22 move second child to first child ( temp 3-component vector of int) -0:22 vector swizzle ( temp 3-component vector of int) -0:22 i: direct index for structure ( temp 4-component vector of int) -0:22 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:22 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:22 Constant: -0:22 0 (const uint) -0:22 direct index ( temp uint) -0:22 'dti' ( in 3-component vector of uint) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 Sequence -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 Constant: -0:22 2 (const int) -0:22 subgroupAdd ( temp 3-component vector of int) -0:22 vector swizzle ( temp 3-component vector of int) -0:22 i: direct index for structure ( temp 4-component vector of int) -0:22 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:22 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:22 Constant: -0:22 0 (const uint) -0:22 direct index ( temp uint) -0:22 'dti' ( in 3-component vector of uint) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 Sequence -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 Constant: -0:22 2 (const int) -0:24 move second child to first child ( temp 4-component vector of float) -0:24 f: direct index for structure ( temp 4-component vector of float) -0:24 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:24 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:24 Constant: -0:24 0 (const uint) -0:24 direct index ( temp uint) -0:24 'dti' ( in 3-component vector of uint) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 2 (const int) -0:24 subgroupAdd ( temp 4-component vector of float) -0:24 f: direct index for structure ( temp 4-component vector of float) -0:24 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:24 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:24 Constant: -0:24 0 (const uint) -0:24 direct index ( temp uint) -0:24 'dti' ( in 3-component vector of uint) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 2 (const int) -0:25 move second child to first child ( temp float) -0:25 direct index ( temp float) -0:25 f: direct index for structure ( temp 4-component vector of float) -0:25 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:25 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:25 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:25 Constant: -0:25 0 (const uint) -0:25 direct index ( temp uint) -0:25 'dti' ( in 3-component vector of uint) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 Constant: -0:25 0 (const int) -0:25 subgroupAdd ( temp float) -0:25 direct index ( temp float) -0:25 f: direct index for structure ( temp 4-component vector of float) -0:25 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:25 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:25 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:25 Constant: -0:25 0 (const uint) -0:25 direct index ( temp uint) -0:25 'dti' ( in 3-component vector of uint) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 Constant: -0:25 0 (const int) -0:26 move second child to first child ( temp 2-component vector of float) -0:26 vector swizzle ( temp 2-component vector of float) -0:26 f: direct index for structure ( temp 4-component vector of float) -0:26 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:26 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:26 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:26 Constant: -0:26 0 (const uint) -0:26 direct index ( temp uint) -0:26 'dti' ( in 3-component vector of uint) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 subgroupAdd ( temp 2-component vector of float) -0:26 vector swizzle ( temp 2-component vector of float) -0:26 f: direct index for structure ( temp 4-component vector of float) -0:26 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:26 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:26 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:26 Constant: -0:26 0 (const uint) -0:26 direct index ( temp uint) -0:26 'dti' ( in 3-component vector of uint) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:27 move second child to first child ( temp 3-component vector of float) -0:27 vector swizzle ( temp 3-component vector of float) -0:27 f: direct index for structure ( temp 4-component vector of float) -0:27 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:27 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:27 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:27 Constant: -0:27 0 (const uint) -0:27 direct index ( temp uint) -0:27 'dti' ( in 3-component vector of uint) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 2 (const int) -0:27 Sequence -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Constant: -0:27 2 (const int) -0:27 subgroupAdd ( temp 3-component vector of float) -0:27 vector swizzle ( temp 3-component vector of float) -0:27 f: direct index for structure ( temp 4-component vector of float) -0:27 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:27 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:27 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:27 Constant: -0:27 0 (const uint) -0:27 direct index ( temp uint) -0:27 'dti' ( in 3-component vector of uint) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 2 (const int) -0:27 Sequence -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Constant: -0:27 2 (const int) -0:29 move second child to first child ( temp 4-component vector of double) -0:29 d: direct index for structure ( temp 4-component vector of double) -0:29 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:29 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:29 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:29 Constant: -0:29 0 (const uint) -0:29 direct index ( temp uint) -0:29 'dti' ( in 3-component vector of uint) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 3 (const int) -0:29 subgroupAdd ( temp 4-component vector of double) -0:29 d: direct index for structure ( temp 4-component vector of double) -0:29 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:29 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:29 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:29 Constant: -0:29 0 (const uint) -0:29 direct index ( temp uint) -0:29 'dti' ( in 3-component vector of uint) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 3 (const int) -0:30 move second child to first child ( temp double) -0:30 direct index ( temp double) -0:30 d: direct index for structure ( temp 4-component vector of double) -0:30 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:30 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:30 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:30 Constant: -0:30 0 (const uint) -0:30 direct index ( temp uint) -0:30 'dti' ( in 3-component vector of uint) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 3 (const int) -0:30 Constant: -0:30 0 (const int) -0:30 subgroupAdd ( temp double) -0:30 direct index ( temp double) -0:30 d: direct index for structure ( temp 4-component vector of double) -0:30 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:30 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:30 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:30 Constant: -0:30 0 (const uint) -0:30 direct index ( temp uint) -0:30 'dti' ( in 3-component vector of uint) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 3 (const int) -0:30 Constant: -0:30 0 (const int) -0:31 move second child to first child ( temp 2-component vector of double) -0:31 vector swizzle ( temp 2-component vector of double) -0:31 d: direct index for structure ( temp 4-component vector of double) -0:31 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:31 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:31 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:31 Constant: -0:31 0 (const uint) -0:31 direct index ( temp uint) -0:31 'dti' ( in 3-component vector of uint) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 3 (const int) -0:31 Sequence -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 subgroupAdd ( temp 2-component vector of double) -0:31 vector swizzle ( temp 2-component vector of double) -0:31 d: direct index for structure ( temp 4-component vector of double) -0:31 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:31 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:31 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:31 Constant: -0:31 0 (const uint) -0:31 direct index ( temp uint) -0:31 'dti' ( in 3-component vector of uint) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 3 (const int) -0:31 Sequence -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:32 move second child to first child ( temp 3-component vector of double) -0:32 vector swizzle ( temp 3-component vector of double) -0:32 d: direct index for structure ( temp 4-component vector of double) -0:32 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:32 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:32 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:32 Constant: -0:32 0 (const uint) -0:32 direct index ( temp uint) -0:32 'dti' ( in 3-component vector of uint) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 3 (const int) -0:32 Sequence -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 1 (const int) -0:32 Constant: -0:32 2 (const int) -0:32 subgroupAdd ( temp 3-component vector of double) -0:32 vector swizzle ( temp 3-component vector of double) -0:32 d: direct index for structure ( temp 4-component vector of double) -0:32 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:32 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:32 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:32 Constant: -0:32 0 (const uint) -0:32 direct index ( temp uint) -0:32 'dti' ( in 3-component vector of uint) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 3 (const int) -0:32 Sequence -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 1 (const int) -0:32 Constant: -0:32 2 (const int) -0:34 move second child to first child ( temp 4-component vector of uint) -0:34 u: direct index for structure ( temp 4-component vector of uint) -0:34 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:34 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:34 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:34 Constant: -0:34 0 (const uint) -0:34 direct index ( temp uint) -0:34 'dti' ( in 3-component vector of uint) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 subgroupMul ( temp 4-component vector of uint) -0:34 u: direct index for structure ( temp 4-component vector of uint) -0:34 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:34 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:34 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:34 Constant: -0:34 0 (const uint) -0:34 direct index ( temp uint) -0:34 'dti' ( in 3-component vector of uint) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 0 (const int) -0:35 move second child to first child ( temp uint) -0:35 direct index ( temp uint) -0:35 u: direct index for structure ( temp 4-component vector of uint) -0:35 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:35 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:35 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:35 Constant: -0:35 0 (const uint) -0:35 direct index ( temp uint) -0:35 'dti' ( in 3-component vector of uint) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 subgroupMul ( temp uint) -0:35 direct index ( temp uint) -0:35 u: direct index for structure ( temp 4-component vector of uint) -0:35 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:35 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:35 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:35 Constant: -0:35 0 (const uint) -0:35 direct index ( temp uint) -0:35 'dti' ( in 3-component vector of uint) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 0 (const int) -0:36 move second child to first child ( temp 2-component vector of uint) -0:36 vector swizzle ( temp 2-component vector of uint) -0:36 u: direct index for structure ( temp 4-component vector of uint) -0:36 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:36 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:36 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:36 Constant: -0:36 0 (const uint) -0:36 direct index ( temp uint) -0:36 'dti' ( in 3-component vector of uint) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 subgroupMul ( temp 2-component vector of uint) -0:36 vector swizzle ( temp 2-component vector of uint) -0:36 u: direct index for structure ( temp 4-component vector of uint) -0:36 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:36 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:36 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:36 Constant: -0:36 0 (const uint) -0:36 direct index ( temp uint) -0:36 'dti' ( in 3-component vector of uint) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:37 move second child to first child ( temp 3-component vector of uint) -0:37 vector swizzle ( temp 3-component vector of uint) -0:37 u: direct index for structure ( temp 4-component vector of uint) -0:37 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:37 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:37 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:37 Constant: -0:37 0 (const uint) -0:37 direct index ( temp uint) -0:37 'dti' ( in 3-component vector of uint) -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 0 (const int) -0:37 Sequence -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 1 (const int) -0:37 Constant: -0:37 2 (const int) -0:37 subgroupMul ( temp 3-component vector of uint) -0:37 vector swizzle ( temp 3-component vector of uint) -0:37 u: direct index for structure ( temp 4-component vector of uint) -0:37 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:37 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:37 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:37 Constant: -0:37 0 (const uint) -0:37 direct index ( temp uint) -0:37 'dti' ( in 3-component vector of uint) -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 0 (const int) -0:37 Sequence -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 1 (const int) -0:37 Constant: -0:37 2 (const int) -0:39 move second child to first child ( temp 4-component vector of int) -0:39 i: direct index for structure ( temp 4-component vector of int) -0:39 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:39 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:39 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:39 Constant: -0:39 0 (const uint) -0:39 direct index ( temp uint) -0:39 'dti' ( in 3-component vector of uint) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 subgroupMul ( temp 4-component vector of int) -0:39 i: direct index for structure ( temp 4-component vector of int) -0:39 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:39 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:39 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:39 Constant: -0:39 0 (const uint) -0:39 direct index ( temp uint) -0:39 'dti' ( in 3-component vector of uint) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:40 move second child to first child ( temp int) -0:40 direct index ( temp int) -0:40 i: direct index for structure ( temp 4-component vector of int) -0:40 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:40 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:40 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:40 Constant: -0:40 0 (const uint) -0:40 direct index ( temp uint) -0:40 'dti' ( in 3-component vector of uint) -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 subgroupMul ( temp int) -0:40 direct index ( temp int) -0:40 i: direct index for structure ( temp 4-component vector of int) -0:40 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:40 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:40 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:40 Constant: -0:40 0 (const uint) -0:40 direct index ( temp uint) -0:40 'dti' ( in 3-component vector of uint) -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 0 (const int) -0:41 move second child to first child ( temp 2-component vector of int) -0:41 vector swizzle ( temp 2-component vector of int) -0:41 i: direct index for structure ( temp 4-component vector of int) -0:41 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:41 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:41 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:41 Constant: -0:41 0 (const uint) -0:41 direct index ( temp uint) -0:41 'dti' ( in 3-component vector of uint) -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 subgroupMul ( temp 2-component vector of int) -0:41 vector swizzle ( temp 2-component vector of int) -0:41 i: direct index for structure ( temp 4-component vector of int) -0:41 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:41 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:41 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:41 Constant: -0:41 0 (const uint) -0:41 direct index ( temp uint) -0:41 'dti' ( in 3-component vector of uint) -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:42 move second child to first child ( temp 3-component vector of int) -0:42 vector swizzle ( temp 3-component vector of int) -0:42 i: direct index for structure ( temp 4-component vector of int) -0:42 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:42 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:42 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:42 Constant: -0:42 0 (const uint) -0:42 direct index ( temp uint) -0:42 'dti' ( in 3-component vector of uint) -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Sequence -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 2 (const int) -0:42 subgroupMul ( temp 3-component vector of int) -0:42 vector swizzle ( temp 3-component vector of int) -0:42 i: direct index for structure ( temp 4-component vector of int) -0:42 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:42 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:42 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:42 Constant: -0:42 0 (const uint) -0:42 direct index ( temp uint) -0:42 'dti' ( in 3-component vector of uint) -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Sequence -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 2 (const int) -0:44 move second child to first child ( temp 4-component vector of float) -0:44 f: direct index for structure ( temp 4-component vector of float) -0:44 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:44 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:44 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:44 Constant: -0:44 0 (const uint) -0:44 direct index ( temp uint) -0:44 'dti' ( in 3-component vector of uint) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 2 (const int) -0:44 subgroupMul ( temp 4-component vector of float) -0:44 f: direct index for structure ( temp 4-component vector of float) -0:44 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:44 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:44 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:44 Constant: -0:44 0 (const uint) -0:44 direct index ( temp uint) -0:44 'dti' ( in 3-component vector of uint) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 2 (const int) -0:45 move second child to first child ( temp float) -0:45 direct index ( temp float) -0:45 f: direct index for structure ( temp 4-component vector of float) -0:45 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:45 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:45 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:45 Constant: -0:45 0 (const uint) -0:45 direct index ( temp uint) -0:45 'dti' ( in 3-component vector of uint) -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 Constant: -0:45 0 (const int) -0:45 subgroupMul ( temp float) -0:45 direct index ( temp float) -0:45 f: direct index for structure ( temp 4-component vector of float) -0:45 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:45 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:45 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:45 Constant: -0:45 0 (const uint) -0:45 direct index ( temp uint) -0:45 'dti' ( in 3-component vector of uint) -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 Constant: -0:45 0 (const int) -0:46 move second child to first child ( temp 2-component vector of float) -0:46 vector swizzle ( temp 2-component vector of float) -0:46 f: direct index for structure ( temp 4-component vector of float) -0:46 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:46 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:46 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:46 Constant: -0:46 0 (const uint) -0:46 direct index ( temp uint) -0:46 'dti' ( in 3-component vector of uint) -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 subgroupMul ( temp 2-component vector of float) -0:46 vector swizzle ( temp 2-component vector of float) -0:46 f: direct index for structure ( temp 4-component vector of float) -0:46 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:46 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:46 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:46 Constant: -0:46 0 (const uint) -0:46 direct index ( temp uint) -0:46 'dti' ( in 3-component vector of uint) -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:47 move second child to first child ( temp 3-component vector of float) -0:47 vector swizzle ( temp 3-component vector of float) -0:47 f: direct index for structure ( temp 4-component vector of float) -0:47 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:47 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:47 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:47 Constant: -0:47 0 (const uint) -0:47 direct index ( temp uint) -0:47 'dti' ( in 3-component vector of uint) -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 2 (const int) -0:47 Sequence -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 1 (const int) -0:47 Constant: -0:47 2 (const int) -0:47 subgroupMul ( temp 3-component vector of float) -0:47 vector swizzle ( temp 3-component vector of float) -0:47 f: direct index for structure ( temp 4-component vector of float) -0:47 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:47 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:47 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:47 Constant: -0:47 0 (const uint) -0:47 direct index ( temp uint) -0:47 'dti' ( in 3-component vector of uint) -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 2 (const int) -0:47 Sequence -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 1 (const int) -0:47 Constant: -0:47 2 (const int) -0:49 move second child to first child ( temp 4-component vector of double) -0:49 d: direct index for structure ( temp 4-component vector of double) -0:49 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:49 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:49 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:49 Constant: -0:49 0 (const uint) -0:49 direct index ( temp uint) -0:49 'dti' ( in 3-component vector of uint) -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 3 (const int) -0:49 subgroupMul ( temp 4-component vector of double) -0:49 d: direct index for structure ( temp 4-component vector of double) -0:49 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:49 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:49 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:49 Constant: -0:49 0 (const uint) -0:49 direct index ( temp uint) -0:49 'dti' ( in 3-component vector of uint) -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 3 (const int) -0:50 move second child to first child ( temp double) -0:50 direct index ( temp double) -0:50 d: direct index for structure ( temp 4-component vector of double) -0:50 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:50 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:50 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:50 Constant: -0:50 0 (const uint) -0:50 direct index ( temp uint) -0:50 'dti' ( in 3-component vector of uint) -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 3 (const int) -0:50 Constant: -0:50 0 (const int) -0:50 subgroupMul ( temp double) -0:50 direct index ( temp double) -0:50 d: direct index for structure ( temp 4-component vector of double) -0:50 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:50 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:50 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:50 Constant: -0:50 0 (const uint) -0:50 direct index ( temp uint) -0:50 'dti' ( in 3-component vector of uint) -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 3 (const int) -0:50 Constant: -0:50 0 (const int) -0:51 move second child to first child ( temp 2-component vector of double) -0:51 vector swizzle ( temp 2-component vector of double) -0:51 d: direct index for structure ( temp 4-component vector of double) -0:51 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:51 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:51 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:51 Constant: -0:51 0 (const uint) -0:51 direct index ( temp uint) -0:51 'dti' ( in 3-component vector of uint) -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 3 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 subgroupMul ( temp 2-component vector of double) -0:51 vector swizzle ( temp 2-component vector of double) -0:51 d: direct index for structure ( temp 4-component vector of double) -0:51 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:51 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:51 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:51 Constant: -0:51 0 (const uint) -0:51 direct index ( temp uint) -0:51 'dti' ( in 3-component vector of uint) -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 3 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:52 move second child to first child ( temp 3-component vector of double) -0:52 vector swizzle ( temp 3-component vector of double) -0:52 d: direct index for structure ( temp 4-component vector of double) -0:52 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:52 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:52 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:52 Constant: -0:52 0 (const uint) -0:52 direct index ( temp uint) -0:52 'dti' ( in 3-component vector of uint) -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 3 (const int) -0:52 Sequence -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 1 (const int) -0:52 Constant: -0:52 2 (const int) -0:52 subgroupMul ( temp 3-component vector of double) -0:52 vector swizzle ( temp 3-component vector of double) -0:52 d: direct index for structure ( temp 4-component vector of double) -0:52 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:52 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:52 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:52 Constant: -0:52 0 (const uint) -0:52 direct index ( temp uint) -0:52 'dti' ( in 3-component vector of uint) -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 3 (const int) -0:52 Sequence -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 1 (const int) -0:52 Constant: -0:52 2 (const int) -0:54 move second child to first child ( temp 4-component vector of uint) -0:54 u: direct index for structure ( temp 4-component vector of uint) -0:54 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:54 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:54 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:54 Constant: -0:54 0 (const uint) -0:54 direct index ( temp uint) -0:54 'dti' ( in 3-component vector of uint) -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 subgroupMin ( temp 4-component vector of uint) -0:54 u: direct index for structure ( temp 4-component vector of uint) -0:54 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:54 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:54 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:54 Constant: -0:54 0 (const uint) -0:54 direct index ( temp uint) -0:54 'dti' ( in 3-component vector of uint) -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 0 (const int) -0:55 move second child to first child ( temp uint) -0:55 direct index ( temp uint) -0:55 u: direct index for structure ( temp 4-component vector of uint) -0:55 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:55 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:55 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:55 Constant: -0:55 0 (const uint) -0:55 direct index ( temp uint) -0:55 'dti' ( in 3-component vector of uint) -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 0 (const int) -0:55 subgroupMin ( temp uint) -0:55 direct index ( temp uint) -0:55 u: direct index for structure ( temp 4-component vector of uint) -0:55 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:55 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:55 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:55 Constant: -0:55 0 (const uint) -0:55 direct index ( temp uint) -0:55 'dti' ( in 3-component vector of uint) -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 0 (const int) -0:56 move second child to first child ( temp 2-component vector of uint) -0:56 vector swizzle ( temp 2-component vector of uint) -0:56 u: direct index for structure ( temp 4-component vector of uint) -0:56 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:56 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:56 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:56 Constant: -0:56 0 (const uint) -0:56 direct index ( temp uint) -0:56 'dti' ( in 3-component vector of uint) -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 0 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 subgroupMin ( temp 2-component vector of uint) -0:56 vector swizzle ( temp 2-component vector of uint) -0:56 u: direct index for structure ( temp 4-component vector of uint) -0:56 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:56 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:56 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:56 Constant: -0:56 0 (const uint) -0:56 direct index ( temp uint) -0:56 'dti' ( in 3-component vector of uint) -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 0 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:57 move second child to first child ( temp 3-component vector of uint) -0:57 vector swizzle ( temp 3-component vector of uint) -0:57 u: direct index for structure ( temp 4-component vector of uint) -0:57 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:57 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:57 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:57 Constant: -0:57 0 (const uint) -0:57 direct index ( temp uint) -0:57 'dti' ( in 3-component vector of uint) -0:57 Constant: -0:57 0 (const int) -0:57 Constant: -0:57 0 (const int) -0:57 Sequence -0:57 Constant: -0:57 0 (const int) -0:57 Constant: -0:57 1 (const int) -0:57 Constant: -0:57 2 (const int) -0:57 subgroupMin ( temp 3-component vector of uint) -0:57 vector swizzle ( temp 3-component vector of uint) -0:57 u: direct index for structure ( temp 4-component vector of uint) -0:57 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:57 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:57 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:57 Constant: -0:57 0 (const uint) -0:57 direct index ( temp uint) -0:57 'dti' ( in 3-component vector of uint) -0:57 Constant: -0:57 0 (const int) -0:57 Constant: -0:57 0 (const int) -0:57 Sequence -0:57 Constant: -0:57 0 (const int) -0:57 Constant: -0:57 1 (const int) -0:57 Constant: -0:57 2 (const int) -0:59 move second child to first child ( temp 4-component vector of int) -0:59 i: direct index for structure ( temp 4-component vector of int) -0:59 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:59 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:59 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:59 Constant: -0:59 0 (const uint) -0:59 direct index ( temp uint) -0:59 'dti' ( in 3-component vector of uint) -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 1 (const int) -0:59 subgroupMin ( temp 4-component vector of int) -0:59 i: direct index for structure ( temp 4-component vector of int) -0:59 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:59 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:59 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:59 Constant: -0:59 0 (const uint) -0:59 direct index ( temp uint) -0:59 'dti' ( in 3-component vector of uint) -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 1 (const int) -0:60 move second child to first child ( temp int) -0:60 direct index ( temp int) -0:60 i: direct index for structure ( temp 4-component vector of int) -0:60 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:60 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:60 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:60 Constant: -0:60 0 (const uint) -0:60 direct index ( temp uint) -0:60 'dti' ( in 3-component vector of uint) -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 0 (const int) -0:60 subgroupMin ( temp int) -0:60 direct index ( temp int) -0:60 i: direct index for structure ( temp 4-component vector of int) -0:60 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:60 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:60 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:60 Constant: -0:60 0 (const uint) -0:60 direct index ( temp uint) -0:60 'dti' ( in 3-component vector of uint) -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 0 (const int) -0:61 move second child to first child ( temp 2-component vector of int) -0:61 vector swizzle ( temp 2-component vector of int) -0:61 i: direct index for structure ( temp 4-component vector of int) -0:61 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:61 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:61 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:61 Constant: -0:61 0 (const uint) -0:61 direct index ( temp uint) -0:61 'dti' ( in 3-component vector of uint) -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 Sequence -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 subgroupMin ( temp 2-component vector of int) -0:61 vector swizzle ( temp 2-component vector of int) -0:61 i: direct index for structure ( temp 4-component vector of int) -0:61 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:61 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:61 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:61 Constant: -0:61 0 (const uint) -0:61 direct index ( temp uint) -0:61 'dti' ( in 3-component vector of uint) -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 Sequence -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:62 move second child to first child ( temp 3-component vector of int) -0:62 vector swizzle ( temp 3-component vector of int) -0:62 i: direct index for structure ( temp 4-component vector of int) -0:62 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:62 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:62 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:62 Constant: -0:62 0 (const uint) -0:62 direct index ( temp uint) -0:62 'dti' ( in 3-component vector of uint) -0:62 Constant: -0:62 0 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 Sequence -0:62 Constant: -0:62 0 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 Constant: -0:62 2 (const int) -0:62 subgroupMin ( temp 3-component vector of int) -0:62 vector swizzle ( temp 3-component vector of int) -0:62 i: direct index for structure ( temp 4-component vector of int) -0:62 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:62 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:62 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:62 Constant: -0:62 0 (const uint) -0:62 direct index ( temp uint) -0:62 'dti' ( in 3-component vector of uint) -0:62 Constant: -0:62 0 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 Sequence -0:62 Constant: -0:62 0 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 Constant: -0:62 2 (const int) -0:64 move second child to first child ( temp 4-component vector of float) -0:64 f: direct index for structure ( temp 4-component vector of float) -0:64 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:64 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:64 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:64 Constant: -0:64 0 (const uint) -0:64 direct index ( temp uint) -0:64 'dti' ( in 3-component vector of uint) -0:64 Constant: -0:64 0 (const int) -0:64 Constant: -0:64 2 (const int) -0:64 subgroupMin ( temp 4-component vector of float) -0:64 f: direct index for structure ( temp 4-component vector of float) -0:64 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:64 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:64 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:64 Constant: -0:64 0 (const uint) -0:64 direct index ( temp uint) -0:64 'dti' ( in 3-component vector of uint) -0:64 Constant: -0:64 0 (const int) -0:64 Constant: -0:64 2 (const int) -0:65 move second child to first child ( temp float) -0:65 direct index ( temp float) -0:65 f: direct index for structure ( temp 4-component vector of float) -0:65 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:65 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:65 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:65 Constant: -0:65 0 (const uint) -0:65 direct index ( temp uint) -0:65 'dti' ( in 3-component vector of uint) -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 2 (const int) -0:65 Constant: -0:65 0 (const int) -0:65 subgroupMin ( temp float) -0:65 direct index ( temp float) -0:65 f: direct index for structure ( temp 4-component vector of float) -0:65 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:65 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:65 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:65 Constant: -0:65 0 (const uint) -0:65 direct index ( temp uint) -0:65 'dti' ( in 3-component vector of uint) -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 2 (const int) -0:65 Constant: -0:65 0 (const int) -0:66 move second child to first child ( temp 2-component vector of float) -0:66 vector swizzle ( temp 2-component vector of float) -0:66 f: direct index for structure ( temp 4-component vector of float) -0:66 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:66 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:66 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:66 Constant: -0:66 0 (const uint) -0:66 direct index ( temp uint) -0:66 'dti' ( in 3-component vector of uint) -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 2 (const int) -0:66 Sequence -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 subgroupMin ( temp 2-component vector of float) -0:66 vector swizzle ( temp 2-component vector of float) -0:66 f: direct index for structure ( temp 4-component vector of float) -0:66 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:66 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:66 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:66 Constant: -0:66 0 (const uint) -0:66 direct index ( temp uint) -0:66 'dti' ( in 3-component vector of uint) -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 2 (const int) -0:66 Sequence -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const int) -0:67 move second child to first child ( temp 3-component vector of float) -0:67 vector swizzle ( temp 3-component vector of float) -0:67 f: direct index for structure ( temp 4-component vector of float) -0:67 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:67 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:67 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:67 Constant: -0:67 0 (const uint) -0:67 direct index ( temp uint) -0:67 'dti' ( in 3-component vector of uint) -0:67 Constant: -0:67 0 (const int) -0:67 Constant: -0:67 2 (const int) -0:67 Sequence -0:67 Constant: -0:67 0 (const int) -0:67 Constant: -0:67 1 (const int) -0:67 Constant: -0:67 2 (const int) -0:67 subgroupMin ( temp 3-component vector of float) -0:67 vector swizzle ( temp 3-component vector of float) -0:67 f: direct index for structure ( temp 4-component vector of float) -0:67 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:67 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:67 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:67 Constant: -0:67 0 (const uint) -0:67 direct index ( temp uint) -0:67 'dti' ( in 3-component vector of uint) -0:67 Constant: -0:67 0 (const int) -0:67 Constant: -0:67 2 (const int) -0:67 Sequence -0:67 Constant: -0:67 0 (const int) -0:67 Constant: -0:67 1 (const int) -0:67 Constant: -0:67 2 (const int) -0:69 move second child to first child ( temp 4-component vector of double) -0:69 d: direct index for structure ( temp 4-component vector of double) -0:69 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:69 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:69 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:69 Constant: -0:69 0 (const uint) -0:69 direct index ( temp uint) -0:69 'dti' ( in 3-component vector of uint) -0:69 Constant: -0:69 0 (const int) -0:69 Constant: -0:69 3 (const int) -0:69 subgroupMin ( temp 4-component vector of double) -0:69 d: direct index for structure ( temp 4-component vector of double) -0:69 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:69 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:69 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:69 Constant: -0:69 0 (const uint) -0:69 direct index ( temp uint) -0:69 'dti' ( in 3-component vector of uint) -0:69 Constant: -0:69 0 (const int) -0:69 Constant: -0:69 3 (const int) -0:70 move second child to first child ( temp double) -0:70 direct index ( temp double) -0:70 d: direct index for structure ( temp 4-component vector of double) -0:70 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:70 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:70 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:70 Constant: -0:70 0 (const uint) -0:70 direct index ( temp uint) -0:70 'dti' ( in 3-component vector of uint) -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 3 (const int) -0:70 Constant: -0:70 0 (const int) -0:70 subgroupMin ( temp double) -0:70 direct index ( temp double) -0:70 d: direct index for structure ( temp 4-component vector of double) -0:70 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:70 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:70 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:70 Constant: -0:70 0 (const uint) -0:70 direct index ( temp uint) -0:70 'dti' ( in 3-component vector of uint) -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 3 (const int) -0:70 Constant: -0:70 0 (const int) -0:71 move second child to first child ( temp 2-component vector of double) -0:71 vector swizzle ( temp 2-component vector of double) -0:71 d: direct index for structure ( temp 4-component vector of double) -0:71 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:71 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:71 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:71 Constant: -0:71 0 (const uint) -0:71 direct index ( temp uint) -0:71 'dti' ( in 3-component vector of uint) -0:71 Constant: -0:71 0 (const int) -0:71 Constant: -0:71 3 (const int) -0:71 Sequence -0:71 Constant: -0:71 0 (const int) -0:71 Constant: -0:71 1 (const int) -0:71 subgroupMin ( temp 2-component vector of double) -0:71 vector swizzle ( temp 2-component vector of double) -0:71 d: direct index for structure ( temp 4-component vector of double) -0:71 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:71 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:71 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:71 Constant: -0:71 0 (const uint) -0:71 direct index ( temp uint) -0:71 'dti' ( in 3-component vector of uint) -0:71 Constant: -0:71 0 (const int) -0:71 Constant: -0:71 3 (const int) -0:71 Sequence -0:71 Constant: -0:71 0 (const int) -0:71 Constant: -0:71 1 (const int) -0:72 move second child to first child ( temp 3-component vector of double) -0:72 vector swizzle ( temp 3-component vector of double) -0:72 d: direct index for structure ( temp 4-component vector of double) -0:72 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:72 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:72 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:72 Constant: -0:72 0 (const uint) -0:72 direct index ( temp uint) -0:72 'dti' ( in 3-component vector of uint) -0:72 Constant: -0:72 0 (const int) -0:72 Constant: -0:72 3 (const int) -0:72 Sequence -0:72 Constant: -0:72 0 (const int) -0:72 Constant: -0:72 1 (const int) -0:72 Constant: -0:72 2 (const int) -0:72 subgroupMin ( temp 3-component vector of double) -0:72 vector swizzle ( temp 3-component vector of double) -0:72 d: direct index for structure ( temp 4-component vector of double) -0:72 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:72 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:72 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:72 Constant: -0:72 0 (const uint) -0:72 direct index ( temp uint) -0:72 'dti' ( in 3-component vector of uint) -0:72 Constant: -0:72 0 (const int) -0:72 Constant: -0:72 3 (const int) -0:72 Sequence -0:72 Constant: -0:72 0 (const int) -0:72 Constant: -0:72 1 (const int) -0:72 Constant: -0:72 2 (const int) -0:74 move second child to first child ( temp 4-component vector of uint) -0:74 u: direct index for structure ( temp 4-component vector of uint) -0:74 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:74 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:74 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:74 Constant: -0:74 0 (const uint) -0:74 direct index ( temp uint) -0:74 'dti' ( in 3-component vector of uint) -0:74 Constant: -0:74 0 (const int) -0:74 Constant: -0:74 0 (const int) -0:74 subgroupMax ( temp 4-component vector of uint) -0:74 u: direct index for structure ( temp 4-component vector of uint) -0:74 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:74 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:74 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:74 Constant: -0:74 0 (const uint) -0:74 direct index ( temp uint) -0:74 'dti' ( in 3-component vector of uint) -0:74 Constant: -0:74 0 (const int) -0:74 Constant: -0:74 0 (const int) -0:75 move second child to first child ( temp uint) -0:75 direct index ( temp uint) -0:75 u: direct index for structure ( temp 4-component vector of uint) -0:75 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:75 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:75 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:75 Constant: -0:75 0 (const uint) -0:75 direct index ( temp uint) -0:75 'dti' ( in 3-component vector of uint) -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 0 (const int) -0:75 subgroupMax ( temp uint) -0:75 direct index ( temp uint) -0:75 u: direct index for structure ( temp 4-component vector of uint) -0:75 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:75 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:75 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:75 Constant: -0:75 0 (const uint) -0:75 direct index ( temp uint) -0:75 'dti' ( in 3-component vector of uint) -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 0 (const int) -0:76 move second child to first child ( temp 2-component vector of uint) -0:76 vector swizzle ( temp 2-component vector of uint) -0:76 u: direct index for structure ( temp 4-component vector of uint) -0:76 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:76 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:76 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:76 Constant: -0:76 0 (const uint) -0:76 direct index ( temp uint) -0:76 'dti' ( in 3-component vector of uint) -0:76 Constant: -0:76 0 (const int) -0:76 Constant: -0:76 0 (const int) -0:76 Sequence -0:76 Constant: -0:76 0 (const int) -0:76 Constant: -0:76 1 (const int) -0:76 subgroupMax ( temp 2-component vector of uint) -0:76 vector swizzle ( temp 2-component vector of uint) -0:76 u: direct index for structure ( temp 4-component vector of uint) -0:76 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:76 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:76 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:76 Constant: -0:76 0 (const uint) -0:76 direct index ( temp uint) -0:76 'dti' ( in 3-component vector of uint) -0:76 Constant: -0:76 0 (const int) -0:76 Constant: -0:76 0 (const int) -0:76 Sequence -0:76 Constant: -0:76 0 (const int) -0:76 Constant: -0:76 1 (const int) -0:77 move second child to first child ( temp 3-component vector of uint) -0:77 vector swizzle ( temp 3-component vector of uint) -0:77 u: direct index for structure ( temp 4-component vector of uint) -0:77 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:77 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:77 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:77 Constant: -0:77 0 (const uint) -0:77 direct index ( temp uint) -0:77 'dti' ( in 3-component vector of uint) -0:77 Constant: -0:77 0 (const int) -0:77 Constant: -0:77 0 (const int) -0:77 Sequence -0:77 Constant: -0:77 0 (const int) -0:77 Constant: -0:77 1 (const int) -0:77 Constant: -0:77 2 (const int) -0:77 subgroupMax ( temp 3-component vector of uint) -0:77 vector swizzle ( temp 3-component vector of uint) -0:77 u: direct index for structure ( temp 4-component vector of uint) -0:77 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:77 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:77 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:77 Constant: -0:77 0 (const uint) -0:77 direct index ( temp uint) -0:77 'dti' ( in 3-component vector of uint) -0:77 Constant: -0:77 0 (const int) -0:77 Constant: -0:77 0 (const int) -0:77 Sequence -0:77 Constant: -0:77 0 (const int) -0:77 Constant: -0:77 1 (const int) -0:77 Constant: -0:77 2 (const int) -0:79 move second child to first child ( temp 4-component vector of int) -0:79 i: direct index for structure ( temp 4-component vector of int) -0:79 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:79 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:79 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:79 Constant: -0:79 0 (const uint) -0:79 direct index ( temp uint) -0:79 'dti' ( in 3-component vector of uint) -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 1 (const int) -0:79 subgroupMax ( temp 4-component vector of int) -0:79 i: direct index for structure ( temp 4-component vector of int) -0:79 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:79 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:79 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:79 Constant: -0:79 0 (const uint) -0:79 direct index ( temp uint) -0:79 'dti' ( in 3-component vector of uint) -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 1 (const int) -0:80 move second child to first child ( temp int) -0:80 direct index ( temp int) -0:80 i: direct index for structure ( temp 4-component vector of int) -0:80 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:80 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:80 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:80 Constant: -0:80 0 (const uint) -0:80 direct index ( temp uint) -0:80 'dti' ( in 3-component vector of uint) -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 1 (const int) -0:80 Constant: -0:80 0 (const int) -0:80 subgroupMax ( temp int) -0:80 direct index ( temp int) -0:80 i: direct index for structure ( temp 4-component vector of int) -0:80 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:80 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:80 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:80 Constant: -0:80 0 (const uint) -0:80 direct index ( temp uint) -0:80 'dti' ( in 3-component vector of uint) -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 1 (const int) -0:80 Constant: -0:80 0 (const int) -0:81 move second child to first child ( temp 2-component vector of int) -0:81 vector swizzle ( temp 2-component vector of int) -0:81 i: direct index for structure ( temp 4-component vector of int) -0:81 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:81 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:81 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:81 Constant: -0:81 0 (const uint) -0:81 direct index ( temp uint) -0:81 'dti' ( in 3-component vector of uint) -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 1 (const int) -0:81 Sequence -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 1 (const int) -0:81 subgroupMax ( temp 2-component vector of int) -0:81 vector swizzle ( temp 2-component vector of int) -0:81 i: direct index for structure ( temp 4-component vector of int) -0:81 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:81 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:81 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:81 Constant: -0:81 0 (const uint) -0:81 direct index ( temp uint) -0:81 'dti' ( in 3-component vector of uint) -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 1 (const int) -0:81 Sequence -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 1 (const int) -0:82 move second child to first child ( temp 3-component vector of int) -0:82 vector swizzle ( temp 3-component vector of int) -0:82 i: direct index for structure ( temp 4-component vector of int) -0:82 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:82 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:82 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:82 Constant: -0:82 0 (const uint) -0:82 direct index ( temp uint) -0:82 'dti' ( in 3-component vector of uint) -0:82 Constant: -0:82 0 (const int) -0:82 Constant: -0:82 1 (const int) -0:82 Sequence -0:82 Constant: -0:82 0 (const int) -0:82 Constant: -0:82 1 (const int) -0:82 Constant: -0:82 2 (const int) -0:82 subgroupMax ( temp 3-component vector of int) -0:82 vector swizzle ( temp 3-component vector of int) -0:82 i: direct index for structure ( temp 4-component vector of int) -0:82 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:82 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:82 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:82 Constant: -0:82 0 (const uint) -0:82 direct index ( temp uint) -0:82 'dti' ( in 3-component vector of uint) -0:82 Constant: -0:82 0 (const int) -0:82 Constant: -0:82 1 (const int) -0:82 Sequence -0:82 Constant: -0:82 0 (const int) -0:82 Constant: -0:82 1 (const int) -0:82 Constant: -0:82 2 (const int) -0:84 move second child to first child ( temp 4-component vector of float) -0:84 f: direct index for structure ( temp 4-component vector of float) -0:84 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:84 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:84 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:84 Constant: -0:84 0 (const uint) -0:84 direct index ( temp uint) -0:84 'dti' ( in 3-component vector of uint) -0:84 Constant: -0:84 0 (const int) -0:84 Constant: -0:84 2 (const int) -0:84 subgroupMax ( temp 4-component vector of float) -0:84 f: direct index for structure ( temp 4-component vector of float) -0:84 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:84 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:84 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:84 Constant: -0:84 0 (const uint) -0:84 direct index ( temp uint) -0:84 'dti' ( in 3-component vector of uint) -0:84 Constant: -0:84 0 (const int) -0:84 Constant: -0:84 2 (const int) -0:85 move second child to first child ( temp float) -0:85 direct index ( temp float) -0:85 f: direct index for structure ( temp 4-component vector of float) -0:85 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:85 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:85 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:85 Constant: -0:85 0 (const uint) -0:85 direct index ( temp uint) -0:85 'dti' ( in 3-component vector of uint) -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 2 (const int) -0:85 Constant: -0:85 0 (const int) -0:85 subgroupMax ( temp float) -0:85 direct index ( temp float) -0:85 f: direct index for structure ( temp 4-component vector of float) -0:85 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:85 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:85 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:85 Constant: -0:85 0 (const uint) -0:85 direct index ( temp uint) -0:85 'dti' ( in 3-component vector of uint) -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 2 (const int) -0:85 Constant: -0:85 0 (const int) -0:86 move second child to first child ( temp 2-component vector of float) -0:86 vector swizzle ( temp 2-component vector of float) -0:86 f: direct index for structure ( temp 4-component vector of float) -0:86 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:86 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:86 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:86 Constant: -0:86 0 (const uint) -0:86 direct index ( temp uint) -0:86 'dti' ( in 3-component vector of uint) -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 2 (const int) -0:86 Sequence -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 1 (const int) -0:86 subgroupMax ( temp 2-component vector of float) -0:86 vector swizzle ( temp 2-component vector of float) -0:86 f: direct index for structure ( temp 4-component vector of float) -0:86 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:86 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:86 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:86 Constant: -0:86 0 (const uint) -0:86 direct index ( temp uint) -0:86 'dti' ( in 3-component vector of uint) -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 2 (const int) -0:86 Sequence -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 1 (const int) -0:87 move second child to first child ( temp 3-component vector of float) -0:87 vector swizzle ( temp 3-component vector of float) -0:87 f: direct index for structure ( temp 4-component vector of float) -0:87 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:87 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:87 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:87 Constant: -0:87 0 (const uint) -0:87 direct index ( temp uint) -0:87 'dti' ( in 3-component vector of uint) -0:87 Constant: -0:87 0 (const int) -0:87 Constant: -0:87 2 (const int) -0:87 Sequence -0:87 Constant: -0:87 0 (const int) -0:87 Constant: -0:87 1 (const int) -0:87 Constant: -0:87 2 (const int) -0:87 subgroupMax ( temp 3-component vector of float) -0:87 vector swizzle ( temp 3-component vector of float) -0:87 f: direct index for structure ( temp 4-component vector of float) -0:87 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:87 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:87 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:87 Constant: -0:87 0 (const uint) -0:87 direct index ( temp uint) -0:87 'dti' ( in 3-component vector of uint) -0:87 Constant: -0:87 0 (const int) -0:87 Constant: -0:87 2 (const int) -0:87 Sequence -0:87 Constant: -0:87 0 (const int) -0:87 Constant: -0:87 1 (const int) -0:87 Constant: -0:87 2 (const int) -0:89 move second child to first child ( temp 4-component vector of double) -0:89 d: direct index for structure ( temp 4-component vector of double) -0:89 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:89 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:89 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:89 Constant: -0:89 0 (const uint) -0:89 direct index ( temp uint) -0:89 'dti' ( in 3-component vector of uint) -0:89 Constant: -0:89 0 (const int) -0:89 Constant: -0:89 3 (const int) -0:89 subgroupMax ( temp 4-component vector of double) -0:89 d: direct index for structure ( temp 4-component vector of double) -0:89 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:89 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:89 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:89 Constant: -0:89 0 (const uint) -0:89 direct index ( temp uint) -0:89 'dti' ( in 3-component vector of uint) -0:89 Constant: -0:89 0 (const int) -0:89 Constant: -0:89 3 (const int) -0:90 move second child to first child ( temp double) -0:90 direct index ( temp double) -0:90 d: direct index for structure ( temp 4-component vector of double) -0:90 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:90 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:90 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:90 Constant: -0:90 0 (const uint) -0:90 direct index ( temp uint) -0:90 'dti' ( in 3-component vector of uint) -0:90 Constant: -0:90 0 (const int) -0:90 Constant: -0:90 3 (const int) -0:90 Constant: -0:90 0 (const int) -0:90 subgroupMax ( temp double) -0:90 direct index ( temp double) -0:90 d: direct index for structure ( temp 4-component vector of double) -0:90 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:90 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:90 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:90 Constant: -0:90 0 (const uint) -0:90 direct index ( temp uint) -0:90 'dti' ( in 3-component vector of uint) -0:90 Constant: -0:90 0 (const int) -0:90 Constant: -0:90 3 (const int) -0:90 Constant: -0:90 0 (const int) -0:91 move second child to first child ( temp 2-component vector of double) -0:91 vector swizzle ( temp 2-component vector of double) -0:91 d: direct index for structure ( temp 4-component vector of double) -0:91 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:91 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:91 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:91 Constant: -0:91 0 (const uint) -0:91 direct index ( temp uint) -0:91 'dti' ( in 3-component vector of uint) -0:91 Constant: -0:91 0 (const int) -0:91 Constant: -0:91 3 (const int) -0:91 Sequence -0:91 Constant: -0:91 0 (const int) -0:91 Constant: -0:91 1 (const int) -0:91 subgroupMax ( temp 2-component vector of double) -0:91 vector swizzle ( temp 2-component vector of double) -0:91 d: direct index for structure ( temp 4-component vector of double) -0:91 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:91 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:91 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:91 Constant: -0:91 0 (const uint) -0:91 direct index ( temp uint) -0:91 'dti' ( in 3-component vector of uint) -0:91 Constant: -0:91 0 (const int) -0:91 Constant: -0:91 3 (const int) -0:91 Sequence -0:91 Constant: -0:91 0 (const int) -0:91 Constant: -0:91 1 (const int) -0:92 move second child to first child ( temp 3-component vector of double) -0:92 vector swizzle ( temp 3-component vector of double) -0:92 d: direct index for structure ( temp 4-component vector of double) -0:92 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:92 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:92 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:92 Constant: -0:92 0 (const uint) -0:92 direct index ( temp uint) -0:92 'dti' ( in 3-component vector of uint) -0:92 Constant: -0:92 0 (const int) -0:92 Constant: -0:92 3 (const int) -0:92 Sequence -0:92 Constant: -0:92 0 (const int) -0:92 Constant: -0:92 1 (const int) -0:92 Constant: -0:92 2 (const int) -0:92 subgroupMax ( temp 3-component vector of double) -0:92 vector swizzle ( temp 3-component vector of double) -0:92 d: direct index for structure ( temp 4-component vector of double) -0:92 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:92 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:92 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:92 Constant: -0:92 0 (const uint) -0:92 direct index ( temp uint) -0:92 'dti' ( in 3-component vector of uint) -0:92 Constant: -0:92 0 (const int) -0:92 Constant: -0:92 3 (const int) -0:92 Sequence -0:92 Constant: -0:92 0 (const int) -0:92 Constant: -0:92 1 (const int) -0:92 Constant: -0:92 2 (const int) -0:94 move second child to first child ( temp 4-component vector of uint) -0:94 u: direct index for structure ( temp 4-component vector of uint) -0:94 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:94 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:94 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:94 Constant: -0:94 0 (const uint) -0:94 direct index ( temp uint) -0:94 'dti' ( in 3-component vector of uint) -0:94 Constant: -0:94 0 (const int) -0:94 Constant: -0:94 0 (const int) -0:94 subgroupAnd ( temp 4-component vector of uint) -0:94 u: direct index for structure ( temp 4-component vector of uint) -0:94 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:94 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:94 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:94 Constant: -0:94 0 (const uint) -0:94 direct index ( temp uint) -0:94 'dti' ( in 3-component vector of uint) -0:94 Constant: -0:94 0 (const int) -0:94 Constant: -0:94 0 (const int) -0:95 move second child to first child ( temp uint) -0:95 direct index ( temp uint) -0:95 u: direct index for structure ( temp 4-component vector of uint) -0:95 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:95 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:95 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:95 Constant: -0:95 0 (const uint) -0:95 direct index ( temp uint) -0:95 'dti' ( in 3-component vector of uint) -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 0 (const int) -0:95 subgroupAnd ( temp uint) -0:95 direct index ( temp uint) -0:95 u: direct index for structure ( temp 4-component vector of uint) -0:95 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:95 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:95 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:95 Constant: -0:95 0 (const uint) -0:95 direct index ( temp uint) -0:95 'dti' ( in 3-component vector of uint) -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 0 (const int) -0:96 move second child to first child ( temp 2-component vector of uint) -0:96 vector swizzle ( temp 2-component vector of uint) -0:96 u: direct index for structure ( temp 4-component vector of uint) -0:96 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:96 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:96 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:96 Constant: -0:96 0 (const uint) -0:96 direct index ( temp uint) -0:96 'dti' ( in 3-component vector of uint) -0:96 Constant: -0:96 0 (const int) -0:96 Constant: -0:96 0 (const int) -0:96 Sequence -0:96 Constant: -0:96 0 (const int) -0:96 Constant: -0:96 1 (const int) -0:96 subgroupAnd ( temp 2-component vector of uint) -0:96 vector swizzle ( temp 2-component vector of uint) -0:96 u: direct index for structure ( temp 4-component vector of uint) -0:96 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:96 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:96 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:96 Constant: -0:96 0 (const uint) -0:96 direct index ( temp uint) -0:96 'dti' ( in 3-component vector of uint) -0:96 Constant: -0:96 0 (const int) -0:96 Constant: -0:96 0 (const int) -0:96 Sequence -0:96 Constant: -0:96 0 (const int) -0:96 Constant: -0:96 1 (const int) -0:97 move second child to first child ( temp 3-component vector of uint) -0:97 vector swizzle ( temp 3-component vector of uint) -0:97 u: direct index for structure ( temp 4-component vector of uint) -0:97 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:97 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:97 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:97 Constant: -0:97 0 (const uint) -0:97 direct index ( temp uint) -0:97 'dti' ( in 3-component vector of uint) -0:97 Constant: -0:97 0 (const int) -0:97 Constant: -0:97 0 (const int) -0:97 Sequence -0:97 Constant: -0:97 0 (const int) -0:97 Constant: -0:97 1 (const int) -0:97 Constant: -0:97 2 (const int) -0:97 subgroupAnd ( temp 3-component vector of uint) -0:97 vector swizzle ( temp 3-component vector of uint) -0:97 u: direct index for structure ( temp 4-component vector of uint) -0:97 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:97 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:97 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:97 Constant: -0:97 0 (const uint) -0:97 direct index ( temp uint) -0:97 'dti' ( in 3-component vector of uint) -0:97 Constant: -0:97 0 (const int) -0:97 Constant: -0:97 0 (const int) -0:97 Sequence -0:97 Constant: -0:97 0 (const int) -0:97 Constant: -0:97 1 (const int) -0:97 Constant: -0:97 2 (const int) -0:99 move second child to first child ( temp 4-component vector of int) -0:99 i: direct index for structure ( temp 4-component vector of int) -0:99 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:99 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:99 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:99 Constant: -0:99 0 (const uint) -0:99 direct index ( temp uint) -0:99 'dti' ( in 3-component vector of uint) -0:99 Constant: -0:99 0 (const int) -0:99 Constant: -0:99 1 (const int) -0:99 subgroupAnd ( temp 4-component vector of int) -0:99 i: direct index for structure ( temp 4-component vector of int) -0:99 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:99 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:99 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:99 Constant: -0:99 0 (const uint) -0:99 direct index ( temp uint) -0:99 'dti' ( in 3-component vector of uint) -0:99 Constant: -0:99 0 (const int) -0:99 Constant: -0:99 1 (const int) -0:100 move second child to first child ( temp int) -0:100 direct index ( temp int) -0:100 i: direct index for structure ( temp 4-component vector of int) -0:100 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:100 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:100 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:100 Constant: -0:100 0 (const uint) -0:100 direct index ( temp uint) -0:100 'dti' ( in 3-component vector of uint) -0:100 Constant: -0:100 0 (const int) -0:100 Constant: -0:100 1 (const int) -0:100 Constant: -0:100 0 (const int) -0:100 subgroupAnd ( temp int) -0:100 direct index ( temp int) -0:100 i: direct index for structure ( temp 4-component vector of int) -0:100 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:100 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:100 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:100 Constant: -0:100 0 (const uint) -0:100 direct index ( temp uint) -0:100 'dti' ( in 3-component vector of uint) -0:100 Constant: -0:100 0 (const int) -0:100 Constant: -0:100 1 (const int) -0:100 Constant: -0:100 0 (const int) -0:101 move second child to first child ( temp 2-component vector of int) -0:101 vector swizzle ( temp 2-component vector of int) -0:101 i: direct index for structure ( temp 4-component vector of int) -0:101 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:101 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:101 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:101 Constant: -0:101 0 (const uint) -0:101 direct index ( temp uint) -0:101 'dti' ( in 3-component vector of uint) -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 1 (const int) -0:101 Sequence -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 1 (const int) -0:101 subgroupAnd ( temp 2-component vector of int) -0:101 vector swizzle ( temp 2-component vector of int) -0:101 i: direct index for structure ( temp 4-component vector of int) -0:101 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:101 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:101 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:101 Constant: -0:101 0 (const uint) -0:101 direct index ( temp uint) -0:101 'dti' ( in 3-component vector of uint) -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 1 (const int) -0:101 Sequence -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 1 (const int) -0:102 move second child to first child ( temp 3-component vector of int) -0:102 vector swizzle ( temp 3-component vector of int) -0:102 i: direct index for structure ( temp 4-component vector of int) -0:102 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:102 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:102 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:102 Constant: -0:102 0 (const uint) -0:102 direct index ( temp uint) -0:102 'dti' ( in 3-component vector of uint) -0:102 Constant: -0:102 0 (const int) -0:102 Constant: -0:102 1 (const int) -0:102 Sequence -0:102 Constant: -0:102 0 (const int) -0:102 Constant: -0:102 1 (const int) -0:102 Constant: -0:102 2 (const int) -0:102 subgroupAnd ( temp 3-component vector of int) -0:102 vector swizzle ( temp 3-component vector of int) -0:102 i: direct index for structure ( temp 4-component vector of int) -0:102 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:102 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:102 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:102 Constant: -0:102 0 (const uint) -0:102 direct index ( temp uint) -0:102 'dti' ( in 3-component vector of uint) -0:102 Constant: -0:102 0 (const int) -0:102 Constant: -0:102 1 (const int) -0:102 Sequence -0:102 Constant: -0:102 0 (const int) -0:102 Constant: -0:102 1 (const int) -0:102 Constant: -0:102 2 (const int) -0:104 move second child to first child ( temp 4-component vector of uint) -0:104 u: direct index for structure ( temp 4-component vector of uint) -0:104 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:104 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:104 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:104 Constant: -0:104 0 (const uint) -0:104 direct index ( temp uint) -0:104 'dti' ( in 3-component vector of uint) -0:104 Constant: -0:104 0 (const int) -0:104 Constant: -0:104 0 (const int) -0:104 subgroupOr ( temp 4-component vector of uint) -0:104 u: direct index for structure ( temp 4-component vector of uint) -0:104 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:104 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:104 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:104 Constant: -0:104 0 (const uint) -0:104 direct index ( temp uint) -0:104 'dti' ( in 3-component vector of uint) -0:104 Constant: -0:104 0 (const int) -0:104 Constant: -0:104 0 (const int) -0:105 move second child to first child ( temp uint) -0:105 direct index ( temp uint) -0:105 u: direct index for structure ( temp 4-component vector of uint) -0:105 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:105 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:105 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:105 Constant: -0:105 0 (const uint) -0:105 direct index ( temp uint) -0:105 'dti' ( in 3-component vector of uint) -0:105 Constant: -0:105 0 (const int) -0:105 Constant: -0:105 0 (const int) -0:105 Constant: -0:105 0 (const int) -0:105 subgroupOr ( temp uint) -0:105 direct index ( temp uint) -0:105 u: direct index for structure ( temp 4-component vector of uint) -0:105 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:105 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:105 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:105 Constant: -0:105 0 (const uint) -0:105 direct index ( temp uint) -0:105 'dti' ( in 3-component vector of uint) -0:105 Constant: -0:105 0 (const int) -0:105 Constant: -0:105 0 (const int) -0:105 Constant: -0:105 0 (const int) -0:106 move second child to first child ( temp 2-component vector of uint) -0:106 vector swizzle ( temp 2-component vector of uint) -0:106 u: direct index for structure ( temp 4-component vector of uint) -0:106 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:106 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:106 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:106 Constant: -0:106 0 (const uint) -0:106 direct index ( temp uint) -0:106 'dti' ( in 3-component vector of uint) -0:106 Constant: -0:106 0 (const int) -0:106 Constant: -0:106 0 (const int) -0:106 Sequence -0:106 Constant: -0:106 0 (const int) -0:106 Constant: -0:106 1 (const int) -0:106 subgroupOr ( temp 2-component vector of uint) -0:106 vector swizzle ( temp 2-component vector of uint) -0:106 u: direct index for structure ( temp 4-component vector of uint) -0:106 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:106 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:106 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:106 Constant: -0:106 0 (const uint) -0:106 direct index ( temp uint) -0:106 'dti' ( in 3-component vector of uint) -0:106 Constant: -0:106 0 (const int) -0:106 Constant: -0:106 0 (const int) -0:106 Sequence -0:106 Constant: -0:106 0 (const int) -0:106 Constant: -0:106 1 (const int) -0:107 move second child to first child ( temp 3-component vector of uint) -0:107 vector swizzle ( temp 3-component vector of uint) -0:107 u: direct index for structure ( temp 4-component vector of uint) -0:107 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:107 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:107 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:107 Constant: -0:107 0 (const uint) -0:107 direct index ( temp uint) -0:107 'dti' ( in 3-component vector of uint) -0:107 Constant: -0:107 0 (const int) -0:107 Constant: -0:107 0 (const int) -0:107 Sequence -0:107 Constant: -0:107 0 (const int) -0:107 Constant: -0:107 1 (const int) -0:107 Constant: -0:107 2 (const int) -0:107 subgroupOr ( temp 3-component vector of uint) -0:107 vector swizzle ( temp 3-component vector of uint) -0:107 u: direct index for structure ( temp 4-component vector of uint) -0:107 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:107 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:107 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:107 Constant: -0:107 0 (const uint) -0:107 direct index ( temp uint) -0:107 'dti' ( in 3-component vector of uint) -0:107 Constant: -0:107 0 (const int) -0:107 Constant: -0:107 0 (const int) -0:107 Sequence -0:107 Constant: -0:107 0 (const int) -0:107 Constant: -0:107 1 (const int) -0:107 Constant: -0:107 2 (const int) -0:109 move second child to first child ( temp 4-component vector of int) -0:109 i: direct index for structure ( temp 4-component vector of int) -0:109 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:109 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:109 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:109 Constant: -0:109 0 (const uint) -0:109 direct index ( temp uint) -0:109 'dti' ( in 3-component vector of uint) -0:109 Constant: -0:109 0 (const int) -0:109 Constant: -0:109 1 (const int) -0:109 subgroupOr ( temp 4-component vector of int) -0:109 i: direct index for structure ( temp 4-component vector of int) -0:109 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:109 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:109 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:109 Constant: -0:109 0 (const uint) -0:109 direct index ( temp uint) -0:109 'dti' ( in 3-component vector of uint) -0:109 Constant: -0:109 0 (const int) -0:109 Constant: -0:109 1 (const int) -0:110 move second child to first child ( temp int) -0:110 direct index ( temp int) -0:110 i: direct index for structure ( temp 4-component vector of int) -0:110 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:110 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:110 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:110 Constant: -0:110 0 (const uint) -0:110 direct index ( temp uint) -0:110 'dti' ( in 3-component vector of uint) -0:110 Constant: -0:110 0 (const int) -0:110 Constant: -0:110 1 (const int) -0:110 Constant: -0:110 0 (const int) -0:110 subgroupOr ( temp int) -0:110 direct index ( temp int) -0:110 i: direct index for structure ( temp 4-component vector of int) -0:110 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:110 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:110 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:110 Constant: -0:110 0 (const uint) -0:110 direct index ( temp uint) -0:110 'dti' ( in 3-component vector of uint) -0:110 Constant: -0:110 0 (const int) -0:110 Constant: -0:110 1 (const int) -0:110 Constant: -0:110 0 (const int) -0:111 move second child to first child ( temp 2-component vector of int) -0:111 vector swizzle ( temp 2-component vector of int) -0:111 i: direct index for structure ( temp 4-component vector of int) -0:111 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:111 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:111 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:111 Constant: -0:111 0 (const uint) -0:111 direct index ( temp uint) -0:111 'dti' ( in 3-component vector of uint) -0:111 Constant: -0:111 0 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 Sequence -0:111 Constant: -0:111 0 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 subgroupOr ( temp 2-component vector of int) -0:111 vector swizzle ( temp 2-component vector of int) -0:111 i: direct index for structure ( temp 4-component vector of int) -0:111 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:111 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:111 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:111 Constant: -0:111 0 (const uint) -0:111 direct index ( temp uint) -0:111 'dti' ( in 3-component vector of uint) -0:111 Constant: -0:111 0 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 Sequence -0:111 Constant: -0:111 0 (const int) -0:111 Constant: -0:111 1 (const int) -0:112 move second child to first child ( temp 3-component vector of int) -0:112 vector swizzle ( temp 3-component vector of int) -0:112 i: direct index for structure ( temp 4-component vector of int) -0:112 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:112 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:112 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:112 Constant: -0:112 0 (const uint) -0:112 direct index ( temp uint) -0:112 'dti' ( in 3-component vector of uint) -0:112 Constant: -0:112 0 (const int) -0:112 Constant: -0:112 1 (const int) -0:112 Sequence -0:112 Constant: -0:112 0 (const int) -0:112 Constant: -0:112 1 (const int) -0:112 Constant: -0:112 2 (const int) -0:112 subgroupOr ( temp 3-component vector of int) -0:112 vector swizzle ( temp 3-component vector of int) -0:112 i: direct index for structure ( temp 4-component vector of int) -0:112 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:112 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:112 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:112 Constant: -0:112 0 (const uint) -0:112 direct index ( temp uint) -0:112 'dti' ( in 3-component vector of uint) -0:112 Constant: -0:112 0 (const int) -0:112 Constant: -0:112 1 (const int) -0:112 Sequence -0:112 Constant: -0:112 0 (const int) -0:112 Constant: -0:112 1 (const int) -0:112 Constant: -0:112 2 (const int) -0:114 move second child to first child ( temp 4-component vector of uint) -0:114 u: direct index for structure ( temp 4-component vector of uint) -0:114 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:114 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:114 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:114 Constant: -0:114 0 (const uint) -0:114 direct index ( temp uint) -0:114 'dti' ( in 3-component vector of uint) -0:114 Constant: -0:114 0 (const int) -0:114 Constant: -0:114 0 (const int) -0:114 subgroupXor ( temp 4-component vector of uint) -0:114 u: direct index for structure ( temp 4-component vector of uint) -0:114 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:114 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:114 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:114 Constant: -0:114 0 (const uint) -0:114 direct index ( temp uint) -0:114 'dti' ( in 3-component vector of uint) -0:114 Constant: -0:114 0 (const int) -0:114 Constant: -0:114 0 (const int) -0:115 move second child to first child ( temp uint) -0:115 direct index ( temp uint) -0:115 u: direct index for structure ( temp 4-component vector of uint) -0:115 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:115 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:115 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:115 Constant: -0:115 0 (const uint) -0:115 direct index ( temp uint) -0:115 'dti' ( in 3-component vector of uint) -0:115 Constant: -0:115 0 (const int) -0:115 Constant: -0:115 0 (const int) -0:115 Constant: -0:115 0 (const int) -0:115 subgroupXor ( temp uint) -0:115 direct index ( temp uint) -0:115 u: direct index for structure ( temp 4-component vector of uint) -0:115 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:115 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:115 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:115 Constant: -0:115 0 (const uint) -0:115 direct index ( temp uint) -0:115 'dti' ( in 3-component vector of uint) -0:115 Constant: -0:115 0 (const int) -0:115 Constant: -0:115 0 (const int) -0:115 Constant: -0:115 0 (const int) -0:116 move second child to first child ( temp 2-component vector of uint) -0:116 vector swizzle ( temp 2-component vector of uint) -0:116 u: direct index for structure ( temp 4-component vector of uint) -0:116 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:116 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:116 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:116 Constant: -0:116 0 (const uint) -0:116 direct index ( temp uint) -0:116 'dti' ( in 3-component vector of uint) -0:116 Constant: -0:116 0 (const int) -0:116 Constant: -0:116 0 (const int) -0:116 Sequence -0:116 Constant: -0:116 0 (const int) -0:116 Constant: -0:116 1 (const int) -0:116 subgroupXor ( temp 2-component vector of uint) -0:116 vector swizzle ( temp 2-component vector of uint) -0:116 u: direct index for structure ( temp 4-component vector of uint) -0:116 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:116 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:116 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:116 Constant: -0:116 0 (const uint) -0:116 direct index ( temp uint) -0:116 'dti' ( in 3-component vector of uint) -0:116 Constant: -0:116 0 (const int) -0:116 Constant: -0:116 0 (const int) -0:116 Sequence -0:116 Constant: -0:116 0 (const int) -0:116 Constant: -0:116 1 (const int) -0:117 move second child to first child ( temp 3-component vector of uint) -0:117 vector swizzle ( temp 3-component vector of uint) -0:117 u: direct index for structure ( temp 4-component vector of uint) -0:117 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:117 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:117 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:117 Constant: -0:117 0 (const uint) -0:117 direct index ( temp uint) -0:117 'dti' ( in 3-component vector of uint) -0:117 Constant: -0:117 0 (const int) -0:117 Constant: -0:117 0 (const int) -0:117 Sequence -0:117 Constant: -0:117 0 (const int) -0:117 Constant: -0:117 1 (const int) -0:117 Constant: -0:117 2 (const int) -0:117 subgroupXor ( temp 3-component vector of uint) -0:117 vector swizzle ( temp 3-component vector of uint) -0:117 u: direct index for structure ( temp 4-component vector of uint) -0:117 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:117 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:117 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:117 Constant: -0:117 0 (const uint) -0:117 direct index ( temp uint) -0:117 'dti' ( in 3-component vector of uint) -0:117 Constant: -0:117 0 (const int) -0:117 Constant: -0:117 0 (const int) -0:117 Sequence -0:117 Constant: -0:117 0 (const int) -0:117 Constant: -0:117 1 (const int) -0:117 Constant: -0:117 2 (const int) -0:119 move second child to first child ( temp 4-component vector of int) -0:119 i: direct index for structure ( temp 4-component vector of int) -0:119 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:119 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:119 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:119 Constant: -0:119 0 (const uint) -0:119 direct index ( temp uint) -0:119 'dti' ( in 3-component vector of uint) -0:119 Constant: -0:119 0 (const int) -0:119 Constant: -0:119 1 (const int) -0:119 subgroupXor ( temp 4-component vector of int) -0:119 i: direct index for structure ( temp 4-component vector of int) -0:119 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:119 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:119 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:119 Constant: -0:119 0 (const uint) -0:119 direct index ( temp uint) -0:119 'dti' ( in 3-component vector of uint) -0:119 Constant: -0:119 0 (const int) -0:119 Constant: -0:119 1 (const int) -0:120 move second child to first child ( temp int) -0:120 direct index ( temp int) -0:120 i: direct index for structure ( temp 4-component vector of int) -0:120 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:120 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:120 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:120 Constant: -0:120 0 (const uint) -0:120 direct index ( temp uint) -0:120 'dti' ( in 3-component vector of uint) -0:120 Constant: -0:120 0 (const int) -0:120 Constant: -0:120 1 (const int) -0:120 Constant: -0:120 0 (const int) -0:120 subgroupXor ( temp int) -0:120 direct index ( temp int) -0:120 i: direct index for structure ( temp 4-component vector of int) -0:120 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:120 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:120 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:120 Constant: -0:120 0 (const uint) -0:120 direct index ( temp uint) -0:120 'dti' ( in 3-component vector of uint) -0:120 Constant: -0:120 0 (const int) -0:120 Constant: -0:120 1 (const int) -0:120 Constant: -0:120 0 (const int) -0:121 move second child to first child ( temp 2-component vector of int) -0:121 vector swizzle ( temp 2-component vector of int) -0:121 i: direct index for structure ( temp 4-component vector of int) -0:121 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:121 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:121 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:121 Constant: -0:121 0 (const uint) -0:121 direct index ( temp uint) -0:121 'dti' ( in 3-component vector of uint) -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 1 (const int) -0:121 Sequence -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 1 (const int) -0:121 subgroupXor ( temp 2-component vector of int) -0:121 vector swizzle ( temp 2-component vector of int) -0:121 i: direct index for structure ( temp 4-component vector of int) -0:121 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:121 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:121 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:121 Constant: -0:121 0 (const uint) -0:121 direct index ( temp uint) -0:121 'dti' ( in 3-component vector of uint) -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 1 (const int) -0:121 Sequence -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 1 (const int) -0:122 move second child to first child ( temp 3-component vector of int) -0:122 vector swizzle ( temp 3-component vector of int) -0:122 i: direct index for structure ( temp 4-component vector of int) -0:122 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:122 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:122 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:122 Constant: -0:122 0 (const uint) -0:122 direct index ( temp uint) -0:122 'dti' ( in 3-component vector of uint) -0:122 Constant: -0:122 0 (const int) -0:122 Constant: -0:122 1 (const int) -0:122 Sequence -0:122 Constant: -0:122 0 (const int) -0:122 Constant: -0:122 1 (const int) -0:122 Constant: -0:122 2 (const int) -0:122 subgroupXor ( temp 3-component vector of int) -0:122 vector swizzle ( temp 3-component vector of int) -0:122 i: direct index for structure ( temp 4-component vector of int) -0:122 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:122 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:122 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:122 Constant: -0:122 0 (const uint) -0:122 direct index ( temp uint) -0:122 'dti' ( in 3-component vector of uint) -0:122 Constant: -0:122 0 (const int) -0:122 Constant: -0:122 1 (const int) -0:122 Sequence -0:122 Constant: -0:122 0 (const int) -0:122 Constant: -0:122 1 (const int) -0:122 Constant: -0:122 2 (const int) -0:124 move second child to first child ( temp uint) -0:124 direct index ( temp uint) -0:124 u: direct index for structure ( temp 4-component vector of uint) -0:124 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:124 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:124 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:124 Constant: -0:124 0 (const uint) -0:124 direct index ( temp uint) -0:124 'dti' ( in 3-component vector of uint) -0:124 Constant: -0:124 0 (const int) -0:124 Constant: -0:124 0 (const int) -0:124 Constant: -0:124 0 (const int) -0:124 subgroupBallotBitCount ( temp uint) -0:124 subgroupBallot ( temp 4-component vector of uint) -0:124 Compare Equal ( temp bool) -0:124 direct index ( temp uint) -0:124 u: direct index for structure ( temp 4-component vector of uint) -0:124 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:124 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:124 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:124 Constant: -0:124 0 (const uint) -0:124 direct index ( temp uint) -0:124 'dti' ( in 3-component vector of uint) -0:124 Constant: -0:124 0 (const int) -0:124 Constant: -0:124 0 (const int) -0:124 Constant: -0:124 0 (const int) -0:124 Constant: -0:124 0 (const uint) -0:13 Function Definition: CSMain( ( temp void) -0:13 Function Parameters: -0:? Sequence -0:13 move second child to first child ( temp 3-component vector of uint) -0:? 'dti' ( temp 3-component vector of uint) -0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) -0:13 Function Call: @CSMain(vu3; ( temp void) -0:? 'dti' ( temp 3-component vector of uint) -0:? Linker Objects -0:? 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) - - -Linked compute stage: - - -Shader version: 500 -local_size = (32, 16, 1) -0:? Sequence -0:13 Function Definition: @CSMain(vu3; ( temp void) -0:13 Function Parameters: -0:13 'dti' ( in 3-component vector of uint) -0:? Sequence -0:14 move second child to first child ( temp 4-component vector of uint) -0:14 u: direct index for structure ( temp 4-component vector of uint) -0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:14 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:14 Constant: -0:14 0 (const uint) -0:14 direct index ( temp uint) -0:14 'dti' ( in 3-component vector of uint) -0:14 Constant: -0:14 0 (const int) -0:14 Constant: -0:14 0 (const int) -0:14 subgroupAdd ( temp 4-component vector of uint) -0:14 u: direct index for structure ( temp 4-component vector of uint) -0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:14 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:14 Constant: -0:14 0 (const uint) -0:14 direct index ( temp uint) -0:14 'dti' ( in 3-component vector of uint) -0:14 Constant: -0:14 0 (const int) -0:14 Constant: -0:14 0 (const int) -0:15 move second child to first child ( temp uint) -0:15 direct index ( temp uint) -0:15 u: direct index for structure ( temp 4-component vector of uint) -0:15 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:15 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:15 Constant: -0:15 0 (const uint) -0:15 direct index ( temp uint) -0:15 'dti' ( in 3-component vector of uint) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0 (const int) -0:15 subgroupAdd ( temp uint) -0:15 direct index ( temp uint) -0:15 u: direct index for structure ( temp 4-component vector of uint) -0:15 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:15 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:15 Constant: -0:15 0 (const uint) -0:15 direct index ( temp uint) -0:15 'dti' ( in 3-component vector of uint) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0 (const int) -0:15 Constant: -0:15 0 (const int) -0:16 move second child to first child ( temp 2-component vector of uint) -0:16 vector swizzle ( temp 2-component vector of uint) -0:16 u: direct index for structure ( temp 4-component vector of uint) -0:16 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:16 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:16 Constant: -0:16 0 (const uint) -0:16 direct index ( temp uint) -0:16 'dti' ( in 3-component vector of uint) -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 0 (const int) -0:16 Sequence -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 1 (const int) -0:16 subgroupAdd ( temp 2-component vector of uint) -0:16 vector swizzle ( temp 2-component vector of uint) -0:16 u: direct index for structure ( temp 4-component vector of uint) -0:16 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:16 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:16 Constant: -0:16 0 (const uint) -0:16 direct index ( temp uint) -0:16 'dti' ( in 3-component vector of uint) -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 0 (const int) -0:16 Sequence -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 1 (const int) -0:17 move second child to first child ( temp 3-component vector of uint) -0:17 vector swizzle ( temp 3-component vector of uint) -0:17 u: direct index for structure ( temp 4-component vector of uint) -0:17 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:17 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:17 Constant: -0:17 0 (const uint) -0:17 direct index ( temp uint) -0:17 'dti' ( in 3-component vector of uint) -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 0 (const int) -0:17 Sequence -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 1 (const int) -0:17 Constant: -0:17 2 (const int) -0:17 subgroupAdd ( temp 3-component vector of uint) -0:17 vector swizzle ( temp 3-component vector of uint) -0:17 u: direct index for structure ( temp 4-component vector of uint) -0:17 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:17 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:17 Constant: -0:17 0 (const uint) -0:17 direct index ( temp uint) -0:17 'dti' ( in 3-component vector of uint) -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 0 (const int) -0:17 Sequence -0:17 Constant: -0:17 0 (const int) -0:17 Constant: -0:17 1 (const int) -0:17 Constant: -0:17 2 (const int) -0:19 move second child to first child ( temp 4-component vector of int) -0:19 i: direct index for structure ( temp 4-component vector of int) -0:19 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:19 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:19 Constant: -0:19 0 (const uint) -0:19 direct index ( temp uint) -0:19 'dti' ( in 3-component vector of uint) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const int) -0:19 subgroupAdd ( temp 4-component vector of int) -0:19 i: direct index for structure ( temp 4-component vector of int) -0:19 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:19 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:19 Constant: -0:19 0 (const uint) -0:19 direct index ( temp uint) -0:19 'dti' ( in 3-component vector of uint) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 1 (const int) -0:20 move second child to first child ( temp int) -0:20 direct index ( temp int) -0:20 i: direct index for structure ( temp 4-component vector of int) -0:20 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:20 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:20 Constant: -0:20 0 (const uint) -0:20 direct index ( temp uint) -0:20 'dti' ( in 3-component vector of uint) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 0 (const int) -0:20 subgroupAdd ( temp int) -0:20 direct index ( temp int) -0:20 i: direct index for structure ( temp 4-component vector of int) -0:20 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:20 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:20 Constant: -0:20 0 (const uint) -0:20 direct index ( temp uint) -0:20 'dti' ( in 3-component vector of uint) -0:20 Constant: -0:20 0 (const int) -0:20 Constant: -0:20 1 (const int) -0:20 Constant: -0:20 0 (const int) -0:21 move second child to first child ( temp 2-component vector of int) -0:21 vector swizzle ( temp 2-component vector of int) -0:21 i: direct index for structure ( temp 4-component vector of int) -0:21 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:21 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:21 Constant: -0:21 0 (const uint) -0:21 direct index ( temp uint) -0:21 'dti' ( in 3-component vector of uint) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 subgroupAdd ( temp 2-component vector of int) -0:21 vector swizzle ( temp 2-component vector of int) -0:21 i: direct index for structure ( temp 4-component vector of int) -0:21 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:21 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:21 Constant: -0:21 0 (const uint) -0:21 direct index ( temp uint) -0:21 'dti' ( in 3-component vector of uint) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:21 Sequence -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 1 (const int) -0:22 move second child to first child ( temp 3-component vector of int) -0:22 vector swizzle ( temp 3-component vector of int) -0:22 i: direct index for structure ( temp 4-component vector of int) -0:22 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:22 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:22 Constant: -0:22 0 (const uint) -0:22 direct index ( temp uint) -0:22 'dti' ( in 3-component vector of uint) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 Sequence -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 Constant: -0:22 2 (const int) -0:22 subgroupAdd ( temp 3-component vector of int) -0:22 vector swizzle ( temp 3-component vector of int) -0:22 i: direct index for structure ( temp 4-component vector of int) -0:22 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:22 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:22 Constant: -0:22 0 (const uint) -0:22 direct index ( temp uint) -0:22 'dti' ( in 3-component vector of uint) -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 Sequence -0:22 Constant: -0:22 0 (const int) -0:22 Constant: -0:22 1 (const int) -0:22 Constant: -0:22 2 (const int) -0:24 move second child to first child ( temp 4-component vector of float) -0:24 f: direct index for structure ( temp 4-component vector of float) -0:24 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:24 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:24 Constant: -0:24 0 (const uint) -0:24 direct index ( temp uint) -0:24 'dti' ( in 3-component vector of uint) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 2 (const int) -0:24 subgroupAdd ( temp 4-component vector of float) -0:24 f: direct index for structure ( temp 4-component vector of float) -0:24 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:24 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:24 Constant: -0:24 0 (const uint) -0:24 direct index ( temp uint) -0:24 'dti' ( in 3-component vector of uint) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 2 (const int) -0:25 move second child to first child ( temp float) -0:25 direct index ( temp float) -0:25 f: direct index for structure ( temp 4-component vector of float) -0:25 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:25 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:25 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:25 Constant: -0:25 0 (const uint) -0:25 direct index ( temp uint) -0:25 'dti' ( in 3-component vector of uint) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 Constant: -0:25 0 (const int) -0:25 subgroupAdd ( temp float) -0:25 direct index ( temp float) -0:25 f: direct index for structure ( temp 4-component vector of float) -0:25 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:25 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:25 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:25 Constant: -0:25 0 (const uint) -0:25 direct index ( temp uint) -0:25 'dti' ( in 3-component vector of uint) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 Constant: -0:25 0 (const int) -0:26 move second child to first child ( temp 2-component vector of float) -0:26 vector swizzle ( temp 2-component vector of float) -0:26 f: direct index for structure ( temp 4-component vector of float) -0:26 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:26 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:26 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:26 Constant: -0:26 0 (const uint) -0:26 direct index ( temp uint) -0:26 'dti' ( in 3-component vector of uint) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:26 subgroupAdd ( temp 2-component vector of float) -0:26 vector swizzle ( temp 2-component vector of float) -0:26 f: direct index for structure ( temp 4-component vector of float) -0:26 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:26 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:26 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:26 Constant: -0:26 0 (const uint) -0:26 direct index ( temp uint) -0:26 'dti' ( in 3-component vector of uint) -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 2 (const int) -0:26 Sequence -0:26 Constant: -0:26 0 (const int) -0:26 Constant: -0:26 1 (const int) -0:27 move second child to first child ( temp 3-component vector of float) -0:27 vector swizzle ( temp 3-component vector of float) -0:27 f: direct index for structure ( temp 4-component vector of float) -0:27 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:27 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:27 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:27 Constant: -0:27 0 (const uint) -0:27 direct index ( temp uint) -0:27 'dti' ( in 3-component vector of uint) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 2 (const int) -0:27 Sequence -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Constant: -0:27 2 (const int) -0:27 subgroupAdd ( temp 3-component vector of float) -0:27 vector swizzle ( temp 3-component vector of float) -0:27 f: direct index for structure ( temp 4-component vector of float) -0:27 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:27 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:27 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:27 Constant: -0:27 0 (const uint) -0:27 direct index ( temp uint) -0:27 'dti' ( in 3-component vector of uint) -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 2 (const int) -0:27 Sequence -0:27 Constant: -0:27 0 (const int) -0:27 Constant: -0:27 1 (const int) -0:27 Constant: -0:27 2 (const int) -0:29 move second child to first child ( temp 4-component vector of double) -0:29 d: direct index for structure ( temp 4-component vector of double) -0:29 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:29 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:29 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:29 Constant: -0:29 0 (const uint) -0:29 direct index ( temp uint) -0:29 'dti' ( in 3-component vector of uint) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 3 (const int) -0:29 subgroupAdd ( temp 4-component vector of double) -0:29 d: direct index for structure ( temp 4-component vector of double) -0:29 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:29 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:29 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:29 Constant: -0:29 0 (const uint) -0:29 direct index ( temp uint) -0:29 'dti' ( in 3-component vector of uint) -0:29 Constant: -0:29 0 (const int) -0:29 Constant: -0:29 3 (const int) -0:30 move second child to first child ( temp double) -0:30 direct index ( temp double) -0:30 d: direct index for structure ( temp 4-component vector of double) -0:30 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:30 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:30 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:30 Constant: -0:30 0 (const uint) -0:30 direct index ( temp uint) -0:30 'dti' ( in 3-component vector of uint) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 3 (const int) -0:30 Constant: -0:30 0 (const int) -0:30 subgroupAdd ( temp double) -0:30 direct index ( temp double) -0:30 d: direct index for structure ( temp 4-component vector of double) -0:30 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:30 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:30 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:30 Constant: -0:30 0 (const uint) -0:30 direct index ( temp uint) -0:30 'dti' ( in 3-component vector of uint) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 3 (const int) -0:30 Constant: -0:30 0 (const int) -0:31 move second child to first child ( temp 2-component vector of double) -0:31 vector swizzle ( temp 2-component vector of double) -0:31 d: direct index for structure ( temp 4-component vector of double) -0:31 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:31 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:31 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:31 Constant: -0:31 0 (const uint) -0:31 direct index ( temp uint) -0:31 'dti' ( in 3-component vector of uint) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 3 (const int) -0:31 Sequence -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:31 subgroupAdd ( temp 2-component vector of double) -0:31 vector swizzle ( temp 2-component vector of double) -0:31 d: direct index for structure ( temp 4-component vector of double) -0:31 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:31 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:31 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:31 Constant: -0:31 0 (const uint) -0:31 direct index ( temp uint) -0:31 'dti' ( in 3-component vector of uint) -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 3 (const int) -0:31 Sequence -0:31 Constant: -0:31 0 (const int) -0:31 Constant: -0:31 1 (const int) -0:32 move second child to first child ( temp 3-component vector of double) -0:32 vector swizzle ( temp 3-component vector of double) -0:32 d: direct index for structure ( temp 4-component vector of double) -0:32 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:32 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:32 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:32 Constant: -0:32 0 (const uint) -0:32 direct index ( temp uint) -0:32 'dti' ( in 3-component vector of uint) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 3 (const int) -0:32 Sequence -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 1 (const int) -0:32 Constant: -0:32 2 (const int) -0:32 subgroupAdd ( temp 3-component vector of double) -0:32 vector swizzle ( temp 3-component vector of double) -0:32 d: direct index for structure ( temp 4-component vector of double) -0:32 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:32 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:32 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:32 Constant: -0:32 0 (const uint) -0:32 direct index ( temp uint) -0:32 'dti' ( in 3-component vector of uint) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 3 (const int) -0:32 Sequence -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 1 (const int) -0:32 Constant: -0:32 2 (const int) -0:34 move second child to first child ( temp 4-component vector of uint) -0:34 u: direct index for structure ( temp 4-component vector of uint) -0:34 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:34 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:34 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:34 Constant: -0:34 0 (const uint) -0:34 direct index ( temp uint) -0:34 'dti' ( in 3-component vector of uint) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 0 (const int) -0:34 subgroupMul ( temp 4-component vector of uint) -0:34 u: direct index for structure ( temp 4-component vector of uint) -0:34 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:34 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:34 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:34 Constant: -0:34 0 (const uint) -0:34 direct index ( temp uint) -0:34 'dti' ( in 3-component vector of uint) -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 0 (const int) -0:35 move second child to first child ( temp uint) -0:35 direct index ( temp uint) -0:35 u: direct index for structure ( temp 4-component vector of uint) -0:35 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:35 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:35 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:35 Constant: -0:35 0 (const uint) -0:35 direct index ( temp uint) -0:35 'dti' ( in 3-component vector of uint) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 subgroupMul ( temp uint) -0:35 direct index ( temp uint) -0:35 u: direct index for structure ( temp 4-component vector of uint) -0:35 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:35 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:35 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:35 Constant: -0:35 0 (const uint) -0:35 direct index ( temp uint) -0:35 'dti' ( in 3-component vector of uint) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 0 (const int) -0:35 Constant: -0:35 0 (const int) -0:36 move second child to first child ( temp 2-component vector of uint) -0:36 vector swizzle ( temp 2-component vector of uint) -0:36 u: direct index for structure ( temp 4-component vector of uint) -0:36 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:36 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:36 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:36 Constant: -0:36 0 (const uint) -0:36 direct index ( temp uint) -0:36 'dti' ( in 3-component vector of uint) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:36 subgroupMul ( temp 2-component vector of uint) -0:36 vector swizzle ( temp 2-component vector of uint) -0:36 u: direct index for structure ( temp 4-component vector of uint) -0:36 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:36 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:36 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:36 Constant: -0:36 0 (const uint) -0:36 direct index ( temp uint) -0:36 'dti' ( in 3-component vector of uint) -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 0 (const int) -0:36 Sequence -0:36 Constant: -0:36 0 (const int) -0:36 Constant: -0:36 1 (const int) -0:37 move second child to first child ( temp 3-component vector of uint) -0:37 vector swizzle ( temp 3-component vector of uint) -0:37 u: direct index for structure ( temp 4-component vector of uint) -0:37 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:37 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:37 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:37 Constant: -0:37 0 (const uint) -0:37 direct index ( temp uint) -0:37 'dti' ( in 3-component vector of uint) -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 0 (const int) -0:37 Sequence -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 1 (const int) -0:37 Constant: -0:37 2 (const int) -0:37 subgroupMul ( temp 3-component vector of uint) -0:37 vector swizzle ( temp 3-component vector of uint) -0:37 u: direct index for structure ( temp 4-component vector of uint) -0:37 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:37 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:37 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:37 Constant: -0:37 0 (const uint) -0:37 direct index ( temp uint) -0:37 'dti' ( in 3-component vector of uint) -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 0 (const int) -0:37 Sequence -0:37 Constant: -0:37 0 (const int) -0:37 Constant: -0:37 1 (const int) -0:37 Constant: -0:37 2 (const int) -0:39 move second child to first child ( temp 4-component vector of int) -0:39 i: direct index for structure ( temp 4-component vector of int) -0:39 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:39 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:39 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:39 Constant: -0:39 0 (const uint) -0:39 direct index ( temp uint) -0:39 'dti' ( in 3-component vector of uint) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 subgroupMul ( temp 4-component vector of int) -0:39 i: direct index for structure ( temp 4-component vector of int) -0:39 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:39 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:39 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:39 Constant: -0:39 0 (const uint) -0:39 direct index ( temp uint) -0:39 'dti' ( in 3-component vector of uint) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:40 move second child to first child ( temp int) -0:40 direct index ( temp int) -0:40 i: direct index for structure ( temp 4-component vector of int) -0:40 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:40 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:40 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:40 Constant: -0:40 0 (const uint) -0:40 direct index ( temp uint) -0:40 'dti' ( in 3-component vector of uint) -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 0 (const int) -0:40 subgroupMul ( temp int) -0:40 direct index ( temp int) -0:40 i: direct index for structure ( temp 4-component vector of int) -0:40 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:40 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:40 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:40 Constant: -0:40 0 (const uint) -0:40 direct index ( temp uint) -0:40 'dti' ( in 3-component vector of uint) -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 0 (const int) -0:41 move second child to first child ( temp 2-component vector of int) -0:41 vector swizzle ( temp 2-component vector of int) -0:41 i: direct index for structure ( temp 4-component vector of int) -0:41 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:41 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:41 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:41 Constant: -0:41 0 (const uint) -0:41 direct index ( temp uint) -0:41 'dti' ( in 3-component vector of uint) -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 subgroupMul ( temp 2-component vector of int) -0:41 vector swizzle ( temp 2-component vector of int) -0:41 i: direct index for structure ( temp 4-component vector of int) -0:41 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:41 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:41 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:41 Constant: -0:41 0 (const uint) -0:41 direct index ( temp uint) -0:41 'dti' ( in 3-component vector of uint) -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:42 move second child to first child ( temp 3-component vector of int) -0:42 vector swizzle ( temp 3-component vector of int) -0:42 i: direct index for structure ( temp 4-component vector of int) -0:42 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:42 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:42 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:42 Constant: -0:42 0 (const uint) -0:42 direct index ( temp uint) -0:42 'dti' ( in 3-component vector of uint) -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Sequence -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 2 (const int) -0:42 subgroupMul ( temp 3-component vector of int) -0:42 vector swizzle ( temp 3-component vector of int) -0:42 i: direct index for structure ( temp 4-component vector of int) -0:42 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:42 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:42 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:42 Constant: -0:42 0 (const uint) -0:42 direct index ( temp uint) -0:42 'dti' ( in 3-component vector of uint) -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Sequence -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 2 (const int) -0:44 move second child to first child ( temp 4-component vector of float) -0:44 f: direct index for structure ( temp 4-component vector of float) -0:44 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:44 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:44 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:44 Constant: -0:44 0 (const uint) -0:44 direct index ( temp uint) -0:44 'dti' ( in 3-component vector of uint) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 2 (const int) -0:44 subgroupMul ( temp 4-component vector of float) -0:44 f: direct index for structure ( temp 4-component vector of float) -0:44 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:44 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:44 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:44 Constant: -0:44 0 (const uint) -0:44 direct index ( temp uint) -0:44 'dti' ( in 3-component vector of uint) -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 2 (const int) -0:45 move second child to first child ( temp float) -0:45 direct index ( temp float) -0:45 f: direct index for structure ( temp 4-component vector of float) -0:45 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:45 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:45 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:45 Constant: -0:45 0 (const uint) -0:45 direct index ( temp uint) -0:45 'dti' ( in 3-component vector of uint) -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 Constant: -0:45 0 (const int) -0:45 subgroupMul ( temp float) -0:45 direct index ( temp float) -0:45 f: direct index for structure ( temp 4-component vector of float) -0:45 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:45 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:45 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:45 Constant: -0:45 0 (const uint) -0:45 direct index ( temp uint) -0:45 'dti' ( in 3-component vector of uint) -0:45 Constant: -0:45 0 (const int) -0:45 Constant: -0:45 2 (const int) -0:45 Constant: -0:45 0 (const int) -0:46 move second child to first child ( temp 2-component vector of float) -0:46 vector swizzle ( temp 2-component vector of float) -0:46 f: direct index for structure ( temp 4-component vector of float) -0:46 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:46 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:46 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:46 Constant: -0:46 0 (const uint) -0:46 direct index ( temp uint) -0:46 'dti' ( in 3-component vector of uint) -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:46 subgroupMul ( temp 2-component vector of float) -0:46 vector swizzle ( temp 2-component vector of float) -0:46 f: direct index for structure ( temp 4-component vector of float) -0:46 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:46 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:46 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:46 Constant: -0:46 0 (const uint) -0:46 direct index ( temp uint) -0:46 'dti' ( in 3-component vector of uint) -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 Sequence -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 1 (const int) -0:47 move second child to first child ( temp 3-component vector of float) -0:47 vector swizzle ( temp 3-component vector of float) -0:47 f: direct index for structure ( temp 4-component vector of float) -0:47 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:47 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:47 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:47 Constant: -0:47 0 (const uint) -0:47 direct index ( temp uint) -0:47 'dti' ( in 3-component vector of uint) -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 2 (const int) -0:47 Sequence -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 1 (const int) -0:47 Constant: -0:47 2 (const int) -0:47 subgroupMul ( temp 3-component vector of float) -0:47 vector swizzle ( temp 3-component vector of float) -0:47 f: direct index for structure ( temp 4-component vector of float) -0:47 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:47 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:47 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:47 Constant: -0:47 0 (const uint) -0:47 direct index ( temp uint) -0:47 'dti' ( in 3-component vector of uint) -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 2 (const int) -0:47 Sequence -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 1 (const int) -0:47 Constant: -0:47 2 (const int) -0:49 move second child to first child ( temp 4-component vector of double) -0:49 d: direct index for structure ( temp 4-component vector of double) -0:49 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:49 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:49 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:49 Constant: -0:49 0 (const uint) -0:49 direct index ( temp uint) -0:49 'dti' ( in 3-component vector of uint) -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 3 (const int) -0:49 subgroupMul ( temp 4-component vector of double) -0:49 d: direct index for structure ( temp 4-component vector of double) -0:49 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:49 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:49 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:49 Constant: -0:49 0 (const uint) -0:49 direct index ( temp uint) -0:49 'dti' ( in 3-component vector of uint) -0:49 Constant: -0:49 0 (const int) -0:49 Constant: -0:49 3 (const int) -0:50 move second child to first child ( temp double) -0:50 direct index ( temp double) -0:50 d: direct index for structure ( temp 4-component vector of double) -0:50 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:50 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:50 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:50 Constant: -0:50 0 (const uint) -0:50 direct index ( temp uint) -0:50 'dti' ( in 3-component vector of uint) -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 3 (const int) -0:50 Constant: -0:50 0 (const int) -0:50 subgroupMul ( temp double) -0:50 direct index ( temp double) -0:50 d: direct index for structure ( temp 4-component vector of double) -0:50 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:50 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:50 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:50 Constant: -0:50 0 (const uint) -0:50 direct index ( temp uint) -0:50 'dti' ( in 3-component vector of uint) -0:50 Constant: -0:50 0 (const int) -0:50 Constant: -0:50 3 (const int) -0:50 Constant: -0:50 0 (const int) -0:51 move second child to first child ( temp 2-component vector of double) -0:51 vector swizzle ( temp 2-component vector of double) -0:51 d: direct index for structure ( temp 4-component vector of double) -0:51 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:51 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:51 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:51 Constant: -0:51 0 (const uint) -0:51 direct index ( temp uint) -0:51 'dti' ( in 3-component vector of uint) -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 3 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:51 subgroupMul ( temp 2-component vector of double) -0:51 vector swizzle ( temp 2-component vector of double) -0:51 d: direct index for structure ( temp 4-component vector of double) -0:51 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:51 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:51 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:51 Constant: -0:51 0 (const uint) -0:51 direct index ( temp uint) -0:51 'dti' ( in 3-component vector of uint) -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 3 (const int) -0:51 Sequence -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 1 (const int) -0:52 move second child to first child ( temp 3-component vector of double) -0:52 vector swizzle ( temp 3-component vector of double) -0:52 d: direct index for structure ( temp 4-component vector of double) -0:52 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:52 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:52 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:52 Constant: -0:52 0 (const uint) -0:52 direct index ( temp uint) -0:52 'dti' ( in 3-component vector of uint) -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 3 (const int) -0:52 Sequence -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 1 (const int) -0:52 Constant: -0:52 2 (const int) -0:52 subgroupMul ( temp 3-component vector of double) -0:52 vector swizzle ( temp 3-component vector of double) -0:52 d: direct index for structure ( temp 4-component vector of double) -0:52 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:52 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:52 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:52 Constant: -0:52 0 (const uint) -0:52 direct index ( temp uint) -0:52 'dti' ( in 3-component vector of uint) -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 3 (const int) -0:52 Sequence -0:52 Constant: -0:52 0 (const int) -0:52 Constant: -0:52 1 (const int) -0:52 Constant: -0:52 2 (const int) -0:54 move second child to first child ( temp 4-component vector of uint) -0:54 u: direct index for structure ( temp 4-component vector of uint) -0:54 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:54 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:54 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:54 Constant: -0:54 0 (const uint) -0:54 direct index ( temp uint) -0:54 'dti' ( in 3-component vector of uint) -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 0 (const int) -0:54 subgroupMin ( temp 4-component vector of uint) -0:54 u: direct index for structure ( temp 4-component vector of uint) -0:54 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:54 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:54 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:54 Constant: -0:54 0 (const uint) -0:54 direct index ( temp uint) -0:54 'dti' ( in 3-component vector of uint) -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 0 (const int) -0:55 move second child to first child ( temp uint) -0:55 direct index ( temp uint) -0:55 u: direct index for structure ( temp 4-component vector of uint) -0:55 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:55 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:55 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:55 Constant: -0:55 0 (const uint) -0:55 direct index ( temp uint) -0:55 'dti' ( in 3-component vector of uint) -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 0 (const int) -0:55 subgroupMin ( temp uint) -0:55 direct index ( temp uint) -0:55 u: direct index for structure ( temp 4-component vector of uint) -0:55 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:55 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:55 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:55 Constant: -0:55 0 (const uint) -0:55 direct index ( temp uint) -0:55 'dti' ( in 3-component vector of uint) -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 0 (const int) -0:56 move second child to first child ( temp 2-component vector of uint) -0:56 vector swizzle ( temp 2-component vector of uint) -0:56 u: direct index for structure ( temp 4-component vector of uint) -0:56 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:56 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:56 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:56 Constant: -0:56 0 (const uint) -0:56 direct index ( temp uint) -0:56 'dti' ( in 3-component vector of uint) -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 0 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 subgroupMin ( temp 2-component vector of uint) -0:56 vector swizzle ( temp 2-component vector of uint) -0:56 u: direct index for structure ( temp 4-component vector of uint) -0:56 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:56 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:56 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:56 Constant: -0:56 0 (const uint) -0:56 direct index ( temp uint) -0:56 'dti' ( in 3-component vector of uint) -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 0 (const int) -0:56 Sequence -0:56 Constant: -0:56 0 (const int) -0:56 Constant: -0:56 1 (const int) -0:57 move second child to first child ( temp 3-component vector of uint) -0:57 vector swizzle ( temp 3-component vector of uint) -0:57 u: direct index for structure ( temp 4-component vector of uint) -0:57 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:57 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:57 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:57 Constant: -0:57 0 (const uint) -0:57 direct index ( temp uint) -0:57 'dti' ( in 3-component vector of uint) -0:57 Constant: -0:57 0 (const int) -0:57 Constant: -0:57 0 (const int) -0:57 Sequence -0:57 Constant: -0:57 0 (const int) -0:57 Constant: -0:57 1 (const int) -0:57 Constant: -0:57 2 (const int) -0:57 subgroupMin ( temp 3-component vector of uint) -0:57 vector swizzle ( temp 3-component vector of uint) -0:57 u: direct index for structure ( temp 4-component vector of uint) -0:57 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:57 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:57 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:57 Constant: -0:57 0 (const uint) -0:57 direct index ( temp uint) -0:57 'dti' ( in 3-component vector of uint) -0:57 Constant: -0:57 0 (const int) -0:57 Constant: -0:57 0 (const int) -0:57 Sequence -0:57 Constant: -0:57 0 (const int) -0:57 Constant: -0:57 1 (const int) -0:57 Constant: -0:57 2 (const int) -0:59 move second child to first child ( temp 4-component vector of int) -0:59 i: direct index for structure ( temp 4-component vector of int) -0:59 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:59 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:59 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:59 Constant: -0:59 0 (const uint) -0:59 direct index ( temp uint) -0:59 'dti' ( in 3-component vector of uint) -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 1 (const int) -0:59 subgroupMin ( temp 4-component vector of int) -0:59 i: direct index for structure ( temp 4-component vector of int) -0:59 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:59 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:59 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:59 Constant: -0:59 0 (const uint) -0:59 direct index ( temp uint) -0:59 'dti' ( in 3-component vector of uint) -0:59 Constant: -0:59 0 (const int) -0:59 Constant: -0:59 1 (const int) -0:60 move second child to first child ( temp int) -0:60 direct index ( temp int) -0:60 i: direct index for structure ( temp 4-component vector of int) -0:60 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:60 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:60 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:60 Constant: -0:60 0 (const uint) -0:60 direct index ( temp uint) -0:60 'dti' ( in 3-component vector of uint) -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 0 (const int) -0:60 subgroupMin ( temp int) -0:60 direct index ( temp int) -0:60 i: direct index for structure ( temp 4-component vector of int) -0:60 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:60 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:60 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:60 Constant: -0:60 0 (const uint) -0:60 direct index ( temp uint) -0:60 'dti' ( in 3-component vector of uint) -0:60 Constant: -0:60 0 (const int) -0:60 Constant: -0:60 1 (const int) -0:60 Constant: -0:60 0 (const int) -0:61 move second child to first child ( temp 2-component vector of int) -0:61 vector swizzle ( temp 2-component vector of int) -0:61 i: direct index for structure ( temp 4-component vector of int) -0:61 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:61 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:61 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:61 Constant: -0:61 0 (const uint) -0:61 direct index ( temp uint) -0:61 'dti' ( in 3-component vector of uint) -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 Sequence -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 subgroupMin ( temp 2-component vector of int) -0:61 vector swizzle ( temp 2-component vector of int) -0:61 i: direct index for structure ( temp 4-component vector of int) -0:61 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:61 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:61 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:61 Constant: -0:61 0 (const uint) -0:61 direct index ( temp uint) -0:61 'dti' ( in 3-component vector of uint) -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:61 Sequence -0:61 Constant: -0:61 0 (const int) -0:61 Constant: -0:61 1 (const int) -0:62 move second child to first child ( temp 3-component vector of int) -0:62 vector swizzle ( temp 3-component vector of int) -0:62 i: direct index for structure ( temp 4-component vector of int) -0:62 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:62 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:62 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:62 Constant: -0:62 0 (const uint) -0:62 direct index ( temp uint) -0:62 'dti' ( in 3-component vector of uint) -0:62 Constant: -0:62 0 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 Sequence -0:62 Constant: -0:62 0 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 Constant: -0:62 2 (const int) -0:62 subgroupMin ( temp 3-component vector of int) -0:62 vector swizzle ( temp 3-component vector of int) -0:62 i: direct index for structure ( temp 4-component vector of int) -0:62 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:62 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:62 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:62 Constant: -0:62 0 (const uint) -0:62 direct index ( temp uint) -0:62 'dti' ( in 3-component vector of uint) -0:62 Constant: -0:62 0 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 Sequence -0:62 Constant: -0:62 0 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 Constant: -0:62 2 (const int) -0:64 move second child to first child ( temp 4-component vector of float) -0:64 f: direct index for structure ( temp 4-component vector of float) -0:64 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:64 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:64 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:64 Constant: -0:64 0 (const uint) -0:64 direct index ( temp uint) -0:64 'dti' ( in 3-component vector of uint) -0:64 Constant: -0:64 0 (const int) -0:64 Constant: -0:64 2 (const int) -0:64 subgroupMin ( temp 4-component vector of float) -0:64 f: direct index for structure ( temp 4-component vector of float) -0:64 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:64 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:64 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:64 Constant: -0:64 0 (const uint) -0:64 direct index ( temp uint) -0:64 'dti' ( in 3-component vector of uint) -0:64 Constant: -0:64 0 (const int) -0:64 Constant: -0:64 2 (const int) -0:65 move second child to first child ( temp float) -0:65 direct index ( temp float) -0:65 f: direct index for structure ( temp 4-component vector of float) -0:65 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:65 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:65 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:65 Constant: -0:65 0 (const uint) -0:65 direct index ( temp uint) -0:65 'dti' ( in 3-component vector of uint) -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 2 (const int) -0:65 Constant: -0:65 0 (const int) -0:65 subgroupMin ( temp float) -0:65 direct index ( temp float) -0:65 f: direct index for structure ( temp 4-component vector of float) -0:65 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:65 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:65 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:65 Constant: -0:65 0 (const uint) -0:65 direct index ( temp uint) -0:65 'dti' ( in 3-component vector of uint) -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 2 (const int) -0:65 Constant: -0:65 0 (const int) -0:66 move second child to first child ( temp 2-component vector of float) -0:66 vector swizzle ( temp 2-component vector of float) -0:66 f: direct index for structure ( temp 4-component vector of float) -0:66 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:66 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:66 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:66 Constant: -0:66 0 (const uint) -0:66 direct index ( temp uint) -0:66 'dti' ( in 3-component vector of uint) -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 2 (const int) -0:66 Sequence -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const int) -0:66 subgroupMin ( temp 2-component vector of float) -0:66 vector swizzle ( temp 2-component vector of float) -0:66 f: direct index for structure ( temp 4-component vector of float) -0:66 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:66 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:66 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:66 Constant: -0:66 0 (const uint) -0:66 direct index ( temp uint) -0:66 'dti' ( in 3-component vector of uint) -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 2 (const int) -0:66 Sequence -0:66 Constant: -0:66 0 (const int) -0:66 Constant: -0:66 1 (const int) -0:67 move second child to first child ( temp 3-component vector of float) -0:67 vector swizzle ( temp 3-component vector of float) -0:67 f: direct index for structure ( temp 4-component vector of float) -0:67 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:67 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:67 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:67 Constant: -0:67 0 (const uint) -0:67 direct index ( temp uint) -0:67 'dti' ( in 3-component vector of uint) -0:67 Constant: -0:67 0 (const int) -0:67 Constant: -0:67 2 (const int) -0:67 Sequence -0:67 Constant: -0:67 0 (const int) -0:67 Constant: -0:67 1 (const int) -0:67 Constant: -0:67 2 (const int) -0:67 subgroupMin ( temp 3-component vector of float) -0:67 vector swizzle ( temp 3-component vector of float) -0:67 f: direct index for structure ( temp 4-component vector of float) -0:67 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:67 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:67 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:67 Constant: -0:67 0 (const uint) -0:67 direct index ( temp uint) -0:67 'dti' ( in 3-component vector of uint) -0:67 Constant: -0:67 0 (const int) -0:67 Constant: -0:67 2 (const int) -0:67 Sequence -0:67 Constant: -0:67 0 (const int) -0:67 Constant: -0:67 1 (const int) -0:67 Constant: -0:67 2 (const int) -0:69 move second child to first child ( temp 4-component vector of double) -0:69 d: direct index for structure ( temp 4-component vector of double) -0:69 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:69 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:69 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:69 Constant: -0:69 0 (const uint) -0:69 direct index ( temp uint) -0:69 'dti' ( in 3-component vector of uint) -0:69 Constant: -0:69 0 (const int) -0:69 Constant: -0:69 3 (const int) -0:69 subgroupMin ( temp 4-component vector of double) -0:69 d: direct index for structure ( temp 4-component vector of double) -0:69 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:69 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:69 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:69 Constant: -0:69 0 (const uint) -0:69 direct index ( temp uint) -0:69 'dti' ( in 3-component vector of uint) -0:69 Constant: -0:69 0 (const int) -0:69 Constant: -0:69 3 (const int) -0:70 move second child to first child ( temp double) -0:70 direct index ( temp double) -0:70 d: direct index for structure ( temp 4-component vector of double) -0:70 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:70 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:70 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:70 Constant: -0:70 0 (const uint) -0:70 direct index ( temp uint) -0:70 'dti' ( in 3-component vector of uint) -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 3 (const int) -0:70 Constant: -0:70 0 (const int) -0:70 subgroupMin ( temp double) -0:70 direct index ( temp double) -0:70 d: direct index for structure ( temp 4-component vector of double) -0:70 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:70 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:70 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:70 Constant: -0:70 0 (const uint) -0:70 direct index ( temp uint) -0:70 'dti' ( in 3-component vector of uint) -0:70 Constant: -0:70 0 (const int) -0:70 Constant: -0:70 3 (const int) -0:70 Constant: -0:70 0 (const int) -0:71 move second child to first child ( temp 2-component vector of double) -0:71 vector swizzle ( temp 2-component vector of double) -0:71 d: direct index for structure ( temp 4-component vector of double) -0:71 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:71 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:71 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:71 Constant: -0:71 0 (const uint) -0:71 direct index ( temp uint) -0:71 'dti' ( in 3-component vector of uint) -0:71 Constant: -0:71 0 (const int) -0:71 Constant: -0:71 3 (const int) -0:71 Sequence -0:71 Constant: -0:71 0 (const int) -0:71 Constant: -0:71 1 (const int) -0:71 subgroupMin ( temp 2-component vector of double) -0:71 vector swizzle ( temp 2-component vector of double) -0:71 d: direct index for structure ( temp 4-component vector of double) -0:71 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:71 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:71 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:71 Constant: -0:71 0 (const uint) -0:71 direct index ( temp uint) -0:71 'dti' ( in 3-component vector of uint) -0:71 Constant: -0:71 0 (const int) -0:71 Constant: -0:71 3 (const int) -0:71 Sequence -0:71 Constant: -0:71 0 (const int) -0:71 Constant: -0:71 1 (const int) -0:72 move second child to first child ( temp 3-component vector of double) -0:72 vector swizzle ( temp 3-component vector of double) -0:72 d: direct index for structure ( temp 4-component vector of double) -0:72 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:72 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:72 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:72 Constant: -0:72 0 (const uint) -0:72 direct index ( temp uint) -0:72 'dti' ( in 3-component vector of uint) -0:72 Constant: -0:72 0 (const int) -0:72 Constant: -0:72 3 (const int) -0:72 Sequence -0:72 Constant: -0:72 0 (const int) -0:72 Constant: -0:72 1 (const int) -0:72 Constant: -0:72 2 (const int) -0:72 subgroupMin ( temp 3-component vector of double) -0:72 vector swizzle ( temp 3-component vector of double) -0:72 d: direct index for structure ( temp 4-component vector of double) -0:72 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:72 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:72 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:72 Constant: -0:72 0 (const uint) -0:72 direct index ( temp uint) -0:72 'dti' ( in 3-component vector of uint) -0:72 Constant: -0:72 0 (const int) -0:72 Constant: -0:72 3 (const int) -0:72 Sequence -0:72 Constant: -0:72 0 (const int) -0:72 Constant: -0:72 1 (const int) -0:72 Constant: -0:72 2 (const int) -0:74 move second child to first child ( temp 4-component vector of uint) -0:74 u: direct index for structure ( temp 4-component vector of uint) -0:74 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:74 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:74 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:74 Constant: -0:74 0 (const uint) -0:74 direct index ( temp uint) -0:74 'dti' ( in 3-component vector of uint) -0:74 Constant: -0:74 0 (const int) -0:74 Constant: -0:74 0 (const int) -0:74 subgroupMax ( temp 4-component vector of uint) -0:74 u: direct index for structure ( temp 4-component vector of uint) -0:74 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:74 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:74 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:74 Constant: -0:74 0 (const uint) -0:74 direct index ( temp uint) -0:74 'dti' ( in 3-component vector of uint) -0:74 Constant: -0:74 0 (const int) -0:74 Constant: -0:74 0 (const int) -0:75 move second child to first child ( temp uint) -0:75 direct index ( temp uint) -0:75 u: direct index for structure ( temp 4-component vector of uint) -0:75 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:75 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:75 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:75 Constant: -0:75 0 (const uint) -0:75 direct index ( temp uint) -0:75 'dti' ( in 3-component vector of uint) -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 0 (const int) -0:75 subgroupMax ( temp uint) -0:75 direct index ( temp uint) -0:75 u: direct index for structure ( temp 4-component vector of uint) -0:75 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:75 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:75 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:75 Constant: -0:75 0 (const uint) -0:75 direct index ( temp uint) -0:75 'dti' ( in 3-component vector of uint) -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 0 (const int) -0:75 Constant: -0:75 0 (const int) -0:76 move second child to first child ( temp 2-component vector of uint) -0:76 vector swizzle ( temp 2-component vector of uint) -0:76 u: direct index for structure ( temp 4-component vector of uint) -0:76 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:76 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:76 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:76 Constant: -0:76 0 (const uint) -0:76 direct index ( temp uint) -0:76 'dti' ( in 3-component vector of uint) -0:76 Constant: -0:76 0 (const int) -0:76 Constant: -0:76 0 (const int) -0:76 Sequence -0:76 Constant: -0:76 0 (const int) -0:76 Constant: -0:76 1 (const int) -0:76 subgroupMax ( temp 2-component vector of uint) -0:76 vector swizzle ( temp 2-component vector of uint) -0:76 u: direct index for structure ( temp 4-component vector of uint) -0:76 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:76 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:76 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:76 Constant: -0:76 0 (const uint) -0:76 direct index ( temp uint) -0:76 'dti' ( in 3-component vector of uint) -0:76 Constant: -0:76 0 (const int) -0:76 Constant: -0:76 0 (const int) -0:76 Sequence -0:76 Constant: -0:76 0 (const int) -0:76 Constant: -0:76 1 (const int) -0:77 move second child to first child ( temp 3-component vector of uint) -0:77 vector swizzle ( temp 3-component vector of uint) -0:77 u: direct index for structure ( temp 4-component vector of uint) -0:77 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:77 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:77 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:77 Constant: -0:77 0 (const uint) -0:77 direct index ( temp uint) -0:77 'dti' ( in 3-component vector of uint) -0:77 Constant: -0:77 0 (const int) -0:77 Constant: -0:77 0 (const int) -0:77 Sequence -0:77 Constant: -0:77 0 (const int) -0:77 Constant: -0:77 1 (const int) -0:77 Constant: -0:77 2 (const int) -0:77 subgroupMax ( temp 3-component vector of uint) -0:77 vector swizzle ( temp 3-component vector of uint) -0:77 u: direct index for structure ( temp 4-component vector of uint) -0:77 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:77 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:77 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:77 Constant: -0:77 0 (const uint) -0:77 direct index ( temp uint) -0:77 'dti' ( in 3-component vector of uint) -0:77 Constant: -0:77 0 (const int) -0:77 Constant: -0:77 0 (const int) -0:77 Sequence -0:77 Constant: -0:77 0 (const int) -0:77 Constant: -0:77 1 (const int) -0:77 Constant: -0:77 2 (const int) -0:79 move second child to first child ( temp 4-component vector of int) -0:79 i: direct index for structure ( temp 4-component vector of int) -0:79 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:79 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:79 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:79 Constant: -0:79 0 (const uint) -0:79 direct index ( temp uint) -0:79 'dti' ( in 3-component vector of uint) -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 1 (const int) -0:79 subgroupMax ( temp 4-component vector of int) -0:79 i: direct index for structure ( temp 4-component vector of int) -0:79 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:79 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:79 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:79 Constant: -0:79 0 (const uint) -0:79 direct index ( temp uint) -0:79 'dti' ( in 3-component vector of uint) -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 1 (const int) -0:80 move second child to first child ( temp int) -0:80 direct index ( temp int) -0:80 i: direct index for structure ( temp 4-component vector of int) -0:80 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:80 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:80 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:80 Constant: -0:80 0 (const uint) -0:80 direct index ( temp uint) -0:80 'dti' ( in 3-component vector of uint) -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 1 (const int) -0:80 Constant: -0:80 0 (const int) -0:80 subgroupMax ( temp int) -0:80 direct index ( temp int) -0:80 i: direct index for structure ( temp 4-component vector of int) -0:80 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:80 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:80 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:80 Constant: -0:80 0 (const uint) -0:80 direct index ( temp uint) -0:80 'dti' ( in 3-component vector of uint) -0:80 Constant: -0:80 0 (const int) -0:80 Constant: -0:80 1 (const int) -0:80 Constant: -0:80 0 (const int) -0:81 move second child to first child ( temp 2-component vector of int) -0:81 vector swizzle ( temp 2-component vector of int) -0:81 i: direct index for structure ( temp 4-component vector of int) -0:81 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:81 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:81 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:81 Constant: -0:81 0 (const uint) -0:81 direct index ( temp uint) -0:81 'dti' ( in 3-component vector of uint) -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 1 (const int) -0:81 Sequence -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 1 (const int) -0:81 subgroupMax ( temp 2-component vector of int) -0:81 vector swizzle ( temp 2-component vector of int) -0:81 i: direct index for structure ( temp 4-component vector of int) -0:81 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:81 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:81 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:81 Constant: -0:81 0 (const uint) -0:81 direct index ( temp uint) -0:81 'dti' ( in 3-component vector of uint) -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 1 (const int) -0:81 Sequence -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 1 (const int) -0:82 move second child to first child ( temp 3-component vector of int) -0:82 vector swizzle ( temp 3-component vector of int) -0:82 i: direct index for structure ( temp 4-component vector of int) -0:82 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:82 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:82 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:82 Constant: -0:82 0 (const uint) -0:82 direct index ( temp uint) -0:82 'dti' ( in 3-component vector of uint) -0:82 Constant: -0:82 0 (const int) -0:82 Constant: -0:82 1 (const int) -0:82 Sequence -0:82 Constant: -0:82 0 (const int) -0:82 Constant: -0:82 1 (const int) -0:82 Constant: -0:82 2 (const int) -0:82 subgroupMax ( temp 3-component vector of int) -0:82 vector swizzle ( temp 3-component vector of int) -0:82 i: direct index for structure ( temp 4-component vector of int) -0:82 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:82 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:82 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:82 Constant: -0:82 0 (const uint) -0:82 direct index ( temp uint) -0:82 'dti' ( in 3-component vector of uint) -0:82 Constant: -0:82 0 (const int) -0:82 Constant: -0:82 1 (const int) -0:82 Sequence -0:82 Constant: -0:82 0 (const int) -0:82 Constant: -0:82 1 (const int) -0:82 Constant: -0:82 2 (const int) -0:84 move second child to first child ( temp 4-component vector of float) -0:84 f: direct index for structure ( temp 4-component vector of float) -0:84 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:84 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:84 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:84 Constant: -0:84 0 (const uint) -0:84 direct index ( temp uint) -0:84 'dti' ( in 3-component vector of uint) -0:84 Constant: -0:84 0 (const int) -0:84 Constant: -0:84 2 (const int) -0:84 subgroupMax ( temp 4-component vector of float) -0:84 f: direct index for structure ( temp 4-component vector of float) -0:84 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:84 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:84 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:84 Constant: -0:84 0 (const uint) -0:84 direct index ( temp uint) -0:84 'dti' ( in 3-component vector of uint) -0:84 Constant: -0:84 0 (const int) -0:84 Constant: -0:84 2 (const int) -0:85 move second child to first child ( temp float) -0:85 direct index ( temp float) -0:85 f: direct index for structure ( temp 4-component vector of float) -0:85 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:85 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:85 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:85 Constant: -0:85 0 (const uint) -0:85 direct index ( temp uint) -0:85 'dti' ( in 3-component vector of uint) -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 2 (const int) -0:85 Constant: -0:85 0 (const int) -0:85 subgroupMax ( temp float) -0:85 direct index ( temp float) -0:85 f: direct index for structure ( temp 4-component vector of float) -0:85 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:85 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:85 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:85 Constant: -0:85 0 (const uint) -0:85 direct index ( temp uint) -0:85 'dti' ( in 3-component vector of uint) -0:85 Constant: -0:85 0 (const int) -0:85 Constant: -0:85 2 (const int) -0:85 Constant: -0:85 0 (const int) -0:86 move second child to first child ( temp 2-component vector of float) -0:86 vector swizzle ( temp 2-component vector of float) -0:86 f: direct index for structure ( temp 4-component vector of float) -0:86 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:86 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:86 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:86 Constant: -0:86 0 (const uint) -0:86 direct index ( temp uint) -0:86 'dti' ( in 3-component vector of uint) -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 2 (const int) -0:86 Sequence -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 1 (const int) -0:86 subgroupMax ( temp 2-component vector of float) -0:86 vector swizzle ( temp 2-component vector of float) -0:86 f: direct index for structure ( temp 4-component vector of float) -0:86 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:86 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:86 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:86 Constant: -0:86 0 (const uint) -0:86 direct index ( temp uint) -0:86 'dti' ( in 3-component vector of uint) -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 2 (const int) -0:86 Sequence -0:86 Constant: -0:86 0 (const int) -0:86 Constant: -0:86 1 (const int) -0:87 move second child to first child ( temp 3-component vector of float) -0:87 vector swizzle ( temp 3-component vector of float) -0:87 f: direct index for structure ( temp 4-component vector of float) -0:87 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:87 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:87 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:87 Constant: -0:87 0 (const uint) -0:87 direct index ( temp uint) -0:87 'dti' ( in 3-component vector of uint) -0:87 Constant: -0:87 0 (const int) -0:87 Constant: -0:87 2 (const int) -0:87 Sequence -0:87 Constant: -0:87 0 (const int) -0:87 Constant: -0:87 1 (const int) -0:87 Constant: -0:87 2 (const int) -0:87 subgroupMax ( temp 3-component vector of float) -0:87 vector swizzle ( temp 3-component vector of float) -0:87 f: direct index for structure ( temp 4-component vector of float) -0:87 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:87 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:87 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:87 Constant: -0:87 0 (const uint) -0:87 direct index ( temp uint) -0:87 'dti' ( in 3-component vector of uint) -0:87 Constant: -0:87 0 (const int) -0:87 Constant: -0:87 2 (const int) -0:87 Sequence -0:87 Constant: -0:87 0 (const int) -0:87 Constant: -0:87 1 (const int) -0:87 Constant: -0:87 2 (const int) -0:89 move second child to first child ( temp 4-component vector of double) -0:89 d: direct index for structure ( temp 4-component vector of double) -0:89 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:89 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:89 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:89 Constant: -0:89 0 (const uint) -0:89 direct index ( temp uint) -0:89 'dti' ( in 3-component vector of uint) -0:89 Constant: -0:89 0 (const int) -0:89 Constant: -0:89 3 (const int) -0:89 subgroupMax ( temp 4-component vector of double) -0:89 d: direct index for structure ( temp 4-component vector of double) -0:89 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:89 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:89 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:89 Constant: -0:89 0 (const uint) -0:89 direct index ( temp uint) -0:89 'dti' ( in 3-component vector of uint) -0:89 Constant: -0:89 0 (const int) -0:89 Constant: -0:89 3 (const int) -0:90 move second child to first child ( temp double) -0:90 direct index ( temp double) -0:90 d: direct index for structure ( temp 4-component vector of double) -0:90 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:90 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:90 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:90 Constant: -0:90 0 (const uint) -0:90 direct index ( temp uint) -0:90 'dti' ( in 3-component vector of uint) -0:90 Constant: -0:90 0 (const int) -0:90 Constant: -0:90 3 (const int) -0:90 Constant: -0:90 0 (const int) -0:90 subgroupMax ( temp double) -0:90 direct index ( temp double) -0:90 d: direct index for structure ( temp 4-component vector of double) -0:90 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:90 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:90 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:90 Constant: -0:90 0 (const uint) -0:90 direct index ( temp uint) -0:90 'dti' ( in 3-component vector of uint) -0:90 Constant: -0:90 0 (const int) -0:90 Constant: -0:90 3 (const int) -0:90 Constant: -0:90 0 (const int) -0:91 move second child to first child ( temp 2-component vector of double) -0:91 vector swizzle ( temp 2-component vector of double) -0:91 d: direct index for structure ( temp 4-component vector of double) -0:91 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:91 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:91 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:91 Constant: -0:91 0 (const uint) -0:91 direct index ( temp uint) -0:91 'dti' ( in 3-component vector of uint) -0:91 Constant: -0:91 0 (const int) -0:91 Constant: -0:91 3 (const int) -0:91 Sequence -0:91 Constant: -0:91 0 (const int) -0:91 Constant: -0:91 1 (const int) -0:91 subgroupMax ( temp 2-component vector of double) -0:91 vector swizzle ( temp 2-component vector of double) -0:91 d: direct index for structure ( temp 4-component vector of double) -0:91 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:91 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:91 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:91 Constant: -0:91 0 (const uint) -0:91 direct index ( temp uint) -0:91 'dti' ( in 3-component vector of uint) -0:91 Constant: -0:91 0 (const int) -0:91 Constant: -0:91 3 (const int) -0:91 Sequence -0:91 Constant: -0:91 0 (const int) -0:91 Constant: -0:91 1 (const int) -0:92 move second child to first child ( temp 3-component vector of double) -0:92 vector swizzle ( temp 3-component vector of double) -0:92 d: direct index for structure ( temp 4-component vector of double) -0:92 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:92 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:92 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:92 Constant: -0:92 0 (const uint) -0:92 direct index ( temp uint) -0:92 'dti' ( in 3-component vector of uint) -0:92 Constant: -0:92 0 (const int) -0:92 Constant: -0:92 3 (const int) -0:92 Sequence -0:92 Constant: -0:92 0 (const int) -0:92 Constant: -0:92 1 (const int) -0:92 Constant: -0:92 2 (const int) -0:92 subgroupMax ( temp 3-component vector of double) -0:92 vector swizzle ( temp 3-component vector of double) -0:92 d: direct index for structure ( temp 4-component vector of double) -0:92 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:92 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:92 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:92 Constant: -0:92 0 (const uint) -0:92 direct index ( temp uint) -0:92 'dti' ( in 3-component vector of uint) -0:92 Constant: -0:92 0 (const int) -0:92 Constant: -0:92 3 (const int) -0:92 Sequence -0:92 Constant: -0:92 0 (const int) -0:92 Constant: -0:92 1 (const int) -0:92 Constant: -0:92 2 (const int) -0:94 move second child to first child ( temp 4-component vector of uint) -0:94 u: direct index for structure ( temp 4-component vector of uint) -0:94 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:94 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:94 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:94 Constant: -0:94 0 (const uint) -0:94 direct index ( temp uint) -0:94 'dti' ( in 3-component vector of uint) -0:94 Constant: -0:94 0 (const int) -0:94 Constant: -0:94 0 (const int) -0:94 subgroupAnd ( temp 4-component vector of uint) -0:94 u: direct index for structure ( temp 4-component vector of uint) -0:94 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:94 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:94 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:94 Constant: -0:94 0 (const uint) -0:94 direct index ( temp uint) -0:94 'dti' ( in 3-component vector of uint) -0:94 Constant: -0:94 0 (const int) -0:94 Constant: -0:94 0 (const int) -0:95 move second child to first child ( temp uint) -0:95 direct index ( temp uint) -0:95 u: direct index for structure ( temp 4-component vector of uint) -0:95 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:95 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:95 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:95 Constant: -0:95 0 (const uint) -0:95 direct index ( temp uint) -0:95 'dti' ( in 3-component vector of uint) -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 0 (const int) -0:95 subgroupAnd ( temp uint) -0:95 direct index ( temp uint) -0:95 u: direct index for structure ( temp 4-component vector of uint) -0:95 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:95 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:95 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:95 Constant: -0:95 0 (const uint) -0:95 direct index ( temp uint) -0:95 'dti' ( in 3-component vector of uint) -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 0 (const int) -0:95 Constant: -0:95 0 (const int) -0:96 move second child to first child ( temp 2-component vector of uint) -0:96 vector swizzle ( temp 2-component vector of uint) -0:96 u: direct index for structure ( temp 4-component vector of uint) -0:96 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:96 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:96 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:96 Constant: -0:96 0 (const uint) -0:96 direct index ( temp uint) -0:96 'dti' ( in 3-component vector of uint) -0:96 Constant: -0:96 0 (const int) -0:96 Constant: -0:96 0 (const int) -0:96 Sequence -0:96 Constant: -0:96 0 (const int) -0:96 Constant: -0:96 1 (const int) -0:96 subgroupAnd ( temp 2-component vector of uint) -0:96 vector swizzle ( temp 2-component vector of uint) -0:96 u: direct index for structure ( temp 4-component vector of uint) -0:96 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:96 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:96 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:96 Constant: -0:96 0 (const uint) -0:96 direct index ( temp uint) -0:96 'dti' ( in 3-component vector of uint) -0:96 Constant: -0:96 0 (const int) -0:96 Constant: -0:96 0 (const int) -0:96 Sequence -0:96 Constant: -0:96 0 (const int) -0:96 Constant: -0:96 1 (const int) -0:97 move second child to first child ( temp 3-component vector of uint) -0:97 vector swizzle ( temp 3-component vector of uint) -0:97 u: direct index for structure ( temp 4-component vector of uint) -0:97 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:97 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:97 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:97 Constant: -0:97 0 (const uint) -0:97 direct index ( temp uint) -0:97 'dti' ( in 3-component vector of uint) -0:97 Constant: -0:97 0 (const int) -0:97 Constant: -0:97 0 (const int) -0:97 Sequence -0:97 Constant: -0:97 0 (const int) -0:97 Constant: -0:97 1 (const int) -0:97 Constant: -0:97 2 (const int) -0:97 subgroupAnd ( temp 3-component vector of uint) -0:97 vector swizzle ( temp 3-component vector of uint) -0:97 u: direct index for structure ( temp 4-component vector of uint) -0:97 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:97 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:97 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:97 Constant: -0:97 0 (const uint) -0:97 direct index ( temp uint) -0:97 'dti' ( in 3-component vector of uint) -0:97 Constant: -0:97 0 (const int) -0:97 Constant: -0:97 0 (const int) -0:97 Sequence -0:97 Constant: -0:97 0 (const int) -0:97 Constant: -0:97 1 (const int) -0:97 Constant: -0:97 2 (const int) -0:99 move second child to first child ( temp 4-component vector of int) -0:99 i: direct index for structure ( temp 4-component vector of int) -0:99 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:99 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:99 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:99 Constant: -0:99 0 (const uint) -0:99 direct index ( temp uint) -0:99 'dti' ( in 3-component vector of uint) -0:99 Constant: -0:99 0 (const int) -0:99 Constant: -0:99 1 (const int) -0:99 subgroupAnd ( temp 4-component vector of int) -0:99 i: direct index for structure ( temp 4-component vector of int) -0:99 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:99 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:99 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:99 Constant: -0:99 0 (const uint) -0:99 direct index ( temp uint) -0:99 'dti' ( in 3-component vector of uint) -0:99 Constant: -0:99 0 (const int) -0:99 Constant: -0:99 1 (const int) -0:100 move second child to first child ( temp int) -0:100 direct index ( temp int) -0:100 i: direct index for structure ( temp 4-component vector of int) -0:100 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:100 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:100 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:100 Constant: -0:100 0 (const uint) -0:100 direct index ( temp uint) -0:100 'dti' ( in 3-component vector of uint) -0:100 Constant: -0:100 0 (const int) -0:100 Constant: -0:100 1 (const int) -0:100 Constant: -0:100 0 (const int) -0:100 subgroupAnd ( temp int) -0:100 direct index ( temp int) -0:100 i: direct index for structure ( temp 4-component vector of int) -0:100 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:100 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:100 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:100 Constant: -0:100 0 (const uint) -0:100 direct index ( temp uint) -0:100 'dti' ( in 3-component vector of uint) -0:100 Constant: -0:100 0 (const int) -0:100 Constant: -0:100 1 (const int) -0:100 Constant: -0:100 0 (const int) -0:101 move second child to first child ( temp 2-component vector of int) -0:101 vector swizzle ( temp 2-component vector of int) -0:101 i: direct index for structure ( temp 4-component vector of int) -0:101 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:101 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:101 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:101 Constant: -0:101 0 (const uint) -0:101 direct index ( temp uint) -0:101 'dti' ( in 3-component vector of uint) -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 1 (const int) -0:101 Sequence -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 1 (const int) -0:101 subgroupAnd ( temp 2-component vector of int) -0:101 vector swizzle ( temp 2-component vector of int) -0:101 i: direct index for structure ( temp 4-component vector of int) -0:101 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:101 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:101 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:101 Constant: -0:101 0 (const uint) -0:101 direct index ( temp uint) -0:101 'dti' ( in 3-component vector of uint) -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 1 (const int) -0:101 Sequence -0:101 Constant: -0:101 0 (const int) -0:101 Constant: -0:101 1 (const int) -0:102 move second child to first child ( temp 3-component vector of int) -0:102 vector swizzle ( temp 3-component vector of int) -0:102 i: direct index for structure ( temp 4-component vector of int) -0:102 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:102 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:102 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:102 Constant: -0:102 0 (const uint) -0:102 direct index ( temp uint) -0:102 'dti' ( in 3-component vector of uint) -0:102 Constant: -0:102 0 (const int) -0:102 Constant: -0:102 1 (const int) -0:102 Sequence -0:102 Constant: -0:102 0 (const int) -0:102 Constant: -0:102 1 (const int) -0:102 Constant: -0:102 2 (const int) -0:102 subgroupAnd ( temp 3-component vector of int) -0:102 vector swizzle ( temp 3-component vector of int) -0:102 i: direct index for structure ( temp 4-component vector of int) -0:102 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:102 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:102 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:102 Constant: -0:102 0 (const uint) -0:102 direct index ( temp uint) -0:102 'dti' ( in 3-component vector of uint) -0:102 Constant: -0:102 0 (const int) -0:102 Constant: -0:102 1 (const int) -0:102 Sequence -0:102 Constant: -0:102 0 (const int) -0:102 Constant: -0:102 1 (const int) -0:102 Constant: -0:102 2 (const int) -0:104 move second child to first child ( temp 4-component vector of uint) -0:104 u: direct index for structure ( temp 4-component vector of uint) -0:104 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:104 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:104 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:104 Constant: -0:104 0 (const uint) -0:104 direct index ( temp uint) -0:104 'dti' ( in 3-component vector of uint) -0:104 Constant: -0:104 0 (const int) -0:104 Constant: -0:104 0 (const int) -0:104 subgroupOr ( temp 4-component vector of uint) -0:104 u: direct index for structure ( temp 4-component vector of uint) -0:104 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:104 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:104 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:104 Constant: -0:104 0 (const uint) -0:104 direct index ( temp uint) -0:104 'dti' ( in 3-component vector of uint) -0:104 Constant: -0:104 0 (const int) -0:104 Constant: -0:104 0 (const int) -0:105 move second child to first child ( temp uint) -0:105 direct index ( temp uint) -0:105 u: direct index for structure ( temp 4-component vector of uint) -0:105 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:105 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:105 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:105 Constant: -0:105 0 (const uint) -0:105 direct index ( temp uint) -0:105 'dti' ( in 3-component vector of uint) -0:105 Constant: -0:105 0 (const int) -0:105 Constant: -0:105 0 (const int) -0:105 Constant: -0:105 0 (const int) -0:105 subgroupOr ( temp uint) -0:105 direct index ( temp uint) -0:105 u: direct index for structure ( temp 4-component vector of uint) -0:105 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:105 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:105 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:105 Constant: -0:105 0 (const uint) -0:105 direct index ( temp uint) -0:105 'dti' ( in 3-component vector of uint) -0:105 Constant: -0:105 0 (const int) -0:105 Constant: -0:105 0 (const int) -0:105 Constant: -0:105 0 (const int) -0:106 move second child to first child ( temp 2-component vector of uint) -0:106 vector swizzle ( temp 2-component vector of uint) -0:106 u: direct index for structure ( temp 4-component vector of uint) -0:106 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:106 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:106 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:106 Constant: -0:106 0 (const uint) -0:106 direct index ( temp uint) -0:106 'dti' ( in 3-component vector of uint) -0:106 Constant: -0:106 0 (const int) -0:106 Constant: -0:106 0 (const int) -0:106 Sequence -0:106 Constant: -0:106 0 (const int) -0:106 Constant: -0:106 1 (const int) -0:106 subgroupOr ( temp 2-component vector of uint) -0:106 vector swizzle ( temp 2-component vector of uint) -0:106 u: direct index for structure ( temp 4-component vector of uint) -0:106 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:106 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:106 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:106 Constant: -0:106 0 (const uint) -0:106 direct index ( temp uint) -0:106 'dti' ( in 3-component vector of uint) -0:106 Constant: -0:106 0 (const int) -0:106 Constant: -0:106 0 (const int) -0:106 Sequence -0:106 Constant: -0:106 0 (const int) -0:106 Constant: -0:106 1 (const int) -0:107 move second child to first child ( temp 3-component vector of uint) -0:107 vector swizzle ( temp 3-component vector of uint) -0:107 u: direct index for structure ( temp 4-component vector of uint) -0:107 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:107 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:107 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:107 Constant: -0:107 0 (const uint) -0:107 direct index ( temp uint) -0:107 'dti' ( in 3-component vector of uint) -0:107 Constant: -0:107 0 (const int) -0:107 Constant: -0:107 0 (const int) -0:107 Sequence -0:107 Constant: -0:107 0 (const int) -0:107 Constant: -0:107 1 (const int) -0:107 Constant: -0:107 2 (const int) -0:107 subgroupOr ( temp 3-component vector of uint) -0:107 vector swizzle ( temp 3-component vector of uint) -0:107 u: direct index for structure ( temp 4-component vector of uint) -0:107 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:107 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:107 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:107 Constant: -0:107 0 (const uint) -0:107 direct index ( temp uint) -0:107 'dti' ( in 3-component vector of uint) -0:107 Constant: -0:107 0 (const int) -0:107 Constant: -0:107 0 (const int) -0:107 Sequence -0:107 Constant: -0:107 0 (const int) -0:107 Constant: -0:107 1 (const int) -0:107 Constant: -0:107 2 (const int) -0:109 move second child to first child ( temp 4-component vector of int) -0:109 i: direct index for structure ( temp 4-component vector of int) -0:109 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:109 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:109 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:109 Constant: -0:109 0 (const uint) -0:109 direct index ( temp uint) -0:109 'dti' ( in 3-component vector of uint) -0:109 Constant: -0:109 0 (const int) -0:109 Constant: -0:109 1 (const int) -0:109 subgroupOr ( temp 4-component vector of int) -0:109 i: direct index for structure ( temp 4-component vector of int) -0:109 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:109 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:109 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:109 Constant: -0:109 0 (const uint) -0:109 direct index ( temp uint) -0:109 'dti' ( in 3-component vector of uint) -0:109 Constant: -0:109 0 (const int) -0:109 Constant: -0:109 1 (const int) -0:110 move second child to first child ( temp int) -0:110 direct index ( temp int) -0:110 i: direct index for structure ( temp 4-component vector of int) -0:110 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:110 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:110 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:110 Constant: -0:110 0 (const uint) -0:110 direct index ( temp uint) -0:110 'dti' ( in 3-component vector of uint) -0:110 Constant: -0:110 0 (const int) -0:110 Constant: -0:110 1 (const int) -0:110 Constant: -0:110 0 (const int) -0:110 subgroupOr ( temp int) -0:110 direct index ( temp int) -0:110 i: direct index for structure ( temp 4-component vector of int) -0:110 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:110 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:110 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:110 Constant: -0:110 0 (const uint) -0:110 direct index ( temp uint) -0:110 'dti' ( in 3-component vector of uint) -0:110 Constant: -0:110 0 (const int) -0:110 Constant: -0:110 1 (const int) -0:110 Constant: -0:110 0 (const int) -0:111 move second child to first child ( temp 2-component vector of int) -0:111 vector swizzle ( temp 2-component vector of int) -0:111 i: direct index for structure ( temp 4-component vector of int) -0:111 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:111 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:111 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:111 Constant: -0:111 0 (const uint) -0:111 direct index ( temp uint) -0:111 'dti' ( in 3-component vector of uint) -0:111 Constant: -0:111 0 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 Sequence -0:111 Constant: -0:111 0 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 subgroupOr ( temp 2-component vector of int) -0:111 vector swizzle ( temp 2-component vector of int) -0:111 i: direct index for structure ( temp 4-component vector of int) -0:111 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:111 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:111 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:111 Constant: -0:111 0 (const uint) -0:111 direct index ( temp uint) -0:111 'dti' ( in 3-component vector of uint) -0:111 Constant: -0:111 0 (const int) -0:111 Constant: -0:111 1 (const int) -0:111 Sequence -0:111 Constant: -0:111 0 (const int) -0:111 Constant: -0:111 1 (const int) -0:112 move second child to first child ( temp 3-component vector of int) -0:112 vector swizzle ( temp 3-component vector of int) -0:112 i: direct index for structure ( temp 4-component vector of int) -0:112 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:112 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:112 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:112 Constant: -0:112 0 (const uint) -0:112 direct index ( temp uint) -0:112 'dti' ( in 3-component vector of uint) -0:112 Constant: -0:112 0 (const int) -0:112 Constant: -0:112 1 (const int) -0:112 Sequence -0:112 Constant: -0:112 0 (const int) -0:112 Constant: -0:112 1 (const int) -0:112 Constant: -0:112 2 (const int) -0:112 subgroupOr ( temp 3-component vector of int) -0:112 vector swizzle ( temp 3-component vector of int) -0:112 i: direct index for structure ( temp 4-component vector of int) -0:112 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:112 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:112 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:112 Constant: -0:112 0 (const uint) -0:112 direct index ( temp uint) -0:112 'dti' ( in 3-component vector of uint) -0:112 Constant: -0:112 0 (const int) -0:112 Constant: -0:112 1 (const int) -0:112 Sequence -0:112 Constant: -0:112 0 (const int) -0:112 Constant: -0:112 1 (const int) -0:112 Constant: -0:112 2 (const int) -0:114 move second child to first child ( temp 4-component vector of uint) -0:114 u: direct index for structure ( temp 4-component vector of uint) -0:114 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:114 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:114 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:114 Constant: -0:114 0 (const uint) -0:114 direct index ( temp uint) -0:114 'dti' ( in 3-component vector of uint) -0:114 Constant: -0:114 0 (const int) -0:114 Constant: -0:114 0 (const int) -0:114 subgroupXor ( temp 4-component vector of uint) -0:114 u: direct index for structure ( temp 4-component vector of uint) -0:114 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:114 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:114 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:114 Constant: -0:114 0 (const uint) -0:114 direct index ( temp uint) -0:114 'dti' ( in 3-component vector of uint) -0:114 Constant: -0:114 0 (const int) -0:114 Constant: -0:114 0 (const int) -0:115 move second child to first child ( temp uint) -0:115 direct index ( temp uint) -0:115 u: direct index for structure ( temp 4-component vector of uint) -0:115 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:115 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:115 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:115 Constant: -0:115 0 (const uint) -0:115 direct index ( temp uint) -0:115 'dti' ( in 3-component vector of uint) -0:115 Constant: -0:115 0 (const int) -0:115 Constant: -0:115 0 (const int) -0:115 Constant: -0:115 0 (const int) -0:115 subgroupXor ( temp uint) -0:115 direct index ( temp uint) -0:115 u: direct index for structure ( temp 4-component vector of uint) -0:115 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:115 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:115 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:115 Constant: -0:115 0 (const uint) -0:115 direct index ( temp uint) -0:115 'dti' ( in 3-component vector of uint) -0:115 Constant: -0:115 0 (const int) -0:115 Constant: -0:115 0 (const int) -0:115 Constant: -0:115 0 (const int) -0:116 move second child to first child ( temp 2-component vector of uint) -0:116 vector swizzle ( temp 2-component vector of uint) -0:116 u: direct index for structure ( temp 4-component vector of uint) -0:116 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:116 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:116 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:116 Constant: -0:116 0 (const uint) -0:116 direct index ( temp uint) -0:116 'dti' ( in 3-component vector of uint) -0:116 Constant: -0:116 0 (const int) -0:116 Constant: -0:116 0 (const int) -0:116 Sequence -0:116 Constant: -0:116 0 (const int) -0:116 Constant: -0:116 1 (const int) -0:116 subgroupXor ( temp 2-component vector of uint) -0:116 vector swizzle ( temp 2-component vector of uint) -0:116 u: direct index for structure ( temp 4-component vector of uint) -0:116 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:116 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:116 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:116 Constant: -0:116 0 (const uint) -0:116 direct index ( temp uint) -0:116 'dti' ( in 3-component vector of uint) -0:116 Constant: -0:116 0 (const int) -0:116 Constant: -0:116 0 (const int) -0:116 Sequence -0:116 Constant: -0:116 0 (const int) -0:116 Constant: -0:116 1 (const int) -0:117 move second child to first child ( temp 3-component vector of uint) -0:117 vector swizzle ( temp 3-component vector of uint) -0:117 u: direct index for structure ( temp 4-component vector of uint) -0:117 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:117 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:117 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:117 Constant: -0:117 0 (const uint) -0:117 direct index ( temp uint) -0:117 'dti' ( in 3-component vector of uint) -0:117 Constant: -0:117 0 (const int) -0:117 Constant: -0:117 0 (const int) -0:117 Sequence -0:117 Constant: -0:117 0 (const int) -0:117 Constant: -0:117 1 (const int) -0:117 Constant: -0:117 2 (const int) -0:117 subgroupXor ( temp 3-component vector of uint) -0:117 vector swizzle ( temp 3-component vector of uint) -0:117 u: direct index for structure ( temp 4-component vector of uint) -0:117 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:117 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:117 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:117 Constant: -0:117 0 (const uint) -0:117 direct index ( temp uint) -0:117 'dti' ( in 3-component vector of uint) -0:117 Constant: -0:117 0 (const int) -0:117 Constant: -0:117 0 (const int) -0:117 Sequence -0:117 Constant: -0:117 0 (const int) -0:117 Constant: -0:117 1 (const int) -0:117 Constant: -0:117 2 (const int) -0:119 move second child to first child ( temp 4-component vector of int) -0:119 i: direct index for structure ( temp 4-component vector of int) -0:119 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:119 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:119 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:119 Constant: -0:119 0 (const uint) -0:119 direct index ( temp uint) -0:119 'dti' ( in 3-component vector of uint) -0:119 Constant: -0:119 0 (const int) -0:119 Constant: -0:119 1 (const int) -0:119 subgroupXor ( temp 4-component vector of int) -0:119 i: direct index for structure ( temp 4-component vector of int) -0:119 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:119 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:119 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:119 Constant: -0:119 0 (const uint) -0:119 direct index ( temp uint) -0:119 'dti' ( in 3-component vector of uint) -0:119 Constant: -0:119 0 (const int) -0:119 Constant: -0:119 1 (const int) -0:120 move second child to first child ( temp int) -0:120 direct index ( temp int) -0:120 i: direct index for structure ( temp 4-component vector of int) -0:120 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:120 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:120 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:120 Constant: -0:120 0 (const uint) -0:120 direct index ( temp uint) -0:120 'dti' ( in 3-component vector of uint) -0:120 Constant: -0:120 0 (const int) -0:120 Constant: -0:120 1 (const int) -0:120 Constant: -0:120 0 (const int) -0:120 subgroupXor ( temp int) -0:120 direct index ( temp int) -0:120 i: direct index for structure ( temp 4-component vector of int) -0:120 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:120 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:120 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:120 Constant: -0:120 0 (const uint) -0:120 direct index ( temp uint) -0:120 'dti' ( in 3-component vector of uint) -0:120 Constant: -0:120 0 (const int) -0:120 Constant: -0:120 1 (const int) -0:120 Constant: -0:120 0 (const int) -0:121 move second child to first child ( temp 2-component vector of int) -0:121 vector swizzle ( temp 2-component vector of int) -0:121 i: direct index for structure ( temp 4-component vector of int) -0:121 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:121 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:121 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:121 Constant: -0:121 0 (const uint) -0:121 direct index ( temp uint) -0:121 'dti' ( in 3-component vector of uint) -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 1 (const int) -0:121 Sequence -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 1 (const int) -0:121 subgroupXor ( temp 2-component vector of int) -0:121 vector swizzle ( temp 2-component vector of int) -0:121 i: direct index for structure ( temp 4-component vector of int) -0:121 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:121 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:121 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:121 Constant: -0:121 0 (const uint) -0:121 direct index ( temp uint) -0:121 'dti' ( in 3-component vector of uint) -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 1 (const int) -0:121 Sequence -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 1 (const int) -0:122 move second child to first child ( temp 3-component vector of int) -0:122 vector swizzle ( temp 3-component vector of int) -0:122 i: direct index for structure ( temp 4-component vector of int) -0:122 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:122 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:122 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:122 Constant: -0:122 0 (const uint) -0:122 direct index ( temp uint) -0:122 'dti' ( in 3-component vector of uint) -0:122 Constant: -0:122 0 (const int) -0:122 Constant: -0:122 1 (const int) -0:122 Sequence -0:122 Constant: -0:122 0 (const int) -0:122 Constant: -0:122 1 (const int) -0:122 Constant: -0:122 2 (const int) -0:122 subgroupXor ( temp 3-component vector of int) -0:122 vector swizzle ( temp 3-component vector of int) -0:122 i: direct index for structure ( temp 4-component vector of int) -0:122 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:122 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:122 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:122 Constant: -0:122 0 (const uint) -0:122 direct index ( temp uint) -0:122 'dti' ( in 3-component vector of uint) -0:122 Constant: -0:122 0 (const int) -0:122 Constant: -0:122 1 (const int) -0:122 Sequence -0:122 Constant: -0:122 0 (const int) -0:122 Constant: -0:122 1 (const int) -0:122 Constant: -0:122 2 (const int) -0:124 move second child to first child ( temp uint) -0:124 direct index ( temp uint) -0:124 u: direct index for structure ( temp 4-component vector of uint) -0:124 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:124 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:124 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:124 Constant: -0:124 0 (const uint) -0:124 direct index ( temp uint) -0:124 'dti' ( in 3-component vector of uint) -0:124 Constant: -0:124 0 (const int) -0:124 Constant: -0:124 0 (const int) -0:124 Constant: -0:124 0 (const int) -0:124 subgroupBallotBitCount ( temp uint) -0:124 subgroupBallot ( temp 4-component vector of uint) -0:124 Compare Equal ( temp bool) -0:124 direct index ( temp uint) -0:124 u: direct index for structure ( temp 4-component vector of uint) -0:124 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:124 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) -0:124 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:124 Constant: -0:124 0 (const uint) -0:124 direct index ( temp uint) -0:124 'dti' ( in 3-component vector of uint) -0:124 Constant: -0:124 0 (const int) -0:124 Constant: -0:124 0 (const int) -0:124 Constant: -0:124 0 (const int) -0:124 Constant: -0:124 0 (const uint) -0:13 Function Definition: CSMain( ( temp void) -0:13 Function Parameters: -0:? Sequence -0:13 move second child to first child ( temp 3-component vector of uint) -0:? 'dti' ( temp 3-component vector of uint) -0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) -0:13 Function Call: @CSMain(vu3; ( temp void) -0:? 'dti' ( temp 3-component vector of uint) -0:? Linker Objects -0:? 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) -0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) - -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 991 - - Capability Shader - Capability Float64 - Capability GroupNonUniform - Capability GroupNonUniformArithmetic - Capability GroupNonUniformBallot - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "CSMain" 986 - ExecutionMode 4 LocalSize 32 16 1 - Source HLSL 500 - Name 4 "CSMain" - Name 11 "@CSMain(vu3;" - Name 10 "dti" - Name 20 "Types" - MemberName 20(Types) 0 "u" - MemberName 20(Types) 1 "i" - MemberName 20(Types) 2 "f" - MemberName 20(Types) 3 "d" - Name 22 "data" - MemberName 22(data) 0 "@data" - Name 24 "data" - Name 984 "dti" - Name 986 "dti" - Name 988 "param" - MemberDecorate 20(Types) 0 Offset 0 - MemberDecorate 20(Types) 1 Offset 16 - MemberDecorate 20(Types) 2 Offset 32 - MemberDecorate 20(Types) 3 Offset 64 - Decorate 21 ArrayStride 96 - MemberDecorate 22(data) 0 Offset 0 - Decorate 22(data) BufferBlock - Decorate 24(data) DescriptorSet 0 - Decorate 24(data) Binding 0 - Decorate 986(dti) BuiltIn GlobalInvocationId - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeVector 6(int) 3 - 8: TypePointer Function 7(ivec3) - 9: TypeFunction 2 8(ptr) - 13: TypeVector 6(int) 4 - 14: TypeInt 32 1 - 15: TypeVector 14(int) 4 - 16: TypeFloat 32 - 17: TypeVector 16(float) 4 - 18: TypeFloat 64 - 19: TypeVector 18(float64_t) 4 - 20(Types): TypeStruct 13(ivec4) 15(ivec4) 17(fvec4) 19(f64vec4) - 21: TypeRuntimeArray 20(Types) - 22(data): TypeStruct 21 - 23: TypePointer Uniform 22(data) - 24(data): 23(ptr) Variable Uniform - 25: 14(int) Constant 0 - 26: 6(int) Constant 0 - 27: TypePointer Function 6(int) - 32: TypePointer Uniform 13(ivec4) - 35: 6(int) Constant 3 - 42: TypePointer Uniform 6(int) - 51: TypeVector 6(int) 2 - 58: 6(int) Constant 1 - 73: 6(int) Constant 2 - 78: 14(int) Constant 1 - 81: TypePointer Uniform 15(ivec4) - 90: TypePointer Uniform 14(int) - 99: TypeVector 14(int) 2 - 112: TypeVector 14(int) 3 - 125: 14(int) Constant 2 - 128: TypePointer Uniform 17(fvec4) - 137: TypePointer Uniform 16(float) - 146: TypeVector 16(float) 2 - 159: TypeVector 16(float) 3 - 172: 14(int) Constant 3 - 175: TypePointer Uniform 19(f64vec4) - 184: TypePointer Uniform 18(float64_t) - 193: TypeVector 18(float64_t) 2 - 206: TypeVector 18(float64_t) 3 - 979: TypeBool - 985: TypePointer Input 7(ivec3) - 986(dti): 985(ptr) Variable Input - 4(CSMain): 2 Function None 3 - 5: Label - 984(dti): 8(ptr) Variable Function - 988(param): 8(ptr) Variable Function - 987: 7(ivec3) Load 986(dti) - Store 984(dti) 987 - 989: 7(ivec3) Load 984(dti) - Store 988(param) 989 - 990: 2 FunctionCall 11(@CSMain(vu3;) 988(param) - Return - FunctionEnd -11(@CSMain(vu3;): 2 Function None 9 - 10(dti): 8(ptr) FunctionParameter - 12: Label - 28: 27(ptr) AccessChain 10(dti) 26 - 29: 6(int) Load 28 - 30: 27(ptr) AccessChain 10(dti) 26 - 31: 6(int) Load 30 - 33: 32(ptr) AccessChain 24(data) 25 31 25 - 34: 13(ivec4) Load 33 - 36: 13(ivec4) GroupNonUniformIAdd 35 Reduce 34 - 37: 32(ptr) AccessChain 24(data) 25 29 25 - Store 37 36 - 38: 27(ptr) AccessChain 10(dti) 26 - 39: 6(int) Load 38 - 40: 27(ptr) AccessChain 10(dti) 26 - 41: 6(int) Load 40 - 43: 42(ptr) AccessChain 24(data) 25 41 25 26 - 44: 6(int) Load 43 - 45: 6(int) GroupNonUniformIAdd 35 Reduce 44 - 46: 42(ptr) AccessChain 24(data) 25 39 25 26 - Store 46 45 - 47: 27(ptr) AccessChain 10(dti) 26 - 48: 6(int) Load 47 - 49: 27(ptr) AccessChain 10(dti) 26 - 50: 6(int) Load 49 - 52: 32(ptr) AccessChain 24(data) 25 50 25 - 53: 13(ivec4) Load 52 - 54: 51(ivec2) VectorShuffle 53 53 0 1 - 55: 51(ivec2) GroupNonUniformIAdd 35 Reduce 54 - 56: 42(ptr) AccessChain 24(data) 25 48 25 26 - 57: 6(int) CompositeExtract 55 0 - Store 56 57 - 59: 42(ptr) AccessChain 24(data) 25 48 25 58 - 60: 6(int) CompositeExtract 55 1 - Store 59 60 - 61: 27(ptr) AccessChain 10(dti) 26 - 62: 6(int) Load 61 - 63: 27(ptr) AccessChain 10(dti) 26 - 64: 6(int) Load 63 - 65: 32(ptr) AccessChain 24(data) 25 64 25 - 66: 13(ivec4) Load 65 - 67: 7(ivec3) VectorShuffle 66 66 0 1 2 - 68: 7(ivec3) GroupNonUniformIAdd 35 Reduce 67 - 69: 42(ptr) AccessChain 24(data) 25 62 25 26 - 70: 6(int) CompositeExtract 68 0 - Store 69 70 - 71: 42(ptr) AccessChain 24(data) 25 62 25 58 - 72: 6(int) CompositeExtract 68 1 - Store 71 72 - 74: 42(ptr) AccessChain 24(data) 25 62 25 73 - 75: 6(int) CompositeExtract 68 2 - Store 74 75 - 76: 27(ptr) AccessChain 10(dti) 26 - 77: 6(int) Load 76 - 79: 27(ptr) AccessChain 10(dti) 26 - 80: 6(int) Load 79 - 82: 81(ptr) AccessChain 24(data) 25 80 78 - 83: 15(ivec4) Load 82 - 84: 15(ivec4) GroupNonUniformIAdd 35 Reduce 83 - 85: 81(ptr) AccessChain 24(data) 25 77 78 - Store 85 84 - 86: 27(ptr) AccessChain 10(dti) 26 - 87: 6(int) Load 86 - 88: 27(ptr) AccessChain 10(dti) 26 - 89: 6(int) Load 88 - 91: 90(ptr) AccessChain 24(data) 25 89 78 26 - 92: 14(int) Load 91 - 93: 14(int) GroupNonUniformIAdd 35 Reduce 92 - 94: 90(ptr) AccessChain 24(data) 25 87 78 26 - Store 94 93 - 95: 27(ptr) AccessChain 10(dti) 26 - 96: 6(int) Load 95 - 97: 27(ptr) AccessChain 10(dti) 26 - 98: 6(int) Load 97 - 100: 81(ptr) AccessChain 24(data) 25 98 78 - 101: 15(ivec4) Load 100 - 102: 99(ivec2) VectorShuffle 101 101 0 1 - 103: 99(ivec2) GroupNonUniformIAdd 35 Reduce 102 - 104: 90(ptr) AccessChain 24(data) 25 96 78 26 - 105: 14(int) CompositeExtract 103 0 - Store 104 105 - 106: 90(ptr) AccessChain 24(data) 25 96 78 58 - 107: 14(int) CompositeExtract 103 1 - Store 106 107 - 108: 27(ptr) AccessChain 10(dti) 26 - 109: 6(int) Load 108 - 110: 27(ptr) AccessChain 10(dti) 26 - 111: 6(int) Load 110 - 113: 81(ptr) AccessChain 24(data) 25 111 78 - 114: 15(ivec4) Load 113 - 115: 112(ivec3) VectorShuffle 114 114 0 1 2 - 116: 112(ivec3) GroupNonUniformIAdd 35 Reduce 115 - 117: 90(ptr) AccessChain 24(data) 25 109 78 26 - 118: 14(int) CompositeExtract 116 0 - Store 117 118 - 119: 90(ptr) AccessChain 24(data) 25 109 78 58 - 120: 14(int) CompositeExtract 116 1 - Store 119 120 - 121: 90(ptr) AccessChain 24(data) 25 109 78 73 - 122: 14(int) CompositeExtract 116 2 - Store 121 122 - 123: 27(ptr) AccessChain 10(dti) 26 - 124: 6(int) Load 123 - 126: 27(ptr) AccessChain 10(dti) 26 - 127: 6(int) Load 126 - 129: 128(ptr) AccessChain 24(data) 25 127 125 - 130: 17(fvec4) Load 129 - 131: 17(fvec4) GroupNonUniformFAdd 35 Reduce 130 - 132: 128(ptr) AccessChain 24(data) 25 124 125 - Store 132 131 - 133: 27(ptr) AccessChain 10(dti) 26 - 134: 6(int) Load 133 - 135: 27(ptr) AccessChain 10(dti) 26 - 136: 6(int) Load 135 - 138: 137(ptr) AccessChain 24(data) 25 136 125 26 - 139: 16(float) Load 138 - 140: 16(float) GroupNonUniformFAdd 35 Reduce 139 - 141: 137(ptr) AccessChain 24(data) 25 134 125 26 - Store 141 140 - 142: 27(ptr) AccessChain 10(dti) 26 - 143: 6(int) Load 142 - 144: 27(ptr) AccessChain 10(dti) 26 - 145: 6(int) Load 144 - 147: 128(ptr) AccessChain 24(data) 25 145 125 - 148: 17(fvec4) Load 147 - 149: 146(fvec2) VectorShuffle 148 148 0 1 - 150: 146(fvec2) GroupNonUniformFAdd 35 Reduce 149 - 151: 137(ptr) AccessChain 24(data) 25 143 125 26 - 152: 16(float) CompositeExtract 150 0 - Store 151 152 - 153: 137(ptr) AccessChain 24(data) 25 143 125 58 - 154: 16(float) CompositeExtract 150 1 - Store 153 154 - 155: 27(ptr) AccessChain 10(dti) 26 - 156: 6(int) Load 155 - 157: 27(ptr) AccessChain 10(dti) 26 - 158: 6(int) Load 157 - 160: 128(ptr) AccessChain 24(data) 25 158 125 - 161: 17(fvec4) Load 160 - 162: 159(fvec3) VectorShuffle 161 161 0 1 2 - 163: 159(fvec3) GroupNonUniformFAdd 35 Reduce 162 - 164: 137(ptr) AccessChain 24(data) 25 156 125 26 - 165: 16(float) CompositeExtract 163 0 - Store 164 165 - 166: 137(ptr) AccessChain 24(data) 25 156 125 58 - 167: 16(float) CompositeExtract 163 1 - Store 166 167 - 168: 137(ptr) AccessChain 24(data) 25 156 125 73 - 169: 16(float) CompositeExtract 163 2 - Store 168 169 - 170: 27(ptr) AccessChain 10(dti) 26 - 171: 6(int) Load 170 - 173: 27(ptr) AccessChain 10(dti) 26 - 174: 6(int) Load 173 - 176: 175(ptr) AccessChain 24(data) 25 174 172 - 177: 19(f64vec4) Load 176 - 178: 19(f64vec4) GroupNonUniformFAdd 35 Reduce 177 - 179: 175(ptr) AccessChain 24(data) 25 171 172 - Store 179 178 - 180: 27(ptr) AccessChain 10(dti) 26 - 181: 6(int) Load 180 - 182: 27(ptr) AccessChain 10(dti) 26 - 183: 6(int) Load 182 - 185: 184(ptr) AccessChain 24(data) 25 183 172 26 - 186:18(float64_t) Load 185 - 187:18(float64_t) GroupNonUniformFAdd 35 Reduce 186 - 188: 184(ptr) AccessChain 24(data) 25 181 172 26 - Store 188 187 - 189: 27(ptr) AccessChain 10(dti) 26 - 190: 6(int) Load 189 - 191: 27(ptr) AccessChain 10(dti) 26 - 192: 6(int) Load 191 - 194: 175(ptr) AccessChain 24(data) 25 192 172 - 195: 19(f64vec4) Load 194 - 196:193(f64vec2) VectorShuffle 195 195 0 1 - 197:193(f64vec2) GroupNonUniformFAdd 35 Reduce 196 - 198: 184(ptr) AccessChain 24(data) 25 190 172 26 - 199:18(float64_t) CompositeExtract 197 0 - Store 198 199 - 200: 184(ptr) AccessChain 24(data) 25 190 172 58 - 201:18(float64_t) CompositeExtract 197 1 - Store 200 201 - 202: 27(ptr) AccessChain 10(dti) 26 - 203: 6(int) Load 202 - 204: 27(ptr) AccessChain 10(dti) 26 - 205: 6(int) Load 204 - 207: 175(ptr) AccessChain 24(data) 25 205 172 - 208: 19(f64vec4) Load 207 - 209:206(f64vec3) VectorShuffle 208 208 0 1 2 - 210:206(f64vec3) GroupNonUniformFAdd 35 Reduce 209 - 211: 184(ptr) AccessChain 24(data) 25 203 172 26 - 212:18(float64_t) CompositeExtract 210 0 - Store 211 212 - 213: 184(ptr) AccessChain 24(data) 25 203 172 58 - 214:18(float64_t) CompositeExtract 210 1 - Store 213 214 - 215: 184(ptr) AccessChain 24(data) 25 203 172 73 - 216:18(float64_t) CompositeExtract 210 2 - Store 215 216 - 217: 27(ptr) AccessChain 10(dti) 26 - 218: 6(int) Load 217 - 219: 27(ptr) AccessChain 10(dti) 26 - 220: 6(int) Load 219 - 221: 32(ptr) AccessChain 24(data) 25 220 25 - 222: 13(ivec4) Load 221 - 223: 13(ivec4) GroupNonUniformIMul 35 Reduce 222 - 224: 32(ptr) AccessChain 24(data) 25 218 25 - Store 224 223 - 225: 27(ptr) AccessChain 10(dti) 26 - 226: 6(int) Load 225 - 227: 27(ptr) AccessChain 10(dti) 26 - 228: 6(int) Load 227 - 229: 42(ptr) AccessChain 24(data) 25 228 25 26 - 230: 6(int) Load 229 - 231: 6(int) GroupNonUniformIMul 35 Reduce 230 - 232: 42(ptr) AccessChain 24(data) 25 226 25 26 - Store 232 231 - 233: 27(ptr) AccessChain 10(dti) 26 - 234: 6(int) Load 233 - 235: 27(ptr) AccessChain 10(dti) 26 - 236: 6(int) Load 235 - 237: 32(ptr) AccessChain 24(data) 25 236 25 - 238: 13(ivec4) Load 237 - 239: 51(ivec2) VectorShuffle 238 238 0 1 - 240: 51(ivec2) GroupNonUniformIMul 35 Reduce 239 - 241: 42(ptr) AccessChain 24(data) 25 234 25 26 - 242: 6(int) CompositeExtract 240 0 - Store 241 242 - 243: 42(ptr) AccessChain 24(data) 25 234 25 58 - 244: 6(int) CompositeExtract 240 1 - Store 243 244 - 245: 27(ptr) AccessChain 10(dti) 26 - 246: 6(int) Load 245 - 247: 27(ptr) AccessChain 10(dti) 26 - 248: 6(int) Load 247 - 249: 32(ptr) AccessChain 24(data) 25 248 25 - 250: 13(ivec4) Load 249 - 251: 7(ivec3) VectorShuffle 250 250 0 1 2 - 252: 7(ivec3) GroupNonUniformIMul 35 Reduce 251 - 253: 42(ptr) AccessChain 24(data) 25 246 25 26 - 254: 6(int) CompositeExtract 252 0 - Store 253 254 - 255: 42(ptr) AccessChain 24(data) 25 246 25 58 - 256: 6(int) CompositeExtract 252 1 - Store 255 256 - 257: 42(ptr) AccessChain 24(data) 25 246 25 73 - 258: 6(int) CompositeExtract 252 2 - Store 257 258 - 259: 27(ptr) AccessChain 10(dti) 26 - 260: 6(int) Load 259 - 261: 27(ptr) AccessChain 10(dti) 26 - 262: 6(int) Load 261 - 263: 81(ptr) AccessChain 24(data) 25 262 78 - 264: 15(ivec4) Load 263 - 265: 15(ivec4) GroupNonUniformIMul 35 Reduce 264 - 266: 81(ptr) AccessChain 24(data) 25 260 78 - Store 266 265 - 267: 27(ptr) AccessChain 10(dti) 26 - 268: 6(int) Load 267 - 269: 27(ptr) AccessChain 10(dti) 26 - 270: 6(int) Load 269 - 271: 90(ptr) AccessChain 24(data) 25 270 78 26 - 272: 14(int) Load 271 - 273: 14(int) GroupNonUniformIMul 35 Reduce 272 - 274: 90(ptr) AccessChain 24(data) 25 268 78 26 - Store 274 273 - 275: 27(ptr) AccessChain 10(dti) 26 - 276: 6(int) Load 275 - 277: 27(ptr) AccessChain 10(dti) 26 - 278: 6(int) Load 277 - 279: 81(ptr) AccessChain 24(data) 25 278 78 - 280: 15(ivec4) Load 279 - 281: 99(ivec2) VectorShuffle 280 280 0 1 - 282: 99(ivec2) GroupNonUniformIMul 35 Reduce 281 - 283: 90(ptr) AccessChain 24(data) 25 276 78 26 - 284: 14(int) CompositeExtract 282 0 - Store 283 284 - 285: 90(ptr) AccessChain 24(data) 25 276 78 58 - 286: 14(int) CompositeExtract 282 1 - Store 285 286 - 287: 27(ptr) AccessChain 10(dti) 26 - 288: 6(int) Load 287 - 289: 27(ptr) AccessChain 10(dti) 26 - 290: 6(int) Load 289 - 291: 81(ptr) AccessChain 24(data) 25 290 78 - 292: 15(ivec4) Load 291 - 293: 112(ivec3) VectorShuffle 292 292 0 1 2 - 294: 112(ivec3) GroupNonUniformIMul 35 Reduce 293 - 295: 90(ptr) AccessChain 24(data) 25 288 78 26 - 296: 14(int) CompositeExtract 294 0 - Store 295 296 - 297: 90(ptr) AccessChain 24(data) 25 288 78 58 - 298: 14(int) CompositeExtract 294 1 - Store 297 298 - 299: 90(ptr) AccessChain 24(data) 25 288 78 73 - 300: 14(int) CompositeExtract 294 2 - Store 299 300 - 301: 27(ptr) AccessChain 10(dti) 26 - 302: 6(int) Load 301 - 303: 27(ptr) AccessChain 10(dti) 26 - 304: 6(int) Load 303 - 305: 128(ptr) AccessChain 24(data) 25 304 125 - 306: 17(fvec4) Load 305 - 307: 17(fvec4) GroupNonUniformFMul 35 Reduce 306 - 308: 128(ptr) AccessChain 24(data) 25 302 125 - Store 308 307 - 309: 27(ptr) AccessChain 10(dti) 26 - 310: 6(int) Load 309 - 311: 27(ptr) AccessChain 10(dti) 26 - 312: 6(int) Load 311 - 313: 137(ptr) AccessChain 24(data) 25 312 125 26 - 314: 16(float) Load 313 - 315: 16(float) GroupNonUniformFMul 35 Reduce 314 - 316: 137(ptr) AccessChain 24(data) 25 310 125 26 - Store 316 315 - 317: 27(ptr) AccessChain 10(dti) 26 - 318: 6(int) Load 317 - 319: 27(ptr) AccessChain 10(dti) 26 - 320: 6(int) Load 319 - 321: 128(ptr) AccessChain 24(data) 25 320 125 - 322: 17(fvec4) Load 321 - 323: 146(fvec2) VectorShuffle 322 322 0 1 - 324: 146(fvec2) GroupNonUniformFMul 35 Reduce 323 - 325: 137(ptr) AccessChain 24(data) 25 318 125 26 - 326: 16(float) CompositeExtract 324 0 - Store 325 326 - 327: 137(ptr) AccessChain 24(data) 25 318 125 58 - 328: 16(float) CompositeExtract 324 1 - Store 327 328 - 329: 27(ptr) AccessChain 10(dti) 26 - 330: 6(int) Load 329 - 331: 27(ptr) AccessChain 10(dti) 26 - 332: 6(int) Load 331 - 333: 128(ptr) AccessChain 24(data) 25 332 125 - 334: 17(fvec4) Load 333 - 335: 159(fvec3) VectorShuffle 334 334 0 1 2 - 336: 159(fvec3) GroupNonUniformFMul 35 Reduce 335 - 337: 137(ptr) AccessChain 24(data) 25 330 125 26 - 338: 16(float) CompositeExtract 336 0 - Store 337 338 - 339: 137(ptr) AccessChain 24(data) 25 330 125 58 - 340: 16(float) CompositeExtract 336 1 - Store 339 340 - 341: 137(ptr) AccessChain 24(data) 25 330 125 73 - 342: 16(float) CompositeExtract 336 2 - Store 341 342 - 343: 27(ptr) AccessChain 10(dti) 26 - 344: 6(int) Load 343 - 345: 27(ptr) AccessChain 10(dti) 26 - 346: 6(int) Load 345 - 347: 175(ptr) AccessChain 24(data) 25 346 172 - 348: 19(f64vec4) Load 347 - 349: 19(f64vec4) GroupNonUniformFMul 35 Reduce 348 - 350: 175(ptr) AccessChain 24(data) 25 344 172 - Store 350 349 - 351: 27(ptr) AccessChain 10(dti) 26 - 352: 6(int) Load 351 - 353: 27(ptr) AccessChain 10(dti) 26 - 354: 6(int) Load 353 - 355: 184(ptr) AccessChain 24(data) 25 354 172 26 - 356:18(float64_t) Load 355 - 357:18(float64_t) GroupNonUniformFMul 35 Reduce 356 - 358: 184(ptr) AccessChain 24(data) 25 352 172 26 - Store 358 357 - 359: 27(ptr) AccessChain 10(dti) 26 - 360: 6(int) Load 359 - 361: 27(ptr) AccessChain 10(dti) 26 - 362: 6(int) Load 361 - 363: 175(ptr) AccessChain 24(data) 25 362 172 - 364: 19(f64vec4) Load 363 - 365:193(f64vec2) VectorShuffle 364 364 0 1 - 366:193(f64vec2) GroupNonUniformFMul 35 Reduce 365 - 367: 184(ptr) AccessChain 24(data) 25 360 172 26 - 368:18(float64_t) CompositeExtract 366 0 - Store 367 368 - 369: 184(ptr) AccessChain 24(data) 25 360 172 58 - 370:18(float64_t) CompositeExtract 366 1 - Store 369 370 - 371: 27(ptr) AccessChain 10(dti) 26 - 372: 6(int) Load 371 - 373: 27(ptr) AccessChain 10(dti) 26 - 374: 6(int) Load 373 - 375: 175(ptr) AccessChain 24(data) 25 374 172 - 376: 19(f64vec4) Load 375 - 377:206(f64vec3) VectorShuffle 376 376 0 1 2 - 378:206(f64vec3) GroupNonUniformFMul 35 Reduce 377 - 379: 184(ptr) AccessChain 24(data) 25 372 172 26 - 380:18(float64_t) CompositeExtract 378 0 - Store 379 380 - 381: 184(ptr) AccessChain 24(data) 25 372 172 58 - 382:18(float64_t) CompositeExtract 378 1 - Store 381 382 - 383: 184(ptr) AccessChain 24(data) 25 372 172 73 - 384:18(float64_t) CompositeExtract 378 2 - Store 383 384 - 385: 27(ptr) AccessChain 10(dti) 26 - 386: 6(int) Load 385 - 387: 27(ptr) AccessChain 10(dti) 26 - 388: 6(int) Load 387 - 389: 32(ptr) AccessChain 24(data) 25 388 25 - 390: 13(ivec4) Load 389 - 391: 13(ivec4) GroupNonUniformUMin 35 Reduce 390 - 392: 32(ptr) AccessChain 24(data) 25 386 25 - Store 392 391 - 393: 27(ptr) AccessChain 10(dti) 26 - 394: 6(int) Load 393 - 395: 27(ptr) AccessChain 10(dti) 26 - 396: 6(int) Load 395 - 397: 42(ptr) AccessChain 24(data) 25 396 25 26 - 398: 6(int) Load 397 - 399: 6(int) GroupNonUniformUMin 35 Reduce 398 - 400: 42(ptr) AccessChain 24(data) 25 394 25 26 - Store 400 399 - 401: 27(ptr) AccessChain 10(dti) 26 - 402: 6(int) Load 401 - 403: 27(ptr) AccessChain 10(dti) 26 - 404: 6(int) Load 403 - 405: 32(ptr) AccessChain 24(data) 25 404 25 - 406: 13(ivec4) Load 405 - 407: 51(ivec2) VectorShuffle 406 406 0 1 - 408: 51(ivec2) GroupNonUniformUMin 35 Reduce 407 - 409: 42(ptr) AccessChain 24(data) 25 402 25 26 - 410: 6(int) CompositeExtract 408 0 - Store 409 410 - 411: 42(ptr) AccessChain 24(data) 25 402 25 58 - 412: 6(int) CompositeExtract 408 1 - Store 411 412 - 413: 27(ptr) AccessChain 10(dti) 26 - 414: 6(int) Load 413 - 415: 27(ptr) AccessChain 10(dti) 26 - 416: 6(int) Load 415 - 417: 32(ptr) AccessChain 24(data) 25 416 25 - 418: 13(ivec4) Load 417 - 419: 7(ivec3) VectorShuffle 418 418 0 1 2 - 420: 7(ivec3) GroupNonUniformUMin 35 Reduce 419 - 421: 42(ptr) AccessChain 24(data) 25 414 25 26 - 422: 6(int) CompositeExtract 420 0 - Store 421 422 - 423: 42(ptr) AccessChain 24(data) 25 414 25 58 - 424: 6(int) CompositeExtract 420 1 - Store 423 424 - 425: 42(ptr) AccessChain 24(data) 25 414 25 73 - 426: 6(int) CompositeExtract 420 2 - Store 425 426 - 427: 27(ptr) AccessChain 10(dti) 26 - 428: 6(int) Load 427 - 429: 27(ptr) AccessChain 10(dti) 26 - 430: 6(int) Load 429 - 431: 81(ptr) AccessChain 24(data) 25 430 78 - 432: 15(ivec4) Load 431 - 433: 15(ivec4) GroupNonUniformSMin 35 Reduce 432 - 434: 81(ptr) AccessChain 24(data) 25 428 78 - Store 434 433 - 435: 27(ptr) AccessChain 10(dti) 26 - 436: 6(int) Load 435 - 437: 27(ptr) AccessChain 10(dti) 26 - 438: 6(int) Load 437 - 439: 90(ptr) AccessChain 24(data) 25 438 78 26 - 440: 14(int) Load 439 - 441: 14(int) GroupNonUniformSMin 35 Reduce 440 - 442: 90(ptr) AccessChain 24(data) 25 436 78 26 - Store 442 441 - 443: 27(ptr) AccessChain 10(dti) 26 - 444: 6(int) Load 443 - 445: 27(ptr) AccessChain 10(dti) 26 - 446: 6(int) Load 445 - 447: 81(ptr) AccessChain 24(data) 25 446 78 - 448: 15(ivec4) Load 447 - 449: 99(ivec2) VectorShuffle 448 448 0 1 - 450: 99(ivec2) GroupNonUniformSMin 35 Reduce 449 - 451: 90(ptr) AccessChain 24(data) 25 444 78 26 - 452: 14(int) CompositeExtract 450 0 - Store 451 452 - 453: 90(ptr) AccessChain 24(data) 25 444 78 58 - 454: 14(int) CompositeExtract 450 1 - Store 453 454 - 455: 27(ptr) AccessChain 10(dti) 26 - 456: 6(int) Load 455 - 457: 27(ptr) AccessChain 10(dti) 26 - 458: 6(int) Load 457 - 459: 81(ptr) AccessChain 24(data) 25 458 78 - 460: 15(ivec4) Load 459 - 461: 112(ivec3) VectorShuffle 460 460 0 1 2 - 462: 112(ivec3) GroupNonUniformSMin 35 Reduce 461 - 463: 90(ptr) AccessChain 24(data) 25 456 78 26 - 464: 14(int) CompositeExtract 462 0 - Store 463 464 - 465: 90(ptr) AccessChain 24(data) 25 456 78 58 - 466: 14(int) CompositeExtract 462 1 - Store 465 466 - 467: 90(ptr) AccessChain 24(data) 25 456 78 73 - 468: 14(int) CompositeExtract 462 2 - Store 467 468 - 469: 27(ptr) AccessChain 10(dti) 26 - 470: 6(int) Load 469 - 471: 27(ptr) AccessChain 10(dti) 26 - 472: 6(int) Load 471 - 473: 128(ptr) AccessChain 24(data) 25 472 125 - 474: 17(fvec4) Load 473 - 475: 17(fvec4) GroupNonUniformFMin 35 Reduce 474 - 476: 128(ptr) AccessChain 24(data) 25 470 125 - Store 476 475 - 477: 27(ptr) AccessChain 10(dti) 26 - 478: 6(int) Load 477 - 479: 27(ptr) AccessChain 10(dti) 26 - 480: 6(int) Load 479 - 481: 137(ptr) AccessChain 24(data) 25 480 125 26 - 482: 16(float) Load 481 - 483: 16(float) GroupNonUniformFMin 35 Reduce 482 - 484: 137(ptr) AccessChain 24(data) 25 478 125 26 - Store 484 483 - 485: 27(ptr) AccessChain 10(dti) 26 - 486: 6(int) Load 485 - 487: 27(ptr) AccessChain 10(dti) 26 - 488: 6(int) Load 487 - 489: 128(ptr) AccessChain 24(data) 25 488 125 - 490: 17(fvec4) Load 489 - 491: 146(fvec2) VectorShuffle 490 490 0 1 - 492: 146(fvec2) GroupNonUniformFMin 35 Reduce 491 - 493: 137(ptr) AccessChain 24(data) 25 486 125 26 - 494: 16(float) CompositeExtract 492 0 - Store 493 494 - 495: 137(ptr) AccessChain 24(data) 25 486 125 58 - 496: 16(float) CompositeExtract 492 1 - Store 495 496 - 497: 27(ptr) AccessChain 10(dti) 26 - 498: 6(int) Load 497 - 499: 27(ptr) AccessChain 10(dti) 26 - 500: 6(int) Load 499 - 501: 128(ptr) AccessChain 24(data) 25 500 125 - 502: 17(fvec4) Load 501 - 503: 159(fvec3) VectorShuffle 502 502 0 1 2 - 504: 159(fvec3) GroupNonUniformFMin 35 Reduce 503 - 505: 137(ptr) AccessChain 24(data) 25 498 125 26 - 506: 16(float) CompositeExtract 504 0 - Store 505 506 - 507: 137(ptr) AccessChain 24(data) 25 498 125 58 - 508: 16(float) CompositeExtract 504 1 - Store 507 508 - 509: 137(ptr) AccessChain 24(data) 25 498 125 73 - 510: 16(float) CompositeExtract 504 2 - Store 509 510 - 511: 27(ptr) AccessChain 10(dti) 26 - 512: 6(int) Load 511 - 513: 27(ptr) AccessChain 10(dti) 26 - 514: 6(int) Load 513 - 515: 175(ptr) AccessChain 24(data) 25 514 172 - 516: 19(f64vec4) Load 515 - 517: 19(f64vec4) GroupNonUniformFMin 35 Reduce 516 - 518: 175(ptr) AccessChain 24(data) 25 512 172 - Store 518 517 - 519: 27(ptr) AccessChain 10(dti) 26 - 520: 6(int) Load 519 - 521: 27(ptr) AccessChain 10(dti) 26 - 522: 6(int) Load 521 - 523: 184(ptr) AccessChain 24(data) 25 522 172 26 - 524:18(float64_t) Load 523 - 525:18(float64_t) GroupNonUniformFMin 35 Reduce 524 - 526: 184(ptr) AccessChain 24(data) 25 520 172 26 - Store 526 525 - 527: 27(ptr) AccessChain 10(dti) 26 - 528: 6(int) Load 527 - 529: 27(ptr) AccessChain 10(dti) 26 - 530: 6(int) Load 529 - 531: 175(ptr) AccessChain 24(data) 25 530 172 - 532: 19(f64vec4) Load 531 - 533:193(f64vec2) VectorShuffle 532 532 0 1 - 534:193(f64vec2) GroupNonUniformFMin 35 Reduce 533 - 535: 184(ptr) AccessChain 24(data) 25 528 172 26 - 536:18(float64_t) CompositeExtract 534 0 - Store 535 536 - 537: 184(ptr) AccessChain 24(data) 25 528 172 58 - 538:18(float64_t) CompositeExtract 534 1 - Store 537 538 - 539: 27(ptr) AccessChain 10(dti) 26 - 540: 6(int) Load 539 - 541: 27(ptr) AccessChain 10(dti) 26 - 542: 6(int) Load 541 - 543: 175(ptr) AccessChain 24(data) 25 542 172 - 544: 19(f64vec4) Load 543 - 545:206(f64vec3) VectorShuffle 544 544 0 1 2 - 546:206(f64vec3) GroupNonUniformFMin 35 Reduce 545 - 547: 184(ptr) AccessChain 24(data) 25 540 172 26 - 548:18(float64_t) CompositeExtract 546 0 - Store 547 548 - 549: 184(ptr) AccessChain 24(data) 25 540 172 58 - 550:18(float64_t) CompositeExtract 546 1 - Store 549 550 - 551: 184(ptr) AccessChain 24(data) 25 540 172 73 - 552:18(float64_t) CompositeExtract 546 2 - Store 551 552 - 553: 27(ptr) AccessChain 10(dti) 26 - 554: 6(int) Load 553 - 555: 27(ptr) AccessChain 10(dti) 26 - 556: 6(int) Load 555 - 557: 32(ptr) AccessChain 24(data) 25 556 25 - 558: 13(ivec4) Load 557 - 559: 13(ivec4) GroupNonUniformUMax 35 Reduce 558 - 560: 32(ptr) AccessChain 24(data) 25 554 25 - Store 560 559 - 561: 27(ptr) AccessChain 10(dti) 26 - 562: 6(int) Load 561 - 563: 27(ptr) AccessChain 10(dti) 26 - 564: 6(int) Load 563 - 565: 42(ptr) AccessChain 24(data) 25 564 25 26 - 566: 6(int) Load 565 - 567: 6(int) GroupNonUniformUMax 35 Reduce 566 - 568: 42(ptr) AccessChain 24(data) 25 562 25 26 - Store 568 567 - 569: 27(ptr) AccessChain 10(dti) 26 - 570: 6(int) Load 569 - 571: 27(ptr) AccessChain 10(dti) 26 - 572: 6(int) Load 571 - 573: 32(ptr) AccessChain 24(data) 25 572 25 - 574: 13(ivec4) Load 573 - 575: 51(ivec2) VectorShuffle 574 574 0 1 - 576: 51(ivec2) GroupNonUniformUMax 35 Reduce 575 - 577: 42(ptr) AccessChain 24(data) 25 570 25 26 - 578: 6(int) CompositeExtract 576 0 - Store 577 578 - 579: 42(ptr) AccessChain 24(data) 25 570 25 58 - 580: 6(int) CompositeExtract 576 1 - Store 579 580 - 581: 27(ptr) AccessChain 10(dti) 26 - 582: 6(int) Load 581 - 583: 27(ptr) AccessChain 10(dti) 26 - 584: 6(int) Load 583 - 585: 32(ptr) AccessChain 24(data) 25 584 25 - 586: 13(ivec4) Load 585 - 587: 7(ivec3) VectorShuffle 586 586 0 1 2 - 588: 7(ivec3) GroupNonUniformUMax 35 Reduce 587 - 589: 42(ptr) AccessChain 24(data) 25 582 25 26 - 590: 6(int) CompositeExtract 588 0 - Store 589 590 - 591: 42(ptr) AccessChain 24(data) 25 582 25 58 - 592: 6(int) CompositeExtract 588 1 - Store 591 592 - 593: 42(ptr) AccessChain 24(data) 25 582 25 73 - 594: 6(int) CompositeExtract 588 2 - Store 593 594 - 595: 27(ptr) AccessChain 10(dti) 26 - 596: 6(int) Load 595 - 597: 27(ptr) AccessChain 10(dti) 26 - 598: 6(int) Load 597 - 599: 81(ptr) AccessChain 24(data) 25 598 78 - 600: 15(ivec4) Load 599 - 601: 15(ivec4) GroupNonUniformSMax 35 Reduce 600 - 602: 81(ptr) AccessChain 24(data) 25 596 78 - Store 602 601 - 603: 27(ptr) AccessChain 10(dti) 26 - 604: 6(int) Load 603 - 605: 27(ptr) AccessChain 10(dti) 26 - 606: 6(int) Load 605 - 607: 90(ptr) AccessChain 24(data) 25 606 78 26 - 608: 14(int) Load 607 - 609: 14(int) GroupNonUniformSMax 35 Reduce 608 - 610: 90(ptr) AccessChain 24(data) 25 604 78 26 - Store 610 609 - 611: 27(ptr) AccessChain 10(dti) 26 - 612: 6(int) Load 611 - 613: 27(ptr) AccessChain 10(dti) 26 - 614: 6(int) Load 613 - 615: 81(ptr) AccessChain 24(data) 25 614 78 - 616: 15(ivec4) Load 615 - 617: 99(ivec2) VectorShuffle 616 616 0 1 - 618: 99(ivec2) GroupNonUniformSMax 35 Reduce 617 - 619: 90(ptr) AccessChain 24(data) 25 612 78 26 - 620: 14(int) CompositeExtract 618 0 - Store 619 620 - 621: 90(ptr) AccessChain 24(data) 25 612 78 58 - 622: 14(int) CompositeExtract 618 1 - Store 621 622 - 623: 27(ptr) AccessChain 10(dti) 26 - 624: 6(int) Load 623 - 625: 27(ptr) AccessChain 10(dti) 26 - 626: 6(int) Load 625 - 627: 81(ptr) AccessChain 24(data) 25 626 78 - 628: 15(ivec4) Load 627 - 629: 112(ivec3) VectorShuffle 628 628 0 1 2 - 630: 112(ivec3) GroupNonUniformSMax 35 Reduce 629 - 631: 90(ptr) AccessChain 24(data) 25 624 78 26 - 632: 14(int) CompositeExtract 630 0 - Store 631 632 - 633: 90(ptr) AccessChain 24(data) 25 624 78 58 - 634: 14(int) CompositeExtract 630 1 - Store 633 634 - 635: 90(ptr) AccessChain 24(data) 25 624 78 73 - 636: 14(int) CompositeExtract 630 2 - Store 635 636 - 637: 27(ptr) AccessChain 10(dti) 26 - 638: 6(int) Load 637 - 639: 27(ptr) AccessChain 10(dti) 26 - 640: 6(int) Load 639 - 641: 128(ptr) AccessChain 24(data) 25 640 125 - 642: 17(fvec4) Load 641 - 643: 17(fvec4) GroupNonUniformFMax 35 Reduce 642 - 644: 128(ptr) AccessChain 24(data) 25 638 125 - Store 644 643 - 645: 27(ptr) AccessChain 10(dti) 26 - 646: 6(int) Load 645 - 647: 27(ptr) AccessChain 10(dti) 26 - 648: 6(int) Load 647 - 649: 137(ptr) AccessChain 24(data) 25 648 125 26 - 650: 16(float) Load 649 - 651: 16(float) GroupNonUniformFMax 35 Reduce 650 - 652: 137(ptr) AccessChain 24(data) 25 646 125 26 - Store 652 651 - 653: 27(ptr) AccessChain 10(dti) 26 - 654: 6(int) Load 653 - 655: 27(ptr) AccessChain 10(dti) 26 - 656: 6(int) Load 655 - 657: 128(ptr) AccessChain 24(data) 25 656 125 - 658: 17(fvec4) Load 657 - 659: 146(fvec2) VectorShuffle 658 658 0 1 - 660: 146(fvec2) GroupNonUniformFMax 35 Reduce 659 - 661: 137(ptr) AccessChain 24(data) 25 654 125 26 - 662: 16(float) CompositeExtract 660 0 - Store 661 662 - 663: 137(ptr) AccessChain 24(data) 25 654 125 58 - 664: 16(float) CompositeExtract 660 1 - Store 663 664 - 665: 27(ptr) AccessChain 10(dti) 26 - 666: 6(int) Load 665 - 667: 27(ptr) AccessChain 10(dti) 26 - 668: 6(int) Load 667 - 669: 128(ptr) AccessChain 24(data) 25 668 125 - 670: 17(fvec4) Load 669 - 671: 159(fvec3) VectorShuffle 670 670 0 1 2 - 672: 159(fvec3) GroupNonUniformFMax 35 Reduce 671 - 673: 137(ptr) AccessChain 24(data) 25 666 125 26 - 674: 16(float) CompositeExtract 672 0 - Store 673 674 - 675: 137(ptr) AccessChain 24(data) 25 666 125 58 - 676: 16(float) CompositeExtract 672 1 - Store 675 676 - 677: 137(ptr) AccessChain 24(data) 25 666 125 73 - 678: 16(float) CompositeExtract 672 2 - Store 677 678 - 679: 27(ptr) AccessChain 10(dti) 26 - 680: 6(int) Load 679 - 681: 27(ptr) AccessChain 10(dti) 26 - 682: 6(int) Load 681 - 683: 175(ptr) AccessChain 24(data) 25 682 172 - 684: 19(f64vec4) Load 683 - 685: 19(f64vec4) GroupNonUniformFMax 35 Reduce 684 - 686: 175(ptr) AccessChain 24(data) 25 680 172 - Store 686 685 - 687: 27(ptr) AccessChain 10(dti) 26 - 688: 6(int) Load 687 - 689: 27(ptr) AccessChain 10(dti) 26 - 690: 6(int) Load 689 - 691: 184(ptr) AccessChain 24(data) 25 690 172 26 - 692:18(float64_t) Load 691 - 693:18(float64_t) GroupNonUniformFMax 35 Reduce 692 - 694: 184(ptr) AccessChain 24(data) 25 688 172 26 - Store 694 693 - 695: 27(ptr) AccessChain 10(dti) 26 - 696: 6(int) Load 695 - 697: 27(ptr) AccessChain 10(dti) 26 - 698: 6(int) Load 697 - 699: 175(ptr) AccessChain 24(data) 25 698 172 - 700: 19(f64vec4) Load 699 - 701:193(f64vec2) VectorShuffle 700 700 0 1 - 702:193(f64vec2) GroupNonUniformFMax 35 Reduce 701 - 703: 184(ptr) AccessChain 24(data) 25 696 172 26 - 704:18(float64_t) CompositeExtract 702 0 - Store 703 704 - 705: 184(ptr) AccessChain 24(data) 25 696 172 58 - 706:18(float64_t) CompositeExtract 702 1 - Store 705 706 - 707: 27(ptr) AccessChain 10(dti) 26 - 708: 6(int) Load 707 - 709: 27(ptr) AccessChain 10(dti) 26 - 710: 6(int) Load 709 - 711: 175(ptr) AccessChain 24(data) 25 710 172 - 712: 19(f64vec4) Load 711 - 713:206(f64vec3) VectorShuffle 712 712 0 1 2 - 714:206(f64vec3) GroupNonUniformFMax 35 Reduce 713 - 715: 184(ptr) AccessChain 24(data) 25 708 172 26 - 716:18(float64_t) CompositeExtract 714 0 - Store 715 716 - 717: 184(ptr) AccessChain 24(data) 25 708 172 58 - 718:18(float64_t) CompositeExtract 714 1 - Store 717 718 - 719: 184(ptr) AccessChain 24(data) 25 708 172 73 - 720:18(float64_t) CompositeExtract 714 2 - Store 719 720 - 721: 27(ptr) AccessChain 10(dti) 26 - 722: 6(int) Load 721 - 723: 27(ptr) AccessChain 10(dti) 26 - 724: 6(int) Load 723 - 725: 32(ptr) AccessChain 24(data) 25 724 25 - 726: 13(ivec4) Load 725 - 727: 13(ivec4) GroupNonUniformBitwiseAnd 35 Reduce 726 - 728: 32(ptr) AccessChain 24(data) 25 722 25 - Store 728 727 - 729: 27(ptr) AccessChain 10(dti) 26 - 730: 6(int) Load 729 - 731: 27(ptr) AccessChain 10(dti) 26 - 732: 6(int) Load 731 - 733: 42(ptr) AccessChain 24(data) 25 732 25 26 - 734: 6(int) Load 733 - 735: 6(int) GroupNonUniformBitwiseAnd 35 Reduce 734 - 736: 42(ptr) AccessChain 24(data) 25 730 25 26 - Store 736 735 - 737: 27(ptr) AccessChain 10(dti) 26 - 738: 6(int) Load 737 - 739: 27(ptr) AccessChain 10(dti) 26 - 740: 6(int) Load 739 - 741: 32(ptr) AccessChain 24(data) 25 740 25 - 742: 13(ivec4) Load 741 - 743: 51(ivec2) VectorShuffle 742 742 0 1 - 744: 51(ivec2) GroupNonUniformBitwiseAnd 35 Reduce 743 - 745: 42(ptr) AccessChain 24(data) 25 738 25 26 - 746: 6(int) CompositeExtract 744 0 - Store 745 746 - 747: 42(ptr) AccessChain 24(data) 25 738 25 58 - 748: 6(int) CompositeExtract 744 1 - Store 747 748 - 749: 27(ptr) AccessChain 10(dti) 26 - 750: 6(int) Load 749 - 751: 27(ptr) AccessChain 10(dti) 26 - 752: 6(int) Load 751 - 753: 32(ptr) AccessChain 24(data) 25 752 25 - 754: 13(ivec4) Load 753 - 755: 7(ivec3) VectorShuffle 754 754 0 1 2 - 756: 7(ivec3) GroupNonUniformBitwiseAnd 35 Reduce 755 - 757: 42(ptr) AccessChain 24(data) 25 750 25 26 - 758: 6(int) CompositeExtract 756 0 - Store 757 758 - 759: 42(ptr) AccessChain 24(data) 25 750 25 58 - 760: 6(int) CompositeExtract 756 1 - Store 759 760 - 761: 42(ptr) AccessChain 24(data) 25 750 25 73 - 762: 6(int) CompositeExtract 756 2 - Store 761 762 - 763: 27(ptr) AccessChain 10(dti) 26 - 764: 6(int) Load 763 - 765: 27(ptr) AccessChain 10(dti) 26 - 766: 6(int) Load 765 - 767: 81(ptr) AccessChain 24(data) 25 766 78 - 768: 15(ivec4) Load 767 - 769: 15(ivec4) GroupNonUniformBitwiseAnd 35 Reduce 768 - 770: 81(ptr) AccessChain 24(data) 25 764 78 - Store 770 769 - 771: 27(ptr) AccessChain 10(dti) 26 - 772: 6(int) Load 771 - 773: 27(ptr) AccessChain 10(dti) 26 - 774: 6(int) Load 773 - 775: 90(ptr) AccessChain 24(data) 25 774 78 26 - 776: 14(int) Load 775 - 777: 14(int) GroupNonUniformBitwiseAnd 35 Reduce 776 - 778: 90(ptr) AccessChain 24(data) 25 772 78 26 - Store 778 777 - 779: 27(ptr) AccessChain 10(dti) 26 - 780: 6(int) Load 779 - 781: 27(ptr) AccessChain 10(dti) 26 - 782: 6(int) Load 781 - 783: 81(ptr) AccessChain 24(data) 25 782 78 - 784: 15(ivec4) Load 783 - 785: 99(ivec2) VectorShuffle 784 784 0 1 - 786: 99(ivec2) GroupNonUniformBitwiseAnd 35 Reduce 785 - 787: 90(ptr) AccessChain 24(data) 25 780 78 26 - 788: 14(int) CompositeExtract 786 0 - Store 787 788 - 789: 90(ptr) AccessChain 24(data) 25 780 78 58 - 790: 14(int) CompositeExtract 786 1 - Store 789 790 - 791: 27(ptr) AccessChain 10(dti) 26 - 792: 6(int) Load 791 - 793: 27(ptr) AccessChain 10(dti) 26 - 794: 6(int) Load 793 - 795: 81(ptr) AccessChain 24(data) 25 794 78 - 796: 15(ivec4) Load 795 - 797: 112(ivec3) VectorShuffle 796 796 0 1 2 - 798: 112(ivec3) GroupNonUniformBitwiseAnd 35 Reduce 797 - 799: 90(ptr) AccessChain 24(data) 25 792 78 26 - 800: 14(int) CompositeExtract 798 0 - Store 799 800 - 801: 90(ptr) AccessChain 24(data) 25 792 78 58 - 802: 14(int) CompositeExtract 798 1 - Store 801 802 - 803: 90(ptr) AccessChain 24(data) 25 792 78 73 - 804: 14(int) CompositeExtract 798 2 - Store 803 804 - 805: 27(ptr) AccessChain 10(dti) 26 - 806: 6(int) Load 805 - 807: 27(ptr) AccessChain 10(dti) 26 - 808: 6(int) Load 807 - 809: 32(ptr) AccessChain 24(data) 25 808 25 - 810: 13(ivec4) Load 809 - 811: 13(ivec4) GroupNonUniformBitwiseOr 35 Reduce 810 - 812: 32(ptr) AccessChain 24(data) 25 806 25 - Store 812 811 - 813: 27(ptr) AccessChain 10(dti) 26 - 814: 6(int) Load 813 - 815: 27(ptr) AccessChain 10(dti) 26 - 816: 6(int) Load 815 - 817: 42(ptr) AccessChain 24(data) 25 816 25 26 - 818: 6(int) Load 817 - 819: 6(int) GroupNonUniformBitwiseOr 35 Reduce 818 - 820: 42(ptr) AccessChain 24(data) 25 814 25 26 - Store 820 819 - 821: 27(ptr) AccessChain 10(dti) 26 - 822: 6(int) Load 821 - 823: 27(ptr) AccessChain 10(dti) 26 - 824: 6(int) Load 823 - 825: 32(ptr) AccessChain 24(data) 25 824 25 - 826: 13(ivec4) Load 825 - 827: 51(ivec2) VectorShuffle 826 826 0 1 - 828: 51(ivec2) GroupNonUniformBitwiseOr 35 Reduce 827 - 829: 42(ptr) AccessChain 24(data) 25 822 25 26 - 830: 6(int) CompositeExtract 828 0 - Store 829 830 - 831: 42(ptr) AccessChain 24(data) 25 822 25 58 - 832: 6(int) CompositeExtract 828 1 - Store 831 832 - 833: 27(ptr) AccessChain 10(dti) 26 - 834: 6(int) Load 833 - 835: 27(ptr) AccessChain 10(dti) 26 - 836: 6(int) Load 835 - 837: 32(ptr) AccessChain 24(data) 25 836 25 - 838: 13(ivec4) Load 837 - 839: 7(ivec3) VectorShuffle 838 838 0 1 2 - 840: 7(ivec3) GroupNonUniformBitwiseOr 35 Reduce 839 - 841: 42(ptr) AccessChain 24(data) 25 834 25 26 - 842: 6(int) CompositeExtract 840 0 - Store 841 842 - 843: 42(ptr) AccessChain 24(data) 25 834 25 58 - 844: 6(int) CompositeExtract 840 1 - Store 843 844 - 845: 42(ptr) AccessChain 24(data) 25 834 25 73 - 846: 6(int) CompositeExtract 840 2 - Store 845 846 - 847: 27(ptr) AccessChain 10(dti) 26 - 848: 6(int) Load 847 - 849: 27(ptr) AccessChain 10(dti) 26 - 850: 6(int) Load 849 - 851: 81(ptr) AccessChain 24(data) 25 850 78 - 852: 15(ivec4) Load 851 - 853: 15(ivec4) GroupNonUniformBitwiseOr 35 Reduce 852 - 854: 81(ptr) AccessChain 24(data) 25 848 78 - Store 854 853 - 855: 27(ptr) AccessChain 10(dti) 26 - 856: 6(int) Load 855 - 857: 27(ptr) AccessChain 10(dti) 26 - 858: 6(int) Load 857 - 859: 90(ptr) AccessChain 24(data) 25 858 78 26 - 860: 14(int) Load 859 - 861: 14(int) GroupNonUniformBitwiseOr 35 Reduce 860 - 862: 90(ptr) AccessChain 24(data) 25 856 78 26 - Store 862 861 - 863: 27(ptr) AccessChain 10(dti) 26 - 864: 6(int) Load 863 - 865: 27(ptr) AccessChain 10(dti) 26 - 866: 6(int) Load 865 - 867: 81(ptr) AccessChain 24(data) 25 866 78 - 868: 15(ivec4) Load 867 - 869: 99(ivec2) VectorShuffle 868 868 0 1 - 870: 99(ivec2) GroupNonUniformBitwiseOr 35 Reduce 869 - 871: 90(ptr) AccessChain 24(data) 25 864 78 26 - 872: 14(int) CompositeExtract 870 0 - Store 871 872 - 873: 90(ptr) AccessChain 24(data) 25 864 78 58 - 874: 14(int) CompositeExtract 870 1 - Store 873 874 - 875: 27(ptr) AccessChain 10(dti) 26 - 876: 6(int) Load 875 - 877: 27(ptr) AccessChain 10(dti) 26 - 878: 6(int) Load 877 - 879: 81(ptr) AccessChain 24(data) 25 878 78 - 880: 15(ivec4) Load 879 - 881: 112(ivec3) VectorShuffle 880 880 0 1 2 - 882: 112(ivec3) GroupNonUniformBitwiseOr 35 Reduce 881 - 883: 90(ptr) AccessChain 24(data) 25 876 78 26 - 884: 14(int) CompositeExtract 882 0 - Store 883 884 - 885: 90(ptr) AccessChain 24(data) 25 876 78 58 - 886: 14(int) CompositeExtract 882 1 - Store 885 886 - 887: 90(ptr) AccessChain 24(data) 25 876 78 73 - 888: 14(int) CompositeExtract 882 2 - Store 887 888 - 889: 27(ptr) AccessChain 10(dti) 26 - 890: 6(int) Load 889 - 891: 27(ptr) AccessChain 10(dti) 26 - 892: 6(int) Load 891 - 893: 32(ptr) AccessChain 24(data) 25 892 25 - 894: 13(ivec4) Load 893 - 895: 13(ivec4) GroupNonUniformBitwiseXor 35 Reduce 894 - 896: 32(ptr) AccessChain 24(data) 25 890 25 - Store 896 895 - 897: 27(ptr) AccessChain 10(dti) 26 - 898: 6(int) Load 897 - 899: 27(ptr) AccessChain 10(dti) 26 - 900: 6(int) Load 899 - 901: 42(ptr) AccessChain 24(data) 25 900 25 26 - 902: 6(int) Load 901 - 903: 6(int) GroupNonUniformBitwiseXor 35 Reduce 902 - 904: 42(ptr) AccessChain 24(data) 25 898 25 26 - Store 904 903 - 905: 27(ptr) AccessChain 10(dti) 26 - 906: 6(int) Load 905 - 907: 27(ptr) AccessChain 10(dti) 26 - 908: 6(int) Load 907 - 909: 32(ptr) AccessChain 24(data) 25 908 25 - 910: 13(ivec4) Load 909 - 911: 51(ivec2) VectorShuffle 910 910 0 1 - 912: 51(ivec2) GroupNonUniformBitwiseXor 35 Reduce 911 - 913: 42(ptr) AccessChain 24(data) 25 906 25 26 - 914: 6(int) CompositeExtract 912 0 - Store 913 914 - 915: 42(ptr) AccessChain 24(data) 25 906 25 58 - 916: 6(int) CompositeExtract 912 1 - Store 915 916 - 917: 27(ptr) AccessChain 10(dti) 26 - 918: 6(int) Load 917 - 919: 27(ptr) AccessChain 10(dti) 26 - 920: 6(int) Load 919 - 921: 32(ptr) AccessChain 24(data) 25 920 25 - 922: 13(ivec4) Load 921 - 923: 7(ivec3) VectorShuffle 922 922 0 1 2 - 924: 7(ivec3) GroupNonUniformBitwiseXor 35 Reduce 923 - 925: 42(ptr) AccessChain 24(data) 25 918 25 26 - 926: 6(int) CompositeExtract 924 0 - Store 925 926 - 927: 42(ptr) AccessChain 24(data) 25 918 25 58 - 928: 6(int) CompositeExtract 924 1 - Store 927 928 - 929: 42(ptr) AccessChain 24(data) 25 918 25 73 - 930: 6(int) CompositeExtract 924 2 - Store 929 930 - 931: 27(ptr) AccessChain 10(dti) 26 - 932: 6(int) Load 931 - 933: 27(ptr) AccessChain 10(dti) 26 - 934: 6(int) Load 933 - 935: 81(ptr) AccessChain 24(data) 25 934 78 - 936: 15(ivec4) Load 935 - 937: 15(ivec4) GroupNonUniformBitwiseXor 35 Reduce 936 - 938: 81(ptr) AccessChain 24(data) 25 932 78 - Store 938 937 - 939: 27(ptr) AccessChain 10(dti) 26 - 940: 6(int) Load 939 - 941: 27(ptr) AccessChain 10(dti) 26 - 942: 6(int) Load 941 - 943: 90(ptr) AccessChain 24(data) 25 942 78 26 - 944: 14(int) Load 943 - 945: 14(int) GroupNonUniformBitwiseXor 35 Reduce 944 - 946: 90(ptr) AccessChain 24(data) 25 940 78 26 - Store 946 945 - 947: 27(ptr) AccessChain 10(dti) 26 - 948: 6(int) Load 947 - 949: 27(ptr) AccessChain 10(dti) 26 - 950: 6(int) Load 949 - 951: 81(ptr) AccessChain 24(data) 25 950 78 - 952: 15(ivec4) Load 951 - 953: 99(ivec2) VectorShuffle 952 952 0 1 - 954: 99(ivec2) GroupNonUniformBitwiseXor 35 Reduce 953 - 955: 90(ptr) AccessChain 24(data) 25 948 78 26 - 956: 14(int) CompositeExtract 954 0 - Store 955 956 - 957: 90(ptr) AccessChain 24(data) 25 948 78 58 - 958: 14(int) CompositeExtract 954 1 - Store 957 958 - 959: 27(ptr) AccessChain 10(dti) 26 - 960: 6(int) Load 959 - 961: 27(ptr) AccessChain 10(dti) 26 - 962: 6(int) Load 961 - 963: 81(ptr) AccessChain 24(data) 25 962 78 - 964: 15(ivec4) Load 963 - 965: 112(ivec3) VectorShuffle 964 964 0 1 2 - 966: 112(ivec3) GroupNonUniformBitwiseXor 35 Reduce 965 - 967: 90(ptr) AccessChain 24(data) 25 960 78 26 - 968: 14(int) CompositeExtract 966 0 - Store 967 968 - 969: 90(ptr) AccessChain 24(data) 25 960 78 58 - 970: 14(int) CompositeExtract 966 1 - Store 969 970 - 971: 90(ptr) AccessChain 24(data) 25 960 78 73 - 972: 14(int) CompositeExtract 966 2 - Store 971 972 - 973: 27(ptr) AccessChain 10(dti) 26 - 974: 6(int) Load 973 - 975: 27(ptr) AccessChain 10(dti) 26 - 976: 6(int) Load 975 - 977: 42(ptr) AccessChain 24(data) 25 976 25 26 - 978: 6(int) Load 977 - 980: 979(bool) IEqual 978 26 - 981: 13(ivec4) GroupNonUniformBallot 35 980 - 982: 6(int) GroupNonUniformBallotBitCount 35 Reduce 981 - 983: 42(ptr) AccessChain 24(data) 25 974 25 26 - Store 983 982 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.wavevote.comp.out b/deps/glslang/Test/baseResults/hlsl.wavevote.comp.out deleted file mode 100644 index 83140a2f..00000000 --- a/deps/glslang/Test/baseResults/hlsl.wavevote.comp.out +++ /dev/null @@ -1,317 +0,0 @@ -hlsl.wavevote.comp -Shader version: 500 -local_size = (32, 16, 1) -0:? Sequence -0:5 Function Definition: @CSMain(vu3; ( temp void) -0:5 Function Parameters: -0:5 'dti' ( in 3-component vector of uint) -0:? Sequence -0:6 move second child to first child ( temp uint64_t) -0:6 indirect index (layout( row_major std430) buffer uint64_t) -0:6 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint64_t) -0:6 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint64_t @data}) -0:6 Constant: -0:6 0 (const uint) -0:6 direct index ( temp uint) -0:6 'dti' ( in 3-component vector of uint) -0:6 Constant: -0:6 0 (const int) -0:6 Construct uint64 (layout( row_major std430) buffer uint64_t) -0:6 Convert uint to uint64 ( temp 4-component vector of uint64_t) -0:6 subgroupBallot ( temp 4-component vector of uint) -0:6 subgroupAny ( temp bool) -0:6 Compare Equal ( temp bool) -0:6 direct index ( temp uint) -0:6 'dti' ( in 3-component vector of uint) -0:6 Constant: -0:6 0 (const int) -0:6 Constant: -0:6 0 (const uint) -0:7 move second child to first child ( temp uint64_t) -0:7 indirect index (layout( row_major std430) buffer uint64_t) -0:7 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint64_t) -0:7 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint64_t @data}) -0:7 Constant: -0:7 0 (const uint) -0:7 direct index ( temp uint) -0:7 'dti' ( in 3-component vector of uint) -0:7 Constant: -0:7 1 (const int) -0:7 Construct uint64 (layout( row_major std430) buffer uint64_t) -0:7 Convert uint to uint64 ( temp 4-component vector of uint64_t) -0:7 subgroupBallot ( temp 4-component vector of uint) -0:7 subgroupAll ( temp bool) -0:7 Compare Equal ( temp bool) -0:7 direct index ( temp uint) -0:7 'dti' ( in 3-component vector of uint) -0:7 Constant: -0:7 1 (const int) -0:7 Constant: -0:7 0 (const uint) -0:8 move second child to first child ( temp uint64_t) -0:8 indirect index (layout( row_major std430) buffer uint64_t) -0:8 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint64_t) -0:8 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint64_t @data}) -0:8 Constant: -0:8 0 (const uint) -0:8 direct index ( temp uint) -0:8 'dti' ( in 3-component vector of uint) -0:8 Constant: -0:8 2 (const int) -0:8 Construct uint64 (layout( row_major std430) buffer uint64_t) -0:8 Convert uint to uint64 ( temp 4-component vector of uint64_t) -0:8 subgroupBallot ( temp 4-component vector of uint) -0:8 subgroupAllEqual ( temp bool) -0:8 Compare Equal ( temp bool) -0:8 direct index ( temp uint) -0:8 'dti' ( in 3-component vector of uint) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 0 (const uint) -0:9 move second child to first child ( temp uint64_t) -0:9 indirect index (layout( row_major std430) buffer uint64_t) -0:9 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint64_t) -0:9 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint64_t @data}) -0:9 Constant: -0:9 0 (const uint) -0:9 direct index ( temp uint) -0:9 'dti' ( in 3-component vector of uint) -0:9 Constant: -0:9 2 (const int) -0:9 Construct uint64 (layout( row_major std430) buffer uint64_t) -0:9 Convert uint to uint64 ( temp 4-component vector of uint64_t) -0:9 subgroupBallot ( temp 4-component vector of uint) -0:9 subgroupAllEqual ( temp bool) -0:9 direct index ( temp uint) -0:9 'dti' ( in 3-component vector of uint) -0:9 Constant: -0:9 2 (const int) -0:5 Function Definition: CSMain( ( temp void) -0:5 Function Parameters: -0:? Sequence -0:5 move second child to first child ( temp 3-component vector of uint) -0:? 'dti' ( temp 3-component vector of uint) -0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) -0:5 Function Call: @CSMain(vu3; ( temp void) -0:? 'dti' ( temp 3-component vector of uint) -0:? Linker Objects -0:? 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint64_t @data}) -0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) - - -Linked compute stage: - - -Shader version: 500 -local_size = (32, 16, 1) -0:? Sequence -0:5 Function Definition: @CSMain(vu3; ( temp void) -0:5 Function Parameters: -0:5 'dti' ( in 3-component vector of uint) -0:? Sequence -0:6 move second child to first child ( temp uint64_t) -0:6 indirect index (layout( row_major std430) buffer uint64_t) -0:6 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint64_t) -0:6 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint64_t @data}) -0:6 Constant: -0:6 0 (const uint) -0:6 direct index ( temp uint) -0:6 'dti' ( in 3-component vector of uint) -0:6 Constant: -0:6 0 (const int) -0:6 Construct uint64 (layout( row_major std430) buffer uint64_t) -0:6 Convert uint to uint64 ( temp 4-component vector of uint64_t) -0:6 subgroupBallot ( temp 4-component vector of uint) -0:6 subgroupAny ( temp bool) -0:6 Compare Equal ( temp bool) -0:6 direct index ( temp uint) -0:6 'dti' ( in 3-component vector of uint) -0:6 Constant: -0:6 0 (const int) -0:6 Constant: -0:6 0 (const uint) -0:7 move second child to first child ( temp uint64_t) -0:7 indirect index (layout( row_major std430) buffer uint64_t) -0:7 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint64_t) -0:7 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint64_t @data}) -0:7 Constant: -0:7 0 (const uint) -0:7 direct index ( temp uint) -0:7 'dti' ( in 3-component vector of uint) -0:7 Constant: -0:7 1 (const int) -0:7 Construct uint64 (layout( row_major std430) buffer uint64_t) -0:7 Convert uint to uint64 ( temp 4-component vector of uint64_t) -0:7 subgroupBallot ( temp 4-component vector of uint) -0:7 subgroupAll ( temp bool) -0:7 Compare Equal ( temp bool) -0:7 direct index ( temp uint) -0:7 'dti' ( in 3-component vector of uint) -0:7 Constant: -0:7 1 (const int) -0:7 Constant: -0:7 0 (const uint) -0:8 move second child to first child ( temp uint64_t) -0:8 indirect index (layout( row_major std430) buffer uint64_t) -0:8 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint64_t) -0:8 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint64_t @data}) -0:8 Constant: -0:8 0 (const uint) -0:8 direct index ( temp uint) -0:8 'dti' ( in 3-component vector of uint) -0:8 Constant: -0:8 2 (const int) -0:8 Construct uint64 (layout( row_major std430) buffer uint64_t) -0:8 Convert uint to uint64 ( temp 4-component vector of uint64_t) -0:8 subgroupBallot ( temp 4-component vector of uint) -0:8 subgroupAllEqual ( temp bool) -0:8 Compare Equal ( temp bool) -0:8 direct index ( temp uint) -0:8 'dti' ( in 3-component vector of uint) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 0 (const uint) -0:9 move second child to first child ( temp uint64_t) -0:9 indirect index (layout( row_major std430) buffer uint64_t) -0:9 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint64_t) -0:9 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint64_t @data}) -0:9 Constant: -0:9 0 (const uint) -0:9 direct index ( temp uint) -0:9 'dti' ( in 3-component vector of uint) -0:9 Constant: -0:9 2 (const int) -0:9 Construct uint64 (layout( row_major std430) buffer uint64_t) -0:9 Convert uint to uint64 ( temp 4-component vector of uint64_t) -0:9 subgroupBallot ( temp 4-component vector of uint) -0:9 subgroupAllEqual ( temp bool) -0:9 direct index ( temp uint) -0:9 'dti' ( in 3-component vector of uint) -0:9 Constant: -0:9 2 (const int) -0:5 Function Definition: CSMain( ( temp void) -0:5 Function Parameters: -0:? Sequence -0:5 move second child to first child ( temp 3-component vector of uint) -0:? 'dti' ( temp 3-component vector of uint) -0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) -0:5 Function Call: @CSMain(vu3; ( temp void) -0:? 'dti' ( temp 3-component vector of uint) -0:? Linker Objects -0:? 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint64_t @data}) -0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) - -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 75 - - Capability Shader - Capability Int64 - Capability GroupNonUniform - Capability GroupNonUniformVote - Capability GroupNonUniformBallot - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "CSMain" 70 - ExecutionMode 4 LocalSize 32 16 1 - Source HLSL 500 - Name 4 "CSMain" - Name 11 "@CSMain(vu3;" - Name 10 "dti" - Name 15 "data" - MemberName 15(data) 0 "@data" - Name 17 "data" - Name 68 "dti" - Name 70 "dti" - Name 72 "param" - Decorate 14 ArrayStride 8 - MemberDecorate 15(data) 0 Offset 0 - Decorate 15(data) BufferBlock - Decorate 17(data) DescriptorSet 0 - Decorate 17(data) Binding 0 - Decorate 70(dti) BuiltIn GlobalInvocationId - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeVector 6(int) 3 - 8: TypePointer Function 7(ivec3) - 9: TypeFunction 2 8(ptr) - 13: TypeInt 64 0 - 14: TypeRuntimeArray 13(int64_t) - 15(data): TypeStruct 14 - 16: TypePointer Uniform 15(data) - 17(data): 16(ptr) Variable Uniform - 18: TypeInt 32 1 - 19: 18(int) Constant 0 - 20: 6(int) Constant 0 - 21: TypePointer Function 6(int) - 26: TypeBool - 28: 6(int) Constant 3 - 30: TypeVector 6(int) 4 - 32: TypeVector 13(int64_t) 4 - 35: TypePointer Uniform 13(int64_t) - 37: 6(int) Constant 1 - 48: 6(int) Constant 2 - 69: TypePointer Input 7(ivec3) - 70(dti): 69(ptr) Variable Input - 4(CSMain): 2 Function None 3 - 5: Label - 68(dti): 8(ptr) Variable Function - 72(param): 8(ptr) Variable Function - 71: 7(ivec3) Load 70(dti) - Store 68(dti) 71 - 73: 7(ivec3) Load 68(dti) - Store 72(param) 73 - 74: 2 FunctionCall 11(@CSMain(vu3;) 72(param) - Return - FunctionEnd -11(@CSMain(vu3;): 2 Function None 9 - 10(dti): 8(ptr) FunctionParameter - 12: Label - 22: 21(ptr) AccessChain 10(dti) 20 - 23: 6(int) Load 22 - 24: 21(ptr) AccessChain 10(dti) 20 - 25: 6(int) Load 24 - 27: 26(bool) IEqual 25 20 - 29: 26(bool) GroupNonUniformAny 28 27 - 31: 30(ivec4) GroupNonUniformBallot 28 29 - 33: 32(i64vec4) UConvert 31 - 34: 13(int64_t) CompositeExtract 33 0 - 36: 35(ptr) AccessChain 17(data) 19 23 - Store 36 34 - 38: 21(ptr) AccessChain 10(dti) 37 - 39: 6(int) Load 38 - 40: 21(ptr) AccessChain 10(dti) 37 - 41: 6(int) Load 40 - 42: 26(bool) IEqual 41 20 - 43: 26(bool) GroupNonUniformAll 28 42 - 44: 30(ivec4) GroupNonUniformBallot 28 43 - 45: 32(i64vec4) UConvert 44 - 46: 13(int64_t) CompositeExtract 45 0 - 47: 35(ptr) AccessChain 17(data) 19 39 - Store 47 46 - 49: 21(ptr) AccessChain 10(dti) 48 - 50: 6(int) Load 49 - 51: 21(ptr) AccessChain 10(dti) 48 - 52: 6(int) Load 51 - 53: 26(bool) IEqual 52 20 - 54: 26(bool) GroupNonUniformAllEqual 28 53 - 55: 30(ivec4) GroupNonUniformBallot 28 54 - 56: 32(i64vec4) UConvert 55 - 57: 13(int64_t) CompositeExtract 56 0 - 58: 35(ptr) AccessChain 17(data) 19 50 - Store 58 57 - 59: 21(ptr) AccessChain 10(dti) 48 - 60: 6(int) Load 59 - 61: 21(ptr) AccessChain 10(dti) 48 - 62: 6(int) Load 61 - 63: 26(bool) GroupNonUniformAllEqual 28 62 - 64: 30(ivec4) GroupNonUniformBallot 28 63 - 65: 32(i64vec4) UConvert 64 - 66: 13(int64_t) CompositeExtract 65 0 - 67: 35(ptr) AccessChain 17(data) 19 60 - Store 67 66 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.whileLoop.frag.out b/deps/glslang/Test/baseResults/hlsl.whileLoop.frag.out deleted file mode 100644 index 23825e8e..00000000 --- a/deps/glslang/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): 8000a -// 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) FUnordNotEqual 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/Test/baseResults/hlsl.y-negate-1.vert.out b/deps/glslang/Test/baseResults/hlsl.y-negate-1.vert.out deleted file mode 100644 index aefde041..00000000 --- a/deps/glslang/Test/baseResults/hlsl.y-negate-1.vert.out +++ /dev/null @@ -1,131 +0,0 @@ -hlsl.y-negate-1.vert -Shader version: 500 -0:? Sequence -0:7 Function Definition: @main( ( temp 4-component vector of float) -0:7 Function Parameters: -0:? Sequence -0:8 Branch: Return with expression -0:8 pos: direct index for structure ( uniform 4-component vector of float) -0:8 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float pos}) -0:8 Constant: -0:8 0 (const uint) -0:7 Function Definition: main( ( temp void) -0:7 Function Parameters: -0:? Sequence -0:7 Sequence -0:7 move second child to first child ( temp 4-component vector of float) -0:7 '@position' ( temp 4-component vector of float) -0:7 Function Call: @main( ( temp 4-component vector of float) -0:7 move second child to first child ( temp float) -0:7 direct index ( temp float) -0:7 '@position' ( temp 4-component vector of float) -0:7 Constant: -0:7 1 (const int) -0:7 Negate value ( temp float) -0:7 direct index ( temp float) -0:7 '@position' ( temp 4-component vector of float) -0:7 Constant: -0:7 1 (const int) -0:7 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' ( out 4-component vector of float Position) -0:7 '@position' ( temp 4-component vector of float) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float pos}) -0:? '@entryPointOutput' ( out 4-component vector of float Position) - - -Linked vertex stage: - - -Shader version: 500 -0:? Sequence -0:7 Function Definition: @main( ( temp 4-component vector of float) -0:7 Function Parameters: -0:? Sequence -0:8 Branch: Return with expression -0:8 pos: direct index for structure ( uniform 4-component vector of float) -0:8 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float pos}) -0:8 Constant: -0:8 0 (const uint) -0:7 Function Definition: main( ( temp void) -0:7 Function Parameters: -0:? Sequence -0:7 Sequence -0:7 move second child to first child ( temp 4-component vector of float) -0:7 '@position' ( temp 4-component vector of float) -0:7 Function Call: @main( ( temp 4-component vector of float) -0:7 move second child to first child ( temp float) -0:7 direct index ( temp float) -0:7 '@position' ( temp 4-component vector of float) -0:7 Constant: -0:7 1 (const int) -0:7 Negate value ( temp float) -0:7 direct index ( temp float) -0:7 '@position' ( temp 4-component vector of float) -0:7 Constant: -0:7 1 (const int) -0:7 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' ( out 4-component vector of float Position) -0:7 '@position' ( temp 4-component vector of float) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float pos}) -0:? '@entryPointOutput' ( out 4-component vector of float Position) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 34 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 32 - Source HLSL 500 - Name 4 "main" - Name 9 "@main(" - Name 11 "$Global" - MemberName 11($Global) 0 "pos" - Name 13 "" - Name 22 "@position" - Name 32 "@entryPointOutput" - MemberDecorate 11($Global) 0 Offset 0 - Decorate 11($Global) Block - Decorate 13 DescriptorSet 0 - Decorate 13 Binding 0 - Decorate 32(@entryPointOutput) BuiltIn Position - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 11($Global): TypeStruct 7(fvec4) - 12: TypePointer Uniform 11($Global) - 13: 12(ptr) Variable Uniform - 14: TypeInt 32 1 - 15: 14(int) Constant 0 - 16: TypePointer Uniform 7(fvec4) - 21: TypePointer Function 7(fvec4) - 24: TypeInt 32 0 - 25: 24(int) Constant 1 - 26: TypePointer Function 6(float) - 31: TypePointer Output 7(fvec4) -32(@entryPointOutput): 31(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 22(@position): 21(ptr) Variable Function - 23: 7(fvec4) FunctionCall 9(@main() - Store 22(@position) 23 - 27: 26(ptr) AccessChain 22(@position) 25 - 28: 6(float) Load 27 - 29: 6(float) FNegate 28 - 30: 26(ptr) AccessChain 22(@position) 25 - Store 30 29 - 33: 7(fvec4) Load 22(@position) - Store 32(@entryPointOutput) 33 - Return - FunctionEnd - 9(@main(): 7(fvec4) Function None 8 - 10: Label - 17: 16(ptr) AccessChain 13 15 - 18: 7(fvec4) Load 17 - ReturnValue 18 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.y-negate-2.vert.out b/deps/glslang/Test/baseResults/hlsl.y-negate-2.vert.out deleted file mode 100644 index 4a9ef611..00000000 --- a/deps/glslang/Test/baseResults/hlsl.y-negate-2.vert.out +++ /dev/null @@ -1,149 +0,0 @@ -hlsl.y-negate-2.vert -Shader version: 500 -0:? Sequence -0:6 Function Definition: @main(vf4; ( temp void) -0:6 Function Parameters: -0:6 'position' ( out 4-component vector of float) -0:? Sequence -0:7 move second child to first child ( temp 4-component vector of float) -0:7 'position' ( out 4-component vector of float) -0:7 pos: direct index for structure ( uniform 4-component vector of float) -0:7 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float pos}) -0:7 Constant: -0:7 0 (const uint) -0:6 Function Definition: main( ( temp void) -0:6 Function Parameters: -0:? Sequence -0:6 Function Call: @main(vf4; ( temp void) -0:? 'position' ( temp 4-component vector of float) -0:6 Sequence -0:6 move second child to first child ( temp 4-component vector of float) -0:6 '@position' ( temp 4-component vector of float) -0:? 'position' ( temp 4-component vector of float) -0:6 move second child to first child ( temp float) -0:6 direct index ( temp float) -0:6 '@position' ( temp 4-component vector of float) -0:6 Constant: -0:6 1 (const int) -0:6 Negate value ( temp float) -0:6 direct index ( temp float) -0:6 '@position' ( temp 4-component vector of float) -0:6 Constant: -0:6 1 (const int) -0:6 move second child to first child ( temp 4-component vector of float) -0:? 'position' ( out 4-component vector of float Position) -0:6 '@position' ( temp 4-component vector of float) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float pos}) -0:? 'position' ( out 4-component vector of float Position) - - -Linked vertex stage: - - -Shader version: 500 -0:? Sequence -0:6 Function Definition: @main(vf4; ( temp void) -0:6 Function Parameters: -0:6 'position' ( out 4-component vector of float) -0:? Sequence -0:7 move second child to first child ( temp 4-component vector of float) -0:7 'position' ( out 4-component vector of float) -0:7 pos: direct index for structure ( uniform 4-component vector of float) -0:7 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float pos}) -0:7 Constant: -0:7 0 (const uint) -0:6 Function Definition: main( ( temp void) -0:6 Function Parameters: -0:? Sequence -0:6 Function Call: @main(vf4; ( temp void) -0:? 'position' ( temp 4-component vector of float) -0:6 Sequence -0:6 move second child to first child ( temp 4-component vector of float) -0:6 '@position' ( temp 4-component vector of float) -0:? 'position' ( temp 4-component vector of float) -0:6 move second child to first child ( temp float) -0:6 direct index ( temp float) -0:6 '@position' ( temp 4-component vector of float) -0:6 Constant: -0:6 1 (const int) -0:6 Negate value ( temp float) -0:6 direct index ( temp float) -0:6 '@position' ( temp 4-component vector of float) -0:6 Constant: -0:6 1 (const int) -0:6 move second child to first child ( temp 4-component vector of float) -0:? 'position' ( out 4-component vector of float Position) -0:6 '@position' ( temp 4-component vector of float) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float pos}) -0:? 'position' ( out 4-component vector of float Position) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 37 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 35 - Source HLSL 500 - Name 4 "main" - Name 11 "@main(vf4;" - Name 10 "position" - Name 13 "$Global" - MemberName 13($Global) 0 "pos" - Name 15 "" - Name 21 "position" - Name 22 "param" - Name 25 "@position" - Name 35 "position" - MemberDecorate 13($Global) 0 Offset 0 - Decorate 13($Global) Block - Decorate 15 DescriptorSet 0 - Decorate 15 Binding 0 - Decorate 35(position) BuiltIn Position - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 9: TypeFunction 2 8(ptr) - 13($Global): TypeStruct 7(fvec4) - 14: TypePointer Uniform 13($Global) - 15: 14(ptr) Variable Uniform - 16: TypeInt 32 1 - 17: 16(int) Constant 0 - 18: TypePointer Uniform 7(fvec4) - 27: TypeInt 32 0 - 28: 27(int) Constant 1 - 29: TypePointer Function 6(float) - 34: TypePointer Output 7(fvec4) - 35(position): 34(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 21(position): 8(ptr) Variable Function - 22(param): 8(ptr) Variable Function - 25(@position): 8(ptr) Variable Function - 23: 2 FunctionCall 11(@main(vf4;) 22(param) - 24: 7(fvec4) Load 22(param) - Store 21(position) 24 - 26: 7(fvec4) Load 21(position) - Store 25(@position) 26 - 30: 29(ptr) AccessChain 25(@position) 28 - 31: 6(float) Load 30 - 32: 6(float) FNegate 31 - 33: 29(ptr) AccessChain 25(@position) 28 - Store 33 32 - 36: 7(fvec4) Load 25(@position) - Store 35(position) 36 - Return - FunctionEnd - 11(@main(vf4;): 2 Function None 9 - 10(position): 8(ptr) FunctionParameter - 12: Label - 19: 18(ptr) AccessChain 15 17 - 20: 7(fvec4) Load 19 - Store 10(position) 20 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/hlsl.y-negate-3.vert.out b/deps/glslang/Test/baseResults/hlsl.y-negate-3.vert.out deleted file mode 100644 index 35449103..00000000 --- a/deps/glslang/Test/baseResults/hlsl.y-negate-3.vert.out +++ /dev/null @@ -1,212 +0,0 @@ -hlsl.y-negate-3.vert -Shader version: 500 -0:? Sequence -0:11 Function Definition: @main( ( temp structure{ temp 4-component vector of float pos, temp int somethingelse}) -0:11 Function Parameters: -0:? Sequence -0:14 move second child to first child ( temp 4-component vector of float) -0:14 pos: direct index for structure ( temp 4-component vector of float) -0:14 'vsout' ( temp structure{ temp 4-component vector of float pos, temp int somethingelse}) -0:14 Constant: -0:14 0 (const int) -0:14 position: direct index for structure ( uniform 4-component vector of float) -0:14 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float position}) -0:14 Constant: -0:14 0 (const uint) -0:15 move second child to first child ( temp int) -0:15 somethingelse: direct index for structure ( temp int) -0:15 'vsout' ( temp structure{ temp 4-component vector of float pos, temp int somethingelse}) -0:15 Constant: -0:15 1 (const int) -0:15 Constant: -0:15 42 (const int) -0:17 Branch: Return with expression -0:17 'vsout' ( temp structure{ temp 4-component vector of float pos, temp int somethingelse}) -0:11 Function Definition: main( ( temp void) -0:11 Function Parameters: -0:? Sequence -0:11 Sequence -0:11 move second child to first child ( temp structure{ temp 4-component vector of float pos, temp int somethingelse}) -0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp int somethingelse}) -0:11 Function Call: @main( ( temp structure{ temp 4-component vector of float pos, temp int somethingelse}) -0:11 Sequence -0:11 move second child to first child ( temp 4-component vector of float) -0:11 '@position' ( temp 4-component vector of float) -0:11 pos: direct index for structure ( temp 4-component vector of float) -0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp int somethingelse}) -0:11 Constant: -0:11 0 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 '@position' ( temp 4-component vector of float) -0:11 Constant: -0:11 1 (const int) -0:11 Negate value ( temp float) -0:11 direct index ( temp float) -0:11 '@position' ( temp 4-component vector of float) -0:11 Constant: -0:11 1 (const int) -0:11 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.pos' ( out 4-component vector of float Position) -0:11 '@position' ( temp 4-component vector of float) -0:11 move second child to first child ( temp int) -0:? '@entryPointOutput.somethingelse' (layout( location=0) out int) -0:11 somethingelse: direct index for structure ( temp int) -0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp int somethingelse}) -0:11 Constant: -0:11 1 (const int) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float position}) -0:? '@entryPointOutput.pos' ( out 4-component vector of float Position) -0:? '@entryPointOutput.somethingelse' (layout( location=0) out int) - - -Linked vertex stage: - - -Shader version: 500 -0:? Sequence -0:11 Function Definition: @main( ( temp structure{ temp 4-component vector of float pos, temp int somethingelse}) -0:11 Function Parameters: -0:? Sequence -0:14 move second child to first child ( temp 4-component vector of float) -0:14 pos: direct index for structure ( temp 4-component vector of float) -0:14 'vsout' ( temp structure{ temp 4-component vector of float pos, temp int somethingelse}) -0:14 Constant: -0:14 0 (const int) -0:14 position: direct index for structure ( uniform 4-component vector of float) -0:14 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float position}) -0:14 Constant: -0:14 0 (const uint) -0:15 move second child to first child ( temp int) -0:15 somethingelse: direct index for structure ( temp int) -0:15 'vsout' ( temp structure{ temp 4-component vector of float pos, temp int somethingelse}) -0:15 Constant: -0:15 1 (const int) -0:15 Constant: -0:15 42 (const int) -0:17 Branch: Return with expression -0:17 'vsout' ( temp structure{ temp 4-component vector of float pos, temp int somethingelse}) -0:11 Function Definition: main( ( temp void) -0:11 Function Parameters: -0:? Sequence -0:11 Sequence -0:11 move second child to first child ( temp structure{ temp 4-component vector of float pos, temp int somethingelse}) -0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp int somethingelse}) -0:11 Function Call: @main( ( temp structure{ temp 4-component vector of float pos, temp int somethingelse}) -0:11 Sequence -0:11 move second child to first child ( temp 4-component vector of float) -0:11 '@position' ( temp 4-component vector of float) -0:11 pos: direct index for structure ( temp 4-component vector of float) -0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp int somethingelse}) -0:11 Constant: -0:11 0 (const int) -0:11 move second child to first child ( temp float) -0:11 direct index ( temp float) -0:11 '@position' ( temp 4-component vector of float) -0:11 Constant: -0:11 1 (const int) -0:11 Negate value ( temp float) -0:11 direct index ( temp float) -0:11 '@position' ( temp 4-component vector of float) -0:11 Constant: -0:11 1 (const int) -0:11 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput.pos' ( out 4-component vector of float Position) -0:11 '@position' ( temp 4-component vector of float) -0:11 move second child to first child ( temp int) -0:? '@entryPointOutput.somethingelse' (layout( location=0) out int) -0:11 somethingelse: direct index for structure ( temp int) -0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp int somethingelse}) -0:11 Constant: -0:11 1 (const int) -0:? Linker Objects -0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float position}) -0:? '@entryPointOutput.pos' ( out 4-component vector of float Position) -0:? '@entryPointOutput.somethingelse' (layout( location=0) out int) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 50 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 44 47 - Source HLSL 500 - Name 4 "main" - Name 9 "VS_OUT" - MemberName 9(VS_OUT) 0 "pos" - MemberName 9(VS_OUT) 1 "somethingelse" - Name 11 "@main(" - Name 14 "vsout" - Name 16 "$Global" - MemberName 16($Global) 0 "position" - Name 18 "" - Name 31 "flattenTemp" - Name 33 "@position" - Name 44 "@entryPointOutput.pos" - Name 47 "@entryPointOutput.somethingelse" - MemberDecorate 16($Global) 0 Offset 0 - Decorate 16($Global) Block - Decorate 18 DescriptorSet 0 - Decorate 18 Binding 0 - Decorate 44(@entryPointOutput.pos) BuiltIn Position - Decorate 47(@entryPointOutput.somethingelse) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeInt 32 1 - 9(VS_OUT): TypeStruct 7(fvec4) 8(int) - 10: TypeFunction 9(VS_OUT) - 13: TypePointer Function 9(VS_OUT) - 15: 8(int) Constant 0 - 16($Global): TypeStruct 7(fvec4) - 17: TypePointer Uniform 16($Global) - 18: 17(ptr) Variable Uniform - 19: TypePointer Uniform 7(fvec4) - 22: TypePointer Function 7(fvec4) - 24: 8(int) Constant 1 - 25: 8(int) Constant 42 - 26: TypePointer Function 8(int) - 36: TypeInt 32 0 - 37: 36(int) Constant 1 - 38: TypePointer Function 6(float) - 43: TypePointer Output 7(fvec4) -44(@entryPointOutput.pos): 43(ptr) Variable Output - 46: TypePointer Output 8(int) -47(@entryPointOutput.somethingelse): 46(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 31(flattenTemp): 13(ptr) Variable Function - 33(@position): 22(ptr) Variable Function - 32: 9(VS_OUT) FunctionCall 11(@main() - Store 31(flattenTemp) 32 - 34: 22(ptr) AccessChain 31(flattenTemp) 15 - 35: 7(fvec4) Load 34 - Store 33(@position) 35 - 39: 38(ptr) AccessChain 33(@position) 37 - 40: 6(float) Load 39 - 41: 6(float) FNegate 40 - 42: 38(ptr) AccessChain 33(@position) 37 - Store 42 41 - 45: 7(fvec4) Load 33(@position) - Store 44(@entryPointOutput.pos) 45 - 48: 26(ptr) AccessChain 31(flattenTemp) 24 - 49: 8(int) Load 48 - Store 47(@entryPointOutput.somethingelse) 49 - Return - FunctionEnd - 11(@main(): 9(VS_OUT) Function None 10 - 12: Label - 14(vsout): 13(ptr) Variable Function - 20: 19(ptr) AccessChain 18 15 - 21: 7(fvec4) Load 20 - 23: 22(ptr) AccessChain 14(vsout) 15 - Store 23 21 - 27: 26(ptr) AccessChain 14(vsout) 24 - Store 27 25 - 28: 9(VS_OUT) Load 14(vsout) - ReturnValue 28 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/implicitInnerAtomicUint.frag.out b/deps/glslang/Test/baseResults/implicitInnerAtomicUint.frag.out deleted file mode 100644 index ed9771e7..00000000 --- a/deps/glslang/Test/baseResults/implicitInnerAtomicUint.frag.out +++ /dev/null @@ -1,20 +0,0 @@ -implicitInnerAtomicUint.frag -ERROR: 0:2: '[]' : only outermost dimension of an array of arrays can be implicitly sized -ERROR: 1 compilation errors. No code generated. - - -Shader version: 460 -ERROR: node is still EOpNull! -0:? Linker Objects -0:? 'c' (layout( binding=0 offset=0) uniform 1-element array of 1-element array of atomic_uint) - - -Linked fragment stage: - -ERROR: Linking fragment stage: Missing entry point: Each stage requires one entry point - -Shader version: 460 -ERROR: node is still EOpNull! -0:? Linker Objects -0:? 'c' (layout( binding=0 offset=0) uniform 1-element array of 1-element array of atomic_uint) - diff --git a/deps/glslang/Test/baseResults/include.vert.out b/deps/glslang/Test/baseResults/include.vert.out deleted file mode 100644 index 42f10323..00000000 --- a/deps/glslang/Test/baseResults/include.vert.out +++ /dev/null @@ -1,67 +0,0 @@ -include.vert -Shader version: 450 -Requested GL_GOOGLE_cpp_style_line_directive -Requested GL_GOOGLE_include_directive -0:? Sequence -0:13 Function Definition: main( ( global void) -0:13 Function Parameters: -0:15 Sequence -0:15 move second child to first child ( temp 4-component vector of float) -0:15 'color' ( smooth out 4-component vector of float) -0:15 add ( temp 4-component vector of float) -0:15 add ( temp 4-component vector of float) -0:15 add ( temp 4-component vector of float) -0:15 add ( temp 4-component vector of float) -0:15 add ( temp 4-component vector of float) -0:15 'i1' ( global 4-component vector of float) -0:15 'i2' ( global 4-component vector of float) -0:15 'i3' ( global 4-component vector of float) -0:15 'i4' ( global 4-component vector of float) -0:15 'i5' ( global 4-component vector of float) -0:15 'i6' ( global 4-component vector of float) -0:? Linker Objects -0:? 'i1' ( global 4-component vector of float) -0:? 'i2' ( global 4-component vector of float) -0:? 'i4' ( global 4-component vector of float) -0:? 'i3' ( global 4-component vector of float) -0:? 'i6' ( global 4-component vector of float) -0:? 'i5' ( global 4-component vector of float) -0:? 'color' ( smooth out 4-component vector of float) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - - -Linked vertex stage: - - -Shader version: 450 -Requested GL_GOOGLE_cpp_style_line_directive -Requested GL_GOOGLE_include_directive -0:? Sequence -0:13 Function Definition: main( ( global void) -0:13 Function Parameters: -0:15 Sequence -0:15 move second child to first child ( temp 4-component vector of float) -0:15 'color' ( smooth out 4-component vector of float) -0:15 add ( temp 4-component vector of float) -0:15 add ( temp 4-component vector of float) -0:15 add ( temp 4-component vector of float) -0:15 add ( temp 4-component vector of float) -0:15 add ( temp 4-component vector of float) -0:15 'i1' ( global 4-component vector of float) -0:15 'i2' ( global 4-component vector of float) -0:15 'i3' ( global 4-component vector of float) -0:15 'i4' ( global 4-component vector of float) -0:15 'i5' ( global 4-component vector of float) -0:15 'i6' ( global 4-component vector of float) -0:? Linker Objects -0:? 'i1' ( global 4-component vector of float) -0:? 'i2' ( global 4-component vector of float) -0:? 'i4' ( global 4-component vector of float) -0:? 'i3' ( global 4-component vector of float) -0:? 'i6' ( global 4-component vector of float) -0:? 'i5' ( global 4-component vector of float) -0:? 'color' ( smooth out 4-component vector of float) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - diff --git a/deps/glslang/Test/baseResults/invalidSwizzle.vert.out b/deps/glslang/Test/baseResults/invalidSwizzle.vert.out deleted file mode 100644 index 5104fdcd..00000000 --- a/deps/glslang/Test/baseResults/invalidSwizzle.vert.out +++ /dev/null @@ -1,38 +0,0 @@ -invalidSwizzle.vert -ERROR: 0:7: 'rr' : does not apply to this type: uniform sampler2D -ERROR: 0:7: '=' : cannot convert from ' uniform sampler2D' to ' temp 2-component vector of float' -ERROR: 0:8: 'xx' : does not apply to this type: global void -ERROR: 0:9: 'xy' : does not apply to this type: global void -ERROR: 4 compilation errors. No code generated. - - -Shader version: 420 -ERROR: node is still EOpNull! -0:6 Function Definition: main( ( global void) -0:6 Function Parameters: -0:? Sequence -0:8 Function Call: f( ( global void) -0:9 Function Call: f( ( global void) -0:? Linker Objects -0:? 's' ( uniform sampler2D) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - - -Linked vertex stage: - -ERROR: Linking vertex stage: No function definition (body) found: - f( - -Shader version: 420 -ERROR: node is still EOpNull! -0:6 Function Definition: main( ( global void) -0:6 Function Parameters: -0:? Sequence -0:8 Function Call: f( ( global void) -0:9 Function Call: f( ( global void) -0:? Linker Objects -0:? 's' ( uniform sampler2D) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - diff --git a/deps/glslang/Test/baseResults/iomap.blockOutVariableIn.2.vert.out b/deps/glslang/Test/baseResults/iomap.blockOutVariableIn.2.vert.out deleted file mode 100644 index 0b4c0ac9..00000000 --- a/deps/glslang/Test/baseResults/iomap.blockOutVariableIn.2.vert.out +++ /dev/null @@ -1,413 +0,0 @@ -iomap.blockOutVariableIn.2.vert -Shader version: 440 -0:? Sequence -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 a1: direct index for structure ( out 4-component vector of float) -0:11 'anon@0' (layout( location=0) out block{ out 4-component vector of float a1, out 2-component vector of float a2}) -0:11 Constant: -0:11 0 (const uint) -0:11 Constant: -0:11 1.000000 -0:11 1.000000 -0:11 1.000000 -0:11 1.000000 -0:12 move second child to first child ( temp 2-component vector of float) -0:12 a2: direct index for structure ( out 2-component vector of float) -0:12 'anon@0' (layout( location=0) out block{ out 4-component vector of float a1, out 2-component vector of float a2}) -0:12 Constant: -0:12 1 (const uint) -0:12 Constant: -0:12 0.500000 -0:12 0.500000 -0:13 move second child to first child ( temp 4-component vector of float) -0:13 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:13 'anon@1' ( 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}) -0:13 Constant: -0:13 0 (const uint) -0:13 Constant: -0:13 1.000000 -0:13 1.000000 -0:13 1.000000 -0:13 1.000000 -0:? Linker Objects -0:? 'anon@0' (layout( location=0) out block{ out 4-component vector of float a1, out 2-component vector of float a2}) -0:? 'anon@1' ( 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}) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - -iomap.blockOutVariableIn.geom -Shader version: 440 -invocations = -1 -max_vertices = 3 -input primitive = triangles -output primitive = triangle_strip -0:? Sequence -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 'a1' (layout( location=0 stream=0) out 4-component vector of float) -0:14 direct index (layout( location=0) temp 4-component vector of float) -0:14 'in_a1' (layout( location=0) in 3-element array of 4-component vector of float) -0:14 Constant: -0:14 0 (const int) -0:15 move second child to first child ( temp 2-component vector of float) -0:15 'a2' (layout( location=1 stream=0) out 2-component vector of float) -0:15 direct index (layout( location=1) temp 2-component vector of float) -0:15 'in_a2' (layout( location=1) in 3-element array of 2-component vector of float) -0:15 Constant: -0:15 0 (const int) -0:16 move second child to first child ( temp 4-component vector of float) -0:16 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position) -0:16 'anon@0' (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 1-element array of float ClipDistance gl_ClipDistance}) -0:16 Constant: -0:16 0 (const uint) -0:16 Constant: -0:16 1.000000 -0:16 1.000000 -0:16 1.000000 -0:16 1.000000 -0:17 EmitVertex ( global void) -0:19 move second child to first child ( temp 4-component vector of float) -0:19 'a1' (layout( location=0 stream=0) out 4-component vector of float) -0:19 direct index (layout( location=0) temp 4-component vector of float) -0:19 'in_a1' (layout( location=0) in 3-element array of 4-component vector of float) -0:19 Constant: -0:19 1 (const int) -0:20 move second child to first child ( temp 2-component vector of float) -0:20 'a2' (layout( location=1 stream=0) out 2-component vector of float) -0:20 direct index (layout( location=1) temp 2-component vector of float) -0:20 'in_a2' (layout( location=1) in 3-element array of 2-component vector of float) -0:20 Constant: -0:20 1 (const int) -0:21 move second child to first child ( temp 4-component vector of float) -0:21 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position) -0:21 'anon@0' (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 1-element array of float ClipDistance gl_ClipDistance}) -0:21 Constant: -0:21 0 (const uint) -0:21 Constant: -0:21 1.000000 -0:21 1.000000 -0:21 1.000000 -0:21 1.000000 -0:22 EmitVertex ( global void) -0:24 move second child to first child ( temp 4-component vector of float) -0:24 'a1' (layout( location=0 stream=0) out 4-component vector of float) -0:24 direct index (layout( location=0) temp 4-component vector of float) -0:24 'in_a1' (layout( location=0) in 3-element array of 4-component vector of float) -0:24 Constant: -0:24 2 (const int) -0:25 move second child to first child ( temp 2-component vector of float) -0:25 'a2' (layout( location=1 stream=0) out 2-component vector of float) -0:25 direct index (layout( location=1) temp 2-component vector of float) -0:25 'in_a2' (layout( location=1) in 3-element array of 2-component vector of float) -0:25 Constant: -0:25 2 (const int) -0:26 move second child to first child ( temp 4-component vector of float) -0:26 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position) -0:26 'anon@0' (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 1-element array of float ClipDistance gl_ClipDistance}) -0:26 Constant: -0:26 0 (const uint) -0:26 Constant: -0:26 1.000000 -0:26 1.000000 -0:26 1.000000 -0:26 1.000000 -0:27 EmitVertex ( global void) -0:? Linker Objects -0:? 'in_a1' (layout( location=0) in 3-element array of 4-component vector of float) -0:? 'in_a2' (layout( location=1) in 3-element array of 2-component vector of float) -0:? 'a1' (layout( location=0 stream=0) out 4-component vector of float) -0:? 'a2' (layout( location=1 stream=0) out 2-component vector of float) -0:? 'anon@0' (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 1-element array of float ClipDistance gl_ClipDistance}) - - -Linked vertex stage: - - -Linked geometry stage: - - -Shader version: 440 -0:? Sequence -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 a1: direct index for structure ( out 4-component vector of float) -0:11 'anon@0' (layout( location=0) out block{ out 4-component vector of float a1, out 2-component vector of float a2}) -0:11 Constant: -0:11 0 (const uint) -0:11 Constant: -0:11 1.000000 -0:11 1.000000 -0:11 1.000000 -0:11 1.000000 -0:12 move second child to first child ( temp 2-component vector of float) -0:12 a2: direct index for structure ( out 2-component vector of float) -0:12 'anon@0' (layout( location=0) out block{ out 4-component vector of float a1, out 2-component vector of float a2}) -0:12 Constant: -0:12 1 (const uint) -0:12 Constant: -0:12 0.500000 -0:12 0.500000 -0:13 move second child to first child ( temp 4-component vector of float) -0:13 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:13 'anon@1' ( 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}) -0:13 Constant: -0:13 0 (const uint) -0:13 Constant: -0:13 1.000000 -0:13 1.000000 -0:13 1.000000 -0:13 1.000000 -0:? Linker Objects -0:? 'anon@0' (layout( location=0) out block{ out 4-component vector of float a1, out 2-component vector of float a2}) -0:? 'anon@1' ( 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}) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) -Shader version: 440 -invocations = 1 -max_vertices = 3 -input primitive = triangles -output primitive = triangle_strip -0:? Sequence -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 'a1' (layout( location=0 stream=0) out 4-component vector of float) -0:14 direct index (layout( location=0) temp 4-component vector of float) -0:14 'in_a1' (layout( location=0) in 3-element array of 4-component vector of float) -0:14 Constant: -0:14 0 (const int) -0:15 move second child to first child ( temp 2-component vector of float) -0:15 'a2' (layout( location=1 stream=0) out 2-component vector of float) -0:15 direct index (layout( location=1) temp 2-component vector of float) -0:15 'in_a2' (layout( location=1) in 3-element array of 2-component vector of float) -0:15 Constant: -0:15 0 (const int) -0:16 move second child to first child ( temp 4-component vector of float) -0:16 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position) -0:16 'anon@0' (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 1-element array of float ClipDistance gl_ClipDistance}) -0:16 Constant: -0:16 0 (const uint) -0:16 Constant: -0:16 1.000000 -0:16 1.000000 -0:16 1.000000 -0:16 1.000000 -0:17 EmitVertex ( global void) -0:19 move second child to first child ( temp 4-component vector of float) -0:19 'a1' (layout( location=0 stream=0) out 4-component vector of float) -0:19 direct index (layout( location=0) temp 4-component vector of float) -0:19 'in_a1' (layout( location=0) in 3-element array of 4-component vector of float) -0:19 Constant: -0:19 1 (const int) -0:20 move second child to first child ( temp 2-component vector of float) -0:20 'a2' (layout( location=1 stream=0) out 2-component vector of float) -0:20 direct index (layout( location=1) temp 2-component vector of float) -0:20 'in_a2' (layout( location=1) in 3-element array of 2-component vector of float) -0:20 Constant: -0:20 1 (const int) -0:21 move second child to first child ( temp 4-component vector of float) -0:21 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position) -0:21 'anon@0' (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 1-element array of float ClipDistance gl_ClipDistance}) -0:21 Constant: -0:21 0 (const uint) -0:21 Constant: -0:21 1.000000 -0:21 1.000000 -0:21 1.000000 -0:21 1.000000 -0:22 EmitVertex ( global void) -0:24 move second child to first child ( temp 4-component vector of float) -0:24 'a1' (layout( location=0 stream=0) out 4-component vector of float) -0:24 direct index (layout( location=0) temp 4-component vector of float) -0:24 'in_a1' (layout( location=0) in 3-element array of 4-component vector of float) -0:24 Constant: -0:24 2 (const int) -0:25 move second child to first child ( temp 2-component vector of float) -0:25 'a2' (layout( location=1 stream=0) out 2-component vector of float) -0:25 direct index (layout( location=1) temp 2-component vector of float) -0:25 'in_a2' (layout( location=1) in 3-element array of 2-component vector of float) -0:25 Constant: -0:25 2 (const int) -0:26 move second child to first child ( temp 4-component vector of float) -0:26 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position) -0:26 'anon@0' (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 1-element array of float ClipDistance gl_ClipDistance}) -0:26 Constant: -0:26 0 (const uint) -0:26 Constant: -0:26 1.000000 -0:26 1.000000 -0:26 1.000000 -0:26 1.000000 -0:27 EmitVertex ( global void) -0:? Linker Objects -0:? 'in_a1' (layout( location=0) in 3-element array of 4-component vector of float) -0:? 'in_a2' (layout( location=1) in 3-element array of 2-component vector of float) -0:? 'a1' (layout( location=0 stream=0) out 4-component vector of float) -0:? 'a2' (layout( location=1 stream=0) out 2-component vector of float) -0:? 'anon@0' (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 1-element array of float ClipDistance gl_ClipDistance}) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 33 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 11 28 31 32 - Source GLSL 440 - Name 4 "main" - Name 9 "Block" - MemberName 9(Block) 0 "a1" - MemberName 9(Block) 1 "a2" - Name 11 "" - Name 26 "gl_PerVertex" - MemberName 26(gl_PerVertex) 0 "gl_Position" - MemberName 26(gl_PerVertex) 1 "gl_PointSize" - MemberName 26(gl_PerVertex) 2 "gl_ClipDistance" - Name 28 "" - Name 31 "gl_VertexID" - Name 32 "gl_InstanceID" - Decorate 9(Block) Block - Decorate 11 Location 0 - MemberDecorate 26(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 26(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 26(gl_PerVertex) 2 BuiltIn ClipDistance - Decorate 26(gl_PerVertex) Block - Decorate 31(gl_VertexID) BuiltIn VertexId - Decorate 32(gl_InstanceID) BuiltIn InstanceId - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeVector 6(float) 2 - 9(Block): TypeStruct 7(fvec4) 8(fvec2) - 10: TypePointer Output 9(Block) - 11: 10(ptr) Variable Output - 12: TypeInt 32 1 - 13: 12(int) Constant 0 - 14: 6(float) Constant 1065353216 - 15: 7(fvec4) ConstantComposite 14 14 14 14 - 16: TypePointer Output 7(fvec4) - 18: 12(int) Constant 1 - 19: 6(float) Constant 1056964608 - 20: 8(fvec2) ConstantComposite 19 19 - 21: TypePointer Output 8(fvec2) - 23: TypeInt 32 0 - 24: 23(int) Constant 1 - 25: TypeArray 6(float) 24 -26(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 25 - 27: TypePointer Output 26(gl_PerVertex) - 28: 27(ptr) Variable Output - 30: TypePointer Input 12(int) - 31(gl_VertexID): 30(ptr) Variable Input -32(gl_InstanceID): 30(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 17: 16(ptr) AccessChain 11 13 - Store 17 15 - 22: 21(ptr) AccessChain 11 18 - Store 22 20 - 29: 16(ptr) AccessChain 28 13 - Store 29 15 - Return - FunctionEnd -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 49 - - Capability Geometry - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Geometry 4 "main" 9 14 22 25 33 - ExecutionMode 4 Triangles - ExecutionMode 4 Invocations 1 - ExecutionMode 4 OutputTriangleStrip - ExecutionMode 4 OutputVertices 3 - Source GLSL 440 - Name 4 "main" - Name 9 "a1" - Name 14 "in_a1" - Name 22 "a2" - Name 25 "in_a2" - Name 31 "gl_PerVertex" - MemberName 31(gl_PerVertex) 0 "gl_Position" - MemberName 31(gl_PerVertex) 1 "gl_PointSize" - MemberName 31(gl_PerVertex) 2 "gl_ClipDistance" - Name 33 "" - Decorate 9(a1) Location 0 - Decorate 14(in_a1) Location 0 - Decorate 22(a2) Location 1 - Decorate 25(in_a2) Location 1 - MemberDecorate 31(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 31(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 31(gl_PerVertex) 2 BuiltIn ClipDistance - Decorate 31(gl_PerVertex) Block - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) - 9(a1): 8(ptr) Variable Output - 10: TypeInt 32 0 - 11: 10(int) Constant 3 - 12: TypeArray 7(fvec4) 11 - 13: TypePointer Input 12 - 14(in_a1): 13(ptr) Variable Input - 15: TypeInt 32 1 - 16: 15(int) Constant 0 - 17: TypePointer Input 7(fvec4) - 20: TypeVector 6(float) 2 - 21: TypePointer Output 20(fvec2) - 22(a2): 21(ptr) Variable Output - 23: TypeArray 20(fvec2) 11 - 24: TypePointer Input 23 - 25(in_a2): 24(ptr) Variable Input - 26: TypePointer Input 20(fvec2) - 29: 10(int) Constant 1 - 30: TypeArray 6(float) 29 -31(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 30 - 32: TypePointer Output 31(gl_PerVertex) - 33: 32(ptr) Variable Output - 34: 6(float) Constant 1065353216 - 35: 7(fvec4) ConstantComposite 34 34 34 34 - 37: 15(int) Constant 1 - 43: 15(int) Constant 2 - 4(main): 2 Function None 3 - 5: Label - 18: 17(ptr) AccessChain 14(in_a1) 16 - 19: 7(fvec4) Load 18 - Store 9(a1) 19 - 27: 26(ptr) AccessChain 25(in_a2) 16 - 28: 20(fvec2) Load 27 - Store 22(a2) 28 - 36: 8(ptr) AccessChain 33 16 - Store 36 35 - EmitVertex - 38: 17(ptr) AccessChain 14(in_a1) 37 - 39: 7(fvec4) Load 38 - Store 9(a1) 39 - 40: 26(ptr) AccessChain 25(in_a2) 37 - 41: 20(fvec2) Load 40 - Store 22(a2) 41 - 42: 8(ptr) AccessChain 33 16 - Store 42 35 - EmitVertex - 44: 17(ptr) AccessChain 14(in_a1) 43 - 45: 7(fvec4) Load 44 - Store 9(a1) 45 - 46: 26(ptr) AccessChain 25(in_a2) 43 - 47: 20(fvec2) Load 46 - Store 22(a2) 47 - 48: 8(ptr) AccessChain 33 16 - Store 48 35 - EmitVertex - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/iomap.blockOutVariableIn.vert.out b/deps/glslang/Test/baseResults/iomap.blockOutVariableIn.vert.out deleted file mode 100644 index dd12cbc2..00000000 --- a/deps/glslang/Test/baseResults/iomap.blockOutVariableIn.vert.out +++ /dev/null @@ -1,234 +0,0 @@ -iomap.blockOutVariableIn.vert -Shader version: 440 -0:? Sequence -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 a1: direct index for structure ( out 4-component vector of float) -0:11 'anon@0' (layout( location=0) out block{ out 4-component vector of float a1, out 2-component vector of float a2}) -0:11 Constant: -0:11 0 (const uint) -0:11 Constant: -0:11 1.000000 -0:11 1.000000 -0:11 1.000000 -0:11 1.000000 -0:12 move second child to first child ( temp 2-component vector of float) -0:12 a2: direct index for structure ( out 2-component vector of float) -0:12 'anon@0' (layout( location=0) out block{ out 4-component vector of float a1, out 2-component vector of float a2}) -0:12 Constant: -0:12 1 (const uint) -0:12 Constant: -0:12 0.500000 -0:12 0.500000 -0:13 move second child to first child ( temp 4-component vector of float) -0:13 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:13 'anon@1' ( 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}) -0:13 Constant: -0:13 0 (const uint) -0:13 Constant: -0:13 1.000000 -0:13 1.000000 -0:13 1.000000 -0:13 1.000000 -0:? Linker Objects -0:? 'anon@0' (layout( location=0) out block{ out 4-component vector of float a1, out 2-component vector of float a2}) -0:? 'anon@1' ( 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}) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - -iomap.blockOutVariableIn.frag -Shader version: 440 -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 'color' (layout( location=0) out 4-component vector of float) -0:10 Construct vec4 ( temp 4-component vector of float) -0:10 vector swizzle ( temp 2-component vector of float) -0:10 'a1' (layout( location=0) smooth in 4-component vector of float) -0:10 Sequence -0:10 Constant: -0:10 0 (const int) -0:10 Constant: -0:10 1 (const int) -0:10 'a2' (layout( location=1) smooth in 2-component vector of float) -0:? Linker Objects -0:? 'a1' (layout( location=0) smooth in 4-component vector of float) -0:? 'a2' (layout( location=1) smooth in 2-component vector of float) -0:? 'color' (layout( location=0) out 4-component vector of float) - - -Linked vertex stage: - - -Linked fragment stage: - - -Shader version: 440 -0:? Sequence -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 a1: direct index for structure ( out 4-component vector of float) -0:11 'anon@0' (layout( location=0) out block{ out 4-component vector of float a1, out 2-component vector of float a2}) -0:11 Constant: -0:11 0 (const uint) -0:11 Constant: -0:11 1.000000 -0:11 1.000000 -0:11 1.000000 -0:11 1.000000 -0:12 move second child to first child ( temp 2-component vector of float) -0:12 a2: direct index for structure ( out 2-component vector of float) -0:12 'anon@0' (layout( location=0) out block{ out 4-component vector of float a1, out 2-component vector of float a2}) -0:12 Constant: -0:12 1 (const uint) -0:12 Constant: -0:12 0.500000 -0:12 0.500000 -0:13 move second child to first child ( temp 4-component vector of float) -0:13 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:13 'anon@1' ( 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}) -0:13 Constant: -0:13 0 (const uint) -0:13 Constant: -0:13 1.000000 -0:13 1.000000 -0:13 1.000000 -0:13 1.000000 -0:? Linker Objects -0:? 'anon@0' (layout( location=0) out block{ out 4-component vector of float a1, out 2-component vector of float a2}) -0:? 'anon@1' ( 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}) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) -Shader version: 440 -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 'color' (layout( location=0) out 4-component vector of float) -0:10 Construct vec4 ( temp 4-component vector of float) -0:10 vector swizzle ( temp 2-component vector of float) -0:10 'a1' (layout( location=0) smooth in 4-component vector of float) -0:10 Sequence -0:10 Constant: -0:10 0 (const int) -0:10 Constant: -0:10 1 (const int) -0:10 'a2' (layout( location=1) smooth in 2-component vector of float) -0:? Linker Objects -0:? 'a1' (layout( location=0) smooth in 4-component vector of float) -0:? 'a2' (layout( location=1) smooth in 2-component vector of float) -0:? 'color' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 33 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 11 28 31 32 - Source GLSL 440 - Name 4 "main" - Name 9 "Block" - MemberName 9(Block) 0 "a1" - MemberName 9(Block) 1 "a2" - Name 11 "" - Name 26 "gl_PerVertex" - MemberName 26(gl_PerVertex) 0 "gl_Position" - MemberName 26(gl_PerVertex) 1 "gl_PointSize" - MemberName 26(gl_PerVertex) 2 "gl_ClipDistance" - Name 28 "" - Name 31 "gl_VertexID" - Name 32 "gl_InstanceID" - Decorate 9(Block) Block - Decorate 11 Location 0 - MemberDecorate 26(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 26(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 26(gl_PerVertex) 2 BuiltIn ClipDistance - Decorate 26(gl_PerVertex) Block - Decorate 31(gl_VertexID) BuiltIn VertexId - Decorate 32(gl_InstanceID) BuiltIn InstanceId - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeVector 6(float) 2 - 9(Block): TypeStruct 7(fvec4) 8(fvec2) - 10: TypePointer Output 9(Block) - 11: 10(ptr) Variable Output - 12: TypeInt 32 1 - 13: 12(int) Constant 0 - 14: 6(float) Constant 1065353216 - 15: 7(fvec4) ConstantComposite 14 14 14 14 - 16: TypePointer Output 7(fvec4) - 18: 12(int) Constant 1 - 19: 6(float) Constant 1056964608 - 20: 8(fvec2) ConstantComposite 19 19 - 21: TypePointer Output 8(fvec2) - 23: TypeInt 32 0 - 24: 23(int) Constant 1 - 25: TypeArray 6(float) 24 -26(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 25 - 27: TypePointer Output 26(gl_PerVertex) - 28: 27(ptr) Variable Output - 30: TypePointer Input 12(int) - 31(gl_VertexID): 30(ptr) Variable Input -32(gl_InstanceID): 30(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 17: 16(ptr) AccessChain 11 13 - Store 17 15 - 22: 21(ptr) AccessChain 11 18 - Store 22 20 - 29: 16(ptr) AccessChain 28 13 - Store 29 15 - Return - FunctionEnd -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 23 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 9 11 16 - ExecutionMode 4 OriginLowerLeft - Source GLSL 440 - Name 4 "main" - Name 9 "color" - Name 11 "a1" - Name 16 "a2" - Decorate 9(color) Location 0 - Decorate 11(a1) Location 0 - Decorate 16(a2) Location 1 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) - 9(color): 8(ptr) Variable Output - 10: TypePointer Input 7(fvec4) - 11(a1): 10(ptr) Variable Input - 12: TypeVector 6(float) 2 - 15: TypePointer Input 12(fvec2) - 16(a2): 15(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 13: 7(fvec4) Load 11(a1) - 14: 12(fvec2) VectorShuffle 13 13 0 1 - 17: 12(fvec2) Load 16(a2) - 18: 6(float) CompositeExtract 14 0 - 19: 6(float) CompositeExtract 14 1 - 20: 6(float) CompositeExtract 17 0 - 21: 6(float) CompositeExtract 17 1 - 22: 7(fvec4) CompositeConstruct 18 19 20 21 - Store 9(color) 22 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/iomap.crossStage.2.vert.out b/deps/glslang/Test/baseResults/iomap.crossStage.2.vert.out deleted file mode 100644 index 85139cc7..00000000 --- a/deps/glslang/Test/baseResults/iomap.crossStage.2.vert.out +++ /dev/null @@ -1,788 +0,0 @@ -iomap.crossStage.2.vert -Shader version: 460 -0:? Sequence -0:32 Function Definition: main( ( global void) -0:32 Function Parameters: -0:34 Sequence -0:34 move second child to first child ( temp 4-component vector of float) -0:34 'vgo1' ( smooth out 4-component vector of float) -0:34 Constant: -0:34 0.000000 -0:34 0.000000 -0:34 0.000000 -0:34 0.000000 -0:35 move second child to first child ( temp 2-component vector of float) -0:35 'vgo2' ( smooth out 2-component vector of float) -0:35 Constant: -0:35 0.000000 -0:35 0.000000 -0:36 move second child to first child ( temp 4-component vector of float) -0:36 o3: direct index for structure ( out 4-component vector of float) -0:36 'anon@0' (layout( location=5) out block{ out 4-component vector of float o3}) -0:36 Constant: -0:36 0 (const uint) -0:36 Constant: -0:36 0.000000 -0:36 0.000000 -0:36 0.000000 -0:36 0.000000 -0:? Linker Objects -0:? 'vgo1' ( smooth out 4-component vector of float) -0:? 'vgo2' ( smooth out 2-component vector of float) -0:? 'anon@0' (layout( location=5) out block{ out 4-component vector of float o3}) -0:? 'u1' ( uniform 2-component vector of float) -0:? 'u2' ( uniform 3-component vector of float) -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 'u3' ( uniform 4-component vector of float) -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 'um2' ( uniform 2X2 matrix of float) -0:? 4.000000 -0:? 0.000000 -0:? 0.000000 -0:? 4.000000 -0:? 'glass' (layout( location=0 binding=0) uniform sampler2D) -0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 4-component vector of float b}) -0:? 'anon@2' (layout( column_major std430) buffer block{layout( column_major std430) buffer 2-component vector of float vb1}) -0:? 'blockName1' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 2-component vector of float b}) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - -iomap.crossStage.2.geom -Shader version: 460 -invocations = -1 -max_vertices = 3 -input primitive = points -output primitive = triangle_strip -0:? Sequence -0:29 Function Definition: main( ( global void) -0:29 Function Parameters: -0:31 Sequence -0:31 Sequence -0:31 Sequence -0:31 move second child to first child ( temp int) -0:31 'i' ( temp int) -0:31 Constant: -0:31 0 (const int) -0:31 Loop with condition tested first -0:31 Loop Condition -0:31 Compare Less Than ( temp bool) -0:31 'i' ( temp int) -0:31 Constant: -0:31 3 (const int) -0:31 Loop Body -0:32 Sequence -0:32 move second child to first child ( temp 4-component vector of float) -0:32 'gfo1' (layout( stream=0) out 4-component vector of float) -0:32 Constant: -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:33 move second child to first child ( temp 2-component vector of float) -0:33 'gfo2' (layout( stream=0) out 2-component vector of float) -0:33 Constant: -0:33 0.000000 -0:33 0.000000 -0:34 move second child to first child ( temp 4-component vector of float) -0:34 o3: direct index for structure (layout( stream=0) out 4-component vector of float) -0:34 'gf_out' (layout( location=5 stream=0) out block{layout( stream=0) out 4-component vector of float o3}) -0:34 Constant: -0:34 0 (const int) -0:34 o3: direct index for structure ( in 4-component vector of float) -0:34 indirect index (layout( location=5) temp block{ in 4-component vector of float o3}) -0:34 'inBlock' (layout( location=5) in 1-element array of block{ in 4-component vector of float o3}) -0:34 'i' ( temp int) -0:34 Constant: -0:34 0 (const int) -0:35 EmitVertex ( global void) -0:31 Loop Terminal Expression -0:31 Post-Increment ( temp int) -0:31 'i' ( temp int) -0:37 EndPrimitive ( global void) -0:? Linker Objects -0:? 'vgo1' ( in 1-element array of 4-component vector of float) -0:? 'vgo2' ( in 1-element array of 2-component vector of float) -0:? 'inBlock' (layout( location=5) in 1-element array of block{ in 4-component vector of float o3}) -0:? 'gfo1' (layout( stream=0) out 4-component vector of float) -0:? 'gfo2' (layout( stream=0) out 2-component vector of float) -0:? 'gf_out' (layout( location=5 stream=0) out block{layout( stream=0) out 4-component vector of float o3}) -0:? 'u1' ( uniform 2-component vector of float) -0:? 'u2' ( uniform 3-component vector of float) -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 'u3' ( uniform 4-component vector of float) -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 'blockName1' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 2-component vector of float b}) - -iomap.crossStage.2.frag -Shader version: 460 -0:? Sequence -0:37 Function Definition: main( ( global void) -0:37 Function Parameters: -0:39 Sequence -0:39 Sequence -0:39 move second child to first child ( temp 4-component vector of float) -0:39 'color' ( temp 4-component vector of float) -0:39 component-wise multiply ( temp 4-component vector of float) -0:39 component-wise multiply ( temp 4-component vector of float) -0:39 component-wise multiply ( temp 4-component vector of float) -0:39 'gfo1' ( smooth in 4-component vector of float) -0:39 vector swizzle ( temp 4-component vector of float) -0:39 'u1' ( uniform 2-component vector of float) -0:39 Sequence -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 vector swizzle ( temp 4-component vector of float) -0:39 'u2' ( uniform 3-component vector of float) -0:39 Sequence -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 2 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 vector swizzle ( temp 4-component vector of float) -0:39 'u3' ( uniform 4-component vector of float) -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 Sequence -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 2 (const int) -0:39 Constant: -0:39 3 (const int) -0:40 move second child to first child ( temp 4-component vector of float) -0:40 'outColor' ( out 4-component vector of float) -0:40 'color' ( temp 4-component vector of float) -0:? Linker Objects -0:? 'anon@0' (layout( location=5) in block{ in 4-component vector of float o3}) -0:? 'gfo1' ( smooth in 4-component vector of float) -0:? 'gfo2' ( smooth in 2-component vector of float) -0:? 'outColor' ( out 4-component vector of float) -0:? 'u1' ( uniform 2-component vector of float) -0:? 'u2' ( uniform 3-component vector of float) -0:? 'u3' ( uniform 4-component vector of float) -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 'um2' ( uniform 2X2 matrix of float) -0:? 4.000000 -0:? 0.000000 -0:? 0.000000 -0:? 4.000000 -0:? 'glass' (layout( location=0 binding=0) uniform sampler2D) -0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 4-component vector of float b}) -0:? 'anon@2' (layout( column_major std430) buffer block{layout( column_major std430) buffer 2-component vector of float fb1}) -0:? 'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 2-component vector of float b}) - - -Linked vertex stage: - - -Linked geometry stage: - - -Linked fragment stage: - -WARNING: Linking unknown stage and fragment stages: Matched shader interfaces are using different instance names. - unknown stage stage: Block: crossStageBlock2 Instance: blockName1: "" - fragment stage: Block: crossStageBlock2 Instance: blockName2: "" - -Shader version: 460 -0:? Sequence -0:32 Function Definition: main( ( global void) -0:32 Function Parameters: -0:34 Sequence -0:34 move second child to first child ( temp 4-component vector of float) -0:34 'vgo1' ( smooth out 4-component vector of float) -0:34 Constant: -0:34 0.000000 -0:34 0.000000 -0:34 0.000000 -0:34 0.000000 -0:35 move second child to first child ( temp 2-component vector of float) -0:35 'vgo2' ( smooth out 2-component vector of float) -0:35 Constant: -0:35 0.000000 -0:35 0.000000 -0:36 move second child to first child ( temp 4-component vector of float) -0:36 o3: direct index for structure ( out 4-component vector of float) -0:36 'anon@0' (layout( location=5) out block{ out 4-component vector of float o3}) -0:36 Constant: -0:36 0 (const uint) -0:36 Constant: -0:36 0.000000 -0:36 0.000000 -0:36 0.000000 -0:36 0.000000 -0:? Linker Objects -0:? 'vgo1' ( smooth out 4-component vector of float) -0:? 'vgo2' ( smooth out 2-component vector of float) -0:? 'anon@0' (layout( location=5) out block{ out 4-component vector of float o3}) -0:? 'u1' ( uniform 2-component vector of float) -0:? 'u2' ( uniform 3-component vector of float) -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 'u3' ( uniform 4-component vector of float) -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 'um2' ( uniform 2X2 matrix of float) -0:? 4.000000 -0:? 0.000000 -0:? 0.000000 -0:? 4.000000 -0:? 'glass' (layout( location=0 binding=0) uniform sampler2D) -0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 4-component vector of float b}) -0:? 'anon@2' (layout( column_major std430) buffer block{layout( column_major std430) buffer 2-component vector of float vb1}) -0:? 'blockName1' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 2-component vector of float b}) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) -Shader version: 460 -invocations = 1 -max_vertices = 3 -input primitive = points -output primitive = triangle_strip -0:? Sequence -0:29 Function Definition: main( ( global void) -0:29 Function Parameters: -0:31 Sequence -0:31 Sequence -0:31 Sequence -0:31 move second child to first child ( temp int) -0:31 'i' ( temp int) -0:31 Constant: -0:31 0 (const int) -0:31 Loop with condition tested first -0:31 Loop Condition -0:31 Compare Less Than ( temp bool) -0:31 'i' ( temp int) -0:31 Constant: -0:31 3 (const int) -0:31 Loop Body -0:32 Sequence -0:32 move second child to first child ( temp 4-component vector of float) -0:32 'gfo1' (layout( stream=0) out 4-component vector of float) -0:32 Constant: -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:32 0.000000 -0:33 move second child to first child ( temp 2-component vector of float) -0:33 'gfo2' (layout( stream=0) out 2-component vector of float) -0:33 Constant: -0:33 0.000000 -0:33 0.000000 -0:34 move second child to first child ( temp 4-component vector of float) -0:34 o3: direct index for structure (layout( stream=0) out 4-component vector of float) -0:34 'gf_out' (layout( location=5 stream=0) out block{layout( stream=0) out 4-component vector of float o3}) -0:34 Constant: -0:34 0 (const int) -0:34 o3: direct index for structure ( in 4-component vector of float) -0:34 indirect index (layout( location=5) temp block{ in 4-component vector of float o3}) -0:34 'inBlock' (layout( location=5) in 1-element array of block{ in 4-component vector of float o3}) -0:34 'i' ( temp int) -0:34 Constant: -0:34 0 (const int) -0:35 EmitVertex ( global void) -0:31 Loop Terminal Expression -0:31 Post-Increment ( temp int) -0:31 'i' ( temp int) -0:37 EndPrimitive ( global void) -0:? Linker Objects -0:? 'vgo1' ( in 1-element array of 4-component vector of float) -0:? 'vgo2' ( in 1-element array of 2-component vector of float) -0:? 'inBlock' (layout( location=5) in 1-element array of block{ in 4-component vector of float o3}) -0:? 'gfo1' (layout( stream=0) out 4-component vector of float) -0:? 'gfo2' (layout( stream=0) out 2-component vector of float) -0:? 'gf_out' (layout( location=5 stream=0) out block{layout( stream=0) out 4-component vector of float o3}) -0:? 'u1' ( uniform 2-component vector of float) -0:? 'u2' ( uniform 3-component vector of float) -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 'u3' ( uniform 4-component vector of float) -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 'blockName1' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 2-component vector of float b}) -Shader version: 460 -0:? Sequence -0:37 Function Definition: main( ( global void) -0:37 Function Parameters: -0:39 Sequence -0:39 Sequence -0:39 move second child to first child ( temp 4-component vector of float) -0:39 'color' ( temp 4-component vector of float) -0:39 component-wise multiply ( temp 4-component vector of float) -0:39 component-wise multiply ( temp 4-component vector of float) -0:39 component-wise multiply ( temp 4-component vector of float) -0:39 'gfo1' ( smooth in 4-component vector of float) -0:39 vector swizzle ( temp 4-component vector of float) -0:39 'u1' ( uniform 2-component vector of float) -0:39 Sequence -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 vector swizzle ( temp 4-component vector of float) -0:39 'u2' ( uniform 3-component vector of float) -0:39 Sequence -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 2 (const int) -0:39 Constant: -0:39 0 (const int) -0:39 vector swizzle ( temp 4-component vector of float) -0:39 'u3' ( uniform 4-component vector of float) -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 0.000000 -0:39 Sequence -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 1 (const int) -0:39 Constant: -0:39 2 (const int) -0:39 Constant: -0:39 3 (const int) -0:40 move second child to first child ( temp 4-component vector of float) -0:40 'outColor' ( out 4-component vector of float) -0:40 'color' ( temp 4-component vector of float) -0:? Linker Objects -0:? 'anon@0' (layout( location=5) in block{ in 4-component vector of float o3}) -0:? 'gfo1' ( smooth in 4-component vector of float) -0:? 'gfo2' ( smooth in 2-component vector of float) -0:? 'outColor' ( out 4-component vector of float) -0:? 'u1' ( uniform 2-component vector of float) -0:? 'u2' ( uniform 3-component vector of float) -0:? 'u3' ( uniform 4-component vector of float) -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 'um2' ( uniform 2X2 matrix of float) -0:? 4.000000 -0:? 0.000000 -0:? 0.000000 -0:? 4.000000 -0:? 'glass' (layout( location=0 binding=0) uniform sampler2D) -0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 4-component vector of float b}) -0:? 'anon@2' (layout( column_major std430) buffer block{layout( column_major std430) buffer 2-component vector of float fb1}) -0:? 'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 2-component vector of float b}) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 56 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 9 14 18 54 55 - Source GLSL 460 - Name 4 "main" - Name 9 "vgo1" - Name 14 "vgo2" - Name 16 "outBlock" - MemberName 16(outBlock) 0 "o3" - Name 18 "" - Name 23 "u1" - Name 27 "u2" - Name 29 "u3" - Name 36 "um2" - Name 40 "glass" - Name 41 "crossStageBlock1" - MemberName 41(crossStageBlock1) 0 "a" - MemberName 41(crossStageBlock1) 1 "b" - Name 43 "" - Name 44 "vertOnlyBlock" - MemberName 44(vertOnlyBlock) 0 "vb1" - Name 46 "" - Name 47 "crossStageBlock2" - MemberName 47(crossStageBlock2) 0 "a" - MemberName 47(crossStageBlock2) 1 "b" - Name 52 "blockName1" - Name 54 "gl_VertexID" - Name 55 "gl_InstanceID" - Decorate 9(vgo1) Location 0 - Decorate 14(vgo2) Location 1 - Decorate 16(outBlock) Block - Decorate 18 Location 5 - Decorate 23(u1) Location 1 - Decorate 23(u1) DescriptorSet 0 - Decorate 27(u2) Location 2 - Decorate 27(u2) DescriptorSet 0 - Decorate 29(u3) Location 3 - Decorate 29(u3) DescriptorSet 0 - Decorate 36(um2) Location 4 - Decorate 36(um2) DescriptorSet 0 - Decorate 40(glass) Location 0 - Decorate 40(glass) DescriptorSet 0 - Decorate 40(glass) Binding 0 - MemberDecorate 41(crossStageBlock1) 0 Offset 0 - MemberDecorate 41(crossStageBlock1) 1 Offset 16 - Decorate 41(crossStageBlock1) Block - Decorate 43 DescriptorSet 0 - Decorate 43 Binding 0 - MemberDecorate 44(vertOnlyBlock) 0 Offset 0 - Decorate 44(vertOnlyBlock) BufferBlock - Decorate 46 DescriptorSet 0 - Decorate 46 Binding 0 - MemberDecorate 47(crossStageBlock2) 0 Offset 0 - MemberDecorate 47(crossStageBlock2) 1 Offset 16 - Decorate 47(crossStageBlock2) Block - Decorate 52(blockName1) DescriptorSet 0 - Decorate 52(blockName1) Binding 0 - Decorate 54(gl_VertexID) BuiltIn VertexId - Decorate 55(gl_InstanceID) BuiltIn InstanceId - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) - 9(vgo1): 8(ptr) Variable Output - 10: 6(float) Constant 0 - 11: 7(fvec4) ConstantComposite 10 10 10 10 - 12: TypeVector 6(float) 2 - 13: TypePointer Output 12(fvec2) - 14(vgo2): 13(ptr) Variable Output - 15: 12(fvec2) ConstantComposite 10 10 - 16(outBlock): TypeStruct 7(fvec4) - 17: TypePointer Output 16(outBlock) - 18: 17(ptr) Variable Output - 19: TypeInt 32 1 - 20: 19(int) Constant 0 - 22: TypePointer UniformConstant 12(fvec2) - 23(u1): 22(ptr) Variable UniformConstant - 24: TypeVector 6(float) 3 - 25: 24(fvec3) ConstantComposite 10 10 10 - 26: TypePointer UniformConstant 24(fvec3) - 27(u2): 26(ptr) Variable UniformConstant 25 - 28: TypePointer UniformConstant 7(fvec4) - 29(u3): 28(ptr) Variable UniformConstant 11 - 30: TypeMatrix 12(fvec2) 2 - 31: 6(float) Constant 1082130432 - 32: 12(fvec2) ConstantComposite 31 10 - 33: 12(fvec2) ConstantComposite 10 31 - 34: 30 ConstantComposite 32 33 - 35: TypePointer UniformConstant 30 - 36(um2): 35(ptr) Variable UniformConstant 34 - 37: TypeImage 6(float) 2D sampled format:Unknown - 38: TypeSampledImage 37 - 39: TypePointer UniformConstant 38 - 40(glass): 39(ptr) Variable UniformConstant -41(crossStageBlock1): TypeStruct 7(fvec4) 7(fvec4) - 42: TypePointer Uniform 41(crossStageBlock1) - 43: 42(ptr) Variable Uniform -44(vertOnlyBlock): TypeStruct 12(fvec2) - 45: TypePointer Uniform 44(vertOnlyBlock) - 46: 45(ptr) Variable Uniform -47(crossStageBlock2): TypeStruct 7(fvec4) 12(fvec2) - 48: TypeInt 32 0 - 49: 48(int) Constant 2 - 50: TypeArray 47(crossStageBlock2) 49 - 51: TypePointer Uniform 50 - 52(blockName1): 51(ptr) Variable Uniform - 53: TypePointer Input 19(int) - 54(gl_VertexID): 53(ptr) Variable Input -55(gl_InstanceID): 53(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - Store 9(vgo1) 11 - Store 14(vgo2) 15 - 21: 8(ptr) AccessChain 18 20 - Store 21 11 - Return - FunctionEnd -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 65 - - Capability Geometry - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Geometry 4 "main" 22 27 31 37 48 51 - ExecutionMode 4 InputPoints - ExecutionMode 4 Invocations 1 - ExecutionMode 4 OutputTriangleStrip - ExecutionMode 4 OutputVertices 3 - Source GLSL 460 - Name 4 "main" - Name 8 "i" - Name 22 "gfo1" - Name 27 "gfo2" - Name 29 "outBlock" - MemberName 29(outBlock) 0 "o3" - Name 31 "gf_out" - Name 32 "outBlock" - MemberName 32(outBlock) 0 "o3" - Name 37 "inBlock" - Name 48 "vgo1" - Name 51 "vgo2" - Name 53 "u1" - Name 57 "u2" - Name 59 "u3" - Name 60 "crossStageBlock2" - MemberName 60(crossStageBlock2) 0 "a" - MemberName 60(crossStageBlock2) 1 "b" - Name 64 "blockName1" - Decorate 22(gfo1) Location 0 - Decorate 27(gfo2) Location 1 - Decorate 29(outBlock) Block - Decorate 31(gf_out) Location 5 - Decorate 32(outBlock) Block - Decorate 37(inBlock) Location 5 - Decorate 48(vgo1) Location 0 - Decorate 51(vgo2) Location 1 - Decorate 53(u1) Location 1 - Decorate 53(u1) DescriptorSet 0 - Decorate 57(u2) Location 2 - Decorate 57(u2) DescriptorSet 0 - Decorate 59(u3) Location 3 - Decorate 59(u3) DescriptorSet 0 - MemberDecorate 60(crossStageBlock2) 0 Offset 0 - MemberDecorate 60(crossStageBlock2) 1 Offset 16 - Decorate 60(crossStageBlock2) Block - Decorate 64(blockName1) DescriptorSet 0 - Decorate 64(blockName1) Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Function 6(int) - 9: 6(int) Constant 0 - 16: 6(int) Constant 3 - 17: TypeBool - 19: TypeFloat 32 - 20: TypeVector 19(float) 4 - 21: TypePointer Output 20(fvec4) - 22(gfo1): 21(ptr) Variable Output - 23: 19(float) Constant 0 - 24: 20(fvec4) ConstantComposite 23 23 23 23 - 25: TypeVector 19(float) 2 - 26: TypePointer Output 25(fvec2) - 27(gfo2): 26(ptr) Variable Output - 28: 25(fvec2) ConstantComposite 23 23 - 29(outBlock): TypeStruct 20(fvec4) - 30: TypePointer Output 29(outBlock) - 31(gf_out): 30(ptr) Variable Output - 32(outBlock): TypeStruct 20(fvec4) - 33: TypeInt 32 0 - 34: 33(int) Constant 1 - 35: TypeArray 32(outBlock) 34 - 36: TypePointer Input 35 - 37(inBlock): 36(ptr) Variable Input - 39: TypePointer Input 20(fvec4) - 44: 6(int) Constant 1 - 46: TypeArray 20(fvec4) 34 - 47: TypePointer Input 46 - 48(vgo1): 47(ptr) Variable Input - 49: TypeArray 25(fvec2) 34 - 50: TypePointer Input 49 - 51(vgo2): 50(ptr) Variable Input - 52: TypePointer UniformConstant 25(fvec2) - 53(u1): 52(ptr) Variable UniformConstant - 54: TypeVector 19(float) 3 - 55: 54(fvec3) ConstantComposite 23 23 23 - 56: TypePointer UniformConstant 54(fvec3) - 57(u2): 56(ptr) Variable UniformConstant 55 - 58: TypePointer UniformConstant 20(fvec4) - 59(u3): 58(ptr) Variable UniformConstant 24 -60(crossStageBlock2): TypeStruct 20(fvec4) 25(fvec2) - 61: 33(int) Constant 2 - 62: TypeArray 60(crossStageBlock2) 61 - 63: TypePointer Uniform 62 - 64(blockName1): 63(ptr) Variable Uniform - 4(main): 2 Function None 3 - 5: Label - 8(i): 7(ptr) Variable Function - Store 8(i) 9 - Branch 10 - 10: Label - LoopMerge 12 13 None - Branch 14 - 14: Label - 15: 6(int) Load 8(i) - 18: 17(bool) SLessThan 15 16 - BranchConditional 18 11 12 - 11: Label - Store 22(gfo1) 24 - Store 27(gfo2) 28 - 38: 6(int) Load 8(i) - 40: 39(ptr) AccessChain 37(inBlock) 38 9 - 41: 20(fvec4) Load 40 - 42: 21(ptr) AccessChain 31(gf_out) 9 - Store 42 41 - EmitVertex - Branch 13 - 13: Label - 43: 6(int) Load 8(i) - 45: 6(int) IAdd 43 44 - Store 8(i) 45 - Branch 10 - 12: Label - EndPrimitive - Return - FunctionEnd -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 62 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 11 32 36 38 - ExecutionMode 4 OriginLowerLeft - Source GLSL 460 - Name 4 "main" - Name 9 "color" - Name 11 "gfo1" - Name 15 "u1" - Name 21 "u2" - Name 28 "u3" - Name 32 "outColor" - Name 34 "outBlock" - MemberName 34(outBlock) 0 "o3" - Name 36 "" - Name 38 "gfo2" - Name 45 "um2" - Name 49 "glass" - Name 50 "crossStageBlock1" - MemberName 50(crossStageBlock1) 0 "a" - MemberName 50(crossStageBlock1) 1 "b" - Name 52 "" - Name 53 "fragOnlyBlock" - MemberName 53(fragOnlyBlock) 0 "fb1" - Name 55 "" - Name 56 "crossStageBlock2" - MemberName 56(crossStageBlock2) 0 "a" - MemberName 56(crossStageBlock2) 1 "b" - Name 61 "blockName2" - Decorate 11(gfo1) Location 0 - Decorate 15(u1) Location 1 - Decorate 15(u1) DescriptorSet 0 - Decorate 21(u2) Location 2 - Decorate 21(u2) DescriptorSet 0 - Decorate 28(u3) Location 3 - Decorate 28(u3) DescriptorSet 0 - Decorate 32(outColor) Location 0 - Decorate 34(outBlock) Block - Decorate 36 Location 5 - Decorate 38(gfo2) Location 1 - Decorate 45(um2) Location 4 - Decorate 45(um2) DescriptorSet 0 - Decorate 49(glass) Location 0 - Decorate 49(glass) DescriptorSet 0 - Decorate 49(glass) Binding 0 - MemberDecorate 50(crossStageBlock1) 0 Offset 0 - MemberDecorate 50(crossStageBlock1) 1 Offset 16 - Decorate 50(crossStageBlock1) Block - Decorate 52 DescriptorSet 0 - Decorate 52 Binding 0 - MemberDecorate 53(fragOnlyBlock) 0 Offset 0 - Decorate 53(fragOnlyBlock) BufferBlock - Decorate 55 DescriptorSet 0 - Decorate 55 Binding 0 - MemberDecorate 56(crossStageBlock2) 0 Offset 0 - MemberDecorate 56(crossStageBlock2) 1 Offset 16 - Decorate 56(crossStageBlock2) Block - Decorate 61(blockName2) DescriptorSet 0 - Decorate 61(blockName2) Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: TypePointer Input 7(fvec4) - 11(gfo1): 10(ptr) Variable Input - 13: TypeVector 6(float) 2 - 14: TypePointer UniformConstant 13(fvec2) - 15(u1): 14(ptr) Variable UniformConstant - 19: TypeVector 6(float) 3 - 20: TypePointer UniformConstant 19(fvec3) - 21(u2): 20(ptr) Variable UniformConstant - 25: 6(float) Constant 0 - 26: 7(fvec4) ConstantComposite 25 25 25 25 - 27: TypePointer UniformConstant 7(fvec4) - 28(u3): 27(ptr) Variable UniformConstant 26 - 31: TypePointer Output 7(fvec4) - 32(outColor): 31(ptr) Variable Output - 34(outBlock): TypeStruct 7(fvec4) - 35: TypePointer Input 34(outBlock) - 36: 35(ptr) Variable Input - 37: TypePointer Input 13(fvec2) - 38(gfo2): 37(ptr) Variable Input - 39: TypeMatrix 13(fvec2) 2 - 40: 6(float) Constant 1082130432 - 41: 13(fvec2) ConstantComposite 40 25 - 42: 13(fvec2) ConstantComposite 25 40 - 43: 39 ConstantComposite 41 42 - 44: TypePointer UniformConstant 39 - 45(um2): 44(ptr) Variable UniformConstant 43 - 46: TypeImage 6(float) 2D sampled format:Unknown - 47: TypeSampledImage 46 - 48: TypePointer UniformConstant 47 - 49(glass): 48(ptr) Variable UniformConstant -50(crossStageBlock1): TypeStruct 7(fvec4) 7(fvec4) - 51: TypePointer Uniform 50(crossStageBlock1) - 52: 51(ptr) Variable Uniform -53(fragOnlyBlock): TypeStruct 13(fvec2) - 54: TypePointer Uniform 53(fragOnlyBlock) - 55: 54(ptr) Variable Uniform -56(crossStageBlock2): TypeStruct 7(fvec4) 13(fvec2) - 57: TypeInt 32 0 - 58: 57(int) Constant 2 - 59: TypeArray 56(crossStageBlock2) 58 - 60: TypePointer Uniform 59 - 61(blockName2): 60(ptr) Variable Uniform - 4(main): 2 Function None 3 - 5: Label - 9(color): 8(ptr) Variable Function - 12: 7(fvec4) Load 11(gfo1) - 16: 13(fvec2) Load 15(u1) - 17: 7(fvec4) VectorShuffle 16 16 0 1 0 1 - 18: 7(fvec4) FMul 12 17 - 22: 19(fvec3) Load 21(u2) - 23: 7(fvec4) VectorShuffle 22 22 0 1 2 0 - 24: 7(fvec4) FMul 18 23 - 29: 7(fvec4) Load 28(u3) - 30: 7(fvec4) FMul 24 29 - Store 9(color) 30 - 33: 7(fvec4) Load 9(color) - Store 32(outColor) 33 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/iomap.crossStage.vert.out b/deps/glslang/Test/baseResults/iomap.crossStage.vert.out deleted file mode 100644 index 13ff58c9..00000000 --- a/deps/glslang/Test/baseResults/iomap.crossStage.vert.out +++ /dev/null @@ -1,516 +0,0 @@ -iomap.crossStage.vert -Shader version: 460 -0:? Sequence -0:32 Function Definition: main( ( global void) -0:32 Function Parameters: -0:34 Sequence -0:34 move second child to first child ( temp 4-component vector of float) -0:34 'o1' ( smooth out 4-component vector of float) -0:34 Constant: -0:34 0.000000 -0:34 0.000000 -0:34 0.000000 -0:34 0.000000 -0:35 move second child to first child ( temp 2-component vector of float) -0:35 'o2' ( smooth out 2-component vector of float) -0:35 Constant: -0:35 0.000000 -0:35 0.000000 -0:36 move second child to first child ( temp 4-component vector of float) -0:36 o3: direct index for structure ( out 4-component vector of float) -0:36 'anon@0' (layout( location=5) out block{ out 4-component vector of float o3}) -0:36 Constant: -0:36 0 (const uint) -0:36 Constant: -0:36 0.000000 -0:36 0.000000 -0:36 0.000000 -0:36 0.000000 -0:? Linker Objects -0:? 'o1' ( smooth out 4-component vector of float) -0:? 'o2' ( smooth out 2-component vector of float) -0:? 'anon@0' (layout( location=5) out block{ out 4-component vector of float o3}) -0:? 'u1' ( uniform 2-component vector of float) -0:? 'u2' ( uniform 3-component vector of float) -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 'u3' ( uniform 4-component vector of float) -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 'um2' ( uniform 2X2 matrix of float) -0:? 4.000000 -0:? 0.000000 -0:? 0.000000 -0:? 4.000000 -0:? 'glass' (layout( location=0 binding=0) uniform sampler2D) -0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 4-component vector of float b}) -0:? 'anon@2' (layout( column_major std430) buffer block{layout( column_major std430) buffer 2-component vector of float vb1}) -0:? 'blockName1' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 2-component vector of float b}) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - -iomap.crossStage.frag -Shader version: 460 -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 'color' ( temp 4-component vector of float) -0:38 component-wise multiply ( temp 4-component vector of float) -0:38 component-wise multiply ( temp 4-component vector of float) -0:38 component-wise multiply ( temp 4-component vector of float) -0:38 'o1' ( smooth in 4-component vector of float) -0:38 vector swizzle ( temp 4-component vector of float) -0:38 'u1' ( uniform 2-component vector of float) -0:38 Sequence -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 1 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 1 (const int) -0:38 vector swizzle ( temp 4-component vector of float) -0:38 'u2' ( uniform 3-component vector of float) -0:38 Sequence -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 1 (const int) -0:38 Constant: -0:38 2 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 vector swizzle ( temp 4-component vector of float) -0:38 'u3' ( uniform 4-component vector of float) -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 Sequence -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 1 (const int) -0:38 Constant: -0:38 2 (const int) -0:38 Constant: -0:38 3 (const int) -0:39 move second child to first child ( temp 4-component vector of float) -0:39 'outColor' ( out 4-component vector of float) -0:39 'color' ( temp 4-component vector of float) -0:? Linker Objects -0:? 'anon@0' (layout( location=5) in block{ in 4-component vector of float o3}) -0:? 'o2' ( smooth in 2-component vector of float) -0:? 'o1' ( smooth in 4-component vector of float) -0:? 'outColor' ( out 4-component vector of float) -0:? 'u1' ( uniform 2-component vector of float) -0:? 'u2' ( uniform 3-component vector of float) -0:? 'u3' ( uniform 4-component vector of float) -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 'um2' ( uniform 2X2 matrix of float) -0:? 4.000000 -0:? 0.000000 -0:? 0.000000 -0:? 4.000000 -0:? 'glass' (layout( location=0 binding=0) uniform sampler2D) -0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 4-component vector of float b}) -0:? 'anon@2' (layout( column_major std430) buffer block{layout( column_major std430) buffer 2-component vector of float fb1}) -0:? 'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 2-component vector of float b}) - - -Linked vertex stage: - - -Linked fragment stage: - -WARNING: Linking unknown stage and fragment stages: Matched shader interfaces are using different instance names. - unknown stage stage: Block: crossStageBlock2 Instance: blockName1: "" - fragment stage: Block: crossStageBlock2 Instance: blockName2: "" - -Shader version: 460 -0:? Sequence -0:32 Function Definition: main( ( global void) -0:32 Function Parameters: -0:34 Sequence -0:34 move second child to first child ( temp 4-component vector of float) -0:34 'o1' ( smooth out 4-component vector of float) -0:34 Constant: -0:34 0.000000 -0:34 0.000000 -0:34 0.000000 -0:34 0.000000 -0:35 move second child to first child ( temp 2-component vector of float) -0:35 'o2' ( smooth out 2-component vector of float) -0:35 Constant: -0:35 0.000000 -0:35 0.000000 -0:36 move second child to first child ( temp 4-component vector of float) -0:36 o3: direct index for structure ( out 4-component vector of float) -0:36 'anon@0' (layout( location=5) out block{ out 4-component vector of float o3}) -0:36 Constant: -0:36 0 (const uint) -0:36 Constant: -0:36 0.000000 -0:36 0.000000 -0:36 0.000000 -0:36 0.000000 -0:? Linker Objects -0:? 'o1' ( smooth out 4-component vector of float) -0:? 'o2' ( smooth out 2-component vector of float) -0:? 'anon@0' (layout( location=5) out block{ out 4-component vector of float o3}) -0:? 'u1' ( uniform 2-component vector of float) -0:? 'u2' ( uniform 3-component vector of float) -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 'u3' ( uniform 4-component vector of float) -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 'um2' ( uniform 2X2 matrix of float) -0:? 4.000000 -0:? 0.000000 -0:? 0.000000 -0:? 4.000000 -0:? 'glass' (layout( location=0 binding=0) uniform sampler2D) -0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 4-component vector of float b}) -0:? 'anon@2' (layout( column_major std430) buffer block{layout( column_major std430) buffer 2-component vector of float vb1}) -0:? 'blockName1' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 2-component vector of float b}) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) -Shader version: 460 -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 'color' ( temp 4-component vector of float) -0:38 component-wise multiply ( temp 4-component vector of float) -0:38 component-wise multiply ( temp 4-component vector of float) -0:38 component-wise multiply ( temp 4-component vector of float) -0:38 'o1' ( smooth in 4-component vector of float) -0:38 vector swizzle ( temp 4-component vector of float) -0:38 'u1' ( uniform 2-component vector of float) -0:38 Sequence -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 1 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 1 (const int) -0:38 vector swizzle ( temp 4-component vector of float) -0:38 'u2' ( uniform 3-component vector of float) -0:38 Sequence -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 1 (const int) -0:38 Constant: -0:38 2 (const int) -0:38 Constant: -0:38 0 (const int) -0:38 vector swizzle ( temp 4-component vector of float) -0:38 'u3' ( uniform 4-component vector of float) -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 0.000000 -0:38 Sequence -0:38 Constant: -0:38 0 (const int) -0:38 Constant: -0:38 1 (const int) -0:38 Constant: -0:38 2 (const int) -0:38 Constant: -0:38 3 (const int) -0:39 move second child to first child ( temp 4-component vector of float) -0:39 'outColor' ( out 4-component vector of float) -0:39 'color' ( temp 4-component vector of float) -0:? Linker Objects -0:? 'anon@0' (layout( location=5) in block{ in 4-component vector of float o3}) -0:? 'o2' ( smooth in 2-component vector of float) -0:? 'o1' ( smooth in 4-component vector of float) -0:? 'outColor' ( out 4-component vector of float) -0:? 'u1' ( uniform 2-component vector of float) -0:? 'u2' ( uniform 3-component vector of float) -0:? 'u3' ( uniform 4-component vector of float) -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 'um2' ( uniform 2X2 matrix of float) -0:? 4.000000 -0:? 0.000000 -0:? 0.000000 -0:? 4.000000 -0:? 'glass' (layout( location=0 binding=0) uniform sampler2D) -0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 4-component vector of float b}) -0:? 'anon@2' (layout( column_major std430) buffer block{layout( column_major std430) buffer 2-component vector of float fb1}) -0:? 'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 2-component vector of float b}) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 56 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 9 14 18 54 55 - Source GLSL 460 - Name 4 "main" - Name 9 "o1" - Name 14 "o2" - Name 16 "outBlock" - MemberName 16(outBlock) 0 "o3" - Name 18 "" - Name 23 "u1" - Name 27 "u2" - Name 29 "u3" - Name 36 "um2" - Name 40 "glass" - Name 41 "crossStageBlock1" - MemberName 41(crossStageBlock1) 0 "a" - MemberName 41(crossStageBlock1) 1 "b" - Name 43 "" - Name 44 "vertOnlyBlock" - MemberName 44(vertOnlyBlock) 0 "vb1" - Name 46 "" - Name 47 "crossStageBlock2" - MemberName 47(crossStageBlock2) 0 "a" - MemberName 47(crossStageBlock2) 1 "b" - Name 52 "blockName1" - Name 54 "gl_VertexID" - Name 55 "gl_InstanceID" - Decorate 9(o1) Location 0 - Decorate 14(o2) Location 1 - Decorate 16(outBlock) Block - Decorate 18 Location 5 - Decorate 23(u1) Location 1 - Decorate 23(u1) DescriptorSet 0 - Decorate 27(u2) Location 2 - Decorate 27(u2) DescriptorSet 0 - Decorate 29(u3) Location 3 - Decorate 29(u3) DescriptorSet 0 - Decorate 36(um2) Location 4 - Decorate 36(um2) DescriptorSet 0 - Decorate 40(glass) Location 0 - Decorate 40(glass) DescriptorSet 0 - Decorate 40(glass) Binding 0 - MemberDecorate 41(crossStageBlock1) 0 Offset 0 - MemberDecorate 41(crossStageBlock1) 1 Offset 16 - Decorate 41(crossStageBlock1) Block - Decorate 43 DescriptorSet 0 - Decorate 43 Binding 0 - MemberDecorate 44(vertOnlyBlock) 0 Offset 0 - Decorate 44(vertOnlyBlock) BufferBlock - Decorate 46 DescriptorSet 0 - Decorate 46 Binding 0 - MemberDecorate 47(crossStageBlock2) 0 Offset 0 - MemberDecorate 47(crossStageBlock2) 1 Offset 16 - Decorate 47(crossStageBlock2) Block - Decorate 52(blockName1) DescriptorSet 0 - Decorate 52(blockName1) Binding 0 - Decorate 54(gl_VertexID) BuiltIn VertexId - Decorate 55(gl_InstanceID) BuiltIn InstanceId - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) - 9(o1): 8(ptr) Variable Output - 10: 6(float) Constant 0 - 11: 7(fvec4) ConstantComposite 10 10 10 10 - 12: TypeVector 6(float) 2 - 13: TypePointer Output 12(fvec2) - 14(o2): 13(ptr) Variable Output - 15: 12(fvec2) ConstantComposite 10 10 - 16(outBlock): TypeStruct 7(fvec4) - 17: TypePointer Output 16(outBlock) - 18: 17(ptr) Variable Output - 19: TypeInt 32 1 - 20: 19(int) Constant 0 - 22: TypePointer UniformConstant 12(fvec2) - 23(u1): 22(ptr) Variable UniformConstant - 24: TypeVector 6(float) 3 - 25: 24(fvec3) ConstantComposite 10 10 10 - 26: TypePointer UniformConstant 24(fvec3) - 27(u2): 26(ptr) Variable UniformConstant 25 - 28: TypePointer UniformConstant 7(fvec4) - 29(u3): 28(ptr) Variable UniformConstant 11 - 30: TypeMatrix 12(fvec2) 2 - 31: 6(float) Constant 1082130432 - 32: 12(fvec2) ConstantComposite 31 10 - 33: 12(fvec2) ConstantComposite 10 31 - 34: 30 ConstantComposite 32 33 - 35: TypePointer UniformConstant 30 - 36(um2): 35(ptr) Variable UniformConstant 34 - 37: TypeImage 6(float) 2D sampled format:Unknown - 38: TypeSampledImage 37 - 39: TypePointer UniformConstant 38 - 40(glass): 39(ptr) Variable UniformConstant -41(crossStageBlock1): TypeStruct 7(fvec4) 7(fvec4) - 42: TypePointer Uniform 41(crossStageBlock1) - 43: 42(ptr) Variable Uniform -44(vertOnlyBlock): TypeStruct 12(fvec2) - 45: TypePointer Uniform 44(vertOnlyBlock) - 46: 45(ptr) Variable Uniform -47(crossStageBlock2): TypeStruct 7(fvec4) 12(fvec2) - 48: TypeInt 32 0 - 49: 48(int) Constant 2 - 50: TypeArray 47(crossStageBlock2) 49 - 51: TypePointer Uniform 50 - 52(blockName1): 51(ptr) Variable Uniform - 53: TypePointer Input 19(int) - 54(gl_VertexID): 53(ptr) Variable Input -55(gl_InstanceID): 53(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - Store 9(o1) 11 - Store 14(o2) 15 - 21: 8(ptr) AccessChain 18 20 - Store 21 11 - Return - FunctionEnd -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 62 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 11 32 36 38 - ExecutionMode 4 OriginLowerLeft - Source GLSL 460 - Name 4 "main" - Name 9 "color" - Name 11 "o1" - Name 15 "u1" - Name 21 "u2" - Name 28 "u3" - Name 32 "outColor" - Name 34 "outBlock" - MemberName 34(outBlock) 0 "o3" - Name 36 "" - Name 38 "o2" - Name 45 "um2" - Name 49 "glass" - Name 50 "crossStageBlock1" - MemberName 50(crossStageBlock1) 0 "a" - MemberName 50(crossStageBlock1) 1 "b" - Name 52 "" - Name 53 "fragOnlyBlock" - MemberName 53(fragOnlyBlock) 0 "fb1" - Name 55 "" - Name 56 "crossStageBlock2" - MemberName 56(crossStageBlock2) 0 "a" - MemberName 56(crossStageBlock2) 1 "b" - Name 61 "blockName2" - Decorate 11(o1) Location 0 - Decorate 15(u1) Location 1 - Decorate 15(u1) DescriptorSet 0 - Decorate 21(u2) Location 2 - Decorate 21(u2) DescriptorSet 0 - Decorate 28(u3) Location 3 - Decorate 28(u3) DescriptorSet 0 - Decorate 32(outColor) Location 0 - Decorate 34(outBlock) Block - Decorate 36 Location 5 - Decorate 38(o2) Location 1 - Decorate 45(um2) Location 4 - Decorate 45(um2) DescriptorSet 0 - Decorate 49(glass) Location 0 - Decorate 49(glass) DescriptorSet 0 - Decorate 49(glass) Binding 0 - MemberDecorate 50(crossStageBlock1) 0 Offset 0 - MemberDecorate 50(crossStageBlock1) 1 Offset 16 - Decorate 50(crossStageBlock1) Block - Decorate 52 DescriptorSet 0 - Decorate 52 Binding 0 - MemberDecorate 53(fragOnlyBlock) 0 Offset 0 - Decorate 53(fragOnlyBlock) BufferBlock - Decorate 55 DescriptorSet 0 - Decorate 55 Binding 0 - MemberDecorate 56(crossStageBlock2) 0 Offset 0 - MemberDecorate 56(crossStageBlock2) 1 Offset 16 - Decorate 56(crossStageBlock2) Block - Decorate 61(blockName2) DescriptorSet 0 - Decorate 61(blockName2) Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: TypePointer Input 7(fvec4) - 11(o1): 10(ptr) Variable Input - 13: TypeVector 6(float) 2 - 14: TypePointer UniformConstant 13(fvec2) - 15(u1): 14(ptr) Variable UniformConstant - 19: TypeVector 6(float) 3 - 20: TypePointer UniformConstant 19(fvec3) - 21(u2): 20(ptr) Variable UniformConstant - 25: 6(float) Constant 0 - 26: 7(fvec4) ConstantComposite 25 25 25 25 - 27: TypePointer UniformConstant 7(fvec4) - 28(u3): 27(ptr) Variable UniformConstant 26 - 31: TypePointer Output 7(fvec4) - 32(outColor): 31(ptr) Variable Output - 34(outBlock): TypeStruct 7(fvec4) - 35: TypePointer Input 34(outBlock) - 36: 35(ptr) Variable Input - 37: TypePointer Input 13(fvec2) - 38(o2): 37(ptr) Variable Input - 39: TypeMatrix 13(fvec2) 2 - 40: 6(float) Constant 1082130432 - 41: 13(fvec2) ConstantComposite 40 25 - 42: 13(fvec2) ConstantComposite 25 40 - 43: 39 ConstantComposite 41 42 - 44: TypePointer UniformConstant 39 - 45(um2): 44(ptr) Variable UniformConstant 43 - 46: TypeImage 6(float) 2D sampled format:Unknown - 47: TypeSampledImage 46 - 48: TypePointer UniformConstant 47 - 49(glass): 48(ptr) Variable UniformConstant -50(crossStageBlock1): TypeStruct 7(fvec4) 7(fvec4) - 51: TypePointer Uniform 50(crossStageBlock1) - 52: 51(ptr) Variable Uniform -53(fragOnlyBlock): TypeStruct 13(fvec2) - 54: TypePointer Uniform 53(fragOnlyBlock) - 55: 54(ptr) Variable Uniform -56(crossStageBlock2): TypeStruct 7(fvec4) 13(fvec2) - 57: TypeInt 32 0 - 58: 57(int) Constant 2 - 59: TypeArray 56(crossStageBlock2) 58 - 60: TypePointer Uniform 59 - 61(blockName2): 60(ptr) Variable Uniform - 4(main): 2 Function None 3 - 5: Label - 9(color): 8(ptr) Variable Function - 12: 7(fvec4) Load 11(o1) - 16: 13(fvec2) Load 15(u1) - 17: 7(fvec4) VectorShuffle 16 16 0 1 0 1 - 18: 7(fvec4) FMul 12 17 - 22: 19(fvec3) Load 21(u2) - 23: 7(fvec4) VectorShuffle 22 22 0 1 2 0 - 24: 7(fvec4) FMul 18 23 - 29: 7(fvec4) Load 28(u3) - 30: 7(fvec4) FMul 24 29 - Store 9(color) 30 - 33: 7(fvec4) Load 9(color) - Store 32(outColor) 33 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/iomap.crossStage.vk.vert.out b/deps/glslang/Test/baseResults/iomap.crossStage.vk.vert.out deleted file mode 100644 index 0a2eae84..00000000 --- a/deps/glslang/Test/baseResults/iomap.crossStage.vk.vert.out +++ /dev/null @@ -1,721 +0,0 @@ -iomap.crossStage.vk.vert -Shader version: 460 -0:? Sequence -0:26 Function Definition: main( ( global void) -0:26 Function Parameters: -0:28 Sequence -0:28 move second child to first child ( temp highp 4-component vector of float) -0:28 'vgo1' ( smooth out highp 4-component vector of float) -0:28 Constant: -0:28 0.000000 -0:28 0.000000 -0:28 0.000000 -0:28 0.000000 -0:29 move second child to first child ( temp highp 2-component vector of float) -0:29 'vgo2' ( smooth out highp 2-component vector of float) -0:29 Constant: -0:29 0.000000 -0:29 0.000000 -0:30 move second child to first child ( temp highp 4-component vector of float) -0:30 o3: direct index for structure ( out highp 4-component vector of float) -0:30 'anon@0' (layout( location=5) out block{ out highp 4-component vector of float o3}) -0:30 Constant: -0:30 0 (const uint) -0:30 Constant: -0:30 0.000000 -0:30 0.000000 -0:30 0.000000 -0:30 0.000000 -0:? Linker Objects -0:? 'vgo1' ( smooth out highp 4-component vector of float) -0:? 'vgo2' ( smooth out highp 2-component vector of float) -0:? 'anon@0' (layout( location=5) out block{ out highp 4-component vector of float o3}) -0:? 'glass' (layout( binding=0) uniform highp sampler2D) -0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 4-component vector of float b}) -0:? 'anon@2' (layout( column_major std430) readonly buffer block{layout( column_major std430) readonly buffer highp 2-component vector of float vb1}) -0:? 'blockName1' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b}) - -iomap.crossStage.vk.geom -Shader version: 460 -invocations = -1 -max_vertices = 3 -input primitive = points -output primitive = triangle_strip -0:? Sequence -0:25 Function Definition: main( ( global void) -0:25 Function Parameters: -0:27 Sequence -0:27 Sequence -0:27 Sequence -0:27 move second child to first child ( temp highp int) -0:27 'i' ( temp highp int) -0:27 Constant: -0:27 0 (const int) -0:27 Loop with condition tested first -0:27 Loop Condition -0:27 Compare Less Than ( temp bool) -0:27 'i' ( temp highp int) -0:27 Constant: -0:27 3 (const int) -0:27 Loop Body -0:28 Sequence -0:28 move second child to first child ( temp highp 4-component vector of float) -0:28 'gfo1' (layout( stream=0) out highp 4-component vector of float) -0:28 Constant: -0:28 0.000000 -0:28 0.000000 -0:28 0.000000 -0:28 0.000000 -0:29 move second child to first child ( temp highp 2-component vector of float) -0:29 'gfo2' (layout( stream=0) out highp 2-component vector of float) -0:29 Constant: -0:29 0.000000 -0:29 0.000000 -0:30 move second child to first child ( temp highp 4-component vector of float) -0:30 o3: direct index for structure (layout( stream=0) out highp 4-component vector of float) -0:30 'gf_out' (layout( location=5 stream=0) out block{layout( stream=0) out highp 4-component vector of float o3}) -0:30 Constant: -0:30 0 (const int) -0:30 o3: direct index for structure ( in highp 4-component vector of float) -0:30 indirect index (layout( location=5) temp block{ in highp 4-component vector of float o3}) -0:30 'inBlock' (layout( location=5) in 1-element array of block{ in highp 4-component vector of float o3}) -0:30 'i' ( temp highp int) -0:30 Constant: -0:30 0 (const int) -0:31 EmitVertex ( global void) -0:27 Loop Terminal Expression -0:27 Post-Increment ( temp highp int) -0:27 'i' ( temp highp int) -0:33 EndPrimitive ( global void) -0:? Linker Objects -0:? 'vgo1' ( in 1-element array of highp 4-component vector of float) -0:? 'vgo2' ( in 1-element array of highp 2-component vector of float) -0:? 'inBlock' (layout( location=5) in 1-element array of block{ in highp 4-component vector of float o3}) -0:? 'gfo1' (layout( stream=0) out highp 4-component vector of float) -0:? 'gfo2' (layout( stream=0) out highp 2-component vector of float) -0:? 'gf_out' (layout( location=5 stream=0) out block{layout( stream=0) out highp 4-component vector of float o3}) -0:? 'blockName1' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b}) - -iomap.crossStage.vk.frag -Shader version: 460 -gl_FragCoord origin is upper left -0:? Sequence -0:30 Function Definition: Bar( ( global highp 2-component vector of float) -0:30 Function Parameters: -0:31 Sequence -0:31 Branch: Return with expression -0:32 add ( temp highp 2-component vector of float) -0:31 add ( temp highp 2-component vector of float) -0:31 fb1: direct index for structure (layout( column_major std430) readonly buffer highp 2-component vector of float) -0:31 'anon@2' (layout( column_major std430) readonly buffer block{layout( column_major std430) readonly buffer highp 2-component vector of float fb1}) -0:31 Constant: -0:31 0 (const uint) -0:32 b: direct index for structure (layout( column_major std140) uniform highp 2-component vector of float) -0:32 direct index (layout( column_major std140) temp block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b}) -0:32 'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b}) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 1 (const int) -0:33 b: direct index for structure (layout( column_major std140) uniform highp 2-component vector of float) -0:33 direct index (layout( column_major std140) temp block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b}) -0:33 'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b}) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 1 (const int) -0:36 Function Definition: Foo( ( global highp 4-component vector of float) -0:36 Function Parameters: -0:37 Sequence -0:37 Branch: Return with expression -0:40 add ( temp highp 4-component vector of float) -0:39 add ( temp highp 4-component vector of float) -0:38 add ( temp highp 4-component vector of float) -0:37 add ( temp highp 4-component vector of float) -0:37 a: direct index for structure (layout( column_major std140) uniform highp 4-component vector of float) -0:37 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 4-component vector of float b}) -0:37 Constant: -0:37 0 (const uint) -0:38 b: direct index for structure (layout( column_major std140) uniform highp 4-component vector of float) -0:38 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 4-component vector of float b}) -0:38 Constant: -0:38 1 (const uint) -0:39 a: direct index for structure (layout( column_major std140) uniform highp 4-component vector of float) -0:39 direct index (layout( column_major std140) temp block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b}) -0:39 'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b}) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 0 (const int) -0:40 a: direct index for structure (layout( column_major std140) uniform highp 4-component vector of float) -0:40 direct index (layout( column_major std140) temp block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b}) -0:40 'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b}) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 0 (const int) -0:41 Construct vec4 ( temp highp 4-component vector of float) -0:41 Function Call: Bar( ( global highp 2-component vector of float) -0:41 Constant: -0:41 0.000000 -0:41 Constant: -0:41 0.000000 -0:44 Function Definition: main( ( global void) -0:44 Function Parameters: -0:46 Sequence -0:46 Sequence -0:46 move second child to first child ( temp highp 4-component vector of float) -0:46 'color' ( temp highp 4-component vector of float) -0:46 'gfo1' ( smooth in highp 4-component vector of float) -0:47 move second child to first child ( temp highp 4-component vector of float) -0:47 'color' ( temp highp 4-component vector of float) -0:47 add ( temp highp 4-component vector of float) -0:47 'color' ( temp highp 4-component vector of float) -0:47 Function Call: Foo( ( global highp 4-component vector of float) -0:48 move second child to first child ( temp highp 4-component vector of float) -0:48 'outColor' ( out highp 4-component vector of float) -0:48 'color' ( temp highp 4-component vector of float) -0:? Linker Objects -0:? 'anon@0' (layout( location=5) in block{ in highp 4-component vector of float o3}) -0:? 'gfo1' ( smooth in highp 4-component vector of float) -0:? 'gfo2' ( smooth in highp 2-component vector of float) -0:? 'outColor' ( out highp 4-component vector of float) -0:? 'glass' (layout( binding=0) uniform highp sampler2D) -0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 4-component vector of float b}) -0:? 'anon@2' (layout( column_major std430) readonly buffer block{layout( column_major std430) readonly buffer highp 2-component vector of float fb1}) -0:? 'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b}) - - -Linked vertex stage: - - -Linked geometry stage: - - -Linked fragment stage: - -WARNING: Linking unknown stage and fragment stages: Matched shader interfaces are using different instance names. - unknown stage stage: Block: crossStageBlock2 Instance: blockName1: "" - fragment stage: Block: crossStageBlock2 Instance: blockName2: "" - -Shader version: 460 -0:? Sequence -0:26 Function Definition: main( ( global void) -0:26 Function Parameters: -0:28 Sequence -0:28 move second child to first child ( temp highp 4-component vector of float) -0:28 'vgo1' ( smooth out highp 4-component vector of float) -0:28 Constant: -0:28 0.000000 -0:28 0.000000 -0:28 0.000000 -0:28 0.000000 -0:29 move second child to first child ( temp highp 2-component vector of float) -0:29 'vgo2' ( smooth out highp 2-component vector of float) -0:29 Constant: -0:29 0.000000 -0:29 0.000000 -0:30 move second child to first child ( temp highp 4-component vector of float) -0:30 o3: direct index for structure ( out highp 4-component vector of float) -0:30 'anon@0' (layout( location=5) out block{ out highp 4-component vector of float o3}) -0:30 Constant: -0:30 0 (const uint) -0:30 Constant: -0:30 0.000000 -0:30 0.000000 -0:30 0.000000 -0:30 0.000000 -0:? Linker Objects -0:? 'vgo1' ( smooth out highp 4-component vector of float) -0:? 'vgo2' ( smooth out highp 2-component vector of float) -0:? 'anon@0' (layout( location=5) out block{ out highp 4-component vector of float o3}) -0:? 'glass' (layout( binding=0) uniform highp sampler2D) -0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 4-component vector of float b}) -0:? 'anon@2' (layout( column_major std430) readonly buffer block{layout( column_major std430) readonly buffer highp 2-component vector of float vb1}) -0:? 'blockName1' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b}) -Shader version: 460 -invocations = 1 -max_vertices = 3 -input primitive = points -output primitive = triangle_strip -0:? Sequence -0:25 Function Definition: main( ( global void) -0:25 Function Parameters: -0:27 Sequence -0:27 Sequence -0:27 Sequence -0:27 move second child to first child ( temp highp int) -0:27 'i' ( temp highp int) -0:27 Constant: -0:27 0 (const int) -0:27 Loop with condition tested first -0:27 Loop Condition -0:27 Compare Less Than ( temp bool) -0:27 'i' ( temp highp int) -0:27 Constant: -0:27 3 (const int) -0:27 Loop Body -0:28 Sequence -0:28 move second child to first child ( temp highp 4-component vector of float) -0:28 'gfo1' (layout( stream=0) out highp 4-component vector of float) -0:28 Constant: -0:28 0.000000 -0:28 0.000000 -0:28 0.000000 -0:28 0.000000 -0:29 move second child to first child ( temp highp 2-component vector of float) -0:29 'gfo2' (layout( stream=0) out highp 2-component vector of float) -0:29 Constant: -0:29 0.000000 -0:29 0.000000 -0:30 move second child to first child ( temp highp 4-component vector of float) -0:30 o3: direct index for structure (layout( stream=0) out highp 4-component vector of float) -0:30 'gf_out' (layout( location=5 stream=0) out block{layout( stream=0) out highp 4-component vector of float o3}) -0:30 Constant: -0:30 0 (const int) -0:30 o3: direct index for structure ( in highp 4-component vector of float) -0:30 indirect index (layout( location=5) temp block{ in highp 4-component vector of float o3}) -0:30 'inBlock' (layout( location=5) in 1-element array of block{ in highp 4-component vector of float o3}) -0:30 'i' ( temp highp int) -0:30 Constant: -0:30 0 (const int) -0:31 EmitVertex ( global void) -0:27 Loop Terminal Expression -0:27 Post-Increment ( temp highp int) -0:27 'i' ( temp highp int) -0:33 EndPrimitive ( global void) -0:? Linker Objects -0:? 'vgo1' ( in 1-element array of highp 4-component vector of float) -0:? 'vgo2' ( in 1-element array of highp 2-component vector of float) -0:? 'inBlock' (layout( location=5) in 1-element array of block{ in highp 4-component vector of float o3}) -0:? 'gfo1' (layout( stream=0) out highp 4-component vector of float) -0:? 'gfo2' (layout( stream=0) out highp 2-component vector of float) -0:? 'gf_out' (layout( location=5 stream=0) out block{layout( stream=0) out highp 4-component vector of float o3}) -0:? 'blockName1' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b}) -Shader version: 460 -gl_FragCoord origin is upper left -0:? Sequence -0:30 Function Definition: Bar( ( global highp 2-component vector of float) -0:30 Function Parameters: -0:31 Sequence -0:31 Branch: Return with expression -0:32 add ( temp highp 2-component vector of float) -0:31 add ( temp highp 2-component vector of float) -0:31 fb1: direct index for structure (layout( column_major std430) readonly buffer highp 2-component vector of float) -0:31 'anon@2' (layout( column_major std430) readonly buffer block{layout( column_major std430) readonly buffer highp 2-component vector of float fb1}) -0:31 Constant: -0:31 0 (const uint) -0:32 b: direct index for structure (layout( column_major std140) uniform highp 2-component vector of float) -0:32 direct index (layout( column_major std140) temp block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b}) -0:32 'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b}) -0:32 Constant: -0:32 0 (const int) -0:32 Constant: -0:32 1 (const int) -0:33 b: direct index for structure (layout( column_major std140) uniform highp 2-component vector of float) -0:33 direct index (layout( column_major std140) temp block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b}) -0:33 'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b}) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 1 (const int) -0:36 Function Definition: Foo( ( global highp 4-component vector of float) -0:36 Function Parameters: -0:37 Sequence -0:37 Branch: Return with expression -0:40 add ( temp highp 4-component vector of float) -0:39 add ( temp highp 4-component vector of float) -0:38 add ( temp highp 4-component vector of float) -0:37 add ( temp highp 4-component vector of float) -0:37 a: direct index for structure (layout( column_major std140) uniform highp 4-component vector of float) -0:37 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 4-component vector of float b}) -0:37 Constant: -0:37 0 (const uint) -0:38 b: direct index for structure (layout( column_major std140) uniform highp 4-component vector of float) -0:38 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 4-component vector of float b}) -0:38 Constant: -0:38 1 (const uint) -0:39 a: direct index for structure (layout( column_major std140) uniform highp 4-component vector of float) -0:39 direct index (layout( column_major std140) temp block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b}) -0:39 'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b}) -0:39 Constant: -0:39 0 (const int) -0:39 Constant: -0:39 0 (const int) -0:40 a: direct index for structure (layout( column_major std140) uniform highp 4-component vector of float) -0:40 direct index (layout( column_major std140) temp block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b}) -0:40 'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b}) -0:40 Constant: -0:40 1 (const int) -0:40 Constant: -0:40 0 (const int) -0:41 Construct vec4 ( temp highp 4-component vector of float) -0:41 Function Call: Bar( ( global highp 2-component vector of float) -0:41 Constant: -0:41 0.000000 -0:41 Constant: -0:41 0.000000 -0:44 Function Definition: main( ( global void) -0:44 Function Parameters: -0:46 Sequence -0:46 Sequence -0:46 move second child to first child ( temp highp 4-component vector of float) -0:46 'color' ( temp highp 4-component vector of float) -0:46 'gfo1' ( smooth in highp 4-component vector of float) -0:47 move second child to first child ( temp highp 4-component vector of float) -0:47 'color' ( temp highp 4-component vector of float) -0:47 add ( temp highp 4-component vector of float) -0:47 'color' ( temp highp 4-component vector of float) -0:47 Function Call: Foo( ( global highp 4-component vector of float) -0:48 move second child to first child ( temp highp 4-component vector of float) -0:48 'outColor' ( out highp 4-component vector of float) -0:48 'color' ( temp highp 4-component vector of float) -0:? Linker Objects -0:? 'anon@0' (layout( location=5) in block{ in highp 4-component vector of float o3}) -0:? 'gfo1' ( smooth in highp 4-component vector of float) -0:? 'gfo2' ( smooth in highp 2-component vector of float) -0:? 'outColor' ( out highp 4-component vector of float) -0:? 'glass' (layout( binding=0) uniform highp sampler2D) -0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 4-component vector of float b}) -0:? 'anon@2' (layout( column_major std430) readonly buffer block{layout( column_major std430) readonly buffer highp 2-component vector of float fb1}) -0:? 'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b}) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 38 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 9 14 18 - Source GLSL 460 - Name 4 "main" - Name 9 "vgo1" - Name 14 "vgo2" - Name 16 "outBlock" - MemberName 16(outBlock) 0 "o3" - Name 18 "" - Name 25 "glass" - Name 26 "crossStageBlock1" - MemberName 26(crossStageBlock1) 0 "a" - MemberName 26(crossStageBlock1) 1 "b" - Name 28 "" - Name 29 "vertOnlyBlock" - MemberName 29(vertOnlyBlock) 0 "vb1" - Name 31 "" - Name 32 "crossStageBlock2" - MemberName 32(crossStageBlock2) 0 "a" - MemberName 32(crossStageBlock2) 1 "b" - Name 37 "blockName1" - Decorate 9(vgo1) Location 0 - Decorate 14(vgo2) Location 1 - Decorate 16(outBlock) Block - Decorate 18 Location 5 - Decorate 25(glass) DescriptorSet 0 - Decorate 25(glass) Binding 0 - MemberDecorate 26(crossStageBlock1) 0 Offset 0 - MemberDecorate 26(crossStageBlock1) 1 Offset 16 - Decorate 26(crossStageBlock1) Block - Decorate 28 DescriptorSet 0 - Decorate 28 Binding 1 - MemberDecorate 29(vertOnlyBlock) 0 NonWritable - MemberDecorate 29(vertOnlyBlock) 0 Offset 0 - Decorate 29(vertOnlyBlock) BufferBlock - Decorate 31 DescriptorSet 0 - Decorate 31 Binding 0 - MemberDecorate 32(crossStageBlock2) 0 Offset 0 - MemberDecorate 32(crossStageBlock2) 1 Offset 16 - Decorate 32(crossStageBlock2) Block - Decorate 37(blockName1) DescriptorSet 0 - Decorate 37(blockName1) Binding 3 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) - 9(vgo1): 8(ptr) Variable Output - 10: 6(float) Constant 0 - 11: 7(fvec4) ConstantComposite 10 10 10 10 - 12: TypeVector 6(float) 2 - 13: TypePointer Output 12(fvec2) - 14(vgo2): 13(ptr) Variable Output - 15: 12(fvec2) ConstantComposite 10 10 - 16(outBlock): TypeStruct 7(fvec4) - 17: TypePointer Output 16(outBlock) - 18: 17(ptr) Variable Output - 19: TypeInt 32 1 - 20: 19(int) Constant 0 - 22: TypeImage 6(float) 2D sampled format:Unknown - 23: TypeSampledImage 22 - 24: TypePointer UniformConstant 23 - 25(glass): 24(ptr) Variable UniformConstant -26(crossStageBlock1): TypeStruct 7(fvec4) 7(fvec4) - 27: TypePointer Uniform 26(crossStageBlock1) - 28: 27(ptr) Variable Uniform -29(vertOnlyBlock): TypeStruct 12(fvec2) - 30: TypePointer Uniform 29(vertOnlyBlock) - 31: 30(ptr) Variable Uniform -32(crossStageBlock2): TypeStruct 7(fvec4) 12(fvec2) - 33: TypeInt 32 0 - 34: 33(int) Constant 2 - 35: TypeArray 32(crossStageBlock2) 34 - 36: TypePointer Uniform 35 - 37(blockName1): 36(ptr) Variable Uniform - 4(main): 2 Function None 3 - 5: Label - Store 9(vgo1) 11 - Store 14(vgo2) 15 - 21: 8(ptr) AccessChain 18 20 - Store 21 11 - Return - FunctionEnd -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 57 - - Capability Geometry - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Geometry 4 "main" 22 27 31 37 48 51 - ExecutionMode 4 InputPoints - ExecutionMode 4 Invocations 1 - ExecutionMode 4 OutputTriangleStrip - ExecutionMode 4 OutputVertices 3 - Source GLSL 460 - Name 4 "main" - Name 8 "i" - Name 22 "gfo1" - Name 27 "gfo2" - Name 29 "outBlock" - MemberName 29(outBlock) 0 "o3" - Name 31 "gf_out" - Name 32 "outBlock" - MemberName 32(outBlock) 0 "o3" - Name 37 "inBlock" - Name 48 "vgo1" - Name 51 "vgo2" - Name 52 "crossStageBlock2" - MemberName 52(crossStageBlock2) 0 "a" - MemberName 52(crossStageBlock2) 1 "b" - Name 56 "blockName1" - Decorate 22(gfo1) Location 0 - Decorate 27(gfo2) Location 1 - Decorate 29(outBlock) Block - Decorate 31(gf_out) Location 5 - Decorate 32(outBlock) Block - Decorate 37(inBlock) Location 5 - Decorate 48(vgo1) Location 0 - Decorate 51(vgo2) Location 1 - MemberDecorate 52(crossStageBlock2) 0 Offset 0 - MemberDecorate 52(crossStageBlock2) 1 Offset 16 - Decorate 52(crossStageBlock2) Block - Decorate 56(blockName1) DescriptorSet 0 - Decorate 56(blockName1) Binding 3 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Function 6(int) - 9: 6(int) Constant 0 - 16: 6(int) Constant 3 - 17: TypeBool - 19: TypeFloat 32 - 20: TypeVector 19(float) 4 - 21: TypePointer Output 20(fvec4) - 22(gfo1): 21(ptr) Variable Output - 23: 19(float) Constant 0 - 24: 20(fvec4) ConstantComposite 23 23 23 23 - 25: TypeVector 19(float) 2 - 26: TypePointer Output 25(fvec2) - 27(gfo2): 26(ptr) Variable Output - 28: 25(fvec2) ConstantComposite 23 23 - 29(outBlock): TypeStruct 20(fvec4) - 30: TypePointer Output 29(outBlock) - 31(gf_out): 30(ptr) Variable Output - 32(outBlock): TypeStruct 20(fvec4) - 33: TypeInt 32 0 - 34: 33(int) Constant 1 - 35: TypeArray 32(outBlock) 34 - 36: TypePointer Input 35 - 37(inBlock): 36(ptr) Variable Input - 39: TypePointer Input 20(fvec4) - 44: 6(int) Constant 1 - 46: TypeArray 20(fvec4) 34 - 47: TypePointer Input 46 - 48(vgo1): 47(ptr) Variable Input - 49: TypeArray 25(fvec2) 34 - 50: TypePointer Input 49 - 51(vgo2): 50(ptr) Variable Input -52(crossStageBlock2): TypeStruct 20(fvec4) 25(fvec2) - 53: 33(int) Constant 2 - 54: TypeArray 52(crossStageBlock2) 53 - 55: TypePointer Uniform 54 - 56(blockName1): 55(ptr) Variable Uniform - 4(main): 2 Function None 3 - 5: Label - 8(i): 7(ptr) Variable Function - Store 8(i) 9 - Branch 10 - 10: Label - LoopMerge 12 13 None - Branch 14 - 14: Label - 15: 6(int) Load 8(i) - 18: 17(bool) SLessThan 15 16 - BranchConditional 18 11 12 - 11: Label - Store 22(gfo1) 24 - Store 27(gfo2) 28 - 38: 6(int) Load 8(i) - 40: 39(ptr) AccessChain 37(inBlock) 38 9 - 41: 20(fvec4) Load 40 - 42: 21(ptr) AccessChain 31(gf_out) 9 - Store 42 41 - EmitVertex - Branch 13 - 13: Label - 43: 6(int) Load 8(i) - 45: 6(int) IAdd 43 44 - Store 8(i) 45 - Branch 10 - 12: Label - EndPrimitive - Return - FunctionEnd -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 81 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 64 70 74 76 - ExecutionMode 4 OriginUpperLeft - Source GLSL 460 - Name 4 "main" - Name 9 "Bar(" - Name 13 "Foo(" - Name 15 "fragOnlyBlock" - MemberName 15(fragOnlyBlock) 0 "fb1" - Name 17 "" - Name 23 "crossStageBlock2" - MemberName 23(crossStageBlock2) 0 "a" - MemberName 23(crossStageBlock2) 1 "b" - Name 28 "blockName2" - Name 38 "crossStageBlock1" - MemberName 38(crossStageBlock1) 0 "a" - MemberName 38(crossStageBlock1) 1 "b" - Name 40 "" - Name 62 "color" - Name 64 "gfo1" - Name 70 "outColor" - Name 72 "outBlock" - MemberName 72(outBlock) 0 "o3" - Name 74 "" - Name 76 "gfo2" - Name 80 "glass" - MemberDecorate 15(fragOnlyBlock) 0 NonWritable - MemberDecorate 15(fragOnlyBlock) 0 Offset 0 - Decorate 15(fragOnlyBlock) BufferBlock - Decorate 17 DescriptorSet 0 - Decorate 17 Binding 2 - MemberDecorate 23(crossStageBlock2) 0 Offset 0 - MemberDecorate 23(crossStageBlock2) 1 Offset 16 - Decorate 23(crossStageBlock2) Block - Decorate 28(blockName2) DescriptorSet 0 - Decorate 28(blockName2) Binding 3 - MemberDecorate 38(crossStageBlock1) 0 Offset 0 - MemberDecorate 38(crossStageBlock1) 1 Offset 16 - Decorate 38(crossStageBlock1) Block - Decorate 40 DescriptorSet 0 - Decorate 40 Binding 1 - Decorate 64(gfo1) Location 0 - Decorate 70(outColor) Location 0 - Decorate 72(outBlock) Block - Decorate 74 Location 5 - Decorate 76(gfo2) Location 1 - Decorate 80(glass) DescriptorSet 0 - Decorate 80(glass) Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 2 - 8: TypeFunction 7(fvec2) - 11: TypeVector 6(float) 4 - 12: TypeFunction 11(fvec4) -15(fragOnlyBlock): TypeStruct 7(fvec2) - 16: TypePointer Uniform 15(fragOnlyBlock) - 17: 16(ptr) Variable Uniform - 18: TypeInt 32 1 - 19: 18(int) Constant 0 - 20: TypePointer Uniform 7(fvec2) -23(crossStageBlock2): TypeStruct 11(fvec4) 7(fvec2) - 24: TypeInt 32 0 - 25: 24(int) Constant 2 - 26: TypeArray 23(crossStageBlock2) 25 - 27: TypePointer Uniform 26 - 28(blockName2): 27(ptr) Variable Uniform - 29: 18(int) Constant 1 -38(crossStageBlock1): TypeStruct 11(fvec4) 11(fvec4) - 39: TypePointer Uniform 38(crossStageBlock1) - 40: 39(ptr) Variable Uniform - 41: TypePointer Uniform 11(fvec4) - 54: 6(float) Constant 0 - 61: TypePointer Function 11(fvec4) - 63: TypePointer Input 11(fvec4) - 64(gfo1): 63(ptr) Variable Input - 69: TypePointer Output 11(fvec4) - 70(outColor): 69(ptr) Variable Output - 72(outBlock): TypeStruct 11(fvec4) - 73: TypePointer Input 72(outBlock) - 74: 73(ptr) Variable Input - 75: TypePointer Input 7(fvec2) - 76(gfo2): 75(ptr) Variable Input - 77: TypeImage 6(float) 2D sampled format:Unknown - 78: TypeSampledImage 77 - 79: TypePointer UniformConstant 78 - 80(glass): 79(ptr) Variable UniformConstant - 4(main): 2 Function None 3 - 5: Label - 62(color): 61(ptr) Variable Function - 65: 11(fvec4) Load 64(gfo1) - Store 62(color) 65 - 66: 11(fvec4) Load 62(color) - 67: 11(fvec4) FunctionCall 13(Foo() - 68: 11(fvec4) FAdd 66 67 - Store 62(color) 68 - 71: 11(fvec4) Load 62(color) - Store 70(outColor) 71 - Return - FunctionEnd - 9(Bar(): 7(fvec2) Function None 8 - 10: Label - 21: 20(ptr) AccessChain 17 19 - 22: 7(fvec2) Load 21 - 30: 20(ptr) AccessChain 28(blockName2) 19 29 - 31: 7(fvec2) Load 30 - 32: 7(fvec2) FAdd 22 31 - 33: 20(ptr) AccessChain 28(blockName2) 29 29 - 34: 7(fvec2) Load 33 - 35: 7(fvec2) FAdd 32 34 - ReturnValue 35 - FunctionEnd - 13(Foo(): 11(fvec4) Function None 12 - 14: Label - 42: 41(ptr) AccessChain 40 19 - 43: 11(fvec4) Load 42 - 44: 41(ptr) AccessChain 40 29 - 45: 11(fvec4) Load 44 - 46: 11(fvec4) FAdd 43 45 - 47: 41(ptr) AccessChain 28(blockName2) 19 19 - 48: 11(fvec4) Load 47 - 49: 11(fvec4) FAdd 46 48 - 50: 41(ptr) AccessChain 28(blockName2) 29 19 - 51: 11(fvec4) Load 50 - 52: 11(fvec4) FAdd 49 51 - 53: 7(fvec2) FunctionCall 9(Bar() - 55: 6(float) CompositeExtract 53 0 - 56: 6(float) CompositeExtract 53 1 - 57: 11(fvec4) CompositeConstruct 55 56 54 54 - 58: 11(fvec4) FAdd 52 57 - ReturnValue 58 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/iomap.variableOutBlockIn.2.vert.out b/deps/glslang/Test/baseResults/iomap.variableOutBlockIn.2.vert.out deleted file mode 100644 index 6ef7d4e3..00000000 --- a/deps/glslang/Test/baseResults/iomap.variableOutBlockIn.2.vert.out +++ /dev/null @@ -1,276 +0,0 @@ -iomap.variableOutBlockIn.2.vert -Shader version: 440 -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 4-component vector of float) -0:8 'a1' (layout( location=0) smooth out 4-component vector of float) -0:8 Constant: -0:8 1.000000 -0:8 1.000000 -0:8 1.000000 -0:8 1.000000 -0:9 move second child to first child ( temp 2-component vector of float) -0:9 'a2' (layout( location=1) smooth out 2-component vector of float) -0:9 Constant: -0:9 0.500000 -0:9 0.500000 -0:10 move second child to first child ( temp 4-component vector of float) -0:10 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:10 '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}) -0:10 Constant: -0:10 0 (const uint) -0:10 Constant: -0:10 1.000000 -0:10 1.000000 -0:10 1.000000 -0:10 1.000000 -0:? Linker Objects -0:? 'a1' (layout( location=0) smooth out 4-component vector of float) -0:? 'a2' (layout( location=1) smooth out 2-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 1-element array of float ClipDistance gl_ClipDistance}) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - -iomap.variableOutBlockIn.geom -Shader version: 440 -invocations = -1 -max_vertices = 3 -input primitive = triangles -output primitive = triangle_strip -0:? Sequence -0:14 Function Definition: main( ( global void) -0:14 Function Parameters: -0:16 Sequence -0:16 move second child to first child ( temp 4-component vector of float) -0:16 'a1' (layout( location=0 stream=0) out 4-component vector of float) -0:16 Constant: -0:16 1.000000 -0:16 1.000000 -0:16 1.000000 -0:16 1.000000 -0:17 move second child to first child ( temp 2-component vector of float) -0:17 'a2' (layout( location=1 stream=0) out 2-component vector of float) -0:17 Constant: -0:17 0.500000 -0:17 0.500000 -0:18 move second child to first child ( temp 4-component vector of float) -0:18 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position) -0:18 'anon@0' (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 1-element array of float ClipDistance gl_ClipDistance}) -0:18 Constant: -0:18 0 (const uint) -0:18 Constant: -0:18 1.000000 -0:18 1.000000 -0:18 1.000000 -0:18 1.000000 -0:? Linker Objects -0:? 'gin' (layout( location=0) in 3-element array of block{ in 4-component vector of float a1, in 2-component vector of float a2}) -0:? 'a1' (layout( location=0 stream=0) out 4-component vector of float) -0:? 'a2' (layout( location=1 stream=0) out 2-component vector of float) -0:? 'anon@0' (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 1-element array of float ClipDistance gl_ClipDistance}) - - -Linked vertex stage: - - -Linked geometry stage: - - -Shader version: 440 -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 4-component vector of float) -0:8 'a1' (layout( location=0) smooth out 4-component vector of float) -0:8 Constant: -0:8 1.000000 -0:8 1.000000 -0:8 1.000000 -0:8 1.000000 -0:9 move second child to first child ( temp 2-component vector of float) -0:9 'a2' (layout( location=1) smooth out 2-component vector of float) -0:9 Constant: -0:9 0.500000 -0:9 0.500000 -0:10 move second child to first child ( temp 4-component vector of float) -0:10 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:10 '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}) -0:10 Constant: -0:10 0 (const uint) -0:10 Constant: -0:10 1.000000 -0:10 1.000000 -0:10 1.000000 -0:10 1.000000 -0:? Linker Objects -0:? 'a1' (layout( location=0) smooth out 4-component vector of float) -0:? 'a2' (layout( location=1) smooth out 2-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 1-element array of float ClipDistance gl_ClipDistance}) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) -Shader version: 440 -invocations = 1 -max_vertices = 3 -input primitive = triangles -output primitive = triangle_strip -0:? Sequence -0:14 Function Definition: main( ( global void) -0:14 Function Parameters: -0:16 Sequence -0:16 move second child to first child ( temp 4-component vector of float) -0:16 'a1' (layout( location=0 stream=0) out 4-component vector of float) -0:16 Constant: -0:16 1.000000 -0:16 1.000000 -0:16 1.000000 -0:16 1.000000 -0:17 move second child to first child ( temp 2-component vector of float) -0:17 'a2' (layout( location=1 stream=0) out 2-component vector of float) -0:17 Constant: -0:17 0.500000 -0:17 0.500000 -0:18 move second child to first child ( temp 4-component vector of float) -0:18 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position) -0:18 'anon@0' (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 1-element array of float ClipDistance gl_ClipDistance}) -0:18 Constant: -0:18 0 (const uint) -0:18 Constant: -0:18 1.000000 -0:18 1.000000 -0:18 1.000000 -0:18 1.000000 -0:? Linker Objects -0:? 'gin' (layout( location=0) in 3-element array of block{ in 4-component vector of float a1, in 2-component vector of float a2}) -0:? 'a1' (layout( location=0 stream=0) out 4-component vector of float) -0:? 'a2' (layout( location=1 stream=0) out 2-component vector of float) -0:? 'anon@0' (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 1-element array of float ClipDistance gl_ClipDistance}) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 29 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 9 14 22 27 28 - Source GLSL 440 - Name 4 "main" - Name 9 "a1" - Name 14 "a2" - Name 20 "gl_PerVertex" - MemberName 20(gl_PerVertex) 0 "gl_Position" - MemberName 20(gl_PerVertex) 1 "gl_PointSize" - MemberName 20(gl_PerVertex) 2 "gl_ClipDistance" - Name 22 "" - Name 27 "gl_VertexID" - Name 28 "gl_InstanceID" - Decorate 9(a1) Location 0 - Decorate 14(a2) Location 1 - MemberDecorate 20(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 20(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 20(gl_PerVertex) 2 BuiltIn ClipDistance - Decorate 20(gl_PerVertex) Block - Decorate 27(gl_VertexID) BuiltIn VertexId - Decorate 28(gl_InstanceID) BuiltIn InstanceId - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) - 9(a1): 8(ptr) Variable Output - 10: 6(float) Constant 1065353216 - 11: 7(fvec4) ConstantComposite 10 10 10 10 - 12: TypeVector 6(float) 2 - 13: TypePointer Output 12(fvec2) - 14(a2): 13(ptr) Variable Output - 15: 6(float) Constant 1056964608 - 16: 12(fvec2) ConstantComposite 15 15 - 17: TypeInt 32 0 - 18: 17(int) Constant 1 - 19: TypeArray 6(float) 18 -20(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 19 - 21: TypePointer Output 20(gl_PerVertex) - 22: 21(ptr) Variable Output - 23: TypeInt 32 1 - 24: 23(int) Constant 0 - 26: TypePointer Input 23(int) - 27(gl_VertexID): 26(ptr) Variable Input -28(gl_InstanceID): 26(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - Store 9(a1) 11 - Store 14(a2) 16 - 25: 8(ptr) AccessChain 22 24 - Store 25 11 - Return - FunctionEnd -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 31 - - Capability Geometry - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Geometry 4 "main" 9 14 22 30 - ExecutionMode 4 Triangles - ExecutionMode 4 Invocations 1 - ExecutionMode 4 OutputTriangleStrip - ExecutionMode 4 OutputVertices 3 - Source GLSL 440 - Name 4 "main" - Name 9 "a1" - Name 14 "a2" - Name 20 "gl_PerVertex" - MemberName 20(gl_PerVertex) 0 "gl_Position" - MemberName 20(gl_PerVertex) 1 "gl_PointSize" - MemberName 20(gl_PerVertex) 2 "gl_ClipDistance" - Name 22 "" - Name 26 "Inputs" - MemberName 26(Inputs) 0 "a1" - MemberName 26(Inputs) 1 "a2" - Name 30 "gin" - Decorate 9(a1) Location 0 - Decorate 14(a2) Location 1 - MemberDecorate 20(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 20(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 20(gl_PerVertex) 2 BuiltIn ClipDistance - Decorate 20(gl_PerVertex) Block - Decorate 26(Inputs) Block - Decorate 30(gin) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) - 9(a1): 8(ptr) Variable Output - 10: 6(float) Constant 1065353216 - 11: 7(fvec4) ConstantComposite 10 10 10 10 - 12: TypeVector 6(float) 2 - 13: TypePointer Output 12(fvec2) - 14(a2): 13(ptr) Variable Output - 15: 6(float) Constant 1056964608 - 16: 12(fvec2) ConstantComposite 15 15 - 17: TypeInt 32 0 - 18: 17(int) Constant 1 - 19: TypeArray 6(float) 18 -20(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 19 - 21: TypePointer Output 20(gl_PerVertex) - 22: 21(ptr) Variable Output - 23: TypeInt 32 1 - 24: 23(int) Constant 0 - 26(Inputs): TypeStruct 7(fvec4) 12(fvec2) - 27: 17(int) Constant 3 - 28: TypeArray 26(Inputs) 27 - 29: TypePointer Input 28 - 30(gin): 29(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - Store 9(a1) 11 - Store 14(a2) 16 - 25: 8(ptr) AccessChain 22 24 - Store 25 11 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/iomap.variableOutBlockIn.vert.out b/deps/glslang/Test/baseResults/iomap.variableOutBlockIn.vert.out deleted file mode 100644 index 8fef640d..00000000 --- a/deps/glslang/Test/baseResults/iomap.variableOutBlockIn.vert.out +++ /dev/null @@ -1,236 +0,0 @@ -iomap.variableOutBlockIn.vert -Shader version: 440 -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 4-component vector of float) -0:8 'a1' (layout( location=0) smooth out 4-component vector of float) -0:8 Constant: -0:8 1.000000 -0:8 1.000000 -0:8 1.000000 -0:8 1.000000 -0:9 move second child to first child ( temp 2-component vector of float) -0:9 'a2' (layout( location=1) smooth out 2-component vector of float) -0:9 Constant: -0:9 0.500000 -0:9 0.500000 -0:10 move second child to first child ( temp 4-component vector of float) -0:10 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:10 '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}) -0:10 Constant: -0:10 0 (const uint) -0:10 Constant: -0:10 1.000000 -0:10 1.000000 -0:10 1.000000 -0:10 1.000000 -0:? Linker Objects -0:? 'a1' (layout( location=0) smooth out 4-component vector of float) -0:? 'a2' (layout( location=1) smooth out 2-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 1-element array of float ClipDistance gl_ClipDistance}) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - -iomap.variableOutBlockIn.frag -Shader version: 440 -0:? Sequence -0:10 Function Definition: main( ( global void) -0:10 Function Parameters: -0:12 Sequence -0:12 move second child to first child ( temp 4-component vector of float) -0:12 'color' (layout( location=0) out 4-component vector of float) -0:12 Construct vec4 ( temp 4-component vector of float) -0:12 vector swizzle ( temp 2-component vector of float) -0:12 a1: direct index for structure ( in 4-component vector of float) -0:12 'anon@0' (layout( location=0) in block{ in 4-component vector of float a1, in 2-component vector of float a2}) -0:12 Constant: -0:12 0 (const uint) -0:12 Sequence -0:12 Constant: -0:12 0 (const int) -0:12 Constant: -0:12 1 (const int) -0:12 a2: direct index for structure ( in 2-component vector of float) -0:12 'anon@0' (layout( location=0) in block{ in 4-component vector of float a1, in 2-component vector of float a2}) -0:12 Constant: -0:12 1 (const uint) -0:? Linker Objects -0:? 'anon@0' (layout( location=0) in block{ in 4-component vector of float a1, in 2-component vector of float a2}) -0:? 'color' (layout( location=0) out 4-component vector of float) - - -Linked vertex stage: - - -Linked fragment stage: - - -Shader version: 440 -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 4-component vector of float) -0:8 'a1' (layout( location=0) smooth out 4-component vector of float) -0:8 Constant: -0:8 1.000000 -0:8 1.000000 -0:8 1.000000 -0:8 1.000000 -0:9 move second child to first child ( temp 2-component vector of float) -0:9 'a2' (layout( location=1) smooth out 2-component vector of float) -0:9 Constant: -0:9 0.500000 -0:9 0.500000 -0:10 move second child to first child ( temp 4-component vector of float) -0:10 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:10 '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}) -0:10 Constant: -0:10 0 (const uint) -0:10 Constant: -0:10 1.000000 -0:10 1.000000 -0:10 1.000000 -0:10 1.000000 -0:? Linker Objects -0:? 'a1' (layout( location=0) smooth out 4-component vector of float) -0:? 'a2' (layout( location=1) smooth out 2-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 1-element array of float ClipDistance gl_ClipDistance}) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) -Shader version: 440 -0:? Sequence -0:10 Function Definition: main( ( global void) -0:10 Function Parameters: -0:12 Sequence -0:12 move second child to first child ( temp 4-component vector of float) -0:12 'color' (layout( location=0) out 4-component vector of float) -0:12 Construct vec4 ( temp 4-component vector of float) -0:12 vector swizzle ( temp 2-component vector of float) -0:12 a1: direct index for structure ( in 4-component vector of float) -0:12 'anon@0' (layout( location=0) in block{ in 4-component vector of float a1, in 2-component vector of float a2}) -0:12 Constant: -0:12 0 (const uint) -0:12 Sequence -0:12 Constant: -0:12 0 (const int) -0:12 Constant: -0:12 1 (const int) -0:12 a2: direct index for structure ( in 2-component vector of float) -0:12 'anon@0' (layout( location=0) in block{ in 4-component vector of float a1, in 2-component vector of float a2}) -0:12 Constant: -0:12 1 (const uint) -0:? Linker Objects -0:? 'anon@0' (layout( location=0) in block{ in 4-component vector of float a1, in 2-component vector of float a2}) -0:? 'color' (layout( location=0) out 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 29 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 9 14 22 27 28 - Source GLSL 440 - Name 4 "main" - Name 9 "a1" - Name 14 "a2" - Name 20 "gl_PerVertex" - MemberName 20(gl_PerVertex) 0 "gl_Position" - MemberName 20(gl_PerVertex) 1 "gl_PointSize" - MemberName 20(gl_PerVertex) 2 "gl_ClipDistance" - Name 22 "" - Name 27 "gl_VertexID" - Name 28 "gl_InstanceID" - Decorate 9(a1) Location 0 - Decorate 14(a2) Location 1 - MemberDecorate 20(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 20(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 20(gl_PerVertex) 2 BuiltIn ClipDistance - Decorate 20(gl_PerVertex) Block - Decorate 27(gl_VertexID) BuiltIn VertexId - Decorate 28(gl_InstanceID) BuiltIn InstanceId - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) - 9(a1): 8(ptr) Variable Output - 10: 6(float) Constant 1065353216 - 11: 7(fvec4) ConstantComposite 10 10 10 10 - 12: TypeVector 6(float) 2 - 13: TypePointer Output 12(fvec2) - 14(a2): 13(ptr) Variable Output - 15: 6(float) Constant 1056964608 - 16: 12(fvec2) ConstantComposite 15 15 - 17: TypeInt 32 0 - 18: 17(int) Constant 1 - 19: TypeArray 6(float) 18 -20(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 19 - 21: TypePointer Output 20(gl_PerVertex) - 22: 21(ptr) Variable Output - 23: TypeInt 32 1 - 24: 23(int) Constant 0 - 26: TypePointer Input 23(int) - 27(gl_VertexID): 26(ptr) Variable Input -28(gl_InstanceID): 26(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - Store 9(a1) 11 - Store 14(a2) 16 - 25: 8(ptr) AccessChain 22 24 - Store 25 11 - Return - FunctionEnd -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 29 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 9 13 - ExecutionMode 4 OriginLowerLeft - Source GLSL 440 - Name 4 "main" - Name 9 "color" - Name 11 "Inputs" - MemberName 11(Inputs) 0 "a1" - MemberName 11(Inputs) 1 "a2" - Name 13 "" - Decorate 9(color) Location 0 - Decorate 11(Inputs) Block - Decorate 13 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: TypeVector 6(float) 2 - 11(Inputs): TypeStruct 7(fvec4) 10(fvec2) - 12: TypePointer Input 11(Inputs) - 13: 12(ptr) Variable Input - 14: TypeInt 32 1 - 15: 14(int) Constant 0 - 16: TypePointer Input 7(fvec4) - 20: 14(int) Constant 1 - 21: TypePointer Input 10(fvec2) - 4(main): 2 Function None 3 - 5: Label - 17: 16(ptr) AccessChain 13 15 - 18: 7(fvec4) Load 17 - 19: 10(fvec2) VectorShuffle 18 18 0 1 - 22: 21(ptr) AccessChain 13 20 - 23: 10(fvec2) Load 22 - 24: 6(float) CompositeExtract 19 0 - 25: 6(float) CompositeExtract 19 1 - 26: 6(float) CompositeExtract 23 0 - 27: 6(float) CompositeExtract 23 1 - 28: 7(fvec4) CompositeConstruct 24 25 26 27 - Store 9(color) 28 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/length.frag.out b/deps/glslang/Test/baseResults/length.frag.out deleted file mode 100644 index bfd5bf0e..00000000 --- a/deps/glslang/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/Test/baseResults/lineContinuation.vert.out b/deps/glslang/Test/baseResults/lineContinuation.vert.out deleted file mode 100644 index 9faa420b..00000000 --- a/deps/glslang/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/Test/baseResults/lineContinuation100.vert.out b/deps/glslang/Test/baseResults/lineContinuation100.vert.out deleted file mode 100644 index c86b52bf..00000000 --- a/deps/glslang/Test/baseResults/lineContinuation100.vert.out +++ /dev/null @@ -1,127 +0,0 @@ -lineContinuation100.vert -WARNING: 0:3: 'line continuation' : used at end of comment, but this version does not provide line continuation -ERROR: 0:4: '#error' : good error -ERROR: 0:8: 'line continuation' : not supported for this version or the enabled extensions -ERROR: 0:11: '#error' : e2 -ERROR: 0:13: 'line continuation' : not supported for this version or the enabled extensions -ERROR: 0:14: 'line continuation' : not supported for this version or the enabled extensions -ERROR: 0:15: 'line continuation' : not supported for this version or the enabled extensions -ERROR: 0:18: '#error' : e3 -ERROR: 0:24: 'line continuation' : not supported for this version or the enabled extensions -ERROR: 0:40: '\' : illegal use of escape character -ERROR: 0:41: '@' : unexpected token -ERROR: 0:42: '$' : unexpected token -ERROR: 0:43: '\' : illegal use of escape character -ERROR: 0:45: '\' : illegal use of escape character -ERROR: 0:46: '\' : illegal use of escape character -ERROR: 0:47: '$' : unexpected token -ERROR: 0:48: '@' : unexpected token -ERROR: 0:50: 'line continuation' : not supported for this version or the enabled extensions -ERROR: 0:52: 'line continuation' : not supported for this version or the enabled extensions -ERROR: 0:53: '#error' : bad continuation -ERROR: 0:55: 'line continuation' : not supported for this version or the enabled extensions -ERROR: 20 compilation errors. No code generated. - - -Shader version: 100 -ERROR: node is still EOpNull! -0:20 Function Definition: main( ( global void) -0:20 Function Parameters: -0:20 Sequence -0:20 move second child to first child ( temp highp 4-component vector of float) -0:20 'gl_Position' ( gl_Position highp 4-component vector of float Position) -0:20 Construct vec4 ( temp highp 4-component vector of float) -0:20 'foo' ( global highp float) -0:22 Function Definition: foo2(vf4; ( global highp 4-component vector of float) -0:22 Function Parameters: -0:22 'a' ( in highp 4-component vector of float) -0:24 Sequence -0:24 Sequence -0:24 move second child to first child ( temp highp 4-component vector of float) -0:24 'b' ( temp highp 4-component vector of float) -0:24 'a' ( in highp 4-component vector of float) -0:25 Branch: Return with expression -0:25 'b' ( temp highp 4-component vector of float) -0:45 Sequence -0:45 move second child to first child ( temp highp int) -0:45 'q1' ( global highp int) -0:45 Constant: -0:45 1 (const int) -0:46 Sequence -0:46 move second child to first child ( temp highp int) -0:46 'q2' ( global highp int) -0:46 Constant: -0:46 1 (const int) -0:47 Sequence -0:47 move second child to first child ( temp highp int) -0:47 'q3' ( global highp int) -0:47 Constant: -0:47 1 (const int) -0:48 Sequence -0:48 move second child to first child ( temp highp int) -0:48 'q4' ( global highp int) -0:48 Constant: -0:48 1 (const int) -0:? Linker Objects -0:? 'foo' ( global highp float) -0:? 'a1' ( const highp int) -0:? 4 (const int) -0:? 'a2' ( const highp int) -0:? 3 (const int) -0:? 'a3' ( const highp int) -0:? 4 (const int) -0:? 'a4' ( const highp int) -0:? 3 (const int) -0:? 'q1' ( global highp int) -0:? 'q2' ( global highp int) -0:? 'q3' ( global highp int) -0:? 'q4' ( global highp int) - - -Linked vertex stage: - - -Shader version: 100 -ERROR: node is still EOpNull! -0:20 Function Definition: main( ( global void) -0:20 Function Parameters: -0:20 Sequence -0:20 move second child to first child ( temp highp 4-component vector of float) -0:20 'gl_Position' ( gl_Position highp 4-component vector of float Position) -0:20 Construct vec4 ( temp highp 4-component vector of float) -0:20 'foo' ( global highp float) -0:45 Sequence -0:45 move second child to first child ( temp highp int) -0:45 'q1' ( global highp int) -0:45 Constant: -0:45 1 (const int) -0:46 Sequence -0:46 move second child to first child ( temp highp int) -0:46 'q2' ( global highp int) -0:46 Constant: -0:46 1 (const int) -0:47 Sequence -0:47 move second child to first child ( temp highp int) -0:47 'q3' ( global highp int) -0:47 Constant: -0:47 1 (const int) -0:48 Sequence -0:48 move second child to first child ( temp highp int) -0:48 'q4' ( global highp int) -0:48 Constant: -0:48 1 (const int) -0:? Linker Objects -0:? 'foo' ( global highp float) -0:? 'a1' ( const highp int) -0:? 4 (const int) -0:? 'a2' ( const highp int) -0:? 3 (const int) -0:? 'a3' ( const highp int) -0:? 4 (const int) -0:? 'a4' ( const highp int) -0:? 3 (const int) -0:? 'q1' ( global highp int) -0:? 'q2' ( global highp int) -0:? 'q3' ( global highp int) -0:? 'q4' ( global highp int) - diff --git a/deps/glslang/Test/baseResults/link.multiAnonBlocksInvalid.0.0.vert.out b/deps/glslang/Test/baseResults/link.multiAnonBlocksInvalid.0.0.vert.out deleted file mode 100644 index c34401cb..00000000 --- a/deps/glslang/Test/baseResults/link.multiAnonBlocksInvalid.0.0.vert.out +++ /dev/null @@ -1,182 +0,0 @@ -link.multiAnonBlocksInvalid.0.0.vert -ERROR: 0:22: 'ColorBlock' : nameless block contains a member that already has a name at global scope -ERROR: 0:42: 'v1' : redefinition -ERROR: 0:43: 'uProj' : redefinition -ERROR: 3 compilation errors. No code generated. - - -Shader version: 430 -ERROR: node is still EOpNull! -0:46 Function Definition: main( ( global void) -0:46 Function Parameters: -0:48 Sequence -0:48 move second child to first child ( temp 4-component vector of float) -0:48 'oColor' ( smooth out 4-component vector of float) -0:48 component-wise multiply ( temp 4-component vector of float) -0:48 color1: direct index for structure (layout( column_major std140 offset=0) uniform 4-component vector of float) -0:48 'anon@3' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1, layout( column_major std140 offset=16) uniform 4-component vector of float color2, layout( column_major std140 offset=32) uniform 4-component vector of float v1}) -0:48 Constant: -0:48 0 (const uint) -0:48 Function Call: getColor2( ( global 4-component vector of float) -0:49 move second child to first child ( temp 4-component vector of float) -0:49 v1: direct index for structure ( out 4-component vector of float) -0:49 'anon@2' ( out block{ out 4-component vector of float v1}) -0:49 Constant: -0:49 0 (const uint) -0:49 color1: direct index for structure (layout( column_major std140 offset=0) uniform 4-component vector of float) -0:49 'anon@3' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1, layout( column_major std140 offset=16) uniform 4-component vector of float color2, layout( column_major std140 offset=32) uniform 4-component vector of float v1}) -0:49 Constant: -0:49 0 (const uint) -0:51 move second child to first child ( temp 4-component vector of float) -0:51 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:51 'anon@4' ( 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}) -0:51 Constant: -0:51 0 (const uint) -0:51 matrix-times-vector ( temp 4-component vector of float) -0:51 uProj: direct index for structure (layout( column_major std140 offset=0) uniform 4X4 matrix of float) -0:51 'anon@0' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj}) -0:51 Constant: -0:51 0 (const uint) -0:51 Function Call: getWorld( ( global 4-component vector of float) -0:? Linker Objects -0:? 'anon@0' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj}) -0:? 'anon@1' (layout( column_major shared) buffer block{layout( column_major shared) buffer 4-component vector of float b}) -0:? 'anon@2' ( out block{ out 4-component vector of float v1}) -0:? 'myName' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float m}) -0:? 'oColor' ( smooth out 4-component vector of float) -0:? 'anon@4' ( 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}) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - -link.multiAnonBlocksInvalid.0.1.vert -Shader version: 430 -0:? Sequence -0:38 Function Definition: getColor2( ( global 4-component vector of float) -0:38 Function Parameters: -0:40 Sequence -0:40 Branch: Return with expression -0:40 color2: direct index for structure (layout( column_major std140 offset=0) uniform 4-component vector of float) -0:40 'anon@0' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color2}) -0:40 Constant: -0:40 0 (const uint) -0:43 Function Definition: getWorld( ( global 4-component vector of float) -0:43 Function Parameters: -0:45 Sequence -0:45 Branch: Return with expression -0:45 matrix-times-vector ( temp 4-component vector of float) -0:45 uWorld: direct index for structure (layout( column_major std140 offset=64) uniform 4X4 matrix of float) -0:45 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform 4X4 matrix of float uWorld}) -0:45 Constant: -0:45 1 (const uint) -0:45 'P' ( in 4-component vector of float) -0:46 move second child to first child ( temp 4-component vector of float) -0:46 v2: direct index for structure ( out 4-component vector of float) -0:46 'anon@2' ( out block{ out 4-component vector of float v1, out 4-component vector of float v2}) -0:46 Constant: -0:46 1 (const uint) -0:46 Constant: -0:46 1.000000 -0:46 1.000000 -0:46 1.000000 -0:46 1.000000 -0:? Linker Objects -0:? 'anon@0' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color2}) -0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform 4X4 matrix of float uWorld}) -0:? 'anon@2' ( out block{ out 4-component vector of float v1, out 4-component vector of float v2}) -0:? 'anon@3' (layout( column_major shared) buffer block{layout( column_major shared) buffer 4-component vector of float a}) -0:? 'anon@4' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float m}) -0:? 'P' ( in 4-component vector of float) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - - -Linked vertex stage: - -ERROR: Linking vertex and vertex stages: vertex block member has no corresponding member in vertex block: - vertex stage: Block: Block, Member: uWorld - vertex stage: Block: Block, Member: n/a -ERROR: Linking vertex and vertex stages: vertex block member has no corresponding member in vertex block: - vertex stage: Block: Vertex, Member: v2 - vertex stage: Block: Vertex, Member: n/a -ERROR: Linking vertex and vertex stages: Member names and types must match: - Block: BufferBlock - vertex stage: " vec4 b" - vertex stage: " vec4 a" -ERROR: Linking vertex and vertex stages: Matched Uniform or Storage blocks must all be anonymous, or all be named: -WARNING: Linking vertex and vertex stages: Matched shader interfaces are using different instance names. - vertex stage: Block: NamedBlock Instance: myName: "" - vertex stage: Block: NamedBlock Instance: anon@4: "" - -Shader version: 430 -ERROR: node is still EOpNull! -0:46 Function Definition: main( ( global void) -0:46 Function Parameters: -0:48 Sequence -0:48 move second child to first child ( temp 4-component vector of float) -0:48 'oColor' ( smooth out 4-component vector of float) -0:48 component-wise multiply ( temp 4-component vector of float) -0:48 color1: direct index for structure (layout( column_major std140 offset=0) uniform 4-component vector of float) -0:48 'anon@3' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1, layout( column_major std140 offset=16) uniform 4-component vector of float color2, layout( column_major std140 offset=32) uniform 4-component vector of float v1}) -0:48 Constant: -0:48 0 (const uint) -0:48 Function Call: getColor2( ( global 4-component vector of float) -0:49 move second child to first child ( temp 4-component vector of float) -0:49 v1: direct index for structure ( out 4-component vector of float) -0:49 'anon@2' ( out block{ out 4-component vector of float v1}) -0:49 Constant: -0:49 0 (const uint) -0:49 color1: direct index for structure (layout( column_major std140 offset=0) uniform 4-component vector of float) -0:49 'anon@3' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1, layout( column_major std140 offset=16) uniform 4-component vector of float color2, layout( column_major std140 offset=32) uniform 4-component vector of float v1}) -0:49 Constant: -0:49 0 (const uint) -0:51 move second child to first child ( temp 4-component vector of float) -0:51 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:51 'anon@4' ( 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}) -0:51 Constant: -0:51 0 (const uint) -0:51 matrix-times-vector ( temp 4-component vector of float) -0:51 uProj: direct index for structure (layout( column_major std140 offset=0) uniform 4X4 matrix of float) -0:51 'anon@0' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj}) -0:51 Constant: -0:51 0 (const uint) -0:51 Function Call: getWorld( ( global 4-component vector of float) -0:38 Function Definition: getColor2( ( global 4-component vector of float) -0:38 Function Parameters: -0:40 Sequence -0:40 Branch: Return with expression -0:40 color2: direct index for structure (layout( column_major std140 offset=0) uniform 4-component vector of float) -0:40 'anon@0' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color2}) -0:40 Constant: -0:40 0 (const uint) -0:43 Function Definition: getWorld( ( global 4-component vector of float) -0:43 Function Parameters: -0:45 Sequence -0:45 Branch: Return with expression -0:45 matrix-times-vector ( temp 4-component vector of float) -0:45 uWorld: direct index for structure (layout( column_major std140 offset=64) uniform 4X4 matrix of float) -0:45 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform 4X4 matrix of float uWorld}) -0:45 Constant: -0:45 1 (const uint) -0:45 'P' ( in 4-component vector of float) -0:46 move second child to first child ( temp 4-component vector of float) -0:46 v2: direct index for structure ( out 4-component vector of float) -0:46 'anon@2' ( out block{ out 4-component vector of float v1, out 4-component vector of float v2}) -0:46 Constant: -0:46 1 (const uint) -0:46 Constant: -0:46 1.000000 -0:46 1.000000 -0:46 1.000000 -0:46 1.000000 -0:? Linker Objects -0:? 'anon@0' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj}) -0:? 'anon@1' (layout( column_major shared) buffer block{layout( column_major shared) buffer 4-component vector of float b}) -0:? 'anon@2' ( out block{ out 4-component vector of float v1}) -0:? 'myName' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float m}) -0:? 'oColor' ( smooth out 4-component vector of float) -0:? 'anon@4' ( 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}) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) -0:? 'anon@0' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color2}) -0:? 'P' ( in 4-component vector of float) - diff --git a/deps/glslang/Test/baseResults/link.multiAnonBlocksValid.0.0.vert.out b/deps/glslang/Test/baseResults/link.multiAnonBlocksValid.0.0.vert.out deleted file mode 100644 index 1c8b9c48..00000000 --- a/deps/glslang/Test/baseResults/link.multiAnonBlocksValid.0.0.vert.out +++ /dev/null @@ -1,157 +0,0 @@ -link.multiAnonBlocksValid.0.0.vert -Shader version: 430 -0:? Sequence -0:32 Function Definition: main( ( global void) -0:32 Function Parameters: -0:34 Sequence -0:34 move second child to first child ( temp 4-component vector of float) -0:34 'oColor' ( smooth out 4-component vector of float) -0:34 component-wise multiply ( temp 4-component vector of float) -0:34 color1: direct index for structure (layout( column_major std140 offset=0) uniform 4-component vector of float) -0:34 'anon@2' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1, layout( column_major std140 offset=16) uniform 4-component vector of float color2}) -0:34 Constant: -0:34 0 (const uint) -0:34 Function Call: getColor2( ( global 4-component vector of float) -0:35 move second child to first child ( temp 4-component vector of float) -0:35 v1: direct index for structure ( out 4-component vector of float) -0:35 'anon@1' ( out block{ out 4-component vector of float v1, out 4-component vector of float v2}) -0:35 Constant: -0:35 0 (const uint) -0:35 color1: direct index for structure (layout( column_major std140 offset=0) uniform 4-component vector of float) -0:35 'anon@2' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1, layout( column_major std140 offset=16) uniform 4-component vector of float color2}) -0:35 Constant: -0:35 0 (const uint) -0:37 move second child to first child ( temp 4-component vector of float) -0:37 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:37 'anon@3' ( 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}) -0:37 Constant: -0:37 0 (const uint) -0:37 matrix-times-vector ( temp 4-component vector of float) -0:37 uProj: direct index for structure (layout( column_major std140 offset=0) uniform 4X4 matrix of float) -0:37 'anon@0' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform 4X4 matrix of float uWorld}) -0:37 Constant: -0:37 0 (const uint) -0:37 Function Call: getWorld( ( global 4-component vector of float) -0:? Linker Objects -0:? 'anon@0' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform 4X4 matrix of float uWorld}) -0:? 'anon@1' ( out block{ out 4-component vector of float v1, out 4-component vector of float v2}) -0:? 'anon@2' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1, layout( column_major std140 offset=16) uniform 4-component vector of float color2}) -0:? 'oColor' ( smooth out 4-component vector of float) -0:? 'anon@3' ( 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}) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - -link.multiAnonBlocksValid.0.1.vert -Shader version: 430 -0:? Sequence -0:24 Function Definition: getColor2( ( global 4-component vector of float) -0:24 Function Parameters: -0:26 Sequence -0:26 Branch: Return with expression -0:26 color2: direct index for structure (layout( column_major std140 offset=16) uniform 4-component vector of float) -0:26 'anon@0' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1, layout( column_major std140 offset=16) uniform 4-component vector of float color2}) -0:26 Constant: -0:26 1 (const uint) -0:29 Function Definition: getWorld( ( global 4-component vector of float) -0:29 Function Parameters: -0:31 Sequence -0:31 Branch: Return with expression -0:31 matrix-times-vector ( temp 4-component vector of float) -0:31 uWorld: direct index for structure (layout( column_major std140 offset=64) uniform 4X4 matrix of float) -0:31 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform 4X4 matrix of float uWorld}) -0:31 Constant: -0:31 1 (const uint) -0:31 'P' ( in 4-component vector of float) -0:32 move second child to first child ( temp 4-component vector of float) -0:32 v2: direct index for structure ( out 4-component vector of float) -0:32 'anon@2' ( out block{ out 4-component vector of float v1, out 4-component vector of float v2}) -0:32 Constant: -0:32 1 (const uint) -0:32 Constant: -0:32 1.000000 -0:32 1.000000 -0:32 1.000000 -0:32 1.000000 -0:? Linker Objects -0:? 'anon@0' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1, layout( column_major std140 offset=16) uniform 4-component vector of float color2}) -0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform 4X4 matrix of float uWorld}) -0:? 'anon@2' ( out block{ out 4-component vector of float v1, out 4-component vector of float v2}) -0:? 'P' ( 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: 430 -0:? Sequence -0:32 Function Definition: main( ( global void) -0:32 Function Parameters: -0:34 Sequence -0:34 move second child to first child ( temp 4-component vector of float) -0:34 'oColor' ( smooth out 4-component vector of float) -0:34 component-wise multiply ( temp 4-component vector of float) -0:34 color1: direct index for structure (layout( column_major std140 offset=0) uniform 4-component vector of float) -0:34 'anon@2' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1, layout( column_major std140 offset=16) uniform 4-component vector of float color2}) -0:34 Constant: -0:34 0 (const uint) -0:34 Function Call: getColor2( ( global 4-component vector of float) -0:35 move second child to first child ( temp 4-component vector of float) -0:35 v1: direct index for structure ( out 4-component vector of float) -0:35 'anon@1' ( out block{ out 4-component vector of float v1, out 4-component vector of float v2}) -0:35 Constant: -0:35 0 (const uint) -0:35 color1: direct index for structure (layout( column_major std140 offset=0) uniform 4-component vector of float) -0:35 'anon@2' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1, layout( column_major std140 offset=16) uniform 4-component vector of float color2}) -0:35 Constant: -0:35 0 (const uint) -0:37 move second child to first child ( temp 4-component vector of float) -0:37 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:37 'anon@3' ( 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}) -0:37 Constant: -0:37 0 (const uint) -0:37 matrix-times-vector ( temp 4-component vector of float) -0:37 uProj: direct index for structure (layout( column_major std140 offset=0) uniform 4X4 matrix of float) -0:37 'anon@0' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform 4X4 matrix of float uWorld}) -0:37 Constant: -0:37 0 (const uint) -0:37 Function Call: getWorld( ( global 4-component vector of float) -0:24 Function Definition: getColor2( ( global 4-component vector of float) -0:24 Function Parameters: -0:26 Sequence -0:26 Branch: Return with expression -0:26 color2: direct index for structure (layout( column_major std140 offset=16) uniform 4-component vector of float) -0:26 'anon@0' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1, layout( column_major std140 offset=16) uniform 4-component vector of float color2}) -0:26 Constant: -0:26 1 (const uint) -0:29 Function Definition: getWorld( ( global 4-component vector of float) -0:29 Function Parameters: -0:31 Sequence -0:31 Branch: Return with expression -0:31 matrix-times-vector ( temp 4-component vector of float) -0:31 uWorld: direct index for structure (layout( column_major std140 offset=64) uniform 4X4 matrix of float) -0:31 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform 4X4 matrix of float uWorld}) -0:31 Constant: -0:31 1 (const uint) -0:31 'P' ( in 4-component vector of float) -0:32 move second child to first child ( temp 4-component vector of float) -0:32 v2: direct index for structure ( out 4-component vector of float) -0:32 'anon@2' ( out block{ out 4-component vector of float v1, out 4-component vector of float v2}) -0:32 Constant: -0:32 1 (const uint) -0:32 Constant: -0:32 1.000000 -0:32 1.000000 -0:32 1.000000 -0:32 1.000000 -0:? Linker Objects -0:? 'anon@0' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform 4X4 matrix of float uWorld}) -0:? 'anon@1' ( out block{ out 4-component vector of float v1, out 4-component vector of float v2}) -0:? 'anon@2' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1, layout( column_major std140 offset=16) uniform 4-component vector of float color2}) -0:? 'oColor' ( smooth out 4-component vector of float) -0:? 'anon@3' ( 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}) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) -0:? 'P' ( in 4-component vector of float) - diff --git a/deps/glslang/Test/baseResults/link.multiBlocksInvalid.0.0.vert.out b/deps/glslang/Test/baseResults/link.multiBlocksInvalid.0.0.vert.out deleted file mode 100644 index d94debbf..00000000 --- a/deps/glslang/Test/baseResults/link.multiBlocksInvalid.0.0.vert.out +++ /dev/null @@ -1,198 +0,0 @@ -link.multiBlocksInvalid.0.0.vert -Shader version: 430 -0:? Sequence -0:34 Function Definition: main( ( global void) -0:34 Function Parameters: -0:36 Sequence -0:36 move second child to first child ( temp 4-component vector of float) -0:36 'oColor' ( smooth out 4-component vector of float) -0:36 component-wise multiply ( temp 4-component vector of float) -0:36 color1: direct index for structure (layout( column_major std140 offset=0) uniform 4-component vector of float) -0:36 'uC' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1}) -0:36 Constant: -0:36 0 (const int) -0:36 Function Call: getColor2( ( global 4-component vector of float) -0:37 move second child to first child ( temp 4-component vector of float) -0:37 v1: direct index for structure ( out 4-component vector of float) -0:37 'oV' ( out block{ out 4-component vector of float v1}) -0:37 Constant: -0:37 0 (const int) -0:37 add ( temp 4-component vector of float) -0:37 color1: direct index for structure (layout( column_major std140 offset=0) uniform 4-component vector of float) -0:37 'uC' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1}) -0:37 Constant: -0:37 0 (const int) -0:37 color1: direct index for structure (layout( column_major std430 offset=0) buffer 4-component vector of float) -0:37 'uBufC' (layout( column_major std430) buffer block{layout( column_major std430 offset=0) buffer 4-component vector of float color1}) -0:37 Constant: -0:37 0 (const int) -0:39 move second child to first child ( temp 4-component vector of float) -0:39 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:39 '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}) -0:39 Constant: -0:39 0 (const uint) -0:39 matrix-times-vector ( temp 4-component vector of float) -0:39 uProj: direct index for structure (layout( column_major std140 offset=0) uniform 4X4 matrix of float) -0:39 'uD' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj}) -0:39 Constant: -0:39 0 (const int) -0:39 Function Call: getWorld( ( global 4-component vector of float) -0:? Linker Objects -0:? 'uD' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj}) -0:? 'oV' ( out block{ out 4-component vector of float v1}) -0:? 'uC' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1}) -0:? 'uBufC' (layout( column_major std430) buffer block{layout( column_major std430 offset=0) buffer 4-component vector of float color1}) -0:? 'oColor' ( smooth 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 1-element array of float ClipDistance gl_ClipDistance}) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - -link.multiBlocksInvalid.0.1.vert -Shader version: 430 -0:? Sequence -0:21 Function Definition: getColor2( ( global 4-component vector of float) -0:21 Function Parameters: -0:23 Sequence -0:23 Branch: Return with expression -0:23 color2: direct index for structure (layout( column_major std140 offset=0) uniform 4-component vector of float) -0:23 'uColorB' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color2}) -0:23 Constant: -0:23 0 (const int) -0:26 Function Definition: getWorld( ( global 4-component vector of float) -0:26 Function Parameters: -0:28 Sequence -0:28 Branch: Return with expression -0:28 matrix-times-vector ( temp 4-component vector of float) -0:28 uWorld: direct index for structure (layout( column_major std140 offset=0) uniform 4X4 matrix of float) -0:28 'uDefaultB' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uWorld}) -0:28 Constant: -0:28 0 (const int) -0:28 'P' ( in 4-component vector of float) -0:29 move second child to first child ( temp 4-component vector of float) -0:29 v2: direct index for structure ( out 4-component vector of float) -0:29 'oVert' ( out block{ out 4-component vector of float v2}) -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:? Linker Objects -0:? 'uColorB' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color2}) -0:? 'uDefaultB' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uWorld}) -0:? 'oVert' ( out block{ out 4-component vector of float v2}) -0:? 'P' ( in 4-component vector of float) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - - -Linked vertex stage: - -ERROR: Linking vertex and vertex stages: Member names and types must match: - Block: ColorBlock - vertex stage: " vec4 color1" - vertex stage: " vec4 color2" -WARNING: Linking vertex and vertex stages: Matched shader interfaces are using different instance names. - vertex stage: Block: ColorBlock Instance: uC: "" - vertex stage: Block: ColorBlock Instance: uColorB: "" -ERROR: Linking vertex and vertex stages: Member names and types must match: - Block: ColorBlock - vertex stage: " vec4 color1" - vertex stage: " vec4 color2" -ERROR: Linking vertex and vertex stages: Storage qualifiers must match: -ERROR: Linking vertex and vertex stages: Layout packing qualifier must match: - vertex stage: Block: ColorBlock Instance: uBufC: "layout( column_major std430) buffer" - vertex stage: Block: ColorBlock Instance: uColorB: "layout( column_major std140) uniform" -ERROR: Linking vertex and vertex stages: Member names and types must match: - Block: Block - vertex stage: " mat4x4 uProj" - vertex stage: " mat4x4 uWorld" -WARNING: Linking vertex and vertex stages: Matched shader interfaces are using different instance names. - vertex stage: Block: Block Instance: uD: "" - vertex stage: Block: Block Instance: uDefaultB: "" -ERROR: Linking vertex and vertex stages: Member names and types must match: - Block: Vertex - vertex stage: " vec4 v1" - vertex stage: " vec4 v2" -WARNING: Linking vertex and vertex stages: Matched shader interfaces are using different instance names. - vertex stage: Block: Vertex Instance: oV: "" - vertex stage: Block: Vertex Instance: oVert: "" - -Shader version: 430 -0:? Sequence -0:34 Function Definition: main( ( global void) -0:34 Function Parameters: -0:36 Sequence -0:36 move second child to first child ( temp 4-component vector of float) -0:36 'oColor' ( smooth out 4-component vector of float) -0:36 component-wise multiply ( temp 4-component vector of float) -0:36 color1: direct index for structure (layout( column_major std140 offset=0) uniform 4-component vector of float) -0:36 'uC' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1}) -0:36 Constant: -0:36 0 (const int) -0:36 Function Call: getColor2( ( global 4-component vector of float) -0:37 move second child to first child ( temp 4-component vector of float) -0:37 v1: direct index for structure ( out 4-component vector of float) -0:37 'oV' ( out block{ out 4-component vector of float v1}) -0:37 Constant: -0:37 0 (const int) -0:37 add ( temp 4-component vector of float) -0:37 color1: direct index for structure (layout( column_major std140 offset=0) uniform 4-component vector of float) -0:37 'uC' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1}) -0:37 Constant: -0:37 0 (const int) -0:37 color1: direct index for structure (layout( column_major std430 offset=0) buffer 4-component vector of float) -0:37 'uBufC' (layout( column_major std430) buffer block{layout( column_major std430 offset=0) buffer 4-component vector of float color1}) -0:37 Constant: -0:37 0 (const int) -0:39 move second child to first child ( temp 4-component vector of float) -0:39 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:39 '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}) -0:39 Constant: -0:39 0 (const uint) -0:39 matrix-times-vector ( temp 4-component vector of float) -0:39 uProj: direct index for structure (layout( column_major std140 offset=0) uniform 4X4 matrix of float) -0:39 'uD' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj}) -0:39 Constant: -0:39 0 (const int) -0:39 Function Call: getWorld( ( global 4-component vector of float) -0:21 Function Definition: getColor2( ( global 4-component vector of float) -0:21 Function Parameters: -0:23 Sequence -0:23 Branch: Return with expression -0:23 color2: direct index for structure (layout( column_major std140 offset=0) uniform 4-component vector of float) -0:23 'uColorB' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color2}) -0:23 Constant: -0:23 0 (const int) -0:26 Function Definition: getWorld( ( global 4-component vector of float) -0:26 Function Parameters: -0:28 Sequence -0:28 Branch: Return with expression -0:28 matrix-times-vector ( temp 4-component vector of float) -0:28 uWorld: direct index for structure (layout( column_major std140 offset=0) uniform 4X4 matrix of float) -0:28 'uDefaultB' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uWorld}) -0:28 Constant: -0:28 0 (const int) -0:28 'P' ( in 4-component vector of float) -0:29 move second child to first child ( temp 4-component vector of float) -0:29 v2: direct index for structure ( out 4-component vector of float) -0:29 'oVert' ( out block{ out 4-component vector of float v2}) -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:? Linker Objects -0:? 'uD' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj}) -0:? 'oV' ( out block{ out 4-component vector of float v1}) -0:? 'uC' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1}) -0:? 'uBufC' (layout( column_major std430) buffer block{layout( column_major std430 offset=0) buffer 4-component vector of float color1}) -0:? 'oColor' ( smooth 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 1-element array of float ClipDistance gl_ClipDistance}) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) -0:? 'P' ( in 4-component vector of float) - diff --git a/deps/glslang/Test/baseResults/link.multiBlocksValid.1.0.vert.out b/deps/glslang/Test/baseResults/link.multiBlocksValid.1.0.vert.out deleted file mode 100644 index 69513f05..00000000 --- a/deps/glslang/Test/baseResults/link.multiBlocksValid.1.0.vert.out +++ /dev/null @@ -1,166 +0,0 @@ -link.multiBlocksValid.1.0.vert -Shader version: 430 -0:? Sequence -0:26 Function Definition: main( ( global void) -0:26 Function Parameters: -0:28 Sequence -0:28 move second child to first child ( temp 4-component vector of float) -0:28 'oColor' ( smooth out 4-component vector of float) -0:28 component-wise multiply ( temp 4-component vector of float) -0:28 color1: direct index for structure (layout( column_major std140 offset=0) uniform 4-component vector of float) -0:28 'c' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1, layout( column_major std140 offset=16) uniform 4-component vector of float color2}) -0:28 Constant: -0:28 0 (const int) -0:28 Function Call: getColor2( ( global 4-component vector of float) -0:29 move second child to first child ( temp 4-component vector of float) -0:29 v1: direct index for structure ( out 4-component vector of float) -0:29 'b' ( out block{ out 4-component vector of float v1, out 4-component vector of float v2}) -0:29 Constant: -0:29 0 (const int) -0:29 color1: direct index for structure (layout( column_major std140 offset=0) uniform 4-component vector of float) -0:29 'c' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1, layout( column_major std140 offset=16) uniform 4-component vector of float color2}) -0:29 Constant: -0:29 0 (const int) -0:31 move second child to first child ( temp 4-component vector of float) -0:31 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:31 '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}) -0:31 Constant: -0:31 0 (const uint) -0:31 matrix-times-vector ( temp 4-component vector of float) -0:31 uProj: direct index for structure (layout( column_major std140 offset=0) uniform 4X4 matrix of float) -0:31 'a' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform 4X4 matrix of float uWorld}) -0:31 Constant: -0:31 0 (const int) -0:31 Function Call: getWorld( ( global 4-component vector of float) -0:? Linker Objects -0:? 'a' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform 4X4 matrix of float uWorld}) -0:? 'b' ( out block{ out 4-component vector of float v1, out 4-component vector of float v2}) -0:? 'c' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1, layout( column_major std140 offset=16) uniform 4-component vector of float color2}) -0:? 'oColor' ( smooth 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 1-element array of float ClipDistance gl_ClipDistance}) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - -link.multiBlocksValid.1.1.vert -Shader version: 430 -0:? Sequence -0:24 Function Definition: getColor2( ( global 4-component vector of float) -0:24 Function Parameters: -0:26 Sequence -0:26 Branch: Return with expression -0:26 color2: direct index for structure (layout( column_major std140 offset=16) uniform 4-component vector of float) -0:26 'a' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1, layout( column_major std140 offset=16) uniform 4-component vector of float color2}) -0:26 Constant: -0:26 1 (const int) -0:29 Function Definition: getWorld( ( global 4-component vector of float) -0:29 Function Parameters: -0:31 Sequence -0:31 Branch: Return with expression -0:31 matrix-times-vector ( temp 4-component vector of float) -0:31 uWorld: direct index for structure (layout( column_major std140 offset=64) uniform 4X4 matrix of float) -0:31 'b' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform 4X4 matrix of float uWorld}) -0:31 Constant: -0:31 1 (const int) -0:31 'P' ( in 4-component vector of float) -0:32 move second child to first child ( temp 4-component vector of float) -0:32 v2: direct index for structure ( out 4-component vector of float) -0:32 'c' ( out block{ out 4-component vector of float v1, out 4-component vector of float v2}) -0:32 Constant: -0:32 1 (const int) -0:32 Constant: -0:32 1.000000 -0:32 1.000000 -0:32 1.000000 -0:32 1.000000 -0:? Linker Objects -0:? 'a' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1, layout( column_major std140 offset=16) uniform 4-component vector of float color2}) -0:? 'b' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform 4X4 matrix of float uWorld}) -0:? 'c' ( out block{ out 4-component vector of float v1, out 4-component vector of float v2}) -0:? 'P' ( in 4-component vector of float) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - - -Linked vertex stage: - -WARNING: Linking vertex and vertex stages: Matched shader interfaces are using different instance names. - vertex stage: Block: ColorBlock Instance: c: "" - vertex stage: Block: ColorBlock Instance: a: "" -WARNING: Linking vertex and vertex stages: Matched shader interfaces are using different instance names. - vertex stage: Block: Block Instance: a: "" - vertex stage: Block: Block Instance: b: "" -WARNING: Linking vertex and vertex stages: Matched shader interfaces are using different instance names. - vertex stage: Block: Vertex Instance: b: "" - vertex stage: Block: Vertex Instance: c: "" - -Shader version: 430 -0:? Sequence -0:26 Function Definition: main( ( global void) -0:26 Function Parameters: -0:28 Sequence -0:28 move second child to first child ( temp 4-component vector of float) -0:28 'oColor' ( smooth out 4-component vector of float) -0:28 component-wise multiply ( temp 4-component vector of float) -0:28 color1: direct index for structure (layout( column_major std140 offset=0) uniform 4-component vector of float) -0:28 'c' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1, layout( column_major std140 offset=16) uniform 4-component vector of float color2}) -0:28 Constant: -0:28 0 (const int) -0:28 Function Call: getColor2( ( global 4-component vector of float) -0:29 move second child to first child ( temp 4-component vector of float) -0:29 v1: direct index for structure ( out 4-component vector of float) -0:29 'b' ( out block{ out 4-component vector of float v1, out 4-component vector of float v2}) -0:29 Constant: -0:29 0 (const int) -0:29 color1: direct index for structure (layout( column_major std140 offset=0) uniform 4-component vector of float) -0:29 'c' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1, layout( column_major std140 offset=16) uniform 4-component vector of float color2}) -0:29 Constant: -0:29 0 (const int) -0:31 move second child to first child ( temp 4-component vector of float) -0:31 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:31 '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}) -0:31 Constant: -0:31 0 (const uint) -0:31 matrix-times-vector ( temp 4-component vector of float) -0:31 uProj: direct index for structure (layout( column_major std140 offset=0) uniform 4X4 matrix of float) -0:31 'a' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform 4X4 matrix of float uWorld}) -0:31 Constant: -0:31 0 (const int) -0:31 Function Call: getWorld( ( global 4-component vector of float) -0:24 Function Definition: getColor2( ( global 4-component vector of float) -0:24 Function Parameters: -0:26 Sequence -0:26 Branch: Return with expression -0:26 color2: direct index for structure (layout( column_major std140 offset=16) uniform 4-component vector of float) -0:26 'a' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1, layout( column_major std140 offset=16) uniform 4-component vector of float color2}) -0:26 Constant: -0:26 1 (const int) -0:29 Function Definition: getWorld( ( global 4-component vector of float) -0:29 Function Parameters: -0:31 Sequence -0:31 Branch: Return with expression -0:31 matrix-times-vector ( temp 4-component vector of float) -0:31 uWorld: direct index for structure (layout( column_major std140 offset=64) uniform 4X4 matrix of float) -0:31 'b' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform 4X4 matrix of float uWorld}) -0:31 Constant: -0:31 1 (const int) -0:31 'P' ( in 4-component vector of float) -0:32 move second child to first child ( temp 4-component vector of float) -0:32 v2: direct index for structure ( out 4-component vector of float) -0:32 'c' ( out block{ out 4-component vector of float v1, out 4-component vector of float v2}) -0:32 Constant: -0:32 1 (const int) -0:32 Constant: -0:32 1.000000 -0:32 1.000000 -0:32 1.000000 -0:32 1.000000 -0:? Linker Objects -0:? 'a' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform 4X4 matrix of float uWorld}) -0:? 'b' ( out block{ out 4-component vector of float v1, out 4-component vector of float v2}) -0:? 'c' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1, layout( column_major std140 offset=16) uniform 4-component vector of float color2}) -0:? 'oColor' ( smooth 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 1-element array of float ClipDistance gl_ClipDistance}) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) -0:? 'P' ( in 4-component vector of float) - diff --git a/deps/glslang/Test/baseResults/link.redeclareBuiltin.vert.out b/deps/glslang/Test/baseResults/link.redeclareBuiltin.vert.out deleted file mode 100644 index 2cd42b9e..00000000 --- a/deps/glslang/Test/baseResults/link.redeclareBuiltin.vert.out +++ /dev/null @@ -1,154 +0,0 @@ -link.redeclareBuiltin.vert -Shader version: 410 -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_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:10 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position}) -0:10 Constant: -0:10 0 (const uint) -0:10 Constant: -0:10 1.000000 -0:10 1.000000 -0:10 1.000000 -0:10 1.000000 -0:? Linker Objects -0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position}) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - -link.redeclareBuiltin.geom -Shader version: 410 -invocations = -1 -max_vertices = 3 -input primitive = triangles -output primitive = triangle_strip -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 4-component vector of float) -0:13 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position) -0:13 'anon@0' (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 1-element array of float ClipDistance gl_ClipDistance}) -0:13 Constant: -0:13 0 (const uint) -0:13 gl_Position: direct index for structure ( in 4-component vector of float Position) -0:13 direct index ( temp block{ in 4-component vector of float Position gl_Position}) -0:13 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position}) -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 0 (const int) -0:14 EmitVertex ( global void) -0:16 move second child to first child ( temp 4-component vector of float) -0:16 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position) -0:16 'anon@0' (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 1-element array of float ClipDistance gl_ClipDistance}) -0:16 Constant: -0:16 0 (const uint) -0:16 gl_Position: direct index for structure ( in 4-component vector of float Position) -0:16 direct index ( temp block{ in 4-component vector of float Position gl_Position}) -0:16 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position}) -0:16 Constant: -0:16 1 (const int) -0:16 Constant: -0:16 0 (const int) -0:17 EmitVertex ( global void) -0:19 move second child to first child ( temp 4-component vector of float) -0:19 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position) -0:19 'anon@0' (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 1-element array of float ClipDistance gl_ClipDistance}) -0:19 Constant: -0:19 0 (const uint) -0:19 gl_Position: direct index for structure ( in 4-component vector of float Position) -0:19 direct index ( temp block{ in 4-component vector of float Position gl_Position}) -0:19 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position}) -0:19 Constant: -0:19 2 (const int) -0:19 Constant: -0:19 0 (const int) -0:20 EmitVertex ( global void) -0:22 EndPrimitive ( global void) -0:? Linker Objects -0:? 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position}) -0:? 'anon@0' (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 1-element array of float ClipDistance gl_ClipDistance}) - - -Linked vertex stage: - - -Linked geometry stage: - - -Shader version: 410 -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_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:10 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position}) -0:10 Constant: -0:10 0 (const uint) -0:10 Constant: -0:10 1.000000 -0:10 1.000000 -0:10 1.000000 -0:10 1.000000 -0:? Linker Objects -0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position}) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) -Shader version: 410 -invocations = 1 -max_vertices = 3 -input primitive = triangles -output primitive = triangle_strip -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 4-component vector of float) -0:13 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position) -0:13 'anon@0' (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 1-element array of float ClipDistance gl_ClipDistance}) -0:13 Constant: -0:13 0 (const uint) -0:13 gl_Position: direct index for structure ( in 4-component vector of float Position) -0:13 direct index ( temp block{ in 4-component vector of float Position gl_Position}) -0:13 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position}) -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 0 (const int) -0:14 EmitVertex ( global void) -0:16 move second child to first child ( temp 4-component vector of float) -0:16 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position) -0:16 'anon@0' (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 1-element array of float ClipDistance gl_ClipDistance}) -0:16 Constant: -0:16 0 (const uint) -0:16 gl_Position: direct index for structure ( in 4-component vector of float Position) -0:16 direct index ( temp block{ in 4-component vector of float Position gl_Position}) -0:16 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position}) -0:16 Constant: -0:16 1 (const int) -0:16 Constant: -0:16 0 (const int) -0:17 EmitVertex ( global void) -0:19 move second child to first child ( temp 4-component vector of float) -0:19 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position) -0:19 'anon@0' (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 1-element array of float ClipDistance gl_ClipDistance}) -0:19 Constant: -0:19 0 (const uint) -0:19 gl_Position: direct index for structure ( in 4-component vector of float Position) -0:19 direct index ( temp block{ in 4-component vector of float Position gl_Position}) -0:19 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position}) -0:19 Constant: -0:19 2 (const int) -0:19 Constant: -0:19 0 (const int) -0:20 EmitVertex ( global void) -0:22 EndPrimitive ( global void) -0:? Linker Objects -0:? 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position}) -0:? 'anon@0' (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 1-element array of float ClipDistance gl_ClipDistance}) - diff --git a/deps/glslang/Test/baseResults/link.tesselation.tese.out b/deps/glslang/Test/baseResults/link.tesselation.tese.out deleted file mode 100644 index 056459f5..00000000 --- a/deps/glslang/Test/baseResults/link.tesselation.tese.out +++ /dev/null @@ -1,254 +0,0 @@ -link.tesselation.tese -Shader version: 440 -input primitive = triangles -vertex spacing = fractional_odd_spacing -triangle order = cw -0:? Sequence -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 'u' ( temp float) -0:17 direct index ( temp float) -0:17 'gl_TessCoord' ( in 3-component vector of float TessCoord) -0:17 Constant: -0:17 0 (const int) -0:18 Sequence -0:18 move second child to first child ( temp float) -0:18 'v' ( temp float) -0:18 direct index ( temp float) -0:18 'gl_TessCoord' ( in 3-component vector of float TessCoord) -0:18 Constant: -0:18 1 (const int) -0:19 Sequence -0:19 move second child to first child ( temp float) -0:19 'w' ( temp float) -0:19 direct index ( temp float) -0:19 'gl_TessCoord' ( in 3-component vector of float TessCoord) -0:19 Constant: -0:19 2 (const int) -0:21 Sequence -0:21 move second child to first child ( temp 2-component vector of float) -0:21 'newUv' ( temp 2-component vector of float) -0:21 Construct vec2 ( temp 2-component vector of float) -0:21 add ( temp 2-component vector of float) -0:21 add ( temp 2-component vector of float) -0:21 vector-scale ( temp 2-component vector of float) -0:21 'u' ( temp float) -0:21 texCoord: direct index for structure ( in 2-component vector of float) -0:21 direct index (layout( location=0) temp block{ in 2-component vector of float texCoord}) -0:21 'IN' (layout( location=0) in 32-element array of block{ in 2-component vector of float texCoord}) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 vector-scale ( temp 2-component vector of float) -0:21 'v' ( temp float) -0:21 texCoord: direct index for structure ( in 2-component vector of float) -0:21 direct index (layout( location=0) temp block{ in 2-component vector of float texCoord}) -0:21 'IN' (layout( location=0) in 32-element array of block{ in 2-component vector of float texCoord}) -0:21 Constant: -0:21 1 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 vector-scale ( temp 2-component vector of float) -0:21 'w' ( temp float) -0:21 texCoord: direct index for structure ( in 2-component vector of float) -0:21 direct index (layout( location=0) temp block{ in 2-component vector of float texCoord}) -0:21 'IN' (layout( location=0) in 32-element array of block{ in 2-component vector of float texCoord}) -0:21 Constant: -0:21 2 (const int) -0:21 Constant: -0:21 0 (const int) -0:22 move second child to first child ( temp 2-component vector of float) -0:22 texCoord: direct index for structure ( out 2-component vector of float) -0:22 'OUT' (layout( location=0) out block{ out 2-component vector of float texCoord}) -0:22 Constant: -0:22 0 (const int) -0:22 'newUv' ( temp 2-component vector of float) -0:23 move second child to first child ( temp 4-component vector of float) -0:23 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:23 '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}) -0:23 Constant: -0:23 0 (const uint) -0:23 gl_Position: direct index for structure ( in 4-component vector of float Position) -0:23 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: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 1-element array of float ClipDistance gl_ClipDistance}) -0:23 'gl_PatchVerticesIn' ( in int PatchVertices) -0:23 Constant: -0:23 0 (const int) -0:? Linker Objects -0:? 'IN' (layout( location=0) in 32-element array of block{ in 2-component vector of float texCoord}) -0:? 'OUT' (layout( location=0) out block{ out 2-component vector of float texCoord}) -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}) - -link.tesselation.tesc -Shader version: 440 -vertices = 3 -0:? Sequence -0:14 Function Definition: main( ( global void) -0:14 Function Parameters: -0:16 Sequence -0:16 move second child to first child ( temp 2-component vector of float) -0:16 texCoord: direct index for structure ( out 2-component vector of float) -0:16 indirect index (layout( location=0) temp block{ out 2-component vector of float texCoord}) -0:16 'OUT' (layout( location=0) out 3-element array of block{ out 2-component vector of float texCoord}) -0:16 'gl_InvocationID' ( in int InvocationID) -0:16 Constant: -0:16 0 (const int) -0:16 texCoord: direct index for structure ( in 2-component vector of float) -0:16 indirect index (layout( location=0) temp block{ in 2-component vector of float texCoord}) -0:16 'IN' (layout( location=0) in 32-element array of block{ in 2-component vector of float texCoord}) -0:16 'gl_InvocationID' ( in int InvocationID) -0:16 Constant: -0:16 0 (const int) -0:18 Sequence -0:18 move second child to first child ( temp float) -0:18 'tessLevel' ( temp float) -0:18 Constant: -0:18 10.000000 -0:19 move second child to first child ( temp float) -0:19 indirect index ( patch temp float TessLevelOuter) -0:19 'gl_TessLevelOuter' ( patch out 4-element array of float TessLevelOuter) -0:19 'gl_InvocationID' ( in int InvocationID) -0:19 'tessLevel' ( temp float) -0:20 move second child to first child ( temp float) -0:20 direct index ( patch temp float TessLevelInner) -0:20 'gl_TessLevelInner' ( patch out 2-element array of float TessLevelInner) -0:20 Constant: -0:20 0 (const int) -0:20 'tessLevel' ( temp float) -0:? Linker Objects -0:? 'IN' (layout( location=0) in 32-element array of block{ in 2-component vector of float texCoord}) -0:? 'OUT' (layout( location=0) out 3-element array of block{ out 2-component vector of float texCoord}) - - -Linked tessellation control stage: - - -Linked tessellation evaluation stage: - - -Shader version: 440 -vertices = 3 -0:? Sequence -0:14 Function Definition: main( ( global void) -0:14 Function Parameters: -0:16 Sequence -0:16 move second child to first child ( temp 2-component vector of float) -0:16 texCoord: direct index for structure ( out 2-component vector of float) -0:16 indirect index (layout( location=0) temp block{ out 2-component vector of float texCoord}) -0:16 'OUT' (layout( location=0) out 3-element array of block{ out 2-component vector of float texCoord}) -0:16 'gl_InvocationID' ( in int InvocationID) -0:16 Constant: -0:16 0 (const int) -0:16 texCoord: direct index for structure ( in 2-component vector of float) -0:16 indirect index (layout( location=0) temp block{ in 2-component vector of float texCoord}) -0:16 'IN' (layout( location=0) in 32-element array of block{ in 2-component vector of float texCoord}) -0:16 'gl_InvocationID' ( in int InvocationID) -0:16 Constant: -0:16 0 (const int) -0:18 Sequence -0:18 move second child to first child ( temp float) -0:18 'tessLevel' ( temp float) -0:18 Constant: -0:18 10.000000 -0:19 move second child to first child ( temp float) -0:19 indirect index ( patch temp float TessLevelOuter) -0:19 'gl_TessLevelOuter' ( patch out 4-element array of float TessLevelOuter) -0:19 'gl_InvocationID' ( in int InvocationID) -0:19 'tessLevel' ( temp float) -0:20 move second child to first child ( temp float) -0:20 direct index ( patch temp float TessLevelInner) -0:20 'gl_TessLevelInner' ( patch out 2-element array of float TessLevelInner) -0:20 Constant: -0:20 0 (const int) -0:20 'tessLevel' ( temp float) -0:? Linker Objects -0:? 'IN' (layout( location=0) in 32-element array of block{ in 2-component vector of float texCoord}) -0:? 'OUT' (layout( location=0) out 3-element array of block{ out 2-component vector of float texCoord}) -Shader version: 440 -input primitive = triangles -vertex spacing = fractional_odd_spacing -triangle order = cw -0:? Sequence -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 'u' ( temp float) -0:17 direct index ( temp float) -0:17 'gl_TessCoord' ( in 3-component vector of float TessCoord) -0:17 Constant: -0:17 0 (const int) -0:18 Sequence -0:18 move second child to first child ( temp float) -0:18 'v' ( temp float) -0:18 direct index ( temp float) -0:18 'gl_TessCoord' ( in 3-component vector of float TessCoord) -0:18 Constant: -0:18 1 (const int) -0:19 Sequence -0:19 move second child to first child ( temp float) -0:19 'w' ( temp float) -0:19 direct index ( temp float) -0:19 'gl_TessCoord' ( in 3-component vector of float TessCoord) -0:19 Constant: -0:19 2 (const int) -0:21 Sequence -0:21 move second child to first child ( temp 2-component vector of float) -0:21 'newUv' ( temp 2-component vector of float) -0:21 Construct vec2 ( temp 2-component vector of float) -0:21 add ( temp 2-component vector of float) -0:21 add ( temp 2-component vector of float) -0:21 vector-scale ( temp 2-component vector of float) -0:21 'u' ( temp float) -0:21 texCoord: direct index for structure ( in 2-component vector of float) -0:21 direct index (layout( location=0) temp block{ in 2-component vector of float texCoord}) -0:21 'IN' (layout( location=0) in 32-element array of block{ in 2-component vector of float texCoord}) -0:21 Constant: -0:21 0 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 vector-scale ( temp 2-component vector of float) -0:21 'v' ( temp float) -0:21 texCoord: direct index for structure ( in 2-component vector of float) -0:21 direct index (layout( location=0) temp block{ in 2-component vector of float texCoord}) -0:21 'IN' (layout( location=0) in 32-element array of block{ in 2-component vector of float texCoord}) -0:21 Constant: -0:21 1 (const int) -0:21 Constant: -0:21 0 (const int) -0:21 vector-scale ( temp 2-component vector of float) -0:21 'w' ( temp float) -0:21 texCoord: direct index for structure ( in 2-component vector of float) -0:21 direct index (layout( location=0) temp block{ in 2-component vector of float texCoord}) -0:21 'IN' (layout( location=0) in 32-element array of block{ in 2-component vector of float texCoord}) -0:21 Constant: -0:21 2 (const int) -0:21 Constant: -0:21 0 (const int) -0:22 move second child to first child ( temp 2-component vector of float) -0:22 texCoord: direct index for structure ( out 2-component vector of float) -0:22 'OUT' (layout( location=0) out block{ out 2-component vector of float texCoord}) -0:22 Constant: -0:22 0 (const int) -0:22 'newUv' ( temp 2-component vector of float) -0:23 move second child to first child ( temp 4-component vector of float) -0:23 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:23 '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}) -0:23 Constant: -0:23 0 (const uint) -0:23 gl_Position: direct index for structure ( in 4-component vector of float Position) -0:23 indirect index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance}) -0:23 'gl_in' ( in 32-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:23 'gl_PatchVerticesIn' ( in int PatchVertices) -0:23 Constant: -0:23 0 (const int) -0:? Linker Objects -0:? 'IN' (layout( location=0) in 32-element array of block{ in 2-component vector of float texCoord}) -0:? 'OUT' (layout( location=0) out block{ out 2-component vector of float texCoord}) -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}) - diff --git a/deps/glslang/Test/baseResults/link.tesselation.vert.out b/deps/glslang/Test/baseResults/link.tesselation.vert.out deleted file mode 100644 index d56c3402..00000000 --- a/deps/glslang/Test/baseResults/link.tesselation.vert.out +++ /dev/null @@ -1,94 +0,0 @@ -link.tesselation.vert -Shader version: 440 -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 4-component vector of float) -0:13 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:13 '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}) -0:13 Constant: -0:13 0 (const uint) -0:13 'i_Pos' (layout( location=0) in 4-component vector of float) -0:14 move second child to first child ( temp 2-component vector of float) -0:14 texCoord: direct index for structure ( out 2-component vector of float) -0:14 'OUT' (layout( location=0) out block{ out 2-component vector of float texCoord}) -0:14 Constant: -0:14 0 (const int) -0:14 'i_Tex' (layout( location=1) in 2-component vector of float) -0:? Linker Objects -0:? 'i_Pos' (layout( location=0) in 4-component vector of float) -0:? 'i_Tex' (layout( location=1) in 2-component vector of float) -0:? 'OUT' (layout( location=0) out block{ out 2-component vector of float texCoord}) -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}) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - -link.tesselation.frag -Shader version: 440 -0:? Sequence -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 'oColor' (layout( location=0) out 4-component vector of float) -0:14 texture ( global 4-component vector of float) -0:14 'mytex' (layout( binding=0) uniform sampler2D) -0:14 texCoord: direct index for structure ( in 2-component vector of float) -0:14 'IN' (layout( location=0) in block{ in 2-component vector of float texCoord}) -0:14 Constant: -0:14 0 (const int) -0:? Linker Objects -0:? 'IN' (layout( location=0) in block{ in 2-component vector of float texCoord}) -0:? 'oColor' (layout( location=0) out 4-component vector of float) -0:? 'mytex' (layout( binding=0) uniform sampler2D) - - -Linked vertex stage: - - -Linked fragment stage: - - -Shader version: 440 -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 4-component vector of float) -0:13 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) -0:13 '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}) -0:13 Constant: -0:13 0 (const uint) -0:13 'i_Pos' (layout( location=0) in 4-component vector of float) -0:14 move second child to first child ( temp 2-component vector of float) -0:14 texCoord: direct index for structure ( out 2-component vector of float) -0:14 'OUT' (layout( location=0) out block{ out 2-component vector of float texCoord}) -0:14 Constant: -0:14 0 (const int) -0:14 'i_Tex' (layout( location=1) in 2-component vector of float) -0:? Linker Objects -0:? 'i_Pos' (layout( location=0) in 4-component vector of float) -0:? 'i_Tex' (layout( location=1) in 2-component vector of float) -0:? 'OUT' (layout( location=0) out block{ out 2-component vector of float texCoord}) -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}) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) -Shader version: 440 -0:? Sequence -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 'oColor' (layout( location=0) out 4-component vector of float) -0:14 texture ( global 4-component vector of float) -0:14 'mytex' (layout( binding=0) uniform sampler2D) -0:14 texCoord: direct index for structure ( in 2-component vector of float) -0:14 'IN' (layout( location=0) in block{ in 2-component vector of float texCoord}) -0:14 Constant: -0:14 0 (const int) -0:? Linker Objects -0:? 'IN' (layout( location=0) in block{ in 2-component vector of float texCoord}) -0:? 'oColor' (layout( location=0) out 4-component vector of float) -0:? 'mytex' (layout( binding=0) uniform sampler2D) - diff --git a/deps/glslang/Test/baseResults/link.vk.differentPC.0.0.frag.out b/deps/glslang/Test/baseResults/link.vk.differentPC.0.0.frag.out deleted file mode 100644 index d78ba54a..00000000 --- a/deps/glslang/Test/baseResults/link.vk.differentPC.0.0.frag.out +++ /dev/null @@ -1,97 +0,0 @@ -link.vk.differentPC.0.0.frag -Shader version: 450 -gl_FragCoord origin is upper left -0:? Sequence -0:15 Function Definition: main( ( global void) -0:15 Function Parameters: -0:17 Sequence -0:17 move second child to first child ( temp highp 4-component vector of float) -0:17 'color' (layout( location=0) out highp 4-component vector of float) -0:17 add ( temp highp 4-component vector of float) -0:17 color: direct index for structure (layout( column_major std430 offset=0) uniform highp 4-component vector of float) -0:17 'uPC' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4-component vector of float color, layout( column_major std430 offset=16) uniform highp 4-component vector of float color2, layout( column_major std430 offset=32) uniform highp float scale}) -0:17 Constant: -0:17 0 (const int) -0:17 vector-scale ( temp highp 4-component vector of float) -0:17 Function Call: getColor2( ( global highp 4-component vector of float) -0:17 Function Call: getScale( ( global highp float) -0:? Linker Objects -0:? 'color' (layout( location=0) out highp 4-component vector of float) -0:? 'uPC' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4-component vector of float color, layout( column_major std430 offset=16) uniform highp 4-component vector of float color2, layout( column_major std430 offset=32) uniform highp float scale}) - -link.vk.differentPC.0.1.frag -Shader version: 450 -gl_FragCoord origin is upper left -0:? Sequence -0:11 Function Definition: getColor2( ( global highp 4-component vector of float) -0:11 Function Parameters: -0:13 Sequence -0:13 Branch: Return with expression -0:13 color2: direct index for structure (layout( column_major std430 offset=16) uniform highp 4-component vector of float) -0:13 'uPC' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4-component vector of float color, layout( column_major std430 offset=16) uniform highp 4-component vector of float color2, layout( column_major std430 offset=32) uniform highp float scale}) -0:13 Constant: -0:13 1 (const int) -0:? Linker Objects -0:? 'uPC' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4-component vector of float color, layout( column_major std430 offset=16) uniform highp 4-component vector of float color2, layout( column_major std430 offset=32) uniform highp float scale}) - -link.vk.differentPC.0.2.frag -Shader version: 450 -gl_FragCoord origin is upper left -0:? Sequence -0:11 Function Definition: getScale( ( global highp float) -0:11 Function Parameters: -0:13 Sequence -0:13 Branch: Return with expression -0:13 scale2: direct index for structure (layout( column_major std430 offset=32) uniform highp float) -0:13 'uPC' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4-component vector of float color, layout( column_major std430 offset=16) uniform highp 4-component vector of float color2, layout( column_major std430 offset=32) uniform highp float scale2}) -0:13 Constant: -0:13 2 (const int) -0:? Linker Objects -0:? 'uPC' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4-component vector of float color, layout( column_major std430 offset=16) uniform highp 4-component vector of float color2, layout( column_major std430 offset=32) uniform highp float scale2}) - - -Linked fragment stage: - -ERROR: Linking fragment and fragment stages: Member names and types must match: - Block: PushConstantBlock - fragment stage: " float scale" - fragment stage: " float scale2" - -Shader version: 450 -gl_FragCoord origin is upper left -0:? Sequence -0:15 Function Definition: main( ( global void) -0:15 Function Parameters: -0:17 Sequence -0:17 move second child to first child ( temp highp 4-component vector of float) -0:17 'color' (layout( location=0) out highp 4-component vector of float) -0:17 add ( temp highp 4-component vector of float) -0:17 color: direct index for structure (layout( column_major std430 offset=0) uniform highp 4-component vector of float) -0:17 'uPC' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4-component vector of float color, layout( column_major std430 offset=16) uniform highp 4-component vector of float color2, layout( column_major std430 offset=32) uniform highp float scale}) -0:17 Constant: -0:17 0 (const int) -0:17 vector-scale ( temp highp 4-component vector of float) -0:17 Function Call: getColor2( ( global highp 4-component vector of float) -0:17 Function Call: getScale( ( global highp float) -0:11 Function Definition: getColor2( ( global highp 4-component vector of float) -0:11 Function Parameters: -0:13 Sequence -0:13 Branch: Return with expression -0:13 color2: direct index for structure (layout( column_major std430 offset=16) uniform highp 4-component vector of float) -0:13 'uPC' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4-component vector of float color, layout( column_major std430 offset=16) uniform highp 4-component vector of float color2, layout( column_major std430 offset=32) uniform highp float scale}) -0:13 Constant: -0:13 1 (const int) -0:11 Function Definition: getScale( ( global highp float) -0:11 Function Parameters: -0:13 Sequence -0:13 Branch: Return with expression -0:13 scale2: direct index for structure (layout( column_major std430 offset=32) uniform highp float) -0:13 'uPC' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4-component vector of float color, layout( column_major std430 offset=16) uniform highp 4-component vector of float color2, layout( column_major std430 offset=32) uniform highp float scale2}) -0:13 Constant: -0:13 2 (const int) -0:? Linker Objects -0:? 'color' (layout( location=0) out highp 4-component vector of float) -0:? 'uPC' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4-component vector of float color, layout( column_major std430 offset=16) uniform highp 4-component vector of float color2, layout( column_major std430 offset=32) uniform highp float scale}) - -Validation failed -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/link.vk.differentPC.1.0.frag.out b/deps/glslang/Test/baseResults/link.vk.differentPC.1.0.frag.out deleted file mode 100644 index 07ed124a..00000000 --- a/deps/glslang/Test/baseResults/link.vk.differentPC.1.0.frag.out +++ /dev/null @@ -1,99 +0,0 @@ -link.vk.differentPC.1.0.frag -Shader version: 450 -gl_FragCoord origin is upper left -0:? Sequence -0:12 Function Definition: getScale( ( global highp float) -0:12 Function Parameters: -0:14 Sequence -0:14 Branch: Return with expression -0:14 scale: direct index for structure (layout( column_major std430 offset=32) uniform highp float) -0:14 'uPC' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4-component vector of float color, layout( column_major std430 offset=16) uniform highp 4-component vector of float color2, layout( column_major std430 offset=32) uniform highp float scale, layout( column_major std430 offset=36) uniform highp float scale2}) -0:14 Constant: -0:14 2 (const int) -0:? Linker Objects -0:? 'uPC' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4-component vector of float color, layout( column_major std430 offset=16) uniform highp 4-component vector of float color2, layout( column_major std430 offset=32) uniform highp float scale, layout( column_major std430 offset=36) uniform highp float scale2}) - -link.vk.differentPC.1.1.frag -Shader version: 450 -gl_FragCoord origin is upper left -0:? Sequence -0:11 Function Definition: getColor2( ( global highp 4-component vector of float) -0:11 Function Parameters: -0:13 Sequence -0:13 Branch: Return with expression -0:13 color2: direct index for structure (layout( column_major std430 offset=16) uniform highp 4-component vector of float) -0:13 'uPC' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4-component vector of float color, layout( column_major std430 offset=16) uniform highp 4-component vector of float color2, layout( column_major std430 offset=32) uniform highp float scale}) -0:13 Constant: -0:13 1 (const int) -0:? Linker Objects -0:? 'uPC' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4-component vector of float color, layout( column_major std430 offset=16) uniform highp 4-component vector of float color2, layout( column_major std430 offset=32) uniform highp float scale}) - -link.vk.differentPC.1.2.frag -Shader version: 450 -gl_FragCoord origin is upper left -0:? Sequence -0:15 Function Definition: main( ( global void) -0:15 Function Parameters: -0:17 Sequence -0:17 move second child to first child ( temp highp 4-component vector of float) -0:17 'color' (layout( location=0) out highp 4-component vector of float) -0:17 add ( temp highp 4-component vector of float) -0:17 color: direct index for structure (layout( column_major std430 offset=0) uniform highp 4-component vector of float) -0:17 'uPC' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4-component vector of float color, layout( column_major std430 offset=16) uniform highp 4-component vector of float color2, layout( column_major std430 offset=32) uniform highp float scale}) -0:17 Constant: -0:17 0 (const int) -0:17 vector-scale ( temp highp 4-component vector of float) -0:17 Function Call: getColor2( ( global highp 4-component vector of float) -0:17 Function Call: getScale( ( global highp float) -0:? Linker Objects -0:? 'color' (layout( location=0) out highp 4-component vector of float) -0:? 'uPC' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4-component vector of float color, layout( column_major std430 offset=16) uniform highp 4-component vector of float color2, layout( column_major std430 offset=32) uniform highp float scale}) - - -Linked fragment stage: - -ERROR: Linking fragment and fragment stages: fragment block member has no corresponding member in fragment block: - fragment stage: Block: PushConstantBlock, Member: scale2 - fragment stage: Block: PushConstantBlock, Member: n/a -ERROR: Linking fragment and fragment stages: fragment block member has no corresponding member in fragment block: - fragment stage: Block: PushConstantBlock, Member: scale2 - fragment stage: Block: PushConstantBlock, Member: n/a - -Shader version: 450 -gl_FragCoord origin is upper left -0:? Sequence -0:12 Function Definition: getScale( ( global highp float) -0:12 Function Parameters: -0:14 Sequence -0:14 Branch: Return with expression -0:14 scale: direct index for structure (layout( column_major std430 offset=32) uniform highp float) -0:14 'uPC' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4-component vector of float color, layout( column_major std430 offset=16) uniform highp 4-component vector of float color2, layout( column_major std430 offset=32) uniform highp float scale, layout( column_major std430 offset=36) uniform highp float scale2}) -0:14 Constant: -0:14 2 (const int) -0:11 Function Definition: getColor2( ( global highp 4-component vector of float) -0:11 Function Parameters: -0:13 Sequence -0:13 Branch: Return with expression -0:13 color2: direct index for structure (layout( column_major std430 offset=16) uniform highp 4-component vector of float) -0:13 'uPC' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4-component vector of float color, layout( column_major std430 offset=16) uniform highp 4-component vector of float color2, layout( column_major std430 offset=32) uniform highp float scale}) -0:13 Constant: -0:13 1 (const int) -0:15 Function Definition: main( ( global void) -0:15 Function Parameters: -0:17 Sequence -0:17 move second child to first child ( temp highp 4-component vector of float) -0:17 'color' (layout( location=0) out highp 4-component vector of float) -0:17 add ( temp highp 4-component vector of float) -0:17 color: direct index for structure (layout( column_major std430 offset=0) uniform highp 4-component vector of float) -0:17 'uPC' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4-component vector of float color, layout( column_major std430 offset=16) uniform highp 4-component vector of float color2, layout( column_major std430 offset=32) uniform highp float scale}) -0:17 Constant: -0:17 0 (const int) -0:17 vector-scale ( temp highp 4-component vector of float) -0:17 Function Call: getColor2( ( global highp 4-component vector of float) -0:17 Function Call: getScale( ( global highp float) -0:? Linker Objects -0:? 'uPC' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4-component vector of float color, layout( column_major std430 offset=16) uniform highp 4-component vector of float color2, layout( column_major std430 offset=32) uniform highp float scale, layout( column_major std430 offset=36) uniform highp float scale2}) -0:? 'color' (layout( location=0) out highp 4-component vector of float) - -Validation failed -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/link.vk.inconsistentGLPerVertex.0.vert.out b/deps/glslang/Test/baseResults/link.vk.inconsistentGLPerVertex.0.vert.out deleted file mode 100644 index 3d76b2f3..00000000 --- a/deps/glslang/Test/baseResults/link.vk.inconsistentGLPerVertex.0.vert.out +++ /dev/null @@ -1,315 +0,0 @@ -link.vk.inconsistentGLPerVertex.0.vert -Shader version: 460 -0:? Sequence -0:15 Function Definition: main( ( global void) -0:15 Function Parameters: -0:17 Sequence -0:17 move second child to first child ( temp highp 4-component vector of float) -0:17 color: direct index for structure ( out highp 4-component vector of float) -0:17 'vs_out' ( out block{ out highp 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 move second child to first child ( temp float) -0:18 gl_PointSize: direct index for structure ( gl_PointSize float PointSize) -0:18 '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, out unsized 1-element array of float CullDistance gl_CullDistance}) -0:18 Constant: -0:18 1 (const uint) -0:18 Constant: -0:18 1.000000 -0:19 move second child to first child ( temp highp 4-component vector of float) -0:19 gl_Position: direct index for structure ( gl_Position highp 4-component vector of float Position) -0:19 '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, out unsized 1-element array of float CullDistance gl_CullDistance}) -0:19 Constant: -0:19 0 (const uint) -0:19 'P' ( in highp 4-component vector of float) -0:? Linker Objects -0:? 'vs_out' ( out block{ out highp 4-component vector of float color}) -0:? 'P' ( in highp 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 1-element array of float ClipDistance gl_ClipDistance, out unsized 1-element array of float CullDistance gl_CullDistance}) - -link.vk.inconsistentGLPerVertex.0.geom -Shader version: 460 -invocations = -1 -max_vertices = 50 -input primitive = lines_adjacency -output primitive = triangle_strip -0:? Sequence -0:16 Function Definition: main( ( global void) -0:16 Function Parameters: -0:18 Sequence -0:18 move second child to first child ( temp 4-component vector of float) -0:18 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position) -0:18 'anon@0' (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 1-element array of float ClipDistance gl_ClipDistance, layout( stream=0) out unsized 1-element array of float CullDistance gl_CullDistance}) -0:18 Constant: -0:18 0 (const uint) -0:18 gl_Position: direct index for structure ( in 4-component vector of float Position) -0:18 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, in unsized 1-element array of float CullDistance gl_CullDistance, in 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV}) -0:18 'gl_in' ( in 4-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, in unsized 1-element array of float CullDistance gl_CullDistance, in 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV}) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:19 move second child to first child ( temp highp 4-component vector of float) -0:19 color: direct index for structure (layout( stream=0) out highp 4-component vector of float) -0:19 'gs_out' (layout( stream=0) out block{layout( stream=0) out highp 4-component vector of float color}) -0:19 Constant: -0:19 0 (const int) -0:19 color: direct index for structure ( in highp 4-component vector of float) -0:19 direct index ( temp block{ in highp 4-component vector of float color}) -0:19 'gs_in' ( in 4-element array of block{ in highp 4-component vector of float color}) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:20 EmitVertex ( global void) -0:21 move second child to first child ( temp highp 4-component vector of float) -0:21 color: direct index for structure (layout( stream=0) out highp 4-component vector of float) -0:21 'gs_out' (layout( stream=0) out block{layout( stream=0) out highp 4-component vector of float color}) -0:21 Constant: -0:21 0 (const int) -0:21 color: direct index for structure ( in highp 4-component vector of float) -0:21 direct index ( temp block{ in highp 4-component vector of float color}) -0:21 'gs_in' ( in 4-element array of block{ in highp 4-component vector of float color}) -0:21 Constant: -0:21 1 (const int) -0:21 Constant: -0:21 0 (const int) -0:22 move second child to first child ( temp 4-component vector of float) -0:22 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position) -0:22 'anon@0' (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 1-element array of float ClipDistance gl_ClipDistance, layout( stream=0) out unsized 1-element array of float CullDistance gl_CullDistance}) -0:22 Constant: -0:22 0 (const uint) -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 1-element array of float ClipDistance gl_ClipDistance, in unsized 1-element array of float CullDistance gl_CullDistance, in 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV}) -0:22 'gl_in' ( in 4-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, in unsized 1-element array of float CullDistance gl_CullDistance, in 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV}) -0:22 Constant: -0:22 1 (const int) -0:22 Constant: -0:22 0 (const int) -0:23 EmitVertex ( global void) -0:24 move second child to first child ( temp highp 4-component vector of float) -0:24 color: direct index for structure (layout( stream=0) out highp 4-component vector of float) -0:24 'gs_out' (layout( stream=0) out block{layout( stream=0) out highp 4-component vector of float color}) -0:24 Constant: -0:24 0 (const int) -0:24 color: direct index for structure ( in highp 4-component vector of float) -0:24 direct index ( temp block{ in highp 4-component vector of float color}) -0:24 'gs_in' ( in 4-element array of block{ in highp 4-component vector of float color}) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 0 (const int) -0:25 move second child to first child ( temp 4-component vector of float) -0:25 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position) -0:25 'anon@0' (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 1-element array of float ClipDistance gl_ClipDistance, layout( stream=0) out unsized 1-element array of float CullDistance gl_CullDistance}) -0:25 Constant: -0:25 0 (const uint) -0:25 gl_Position: direct index for structure ( in 4-component vector of float Position) -0:25 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, in unsized 1-element array of float CullDistance gl_CullDistance, in 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV}) -0:25 'gl_in' ( in 4-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, in unsized 1-element array of float CullDistance gl_CullDistance, in 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV}) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 0 (const int) -0:26 EmitVertex ( global void) -0:? Linker Objects -0:? 'gs_in' ( in 4-element array of block{ in highp 4-component vector of float color}) -0:? 'gs_out' (layout( stream=0) out block{layout( stream=0) out highp 4-component vector of float color}) -0:? 'anon@0' (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 1-element array of float ClipDistance gl_ClipDistance, layout( stream=0) out unsized 1-element array of float CullDistance gl_CullDistance}) -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 1-element array of float ClipDistance gl_ClipDistance, in unsized 1-element array of float CullDistance gl_CullDistance, in 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV}) - - -Linked vertex stage: - - -Linked geometry stage: - - -Shader version: 460 -0:? Sequence -0:15 Function Definition: main( ( global void) -0:15 Function Parameters: -0:17 Sequence -0:17 move second child to first child ( temp highp 4-component vector of float) -0:17 color: direct index for structure ( out highp 4-component vector of float) -0:17 'vs_out' ( out block{ out highp 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 move second child to first child ( temp float) -0:18 gl_PointSize: direct index for structure ( gl_PointSize float PointSize) -0:18 '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, out 1-element array of float CullDistance gl_CullDistance}) -0:18 Constant: -0:18 1 (const uint) -0:18 Constant: -0:18 1.000000 -0:19 move second child to first child ( temp highp 4-component vector of float) -0:19 gl_Position: direct index for structure ( gl_Position highp 4-component vector of float Position) -0:19 '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, out 1-element array of float CullDistance gl_CullDistance}) -0:19 Constant: -0:19 0 (const uint) -0:19 'P' ( in highp 4-component vector of float) -0:? Linker Objects -0:? 'vs_out' ( out block{ out highp 4-component vector of float color}) -0:? 'P' ( in highp 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 1-element array of float ClipDistance gl_ClipDistance, out 1-element array of float CullDistance gl_CullDistance}) -Shader version: 460 -invocations = 1 -max_vertices = 50 -input primitive = lines_adjacency -output primitive = triangle_strip -0:? Sequence -0:16 Function Definition: main( ( global void) -0:16 Function Parameters: -0:18 Sequence -0:18 move second child to first child ( temp 4-component vector of float) -0:18 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position) -0:18 'anon@0' (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 1-element array of float ClipDistance gl_ClipDistance, layout( stream=0) out 1-element array of float CullDistance gl_CullDistance}) -0:18 Constant: -0:18 0 (const uint) -0:18 gl_Position: direct index for structure ( in 4-component vector of float Position) -0:18 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance, in 1-element array of float CullDistance gl_CullDistance, in 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV}) -0:18 'gl_in' ( in 4-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, in 1-element array of float CullDistance gl_CullDistance, in 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV}) -0:18 Constant: -0:18 0 (const int) -0:18 Constant: -0:18 0 (const int) -0:19 move second child to first child ( temp highp 4-component vector of float) -0:19 color: direct index for structure (layout( stream=0) out highp 4-component vector of float) -0:19 'gs_out' (layout( stream=0) out block{layout( stream=0) out highp 4-component vector of float color}) -0:19 Constant: -0:19 0 (const int) -0:19 color: direct index for structure ( in highp 4-component vector of float) -0:19 direct index ( temp block{ in highp 4-component vector of float color}) -0:19 'gs_in' ( in 4-element array of block{ in highp 4-component vector of float color}) -0:19 Constant: -0:19 0 (const int) -0:19 Constant: -0:19 0 (const int) -0:20 EmitVertex ( global void) -0:21 move second child to first child ( temp highp 4-component vector of float) -0:21 color: direct index for structure (layout( stream=0) out highp 4-component vector of float) -0:21 'gs_out' (layout( stream=0) out block{layout( stream=0) out highp 4-component vector of float color}) -0:21 Constant: -0:21 0 (const int) -0:21 color: direct index for structure ( in highp 4-component vector of float) -0:21 direct index ( temp block{ in highp 4-component vector of float color}) -0:21 'gs_in' ( in 4-element array of block{ in highp 4-component vector of float color}) -0:21 Constant: -0:21 1 (const int) -0:21 Constant: -0:21 0 (const int) -0:22 move second child to first child ( temp 4-component vector of float) -0:22 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position) -0:22 'anon@0' (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 1-element array of float ClipDistance gl_ClipDistance, layout( stream=0) out 1-element array of float CullDistance gl_CullDistance}) -0:22 Constant: -0:22 0 (const uint) -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 1-element array of float ClipDistance gl_ClipDistance, in 1-element array of float CullDistance gl_CullDistance, in 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV}) -0:22 'gl_in' ( in 4-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, in 1-element array of float CullDistance gl_CullDistance, in 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV}) -0:22 Constant: -0:22 1 (const int) -0:22 Constant: -0:22 0 (const int) -0:23 EmitVertex ( global void) -0:24 move second child to first child ( temp highp 4-component vector of float) -0:24 color: direct index for structure (layout( stream=0) out highp 4-component vector of float) -0:24 'gs_out' (layout( stream=0) out block{layout( stream=0) out highp 4-component vector of float color}) -0:24 Constant: -0:24 0 (const int) -0:24 color: direct index for structure ( in highp 4-component vector of float) -0:24 direct index ( temp block{ in highp 4-component vector of float color}) -0:24 'gs_in' ( in 4-element array of block{ in highp 4-component vector of float color}) -0:24 Constant: -0:24 0 (const int) -0:24 Constant: -0:24 0 (const int) -0:25 move second child to first child ( temp 4-component vector of float) -0:25 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position) -0:25 'anon@0' (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 1-element array of float ClipDistance gl_ClipDistance, layout( stream=0) out 1-element array of float CullDistance gl_CullDistance}) -0:25 Constant: -0:25 0 (const uint) -0:25 gl_Position: direct index for structure ( in 4-component vector of float Position) -0:25 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance, in 1-element array of float CullDistance gl_CullDistance, in 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV}) -0:25 'gl_in' ( in 4-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, in 1-element array of float CullDistance gl_CullDistance, in 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV}) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 0 (const int) -0:26 EmitVertex ( global void) -0:? Linker Objects -0:? 'gs_in' ( in 4-element array of block{ in highp 4-component vector of float color}) -0:? 'gs_out' (layout( stream=0) out block{layout( stream=0) out highp 4-component vector of float color}) -0:? 'anon@0' (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 1-element array of float ClipDistance gl_ClipDistance, layout( stream=0) out 1-element array of float CullDistance gl_CullDistance}) -0:? 'gl_in' ( in 4-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, in 1-element array of float CullDistance gl_CullDistance, in 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV}) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 30 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 10 22 27 - Source GLSL 460 - Name 4 "main" - Name 8 "vs_output" - MemberName 8(vs_output) 0 "color" - Name 10 "vs_out" - Name 20 "gl_PerVertex" - MemberName 20(gl_PerVertex) 0 "gl_Position" - MemberName 20(gl_PerVertex) 1 "gl_PointSize" - MemberName 20(gl_PerVertex) 2 "gl_ClipDistance" - MemberName 20(gl_PerVertex) 3 "gl_CullDistance" - Name 22 "" - Name 27 "P" - Decorate 8(vs_output) Block - Decorate 10(vs_out) Location 0 - MemberDecorate 20(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 20(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 20(gl_PerVertex) 2 BuiltIn ClipDistance - MemberDecorate 20(gl_PerVertex) 3 BuiltIn CullDistance - Decorate 20(gl_PerVertex) Block - Decorate 27(P) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8(vs_output): TypeStruct 7(fvec4) - 9: TypePointer Output 8(vs_output) - 10(vs_out): 9(ptr) Variable Output - 11: TypeInt 32 1 - 12: 11(int) Constant 0 - 13: 6(float) Constant 1065353216 - 14: 7(fvec4) ConstantComposite 13 13 13 13 - 15: TypePointer Output 7(fvec4) - 17: TypeInt 32 0 - 18: 17(int) Constant 1 - 19: TypeArray 6(float) 18 -20(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 19 19 - 21: TypePointer Output 20(gl_PerVertex) - 22: 21(ptr) Variable Output - 23: 11(int) Constant 1 - 24: TypePointer Output 6(float) - 26: TypePointer Input 7(fvec4) - 27(P): 26(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 16: 15(ptr) AccessChain 10(vs_out) 12 - Store 16 14 - 25: 24(ptr) AccessChain 22 23 - Store 25 13 - 28: 7(fvec4) Load 27(P) - 29: 15(ptr) AccessChain 22 12 - Store 29 28 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/link.vk.matchingPC.0.0.frag.out b/deps/glslang/Test/baseResults/link.vk.matchingPC.0.0.frag.out deleted file mode 100644 index c434b66e..00000000 --- a/deps/glslang/Test/baseResults/link.vk.matchingPC.0.0.frag.out +++ /dev/null @@ -1,155 +0,0 @@ -link.vk.matchingPC.0.0.frag -Shader version: 450 -gl_FragCoord origin is upper left -0:? Sequence -0:15 Function Definition: main( ( global void) -0:15 Function Parameters: -0:17 Sequence -0:17 move second child to first child ( temp highp 4-component vector of float) -0:17 'color' (layout( location=0) out highp 4-component vector of float) -0:17 add ( temp highp 4-component vector of float) -0:17 color: direct index for structure (layout( column_major std430 offset=0) uniform highp 4-component vector of float) -0:17 'uPC' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4-component vector of float color, layout( column_major std430 offset=16) uniform highp 4-component vector of float color2, layout( column_major std430 offset=32) uniform highp float scale}) -0:17 Constant: -0:17 0 (const int) -0:17 vector-scale ( temp highp 4-component vector of float) -0:17 Function Call: getColor2( ( global highp 4-component vector of float) -0:17 Function Call: getScale( ( global highp float) -0:? Linker Objects -0:? 'color' (layout( location=0) out highp 4-component vector of float) -0:? 'uPC' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4-component vector of float color, layout( column_major std430 offset=16) uniform highp 4-component vector of float color2, layout( column_major std430 offset=32) uniform highp float scale}) - -link.vk.matchingPC.0.1.frag -Shader version: 450 -gl_FragCoord origin is upper left -0:? Sequence -0:11 Function Definition: getColor2( ( global highp 4-component vector of float) -0:11 Function Parameters: -0:13 Sequence -0:13 Branch: Return with expression -0:13 color2: direct index for structure (layout( column_major std430 offset=16) uniform highp 4-component vector of float) -0:13 'uPC' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4-component vector of float color, layout( column_major std430 offset=16) uniform highp 4-component vector of float color2, layout( column_major std430 offset=32) uniform highp float scale}) -0:13 Constant: -0:13 1 (const int) -0:? Linker Objects -0:? 'uPC' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4-component vector of float color, layout( column_major std430 offset=16) uniform highp 4-component vector of float color2, layout( column_major std430 offset=32) uniform highp float scale}) - -link.vk.matchingPC.0.2.frag -Shader version: 450 -gl_FragCoord origin is upper left -0:? Sequence -0:11 Function Definition: getScale( ( global highp float) -0:11 Function Parameters: -0:13 Sequence -0:13 Branch: Return with expression -0:13 scale: direct index for structure (layout( column_major std430 offset=32) uniform highp float) -0:13 'uPC' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4-component vector of float color, layout( column_major std430 offset=16) uniform highp 4-component vector of float color2, layout( column_major std430 offset=32) uniform highp float scale}) -0:13 Constant: -0:13 2 (const int) -0:? Linker Objects -0:? 'uPC' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4-component vector of float color, layout( column_major std430 offset=16) uniform highp 4-component vector of float color2, layout( column_major std430 offset=32) uniform highp float scale}) - - -Linked fragment stage: - - -Shader version: 450 -gl_FragCoord origin is upper left -0:? Sequence -0:15 Function Definition: main( ( global void) -0:15 Function Parameters: -0:17 Sequence -0:17 move second child to first child ( temp highp 4-component vector of float) -0:17 'color' (layout( location=0) out highp 4-component vector of float) -0:17 add ( temp highp 4-component vector of float) -0:17 color: direct index for structure (layout( column_major std430 offset=0) uniform highp 4-component vector of float) -0:17 'uPC' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4-component vector of float color, layout( column_major std430 offset=16) uniform highp 4-component vector of float color2, layout( column_major std430 offset=32) uniform highp float scale}) -0:17 Constant: -0:17 0 (const int) -0:17 vector-scale ( temp highp 4-component vector of float) -0:17 Function Call: getColor2( ( global highp 4-component vector of float) -0:17 Function Call: getScale( ( global highp float) -0:11 Function Definition: getColor2( ( global highp 4-component vector of float) -0:11 Function Parameters: -0:13 Sequence -0:13 Branch: Return with expression -0:13 color2: direct index for structure (layout( column_major std430 offset=16) uniform highp 4-component vector of float) -0:13 'uPC' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4-component vector of float color, layout( column_major std430 offset=16) uniform highp 4-component vector of float color2, layout( column_major std430 offset=32) uniform highp float scale}) -0:13 Constant: -0:13 1 (const int) -0:11 Function Definition: getScale( ( global highp float) -0:11 Function Parameters: -0:13 Sequence -0:13 Branch: Return with expression -0:13 scale: direct index for structure (layout( column_major std430 offset=32) uniform highp float) -0:13 'uPC' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4-component vector of float color, layout( column_major std430 offset=16) uniform highp 4-component vector of float color2, layout( column_major std430 offset=32) uniform highp float scale}) -0:13 Constant: -0:13 2 (const int) -0:? Linker Objects -0:? 'color' (layout( location=0) out highp 4-component vector of float) -0:? 'uPC' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4-component vector of float color, layout( column_major std430 offset=16) uniform highp 4-component vector of float color2, layout( column_major std430 offset=32) uniform highp float scale}) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 39 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 15 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - Name 4 "main" - Name 9 "getColor2(" - Name 12 "getScale(" - Name 15 "color" - Name 16 "PushConstantBlock" - MemberName 16(PushConstantBlock) 0 "color" - MemberName 16(PushConstantBlock) 1 "color2" - MemberName 16(PushConstantBlock) 2 "scale" - Name 18 "uPC" - Decorate 15(color) Location 0 - MemberDecorate 16(PushConstantBlock) 0 Offset 0 - MemberDecorate 16(PushConstantBlock) 1 Offset 16 - MemberDecorate 16(PushConstantBlock) 2 Offset 32 - Decorate 16(PushConstantBlock) Block - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 11: TypeFunction 6(float) - 14: TypePointer Output 7(fvec4) - 15(color): 14(ptr) Variable Output -16(PushConstantBlock): TypeStruct 7(fvec4) 7(fvec4) 6(float) - 17: TypePointer PushConstant 16(PushConstantBlock) - 18(uPC): 17(ptr) Variable PushConstant - 19: TypeInt 32 1 - 20: 19(int) Constant 0 - 21: TypePointer PushConstant 7(fvec4) - 28: 19(int) Constant 1 - 33: 19(int) Constant 2 - 34: TypePointer PushConstant 6(float) - 4(main): 2 Function None 3 - 5: Label - 22: 21(ptr) AccessChain 18(uPC) 20 - 23: 7(fvec4) Load 22 - 24: 7(fvec4) FunctionCall 9(getColor2() - 25: 6(float) FunctionCall 12(getScale() - 26: 7(fvec4) VectorTimesScalar 24 25 - 27: 7(fvec4) FAdd 23 26 - Store 15(color) 27 - Return - FunctionEnd - 9(getColor2(): 7(fvec4) Function None 8 - 10: Label - 29: 21(ptr) AccessChain 18(uPC) 28 - 30: 7(fvec4) Load 29 - ReturnValue 30 - FunctionEnd - 12(getScale(): 6(float) Function None 11 - 13: Label - 35: 34(ptr) AccessChain 18(uPC) 33 - 36: 6(float) Load 35 - ReturnValue 36 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/link.vk.multiBlocksValid.0.0.vert.out b/deps/glslang/Test/baseResults/link.vk.multiBlocksValid.0.0.vert.out deleted file mode 100644 index 29a4df04..00000000 --- a/deps/glslang/Test/baseResults/link.vk.multiBlocksValid.0.0.vert.out +++ /dev/null @@ -1,328 +0,0 @@ -link.vk.multiBlocksValid.0.0.vert -Shader version: 430 -0:? Sequence -0:43 Function Definition: main( ( global void) -0:43 Function Parameters: -0:45 Sequence -0:45 move second child to first child ( temp highp 4-component vector of float) -0:45 'oColor' ( smooth out highp 4-component vector of float) -0:45 component-wise multiply ( temp highp 4-component vector of float) -0:45 component-wise multiply ( temp highp 4-component vector of float) -0:45 color1: direct index for structure (layout( column_major std140 offset=0) uniform highp 4-component vector of float) -0:45 'uC' (layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3}) -0:45 Constant: -0:45 0 (const int) -0:45 Function Call: getColor2( ( global highp 4-component vector of float) -0:45 c: direct index for structure (layout( column_major std430 offset=0) buffer highp 4-component vector of float) -0:45 'uColorBuf' (layout( binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer highp 4-component vector of float c}) -0:45 Constant: -0:45 0 (const int) -0:46 move second child to first child ( temp highp 4-component vector of float) -0:46 v1: direct index for structure ( out highp 4-component vector of float) -0:46 'oV' ( out block{ out highp 4-component vector of float v1, out highp 4-component vector of float v2}) -0:46 Constant: -0:46 0 (const int) -0:46 color1: direct index for structure (layout( column_major std140 offset=0) uniform highp 4-component vector of float) -0:46 'uC' (layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3}) -0:46 Constant: -0:46 0 (const int) -0:48 move second child to first child ( temp highp 4-component vector of float) -0:48 gl_Position: direct index for structure ( gl_Position highp 4-component vector of float Position) -0:48 '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}) -0:48 Constant: -0:48 0 (const uint) -0:48 matrix-times-vector ( temp highp 4-component vector of float) -0:48 uProj: direct index for structure (layout( column_major std140 offset=0) uniform highp 4X4 matrix of float) -0:48 'uM' (layout( binding=0 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float uWorld}) -0:48 Constant: -0:48 0 (const int) -0:48 Function Call: getWorld( ( global highp 4-component vector of float) -0:? Linker Objects -0:? 'uM' (layout( binding=0 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float uWorld}) -0:? 'oV' ( out block{ out highp 4-component vector of float v1, out highp 4-component vector of float v2}) -0:? 'uC' (layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3}) -0:? 'uBuf' (layout( binding=1 column_major std430) buffer block{layout( column_major std430 offset=0) buffer highp 4X4 matrix of float p}) -0:? 'uColorBuf' (layout( binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer highp 4-component vector of float c}) -0:? 'oColor' ( smooth out highp 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 1-element array of float ClipDistance gl_ClipDistance}) - -link.vk.multiBlocksValid.0.1.vert -Shader version: 430 -0:? Sequence -0:36 Function Definition: getColor2( ( global highp 4-component vector of float) -0:36 Function Parameters: -0:38 Sequence -0:38 Branch: Return with expression -0:38 color2: direct index for structure (layout( column_major std140 offset=32) uniform highp 4-component vector of float) -0:38 'uColor' (layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3}) -0:38 Constant: -0:38 2 (const int) -0:41 Function Definition: getWorld( ( global highp 4-component vector of float) -0:41 Function Parameters: -0:43 Sequence -0:43 move second child to first child ( temp highp 4-component vector of float) -0:43 v1: direct index for structure ( out highp 4-component vector of float) -0:43 'anon@0' ( out block{ out highp 4-component vector of float v1, out highp 4-component vector of float v2}) -0:43 Constant: -0:43 0 (const uint) -0:43 Constant: -0:43 1.000000 -0:43 1.000000 -0:43 1.000000 -0:43 1.000000 -0:44 Branch: Return with expression -0:44 matrix-times-vector ( temp highp 4-component vector of float) -0:44 uWorld: direct index for structure (layout( column_major std140 offset=64) uniform highp 4X4 matrix of float) -0:44 'uMatrix' (layout( binding=0 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float uWorld}) -0:44 Constant: -0:44 1 (const int) -0:44 'P' ( in highp 4-component vector of float) -0:? Linker Objects -0:? 'uColor' (layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3}) -0:? 'uBuffer' (layout( binding=1 column_major std430) buffer block{layout( column_major std430 offset=0) buffer highp 4X4 matrix of float p}) -0:? 'uMatrix' (layout( binding=0 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float uWorld}) -0:? 'anon@0' ( out block{ out highp 4-component vector of float v1, out highp 4-component vector of float v2}) -0:? 'P' ( in highp 4-component vector of float) - - -Linked vertex stage: - -WARNING: Linking vertex and vertex stages: Matched shader interfaces are using different instance names. - vertex stage: Block: ColorBlock Instance: uC: "" - vertex stage: Block: ColorBlock Instance: uColor: "" -WARNING: Linking vertex and vertex stages: Matched shader interfaces are using different instance names. - vertex stage: Block: BufferBlock Instance: uBuf: "" - vertex stage: Block: BufferBlock Instance: uBuffer: "" -WARNING: Linking vertex and vertex stages: Matched shader interfaces are using different instance names. - vertex stage: Block: MatrixBlock Instance: uM: "" - vertex stage: Block: MatrixBlock Instance: uMatrix: "" -WARNING: Linking vertex and vertex stages: Matched shader interfaces are using different instance names. - vertex stage: Block: Vertex Instance: oV: "" - vertex stage: Block: Vertex Instance: anon@0: "" - -Shader version: 430 -0:? Sequence -0:43 Function Definition: main( ( global void) -0:43 Function Parameters: -0:45 Sequence -0:45 move second child to first child ( temp highp 4-component vector of float) -0:45 'oColor' ( smooth out highp 4-component vector of float) -0:45 component-wise multiply ( temp highp 4-component vector of float) -0:45 component-wise multiply ( temp highp 4-component vector of float) -0:45 color1: direct index for structure (layout( column_major std140 offset=0) uniform highp 4-component vector of float) -0:45 'uC' (layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3}) -0:45 Constant: -0:45 0 (const int) -0:45 Function Call: getColor2( ( global highp 4-component vector of float) -0:45 c: direct index for structure (layout( column_major std430 offset=0) buffer highp 4-component vector of float) -0:45 'uColorBuf' (layout( binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer highp 4-component vector of float c}) -0:45 Constant: -0:45 0 (const int) -0:46 move second child to first child ( temp highp 4-component vector of float) -0:46 v1: direct index for structure ( out highp 4-component vector of float) -0:46 'oV' ( out block{ out highp 4-component vector of float v1, out highp 4-component vector of float v2}) -0:46 Constant: -0:46 0 (const int) -0:46 color1: direct index for structure (layout( column_major std140 offset=0) uniform highp 4-component vector of float) -0:46 'uC' (layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3}) -0:46 Constant: -0:46 0 (const int) -0:48 move second child to first child ( temp highp 4-component vector of float) -0:48 gl_Position: direct index for structure ( gl_Position highp 4-component vector of float Position) -0:48 '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}) -0:48 Constant: -0:48 0 (const uint) -0:48 matrix-times-vector ( temp highp 4-component vector of float) -0:48 uProj: direct index for structure (layout( column_major std140 offset=0) uniform highp 4X4 matrix of float) -0:48 'uM' (layout( binding=0 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float uWorld}) -0:48 Constant: -0:48 0 (const int) -0:48 Function Call: getWorld( ( global highp 4-component vector of float) -0:36 Function Definition: getColor2( ( global highp 4-component vector of float) -0:36 Function Parameters: -0:38 Sequence -0:38 Branch: Return with expression -0:38 color2: direct index for structure (layout( column_major std140 offset=32) uniform highp 4-component vector of float) -0:38 'uColor' (layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3}) -0:38 Constant: -0:38 2 (const int) -0:41 Function Definition: getWorld( ( global highp 4-component vector of float) -0:41 Function Parameters: -0:43 Sequence -0:43 move second child to first child ( temp highp 4-component vector of float) -0:43 v1: direct index for structure ( out highp 4-component vector of float) -0:43 'anon@0' ( out block{ out highp 4-component vector of float v1, out highp 4-component vector of float v2}) -0:43 Constant: -0:43 0 (const uint) -0:43 Constant: -0:43 1.000000 -0:43 1.000000 -0:43 1.000000 -0:43 1.000000 -0:44 Branch: Return with expression -0:44 matrix-times-vector ( temp highp 4-component vector of float) -0:44 uWorld: direct index for structure (layout( column_major std140 offset=64) uniform highp 4X4 matrix of float) -0:44 'uMatrix' (layout( binding=0 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float uWorld}) -0:44 Constant: -0:44 1 (const int) -0:44 'P' ( in highp 4-component vector of float) -0:? Linker Objects -0:? 'uM' (layout( binding=0 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float uWorld}) -0:? 'oV' ( out block{ out highp 4-component vector of float v1, out highp 4-component vector of float v2}) -0:? 'uC' (layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3}) -0:? 'uBuf' (layout( binding=1 column_major std430) buffer block{layout( column_major std430 offset=0) buffer highp 4X4 matrix of float p}) -0:? 'uColorBuf' (layout( binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer highp 4-component vector of float c}) -0:? 'oColor' ( smooth out highp 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 1-element array of float ClipDistance gl_ClipDistance}) -0:? 'P' ( in highp 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 73 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 14 34 42 65 - Source GLSL 430 - Name 4 "main" - Name 9 "getColor2(" - Name 11 "getWorld(" - Name 14 "oColor" - Name 16 "ColorBlock" - MemberName 16(ColorBlock) 0 "color1" - MemberName 16(ColorBlock) 1 "b" - MemberName 16(ColorBlock) 2 "color2" - MemberName 16(ColorBlock) 3 "color3" - Name 18 "uC" - Name 26 "SecondaryColorBlock" - MemberName 26(SecondaryColorBlock) 0 "c" - Name 28 "uColorBuf" - Name 32 "Vertex" - MemberName 32(Vertex) 0 "v1" - MemberName 32(Vertex) 1 "v2" - Name 34 "oV" - Name 40 "gl_PerVertex" - MemberName 40(gl_PerVertex) 0 "gl_Position" - MemberName 40(gl_PerVertex) 1 "gl_PointSize" - MemberName 40(gl_PerVertex) 2 "gl_ClipDistance" - Name 42 "" - Name 44 "MatrixBlock" - MemberName 44(MatrixBlock) 0 "uProj" - MemberName 44(MatrixBlock) 1 "uWorld" - Name 46 "uM" - Name 65 "P" - Name 70 "BufferBlock" - MemberName 70(BufferBlock) 0 "p" - Name 72 "uBuf" - Decorate 14(oColor) Location 2 - MemberDecorate 16(ColorBlock) 0 Offset 0 - MemberDecorate 16(ColorBlock) 1 Offset 16 - MemberDecorate 16(ColorBlock) 2 Offset 32 - MemberDecorate 16(ColorBlock) 3 Offset 48 - Decorate 16(ColorBlock) Block - Decorate 18(uC) DescriptorSet 0 - Decorate 18(uC) Binding 1 - MemberDecorate 26(SecondaryColorBlock) 0 Offset 0 - Decorate 26(SecondaryColorBlock) BufferBlock - Decorate 28(uColorBuf) DescriptorSet 0 - Decorate 28(uColorBuf) Binding 0 - Decorate 32(Vertex) Block - Decorate 34(oV) Location 0 - MemberDecorate 40(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 40(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 40(gl_PerVertex) 2 BuiltIn ClipDistance - Decorate 40(gl_PerVertex) Block - MemberDecorate 44(MatrixBlock) 0 ColMajor - MemberDecorate 44(MatrixBlock) 0 Offset 0 - MemberDecorate 44(MatrixBlock) 0 MatrixStride 16 - MemberDecorate 44(MatrixBlock) 1 ColMajor - MemberDecorate 44(MatrixBlock) 1 Offset 64 - MemberDecorate 44(MatrixBlock) 1 MatrixStride 16 - Decorate 44(MatrixBlock) Block - Decorate 46(uM) DescriptorSet 0 - Decorate 46(uM) Binding 0 - Decorate 65(P) Location 0 - MemberDecorate 70(BufferBlock) 0 ColMajor - MemberDecorate 70(BufferBlock) 0 Offset 0 - MemberDecorate 70(BufferBlock) 0 MatrixStride 16 - Decorate 70(BufferBlock) BufferBlock - Decorate 72(uBuf) DescriptorSet 0 - Decorate 72(uBuf) Binding 1 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 13: TypePointer Output 7(fvec4) - 14(oColor): 13(ptr) Variable Output - 15: TypeInt 32 0 - 16(ColorBlock): TypeStruct 7(fvec4) 15(int) 7(fvec4) 7(fvec4) - 17: TypePointer Uniform 16(ColorBlock) - 18(uC): 17(ptr) Variable Uniform - 19: TypeInt 32 1 - 20: 19(int) Constant 0 - 21: TypePointer Uniform 7(fvec4) -26(SecondaryColorBlock): TypeStruct 7(fvec4) - 27: TypePointer Uniform 26(SecondaryColorBlock) - 28(uColorBuf): 27(ptr) Variable Uniform - 32(Vertex): TypeStruct 7(fvec4) 7(fvec4) - 33: TypePointer Output 32(Vertex) - 34(oV): 33(ptr) Variable Output - 38: 15(int) Constant 1 - 39: TypeArray 6(float) 38 -40(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 39 - 41: TypePointer Output 40(gl_PerVertex) - 42: 41(ptr) Variable Output - 43: TypeMatrix 7(fvec4) 4 - 44(MatrixBlock): TypeStruct 43 43 - 45: TypePointer Uniform 44(MatrixBlock) - 46(uM): 45(ptr) Variable Uniform - 47: TypePointer Uniform 43 - 53: 19(int) Constant 2 - 58: 6(float) Constant 1065353216 - 59: 7(fvec4) ConstantComposite 58 58 58 58 - 61: 19(int) Constant 1 - 64: TypePointer Input 7(fvec4) - 65(P): 64(ptr) Variable Input - 70(BufferBlock): TypeStruct 43 - 71: TypePointer Uniform 70(BufferBlock) - 72(uBuf): 71(ptr) Variable Uniform - 4(main): 2 Function None 3 - 5: Label - 22: 21(ptr) AccessChain 18(uC) 20 - 23: 7(fvec4) Load 22 - 24: 7(fvec4) FunctionCall 9(getColor2() - 25: 7(fvec4) FMul 23 24 - 29: 21(ptr) AccessChain 28(uColorBuf) 20 - 30: 7(fvec4) Load 29 - 31: 7(fvec4) FMul 25 30 - Store 14(oColor) 31 - 35: 21(ptr) AccessChain 18(uC) 20 - 36: 7(fvec4) Load 35 - 37: 13(ptr) AccessChain 34(oV) 20 - Store 37 36 - 48: 47(ptr) AccessChain 46(uM) 20 - 49: 43 Load 48 - 50: 7(fvec4) FunctionCall 11(getWorld() - 51: 7(fvec4) MatrixTimesVector 49 50 - 52: 13(ptr) AccessChain 42 20 - Store 52 51 - Return - FunctionEnd - 9(getColor2(): 7(fvec4) Function None 8 - 10: Label - 54: 21(ptr) AccessChain 18(uC) 53 - 55: 7(fvec4) Load 54 - ReturnValue 55 - FunctionEnd - 11(getWorld(): 7(fvec4) Function None 8 - 12: Label - 60: 13(ptr) AccessChain 34(oV) 20 - Store 60 59 - 62: 47(ptr) AccessChain 46(uM) 61 - 63: 43 Load 62 - 66: 7(fvec4) Load 65(P) - 67: 7(fvec4) MatrixTimesVector 63 66 - ReturnValue 67 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/link.vk.multiBlocksValid.1.0.geom.out b/deps/glslang/Test/baseResults/link.vk.multiBlocksValid.1.0.geom.out deleted file mode 100644 index 4005f601..00000000 --- a/deps/glslang/Test/baseResults/link.vk.multiBlocksValid.1.0.geom.out +++ /dev/null @@ -1,460 +0,0 @@ -link.vk.multiBlocksValid.1.0.geom -Shader version: 430 -invocations = -1 -max_vertices = 3 -input primitive = triangles -output primitive = triangle_strip -0:? Sequence -0:48 Function Definition: main( ( global void) -0:48 Function Parameters: -0:50 Sequence -0:50 move second child to first child ( temp highp 4-component vector of float) -0:50 'oColor' (layout( stream=0) out highp 4-component vector of float) -0:50 component-wise multiply ( temp highp 4-component vector of float) -0:50 color1: direct index for structure (layout( column_major std140 offset=0) uniform highp 4-component vector of float) -0:50 'uC' (layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3}) -0:50 Constant: -0:50 0 (const int) -0:50 Function Call: getColor2( ( global highp 4-component vector of float) -0:52 move second child to first child ( temp highp float) -0:52 'globalF' ( global highp float) -0:52 Constant: -0:52 1.000000 -0:54 Sequence -0:54 Sequence -0:54 move second child to first child ( temp highp int) -0:54 'i' ( temp highp 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 highp int) -0:54 Constant: -0:54 3 (const int) -0:54 Loop Body -0:56 Sequence -0:56 move second child to first child ( temp highp 4-component vector of float) -0:56 gl_Position: direct index for structure (layout( stream=0) gl_Position highp 4-component vector of float Position) -0:56 'anon@0' (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 1-element array of float ClipDistance gl_ClipDistance}) -0:56 Constant: -0:56 0 (const uint) -0:56 matrix-times-vector ( temp highp 4-component vector of float) -0:56 uProj: direct index for structure (layout( column_major std140 offset=0) uniform highp 4X4 matrix of float) -0:56 'uM' (layout( binding=0 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float uWorld}) -0:56 Constant: -0:56 0 (const int) -0:56 Function Call: getWorld(i1; ( global highp 4-component vector of float) -0:56 'i' ( temp highp int) -0:57 move second child to first child ( temp highp 4-component vector of float) -0:57 val1: direct index for structure (layout( stream=0) out highp 4-component vector of float) -0:57 'oV' (layout( stream=0) out block{layout( stream=0) out highp 4-component vector of float val1}) -0:57 Constant: -0:57 0 (const int) -0:57 add ( temp highp 4-component vector of float) -0:57 color1: direct index for structure (layout( column_major std140 offset=0) uniform highp 4-component vector of float) -0:57 'uC' (layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3}) -0:57 Constant: -0:57 0 (const int) -0:57 vector-scale ( temp highp 4-component vector of float) -0:57 v2: direct index for structure ( in highp 4-component vector of float) -0:57 indirect index ( temp block{ in highp 4-component vector of float v1, in highp 4-component vector of float v2}) -0:57 'iV' ( in 3-element array of block{ in highp 4-component vector of float v1, in highp 4-component vector of float v2}) -0:57 'i' ( temp highp int) -0:57 Constant: -0:57 1 (const int) -0:57 'globalF' ( global highp float) -0:58 EmitVertex ( global void) -0:54 Loop Terminal Expression -0:54 Post-Increment ( temp highp int) -0:54 'i' ( temp highp int) -0:61 EndPrimitive ( global void) -0:? Linker Objects -0:? 'uM' (layout( binding=0 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float uWorld}) -0:? 'iV' ( in 3-element array of block{ in highp 4-component vector of float v1, in highp 4-component vector of float v2}) -0:? 'oV' (layout( stream=0) out block{layout( stream=0) out highp 4-component vector of float val1}) -0:? 'uC' (layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3}) -0:? 'uBuf' (layout( binding=1 column_major std430) buffer block{layout( column_major std430 offset=0) buffer highp 4X4 matrix of float p}) -0:? 'oColor' (layout( stream=0) out highp 4-component vector of float) -0:? 'globalF' ( global highp float) -0:? 'anon@0' (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 1-element array of float ClipDistance gl_ClipDistance}) - -link.vk.multiBlocksValid.1.1.geom -Shader version: 430 -invocations = -1 -max_vertices = 3 -input primitive = triangles -output primitive = triangle_strip -0:? Sequence -0:44 Function Definition: getColor2( ( global highp 4-component vector of float) -0:44 Function Parameters: -0:46 Sequence -0:46 Branch: Return with expression -0:46 color2: direct index for structure (layout( column_major std140 offset=32) uniform highp 4-component vector of float) -0:46 'uColor' (layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3}) -0:46 Constant: -0:46 2 (const int) -0:49 Function Definition: getWorld(i1; ( global highp 4-component vector of float) -0:49 Function Parameters: -0:49 'i' ( in highp int) -0:51 Sequence -0:51 move second child to first child ( temp highp 4-component vector of float) -0:51 val1: direct index for structure (layout( stream=0) out highp 4-component vector of float) -0:51 'anon@0' (layout( stream=0) out block{layout( stream=0) out highp 4-component vector of float val1}) -0:51 Constant: -0:51 0 (const uint) -0:51 Constant: -0:51 1.000000 -0:51 1.000000 -0:51 1.000000 -0:51 1.000000 -0:52 Branch: Return with expression -0:52 matrix-times-vector ( temp highp 4-component vector of float) -0:52 uWorld: direct index for structure (layout( column_major std140 offset=64) uniform highp 4X4 matrix of float) -0:52 'uMatrix' (layout( binding=0 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float uWorld}) -0:52 Constant: -0:52 1 (const int) -0:52 v1: direct index for structure ( in highp 4-component vector of float) -0:52 indirect index ( temp block{ in highp 4-component vector of float v1, in highp 4-component vector of float v2}) -0:52 'iVV' ( in 3-element array of block{ in highp 4-component vector of float v1, in highp 4-component vector of float v2}) -0:52 'i' ( in highp int) -0:52 Constant: -0:52 0 (const int) -0:? Linker Objects -0:? 'uColor' (layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3}) -0:? 'uBuffer' (layout( binding=1 column_major std430) buffer block{layout( column_major std430 offset=0) buffer highp 4X4 matrix of float p}) -0:? 'uMatrix' (layout( binding=0 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float uWorld}) -0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) out highp 4-component vector of float val1}) -0:? 'iVV' ( in 3-element array of block{ in highp 4-component vector of float v1, in highp 4-component vector of float v2}) -0:? 'P' ( in 3-element array of highp 4-component vector of float) - - -Linked geometry stage: - -WARNING: Linking geometry and geometry stages: Matched shader interfaces are using different instance names. - geometry stage: Block: ColorBlock Instance: uC: "" - geometry stage: Block: ColorBlock Instance: uColor: "" -WARNING: Linking geometry and geometry stages: Matched shader interfaces are using different instance names. - geometry stage: Block: BufferBlock Instance: uBuf: "" - geometry stage: Block: BufferBlock Instance: uBuffer: "" -WARNING: Linking geometry and geometry stages: Matched shader interfaces are using different instance names. - geometry stage: Block: MatrixBlock Instance: uM: "" - geometry stage: Block: MatrixBlock Instance: uMatrix: "" -WARNING: Linking geometry and geometry stages: Matched shader interfaces are using different instance names. - geometry stage: Block: Vertex Instance: oV: "" - geometry stage: Block: Vertex Instance: anon@0: "" -WARNING: Linking geometry and geometry stages: Matched shader interfaces are using different instance names. - geometry stage: Block: Vertex Instance: iV: "" - geometry stage: Block: Vertex Instance: iVV: "" - -Shader version: 430 -invocations = 1 -max_vertices = 3 -input primitive = triangles -output primitive = triangle_strip -0:? Sequence -0:48 Function Definition: main( ( global void) -0:48 Function Parameters: -0:50 Sequence -0:50 move second child to first child ( temp highp 4-component vector of float) -0:50 'oColor' (layout( stream=0) out highp 4-component vector of float) -0:50 component-wise multiply ( temp highp 4-component vector of float) -0:50 color1: direct index for structure (layout( column_major std140 offset=0) uniform highp 4-component vector of float) -0:50 'uC' (layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3}) -0:50 Constant: -0:50 0 (const int) -0:50 Function Call: getColor2( ( global highp 4-component vector of float) -0:52 move second child to first child ( temp highp float) -0:52 'globalF' ( global highp float) -0:52 Constant: -0:52 1.000000 -0:54 Sequence -0:54 Sequence -0:54 move second child to first child ( temp highp int) -0:54 'i' ( temp highp 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 highp int) -0:54 Constant: -0:54 3 (const int) -0:54 Loop Body -0:56 Sequence -0:56 move second child to first child ( temp highp 4-component vector of float) -0:56 gl_Position: direct index for structure (layout( stream=0) gl_Position highp 4-component vector of float Position) -0:56 'anon@0' (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 1-element array of float ClipDistance gl_ClipDistance}) -0:56 Constant: -0:56 0 (const uint) -0:56 matrix-times-vector ( temp highp 4-component vector of float) -0:56 uProj: direct index for structure (layout( column_major std140 offset=0) uniform highp 4X4 matrix of float) -0:56 'uM' (layout( binding=0 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float uWorld}) -0:56 Constant: -0:56 0 (const int) -0:56 Function Call: getWorld(i1; ( global highp 4-component vector of float) -0:56 'i' ( temp highp int) -0:57 move second child to first child ( temp highp 4-component vector of float) -0:57 val1: direct index for structure (layout( stream=0) out highp 4-component vector of float) -0:57 'oV' (layout( stream=0) out block{layout( stream=0) out highp 4-component vector of float val1}) -0:57 Constant: -0:57 0 (const int) -0:57 add ( temp highp 4-component vector of float) -0:57 color1: direct index for structure (layout( column_major std140 offset=0) uniform highp 4-component vector of float) -0:57 'uC' (layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3}) -0:57 Constant: -0:57 0 (const int) -0:57 vector-scale ( temp highp 4-component vector of float) -0:57 v2: direct index for structure ( in highp 4-component vector of float) -0:57 indirect index ( temp block{ in highp 4-component vector of float v1, in highp 4-component vector of float v2}) -0:57 'iV' ( in 3-element array of block{ in highp 4-component vector of float v1, in highp 4-component vector of float v2}) -0:57 'i' ( temp highp int) -0:57 Constant: -0:57 1 (const int) -0:57 'globalF' ( global highp float) -0:58 EmitVertex ( global void) -0:54 Loop Terminal Expression -0:54 Post-Increment ( temp highp int) -0:54 'i' ( temp highp int) -0:61 EndPrimitive ( global void) -0:44 Function Definition: getColor2( ( global highp 4-component vector of float) -0:44 Function Parameters: -0:46 Sequence -0:46 Branch: Return with expression -0:46 color2: direct index for structure (layout( column_major std140 offset=32) uniform highp 4-component vector of float) -0:46 'uColor' (layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3}) -0:46 Constant: -0:46 2 (const int) -0:49 Function Definition: getWorld(i1; ( global highp 4-component vector of float) -0:49 Function Parameters: -0:49 'i' ( in highp int) -0:51 Sequence -0:51 move second child to first child ( temp highp 4-component vector of float) -0:51 val1: direct index for structure (layout( stream=0) out highp 4-component vector of float) -0:51 'anon@0' (layout( stream=0) out block{layout( stream=0) out highp 4-component vector of float val1}) -0:51 Constant: -0:51 0 (const uint) -0:51 Constant: -0:51 1.000000 -0:51 1.000000 -0:51 1.000000 -0:51 1.000000 -0:52 Branch: Return with expression -0:52 matrix-times-vector ( temp highp 4-component vector of float) -0:52 uWorld: direct index for structure (layout( column_major std140 offset=64) uniform highp 4X4 matrix of float) -0:52 'uMatrix' (layout( binding=0 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float uWorld}) -0:52 Constant: -0:52 1 (const int) -0:52 v1: direct index for structure ( in highp 4-component vector of float) -0:52 indirect index ( temp block{ in highp 4-component vector of float v1, in highp 4-component vector of float v2}) -0:52 'iVV' ( in 3-element array of block{ in highp 4-component vector of float v1, in highp 4-component vector of float v2}) -0:52 'i' ( in highp int) -0:52 Constant: -0:52 0 (const int) -0:? Linker Objects -0:? 'uM' (layout( binding=0 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float uWorld}) -0:? 'iV' ( in 3-element array of block{ in highp 4-component vector of float v1, in highp 4-component vector of float v2}) -0:? 'oV' (layout( stream=0) out block{layout( stream=0) out highp 4-component vector of float val1}) -0:? 'uC' (layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3}) -0:? 'uBuf' (layout( binding=1 column_major std430) buffer block{layout( column_major std430 offset=0) buffer highp 4X4 matrix of float p}) -0:? 'oColor' (layout( stream=0) out highp 4-component vector of float) -0:? 'globalF' ( global highp float) -0:? 'anon@0' (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 1-element array of float ClipDistance gl_ClipDistance}) -0:? 'P' ( in 3-element array of highp 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 101 - - Capability Geometry - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Geometry 4 "main" 18 46 61 68 100 - ExecutionMode 4 Triangles - ExecutionMode 4 Invocations 1 - ExecutionMode 4 OutputTriangleStrip - ExecutionMode 4 OutputVertices 3 - Source GLSL 430 - Name 4 "main" - Name 9 "getColor2(" - Name 15 "getWorld(i1;" - Name 14 "i" - Name 18 "oColor" - Name 20 "ColorBlock" - MemberName 20(ColorBlock) 0 "color1" - MemberName 20(ColorBlock) 1 "b" - MemberName 20(ColorBlock) 2 "color2" - MemberName 20(ColorBlock) 3 "color3" - Name 22 "uC" - Name 30 "globalF" - Name 32 "i" - Name 44 "gl_PerVertex" - MemberName 44(gl_PerVertex) 0 "gl_Position" - MemberName 44(gl_PerVertex) 1 "gl_PointSize" - MemberName 44(gl_PerVertex) 2 "gl_ClipDistance" - Name 46 "" - Name 48 "MatrixBlock" - MemberName 48(MatrixBlock) 0 "uProj" - MemberName 48(MatrixBlock) 1 "uWorld" - Name 50 "uM" - Name 54 "param" - Name 59 "Vertex" - MemberName 59(Vertex) 0 "val1" - Name 61 "oV" - Name 64 "Vertex" - MemberName 64(Vertex) 0 "v1" - MemberName 64(Vertex) 1 "v2" - Name 68 "iV" - Name 95 "BufferBlock" - MemberName 95(BufferBlock) 0 "p" - Name 97 "uBuf" - Name 100 "P" - Decorate 18(oColor) Location 1 - MemberDecorate 20(ColorBlock) 0 Offset 0 - MemberDecorate 20(ColorBlock) 1 Offset 16 - MemberDecorate 20(ColorBlock) 2 Offset 32 - MemberDecorate 20(ColorBlock) 3 Offset 48 - Decorate 20(ColorBlock) Block - Decorate 22(uC) DescriptorSet 0 - Decorate 22(uC) Binding 1 - MemberDecorate 44(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 44(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 44(gl_PerVertex) 2 BuiltIn ClipDistance - Decorate 44(gl_PerVertex) Block - MemberDecorate 48(MatrixBlock) 0 ColMajor - MemberDecorate 48(MatrixBlock) 0 Offset 0 - MemberDecorate 48(MatrixBlock) 0 MatrixStride 16 - MemberDecorate 48(MatrixBlock) 1 ColMajor - MemberDecorate 48(MatrixBlock) 1 Offset 64 - MemberDecorate 48(MatrixBlock) 1 MatrixStride 16 - Decorate 48(MatrixBlock) Block - Decorate 50(uM) DescriptorSet 0 - Decorate 50(uM) Binding 0 - Decorate 59(Vertex) Block - Decorate 61(oV) Location 0 - Decorate 64(Vertex) Block - Decorate 68(iV) Location 0 - MemberDecorate 95(BufferBlock) 0 ColMajor - MemberDecorate 95(BufferBlock) 0 Offset 0 - MemberDecorate 95(BufferBlock) 0 MatrixStride 16 - Decorate 95(BufferBlock) BufferBlock - Decorate 97(uBuf) DescriptorSet 0 - Decorate 97(uBuf) Binding 1 - Decorate 100(P) Location 2 - 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) - 13: TypeFunction 7(fvec4) 12(ptr) - 17: TypePointer Output 7(fvec4) - 18(oColor): 17(ptr) Variable Output - 19: TypeInt 32 0 - 20(ColorBlock): TypeStruct 7(fvec4) 19(int) 7(fvec4) 7(fvec4) - 21: TypePointer Uniform 20(ColorBlock) - 22(uC): 21(ptr) Variable Uniform - 23: 11(int) Constant 0 - 24: TypePointer Uniform 7(fvec4) - 29: TypePointer Private 6(float) - 30(globalF): 29(ptr) Variable Private - 31: 6(float) Constant 1065353216 - 39: 11(int) Constant 3 - 40: TypeBool - 42: 19(int) Constant 1 - 43: TypeArray 6(float) 42 -44(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 43 - 45: TypePointer Output 44(gl_PerVertex) - 46: 45(ptr) Variable Output - 47: TypeMatrix 7(fvec4) 4 - 48(MatrixBlock): TypeStruct 47 47 - 49: TypePointer Uniform 48(MatrixBlock) - 50(uM): 49(ptr) Variable Uniform - 51: TypePointer Uniform 47 - 59(Vertex): TypeStruct 7(fvec4) - 60: TypePointer Output 59(Vertex) - 61(oV): 60(ptr) Variable Output - 64(Vertex): TypeStruct 7(fvec4) 7(fvec4) - 65: 19(int) Constant 3 - 66: TypeArray 64(Vertex) 65 - 67: TypePointer Input 66 - 68(iV): 67(ptr) Variable Input - 70: 11(int) Constant 1 - 71: TypePointer Input 7(fvec4) - 80: 11(int) Constant 2 - 85: 7(fvec4) ConstantComposite 31 31 31 31 - 95(BufferBlock): TypeStruct 47 - 96: TypePointer Uniform 95(BufferBlock) - 97(uBuf): 96(ptr) Variable Uniform - 98: TypeArray 7(fvec4) 65 - 99: TypePointer Input 98 - 100(P): 99(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 32(i): 12(ptr) Variable Function - 54(param): 12(ptr) Variable Function - 25: 24(ptr) AccessChain 22(uC) 23 - 26: 7(fvec4) Load 25 - 27: 7(fvec4) FunctionCall 9(getColor2() - 28: 7(fvec4) FMul 26 27 - Store 18(oColor) 28 - Store 30(globalF) 31 - Store 32(i) 23 - Branch 33 - 33: Label - LoopMerge 35 36 None - Branch 37 - 37: Label - 38: 11(int) Load 32(i) - 41: 40(bool) SLessThan 38 39 - BranchConditional 41 34 35 - 34: Label - 52: 51(ptr) AccessChain 50(uM) 23 - 53: 47 Load 52 - 55: 11(int) Load 32(i) - Store 54(param) 55 - 56: 7(fvec4) FunctionCall 15(getWorld(i1;) 54(param) - 57: 7(fvec4) MatrixTimesVector 53 56 - 58: 17(ptr) AccessChain 46 23 - Store 58 57 - 62: 24(ptr) AccessChain 22(uC) 23 - 63: 7(fvec4) Load 62 - 69: 11(int) Load 32(i) - 72: 71(ptr) AccessChain 68(iV) 69 70 - 73: 7(fvec4) Load 72 - 74: 6(float) Load 30(globalF) - 75: 7(fvec4) VectorTimesScalar 73 74 - 76: 7(fvec4) FAdd 63 75 - 77: 17(ptr) AccessChain 61(oV) 23 - Store 77 76 - EmitVertex - Branch 36 - 36: Label - 78: 11(int) Load 32(i) - 79: 11(int) IAdd 78 70 - Store 32(i) 79 - Branch 33 - 35: Label - EndPrimitive - Return - FunctionEnd - 9(getColor2(): 7(fvec4) Function None 8 - 10: Label - 81: 24(ptr) AccessChain 22(uC) 80 - 82: 7(fvec4) Load 81 - ReturnValue 82 - FunctionEnd -15(getWorld(i1;): 7(fvec4) Function None 13 - 14(i): 12(ptr) FunctionParameter - 16: Label - 86: 17(ptr) AccessChain 61(oV) 23 - Store 86 85 - 87: 51(ptr) AccessChain 50(uM) 70 - 88: 47 Load 87 - 89: 11(int) Load 14(i) - 90: 71(ptr) AccessChain 68(iV) 89 23 - 91: 7(fvec4) Load 90 - 92: 7(fvec4) MatrixTimesVector 88 91 - ReturnValue 92 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/link.vk.pcNamingInvalid.0.0.vert.out b/deps/glslang/Test/baseResults/link.vk.pcNamingInvalid.0.0.vert.out deleted file mode 100644 index 45f6a397..00000000 --- a/deps/glslang/Test/baseResults/link.vk.pcNamingInvalid.0.0.vert.out +++ /dev/null @@ -1,111 +0,0 @@ -link.vk.pcNamingInvalid.0.0.vert -Shader version: 450 -0:? Sequence -0:16 Function Definition: main( ( global void) -0:16 Function Parameters: -0:18 Sequence -0:18 move second child to first child ( temp highp 4-component vector of float) -0:18 'oColor' ( smooth out highp 4-component vector of float) -0:18 component-wise multiply ( temp highp 4-component vector of float) -0:18 color1: direct index for structure (layout( column_major std430 offset=128) uniform highp 4-component vector of float) -0:18 'a' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4X4 matrix of float uWorld, layout( column_major std430 offset=64) uniform highp 4X4 matrix of float uProj, layout( column_major std430 offset=128) uniform highp 4-component vector of float color1, layout( column_major std430 offset=144) uniform highp 4-component vector of float color2}) -0:18 Constant: -0:18 2 (const int) -0:18 Function Call: getColor2( ( 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: direct index for structure ( gl_Position highp 4-component vector of float Position) -0:20 '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, out unsized 1-element array of float CullDistance gl_CullDistance}) -0:20 Constant: -0:20 0 (const uint) -0:20 matrix-times-vector ( temp highp 4-component vector of float) -0:20 uProj: direct index for structure (layout( column_major std430 offset=64) uniform highp 4X4 matrix of float) -0:20 'a' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4X4 matrix of float uWorld, layout( column_major std430 offset=64) uniform highp 4X4 matrix of float uProj, layout( column_major std430 offset=128) uniform highp 4-component vector of float color1, layout( column_major std430 offset=144) uniform highp 4-component vector of float color2}) -0:20 Constant: -0:20 1 (const int) -0:20 Function Call: getWorld( ( global highp 4-component vector of float) -0:? Linker Objects -0:? 'a' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4X4 matrix of float uWorld, layout( column_major std430 offset=64) uniform highp 4X4 matrix of float uProj, layout( column_major std430 offset=128) uniform highp 4-component vector of float color1, layout( column_major std430 offset=144) uniform highp 4-component vector of float color2}) -0:? 'oColor' ( smooth out highp 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 1-element array of float ClipDistance gl_ClipDistance, out unsized 1-element array of float CullDistance gl_CullDistance}) - -link.vk.pcNamingInvalid.0.1.vert -Shader version: 450 -0:? Sequence -0:13 Function Definition: getColor2( ( global highp 4-component vector of float) -0:13 Function Parameters: -0:15 Sequence -0:15 Branch: Return with expression -0:15 color2: direct index for structure (layout( column_major std430 offset=144) uniform highp 4-component vector of float) -0:15 'a' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4X4 matrix of float uWorld, layout( column_major std430 offset=64) uniform highp 4X4 matrix of float uProj, layout( column_major std430 offset=128) uniform highp 4-component vector of float color1, layout( column_major std430 offset=144) uniform highp 4-component vector of float color2}) -0:15 Constant: -0:15 3 (const int) -0:18 Function Definition: getWorld( ( global highp 4-component vector of float) -0:18 Function Parameters: -0:20 Sequence -0:20 Branch: Return with expression -0:20 matrix-times-vector ( temp highp 4-component vector of float) -0:20 uWorld: direct index for structure (layout( column_major std430 offset=0) uniform highp 4X4 matrix of float) -0:20 'a' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4X4 matrix of float uWorld, layout( column_major std430 offset=64) uniform highp 4X4 matrix of float uProj, layout( column_major std430 offset=128) uniform highp 4-component vector of float color1, layout( column_major std430 offset=144) uniform highp 4-component vector of float color2}) -0:20 Constant: -0:20 0 (const int) -0:20 'P' ( in highp 4-component vector of float) -0:? Linker Objects -0:? 'a' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4X4 matrix of float uWorld, layout( column_major std430 offset=64) uniform highp 4X4 matrix of float uProj, layout( column_major std430 offset=128) uniform highp 4-component vector of float color1, layout( column_major std430 offset=144) uniform highp 4-component vector of float color2}) -0:? 'P' ( in highp 4-component vector of float) - - -Linked vertex stage: - -ERROR: Linking vertex stage: Only one push_constant block is allowed per stage - -Shader version: 450 -0:? Sequence -0:16 Function Definition: main( ( global void) -0:16 Function Parameters: -0:18 Sequence -0:18 move second child to first child ( temp highp 4-component vector of float) -0:18 'oColor' ( smooth out highp 4-component vector of float) -0:18 component-wise multiply ( temp highp 4-component vector of float) -0:18 color1: direct index for structure (layout( column_major std430 offset=128) uniform highp 4-component vector of float) -0:18 'a' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4X4 matrix of float uWorld, layout( column_major std430 offset=64) uniform highp 4X4 matrix of float uProj, layout( column_major std430 offset=128) uniform highp 4-component vector of float color1, layout( column_major std430 offset=144) uniform highp 4-component vector of float color2}) -0:18 Constant: -0:18 2 (const int) -0:18 Function Call: getColor2( ( 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: direct index for structure ( gl_Position highp 4-component vector of float Position) -0:20 '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, out 1-element array of float CullDistance gl_CullDistance}) -0:20 Constant: -0:20 0 (const uint) -0:20 matrix-times-vector ( temp highp 4-component vector of float) -0:20 uProj: direct index for structure (layout( column_major std430 offset=64) uniform highp 4X4 matrix of float) -0:20 'a' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4X4 matrix of float uWorld, layout( column_major std430 offset=64) uniform highp 4X4 matrix of float uProj, layout( column_major std430 offset=128) uniform highp 4-component vector of float color1, layout( column_major std430 offset=144) uniform highp 4-component vector of float color2}) -0:20 Constant: -0:20 1 (const int) -0:20 Function Call: getWorld( ( global highp 4-component vector of float) -0:13 Function Definition: getColor2( ( global highp 4-component vector of float) -0:13 Function Parameters: -0:15 Sequence -0:15 Branch: Return with expression -0:15 color2: direct index for structure (layout( column_major std430 offset=144) uniform highp 4-component vector of float) -0:15 'a' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4X4 matrix of float uWorld, layout( column_major std430 offset=64) uniform highp 4X4 matrix of float uProj, layout( column_major std430 offset=128) uniform highp 4-component vector of float color1, layout( column_major std430 offset=144) uniform highp 4-component vector of float color2}) -0:15 Constant: -0:15 3 (const int) -0:18 Function Definition: getWorld( ( global highp 4-component vector of float) -0:18 Function Parameters: -0:20 Sequence -0:20 Branch: Return with expression -0:20 matrix-times-vector ( temp highp 4-component vector of float) -0:20 uWorld: direct index for structure (layout( column_major std430 offset=0) uniform highp 4X4 matrix of float) -0:20 'a' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4X4 matrix of float uWorld, layout( column_major std430 offset=64) uniform highp 4X4 matrix of float uProj, layout( column_major std430 offset=128) uniform highp 4-component vector of float color1, layout( column_major std430 offset=144) uniform highp 4-component vector of float color2}) -0:20 Constant: -0:20 0 (const int) -0:20 'P' ( in highp 4-component vector of float) -0:? Linker Objects -0:? 'a' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4X4 matrix of float uWorld, layout( column_major std430 offset=64) uniform highp 4X4 matrix of float uProj, layout( column_major std430 offset=128) uniform highp 4-component vector of float color1, layout( column_major std430 offset=144) uniform highp 4-component vector of float color2}) -0:? 'oColor' ( smooth out highp 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 1-element array of float ClipDistance gl_ClipDistance, out 1-element array of float CullDistance gl_CullDistance}) -0:? 'a' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4X4 matrix of float uWorld, layout( column_major std430 offset=64) uniform highp 4X4 matrix of float uProj, layout( column_major std430 offset=128) uniform highp 4-component vector of float color1, layout( column_major std430 offset=144) uniform highp 4-component vector of float color2}) -0:? 'P' ( in highp 4-component vector of float) - -Validation failed -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/link.vk.pcNamingValid.0.0.vert.out b/deps/glslang/Test/baseResults/link.vk.pcNamingValid.0.0.vert.out deleted file mode 100644 index f84877e0..00000000 --- a/deps/glslang/Test/baseResults/link.vk.pcNamingValid.0.0.vert.out +++ /dev/null @@ -1,207 +0,0 @@ -link.vk.pcNamingValid.0.0.vert -Shader version: 450 -0:? Sequence -0:16 Function Definition: main( ( global void) -0:16 Function Parameters: -0:18 Sequence -0:18 move second child to first child ( temp highp 4-component vector of float) -0:18 'oColor' (layout( location=0) smooth out highp 4-component vector of float) -0:18 component-wise multiply ( temp highp 4-component vector of float) -0:18 color1: direct index for structure (layout( column_major std430 offset=128) uniform highp 4-component vector of float) -0:18 'a' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4X4 matrix of float uWorld, layout( column_major std430 offset=64) uniform highp 4X4 matrix of float uProj, layout( column_major std430 offset=128) uniform highp 4-component vector of float color1, layout( column_major std430 offset=144) uniform highp 4-component vector of float color2}) -0:18 Constant: -0:18 2 (const int) -0:18 Function Call: getColor2( ( 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: direct index for structure ( gl_Position highp 4-component vector of float Position) -0:20 '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, out unsized 1-element array of float CullDistance gl_CullDistance}) -0:20 Constant: -0:20 0 (const uint) -0:20 matrix-times-vector ( temp highp 4-component vector of float) -0:20 uProj: direct index for structure (layout( column_major std430 offset=64) uniform highp 4X4 matrix of float) -0:20 'a' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4X4 matrix of float uWorld, layout( column_major std430 offset=64) uniform highp 4X4 matrix of float uProj, layout( column_major std430 offset=128) uniform highp 4-component vector of float color1, layout( column_major std430 offset=144) uniform highp 4-component vector of float color2}) -0:20 Constant: -0:20 1 (const int) -0:20 Function Call: getWorld( ( global highp 4-component vector of float) -0:? Linker Objects -0:? 'a' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4X4 matrix of float uWorld, layout( column_major std430 offset=64) uniform highp 4X4 matrix of float uProj, layout( column_major std430 offset=128) uniform highp 4-component vector of float color1, layout( column_major std430 offset=144) uniform highp 4-component vector of float color2}) -0:? 'oColor' (layout( location=0) smooth out highp 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 1-element array of float ClipDistance gl_ClipDistance, out unsized 1-element array of float CullDistance gl_CullDistance}) - -link.vk.pcNamingValid.0.1.vert -Shader version: 450 -0:? Sequence -0:13 Function Definition: getColor2( ( global highp 4-component vector of float) -0:13 Function Parameters: -0:15 Sequence -0:15 Branch: Return with expression -0:15 color2: direct index for structure (layout( column_major std430 offset=144) uniform highp 4-component vector of float) -0:15 'b' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4X4 matrix of float uWorld, layout( column_major std430 offset=64) uniform highp 4X4 matrix of float uProj, layout( column_major std430 offset=128) uniform highp 4-component vector of float color1, layout( column_major std430 offset=144) uniform highp 4-component vector of float color2}) -0:15 Constant: -0:15 3 (const int) -0:18 Function Definition: getWorld( ( global highp 4-component vector of float) -0:18 Function Parameters: -0:20 Sequence -0:20 Branch: Return with expression -0:20 matrix-times-vector ( temp highp 4-component vector of float) -0:20 uWorld: direct index for structure (layout( column_major std430 offset=0) uniform highp 4X4 matrix of float) -0:20 'b' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4X4 matrix of float uWorld, layout( column_major std430 offset=64) uniform highp 4X4 matrix of float uProj, layout( column_major std430 offset=128) uniform highp 4-component vector of float color1, layout( column_major std430 offset=144) uniform highp 4-component vector of float color2}) -0:20 Constant: -0:20 0 (const int) -0:20 'P' (layout( location=0) in highp 4-component vector of float) -0:? Linker Objects -0:? 'b' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4X4 matrix of float uWorld, layout( column_major std430 offset=64) uniform highp 4X4 matrix of float uProj, layout( column_major std430 offset=128) uniform highp 4-component vector of float color1, layout( column_major std430 offset=144) uniform highp 4-component vector of float color2}) -0:? 'P' (layout( location=0) in highp 4-component vector of float) - - -Linked vertex stage: - -WARNING: Linking vertex and vertex stages: Matched shader interfaces are using different instance names. - vertex stage: Block: PCBlock Instance: a: "" - vertex stage: Block: PCBlock Instance: b: "" - -Shader version: 450 -0:? Sequence -0:16 Function Definition: main( ( global void) -0:16 Function Parameters: -0:18 Sequence -0:18 move second child to first child ( temp highp 4-component vector of float) -0:18 'oColor' (layout( location=0) smooth out highp 4-component vector of float) -0:18 component-wise multiply ( temp highp 4-component vector of float) -0:18 color1: direct index for structure (layout( column_major std430 offset=128) uniform highp 4-component vector of float) -0:18 'a' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4X4 matrix of float uWorld, layout( column_major std430 offset=64) uniform highp 4X4 matrix of float uProj, layout( column_major std430 offset=128) uniform highp 4-component vector of float color1, layout( column_major std430 offset=144) uniform highp 4-component vector of float color2}) -0:18 Constant: -0:18 2 (const int) -0:18 Function Call: getColor2( ( 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: direct index for structure ( gl_Position highp 4-component vector of float Position) -0:20 '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, out 1-element array of float CullDistance gl_CullDistance}) -0:20 Constant: -0:20 0 (const uint) -0:20 matrix-times-vector ( temp highp 4-component vector of float) -0:20 uProj: direct index for structure (layout( column_major std430 offset=64) uniform highp 4X4 matrix of float) -0:20 'a' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4X4 matrix of float uWorld, layout( column_major std430 offset=64) uniform highp 4X4 matrix of float uProj, layout( column_major std430 offset=128) uniform highp 4-component vector of float color1, layout( column_major std430 offset=144) uniform highp 4-component vector of float color2}) -0:20 Constant: -0:20 1 (const int) -0:20 Function Call: getWorld( ( global highp 4-component vector of float) -0:13 Function Definition: getColor2( ( global highp 4-component vector of float) -0:13 Function Parameters: -0:15 Sequence -0:15 Branch: Return with expression -0:15 color2: direct index for structure (layout( column_major std430 offset=144) uniform highp 4-component vector of float) -0:15 'b' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4X4 matrix of float uWorld, layout( column_major std430 offset=64) uniform highp 4X4 matrix of float uProj, layout( column_major std430 offset=128) uniform highp 4-component vector of float color1, layout( column_major std430 offset=144) uniform highp 4-component vector of float color2}) -0:15 Constant: -0:15 3 (const int) -0:18 Function Definition: getWorld( ( global highp 4-component vector of float) -0:18 Function Parameters: -0:20 Sequence -0:20 Branch: Return with expression -0:20 matrix-times-vector ( temp highp 4-component vector of float) -0:20 uWorld: direct index for structure (layout( column_major std430 offset=0) uniform highp 4X4 matrix of float) -0:20 'b' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4X4 matrix of float uWorld, layout( column_major std430 offset=64) uniform highp 4X4 matrix of float uProj, layout( column_major std430 offset=128) uniform highp 4-component vector of float color1, layout( column_major std430 offset=144) uniform highp 4-component vector of float color2}) -0:20 Constant: -0:20 0 (const int) -0:20 'P' (layout( location=0) in highp 4-component vector of float) -0:? Linker Objects -0:? 'a' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4X4 matrix of float uWorld, layout( column_major std430 offset=64) uniform highp 4X4 matrix of float uProj, layout( column_major std430 offset=128) uniform highp 4-component vector of float color1, layout( column_major std430 offset=144) uniform highp 4-component vector of float color2}) -0:? 'oColor' (layout( location=0) smooth out highp 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 1-element array of float ClipDistance gl_ClipDistance, out 1-element array of float CullDistance gl_CullDistance}) -0:? 'P' (layout( location=0) in highp 4-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 53 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 14 31 48 - Source GLSL 450 - Name 4 "main" - Name 9 "getColor2(" - Name 11 "getWorld(" - Name 14 "oColor" - Name 16 "PCBlock" - MemberName 16(PCBlock) 0 "uWorld" - MemberName 16(PCBlock) 1 "uProj" - MemberName 16(PCBlock) 2 "color1" - MemberName 16(PCBlock) 3 "color2" - Name 18 "a" - Name 29 "gl_PerVertex" - MemberName 29(gl_PerVertex) 0 "gl_Position" - MemberName 29(gl_PerVertex) 1 "gl_PointSize" - MemberName 29(gl_PerVertex) 2 "gl_ClipDistance" - MemberName 29(gl_PerVertex) 3 "gl_CullDistance" - Name 31 "" - Name 48 "P" - Decorate 14(oColor) Location 0 - MemberDecorate 16(PCBlock) 0 ColMajor - MemberDecorate 16(PCBlock) 0 Offset 0 - MemberDecorate 16(PCBlock) 0 MatrixStride 16 - MemberDecorate 16(PCBlock) 1 ColMajor - MemberDecorate 16(PCBlock) 1 Offset 64 - MemberDecorate 16(PCBlock) 1 MatrixStride 16 - MemberDecorate 16(PCBlock) 2 Offset 128 - MemberDecorate 16(PCBlock) 3 Offset 144 - Decorate 16(PCBlock) Block - MemberDecorate 29(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 29(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 29(gl_PerVertex) 2 BuiltIn ClipDistance - MemberDecorate 29(gl_PerVertex) 3 BuiltIn CullDistance - Decorate 29(gl_PerVertex) Block - Decorate 48(P) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 13: TypePointer Output 7(fvec4) - 14(oColor): 13(ptr) Variable Output - 15: TypeMatrix 7(fvec4) 4 - 16(PCBlock): TypeStruct 15 15 7(fvec4) 7(fvec4) - 17: TypePointer PushConstant 16(PCBlock) - 18(a): 17(ptr) Variable PushConstant - 19: TypeInt 32 1 - 20: 19(int) Constant 2 - 21: TypePointer PushConstant 7(fvec4) - 26: TypeInt 32 0 - 27: 26(int) Constant 1 - 28: TypeArray 6(float) 27 -29(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 28 28 - 30: TypePointer Output 29(gl_PerVertex) - 31: 30(ptr) Variable Output - 32: 19(int) Constant 0 - 33: 19(int) Constant 1 - 34: TypePointer PushConstant 15 - 40: 19(int) Constant 3 - 47: TypePointer Input 7(fvec4) - 48(P): 47(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 22: 21(ptr) AccessChain 18(a) 20 - 23: 7(fvec4) Load 22 - 24: 7(fvec4) FunctionCall 9(getColor2() - 25: 7(fvec4) FMul 23 24 - Store 14(oColor) 25 - 35: 34(ptr) AccessChain 18(a) 33 - 36: 15 Load 35 - 37: 7(fvec4) FunctionCall 11(getWorld() - 38: 7(fvec4) MatrixTimesVector 36 37 - 39: 13(ptr) AccessChain 31 32 - Store 39 38 - Return - FunctionEnd - 9(getColor2(): 7(fvec4) Function None 8 - 10: Label - 41: 21(ptr) AccessChain 18(a) 40 - 42: 7(fvec4) Load 41 - ReturnValue 42 - FunctionEnd - 11(getWorld(): 7(fvec4) Function None 8 - 12: Label - 45: 34(ptr) AccessChain 18(a) 32 - 46: 15 Load 45 - 49: 7(fvec4) Load 48(P) - 50: 7(fvec4) MatrixTimesVector 46 49 - ReturnValue 50 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/link1.frag.out b/deps/glslang/Test/baseResults/link1.frag.out deleted file mode 100644 index 2ea63ad5..00000000 --- a/deps/glslang/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/Test/baseResults/link1.vk.frag.out b/deps/glslang/Test/baseResults/link1.vk.frag.out deleted file mode 100644 index fa1d48ec..00000000 --- a/deps/glslang/Test/baseResults/link1.vk.frag.out +++ /dev/null @@ -1,316 +0,0 @@ -link1.vk.frag -Shader version: 450 -gl_FragCoord origin is upper left -0:? Sequence -0:16 Function Definition: main( ( global void) -0:16 Function Parameters: -0:18 Sequence -0:18 move second child to first child ( temp highp 4-component vector of float) -0:18 'color' (layout( location=0) out highp 4-component vector of float) -0:18 Function Call: getColor( ( global highp 4-component vector of float) -0:20 move second child to first child ( temp highp int) -0:20 direct index ( temp highp int) -0:20 'a1' ( global unsized 9-element array of highp int) -0:20 Constant: -0:20 8 (const int) -0:20 Constant: -0:20 1 (const int) -0:21 move second child to first child ( temp highp int) -0:21 direct index ( temp highp int) -0:21 'a2' ( global unsized 2-element array of highp int) -0:21 Constant: -0:21 1 (const int) -0:21 Constant: -0:21 1 (const int) -0:22 move second child to first child ( temp highp int) -0:22 indirect index ( temp highp int) -0:22 'b' ( global 5-element array of highp int) -0:22 'i' ( global highp int) -0:22 Constant: -0:22 1 (const int) -0:23 move second child to first child ( temp highp int) -0:23 direct index ( temp highp int) -0:23 'c' ( global unsized 4-element array of highp int) -0:23 Constant: -0:23 3 (const int) -0:23 Constant: -0:23 1 (const int) -0:? Linker Objects -0:? 'color' (layout( location=0) out highp 4-component vector of float) -0:? 'a1' ( global unsized 9-element array of highp int) -0:? 'a2' ( global unsized 2-element array of highp int) -0:? 'b' ( global 5-element array of highp int) -0:? 'c' ( global unsized 4-element array of highp int) -0:? 'i' ( global highp int) -0:? 'anon@0' (layout( binding=0 column_major std430) buffer block{layout( column_major std430) buffer unsized 1-element array of highp float r}) -0:? 'anon@1' (layout( binding=1 column_major std430) buffer block{layout( column_major std430) buffer unsized 1-element array of highp float m}) - -link2.vk.frag -Shader version: 450 -gl_FragCoord origin is upper left -0:? Sequence -0:14 Function Definition: getColor( ( global highp 4-component vector of float) -0:14 Function Parameters: -0:16 Sequence -0:16 move second child to first child ( temp highp int) -0:16 direct index ( temp highp int) -0:16 'a1' ( global unsized 3-element array of highp int) -0:16 Constant: -0:16 2 (const int) -0:16 Constant: -0:16 1 (const int) -0:17 move second child to first child ( temp highp int) -0:17 direct index ( temp highp int) -0:17 'a2' ( global unsized 10-element array of highp int) -0:17 Constant: -0:17 9 (const int) -0:17 Constant: -0:17 1 (const int) -0:18 move second child to first child ( temp highp int) -0:18 direct index ( temp highp int) -0:18 'b' ( global unsized 3-element array of highp int) -0:18 Constant: -0:18 2 (const int) -0:18 Constant: -0:18 1 (const int) -0:19 move second child to first child ( temp highp int) -0:19 direct index ( temp highp int) -0:19 'c' ( global 7-element array of highp int) -0:19 Constant: -0:19 3 (const int) -0:19 Constant: -0:19 1 (const int) -0:20 move second child to first child ( temp highp int) -0:20 indirect index ( temp highp int) -0:20 'c' ( global 7-element array of highp int) -0:20 'i' ( global highp int) -0:20 Constant: -0:20 1 (const int) -0:22 Branch: Return with expression -0:22 texture ( global highp 4-component vector of float) -0:22 's2D' (layout( binding=1) uniform highp sampler2D) -0:22 Constant: -0:22 0.500000 -0:22 0.500000 -0:? Linker Objects -0:? 's2D' (layout( binding=1) uniform highp sampler2D) -0:? 'a1' ( global unsized 3-element array of highp int) -0:? 'a2' ( global unsized 10-element array of highp int) -0:? 'b' ( global unsized 3-element array of highp int) -0:? 'c' ( global 7-element array of highp int) -0:? 'i' ( global highp int) -0:? 'anon@0' (layout( binding=0 column_major std430) buffer block{layout( column_major std430) buffer unsized 1-element array of highp float r}) -0:? 'anon@1' (layout( binding=1 column_major std430) buffer block{layout( column_major std430) buffer 4-element array of highp float m}) - - -Linked fragment stage: - - -Shader version: 450 -gl_FragCoord origin is upper left -0:? Sequence -0:16 Function Definition: main( ( global void) -0:16 Function Parameters: -0:18 Sequence -0:18 move second child to first child ( temp highp 4-component vector of float) -0:18 'color' (layout( location=0) out highp 4-component vector of float) -0:18 Function Call: getColor( ( global highp 4-component vector of float) -0:20 move second child to first child ( temp highp int) -0:20 direct index ( temp highp int) -0:20 'a1' ( global 9-element array of highp int) -0:20 Constant: -0:20 8 (const int) -0:20 Constant: -0:20 1 (const int) -0:21 move second child to first child ( temp highp int) -0:21 direct index ( temp highp int) -0:21 'a2' ( global 10-element array of highp int) -0:21 Constant: -0:21 1 (const int) -0:21 Constant: -0:21 1 (const int) -0:22 move second child to first child ( temp highp int) -0:22 indirect index ( temp highp int) -0:22 'b' ( global 5-element array of highp int) -0:22 'i' ( global highp int) -0:22 Constant: -0:22 1 (const int) -0:23 move second child to first child ( temp highp int) -0:23 direct index ( temp highp int) -0:23 'c' ( global 7-element array of highp int) -0:23 Constant: -0:23 3 (const int) -0:23 Constant: -0:23 1 (const int) -0:14 Function Definition: getColor( ( global highp 4-component vector of float) -0:14 Function Parameters: -0:16 Sequence -0:16 move second child to first child ( temp highp int) -0:16 direct index ( temp highp int) -0:16 'a1' ( global 3-element array of highp int) -0:16 Constant: -0:16 2 (const int) -0:16 Constant: -0:16 1 (const int) -0:17 move second child to first child ( temp highp int) -0:17 direct index ( temp highp int) -0:17 'a2' ( global 10-element array of highp int) -0:17 Constant: -0:17 9 (const int) -0:17 Constant: -0:17 1 (const int) -0:18 move second child to first child ( temp highp int) -0:18 direct index ( temp highp int) -0:18 'b' ( global 3-element array of highp int) -0:18 Constant: -0:18 2 (const int) -0:18 Constant: -0:18 1 (const int) -0:19 move second child to first child ( temp highp int) -0:19 direct index ( temp highp int) -0:19 'c' ( global 7-element array of highp int) -0:19 Constant: -0:19 3 (const int) -0:19 Constant: -0:19 1 (const int) -0:20 move second child to first child ( temp highp int) -0:20 indirect index ( temp highp int) -0:20 'c' ( global 7-element array of highp int) -0:20 'i' ( global highp int) -0:20 Constant: -0:20 1 (const int) -0:22 Branch: Return with expression -0:22 texture ( global highp 4-component vector of float) -0:22 's2D' (layout( binding=1) uniform highp sampler2D) -0:22 Constant: -0:22 0.500000 -0:22 0.500000 -0:? Linker Objects -0:? 'color' (layout( location=0) out highp 4-component vector of float) -0:? 'a1' ( global 9-element array of highp int) -0:? 'a2' ( global 10-element array of highp int) -0:? 'b' ( global 5-element array of highp int) -0:? 'c' ( global 7-element array of highp int) -0:? 'i' ( global highp int) -0:? 'anon@0' (layout( binding=0 column_major std430) buffer block{layout( column_major std430) buffer unsized 1-element array of highp float r}) -0:? 'anon@1' (layout( binding=1 column_major std430) buffer block{layout( column_major std430) buffer 4-element array of highp float m}) -0:? 's2D' (layout( binding=1) uniform highp sampler2D) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 70 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 12 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - Name 4 "main" - Name 9 "getColor(" - Name 12 "color" - Name 19 "a1" - Name 27 "a2" - Name 32 "b" - Name 33 "i" - Name 39 "c" - Name 53 "s2D" - Name 62 "bnameRuntime" - MemberName 62(bnameRuntime) 0 "r" - Name 64 "" - Name 67 "bnameImplicit" - MemberName 67(bnameImplicit) 0 "m" - Name 69 "" - Decorate 12(color) Location 0 - Decorate 53(s2D) DescriptorSet 0 - Decorate 53(s2D) Binding 1 - Decorate 61 ArrayStride 4 - MemberDecorate 62(bnameRuntime) 0 Offset 0 - Decorate 62(bnameRuntime) BufferBlock - Decorate 64 DescriptorSet 0 - Decorate 64 Binding 0 - Decorate 66 ArrayStride 4 - MemberDecorate 67(bnameImplicit) 0 Offset 0 - Decorate 67(bnameImplicit) BufferBlock - Decorate 69 DescriptorSet 0 - Decorate 69 Binding 1 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 11: TypePointer Output 7(fvec4) - 12(color): 11(ptr) Variable Output - 14: TypeInt 32 1 - 15: TypeInt 32 0 - 16: 15(int) Constant 9 - 17: TypeArray 14(int) 16 - 18: TypePointer Private 17 - 19(a1): 18(ptr) Variable Private - 20: 14(int) Constant 8 - 21: 14(int) Constant 1 - 22: TypePointer Private 14(int) - 24: 15(int) Constant 10 - 25: TypeArray 14(int) 24 - 26: TypePointer Private 25 - 27(a2): 26(ptr) Variable Private - 29: 15(int) Constant 5 - 30: TypeArray 14(int) 29 - 31: TypePointer Private 30 - 32(b): 31(ptr) Variable Private - 33(i): 22(ptr) Variable Private - 36: 15(int) Constant 7 - 37: TypeArray 14(int) 36 - 38: TypePointer Private 37 - 39(c): 38(ptr) Variable Private - 40: 14(int) Constant 3 - 42: 14(int) Constant 2 - 44: 14(int) Constant 9 - 50: TypeImage 6(float) 2D sampled format:Unknown - 51: TypeSampledImage 50 - 52: TypePointer UniformConstant 51 - 53(s2D): 52(ptr) Variable UniformConstant - 55: TypeVector 6(float) 2 - 56: 6(float) Constant 1056964608 - 57: 55(fvec2) ConstantComposite 56 56 - 61: TypeRuntimeArray 6(float) -62(bnameRuntime): TypeStruct 61 - 63: TypePointer Uniform 62(bnameRuntime) - 64: 63(ptr) Variable Uniform - 65: 15(int) Constant 4 - 66: TypeArray 6(float) 65 -67(bnameImplicit): TypeStruct 66 - 68: TypePointer Uniform 67(bnameImplicit) - 69: 68(ptr) Variable Uniform - 4(main): 2 Function None 3 - 5: Label - 13: 7(fvec4) FunctionCall 9(getColor() - Store 12(color) 13 - 23: 22(ptr) AccessChain 19(a1) 20 - Store 23 21 - 28: 22(ptr) AccessChain 27(a2) 21 - Store 28 21 - 34: 14(int) Load 33(i) - 35: 22(ptr) AccessChain 32(b) 34 - Store 35 21 - 41: 22(ptr) AccessChain 39(c) 40 - Store 41 21 - Return - FunctionEnd - 9(getColor(): 7(fvec4) Function None 8 - 10: Label - 43: 22(ptr) AccessChain 19(a1) 42 - Store 43 21 - 45: 22(ptr) AccessChain 27(a2) 44 - Store 45 21 - 46: 22(ptr) AccessChain 32(b) 42 - Store 46 21 - 47: 22(ptr) AccessChain 39(c) 40 - Store 47 21 - 48: 14(int) Load 33(i) - 49: 22(ptr) AccessChain 39(c) 48 - Store 49 21 - 54: 51 Load 53(s2D) - 58: 7(fvec4) ImageSampleImplicitLod 54 57 - ReturnValue 58 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/localAggregates.frag.out b/deps/glslang/Test/baseResults/localAggregates.frag.out deleted file mode 100644 index ca445bcc..00000000 --- a/deps/glslang/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/Test/baseResults/loops.frag.out b/deps/glslang/Test/baseResults/loops.frag.out deleted file mode 100644 index cf382995..00000000 --- a/deps/glslang/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/Test/baseResults/loopsArtificial.frag.out b/deps/glslang/Test/baseResults/loopsArtificial.frag.out deleted file mode 100644 index 0bb61c9a..00000000 --- a/deps/glslang/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/Test/baseResults/mains1.frag.out b/deps/glslang/Test/baseResults/mains1.frag.out deleted file mode 100644 index 3b318b62..00000000 --- a/deps/glslang/Test/baseResults/mains1.frag.out +++ /dev/null @@ -1,69 +0,0 @@ -mains1.frag -Shader version: 110 -0:? Sequence -0:3 Function Definition: main( ( global void) -0:3 Function Parameters: -0:? Linker Objects - -mains2.frag -Shader version: 110 -0:? Sequence -0:3 Function Definition: main( ( global void) -0:3 Function Parameters: -0:? Linker Objects - -noMain1.geom -ERROR: #version: geometry shaders require es profile with version 310 or non-es profile with version 150 or above -ERROR: 1 compilation errors. No code generated. - - -Shader version: 150 -invocations = -1 -max_vertices = -1 -input primitive = none -output primitive = points -ERROR: node is still EOpNull! -0:3 Function Definition: foo( ( global void) -0:3 Function Parameters: -0:? Linker Objects - -noMain2.geom -Shader version: 150 -invocations = -1 -max_vertices = -1 -input primitive = none -output primitive = line_strip -0:? Sequence -0:3 Function Definition: bar( ( global void) -0:3 Function Parameters: -0:? Linker Objects - - -Linked geometry stage: - -ERROR: Linking geometry stage: Contradictory output layout primitives -ERROR: Linking geometry stage: Missing entry point: Each stage requires one entry point -ERROR: Linking geometry stage: At least one shader must specify an input layout primitive -ERROR: Linking geometry stage: At least one shader must specify a layout(max_vertices = value) - -Linked fragment stage: - -ERROR: Linking fragment stage: can't handle multiple entry points per stage -ERROR: Linking fragment stage: Multiple function bodies in multiple compilation units for the same signature in the same stage: - main( - -Shader version: 150 -invocations = 1 -max_vertices = -1 -input primitive = none -output primitive = points -ERROR: node is still EOpNull! -0:? Linker Objects -Shader version: 110 -0:? Sequence -0:3 Function Definition: main( ( global void) -0:3 Function Parameters: -0:3 Function Definition: main( ( global void) -0:3 Function Parameters: -0:? Linker Objects - diff --git a/deps/glslang/Test/baseResults/matrix.frag.out b/deps/glslang/Test/baseResults/matrix.frag.out deleted file mode 100644 index 5fd4eb67..00000000 --- a/deps/glslang/Test/baseResults/matrix.frag.out +++ /dev/null @@ -1,567 +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:56 Sequence -0:56 move second child to first child ( temp 4X2 matrix of float) -0:56 'm42' ( temp 4X2 matrix of float) -0:56 Constant: -0:56 42.000000 -0:56 0.000000 -0:56 0.000000 -0:56 42.000000 -0:56 0.000000 -0:56 0.000000 -0:56 0.000000 -0:56 0.000000 -0:57 Test condition and select ( temp void) -0:57 Condition -0:57 Compare Equal ( temp bool) -0:57 'm42' ( temp 4X2 matrix of float) -0:57 Constant: -0:57 42.000000 -0:57 0.000000 -0:57 0.000000 -0:57 42.000000 -0:57 0.000000 -0:57 0.000000 -0:57 0.000000 -0:57 0.000000 -0:57 true case -0:58 Sequence -0:58 add second child into first child ( temp 4-component vector of float) -0:58 'gl_FragColor' ( fragColor 4-component vector of float FragColor) -0:58 '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:56 Sequence -0:56 move second child to first child ( temp 4X2 matrix of float) -0:56 'm42' ( temp 4X2 matrix of float) -0:56 Constant: -0:56 42.000000 -0:56 0.000000 -0:56 0.000000 -0:56 42.000000 -0:56 0.000000 -0:56 0.000000 -0:56 0.000000 -0:56 0.000000 -0:57 Test condition and select ( temp void) -0:57 Condition -0:57 Compare Equal ( temp bool) -0:57 'm42' ( temp 4X2 matrix of float) -0:57 Constant: -0:57 42.000000 -0:57 0.000000 -0:57 0.000000 -0:57 42.000000 -0:57 0.000000 -0:57 0.000000 -0:57 0.000000 -0:57 0.000000 -0:57 true case -0:58 Sequence -0:58 add second child into first child ( temp 4-component vector of float) -0:58 'gl_FragColor' ( fragColor 4-component vector of float FragColor) -0:58 '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/Test/baseResults/matrix2.frag.out b/deps/glslang/Test/baseResults/matrix2.frag.out deleted file mode 100644 index 3e3b3f06..00000000 --- a/deps/glslang/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/Test/baseResults/matrixError.vert.out b/deps/glslang/Test/baseResults/matrixError.vert.out deleted file mode 100644 index 0a0d1e40..00000000 --- a/deps/glslang/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/Test/baseResults/maxClipDistances.vert.out b/deps/glslang/Test/baseResults/maxClipDistances.vert.out deleted file mode 100644 index 8086d524..00000000 --- a/deps/glslang/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/Test/baseResults/max_vertices_0.geom.out b/deps/glslang/Test/baseResults/max_vertices_0.geom.out deleted file mode 100644 index d3bb4eee..00000000 --- a/deps/glslang/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/Test/baseResults/missingBodies.vert.out b/deps/glslang/Test/baseResults/missingBodies.vert.out deleted file mode 100644 index 3a9a99f6..00000000 --- a/deps/glslang/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/Test/baseResults/mixedArrayDecls.frag.out b/deps/glslang/Test/baseResults/mixedArrayDecls.frag.out deleted file mode 100644 index 598b8281..00000000 --- a/deps/glslang/Test/baseResults/mixedArrayDecls.frag.out +++ /dev/null @@ -1,68 +0,0 @@ -mixedArrayDecls.frag -ERROR: 0:30: '' : syntax error, unexpected LEFT_PAREN, expecting COMMA or SEMICOLON -ERROR: 1 compilation errors. No code generated. - - -Shader version: 450 -ERROR: node is still EOpNull! -0:16 Function Definition: foo(i1[14][15][6]; ( global 14-element array of 15-element array of 6-element array of int) -0:16 Function Parameters: -0:16 'p' ( in 14-element array of 15-element array of 6-element array of int) -0:16 Sequence -0:16 Branch: Return with expression -0:16 'p' ( in 14-element array of 15-element array of 6-element array of int) -0:18 Function Definition: main( ( global void) -0:18 Function Parameters: -0:20 Sequence -0:20 direct index ( temp 14-element array of int) -0:20 'g' ( global unsized 4-element array of 14-element array of int) -0:20 Constant: -0:20 3 (const int) -0:21 direct index ( temp 14-element array of int) -0:21 'h' ( global unsized 3-element array of 14-element array of int) -0:21 Constant: -0:21 2 (const int) -0:24 Function Definition: bar( ( global 4-element array of 3-element array of 2-element array of float) -0:24 Function Parameters: -0:? Sequence -0:24 Branch: Return with expression -0:24 'a' ( temp 4-element array of 3-element array of 2-element array of float) -0:? Linker Objects -0:? 's' ( global structure{ global 2-element array of 3-element array of int a, global 5-element array of 3-element array of int b}) -0:? 'c' ( global 4-element array of 5-element array of int) -0:? 'd' ( global 8-element array of 5-element array of int) -0:? 'e' ( global 11-element array of 9-element array of int) -0:? 'f' ( global 13-element array of 9-element array of int) -0:? 'g' ( global unsized 4-element array of 14-element array of int) -0:? 'h' ( global unsized 3-element array of 14-element array of int) -0:? 'inbinst' ( in 4-element array of 5-element array of 6-element array of block{ in 8-element array of 9-element array of 7-element array of float f}) -0:? 'barm' ( global 4-element array of 3-element array of 2-element array of float) - - -Linked fragment stage: - - -Shader version: 450 -ERROR: node is still EOpNull! -0:18 Function Definition: main( ( global void) -0:18 Function Parameters: -0:20 Sequence -0:20 direct index ( temp 14-element array of int) -0:20 'g' ( global 4-element array of 14-element array of int) -0:20 Constant: -0:20 3 (const int) -0:21 direct index ( temp 14-element array of int) -0:21 'h' ( global 3-element array of 14-element array of int) -0:21 Constant: -0:21 2 (const int) -0:? Linker Objects -0:? 's' ( global structure{ global 2-element array of 3-element array of int a, global 5-element array of 3-element array of int b}) -0:? 'c' ( global 4-element array of 5-element array of int) -0:? 'd' ( global 8-element array of 5-element array of int) -0:? 'e' ( global 11-element array of 9-element array of int) -0:? 'f' ( global 13-element array of 9-element array of int) -0:? 'g' ( global 4-element array of 14-element array of int) -0:? 'h' ( global 3-element array of 14-element array of int) -0:? 'inbinst' ( in 4-element array of 5-element array of 6-element array of block{ in 8-element array of 9-element array of 7-element array of float f}) -0:? 'barm' ( global 4-element array of 3-element array of 2-element array of float) - diff --git a/deps/glslang/Test/baseResults/negativeArraySize.comp.out b/deps/glslang/Test/baseResults/negativeArraySize.comp.out deleted file mode 100644 index 5ae83dca..00000000 --- a/deps/glslang/Test/baseResults/negativeArraySize.comp.out +++ /dev/null @@ -1,23 +0,0 @@ -negativeArraySize.comp -ERROR: 0:9: '' : array size must be a positive integer -ERROR: 1 compilation errors. No code generated. - - -Shader version: 310 -local_size = (1, 1, 1) -ERROR: node is still EOpNull! -0:7 Function Definition: main( ( global void) -0:7 Function Parameters: -0:? Linker Objects - - -Linked compute stage: - - -Shader version: 310 -local_size = (1, 1, 1) -ERROR: node is still EOpNull! -0:7 Function Definition: main( ( global void) -0:7 Function Parameters: -0:? Linker Objects - diff --git a/deps/glslang/Test/baseResults/negativeWorkGroupSize.comp.out b/deps/glslang/Test/baseResults/negativeWorkGroupSize.comp.out deleted file mode 100644 index 7ae37985..00000000 --- a/deps/glslang/Test/baseResults/negativeWorkGroupSize.comp.out +++ /dev/null @@ -1,69 +0,0 @@ -negativeWorkGroupSize.comp -ERROR: 0:4: 'initializer' : can't read from gl_WorkGroupSize before a fixed workgroup size has been declared -ERROR: 1 compilation errors. No code generated. - - -Shader version: 460 -local_size = (64, 1, 1) -ERROR: node is still EOpNull! -0:3 Function Definition: fn( ( global void) -0:3 Function Parameters: -0:4 Sequence -0:4 Sequence -0:4 move second child to first child ( temp 3-component vector of uint) -0:4 'wgs' ( temp 3-component vector of uint) -0:4 Constant: -0:4 1 (const uint) -0:4 1 (const uint) -0:4 1 (const uint) -0:9 Function Definition: main( ( global void) -0:9 Function Parameters: -0:10 Sequence -0:10 Function Call: fn( ( global void) -0:11 Sequence -0:11 move second child to first child ( temp 3-component vector of uint) -0:11 'wgs' ( temp 3-component vector of uint) -0:11 Constant: -0:11 64 (const uint) -0:11 1 (const uint) -0:11 1 (const uint) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize) -0:? 64 (const uint) -0:? 1 (const uint) -0:? 1 (const uint) - - -Linked compute stage: - - -Shader version: 460 -local_size = (64, 1, 1) -ERROR: node is still EOpNull! -0:3 Function Definition: fn( ( global void) -0:3 Function Parameters: -0:4 Sequence -0:4 Sequence -0:4 move second child to first child ( temp 3-component vector of uint) -0:4 'wgs' ( temp 3-component vector of uint) -0:4 Constant: -0:4 1 (const uint) -0:4 1 (const uint) -0:4 1 (const uint) -0:9 Function Definition: main( ( global void) -0:9 Function Parameters: -0:10 Sequence -0:10 Function Call: fn( ( global void) -0:11 Sequence -0:11 move second child to first child ( temp 3-component vector of uint) -0:11 'wgs' ( temp 3-component vector of uint) -0:11 Constant: -0:11 64 (const uint) -0:11 1 (const uint) -0:11 1 (const uint) -0:? Linker Objects -0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize) -0:? 64 (const uint) -0:? 1 (const uint) -0:? 1 (const uint) - diff --git a/deps/glslang/Test/baseResults/newTexture.frag.out b/deps/glslang/Test/baseResults/newTexture.frag.out deleted file mode 100644 index 52921e8f..00000000 --- a/deps/glslang/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/Test/baseResults/noMain.vert.out b/deps/glslang/Test/baseResults/noMain.vert.out deleted file mode 100644 index dd262438..00000000 --- a/deps/glslang/Test/baseResults/noMain.vert.out +++ /dev/null @@ -1,43 +0,0 @@ -noMain.vert -Shader version: 300 -0:? Sequence -0:3 Function Definition: foo( ( global void) -0:3 Function Parameters: -0:? Linker Objects -0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) - -mains.frag -ERROR: 0:7: 'main' : function already has a body -ERROR: 1 compilation errors. No code generated. - - -Shader version: 300 -ERROR: node is still EOpNull! -0:3 Function Definition: main( ( global void) -0:3 Function Parameters: -0:7 Function Definition: main( ( global void) -0:7 Function Parameters: -0:? Linker Objects - - -Linked vertex stage: - -ERROR: Linking vertex stage: Missing entry point: Each stage requires one entry point - -Linked fragment stage: - - -Shader version: 300 -0:? Sequence -0:? Linker Objects -0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) -Shader version: 300 -ERROR: node is still EOpNull! -0:3 Function Definition: main( ( global void) -0:3 Function Parameters: -0:7 Function Definition: main( ( global void) -0:7 Function Parameters: -0:? Linker Objects - diff --git a/deps/glslang/Test/baseResults/noMatchingFunction.frag.out b/deps/glslang/Test/baseResults/noMatchingFunction.frag.out deleted file mode 100644 index 85aa3f6c..00000000 --- a/deps/glslang/Test/baseResults/noMatchingFunction.frag.out +++ /dev/null @@ -1,52 +0,0 @@ -noMatchingFunction.frag -ERROR: 0:17: 'func' : no matching overloaded function found -ERROR: 1 compilation errors. No code generated. - - -Shader version: 330 -ERROR: node is still EOpNull! -0:8 Function Definition: func(struct-S-f11; ( global float) -0:8 Function Parameters: -0:8 's' ( in structure{ global float a}) -0:10 Sequence -0:10 Branch: Return with expression -0:10 a: direct index for structure ( global float) -0:10 's' ( in structure{ global float a}) -0:10 Constant: -0:10 0 (const int) -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 'c' ( temp float) -0:17 Constant: -0:17 0.000000 -0:18 move second child to first child ( temp 4-component vector of float) -0:18 'o_color' (layout( location=0) out 4-component vector of float) -0:18 Construct vec4 ( temp 4-component vector of float) -0:18 'c' ( temp float) -0:? Linker Objects -0:? 'o_color' (layout( location=0) out 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 330 -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 'c' ( temp float) -0:17 Constant: -0:17 0.000000 -0:18 move second child to first child ( temp 4-component vector of float) -0:18 'o_color' (layout( location=0) out 4-component vector of float) -0:18 Construct vec4 ( temp 4-component vector of float) -0:18 'c' ( temp float) -0:? Linker Objects -0:? 'o_color' (layout( location=0) out 4-component vector of float) - diff --git a/deps/glslang/Test/baseResults/nonSquare.vert.out b/deps/glslang/Test/baseResults/nonSquare.vert.out deleted file mode 100644 index aa8a8273..00000000 --- a/deps/glslang/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/Test/baseResults/nonVulkan.frag.out b/deps/glslang/Test/baseResults/nonVulkan.frag.out deleted file mode 100644 index 2b8b6a0c..00000000 --- a/deps/glslang/Test/baseResults/nonVulkan.frag.out +++ /dev/null @@ -1,29 +0,0 @@ -nonVulkan.frag -ERROR: 0:3: 'constant_id' : only allowed when generating SPIR-V -ERROR: 0:4: 'input_attachment_index' : only allowed when using GLSL for Vulkan -ERROR: 0:4: 'input_attachment_index' : can only be used with a subpass -ERROR: 0:5: 'push_constant' : only allowed when using GLSL for Vulkan -ERROR: 4 compilation errors. No code generated. - - -Shader version: 450 -ERROR: node is still EOpNull! -0:? Linker Objects -0:? 'arraySize' ( specialization-constant const int) -0:? 12 (const int) -0:? 'foo' ( temp int) -0:? 'ubi' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform int a}) - - -Linked fragment stage: - -ERROR: Linking fragment stage: Missing entry point: Each stage requires one entry point - -Shader version: 450 -ERROR: node is still EOpNull! -0:? Linker Objects -0:? 'arraySize' ( specialization-constant const int) -0:? 12 (const int) -0:? 'foo' ( temp int) -0:? 'ubi' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform int a}) - diff --git a/deps/glslang/Test/baseResults/nonuniform.frag.out b/deps/glslang/Test/baseResults/nonuniform.frag.out deleted file mode 100644 index 9054c2ca..00000000 --- a/deps/glslang/Test/baseResults/nonuniform.frag.out +++ /dev/null @@ -1,110 +0,0 @@ -nonuniform.frag -ERROR: 0:10: 'nonuniformEXT' : for non-parameter, can only apply to 'in' or no storage qualifier -ERROR: 0:11: 'nonuniformEXT' : for non-parameter, can only apply to 'in' or no storage qualifier -ERROR: 0:12: 'nonuniformEXT' : for non-parameter, can only apply to 'in' or no storage qualifier -ERROR: 0:22: 'nonuniformEXT' : for non-parameter, can only apply to 'in' or no storage qualifier -ERROR: 0:28: 'constructor' : too many arguments -ERROR: 0:28: 'assign' : cannot convert from ' const float' to ' nonuniform temp int' -ERROR: 0:29: 'constructor' : not enough data provided for construction -ERROR: 0:29: 'assign' : cannot convert from ' const float' to ' nonuniform temp int' -ERROR: 0:32: 'nonuniformEXT' : not allowed on block or structure members -ERROR: 0:33: 'nonuniformEXT' : not allowed on block or structure members -ERROR: 10 compilation errors. No code generated. - - -Shader version: 450 -Requested GL_EXT_nonuniform_qualifier -ERROR: node is still EOpNull! -0:14 Function Definition: foo(i1;i1; ( nonuniform temp int) -0:14 Function Parameters: -0:14 'nupi' ( nonuniform in int) -0:14 'f' ( nonuniform out int) -0:16 Sequence -0:16 Branch: Return with expression -0:16 'nupi' ( nonuniform in int) -0:19 Function Definition: main( ( global void) -0:19 Function Parameters: -0:? Sequence -0:24 Function Call: foo(i1;i1; ( nonuniform temp int) -0:24 'nu_li' ( nonuniform temp int) -0:24 'nu_li' ( nonuniform temp int) -0:27 move second child to first child ( temp int) -0:27 'nu_li' ( nonuniform temp int) -0:27 add ( nonuniform temp int) -0:27 copy object ( nonuniform temp int) -0:27 'a' ( temp int) -0:27 copy object ( nonuniform temp int) -0:27 component-wise multiply ( temp int) -0:27 'a' ( temp int) -0:27 Constant: -0:27 2 (const int) -0:28 'nu_li' ( nonuniform temp int) -0:29 'nu_li' ( nonuniform temp int) -0:30 move second child to first child ( temp int) -0:30 'nu_li' ( nonuniform temp int) -0:30 indirect index ( nonuniform temp int) -0:30 'table' ( temp 5-element array of int) -0:30 copy object ( nonuniform temp int) -0:30 Constant: -0:30 3 (const int) -0:? Linker Objects -0:? 'nonuniformEXT' ( global int) -0:? 'nu_inv4' ( smooth nonuniform in 4-component vector of float) -0:? 'nu_gf' ( nonuniform temp float) -0:? 'nu_outv4' ( nonuniform out 4-component vector of float) -0:? 'nu_uv4' ( nonuniform uniform 4-component vector of float) -0:? 'nu_constf' ( nonuniform const float) -0:? 1.000000 -0:? 'ins' (layout( location=1) smooth in structure{ global float a, temp float b}) -0:? 'inb' (layout( location=3) in block{ in float a, in float b}) - - -Linked fragment stage: - - -Shader version: 450 -Requested GL_EXT_nonuniform_qualifier -ERROR: node is still EOpNull! -0:14 Function Definition: foo(i1;i1; ( nonuniform temp int) -0:14 Function Parameters: -0:14 'nupi' ( nonuniform in int) -0:14 'f' ( nonuniform out int) -0:16 Sequence -0:16 Branch: Return with expression -0:16 'nupi' ( nonuniform in int) -0:19 Function Definition: main( ( global void) -0:19 Function Parameters: -0:? Sequence -0:24 Function Call: foo(i1;i1; ( nonuniform temp int) -0:24 'nu_li' ( nonuniform temp int) -0:24 'nu_li' ( nonuniform temp int) -0:27 move second child to first child ( temp int) -0:27 'nu_li' ( nonuniform temp int) -0:27 add ( nonuniform temp int) -0:27 copy object ( nonuniform temp int) -0:27 'a' ( temp int) -0:27 copy object ( nonuniform temp int) -0:27 component-wise multiply ( temp int) -0:27 'a' ( temp int) -0:27 Constant: -0:27 2 (const int) -0:28 'nu_li' ( nonuniform temp int) -0:29 'nu_li' ( nonuniform temp int) -0:30 move second child to first child ( temp int) -0:30 'nu_li' ( nonuniform temp int) -0:30 indirect index ( nonuniform temp int) -0:30 'table' ( temp 5-element array of int) -0:30 copy object ( nonuniform temp int) -0:30 Constant: -0:30 3 (const int) -0:? Linker Objects -0:? 'nonuniformEXT' ( global int) -0:? 'nu_inv4' ( smooth nonuniform in 4-component vector of float) -0:? 'nu_gf' ( nonuniform temp float) -0:? 'nu_outv4' ( nonuniform out 4-component vector of float) -0:? 'nu_uv4' ( nonuniform uniform 4-component vector of float) -0:? 'nu_constf' ( nonuniform const float) -0:? 1.000000 -0:? 'ins' (layout( location=1) smooth in structure{ global float a, temp float b}) -0:? 'inb' (layout( location=3) in block{ in float a, in float b}) - diff --git a/deps/glslang/Test/baseResults/nosuffix.out b/deps/glslang/Test/baseResults/nosuffix.out deleted file mode 100644 index d881c5b8..00000000 --- a/deps/glslang/Test/baseResults/nosuffix.out +++ /dev/null @@ -1,15 +0,0 @@ -nosuffix -Shader version: 100 -0:? Sequence -0:1 Function Definition: main( ( global void) -0:1 Function Parameters: -0:3 Sequence -0:3 move second child to first child ( temp highp 4-component vector of float) -0:3 'gl_Position' ( gl_Position highp 4-component vector of float Position) -0:3 Constant: -0:3 1.000000 -0:3 1.000000 -0:3 1.000000 -0:3 1.000000 -0:? Linker Objects - diff --git a/deps/glslang/Test/baseResults/numeral.frag.out b/deps/glslang/Test/baseResults/numeral.frag.out deleted file mode 100644 index e2a7c64c..00000000 --- a/deps/glslang/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 of file, 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/Test/baseResults/nvShaderNoperspectiveInterpolation.frag.out b/deps/glslang/Test/baseResults/nvShaderNoperspectiveInterpolation.frag.out deleted file mode 100644 index ae004c64..00000000 --- a/deps/glslang/Test/baseResults/nvShaderNoperspectiveInterpolation.frag.out +++ /dev/null @@ -1,38 +0,0 @@ -nvShaderNoperspectiveInterpolation.frag -ERROR: 0:5: 'noperspective' : Reserved word. -ERROR: 0:5: 'noperspective' : not supported for this version or the enabled extensions -ERROR: 2 compilation errors. No code generated. - - -Shader version: 300 -Requested GL_NV_shader_noperspective_interpolation -ERROR: node is still EOpNull! -0:13 Function Definition: main( ( global void) -0:13 Function Parameters: -0:14 Sequence -0:14 move second child to first child ( temp mediump 4-component vector of float) -0:14 'fragColor' ( out mediump 4-component vector of float) -0:14 'color' ( noperspective in mediump 4-component vector of float) -0:? Linker Objects -0:? 'bad' ( noperspective in mediump 4-component vector of float) -0:? 'color' ( noperspective in mediump 4-component vector of float) -0:? 'fragColor' ( out mediump 4-component vector of float) - - -Linked fragment stage: - - -Shader version: 300 -Requested GL_NV_shader_noperspective_interpolation -ERROR: node is still EOpNull! -0:13 Function Definition: main( ( global void) -0:13 Function Parameters: -0:14 Sequence -0:14 move second child to first child ( temp mediump 4-component vector of float) -0:14 'fragColor' ( out mediump 4-component vector of float) -0:14 'color' ( noperspective in mediump 4-component vector of float) -0:? Linker Objects -0:? 'bad' ( noperspective in mediump 4-component vector of float) -0:? 'color' ( noperspective in mediump 4-component vector of float) -0:? 'fragColor' ( out mediump 4-component vector of float) - diff --git a/deps/glslang/Test/baseResults/overlongLiteral.frag.out b/deps/glslang/Test/baseResults/overlongLiteral.frag.out deleted file mode 100644 index 372d7777..00000000 --- a/deps/glslang/Test/baseResults/overlongLiteral.frag.out +++ /dev/null @@ -1,19 +0,0 @@ -overlongLiteral.frag -ERROR: 0:1: '' : hexadecimal literal too long -ERROR: 0:1: '' : syntax error, unexpected INTCONSTANT -ERROR: 2 compilation errors. No code generated. - - -Shader version: 100 -ERROR: node is still EOpNull! -0:? Linker Objects - - -Linked fragment stage: - -ERROR: Linking fragment stage: Missing entry point: Each stage requires one entry point - -Shader version: 100 -ERROR: node is still EOpNull! -0:? Linker Objects - diff --git a/deps/glslang/Test/baseResults/pointCoord.frag.out b/deps/glslang/Test/baseResults/pointCoord.frag.out deleted file mode 100644 index f55f9bc4..00000000 --- a/deps/glslang/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/Test/baseResults/precise.tesc.out b/deps/glslang/Test/baseResults/precise.tesc.out deleted file mode 100644 index abe56f75..00000000 --- a/deps/glslang/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/Test/baseResults/precise_struct_block.vert.out b/deps/glslang/Test/baseResults/precise_struct_block.vert.out deleted file mode 100644 index a239e95d..00000000 --- a/deps/glslang/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/Test/baseResults/precision.frag.out b/deps/glslang/Test/baseResults/precision.frag.out deleted file mode 100644 index 7174049f..00000000 --- a/deps/glslang/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/Test/baseResults/precision.vert.out b/deps/glslang/Test/baseResults/precision.vert.out deleted file mode 100644 index 04ceb3a6..00000000 --- a/deps/glslang/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/Test/baseResults/prepost.frag.out b/deps/glslang/Test/baseResults/prepost.frag.out deleted file mode 100644 index d5f73b6d..00000000 --- a/deps/glslang/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/Test/baseResults/preprocessor.bad_arg.vert.err b/deps/glslang/Test/baseResults/preprocessor.bad_arg.vert.err deleted file mode 100644 index ae970a0e..00000000 --- a/deps/glslang/Test/baseResults/preprocessor.bad_arg.vert.err +++ /dev/null @@ -1,4 +0,0 @@ -ERROR: 0:8: 'macro expansion' : End of input in macro EXP2 -ERROR: 1 compilation errors. No code generated. - - diff --git a/deps/glslang/Test/baseResults/preprocessor.bad_arg.vert.out b/deps/glslang/Test/baseResults/preprocessor.bad_arg.vert.out deleted file mode 100644 index e69de29b..00000000 diff --git a/deps/glslang/Test/baseResults/preprocessor.cpp_style___FILE__.vert.err b/deps/glslang/Test/baseResults/preprocessor.cpp_style___FILE__.vert.err deleted file mode 100644 index e69de29b..00000000 diff --git a/deps/glslang/Test/baseResults/preprocessor.cpp_style___FILE__.vert.out b/deps/glslang/Test/baseResults/preprocessor.cpp_style___FILE__.vert.out deleted file mode 100644 index e63d81a6..00000000 --- a/deps/glslang/Test/baseResults/preprocessor.cpp_style___FILE__.vert.out +++ /dev/null @@ -1,37 +0,0 @@ -#extension GL_GOOGLE_cpp_style_line_directive : enable - -0 - -#line 150 "a.h" - "a.h" - -#line 24 - "a.h" - -#line 42 - "a.h" - -#line 30 "b.cc" - "b.cc" - -#line 10 3 - 3 - -#line 48 - 3 - -#line 4 - 3 - -#line 55 100 - 100 - -#line 1000 "c" - "c" - -#line 42 1 - 1 - -#line 42 "this-is-a-quite-long-name-maybe-i-should-shorten-it" - "this-is-a-quite-long-name-maybe-i-should-shorten-it" - diff --git a/deps/glslang/Test/baseResults/preprocessor.cpp_style_line_directive.vert.err b/deps/glslang/Test/baseResults/preprocessor.cpp_style_line_directive.vert.err deleted file mode 100644 index 794ded80..00000000 --- a/deps/glslang/Test/baseResults/preprocessor.cpp_style_line_directive.vert.err +++ /dev/null @@ -1,15 +0,0 @@ -ERROR: 0:3: '#error' : at 0:3 -ERROR: a.h:150: '#error' : at a.h:150 -ERROR: a.h:24: '#error' : at a.h:24 -ERROR: a.h:42: '#error' : at a.h:42 -ERROR: b.cc:30: '#error' : at b.cc:30 -ERROR: 3:10: '#error' : at 3:10 -ERROR: 3:48: '#error' : at 3:48 -ERROR: 3:4: '#error' : at 3:4 -ERROR: 100:55: '#error' : at 100:55 -ERROR: c:1000: '#error' : at c:1000 -ERROR: 1:42: '#error' : at 1:42 -ERROR: this-is-a-quite-long-name-maybe-i-should-shorten-it:42: '#error' : at this-is-a-quite-long-name-maybe-i-should-shorten-it:42 -ERROR: 12 compilation errors. No code generated. - - diff --git a/deps/glslang/Test/baseResults/preprocessor.cpp_style_line_directive.vert.out b/deps/glslang/Test/baseResults/preprocessor.cpp_style_line_directive.vert.out deleted file mode 100644 index e69de29b..00000000 diff --git a/deps/glslang/Test/baseResults/preprocessor.defined.vert.err b/deps/glslang/Test/baseResults/preprocessor.defined.vert.err deleted file mode 100644 index 8dddabca..00000000 --- a/deps/glslang/Test/baseResults/preprocessor.defined.vert.err +++ /dev/null @@ -1,4 +0,0 @@ -ERROR: 0:2: '#define' : "defined" can't be (un)defined: defined -ERROR: 1 compilation errors. No code generated. - - diff --git a/deps/glslang/Test/baseResults/preprocessor.defined.vert.out b/deps/glslang/Test/baseResults/preprocessor.defined.vert.out deleted file mode 100644 index e69de29b..00000000 diff --git a/deps/glslang/Test/baseResults/preprocessor.edge_cases.vert.err b/deps/glslang/Test/baseResults/preprocessor.edge_cases.vert.err deleted file mode 100644 index e69de29b..00000000 diff --git a/deps/glslang/Test/baseResults/preprocessor.edge_cases.vert.out b/deps/glslang/Test/baseResults/preprocessor.edge_cases.vert.out deleted file mode 100644 index 17d9049b..00000000 --- a/deps/glslang/Test/baseResults/preprocessor.edge_cases.vert.out +++ /dev/null @@ -1,16 +0,0 @@ -#version 310 es - - - - - - - - - - - -void main(){ - gl_Position = vec4(3 + 2 + 2 * 4 + 2 + 3 * 2); -} - diff --git a/deps/glslang/Test/baseResults/preprocessor.eof_missing.vert.err b/deps/glslang/Test/baseResults/preprocessor.eof_missing.vert.err deleted file mode 100644 index e69de29b..00000000 diff --git a/deps/glslang/Test/baseResults/preprocessor.eof_missing.vert.out b/deps/glslang/Test/baseResults/preprocessor.eof_missing.vert.out deleted file mode 100644 index bf09d53e..00000000 --- a/deps/glslang/Test/baseResults/preprocessor.eof_missing.vert.out +++ /dev/null @@ -1,2 +0,0 @@ -noEOF - diff --git a/deps/glslang/Test/baseResults/preprocessor.errors.vert.err b/deps/glslang/Test/baseResults/preprocessor.errors.vert.err deleted file mode 100644 index bc588958..00000000 --- a/deps/glslang/Test/baseResults/preprocessor.errors.vert.err +++ /dev/null @@ -1,7 +0,0 @@ -ERROR: 0:9: '#error' : This should show up in pp output . -ERROR: 0:14: '#' : invalid directive: def -ERROR: 0:15: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile Y -ERROR: 0:21: '' : missing #endif -ERROR: 4 compilation errors. No code generated. - - diff --git a/deps/glslang/Test/baseResults/preprocessor.errors.vert.out b/deps/glslang/Test/baseResults/preprocessor.errors.vert.out deleted file mode 100644 index e69de29b..00000000 diff --git a/deps/glslang/Test/baseResults/preprocessor.extensions.vert.err b/deps/glslang/Test/baseResults/preprocessor.extensions.vert.err deleted file mode 100644 index 35db3034..00000000 --- a/deps/glslang/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/Test/baseResults/preprocessor.extensions.vert.out b/deps/glslang/Test/baseResults/preprocessor.extensions.vert.out deleted file mode 100644 index 57d2e199..00000000 --- a/deps/glslang/Test/baseResults/preprocessor.extensions.vert.out +++ /dev/null @@ -1,12 +0,0 @@ -#version 310 es - -#extension GL_EXT_geometry_shader : enable -#extension GL_EXT_frag_depth : disable -#extension GL_EXT_gpu_shader5 : require -#extension GL_EXT_shader_texture_image_samples : warn - -#extension unknown_extension : require - -int main(){ -} - diff --git a/deps/glslang/Test/baseResults/preprocessor.function_macro.vert.err b/deps/glslang/Test/baseResults/preprocessor.function_macro.vert.err deleted file mode 100644 index e69de29b..00000000 diff --git a/deps/glslang/Test/baseResults/preprocessor.function_macro.vert.out b/deps/glslang/Test/baseResults/preprocessor.function_macro.vert.out deleted file mode 100644 index 1280ddf6..00000000 --- a/deps/glslang/Test/baseResults/preprocessor.function_macro.vert.out +++ /dev/null @@ -1,21 +0,0 @@ -#version 310 es - - - - - - - - - - - - - - -int main(){ - gl_Position = vec4(3 + 1, 3 + 4, 3 + 1); - gl_Position = vec4(1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12); - gl_Position = vec4(4 + 3 + 3); -} - diff --git a/deps/glslang/Test/baseResults/preprocessor.include.disabled.vert.err b/deps/glslang/Test/baseResults/preprocessor.include.disabled.vert.err deleted file mode 100644 index 14192046..00000000 --- a/deps/glslang/Test/baseResults/preprocessor.include.disabled.vert.err +++ /dev/null @@ -1,13 +0,0 @@ -ERROR: 0:8000: '#include' : required extension not requested: GL_GOOGLE_include_directive -ERROR: 0:8000: '#include' : must be followed by a header name -ERROR: 0:8001: '#include' : required extension not requested: GL_GOOGLE_include_directive -ERROR: 0:8001: '#include' : must be followed by a header name -ERROR: 0:8002: '#include' : required extension not requested: GL_GOOGLE_include_directive -ERROR: 0:8002: '#include' : Could not process include directive for header name: foo -ERROR: 0:8003: '#include' : required extension not requested: GL_GOOGLE_include_directive -ERROR: 0:8003: '#include' : extra content after header name: foo -ERROR: 0:8004: '#include' : required extension not requested: GL_GOOGLE_include_directive -ERROR: 0:8004: '#include' : expected newline after header name: no-eol -ERROR: 10 compilation errors. No code generated. - - diff --git a/deps/glslang/Test/baseResults/preprocessor.include.disabled.vert.out b/deps/glslang/Test/baseResults/preprocessor.include.disabled.vert.out deleted file mode 100644 index e69de29b..00000000 diff --git a/deps/glslang/Test/baseResults/preprocessor.include.enabled.vert.err b/deps/glslang/Test/baseResults/preprocessor.include.enabled.vert.err deleted file mode 100644 index 252e661f..00000000 --- a/deps/glslang/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/Test/baseResults/preprocessor.include.enabled.vert.out b/deps/glslang/Test/baseResults/preprocessor.include.enabled.vert.out deleted file mode 100644 index e69de29b..00000000 diff --git a/deps/glslang/Test/baseResults/preprocessor.line.frag.err b/deps/glslang/Test/baseResults/preprocessor.line.frag.err deleted file mode 100644 index e69de29b..00000000 diff --git a/deps/glslang/Test/baseResults/preprocessor.line.frag.out b/deps/glslang/Test/baseResults/preprocessor.line.frag.out deleted file mode 100644 index 3e2206f8..00000000 --- a/deps/glslang/Test/baseResults/preprocessor.line.frag.out +++ /dev/null @@ -1,5 +0,0 @@ -#version 310 es -#line 1 2 -#pragma something -void main(){ } - diff --git a/deps/glslang/Test/baseResults/preprocessor.line.vert.err b/deps/glslang/Test/baseResults/preprocessor.line.vert.err deleted file mode 100644 index e69de29b..00000000 diff --git a/deps/glslang/Test/baseResults/preprocessor.line.vert.out b/deps/glslang/Test/baseResults/preprocessor.line.vert.out deleted file mode 100644 index 2bf09032..00000000 --- a/deps/glslang/Test/baseResults/preprocessor.line.vert.out +++ /dev/null @@ -1,39 +0,0 @@ -#line 300 - -#line 2 - - - - - -#line 10 - - -#line 2 - -#line 0 - - - -#line 4 - - - - - -#line 8 - -void main(){ - gl_Position = vec4(10); -} - -#line 8 4 - - - - -#line 12 3 - -#line 1 - - diff --git a/deps/glslang/Test/baseResults/preprocessor.many.endif.vert.err b/deps/glslang/Test/baseResults/preprocessor.many.endif.vert.err deleted file mode 100644 index 49aafc5a..00000000 --- a/deps/glslang/Test/baseResults/preprocessor.many.endif.vert.err +++ /dev/null @@ -1,12 +0,0 @@ -ERROR: 0:1: '#endif' : mismatched statements -ERROR: 0:2: '#endif' : mismatched statements -ERROR: 0:3: '#endif' : mismatched statements -ERROR: 0:4: '#endif' : mismatched statements -ERROR: 0:5: '#endif' : mismatched statements -ERROR: 0:6: '#endif' : mismatched statements -ERROR: 0:7: '#endif' : mismatched statements -ERROR: 0:10: 'preprocessor evaluation' : bad expression -ERROR: 0:11: '' : missing #endif -ERROR: 9 compilation errors. No code generated. - - diff --git a/deps/glslang/Test/baseResults/preprocessor.many.endif.vert.out b/deps/glslang/Test/baseResults/preprocessor.many.endif.vert.out deleted file mode 100644 index e69de29b..00000000 diff --git a/deps/glslang/Test/baseResults/preprocessor.pragma.vert.err b/deps/glslang/Test/baseResults/preprocessor.pragma.vert.err deleted file mode 100644 index da435dbd..00000000 --- a/deps/glslang/Test/baseResults/preprocessor.pragma.vert.err +++ /dev/null @@ -1,2 +0,0 @@ -WARNING: 0:10: '#pragma once' : not implemented - diff --git a/deps/glslang/Test/baseResults/preprocessor.pragma.vert.out b/deps/glslang/Test/baseResults/preprocessor.pragma.vert.out deleted file mode 100644 index ebe1e4a7..00000000 --- a/deps/glslang/Test/baseResults/preprocessor.pragma.vert.out +++ /dev/null @@ -1,14 +0,0 @@ -#version 310 es - -#pragma optimize(on) -#pragma optimize(off) -#pragma debug(on) -#pragma debug(off) - -#pragma undefined_pragma(x,4) - -#pragma once - -int main(){ -} - diff --git a/deps/glslang/Test/baseResults/preprocessor.simple.vert.err b/deps/glslang/Test/baseResults/preprocessor.simple.vert.err deleted file mode 100644 index e69de29b..00000000 diff --git a/deps/glslang/Test/baseResults/preprocessor.simple.vert.out b/deps/glslang/Test/baseResults/preprocessor.simple.vert.out deleted file mode 100644 index 57b020c6..00000000 --- a/deps/glslang/Test/baseResults/preprocessor.simple.vert.out +++ /dev/null @@ -1,66 +0,0 @@ -#version 310 es - - - - - - - - - - - - - float fn(float x){ return x + 4.0;} - -int main(){ - gl_Position = vec4(1); - gl_Position = clamp(1, 2, 3); - gl_Position = vec4(1); - gl_Position = vec4(1, 2); - gl_Position = vec4(fn(3)); - []. ++ -- - + - * % / - ! ~ - << >> < > <= >= - == != - & ^ | && ^^ || ? : - += -= *= /= %= <<= >>= &= |= ^= - 1.2 2E10 5u - 5l f -} - -struct S { - int member1; - float member2; - vec4 member3; -}; - - - - - - - - - - - - - -void foo() -{ - S s; - s . member2 + s . member1; - s . member3 . zyx; - s . member2 . xxyz; - s . member2 . yyz; - s . member2 . xxyz(); - s . member2 . yzy; - vec3 a = vec3(0);vec3 b = a . zxyz;vec3 b = a . xxyz;vec3 b = a . yyz;vec3 b = a . xxyz();vec3 b = a . yzy;vec3 b = a . z; - - - yyz; - yzy - - -} - diff --git a/deps/glslang/Test/baseResults/preprocessor.success_if_parse_would_fail.vert.err b/deps/glslang/Test/baseResults/preprocessor.success_if_parse_would_fail.vert.err deleted file mode 100644 index e69de29b..00000000 diff --git a/deps/glslang/Test/baseResults/preprocessor.success_if_parse_would_fail.vert.out b/deps/glslang/Test/baseResults/preprocessor.success_if_parse_would_fail.vert.out deleted file mode 100644 index 624813a0..00000000 --- a/deps/glslang/Test/baseResults/preprocessor.success_if_parse_would_fail.vert.out +++ /dev/null @@ -1,4 +0,0 @@ -int x(){ - something that shouldnt compile; -} - diff --git a/deps/glslang/Test/baseResults/rayQuery-allOps.Error.rgen.out b/deps/glslang/Test/baseResults/rayQuery-allOps.Error.rgen.out deleted file mode 100644 index 98101c32..00000000 --- a/deps/glslang/Test/baseResults/rayQuery-allOps.Error.rgen.out +++ /dev/null @@ -1,26 +0,0 @@ -rayQuery-allOps.Error.rgen -ERROR: 0:47: '==' : wrong operand types: no operation '==' exists that takes a left-hand operand of type ' global bool' and a right operand of type ' const int' (or there is no acceptable conversion) -ERROR: 0:49: '=' : cannot convert from ' global uint' to ' temp highp int' -ERROR: 0:59: '==' : wrong operand types: no operation '==' exists that takes a left-hand operand of type ' global bool' and a right operand of type ' const int' (or there is no acceptable conversion) -ERROR: 0:64: '==' : wrong operand types: no operation '==' exists that takes a left-hand operand of type ' global 2-component vector of float' and a right operand of type ' const int' (or there is no acceptable conversion) -ERROR: 0:69: '' : boolean expression expected -ERROR: 0:74: '' : boolean expression expected -ERROR: 0:79: '>' : wrong operand types: no operation '>' exists that takes a left-hand operand of type ' global 3-component vector of float' and a right operand of type ' const int' (or there is no acceptable conversion) -ERROR: 0:84: '>' : wrong operand types: no operation '>' exists that takes a left-hand operand of type ' global 3-component vector of float' and a right operand of type ' const int' (or there is no acceptable conversion) -ERROR: 0:89: '' : boolean expression expected -ERROR: 0:94: '' : boolean expression expected -ERROR: 0:99: '' : boolean expression expected -ERROR: 0:127: '=' : cannot convert from ' global uint' to ' temp highp int' -ERROR: 0:145: '==' : wrong operand types: no operation '==' exists that takes a left-hand operand of type ' global 2-component vector of float' and a right operand of type ' const int' (or there is no acceptable conversion) -ERROR: 0:158: '' : boolean expression expected -ERROR: 0:163: '' : boolean expression expected -ERROR: 0:168: '>' : wrong operand types: no operation '>' exists that takes a left-hand operand of type ' global 3-component vector of float' and a right operand of type ' const int' (or there is no acceptable conversion) -ERROR: 0:173: '>' : wrong operand types: no operation '>' exists that takes a left-hand operand of type ' global 3-component vector of float' and a right operand of type ' const int' (or there is no acceptable conversion) -ERROR: 0:178: '' : boolean expression expected -ERROR: 0:183: '' : boolean expression expected -ERROR: 0:195: '' : boolean expression expected -ERROR: 0:200: '' : boolean expression expected -ERROR: 21 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/rayQuery-allOps.comp.out b/deps/glslang/Test/baseResults/rayQuery-allOps.comp.out deleted file mode 100644 index bf654f77..00000000 --- a/deps/glslang/Test/baseResults/rayQuery-allOps.comp.out +++ /dev/null @@ -1,433 +0,0 @@ -rayQuery-allOps.comp -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 258 - - Capability Shader - Capability RayQueryKHR - Capability RayTraversalPrimitiveCullingKHR - Extension "SPV_KHR_ray_query" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" - ExecutionMode 4 LocalSize 1 1 1 - Source GLSL 460 - SourceExtension "GL_EXT_ray_flags_primitive_culling" - SourceExtension "GL_EXT_ray_query" - Name 4 "main" - Name 6 "doSomething(" - Name 10 "Ray" - MemberName 10(Ray) 0 "pos" - MemberName 10(Ray) 1 "tmin" - MemberName 10(Ray) 2 "dir" - MemberName 10(Ray) 3 "tmax" - Name 12 "makeRayDesc(" - Name 15 "Log" - MemberName 15(Log) 0 "x" - MemberName 15(Log) 1 "y" - Name 17 "" - Name 26 "ray" - Name 43 "ray" - Name 47 "rayQuery" - Name 50 "rtas" - Name 69 "candidateType" - Name 78 "_mat4x3" - Name 83 "_mat3x4" - Name 143 "t" - Name 156 "committedStatus" - Name 241 "o" - Name 243 "d" - Name 253 "Ray" - MemberName 253(Ray) 0 "pos" - MemberName 253(Ray) 1 "tmin" - MemberName 253(Ray) 2 "dir" - MemberName 253(Ray) 3 "tmax" - Name 255 "Rays" - MemberName 255(Rays) 0 "rays" - Name 257 "" - MemberDecorate 15(Log) 0 Offset 0 - MemberDecorate 15(Log) 1 Offset 4 - Decorate 15(Log) BufferBlock - Decorate 17 DescriptorSet 0 - Decorate 17 Binding 0 - Decorate 50(rtas) DescriptorSet 0 - Decorate 50(rtas) Binding 1 - MemberDecorate 253(Ray) 0 Offset 0 - MemberDecorate 253(Ray) 1 Offset 12 - MemberDecorate 253(Ray) 2 Offset 16 - MemberDecorate 253(Ray) 3 Offset 28 - Decorate 254 ArrayStride 32 - MemberDecorate 255(Rays) 0 Offset 0 - Decorate 255(Rays) BufferBlock - Decorate 257 DescriptorSet 0 - Decorate 257 Binding 2 - 2: TypeVoid - 3: TypeFunction 2 - 8: TypeFloat 32 - 9: TypeVector 8(float) 3 - 10(Ray): TypeStruct 9(fvec3) 8(float) 9(fvec3) 8(float) - 11: TypeFunction 10(Ray) - 14: TypeInt 32 0 - 15(Log): TypeStruct 14(int) 14(int) - 16: TypePointer Uniform 15(Log) - 17: 16(ptr) Variable Uniform - 18: TypeInt 32 1 - 19: 18(int) Constant 0 - 20: 14(int) Constant 0 - 21: TypePointer Uniform 14(int) - 23: 18(int) Constant 1 - 25: TypePointer Function 10(Ray) - 27: 8(float) Constant 0 - 28: 9(fvec3) ConstantComposite 27 27 27 - 29: TypePointer Function 9(fvec3) - 31: 18(int) Constant 2 - 32: 8(float) Constant 1065353216 - 33: 9(fvec3) ConstantComposite 32 27 27 - 35: TypePointer Function 8(float) - 37: 18(int) Constant 3 - 38: 8(float) Constant 1176255488 - 45: TypeRayQueryKHR - 46: TypePointer Private 45 - 47(rayQuery): 46(ptr) Variable Private - 48: TypeAccelerationStructureKHR - 49: TypePointer UniformConstant 48 - 50(rtas): 49(ptr) Variable UniformConstant - 52: 14(int) Constant 255 - 66: TypeBool - 68: TypePointer Function 14(int) - 70: 66(bool) ConstantFalse - 76: TypeMatrix 9(fvec3) 4 - 77: TypePointer Function 76 - 80: TypeVector 8(float) 4 - 81: TypeMatrix 80(fvec4) 3 - 82: TypePointer Function 81 - 86: 66(bool) ConstantTrue - 91: TypeVector 8(float) 2 - 144: 8(float) Constant 1056964608 - 175: 14(int) Constant 1 - 198: 14(int) Constant 2 - 231: 14(int) Constant 256 - 253(Ray): TypeStruct 9(fvec3) 8(float) 9(fvec3) 8(float) - 254: TypeRuntimeArray 253(Ray) - 255(Rays): TypeStruct 254 - 256: TypePointer Uniform 255(Rays) - 257: 256(ptr) Variable Uniform - 4(main): 2 Function None 3 - 5: Label - 43(ray): 25(ptr) Variable Function -69(candidateType): 68(ptr) Variable Function - 78(_mat4x3): 77(ptr) Variable Function - 83(_mat3x4): 82(ptr) Variable Function - 143(t): 35(ptr) Variable Function -156(committedStatus): 68(ptr) Variable Function - 241(o): 29(ptr) Variable Function - 243(d): 29(ptr) Variable Function - 44: 10(Ray) FunctionCall 12(makeRayDesc() - Store 43(ray) 44 - 51: 48 Load 50(rtas) - 53: 29(ptr) AccessChain 43(ray) 19 - 54: 9(fvec3) Load 53 - 55: 35(ptr) AccessChain 43(ray) 23 - 56: 8(float) Load 55 - 57: 29(ptr) AccessChain 43(ray) 31 - 58: 9(fvec3) Load 57 - 59: 35(ptr) AccessChain 43(ray) 37 - 60: 8(float) Load 59 - RayQueryInitializeKHR 47(rayQuery) 51 20 52 54 56 58 60 - Branch 61 - 61: Label - LoopMerge 63 64 None - Branch 65 - 65: Label - 67: 66(bool) RayQueryProceedKHR 47(rayQuery) - BranchConditional 67 62 63 - 62: Label - 71: 14(int) RayQueryGetIntersectionTypeKHR 47(rayQuery) 19 - Store 69(candidateType) 71 - 72: 14(int) Load 69(candidateType) - SelectionMerge 75 None - Switch 72 75 - case 0: 73 - case 1: 74 - 73: Label - RayQueryTerminateKHR 47(rayQuery) - 79: 76 RayQueryGetIntersectionObjectToWorldKHR 47(rayQuery) 19 - Store 78(_mat4x3) 79 - 84: 76 Load 78(_mat4x3) - 85: 81 Transpose 84 - Store 83(_mat3x4) 85 - RayQueryConfirmIntersectionKHR 47(rayQuery) - 87: 66(bool) RayQueryGetIntersectionFrontFaceKHR 47(rayQuery) 23 - SelectionMerge 89 None - BranchConditional 87 88 89 - 88: Label - 90: 2 FunctionCall 6(doSomething() - Branch 89 - 89: Label - 92: 91(fvec2) RayQueryGetIntersectionBarycentricsKHR 47(rayQuery) 23 - 93: 8(float) CompositeExtract 92 0 - 94: 66(bool) FOrdEqual 93 27 - SelectionMerge 96 None - BranchConditional 94 95 96 - 95: Label - 97: 2 FunctionCall 6(doSomething() - Branch 96 - 96: Label - 98: 18(int) RayQueryGetIntersectionInstanceCustomIndexKHR 47(rayQuery) 23 - 99: 66(bool) SGreaterThan 98 19 - SelectionMerge 101 None - BranchConditional 99 100 101 - 100: Label - 102: 2 FunctionCall 6(doSomething() - Branch 101 - 101: Label - 103: 18(int) RayQueryGetIntersectionInstanceIdKHR 47(rayQuery) 23 - 104: 66(bool) SGreaterThan 103 19 - SelectionMerge 106 None - BranchConditional 104 105 106 - 105: Label - 107: 2 FunctionCall 6(doSomething() - Branch 106 - 106: Label - 108: 9(fvec3) RayQueryGetIntersectionObjectRayDirectionKHR 47(rayQuery) 23 - 109: 8(float) CompositeExtract 108 0 - 110: 66(bool) FOrdGreaterThan 109 27 - SelectionMerge 112 None - BranchConditional 110 111 112 - 111: Label - 113: 2 FunctionCall 6(doSomething() - Branch 112 - 112: Label - 114: 9(fvec3) RayQueryGetIntersectionObjectRayOriginKHR 47(rayQuery) 23 - 115: 8(float) CompositeExtract 114 0 - 116: 66(bool) FOrdGreaterThan 115 27 - SelectionMerge 118 None - BranchConditional 116 117 118 - 117: Label - 119: 2 FunctionCall 6(doSomething() - Branch 118 - 118: Label - 120: 18(int) RayQueryGetIntersectionPrimitiveIndexKHR 47(rayQuery) 23 - 121: 66(bool) SGreaterThan 120 19 - SelectionMerge 123 None - BranchConditional 121 122 123 - 122: Label - 124: 2 FunctionCall 6(doSomething() - Branch 123 - 123: Label - 125: 8(float) RayQueryGetIntersectionTKHR 47(rayQuery) 23 - 126: 66(bool) FOrdGreaterThan 125 27 - SelectionMerge 128 None - BranchConditional 126 127 128 - 127: Label - 129: 2 FunctionCall 6(doSomething() - Branch 128 - 128: Label - 130: 14(int) RayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR 47(rayQuery) 23 - 131: 66(bool) UGreaterThan 130 20 - SelectionMerge 133 None - BranchConditional 131 132 133 - 132: Label - 134: 2 FunctionCall 6(doSomething() - Branch 133 - 133: Label - Branch 75 - 74: Label - 136: 76 RayQueryGetIntersectionObjectToWorldKHR 47(rayQuery) 19 - Store 78(_mat4x3) 136 - 137: 76 Load 78(_mat4x3) - 138: 81 Transpose 137 - Store 83(_mat3x4) 138 - 139: 66(bool) RayQueryGetIntersectionCandidateAABBOpaqueKHR 47(rayQuery) - SelectionMerge 141 None - BranchConditional 139 140 141 - 140: Label - 142: 2 FunctionCall 6(doSomething() - Branch 141 - 141: Label - Store 143(t) 144 - 145: 8(float) Load 143(t) - RayQueryGenerateIntersectionKHR 47(rayQuery) 145 - RayQueryTerminateKHR 47(rayQuery) - Branch 75 - 75: Label - Branch 64 - 64: Label - Branch 61 - 63: Label - 148: 35(ptr) AccessChain 83(_mat3x4) 19 20 - 149: 8(float) Load 148 - 150: 35(ptr) AccessChain 78(_mat4x3) 19 20 - 151: 8(float) Load 150 - 152: 66(bool) FOrdEqual 149 151 - SelectionMerge 154 None - BranchConditional 152 153 154 - 153: Label - 155: 2 FunctionCall 6(doSomething() - Branch 154 - 154: Label - 157: 14(int) RayQueryGetIntersectionTypeKHR 47(rayQuery) 23 - Store 156(committedStatus) 157 - 158: 14(int) Load 156(committedStatus) - SelectionMerge 162 None - Switch 158 162 - case 0: 159 - case 1: 160 - case 2: 161 - 159: Label - 163: 76 RayQueryGetIntersectionWorldToObjectKHR 47(rayQuery) 19 - Store 78(_mat4x3) 163 - 164: 76 Load 78(_mat4x3) - 165: 81 Transpose 164 - Store 83(_mat3x4) 165 - Branch 162 - 160: Label - 167: 76 RayQueryGetIntersectionWorldToObjectKHR 47(rayQuery) 23 - Store 78(_mat4x3) 167 - 168: 76 Load 78(_mat4x3) - 169: 81 Transpose 168 - Store 83(_mat3x4) 169 - 170: 66(bool) RayQueryGetIntersectionFrontFaceKHR 47(rayQuery) 23 - SelectionMerge 172 None - BranchConditional 170 171 172 - 171: Label - 173: 2 FunctionCall 6(doSomething() - Branch 172 - 172: Label - 174: 91(fvec2) RayQueryGetIntersectionBarycentricsKHR 47(rayQuery) 23 - 176: 8(float) CompositeExtract 174 1 - 177: 66(bool) FOrdEqual 176 27 - SelectionMerge 179 None - BranchConditional 177 178 179 - 178: Label - 180: 2 FunctionCall 6(doSomething() - Branch 179 - 179: Label - Branch 162 - 161: Label - 182: 18(int) RayQueryGetIntersectionGeometryIndexKHR 47(rayQuery) 23 - 183: 66(bool) SGreaterThan 182 19 - SelectionMerge 185 None - BranchConditional 183 184 185 - 184: Label - 186: 2 FunctionCall 6(doSomething() - Branch 185 - 185: Label - 187: 18(int) RayQueryGetIntersectionInstanceIdKHR 47(rayQuery) 23 - 188: 66(bool) SGreaterThan 187 19 - SelectionMerge 190 None - BranchConditional 188 189 190 - 189: Label - 191: 2 FunctionCall 6(doSomething() - Branch 190 - 190: Label - 192: 18(int) RayQueryGetIntersectionInstanceCustomIndexKHR 47(rayQuery) 23 - 193: 66(bool) SGreaterThan 192 19 - SelectionMerge 195 None - BranchConditional 193 194 195 - 194: Label - 196: 2 FunctionCall 6(doSomething() - Branch 195 - 195: Label - 197: 9(fvec3) RayQueryGetIntersectionObjectRayDirectionKHR 47(rayQuery) 23 - 199: 8(float) CompositeExtract 197 2 - 200: 66(bool) FOrdGreaterThan 199 27 - SelectionMerge 202 None - BranchConditional 200 201 202 - 201: Label - 203: 2 FunctionCall 6(doSomething() - Branch 202 - 202: Label - 204: 9(fvec3) RayQueryGetIntersectionObjectRayOriginKHR 47(rayQuery) 23 - 205: 8(float) CompositeExtract 204 0 - 206: 66(bool) FOrdGreaterThan 205 27 - SelectionMerge 208 None - BranchConditional 206 207 208 - 207: Label - 209: 2 FunctionCall 6(doSomething() - Branch 208 - 208: Label - 210: 18(int) RayQueryGetIntersectionPrimitiveIndexKHR 47(rayQuery) 23 - 211: 66(bool) SGreaterThan 210 19 - SelectionMerge 213 None - BranchConditional 211 212 213 - 212: Label - 214: 2 FunctionCall 6(doSomething() - Branch 213 - 213: Label - 215: 8(float) RayQueryGetIntersectionTKHR 47(rayQuery) 23 - 216: 66(bool) FOrdGreaterThan 215 27 - SelectionMerge 218 None - BranchConditional 216 217 218 - 217: Label - 219: 2 FunctionCall 6(doSomething() - Branch 218 - 218: Label - Branch 162 - 162: Label - 222: 35(ptr) AccessChain 83(_mat3x4) 19 20 - 223: 8(float) Load 222 - 224: 35(ptr) AccessChain 78(_mat4x3) 19 20 - 225: 8(float) Load 224 - 226: 66(bool) FOrdEqual 223 225 - SelectionMerge 228 None - BranchConditional 226 227 228 - 227: Label - 229: 2 FunctionCall 6(doSomething() - Branch 228 - 228: Label - 230: 14(int) RayQueryGetRayFlagsKHR 47(rayQuery) - 232: 66(bool) UGreaterThan 230 231 - SelectionMerge 234 None - BranchConditional 232 233 234 - 233: Label - 235: 2 FunctionCall 6(doSomething() - Branch 234 - 234: Label - 236: 8(float) RayQueryGetRayTMinKHR 47(rayQuery) - 237: 66(bool) FOrdGreaterThan 236 27 - SelectionMerge 239 None - BranchConditional 237 238 239 - 238: Label - 240: 2 FunctionCall 6(doSomething() - Branch 239 - 239: Label - 242: 9(fvec3) RayQueryGetWorldRayOriginKHR 47(rayQuery) - Store 241(o) 242 - 244: 9(fvec3) RayQueryGetWorldRayDirectionKHR 47(rayQuery) - Store 243(d) 244 - 245: 35(ptr) AccessChain 241(o) 20 - 246: 8(float) Load 245 - 247: 35(ptr) AccessChain 243(d) 198 - 248: 8(float) Load 247 - 249: 66(bool) FOrdEqual 246 248 - SelectionMerge 251 None - BranchConditional 249 250 251 - 250: Label - 252: 2 FunctionCall 6(doSomething() - Branch 251 - 251: Label - Return - FunctionEnd - 6(doSomething(): 2 Function None 3 - 7: Label - 22: 21(ptr) AccessChain 17 19 - Store 22 20 - 24: 21(ptr) AccessChain 17 23 - Store 24 20 - Return - FunctionEnd -12(makeRayDesc(): 10(Ray) Function None 11 - 13: Label - 26(ray): 25(ptr) Variable Function - 30: 29(ptr) AccessChain 26(ray) 19 - Store 30 28 - 34: 29(ptr) AccessChain 26(ray) 31 - Store 34 33 - 36: 35(ptr) AccessChain 26(ray) 23 - Store 36 27 - 39: 35(ptr) AccessChain 26(ray) 37 - Store 39 38 - 40: 10(Ray) Load 26(ray) - ReturnValue 40 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/rayQuery-allOps.frag.out b/deps/glslang/Test/baseResults/rayQuery-allOps.frag.out deleted file mode 100644 index 90ebc4a2..00000000 --- a/deps/glslang/Test/baseResults/rayQuery-allOps.frag.out +++ /dev/null @@ -1,431 +0,0 @@ -rayQuery-allOps.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 257 - - Capability Shader - Capability RayQueryKHR - Extension "SPV_KHR_ray_query" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source GLSL 460 - SourceExtension "GL_EXT_ray_query" - SourceExtension "GL_NV_ray_tracing" - Name 4 "main" - Name 6 "doSomething(" - Name 10 "Ray" - MemberName 10(Ray) 0 "pos" - MemberName 10(Ray) 1 "tmin" - MemberName 10(Ray) 2 "dir" - MemberName 10(Ray) 3 "tmax" - Name 12 "makeRayDesc(" - Name 15 "Log" - MemberName 15(Log) 0 "x" - MemberName 15(Log) 1 "y" - Name 17 "" - Name 26 "ray" - Name 43 "ray" - Name 47 "rayQuery" - Name 50 "rtas" - Name 69 "candidateType" - Name 78 "_mat4x3" - Name 83 "_mat3x4" - Name 143 "t" - Name 156 "committedStatus" - Name 240 "o" - Name 242 "d" - Name 252 "Ray" - MemberName 252(Ray) 0 "pos" - MemberName 252(Ray) 1 "tmin" - MemberName 252(Ray) 2 "dir" - MemberName 252(Ray) 3 "tmax" - Name 254 "Rays" - MemberName 254(Rays) 0 "rays" - Name 256 "" - MemberDecorate 15(Log) 0 Offset 0 - MemberDecorate 15(Log) 1 Offset 4 - Decorate 15(Log) BufferBlock - Decorate 17 DescriptorSet 0 - Decorate 17 Binding 0 - Decorate 50(rtas) DescriptorSet 0 - Decorate 50(rtas) Binding 1 - MemberDecorate 252(Ray) 0 Offset 0 - MemberDecorate 252(Ray) 1 Offset 12 - MemberDecorate 252(Ray) 2 Offset 16 - MemberDecorate 252(Ray) 3 Offset 28 - Decorate 253 ArrayStride 32 - MemberDecorate 254(Rays) 0 Offset 0 - Decorate 254(Rays) BufferBlock - Decorate 256 DescriptorSet 0 - Decorate 256 Binding 2 - 2: TypeVoid - 3: TypeFunction 2 - 8: TypeFloat 32 - 9: TypeVector 8(float) 3 - 10(Ray): TypeStruct 9(fvec3) 8(float) 9(fvec3) 8(float) - 11: TypeFunction 10(Ray) - 14: TypeInt 32 0 - 15(Log): TypeStruct 14(int) 14(int) - 16: TypePointer Uniform 15(Log) - 17: 16(ptr) Variable Uniform - 18: TypeInt 32 1 - 19: 18(int) Constant 0 - 20: 14(int) Constant 0 - 21: TypePointer Uniform 14(int) - 23: 18(int) Constant 1 - 25: TypePointer Function 10(Ray) - 27: 8(float) Constant 0 - 28: 9(fvec3) ConstantComposite 27 27 27 - 29: TypePointer Function 9(fvec3) - 31: 18(int) Constant 2 - 32: 8(float) Constant 1065353216 - 33: 9(fvec3) ConstantComposite 32 27 27 - 35: TypePointer Function 8(float) - 37: 18(int) Constant 3 - 38: 8(float) Constant 1176255488 - 45: TypeRayQueryKHR - 46: TypePointer Private 45 - 47(rayQuery): 46(ptr) Variable Private - 48: TypeAccelerationStructureKHR - 49: TypePointer UniformConstant 48 - 50(rtas): 49(ptr) Variable UniformConstant - 52: 14(int) Constant 255 - 66: TypeBool - 68: TypePointer Function 14(int) - 70: 66(bool) ConstantFalse - 76: TypeMatrix 9(fvec3) 4 - 77: TypePointer Function 76 - 80: TypeVector 8(float) 4 - 81: TypeMatrix 80(fvec4) 3 - 82: TypePointer Function 81 - 86: 66(bool) ConstantTrue - 91: TypeVector 8(float) 2 - 144: 8(float) Constant 1056964608 - 175: 14(int) Constant 1 - 198: 14(int) Constant 2 - 252(Ray): TypeStruct 9(fvec3) 8(float) 9(fvec3) 8(float) - 253: TypeRuntimeArray 252(Ray) - 254(Rays): TypeStruct 253 - 255: TypePointer Uniform 254(Rays) - 256: 255(ptr) Variable Uniform - 4(main): 2 Function None 3 - 5: Label - 43(ray): 25(ptr) Variable Function -69(candidateType): 68(ptr) Variable Function - 78(_mat4x3): 77(ptr) Variable Function - 83(_mat3x4): 82(ptr) Variable Function - 143(t): 35(ptr) Variable Function -156(committedStatus): 68(ptr) Variable Function - 240(o): 29(ptr) Variable Function - 242(d): 29(ptr) Variable Function - 44: 10(Ray) FunctionCall 12(makeRayDesc() - Store 43(ray) 44 - 51: 48 Load 50(rtas) - 53: 29(ptr) AccessChain 43(ray) 19 - 54: 9(fvec3) Load 53 - 55: 35(ptr) AccessChain 43(ray) 23 - 56: 8(float) Load 55 - 57: 29(ptr) AccessChain 43(ray) 31 - 58: 9(fvec3) Load 57 - 59: 35(ptr) AccessChain 43(ray) 37 - 60: 8(float) Load 59 - RayQueryInitializeKHR 47(rayQuery) 51 20 52 54 56 58 60 - Branch 61 - 61: Label - LoopMerge 63 64 None - Branch 65 - 65: Label - 67: 66(bool) RayQueryProceedKHR 47(rayQuery) - BranchConditional 67 62 63 - 62: Label - 71: 14(int) RayQueryGetIntersectionTypeKHR 47(rayQuery) 19 - Store 69(candidateType) 71 - 72: 14(int) Load 69(candidateType) - SelectionMerge 75 None - Switch 72 75 - case 0: 73 - case 1: 74 - 73: Label - RayQueryTerminateKHR 47(rayQuery) - 79: 76 RayQueryGetIntersectionObjectToWorldKHR 47(rayQuery) 19 - Store 78(_mat4x3) 79 - 84: 76 Load 78(_mat4x3) - 85: 81 Transpose 84 - Store 83(_mat3x4) 85 - RayQueryConfirmIntersectionKHR 47(rayQuery) - 87: 66(bool) RayQueryGetIntersectionFrontFaceKHR 47(rayQuery) 23 - SelectionMerge 89 None - BranchConditional 87 88 89 - 88: Label - 90: 2 FunctionCall 6(doSomething() - Branch 89 - 89: Label - 92: 91(fvec2) RayQueryGetIntersectionBarycentricsKHR 47(rayQuery) 23 - 93: 8(float) CompositeExtract 92 0 - 94: 66(bool) FOrdEqual 93 27 - SelectionMerge 96 None - BranchConditional 94 95 96 - 95: Label - 97: 2 FunctionCall 6(doSomething() - Branch 96 - 96: Label - 98: 18(int) RayQueryGetIntersectionInstanceCustomIndexKHR 47(rayQuery) 23 - 99: 66(bool) SGreaterThan 98 19 - SelectionMerge 101 None - BranchConditional 99 100 101 - 100: Label - 102: 2 FunctionCall 6(doSomething() - Branch 101 - 101: Label - 103: 18(int) RayQueryGetIntersectionInstanceIdKHR 47(rayQuery) 23 - 104: 66(bool) SGreaterThan 103 19 - SelectionMerge 106 None - BranchConditional 104 105 106 - 105: Label - 107: 2 FunctionCall 6(doSomething() - Branch 106 - 106: Label - 108: 9(fvec3) RayQueryGetIntersectionObjectRayDirectionKHR 47(rayQuery) 23 - 109: 8(float) CompositeExtract 108 0 - 110: 66(bool) FOrdGreaterThan 109 27 - SelectionMerge 112 None - BranchConditional 110 111 112 - 111: Label - 113: 2 FunctionCall 6(doSomething() - Branch 112 - 112: Label - 114: 9(fvec3) RayQueryGetIntersectionObjectRayOriginKHR 47(rayQuery) 23 - 115: 8(float) CompositeExtract 114 0 - 116: 66(bool) FOrdGreaterThan 115 27 - SelectionMerge 118 None - BranchConditional 116 117 118 - 117: Label - 119: 2 FunctionCall 6(doSomething() - Branch 118 - 118: Label - 120: 18(int) RayQueryGetIntersectionPrimitiveIndexKHR 47(rayQuery) 23 - 121: 66(bool) SGreaterThan 120 19 - SelectionMerge 123 None - BranchConditional 121 122 123 - 122: Label - 124: 2 FunctionCall 6(doSomething() - Branch 123 - 123: Label - 125: 8(float) RayQueryGetIntersectionTKHR 47(rayQuery) 23 - 126: 66(bool) FOrdGreaterThan 125 27 - SelectionMerge 128 None - BranchConditional 126 127 128 - 127: Label - 129: 2 FunctionCall 6(doSomething() - Branch 128 - 128: Label - 130: 14(int) RayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR 47(rayQuery) 23 - 131: 66(bool) UGreaterThan 130 20 - SelectionMerge 133 None - BranchConditional 131 132 133 - 132: Label - 134: 2 FunctionCall 6(doSomething() - Branch 133 - 133: Label - Branch 75 - 74: Label - 136: 76 RayQueryGetIntersectionObjectToWorldKHR 47(rayQuery) 19 - Store 78(_mat4x3) 136 - 137: 76 Load 78(_mat4x3) - 138: 81 Transpose 137 - Store 83(_mat3x4) 138 - 139: 66(bool) RayQueryGetIntersectionCandidateAABBOpaqueKHR 47(rayQuery) - SelectionMerge 141 None - BranchConditional 139 140 141 - 140: Label - 142: 2 FunctionCall 6(doSomething() - Branch 141 - 141: Label - Store 143(t) 144 - 145: 8(float) Load 143(t) - RayQueryGenerateIntersectionKHR 47(rayQuery) 145 - RayQueryTerminateKHR 47(rayQuery) - Branch 75 - 75: Label - Branch 64 - 64: Label - Branch 61 - 63: Label - 148: 35(ptr) AccessChain 83(_mat3x4) 19 20 - 149: 8(float) Load 148 - 150: 35(ptr) AccessChain 78(_mat4x3) 19 20 - 151: 8(float) Load 150 - 152: 66(bool) FOrdEqual 149 151 - SelectionMerge 154 None - BranchConditional 152 153 154 - 153: Label - 155: 2 FunctionCall 6(doSomething() - Branch 154 - 154: Label - 157: 14(int) RayQueryGetIntersectionTypeKHR 47(rayQuery) 23 - Store 156(committedStatus) 157 - 158: 14(int) Load 156(committedStatus) - SelectionMerge 162 None - Switch 158 162 - case 0: 159 - case 1: 160 - case 2: 161 - 159: Label - 163: 76 RayQueryGetIntersectionWorldToObjectKHR 47(rayQuery) 19 - Store 78(_mat4x3) 163 - 164: 76 Load 78(_mat4x3) - 165: 81 Transpose 164 - Store 83(_mat3x4) 165 - Branch 162 - 160: Label - 167: 76 RayQueryGetIntersectionWorldToObjectKHR 47(rayQuery) 23 - Store 78(_mat4x3) 167 - 168: 76 Load 78(_mat4x3) - 169: 81 Transpose 168 - Store 83(_mat3x4) 169 - 170: 66(bool) RayQueryGetIntersectionFrontFaceKHR 47(rayQuery) 23 - SelectionMerge 172 None - BranchConditional 170 171 172 - 171: Label - 173: 2 FunctionCall 6(doSomething() - Branch 172 - 172: Label - 174: 91(fvec2) RayQueryGetIntersectionBarycentricsKHR 47(rayQuery) 23 - 176: 8(float) CompositeExtract 174 1 - 177: 66(bool) FOrdEqual 176 27 - SelectionMerge 179 None - BranchConditional 177 178 179 - 178: Label - 180: 2 FunctionCall 6(doSomething() - Branch 179 - 179: Label - Branch 162 - 161: Label - 182: 18(int) RayQueryGetIntersectionGeometryIndexKHR 47(rayQuery) 23 - 183: 66(bool) SGreaterThan 182 19 - SelectionMerge 185 None - BranchConditional 183 184 185 - 184: Label - 186: 2 FunctionCall 6(doSomething() - Branch 185 - 185: Label - 187: 18(int) RayQueryGetIntersectionInstanceIdKHR 47(rayQuery) 23 - 188: 66(bool) SGreaterThan 187 19 - SelectionMerge 190 None - BranchConditional 188 189 190 - 189: Label - 191: 2 FunctionCall 6(doSomething() - Branch 190 - 190: Label - 192: 18(int) RayQueryGetIntersectionInstanceCustomIndexKHR 47(rayQuery) 23 - 193: 66(bool) SGreaterThan 192 19 - SelectionMerge 195 None - BranchConditional 193 194 195 - 194: Label - 196: 2 FunctionCall 6(doSomething() - Branch 195 - 195: Label - 197: 9(fvec3) RayQueryGetIntersectionObjectRayDirectionKHR 47(rayQuery) 23 - 199: 8(float) CompositeExtract 197 2 - 200: 66(bool) FOrdGreaterThan 199 27 - SelectionMerge 202 None - BranchConditional 200 201 202 - 201: Label - 203: 2 FunctionCall 6(doSomething() - Branch 202 - 202: Label - 204: 9(fvec3) RayQueryGetIntersectionObjectRayOriginKHR 47(rayQuery) 23 - 205: 8(float) CompositeExtract 204 0 - 206: 66(bool) FOrdGreaterThan 205 27 - SelectionMerge 208 None - BranchConditional 206 207 208 - 207: Label - 209: 2 FunctionCall 6(doSomething() - Branch 208 - 208: Label - 210: 18(int) RayQueryGetIntersectionPrimitiveIndexKHR 47(rayQuery) 23 - 211: 66(bool) SGreaterThan 210 19 - SelectionMerge 213 None - BranchConditional 211 212 213 - 212: Label - 214: 2 FunctionCall 6(doSomething() - Branch 213 - 213: Label - 215: 8(float) RayQueryGetIntersectionTKHR 47(rayQuery) 23 - 216: 66(bool) FOrdGreaterThan 215 27 - SelectionMerge 218 None - BranchConditional 216 217 218 - 217: Label - 219: 2 FunctionCall 6(doSomething() - Branch 218 - 218: Label - Branch 162 - 162: Label - 222: 35(ptr) AccessChain 83(_mat3x4) 19 20 - 223: 8(float) Load 222 - 224: 35(ptr) AccessChain 78(_mat4x3) 19 20 - 225: 8(float) Load 224 - 226: 66(bool) FOrdEqual 223 225 - SelectionMerge 228 None - BranchConditional 226 227 228 - 227: Label - 229: 2 FunctionCall 6(doSomething() - Branch 228 - 228: Label - 230: 14(int) RayQueryGetRayFlagsKHR 47(rayQuery) - 231: 66(bool) UGreaterThan 230 20 - SelectionMerge 233 None - BranchConditional 231 232 233 - 232: Label - 234: 2 FunctionCall 6(doSomething() - Branch 233 - 233: Label - 235: 8(float) RayQueryGetRayTMinKHR 47(rayQuery) - 236: 66(bool) FOrdGreaterThan 235 27 - SelectionMerge 238 None - BranchConditional 236 237 238 - 237: Label - 239: 2 FunctionCall 6(doSomething() - Branch 238 - 238: Label - 241: 9(fvec3) RayQueryGetWorldRayOriginKHR 47(rayQuery) - Store 240(o) 241 - 243: 9(fvec3) RayQueryGetWorldRayDirectionKHR 47(rayQuery) - Store 242(d) 243 - 244: 35(ptr) AccessChain 240(o) 20 - 245: 8(float) Load 244 - 246: 35(ptr) AccessChain 242(d) 198 - 247: 8(float) Load 246 - 248: 66(bool) FOrdEqual 245 247 - SelectionMerge 250 None - BranchConditional 248 249 250 - 249: Label - 251: 2 FunctionCall 6(doSomething() - Branch 250 - 250: Label - Return - FunctionEnd - 6(doSomething(): 2 Function None 3 - 7: Label - 22: 21(ptr) AccessChain 17 19 - Store 22 20 - 24: 21(ptr) AccessChain 17 23 - Store 24 20 - Return - FunctionEnd -12(makeRayDesc(): 10(Ray) Function None 11 - 13: Label - 26(ray): 25(ptr) Variable Function - 30: 29(ptr) AccessChain 26(ray) 19 - Store 30 28 - 34: 29(ptr) AccessChain 26(ray) 31 - Store 34 33 - 36: 35(ptr) AccessChain 26(ray) 23 - Store 36 27 - 39: 35(ptr) AccessChain 26(ray) 37 - Store 39 38 - 40: 10(Ray) Load 26(ray) - ReturnValue 40 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/rayQuery-allOps.rgen.out b/deps/glslang/Test/baseResults/rayQuery-allOps.rgen.out deleted file mode 100644 index b3a93b02..00000000 --- a/deps/glslang/Test/baseResults/rayQuery-allOps.rgen.out +++ /dev/null @@ -1,431 +0,0 @@ -rayQuery-allOps.rgen -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 257 - - Capability RayQueryKHR - Capability RayTracingNV - Extension "SPV_KHR_ray_query" - Extension "SPV_NV_ray_tracing" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint RayGenerationKHR 4 "main" - Source GLSL 460 - SourceExtension "GL_EXT_ray_query" - SourceExtension "GL_NV_ray_tracing" - Name 4 "main" - Name 6 "doSomething(" - Name 10 "Ray" - MemberName 10(Ray) 0 "pos" - MemberName 10(Ray) 1 "tmin" - MemberName 10(Ray) 2 "dir" - MemberName 10(Ray) 3 "tmax" - Name 12 "makeRayDesc(" - Name 15 "Log" - MemberName 15(Log) 0 "x" - MemberName 15(Log) 1 "y" - Name 17 "" - Name 26 "ray" - Name 43 "ray" - Name 47 "rayQuery" - Name 50 "rtas" - Name 69 "candidateType" - Name 78 "_mat4x3" - Name 83 "_mat3x4" - Name 143 "t" - Name 156 "committedStatus" - Name 240 "o" - Name 242 "d" - Name 252 "Ray" - MemberName 252(Ray) 0 "pos" - MemberName 252(Ray) 1 "tmin" - MemberName 252(Ray) 2 "dir" - MemberName 252(Ray) 3 "tmax" - Name 254 "Rays" - MemberName 254(Rays) 0 "rays" - Name 256 "" - MemberDecorate 15(Log) 0 Offset 0 - MemberDecorate 15(Log) 1 Offset 4 - Decorate 15(Log) BufferBlock - Decorate 17 DescriptorSet 0 - Decorate 17 Binding 0 - Decorate 50(rtas) DescriptorSet 0 - Decorate 50(rtas) Binding 1 - MemberDecorate 252(Ray) 0 Offset 0 - MemberDecorate 252(Ray) 1 Offset 12 - MemberDecorate 252(Ray) 2 Offset 16 - MemberDecorate 252(Ray) 3 Offset 28 - Decorate 253 ArrayStride 32 - MemberDecorate 254(Rays) 0 Offset 0 - Decorate 254(Rays) BufferBlock - Decorate 256 DescriptorSet 0 - Decorate 256 Binding 2 - 2: TypeVoid - 3: TypeFunction 2 - 8: TypeFloat 32 - 9: TypeVector 8(float) 3 - 10(Ray): TypeStruct 9(fvec3) 8(float) 9(fvec3) 8(float) - 11: TypeFunction 10(Ray) - 14: TypeInt 32 0 - 15(Log): TypeStruct 14(int) 14(int) - 16: TypePointer Uniform 15(Log) - 17: 16(ptr) Variable Uniform - 18: TypeInt 32 1 - 19: 18(int) Constant 0 - 20: 14(int) Constant 0 - 21: TypePointer Uniform 14(int) - 23: 18(int) Constant 1 - 25: TypePointer Function 10(Ray) - 27: 8(float) Constant 0 - 28: 9(fvec3) ConstantComposite 27 27 27 - 29: TypePointer Function 9(fvec3) - 31: 18(int) Constant 2 - 32: 8(float) Constant 1065353216 - 33: 9(fvec3) ConstantComposite 32 27 27 - 35: TypePointer Function 8(float) - 37: 18(int) Constant 3 - 38: 8(float) Constant 1176255488 - 45: TypeRayQueryKHR - 46: TypePointer Private 45 - 47(rayQuery): 46(ptr) Variable Private - 48: TypeAccelerationStructureKHR - 49: TypePointer UniformConstant 48 - 50(rtas): 49(ptr) Variable UniformConstant - 52: 14(int) Constant 255 - 66: TypeBool - 68: TypePointer Function 14(int) - 70: 66(bool) ConstantFalse - 76: TypeMatrix 9(fvec3) 4 - 77: TypePointer Function 76 - 80: TypeVector 8(float) 4 - 81: TypeMatrix 80(fvec4) 3 - 82: TypePointer Function 81 - 86: 66(bool) ConstantTrue - 91: TypeVector 8(float) 2 - 144: 8(float) Constant 1056964608 - 175: 14(int) Constant 1 - 198: 14(int) Constant 2 - 252(Ray): TypeStruct 9(fvec3) 8(float) 9(fvec3) 8(float) - 253: TypeRuntimeArray 252(Ray) - 254(Rays): TypeStruct 253 - 255: TypePointer Uniform 254(Rays) - 256: 255(ptr) Variable Uniform - 4(main): 2 Function None 3 - 5: Label - 43(ray): 25(ptr) Variable Function -69(candidateType): 68(ptr) Variable Function - 78(_mat4x3): 77(ptr) Variable Function - 83(_mat3x4): 82(ptr) Variable Function - 143(t): 35(ptr) Variable Function -156(committedStatus): 68(ptr) Variable Function - 240(o): 29(ptr) Variable Function - 242(d): 29(ptr) Variable Function - 44: 10(Ray) FunctionCall 12(makeRayDesc() - Store 43(ray) 44 - 51: 48 Load 50(rtas) - 53: 29(ptr) AccessChain 43(ray) 19 - 54: 9(fvec3) Load 53 - 55: 35(ptr) AccessChain 43(ray) 23 - 56: 8(float) Load 55 - 57: 29(ptr) AccessChain 43(ray) 31 - 58: 9(fvec3) Load 57 - 59: 35(ptr) AccessChain 43(ray) 37 - 60: 8(float) Load 59 - RayQueryInitializeKHR 47(rayQuery) 51 20 52 54 56 58 60 - Branch 61 - 61: Label - LoopMerge 63 64 None - Branch 65 - 65: Label - 67: 66(bool) RayQueryProceedKHR 47(rayQuery) - BranchConditional 67 62 63 - 62: Label - 71: 14(int) RayQueryGetIntersectionTypeKHR 47(rayQuery) 19 - Store 69(candidateType) 71 - 72: 14(int) Load 69(candidateType) - SelectionMerge 75 None - Switch 72 75 - case 0: 73 - case 1: 74 - 73: Label - RayQueryTerminateKHR 47(rayQuery) - 79: 76 RayQueryGetIntersectionObjectToWorldKHR 47(rayQuery) 19 - Store 78(_mat4x3) 79 - 84: 76 Load 78(_mat4x3) - 85: 81 Transpose 84 - Store 83(_mat3x4) 85 - RayQueryConfirmIntersectionKHR 47(rayQuery) - 87: 66(bool) RayQueryGetIntersectionFrontFaceKHR 47(rayQuery) 23 - SelectionMerge 89 None - BranchConditional 87 88 89 - 88: Label - 90: 2 FunctionCall 6(doSomething() - Branch 89 - 89: Label - 92: 91(fvec2) RayQueryGetIntersectionBarycentricsKHR 47(rayQuery) 23 - 93: 8(float) CompositeExtract 92 0 - 94: 66(bool) FOrdEqual 93 27 - SelectionMerge 96 None - BranchConditional 94 95 96 - 95: Label - 97: 2 FunctionCall 6(doSomething() - Branch 96 - 96: Label - 98: 18(int) RayQueryGetIntersectionInstanceCustomIndexKHR 47(rayQuery) 23 - 99: 66(bool) SGreaterThan 98 19 - SelectionMerge 101 None - BranchConditional 99 100 101 - 100: Label - 102: 2 FunctionCall 6(doSomething() - Branch 101 - 101: Label - 103: 18(int) RayQueryGetIntersectionInstanceIdKHR 47(rayQuery) 23 - 104: 66(bool) SGreaterThan 103 19 - SelectionMerge 106 None - BranchConditional 104 105 106 - 105: Label - 107: 2 FunctionCall 6(doSomething() - Branch 106 - 106: Label - 108: 9(fvec3) RayQueryGetIntersectionObjectRayDirectionKHR 47(rayQuery) 23 - 109: 8(float) CompositeExtract 108 0 - 110: 66(bool) FOrdGreaterThan 109 27 - SelectionMerge 112 None - BranchConditional 110 111 112 - 111: Label - 113: 2 FunctionCall 6(doSomething() - Branch 112 - 112: Label - 114: 9(fvec3) RayQueryGetIntersectionObjectRayOriginKHR 47(rayQuery) 23 - 115: 8(float) CompositeExtract 114 0 - 116: 66(bool) FOrdGreaterThan 115 27 - SelectionMerge 118 None - BranchConditional 116 117 118 - 117: Label - 119: 2 FunctionCall 6(doSomething() - Branch 118 - 118: Label - 120: 18(int) RayQueryGetIntersectionPrimitiveIndexKHR 47(rayQuery) 23 - 121: 66(bool) SGreaterThan 120 19 - SelectionMerge 123 None - BranchConditional 121 122 123 - 122: Label - 124: 2 FunctionCall 6(doSomething() - Branch 123 - 123: Label - 125: 8(float) RayQueryGetIntersectionTKHR 47(rayQuery) 23 - 126: 66(bool) FOrdGreaterThan 125 27 - SelectionMerge 128 None - BranchConditional 126 127 128 - 127: Label - 129: 2 FunctionCall 6(doSomething() - Branch 128 - 128: Label - 130: 14(int) RayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR 47(rayQuery) 23 - 131: 66(bool) UGreaterThan 130 20 - SelectionMerge 133 None - BranchConditional 131 132 133 - 132: Label - 134: 2 FunctionCall 6(doSomething() - Branch 133 - 133: Label - Branch 75 - 74: Label - 136: 76 RayQueryGetIntersectionObjectToWorldKHR 47(rayQuery) 19 - Store 78(_mat4x3) 136 - 137: 76 Load 78(_mat4x3) - 138: 81 Transpose 137 - Store 83(_mat3x4) 138 - 139: 66(bool) RayQueryGetIntersectionCandidateAABBOpaqueKHR 47(rayQuery) - SelectionMerge 141 None - BranchConditional 139 140 141 - 140: Label - 142: 2 FunctionCall 6(doSomething() - Branch 141 - 141: Label - Store 143(t) 144 - 145: 8(float) Load 143(t) - RayQueryGenerateIntersectionKHR 47(rayQuery) 145 - RayQueryTerminateKHR 47(rayQuery) - Branch 75 - 75: Label - Branch 64 - 64: Label - Branch 61 - 63: Label - 148: 35(ptr) AccessChain 83(_mat3x4) 19 20 - 149: 8(float) Load 148 - 150: 35(ptr) AccessChain 78(_mat4x3) 19 20 - 151: 8(float) Load 150 - 152: 66(bool) FOrdEqual 149 151 - SelectionMerge 154 None - BranchConditional 152 153 154 - 153: Label - 155: 2 FunctionCall 6(doSomething() - Branch 154 - 154: Label - 157: 14(int) RayQueryGetIntersectionTypeKHR 47(rayQuery) 23 - Store 156(committedStatus) 157 - 158: 14(int) Load 156(committedStatus) - SelectionMerge 162 None - Switch 158 162 - case 0: 159 - case 1: 160 - case 2: 161 - 159: Label - 163: 76 RayQueryGetIntersectionWorldToObjectKHR 47(rayQuery) 19 - Store 78(_mat4x3) 163 - 164: 76 Load 78(_mat4x3) - 165: 81 Transpose 164 - Store 83(_mat3x4) 165 - Branch 162 - 160: Label - 167: 76 RayQueryGetIntersectionWorldToObjectKHR 47(rayQuery) 23 - Store 78(_mat4x3) 167 - 168: 76 Load 78(_mat4x3) - 169: 81 Transpose 168 - Store 83(_mat3x4) 169 - 170: 66(bool) RayQueryGetIntersectionFrontFaceKHR 47(rayQuery) 23 - SelectionMerge 172 None - BranchConditional 170 171 172 - 171: Label - 173: 2 FunctionCall 6(doSomething() - Branch 172 - 172: Label - 174: 91(fvec2) RayQueryGetIntersectionBarycentricsKHR 47(rayQuery) 23 - 176: 8(float) CompositeExtract 174 1 - 177: 66(bool) FOrdEqual 176 27 - SelectionMerge 179 None - BranchConditional 177 178 179 - 178: Label - 180: 2 FunctionCall 6(doSomething() - Branch 179 - 179: Label - Branch 162 - 161: Label - 182: 18(int) RayQueryGetIntersectionGeometryIndexKHR 47(rayQuery) 23 - 183: 66(bool) SGreaterThan 182 19 - SelectionMerge 185 None - BranchConditional 183 184 185 - 184: Label - 186: 2 FunctionCall 6(doSomething() - Branch 185 - 185: Label - 187: 18(int) RayQueryGetIntersectionInstanceIdKHR 47(rayQuery) 23 - 188: 66(bool) SGreaterThan 187 19 - SelectionMerge 190 None - BranchConditional 188 189 190 - 189: Label - 191: 2 FunctionCall 6(doSomething() - Branch 190 - 190: Label - 192: 18(int) RayQueryGetIntersectionInstanceCustomIndexKHR 47(rayQuery) 23 - 193: 66(bool) SGreaterThan 192 19 - SelectionMerge 195 None - BranchConditional 193 194 195 - 194: Label - 196: 2 FunctionCall 6(doSomething() - Branch 195 - 195: Label - 197: 9(fvec3) RayQueryGetIntersectionObjectRayDirectionKHR 47(rayQuery) 23 - 199: 8(float) CompositeExtract 197 2 - 200: 66(bool) FOrdGreaterThan 199 27 - SelectionMerge 202 None - BranchConditional 200 201 202 - 201: Label - 203: 2 FunctionCall 6(doSomething() - Branch 202 - 202: Label - 204: 9(fvec3) RayQueryGetIntersectionObjectRayOriginKHR 47(rayQuery) 23 - 205: 8(float) CompositeExtract 204 0 - 206: 66(bool) FOrdGreaterThan 205 27 - SelectionMerge 208 None - BranchConditional 206 207 208 - 207: Label - 209: 2 FunctionCall 6(doSomething() - Branch 208 - 208: Label - 210: 18(int) RayQueryGetIntersectionPrimitiveIndexKHR 47(rayQuery) 23 - 211: 66(bool) SGreaterThan 210 19 - SelectionMerge 213 None - BranchConditional 211 212 213 - 212: Label - 214: 2 FunctionCall 6(doSomething() - Branch 213 - 213: Label - 215: 8(float) RayQueryGetIntersectionTKHR 47(rayQuery) 23 - 216: 66(bool) FOrdGreaterThan 215 27 - SelectionMerge 218 None - BranchConditional 216 217 218 - 217: Label - 219: 2 FunctionCall 6(doSomething() - Branch 218 - 218: Label - Branch 162 - 162: Label - 222: 35(ptr) AccessChain 83(_mat3x4) 19 20 - 223: 8(float) Load 222 - 224: 35(ptr) AccessChain 78(_mat4x3) 19 20 - 225: 8(float) Load 224 - 226: 66(bool) FOrdEqual 223 225 - SelectionMerge 228 None - BranchConditional 226 227 228 - 227: Label - 229: 2 FunctionCall 6(doSomething() - Branch 228 - 228: Label - 230: 14(int) RayQueryGetRayFlagsKHR 47(rayQuery) - 231: 66(bool) UGreaterThan 230 20 - SelectionMerge 233 None - BranchConditional 231 232 233 - 232: Label - 234: 2 FunctionCall 6(doSomething() - Branch 233 - 233: Label - 235: 8(float) RayQueryGetRayTMinKHR 47(rayQuery) - 236: 66(bool) FOrdGreaterThan 235 27 - SelectionMerge 238 None - BranchConditional 236 237 238 - 237: Label - 239: 2 FunctionCall 6(doSomething() - Branch 238 - 238: Label - 241: 9(fvec3) RayQueryGetWorldRayOriginKHR 47(rayQuery) - Store 240(o) 241 - 243: 9(fvec3) RayQueryGetWorldRayDirectionKHR 47(rayQuery) - Store 242(d) 243 - 244: 35(ptr) AccessChain 240(o) 20 - 245: 8(float) Load 244 - 246: 35(ptr) AccessChain 242(d) 198 - 247: 8(float) Load 246 - 248: 66(bool) FOrdEqual 245 247 - SelectionMerge 250 None - BranchConditional 248 249 250 - 249: Label - 251: 2 FunctionCall 6(doSomething() - Branch 250 - 250: Label - Return - FunctionEnd - 6(doSomething(): 2 Function None 3 - 7: Label - 22: 21(ptr) AccessChain 17 19 - Store 22 20 - 24: 21(ptr) AccessChain 17 23 - Store 24 20 - Return - FunctionEnd -12(makeRayDesc(): 10(Ray) Function None 11 - 13: Label - 26(ray): 25(ptr) Variable Function - 30: 29(ptr) AccessChain 26(ray) 19 - Store 30 28 - 34: 29(ptr) AccessChain 26(ray) 31 - Store 34 33 - 36: 35(ptr) AccessChain 26(ray) 23 - Store 36 27 - 39: 35(ptr) AccessChain 26(ray) 37 - Store 39 38 - 40: 10(Ray) Load 26(ray) - ReturnValue 40 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/rayQuery-committed.Error.rgen.out b/deps/glslang/Test/baseResults/rayQuery-committed.Error.rgen.out deleted file mode 100644 index 037f6927..00000000 --- a/deps/glslang/Test/baseResults/rayQuery-committed.Error.rgen.out +++ /dev/null @@ -1,19 +0,0 @@ -rayQuery-committed.Error.rgen -ERROR: 0:48: 'committed' : argument must be compile-time constant -ERROR: 0:53: 'committed' : argument must be compile-time constant -ERROR: 0:54: 'committed' : argument must be compile-time constant -ERROR: 0:58: 'committed' : argument must be compile-time constant -ERROR: 0:62: 'committed' : argument must be compile-time constant -ERROR: 0:66: 'committed' : argument must be compile-time constant -ERROR: 0:70: 'committed' : argument must be compile-time constant -ERROR: 0:74: 'committed' : argument must be compile-time constant -ERROR: 0:78: 'committed' : argument must be compile-time constant -ERROR: 0:82: 'committed' : argument must be compile-time constant -ERROR: 0:86: 'committed' : argument must be compile-time constant -ERROR: 0:90: 'committed' : argument must be compile-time constant -ERROR: 0:97: 'committed' : argument must be compile-time constant -ERROR: 0:100: 'committed' : argument must be compile-time constant -ERROR: 14 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/rayQuery-global.rgen.out b/deps/glslang/Test/baseResults/rayQuery-global.rgen.out deleted file mode 100644 index 7b051735..00000000 --- a/deps/glslang/Test/baseResults/rayQuery-global.rgen.out +++ /dev/null @@ -1,76 +0,0 @@ -rayQuery-global.rgen -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 44 - - Capability RayQueryKHR - Capability RayTracingKHR - Extension "SPV_KHR_ray_query" - Extension "SPV_KHR_ray_tracing" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint RayGenerationKHR 4 "main" - Source GLSL 460 - SourceExtension "GL_EXT_ray_flags_primitive_culling" - SourceExtension "GL_EXT_ray_query" - Name 4 "main" - Name 10 "otherWrapper(rq1;" - Name 9 "rq" - Name 13 "wrapper(rq1;" - Name 12 "rq" - Name 17 "rqGlobal" - Name 22 "rq2" - Name 27 "rtas" - Name 40 "rq2" - Decorate 27(rtas) DescriptorSet 0 - Decorate 27(rtas) Binding 1 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeRayQueryKHR - 7: TypePointer Private 6 - 8: TypeFunction 2 7(ptr) - 15: TypeBool - 17(rqGlobal): 7(ptr) Variable Private - 22(rq2): 7(ptr) Variable Private - 25: TypeAccelerationStructureKHR - 26: TypePointer UniformConstant 25 - 27(rtas): 26(ptr) Variable UniformConstant - 29: TypeInt 32 0 - 30: 29(int) Constant 0 - 31: 29(int) Constant 255 - 32: TypeFloat 32 - 33: TypeVector 32(float) 3 - 34: 32(float) Constant 0 - 35: 33(fvec3) ConstantComposite 34 34 34 - 36: 32(float) Constant 1065353216 - 37: 33(fvec3) ConstantComposite 36 34 34 - 40(rq2): 7(ptr) Variable Private - 4(main): 2 Function None 3 - 5: Label - 28: 25 Load 27(rtas) - RayQueryInitializeKHR 17(rqGlobal) 28 30 31 35 34 37 36 - 38: 2 FunctionCall 13(wrapper(rq1;) 17(rqGlobal) - 39: 2 FunctionCall 10(otherWrapper(rq1;) 17(rqGlobal) - 41: 25 Load 27(rtas) - RayQueryInitializeKHR 40(rq2) 41 30 31 35 34 37 36 - 42: 2 FunctionCall 13(wrapper(rq1;) 40(rq2) - 43: 2 FunctionCall 10(otherWrapper(rq1;) 40(rq2) - Return - FunctionEnd -10(otherWrapper(rq1;): 2 Function None 8 - 9(rq): 7(ptr) FunctionParameter - 11: Label - 16: 15(bool) RayQueryProceedKHR 9(rq) - 18: 15(bool) RayQueryProceedKHR 17(rqGlobal) - Return - FunctionEnd -13(wrapper(rq1;): 2 Function None 8 - 12(rq): 7(ptr) FunctionParameter - 14: Label - 19: 15(bool) RayQueryProceedKHR 12(rq) - 20: 15(bool) RayQueryProceedKHR 17(rqGlobal) - 21: 2 FunctionCall 10(otherWrapper(rq1;) 12(rq) - 23: 2 FunctionCall 10(otherWrapper(rq1;) 22(rq2) - 24: 2 FunctionCall 10(otherWrapper(rq1;) 17(rqGlobal) - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/rayQuery-initialization.Error.comp.out b/deps/glslang/Test/baseResults/rayQuery-initialization.Error.comp.out deleted file mode 100644 index 6ce7fac7..00000000 --- a/deps/glslang/Test/baseResults/rayQuery-initialization.Error.comp.out +++ /dev/null @@ -1,6 +0,0 @@ -rayQuery-initialization.Error.comp -ERROR: 0:7: '=' : ray queries can only be initialized by using the rayQueryInitializeEXT intrinsic: bar -ERROR: 1 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/rayQuery-initialize.rgen.out b/deps/glslang/Test/baseResults/rayQuery-initialize.rgen.out deleted file mode 100644 index f16facd5..00000000 --- a/deps/glslang/Test/baseResults/rayQuery-initialize.rgen.out +++ /dev/null @@ -1,166 +0,0 @@ -rayQuery-initialize.rgen -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 103 - - Capability RayQueryKHR - Capability RayTracingNV - Extension "SPV_KHR_ray_query" - Extension "SPV_NV_ray_tracing" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint RayGenerationKHR 4 "main" 23 28 - Source GLSL 460 - SourceExtension "GL_EXT_ray_query" - SourceExtension "GL_NV_ray_tracing" - Name 4 "main" - Name 8 "launchIndex(" - Name 14 "Ray" - MemberName 14(Ray) 0 "pos" - MemberName 14(Ray) 1 "tmin" - MemberName 14(Ray) 2 "dir" - MemberName 14(Ray) 3 "tmax" - Name 19 "doInitialize(rq1;struct-Ray-vf3-f1-vf3-f11;" - Name 17 "rayQuery" - Name 18 "ray" - Name 23 "gl_LaunchIDNV" - Name 28 "gl_LaunchSizeNV" - Name 50 "rtas" - Name 69 "index" - Name 71 "ray" - Name 72 "Ray" - MemberName 72(Ray) 0 "pos" - MemberName 72(Ray) 1 "tmin" - MemberName 72(Ray) 2 "dir" - MemberName 72(Ray) 3 "tmax" - Name 74 "Rays" - MemberName 74(Rays) 0 "rays" - Name 76 "" - Name 89 "rayQuery" - Name 90 "param" - Decorate 23(gl_LaunchIDNV) BuiltIn LaunchIdKHR - Decorate 28(gl_LaunchSizeNV) BuiltIn LaunchSizeKHR - Decorate 50(rtas) DescriptorSet 0 - Decorate 50(rtas) Binding 0 - MemberDecorate 72(Ray) 0 Offset 0 - MemberDecorate 72(Ray) 1 Offset 12 - MemberDecorate 72(Ray) 2 Offset 16 - MemberDecorate 72(Ray) 3 Offset 28 - Decorate 73 ArrayStride 32 - MemberDecorate 74(Rays) 0 Offset 0 - Decorate 74(Rays) BufferBlock - Decorate 76 DescriptorSet 0 - Decorate 76 Binding 2 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeFunction 6(int) - 10: TypeRayQueryKHR - 11: TypePointer Private 10 - 12: TypeFloat 32 - 13: TypeVector 12(float) 3 - 14(Ray): TypeStruct 13(fvec3) 12(float) 13(fvec3) 12(float) - 15: TypePointer Function 14(Ray) - 16: TypeFunction 2 11(ptr) 15(ptr) - 21: TypeVector 6(int) 3 - 22: TypePointer Input 21(ivec3) -23(gl_LaunchIDNV): 22(ptr) Variable Input - 24: 6(int) Constant 2 - 25: TypePointer Input 6(int) -28(gl_LaunchSizeNV): 22(ptr) Variable Input - 29: 6(int) Constant 0 - 33: 6(int) Constant 1 - 48: TypeAccelerationStructureKHR - 49: TypePointer UniformConstant 48 - 50(rtas): 49(ptr) Variable UniformConstant - 52: 6(int) Constant 16 - 53: TypeInt 32 1 - 54: 53(int) Constant 0 - 55: TypePointer Function 13(fvec3) - 58: 53(int) Constant 1 - 59: TypePointer Function 12(float) - 62: 53(int) Constant 2 - 65: 53(int) Constant 3 - 68: TypePointer Function 6(int) - 72(Ray): TypeStruct 13(fvec3) 12(float) 13(fvec3) 12(float) - 73: TypeRuntimeArray 72(Ray) - 74(Rays): TypeStruct 73 - 75: TypePointer Uniform 74(Rays) - 76: 75(ptr) Variable Uniform - 78: TypePointer Uniform 72(Ray) - 89(rayQuery): 11(ptr) Variable Private - 94: 6(int) Constant 32 - 4(main): 2 Function None 3 - 5: Label - 69(index): 68(ptr) Variable Function - 71(ray): 15(ptr) Variable Function - 90(param): 15(ptr) Variable Function - 70: 6(int) FunctionCall 8(launchIndex() - Store 69(index) 70 - 77: 6(int) Load 69(index) - 79: 78(ptr) AccessChain 76 54 77 - 80: 72(Ray) Load 79 - 81: 13(fvec3) CompositeExtract 80 0 - 82: 55(ptr) AccessChain 71(ray) 54 - Store 82 81 - 83: 12(float) CompositeExtract 80 1 - 84: 59(ptr) AccessChain 71(ray) 58 - Store 84 83 - 85: 13(fvec3) CompositeExtract 80 2 - 86: 55(ptr) AccessChain 71(ray) 62 - Store 86 85 - 87: 12(float) CompositeExtract 80 3 - 88: 59(ptr) AccessChain 71(ray) 65 - Store 88 87 - 91: 14(Ray) Load 71(ray) - Store 90(param) 91 - 92: 2 FunctionCall 19(doInitialize(rq1;struct-Ray-vf3-f1-vf3-f11;) 89(rayQuery) 90(param) - 93: 48 Load 50(rtas) - 95: 55(ptr) AccessChain 71(ray) 54 - 96: 13(fvec3) Load 95 - 97: 59(ptr) AccessChain 71(ray) 58 - 98: 12(float) Load 97 - 99: 55(ptr) AccessChain 71(ray) 62 - 100: 13(fvec3) Load 99 - 101: 59(ptr) AccessChain 71(ray) 65 - 102: 12(float) Load 101 - RayQueryInitializeKHR 89(rayQuery) 93 33 94 96 98 100 102 - Return - FunctionEnd - 8(launchIndex(): 6(int) Function None 7 - 9: Label - 26: 25(ptr) AccessChain 23(gl_LaunchIDNV) 24 - 27: 6(int) Load 26 - 30: 25(ptr) AccessChain 28(gl_LaunchSizeNV) 29 - 31: 6(int) Load 30 - 32: 6(int) IMul 27 31 - 34: 25(ptr) AccessChain 28(gl_LaunchSizeNV) 33 - 35: 6(int) Load 34 - 36: 6(int) IMul 32 35 - 37: 25(ptr) AccessChain 23(gl_LaunchIDNV) 33 - 38: 6(int) Load 37 - 39: 25(ptr) AccessChain 28(gl_LaunchSizeNV) 29 - 40: 6(int) Load 39 - 41: 6(int) IMul 38 40 - 42: 6(int) IAdd 36 41 - 43: 25(ptr) AccessChain 23(gl_LaunchIDNV) 29 - 44: 6(int) Load 43 - 45: 6(int) IAdd 42 44 - ReturnValue 45 - FunctionEnd -19(doInitialize(rq1;struct-Ray-vf3-f1-vf3-f11;): 2 Function None 16 - 17(rayQuery): 11(ptr) FunctionParameter - 18(ray): 15(ptr) FunctionParameter - 20: Label - 51: 48 Load 50(rtas) - 56: 55(ptr) AccessChain 18(ray) 54 - 57: 13(fvec3) Load 56 - 60: 59(ptr) AccessChain 18(ray) 58 - 61: 12(float) Load 60 - 63: 55(ptr) AccessChain 18(ray) 62 - 64: 13(fvec3) Load 63 - 66: 59(ptr) AccessChain 18(ray) 65 - 67: 12(float) Load 66 - RayQueryInitializeKHR 17(rayQuery) 51 29 52 57 61 64 67 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/rayQuery-no-cse.rgen.out b/deps/glslang/Test/baseResults/rayQuery-no-cse.rgen.out deleted file mode 100644 index a44c41f1..00000000 --- a/deps/glslang/Test/baseResults/rayQuery-no-cse.rgen.out +++ /dev/null @@ -1,173 +0,0 @@ -rayQuery-no-cse.rgen -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 107 - - Capability RayQueryKHR - Capability RayTracingNV - Extension "SPV_KHR_ray_query" - Extension "SPV_NV_ray_tracing" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint RayGenerationKHR 4 "main" 23 28 - Source GLSL 460 - SourceExtension "GL_EXT_ray_query" - SourceExtension "GL_NV_ray_tracing" - Name 4 "main" - Name 8 "launchIndex(" - Name 14 "Ray" - MemberName 14(Ray) 0 "pos" - MemberName 14(Ray) 1 "tmin" - MemberName 14(Ray) 2 "dir" - MemberName 14(Ray) 3 "tmax" - Name 19 "doInitialize(rq1;struct-Ray-vf3-f1-vf3-f11;" - Name 17 "rayQuery" - Name 18 "ray" - Name 23 "gl_LaunchIDNV" - Name 28 "gl_LaunchSizeNV" - Name 50 "rtas" - Name 69 "index" - Name 71 "ray" - Name 72 "Ray" - MemberName 72(Ray) 0 "pos" - MemberName 72(Ray) 1 "tmin" - MemberName 72(Ray) 2 "dir" - MemberName 72(Ray) 3 "tmax" - Name 74 "Rays" - MemberName 74(Rays) 0 "rays" - Name 76 "" - Name 89 "rayQuery1" - Name 90 "param" - Name 103 "rayQuery2" - Name 104 "param" - Decorate 23(gl_LaunchIDNV) BuiltIn LaunchIdKHR - Decorate 28(gl_LaunchSizeNV) BuiltIn LaunchSizeKHR - Decorate 50(rtas) DescriptorSet 0 - Decorate 50(rtas) Binding 0 - MemberDecorate 72(Ray) 0 Offset 0 - MemberDecorate 72(Ray) 1 Offset 12 - MemberDecorate 72(Ray) 2 Offset 16 - MemberDecorate 72(Ray) 3 Offset 28 - Decorate 73 ArrayStride 32 - MemberDecorate 74(Rays) 0 Offset 0 - Decorate 74(Rays) BufferBlock - Decorate 76 DescriptorSet 0 - Decorate 76 Binding 2 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeFunction 6(int) - 10: TypeRayQueryKHR - 11: TypePointer Private 10 - 12: TypeFloat 32 - 13: TypeVector 12(float) 3 - 14(Ray): TypeStruct 13(fvec3) 12(float) 13(fvec3) 12(float) - 15: TypePointer Function 14(Ray) - 16: TypeFunction 2 11(ptr) 15(ptr) - 21: TypeVector 6(int) 3 - 22: TypePointer Input 21(ivec3) -23(gl_LaunchIDNV): 22(ptr) Variable Input - 24: 6(int) Constant 2 - 25: TypePointer Input 6(int) -28(gl_LaunchSizeNV): 22(ptr) Variable Input - 29: 6(int) Constant 0 - 33: 6(int) Constant 1 - 48: TypeAccelerationStructureKHR - 49: TypePointer UniformConstant 48 - 50(rtas): 49(ptr) Variable UniformConstant - 52: 6(int) Constant 16 - 53: TypeInt 32 1 - 54: 53(int) Constant 0 - 55: TypePointer Function 13(fvec3) - 58: 53(int) Constant 1 - 59: TypePointer Function 12(float) - 62: 53(int) Constant 2 - 65: 53(int) Constant 3 - 68: TypePointer Function 6(int) - 72(Ray): TypeStruct 13(fvec3) 12(float) 13(fvec3) 12(float) - 73: TypeRuntimeArray 72(Ray) - 74(Rays): TypeStruct 73 - 75: TypePointer Uniform 74(Rays) - 76: 75(ptr) Variable Uniform - 78: TypePointer Uniform 72(Ray) - 89(rayQuery1): 11(ptr) Variable Private - 94: 6(int) Constant 32 - 103(rayQuery2): 11(ptr) Variable Private - 4(main): 2 Function None 3 - 5: Label - 69(index): 68(ptr) Variable Function - 71(ray): 15(ptr) Variable Function - 90(param): 15(ptr) Variable Function - 104(param): 15(ptr) Variable Function - 70: 6(int) FunctionCall 8(launchIndex() - Store 69(index) 70 - 77: 6(int) Load 69(index) - 79: 78(ptr) AccessChain 76 54 77 - 80: 72(Ray) Load 79 - 81: 13(fvec3) CompositeExtract 80 0 - 82: 55(ptr) AccessChain 71(ray) 54 - Store 82 81 - 83: 12(float) CompositeExtract 80 1 - 84: 59(ptr) AccessChain 71(ray) 58 - Store 84 83 - 85: 13(fvec3) CompositeExtract 80 2 - 86: 55(ptr) AccessChain 71(ray) 62 - Store 86 85 - 87: 12(float) CompositeExtract 80 3 - 88: 59(ptr) AccessChain 71(ray) 65 - Store 88 87 - 91: 14(Ray) Load 71(ray) - Store 90(param) 91 - 92: 2 FunctionCall 19(doInitialize(rq1;struct-Ray-vf3-f1-vf3-f11;) 89(rayQuery1) 90(param) - 93: 48 Load 50(rtas) - 95: 55(ptr) AccessChain 71(ray) 54 - 96: 13(fvec3) Load 95 - 97: 59(ptr) AccessChain 71(ray) 58 - 98: 12(float) Load 97 - 99: 55(ptr) AccessChain 71(ray) 62 - 100: 13(fvec3) Load 99 - 101: 59(ptr) AccessChain 71(ray) 65 - 102: 12(float) Load 101 - RayQueryInitializeKHR 89(rayQuery1) 93 33 94 96 98 100 102 - 105: 14(Ray) Load 71(ray) - Store 104(param) 105 - 106: 2 FunctionCall 19(doInitialize(rq1;struct-Ray-vf3-f1-vf3-f11;) 103(rayQuery2) 104(param) - Return - FunctionEnd - 8(launchIndex(): 6(int) Function None 7 - 9: Label - 26: 25(ptr) AccessChain 23(gl_LaunchIDNV) 24 - 27: 6(int) Load 26 - 30: 25(ptr) AccessChain 28(gl_LaunchSizeNV) 29 - 31: 6(int) Load 30 - 32: 6(int) IMul 27 31 - 34: 25(ptr) AccessChain 28(gl_LaunchSizeNV) 33 - 35: 6(int) Load 34 - 36: 6(int) IMul 32 35 - 37: 25(ptr) AccessChain 23(gl_LaunchIDNV) 33 - 38: 6(int) Load 37 - 39: 25(ptr) AccessChain 28(gl_LaunchSizeNV) 29 - 40: 6(int) Load 39 - 41: 6(int) IMul 38 40 - 42: 6(int) IAdd 36 41 - 43: 25(ptr) AccessChain 23(gl_LaunchIDNV) 29 - 44: 6(int) Load 43 - 45: 6(int) IAdd 42 44 - ReturnValue 45 - FunctionEnd -19(doInitialize(rq1;struct-Ray-vf3-f1-vf3-f11;): 2 Function None 16 - 17(rayQuery): 11(ptr) FunctionParameter - 18(ray): 15(ptr) FunctionParameter - 20: Label - 51: 48 Load 50(rtas) - 56: 55(ptr) AccessChain 18(ray) 54 - 57: 13(fvec3) Load 56 - 60: 59(ptr) AccessChain 18(ray) 58 - 61: 12(float) Load 60 - 63: 55(ptr) AccessChain 18(ray) 62 - 64: 13(fvec3) Load 63 - 66: 59(ptr) AccessChain 18(ray) 65 - 67: 12(float) Load 66 - RayQueryInitializeKHR 17(rayQuery) 51 29 52 57 61 64 67 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/rayQuery-types.comp.out b/deps/glslang/Test/baseResults/rayQuery-types.comp.out deleted file mode 100644 index 87a1d683..00000000 --- a/deps/glslang/Test/baseResults/rayQuery-types.comp.out +++ /dev/null @@ -1,152 +0,0 @@ -rayQuery-types.comp -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 86 - - Capability Shader - Capability RayQueryKHR - Extension "SPV_KHR_ray_query" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" - ExecutionMode 4 LocalSize 16 8 1 - Source GLSL 460 - SourceExtension "GL_EXT_ray_query" - Name 4 "main" - Name 8 "rayQuery" - Name 11 "tlas" - Name 25 "rq_proceed" - Name 35 "intersectionType" - Name 41 "rayTMin" - Name 43 "rayFlags" - Name 46 "worldRayOrigin" - Name 48 "worldDirection" - Name 50 "intersectionT" - Name 53 "customIndex" - Name 55 "instanceId" - Name 57 "sbtOffset" - Name 59 "geometryIndex" - Name 61 "primitiveIndex" - Name 65 "barys" - Name 67 "frontface" - Name 69 "aabbOpaque" - Name 71 "objRayDirection" - Name 73 "objRayOrigin" - Name 77 "objToWorld" - Name 79 "worldToObj" - Decorate 11(tlas) DescriptorSet 0 - Decorate 11(tlas) Binding 0 - Decorate 85 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeRayQueryKHR - 7: TypePointer Private 6 - 8(rayQuery): 7(ptr) Variable Private - 9: TypeAccelerationStructureKHR - 10: TypePointer UniformConstant 9 - 11(tlas): 10(ptr) Variable UniformConstant - 13: TypeInt 32 0 - 14: 13(int) Constant 0 - 15: 13(int) Constant 255 - 16: TypeFloat 32 - 17: TypeVector 16(float) 3 - 18: 16(float) Constant 0 - 19: 17(fvec3) ConstantComposite 18 18 18 - 20: 16(float) Constant 1065353216 - 21: 17(fvec3) ConstantComposite 20 18 18 - 22: 16(float) Constant 1176256512 - 23: TypeBool - 24: TypePointer Function 23(bool) - 34: TypePointer Function 13(int) - 36: 23(bool) ConstantTrue - 37: TypeInt 32 1 - 38: 37(int) Constant 1 - 40: TypePointer Function 16(float) - 45: TypePointer Function 17(fvec3) - 52: TypePointer Function 37(int) - 63: TypeVector 16(float) 2 - 64: TypePointer Function 63(fvec2) - 75: TypeMatrix 17(fvec3) 4 - 76: TypePointer Function 75 - 81: TypeVector 13(int) 3 - 82: 13(int) Constant 16 - 83: 13(int) Constant 8 - 84: 13(int) Constant 1 - 85: 81(ivec3) ConstantComposite 82 83 84 - 4(main): 2 Function None 3 - 5: Label - 25(rq_proceed): 24(ptr) Variable Function -35(intersectionType): 34(ptr) Variable Function - 41(rayTMin): 40(ptr) Variable Function - 43(rayFlags): 34(ptr) Variable Function -46(worldRayOrigin): 45(ptr) Variable Function -48(worldDirection): 45(ptr) Variable Function -50(intersectionT): 40(ptr) Variable Function - 53(customIndex): 52(ptr) Variable Function - 55(instanceId): 52(ptr) Variable Function - 57(sbtOffset): 34(ptr) Variable Function -59(geometryIndex): 52(ptr) Variable Function -61(primitiveIndex): 52(ptr) Variable Function - 65(barys): 64(ptr) Variable Function - 67(frontface): 24(ptr) Variable Function - 69(aabbOpaque): 24(ptr) Variable Function -71(objRayDirection): 45(ptr) Variable Function -73(objRayOrigin): 45(ptr) Variable Function - 77(objToWorld): 76(ptr) Variable Function - 79(worldToObj): 76(ptr) Variable Function - 12: 9 Load 11(tlas) - RayQueryInitializeKHR 8(rayQuery) 12 14 15 19 18 21 22 - 26: 23(bool) RayQueryProceedKHR 8(rayQuery) - Store 25(rq_proceed) 26 - Branch 27 - 27: Label - LoopMerge 29 30 None - Branch 31 - 31: Label - 32: 23(bool) Load 25(rq_proceed) - BranchConditional 32 28 29 - 28: Label - 33: 23(bool) RayQueryProceedKHR 8(rayQuery) - Store 25(rq_proceed) 33 - Branch 30 - 30: Label - Branch 27 - 29: Label - 39: 13(int) RayQueryGetIntersectionTypeKHR 8(rayQuery) 38 - Store 35(intersectionType) 39 - 42: 16(float) RayQueryGetRayTMinKHR 8(rayQuery) - Store 41(rayTMin) 42 - 44: 13(int) RayQueryGetRayFlagsKHR 8(rayQuery) - Store 43(rayFlags) 44 - 47: 17(fvec3) RayQueryGetWorldRayOriginKHR 8(rayQuery) - Store 46(worldRayOrigin) 47 - 49: 17(fvec3) RayQueryGetWorldRayDirectionKHR 8(rayQuery) - Store 48(worldDirection) 49 - 51: 16(float) RayQueryGetIntersectionTKHR 8(rayQuery) 38 - Store 50(intersectionT) 51 - 54: 37(int) RayQueryGetIntersectionInstanceCustomIndexKHR 8(rayQuery) 38 - Store 53(customIndex) 54 - 56: 37(int) RayQueryGetIntersectionInstanceIdKHR 8(rayQuery) 38 - Store 55(instanceId) 56 - 58: 13(int) RayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR 8(rayQuery) 38 - Store 57(sbtOffset) 58 - 60: 37(int) RayQueryGetIntersectionGeometryIndexKHR 8(rayQuery) 38 - Store 59(geometryIndex) 60 - 62: 37(int) RayQueryGetIntersectionPrimitiveIndexKHR 8(rayQuery) 38 - Store 61(primitiveIndex) 62 - 66: 63(fvec2) RayQueryGetIntersectionBarycentricsKHR 8(rayQuery) 38 - Store 65(barys) 66 - 68: 23(bool) RayQueryGetIntersectionFrontFaceKHR 8(rayQuery) 38 - Store 67(frontface) 68 - 70: 23(bool) RayQueryGetIntersectionCandidateAABBOpaqueKHR 8(rayQuery) - Store 69(aabbOpaque) 70 - 72: 17(fvec3) RayQueryGetIntersectionObjectRayDirectionKHR 8(rayQuery) 38 - Store 71(objRayDirection) 72 - 74: 17(fvec3) RayQueryGetIntersectionObjectRayOriginKHR 8(rayQuery) 38 - Store 73(objRayOrigin) 74 - 78: 75 RayQueryGetIntersectionObjectToWorldKHR 8(rayQuery) 38 - Store 77(objToWorld) 78 - 80: 75 RayQueryGetIntersectionWorldToObjectKHR 8(rayQuery) 38 - Store 79(worldToObj) 80 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/rayQuery.rgen.out b/deps/glslang/Test/baseResults/rayQuery.rgen.out deleted file mode 100644 index 06a1a5a8..00000000 --- a/deps/glslang/Test/baseResults/rayQuery.rgen.out +++ /dev/null @@ -1,82 +0,0 @@ -rayQuery.rgen -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 44 - - Capability RayQueryKHR - Capability RayTracingNV - Extension "SPV_KHR_ray_query" - Extension "SPV_NV_ray_tracing" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint RayGenerationKHR 4 "main" - Source GLSL 460 - SourceExtension "GL_EXT_ray_query" - SourceExtension "GL_NV_ray_tracing" - Name 4 "main" - Name 8 "rayFlags" - Name 12 "tMin" - Name 14 "tMax" - Name 18 "localRayQuery" - Name 21 "acc0" - Name 26 "block" - MemberName 26(block) 0 "dir" - MemberName 26(block) 1 "origin" - Name 28 "" - Decorate 21(acc0) DescriptorSet 0 - Decorate 21(acc0) Binding 0 - MemberDecorate 26(block) 0 Offset 0 - MemberDecorate 26(block) 1 Offset 16 - Decorate 26(block) BufferBlock - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: 6(int) Constant 9 - 10: TypeFloat 32 - 11: TypePointer Function 10(float) - 13: 10(float) Constant 0 - 15: 10(float) Constant 1148846080 - 16: TypeRayQueryKHR - 17: TypePointer Private 16 -18(localRayQuery): 17(ptr) Variable Private - 19: TypeAccelerationStructureKHR - 20: TypePointer UniformConstant 19 - 21(acc0): 20(ptr) Variable UniformConstant - 24: 6(int) Constant 255 - 25: TypeVector 10(float) 3 - 26(block): TypeStruct 25(fvec3) 25(fvec3) - 27: TypePointer ShaderRecordBufferKHR 26(block) - 28: 27(ptr) Variable ShaderRecordBufferKHR - 29: TypeInt 32 1 - 30: 29(int) Constant 1 - 31: TypePointer ShaderRecordBufferKHR 25(fvec3) - 35: 29(int) Constant 0 - 39: TypeBool - 4(main): 2 Function None 3 - 5: Label - 8(rayFlags): 7(ptr) Variable Function - 12(tMin): 11(ptr) Variable Function - 14(tMax): 11(ptr) Variable Function - Store 8(rayFlags) 9 - Store 12(tMin) 13 - Store 14(tMax) 15 - 22: 19 Load 21(acc0) - 23: 6(int) Load 8(rayFlags) - 32: 31(ptr) AccessChain 28 30 - 33: 25(fvec3) Load 32 - 34: 10(float) Load 12(tMin) - 36: 31(ptr) AccessChain 28 35 - 37: 25(fvec3) Load 36 - 38: 10(float) Load 14(tMax) - RayQueryInitializeKHR 18(localRayQuery) 22 23 24 33 34 37 38 - 40: 39(bool) RayQueryProceedKHR 18(localRayQuery) - 41: 39(bool) LogicalNot 40 - SelectionMerge 43 None - BranchConditional 41 42 43 - 42: Label - RayQueryTerminateKHR 18(localRayQuery) - Branch 43 - 43: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/recurse1.vert.out b/deps/glslang/Test/baseResults/recurse1.vert.out deleted file mode 100644 index 7d09b7c1..00000000 --- a/deps/glslang/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/Test/baseResults/reflection.frag.out b/deps/glslang/Test/baseResults/reflection.frag.out deleted file mode 100644 index 65a8786d..00000000 --- a/deps/glslang/Test/baseResults/reflection.frag.out +++ /dev/null @@ -1,13 +0,0 @@ -reflection.frag -Uniform reflection: - -Uniform block reflection: - -Buffer variable reflection: - -Buffer block reflection: - -Pipeline input reflection: - -Pipeline output reflection: - diff --git a/deps/glslang/Test/baseResults/reflection.linked.options.out b/deps/glslang/Test/baseResults/reflection.linked.options.out deleted file mode 100644 index a0e45ede..00000000 --- a/deps/glslang/Test/baseResults/reflection.linked.options.out +++ /dev/null @@ -1,23 +0,0 @@ -reflection.linked.vert -reflection.linked.frag -Uniform reflection: -ubo_block.unused_uniform: offset 0, type 1406, size 1, index 0, binding -1, stages 0 -ubo_block.shared_uniform: offset 4, type 1406, size 1, index 0, binding -1, stages 17 -ubo_block.vsonly_uniform: offset 8, type 1406, size 1, index 0, binding -1, stages 1 -ubo_block.fsonly_uniform: offset 12, type 1406, size 1, index 0, binding -1, stages 16 - -Uniform block reflection: -ubo_block: offset -1, type ffffffff, size 16, index 0, binding 0, stages 17, numMembers 4 - -Buffer variable reflection: - -Buffer block reflection: - -Pipeline input reflection: -vertin: offset 0, type 1406, size 1, index 0, binding -1, stages 1 -gl_VertexID: offset 0, type 1404, size 1, index 0, binding -1, stages 1 -gl_InstanceID: offset 0, type 1404, size 1, index 0, binding -1, stages 1 - -Pipeline output reflection: -fragout: offset 0, type 1406, size 1, index 0, binding -1, stages 16 - diff --git a/deps/glslang/Test/baseResults/reflection.linked.out b/deps/glslang/Test/baseResults/reflection.linked.out deleted file mode 100644 index 38742185..00000000 --- a/deps/glslang/Test/baseResults/reflection.linked.out +++ /dev/null @@ -1,20 +0,0 @@ -reflection.linked.vert -reflection.linked.frag -Uniform reflection: -ubo_block.shared_uniform: offset 4, type 1406, size 1, index 0, binding -1, stages 17 -ubo_block.vsonly_uniform: offset 8, type 1406, size 1, index 0, binding -1, stages 17 -ubo_block.fsonly_uniform: offset 12, type 1406, size 1, index 0, binding -1, stages 16 - -Uniform block reflection: -ubo_block: offset -1, type ffffffff, size 16, index 0, binding 0, stages 17, numMembers 4 - -Buffer variable reflection: - -Buffer block reflection: - -Pipeline input reflection: -vertin: offset 0, type 1406, size 1, index 0, binding -1, stages 1 - -Pipeline output reflection: -fragout: offset 0, type 1406, size 1, index 0, binding -1, stages 16 - diff --git a/deps/glslang/Test/baseResults/reflection.options.frag.out b/deps/glslang/Test/baseResults/reflection.options.frag.out deleted file mode 100644 index ec12392f..00000000 --- a/deps/glslang/Test/baseResults/reflection.options.frag.out +++ /dev/null @@ -1,14 +0,0 @@ -reflection.frag -Uniform reflection: - -Uniform block reflection: - -Buffer variable reflection: - -Buffer block reflection: - -Pipeline input reflection: -inval: offset 0, type 1406, size 1, index 0, binding -1, stages 16 - -Pipeline output reflection: - diff --git a/deps/glslang/Test/baseResults/reflection.options.geom.out b/deps/glslang/Test/baseResults/reflection.options.geom.out deleted file mode 100644 index 7ffe82de..00000000 --- a/deps/glslang/Test/baseResults/reflection.options.geom.out +++ /dev/null @@ -1,25 +0,0 @@ -reflection.options.geom -Uniform reflection: - -Uniform block reflection: - -Buffer variable reflection: - -Buffer block reflection: - -Pipeline input reflection: -gl_PerVertex.gl_Position: offset 0, type 8b52, size 1, index 0, binding -1, stages 8 -gl_PerVertex.gl_PointSize: offset 0, type 1406, size 1, index 0, binding -1, stages 8 -gl_PerVertex.gl_ClipDistance[0]: offset 0, type 1406, size 1, index 0, binding -1, stages 8 -block.Color: offset 0, type 8b50, size 1, index 0, binding -1, stages 8 -block.Texcoord: offset 0, type 8b50, size 1, index 0, binding -1, stages 8 -block.in_a: offset 0, type 8b54, size 1, index 0, binding -1, stages 8 - -Pipeline output reflection: -gl_Position: offset 0, type 8b52, size 1, index 0, binding -1, stages 8 -gl_PointSize: offset 0, type 1406, size 1, index 0, binding -1, stages 8 -gl_ClipDistance[0]: offset 0, type 1406, size 1, index 0, binding -1, stages 8 -block.Color: offset 0, type 8b52, size 1, index 0, binding -1, stages 8 -block.a: offset 0, type 8b52, size 1, index 0, binding -1, stages 8 -block.b[0]: offset 0, type 8b50, size 3, index 0, binding -1, stages 8 - diff --git a/deps/glslang/Test/baseResults/reflection.options.vert.out b/deps/glslang/Test/baseResults/reflection.options.vert.out deleted file mode 100644 index d68bf379..00000000 --- a/deps/glslang/Test/baseResults/reflection.options.vert.out +++ /dev/null @@ -1,74 +0,0 @@ -reflection.options.vert -Uniform reflection: -UBO.verts[0].position[0]: offset 0, type 1406, size 3, index 0, binding -1, stages 1, arrayStride 4, topLevelArrayStride 24 -UBO.verts[0].normal[0]: offset 12, type 1406, size 3, index 0, binding -1, stages 0, arrayStride 4, topLevelArrayStride 24 -UBO.verts[1].position[0]: offset 24, type 1406, size 3, index 0, binding -1, stages 1, arrayStride 4, topLevelArrayStride 24 -UBO.verts[1].normal[0]: offset 36, type 1406, size 3, index 0, binding -1, stages 0, arrayStride 4, topLevelArrayStride 24 -UBO.flt[0]: offset 48, type 1406, size 8, index 0, binding -1, stages 1, arrayStride 4, topLevelArrayStride 4 -UBO.unused: offset 80, type 8dc8, size 1, index 0, binding -1, stages 0 -UBO.uniform_multi[0][0][0]: offset 96, type 1406, size 2, index 0, binding -1, stages 1, arrayStride 4, topLevelArrayStride 24 -UBO.uniform_multi[0][1][0]: offset 104, type 1406, size 2, index 0, binding -1, stages 0, arrayStride 4, topLevelArrayStride 24 -UBO.uniform_multi[0][2][0]: offset 112, type 1406, size 2, index 0, binding -1, stages 0, arrayStride 4, topLevelArrayStride 24 -UBO.uniform_multi[1][0][0]: offset 120, type 1406, size 2, index 0, binding -1, stages 0, arrayStride 4, topLevelArrayStride 24 -UBO.uniform_multi[1][1][0]: offset 128, type 1406, size 2, index 0, binding -1, stages 0, arrayStride 4, topLevelArrayStride 24 -UBO.uniform_multi[1][2][0]: offset 136, type 1406, size 2, index 0, binding -1, stages 0, arrayStride 4, topLevelArrayStride 24 -UBO.uniform_multi[2][0][0]: offset 144, type 1406, size 2, index 0, binding -1, stages 0, arrayStride 4, topLevelArrayStride 24 -UBO.uniform_multi[2][1][0]: offset 152, type 1406, size 2, index 0, binding -1, stages 0, arrayStride 4, topLevelArrayStride 24 -UBO.uniform_multi[2][2][0]: offset 160, type 1406, size 2, index 0, binding -1, stages 0, arrayStride 4, topLevelArrayStride 24 -UBO.uniform_multi[3][0][0]: offset 168, type 1406, size 2, index 0, binding -1, stages 0, arrayStride 4, topLevelArrayStride 24 -UBO.uniform_multi[3][1][0]: offset 176, type 1406, size 2, index 0, binding -1, stages 0, arrayStride 4, topLevelArrayStride 24 -UBO.uniform_multi[3][2][0]: offset 184, type 1406, size 2, index 0, binding -1, stages 0, arrayStride 4, topLevelArrayStride 24 -uniform_multi[0][0][0]: offset -1, type 1406, size 2, index -1, binding -1, stages 1, arrayStride 4, topLevelArrayStride 24 -uniform_multi[0][1][0]: offset -1, type 1406, size 2, index -1, binding -1, stages 1, arrayStride 4, topLevelArrayStride 24 -uniform_multi[0][2][0]: offset -1, type 1406, size 2, index -1, binding -1, stages 1, arrayStride 4, topLevelArrayStride 24 -uniform_multi[1][0][0]: offset -1, type 1406, size 2, index -1, binding -1, stages 1, arrayStride 4, topLevelArrayStride 24 -uniform_multi[1][1][0]: offset -1, type 1406, size 2, index -1, binding -1, stages 1, arrayStride 4, topLevelArrayStride 24 -uniform_multi[1][2][0]: offset -1, type 1406, size 2, index -1, binding -1, stages 1, arrayStride 4, topLevelArrayStride 24 -uniform_multi[2][0][0]: offset -1, type 1406, size 2, index -1, binding -1, stages 1, arrayStride 4, topLevelArrayStride 24 -uniform_multi[2][1][0]: offset -1, type 1406, size 2, index -1, binding -1, stages 1, arrayStride 4, topLevelArrayStride 24 -uniform_multi[2][2][0]: offset -1, type 1406, size 2, index -1, binding -1, stages 1, arrayStride 4, topLevelArrayStride 24 -uniform_multi[3][0][0]: offset -1, type 1406, size 2, index -1, binding -1, stages 1, arrayStride 4, topLevelArrayStride 24 -uniform_multi[3][1][0]: offset -1, type 1406, size 2, index -1, binding -1, stages 1, arrayStride 4, topLevelArrayStride 24 -uniform_multi[3][2][0]: offset -1, type 1406, size 2, index -1, binding -1, stages 1, arrayStride 4, topLevelArrayStride 24 - -Uniform block reflection: -UBO: offset -1, type ffffffff, size 192, index 0, binding -1, stages 1, numMembers 7 - -Buffer variable reflection: -t[0].v[0].position[0]: offset 0, type 1406, size 3, index 0, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t[0].v[0].normal[0]: offset 12, type 1406, size 3, index 0, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t[0].v[1].position[0]: offset 24, type 1406, size 3, index 0, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t[0].v[1].normal[0]: offset 36, type 1406, size 3, index 0, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t[0].v[2].position[0]: offset 48, type 1406, size 3, index 0, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t[0].v[2].normal[0]: offset 60, type 1406, size 3, index 0, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -padding[0]: offset 360, type 1405, size 10, index 0, binding -1, stages 0, arrayStride 4, topLevelArrayStride 4 -MultipleArrays.tri[0].v[0].position[0]: offset 0, type 1406, size 3, index 1, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -MultipleArrays.tri[0].v[0].normal[0]: offset 12, type 1406, size 3, index 1, binding -1, stages 0, arrayStride 4, topLevelArrayStride 72 -MultipleArrays.tri[0].v[1].position[0]: offset 24, type 1406, size 3, index 1, binding -1, stages 0, arrayStride 4, topLevelArrayStride 72 -MultipleArrays.tri[0].v[1].normal[0]: offset 36, type 1406, size 3, index 1, binding -1, stages 0, arrayStride 4, topLevelArrayStride 72 -MultipleArrays.tri[0].v[2].position[0]: offset 48, type 1406, size 3, index 1, binding -1, stages 0, arrayStride 4, topLevelArrayStride 72 -MultipleArrays.tri[0].v[2].normal[0]: offset 60, type 1406, size 3, index 1, binding -1, stages 0, arrayStride 4, topLevelArrayStride 72 -MultipleArrays.vert[0].position[0]: offset 360, type 1406, size 3, index 1, binding -1, stages 1, arrayStride 4, topLevelArrayStride 24 -MultipleArrays.vert[0].normal[0]: offset 372, type 1406, size 3, index 1, binding -1, stages 0, arrayStride 4, topLevelArrayStride 24 -MultipleArrays.f[0]: offset 480, type 1406, size 5, index 1, binding -1, stages 1, arrayStride 4, topLevelArrayStride 4 -ArrayedBind.a: offset 0, type 1406, size 1, index 2, binding -1, stages 0 -ArrayedBind.b: offset 4, type 1406, size 1, index 2, binding -1, stages 1 - -Buffer block reflection: -VertexCollection: offset -1, type ffffffff, size 400, index 0, binding -1, stages 1, numMembers 7 -MultipleArrays: offset -1, type ffffffff, size 500, index 1, binding -1, stages 1, numMembers 9 -ArrayedBind[0]: offset -1, type ffffffff, size 8, index 2, binding -1, stages 1, numMembers 2 -ArrayedBind[1]: offset -1, type ffffffff, size 8, index 3, binding -1, stages 1, numMembers 2 -ArrayedBind[2]: offset -1, type ffffffff, size 8, index 4, binding -1, stages 1, numMembers 2 - -Pipeline input reflection: -gl_InstanceID: offset 0, type 1404, size 1, index 0, binding -1, stages 1 -gl_VertexID: offset 0, type 1404, size 1, index 0, binding -1, stages 1 - -Pipeline output reflection: -outval.val: offset 0, type 1406, size 1, index 0, binding -1, stages 1 -outval.a: offset 0, type 8b51, size 1, index 0, binding -1, stages 1 -outval.b[0]: offset 0, type 8b50, size 4, index 0, binding -1, stages 1 -outval.c: offset 0, type 8b5a, size 1, index 0, binding -1, stages 1 -outarr[0]: offset 0, type 1406, size 3, index 0, binding -1, stages 1 - diff --git a/deps/glslang/Test/baseResults/reflection.vert.out b/deps/glslang/Test/baseResults/reflection.vert.out deleted file mode 100644 index 84f690f6..00000000 --- a/deps/glslang/Test/baseResults/reflection.vert.out +++ /dev/null @@ -1,181 +0,0 @@ -reflection.vert -Uniform reflection: -named.deadMember1: offset 0, type 8b51, size 1, index 0, binding -1, stages 1 -anonDeadMember2: offset 64, type 8b52, size 1, index 1, binding -1, stages 1 -ufDead4: offset -1, type 1406, size 1, index -1, binding -1, stages 1 -anonMember1: offset 0, type 8b51, size 1, index 1, binding -1, stages 1 -uf1: offset -1, type 1406, size 1, index -1, binding -1, stages 1 -uf2: offset -1, type 1406, size 1, index -1, binding -1, stages 1 -named.member3: offset 32, type 8b52, size 1, index 0, binding -1, stages 1 -image_ui2D: offset -1, type 9063, size 1, index -1, binding -1, stages 1 -sampler_2D: offset -1, type 8b5e, size 1, index -1, binding -1, stages 1 -sampler_2DMSArray: offset -1, type 910b, size 1, index -1, binding -1, stages 1 -anonMember3: offset 80, type 8b52, size 1, index 1, binding -1, stages 1 -s.a: offset -1, type 1404, size 1, index -1, binding -1, stages 1 -named.scalar: offset 12, type 1404, size 1, index 0, binding -1, stages 1 -m23: offset 16, type 8b67, size 1, index 1, binding -1, stages 1 -scalarAfterm23: offset 48, type 1404, size 1, index 1, binding -1, stages 1 -c_m23: offset 16, type 8b67, size 1, index 2, binding -1, stages 1 -c_scalarAfterm23: offset 64, type 1404, size 1, index 2, binding -1, stages 1 -scalarBeforeArray: offset 96, type 1404, size 1, index 1, binding -1, stages 1 -floatArray: offset 112, type 1406, size 5, index 1, binding -1, stages 1, arrayStride 16, topLevelArrayStride 16 -scalarAfterArray: offset 192, type 1404, size 1, index 1, binding -1, stages 1 -named.memvec2: offset 48, type 8b50, size 1, index 0, binding -1, stages 1 -named.memf1: offset 56, type 1406, size 1, index 0, binding -1, stages 1 -named.memf2: offset 60, type 8b56, size 1, index 0, binding -1, stages 1 -named.memf3: offset 64, type 1404, size 1, index 0, binding -1, stages 1 -named.memvec2a: offset 72, type 8b50, size 1, index 0, binding -1, stages 1 -named.m22: offset 80, type 8b5a, size 7, index 0, binding -1, stages 1, arrayStride 32, topLevelArrayStride 32 -dm22: offset -1, type 8b5a, size 4, index -1, binding -1, stages 1, arrayStride 16, topLevelArrayStride 16 -m22: offset 208, type 8b5a, size 3, index 1, binding -1, stages 1, arrayStride 32, topLevelArrayStride 32 -nested.foo.n1.a: offset 0, type 1406, size 1, index 3, binding -1, stages 1 -nested.foo.n2.b: offset 16, type 1406, size 1, index 3, binding -1, stages 1 -nested.foo.n2.c: offset 20, type 1406, size 1, index 3, binding -1, stages 1 -nested.foo.n2.d: offset 24, type 1406, size 1, index 3, binding -1, stages 1 -deepA[0].d2.d1[2].va: offset -1, type 8b50, size 3, index -1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 176 -deepA[1].d2.d1[2].va: offset -1, type 8b50, size 3, index -1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 176 -deepB[1].d2.d1[0].va: offset -1, type 8b50, size 2, index -1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 176 -deepB[1].d2.d1[1].va: offset -1, type 8b50, size 2, index -1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 176 -deepB[1].d2.d1[2].va: offset -1, type 8b50, size 2, index -1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 176 -deepB[1].d2.d1[3].va: offset -1, type 8b50, size 2, index -1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 176 -deepB[0].d2.d1[0].va: offset -1, type 8b50, size 2, index -1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 176 -deepB[0].d2.d1[1].va: offset -1, type 8b50, size 2, index -1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 176 -deepB[0].d2.d1[2].va: offset -1, type 8b50, size 2, index -1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 176 -deepB[0].d2.d1[3].va: offset -1, type 8b50, size 2, index -1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 176 -deepC[1].iv4: offset -1, type 8b52, size 1, index -1, binding -1, stages 1, topLevelArrayStride 176 -deepC[1].d2.i: offset -1, type 1404, size 1, index -1, binding -1, stages 1, topLevelArrayStride 176 -deepC[1].d2.d1[0].va: offset -1, type 8b50, size 3, index -1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 176 -deepC[1].d2.d1[0].b: offset -1, type 8b56, size 1, index -1, binding -1, stages 1, topLevelArrayStride 176 -deepC[1].d2.d1[1].va: offset -1, type 8b50, size 3, index -1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 176 -deepC[1].d2.d1[1].b: offset -1, type 8b56, size 1, index -1, binding -1, stages 1, topLevelArrayStride 176 -deepC[1].d2.d1[2].va: offset -1, type 8b50, size 3, index -1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 176 -deepC[1].d2.d1[2].b: offset -1, type 8b56, size 1, index -1, binding -1, stages 1, topLevelArrayStride 176 -deepC[1].d2.d1[3].va: offset -1, type 8b50, size 3, index -1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 176 -deepC[1].d2.d1[3].b: offset -1, type 8b56, size 1, index -1, binding -1, stages 1, topLevelArrayStride 176 -deepC[1].v3: offset -1, type 8b54, size 1, index -1, binding -1, stages 1, topLevelArrayStride 176 -deepD[0].iv4: offset -1, type 8b52, size 1, index -1, binding -1, stages 1 -deepD[0].d2.i: offset -1, type 1404, size 1, index -1, binding -1, stages 1 -deepD[0].d2.d1[0].va: offset -1, type 8b50, size 3, index -1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 8 -deepD[0].d2.d1[0].b: offset -1, type 8b56, size 1, index -1, binding -1, stages 1 -deepD[0].d2.d1[1].va: offset -1, type 8b50, size 3, index -1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 8 -deepD[0].d2.d1[1].b: offset -1, type 8b56, size 1, index -1, binding -1, stages 1 -deepD[0].d2.d1[2].va: offset -1, type 8b50, size 3, index -1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 8 -deepD[0].d2.d1[2].b: offset -1, type 8b56, size 1, index -1, binding -1, stages 1 -deepD[0].d2.d1[3].va: offset -1, type 8b50, size 3, index -1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 8 -deepD[0].d2.d1[3].b: offset -1, type 8b56, size 1, index -1, binding -1, stages 1 -deepD[0].v3: offset -1, type 8b54, size 1, index -1, binding -1, stages 1 -deepD[1].iv4: offset -1, type 8b52, size 1, index -1, binding -1, stages 1 -deepD[1].d2.i: offset -1, type 1404, size 1, index -1, binding -1, stages 1 -deepD[1].d2.d1[0].va: offset -1, type 8b50, size 3, index -1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 8 -deepD[1].d2.d1[0].b: offset -1, type 8b56, size 1, index -1, binding -1, stages 1 -deepD[1].d2.d1[1].va: offset -1, type 8b50, size 3, index -1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 8 -deepD[1].d2.d1[1].b: offset -1, type 8b56, size 1, index -1, binding -1, stages 1 -deepD[1].d2.d1[2].va: offset -1, type 8b50, size 3, index -1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 8 -deepD[1].d2.d1[2].b: offset -1, type 8b56, size 1, index -1, binding -1, stages 1 -deepD[1].d2.d1[3].va: offset -1, type 8b50, size 3, index -1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 8 -deepD[1].d2.d1[3].b: offset -1, type 8b56, size 1, index -1, binding -1, stages 1 -deepD[1].v3: offset -1, type 8b54, size 1, index -1, binding -1, stages 1 -deepA[0].d2.d1[0].va: offset -1, type 8b50, size 3, index -1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 176 -deepA[0].d2.d1[0].b: offset -1, type 8b56, size 1, index -1, binding -1, stages 1, topLevelArrayStride 176 -deepA[0].d2.d1[1].va: offset -1, type 8b50, size 3, index -1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 176 -deepA[0].d2.d1[1].b: offset -1, type 8b56, size 1, index -1, binding -1, stages 1, topLevelArrayStride 176 -deepA[0].d2.d1[2].b: offset -1, type 8b56, size 1, index -1, binding -1, stages 1, topLevelArrayStride 176 -deepA[0].d2.d1[3].va: offset -1, type 8b50, size 3, index -1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 176 -deepA[0].d2.d1[3].b: offset -1, type 8b56, size 1, index -1, binding -1, stages 1, topLevelArrayStride 176 -deepA[1].d2.d1[0].va: offset -1, type 8b50, size 3, index -1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 176 -deepA[1].d2.d1[0].b: offset -1, type 8b56, size 1, index -1, binding -1, stages 1, topLevelArrayStride 176 -deepA[1].d2.d1[1].va: offset -1, type 8b50, size 3, index -1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 176 -deepA[1].d2.d1[1].b: offset -1, type 8b56, size 1, index -1, binding -1, stages 1, topLevelArrayStride 176 -deepA[1].d2.d1[2].b: offset -1, type 8b56, size 1, index -1, binding -1, stages 1, topLevelArrayStride 176 -deepA[1].d2.d1[3].va: offset -1, type 8b50, size 3, index -1, binding -1, stages 1, arrayStride 8, topLevelArrayStride 176 -deepA[1].d2.d1[3].b: offset -1, type 8b56, size 1, index -1, binding -1, stages 1, topLevelArrayStride 176 -ufDead3: offset -1, type 1406, size 1, index -1, binding -1, stages 1 -abl.foo: offset 0, type 1406, size 1, index 4, binding -1, stages 1 -abl2.foo: offset 0, type 1406, size 1, index 8, binding -1, stages 1 -buf1.runtimeArray: offset 4, type 1406, size 4, index 12, binding -1, stages 1, arrayStride 4, topLevelArrayStride 4 -buf2.runtimeArray.c: offset 8, type 1406, size 1, index 13, binding -1, stages 1, topLevelArrayStride 12 -buf3.runtimeArray: offset 4, type 1406, size 0, index 14, binding -1, stages 1, arrayStride 4, topLevelArrayStride 4 -buf4.runtimeArray.c: offset 8, type 1406, size 1, index 15, binding -1, stages 1, topLevelArrayStride 12 -nested2.a.n1.a: offset 16, type 1406, size 1, index 16, binding -1, stages 1 -nested2.a.n2.b: offset 32, type 1406, size 1, index 16, binding -1, stages 1 -nested2.a.n2.c: offset 36, type 1406, size 1, index 16, binding -1, stages 1 -nested2.a.n2.d: offset 40, type 1406, size 1, index 16, binding -1, stages 1 -nested2.b[0].a: offset 48, type 1406, size 1, index 16, binding -1, stages 1, topLevelArrayStride 16 -nested2.b[1].a: offset 64, type 1406, size 1, index 16, binding -1, stages 1, topLevelArrayStride 16 -nested2.b[2].a: offset 80, type 1406, size 1, index 16, binding -1, stages 1, topLevelArrayStride 16 -nested2.b[3].a: offset 96, type 1406, size 1, index 16, binding -1, stages 1, topLevelArrayStride 16 -nested2.c.a: offset 112, type 1406, size 1, index 16, binding -1, stages 1, topLevelArrayStride 16 -nested2.d.a: offset 144, type 1406, size 1, index 16, binding -1, stages 1, topLevelArrayStride 16 -t.v.position: offset 0, type 1406, size 1, index 17, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t.v[0].position: offset 0, type 1406, size 3, index 17, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t.v[1].position: offset 24, type 1406, size 3, index 17, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t.v[2].position: offset 48, type 1406, size 3, index 17, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t.v[0].normal: offset 12, type 1406, size 3, index 17, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t.v[1].normal: offset 36, type 1406, size 3, index 17, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t.v[2].normal: offset 60, type 1406, size 3, index 17, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t[0].v[0].position: offset 0, type 1406, size 3, index 17, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t[0].v[0].normal: offset 12, type 1406, size 3, index 17, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t[0].v[1].position: offset 24, type 1406, size 3, index 17, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t[0].v[1].normal: offset 36, type 1406, size 3, index 17, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t[0].v[2].position: offset 48, type 1406, size 3, index 17, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t[0].v[2].normal: offset 60, type 1406, size 3, index 17, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t[1].v[0].position: offset 72, type 1406, size 3, index 17, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t[1].v[0].normal: offset 84, type 1406, size 3, index 17, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t[1].v[1].position: offset 96, type 1406, size 3, index 17, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t[1].v[1].normal: offset 108, type 1406, size 3, index 17, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t[1].v[2].position: offset 120, type 1406, size 3, index 17, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t[1].v[2].normal: offset 132, type 1406, size 3, index 17, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t[2].v[0].position: offset 144, type 1406, size 3, index 17, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t[2].v[0].normal: offset 156, type 1406, size 3, index 17, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t[2].v[1].position: offset 168, type 1406, size 3, index 17, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t[2].v[1].normal: offset 180, type 1406, size 3, index 17, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t[2].v[2].position: offset 192, type 1406, size 3, index 17, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t[2].v[2].normal: offset 204, type 1406, size 3, index 17, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t[3].v[0].position: offset 216, type 1406, size 3, index 17, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t[3].v[0].normal: offset 228, type 1406, size 3, index 17, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t[3].v[1].position: offset 240, type 1406, size 3, index 17, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t[3].v[1].normal: offset 252, type 1406, size 3, index 17, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t[3].v[2].position: offset 264, type 1406, size 3, index 17, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t[3].v[2].normal: offset 276, type 1406, size 3, index 17, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t[4].v[0].position: offset 288, type 1406, size 3, index 17, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t[4].v[0].normal: offset 300, type 1406, size 3, index 17, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t[4].v[1].position: offset 312, type 1406, size 3, index 17, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t[4].v[1].normal: offset 324, type 1406, size 3, index 17, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t[4].v[2].position: offset 336, type 1406, size 3, index 17, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 -t[4].v[2].normal: offset 348, type 1406, size 3, index 17, binding -1, stages 1, arrayStride 4, topLevelArrayStride 72 - -Uniform block reflection: -named: offset -1, type ffffffff, size 304, index 0, binding -1, stages 1, numMembers 10 -nameless: offset -1, type ffffffff, size 496, index 1, binding -1, stages 1, numMembers 9 -c_nameless: offset -1, type ffffffff, size 112, index 2, binding -1, stages 1, numMembers 5 -nested: offset -1, type ffffffff, size 32, index 3, binding -1, stages 1, numMembers 4 -abl[0]: offset -1, type ffffffff, size 4, index 4, binding -1, stages 1, numMembers 1 -abl[1]: offset -1, type ffffffff, size 4, index 5, binding -1, stages 1, numMembers 1 -abl[2]: offset -1, type ffffffff, size 4, index 6, binding -1, stages 1, numMembers 1 -abl[3]: offset -1, type ffffffff, size 4, index 7, binding -1, stages 1, numMembers 1 -abl2[0]: offset -1, type ffffffff, size 4, index 8, binding -1, stages 1, numMembers 1 -abl2[1]: offset -1, type ffffffff, size 4, index 9, binding -1, stages 1, numMembers 1 -abl2[2]: offset -1, type ffffffff, size 4, index 10, binding -1, stages 1, numMembers 1 -abl2[3]: offset -1, type ffffffff, size 4, index 11, binding -1, stages 1, numMembers 1 -buf1: offset -1, type ffffffff, size 8, index 12, binding -1, stages 1, numMembers 2 -buf2: offset -1, type ffffffff, size 16, index 13, binding -1, stages 1, numMembers 4 -buf3: offset -1, type ffffffff, size 8, index 14, binding -1, stages 1, numMembers 2 -buf4: offset -1, type ffffffff, size 16, index 15, binding -1, stages 1, numMembers 4 -nested2: offset -1, type ffffffff, size 208, index 16, binding -1, stages 1, numMembers 15 -VertexCollection: offset -1, type ffffffff, size 400, index 17, binding -1, stages 1, numMembers 31 - -Buffer variable reflection: - -Buffer block reflection: - -Pipeline input reflection: -attributeFloat: offset 0, type 1406, size 1, index 0, binding -1, stages 1 -attributeFloat2: offset 0, type 8b50, size 1, index 0, binding -1, stages 1 -attributeFloat3: offset 0, type 8b51, size 1, index 0, binding -1, stages 1 -attributeFloat4: offset 0, type 8b52, size 1, index 0, binding -1, stages 1 -attributeMat4: offset 0, type 8b5c, size 1, index 0, binding -1, stages 1 -attributeFloatArray: offset 0, type 1406, size 3, index 0, binding -1, stages 1 -gl_InstanceID: offset 0, type 1404, size 1, index 0, binding -1, stages 1 - -Pipeline output reflection: - diff --git a/deps/glslang/Test/baseResults/remap.basic.dcefunc.frag.out b/deps/glslang/Test/baseResults/remap.basic.dcefunc.frag.out deleted file mode 100644 index c531eba4..00000000 --- a/deps/glslang/Test/baseResults/remap.basic.dcefunc.frag.out +++ /dev/null @@ -1,35 +0,0 @@ -remap.basic.dcefunc.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// 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" - Decorate 17(outf4) Location 0 - Decorate 19(inf) Location 0 - 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/Test/baseResults/remap.basic.dcevartype.frag.out b/deps/glslang/Test/baseResults/remap.basic.dcevartype.frag.out deleted file mode 100644 index dd03946d..00000000 --- a/deps/glslang/Test/baseResults/remap.basic.dcevartype.frag.out +++ /dev/null @@ -1,12 +0,0 @@ -remap.basic.dcevartype.frag -ERROR: #version: ES shaders for Vulkan SPIR-V require version 310 or higher -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. -ERROR: 1 compilation errors. No code generated. - - - -Linked fragment stage: - -ERROR: Linking fragment stage: Missing entry point: Each stage requires one "void main()" entry point - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/remap.basic.everything.frag.out b/deps/glslang/Test/baseResults/remap.basic.everything.frag.out deleted file mode 100644 index d483f20e..00000000 --- a/deps/glslang/Test/baseResults/remap.basic.everything.frag.out +++ /dev/null @@ -1,27 +0,0 @@ -remap.basic.everything.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 24969 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 5663 "main" 4539 3773 - ExecutionMode 5663 OriginUpperLeft - Decorate 4539 Location 0 - Decorate 3773 Location 0 - 8: TypeVoid - 1282: TypeFunction 8 - 13: TypeFloat 32 - 29: TypeVector 13(float) 4 - 666: TypePointer Output 29(fvec4) - 4539: 666(ptr) Variable Output - 650: TypePointer Input 13(float) - 3773: 650(ptr) Variable Input - 5663: 8 Function None 1282 - 24968: Label - 17486: 13(float) Load 3773 - 17691: 29(fvec4) CompositeConstruct 17486 17486 17486 17486 - Store 4539 17691 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/remap.basic.none.frag.out b/deps/glslang/Test/baseResults/remap.basic.none.frag.out deleted file mode 100644 index 34f64c8b..00000000 --- a/deps/glslang/Test/baseResults/remap.basic.none.frag.out +++ /dev/null @@ -1,40 +0,0 @@ -remap.basic.none.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 22 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 17 19 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - Name 4 "main" - Name 9 "dead_fn(" - Name 17 "outf4" - Name 19 "inf" - Decorate 17(outf4) Location 0 - Decorate 19(inf) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 3 - 8: TypeFunction 7(fvec3) - 11: 6(float) Constant 0 - 12: 7(fvec3) ConstantComposite 11 11 11 - 15: TypeVector 6(float) 4 - 16: TypePointer Output 15(fvec4) - 17(outf4): 16(ptr) Variable Output - 18: TypePointer Input 6(float) - 19(inf): 18(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 20: 6(float) Load 19(inf) - 21: 15(fvec4) CompositeConstruct 20 20 20 20 - Store 17(outf4) 21 - Return - FunctionEnd - 9(dead_fn(): 7(fvec3) Function None 8 - 10: Label - ReturnValue 12 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/remap.basic.strip.frag.out b/deps/glslang/Test/baseResults/remap.basic.strip.frag.out deleted file mode 100644 index f1d77691..00000000 --- a/deps/glslang/Test/baseResults/remap.basic.strip.frag.out +++ /dev/null @@ -1,35 +0,0 @@ -remap.basic.strip.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// 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 - Decorate 17 Location 0 - Decorate 19 Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 3 - 8: TypeFunction 7(fvec3) - 11: 6(float) Constant 0 - 12: 7(fvec3) ConstantComposite 11 11 11 - 15: TypeVector 6(float) 4 - 16: TypePointer Output 15(fvec4) - 17: 16(ptr) Variable Output - 18: TypePointer Input 6(float) - 19: 18(ptr) Variable Input - 4: 2 Function None 3 - 5: Label - 20: 6(float) Load 19 - 21: 15(fvec4) CompositeConstruct 20 20 20 20 - Store 17 21 - Return - FunctionEnd - 9: 7(fvec3) Function None 8 - 10: Label - ReturnValue 12 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out b/deps/glslang/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out deleted file mode 100644 index 88c516fb..00000000 --- a/deps/glslang/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out +++ /dev/null @@ -1,240 +0,0 @@ -remap.hlsl.sample.basic.everything.frag -WARNING: 0:4: 'immediate sampler state' : unimplemented - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 24878 - - Capability Shader - Capability Sampled1D - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 5663 "main" 4253 3709 - ExecutionMode 5663 OriginUpperLeft - ExecutionMode 5663 DepthReplacing - Decorate 4727 DescriptorSet 0 - Decorate 4727 Binding 0 - Decorate 3305 DescriptorSet 0 - Decorate 3305 Binding 0 - Decorate 4743 DescriptorSet 0 - Decorate 4743 Binding 2 - Decorate 4807 DescriptorSet 0 - Decorate 4807 Binding 3 - Decorate 5042 DescriptorSet 0 - Decorate 5042 Binding 4 - Decorate 5058 DescriptorSet 0 - Decorate 5058 Binding 5 - Decorate 5122 DescriptorSet 0 - Decorate 5122 Binding 6 - Decorate 3967 DescriptorSet 0 - Decorate 3967 Binding 7 - Decorate 3983 DescriptorSet 0 - Decorate 3983 Binding 8 - Decorate 4047 DescriptorSet 0 - Decorate 4047 Binding 9 - Decorate 3789 DescriptorSet 0 - Decorate 3789 Binding 10 - Decorate 3805 DescriptorSet 0 - Decorate 3805 Binding 11 - Decorate 3869 DescriptorSet 0 - Decorate 3869 Binding 12 - Decorate 4253 Location 0 - Decorate 3709 BuiltIn FragDepth - 8: TypeVoid - 1282: TypeFunction 8 - 13: TypeFloat 32 - 29: TypeVector 13(float) 4 - 1032: TypeStruct 29(fvec4) 13(float) - 319: TypeFunction 1032(struct) - 12: TypeInt 32 1 - 1335: TypeStruct 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) - 1972: TypePointer Function 1335(struct) - 2574: 12(int) Constant 1 - 649: TypePointer Function 12(int) - 2577: 12(int) Constant 2 - 2580: 12(int) Constant 3 - 2583: 12(int) Constant 4 - 2586: 12(int) Constant 5 - 2589: 12(int) Constant 6 - 2571: 12(int) Constant 0 - 2592: 12(int) Constant 7 - 2595: 12(int) Constant 8 - 2598: 12(int) Constant 9 - 2601: 12(int) Constant 10 - 2604: 12(int) Constant 11 - 666: TypePointer Function 29(fvec4) - 149: TypeImage 13(float) 1D sampled format:Unknown - 786: TypePointer UniformConstant 149 - 4727: 786(ptr) Variable UniformConstant - 508: TypeSampler - 1145: TypePointer UniformConstant 508 - 3305: 1145(ptr) Variable UniformConstant - 510: TypeSampledImage 149 - 2935: 13(float) Constant 1036831949 - 26: TypeVector 12(int) 4 - 148: TypeImage 12(int) 1D sampled format:Unknown - 785: TypePointer UniformConstant 148 - 4743: 785(ptr) Variable UniformConstant - 511: TypeSampledImage 148 - 2821: 13(float) Constant 1045220557 - 11: TypeInt 32 0 - 23: TypeVector 11(int) 4 - 147: TypeImage 11(int) 1D sampled format:Unknown - 784: TypePointer UniformConstant 147 - 4807: 784(ptr) Variable UniformConstant - 512: TypeSampledImage 147 - 2151: 13(float) Constant 1050253722 - 150: TypeImage 13(float) 2D sampled format:Unknown - 787: TypePointer UniformConstant 150 - 5042: 787(ptr) Variable UniformConstant - 513: TypeSampledImage 150 - 19: TypeVector 13(float) 2 - 1825: 19(fvec2) ConstantComposite 2935 2821 - 151: TypeImage 12(int) 2D sampled format:Unknown - 788: TypePointer UniformConstant 151 - 5058: 788(ptr) Variable UniformConstant - 514: TypeSampledImage 151 - 2707: 13(float) Constant 1053609165 - 2028: 19(fvec2) ConstantComposite 2151 2707 - 152: TypeImage 11(int) 2D sampled format:Unknown - 789: TypePointer UniformConstant 152 - 5122: 789(ptr) Variable UniformConstant - 515: TypeSampledImage 152 - 252: 13(float) Constant 1056964608 - 2037: 13(float) Constant 1058642330 - 2684: 19(fvec2) ConstantComposite 252 2037 - 153: TypeImage 13(float) 3D sampled format:Unknown - 790: TypePointer UniformConstant 153 - 3967: 790(ptr) Variable UniformConstant - 516: TypeSampledImage 153 - 24: TypeVector 13(float) 3 - 1660: 24(fvec3) ConstantComposite 2935 2821 2151 - 154: TypeImage 12(int) 3D sampled format:Unknown - 791: TypePointer UniformConstant 154 - 3983: 791(ptr) Variable UniformConstant - 517: TypeSampledImage 154 - 2174: 24(fvec3) ConstantComposite 2707 252 2037 - 155: TypeImage 11(int) 3D sampled format:Unknown - 792: TypePointer UniformConstant 155 - 4047: 792(ptr) Variable UniformConstant - 518: TypeSampledImage 155 - 808: 13(float) Constant 1060320051 - 2593: 13(float) Constant 1061997773 - 1364: 13(float) Constant 1063675494 - 2476: 24(fvec3) ConstantComposite 808 2593 1364 - 156: TypeImage 13(float) Cube sampled format:Unknown - 793: TypePointer UniformConstant 156 - 3789: 793(ptr) Variable UniformConstant - 519: TypeSampledImage 156 - 157: TypeImage 12(int) Cube sampled format:Unknown - 794: TypePointer UniformConstant 157 - 3805: 794(ptr) Variable UniformConstant - 520: TypeSampledImage 157 - 158: TypeImage 11(int) Cube sampled format:Unknown - 795: TypePointer UniformConstant 158 - 3869: 795(ptr) Variable UniformConstant - 521: TypeSampledImage 158 - 1669: TypePointer Function 1032(struct) - 138: 13(float) Constant 1065353216 - 1284: 29(fvec4) ConstantComposite 138 138 138 138 - 650: TypePointer Function 13(float) - 667: TypePointer Output 29(fvec4) - 4253: 667(ptr) Variable Output - 651: TypePointer Output 13(float) - 3709: 651(ptr) Variable Output - 5663: 8 Function None 1282 - 24877: Label - 4104: 1669(ptr) Variable Function - 18803:1032(struct) FunctionCall 3317 - Store 4104 18803 - 13396: 666(ptr) AccessChain 4104 2571 - 7967: 29(fvec4) Load 13396 - Store 4253 7967 - 16622: 650(ptr) AccessChain 4104 2574 - 11539: 13(float) Load 16622 - Store 3709 11539 - Return - FunctionEnd - 3317:1032(struct) Function None 319 - 12442: Label - 5830: 1972(ptr) Variable Function - 5072: 1669(ptr) Variable Function - 22671: 649(ptr) AccessChain 5830 2574 - Store 22671 2574 - 20306: 649(ptr) AccessChain 5830 2577 - Store 20306 2574 - 20307: 649(ptr) AccessChain 5830 2580 - Store 20307 2574 - 20308: 649(ptr) AccessChain 5830 2583 - Store 20308 2574 - 20309: 649(ptr) AccessChain 5830 2586 - Store 20309 2574 - 20310: 649(ptr) AccessChain 5830 2589 - Store 20310 2574 - 20311: 649(ptr) AccessChain 5830 2571 - Store 20311 2574 - 20312: 649(ptr) AccessChain 5830 2592 - Store 20312 2574 - 20313: 649(ptr) AccessChain 5830 2595 - Store 20313 2574 - 20314: 649(ptr) AccessChain 5830 2598 - Store 20314 2574 - 20315: 649(ptr) AccessChain 5830 2601 - Store 20315 2574 - 20230: 649(ptr) AccessChain 5830 2604 - Store 20230 2574 - 15508: 149 Load 4727 - 12260: 508 Load 3305 - 12514: 510 SampledImage 15508 12260 - 21065: 29(fvec4) ImageSampleImplicitLod 12514 2935 - 9477: 148 Load 4743 - 16280: 508 Load 3305 - 12515: 511 SampledImage 9477 16280 - 21066: 26(ivec4) ImageSampleImplicitLod 12515 2821 - 9478: 147 Load 4807 - 16281: 508 Load 3305 - 12516: 512 SampledImage 9478 16281 - 21067: 23(ivec4) ImageSampleImplicitLod 12516 2151 - 9479: 150 Load 5042 - 16282: 508 Load 3305 - 12517: 513 SampledImage 9479 16282 - 21068: 29(fvec4) ImageSampleImplicitLod 12517 1825 - 9480: 151 Load 5058 - 16283: 508 Load 3305 - 12518: 514 SampledImage 9480 16283 - 21069: 26(ivec4) ImageSampleImplicitLod 12518 2028 - 9481: 152 Load 5122 - 16284: 508 Load 3305 - 12519: 515 SampledImage 9481 16284 - 21070: 23(ivec4) ImageSampleImplicitLod 12519 2684 - 9482: 153 Load 3967 - 16285: 508 Load 3305 - 12520: 516 SampledImage 9482 16285 - 21071: 29(fvec4) ImageSampleImplicitLod 12520 1660 - 9483: 154 Load 3983 - 16286: 508 Load 3305 - 12521: 517 SampledImage 9483 16286 - 21072: 26(ivec4) ImageSampleImplicitLod 12521 2174 - 9484: 155 Load 4047 - 16287: 508 Load 3305 - 12522: 518 SampledImage 9484 16287 - 21073: 23(ivec4) ImageSampleImplicitLod 12522 2476 - 9485: 156 Load 3789 - 16288: 508 Load 3305 - 12523: 519 SampledImage 9485 16288 - 21074: 29(fvec4) ImageSampleImplicitLod 12523 1660 - 9486: 157 Load 3805 - 16289: 508 Load 3305 - 12524: 520 SampledImage 9486 16289 - 21075: 26(ivec4) ImageSampleImplicitLod 12524 2174 - 9487: 158 Load 3869 - 16290: 508 Load 3305 - 12590: 521 SampledImage 9487 16290 - 20392: 23(ivec4) ImageSampleImplicitLod 12590 2476 - 14275: 666(ptr) AccessChain 5072 2571 - Store 14275 1284 - 20231: 650(ptr) AccessChain 5072 2574 - Store 20231 138 - 8692:1032(struct) Load 5072 - ReturnValue 8692 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/remap.hlsl.sample.basic.none.frag.out b/deps/glslang/Test/baseResults/remap.hlsl.sample.basic.none.frag.out deleted file mode 100644 index 465b0240..00000000 --- a/deps/glslang/Test/baseResults/remap.hlsl.sample.basic.none.frag.out +++ /dev/null @@ -1,327 +0,0 @@ -remap.hlsl.sample.basic.none.frag -WARNING: 0:4: 'immediate sampler state' : unimplemented - -// Module Version 10000 -// Generated by (magic number): 8000a -// 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 60(g_tTex1di4) Binding 2 - Decorate 73(g_tTex1du4) DescriptorSet 0 - Decorate 73(g_tTex1du4) Binding 3 - Decorate 83(g_tTex2df4) DescriptorSet 0 - Decorate 83(g_tTex2df4) Binding 4 - Decorate 94(g_tTex2di4) DescriptorSet 0 - Decorate 94(g_tTex2di4) Binding 5 - Decorate 105(g_tTex2du4) DescriptorSet 0 - Decorate 105(g_tTex2du4) Binding 6 - Decorate 117(g_tTex3df4) DescriptorSet 0 - Decorate 117(g_tTex3df4) Binding 7 - Decorate 128(g_tTex3di4) DescriptorSet 0 - Decorate 128(g_tTex3di4) Binding 8 - Decorate 138(g_tTex3du4) DescriptorSet 0 - Decorate 138(g_tTex3du4) Binding 9 - Decorate 151(g_tTexcdf4) DescriptorSet 0 - Decorate 151(g_tTexcdf4) Binding 10 - Decorate 160(g_tTexcdi4) DescriptorSet 0 - Decorate 160(g_tTexcdi4) Binding 11 - Decorate 169(g_tTexcdu4) DescriptorSet 0 - Decorate 169(g_tTexcdu4) Binding 12 - Decorate 188(@entryPointOutput.Color) Location 0 - Decorate 192(@entryPointOutput.Depth) BuiltIn FragDepth - Decorate 195(g_sSamp2d) DescriptorSet 0 - Decorate 195(g_sSamp2d) Binding 0 - Decorate 196(g_sSamp2D_b) DescriptorSet 0 - Decorate 196(g_sSamp2D_b) Binding 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/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out b/deps/glslang/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out deleted file mode 100644 index 4fb92182..00000000 --- a/deps/glslang/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out +++ /dev/null @@ -1,275 +0,0 @@ -remap.hlsl.sample.basic.strip.frag -WARNING: 0:4: 'immediate sampler state' : unimplemented - -// Module Version 10000 -// Generated by (magic number): 8000a -// 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 60 Binding 2 - Decorate 73 DescriptorSet 0 - Decorate 73 Binding 3 - Decorate 83 DescriptorSet 0 - Decorate 83 Binding 4 - Decorate 94 DescriptorSet 0 - Decorate 94 Binding 5 - Decorate 105 DescriptorSet 0 - Decorate 105 Binding 6 - Decorate 117 DescriptorSet 0 - Decorate 117 Binding 7 - Decorate 128 DescriptorSet 0 - Decorate 128 Binding 8 - Decorate 138 DescriptorSet 0 - Decorate 138 Binding 9 - Decorate 151 DescriptorSet 0 - Decorate 151 Binding 10 - Decorate 160 DescriptorSet 0 - Decorate 160 Binding 11 - Decorate 169 DescriptorSet 0 - Decorate 169 Binding 12 - Decorate 188 Location 0 - Decorate 192 BuiltIn FragDepth - Decorate 195 DescriptorSet 0 - Decorate 195 Binding 0 - Decorate 196 DescriptorSet 0 - Decorate 196 Binding 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/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out b/deps/glslang/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out deleted file mode 100644 index f1e35355..00000000 --- a/deps/glslang/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out +++ /dev/null @@ -1,38 +0,0 @@ -remap.hlsl.templatetypes.everything.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 24954 - - Capability Shader - Capability Float64 - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 5663 "main" 4872 4045 - ExecutionMode 5663 OriginUpperLeft - Decorate 4872 Location 0 - Decorate 4045 Location 0 - 8: TypeVoid - 1282: TypeFunction 8 - 13: TypeFloat 32 - 29: TypeVector 13(float) 4 - 666: TypePointer Function 29(fvec4) - 255: TypeFunction 13(float) 666(ptr) - 2572: 13(float) Constant 0 - 667: TypePointer Input 29(fvec4) - 4872: 667(ptr) Variable Input - 650: TypePointer Output 13(float) - 4045: 650(ptr) Variable Output - 5663: 8 Function None 1282 - 24953: Label - 5786: 666(ptr) Variable Function - 24021: 29(fvec4) Load 4872 - Store 5786 24021 - 9338: 13(float) FunctionCall 3917 5786 - Store 4045 9338 - Return - FunctionEnd - 3917: 13(float) Function None 255 - 10636: 666(ptr) FunctionParameter - 10637: Label - ReturnValue 2572 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/remap.hlsl.templatetypes.none.frag.out b/deps/glslang/Test/baseResults/remap.hlsl.templatetypes.none.frag.out deleted file mode 100644 index 226f2c6e..00000000 --- a/deps/glslang/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): 8000a -// 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/Test/baseResults/remap.if.everything.frag.out b/deps/glslang/Test/baseResults/remap.if.everything.frag.out deleted file mode 100644 index 3a521be9..00000000 --- a/deps/glslang/Test/baseResults/remap.if.everything.frag.out +++ /dev/null @@ -1,43 +0,0 @@ -remap.if.everything.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 22855 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 5663 "main" 3773 4539 - ExecutionMode 5663 OriginUpperLeft - Decorate 3773 Location 0 - Decorate 4539 Location 0 - 8: TypeVoid - 1282: TypeFunction 8 - 13: TypeFloat 32 - 650: TypePointer Input 13(float) - 3773: 650(ptr) Variable Input - 24: 13(float) Constant 1073741824 - 9: TypeBool - 29: TypeVector 13(float) 4 - 666: TypePointer Output 29(fvec4) - 4539: 666(ptr) Variable Output - 947: 13(float) Constant 3204448256 - 5663: 8 Function None 1282 - 7911: Label - 21734: 13(float) Load 3773 - 13508: 9(bool) FOrdGreaterThan 21734 24 - SelectionMerge 19578 None - BranchConditional 13508 13182 10142 - 13182: Label - 9496: 13(float) Load 3773 - 17615: 29(fvec4) CompositeConstruct 9496 9496 9496 9496 - Store 4539 17615 - Branch 19578 - 10142: Label - 22854: 13(float) Load 3773 - 9982: 13(float) FAdd 22854 947 - 12421: 29(fvec4) CompositeConstruct 9982 9982 9982 9982 - Store 4539 12421 - Branch 19578 - 19578: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/remap.if.none.frag.out b/deps/glslang/Test/baseResults/remap.if.none.frag.out deleted file mode 100644 index cb2d31b0..00000000 --- a/deps/glslang/Test/baseResults/remap.if.none.frag.out +++ /dev/null @@ -1,47 +0,0 @@ -remap.if.none.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 25 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 8 17 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - Name 4 "main" - Name 8 "inf" - Name 17 "outf4" - Decorate 8(inf) Location 0 - Decorate 17(outf4) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypePointer Input 6(float) - 8(inf): 7(ptr) Variable Input - 10: 6(float) Constant 1073741824 - 11: TypeBool - 15: TypeVector 6(float) 4 - 16: TypePointer Output 15(fvec4) - 17(outf4): 16(ptr) Variable Output - 22: 6(float) Constant 3204448256 - 4(main): 2 Function None 3 - 5: Label - 9: 6(float) Load 8(inf) - 12: 11(bool) FOrdGreaterThan 9 10 - SelectionMerge 14 None - BranchConditional 12 13 20 - 13: Label - 18: 6(float) Load 8(inf) - 19: 15(fvec4) CompositeConstruct 18 18 18 18 - Store 17(outf4) 19 - Branch 14 - 20: Label - 21: 6(float) Load 8(inf) - 23: 6(float) FAdd 21 22 - 24: 15(fvec4) CompositeConstruct 23 23 23 23 - Store 17(outf4) 24 - Branch 14 - 14: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/remap.invalid-spirv-1.out b/deps/glslang/Test/baseResults/remap.invalid-spirv-1.out deleted file mode 100644 index 91b4b6d9..00000000 --- a/deps/glslang/Test/baseResults/remap.invalid-spirv-1.out +++ /dev/null @@ -1 +0,0 @@ -ID out of range: 4160749568 diff --git a/deps/glslang/Test/baseResults/remap.invalid-spirv-2.out b/deps/glslang/Test/baseResults/remap.invalid-spirv-2.out deleted file mode 100644 index 808b9b87..00000000 --- a/deps/glslang/Test/baseResults/remap.invalid-spirv-2.out +++ /dev/null @@ -1 +0,0 @@ -ID not found diff --git a/deps/glslang/Test/baseResults/remap.literal64.everything.spv.out b/deps/glslang/Test/baseResults/remap.literal64.everything.spv.out deleted file mode 100644 index 7a4f37ba..00000000 --- a/deps/glslang/Test/baseResults/remap.literal64.everything.spv.out +++ /dev/null @@ -1,7 +0,0 @@ -remap.literal64.everything.spv -// Module Version 10100 -// Generated by (magic number): 70000 -// Id's are bound by 0 - - Capability Shader - MemoryModel Logical GLSL450 diff --git a/deps/glslang/Test/baseResults/remap.literal64.none.spv.out b/deps/glslang/Test/baseResults/remap.literal64.none.spv.out deleted file mode 100644 index d88992fc..00000000 --- a/deps/glslang/Test/baseResults/remap.literal64.none.spv.out +++ /dev/null @@ -1,25 +0,0 @@ -remap.literal64.none.spv -// Module Version 10100 -// Generated by (magic number): 70000 -// Id's are bound by 10 - - Capability Shader - MemoryModel Logical GLSL450 - 1: TypeVoid - 2: TypeInt 64 1 - 3: TypeFunction 1 - 4: 2(int64_t) Constant 0 0 - 5: 1 Function None 3 - 6: Label - SelectionMerge 7 None - Switch 4 7 - case 0: 0 - case 8: 1 - case 0: 9 - 8: Label - Branch 7 - 9: Label - Branch 7 - 7: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/remap.similar_1a.everything.frag.out b/deps/glslang/Test/baseResults/remap.similar_1a.everything.frag.out deleted file mode 100644 index 993dc1c1..00000000 --- a/deps/glslang/Test/baseResults/remap.similar_1a.everything.frag.out +++ /dev/null @@ -1,117 +0,0 @@ -remap.similar_1a.everything.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 24916 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 5663 "main" 4201 4539 3773 - ExecutionMode 5663 OriginUpperLeft - Decorate 4201 Flat - Decorate 4201 Location 1 - Decorate 4539 Location 0 - Decorate 3773 Location 0 - 8: TypeVoid - 1282: TypeFunction 8 - 12: TypeInt 32 1 - 649: TypePointer Function 12(int) - 13: TypeFloat 32 - 204: TypeFunction 13(float) 649(ptr) - 650: TypePointer Function 13(float) - 2572: 13(float) Constant 0 - 2571: 12(int) Constant 0 - 9: TypeBool - 252: 13(float) Constant 1056964608 - 2574: 12(int) Constant 1 - 2577: 12(int) Constant 2 - 26: TypeVector 12(int) 4 - 663: TypePointer Input 26(ivec4) - 4201: 663(ptr) Variable Input - 11: TypeInt 32 0 - 2573: 11(int) Constant 1 - 651: TypePointer Input 12(int) - 2576: 11(int) Constant 2 - 2570: 11(int) Constant 0 - 29: TypeVector 13(float) 4 - 666: TypePointer Output 29(fvec4) - 4539: 666(ptr) Variable Output - 652: TypePointer Input 13(float) - 3773: 652(ptr) Variable Input - 5663: 8 Function None 1282 - 24915: Label - 18415: 649(ptr) Variable Function - 5786: 649(ptr) Variable Function - 8366: 13(float) Load 3773 - 8654: 12(int) ConvertFToS 8366 - Store 18415 8654 - 17256: 13(float) FunctionCall 3782 18415 - 14512: 13(float) Load 3773 - 7041: 12(int) ConvertFToS 14512 - Store 5786 7041 - 23993: 13(float) FunctionCall 3836 5786 - 9180: 13(float) FAdd 17256 23993 - 15728: 29(fvec4) CompositeConstruct 9180 9180 9180 9180 - Store 4539 15728 - Return - FunctionEnd - 3782: 13(float) Function None 204 - 6931: 649(ptr) FunctionParameter - 12220: Label - 4292: 650(ptr) Variable Function - 4298: 649(ptr) Variable Function - Store 4292 2572 - Store 4298 2571 - Branch 14924 - 14924: Label - LoopMerge 8882 6488 None - Branch 11857 - 11857: Label - 13755: 12(int) Load 4298 - 22731: 12(int) Load 6931 - 20007: 9(bool) SLessThan 13755 22731 - BranchConditional 20007 24750 8882 - 24750: Label - 22912: 13(float) Load 4292 - 19471: 13(float) FAdd 22912 252 - Store 4292 19471 - Branch 6488 - 6488: Label - 19050: 12(int) Load 4298 - 8593: 12(int) IAdd 19050 2574 - Store 4298 8593 - Branch 14924 - 8882: Label - 11601: 13(float) Load 4292 - ReturnValue 11601 - FunctionEnd - 3836: 13(float) Function None 204 - 4408: 649(ptr) FunctionParameter - 12143: Label - 22102: 649(ptr) Variable Function - 24151: 12(int) Load 4408 - 13868: 9(bool) SGreaterThan 24151 2577 - SelectionMerge 14966 None - BranchConditional 13868 9492 17416 - 9492: Label - 15624: 12(int) Load 4408 - Store 22102 15624 - 17278: 13(float) FunctionCall 3782 22102 - ReturnValue 17278 - 17416: Label - 19506: 12(int) Load 4408 - 22773: 12(int) IMul 19506 2577 - 13472: 651(ptr) AccessChain 4201 2573 - 15280: 12(int) Load 13472 - 18079: 651(ptr) AccessChain 4201 2576 - 15199: 12(int) Load 18079 - 9343: 12(int) IMul 15280 15199 - 11462: 12(int) IAdd 22773 9343 - 11885: 651(ptr) AccessChain 4201 2570 - 21176: 12(int) Load 11885 - 10505: 12(int) IAdd 11462 21176 - 14626: 13(float) ConvertSToF 10505 - ReturnValue 14626 - 14966: Label - Unreachable - FunctionEnd diff --git a/deps/glslang/Test/baseResults/remap.similar_1a.none.frag.out b/deps/glslang/Test/baseResults/remap.similar_1a.none.frag.out deleted file mode 100644 index e46b8e19..00000000 --- a/deps/glslang/Test/baseResults/remap.similar_1a.none.frag.out +++ /dev/null @@ -1,131 +0,0 @@ -remap.similar_1a.none.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 86 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 53 73 75 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - Name 4 "main" - Name 11 "Test1(i1;" - Name 10 "bound" - Name 14 "Test2(i1;" - Name 13 "bound" - Name 17 "r" - Name 19 "x" - Name 44 "param" - Name 53 "ini4" - Name 73 "outf4" - Name 75 "inf" - Name 78 "param" - Name 82 "param" - Decorate 53(ini4) Flat - Decorate 53(ini4) Location 1 - Decorate 73(outf4) Location 0 - Decorate 75(inf) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Function 6(int) - 8: TypeFloat 32 - 9: TypeFunction 8(float) 7(ptr) - 16: TypePointer Function 8(float) - 18: 8(float) Constant 0 - 20: 6(int) Constant 0 - 28: TypeBool - 30: 8(float) Constant 1056964608 - 34: 6(int) Constant 1 - 40: 6(int) Constant 2 - 51: TypeVector 6(int) 4 - 52: TypePointer Input 51(ivec4) - 53(ini4): 52(ptr) Variable Input - 54: TypeInt 32 0 - 55: 54(int) Constant 1 - 56: TypePointer Input 6(int) - 59: 54(int) Constant 2 - 64: 54(int) Constant 0 - 71: TypeVector 8(float) 4 - 72: TypePointer Output 71(fvec4) - 73(outf4): 72(ptr) Variable Output - 74: TypePointer Input 8(float) - 75(inf): 74(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 78(param): 7(ptr) Variable Function - 82(param): 7(ptr) Variable Function - 76: 8(float) Load 75(inf) - 77: 6(int) ConvertFToS 76 - Store 78(param) 77 - 79: 8(float) FunctionCall 11(Test1(i1;) 78(param) - 80: 8(float) Load 75(inf) - 81: 6(int) ConvertFToS 80 - Store 82(param) 81 - 83: 8(float) FunctionCall 14(Test2(i1;) 82(param) - 84: 8(float) FAdd 79 83 - 85: 71(fvec4) CompositeConstruct 84 84 84 84 - Store 73(outf4) 85 - Return - FunctionEnd - 11(Test1(i1;): 8(float) Function None 9 - 10(bound): 7(ptr) FunctionParameter - 12: Label - 17(r): 16(ptr) Variable Function - 19(x): 7(ptr) Variable Function - Store 17(r) 18 - Store 19(x) 20 - Branch 21 - 21: Label - LoopMerge 23 24 None - Branch 25 - 25: Label - 26: 6(int) Load 19(x) - 27: 6(int) Load 10(bound) - 29: 28(bool) SLessThan 26 27 - BranchConditional 29 22 23 - 22: Label - 31: 8(float) Load 17(r) - 32: 8(float) FAdd 31 30 - Store 17(r) 32 - Branch 24 - 24: Label - 33: 6(int) Load 19(x) - 35: 6(int) IAdd 33 34 - Store 19(x) 35 - Branch 21 - 23: Label - 36: 8(float) Load 17(r) - ReturnValue 36 - FunctionEnd - 14(Test2(i1;): 8(float) Function None 9 - 13(bound): 7(ptr) FunctionParameter - 15: Label - 44(param): 7(ptr) Variable Function - 39: 6(int) Load 13(bound) - 41: 28(bool) SGreaterThan 39 40 - SelectionMerge 43 None - BranchConditional 41 42 48 - 42: Label - 45: 6(int) Load 13(bound) - Store 44(param) 45 - 46: 8(float) FunctionCall 11(Test1(i1;) 44(param) - ReturnValue 46 - 48: Label - 49: 6(int) Load 13(bound) - 50: 6(int) IMul 49 40 - 57: 56(ptr) AccessChain 53(ini4) 55 - 58: 6(int) Load 57 - 60: 56(ptr) AccessChain 53(ini4) 59 - 61: 6(int) Load 60 - 62: 6(int) IMul 58 61 - 63: 6(int) IAdd 50 62 - 65: 56(ptr) AccessChain 53(ini4) 64 - 66: 6(int) Load 65 - 67: 6(int) IAdd 63 66 - 68: 8(float) ConvertSToF 67 - ReturnValue 68 - 43: Label - Unreachable - FunctionEnd diff --git a/deps/glslang/Test/baseResults/remap.similar_1b.everything.frag.out b/deps/glslang/Test/baseResults/remap.similar_1b.everything.frag.out deleted file mode 100644 index ffe54463..00000000 --- a/deps/glslang/Test/baseResults/remap.similar_1b.everything.frag.out +++ /dev/null @@ -1,123 +0,0 @@ -remap.similar_1b.everything.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 24916 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 5663 "main" 4201 4539 3773 - ExecutionMode 5663 OriginUpperLeft - Decorate 4201 Flat - Decorate 4201 Location 0 - Decorate 4539 Location 0 - Decorate 3773 Location 1 - 8: TypeVoid - 1282: TypeFunction 8 - 12: TypeInt 32 1 - 649: TypePointer Function 12(int) - 13: TypeFloat 32 - 204: TypeFunction 13(float) 649(ptr) - 650: TypePointer Function 13(float) - 2572: 13(float) Constant 0 - 2571: 12(int) Constant 0 - 9: TypeBool - 252: 13(float) Constant 1056964608 - 2574: 12(int) Constant 1 - 2821: 13(float) Constant 1045220557 - 2577: 12(int) Constant 2 - 2583: 12(int) Constant 4 - 26: TypeVector 12(int) 4 - 663: TypePointer Input 26(ivec4) - 4201: 663(ptr) Variable Input - 11: TypeInt 32 0 - 2573: 11(int) Constant 1 - 651: TypePointer Input 12(int) - 2576: 11(int) Constant 2 - 2570: 11(int) Constant 0 - 29: TypeVector 13(float) 4 - 666: TypePointer Output 29(fvec4) - 4539: 666(ptr) Variable Output - 652: TypePointer Input 13(float) - 3773: 652(ptr) Variable Input - 5663: 8 Function None 1282 - 24915: Label - 18415: 649(ptr) Variable Function - 5786: 649(ptr) Variable Function - 8366: 13(float) Load 3773 - 8654: 12(int) ConvertFToS 8366 - Store 18415 8654 - 17256: 13(float) FunctionCall 3782 18415 - 14512: 13(float) Load 3773 - 7041: 12(int) ConvertFToS 14512 - Store 5786 7041 - 23993: 13(float) FunctionCall 3836 5786 - 9180: 13(float) FAdd 17256 23993 - 15728: 29(fvec4) CompositeConstruct 9180 9180 9180 9180 - Store 4539 15728 - Return - FunctionEnd - 3782: 13(float) Function None 204 - 6931: 649(ptr) FunctionParameter - 12220: Label - 4292: 650(ptr) Variable Function - 4298: 649(ptr) Variable Function - Store 4292 2572 - Store 4298 2571 - Branch 14924 - 14924: Label - LoopMerge 6507 6488 None - Branch 11857 - 11857: Label - 13755: 12(int) Load 4298 - 22731: 12(int) Load 6931 - 20007: 9(bool) SLessThan 13755 22731 - BranchConditional 20007 24750 6507 - 24750: Label - 22912: 13(float) Load 4292 - 19471: 13(float) FAdd 22912 252 - Store 4292 19471 - Branch 6488 - 6488: Label - 19050: 12(int) Load 4298 - 8593: 12(int) IAdd 19050 2574 - Store 4298 8593 - Branch 14924 - 6507: Label - 18877: 13(float) Load 4292 - 15899: 13(float) FAdd 18877 2821 - Store 4292 15899 - 20342: 13(float) Load 4292 - ReturnValue 20342 - FunctionEnd - 3836: 13(float) Function None 204 - 4408: 649(ptr) FunctionParameter - 12143: Label - 22102: 649(ptr) Variable Function - 24151: 12(int) Load 4408 - 13868: 9(bool) SGreaterThan 24151 2577 - SelectionMerge 14966 None - BranchConditional 13868 10822 17416 - 10822: Label - 22680: 12(int) Load 4408 - 23216: 12(int) IMul 22680 2577 - Store 22102 23216 - 7042: 13(float) FunctionCall 3782 22102 - ReturnValue 7042 - 17416: Label - 19506: 12(int) Load 4408 - 22773: 12(int) IMul 19506 2583 - 13472: 651(ptr) AccessChain 4201 2573 - 15280: 12(int) Load 13472 - 18079: 651(ptr) AccessChain 4201 2576 - 15199: 12(int) Load 18079 - 9343: 12(int) IMul 15280 15199 - 11462: 12(int) IAdd 22773 9343 - 11885: 651(ptr) AccessChain 4201 2570 - 21176: 12(int) Load 11885 - 10505: 12(int) IAdd 11462 21176 - 14626: 13(float) ConvertSToF 10505 - ReturnValue 14626 - 14966: Label - Unreachable - FunctionEnd diff --git a/deps/glslang/Test/baseResults/remap.similar_1b.none.frag.out b/deps/glslang/Test/baseResults/remap.similar_1b.none.frag.out deleted file mode 100644 index 5f5241c3..00000000 --- a/deps/glslang/Test/baseResults/remap.similar_1b.none.frag.out +++ /dev/null @@ -1,137 +0,0 @@ -remap.similar_1b.none.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 91 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 58 78 80 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - Name 4 "main" - Name 11 "Test1(i1;" - Name 10 "bound" - Name 14 "Test2(i1;" - Name 13 "bound" - Name 17 "r" - Name 19 "x" - Name 49 "param" - Name 58 "ini4" - Name 78 "outf4" - Name 80 "inf" - Name 83 "param" - Name 87 "param" - Decorate 58(ini4) Flat - Decorate 58(ini4) Location 0 - Decorate 78(outf4) Location 0 - Decorate 80(inf) Location 1 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Function 6(int) - 8: TypeFloat 32 - 9: TypeFunction 8(float) 7(ptr) - 16: TypePointer Function 8(float) - 18: 8(float) Constant 0 - 20: 6(int) Constant 0 - 28: TypeBool - 30: 8(float) Constant 1056964608 - 34: 6(int) Constant 1 - 36: 8(float) Constant 1045220557 - 43: 6(int) Constant 2 - 54: 6(int) Constant 4 - 56: TypeVector 6(int) 4 - 57: TypePointer Input 56(ivec4) - 58(ini4): 57(ptr) Variable Input - 59: TypeInt 32 0 - 60: 59(int) Constant 1 - 61: TypePointer Input 6(int) - 64: 59(int) Constant 2 - 69: 59(int) Constant 0 - 76: TypeVector 8(float) 4 - 77: TypePointer Output 76(fvec4) - 78(outf4): 77(ptr) Variable Output - 79: TypePointer Input 8(float) - 80(inf): 79(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 83(param): 7(ptr) Variable Function - 87(param): 7(ptr) Variable Function - 81: 8(float) Load 80(inf) - 82: 6(int) ConvertFToS 81 - Store 83(param) 82 - 84: 8(float) FunctionCall 11(Test1(i1;) 83(param) - 85: 8(float) Load 80(inf) - 86: 6(int) ConvertFToS 85 - Store 87(param) 86 - 88: 8(float) FunctionCall 14(Test2(i1;) 87(param) - 89: 8(float) FAdd 84 88 - 90: 76(fvec4) CompositeConstruct 89 89 89 89 - Store 78(outf4) 90 - Return - FunctionEnd - 11(Test1(i1;): 8(float) Function None 9 - 10(bound): 7(ptr) FunctionParameter - 12: Label - 17(r): 16(ptr) Variable Function - 19(x): 7(ptr) Variable Function - Store 17(r) 18 - Store 19(x) 20 - Branch 21 - 21: Label - LoopMerge 23 24 None - Branch 25 - 25: Label - 26: 6(int) Load 19(x) - 27: 6(int) Load 10(bound) - 29: 28(bool) SLessThan 26 27 - BranchConditional 29 22 23 - 22: Label - 31: 8(float) Load 17(r) - 32: 8(float) FAdd 31 30 - Store 17(r) 32 - Branch 24 - 24: Label - 33: 6(int) Load 19(x) - 35: 6(int) IAdd 33 34 - Store 19(x) 35 - Branch 21 - 23: Label - 37: 8(float) Load 17(r) - 38: 8(float) FAdd 37 36 - Store 17(r) 38 - 39: 8(float) Load 17(r) - ReturnValue 39 - FunctionEnd - 14(Test2(i1;): 8(float) Function None 9 - 13(bound): 7(ptr) FunctionParameter - 15: Label - 49(param): 7(ptr) Variable Function - 42: 6(int) Load 13(bound) - 44: 28(bool) SGreaterThan 42 43 - SelectionMerge 46 None - BranchConditional 44 45 52 - 45: Label - 47: 6(int) Load 13(bound) - 48: 6(int) IMul 47 43 - Store 49(param) 48 - 50: 8(float) FunctionCall 11(Test1(i1;) 49(param) - ReturnValue 50 - 52: Label - 53: 6(int) Load 13(bound) - 55: 6(int) IMul 53 54 - 62: 61(ptr) AccessChain 58(ini4) 60 - 63: 6(int) Load 62 - 65: 61(ptr) AccessChain 58(ini4) 64 - 66: 6(int) Load 65 - 67: 6(int) IMul 63 66 - 68: 6(int) IAdd 55 67 - 70: 61(ptr) AccessChain 58(ini4) 69 - 71: 6(int) Load 70 - 72: 6(int) IAdd 68 71 - 73: 8(float) ConvertSToF 72 - ReturnValue 73 - 46: Label - Unreachable - FunctionEnd diff --git a/deps/glslang/Test/baseResults/remap.specconst.comp.out b/deps/glslang/Test/baseResults/remap.specconst.comp.out deleted file mode 100644 index 2bed3cfe..00000000 --- a/deps/glslang/Test/baseResults/remap.specconst.comp.out +++ /dev/null @@ -1,31 +0,0 @@ -remap.specconst.comp -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 16104 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 5663 "main" - ExecutionMode 5663 LocalSize 1 1 1 - Decorate 2 SpecId 0 - Decorate 3 SpecId 1 - Decorate 4 SpecId 2 - Decorate 5 BuiltIn WorkgroupSize - 8: TypeVoid - 1282: TypeFunction 8 - 11: TypeInt 32 0 - 2: 11(int) SpecConstant 1 - 3: 11(int) SpecConstant 1 - 4: 11(int) SpecConstant 1 - 20: TypeVector 11(int) 3 - 5: 20(ivec3) SpecConstantComposite 2 3 4 - 6: 11(int) SpecConstantOp 81 5 0 - 7: 11(int) SpecConstantOp 81 5 1(GLSL.std.450) - 9: 11(int) SpecConstantOp 81 5 2 - 10: 11(int) SpecConstantOp 132 7 9 - 12: 11(int) SpecConstantOp 128 6 10 - 5663: 8 Function None 1282 - 16103: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/remap.switch.everything.frag.out b/deps/glslang/Test/baseResults/remap.switch.everything.frag.out deleted file mode 100644 index 443fe685..00000000 --- a/deps/glslang/Test/baseResults/remap.switch.everything.frag.out +++ /dev/null @@ -1,76 +0,0 @@ -remap.switch.everything.frag -WARNING: 0:5: '' : all default precisions are highp; use precision statements to quiet warning, e.g.: - "precision mediump int; precision highp float;" - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 23990 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 5663 "main" 3719 3994 - ExecutionMode 5663 OriginUpperLeft - Decorate 3719 Location 0 - Decorate 3994 RelaxedPrecision - Decorate 3994 Location 0 - Decorate 12421 RelaxedPrecision - Decorate 12422 RelaxedPrecision - Decorate 12423 RelaxedPrecision - 8: TypeVoid - 1282: TypeFunction 8 - 13: TypeFloat 32 - 29: TypeVector 13(float) 4 - 666: TypePointer Input 29(fvec4) - 3719: 666(ptr) Variable Input - 11: TypeInt 32 0 - 2579: 11(int) Constant 3 - 650: TypePointer Input 13(float) - 12: TypeInt 32 1 - 667: TypePointer Output 29(fvec4) - 3994: 667(ptr) Variable Output - 2570: 11(int) Constant 0 - 2572: 13(float) Constant 0 - 2573: 11(int) Constant 1 - 138: 13(float) Constant 1065353216 - 2576: 11(int) Constant 2 - 24: 13(float) Constant 1073741824 - 833: 13(float) Constant 3212836864 - 1284: 29(fvec4) ConstantComposite 833 833 833 833 - 5663: 8 Function None 1282 - 23915: Label - 7984: 650(ptr) AccessChain 3719 2579 - 11376: 13(float) Load 7984 - 16859: 12(int) ConvertFToS 11376 - SelectionMerge 19578 None - Switch 16859 15971 - case 0: 8158 - case 1: 8159 - case 2: 8160 - 15971: Label - Store 3994 1284 - Branch 19578 - 8158: Label - 21848: 650(ptr) AccessChain 3719 2570 - 23987: 13(float) Load 21848 - 19989: 13(float) FAdd 23987 2572 - 12421: 29(fvec4) CompositeConstruct 19989 19989 19989 19989 - Store 3994 12421 - Branch 19578 - 8159: Label - 21849: 650(ptr) AccessChain 3719 2573 - 23988: 13(float) Load 21849 - 19990: 13(float) FAdd 23988 138 - 12422: 29(fvec4) CompositeConstruct 19990 19990 19990 19990 - Store 3994 12422 - Branch 19578 - 8160: Label - 21850: 650(ptr) AccessChain 3719 2576 - 23989: 13(float) Load 21850 - 19991: 13(float) FAdd 23989 24 - 12423: 29(fvec4) CompositeConstruct 19991 19991 19991 19991 - Store 3994 12423 - Branch 19578 - 19578: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/remap.switch.none.frag.out b/deps/glslang/Test/baseResults/remap.switch.none.frag.out deleted file mode 100644 index 3347dce0..00000000 --- a/deps/glslang/Test/baseResults/remap.switch.none.frag.out +++ /dev/null @@ -1,80 +0,0 @@ -remap.switch.none.frag -WARNING: 0:5: '' : all default precisions are highp; use precision statements to quiet warning, e.g.: - "precision mediump int; precision highp float;" - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 48 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 9 23 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - Name 4 "main" - Name 9 "in0" - Name 23 "FragColor" - Decorate 9(in0) Location 0 - Decorate 23(FragColor) RelaxedPrecision - Decorate 23(FragColor) Location 0 - Decorate 29 RelaxedPrecision - Decorate 36 RelaxedPrecision - Decorate 43 RelaxedPrecision - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Input 7(fvec4) - 9(in0): 8(ptr) Variable Input - 10: TypeInt 32 0 - 11: 10(int) Constant 3 - 12: TypePointer Input 6(float) - 15: TypeInt 32 1 - 22: TypePointer Output 7(fvec4) - 23(FragColor): 22(ptr) Variable Output - 24: 10(int) Constant 0 - 27: 6(float) Constant 0 - 31: 10(int) Constant 1 - 34: 6(float) Constant 1065353216 - 38: 10(int) Constant 2 - 41: 6(float) Constant 1073741824 - 45: 6(float) Constant 3212836864 - 46: 7(fvec4) ConstantComposite 45 45 45 45 - 4(main): 2 Function None 3 - 5: Label - 13: 12(ptr) AccessChain 9(in0) 11 - 14: 6(float) Load 13 - 16: 15(int) ConvertFToS 14 - SelectionMerge 21 None - Switch 16 20 - case 0: 17 - case 1: 18 - case 2: 19 - 20: Label - Store 23(FragColor) 46 - Branch 21 - 17: Label - 25: 12(ptr) AccessChain 9(in0) 24 - 26: 6(float) Load 25 - 28: 6(float) FAdd 26 27 - 29: 7(fvec4) CompositeConstruct 28 28 28 28 - Store 23(FragColor) 29 - Branch 21 - 18: Label - 32: 12(ptr) AccessChain 9(in0) 31 - 33: 6(float) Load 32 - 35: 6(float) FAdd 33 34 - 36: 7(fvec4) CompositeConstruct 35 35 35 35 - Store 23(FragColor) 36 - Branch 21 - 19: Label - 39: 12(ptr) AccessChain 9(in0) 38 - 40: 6(float) Load 39 - 42: 6(float) FAdd 40 41 - 43: 7(fvec4) CompositeConstruct 42 42 42 42 - Store 23(FragColor) 43 - Branch 21 - 21: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/remap.uniformarray.everything.frag.out b/deps/glslang/Test/baseResults/remap.uniformarray.everything.frag.out deleted file mode 100644 index ee1daa75..00000000 --- a/deps/glslang/Test/baseResults/remap.uniformarray.everything.frag.out +++ /dev/null @@ -1,76 +0,0 @@ -remap.uniformarray.everything.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 25030 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 5663 "main" 3608 4957 4339 5139 - ExecutionMode 5663 OriginUpperLeft - Decorate 3608 Location 1 - Decorate 4957 Location 0 - Decorate 4339 Location 7 - Decorate 5139 Location 0 - 8: TypeVoid - 1282: TypeFunction 8 - 13: TypeFloat 32 - 29: TypeVector 13(float) 4 - 666: TypePointer Function 29(fvec4) - 11: TypeInt 32 0 - 2588: 11(int) Constant 6 - 740: TypeArray 29(fvec4) 2588 - 1377: TypePointer Input 740 - 3608: 1377(ptr) Variable Input - 12: TypeInt 32 1 - 2574: 12(int) Constant 1 - 667: TypePointer Input 29(fvec4) - 24: TypeVector 13(float) 3 - 661: TypePointer Input 24(fvec3) - 4957: 661(ptr) Variable Input - 2570: 11(int) Constant 0 - 650: TypePointer Function 13(float) - 2573: 11(int) Constant 1 - 2576: 11(int) Constant 2 - 2618: 11(int) Constant 16 - 709: TypeArray 13(float) 2618 - 1346: TypePointer Input 709 - 4339: 1346(ptr) Variable Input - 2607: 12(int) Constant 12 - 651: TypePointer Input 13(float) - 2579: 11(int) Constant 3 - 668: TypePointer Output 29(fvec4) - 5139: 668(ptr) Variable Output - 5663: 8 Function None 1282 - 25029: Label - 4902: 666(ptr) Variable Function - 10645: 667(ptr) AccessChain 3608 2574 - 8181: 29(fvec4) Load 10645 - 21370: 667(ptr) AccessChain 3608 2574 - 11355: 29(fvec4) Load 21370 - 23084: 29(fvec4) FAdd 8181 11355 - Store 4902 23084 - 21218: 24(fvec3) Load 4957 - 13695: 29(fvec4) Load 4902 - 23959: 24(fvec3) VectorShuffle 13695 13695 0 1 2 - 14937: 24(fvec3) FAdd 23959 21218 - 15653: 650(ptr) AccessChain 4902 2570 - 21354: 13(float) CompositeExtract 14937 0 - Store 15653 21354 - 16378: 650(ptr) AccessChain 4902 2573 - 15746: 13(float) CompositeExtract 14937 1 - Store 16378 15746 - 16379: 650(ptr) AccessChain 4902 2576 - 15747: 13(float) CompositeExtract 14937 2 - Store 16379 15747 - 19895: 651(ptr) AccessChain 4339 2607 - 7372: 13(float) Load 19895 - 21371: 650(ptr) AccessChain 4902 2579 - 11412: 13(float) Load 21371 - 22584: 13(float) FAdd 11412 7372 - 17318: 650(ptr) AccessChain 4902 2579 - Store 17318 22584 - 17934: 29(fvec4) Load 4902 - Store 5139 17934 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/remap.uniformarray.none.frag.out b/deps/glslang/Test/baseResults/remap.uniformarray.none.frag.out deleted file mode 100644 index 00e1f57e..00000000 --- a/deps/glslang/Test/baseResults/remap.uniformarray.none.frag.out +++ /dev/null @@ -1,90 +0,0 @@ -remap.uniformarray.none.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 60 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 14 25 43 54 - ExecutionMode 4 OriginUpperLeft - Source GLSL 140 - Name 4 "main" - Name 9 "texColor" - Name 14 "color" - Name 25 "inColor" - Name 43 "alpha" - Name 54 "gl_FragColor" - Name 59 "texSampler2D" - Decorate 14(color) Location 1 - Decorate 25(inColor) Location 0 - Decorate 43(alpha) Location 7 - Decorate 54(gl_FragColor) Location 0 - Decorate 59(texSampler2D) DescriptorSet 0 - Decorate 59(texSampler2D) Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: TypeInt 32 0 - 11: 10(int) Constant 6 - 12: TypeArray 7(fvec4) 11 - 13: TypePointer Input 12 - 14(color): 13(ptr) Variable Input - 15: TypeInt 32 1 - 16: 15(int) Constant 1 - 17: TypePointer Input 7(fvec4) - 23: TypeVector 6(float) 3 - 24: TypePointer Input 23(fvec3) - 25(inColor): 24(ptr) Variable Input - 30: 10(int) Constant 0 - 31: TypePointer Function 6(float) - 34: 10(int) Constant 1 - 37: 10(int) Constant 2 - 40: 10(int) Constant 16 - 41: TypeArray 6(float) 40 - 42: TypePointer Input 41 - 43(alpha): 42(ptr) Variable Input - 44: 15(int) Constant 12 - 45: TypePointer Input 6(float) - 48: 10(int) Constant 3 - 53: TypePointer Output 7(fvec4) -54(gl_FragColor): 53(ptr) Variable Output - 56: TypeImage 6(float) 2D sampled format:Unknown - 57: TypeSampledImage 56 - 58: TypePointer UniformConstant 57 -59(texSampler2D): 58(ptr) Variable UniformConstant - 4(main): 2 Function None 3 - 5: Label - 9(texColor): 8(ptr) Variable Function - 18: 17(ptr) AccessChain 14(color) 16 - 19: 7(fvec4) Load 18 - 20: 17(ptr) AccessChain 14(color) 16 - 21: 7(fvec4) Load 20 - 22: 7(fvec4) FAdd 19 21 - Store 9(texColor) 22 - 26: 23(fvec3) Load 25(inColor) - 27: 7(fvec4) Load 9(texColor) - 28: 23(fvec3) VectorShuffle 27 27 0 1 2 - 29: 23(fvec3) FAdd 28 26 - 32: 31(ptr) AccessChain 9(texColor) 30 - 33: 6(float) CompositeExtract 29 0 - Store 32 33 - 35: 31(ptr) AccessChain 9(texColor) 34 - 36: 6(float) CompositeExtract 29 1 - Store 35 36 - 38: 31(ptr) AccessChain 9(texColor) 37 - 39: 6(float) CompositeExtract 29 2 - Store 38 39 - 46: 45(ptr) AccessChain 43(alpha) 44 - 47: 6(float) Load 46 - 49: 31(ptr) AccessChain 9(texColor) 48 - 50: 6(float) Load 49 - 51: 6(float) FAdd 50 47 - 52: 31(ptr) AccessChain 9(texColor) 48 - Store 52 51 - 55: 7(fvec4) Load 9(texColor) - Store 54(gl_FragColor) 55 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/runtimeArray.vert.out b/deps/glslang/Test/baseResults/runtimeArray.vert.out deleted file mode 100644 index 5ba39929..00000000 --- a/deps/glslang/Test/baseResults/runtimeArray.vert.out +++ /dev/null @@ -1,647 +0,0 @@ -runtimeArray.vert -WARNING: 0:33: '[]' : assuming binding count of one for compile-time checking of binding numbers for unsized array -WARNING: 0:34: '[]' : assuming binding count of one for compile-time checking of binding numbers for unsized array -WARNING: 0:37: '[]' : assuming binding count of one for compile-time checking of binding numbers for unsized array -WARNING: 0:38: '[]' : assuming binding count of one for compile-time checking of binding numbers for unsized array -WARNING: 0:39: '[]' : assuming binding count of one for compile-time checking of binding numbers for unsized array -WARNING: 0:40: '[]' : assuming binding count of one for compile-time checking of binding numbers for unsized array -ERROR: 0:61: '[' : array must be redeclared with a size before being indexed with a variable -ERROR: 0:62: '[' : array must be redeclared with a size before being indexed with a variable -ERROR: 0:63: '[' : array must be redeclared with a size before being indexed with a variable -ERROR: 0:66: 'length' : array must be declared with a size before using this method -ERROR: 0:67: 'length' : array must be declared with a size before using this method -ERROR: 0:68: 'length' : array must be declared with a size before using this method -ERROR: 0:71: '[' : array must be redeclared with a size before being indexed with a variable -ERROR: 0:72: '[' : array must be redeclared with a size before being indexed with a variable -ERROR: 0:73: '[' : array must be redeclared with a size before being indexed with a variable -ERROR: 0:76: 'length' : array must be declared with a size before using this method -ERROR: 0:77: 'length' : array must be declared with a size before using this method -ERROR: 0:78: 'length' : array must be declared with a size before using this method -ERROR: 0:81: '[' : array must be redeclared with a size before being indexed with a variable -ERROR: 0:82: '[' : array must be redeclared with a size before being indexed with a variable -ERROR: 0:83: '[' : array must be redeclared with a size before being indexed with a variable -ERROR: 0:86: 'length' : array must be declared with a size before using this method -ERROR: 0:87: 'length' : array must be declared with a size before using this method -ERROR: 0:88: 'length' : array must be declared with a size before using this method -ERROR: 0:100: 'variable index' : required extension not requested: GL_EXT_nonuniform_qualifier -ERROR: 0:101: 'variable index' : required extension not requested: GL_EXT_nonuniform_qualifier -ERROR: 0:102: 'variable index' : required extension not requested: GL_EXT_nonuniform_qualifier -ERROR: 0:103: 'variable index' : required extension not requested: GL_EXT_nonuniform_qualifier -ERROR: 0:104: 'variable index' : required extension not requested: GL_EXT_nonuniform_qualifier -ERROR: 0:105: 'variable index' : required extension not requested: GL_EXT_nonuniform_qualifier -ERROR: 0:106: 'variable index' : required extension not requested: GL_EXT_nonuniform_qualifier -ERROR: 0:107: 'variable index' : required extension not requested: GL_EXT_nonuniform_qualifier -ERROR: 0:109: '[]' : array initializer must be sized -ERROR: 27 compilation errors. No code generated. - - -Shader version: 450 -ERROR: node is still EOpNull! -0:44 Function Definition: main( ( global void) -0:44 Function Parameters: -0:46 Sequence -0:46 direct index (layout( column_major shared) temp int) -0:46 a: direct index for structure (layout( column_major shared) uniform runtime-sized array of int) -0:46 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 3 (const int) -0:47 direct index (layout( column_major shared) temp float) -0:47 b: direct index for structure (layout( column_major shared) uniform runtime-sized array of float) -0:47 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) -0:47 Constant: -0:47 1 (const int) -0:47 Constant: -0:47 3 (const int) -0:48 direct index (layout( column_major shared) temp int) -0:48 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int) -0:48 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) -0:48 Constant: -0:48 0 (const int) -0:48 Constant: -0:48 3 (const int) -0:49 direct index (layout( column_major shared) temp float) -0:49 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float) -0:49 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) -0:49 Constant: -0:49 1 (const int) -0:49 Constant: -0:49 3 (const int) -0:51 direct index (layout( column_major shared) temp int) -0:51 a: direct index for structure (layout( column_major shared) uniform runtime-sized array of int) -0:51 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) -0:51 'ubufa' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) -0:51 Constant: -0:51 3 (const int) -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 3 (const int) -0:52 direct index (layout( column_major shared) temp float) -0:52 b: direct index for structure (layout( column_major shared) uniform runtime-sized array of float) -0:52 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) -0:52 'ubufa' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) -0:52 Constant: -0:52 3 (const int) -0:52 Constant: -0:52 1 (const int) -0:52 Constant: -0:52 3 (const int) -0:53 direct index (layout( column_major shared) temp int) -0:53 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int) -0:53 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) -0:53 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) -0:53 Constant: -0:53 3 (const int) -0:53 Constant: -0:53 0 (const int) -0:53 Constant: -0:53 3 (const int) -0:54 direct index (layout( column_major shared) temp float) -0:54 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float) -0:54 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) -0:54 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) -0:54 Constant: -0:54 3 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 Constant: -0:54 3 (const int) -0:56 direct index (layout( column_major shared) temp int) -0:56 aua: direct index for structure (layout( column_major shared) uniform runtime-sized array of int) -0:56 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int aua, layout( column_major shared) uniform runtime-sized array of float aub}) -0:56 Constant: -0:56 0 (const uint) -0:56 Constant: -0:56 3 (const int) -0:57 direct index (layout( column_major shared) temp float) -0:57 aub: direct index for structure (layout( column_major shared) uniform runtime-sized array of float) -0:57 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int aua, layout( column_major shared) uniform runtime-sized array of float aub}) -0:57 Constant: -0:57 1 (const uint) -0:57 Constant: -0:57 3 (const int) -0:58 direct index (layout( column_major shared) temp int) -0:58 aba: direct index for structure (layout( column_major shared) buffer runtime-sized array of int) -0:58 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb}) -0:58 Constant: -0:58 0 (const uint) -0:58 Constant: -0:58 3 (const int) -0:59 direct index (layout( column_major shared) temp float) -0:59 abb: direct index for structure (layout( column_major shared) buffer runtime-sized array of float) -0:59 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb}) -0:59 Constant: -0:59 1 (const uint) -0:59 Constant: -0:59 3 (const int) -0:61 indirect index (layout( column_major shared) temp int) -0:61 a: direct index for structure (layout( column_major shared) uniform runtime-sized array of int) -0:61 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) -0:61 Constant: -0:61 0 (const int) -0:61 'i' ( global int) -0:62 indirect index (layout( column_major shared) temp float) -0:62 b: direct index for structure (layout( column_major shared) uniform runtime-sized array of float) -0:62 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) -0:62 Constant: -0:62 1 (const int) -0:62 'i' ( global int) -0:63 indirect index (layout( column_major shared) temp int) -0:63 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int) -0:63 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) -0:63 Constant: -0:63 0 (const int) -0:63 'i' ( global int) -0:64 indirect index (layout( column_major shared) temp float) -0:64 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float) -0:64 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) -0:64 Constant: -0:64 1 (const int) -0:64 'i' ( global int) -0:66 Constant: -0:66 1 (const int) -0:67 Constant: -0:67 1 (const int) -0:68 Constant: -0:68 1 (const int) -0:69 array length ( temp int) -0:69 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float) -0:69 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) -0:69 Constant: -0:69 1 (const int) -0:71 indirect index (layout( column_major shared) temp int) -0:71 a: direct index for structure (layout( column_major shared) uniform runtime-sized array of int) -0:71 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) -0:71 'ubufa' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) -0:71 Constant: -0:71 1 (const int) -0:71 Constant: -0:71 0 (const int) -0:71 'i' ( global int) -0:72 indirect index (layout( column_major shared) temp float) -0:72 b: direct index for structure (layout( column_major shared) uniform runtime-sized array of float) -0:72 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) -0:72 'ubufa' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) -0:72 Constant: -0:72 1 (const int) -0:72 Constant: -0:72 1 (const int) -0:72 'i' ( global int) -0:73 indirect index (layout( column_major shared) temp int) -0:73 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int) -0:73 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) -0:73 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) -0:73 Constant: -0:73 1 (const int) -0:73 Constant: -0:73 0 (const int) -0:73 'i' ( global int) -0:74 indirect index (layout( column_major shared) temp float) -0:74 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float) -0:74 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) -0:74 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) -0:74 Constant: -0:74 1 (const int) -0:74 Constant: -0:74 1 (const int) -0:74 'i' ( global int) -0:76 Constant: -0:76 1 (const int) -0:77 Constant: -0:77 1 (const int) -0:78 Constant: -0:78 1 (const int) -0:79 array length ( temp int) -0:79 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float) -0:79 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) -0:79 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) -0:79 Constant: -0:79 1 (const int) -0:79 Constant: -0:79 1 (const int) -0:81 indirect index (layout( column_major shared) temp int) -0:81 aua: direct index for structure (layout( column_major shared) uniform runtime-sized array of int) -0:81 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int aua, layout( column_major shared) uniform runtime-sized array of float aub}) -0:81 Constant: -0:81 0 (const uint) -0:81 'i' ( global int) -0:82 indirect index (layout( column_major shared) temp float) -0:82 aub: direct index for structure (layout( column_major shared) uniform runtime-sized array of float) -0:82 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int aua, layout( column_major shared) uniform runtime-sized array of float aub}) -0:82 Constant: -0:82 1 (const uint) -0:82 'i' ( global int) -0:83 indirect index (layout( column_major shared) temp int) -0:83 aba: direct index for structure (layout( column_major shared) buffer runtime-sized array of int) -0:83 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb}) -0:83 Constant: -0:83 0 (const uint) -0:83 'i' ( global int) -0:84 indirect index (layout( column_major shared) temp float) -0:84 abb: direct index for structure (layout( column_major shared) buffer runtime-sized array of float) -0:84 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb}) -0:84 Constant: -0:84 1 (const uint) -0:84 'i' ( global int) -0:86 Constant: -0:86 1 (const int) -0:87 Constant: -0:87 1 (const int) -0:88 Constant: -0:88 1 (const int) -0:89 array length ( temp int) -0:89 abb: direct index for structure (layout( column_major shared) buffer runtime-sized array of float) -0:89 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb}) -0:89 Constant: -0:89 1 (const uint) -0:91 direct index (layout( binding=1) temp samplerBuffer) -0:91 'uniformTexelBufferDyn' (layout( binding=1) uniform runtime-sized array of samplerBuffer) -0:91 Constant: -0:91 1 (const int) -0:92 direct index (layout( binding=2 r32f) temp imageBuffer) -0:92 'storageTexelBufferDyn' (layout( binding=2 r32f) uniform runtime-sized array of imageBuffer) -0:92 Constant: -0:92 1 (const int) -0:93 direct index (layout( binding=3 column_major shared) temp block{layout( column_major shared) uniform float a}) -0:93 'uniformBuffer' (layout( binding=3 column_major shared) uniform runtime-sized array of block{layout( column_major shared) uniform float a}) -0:93 Constant: -0:93 1 (const int) -0:94 direct index (layout( binding=4 column_major shared) temp block{layout( column_major shared) buffer float b}) -0:94 'storageBuffer' (layout( binding=4 column_major shared) buffer runtime-sized array of block{layout( column_major shared) buffer float b}) -0:94 Constant: -0:94 1 (const int) -0:95 direct index (layout( binding=5) temp sampler2D) -0:95 'sampledImage' (layout( binding=5) uniform runtime-sized array of sampler2D) -0:95 Constant: -0:95 1 (const int) -0:96 direct index (layout( binding=6 r32f) temp image2D) -0:96 'storageImage' (layout( binding=6 r32f) uniform runtime-sized array of image2D) -0:96 Constant: -0:96 1 (const int) -0:97 direct index (layout( binding=8) temp samplerBuffer) -0:97 'uniformTexelBuffer' (layout( binding=8) uniform runtime-sized array of samplerBuffer) -0:97 Constant: -0:97 1 (const int) -0:98 direct index (layout( binding=9 r32f) temp imageBuffer) -0:98 'storageTexelBuffer' (layout( binding=9 r32f) uniform runtime-sized array of imageBuffer) -0:98 Constant: -0:98 1 (const int) -0:100 indirect index (layout( binding=1) temp samplerBuffer) -0:100 'uniformTexelBufferDyn' (layout( binding=1) uniform runtime-sized array of samplerBuffer) -0:100 'i' ( global int) -0:101 indirect index (layout( binding=2 r32f) temp imageBuffer) -0:101 'storageTexelBufferDyn' (layout( binding=2 r32f) uniform runtime-sized array of imageBuffer) -0:101 'i' ( global int) -0:102 indirect index (layout( binding=3 column_major shared) temp block{layout( column_major shared) uniform float a}) -0:102 'uniformBuffer' (layout( binding=3 column_major shared) uniform runtime-sized array of block{layout( column_major shared) uniform float a}) -0:102 'i' ( global int) -0:103 indirect index (layout( binding=4 column_major shared) temp block{layout( column_major shared) buffer float b}) -0:103 'storageBuffer' (layout( binding=4 column_major shared) buffer runtime-sized array of block{layout( column_major shared) buffer float b}) -0:103 'i' ( global int) -0:104 indirect index (layout( binding=5) temp sampler2D) -0:104 'sampledImage' (layout( binding=5) uniform runtime-sized array of sampler2D) -0:104 'i' ( global int) -0:105 indirect index (layout( binding=6 r32f) temp image2D) -0:105 'storageImage' (layout( binding=6 r32f) uniform runtime-sized array of image2D) -0:105 'i' ( global int) -0:106 indirect index (layout( binding=8) temp samplerBuffer) -0:106 'uniformTexelBuffer' (layout( binding=8) uniform runtime-sized array of samplerBuffer) -0:106 'i' ( global int) -0:107 indirect index (layout( binding=9 r32f) temp imageBuffer) -0:107 'storageTexelBuffer' (layout( binding=9 r32f) uniform runtime-sized array of imageBuffer) -0:107 'i' ( global int) -0:109 Sequence -0:109 move second child to first child ( temp unsized 1-element array of float) -0:109 'local' ( temp unsized 1-element array of float) -0:109 b: direct index for structure (layout( column_major shared) uniform runtime-sized array of float) -0:109 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) -0:109 Constant: -0:109 1 (const int) -0:? Linker Objects -0:? 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) -0:? 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) -0:? 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) -0:? 'ubufa' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) -0:? 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb}) -0:? 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int aua, layout( column_major shared) uniform runtime-sized array of float aub}) -0:? 'uniformTexelBufferDyn' (layout( binding=1) uniform runtime-sized array of samplerBuffer) -0:? 'storageTexelBufferDyn' (layout( binding=2 r32f) uniform runtime-sized array of imageBuffer) -0:? 'uniformBuffer' (layout( binding=3 column_major shared) uniform runtime-sized array of block{layout( column_major shared) uniform float a}) -0:? 'storageBuffer' (layout( binding=4 column_major shared) buffer runtime-sized array of block{layout( column_major shared) buffer float b}) -0:? 'sampledImage' (layout( binding=5) uniform runtime-sized array of sampler2D) -0:? 'storageImage' (layout( binding=6 r32f) uniform runtime-sized array of image2D) -0:? 'uniformTexelBuffer' (layout( binding=8) uniform runtime-sized array of samplerBuffer) -0:? 'storageTexelBuffer' (layout( binding=9 r32f) uniform runtime-sized array of imageBuffer) -0:? 'i' ( global int) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - - -Linked vertex stage: - - -Shader version: 450 -ERROR: node is still EOpNull! -0:44 Function Definition: main( ( global void) -0:44 Function Parameters: -0:46 Sequence -0:46 direct index (layout( column_major shared) temp int) -0:46 a: direct index for structure (layout( column_major shared) uniform runtime-sized array of int) -0:46 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 3 (const int) -0:47 direct index (layout( column_major shared) temp float) -0:47 b: direct index for structure (layout( column_major shared) uniform runtime-sized array of float) -0:47 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) -0:47 Constant: -0:47 1 (const int) -0:47 Constant: -0:47 3 (const int) -0:48 direct index (layout( column_major shared) temp int) -0:48 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int) -0:48 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) -0:48 Constant: -0:48 0 (const int) -0:48 Constant: -0:48 3 (const int) -0:49 direct index (layout( column_major shared) temp float) -0:49 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float) -0:49 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) -0:49 Constant: -0:49 1 (const int) -0:49 Constant: -0:49 3 (const int) -0:51 direct index (layout( column_major shared) temp int) -0:51 a: direct index for structure (layout( column_major shared) uniform runtime-sized array of int) -0:51 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) -0:51 'ubufa' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) -0:51 Constant: -0:51 3 (const int) -0:51 Constant: -0:51 0 (const int) -0:51 Constant: -0:51 3 (const int) -0:52 direct index (layout( column_major shared) temp float) -0:52 b: direct index for structure (layout( column_major shared) uniform runtime-sized array of float) -0:52 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) -0:52 'ubufa' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) -0:52 Constant: -0:52 3 (const int) -0:52 Constant: -0:52 1 (const int) -0:52 Constant: -0:52 3 (const int) -0:53 direct index (layout( column_major shared) temp int) -0:53 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int) -0:53 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) -0:53 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) -0:53 Constant: -0:53 3 (const int) -0:53 Constant: -0:53 0 (const int) -0:53 Constant: -0:53 3 (const int) -0:54 direct index (layout( column_major shared) temp float) -0:54 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float) -0:54 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) -0:54 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) -0:54 Constant: -0:54 3 (const int) -0:54 Constant: -0:54 1 (const int) -0:54 Constant: -0:54 3 (const int) -0:56 direct index (layout( column_major shared) temp int) -0:56 aua: direct index for structure (layout( column_major shared) uniform runtime-sized array of int) -0:56 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int aua, layout( column_major shared) uniform runtime-sized array of float aub}) -0:56 Constant: -0:56 0 (const uint) -0:56 Constant: -0:56 3 (const int) -0:57 direct index (layout( column_major shared) temp float) -0:57 aub: direct index for structure (layout( column_major shared) uniform runtime-sized array of float) -0:57 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int aua, layout( column_major shared) uniform runtime-sized array of float aub}) -0:57 Constant: -0:57 1 (const uint) -0:57 Constant: -0:57 3 (const int) -0:58 direct index (layout( column_major shared) temp int) -0:58 aba: direct index for structure (layout( column_major shared) buffer runtime-sized array of int) -0:58 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb}) -0:58 Constant: -0:58 0 (const uint) -0:58 Constant: -0:58 3 (const int) -0:59 direct index (layout( column_major shared) temp float) -0:59 abb: direct index for structure (layout( column_major shared) buffer runtime-sized array of float) -0:59 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb}) -0:59 Constant: -0:59 1 (const uint) -0:59 Constant: -0:59 3 (const int) -0:61 indirect index (layout( column_major shared) temp int) -0:61 a: direct index for structure (layout( column_major shared) uniform runtime-sized array of int) -0:61 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) -0:61 Constant: -0:61 0 (const int) -0:61 'i' ( global int) -0:62 indirect index (layout( column_major shared) temp float) -0:62 b: direct index for structure (layout( column_major shared) uniform runtime-sized array of float) -0:62 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) -0:62 Constant: -0:62 1 (const int) -0:62 'i' ( global int) -0:63 indirect index (layout( column_major shared) temp int) -0:63 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int) -0:63 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) -0:63 Constant: -0:63 0 (const int) -0:63 'i' ( global int) -0:64 indirect index (layout( column_major shared) temp float) -0:64 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float) -0:64 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) -0:64 Constant: -0:64 1 (const int) -0:64 'i' ( global int) -0:66 Constant: -0:66 1 (const int) -0:67 Constant: -0:67 1 (const int) -0:68 Constant: -0:68 1 (const int) -0:69 array length ( temp int) -0:69 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float) -0:69 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) -0:69 Constant: -0:69 1 (const int) -0:71 indirect index (layout( column_major shared) temp int) -0:71 a: direct index for structure (layout( column_major shared) uniform runtime-sized array of int) -0:71 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) -0:71 'ubufa' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) -0:71 Constant: -0:71 1 (const int) -0:71 Constant: -0:71 0 (const int) -0:71 'i' ( global int) -0:72 indirect index (layout( column_major shared) temp float) -0:72 b: direct index for structure (layout( column_major shared) uniform runtime-sized array of float) -0:72 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) -0:72 'ubufa' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) -0:72 Constant: -0:72 1 (const int) -0:72 Constant: -0:72 1 (const int) -0:72 'i' ( global int) -0:73 indirect index (layout( column_major shared) temp int) -0:73 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int) -0:73 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) -0:73 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) -0:73 Constant: -0:73 1 (const int) -0:73 Constant: -0:73 0 (const int) -0:73 'i' ( global int) -0:74 indirect index (layout( column_major shared) temp float) -0:74 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float) -0:74 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) -0:74 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) -0:74 Constant: -0:74 1 (const int) -0:74 Constant: -0:74 1 (const int) -0:74 'i' ( global int) -0:76 Constant: -0:76 1 (const int) -0:77 Constant: -0:77 1 (const int) -0:78 Constant: -0:78 1 (const int) -0:79 array length ( temp int) -0:79 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float) -0:79 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) -0:79 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) -0:79 Constant: -0:79 1 (const int) -0:79 Constant: -0:79 1 (const int) -0:81 indirect index (layout( column_major shared) temp int) -0:81 aua: direct index for structure (layout( column_major shared) uniform runtime-sized array of int) -0:81 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int aua, layout( column_major shared) uniform runtime-sized array of float aub}) -0:81 Constant: -0:81 0 (const uint) -0:81 'i' ( global int) -0:82 indirect index (layout( column_major shared) temp float) -0:82 aub: direct index for structure (layout( column_major shared) uniform runtime-sized array of float) -0:82 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int aua, layout( column_major shared) uniform runtime-sized array of float aub}) -0:82 Constant: -0:82 1 (const uint) -0:82 'i' ( global int) -0:83 indirect index (layout( column_major shared) temp int) -0:83 aba: direct index for structure (layout( column_major shared) buffer runtime-sized array of int) -0:83 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb}) -0:83 Constant: -0:83 0 (const uint) -0:83 'i' ( global int) -0:84 indirect index (layout( column_major shared) temp float) -0:84 abb: direct index for structure (layout( column_major shared) buffer runtime-sized array of float) -0:84 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb}) -0:84 Constant: -0:84 1 (const uint) -0:84 'i' ( global int) -0:86 Constant: -0:86 1 (const int) -0:87 Constant: -0:87 1 (const int) -0:88 Constant: -0:88 1 (const int) -0:89 array length ( temp int) -0:89 abb: direct index for structure (layout( column_major shared) buffer runtime-sized array of float) -0:89 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb}) -0:89 Constant: -0:89 1 (const uint) -0:91 direct index (layout( binding=1) temp samplerBuffer) -0:91 'uniformTexelBufferDyn' (layout( binding=1) uniform runtime-sized array of samplerBuffer) -0:91 Constant: -0:91 1 (const int) -0:92 direct index (layout( binding=2 r32f) temp imageBuffer) -0:92 'storageTexelBufferDyn' (layout( binding=2 r32f) uniform runtime-sized array of imageBuffer) -0:92 Constant: -0:92 1 (const int) -0:93 direct index (layout( binding=3 column_major shared) temp block{layout( column_major shared) uniform float a}) -0:93 'uniformBuffer' (layout( binding=3 column_major shared) uniform runtime-sized array of block{layout( column_major shared) uniform float a}) -0:93 Constant: -0:93 1 (const int) -0:94 direct index (layout( binding=4 column_major shared) temp block{layout( column_major shared) buffer float b}) -0:94 'storageBuffer' (layout( binding=4 column_major shared) buffer runtime-sized array of block{layout( column_major shared) buffer float b}) -0:94 Constant: -0:94 1 (const int) -0:95 direct index (layout( binding=5) temp sampler2D) -0:95 'sampledImage' (layout( binding=5) uniform runtime-sized array of sampler2D) -0:95 Constant: -0:95 1 (const int) -0:96 direct index (layout( binding=6 r32f) temp image2D) -0:96 'storageImage' (layout( binding=6 r32f) uniform runtime-sized array of image2D) -0:96 Constant: -0:96 1 (const int) -0:97 direct index (layout( binding=8) temp samplerBuffer) -0:97 'uniformTexelBuffer' (layout( binding=8) uniform runtime-sized array of samplerBuffer) -0:97 Constant: -0:97 1 (const int) -0:98 direct index (layout( binding=9 r32f) temp imageBuffer) -0:98 'storageTexelBuffer' (layout( binding=9 r32f) uniform runtime-sized array of imageBuffer) -0:98 Constant: -0:98 1 (const int) -0:100 indirect index (layout( binding=1) temp samplerBuffer) -0:100 'uniformTexelBufferDyn' (layout( binding=1) uniform runtime-sized array of samplerBuffer) -0:100 'i' ( global int) -0:101 indirect index (layout( binding=2 r32f) temp imageBuffer) -0:101 'storageTexelBufferDyn' (layout( binding=2 r32f) uniform runtime-sized array of imageBuffer) -0:101 'i' ( global int) -0:102 indirect index (layout( binding=3 column_major shared) temp block{layout( column_major shared) uniform float a}) -0:102 'uniformBuffer' (layout( binding=3 column_major shared) uniform runtime-sized array of block{layout( column_major shared) uniform float a}) -0:102 'i' ( global int) -0:103 indirect index (layout( binding=4 column_major shared) temp block{layout( column_major shared) buffer float b}) -0:103 'storageBuffer' (layout( binding=4 column_major shared) buffer runtime-sized array of block{layout( column_major shared) buffer float b}) -0:103 'i' ( global int) -0:104 indirect index (layout( binding=5) temp sampler2D) -0:104 'sampledImage' (layout( binding=5) uniform runtime-sized array of sampler2D) -0:104 'i' ( global int) -0:105 indirect index (layout( binding=6 r32f) temp image2D) -0:105 'storageImage' (layout( binding=6 r32f) uniform runtime-sized array of image2D) -0:105 'i' ( global int) -0:106 indirect index (layout( binding=8) temp samplerBuffer) -0:106 'uniformTexelBuffer' (layout( binding=8) uniform runtime-sized array of samplerBuffer) -0:106 'i' ( global int) -0:107 indirect index (layout( binding=9 r32f) temp imageBuffer) -0:107 'storageTexelBuffer' (layout( binding=9 r32f) uniform runtime-sized array of imageBuffer) -0:107 'i' ( global int) -0:109 Sequence -0:109 move second child to first child ( temp 1-element array of float) -0:109 'local' ( temp 1-element array of float) -0:109 b: direct index for structure (layout( column_major shared) uniform runtime-sized array of float) -0:109 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) -0:109 Constant: -0:109 1 (const int) -0:? Linker Objects -0:? 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) -0:? 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) -0:? 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) -0:? 'ubufa' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) -0:? 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb}) -0:? 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int aua, layout( column_major shared) uniform runtime-sized array of float aub}) -0:? 'uniformTexelBufferDyn' (layout( binding=1) uniform runtime-sized array of samplerBuffer) -0:? 'storageTexelBufferDyn' (layout( binding=2 r32f) uniform runtime-sized array of imageBuffer) -0:? 'uniformBuffer' (layout( binding=3 column_major shared) uniform runtime-sized array of block{layout( column_major shared) uniform float a}) -0:? 'storageBuffer' (layout( binding=4 column_major shared) buffer runtime-sized array of block{layout( column_major shared) buffer float b}) -0:? 'sampledImage' (layout( binding=5) uniform runtime-sized array of sampler2D) -0:? 'storageImage' (layout( binding=6 r32f) uniform runtime-sized array of image2D) -0:? 'uniformTexelBuffer' (layout( binding=8) uniform runtime-sized array of samplerBuffer) -0:? 'storageTexelBuffer' (layout( binding=9 r32f) uniform runtime-sized array of imageBuffer) -0:? 'i' ( global int) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - diff --git a/deps/glslang/Test/baseResults/sample.frag.out b/deps/glslang/Test/baseResults/sample.frag.out deleted file mode 100644 index 780789a7..00000000 --- a/deps/glslang/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/Test/baseResults/sample.vert.out b/deps/glslang/Test/baseResults/sample.vert.out deleted file mode 100644 index 848598eb..00000000 --- a/deps/glslang/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/Test/baseResults/samplerlessTextureFunctions.frag.out b/deps/glslang/Test/baseResults/samplerlessTextureFunctions.frag.out deleted file mode 100644 index 8ac8d4de..00000000 --- a/deps/glslang/Test/baseResults/samplerlessTextureFunctions.frag.out +++ /dev/null @@ -1,13 +0,0 @@ -samplerlessTextureFunctions.frag -ERROR: 0:9: 'texelFetch' : required extension not requested: GL_EXT_samplerless_texture_functions -ERROR: 0:10: 'texelFetch' : required extension not requested: GL_EXT_samplerless_texture_functions -ERROR: 0:16: 'texelFetchOffset' : required extension not requested: GL_EXT_samplerless_texture_functions -ERROR: 0:18: 'textureSize' : required extension not requested: GL_EXT_samplerless_texture_functions -ERROR: 0:19: 'textureSize' : required extension not requested: GL_EXT_samplerless_texture_functions -ERROR: 0:20: 'textureSize' : required extension not requested: GL_EXT_samplerless_texture_functions -ERROR: 0:22: 'textureQueryLevels' : required extension not requested: GL_EXT_samplerless_texture_functions -ERROR: 0:24: 'textureSamples' : required extension not requested: GL_EXT_samplerless_texture_functions -ERROR: 8 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/simpleFunctionCall.frag.out b/deps/glslang/Test/baseResults/simpleFunctionCall.frag.out deleted file mode 100644 index 5ccd54d2..00000000 --- a/deps/glslang/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/Test/baseResults/size b/deps/glslang/Test/baseResults/size deleted file mode 100644 index a7b99b96..00000000 --- a/deps/glslang/Test/baseResults/size +++ /dev/null @@ -1 +0,0 @@ -399360 ../build/install/bin/glslangValidator.exe diff --git a/deps/glslang/Test/baseResults/specExamples.frag.out b/deps/glslang/Test/baseResults/specExamples.frag.out deleted file mode 100644 index 5fb5bd71..00000000 --- a/deps/glslang/Test/baseResults/specExamples.frag.out +++ /dev/null @@ -1,600 +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:123: 'gl_Color' : identifiers starting with "gl_" are reserved -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: 39 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:? 'gl_Color' ( flat in 4-component vector of float) - - -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:? 'gl_Color' ( flat in 4-component vector of float) - diff --git a/deps/glslang/Test/baseResults/specExamples.vert.out b/deps/glslang/Test/baseResults/specExamples.vert.out deleted file mode 100644 index caddb5c4..00000000 --- a/deps/glslang/Test/baseResults/specExamples.vert.out +++ /dev/null @@ -1,601 +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: 'gl_FrontColor' : identifiers starting with "gl_" are reserved -ERROR: 0:107: '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:169: 'format' : image formats must match -ERROR: 0:170: 'coherent' : argument cannot drop memory qualifier when passed to formal parameter -ERROR: 0:170: 'format' : image formats must match -ERROR: 35 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:? 'gl_FrontColor' ( flat in 4-component vector of float) -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) coherent readonly buffer 4-component vector of float member1, layout( column_major shared) coherent 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:? 'gl_FrontColor' ( flat in 4-component vector of float) -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) coherent readonly buffer 4-component vector of float member1, layout( column_major shared) coherent 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/Test/baseResults/specExamplesConf.vert.out b/deps/glslang/Test/baseResults/specExamplesConf.vert.out deleted file mode 100644 index 7d5fbb90..00000000 --- a/deps/glslang/Test/baseResults/specExamplesConf.vert.out +++ /dev/null @@ -1,602 +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: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: 'gl_FrontColor' : identifiers starting with "gl_" are reserved -ERROR: 0:107: '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:169: 'format' : image formats must match -ERROR: 0:170: 'coherent' : argument cannot drop memory qualifier when passed to formal parameter -ERROR: 0:170: 'format' : image formats must match -ERROR: 36 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:? 'gl_FrontColor' ( flat in 4-component vector of float) -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) coherent readonly buffer 4-component vector of float member1, layout( column_major shared) coherent 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:? 'gl_FrontColor' ( flat in 4-component vector of float) -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) coherent readonly buffer 4-component vector of float member1, layout( column_major shared) coherent 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/Test/baseResults/spv.1.3.8bitstorage-ssbo.vert.out b/deps/glslang/Test/baseResults/spv.1.3.8bitstorage-ssbo.vert.out deleted file mode 100644 index d5126394..00000000 --- a/deps/glslang/Test/baseResults/spv.1.3.8bitstorage-ssbo.vert.out +++ /dev/null @@ -1,56 +0,0 @@ -spv.1.3.8bitstorage-ssbo.vert -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 28 - - Capability Shader - Capability StorageBuffer8BitAccess - Extension "SPV_KHR_8bit_storage" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 9 18 - Source GLSL 450 - SourceExtension "GL_EXT_shader_8bit_storage" - Name 4 "main" - Name 9 "color" - Name 12 "Vertices" - MemberName 12(Vertices) 0 "vertices" - Name 14 "" - Name 18 "gl_VertexIndex" - Decorate 9(color) Location 0 - Decorate 11 ArrayStride 1 - MemberDecorate 12(Vertices) 0 NonWritable - MemberDecorate 12(Vertices) 0 Offset 0 - Decorate 12(Vertices) Block - Decorate 14 DescriptorSet 0 - Decorate 14 Binding 0 - Decorate 18(gl_VertexIndex) BuiltIn VertexIndex - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) - 9(color): 8(ptr) Variable Output - 10: TypeInt 8 0 - 11: TypeRuntimeArray 10(int8_t) - 12(Vertices): TypeStruct 11 - 13: TypePointer StorageBuffer 12(Vertices) - 14: 13(ptr) Variable StorageBuffer - 15: TypeInt 32 1 - 16: 15(int) Constant 0 - 17: TypePointer Input 15(int) -18(gl_VertexIndex): 17(ptr) Variable Input - 20: TypePointer StorageBuffer 10(int8_t) - 23: TypeInt 32 0 - 4(main): 2 Function None 3 - 5: Label - 19: 15(int) Load 18(gl_VertexIndex) - 21: 20(ptr) AccessChain 14 16 19 - 22: 10(int8_t) Load 21 - 24: 23(int) UConvert 22 - 25: 15(int) Bitcast 24 - 26: 6(float) ConvertSToF 25 - 27: 7(fvec4) CompositeConstruct 26 26 26 26 - Store 9(color) 27 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.1.3.8bitstorage-ubo.vert.out b/deps/glslang/Test/baseResults/spv.1.3.8bitstorage-ubo.vert.out deleted file mode 100644 index 1dce1ea0..00000000 --- a/deps/glslang/Test/baseResults/spv.1.3.8bitstorage-ubo.vert.out +++ /dev/null @@ -1,56 +0,0 @@ -spv.1.3.8bitstorage-ubo.vert -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 29 - - Capability Shader - Capability UniformAndStorageBuffer8BitAccess - Extension "SPV_KHR_8bit_storage" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 9 20 - Source GLSL 450 - SourceExtension "GL_EXT_shader_8bit_storage" - Name 4 "main" - Name 9 "color" - Name 14 "Vertices" - MemberName 14(Vertices) 0 "vertices" - Name 16 "" - Name 20 "gl_VertexIndex" - Decorate 9(color) Location 0 - Decorate 13 ArrayStride 16 - MemberDecorate 14(Vertices) 0 Offset 0 - Decorate 14(Vertices) Block - Decorate 16 DescriptorSet 0 - Decorate 16 Binding 0 - Decorate 20(gl_VertexIndex) BuiltIn VertexIndex - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) - 9(color): 8(ptr) Variable Output - 10: TypeInt 8 0 - 11: TypeInt 32 0 - 12: 11(int) Constant 512 - 13: TypeArray 10(int8_t) 12 - 14(Vertices): TypeStruct 13 - 15: TypePointer Uniform 14(Vertices) - 16: 15(ptr) Variable Uniform - 17: TypeInt 32 1 - 18: 17(int) Constant 0 - 19: TypePointer Input 17(int) -20(gl_VertexIndex): 19(ptr) Variable Input - 22: TypePointer Uniform 10(int8_t) - 4(main): 2 Function None 3 - 5: Label - 21: 17(int) Load 20(gl_VertexIndex) - 23: 22(ptr) AccessChain 16 18 21 - 24: 10(int8_t) Load 23 - 25: 11(int) UConvert 24 - 26: 17(int) Bitcast 25 - 27: 6(float) ConvertSToF 26 - 28: 7(fvec4) CompositeConstruct 27 27 27 27 - Store 9(color) 28 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.1.3.coopmat.comp.out b/deps/glslang/Test/baseResults/spv.1.3.coopmat.comp.out deleted file mode 100644 index d7a9d5ec..00000000 --- a/deps/glslang/Test/baseResults/spv.1.3.coopmat.comp.out +++ /dev/null @@ -1,95 +0,0 @@ -spv.1.3.coopmat.comp -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 52 - - Capability Shader - Capability VariablePointers - Capability VulkanMemoryModelKHR - Capability CooperativeMatrixNV - Extension "SPV_KHR_vulkan_memory_model" - Extension "SPV_NV_cooperative_matrix" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical VulkanKHR - EntryPoint GLCompute 4 "main" - ExecutionMode 4 LocalSize 64 1 1 - Source GLSL 450 - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16" - SourceExtension "GL_KHR_memory_scope_semantics" - SourceExtension "GL_NV_cooperative_matrix" - Name 4 "main" - Name 13 "m" - Name 29 "tempArg" - Name 33 "Block" - MemberName 33(Block) 0 "y" - MemberName 33(Block) 1 "x" - Name 35 "block" - Decorate 31 ArrayStride 4 - Decorate 32 ArrayStride 4 - MemberDecorate 33(Block) 0 Offset 0 - MemberDecorate 33(Block) 1 Offset 4194304 - Decorate 33(Block) Block - Decorate 35(block) DescriptorSet 0 - Decorate 35(block) Binding 0 - Decorate 51 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeInt 32 0 - 8: 7(int) Constant 3 - 9: 7(int) Constant 16 - 10: 7(int) Constant 8 - 11: TypeCooperativeMatrixNV 6(float) 8 9 10 - 12: TypePointer Function 11 - 14: 6(float) Constant 0 - 15: 11 ConstantComposite 14 - 24: 6(float) Constant 1073741824 - 30: 7(int) Constant 1048576 - 31: TypeArray 6(float) 30 - 32: TypeRuntimeArray 6(float) - 33(Block): TypeStruct 31 32 - 34: TypePointer StorageBuffer 33(Block) - 35(block): 34(ptr) Variable StorageBuffer - 36: TypeInt 32 1 - 37: 36(int) Constant 1 - 38: 7(int) Constant 5 - 39: TypePointer StorageBuffer 6(float) - 41: 7(int) Constant 128 - 42: TypeBool - 43: 42(bool) ConstantFalse - 48: TypeVector 7(int) 3 - 49: 7(int) Constant 64 - 50: 7(int) Constant 1 - 51: 48(ivec3) ConstantComposite 49 50 50 - 4(main): 2 Function None 3 - 5: Label - 13(m): 12(ptr) Variable Function - 29(tempArg): 12(ptr) Variable Function - Store 13(m) 15 - 16: 11 Load 13(m) - 17: 11 Load 13(m) - 18: 11 FAdd 16 17 - Store 13(m) 18 - 19: 11 Load 13(m) - 20: 11 Load 13(m) - 21: 11 FSub 19 20 - Store 13(m) 21 - 22: 11 Load 13(m) - 23: 11 FNegate 22 - Store 13(m) 23 - 25: 11 Load 13(m) - 26: 11 MatrixTimesScalar 25 24 - Store 13(m) 26 - 27: 11 Load 13(m) - 28: 11 MatrixTimesScalar 27 24 - Store 13(m) 28 - 40: 39(ptr) AccessChain 35(block) 37 9 - 44: 11 CooperativeMatrixLoadNV 40 41 43 MakePointerVisibleKHR NonPrivatePointerKHR 38 - Store 29(tempArg) 44 - 45: 11 Load 29(tempArg) - Store 13(m) 45 - 46: 11 Load 13(m) - 47: 39(ptr) AccessChain 35(block) 37 9 - CooperativeMatrixStoreNV 47 46 41 43 MakePointerAvailableKHR NonPrivatePointerKHR 38 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.1.4.LoopControl.frag.out b/deps/glslang/Test/baseResults/spv.1.4.LoopControl.frag.out deleted file mode 100644 index 0ffffd60..00000000 --- a/deps/glslang/Test/baseResults/spv.1.4.LoopControl.frag.out +++ /dev/null @@ -1,109 +0,0 @@ -spv.1.4.LoopControl.frag -WARNING: 0:15: 'min_iterations' : expected a single integer argument -WARNING: 0:15: 'max_iterations' : expected a single integer argument - -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 54 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 53 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_control_flow_attributes" - Name 4 "main" - Name 8 "i" - Name 32 "i" - Name 42 "i" - Name 53 "cond" - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Function 6(int) - 9: 6(int) Constant 0 - 16: 6(int) Constant 8 - 17: TypeBool - 20: 6(int) Constant 1 - 27: 17(bool) ConstantTrue - 52: TypePointer Private 17(bool) - 53(cond): 52(ptr) Variable Private - 4(main): 2 Function None 3 - 5: Label - 8(i): 7(ptr) Variable Function - 32(i): 7(ptr) Variable Function - 42(i): 7(ptr) Variable Function - Store 8(i) 9 - Branch 10 - 10: Label - LoopMerge 12 13 MinIterations MaxIterations 3 7 - Branch 14 - 14: Label - 15: 6(int) Load 8(i) - 18: 17(bool) SLessThan 15 16 - BranchConditional 18 11 12 - 11: Label - Branch 13 - 13: Label - 19: 6(int) Load 8(i) - 21: 6(int) IAdd 19 20 - Store 8(i) 21 - Branch 10 - 12: Label - Branch 22 - 22: Label - LoopMerge 24 25 IterationMultiple 2 - Branch 26 - 26: Label - BranchConditional 27 23 24 - 23: Label - Branch 25 - 25: Label - Branch 22 - 24: Label - Branch 28 - 28: Label - LoopMerge 30 31 PeelCount 5 - Branch 29 - 29: Label - Branch 31 - 31: Label - BranchConditional 27 28 30 - 30: Label - Store 32(i) 9 - Branch 33 - 33: Label - LoopMerge 35 36 PartialCount 4 - Branch 37 - 37: Label - 38: 6(int) Load 32(i) - 39: 17(bool) SLessThan 38 16 - BranchConditional 39 34 35 - 34: Label - Branch 36 - 36: Label - 40: 6(int) Load 32(i) - 41: 6(int) IAdd 40 20 - Store 32(i) 41 - Branch 33 - 35: Label - Store 42(i) 9 - Branch 43 - 43: Label - LoopMerge 45 46 None - Branch 47 - 47: Label - 48: 6(int) Load 42(i) - 49: 17(bool) SLessThan 48 16 - BranchConditional 49 44 45 - 44: Label - Branch 46 - 46: Label - 50: 6(int) Load 42(i) - 51: 6(int) IAdd 50 20 - Store 42(i) 51 - Branch 43 - 45: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.1.4.NonWritable.frag.out b/deps/glslang/Test/baseResults/spv.1.4.NonWritable.frag.out deleted file mode 100644 index da3b52c2..00000000 --- a/deps/glslang/Test/baseResults/spv.1.4.NonWritable.frag.out +++ /dev/null @@ -1,58 +0,0 @@ -spv.1.4.NonWritable.frag -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 38 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 8 31 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - Name 4 "main" - Name 8 "color" - Name 31 "index" - Name 34 "indexable" - Decorate 8(color) Location 0 - Decorate 31(index) Flat - Decorate 31(index) Location 0 - Decorate 34(indexable) NonWritable - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypePointer Output 6(float) - 8(color): 7(ptr) Variable Output - 9: TypeInt 32 0 - 10: 9(int) Constant 16 - 11: TypeArray 6(float) 10 - 12: 6(float) Constant 1065353216 - 13: 6(float) Constant 1073741824 - 14: 6(float) Constant 1077936128 - 15: 6(float) Constant 1082130432 - 16: 6(float) Constant 1084227584 - 17: 6(float) Constant 1086324736 - 18: 6(float) Constant 1088421888 - 19: 6(float) Constant 1090519040 - 20: 6(float) Constant 1091567616 - 21: 6(float) Constant 1092616192 - 22: 6(float) Constant 1093664768 - 23: 6(float) Constant 1094713344 - 24: 6(float) Constant 1095761920 - 25: 6(float) Constant 1096810496 - 26: 6(float) Constant 1097859072 - 27: 6(float) Constant 1098907648 - 28: 11 ConstantComposite 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 - 29: TypeInt 32 1 - 30: TypePointer Input 29(int) - 31(index): 30(ptr) Variable Input - 33: TypePointer Function 11 - 35: TypePointer Function 6(float) - 4(main): 2 Function None 3 - 5: Label - 34(indexable): 33(ptr) Variable Function 28 - 32: 29(int) Load 31(index) - 36: 35(ptr) AccessChain 34(indexable) 32 - 37: 6(float) Load 36 - Store 8(color) 37 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.1.4.OpCopyLogical.comp.out b/deps/glslang/Test/baseResults/spv.1.4.OpCopyLogical.comp.out deleted file mode 100644 index 018fd0a7..00000000 --- a/deps/glslang/Test/baseResults/spv.1.4.OpCopyLogical.comp.out +++ /dev/null @@ -1,150 +0,0 @@ -spv.1.4.OpCopyLogical.comp -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 65 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 19 27 35 51 60 - 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 25 "SSBO1" - MemberName 25(SSBO1) 0 "b" - Name 27 "outBuf" - Name 32 "MyStruct" - MemberName 32(MyStruct) 0 "foo" - MemberName 32(MyStruct) 1 "sb" - Name 33 "UBO" - MemberName 33(UBO) 0 "c" - Name 35 "uBuf" - Name 44 "Nested" - MemberName 44(Nested) 0 "f" - MemberName 44(Nested) 1 "S" - Name 46 "n" - Name 48 "Nested" - MemberName 48(Nested) 0 "f" - MemberName 48(Nested) 1 "S" - Name 49 "UBON" - MemberName 49(UBON) 0 "N1" - Name 51 "uBufN" - Name 57 "Nested" - MemberName 57(Nested) 0 "f" - MemberName 57(Nested) 1 "S" - Name 58 "SSBO1N" - MemberName 58(SSBO1N) 0 "N2" - Name 60 "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) Block - Decorate 19(inBuf) DescriptorSet 0 - Decorate 19(inBuf) Binding 0 - MemberDecorate 25(SSBO1) 0 Offset 0 - Decorate 25(SSBO1) Block - Decorate 27(outBuf) DescriptorSet 0 - Decorate 27(outBuf) Binding 1 - Decorate 31 ArrayStride 16 - MemberDecorate 32(MyStruct) 0 Offset 0 - MemberDecorate 32(MyStruct) 1 Offset 32 - MemberDecorate 33(UBO) 0 Offset 0 - Decorate 33(UBO) Block - Decorate 35(uBuf) DescriptorSet 0 - Decorate 35(uBuf) Binding 2 - Decorate 47 ArrayStride 48 - MemberDecorate 48(Nested) 0 Offset 0 - MemberDecorate 48(Nested) 1 Offset 16 - MemberDecorate 49(UBON) 0 Offset 0 - Decorate 49(UBON) Block - Decorate 51(uBufN) DescriptorSet 0 - Decorate 51(uBufN) Binding 2 - Decorate 56 ArrayStride 24 - MemberDecorate 57(Nested) 0 Offset 0 - MemberDecorate 57(Nested) 1 Offset 8 - MemberDecorate 58(SSBO1N) 0 Offset 0 - Decorate 58(SSBO1N) Block - Decorate 60(outBufN) DescriptorSet 0 - Decorate 60(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: TypeInt 32 1 - 12(MyStruct): TypeStruct 10 11(int) - 13: TypePointer Function 12(MyStruct) - 15: TypeArray 7(fvec2) 9 - 16(MyStruct): TypeStruct 15 11(int) - 17(SSBO0): TypeStruct 16(MyStruct) - 18: TypePointer StorageBuffer 17(SSBO0) - 19(inBuf): 18(ptr) Variable StorageBuffer - 20: 11(int) Constant 0 - 21: TypePointer StorageBuffer 16(MyStruct) - 25(SSBO1): TypeStruct 16(MyStruct) - 26: TypePointer StorageBuffer 25(SSBO1) - 27(outBuf): 26(ptr) Variable StorageBuffer - 31: TypeArray 7(fvec2) 9 - 32(MyStruct): TypeStruct 31 11(int) - 33(UBO): TypeStruct 32(MyStruct) - 34: TypePointer Uniform 33(UBO) - 35(uBuf): 34(ptr) Variable Uniform - 36: TypePointer Uniform 32(MyStruct) - 43: TypeArray 12(MyStruct) 9 - 44(Nested): TypeStruct 6(float) 43 - 45: TypePointer Function 44(Nested) - 47: TypeArray 32(MyStruct) 9 - 48(Nested): TypeStruct 6(float) 47 - 49(UBON): TypeStruct 48(Nested) - 50: TypePointer Uniform 49(UBON) - 51(uBufN): 50(ptr) Variable Uniform - 52: TypePointer Uniform 48(Nested) - 56: TypeArray 16(MyStruct) 9 - 57(Nested): TypeStruct 6(float) 56 - 58(SSBO1N): TypeStruct 57(Nested) - 59: TypePointer StorageBuffer 58(SSBO1N) - 60(outBufN): 59(ptr) Variable StorageBuffer - 62: TypePointer StorageBuffer 57(Nested) - 4(main): 2 Function None 3 - 5: Label - 14(t): 13(ptr) Variable Function - 46(n): 45(ptr) Variable Function - 22: 21(ptr) AccessChain 19(inBuf) 20 - 23:16(MyStruct) Load 22 - 24:12(MyStruct) CopyLogical 23 - Store 14(t) 24 - 28:12(MyStruct) Load 14(t) - 29: 21(ptr) AccessChain 27(outBuf) 20 - 30:16(MyStruct) CopyLogical 28 - Store 29 30 - 37: 36(ptr) AccessChain 35(uBuf) 20 - 38:32(MyStruct) Load 37 - 39:12(MyStruct) CopyLogical 38 - Store 14(t) 39 - 40:12(MyStruct) Load 14(t) - 41: 21(ptr) AccessChain 27(outBuf) 20 - 42:16(MyStruct) CopyLogical 40 - Store 41 42 - 53: 52(ptr) AccessChain 51(uBufN) 20 - 54: 48(Nested) Load 53 - 55: 44(Nested) CopyLogical 54 - Store 46(n) 55 - 61: 44(Nested) Load 46(n) - 63: 62(ptr) AccessChain 60(outBufN) 20 - 64: 57(Nested) CopyLogical 61 - Store 63 64 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.1.4.OpCopyLogical.funcall.frag.out b/deps/glslang/Test/baseResults/spv.1.4.OpCopyLogical.funcall.frag.out deleted file mode 100644 index a2458baf..00000000 --- a/deps/glslang/Test/baseResults/spv.1.4.OpCopyLogical.funcall.frag.out +++ /dev/null @@ -1,110 +0,0 @@ -spv.1.4.OpCopyLogical.funcall.frag -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 59 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 25 36 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - Name 4 "main" - Name 9 "S" - MemberName 9(S) 0 "m" - Name 12 "fooConst(struct-S-mf441;" - Name 11 "s" - Name 17 "foo(struct-S-mf441;" - Name 16 "s" - Name 20 "fooOut(struct-S-mf441;" - Name 19 "s" - Name 22 "S" - MemberName 22(S) 0 "m" - Name 23 "blockName" - MemberName 23(blockName) 0 "s1" - Name 25 "" - Name 31 "arg" - Name 36 "s2" - Name 39 "param" - Name 44 "param" - Name 47 "param" - Name 55 "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) Block - Decorate 25 DescriptorSet 0 - Decorate 25 Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeMatrix 7(fvec4) 4 - 9(S): TypeStruct 8 - 10: TypeFunction 2 9(S) - 14: TypePointer Function 9(S) - 15: TypeFunction 2 14(ptr) - 22(S): TypeStruct 8 - 23(blockName): TypeStruct 22(S) - 24: TypePointer StorageBuffer 23(blockName) - 25: 24(ptr) Variable StorageBuffer - 26: TypeInt 32 1 - 27: 26(int) Constant 0 - 28: TypePointer StorageBuffer 22(S) - 35: TypePointer Private 9(S) - 36(s2): 35(ptr) Variable Private - 4(main): 2 Function None 3 - 5: Label - 31(arg): 14(ptr) Variable Function - 39(param): 14(ptr) Variable Function - 44(param): 14(ptr) Variable Function - 47(param): 14(ptr) Variable Function - 55(param): 14(ptr) Variable Function - 29: 28(ptr) AccessChain 25 27 - 30: 22(S) Load 29 - 32: 9(S) CopyLogical 30 - Store 31(arg) 32 - 33: 9(S) Load 31(arg) - 34: 2 FunctionCall 12(fooConst(struct-S-mf441;) 33 - 37: 9(S) Load 36(s2) - 38: 2 FunctionCall 12(fooConst(struct-S-mf441;) 37 - 40: 28(ptr) AccessChain 25 27 - 41: 22(S) Load 40 - 42: 9(S) CopyLogical 41 - Store 39(param) 42 - 43: 2 FunctionCall 17(foo(struct-S-mf441;) 39(param) - 45: 9(S) Load 36(s2) - Store 44(param) 45 - 46: 2 FunctionCall 17(foo(struct-S-mf441;) 44(param) - 48: 28(ptr) AccessChain 25 27 - 49: 22(S) Load 48 - 50: 9(S) CopyLogical 49 - Store 47(param) 50 - 51: 2 FunctionCall 20(fooOut(struct-S-mf441;) 47(param) - 52: 9(S) Load 47(param) - 53: 28(ptr) AccessChain 25 27 - 54: 22(S) CopyLogical 52 - Store 53 54 - 56: 9(S) Load 36(s2) - Store 55(param) 56 - 57: 2 FunctionCall 20(fooOut(struct-S-mf441;) 55(param) - 58: 9(S) Load 55(param) - Store 36(s2) 58 - Return - FunctionEnd -12(fooConst(struct-S-mf441;): 2 Function None 10 - 11(s): 9(S) FunctionParameter - 13: Label - Return - FunctionEnd -17(foo(struct-S-mf441;): 2 Function None 15 - 16(s): 14(ptr) FunctionParameter - 18: Label - Return - FunctionEnd -20(fooOut(struct-S-mf441;): 2 Function None 15 - 19(s): 14(ptr) FunctionParameter - 21: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.1.4.OpCopyLogicalBool.comp.out b/deps/glslang/Test/baseResults/spv.1.4.OpCopyLogicalBool.comp.out deleted file mode 100644 index 7dcda62c..00000000 --- a/deps/glslang/Test/baseResults/spv.1.4.OpCopyLogicalBool.comp.out +++ /dev/null @@ -1,232 +0,0 @@ -spv.1.4.OpCopyLogicalBool.comp -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 135 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 19 37 53 79 109 - 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 35 "SSBO1" - MemberName 35(SSBO1) 0 "b" - Name 37 "outBuf" - Name 50 "MyStruct" - MemberName 50(MyStruct) 0 "foo" - MemberName 50(MyStruct) 1 "sb" - Name 51 "UBO" - MemberName 51(UBO) 0 "c" - Name 53 "uBuf" - Name 72 "Nested" - MemberName 72(Nested) 0 "b" - MemberName 72(Nested) 1 "S" - Name 74 "n" - Name 76 "Nested" - MemberName 76(Nested) 0 "b" - MemberName 76(Nested) 1 "S" - Name 77 "UBON" - MemberName 77(UBON) 0 "N1" - Name 79 "uBufN" - Name 106 "Nested" - MemberName 106(Nested) 0 "b" - MemberName 106(Nested) 1 "S" - Name 107 "SSBO1N" - MemberName 107(SSBO1N) 0 "N2" - Name 109 "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) Block - Decorate 19(inBuf) DescriptorSet 0 - Decorate 19(inBuf) Binding 0 - MemberDecorate 35(SSBO1) 0 Offset 0 - Decorate 35(SSBO1) Block - Decorate 37(outBuf) DescriptorSet 0 - Decorate 37(outBuf) Binding 1 - Decorate 49 ArrayStride 16 - MemberDecorate 50(MyStruct) 0 Offset 0 - MemberDecorate 50(MyStruct) 1 Offset 32 - MemberDecorate 51(UBO) 0 Offset 0 - Decorate 51(UBO) Block - Decorate 53(uBuf) DescriptorSet 0 - Decorate 53(uBuf) Binding 2 - Decorate 75 ArrayStride 48 - MemberDecorate 76(Nested) 0 Offset 0 - MemberDecorate 76(Nested) 1 Offset 16 - MemberDecorate 77(UBON) 0 Offset 0 - Decorate 77(UBON) Block - Decorate 79(uBufN) DescriptorSet 0 - Decorate 79(uBufN) Binding 2 - Decorate 105 ArrayStride 24 - MemberDecorate 106(Nested) 0 Offset 0 - MemberDecorate 106(Nested) 1 Offset 8 - MemberDecorate 107(SSBO1N) 0 Offset 0 - Decorate 107(SSBO1N) Block - Decorate 109(outBufN) DescriptorSet 0 - Decorate 109(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 StorageBuffer 17(SSBO0) - 19(inBuf): 18(ptr) Variable StorageBuffer - 20: TypeInt 32 1 - 21: 20(int) Constant 0 - 22: TypePointer StorageBuffer 16(MyStruct) - 26: TypePointer Function 10 - 30: 20(int) Constant 1 - 31: 8(int) Constant 0 - 33: TypePointer Function 11(bool) - 35(SSBO1): TypeStruct 16(MyStruct) - 36: TypePointer StorageBuffer 35(SSBO1) - 37(outBuf): 36(ptr) Variable StorageBuffer - 41: TypePointer StorageBuffer 15 - 45: 8(int) Constant 1 - 47: TypePointer StorageBuffer 8(int) - 49: TypeArray 7(fvec2) 9 - 50(MyStruct): TypeStruct 49 8(int) - 51(UBO): TypeStruct 50(MyStruct) - 52: TypePointer Uniform 51(UBO) - 53(uBuf): 52(ptr) Variable Uniform - 54: TypePointer Uniform 50(MyStruct) - 71: TypeArray 12(MyStruct) 9 - 72(Nested): TypeStruct 11(bool) 71 - 73: TypePointer Function 72(Nested) - 75: TypeArray 50(MyStruct) 9 - 76(Nested): TypeStruct 8(int) 75 - 77(UBON): TypeStruct 76(Nested) - 78: TypePointer Uniform 77(UBON) - 79(uBufN): 78(ptr) Variable Uniform - 80: TypePointer Uniform 76(Nested) - 87: TypePointer Function 71 - 105: TypeArray 16(MyStruct) 9 - 106(Nested): TypeStruct 8(int) 105 - 107(SSBO1N): TypeStruct 106(Nested) - 108: TypePointer StorageBuffer 107(SSBO1N) - 109(outBufN): 108(ptr) Variable StorageBuffer - 111: TypePointer StorageBuffer 106(Nested) - 117: TypePointer StorageBuffer 105 - 4(main): 2 Function None 3 - 5: Label - 14(t): 13(ptr) Variable Function - 74(n): 73(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: 10 CopyLogical 25 - Store 27 28 - 29: 8(int) CompositeExtract 24 1 - 32: 11(bool) INotEqual 29 31 - 34: 33(ptr) AccessChain 14(t) 30 - Store 34 32 - 38:12(MyStruct) Load 14(t) - 39: 22(ptr) AccessChain 37(outBuf) 21 - 40: 10 CompositeExtract 38 0 - 42: 41(ptr) AccessChain 39 21 - 43: 15 CopyLogical 40 - Store 42 43 - 44: 11(bool) CompositeExtract 38 1 - 46: 8(int) Select 44 45 31 - 48: 47(ptr) AccessChain 39 30 - Store 48 46 - 55: 54(ptr) AccessChain 53(uBuf) 21 - 56:50(MyStruct) Load 55 - 57: 49 CompositeExtract 56 0 - 58: 26(ptr) AccessChain 14(t) 21 - 59: 10 CopyLogical 57 - Store 58 59 - 60: 8(int) CompositeExtract 56 1 - 61: 11(bool) INotEqual 60 31 - 62: 33(ptr) AccessChain 14(t) 30 - Store 62 61 - 63:12(MyStruct) Load 14(t) - 64: 22(ptr) AccessChain 37(outBuf) 21 - 65: 10 CompositeExtract 63 0 - 66: 41(ptr) AccessChain 64 21 - 67: 15 CopyLogical 65 - Store 66 67 - 68: 11(bool) CompositeExtract 63 1 - 69: 8(int) Select 68 45 31 - 70: 47(ptr) AccessChain 64 30 - Store 70 69 - 81: 80(ptr) AccessChain 79(uBufN) 21 - 82: 76(Nested) Load 81 - 83: 8(int) CompositeExtract 82 0 - 84: 11(bool) INotEqual 83 31 - 85: 33(ptr) AccessChain 74(n) 21 - Store 85 84 - 86: 75 CompositeExtract 82 1 - 88: 87(ptr) AccessChain 74(n) 30 - 89:50(MyStruct) CompositeExtract 86 0 - 90: 13(ptr) AccessChain 88 21 - 91: 49 CompositeExtract 89 0 - 92: 26(ptr) AccessChain 90 21 - 93: 10 CopyLogical 91 - Store 92 93 - 94: 8(int) CompositeExtract 89 1 - 95: 11(bool) INotEqual 94 31 - 96: 33(ptr) AccessChain 90 30 - Store 96 95 - 97:50(MyStruct) CompositeExtract 86 1 - 98: 13(ptr) AccessChain 88 30 - 99: 49 CompositeExtract 97 0 - 100: 26(ptr) AccessChain 98 21 - 101: 10 CopyLogical 99 - Store 100 101 - 102: 8(int) CompositeExtract 97 1 - 103: 11(bool) INotEqual 102 31 - 104: 33(ptr) AccessChain 98 30 - Store 104 103 - 110: 72(Nested) Load 74(n) - 112: 111(ptr) AccessChain 109(outBufN) 21 - 113: 11(bool) CompositeExtract 110 0 - 114: 8(int) Select 113 45 31 - 115: 47(ptr) AccessChain 112 21 - Store 115 114 - 116: 71 CompositeExtract 110 1 - 118: 117(ptr) AccessChain 112 30 - 119:12(MyStruct) CompositeExtract 116 0 - 120: 22(ptr) AccessChain 118 21 - 121: 10 CompositeExtract 119 0 - 122: 41(ptr) AccessChain 120 21 - 123: 15 CopyLogical 121 - Store 122 123 - 124: 11(bool) CompositeExtract 119 1 - 125: 8(int) Select 124 45 31 - 126: 47(ptr) AccessChain 120 30 - Store 126 125 - 127:12(MyStruct) CompositeExtract 116 1 - 128: 22(ptr) AccessChain 118 30 - 129: 10 CompositeExtract 127 0 - 130: 41(ptr) AccessChain 128 21 - 131: 15 CopyLogical 129 - Store 130 131 - 132: 11(bool) CompositeExtract 127 1 - 133: 8(int) Select 132 45 31 - 134: 47(ptr) AccessChain 128 30 - Store 134 133 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.1.4.OpEntryPoint.frag.out b/deps/glslang/Test/baseResults/spv.1.4.OpEntryPoint.frag.out deleted file mode 100644 index e43e954e..00000000 --- a/deps/glslang/Test/baseResults/spv.1.4.OpEntryPoint.frag.out +++ /dev/null @@ -1,105 +0,0 @@ -spv.1.4.OpEntryPoint.frag -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 64 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 11 14 17 25 33 41 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - Name 4 "main" - Name 9 "functionv" - Name 11 "inv" - Name 14 "globalv" - Name 17 "outv" - Name 23 "ubt" - MemberName 23(ubt) 0 "v" - Name 25 "uniformv" - Name 31 "pushB" - MemberName 31(pushB) 0 "a" - Name 33 "pushv" - Name 39 "bbt" - MemberName 39(bbt) 0 "f" - Name 41 "bufferv" - Decorate 11(inv) Location 0 - Decorate 17(outv) Location 0 - MemberDecorate 23(ubt) 0 Offset 0 - Decorate 23(ubt) Block - Decorate 25(uniformv) DescriptorSet 0 - Decorate 25(uniformv) Binding 0 - MemberDecorate 31(pushB) 0 Offset 0 - Decorate 31(pushB) Block - MemberDecorate 39(bbt) 0 Offset 0 - Decorate 39(bbt) Block - Decorate 41(bufferv) DescriptorSet 0 - Decorate 41(bufferv) Binding 1 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: TypePointer Input 7(fvec4) - 11(inv): 10(ptr) Variable Input - 13: TypePointer Private 7(fvec4) - 14(globalv): 13(ptr) Variable Private - 16: TypePointer Output 7(fvec4) - 17(outv): 16(ptr) Variable Output - 23(ubt): TypeStruct 7(fvec4) - 24: TypePointer Uniform 23(ubt) - 25(uniformv): 24(ptr) Variable Uniform - 26: TypeInt 32 1 - 27: 26(int) Constant 0 - 28: TypePointer Uniform 7(fvec4) - 31(pushB): TypeStruct 26(int) - 32: TypePointer PushConstant 31(pushB) - 33(pushv): 32(ptr) Variable PushConstant - 34: TypePointer PushConstant 26(int) - 39(bbt): TypeStruct 6(float) - 40: TypePointer StorageBuffer 39(bbt) - 41(bufferv): 40(ptr) Variable StorageBuffer - 42: TypePointer StorageBuffer 6(float) - 4(main): 2 Function None 3 - 5: Label - 9(functionv): 8(ptr) Variable Function - 12: 7(fvec4) Load 11(inv) - Store 9(functionv) 12 - 15: 7(fvec4) Load 11(inv) - Store 14(globalv) 15 - 18: 7(fvec4) Load 9(functionv) - 19: 7(fvec4) Load 11(inv) - 20: 7(fvec4) FAdd 18 19 - 21: 7(fvec4) Load 14(globalv) - 22: 7(fvec4) FAdd 20 21 - 29: 28(ptr) AccessChain 25(uniformv) 27 - 30: 7(fvec4) Load 29 - 35: 34(ptr) AccessChain 33(pushv) 27 - 36: 26(int) Load 35 - 37: 6(float) ConvertSToF 36 - 38: 7(fvec4) VectorTimesScalar 30 37 - 43: 42(ptr) AccessChain 41(bufferv) 27 - 44: 6(float) Load 43 - 45: 7(fvec4) VectorTimesScalar 38 44 - 46: 7(fvec4) FAdd 22 45 - Store 17(outv) 46 - 47: 7(fvec4) Load 9(functionv) - 48: 7(fvec4) Load 11(inv) - 49: 7(fvec4) FAdd 47 48 - 50: 7(fvec4) Load 14(globalv) - 51: 7(fvec4) FAdd 49 50 - 52: 28(ptr) AccessChain 25(uniformv) 27 - 53: 7(fvec4) Load 52 - 54: 34(ptr) AccessChain 33(pushv) 27 - 55: 26(int) Load 54 - 56: 6(float) ConvertSToF 55 - 57: 7(fvec4) VectorTimesScalar 53 56 - 58: 42(ptr) AccessChain 41(bufferv) 27 - 59: 6(float) Load 58 - 60: 7(fvec4) VectorTimesScalar 57 59 - 61: 7(fvec4) FAdd 51 60 - 62: 7(fvec4) Load 17(outv) - 63: 7(fvec4) FAdd 62 61 - Store 17(outv) 63 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.1.4.OpEntryPoint.opaqueParams.vert.out b/deps/glslang/Test/baseResults/spv.1.4.OpEntryPoint.opaqueParams.vert.out deleted file mode 100644 index 835ab13b..00000000 --- a/deps/glslang/Test/baseResults/spv.1.4.OpEntryPoint.opaqueParams.vert.out +++ /dev/null @@ -1,72 +0,0 @@ -spv.1.4.OpEntryPoint.opaqueParams.vert -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 45 - - Capability Shader - Capability ImageQuery - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 41 42 43 - Source GLSL 450 - Name 4 "main" - Name 18 "funOpaque(s21;t21;p1;" - Name 15 "s2D" - Name 16 "t2D" - Name 17 "s" - Name 40 "size" - Name 41 "s2D" - Name 42 "t2D" - Name 43 "s" - Decorate 41(s2D) DescriptorSet 0 - Decorate 41(s2D) Binding 0 - Decorate 42(t2D) DescriptorSet 0 - Decorate 42(t2D) Binding 1 - Decorate 43(s) DescriptorSet 0 - Decorate 43(s) Binding 3 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeImage 6(float) 2D sampled format:Unknown - 8: TypeSampledImage 7 - 9: TypePointer UniformConstant 8 - 10: TypePointer UniformConstant 7 - 11: TypeSampler - 12: TypePointer UniformConstant 11 - 13: TypeVector 6(float) 2 - 14: TypeFunction 13(fvec2) 9(ptr) 10(ptr) 12(ptr) - 21: TypeInt 32 1 - 22: 21(int) Constant 0 - 24: TypeVector 21(int) 2 - 30: 6(float) Constant 1056964608 - 31: 13(fvec2) ConstantComposite 30 30 - 32: TypeVector 6(float) 4 - 33: 6(float) Constant 0 - 39: TypePointer Function 13(fvec2) - 41(s2D): 9(ptr) Variable UniformConstant - 42(t2D): 10(ptr) Variable UniformConstant - 43(s): 12(ptr) Variable UniformConstant - 4(main): 2 Function None 3 - 5: Label - 40(size): 39(ptr) Variable Function - 44: 13(fvec2) FunctionCall 18(funOpaque(s21;t21;p1;) 41(s2D) 42(t2D) 43(s) - Store 40(size) 44 - Return - FunctionEnd -18(funOpaque(s21;t21;p1;): 13(fvec2) Function None 14 - 15(s2D): 9(ptr) FunctionParameter - 16(t2D): 10(ptr) FunctionParameter - 17(s): 12(ptr) FunctionParameter - 19: Label - 20: 8 Load 15(s2D) - 23: 7 Image 20 - 25: 24(ivec2) ImageQuerySizeLod 23 22 - 26: 13(fvec2) ConvertSToF 25 - 27: 7 Load 16(t2D) - 28: 11 Load 17(s) - 29: 8 SampledImage 27 28 - 34: 32(fvec4) ImageSampleExplicitLod 29 31 Lod 33 - 35: 13(fvec2) VectorShuffle 34 34 0 1 - 36: 13(fvec2) FMul 26 35 - ReturnValue 36 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.1.4.OpSelect.frag.out b/deps/glslang/Test/baseResults/spv.1.4.OpSelect.frag.out deleted file mode 100644 index b3a5b4d2..00000000 --- a/deps/glslang/Test/baseResults/spv.1.4.OpSelect.frag.out +++ /dev/null @@ -1,152 +0,0 @@ -spv.1.4.OpSelect.frag -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 98 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 17 20 82 84 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - Name 4 "main" - Name 6 "fun1(" - Name 8 "fun2(" - Name 12 "f1" - Name 14 "f2" - Name 17 "outv" - Name 20 "cond" - Name 30 "iv1" - Name 34 "iv2" - Name 53 "m1" - Name 59 "m2" - Name 75 "S1" - MemberName 75(S1) 0 "a" - MemberName 75(S1) 1 "b" - Name 77 "fv" - Name 82 "in1" - Name 84 "in2" - Decorate 17(outv) Location 0 - Decorate 20(cond) Flat - Decorate 20(cond) Location 4 - Decorate 82(in1) Flat - Decorate 82(in1) Location 0 - Decorate 84(in2) Flat - Decorate 84(in2) Location 2 - 2: TypeVoid - 3: TypeFunction 2 - 10: TypeFloat 32 - 11: TypePointer Function 10(float) - 13: 10(float) Constant 1065353216 - 15: 10(float) Constant 1073741824 - 16: TypePointer Output 10(float) - 17(outv): 16(ptr) Variable Output - 18: TypeInt 32 1 - 19: TypePointer Input 18(int) - 20(cond): 19(ptr) Variable Input - 22: 18(int) Constant 8 - 23: TypeBool - 28: TypeVector 18(int) 4 - 29: TypePointer Function 28(ivec4) - 39: 18(int) Constant 0 - 44: TypeInt 32 0 - 45: 44(int) Constant 2 - 50: TypeVector 10(float) 3 - 51: TypeMatrix 50(fvec3) 3 - 52: TypePointer Function 51 - 54: 10(float) Constant 0 - 55: 50(fvec3) ConstantComposite 13 54 54 - 56: 50(fvec3) ConstantComposite 54 13 54 - 57: 50(fvec3) ConstantComposite 54 54 13 - 58: 51 ConstantComposite 55 56 57 - 60: 50(fvec3) ConstantComposite 15 54 54 - 61: 50(fvec3) ConstantComposite 54 15 54 - 62: 50(fvec3) ConstantComposite 54 54 15 - 63: 51 ConstantComposite 60 61 62 - 65: 18(int) Constant 20 - 70: 18(int) Constant 2 - 71: 44(int) Constant 1 - 75(S1): TypeStruct 10(float) 18(int) - 76: TypePointer Function 75(S1) - 79: 18(int) Constant 5 - 81: TypePointer Input 75(S1) - 82(in1): 81(ptr) Variable Input - 84(in2): 81(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 12(f1): 11(ptr) Variable Function - 14(f2): 11(ptr) Variable Function - 30(iv1): 29(ptr) Variable Function - 34(iv2): 29(ptr) Variable Function - 53(m1): 52(ptr) Variable Function - 59(m2): 52(ptr) Variable Function - 77(fv): 76(ptr) Variable Function - Store 12(f1) 13 - Store 14(f2) 15 - 21: 18(int) Load 20(cond) - 24: 23(bool) SLessThan 21 22 - 25: 10(float) Load 12(f1) - 26: 10(float) Load 14(f2) - 27: 10(float) Select 24 25 26 - Store 17(outv) 27 - 31: 10(float) Load 12(f1) - 32: 18(int) ConvertFToS 31 - 33: 28(ivec4) CompositeConstruct 32 32 32 32 - Store 30(iv1) 33 - 35: 10(float) Load 14(f2) - 36: 18(int) ConvertFToS 35 - 37: 28(ivec4) CompositeConstruct 36 36 36 36 - Store 34(iv2) 37 - 38: 18(int) Load 20(cond) - 40: 23(bool) SGreaterThan 38 39 - 41: 28(ivec4) Load 30(iv1) - 42: 28(ivec4) Load 34(iv2) - 43: 28(ivec4) Select 40 41 42 - 46: 18(int) CompositeExtract 43 2 - 47: 10(float) ConvertSToF 46 - 48: 10(float) Load 17(outv) - 49: 10(float) FMul 48 47 - Store 17(outv) 49 - Store 53(m1) 58 - Store 59(m2) 63 - 64: 18(int) Load 20(cond) - 66: 23(bool) SLessThan 64 65 - 67: 51 Load 53(m1) - 68: 51 Load 59(m2) - 69: 51 Select 66 67 68 - 72: 10(float) CompositeExtract 69 2 1 - 73: 10(float) Load 17(outv) - 74: 10(float) FMul 73 72 - Store 17(outv) 74 - 78: 18(int) Load 20(cond) - 80: 23(bool) SGreaterThan 78 79 - 83: 75(S1) Load 82(in1) - 85: 75(S1) Load 84(in2) - 86: 75(S1) Select 80 83 85 - Store 77(fv) 86 - 87: 11(ptr) AccessChain 77(fv) 39 - 88: 10(float) Load 87 - 89: 10(float) Load 17(outv) - 90: 10(float) FMul 89 88 - Store 17(outv) 90 - 91: 18(int) Load 20(cond) - 92: 23(bool) SGreaterThan 91 39 - SelectionMerge 94 None - BranchConditional 92 93 96 - 93: Label - 95: 2 FunctionCall 6(fun1() - Branch 94 - 96: Label - 97: 2 FunctionCall 8(fun2() - Branch 94 - 94: Label - Return - FunctionEnd - 6(fun1(): 2 Function None 3 - 7: Label - Return - FunctionEnd - 8(fun2(): 2 Function None 3 - 9: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.1.4.constructComposite.comp.out b/deps/glslang/Test/baseResults/spv.1.4.constructComposite.comp.out deleted file mode 100644 index cbec3817..00000000 --- a/deps/glslang/Test/baseResults/spv.1.4.constructComposite.comp.out +++ /dev/null @@ -1,62 +0,0 @@ -spv.1.4.constructComposite.comp -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 27 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 10 15 - ExecutionMode 4 LocalSize 64 1 1 - Source GLSL 460 - Name 4 "main" - Name 7 "sA" - MemberName 7(sA) 0 "x" - MemberName 7(sA) 1 "y" - Name 8 "sC" - MemberName 8(sC) 0 "state" - Name 10 "c" - Name 11 "sA" - MemberName 11(sA) 0 "x" - MemberName 11(sA) 1 "y" - Name 12 "sB" - MemberName 12(sB) 0 "a" - Name 13 "ubo" - MemberName 13(ubo) 0 "b" - Name 15 "" - MemberDecorate 11(sA) 0 Offset 0 - MemberDecorate 11(sA) 1 Offset 4 - MemberDecorate 12(sB) 0 Offset 0 - MemberDecorate 13(ubo) 0 Offset 0 - Decorate 13(ubo) Block - Decorate 15 DescriptorSet 0 - Decorate 15 Binding 0 - Decorate 26 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7(sA): TypeStruct 6(int) 6(int) - 8(sC): TypeStruct 7(sA) - 9: TypePointer Private 8(sC) - 10(c): 9(ptr) Variable Private - 11(sA): TypeStruct 6(int) 6(int) - 12(sB): TypeStruct 11(sA) - 13(ubo): TypeStruct 12(sB) - 14: TypePointer Uniform 13(ubo) - 15: 14(ptr) Variable Uniform - 16: 6(int) Constant 0 - 17: TypePointer Uniform 11(sA) - 22: TypeInt 32 0 - 23: TypeVector 22(int) 3 - 24: 22(int) Constant 64 - 25: 22(int) Constant 1 - 26: 23(ivec3) ConstantComposite 24 25 25 - 4(main): 2 Function None 3 - 5: Label - 18: 17(ptr) AccessChain 15 16 16 - 19: 11(sA) Load 18 - 20: 7(sA) CopyLogical 19 - 21: 8(sC) CompositeConstruct 20 - Store 10(c) 21 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.1.4.funcall.array.frag.out b/deps/glslang/Test/baseResults/spv.1.4.funcall.array.frag.out deleted file mode 100644 index d976bb1f..00000000 --- a/deps/glslang/Test/baseResults/spv.1.4.funcall.array.frag.out +++ /dev/null @@ -1,74 +0,0 @@ -spv.1.4.funcall.array.frag -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 42 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 27 31 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - Name 4 "main" - Name 16 "f(vf4[9];i1;" - Name 14 "a" - Name 15 "ix" - Name 20 "indexable" - Name 27 "color" - Name 29 "ub" - MemberName 29(ub) 0 "u" - Name 31 "" - Name 37 "arg" - Name 40 "param" - Decorate 27(color) Location 0 - Decorate 28 ArrayStride 16 - MemberDecorate 29(ub) 0 Offset 0 - Decorate 29(ub) Block - Decorate 31 DescriptorSet 0 - Decorate 31 Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeInt 32 0 - 9: 8(int) Constant 9 - 10: TypeArray 7(fvec4) 9 - 11: TypeInt 32 1 - 12: TypePointer Function 11(int) - 13: TypeFunction 7(fvec4) 10 12(ptr) - 19: TypePointer Function 10 - 21: TypePointer Function 7(fvec4) - 26: TypePointer Output 7(fvec4) - 27(color): 26(ptr) Variable Output - 28: TypeArray 7(fvec4) 9 - 29(ub): TypeStruct 28 - 30: TypePointer Uniform 29(ub) - 31: 30(ptr) Variable Uniform - 32: 11(int) Constant 0 - 33: TypePointer Uniform 28 - 36: 11(int) Constant 2 - 4(main): 2 Function None 3 - 5: Label - 37(arg): 19(ptr) Variable Function - 40(param): 12(ptr) Variable Function - 34: 33(ptr) AccessChain 31 32 - 35: 28 Load 34 - 38: 10 CopyLogical 35 - Store 37(arg) 38 - 39: 10 Load 37(arg) - Store 40(param) 36 - 41: 7(fvec4) FunctionCall 16(f(vf4[9];i1;) 39 40(param) - Store 27(color) 41 - Return - FunctionEnd -16(f(vf4[9];i1;): 7(fvec4) Function None 13 - 14(a): 10 FunctionParameter - 15(ix): 12(ptr) FunctionParameter - 17: Label - 20(indexable): 19(ptr) Variable Function - 18: 11(int) Load 15(ix) - Store 20(indexable) 14(a) - 22: 21(ptr) AccessChain 20(indexable) 18 - 23: 7(fvec4) Load 22 - ReturnValue 23 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.1.4.image.frag.out b/deps/glslang/Test/baseResults/spv.1.4.image.frag.out deleted file mode 100644 index fadde975..00000000 --- a/deps/glslang/Test/baseResults/spv.1.4.image.frag.out +++ /dev/null @@ -1,162 +0,0 @@ -spv.1.4.image.frag -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 104 - - Capability Shader - Capability StorageImageMultisample - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 26 30 40 52 64 77 89 100 103 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - Name 4 "main" - Name 9 "v" - Name 15 "iv" - Name 21 "uv" - Name 26 "i2D" - Name 30 "ic2D" - Name 40 "ii2D" - Name 52 "ui2D" - Name 64 "i2DMS" - Name 77 "ii2DMS" - Name 89 "ui2DMS" - Name 100 "fragData" - Name 103 "value" - Decorate 26(i2D) DescriptorSet 0 - Decorate 26(i2D) Binding 1 - Decorate 30(ic2D) Flat - Decorate 30(ic2D) Location 0 - Decorate 40(ii2D) DescriptorSet 0 - Decorate 40(ii2D) Binding 12 - Decorate 52(ui2D) DescriptorSet 0 - Decorate 52(ui2D) Binding 12 - Decorate 64(i2DMS) DescriptorSet 0 - Decorate 64(i2DMS) Binding 9 - Decorate 77(ii2DMS) DescriptorSet 0 - Decorate 77(ii2DMS) Binding 13 - Decorate 89(ui2DMS) DescriptorSet 0 - Decorate 89(ui2DMS) Binding 13 - Decorate 100(fragData) Location 0 - Decorate 103(value) Flat - Decorate 103(value) Location 1 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: 6(float) Constant 0 - 11: 7(fvec4) ConstantComposite 10 10 10 10 - 12: TypeInt 32 1 - 13: TypeVector 12(int) 4 - 14: TypePointer Function 13(ivec4) - 16: 12(int) Constant 0 - 17: 13(ivec4) ConstantComposite 16 16 16 16 - 18: TypeInt 32 0 - 19: TypeVector 18(int) 4 - 20: TypePointer Function 19(ivec4) - 22: 18(int) Constant 0 - 23: 19(ivec4) ConstantComposite 22 22 22 22 - 24: TypeImage 6(float) 2D nonsampled format:Rgba32f - 25: TypePointer UniformConstant 24 - 26(i2D): 25(ptr) Variable UniformConstant - 28: TypeVector 12(int) 2 - 29: TypePointer Input 28(ivec2) - 30(ic2D): 29(ptr) Variable Input - 38: TypeImage 12(int) 2D nonsampled format:R32i - 39: TypePointer UniformConstant 38 - 40(ii2D): 39(ptr) Variable UniformConstant - 50: TypeImage 18(int) 2D nonsampled format:R32ui - 51: TypePointer UniformConstant 50 - 52(ui2D): 51(ptr) Variable UniformConstant - 62: TypeImage 6(float) 2D multi-sampled nonsampled format:Rgba32f - 63: TypePointer UniformConstant 62 - 64(i2DMS): 63(ptr) Variable UniformConstant - 67: 12(int) Constant 1 - 73: 12(int) Constant 2 - 75: TypeImage 12(int) 2D multi-sampled nonsampled format:R32i - 76: TypePointer UniformConstant 75 - 77(ii2DMS): 76(ptr) Variable UniformConstant - 87: TypeImage 18(int) 2D multi-sampled nonsampled format:R32ui - 88: TypePointer UniformConstant 87 - 89(ui2DMS): 88(ptr) Variable UniformConstant - 99: TypePointer Output 7(fvec4) - 100(fragData): 99(ptr) Variable Output - 102: TypePointer Input 18(int) - 103(value): 102(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 9(v): 8(ptr) Variable Function - 15(iv): 14(ptr) Variable Function - 21(uv): 20(ptr) Variable Function - Store 9(v) 11 - Store 15(iv) 17 - Store 21(uv) 23 - 27: 24 Load 26(i2D) - 31: 28(ivec2) Load 30(ic2D) - 32: 7(fvec4) ImageRead 27 31 - 33: 7(fvec4) Load 9(v) - 34: 7(fvec4) FAdd 33 32 - Store 9(v) 34 - 35: 24 Load 26(i2D) - 36: 28(ivec2) Load 30(ic2D) - 37: 7(fvec4) Load 9(v) - ImageWrite 35 36 37 - 41: 38 Load 40(ii2D) - 42: 28(ivec2) Load 30(ic2D) - 43: 13(ivec4) ImageRead 41 42 SignExtend - 44: 7(fvec4) ConvertSToF 43 - 45: 7(fvec4) Load 9(v) - 46: 7(fvec4) FAdd 45 44 - Store 9(v) 46 - 47: 38 Load 40(ii2D) - 48: 28(ivec2) Load 30(ic2D) - 49: 13(ivec4) Load 15(iv) - ImageWrite 47 48 49 SignExtend - 53: 50 Load 52(ui2D) - 54: 28(ivec2) Load 30(ic2D) - 55: 19(ivec4) ImageRead 53 54 ZeroExtend - 56: 7(fvec4) ConvertUToF 55 - 57: 7(fvec4) Load 9(v) - 58: 7(fvec4) FAdd 57 56 - Store 9(v) 58 - 59: 50 Load 52(ui2D) - 60: 28(ivec2) Load 30(ic2D) - 61: 19(ivec4) Load 21(uv) - ImageWrite 59 60 61 ZeroExtend - 65: 62 Load 64(i2DMS) - 66: 28(ivec2) Load 30(ic2D) - 68: 7(fvec4) ImageRead 65 66 Sample 67 - 69: 7(fvec4) Load 9(v) - 70: 7(fvec4) FAdd 69 68 - Store 9(v) 70 - 71: 62 Load 64(i2DMS) - 72: 28(ivec2) Load 30(ic2D) - 74: 7(fvec4) Load 9(v) - ImageWrite 71 72 74 Sample 73 - 78: 75 Load 77(ii2DMS) - 79: 28(ivec2) Load 30(ic2D) - 80: 13(ivec4) ImageRead 78 79 Sample SignExtend 67 - 81: 7(fvec4) ConvertSToF 80 - 82: 7(fvec4) Load 9(v) - 83: 7(fvec4) FAdd 82 81 - Store 9(v) 83 - 84: 75 Load 77(ii2DMS) - 85: 28(ivec2) Load 30(ic2D) - 86: 13(ivec4) Load 15(iv) - ImageWrite 84 85 86 Sample SignExtend 73 - 90: 87 Load 89(ui2DMS) - 91: 28(ivec2) Load 30(ic2D) - 92: 19(ivec4) ImageRead 90 91 Sample ZeroExtend 67 - 93: 7(fvec4) ConvertUToF 92 - 94: 7(fvec4) Load 9(v) - 95: 7(fvec4) FAdd 94 93 - Store 9(v) 95 - 96: 87 Load 89(ui2DMS) - 97: 28(ivec2) Load 30(ic2D) - 98: 19(ivec4) Load 21(uv) - ImageWrite 96 97 98 Sample ZeroExtend 73 - 101: 7(fvec4) Load 9(v) - Store 100(fragData) 101 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.1.4.load.bool.array.interface.block.frag.out b/deps/glslang/Test/baseResults/spv.1.4.load.bool.array.interface.block.frag.out deleted file mode 100644 index 9f698db8..00000000 --- a/deps/glslang/Test/baseResults/spv.1.4.load.bool.array.interface.block.frag.out +++ /dev/null @@ -1,104 +0,0 @@ -spv.1.4.load.bool.array.interface.block.frag -Validation failed -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 64 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 13 20 61 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - Name 4 "main" - Name 11 "ssbo" - MemberName 11(ssbo) 0 "bo" - Name 13 "" - Name 18 "ub" - MemberName 18(ub) 0 "bi" - Name 20 "" - Name 61 "color" - Decorate 8 ArrayStride 4 - Decorate 10 ArrayStride 12 - MemberDecorate 11(ssbo) 0 Offset 0 - Decorate 11(ssbo) Block - Decorate 13 DescriptorSet 0 - Decorate 13 Binding 1 - Decorate 16 ArrayStride 16 - Decorate 17 ArrayStride 48 - MemberDecorate 18(ub) 0 Offset 0 - Decorate 18(ub) Block - Decorate 20 DescriptorSet 0 - Decorate 20 Binding 0 - Decorate 61(color) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: 6(int) Constant 3 - 8: TypeArray 6(int) 7 - 9: 6(int) Constant 2 - 10: TypeArray 8 9 - 11(ssbo): TypeStruct 10 - 12: TypePointer StorageBuffer 11(ssbo) - 13: 12(ptr) Variable StorageBuffer - 14: TypeInt 32 1 - 15: 14(int) Constant 0 - 16: TypeArray 6(int) 7 - 17: TypeArray 16 9 - 18(ub): TypeStruct 17 - 19: TypePointer Uniform 18(ub) - 20: 19(ptr) Variable Uniform - 21: TypePointer Uniform 17 - 24: TypeBool - 25: TypeArray 24(bool) 7 - 26: TypeArray 25 9 - 28: TypePointer StorageBuffer 10 - 31: TypePointer StorageBuffer 8 - 34: 6(int) Constant 1 - 35: 6(int) Constant 0 - 37: TypePointer StorageBuffer 6(int) - 40: 14(int) Constant 1 - 44: 14(int) Constant 2 - 58: TypeFloat 32 - 59: TypeVector 58(float) 4 - 60: TypePointer Output 59(fvec4) - 61(color): 60(ptr) Variable Output - 62: 58(float) Constant 0 - 63: 59(fvec4) ConstantComposite 62 62 62 62 - 4(main): 2 Function None 3 - 5: Label - 22: 21(ptr) AccessChain 20 15 - 23: 17 Load 22 - 27: 26 CopyLogical 23 - 29: 28(ptr) AccessChain 13 15 - 30: 25 CompositeExtract 27 0 - 32: 31(ptr) AccessChain 29 15 - 33: 24(bool) CompositeExtract 30 0 - 36: 6(int) Select 33 34 35 - 38: 37(ptr) AccessChain 32 15 - Store 38 36 - 39: 24(bool) CompositeExtract 30 1 - 41: 6(int) Select 39 34 35 - 42: 37(ptr) AccessChain 32 40 - Store 42 41 - 43: 24(bool) CompositeExtract 30 2 - 45: 6(int) Select 43 34 35 - 46: 37(ptr) AccessChain 32 44 - Store 46 45 - 47: 25 CompositeExtract 27 1 - 48: 31(ptr) AccessChain 29 40 - 49: 24(bool) CompositeExtract 47 0 - 50: 6(int) Select 49 34 35 - 51: 37(ptr) AccessChain 48 15 - Store 51 50 - 52: 24(bool) CompositeExtract 47 1 - 53: 6(int) Select 52 34 35 - 54: 37(ptr) AccessChain 48 40 - Store 54 53 - 55: 24(bool) CompositeExtract 47 2 - 56: 6(int) Select 55 34 35 - 57: 37(ptr) AccessChain 48 44 - Store 57 56 - Store 61(color) 63 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.1.4.sparseTexture.frag.out b/deps/glslang/Test/baseResults/spv.1.4.sparseTexture.frag.out deleted file mode 100644 index 965f4c8d..00000000 --- a/deps/glslang/Test/baseResults/spv.1.4.sparseTexture.frag.out +++ /dev/null @@ -1,333 +0,0 @@ -spv.1.4.sparseTexture.frag -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 213 - - Capability Shader - Capability StorageImageMultisample - Capability SparseResidency - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 29 33 42 46 59 63 84 96 119 133 149 152 159 162 177 181 189 206 208 212 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_ARB_sparse_texture2" - Name 4 "main" - Name 8 "resident" - Name 13 "texel" - Name 18 "itexel" - Name 23 "utexel" - Name 29 "s2D" - Name 33 "c2" - Name 35 "ResType" - Name 42 "tempReturn" - Name 46 "is2D" - Name 49 "tempArg" - Name 50 "ResType" - Name 59 "tempReturn" - Name 63 "us2D" - Name 66 "tempArg" - Name 67 "ResType" - Name 84 "tempReturn" - Name 87 "tempArg" - Name 96 "tempReturn" - Name 99 "tempArg" - Name 119 "tempReturn" - Name 123 "tempArg" - Name 133 "tempReturn" - Name 137 "tempArg" - Name 149 "i2D" - Name 152 "ic2" - Name 159 "tempReturn" - Name 162 "ii2DMS" - Name 166 "tempArg" - Name 177 "ui3D" - Name 181 "ic3" - Name 189 "outColor" - Name 206 "c3" - Name 208 "c4" - Name 212 "offsets" - Decorate 29(s2D) DescriptorSet 0 - Decorate 29(s2D) Binding 0 - Decorate 33(c2) Location 0 - Decorate 46(is2D) DescriptorSet 0 - Decorate 46(is2D) Binding 1 - Decorate 63(us2D) DescriptorSet 0 - Decorate 63(us2D) Binding 2 - Decorate 149(i2D) DescriptorSet 0 - Decorate 149(i2D) Binding 3 - Decorate 152(ic2) Flat - Decorate 152(ic2) Location 3 - Decorate 162(ii2DMS) DescriptorSet 0 - Decorate 162(ii2DMS) Binding 4 - Decorate 177(ui3D) DescriptorSet 0 - Decorate 177(ui3D) Binding 5 - Decorate 181(ic3) Flat - Decorate 181(ic3) Location 4 - Decorate 189(outColor) Location 0 - Decorate 206(c3) Location 1 - Decorate 208(c4) Location 2 - Decorate 212(offsets) Flat - Decorate 212(offsets) Location 5 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Function 6(int) - 9: 6(int) Constant 0 - 10: TypeFloat 32 - 11: TypeVector 10(float) 4 - 12: TypePointer Function 11(fvec4) - 14: 10(float) Constant 0 - 15: 11(fvec4) ConstantComposite 14 14 14 14 - 16: TypeVector 6(int) 4 - 17: TypePointer Function 16(ivec4) - 19: 16(ivec4) ConstantComposite 9 9 9 9 - 20: TypeInt 32 0 - 21: TypeVector 20(int) 4 - 22: TypePointer Function 21(ivec4) - 24: 20(int) Constant 0 - 25: 21(ivec4) ConstantComposite 24 24 24 24 - 26: TypeImage 10(float) 2D sampled format:Unknown - 27: TypeSampledImage 26 - 28: TypePointer UniformConstant 27 - 29(s2D): 28(ptr) Variable UniformConstant - 31: TypeVector 10(float) 2 - 32: TypePointer Input 31(fvec2) - 33(c2): 32(ptr) Variable Input - 35(ResType): TypeStruct 6(int) 11(fvec4) - 41: TypePointer Private 6(int) - 42(tempReturn): 41(ptr) Variable Private - 43: TypeImage 6(int) 2D sampled format:Unknown - 44: TypeSampledImage 43 - 45: TypePointer UniformConstant 44 - 46(is2D): 45(ptr) Variable UniformConstant - 50(ResType): TypeStruct 6(int) 16(ivec4) - 59(tempReturn): 41(ptr) Variable Private - 60: TypeImage 20(int) 2D sampled format:Unknown - 61: TypeSampledImage 60 - 62: TypePointer UniformConstant 61 - 63(us2D): 62(ptr) Variable UniformConstant - 67(ResType): TypeStruct 6(int) 21(ivec4) - 78: 10(float) Constant 1073741824 - 84(tempReturn): 41(ptr) Variable Private - 96(tempReturn): 41(ptr) Variable Private - 110: TypeVector 6(int) 2 - 112: 6(int) Constant 2 - 119(tempReturn): 41(ptr) Variable Private - 133(tempReturn): 41(ptr) Variable Private - 147: TypeImage 10(float) 2D nonsampled format:Rgba32f - 148: TypePointer UniformConstant 147 - 149(i2D): 148(ptr) Variable UniformConstant - 151: TypePointer Input 110(ivec2) - 152(ic2): 151(ptr) Variable Input - 159(tempReturn): 41(ptr) Variable Private - 160: TypeImage 6(int) 2D multi-sampled nonsampled format:Rgba32i - 161: TypePointer UniformConstant 160 - 162(ii2DMS): 161(ptr) Variable UniformConstant - 165: 6(int) Constant 3 - 175: TypeImage 20(int) 3D nonsampled format:Rgba32ui - 176: TypePointer UniformConstant 175 - 177(ui3D): 176(ptr) Variable UniformConstant - 179: TypeVector 6(int) 3 - 180: TypePointer Input 179(ivec3) - 181(ic3): 180(ptr) Variable Input - 188: TypePointer Output 11(fvec4) - 189(outColor): 188(ptr) Variable Output - 191: TypeBool - 204: TypeVector 10(float) 3 - 205: TypePointer Input 204(fvec3) - 206(c3): 205(ptr) Variable Input - 207: TypePointer Input 11(fvec4) - 208(c4): 207(ptr) Variable Input - 209: 20(int) Constant 4 - 210: TypeArray 110(ivec2) 209 - 211: TypePointer Input 210 - 212(offsets): 211(ptr) Variable Input - 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 - 49(tempArg): 17(ptr) Variable Function - 66(tempArg): 22(ptr) Variable Function - 87(tempArg): 17(ptr) Variable Function - 99(tempArg): 22(ptr) Variable Function - 123(tempArg): 17(ptr) Variable Function - 137(tempArg): 22(ptr) Variable Function - 166(tempArg): 17(ptr) Variable Function - 193: 12(ptr) Variable Function - Store 8(resident) 9 - Store 13(texel) 15 - Store 18(itexel) 19 - Store 23(utexel) 25 - 30: 27 Load 29(s2D) - 34: 31(fvec2) Load 33(c2) - 36: 35(ResType) ImageSparseSampleImplicitLod 30 34 - 37: 11(fvec4) CompositeExtract 36 1 - Store 13(texel) 37 - 38: 6(int) CompositeExtract 36 0 - 39: 6(int) Load 8(resident) - 40: 6(int) BitwiseOr 39 38 - Store 8(resident) 40 - 47: 44 Load 46(is2D) - 48: 31(fvec2) Load 33(c2) - 51: 50(ResType) ImageSparseSampleImplicitLod 47 48 SignExtend - 52: 16(ivec4) CompositeExtract 51 1 - Store 49(tempArg) 52 - 53: 6(int) CompositeExtract 51 0 - Store 42(tempReturn) 53 - 54: 16(ivec4) Load 49(tempArg) - 55: 11(fvec4) ConvertSToF 54 - Store 13(texel) 55 - 56: 6(int) Load 42(tempReturn) - 57: 6(int) Load 8(resident) - 58: 6(int) BitwiseOr 57 56 - Store 8(resident) 58 - 64: 61 Load 63(us2D) - 65: 31(fvec2) Load 33(c2) - 68: 67(ResType) ImageSparseSampleImplicitLod 64 65 ZeroExtend - 69: 21(ivec4) CompositeExtract 68 1 - Store 66(tempArg) 69 - 70: 6(int) CompositeExtract 68 0 - Store 59(tempReturn) 70 - 71: 21(ivec4) Load 66(tempArg) - 72: 11(fvec4) ConvertUToF 71 - Store 13(texel) 72 - 73: 6(int) Load 59(tempReturn) - 74: 6(int) Load 8(resident) - 75: 6(int) BitwiseOr 74 73 - Store 8(resident) 75 - 76: 27 Load 29(s2D) - 77: 31(fvec2) Load 33(c2) - 79: 35(ResType) ImageSparseSampleExplicitLod 76 77 Lod 78 - 80: 11(fvec4) CompositeExtract 79 1 - Store 13(texel) 80 - 81: 6(int) CompositeExtract 79 0 - 82: 6(int) Load 8(resident) - 83: 6(int) BitwiseOr 82 81 - Store 8(resident) 83 - 85: 44 Load 46(is2D) - 86: 31(fvec2) Load 33(c2) - 88: 50(ResType) ImageSparseSampleExplicitLod 85 86 Lod SignExtend 78 - 89: 16(ivec4) CompositeExtract 88 1 - Store 87(tempArg) 89 - 90: 6(int) CompositeExtract 88 0 - Store 84(tempReturn) 90 - 91: 16(ivec4) Load 87(tempArg) - 92: 11(fvec4) ConvertSToF 91 - Store 13(texel) 92 - 93: 6(int) Load 84(tempReturn) - 94: 6(int) Load 8(resident) - 95: 6(int) BitwiseOr 94 93 - Store 8(resident) 95 - 97: 61 Load 63(us2D) - 98: 31(fvec2) Load 33(c2) - 100: 67(ResType) ImageSparseSampleExplicitLod 97 98 Lod ZeroExtend 78 - 101: 21(ivec4) CompositeExtract 100 1 - Store 99(tempArg) 101 - 102: 6(int) CompositeExtract 100 0 - Store 96(tempReturn) 102 - 103: 21(ivec4) Load 99(tempArg) - 104: 11(fvec4) ConvertUToF 103 - Store 13(texel) 104 - 105: 6(int) Load 96(tempReturn) - 106: 6(int) Load 8(resident) - 107: 6(int) BitwiseOr 106 105 - Store 8(resident) 107 - 108: 27 Load 29(s2D) - 109: 31(fvec2) Load 33(c2) - 111: 110(ivec2) ConvertFToS 109 - 113: 26 Image 108 - 114: 35(ResType) ImageSparseFetch 113 111 Lod 112 - 115: 11(fvec4) CompositeExtract 114 1 - Store 13(texel) 115 - 116: 6(int) CompositeExtract 114 0 - 117: 6(int) Load 8(resident) - 118: 6(int) BitwiseOr 117 116 - Store 8(resident) 118 - 120: 44 Load 46(is2D) - 121: 31(fvec2) Load 33(c2) - 122: 110(ivec2) ConvertFToS 121 - 124: 43 Image 120 - 125: 50(ResType) ImageSparseFetch 124 122 Lod SignExtend 112 - 126: 16(ivec4) CompositeExtract 125 1 - Store 123(tempArg) 126 - 127: 6(int) CompositeExtract 125 0 - Store 119(tempReturn) 127 - 128: 16(ivec4) Load 123(tempArg) - 129: 11(fvec4) ConvertSToF 128 - Store 13(texel) 129 - 130: 6(int) Load 119(tempReturn) - 131: 6(int) Load 8(resident) - 132: 6(int) BitwiseOr 131 130 - Store 8(resident) 132 - 134: 61 Load 63(us2D) - 135: 31(fvec2) Load 33(c2) - 136: 110(ivec2) ConvertFToS 135 - 138: 60 Image 134 - 139: 67(ResType) ImageSparseFetch 138 136 Lod ZeroExtend 112 - 140: 21(ivec4) CompositeExtract 139 1 - Store 137(tempArg) 140 - 141: 6(int) CompositeExtract 139 0 - Store 133(tempReturn) 141 - 142: 21(ivec4) Load 137(tempArg) - 143: 11(fvec4) ConvertUToF 142 - Store 13(texel) 143 - 144: 6(int) Load 133(tempReturn) - 145: 6(int) Load 8(resident) - 146: 6(int) BitwiseOr 145 144 - Store 8(resident) 146 - 150: 147 Load 149(i2D) - 153: 110(ivec2) Load 152(ic2) - 154: 35(ResType) ImageSparseRead 150 153 - 155: 11(fvec4) CompositeExtract 154 1 - Store 13(texel) 155 - 156: 6(int) CompositeExtract 154 0 - 157: 6(int) Load 8(resident) - 158: 6(int) BitwiseOr 157 156 - Store 8(resident) 158 - 163: 160 Load 162(ii2DMS) - 164: 110(ivec2) Load 152(ic2) - 167: 50(ResType) ImageSparseRead 163 164 Sample SignExtend 165 - 168: 16(ivec4) CompositeExtract 167 1 - Store 166(tempArg) 168 - 169: 6(int) CompositeExtract 167 0 - Store 159(tempReturn) 169 - 170: 16(ivec4) Load 166(tempArg) - 171: 11(fvec4) ConvertSToF 170 - Store 13(texel) 171 - 172: 6(int) Load 159(tempReturn) - 173: 6(int) Load 8(resident) - 174: 6(int) BitwiseOr 173 172 - Store 8(resident) 174 - 178: 175 Load 177(ui3D) - 182: 179(ivec3) Load 181(ic3) - 183: 67(ResType) ImageSparseRead 178 182 ZeroExtend - 184: 21(ivec4) CompositeExtract 183 1 - Store 23(utexel) 184 - 185: 6(int) CompositeExtract 183 0 - 186: 6(int) Load 8(resident) - 187: 6(int) BitwiseOr 186 185 - Store 8(resident) 187 - 190: 6(int) Load 8(resident) - 192: 191(bool) ImageSparseTexelsResident 190 - SelectionMerge 195 None - BranchConditional 192 194 197 - 194: Label - 196: 11(fvec4) Load 13(texel) - Store 193 196 - Branch 195 - 197: Label - 198: 16(ivec4) Load 18(itexel) - 199: 11(fvec4) ConvertSToF 198 - 200: 21(ivec4) Load 23(utexel) - 201: 11(fvec4) ConvertUToF 200 - 202: 11(fvec4) FAdd 199 201 - Store 193 202 - Branch 195 - 195: Label - 203: 11(fvec4) Load 193 - Store 189(outColor) 203 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.1.4.texture.frag.out b/deps/glslang/Test/baseResults/spv.1.4.texture.frag.out deleted file mode 100644 index ac9f72fb..00000000 --- a/deps/glslang/Test/baseResults/spv.1.4.texture.frag.out +++ /dev/null @@ -1,120 +0,0 @@ -spv.1.4.texture.frag -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 79 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 15 19 28 40 51 54 76 78 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - Name 4 "main" - Name 9 "color" - Name 15 "texSampler2D" - Name 19 "coords2D" - Name 28 "itexSampler2D" - Name 40 "utexSampler2D" - Name 51 "iCoords2D" - Name 54 "iLod" - Name 76 "t" - Name 78 "color" - Decorate 15(texSampler2D) DescriptorSet 0 - Decorate 15(texSampler2D) Binding 0 - Decorate 19(coords2D) Location 1 - Decorate 28(itexSampler2D) DescriptorSet 0 - Decorate 28(itexSampler2D) Binding 1 - Decorate 40(utexSampler2D) DescriptorSet 0 - Decorate 40(utexSampler2D) Binding 2 - Decorate 51(iCoords2D) Flat - Decorate 51(iCoords2D) Location 2 - Decorate 54(iLod) Flat - Decorate 54(iLod) Location 3 - Decorate 76(t) Location 0 - Decorate 78(color) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: 6(float) Constant 0 - 11: 7(fvec4) ConstantComposite 10 10 10 10 - 12: TypeImage 6(float) 2D sampled format:Unknown - 13: TypeSampledImage 12 - 14: TypePointer UniformConstant 13 -15(texSampler2D): 14(ptr) Variable UniformConstant - 17: TypeVector 6(float) 2 - 18: TypePointer Input 17(fvec2) - 19(coords2D): 18(ptr) Variable Input - 24: TypeInt 32 1 - 25: TypeImage 24(int) 2D sampled format:Unknown - 26: TypeSampledImage 25 - 27: TypePointer UniformConstant 26 -28(itexSampler2D): 27(ptr) Variable UniformConstant - 31: TypeVector 24(int) 4 - 36: TypeInt 32 0 - 37: TypeImage 36(int) 2D sampled format:Unknown - 38: TypeSampledImage 37 - 39: TypePointer UniformConstant 38 -40(utexSampler2D): 39(ptr) Variable UniformConstant - 43: TypeVector 36(int) 4 - 49: TypeVector 24(int) 2 - 50: TypePointer Input 49(ivec2) - 51(iCoords2D): 50(ptr) Variable Input - 53: TypePointer Input 24(int) - 54(iLod): 53(ptr) Variable Input - 76(t): 18(ptr) Variable Input - 77: TypePointer Output 7(fvec4) - 78(color): 77(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 9(color): 8(ptr) Variable Function - Store 9(color) 11 - 16: 13 Load 15(texSampler2D) - 20: 17(fvec2) Load 19(coords2D) - 21: 7(fvec4) ImageSampleImplicitLod 16 20 - 22: 7(fvec4) Load 9(color) - 23: 7(fvec4) FAdd 22 21 - Store 9(color) 23 - 29: 26 Load 28(itexSampler2D) - 30: 17(fvec2) Load 19(coords2D) - 32: 31(ivec4) ImageSampleImplicitLod 29 30 SignExtend - 33: 7(fvec4) ConvertSToF 32 - 34: 7(fvec4) Load 9(color) - 35: 7(fvec4) FAdd 34 33 - Store 9(color) 35 - 41: 38 Load 40(utexSampler2D) - 42: 17(fvec2) Load 19(coords2D) - 44: 43(ivec4) ImageSampleImplicitLod 41 42 ZeroExtend - 45: 7(fvec4) ConvertUToF 44 - 46: 7(fvec4) Load 9(color) - 47: 7(fvec4) FAdd 46 45 - Store 9(color) 47 - 48: 13 Load 15(texSampler2D) - 52: 49(ivec2) Load 51(iCoords2D) - 55: 24(int) Load 54(iLod) - 56: 12 Image 48 - 57: 7(fvec4) ImageFetch 56 52 Lod 55 - 58: 7(fvec4) Load 9(color) - 59: 7(fvec4) FAdd 58 57 - Store 9(color) 59 - 60: 26 Load 28(itexSampler2D) - 61: 49(ivec2) Load 51(iCoords2D) - 62: 24(int) Load 54(iLod) - 63: 25 Image 60 - 64: 31(ivec4) ImageFetch 63 61 Lod SignExtend 62 - 65: 7(fvec4) ConvertSToF 64 - 66: 7(fvec4) Load 9(color) - 67: 7(fvec4) FAdd 66 65 - Store 9(color) 67 - 68: 38 Load 40(utexSampler2D) - 69: 49(ivec2) Load 51(iCoords2D) - 70: 24(int) Load 54(iLod) - 71: 37 Image 68 - 72: 43(ivec4) ImageFetch 71 69 Lod ZeroExtend 70 - 73: 7(fvec4) ConvertUToF 72 - 74: 7(fvec4) Load 9(color) - 75: 7(fvec4) FAdd 74 73 - Store 9(color) 75 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.1.6.conditionalDiscard.frag.out b/deps/glslang/Test/baseResults/spv.1.6.conditionalDiscard.frag.out deleted file mode 100644 index f538fd93..00000000 --- a/deps/glslang/Test/baseResults/spv.1.6.conditionalDiscard.frag.out +++ /dev/null @@ -1,60 +0,0 @@ -spv.1.6.conditionalDiscard.frag -// Module Version 10600 -// Generated by (magic number): 8000a -// Id's are bound by 36 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 13 17 34 - ExecutionMode 4 OriginUpperLeft - Source GLSL 400 - Name 4 "main" - Name 9 "v" - Name 13 "tex" - Name 17 "coord" - Name 34 "gl_FragColor" - Decorate 13(tex) DescriptorSet 0 - Decorate 13(tex) Binding 0 - Decorate 17(coord) Location 0 - Decorate 34(gl_FragColor) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: TypeImage 6(float) 2D sampled format:Unknown - 11: TypeSampledImage 10 - 12: TypePointer UniformConstant 11 - 13(tex): 12(ptr) Variable UniformConstant - 15: TypeVector 6(float) 2 - 16: TypePointer Input 15(fvec2) - 17(coord): 16(ptr) Variable Input - 21: 6(float) Constant 1036831949 - 22: 6(float) Constant 1045220557 - 23: 6(float) Constant 1050253722 - 24: 6(float) Constant 1053609165 - 25: 7(fvec4) ConstantComposite 21 22 23 24 - 26: TypeBool - 27: TypeVector 26(bool) 4 - 33: TypePointer Output 7(fvec4) -34(gl_FragColor): 33(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 9(v): 8(ptr) Variable Function - 14: 11 Load 13(tex) - 18: 15(fvec2) Load 17(coord) - 19: 7(fvec4) ImageSampleImplicitLod 14 18 - Store 9(v) 19 - 20: 7(fvec4) Load 9(v) - 28: 27(bvec4) FOrdEqual 20 25 - 29: 26(bool) All 28 - SelectionMerge 31 None - BranchConditional 29 30 31 - 30: Label - TerminateInvocation - 31: Label - 35: 7(fvec4) Load 9(v) - Store 34(gl_FragColor) 35 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.1.6.helperInvocation.frag.out b/deps/glslang/Test/baseResults/spv.1.6.helperInvocation.frag.out deleted file mode 100644 index 7df2a2ac..00000000 --- a/deps/glslang/Test/baseResults/spv.1.6.helperInvocation.frag.out +++ /dev/null @@ -1,41 +0,0 @@ -spv.1.6.helperInvocation.frag -// Module Version 10600 -// Generated by (magic number): 8000a -// Id's are bound by 20 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 8 15 - ExecutionMode 4 OriginUpperLeft - Source ESSL 310 - Name 4 "main" - Name 8 "gl_HelperInvocation" - Name 15 "outp" - Decorate 8(gl_HelperInvocation) BuiltIn HelperInvocation - Decorate 8(gl_HelperInvocation) Volatile - Decorate 15(outp) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeBool - 7: TypePointer Input 6(bool) -8(gl_HelperInvocation): 7(ptr) Variable Input - 12: TypeFloat 32 - 13: TypeVector 12(float) 4 - 14: TypePointer Output 13(fvec4) - 15(outp): 14(ptr) Variable Output - 17: 12(float) Constant 1065353216 - 4(main): 2 Function None 3 - 5: Label - 9: 6(bool) Load 8(gl_HelperInvocation) - SelectionMerge 11 None - BranchConditional 9 10 11 - 10: Label - 16: 13(fvec4) Load 15(outp) - 18: 13(fvec4) CompositeConstruct 17 17 17 17 - 19: 13(fvec4) FAdd 16 18 - Store 15(outp) 19 - Branch 11 - 11: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.1.6.specConstant.comp.out b/deps/glslang/Test/baseResults/spv.1.6.specConstant.comp.out deleted file mode 100644 index 7485f04a..00000000 --- a/deps/glslang/Test/baseResults/spv.1.6.specConstant.comp.out +++ /dev/null @@ -1,69 +0,0 @@ -spv.1.6.specConstant.comp -// Module Version 10600 -// Generated by (magic number): 8000a -// Id's are bound by 39 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 18 - ExecutionModeId 4 LocalSizeId 7 8 9 - Source GLSL 450 - Name 4 "main" - Name 14 "foo(vu3;" - Name 13 "wgs" - Name 16 "bn" - MemberName 16(bn) 0 "a" - Name 18 "bi" - Name 37 "param" - Decorate 7 SpecId 18 - Decorate 9 SpecId 19 - MemberDecorate 16(bn) 0 Offset 0 - Decorate 16(bn) Block - Decorate 18(bi) DescriptorSet 0 - Decorate 18(bi) Binding 0 - Decorate 25 SpecId 18 - Decorate 26 SpecId 19 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: 6(int) SpecConstant 32 - 8: 6(int) Constant 32 - 9: 6(int) SpecConstant 1 - 10: TypeVector 6(int) 3 - 11: TypePointer Function 10(ivec3) - 12: TypeFunction 2 11(ptr) - 16(bn): TypeStruct 6(int) - 17: TypePointer StorageBuffer 16(bn) - 18(bi): 17(ptr) Variable StorageBuffer - 19: TypeInt 32 1 - 20: 19(int) Constant 0 - 21: 6(int) Constant 0 - 22: TypePointer Function 6(int) - 25: 6(int) SpecConstant 32 - 26: 6(int) SpecConstant 1 - 27: 10(ivec3) SpecConstantComposite 25 8 26 - 28: 6(int) Constant 1 - 31: 6(int) Constant 2 - 35: TypePointer StorageBuffer 6(int) - 4(main): 2 Function None 3 - 5: Label - 37(param): 11(ptr) Variable Function - Store 37(param) 27 - 38: 2 FunctionCall 14(foo(vu3;) 37(param) - Return - FunctionEnd - 14(foo(vu3;): 2 Function None 12 - 13(wgs): 11(ptr) FunctionParameter - 15: Label - 23: 22(ptr) AccessChain 13(wgs) 21 - 24: 6(int) Load 23 - 29: 6(int) CompositeExtract 27 1 - 30: 6(int) IMul 24 29 - 32: 22(ptr) AccessChain 13(wgs) 31 - 33: 6(int) Load 32 - 34: 6(int) IMul 30 33 - 36: 35(ptr) AccessChain 18(bi) 20 - Store 36 34 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.100ops.frag.out b/deps/glslang/Test/baseResults/spv.100ops.frag.out deleted file mode 100644 index 42c99953..00000000 --- a/deps/glslang/Test/baseResults/spv.100ops.frag.out +++ /dev/null @@ -1,101 +0,0 @@ -spv.100ops.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 49 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 21 26 37 - ExecutionMode 4 OriginUpperLeft - Source ESSL 310 - Name 4 "main" - Name 8 "foo(" - Name 11 "face1" - Name 13 "face2" - Name 17 "z" - Name 21 "low" - Name 26 "high" - Name 37 "Color" - Decorate 8(foo() RelaxedPrecision - Decorate 11(face1) RelaxedPrecision - Decorate 13(face2) RelaxedPrecision - Decorate 17(z) RelaxedPrecision - Decorate 21(low) RelaxedPrecision - Decorate 21(low) Location 0 - Decorate 22 RelaxedPrecision - Decorate 23 RelaxedPrecision - Decorate 25 RelaxedPrecision - Decorate 26(high) RelaxedPrecision - Decorate 26(high) Location 1 - Decorate 27 RelaxedPrecision - Decorate 32 RelaxedPrecision - Decorate 34 RelaxedPrecision - Decorate 37(Color) RelaxedPrecision - Decorate 37(Color) Location 0 - Decorate 38 RelaxedPrecision - Decorate 39 RelaxedPrecision - Decorate 40 RelaxedPrecision - Decorate 41 RelaxedPrecision - Decorate 42 RelaxedPrecision - Decorate 43 RelaxedPrecision - Decorate 44 RelaxedPrecision - Decorate 45 RelaxedPrecision - Decorate 46 RelaxedPrecision - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeFunction 6(float) - 10: TypePointer Private 6(float) - 11(face1): 10(ptr) Variable Private - 12: 6(float) Constant 1093664768 - 13(face2): 10(ptr) Variable Private - 14: 6(float) Constant 3221225472 - 15: TypeInt 32 1 - 16: TypePointer Function 15(int) - 18: 15(int) Constant 3 - 19: 6(float) Constant 1073741824 - 20: TypePointer Input 6(float) - 21(low): 20(ptr) Variable Input - 24: 6(float) Constant 1065353216 - 26(high): 20(ptr) Variable Input - 28: TypeBool - 33: 15(int) Constant 1 - 35: TypeVector 6(float) 4 - 36: TypePointer Output 35(fvec4) - 37(Color): 36(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 17(z): 16(ptr) Variable Function - Store 11(face1) 12 - Store 13(face2) 14 - Store 17(z) 18 - 22: 6(float) Load 21(low) - 23: 6(float) FMul 19 22 - 25: 6(float) FAdd 23 24 - 27: 6(float) Load 26(high) - 29: 28(bool) FOrdLessThan 25 27 - SelectionMerge 31 None - BranchConditional 29 30 31 - 30: Label - 32: 15(int) Load 17(z) - 34: 15(int) IAdd 32 33 - Store 17(z) 34 - Branch 31 - 31: Label - 38: 6(float) Load 11(face1) - 39: 15(int) Load 17(z) - 40: 6(float) ConvertSToF 39 - 41: 35(fvec4) CompositeConstruct 40 40 40 40 - 42: 35(fvec4) VectorTimesScalar 41 38 - 43: 6(float) FunctionCall 8(foo() - 44: 35(fvec4) CompositeConstruct 43 43 43 43 - 45: 35(fvec4) FAdd 42 44 - Store 37(Color) 45 - Return - FunctionEnd - 8(foo(): 6(float) Function None 7 - 9: Label - 46: 6(float) Load 13(face2) - ReturnValue 46 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.130.frag.out b/deps/glslang/Test/baseResults/spv.130.frag.out deleted file mode 100644 index 29c7d853..00000000 --- a/deps/glslang/Test/baseResults/spv.130.frag.out +++ /dev/null @@ -1,331 +0,0 @@ -spv.130.frag -WARNING: 0:31: '#extension' : extension is only partially supported: GL_ARB_gpu_shader5 - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 205 - - Capability Shader - Capability ClipDistance - Capability SampledRect - Capability Sampled1D - Capability SampledCubeArray - Capability ImageQuery - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 17 68 79 99 173 184 185 186 - ExecutionMode 4 OriginUpperLeft - Source GLSL 140 - SourceExtension "GL_ARB_gpu_shader5" - SourceExtension "GL_ARB_shader_texture_lod" - SourceExtension "GL_ARB_shading_language_420pack" - SourceExtension "GL_ARB_texture_cube_map_array" - SourceExtension "GL_ARB_texture_gather" - SourceExtension "GL_ARB_texture_rectangle" - Name 4 "main" - Name 6 "bar3(" - Name 8 "bar4(" - Name 10 "bar5(" - Name 12 "bar6(" - Name 17 "o" - Name 21 "samp2D" - Name 37 "samp2DA" - Name 47 "samp2DR" - Name 55 "samp2DS" - Name 68 "io" - Name 72 "Sca" - Name 79 "i" - Name 87 "Isca" - Name 99 "uo" - Name 103 "Usca" - Name 114 "a" - Name 118 "Scas" - Name 124 "f" - Name 133 "c" - Name 154 "a1" - Name 157 "m43" - Name 160 "b" - Name 167 "sampC" - Name 173 "gl_ClipDistance" - Name 183 "b" - Name 184 "fflat" - Name 185 "fsmooth" - Name 186 "fnop" - Name 193 "bounds" - Name 194 "s2D" - Name 195 "s2DR" - Name 199 "s2DRS" - Name 203 "s1D" - Name 204 "s2DS" - Decorate 17(o) Location 0 - Decorate 21(samp2D) DescriptorSet 0 - Decorate 21(samp2D) Binding 2 - Decorate 37(samp2DA) DescriptorSet 0 - Decorate 37(samp2DA) Binding 5 - Decorate 47(samp2DR) DescriptorSet 0 - Decorate 47(samp2DR) Binding 4 - Decorate 55(samp2DS) DescriptorSet 0 - Decorate 55(samp2DS) Binding 3 - Decorate 68(io) Location 1 - Decorate 72(Sca) DescriptorSet 0 - Decorate 72(Sca) Binding 6 - Decorate 79(i) Location 0 - Decorate 87(Isca) DescriptorSet 0 - Decorate 87(Isca) Binding 7 - Decorate 99(uo) Location 2 - Decorate 103(Usca) DescriptorSet 0 - Decorate 103(Usca) Binding 8 - Decorate 118(Scas) DescriptorSet 0 - Decorate 118(Scas) Binding 9 - Decorate 167(sampC) DescriptorSet 0 - Decorate 167(sampC) Binding 1 - Decorate 173(gl_ClipDistance) BuiltIn ClipDistance - Decorate 184(fflat) Flat - Decorate 184(fflat) Location 1 - Decorate 185(fsmooth) Location 2 - Decorate 186(fnop) NoPerspective - Decorate 186(fnop) Location 3 - Decorate 193(bounds) DescriptorSet 0 - Decorate 193(bounds) Binding 0 - Decorate 194(s2D) DescriptorSet 0 - Decorate 194(s2D) Binding 0 - Decorate 195(s2DR) DescriptorSet 0 - Decorate 195(s2DR) Binding 0 - Decorate 199(s2DRS) DescriptorSet 0 - Decorate 199(s2DRS) Binding 0 - Decorate 203(s1D) DescriptorSet 0 - Decorate 203(s1D) Binding 0 - Decorate 204(s2DS) DescriptorSet 0 - Decorate 204(s2DS) Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 14: TypeFloat 32 - 15: TypeVector 14(float) 4 - 16: TypePointer Output 15(fvec4) - 17(o): 16(ptr) Variable Output - 18: TypeImage 14(float) 2D sampled format:Unknown - 19: TypeSampledImage 18 - 20: TypePointer UniformConstant 19 - 21(samp2D): 20(ptr) Variable UniformConstant - 23: TypeVector 14(float) 2 - 24: 14(float) Constant 1050253722 - 25: 23(fvec2) ConstantComposite 24 24 - 26: TypeInt 32 1 - 27: TypeVector 26(int) 2 - 28: 26(int) Constant 1 - 29: 27(ivec2) ConstantComposite 28 28 - 30: 26(int) Constant 0 - 34: TypeImage 14(float) 2D array sampled format:Unknown - 35: TypeSampledImage 34 - 36: TypePointer UniformConstant 35 - 37(samp2DA): 36(ptr) Variable UniformConstant - 39: TypeVector 14(float) 3 - 40: 39(fvec3) ConstantComposite 24 24 24 - 44: TypeImage 14(float) Rect sampled format:Unknown - 45: TypeSampledImage 44 - 46: TypePointer UniformConstant 45 - 47(samp2DR): 46(ptr) Variable UniformConstant - 52: TypeImage 14(float) 2D depth sampled format:Unknown - 53: TypeSampledImage 52 - 54: TypePointer UniformConstant 53 - 55(samp2DS): 54(ptr) Variable UniformConstant - 57: 14(float) Constant 1067869798 - 62: 26(int) Constant 2 - 66: TypeVector 26(int) 3 - 67: TypePointer Output 66(ivec3) - 68(io): 67(ptr) Variable Output - 69: TypeImage 14(float) Cube array sampled format:Unknown - 70: TypeSampledImage 69 - 71: TypePointer UniformConstant 70 - 72(Sca): 71(ptr) Variable UniformConstant - 74: 26(int) Constant 3 - 78: TypePointer Input 15(fvec4) - 79(i): 78(ptr) Variable Input - 84: TypeImage 26(int) Cube array sampled format:Unknown - 85: TypeSampledImage 84 - 86: TypePointer UniformConstant 85 - 87(Isca): 86(ptr) Variable UniformConstant - 90: 14(float) Constant 1060320051 - 91: TypeVector 26(int) 4 - 96: TypeInt 32 0 - 97: TypeVector 96(int) 4 - 98: TypePointer Output 97(ivec4) - 99(uo): 98(ptr) Variable Output - 100: TypeImage 96(int) Cube array sampled format:Unknown - 101: TypeSampledImage 100 - 102: TypePointer UniformConstant 101 - 103(Usca): 102(ptr) Variable UniformConstant - 109: 14(float) Constant 1071225242 - 113: TypePointer Private 39(fvec3) - 114(a): 113(ptr) Variable Private - 115: TypeImage 14(float) Cube depth array sampled format:Unknown - 116: TypeSampledImage 115 - 117: TypePointer UniformConstant 116 - 118(Scas): 117(ptr) Variable UniformConstant - 123: TypePointer Function 14(float) - 127: 96(int) Constant 1 - 128: TypePointer Input 14(float) - 132: TypePointer Function 91(ivec4) - 136: 14(float) Constant 1036831949 - 137: 39(fvec3) ConstantComposite 136 136 136 - 138: 14(float) Constant 1045220557 - 139: 39(fvec3) ConstantComposite 138 138 138 - 155: TypeMatrix 39(fvec3) 4 - 156: TypePointer Function 155 - 161: 14(float) Constant 1073741824 - 164: TypeImage 14(float) Cube sampled format:Unknown - 165: TypeSampledImage 164 - 166: TypePointer UniformConstant 165 - 167(sampC): 166(ptr) Variable UniformConstant - 170: 96(int) Constant 4 - 171: TypeArray 14(float) 170 - 172: TypePointer Input 171 -173(gl_ClipDistance): 172(ptr) Variable Input - 176: TypePointer Output 14(float) - 182: TypePointer Private 14(float) - 183(b): 182(ptr) Variable Private - 184(fflat): 128(ptr) Variable Input - 185(fsmooth): 128(ptr) Variable Input - 186(fnop): 128(ptr) Variable Input - 187: 96(int) Constant 3 - 188: TypeArray 26(int) 187 - 189: 26(int) Constant 10 - 190: 26(int) Constant 23 - 191: 26(int) Constant 32 - 192: 188 ConstantComposite 189 190 191 - 193(bounds): 20(ptr) Variable UniformConstant - 194(s2D): 20(ptr) Variable UniformConstant - 195(s2DR): 46(ptr) Variable UniformConstant - 196: TypeImage 14(float) Rect depth sampled format:Unknown - 197: TypeSampledImage 196 - 198: TypePointer UniformConstant 197 - 199(s2DRS): 198(ptr) Variable UniformConstant - 200: TypeImage 14(float) 1D sampled format:Unknown - 201: TypeSampledImage 200 - 202: TypePointer UniformConstant 201 - 203(s1D): 202(ptr) Variable UniformConstant - 204(s2DS): 54(ptr) Variable UniformConstant - 4(main): 2 Function None 3 - 5: Label - 168: 165 Load 167(sampC) - 169: 15(fvec4) ImageGather 168 139 30 - Store 17(o) 169 - 174: 128(ptr) AccessChain 173(gl_ClipDistance) 74 - 175: 14(float) Load 174 - 177: 176(ptr) AccessChain 17(o) 127 - Store 177 175 - 178: 2 FunctionCall 6(bar3() - 179: 2 FunctionCall 8(bar4() - 180: 2 FunctionCall 10(bar5() - 181: 2 FunctionCall 12(bar6() - Return - FunctionEnd - 6(bar3(): 2 Function None 3 - 7: Label - 22: 19 Load 21(samp2D) - 31: 15(fvec4) ImageGather 22 25 30 ConstOffset 29 - 32: 15(fvec4) Load 17(o) - 33: 15(fvec4) FAdd 32 31 - Store 17(o) 33 - 38: 35 Load 37(samp2DA) - 41: 15(fvec4) ImageGather 38 40 30 ConstOffset 29 - 42: 15(fvec4) Load 17(o) - 43: 15(fvec4) FAdd 42 41 - Store 17(o) 43 - Return - FunctionEnd - 8(bar4(): 2 Function None 3 - 9: Label - 48: 45 Load 47(samp2DR) - 49: 15(fvec4) ImageGather 48 25 30 ConstOffset 29 - 50: 15(fvec4) Load 17(o) - 51: 15(fvec4) FAdd 50 49 - Store 17(o) 51 - 56: 53 Load 55(samp2DS) - 58: 15(fvec4) ImageDrefGather 56 25 57 ConstOffset 29 - 59: 15(fvec4) Load 17(o) - 60: 15(fvec4) FAdd 59 58 - Store 17(o) 60 - 61: 19 Load 21(samp2D) - 63: 15(fvec4) ImageGather 61 25 62 ConstOffset 29 - 64: 15(fvec4) Load 17(o) - 65: 15(fvec4) FAdd 64 63 - Store 17(o) 65 - Return - FunctionEnd - 10(bar5(): 2 Function None 3 - 11: Label - 124(f): 123(ptr) Variable Function - 133(c): 132(ptr) Variable Function - 73: 70 Load 72(Sca) - 75: 69 Image 73 - 76: 66(ivec3) ImageQuerySizeLod 75 74 - Store 68(io) 76 - 77: 70 Load 72(Sca) - 80: 15(fvec4) Load 79(i) - 81: 15(fvec4) ImageSampleImplicitLod 77 80 - 82: 15(fvec4) Load 17(o) - 83: 15(fvec4) FAdd 82 81 - Store 17(o) 83 - 88: 85 Load 87(Isca) - 89: 15(fvec4) Load 79(i) - 92: 91(ivec4) ImageSampleImplicitLod 88 89 Bias 90 - 93: 66(ivec3) VectorShuffle 92 92 0 1 2 - 94: 66(ivec3) Load 68(io) - 95: 66(ivec3) IAdd 94 93 - Store 68(io) 95 - 104: 101 Load 103(Usca) - 105: 15(fvec4) Load 79(i) - 106: 97(ivec4) ImageSampleImplicitLod 104 105 - Store 99(uo) 106 - 107: 70 Load 72(Sca) - 108: 15(fvec4) Load 79(i) - 110: 15(fvec4) ImageSampleExplicitLod 107 108 Lod 109 - 111: 15(fvec4) Load 17(o) - 112: 15(fvec4) FAdd 111 110 - Store 17(o) 112 - 119: 116 Load 118(Scas) - 120: 115 Image 119 - 121: 66(ivec3) ImageQuerySizeLod 120 74 - 122: 39(fvec3) ConvertSToF 121 - Store 114(a) 122 - 125: 116 Load 118(Scas) - 126: 15(fvec4) Load 79(i) - 129: 128(ptr) AccessChain 79(i) 127 - 130: 14(float) Load 129 - 131: 14(float) ImageSampleDrefImplicitLod 125 126 130 - Store 124(f) 131 - 134: 85 Load 87(Isca) - 135: 15(fvec4) Load 79(i) - 140: 91(ivec4) ImageSampleExplicitLod 134 135 Grad 137 139 - Store 133(c) 140 - 141: 39(fvec3) Load 114(a) - 142: 14(float) Load 124(f) - 143: 91(ivec4) Load 133(c) - 144: 15(fvec4) ConvertSToF 143 - 145: 15(fvec4) CompositeConstruct 142 142 142 142 - 146: 15(fvec4) FAdd 145 144 - 147: 14(float) CompositeExtract 141 0 - 148: 14(float) CompositeExtract 141 1 - 149: 14(float) CompositeExtract 141 2 - 150: 14(float) CompositeExtract 146 0 - 151: 15(fvec4) CompositeConstruct 147 148 149 150 - 152: 15(fvec4) Load 17(o) - 153: 15(fvec4) FAdd 152 151 - Store 17(o) 153 - Return - FunctionEnd - 12(bar6(): 2 Function None 3 - 13: Label - 154(a1): 123(ptr) Variable Function - 157(m43): 156(ptr) Variable Function - 160(b): 123(ptr) Variable Function - 158: 123(ptr) AccessChain 157(m43) 74 127 - 159: 14(float) Load 158 - Store 154(a1) 159 - 162: 14(float) Load 154(a1) - 163: 14(float) FMul 161 162 - Store 160(b) 163 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.140.frag.out b/deps/glslang/Test/baseResults/spv.140.frag.out deleted file mode 100644 index a5178828..00000000 --- a/deps/glslang/Test/baseResults/spv.140.frag.out +++ /dev/null @@ -1,175 +0,0 @@ -spv.140.frag -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// 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 - SourceExtension "GL_ARB_enhanced_layouts" - 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 23(o) Location 0 - Decorate 28(gl_ClipDistance) BuiltIn ClipDistance - Decorate 38(k) Location 0 - Decorate 50(sampR) DescriptorSet 0 - Decorate 50(sampR) Binding 0 - Decorate 58(sampB) DescriptorSet 0 - Decorate 58(sampB) Binding 1 - Decorate 82(samp2Da) DescriptorSet 0 - Decorate 82(samp2Da) Binding 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 89 Binding 0 - Decorate 91 ArrayStride 16 - MemberDecorate 92(bi) 0 Offset 0 - Decorate 92(bi) Block - Decorate 95(bname) DescriptorSet 0 - Decorate 95(bname) Binding 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/Test/baseResults/spv.150.geom.out b/deps/glslang/Test/baseResults/spv.150.geom.out deleted file mode 100644 index 0ad3337d..00000000 --- a/deps/glslang/Test/baseResults/spv.150.geom.out +++ /dev/null @@ -1,145 +0,0 @@ -spv.150.geom -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 71 - - Capability Geometry - Capability GeometryPointSize - Capability GeometryStreams - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Geometry 4 "main" 10 18 29 33 47 49 51 70 - ExecutionMode 4 InputTrianglesAdjacency - ExecutionMode 4 Invocations 1 - ExecutionMode 4 OutputTriangleStrip - ExecutionMode 4 OutputVertices 30 - Source GLSL 150 - Name 4 "main" - Name 8 "fromVertex" - MemberName 8(fromVertex) 0 "color" - Name 10 "" - Name 13 "fromVertex" - MemberName 13(fromVertex) 0 "color" - Name 18 "fromV" - Name 27 "gl_PerVertex" - MemberName 27(gl_PerVertex) 0 "gl_Position" - MemberName 27(gl_PerVertex) 1 "gl_PointSize" - MemberName 27(gl_PerVertex) 2 "gl_ClipDistance" - Name 29 "" - Name 30 "gl_PerVertex" - MemberName 30(gl_PerVertex) 0 "gl_Position" - MemberName 30(gl_PerVertex) 1 "gl_PointSize" - MemberName 30(gl_PerVertex) 2 "gl_ClipDistance" - Name 33 "gl_in" - Name 47 "gl_PrimitiveID" - Name 49 "gl_PrimitiveIDIn" - Name 51 "gl_Layer" - Name 68 "toFragment" - MemberName 68(toFragment) 0 "color" - Name 70 "toF" - Decorate 8(fromVertex) Block - Decorate 10 Location 1 - Decorate 10 Stream 3 - Decorate 13(fromVertex) Block - Decorate 18(fromV) Location 0 - MemberDecorate 27(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 27(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 27(gl_PerVertex) 2 BuiltIn ClipDistance - Decorate 27(gl_PerVertex) Block - Decorate 29 Stream 0 - MemberDecorate 30(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 30(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 30(gl_PerVertex) 2 BuiltIn ClipDistance - Decorate 30(gl_PerVertex) Block - Decorate 47(gl_PrimitiveID) Stream 0 - Decorate 47(gl_PrimitiveID) BuiltIn PrimitiveId - Decorate 49(gl_PrimitiveIDIn) BuiltIn PrimitiveId - Decorate 51(gl_Layer) Stream 0 - Decorate 51(gl_Layer) BuiltIn Layer - Decorate 68(toFragment) Block - Decorate 70(toF) Location 0 - Decorate 70(toF) Stream 3 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 3 - 8(fromVertex): TypeStruct 7(fvec3) - 9: TypePointer Output 8(fromVertex) - 10: 9(ptr) Variable Output - 11: TypeInt 32 1 - 12: 11(int) Constant 0 - 13(fromVertex): TypeStruct 7(fvec3) - 14: TypeInt 32 0 - 15: 14(int) Constant 6 - 16: TypeArray 13(fromVertex) 15 - 17: TypePointer Input 16 - 18(fromV): 17(ptr) Variable Input - 19: TypePointer Input 7(fvec3) - 22: TypePointer Output 7(fvec3) - 24: TypeVector 6(float) 4 - 25: 14(int) Constant 1 - 26: TypeArray 6(float) 25 -27(gl_PerVertex): TypeStruct 24(fvec4) 6(float) 26 - 28: TypePointer Output 27(gl_PerVertex) - 29: 28(ptr) Variable Output -30(gl_PerVertex): TypeStruct 24(fvec4) 6(float) 26 - 31: TypeArray 30(gl_PerVertex) 15 - 32: TypePointer Input 31 - 33(gl_in): 32(ptr) Variable Input - 34: TypePointer Input 24(fvec4) - 37: TypePointer Output 24(fvec4) - 39: 11(int) Constant 1 - 40: 11(int) Constant 3 - 41: TypePointer Input 6(float) - 44: TypePointer Output 6(float) - 46: TypePointer Output 11(int) -47(gl_PrimitiveID): 46(ptr) Variable Output - 48: TypePointer Input 11(int) -49(gl_PrimitiveIDIn): 48(ptr) Variable Input - 51(gl_Layer): 46(ptr) Variable Output - 52: 11(int) Constant 2 - 53: 6(float) Constant 1073741824 - 68(toFragment): TypeStruct 7(fvec3) - 69: TypePointer Output 68(toFragment) - 70(toF): 69(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 20: 19(ptr) AccessChain 18(fromV) 12 12 - 21: 7(fvec3) Load 20 - 23: 22(ptr) AccessChain 10 12 - Store 23 21 - 35: 34(ptr) AccessChain 33(gl_in) 12 12 - 36: 24(fvec4) Load 35 - 38: 37(ptr) AccessChain 29 12 - Store 38 36 - 42: 41(ptr) AccessChain 33(gl_in) 40 39 - 43: 6(float) Load 42 - 45: 44(ptr) AccessChain 29 39 - Store 45 43 - 50: 11(int) Load 49(gl_PrimitiveIDIn) - Store 47(gl_PrimitiveID) 50 - Store 51(gl_Layer) 52 - EmitVertex - 54: 19(ptr) AccessChain 18(fromV) 12 12 - 55: 7(fvec3) Load 54 - 56: 7(fvec3) VectorTimesScalar 55 53 - 57: 22(ptr) AccessChain 10 12 - Store 57 56 - 58: 34(ptr) AccessChain 33(gl_in) 12 12 - 59: 24(fvec4) Load 58 - 60: 24(fvec4) VectorTimesScalar 59 53 - 61: 37(ptr) AccessChain 29 12 - Store 61 60 - 62: 41(ptr) AccessChain 33(gl_in) 40 39 - 63: 6(float) Load 62 - 64: 6(float) FMul 53 63 - 65: 44(ptr) AccessChain 29 39 - Store 65 64 - 66: 11(int) Load 49(gl_PrimitiveIDIn) - 67: 11(int) IAdd 66 39 - Store 47(gl_PrimitiveID) 67 - Store 51(gl_Layer) 40 - EmitVertex - EndPrimitive - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.150.vert.out b/deps/glslang/Test/baseResults/spv.150.vert.out deleted file mode 100644 index 2b09f4be..00000000 --- a/deps/glslang/Test/baseResults/spv.150.vert.out +++ /dev/null @@ -1,108 +0,0 @@ -spv.150.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 63 - - Capability Shader - Capability ClipDistance - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 13 17 23 38 62 - Source GLSL 150 - Name 4 "main" - Name 11 "gl_PerVertex" - MemberName 11(gl_PerVertex) 0 "gl_Position" - MemberName 11(gl_PerVertex) 1 "gl_PointSize" - MemberName 11(gl_PerVertex) 2 "gl_ClipDistance" - Name 13 "" - Name 17 "iv4" - Name 23 "ps" - Name 34 "s1" - MemberName 34(s1) 0 "a" - MemberName 34(s1) 1 "a2" - MemberName 34(s1) 2 "b" - Name 36 "s2" - MemberName 36(s2) 0 "c" - MemberName 36(s2) 1 "d" - Name 38 "s2out" - Name 40 "i" - Name 47 "s2D" - Name 62 "ui" - MemberDecorate 11(gl_PerVertex) 0 Invariant - MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 11(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 11(gl_PerVertex) 2 BuiltIn ClipDistance - Decorate 11(gl_PerVertex) Block - Decorate 17(iv4) Location 0 - Decorate 23(ps) Location 1 - Decorate 38(s2out) Location 0 - Decorate 47(s2D) DescriptorSet 0 - Decorate 47(s2D) Binding 0 - Decorate 62(ui) Location 2 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeInt 32 0 - 9: 8(int) Constant 4 - 10: TypeArray 6(float) 9 -11(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 10 - 12: TypePointer Output 11(gl_PerVertex) - 13: 12(ptr) Variable Output - 14: TypeInt 32 1 - 15: 14(int) Constant 0 - 16: TypePointer Input 7(fvec4) - 17(iv4): 16(ptr) Variable Input - 19: TypePointer Output 7(fvec4) - 21: 14(int) Constant 1 - 22: TypePointer Input 6(float) - 23(ps): 22(ptr) Variable Input - 25: TypePointer Output 6(float) - 27: 14(int) Constant 2 - 28: 8(int) Constant 0 - 32: 8(int) Constant 3 - 33: TypeArray 7(fvec4) 32 - 34(s1): TypeStruct 14(int) 14(int) 33 - 35: TypeArray 34(s1) 9 - 36(s2): TypeStruct 14(int) 35 - 37: TypePointer Output 36(s2) - 38(s2out): 37(ptr) Variable Output - 39: TypePointer Function 14(int) - 44: TypeImage 6(float) 2D sampled format:Unknown - 45: TypeSampledImage 44 - 46: TypePointer UniformConstant 45 - 47(s2D): 46(ptr) Variable UniformConstant - 49: TypeVector 6(float) 2 - 50: 6(float) Constant 1056964608 - 51: 49(fvec2) ConstantComposite 50 50 - 52: 6(float) Constant 0 - 55: TypeVector 6(float) 3 - 56: 55(fvec3) ConstantComposite 50 50 50 - 59: 6(float) Constant 1078774989 - 61: TypePointer Input 14(int) - 62(ui): 61(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 40(i): 39(ptr) Variable Function - 18: 7(fvec4) Load 17(iv4) - 20: 19(ptr) AccessChain 13 15 - Store 20 18 - 24: 6(float) Load 23(ps) - 26: 25(ptr) AccessChain 13 21 - Store 26 24 - 29: 22(ptr) AccessChain 17(iv4) 28 - 30: 6(float) Load 29 - 31: 25(ptr) AccessChain 13 27 27 - Store 31 30 - 41: 14(int) Load 40(i) - 42: 6(float) Load 23(ps) - 43: 25(ptr) AccessChain 38(s2out) 21 41 27 27 32 - Store 43 42 - 48: 45 Load 47(s2D) - 53: 7(fvec4) ImageSampleExplicitLod 48 51 Lod 52 - 54: 45 Load 47(s2D) - 57: 7(fvec4) ImageSampleProjExplicitLod 54 56 Lod 52 - 58: 45 Load 47(s2D) - 60: 7(fvec4) ImageSampleExplicitLod 58 51 Lod 59 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.16bitstorage-int.frag.out b/deps/glslang/Test/baseResults/spv.16bitstorage-int.frag.out deleted file mode 100644 index a91b4e4d..00000000 --- a/deps/glslang/Test/baseResults/spv.16bitstorage-int.frag.out +++ /dev/null @@ -1,339 +0,0 @@ -spv.16bitstorage-int.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 171 - - Capability Shader - Capability StorageUniformBufferBlock16 - Capability StorageUniform16 - Extension "SPV_KHR_16bit_storage" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_shader_16bit_storage" - Name 4 "main" - Name 12 "S" - MemberName 12(S) 0 "x" - MemberName 12(S) 1 "y" - MemberName 12(S) 2 "z" - Name 17 "B2" - MemberName 17(B2) 0 "o" - MemberName 17(B2) 1 "p" - MemberName 17(B2) 2 "q" - MemberName 17(B2) 3 "r" - MemberName 17(B2) 4 "u" - MemberName 17(B2) 5 "v" - MemberName 17(B2) 6 "x" - MemberName 17(B2) 7 "w" - Name 19 "b2" - Name 23 "S" - MemberName 23(S) 0 "x" - MemberName 23(S) 1 "y" - MemberName 23(S) 2 "z" - Name 25 "B1" - MemberName 25(B1) 0 "a" - MemberName 25(B1) 1 "b" - MemberName 25(B1) 2 "c" - MemberName 25(B1) 3 "d" - MemberName 25(B1) 4 "g" - MemberName 25(B1) 5 "h" - MemberName 25(B1) 6 "j" - Name 27 "b1" - Name 45 "S" - MemberName 45(S) 0 "x" - MemberName 45(S) 1 "y" - MemberName 45(S) 2 "z" - Name 49 "B5" - MemberName 49(B5) 0 "o" - MemberName 49(B5) 1 "p" - MemberName 49(B5) 2 "q" - MemberName 49(B5) 3 "r" - MemberName 49(B5) 4 "u" - MemberName 49(B5) 5 "v" - MemberName 49(B5) 6 "x" - MemberName 49(B5) 7 "w" - Name 51 "b5" - Name 69 "x0" - Name 75 "x1" - Name 88 "S2" - MemberName 88(S2) 0 "x" - MemberName 88(S2) 1 "y" - MemberName 88(S2) 2 "z" - Name 89 "S3" - MemberName 89(S3) 0 "x" - Name 90 "B4" - MemberName 90(B4) 0 "x" - MemberName 90(B4) 1 "y" - Name 92 "b4" - Name 93 "S2" - MemberName 93(S2) 0 "x" - MemberName 93(S2) 1 "y" - MemberName 93(S2) 2 "z" - Name 94 "B3" - MemberName 94(B3) 0 "x" - Name 96 "b3" - Name 113 "v3" - Name 135 "u3" - Decorate 11 ArrayStride 2 - MemberDecorate 12(S) 0 Offset 0 - MemberDecorate 12(S) 1 Offset 4 - MemberDecorate 12(S) 2 Offset 8 - Decorate 13 ArrayStride 16 - Decorate 15 ArrayStride 4 - Decorate 16 ArrayStride 2 - MemberDecorate 17(B2) 0 Offset 0 - MemberDecorate 17(B2) 1 Offset 4 - MemberDecorate 17(B2) 2 Offset 8 - MemberDecorate 17(B2) 3 Offset 14 - MemberDecorate 17(B2) 4 Offset 24 - MemberDecorate 17(B2) 5 Offset 40 - MemberDecorate 17(B2) 6 Offset 72 - MemberDecorate 17(B2) 7 Offset 472 - Decorate 17(B2) BufferBlock - Decorate 19(b2) DescriptorSet 0 - Decorate 19(b2) Binding 1 - Decorate 22 ArrayStride 16 - MemberDecorate 23(S) 0 Offset 0 - MemberDecorate 23(S) 1 Offset 4 - MemberDecorate 23(S) 2 Offset 8 - Decorate 24 ArrayStride 16 - MemberDecorate 25(B1) 0 Offset 0 - MemberDecorate 25(B1) 1 Offset 4 - MemberDecorate 25(B1) 2 Offset 8 - MemberDecorate 25(B1) 3 Offset 16 - MemberDecorate 25(B1) 4 Offset 48 - MemberDecorate 25(B1) 5 Offset 64 - MemberDecorate 25(B1) 6 Offset 96 - Decorate 25(B1) Block - Decorate 27(b1) DescriptorSet 0 - Decorate 27(b1) Binding 0 - Decorate 44 ArrayStride 16 - MemberDecorate 45(S) 0 Offset 0 - MemberDecorate 45(S) 1 Offset 4 - MemberDecorate 45(S) 2 Offset 8 - Decorate 46 ArrayStride 16 - Decorate 47 ArrayStride 16 - Decorate 48 ArrayStride 16 - MemberDecorate 49(B5) 0 Offset 0 - MemberDecorate 49(B5) 1 Offset 4 - MemberDecorate 49(B5) 2 Offset 8 - MemberDecorate 49(B5) 3 Offset 16 - MemberDecorate 49(B5) 4 Offset 48 - MemberDecorate 49(B5) 5 Offset 64 - MemberDecorate 49(B5) 6 Offset 96 - MemberDecorate 49(B5) 7 Offset 1696 - Decorate 49(B5) Block - Decorate 51(b5) DescriptorSet 0 - Decorate 51(b5) Binding 2 - MemberDecorate 88(S2) 0 ColMajor - MemberDecorate 88(S2) 0 Offset 0 - MemberDecorate 88(S2) 0 MatrixStride 16 - MemberDecorate 88(S2) 1 Offset 64 - MemberDecorate 88(S2) 2 Offset 68 - MemberDecorate 89(S3) 0 Offset 0 - MemberDecorate 90(B4) 0 Offset 0 - MemberDecorate 90(B4) 1 Offset 80 - Decorate 90(B4) BufferBlock - Decorate 92(b4) DescriptorSet 0 - Decorate 92(b4) Binding 4 - MemberDecorate 93(S2) 0 RowMajor - MemberDecorate 93(S2) 0 Offset 0 - MemberDecorate 93(S2) 0 MatrixStride 16 - MemberDecorate 93(S2) 1 Offset 64 - MemberDecorate 93(S2) 2 Offset 68 - MemberDecorate 94(B3) 0 Offset 0 - Decorate 94(B3) BufferBlock - Decorate 96(b3) DescriptorSet 0 - Decorate 96(b3) Binding 3 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 16 1 - 7: TypeVector 6(int16_t) 2 - 8: TypeVector 6(int16_t) 3 - 9: TypeInt 32 0 - 10: 9(int) Constant 2 - 11: TypeArray 6(int16_t) 10 - 12(S): TypeStruct 6(int16_t) 7(i16vec2) 8(i16vec3) - 13: TypeArray 12(S) 10 - 14: 9(int) Constant 100 - 15: TypeArray 7(i16vec2) 14 - 16: TypeRuntimeArray 6(int16_t) - 17(B2): TypeStruct 6(int16_t) 7(i16vec2) 8(i16vec3) 11 12(S) 13 15 16 - 18: TypePointer Uniform 17(B2) - 19(b2): 18(ptr) Variable Uniform - 20: TypeInt 32 1 - 21: 20(int) Constant 0 - 22: TypeArray 6(int16_t) 10 - 23(S): TypeStruct 6(int16_t) 7(i16vec2) 8(i16vec3) - 24: TypeArray 23(S) 10 - 25(B1): TypeStruct 6(int16_t) 7(i16vec2) 8(i16vec3) 22 23(S) 24 20(int) - 26: TypePointer Uniform 25(B1) - 27(b1): 26(ptr) Variable Uniform - 28: TypePointer Uniform 6(int16_t) - 32: 20(int) Constant 1 - 33: 20(int) Constant 2 - 34: TypePointer Uniform 8(i16vec3) - 37: TypeVector 20(int) 3 - 39: TypeVector 20(int) 2 - 42: TypePointer Uniform 7(i16vec2) - 44: TypeArray 6(int16_t) 10 - 45(S): TypeStruct 6(int16_t) 7(i16vec2) 8(i16vec3) - 46: TypeArray 45(S) 10 - 47: TypeArray 7(i16vec2) 14 - 48: TypeArray 6(int16_t) 14 - 49(B5): TypeStruct 6(int16_t) 7(i16vec2) 8(i16vec3) 44 45(S) 46 47 48 - 50: TypePointer Uniform 49(B5) - 51(b5): 50(ptr) Variable Uniform - 58: 20(int) Constant 3 - 68: TypePointer Function 20(int) - 73: TypeVector 20(int) 4 - 74: TypePointer Function 73(ivec4) - 85: TypeFloat 32 - 86: TypeVector 85(float) 4 - 87: TypeMatrix 86(fvec4) 4 - 88(S2): TypeStruct 87 6(int16_t) 20(int) - 89(S3): TypeStruct 88(S2) - 90(B4): TypeStruct 88(S2) 89(S3) - 91: TypePointer Uniform 90(B4) - 92(b4): 91(ptr) Variable Uniform - 93(S2): TypeStruct 87 6(int16_t) 20(int) - 94(B3): TypeStruct 93(S2) - 95: TypePointer Uniform 94(B3) - 96(b3): 95(ptr) Variable Uniform - 97: TypePointer Uniform 87 - 104: 9(int) Constant 0 - 108: 20(int) Constant 5 - 112: TypePointer Function 37(ivec3) - 114: 20(int) Constant 7 - 115: 20(int) Constant 6 - 116: TypePointer Uniform 20(int) - 166: 39(ivec2) ConstantComposite 32 33 - 4(main): 2 Function None 3 - 5: Label - 69(x0): 68(ptr) Variable Function - 75(x1): 74(ptr) Variable Function - 113(v3): 112(ptr) Variable Function - 135(u3): 112(ptr) Variable Function - 29: 28(ptr) AccessChain 27(b1) 21 - 30: 6(int16_t) Load 29 - 31: 28(ptr) AccessChain 19(b2) 21 - Store 31 30 - 35: 34(ptr) AccessChain 19(b2) 33 - 36: 8(i16vec3) Load 35 - 38: 37(ivec3) SConvert 36 - 40: 39(ivec2) VectorShuffle 38 38 0 1 - 41: 7(i16vec2) SConvert 40 - 43: 42(ptr) AccessChain 19(b2) 32 - Store 43 41 - 52: 34(ptr) AccessChain 51(b5) 33 - 53: 8(i16vec3) Load 52 - 54: 37(ivec3) SConvert 53 - 55: 39(ivec2) VectorShuffle 54 54 0 1 - 56: 7(i16vec2) SConvert 55 - 57: 42(ptr) AccessChain 19(b2) 32 - Store 57 56 - 59: 28(ptr) AccessChain 19(b2) 58 21 - 60: 6(int16_t) Load 59 - 61: 28(ptr) AccessChain 19(b2) 58 21 - Store 61 60 - 62: 28(ptr) AccessChain 51(b5) 58 32 - 63: 6(int16_t) Load 62 - 64: 28(ptr) AccessChain 19(b2) 58 32 - Store 64 63 - 65: 42(ptr) AccessChain 19(b2) 32 - 66: 7(i16vec2) Load 65 - 67: 42(ptr) AccessChain 19(b2) 32 - Store 67 66 - 70: 28(ptr) AccessChain 27(b1) 21 - 71: 6(int16_t) Load 70 - 72: 20(int) SConvert 71 - Store 69(x0) 72 - 76: 28(ptr) AccessChain 27(b1) 21 - 77: 6(int16_t) Load 76 - 78: 20(int) SConvert 77 - 79: 42(ptr) AccessChain 19(b2) 32 - 80: 7(i16vec2) Load 79 - 81: 39(ivec2) SConvert 80 - 82: 20(int) CompositeExtract 81 0 - 83: 20(int) CompositeExtract 81 1 - 84: 73(ivec4) CompositeConstruct 78 82 83 32 - Store 75(x1) 84 - 98: 97(ptr) AccessChain 96(b3) 21 21 - 99: 87 Load 98 - 100: 97(ptr) AccessChain 92(b4) 21 21 - Store 100 99 - 101: 42(ptr) AccessChain 19(b2) 32 - 102: 7(i16vec2) Load 101 - 103: 39(ivec2) SConvert 102 - 105: 20(int) CompositeExtract 103 0 - 106: 6(int16_t) SConvert 105 - 107: 28(ptr) AccessChain 19(b2) 21 - Store 107 106 - 109: 42(ptr) AccessChain 19(b2) 108 32 32 - 110: 7(i16vec2) Load 109 - 111: 42(ptr) AccessChain 19(b2) 32 - Store 111 110 - 117: 116(ptr) AccessChain 27(b1) 115 - 118: 20(int) Load 117 - 119: 28(ptr) AccessChain 19(b2) 114 118 - 120: 6(int16_t) Load 119 - 121: 20(int) SConvert 120 - 122: 116(ptr) AccessChain 27(b1) 115 - 123: 20(int) Load 122 - 124: 20(int) IAdd 123 32 - 125: 28(ptr) AccessChain 19(b2) 114 124 - 126: 6(int16_t) Load 125 - 127: 20(int) SConvert 126 - 128: 116(ptr) AccessChain 27(b1) 115 - 129: 20(int) Load 128 - 130: 20(int) IAdd 129 33 - 131: 28(ptr) AccessChain 19(b2) 114 130 - 132: 6(int16_t) Load 131 - 133: 20(int) SConvert 132 - 134: 37(ivec3) CompositeConstruct 121 127 133 - Store 113(v3) 134 - 136: 116(ptr) AccessChain 27(b1) 115 - 137: 20(int) Load 136 - 138: 28(ptr) AccessChain 51(b5) 114 137 - 139: 6(int16_t) Load 138 - 140: 20(int) SConvert 139 - 141: 116(ptr) AccessChain 27(b1) 115 - 142: 20(int) Load 141 - 143: 20(int) IAdd 142 32 - 144: 28(ptr) AccessChain 51(b5) 114 143 - 145: 6(int16_t) Load 144 - 146: 20(int) SConvert 145 - 147: 116(ptr) AccessChain 27(b1) 115 - 148: 20(int) Load 147 - 149: 20(int) IAdd 148 33 - 150: 28(ptr) AccessChain 51(b5) 114 149 - 151: 6(int16_t) Load 150 - 152: 20(int) SConvert 151 - 153: 37(ivec3) CompositeConstruct 140 146 152 - Store 135(u3) 153 - 154: 42(ptr) AccessChain 19(b2) 115 21 - 155: 7(i16vec2) Load 154 - 156: 42(ptr) AccessChain 19(b2) 115 21 - Store 156 155 - 157: 42(ptr) AccessChain 51(b5) 115 32 - 158: 7(i16vec2) Load 157 - 159: 42(ptr) AccessChain 19(b2) 115 32 - Store 159 158 - 160: 28(ptr) AccessChain 27(b1) 21 - 161: 6(int16_t) Load 160 - 162: 28(ptr) AccessChain 19(b2) 32 104 - Store 162 161 - 163: 28(ptr) AccessChain 19(b2) 32 104 - 164: 6(int16_t) Load 163 - 165: 28(ptr) AccessChain 19(b2) 21 - Store 165 164 - 167: 7(i16vec2) SConvert 166 - 168: 42(ptr) AccessChain 19(b2) 32 - Store 168 167 - 169: 6(int16_t) SConvert 58 - 170: 28(ptr) AccessChain 19(b2) 21 - Store 170 169 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.16bitstorage-uint.frag.out b/deps/glslang/Test/baseResults/spv.16bitstorage-uint.frag.out deleted file mode 100644 index f90d0c14..00000000 --- a/deps/glslang/Test/baseResults/spv.16bitstorage-uint.frag.out +++ /dev/null @@ -1,341 +0,0 @@ -spv.16bitstorage-uint.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 173 - - Capability Shader - Capability StorageUniformBufferBlock16 - Capability StorageUniform16 - Extension "SPV_KHR_16bit_storage" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_shader_16bit_storage" - Name 4 "main" - Name 12 "S" - MemberName 12(S) 0 "x" - MemberName 12(S) 1 "y" - MemberName 12(S) 2 "z" - Name 17 "B2" - MemberName 17(B2) 0 "o" - MemberName 17(B2) 1 "p" - MemberName 17(B2) 2 "q" - MemberName 17(B2) 3 "r" - MemberName 17(B2) 4 "u" - MemberName 17(B2) 5 "v" - MemberName 17(B2) 6 "x" - MemberName 17(B2) 7 "w" - Name 19 "b2" - Name 23 "S" - MemberName 23(S) 0 "x" - MemberName 23(S) 1 "y" - MemberName 23(S) 2 "z" - Name 25 "B1" - MemberName 25(B1) 0 "a" - MemberName 25(B1) 1 "b" - MemberName 25(B1) 2 "c" - MemberName 25(B1) 3 "d" - MemberName 25(B1) 4 "g" - MemberName 25(B1) 5 "h" - MemberName 25(B1) 6 "j" - Name 27 "b1" - Name 45 "S" - MemberName 45(S) 0 "x" - MemberName 45(S) 1 "y" - MemberName 45(S) 2 "z" - Name 49 "B5" - MemberName 49(B5) 0 "o" - MemberName 49(B5) 1 "p" - MemberName 49(B5) 2 "q" - MemberName 49(B5) 3 "r" - MemberName 49(B5) 4 "u" - MemberName 49(B5) 5 "v" - MemberName 49(B5) 6 "x" - MemberName 49(B5) 7 "w" - Name 51 "b5" - Name 69 "x0" - Name 75 "x1" - Name 89 "S2" - MemberName 89(S2) 0 "x" - MemberName 89(S2) 1 "y" - MemberName 89(S2) 2 "z" - Name 90 "S3" - MemberName 90(S3) 0 "x" - Name 91 "B4" - MemberName 91(B4) 0 "x" - MemberName 91(B4) 1 "y" - Name 93 "b4" - Name 94 "S2" - MemberName 94(S2) 0 "x" - MemberName 94(S2) 1 "y" - MemberName 94(S2) 2 "z" - Name 95 "B3" - MemberName 95(B3) 0 "x" - Name 97 "b3" - Name 114 "v3" - Name 136 "u3" - Decorate 11 ArrayStride 2 - MemberDecorate 12(S) 0 Offset 0 - MemberDecorate 12(S) 1 Offset 4 - MemberDecorate 12(S) 2 Offset 8 - Decorate 13 ArrayStride 16 - Decorate 15 ArrayStride 4 - Decorate 16 ArrayStride 2 - MemberDecorate 17(B2) 0 Offset 0 - MemberDecorate 17(B2) 1 Offset 4 - MemberDecorate 17(B2) 2 Offset 8 - MemberDecorate 17(B2) 3 Offset 14 - MemberDecorate 17(B2) 4 Offset 24 - MemberDecorate 17(B2) 5 Offset 40 - MemberDecorate 17(B2) 6 Offset 72 - MemberDecorate 17(B2) 7 Offset 472 - Decorate 17(B2) BufferBlock - Decorate 19(b2) DescriptorSet 0 - Decorate 19(b2) Binding 1 - Decorate 22 ArrayStride 16 - MemberDecorate 23(S) 0 Offset 0 - MemberDecorate 23(S) 1 Offset 4 - MemberDecorate 23(S) 2 Offset 8 - Decorate 24 ArrayStride 16 - MemberDecorate 25(B1) 0 Offset 0 - MemberDecorate 25(B1) 1 Offset 4 - MemberDecorate 25(B1) 2 Offset 8 - MemberDecorate 25(B1) 3 Offset 16 - MemberDecorate 25(B1) 4 Offset 48 - MemberDecorate 25(B1) 5 Offset 64 - MemberDecorate 25(B1) 6 Offset 96 - Decorate 25(B1) Block - Decorate 27(b1) DescriptorSet 0 - Decorate 27(b1) Binding 0 - Decorate 44 ArrayStride 16 - MemberDecorate 45(S) 0 Offset 0 - MemberDecorate 45(S) 1 Offset 4 - MemberDecorate 45(S) 2 Offset 8 - Decorate 46 ArrayStride 16 - Decorate 47 ArrayStride 16 - Decorate 48 ArrayStride 16 - MemberDecorate 49(B5) 0 Offset 0 - MemberDecorate 49(B5) 1 Offset 4 - MemberDecorate 49(B5) 2 Offset 8 - MemberDecorate 49(B5) 3 Offset 16 - MemberDecorate 49(B5) 4 Offset 48 - MemberDecorate 49(B5) 5 Offset 64 - MemberDecorate 49(B5) 6 Offset 96 - MemberDecorate 49(B5) 7 Offset 1696 - Decorate 49(B5) Block - Decorate 51(b5) DescriptorSet 0 - Decorate 51(b5) Binding 2 - MemberDecorate 89(S2) 0 ColMajor - MemberDecorate 89(S2) 0 Offset 0 - MemberDecorate 89(S2) 0 MatrixStride 16 - MemberDecorate 89(S2) 1 Offset 64 - MemberDecorate 89(S2) 2 Offset 68 - MemberDecorate 90(S3) 0 Offset 0 - MemberDecorate 91(B4) 0 Offset 0 - MemberDecorate 91(B4) 1 Offset 80 - Decorate 91(B4) BufferBlock - Decorate 93(b4) DescriptorSet 0 - Decorate 93(b4) Binding 4 - MemberDecorate 94(S2) 0 RowMajor - MemberDecorate 94(S2) 0 Offset 0 - MemberDecorate 94(S2) 0 MatrixStride 16 - MemberDecorate 94(S2) 1 Offset 64 - MemberDecorate 94(S2) 2 Offset 68 - MemberDecorate 95(B3) 0 Offset 0 - Decorate 95(B3) BufferBlock - Decorate 97(b3) DescriptorSet 0 - Decorate 97(b3) Binding 3 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 16 0 - 7: TypeVector 6(int16_t) 2 - 8: TypeVector 6(int16_t) 3 - 9: TypeInt 32 0 - 10: 9(int) Constant 2 - 11: TypeArray 6(int16_t) 10 - 12(S): TypeStruct 6(int16_t) 7(i16vec2) 8(i16vec3) - 13: TypeArray 12(S) 10 - 14: 9(int) Constant 100 - 15: TypeArray 7(i16vec2) 14 - 16: TypeRuntimeArray 6(int16_t) - 17(B2): TypeStruct 6(int16_t) 7(i16vec2) 8(i16vec3) 11 12(S) 13 15 16 - 18: TypePointer Uniform 17(B2) - 19(b2): 18(ptr) Variable Uniform - 20: TypeInt 32 1 - 21: 20(int) Constant 0 - 22: TypeArray 6(int16_t) 10 - 23(S): TypeStruct 6(int16_t) 7(i16vec2) 8(i16vec3) - 24: TypeArray 23(S) 10 - 25(B1): TypeStruct 6(int16_t) 7(i16vec2) 8(i16vec3) 22 23(S) 24 9(int) - 26: TypePointer Uniform 25(B1) - 27(b1): 26(ptr) Variable Uniform - 28: TypePointer Uniform 6(int16_t) - 32: 20(int) Constant 1 - 33: 20(int) Constant 2 - 34: TypePointer Uniform 8(i16vec3) - 37: TypeVector 9(int) 3 - 39: TypeVector 9(int) 2 - 42: TypePointer Uniform 7(i16vec2) - 44: TypeArray 6(int16_t) 10 - 45(S): TypeStruct 6(int16_t) 7(i16vec2) 8(i16vec3) - 46: TypeArray 45(S) 10 - 47: TypeArray 7(i16vec2) 14 - 48: TypeArray 6(int16_t) 14 - 49(B5): TypeStruct 6(int16_t) 7(i16vec2) 8(i16vec3) 44 45(S) 46 47 48 - 50: TypePointer Uniform 49(B5) - 51(b5): 50(ptr) Variable Uniform - 58: 20(int) Constant 3 - 68: TypePointer Function 9(int) - 73: TypeVector 9(int) 4 - 74: TypePointer Function 73(ivec4) - 82: 9(int) Constant 1 - 86: TypeFloat 32 - 87: TypeVector 86(float) 4 - 88: TypeMatrix 87(fvec4) 4 - 89(S2): TypeStruct 88 6(int16_t) 9(int) - 90(S3): TypeStruct 89(S2) - 91(B4): TypeStruct 89(S2) 90(S3) - 92: TypePointer Uniform 91(B4) - 93(b4): 92(ptr) Variable Uniform - 94(S2): TypeStruct 88 6(int16_t) 9(int) - 95(B3): TypeStruct 94(S2) - 96: TypePointer Uniform 95(B3) - 97(b3): 96(ptr) Variable Uniform - 98: TypePointer Uniform 88 - 105: 9(int) Constant 0 - 109: 20(int) Constant 5 - 113: TypePointer Function 37(ivec3) - 115: 20(int) Constant 7 - 116: 20(int) Constant 6 - 117: TypePointer Uniform 9(int) - 167: 39(ivec2) ConstantComposite 82 10 - 170: 9(int) Constant 3 - 4(main): 2 Function None 3 - 5: Label - 69(x0): 68(ptr) Variable Function - 75(x1): 74(ptr) Variable Function - 114(v3): 113(ptr) Variable Function - 136(u3): 113(ptr) Variable Function - 29: 28(ptr) AccessChain 27(b1) 21 - 30: 6(int16_t) Load 29 - 31: 28(ptr) AccessChain 19(b2) 21 - Store 31 30 - 35: 34(ptr) AccessChain 19(b2) 33 - 36: 8(i16vec3) Load 35 - 38: 37(ivec3) UConvert 36 - 40: 39(ivec2) VectorShuffle 38 38 0 1 - 41: 7(i16vec2) UConvert 40 - 43: 42(ptr) AccessChain 19(b2) 32 - Store 43 41 - 52: 34(ptr) AccessChain 51(b5) 33 - 53: 8(i16vec3) Load 52 - 54: 37(ivec3) UConvert 53 - 55: 39(ivec2) VectorShuffle 54 54 0 1 - 56: 7(i16vec2) UConvert 55 - 57: 42(ptr) AccessChain 19(b2) 32 - Store 57 56 - 59: 28(ptr) AccessChain 19(b2) 58 21 - 60: 6(int16_t) Load 59 - 61: 28(ptr) AccessChain 19(b2) 58 21 - Store 61 60 - 62: 28(ptr) AccessChain 51(b5) 58 32 - 63: 6(int16_t) Load 62 - 64: 28(ptr) AccessChain 19(b2) 58 32 - Store 64 63 - 65: 42(ptr) AccessChain 19(b2) 32 - 66: 7(i16vec2) Load 65 - 67: 42(ptr) AccessChain 19(b2) 32 - Store 67 66 - 70: 28(ptr) AccessChain 27(b1) 21 - 71: 6(int16_t) Load 70 - 72: 9(int) UConvert 71 - Store 69(x0) 72 - 76: 28(ptr) AccessChain 27(b1) 21 - 77: 6(int16_t) Load 76 - 78: 9(int) UConvert 77 - 79: 42(ptr) AccessChain 19(b2) 32 - 80: 7(i16vec2) Load 79 - 81: 39(ivec2) UConvert 80 - 83: 9(int) CompositeExtract 81 0 - 84: 9(int) CompositeExtract 81 1 - 85: 73(ivec4) CompositeConstruct 78 83 84 82 - Store 75(x1) 85 - 99: 98(ptr) AccessChain 97(b3) 21 21 - 100: 88 Load 99 - 101: 98(ptr) AccessChain 93(b4) 21 21 - Store 101 100 - 102: 42(ptr) AccessChain 19(b2) 32 - 103: 7(i16vec2) Load 102 - 104: 39(ivec2) UConvert 103 - 106: 9(int) CompositeExtract 104 0 - 107: 6(int16_t) UConvert 106 - 108: 28(ptr) AccessChain 19(b2) 21 - Store 108 107 - 110: 42(ptr) AccessChain 19(b2) 109 32 32 - 111: 7(i16vec2) Load 110 - 112: 42(ptr) AccessChain 19(b2) 32 - Store 112 111 - 118: 117(ptr) AccessChain 27(b1) 116 - 119: 9(int) Load 118 - 120: 28(ptr) AccessChain 19(b2) 115 119 - 121: 6(int16_t) Load 120 - 122: 9(int) UConvert 121 - 123: 117(ptr) AccessChain 27(b1) 116 - 124: 9(int) Load 123 - 125: 9(int) IAdd 124 82 - 126: 28(ptr) AccessChain 19(b2) 115 125 - 127: 6(int16_t) Load 126 - 128: 9(int) UConvert 127 - 129: 117(ptr) AccessChain 27(b1) 116 - 130: 9(int) Load 129 - 131: 9(int) IAdd 130 10 - 132: 28(ptr) AccessChain 19(b2) 115 131 - 133: 6(int16_t) Load 132 - 134: 9(int) UConvert 133 - 135: 37(ivec3) CompositeConstruct 122 128 134 - Store 114(v3) 135 - 137: 117(ptr) AccessChain 27(b1) 116 - 138: 9(int) Load 137 - 139: 28(ptr) AccessChain 51(b5) 115 138 - 140: 6(int16_t) Load 139 - 141: 9(int) UConvert 140 - 142: 117(ptr) AccessChain 27(b1) 116 - 143: 9(int) Load 142 - 144: 9(int) IAdd 143 82 - 145: 28(ptr) AccessChain 51(b5) 115 144 - 146: 6(int16_t) Load 145 - 147: 9(int) UConvert 146 - 148: 117(ptr) AccessChain 27(b1) 116 - 149: 9(int) Load 148 - 150: 9(int) IAdd 149 10 - 151: 28(ptr) AccessChain 51(b5) 115 150 - 152: 6(int16_t) Load 151 - 153: 9(int) UConvert 152 - 154: 37(ivec3) CompositeConstruct 141 147 153 - Store 136(u3) 154 - 155: 42(ptr) AccessChain 19(b2) 116 21 - 156: 7(i16vec2) Load 155 - 157: 42(ptr) AccessChain 19(b2) 116 21 - Store 157 156 - 158: 42(ptr) AccessChain 51(b5) 116 32 - 159: 7(i16vec2) Load 158 - 160: 42(ptr) AccessChain 19(b2) 116 32 - Store 160 159 - 161: 28(ptr) AccessChain 27(b1) 21 - 162: 6(int16_t) Load 161 - 163: 28(ptr) AccessChain 19(b2) 32 105 - Store 163 162 - 164: 28(ptr) AccessChain 19(b2) 32 105 - 165: 6(int16_t) Load 164 - 166: 28(ptr) AccessChain 19(b2) 21 - Store 166 165 - 168: 7(i16vec2) UConvert 167 - 169: 42(ptr) AccessChain 19(b2) 32 - Store 169 168 - 171: 6(int16_t) UConvert 170 - 172: 28(ptr) AccessChain 19(b2) 21 - Store 172 171 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.16bitstorage.frag.out b/deps/glslang/Test/baseResults/spv.16bitstorage.frag.out deleted file mode 100644 index 2d934f4c..00000000 --- a/deps/glslang/Test/baseResults/spv.16bitstorage.frag.out +++ /dev/null @@ -1,341 +0,0 @@ -spv.16bitstorage.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 173 - - Capability Shader - Capability StorageUniformBufferBlock16 - Capability StorageUniform16 - Extension "SPV_KHR_16bit_storage" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_shader_16bit_storage" - Name 4 "main" - Name 12 "S" - MemberName 12(S) 0 "x" - MemberName 12(S) 1 "y" - MemberName 12(S) 2 "z" - Name 17 "B2" - MemberName 17(B2) 0 "o" - MemberName 17(B2) 1 "p" - MemberName 17(B2) 2 "q" - MemberName 17(B2) 3 "r" - MemberName 17(B2) 4 "u" - MemberName 17(B2) 5 "v" - MemberName 17(B2) 6 "x" - MemberName 17(B2) 7 "w" - Name 19 "b2" - Name 23 "S" - MemberName 23(S) 0 "x" - MemberName 23(S) 1 "y" - MemberName 23(S) 2 "z" - Name 25 "B1" - MemberName 25(B1) 0 "a" - MemberName 25(B1) 1 "b" - MemberName 25(B1) 2 "c" - MemberName 25(B1) 3 "d" - MemberName 25(B1) 4 "g" - MemberName 25(B1) 5 "h" - MemberName 25(B1) 6 "j" - Name 27 "b1" - Name 46 "S" - MemberName 46(S) 0 "x" - MemberName 46(S) 1 "y" - MemberName 46(S) 2 "z" - Name 50 "B5" - MemberName 50(B5) 0 "o" - MemberName 50(B5) 1 "p" - MemberName 50(B5) 2 "q" - MemberName 50(B5) 3 "r" - MemberName 50(B5) 4 "u" - MemberName 50(B5) 5 "v" - MemberName 50(B5) 6 "x" - MemberName 50(B5) 7 "w" - Name 52 "b5" - Name 70 "x0" - Name 76 "x1" - Name 88 "S2" - MemberName 88(S2) 0 "x" - MemberName 88(S2) 1 "y" - MemberName 88(S2) 2 "z" - Name 89 "S3" - MemberName 89(S3) 0 "x" - Name 90 "B4" - MemberName 90(B4) 0 "x" - MemberName 90(B4) 1 "y" - Name 92 "b4" - Name 93 "S2" - MemberName 93(S2) 0 "x" - MemberName 93(S2) 1 "y" - MemberName 93(S2) 2 "z" - Name 94 "B3" - MemberName 94(B3) 0 "x" - Name 96 "b3" - Name 113 "v3" - Name 135 "u3" - Decorate 11 ArrayStride 2 - MemberDecorate 12(S) 0 Offset 0 - MemberDecorate 12(S) 1 Offset 4 - MemberDecorate 12(S) 2 Offset 8 - Decorate 13 ArrayStride 16 - Decorate 15 ArrayStride 4 - Decorate 16 ArrayStride 2 - MemberDecorate 17(B2) 0 Offset 0 - MemberDecorate 17(B2) 1 Offset 4 - MemberDecorate 17(B2) 2 Offset 8 - MemberDecorate 17(B2) 3 Offset 14 - MemberDecorate 17(B2) 4 Offset 24 - MemberDecorate 17(B2) 5 Offset 40 - MemberDecorate 17(B2) 6 Offset 72 - MemberDecorate 17(B2) 7 Offset 472 - Decorate 17(B2) BufferBlock - Decorate 19(b2) DescriptorSet 0 - Decorate 19(b2) Binding 1 - Decorate 22 ArrayStride 16 - MemberDecorate 23(S) 0 Offset 0 - MemberDecorate 23(S) 1 Offset 4 - MemberDecorate 23(S) 2 Offset 8 - Decorate 24 ArrayStride 16 - MemberDecorate 25(B1) 0 Offset 0 - MemberDecorate 25(B1) 1 Offset 4 - MemberDecorate 25(B1) 2 Offset 8 - MemberDecorate 25(B1) 3 Offset 16 - MemberDecorate 25(B1) 4 Offset 48 - MemberDecorate 25(B1) 5 Offset 64 - MemberDecorate 25(B1) 6 Offset 96 - Decorate 25(B1) Block - Decorate 27(b1) DescriptorSet 0 - Decorate 27(b1) Binding 0 - Decorate 45 ArrayStride 16 - MemberDecorate 46(S) 0 Offset 0 - MemberDecorate 46(S) 1 Offset 4 - MemberDecorate 46(S) 2 Offset 8 - Decorate 47 ArrayStride 16 - Decorate 48 ArrayStride 16 - Decorate 49 ArrayStride 16 - MemberDecorate 50(B5) 0 Offset 0 - MemberDecorate 50(B5) 1 Offset 4 - MemberDecorate 50(B5) 2 Offset 8 - MemberDecorate 50(B5) 3 Offset 16 - MemberDecorate 50(B5) 4 Offset 48 - MemberDecorate 50(B5) 5 Offset 64 - MemberDecorate 50(B5) 6 Offset 96 - MemberDecorate 50(B5) 7 Offset 1696 - Decorate 50(B5) Block - Decorate 52(b5) DescriptorSet 0 - Decorate 52(b5) Binding 2 - MemberDecorate 88(S2) 0 ColMajor - MemberDecorate 88(S2) 0 Offset 0 - MemberDecorate 88(S2) 0 MatrixStride 16 - MemberDecorate 88(S2) 1 Offset 64 - MemberDecorate 88(S2) 2 Offset 68 - MemberDecorate 89(S3) 0 Offset 0 - MemberDecorate 90(B4) 0 Offset 0 - MemberDecorate 90(B4) 1 Offset 80 - Decorate 90(B4) BufferBlock - Decorate 92(b4) DescriptorSet 0 - Decorate 92(b4) Binding 4 - MemberDecorate 93(S2) 0 RowMajor - MemberDecorate 93(S2) 0 Offset 0 - MemberDecorate 93(S2) 0 MatrixStride 16 - MemberDecorate 93(S2) 1 Offset 64 - MemberDecorate 93(S2) 2 Offset 68 - MemberDecorate 94(B3) 0 Offset 0 - Decorate 94(B3) BufferBlock - Decorate 96(b3) DescriptorSet 0 - Decorate 96(b3) Binding 3 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 16 - 7: TypeVector 6(float16_t) 2 - 8: TypeVector 6(float16_t) 3 - 9: TypeInt 32 0 - 10: 9(int) Constant 2 - 11: TypeArray 6(float16_t) 10 - 12(S): TypeStruct 6(float16_t) 7(f16vec2) 8(f16vec3) - 13: TypeArray 12(S) 10 - 14: 9(int) Constant 100 - 15: TypeArray 7(f16vec2) 14 - 16: TypeRuntimeArray 6(float16_t) - 17(B2): TypeStruct 6(float16_t) 7(f16vec2) 8(f16vec3) 11 12(S) 13 15 16 - 18: TypePointer Uniform 17(B2) - 19(b2): 18(ptr) Variable Uniform - 20: TypeInt 32 1 - 21: 20(int) Constant 0 - 22: TypeArray 6(float16_t) 10 - 23(S): TypeStruct 6(float16_t) 7(f16vec2) 8(f16vec3) - 24: TypeArray 23(S) 10 - 25(B1): TypeStruct 6(float16_t) 7(f16vec2) 8(f16vec3) 22 23(S) 24 20(int) - 26: TypePointer Uniform 25(B1) - 27(b1): 26(ptr) Variable Uniform - 28: TypePointer Uniform 6(float16_t) - 32: 20(int) Constant 1 - 33: 20(int) Constant 2 - 34: TypePointer Uniform 8(f16vec3) - 37: TypeFloat 32 - 38: TypeVector 37(float) 3 - 40: TypeVector 37(float) 2 - 43: TypePointer Uniform 7(f16vec2) - 45: TypeArray 6(float16_t) 10 - 46(S): TypeStruct 6(float16_t) 7(f16vec2) 8(f16vec3) - 47: TypeArray 46(S) 10 - 48: TypeArray 7(f16vec2) 14 - 49: TypeArray 6(float16_t) 14 - 50(B5): TypeStruct 6(float16_t) 7(f16vec2) 8(f16vec3) 45 46(S) 47 48 49 - 51: TypePointer Uniform 50(B5) - 52(b5): 51(ptr) Variable Uniform - 59: 20(int) Constant 3 - 69: TypePointer Function 37(float) - 74: TypeVector 37(float) 4 - 75: TypePointer Function 74(fvec4) - 83: 37(float) Constant 1065353216 - 87: TypeMatrix 74(fvec4) 4 - 88(S2): TypeStruct 87 6(float16_t) 37(float) - 89(S3): TypeStruct 88(S2) - 90(B4): TypeStruct 88(S2) 89(S3) - 91: TypePointer Uniform 90(B4) - 92(b4): 91(ptr) Variable Uniform - 93(S2): TypeStruct 87 6(float16_t) 37(float) - 94(B3): TypeStruct 93(S2) - 95: TypePointer Uniform 94(B3) - 96(b3): 95(ptr) Variable Uniform - 97: TypePointer Uniform 87 - 104: 9(int) Constant 0 - 108: 20(int) Constant 5 - 112: TypePointer Function 38(fvec3) - 114: 20(int) Constant 7 - 115: 20(int) Constant 6 - 116: TypePointer Uniform 20(int) - 166: 37(float) Constant 1073741824 - 167: 40(fvec2) ConstantComposite 83 166 - 170: 37(float) Constant 1077936128 - 4(main): 2 Function None 3 - 5: Label - 70(x0): 69(ptr) Variable Function - 76(x1): 75(ptr) Variable Function - 113(v3): 112(ptr) Variable Function - 135(u3): 112(ptr) Variable Function - 29: 28(ptr) AccessChain 27(b1) 21 - 30:6(float16_t) Load 29 - 31: 28(ptr) AccessChain 19(b2) 21 - Store 31 30 - 35: 34(ptr) AccessChain 19(b2) 33 - 36: 8(f16vec3) Load 35 - 39: 38(fvec3) FConvert 36 - 41: 40(fvec2) VectorShuffle 39 39 0 1 - 42: 7(f16vec2) FConvert 41 - 44: 43(ptr) AccessChain 19(b2) 32 - Store 44 42 - 53: 34(ptr) AccessChain 52(b5) 33 - 54: 8(f16vec3) Load 53 - 55: 38(fvec3) FConvert 54 - 56: 40(fvec2) VectorShuffle 55 55 0 1 - 57: 7(f16vec2) FConvert 56 - 58: 43(ptr) AccessChain 19(b2) 32 - Store 58 57 - 60: 28(ptr) AccessChain 19(b2) 59 21 - 61:6(float16_t) Load 60 - 62: 28(ptr) AccessChain 19(b2) 59 21 - Store 62 61 - 63: 28(ptr) AccessChain 52(b5) 59 32 - 64:6(float16_t) Load 63 - 65: 28(ptr) AccessChain 19(b2) 59 32 - Store 65 64 - 66: 43(ptr) AccessChain 19(b2) 32 - 67: 7(f16vec2) Load 66 - 68: 43(ptr) AccessChain 19(b2) 32 - Store 68 67 - 71: 28(ptr) AccessChain 27(b1) 21 - 72:6(float16_t) Load 71 - 73: 37(float) FConvert 72 - Store 70(x0) 73 - 77: 28(ptr) AccessChain 27(b1) 21 - 78:6(float16_t) Load 77 - 79: 37(float) FConvert 78 - 80: 43(ptr) AccessChain 19(b2) 32 - 81: 7(f16vec2) Load 80 - 82: 40(fvec2) FConvert 81 - 84: 37(float) CompositeExtract 82 0 - 85: 37(float) CompositeExtract 82 1 - 86: 74(fvec4) CompositeConstruct 79 84 85 83 - Store 76(x1) 86 - 98: 97(ptr) AccessChain 96(b3) 21 21 - 99: 87 Load 98 - 100: 97(ptr) AccessChain 92(b4) 21 21 - Store 100 99 - 101: 43(ptr) AccessChain 19(b2) 32 - 102: 7(f16vec2) Load 101 - 103: 40(fvec2) FConvert 102 - 105: 37(float) CompositeExtract 103 0 - 106:6(float16_t) FConvert 105 - 107: 28(ptr) AccessChain 19(b2) 21 - Store 107 106 - 109: 43(ptr) AccessChain 19(b2) 108 32 32 - 110: 7(f16vec2) Load 109 - 111: 43(ptr) AccessChain 19(b2) 32 - Store 111 110 - 117: 116(ptr) AccessChain 27(b1) 115 - 118: 20(int) Load 117 - 119: 28(ptr) AccessChain 19(b2) 114 118 - 120:6(float16_t) Load 119 - 121: 37(float) FConvert 120 - 122: 116(ptr) AccessChain 27(b1) 115 - 123: 20(int) Load 122 - 124: 20(int) IAdd 123 32 - 125: 28(ptr) AccessChain 19(b2) 114 124 - 126:6(float16_t) Load 125 - 127: 37(float) FConvert 126 - 128: 116(ptr) AccessChain 27(b1) 115 - 129: 20(int) Load 128 - 130: 20(int) IAdd 129 33 - 131: 28(ptr) AccessChain 19(b2) 114 130 - 132:6(float16_t) Load 131 - 133: 37(float) FConvert 132 - 134: 38(fvec3) CompositeConstruct 121 127 133 - Store 113(v3) 134 - 136: 116(ptr) AccessChain 27(b1) 115 - 137: 20(int) Load 136 - 138: 28(ptr) AccessChain 52(b5) 114 137 - 139:6(float16_t) Load 138 - 140: 37(float) FConvert 139 - 141: 116(ptr) AccessChain 27(b1) 115 - 142: 20(int) Load 141 - 143: 20(int) IAdd 142 32 - 144: 28(ptr) AccessChain 52(b5) 114 143 - 145:6(float16_t) Load 144 - 146: 37(float) FConvert 145 - 147: 116(ptr) AccessChain 27(b1) 115 - 148: 20(int) Load 147 - 149: 20(int) IAdd 148 33 - 150: 28(ptr) AccessChain 52(b5) 114 149 - 151:6(float16_t) Load 150 - 152: 37(float) FConvert 151 - 153: 38(fvec3) CompositeConstruct 140 146 152 - Store 135(u3) 153 - 154: 43(ptr) AccessChain 19(b2) 115 21 - 155: 7(f16vec2) Load 154 - 156: 43(ptr) AccessChain 19(b2) 115 21 - Store 156 155 - 157: 43(ptr) AccessChain 52(b5) 115 32 - 158: 7(f16vec2) Load 157 - 159: 43(ptr) AccessChain 19(b2) 115 32 - Store 159 158 - 160: 28(ptr) AccessChain 27(b1) 21 - 161:6(float16_t) Load 160 - 162: 28(ptr) AccessChain 19(b2) 32 104 - Store 162 161 - 163: 28(ptr) AccessChain 19(b2) 32 104 - 164:6(float16_t) Load 163 - 165: 28(ptr) AccessChain 19(b2) 21 - Store 165 164 - 168: 7(f16vec2) FConvert 167 - 169: 43(ptr) AccessChain 19(b2) 32 - Store 169 168 - 171:6(float16_t) FConvert 170 - 172: 28(ptr) AccessChain 19(b2) 21 - Store 172 171 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.16bitstorage_Error-int.frag.out b/deps/glslang/Test/baseResults/spv.16bitstorage_Error-int.frag.out deleted file mode 100644 index d6a0c132..00000000 --- a/deps/glslang/Test/baseResults/spv.16bitstorage_Error-int.frag.out +++ /dev/null @@ -1,91 +0,0 @@ -spv.16bitstorage_Error-int.frag -ERROR: 0:54: 'structure: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:58: 'return: can't use with structs containing int16' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:61: 'int16_t: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:74: '[: does not operate on types containing (u)int16' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:75: '.: can't swizzle types containing (u)int16' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:76: 'built-in function: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:76: 'built-in function: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:76: 'built-in function: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:77: 'built-in function: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:77: 'built-in function: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:78: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform int16_t' and a right operand of type 'layout( column_major std140 offset=0) uniform int16_t' (or there is no acceptable conversion) -ERROR: 0:79: '-' : wrong operand type no operation '-' exists that takes an operand of type layout( column_major std140 offset=0) uniform int16_t (or there is no acceptable conversion) -ERROR: 0:80: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform int16_t' and a right operand of type ' const int' (or there is no acceptable conversion) -ERROR: 0:81: '.: can't swizzle types containing (u)int16' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:82: '=: can't use with structs containing int16' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:83: 'qualifier: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:84: 'qualifier: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:85: 'qualifier: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:86: '==' : wrong operand types: no operation '==' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform int16_t' and a right operand of type 'layout( column_major std140 offset=0) uniform int16_t' (or there is no acceptable conversion) -ERROR: 0:87: '=: can't use with arrays containing int16' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:88: 'constructor: 16-bit vectors only take vector types' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:89: 'constructor: 16-bit arrays not supported' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:89: 'constructor: 16-bit vectors only take vector types' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:92: 'constructor: can't construct structure containing 16-bit type' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:93: 'func2' : no matching overloaded function found -ERROR: 0:99: '' : syntax error, unexpected IDENTIFIER -ERROR: 26 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.16bitstorage_Error-uint.frag.out b/deps/glslang/Test/baseResults/spv.16bitstorage_Error-uint.frag.out deleted file mode 100644 index bac902ee..00000000 --- a/deps/glslang/Test/baseResults/spv.16bitstorage_Error-uint.frag.out +++ /dev/null @@ -1,91 +0,0 @@ -spv.16bitstorage_Error-uint.frag -ERROR: 0:54: 'structure: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:58: 'return: can't use with structs containing uint16' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:61: 'uint16_t: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:74: '[: does not operate on types containing (u)int16' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:75: '.: can't swizzle types containing (u)int16' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:76: 'built-in function: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:76: 'built-in function: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:76: 'built-in function: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:77: 'built-in function: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:77: 'built-in function: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:78: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform uint16_t' and a right operand of type 'layout( column_major std140 offset=0) uniform uint16_t' (or there is no acceptable conversion) -ERROR: 0:79: '-' : wrong operand type no operation '-' exists that takes an operand of type layout( column_major std140 offset=0) uniform uint16_t (or there is no acceptable conversion) -ERROR: 0:80: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform uint16_t' and a right operand of type ' const int' (or there is no acceptable conversion) -ERROR: 0:81: '.: can't swizzle types containing (u)int16' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:82: '=: can't use with structs containing uint16' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:83: 'qualifier: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:84: 'qualifier: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:85: 'qualifier: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:86: '==' : wrong operand types: no operation '==' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform uint16_t' and a right operand of type 'layout( column_major std140 offset=0) uniform uint16_t' (or there is no acceptable conversion) -ERROR: 0:87: '=: can't use with arrays containing uint16' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:88: 'constructor: 16-bit vectors only take vector types' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:89: 'constructor: 16-bit arrays not supported' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:89: 'constructor: 16-bit vectors only take vector types' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:92: 'constructor: can't construct structure containing 16-bit type' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_int16 -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int16 -ERROR: 0:93: 'func2' : no matching overloaded function found -ERROR: 0:99: '' : syntax error, unexpected IDENTIFIER -ERROR: 26 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.16bitstorage_Error.frag.out b/deps/glslang/Test/baseResults/spv.16bitstorage_Error.frag.out deleted file mode 100644 index 8e7e35e2..00000000 --- a/deps/glslang/Test/baseResults/spv.16bitstorage_Error.frag.out +++ /dev/null @@ -1,99 +0,0 @@ -spv.16bitstorage_Error.frag -ERROR: 0:54: 'structure: float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_half_float -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_float16 -ERROR: 0:58: 'return: can't use with structs containing float16' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_half_float -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_float16 -ERROR: 0:61: 'float16_t: float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_half_float -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_float16 -ERROR: 0:74: '[: does not operate on types containing float16' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_half_float -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_float16 -ERROR: 0:75: '.: can't swizzle types containing float16' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_half_float -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_float16 -ERROR: 0:76: 'built-in function: float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_half_float -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_float16 -ERROR: 0:76: 'built-in function: float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_half_float -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_float16 -ERROR: 0:76: 'built-in function: float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_half_float -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_float16 -ERROR: 0:77: 'built-in function: float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_half_float -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_float16 -ERROR: 0:77: 'built-in function: float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_half_float -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_float16 -ERROR: 0:78: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform float16_t' and a right operand of type 'layout( column_major std140 offset=0) uniform float16_t' (or there is no acceptable conversion) -ERROR: 0:79: '-' : wrong operand type no operation '-' exists that takes an operand of type layout( column_major std140 offset=0) uniform float16_t (or there is no acceptable conversion) -ERROR: 0:80: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform float16_t' and a right operand of type ' const float' (or there is no acceptable conversion) -ERROR: 0:81: '.: can't swizzle types containing float16' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_half_float -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_float16 -ERROR: 0:82: '=: can't use with structs containing float16' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_half_float -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_float16 -ERROR: 0:83: 'qualifier: float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_half_float -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_float16 -ERROR: 0:84: 'qualifier: float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_half_float -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_float16 -ERROR: 0:85: 'qualifier: float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_half_float -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_float16 -ERROR: 0:86: '==' : wrong operand types: no operation '==' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform float16_t' and a right operand of type 'layout( column_major std140 offset=0) uniform float16_t' (or there is no acceptable conversion) -ERROR: 0:87: '=: can't use with arrays containing float16' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_half_float -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_float16 -ERROR: 0:88: 'half floating-point suffix' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_half_float -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_float16 -ERROR: 0:88: 'half float literal' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_half_float -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_float16 -ERROR: 0:89: 'constructor: 16-bit vectors only take vector types' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_half_float -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_float16 -ERROR: 0:90: 'constructor: 16-bit arrays not supported' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_half_float -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_float16 -ERROR: 0:90: 'constructor: 16-bit vectors only take vector types' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_half_float -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_float16 -ERROR: 0:93: 'constructor: can't construct structure containing 16-bit type' : required extension not requested: Possible extensions include: -GL_AMD_gpu_shader_half_float -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_float16 -ERROR: 0:94: 'func2' : no matching overloaded function found -ERROR: 0:100: '' : syntax error, unexpected IDENTIFIER -ERROR: 28 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.16bitxfb.vert.out b/deps/glslang/Test/baseResults/spv.16bitxfb.vert.out deleted file mode 100644 index f4d66efc..00000000 --- a/deps/glslang/Test/baseResults/spv.16bitxfb.vert.out +++ /dev/null @@ -1,120 +0,0 @@ -spv.16bitxfb.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 59 - - Capability Shader - Capability Float16 - Capability Int16 - Capability TransformFeedback - Capability StorageInputOutput16 - Extension "SPV_KHR_16bit_storage" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 9 12 18 36 39 46 49 - ExecutionMode 4 Xfb - Source GLSL 450 - SourceExtension "GL_AMD_gpu_shader_half_float" - SourceExtension "GL_AMD_gpu_shader_int16" - Name 4 "main" - Name 9 "of16v3" - Name 12 "if16v4" - Name 16 "F16Out" - MemberName 16(F16Out) 0 "of16" - MemberName 16(F16Out) 1 "of16v2" - Name 18 "" - Name 36 "oi16v3" - Name 39 "ii16v4" - Name 44 "I16Out" - MemberName 44(I16Out) 0 "ou16" - MemberName 44(I16Out) 1 "ou16v2" - Name 46 "" - Name 49 "iu16v4" - Decorate 9(of16v3) Location 0 - Decorate 9(of16v3) XfbBuffer 0 - Decorate 9(of16v3) XfbStride 6 - Decorate 9(of16v3) Offset 0 - Decorate 12(if16v4) Location 0 - MemberDecorate 16(F16Out) 0 Offset 0 - MemberDecorate 16(F16Out) 1 Offset 2 - Decorate 16(F16Out) Block - Decorate 18 Location 1 - Decorate 18 XfbBuffer 1 - Decorate 18 XfbStride 6 - Decorate 36(oi16v3) Location 5 - Decorate 36(oi16v3) XfbBuffer 2 - Decorate 36(oi16v3) XfbStride 6 - Decorate 36(oi16v3) Offset 0 - Decorate 39(ii16v4) Location 1 - MemberDecorate 44(I16Out) 0 Offset 0 - MemberDecorate 44(I16Out) 1 Offset 2 - Decorate 44(I16Out) Block - Decorate 46 Location 6 - Decorate 46 XfbBuffer 3 - Decorate 46 XfbStride 6 - Decorate 49(iu16v4) Location 2 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 16 - 7: TypeVector 6(float16_t) 3 - 8: TypePointer Output 7(f16vec3) - 9(of16v3): 8(ptr) Variable Output - 10: TypeVector 6(float16_t) 4 - 11: TypePointer Input 10(f16vec4) - 12(if16v4): 11(ptr) Variable Input - 15: TypeVector 6(float16_t) 2 - 16(F16Out): TypeStruct 6(float16_t) 15(f16vec2) - 17: TypePointer Output 16(F16Out) - 18: 17(ptr) Variable Output - 19: TypeInt 32 1 - 20: 19(int) Constant 0 - 21: TypeInt 32 0 - 22: 21(int) Constant 0 - 23: TypePointer Input 6(float16_t) - 26: TypePointer Output 6(float16_t) - 28: 19(int) Constant 1 - 31: TypePointer Output 15(f16vec2) - 33: TypeInt 16 1 - 34: TypeVector 33(int16_t) 3 - 35: TypePointer Output 34(i16vec3) - 36(oi16v3): 35(ptr) Variable Output - 37: TypeVector 33(int16_t) 4 - 38: TypePointer Input 37(i16vec4) - 39(ii16v4): 38(ptr) Variable Input - 42: TypeInt 16 0 - 43: TypeVector 42(int16_t) 2 - 44(I16Out): TypeStruct 42(int16_t) 43(i16vec2) - 45: TypePointer Output 44(I16Out) - 46: 45(ptr) Variable Output - 47: TypeVector 42(int16_t) 4 - 48: TypePointer Input 47(i16vec4) - 49(iu16v4): 48(ptr) Variable Input - 50: TypePointer Input 42(int16_t) - 53: TypePointer Output 42(int16_t) - 57: TypePointer Output 43(i16vec2) - 4(main): 2 Function None 3 - 5: Label - 13: 10(f16vec4) Load 12(if16v4) - 14: 7(f16vec3) VectorShuffle 13 13 0 1 2 - Store 9(of16v3) 14 - 24: 23(ptr) AccessChain 12(if16v4) 22 - 25:6(float16_t) Load 24 - 27: 26(ptr) AccessChain 18 20 - Store 27 25 - 29: 10(f16vec4) Load 12(if16v4) - 30: 15(f16vec2) VectorShuffle 29 29 0 1 - 32: 31(ptr) AccessChain 18 28 - Store 32 30 - 40: 37(i16vec4) Load 39(ii16v4) - 41: 34(i16vec3) VectorShuffle 40 40 0 1 2 - Store 36(oi16v3) 41 - 51: 50(ptr) AccessChain 49(iu16v4) 22 - 52: 42(int16_t) Load 51 - 54: 53(ptr) AccessChain 46 20 - Store 54 52 - 55: 47(i16vec4) Load 49(iu16v4) - 56: 43(i16vec2) VectorShuffle 55 55 0 1 - 58: 57(ptr) AccessChain 46 28 - Store 58 56 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.300BuiltIns.vert.out b/deps/glslang/Test/baseResults/spv.300BuiltIns.vert.out deleted file mode 100644 index 22017880..00000000 --- a/deps/glslang/Test/baseResults/spv.300BuiltIns.vert.out +++ /dev/null @@ -1,74 +0,0 @@ -spv.300BuiltIns.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 42 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 10 14 21 34 - Source ESSL 310 - Name 4 "main" - Name 8 "gl_PerVertex" - MemberName 8(gl_PerVertex) 0 "gl_Position" - MemberName 8(gl_PerVertex) 1 "gl_PointSize" - Name 10 "" - Name 14 "ps" - Name 21 "gl_VertexIndex" - Name 34 "gl_InstanceIndex" - MemberDecorate 8(gl_PerVertex) 0 Invariant - MemberDecorate 8(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 8(gl_PerVertex) 1 BuiltIn PointSize - Decorate 8(gl_PerVertex) Block - Decorate 14(ps) RelaxedPrecision - Decorate 14(ps) Location 0 - Decorate 15 RelaxedPrecision - Decorate 21(gl_VertexIndex) BuiltIn VertexIndex - Decorate 30 RelaxedPrecision - Decorate 34(gl_InstanceIndex) BuiltIn InstanceIndex - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8(gl_PerVertex): TypeStruct 7(fvec4) 6(float) - 9: TypePointer Output 8(gl_PerVertex) - 10: 9(ptr) Variable Output - 11: TypeInt 32 1 - 12: 11(int) Constant 0 - 13: TypePointer Input 6(float) - 14(ps): 13(ptr) Variable Input - 17: TypePointer Output 7(fvec4) - 19: 11(int) Constant 4 - 20: TypePointer Input 11(int) -21(gl_VertexIndex): 20(ptr) Variable Input - 29: 11(int) Constant 1 - 31: TypePointer Output 6(float) - 33: 11(int) Constant 5 -34(gl_InstanceIndex): 20(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 15: 6(float) Load 14(ps) - 16: 7(fvec4) CompositeConstruct 15 15 15 15 - 18: 17(ptr) AccessChain 10 12 - Store 18 16 - 22: 11(int) Load 21(gl_VertexIndex) - 23: 11(int) ISub 19 22 - 24: 6(float) ConvertSToF 23 - 25: 17(ptr) AccessChain 10 12 - 26: 7(fvec4) Load 25 - 27: 7(fvec4) VectorTimesScalar 26 24 - 28: 17(ptr) AccessChain 10 12 - Store 28 27 - 30: 6(float) Load 14(ps) - 32: 31(ptr) AccessChain 10 29 - Store 32 30 - 35: 11(int) Load 34(gl_InstanceIndex) - 36: 11(int) ISub 33 35 - 37: 6(float) ConvertSToF 36 - 38: 31(ptr) AccessChain 10 29 - 39: 6(float) Load 38 - 40: 6(float) FMul 39 37 - 41: 31(ptr) AccessChain 10 29 - Store 41 40 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.300layout.frag.out b/deps/glslang/Test/baseResults/spv.300layout.frag.out deleted file mode 100644 index 3b691e2c..00000000 --- a/deps/glslang/Test/baseResults/spv.300layout.frag.out +++ /dev/null @@ -1,76 +0,0 @@ -spv.300layout.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 37 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 9 11 15 26 29 - ExecutionMode 4 OriginUpperLeft - Source ESSL 310 - Name 4 "main" - Name 9 "c" - Name 11 "color" - Name 13 "S" - MemberName 13(S) 0 "c" - MemberName 13(S) 1 "f" - Name 15 "s" - Name 26 "p" - Name 29 "pos" - Decorate 9(c) RelaxedPrecision - Decorate 9(c) Location 7 - Decorate 11(color) RelaxedPrecision - Decorate 11(color) Location 1 - Decorate 12 RelaxedPrecision - MemberDecorate 13(S) 0 RelaxedPrecision - MemberDecorate 13(S) 1 RelaxedPrecision - Decorate 15(s) Location 2 - Decorate 19 RelaxedPrecision - Decorate 20 RelaxedPrecision - Decorate 26(p) RelaxedPrecision - Decorate 26(p) Location 3 - Decorate 29(pos) RelaxedPrecision - Decorate 29(pos) Location 0 - Decorate 30 RelaxedPrecision - Decorate 33 RelaxedPrecision - Decorate 34 RelaxedPrecision - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 3 - 8: TypePointer Output 7(fvec3) - 9(c): 8(ptr) Variable Output - 10: TypePointer Input 7(fvec3) - 11(color): 10(ptr) Variable Input - 13(S): TypeStruct 7(fvec3) 6(float) - 14: TypePointer Input 13(S) - 15(s): 14(ptr) Variable Input - 16: TypeInt 32 1 - 17: 16(int) Constant 0 - 21: TypeVector 6(float) 4 - 22: TypeInt 32 0 - 23: 22(int) Constant 2 - 24: TypeArray 21(fvec4) 23 - 25: TypePointer Output 24 - 26(p): 25(ptr) Variable Output - 27: 16(int) Constant 1 - 28: TypePointer Input 21(fvec4) - 29(pos): 28(ptr) Variable Input - 31: TypePointer Input 6(float) - 35: TypePointer Output 21(fvec4) - 4(main): 2 Function None 3 - 5: Label - 12: 7(fvec3) Load 11(color) - 18: 10(ptr) AccessChain 15(s) 17 - 19: 7(fvec3) Load 18 - 20: 7(fvec3) FAdd 12 19 - Store 9(c) 20 - 30: 21(fvec4) Load 29(pos) - 32: 31(ptr) AccessChain 15(s) 27 - 33: 6(float) Load 32 - 34: 21(fvec4) VectorTimesScalar 30 33 - 36: 35(ptr) AccessChain 26(p) 27 - Store 36 34 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.300layout.vert.out b/deps/glslang/Test/baseResults/spv.300layout.vert.out deleted file mode 100644 index 3db50b06..00000000 --- a/deps/glslang/Test/baseResults/spv.300layout.vert.out +++ /dev/null @@ -1,256 +0,0 @@ -spv.300layout.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 163 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 9 11 98 100 108 114 120 128 - Source ESSL 310 - Name 4 "main" - Name 9 "pos" - Name 11 "p" - Name 17 "Transform" - MemberName 17(Transform) 0 "M1" - MemberName 17(Transform) 1 "M2" - MemberName 17(Transform) 2 "N1" - MemberName 17(Transform) 3 "iuin" - Name 19 "tblock" - Name 45 "T3" - MemberName 45(T3) 0 "M3" - MemberName 45(T3) 1 "M4" - MemberName 45(T3) 2 "N2" - MemberName 45(T3) 3 "uv3a" - Name 47 "" - Name 78 "T2" - MemberName 78(T2) 0 "b" - MemberName 78(T2) 1 "t2m" - Name 80 "" - Name 98 "color" - Name 100 "c" - Name 108 "iout" - Name 114 "uiuin" - Name 120 "aiv2" - Name 126 "S" - MemberName 126(S) 0 "c" - MemberName 126(S) 1 "f" - Name 128 "s" - Decorate 9(pos) Location 0 - Decorate 11(p) Location 3 - MemberDecorate 17(Transform) 0 RowMajor - MemberDecorate 17(Transform) 0 Offset 0 - MemberDecorate 17(Transform) 0 MatrixStride 16 - MemberDecorate 17(Transform) 1 ColMajor - MemberDecorate 17(Transform) 1 Offset 64 - MemberDecorate 17(Transform) 1 MatrixStride 16 - MemberDecorate 17(Transform) 2 RowMajor - MemberDecorate 17(Transform) 2 Offset 128 - MemberDecorate 17(Transform) 2 MatrixStride 16 - MemberDecorate 17(Transform) 3 Offset 176 - Decorate 17(Transform) Block - Decorate 19(tblock) DescriptorSet 0 - Decorate 19(tblock) Binding 0 - Decorate 44 ArrayStride 16 - MemberDecorate 45(T3) 0 ColMajor - MemberDecorate 45(T3) 0 Offset 0 - MemberDecorate 45(T3) 0 MatrixStride 16 - MemberDecorate 45(T3) 1 RowMajor - MemberDecorate 45(T3) 1 Offset 64 - MemberDecorate 45(T3) 1 MatrixStride 16 - MemberDecorate 45(T3) 2 ColMajor - MemberDecorate 45(T3) 2 Offset 128 - MemberDecorate 45(T3) 2 MatrixStride 16 - MemberDecorate 45(T3) 3 Offset 2048 - Decorate 45(T3) Block - Decorate 47 DescriptorSet 0 - Decorate 47 Binding 2 - MemberDecorate 78(T2) 0 Offset 0 - MemberDecorate 78(T2) 1 RowMajor - MemberDecorate 78(T2) 1 Offset 16 - MemberDecorate 78(T2) 1 MatrixStride 16 - Decorate 78(T2) Block - Decorate 80 DescriptorSet 0 - Decorate 80 Binding 1 - Decorate 98(color) Location 1 - Decorate 100(c) Location 7 - Decorate 108(iout) Flat - Decorate 108(iout) Location 2 - Decorate 114(uiuin) Location 0 - Decorate 120(aiv2) Location 9 - Decorate 128(s) Location 3 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) - 9(pos): 8(ptr) Variable Output - 10: TypePointer Input 7(fvec4) - 11(p): 10(ptr) Variable Input - 13: TypeMatrix 7(fvec4) 4 - 14: TypeVector 6(float) 3 - 15: TypeMatrix 14(fvec3) 3 - 16: TypeInt 32 1 - 17(Transform): TypeStruct 13 13 15 16(int) - 18: TypePointer Uniform 17(Transform) - 19(tblock): 18(ptr) Variable Uniform - 20: 16(int) Constant 0 - 21: TypePointer Uniform 13 - 24: 16(int) Constant 1 - 40: TypeMatrix 14(fvec3) 2 - 41: TypeInt 32 0 - 42: TypeVector 41(int) 3 - 43: 41(int) Constant 4 - 44: TypeArray 42(ivec3) 43 - 45(T3): TypeStruct 13 13 40 44 - 46: TypePointer Uniform 45(T3) - 47: 46(ptr) Variable Uniform - 78(T2): TypeStruct 41(int) 13 - 79: TypePointer Uniform 78(T2) - 80: 79(ptr) Variable Uniform - 97: TypePointer Output 14(fvec3) - 98(color): 97(ptr) Variable Output - 99: TypePointer Input 14(fvec3) - 100(c): 99(ptr) Variable Input - 102: 16(int) Constant 2 - 103: TypePointer Uniform 15 - 107: TypePointer Output 16(int) - 108(iout): 107(ptr) Variable Output - 109: 16(int) Constant 3 - 110: TypePointer Uniform 16(int) - 113: TypePointer Input 41(int) - 114(uiuin): 113(ptr) Variable Input - 118: TypeVector 16(int) 2 - 119: TypePointer Input 118(ivec2) - 120(aiv2): 119(ptr) Variable Input - 121: 41(int) Constant 1 - 122: TypePointer Input 16(int) - 126(S): TypeStruct 14(fvec3) 6(float) - 127: TypePointer Output 126(S) - 128(s): 127(ptr) Variable Output - 131: 41(int) Constant 0 - 132: TypePointer Input 6(float) - 135: TypePointer Output 6(float) - 137: TypeBool - 138: TypePointer Uniform 14(fvec3) - 141: 6(float) Constant 1065353216 - 142: 14(fvec3) ConstantComposite 141 141 141 - 143: TypeVector 137(bool) 3 - 149: TypePointer Uniform 42(ivec3) - 152: 41(int) Constant 5 - 153: 42(ivec3) ConstantComposite 152 152 152 - 4(main): 2 Function None 3 - 5: Label - 12: 7(fvec4) Load 11(p) - 22: 21(ptr) AccessChain 19(tblock) 20 - 23: 13 Load 22 - 25: 21(ptr) AccessChain 19(tblock) 24 - 26: 13 Load 25 - 27: 7(fvec4) CompositeExtract 23 0 - 28: 7(fvec4) CompositeExtract 26 0 - 29: 7(fvec4) FAdd 27 28 - 30: 7(fvec4) CompositeExtract 23 1 - 31: 7(fvec4) CompositeExtract 26 1 - 32: 7(fvec4) FAdd 30 31 - 33: 7(fvec4) CompositeExtract 23 2 - 34: 7(fvec4) CompositeExtract 26 2 - 35: 7(fvec4) FAdd 33 34 - 36: 7(fvec4) CompositeExtract 23 3 - 37: 7(fvec4) CompositeExtract 26 3 - 38: 7(fvec4) FAdd 36 37 - 39: 13 CompositeConstruct 29 32 35 38 - 48: 21(ptr) AccessChain 47 24 - 49: 13 Load 48 - 50: 7(fvec4) CompositeExtract 39 0 - 51: 7(fvec4) CompositeExtract 49 0 - 52: 7(fvec4) FAdd 50 51 - 53: 7(fvec4) CompositeExtract 39 1 - 54: 7(fvec4) CompositeExtract 49 1 - 55: 7(fvec4) FAdd 53 54 - 56: 7(fvec4) CompositeExtract 39 2 - 57: 7(fvec4) CompositeExtract 49 2 - 58: 7(fvec4) FAdd 56 57 - 59: 7(fvec4) CompositeExtract 39 3 - 60: 7(fvec4) CompositeExtract 49 3 - 61: 7(fvec4) FAdd 59 60 - 62: 13 CompositeConstruct 52 55 58 61 - 63: 21(ptr) AccessChain 47 20 - 64: 13 Load 63 - 65: 7(fvec4) CompositeExtract 62 0 - 66: 7(fvec4) CompositeExtract 64 0 - 67: 7(fvec4) FAdd 65 66 - 68: 7(fvec4) CompositeExtract 62 1 - 69: 7(fvec4) CompositeExtract 64 1 - 70: 7(fvec4) FAdd 68 69 - 71: 7(fvec4) CompositeExtract 62 2 - 72: 7(fvec4) CompositeExtract 64 2 - 73: 7(fvec4) FAdd 71 72 - 74: 7(fvec4) CompositeExtract 62 3 - 75: 7(fvec4) CompositeExtract 64 3 - 76: 7(fvec4) FAdd 74 75 - 77: 13 CompositeConstruct 67 70 73 76 - 81: 21(ptr) AccessChain 80 24 - 82: 13 Load 81 - 83: 7(fvec4) CompositeExtract 77 0 - 84: 7(fvec4) CompositeExtract 82 0 - 85: 7(fvec4) FAdd 83 84 - 86: 7(fvec4) CompositeExtract 77 1 - 87: 7(fvec4) CompositeExtract 82 1 - 88: 7(fvec4) FAdd 86 87 - 89: 7(fvec4) CompositeExtract 77 2 - 90: 7(fvec4) CompositeExtract 82 2 - 91: 7(fvec4) FAdd 89 90 - 92: 7(fvec4) CompositeExtract 77 3 - 93: 7(fvec4) CompositeExtract 82 3 - 94: 7(fvec4) FAdd 92 93 - 95: 13 CompositeConstruct 85 88 91 94 - 96: 7(fvec4) VectorTimesMatrix 12 95 - Store 9(pos) 96 - 101: 14(fvec3) Load 100(c) - 104: 103(ptr) AccessChain 19(tblock) 102 - 105: 15 Load 104 - 106: 14(fvec3) VectorTimesMatrix 101 105 - Store 98(color) 106 - 111: 110(ptr) AccessChain 19(tblock) 109 - 112: 16(int) Load 111 - 115: 41(int) Load 114(uiuin) - 116: 16(int) Bitcast 115 - 117: 16(int) IAdd 112 116 - 123: 122(ptr) AccessChain 120(aiv2) 121 - 124: 16(int) Load 123 - 125: 16(int) IAdd 117 124 - Store 108(iout) 125 - 129: 14(fvec3) Load 100(c) - 130: 97(ptr) AccessChain 128(s) 20 - Store 130 129 - 133: 132(ptr) AccessChain 11(p) 131 - 134: 6(float) Load 133 - 136: 135(ptr) AccessChain 128(s) 24 - Store 136 134 - 139: 138(ptr) AccessChain 47 102 24 - 140: 14(fvec3) Load 139 - 144: 143(bvec3) FUnordNotEqual 140 142 - 145: 137(bool) Any 144 - 146: 137(bool) LogicalNot 145 - SelectionMerge 148 None - BranchConditional 146 147 148 - 147: Label - 150: 149(ptr) AccessChain 47 109 102 - 151: 42(ivec3) Load 150 - 154: 143(bvec3) INotEqual 151 153 - 155: 137(bool) Any 154 - Branch 148 - 148: Label - 156: 137(bool) Phi 145 5 155 147 - SelectionMerge 158 None - BranchConditional 156 157 158 - 157: Label - 159: 97(ptr) AccessChain 128(s) 20 - 160: 14(fvec3) Load 159 - 161: 14(fvec3) CompositeConstruct 141 141 141 - 162: 14(fvec3) FAdd 160 161 - Store 159 162 - Branch 158 - 158: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.300layoutp.vert.out b/deps/glslang/Test/baseResults/spv.300layoutp.vert.out deleted file mode 100644 index 315605d4..00000000 --- a/deps/glslang/Test/baseResults/spv.300layoutp.vert.out +++ /dev/null @@ -1,207 +0,0 @@ -spv.300layoutp.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 115 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 9 11 50 52 60 72 80 - Source ESSL 310 - Name 4 "main" - Name 9 "pos" - Name 11 "p" - Name 17 "Transform" - MemberName 17(Transform) 0 "M1" - MemberName 17(Transform) 1 "M2" - MemberName 17(Transform) 2 "N1" - MemberName 17(Transform) 3 "iuin" - Name 19 "tblock" - Name 33 "T3" - MemberName 33(T3) 0 "M3" - MemberName 33(T3) 1 "M4" - MemberName 33(T3) 2 "N2" - MemberName 33(T3) 3 "uv3a" - Name 35 "" - Name 42 "T2" - MemberName 42(T2) 0 "b" - MemberName 42(T2) 1 "t2m" - Name 44 "" - Name 50 "color" - Name 52 "c" - Name 60 "iout" - Name 66 "uiuin" - Name 72 "aiv2" - Name 78 "S" - MemberName 78(S) 0 "c" - MemberName 78(S) 1 "f" - Name 80 "s" - Decorate 9(pos) Location 0 - Decorate 11(p) Location 3 - MemberDecorate 17(Transform) 0 RowMajor - MemberDecorate 17(Transform) 0 Offset 0 - MemberDecorate 17(Transform) 0 MatrixStride 16 - MemberDecorate 17(Transform) 1 ColMajor - MemberDecorate 17(Transform) 1 Offset 64 - MemberDecorate 17(Transform) 1 MatrixStride 16 - MemberDecorate 17(Transform) 2 RowMajor - MemberDecorate 17(Transform) 2 Offset 128 - MemberDecorate 17(Transform) 2 MatrixStride 16 - MemberDecorate 17(Transform) 3 Offset 176 - Decorate 17(Transform) Block - Decorate 19(tblock) DescriptorSet 0 - Decorate 19(tblock) Binding 0 - Decorate 32 ArrayStride 16 - MemberDecorate 33(T3) 0 ColMajor - MemberDecorate 33(T3) 0 Offset 0 - MemberDecorate 33(T3) 0 MatrixStride 16 - MemberDecorate 33(T3) 1 RowMajor - MemberDecorate 33(T3) 1 Offset 64 - MemberDecorate 33(T3) 1 MatrixStride 16 - MemberDecorate 33(T3) 2 ColMajor - MemberDecorate 33(T3) 2 Offset 128 - MemberDecorate 33(T3) 2 MatrixStride 16 - MemberDecorate 33(T3) 3 Offset 160 - Decorate 33(T3) Block - Decorate 35 DescriptorSet 0 - Decorate 35 Binding 2 - MemberDecorate 42(T2) 0 Offset 0 - MemberDecorate 42(T2) 1 RowMajor - MemberDecorate 42(T2) 1 Offset 16 - MemberDecorate 42(T2) 1 MatrixStride 16 - Decorate 42(T2) Block - Decorate 44 DescriptorSet 0 - Decorate 44 Binding 1 - Decorate 50(color) Location 1 - Decorate 52(c) Location 7 - Decorate 60(iout) Flat - Decorate 60(iout) Location 2 - Decorate 72(aiv2) Location 9 - Decorate 80(s) Location 3 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) - 9(pos): 8(ptr) Variable Output - 10: TypePointer Input 7(fvec4) - 11(p): 10(ptr) Variable Input - 13: TypeMatrix 7(fvec4) 4 - 14: TypeVector 6(float) 3 - 15: TypeMatrix 14(fvec3) 3 - 16: TypeInt 32 1 - 17(Transform): TypeStruct 13 13 15 16(int) - 18: TypePointer Uniform 17(Transform) - 19(tblock): 18(ptr) Variable Uniform - 20: 16(int) Constant 0 - 21: TypePointer Uniform 13 - 24: 16(int) Constant 1 - 28: TypeMatrix 14(fvec3) 2 - 29: TypeInt 32 0 - 30: TypeVector 29(int) 3 - 31: 29(int) Constant 4 - 32: TypeArray 30(ivec3) 31 - 33(T3): TypeStruct 13 13 28 32 - 34: TypePointer Uniform 33(T3) - 35: 34(ptr) Variable Uniform - 42(T2): TypeStruct 29(int) 13 - 43: TypePointer Uniform 42(T2) - 44: 43(ptr) Variable Uniform - 49: TypePointer Output 14(fvec3) - 50(color): 49(ptr) Variable Output - 51: TypePointer Input 14(fvec3) - 52(c): 51(ptr) Variable Input - 54: 16(int) Constant 2 - 55: TypePointer Uniform 15 - 59: TypePointer Output 16(int) - 60(iout): 59(ptr) Variable Output - 61: 16(int) Constant 3 - 62: TypePointer Uniform 16(int) - 65: TypePointer Private 29(int) - 66(uiuin): 65(ptr) Variable Private - 70: TypeVector 16(int) 2 - 71: TypePointer Input 70(ivec2) - 72(aiv2): 71(ptr) Variable Input - 73: 29(int) Constant 1 - 74: TypePointer Input 16(int) - 78(S): TypeStruct 14(fvec3) 6(float) - 79: TypePointer Output 78(S) - 80(s): 79(ptr) Variable Output - 83: 29(int) Constant 0 - 84: TypePointer Input 6(float) - 87: TypePointer Output 6(float) - 89: TypeBool - 90: TypePointer Uniform 14(fvec3) - 93: 6(float) Constant 1065353216 - 94: 14(fvec3) ConstantComposite 93 93 93 - 95: TypeVector 89(bool) 3 - 101: TypePointer Uniform 30(ivec3) - 104: 29(int) Constant 5 - 105: 30(ivec3) ConstantComposite 104 104 104 - 4(main): 2 Function None 3 - 5: Label - 12: 7(fvec4) Load 11(p) - 22: 21(ptr) AccessChain 19(tblock) 20 - 23: 13 Load 22 - 25: 21(ptr) AccessChain 19(tblock) 24 - 26: 13 Load 25 - 27: 13 MatrixTimesMatrix 23 26 - 36: 21(ptr) AccessChain 35 24 - 37: 13 Load 36 - 38: 13 MatrixTimesMatrix 27 37 - 39: 21(ptr) AccessChain 35 20 - 40: 13 Load 39 - 41: 13 MatrixTimesMatrix 38 40 - 45: 21(ptr) AccessChain 44 24 - 46: 13 Load 45 - 47: 13 MatrixTimesMatrix 41 46 - 48: 7(fvec4) VectorTimesMatrix 12 47 - Store 9(pos) 48 - 53: 14(fvec3) Load 52(c) - 56: 55(ptr) AccessChain 19(tblock) 54 - 57: 15 Load 56 - 58: 14(fvec3) VectorTimesMatrix 53 57 - Store 50(color) 58 - 63: 62(ptr) AccessChain 19(tblock) 61 - 64: 16(int) Load 63 - 67: 29(int) Load 66(uiuin) - 68: 16(int) Bitcast 67 - 69: 16(int) IAdd 64 68 - 75: 74(ptr) AccessChain 72(aiv2) 73 - 76: 16(int) Load 75 - 77: 16(int) IAdd 69 76 - Store 60(iout) 77 - 81: 14(fvec3) Load 52(c) - 82: 49(ptr) AccessChain 80(s) 20 - Store 82 81 - 85: 84(ptr) AccessChain 11(p) 83 - 86: 6(float) Load 85 - 88: 87(ptr) AccessChain 80(s) 24 - Store 88 86 - 91: 90(ptr) AccessChain 35 54 24 - 92: 14(fvec3) Load 91 - 96: 95(bvec3) FUnordNotEqual 92 94 - 97: 89(bool) Any 96 - 98: 89(bool) LogicalNot 97 - SelectionMerge 100 None - BranchConditional 98 99 100 - 99: Label - 102: 101(ptr) AccessChain 35 61 54 - 103: 30(ivec3) Load 102 - 106: 95(bvec3) INotEqual 103 105 - 107: 89(bool) Any 106 - Branch 100 - 100: Label - 108: 89(bool) Phi 97 5 107 99 - SelectionMerge 110 None - BranchConditional 108 109 110 - 109: Label - 111: 49(ptr) AccessChain 80(s) 20 - 112: 14(fvec3) Load 111 - 113: 14(fvec3) CompositeConstruct 93 93 93 - 114: 14(fvec3) FAdd 112 113 - Store 111 114 - Branch 110 - 110: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.310.bitcast.frag.out b/deps/glslang/Test/baseResults/spv.310.bitcast.frag.out deleted file mode 100644 index f4322abc..00000000 --- a/deps/glslang/Test/baseResults/spv.310.bitcast.frag.out +++ /dev/null @@ -1,278 +0,0 @@ -spv.310.bitcast.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 179 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 14 26 40 56 103 112 123 136 142 150 161 174 - ExecutionMode 4 OriginUpperLeft - Source ESSL 310 - Name 4 "main" - Name 9 "idata" - Name 14 "f1" - Name 26 "f2" - Name 40 "f3" - Name 56 "f4" - Name 63 "udata" - Name 99 "fdata" - Name 103 "i1" - Name 112 "i2" - Name 123 "i3" - Name 136 "i4" - Name 142 "u1" - Name 150 "u2" - Name 161 "u3" - Name 174 "u4" - Decorate 14(f1) RelaxedPrecision - Decorate 14(f1) Location 8 - Decorate 15 RelaxedPrecision - Decorate 26(f2) RelaxedPrecision - Decorate 26(f2) Location 9 - Decorate 27 RelaxedPrecision - Decorate 40(f3) RelaxedPrecision - Decorate 40(f3) Location 10 - Decorate 41 RelaxedPrecision - Decorate 56(f4) Location 11 - Decorate 65 RelaxedPrecision - Decorate 72 RelaxedPrecision - Decorate 82 RelaxedPrecision - Decorate 103(i1) RelaxedPrecision - Decorate 103(i1) Flat - Decorate 103(i1) Location 0 - Decorate 104 RelaxedPrecision - Decorate 112(i2) RelaxedPrecision - Decorate 112(i2) Flat - Decorate 112(i2) Location 1 - Decorate 113 RelaxedPrecision - Decorate 123(i3) RelaxedPrecision - Decorate 123(i3) Flat - Decorate 123(i3) Location 2 - Decorate 124 RelaxedPrecision - Decorate 136(i4) Flat - Decorate 136(i4) Location 3 - Decorate 142(u1) RelaxedPrecision - Decorate 142(u1) Flat - Decorate 142(u1) Location 4 - Decorate 143 RelaxedPrecision - Decorate 150(u2) RelaxedPrecision - Decorate 150(u2) Flat - Decorate 150(u2) Location 5 - Decorate 151 RelaxedPrecision - Decorate 161(u3) RelaxedPrecision - Decorate 161(u3) Flat - Decorate 161(u3) Location 6 - Decorate 162 RelaxedPrecision - Decorate 174(u4) Flat - Decorate 174(u4) Location 7 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypeVector 6(int) 4 - 8: TypePointer Function 7(ivec4) - 10: 6(int) Constant 0 - 11: 7(ivec4) ConstantComposite 10 10 10 10 - 12: TypeFloat 32 - 13: TypePointer Input 12(float) - 14(f1): 13(ptr) Variable Input - 17: TypeInt 32 0 - 18: 17(int) Constant 0 - 19: TypePointer Function 6(int) - 24: TypeVector 12(float) 2 - 25: TypePointer Input 24(fvec2) - 26(f2): 25(ptr) Variable Input - 28: TypeVector 6(int) 2 - 35: 17(int) Constant 1 - 38: TypeVector 12(float) 3 - 39: TypePointer Input 38(fvec3) - 40(f3): 39(ptr) Variable Input - 42: TypeVector 6(int) 3 - 51: 17(int) Constant 2 - 54: TypeVector 12(float) 4 - 55: TypePointer Input 54(fvec4) - 56(f4): 55(ptr) Variable Input - 61: TypeVector 17(int) 4 - 62: TypePointer Function 61(ivec4) - 64: 61(ivec4) ConstantComposite 18 18 18 18 - 67: TypePointer Function 17(int) - 73: TypeVector 17(int) 2 - 83: TypeVector 17(int) 3 - 98: TypePointer Function 54(fvec4) - 100: 12(float) Constant 0 - 101: 54(fvec4) ConstantComposite 100 100 100 100 - 102: TypePointer Input 6(int) - 103(i1): 102(ptr) Variable Input - 106: TypePointer Function 12(float) - 111: TypePointer Input 28(ivec2) - 112(i2): 111(ptr) Variable Input - 122: TypePointer Input 42(ivec3) - 123(i3): 122(ptr) Variable Input - 135: TypePointer Input 7(ivec4) - 136(i4): 135(ptr) Variable Input - 141: TypePointer Input 17(int) - 142(u1): 141(ptr) Variable Input - 149: TypePointer Input 73(ivec2) - 150(u2): 149(ptr) Variable Input - 160: TypePointer Input 83(ivec3) - 161(u3): 160(ptr) Variable Input - 173: TypePointer Input 61(ivec4) - 174(u4): 173(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 9(idata): 8(ptr) Variable Function - 63(udata): 62(ptr) Variable Function - 99(fdata): 98(ptr) Variable Function - Store 9(idata) 11 - 15: 12(float) Load 14(f1) - 16: 6(int) Bitcast 15 - 20: 19(ptr) AccessChain 9(idata) 18 - 21: 6(int) Load 20 - 22: 6(int) IAdd 21 16 - 23: 19(ptr) AccessChain 9(idata) 18 - Store 23 22 - 27: 24(fvec2) Load 26(f2) - 29: 28(ivec2) Bitcast 27 - 30: 7(ivec4) Load 9(idata) - 31: 28(ivec2) VectorShuffle 30 30 0 1 - 32: 28(ivec2) IAdd 31 29 - 33: 19(ptr) AccessChain 9(idata) 18 - 34: 6(int) CompositeExtract 32 0 - Store 33 34 - 36: 19(ptr) AccessChain 9(idata) 35 - 37: 6(int) CompositeExtract 32 1 - Store 36 37 - 41: 38(fvec3) Load 40(f3) - 43: 42(ivec3) Bitcast 41 - 44: 7(ivec4) Load 9(idata) - 45: 42(ivec3) VectorShuffle 44 44 0 1 2 - 46: 42(ivec3) IAdd 45 43 - 47: 19(ptr) AccessChain 9(idata) 18 - 48: 6(int) CompositeExtract 46 0 - Store 47 48 - 49: 19(ptr) AccessChain 9(idata) 35 - 50: 6(int) CompositeExtract 46 1 - Store 49 50 - 52: 19(ptr) AccessChain 9(idata) 51 - 53: 6(int) CompositeExtract 46 2 - Store 52 53 - 57: 54(fvec4) Load 56(f4) - 58: 7(ivec4) Bitcast 57 - 59: 7(ivec4) Load 9(idata) - 60: 7(ivec4) IAdd 59 58 - Store 9(idata) 60 - Store 63(udata) 64 - 65: 12(float) Load 14(f1) - 66: 17(int) Bitcast 65 - 68: 67(ptr) AccessChain 63(udata) 18 - 69: 17(int) Load 68 - 70: 17(int) IAdd 69 66 - 71: 67(ptr) AccessChain 63(udata) 18 - Store 71 70 - 72: 24(fvec2) Load 26(f2) - 74: 73(ivec2) Bitcast 72 - 75: 61(ivec4) Load 63(udata) - 76: 73(ivec2) VectorShuffle 75 75 0 1 - 77: 73(ivec2) IAdd 76 74 - 78: 67(ptr) AccessChain 63(udata) 18 - 79: 17(int) CompositeExtract 77 0 - Store 78 79 - 80: 67(ptr) AccessChain 63(udata) 35 - 81: 17(int) CompositeExtract 77 1 - Store 80 81 - 82: 38(fvec3) Load 40(f3) - 84: 83(ivec3) Bitcast 82 - 85: 61(ivec4) Load 63(udata) - 86: 83(ivec3) VectorShuffle 85 85 0 1 2 - 87: 83(ivec3) IAdd 86 84 - 88: 67(ptr) AccessChain 63(udata) 18 - 89: 17(int) CompositeExtract 87 0 - Store 88 89 - 90: 67(ptr) AccessChain 63(udata) 35 - 91: 17(int) CompositeExtract 87 1 - Store 90 91 - 92: 67(ptr) AccessChain 63(udata) 51 - 93: 17(int) CompositeExtract 87 2 - Store 92 93 - 94: 54(fvec4) Load 56(f4) - 95: 61(ivec4) Bitcast 94 - 96: 61(ivec4) Load 63(udata) - 97: 61(ivec4) IAdd 96 95 - Store 63(udata) 97 - Store 99(fdata) 101 - 104: 6(int) Load 103(i1) - 105: 12(float) Bitcast 104 - 107: 106(ptr) AccessChain 99(fdata) 18 - 108: 12(float) Load 107 - 109: 12(float) FAdd 108 105 - 110: 106(ptr) AccessChain 99(fdata) 18 - Store 110 109 - 113: 28(ivec2) Load 112(i2) - 114: 24(fvec2) Bitcast 113 - 115: 54(fvec4) Load 99(fdata) - 116: 24(fvec2) VectorShuffle 115 115 0 1 - 117: 24(fvec2) FAdd 116 114 - 118: 106(ptr) AccessChain 99(fdata) 18 - 119: 12(float) CompositeExtract 117 0 - Store 118 119 - 120: 106(ptr) AccessChain 99(fdata) 35 - 121: 12(float) CompositeExtract 117 1 - Store 120 121 - 124: 42(ivec3) Load 123(i3) - 125: 38(fvec3) Bitcast 124 - 126: 54(fvec4) Load 99(fdata) - 127: 38(fvec3) VectorShuffle 126 126 0 1 2 - 128: 38(fvec3) FAdd 127 125 - 129: 106(ptr) AccessChain 99(fdata) 18 - 130: 12(float) CompositeExtract 128 0 - Store 129 130 - 131: 106(ptr) AccessChain 99(fdata) 35 - 132: 12(float) CompositeExtract 128 1 - Store 131 132 - 133: 106(ptr) AccessChain 99(fdata) 51 - 134: 12(float) CompositeExtract 128 2 - Store 133 134 - 137: 7(ivec4) Load 136(i4) - 138: 54(fvec4) Bitcast 137 - 139: 54(fvec4) Load 99(fdata) - 140: 54(fvec4) FAdd 139 138 - Store 99(fdata) 140 - 143: 17(int) Load 142(u1) - 144: 12(float) Bitcast 143 - 145: 106(ptr) AccessChain 99(fdata) 18 - 146: 12(float) Load 145 - 147: 12(float) FAdd 146 144 - 148: 106(ptr) AccessChain 99(fdata) 18 - Store 148 147 - 151: 73(ivec2) Load 150(u2) - 152: 24(fvec2) Bitcast 151 - 153: 54(fvec4) Load 99(fdata) - 154: 24(fvec2) VectorShuffle 153 153 0 1 - 155: 24(fvec2) FAdd 154 152 - 156: 106(ptr) AccessChain 99(fdata) 18 - 157: 12(float) CompositeExtract 155 0 - Store 156 157 - 158: 106(ptr) AccessChain 99(fdata) 35 - 159: 12(float) CompositeExtract 155 1 - Store 158 159 - 162: 83(ivec3) Load 161(u3) - 163: 38(fvec3) Bitcast 162 - 164: 54(fvec4) Load 99(fdata) - 165: 38(fvec3) VectorShuffle 164 164 0 1 2 - 166: 38(fvec3) FAdd 165 163 - 167: 106(ptr) AccessChain 99(fdata) 18 - 168: 12(float) CompositeExtract 166 0 - Store 167 168 - 169: 106(ptr) AccessChain 99(fdata) 35 - 170: 12(float) CompositeExtract 166 1 - Store 169 170 - 171: 106(ptr) AccessChain 99(fdata) 51 - 172: 12(float) CompositeExtract 166 2 - Store 171 172 - 175: 61(ivec4) Load 174(u4) - 176: 54(fvec4) Bitcast 175 - 177: 54(fvec4) Load 99(fdata) - 178: 54(fvec4) FAdd 177 176 - Store 99(fdata) 178 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.310.comp.out b/deps/glslang/Test/baseResults/spv.310.comp.out deleted file mode 100644 index 931d0380..00000000 --- a/deps/glslang/Test/baseResults/spv.310.comp.out +++ /dev/null @@ -1,137 +0,0 @@ -spv.310.comp -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 72 - - Capability Shader - Capability DeviceGroup - Extension "SPV_KHR_device_group" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 53 65 - 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 65 "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 - Decorate 14(outbname) Binding 0 - MemberDecorate 23(outbna) 0 Offset 0 - MemberDecorate 23(outbna) 1 Offset 16 - Decorate 23(outbna) BufferBlock - Decorate 25(outbnamena) DescriptorSet 0 - Decorate 25(outbnamena) Binding 1 - 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 50(outnames) Binding 2 - Decorate 53(gl_LocalInvocationID) BuiltIn LocalInvocationId - Decorate 65(gl_DeviceIndex) BuiltIn DeviceIndex - Decorate 71 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) - 62: TypePointer Uniform 15(int) - 64: TypePointer Input 15(int) -65(gl_DeviceIndex): 64(ptr) Variable Input - 66: 6(int) Constant 1 - 67: 6(int) Constant 3400 - 68: 6(int) Constant 16 - 69: 6(int) Constant 32 - 70: 6(int) Constant 4 - 71: 51(ivec3) ConstantComposite 68 69 70 - 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: 6(int) ArrayLength 14(outbname) 3 - 61: 15(int) Bitcast 60 - 63: 62(ptr) AccessChain 50(outnames) 16 - Store 63 61 - MemoryBarrier 66 8 - MemoryBarrier 7 67 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.320.meshShaderUserDefined.mesh.out b/deps/glslang/Test/baseResults/spv.320.meshShaderUserDefined.mesh.out deleted file mode 100644 index a4d8413b..00000000 --- a/deps/glslang/Test/baseResults/spv.320.meshShaderUserDefined.mesh.out +++ /dev/null @@ -1,210 +0,0 @@ -spv.320.meshShaderUserDefined.mesh -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 143 - - Capability MeshShadingNV - Extension "SPV_NV_mesh_shader" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint MeshNV 4 "main" 12 19 37 106 - ExecutionMode 4 LocalSize 32 1 1 - ExecutionMode 4 OutputVertices 81 - ExecutionMode 4 OutputPrimitivesNV 32 - ExecutionMode 4 OutputTrianglesNV - Source ESSL 320 - SourceExtension "GL_NV_mesh_shader" - Name 4 "main" - Name 8 "iid" - Name 12 "gl_LocalInvocationID" - Name 18 "gid" - Name 19 "gl_WorkGroupID" - Name 33 "myblock" - MemberName 33(myblock) 0 "f" - MemberName 33(myblock) 1 "fArr" - MemberName 33(myblock) 2 "pos" - MemberName 33(myblock) 3 "posArr" - MemberName 33(myblock) 4 "m" - MemberName 33(myblock) 5 "mArr" - Name 37 "blk" - Name 102 "myblock2" - MemberName 102(myblock2) 0 "f" - MemberName 102(myblock2) 1 "pos" - MemberName 102(myblock2) 2 "m" - Name 106 "blk2" - Decorate 12(gl_LocalInvocationID) BuiltIn LocalInvocationId - Decorate 19(gl_WorkGroupID) BuiltIn WorkgroupId - MemberDecorate 33(myblock) 0 PerPrimitiveNV - MemberDecorate 33(myblock) 1 PerPrimitiveNV - MemberDecorate 33(myblock) 2 PerPrimitiveNV - MemberDecorate 33(myblock) 3 PerPrimitiveNV - MemberDecorate 33(myblock) 4 PerPrimitiveNV - MemberDecorate 33(myblock) 5 PerPrimitiveNV - Decorate 33(myblock) Block - Decorate 37(blk) Location 0 - Decorate 102(myblock2) Block - Decorate 106(blk2) Location 20 - Decorate 142 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Function 6(int) - 9: TypeInt 32 0 - 10: TypeVector 9(int) 3 - 11: TypePointer Input 10(ivec3) -12(gl_LocalInvocationID): 11(ptr) Variable Input - 13: 9(int) Constant 0 - 14: TypePointer Input 9(int) -19(gl_WorkGroupID): 11(ptr) Variable Input - 23: TypeFloat 32 - 24: 9(int) Constant 4 - 25: TypeArray 23(float) 24 - 26: TypeVector 23(float) 3 - 27: TypeVector 23(float) 4 - 28: TypeArray 27(fvec4) 24 - 29: TypeMatrix 27(fvec4) 4 - 30: TypeMatrix 26(fvec3) 3 - 31: 9(int) Constant 2 - 32: TypeArray 30 31 - 33(myblock): TypeStruct 23(float) 25 26(fvec3) 28 29 32 - 34: 9(int) Constant 32 - 35: TypeArray 33(myblock) 34 - 36: TypePointer Output 35 - 37(blk): 36(ptr) Variable Output - 39: 6(int) Constant 0 - 40: 23(float) Constant 1093664768 - 41: TypePointer Output 23(float) - 44: 6(int) Constant 1 - 52: 6(int) Constant 2 - 54: 23(float) Constant 1096810496 - 55: 23(float) Constant 1097859072 - 56: 23(float) Constant 1095761920 - 57: 26(fvec3) ConstantComposite 54 55 56 - 58: TypePointer Output 26(fvec3) - 64: 6(int) Constant 3 - 69: 9(int) Constant 1 - 74: 9(int) Constant 3 - 78: 6(int) Constant 4 - 80: 23(float) Constant 1098907648 - 81: 27(fvec4) ConstantComposite 56 54 55 80 - 82: TypePointer Output 27(fvec4) - 87: 6(int) Constant 5 - 96: 23(float) Constant 1099431936 - 97: 23(float) Constant 1099956224 - 98: 23(float) Constant 1100480512 - 99: 26(fvec3) ConstantComposite 96 97 98 - 101: 9(int) Constant 264 - 102(myblock2): TypeStruct 23(float) 27(fvec4) 29 - 103: 9(int) Constant 81 - 104: TypeArray 102(myblock2) 103 - 105: TypePointer Output 104 - 106(blk2): 105(ptr) Variable Output - 112: 23(float) Constant 1101004800 - 116: 23(float) Constant 1101529088 - 117: 23(float) Constant 1102053376 - 118: 23(float) Constant 1102577664 - 119: 23(float) Constant 1103101952 - 120: 27(fvec4) ConstantComposite 116 117 118 119 - 132: 23(float) Constant 1105723392 - 142: 10(ivec3) ConstantComposite 34 69 69 - 4(main): 2 Function None 3 - 5: Label - 8(iid): 7(ptr) Variable Function - 18(gid): 7(ptr) Variable Function - 15: 14(ptr) AccessChain 12(gl_LocalInvocationID) 13 - 16: 9(int) Load 15 - 17: 6(int) Bitcast 16 - Store 8(iid) 17 - 20: 14(ptr) AccessChain 19(gl_WorkGroupID) 13 - 21: 9(int) Load 20 - 22: 6(int) Bitcast 21 - Store 18(gid) 22 - 38: 6(int) Load 8(iid) - 42: 41(ptr) AccessChain 37(blk) 38 39 - Store 42 40 - 43: 6(int) Load 8(iid) - 45: 6(int) IAdd 43 44 - 46: 6(int) Load 18(gid) - 47: 6(int) Load 8(iid) - 48: 41(ptr) AccessChain 37(blk) 47 39 - 49: 23(float) Load 48 - 50: 41(ptr) AccessChain 37(blk) 45 44 46 - Store 50 49 - 51: 6(int) Load 8(iid) - 53: 6(int) SDiv 51 52 - 59: 58(ptr) AccessChain 37(blk) 53 52 - 60: 26(fvec3) Load 59 - 61: 26(fvec3) VectorShuffle 60 57 5 3 4 - Store 59 61 - 62: 6(int) Load 8(iid) - 63: 6(int) IMul 62 52 - 65: 6(int) Load 8(iid) - 66: 6(int) SDiv 65 52 - 67: 58(ptr) AccessChain 37(blk) 66 52 - 68: 26(fvec3) Load 67 - 70: 41(ptr) AccessChain 37(blk) 63 64 44 69 - 71: 23(float) CompositeExtract 68 0 - Store 70 71 - 72: 41(ptr) AccessChain 37(blk) 63 64 44 31 - 73: 23(float) CompositeExtract 68 1 - Store 72 73 - 75: 41(ptr) AccessChain 37(blk) 63 64 44 74 - 76: 23(float) CompositeExtract 68 2 - Store 75 76 - 77: 6(int) Load 8(iid) - 79: 6(int) SDiv 77 78 - 83: 82(ptr) AccessChain 37(blk) 79 78 52 - 84: 27(fvec4) Load 83 - 85: 27(fvec4) VectorShuffle 84 81 7 6 5 4 - Store 83 85 - 86: 6(int) Load 8(iid) - 88: 6(int) Load 8(iid) - 89: 6(int) SDiv 88 78 - 90: 41(ptr) AccessChain 37(blk) 89 78 52 74 - 91: 23(float) Load 90 - 92: 41(ptr) AccessChain 37(blk) 86 87 39 44 69 - Store 92 91 - 93: 6(int) Load 8(iid) - 94: 6(int) IMul 93 78 - 95: 6(int) Load 18(gid) - 100: 58(ptr) AccessChain 37(blk) 94 87 44 95 - Store 100 99 - MemoryBarrier 69 101 - ControlBarrier 31 31 101 - 107: 6(int) Load 8(iid) - 108: 6(int) Load 8(iid) - 109: 6(int) ISub 108 44 - 110: 41(ptr) AccessChain 106(blk2) 109 39 - 111: 23(float) Load 110 - 113: 23(float) FAdd 111 112 - 114: 41(ptr) AccessChain 106(blk2) 107 39 - Store 114 113 - 115: 6(int) Load 8(iid) - 121: 82(ptr) AccessChain 106(blk2) 115 44 - Store 121 120 - 122: 6(int) Load 8(iid) - 123: 6(int) IAdd 122 44 - 124: 6(int) Load 18(gid) - 125: 6(int) Load 8(iid) - 126: 82(ptr) AccessChain 106(blk2) 125 44 - 127: 27(fvec4) Load 126 - 128: 82(ptr) AccessChain 106(blk2) 123 52 124 - Store 128 127 - 129: 6(int) Load 8(iid) - 130: 6(int) IAdd 129 44 - 131: 6(int) Load 18(gid) - 133: 41(ptr) AccessChain 106(blk2) 130 52 131 31 - Store 133 132 - 134: 6(int) Load 8(iid) - 135: 6(int) IAdd 134 52 - 136: 6(int) Load 8(iid) - 137: 6(int) IAdd 136 44 - 138: 6(int) Load 18(gid) - 139: 82(ptr) AccessChain 106(blk2) 137 52 138 - 140: 27(fvec4) Load 139 - 141: 82(ptr) AccessChain 106(blk2) 135 52 64 - Store 141 140 - MemoryBarrier 69 101 - ControlBarrier 31 31 101 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.330.geom.out b/deps/glslang/Test/baseResults/spv.330.geom.out deleted file mode 100644 index 1166508f..00000000 --- a/deps/glslang/Test/baseResults/spv.330.geom.out +++ /dev/null @@ -1,67 +0,0 @@ -spv.330.geom -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 32 - - Capability Geometry - Capability ClipDistance - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Geometry 4 "main" 13 20 - ExecutionMode 4 Triangles - ExecutionMode 4 Invocations 1 - ExecutionMode 4 OutputTriangleStrip - ExecutionMode 4 OutputVertices 3 - Source GLSL 330 - SourceExtension "GL_ARB_separate_shader_objects" - Name 4 "main" - Name 11 "gl_PerVertex" - MemberName 11(gl_PerVertex) 0 "gl_Position" - MemberName 11(gl_PerVertex) 1 "gl_ClipDistance" - Name 13 "" - Name 16 "gl_PerVertex" - MemberName 16(gl_PerVertex) 0 "gl_Position" - MemberName 16(gl_PerVertex) 1 "gl_ClipDistance" - Name 20 "gl_in" - MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 11(gl_PerVertex) 1 BuiltIn ClipDistance - Decorate 11(gl_PerVertex) Block - MemberDecorate 16(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 16(gl_PerVertex) 1 BuiltIn ClipDistance - Decorate 16(gl_PerVertex) Block - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeInt 32 0 - 9: 8(int) Constant 1 - 10: TypeArray 6(float) 9 -11(gl_PerVertex): TypeStruct 7(fvec4) 10 - 12: TypePointer Output 11(gl_PerVertex) - 13: 12(ptr) Variable Output - 14: TypeInt 32 1 - 15: 14(int) Constant 0 -16(gl_PerVertex): TypeStruct 7(fvec4) 10 - 17: 8(int) Constant 3 - 18: TypeArray 16(gl_PerVertex) 17 - 19: TypePointer Input 18 - 20(gl_in): 19(ptr) Variable Input - 21: 14(int) Constant 1 - 22: TypePointer Input 7(fvec4) - 25: TypePointer Output 7(fvec4) - 27: TypePointer Input 6(float) - 30: TypePointer Output 6(float) - 4(main): 2 Function None 3 - 5: Label - 23: 22(ptr) AccessChain 20(gl_in) 21 15 - 24: 7(fvec4) Load 23 - 26: 25(ptr) AccessChain 13 15 - Store 26 24 - 28: 27(ptr) AccessChain 20(gl_in) 21 21 15 - 29: 6(float) Load 28 - 31: 30(ptr) AccessChain 13 21 15 - Store 31 29 - EmitVertex - EndPrimitive - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.400.frag.nanclamp.out b/deps/glslang/Test/baseResults/spv.400.frag.nanclamp.out deleted file mode 100644 index cf1ffb04..00000000 --- a/deps/glslang/Test/baseResults/spv.400.frag.nanclamp.out +++ /dev/null @@ -1,1408 +0,0 @@ -spv.400.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 1122 - - 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 1054 1080 1101 1103 1109 1111 1120 - 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 1054 "uoutp" - Name 1058 "samp2dr" - Name 1080 "ioutp" - Name 1084 "isamp2DA" - Name 1101 "gl_FragCoord" - Name 1103 "vl2" - Name 1109 "uo" - Name 1111 "u" - Name 1119 "id" - Name 1120 "gl_PrimitiveID" - Decorate 13(outp) Location 1 - Decorate 17(u2drs) DescriptorSet 0 - Decorate 17(u2drs) Binding 3 - Decorate 1025(arrayedSampler) DescriptorSet 0 - Decorate 1025(arrayedSampler) Binding 0 - Decorate 1027(i) Flat - Decorate 1027(i) Location 1 - Decorate 1033(c2D) Location 0 - Decorate 1038(gl_ClipDistance) BuiltIn ClipDistance - Decorate 1054(uoutp) Location 3 - Decorate 1058(samp2dr) DescriptorSet 0 - Decorate 1058(samp2dr) Binding 1 - Decorate 1080(ioutp) Location 2 - Decorate 1084(isamp2DA) DescriptorSet 0 - Decorate 1084(isamp2DA) Binding 2 - Decorate 1101(gl_FragCoord) BuiltIn FragCoord - Decorate 1103(vl2) Location 6 - Decorate 1109(uo) Location 0 - Decorate 1111(u) Flat - Decorate 1111(u) Location 2 - Decorate 1120(gl_PrimitiveID) Flat - Decorate 1120(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 - 1052: TypeVector 32(int) 4 - 1053: TypePointer Output 1052(ivec4) - 1054(uoutp): 1053(ptr) Variable Output - 1055: TypeImage 32(int) Rect sampled format:Unknown - 1056: TypeSampledImage 1055 - 1057: TypePointer UniformConstant 1056 - 1058(samp2dr): 1057(ptr) Variable UniformConstant - 1061: 32(int) Constant 4 - 1062: TypeArray 24(ivec2) 1061 - 1063: 24(ivec2) ConstantComposite 966 970 - 1064: 23(int) Constant 15 - 1065: 23(int) Constant 16 - 1066: 24(ivec2) ConstantComposite 1064 1065 - 1067: 23(int) Constant 4294967294 - 1068: 23(int) Constant 0 - 1069: 24(ivec2) ConstantComposite 1067 1068 - 1070: 1062 ConstantComposite 1063 27 1066 1069 - 1078: TypeVector 23(int) 4 - 1079: TypePointer Output 1078(ivec4) - 1080(ioutp): 1079(ptr) Variable Output - 1081: TypeImage 23(int) 2D array sampled format:Unknown - 1082: TypeSampledImage 1081 - 1083: TypePointer UniformConstant 1082 - 1084(isamp2DA): 1083(ptr) Variable UniformConstant - 1086: 10(float) Constant 1036831949 - 1087: 1043(fvec3) ConstantComposite 1086 1086 1086 - 1088: 24(ivec2) ConstantComposite 966 966 - 1100: TypePointer Input 11(fvec4) -1101(gl_FragCoord): 1100(ptr) Variable Input - 1103(vl2): 1100(ptr) Variable Input - 1108: TypePointer Output 32(int) - 1109(uo): 1108(ptr) Variable Output - 1110: TypePointer Input 32(int) - 1111(u): 1110(ptr) Variable Input - 1118: TypePointer Function 23(int) -1120(gl_PrimitiveID): 1026(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 1019(v): 1018(ptr) Variable Function - 1119(id): 1118(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: 34(ptr) AccessChain 13(outp) 954 - 1047: 10(float) CompositeExtract 1045 0 - Store 1046 1047 - 1048: 34(ptr) AccessChain 13(outp) 958 - 1049: 10(float) CompositeExtract 1045 1 - Store 1048 1049 - 1050: 34(ptr) AccessChain 13(outp) 962 - 1051: 10(float) CompositeExtract 1045 2 - Store 1050 1051 - 1059: 1056 Load 1058(samp2dr) - 1060: 20(fvec2) Load 1033(c2D) - 1071: 1052(ivec4) ImageGather 1059 1060 970 ConstOffsets 1070 - Store 1054(uoutp) 1071 - 1072: 1029(ptr) AccessChain 1025(arrayedSampler) 1068 - 1073: 1021 Load 1072 - 1074: 20(fvec2) Load 1033(c2D) - 1075: 11(fvec4) ImageGather 1073 1074 1068 - 1076: 11(fvec4) Load 13(outp) - 1077: 11(fvec4) FAdd 1076 1075 - Store 13(outp) 1077 - 1085: 1082 Load 1084(isamp2DA) - 1089: 1078(ivec4) ImageGather 1085 1087 25 ConstOffset 1088 - Store 1080(ioutp) 1089 - 1090: 1082 Load 1084(isamp2DA) - 1091: 1078(ivec4) ImageGather 1090 1087 25 ConstOffset 1088 - 1092: 1078(ivec4) Load 1080(ioutp) - 1093: 1078(ivec4) IAdd 1092 1091 - Store 1080(ioutp) 1093 - 1094: 1082 Load 1084(isamp2DA) - 1095: 23(int) Load 1027(i) - 1096: 24(ivec2) CompositeConstruct 1095 1095 - 1097: 1078(ivec4) ImageGather 1094 1087 1068 Offset 1096 - 1098: 1078(ivec4) Load 1080(ioutp) - 1099: 1078(ivec4) IAdd 1098 1097 - Store 1080(ioutp) 1099 - 1102: 11(fvec4) Load 1101(gl_FragCoord) - 1104: 11(fvec4) Load 1103(vl2) - 1105: 11(fvec4) FAdd 1102 1104 - 1106: 11(fvec4) Load 13(outp) - 1107: 11(fvec4) FAdd 1106 1105 - Store 13(outp) 1107 - 1112: 32(int) Load 1111(u) - 1113: 23(int) Load 1027(i) - 1114: 32(int) Bitcast 1113 - 1115: 32(int) UMod 1112 1114 - Store 1109(uo) 1115 - 1116: 2 FunctionCall 6(foo23() - 1117: 2 FunctionCall 8(doubles() - 1121: 23(int) Load 1120(gl_PrimitiveID) - Store 1119(id) 1121 - 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) 79(NMin) 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) 79(NMin) 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) 79(NMin) 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) 79(NMin) 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) 79(NMin) 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) 79(NMin) 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) 79(NMin) 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) 80(NMax) 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) 80(NMax) 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) 80(NMax) 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) 80(NMax) 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) 80(NMax) 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) 80(NMax) 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) 80(NMax) 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) 81(NClamp) 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) 81(NClamp) 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) 81(NClamp) 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) 81(NClamp) 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) 81(NClamp) 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) 81(NClamp) 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) 81(NClamp) 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/Test/baseResults/spv.400.frag.out b/deps/glslang/Test/baseResults/spv.400.frag.out deleted file mode 100644 index 67868859..00000000 --- a/deps/glslang/Test/baseResults/spv.400.frag.out +++ /dev/null @@ -1,1409 +0,0 @@ -spv.400.frag -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 1122 - - 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 1054 1080 1101 1103 1109 1111 1120 - 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 1054 "uoutp" - Name 1058 "samp2dr" - Name 1080 "ioutp" - Name 1084 "isamp2DA" - Name 1101 "gl_FragCoord" - Name 1103 "vl2" - Name 1109 "uo" - Name 1111 "u" - Name 1119 "id" - Name 1120 "gl_PrimitiveID" - Decorate 13(outp) Location 1 - Decorate 17(u2drs) DescriptorSet 0 - Decorate 17(u2drs) Binding 3 - Decorate 1025(arrayedSampler) DescriptorSet 0 - Decorate 1025(arrayedSampler) Binding 0 - Decorate 1027(i) Flat - Decorate 1027(i) Location 1 - Decorate 1033(c2D) Location 0 - Decorate 1038(gl_ClipDistance) BuiltIn ClipDistance - Decorate 1054(uoutp) Location 3 - Decorate 1058(samp2dr) DescriptorSet 0 - Decorate 1058(samp2dr) Binding 1 - Decorate 1080(ioutp) Location 2 - Decorate 1084(isamp2DA) DescriptorSet 0 - Decorate 1084(isamp2DA) Binding 2 - Decorate 1101(gl_FragCoord) BuiltIn FragCoord - Decorate 1103(vl2) Location 6 - Decorate 1109(uo) Location 0 - Decorate 1111(u) Flat - Decorate 1111(u) Location 2 - Decorate 1120(gl_PrimitiveID) Flat - Decorate 1120(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 - 1052: TypeVector 32(int) 4 - 1053: TypePointer Output 1052(ivec4) - 1054(uoutp): 1053(ptr) Variable Output - 1055: TypeImage 32(int) Rect sampled format:Unknown - 1056: TypeSampledImage 1055 - 1057: TypePointer UniformConstant 1056 - 1058(samp2dr): 1057(ptr) Variable UniformConstant - 1061: 32(int) Constant 4 - 1062: TypeArray 24(ivec2) 1061 - 1063: 24(ivec2) ConstantComposite 966 970 - 1064: 23(int) Constant 15 - 1065: 23(int) Constant 16 - 1066: 24(ivec2) ConstantComposite 1064 1065 - 1067: 23(int) Constant 4294967294 - 1068: 23(int) Constant 0 - 1069: 24(ivec2) ConstantComposite 1067 1068 - 1070: 1062 ConstantComposite 1063 27 1066 1069 - 1078: TypeVector 23(int) 4 - 1079: TypePointer Output 1078(ivec4) - 1080(ioutp): 1079(ptr) Variable Output - 1081: TypeImage 23(int) 2D array sampled format:Unknown - 1082: TypeSampledImage 1081 - 1083: TypePointer UniformConstant 1082 - 1084(isamp2DA): 1083(ptr) Variable UniformConstant - 1086: 10(float) Constant 1036831949 - 1087: 1043(fvec3) ConstantComposite 1086 1086 1086 - 1088: 24(ivec2) ConstantComposite 966 966 - 1100: TypePointer Input 11(fvec4) -1101(gl_FragCoord): 1100(ptr) Variable Input - 1103(vl2): 1100(ptr) Variable Input - 1108: TypePointer Output 32(int) - 1109(uo): 1108(ptr) Variable Output - 1110: TypePointer Input 32(int) - 1111(u): 1110(ptr) Variable Input - 1118: TypePointer Function 23(int) -1120(gl_PrimitiveID): 1026(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 1019(v): 1018(ptr) Variable Function - 1119(id): 1118(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: 34(ptr) AccessChain 13(outp) 954 - 1047: 10(float) CompositeExtract 1045 0 - Store 1046 1047 - 1048: 34(ptr) AccessChain 13(outp) 958 - 1049: 10(float) CompositeExtract 1045 1 - Store 1048 1049 - 1050: 34(ptr) AccessChain 13(outp) 962 - 1051: 10(float) CompositeExtract 1045 2 - Store 1050 1051 - 1059: 1056 Load 1058(samp2dr) - 1060: 20(fvec2) Load 1033(c2D) - 1071: 1052(ivec4) ImageGather 1059 1060 970 ConstOffsets 1070 - Store 1054(uoutp) 1071 - 1072: 1029(ptr) AccessChain 1025(arrayedSampler) 1068 - 1073: 1021 Load 1072 - 1074: 20(fvec2) Load 1033(c2D) - 1075: 11(fvec4) ImageGather 1073 1074 1068 - 1076: 11(fvec4) Load 13(outp) - 1077: 11(fvec4) FAdd 1076 1075 - Store 13(outp) 1077 - 1085: 1082 Load 1084(isamp2DA) - 1089: 1078(ivec4) ImageGather 1085 1087 25 ConstOffset 1088 - Store 1080(ioutp) 1089 - 1090: 1082 Load 1084(isamp2DA) - 1091: 1078(ivec4) ImageGather 1090 1087 25 ConstOffset 1088 - 1092: 1078(ivec4) Load 1080(ioutp) - 1093: 1078(ivec4) IAdd 1092 1091 - Store 1080(ioutp) 1093 - 1094: 1082 Load 1084(isamp2DA) - 1095: 23(int) Load 1027(i) - 1096: 24(ivec2) CompositeConstruct 1095 1095 - 1097: 1078(ivec4) ImageGather 1094 1087 1068 Offset 1096 - 1098: 1078(ivec4) Load 1080(ioutp) - 1099: 1078(ivec4) IAdd 1098 1097 - Store 1080(ioutp) 1099 - 1102: 11(fvec4) Load 1101(gl_FragCoord) - 1104: 11(fvec4) Load 1103(vl2) - 1105: 11(fvec4) FAdd 1102 1104 - 1106: 11(fvec4) Load 13(outp) - 1107: 11(fvec4) FAdd 1106 1105 - Store 13(outp) 1107 - 1112: 32(int) Load 1111(u) - 1113: 23(int) Load 1027(i) - 1114: 32(int) Bitcast 1113 - 1115: 32(int) UMod 1112 1114 - Store 1109(uo) 1115 - 1116: 2 FunctionCall 6(foo23() - 1117: 2 FunctionCall 8(doubles() - 1121: 23(int) Load 1120(gl_PrimitiveID) - Store 1119(id) 1121 - 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/Test/baseResults/spv.400.tesc.out b/deps/glslang/Test/baseResults/spv.400.tesc.out deleted file mode 100644 index a07c9b12..00000000 --- a/deps/glslang/Test/baseResults/spv.400.tesc.out +++ /dev/null @@ -1,173 +0,0 @@ -spv.400.tesc -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 92 - - Capability Tessellation - Capability TessellationPointSize - Capability ClipDistance - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint TessellationControl 4 "main" 24 41 44 47 53 67 72 78 82 83 86 87 90 91 - ExecutionMode 4 OutputVertices 4 - Source GLSL 400 - SourceExtension "GL_ARB_separate_shader_objects" - Name 4 "main" - Name 12 "a" - Name 17 "p" - Name 20 "gl_PerVertex" - MemberName 20(gl_PerVertex) 0 "gl_Position" - MemberName 20(gl_PerVertex) 1 "gl_PointSize" - MemberName 20(gl_PerVertex) 2 "gl_ClipDistance" - Name 24 "gl_in" - Name 31 "ps" - Name 35 "cd" - Name 39 "pvi" - Name 41 "gl_PatchVerticesIn" - Name 43 "pid" - Name 44 "gl_PrimitiveID" - Name 46 "iid" - Name 47 "gl_InvocationID" - Name 50 "gl_PerVertex" - MemberName 50(gl_PerVertex) 0 "gl_Position" - MemberName 50(gl_PerVertex) 1 "gl_PointSize" - MemberName 50(gl_PerVertex) 2 "gl_ClipDistance" - Name 53 "gl_out" - Name 67 "gl_TessLevelOuter" - Name 72 "gl_TessLevelInner" - Name 77 "outa" - Name 78 "patchOut" - Name 82 "inb" - Name 83 "ind" - Name 86 "ivla" - Name 87 "ivlb" - Name 90 "ovla" - Name 91 "ovlb" - MemberDecorate 20(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 20(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 20(gl_PerVertex) 2 BuiltIn ClipDistance - Decorate 20(gl_PerVertex) Block - Decorate 41(gl_PatchVerticesIn) BuiltIn PatchVertices - Decorate 44(gl_PrimitiveID) BuiltIn PrimitiveId - Decorate 47(gl_InvocationID) BuiltIn InvocationId - MemberDecorate 50(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 50(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 50(gl_PerVertex) 2 BuiltIn ClipDistance - Decorate 50(gl_PerVertex) Block - Decorate 67(gl_TessLevelOuter) Patch - Decorate 67(gl_TessLevelOuter) BuiltIn TessLevelOuter - Decorate 72(gl_TessLevelInner) Patch - Decorate 72(gl_TessLevelInner) BuiltIn TessLevelInner - Decorate 78(patchOut) Patch - Decorate 78(patchOut) Location 0 - Decorate 82(inb) Location 0 - Decorate 83(ind) Location 1 - Decorate 86(ivla) Location 3 - Decorate 87(ivlb) Location 4 - Decorate 90(ovla) Location 3 - Decorate 91(ovlb) Location 4 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: 6(int) Constant 2 - 8: 6(int) Constant 4 - 9: 6(int) Constant 0 - 10: TypeInt 32 1 - 11: TypePointer Function 10(int) - 13: 10(int) Constant 5392 - 14: TypeFloat 32 - 15: TypeVector 14(float) 4 - 16: TypePointer Function 15(fvec4) - 18: 6(int) Constant 3 - 19: TypeArray 14(float) 18 -20(gl_PerVertex): TypeStruct 15(fvec4) 14(float) 19 - 21: 6(int) Constant 32 - 22: TypeArray 20(gl_PerVertex) 21 - 23: TypePointer Input 22 - 24(gl_in): 23(ptr) Variable Input - 25: 10(int) Constant 1 - 26: 10(int) Constant 0 - 27: TypePointer Input 15(fvec4) - 30: TypePointer Function 14(float) - 32: TypePointer Input 14(float) - 36: 10(int) Constant 2 - 40: TypePointer Input 10(int) -41(gl_PatchVerticesIn): 40(ptr) Variable Input -44(gl_PrimitiveID): 40(ptr) Variable Input -47(gl_InvocationID): 40(ptr) Variable Input - 49: TypeArray 14(float) 7 -50(gl_PerVertex): TypeStruct 15(fvec4) 14(float) 49 - 51: TypeArray 50(gl_PerVertex) 8 - 52: TypePointer Output 51 - 53(gl_out): 52(ptr) Variable Output - 56: TypePointer Output 15(fvec4) - 60: TypePointer Output 14(float) - 65: TypeArray 14(float) 8 - 66: TypePointer Output 65 -67(gl_TessLevelOuter): 66(ptr) Variable Output - 68: 10(int) Constant 3 - 69: 14(float) Constant 1078774989 - 71: TypePointer Output 49 -72(gl_TessLevelInner): 71(ptr) Variable Output - 73: 14(float) Constant 1067869798 - 75: TypeArray 10(int) 8 - 76: TypePointer Private 75 - 77(outa): 76(ptr) Variable Private - 78(patchOut): 56(ptr) Variable Output - 79: TypeVector 14(float) 2 - 80: TypeArray 79(fvec2) 21 - 81: TypePointer Input 80 - 82(inb): 81(ptr) Variable Input - 83(ind): 81(ptr) Variable Input - 84: TypeArray 15(fvec4) 21 - 85: TypePointer Input 84 - 86(ivla): 85(ptr) Variable Input - 87(ivlb): 85(ptr) Variable Input - 88: TypeArray 15(fvec4) 8 - 89: TypePointer Output 88 - 90(ovla): 89(ptr) Variable Output - 91(ovlb): 89(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 12(a): 11(ptr) Variable Function - 17(p): 16(ptr) Variable Function - 31(ps): 30(ptr) Variable Function - 35(cd): 30(ptr) Variable Function - 39(pvi): 11(ptr) Variable Function - 43(pid): 11(ptr) Variable Function - 46(iid): 11(ptr) Variable Function - ControlBarrier 7 8 9 - Store 12(a) 13 - 28: 27(ptr) AccessChain 24(gl_in) 25 26 - 29: 15(fvec4) Load 28 - Store 17(p) 29 - 33: 32(ptr) AccessChain 24(gl_in) 25 25 - 34: 14(float) Load 33 - Store 31(ps) 34 - 37: 32(ptr) AccessChain 24(gl_in) 25 36 36 - 38: 14(float) Load 37 - Store 35(cd) 38 - 42: 10(int) Load 41(gl_PatchVerticesIn) - Store 39(pvi) 42 - 45: 10(int) Load 44(gl_PrimitiveID) - Store 43(pid) 45 - 48: 10(int) Load 47(gl_InvocationID) - Store 46(iid) 48 - 54: 10(int) Load 47(gl_InvocationID) - 55: 15(fvec4) Load 17(p) - 57: 56(ptr) AccessChain 53(gl_out) 54 26 - Store 57 55 - 58: 10(int) Load 47(gl_InvocationID) - 59: 14(float) Load 31(ps) - 61: 60(ptr) AccessChain 53(gl_out) 58 25 - Store 61 59 - 62: 10(int) Load 47(gl_InvocationID) - 63: 14(float) Load 35(cd) - 64: 60(ptr) AccessChain 53(gl_out) 62 36 25 - Store 64 63 - 70: 60(ptr) AccessChain 67(gl_TessLevelOuter) 68 - Store 70 69 - 74: 60(ptr) AccessChain 72(gl_TessLevelInner) 25 - Store 74 73 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.400.tese.out b/deps/glslang/Test/baseResults/spv.400.tese.out deleted file mode 100644 index 58f4b97e..00000000 --- a/deps/glslang/Test/baseResults/spv.400.tese.out +++ /dev/null @@ -1,188 +0,0 @@ -spv.400.tese -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 96 - - Capability Tessellation - Capability TessellationPointSize - Capability ClipDistance - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint TessellationEvaluation 4 "main" 21 38 41 47 53 61 66 75 79 80 84 88 91 92 95 - ExecutionMode 4 Triangles - ExecutionMode 4 SpacingFractionalOdd - ExecutionMode 4 VertexOrderCcw - ExecutionMode 4 PointMode - Source GLSL 400 - SourceExtension "GL_ARB_separate_shader_objects" - Name 4 "main" - Name 8 "a" - Name 13 "p" - Name 17 "gl_PerVertex" - MemberName 17(gl_PerVertex) 0 "gl_Position" - MemberName 17(gl_PerVertex) 1 "gl_PointSize" - MemberName 17(gl_PerVertex) 2 "gl_ClipDistance" - Name 21 "gl_in" - Name 28 "ps" - Name 32 "cd" - Name 36 "pvi" - Name 38 "gl_PatchVerticesIn" - Name 40 "pid" - Name 41 "gl_PrimitiveID" - Name 45 "tc" - Name 47 "gl_TessCoord" - Name 49 "tlo" - Name 53 "gl_TessLevelOuter" - Name 57 "tli" - Name 61 "gl_TessLevelInner" - Name 64 "gl_PerVertex" - MemberName 64(gl_PerVertex) 0 "gl_Position" - MemberName 64(gl_PerVertex) 1 "gl_PointSize" - MemberName 64(gl_PerVertex) 2 "gl_ClipDistance" - Name 66 "" - Name 75 "patchIn" - Name 79 "inb" - Name 80 "ind" - Name 81 "testblb" - MemberName 81(testblb) 0 "f" - Name 84 "blb" - Name 85 "testbld" - MemberName 85(testbld) 0 "f" - Name 88 "bld" - Name 91 "ivla" - Name 92 "ivlb" - Name 95 "ovla" - MemberDecorate 17(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 17(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 17(gl_PerVertex) 2 BuiltIn ClipDistance - Decorate 17(gl_PerVertex) Block - Decorate 38(gl_PatchVerticesIn) BuiltIn PatchVertices - Decorate 41(gl_PrimitiveID) BuiltIn PrimitiveId - Decorate 47(gl_TessCoord) BuiltIn TessCoord - Decorate 53(gl_TessLevelOuter) Patch - Decorate 53(gl_TessLevelOuter) BuiltIn TessLevelOuter - Decorate 61(gl_TessLevelInner) Patch - Decorate 61(gl_TessLevelInner) BuiltIn TessLevelInner - MemberDecorate 64(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 64(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 64(gl_PerVertex) 2 BuiltIn ClipDistance - Decorate 64(gl_PerVertex) Block - Decorate 75(patchIn) Patch - Decorate 75(patchIn) Location 0 - Decorate 79(inb) Location 1 - Decorate 80(ind) Location 2 - Decorate 81(testblb) Block - Decorate 84(blb) Location 3 - Decorate 85(testbld) Block - Decorate 88(bld) Location 4 - Decorate 91(ivla) Location 23 - Decorate 92(ivlb) Location 24 - Decorate 95(ovla) Location 23 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Function 6(int) - 9: 6(int) Constant 1512 - 10: TypeFloat 32 - 11: TypeVector 10(float) 4 - 12: TypePointer Function 11(fvec4) - 14: TypeInt 32 0 - 15: 14(int) Constant 3 - 16: TypeArray 10(float) 15 -17(gl_PerVertex): TypeStruct 11(fvec4) 10(float) 16 - 18: 14(int) Constant 32 - 19: TypeArray 17(gl_PerVertex) 18 - 20: TypePointer Input 19 - 21(gl_in): 20(ptr) Variable Input - 22: 6(int) Constant 1 - 23: 6(int) Constant 0 - 24: TypePointer Input 11(fvec4) - 27: TypePointer Function 10(float) - 29: TypePointer Input 10(float) - 33: 6(int) Constant 2 - 37: TypePointer Input 6(int) -38(gl_PatchVerticesIn): 37(ptr) Variable Input -41(gl_PrimitiveID): 37(ptr) Variable Input - 43: TypeVector 10(float) 3 - 44: TypePointer Function 43(fvec3) - 46: TypePointer Input 43(fvec3) -47(gl_TessCoord): 46(ptr) Variable Input - 50: 14(int) Constant 4 - 51: TypeArray 10(float) 50 - 52: TypePointer Input 51 -53(gl_TessLevelOuter): 52(ptr) Variable Input - 54: 6(int) Constant 3 - 58: 14(int) Constant 2 - 59: TypeArray 10(float) 58 - 60: TypePointer Input 59 -61(gl_TessLevelInner): 60(ptr) Variable Input -64(gl_PerVertex): TypeStruct 11(fvec4) 10(float) 16 - 65: TypePointer Output 64(gl_PerVertex) - 66: 65(ptr) Variable Output - 68: TypePointer Output 11(fvec4) - 71: TypePointer Output 10(float) - 75(patchIn): 24(ptr) Variable Input - 76: TypeVector 10(float) 2 - 77: TypeArray 76(fvec2) 18 - 78: TypePointer Input 77 - 79(inb): 78(ptr) Variable Input - 80(ind): 78(ptr) Variable Input - 81(testblb): TypeStruct 6(int) - 82: TypeArray 81(testblb) 18 - 83: TypePointer Input 82 - 84(blb): 83(ptr) Variable Input - 85(testbld): TypeStruct 6(int) - 86: TypeArray 85(testbld) 18 - 87: TypePointer Input 86 - 88(bld): 87(ptr) Variable Input - 89: TypeArray 11(fvec4) 18 - 90: TypePointer Input 89 - 91(ivla): 90(ptr) Variable Input - 92(ivlb): 90(ptr) Variable Input - 93: TypeArray 11(fvec4) 58 - 94: TypePointer Output 93 - 95(ovla): 94(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 8(a): 7(ptr) Variable Function - 13(p): 12(ptr) Variable Function - 28(ps): 27(ptr) Variable Function - 32(cd): 27(ptr) Variable Function - 36(pvi): 7(ptr) Variable Function - 40(pid): 7(ptr) Variable Function - 45(tc): 44(ptr) Variable Function - 49(tlo): 27(ptr) Variable Function - 57(tli): 27(ptr) Variable Function - Store 8(a) 9 - 25: 24(ptr) AccessChain 21(gl_in) 22 23 - 26: 11(fvec4) Load 25 - Store 13(p) 26 - 30: 29(ptr) AccessChain 21(gl_in) 22 22 - 31: 10(float) Load 30 - Store 28(ps) 31 - 34: 29(ptr) AccessChain 21(gl_in) 22 33 33 - 35: 10(float) Load 34 - Store 32(cd) 35 - 39: 6(int) Load 38(gl_PatchVerticesIn) - Store 36(pvi) 39 - 42: 6(int) Load 41(gl_PrimitiveID) - Store 40(pid) 42 - 48: 43(fvec3) Load 47(gl_TessCoord) - Store 45(tc) 48 - 55: 29(ptr) AccessChain 53(gl_TessLevelOuter) 54 - 56: 10(float) Load 55 - Store 49(tlo) 56 - 62: 29(ptr) AccessChain 61(gl_TessLevelInner) 22 - 63: 10(float) Load 62 - Store 57(tli) 63 - 67: 11(fvec4) Load 13(p) - 69: 68(ptr) AccessChain 66 23 - Store 69 67 - 70: 10(float) Load 28(ps) - 72: 71(ptr) AccessChain 66 22 - Store 72 70 - 73: 10(float) Load 32(cd) - 74: 71(ptr) AccessChain 66 33 33 - Store 74 73 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.420.geom.out b/deps/glslang/Test/baseResults/spv.420.geom.out deleted file mode 100644 index 17f27497..00000000 --- a/deps/glslang/Test/baseResults/spv.420.geom.out +++ /dev/null @@ -1,127 +0,0 @@ -spv.420.geom -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 72 - - Capability Geometry - Capability GeometryPointSize - Capability ImageGatherExtended - Capability GeometryStreams - Capability MultiViewport - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Geometry 4 "main" 14 23 28 33 46 - ExecutionMode 4 Triangles - ExecutionMode 4 Invocations 4 - ExecutionMode 4 OutputLineStrip - ExecutionMode 4 OutputVertices 127 - Source GLSL 420 - Name 4 "main" - Name 8 "p" - Name 9 "gl_PerVertex" - MemberName 9(gl_PerVertex) 0 "gl_PointSize" - Name 14 "gl_in" - Name 21 "gl_PerVertex" - MemberName 21(gl_PerVertex) 0 "gl_PointSize" - Name 23 "" - Name 28 "gl_ViewportIndex" - Name 31 "id" - Name 33 "gl_InvocationID" - Name 37 "v" - Name 41 "s2D" - Name 46 "coord" - Name 64 "i" - Name 67 "indexable" - MemberDecorate 9(gl_PerVertex) 0 BuiltIn PointSize - Decorate 9(gl_PerVertex) Block - MemberDecorate 21(gl_PerVertex) 0 BuiltIn PointSize - Decorate 21(gl_PerVertex) Block - Decorate 23 Stream 0 - Decorate 28(gl_ViewportIndex) Stream 0 - Decorate 28(gl_ViewportIndex) BuiltIn ViewportIndex - Decorate 33(gl_InvocationID) BuiltIn InvocationId - Decorate 41(s2D) DescriptorSet 0 - Decorate 41(s2D) Binding 0 - Decorate 46(coord) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypePointer Function 6(float) - 9(gl_PerVertex): TypeStruct 6(float) - 10: TypeInt 32 0 - 11: 10(int) Constant 3 - 12: TypeArray 9(gl_PerVertex) 11 - 13: TypePointer Input 12 - 14(gl_in): 13(ptr) Variable Input - 15: TypeInt 32 1 - 16: 15(int) Constant 1 - 17: 15(int) Constant 0 - 18: TypePointer Input 6(float) -21(gl_PerVertex): TypeStruct 6(float) - 22: TypePointer Output 21(gl_PerVertex) - 23: 22(ptr) Variable Output - 25: TypePointer Output 6(float) - 27: TypePointer Output 15(int) -28(gl_ViewportIndex): 27(ptr) Variable Output - 29: 15(int) Constant 7 - 30: TypePointer Function 15(int) - 32: TypePointer Input 15(int) -33(gl_InvocationID): 32(ptr) Variable Input - 35: TypeVector 6(float) 4 - 36: TypePointer Function 35(fvec4) - 38: TypeImage 6(float) 2D sampled format:Unknown - 39: TypeSampledImage 38 - 40: TypePointer UniformConstant 39 - 41(s2D): 40(ptr) Variable UniformConstant - 43: TypeVector 6(float) 2 - 44: TypeArray 43(fvec2) 11 - 45: TypePointer Input 44 - 46(coord): 45(ptr) Variable Input - 47: TypePointer Input 43(fvec2) - 50: TypeVector 15(int) 2 - 51: 10(int) Constant 5 - 52: TypeArray 50(ivec2) 51 - 53: 50(ivec2) ConstantComposite 17 16 - 54: 15(int) Constant 4294967294 - 55: 50(ivec2) ConstantComposite 16 54 - 56: 15(int) Constant 3 - 57: 50(ivec2) ConstantComposite 17 56 - 58: 15(int) Constant 4294967293 - 59: 50(ivec2) ConstantComposite 58 17 - 60: 15(int) Constant 2 - 61: 50(ivec2) ConstantComposite 60 16 - 62: 52 ConstantComposite 53 55 57 59 61 - 63: TypePointer Private 15(int) - 64(i): 63(ptr) Variable Private - 66: TypePointer Function 52 - 68: TypePointer Function 50(ivec2) - 4(main): 2 Function None 3 - 5: Label - 8(p): 7(ptr) Variable Function - 31(id): 30(ptr) Variable Function - 37(v): 36(ptr) Variable Function - 67(indexable): 66(ptr) Variable Function - 19: 18(ptr) AccessChain 14(gl_in) 16 17 - 20: 6(float) Load 19 - Store 8(p) 20 - 24: 6(float) Load 8(p) - 26: 25(ptr) AccessChain 23 17 - Store 26 24 - Store 28(gl_ViewportIndex) 29 - EmitStreamVertex 16 - EndStreamPrimitive 17 - EmitVertex - EndPrimitive - 34: 15(int) Load 33(gl_InvocationID) - Store 31(id) 34 - 42: 39 Load 41(s2D) - 48: 47(ptr) AccessChain 46(coord) 17 - 49: 43(fvec2) Load 48 - 65: 15(int) Load 64(i) - Store 67(indexable) 62 - 69: 68(ptr) AccessChain 67(indexable) 65 - 70: 50(ivec2) Load 69 - 71: 35(fvec4) ImageGather 42 49 17 Offset 70 - Store 37(v) 71 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.430.frag.out b/deps/glslang/Test/baseResults/spv.430.frag.out deleted file mode 100644 index 15da3827..00000000 --- a/deps/glslang/Test/baseResults/spv.430.frag.out +++ /dev/null @@ -1,49 +0,0 @@ -spv.430.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 24 - - Capability Shader - Capability Geometry - Capability MultiViewport - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 9 14 19 - ExecutionMode 4 OriginUpperLeft - Source GLSL 430 - Name 4 "main" - Name 9 "color" - Name 14 "gl_Layer" - Name 19 "gl_ViewportIndex" - Decorate 9(color) Location 0 - Decorate 14(gl_Layer) Flat - Decorate 14(gl_Layer) BuiltIn Layer - Decorate 19(gl_ViewportIndex) Flat - Decorate 19(gl_ViewportIndex) BuiltIn ViewportIndex - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) - 9(color): 8(ptr) Variable Output - 10: 6(float) Constant 1065353216 - 11: 7(fvec4) ConstantComposite 10 10 10 10 - 12: TypeInt 32 1 - 13: TypePointer Input 12(int) - 14(gl_Layer): 13(ptr) Variable Input -19(gl_ViewportIndex): 13(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - Store 9(color) 11 - 15: 12(int) Load 14(gl_Layer) - 16: 6(float) ConvertSToF 15 - 17: 7(fvec4) Load 9(color) - 18: 7(fvec4) VectorTimesScalar 17 16 - Store 9(color) 18 - 20: 12(int) Load 19(gl_ViewportIndex) - 21: 6(float) ConvertSToF 20 - 22: 7(fvec4) Load 9(color) - 23: 7(fvec4) VectorTimesScalar 22 21 - Store 9(color) 23 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.430.vert.out b/deps/glslang/Test/baseResults/spv.430.vert.out deleted file mode 100644 index a6b2e34c..00000000 --- a/deps/glslang/Test/baseResults/spv.430.vert.out +++ /dev/null @@ -1,143 +0,0 @@ -spv.430.vert -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 66 - - Capability Shader - Capability ClipDistance - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 12 23 34 38 41 42 62 65 - Source GLSL 450 - Name 4 "main" - Name 10 "gl_PerVertex" - MemberName 10(gl_PerVertex) 0 "gl_ClipDistance" - Name 12 "" - Name 23 "bad" - Name 34 "badorder3" - Name 38 "f" - Name 41 "badorder" - Name 42 "badorder2" - Name 43 "boundblock" - MemberName 43(boundblock) 0 "aoeu" - Name 45 "boundInst" - Name 46 "anonblock" - MemberName 46(anonblock) 0 "aoeu" - Name 48 "" - Name 52 "sampb1" - Name 55 "sampb2" - Name 56 "sampb4" - Name 59 "S" - MemberName 59(S) 0 "a" - MemberName 59(S) 1 "b" - MemberName 59(S) 2 "c" - Name 60 "SS" - MemberName 60(SS) 0 "b" - MemberName 60(SS) 1 "s" - MemberName 60(SS) 2 "c" - Name 62 "var" - Name 63 "MS" - MemberName 63(MS) 0 "f" - Name 65 "outMS" - MemberDecorate 10(gl_PerVertex) 0 BuiltIn ClipDistance - Decorate 10(gl_PerVertex) Block - Decorate 23(bad) Location 0 - Decorate 34(badorder3) Flat - Decorate 34(badorder3) Location 1 - Decorate 38(f) Location 11 - Decorate 41(badorder) Location 10 - Decorate 42(badorder2) Location 0 - Decorate 42(badorder2) Invariant - MemberDecorate 43(boundblock) 0 Offset 0 - Decorate 43(boundblock) Block - Decorate 45(boundInst) DescriptorSet 0 - Decorate 45(boundInst) Binding 3 - MemberDecorate 46(anonblock) 0 Offset 0 - Decorate 46(anonblock) Block - Decorate 48 DescriptorSet 0 - Decorate 48 Binding 7 - Decorate 52(sampb1) DescriptorSet 0 - Decorate 52(sampb1) Binding 4 - Decorate 55(sampb2) DescriptorSet 0 - Decorate 55(sampb2) Binding 5 - Decorate 56(sampb4) DescriptorSet 0 - Decorate 56(sampb4) Binding 31 - MemberDecorate 59(S) 0 RelaxedPrecision - Decorate 62(var) Flat - Decorate 62(var) Location 0 - MemberDecorate 63(MS) 0 Location 17 - Decorate 63(MS) Block - Decorate 65(outMS) Location 2 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeInt 32 0 - 8: 7(int) Constant 3 - 9: TypeArray 6(float) 8 -10(gl_PerVertex): TypeStruct 9 - 11: TypePointer Output 10(gl_PerVertex) - 12: 11(ptr) Variable Output - 13: TypeInt 32 1 - 14: 13(int) Constant 0 - 15: 13(int) Constant 2 - 16: 6(float) Constant 1080872141 - 17: TypePointer Output 6(float) - 19: TypeVector 6(float) 4 - 20: 7(int) Constant 10 - 21: TypeArray 19(fvec4) 20 - 22: TypePointer Input 21 - 23(bad): 22(ptr) Variable Input - 24: 7(int) Constant 0 - 25: TypePointer Input 6(float) - 28: 6(float) Constant 1082549862 - 29: TypeBool - 33: TypePointer Output 19(fvec4) - 34(badorder3): 33(ptr) Variable Output - 35: TypePointer Input 19(fvec4) - 38(f): 25(ptr) Variable Input - 41(badorder): 35(ptr) Variable Input - 42(badorder2): 33(ptr) Variable Output - 43(boundblock): TypeStruct 13(int) - 44: TypePointer Uniform 43(boundblock) - 45(boundInst): 44(ptr) Variable Uniform - 46(anonblock): TypeStruct 13(int) - 47: TypePointer Uniform 46(anonblock) - 48: 47(ptr) Variable Uniform - 49: TypeImage 6(float) 2D sampled format:Unknown - 50: TypeSampledImage 49 - 51: TypePointer UniformConstant 50 - 52(sampb1): 51(ptr) Variable UniformConstant - 53: TypeArray 50 20 - 54: TypePointer UniformConstant 53 - 55(sampb2): 54(ptr) Variable UniformConstant - 56(sampb4): 51(ptr) Variable UniformConstant - 57: TypeVector 7(int) 2 - 58: TypeVector 6(float) 3 - 59(S): TypeStruct 6(float) 57(ivec2) 58(fvec3) - 60(SS): TypeStruct 19(fvec4) 59(S) 19(fvec4) - 61: TypePointer Output 60(SS) - 62(var): 61(ptr) Variable Output - 63(MS): TypeStruct 6(float) - 64: TypePointer Output 63(MS) - 65(outMS): 64(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 18: 17(ptr) AccessChain 12 14 15 - Store 18 16 - 26: 25(ptr) AccessChain 23(bad) 14 24 - 27: 6(float) Load 26 - 30: 29(bool) FOrdEqual 27 28 - SelectionMerge 32 None - BranchConditional 30 31 32 - 31: Label - 36: 35(ptr) AccessChain 23(bad) 14 - 37: 19(fvec4) Load 36 - Store 34(badorder3) 37 - Branch 32 - 32: Label - 39: 6(float) Load 38(f) - 40: 17(ptr) AccessChain 12 14 14 - Store 40 39 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.450.geom.out b/deps/glslang/Test/baseResults/spv.450.geom.out deleted file mode 100644 index 3e7ac455..00000000 --- a/deps/glslang/Test/baseResults/spv.450.geom.out +++ /dev/null @@ -1,77 +0,0 @@ -spv.450.geom -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 31 - - Capability Geometry - Capability GeometryPointSize - Capability MultiViewport - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Geometry 4 "main" 13 20 27 29 - ExecutionMode 4 Triangles - ExecutionMode 4 Invocations 4 - ExecutionMode 4 OutputLineStrip - ExecutionMode 4 OutputVertices 127 - Source GLSL 450 - Name 4 "main" - Name 11 "gl_PerVertex" - MemberName 11(gl_PerVertex) 0 "gl_Position" - MemberName 11(gl_PerVertex) 1 "gl_PointSize" - MemberName 11(gl_PerVertex) 2 "gl_ClipDistance" - MemberName 11(gl_PerVertex) 3 "gl_CullDistance" - Name 13 "" - Name 16 "gl_PerVertex" - MemberName 16(gl_PerVertex) 0 "gl_Position" - MemberName 16(gl_PerVertex) 1 "gl_PointSize" - MemberName 16(gl_PerVertex) 2 "gl_ClipDistance" - MemberName 16(gl_PerVertex) 3 "gl_CullDistance" - Name 20 "gl_in" - Name 27 "gl_Layer" - Name 29 "gl_ViewportIndex" - MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 11(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 11(gl_PerVertex) 2 BuiltIn ClipDistance - MemberDecorate 11(gl_PerVertex) 3 BuiltIn CullDistance - Decorate 11(gl_PerVertex) Block - MemberDecorate 16(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 16(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 16(gl_PerVertex) 2 BuiltIn ClipDistance - MemberDecorate 16(gl_PerVertex) 3 BuiltIn CullDistance - Decorate 16(gl_PerVertex) Block - Decorate 27(gl_Layer) BuiltIn Layer - Decorate 29(gl_ViewportIndex) BuiltIn ViewportIndex - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeInt 32 0 - 9: 8(int) Constant 1 - 10: TypeArray 6(float) 9 -11(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 10 10 - 12: TypePointer Output 11(gl_PerVertex) - 13: 12(ptr) Variable Output - 14: TypeInt 32 1 - 15: 14(int) Constant 1 -16(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 10 10 - 17: 8(int) Constant 3 - 18: TypeArray 16(gl_PerVertex) 17 - 19: TypePointer Input 18 - 20(gl_in): 19(ptr) Variable Input - 21: TypePointer Input 6(float) - 24: TypePointer Output 6(float) - 26: TypePointer Output 14(int) - 27(gl_Layer): 26(ptr) Variable Output - 28: 14(int) Constant 2 -29(gl_ViewportIndex): 26(ptr) Variable Output - 30: 14(int) Constant 3 - 4(main): 2 Function None 3 - 5: Label - 22: 21(ptr) AccessChain 20(gl_in) 15 15 - 23: 6(float) Load 22 - 25: 24(ptr) AccessChain 13 15 - Store 25 23 - Store 27(gl_Layer) 28 - Store 29(gl_ViewportIndex) 30 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.450.noRedecl.tesc.out b/deps/glslang/Test/baseResults/spv.450.noRedecl.tesc.out deleted file mode 100644 index 0925119b..00000000 --- a/deps/glslang/Test/baseResults/spv.450.noRedecl.tesc.out +++ /dev/null @@ -1,48 +0,0 @@ -spv.450.noRedecl.tesc -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 21 - - Capability Tessellation - Capability TessellationPointSize - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint TessellationControl 4 "main" 15 20 - ExecutionMode 4 OutputVertices 4 - Source GLSL 450 - Name 4 "main" - Name 11 "gl_PerVertex" - MemberName 11(gl_PerVertex) 0 "gl_Position" - MemberName 11(gl_PerVertex) 1 "gl_PointSize" - MemberName 11(gl_PerVertex) 2 "gl_ClipDistance" - MemberName 11(gl_PerVertex) 3 "gl_CullDistance" - Name 15 "gl_in" - Name 20 "patchOut" - MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 11(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 11(gl_PerVertex) 2 BuiltIn ClipDistance - MemberDecorate 11(gl_PerVertex) 3 BuiltIn CullDistance - Decorate 11(gl_PerVertex) Block - Decorate 20(patchOut) Patch - Decorate 20(patchOut) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeInt 32 0 - 9: 8(int) Constant 1 - 10: TypeArray 6(float) 9 -11(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 10 10 - 12: 8(int) Constant 32 - 13: TypeArray 11(gl_PerVertex) 12 - 14: TypePointer Input 13 - 15(gl_in): 14(ptr) Variable Input - 16: TypeInt 32 1 - 17: 16(int) Constant 0 - 18: 16(int) Constant 1 - 19: TypePointer Output 7(fvec4) - 20(patchOut): 19(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.450.tesc.out b/deps/glslang/Test/baseResults/spv.450.tesc.out deleted file mode 100644 index c18ab3ff..00000000 --- a/deps/glslang/Test/baseResults/spv.450.tesc.out +++ /dev/null @@ -1,122 +0,0 @@ -spv.450.tesc -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// 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 - Decorate 44 Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeInt 32 0 - 9: 8(int) Constant 1 - 10: TypeArray 6(float) 9 -11(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 10 10 - 12: 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/Test/baseResults/spv.460.comp.out b/deps/glslang/Test/baseResults/spv.460.comp.out deleted file mode 100644 index d53efde6..00000000 --- a/deps/glslang/Test/baseResults/spv.460.comp.out +++ /dev/null @@ -1,33 +0,0 @@ -spv.460.comp -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 15 - - Capability Shader - Capability SubgroupVoteKHR - Extension "SPV_KHR_subgroup_vote" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" - ExecutionMode 4 LocalSize 1 1 1 - Source GLSL 460 - Name 4 "main" - Name 8 "b1" - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeBool - 7: TypePointer Function 6(bool) - 4(main): 2 Function None 3 - 5: Label - 8(b1): 7(ptr) Variable Function - 9: 6(bool) Load 8(b1) - 10: 6(bool) SubgroupAnyKHR 9 - Store 8(b1) 10 - 11: 6(bool) Load 8(b1) - 12: 6(bool) SubgroupAllKHR 11 - Store 8(b1) 12 - 13: 6(bool) Load 8(b1) - 14: 6(bool) SubgroupAllEqualKHR 13 - Store 8(b1) 14 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.460.frag.out b/deps/glslang/Test/baseResults/spv.460.frag.out deleted file mode 100644 index a8bec342..00000000 --- a/deps/glslang/Test/baseResults/spv.460.frag.out +++ /dev/null @@ -1,52 +0,0 @@ -spv.460.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 32 - - Capability Shader - Capability AtomicStorage - Capability AtomicStorageOps - Extension "SPV_KHR_shader_atomic_counter_ops" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginLowerLeft - Source GLSL 460 - Name 4 "main" - Name 8 "aui" - Name 10 "ui" - Decorate 8(aui) Offset 0 - Decorate 8(aui) DescriptorSet 0 - Decorate 8(aui) Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer AtomicCounter 6(int) - 8(aui): 7(ptr) Variable AtomicCounter - 9: TypePointer Private 6(int) - 10(ui): 9(ptr) Variable Private - 12: 6(int) Constant 1 - 13: 6(int) Constant 0 - 4(main): 2 Function None 3 - 5: Label - 11: 6(int) Load 10(ui) - 14: 6(int) AtomicIAdd 8(aui) 12 13 11 - 15: 6(int) Load 10(ui) - 16: 6(int) AtomicISub 8(aui) 12 13 15 - 17: 6(int) Load 10(ui) - 18: 6(int) AtomicUMin 8(aui) 12 13 17 - 19: 6(int) Load 10(ui) - 20: 6(int) AtomicUMax 8(aui) 12 13 19 - 21: 6(int) Load 10(ui) - 22: 6(int) AtomicAnd 8(aui) 12 13 21 - 23: 6(int) Load 10(ui) - 24: 6(int) AtomicOr 8(aui) 12 13 23 - 25: 6(int) Load 10(ui) - 26: 6(int) AtomicXor 8(aui) 12 13 25 - 27: 6(int) Load 10(ui) - 28: 6(int) AtomicExchange 8(aui) 12 13 27 - 29: 6(int) Load 10(ui) - 30: 6(int) Load 10(ui) - 31: 6(int) AtomicCompareExchange 8(aui) 12 13 13 30 29 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.460.vert.out b/deps/glslang/Test/baseResults/spv.460.vert.out deleted file mode 100644 index e15f3647..00000000 --- a/deps/glslang/Test/baseResults/spv.460.vert.out +++ /dev/null @@ -1,45 +0,0 @@ -spv.460.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 20 - - Capability Shader - Capability DrawParameters - Extension "SPV_KHR_shader_draw_parameters" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 10 12 15 18 19 - Source GLSL 460 - Name 4 "main" - Name 8 "a" - Name 10 "gl_BaseVertex" - Name 12 "gl_BaseInstance" - Name 15 "gl_DrawID" - Name 18 "gl_VertexID" - Name 19 "gl_InstanceID" - Decorate 10(gl_BaseVertex) BuiltIn BaseVertex - Decorate 12(gl_BaseInstance) BuiltIn BaseInstance - Decorate 15(gl_DrawID) BuiltIn DrawIndex - Decorate 18(gl_VertexID) BuiltIn VertexId - Decorate 19(gl_InstanceID) BuiltIn InstanceId - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Function 6(int) - 9: TypePointer Input 6(int) -10(gl_BaseVertex): 9(ptr) Variable Input -12(gl_BaseInstance): 9(ptr) Variable Input - 15(gl_DrawID): 9(ptr) Variable Input - 18(gl_VertexID): 9(ptr) Variable Input -19(gl_InstanceID): 9(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 8(a): 7(ptr) Variable Function - 11: 6(int) Load 10(gl_BaseVertex) - 13: 6(int) Load 12(gl_BaseInstance) - 14: 6(int) IAdd 11 13 - 16: 6(int) Load 15(gl_DrawID) - 17: 6(int) IAdd 14 16 - Store 8(a) 17 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.8bit-16bit-construction.frag.out b/deps/glslang/Test/baseResults/spv.8bit-16bit-construction.frag.out deleted file mode 100644 index 4eb90210..00000000 --- a/deps/glslang/Test/baseResults/spv.8bit-16bit-construction.frag.out +++ /dev/null @@ -1,82 +0,0 @@ -spv.8bit-16bit-construction.frag -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 43 - - Capability Shader - Capability StorageUniformBufferBlock16 - Capability UniformAndStorageBuffer8BitAccess - Extension "SPV_KHR_16bit_storage" - Extension "SPV_KHR_8bit_storage" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_shader_16bit_storage" - SourceExtension "GL_EXT_shader_8bit_storage" - Name 4 "main" - Name 11 "B" - MemberName 11(B) 0 "i8_from_i16" - MemberName 11(B) 1 "i16_from_i8" - MemberName 11(B) 2 "u8_from_u16" - MemberName 11(B) 3 "u16_from_u8" - MemberName 11(B) 4 "f16_from_i8" - Name 13 "" - MemberDecorate 11(B) 0 Offset 0 - MemberDecorate 11(B) 1 Offset 2 - MemberDecorate 11(B) 2 Offset 4 - MemberDecorate 11(B) 3 Offset 6 - MemberDecorate 11(B) 4 Offset 8 - Decorate 11(B) BufferBlock - Decorate 13 DescriptorSet 0 - Decorate 13 Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 8 1 - 7: TypeInt 16 1 - 8: TypeInt 8 0 - 9: TypeInt 16 0 - 10: TypeFloat 16 - 11(B): TypeStruct 6(int8_t) 7(int16_t) 8(int8_t) 9(int16_t) 10(float16_t) - 12: TypePointer Uniform 11(B) - 13: 12(ptr) Variable Uniform - 14: TypeInt 32 1 - 15: 14(int) Constant 0 - 16: 14(int) Constant 1 - 19: TypePointer Uniform 6(int8_t) - 23: TypePointer Uniform 7(int16_t) - 25: 14(int) Constant 2 - 26: TypeInt 32 0 - 27: 26(int) Constant 1 - 30: TypePointer Uniform 8(int8_t) - 32: 14(int) Constant 3 - 35: TypePointer Uniform 9(int16_t) - 37: 14(int) Constant 4 - 39: TypeFloat 32 - 41: TypePointer Uniform 10(float16_t) - 4(main): 2 Function None 3 - 5: Label - 17: 7(int16_t) SConvert 16 - 18: 6(int8_t) SConvert 17 - 20: 19(ptr) AccessChain 13 15 - Store 20 18 - 21: 6(int8_t) SConvert 16 - 22: 7(int16_t) SConvert 21 - 24: 23(ptr) AccessChain 13 16 - Store 24 22 - 28: 9(int16_t) UConvert 27 - 29: 8(int8_t) UConvert 28 - 31: 30(ptr) AccessChain 13 25 - Store 31 29 - 33: 8(int8_t) UConvert 27 - 34: 9(int16_t) UConvert 33 - 36: 35(ptr) AccessChain 13 32 - Store 36 34 - 38: 6(int8_t) SConvert 16 - 40:10(float16_t) FConvert 38 - 42: 41(ptr) AccessChain 13 37 - Store 42 40 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.8bitstorage-int.frag.out b/deps/glslang/Test/baseResults/spv.8bitstorage-int.frag.out deleted file mode 100644 index 00ef3098..00000000 --- a/deps/glslang/Test/baseResults/spv.8bitstorage-int.frag.out +++ /dev/null @@ -1,338 +0,0 @@ -spv.8bitstorage-int.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 171 - - Capability Shader - Capability UniformAndStorageBuffer8BitAccess - Extension "SPV_KHR_8bit_storage" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_shader_8bit_storage" - Name 4 "main" - Name 12 "S" - MemberName 12(S) 0 "x" - MemberName 12(S) 1 "y" - MemberName 12(S) 2 "z" - Name 17 "B2" - MemberName 17(B2) 0 "o" - MemberName 17(B2) 1 "p" - MemberName 17(B2) 2 "q" - MemberName 17(B2) 3 "r" - MemberName 17(B2) 4 "u" - MemberName 17(B2) 5 "v" - MemberName 17(B2) 6 "x" - MemberName 17(B2) 7 "w" - Name 19 "b2" - Name 23 "S" - MemberName 23(S) 0 "x" - MemberName 23(S) 1 "y" - MemberName 23(S) 2 "z" - Name 25 "B1" - MemberName 25(B1) 0 "a" - MemberName 25(B1) 1 "b" - MemberName 25(B1) 2 "c" - MemberName 25(B1) 3 "d" - MemberName 25(B1) 4 "g" - MemberName 25(B1) 5 "h" - MemberName 25(B1) 6 "j" - Name 27 "b1" - Name 45 "S" - MemberName 45(S) 0 "x" - MemberName 45(S) 1 "y" - MemberName 45(S) 2 "z" - Name 49 "B5" - MemberName 49(B5) 0 "o" - MemberName 49(B5) 1 "p" - MemberName 49(B5) 2 "q" - MemberName 49(B5) 3 "r" - MemberName 49(B5) 4 "u" - MemberName 49(B5) 5 "v" - MemberName 49(B5) 6 "x" - MemberName 49(B5) 7 "w" - Name 51 "b5" - Name 69 "x0" - Name 75 "x1" - Name 88 "S2" - MemberName 88(S2) 0 "x" - MemberName 88(S2) 1 "y" - MemberName 88(S2) 2 "z" - Name 89 "S3" - MemberName 89(S3) 0 "x" - Name 90 "B4" - MemberName 90(B4) 0 "x" - MemberName 90(B4) 1 "y" - Name 92 "b4" - Name 93 "S2" - MemberName 93(S2) 0 "x" - MemberName 93(S2) 1 "y" - MemberName 93(S2) 2 "z" - Name 94 "B3" - MemberName 94(B3) 0 "x" - Name 96 "b3" - Name 113 "v3" - Name 135 "u3" - Decorate 11 ArrayStride 1 - MemberDecorate 12(S) 0 Offset 0 - MemberDecorate 12(S) 1 Offset 2 - MemberDecorate 12(S) 2 Offset 4 - Decorate 13 ArrayStride 8 - Decorate 15 ArrayStride 2 - Decorate 16 ArrayStride 1 - MemberDecorate 17(B2) 0 Offset 0 - MemberDecorate 17(B2) 1 Offset 2 - MemberDecorate 17(B2) 2 Offset 4 - MemberDecorate 17(B2) 3 Offset 7 - MemberDecorate 17(B2) 4 Offset 12 - MemberDecorate 17(B2) 5 Offset 20 - MemberDecorate 17(B2) 6 Offset 36 - MemberDecorate 17(B2) 7 Offset 236 - Decorate 17(B2) BufferBlock - Decorate 19(b2) DescriptorSet 0 - Decorate 19(b2) Binding 1 - Decorate 22 ArrayStride 16 - MemberDecorate 23(S) 0 Offset 0 - MemberDecorate 23(S) 1 Offset 2 - MemberDecorate 23(S) 2 Offset 4 - Decorate 24 ArrayStride 16 - MemberDecorate 25(B1) 0 Offset 0 - MemberDecorate 25(B1) 1 Offset 2 - MemberDecorate 25(B1) 2 Offset 4 - MemberDecorate 25(B1) 3 Offset 16 - MemberDecorate 25(B1) 4 Offset 48 - MemberDecorate 25(B1) 5 Offset 64 - MemberDecorate 25(B1) 6 Offset 96 - Decorate 25(B1) Block - Decorate 27(b1) DescriptorSet 0 - Decorate 27(b1) Binding 0 - Decorate 44 ArrayStride 16 - MemberDecorate 45(S) 0 Offset 0 - MemberDecorate 45(S) 1 Offset 2 - MemberDecorate 45(S) 2 Offset 4 - Decorate 46 ArrayStride 16 - Decorate 47 ArrayStride 16 - Decorate 48 ArrayStride 16 - MemberDecorate 49(B5) 0 Offset 0 - MemberDecorate 49(B5) 1 Offset 2 - MemberDecorate 49(B5) 2 Offset 4 - MemberDecorate 49(B5) 3 Offset 16 - MemberDecorate 49(B5) 4 Offset 48 - MemberDecorate 49(B5) 5 Offset 64 - MemberDecorate 49(B5) 6 Offset 96 - MemberDecorate 49(B5) 7 Offset 1696 - Decorate 49(B5) Block - Decorate 51(b5) DescriptorSet 0 - Decorate 51(b5) Binding 2 - MemberDecorate 88(S2) 0 ColMajor - MemberDecorate 88(S2) 0 Offset 0 - MemberDecorate 88(S2) 0 MatrixStride 16 - MemberDecorate 88(S2) 1 Offset 64 - MemberDecorate 88(S2) 2 Offset 68 - MemberDecorate 89(S3) 0 Offset 0 - MemberDecorate 90(B4) 0 Offset 0 - MemberDecorate 90(B4) 1 Offset 80 - Decorate 90(B4) BufferBlock - Decorate 92(b4) DescriptorSet 0 - Decorate 92(b4) Binding 4 - MemberDecorate 93(S2) 0 RowMajor - MemberDecorate 93(S2) 0 Offset 0 - MemberDecorate 93(S2) 0 MatrixStride 16 - MemberDecorate 93(S2) 1 Offset 64 - MemberDecorate 93(S2) 2 Offset 68 - MemberDecorate 94(B3) 0 Offset 0 - Decorate 94(B3) BufferBlock - Decorate 96(b3) DescriptorSet 0 - Decorate 96(b3) Binding 3 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 8 1 - 7: TypeVector 6(int8_t) 2 - 8: TypeVector 6(int8_t) 3 - 9: TypeInt 32 0 - 10: 9(int) Constant 2 - 11: TypeArray 6(int8_t) 10 - 12(S): TypeStruct 6(int8_t) 7(i8vec2) 8(i8vec3) - 13: TypeArray 12(S) 10 - 14: 9(int) Constant 100 - 15: TypeArray 7(i8vec2) 14 - 16: TypeRuntimeArray 6(int8_t) - 17(B2): TypeStruct 6(int8_t) 7(i8vec2) 8(i8vec3) 11 12(S) 13 15 16 - 18: TypePointer Uniform 17(B2) - 19(b2): 18(ptr) Variable Uniform - 20: TypeInt 32 1 - 21: 20(int) Constant 0 - 22: TypeArray 6(int8_t) 10 - 23(S): TypeStruct 6(int8_t) 7(i8vec2) 8(i8vec3) - 24: TypeArray 23(S) 10 - 25(B1): TypeStruct 6(int8_t) 7(i8vec2) 8(i8vec3) 22 23(S) 24 20(int) - 26: TypePointer Uniform 25(B1) - 27(b1): 26(ptr) Variable Uniform - 28: TypePointer Uniform 6(int8_t) - 32: 20(int) Constant 1 - 33: 20(int) Constant 2 - 34: TypePointer Uniform 8(i8vec3) - 37: TypeVector 20(int) 3 - 39: TypeVector 20(int) 2 - 42: TypePointer Uniform 7(i8vec2) - 44: TypeArray 6(int8_t) 10 - 45(S): TypeStruct 6(int8_t) 7(i8vec2) 8(i8vec3) - 46: TypeArray 45(S) 10 - 47: TypeArray 7(i8vec2) 14 - 48: TypeArray 6(int8_t) 14 - 49(B5): TypeStruct 6(int8_t) 7(i8vec2) 8(i8vec3) 44 45(S) 46 47 48 - 50: TypePointer Uniform 49(B5) - 51(b5): 50(ptr) Variable Uniform - 58: 20(int) Constant 3 - 68: TypePointer Function 20(int) - 73: TypeVector 20(int) 4 - 74: TypePointer Function 73(ivec4) - 85: TypeFloat 32 - 86: TypeVector 85(float) 4 - 87: TypeMatrix 86(fvec4) 4 - 88(S2): TypeStruct 87 6(int8_t) 20(int) - 89(S3): TypeStruct 88(S2) - 90(B4): TypeStruct 88(S2) 89(S3) - 91: TypePointer Uniform 90(B4) - 92(b4): 91(ptr) Variable Uniform - 93(S2): TypeStruct 87 6(int8_t) 20(int) - 94(B3): TypeStruct 93(S2) - 95: TypePointer Uniform 94(B3) - 96(b3): 95(ptr) Variable Uniform - 97: TypePointer Uniform 87 - 104: 9(int) Constant 0 - 108: 20(int) Constant 5 - 112: TypePointer Function 37(ivec3) - 114: 20(int) Constant 7 - 115: 20(int) Constant 6 - 116: TypePointer Uniform 20(int) - 166: 39(ivec2) ConstantComposite 32 33 - 4(main): 2 Function None 3 - 5: Label - 69(x0): 68(ptr) Variable Function - 75(x1): 74(ptr) Variable Function - 113(v3): 112(ptr) Variable Function - 135(u3): 112(ptr) Variable Function - 29: 28(ptr) AccessChain 27(b1) 21 - 30: 6(int8_t) Load 29 - 31: 28(ptr) AccessChain 19(b2) 21 - Store 31 30 - 35: 34(ptr) AccessChain 19(b2) 33 - 36: 8(i8vec3) Load 35 - 38: 37(ivec3) SConvert 36 - 40: 39(ivec2) VectorShuffle 38 38 0 1 - 41: 7(i8vec2) SConvert 40 - 43: 42(ptr) AccessChain 19(b2) 32 - Store 43 41 - 52: 34(ptr) AccessChain 51(b5) 33 - 53: 8(i8vec3) Load 52 - 54: 37(ivec3) SConvert 53 - 55: 39(ivec2) VectorShuffle 54 54 0 1 - 56: 7(i8vec2) SConvert 55 - 57: 42(ptr) AccessChain 19(b2) 32 - Store 57 56 - 59: 28(ptr) AccessChain 19(b2) 58 21 - 60: 6(int8_t) Load 59 - 61: 28(ptr) AccessChain 19(b2) 58 21 - Store 61 60 - 62: 28(ptr) AccessChain 51(b5) 58 32 - 63: 6(int8_t) Load 62 - 64: 28(ptr) AccessChain 19(b2) 58 32 - Store 64 63 - 65: 42(ptr) AccessChain 19(b2) 32 - 66: 7(i8vec2) Load 65 - 67: 42(ptr) AccessChain 19(b2) 32 - Store 67 66 - 70: 28(ptr) AccessChain 27(b1) 21 - 71: 6(int8_t) Load 70 - 72: 20(int) SConvert 71 - Store 69(x0) 72 - 76: 28(ptr) AccessChain 27(b1) 21 - 77: 6(int8_t) Load 76 - 78: 20(int) SConvert 77 - 79: 42(ptr) AccessChain 19(b2) 32 - 80: 7(i8vec2) Load 79 - 81: 39(ivec2) SConvert 80 - 82: 20(int) CompositeExtract 81 0 - 83: 20(int) CompositeExtract 81 1 - 84: 73(ivec4) CompositeConstruct 78 82 83 32 - Store 75(x1) 84 - 98: 97(ptr) AccessChain 96(b3) 21 21 - 99: 87 Load 98 - 100: 97(ptr) AccessChain 92(b4) 21 21 - Store 100 99 - 101: 42(ptr) AccessChain 19(b2) 32 - 102: 7(i8vec2) Load 101 - 103: 39(ivec2) SConvert 102 - 105: 20(int) CompositeExtract 103 0 - 106: 6(int8_t) SConvert 105 - 107: 28(ptr) AccessChain 19(b2) 21 - Store 107 106 - 109: 42(ptr) AccessChain 19(b2) 108 32 32 - 110: 7(i8vec2) Load 109 - 111: 42(ptr) AccessChain 19(b2) 32 - Store 111 110 - 117: 116(ptr) AccessChain 27(b1) 115 - 118: 20(int) Load 117 - 119: 28(ptr) AccessChain 19(b2) 114 118 - 120: 6(int8_t) Load 119 - 121: 20(int) SConvert 120 - 122: 116(ptr) AccessChain 27(b1) 115 - 123: 20(int) Load 122 - 124: 20(int) IAdd 123 32 - 125: 28(ptr) AccessChain 19(b2) 114 124 - 126: 6(int8_t) Load 125 - 127: 20(int) SConvert 126 - 128: 116(ptr) AccessChain 27(b1) 115 - 129: 20(int) Load 128 - 130: 20(int) IAdd 129 33 - 131: 28(ptr) AccessChain 19(b2) 114 130 - 132: 6(int8_t) Load 131 - 133: 20(int) SConvert 132 - 134: 37(ivec3) CompositeConstruct 121 127 133 - Store 113(v3) 134 - 136: 116(ptr) AccessChain 27(b1) 115 - 137: 20(int) Load 136 - 138: 28(ptr) AccessChain 51(b5) 114 137 - 139: 6(int8_t) Load 138 - 140: 20(int) SConvert 139 - 141: 116(ptr) AccessChain 27(b1) 115 - 142: 20(int) Load 141 - 143: 20(int) IAdd 142 32 - 144: 28(ptr) AccessChain 51(b5) 114 143 - 145: 6(int8_t) Load 144 - 146: 20(int) SConvert 145 - 147: 116(ptr) AccessChain 27(b1) 115 - 148: 20(int) Load 147 - 149: 20(int) IAdd 148 33 - 150: 28(ptr) AccessChain 51(b5) 114 149 - 151: 6(int8_t) Load 150 - 152: 20(int) SConvert 151 - 153: 37(ivec3) CompositeConstruct 140 146 152 - Store 135(u3) 153 - 154: 42(ptr) AccessChain 19(b2) 115 21 - 155: 7(i8vec2) Load 154 - 156: 42(ptr) AccessChain 19(b2) 115 21 - Store 156 155 - 157: 42(ptr) AccessChain 51(b5) 115 32 - 158: 7(i8vec2) Load 157 - 159: 42(ptr) AccessChain 19(b2) 115 32 - Store 159 158 - 160: 28(ptr) AccessChain 27(b1) 21 - 161: 6(int8_t) Load 160 - 162: 28(ptr) AccessChain 19(b2) 32 104 - Store 162 161 - 163: 28(ptr) AccessChain 19(b2) 32 104 - 164: 6(int8_t) Load 163 - 165: 28(ptr) AccessChain 19(b2) 21 - Store 165 164 - 167: 7(i8vec2) SConvert 166 - 168: 42(ptr) AccessChain 19(b2) 32 - Store 168 167 - 169: 6(int8_t) SConvert 58 - 170: 28(ptr) AccessChain 19(b2) 21 - Store 170 169 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.8bitstorage-ssbo.vert.out b/deps/glslang/Test/baseResults/spv.8bitstorage-ssbo.vert.out deleted file mode 100644 index 863eb68f..00000000 --- a/deps/glslang/Test/baseResults/spv.8bitstorage-ssbo.vert.out +++ /dev/null @@ -1,56 +0,0 @@ -spv.8bitstorage-ssbo.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 28 - - Capability Shader - Capability UniformAndStorageBuffer8BitAccess - Extension "SPV_KHR_8bit_storage" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 9 18 - Source GLSL 450 - SourceExtension "GL_EXT_shader_8bit_storage" - Name 4 "main" - Name 9 "color" - Name 12 "Vertices" - MemberName 12(Vertices) 0 "vertices" - Name 14 "" - Name 18 "gl_VertexIndex" - Decorate 9(color) Location 0 - Decorate 11 ArrayStride 1 - MemberDecorate 12(Vertices) 0 NonWritable - MemberDecorate 12(Vertices) 0 Offset 0 - Decorate 12(Vertices) BufferBlock - Decorate 14 DescriptorSet 0 - Decorate 14 Binding 0 - Decorate 18(gl_VertexIndex) BuiltIn VertexIndex - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) - 9(color): 8(ptr) Variable Output - 10: TypeInt 8 0 - 11: TypeRuntimeArray 10(int8_t) - 12(Vertices): TypeStruct 11 - 13: TypePointer Uniform 12(Vertices) - 14: 13(ptr) Variable Uniform - 15: TypeInt 32 1 - 16: 15(int) Constant 0 - 17: TypePointer Input 15(int) -18(gl_VertexIndex): 17(ptr) Variable Input - 20: TypePointer Uniform 10(int8_t) - 23: TypeInt 32 0 - 4(main): 2 Function None 3 - 5: Label - 19: 15(int) Load 18(gl_VertexIndex) - 21: 20(ptr) AccessChain 14 16 19 - 22: 10(int8_t) Load 21 - 24: 23(int) UConvert 22 - 25: 15(int) Bitcast 24 - 26: 6(float) ConvertSToF 25 - 27: 7(fvec4) CompositeConstruct 26 26 26 26 - Store 9(color) 27 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.8bitstorage-ubo.vert.out b/deps/glslang/Test/baseResults/spv.8bitstorage-ubo.vert.out deleted file mode 100644 index c64945fa..00000000 --- a/deps/glslang/Test/baseResults/spv.8bitstorage-ubo.vert.out +++ /dev/null @@ -1,56 +0,0 @@ -spv.8bitstorage-ubo.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 29 - - Capability Shader - Capability UniformAndStorageBuffer8BitAccess - Extension "SPV_KHR_8bit_storage" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 9 20 - Source GLSL 450 - SourceExtension "GL_EXT_shader_8bit_storage" - Name 4 "main" - Name 9 "color" - Name 14 "Vertices" - MemberName 14(Vertices) 0 "vertices" - Name 16 "" - Name 20 "gl_VertexIndex" - Decorate 9(color) Location 0 - Decorate 13 ArrayStride 16 - MemberDecorate 14(Vertices) 0 Offset 0 - Decorate 14(Vertices) Block - Decorate 16 DescriptorSet 0 - Decorate 16 Binding 0 - Decorate 20(gl_VertexIndex) BuiltIn VertexIndex - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) - 9(color): 8(ptr) Variable Output - 10: TypeInt 8 0 - 11: TypeInt 32 0 - 12: 11(int) Constant 512 - 13: TypeArray 10(int8_t) 12 - 14(Vertices): TypeStruct 13 - 15: TypePointer Uniform 14(Vertices) - 16: 15(ptr) Variable Uniform - 17: TypeInt 32 1 - 18: 17(int) Constant 0 - 19: TypePointer Input 17(int) -20(gl_VertexIndex): 19(ptr) Variable Input - 22: TypePointer Uniform 10(int8_t) - 4(main): 2 Function None 3 - 5: Label - 21: 17(int) Load 20(gl_VertexIndex) - 23: 22(ptr) AccessChain 16 18 21 - 24: 10(int8_t) Load 23 - 25: 11(int) UConvert 24 - 26: 17(int) Bitcast 25 - 27: 6(float) ConvertSToF 26 - 28: 7(fvec4) CompositeConstruct 27 27 27 27 - Store 9(color) 28 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.8bitstorage-uint.frag.out b/deps/glslang/Test/baseResults/spv.8bitstorage-uint.frag.out deleted file mode 100644 index 5809991f..00000000 --- a/deps/glslang/Test/baseResults/spv.8bitstorage-uint.frag.out +++ /dev/null @@ -1,340 +0,0 @@ -spv.8bitstorage-uint.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 173 - - Capability Shader - Capability UniformAndStorageBuffer8BitAccess - Extension "SPV_KHR_8bit_storage" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_shader_8bit_storage" - Name 4 "main" - Name 12 "S" - MemberName 12(S) 0 "x" - MemberName 12(S) 1 "y" - MemberName 12(S) 2 "z" - Name 17 "B2" - MemberName 17(B2) 0 "o" - MemberName 17(B2) 1 "p" - MemberName 17(B2) 2 "q" - MemberName 17(B2) 3 "r" - MemberName 17(B2) 4 "u" - MemberName 17(B2) 5 "v" - MemberName 17(B2) 6 "x" - MemberName 17(B2) 7 "w" - Name 19 "b2" - Name 23 "S" - MemberName 23(S) 0 "x" - MemberName 23(S) 1 "y" - MemberName 23(S) 2 "z" - Name 25 "B1" - MemberName 25(B1) 0 "a" - MemberName 25(B1) 1 "b" - MemberName 25(B1) 2 "c" - MemberName 25(B1) 3 "d" - MemberName 25(B1) 4 "g" - MemberName 25(B1) 5 "h" - MemberName 25(B1) 6 "j" - Name 27 "b1" - Name 45 "S" - MemberName 45(S) 0 "x" - MemberName 45(S) 1 "y" - MemberName 45(S) 2 "z" - Name 49 "B5" - MemberName 49(B5) 0 "o" - MemberName 49(B5) 1 "p" - MemberName 49(B5) 2 "q" - MemberName 49(B5) 3 "r" - MemberName 49(B5) 4 "u" - MemberName 49(B5) 5 "v" - MemberName 49(B5) 6 "x" - MemberName 49(B5) 7 "w" - Name 51 "b5" - Name 69 "x0" - Name 75 "x1" - Name 89 "S2" - MemberName 89(S2) 0 "x" - MemberName 89(S2) 1 "y" - MemberName 89(S2) 2 "z" - Name 90 "S3" - MemberName 90(S3) 0 "x" - Name 91 "B4" - MemberName 91(B4) 0 "x" - MemberName 91(B4) 1 "y" - Name 93 "b4" - Name 94 "S2" - MemberName 94(S2) 0 "x" - MemberName 94(S2) 1 "y" - MemberName 94(S2) 2 "z" - Name 95 "B3" - MemberName 95(B3) 0 "x" - Name 97 "b3" - Name 114 "v3" - Name 136 "u3" - Decorate 11 ArrayStride 1 - MemberDecorate 12(S) 0 Offset 0 - MemberDecorate 12(S) 1 Offset 2 - MemberDecorate 12(S) 2 Offset 4 - Decorate 13 ArrayStride 8 - Decorate 15 ArrayStride 2 - Decorate 16 ArrayStride 1 - MemberDecorate 17(B2) 0 Offset 0 - MemberDecorate 17(B2) 1 Offset 2 - MemberDecorate 17(B2) 2 Offset 4 - MemberDecorate 17(B2) 3 Offset 7 - MemberDecorate 17(B2) 4 Offset 12 - MemberDecorate 17(B2) 5 Offset 20 - MemberDecorate 17(B2) 6 Offset 36 - MemberDecorate 17(B2) 7 Offset 236 - Decorate 17(B2) BufferBlock - Decorate 19(b2) DescriptorSet 0 - Decorate 19(b2) Binding 1 - Decorate 22 ArrayStride 16 - MemberDecorate 23(S) 0 Offset 0 - MemberDecorate 23(S) 1 Offset 2 - MemberDecorate 23(S) 2 Offset 4 - Decorate 24 ArrayStride 16 - MemberDecorate 25(B1) 0 Offset 0 - MemberDecorate 25(B1) 1 Offset 2 - MemberDecorate 25(B1) 2 Offset 4 - MemberDecorate 25(B1) 3 Offset 16 - MemberDecorate 25(B1) 4 Offset 48 - MemberDecorate 25(B1) 5 Offset 64 - MemberDecorate 25(B1) 6 Offset 96 - Decorate 25(B1) Block - Decorate 27(b1) DescriptorSet 0 - Decorate 27(b1) Binding 0 - Decorate 44 ArrayStride 16 - MemberDecorate 45(S) 0 Offset 0 - MemberDecorate 45(S) 1 Offset 2 - MemberDecorate 45(S) 2 Offset 4 - Decorate 46 ArrayStride 16 - Decorate 47 ArrayStride 16 - Decorate 48 ArrayStride 16 - MemberDecorate 49(B5) 0 Offset 0 - MemberDecorate 49(B5) 1 Offset 2 - MemberDecorate 49(B5) 2 Offset 4 - MemberDecorate 49(B5) 3 Offset 16 - MemberDecorate 49(B5) 4 Offset 48 - MemberDecorate 49(B5) 5 Offset 64 - MemberDecorate 49(B5) 6 Offset 96 - MemberDecorate 49(B5) 7 Offset 1696 - Decorate 49(B5) Block - Decorate 51(b5) DescriptorSet 0 - Decorate 51(b5) Binding 2 - MemberDecorate 89(S2) 0 ColMajor - MemberDecorate 89(S2) 0 Offset 0 - MemberDecorate 89(S2) 0 MatrixStride 16 - MemberDecorate 89(S2) 1 Offset 64 - MemberDecorate 89(S2) 2 Offset 68 - MemberDecorate 90(S3) 0 Offset 0 - MemberDecorate 91(B4) 0 Offset 0 - MemberDecorate 91(B4) 1 Offset 80 - Decorate 91(B4) BufferBlock - Decorate 93(b4) DescriptorSet 0 - Decorate 93(b4) Binding 4 - MemberDecorate 94(S2) 0 RowMajor - MemberDecorate 94(S2) 0 Offset 0 - MemberDecorate 94(S2) 0 MatrixStride 16 - MemberDecorate 94(S2) 1 Offset 64 - MemberDecorate 94(S2) 2 Offset 68 - MemberDecorate 95(B3) 0 Offset 0 - Decorate 95(B3) BufferBlock - Decorate 97(b3) DescriptorSet 0 - Decorate 97(b3) Binding 3 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 8 0 - 7: TypeVector 6(int8_t) 2 - 8: TypeVector 6(int8_t) 3 - 9: TypeInt 32 0 - 10: 9(int) Constant 2 - 11: TypeArray 6(int8_t) 10 - 12(S): TypeStruct 6(int8_t) 7(i8vec2) 8(i8vec3) - 13: TypeArray 12(S) 10 - 14: 9(int) Constant 100 - 15: TypeArray 7(i8vec2) 14 - 16: TypeRuntimeArray 6(int8_t) - 17(B2): TypeStruct 6(int8_t) 7(i8vec2) 8(i8vec3) 11 12(S) 13 15 16 - 18: TypePointer Uniform 17(B2) - 19(b2): 18(ptr) Variable Uniform - 20: TypeInt 32 1 - 21: 20(int) Constant 0 - 22: TypeArray 6(int8_t) 10 - 23(S): TypeStruct 6(int8_t) 7(i8vec2) 8(i8vec3) - 24: TypeArray 23(S) 10 - 25(B1): TypeStruct 6(int8_t) 7(i8vec2) 8(i8vec3) 22 23(S) 24 9(int) - 26: TypePointer Uniform 25(B1) - 27(b1): 26(ptr) Variable Uniform - 28: TypePointer Uniform 6(int8_t) - 32: 20(int) Constant 1 - 33: 20(int) Constant 2 - 34: TypePointer Uniform 8(i8vec3) - 37: TypeVector 9(int) 3 - 39: TypeVector 9(int) 2 - 42: TypePointer Uniform 7(i8vec2) - 44: TypeArray 6(int8_t) 10 - 45(S): TypeStruct 6(int8_t) 7(i8vec2) 8(i8vec3) - 46: TypeArray 45(S) 10 - 47: TypeArray 7(i8vec2) 14 - 48: TypeArray 6(int8_t) 14 - 49(B5): TypeStruct 6(int8_t) 7(i8vec2) 8(i8vec3) 44 45(S) 46 47 48 - 50: TypePointer Uniform 49(B5) - 51(b5): 50(ptr) Variable Uniform - 58: 20(int) Constant 3 - 68: TypePointer Function 9(int) - 73: TypeVector 9(int) 4 - 74: TypePointer Function 73(ivec4) - 82: 9(int) Constant 1 - 86: TypeFloat 32 - 87: TypeVector 86(float) 4 - 88: TypeMatrix 87(fvec4) 4 - 89(S2): TypeStruct 88 6(int8_t) 9(int) - 90(S3): TypeStruct 89(S2) - 91(B4): TypeStruct 89(S2) 90(S3) - 92: TypePointer Uniform 91(B4) - 93(b4): 92(ptr) Variable Uniform - 94(S2): TypeStruct 88 6(int8_t) 9(int) - 95(B3): TypeStruct 94(S2) - 96: TypePointer Uniform 95(B3) - 97(b3): 96(ptr) Variable Uniform - 98: TypePointer Uniform 88 - 105: 9(int) Constant 0 - 109: 20(int) Constant 5 - 113: TypePointer Function 37(ivec3) - 115: 20(int) Constant 7 - 116: 20(int) Constant 6 - 117: TypePointer Uniform 9(int) - 167: 39(ivec2) ConstantComposite 82 10 - 170: 9(int) Constant 3 - 4(main): 2 Function None 3 - 5: Label - 69(x0): 68(ptr) Variable Function - 75(x1): 74(ptr) Variable Function - 114(v3): 113(ptr) Variable Function - 136(u3): 113(ptr) Variable Function - 29: 28(ptr) AccessChain 27(b1) 21 - 30: 6(int8_t) Load 29 - 31: 28(ptr) AccessChain 19(b2) 21 - Store 31 30 - 35: 34(ptr) AccessChain 19(b2) 33 - 36: 8(i8vec3) Load 35 - 38: 37(ivec3) UConvert 36 - 40: 39(ivec2) VectorShuffle 38 38 0 1 - 41: 7(i8vec2) UConvert 40 - 43: 42(ptr) AccessChain 19(b2) 32 - Store 43 41 - 52: 34(ptr) AccessChain 51(b5) 33 - 53: 8(i8vec3) Load 52 - 54: 37(ivec3) UConvert 53 - 55: 39(ivec2) VectorShuffle 54 54 0 1 - 56: 7(i8vec2) UConvert 55 - 57: 42(ptr) AccessChain 19(b2) 32 - Store 57 56 - 59: 28(ptr) AccessChain 19(b2) 58 21 - 60: 6(int8_t) Load 59 - 61: 28(ptr) AccessChain 19(b2) 58 21 - Store 61 60 - 62: 28(ptr) AccessChain 51(b5) 58 32 - 63: 6(int8_t) Load 62 - 64: 28(ptr) AccessChain 19(b2) 58 32 - Store 64 63 - 65: 42(ptr) AccessChain 19(b2) 32 - 66: 7(i8vec2) Load 65 - 67: 42(ptr) AccessChain 19(b2) 32 - Store 67 66 - 70: 28(ptr) AccessChain 27(b1) 21 - 71: 6(int8_t) Load 70 - 72: 9(int) UConvert 71 - Store 69(x0) 72 - 76: 28(ptr) AccessChain 27(b1) 21 - 77: 6(int8_t) Load 76 - 78: 9(int) UConvert 77 - 79: 42(ptr) AccessChain 19(b2) 32 - 80: 7(i8vec2) Load 79 - 81: 39(ivec2) UConvert 80 - 83: 9(int) CompositeExtract 81 0 - 84: 9(int) CompositeExtract 81 1 - 85: 73(ivec4) CompositeConstruct 78 83 84 82 - Store 75(x1) 85 - 99: 98(ptr) AccessChain 97(b3) 21 21 - 100: 88 Load 99 - 101: 98(ptr) AccessChain 93(b4) 21 21 - Store 101 100 - 102: 42(ptr) AccessChain 19(b2) 32 - 103: 7(i8vec2) Load 102 - 104: 39(ivec2) UConvert 103 - 106: 9(int) CompositeExtract 104 0 - 107: 6(int8_t) UConvert 106 - 108: 28(ptr) AccessChain 19(b2) 21 - Store 108 107 - 110: 42(ptr) AccessChain 19(b2) 109 32 32 - 111: 7(i8vec2) Load 110 - 112: 42(ptr) AccessChain 19(b2) 32 - Store 112 111 - 118: 117(ptr) AccessChain 27(b1) 116 - 119: 9(int) Load 118 - 120: 28(ptr) AccessChain 19(b2) 115 119 - 121: 6(int8_t) Load 120 - 122: 9(int) UConvert 121 - 123: 117(ptr) AccessChain 27(b1) 116 - 124: 9(int) Load 123 - 125: 9(int) IAdd 124 82 - 126: 28(ptr) AccessChain 19(b2) 115 125 - 127: 6(int8_t) Load 126 - 128: 9(int) UConvert 127 - 129: 117(ptr) AccessChain 27(b1) 116 - 130: 9(int) Load 129 - 131: 9(int) IAdd 130 10 - 132: 28(ptr) AccessChain 19(b2) 115 131 - 133: 6(int8_t) Load 132 - 134: 9(int) UConvert 133 - 135: 37(ivec3) CompositeConstruct 122 128 134 - Store 114(v3) 135 - 137: 117(ptr) AccessChain 27(b1) 116 - 138: 9(int) Load 137 - 139: 28(ptr) AccessChain 51(b5) 115 138 - 140: 6(int8_t) Load 139 - 141: 9(int) UConvert 140 - 142: 117(ptr) AccessChain 27(b1) 116 - 143: 9(int) Load 142 - 144: 9(int) IAdd 143 82 - 145: 28(ptr) AccessChain 51(b5) 115 144 - 146: 6(int8_t) Load 145 - 147: 9(int) UConvert 146 - 148: 117(ptr) AccessChain 27(b1) 116 - 149: 9(int) Load 148 - 150: 9(int) IAdd 149 10 - 151: 28(ptr) AccessChain 51(b5) 115 150 - 152: 6(int8_t) Load 151 - 153: 9(int) UConvert 152 - 154: 37(ivec3) CompositeConstruct 141 147 153 - Store 136(u3) 154 - 155: 42(ptr) AccessChain 19(b2) 116 21 - 156: 7(i8vec2) Load 155 - 157: 42(ptr) AccessChain 19(b2) 116 21 - Store 157 156 - 158: 42(ptr) AccessChain 51(b5) 116 32 - 159: 7(i8vec2) Load 158 - 160: 42(ptr) AccessChain 19(b2) 116 32 - Store 160 159 - 161: 28(ptr) AccessChain 27(b1) 21 - 162: 6(int8_t) Load 161 - 163: 28(ptr) AccessChain 19(b2) 32 105 - Store 163 162 - 164: 28(ptr) AccessChain 19(b2) 32 105 - 165: 6(int8_t) Load 164 - 166: 28(ptr) AccessChain 19(b2) 21 - Store 166 165 - 168: 7(i8vec2) UConvert 167 - 169: 42(ptr) AccessChain 19(b2) 32 - Store 169 168 - 171: 6(int8_t) UConvert 170 - 172: 28(ptr) AccessChain 19(b2) 21 - Store 172 171 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.8bitstorage_Error-int.frag.out b/deps/glslang/Test/baseResults/spv.8bitstorage_Error-int.frag.out deleted file mode 100644 index 5607670f..00000000 --- a/deps/glslang/Test/baseResults/spv.8bitstorage_Error-int.frag.out +++ /dev/null @@ -1,71 +0,0 @@ -spv.8bitstorage_Error-int.frag -ERROR: 0:54: 'structure: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:58: 'return: can't use with structs containing int8' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:61: 'int8_t: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:74: '[: does not operate on types containing (u)int8' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:75: '.: can't swizzle types containing (u)int8' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:76: 'built-in function: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:76: 'built-in function: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:76: 'built-in function: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:77: 'built-in function: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:77: 'built-in function: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:78: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform int8_t' and a right operand of type 'layout( column_major std140 offset=0) uniform int8_t' (or there is no acceptable conversion) -ERROR: 0:79: '-' : wrong operand type no operation '-' exists that takes an operand of type layout( column_major std140 offset=0) uniform int8_t (or there is no acceptable conversion) -ERROR: 0:80: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform int8_t' and a right operand of type ' const int' (or there is no acceptable conversion) -ERROR: 0:81: '.: can't swizzle types containing (u)int8' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:82: '=: can't use with structs containing int8' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:83: 'qualifier: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:84: 'qualifier: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:85: 'qualifier: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:86: '==' : wrong operand types: no operation '==' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform int8_t' and a right operand of type 'layout( column_major std140 offset=0) uniform int8_t' (or there is no acceptable conversion) -ERROR: 0:87: '=: can't use with arrays containing int8' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:88: 'constructor: 8-bit vectors only take vector types' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:89: 'constructor: 8-bit arrays not supported' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:89: 'constructor: 8-bit vectors only take vector types' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:92: 'constructor: can't construct structure containing 8-bit type' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:93: 'func2' : no matching overloaded function found -ERROR: 0:99: '' : syntax error, unexpected IDENTIFIER -ERROR: 26 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.8bitstorage_Error-uint.frag.out b/deps/glslang/Test/baseResults/spv.8bitstorage_Error-uint.frag.out deleted file mode 100644 index c55a6309..00000000 --- a/deps/glslang/Test/baseResults/spv.8bitstorage_Error-uint.frag.out +++ /dev/null @@ -1,71 +0,0 @@ -spv.8bitstorage_Error-uint.frag -ERROR: 0:54: 'structure: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:58: 'return: can't use with structs containing uint8' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:61: 'uint8_t: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:74: '[: does not operate on types containing (u)int8' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:75: '.: can't swizzle types containing (u)int8' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:76: 'built-in function: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:76: 'built-in function: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:76: 'built-in function: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:77: 'built-in function: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:77: 'built-in function: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:78: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform uint8_t' and a right operand of type 'layout( column_major std140 offset=0) uniform uint8_t' (or there is no acceptable conversion) -ERROR: 0:79: '-' : wrong operand type no operation '-' exists that takes an operand of type layout( column_major std140 offset=0) uniform uint8_t (or there is no acceptable conversion) -ERROR: 0:80: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform uint8_t' and a right operand of type ' const int' (or there is no acceptable conversion) -ERROR: 0:81: '.: can't swizzle types containing (u)int8' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:82: '=: can't use with structs containing uint8' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:83: 'qualifier: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:84: 'qualifier: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:85: 'qualifier: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:86: '==' : wrong operand types: no operation '==' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform uint8_t' and a right operand of type 'layout( column_major std140 offset=0) uniform uint8_t' (or there is no acceptable conversion) -ERROR: 0:87: '=: can't use with arrays containing uint8' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:88: 'constructor: 8-bit vectors only take vector types' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:89: 'constructor: 8-bit arrays not supported' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:89: 'constructor: 8-bit vectors only take vector types' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:92: 'constructor: can't construct structure containing 8-bit type' : required extension not requested: Possible extensions include: -GL_EXT_shader_explicit_arithmetic_types -GL_EXT_shader_explicit_arithmetic_types_int8 -ERROR: 0:93: 'func2' : no matching overloaded function found -ERROR: 0:99: '' : syntax error, unexpected IDENTIFIER -ERROR: 26 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.AnyHitShader.rahit.out b/deps/glslang/Test/baseResults/spv.AnyHitShader.rahit.out deleted file mode 100644 index c893f88d..00000000 --- a/deps/glslang/Test/baseResults/spv.AnyHitShader.rahit.out +++ /dev/null @@ -1,163 +0,0 @@ -spv.AnyHitShader.rahit -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 81 - - Capability RayTracingNV - Extension "SPV_NV_ray_tracing" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint AnyHitKHR 4 "main" 11 14 20 23 26 33 36 39 42 47 50 53 58 64 67 - Source GLSL 460 - SourceExtension "GL_NV_ray_tracing" - Name 4 "main" - Name 9 "v0" - Name 11 "gl_LaunchIDNV" - Name 13 "v1" - Name 14 "gl_LaunchSizeNV" - Name 18 "v2" - Name 20 "gl_PrimitiveID" - Name 22 "v3" - Name 23 "gl_InstanceID" - Name 25 "v4" - Name 26 "gl_InstanceCustomIndexNV" - Name 31 "v5" - Name 33 "gl_WorldRayOriginNV" - Name 35 "v6" - Name 36 "gl_WorldRayDirectionNV" - Name 38 "v7" - Name 39 "gl_ObjectRayOriginNV" - Name 41 "v8" - Name 42 "gl_ObjectRayDirectionNV" - Name 45 "v9" - Name 47 "gl_RayTminNV" - Name 49 "v10" - Name 50 "gl_RayTmaxNV" - Name 52 "v11" - Name 53 "gl_HitTNV" - Name 56 "v12" - Name 58 "gl_HitKindNV" - Name 62 "v13" - Name 64 "gl_ObjectToWorldNV" - Name 66 "v14" - Name 67 "gl_WorldToObjectNV" - Name 71 "incomingPayload" - Decorate 11(gl_LaunchIDNV) BuiltIn LaunchIdKHR - Decorate 14(gl_LaunchSizeNV) BuiltIn LaunchSizeKHR - Decorate 20(gl_PrimitiveID) BuiltIn PrimitiveId - Decorate 23(gl_InstanceID) BuiltIn InstanceId - Decorate 26(gl_InstanceCustomIndexNV) BuiltIn InstanceCustomIndexKHR - Decorate 33(gl_WorldRayOriginNV) BuiltIn WorldRayOriginKHR - Decorate 36(gl_WorldRayDirectionNV) BuiltIn WorldRayDirectionKHR - Decorate 39(gl_ObjectRayOriginNV) BuiltIn ObjectRayOriginKHR - Decorate 42(gl_ObjectRayDirectionNV) BuiltIn ObjectRayDirectionKHR - Decorate 47(gl_RayTminNV) BuiltIn RayTminKHR - Decorate 50(gl_RayTmaxNV) BuiltIn RayTmaxKHR - Decorate 53(gl_HitTNV) BuiltIn HitTNV - Decorate 58(gl_HitKindNV) BuiltIn HitKindKHR - Decorate 64(gl_ObjectToWorldNV) BuiltIn ObjectToWorldKHR - Decorate 67(gl_WorldToObjectNV) BuiltIn WorldToObjectKHR - Decorate 71(incomingPayload) Location 1 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeVector 6(int) 3 - 8: TypePointer Function 7(ivec3) - 10: TypePointer Input 7(ivec3) -11(gl_LaunchIDNV): 10(ptr) Variable Input -14(gl_LaunchSizeNV): 10(ptr) Variable Input - 16: TypeInt 32 1 - 17: TypePointer Function 16(int) - 19: TypePointer Input 16(int) -20(gl_PrimitiveID): 19(ptr) Variable Input -23(gl_InstanceID): 19(ptr) Variable Input -26(gl_InstanceCustomIndexNV): 19(ptr) Variable Input - 28: TypeFloat 32 - 29: TypeVector 28(float) 3 - 30: TypePointer Function 29(fvec3) - 32: TypePointer Input 29(fvec3) -33(gl_WorldRayOriginNV): 32(ptr) Variable Input -36(gl_WorldRayDirectionNV): 32(ptr) Variable Input -39(gl_ObjectRayOriginNV): 32(ptr) Variable Input -42(gl_ObjectRayDirectionNV): 32(ptr) Variable Input - 44: TypePointer Function 28(float) - 46: TypePointer Input 28(float) -47(gl_RayTminNV): 46(ptr) Variable Input -50(gl_RayTmaxNV): 46(ptr) Variable Input - 53(gl_HitTNV): 46(ptr) Variable Input - 55: TypePointer Function 6(int) - 57: TypePointer Input 6(int) -58(gl_HitKindNV): 57(ptr) Variable Input - 60: TypeMatrix 29(fvec3) 4 - 61: TypePointer Function 60 - 63: TypePointer Input 60 -64(gl_ObjectToWorldNV): 63(ptr) Variable Input -67(gl_WorldToObjectNV): 63(ptr) Variable Input - 69: TypeVector 28(float) 4 - 70: TypePointer IncomingRayPayloadKHR 69(fvec4) -71(incomingPayload): 70(ptr) Variable IncomingRayPayloadKHR - 72: 28(float) Constant 1056964608 - 73: 69(fvec4) ConstantComposite 72 72 72 72 - 75: 16(int) Constant 1 - 76: TypeBool - 4(main): 2 Function None 3 - 5: Label - 9(v0): 8(ptr) Variable Function - 13(v1): 8(ptr) Variable Function - 18(v2): 17(ptr) Variable Function - 22(v3): 17(ptr) Variable Function - 25(v4): 17(ptr) Variable Function - 31(v5): 30(ptr) Variable Function - 35(v6): 30(ptr) Variable Function - 38(v7): 30(ptr) Variable Function - 41(v8): 30(ptr) Variable Function - 45(v9): 44(ptr) Variable Function - 49(v10): 44(ptr) Variable Function - 52(v11): 44(ptr) Variable Function - 56(v12): 55(ptr) Variable Function - 62(v13): 61(ptr) Variable Function - 66(v14): 61(ptr) Variable Function - 12: 7(ivec3) Load 11(gl_LaunchIDNV) - Store 9(v0) 12 - 15: 7(ivec3) Load 14(gl_LaunchSizeNV) - Store 13(v1) 15 - 21: 16(int) Load 20(gl_PrimitiveID) - Store 18(v2) 21 - 24: 16(int) Load 23(gl_InstanceID) - Store 22(v3) 24 - 27: 16(int) Load 26(gl_InstanceCustomIndexNV) - Store 25(v4) 27 - 34: 29(fvec3) Load 33(gl_WorldRayOriginNV) - Store 31(v5) 34 - 37: 29(fvec3) Load 36(gl_WorldRayDirectionNV) - Store 35(v6) 37 - 40: 29(fvec3) Load 39(gl_ObjectRayOriginNV) - Store 38(v7) 40 - 43: 29(fvec3) Load 42(gl_ObjectRayDirectionNV) - Store 41(v8) 43 - 48: 28(float) Load 47(gl_RayTminNV) - Store 45(v9) 48 - 51: 28(float) Load 50(gl_RayTmaxNV) - Store 49(v10) 51 - 54: 28(float) Load 53(gl_HitTNV) - Store 52(v11) 54 - 59: 6(int) Load 58(gl_HitKindNV) - Store 56(v12) 59 - 65: 60 Load 64(gl_ObjectToWorldNV) - Store 62(v13) 65 - 68: 60 Load 67(gl_WorldToObjectNV) - Store 66(v14) 68 - Store 71(incomingPayload) 73 - 74: 16(int) Load 18(v2) - 77: 76(bool) IEqual 74 75 - SelectionMerge 79 None - BranchConditional 77 78 80 - 78: Label - IgnoreIntersectionNV - Branch 79 - 80: Label - TerminateRayNV - Branch 79 - 79: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.AnyHitShaderMotion.rahit.out b/deps/glslang/Test/baseResults/spv.AnyHitShaderMotion.rahit.out deleted file mode 100644 index f9e1e1b9..00000000 --- a/deps/glslang/Test/baseResults/spv.AnyHitShaderMotion.rahit.out +++ /dev/null @@ -1,33 +0,0 @@ -spv.AnyHitShaderMotion.rahit -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 14 - - Capability RayTracingKHR - Capability RayTracingMotionBlurNV - Extension "SPV_KHR_ray_tracing" - Extension "SPV_NV_ray_tracing_motion_blur" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint AnyHitKHR 4 "main" 10 - Source GLSL 460 - SourceExtension "GL_NV_ray_tracing_motion_blur" - Name 4 "main" - Name 8 "time" - Name 10 "gl_CurrentRayTimeNV" - Decorate 10(gl_CurrentRayTimeNV) BuiltIn CurrentRayTimeNV - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypePointer Function 6(float) - 9: TypePointer Input 6(float) -10(gl_CurrentRayTimeNV): 9(ptr) Variable Input - 12: 6(float) Constant 1056964608 - 4(main): 2 Function None 3 - 5: Label - 8(time): 7(ptr) Variable Function - 11: 6(float) Load 10(gl_CurrentRayTimeNV) - 13: 6(float) FAdd 11 12 - Store 8(time) 13 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.AnyHitShader_Errors.rahit.out b/deps/glslang/Test/baseResults/spv.AnyHitShader_Errors.rahit.out deleted file mode 100644 index e9bab082..00000000 --- a/deps/glslang/Test/baseResults/spv.AnyHitShader_Errors.rahit.out +++ /dev/null @@ -1,8 +0,0 @@ -spv.AnyHitShader_Errors.rahit -ERROR: 0:8: 'assign' : l-value required "payload" (cannot modify hitAttributeNV in this stage) -ERROR: 0:9: 'reportIntersectionNV' : no matching overloaded function found -ERROR: 0:10: 'traceNV' : no matching overloaded function found -ERROR: 3 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.AofA.frag.out b/deps/glslang/Test/baseResults/spv.AofA.frag.out deleted file mode 100644 index 57cdcb06..00000000 --- a/deps/glslang/Test/baseResults/spv.AofA.frag.out +++ /dev/null @@ -1,160 +0,0 @@ -spv.AofA.frag -WARNING: 0:6: '[][]' : Generating SPIR-V array-of-arrays, but Vulkan only supports single array level for this resource - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 104 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 39 44 68 70 72 78 - ExecutionMode 4 OriginUpperLeft - Source GLSL 430 - Name 4 "main" - Name 17 "foo(f1[5][7];" - Name 16 "a" - Name 20 "r" - Name 39 "outfloat" - Name 42 "g4" - Name 44 "g5" - Name 45 "param" - Name 48 "u" - Name 52 "param" - Name 66 "many" - Name 68 "i" - Name 70 "j" - Name 72 "k" - Name 78 "infloat" - Name 94 "uAofA" - MemberName 94(uAofA) 0 "f" - Name 98 "nameAofA" - Decorate 39(outfloat) Location 0 - Decorate 44(g5) Location 1 - Decorate 68(i) Flat - Decorate 68(i) Location 36 - Decorate 70(j) Flat - Decorate 70(j) Location 37 - Decorate 72(k) Flat - Decorate 72(k) Location 38 - Decorate 78(infloat) Location 0 - Decorate 92 ArrayStride 16 - Decorate 93 ArrayStride 64 - MemberDecorate 94(uAofA) 0 Offset 0 - Decorate 94(uAofA) Block - Decorate 98(nameAofA) DescriptorSet 0 - Decorate 98(nameAofA) Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeInt 32 0 - 8: 7(int) Constant 7 - 9: TypeArray 6(float) 8 - 10: 7(int) Constant 5 - 11: TypeArray 9 10 - 12: TypePointer Function 11 - 13: 7(int) Constant 4 - 14: TypeArray 9 13 - 15: TypeFunction 14 12(ptr) - 19: TypePointer Function 9 - 21: TypeInt 32 1 - 22: 21(int) Constant 2 - 25: 21(int) Constant 0 - 28: 21(int) Constant 1 - 32: 21(int) Constant 3 - 38: TypePointer Output 6(float) - 39(outfloat): 38(ptr) Variable Output - 40: 6(float) Constant 0 - 41: TypePointer Private 14 - 42(g4): 41(ptr) Variable Private - 43: TypePointer Input 11 - 44(g5): 43(ptr) Variable Input - 49: 6(float) Constant 1077936128 - 50: TypePointer Function 6(float) - 55: 7(int) Constant 6 - 56: TypeArray 6(float) 55 - 57: TypeArray 56 10 - 58: TypeArray 57 13 - 59: 7(int) Constant 3 - 60: TypeArray 58 59 - 61: 7(int) Constant 2 - 62: TypeArray 60 61 - 63: 7(int) Constant 1 - 64: TypeArray 62 63 - 65: TypePointer Private 64 - 66(many): 65(ptr) Variable Private - 67: TypePointer Input 21(int) - 68(i): 67(ptr) Variable Input - 70(j): 67(ptr) Variable Input - 72(k): 67(ptr) Variable Input - 77: TypePointer Input 6(float) - 78(infloat): 77(ptr) Variable Input - 80: TypePointer Private 6(float) - 92: TypeArray 6(float) 13 - 93: TypeArray 92 61 - 94(uAofA): TypeStruct 93 - 95: TypeArray 94(uAofA) 10 - 96: TypeArray 95 59 - 97: TypePointer Uniform 96 - 98(nameAofA): 97(ptr) Variable Uniform - 99: TypePointer Uniform 6(float) - 4(main): 2 Function None 3 - 5: Label - 45(param): 12(ptr) Variable Function - 48(u): 12(ptr) Variable Function - 52(param): 12(ptr) Variable Function - Store 39(outfloat) 40 - 46: 11 Load 44(g5) - Store 45(param) 46 - 47: 14 FunctionCall 17(foo(f1[5][7];) 45(param) - Store 42(g4) 47 - 51: 50(ptr) AccessChain 48(u) 22 22 - Store 51 49 - 53: 11 Load 48(u) - Store 52(param) 53 - 54: 14 FunctionCall 17(foo(f1[5][7];) 52(param) - 69: 21(int) Load 68(i) - 71: 21(int) Load 70(j) - 73: 21(int) Load 72(k) - 74: 21(int) Load 68(i) - 75: 21(int) Load 70(j) - 76: 21(int) Load 72(k) - 79: 6(float) Load 78(infloat) - 81: 80(ptr) AccessChain 66(many) 69 71 73 74 75 76 - Store 81 79 - 82: 21(int) Load 70(j) - 83: 21(int) Load 70(j) - 84: 21(int) Load 70(j) - 85: 21(int) Load 70(j) - 86: 21(int) Load 70(j) - 87: 21(int) Load 70(j) - 88: 80(ptr) AccessChain 66(many) 82 83 84 85 86 87 - 89: 6(float) Load 88 - 90: 6(float) Load 39(outfloat) - 91: 6(float) FAdd 90 89 - Store 39(outfloat) 91 - 100: 99(ptr) AccessChain 98(nameAofA) 28 22 25 25 32 - 101: 6(float) Load 100 - 102: 6(float) Load 39(outfloat) - 103: 6(float) FAdd 102 101 - Store 39(outfloat) 103 - Return - FunctionEnd -17(foo(f1[5][7];): 14 Function None 15 - 16(a): 12(ptr) FunctionParameter - 18: Label - 20(r): 19(ptr) Variable Function - 23: 19(ptr) AccessChain 16(a) 22 - 24: 9 Load 23 - Store 20(r) 24 - 26: 19(ptr) AccessChain 16(a) 25 - 27: 9 Load 26 - 29: 19(ptr) AccessChain 16(a) 28 - 30: 9 Load 29 - 31: 9 Load 20(r) - 33: 19(ptr) AccessChain 16(a) 32 - 34: 9 Load 33 - 35: 14 CompositeConstruct 27 30 31 34 - ReturnValue 35 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.ClosestHitShader.rchit.out b/deps/glslang/Test/baseResults/spv.ClosestHitShader.rchit.out deleted file mode 100644 index b76629c2..00000000 --- a/deps/glslang/Test/baseResults/spv.ClosestHitShader.rchit.out +++ /dev/null @@ -1,169 +0,0 @@ -spv.ClosestHitShader.rchit -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 88 - - Capability RayTracingNV - Extension "SPV_NV_ray_tracing" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint ClosestHitKHR 4 "main" 11 14 20 23 26 33 36 39 42 47 50 53 58 64 67 - Source GLSL 460 - SourceExtension "GL_NV_ray_tracing" - Name 4 "main" - Name 9 "v0" - Name 11 "gl_LaunchIDNV" - Name 13 "v1" - Name 14 "gl_LaunchSizeNV" - Name 18 "v2" - Name 20 "gl_PrimitiveID" - Name 22 "v3" - Name 23 "gl_InstanceID" - Name 25 "v4" - Name 26 "gl_InstanceCustomIndexNV" - Name 31 "v5" - Name 33 "gl_WorldRayOriginNV" - Name 35 "v6" - Name 36 "gl_WorldRayDirectionNV" - Name 38 "v7" - Name 39 "gl_ObjectRayOriginNV" - Name 41 "v8" - Name 42 "gl_ObjectRayDirectionNV" - Name 45 "v9" - Name 47 "gl_RayTminNV" - Name 49 "v10" - Name 50 "gl_RayTmaxNV" - Name 52 "v11" - Name 53 "gl_HitTNV" - Name 56 "v12" - Name 58 "gl_HitKindNV" - Name 62 "v13" - Name 64 "gl_ObjectToWorldNV" - Name 66 "v14" - Name 67 "gl_WorldToObjectNV" - Name 71 "accNV" - Name 85 "localPayload" - Name 87 "incomingPayload" - Decorate 11(gl_LaunchIDNV) BuiltIn LaunchIdKHR - Decorate 14(gl_LaunchSizeNV) BuiltIn LaunchSizeKHR - Decorate 20(gl_PrimitiveID) BuiltIn PrimitiveId - Decorate 23(gl_InstanceID) BuiltIn InstanceId - Decorate 26(gl_InstanceCustomIndexNV) BuiltIn InstanceCustomIndexKHR - Decorate 33(gl_WorldRayOriginNV) BuiltIn WorldRayOriginKHR - Decorate 36(gl_WorldRayDirectionNV) BuiltIn WorldRayDirectionKHR - Decorate 39(gl_ObjectRayOriginNV) BuiltIn ObjectRayOriginKHR - Decorate 42(gl_ObjectRayDirectionNV) BuiltIn ObjectRayDirectionKHR - Decorate 47(gl_RayTminNV) BuiltIn RayTminKHR - Decorate 50(gl_RayTmaxNV) BuiltIn RayTmaxKHR - Decorate 53(gl_HitTNV) BuiltIn HitTNV - Decorate 58(gl_HitKindNV) BuiltIn HitKindKHR - Decorate 64(gl_ObjectToWorldNV) BuiltIn ObjectToWorldKHR - Decorate 67(gl_WorldToObjectNV) BuiltIn WorldToObjectKHR - Decorate 71(accNV) DescriptorSet 0 - Decorate 71(accNV) Binding 0 - Decorate 85(localPayload) Location 0 - Decorate 87(incomingPayload) Location 1 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeVector 6(int) 3 - 8: TypePointer Function 7(ivec3) - 10: TypePointer Input 7(ivec3) -11(gl_LaunchIDNV): 10(ptr) Variable Input -14(gl_LaunchSizeNV): 10(ptr) Variable Input - 16: TypeInt 32 1 - 17: TypePointer Function 16(int) - 19: TypePointer Input 16(int) -20(gl_PrimitiveID): 19(ptr) Variable Input -23(gl_InstanceID): 19(ptr) Variable Input -26(gl_InstanceCustomIndexNV): 19(ptr) Variable Input - 28: TypeFloat 32 - 29: TypeVector 28(float) 3 - 30: TypePointer Function 29(fvec3) - 32: TypePointer Input 29(fvec3) -33(gl_WorldRayOriginNV): 32(ptr) Variable Input -36(gl_WorldRayDirectionNV): 32(ptr) Variable Input -39(gl_ObjectRayOriginNV): 32(ptr) Variable Input -42(gl_ObjectRayDirectionNV): 32(ptr) Variable Input - 44: TypePointer Function 28(float) - 46: TypePointer Input 28(float) -47(gl_RayTminNV): 46(ptr) Variable Input -50(gl_RayTmaxNV): 46(ptr) Variable Input - 53(gl_HitTNV): 46(ptr) Variable Input - 55: TypePointer Function 6(int) - 57: TypePointer Input 6(int) -58(gl_HitKindNV): 57(ptr) Variable Input - 60: TypeMatrix 29(fvec3) 4 - 61: TypePointer Function 60 - 63: TypePointer Input 60 -64(gl_ObjectToWorldNV): 63(ptr) Variable Input -67(gl_WorldToObjectNV): 63(ptr) Variable Input - 69: TypeAccelerationStructureKHR - 70: TypePointer UniformConstant 69 - 71(accNV): 70(ptr) Variable UniformConstant - 73: 6(int) Constant 0 - 74: 6(int) Constant 1 - 75: 6(int) Constant 2 - 76: 6(int) Constant 3 - 77: 28(float) Constant 1056964608 - 78: 29(fvec3) ConstantComposite 77 77 77 - 79: 28(float) Constant 1065353216 - 80: 29(fvec3) ConstantComposite 79 79 79 - 81: 28(float) Constant 1061158912 - 82: 16(int) Constant 1 - 83: TypeVector 28(float) 4 - 84: TypePointer RayPayloadKHR 83(fvec4) -85(localPayload): 84(ptr) Variable RayPayloadKHR - 86: TypePointer IncomingRayPayloadKHR 83(fvec4) -87(incomingPayload): 86(ptr) Variable IncomingRayPayloadKHR - 4(main): 2 Function None 3 - 5: Label - 9(v0): 8(ptr) Variable Function - 13(v1): 8(ptr) Variable Function - 18(v2): 17(ptr) Variable Function - 22(v3): 17(ptr) Variable Function - 25(v4): 17(ptr) Variable Function - 31(v5): 30(ptr) Variable Function - 35(v6): 30(ptr) Variable Function - 38(v7): 30(ptr) Variable Function - 41(v8): 30(ptr) Variable Function - 45(v9): 44(ptr) Variable Function - 49(v10): 44(ptr) Variable Function - 52(v11): 44(ptr) Variable Function - 56(v12): 55(ptr) Variable Function - 62(v13): 61(ptr) Variable Function - 66(v14): 61(ptr) Variable Function - 12: 7(ivec3) Load 11(gl_LaunchIDNV) - Store 9(v0) 12 - 15: 7(ivec3) Load 14(gl_LaunchSizeNV) - Store 13(v1) 15 - 21: 16(int) Load 20(gl_PrimitiveID) - Store 18(v2) 21 - 24: 16(int) Load 23(gl_InstanceID) - Store 22(v3) 24 - 27: 16(int) Load 26(gl_InstanceCustomIndexNV) - Store 25(v4) 27 - 34: 29(fvec3) Load 33(gl_WorldRayOriginNV) - Store 31(v5) 34 - 37: 29(fvec3) Load 36(gl_WorldRayDirectionNV) - Store 35(v6) 37 - 40: 29(fvec3) Load 39(gl_ObjectRayOriginNV) - Store 38(v7) 40 - 43: 29(fvec3) Load 42(gl_ObjectRayDirectionNV) - Store 41(v8) 43 - 48: 28(float) Load 47(gl_RayTminNV) - Store 45(v9) 48 - 51: 28(float) Load 50(gl_RayTmaxNV) - Store 49(v10) 51 - 54: 28(float) Load 53(gl_HitTNV) - Store 52(v11) 54 - 59: 6(int) Load 58(gl_HitKindNV) - Store 56(v12) 59 - 65: 60 Load 64(gl_ObjectToWorldNV) - Store 62(v13) 65 - 68: 60 Load 67(gl_WorldToObjectNV) - Store 66(v14) 68 - 72: 69 Load 71(accNV) - TraceNV 72 73 74 75 76 73 78 77 80 81 82 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.ClosestHitShaderMotion.rchit.out b/deps/glslang/Test/baseResults/spv.ClosestHitShaderMotion.rchit.out deleted file mode 100644 index 45679eb0..00000000 --- a/deps/glslang/Test/baseResults/spv.ClosestHitShaderMotion.rchit.out +++ /dev/null @@ -1,58 +0,0 @@ -spv.ClosestHitShaderMotion.rchit -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 33 - - Capability RayTracingKHR - Capability RayTracingMotionBlurNV - Extension "SPV_KHR_ray_tracing" - Extension "SPV_NV_ray_tracing_motion_blur" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint ClosestHitKHR 4 "main" 10 16 32 - Source GLSL 460 - SourceExtension "GL_EXT_ray_tracing" - SourceExtension "GL_NV_ray_tracing_motion_blur" - Name 4 "main" - Name 8 "time" - Name 10 "gl_CurrentRayTimeNV" - Name 16 "accEXT" - Name 32 "incomingPayloadEXT" - Decorate 10(gl_CurrentRayTimeNV) BuiltIn CurrentRayTimeNV - Decorate 16(accEXT) DescriptorSet 0 - Decorate 16(accEXT) Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypePointer Function 6(float) - 9: TypePointer Input 6(float) -10(gl_CurrentRayTimeNV): 9(ptr) Variable Input - 12: 6(float) Constant 1056964608 - 14: TypeAccelerationStructureKHR - 15: TypePointer UniformConstant 14 - 16(accEXT): 15(ptr) Variable UniformConstant - 18: TypeInt 32 0 - 19: 18(int) Constant 0 - 20: 18(int) Constant 1 - 21: 18(int) Constant 2 - 22: 18(int) Constant 3 - 23: TypeVector 6(float) 3 - 24: 23(fvec3) ConstantComposite 12 12 12 - 25: 6(float) Constant 1065353216 - 26: 23(fvec3) ConstantComposite 25 25 25 - 27: 6(float) Constant 1061158912 - 28: TypeInt 32 1 - 29: 28(int) Constant 0 - 30: TypeVector 6(float) 4 - 31: TypePointer IncomingRayPayloadKHR 30(fvec4) -32(incomingPayloadEXT): 31(ptr) Variable IncomingRayPayloadKHR - 4(main): 2 Function None 3 - 5: Label - 8(time): 7(ptr) Variable Function - 11: 6(float) Load 10(gl_CurrentRayTimeNV) - 13: 6(float) FAdd 11 12 - Store 8(time) 13 - 17: 14 Load 16(accEXT) - TraceRayMotionNV 17 19 20 21 22 19 24 12 26 27 25 32(incomingPayloadEXT) - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.ClosestHitShader_Errors.rchit.out b/deps/glslang/Test/baseResults/spv.ClosestHitShader_Errors.rchit.out deleted file mode 100644 index e6f84108..00000000 --- a/deps/glslang/Test/baseResults/spv.ClosestHitShader_Errors.rchit.out +++ /dev/null @@ -1,9 +0,0 @@ -spv.ClosestHitShader_Errors.rchit -ERROR: 0:8: 'assign' : l-value required "payload" (cannot modify hitAttributeNV in this stage) -ERROR: 0:9: 'reportIntersectionNV' : no matching overloaded function found -ERROR: 0:10: 'terminateRayNV' : no matching overloaded function found -ERROR: 0:11: 'ignoreIntersectionNV' : no matching overloaded function found -ERROR: 4 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.GeometryShaderPassthrough.geom.out b/deps/glslang/Test/baseResults/spv.GeometryShaderPassthrough.geom.out deleted file mode 100644 index 4b29238f..00000000 --- a/deps/glslang/Test/baseResults/spv.GeometryShaderPassthrough.geom.out +++ /dev/null @@ -1,46 +0,0 @@ -spv.GeometryShaderPassthrough.geom -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 15 - - Capability Geometry - Capability GeometryShaderPassthroughNV - Extension "SPV_NV_geometry_shader_passthrough" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Geometry 4 "main" 10 14 - ExecutionMode 4 Triangles - ExecutionMode 4 Invocations 1 - ExecutionMode 4 OutputTriangleStrip - ExecutionMode 4 OutputVertices 3 - Source GLSL 450 - SourceExtension "GL_NV_geometry_shader_passthrough" - Name 4 "main" - Name 8 "gl_PerVertex" - MemberName 8(gl_PerVertex) 0 "gl_Position" - Name 10 "" - Name 12 "Inputs" - MemberName 12(Inputs) 0 "texcoord" - MemberName 12(Inputs) 1 "baseColor" - Name 14 "" - MemberDecorate 8(gl_PerVertex) 0 BuiltIn Position - Decorate 8(gl_PerVertex) Block - Decorate 10 PassthroughNV - Decorate 12(Inputs) Block - Decorate 14 Location 0 - Decorate 14 PassthroughNV - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8(gl_PerVertex): TypeStruct 7(fvec4) - 9: TypePointer Input 8(gl_PerVertex) - 10: 9(ptr) Variable Input - 11: TypeVector 6(float) 2 - 12(Inputs): TypeStruct 11(fvec2) 7(fvec4) - 13: TypePointer Input 12(Inputs) - 14: 13(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.IntersectShader.rint.out b/deps/glslang/Test/baseResults/spv.IntersectShader.rint.out deleted file mode 100644 index 7b0058cb..00000000 --- a/deps/glslang/Test/baseResults/spv.IntersectShader.rint.out +++ /dev/null @@ -1,138 +0,0 @@ -spv.IntersectShader.rint -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 71 - - Capability RayTracingNV - Extension "SPV_NV_ray_tracing" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint IntersectionKHR 4 "main" 11 14 20 23 26 33 36 39 42 47 50 56 59 - Source GLSL 460 - SourceExtension "GL_NV_ray_tracing" - Name 4 "main" - Name 9 "v0" - Name 11 "gl_LaunchIDNV" - Name 13 "v1" - Name 14 "gl_LaunchSizeNV" - Name 18 "v2" - Name 20 "gl_PrimitiveID" - Name 22 "v3" - Name 23 "gl_InstanceID" - Name 25 "v4" - Name 26 "gl_InstanceCustomIndexNV" - Name 31 "v5" - Name 33 "gl_WorldRayOriginNV" - Name 35 "v6" - Name 36 "gl_WorldRayDirectionNV" - Name 38 "v7" - Name 39 "gl_ObjectRayOriginNV" - Name 41 "v8" - Name 42 "gl_ObjectRayDirectionNV" - Name 45 "v9" - Name 47 "gl_RayTminNV" - Name 49 "v10" - Name 50 "gl_RayTmaxNV" - Name 54 "v11" - Name 56 "gl_ObjectToWorldNV" - Name 58 "v12" - Name 59 "gl_WorldToObjectNV" - Name 63 "iAttr" - Decorate 11(gl_LaunchIDNV) BuiltIn LaunchIdKHR - Decorate 14(gl_LaunchSizeNV) BuiltIn LaunchSizeKHR - Decorate 20(gl_PrimitiveID) BuiltIn PrimitiveId - Decorate 23(gl_InstanceID) BuiltIn InstanceId - Decorate 26(gl_InstanceCustomIndexNV) BuiltIn InstanceCustomIndexKHR - Decorate 33(gl_WorldRayOriginNV) BuiltIn WorldRayOriginKHR - Decorate 36(gl_WorldRayDirectionNV) BuiltIn WorldRayDirectionKHR - Decorate 39(gl_ObjectRayOriginNV) BuiltIn ObjectRayOriginKHR - Decorate 42(gl_ObjectRayDirectionNV) BuiltIn ObjectRayDirectionKHR - Decorate 47(gl_RayTminNV) BuiltIn RayTminKHR - Decorate 50(gl_RayTmaxNV) BuiltIn RayTmaxKHR - Decorate 56(gl_ObjectToWorldNV) BuiltIn ObjectToWorldKHR - Decorate 59(gl_WorldToObjectNV) BuiltIn WorldToObjectKHR - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeVector 6(int) 3 - 8: TypePointer Function 7(ivec3) - 10: TypePointer Input 7(ivec3) -11(gl_LaunchIDNV): 10(ptr) Variable Input -14(gl_LaunchSizeNV): 10(ptr) Variable Input - 16: TypeInt 32 1 - 17: TypePointer Function 16(int) - 19: TypePointer Input 16(int) -20(gl_PrimitiveID): 19(ptr) Variable Input -23(gl_InstanceID): 19(ptr) Variable Input -26(gl_InstanceCustomIndexNV): 19(ptr) Variable Input - 28: TypeFloat 32 - 29: TypeVector 28(float) 3 - 30: TypePointer Function 29(fvec3) - 32: TypePointer Input 29(fvec3) -33(gl_WorldRayOriginNV): 32(ptr) Variable Input -36(gl_WorldRayDirectionNV): 32(ptr) Variable Input -39(gl_ObjectRayOriginNV): 32(ptr) Variable Input -42(gl_ObjectRayDirectionNV): 32(ptr) Variable Input - 44: TypePointer Function 28(float) - 46: TypePointer Input 28(float) -47(gl_RayTminNV): 46(ptr) Variable Input -50(gl_RayTmaxNV): 46(ptr) Variable Input - 52: TypeMatrix 29(fvec3) 4 - 53: TypePointer Function 52 - 55: TypePointer Input 52 -56(gl_ObjectToWorldNV): 55(ptr) Variable Input -59(gl_WorldToObjectNV): 55(ptr) Variable Input - 61: TypeVector 28(float) 4 - 62: TypePointer HitAttributeKHR 61(fvec4) - 63(iAttr): 62(ptr) Variable HitAttributeKHR - 64: 28(float) Constant 1056964608 - 65: 28(float) Constant 0 - 66: 28(float) Constant 1065353216 - 67: 61(fvec4) ConstantComposite 64 64 65 66 - 68: 6(int) Constant 1 - 69: TypeBool - 4(main): 2 Function None 3 - 5: Label - 9(v0): 8(ptr) Variable Function - 13(v1): 8(ptr) Variable Function - 18(v2): 17(ptr) Variable Function - 22(v3): 17(ptr) Variable Function - 25(v4): 17(ptr) Variable Function - 31(v5): 30(ptr) Variable Function - 35(v6): 30(ptr) Variable Function - 38(v7): 30(ptr) Variable Function - 41(v8): 30(ptr) Variable Function - 45(v9): 44(ptr) Variable Function - 49(v10): 44(ptr) Variable Function - 54(v11): 53(ptr) Variable Function - 58(v12): 53(ptr) Variable Function - 12: 7(ivec3) Load 11(gl_LaunchIDNV) - Store 9(v0) 12 - 15: 7(ivec3) Load 14(gl_LaunchSizeNV) - Store 13(v1) 15 - 21: 16(int) Load 20(gl_PrimitiveID) - Store 18(v2) 21 - 24: 16(int) Load 23(gl_InstanceID) - Store 22(v3) 24 - 27: 16(int) Load 26(gl_InstanceCustomIndexNV) - Store 25(v4) 27 - 34: 29(fvec3) Load 33(gl_WorldRayOriginNV) - Store 31(v5) 34 - 37: 29(fvec3) Load 36(gl_WorldRayDirectionNV) - Store 35(v6) 37 - 40: 29(fvec3) Load 39(gl_ObjectRayOriginNV) - Store 38(v7) 40 - 43: 29(fvec3) Load 42(gl_ObjectRayDirectionNV) - Store 41(v8) 43 - 48: 28(float) Load 47(gl_RayTminNV) - Store 45(v9) 48 - 51: 28(float) Load 50(gl_RayTmaxNV) - Store 49(v10) 51 - 57: 52 Load 56(gl_ObjectToWorldNV) - Store 54(v11) 57 - 60: 52 Load 59(gl_WorldToObjectNV) - Store 58(v12) 60 - Store 63(iAttr) 67 - 70: 69(bool) ReportIntersectionKHR 64 68 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.IntersectShaderMotion.rint.out b/deps/glslang/Test/baseResults/spv.IntersectShaderMotion.rint.out deleted file mode 100644 index f77c9a81..00000000 --- a/deps/glslang/Test/baseResults/spv.IntersectShaderMotion.rint.out +++ /dev/null @@ -1,33 +0,0 @@ -spv.IntersectShaderMotion.rint -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 14 - - Capability RayTracingKHR - Capability RayTracingMotionBlurNV - Extension "SPV_KHR_ray_tracing" - Extension "SPV_NV_ray_tracing_motion_blur" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint IntersectionKHR 4 "main" 10 - Source GLSL 460 - SourceExtension "GL_NV_ray_tracing_motion_blur" - Name 4 "main" - Name 8 "time" - Name 10 "gl_CurrentRayTimeNV" - Decorate 10(gl_CurrentRayTimeNV) BuiltIn CurrentRayTimeNV - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypePointer Function 6(float) - 9: TypePointer Input 6(float) -10(gl_CurrentRayTimeNV): 9(ptr) Variable Input - 12: 6(float) Constant 1056964608 - 4(main): 2 Function None 3 - 5: Label - 8(time): 7(ptr) Variable Function - 11: 6(float) Load 10(gl_CurrentRayTimeNV) - 13: 6(float) FAdd 11 12 - Store 8(time) 13 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.IntersectShader_Errors.rint.out b/deps/glslang/Test/baseResults/spv.IntersectShader_Errors.rint.out deleted file mode 100644 index f2670265..00000000 --- a/deps/glslang/Test/baseResults/spv.IntersectShader_Errors.rint.out +++ /dev/null @@ -1,10 +0,0 @@ -spv.IntersectShader_Errors.rint -ERROR: 0:3: 'rayPayloadInNV' : not supported in this stage: intersection -ERROR: 0:4: 'rayPayloadNV' : not supported in this stage: intersection -ERROR: 0:8: 'gl_HitTNV' : undeclared identifier -ERROR: 0:9: 'gl_HitKindNV' : undeclared identifier -ERROR: 0:10: 'traceNV' : no matching overloaded function found -ERROR: 5 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.MissShader.rmiss.out b/deps/glslang/Test/baseResults/spv.MissShader.rmiss.out deleted file mode 100644 index e573bbae..00000000 --- a/deps/glslang/Test/baseResults/spv.MissShader.rmiss.out +++ /dev/null @@ -1,108 +0,0 @@ -spv.MissShader.rmiss -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 59 - - Capability RayTracingNV - Extension "SPV_NV_ray_tracing" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint MissKHR 4 "main" 11 14 21 24 29 34 37 - Source GLSL 460 - SourceExtension "GL_NV_ray_tracing" - Name 4 "main" - Name 9 "v0" - Name 11 "gl_LaunchIDNV" - Name 13 "v1" - Name 14 "gl_LaunchSizeNV" - Name 19 "v2" - Name 21 "gl_WorldRayOriginNV" - Name 23 "v3" - Name 24 "gl_WorldRayDirectionNV" - Name 27 "v4" - Name 29 "gl_IncomingRayFlagsNV" - Name 32 "v6" - Name 34 "gl_RayTminNV" - Name 36 "v7" - Name 37 "gl_RayTmaxNV" - Name 41 "accNV" - Name 56 "localPayload" - Name 58 "incomingPayload" - Decorate 11(gl_LaunchIDNV) BuiltIn LaunchIdKHR - Decorate 14(gl_LaunchSizeNV) BuiltIn LaunchSizeKHR - Decorate 21(gl_WorldRayOriginNV) BuiltIn WorldRayOriginKHR - Decorate 24(gl_WorldRayDirectionNV) BuiltIn WorldRayDirectionKHR - Decorate 29(gl_IncomingRayFlagsNV) BuiltIn IncomingRayFlagsKHR - Decorate 34(gl_RayTminNV) BuiltIn RayTminKHR - Decorate 37(gl_RayTmaxNV) BuiltIn RayTmaxKHR - Decorate 41(accNV) DescriptorSet 0 - Decorate 41(accNV) Binding 0 - Decorate 56(localPayload) Location 0 - Decorate 58(incomingPayload) Location 1 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeVector 6(int) 3 - 8: TypePointer Function 7(ivec3) - 10: TypePointer Input 7(ivec3) -11(gl_LaunchIDNV): 10(ptr) Variable Input -14(gl_LaunchSizeNV): 10(ptr) Variable Input - 16: TypeFloat 32 - 17: TypeVector 16(float) 3 - 18: TypePointer Function 17(fvec3) - 20: TypePointer Input 17(fvec3) -21(gl_WorldRayOriginNV): 20(ptr) Variable Input -24(gl_WorldRayDirectionNV): 20(ptr) Variable Input - 26: TypePointer Function 6(int) - 28: TypePointer Input 6(int) -29(gl_IncomingRayFlagsNV): 28(ptr) Variable Input - 31: TypePointer Function 16(float) - 33: TypePointer Input 16(float) -34(gl_RayTminNV): 33(ptr) Variable Input -37(gl_RayTmaxNV): 33(ptr) Variable Input - 39: TypeAccelerationStructureKHR - 40: TypePointer UniformConstant 39 - 41(accNV): 40(ptr) Variable UniformConstant - 43: 6(int) Constant 0 - 44: 6(int) Constant 1 - 45: 6(int) Constant 2 - 46: 6(int) Constant 3 - 47: 16(float) Constant 1056964608 - 48: 17(fvec3) ConstantComposite 47 47 47 - 49: 16(float) Constant 1065353216 - 50: 17(fvec3) ConstantComposite 49 49 49 - 51: 16(float) Constant 1061158912 - 52: TypeInt 32 1 - 53: 52(int) Constant 1 - 54: TypeVector 16(float) 4 - 55: TypePointer RayPayloadKHR 54(fvec4) -56(localPayload): 55(ptr) Variable RayPayloadKHR - 57: TypePointer IncomingRayPayloadKHR 54(fvec4) -58(incomingPayload): 57(ptr) Variable IncomingRayPayloadKHR - 4(main): 2 Function None 3 - 5: Label - 9(v0): 8(ptr) Variable Function - 13(v1): 8(ptr) Variable Function - 19(v2): 18(ptr) Variable Function - 23(v3): 18(ptr) Variable Function - 27(v4): 26(ptr) Variable Function - 32(v6): 31(ptr) Variable Function - 36(v7): 31(ptr) Variable Function - 12: 7(ivec3) Load 11(gl_LaunchIDNV) - Store 9(v0) 12 - 15: 7(ivec3) Load 14(gl_LaunchSizeNV) - Store 13(v1) 15 - 22: 17(fvec3) Load 21(gl_WorldRayOriginNV) - Store 19(v2) 22 - 25: 17(fvec3) Load 24(gl_WorldRayDirectionNV) - Store 23(v3) 25 - 30: 6(int) Load 29(gl_IncomingRayFlagsNV) - Store 27(v4) 30 - 35: 16(float) Load 34(gl_RayTminNV) - Store 32(v6) 35 - 38: 16(float) Load 37(gl_RayTmaxNV) - Store 36(v7) 38 - 42: 39 Load 41(accNV) - TraceNV 42 43 44 45 46 43 48 47 50 51 53 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.MissShaderMotion.rmiss.out b/deps/glslang/Test/baseResults/spv.MissShaderMotion.rmiss.out deleted file mode 100644 index 185c934b..00000000 --- a/deps/glslang/Test/baseResults/spv.MissShaderMotion.rmiss.out +++ /dev/null @@ -1,58 +0,0 @@ -spv.MissShaderMotion.rmiss -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 33 - - Capability RayTracingKHR - Capability RayTracingMotionBlurNV - Extension "SPV_KHR_ray_tracing" - Extension "SPV_NV_ray_tracing_motion_blur" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint MissKHR 4 "main" 10 16 32 - Source GLSL 460 - SourceExtension "GL_EXT_ray_tracing" - SourceExtension "GL_NV_ray_tracing_motion_blur" - Name 4 "main" - Name 8 "time" - Name 10 "gl_CurrentRayTimeNV" - Name 16 "accEXT" - Name 32 "localPayloadEXT" - Decorate 10(gl_CurrentRayTimeNV) BuiltIn CurrentRayTimeNV - Decorate 16(accEXT) DescriptorSet 0 - Decorate 16(accEXT) Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypePointer Function 6(float) - 9: TypePointer Input 6(float) -10(gl_CurrentRayTimeNV): 9(ptr) Variable Input - 12: 6(float) Constant 1056964608 - 14: TypeAccelerationStructureKHR - 15: TypePointer UniformConstant 14 - 16(accEXT): 15(ptr) Variable UniformConstant - 18: TypeInt 32 0 - 19: 18(int) Constant 0 - 20: 18(int) Constant 1 - 21: 18(int) Constant 2 - 22: 18(int) Constant 3 - 23: TypeVector 6(float) 3 - 24: 23(fvec3) ConstantComposite 12 12 12 - 25: 6(float) Constant 1065353216 - 26: 23(fvec3) ConstantComposite 25 25 25 - 27: 6(float) Constant 1061158912 - 28: TypeInt 32 1 - 29: 28(int) Constant 0 - 30: TypeVector 6(float) 4 - 31: TypePointer RayPayloadKHR 30(fvec4) -32(localPayloadEXT): 31(ptr) Variable RayPayloadKHR - 4(main): 2 Function None 3 - 5: Label - 8(time): 7(ptr) Variable Function - 11: 6(float) Load 10(gl_CurrentRayTimeNV) - 13: 6(float) FAdd 11 12 - Store 8(time) 13 - 17: 14 Load 16(accEXT) - TraceRayMotionNV 17 19 20 21 22 19 24 12 26 27 25 32(localPayloadEXT) - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.MissShader_Errors.rmiss.out b/deps/glslang/Test/baseResults/spv.MissShader_Errors.rmiss.out deleted file mode 100644 index 52b412b4..00000000 --- a/deps/glslang/Test/baseResults/spv.MissShader_Errors.rmiss.out +++ /dev/null @@ -1,21 +0,0 @@ -spv.MissShader_Errors.rmiss -ERROR: 0:3: 'hitAttributeNV' : not supported in this stage: miss -ERROR: 0:6: 'gl_PrimitiveID' : undeclared identifier -ERROR: 0:6: '=' : cannot convert from ' temp float' to ' temp highp int' -ERROR: 0:7: 'gl_InstanceID' : undeclared identifier (Did you mean gl_InstanceIndex?) -ERROR: 0:7: '=' : cannot convert from ' temp float' to ' temp highp int' -ERROR: 0:8: 'gl_InstanceCustomIndexNV' : undeclared identifier -ERROR: 0:8: '=' : cannot convert from ' temp float' to ' temp highp int' -ERROR: 0:9: 'gl_ObjectToWorldNV' : undeclared identifier -ERROR: 0:9: '=' : cannot convert from ' temp float' to ' temp highp 4X3 matrix of float' -ERROR: 0:10: 'gl_WorldToObjectNV' : undeclared identifier -ERROR: 0:10: '=' : cannot convert from ' temp float' to ' temp highp 4X3 matrix of float' -ERROR: 0:11: 'gl_HitTNV' : undeclared identifier -ERROR: 0:12: 'gl_HitKindNV' : undeclared identifier -ERROR: 0:13: 'reportIntersectionNV' : no matching overloaded function found -ERROR: 0:14: 'ignoreIntersectionNV' : no matching overloaded function found -ERROR: 0:15: 'terminateRayNV' : no matching overloaded function found -ERROR: 16 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.OVR_multiview.vert.out b/deps/glslang/Test/baseResults/spv.OVR_multiview.vert.out deleted file mode 100644 index 90afed29..00000000 --- a/deps/glslang/Test/baseResults/spv.OVR_multiview.vert.out +++ /dev/null @@ -1,57 +0,0 @@ -spv.OVR_multiview.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 27 - - Capability Shader - Capability MultiView - Extension "SPV_KHR_multiview" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 13 17 25 26 - Source GLSL 330 - SourceExtension "GL_OVR_multiview" - Name 4 "main" - Name 11 "gl_PerVertex" - MemberName 11(gl_PerVertex) 0 "gl_Position" - MemberName 11(gl_PerVertex) 1 "gl_PointSize" - MemberName 11(gl_PerVertex) 2 "gl_ClipDistance" - Name 13 "" - Name 17 "gl_ViewID_OVR" - Name 25 "gl_VertexID" - Name 26 "gl_InstanceID" - MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 11(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 11(gl_PerVertex) 2 BuiltIn ClipDistance - Decorate 11(gl_PerVertex) Block - Decorate 17(gl_ViewID_OVR) BuiltIn ViewIndex - Decorate 25(gl_VertexID) BuiltIn VertexId - Decorate 26(gl_InstanceID) BuiltIn InstanceId - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeInt 32 0 - 9: 8(int) Constant 1 - 10: TypeArray 6(float) 9 -11(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 10 - 12: TypePointer Output 11(gl_PerVertex) - 13: 12(ptr) Variable Output - 14: TypeInt 32 1 - 15: 14(int) Constant 0 - 16: TypePointer Input 8(int) -17(gl_ViewID_OVR): 16(ptr) Variable Input - 20: 6(float) Constant 0 - 22: TypePointer Output 7(fvec4) - 24: TypePointer Input 14(int) - 25(gl_VertexID): 24(ptr) Variable Input -26(gl_InstanceID): 24(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 18: 8(int) Load 17(gl_ViewID_OVR) - 19: 6(float) ConvertUToF 18 - 21: 7(fvec4) CompositeConstruct 19 20 20 20 - 23: 22(ptr) AccessChain 13 15 - Store 23 21 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.Operations.frag.out b/deps/glslang/Test/baseResults/spv.Operations.frag.out deleted file mode 100644 index fc8e2415..00000000 --- a/deps/glslang/Test/baseResults/spv.Operations.frag.out +++ /dev/null @@ -1,786 +0,0 @@ -spv.Operations.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 591 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 11 22 220 296 314 547 588 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - Name 4 "main" - Name 9 "v" - Name 11 "uv4" - Name 20 "i" - Name 22 "ui" - Name 155 "swizzleTemp" - Name 189 "ub41" - Name 196 "f" - Name 220 "uf" - Name 293 "u" - Name 296 "uui" - Name 314 "uuv4" - Name 321 "msb" - Name 323 "swizzleTemp" - Name 324 "lsb" - Name 325 "swizzleTemp" - Name 326 "ResType" - Name 367 "b" - Name 404 "ub42" - Name 547 "FragColor" - Name 565 "m1" - Name 572 "m2" - Name 588 "uiv4" - Name 590 "ub" - Decorate 11(uv4) Location 1 - Decorate 22(ui) Flat - Decorate 22(ui) Location 3 - Decorate 220(uf) Location 2 - Decorate 296(uui) Flat - Decorate 296(uui) Location 5 - Decorate 314(uuv4) Flat - Decorate 314(uuv4) Location 4 - Decorate 547(FragColor) Location 0 - Decorate 588(uiv4) Flat - Decorate 588(uiv4) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: TypePointer Input 7(fvec4) - 11(uv4): 10(ptr) Variable Input - 18: TypeInt 32 1 - 19: TypePointer Function 18(int) - 21: TypePointer Input 18(int) - 22(ui): 21(ptr) Variable Input - 141: TypeInt 32 0 - 142: 141(int) Constant 0 - 143: TypePointer Function 6(float) - 186: TypeBool - 187: TypeVector 186(bool) 4 - 188: TypePointer Private 187(bvec4) - 189(ub41): 188(ptr) Variable Private - 219: TypePointer Input 6(float) - 220(uf): 219(ptr) Variable Input - 292: TypePointer Function 141(int) - 295: TypePointer Input 141(int) - 296(uui): 295(ptr) Variable Input - 312: TypeVector 141(int) 4 - 313: TypePointer Input 312(ivec4) - 314(uuv4): 313(ptr) Variable Input - 315: TypeVector 141(int) 3 - 320: TypePointer Function 312(ivec4) - 322: TypePointer Function 315(ivec3) - 326(ResType): TypeStruct 315(ivec3) 315(ivec3) - 333: 141(int) Constant 1 - 336: 141(int) Constant 2 - 366: TypePointer Function 186(bool) - 404(ub42): 188(ptr) Variable Private - 460: 18(int) Constant 2 - 467: 18(int) Constant 1 - 497: TypeVector 6(float) 3 - 516: 6(float) Constant 1073741824 - 523: 6(float) Constant 1065353216 - 528: 18(int) Constant 66 - 534: 18(int) Constant 17 - 546: TypePointer Output 7(fvec4) - 547(FragColor): 546(ptr) Variable Output - 563: TypeMatrix 7(fvec4) 4 - 564: TypePointer Function 563 - 566: 6(float) Constant 0 - 567: 7(fvec4) ConstantComposite 523 566 566 566 - 568: 7(fvec4) ConstantComposite 566 523 566 566 - 569: 7(fvec4) ConstantComposite 566 566 523 566 - 570: 7(fvec4) ConstantComposite 566 566 566 523 - 571: 563 ConstantComposite 567 568 569 570 - 573: 7(fvec4) ConstantComposite 566 566 566 566 - 574: 563 ConstantComposite 573 573 573 573 - 586: TypeVector 18(int) 4 - 587: TypePointer Input 586(ivec4) - 588(uiv4): 587(ptr) Variable Input - 589: TypePointer Private 186(bool) - 590(ub): 589(ptr) Variable Private - 4(main): 2 Function None 3 - 5: Label - 9(v): 8(ptr) Variable Function - 20(i): 19(ptr) Variable Function -155(swizzleTemp): 8(ptr) Variable Function - 196(f): 143(ptr) Variable Function - 293(u): 292(ptr) Variable Function - 321(msb): 320(ptr) Variable Function -323(swizzleTemp): 322(ptr) Variable Function - 324(lsb): 320(ptr) Variable Function -325(swizzleTemp): 322(ptr) Variable Function - 367(b): 366(ptr) Variable Function - 549: 8(ptr) Variable Function - 565(m1): 564(ptr) Variable Function - 572(m2): 564(ptr) Variable Function - 576: 564(ptr) Variable Function - 12: 7(fvec4) Load 11(uv4) - 13: 7(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 12 - Store 9(v) 13 - 14: 7(fvec4) Load 9(v) - 15: 7(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 14 - 16: 7(fvec4) Load 9(v) - 17: 7(fvec4) FAdd 16 15 - Store 9(v) 17 - 23: 18(int) Load 22(ui) - 24: 18(int) Load 22(ui) - 25: 18(int) IMul 23 24 - Store 20(i) 25 - 26: 7(fvec4) Load 9(v) - 27: 7(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 26 - 28: 7(fvec4) Load 9(v) - 29: 7(fvec4) FAdd 28 27 - Store 9(v) 29 - 30: 7(fvec4) Load 9(v) - 31: 7(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 30 - 32: 7(fvec4) Load 9(v) - 33: 7(fvec4) FAdd 32 31 - Store 9(v) 33 - 34: 7(fvec4) Load 9(v) - 35: 7(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 34 - 36: 7(fvec4) Load 9(v) - 37: 7(fvec4) FAdd 36 35 - Store 9(v) 37 - 38: 7(fvec4) Load 9(v) - 39: 7(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 38 - 40: 7(fvec4) Load 9(v) - 41: 7(fvec4) FAdd 40 39 - Store 9(v) 41 - 42: 7(fvec4) Load 9(v) - 43: 7(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 42 - 44: 7(fvec4) Load 9(v) - 45: 7(fvec4) FAdd 44 43 - Store 9(v) 45 - 46: 7(fvec4) Load 9(v) - 47: 7(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 46 - 48: 7(fvec4) Load 9(v) - 49: 7(fvec4) FAdd 48 47 - Store 9(v) 49 - 50: 7(fvec4) Load 9(v) - 51: 7(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 50 - 52: 7(fvec4) Load 9(v) - 53: 7(fvec4) FAdd 52 51 - Store 9(v) 53 - 54: 7(fvec4) Load 9(v) - 55: 7(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 54 - 56: 7(fvec4) Load 9(v) - 57: 7(fvec4) FAdd 56 55 - Store 9(v) 57 - 58: 7(fvec4) Load 9(v) - 59: 7(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 58 - 60: 7(fvec4) Load 9(v) - 61: 7(fvec4) FAdd 60 59 - Store 9(v) 61 - 62: 7(fvec4) Load 9(v) - 63: 7(fvec4) ExtInst 1(GLSL.std.450) 22(Asinh) 62 - 64: 7(fvec4) Load 9(v) - 65: 7(fvec4) FAdd 64 63 - Store 9(v) 65 - 66: 7(fvec4) Load 9(v) - 67: 7(fvec4) ExtInst 1(GLSL.std.450) 23(Acosh) 66 - 68: 7(fvec4) Load 9(v) - 69: 7(fvec4) FAdd 68 67 - Store 9(v) 69 - 70: 7(fvec4) Load 9(v) - 71: 7(fvec4) ExtInst 1(GLSL.std.450) 24(Atanh) 70 - 72: 7(fvec4) Load 9(v) - 73: 7(fvec4) FAdd 72 71 - Store 9(v) 73 - 74: 7(fvec4) Load 9(v) - 75: 7(fvec4) Load 9(v) - 76: 7(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 74 75 - 77: 7(fvec4) Load 9(v) - 78: 7(fvec4) FAdd 77 76 - Store 9(v) 78 - 79: 7(fvec4) Load 9(v) - 80: 7(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 79 - 81: 7(fvec4) Load 9(v) - 82: 7(fvec4) FAdd 81 80 - Store 9(v) 82 - 83: 7(fvec4) Load 9(v) - 84: 7(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 83 - 85: 7(fvec4) Load 9(v) - 86: 7(fvec4) FAdd 85 84 - Store 9(v) 86 - 87: 7(fvec4) Load 9(v) - 88: 7(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 87 - 89: 7(fvec4) Load 9(v) - 90: 7(fvec4) FAdd 89 88 - Store 9(v) 90 - 91: 7(fvec4) Load 9(v) - 92: 7(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 91 - 93: 7(fvec4) Load 9(v) - 94: 7(fvec4) FAdd 93 92 - Store 9(v) 94 - 95: 7(fvec4) Load 9(v) - 96: 7(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 95 - 97: 7(fvec4) Load 9(v) - 98: 7(fvec4) FAdd 97 96 - Store 9(v) 98 - 99: 7(fvec4) Load 9(v) - 100: 7(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 99 - 101: 7(fvec4) Load 9(v) - 102: 7(fvec4) FAdd 101 100 - Store 9(v) 102 - 103: 7(fvec4) Load 9(v) - 104: 7(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 103 - 105: 7(fvec4) Load 9(v) - 106: 7(fvec4) FAdd 105 104 - Store 9(v) 106 - 107: 7(fvec4) Load 9(v) - 108: 7(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 107 - 109: 7(fvec4) Load 9(v) - 110: 7(fvec4) FAdd 109 108 - Store 9(v) 110 - 111: 7(fvec4) Load 9(v) - 112: 7(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 111 - 113: 7(fvec4) Load 9(v) - 114: 7(fvec4) FAdd 113 112 - Store 9(v) 114 - 115: 7(fvec4) Load 9(v) - 116: 7(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 115 - 117: 7(fvec4) Load 9(v) - 118: 7(fvec4) FAdd 117 116 - Store 9(v) 118 - 119: 7(fvec4) Load 9(v) - 120: 7(fvec4) ExtInst 1(GLSL.std.450) 1(Round) 119 - 121: 7(fvec4) Load 9(v) - 122: 7(fvec4) FAdd 121 120 - Store 9(v) 122 - 123: 7(fvec4) Load 9(v) - 124: 7(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 123 - 125: 7(fvec4) Load 9(v) - 126: 7(fvec4) FAdd 125 124 - Store 9(v) 126 - 127: 7(fvec4) Load 9(v) - 128: 7(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 127 - 129: 7(fvec4) Load 9(v) - 130: 7(fvec4) FAdd 129 128 - Store 9(v) 130 - 131: 7(fvec4) Load 9(v) - 132: 7(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 131 - 133: 7(fvec4) Load 9(v) - 134: 7(fvec4) FAdd 133 132 - Store 9(v) 134 - 135: 7(fvec4) Load 9(v) - 136: 7(fvec4) Load 9(v) - 137: 7(fvec4) FMod 135 136 - 138: 7(fvec4) Load 9(v) - 139: 7(fvec4) FAdd 138 137 - Store 9(v) 139 - 140: 7(fvec4) Load 9(v) - 144: 143(ptr) AccessChain 9(v) 142 - 145: 6(float) Load 144 - 146: 7(fvec4) CompositeConstruct 145 145 145 145 - 147: 7(fvec4) FMod 140 146 - 148: 7(fvec4) Load 9(v) - 149: 7(fvec4) FAdd 148 147 - Store 9(v) 149 - 150: 7(fvec4) Load 9(v) - 151: 7(fvec4) ExtInst 1(GLSL.std.450) 35(Modf) 150 9(v) - 152: 7(fvec4) Load 9(v) - 153: 7(fvec4) FAdd 152 151 - Store 9(v) 153 - 154: 7(fvec4) Load 9(v) - 156: 7(fvec4) ExtInst 1(GLSL.std.450) 35(Modf) 154 155(swizzleTemp) - 157: 7(fvec4) Load 155(swizzleTemp) - 158: 7(fvec4) Load 9(v) - 159: 7(fvec4) VectorShuffle 158 157 6 4 5 7 - Store 9(v) 159 - 160: 7(fvec4) Load 9(v) - 161: 7(fvec4) FAdd 160 156 - Store 9(v) 161 - 162: 7(fvec4) Load 9(v) - 163: 7(fvec4) Load 11(uv4) - 164: 7(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 162 163 - 165: 7(fvec4) Load 9(v) - 166: 7(fvec4) FAdd 165 164 - Store 9(v) 166 - 167: 7(fvec4) Load 9(v) - 168: 7(fvec4) Load 11(uv4) - 169: 7(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 167 168 - 170: 7(fvec4) Load 9(v) - 171: 7(fvec4) FAdd 170 169 - Store 9(v) 171 - 172: 7(fvec4) Load 9(v) - 173: 7(fvec4) Load 11(uv4) - 174: 7(fvec4) Load 11(uv4) - 175: 7(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 172 173 174 - 176: 7(fvec4) Load 9(v) - 177: 7(fvec4) FAdd 176 175 - Store 9(v) 177 - 178: 7(fvec4) Load 9(v) - 179: 7(fvec4) Load 9(v) - 180: 7(fvec4) Load 9(v) - 181: 7(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 178 179 180 - 182: 7(fvec4) Load 9(v) - 183: 7(fvec4) FAdd 182 181 - Store 9(v) 183 - 184: 7(fvec4) Load 9(v) - 185: 7(fvec4) Load 9(v) - 190: 187(bvec4) Load 189(ub41) - 191: 7(fvec4) Select 190 185 184 - 192: 7(fvec4) Load 9(v) - 193: 7(fvec4) FAdd 192 191 - Store 9(v) 193 - 194: 7(fvec4) Load 9(v) - 195: 7(fvec4) Load 9(v) - 197: 6(float) Load 196(f) - 198: 7(fvec4) CompositeConstruct 197 197 197 197 - 199: 7(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 194 195 198 - 200: 7(fvec4) Load 9(v) - 201: 7(fvec4) FAdd 200 199 - Store 9(v) 201 - 202: 7(fvec4) Load 9(v) - 203: 7(fvec4) Load 11(uv4) - 204: 7(fvec4) Load 9(v) - 205: 7(fvec4) ExtInst 1(GLSL.std.450) 50(Fma) 202 203 204 - 206: 7(fvec4) Load 9(v) - 207: 7(fvec4) FAdd 206 205 - Store 9(v) 207 - 208: 7(fvec4) Load 9(v) - 209: 7(fvec4) Load 9(v) - 210: 7(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 208 209 - 211: 7(fvec4) Load 9(v) - 212: 7(fvec4) FAdd 211 210 - Store 9(v) 212 - 213: 7(fvec4) Load 9(v) - 214: 7(fvec4) Load 9(v) - 215: 7(fvec4) Load 9(v) - 216: 7(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 213 214 215 - 217: 7(fvec4) Load 9(v) - 218: 7(fvec4) FAdd 217 216 - Store 9(v) 218 - 221: 6(float) Load 220(uf) - 222: 7(fvec4) Load 9(v) - 223: 7(fvec4) CompositeConstruct 221 221 221 221 - 224: 7(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 223 222 - 225: 7(fvec4) Load 9(v) - 226: 7(fvec4) FAdd 225 224 - Store 9(v) 226 - 227: 6(float) Load 220(uf) - 228: 6(float) Load 220(uf) - 229: 7(fvec4) Load 9(v) - 230: 7(fvec4) CompositeConstruct 227 227 227 227 - 231: 7(fvec4) CompositeConstruct 228 228 228 228 - 232: 7(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 230 231 229 - 233: 7(fvec4) Load 9(v) - 234: 7(fvec4) FAdd 233 232 - Store 9(v) 234 - 235: 7(fvec4) Load 9(v) - 236: 7(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 235 - 237: 7(fvec4) Load 9(v) - 238: 7(fvec4) FAdd 237 236 - Store 9(v) 238 - 239: 7(fvec4) Load 9(v) - 240: 7(fvec4) Load 9(v) - 241: 7(fvec4) Load 9(v) - 242: 7(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 239 240 241 - 243: 7(fvec4) Load 9(v) - 244: 7(fvec4) FAdd 243 242 - Store 9(v) 244 - 245: 7(fvec4) Load 9(v) - 246: 7(fvec4) Load 9(v) - 247: 7(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 245 246 - 248: 7(fvec4) Load 9(v) - 249: 7(fvec4) FAdd 248 247 - Store 9(v) 249 - 250: 7(fvec4) Load 9(v) - 251: 7(fvec4) Load 9(v) - 252: 6(float) Load 220(uf) - 253: 7(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 250 251 252 - 254: 7(fvec4) Load 9(v) - 255: 7(fvec4) FAdd 254 253 - Store 9(v) 255 - 256: 7(fvec4) Load 9(v) - 257: 7(fvec4) DPdx 256 - 258: 7(fvec4) Load 9(v) - 259: 7(fvec4) FAdd 258 257 - Store 9(v) 259 - 260: 7(fvec4) Load 9(v) - 261: 7(fvec4) DPdy 260 - 262: 7(fvec4) Load 9(v) - 263: 7(fvec4) FAdd 262 261 - Store 9(v) 263 - 264: 7(fvec4) Load 9(v) - 265: 7(fvec4) Fwidth 264 - 266: 7(fvec4) Load 9(v) - 267: 7(fvec4) FAdd 266 265 - Store 9(v) 267 - 268: 18(int) Load 22(ui) - 269: 18(int) ExtInst 1(GLSL.std.450) 5(SAbs) 268 - 270: 18(int) Load 20(i) - 271: 18(int) IAdd 270 269 - Store 20(i) 271 - 272: 18(int) Load 20(i) - 273: 18(int) ExtInst 1(GLSL.std.450) 7(SSign) 272 - 274: 18(int) Load 20(i) - 275: 18(int) IAdd 274 273 - Store 20(i) 275 - 276: 18(int) Load 20(i) - 277: 18(int) Load 22(ui) - 278: 18(int) ExtInst 1(GLSL.std.450) 39(SMin) 276 277 - 279: 18(int) Load 20(i) - 280: 18(int) IAdd 279 278 - Store 20(i) 280 - 281: 18(int) Load 20(i) - 282: 18(int) Load 22(ui) - 283: 18(int) ExtInst 1(GLSL.std.450) 42(SMax) 281 282 - 284: 18(int) Load 20(i) - 285: 18(int) IAdd 284 283 - Store 20(i) 285 - 286: 18(int) Load 20(i) - 287: 18(int) Load 22(ui) - 288: 18(int) Load 22(ui) - 289: 18(int) ExtInst 1(GLSL.std.450) 45(SClamp) 286 287 288 - 290: 18(int) Load 20(i) - 291: 18(int) IAdd 290 289 - Store 20(i) 291 - 294: 141(int) Load 293(u) - 297: 141(int) Load 296(uui) - 298: 141(int) ExtInst 1(GLSL.std.450) 38(UMin) 294 297 - 299: 141(int) Load 293(u) - 300: 141(int) IAdd 299 298 - Store 293(u) 300 - 301: 141(int) Load 293(u) - 302: 141(int) Load 296(uui) - 303: 141(int) ExtInst 1(GLSL.std.450) 41(UMax) 301 302 - 304: 141(int) Load 293(u) - 305: 141(int) IAdd 304 303 - Store 293(u) 305 - 306: 141(int) Load 293(u) - 307: 141(int) Load 296(uui) - 308: 141(int) Load 296(uui) - 309: 141(int) ExtInst 1(GLSL.std.450) 44(UClamp) 306 307 308 - 310: 141(int) Load 293(u) - 311: 141(int) IAdd 310 309 - Store 293(u) 311 - 316: 312(ivec4) Load 314(uuv4) - 317: 315(ivec3) VectorShuffle 316 316 0 1 2 - 318: 312(ivec4) Load 314(uuv4) - 319: 315(ivec3) VectorShuffle 318 318 0 1 2 - 327:326(ResType) UMulExtended 317 319 - 328: 315(ivec3) CompositeExtract 327 0 - Store 325(swizzleTemp) 328 - 329: 315(ivec3) CompositeExtract 327 1 - Store 323(swizzleTemp) 329 - 330: 315(ivec3) Load 323(swizzleTemp) - 331: 292(ptr) AccessChain 321(msb) 142 - 332: 141(int) CompositeExtract 330 0 - Store 331 332 - 334: 292(ptr) AccessChain 321(msb) 333 - 335: 141(int) CompositeExtract 330 1 - Store 334 335 - 337: 292(ptr) AccessChain 321(msb) 336 - 338: 141(int) CompositeExtract 330 2 - Store 337 338 - 339: 315(ivec3) Load 325(swizzleTemp) - 340: 292(ptr) AccessChain 324(lsb) 142 - 341: 141(int) CompositeExtract 339 0 - Store 340 341 - 342: 292(ptr) AccessChain 324(lsb) 333 - 343: 141(int) CompositeExtract 339 1 - Store 342 343 - 344: 292(ptr) AccessChain 324(lsb) 336 - 345: 141(int) CompositeExtract 339 2 - Store 344 345 - 346: 292(ptr) AccessChain 321(msb) 142 - 347: 141(int) Load 346 - 348: 292(ptr) AccessChain 321(msb) 333 - 349: 141(int) Load 348 - 350: 141(int) IAdd 347 349 - 351: 292(ptr) AccessChain 321(msb) 336 - 352: 141(int) Load 351 - 353: 141(int) IAdd 350 352 - 354: 141(int) Load 293(u) - 355: 141(int) IAdd 354 353 - Store 293(u) 355 - 356: 292(ptr) AccessChain 324(lsb) 142 - 357: 141(int) Load 356 - 358: 292(ptr) AccessChain 324(lsb) 333 - 359: 141(int) Load 358 - 360: 141(int) IAdd 357 359 - 361: 292(ptr) AccessChain 324(lsb) 336 - 362: 141(int) Load 361 - 363: 141(int) IAdd 360 362 - 364: 141(int) Load 293(u) - 365: 141(int) IAdd 364 363 - Store 293(u) 365 - 368: 6(float) Load 220(uf) - 369: 186(bool) IsNan 368 - Store 367(b) 369 - 370: 6(float) Load 196(f) - 371: 186(bool) IsInf 370 - Store 367(b) 371 - 372: 7(fvec4) Load 9(v) - 373: 7(fvec4) Load 11(uv4) - 374: 187(bvec4) FOrdLessThan 372 373 - 375: 186(bool) Any 374 - Store 367(b) 375 - 376: 186(bool) Load 367(b) - SelectionMerge 378 None - BranchConditional 376 377 378 - 377: Label - 379: 7(fvec4) Load 9(v) - 380: 7(fvec4) Load 11(uv4) - 381: 187(bvec4) FOrdLessThanEqual 379 380 - 382: 186(bool) Any 381 - Branch 378 - 378: Label - 383: 186(bool) Phi 376 5 382 377 - Store 367(b) 383 - 384: 186(bool) Load 367(b) - SelectionMerge 386 None - BranchConditional 384 385 386 - 385: Label - 387: 7(fvec4) Load 9(v) - 388: 7(fvec4) Load 11(uv4) - 389: 187(bvec4) FOrdGreaterThan 387 388 - 390: 186(bool) Any 389 - Branch 386 - 386: Label - 391: 186(bool) Phi 384 378 390 385 - Store 367(b) 391 - 392: 186(bool) Load 367(b) - SelectionMerge 394 None - BranchConditional 392 393 394 - 393: Label - 395: 7(fvec4) Load 9(v) - 396: 7(fvec4) Load 11(uv4) - 397: 187(bvec4) FOrdGreaterThanEqual 395 396 - 398: 186(bool) Any 397 - Branch 394 - 394: Label - 399: 186(bool) Phi 392 386 398 393 - Store 367(b) 399 - 400: 186(bool) Load 367(b) - SelectionMerge 402 None - BranchConditional 400 401 402 - 401: Label - 403: 187(bvec4) Load 189(ub41) - 405: 187(bvec4) Load 404(ub42) - 406: 187(bvec4) LogicalEqual 403 405 - 407: 186(bool) Any 406 - Branch 402 - 402: Label - 408: 186(bool) Phi 400 394 407 401 - Store 367(b) 408 - 409: 186(bool) Load 367(b) - SelectionMerge 411 None - BranchConditional 409 410 411 - 410: Label - 412: 187(bvec4) Load 189(ub41) - 413: 187(bvec4) Load 404(ub42) - 414: 187(bvec4) LogicalNotEqual 412 413 - 415: 186(bool) Any 414 - Branch 411 - 411: Label - 416: 186(bool) Phi 409 402 415 410 - Store 367(b) 416 - 417: 186(bool) Load 367(b) - 418: 187(bvec4) Load 189(ub41) - 419: 186(bool) Any 418 - 420: 186(bool) LogicalAnd 417 419 - Store 367(b) 420 - 421: 186(bool) Load 367(b) - 422: 187(bvec4) Load 189(ub41) - 423: 186(bool) All 422 - 424: 186(bool) LogicalAnd 421 423 - Store 367(b) 424 - 425: 186(bool) Load 367(b) - SelectionMerge 427 None - BranchConditional 425 426 427 - 426: Label - 428: 187(bvec4) Load 189(ub41) - 429: 187(bvec4) LogicalNot 428 - 430: 186(bool) Any 429 - Branch 427 - 427: Label - 431: 186(bool) Phi 425 411 430 426 - Store 367(b) 431 - 432: 18(int) Load 20(i) - 433: 18(int) Load 22(ui) - 434: 18(int) IAdd 432 433 - 435: 18(int) Load 20(i) - 436: 18(int) IMul 434 435 - 437: 18(int) Load 22(ui) - 438: 18(int) ISub 436 437 - 439: 18(int) Load 20(i) - 440: 18(int) SDiv 438 439 - Store 20(i) 440 - 441: 18(int) Load 20(i) - 442: 18(int) Load 22(ui) - 443: 18(int) SMod 441 442 - Store 20(i) 443 - 444: 18(int) Load 20(i) - 445: 18(int) Load 22(ui) - 446: 186(bool) IEqual 444 445 - 447: 186(bool) LogicalNot 446 - SelectionMerge 449 None - BranchConditional 447 448 449 - 448: Label - 450: 18(int) Load 20(i) - 451: 18(int) Load 22(ui) - 452: 186(bool) INotEqual 450 451 - SelectionMerge 454 None - BranchConditional 452 453 454 - 453: Label - 455: 18(int) Load 20(i) - 456: 18(int) Load 22(ui) - 457: 186(bool) IEqual 455 456 - Branch 454 - 454: Label - 458: 186(bool) Phi 452 448 457 453 - 459: 18(int) Load 20(i) - 461: 186(bool) INotEqual 459 460 - 462: 186(bool) LogicalNotEqual 458 461 - Branch 449 - 449: Label - 463: 186(bool) Phi 446 427 462 454 - SelectionMerge 465 None - BranchConditional 463 464 465 - 464: Label - 466: 18(int) Load 20(i) - 468: 18(int) IAdd 466 467 - Store 20(i) 468 - Branch 465 - 465: Label - 469: 6(float) Load 220(uf) - 470: 6(float) Load 220(uf) - 471: 6(float) FAdd 469 470 - 472: 6(float) Load 220(uf) - 473: 6(float) FMul 471 472 - 474: 6(float) Load 220(uf) - 475: 6(float) FSub 473 474 - 476: 6(float) Load 220(uf) - 477: 6(float) FDiv 475 476 - Store 196(f) 477 - 478: 7(fvec4) Load 9(v) - 479: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 478 - 480: 6(float) Load 196(f) - 481: 6(float) FAdd 480 479 - Store 196(f) 481 - 482: 7(fvec4) Load 9(v) - 483: 7(fvec4) Load 9(v) - 484: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 482 483 - 485: 6(float) Load 196(f) - 486: 6(float) FAdd 485 484 - Store 196(f) 486 - 487: 7(fvec4) Load 9(v) - 488: 7(fvec4) Load 9(v) - 489: 6(float) Dot 487 488 - 490: 6(float) Load 196(f) - 491: 6(float) FAdd 490 489 - Store 196(f) 491 - 492: 6(float) Load 196(f) - 493: 6(float) Load 220(uf) - 494: 6(float) FMul 492 493 - 495: 6(float) Load 196(f) - 496: 6(float) FAdd 495 494 - Store 196(f) 496 - 498: 7(fvec4) Load 9(v) - 499: 497(fvec3) VectorShuffle 498 498 0 1 2 - 500: 7(fvec4) Load 9(v) - 501: 497(fvec3) VectorShuffle 500 500 0 1 2 - 502: 497(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 499 501 - 503: 6(float) CompositeExtract 502 0 - 504: 6(float) Load 196(f) - 505: 6(float) FAdd 504 503 - Store 196(f) 505 - 506: 6(float) Load 196(f) - 507: 6(float) Load 220(uf) - 508: 186(bool) FOrdEqual 506 507 - 509: 186(bool) LogicalNot 508 - SelectionMerge 511 None - BranchConditional 509 510 511 - 510: Label - 512: 6(float) Load 196(f) - 513: 6(float) Load 220(uf) - 514: 186(bool) FUnordNotEqual 512 513 - 515: 6(float) Load 196(f) - 517: 186(bool) FUnordNotEqual 515 516 - 518: 186(bool) LogicalAnd 514 517 - Branch 511 - 511: Label - 519: 186(bool) Phi 508 465 518 510 - SelectionMerge 521 None - BranchConditional 519 520 521 - 520: Label - 522: 6(float) Load 196(f) - 524: 6(float) FAdd 522 523 - Store 196(f) 524 - Branch 521 - 521: Label - 525: 18(int) Load 22(ui) - 526: 18(int) Load 20(i) - 527: 18(int) BitwiseAnd 526 525 - Store 20(i) 527 - 529: 18(int) Load 20(i) - 530: 18(int) BitwiseOr 529 528 - Store 20(i) 530 - 531: 18(int) Load 22(ui) - 532: 18(int) Load 20(i) - 533: 18(int) BitwiseXor 532 531 - Store 20(i) 533 - 535: 18(int) Load 20(i) - 536: 18(int) SMod 535 534 - Store 20(i) 536 - 537: 18(int) Load 20(i) - 538: 18(int) ShiftRightArithmetic 537 460 - Store 20(i) 538 - 539: 18(int) Load 22(ui) - 540: 18(int) Load 20(i) - 541: 18(int) ShiftLeftLogical 540 539 - Store 20(i) 541 - 542: 18(int) Load 20(i) - 543: 18(int) Not 542 - Store 20(i) 543 - 544: 186(bool) Load 367(b) - 545: 186(bool) LogicalNot 544 - Store 367(b) 545 - 548: 186(bool) Load 367(b) - SelectionMerge 551 None - BranchConditional 548 550 560 - 550: Label - 552: 18(int) Load 20(i) - 553: 6(float) ConvertSToF 552 - 554: 7(fvec4) CompositeConstruct 553 553 553 553 - 555: 6(float) Load 196(f) - 556: 7(fvec4) CompositeConstruct 555 555 555 555 - 557: 7(fvec4) FAdd 554 556 - 558: 7(fvec4) Load 9(v) - 559: 7(fvec4) FAdd 557 558 - Store 549 559 - Branch 551 - 560: Label - 561: 7(fvec4) Load 9(v) - Store 549 561 - Branch 551 - 551: Label - 562: 7(fvec4) Load 549 - Store 547(FragColor) 562 - Store 565(m1) 571 - Store 572(m2) 574 - 575: 186(bool) Load 367(b) - SelectionMerge 578 None - BranchConditional 575 577 580 - 577: Label - 579: 563 Load 565(m1) - Store 576 579 - Branch 578 - 580: Label - 581: 563 Load 572(m2) - Store 576 581 - Branch 578 - 578: Label - 582: 8(ptr) AccessChain 576 467 - 583: 7(fvec4) Load 582 - 584: 7(fvec4) Load 547(FragColor) - 585: 7(fvec4) FAdd 584 583 - Store 547(FragColor) 585 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.RayCallable.rcall.out b/deps/glslang/Test/baseResults/spv.RayCallable.rcall.out deleted file mode 100644 index 75698fcb..00000000 --- a/deps/glslang/Test/baseResults/spv.RayCallable.rcall.out +++ /dev/null @@ -1,60 +0,0 @@ -spv.RayCallable.rcall -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 30 - - Capability RayTracingNV - Extension "SPV_NV_ray_tracing" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint CallableKHR 4 "main" 11 14 - Source GLSL 460 - SourceExtension "GL_NV_ray_tracing" - Name 4 "main" - Name 9 "id" - Name 11 "gl_LaunchIDNV" - Name 13 "size" - Name 14 "gl_LaunchSizeNV" - Name 16 "dataBlock" - MemberName 16(dataBlock) 0 "data1" - Name 18 "" - Name 29 "data0" - Decorate 11(gl_LaunchIDNV) BuiltIn LaunchIdKHR - Decorate 14(gl_LaunchSizeNV) BuiltIn LaunchSizeKHR - Decorate 16(dataBlock) Block - Decorate 18 Location 1 - Decorate 29(data0) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeVector 6(int) 3 - 8: TypePointer Function 7(ivec3) - 10: TypePointer Input 7(ivec3) -11(gl_LaunchIDNV): 10(ptr) Variable Input -14(gl_LaunchSizeNV): 10(ptr) Variable Input - 16(dataBlock): TypeStruct 6(int) - 17: TypePointer IncomingCallableDataKHR 16(dataBlock) - 18: 17(ptr) Variable IncomingCallableDataKHR - 19: TypeInt 32 1 - 20: 19(int) Constant 0 - 21: 6(int) Constant 256 - 22: TypePointer IncomingCallableDataKHR 6(int) - 24: 6(int) Constant 2 - 25: 19(int) Constant 1 - 26: TypeFloat 32 - 27: TypeVector 26(float) 4 - 28: TypePointer CallableDataKHR 27(fvec4) - 29(data0): 28(ptr) Variable CallableDataKHR - 4(main): 2 Function None 3 - 5: Label - 9(id): 8(ptr) Variable Function - 13(size): 8(ptr) Variable Function - 12: 7(ivec3) Load 11(gl_LaunchIDNV) - Store 9(id) 12 - 15: 7(ivec3) Load 14(gl_LaunchSizeNV) - Store 13(size) 15 - 23: 22(ptr) AccessChain 18 20 - Store 23 21 - ExecuteCallableNV 24 25 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.RayCallable_Errors.rcall.out b/deps/glslang/Test/baseResults/spv.RayCallable_Errors.rcall.out deleted file mode 100644 index e7f45cbb..00000000 --- a/deps/glslang/Test/baseResults/spv.RayCallable_Errors.rcall.out +++ /dev/null @@ -1,35 +0,0 @@ -spv.RayCallable_Errors.rcall -ERROR: 0:3: 'hitAttributeNV' : not supported in this stage: callable -ERROR: 0:4: 'rayPayloadNV' : not supported in this stage: callable -ERROR: 0:5: 'rayPayloadInNV' : not supported in this stage: callable -ERROR: 0:9: 'gl_PrimitiveID' : undeclared identifier -ERROR: 0:9: '=' : cannot convert from ' temp float' to ' temp highp int' -ERROR: 0:10: 'gl_InstanceID' : undeclared identifier (Did you mean gl_InstanceIndex?) -ERROR: 0:10: '=' : cannot convert from ' temp float' to ' temp highp int' -ERROR: 0:11: 'gl_InstanceCustomIndexNV' : undeclared identifier -ERROR: 0:11: '=' : cannot convert from ' temp float' to ' temp highp int' -ERROR: 0:12: 'gl_WorldRayOriginNV' : undeclared identifier -ERROR: 0:12: '=' : cannot convert from ' temp float' to ' temp highp 3-component vector of float' -ERROR: 0:13: 'gl_WorldRayDirectionNV' : undeclared identifier -ERROR: 0:13: '=' : cannot convert from ' temp float' to ' temp highp 3-component vector of float' -ERROR: 0:14: 'gl_ObjectRayOriginNV' : undeclared identifier -ERROR: 0:14: '=' : cannot convert from ' temp float' to ' temp highp 3-component vector of float' -ERROR: 0:15: 'gl_ObjectRayDirectionNV' : undeclared identifier -ERROR: 0:15: '=' : cannot convert from ' temp float' to ' temp highp 3-component vector of float' -ERROR: 0:16: 'gl_RayTminNV' : undeclared identifier -ERROR: 0:17: 'gl_RayTmaxNV' : undeclared identifier -ERROR: 0:18: 'gl_ObjectToWorldNV' : undeclared identifier -ERROR: 0:18: '=' : cannot convert from ' temp float' to ' temp highp 4X3 matrix of float' -ERROR: 0:19: 'gl_WorldToObjectNV' : undeclared identifier -ERROR: 0:19: '=' : cannot convert from ' temp float' to ' temp highp 4X3 matrix of float' -ERROR: 0:20: 'gl_HitTNV' : undeclared identifier -ERROR: 0:21: 'gl_HitKindNV' : undeclared identifier -ERROR: 0:22: 'gl_IncomingRayFlagsNV' : undeclared identifier -ERROR: 0:22: '=' : cannot convert from ' temp float' to ' temp highp uint' -ERROR: 0:23: 'reportIntersectionNV' : no matching overloaded function found -ERROR: 0:24: 'ignoreIntersectionNV' : no matching overloaded function found -ERROR: 0:25: 'terminateRayNV' : no matching overloaded function found -ERROR: 30 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.RayConstants.rgen.out b/deps/glslang/Test/baseResults/spv.RayConstants.rgen.out deleted file mode 100644 index 962aeb7d..00000000 --- a/deps/glslang/Test/baseResults/spv.RayConstants.rgen.out +++ /dev/null @@ -1,46 +0,0 @@ -spv.RayConstants.rgen -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 27 - - Capability RayTracingNV - Extension "SPV_NV_ray_tracing" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint RayGenerationKHR 4 "main" - Source GLSL 460 - SourceExtension "GL_NV_ray_tracing" - Name 4 "main" - Name 8 "accNV" - Name 26 "payload" - Decorate 8(accNV) DescriptorSet 0 - Decorate 8(accNV) Binding 0 - Decorate 26(payload) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeAccelerationStructureKHR - 7: TypePointer UniformConstant 6 - 8(accNV): 7(ptr) Variable UniformConstant - 10: TypeInt 32 0 - 11: 10(int) Constant 255 - 12: 10(int) Constant 0 - 13: 10(int) Constant 1 - 14: TypeFloat 32 - 15: TypeVector 14(float) 3 - 16: 14(float) Constant 0 - 17: 15(fvec3) ConstantComposite 16 16 16 - 18: 14(float) Constant 1056964608 - 19: 14(float) Constant 1065353216 - 20: 15(fvec3) ConstantComposite 19 19 19 - 21: 14(float) Constant 1061158912 - 22: TypeInt 32 1 - 23: 22(int) Constant 1 - 24: TypeVector 14(float) 4 - 25: TypePointer RayPayloadKHR 24(fvec4) - 26(payload): 25(ptr) Variable RayPayloadKHR - 4(main): 2 Function None 3 - 5: Label - 9: 6 Load 8(accNV) - TraceNV 9 11 12 13 13 12 17 18 20 21 23 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.RayGenShader.rgen.out b/deps/glslang/Test/baseResults/spv.RayGenShader.rgen.out deleted file mode 100644 index b7085378..00000000 --- a/deps/glslang/Test/baseResults/spv.RayGenShader.rgen.out +++ /dev/null @@ -1,95 +0,0 @@ -spv.RayGenShader.rgen -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 54 - - Capability RayTracingNV - Extension "SPV_NV_ray_tracing" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint RayGenerationKHR 4 "main" 11 21 - Source GLSL 460 - SourceExtension "GL_NV_ray_tracing" - Name 4 "main" - Name 8 "lx" - Name 11 "gl_LaunchIDNV" - Name 16 "ly" - Name 20 "sx" - Name 21 "gl_LaunchSizeNV" - Name 24 "sy" - Name 29 "accNV0" - Name 37 "block" - MemberName 37(block) 0 "dir" - MemberName 37(block) 1 "origin" - Name 39 "" - Name 50 "accNV1" - Name 53 "payload" - Decorate 11(gl_LaunchIDNV) BuiltIn LaunchIdKHR - Decorate 21(gl_LaunchSizeNV) BuiltIn LaunchSizeKHR - Decorate 29(accNV0) DescriptorSet 0 - Decorate 29(accNV0) Binding 0 - MemberDecorate 37(block) 0 Offset 0 - MemberDecorate 37(block) 1 Offset 16 - Decorate 37(block) BufferBlock - Decorate 50(accNV1) DescriptorSet 0 - Decorate 50(accNV1) Binding 1 - Decorate 53(payload) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypeVector 6(int) 3 - 10: TypePointer Input 9(ivec3) -11(gl_LaunchIDNV): 10(ptr) Variable Input - 12: 6(int) Constant 0 - 13: TypePointer Input 6(int) - 17: 6(int) Constant 1 -21(gl_LaunchSizeNV): 10(ptr) Variable Input - 27: TypeAccelerationStructureKHR - 28: TypePointer UniformConstant 27 - 29(accNV0): 28(ptr) Variable UniformConstant - 35: TypeFloat 32 - 36: TypeVector 35(float) 3 - 37(block): TypeStruct 36(fvec3) 36(fvec3) - 38: TypePointer ShaderRecordBufferKHR 37(block) - 39: 38(ptr) Variable ShaderRecordBufferKHR - 40: TypeInt 32 1 - 41: 40(int) Constant 1 - 42: TypePointer ShaderRecordBufferKHR 36(fvec3) - 45: 35(float) Constant 1056964608 - 46: 40(int) Constant 0 - 49: 35(float) Constant 1061158912 - 50(accNV1): 28(ptr) Variable UniformConstant - 51: TypeVector 35(float) 4 - 52: TypePointer RayPayloadKHR 51(fvec4) - 53(payload): 52(ptr) Variable RayPayloadKHR - 4(main): 2 Function None 3 - 5: Label - 8(lx): 7(ptr) Variable Function - 16(ly): 7(ptr) Variable Function - 20(sx): 7(ptr) Variable Function - 24(sy): 7(ptr) Variable Function - 14: 13(ptr) AccessChain 11(gl_LaunchIDNV) 12 - 15: 6(int) Load 14 - Store 8(lx) 15 - 18: 13(ptr) AccessChain 11(gl_LaunchIDNV) 17 - 19: 6(int) Load 18 - Store 16(ly) 19 - 22: 13(ptr) AccessChain 21(gl_LaunchSizeNV) 12 - 23: 6(int) Load 22 - Store 20(sx) 23 - 25: 13(ptr) AccessChain 21(gl_LaunchSizeNV) 17 - 26: 6(int) Load 25 - Store 24(sy) 26 - 30: 27 Load 29(accNV0) - 31: 6(int) Load 8(lx) - 32: 6(int) Load 16(ly) - 33: 6(int) Load 20(sx) - 34: 6(int) Load 24(sy) - 43: 42(ptr) AccessChain 39 41 - 44: 36(fvec3) Load 43 - 47: 42(ptr) AccessChain 39 46 - 48: 36(fvec3) Load 47 - TraceNV 30 31 32 33 34 12 44 45 48 49 41 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.RayGenShader11.rgen.out b/deps/glslang/Test/baseResults/spv.RayGenShader11.rgen.out deleted file mode 100644 index 48509b0d..00000000 --- a/deps/glslang/Test/baseResults/spv.RayGenShader11.rgen.out +++ /dev/null @@ -1,91 +0,0 @@ -spv.RayGenShader11.rgen -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 53 - - Capability RayTracingNV - Extension "SPV_NV_ray_tracing" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint RayGenerationKHR 4 "main" 11 21 - Source GLSL 460 - SourceExtension "GL_NV_ray_tracing" - Name 4 "main" - Name 8 "lx" - Name 11 "gl_LaunchIDNV" - Name 16 "ly" - Name 20 "sx" - Name 21 "gl_LaunchSizeNV" - Name 24 "sy" - Name 29 "accNV" - Name 37 "block" - MemberName 37(block) 0 "dir" - MemberName 37(block) 1 "origin" - Name 39 "" - Name 52 "payload" - Decorate 11(gl_LaunchIDNV) BuiltIn LaunchIdKHR - Decorate 21(gl_LaunchSizeNV) BuiltIn LaunchSizeKHR - Decorate 29(accNV) DescriptorSet 0 - Decorate 29(accNV) Binding 0 - MemberDecorate 37(block) 0 Offset 0 - MemberDecorate 37(block) 1 Offset 16 - Decorate 37(block) Block - Decorate 52(payload) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypeVector 6(int) 3 - 10: TypePointer Input 9(ivec3) -11(gl_LaunchIDNV): 10(ptr) Variable Input - 12: 6(int) Constant 0 - 13: TypePointer Input 6(int) - 17: 6(int) Constant 1 -21(gl_LaunchSizeNV): 10(ptr) Variable Input - 27: TypeAccelerationStructureKHR - 28: TypePointer UniformConstant 27 - 29(accNV): 28(ptr) Variable UniformConstant - 35: TypeFloat 32 - 36: TypeVector 35(float) 3 - 37(block): TypeStruct 36(fvec3) 36(fvec3) - 38: TypePointer ShaderRecordBufferKHR 37(block) - 39: 38(ptr) Variable ShaderRecordBufferKHR - 40: TypeInt 32 1 - 41: 40(int) Constant 1 - 42: TypePointer ShaderRecordBufferKHR 36(fvec3) - 45: 35(float) Constant 1056964608 - 46: 40(int) Constant 0 - 49: 35(float) Constant 1061158912 - 50: TypeVector 35(float) 4 - 51: TypePointer RayPayloadKHR 50(fvec4) - 52(payload): 51(ptr) Variable RayPayloadKHR - 4(main): 2 Function None 3 - 5: Label - 8(lx): 7(ptr) Variable Function - 16(ly): 7(ptr) Variable Function - 20(sx): 7(ptr) Variable Function - 24(sy): 7(ptr) Variable Function - 14: 13(ptr) AccessChain 11(gl_LaunchIDNV) 12 - 15: 6(int) Load 14 - Store 8(lx) 15 - 18: 13(ptr) AccessChain 11(gl_LaunchIDNV) 17 - 19: 6(int) Load 18 - Store 16(ly) 19 - 22: 13(ptr) AccessChain 21(gl_LaunchSizeNV) 12 - 23: 6(int) Load 22 - Store 20(sx) 23 - 25: 13(ptr) AccessChain 21(gl_LaunchSizeNV) 17 - 26: 6(int) Load 25 - Store 24(sy) 26 - 30: 27 Load 29(accNV) - 31: 6(int) Load 8(lx) - 32: 6(int) Load 16(ly) - 33: 6(int) Load 20(sx) - 34: 6(int) Load 24(sy) - 43: 42(ptr) AccessChain 39 41 - 44: 36(fvec3) Load 43 - 47: 42(ptr) AccessChain 39 46 - 48: 36(fvec3) Load 47 - TraceNV 30 31 32 33 34 12 44 45 48 49 41 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.RayGenShaderArray.rgen.out b/deps/glslang/Test/baseResults/spv.RayGenShaderArray.rgen.out deleted file mode 100644 index 8ddfca97..00000000 --- a/deps/glslang/Test/baseResults/spv.RayGenShaderArray.rgen.out +++ /dev/null @@ -1,141 +0,0 @@ -spv.RayGenShaderArray.rgen -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 89 - - Capability ShaderNonUniformEXT - Capability RuntimeDescriptorArrayEXT - Capability RayTracingNV - Extension "SPV_EXT_descriptor_indexing" - Extension "SPV_NV_ray_tracing" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint RayGenerationKHR 4 "main" 11 21 - Source GLSL 460 - SourceExtension "GL_EXT_nonuniform_qualifier" - SourceExtension "GL_NV_ray_tracing" - Name 4 "main" - Name 8 "lx" - Name 11 "gl_LaunchIDNV" - Name 16 "ly" - Name 20 "sx" - Name 21 "gl_LaunchSizeNV" - Name 24 "sy" - Name 30 "accNV0" - Name 34 "block" - MemberName 34(block) 0 "dir" - MemberName 34(block) 1 "origin" - MemberName 34(block) 2 "i" - Name 36 "" - Name 60 "accNV1" - Name 88 "payload" - Decorate 11(gl_LaunchIDNV) BuiltIn LaunchIdKHR - Decorate 21(gl_LaunchSizeNV) BuiltIn LaunchSizeKHR - Decorate 30(accNV0) DescriptorSet 0 - Decorate 30(accNV0) Binding 0 - MemberDecorate 34(block) 0 Offset 0 - MemberDecorate 34(block) 1 Offset 16 - MemberDecorate 34(block) 2 Offset 28 - Decorate 34(block) BufferBlock - Decorate 60(accNV1) DescriptorSet 0 - Decorate 60(accNV1) Binding 1 - Decorate 75 DecorationNonUniformEXT - Decorate 76 DecorationNonUniformEXT - Decorate 77 DecorationNonUniformEXT - Decorate 88(payload) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypeVector 6(int) 3 - 10: TypePointer Input 9(ivec3) -11(gl_LaunchIDNV): 10(ptr) Variable Input - 12: 6(int) Constant 0 - 13: TypePointer Input 6(int) - 17: 6(int) Constant 1 -21(gl_LaunchSizeNV): 10(ptr) Variable Input - 27: TypeAccelerationStructureKHR - 28: TypeRuntimeArray 27 - 29: TypePointer UniformConstant 28 - 30(accNV0): 29(ptr) Variable UniformConstant - 31: TypeFloat 32 - 32: TypeVector 31(float) 3 - 33: TypeInt 32 1 - 34(block): TypeStruct 32(fvec3) 32(fvec3) 33(int) - 35: TypePointer ShaderRecordBufferKHR 34(block) - 36: 35(ptr) Variable ShaderRecordBufferKHR - 37: 33(int) Constant 2 - 38: TypePointer ShaderRecordBufferKHR 33(int) - 41: TypePointer UniformConstant 27 - 48: 33(int) Constant 1 - 49: TypePointer ShaderRecordBufferKHR 32(fvec3) - 52: 31(float) Constant 1056964608 - 53: 33(int) Constant 0 - 56: 31(float) Constant 1061158912 - 57: 6(int) Constant 2 - 58: TypeArray 27 57 - 59: TypePointer UniformConstant 58 - 60(accNV1): 59(ptr) Variable UniformConstant - 86: TypeVector 31(float) 4 - 87: TypePointer RayPayloadKHR 86(fvec4) - 88(payload): 87(ptr) Variable RayPayloadKHR - 4(main): 2 Function None 3 - 5: Label - 8(lx): 7(ptr) Variable Function - 16(ly): 7(ptr) Variable Function - 20(sx): 7(ptr) Variable Function - 24(sy): 7(ptr) Variable Function - 14: 13(ptr) AccessChain 11(gl_LaunchIDNV) 12 - 15: 6(int) Load 14 - Store 8(lx) 15 - 18: 13(ptr) AccessChain 11(gl_LaunchIDNV) 17 - 19: 6(int) Load 18 - Store 16(ly) 19 - 22: 13(ptr) AccessChain 21(gl_LaunchSizeNV) 12 - 23: 6(int) Load 22 - Store 20(sx) 23 - 25: 13(ptr) AccessChain 21(gl_LaunchSizeNV) 17 - 26: 6(int) Load 25 - Store 24(sy) 26 - 39: 38(ptr) AccessChain 36 37 - 40: 33(int) Load 39 - 42: 41(ptr) AccessChain 30(accNV0) 40 - 43: 27 Load 42 - 44: 6(int) Load 8(lx) - 45: 6(int) Load 16(ly) - 46: 6(int) Load 20(sx) - 47: 6(int) Load 24(sy) - 50: 49(ptr) AccessChain 36 48 - 51: 32(fvec3) Load 50 - 54: 49(ptr) AccessChain 36 53 - 55: 32(fvec3) Load 54 - TraceNV 43 44 45 46 47 12 51 52 55 56 48 - 61: 38(ptr) AccessChain 36 37 - 62: 33(int) Load 61 - 63: 41(ptr) AccessChain 60(accNV1) 62 - 64: 27 Load 63 - 65: 6(int) Load 8(lx) - 66: 6(int) Load 16(ly) - 67: 6(int) Load 20(sx) - 68: 6(int) Load 24(sy) - 69: 49(ptr) AccessChain 36 48 - 70: 32(fvec3) Load 69 - 71: 49(ptr) AccessChain 36 53 - 72: 32(fvec3) Load 71 - TraceNV 64 65 66 67 68 12 70 52 72 56 48 - 73: 38(ptr) AccessChain 36 37 - 74: 33(int) Load 73 - 75: 33(int) CopyObject 74 - 76: 41(ptr) AccessChain 30(accNV0) 75 - 77: 27 Load 76 - 78: 6(int) Load 8(lx) - 79: 6(int) Load 16(ly) - 80: 6(int) Load 20(sx) - 81: 6(int) Load 24(sy) - 82: 49(ptr) AccessChain 36 48 - 83: 32(fvec3) Load 82 - 84: 49(ptr) AccessChain 36 53 - 85: 32(fvec3) Load 84 - TraceNV 77 78 79 80 81 12 83 52 85 56 48 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.RayGenShaderMotion.rgen.out b/deps/glslang/Test/baseResults/spv.RayGenShaderMotion.rgen.out deleted file mode 100644 index a6af2365..00000000 --- a/deps/glslang/Test/baseResults/spv.RayGenShaderMotion.rgen.out +++ /dev/null @@ -1,80 +0,0 @@ -spv.RayGenShaderMotion.rgen -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 47 - - Capability RayTracingKHR - Capability RayTracingMotionBlurNV - Extension "SPV_KHR_ray_tracing" - Extension "SPV_NV_ray_tracing_motion_blur" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint RayGenerationKHR 4 "main" 11 21 29 46 - Source GLSL 460 - SourceExtension "GL_EXT_ray_tracing" - SourceExtension "GL_NV_ray_tracing_motion_blur" - Name 4 "main" - Name 8 "lx" - Name 11 "gl_LaunchIDEXT" - Name 16 "ly" - Name 20 "sx" - Name 21 "gl_LaunchSizeEXT" - Name 24 "sy" - Name 29 "accEXT" - Name 46 "payloadEXT" - Decorate 11(gl_LaunchIDEXT) BuiltIn LaunchIdKHR - Decorate 21(gl_LaunchSizeEXT) BuiltIn LaunchSizeKHR - Decorate 29(accEXT) DescriptorSet 0 - Decorate 29(accEXT) Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypeVector 6(int) 3 - 10: TypePointer Input 9(ivec3) -11(gl_LaunchIDEXT): 10(ptr) Variable Input - 12: 6(int) Constant 0 - 13: TypePointer Input 6(int) - 17: 6(int) Constant 1 -21(gl_LaunchSizeEXT): 10(ptr) Variable Input - 27: TypeAccelerationStructureKHR - 28: TypePointer UniformConstant 27 - 29(accEXT): 28(ptr) Variable UniformConstant - 35: TypeFloat 32 - 36: TypeVector 35(float) 3 - 37: 35(float) Constant 1056964608 - 38: 36(fvec3) ConstantComposite 37 37 37 - 39: 35(float) Constant 1065353216 - 40: 36(fvec3) ConstantComposite 39 39 39 - 41: 35(float) Constant 1061158912 - 42: TypeInt 32 1 - 43: 42(int) Constant 0 - 44: TypeVector 35(float) 4 - 45: TypePointer RayPayloadKHR 44(fvec4) - 46(payloadEXT): 45(ptr) Variable RayPayloadKHR - 4(main): 2 Function None 3 - 5: Label - 8(lx): 7(ptr) Variable Function - 16(ly): 7(ptr) Variable Function - 20(sx): 7(ptr) Variable Function - 24(sy): 7(ptr) Variable Function - 14: 13(ptr) AccessChain 11(gl_LaunchIDEXT) 12 - 15: 6(int) Load 14 - Store 8(lx) 15 - 18: 13(ptr) AccessChain 11(gl_LaunchIDEXT) 17 - 19: 6(int) Load 18 - Store 16(ly) 19 - 22: 13(ptr) AccessChain 21(gl_LaunchSizeEXT) 12 - 23: 6(int) Load 22 - Store 20(sx) 23 - 25: 13(ptr) AccessChain 21(gl_LaunchSizeEXT) 17 - 26: 6(int) Load 25 - Store 24(sy) 26 - 30: 27 Load 29(accEXT) - 31: 6(int) Load 8(lx) - 32: 6(int) Load 16(ly) - 33: 6(int) Load 20(sx) - 34: 6(int) Load 24(sy) - TraceRayMotionNV 30 31 32 33 34 12 38 37 40 41 37 46(payloadEXT) - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.RayGenShader_Errors.rgen.out b/deps/glslang/Test/baseResults/spv.RayGenShader_Errors.rgen.out deleted file mode 100644 index a264edae..00000000 --- a/deps/glslang/Test/baseResults/spv.RayGenShader_Errors.rgen.out +++ /dev/null @@ -1,40 +0,0 @@ -spv.RayGenShader_Errors.rgen -ERROR: 0:3: 'hitAttributeNV' : not supported in this stage: ray-generation -ERROR: 0:4: 'rayPayloadInNV' : not supported in this stage: ray-generation -ERROR: 0:5: 'shaderRecordNV' : can only be used with a buffer -ERROR: 0:9: 'binding' : cannot be used with shaderRecordNV -ERROR: 0:12: 'set' : cannot be used with shaderRecordNV -ERROR: 0:23: 'accelerationStructureNV' : accelerationStructureNV can only be used in uniform variables or function parameters: a -ERROR: 0:23: '=' : cannot convert from ' const int' to ' temp accelerationStructureNV' -ERROR: 0:24: 'gl_PrimitiveID' : undeclared identifier -ERROR: 0:24: '=' : cannot convert from ' temp float' to ' temp highp int' -ERROR: 0:25: 'gl_InstanceID' : undeclared identifier (Did you mean gl_InstanceIndex?) -ERROR: 0:25: '=' : cannot convert from ' temp float' to ' temp highp int' -ERROR: 0:26: 'gl_InstanceCustomIndexNV' : undeclared identifier -ERROR: 0:26: '=' : cannot convert from ' temp float' to ' temp highp int' -ERROR: 0:27: 'gl_WorldRayOriginNV' : undeclared identifier -ERROR: 0:27: '=' : cannot convert from ' temp float' to ' temp highp 3-component vector of float' -ERROR: 0:28: 'gl_WorldRayDirectionNV' : undeclared identifier -ERROR: 0:28: '=' : cannot convert from ' temp float' to ' temp highp 3-component vector of float' -ERROR: 0:29: 'gl_ObjectRayOriginNV' : undeclared identifier -ERROR: 0:29: '=' : cannot convert from ' temp float' to ' temp highp 3-component vector of float' -ERROR: 0:30: 'gl_ObjectRayDirectionNV' : undeclared identifier -ERROR: 0:30: '=' : cannot convert from ' temp float' to ' temp highp 3-component vector of float' -ERROR: 0:31: 'gl_RayTminNV' : undeclared identifier -ERROR: 0:32: 'gl_RayTmaxNV' : undeclared identifier -ERROR: 0:33: 'gl_ObjectToWorldNV' : undeclared identifier -ERROR: 0:33: '=' : cannot convert from ' temp float' to ' temp highp 4X3 matrix of float' -ERROR: 0:34: 'gl_WorldToObjectNV' : undeclared identifier -ERROR: 0:34: '=' : cannot convert from ' temp float' to ' temp highp 4X3 matrix of float' -ERROR: 0:35: 'gl_HitTNV' : undeclared identifier -ERROR: 0:36: 'gl_HitKindNV' : undeclared identifier -ERROR: 0:37: 'reportIntersectionNV' : no matching overloaded function found -ERROR: 0:38: 'ignoreIntersectionNV' : no matching overloaded function found -ERROR: 0:39: 'terminateRayNV' : no matching overloaded function found -ERROR: 0:40: 'assign' : l-value required "anon@3" (can't modify a shaderrecordnv qualified buffer) -ERROR: 33 compilation errors. No code generated. - - -ERROR: Linking ray-generation stage: Only one shaderRecordNV buffer block is allowed per stage - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.16BitAccess.comp.out b/deps/glslang/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.16BitAccess.comp.out deleted file mode 100644 index 31dd2dd1..00000000 --- a/deps/glslang/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.16BitAccess.comp.out +++ /dev/null @@ -1,54 +0,0 @@ -spv.WorkgroupMemoryExplicitLayout.16BitAccess.comp -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 25 - - Capability Shader - Capability Float16 - Capability Int16 - Capability CapabilityWorkgroupMemoryExplicitLayoutKHR - Capability CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR - Extension "SPV_KHR_workgroup_memory_explicit_layout" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 10 - ExecutionMode 4 LocalSize 2 1 1 - Source GLSL 430 - SourceExtension "GL_EXT_shader_explicit_arithmetic_types" - SourceExtension "GL_EXT_shared_memory_block" - Name 4 "main" - Name 8 "first" - MemberName 8(first) 0 "a" - MemberName 8(first) 1 "f" - Name 10 "" - MemberDecorate 8(first) 0 Offset 0 - MemberDecorate 8(first) 1 Offset 2 - Decorate 8(first) Block - Decorate 24 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 16 1 - 7: TypeFloat 16 - 8(first): TypeStruct 6(int16_t) 7(float16_t) - 9: TypePointer Workgroup 8(first) - 10: 9(ptr) Variable Workgroup - 11: TypeInt 32 1 - 12: 11(int) Constant 0 - 13: 6(int16_t) Constant 3 - 14: TypePointer Workgroup 6(int16_t) - 16: 11(int) Constant 1 - 17:7(float16_t) Constant 18982 - 18: TypePointer Workgroup 7(float16_t) - 20: TypeInt 32 0 - 21: TypeVector 20(int) 3 - 22: 20(int) Constant 2 - 23: 20(int) Constant 1 - 24: 21(ivec3) ConstantComposite 22 23 23 - 4(main): 2 Function None 3 - 5: Label - 15: 14(ptr) AccessChain 10 12 - Store 15 13 - 19: 18(ptr) AccessChain 10 16 - Store 19 17 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.8BitAccess.comp.out b/deps/glslang/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.8BitAccess.comp.out deleted file mode 100644 index 3447791f..00000000 --- a/deps/glslang/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.8BitAccess.comp.out +++ /dev/null @@ -1,45 +0,0 @@ -spv.WorkgroupMemoryExplicitLayout.8BitAccess.comp -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 20 - - Capability Shader - Capability Int8 - Capability CapabilityWorkgroupMemoryExplicitLayoutKHR - Capability CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR - Extension "SPV_KHR_workgroup_memory_explicit_layout" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 9 - ExecutionMode 4 LocalSize 2 1 1 - Source GLSL 430 - SourceExtension "GL_EXT_shader_explicit_arithmetic_types" - SourceExtension "GL_EXT_shared_memory_block" - Name 4 "main" - Name 7 "first" - MemberName 7(first) 0 "a" - Name 9 "" - MemberDecorate 7(first) 0 Offset 0 - Decorate 7(first) Block - Decorate 19 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 8 1 - 7(first): TypeStruct 6(int8_t) - 8: TypePointer Workgroup 7(first) - 9: 8(ptr) Variable Workgroup - 10: TypeInt 32 1 - 11: 10(int) Constant 0 - 12: 6(int8_t) Constant 2 - 13: TypePointer Workgroup 6(int8_t) - 15: TypeInt 32 0 - 16: TypeVector 15(int) 3 - 17: 15(int) Constant 2 - 18: 15(int) Constant 1 - 19: 16(ivec3) ConstantComposite 17 18 18 - 4(main): 2 Function None 3 - 5: Label - 14: 13(ptr) AccessChain 9 11 - Store 14 12 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.MixBlockNonBlock_Errors.comp.out b/deps/glslang/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.MixBlockNonBlock_Errors.comp.out deleted file mode 100644 index 82495d11..00000000 --- a/deps/glslang/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.MixBlockNonBlock_Errors.comp.out +++ /dev/null @@ -1,4 +0,0 @@ -spv.WorkgroupMemoryExplicitLayout.MixBlockNonBlock_Errors.comp -ERROR: Linking compute stage: cannot mix use of shared variables inside and outside blocks - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.MultiBlock.comp.out b/deps/glslang/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.MultiBlock.comp.out deleted file mode 100644 index b578bd3a..00000000 --- a/deps/glslang/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.MultiBlock.comp.out +++ /dev/null @@ -1,54 +0,0 @@ -spv.WorkgroupMemoryExplicitLayout.MultiBlock.comp -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 24 - - Capability Shader - Capability CapabilityWorkgroupMemoryExplicitLayoutKHR - Extension "SPV_KHR_workgroup_memory_explicit_layout" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 9 16 - ExecutionMode 4 LocalSize 8 1 1 - Source GLSL 430 - SourceExtension "GL_EXT_shared_memory_block" - Name 4 "main" - Name 7 "first" - MemberName 7(first) 0 "a" - Name 9 "" - Name 14 "second" - MemberName 14(second) 0 "b" - Name 16 "" - MemberDecorate 7(first) 0 Offset 0 - Decorate 7(first) Block - MemberDecorate 14(second) 0 Offset 0 - Decorate 14(second) Block - Decorate 23 BuiltIn WorkgroupSize - Decorate 9 Aliased - Decorate 16 Aliased - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7(first): TypeStruct 6(int) - 8: TypePointer Workgroup 7(first) - 9: 8(ptr) Variable Workgroup - 10: 6(int) Constant 0 - 11: 6(int) Constant 2 - 12: TypePointer Workgroup 6(int) - 14(second): TypeStruct 6(int) - 15: TypePointer Workgroup 14(second) - 16: 15(ptr) Variable Workgroup - 17: 6(int) Constant 3 - 19: TypeInt 32 0 - 20: TypeVector 19(int) 3 - 21: 19(int) Constant 8 - 22: 19(int) Constant 1 - 23: 20(ivec3) ConstantComposite 21 22 22 - 4(main): 2 Function None 3 - 5: Label - 13: 12(ptr) AccessChain 9 10 - Store 13 11 - 18: 12(ptr) AccessChain 16 10 - Store 18 17 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.NonBlock.comp.out b/deps/glslang/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.NonBlock.comp.out deleted file mode 100644 index 19bcff6b..00000000 --- a/deps/glslang/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.NonBlock.comp.out +++ /dev/null @@ -1,35 +0,0 @@ -spv.WorkgroupMemoryExplicitLayout.NonBlock.comp -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 17 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 8 10 - ExecutionMode 4 LocalSize 8 1 1 - Source GLSL 430 - SourceExtension "GL_EXT_shared_memory_block" - Name 4 "main" - Name 8 "a" - Name 10 "b" - Decorate 16 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Workgroup 6(int) - 8(a): 7(ptr) Variable Workgroup - 9: 6(int) Constant 2 - 10(b): 7(ptr) Variable Workgroup - 11: 6(int) Constant 3 - 12: TypeInt 32 0 - 13: TypeVector 12(int) 3 - 14: 12(int) Constant 8 - 15: 12(int) Constant 1 - 16: 13(ivec3) ConstantComposite 14 15 15 - 4(main): 2 Function None 3 - 5: Label - Store 8(a) 9 - Store 10(b) 11 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.SingleBlock.comp.out b/deps/glslang/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.SingleBlock.comp.out deleted file mode 100644 index 413fd2e8..00000000 --- a/deps/glslang/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.SingleBlock.comp.out +++ /dev/null @@ -1,41 +0,0 @@ -spv.WorkgroupMemoryExplicitLayout.SingleBlock.comp -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 19 - - Capability Shader - Capability CapabilityWorkgroupMemoryExplicitLayoutKHR - Extension "SPV_KHR_workgroup_memory_explicit_layout" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 9 - ExecutionMode 4 LocalSize 8 1 1 - Source GLSL 430 - SourceExtension "GL_EXT_shared_memory_block" - Name 4 "main" - Name 7 "first" - MemberName 7(first) 0 "a" - Name 9 "" - MemberDecorate 7(first) 0 Offset 0 - Decorate 7(first) Block - Decorate 18 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7(first): TypeStruct 6(int) - 8: TypePointer Workgroup 7(first) - 9: 8(ptr) Variable Workgroup - 10: 6(int) Constant 0 - 11: 6(int) Constant 2 - 12: TypePointer Workgroup 6(int) - 14: TypeInt 32 0 - 15: TypeVector 14(int) 3 - 16: 14(int) Constant 8 - 17: 14(int) Constant 1 - 18: 15(ivec3) ConstantComposite 16 17 17 - 4(main): 2 Function None 3 - 5: Label - 13: 12(ptr) AccessChain 9 10 - Store 13 11 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.scalar.comp.out b/deps/glslang/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.scalar.comp.out deleted file mode 100644 index 6a43e236..00000000 --- a/deps/glslang/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.scalar.comp.out +++ /dev/null @@ -1,84 +0,0 @@ -spv.WorkgroupMemoryExplicitLayout.scalar.comp -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 29 - - Capability Shader - Capability CapabilityWorkgroupMemoryExplicitLayoutKHR - Extension "SPV_KHR_workgroup_memory_explicit_layout" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 28 - ExecutionMode 4 LocalSize 8 1 1 - Source GLSL 430 - SourceExtension "GL_EXT_scalar_block_layout" - SourceExtension "GL_EXT_shared_memory_block" - Name 4 "main" - Name 17 "T" - MemberName 17(T) 0 "t" - Name 24 "S" - MemberName 24(S) 0 "f" - MemberName 24(S) 1 "v2" - MemberName 24(S) 2 "v3" - MemberName 24(S) 3 "v4" - MemberName 24(S) 4 "t" - MemberName 24(S) 5 "f_array" - MemberName 24(S) 6 "v2_array" - MemberName 24(S) 7 "v3_array" - MemberName 24(S) 8 "v4_array" - MemberName 24(S) 9 "t_array" - Name 26 "Block" - MemberName 26(Block) 0 "s" - MemberName 26(Block) 1 "s_array" - Name 28 "" - Decorate 10 BuiltIn WorkgroupSize - Decorate 16 ArrayStride 4 - MemberDecorate 17(T) 0 Offset 0 - Decorate 19 ArrayStride 4 - Decorate 20 ArrayStride 8 - Decorate 21 ArrayStride 12 - Decorate 22 ArrayStride 16 - Decorate 23 ArrayStride 12 - MemberDecorate 24(S) 0 Offset 0 - MemberDecorate 24(S) 1 Offset 4 - MemberDecorate 24(S) 2 Offset 12 - MemberDecorate 24(S) 3 Offset 24 - MemberDecorate 24(S) 4 Offset 40 - MemberDecorate 24(S) 5 Offset 52 - MemberDecorate 24(S) 6 Offset 76 - MemberDecorate 24(S) 7 Offset 124 - MemberDecorate 24(S) 8 Offset 196 - MemberDecorate 24(S) 9 Offset 292 - Decorate 25 ArrayStride 364 - MemberDecorate 26(Block) 0 Offset 0 - MemberDecorate 26(Block) 1 Offset 364 - Decorate 26(Block) Block - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeVector 6(int) 3 - 8: 6(int) Constant 8 - 9: 6(int) Constant 1 - 10: 7(ivec3) ConstantComposite 8 9 9 - 11: TypeFloat 32 - 12: TypeVector 11(float) 2 - 13: TypeVector 11(float) 3 - 14: TypeVector 11(float) 4 - 15: 6(int) Constant 3 - 16: TypeArray 11(float) 15 - 17(T): TypeStruct 16 - 18: 6(int) Constant 6 - 19: TypeArray 11(float) 18 - 20: TypeArray 12(fvec2) 18 - 21: TypeArray 13(fvec3) 18 - 22: TypeArray 14(fvec4) 18 - 23: TypeArray 17(T) 18 - 24(S): TypeStruct 11(float) 12(fvec2) 13(fvec3) 14(fvec4) 17(T) 19 20 21 22 23 - 25: TypeArray 24(S) 18 - 26(Block): TypeStruct 24(S) 25 - 27: TypePointer Workgroup 26(Block) - 28: 27(ptr) Variable Workgroup - 4(main): 2 Function None 3 - 5: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.std140.comp.out b/deps/glslang/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.std140.comp.out deleted file mode 100644 index df4b8aed..00000000 --- a/deps/glslang/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.std140.comp.out +++ /dev/null @@ -1,83 +0,0 @@ -spv.WorkgroupMemoryExplicitLayout.std140.comp -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 29 - - Capability Shader - Capability CapabilityWorkgroupMemoryExplicitLayoutKHR - Extension "SPV_KHR_workgroup_memory_explicit_layout" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 28 - ExecutionMode 4 LocalSize 8 1 1 - Source GLSL 430 - SourceExtension "GL_EXT_shared_memory_block" - Name 4 "main" - Name 17 "T" - MemberName 17(T) 0 "t" - Name 24 "S" - MemberName 24(S) 0 "f" - MemberName 24(S) 1 "v2" - MemberName 24(S) 2 "v3" - MemberName 24(S) 3 "v4" - MemberName 24(S) 4 "t" - MemberName 24(S) 5 "f_array" - MemberName 24(S) 6 "v2_array" - MemberName 24(S) 7 "v3_array" - MemberName 24(S) 8 "v4_array" - MemberName 24(S) 9 "t_array" - Name 26 "Block" - MemberName 26(Block) 0 "s" - MemberName 26(Block) 1 "s_array" - Name 28 "" - Decorate 10 BuiltIn WorkgroupSize - Decorate 16 ArrayStride 16 - MemberDecorate 17(T) 0 Offset 0 - Decorate 19 ArrayStride 16 - Decorate 20 ArrayStride 16 - Decorate 21 ArrayStride 16 - Decorate 22 ArrayStride 16 - Decorate 23 ArrayStride 48 - MemberDecorate 24(S) 0 Offset 0 - MemberDecorate 24(S) 1 Offset 8 - MemberDecorate 24(S) 2 Offset 16 - MemberDecorate 24(S) 3 Offset 32 - MemberDecorate 24(S) 4 Offset 48 - MemberDecorate 24(S) 5 Offset 96 - MemberDecorate 24(S) 6 Offset 192 - MemberDecorate 24(S) 7 Offset 288 - MemberDecorate 24(S) 8 Offset 384 - MemberDecorate 24(S) 9 Offset 480 - Decorate 25 ArrayStride 768 - MemberDecorate 26(Block) 0 Offset 0 - MemberDecorate 26(Block) 1 Offset 768 - Decorate 26(Block) Block - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeVector 6(int) 3 - 8: 6(int) Constant 8 - 9: 6(int) Constant 1 - 10: 7(ivec3) ConstantComposite 8 9 9 - 11: TypeFloat 32 - 12: TypeVector 11(float) 2 - 13: TypeVector 11(float) 3 - 14: TypeVector 11(float) 4 - 15: 6(int) Constant 3 - 16: TypeArray 11(float) 15 - 17(T): TypeStruct 16 - 18: 6(int) Constant 6 - 19: TypeArray 11(float) 18 - 20: TypeArray 12(fvec2) 18 - 21: TypeArray 13(fvec3) 18 - 22: TypeArray 14(fvec4) 18 - 23: TypeArray 17(T) 18 - 24(S): TypeStruct 11(float) 12(fvec2) 13(fvec3) 14(fvec4) 17(T) 19 20 21 22 23 - 25: TypeArray 24(S) 18 - 26(Block): TypeStruct 24(S) 25 - 27: TypePointer Workgroup 26(Block) - 28: 27(ptr) Variable Workgroup - 4(main): 2 Function None 3 - 5: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.std430.comp.out b/deps/glslang/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.std430.comp.out deleted file mode 100644 index e782784b..00000000 --- a/deps/glslang/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.std430.comp.out +++ /dev/null @@ -1,83 +0,0 @@ -spv.WorkgroupMemoryExplicitLayout.std430.comp -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 29 - - Capability Shader - Capability CapabilityWorkgroupMemoryExplicitLayoutKHR - Extension "SPV_KHR_workgroup_memory_explicit_layout" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 28 - ExecutionMode 4 LocalSize 8 1 1 - Source GLSL 430 - SourceExtension "GL_EXT_shared_memory_block" - Name 4 "main" - Name 17 "T" - MemberName 17(T) 0 "t" - Name 24 "S" - MemberName 24(S) 0 "f" - MemberName 24(S) 1 "v2" - MemberName 24(S) 2 "v3" - MemberName 24(S) 3 "v4" - MemberName 24(S) 4 "t" - MemberName 24(S) 5 "f_array" - MemberName 24(S) 6 "v2_array" - MemberName 24(S) 7 "v3_array" - MemberName 24(S) 8 "v4_array" - MemberName 24(S) 9 "t_array" - Name 26 "Block" - MemberName 26(Block) 0 "s" - MemberName 26(Block) 1 "s_array" - Name 28 "" - Decorate 10 BuiltIn WorkgroupSize - Decorate 16 ArrayStride 4 - MemberDecorate 17(T) 0 Offset 0 - Decorate 19 ArrayStride 4 - Decorate 20 ArrayStride 8 - Decorate 21 ArrayStride 16 - Decorate 22 ArrayStride 16 - Decorate 23 ArrayStride 12 - MemberDecorate 24(S) 0 Offset 0 - MemberDecorate 24(S) 1 Offset 8 - MemberDecorate 24(S) 2 Offset 16 - MemberDecorate 24(S) 3 Offset 32 - MemberDecorate 24(S) 4 Offset 48 - MemberDecorate 24(S) 5 Offset 60 - MemberDecorate 24(S) 6 Offset 88 - MemberDecorate 24(S) 7 Offset 144 - MemberDecorate 24(S) 8 Offset 240 - MemberDecorate 24(S) 9 Offset 336 - Decorate 25 ArrayStride 416 - MemberDecorate 26(Block) 0 Offset 0 - MemberDecorate 26(Block) 1 Offset 416 - Decorate 26(Block) Block - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeVector 6(int) 3 - 8: 6(int) Constant 8 - 9: 6(int) Constant 1 - 10: 7(ivec3) ConstantComposite 8 9 9 - 11: TypeFloat 32 - 12: TypeVector 11(float) 2 - 13: TypeVector 11(float) 3 - 14: TypeVector 11(float) 4 - 15: 6(int) Constant 3 - 16: TypeArray 11(float) 15 - 17(T): TypeStruct 16 - 18: 6(int) Constant 6 - 19: TypeArray 11(float) 18 - 20: TypeArray 12(fvec2) 18 - 21: TypeArray 13(fvec3) 18 - 22: TypeArray 14(fvec4) 18 - 23: TypeArray 17(T) 18 - 24(S): TypeStruct 11(float) 12(fvec2) 13(fvec3) 14(fvec4) 17(T) 19 20 21 22 23 - 25: TypeArray 24(S) 18 - 26(Block): TypeStruct 24(S) 25 - 27: TypePointer Workgroup 26(Block) - 28: 27(ptr) Variable Workgroup - 4(main): 2 Function None 3 - 5: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.accessChain.frag.out b/deps/glslang/Test/baseResults/spv.accessChain.frag.out deleted file mode 100644 index 379131b1..00000000 --- a/deps/glslang/Test/baseResults/spv.accessChain.frag.out +++ /dev/null @@ -1,361 +0,0 @@ -spv.accessChain.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 228 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 69 176 - 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 171 "s" - Name 176 "u" - Name 177 "param" - Name 181 "param" - Name 185 "param" - Name 189 "param" - Name 193 "param" - Name 197 "param" - Name 201 "param" - Name 205 "param" - Name 209 "param" - Name 213 "param" - Name 217 "param" - Name 221 "param" - Name 225 "param" - Decorate 69(OutColor) Location 0 - Decorate 176(u) Flat - Decorate 176(u) Location 0 - 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 - 111: TypePointer Output 6(float) - 114: 71(int) Constant 1 - 117: 71(int) Constant 2 - 154: TypeVector 71(int) 2 - 155: 154(ivec2) ConstantComposite 117 114 - 164: TypeVector 71(int) 3 - 165: 164(ivec3) ConstantComposite 117 114 72 - 168: 6(float) Constant 0 - 169: 7(fvec3) ConstantComposite 168 168 168 - 170: TypePointer Function 8(S) - 175: TypePointer Input 13(int) - 176(u): 175(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 171(s): 170(ptr) Variable Function - 177(param): 14(ptr) Variable Function - 181(param): 14(ptr) Variable Function - 185(param): 14(ptr) Variable Function - 189(param): 14(ptr) Variable Function - 193(param): 14(ptr) Variable Function - 197(param): 14(ptr) Variable Function - 201(param): 14(ptr) Variable Function - 205(param): 14(ptr) Variable Function - 209(param): 14(ptr) Variable Function - 213(param): 14(ptr) Variable Function - 217(param): 14(ptr) Variable Function - 221(param): 14(ptr) Variable Function - 225(param): 14(ptr) Variable Function - Store 69(OutColor) 169 - 172: 8(S) Load 171(s) - 173: 2 FunctionCall 11(GetColor1(struct-S-vf31;) 172 - 174: 8(S) Load 171(s) - 178: 13(int) Load 176(u) - Store 177(param) 178 - 179: 2 FunctionCall 18(GetColor2(struct-S-vf31;i1;) 174 177(param) - 180: 8(S) Load 171(s) - 182: 13(int) Load 176(u) - Store 181(param) 182 - 183: 2 FunctionCall 22(GetColor3(struct-S-vf31;i1;) 180 181(param) - 184: 8(S) Load 171(s) - 186: 13(int) Load 176(u) - Store 185(param) 186 - 187: 2 FunctionCall 26(GetColor4(struct-S-vf31;i1;) 184 185(param) - 188: 8(S) Load 171(s) - 190: 13(int) Load 176(u) - Store 189(param) 190 - 191: 2 FunctionCall 30(GetColor5(struct-S-vf31;i1;) 188 189(param) - 192: 8(S) Load 171(s) - 194: 13(int) Load 176(u) - Store 193(param) 194 - 195: 2 FunctionCall 34(GetColor6(struct-S-vf31;i1;) 192 193(param) - 196: 8(S) Load 171(s) - 198: 13(int) Load 176(u) - Store 197(param) 198 - 199: 2 FunctionCall 38(GetColor7(struct-S-vf31;i1;) 196 197(param) - 200: 8(S) Load 171(s) - 202: 13(int) Load 176(u) - Store 201(param) 202 - 203: 2 FunctionCall 42(GetColor8(struct-S-vf31;i1;) 200 201(param) - 204: 8(S) Load 171(s) - 206: 13(int) Load 176(u) - Store 205(param) 206 - 207: 2 FunctionCall 46(GetColor9(struct-S-vf31;i1;) 204 205(param) - 208: 8(S) Load 171(s) - 210: 13(int) Load 176(u) - Store 209(param) 210 - 211: 2 FunctionCall 50(GetColor10(struct-S-vf31;i1;) 208 209(param) - 212: 8(S) Load 171(s) - 214: 13(int) Load 176(u) - Store 213(param) 214 - 215: 2 FunctionCall 54(GetColor11(struct-S-vf31;i1;) 212 213(param) - 216: 8(S) Load 171(s) - 218: 13(int) Load 176(u) - Store 217(param) 218 - 219: 2 FunctionCall 58(GetColor12(struct-S-vf31;i1;) 216 217(param) - 220: 8(S) Load 171(s) - 222: 13(int) Load 176(u) - Store 221(param) 222 - 223: 2 FunctionCall 62(GetColor13(struct-S-vf31;i1;) 220 221(param) - 224: 8(S) Load 171(s) - 226: 13(int) Load 176(u) - Store 225(param) 226 - 227: 2 FunctionCall 66(GetColor14(struct-S-vf31;i1;) 224 225(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 - 112: 111(ptr) AccessChain 69(OutColor) 72 - 113: 6(float) CompositeExtract 110 0 - Store 112 113 - 115: 111(ptr) AccessChain 69(OutColor) 114 - 116: 6(float) CompositeExtract 110 1 - Store 115 116 - Return - FunctionEnd -42(GetColor8(struct-S-vf31;i1;): 2 Function None 15 - 40(i): 8(S) FunctionParameter - 41(comp): 14(ptr) FunctionParameter - 43: Label - 118: 6(float) CompositeExtract 40(i) 0 2 - 119: 7(fvec3) Load 69(OutColor) - 120: 7(fvec3) CompositeConstruct 118 118 118 - 121: 7(fvec3) FAdd 119 120 - Store 69(OutColor) 121 - Return - FunctionEnd -46(GetColor9(struct-S-vf31;i1;): 2 Function None 15 - 44(i): 8(S) FunctionParameter - 45(comp): 14(ptr) FunctionParameter - 47: Label - 122: 7(fvec3) CompositeExtract 44(i) 0 - 123: 7(fvec3) Load 69(OutColor) - 124: 7(fvec3) VectorShuffle 123 123 2 0 1 - 125: 7(fvec3) FAdd 124 122 - 126: 7(fvec3) Load 69(OutColor) - 127: 7(fvec3) VectorShuffle 126 125 4 5 3 - Store 69(OutColor) 127 - Return - FunctionEnd -50(GetColor10(struct-S-vf31;i1;): 2 Function None 15 - 48(i): 8(S) FunctionParameter - 49(comp): 14(ptr) FunctionParameter - 51: Label - 128: 7(fvec3) CompositeExtract 48(i) 0 - 129: 99(fvec2) VectorShuffle 128 128 0 1 - 130: 7(fvec3) Load 69(OutColor) - 131: 99(fvec2) VectorShuffle 130 130 2 1 - 132: 99(fvec2) FAdd 131 129 - 133: 111(ptr) AccessChain 69(OutColor) 117 - 134: 6(float) CompositeExtract 132 0 - Store 133 134 - 135: 111(ptr) AccessChain 69(OutColor) 114 - 136: 6(float) CompositeExtract 132 1 - Store 135 136 - Return - FunctionEnd -54(GetColor11(struct-S-vf31;i1;): 2 Function None 15 - 52(i): 8(S) FunctionParameter - 53(comp): 14(ptr) FunctionParameter - 55: Label - 137: 7(fvec3) CompositeExtract 52(i) 0 - 138: 99(fvec2) VectorShuffle 137 137 0 1 - 139: 7(fvec3) Load 69(OutColor) - 140: 99(fvec2) VectorShuffle 139 139 0 2 - 141: 99(fvec2) FAdd 140 138 - 142: 111(ptr) AccessChain 69(OutColor) 72 - 143: 6(float) CompositeExtract 141 0 - Store 142 143 - 144: 111(ptr) AccessChain 69(OutColor) 117 - 145: 6(float) CompositeExtract 141 1 - Store 144 145 - Return - FunctionEnd -58(GetColor12(struct-S-vf31;i1;): 2 Function None 15 - 56(i): 8(S) FunctionParameter - 57(comp): 14(ptr) FunctionParameter - 59: Label - 146: 13(int) Load 57(comp) - 147: 6(float) CompositeExtract 56(i) 0 0 - 148: 111(ptr) AccessChain 69(OutColor) 146 - 149: 6(float) Load 148 - 150: 6(float) FAdd 149 147 - 151: 111(ptr) AccessChain 69(OutColor) 146 - Store 151 150 - Return - FunctionEnd -62(GetColor13(struct-S-vf31;i1;): 2 Function None 15 - 60(i): 8(S) FunctionParameter - 61(comp): 14(ptr) FunctionParameter - 63: Label - 152: 13(int) Load 61(comp) - 153: 6(float) CompositeExtract 60(i) 0 0 - 156: 71(int) VectorExtractDynamic 155 152 - 157: 111(ptr) AccessChain 69(OutColor) 156 - 158: 6(float) Load 157 - 159: 6(float) FAdd 158 153 - 160: 71(int) VectorExtractDynamic 155 152 - 161: 111(ptr) AccessChain 69(OutColor) 160 - Store 161 159 - Return - FunctionEnd -66(GetColor14(struct-S-vf31;i1;): 2 Function None 15 - 64(i): 8(S) FunctionParameter - 65(comp): 14(ptr) FunctionParameter - 67: Label - 162: 13(int) Load 65(comp) - 163: 6(float) CompositeExtract 64(i) 0 0 - 166: 71(int) VectorExtractDynamic 165 162 - 167: 111(ptr) AccessChain 69(OutColor) 166 - Store 167 163 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.aggOps.frag.out b/deps/glslang/Test/baseResults/spv.aggOps.frag.out deleted file mode 100644 index 05b14eaa..00000000 --- a/deps/glslang/Test/baseResults/spv.aggOps.frag.out +++ /dev/null @@ -1,319 +0,0 @@ -spv.aggOps.frag -WARNING: 0:4: '' : all default precisions are highp; use precision statements to quiet warning, e.g.: - "precision mediump int; precision highp float;" - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 215 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 16 41 101 213 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - Name 4 "main" - Name 8 "s1" - MemberName 8(s1) 0 "i" - MemberName 8(s1) 1 "f" - Name 13 "a" - Name 16 "u" - Name 37 "b" - Name 41 "w" - Name 55 "s1" - MemberName 55(s1) 0 "i" - MemberName 55(s1) 1 "f" - Name 56 "s2" - MemberName 56(s2) 0 "i" - MemberName 56(s2) 1 "f" - MemberName 56(s2) 2 "s1_1" - Name 57 "ub1" - MemberName 57(ub1) 0 "foo2a" - Name 59 "uName1" - Name 64 "s1" - MemberName 64(s1) 0 "i" - MemberName 64(s1) 1 "f" - Name 65 "s2" - MemberName 65(s2) 0 "i" - MemberName 65(s2) 1 "f" - MemberName 65(s2) 2 "s1_1" - Name 66 "ub2" - MemberName 66(ub2) 0 "foo2b" - Name 68 "uName2" - Name 93 "v" - Name 97 "samp2D" - Name 101 "coord" - Name 213 "color" - Decorate 16(u) Location 1 - Decorate 41(w) Location 2 - MemberDecorate 55(s1) 0 Offset 0 - MemberDecorate 55(s1) 1 Offset 4 - MemberDecorate 56(s2) 0 Offset 0 - MemberDecorate 56(s2) 1 Offset 4 - MemberDecorate 56(s2) 2 Offset 16 - MemberDecorate 57(ub1) 0 Offset 0 - Decorate 57(ub1) Block - Decorate 59(uName1) DescriptorSet 0 - Decorate 59(uName1) Binding 1 - MemberDecorate 64(s1) 0 Offset 0 - MemberDecorate 64(s1) 1 Offset 4 - MemberDecorate 65(s2) 0 Offset 0 - MemberDecorate 65(s2) 1 Offset 4 - MemberDecorate 65(s2) 2 Offset 8 - MemberDecorate 66(ub2) 0 Offset 0 - Decorate 66(ub2) BufferBlock - Decorate 68(uName2) DescriptorSet 0 - Decorate 68(uName2) Binding 2 - Decorate 97(samp2D) DescriptorSet 0 - Decorate 97(samp2D) Binding 0 - Decorate 101(coord) RelaxedPrecision - Decorate 101(coord) Location 0 - Decorate 102 RelaxedPrecision - Decorate 107 RelaxedPrecision - Decorate 108 RelaxedPrecision - Decorate 129 RelaxedPrecision - Decorate 213(color) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypeFloat 32 - 8(s1): TypeStruct 6(int) 7(float) - 9: TypeInt 32 0 - 10: 9(int) Constant 3 - 11: TypeArray 8(s1) 10 - 12: TypePointer Function 11 - 14: TypeVector 7(float) 4 - 15: TypePointer Input 14(fvec4) - 16(u): 15(ptr) Variable Input - 17: 9(int) Constant 0 - 18: TypePointer Input 7(float) - 22: 9(int) Constant 1 - 26: 9(int) Constant 2 - 33: 6(int) Constant 14 - 34: 7(float) Constant 1096810496 - 35: 8(s1) ConstantComposite 33 34 - 38: 6(int) Constant 17 - 39: 7(float) Constant 1099431936 - 40: 8(s1) ConstantComposite 38 39 - 41(w): 15(ptr) Variable Input - 55(s1): TypeStruct 6(int) 7(float) - 56(s2): TypeStruct 6(int) 7(float) 55(s1) - 57(ub1): TypeStruct 56(s2) - 58: TypePointer Uniform 57(ub1) - 59(uName1): 58(ptr) Variable Uniform - 60: 6(int) Constant 0 - 61: TypePointer Uniform 56(s2) - 64(s1): TypeStruct 6(int) 7(float) - 65(s2): TypeStruct 6(int) 7(float) 64(s1) - 66(ub2): TypeStruct 65(s2) - 67: TypePointer Uniform 66(ub2) - 68(uName2): 67(ptr) Variable Uniform - 69: TypePointer Uniform 65(s2) - 72: TypeBool - 92: TypePointer Function 14(fvec4) - 94: TypeImage 7(float) 2D sampled format:Unknown - 95: TypeSampledImage 94 - 96: TypePointer UniformConstant 95 - 97(samp2D): 96(ptr) Variable UniformConstant - 99: TypeVector 7(float) 2 - 100: TypePointer Input 99(fvec2) - 101(coord): 100(ptr) Variable Input - 106: 7(float) Constant 1073741824 - 112: TypeVector 72(bool) 4 - 117: 7(float) Constant 1077936128 - 126: 7(float) Constant 1082130432 - 132: TypeVector 72(bool) 2 - 137: 7(float) Constant 1084227584 - 173: 7(float) Constant 1086324736 - 209: 7(float) Constant 1088421888 - 212: TypePointer Output 14(fvec4) - 213(color): 212(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 13(a): 12(ptr) Variable Function - 37(b): 12(ptr) Variable Function - 93(v): 92(ptr) Variable Function - 19: 18(ptr) AccessChain 16(u) 17 - 20: 7(float) Load 19 - 21: 6(int) ConvertFToS 20 - 23: 18(ptr) AccessChain 16(u) 22 - 24: 7(float) Load 23 - 25: 8(s1) CompositeConstruct 21 24 - 27: 18(ptr) AccessChain 16(u) 26 - 28: 7(float) Load 27 - 29: 6(int) ConvertFToS 28 - 30: 18(ptr) AccessChain 16(u) 10 - 31: 7(float) Load 30 - 32: 8(s1) CompositeConstruct 29 31 - 36: 11 CompositeConstruct 25 32 35 - Store 13(a) 36 - 42: 18(ptr) AccessChain 41(w) 17 - 43: 7(float) Load 42 - 44: 6(int) ConvertFToS 43 - 45: 18(ptr) AccessChain 41(w) 22 - 46: 7(float) Load 45 - 47: 8(s1) CompositeConstruct 44 46 - 48: 18(ptr) AccessChain 41(w) 26 - 49: 7(float) Load 48 - 50: 6(int) ConvertFToS 49 - 51: 18(ptr) AccessChain 41(w) 10 - 52: 7(float) Load 51 - 53: 8(s1) CompositeConstruct 50 52 - 54: 11 CompositeConstruct 40 47 53 - Store 37(b) 54 - 62: 61(ptr) AccessChain 59(uName1) 60 - 63: 56(s2) Load 62 - 70: 69(ptr) AccessChain 68(uName2) 60 - 71: 65(s2) Load 70 - 73: 6(int) CompositeExtract 63 0 - 74: 6(int) CompositeExtract 71 0 - 75: 72(bool) IEqual 73 74 - 76: 7(float) CompositeExtract 63 1 - 77: 7(float) CompositeExtract 71 1 - 78: 72(bool) FOrdEqual 76 77 - 79: 72(bool) LogicalAnd 75 78 - 80: 55(s1) CompositeExtract 63 2 - 81: 64(s1) CompositeExtract 71 2 - 82: 6(int) CompositeExtract 80 0 - 83: 6(int) CompositeExtract 81 0 - 84: 72(bool) IEqual 82 83 - 85: 7(float) CompositeExtract 80 1 - 86: 7(float) CompositeExtract 81 1 - 87: 72(bool) FOrdEqual 85 86 - 88: 72(bool) LogicalAnd 84 87 - 89: 72(bool) LogicalAnd 79 88 - SelectionMerge 91 None - BranchConditional 89 90 104 - 90: Label - 98: 95 Load 97(samp2D) - 102: 99(fvec2) Load 101(coord) - 103: 14(fvec4) ImageSampleImplicitLod 98 102 - Store 93(v) 103 - Branch 91 - 104: Label - 105: 95 Load 97(samp2D) - 107: 99(fvec2) Load 101(coord) - 108: 99(fvec2) VectorTimesScalar 107 106 - 109: 14(fvec4) ImageSampleImplicitLod 105 108 - Store 93(v) 109 - Branch 91 - 91: Label - 110: 14(fvec4) Load 16(u) - 111: 14(fvec4) Load 93(v) - 113: 112(bvec4) FOrdEqual 110 111 - 114: 72(bool) All 113 - SelectionMerge 116 None - BranchConditional 114 115 116 - 115: Label - 118: 14(fvec4) Load 93(v) - 119: 14(fvec4) VectorTimesScalar 118 117 - Store 93(v) 119 - Branch 116 - 116: Label - 120: 14(fvec4) Load 16(u) - 121: 14(fvec4) Load 93(v) - 122: 112(bvec4) FUnordNotEqual 120 121 - 123: 72(bool) Any 122 - SelectionMerge 125 None - BranchConditional 123 124 125 - 124: Label - 127: 14(fvec4) Load 93(v) - 128: 14(fvec4) VectorTimesScalar 127 126 - Store 93(v) 128 - Branch 125 - 125: Label - 129: 99(fvec2) Load 101(coord) - 130: 14(fvec4) Load 93(v) - 131: 99(fvec2) VectorShuffle 130 130 1 3 - 133: 132(bvec2) FOrdEqual 129 131 - 134: 72(bool) All 133 - SelectionMerge 136 None - BranchConditional 134 135 136 - 135: Label - 138: 14(fvec4) Load 93(v) - 139: 14(fvec4) VectorTimesScalar 138 137 - Store 93(v) 139 - Branch 136 - 136: Label - 140: 11 Load 13(a) - 141: 11 Load 37(b) - 142: 8(s1) CompositeExtract 140 0 - 143: 8(s1) CompositeExtract 141 0 - 144: 6(int) CompositeExtract 142 0 - 145: 6(int) CompositeExtract 143 0 - 146: 72(bool) IEqual 144 145 - 147: 7(float) CompositeExtract 142 1 - 148: 7(float) CompositeExtract 143 1 - 149: 72(bool) FOrdEqual 147 148 - 150: 72(bool) LogicalAnd 146 149 - 151: 8(s1) CompositeExtract 140 1 - 152: 8(s1) CompositeExtract 141 1 - 153: 6(int) CompositeExtract 151 0 - 154: 6(int) CompositeExtract 152 0 - 155: 72(bool) IEqual 153 154 - 156: 7(float) CompositeExtract 151 1 - 157: 7(float) CompositeExtract 152 1 - 158: 72(bool) FOrdEqual 156 157 - 159: 72(bool) LogicalAnd 155 158 - 160: 72(bool) LogicalAnd 150 159 - 161: 8(s1) CompositeExtract 140 2 - 162: 8(s1) CompositeExtract 141 2 - 163: 6(int) CompositeExtract 161 0 - 164: 6(int) CompositeExtract 162 0 - 165: 72(bool) IEqual 163 164 - 166: 7(float) CompositeExtract 161 1 - 167: 7(float) CompositeExtract 162 1 - 168: 72(bool) FOrdEqual 166 167 - 169: 72(bool) LogicalAnd 165 168 - 170: 72(bool) LogicalAnd 160 169 - SelectionMerge 172 None - BranchConditional 170 171 172 - 171: Label - 174: 14(fvec4) Load 93(v) - 175: 14(fvec4) VectorTimesScalar 174 173 - Store 93(v) 175 - Branch 172 - 172: Label - 176: 11 Load 13(a) - 177: 11 Load 37(b) - 178: 8(s1) CompositeExtract 176 0 - 179: 8(s1) CompositeExtract 177 0 - 180: 6(int) CompositeExtract 178 0 - 181: 6(int) CompositeExtract 179 0 - 182: 72(bool) INotEqual 180 181 - 183: 7(float) CompositeExtract 178 1 - 184: 7(float) CompositeExtract 179 1 - 185: 72(bool) FUnordNotEqual 183 184 - 186: 72(bool) LogicalOr 182 185 - 187: 8(s1) CompositeExtract 176 1 - 188: 8(s1) CompositeExtract 177 1 - 189: 6(int) CompositeExtract 187 0 - 190: 6(int) CompositeExtract 188 0 - 191: 72(bool) INotEqual 189 190 - 192: 7(float) CompositeExtract 187 1 - 193: 7(float) CompositeExtract 188 1 - 194: 72(bool) FUnordNotEqual 192 193 - 195: 72(bool) LogicalOr 191 194 - 196: 72(bool) LogicalOr 186 195 - 197: 8(s1) CompositeExtract 176 2 - 198: 8(s1) CompositeExtract 177 2 - 199: 6(int) CompositeExtract 197 0 - 200: 6(int) CompositeExtract 198 0 - 201: 72(bool) INotEqual 199 200 - 202: 7(float) CompositeExtract 197 1 - 203: 7(float) CompositeExtract 198 1 - 204: 72(bool) FUnordNotEqual 202 203 - 205: 72(bool) LogicalOr 201 204 - 206: 72(bool) LogicalOr 196 205 - SelectionMerge 208 None - BranchConditional 206 207 208 - 207: Label - 210: 14(fvec4) Load 93(v) - 211: 14(fvec4) VectorTimesScalar 210 209 - Store 93(v) 211 - Branch 208 - 208: Label - 214: 14(fvec4) Load 93(v) - Store 213(color) 214 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.always-discard.frag.out b/deps/glslang/Test/baseResults/spv.always-discard.frag.out deleted file mode 100644 index ed21b386..00000000 --- a/deps/glslang/Test/baseResults/spv.always-discard.frag.out +++ /dev/null @@ -1,111 +0,0 @@ -spv.always-discard.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 84 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 21 59 - ExecutionMode 4 OriginUpperLeft - Source GLSL 140 - Name 4 "main" - Name 9 "white" - Name 12 "black" - Name 15 "color" - Name 18 "x" - Name 21 "tex_coord" - Name 30 "y" - Name 36 "radius" - Name 59 "gl_FragColor" - Decorate 21(tex_coord) Location 0 - Decorate 59(gl_FragColor) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: 6(float) Constant 1065353216 - 11: 7(fvec4) ConstantComposite 10 10 10 10 - 13: 6(float) Constant 1045220557 - 14: 7(fvec4) ConstantComposite 13 13 13 13 - 17: TypePointer Function 6(float) - 19: TypeVector 6(float) 2 - 20: TypePointer Input 19(fvec2) - 21(tex_coord): 20(ptr) Variable Input - 22: TypeInt 32 0 - 23: 22(int) Constant 0 - 24: TypePointer Input 6(float) - 27: 6(float) Constant 1073741824 - 31: 22(int) Constant 1 - 46: TypeBool - 51: 6(float) Constant 1066192077 - 58: TypePointer Output 7(fvec4) -59(gl_FragColor): 58(ptr) Variable Output - 62: 6(float) Constant 1067030938 - 71: 6(float) Constant 1061158912 - 76: 6(float) Constant 1098907648 - 4(main): 2 Function None 3 - 5: Label - 9(white): 8(ptr) Variable Function - 12(black): 8(ptr) Variable Function - 15(color): 8(ptr) Variable Function - 18(x): 17(ptr) Variable Function - 30(y): 17(ptr) Variable Function - 36(radius): 17(ptr) Variable Function - Store 9(white) 11 - Store 12(black) 14 - 16: 7(fvec4) Load 9(white) - Store 15(color) 16 - 25: 24(ptr) AccessChain 21(tex_coord) 23 - 26: 6(float) Load 25 - 28: 6(float) FMul 26 27 - 29: 6(float) FSub 28 10 - Store 18(x) 29 - 32: 24(ptr) AccessChain 21(tex_coord) 31 - 33: 6(float) Load 32 - 34: 6(float) FMul 33 27 - 35: 6(float) FSub 34 10 - Store 30(y) 35 - 37: 6(float) Load 18(x) - 38: 6(float) Load 18(x) - 39: 6(float) FMul 37 38 - 40: 6(float) Load 30(y) - 41: 6(float) Load 30(y) - 42: 6(float) FMul 40 41 - 43: 6(float) FAdd 39 42 - 44: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 43 - Store 36(radius) 44 - 45: 6(float) Load 36(radius) - 47: 46(bool) FOrdGreaterThan 45 10 - SelectionMerge 49 None - BranchConditional 47 48 49 - 48: Label - 50: 6(float) Load 36(radius) - 52: 46(bool) FOrdGreaterThan 50 51 - SelectionMerge 54 None - BranchConditional 52 53 54 - 53: Label - 55: 7(fvec4) Load 15(color) - 56: 7(fvec4) CompositeConstruct 10 10 10 10 - 57: 7(fvec4) FAdd 55 56 - Store 15(color) 57 - Branch 54 - 54: Label - 60: 7(fvec4) Load 15(color) - Store 59(gl_FragColor) 60 - 61: 6(float) Load 36(radius) - 63: 46(bool) FOrdGreaterThan 61 62 - SelectionMerge 65 None - BranchConditional 63 64 65 - 64: Label - 66: 7(fvec4) Load 15(color) - 67: 7(fvec4) CompositeConstruct 10 10 10 10 - 68: 7(fvec4) FAdd 66 67 - Store 15(color) 68 - Branch 65 - 65: Label - Branch 49 - 49: Label - Kill - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.always-discard2.frag.out b/deps/glslang/Test/baseResults/spv.always-discard2.frag.out deleted file mode 100644 index 5e7ac9fe..00000000 --- a/deps/glslang/Test/baseResults/spv.always-discard2.frag.out +++ /dev/null @@ -1,64 +0,0 @@ -spv.always-discard2.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 40 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 21 38 - ExecutionMode 4 OriginUpperLeft - Source GLSL 140 - Name 4 "main" - Name 9 "white" - Name 12 "black" - Name 15 "color" - Name 18 "x" - Name 21 "tex_coord" - Name 30 "y" - Name 38 "gl_FragColor" - Decorate 21(tex_coord) Location 0 - Decorate 38(gl_FragColor) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: 6(float) Constant 1065353216 - 11: 7(fvec4) ConstantComposite 10 10 10 10 - 13: 6(float) Constant 1045220557 - 14: 7(fvec4) ConstantComposite 13 13 13 13 - 17: TypePointer Function 6(float) - 19: TypeVector 6(float) 2 - 20: TypePointer Input 19(fvec2) - 21(tex_coord): 20(ptr) Variable Input - 22: TypeInt 32 0 - 23: 22(int) Constant 0 - 24: TypePointer Input 6(float) - 27: 6(float) Constant 1073741824 - 31: 22(int) Constant 1 - 37: TypePointer Output 7(fvec4) -38(gl_FragColor): 37(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 9(white): 8(ptr) Variable Function - 12(black): 8(ptr) Variable Function - 15(color): 8(ptr) Variable Function - 18(x): 17(ptr) Variable Function - 30(y): 17(ptr) Variable Function - Store 9(white) 11 - Store 12(black) 14 - 16: 7(fvec4) Load 9(white) - Store 15(color) 16 - 25: 24(ptr) AccessChain 21(tex_coord) 23 - 26: 6(float) Load 25 - 28: 6(float) FMul 26 27 - 29: 6(float) FSub 28 10 - Store 18(x) 29 - 32: 24(ptr) AccessChain 21(tex_coord) 31 - 33: 6(float) Load 32 - 34: 6(float) FMul 33 27 - 35: 6(float) FSub 34 10 - Store 30(y) 35 - Kill - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.arbPostDepthCoverage.frag.out b/deps/glslang/Test/baseResults/spv.arbPostDepthCoverage.frag.out deleted file mode 100644 index 9b911cfc..00000000 --- a/deps/glslang/Test/baseResults/spv.arbPostDepthCoverage.frag.out +++ /dev/null @@ -1,42 +0,0 @@ -spv.arbPostDepthCoverage.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 18 - - Capability Shader - Capability SampleMaskPostDepthCoverage - Extension "SPV_KHR_post_depth_coverage" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 8 13 - ExecutionMode 4 OriginUpperLeft - ExecutionMode 4 EarlyFragmentTests - ExecutionMode 4 PostDepthCoverage - Source GLSL 450 - SourceExtension "GL_ARB_post_depth_coverage" - SourceExtension "GL_EXT_post_depth_coverage" - Name 4 "main" - Name 8 "readSampleMaskIn" - Name 13 "gl_SampleMaskIn" - Decorate 8(readSampleMaskIn) Location 0 - Decorate 13(gl_SampleMaskIn) Flat - Decorate 13(gl_SampleMaskIn) BuiltIn SampleMask - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Output 6(int) -8(readSampleMaskIn): 7(ptr) Variable Output - 9: TypeInt 32 0 - 10: 9(int) Constant 1 - 11: TypeArray 6(int) 10 - 12: TypePointer Input 11 -13(gl_SampleMaskIn): 12(ptr) Variable Input - 14: 6(int) Constant 0 - 15: TypePointer Input 6(int) - 4(main): 2 Function None 3 - 5: Label - 16: 15(ptr) AccessChain 13(gl_SampleMaskIn) 14 - 17: 6(int) Load 16 - Store 8(readSampleMaskIn) 17 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.arbPostDepthCoverage_Error.frag.out b/deps/glslang/Test/baseResults/spv.arbPostDepthCoverage_Error.frag.out deleted file mode 100644 index b210144d..00000000 --- a/deps/glslang/Test/baseResults/spv.arbPostDepthCoverage_Error.frag.out +++ /dev/null @@ -1,7 +0,0 @@ -spv.arbPostDepthCoverage_Error.frag -ERROR: 0:7: 'early_fragment_tests' : can only apply to a standalone qualifier -ERROR: 0:7: 'post_depth_coverage' : can only apply to a standalone qualifier -ERROR: 2 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.atomic.comp.out b/deps/glslang/Test/baseResults/spv.atomic.comp.out deleted file mode 100644 index e74066c9..00000000 --- a/deps/glslang/Test/baseResults/spv.atomic.comp.out +++ /dev/null @@ -1,130 +0,0 @@ -spv.atomic.comp -// Module Version 10000 -// Generated by (magic number): 8000a -// 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) DescriptorSet 0 - Decorate 20(counter) Binding 0 - Decorate 27(countArr) Offset 4 - Decorate 27(countArr) DescriptorSet 0 - 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/Test/baseResults/spv.atomicAdd.bufferReference.comp.out b/deps/glslang/Test/baseResults/spv.atomicAdd.bufferReference.comp.out deleted file mode 100644 index 9ecc7425..00000000 --- a/deps/glslang/Test/baseResults/spv.atomicAdd.bufferReference.comp.out +++ /dev/null @@ -1,304 +0,0 @@ -spv.atomicAdd.bufferReference.comp -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 188 - - Capability Shader - Capability VulkanMemoryModelKHR - Capability VulkanMemoryModelDeviceScopeKHR - Capability PhysicalStorageBufferAddressesEXT - Extension "SPV_KHR_physical_storage_buffer" - Extension "SPV_KHR_storage_buffer_storage_class" - Extension "SPV_KHR_vulkan_memory_model" - 1: ExtInstImport "GLSL.std.450" - MemoryModel PhysicalStorageBuffer64EXT VulkanKHR - EntryPoint GLCompute 4 "main" 37 81 133 - ExecutionMode 4 LocalSize 1 1 1 - Source GLSL 450 - SourceExtension "GL_ARB_gpu_shader_int64" - SourceExtension "GL_EXT_buffer_reference" - SourceExtension "GL_KHR_memory_scope_semantics" - SourceExtension "GL_KHR_shader_subgroup_ballot" - SourceExtension "GL_KHR_shader_subgroup_basic" - SourceExtension "GL_KHR_shader_subgroup_shuffle" - Name 4 "main" - Name 8 "pass" - Name 10 "skip" - Name 13 "sharedSkip" - Name 18 "PayloadRef" - MemberName 18(PayloadRef) 0 "x" - Name 20 "payload" - Name 22 "PC" - MemberName 22(PC) 0 "payloadref" - MemberName 22(PC) 1 "guard" - Name 24 "GuardRef" - MemberName 24(GuardRef) 0 "x" - Name 26 "" - Name 34 "globalId" - Name 37 "gl_GlobalInvocationID" - Name 42 "partnerGlobalId" - Name 43 "DIM" - Name 44 "NUM_WORKGROUP_EACH_DIM" - Name 54 "bufferCoord" - Name 66 "partnerBufferCoord" - Name 75 "imageCoord" - Name 77 "partnerImageCoord" - Name 79 "globalId00" - Name 81 "gl_WorkGroupID" - Name 86 "partnerGlobalId00" - Name 95 "bufferCoord00" - Name 104 "partnerBufferCoord00" - Name 113 "imageCoord00" - Name 115 "partnerImageCoord00" - Name 133 "gl_LocalInvocationID" - Name 163 "r" - Name 179 "Fail" - MemberName 179(Fail) 0 "x" - Name 181 "fail" - Decorate 17 ArrayStride 4 - MemberDecorate 18(PayloadRef) 0 Offset 0 - Decorate 18(PayloadRef) Block - Decorate 20(payload) DecorationAliasedPointerEXT - MemberDecorate 22(PC) 0 Offset 0 - MemberDecorate 22(PC) 1 Offset 8 - Decorate 22(PC) Block - Decorate 23 ArrayStride 4 - MemberDecorate 24(GuardRef) 0 Offset 0 - Decorate 24(GuardRef) Block - Decorate 37(gl_GlobalInvocationID) BuiltIn GlobalInvocationId - Decorate 43(DIM) SpecId 0 - Decorate 44(NUM_WORKGROUP_EACH_DIM) SpecId 1 - Decorate 81(gl_WorkGroupID) BuiltIn WorkgroupId - Decorate 133(gl_LocalInvocationID) BuiltIn LocalInvocationId - Decorate 178 ArrayStride 4 - MemberDecorate 179(Fail) 0 Offset 0 - Decorate 179(Fail) Block - Decorate 181(fail) DescriptorSet 0 - Decorate 181(fail) Binding 2 - Decorate 185 SpecId 0 - Decorate 186 SpecId 0 - Decorate 187 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeBool - 7: TypePointer Function 6(bool) - 9: 6(bool) ConstantTrue - 11: 6(bool) ConstantFalse - 12: TypePointer Workgroup 6(bool) - 13(sharedSkip): 12(ptr) Variable Workgroup - 14: TypeInt 32 0 - 15: 14(int) Constant 2 - TypeForwardPointer 16 PhysicalStorageBufferEXT - 17: TypeRuntimeArray 14(int) - 18(PayloadRef): TypeStruct 17 - 16: TypePointer PhysicalStorageBufferEXT 18(PayloadRef) - 19: TypePointer Function 16(ptr) - TypeForwardPointer 21 PhysicalStorageBufferEXT - 22(PC): TypeStruct 16(ptr) 21 - 23: TypeRuntimeArray 14(int) - 24(GuardRef): TypeStruct 23 - 21: TypePointer PhysicalStorageBufferEXT 24(GuardRef) - 25: TypePointer PushConstant 22(PC) - 26: 25(ptr) Variable PushConstant - 27: TypeInt 32 1 - 28: 27(int) Constant 0 - 29: TypePointer PushConstant 16(ptr) - 32: TypeVector 27(int) 2 - 33: TypePointer Function 32(ivec2) - 35: TypeVector 14(int) 3 - 36: TypePointer Input 35(ivec3) -37(gl_GlobalInvocationID): 36(ptr) Variable Input - 38: TypeVector 14(int) 2 - 43(DIM): 27(int) SpecConstant 1 -44(NUM_WORKGROUP_EACH_DIM): 27(int) SpecConstant 1 - 45: 27(int) SpecConstantOp 132 43(DIM) 44(NUM_WORKGROUP_EACH_DIM) - 46: 27(int) Constant 1 - 47: 27(int) SpecConstantOp 130 45 46 - 48: 32(ivec2) SpecConstantComposite 47 47 - 53: TypePointer Function 14(int) - 55: 14(int) Constant 1 - 56: TypePointer Function 27(int) - 61: 14(int) Constant 0 - 80: 32(ivec2) SpecConstantComposite 43(DIM) 43(DIM) -81(gl_WorkGroupID): 36(ptr) Variable Input - 87: 32(ivec2) SpecConstantComposite 43(DIM) 43(DIM) - 88: 27(int) SpecConstantOp 130 44(NUM_WORKGROUP_EACH_DIM) 46 - 89: 32(ivec2) SpecConstantComposite 88 88 - 122: TypePointer PhysicalStorageBufferEXT 14(int) - 125: 27(int) Constant 31 - 129: 27(int) Constant 2 - 130: 27(int) Constant 320 - 131: 27(int) Constant 8200 - 132: 14(int) Constant 8520 -133(gl_LocalInvocationID): 36(ptr) Variable Input - 136: 38(ivec2) ConstantComposite 61 61 - 137: TypeVector 6(bool) 2 - 142: TypePointer PushConstant 21(ptr) - 147: 27(int) Constant 64 - 148: 27(int) Constant 8196 - 149: 14(int) Constant 5 - 150: 14(int) Constant 8260 - 155: 27(int) Constant 16386 - 156: 14(int) Constant 16450 - 160: 27(int) Constant 16392 - 161: 14(int) Constant 16712 - 178: TypeRuntimeArray 14(int) - 179(Fail): TypeStruct 178 - 180: TypePointer StorageBuffer 179(Fail) - 181(fail): 180(ptr) Variable StorageBuffer - 183: TypePointer StorageBuffer 14(int) - 185: 14(int) SpecConstant 1 - 186: 14(int) SpecConstant 1 - 187: 35(ivec3) SpecConstantComposite 185 186 55 - 4(main): 2 Function None 3 - 5: Label - 8(pass): 7(ptr) Variable Function - 10(skip): 7(ptr) Variable Function - 20(payload): 19(ptr) Variable Function - 34(globalId): 33(ptr) Variable Function -42(partnerGlobalId): 33(ptr) Variable Function - 54(bufferCoord): 53(ptr) Variable Function -66(partnerBufferCoord): 53(ptr) Variable Function - 75(imageCoord): 33(ptr) Variable Function -77(partnerImageCoord): 33(ptr) Variable Function - 79(globalId00): 33(ptr) Variable Function -86(partnerGlobalId00): 33(ptr) Variable Function -95(bufferCoord00): 53(ptr) Variable Function -104(partnerBufferCoord00): 53(ptr) Variable Function -113(imageCoord00): 33(ptr) Variable Function -115(partnerImageCoord00): 33(ptr) Variable Function - 163(r): 53(ptr) Variable Function - Store 8(pass) 9 - Store 10(skip) 11 - Store 13(sharedSkip) 11 MakePointerAvailableKHR NonPrivatePointerKHR 15 - 30: 29(ptr) AccessChain 26 28 - 31: 16(ptr) Load 30 - Store 20(payload) 31 - 39: 35(ivec3) Load 37(gl_GlobalInvocationID) - 40: 38(ivec2) VectorShuffle 39 39 0 1 - 41: 32(ivec2) Bitcast 40 - Store 34(globalId) 41 - 49: 35(ivec3) Load 37(gl_GlobalInvocationID) - 50: 38(ivec2) VectorShuffle 49 49 0 1 - 51: 32(ivec2) Bitcast 50 - 52: 32(ivec2) ISub 48 51 - Store 42(partnerGlobalId) 52 - 57: 56(ptr) AccessChain 34(globalId) 55 - 58: 27(int) Load 57 - 59: 27(int) IMul 58 43(DIM) - 60: 27(int) IMul 59 44(NUM_WORKGROUP_EACH_DIM) - 62: 56(ptr) AccessChain 34(globalId) 61 - 63: 27(int) Load 62 - 64: 27(int) IAdd 60 63 - 65: 14(int) Bitcast 64 - Store 54(bufferCoord) 65 - 67: 56(ptr) AccessChain 42(partnerGlobalId) 55 - 68: 27(int) Load 67 - 69: 27(int) IMul 68 43(DIM) - 70: 27(int) IMul 69 44(NUM_WORKGROUP_EACH_DIM) - 71: 56(ptr) AccessChain 42(partnerGlobalId) 61 - 72: 27(int) Load 71 - 73: 27(int) IAdd 70 72 - 74: 14(int) Bitcast 73 - Store 66(partnerBufferCoord) 74 - 76: 32(ivec2) Load 34(globalId) - Store 75(imageCoord) 76 - 78: 32(ivec2) Load 42(partnerGlobalId) - Store 77(partnerImageCoord) 78 - 82: 35(ivec3) Load 81(gl_WorkGroupID) - 83: 38(ivec2) VectorShuffle 82 82 0 1 - 84: 32(ivec2) Bitcast 83 - 85: 32(ivec2) IMul 80 84 - Store 79(globalId00) 85 - 90: 35(ivec3) Load 81(gl_WorkGroupID) - 91: 38(ivec2) VectorShuffle 90 90 0 1 - 92: 32(ivec2) Bitcast 91 - 93: 32(ivec2) ISub 89 92 - 94: 32(ivec2) IMul 87 93 - Store 86(partnerGlobalId00) 94 - 96: 56(ptr) AccessChain 79(globalId00) 55 - 97: 27(int) Load 96 - 98: 27(int) IMul 97 43(DIM) - 99: 27(int) IMul 98 44(NUM_WORKGROUP_EACH_DIM) - 100: 56(ptr) AccessChain 79(globalId00) 61 - 101: 27(int) Load 100 - 102: 27(int) IAdd 99 101 - 103: 14(int) Bitcast 102 - Store 95(bufferCoord00) 103 - 105: 56(ptr) AccessChain 86(partnerGlobalId00) 55 - 106: 27(int) Load 105 - 107: 27(int) IMul 106 43(DIM) - 108: 27(int) IMul 107 44(NUM_WORKGROUP_EACH_DIM) - 109: 56(ptr) AccessChain 86(partnerGlobalId00) 61 - 110: 27(int) Load 109 - 111: 27(int) IAdd 108 110 - 112: 14(int) Bitcast 111 - Store 104(partnerBufferCoord00) 112 - 114: 32(ivec2) Load 79(globalId00) - Store 113(imageCoord00) 114 - 116: 32(ivec2) Load 86(partnerGlobalId00) - Store 115(partnerImageCoord00) 116 - 117: 16(ptr) Load 20(payload) - 118: 14(int) Load 54(bufferCoord) - 119: 14(int) Load 54(bufferCoord) - 120: 16(ptr) Load 20(payload) - 121: 14(int) Load 66(partnerBufferCoord) - 123: 122(ptr) AccessChain 120 28 121 - 124: 14(int) Load 123 Aligned NonPrivatePointerKHR 4 - 126: 14(int) ShiftRightLogical 124 125 - 127: 14(int) IAdd 119 126 - 128: 122(ptr) AccessChain 117 28 118 - Store 128 127 Aligned NonPrivatePointerKHR 4 - ControlBarrier 15 15 132 - 134: 35(ivec3) Load 133(gl_LocalInvocationID) - 135: 38(ivec2) VectorShuffle 134 134 0 1 - 138: 137(bvec2) IEqual 135 136 - 139: 6(bool) All 138 - SelectionMerge 141 None - BranchConditional 139 140 141 - 140: Label - 143: 142(ptr) AccessChain 26 46 - 144: 21(ptr) Load 143 - 145: 14(int) Load 54(bufferCoord) - 146: 122(ptr) AccessChain 144 28 145 - AtomicStore 146 46 150 55 - 151: 142(ptr) AccessChain 26 46 - 152: 21(ptr) Load 151 - 153: 14(int) Load 104(partnerBufferCoord00) - 154: 122(ptr) AccessChain 152 28 153 - 157: 14(int) AtomicLoad 154 46 156 - 158: 6(bool) IEqual 157 61 - Store 10(skip) 158 - 159: 6(bool) Load 10(skip) - Store 13(sharedSkip) 159 MakePointerAvailableKHR NonPrivatePointerKHR 15 - Branch 141 - 141: Label - ControlBarrier 15 15 161 - 162: 6(bool) Load 13(sharedSkip) MakePointerVisibleKHR NonPrivatePointerKHR 15 - Store 10(skip) 162 - 164: 16(ptr) Load 20(payload) - 165: 14(int) Load 66(partnerBufferCoord) - 166: 122(ptr) AccessChain 164 28 165 - 167: 14(int) Load 166 Aligned NonPrivatePointerKHR 4 - Store 163(r) 167 - 168: 6(bool) Load 10(skip) - 169: 6(bool) LogicalNot 168 - SelectionMerge 171 None - BranchConditional 169 170 171 - 170: Label - 172: 14(int) Load 163(r) - 173: 14(int) Load 66(partnerBufferCoord) - 174: 6(bool) INotEqual 172 173 - Branch 171 - 171: Label - 175: 6(bool) Phi 169 141 174 170 - SelectionMerge 177 None - BranchConditional 175 176 177 - 176: Label - 182: 14(int) Load 54(bufferCoord) - 184: 183(ptr) AccessChain 181(fail) 28 182 - Store 184 55 - Branch 177 - 177: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.atomicCounter.comp.out b/deps/glslang/Test/baseResults/spv.atomicCounter.comp.out deleted file mode 100644 index 46cccc03..00000000 --- a/deps/glslang/Test/baseResults/spv.atomicCounter.comp.out +++ /dev/null @@ -1,15 +0,0 @@ -spv.atomicCounter.comp -ERROR: 0:5: 'atomic counter types' : not allowed when using GLSL for Vulkan -ERROR: 0:7: 'atomic counter types' : not allowed when using GLSL for Vulkan -ERROR: 0:14: 'atomic counter types' : not allowed when using GLSL for Vulkan -ERROR: 0:16: 'atomicCounterIncrement' : no matching overloaded function found -ERROR: 0:16: 'return' : type does not match, or is not convertible to, the function's return type -ERROR: 0:21: 'memoryBarrierAtomicCounter' : no matching overloaded function found -ERROR: 0:23: 'atomicCounter' : no matching overloaded function found -ERROR: 0:23: '=' : cannot convert from ' const float' to ' temp highp uint' -ERROR: 0:24: 'atomicCounterDecrement' : no matching overloaded function found -ERROR: 0:25: 'atomicCounterIncrement' : no matching overloaded function found -ERROR: 10 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.atomicFloat.comp.out b/deps/glslang/Test/baseResults/spv.atomicFloat.comp.out deleted file mode 100644 index 3799557b..00000000 --- a/deps/glslang/Test/baseResults/spv.atomicFloat.comp.out +++ /dev/null @@ -1,658 +0,0 @@ -spv.atomicFloat.comp -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 470 - - Capability Shader - Capability Float64 - Capability ImageCubeArray - Capability ImageRect - Capability Image1D - Capability VulkanMemoryModelKHR - Capability VulkanMemoryModelDeviceScopeKHR - Capability AtomicFloat32AddEXT - Capability AtomicFloat64AddEXT - Extension "SPV_EXT_shader_atomic_float_add" - Extension "SPV_KHR_vulkan_memory_model" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical VulkanKHR - EntryPoint GLCompute 4 "main" - ExecutionMode 4 LocalSize 16 16 1 - Source GLSL 450 - SourceExtension "GL_EXT_shader_atomic_float" - SourceExtension "GL_KHR_memory_scope_semantics" - Name 4 "main" - Name 8 "resultf" - Name 11 "atomf" - Name 25 "Buffer" - MemberName 25(Buffer) 0 "dataf" - MemberName 25(Buffer) 1 "datad" - Name 27 "buf" - Name 34 "resultd" - Name 37 "atomd" - Name 143 "fimage1D" - Name 189 "fimage1DArray" - Name 232 "fimage2D" - Name 270 "fimage2DRect" - Name 308 "fimage2DArray" - Name 352 "fimageCube" - Name 392 "fimageCubeArray" - Name 430 "fimage3D" - MemberDecorate 25(Buffer) 0 Offset 0 - MemberDecorate 25(Buffer) 1 Offset 8 - Decorate 25(Buffer) BufferBlock - Decorate 27(buf) DescriptorSet 0 - Decorate 27(buf) Binding 0 - Decorate 143(fimage1D) Location 0 - Decorate 143(fimage1D) DescriptorSet 0 - Decorate 143(fimage1D) Binding 0 - Decorate 189(fimage1DArray) Location 1 - Decorate 189(fimage1DArray) DescriptorSet 0 - Decorate 189(fimage1DArray) Binding 1 - Decorate 232(fimage2D) Location 2 - Decorate 232(fimage2D) DescriptorSet 0 - Decorate 232(fimage2D) Binding 2 - Decorate 270(fimage2DRect) Location 4 - Decorate 270(fimage2DRect) DescriptorSet 0 - Decorate 270(fimage2DRect) Binding 4 - Decorate 308(fimage2DArray) Location 3 - Decorate 308(fimage2DArray) DescriptorSet 0 - Decorate 308(fimage2DArray) Binding 3 - Decorate 352(fimageCube) Location 5 - Decorate 352(fimageCube) DescriptorSet 0 - Decorate 352(fimageCube) Binding 5 - Decorate 392(fimageCubeArray) Location 6 - Decorate 392(fimageCubeArray) DescriptorSet 0 - Decorate 392(fimageCubeArray) Binding 6 - Decorate 430(fimage3D) Location 7 - Decorate 430(fimage3D) DescriptorSet 0 - Decorate 430(fimage3D) Binding 9 - Decorate 469 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypePointer Function 6(float) - 9: 6(float) Constant 0 - 10: TypePointer Workgroup 6(float) - 11(atomf): 10(ptr) Variable Workgroup - 12: 6(float) Constant 1077936128 - 13: TypeInt 32 0 - 14: 13(int) Constant 5 - 15: 13(int) Constant 0 - 17: 6(float) Constant 1083179008 - 18: TypeInt 32 1 - 19: 18(int) Constant 1 - 20: 18(int) Constant 64 - 21: 18(int) Constant 0 - 22: 13(int) Constant 64 - 24: TypeFloat 64 - 25(Buffer): TypeStruct 6(float) 24(float64_t) - 26: TypePointer Uniform 25(Buffer) - 27(buf): 26(ptr) Variable Uniform - 28: TypePointer Uniform 6(float) - 33: TypePointer Function 24(float64_t) - 35:24(float64_t) Constant 0 0 - 36: TypePointer Workgroup 24(float64_t) - 37(atomd): 36(ptr) Variable Workgroup - 38:24(float64_t) Constant 0 1074266112 - 40:24(float64_t) Constant 0 1074921472 - 42: TypePointer Uniform 24(float64_t) - 57: 18(int) Constant 256 - 58: 13(int) Constant 256 - 141: TypeImage 6(float) 1D nonsampled format:R32f - 142: TypePointer UniformConstant 141 - 143(fimage1D): 142(ptr) Variable UniformConstant - 144: 6(float) Constant 1073741824 - 145: TypePointer Image 6(float) - 147: 13(int) Constant 32768 - 149: 13(int) Constant 2 - 155: 18(int) Constant 2048 - 157: 13(int) Constant 2048 - 164: 6(float) Constant 1082130432 - 179: 18(int) Constant 2 - 187: TypeImage 6(float) 1D array nonsampled format:R32f - 188: TypePointer UniformConstant 187 -189(fimage1DArray): 188(ptr) Variable UniformConstant - 190: TypeVector 18(int) 2 - 191: 190(ivec2) ConstantComposite 21 21 - 199: 190(ivec2) ConstantComposite 19 19 - 207: 190(ivec2) ConstantComposite 19 21 - 222: 190(ivec2) ConstantComposite 179 179 - 230: TypeImage 6(float) 2D nonsampled format:R32f - 231: TypePointer UniformConstant 230 - 232(fimage2D): 231(ptr) Variable UniformConstant - 268: TypeImage 6(float) Rect nonsampled format:R32f - 269: TypePointer UniformConstant 268 -270(fimage2DRect): 269(ptr) Variable UniformConstant - 306: TypeImage 6(float) 2D array nonsampled format:R32f - 307: TypePointer UniformConstant 306 -308(fimage2DArray): 307(ptr) Variable UniformConstant - 309: TypeVector 18(int) 3 - 310: 309(ivec3) ConstantComposite 21 21 21 - 318: 309(ivec3) ConstantComposite 19 19 21 - 326: 309(ivec3) ConstantComposite 19 21 19 - 334: 309(ivec3) ConstantComposite 19 19 19 - 342: 309(ivec3) ConstantComposite 179 179 21 - 350: TypeImage 6(float) Cube nonsampled format:R32f - 351: TypePointer UniformConstant 350 - 352(fimageCube): 351(ptr) Variable UniformConstant - 367: 309(ivec3) ConstantComposite 19 21 21 - 382: 309(ivec3) ConstantComposite 179 179 19 - 390: TypeImage 6(float) Cube array nonsampled format:R32f - 391: TypePointer UniformConstant 390 -392(fimageCubeArray): 391(ptr) Variable UniformConstant - 428: TypeImage 6(float) 3D nonsampled format:R32f - 429: TypePointer UniformConstant 428 - 430(fimage3D): 429(ptr) Variable UniformConstant - 466: TypeVector 13(int) 3 - 467: 13(int) Constant 16 - 468: 13(int) Constant 1 - 469: 466(ivec3) ConstantComposite 467 467 468 - 4(main): 2 Function None 3 - 5: Label - 8(resultf): 7(ptr) Variable Function - 34(resultd): 33(ptr) Variable Function - Store 8(resultf) 9 - 16: 6(float) AtomicFAddEXT 11(atomf) 14 15 12 - Store 8(resultf) 16 - 23: 6(float) AtomicFAddEXT 11(atomf) 19 22 17 - Store 8(resultf) 23 - 29: 28(ptr) AccessChain 27(buf) 21 - 30: 6(float) AtomicFAddEXT 29 14 15 12 - Store 8(resultf) 30 - 31: 28(ptr) AccessChain 27(buf) 21 - 32: 6(float) AtomicFAddEXT 31 19 22 17 - Store 8(resultf) 32 - Store 34(resultd) 35 - 39:24(float64_t) AtomicFAddEXT 37(atomd) 14 15 38 - Store 34(resultd) 39 - 41:24(float64_t) AtomicFAddEXT 37(atomd) 19 22 40 - Store 34(resultd) 41 - 43: 42(ptr) AccessChain 27(buf) 19 - 44:24(float64_t) AtomicFAddEXT 43 14 15 38 - Store 34(resultd) 44 - 45: 42(ptr) AccessChain 27(buf) 19 - 46:24(float64_t) AtomicFAddEXT 45 19 22 40 - Store 34(resultd) 46 - 47: 28(ptr) AccessChain 27(buf) 21 - 48: 6(float) Load 8(resultf) - 49: 6(float) AtomicExchange 47 14 15 48 - Store 8(resultf) 49 - 50: 6(float) Load 8(resultf) - 51: 28(ptr) AccessChain 27(buf) 21 - 52: 6(float) Load 51 - 53: 6(float) FAdd 52 50 - 54: 28(ptr) AccessChain 27(buf) 21 - Store 54 53 - 55: 28(ptr) AccessChain 27(buf) 21 - 56: 6(float) Load 8(resultf) - 59: 6(float) AtomicExchange 55 19 58 56 - Store 8(resultf) 59 - 60: 6(float) Load 8(resultf) - 61: 28(ptr) AccessChain 27(buf) 21 - 62: 6(float) Load 61 - 63: 6(float) FAdd 62 60 - 64: 28(ptr) AccessChain 27(buf) 21 - Store 64 63 - 65: 6(float) Load 8(resultf) - 66: 6(float) AtomicExchange 11(atomf) 14 15 65 - Store 8(resultf) 66 - 67: 6(float) Load 8(resultf) - 68: 28(ptr) AccessChain 27(buf) 21 - 69: 6(float) Load 68 - 70: 6(float) FAdd 69 67 - 71: 28(ptr) AccessChain 27(buf) 21 - Store 71 70 - 72: 6(float) Load 8(resultf) - 73: 6(float) AtomicExchange 11(atomf) 19 58 72 - Store 8(resultf) 73 - 74: 6(float) Load 8(resultf) - 75: 28(ptr) AccessChain 27(buf) 21 - 76: 6(float) Load 75 - 77: 6(float) FAdd 76 74 - 78: 28(ptr) AccessChain 27(buf) 21 - Store 78 77 - 79: 42(ptr) AccessChain 27(buf) 19 - 80:24(float64_t) Load 34(resultd) - 81:24(float64_t) AtomicExchange 79 14 15 80 - Store 34(resultd) 81 - 82:24(float64_t) Load 34(resultd) - 83: 42(ptr) AccessChain 27(buf) 19 - 84:24(float64_t) Load 83 - 85:24(float64_t) FAdd 84 82 - 86: 42(ptr) AccessChain 27(buf) 19 - Store 86 85 - 87: 42(ptr) AccessChain 27(buf) 19 - 88:24(float64_t) Load 34(resultd) - 89:24(float64_t) AtomicExchange 87 19 58 88 - Store 34(resultd) 89 - 90:24(float64_t) Load 34(resultd) - 91: 42(ptr) AccessChain 27(buf) 19 - 92:24(float64_t) Load 91 - 93:24(float64_t) FAdd 92 90 - 94: 42(ptr) AccessChain 27(buf) 19 - Store 94 93 - 95:24(float64_t) Load 34(resultd) - 96:24(float64_t) AtomicExchange 37(atomd) 14 15 95 - Store 34(resultd) 96 - 97:24(float64_t) Load 34(resultd) - 98: 42(ptr) AccessChain 27(buf) 19 - 99:24(float64_t) Load 98 - 100:24(float64_t) FAdd 99 97 - 101: 42(ptr) AccessChain 27(buf) 19 - Store 101 100 - 102:24(float64_t) Load 34(resultd) - 103:24(float64_t) AtomicExchange 37(atomd) 19 58 102 - Store 34(resultd) 103 - 104:24(float64_t) Load 34(resultd) - 105: 42(ptr) AccessChain 27(buf) 19 - 106:24(float64_t) Load 105 - 107:24(float64_t) FAdd 106 104 - 108: 42(ptr) AccessChain 27(buf) 19 - Store 108 107 - 109: 28(ptr) AccessChain 27(buf) 21 - 110: 6(float) AtomicLoad 109 19 58 - Store 8(resultf) 110 - 111: 28(ptr) AccessChain 27(buf) 21 - 112: 6(float) Load 8(resultf) - AtomicStore 111 19 58 112 - 113: 6(float) Load 8(resultf) - 114: 28(ptr) AccessChain 27(buf) 21 - 115: 6(float) Load 114 - 116: 6(float) FAdd 115 113 - 117: 28(ptr) AccessChain 27(buf) 21 - Store 117 116 - 118: 6(float) AtomicLoad 11(atomf) 19 58 - Store 8(resultf) 118 - 119: 6(float) Load 8(resultf) - AtomicStore 11(atomf) 19 58 119 - 120: 6(float) Load 8(resultf) - 121: 28(ptr) AccessChain 27(buf) 21 - 122: 6(float) Load 121 - 123: 6(float) FAdd 122 120 - 124: 28(ptr) AccessChain 27(buf) 21 - Store 124 123 - 125: 42(ptr) AccessChain 27(buf) 19 - 126:24(float64_t) AtomicLoad 125 19 58 - Store 34(resultd) 126 - 127: 42(ptr) AccessChain 27(buf) 19 - 128:24(float64_t) Load 34(resultd) - AtomicStore 127 19 58 128 - 129:24(float64_t) Load 34(resultd) - 130: 42(ptr) AccessChain 27(buf) 19 - 131:24(float64_t) Load 130 - 132:24(float64_t) FAdd 131 129 - 133: 42(ptr) AccessChain 27(buf) 19 - Store 133 132 - 134:24(float64_t) AtomicLoad 37(atomd) 19 58 - Store 34(resultd) 134 - 135:24(float64_t) Load 34(resultd) - AtomicStore 37(atomd) 19 58 135 - 136:24(float64_t) Load 34(resultd) - 137: 42(ptr) AccessChain 27(buf) 19 - 138:24(float64_t) Load 137 - 139:24(float64_t) FAdd 138 136 - 140: 42(ptr) AccessChain 27(buf) 19 - Store 140 139 - 146: 145(ptr) ImageTexelPointer 143(fimage1D) 21 15 - 148: 6(float) AtomicFAddEXT 146 14 147 144 - Store 11(atomf) 148 MakePointerAvailableKHR NonPrivatePointerKHR 149 - 150: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 151: 28(ptr) AccessChain 27(buf) 21 - 152: 6(float) Load 151 - 153: 6(float) FAdd 152 150 - 154: 28(ptr) AccessChain 27(buf) 21 - Store 154 153 - 156: 145(ptr) ImageTexelPointer 143(fimage1D) 19 15 - 158: 6(float) AtomicFAddEXT 156 19 157 12 - Store 11(atomf) 158 MakePointerAvailableKHR NonPrivatePointerKHR 149 - 159: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 160: 28(ptr) AccessChain 27(buf) 21 - 161: 6(float) Load 160 - 162: 6(float) FAdd 161 159 - 163: 28(ptr) AccessChain 27(buf) 21 - Store 163 162 - 165: 145(ptr) ImageTexelPointer 143(fimage1D) 19 15 - 166: 6(float) AtomicExchange 165 19 157 164 - Store 11(atomf) 166 MakePointerAvailableKHR NonPrivatePointerKHR 149 - 167: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 168: 28(ptr) AccessChain 27(buf) 21 - 169: 6(float) Load 168 - 170: 6(float) FAdd 169 167 - 171: 28(ptr) AccessChain 27(buf) 21 - Store 171 170 - 172: 145(ptr) ImageTexelPointer 143(fimage1D) 19 15 - 173: 6(float) AtomicLoad 172 19 157 - Store 11(atomf) 173 MakePointerAvailableKHR NonPrivatePointerKHR 149 - 174: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 175: 28(ptr) AccessChain 27(buf) 21 - 176: 6(float) Load 175 - 177: 6(float) FAdd 176 174 - 178: 28(ptr) AccessChain 27(buf) 21 - Store 178 177 - 180: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 181: 145(ptr) ImageTexelPointer 143(fimage1D) 179 15 - AtomicStore 181 19 157 180 - 182: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 183: 28(ptr) AccessChain 27(buf) 21 - 184: 6(float) Load 183 - 185: 6(float) FAdd 184 182 - 186: 28(ptr) AccessChain 27(buf) 21 - Store 186 185 - 192: 145(ptr) ImageTexelPointer 189(fimage1DArray) 191 15 - 193: 6(float) AtomicFAddEXT 192 14 147 144 - Store 11(atomf) 193 MakePointerAvailableKHR NonPrivatePointerKHR 149 - 194: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 195: 28(ptr) AccessChain 27(buf) 21 - 196: 6(float) Load 195 - 197: 6(float) FAdd 196 194 - 198: 28(ptr) AccessChain 27(buf) 21 - Store 198 197 - 200: 145(ptr) ImageTexelPointer 189(fimage1DArray) 199 15 - 201: 6(float) AtomicFAddEXT 200 19 157 12 - Store 11(atomf) 201 MakePointerAvailableKHR NonPrivatePointerKHR 149 - 202: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 203: 28(ptr) AccessChain 27(buf) 21 - 204: 6(float) Load 203 - 205: 6(float) FAdd 204 202 - 206: 28(ptr) AccessChain 27(buf) 21 - Store 206 205 - 208: 145(ptr) ImageTexelPointer 189(fimage1DArray) 207 15 - 209: 6(float) AtomicExchange 208 19 157 164 - Store 11(atomf) 209 MakePointerAvailableKHR NonPrivatePointerKHR 149 - 210: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 211: 28(ptr) AccessChain 27(buf) 21 - 212: 6(float) Load 211 - 213: 6(float) FAdd 212 210 - 214: 28(ptr) AccessChain 27(buf) 21 - Store 214 213 - 215: 145(ptr) ImageTexelPointer 189(fimage1DArray) 199 15 - 216: 6(float) AtomicLoad 215 19 157 - Store 11(atomf) 216 MakePointerAvailableKHR NonPrivatePointerKHR 149 - 217: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 218: 28(ptr) AccessChain 27(buf) 21 - 219: 6(float) Load 218 - 220: 6(float) FAdd 219 217 - 221: 28(ptr) AccessChain 27(buf) 21 - Store 221 220 - 223: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 224: 145(ptr) ImageTexelPointer 189(fimage1DArray) 222 15 - AtomicStore 224 19 157 223 - 225: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 226: 28(ptr) AccessChain 27(buf) 21 - 227: 6(float) Load 226 - 228: 6(float) FAdd 227 225 - 229: 28(ptr) AccessChain 27(buf) 21 - Store 229 228 - 233: 145(ptr) ImageTexelPointer 232(fimage2D) 191 15 - 234: 6(float) AtomicFAddEXT 233 14 147 144 - Store 11(atomf) 234 MakePointerAvailableKHR NonPrivatePointerKHR 149 - 235: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 236: 28(ptr) AccessChain 27(buf) 21 - 237: 6(float) Load 236 - 238: 6(float) FAdd 237 235 - 239: 28(ptr) AccessChain 27(buf) 21 - Store 239 238 - 240: 145(ptr) ImageTexelPointer 232(fimage2D) 199 15 - 241: 6(float) AtomicFAddEXT 240 19 157 12 - Store 11(atomf) 241 MakePointerAvailableKHR NonPrivatePointerKHR 149 - 242: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 243: 28(ptr) AccessChain 27(buf) 21 - 244: 6(float) Load 243 - 245: 6(float) FAdd 244 242 - 246: 28(ptr) AccessChain 27(buf) 21 - Store 246 245 - 247: 145(ptr) ImageTexelPointer 232(fimage2D) 207 15 - 248: 6(float) AtomicExchange 247 19 157 164 - Store 11(atomf) 248 MakePointerAvailableKHR NonPrivatePointerKHR 149 - 249: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 250: 28(ptr) AccessChain 27(buf) 21 - 251: 6(float) Load 250 - 252: 6(float) FAdd 251 249 - 253: 28(ptr) AccessChain 27(buf) 21 - Store 253 252 - 254: 145(ptr) ImageTexelPointer 232(fimage2D) 199 15 - 255: 6(float) AtomicLoad 254 19 157 - Store 11(atomf) 255 MakePointerAvailableKHR NonPrivatePointerKHR 149 - 256: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 257: 28(ptr) AccessChain 27(buf) 21 - 258: 6(float) Load 257 - 259: 6(float) FAdd 258 256 - 260: 28(ptr) AccessChain 27(buf) 21 - Store 260 259 - 261: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 262: 145(ptr) ImageTexelPointer 232(fimage2D) 222 15 - AtomicStore 262 19 157 261 - 263: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 264: 28(ptr) AccessChain 27(buf) 21 - 265: 6(float) Load 264 - 266: 6(float) FAdd 265 263 - 267: 28(ptr) AccessChain 27(buf) 21 - Store 267 266 - 271: 145(ptr) ImageTexelPointer 270(fimage2DRect) 191 15 - 272: 6(float) AtomicFAddEXT 271 14 147 144 - Store 11(atomf) 272 MakePointerAvailableKHR NonPrivatePointerKHR 149 - 273: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 274: 28(ptr) AccessChain 27(buf) 21 - 275: 6(float) Load 274 - 276: 6(float) FAdd 275 273 - 277: 28(ptr) AccessChain 27(buf) 21 - Store 277 276 - 278: 145(ptr) ImageTexelPointer 270(fimage2DRect) 199 15 - 279: 6(float) AtomicFAddEXT 278 19 157 12 - Store 11(atomf) 279 MakePointerAvailableKHR NonPrivatePointerKHR 149 - 280: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 281: 28(ptr) AccessChain 27(buf) 21 - 282: 6(float) Load 281 - 283: 6(float) FAdd 282 280 - 284: 28(ptr) AccessChain 27(buf) 21 - Store 284 283 - 285: 145(ptr) ImageTexelPointer 270(fimage2DRect) 207 15 - 286: 6(float) AtomicExchange 285 19 157 164 - Store 11(atomf) 286 MakePointerAvailableKHR NonPrivatePointerKHR 149 - 287: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 288: 28(ptr) AccessChain 27(buf) 21 - 289: 6(float) Load 288 - 290: 6(float) FAdd 289 287 - 291: 28(ptr) AccessChain 27(buf) 21 - Store 291 290 - 292: 145(ptr) ImageTexelPointer 270(fimage2DRect) 199 15 - 293: 6(float) AtomicLoad 292 19 157 - Store 11(atomf) 293 MakePointerAvailableKHR NonPrivatePointerKHR 149 - 294: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 295: 28(ptr) AccessChain 27(buf) 21 - 296: 6(float) Load 295 - 297: 6(float) FAdd 296 294 - 298: 28(ptr) AccessChain 27(buf) 21 - Store 298 297 - 299: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 300: 145(ptr) ImageTexelPointer 270(fimage2DRect) 222 15 - AtomicStore 300 19 157 299 - 301: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 302: 28(ptr) AccessChain 27(buf) 21 - 303: 6(float) Load 302 - 304: 6(float) FAdd 303 301 - 305: 28(ptr) AccessChain 27(buf) 21 - Store 305 304 - 311: 145(ptr) ImageTexelPointer 308(fimage2DArray) 310 15 - 312: 6(float) AtomicFAddEXT 311 14 147 144 - Store 11(atomf) 312 MakePointerAvailableKHR NonPrivatePointerKHR 149 - 313: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 314: 28(ptr) AccessChain 27(buf) 21 - 315: 6(float) Load 314 - 316: 6(float) FAdd 315 313 - 317: 28(ptr) AccessChain 27(buf) 21 - Store 317 316 - 319: 145(ptr) ImageTexelPointer 308(fimage2DArray) 318 15 - 320: 6(float) AtomicFAddEXT 319 19 157 12 - Store 11(atomf) 320 MakePointerAvailableKHR NonPrivatePointerKHR 149 - 321: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 322: 28(ptr) AccessChain 27(buf) 21 - 323: 6(float) Load 322 - 324: 6(float) FAdd 323 321 - 325: 28(ptr) AccessChain 27(buf) 21 - Store 325 324 - 327: 145(ptr) ImageTexelPointer 308(fimage2DArray) 326 15 - 328: 6(float) AtomicExchange 327 19 157 164 - Store 11(atomf) 328 MakePointerAvailableKHR NonPrivatePointerKHR 149 - 329: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 330: 28(ptr) AccessChain 27(buf) 21 - 331: 6(float) Load 330 - 332: 6(float) FAdd 331 329 - 333: 28(ptr) AccessChain 27(buf) 21 - Store 333 332 - 335: 145(ptr) ImageTexelPointer 308(fimage2DArray) 334 15 - 336: 6(float) AtomicLoad 335 19 157 - Store 11(atomf) 336 MakePointerAvailableKHR NonPrivatePointerKHR 149 - 337: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 338: 28(ptr) AccessChain 27(buf) 21 - 339: 6(float) Load 338 - 340: 6(float) FAdd 339 337 - 341: 28(ptr) AccessChain 27(buf) 21 - Store 341 340 - 343: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 344: 145(ptr) ImageTexelPointer 308(fimage2DArray) 342 15 - AtomicStore 344 19 157 343 - 345: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 346: 28(ptr) AccessChain 27(buf) 21 - 347: 6(float) Load 346 - 348: 6(float) FAdd 347 345 - 349: 28(ptr) AccessChain 27(buf) 21 - Store 349 348 - 353: 145(ptr) ImageTexelPointer 352(fimageCube) 310 15 - 354: 6(float) AtomicFAddEXT 353 14 147 144 - Store 11(atomf) 354 MakePointerAvailableKHR NonPrivatePointerKHR 149 - 355: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 356: 28(ptr) AccessChain 27(buf) 21 - 357: 6(float) Load 356 - 358: 6(float) FAdd 357 355 - 359: 28(ptr) AccessChain 27(buf) 21 - Store 359 358 - 360: 145(ptr) ImageTexelPointer 352(fimageCube) 318 15 - 361: 6(float) AtomicFAddEXT 360 19 157 12 - Store 11(atomf) 361 MakePointerAvailableKHR NonPrivatePointerKHR 149 - 362: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 363: 28(ptr) AccessChain 27(buf) 21 - 364: 6(float) Load 363 - 365: 6(float) FAdd 364 362 - 366: 28(ptr) AccessChain 27(buf) 21 - Store 366 365 - 368: 145(ptr) ImageTexelPointer 352(fimageCube) 367 15 - 369: 6(float) AtomicExchange 368 19 157 164 - Store 11(atomf) 369 MakePointerAvailableKHR NonPrivatePointerKHR 149 - 370: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 371: 28(ptr) AccessChain 27(buf) 21 - 372: 6(float) Load 371 - 373: 6(float) FAdd 372 370 - 374: 28(ptr) AccessChain 27(buf) 21 - Store 374 373 - 375: 145(ptr) ImageTexelPointer 352(fimageCube) 334 15 - 376: 6(float) AtomicLoad 375 19 157 - Store 11(atomf) 376 MakePointerAvailableKHR NonPrivatePointerKHR 149 - 377: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 378: 28(ptr) AccessChain 27(buf) 21 - 379: 6(float) Load 378 - 380: 6(float) FAdd 379 377 - 381: 28(ptr) AccessChain 27(buf) 21 - Store 381 380 - 383: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 384: 145(ptr) ImageTexelPointer 352(fimageCube) 382 15 - AtomicStore 384 19 157 383 - 385: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 386: 28(ptr) AccessChain 27(buf) 21 - 387: 6(float) Load 386 - 388: 6(float) FAdd 387 385 - 389: 28(ptr) AccessChain 27(buf) 21 - Store 389 388 - 393: 145(ptr) ImageTexelPointer 392(fimageCubeArray) 310 15 - 394: 6(float) AtomicFAddEXT 393 14 147 144 - Store 11(atomf) 394 MakePointerAvailableKHR NonPrivatePointerKHR 149 - 395: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 396: 28(ptr) AccessChain 27(buf) 21 - 397: 6(float) Load 396 - 398: 6(float) FAdd 397 395 - 399: 28(ptr) AccessChain 27(buf) 21 - Store 399 398 - 400: 145(ptr) ImageTexelPointer 392(fimageCubeArray) 318 15 - 401: 6(float) AtomicFAddEXT 400 19 157 12 - Store 11(atomf) 401 MakePointerAvailableKHR NonPrivatePointerKHR 149 - 402: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 403: 28(ptr) AccessChain 27(buf) 21 - 404: 6(float) Load 403 - 405: 6(float) FAdd 404 402 - 406: 28(ptr) AccessChain 27(buf) 21 - Store 406 405 - 407: 145(ptr) ImageTexelPointer 392(fimageCubeArray) 326 15 - 408: 6(float) AtomicExchange 407 19 157 164 - Store 11(atomf) 408 MakePointerAvailableKHR NonPrivatePointerKHR 149 - 409: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 410: 28(ptr) AccessChain 27(buf) 21 - 411: 6(float) Load 410 - 412: 6(float) FAdd 411 409 - 413: 28(ptr) AccessChain 27(buf) 21 - Store 413 412 - 414: 145(ptr) ImageTexelPointer 392(fimageCubeArray) 334 15 - 415: 6(float) AtomicLoad 414 19 157 - Store 11(atomf) 415 MakePointerAvailableKHR NonPrivatePointerKHR 149 - 416: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 417: 28(ptr) AccessChain 27(buf) 21 - 418: 6(float) Load 417 - 419: 6(float) FAdd 418 416 - 420: 28(ptr) AccessChain 27(buf) 21 - Store 420 419 - 421: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 422: 145(ptr) ImageTexelPointer 392(fimageCubeArray) 342 15 - AtomicStore 422 19 157 421 - 423: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 424: 28(ptr) AccessChain 27(buf) 21 - 425: 6(float) Load 424 - 426: 6(float) FAdd 425 423 - 427: 28(ptr) AccessChain 27(buf) 21 - Store 427 426 - 431: 145(ptr) ImageTexelPointer 430(fimage3D) 310 15 - 432: 6(float) AtomicFAddEXT 431 14 147 144 - Store 11(atomf) 432 MakePointerAvailableKHR NonPrivatePointerKHR 149 - 433: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 434: 28(ptr) AccessChain 27(buf) 21 - 435: 6(float) Load 434 - 436: 6(float) FAdd 435 433 - 437: 28(ptr) AccessChain 27(buf) 21 - Store 437 436 - 438: 145(ptr) ImageTexelPointer 430(fimage3D) 318 15 - 439: 6(float) AtomicFAddEXT 438 19 157 12 - Store 11(atomf) 439 MakePointerAvailableKHR NonPrivatePointerKHR 149 - 440: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 441: 28(ptr) AccessChain 27(buf) 21 - 442: 6(float) Load 441 - 443: 6(float) FAdd 442 440 - 444: 28(ptr) AccessChain 27(buf) 21 - Store 444 443 - 445: 145(ptr) ImageTexelPointer 430(fimage3D) 326 15 - 446: 6(float) AtomicExchange 445 19 157 164 - Store 11(atomf) 446 MakePointerAvailableKHR NonPrivatePointerKHR 149 - 447: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 448: 28(ptr) AccessChain 27(buf) 21 - 449: 6(float) Load 448 - 450: 6(float) FAdd 449 447 - 451: 28(ptr) AccessChain 27(buf) 21 - Store 451 450 - 452: 145(ptr) ImageTexelPointer 430(fimage3D) 334 15 - 453: 6(float) AtomicLoad 452 19 157 - Store 11(atomf) 453 MakePointerAvailableKHR NonPrivatePointerKHR 149 - 454: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 455: 28(ptr) AccessChain 27(buf) 21 - 456: 6(float) Load 455 - 457: 6(float) FAdd 456 454 - 458: 28(ptr) AccessChain 27(buf) 21 - Store 458 457 - 459: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 460: 145(ptr) ImageTexelPointer 430(fimage3D) 342 15 - AtomicStore 460 19 157 459 - 461: 6(float) Load 11(atomf) MakePointerVisibleKHR NonPrivatePointerKHR 149 - 462: 28(ptr) AccessChain 27(buf) 21 - 463: 6(float) Load 462 - 464: 6(float) FAdd 463 461 - 465: 28(ptr) AccessChain 27(buf) 21 - Store 465 464 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.atomicFloat_Error.comp.out b/deps/glslang/Test/baseResults/spv.atomicFloat_Error.comp.out deleted file mode 100644 index e00ed19e..00000000 --- a/deps/glslang/Test/baseResults/spv.atomicFloat_Error.comp.out +++ /dev/null @@ -1,57 +0,0 @@ -spv.atomicFloat_Error.comp -ERROR: 0:25: 'atomicAdd' : required extension not requested: GL_EXT_shader_atomic_float -ERROR: 0:26: 'atomicAdd' : required extension not requested: GL_EXT_shader_atomic_float -ERROR: 0:27: 'atomicAdd' : required extension not requested: GL_EXT_shader_atomic_float -ERROR: 0:28: 'atomicAdd' : required extension not requested: GL_EXT_shader_atomic_float -ERROR: 0:31: 'atomicAdd' : required extension not requested: GL_EXT_shader_atomic_float -ERROR: 0:32: 'atomicAdd' : required extension not requested: GL_EXT_shader_atomic_float -ERROR: 0:33: 'atomicAdd' : required extension not requested: GL_EXT_shader_atomic_float -ERROR: 0:34: 'atomicAdd' : required extension not requested: GL_EXT_shader_atomic_float -ERROR: 0:37: 'atomicExchange' : required extension not requested: GL_EXT_shader_atomic_float -ERROR: 0:38: 'atomicExchange' : required extension not requested: GL_EXT_shader_atomic_float -ERROR: 0:39: 'atomicExchange' : required extension not requested: GL_EXT_shader_atomic_float -ERROR: 0:40: 'atomicExchange' : required extension not requested: GL_EXT_shader_atomic_float -ERROR: 0:43: 'atomicExchange' : required extension not requested: GL_EXT_shader_atomic_float -ERROR: 0:44: 'atomicExchange' : required extension not requested: GL_EXT_shader_atomic_float -ERROR: 0:45: 'atomicExchange' : required extension not requested: GL_EXT_shader_atomic_float -ERROR: 0:46: 'atomicExchange' : required extension not requested: GL_EXT_shader_atomic_float -ERROR: 0:50: 'atomicLoad' : required extension not requested: GL_EXT_shader_atomic_float -ERROR: 0:51: 'atomicStore' : required extension not requested: GL_EXT_shader_atomic_float -ERROR: 0:52: 'atomicLoad' : required extension not requested: GL_EXT_shader_atomic_float -ERROR: 0:53: 'atomicStore' : required extension not requested: GL_EXT_shader_atomic_float -ERROR: 0:56: 'atomicLoad' : required extension not requested: GL_EXT_shader_atomic_float -ERROR: 0:57: 'atomicStore' : required extension not requested: GL_EXT_shader_atomic_float -ERROR: 0:58: 'atomicLoad' : required extension not requested: GL_EXT_shader_atomic_float -ERROR: 0:59: 'atomicStore' : required extension not requested: GL_EXT_shader_atomic_float -ERROR: 0:63: 'imageAtomicAdd' : required extension not requested: GL_EXT_shader_atomic_float -ERROR: 0:64: 'imageAtomicAdd' : required extension not requested: GL_EXT_shader_atomic_float -ERROR: 0:66: 'imageAtomicLoad' : required extension not requested: GL_EXT_shader_atomic_float -ERROR: 0:67: 'imageAtomicStore' : required extension not requested: GL_EXT_shader_atomic_float -ERROR: 0:80: 'atomicAdd' : no matching overloaded function found -ERROR: 0:81: 'atomicAdd' : no matching overloaded function found -ERROR: 0:82: 'atomicAdd' : no matching overloaded function found -ERROR: 0:83: 'atomicAdd' : no matching overloaded function found -ERROR: 0:86: 'atomicExchange' : no matching overloaded function found -ERROR: 0:87: 'atomicExchange' : no matching overloaded function found -ERROR: 0:88: 'atomicExchange' : no matching overloaded function found -ERROR: 0:89: 'atomicExchange' : no matching overloaded function found -ERROR: 0:90: 'atomicExchange' : no matching overloaded function found -ERROR: 0:91: 'atomicExchange' : no matching overloaded function found -ERROR: 0:95: 'atomicLoad' : no matching overloaded function found -ERROR: 0:96: 'atomicStore' : no matching overloaded function found -ERROR: 0:99: 'imageAtomicAdd' : no matching overloaded function found -ERROR: 0:100: 'imageAtomicAdd' : no matching overloaded function found -ERROR: 0:101: 'imageAtomicAdd' : no matching overloaded function found -ERROR: 0:102: 'imageAtomicExchange' : no matching overloaded function found -ERROR: 0:103: 'imageAtomicExchange' : no matching overloaded function found -ERROR: 0:104: 'imageAtomicExchange' : no matching overloaded function found -ERROR: 0:105: 'imageAtomicLoad' : no matching overloaded function found -ERROR: 0:106: 'imageAtomicLoad' : no matching overloaded function found -ERROR: 0:107: 'imageAtomicLoad' : no matching overloaded function found -ERROR: 0:108: 'imageAtomicStore' : no matching overloaded function found -ERROR: 0:109: 'imageAtomicStore' : no matching overloaded function found -ERROR: 0:110: 'imageAtomicStore' : no matching overloaded function found -ERROR: 52 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.atomicInt64.comp.out b/deps/glslang/Test/baseResults/spv.atomicInt64.comp.out deleted file mode 100644 index 5b2e1340..00000000 --- a/deps/glslang/Test/baseResults/spv.atomicInt64.comp.out +++ /dev/null @@ -1,215 +0,0 @@ -spv.atomicInt64.comp -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 149 - - Capability Shader - Capability Int64 - Capability Int64Atomics - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" - ExecutionMode 4 LocalSize 16 16 1 - Source GLSL 450 - SourceExtension "GL_ARB_gpu_shader_int64" - SourceExtension "GL_NV_shader_atomic_int64" - Name 4 "main" - Name 8 "i64" - Name 12 "u64" - Name 14 "Buffer" - MemberName 14(Buffer) 0 "i64" - MemberName 14(Buffer) 1 "u64" - Name 16 "buf" - Name 84 "Struct" - MemberName 84(Struct) 0 "i64" - MemberName 84(Struct) 1 "u64" - Name 86 "s" - MemberDecorate 14(Buffer) 0 Offset 0 - MemberDecorate 14(Buffer) 1 Offset 8 - Decorate 14(Buffer) BufferBlock - Decorate 16(buf) DescriptorSet 0 - Decorate 16(buf) Binding 0 - Decorate 148 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 64 1 - 7: TypePointer Function 6(int64_t) - 9: 6(int64_t) Constant 0 0 - 10: TypeInt 64 0 - 11: TypePointer Function 10(int64_t) - 13: 10(int64_t) Constant 0 0 - 14(Buffer): TypeStruct 6(int64_t) 10(int64_t) - 15: TypePointer Uniform 14(Buffer) - 16(buf): 15(ptr) Variable Uniform - 17: TypeInt 32 1 - 18: 17(int) Constant 0 - 19: TypePointer Uniform 6(int64_t) - 21: 6(int64_t) Constant 4294967272 4294967295 - 22: TypeInt 32 0 - 23: 22(int) Constant 1 - 24: 22(int) Constant 0 - 28: 17(int) Constant 1 - 29: TypePointer Uniform 10(int64_t) - 31: 10(int64_t) Constant 15 240 - 84(Struct): TypeStruct 6(int64_t) 10(int64_t) - 85: TypePointer Workgroup 84(Struct) - 86(s): 85(ptr) Variable Workgroup - 87: TypePointer Workgroup 6(int64_t) - 92: TypePointer Workgroup 10(int64_t) - 146: TypeVector 22(int) 3 - 147: 22(int) Constant 16 - 148: 146(ivec3) ConstantComposite 147 147 23 - 4(main): 2 Function None 3 - 5: Label - 8(i64): 7(ptr) Variable Function - 12(u64): 11(ptr) Variable Function - Store 8(i64) 9 - Store 12(u64) 13 - 20: 19(ptr) AccessChain 16(buf) 18 - 25: 6(int64_t) AtomicSMin 20 23 24 21 - 26: 6(int64_t) Load 8(i64) - 27: 6(int64_t) IAdd 26 25 - Store 8(i64) 27 - 30: 29(ptr) AccessChain 16(buf) 28 - 32: 10(int64_t) AtomicUMin 30 23 24 31 - 33: 10(int64_t) Load 12(u64) - 34: 10(int64_t) IAdd 33 32 - Store 12(u64) 34 - 35: 19(ptr) AccessChain 16(buf) 18 - 36: 6(int64_t) AtomicSMax 35 23 24 21 - 37: 6(int64_t) Load 8(i64) - 38: 6(int64_t) IAdd 37 36 - Store 8(i64) 38 - 39: 29(ptr) AccessChain 16(buf) 28 - 40: 10(int64_t) AtomicUMax 39 23 24 31 - 41: 10(int64_t) Load 12(u64) - 42: 10(int64_t) IAdd 41 40 - Store 12(u64) 42 - 43: 19(ptr) AccessChain 16(buf) 18 - 44: 6(int64_t) AtomicAnd 43 23 24 21 - 45: 6(int64_t) Load 8(i64) - 46: 6(int64_t) IAdd 45 44 - Store 8(i64) 46 - 47: 29(ptr) AccessChain 16(buf) 28 - 48: 10(int64_t) AtomicAnd 47 23 24 31 - 49: 10(int64_t) Load 12(u64) - 50: 10(int64_t) IAdd 49 48 - Store 12(u64) 50 - 51: 19(ptr) AccessChain 16(buf) 18 - 52: 6(int64_t) AtomicOr 51 23 24 21 - 53: 6(int64_t) Load 8(i64) - 54: 6(int64_t) IAdd 53 52 - Store 8(i64) 54 - 55: 29(ptr) AccessChain 16(buf) 28 - 56: 10(int64_t) AtomicOr 55 23 24 31 - 57: 10(int64_t) Load 12(u64) - 58: 10(int64_t) IAdd 57 56 - Store 12(u64) 58 - 59: 19(ptr) AccessChain 16(buf) 18 - 60: 6(int64_t) AtomicXor 59 23 24 21 - 61: 6(int64_t) Load 8(i64) - 62: 6(int64_t) IAdd 61 60 - Store 8(i64) 62 - 63: 29(ptr) AccessChain 16(buf) 28 - 64: 10(int64_t) AtomicXor 63 23 24 31 - 65: 10(int64_t) Load 12(u64) - 66: 10(int64_t) IAdd 65 64 - Store 12(u64) 66 - 67: 19(ptr) AccessChain 16(buf) 18 - 68: 6(int64_t) AtomicIAdd 67 23 24 21 - 69: 6(int64_t) Load 8(i64) - 70: 6(int64_t) IAdd 69 68 - Store 8(i64) 70 - 71: 19(ptr) AccessChain 16(buf) 18 - 72: 6(int64_t) AtomicExchange 71 23 24 21 - 73: 6(int64_t) Load 8(i64) - 74: 6(int64_t) IAdd 73 72 - Store 8(i64) 74 - 75: 19(ptr) AccessChain 16(buf) 18 - 76: 6(int64_t) Load 8(i64) - 77: 6(int64_t) AtomicCompareExchange 75 23 24 24 76 21 - 78: 6(int64_t) Load 8(i64) - 79: 6(int64_t) IAdd 78 77 - Store 8(i64) 79 - 80: 6(int64_t) Load 8(i64) - 81: 19(ptr) AccessChain 16(buf) 18 - Store 81 80 - 82: 10(int64_t) Load 12(u64) - 83: 29(ptr) AccessChain 16(buf) 28 - Store 83 82 - Store 8(i64) 9 - Store 12(u64) 13 - 88: 87(ptr) AccessChain 86(s) 18 - 89: 6(int64_t) AtomicSMin 88 23 24 21 - 90: 6(int64_t) Load 8(i64) - 91: 6(int64_t) IAdd 90 89 - Store 8(i64) 91 - 93: 92(ptr) AccessChain 86(s) 28 - 94: 10(int64_t) AtomicUMin 93 23 24 31 - 95: 10(int64_t) Load 12(u64) - 96: 10(int64_t) IAdd 95 94 - Store 12(u64) 96 - 97: 87(ptr) AccessChain 86(s) 18 - 98: 6(int64_t) AtomicSMax 97 23 24 21 - 99: 6(int64_t) Load 8(i64) - 100: 6(int64_t) IAdd 99 98 - Store 8(i64) 100 - 101: 92(ptr) AccessChain 86(s) 28 - 102: 10(int64_t) AtomicUMax 101 23 24 31 - 103: 10(int64_t) Load 12(u64) - 104: 10(int64_t) IAdd 103 102 - Store 12(u64) 104 - 105: 87(ptr) AccessChain 86(s) 18 - 106: 6(int64_t) AtomicAnd 105 23 24 21 - 107: 6(int64_t) Load 8(i64) - 108: 6(int64_t) IAdd 107 106 - Store 8(i64) 108 - 109: 92(ptr) AccessChain 86(s) 28 - 110: 10(int64_t) AtomicAnd 109 23 24 31 - 111: 10(int64_t) Load 12(u64) - 112: 10(int64_t) IAdd 111 110 - Store 12(u64) 112 - 113: 87(ptr) AccessChain 86(s) 18 - 114: 6(int64_t) AtomicOr 113 23 24 21 - 115: 6(int64_t) Load 8(i64) - 116: 6(int64_t) IAdd 115 114 - Store 8(i64) 116 - 117: 92(ptr) AccessChain 86(s) 28 - 118: 10(int64_t) AtomicOr 117 23 24 31 - 119: 10(int64_t) Load 12(u64) - 120: 10(int64_t) IAdd 119 118 - Store 12(u64) 120 - 121: 87(ptr) AccessChain 86(s) 18 - 122: 6(int64_t) AtomicXor 121 23 24 21 - 123: 6(int64_t) Load 8(i64) - 124: 6(int64_t) IAdd 123 122 - Store 8(i64) 124 - 125: 92(ptr) AccessChain 86(s) 28 - 126: 10(int64_t) AtomicXor 125 23 24 31 - 127: 10(int64_t) Load 12(u64) - 128: 10(int64_t) IAdd 127 126 - Store 12(u64) 128 - 129: 87(ptr) AccessChain 86(s) 18 - 130: 6(int64_t) AtomicIAdd 129 23 24 21 - 131: 6(int64_t) Load 8(i64) - 132: 6(int64_t) IAdd 131 130 - Store 8(i64) 132 - 133: 87(ptr) AccessChain 86(s) 18 - 134: 6(int64_t) AtomicExchange 133 23 24 21 - 135: 6(int64_t) Load 8(i64) - 136: 6(int64_t) IAdd 135 134 - Store 8(i64) 136 - 137: 87(ptr) AccessChain 86(s) 18 - 138: 6(int64_t) Load 8(i64) - 139: 6(int64_t) AtomicCompareExchange 137 23 24 24 138 21 - 140: 6(int64_t) Load 8(i64) - 141: 6(int64_t) IAdd 140 139 - Store 8(i64) 141 - 142: 6(int64_t) Load 8(i64) - 143: 87(ptr) AccessChain 86(s) 18 - Store 143 142 - 144: 10(int64_t) Load 12(u64) - 145: 92(ptr) AccessChain 86(s) 28 - Store 145 144 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.atomicStoreInt64.comp.out b/deps/glslang/Test/baseResults/spv.atomicStoreInt64.comp.out deleted file mode 100644 index 3adadcb2..00000000 --- a/deps/glslang/Test/baseResults/spv.atomicStoreInt64.comp.out +++ /dev/null @@ -1,57 +0,0 @@ -spv.atomicStoreInt64.comp -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 25 - - Capability Shader - Capability Int64 - Capability Int64Atomics - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" - ExecutionMode 4 LocalSize 1 1 1 - Source GLSL 450 - SourceExtension "GL_EXT_shader_atomic_int64" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int64" - SourceExtension "GL_KHR_memory_scope_semantics" - Name 4 "main" - Name 7 "ssbo" - MemberName 7(ssbo) 0 "y" - Name 9 "" - Name 14 "ubo" - MemberName 14(ubo) 0 "z" - Name 16 "" - MemberDecorate 7(ssbo) 0 Offset 0 - Decorate 7(ssbo) BufferBlock - Decorate 9 DescriptorSet 0 - Decorate 9 Binding 0 - MemberDecorate 14(ubo) 0 Offset 0 - Decorate 14(ubo) Block - Decorate 16 DescriptorSet 0 - Decorate 16 Binding 1 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 64 0 - 7(ssbo): TypeStruct 6(int64_t) - 8: TypePointer Uniform 7(ssbo) - 9: 8(ptr) Variable Uniform - 10: TypeInt 32 1 - 11: 10(int) Constant 0 - 12: TypePointer Uniform 6(int64_t) - 14(ubo): TypeStruct 6(int64_t) - 15: TypePointer Uniform 14(ubo) - 16: 15(ptr) Variable Uniform - 19: 10(int) Constant 1 - 20: 10(int) Constant 64 - 21: TypeInt 32 0 - 22: 21(int) Constant 1 - 23: 21(int) Constant 0 - 24: 21(int) Constant 64 - 4(main): 2 Function None 3 - 5: Label - 13: 12(ptr) AccessChain 9 11 - 17: 12(ptr) AccessChain 16 11 - 18: 6(int64_t) Load 17 - AtomicStore 13 19 24 18 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.barrier.vert.out b/deps/glslang/Test/baseResults/spv.barrier.vert.out deleted file mode 100644 index 71998825..00000000 --- a/deps/glslang/Test/baseResults/spv.barrier.vert.out +++ /dev/null @@ -1,46 +0,0 @@ -spv.barrier.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 24 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 9 15 - Source GLSL 450 - Name 4 "main" - Name 9 "c0" - Name 15 "c1" - Decorate 9(c0) Location 0 - Decorate 15(c1) Location 1 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) - 9(c0): 8(ptr) Variable Output - 10: 6(float) Constant 1065353216 - 11: 7(fvec4) ConstantComposite 10 10 10 10 - 12: TypeInt 32 0 - 13: 12(int) Constant 1 - 14: 12(int) Constant 3400 - 15(c1): 8(ptr) Variable Output - 16: 12(int) Constant 72 - 20: 12(int) Constant 2056 - 4(main): 2 Function None 3 - 5: Label - Store 9(c0) 11 - MemoryBarrier 13 14 - Store 15(c1) 11 - MemoryBarrier 13 16 - 17: 7(fvec4) Load 9(c0) - 18: 7(fvec4) CompositeConstruct 10 10 10 10 - 19: 7(fvec4) FAdd 17 18 - Store 9(c0) 19 - MemoryBarrier 13 20 - 21: 7(fvec4) Load 9(c0) - 22: 7(fvec4) CompositeConstruct 10 10 10 10 - 23: 7(fvec4) FAdd 21 22 - Store 9(c0) 23 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.bitCast.frag.out b/deps/glslang/Test/baseResults/spv.bitCast.frag.out deleted file mode 100644 index 88b2a09f..00000000 --- a/deps/glslang/Test/baseResults/spv.bitCast.frag.out +++ /dev/null @@ -1,285 +0,0 @@ -spv.bitCast.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 198 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 14 26 40 56 103 112 123 136 142 150 161 174 180 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - Name 4 "main" - Name 9 "idata" - Name 14 "f1" - Name 26 "f2" - Name 40 "f3" - Name 56 "f4" - Name 63 "udata" - Name 99 "fdata" - Name 103 "i1" - Name 112 "i2" - Name 123 "i3" - Name 136 "i4" - Name 142 "u1" - Name 150 "u2" - Name 161 "u3" - Name 174 "u4" - Name 180 "fragColor" - Decorate 14(f1) Location 8 - Decorate 26(f2) Location 9 - Decorate 40(f3) Location 10 - Decorate 56(f4) Location 11 - Decorate 103(i1) Flat - Decorate 103(i1) Location 0 - Decorate 112(i2) Flat - Decorate 112(i2) Location 1 - Decorate 123(i3) Flat - Decorate 123(i3) Location 2 - Decorate 136(i4) Flat - Decorate 136(i4) Location 3 - Decorate 142(u1) Flat - Decorate 142(u1) Location 4 - Decorate 150(u2) Flat - Decorate 150(u2) Location 5 - Decorate 161(u3) Flat - Decorate 161(u3) Location 6 - Decorate 174(u4) Flat - Decorate 174(u4) Location 7 - Decorate 180(fragColor) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypeVector 6(int) 4 - 8: TypePointer Function 7(ivec4) - 10: 6(int) Constant 0 - 11: 7(ivec4) ConstantComposite 10 10 10 10 - 12: TypeFloat 32 - 13: TypePointer Input 12(float) - 14(f1): 13(ptr) Variable Input - 17: TypeInt 32 0 - 18: 17(int) Constant 0 - 19: TypePointer Function 6(int) - 24: TypeVector 12(float) 2 - 25: TypePointer Input 24(fvec2) - 26(f2): 25(ptr) Variable Input - 28: TypeVector 6(int) 2 - 35: 17(int) Constant 1 - 38: TypeVector 12(float) 3 - 39: TypePointer Input 38(fvec3) - 40(f3): 39(ptr) Variable Input - 42: TypeVector 6(int) 3 - 51: 17(int) Constant 2 - 54: TypeVector 12(float) 4 - 55: TypePointer Input 54(fvec4) - 56(f4): 55(ptr) Variable Input - 61: TypeVector 17(int) 4 - 62: TypePointer Function 61(ivec4) - 64: 61(ivec4) ConstantComposite 18 18 18 18 - 67: TypePointer Function 17(int) - 73: TypeVector 17(int) 2 - 83: TypeVector 17(int) 3 - 98: TypePointer Function 54(fvec4) - 100: 12(float) Constant 0 - 101: 54(fvec4) ConstantComposite 100 100 100 100 - 102: TypePointer Input 6(int) - 103(i1): 102(ptr) Variable Input - 106: TypePointer Function 12(float) - 111: TypePointer Input 28(ivec2) - 112(i2): 111(ptr) Variable Input - 122: TypePointer Input 42(ivec3) - 123(i3): 122(ptr) Variable Input - 135: TypePointer Input 7(ivec4) - 136(i4): 135(ptr) Variable Input - 141: TypePointer Input 17(int) - 142(u1): 141(ptr) Variable Input - 149: TypePointer Input 73(ivec2) - 150(u2): 149(ptr) Variable Input - 160: TypePointer Input 83(ivec3) - 161(u3): 160(ptr) Variable Input - 173: TypePointer Input 61(ivec4) - 174(u4): 173(ptr) Variable Input - 179: TypePointer Output 54(fvec4) - 180(fragColor): 179(ptr) Variable Output - 184: TypeBool - 185: TypeVector 184(bool) 4 - 194: 12(float) Constant 1045220557 - 195: 54(fvec4) ConstantComposite 194 194 194 194 - 4(main): 2 Function None 3 - 5: Label - 9(idata): 8(ptr) Variable Function - 63(udata): 62(ptr) Variable Function - 99(fdata): 98(ptr) Variable Function - 188: 98(ptr) Variable Function - Store 9(idata) 11 - 15: 12(float) Load 14(f1) - 16: 6(int) Bitcast 15 - 20: 19(ptr) AccessChain 9(idata) 18 - 21: 6(int) Load 20 - 22: 6(int) IAdd 21 16 - 23: 19(ptr) AccessChain 9(idata) 18 - Store 23 22 - 27: 24(fvec2) Load 26(f2) - 29: 28(ivec2) Bitcast 27 - 30: 7(ivec4) Load 9(idata) - 31: 28(ivec2) VectorShuffle 30 30 0 1 - 32: 28(ivec2) IAdd 31 29 - 33: 19(ptr) AccessChain 9(idata) 18 - 34: 6(int) CompositeExtract 32 0 - Store 33 34 - 36: 19(ptr) AccessChain 9(idata) 35 - 37: 6(int) CompositeExtract 32 1 - Store 36 37 - 41: 38(fvec3) Load 40(f3) - 43: 42(ivec3) Bitcast 41 - 44: 7(ivec4) Load 9(idata) - 45: 42(ivec3) VectorShuffle 44 44 0 1 2 - 46: 42(ivec3) IAdd 45 43 - 47: 19(ptr) AccessChain 9(idata) 18 - 48: 6(int) CompositeExtract 46 0 - Store 47 48 - 49: 19(ptr) AccessChain 9(idata) 35 - 50: 6(int) CompositeExtract 46 1 - Store 49 50 - 52: 19(ptr) AccessChain 9(idata) 51 - 53: 6(int) CompositeExtract 46 2 - Store 52 53 - 57: 54(fvec4) Load 56(f4) - 58: 7(ivec4) Bitcast 57 - 59: 7(ivec4) Load 9(idata) - 60: 7(ivec4) IAdd 59 58 - Store 9(idata) 60 - Store 63(udata) 64 - 65: 12(float) Load 14(f1) - 66: 17(int) Bitcast 65 - 68: 67(ptr) AccessChain 63(udata) 18 - 69: 17(int) Load 68 - 70: 17(int) IAdd 69 66 - 71: 67(ptr) AccessChain 63(udata) 18 - Store 71 70 - 72: 24(fvec2) Load 26(f2) - 74: 73(ivec2) Bitcast 72 - 75: 61(ivec4) Load 63(udata) - 76: 73(ivec2) VectorShuffle 75 75 0 1 - 77: 73(ivec2) IAdd 76 74 - 78: 67(ptr) AccessChain 63(udata) 18 - 79: 17(int) CompositeExtract 77 0 - Store 78 79 - 80: 67(ptr) AccessChain 63(udata) 35 - 81: 17(int) CompositeExtract 77 1 - Store 80 81 - 82: 38(fvec3) Load 40(f3) - 84: 83(ivec3) Bitcast 82 - 85: 61(ivec4) Load 63(udata) - 86: 83(ivec3) VectorShuffle 85 85 0 1 2 - 87: 83(ivec3) IAdd 86 84 - 88: 67(ptr) AccessChain 63(udata) 18 - 89: 17(int) CompositeExtract 87 0 - Store 88 89 - 90: 67(ptr) AccessChain 63(udata) 35 - 91: 17(int) CompositeExtract 87 1 - Store 90 91 - 92: 67(ptr) AccessChain 63(udata) 51 - 93: 17(int) CompositeExtract 87 2 - Store 92 93 - 94: 54(fvec4) Load 56(f4) - 95: 61(ivec4) Bitcast 94 - 96: 61(ivec4) Load 63(udata) - 97: 61(ivec4) IAdd 96 95 - Store 63(udata) 97 - Store 99(fdata) 101 - 104: 6(int) Load 103(i1) - 105: 12(float) Bitcast 104 - 107: 106(ptr) AccessChain 99(fdata) 18 - 108: 12(float) Load 107 - 109: 12(float) FAdd 108 105 - 110: 106(ptr) AccessChain 99(fdata) 18 - Store 110 109 - 113: 28(ivec2) Load 112(i2) - 114: 24(fvec2) Bitcast 113 - 115: 54(fvec4) Load 99(fdata) - 116: 24(fvec2) VectorShuffle 115 115 0 1 - 117: 24(fvec2) FAdd 116 114 - 118: 106(ptr) AccessChain 99(fdata) 18 - 119: 12(float) CompositeExtract 117 0 - Store 118 119 - 120: 106(ptr) AccessChain 99(fdata) 35 - 121: 12(float) CompositeExtract 117 1 - Store 120 121 - 124: 42(ivec3) Load 123(i3) - 125: 38(fvec3) Bitcast 124 - 126: 54(fvec4) Load 99(fdata) - 127: 38(fvec3) VectorShuffle 126 126 0 1 2 - 128: 38(fvec3) FAdd 127 125 - 129: 106(ptr) AccessChain 99(fdata) 18 - 130: 12(float) CompositeExtract 128 0 - Store 129 130 - 131: 106(ptr) AccessChain 99(fdata) 35 - 132: 12(float) CompositeExtract 128 1 - Store 131 132 - 133: 106(ptr) AccessChain 99(fdata) 51 - 134: 12(float) CompositeExtract 128 2 - Store 133 134 - 137: 7(ivec4) Load 136(i4) - 138: 54(fvec4) Bitcast 137 - 139: 54(fvec4) Load 99(fdata) - 140: 54(fvec4) FAdd 139 138 - Store 99(fdata) 140 - 143: 17(int) Load 142(u1) - 144: 12(float) Bitcast 143 - 145: 106(ptr) AccessChain 99(fdata) 18 - 146: 12(float) Load 145 - 147: 12(float) FAdd 146 144 - 148: 106(ptr) AccessChain 99(fdata) 18 - Store 148 147 - 151: 73(ivec2) Load 150(u2) - 152: 24(fvec2) Bitcast 151 - 153: 54(fvec4) Load 99(fdata) - 154: 24(fvec2) VectorShuffle 153 153 0 1 - 155: 24(fvec2) FAdd 154 152 - 156: 106(ptr) AccessChain 99(fdata) 18 - 157: 12(float) CompositeExtract 155 0 - Store 156 157 - 158: 106(ptr) AccessChain 99(fdata) 35 - 159: 12(float) CompositeExtract 155 1 - Store 158 159 - 162: 83(ivec3) Load 161(u3) - 163: 38(fvec3) Bitcast 162 - 164: 54(fvec4) Load 99(fdata) - 165: 38(fvec3) VectorShuffle 164 164 0 1 2 - 166: 38(fvec3) FAdd 165 163 - 167: 106(ptr) AccessChain 99(fdata) 18 - 168: 12(float) CompositeExtract 166 0 - Store 167 168 - 169: 106(ptr) AccessChain 99(fdata) 35 - 170: 12(float) CompositeExtract 166 1 - Store 169 170 - 171: 106(ptr) AccessChain 99(fdata) 51 - 172: 12(float) CompositeExtract 166 2 - Store 171 172 - 175: 61(ivec4) Load 174(u4) - 176: 54(fvec4) Bitcast 175 - 177: 54(fvec4) Load 99(fdata) - 178: 54(fvec4) FAdd 177 176 - Store 99(fdata) 178 - 181: 7(ivec4) Load 9(idata) - 182: 61(ivec4) Bitcast 181 - 183: 61(ivec4) Load 63(udata) - 186: 185(bvec4) IEqual 182 183 - 187: 184(bool) All 186 - SelectionMerge 190 None - BranchConditional 187 189 192 - 189: Label - 191: 54(fvec4) Load 99(fdata) - Store 188 191 - Branch 190 - 192: Label - 193: 54(fvec4) Load 99(fdata) - 196: 54(fvec4) FAdd 193 195 - Store 188 196 - Branch 190 - 190: Label - 197: 54(fvec4) Load 188 - Store 180(fragColor) 197 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.bool.vert.out b/deps/glslang/Test/baseResults/spv.bool.vert.out deleted file mode 100644 index fb7c6860..00000000 --- a/deps/glslang/Test/baseResults/spv.bool.vert.out +++ /dev/null @@ -1,80 +0,0 @@ -spv.bool.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 46 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 24 - Source GLSL 450 - Name 4 "main" - Name 10 "foo(b1;" - Name 9 "b" - Name 22 "gl_PerVertex" - MemberName 22(gl_PerVertex) 0 "gl_Position" - MemberName 22(gl_PerVertex) 1 "gl_PointSize" - MemberName 22(gl_PerVertex) 2 "gl_ClipDistance" - MemberName 22(gl_PerVertex) 3 "gl_CullDistance" - Name 24 "" - Name 27 "ubname" - MemberName 27(ubname) 0 "b" - Name 29 "ubinst" - Name 30 "param" - MemberDecorate 22(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 22(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 22(gl_PerVertex) 2 BuiltIn ClipDistance - MemberDecorate 22(gl_PerVertex) 3 BuiltIn CullDistance - Decorate 22(gl_PerVertex) Block - MemberDecorate 27(ubname) 0 Offset 0 - Decorate 27(ubname) Block - Decorate 29(ubinst) DescriptorSet 0 - Decorate 29(ubinst) Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeBool - 7: TypePointer Function 6(bool) - 8: TypeFunction 6(bool) 7(ptr) - 13: 6(bool) ConstantFalse - 17: TypeFloat 32 - 18: TypeVector 17(float) 4 - 19: TypeInt 32 0 - 20: 19(int) Constant 1 - 21: TypeArray 17(float) 20 -22(gl_PerVertex): TypeStruct 18(fvec4) 17(float) 21 21 - 23: TypePointer Output 22(gl_PerVertex) - 24: 23(ptr) Variable Output - 25: TypeInt 32 1 - 26: 25(int) Constant 0 - 27(ubname): TypeStruct 19(int) - 28: TypePointer Uniform 27(ubname) - 29(ubinst): 28(ptr) Variable Uniform - 31: TypePointer Uniform 19(int) - 34: 19(int) Constant 0 - 37: 17(float) Constant 0 - 38: 18(fvec4) ConstantComposite 37 37 37 37 - 39: 17(float) Constant 1065353216 - 40: 18(fvec4) ConstantComposite 39 39 39 39 - 41: TypeVector 6(bool) 4 - 44: TypePointer Output 18(fvec4) - 4(main): 2 Function None 3 - 5: Label - 30(param): 7(ptr) Variable Function - 32: 31(ptr) AccessChain 29(ubinst) 26 - 33: 19(int) Load 32 - 35: 6(bool) INotEqual 33 34 - Store 30(param) 35 - 36: 6(bool) FunctionCall 10(foo(b1;) 30(param) - 42: 41(bvec4) CompositeConstruct 36 36 36 36 - 43: 18(fvec4) Select 42 38 40 - 45: 44(ptr) AccessChain 24 26 - Store 45 43 - Return - FunctionEnd - 10(foo(b1;): 6(bool) Function None 8 - 9(b): 7(ptr) FunctionParameter - 11: Label - 12: 6(bool) Load 9(b) - 14: 6(bool) LogicalNotEqual 12 13 - ReturnValue 14 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.boolInBlock.frag.out b/deps/glslang/Test/baseResults/spv.boolInBlock.frag.out deleted file mode 100644 index 004c2040..00000000 --- a/deps/glslang/Test/baseResults/spv.boolInBlock.frag.out +++ /dev/null @@ -1,158 +0,0 @@ -spv.boolInBlock.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// 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/Test/baseResults/spv.branch-return.vert.out b/deps/glslang/Test/baseResults/spv.branch-return.vert.out deleted file mode 100644 index 30918aba..00000000 --- a/deps/glslang/Test/baseResults/spv.branch-return.vert.out +++ /dev/null @@ -1,65 +0,0 @@ -spv.branch-return.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 38 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 8 20 - Source ESSL 310 - Name 4 "main" - Name 8 "gl_InstanceIndex" - Name 18 "gl_PerVertex" - MemberName 18(gl_PerVertex) 0 "gl_Position" - MemberName 18(gl_PerVertex) 1 "gl_PointSize" - Name 20 "" - Decorate 8(gl_InstanceIndex) BuiltIn InstanceIndex - MemberDecorate 18(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 18(gl_PerVertex) 1 BuiltIn PointSize - Decorate 18(gl_PerVertex) Block - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Input 6(int) -8(gl_InstanceIndex): 7(ptr) Variable Input - 16: TypeFloat 32 - 17: TypeVector 16(float) 4 -18(gl_PerVertex): TypeStruct 17(fvec4) 16(float) - 19: TypePointer Output 18(gl_PerVertex) - 20: 19(ptr) Variable Output - 21: 6(int) Constant 0 - 22: 16(float) Constant 0 - 23: 17(fvec4) ConstantComposite 22 22 22 22 - 24: TypePointer Output 17(fvec4) - 30: 16(float) Constant 1039918957 - 31: TypeInt 32 0 - 32: 31(int) Constant 0 - 33: TypePointer Output 16(float) - 4(main): 2 Function None 3 - 5: Label - 9: 6(int) Load 8(gl_InstanceIndex) - SelectionMerge 14 None - Switch 9 14 - case 0: 10 - case 1: 11 - case 2: 12 - case 3: 13 - 10: Label - Return - 11: Label - 25: 24(ptr) AccessChain 20 21 - Store 25 23 - Branch 14 - 12: Label - Return - 13: Label - Return - 14: Label - 34: 33(ptr) AccessChain 20 21 32 - 35: 16(float) Load 34 - 36: 16(float) FAdd 35 30 - 37: 33(ptr) AccessChain 20 21 32 - Store 37 36 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.buffer.autoassign.frag.out b/deps/glslang/Test/baseResults/spv.buffer.autoassign.frag.out deleted file mode 100644 index 34752664..00000000 --- a/deps/glslang/Test/baseResults/spv.buffer.autoassign.frag.out +++ /dev/null @@ -1,93 +0,0 @@ -spv.buffer.autoassign.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// 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/Test/baseResults/spv.bufferhandle1.frag.out b/deps/glslang/Test/baseResults/spv.bufferhandle1.frag.out deleted file mode 100644 index b49c1296..00000000 --- a/deps/glslang/Test/baseResults/spv.bufferhandle1.frag.out +++ /dev/null @@ -1,104 +0,0 @@ -spv.bufferhandle1.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 52 - - Capability Shader - Capability VulkanMemoryModelKHR - Capability PhysicalStorageBufferAddressesEXT - Extension "SPV_KHR_physical_storage_buffer" - Extension "SPV_KHR_storage_buffer_storage_class" - Extension "SPV_KHR_vulkan_memory_model" - 1: ExtInstImport "GLSL.std.450" - MemoryModel PhysicalStorageBuffer64EXT VulkanKHR - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_buffer_reference" - Name 4 "main" - Name 7 "t2" - MemberName 7(t2) 0 "f" - MemberName 7(t2) 1 "g" - Name 13 "blockType" - MemberName 13(blockType) 0 "a" - MemberName 13(blockType) 1 "b" - MemberName 13(blockType) 2 "c" - MemberName 13(blockType) 3 "d" - MemberName 13(blockType) 4 "e" - MemberName 13(blockType) 5 "f" - MemberName 13(blockType) 6 "g" - Name 15 "t" - Name 28 "j" - MemberDecorate 7(t2) 0 Offset 0 - MemberDecorate 7(t2) 1 Offset 8 - Decorate 7(t2) Block - Decorate 11 ArrayStride 4 - MemberDecorate 13(blockType) 0 Offset 0 - MemberDecorate 13(blockType) 1 Offset 4 - MemberDecorate 13(blockType) 2 Offset 8 - MemberDecorate 13(blockType) 3 Offset 12 - MemberDecorate 13(blockType) 4 Offset 16 - MemberDecorate 13(blockType) 5 Offset 32 - MemberDecorate 13(blockType) 6 Offset 48 - Decorate 13(blockType) Block - Decorate 15(t) DescriptorSet 0 - Decorate 15(t) Binding 0 - Decorate 28(j) DecorationAliasedPointerEXT - 2: TypeVoid - 3: TypeFunction 2 - TypeForwardPointer 6 PhysicalStorageBufferEXT - 7(t2): TypeStruct 6 6 - 8: TypeInt 32 1 - 9: TypeInt 32 0 - 10: 9(int) Constant 2 - 11: TypeArray 8(int) 10 - 12: TypeVector 8(int) 4 - 13(blockType): TypeStruct 8(int) 8(int) 8(int) 8(int) 8(int) 11 12(ivec4) - 6: TypePointer PhysicalStorageBufferEXT 13(blockType) - 14: TypePointer StorageBuffer 7(t2) - 15(t): 14(ptr) Variable StorageBuffer - 16: 8(int) Constant 0 - 17: TypePointer StorageBuffer 6(ptr) - 20: 8(int) Constant 1 - 23: TypePointer PhysicalStorageBufferEXT 8(int) - 27: TypePointer Function 6(ptr) - 32: 8(int) Constant 3 - 34: 8(int) Constant 2 - 40: 8(int) Constant 5 - 46: 8(int) Constant 6 - 47: 9(int) Constant 1 - 50: 9(int) Constant 5 - 4(main): 2 Function None 3 - 5: Label - 28(j): 27(ptr) Variable Function - 18: 17(ptr) AccessChain 15(t) 16 - 19: 6(ptr) Load 18 - 21: 17(ptr) AccessChain 15(t) 20 - 22: 6(ptr) Load 21 - 24: 23(ptr) AccessChain 22 16 - 25: 8(int) Load 24 Aligned 16 - 26: 23(ptr) AccessChain 19 20 - Store 26 25 Aligned 4 - 29: 17(ptr) AccessChain 15(t) 16 - 30: 6(ptr) Load 29 - Store 28(j) 30 - 31: 6(ptr) Load 28(j) - 33: 6(ptr) Load 28(j) - 35: 23(ptr) AccessChain 33 34 - 36: 8(int) Load 35 Aligned 8 - 37: 23(ptr) AccessChain 31 32 - Store 37 36 Aligned 4 - 38: 6(ptr) Load 28(j) - 39: 6(ptr) Load 28(j) - 41: 23(ptr) AccessChain 39 40 20 - 42: 8(int) Load 41 Aligned 4 - 43: 23(ptr) AccessChain 38 32 - Store 43 42 Aligned 4 - 44: 6(ptr) Load 28(j) - 45: 6(ptr) Load 28(j) - 48: 23(ptr) AccessChain 45 46 47 - 49: 8(int) Load 48 Aligned MakePointerVisibleKHR NonPrivatePointerKHR 4 50 - 51: 23(ptr) AccessChain 44 32 - Store 51 49 Aligned 4 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.bufferhandle10.frag.out b/deps/glslang/Test/baseResults/spv.bufferhandle10.frag.out deleted file mode 100644 index f9ab60d2..00000000 --- a/deps/glslang/Test/baseResults/spv.bufferhandle10.frag.out +++ /dev/null @@ -1,83 +0,0 @@ -spv.bufferhandle10.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 40 - - Capability Shader - Capability VulkanMemoryModelKHR - Capability PhysicalStorageBufferAddressesEXT - Extension "SPV_KHR_physical_storage_buffer" - Extension "SPV_KHR_storage_buffer_storage_class" - Extension "SPV_KHR_vulkan_memory_model" - 1: ExtInstImport "GLSL.std.450" - MemoryModel PhysicalStorageBuffer64EXT VulkanKHR - EntryPoint Fragment 4 "main" 19 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_ARB_gpu_shader_int64" - SourceExtension "GL_EXT_buffer_reference" - Name 4 "main" - Name 7 "t2" - MemberName 7(t2) 0 "f" - Name 10 "blockType" - MemberName 10(blockType) 0 "x" - Name 12 "t" - Name 19 "i" - Name 28 "b" - Name 34 "b2" - MemberDecorate 7(t2) 0 Offset 0 - Decorate 7(t2) Block - Decorate 9 ArrayStride 4 - MemberDecorate 10(blockType) 0 Offset 0 - Decorate 10(blockType) Block - Decorate 12(t) DescriptorSet 0 - Decorate 12(t) Binding 0 - Decorate 19(i) Flat - Decorate 19(i) Location 0 - Decorate 28(b) DecorationAliasedPointerEXT - Decorate 34(b2) DecorationAliasedPointerEXT - 2: TypeVoid - 3: TypeFunction 2 - TypeForwardPointer 6 PhysicalStorageBufferEXT - 7(t2): TypeStruct 6 - 8: TypeInt 32 0 - 9: TypeRuntimeArray 8(int) - 10(blockType): TypeStruct 9 - 6: TypePointer PhysicalStorageBufferEXT 10(blockType) - 11: TypePointer StorageBuffer 7(t2) - 12(t): 11(ptr) Variable StorageBuffer - 13: TypeInt 32 1 - 14: 13(int) Constant 0 - 15: TypePointer StorageBuffer 6(ptr) - 18: TypePointer Input 8(int) - 19(i): 18(ptr) Variable Input - 21: TypePointer PhysicalStorageBufferEXT 8(int) - 23: 8(int) Constant 1 - 24: 8(int) Constant 5 - 25: 8(int) Constant 0 - 27: TypePointer Function 6(ptr) - 32: 8(int) Constant 2 - 38: 8(int) Constant 3 - 4(main): 2 Function None 3 - 5: Label - 28(b): 27(ptr) Variable Function - 34(b2): 27(ptr) Variable Function - 16: 15(ptr) AccessChain 12(t) 14 - 17: 6(ptr) Load 16 - 20: 8(int) Load 19(i) - 22: 21(ptr) AccessChain 17 14 20 - 26: 8(int) AtomicIAdd 22 24 25 23 - 29: 15(ptr) AccessChain 12(t) 14 - 30: 6(ptr) Load 29 - Store 28(b) 30 - 31: 6(ptr) Load 28(b) - 33: 21(ptr) AccessChain 31 14 14 - Store 33 32 Aligned MakePointerAvailableKHR NonPrivatePointerKHR 4 24 - 35: 15(ptr) AccessChain 12(t) 14 - 36: 6(ptr) Load 35 - Store 34(b2) 36 Volatile - 37: 6(ptr) Load 34(b2) Volatile - 39: 21(ptr) AccessChain 37 14 14 - Store 39 38 Volatile Aligned MakePointerAvailableKHR NonPrivatePointerKHR 4 24 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.bufferhandle11.frag.out b/deps/glslang/Test/baseResults/spv.bufferhandle11.frag.out deleted file mode 100644 index 9dd1c7b8..00000000 --- a/deps/glslang/Test/baseResults/spv.bufferhandle11.frag.out +++ /dev/null @@ -1,119 +0,0 @@ -spv.bufferhandle11.frag -WARNING: 0:6: '' : all default precisions are highp; use precision statements to quiet warning, e.g.: - "precision mediump int; precision highp float;" - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 61 - - Capability Shader - Capability StorageBuffer8BitAccess - Capability PhysicalStorageBufferAddressesEXT - Extension "SPV_KHR_8bit_storage" - Extension "SPV_KHR_physical_storage_buffer" - Extension "SPV_KHR_storage_buffer_storage_class" - 1: ExtInstImport "GLSL.std.450" - MemoryModel PhysicalStorageBuffer64EXT GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_buffer_reference" - SourceExtension "GL_EXT_shader_16bit_storage" - SourceExtension "GL_EXT_shader_8bit_storage" - Name 4 "main" - Name 12 "compare_uint8_t(u1;u1;" - Name 10 "a" - Name 11 "b" - Name 20 "allOk" - Name 26 "PC" - MemberName 26(PC) 0 "block" - Name 28 "Block" - MemberName 28(Block) 0 "var" - Name 30 "" - Name 41 "param" - Name 42 "param" - Name 48 "AcBlock" - MemberName 48(AcBlock) 0 "ac_numPassed" - Name 50 "" - MemberDecorate 26(PC) 0 Offset 0 - Decorate 26(PC) Block - MemberDecorate 28(Block) 0 Offset 0 - Decorate 28(Block) Block - MemberDecorate 48(AcBlock) 0 Offset 0 - Decorate 48(AcBlock) Block - Decorate 50 DescriptorSet 0 - Decorate 50 Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 8: TypeBool - 9: TypeFunction 8(bool) 7(ptr) 7(ptr) - 19: TypePointer Function 8(bool) - 21: 8(bool) ConstantTrue - TypeForwardPointer 25 PhysicalStorageBufferEXT - 26(PC): TypeStruct 25 - 27: TypeInt 8 0 - 28(Block): TypeStruct 27(int8_t) - 25: TypePointer PhysicalStorageBufferEXT 28(Block) - 29: TypePointer PushConstant 26(PC) - 30: 29(ptr) Variable PushConstant - 31: TypeInt 32 1 - 32: 31(int) Constant 0 - 33: TypePointer PushConstant 25(ptr) - 36: TypePointer PhysicalStorageBufferEXT 27(int8_t) - 40: 6(int) Constant 7 - 48(AcBlock): TypeStruct 6(int) - 49: TypePointer StorageBuffer 48(AcBlock) - 50: 49(ptr) Variable StorageBuffer - 51: TypePointer StorageBuffer 6(int) - 54: 31(int) Constant 1 - 58: 6(int) Constant 9 - 4(main): 2 Function None 3 - 5: Label - 20(allOk): 19(ptr) Variable Function - 41(param): 7(ptr) Variable Function - 42(param): 7(ptr) Variable Function - Store 20(allOk) 21 - 22: 8(bool) Load 20(allOk) - SelectionMerge 24 None - BranchConditional 22 23 24 - 23: Label - 34: 33(ptr) AccessChain 30 32 - 35: 25(ptr) Load 34 - 37: 36(ptr) AccessChain 35 32 - 38: 27(int8_t) Load 37 Aligned 16 - 39: 6(int) UConvert 38 - Store 41(param) 39 - Store 42(param) 40 - 43: 8(bool) FunctionCall 12(compare_uint8_t(u1;u1;) 41(param) 42(param) - Branch 24 - 24: Label - 44: 8(bool) Phi 22 5 43 23 - Store 20(allOk) 44 - 45: 8(bool) Load 20(allOk) - SelectionMerge 47 None - BranchConditional 45 46 47 - 46: Label - 52: 51(ptr) AccessChain 50 32 - 53: 6(int) Load 52 - 55: 6(int) IAdd 53 54 - Store 52 55 - Branch 47 - 47: Label - 56: 33(ptr) AccessChain 30 32 - 57: 25(ptr) Load 56 - 59: 27(int8_t) UConvert 58 - 60: 36(ptr) AccessChain 57 32 - Store 60 59 Aligned 16 - Return - FunctionEnd -12(compare_uint8_t(u1;u1;): 8(bool) Function None 9 - 10(a): 7(ptr) FunctionParameter - 11(b): 7(ptr) FunctionParameter - 13: Label - 14: 6(int) Load 10(a) - 15: 6(int) Load 11(b) - 16: 8(bool) IEqual 14 15 - ReturnValue 16 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.bufferhandle12.frag.out b/deps/glslang/Test/baseResults/spv.bufferhandle12.frag.out deleted file mode 100644 index 7cd5cb5e..00000000 --- a/deps/glslang/Test/baseResults/spv.bufferhandle12.frag.out +++ /dev/null @@ -1,306 +0,0 @@ -spv.bufferhandle12.frag -WARNING: 0:6: '' : all default precisions are highp; use precision statements to quiet warning, e.g.: - "precision mediump int; precision highp float;" - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 183 - - Capability Shader - Capability StorageUniformBufferBlock16 - Capability PhysicalStorageBufferAddressesEXT - Extension "SPV_KHR_16bit_storage" - Extension "SPV_KHR_physical_storage_buffer" - Extension "SPV_KHR_storage_buffer_storage_class" - 1: ExtInstImport "GLSL.std.450" - MemoryModel PhysicalStorageBuffer64EXT GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_buffer_reference" - SourceExtension "GL_EXT_shader_16bit_storage" - SourceExtension "GL_EXT_shader_8bit_storage" - Name 4 "main" - Name 12 "compare_float(f1;f1;" - Name 10 "a" - Name 11 "b" - Name 19 "compare_vec3(vf3;vf3;" - Name 17 "a" - Name 18 "b" - Name 26 "compare_mat2x3(mf23;mf23;" - Name 24 "a" - Name 25 "b" - Name 34 "compare_ivec2(vi2;vi2;" - Name 32 "a" - Name 33 "b" - Name 42 "compare_uvec3(vu3;vu3;" - Name 40 "a" - Name 41 "b" - Name 46 "compare_float16_t(f1;f1;" - Name 44 "a" - Name 45 "b" - Name 56 "param" - Name 60 "param" - Name 66 "param" - Name 70 "param" - Name 77 "param" - Name 81 "param" - Name 89 "param" - Name 92 "param" - Name 99 "param" - Name 102 "param" - Name 131 "allOk" - Name 139 "PC" - MemberName 139(PC) 0 "blockB" - MemberName 139(PC) 1 "blockC" - MemberName 139(PC) 2 "blockD" - Name 141 "BlockB" - MemberName 141(BlockB) 0 "a" - MemberName 141(BlockB) 1 "b" - Name 142 "BlockC" - MemberName 142(BlockC) 0 "c" - Name 143 "BlockD" - MemberName 143(BlockD) 0 "d" - Name 145 "" - Name 157 "param" - Name 161 "param" - Name 167 "AcBlock" - MemberName 167(AcBlock) 0 "ac_numPassed" - Name 169 "" - MemberDecorate 139(PC) 0 Offset 0 - MemberDecorate 139(PC) 1 Offset 8 - MemberDecorate 139(PC) 2 Offset 16 - Decorate 139(PC) Block - MemberDecorate 141(BlockB) 0 Offset 0 - MemberDecorate 141(BlockB) 1 Offset 8 - Decorate 141(BlockB) Block - MemberDecorate 142(BlockC) 0 ColMajor - MemberDecorate 142(BlockC) 0 RelaxedPrecision - MemberDecorate 142(BlockC) 0 Offset 0 - MemberDecorate 142(BlockC) 0 MatrixStride 16 - Decorate 142(BlockC) Block - MemberDecorate 143(BlockD) 0 RelaxedPrecision - MemberDecorate 143(BlockD) 0 Offset 0 - Decorate 143(BlockD) Block - Decorate 160 RelaxedPrecision - MemberDecorate 167(AcBlock) 0 Offset 0 - Decorate 167(AcBlock) Block - Decorate 169 DescriptorSet 0 - Decorate 169 Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypePointer Function 6(float) - 8: TypeBool - 9: TypeFunction 8(bool) 7(ptr) 7(ptr) - 14: TypeVector 6(float) 3 - 15: TypePointer Function 14(fvec3) - 16: TypeFunction 8(bool) 15(ptr) 15(ptr) - 21: TypeMatrix 14(fvec3) 2 - 22: TypePointer Function 21 - 23: TypeFunction 8(bool) 22(ptr) 22(ptr) - 28: TypeInt 32 1 - 29: TypeVector 28(int) 2 - 30: TypePointer Function 29(ivec2) - 31: TypeFunction 8(bool) 30(ptr) 30(ptr) - 36: TypeInt 32 0 - 37: TypeVector 36(int) 3 - 38: TypePointer Function 37(ivec3) - 39: TypeFunction 8(bool) 38(ptr) 38(ptr) - 52: 6(float) Constant 1028443341 - 57: 36(int) Constant 0 - 67: 36(int) Constant 1 - 78: 36(int) Constant 2 - 88: 28(int) Constant 0 - 98: 28(int) Constant 1 - 111: TypeVector 8(bool) 2 - 118: TypeVector 8(bool) 3 - 130: TypePointer Function 8(bool) - 132: 8(bool) ConstantTrue - TypeForwardPointer 136 PhysicalStorageBufferEXT - TypeForwardPointer 137 PhysicalStorageBufferEXT - TypeForwardPointer 138 PhysicalStorageBufferEXT - 139(PC): TypeStruct 136 137 138 - 140: TypeFloat 16 - 141(BlockB): TypeStruct 140(float16_t) 29(ivec2) - 136: TypePointer PhysicalStorageBufferEXT 141(BlockB) - 142(BlockC): TypeStruct 21 - 137: TypePointer PhysicalStorageBufferEXT 142(BlockC) - 143(BlockD): TypeStruct 37(ivec3) - 138: TypePointer PhysicalStorageBufferEXT 143(BlockD) - 144: TypePointer PushConstant 139(PC) - 145: 144(ptr) Variable PushConstant - 146: TypePointer PushConstant 137(ptr) - 149: 6(float) Constant 3231711232 - 150: 6(float) Constant 1065353216 - 151: 6(float) Constant 3235905536 - 152: 14(fvec3) ConstantComposite 149 150 151 - 153: 6(float) Constant 1073741824 - 154: 6(float) Constant 1090519040 - 155: 14(fvec3) ConstantComposite 150 153 154 - 156: 21 ConstantComposite 152 155 - 158: TypePointer PhysicalStorageBufferEXT 21 - 167(AcBlock): TypeStruct 36(int) - 168: TypePointer StorageBuffer 167(AcBlock) - 169: 168(ptr) Variable StorageBuffer - 170: TypePointer StorageBuffer 36(int) - 174: 28(int) Constant 2 - 175: TypePointer PushConstant 138(ptr) - 178: 36(int) Constant 8 - 179: 36(int) Constant 5 - 180: 37(ivec3) ConstantComposite 178 67 179 - 181: TypePointer PhysicalStorageBufferEXT 37(ivec3) - 4(main): 2 Function None 3 - 5: Label - 131(allOk): 130(ptr) Variable Function - 157(param): 22(ptr) Variable Function - 161(param): 22(ptr) Variable Function - Store 131(allOk) 132 - 133: 8(bool) Load 131(allOk) - SelectionMerge 135 None - BranchConditional 133 134 135 - 134: Label - 147: 146(ptr) AccessChain 145 98 - 148: 137(ptr) Load 147 - 159: 158(ptr) AccessChain 148 88 - 160: 21 Load 159 Aligned 16 - Store 157(param) 160 - Store 161(param) 156 - 162: 8(bool) FunctionCall 26(compare_mat2x3(mf23;mf23;) 157(param) 161(param) - Branch 135 - 135: Label - 163: 8(bool) Phi 133 5 162 134 - Store 131(allOk) 163 - 164: 8(bool) Load 131(allOk) - SelectionMerge 166 None - BranchConditional 164 165 166 - 165: Label - 171: 170(ptr) AccessChain 169 88 - 172: 36(int) Load 171 - 173: 36(int) IAdd 172 98 - Store 171 173 - Branch 166 - 166: Label - 176: 175(ptr) AccessChain 145 174 - 177: 138(ptr) Load 176 - 182: 181(ptr) AccessChain 177 88 - Store 182 180 Aligned 16 - Return - FunctionEnd -12(compare_float(f1;f1;): 8(bool) Function None 9 - 10(a): 7(ptr) FunctionParameter - 11(b): 7(ptr) FunctionParameter - 13: Label - 48: 6(float) Load 10(a) - 49: 6(float) Load 11(b) - 50: 6(float) FSub 48 49 - 51: 6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 50 - 53: 8(bool) FOrdLessThan 51 52 - ReturnValue 53 - FunctionEnd -19(compare_vec3(vf3;vf3;): 8(bool) Function None 16 - 17(a): 15(ptr) FunctionParameter - 18(b): 15(ptr) FunctionParameter - 20: Label - 56(param): 7(ptr) Variable Function - 60(param): 7(ptr) Variable Function - 66(param): 7(ptr) Variable Function - 70(param): 7(ptr) Variable Function - 77(param): 7(ptr) Variable Function - 81(param): 7(ptr) Variable Function - 58: 7(ptr) AccessChain 17(a) 57 - 59: 6(float) Load 58 - Store 56(param) 59 - 61: 7(ptr) AccessChain 18(b) 57 - 62: 6(float) Load 61 - Store 60(param) 62 - 63: 8(bool) FunctionCall 12(compare_float(f1;f1;) 56(param) 60(param) - SelectionMerge 65 None - BranchConditional 63 64 65 - 64: Label - 68: 7(ptr) AccessChain 17(a) 67 - 69: 6(float) Load 68 - Store 66(param) 69 - 71: 7(ptr) AccessChain 18(b) 67 - 72: 6(float) Load 71 - Store 70(param) 72 - 73: 8(bool) FunctionCall 12(compare_float(f1;f1;) 66(param) 70(param) - Branch 65 - 65: Label - 74: 8(bool) Phi 63 20 73 64 - SelectionMerge 76 None - BranchConditional 74 75 76 - 75: Label - 79: 7(ptr) AccessChain 17(a) 78 - 80: 6(float) Load 79 - Store 77(param) 80 - 82: 7(ptr) AccessChain 18(b) 78 - 83: 6(float) Load 82 - Store 81(param) 83 - 84: 8(bool) FunctionCall 12(compare_float(f1;f1;) 77(param) 81(param) - Branch 76 - 76: Label - 85: 8(bool) Phi 74 65 84 75 - ReturnValue 85 - FunctionEnd -26(compare_mat2x3(mf23;mf23;): 8(bool) Function None 23 - 24(a): 22(ptr) FunctionParameter - 25(b): 22(ptr) FunctionParameter - 27: Label - 89(param): 15(ptr) Variable Function - 92(param): 15(ptr) Variable Function - 99(param): 15(ptr) Variable Function - 102(param): 15(ptr) Variable Function - 90: 15(ptr) AccessChain 24(a) 88 - 91: 14(fvec3) Load 90 - Store 89(param) 91 - 93: 15(ptr) AccessChain 25(b) 88 - 94: 14(fvec3) Load 93 - Store 92(param) 94 - 95: 8(bool) FunctionCall 19(compare_vec3(vf3;vf3;) 89(param) 92(param) - SelectionMerge 97 None - BranchConditional 95 96 97 - 96: Label - 100: 15(ptr) AccessChain 24(a) 98 - 101: 14(fvec3) Load 100 - Store 99(param) 101 - 103: 15(ptr) AccessChain 25(b) 98 - 104: 14(fvec3) Load 103 - Store 102(param) 104 - 105: 8(bool) FunctionCall 19(compare_vec3(vf3;vf3;) 99(param) 102(param) - Branch 97 - 97: Label - 106: 8(bool) Phi 95 27 105 96 - ReturnValue 106 - FunctionEnd -34(compare_ivec2(vi2;vi2;): 8(bool) Function None 31 - 32(a): 30(ptr) FunctionParameter - 33(b): 30(ptr) FunctionParameter - 35: Label - 109: 29(ivec2) Load 32(a) - 110: 29(ivec2) Load 33(b) - 112: 111(bvec2) IEqual 109 110 - 113: 8(bool) All 112 - ReturnValue 113 - FunctionEnd -42(compare_uvec3(vu3;vu3;): 8(bool) Function None 39 - 40(a): 38(ptr) FunctionParameter - 41(b): 38(ptr) FunctionParameter - 43: Label - 116: 37(ivec3) Load 40(a) - 117: 37(ivec3) Load 41(b) - 119: 118(bvec3) IEqual 116 117 - 120: 8(bool) All 119 - ReturnValue 120 - FunctionEnd -46(compare_float16_t(f1;f1;): 8(bool) Function None 9 - 44(a): 7(ptr) FunctionParameter - 45(b): 7(ptr) FunctionParameter - 47: Label - 123: 6(float) Load 44(a) - 124: 6(float) Load 45(b) - 125: 6(float) FSub 123 124 - 126: 6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 125 - 127: 8(bool) FOrdLessThan 126 52 - ReturnValue 127 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.bufferhandle13.frag.out b/deps/glslang/Test/baseResults/spv.bufferhandle13.frag.out deleted file mode 100644 index 5ce24acd..00000000 --- a/deps/glslang/Test/baseResults/spv.bufferhandle13.frag.out +++ /dev/null @@ -1,116 +0,0 @@ -spv.bufferhandle13.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 58 - - Capability Shader - Capability PhysicalStorageBufferAddressesEXT - Extension "SPV_KHR_physical_storage_buffer" - Extension "SPV_KHR_storage_buffer_storage_class" - 1: ExtInstImport "GLSL.std.450" - MemoryModel PhysicalStorageBuffer64EXT GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_buffer_reference" - Name 4 "main" - Name 8 "t4" - MemberName 8(t4) 0 "j" - Name 11 "f1(1;" - Name 10 "y" - Name 16 "f2(1;" - Name 15 "y" - Name 19 "f3(1;" - Name 18 "y" - Name 22 "f4(1;" - Name 21 "y" - Name 34 "a" - Name 35 "t5" - MemberName 35(t5) 0 "m" - Name 37 "s5" - Name 42 "b" - Name 47 "param" - Name 52 "param" - Name 56 "g1" - Name 57 "g2" - MemberDecorate 8(t4) 0 Offset 0 - Decorate 8(t4) Block - Decorate 10(y) Aliased - Decorate 15(y) DecorationAliasedPointerEXT - Decorate 18(y) Restrict - Decorate 18(y) Restrict - Decorate 21(y) Restrict - Decorate 21(y) DecorationRestrictPointerEXT - Decorate 34(a) DecorationAliasedPointerEXT - MemberDecorate 35(t5) 0 Offset 0 - Decorate 35(t5) Block - Decorate 37(s5) DescriptorSet 0 - Decorate 37(s5) Binding 0 - Decorate 42(b) DecorationRestrictPointerEXT - Decorate 56(g1) DecorationAliasedPointerEXT - Decorate 57(g2) DecorationRestrictPointerEXT - Decorate 47(param) DecorationAliasedPointerEXT - Decorate 52(param) DecorationAliasedPointerEXT - 2: TypeVoid - 3: TypeFunction 2 - TypeForwardPointer 6 PhysicalStorageBufferEXT - 7: TypeInt 32 1 - 8(t4): TypeStruct 7(int) - 6: TypePointer PhysicalStorageBufferEXT 8(t4) - 9: TypeFunction 6(ptr) 6(ptr) - 13: TypePointer Function 6(ptr) - 14: TypeFunction 6(ptr) 13(ptr) - 35(t5): TypeStruct 6(ptr) - 36: TypePointer StorageBuffer 35(t5) - 37(s5): 36(ptr) Variable StorageBuffer - 38: 7(int) Constant 0 - 39: TypePointer StorageBuffer 6(ptr) - 55: TypePointer Private 6(ptr) - 56(g1): 55(ptr) Variable Private - 4(main): 2 Function None 3 - 5: Label - 34(a): 13(ptr) Variable Function - 42(b): 13(ptr) Variable Function - 47(param): 13(ptr) Variable Function - 52(param): 13(ptr) Variable Function - 57(g2): 13(ptr) Variable Function - 40: 39(ptr) AccessChain 37(s5) 38 - 41: 6(ptr) Load 40 - Store 34(a) 41 - 43: 39(ptr) AccessChain 37(s5) 38 - 44: 6(ptr) Load 43 - Store 42(b) 44 - 45: 6(ptr) Load 34(a) - 46: 6(ptr) FunctionCall 11(f1(1;) 45 - 48: 6(ptr) Load 34(a) - Store 47(param) 48 - 49: 6(ptr) FunctionCall 16(f2(1;) 47(param) - 50: 6(ptr) Load 34(a) - 51: 6(ptr) FunctionCall 19(f3(1;) 50 - 53: 6(ptr) Load 34(a) - Store 52(param) 53 - 54: 6(ptr) FunctionCall 22(f4(1;) 52(param) - Return - FunctionEnd - 11(f1(1;): 6(ptr) Function None 9 - 10(y): 6(ptr) FunctionParameter - 12: Label - ReturnValue 10(y) - FunctionEnd - 16(f2(1;): 6(ptr) Function None 14 - 15(y): 13(ptr) FunctionParameter - 17: Label - 26: 6(ptr) Load 15(y) - ReturnValue 26 - FunctionEnd - 19(f3(1;): 6(ptr) Function None 9 - 18(y): 6(ptr) FunctionParameter - 20: Label - ReturnValue 18(y) - FunctionEnd - 22(f4(1;): 6(ptr) Function None 14 - 21(y): 13(ptr) FunctionParameter - 23: Label - 31: 6(ptr) Load 21(y) - ReturnValue 31 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.bufferhandle14.frag.out b/deps/glslang/Test/baseResults/spv.bufferhandle14.frag.out deleted file mode 100644 index 34df7538..00000000 --- a/deps/glslang/Test/baseResults/spv.bufferhandle14.frag.out +++ /dev/null @@ -1,109 +0,0 @@ -spv.bufferhandle14.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 46 - - Capability Shader - Capability PhysicalStorageBufferAddressesEXT - Extension "SPV_KHR_physical_storage_buffer" - 1: ExtInstImport "GLSL.std.450" - MemoryModel PhysicalStorageBuffer64EXT GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_buffer_reference" - Name 4 "main" - Name 8 "T1" - MemberName 8(T1) 0 "i" - MemberName 8(T1) 1 "j" - MemberName 8(T1) 2 "k" - Name 10 "t1" - Name 20 "T2" - MemberName 20(T2) 0 "i" - MemberName 20(T2) 1 "j" - MemberName 20(T2) 2 "k" - Name 22 "t2" - Name 29 "T3" - MemberName 29(T3) 0 "i" - MemberName 29(T3) 1 "j" - MemberName 29(T3) 2 "k" - Name 31 "t3" - Name 38 "T4" - MemberName 38(T4) 0 "i" - MemberName 38(T4) 1 "j" - MemberName 38(T4) 2 "k" - Name 40 "t4" - MemberDecorate 8(T1) 0 Offset 0 - MemberDecorate 8(T1) 1 Offset 4 - MemberDecorate 8(T1) 2 Offset 8 - Decorate 8(T1) Block - Decorate 10(t1) DecorationAliasedPointerEXT - MemberDecorate 20(T2) 0 Offset 0 - MemberDecorate 20(T2) 1 Offset 4 - MemberDecorate 20(T2) 2 Offset 8 - Decorate 20(T2) Block - Decorate 22(t2) DecorationAliasedPointerEXT - MemberDecorate 29(T3) 0 Offset 0 - MemberDecorate 29(T3) 1 Offset 4 - MemberDecorate 29(T3) 2 Offset 8 - Decorate 29(T3) Block - Decorate 31(t3) DecorationAliasedPointerEXT - MemberDecorate 38(T4) 0 Offset 0 - MemberDecorate 38(T4) 1 Offset 4 - MemberDecorate 38(T4) 2 Offset 8 - Decorate 38(T4) Block - Decorate 40(t4) DecorationAliasedPointerEXT - 2: TypeVoid - 3: TypeFunction 2 - TypeForwardPointer 6 PhysicalStorageBufferEXT - 7: TypeInt 32 1 - 8(T1): TypeStruct 7(int) 7(int) 7(int) - 6: TypePointer PhysicalStorageBufferEXT 8(T1) - 9: TypePointer Function 6(ptr) - 12: 7(int) Constant 0 - 14: 7(int) Constant 2 - 15: TypePointer PhysicalStorageBufferEXT 7(int) - TypeForwardPointer 19 PhysicalStorageBufferEXT - 20(T2): TypeStruct 7(int) 7(int) 7(int) - 19: TypePointer PhysicalStorageBufferEXT 20(T2) - 21: TypePointer Function 19(ptr) - TypeForwardPointer 28 PhysicalStorageBufferEXT - 29(T3): TypeStruct 7(int) 7(int) 7(int) - 28: TypePointer PhysicalStorageBufferEXT 29(T3) - 30: TypePointer Function 28(ptr) - TypeForwardPointer 37 PhysicalStorageBufferEXT - 38(T4): TypeStruct 7(int) 7(int) 7(int) - 37: TypePointer PhysicalStorageBufferEXT 38(T4) - 39: TypePointer Function 37(ptr) - 4(main): 2 Function None 3 - 5: Label - 10(t1): 9(ptr) Variable Function - 22(t2): 21(ptr) Variable Function - 31(t3): 30(ptr) Variable Function - 40(t4): 39(ptr) Variable Function - 11: 6(ptr) Load 10(t1) - 13: 6(ptr) Load 10(t1) - 16: 15(ptr) AccessChain 13 14 - 17: 7(int) Load 16 Aligned 4 - 18: 15(ptr) AccessChain 11 12 - Store 18 17 Aligned 4 - 23: 19(ptr) Load 22(t2) - 24: 19(ptr) Load 22(t2) - 25: 15(ptr) AccessChain 24 14 - 26: 7(int) Load 25 Aligned 8 - 27: 15(ptr) AccessChain 23 12 - Store 27 26 Aligned 8 - 32: 28(ptr) Load 31(t3) - 33: 28(ptr) Load 31(t3) - 34: 15(ptr) AccessChain 33 14 - 35: 7(int) Load 34 Aligned 8 - 36: 15(ptr) AccessChain 32 12 - Store 36 35 Aligned 16 - 41: 37(ptr) Load 40(t4) - 42: 37(ptr) Load 40(t4) - 43: 15(ptr) AccessChain 42 14 - 44: 7(int) Load 43 Aligned 8 - 45: 15(ptr) AccessChain 41 12 - Store 45 44 Aligned 32 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.bufferhandle15.frag.out b/deps/glslang/Test/baseResults/spv.bufferhandle15.frag.out deleted file mode 100644 index ab1b4dba..00000000 --- a/deps/glslang/Test/baseResults/spv.bufferhandle15.frag.out +++ /dev/null @@ -1,130 +0,0 @@ -spv.bufferhandle15.frag -WARNING: 0:16: '' : 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): 8000a -// Id's are bound by 60 - - Capability Shader - Capability PhysicalStorageBufferAddressesEXT - Extension "SPV_KHR_physical_storage_buffer" - Extension "SPV_KHR_storage_buffer_storage_class" - 1: ExtInstImport "GLSL.std.450" - MemoryModel PhysicalStorageBuffer64EXT GLSL450 - EntryPoint Fragment 4 "main" 37 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_buffer_reference" - SourceExtension "GL_EXT_scalar_block_layout" - Name 4 "main" - Name 9 "y" - Name 13 "T4" - MemberName 13(T4) 0 "t1" - MemberName 13(T4) 1 "t2" - MemberName 13(T4) 2 "t3" - Name 15 "T1" - MemberName 15(T1) 0 "x" - Name 22 "T2" - MemberName 22(T2) 0 "x" - Name 28 "S" - MemberName 28(S) 0 "a" - MemberName 28(S) 1 "b" - MemberName 28(S) 2 "c" - Name 29 "T3" - MemberName 29(T3) 0 "s" - Name 31 "t4" - Name 37 "i" - Name 52 "z" - MemberDecorate 13(T4) 0 Offset 0 - MemberDecorate 13(T4) 1 Offset 8 - MemberDecorate 13(T4) 2 Offset 16 - Decorate 13(T4) Block - Decorate 14 ArrayStride 12 - MemberDecorate 15(T1) 0 Offset 0 - Decorate 15(T1) Block - Decorate 18 ArrayStride 12 - Decorate 20 ArrayStride 24 - Decorate 21 ArrayStride 96 - MemberDecorate 22(T2) 0 Offset 0 - Decorate 22(T2) Block - Decorate 26 ArrayStride 36 - MemberDecorate 28(S) 0 Offset 0 - MemberDecorate 28(S) 1 ColMajor - MemberDecorate 28(S) 1 RelaxedPrecision - MemberDecorate 28(S) 1 Offset 12 - MemberDecorate 28(S) 1 MatrixStride 12 - MemberDecorate 28(S) 2 Offset 156 - MemberDecorate 29(T3) 0 Offset 0 - Decorate 29(T3) Block - Decorate 31(t4) DescriptorSet 0 - Decorate 31(t4) Binding 0 - Decorate 37(i) Flat - Decorate 37(i) Location 0 - Decorate 59 RelaxedPrecision - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 3 - 8: TypePointer Function 7(fvec3) - TypeForwardPointer 10 PhysicalStorageBufferEXT - TypeForwardPointer 11 PhysicalStorageBufferEXT - TypeForwardPointer 12 PhysicalStorageBufferEXT - 13(T4): TypeStruct 10 11 12 - 14: TypeRuntimeArray 7(fvec3) - 15(T1): TypeStruct 14 - 10: TypePointer PhysicalStorageBufferEXT 15(T1) - 16: TypeInt 32 0 - 17: 16(int) Constant 2 - 18: TypeArray 7(fvec3) 17 - 19: 16(int) Constant 4 - 20: TypeArray 18 19 - 21: TypeRuntimeArray 20 - 22(T2): TypeStruct 21 - 11: TypePointer PhysicalStorageBufferEXT 22(T2) - 23: TypeInt 32 1 - 24: TypeVector 23(int) 3 - 25: TypeMatrix 7(fvec3) 3 - 26: TypeArray 25 19 - 27: TypeVector 6(float) 4 - 28(S): TypeStruct 24(ivec3) 26 27(fvec4) - 29(T3): TypeStruct 28(S) - 12: TypePointer PhysicalStorageBufferEXT 29(T3) - 30: TypePointer StorageBuffer 13(T4) - 31(t4): 30(ptr) Variable StorageBuffer - 32: 23(int) Constant 0 - 33: TypePointer StorageBuffer 10(ptr) - 36: TypePointer Input 23(int) - 37(i): 36(ptr) Variable Input - 39: TypePointer PhysicalStorageBufferEXT 7(fvec3) - 42: 23(int) Constant 1 - 43: TypePointer StorageBuffer 11(ptr) - 51: TypePointer Function 25 - 53: 23(int) Constant 2 - 54: TypePointer StorageBuffer 12(ptr) - 57: TypePointer PhysicalStorageBufferEXT 25 - 4(main): 2 Function None 3 - 5: Label - 9(y): 8(ptr) Variable Function - 52(z): 51(ptr) Variable Function - 34: 33(ptr) AccessChain 31(t4) 32 - 35: 10(ptr) Load 34 - 38: 23(int) Load 37(i) - 40: 39(ptr) AccessChain 35 32 38 - 41: 7(fvec3) Load 40 Aligned 4 - Store 9(y) 41 - 44: 43(ptr) AccessChain 31(t4) 42 - 45: 11(ptr) Load 44 - 46: 23(int) Load 37(i) - 47: 23(int) Load 37(i) - 48: 23(int) Load 37(i) - 49: 39(ptr) AccessChain 45 32 46 47 48 - 50: 7(fvec3) Load 49 Aligned 4 - Store 9(y) 50 - 55: 54(ptr) AccessChain 31(t4) 53 - 56: 12(ptr) Load 55 - 58: 57(ptr) AccessChain 56 32 42 32 - 59: 25 Load 58 Aligned 4 - Store 52(z) 59 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.bufferhandle16.frag.out b/deps/glslang/Test/baseResults/spv.bufferhandle16.frag.out deleted file mode 100644 index a9d9dcf2..00000000 --- a/deps/glslang/Test/baseResults/spv.bufferhandle16.frag.out +++ /dev/null @@ -1,92 +0,0 @@ -spv.bufferhandle16.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 48 - - Capability Shader - Capability Int64 - Capability PhysicalStorageBufferAddressesEXT - Extension "SPV_KHR_physical_storage_buffer" - 1: ExtInstImport "GLSL.std.450" - MemoryModel PhysicalStorageBuffer64EXT GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_buffer_reference" - SourceExtension "GL_EXT_scalar_block_layout" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int64" - Name 4 "main" - Name 9 "T1" - MemberName 9(T1) 0 "x" - MemberName 9(T1) 1 "y" - Name 11 "a" - Name 15 "b" - Name 18 "c" - Name 24 "d" - Name 26 "e" - Name 29 "f" - Name 46 "x" - MemberDecorate 9(T1) 0 Offset 0 - MemberDecorate 9(T1) 1 Offset 4 - Decorate 9(T1) Block - Decorate 11(a) DecorationAliasedPointerEXT - Decorate 15(b) DecorationAliasedPointerEXT - Decorate 18(c) DecorationAliasedPointerEXT - Decorate 24(d) DecorationAliasedPointerEXT - Decorate 26(e) DecorationAliasedPointerEXT - Decorate 29(f) DecorationAliasedPointerEXT - 2: TypeVoid - 3: TypeFunction 2 - TypeForwardPointer 6 PhysicalStorageBufferEXT - 7: TypeInt 32 1 - 8: TypeInt 32 0 - 9(T1): TypeStruct 7(int) 8(int) - 6: TypePointer PhysicalStorageBufferEXT 9(T1) - 10: TypePointer Function 6(ptr) - 12: TypeInt 64 0 - 13: 12(int64_t) Constant 4 0 - 16: 12(int64_t) Constant 5 0 - 19: TypeBool - 20: 19(bool) ConstantTrue - 27: 12(int64_t) Constant 6 0 - 31: 7(int) Constant 1 - 32: TypePointer PhysicalStorageBufferEXT 8(int) - 35: 8(int) Constant 0 - 37: 12(int64_t) Constant 8 0 - 39: 12(int64_t) Constant 9 0 - 42: 7(int) Constant 3 - 43: 8(int) Constant 3 - 44: TypeArray 7(int) 43 - 45: TypePointer Private 44 - 46(x): 45(ptr) Variable Private - 47: 12(int64_t) Constant 10 0 - 4(main): 2 Function None 3 - 5: Label - 11(a): 10(ptr) Variable Function - 15(b): 10(ptr) Variable Function - 18(c): 10(ptr) Variable Function - 24(d): 10(ptr) Variable Function - 26(e): 10(ptr) Variable Function - 29(f): 10(ptr) Variable Function - 14: 6(ptr) Bitcast 13 - Store 11(a) 14 - 17: 6(ptr) Bitcast 16 - Store 15(b) 17 - 21: 6(ptr) Load 11(a) - 22: 6(ptr) Load 15(b) - 23: 6(ptr) Select 20 21 22 - Store 18(c) 23 - 25: 6(ptr) Load 15(b) - Store 24(d) 25 - 28: 6(ptr) Bitcast 27 - Store 26(e) 28 - 30: 6(ptr) Load 11(a) - 33: 32(ptr) AccessChain 30 31 - 34: 8(int) Load 33 Aligned 4 - 36: 19(bool) INotEqual 34 35 - 38: 6(ptr) Bitcast 37 - 40: 6(ptr) Bitcast 39 - 41: 6(ptr) Select 36 38 40 - Store 29(f) 41 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.bufferhandle17_Errors.frag.out b/deps/glslang/Test/baseResults/spv.bufferhandle17_Errors.frag.out deleted file mode 100644 index 9c7ddf93..00000000 --- a/deps/glslang/Test/baseResults/spv.bufferhandle17_Errors.frag.out +++ /dev/null @@ -1,13 +0,0 @@ -spv.bufferhandle17_Errors.frag -ERROR: 0:11: 'qualifier' : variables with reference type can't have qualifier 'const' -ERROR: 0:16: 'qualifier' : variables with reference type can't have qualifier 'const' -ERROR: 0:18: '==' : can't use with reference types -ERROR: 0:18: 'buffer reference math' : required extension not requested: GL_EXT_buffer_reference2 -ERROR: 0:18: '==' : wrong operand types: no operation '==' exists that takes a left-hand operand of type ' temp reference' and a right operand of type ' temp reference' (or there is no acceptable conversion) -ERROR: 0:19: '!=' : can't use with reference types -ERROR: 0:19: 'buffer reference math' : required extension not requested: GL_EXT_buffer_reference2 -ERROR: 0:19: '!=' : wrong operand types: no operation '!=' exists that takes a left-hand operand of type ' temp reference' and a right operand of type ' temp reference' (or there is no acceptable conversion) -ERROR: 8 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.bufferhandle18.frag.out b/deps/glslang/Test/baseResults/spv.bufferhandle18.frag.out deleted file mode 100644 index 59ad6d02..00000000 --- a/deps/glslang/Test/baseResults/spv.bufferhandle18.frag.out +++ /dev/null @@ -1,274 +0,0 @@ -spv.bufferhandle18.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 196 - - Capability Shader - Capability Int64 - Capability PhysicalStorageBufferAddressesEXT - Extension "SPV_KHR_physical_storage_buffer" - 1: ExtInstImport "GLSL.std.450" - MemoryModel PhysicalStorageBuffer64EXT GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_buffer_reference" - SourceExtension "GL_EXT_buffer_reference2" - SourceExtension "GL_EXT_scalar_block_layout" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int64" - Name 4 "main" - Name 9 "T1" - MemberName 9(T1) 0 "x" - MemberName 9(T1) 1 "y" - Name 11 "a" - Name 15 "b" - Name 18 "c" - Name 24 "d" - Name 26 "e" - Name 29 "f" - Name 59 "arr" - Name 71 "i" - Name 130 "j" - Name 153 "k" - Name 160 "x" - Name 171 "y" - Name 178 "T2" - MemberName 178(T2) 0 "x" - Name 180 "m" - Name 190 "x" - Name 195 "buf" - MemberDecorate 9(T1) 0 Offset 0 - MemberDecorate 9(T1) 1 Offset 4 - Decorate 9(T1) Block - Decorate 11(a) DecorationAliasedPointerEXT - Decorate 15(b) DecorationAliasedPointerEXT - Decorate 18(c) DecorationAliasedPointerEXT - Decorate 24(d) DecorationAliasedPointerEXT - Decorate 26(e) DecorationAliasedPointerEXT - Decorate 29(f) DecorationAliasedPointerEXT - Decorate 59(arr) DecorationAliasedPointerEXT - Decorate 130(j) DecorationAliasedPointerEXT - Decorate 153(k) DecorationAliasedPointerEXT - MemberDecorate 178(T2) 0 Offset 0 - Decorate 178(T2) Block - Decorate 180(m) DecorationAliasedPointerEXT - 2: TypeVoid - 3: TypeFunction 2 - TypeForwardPointer 6 PhysicalStorageBufferEXT - 7: TypeInt 32 1 - 8: TypeInt 32 0 - 9(T1): TypeStruct 7(int) 8(int) - 6: TypePointer PhysicalStorageBufferEXT 9(T1) - 10: TypePointer Function 6(ptr) - 12: TypeInt 64 0 - 13: 12(int64_t) Constant 4 0 - 16: 12(int64_t) Constant 5 0 - 19: TypeBool - 20: 19(bool) ConstantTrue - 27: 12(int64_t) Constant 6 0 - 31: 7(int) Constant 1 - 32: TypePointer PhysicalStorageBufferEXT 8(int) - 35: 8(int) Constant 0 - 37: 12(int64_t) Constant 8 0 - 39: 12(int64_t) Constant 9 0 - 44: 12(int64_t) Constant 24 0 - 47: 7(int) Constant 0 - 48: TypePointer PhysicalStorageBufferEXT 7(int) - 52: 12(int64_t) Constant 40 0 - 56: 8(int) Constant 2 - 57: TypeArray 6(ptr) 56 - 58: TypePointer Function 57 - 66: 12(int64_t) Constant 56 0 - 70: TypePointer Function 7(int) - 77: TypeInt 64 1 - 137: 12(int64_t) Constant 16 0 - 146: 12(int64_t) Constant 32 0 - 156: 12(int64_t) Constant 48 0 - 159: TypePointer Function 77(int64_t) - 168: 77(int64_t) Constant 8 0 - 170: TypePointer Function 12(int64_t) - 174: 12(int64_t) Constant 4294967288 4294967295 - TypeForwardPointer 177 PhysicalStorageBufferEXT - 178(T2): TypeStruct 7(int) - 177: TypePointer PhysicalStorageBufferEXT 178(T2) - 179: TypePointer Function 177(ptr) - 183: 12(int64_t) Constant 64 0 - 186: 7(int) Constant 3 - 187: 8(int) Constant 3 - 188: TypeArray 7(int) 187 - 189: TypePointer Private 188 - 190(x): 189(ptr) Variable Private - 191: 12(int64_t) Constant 10 0 - 192: 8(int) Constant 8 - 193: TypeArray 8(int) 192 - 194: TypePointer Private 193 - 195(buf): 194(ptr) Variable Private - 4(main): 2 Function None 3 - 5: Label - 11(a): 10(ptr) Variable Function - 15(b): 10(ptr) Variable Function - 18(c): 10(ptr) Variable Function - 24(d): 10(ptr) Variable Function - 26(e): 10(ptr) Variable Function - 29(f): 10(ptr) Variable Function - 59(arr): 58(ptr) Variable Function - 71(i): 70(ptr) Variable Function - 130(j): 10(ptr) Variable Function - 153(k): 10(ptr) Variable Function - 160(x): 159(ptr) Variable Function - 171(y): 170(ptr) Variable Function - 180(m): 179(ptr) Variable Function - 14: 6(ptr) Bitcast 13 - Store 11(a) 14 - 17: 6(ptr) Bitcast 16 - Store 15(b) 17 - 21: 6(ptr) Load 11(a) - 22: 6(ptr) Load 15(b) - 23: 6(ptr) Select 20 21 22 - Store 18(c) 23 - 25: 6(ptr) Load 15(b) - Store 24(d) 25 - 28: 6(ptr) Bitcast 27 - Store 26(e) 28 - 30: 6(ptr) Load 11(a) - 33: 32(ptr) AccessChain 30 31 - 34: 8(int) Load 33 Aligned 4 - 36: 19(bool) INotEqual 34 35 - 38: 6(ptr) Bitcast 37 - 40: 6(ptr) Bitcast 39 - 41: 6(ptr) Select 36 38 40 - Store 29(f) 41 - 42: 6(ptr) Load 29(f) - 43: 12(int64_t) ConvertPtrToU 42 - 45: 12(int64_t) IAdd 43 44 - 46: 6(ptr) ConvertUToPtr 45 - 49: 48(ptr) AccessChain 46 47 - Store 49 31 Aligned 8 - 50: 6(ptr) Load 29(f) - 51: 12(int64_t) ConvertPtrToU 50 - 53: 12(int64_t) IAdd 51 52 - 54: 6(ptr) ConvertUToPtr 53 - 55: 48(ptr) AccessChain 54 47 - Store 55 31 Aligned 8 - 60: 6(ptr) Load 11(a) - 61: 6(ptr) Load 29(f) - 62: 57 CompositeConstruct 60 61 - Store 59(arr) 62 - 63: 10(ptr) AccessChain 59(arr) 31 - 64: 6(ptr) Load 63 - 65: 12(int64_t) ConvertPtrToU 64 - 67: 12(int64_t) IAdd 65 66 - 68: 6(ptr) ConvertUToPtr 67 - 69: 48(ptr) AccessChain 68 47 - Store 69 31 Aligned 8 - 72: 7(int) Load 71(i) - 73: 10(ptr) AccessChain 59(arr) 72 - 74: 6(ptr) Load 73 - 75: 12(int64_t) ConvertPtrToU 74 - 76: 7(int) Load 71(i) - 78: 77(int64_t) SConvert 76 - 79: 12(int64_t) Bitcast 78 - 80: 12(int64_t) IMul 79 37 - 81: 12(int64_t) IAdd 75 80 - 82: 6(ptr) ConvertUToPtr 81 - 83: 48(ptr) AccessChain 82 47 - Store 83 31 Aligned 8 - 84: 7(int) Load 71(i) - 85: 10(ptr) AccessChain 59(arr) 84 - 86: 6(ptr) Load 85 - 87: 12(int64_t) ConvertPtrToU 86 - 88: 7(int) Load 71(i) - 89: 77(int64_t) SConvert 88 - 90: 12(int64_t) Bitcast 89 - 91: 12(int64_t) IMul 90 37 - 92: 12(int64_t) IAdd 87 91 - 93: 6(ptr) ConvertUToPtr 92 - 94: 12(int64_t) ConvertPtrToU 93 - 95: 7(int) Load 71(i) - 96: 77(int64_t) SConvert 95 - 97: 12(int64_t) Bitcast 96 - 98: 12(int64_t) IMul 97 37 - 99: 12(int64_t) IAdd 94 98 - 100: 6(ptr) ConvertUToPtr 99 - 101: 12(int64_t) ConvertPtrToU 100 - 102: 7(int) Load 71(i) - 103: 77(int64_t) SConvert 102 - 104: 12(int64_t) Bitcast 103 - 105: 12(int64_t) IMul 104 37 - 106: 12(int64_t) IAdd 101 105 - 107: 6(ptr) ConvertUToPtr 106 - 108: 12(int64_t) ConvertPtrToU 107 - 109: 7(int) Load 71(i) - 110: 77(int64_t) SConvert 109 - 111: 12(int64_t) Bitcast 110 - 112: 12(int64_t) IMul 111 37 - 113: 12(int64_t) IAdd 108 112 - 114: 6(ptr) ConvertUToPtr 113 - 115: 12(int64_t) ConvertPtrToU 114 - 116: 7(int) Load 71(i) - 117: 77(int64_t) SConvert 116 - 118: 12(int64_t) Bitcast 117 - 119: 12(int64_t) IMul 118 37 - 120: 12(int64_t) IAdd 115 119 - 121: 6(ptr) ConvertUToPtr 120 - 122: 12(int64_t) ConvertPtrToU 121 - 123: 7(int) Load 71(i) - 124: 77(int64_t) SConvert 123 - 125: 12(int64_t) Bitcast 124 - 126: 12(int64_t) IMul 125 37 - 127: 12(int64_t) IAdd 122 126 - 128: 6(ptr) ConvertUToPtr 127 - 129: 48(ptr) AccessChain 128 47 - Store 129 31 Aligned 8 - 131: 6(ptr) Load 130(j) - 132: 12(int64_t) ConvertPtrToU 131 - 133: 12(int64_t) IAdd 132 37 - 134: 6(ptr) ConvertUToPtr 133 - Store 130(j) 134 - 135: 6(ptr) Load 130(j) - 136: 12(int64_t) ConvertPtrToU 135 - 138: 12(int64_t) ISub 136 137 - 139: 6(ptr) ConvertUToPtr 138 - Store 130(j) 139 - 140: 6(ptr) Load 130(j) - 141: 12(int64_t) ConvertPtrToU 140 - 142: 12(int64_t) IAdd 141 44 - 143: 6(ptr) ConvertUToPtr 142 - Store 130(j) 143 - 144: 6(ptr) Load 130(j) - 145: 12(int64_t) ConvertPtrToU 144 - 147: 12(int64_t) ISub 145 146 - 148: 6(ptr) ConvertUToPtr 147 - Store 130(j) 148 - 149: 6(ptr) Load 130(j) - 150: 12(int64_t) ConvertPtrToU 149 - 151: 12(int64_t) IAdd 52 150 - 152: 6(ptr) ConvertUToPtr 151 - Store 130(j) 152 - 154: 6(ptr) Load 130(j) - 155: 12(int64_t) ConvertPtrToU 154 - 157: 12(int64_t) IAdd 155 156 - 158: 6(ptr) ConvertUToPtr 157 - Store 153(k) 158 - 161: 6(ptr) Load 153(k) - 162: 12(int64_t) ConvertPtrToU 161 - 163: 77(int64_t) Bitcast 162 - 164: 6(ptr) Load 130(j) - 165: 12(int64_t) ConvertPtrToU 164 - 166: 77(int64_t) Bitcast 165 - 167: 77(int64_t) ISub 163 166 - 169: 77(int64_t) SDiv 167 168 - Store 160(x) 169 - Store 171(y) 37 - 172: 6(ptr) Load 153(k) - 173: 12(int64_t) ConvertPtrToU 172 - 175: 12(int64_t) IAdd 173 174 - 176: 6(ptr) ConvertUToPtr 175 - Store 153(k) 176 - 181: 177(ptr) Load 180(m) - 182: 12(int64_t) ConvertPtrToU 181 - 184: 12(int64_t) IAdd 182 183 - 185: 177(ptr) ConvertUToPtr 184 - Store 180(m) 185 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.bufferhandle19_Errors.frag.out b/deps/glslang/Test/baseResults/spv.bufferhandle19_Errors.frag.out deleted file mode 100644 index 930e5a4f..00000000 --- a/deps/glslang/Test/baseResults/spv.bufferhandle19_Errors.frag.out +++ /dev/null @@ -1,17 +0,0 @@ -spv.bufferhandle19_Errors.frag -ERROR: 0:18: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type ' temp reference' and a right operand of type ' const int' (or there is no acceptable conversion) -ERROR: 0:19: '-' : wrong operand types: no operation '-' exists that takes a left-hand operand of type ' temp reference' and a right operand of type ' const int' (or there is no acceptable conversion) -ERROR: 0:20: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type ' const int' and a right operand of type ' temp reference' (or there is no acceptable conversion) -ERROR: 0:21: '-' : wrong operand types: no operation '-' exists that takes a left-hand operand of type ' temp reference' and a right operand of type ' temp reference' (or there is no acceptable conversion) -ERROR: 0:22: 'assign' : cannot convert from ' const int' to ' temp reference' -ERROR: 0:23: 'assign' : cannot convert from ' const int' to ' temp reference' -ERROR: 0:24: 'assign' : cannot convert from ' temp reference' to ' temp reference' -ERROR: 0:25: 'assign' : cannot convert from ' temp reference' to ' temp reference' -ERROR: 0:28: 'assign' : cannot convert from ' temp reference' to ' temp reference' -ERROR: 0:29: 'assign' : cannot convert from ' temp reference' to ' temp reference' -ERROR: 0:30: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type ' temp reference' and a right operand of type ' temp reference' (or there is no acceptable conversion) -ERROR: 0:31: '-' : wrong operand types: no operation '-' exists that takes a left-hand operand of type ' const int' and a right operand of type ' temp reference' (or there is no acceptable conversion) -ERROR: 12 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.bufferhandle2.frag.out b/deps/glslang/Test/baseResults/spv.bufferhandle2.frag.out deleted file mode 100644 index e20f3b7f..00000000 --- a/deps/glslang/Test/baseResults/spv.bufferhandle2.frag.out +++ /dev/null @@ -1,94 +0,0 @@ -spv.bufferhandle2.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 45 - - Capability Shader - Capability PhysicalStorageBufferAddressesEXT - Extension "SPV_KHR_physical_storage_buffer" - Extension "SPV_KHR_storage_buffer_storage_class" - 1: ExtInstImport "GLSL.std.450" - MemoryModel PhysicalStorageBuffer64EXT GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_buffer_reference" - Name 4 "main" - Name 8 "blockType" - MemberName 8(blockType) 0 "a" - MemberName 8(blockType) 1 "b" - MemberName 8(blockType) 2 "c" - MemberName 8(blockType) 3 "d" - MemberName 8(blockType) 4 "e" - Name 13 "b1" - Name 14 "t2" - MemberName 14(t2) 0 "f" - MemberName 14(t2) 1 "g" - Name 16 "t" - Name 34 "b2" - Name 37 "b3" - MemberDecorate 8(blockType) 0 Offset 0 - MemberDecorate 8(blockType) 1 Offset 4 - MemberDecorate 8(blockType) 2 Offset 8 - MemberDecorate 8(blockType) 3 Offset 12 - MemberDecorate 8(blockType) 4 Offset 16 - Decorate 8(blockType) Block - Decorate 13(b1) DecorationAliasedPointerEXT - MemberDecorate 14(t2) 0 Offset 0 - MemberDecorate 14(t2) 1 Offset 8 - Decorate 14(t2) Block - Decorate 16(t) DescriptorSet 0 - Decorate 16(t) Binding 0 - Decorate 34(b2) DecorationAliasedPointerEXT - Decorate 37(b3) DecorationAliasedPointerEXT - 2: TypeVoid - 3: TypeFunction 2 - TypeForwardPointer 6 PhysicalStorageBufferEXT - 7: TypeInt 32 1 - 8(blockType): TypeStruct 7(int) 7(int) 7(int) 7(int) 7(int) - 6: TypePointer PhysicalStorageBufferEXT 8(blockType) - 9: TypeInt 32 0 - 10: 9(int) Constant 2 - 11: TypeArray 6(ptr) 10 - 12: TypePointer Function 11 - 14(t2): TypeStruct 6(ptr) 6(ptr) - 15: TypePointer StorageBuffer 14(t2) - 16(t): 15(ptr) Variable StorageBuffer - 17: 7(int) Constant 0 - 18: TypePointer StorageBuffer 6(ptr) - 21: 7(int) Constant 1 - 25: TypePointer Function 6(ptr) - 30: TypePointer PhysicalStorageBufferEXT 7(int) - 4(main): 2 Function None 3 - 5: Label - 13(b1): 12(ptr) Variable Function - 34(b2): 25(ptr) Variable Function - 37(b3): 25(ptr) Variable Function - 19: 18(ptr) AccessChain 16(t) 17 - 20: 6(ptr) Load 19 - 22: 18(ptr) AccessChain 16(t) 21 - 23: 6(ptr) Load 22 - 24: 11 CompositeConstruct 20 23 - Store 13(b1) 24 - 26: 25(ptr) AccessChain 13(b1) 17 - 27: 6(ptr) Load 26 - 28: 25(ptr) AccessChain 13(b1) 21 - 29: 6(ptr) Load 28 - 31: 30(ptr) AccessChain 29 21 - 32: 7(int) Load 31 Aligned 4 - 33: 30(ptr) AccessChain 27 17 - Store 33 32 Aligned 16 - 35: 18(ptr) AccessChain 16(t) 17 - 36: 6(ptr) Load 35 - Store 34(b2) 36 - 38: 18(ptr) AccessChain 16(t) 21 - 39: 6(ptr) Load 38 - Store 37(b3) 39 - 40: 6(ptr) Load 34(b2) - 41: 6(ptr) Load 37(b3) - 42: 30(ptr) AccessChain 41 21 - 43: 7(int) Load 42 Aligned 4 - 44: 30(ptr) AccessChain 40 17 - Store 44 43 Aligned 16 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.bufferhandle3.frag.out b/deps/glslang/Test/baseResults/spv.bufferhandle3.frag.out deleted file mode 100644 index 65ad1ca6..00000000 --- a/deps/glslang/Test/baseResults/spv.bufferhandle3.frag.out +++ /dev/null @@ -1,106 +0,0 @@ -spv.bufferhandle3.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 50 - - Capability Shader - Capability PhysicalStorageBufferAddressesEXT - Extension "SPV_KHR_physical_storage_buffer" - Extension "SPV_KHR_storage_buffer_storage_class" - 1: ExtInstImport "GLSL.std.450" - MemoryModel PhysicalStorageBuffer64EXT GLSL450 - EntryPoint Fragment 4 "main" 42 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_buffer_reference" - Name 4 "main" - Name 9 "t4" - MemberName 9(t4) 0 "j" - MemberName 9(t4) 1 "k" - Name 10 "t3" - MemberName 10(t3) 0 "h" - Name 14 "foo(1;" - Name 13 "y" - Name 19 "t5" - MemberName 19(t5) 0 "m" - Name 21 "s5" - Name 23 "param" - Name 38 "t4" - MemberName 38(t4) 0 "j" - MemberName 38(t4) 1 "k" - Name 40 "x" - Name 42 "k" - MemberDecorate 9(t4) 0 Offset 0 - MemberDecorate 9(t4) 1 Offset 8 - Decorate 9(t4) Block - MemberDecorate 10(t3) 0 Offset 0 - Decorate 10(t3) Block - Decorate 13(y) DecorationAliasedPointerEXT - MemberDecorate 19(t5) 0 Offset 0 - Decorate 19(t5) Block - Decorate 21(s5) DescriptorSet 0 - Decorate 21(s5) Binding 0 - MemberDecorate 38(t4) 0 Offset 0 - MemberDecorate 38(t4) 1 Offset 8 - Decorate 38(t4) Block - Decorate 40(x) DescriptorSet 1 - Decorate 40(x) Binding 2 - Decorate 42(k) Flat - Decorate 42(k) Location 0 - Decorate 42(k) DecorationAliasedPointerEXT - Decorate 23(param) DecorationAliasedPointerEXT - 2: TypeVoid - 3: TypeFunction 2 - TypeForwardPointer 6 PhysicalStorageBufferEXT - 7: TypeInt 32 1 - TypeForwardPointer 8 PhysicalStorageBufferEXT - 9(t4): TypeStruct 7(int) 8 - 10(t3): TypeStruct 7(int) - 8: TypePointer PhysicalStorageBufferEXT 10(t3) - 6: TypePointer PhysicalStorageBufferEXT 9(t4) - 11: TypePointer Function 6(ptr) - 12: TypeFunction 6(ptr) 11(ptr) - 19(t5): TypeStruct 6(ptr) - 20: TypePointer StorageBuffer 19(t5) - 21(s5): 20(ptr) Variable StorageBuffer - 22: 7(int) Constant 0 - 24: TypePointer StorageBuffer 6(ptr) - 30: 7(int) Constant 1 - 31: TypePointer PhysicalStorageBufferEXT 8(ptr) - 34: TypePointer PhysicalStorageBufferEXT 7(int) - 38(t4): TypeStruct 7(int) 8(ptr) - 39: TypePointer StorageBuffer 38(t4) - 40(x): 39(ptr) Variable StorageBuffer - 41: TypePointer Input 6(ptr) - 42(k): 41(ptr) Variable Input - 48: TypePointer StorageBuffer 7(int) - 4(main): 2 Function None 3 - 5: Label - 23(param): 11(ptr) Variable Function - 25: 24(ptr) AccessChain 21(s5) 22 - 26: 6(ptr) Load 25 - Store 23(param) 26 - 27: 6(ptr) FunctionCall 14(foo(1;) 23(param) - 28: 24(ptr) AccessChain 21(s5) 22 - 29: 6(ptr) Load 28 - 32: 31(ptr) AccessChain 29 30 - 33: 8(ptr) Load 32 Aligned 8 - 35: 34(ptr) AccessChain 33 22 - 36: 7(int) Load 35 Aligned 16 - 37: 34(ptr) AccessChain 27 22 - Store 37 36 Aligned 16 - 43: 6(ptr) Load 42(k) - 44: 31(ptr) AccessChain 43 30 - 45: 8(ptr) Load 44 Aligned 8 - 46: 34(ptr) AccessChain 45 22 - 47: 7(int) Load 46 Aligned 16 - 49: 48(ptr) AccessChain 40(x) 22 - Store 49 47 - Return - FunctionEnd - 14(foo(1;): 6(ptr) Function None 12 - 13(y): 11(ptr) FunctionParameter - 15: Label - 16: 6(ptr) Load 13(y) - ReturnValue 16 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.bufferhandle4.frag.out b/deps/glslang/Test/baseResults/spv.bufferhandle4.frag.out deleted file mode 100644 index e06bca4e..00000000 --- a/deps/glslang/Test/baseResults/spv.bufferhandle4.frag.out +++ /dev/null @@ -1,118 +0,0 @@ -spv.bufferhandle4.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 61 - - Capability Shader - Capability PhysicalStorageBufferAddressesEXT - Extension "SPV_KHR_physical_storage_buffer" - Extension "SPV_KHR_storage_buffer_storage_class" - 1: ExtInstImport "GLSL.std.450" - MemoryModel PhysicalStorageBuffer64EXT GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_buffer_reference" - Name 4 "main" - Name 8 "t4" - MemberName 8(t4) 0 "j" - MemberName 8(t4) 1 "k" - Name 10 "t3" - MemberName 10(t3) 0 "h" - MemberName 10(t3) 1 "i" - Name 11 "t4" - MemberName 11(t4) 0 "j" - MemberName 11(t4) 1 "k" - Name 13 "x" - Name 19 "t5" - MemberName 19(t5) 0 "m" - Name 21 "s5" - Name 43 "b" - MemberDecorate 8(t4) 0 Offset 0 - MemberDecorate 8(t4) 1 Offset 8 - Decorate 8(t4) Block - MemberDecorate 10(t3) 0 Offset 0 - MemberDecorate 10(t3) 1 Offset 8 - Decorate 10(t3) Block - MemberDecorate 11(t4) 0 Offset 0 - MemberDecorate 11(t4) 1 Offset 8 - Decorate 11(t4) Block - Decorate 13(x) DescriptorSet 1 - Decorate 13(x) Binding 2 - MemberDecorate 19(t5) 0 Offset 0 - Decorate 19(t5) Block - Decorate 21(s5) DescriptorSet 0 - Decorate 21(s5) Binding 0 - Decorate 47 DecorationAliasedPointerEXT - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - TypeForwardPointer 7 PhysicalStorageBufferEXT - 8(t4): TypeStruct 6(int) 7 - TypeForwardPointer 9 PhysicalStorageBufferEXT - 10(t3): TypeStruct 6(int) 9 - 11(t4): TypeStruct 6(int) 7 - 9: TypePointer PhysicalStorageBufferEXT 11(t4) - 7: TypePointer PhysicalStorageBufferEXT 10(t3) - 12: TypePointer StorageBuffer 8(t4) - 13(x): 12(ptr) Variable StorageBuffer - 14: 6(int) Constant 1 - 15: TypePointer StorageBuffer 7(ptr) - 18: 6(int) Constant 0 - 19(t5): TypeStruct 9(ptr) - 20: TypePointer StorageBuffer 19(t5) - 21(s5): 20(ptr) Variable StorageBuffer - 22: TypePointer StorageBuffer 9(ptr) - 25: TypePointer PhysicalStorageBufferEXT 7(ptr) - 28: TypePointer PhysicalStorageBufferEXT 9(ptr) - 37: TypePointer PhysicalStorageBufferEXT 6(int) - 41: TypeBool - 42: TypePointer Function 41(bool) - 44: 41(bool) ConstantTrue - 46: TypePointer Function 9(ptr) - 4(main): 2 Function None 3 - 5: Label - 43(b): 42(ptr) Variable Function - 47: 46(ptr) Variable Function - 16: 15(ptr) AccessChain 13(x) 14 - 17: 7(ptr) Load 16 - 23: 22(ptr) AccessChain 21(s5) 18 - 24: 9(ptr) Load 23 - 26: 25(ptr) AccessChain 24 14 - 27: 7(ptr) Load 26 Aligned 8 - 29: 28(ptr) AccessChain 27 14 - 30: 9(ptr) Load 29 Aligned 8 - 31: 25(ptr) AccessChain 30 14 - 32: 7(ptr) Load 31 Aligned 8 - 33: 28(ptr) AccessChain 32 14 - 34: 9(ptr) Load 33 Aligned 8 - 35: 25(ptr) AccessChain 34 14 - 36: 7(ptr) Load 35 Aligned 8 - 38: 37(ptr) AccessChain 36 18 - 39: 6(int) Load 38 Aligned 16 - 40: 37(ptr) AccessChain 17 18 - Store 40 39 Aligned 16 - Store 43(b) 44 - 45: 41(bool) Load 43(b) - SelectionMerge 49 None - BranchConditional 45 48 52 - 48: Label - 50: 22(ptr) AccessChain 21(s5) 18 - 51: 9(ptr) Load 50 - Store 47 51 - Branch 49 - 52: Label - 53: 22(ptr) AccessChain 21(s5) 18 - 54: 9(ptr) Load 53 - 55: 25(ptr) AccessChain 54 14 - 56: 7(ptr) Load 55 Aligned 8 - 57: 28(ptr) AccessChain 56 14 - 58: 9(ptr) Load 57 Aligned 8 - Store 47 58 - Branch 49 - 49: Label - 59: 9(ptr) Load 47 - 60: 22(ptr) AccessChain 21(s5) 18 - Store 60 59 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.bufferhandle5.frag.out b/deps/glslang/Test/baseResults/spv.bufferhandle5.frag.out deleted file mode 100644 index bf4d3a2a..00000000 --- a/deps/glslang/Test/baseResults/spv.bufferhandle5.frag.out +++ /dev/null @@ -1,52 +0,0 @@ -spv.bufferhandle5.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 22 - - Capability Shader - Capability PhysicalStorageBufferAddressesEXT - Extension "SPV_KHR_physical_storage_buffer" - 1: ExtInstImport "GLSL.std.450" - MemoryModel PhysicalStorageBuffer64EXT GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_buffer_reference" - Name 4 "main" - Name 8 "t4" - MemberName 8(t4) 0 "j" - MemberName 8(t4) 1 "k" - Name 9 "t3" - MemberName 9(t3) 0 "h" - Name 11 "x" - MemberDecorate 8(t4) 0 Offset 0 - MemberDecorate 8(t4) 1 Offset 8 - Decorate 8(t4) Block - MemberDecorate 9(t3) 0 Offset 0 - Decorate 9(t3) Block - Decorate 11(x) DescriptorSet 1 - Decorate 11(x) Binding 2 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - TypeForwardPointer 7 PhysicalStorageBufferEXT - 8(t4): TypeStruct 6(int) 7 - 9(t3): TypeStruct 6(int) - 7: TypePointer PhysicalStorageBufferEXT 9(t3) - 10: TypePointer Uniform 8(t4) - 11(x): 10(ptr) Variable Uniform - 12: 6(int) Constant 1 - 13: TypePointer Uniform 7(ptr) - 16: 6(int) Constant 0 - 17: TypePointer Uniform 6(int) - 20: TypePointer PhysicalStorageBufferEXT 6(int) - 4(main): 2 Function None 3 - 5: Label - 14: 13(ptr) AccessChain 11(x) 12 - 15: 7(ptr) Load 14 - 18: 17(ptr) AccessChain 11(x) 16 - 19: 6(int) Load 18 - 21: 20(ptr) AccessChain 15 16 - Store 21 19 Aligned 16 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.bufferhandle6.frag.out b/deps/glslang/Test/baseResults/spv.bufferhandle6.frag.out deleted file mode 100644 index abc9187c..00000000 --- a/deps/glslang/Test/baseResults/spv.bufferhandle6.frag.out +++ /dev/null @@ -1,238 +0,0 @@ -spv.bufferhandle6.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 165 - - Capability Shader - Capability PhysicalStorageBufferAddressesEXT - Extension "SPV_KHR_physical_storage_buffer" - Extension "SPV_KHR_storage_buffer_storage_class" - 1: ExtInstImport "GLSL.std.450" - MemoryModel PhysicalStorageBuffer64EXT GLSL450 - EntryPoint Fragment 4 "main" 154 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_buffer_reference" - Name 4 "main" - Name 8 "accum" - Name 15 "T1" - MemberName 15(T1) 0 "a" - MemberName 15(T1) 1 "b" - MemberName 15(T1) 2 "c" - MemberName 15(T1) 3 "d" - Name 18 "T1" - MemberName 18(T1) 0 "a" - MemberName 18(T1) 1 "b" - MemberName 18(T1) 2 "c" - MemberName 18(T1) 3 "d" - Name 21 "x" - Name 30 "Block" - MemberName 30(Block) 0 "identity" - Name 32 "pc" - Name 136 "color" - Name 149 "image0_0" - Name 154 "gl_FragCoord" - Decorate 12 ArrayStride 4 - Decorate 14 ArrayStride 8 - MemberDecorate 15(T1) 0 Offset 0 - MemberDecorate 15(T1) 1 Offset 32 - MemberDecorate 15(T1) 2 Offset 48 - MemberDecorate 15(T1) 3 Offset 80 - Decorate 15(T1) Block - Decorate 16 ArrayStride 4 - Decorate 17 ArrayStride 8 - MemberDecorate 18(T1) 0 Offset 0 - MemberDecorate 18(T1) 1 Offset 32 - MemberDecorate 18(T1) 2 Offset 48 - MemberDecorate 18(T1) 3 Offset 80 - Decorate 18(T1) Block - Decorate 19 ArrayStride 8 - Decorate 21(x) DescriptorSet 3 - Decorate 21(x) Binding 1 - Decorate 29 ArrayStride 4 - MemberDecorate 30(Block) 0 Offset 0 - Decorate 30(Block) Block - Decorate 149(image0_0) DescriptorSet 3 - Decorate 149(image0_0) Binding 0 - Decorate 154(gl_FragCoord) BuiltIn FragCoord - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Function 6(int) - 9: 6(int) Constant 0 - 10: TypeInt 32 0 - 11: 10(int) Constant 2 - 12: TypeArray 6(int) 11 - TypeForwardPointer 13 PhysicalStorageBufferEXT - 14: TypeArray 13 11 - 15(T1): TypeStruct 12 6(int) 14 13 - 16: TypeArray 6(int) 11 - 17: TypeArray 13 11 - 18(T1): TypeStruct 16 6(int) 17 13 - 13: TypePointer PhysicalStorageBufferEXT 18(T1) - 19: TypeArray 13(ptr) 11 - 20: TypePointer StorageBuffer 15(T1) - 21(x): 20(ptr) Variable StorageBuffer - 22: TypePointer StorageBuffer 6(int) - 28: 10(int) Constant 32 - 29: TypeArray 6(int) 28 - 30(Block): TypeStruct 29 - 31: TypePointer PushConstant 30(Block) - 32(pc): 31(ptr) Variable PushConstant - 33: 6(int) Constant 1 - 34: TypePointer PushConstant 6(int) - 44: 6(int) Constant 2 - 48: TypePointer StorageBuffer 13(ptr) - 51: TypePointer PhysicalStorageBufferEXT 6(int) - 54: 6(int) Constant 3 - 64: 6(int) Constant 4 - 72: 6(int) Constant 5 - 82: 6(int) Constant 6 - 94: 6(int) Constant 7 - 104: 6(int) Constant 8 - 112: 6(int) Constant 9 - 122: 6(int) Constant 10 - 130: 6(int) Constant 11 - 134: TypeVector 10(int) 4 - 135: TypePointer Function 134(ivec4) - 138: TypeBool - 140: 10(int) Constant 0 - 141: 134(ivec4) ConstantComposite 140 140 140 140 - 142: 10(int) Constant 1 - 143: 134(ivec4) ConstantComposite 142 140 140 142 - 144: TypeVector 138(bool) 4 - 147: TypeImage 10(int) 2D nonsampled format:R32ui - 148: TypePointer UniformConstant 147 - 149(image0_0): 148(ptr) Variable UniformConstant - 151: TypeFloat 32 - 152: TypeVector 151(float) 4 - 153: TypePointer Input 152(fvec4) -154(gl_FragCoord): 153(ptr) Variable Input - 155: TypePointer Input 151(float) - 162: TypeVector 6(int) 2 - 4(main): 2 Function None 3 - 5: Label - 8(accum): 7(ptr) Variable Function - 136(color): 135(ptr) Variable Function - Store 8(accum) 9 - 23: 22(ptr) AccessChain 21(x) 9 9 - 24: 6(int) Load 23 - 25: 6(int) ISub 24 9 - 26: 6(int) Load 8(accum) - 27: 6(int) BitwiseOr 26 25 - Store 8(accum) 27 - 35: 34(ptr) AccessChain 32(pc) 9 33 - 36: 6(int) Load 35 - 37: 22(ptr) AccessChain 21(x) 9 36 - 38: 6(int) Load 37 - 39: 6(int) ISub 38 33 - 40: 6(int) Load 8(accum) - 41: 6(int) BitwiseOr 40 39 - Store 8(accum) 41 - 42: 22(ptr) AccessChain 21(x) 33 - 43: 6(int) Load 42 - 45: 6(int) ISub 43 44 - 46: 6(int) Load 8(accum) - 47: 6(int) BitwiseOr 46 45 - Store 8(accum) 47 - 49: 48(ptr) AccessChain 21(x) 44 9 - 50: 13(ptr) Load 49 - 52: 51(ptr) AccessChain 50 9 9 - 53: 6(int) Load 52 Aligned 4 - 55: 6(int) ISub 53 54 - 56: 6(int) Load 8(accum) - 57: 6(int) BitwiseOr 56 55 - Store 8(accum) 57 - 58: 48(ptr) AccessChain 21(x) 44 9 - 59: 13(ptr) Load 58 - 60: 34(ptr) AccessChain 32(pc) 9 33 - 61: 6(int) Load 60 - 62: 51(ptr) AccessChain 59 9 61 - 63: 6(int) Load 62 Aligned 4 - 65: 6(int) ISub 63 64 - 66: 6(int) Load 8(accum) - 67: 6(int) BitwiseOr 66 65 - Store 8(accum) 67 - 68: 48(ptr) AccessChain 21(x) 44 9 - 69: 13(ptr) Load 68 - 70: 51(ptr) AccessChain 69 33 - 71: 6(int) Load 70 Aligned 16 - 73: 6(int) ISub 71 72 - 74: 6(int) Load 8(accum) - 75: 6(int) BitwiseOr 74 73 - Store 8(accum) 75 - 76: 34(ptr) AccessChain 32(pc) 9 33 - 77: 6(int) Load 76 - 78: 48(ptr) AccessChain 21(x) 44 77 - 79: 13(ptr) Load 78 - 80: 51(ptr) AccessChain 79 9 9 - 81: 6(int) Load 80 Aligned 4 - 83: 6(int) ISub 81 82 - 84: 6(int) Load 8(accum) - 85: 6(int) BitwiseOr 84 83 - Store 8(accum) 85 - 86: 34(ptr) AccessChain 32(pc) 9 33 - 87: 6(int) Load 86 - 88: 48(ptr) AccessChain 21(x) 44 87 - 89: 13(ptr) Load 88 - 90: 34(ptr) AccessChain 32(pc) 9 33 - 91: 6(int) Load 90 - 92: 51(ptr) AccessChain 89 9 91 - 93: 6(int) Load 92 Aligned 4 - 95: 6(int) ISub 93 94 - 96: 6(int) Load 8(accum) - 97: 6(int) BitwiseOr 96 95 - Store 8(accum) 97 - 98: 34(ptr) AccessChain 32(pc) 9 33 - 99: 6(int) Load 98 - 100: 48(ptr) AccessChain 21(x) 44 99 - 101: 13(ptr) Load 100 - 102: 51(ptr) AccessChain 101 33 - 103: 6(int) Load 102 Aligned 16 - 105: 6(int) ISub 103 104 - 106: 6(int) Load 8(accum) - 107: 6(int) BitwiseOr 106 105 - Store 8(accum) 107 - 108: 48(ptr) AccessChain 21(x) 54 - 109: 13(ptr) Load 108 - 110: 51(ptr) AccessChain 109 9 9 - 111: 6(int) Load 110 Aligned 4 - 113: 6(int) ISub 111 112 - 114: 6(int) Load 8(accum) - 115: 6(int) BitwiseOr 114 113 - Store 8(accum) 115 - 116: 48(ptr) AccessChain 21(x) 54 - 117: 13(ptr) Load 116 - 118: 34(ptr) AccessChain 32(pc) 9 33 - 119: 6(int) Load 118 - 120: 51(ptr) AccessChain 117 9 119 - 121: 6(int) Load 120 Aligned 4 - 123: 6(int) ISub 121 122 - 124: 6(int) Load 8(accum) - 125: 6(int) BitwiseOr 124 123 - Store 8(accum) 125 - 126: 48(ptr) AccessChain 21(x) 54 - 127: 13(ptr) Load 126 - 128: 51(ptr) AccessChain 127 33 - 129: 6(int) Load 128 Aligned 16 - 131: 6(int) ISub 129 130 - 132: 6(int) Load 8(accum) - 133: 6(int) BitwiseOr 132 131 - Store 8(accum) 133 - 137: 6(int) Load 8(accum) - 139: 138(bool) INotEqual 137 9 - 145: 144(bvec4) CompositeConstruct 139 139 139 139 - 146: 134(ivec4) Select 145 141 143 - Store 136(color) 146 - 150: 147 Load 149(image0_0) - 156: 155(ptr) AccessChain 154(gl_FragCoord) 140 - 157: 151(float) Load 156 - 158: 6(int) ConvertFToS 157 - 159: 155(ptr) AccessChain 154(gl_FragCoord) 142 - 160: 151(float) Load 159 - 161: 6(int) ConvertFToS 160 - 163: 162(ivec2) CompositeConstruct 158 161 - 164: 134(ivec4) Load 136(color) - ImageWrite 150 163 164 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.bufferhandle7.frag.out b/deps/glslang/Test/baseResults/spv.bufferhandle7.frag.out deleted file mode 100644 index 4282a362..00000000 --- a/deps/glslang/Test/baseResults/spv.bufferhandle7.frag.out +++ /dev/null @@ -1,77 +0,0 @@ -spv.bufferhandle7.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 24 - - Capability Shader - Capability PhysicalStorageBufferAddressesEXT - Extension "SPV_KHR_physical_storage_buffer" - Extension "SPV_KHR_storage_buffer_storage_class" - 1: ExtInstImport "GLSL.std.450" - MemoryModel PhysicalStorageBuffer64EXT GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_buffer_reference" - Name 4 "main" - Name 7 "t2" - MemberName 7(t2) 0 "f" - MemberName 7(t2) 1 "g" - Name 9 "blockType" - MemberName 9(blockType) 0 "a" - MemberName 9(blockType) 1 "b" - MemberName 9(blockType) 2 "c" - MemberName 9(blockType) 3 "d" - MemberName 9(blockType) 4 "e" - Name 11 "t" - Name 14 "t3" - MemberName 14(t3) 0 "f" - Name 15 "t2" - MemberName 15(t2) 0 "f" - MemberName 15(t2) 1 "g" - Name 17 "u" - MemberDecorate 7(t2) 0 Offset 0 - MemberDecorate 7(t2) 1 Offset 8 - Decorate 7(t2) Block - MemberDecorate 9(blockType) 0 Offset 0 - MemberDecorate 9(blockType) 1 Offset 4 - MemberDecorate 9(blockType) 2 Offset 8 - MemberDecorate 9(blockType) 3 Offset 12 - MemberDecorate 9(blockType) 4 Offset 16 - Decorate 9(blockType) Block - Decorate 11(t) DescriptorSet 0 - Decorate 11(t) Binding 0 - MemberDecorate 14(t3) 0 Offset 0 - Decorate 14(t3) Block - MemberDecorate 15(t2) 0 Offset 0 - MemberDecorate 15(t2) 1 Offset 8 - Decorate 15(t2) Block - Decorate 17(u) DescriptorSet 0 - Decorate 17(u) Binding 1 - 2: TypeVoid - 3: TypeFunction 2 - TypeForwardPointer 6 PhysicalStorageBufferEXT - 7(t2): TypeStruct 6 6 - 8: TypeInt 32 1 - 9(blockType): TypeStruct 8(int) 8(int) 8(int) 8(int) 8(int) - 6: TypePointer PhysicalStorageBufferEXT 9(blockType) - 10: TypePointer StorageBuffer 7(t2) - 11(t): 10(ptr) Variable StorageBuffer - 12: 8(int) Constant 0 - TypeForwardPointer 13 PhysicalStorageBufferEXT - 14(t3): TypeStruct 13 - 15(t2): TypeStruct 6(ptr) 6(ptr) - 13: TypePointer PhysicalStorageBufferEXT 15(t2) - 16: TypePointer StorageBuffer 14(t3) - 17(u): 16(ptr) Variable StorageBuffer - 18: TypePointer StorageBuffer 13(ptr) - 22: TypePointer StorageBuffer 6(ptr) - 4(main): 2 Function None 3 - 5: Label - 19: 18(ptr) AccessChain 17(u) 12 - 20: 13(ptr) Load 19 - 21: 6(ptr) Bitcast 20 - 23: 22(ptr) AccessChain 11(t) 12 - Store 23 21 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.bufferhandle8.frag.out b/deps/glslang/Test/baseResults/spv.bufferhandle8.frag.out deleted file mode 100644 index 65d46653..00000000 --- a/deps/glslang/Test/baseResults/spv.bufferhandle8.frag.out +++ /dev/null @@ -1,89 +0,0 @@ -spv.bufferhandle8.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 27 - - Capability Shader - Capability PhysicalStorageBufferAddressesEXT - Extension "SPV_KHR_physical_storage_buffer" - Extension "SPV_KHR_storage_buffer_storage_class" - 1: ExtInstImport "GLSL.std.450" - MemoryModel PhysicalStorageBuffer64EXT GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_buffer_reference" - Name 4 "main" - Name 8 "Blah" - MemberName 8(Blah) 0 "t1" - MemberName 8(Blah) 1 "t2" - Name 10 "T1" - MemberName 10(T1) 0 "x" - Name 11 "T2" - MemberName 11(T2) 0 "x" - Name 13 "T3" - MemberName 13(T3) 0 "Bindings" - Name 15 "t3" - Name 23 "t2" - MemberName 23(t2) 0 "f" - MemberName 23(t2) 1 "g" - Name 24 "blockType" - MemberName 24(blockType) 0 "a" - MemberName 24(blockType) 1 "b" - MemberName 24(blockType) 2 "c" - MemberName 24(blockType) 3 "d" - MemberName 24(blockType) 4 "e" - Name 26 "t" - MemberDecorate 8(Blah) 0 Offset 0 - MemberDecorate 8(Blah) 1 Offset 8 - MemberDecorate 10(T1) 0 Offset 0 - Decorate 10(T1) Block - MemberDecorate 11(T2) 0 Offset 0 - Decorate 11(T2) Block - Decorate 12 ArrayStride 16 - MemberDecorate 13(T3) 0 Offset 0 - Decorate 13(T3) Block - Decorate 15(t3) DescriptorSet 0 - Decorate 15(t3) Binding 0 - MemberDecorate 23(t2) 0 Offset 0 - MemberDecorate 23(t2) 1 Offset 8 - Decorate 23(t2) Block - MemberDecorate 24(blockType) 0 Offset 0 - MemberDecorate 24(blockType) 1 Offset 4 - MemberDecorate 24(blockType) 2 Offset 8 - MemberDecorate 24(blockType) 3 Offset 12 - MemberDecorate 24(blockType) 4 Offset 16 - Decorate 24(blockType) Block - Decorate 26(t) DescriptorSet 0 - Decorate 26(t) Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - TypeForwardPointer 6 PhysicalStorageBufferEXT - TypeForwardPointer 7 PhysicalStorageBufferEXT - 8(Blah): TypeStruct 6 7 - 9: TypeInt 32 1 - 10(T1): TypeStruct 9(int) - 6: TypePointer PhysicalStorageBufferEXT 10(T1) - 11(T2): TypeStruct 9(int) - 7: TypePointer PhysicalStorageBufferEXT 11(T2) - 12: TypeRuntimeArray 8(Blah) - 13(T3): TypeStruct 12 - 14: TypePointer StorageBuffer 13(T3) - 15(t3): 14(ptr) Variable StorageBuffer - 16: 9(int) Constant 0 - 17: 9(int) Constant 1 - 18: TypePointer StorageBuffer 8(Blah) - TypeForwardPointer 22 PhysicalStorageBufferEXT - 23(t2): TypeStruct 22 22 - 24(blockType): TypeStruct 9(int) 9(int) 9(int) 9(int) 9(int) - 22: TypePointer PhysicalStorageBufferEXT 24(blockType) - 25: TypePointer StorageBuffer 23(t2) - 26(t): 25(ptr) Variable StorageBuffer - 4(main): 2 Function None 3 - 5: Label - 19: 18(ptr) AccessChain 15(t3) 16 17 - 20: 8(Blah) Load 19 - 21: 18(ptr) AccessChain 15(t3) 16 16 - Store 21 20 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.bufferhandle9.frag.out b/deps/glslang/Test/baseResults/spv.bufferhandle9.frag.out deleted file mode 100644 index 1e5091c2..00000000 --- a/deps/glslang/Test/baseResults/spv.bufferhandle9.frag.out +++ /dev/null @@ -1,116 +0,0 @@ -spv.bufferhandle9.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 56 - - Capability Shader - Capability Int64 - Capability PhysicalStorageBufferAddressesEXT - Extension "SPV_KHR_physical_storage_buffer" - Extension "SPV_KHR_storage_buffer_storage_class" - 1: ExtInstImport "GLSL.std.450" - MemoryModel PhysicalStorageBuffer64EXT GLSL450 - EntryPoint Fragment 4 "main" 16 19 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_ARB_gpu_shader_int64" - SourceExtension "GL_EXT_buffer_reference" - Name 4 "main" - Name 8 "blockType" - MemberName 8(blockType) 0 "a" - MemberName 8(blockType) 1 "b" - MemberName 8(blockType) 2 "c" - MemberName 8(blockType) 3 "d" - MemberName 8(blockType) 4 "e" - Name 13 "b1" - Name 16 "h" - Name 19 "i" - Name 34 "b2" - Name 37 "b3" - Name 46 "j" - Name 53 "t2" - MemberName 53(t2) 0 "f" - MemberName 53(t2) 1 "g" - Name 55 "t" - MemberDecorate 8(blockType) 0 Offset 0 - MemberDecorate 8(blockType) 1 Offset 4 - MemberDecorate 8(blockType) 2 Offset 8 - MemberDecorate 8(blockType) 3 Offset 12 - MemberDecorate 8(blockType) 4 Offset 16 - Decorate 8(blockType) Block - Decorate 13(b1) DecorationAliasedPointerEXT - Decorate 16(h) Flat - Decorate 16(h) Location 0 - Decorate 19(i) Flat - Decorate 19(i) Location 1 - Decorate 34(b2) DecorationAliasedPointerEXT - Decorate 37(b3) DecorationAliasedPointerEXT - MemberDecorate 53(t2) 0 Offset 0 - MemberDecorate 53(t2) 1 Offset 8 - Decorate 53(t2) Block - Decorate 55(t) DescriptorSet 0 - Decorate 55(t) Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - TypeForwardPointer 6 PhysicalStorageBufferEXT - 7: TypeInt 32 1 - 8(blockType): TypeStruct 7(int) 7(int) 7(int) 7(int) 7(int) - 6: TypePointer PhysicalStorageBufferEXT 8(blockType) - 9: TypeInt 32 0 - 10: 9(int) Constant 2 - 11: TypeArray 6(ptr) 10 - 12: TypePointer Function 11 - 14: TypeInt 64 0 - 15: TypePointer Input 14(int64_t) - 16(h): 15(ptr) Variable Input - 19(i): 15(ptr) Variable Input - 23: 7(int) Constant 0 - 24: TypePointer Function 6(ptr) - 27: 7(int) Constant 1 - 30: TypePointer PhysicalStorageBufferEXT 7(int) - 45: TypePointer Function 14(int64_t) - 50: 14(int64_t) Constant 256 0 - 53(t2): TypeStruct 6(ptr) 6(ptr) - 54: TypePointer StorageBuffer 53(t2) - 55(t): 54(ptr) Variable StorageBuffer - 4(main): 2 Function None 3 - 5: Label - 13(b1): 12(ptr) Variable Function - 34(b2): 24(ptr) Variable Function - 37(b3): 24(ptr) Variable Function - 46(j): 45(ptr) Variable Function - 17: 14(int64_t) Load 16(h) - 18: 6(ptr) ConvertUToPtr 17 - 20: 14(int64_t) Load 19(i) - 21: 6(ptr) ConvertUToPtr 20 - 22: 11 CompositeConstruct 18 21 - Store 13(b1) 22 - 25: 24(ptr) AccessChain 13(b1) 23 - 26: 6(ptr) Load 25 - 28: 24(ptr) AccessChain 13(b1) 27 - 29: 6(ptr) Load 28 - 31: 30(ptr) AccessChain 29 27 - 32: 7(int) Load 31 Aligned 4 - 33: 30(ptr) AccessChain 26 23 - Store 33 32 Aligned 16 - 35: 14(int64_t) Load 16(h) - 36: 6(ptr) ConvertUToPtr 35 - Store 34(b2) 36 - 38: 14(int64_t) Load 19(i) - 39: 6(ptr) ConvertUToPtr 38 - Store 37(b3) 39 - 40: 6(ptr) Load 34(b2) - 41: 6(ptr) Load 37(b3) - 42: 30(ptr) AccessChain 41 27 - 43: 7(int) Load 42 Aligned 4 - 44: 30(ptr) AccessChain 40 23 - Store 44 43 Aligned 16 - 47: 6(ptr) Load 34(b2) - 48: 14(int64_t) ConvertPtrToU 47 - Store 46(j) 48 - 49: 14(int64_t) Load 46(j) - 51: 14(int64_t) IAdd 49 50 - 52: 6(ptr) ConvertUToPtr 51 - Store 34(b2) 52 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.bufferhandleUvec2.frag.out b/deps/glslang/Test/baseResults/spv.bufferhandleUvec2.frag.out deleted file mode 100644 index fbdbb6aa..00000000 --- a/deps/glslang/Test/baseResults/spv.bufferhandleUvec2.frag.out +++ /dev/null @@ -1,135 +0,0 @@ -spv.bufferhandleUvec2.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 71 - - Capability Shader - Capability PhysicalStorageBufferAddressesEXT - Extension "SPV_KHR_physical_storage_buffer" - Extension "SPV_KHR_storage_buffer_storage_class" - 1: ExtInstImport "GLSL.std.450" - MemoryModel PhysicalStorageBuffer64EXT GLSL450 - EntryPoint Fragment 4 "main" 16 19 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_buffer_reference" - SourceExtension "GL_EXT_buffer_reference_uvec2" - Name 4 "main" - Name 8 "blockType" - MemberName 8(blockType) 0 "a" - MemberName 8(blockType) 1 "b" - MemberName 8(blockType) 2 "c" - MemberName 8(blockType) 3 "d" - MemberName 8(blockType) 4 "e" - Name 13 "b1" - Name 16 "h" - Name 19 "i" - Name 34 "b2" - Name 37 "b3" - Name 46 "j" - Name 54 "carry" - Name 55 "ResType" - Name 68 "t2" - MemberName 68(t2) 0 "f" - MemberName 68(t2) 1 "g" - Name 70 "t" - MemberDecorate 8(blockType) 0 Offset 0 - MemberDecorate 8(blockType) 1 Offset 4 - MemberDecorate 8(blockType) 2 Offset 8 - MemberDecorate 8(blockType) 3 Offset 12 - MemberDecorate 8(blockType) 4 Offset 16 - Decorate 8(blockType) Block - Decorate 13(b1) DecorationAliasedPointerEXT - Decorate 16(h) Flat - Decorate 16(h) Location 0 - Decorate 19(i) Flat - Decorate 19(i) Location 1 - Decorate 34(b2) DecorationAliasedPointerEXT - Decorate 37(b3) DecorationAliasedPointerEXT - MemberDecorate 68(t2) 0 Offset 0 - MemberDecorate 68(t2) 1 Offset 8 - Decorate 68(t2) Block - Decorate 70(t) DescriptorSet 0 - Decorate 70(t) Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - TypeForwardPointer 6 PhysicalStorageBufferEXT - 7: TypeInt 32 1 - 8(blockType): TypeStruct 7(int) 7(int) 7(int) 7(int) 7(int) - 6: TypePointer PhysicalStorageBufferEXT 8(blockType) - 9: TypeInt 32 0 - 10: 9(int) Constant 2 - 11: TypeArray 6(ptr) 10 - 12: TypePointer Function 11 - 14: TypeVector 9(int) 2 - 15: TypePointer Input 14(ivec2) - 16(h): 15(ptr) Variable Input - 19(i): 15(ptr) Variable Input - 23: 7(int) Constant 0 - 24: TypePointer Function 6(ptr) - 27: 7(int) Constant 1 - 30: TypePointer PhysicalStorageBufferEXT 7(int) - 45: TypePointer Function 14(ivec2) - 49: 9(int) Constant 0 - 50: TypePointer Function 9(int) - 53: 9(int) Constant 256 - 55(ResType): TypeStruct 9(int) 9(int) - 61: 9(int) Constant 1 - 68(t2): TypeStruct 6(ptr) 6(ptr) - 69: TypePointer StorageBuffer 68(t2) - 70(t): 69(ptr) Variable StorageBuffer - 4(main): 2 Function None 3 - 5: Label - 13(b1): 12(ptr) Variable Function - 34(b2): 24(ptr) Variable Function - 37(b3): 24(ptr) Variable Function - 46(j): 45(ptr) Variable Function - 54(carry): 50(ptr) Variable Function - 17: 14(ivec2) Load 16(h) - 18: 6(ptr) Bitcast 17 - 20: 14(ivec2) Load 19(i) - 21: 6(ptr) Bitcast 20 - 22: 11 CompositeConstruct 18 21 - Store 13(b1) 22 - 25: 24(ptr) AccessChain 13(b1) 23 - 26: 6(ptr) Load 25 - 28: 24(ptr) AccessChain 13(b1) 27 - 29: 6(ptr) Load 28 - 31: 30(ptr) AccessChain 29 27 - 32: 7(int) Load 31 Aligned 4 - 33: 30(ptr) AccessChain 26 23 - Store 33 32 Aligned 16 - 35: 14(ivec2) Load 16(h) - 36: 6(ptr) Bitcast 35 - Store 34(b2) 36 - 38: 14(ivec2) Load 19(i) - 39: 6(ptr) Bitcast 38 - Store 37(b3) 39 - 40: 6(ptr) Load 34(b2) - 41: 6(ptr) Load 37(b3) - 42: 30(ptr) AccessChain 41 27 - 43: 7(int) Load 42 Aligned 4 - 44: 30(ptr) AccessChain 40 23 - Store 44 43 Aligned 16 - 47: 6(ptr) Load 34(b2) - 48: 14(ivec2) Bitcast 47 - Store 46(j) 48 - 51: 50(ptr) AccessChain 46(j) 49 - 52: 9(int) Load 51 - 56: 55(ResType) IAddCarry 52 53 - 57: 9(int) CompositeExtract 56 1 - Store 54(carry) 57 - 58: 9(int) CompositeExtract 56 0 - 59: 50(ptr) AccessChain 46(j) 49 - Store 59 58 - 60: 9(int) Load 54(carry) - 62: 50(ptr) AccessChain 46(j) 61 - 63: 9(int) Load 62 - 64: 9(int) IAdd 63 60 - 65: 50(ptr) AccessChain 46(j) 61 - Store 65 64 - 66: 14(ivec2) Load 46(j) - 67: 6(ptr) Bitcast 66 - Store 34(b2) 67 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.bufferhandle_Error.frag.out b/deps/glslang/Test/baseResults/spv.bufferhandle_Error.frag.out deleted file mode 100644 index 345bfa59..00000000 --- a/deps/glslang/Test/baseResults/spv.bufferhandle_Error.frag.out +++ /dev/null @@ -1,28 +0,0 @@ -spv.bufferhandle_Error.frag -ERROR: 0:7: 'buffer_reference' : can only be used with buffer -ERROR: 0:9: 'buffer_reference' : cannot declare a default, can only be used on a block -ERROR: 0:10: 'buffer_reference' : can only be used with buffer -ERROR: 0:10: 'buffer_reference' : cannot declare a default, can only be used on a block -ERROR: 0:11: 'buffer_reference' : can only be used with buffer -ERROR: 0:11: 'buffer_reference' : cannot declare a default, can only be used on a block -ERROR: 0:12: 'buffer_reference' : can only be used with buffer -ERROR: 0:12: 'buffer_reference' : cannot declare a default, can only be used on a block -ERROR: 0:13: 'buffer_reference' : can only be used with buffer -ERROR: 0:13: 'buffer_reference' : can only be used with buffer -ERROR: 0:14: 'output block' : not supported in this stage: fragment -ERROR: 0:14: 'buffer_reference' : can only be used with buffer -ERROR: 0:14: 'buffer_reference' : can only be used with buffer -ERROR: 0:30: 'length' : array must be declared with a size before using this method -ERROR: 0:31: 'length' : array must be declared with a size before using this method -ERROR: 0:32: 'buffer reference indexing' : required extension not requested: GL_EXT_buffer_reference2 -ERROR: 0:32: '' : cannot index reference to buffer containing an unsized array -ERROR: 0:32: '' : cannot index buffer reference -ERROR: 0:36: '=' : cannot convert from 'layout( column_major std430) buffer reference' to ' temp reference' -ERROR: 0:41: 'assign' : cannot convert from 'layout( column_major std430) buffer reference' to 'layout( column_major std430) buffer reference' -ERROR: 0:42: 'assign' : cannot convert from 'layout( column_major std430) buffer reference' to 'layout( column_major std430) buffer reference' -ERROR: 0:43: 'assign' : cannot convert from 'layout( column_major std430) buffer reference' to 'layout( column_major std430) buffer reference' -ERROR: 0:46: '' : syntax error, unexpected LEFT_BRACE, expecting COMMA or SEMICOLON -ERROR: 23 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.builtInXFB.vert.out b/deps/glslang/Test/baseResults/spv.builtInXFB.vert.out deleted file mode 100644 index 1f612e2a..00000000 --- a/deps/glslang/Test/baseResults/spv.builtInXFB.vert.out +++ /dev/null @@ -1,47 +0,0 @@ -spv.builtInXFB.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 21 - - Capability Shader - Capability TransformFeedback - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 10 - ExecutionMode 4 Xfb - Source GLSL 450 - Name 4 "main" - Name 8 "gl_PerVertex" - MemberName 8(gl_PerVertex) 0 "gl_Position" - MemberName 8(gl_PerVertex) 1 "gl_PointSize" - Name 10 "" - MemberDecorate 8(gl_PerVertex) 0 Offset 20 - MemberDecorate 8(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 8(gl_PerVertex) 1 Offset 16 - MemberDecorate 8(gl_PerVertex) 1 BuiltIn PointSize - Decorate 8(gl_PerVertex) Block - Decorate 10 XfbBuffer 1 - Decorate 10 XfbStride 64 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8(gl_PerVertex): TypeStruct 7(fvec4) 6(float) - 9: TypePointer Output 8(gl_PerVertex) - 10: 9(ptr) Variable Output - 11: TypeInt 32 1 - 12: 11(int) Constant 0 - 13: 6(float) Constant 1065353216 - 14: 7(fvec4) ConstantComposite 13 13 13 13 - 15: TypePointer Output 7(fvec4) - 17: 11(int) Constant 1 - 18: 6(float) Constant 1073741824 - 19: TypePointer Output 6(float) - 4(main): 2 Function None 3 - 5: Label - 16: 15(ptr) AccessChain 10 12 - Store 16 14 - 20: 19(ptr) AccessChain 10 17 - Store 20 18 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.builtin.PrimitiveShadingRateEXT.vert.out b/deps/glslang/Test/baseResults/spv.builtin.PrimitiveShadingRateEXT.vert.out deleted file mode 100644 index 8daa79ee..00000000 --- a/deps/glslang/Test/baseResults/spv.builtin.PrimitiveShadingRateEXT.vert.out +++ /dev/null @@ -1,53 +0,0 @@ -spv.builtin.PrimitiveShadingRateEXT.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 26 - - Capability Shader - Capability FragmentShadingRateKHR - Extension "SPV_KHR_fragment_shading_rate" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 8 16 - Source GLSL 450 - SourceExtension "GL_EXT_fragment_shading_rate" - Name 4 "main" - Name 8 "id" - Name 16 "gl_PrimitiveShadingRateEXT" - Decorate 8(id) Location 0 - Decorate 16(gl_PrimitiveShadingRateEXT) BuiltIn PrimitiveShadingRateKHR - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Input 6(int) - 8(id): 7(ptr) Variable Input - 15: TypePointer Output 6(int) -16(gl_PrimitiveShadingRateEXT): 15(ptr) Variable Output - 17: 6(int) Constant 5 - 19: 6(int) Constant 9 - 21: 6(int) Constant 6 - 23: 6(int) Constant 10 - 4(main): 2 Function None 3 - 5: Label - 9: 6(int) Load 8(id) - SelectionMerge 14 None - Switch 9 14 - case 0: 10 - case 1: 11 - case 2: 12 - case 3: 13 - 10: Label - Store 16(gl_PrimitiveShadingRateEXT) 17 - Branch 14 - 11: Label - Store 16(gl_PrimitiveShadingRateEXT) 19 - Branch 14 - 12: Label - Store 16(gl_PrimitiveShadingRateEXT) 21 - Branch 14 - 13: Label - Store 16(gl_PrimitiveShadingRateEXT) 23 - Branch 14 - 14: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.builtin.ShadingRateEXT.frag.out b/deps/glslang/Test/baseResults/spv.builtin.ShadingRateEXT.frag.out deleted file mode 100644 index 95b94d25..00000000 --- a/deps/glslang/Test/baseResults/spv.builtin.ShadingRateEXT.frag.out +++ /dev/null @@ -1,36 +0,0 @@ -spv.builtin.ShadingRateEXT.frag -WARNING: 0:5: '' : all default precisions are highp; use precision statements to quiet warning, e.g.: - "precision mediump int; precision highp float;" - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 12 - - Capability Shader - Capability FragmentShadingRateKHR - Extension "SPV_KHR_fragment_shading_rate" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 8 10 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_fragment_shading_rate" - Name 4 "main" - Name 8 "val" - Name 10 "gl_ShadingRateEXT" - Decorate 8(val) Location 0 - Decorate 10(gl_ShadingRateEXT) Flat - Decorate 10(gl_ShadingRateEXT) BuiltIn ShadingRateKHR - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Output 6(int) - 8(val): 7(ptr) Variable Output - 9: TypePointer Input 6(int) -10(gl_ShadingRateEXT): 9(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 11: 6(int) Load 10(gl_ShadingRateEXT) - Store 8(val) 11 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.computeShaderDerivatives.comp.out b/deps/glslang/Test/baseResults/spv.computeShaderDerivatives.comp.out deleted file mode 100644 index a7138450..00000000 --- a/deps/glslang/Test/baseResults/spv.computeShaderDerivatives.comp.out +++ /dev/null @@ -1,359 +0,0 @@ -spv.computeShaderDerivatives.comp -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 212 - - Capability Shader - Capability DerivativeControl - Capability ComputeDerivativeGroupQuadsNV - Extension "SPV_NV_compute_shader_derivatives" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" - ExecutionMode 4 LocalSize 2 4 1 - ExecutionMode 4 DerivativeGroupQuadsNV - Source GLSL 450 - SourceExtension "GL_NV_compute_shader_derivatives" - Name 4 "main" - Name 10 "block" - MemberName 10(block) 0 "fDerivativeX" - MemberName 10(block) 1 "fDerivativeY" - MemberName 10(block) 2 "fDerivativeWidth" - MemberName 10(block) 3 "fCoarseDerivativeX" - MemberName 10(block) 4 "fCoarseDerivativeY" - MemberName 10(block) 5 "fCoarseDerivativeWidth" - MemberName 10(block) 6 "fFineDerivativeX" - MemberName 10(block) 7 "fFineDerivativeY" - MemberName 10(block) 8 "fFineDerivativeWidth" - MemberName 10(block) 9 "fX" - MemberName 10(block) 10 "fY" - MemberName 10(block) 11 "v2DerivativeX" - MemberName 10(block) 12 "v2DerivativeY" - MemberName 10(block) 13 "v2DerivativeWidth" - MemberName 10(block) 14 "v2CoarseDerivativeX" - MemberName 10(block) 15 "v2CoarseDerivativeY" - MemberName 10(block) 16 "v2CoarseDerivativeWidth" - MemberName 10(block) 17 "v2FineDerivativeX" - MemberName 10(block) 18 "v2FineDerivativeY" - MemberName 10(block) 19 "v2FineDerivativeWidth" - MemberName 10(block) 20 "v2X" - MemberName 10(block) 21 "v2Y" - MemberName 10(block) 22 "v3DerivativeX" - MemberName 10(block) 23 "v3DerivativeY" - MemberName 10(block) 24 "v3DerivativeWidth" - MemberName 10(block) 25 "v3CoarseDerivativeX" - MemberName 10(block) 26 "v3CoarseDerivativeY" - MemberName 10(block) 27 "v3CoarseDerivativeWidth" - MemberName 10(block) 28 "v3FineDerivativeX" - MemberName 10(block) 29 "v3FineDerivativeY" - MemberName 10(block) 30 "v3FineDerivativeWidth" - MemberName 10(block) 31 "v3X" - MemberName 10(block) 32 "v3Y" - MemberName 10(block) 33 "v4DerivativeX" - MemberName 10(block) 34 "v4DerivativeY" - MemberName 10(block) 35 "v4DerivativeWidth" - MemberName 10(block) 36 "v4CoarseDerivativeX" - MemberName 10(block) 37 "v4CoarseDerivativeY" - MemberName 10(block) 38 "v4CoarseDerivativeWidth" - MemberName 10(block) 39 "v4FineDerivativeX" - MemberName 10(block) 40 "v4FineDerivativeY" - MemberName 10(block) 41 "v4FineDerivativeWidth" - MemberName 10(block) 42 "v4X" - MemberName 10(block) 43 "v4Y" - Name 12 "" - MemberDecorate 10(block) 0 Offset 0 - MemberDecorate 10(block) 1 Offset 4 - MemberDecorate 10(block) 2 Offset 8 - MemberDecorate 10(block) 3 Offset 12 - MemberDecorate 10(block) 4 Offset 16 - MemberDecorate 10(block) 5 Offset 20 - MemberDecorate 10(block) 6 Offset 24 - MemberDecorate 10(block) 7 Offset 28 - MemberDecorate 10(block) 8 Offset 32 - MemberDecorate 10(block) 9 Offset 36 - MemberDecorate 10(block) 10 Offset 40 - MemberDecorate 10(block) 11 Offset 48 - MemberDecorate 10(block) 12 Offset 56 - MemberDecorate 10(block) 13 Offset 64 - MemberDecorate 10(block) 14 Offset 72 - MemberDecorate 10(block) 15 Offset 80 - MemberDecorate 10(block) 16 Offset 88 - MemberDecorate 10(block) 17 Offset 96 - MemberDecorate 10(block) 18 Offset 104 - MemberDecorate 10(block) 19 Offset 112 - MemberDecorate 10(block) 20 Offset 120 - MemberDecorate 10(block) 21 Offset 128 - MemberDecorate 10(block) 22 Offset 144 - MemberDecorate 10(block) 23 Offset 160 - MemberDecorate 10(block) 24 Offset 176 - MemberDecorate 10(block) 25 Offset 192 - MemberDecorate 10(block) 26 Offset 208 - MemberDecorate 10(block) 27 Offset 224 - MemberDecorate 10(block) 28 Offset 240 - MemberDecorate 10(block) 29 Offset 256 - MemberDecorate 10(block) 30 Offset 272 - MemberDecorate 10(block) 31 Offset 288 - MemberDecorate 10(block) 32 Offset 304 - MemberDecorate 10(block) 33 Offset 320 - MemberDecorate 10(block) 34 Offset 336 - MemberDecorate 10(block) 35 Offset 352 - MemberDecorate 10(block) 36 Offset 368 - MemberDecorate 10(block) 37 Offset 384 - MemberDecorate 10(block) 38 Offset 400 - MemberDecorate 10(block) 39 Offset 416 - MemberDecorate 10(block) 40 Offset 432 - MemberDecorate 10(block) 41 Offset 448 - MemberDecorate 10(block) 42 Offset 464 - MemberDecorate 10(block) 43 Offset 480 - Decorate 10(block) BufferBlock - Decorate 12 DescriptorSet 0 - Decorate 12 Binding 0 - Decorate 211 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 2 - 8: TypeVector 6(float) 3 - 9: TypeVector 6(float) 4 - 10(block): TypeStruct 6(float) 6(float) 6(float) 6(float) 6(float) 6(float) 6(float) 6(float) 6(float) 6(float) 6(float) 7(fvec2) 7(fvec2) 7(fvec2) 7(fvec2) 7(fvec2) 7(fvec2) 7(fvec2) 7(fvec2) 7(fvec2) 7(fvec2) 7(fvec2) 8(fvec3) 8(fvec3) 8(fvec3) 8(fvec3) 8(fvec3) 8(fvec3) 8(fvec3) 8(fvec3) 8(fvec3) 8(fvec3) 8(fvec3) 9(fvec4) 9(fvec4) 9(fvec4) 9(fvec4) 9(fvec4) 9(fvec4) 9(fvec4) 9(fvec4) 9(fvec4) 9(fvec4) 9(fvec4) - 11: TypePointer Uniform 10(block) - 12: 11(ptr) Variable Uniform - 13: TypeInt 32 1 - 14: 13(int) Constant 0 - 15: 13(int) Constant 9 - 16: TypePointer Uniform 6(float) - 21: 13(int) Constant 1 - 22: 13(int) Constant 10 - 27: 13(int) Constant 2 - 32: 13(int) Constant 3 - 37: 13(int) Constant 4 - 42: 13(int) Constant 5 - 47: 13(int) Constant 6 - 52: 13(int) Constant 7 - 57: 13(int) Constant 8 - 62: 13(int) Constant 11 - 63: 13(int) Constant 20 - 64: TypePointer Uniform 7(fvec2) - 69: 13(int) Constant 12 - 70: 13(int) Constant 21 - 75: 13(int) Constant 13 - 80: 13(int) Constant 14 - 85: 13(int) Constant 15 - 90: 13(int) Constant 16 - 95: 13(int) Constant 17 - 100: 13(int) Constant 18 - 105: 13(int) Constant 19 - 110: 13(int) Constant 22 - 111: 13(int) Constant 31 - 112: TypePointer Uniform 8(fvec3) - 117: 13(int) Constant 23 - 118: 13(int) Constant 32 - 123: 13(int) Constant 24 - 128: 13(int) Constant 25 - 133: 13(int) Constant 26 - 138: 13(int) Constant 27 - 143: 13(int) Constant 28 - 148: 13(int) Constant 29 - 153: 13(int) Constant 30 - 158: 13(int) Constant 33 - 159: 13(int) Constant 42 - 160: TypePointer Uniform 9(fvec4) - 165: 13(int) Constant 34 - 166: 13(int) Constant 43 - 171: 13(int) Constant 35 - 176: 13(int) Constant 36 - 181: 13(int) Constant 37 - 186: 13(int) Constant 38 - 191: 13(int) Constant 39 - 196: 13(int) Constant 40 - 201: 13(int) Constant 41 - 206: TypeInt 32 0 - 207: TypeVector 206(int) 3 - 208: 206(int) Constant 2 - 209: 206(int) Constant 4 - 210: 206(int) Constant 1 - 211: 207(ivec3) ConstantComposite 208 209 210 - 4(main): 2 Function None 3 - 5: Label - 17: 16(ptr) AccessChain 12 15 - 18: 6(float) Load 17 - 19: 6(float) DPdx 18 - 20: 16(ptr) AccessChain 12 14 - Store 20 19 - 23: 16(ptr) AccessChain 12 22 - 24: 6(float) Load 23 - 25: 6(float) DPdy 24 - 26: 16(ptr) AccessChain 12 21 - Store 26 25 - 28: 16(ptr) AccessChain 12 15 - 29: 6(float) Load 28 - 30: 6(float) Fwidth 29 - 31: 16(ptr) AccessChain 12 27 - Store 31 30 - 33: 16(ptr) AccessChain 12 15 - 34: 6(float) Load 33 - 35: 6(float) DPdxCoarse 34 - 36: 16(ptr) AccessChain 12 32 - Store 36 35 - 38: 16(ptr) AccessChain 12 22 - 39: 6(float) Load 38 - 40: 6(float) DPdyCoarse 39 - 41: 16(ptr) AccessChain 12 37 - Store 41 40 - 43: 16(ptr) AccessChain 12 15 - 44: 6(float) Load 43 - 45: 6(float) FwidthCoarse 44 - 46: 16(ptr) AccessChain 12 42 - Store 46 45 - 48: 16(ptr) AccessChain 12 15 - 49: 6(float) Load 48 - 50: 6(float) DPdxFine 49 - 51: 16(ptr) AccessChain 12 47 - Store 51 50 - 53: 16(ptr) AccessChain 12 22 - 54: 6(float) Load 53 - 55: 6(float) DPdyFine 54 - 56: 16(ptr) AccessChain 12 52 - Store 56 55 - 58: 16(ptr) AccessChain 12 15 - 59: 6(float) Load 58 - 60: 6(float) FwidthFine 59 - 61: 16(ptr) AccessChain 12 57 - Store 61 60 - 65: 64(ptr) AccessChain 12 63 - 66: 7(fvec2) Load 65 - 67: 7(fvec2) DPdx 66 - 68: 64(ptr) AccessChain 12 62 - Store 68 67 - 71: 64(ptr) AccessChain 12 70 - 72: 7(fvec2) Load 71 - 73: 7(fvec2) DPdy 72 - 74: 64(ptr) AccessChain 12 69 - Store 74 73 - 76: 64(ptr) AccessChain 12 63 - 77: 7(fvec2) Load 76 - 78: 7(fvec2) Fwidth 77 - 79: 64(ptr) AccessChain 12 75 - Store 79 78 - 81: 64(ptr) AccessChain 12 63 - 82: 7(fvec2) Load 81 - 83: 7(fvec2) DPdxCoarse 82 - 84: 64(ptr) AccessChain 12 80 - Store 84 83 - 86: 64(ptr) AccessChain 12 70 - 87: 7(fvec2) Load 86 - 88: 7(fvec2) DPdyCoarse 87 - 89: 64(ptr) AccessChain 12 85 - Store 89 88 - 91: 64(ptr) AccessChain 12 63 - 92: 7(fvec2) Load 91 - 93: 7(fvec2) FwidthCoarse 92 - 94: 64(ptr) AccessChain 12 90 - Store 94 93 - 96: 64(ptr) AccessChain 12 63 - 97: 7(fvec2) Load 96 - 98: 7(fvec2) DPdxFine 97 - 99: 64(ptr) AccessChain 12 95 - Store 99 98 - 101: 64(ptr) AccessChain 12 70 - 102: 7(fvec2) Load 101 - 103: 7(fvec2) DPdyFine 102 - 104: 64(ptr) AccessChain 12 100 - Store 104 103 - 106: 64(ptr) AccessChain 12 63 - 107: 7(fvec2) Load 106 - 108: 7(fvec2) FwidthFine 107 - 109: 64(ptr) AccessChain 12 105 - Store 109 108 - 113: 112(ptr) AccessChain 12 111 - 114: 8(fvec3) Load 113 - 115: 8(fvec3) DPdx 114 - 116: 112(ptr) AccessChain 12 110 - Store 116 115 - 119: 112(ptr) AccessChain 12 118 - 120: 8(fvec3) Load 119 - 121: 8(fvec3) DPdy 120 - 122: 112(ptr) AccessChain 12 117 - Store 122 121 - 124: 112(ptr) AccessChain 12 111 - 125: 8(fvec3) Load 124 - 126: 8(fvec3) Fwidth 125 - 127: 112(ptr) AccessChain 12 123 - Store 127 126 - 129: 112(ptr) AccessChain 12 111 - 130: 8(fvec3) Load 129 - 131: 8(fvec3) DPdxCoarse 130 - 132: 112(ptr) AccessChain 12 128 - Store 132 131 - 134: 112(ptr) AccessChain 12 118 - 135: 8(fvec3) Load 134 - 136: 8(fvec3) DPdyCoarse 135 - 137: 112(ptr) AccessChain 12 133 - Store 137 136 - 139: 112(ptr) AccessChain 12 111 - 140: 8(fvec3) Load 139 - 141: 8(fvec3) FwidthCoarse 140 - 142: 112(ptr) AccessChain 12 138 - Store 142 141 - 144: 112(ptr) AccessChain 12 111 - 145: 8(fvec3) Load 144 - 146: 8(fvec3) DPdxFine 145 - 147: 112(ptr) AccessChain 12 143 - Store 147 146 - 149: 112(ptr) AccessChain 12 118 - 150: 8(fvec3) Load 149 - 151: 8(fvec3) DPdyFine 150 - 152: 112(ptr) AccessChain 12 148 - Store 152 151 - 154: 112(ptr) AccessChain 12 111 - 155: 8(fvec3) Load 154 - 156: 8(fvec3) FwidthFine 155 - 157: 112(ptr) AccessChain 12 153 - Store 157 156 - 161: 160(ptr) AccessChain 12 159 - 162: 9(fvec4) Load 161 - 163: 9(fvec4) DPdx 162 - 164: 160(ptr) AccessChain 12 158 - Store 164 163 - 167: 160(ptr) AccessChain 12 166 - 168: 9(fvec4) Load 167 - 169: 9(fvec4) DPdy 168 - 170: 160(ptr) AccessChain 12 165 - Store 170 169 - 172: 160(ptr) AccessChain 12 159 - 173: 9(fvec4) Load 172 - 174: 9(fvec4) Fwidth 173 - 175: 160(ptr) AccessChain 12 171 - Store 175 174 - 177: 160(ptr) AccessChain 12 159 - 178: 9(fvec4) Load 177 - 179: 9(fvec4) DPdxCoarse 178 - 180: 160(ptr) AccessChain 12 176 - Store 180 179 - 182: 160(ptr) AccessChain 12 166 - 183: 9(fvec4) Load 182 - 184: 9(fvec4) DPdyCoarse 183 - 185: 160(ptr) AccessChain 12 181 - Store 185 184 - 187: 160(ptr) AccessChain 12 159 - 188: 9(fvec4) Load 187 - 189: 9(fvec4) FwidthCoarse 188 - 190: 160(ptr) AccessChain 12 186 - Store 190 189 - 192: 160(ptr) AccessChain 12 159 - 193: 9(fvec4) Load 192 - 194: 9(fvec4) DPdxFine 193 - 195: 160(ptr) AccessChain 12 191 - Store 195 194 - 197: 160(ptr) AccessChain 12 166 - 198: 9(fvec4) Load 197 - 199: 9(fvec4) DPdyFine 198 - 200: 160(ptr) AccessChain 12 196 - Store 200 199 - 202: 160(ptr) AccessChain 12 159 - 203: 9(fvec4) Load 202 - 204: 9(fvec4) FwidthFine 203 - 205: 160(ptr) AccessChain 12 201 - Store 205 204 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.computeShaderDerivatives2.comp.out b/deps/glslang/Test/baseResults/spv.computeShaderDerivatives2.comp.out deleted file mode 100644 index 3c3d54ee..00000000 --- a/deps/glslang/Test/baseResults/spv.computeShaderDerivatives2.comp.out +++ /dev/null @@ -1,359 +0,0 @@ -spv.computeShaderDerivatives2.comp -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 212 - - Capability Shader - Capability DerivativeControl - Capability ComputeDerivativeGroupLinearNV - Extension "SPV_NV_compute_shader_derivatives" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" - ExecutionMode 4 LocalSize 2 4 1 - ExecutionMode 4 DerivativeGroupLinearNV - Source ESSL 320 - SourceExtension "GL_NV_compute_shader_derivatives" - Name 4 "main" - Name 10 "block" - MemberName 10(block) 0 "fDerivativeX" - MemberName 10(block) 1 "fDerivativeY" - MemberName 10(block) 2 "fDerivativeWidth" - MemberName 10(block) 3 "fCoarseDerivativeX" - MemberName 10(block) 4 "fCoarseDerivativeY" - MemberName 10(block) 5 "fCoarseDerivativeWidth" - MemberName 10(block) 6 "fFineDerivativeX" - MemberName 10(block) 7 "fFineDerivativeY" - MemberName 10(block) 8 "fFineDerivativeWidth" - MemberName 10(block) 9 "fX" - MemberName 10(block) 10 "fY" - MemberName 10(block) 11 "v2DerivativeX" - MemberName 10(block) 12 "v2DerivativeY" - MemberName 10(block) 13 "v2DerivativeWidth" - MemberName 10(block) 14 "v2CoarseDerivativeX" - MemberName 10(block) 15 "v2CoarseDerivativeY" - MemberName 10(block) 16 "v2CoarseDerivativeWidth" - MemberName 10(block) 17 "v2FineDerivativeX" - MemberName 10(block) 18 "v2FineDerivativeY" - MemberName 10(block) 19 "v2FineDerivativeWidth" - MemberName 10(block) 20 "v2X" - MemberName 10(block) 21 "v2Y" - MemberName 10(block) 22 "v3DerivativeX" - MemberName 10(block) 23 "v3DerivativeY" - MemberName 10(block) 24 "v3DerivativeWidth" - MemberName 10(block) 25 "v3CoarseDerivativeX" - MemberName 10(block) 26 "v3CoarseDerivativeY" - MemberName 10(block) 27 "v3CoarseDerivativeWidth" - MemberName 10(block) 28 "v3FineDerivativeX" - MemberName 10(block) 29 "v3FineDerivativeY" - MemberName 10(block) 30 "v3FineDerivativeWidth" - MemberName 10(block) 31 "v3X" - MemberName 10(block) 32 "v3Y" - MemberName 10(block) 33 "v4DerivativeX" - MemberName 10(block) 34 "v4DerivativeY" - MemberName 10(block) 35 "v4DerivativeWidth" - MemberName 10(block) 36 "v4CoarseDerivativeX" - MemberName 10(block) 37 "v4CoarseDerivativeY" - MemberName 10(block) 38 "v4CoarseDerivativeWidth" - MemberName 10(block) 39 "v4FineDerivativeX" - MemberName 10(block) 40 "v4FineDerivativeY" - MemberName 10(block) 41 "v4FineDerivativeWidth" - MemberName 10(block) 42 "v4X" - MemberName 10(block) 43 "v4Y" - Name 12 "" - MemberDecorate 10(block) 0 Offset 0 - MemberDecorate 10(block) 1 Offset 4 - MemberDecorate 10(block) 2 Offset 8 - MemberDecorate 10(block) 3 Offset 12 - MemberDecorate 10(block) 4 Offset 16 - MemberDecorate 10(block) 5 Offset 20 - MemberDecorate 10(block) 6 Offset 24 - MemberDecorate 10(block) 7 Offset 28 - MemberDecorate 10(block) 8 Offset 32 - MemberDecorate 10(block) 9 Offset 36 - MemberDecorate 10(block) 10 Offset 40 - MemberDecorate 10(block) 11 Offset 48 - MemberDecorate 10(block) 12 Offset 56 - MemberDecorate 10(block) 13 Offset 64 - MemberDecorate 10(block) 14 Offset 72 - MemberDecorate 10(block) 15 Offset 80 - MemberDecorate 10(block) 16 Offset 88 - MemberDecorate 10(block) 17 Offset 96 - MemberDecorate 10(block) 18 Offset 104 - MemberDecorate 10(block) 19 Offset 112 - MemberDecorate 10(block) 20 Offset 120 - MemberDecorate 10(block) 21 Offset 128 - MemberDecorate 10(block) 22 Offset 144 - MemberDecorate 10(block) 23 Offset 160 - MemberDecorate 10(block) 24 Offset 176 - MemberDecorate 10(block) 25 Offset 192 - MemberDecorate 10(block) 26 Offset 208 - MemberDecorate 10(block) 27 Offset 224 - MemberDecorate 10(block) 28 Offset 240 - MemberDecorate 10(block) 29 Offset 256 - MemberDecorate 10(block) 30 Offset 272 - MemberDecorate 10(block) 31 Offset 288 - MemberDecorate 10(block) 32 Offset 304 - MemberDecorate 10(block) 33 Offset 320 - MemberDecorate 10(block) 34 Offset 336 - MemberDecorate 10(block) 35 Offset 352 - MemberDecorate 10(block) 36 Offset 368 - MemberDecorate 10(block) 37 Offset 384 - MemberDecorate 10(block) 38 Offset 400 - MemberDecorate 10(block) 39 Offset 416 - MemberDecorate 10(block) 40 Offset 432 - MemberDecorate 10(block) 41 Offset 448 - MemberDecorate 10(block) 42 Offset 464 - MemberDecorate 10(block) 43 Offset 480 - Decorate 10(block) BufferBlock - Decorate 12 DescriptorSet 0 - Decorate 12 Binding 0 - Decorate 211 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 2 - 8: TypeVector 6(float) 3 - 9: TypeVector 6(float) 4 - 10(block): TypeStruct 6(float) 6(float) 6(float) 6(float) 6(float) 6(float) 6(float) 6(float) 6(float) 6(float) 6(float) 7(fvec2) 7(fvec2) 7(fvec2) 7(fvec2) 7(fvec2) 7(fvec2) 7(fvec2) 7(fvec2) 7(fvec2) 7(fvec2) 7(fvec2) 8(fvec3) 8(fvec3) 8(fvec3) 8(fvec3) 8(fvec3) 8(fvec3) 8(fvec3) 8(fvec3) 8(fvec3) 8(fvec3) 8(fvec3) 9(fvec4) 9(fvec4) 9(fvec4) 9(fvec4) 9(fvec4) 9(fvec4) 9(fvec4) 9(fvec4) 9(fvec4) 9(fvec4) 9(fvec4) - 11: TypePointer Uniform 10(block) - 12: 11(ptr) Variable Uniform - 13: TypeInt 32 1 - 14: 13(int) Constant 0 - 15: 13(int) Constant 9 - 16: TypePointer Uniform 6(float) - 21: 13(int) Constant 1 - 22: 13(int) Constant 10 - 27: 13(int) Constant 2 - 32: 13(int) Constant 3 - 37: 13(int) Constant 4 - 42: 13(int) Constant 5 - 47: 13(int) Constant 6 - 52: 13(int) Constant 7 - 57: 13(int) Constant 8 - 62: 13(int) Constant 11 - 63: 13(int) Constant 20 - 64: TypePointer Uniform 7(fvec2) - 69: 13(int) Constant 12 - 70: 13(int) Constant 21 - 75: 13(int) Constant 13 - 80: 13(int) Constant 14 - 85: 13(int) Constant 15 - 90: 13(int) Constant 16 - 95: 13(int) Constant 17 - 100: 13(int) Constant 18 - 105: 13(int) Constant 19 - 110: 13(int) Constant 22 - 111: 13(int) Constant 31 - 112: TypePointer Uniform 8(fvec3) - 117: 13(int) Constant 23 - 118: 13(int) Constant 32 - 123: 13(int) Constant 24 - 128: 13(int) Constant 25 - 133: 13(int) Constant 26 - 138: 13(int) Constant 27 - 143: 13(int) Constant 28 - 148: 13(int) Constant 29 - 153: 13(int) Constant 30 - 158: 13(int) Constant 33 - 159: 13(int) Constant 42 - 160: TypePointer Uniform 9(fvec4) - 165: 13(int) Constant 34 - 166: 13(int) Constant 43 - 171: 13(int) Constant 35 - 176: 13(int) Constant 36 - 181: 13(int) Constant 37 - 186: 13(int) Constant 38 - 191: 13(int) Constant 39 - 196: 13(int) Constant 40 - 201: 13(int) Constant 41 - 206: TypeInt 32 0 - 207: TypeVector 206(int) 3 - 208: 206(int) Constant 2 - 209: 206(int) Constant 4 - 210: 206(int) Constant 1 - 211: 207(ivec3) ConstantComposite 208 209 210 - 4(main): 2 Function None 3 - 5: Label - 17: 16(ptr) AccessChain 12 15 - 18: 6(float) Load 17 - 19: 6(float) DPdx 18 - 20: 16(ptr) AccessChain 12 14 - Store 20 19 - 23: 16(ptr) AccessChain 12 22 - 24: 6(float) Load 23 - 25: 6(float) DPdy 24 - 26: 16(ptr) AccessChain 12 21 - Store 26 25 - 28: 16(ptr) AccessChain 12 15 - 29: 6(float) Load 28 - 30: 6(float) Fwidth 29 - 31: 16(ptr) AccessChain 12 27 - Store 31 30 - 33: 16(ptr) AccessChain 12 15 - 34: 6(float) Load 33 - 35: 6(float) DPdxCoarse 34 - 36: 16(ptr) AccessChain 12 32 - Store 36 35 - 38: 16(ptr) AccessChain 12 22 - 39: 6(float) Load 38 - 40: 6(float) DPdyCoarse 39 - 41: 16(ptr) AccessChain 12 37 - Store 41 40 - 43: 16(ptr) AccessChain 12 15 - 44: 6(float) Load 43 - 45: 6(float) FwidthCoarse 44 - 46: 16(ptr) AccessChain 12 42 - Store 46 45 - 48: 16(ptr) AccessChain 12 15 - 49: 6(float) Load 48 - 50: 6(float) DPdxFine 49 - 51: 16(ptr) AccessChain 12 47 - Store 51 50 - 53: 16(ptr) AccessChain 12 22 - 54: 6(float) Load 53 - 55: 6(float) DPdyFine 54 - 56: 16(ptr) AccessChain 12 52 - Store 56 55 - 58: 16(ptr) AccessChain 12 15 - 59: 6(float) Load 58 - 60: 6(float) FwidthFine 59 - 61: 16(ptr) AccessChain 12 57 - Store 61 60 - 65: 64(ptr) AccessChain 12 63 - 66: 7(fvec2) Load 65 - 67: 7(fvec2) DPdx 66 - 68: 64(ptr) AccessChain 12 62 - Store 68 67 - 71: 64(ptr) AccessChain 12 70 - 72: 7(fvec2) Load 71 - 73: 7(fvec2) DPdy 72 - 74: 64(ptr) AccessChain 12 69 - Store 74 73 - 76: 64(ptr) AccessChain 12 63 - 77: 7(fvec2) Load 76 - 78: 7(fvec2) Fwidth 77 - 79: 64(ptr) AccessChain 12 75 - Store 79 78 - 81: 64(ptr) AccessChain 12 63 - 82: 7(fvec2) Load 81 - 83: 7(fvec2) DPdxCoarse 82 - 84: 64(ptr) AccessChain 12 80 - Store 84 83 - 86: 64(ptr) AccessChain 12 70 - 87: 7(fvec2) Load 86 - 88: 7(fvec2) DPdyCoarse 87 - 89: 64(ptr) AccessChain 12 85 - Store 89 88 - 91: 64(ptr) AccessChain 12 63 - 92: 7(fvec2) Load 91 - 93: 7(fvec2) FwidthCoarse 92 - 94: 64(ptr) AccessChain 12 90 - Store 94 93 - 96: 64(ptr) AccessChain 12 63 - 97: 7(fvec2) Load 96 - 98: 7(fvec2) DPdxFine 97 - 99: 64(ptr) AccessChain 12 95 - Store 99 98 - 101: 64(ptr) AccessChain 12 70 - 102: 7(fvec2) Load 101 - 103: 7(fvec2) DPdyFine 102 - 104: 64(ptr) AccessChain 12 100 - Store 104 103 - 106: 64(ptr) AccessChain 12 63 - 107: 7(fvec2) Load 106 - 108: 7(fvec2) FwidthFine 107 - 109: 64(ptr) AccessChain 12 105 - Store 109 108 - 113: 112(ptr) AccessChain 12 111 - 114: 8(fvec3) Load 113 - 115: 8(fvec3) DPdx 114 - 116: 112(ptr) AccessChain 12 110 - Store 116 115 - 119: 112(ptr) AccessChain 12 118 - 120: 8(fvec3) Load 119 - 121: 8(fvec3) DPdy 120 - 122: 112(ptr) AccessChain 12 117 - Store 122 121 - 124: 112(ptr) AccessChain 12 111 - 125: 8(fvec3) Load 124 - 126: 8(fvec3) Fwidth 125 - 127: 112(ptr) AccessChain 12 123 - Store 127 126 - 129: 112(ptr) AccessChain 12 111 - 130: 8(fvec3) Load 129 - 131: 8(fvec3) DPdxCoarse 130 - 132: 112(ptr) AccessChain 12 128 - Store 132 131 - 134: 112(ptr) AccessChain 12 118 - 135: 8(fvec3) Load 134 - 136: 8(fvec3) DPdyCoarse 135 - 137: 112(ptr) AccessChain 12 133 - Store 137 136 - 139: 112(ptr) AccessChain 12 111 - 140: 8(fvec3) Load 139 - 141: 8(fvec3) FwidthCoarse 140 - 142: 112(ptr) AccessChain 12 138 - Store 142 141 - 144: 112(ptr) AccessChain 12 111 - 145: 8(fvec3) Load 144 - 146: 8(fvec3) DPdxFine 145 - 147: 112(ptr) AccessChain 12 143 - Store 147 146 - 149: 112(ptr) AccessChain 12 118 - 150: 8(fvec3) Load 149 - 151: 8(fvec3) DPdyFine 150 - 152: 112(ptr) AccessChain 12 148 - Store 152 151 - 154: 112(ptr) AccessChain 12 111 - 155: 8(fvec3) Load 154 - 156: 8(fvec3) FwidthFine 155 - 157: 112(ptr) AccessChain 12 153 - Store 157 156 - 161: 160(ptr) AccessChain 12 159 - 162: 9(fvec4) Load 161 - 163: 9(fvec4) DPdx 162 - 164: 160(ptr) AccessChain 12 158 - Store 164 163 - 167: 160(ptr) AccessChain 12 166 - 168: 9(fvec4) Load 167 - 169: 9(fvec4) DPdy 168 - 170: 160(ptr) AccessChain 12 165 - Store 170 169 - 172: 160(ptr) AccessChain 12 159 - 173: 9(fvec4) Load 172 - 174: 9(fvec4) Fwidth 173 - 175: 160(ptr) AccessChain 12 171 - Store 175 174 - 177: 160(ptr) AccessChain 12 159 - 178: 9(fvec4) Load 177 - 179: 9(fvec4) DPdxCoarse 178 - 180: 160(ptr) AccessChain 12 176 - Store 180 179 - 182: 160(ptr) AccessChain 12 166 - 183: 9(fvec4) Load 182 - 184: 9(fvec4) DPdyCoarse 183 - 185: 160(ptr) AccessChain 12 181 - Store 185 184 - 187: 160(ptr) AccessChain 12 159 - 188: 9(fvec4) Load 187 - 189: 9(fvec4) FwidthCoarse 188 - 190: 160(ptr) AccessChain 12 186 - Store 190 189 - 192: 160(ptr) AccessChain 12 159 - 193: 9(fvec4) Load 192 - 194: 9(fvec4) DPdxFine 193 - 195: 160(ptr) AccessChain 12 191 - Store 195 194 - 197: 160(ptr) AccessChain 12 166 - 198: 9(fvec4) Load 197 - 199: 9(fvec4) DPdyFine 198 - 200: 160(ptr) AccessChain 12 196 - Store 200 199 - 202: 160(ptr) AccessChain 12 159 - 203: 9(fvec4) Load 202 - 204: 9(fvec4) FwidthFine 203 - 205: 160(ptr) AccessChain 12 201 - Store 205 204 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.conditionalDemote.frag.out b/deps/glslang/Test/baseResults/spv.conditionalDemote.frag.out deleted file mode 100644 index dfd45962..00000000 --- a/deps/glslang/Test/baseResults/spv.conditionalDemote.frag.out +++ /dev/null @@ -1,69 +0,0 @@ -spv.conditionalDemote.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 38 - - Capability Shader - Capability DemoteToHelperInvocationEXT - Extension "SPV_EXT_demote_to_helper_invocation" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 17 36 - ExecutionMode 4 OriginUpperLeft - Source GLSL 460 - SourceExtension "GL_EXT_demote_to_helper_invocation" - Name 4 "main" - Name 9 "v" - Name 13 "tex" - Name 17 "coord" - Name 33 "x" - Name 36 "o" - Decorate 13(tex) DescriptorSet 0 - Decorate 13(tex) Binding 0 - Decorate 17(coord) Location 0 - Decorate 36(o) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: TypeImage 6(float) 2D sampled format:Unknown - 11: TypeSampledImage 10 - 12: TypePointer UniformConstant 11 - 13(tex): 12(ptr) Variable UniformConstant - 15: TypeVector 6(float) 2 - 16: TypePointer Input 15(fvec2) - 17(coord): 16(ptr) Variable Input - 21: 6(float) Constant 1036831949 - 22: 6(float) Constant 1045220557 - 23: 6(float) Constant 1050253722 - 24: 6(float) Constant 1053609165 - 25: 7(fvec4) ConstantComposite 21 22 23 24 - 26: TypeBool - 27: TypeVector 26(bool) 4 - 32: TypePointer Function 26(bool) - 35: TypePointer Output 7(fvec4) - 36(o): 35(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 9(v): 8(ptr) Variable Function - 33(x): 32(ptr) Variable Function - 14: 11 Load 13(tex) - 18: 15(fvec2) Load 17(coord) - 19: 7(fvec4) ImageSampleImplicitLod 14 18 - Store 9(v) 19 - 20: 7(fvec4) Load 9(v) - 28: 27(bvec4) FOrdEqual 20 25 - 29: 26(bool) All 28 - SelectionMerge 31 None - BranchConditional 29 30 31 - 30: Label - DemoteToHelperInvocationEXT - Branch 31 - 31: Label - 34: 26(bool) IsHelperInvocationEXT - Store 33(x) 34 - 37: 7(fvec4) Load 9(v) - Store 36(o) 37 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.conditionalDiscard.frag.out b/deps/glslang/Test/baseResults/spv.conditionalDiscard.frag.out deleted file mode 100644 index 2e53e9b8..00000000 --- a/deps/glslang/Test/baseResults/spv.conditionalDiscard.frag.out +++ /dev/null @@ -1,60 +0,0 @@ -spv.conditionalDiscard.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 36 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 17 34 - ExecutionMode 4 OriginUpperLeft - Source GLSL 400 - Name 4 "main" - Name 9 "v" - Name 13 "tex" - Name 17 "coord" - Name 34 "gl_FragColor" - Decorate 13(tex) DescriptorSet 0 - Decorate 13(tex) Binding 0 - Decorate 17(coord) Location 0 - Decorate 34(gl_FragColor) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: TypeImage 6(float) 2D sampled format:Unknown - 11: TypeSampledImage 10 - 12: TypePointer UniformConstant 11 - 13(tex): 12(ptr) Variable UniformConstant - 15: TypeVector 6(float) 2 - 16: TypePointer Input 15(fvec2) - 17(coord): 16(ptr) Variable Input - 21: 6(float) Constant 1036831949 - 22: 6(float) Constant 1045220557 - 23: 6(float) Constant 1050253722 - 24: 6(float) Constant 1053609165 - 25: 7(fvec4) ConstantComposite 21 22 23 24 - 26: TypeBool - 27: TypeVector 26(bool) 4 - 33: TypePointer Output 7(fvec4) -34(gl_FragColor): 33(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 9(v): 8(ptr) Variable Function - 14: 11 Load 13(tex) - 18: 15(fvec2) Load 17(coord) - 19: 7(fvec4) ImageSampleImplicitLod 14 18 - Store 9(v) 19 - 20: 7(fvec4) Load 9(v) - 28: 27(bvec4) FOrdEqual 20 25 - 29: 26(bool) All 28 - SelectionMerge 31 None - BranchConditional 29 30 31 - 30: Label - Kill - 31: Label - 35: 7(fvec4) Load 9(v) - Store 34(gl_FragColor) 35 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.constConstruct.vert.out b/deps/glslang/Test/baseResults/spv.constConstruct.vert.out deleted file mode 100644 index a8d50975..00000000 --- a/deps/glslang/Test/baseResults/spv.constConstruct.vert.out +++ /dev/null @@ -1,173 +0,0 @@ -spv.constConstruct.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 150 - - Capability Shader - Capability Float16 - Capability Float64 - Capability Int64 - Capability Int16 - Capability Int8 - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" - Source GLSL 450 - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float32" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float64" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int16" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int32" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int64" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int8" - Name 4 "main" - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 16 - 7:6(float16_t) Constant 15360 - 8:6(float16_t) Constant 16384 - 9:6(float16_t) Constant 16896 - 10:6(float16_t) Constant 17408 - 11:6(float16_t) Constant 17664 - 12:6(float16_t) Constant 17920 - 13:6(float16_t) Constant 18176 - 14:6(float16_t) Constant 18432 - 15:6(float16_t) Constant 18560 - 16:6(float16_t) Constant 18688 - 17:6(float16_t) Constant 18816 - 18: TypeFloat 32 - 19: 18(float) Constant 1099431936 - 20: 18(float) Constant 1099956224 - 21: 18(float) Constant 1100480512 - 22: 18(float) Constant 1101004800 - 23: 18(float) Constant 1101529088 - 24: 18(float) Constant 1102053376 - 25: 18(float) Constant 1102577664 - 26: 18(float) Constant 1103101952 - 27: 18(float) Constant 1103626240 - 28: 18(float) Constant 1104150528 - 29: 18(float) Constant 1104674816 - 30: 18(float) Constant 1065353216 - 31: TypeFloat 64 - 32:31(float64_t) Constant 0 1077968896 - 33:31(float64_t) Constant 0 1078001664 - 34:31(float64_t) Constant 0 1078034432 - 35:31(float64_t) Constant 0 1078067200 - 36:31(float64_t) Constant 0 1078099968 - 37:31(float64_t) Constant 0 1078132736 - 38:31(float64_t) Constant 0 1078165504 - 39:31(float64_t) Constant 0 1078198272 - 40:31(float64_t) Constant 0 1078231040 - 41:31(float64_t) Constant 0 1078263808 - 42:31(float64_t) Constant 0 1078296576 - 43:31(float64_t) Constant 0 1072693248 - 44: TypeInt 8 1 - 45: 44(int8_t) Constant 49 - 46: 44(int8_t) Constant 50 - 47: 44(int8_t) Constant 51 - 48: 44(int8_t) Constant 52 - 49: 44(int8_t) Constant 53 - 50: 44(int8_t) Constant 54 - 51: 44(int8_t) Constant 55 - 52: 44(int8_t) Constant 56 - 53: 44(int8_t) Constant 57 - 54: 44(int8_t) Constant 58 - 55: 44(int8_t) Constant 59 - 56: 44(int8_t) Constant 1 - 57: TypeInt 16 1 - 58: 57(int16_t) Constant 65 - 59: 57(int16_t) Constant 66 - 60: 57(int16_t) Constant 67 - 61: 57(int16_t) Constant 68 - 62: 57(int16_t) Constant 69 - 63: 57(int16_t) Constant 70 - 64: 57(int16_t) Constant 71 - 65: 57(int16_t) Constant 72 - 66: 57(int16_t) Constant 73 - 67: 57(int16_t) Constant 74 - 68: 57(int16_t) Constant 75 - 69: 57(int16_t) Constant 1 - 70: TypeInt 32 1 - 71: 70(int) Constant 81 - 72: 70(int) Constant 82 - 73: 70(int) Constant 83 - 74: 70(int) Constant 84 - 75: 70(int) Constant 85 - 76: 70(int) Constant 86 - 77: 70(int) Constant 87 - 78: 70(int) Constant 88 - 79: 70(int) Constant 89 - 80: 70(int) Constant 90 - 81: 70(int) Constant 91 - 82: 70(int) Constant 1 - 83: TypeInt 64 1 - 84: 83(int64_t) Constant 97 0 - 85: 83(int64_t) Constant 98 0 - 86: 83(int64_t) Constant 99 0 - 87: 83(int64_t) Constant 100 0 - 88: 83(int64_t) Constant 101 0 - 89: 83(int64_t) Constant 102 0 - 90: 83(int64_t) Constant 103 0 - 91: 83(int64_t) Constant 104 0 - 92: 83(int64_t) Constant 105 0 - 93: 83(int64_t) Constant 106 0 - 94: 83(int64_t) Constant 107 0 - 95: 83(int64_t) Constant 1 0 - 96: TypeInt 8 0 - 97: 96(int8_t) Constant 113 - 98: 96(int8_t) Constant 114 - 99: 96(int8_t) Constant 115 - 100: 96(int8_t) Constant 116 - 101: 96(int8_t) Constant 117 - 102: 96(int8_t) Constant 118 - 103: 96(int8_t) Constant 119 - 104: 96(int8_t) Constant 120 - 105: 96(int8_t) Constant 121 - 106: 96(int8_t) Constant 122 - 107: 96(int8_t) Constant 123 - 108: 96(int8_t) Constant 1 - 109: TypeInt 16 0 - 110:109(int16_t) Constant 129 - 111:109(int16_t) Constant 130 - 112:109(int16_t) Constant 131 - 113:109(int16_t) Constant 65412 - 114:109(int16_t) Constant 133 - 115:109(int16_t) Constant 134 - 116:109(int16_t) Constant 135 - 117:109(int16_t) Constant 136 - 118:109(int16_t) Constant 137 - 119:109(int16_t) Constant 138 - 120:109(int16_t) Constant 139 - 121:109(int16_t) Constant 1 - 122: TypeInt 32 0 - 123: 122(int) Constant 145 - 124: 122(int) Constant 146 - 125: 122(int) Constant 147 - 126: 122(int) Constant 4294967188 - 127: 122(int) Constant 149 - 128: 122(int) Constant 150 - 129: 122(int) Constant 151 - 130: 122(int) Constant 152 - 131: 122(int) Constant 153 - 132: 122(int) Constant 154 - 133: 122(int) Constant 155 - 134: 122(int) Constant 1 - 135: TypeInt 64 0 - 136:135(int64_t) Constant 161 0 - 137:135(int64_t) Constant 162 0 - 138:135(int64_t) Constant 163 0 - 139:135(int64_t) Constant 4294967204 4294967295 - 140:135(int64_t) Constant 165 0 - 141:135(int64_t) Constant 166 0 - 142:135(int64_t) Constant 167 0 - 143:135(int64_t) Constant 168 0 - 144:135(int64_t) Constant 169 0 - 145:135(int64_t) Constant 170 0 - 146:135(int64_t) Constant 171 0 - 147:135(int64_t) Constant 1 0 - 148: TypeBool - 149: 148(bool) ConstantTrue - 4(main): 2 Function None 3 - 5: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.constStruct.vert.out b/deps/glslang/Test/baseResults/spv.constStruct.vert.out deleted file mode 100644 index 61d0e54f..00000000 --- a/deps/glslang/Test/baseResults/spv.constStruct.vert.out +++ /dev/null @@ -1,45 +0,0 @@ -spv.constStruct.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 23 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" - Source GLSL 450 - Name 4 "main" - Name 9 "T" - MemberName 9(T) 0 "m" - Name 10 "U" - MemberName 10(U) 0 "m" - Name 11 "S" - MemberName 11(S) 0 "t" - MemberName 11(S) 1 "u" - Name 13 "s1" - Name 22 "s2" - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 2 - 8: TypeMatrix 7(fvec2) 2 - 9(T): TypeStruct 8 - 10(U): TypeStruct 8 - 11(S): TypeStruct 9(T) 10(U) - 12: TypePointer Function 11(S) - 14: 6(float) Constant 1065353216 - 15: 6(float) Constant 0 - 16: 7(fvec2) ConstantComposite 14 15 - 17: 7(fvec2) ConstantComposite 15 14 - 18: 8 ConstantComposite 16 17 - 19: 9(T) ConstantComposite 18 - 20: 10(U) ConstantComposite 18 - 21: 11(S) ConstantComposite 19 20 - 4(main): 2 Function None 3 - 5: Label - 13(s1): 12(ptr) Variable Function - 22(s2): 12(ptr) Variable Function - Store 13(s1) 21 - Store 22(s2) 21 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.constructComposite.comp.out b/deps/glslang/Test/baseResults/spv.constructComposite.comp.out deleted file mode 100644 index 73d663b9..00000000 --- a/deps/glslang/Test/baseResults/spv.constructComposite.comp.out +++ /dev/null @@ -1,64 +0,0 @@ -spv.constructComposite.comp -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 29 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" - ExecutionMode 4 LocalSize 64 1 1 - Source GLSL 460 - Name 4 "main" - Name 7 "sA" - MemberName 7(sA) 0 "x" - MemberName 7(sA) 1 "y" - Name 8 "sC" - MemberName 8(sC) 0 "state" - Name 10 "c" - Name 11 "sA" - MemberName 11(sA) 0 "x" - MemberName 11(sA) 1 "y" - Name 12 "sB" - MemberName 12(sB) 0 "a" - Name 13 "ubo" - MemberName 13(ubo) 0 "b" - Name 15 "" - MemberDecorate 11(sA) 0 Offset 0 - MemberDecorate 11(sA) 1 Offset 4 - MemberDecorate 12(sB) 0 Offset 0 - MemberDecorate 13(ubo) 0 Offset 0 - Decorate 13(ubo) Block - Decorate 15 DescriptorSet 0 - Decorate 15 Binding 0 - Decorate 28 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7(sA): TypeStruct 6(int) 6(int) - 8(sC): TypeStruct 7(sA) - 9: TypePointer Private 8(sC) - 10(c): 9(ptr) Variable Private - 11(sA): TypeStruct 6(int) 6(int) - 12(sB): TypeStruct 11(sA) - 13(ubo): TypeStruct 12(sB) - 14: TypePointer Uniform 13(ubo) - 15: 14(ptr) Variable Uniform - 16: 6(int) Constant 0 - 17: TypePointer Uniform 11(sA) - 24: TypeInt 32 0 - 25: TypeVector 24(int) 3 - 26: 24(int) Constant 64 - 27: 24(int) Constant 1 - 28: 25(ivec3) ConstantComposite 26 27 27 - 4(main): 2 Function None 3 - 5: Label - 18: 17(ptr) AccessChain 15 16 16 - 19: 11(sA) Load 18 - 20: 6(int) CompositeExtract 19 0 - 21: 6(int) CompositeExtract 19 1 - 22: 7(sA) CompositeConstruct 20 21 - 23: 8(sC) CompositeConstruct 22 - Store 10(c) 23 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.controlFlowAttributes.frag.out b/deps/glslang/Test/baseResults/spv.controlFlowAttributes.frag.out deleted file mode 100644 index cf34ae2f..00000000 --- a/deps/glslang/Test/baseResults/spv.controlFlowAttributes.frag.out +++ /dev/null @@ -1,250 +0,0 @@ -spv.controlFlowAttributes.frag -WARNING: 0:27: 'unroll' : expected no arguments -WARNING: 0:28: 'dont_unroll' : expected no arguments -WARNING: 0:29: 'dependency_infinite' : expected no arguments -WARNING: 0:30: 'dependency_length' : expected a single integer argument -WARNING: 0:31: '' : attribute with arguments not recognized, skipping -WARNING: 0:32: '' : attribute with arguments not recognized, skipping -WARNING: 0:33: '' : attribute with arguments not recognized, skipping - -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 123 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_control_flow_attributes" - Name 4 "main" - Name 6 "f0(" - Name 8 "f1(" - Name 23 "i" - Name 41 "i" - Name 52 "cond" - Name 65 "i" - Name 84 "i" - 2: TypeVoid - 3: TypeFunction 2 - 19: TypeBool - 20: 19(bool) ConstantTrue - 21: TypeInt 32 1 - 22: TypePointer Function 21(int) - 24: 21(int) Constant 0 - 31: 21(int) Constant 8 - 34: 21(int) Constant 1 - 51: TypePointer Private 19(bool) - 52(cond): 51(ptr) Variable Private - 59: 19(bool) ConstantFalse - 60: 21(int) Constant 3 - 4(main): 2 Function None 3 - 5: Label - 23(i): 22(ptr) Variable Function - 41(i): 22(ptr) Variable Function - 65(i): 22(ptr) Variable Function - 84(i): 22(ptr) Variable Function - Store 23(i) 24 - Branch 25 - 25: Label - LoopMerge 27 28 Unroll - Branch 29 - 29: Label - 30: 21(int) Load 23(i) - 32: 19(bool) SLessThan 30 31 - BranchConditional 32 26 27 - 26: Label - Branch 28 - 28: Label - 33: 21(int) Load 23(i) - 35: 21(int) IAdd 33 34 - Store 23(i) 35 - Branch 25 - 27: Label - 36: 2 FunctionCall 6(f0() - Branch 37 - 37: Label - LoopMerge 39 40 DependencyInfinite - Branch 38 - 38: Label - Branch 40 - 40: Label - BranchConditional 20 37 39 - 39: Label - Store 41(i) 24 - Branch 42 - 42: Label - LoopMerge 44 45 DependencyLength 4 - Branch 46 - 46: Label - 47: 21(int) Load 41(i) - 48: 19(bool) SLessThan 47 31 - BranchConditional 48 43 44 - 43: Label - Branch 45 - 45: Label - 49: 21(int) Load 41(i) - 50: 21(int) IAdd 49 34 - Store 41(i) 50 - Branch 42 - 44: Label - 53: 19(bool) Load 52(cond) - SelectionMerge 55 Flatten - BranchConditional 53 54 55 - 54: Label - Branch 55 - 55: Label - 56: 19(bool) Load 52(cond) - SelectionMerge 58 DontFlatten - BranchConditional 56 57 58 - 57: Label - Store 52(cond) 59 - Branch 58 - 58: Label - SelectionMerge 62 DontFlatten - Switch 60 62 - case 3: 61 - 61: Label - Branch 62 - 62: Label - Store 65(i) 24 - Branch 66 - 66: Label - LoopMerge 68 69 None - Branch 70 - 70: Label - 71: 21(int) Load 65(i) - 72: 19(bool) SLessThan 71 31 - BranchConditional 72 67 68 - 67: Label - Branch 69 - 69: Label - 73: 21(int) Load 65(i) - 74: 21(int) IAdd 73 34 - Store 65(i) 74 - Branch 66 - 68: Label - Branch 75 - 75: Label - LoopMerge 77 78 None - Branch 79 - 79: Label - BranchConditional 20 76 77 - 76: Label - Branch 78 - 78: Label - Branch 75 - 77: Label - Branch 80 - 80: Label - LoopMerge 82 83 None - Branch 81 - 81: Label - Branch 83 - 83: Label - BranchConditional 20 80 82 - 82: Label - Store 84(i) 24 - Branch 85 - 85: Label - LoopMerge 87 88 None - Branch 89 - 89: Label - 90: 21(int) Load 84(i) - 91: 19(bool) SLessThan 90 31 - BranchConditional 91 86 87 - 86: Label - Branch 88 - 88: Label - 92: 21(int) Load 84(i) - 93: 21(int) IAdd 92 34 - Store 84(i) 93 - Branch 85 - 87: Label - 94: 19(bool) Load 52(cond) - SelectionMerge 96 None - BranchConditional 94 95 96 - 95: Label - Branch 96 - 96: Label - 97: 19(bool) Load 52(cond) - SelectionMerge 99 None - BranchConditional 97 98 99 - 98: Label - Store 52(cond) 59 - Branch 99 - 99: Label - SelectionMerge 101 None - Switch 60 101 - case 3: 100 - 100: Label - Branch 101 - 101: Label - Branch 104 - 104: Label - LoopMerge 106 107 Unroll DontUnroll DependencyLength 2 - Branch 108 - 108: Label - 109: 19(bool) Load 52(cond) - BranchConditional 109 105 106 - 105: Label - Branch 107 - 107: Label - Branch 104 - 106: Label - SelectionMerge 111 DontFlatten - Switch 60 111 - case 3: 110 - 110: Label - Branch 111 - 111: Label - 114: 19(bool) Load 52(cond) - SelectionMerge 116 Flatten - BranchConditional 114 115 116 - 115: Label - Branch 116 - 116: Label - Branch 117 - 117: Label - LoopMerge 119 120 DependencyInfinite - Branch 121 - 121: Label - 122: 19(bool) Load 52(cond) - BranchConditional 122 118 119 - 118: Label - Branch 120 - 120: Label - Branch 117 - 119: Label - Return - FunctionEnd - 6(f0(): 2 Function None 3 - 7: Label - Branch 10 - 10: Label - LoopMerge 12 13 DontUnroll - Branch 11 - 11: Label - Branch 13 - 13: Label - Branch 10 - 12: Label - Unreachable - FunctionEnd - 8(f1(): 2 Function None 3 - 9: Label - Branch 14 - 14: Label - LoopMerge 16 17 DontUnroll - Branch 18 - 18: Label - BranchConditional 20 15 16 - 15: Label - Branch 17 - 17: Label - Branch 14 - 16: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.conversion.frag.out b/deps/glslang/Test/baseResults/spv.conversion.frag.out deleted file mode 100644 index b600b384..00000000 --- a/deps/glslang/Test/baseResults/spv.conversion.frag.out +++ /dev/null @@ -1,582 +0,0 @@ -spv.conversion.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 455 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 39 53 157 322 446 448 450 452 454 - ExecutionMode 4 OriginUpperLeft - Source GLSL 140 - Name 4 "main" - Name 8 "b" - Name 11 "u_i" - Name 18 "u_f" - Name 25 "b2" - Name 33 "b3" - Name 39 "i_i" - Name 45 "b4" - Name 53 "i_f" - Name 58 "i" - Name 68 "i2" - Name 71 "u_f2" - Name 81 "i3" - Name 84 "u_f3" - Name 94 "i4" - Name 97 "u_f4" - Name 106 "f" - Name 110 "f2" - Name 114 "f3" - Name 118 "f4" - Name 157 "i_i4" - Name 322 "gl_FragColor" - Name 417 "cv2" - Name 418 "cv5" - Name 428 "u_b" - Name 430 "u_b2" - Name 432 "u_b3" - Name 434 "u_b4" - Name 436 "u_i2" - Name 438 "u_i3" - Name 440 "u_i4" - Name 441 "i_b" - Name 442 "i_b2" - Name 443 "i_b3" - Name 444 "i_b4" - Name 446 "i_i2" - Name 448 "i_i3" - Name 450 "i_f2" - Name 452 "i_f3" - Name 454 "i_f4" - Decorate 39(i_i) Flat - Decorate 39(i_i) Location 0 - Decorate 53(i_f) Location 4 - Decorate 157(i_i4) Flat - Decorate 157(i_i4) Location 3 - Decorate 322(gl_FragColor) Location 0 - Decorate 446(i_i2) Flat - Decorate 446(i_i2) Location 1 - Decorate 448(i_i3) Flat - Decorate 448(i_i3) Location 2 - Decorate 450(i_f2) Location 5 - Decorate 452(i_f3) Location 6 - Decorate 454(i_f4) Location 7 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeBool - 7: TypePointer Function 6(bool) - 9: TypeInt 32 1 - 10: TypePointer Private 9(int) - 11(u_i): 10(ptr) Variable Private - 13: TypeInt 32 0 - 14: 13(int) Constant 0 - 16: TypeFloat 32 - 17: TypePointer Private 16(float) - 18(u_f): 17(ptr) Variable Private - 20: 16(float) Constant 0 - 23: TypeVector 6(bool) 2 - 24: TypePointer Function 23(bvec2) - 31: TypeVector 6(bool) 3 - 32: TypePointer Function 31(bvec3) - 38: TypePointer Input 9(int) - 39(i_i): 38(ptr) Variable Input - 43: TypeVector 6(bool) 4 - 44: TypePointer Function 43(bvec4) - 52: TypePointer Input 16(float) - 53(i_f): 52(ptr) Variable Input - 57: TypePointer Function 9(int) - 62: 9(int) Constant 0 - 63: 9(int) Constant 1 - 66: TypeVector 9(int) 2 - 67: TypePointer Function 66(ivec2) - 69: TypeVector 16(float) 2 - 70: TypePointer Private 69(fvec2) - 71(u_f2): 70(ptr) Variable Private - 75: 66(ivec2) ConstantComposite 62 62 - 76: 66(ivec2) ConstantComposite 63 63 - 79: TypeVector 9(int) 3 - 80: TypePointer Function 79(ivec3) - 82: TypeVector 16(float) 3 - 83: TypePointer Private 82(fvec3) - 84(u_f3): 83(ptr) Variable Private - 88: 79(ivec3) ConstantComposite 62 62 62 - 89: 79(ivec3) ConstantComposite 63 63 63 - 92: TypeVector 9(int) 4 - 93: TypePointer Function 92(ivec4) - 95: TypeVector 16(float) 4 - 96: TypePointer Private 95(fvec4) - 97(u_f4): 96(ptr) Variable Private - 101: 92(ivec4) ConstantComposite 62 62 62 62 - 102: 92(ivec4) ConstantComposite 63 63 63 63 - 105: TypePointer Function 16(float) - 109: TypePointer Function 69(fvec2) - 113: TypePointer Function 82(fvec3) - 117: TypePointer Function 95(fvec4) - 124: 16(float) Constant 1065353216 - 132: 69(fvec2) ConstantComposite 20 20 - 133: 69(fvec2) ConstantComposite 124 124 - 141: 82(fvec3) ConstantComposite 20 20 20 - 142: 82(fvec3) ConstantComposite 124 124 124 - 150: 95(fvec4) ConstantComposite 20 20 20 20 - 151: 95(fvec4) ConstantComposite 124 124 124 124 - 156: TypePointer Input 92(ivec4) - 157(i_i4): 156(ptr) Variable Input - 159: TypeVector 13(int) 4 - 160: 159(ivec4) ConstantComposite 14 14 14 14 - 315: 13(int) Constant 1 - 321: TypePointer Output 95(fvec4) -322(gl_FragColor): 321(ptr) Variable Output - 336: 13(int) Constant 2 - 349: 13(int) Constant 3 - 427: TypePointer Private 6(bool) - 428(u_b): 427(ptr) Variable Private - 429: TypePointer Private 23(bvec2) - 430(u_b2): 429(ptr) Variable Private - 431: TypePointer Private 31(bvec3) - 432(u_b3): 431(ptr) Variable Private - 433: TypePointer Private 43(bvec4) - 434(u_b4): 433(ptr) Variable Private - 435: TypePointer Private 66(ivec2) - 436(u_i2): 435(ptr) Variable Private - 437: TypePointer Private 79(ivec3) - 438(u_i3): 437(ptr) Variable Private - 439: TypePointer Private 92(ivec4) - 440(u_i4): 439(ptr) Variable Private - 441(i_b): 427(ptr) Variable Private - 442(i_b2): 429(ptr) Variable Private - 443(i_b3): 431(ptr) Variable Private - 444(i_b4): 433(ptr) Variable Private - 445: TypePointer Input 66(ivec2) - 446(i_i2): 445(ptr) Variable Input - 447: TypePointer Input 79(ivec3) - 448(i_i3): 447(ptr) Variable Input - 449: TypePointer Input 69(fvec2) - 450(i_f2): 449(ptr) Variable Input - 451: TypePointer Input 82(fvec3) - 452(i_f3): 451(ptr) Variable Input - 453: TypePointer Input 95(fvec4) - 454(i_f4): 453(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 8(b): 7(ptr) Variable Function - 25(b2): 24(ptr) Variable Function - 33(b3): 32(ptr) Variable Function - 45(b4): 44(ptr) Variable Function - 58(i): 57(ptr) Variable Function - 68(i2): 67(ptr) Variable Function - 81(i3): 80(ptr) Variable Function - 94(i4): 93(ptr) Variable Function - 106(f): 105(ptr) Variable Function - 110(f2): 109(ptr) Variable Function - 114(f3): 113(ptr) Variable Function - 118(f4): 117(ptr) Variable Function - 298: 105(ptr) Variable Function - 309: 105(ptr) Variable Function - 353: 117(ptr) Variable Function - 417(cv2): 93(ptr) Variable Function - 418(cv5): 44(ptr) Variable Function - 12: 9(int) Load 11(u_i) - 15: 6(bool) INotEqual 12 14 - 19: 16(float) Load 18(u_f) - 21: 6(bool) FUnordNotEqual 19 20 - 22: 6(bool) LogicalNotEqual 15 21 - Store 8(b) 22 - 26: 9(int) Load 11(u_i) - 27: 6(bool) INotEqual 26 14 - 28: 16(float) Load 18(u_f) - 29: 6(bool) FUnordNotEqual 28 20 - 30: 23(bvec2) CompositeConstruct 27 29 - Store 25(b2) 30 - 34: 9(int) Load 11(u_i) - 35: 6(bool) INotEqual 34 14 - 36: 16(float) Load 18(u_f) - 37: 6(bool) FUnordNotEqual 36 20 - 40: 9(int) Load 39(i_i) - 41: 6(bool) INotEqual 40 14 - 42: 31(bvec3) CompositeConstruct 35 37 41 - Store 33(b3) 42 - 46: 9(int) Load 11(u_i) - 47: 6(bool) INotEqual 46 14 - 48: 16(float) Load 18(u_f) - 49: 6(bool) FUnordNotEqual 48 20 - 50: 9(int) Load 39(i_i) - 51: 6(bool) INotEqual 50 14 - 54: 16(float) Load 53(i_f) - 55: 6(bool) FUnordNotEqual 54 20 - 56: 43(bvec4) CompositeConstruct 47 49 51 55 - Store 45(b4) 56 - 59: 16(float) Load 18(u_f) - 60: 9(int) ConvertFToS 59 - 61: 6(bool) Load 8(b) - 64: 9(int) Select 61 63 62 - 65: 9(int) IAdd 60 64 - Store 58(i) 65 - 72: 69(fvec2) Load 71(u_f2) - 73: 66(ivec2) ConvertFToS 72 - 74: 23(bvec2) Load 25(b2) - 77: 66(ivec2) Select 74 76 75 - 78: 66(ivec2) IAdd 73 77 - Store 68(i2) 78 - 85: 82(fvec3) Load 84(u_f3) - 86: 79(ivec3) ConvertFToS 85 - 87: 31(bvec3) Load 33(b3) - 90: 79(ivec3) Select 87 89 88 - 91: 79(ivec3) IAdd 86 90 - Store 81(i3) 91 - 98: 95(fvec4) Load 97(u_f4) - 99: 92(ivec4) ConvertFToS 98 - 100: 43(bvec4) Load 45(b4) - 103: 92(ivec4) Select 100 102 101 - 104: 92(ivec4) IAdd 99 103 - Store 94(i4) 104 - 107: 9(int) Load 58(i) - 108: 16(float) ConvertSToF 107 - Store 106(f) 108 - 111: 66(ivec2) Load 68(i2) - 112: 69(fvec2) ConvertSToF 111 - Store 110(f2) 112 - 115: 79(ivec3) Load 81(i3) - 116: 82(fvec3) ConvertSToF 115 - Store 114(f3) 116 - 119: 92(ivec4) Load 94(i4) - 120: 95(fvec4) ConvertSToF 119 - Store 118(f4) 120 - 121: 9(int) Load 58(i) - 122: 16(float) ConvertSToF 121 - 123: 6(bool) Load 8(b) - 125: 16(float) Select 123 124 20 - 126: 16(float) FAdd 122 125 - 127: 16(float) Load 106(f) - 128: 16(float) FAdd 127 126 - Store 106(f) 128 - 129: 66(ivec2) Load 68(i2) - 130: 69(fvec2) ConvertSToF 129 - 131: 23(bvec2) Load 25(b2) - 134: 69(fvec2) Select 131 133 132 - 135: 69(fvec2) FAdd 130 134 - 136: 69(fvec2) Load 110(f2) - 137: 69(fvec2) FSub 136 135 - Store 110(f2) 137 - 138: 79(ivec3) Load 81(i3) - 139: 82(fvec3) ConvertSToF 138 - 140: 31(bvec3) Load 33(b3) - 143: 82(fvec3) Select 140 142 141 - 144: 82(fvec3) FAdd 139 143 - 145: 82(fvec3) Load 114(f3) - 146: 82(fvec3) FDiv 145 144 - Store 114(f3) 146 - 147: 92(ivec4) Load 94(i4) - 148: 95(fvec4) ConvertSToF 147 - 149: 43(bvec4) Load 45(b4) - 152: 95(fvec4) Select 149 151 150 - 153: 95(fvec4) FAdd 148 152 - 154: 95(fvec4) Load 118(f4) - 155: 95(fvec4) FAdd 154 153 - Store 118(f4) 155 - 158: 92(ivec4) Load 157(i_i4) - 161: 43(bvec4) INotEqual 158 160 - 162: 95(fvec4) Select 161 151 150 - 163: 95(fvec4) Load 118(f4) - 164: 95(fvec4) FAdd 163 162 - Store 118(f4) 164 - 165: 95(fvec4) Load 97(u_f4) - 166: 43(bvec4) FUnordNotEqual 165 150 - 167: 95(fvec4) Select 166 151 150 - 168: 95(fvec4) Load 118(f4) - 169: 95(fvec4) FAdd 168 167 - Store 118(f4) 169 - 170: 16(float) Load 106(f) - 171: 9(int) Load 58(i) - 172: 16(float) ConvertSToF 171 - 173: 16(float) FSub 170 172 - 174: 16(float) Load 106(f) - 175: 16(float) FAdd 174 173 - Store 106(f) 175 - 176: 16(float) Load 106(f) - 177: 9(int) Load 58(i) - 178: 16(float) ConvertSToF 177 - 179: 69(fvec2) CompositeConstruct 176 178 - 180: 66(ivec2) Load 68(i2) - 181: 69(fvec2) ConvertSToF 180 - 182: 69(fvec2) FAdd 179 181 - 183: 69(fvec2) Load 110(f2) - 184: 69(fvec2) FAdd 183 182 - Store 110(f2) 184 - 185: 79(ivec3) Load 81(i3) - 186: 82(fvec3) ConvertSToF 185 - 187: 16(float) Load 106(f) - 188: 9(int) Load 58(i) - 189: 16(float) ConvertSToF 188 - 190: 16(float) Load 106(f) - 191: 82(fvec3) CompositeConstruct 187 189 190 - 192: 82(fvec3) FAdd 186 191 - 193: 82(fvec3) Load 114(f3) - 194: 82(fvec3) FAdd 193 192 - Store 114(f3) 194 - 195: 6(bool) Load 8(b) - 196: 16(float) Select 195 124 20 - 197: 9(int) Load 58(i) - 198: 16(float) ConvertSToF 197 - 199: 16(float) Load 106(f) - 200: 9(int) Load 58(i) - 201: 16(float) ConvertSToF 200 - 202: 95(fvec4) CompositeConstruct 196 198 199 201 - 203: 92(ivec4) Load 94(i4) - 204: 95(fvec4) ConvertSToF 203 - 205: 95(fvec4) FAdd 202 204 - 206: 95(fvec4) Load 118(f4) - 207: 95(fvec4) FAdd 206 205 - Store 118(f4) 207 - 208: 16(float) Load 106(f) - 209: 9(int) Load 58(i) - 210: 16(float) ConvertSToF 209 - 211: 69(fvec2) CompositeConstruct 208 210 - 212: 9(int) Load 58(i) - 213: 16(float) ConvertSToF 212 - 214: 69(fvec2) VectorTimesScalar 211 213 - 215: 69(fvec2) Load 110(f2) - 216: 69(fvec2) FAdd 215 214 - Store 110(f2) 216 - 217: 16(float) Load 106(f) - 218: 9(int) Load 58(i) - 219: 16(float) ConvertSToF 218 - 220: 16(float) Load 106(f) - 221: 82(fvec3) CompositeConstruct 217 219 220 - 222: 9(int) Load 58(i) - 223: 16(float) ConvertSToF 222 - 224: 82(fvec3) CompositeConstruct 223 223 223 - 225: 82(fvec3) FAdd 221 224 - 226: 82(fvec3) Load 114(f3) - 227: 82(fvec3) FAdd 226 225 - Store 114(f3) 227 - 228: 9(int) Load 58(i) - 229: 16(float) ConvertSToF 228 - 230: 6(bool) Load 8(b) - 231: 16(float) Select 230 124 20 - 232: 9(int) Load 58(i) - 233: 16(float) ConvertSToF 232 - 234: 16(float) Load 106(f) - 235: 9(int) Load 58(i) - 236: 16(float) ConvertSToF 235 - 237: 95(fvec4) CompositeConstruct 231 233 234 236 - 238: 95(fvec4) CompositeConstruct 229 229 229 229 - 239: 95(fvec4) FSub 238 237 - 240: 95(fvec4) Load 118(f4) - 241: 95(fvec4) FAdd 240 239 - Store 118(f4) 241 - 242: 16(float) Load 106(f) - 243: 9(int) ConvertFToS 242 - 244: 9(int) Load 58(i) - 245: 66(ivec2) CompositeConstruct 243 244 - 246: 66(ivec2) Load 68(i2) - 247: 66(ivec2) IAdd 246 245 - Store 68(i2) 247 - 248: 16(float) Load 106(f) - 249: 9(int) ConvertFToS 248 - 250: 9(int) Load 58(i) - 251: 16(float) Load 106(f) - 252: 9(int) ConvertFToS 251 - 253: 79(ivec3) CompositeConstruct 249 250 252 - 254: 79(ivec3) Load 81(i3) - 255: 79(ivec3) IAdd 254 253 - Store 81(i3) 255 - 256: 6(bool) Load 8(b) - 257: 9(int) Select 256 63 62 - 258: 9(int) Load 58(i) - 259: 16(float) Load 106(f) - 260: 9(int) ConvertFToS 259 - 261: 9(int) Load 58(i) - 262: 92(ivec4) CompositeConstruct 257 258 260 261 - 263: 92(ivec4) Load 94(i4) - 264: 92(ivec4) IAdd 263 262 - Store 94(i4) 264 - 265: 16(float) Load 106(f) - 266: 9(int) Load 58(i) - 267: 16(float) ConvertSToF 266 - 268: 6(bool) FOrdLessThan 265 267 - 269: 6(bool) LogicalNot 268 - SelectionMerge 271 None - BranchConditional 269 270 271 - 270: Label - 272: 9(int) Load 58(i) - 273: 16(float) ConvertSToF 272 - 274: 16(float) Load 106(f) - 275: 6(bool) FOrdLessThan 273 274 - Branch 271 - 271: Label - 276: 6(bool) Phi 268 5 275 270 - 277: 6(bool) LogicalNot 276 - SelectionMerge 279 None - BranchConditional 277 278 279 - 278: Label - 280: 69(fvec2) Load 110(f2) - 281: 66(ivec2) Load 68(i2) - 282: 69(fvec2) ConvertSToF 281 - 283: 23(bvec2) FOrdEqual 280 282 - 284: 6(bool) All 283 - Branch 279 - 279: Label - 285: 6(bool) Phi 276 271 284 278 - 286: 6(bool) LogicalNot 285 - SelectionMerge 288 None - BranchConditional 286 287 288 - 287: Label - 289: 79(ivec3) Load 81(i3) - 290: 82(fvec3) ConvertSToF 289 - 291: 82(fvec3) Load 114(f3) - 292: 31(bvec3) FUnordNotEqual 290 291 - 293: 6(bool) Any 292 - Branch 288 - 288: Label - 294: 6(bool) Phi 285 279 293 287 - SelectionMerge 296 None - BranchConditional 294 295 296 - 295: Label - 297: 6(bool) Load 8(b) - SelectionMerge 300 None - BranchConditional 297 299 303 - 299: Label - 301: 9(int) Load 58(i) - 302: 16(float) ConvertSToF 301 - Store 298 302 - Branch 300 - 303: Label - 304: 105(ptr) AccessChain 110(f2) 14 - 305: 16(float) Load 304 - Store 298 305 - Branch 300 - 300: Label - 306: 16(float) Load 298 - 307: 7(ptr) AccessChain 25(b2) 14 - 308: 6(bool) Load 307 - SelectionMerge 311 None - BranchConditional 308 310 314 - 310: Label - 312: 105(ptr) AccessChain 114(f3) 14 - 313: 16(float) Load 312 - Store 309 313 - Branch 311 - 314: Label - 316: 57(ptr) AccessChain 68(i2) 315 - 317: 9(int) Load 316 - 318: 16(float) ConvertSToF 317 - Store 309 318 - Branch 311 - 311: Label - 319: 16(float) Load 309 - 320: 16(float) FAdd 306 319 - Store 106(f) 320 - Branch 296 - 296: Label - 323: 6(bool) Load 8(b) - 324: 7(ptr) AccessChain 25(b2) 14 - 325: 6(bool) Load 324 - 326: 6(bool) LogicalOr 323 325 - 327: 7(ptr) AccessChain 25(b2) 315 - 328: 6(bool) Load 327 - 329: 6(bool) LogicalOr 326 328 - 330: 7(ptr) AccessChain 33(b3) 14 - 331: 6(bool) Load 330 - 332: 6(bool) LogicalOr 329 331 - 333: 7(ptr) AccessChain 33(b3) 315 - 334: 6(bool) Load 333 - 335: 6(bool) LogicalOr 332 334 - 337: 7(ptr) AccessChain 33(b3) 336 - 338: 6(bool) Load 337 - 339: 6(bool) LogicalOr 335 338 - 340: 7(ptr) AccessChain 45(b4) 14 - 341: 6(bool) Load 340 - 342: 6(bool) LogicalOr 339 341 - 343: 7(ptr) AccessChain 45(b4) 315 - 344: 6(bool) Load 343 - 345: 6(bool) LogicalOr 342 344 - 346: 7(ptr) AccessChain 45(b4) 336 - 347: 6(bool) Load 346 - 348: 6(bool) LogicalOr 345 347 - 350: 7(ptr) AccessChain 45(b4) 349 - 351: 6(bool) Load 350 - 352: 6(bool) LogicalOr 348 351 - SelectionMerge 355 None - BranchConditional 352 354 415 - 354: Label - 356: 9(int) Load 58(i) - 357: 57(ptr) AccessChain 68(i2) 14 - 358: 9(int) Load 357 - 359: 9(int) IAdd 356 358 - 360: 57(ptr) AccessChain 68(i2) 315 - 361: 9(int) Load 360 - 362: 9(int) IAdd 359 361 - 363: 57(ptr) AccessChain 81(i3) 14 - 364: 9(int) Load 363 - 365: 9(int) IAdd 362 364 - 366: 57(ptr) AccessChain 81(i3) 315 - 367: 9(int) Load 366 - 368: 9(int) IAdd 365 367 - 369: 57(ptr) AccessChain 81(i3) 336 - 370: 9(int) Load 369 - 371: 9(int) IAdd 368 370 - 372: 57(ptr) AccessChain 94(i4) 14 - 373: 9(int) Load 372 - 374: 9(int) IAdd 371 373 - 375: 57(ptr) AccessChain 94(i4) 315 - 376: 9(int) Load 375 - 377: 9(int) IAdd 374 376 - 378: 57(ptr) AccessChain 94(i4) 336 - 379: 9(int) Load 378 - 380: 9(int) IAdd 377 379 - 381: 57(ptr) AccessChain 94(i4) 349 - 382: 9(int) Load 381 - 383: 9(int) IAdd 380 382 - 384: 16(float) ConvertSToF 383 - 385: 16(float) Load 106(f) - 386: 16(float) FAdd 384 385 - 387: 105(ptr) AccessChain 110(f2) 14 - 388: 16(float) Load 387 - 389: 16(float) FAdd 386 388 - 390: 105(ptr) AccessChain 110(f2) 315 - 391: 16(float) Load 390 - 392: 16(float) FAdd 389 391 - 393: 105(ptr) AccessChain 114(f3) 14 - 394: 16(float) Load 393 - 395: 16(float) FAdd 392 394 - 396: 105(ptr) AccessChain 114(f3) 315 - 397: 16(float) Load 396 - 398: 16(float) FAdd 395 397 - 399: 105(ptr) AccessChain 114(f3) 336 - 400: 16(float) Load 399 - 401: 16(float) FAdd 398 400 - 402: 105(ptr) AccessChain 118(f4) 14 - 403: 16(float) Load 402 - 404: 16(float) FAdd 401 403 - 405: 105(ptr) AccessChain 118(f4) 315 - 406: 16(float) Load 405 - 407: 16(float) FAdd 404 406 - 408: 105(ptr) AccessChain 118(f4) 336 - 409: 16(float) Load 408 - 410: 16(float) FAdd 407 409 - 411: 105(ptr) AccessChain 118(f4) 349 - 412: 16(float) Load 411 - 413: 16(float) FAdd 410 412 - 414: 95(fvec4) CompositeConstruct 413 413 413 413 - Store 353 414 - Branch 355 - 415: Label - Store 353 151 - Branch 355 - 355: Label - 416: 95(fvec4) Load 353 - Store 322(gl_FragColor) 416 - Store 417(cv2) 102 - 419: 92(ivec4) Load 417(cv2) - 420: 43(bvec4) INotEqual 419 160 - Store 418(cv5) 420 - 421: 43(bvec4) Load 418(cv5) - 422: 95(fvec4) Select 421 151 150 - 423: 16(float) CompositeExtract 422 0 - 424: 95(fvec4) Load 322(gl_FragColor) - 425: 95(fvec4) CompositeConstruct 423 423 423 423 - 426: 95(fvec4) FAdd 424 425 - Store 322(gl_FragColor) 426 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.coopmat.comp.out b/deps/glslang/Test/baseResults/spv.coopmat.comp.out deleted file mode 100644 index 0a609df1..00000000 --- a/deps/glslang/Test/baseResults/spv.coopmat.comp.out +++ /dev/null @@ -1,375 +0,0 @@ -spv.coopmat.comp -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 228 - - Capability Shader - Capability Float16 - Capability StorageUniformBufferBlock16 - Capability VulkanMemoryModelKHR - Capability PhysicalStorageBufferAddressesEXT - Capability CooperativeMatrixNV - Extension "SPV_KHR_16bit_storage" - Extension "SPV_KHR_physical_storage_buffer" - Extension "SPV_KHR_storage_buffer_storage_class" - Extension "SPV_KHR_vulkan_memory_model" - Extension "SPV_NV_cooperative_matrix" - 1: ExtInstImport "GLSL.std.450" - MemoryModel PhysicalStorageBuffer64EXT VulkanKHR - EntryPoint GLCompute 4 "main" - ExecutionMode 4 LocalSize 64 1 1 - Source GLSL 450 - SourceExtension "GL_EXT_buffer_reference" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16" - SourceExtension "GL_KHR_memory_scope_semantics" - SourceExtension "GL_NV_cooperative_matrix" - Name 4 "main" - Name 14 "f16(f161;" - Name 13 "m" - Name 21 "f32(f1;" - Name 20 "m" - Name 34 "m" - Name 52 "m2" - Name 56 "x" - Name 64 "tempArg" - Name 68 "Block" - MemberName 68(Block) 0 "y" - MemberName 68(Block) 1 "x" - Name 70 "block" - Name 81 "tempArg" - Name 86 "Block16" - MemberName 86(Block16) 0 "y" - MemberName 86(Block16) 1 "x" - MemberName 86(Block16) 2 "b" - Name 89 "Block" - MemberName 89(Block) 0 "y" - MemberName 89(Block) 1 "x" - Name 91 "block16" - Name 98 "tempArg" - Name 111 "D" - Name 112 "A" - Name 114 "B" - Name 116 "C" - Name 120 "l" - Name 124 "Y" - Name 125 "Z" - Name 128 "F" - Name 133 "a" - Name 137 "md1" - Name 148 "mC2" - Name 153 "tempArg" - Name 159 "tempArg" - Name 165 "p1" - Name 166 "param" - Name 169 "p2" - Name 170 "param" - Name 184 "tempArg" - Name 189 "shmatrix" - Name 194 "ms" - Name 201 "mC" - Name 206 "arr" - Name 211 "arr2" - Name 212 "F" - Name 217 "S" - MemberName 217(S) 0 "a" - MemberName 217(S) 1 "b" - MemberName 217(S) 2 "c" - Name 222 "SC" - Name 227 "scm" - Decorate 66 ArrayStride 4 - Decorate 67 ArrayStride 4 - MemberDecorate 68(Block) 0 Offset 0 - MemberDecorate 68(Block) 1 Offset 4194304 - Decorate 68(Block) Block - Decorate 70(block) DescriptorSet 0 - Decorate 70(block) Binding 0 - Decorate 82 ArrayStride 2 - Decorate 84 ArrayStride 2 - MemberDecorate 86(Block16) 0 Offset 0 - MemberDecorate 86(Block16) 1 Offset 2097152 - MemberDecorate 86(Block16) 2 Offset 2097160 - Decorate 86(Block16) Block - Decorate 87 ArrayStride 4 - Decorate 88 ArrayStride 4 - MemberDecorate 89(Block) 0 Offset 0 - MemberDecorate 89(Block) 1 Offset 4194304 - Decorate 89(Block) Block - Decorate 91(block16) DescriptorSet 0 - Decorate 91(block16) Binding 0 - Decorate 124(Y) SpecId 0 - Decorate 200 BuiltIn WorkgroupSize - Decorate 212(F) SpecId 1 - Decorate 222(SC) SpecId 2 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 16 - 7: TypeInt 32 0 - 8: 7(int) Constant 3 - 9: 7(int) Constant 8 - 10: TypeCooperativeMatrixNV 6(float16_t) 8 9 9 - 11: TypePointer Function 10 - 12: TypeFunction 10 11(ptr) - 16: TypeFloat 32 - 17: TypeCooperativeMatrixNV 16(float) 8 9 9 - 18: TypePointer Function 17 - 19: TypeFunction 17 18(ptr) - 31: 7(int) Constant 16 - 32: TypeCooperativeMatrixNV 16(float) 8 31 9 - 33: TypePointer Function 32 - 35: 16(float) Constant 0 - 36: 32 ConstantComposite 35 - 45: 16(float) Constant 1073741824 - 50: TypeCooperativeMatrixNV 6(float16_t) 8 31 9 - 51: TypePointer Function 50 - 55: TypePointer Function 16(float) - 57: TypeInt 32 1 - 58: 57(int) Constant 1 - 61: 57(int) Constant 0 - 65: 7(int) Constant 1048576 - 66: TypeArray 16(float) 65 - 67: TypeRuntimeArray 16(float) - 68(Block): TypeStruct 66 67 - 69: TypePointer StorageBuffer 68(Block) - 70(block): 69(ptr) Variable StorageBuffer - 71: 7(int) Constant 5 - 72: TypePointer StorageBuffer 16(float) - 74: 7(int) Constant 128 - 75: TypeBool - 76: 75(bool) ConstantFalse - 82: TypeArray 6(float16_t) 65 - 83: 7(int) Constant 1 - 84: TypeArray 6(float16_t) 83 - TypeForwardPointer 85 PhysicalStorageBufferEXT - 86(Block16): TypeStruct 82 84 85 - 87: TypeArray 16(float) 65 - 88: TypeRuntimeArray 16(float) - 89(Block): TypeStruct 87 88 - 85: TypePointer PhysicalStorageBufferEXT 89(Block) - 90: TypePointer StorageBuffer 86(Block16) - 91(block16): 90(ptr) Variable StorageBuffer - 92: TypePointer StorageBuffer 6(float16_t) - 99: 57(int) Constant 2 - 100: TypePointer StorageBuffer 85(ptr) - 103: TypePointer PhysicalStorageBufferEXT 16(float) - 119: TypePointer Function 57(int) - 121: 7(int) SpecConstantOp 5362 32 - 122: 57(int) SpecConstantOp 128 121 61 - 123: 57(int) Constant 8 - 124(Y): 57(int) SpecConstant 2 - 125(Z): 57(int) SpecConstantOp 132 123 124(Y) - 126: TypeCooperativeMatrixNV 6(float16_t) 8 125(Z) 125(Z) - 127: TypePointer Function 126 - 129:6(float16_t) Constant 0 - 130: 126 ConstantComposite 129 - 131: TypeArray 32 71 - 132: TypePointer Function 131 - 134: 57(int) Constant 3 - 135: 16(float) Constant 1065353216 - 141: 57(int) Constant 1234 - 145: TypeCooperativeMatrixNV 6(float16_t) 8 125(Z) 9 - 146: TypeArray 145 8 - 147: TypePointer Private 146 - 148(mC2): 147(ptr) Variable Private - 149: TypePointer Private 145 - 173: 10 ConstantComposite 129 - 174: 17 ConstantComposite 35 - 178:6(float16_t) Constant 16384 - 181: 16(float) Constant 1082130432 - 185: TypeVector 7(int) 4 - 186: 7(int) Constant 32 - 187: TypeArray 185(ivec4) 186 - 188: TypePointer Workgroup 187 - 189(shmatrix): 188(ptr) Variable Workgroup - 190: 7(int) Constant 2 - 191: TypePointer Workgroup 185(ivec4) - 198: TypeVector 7(int) 3 - 199: 7(int) Constant 64 - 200: 198(ivec3) ConstantComposite 199 83 83 - 201(mC): 149(ptr) Variable Private - 202: 7(int) SpecConstantOp 5362 145 - 203: 57(int) SpecConstantOp 128 202 61 - 204: TypeArray 57(int) 203 - 205: TypePointer Private 204 - 206(arr): 205(ptr) Variable Private - 207: 7(int) SpecConstantOp 5362 145 - 208: 57(int) SpecConstantOp 128 207 61 - 209: TypeArray 57(int) 208 - 210: TypePointer Private 209 - 211(arr2): 210(ptr) Variable Private - 212(F): 16(float) SpecConstant 1077936128 - 213: TypeCooperativeMatrixNV 16(float) 8 125(Z) 9 - 214: 213 ConstantComposite 35 - 215:6(float16_t) Constant 15360 - 216: 10 ConstantComposite 215 - 217(S): TypeStruct 57(int) 57(int) 57(int) - 218: 57(int) Constant 12 - 219: 57(int) Constant 23 - 220: 57(int) Constant 34 - 221: 217(S) ConstantComposite 218 219 220 - 222(SC): 57(int) SpecConstant 1 - 223: TypeCooperativeMatrixNV 6(float16_t) 8 222(SC) 222(SC) - 224: TypeArray 223 222(SC) - 225: TypeArray 224 222(SC) - 226: TypePointer Private 225 - 227(scm): 226(ptr) Variable Private - 4(main): 2 Function None 3 - 5: Label - 34(m): 33(ptr) Variable Function - 52(m2): 51(ptr) Variable Function - 56(x): 55(ptr) Variable Function - 64(tempArg): 33(ptr) Variable Function - 81(tempArg): 51(ptr) Variable Function - 98(tempArg): 33(ptr) Variable Function - 111(D): 33(ptr) Variable Function - 112(A): 51(ptr) Variable Function - 114(B): 11(ptr) Variable Function - 116(C): 33(ptr) Variable Function - 120(l): 119(ptr) Variable Function - 128(F): 127(ptr) Variable Function - 133(a): 132(ptr) Variable Function - 137(md1): 55(ptr) Variable Function - 153(tempArg): 33(ptr) Variable Function - 159(tempArg): 51(ptr) Variable Function - 165(p1): 11(ptr) Variable Function - 166(param): 11(ptr) Variable Function - 169(p2): 18(ptr) Variable Function - 170(param): 18(ptr) Variable Function - 184(tempArg): 51(ptr) Variable Function - 194(ms): 51(ptr) Variable Function - Store 34(m) 36 - 37: 32 Load 34(m) - 38: 32 Load 34(m) - 39: 32 FAdd 37 38 - Store 34(m) 39 - 40: 32 Load 34(m) - 41: 32 Load 34(m) - 42: 32 FSub 40 41 - Store 34(m) 42 - 43: 32 Load 34(m) - 44: 32 FNegate 43 - Store 34(m) 44 - 46: 32 Load 34(m) - 47: 32 MatrixTimesScalar 46 45 - Store 34(m) 47 - 48: 32 Load 34(m) - 49: 32 MatrixTimesScalar 48 45 - Store 34(m) 49 - 53: 32 Load 34(m) - 54: 50 FConvert 53 - Store 52(m2) 54 - 59: 55(ptr) AccessChain 34(m) 58 - 60: 16(float) Load 59 - Store 56(x) 60 - 62: 16(float) Load 56(x) - 63: 55(ptr) AccessChain 34(m) 61 - Store 63 62 - 73: 72(ptr) AccessChain 70(block) 58 31 - 77: 32 CooperativeMatrixLoadNV 73 74 76 MakePointerVisibleKHR NonPrivatePointerKHR 71 - Store 64(tempArg) 77 - 78: 32 Load 64(tempArg) - Store 34(m) 78 - 79: 32 Load 34(m) - 80: 72(ptr) AccessChain 70(block) 58 31 - CooperativeMatrixStoreNV 80 79 74 76 MakePointerAvailableKHR NonPrivatePointerKHR 71 - 93: 92(ptr) AccessChain 91(block16) 58 31 - 94: 50 CooperativeMatrixLoadNV 93 74 76 MakePointerVisibleKHR NonPrivatePointerKHR 71 - Store 81(tempArg) 94 - 95: 50 Load 81(tempArg) - Store 52(m2) 95 - 96: 50 Load 52(m2) - 97: 92(ptr) AccessChain 91(block16) 58 31 - CooperativeMatrixStoreNV 97 96 74 76 MakePointerAvailableKHR NonPrivatePointerKHR 71 - 101: 100(ptr) AccessChain 91(block16) 99 - 102: 85(ptr) Load 101 MakePointerVisibleKHR NonPrivatePointerKHR 71 - 104: 103(ptr) AccessChain 102 58 31 - 105: 32 CooperativeMatrixLoadNV 104 74 76 Aligned MakePointerVisibleKHR NonPrivatePointerKHR 16 71 - Store 98(tempArg) 105 - 106: 32 Load 98(tempArg) - Store 34(m) 106 - 107: 32 Load 34(m) - 108: 100(ptr) AccessChain 91(block16) 99 - 109: 85(ptr) Load 108 MakePointerVisibleKHR NonPrivatePointerKHR 71 - 110: 103(ptr) AccessChain 109 58 31 - CooperativeMatrixStoreNV 110 107 74 76 Aligned MakePointerAvailableKHR NonPrivatePointerKHR 16 71 - 113: 50 Load 112(A) - 115: 10 Load 114(B) - 117: 32 Load 116(C) - 118: 32 CooperativeMatrixMulAddNV 113 115 117 - Store 111(D) 118 - Store 120(l) 122 - Store 128(F) 130 - 136: 55(ptr) AccessChain 133(a) 134 61 - Store 136 135 - Store 137(md1) 35 - 138: 32 Load 34(m) - 139: 32 Load 34(m) - 140: 32 FAdd 139 138 - Store 34(m) 140 - 142: 16(float) CompositeExtract 140 1234 - 143: 16(float) Load 137(md1) - 144: 16(float) FAdd 143 142 - Store 137(md1) 144 - 150: 149(ptr) AccessChain 148(mC2) 99 - 151: 145 Load 150 - 152: 149(ptr) AccessChain 148(mC2) 58 - Store 152 151 - 154: 72(ptr) AccessChain 70(block) 61 31 - 155: 32 CooperativeMatrixLoadNV 154 74 76 MakePointerVisibleKHR NonPrivatePointerKHR 71 - Store 153(tempArg) 155 - 156: 32 Load 153(tempArg) - Store 34(m) 156 - 157: 32 Load 34(m) - 158: 72(ptr) AccessChain 70(block) 61 31 - CooperativeMatrixStoreNV 158 157 74 76 MakePointerAvailableKHR NonPrivatePointerKHR 71 - 160: 92(ptr) AccessChain 91(block16) 61 31 - 161: 50 CooperativeMatrixLoadNV 160 74 76 MakePointerVisibleKHR NonPrivatePointerKHR 71 - Store 159(tempArg) 161 - 162: 50 Load 159(tempArg) - Store 52(m2) 162 - 163: 50 Load 52(m2) - 164: 92(ptr) AccessChain 91(block16) 61 31 - CooperativeMatrixStoreNV 164 163 74 76 MakePointerAvailableKHR NonPrivatePointerKHR 71 - 167: 10 Load 165(p1) - Store 166(param) 167 - 168: 10 FunctionCall 14(f16(f161;) 166(param) - Store 165(p1) 168 - 171: 17 Load 169(p2) - Store 170(param) 171 - 172: 17 FunctionCall 21(f32(f1;) 170(param) - Store 169(p2) 172 - Store 165(p1) 173 - Store 169(p2) 174 - 175: 10 Load 165(p1) - 176: 10 Load 165(p1) - 177: 10 FDiv 176 175 - Store 165(p1) 177 - 179: 10 Load 165(p1) - 180: 10 MatrixTimesScalar 179 178 - Store 165(p1) 180 - 182: 17 Load 169(p2) - 183: 17 MatrixTimesScalar 182 181 - Store 169(p2) 183 - 192: 191(ptr) AccessChain 189(shmatrix) 83 - 193: 50 CooperativeMatrixLoadNV 192 190 76 MakePointerVisibleKHR NonPrivatePointerKHR 190 - Store 184(tempArg) 193 - 195: 50 Load 184(tempArg) - Store 194(ms) 195 - 196: 50 Load 194(ms) - 197: 191(ptr) AccessChain 189(shmatrix) 83 - CooperativeMatrixStoreNV 197 196 190 76 MakePointerAvailableKHR NonPrivatePointerKHR 190 - Return - FunctionEnd - 14(f16(f161;): 10 Function None 12 - 13(m): 11(ptr) FunctionParameter - 15: Label - 23: 10 Load 13(m) - 24: 10 FNegate 23 - ReturnValue 24 - FunctionEnd - 21(f32(f1;): 17 Function None 19 - 20(m): 18(ptr) FunctionParameter - 22: Label - 27: 17 Load 20(m) - 28: 17 FNegate 27 - ReturnValue 28 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.coopmat_Error.comp.out b/deps/glslang/Test/baseResults/spv.coopmat_Error.comp.out deleted file mode 100644 index 49223b00..00000000 --- a/deps/glslang/Test/baseResults/spv.coopmat_Error.comp.out +++ /dev/null @@ -1,35 +0,0 @@ -spv.coopmat_Error.comp -ERROR: 0:8: 'ftemplate16' : unexpected type parameters -ERROR: 0:10: 'fnoparams' : expected four type parameters -ERROR: 0:12: 'fbadbits' : expected 16, 32, or 64 bits for first type parameter -ERROR: 0:14: 'fbadnumparams' : expected four type parameters -ERROR: 0:18: '' : type parameter must be a constant integer expression -ERROR: 0:20: 'constant_id' : can only be applied to 'const'-qualified scalar -ERROR: 0:22: 'Cooperative matrix types must not be used in shared memory' : qualifier -ERROR: 0:25: 'bufmat' : member of block cannot be or contain a cooperative matrix type -ERROR: 0:34: 'assign' : cannot convert from ' temp<16, 3, 16, 8> float16_t' to ' temp<32, 3, 16, 8> highp float' -ERROR: 0:35: 'assign' : cannot convert from ' temp<16, 3, 16, 8> float16_t' to ' temp<32, 3, 16, 8> highp float' -ERROR: 0:40: 'assign' : cannot convert from ' temp<16, 3, 8, 8> float16_t' to ' temp<16, 3, 16, 8> float16_t' -ERROR: 0:46: 'assign' : cannot convert from ' temp<16, 3, 8, 1> float16_t' to ' temp<16, 3, 8, 1> float16_t' -ERROR: 0:49: 'constructor' : too many arguments -ERROR: 0:49: 'assign' : cannot convert from ' const float' to ' temp<16, 3, 8, 8> float16_t' -ERROR: 0:53: 'constructor' : Cooperative matrix constructor argument must be scalar or cooperative matrix -ERROR: 0:53: '=' : cannot convert from ' const float' to ' temp<32, 3, 4, 4> highp float' -ERROR: 0:56: 'expression' : left of '[' is not of type array, matrix, or vector -ERROR: 0:59: '.' : cannot apply to a cooperative matrix type: x -ERROR: 0:61: '*' : wrong operand types: no operation '*' exists that takes a left-hand operand of type ' temp<16, 3, 16, 8> float16_t' and a right operand of type ' temp<16, 3, 16, 8> float16_t' (or there is no acceptable conversion) -ERROR: 0:63: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type ' temp<16, 3, 16, 8> float16_t' and a right operand of type ' const float' (or there is no acceptable conversion) -ERROR: 0:64: '-' : wrong operand types: no operation '-' exists that takes a left-hand operand of type ' temp<16, 3, 16, 8> float16_t' and a right operand of type ' const float' (or there is no acceptable conversion) -ERROR: 0:65: '/' : wrong operand types: no operation '/' exists that takes a left-hand operand of type ' temp<16, 3, 16, 8> float16_t' and a right operand of type ' const float' (or there is no acceptable conversion) -ERROR: 0:66: 'assign' : cannot convert from ' const float' to ' temp<16, 3, 16, 8> float16_t' -ERROR: 0:67: 'assign' : cannot convert from ' const float' to ' temp<16, 3, 16, 8> float16_t' -ERROR: 0:68: 'assign' : cannot convert from ' const float' to ' temp<16, 3, 16, 8> float16_t' -ERROR: 0:70: '*' : wrong operand types: no operation '*' exists that takes a left-hand operand of type ' temp<16, 3, 16, 8> float16_t' and a right operand of type ' const float' (or there is no acceptable conversion) -ERROR: 0:71: '*' : wrong operand types: no operation '*' exists that takes a left-hand operand of type ' const float' and a right operand of type ' temp<16, 3, 16, 8> float16_t' (or there is no acceptable conversion) -ERROR: 0:72: '*' : wrong operand types: no operation '*' exists that takes a left-hand operand of type ' temp<32, 3, 16, 8> highp float' and a right operand of type ' const float16_t' (or there is no acceptable conversion) -ERROR: 0:73: '*' : wrong operand types: no operation '*' exists that takes a left-hand operand of type ' const float16_t' and a right operand of type ' temp<32, 3, 16, 8> highp float' (or there is no acceptable conversion) -ERROR: 0:75: 'transpose' : no matching overloaded function found -ERROR: 30 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.dataOut.frag.out b/deps/glslang/Test/baseResults/spv.dataOut.frag.out deleted file mode 100644 index 980d1bd3..00000000 --- a/deps/glslang/Test/baseResults/spv.dataOut.frag.out +++ /dev/null @@ -1,37 +0,0 @@ -spv.dataOut.frag -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 20 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 12 16 - ExecutionMode 4 OriginUpperLeft - Source GLSL 140 - Name 4 "main" - Name 12 "gl_FragData" - Name 16 "Color" - Decorate 16(Color) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeInt 32 0 - 9: 8(int) Constant 32 - 10: TypeArray 7(fvec4) 9 - 11: TypePointer Output 10 - 12(gl_FragData): 11(ptr) Variable Output - 13: TypeInt 32 1 - 14: 13(int) Constant 1 - 15: TypePointer Input 7(fvec4) - 16(Color): 15(ptr) Variable Input - 18: TypePointer Output 7(fvec4) - 4(main): 2 Function None 3 - 5: Label - 17: 7(fvec4) Load 16(Color) - 19: 18(ptr) AccessChain 12(gl_FragData) 14 - Store 19 17 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.dataOutIndirect.frag.out b/deps/glslang/Test/baseResults/spv.dataOutIndirect.frag.out deleted file mode 100644 index a75e8d54..00000000 --- a/deps/glslang/Test/baseResults/spv.dataOutIndirect.frag.out +++ /dev/null @@ -1,50 +0,0 @@ -spv.dataOutIndirect.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 26 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 12 22 - ExecutionMode 4 OriginUpperLeft - Source GLSL 140 - Name 4 "main" - Name 12 "fcolor" - Name 14 "b" - MemberName 14(b) 0 "i" - Name 16 "bName" - Name 22 "Color" - Decorate 12(fcolor) Location 0 - MemberDecorate 14(b) 0 Offset 0 - Decorate 14(b) Block - Decorate 16(bName) DescriptorSet 0 - Decorate 16(bName) Binding 0 - Decorate 22(Color) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeInt 32 0 - 9: 8(int) Constant 4 - 10: TypeArray 7(fvec4) 9 - 11: TypePointer Output 10 - 12(fcolor): 11(ptr) Variable Output - 13: TypeInt 32 1 - 14(b): TypeStruct 13(int) - 15: TypePointer Uniform 14(b) - 16(bName): 15(ptr) Variable Uniform - 17: 13(int) Constant 0 - 18: TypePointer Uniform 13(int) - 21: TypePointer Input 7(fvec4) - 22(Color): 21(ptr) Variable Input - 24: TypePointer Output 7(fvec4) - 4(main): 2 Function None 3 - 5: Label - 19: 18(ptr) AccessChain 16(bName) 17 - 20: 13(int) Load 19 - 23: 7(fvec4) Load 22(Color) - 25: 24(ptr) AccessChain 12(fcolor) 20 - Store 25 23 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.dataOutIndirect.vert.out b/deps/glslang/Test/baseResults/spv.dataOutIndirect.vert.out deleted file mode 100644 index 1c294101..00000000 --- a/deps/glslang/Test/baseResults/spv.dataOutIndirect.vert.out +++ /dev/null @@ -1,68 +0,0 @@ -spv.dataOutIndirect.vert -WARNING: 0:3: attribute deprecated in version 130; may be removed in future release - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 38 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 25 28 34 - Source GLSL 140 - Name 4 "main" - Name 8 "i" - Name 25 "colorOut" - Name 28 "color" - Name 34 "gl_Position" - Decorate 25(colorOut) Location 0 - Decorate 28(color) Location 0 - Decorate 34(gl_Position) BuiltIn Position - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Function 6(int) - 9: 6(int) Constant 1 - 16: 6(int) Constant 5 - 17: TypeBool - 19: TypeFloat 32 - 20: TypeVector 19(float) 4 - 21: TypeInt 32 0 - 22: 21(int) Constant 6 - 23: TypeArray 20(fvec4) 22 - 24: TypePointer Output 23 - 25(colorOut): 24(ptr) Variable Output - 27: TypePointer Input 20(fvec4) - 28(color): 27(ptr) Variable Input - 30: TypePointer Output 20(fvec4) - 34(gl_Position): 30(ptr) Variable Output - 35: 6(int) Constant 2 - 4(main): 2 Function None 3 - 5: Label - 8(i): 7(ptr) Variable Function - Store 8(i) 9 - Branch 10 - 10: Label - LoopMerge 12 13 None - Branch 14 - 14: Label - 15: 6(int) Load 8(i) - 18: 17(bool) SLessThan 15 16 - BranchConditional 18 11 12 - 11: Label - 26: 6(int) Load 8(i) - 29: 20(fvec4) Load 28(color) - 31: 30(ptr) AccessChain 25(colorOut) 26 - Store 31 29 - Branch 13 - 13: Label - 32: 6(int) Load 8(i) - 33: 6(int) IAdd 32 9 - Store 8(i) 33 - Branch 10 - 12: Label - 36: 30(ptr) AccessChain 25(colorOut) 35 - 37: 20(fvec4) Load 36 - Store 34(gl_Position) 37 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.dead-after-continue.vert.out b/deps/glslang/Test/baseResults/spv.dead-after-continue.vert.out deleted file mode 100644 index 6d8d7d90..00000000 --- a/deps/glslang/Test/baseResults/spv.dead-after-continue.vert.out +++ /dev/null @@ -1,54 +0,0 @@ -spv.dead-after-continue.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 29 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 20 28 - Source GLSL 450 - Name 4 "main" - Name 8 "i" - Name 20 "o" - Name 28 "c" - Decorate 20(o) Location 0 - Decorate 28(c) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Function 6(int) - 9: 6(int) Constant 0 - 16: 6(int) Constant 5 - 17: TypeBool - 19: TypePointer Output 6(int) - 20(o): 19(ptr) Variable Output - 21: 6(int) Constant 1 - 23: 6(int) Constant 2 - 26: 6(int) Constant 3 - 27: TypePointer Input 6(int) - 28(c): 27(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 8(i): 7(ptr) Variable Function - Store 8(i) 9 - Branch 10 - 10: Label - LoopMerge 12 13 None - Branch 14 - 14: Label - 15: 6(int) Load 8(i) - 18: 17(bool) SLessThan 15 16 - BranchConditional 18 11 12 - 11: Label - Store 20(o) 21 - Branch 13 - 13: Label - 24: 6(int) Load 8(i) - 25: 6(int) IAdd 24 21 - Store 8(i) 25 - Branch 10 - 12: Label - Store 20(o) 26 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.dead-after-discard.frag.out b/deps/glslang/Test/baseResults/spv.dead-after-discard.frag.out deleted file mode 100644 index 987f5a2b..00000000 --- a/deps/glslang/Test/baseResults/spv.dead-after-discard.frag.out +++ /dev/null @@ -1,31 +0,0 @@ -spv.dead-after-discard.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 15 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 8 14 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - Name 4 "main" - Name 8 "o" - Name 14 "c" - Decorate 8(o) Location 0 - Decorate 14(c) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Output 6(int) - 8(o): 7(ptr) Variable Output - 9: 6(int) Constant 1 - 11: 6(int) Constant 3 - 12: TypeFloat 32 - 13: TypePointer Input 12(float) - 14(c): 13(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - Store 8(o) 9 - Kill - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.dead-after-loop-break.vert.out b/deps/glslang/Test/baseResults/spv.dead-after-loop-break.vert.out deleted file mode 100644 index 2d9e35ae..00000000 --- a/deps/glslang/Test/baseResults/spv.dead-after-loop-break.vert.out +++ /dev/null @@ -1,67 +0,0 @@ -spv.dead-after-loop-break.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 36 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 8 25 - Source GLSL 450 - Name 4 "main" - Name 8 "o" - Name 11 "i" - Name 25 "c" - Decorate 8(o) Location 0 - Decorate 25(c) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Output 6(int) - 8(o): 7(ptr) Variable Output - 9: 6(int) Constant 1 - 10: TypePointer Function 6(int) - 12: 6(int) Constant 0 - 19: 6(int) Constant 5 - 20: TypeBool - 22: 6(int) Constant 2 - 24: TypePointer Input 6(int) - 25(c): 24(ptr) Variable Input - 30: 6(int) Constant 3 - 32: 6(int) Constant 4 - 35: 6(int) Constant 6 - 4(main): 2 Function None 3 - 5: Label - 11(i): 10(ptr) Variable Function - Store 8(o) 9 - Store 11(i) 12 - Branch 13 - 13: Label - LoopMerge 15 16 None - Branch 17 - 17: Label - 18: 6(int) Load 11(i) - 21: 20(bool) SLessThan 18 19 - BranchConditional 21 14 15 - 14: Label - Store 8(o) 22 - 23: 6(int) Load 11(i) - 26: 6(int) Load 25(c) - 27: 20(bool) IEqual 23 26 - SelectionMerge 29 None - BranchConditional 27 28 29 - 28: Label - Store 8(o) 30 - Branch 15 - 29: Label - Store 8(o) 19 - Branch 16 - 16: Label - 33: 6(int) Load 11(i) - 34: 6(int) IAdd 33 9 - Store 11(i) 34 - Branch 13 - 15: Label - Store 8(o) 35 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.dead-after-return.vert.out b/deps/glslang/Test/baseResults/spv.dead-after-return.vert.out deleted file mode 100644 index d6ba2c72..00000000 --- a/deps/glslang/Test/baseResults/spv.dead-after-return.vert.out +++ /dev/null @@ -1,29 +0,0 @@ -spv.dead-after-return.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 14 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 8 13 - Source GLSL 450 - Name 4 "main" - Name 8 "o" - Name 13 "c" - Decorate 8(o) Location 0 - Decorate 13(c) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Output 6(int) - 8(o): 7(ptr) Variable Output - 9: 6(int) Constant 1 - 11: 6(int) Constant 3 - 12: TypePointer Input 6(int) - 13(c): 12(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - Store 8(o) 9 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.dead-after-switch-break.vert.out b/deps/glslang/Test/baseResults/spv.dead-after-switch-break.vert.out deleted file mode 100644 index f8bc4d04..00000000 --- a/deps/glslang/Test/baseResults/spv.dead-after-switch-break.vert.out +++ /dev/null @@ -1,40 +0,0 @@ -spv.dead-after-switch-break.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 21 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 8 14 - Source GLSL 450 - Name 4 "main" - Name 8 "c" - Name 14 "o" - Decorate 8(c) Location 0 - Decorate 14(o) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Input 6(int) - 8(c): 7(ptr) Variable Input - 13: TypePointer Output 6(int) - 14(o): 13(ptr) Variable Output - 15: 6(int) Constant 1 - 17: 6(int) Constant 2 - 20: 6(int) Constant 3 - 4(main): 2 Function None 3 - 5: Label - 9: 6(int) Load 8(c) - SelectionMerge 12 None - Switch 9 11 - case 0: 10 - 11: Label - Branch 12 - 10: Label - Store 14(o) 15 - Branch 12 - 12: Label - Store 14(o) 20 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.dead-complex-continue-after-return.vert.out b/deps/glslang/Test/baseResults/spv.dead-complex-continue-after-return.vert.out deleted file mode 100644 index 3db78ecc..00000000 --- a/deps/glslang/Test/baseResults/spv.dead-complex-continue-after-return.vert.out +++ /dev/null @@ -1,55 +0,0 @@ -spv.dead-complex-continue-after-return.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 31 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 11 30 - Source GLSL 450 - Name 4 "main" - Name 8 "i" - Name 11 "o" - Name 30 "c" - Decorate 11(o) Location 0 - Decorate 30(c) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Function 6(int) - 9: 6(int) Constant 0 - 10: TypePointer Output 6(int) - 11(o): 10(ptr) Variable Output - 12: 6(int) Constant 1 - 19: 6(int) Constant 5 - 20: TypeBool - 22: 6(int) Constant 2 - 24: 6(int) Constant 3 - 27: 6(int) Constant 99 - 28: 6(int) Constant 4 - 29: TypePointer Input 6(int) - 30(c): 29(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 8(i): 7(ptr) Variable Function - Store 8(i) 9 - Store 11(o) 12 - Store 8(i) 9 - Branch 13 - 13: Label - LoopMerge 15 16 None - Branch 17 - 17: Label - 18: 6(int) Load 8(i) - 21: 20(bool) SLessThan 18 19 - BranchConditional 21 14 15 - 14: Label - Store 11(o) 22 - Return - 16: Label - Branch 13 - 15: Label - Store 11(o) 28 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.dead-complex-merge-after-return.vert.out b/deps/glslang/Test/baseResults/spv.dead-complex-merge-after-return.vert.out deleted file mode 100644 index cc1b25c8..00000000 --- a/deps/glslang/Test/baseResults/spv.dead-complex-merge-after-return.vert.out +++ /dev/null @@ -1,51 +0,0 @@ -spv.dead-complex-merge-after-return.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 36 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 11 27 - Source GLSL 450 - Name 4 "main" - Name 8 "i" - Name 11 "o" - Name 27 "c" - Decorate 11(o) Location 0 - Decorate 27(c) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Function 6(int) - 9: 6(int) Constant 0 - 10: TypePointer Output 6(int) - 11(o): 10(ptr) Variable Output - 12: 6(int) Constant 1 - 17: 6(int) Constant 2 - 19: 6(int) Constant 3 - 22: 6(int) Constant 5 - 23: TypeBool - 25: 6(int) Constant 4 - 26: TypePointer Input 6(int) - 27(c): 26(ptr) Variable Input - 32: 6(int) Constant 100 - 34: 6(int) Constant 200 - 35: 6(int) Constant 300 - 4(main): 2 Function None 3 - 5: Label - 8(i): 7(ptr) Variable Function - Store 8(i) 9 - Store 11(o) 12 - Branch 13 - 13: Label - LoopMerge 15 16 None - Branch 14 - 14: Label - Store 11(o) 17 - Return - 16: Label - Branch 13 - 15: Label - Unreachable - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.debugInfo.1.1.frag.out b/deps/glslang/Test/baseResults/spv.debugInfo.1.1.frag.out deleted file mode 100644 index 78044ff2..00000000 --- a/deps/glslang/Test/baseResults/spv.debugInfo.1.1.frag.out +++ /dev/null @@ -1,279 +0,0 @@ -spv.debugInfo.frag -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 124 - - Capability Shader - 2: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 5 "main" 24 52 - ExecutionMode 5 OriginUpperLeft - 1: String "spv.debugInfo.frag" - Source GLSL 450 1 "#version 450 - -struct S { - int a; -}; - -uniform ubuf { - S s; -}; - -uniform sampler2D s2d; - -layout(location = 0) in vec4 inv; -layout(location = 0) out vec4 outv; - -vec4 foo(S s) -{ - vec4 r = s.a * inv; - ++r; - if (r.x > 3.0) - --r; - else - r *= 2; - - return r; -} - -void main() -{ - outv = foo(s); - outv += texture(s2d, vec2(0.5)); - - switch (s.a) { - case 10: - ++outv; - break; - case 20: - outv = 2 * outv; - ++outv; - break; - default: - --outv; - break; - } - - for (int i = 0; i < 10; ++i) - outv *= 3.0; - - outv.x < 10.0 ? - outv = sin(outv) : - outv = cos(outv); -}" - Name 5 "main" - Name 8 "S" - MemberName 8(S) 0 "a" - Name 14 "foo(struct-S-i11;" - Name 13 "s" - Name 17 "r" - Name 24 "inv" - Name 52 "outv" - Name 53 "S" - MemberName 53(S) 0 "a" - Name 54 "ubuf" - MemberName 54(ubuf) 0 "s" - Name 56 "" - Name 57 "param" - Name 67 "s2d" - Name 97 "i" - ModuleProcessed "no-storage-format" - ModuleProcessed "resource-set-binding 3" - ModuleProcessed "auto-map-bindings" - ModuleProcessed "auto-map-locations" - ModuleProcessed "client vulkan100" - ModuleProcessed "target-env spirv1.3" - ModuleProcessed "target-env vulkan1.1" - ModuleProcessed "relaxed-errors" - ModuleProcessed "suppress-warnings" - ModuleProcessed "hlsl-offsets" - ModuleProcessed "entry-point main" - Decorate 24(inv) Location 0 - Decorate 52(outv) Location 0 - MemberDecorate 53(S) 0 Offset 0 - MemberDecorate 54(ubuf) 0 Offset 0 - Decorate 54(ubuf) Block - Decorate 56 DescriptorSet 3 - Decorate 56 Binding 0 - Decorate 67(s2d) DescriptorSet 3 - Decorate 67(s2d) Binding 1 - 3: TypeVoid - 4: TypeFunction 3 - 7: TypeInt 32 1 - 8(S): TypeStruct 7(int) - 9: TypePointer Function 8(S) - 10: TypeFloat 32 - 11: TypeVector 10(float) 4 - 12: TypeFunction 11(fvec4) 9(ptr) - 16: TypePointer Function 11(fvec4) - 18: 7(int) Constant 0 - 19: TypePointer Function 7(int) - 23: TypePointer Input 11(fvec4) - 24(inv): 23(ptr) Variable Input - 28: 10(float) Constant 1065353216 - 31: TypeInt 32 0 - 32: 31(int) Constant 0 - 33: TypePointer Function 10(float) - 36: 10(float) Constant 1077936128 - 37: TypeBool - 45: 10(float) Constant 1073741824 - 51: TypePointer Output 11(fvec4) - 52(outv): 51(ptr) Variable Output - 53(S): TypeStruct 7(int) - 54(ubuf): TypeStruct 53(S) - 55: TypePointer Uniform 54(ubuf) - 56: 55(ptr) Variable Uniform - 58: TypePointer Uniform 53(S) - 64: TypeImage 10(float) 2D sampled format:Unknown - 65: TypeSampledImage 64 - 66: TypePointer UniformConstant 65 - 67(s2d): 66(ptr) Variable UniformConstant - 69: TypeVector 10(float) 2 - 70: 10(float) Constant 1056964608 - 71: 69(fvec2) ConstantComposite 70 70 - 75: TypePointer Uniform 7(int) - 104: 7(int) Constant 10 - 109: 7(int) Constant 1 - 111: TypePointer Output 10(float) - 114: 10(float) Constant 1092616192 - 5(main): 3 Function None 4 - 6: Label - 57(param): 9(ptr) Variable Function - 97(i): 19(ptr) Variable Function - 116: 16(ptr) Variable Function - Line 1 30 0 - 59: 58(ptr) AccessChain 56 18 - 60: 53(S) Load 59 - 61: 7(int) CompositeExtract 60 0 - 62: 19(ptr) AccessChain 57(param) 18 - Store 62 61 - 63: 11(fvec4) FunctionCall 14(foo(struct-S-i11;) 57(param) - Store 52(outv) 63 - Line 1 31 0 - 68: 65 Load 67(s2d) - 72: 11(fvec4) ImageSampleImplicitLod 68 71 - 73: 11(fvec4) Load 52(outv) - 74: 11(fvec4) FAdd 73 72 - Store 52(outv) 74 - Line 1 33 0 - 76: 75(ptr) AccessChain 56 18 18 - 77: 7(int) Load 76 - SelectionMerge 81 None - Switch 77 80 - case 10: 78 - case 20: 79 - 80: Label - Line 1 42 0 - 92: 11(fvec4) Load 52(outv) - 93: 11(fvec4) CompositeConstruct 28 28 28 28 - 94: 11(fvec4) FSub 92 93 - Store 52(outv) 94 - Line 1 43 0 - Branch 81 - 78: Label - Line 1 35 0 - 82: 11(fvec4) Load 52(outv) - 83: 11(fvec4) CompositeConstruct 28 28 28 28 - 84: 11(fvec4) FAdd 82 83 - Store 52(outv) 84 - Line 1 36 0 - Branch 81 - 79: Label - Line 1 38 0 - 86: 11(fvec4) Load 52(outv) - 87: 11(fvec4) VectorTimesScalar 86 45 - Store 52(outv) 87 - Line 1 39 0 - 88: 11(fvec4) Load 52(outv) - 89: 11(fvec4) CompositeConstruct 28 28 28 28 - 90: 11(fvec4) FAdd 88 89 - Store 52(outv) 90 - Line 1 40 0 - Branch 81 - 81: Label - Line 1 46 0 - Store 97(i) 18 - Branch 98 - 98: Label - LoopMerge 100 101 None - Branch 102 - 102: Label - 103: 7(int) Load 97(i) - 105: 37(bool) SLessThan 103 104 - BranchConditional 105 99 100 - 99: Label - Line 1 47 0 - 106: 11(fvec4) Load 52(outv) - 107: 11(fvec4) VectorTimesScalar 106 36 - Store 52(outv) 107 - Branch 101 - 101: Label - Line 1 46 0 - 108: 7(int) Load 97(i) - 110: 7(int) IAdd 108 109 - Store 97(i) 110 - Branch 98 - 100: Label - Line 1 49 0 - 112: 111(ptr) AccessChain 52(outv) 32 - 113: 10(float) Load 112 - 115: 37(bool) FOrdLessThan 113 114 - SelectionMerge 118 None - BranchConditional 115 117 121 - 117: Label - Line 1 50 0 - 119: 11(fvec4) Load 52(outv) - 120: 11(fvec4) ExtInst 2(GLSL.std.450) 13(Sin) 119 - Store 52(outv) 120 - Store 116 120 - Branch 118 - 121: Label - Line 1 51 0 - 122: 11(fvec4) Load 52(outv) - 123: 11(fvec4) ExtInst 2(GLSL.std.450) 14(Cos) 122 - Store 52(outv) 123 - Store 116 123 - Branch 118 - 118: Label - Return - FunctionEnd -14(foo(struct-S-i11;): 11(fvec4) Function None 12 - 13(s): 9(ptr) FunctionParameter - 15: Label - 17(r): 16(ptr) Variable Function - Line 1 18 0 - 20: 19(ptr) AccessChain 13(s) 18 - 21: 7(int) Load 20 - 22: 10(float) ConvertSToF 21 - 25: 11(fvec4) Load 24(inv) - 26: 11(fvec4) VectorTimesScalar 25 22 - Store 17(r) 26 - Line 1 19 0 - 27: 11(fvec4) Load 17(r) - 29: 11(fvec4) CompositeConstruct 28 28 28 28 - 30: 11(fvec4) FAdd 27 29 - Store 17(r) 30 - Line 1 20 0 - 34: 33(ptr) AccessChain 17(r) 32 - 35: 10(float) Load 34 - 38: 37(bool) FOrdGreaterThan 35 36 - SelectionMerge 40 None - BranchConditional 38 39 44 - 39: Label - Line 1 21 0 - 41: 11(fvec4) Load 17(r) - 42: 11(fvec4) CompositeConstruct 28 28 28 28 - 43: 11(fvec4) FSub 41 42 - Store 17(r) 43 - Branch 40 - 44: Label - Line 1 23 0 - 46: 11(fvec4) Load 17(r) - 47: 11(fvec4) VectorTimesScalar 46 45 - Store 17(r) 47 - Branch 40 - 40: Label - Line 1 25 0 - 48: 11(fvec4) Load 17(r) - ReturnValue 48 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.debugInfo.frag.out b/deps/glslang/Test/baseResults/spv.debugInfo.frag.out deleted file mode 100644 index e1463981..00000000 --- a/deps/glslang/Test/baseResults/spv.debugInfo.frag.out +++ /dev/null @@ -1,280 +0,0 @@ -spv.debugInfo.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 124 - - Capability Shader - 2: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 5 "main" 24 52 - ExecutionMode 5 OriginLowerLeft - 1: String "spv.debugInfo.frag" - Source GLSL 450 1 "// OpModuleProcessed no-storage-format -// OpModuleProcessed resource-set-binding 3 -// OpModuleProcessed auto-map-bindings -// OpModuleProcessed auto-map-locations -// OpModuleProcessed client opengl100 -// OpModuleProcessed target-env opengl -// OpModuleProcessed relaxed-errors -// OpModuleProcessed suppress-warnings -// OpModuleProcessed hlsl-offsets -// OpModuleProcessed entry-point main -#line 1 -#version 450 - -struct S { - int a; -}; - -uniform ubuf { - S s; -}; - -uniform sampler2D s2d; - -layout(location = 0) in vec4 inv; -layout(location = 0) out vec4 outv; - -vec4 foo(S s) -{ - vec4 r = s.a * inv; - ++r; - if (r.x > 3.0) - --r; - else - r *= 2; - - return r; -} - -void main() -{ - outv = foo(s); - outv += texture(s2d, vec2(0.5)); - - switch (s.a) { - case 10: - ++outv; - break; - case 20: - outv = 2 * outv; - ++outv; - break; - default: - --outv; - break; - } - - for (int i = 0; i < 10; ++i) - outv *= 3.0; - - outv.x < 10.0 ? - outv = sin(outv) : - outv = cos(outv); -}" - Name 5 "main" - Name 8 "S" - MemberName 8(S) 0 "a" - Name 14 "foo(struct-S-i11;" - Name 13 "s" - Name 17 "r" - Name 24 "inv" - Name 52 "outv" - Name 53 "S" - MemberName 53(S) 0 "a" - Name 54 "ubuf" - MemberName 54(ubuf) 0 "s" - Name 56 "" - Name 57 "param" - Name 67 "s2d" - Name 97 "i" - Decorate 24(inv) Location 0 - Decorate 52(outv) Location 0 - MemberDecorate 53(S) 0 Offset 0 - MemberDecorate 54(ubuf) 0 Offset 0 - Decorate 54(ubuf) Block - Decorate 56 DescriptorSet 3 - Decorate 56 Binding 0 - Decorate 67(s2d) Location 0 - Decorate 67(s2d) DescriptorSet 3 - Decorate 67(s2d) Binding 1 - 3: TypeVoid - 4: TypeFunction 3 - 7: TypeInt 32 1 - 8(S): TypeStruct 7(int) - 9: TypePointer Function 8(S) - 10: TypeFloat 32 - 11: TypeVector 10(float) 4 - 12: TypeFunction 11(fvec4) 9(ptr) - 16: TypePointer Function 11(fvec4) - 18: 7(int) Constant 0 - 19: TypePointer Function 7(int) - 23: TypePointer Input 11(fvec4) - 24(inv): 23(ptr) Variable Input - 28: 10(float) Constant 1065353216 - 31: TypeInt 32 0 - 32: 31(int) Constant 0 - 33: TypePointer Function 10(float) - 36: 10(float) Constant 1077936128 - 37: TypeBool - 45: 10(float) Constant 1073741824 - 51: TypePointer Output 11(fvec4) - 52(outv): 51(ptr) Variable Output - 53(S): TypeStruct 7(int) - 54(ubuf): TypeStruct 53(S) - 55: TypePointer Uniform 54(ubuf) - 56: 55(ptr) Variable Uniform - 58: TypePointer Uniform 53(S) - 64: TypeImage 10(float) 2D sampled format:Unknown - 65: TypeSampledImage 64 - 66: TypePointer UniformConstant 65 - 67(s2d): 66(ptr) Variable UniformConstant - 69: TypeVector 10(float) 2 - 70: 10(float) Constant 1056964608 - 71: 69(fvec2) ConstantComposite 70 70 - 75: TypePointer Uniform 7(int) - 104: 7(int) Constant 10 - 109: 7(int) Constant 1 - 111: TypePointer Output 10(float) - 114: 10(float) Constant 1092616192 - 5(main): 3 Function None 4 - 6: Label - 57(param): 9(ptr) Variable Function - 97(i): 19(ptr) Variable Function - 116: 16(ptr) Variable Function - Line 1 30 0 - 59: 58(ptr) AccessChain 56 18 - 60: 53(S) Load 59 - 61: 7(int) CompositeExtract 60 0 - 62: 19(ptr) AccessChain 57(param) 18 - Store 62 61 - 63: 11(fvec4) FunctionCall 14(foo(struct-S-i11;) 57(param) - Store 52(outv) 63 - Line 1 31 0 - 68: 65 Load 67(s2d) - 72: 11(fvec4) ImageSampleImplicitLod 68 71 - 73: 11(fvec4) Load 52(outv) - 74: 11(fvec4) FAdd 73 72 - Store 52(outv) 74 - Line 1 33 0 - 76: 75(ptr) AccessChain 56 18 18 - 77: 7(int) Load 76 - SelectionMerge 81 None - Switch 77 80 - case 10: 78 - case 20: 79 - 80: Label - Line 1 42 0 - 92: 11(fvec4) Load 52(outv) - 93: 11(fvec4) CompositeConstruct 28 28 28 28 - 94: 11(fvec4) FSub 92 93 - Store 52(outv) 94 - Line 1 43 0 - Branch 81 - 78: Label - Line 1 35 0 - 82: 11(fvec4) Load 52(outv) - 83: 11(fvec4) CompositeConstruct 28 28 28 28 - 84: 11(fvec4) FAdd 82 83 - Store 52(outv) 84 - Line 1 36 0 - Branch 81 - 79: Label - Line 1 38 0 - 86: 11(fvec4) Load 52(outv) - 87: 11(fvec4) VectorTimesScalar 86 45 - Store 52(outv) 87 - Line 1 39 0 - 88: 11(fvec4) Load 52(outv) - 89: 11(fvec4) CompositeConstruct 28 28 28 28 - 90: 11(fvec4) FAdd 88 89 - Store 52(outv) 90 - Line 1 40 0 - Branch 81 - 81: Label - Line 1 46 0 - Store 97(i) 18 - Branch 98 - 98: Label - LoopMerge 100 101 None - Branch 102 - 102: Label - 103: 7(int) Load 97(i) - 105: 37(bool) SLessThan 103 104 - BranchConditional 105 99 100 - 99: Label - Line 1 47 0 - 106: 11(fvec4) Load 52(outv) - 107: 11(fvec4) VectorTimesScalar 106 36 - Store 52(outv) 107 - Branch 101 - 101: Label - Line 1 46 0 - 108: 7(int) Load 97(i) - 110: 7(int) IAdd 108 109 - Store 97(i) 110 - Branch 98 - 100: Label - Line 1 49 0 - 112: 111(ptr) AccessChain 52(outv) 32 - 113: 10(float) Load 112 - 115: 37(bool) FOrdLessThan 113 114 - SelectionMerge 118 None - BranchConditional 115 117 121 - 117: Label - Line 1 50 0 - 119: 11(fvec4) Load 52(outv) - 120: 11(fvec4) ExtInst 2(GLSL.std.450) 13(Sin) 119 - Store 52(outv) 120 - Store 116 120 - Branch 118 - 121: Label - Line 1 51 0 - 122: 11(fvec4) Load 52(outv) - 123: 11(fvec4) ExtInst 2(GLSL.std.450) 14(Cos) 122 - Store 52(outv) 123 - Store 116 123 - Branch 118 - 118: Label - Return - FunctionEnd -14(foo(struct-S-i11;): 11(fvec4) Function None 12 - 13(s): 9(ptr) FunctionParameter - 15: Label - 17(r): 16(ptr) Variable Function - Line 1 18 0 - 20: 19(ptr) AccessChain 13(s) 18 - 21: 7(int) Load 20 - 22: 10(float) ConvertSToF 21 - 25: 11(fvec4) Load 24(inv) - 26: 11(fvec4) VectorTimesScalar 25 22 - Store 17(r) 26 - Line 1 19 0 - 27: 11(fvec4) Load 17(r) - 29: 11(fvec4) CompositeConstruct 28 28 28 28 - 30: 11(fvec4) FAdd 27 29 - Store 17(r) 30 - Line 1 20 0 - 34: 33(ptr) AccessChain 17(r) 32 - 35: 10(float) Load 34 - 38: 37(bool) FOrdGreaterThan 35 36 - SelectionMerge 40 None - BranchConditional 38 39 44 - 39: Label - Line 1 21 0 - 41: 11(fvec4) Load 17(r) - 42: 11(fvec4) CompositeConstruct 28 28 28 28 - 43: 11(fvec4) FSub 41 42 - Store 17(r) 43 - Branch 40 - 44: Label - Line 1 23 0 - 46: 11(fvec4) Load 17(r) - 47: 11(fvec4) VectorTimesScalar 46 45 - Store 17(r) 47 - Branch 40 - 40: Label - Line 1 25 0 - 48: 11(fvec4) Load 17(r) - ReturnValue 48 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.debugPrintf.frag.out b/deps/glslang/Test/baseResults/spv.debugPrintf.frag.out deleted file mode 100644 index 65174156..00000000 --- a/deps/glslang/Test/baseResults/spv.debugPrintf.frag.out +++ /dev/null @@ -1,31 +0,0 @@ -spv.debugPrintf.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 17 - - Capability Shader - Extension "SPV_KHR_non_semantic_info" - 1: ExtInstImport "GLSL.std.450" - 11: ExtInstImport "NonSemantic.DebugPrintf" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - 6: String "ASDF \ ? \ %d %d %d" - 13: String "ABAZ" - 15: String "B#$B1Z" - Source GLSL 450 - SourceExtension "GL_EXT_debug_printf" - Name 4 "main" - 2: TypeVoid - 3: TypeFunction 2 - 7: TypeInt 32 1 - 8: 7(int) Constant 1 - 9: 7(int) Constant 2 - 10: 7(int) Constant 3 - 4(main): 2 Function None 3 - 5: Label - 12: 2 ExtInst 11(NonSemantic.DebugPrintf) 1(DebugPrintf) 6 8 9 10 - 14: 2 ExtInst 11(NonSemantic.DebugPrintf) 1(DebugPrintf) 13 - 16: 2 ExtInst 11(NonSemantic.DebugPrintf) 1(DebugPrintf) 15 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.debugPrintf_Error.frag.out b/deps/glslang/Test/baseResults/spv.debugPrintf_Error.frag.out deleted file mode 100644 index 31ddd9d0..00000000 --- a/deps/glslang/Test/baseResults/spv.debugPrintf_Error.frag.out +++ /dev/null @@ -1,7 +0,0 @@ -spv.debugPrintf_Error.frag -ERROR: 0:7: 'string' : Expected hex value in escape sequence -ERROR: 0:10: 'string' : Invalid escape sequence -ERROR: 2 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.deepRvalue.frag.out b/deps/glslang/Test/baseResults/spv.deepRvalue.frag.out deleted file mode 100644 index d46159d7..00000000 --- a/deps/glslang/Test/baseResults/spv.deepRvalue.frag.out +++ /dev/null @@ -1,198 +0,0 @@ -spv.deepRvalue.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 152 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 146 - ExecutionMode 4 OriginUpperLeft - Source GLSL 330 - Name 4 "main" - Name 9 "v1" - Name 15 "v2" - Name 21 "v3" - Name 27 "v4" - Name 35 "m" - Name 63 "mm" - Name 80 "f" - Name 87 "g" - Name 106 "h" - Name 107 "i" - Name 111 "samp2D" - Name 131 "str" - MemberName 131(str) 0 "a" - MemberName 131(str) 1 "b" - MemberName 131(str) 2 "c" - Name 133 "t" - Name 146 "gl_FragColor" - Decorate 111(samp2D) DescriptorSet 0 - Decorate 111(samp2D) Binding 0 - Decorate 146(gl_FragColor) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Private 7(fvec4) - 9(v1): 8(ptr) Variable Private - 10: 6(float) Constant 1073741824 - 11: 6(float) Constant 1077936128 - 12: 6(float) Constant 1084227584 - 13: 6(float) Constant 1088421888 - 14: 7(fvec4) ConstantComposite 10 11 12 13 - 15(v2): 8(ptr) Variable Private - 16: 6(float) Constant 1093664768 - 17: 6(float) Constant 1095761920 - 18: 6(float) Constant 1099431936 - 19: 6(float) Constant 1100480512 - 20: 7(fvec4) ConstantComposite 16 17 18 19 - 21(v3): 8(ptr) Variable Private - 22: 6(float) Constant 1102577664 - 23: 6(float) Constant 1105723392 - 24: 6(float) Constant 1106771968 - 25: 6(float) Constant 1108606976 - 26: 7(fvec4) ConstantComposite 22 23 24 25 - 27(v4): 8(ptr) Variable Private - 28: 6(float) Constant 1109655552 - 29: 6(float) Constant 1110179840 - 30: 6(float) Constant 1111228416 - 31: 6(float) Constant 1112801280 - 32: 7(fvec4) ConstantComposite 28 29 30 31 - 33: TypeMatrix 7(fvec4) 4 - 34: TypePointer Function 33 - 40: 6(float) Constant 1065353216 - 41: 6(float) Constant 0 - 79: TypePointer Function 6(float) - 81: TypeInt 32 1 - 82: 81(int) Constant 1 - 83: TypeInt 32 0 - 84: 83(int) Constant 3 - 103: 81(int) Constant 2 - 104: 83(int) Constant 1 - 108: TypeImage 6(float) 2D sampled format:Unknown - 109: TypeSampledImage 108 - 110: TypePointer UniformConstant 109 - 111(samp2D): 110(ptr) Variable UniformConstant - 113: TypeVector 6(float) 2 - 114: 6(float) Constant 1056964608 - 115: 113(fvec2) ConstantComposite 114 114 - 119: 6(float) Constant 1036831949 - 120: TypeBool - 124: TypeVector 120(bool) 4 - 130: TypeArray 113(fvec2) 84 - 131(str): TypeStruct 81(int) 130 120(bool) - 132: TypePointer Function 131(str) - 134: 113(fvec2) ConstantComposite 10 11 - 135: 6(float) Constant 1082130432 - 136: 113(fvec2) ConstantComposite 135 12 - 137: 6(float) Constant 1086324736 - 138: 113(fvec2) ConstantComposite 137 13 - 139: 130 ConstantComposite 134 136 138 - 140: 120(bool) ConstantTrue - 141: 131(str) ConstantComposite 82 139 140 - 145: TypePointer Output 7(fvec4) -146(gl_FragColor): 145(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 35(m): 34(ptr) Variable Function - 63(mm): 34(ptr) Variable Function - 80(f): 79(ptr) Variable Function - 87(g): 79(ptr) Variable Function - 106(h): 79(ptr) Variable Function - 107(i): 79(ptr) Variable Function - 133(t): 132(ptr) Variable Function - Store 9(v1) 14 - Store 15(v2) 20 - Store 21(v3) 26 - Store 27(v4) 32 - 36: 7(fvec4) Load 9(v1) - 37: 7(fvec4) Load 15(v2) - 38: 7(fvec4) Load 21(v3) - 39: 7(fvec4) Load 27(v4) - 42: 6(float) CompositeExtract 36 0 - 43: 6(float) CompositeExtract 36 1 - 44: 6(float) CompositeExtract 36 2 - 45: 6(float) CompositeExtract 36 3 - 46: 6(float) CompositeExtract 37 0 - 47: 6(float) CompositeExtract 37 1 - 48: 6(float) CompositeExtract 37 2 - 49: 6(float) CompositeExtract 37 3 - 50: 6(float) CompositeExtract 38 0 - 51: 6(float) CompositeExtract 38 1 - 52: 6(float) CompositeExtract 38 2 - 53: 6(float) CompositeExtract 38 3 - 54: 6(float) CompositeExtract 39 0 - 55: 6(float) CompositeExtract 39 1 - 56: 6(float) CompositeExtract 39 2 - 57: 6(float) CompositeExtract 39 3 - 58: 7(fvec4) CompositeConstruct 42 43 44 45 - 59: 7(fvec4) CompositeConstruct 46 47 48 49 - 60: 7(fvec4) CompositeConstruct 50 51 52 53 - 61: 7(fvec4) CompositeConstruct 54 55 56 57 - 62: 33 CompositeConstruct 58 59 60 61 - Store 35(m) 62 - 64: 33 Load 35(m) - 65: 33 Load 35(m) - 66: 7(fvec4) CompositeExtract 64 0 - 67: 7(fvec4) CompositeExtract 65 0 - 68: 7(fvec4) FMul 66 67 - 69: 7(fvec4) CompositeExtract 64 1 - 70: 7(fvec4) CompositeExtract 65 1 - 71: 7(fvec4) FMul 69 70 - 72: 7(fvec4) CompositeExtract 64 2 - 73: 7(fvec4) CompositeExtract 65 2 - 74: 7(fvec4) FMul 72 73 - 75: 7(fvec4) CompositeExtract 64 3 - 76: 7(fvec4) CompositeExtract 65 3 - 77: 7(fvec4) FMul 75 76 - 78: 33 CompositeConstruct 68 71 74 77 - Store 63(mm) 78 - 85: 79(ptr) AccessChain 63(mm) 82 84 - 86: 6(float) Load 85 - Store 80(f) 86 - 88: 33 Load 35(m) - 89: 33 Load 35(m) - 90: 7(fvec4) CompositeExtract 88 0 - 91: 7(fvec4) CompositeExtract 89 0 - 92: 7(fvec4) FMul 90 91 - 93: 7(fvec4) CompositeExtract 88 1 - 94: 7(fvec4) CompositeExtract 89 1 - 95: 7(fvec4) FMul 93 94 - 96: 7(fvec4) CompositeExtract 88 2 - 97: 7(fvec4) CompositeExtract 89 2 - 98: 7(fvec4) FMul 96 97 - 99: 7(fvec4) CompositeExtract 88 3 - 100: 7(fvec4) CompositeExtract 89 3 - 101: 7(fvec4) FMul 99 100 - 102: 33 CompositeConstruct 92 95 98 101 - 105: 6(float) CompositeExtract 102 2 1 - Store 87(g) 105 - Store 106(h) 12 - 112: 109 Load 111(samp2D) - 116: 7(fvec4) ImageSampleImplicitLod 112 115 - 117: 6(float) CompositeExtract 116 1 - Store 107(i) 117 - 118: 6(float) Load 107(i) - 121: 120(bool) FOrdGreaterThan 118 119 - 122: 7(fvec4) Load 9(v1) - 123: 7(fvec4) Load 15(v2) - 125: 124(bvec4) CompositeConstruct 121 121 121 121 - 126: 7(fvec4) Select 125 122 123 - 127: 6(float) CompositeExtract 126 3 - 128: 6(float) Load 107(i) - 129: 6(float) FAdd 128 127 - Store 107(i) 129 - Store 133(t) 141 - 142: 6(float) CompositeExtract 141 1 2 1 - 143: 6(float) Load 107(i) - 144: 6(float) FAdd 143 142 - Store 107(i) 144 - 147: 6(float) Load 80(f) - 148: 6(float) Load 87(g) - 149: 6(float) Load 106(h) - 150: 6(float) Load 107(i) - 151: 7(fvec4) CompositeConstruct 147 148 149 150 - Store 146(gl_FragColor) 151 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.demoteDisabled.frag.out b/deps/glslang/Test/baseResults/spv.demoteDisabled.frag.out deleted file mode 100644 index 382fa56d..00000000 --- a/deps/glslang/Test/baseResults/spv.demoteDisabled.frag.out +++ /dev/null @@ -1,6 +0,0 @@ -spv.demoteDisabled.frag -ERROR: 0:9: 'demote' : undeclared identifier -ERROR: 1 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.depthOut.frag.out b/deps/glslang/Test/baseResults/spv.depthOut.frag.out deleted file mode 100644 index 50c47702..00000000 --- a/deps/glslang/Test/baseResults/spv.depthOut.frag.out +++ /dev/null @@ -1,36 +0,0 @@ -spv.depthOut.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 15 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 8 10 14 - ExecutionMode 4 OriginUpperLeft - ExecutionMode 4 DepthReplacing - ExecutionMode 4 DepthGreater - Source GLSL 450 - Name 4 "main" - Name 8 "gl_FragDepth" - Name 10 "Depth" - Name 14 "Color" - Decorate 8(gl_FragDepth) BuiltIn FragDepth - Decorate 10(Depth) Location 1 - Decorate 14(Color) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypePointer Output 6(float) - 8(gl_FragDepth): 7(ptr) Variable Output - 9: TypePointer Input 6(float) - 10(Depth): 9(ptr) Variable Input - 12: TypeVector 6(float) 4 - 13: TypePointer Input 12(fvec4) - 14(Color): 13(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 11: 6(float) Load 10(Depth) - Store 8(gl_FragDepth) 11 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.depthUnchanged.frag.out b/deps/glslang/Test/baseResults/spv.depthUnchanged.frag.out deleted file mode 100644 index 00740078..00000000 --- a/deps/glslang/Test/baseResults/spv.depthUnchanged.frag.out +++ /dev/null @@ -1,44 +0,0 @@ -spv.depthUnchanged.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 22 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 9 14 16 - ExecutionMode 4 OriginUpperLeft - ExecutionMode 4 DepthReplacing - ExecutionMode 4 DepthUnchanged - Source GLSL 430 - Name 4 "main" - Name 9 "outColor" - Name 14 "gl_FragDepth" - Name 16 "gl_FragCoord" - Decorate 9(outColor) Location 0 - Decorate 14(gl_FragDepth) BuiltIn FragDepth - Decorate 16(gl_FragCoord) BuiltIn FragCoord - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) - 9(outColor): 8(ptr) Variable Output - 10: 6(float) Constant 1065353216 - 11: 6(float) Constant 0 - 12: 7(fvec4) ConstantComposite 10 11 11 10 - 13: TypePointer Output 6(float) -14(gl_FragDepth): 13(ptr) Variable Output - 15: TypePointer Input 7(fvec4) -16(gl_FragCoord): 15(ptr) Variable Input - 17: TypeInt 32 0 - 18: 17(int) Constant 1 - 19: TypePointer Input 6(float) - 4(main): 2 Function None 3 - 5: Label - Store 9(outColor) 12 - 20: 19(ptr) AccessChain 16(gl_FragCoord) 18 - 21: 6(float) Load 20 - Store 14(gl_FragDepth) 21 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.deviceGroup.frag.out b/deps/glslang/Test/baseResults/spv.deviceGroup.frag.out deleted file mode 100644 index 57c443c0..00000000 --- a/deps/glslang/Test/baseResults/spv.deviceGroup.frag.out +++ /dev/null @@ -1,37 +0,0 @@ -spv.deviceGroup.frag -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 17 - - Capability Shader - Capability DeviceGroup - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 9 12 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_device_group" - Name 4 "main" - Name 9 "color" - Name 12 "gl_DeviceIndex" - Decorate 9(color) Location 0 - Decorate 12(gl_DeviceIndex) Flat - Decorate 12(gl_DeviceIndex) BuiltIn DeviceIndex - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) - 9(color): 8(ptr) Variable Output - 10: TypeInt 32 1 - 11: TypePointer Input 10(int) -12(gl_DeviceIndex): 11(ptr) Variable Input - 15: 6(float) Constant 0 - 4(main): 2 Function None 3 - 5: Label - 13: 10(int) Load 12(gl_DeviceIndex) - 14: 6(float) ConvertSToF 13 - 16: 7(fvec4) CompositeConstruct 14 15 15 15 - Store 9(color) 16 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.discard-dce.frag.out b/deps/glslang/Test/baseResults/spv.discard-dce.frag.out deleted file mode 100644 index 93c2de8f..00000000 --- a/deps/glslang/Test/baseResults/spv.discard-dce.frag.out +++ /dev/null @@ -1,128 +0,0 @@ -spv.discard-dce.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 84 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 21 59 - ExecutionMode 4 OriginUpperLeft - Source GLSL 140 - Name 4 "main" - Name 9 "white" - Name 12 "black" - Name 15 "color" - Name 18 "x" - Name 21 "tex_coord" - Name 30 "y" - Name 36 "radius" - Name 59 "gl_FragColor" - Decorate 21(tex_coord) Location 0 - Decorate 59(gl_FragColor) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: 6(float) Constant 1065353216 - 11: 7(fvec4) ConstantComposite 10 10 10 10 - 13: 6(float) Constant 1045220557 - 14: 7(fvec4) ConstantComposite 13 13 13 13 - 17: TypePointer Function 6(float) - 19: TypeVector 6(float) 2 - 20: TypePointer Input 19(fvec2) - 21(tex_coord): 20(ptr) Variable Input - 22: TypeInt 32 0 - 23: 22(int) Constant 0 - 24: TypePointer Input 6(float) - 27: 6(float) Constant 1073741824 - 31: 22(int) Constant 1 - 46: TypeBool - 51: 6(float) Constant 1066192077 - 58: TypePointer Output 7(fvec4) -59(gl_FragColor): 58(ptr) Variable Output - 62: 6(float) Constant 1067030938 - 71: 6(float) Constant 1061158912 - 76: 6(float) Constant 1098907648 - 4(main): 2 Function None 3 - 5: Label - 9(white): 8(ptr) Variable Function - 12(black): 8(ptr) Variable Function - 15(color): 8(ptr) Variable Function - 18(x): 17(ptr) Variable Function - 30(y): 17(ptr) Variable Function - 36(radius): 17(ptr) Variable Function - Store 9(white) 11 - Store 12(black) 14 - 16: 7(fvec4) Load 9(white) - Store 15(color) 16 - 25: 24(ptr) AccessChain 21(tex_coord) 23 - 26: 6(float) Load 25 - 28: 6(float) FMul 26 27 - 29: 6(float) FSub 28 10 - Store 18(x) 29 - 32: 24(ptr) AccessChain 21(tex_coord) 31 - 33: 6(float) Load 32 - 34: 6(float) FMul 33 27 - 35: 6(float) FSub 34 10 - Store 30(y) 35 - 37: 6(float) Load 18(x) - 38: 6(float) Load 18(x) - 39: 6(float) FMul 37 38 - 40: 6(float) Load 30(y) - 41: 6(float) Load 30(y) - 42: 6(float) FMul 40 41 - 43: 6(float) FAdd 39 42 - 44: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 43 - Store 36(radius) 44 - 45: 6(float) Load 36(radius) - 47: 46(bool) FOrdGreaterThan 45 10 - SelectionMerge 49 None - BranchConditional 47 48 49 - 48: Label - 50: 6(float) Load 36(radius) - 52: 46(bool) FOrdGreaterThan 50 51 - SelectionMerge 54 None - BranchConditional 52 53 54 - 53: Label - 55: 7(fvec4) Load 15(color) - 56: 7(fvec4) CompositeConstruct 10 10 10 10 - 57: 7(fvec4) FAdd 55 56 - Store 15(color) 57 - Branch 54 - 54: Label - 60: 7(fvec4) Load 15(color) - Store 59(gl_FragColor) 60 - 61: 6(float) Load 36(radius) - 63: 46(bool) FOrdGreaterThan 61 62 - SelectionMerge 65 None - BranchConditional 63 64 65 - 64: Label - 66: 7(fvec4) Load 15(color) - 67: 7(fvec4) CompositeConstruct 10 10 10 10 - 68: 7(fvec4) FAdd 66 67 - Store 15(color) 68 - Branch 65 - 65: Label - Kill - 49: Label - 70: 6(float) Load 36(radius) - 72: 46(bool) FOrdGreaterThanEqual 70 71 - SelectionMerge 74 None - BranchConditional 72 73 74 - 73: Label - 75: 6(float) Load 36(radius) - 77: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 75 76 - 78: 6(float) FDiv 77 27 - 79: 6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 78 - 80: 7(fvec4) Load 15(color) - 81: 7(fvec4) CompositeConstruct 79 79 79 79 - 82: 7(fvec4) FSub 80 81 - Store 15(color) 82 - Branch 74 - 74: Label - 83: 7(fvec4) Load 15(color) - Store 59(gl_FragColor) 83 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.do-simple.vert.out b/deps/glslang/Test/baseResults/spv.do-simple.vert.out deleted file mode 100644 index c240c449..00000000 --- a/deps/glslang/Test/baseResults/spv.do-simple.vert.out +++ /dev/null @@ -1,40 +0,0 @@ -spv.do-simple.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 21 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" - Source ESSL 310 - Name 4 "main" - Name 8 "i" - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Function 6(int) - 9: 6(int) Constant 0 - 15: 6(int) Constant 1 - 18: 6(int) Constant 10 - 19: TypeBool - 4(main): 2 Function None 3 - 5: Label - 8(i): 7(ptr) Variable Function - Store 8(i) 9 - Branch 10 - 10: Label - LoopMerge 12 13 None - Branch 11 - 11: Label - 14: 6(int) Load 8(i) - 16: 6(int) IAdd 14 15 - Store 8(i) 16 - Branch 13 - 13: Label - 17: 6(int) Load 8(i) - 20: 19(bool) SLessThan 17 18 - BranchConditional 20 10 12 - 12: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.do-while-continue-break.vert.out b/deps/glslang/Test/baseResults/spv.do-while-continue-break.vert.out deleted file mode 100644 index 081dc620..00000000 --- a/deps/glslang/Test/baseResults/spv.do-while-continue-break.vert.out +++ /dev/null @@ -1,78 +0,0 @@ -spv.do-while-continue-break.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 43 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" - Source ESSL 310 - Name 4 "main" - Name 8 "i" - Name 14 "A" - Name 21 "B" - Name 24 "C" - Name 30 "D" - Name 33 "E" - Name 35 "F" - Name 41 "G" - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Function 6(int) - 9: 6(int) Constant 0 - 16: 6(int) Constant 2 - 17: TypeBool - 22: 6(int) Constant 1 - 26: 6(int) Constant 5 - 31: 6(int) Constant 3 - 34: 6(int) Constant 42 - 36: 6(int) Constant 99 - 39: 6(int) Constant 19 - 42: 6(int) Constant 12 - 4(main): 2 Function None 3 - 5: Label - 8(i): 7(ptr) Variable Function - 14(A): 7(ptr) Variable Function - 21(B): 7(ptr) Variable Function - 24(C): 7(ptr) Variable Function - 30(D): 7(ptr) Variable Function - 33(E): 7(ptr) Variable Function - 35(F): 7(ptr) Variable Function - 41(G): 7(ptr) Variable Function - Store 8(i) 9 - Branch 10 - 10: Label - LoopMerge 12 13 None - Branch 11 - 11: Label - Store 14(A) 9 - 15: 6(int) Load 8(i) - 18: 17(bool) IEqual 15 16 - SelectionMerge 20 None - BranchConditional 18 19 20 - 19: Label - Store 21(B) 22 - Branch 13 - 20: Label - 25: 6(int) Load 8(i) - 27: 17(bool) IEqual 25 26 - SelectionMerge 29 None - BranchConditional 27 28 29 - 28: Label - Store 30(D) 31 - Branch 12 - 29: Label - Store 35(F) 36 - Branch 13 - 13: Label - 37: 6(int) Load 8(i) - 38: 6(int) IAdd 37 22 - Store 8(i) 38 - 40: 17(bool) SLessThan 38 39 - BranchConditional 40 10 12 - 12: Label - Store 41(G) 42 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.doWhileLoop.frag.out b/deps/glslang/Test/baseResults/spv.doWhileLoop.frag.out deleted file mode 100644 index a57b9b2e..00000000 --- a/deps/glslang/Test/baseResults/spv.doWhileLoop.frag.out +++ /dev/null @@ -1,63 +0,0 @@ -spv.doWhileLoop.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 34 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 11 17 27 32 - ExecutionMode 4 OriginUpperLeft - Source GLSL 140 - Name 4 "main" - Name 9 "color" - Name 11 "BaseColor" - Name 17 "bigColor" - Name 27 "d" - Name 32 "gl_FragColor" - Decorate 11(BaseColor) Location 1 - Decorate 17(bigColor) Location 0 - Decorate 27(d) Location 2 - Decorate 32(gl_FragColor) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: TypePointer Input 7(fvec4) - 11(BaseColor): 10(ptr) Variable Input - 17(bigColor): 10(ptr) Variable Input - 21: TypeInt 32 0 - 22: 21(int) Constant 0 - 23: TypePointer Function 6(float) - 26: TypePointer Input 6(float) - 27(d): 26(ptr) Variable Input - 29: TypeBool - 31: TypePointer Output 7(fvec4) -32(gl_FragColor): 31(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 9(color): 8(ptr) Variable Function - 12: 7(fvec4) Load 11(BaseColor) - Store 9(color) 12 - Branch 13 - 13: Label - LoopMerge 15 16 None - Branch 14 - 14: Label - 18: 7(fvec4) Load 17(bigColor) - 19: 7(fvec4) Load 9(color) - 20: 7(fvec4) FAdd 19 18 - Store 9(color) 20 - Branch 16 - 16: Label - 24: 23(ptr) AccessChain 9(color) 22 - 25: 6(float) Load 24 - 28: 6(float) Load 27(d) - 30: 29(bool) FOrdLessThan 25 28 - BranchConditional 30 13 15 - 15: Label - 33: 7(fvec4) Load 9(color) - Store 32(gl_FragColor) 33 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.double.comp.out b/deps/glslang/Test/baseResults/spv.double.comp.out deleted file mode 100644 index 800464cc..00000000 --- a/deps/glslang/Test/baseResults/spv.double.comp.out +++ /dev/null @@ -1,100 +0,0 @@ -spv.double.comp -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 60 - - Capability Shader - Capability Float64 - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 26 33 - ExecutionMode 4 LocalSize 1 1 1 - Source GLSL 430 - Name 4 "main" - Name 8 "bufName" - MemberName 8(bufName) 0 "f" - MemberName 8(bufName) 1 "d" - Name 10 "bufInst" - Name 22 "storePos" - Name 26 "gl_GlobalInvocationID" - Name 32 "localCoef" - Name 33 "gl_LocalInvocationID" - Name 49 "aa" - Name 54 "globalCoef" - Name 59 "destTex" - MemberDecorate 8(bufName) 0 Offset 0 - MemberDecorate 8(bufName) 1 Offset 8 - Decorate 8(bufName) BufferBlock - Decorate 10(bufInst) DescriptorSet 0 - Decorate 10(bufInst) Binding 0 - Decorate 26(gl_GlobalInvocationID) BuiltIn GlobalInvocationId - Decorate 33(gl_LocalInvocationID) BuiltIn LocalInvocationId - Decorate 59(destTex) DescriptorSet 0 - Decorate 59(destTex) Binding 0 - Decorate 59(destTex) NonReadable - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeFloat 64 - 8(bufName): TypeStruct 6(float) 7(float64_t) - 9: TypePointer Uniform 8(bufName) - 10(bufInst): 9(ptr) Variable Uniform - 11: TypeInt 32 1 - 12: 11(int) Constant 1 - 13:7(float64_t) Constant 1413754136 1074340347 - 14: TypePointer Uniform 7(float64_t) - 16: 11(int) Constant 0 - 17: 6(float) Constant 1095307129 - 18: TypePointer Uniform 6(float) - 20: TypeVector 11(int) 2 - 21: TypePointer Function 20(ivec2) - 23: TypeInt 32 0 - 24: TypeVector 23(int) 3 - 25: TypePointer Input 24(ivec3) -26(gl_GlobalInvocationID): 25(ptr) Variable Input - 27: TypeVector 23(int) 2 - 31: TypePointer Function 7(float64_t) -33(gl_LocalInvocationID): 25(ptr) Variable Input - 37: 11(int) Constant 8 - 40: TypeVector 6(float) 2 - 42: 6(float) Constant 1090519040 - 47: TypeVector 7(float64_t) 4 - 48: TypePointer Function 47(f64vec4) - 50:7(float64_t) Constant 2576980378 1071225241 - 51:7(float64_t) Constant 2576980378 1070176665 - 52:7(float64_t) Constant 858993459 1070805811 - 53: 47(f64vec4) ConstantComposite 50 51 52 50 - 55:7(float64_t) Constant 0 1072693248 - 56:7(float64_t) Constant 3229815407 1074340298 - 57: TypeImage 6(float) 2D nonsampled format:Unknown - 58: TypePointer UniformConstant 57 - 59(destTex): 58(ptr) Variable UniformConstant - 4(main): 2 Function None 3 - 5: Label - 22(storePos): 21(ptr) Variable Function - 32(localCoef): 31(ptr) Variable Function - 49(aa): 48(ptr) Variable Function - 54(globalCoef): 31(ptr) Variable Function - 15: 14(ptr) AccessChain 10(bufInst) 12 - Store 15 13 - 19: 18(ptr) AccessChain 10(bufInst) 16 - Store 19 17 - 28: 24(ivec3) Load 26(gl_GlobalInvocationID) - 29: 27(ivec2) VectorShuffle 28 28 0 1 - 30: 20(ivec2) Bitcast 29 - Store 22(storePos) 30 - 34: 24(ivec3) Load 33(gl_LocalInvocationID) - 35: 27(ivec2) VectorShuffle 34 34 0 1 - 36: 20(ivec2) Bitcast 35 - 38: 20(ivec2) CompositeConstruct 37 37 - 39: 20(ivec2) ISub 36 38 - 41: 40(fvec2) ConvertSToF 39 - 43: 40(fvec2) CompositeConstruct 42 42 - 44: 40(fvec2) FDiv 41 43 - 45: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 44 - 46:7(float64_t) FConvert 45 - Store 32(localCoef) 46 - Store 49(aa) 53 - Store 54(globalCoef) 55 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.drawParams.vert.out b/deps/glslang/Test/baseResults/spv.drawParams.vert.out deleted file mode 100644 index a8dab45c..00000000 --- a/deps/glslang/Test/baseResults/spv.drawParams.vert.out +++ /dev/null @@ -1,57 +0,0 @@ -spv.drawParams.vert -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 29 - - Capability Shader - Capability DrawParameters - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 10 13 16 21 - Source GLSL 450 - SourceExtension "GL_ARB_shader_draw_parameters" - Name 4 "main" - Name 8 "a" - Name 10 "gl_BaseVertexARB" - Name 12 "b" - Name 13 "gl_BaseInstanceARB" - Name 15 "c" - Name 16 "gl_DrawIDARB" - Name 21 "pos" - Decorate 10(gl_BaseVertexARB) BuiltIn BaseVertex - Decorate 13(gl_BaseInstanceARB) BuiltIn BaseInstance - Decorate 16(gl_DrawIDARB) BuiltIn DrawIndex - Decorate 21(pos) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Function 6(int) - 9: TypePointer Input 6(int) -10(gl_BaseVertexARB): 9(ptr) Variable Input -13(gl_BaseInstanceARB): 9(ptr) Variable Input -16(gl_DrawIDARB): 9(ptr) Variable Input - 18: TypeFloat 32 - 19: TypeVector 18(float) 3 - 20: TypePointer Output 19(fvec3) - 21(pos): 20(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 8(a): 7(ptr) Variable Function - 12(b): 7(ptr) Variable Function - 15(c): 7(ptr) Variable Function - 11: 6(int) Load 10(gl_BaseVertexARB) - Store 8(a) 11 - 14: 6(int) Load 13(gl_BaseInstanceARB) - Store 12(b) 14 - 17: 6(int) Load 16(gl_DrawIDARB) - Store 15(c) 17 - 22: 6(int) Load 8(a) - 23: 18(float) ConvertSToF 22 - 24: 6(int) Load 12(b) - 25: 18(float) ConvertSToF 24 - 26: 6(int) Load 15(c) - 27: 18(float) ConvertSToF 26 - 28: 19(fvec3) CompositeConstruct 23 25 27 - Store 21(pos) 28 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.earlyReturnDiscard.frag.out b/deps/glslang/Test/baseResults/spv.earlyReturnDiscard.frag.out deleted file mode 100644 index 8f983cb5..00000000 --- a/deps/glslang/Test/baseResults/spv.earlyReturnDiscard.frag.out +++ /dev/null @@ -1,180 +0,0 @@ -spv.earlyReturnDiscard.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 110 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 11 14 17 19 25 30 39 51 63 105 109 - ExecutionMode 4 OriginUpperLeft - Source GLSL 140 - Name 4 "main" - Name 9 "color" - Name 11 "BaseColor" - Name 13 "color2" - Name 14 "otherColor" - Name 17 "c" - Name 19 "d" - Name 25 "bigColor" - Name 30 "smallColor" - Name 39 "minimum" - Name 51 "threshhold" - Name 63 "threshhold2" - Name 77 "b" - Name 105 "gl_FragColor" - Name 109 "threshhold3" - Decorate 11(BaseColor) Location 9 - Decorate 14(otherColor) Location 3 - Decorate 17(c) Location 4 - Decorate 19(d) Location 0 - Decorate 25(bigColor) Location 1 - Decorate 30(smallColor) Location 2 - Decorate 39(minimum) Location 8 - Decorate 51(threshhold) Location 5 - Decorate 63(threshhold2) Location 6 - Decorate 105(gl_FragColor) Location 0 - Decorate 109(threshhold3) Location 7 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: TypePointer Input 7(fvec4) - 11(BaseColor): 10(ptr) Variable Input - 14(otherColor): 10(ptr) Variable Input - 16: TypePointer Input 6(float) - 17(c): 16(ptr) Variable Input - 19(d): 16(ptr) Variable Input - 21: TypeBool - 25(bigColor): 10(ptr) Variable Input - 30(smallColor): 10(ptr) Variable Input - 34: TypeInt 32 0 - 35: 34(int) Constant 2 - 36: TypePointer Function 6(float) - 39(minimum): 16(ptr) Variable Input - 47: 6(float) Constant 1065353216 - 51(threshhold): 16(ptr) Variable Input - 60: 34(int) Constant 3 - 63(threshhold2): 16(ptr) Variable Input - 76: TypePointer Private 21(bool) - 77(b): 76(ptr) Variable Private - 85: 34(int) Constant 0 - 104: TypePointer Output 7(fvec4) -105(gl_FragColor): 104(ptr) Variable Output -109(threshhold3): 16(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 9(color): 8(ptr) Variable Function - 13(color2): 8(ptr) Variable Function - 12: 7(fvec4) Load 11(BaseColor) - Store 9(color) 12 - 15: 7(fvec4) Load 14(otherColor) - Store 13(color2) 15 - 18: 6(float) Load 17(c) - 20: 6(float) Load 19(d) - 22: 21(bool) FOrdGreaterThan 18 20 - SelectionMerge 24 None - BranchConditional 22 23 29 - 23: Label - 26: 7(fvec4) Load 25(bigColor) - 27: 7(fvec4) Load 9(color) - 28: 7(fvec4) FAdd 27 26 - Store 9(color) 28 - Branch 24 - 29: Label - 31: 7(fvec4) Load 30(smallColor) - 32: 7(fvec4) Load 9(color) - 33: 7(fvec4) FAdd 32 31 - Store 9(color) 33 - Branch 24 - 24: Label - 37: 36(ptr) AccessChain 9(color) 35 - 38: 6(float) Load 37 - 40: 6(float) Load 39(minimum) - 41: 21(bool) FOrdLessThan 38 40 - SelectionMerge 43 None - BranchConditional 41 42 43 - 42: Label - Return - 43: Label - 45: 36(ptr) AccessChain 9(color) 35 - 46: 6(float) Load 45 - 48: 6(float) FAdd 46 47 - Store 45 48 - 49: 36(ptr) AccessChain 9(color) 35 - 50: 6(float) Load 49 - 52: 6(float) Load 51(threshhold) - 53: 21(bool) FOrdGreaterThan 50 52 - SelectionMerge 55 None - BranchConditional 53 54 55 - 54: Label - Kill - 55: Label - 57: 7(fvec4) Load 9(color) - 58: 7(fvec4) CompositeConstruct 47 47 47 47 - 59: 7(fvec4) FAdd 57 58 - Store 9(color) 59 - 61: 36(ptr) AccessChain 9(color) 60 - 62: 6(float) Load 61 - 64: 6(float) Load 63(threshhold2) - 65: 21(bool) FOrdGreaterThan 62 64 - SelectionMerge 67 None - BranchConditional 65 66 97 - 66: Label - 68: 36(ptr) AccessChain 9(color) 35 - 69: 6(float) Load 68 - 70: 6(float) Load 63(threshhold2) - 71: 21(bool) FOrdGreaterThan 69 70 - SelectionMerge 73 None - BranchConditional 71 72 75 - 72: Label - Return - 75: Label - 78: 21(bool) Load 77(b) - SelectionMerge 80 None - BranchConditional 78 79 84 - 79: Label - 81: 36(ptr) AccessChain 9(color) 35 - 82: 6(float) Load 81 - 83: 6(float) FAdd 82 47 - Store 81 83 - Branch 80 - 84: Label - 86: 36(ptr) AccessChain 9(color) 85 - 87: 6(float) Load 86 - 88: 6(float) Load 39(minimum) - 89: 21(bool) FOrdLessThan 87 88 - SelectionMerge 91 None - BranchConditional 89 90 93 - 90: Label - Kill - 93: Label - 94: 7(fvec4) Load 9(color) - 95: 7(fvec4) CompositeConstruct 47 47 47 47 - 96: 7(fvec4) FAdd 94 95 - Store 9(color) 96 - Branch 91 - 91: Label - Branch 80 - 80: Label - Branch 73 - 73: Label - Branch 67 - 97: Label - 98: 21(bool) Load 77(b) - SelectionMerge 100 None - BranchConditional 98 99 102 - 99: Label - Kill - 102: Label - Return - 100: Label - Unreachable - 67: Label - 106: 7(fvec4) Load 9(color) - 107: 7(fvec4) Load 13(color2) - 108: 7(fvec4) FMul 106 107 - Store 105(gl_FragColor) 108 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.explicittypes.frag.out b/deps/glslang/Test/baseResults/spv.explicittypes.frag.out deleted file mode 100644 index 33828720..00000000 --- a/deps/glslang/Test/baseResults/spv.explicittypes.frag.out +++ /dev/null @@ -1,882 +0,0 @@ -spv.explicittypes.frag -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 576 - - Capability Shader - Capability Float16 - Capability Float64 - Capability Int64 - Capability Int16 - Capability Int8 - Capability StorageUniform16 - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_shader_explicit_arithmetic_types" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float32" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float64" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int16" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int32" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int64" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int8" - Name 4 "main" - Name 6 "literal(" - Name 8 "typeCast8(" - Name 10 "typeCast16(" - Name 12 "typeCast32(" - Name 14 "typeCast64(" - Name 18 "i64" - Name 26 "Uniforms" - MemberName 26(Uniforms) 0 "index" - Name 28 "" - Name 35 "indexable" - Name 40 "u64" - Name 49 "indexable" - Name 53 "i32" - Name 62 "indexable" - Name 66 "u32" - Name 74 "indexable" - Name 79 "i16" - Name 88 "indexable" - Name 93 "u16" - Name 101 "indexable" - Name 106 "i8" - Name 115 "indexable" - Name 120 "u8" - Name 128 "indexable" - Name 133 "u8v" - Name 136 "i8v" - Name 141 "i16v" - Name 150 "i32v" - Name 158 "u32v" - Name 164 "i64v" - Name 169 "u64v" - Name 183 "f16v" - Name 189 "f32v" - Name 195 "f64v" - Name 222 "u16v" - Name 252 "bv" - Name 268 "i32v" - Name 269 "i16v" - Name 272 "u16v" - Name 278 "u32v" - Name 282 "i64v" - Name 285 "u64v" - Name 296 "f16v" - Name 299 "f32v" - Name 302 "f64v" - Name 347 "i8v" - Name 353 "u8v" - Name 363 "bv" - Name 380 "u32v" - Name 381 "i32v" - Name 384 "i64v" - Name 387 "u64v" - Name 396 "f32v" - Name 399 "f64v" - Name 406 "i8v" - Name 412 "i16v" - Name 429 "u8v" - Name 435 "u16v" - Name 452 "f16v" - Name 465 "bv" - Name 481 "u64v" - Name 482 "i64v" - Name 485 "f64v" - Name 490 "i8v" - Name 496 "i16v" - Name 502 "i32v" - Name 510 "u8v" - Name 516 "u16v" - Name 522 "u32v" - Name 534 "f16v" - Name 537 "f32v" - Name 548 "bv" - Name 573 "Block" - MemberName 573(Block) 0 "i16" - MemberName 573(Block) 1 "i16v2" - MemberName 573(Block) 2 "i16v3" - MemberName 573(Block) 3 "i16v4" - MemberName 573(Block) 4 "u16" - MemberName 573(Block) 5 "u16v2" - MemberName 573(Block) 6 "u16v3" - MemberName 573(Block) 7 "u16v4" - MemberName 573(Block) 8 "i32" - MemberName 573(Block) 9 "i32v2" - MemberName 573(Block) 10 "i32v3" - MemberName 573(Block) 11 "i32v4" - MemberName 573(Block) 12 "u32" - MemberName 573(Block) 13 "u32v2" - MemberName 573(Block) 14 "u32v3" - MemberName 573(Block) 15 "u32v4" - Name 575 "block" - MemberDecorate 26(Uniforms) 0 Offset 0 - Decorate 26(Uniforms) Block - Decorate 28 DescriptorSet 0 - Decorate 28 Binding 0 - MemberDecorate 573(Block) 0 Offset 0 - MemberDecorate 573(Block) 1 Offset 4 - MemberDecorate 573(Block) 2 Offset 8 - MemberDecorate 573(Block) 3 Offset 16 - MemberDecorate 573(Block) 4 Offset 24 - MemberDecorate 573(Block) 5 Offset 28 - MemberDecorate 573(Block) 6 Offset 32 - MemberDecorate 573(Block) 7 Offset 40 - MemberDecorate 573(Block) 8 Offset 48 - MemberDecorate 573(Block) 9 Offset 56 - MemberDecorate 573(Block) 10 Offset 64 - MemberDecorate 573(Block) 11 Offset 80 - MemberDecorate 573(Block) 12 Offset 96 - MemberDecorate 573(Block) 13 Offset 104 - MemberDecorate 573(Block) 14 Offset 112 - MemberDecorate 573(Block) 15 Offset 128 - Decorate 573(Block) Block - Decorate 575(block) DescriptorSet 0 - Decorate 575(block) Binding 1 - 2: TypeVoid - 3: TypeFunction 2 - 16: TypeInt 64 1 - 17: TypePointer Function 16(int64_t) - 19: TypeInt 32 0 - 20: 19(int) Constant 3 - 21: TypeArray 16(int64_t) 20 - 22: 16(int64_t) Constant 4008636143 4008636142 - 23: 16(int64_t) Constant 4294967295 4294967295 - 24: 16(int64_t) Constant 0 1 - 25: 21 ConstantComposite 22 23 24 - 26(Uniforms): TypeStruct 19(int) - 27: TypePointer Uniform 26(Uniforms) - 28: 27(ptr) Variable Uniform - 29: TypeInt 32 1 - 30: 29(int) Constant 0 - 31: TypePointer Uniform 19(int) - 34: TypePointer Function 21 - 38: TypeInt 64 0 - 39: TypePointer Function 38(int64_t) - 41: TypeArray 38(int64_t) 20 - 42: 38(int64_t) Constant 4294967295 4294967295 - 43: 38(int64_t) Constant 0 1 - 44: 38(int64_t) Constant 4294967295 1 - 45: 41 ConstantComposite 42 43 44 - 48: TypePointer Function 41 - 52: TypePointer Function 29(int) - 54: TypeArray 29(int) 20 - 55: 29(int) Constant 4008636143 - 56: 29(int) Constant 4294967295 - 57: 29(int) Constant 536870912 - 58: 54 ConstantComposite 55 56 57 - 61: TypePointer Function 54 - 65: TypePointer Function 19(int) - 67: TypeArray 19(int) 20 - 68: 19(int) Constant 4294967295 - 69: 19(int) Constant 2147483647 - 70: 67 ConstantComposite 68 68 69 - 73: TypePointer Function 67 - 77: TypeInt 16 1 - 78: TypePointer Function 77(int16_t) - 80: TypeArray 77(int16_t) 20 - 81: 77(int16_t) Constant 4294962927 - 82: 77(int16_t) Constant 4294967295 - 83: 77(int16_t) Constant 16384 - 84: 80 ConstantComposite 81 82 83 - 87: TypePointer Function 80 - 91: TypeInt 16 0 - 92: TypePointer Function 91(int16_t) - 94: TypeArray 91(int16_t) 20 - 95: 91(int16_t) Constant 65535 - 96: 91(int16_t) Constant 32767 - 97: 94 ConstantComposite 95 95 96 - 100: TypePointer Function 94 - 104: TypeInt 8 1 - 105: TypePointer Function 104(int8_t) - 107: TypeArray 104(int8_t) 20 - 108: 104(int8_t) Constant 4294967279 - 109: 104(int8_t) Constant 4294967295 - 110: 104(int8_t) Constant 0 - 111: 107 ConstantComposite 108 109 110 - 114: TypePointer Function 107 - 118: TypeInt 8 0 - 119: TypePointer Function 118(int8_t) - 121: TypeArray 118(int8_t) 20 - 122: 118(int8_t) Constant 255 - 123: 118(int8_t) Constant 127 - 124: 121 ConstantComposite 122 122 123 - 127: TypePointer Function 121 - 131: TypeVector 118(int8_t) 2 - 132: TypePointer Function 131(i8vec2) - 134: TypeVector 104(int8_t) 2 - 135: TypePointer Function 134(i8vec2) - 139: TypeVector 77(int16_t) 2 - 140: TypePointer Function 139(i16vec2) - 145: TypeVector 91(int16_t) 2 - 148: TypeVector 29(int) 2 - 149: TypePointer Function 148(ivec2) - 154: TypeVector 19(int) 2 - 157: TypePointer Function 154(ivec2) - 162: TypeVector 16(int64_t) 2 - 163: TypePointer Function 162(i64vec2) - 167: TypeVector 38(int64_t) 2 - 168: TypePointer Function 167(i64vec2) - 180: TypeFloat 16 - 181: TypeVector 180(float16_t) 2 - 182: TypePointer Function 181(f16vec2) - 186: TypeFloat 32 - 187: TypeVector 186(float) 2 - 188: TypePointer Function 187(fvec2) - 192: TypeFloat 64 - 193: TypeVector 192(float64_t) 2 - 194: TypePointer Function 193(f64vec2) - 221: TypePointer Function 145(i16vec2) - 249: TypeBool - 250: TypeVector 249(bool) 2 - 251: TypePointer Function 250(bvec2) - 254: 104(int8_t) Constant 1 - 255: 134(i8vec2) ConstantComposite 110 110 - 256: 134(i8vec2) ConstantComposite 254 254 - 259: 118(int8_t) Constant 0 - 260: 118(int8_t) Constant 1 - 261: 131(i8vec2) ConstantComposite 259 259 - 262: 131(i8vec2) ConstantComposite 260 260 - 365: 77(int16_t) Constant 0 - 366: 77(int16_t) Constant 1 - 367:139(i16vec2) ConstantComposite 365 365 - 368:139(i16vec2) ConstantComposite 366 366 - 371: 91(int16_t) Constant 0 - 372: 91(int16_t) Constant 1 - 373:145(i16vec2) ConstantComposite 371 371 - 374:145(i16vec2) ConstantComposite 372 372 - 467: 29(int) Constant 1 - 468: 148(ivec2) ConstantComposite 30 30 - 469: 148(ivec2) ConstantComposite 467 467 - 472: 19(int) Constant 0 - 473: 19(int) Constant 1 - 474: 154(ivec2) ConstantComposite 472 472 - 475: 154(ivec2) ConstantComposite 473 473 - 550: 16(int64_t) Constant 0 0 - 551: 16(int64_t) Constant 1 0 - 552:162(i64vec2) ConstantComposite 550 550 - 553:162(i64vec2) ConstantComposite 551 551 - 556: 38(int64_t) Constant 0 0 - 557: 38(int64_t) Constant 1 0 - 558:167(i64vec2) ConstantComposite 556 556 - 559:167(i64vec2) ConstantComposite 557 557 - 565: TypeVector 77(int16_t) 3 - 566: TypeVector 77(int16_t) 4 - 567: TypeVector 91(int16_t) 3 - 568: TypeVector 91(int16_t) 4 - 569: TypeVector 29(int) 3 - 570: TypeVector 29(int) 4 - 571: TypeVector 19(int) 3 - 572: TypeVector 19(int) 4 - 573(Block): TypeStruct 77(int16_t) 139(i16vec2) 565(i16vec3) 566(i16vec4) 91(int16_t) 145(i16vec2) 567(i16vec3) 568(i16vec4) 29(int) 148(ivec2) 569(ivec3) 570(ivec4) 19(int) 154(ivec2) 571(ivec3) 572(ivec4) - 574: TypePointer Uniform 573(Block) - 575(block): 574(ptr) Variable Uniform - 4(main): 2 Function None 3 - 5: Label - Return - FunctionEnd - 6(literal(): 2 Function None 3 - 7: Label - 18(i64): 17(ptr) Variable Function - 35(indexable): 34(ptr) Variable Function - 40(u64): 39(ptr) Variable Function - 49(indexable): 48(ptr) Variable Function - 53(i32): 52(ptr) Variable Function - 62(indexable): 61(ptr) Variable Function - 66(u32): 65(ptr) Variable Function - 74(indexable): 73(ptr) Variable Function - 79(i16): 78(ptr) Variable Function - 88(indexable): 87(ptr) Variable Function - 93(u16): 92(ptr) Variable Function - 101(indexable): 100(ptr) Variable Function - 106(i8): 105(ptr) Variable Function - 115(indexable): 114(ptr) Variable Function - 120(u8): 119(ptr) Variable Function - 128(indexable): 127(ptr) Variable Function - 32: 31(ptr) AccessChain 28 30 - 33: 19(int) Load 32 - Store 35(indexable) 25 - 36: 17(ptr) AccessChain 35(indexable) 33 - 37: 16(int64_t) Load 36 - Store 18(i64) 37 - 46: 31(ptr) AccessChain 28 30 - 47: 19(int) Load 46 - Store 49(indexable) 45 - 50: 39(ptr) AccessChain 49(indexable) 47 - 51: 38(int64_t) Load 50 - Store 40(u64) 51 - 59: 31(ptr) AccessChain 28 30 - 60: 19(int) Load 59 - Store 62(indexable) 58 - 63: 52(ptr) AccessChain 62(indexable) 60 - 64: 29(int) Load 63 - Store 53(i32) 64 - 71: 31(ptr) AccessChain 28 30 - 72: 19(int) Load 71 - Store 74(indexable) 70 - 75: 65(ptr) AccessChain 74(indexable) 72 - 76: 19(int) Load 75 - Store 66(u32) 76 - 85: 31(ptr) AccessChain 28 30 - 86: 19(int) Load 85 - Store 88(indexable) 84 - 89: 78(ptr) AccessChain 88(indexable) 86 - 90: 77(int16_t) Load 89 - Store 79(i16) 90 - 98: 31(ptr) AccessChain 28 30 - 99: 19(int) Load 98 - Store 101(indexable) 97 - 102: 92(ptr) AccessChain 101(indexable) 99 - 103: 91(int16_t) Load 102 - Store 93(u16) 103 - 112: 31(ptr) AccessChain 28 30 - 113: 19(int) Load 112 - Store 115(indexable) 111 - 116: 105(ptr) AccessChain 115(indexable) 113 - 117: 104(int8_t) Load 116 - Store 106(i8) 117 - 125: 31(ptr) AccessChain 28 30 - 126: 19(int) Load 125 - Store 128(indexable) 124 - 129: 119(ptr) AccessChain 128(indexable) 126 - 130: 118(int8_t) Load 129 - Store 120(u8) 130 - Return - FunctionEnd - 8(typeCast8(): 2 Function None 3 - 9: Label - 133(u8v): 132(ptr) Variable Function - 136(i8v): 135(ptr) Variable Function - 141(i16v): 140(ptr) Variable Function - 150(i32v): 149(ptr) Variable Function - 158(u32v): 157(ptr) Variable Function - 164(i64v): 163(ptr) Variable Function - 169(u64v): 168(ptr) Variable Function - 183(f16v): 182(ptr) Variable Function - 189(f32v): 188(ptr) Variable Function - 195(f64v): 194(ptr) Variable Function - 222(u16v): 221(ptr) Variable Function - 252(bv): 251(ptr) Variable Function - 137: 134(i8vec2) Load 136(i8v) - 138: 131(i8vec2) Bitcast 137 - Store 133(u8v) 138 - 142: 134(i8vec2) Load 136(i8v) - 143:139(i16vec2) SConvert 142 - Store 141(i16v) 143 - 144: 131(i8vec2) Load 133(u8v) - 146:145(i16vec2) UConvert 144 - 147:139(i16vec2) Bitcast 146 - Store 141(i16v) 147 - 151: 134(i8vec2) Load 136(i8v) - 152: 148(ivec2) SConvert 151 - Store 150(i32v) 152 - 153: 131(i8vec2) Load 133(u8v) - 155: 154(ivec2) UConvert 153 - 156: 148(ivec2) Bitcast 155 - Store 150(i32v) 156 - 159: 134(i8vec2) Load 136(i8v) - 160: 148(ivec2) SConvert 159 - 161: 154(ivec2) Bitcast 160 - Store 158(u32v) 161 - 165: 134(i8vec2) Load 136(i8v) - 166:162(i64vec2) SConvert 165 - Store 164(i64v) 166 - 170: 134(i8vec2) Load 136(i8v) - 171:162(i64vec2) SConvert 170 - 172:167(i64vec2) Bitcast 171 - Store 169(u64v) 172 - 173: 131(i8vec2) Load 133(u8v) - 174: 154(ivec2) UConvert 173 - Store 158(u32v) 174 - 175: 131(i8vec2) Load 133(u8v) - 176:167(i64vec2) UConvert 175 - 177:162(i64vec2) Bitcast 176 - Store 164(i64v) 177 - 178: 131(i8vec2) Load 133(u8v) - 179:167(i64vec2) UConvert 178 - Store 169(u64v) 179 - 184: 134(i8vec2) Load 136(i8v) - 185:181(f16vec2) ConvertSToF 184 - Store 183(f16v) 185 - 190: 134(i8vec2) Load 136(i8v) - 191: 187(fvec2) ConvertSToF 190 - Store 189(f32v) 191 - 196: 134(i8vec2) Load 136(i8v) - 197:193(f64vec2) ConvertSToF 196 - Store 195(f64v) 197 - 198: 131(i8vec2) Load 133(u8v) - 199:181(f16vec2) ConvertUToF 198 - Store 183(f16v) 199 - 200: 131(i8vec2) Load 133(u8v) - 201: 187(fvec2) ConvertUToF 200 - Store 189(f32v) 201 - 202: 131(i8vec2) Load 133(u8v) - 203:193(f64vec2) ConvertUToF 202 - Store 195(f64v) 203 - 204: 131(i8vec2) Load 133(u8v) - 205: 134(i8vec2) Bitcast 204 - Store 136(i8v) 205 - 206: 134(i8vec2) Load 136(i8v) - 207:139(i16vec2) SConvert 206 - Store 141(i16v) 207 - 208: 131(i8vec2) Load 133(u8v) - 209:145(i16vec2) UConvert 208 - 210:139(i16vec2) Bitcast 209 - Store 141(i16v) 210 - 211: 134(i8vec2) Load 136(i8v) - 212: 148(ivec2) SConvert 211 - Store 150(i32v) 212 - 213: 131(i8vec2) Load 133(u8v) - 214: 154(ivec2) UConvert 213 - 215: 148(ivec2) Bitcast 214 - Store 150(i32v) 215 - 216: 134(i8vec2) Load 136(i8v) - 217:162(i64vec2) SConvert 216 - Store 164(i64v) 217 - 218: 134(i8vec2) Load 136(i8v) - 219:162(i64vec2) SConvert 218 - 220:167(i64vec2) Bitcast 219 - Store 169(u64v) 220 - 223: 134(i8vec2) Load 136(i8v) - 224:139(i16vec2) SConvert 223 - 225:145(i16vec2) Bitcast 224 - Store 222(u16v) 225 - 226: 131(i8vec2) Load 133(u8v) - 227:145(i16vec2) UConvert 226 - Store 222(u16v) 227 - 228: 131(i8vec2) Load 133(u8v) - 229: 154(ivec2) UConvert 228 - Store 158(u32v) 229 - 230: 131(i8vec2) Load 133(u8v) - 231:167(i64vec2) UConvert 230 - 232:162(i64vec2) Bitcast 231 - Store 164(i64v) 232 - 233: 131(i8vec2) Load 133(u8v) - 234:167(i64vec2) UConvert 233 - 235:162(i64vec2) Bitcast 234 - 236:167(i64vec2) Bitcast 235 - Store 169(u64v) 236 - 237: 134(i8vec2) Load 136(i8v) - 238:181(f16vec2) ConvertSToF 237 - Store 183(f16v) 238 - 239: 134(i8vec2) Load 136(i8v) - 240: 187(fvec2) ConvertSToF 239 - Store 189(f32v) 240 - 241: 134(i8vec2) Load 136(i8v) - 242:193(f64vec2) ConvertSToF 241 - Store 195(f64v) 242 - 243: 131(i8vec2) Load 133(u8v) - 244:181(f16vec2) ConvertUToF 243 - Store 183(f16v) 244 - 245: 131(i8vec2) Load 133(u8v) - 246: 187(fvec2) ConvertUToF 245 - Store 189(f32v) 246 - 247: 131(i8vec2) Load 133(u8v) - 248:193(f64vec2) ConvertUToF 247 - Store 195(f64v) 248 - 253: 250(bvec2) Load 252(bv) - 257: 134(i8vec2) Select 253 256 255 - Store 136(i8v) 257 - 258: 250(bvec2) Load 252(bv) - 263: 131(i8vec2) Select 258 262 261 - Store 133(u8v) 263 - 264: 134(i8vec2) Load 136(i8v) - 265: 250(bvec2) INotEqual 264 261 - Store 252(bv) 265 - 266: 131(i8vec2) Load 133(u8v) - 267: 250(bvec2) INotEqual 266 261 - Store 252(bv) 267 - Return - FunctionEnd - 10(typeCast16(): 2 Function None 3 - 11: Label - 268(i32v): 149(ptr) Variable Function - 269(i16v): 140(ptr) Variable Function - 272(u16v): 221(ptr) Variable Function - 278(u32v): 157(ptr) Variable Function - 282(i64v): 163(ptr) Variable Function - 285(u64v): 168(ptr) Variable Function - 296(f16v): 182(ptr) Variable Function - 299(f32v): 188(ptr) Variable Function - 302(f64v): 194(ptr) Variable Function - 347(i8v): 135(ptr) Variable Function - 353(u8v): 132(ptr) Variable Function - 363(bv): 251(ptr) Variable Function - 270:139(i16vec2) Load 269(i16v) - 271: 148(ivec2) SConvert 270 - Store 268(i32v) 271 - 273:145(i16vec2) Load 272(u16v) - 274: 154(ivec2) UConvert 273 - 275: 148(ivec2) Bitcast 274 - Store 268(i32v) 275 - 276:139(i16vec2) Load 269(i16v) - 277:145(i16vec2) Bitcast 276 - Store 272(u16v) 277 - 279:139(i16vec2) Load 269(i16v) - 280: 148(ivec2) SConvert 279 - 281: 154(ivec2) Bitcast 280 - Store 278(u32v) 281 - 283:139(i16vec2) Load 269(i16v) - 284:162(i64vec2) SConvert 283 - Store 282(i64v) 284 - 286:139(i16vec2) Load 269(i16v) - 287:162(i64vec2) SConvert 286 - 288:167(i64vec2) Bitcast 287 - Store 285(u64v) 288 - 289:145(i16vec2) Load 272(u16v) - 290: 154(ivec2) UConvert 289 - Store 278(u32v) 290 - 291:145(i16vec2) Load 272(u16v) - 292:167(i64vec2) UConvert 291 - 293:162(i64vec2) Bitcast 292 - Store 282(i64v) 293 - 294:145(i16vec2) Load 272(u16v) - 295:167(i64vec2) UConvert 294 - Store 285(u64v) 295 - 297:139(i16vec2) Load 269(i16v) - 298:181(f16vec2) ConvertSToF 297 - Store 296(f16v) 298 - 300:139(i16vec2) Load 269(i16v) - 301: 187(fvec2) ConvertSToF 300 - Store 299(f32v) 301 - 303:139(i16vec2) Load 269(i16v) - 304:193(f64vec2) ConvertSToF 303 - Store 302(f64v) 304 - 305:145(i16vec2) Load 272(u16v) - 306:181(f16vec2) ConvertUToF 305 - Store 296(f16v) 306 - 307:145(i16vec2) Load 272(u16v) - 308: 187(fvec2) ConvertUToF 307 - Store 299(f32v) 308 - 309:145(i16vec2) Load 272(u16v) - 310:193(f64vec2) ConvertUToF 309 - Store 302(f64v) 310 - 311:139(i16vec2) Load 269(i16v) - 312: 148(ivec2) SConvert 311 - Store 268(i32v) 312 - 313:145(i16vec2) Load 272(u16v) - 314: 154(ivec2) UConvert 313 - 315: 148(ivec2) Bitcast 314 - Store 268(i32v) 315 - 316:139(i16vec2) Load 269(i16v) - 317:145(i16vec2) Bitcast 316 - Store 272(u16v) 317 - 318:139(i16vec2) Load 269(i16v) - 319: 148(ivec2) SConvert 318 - 320: 154(ivec2) Bitcast 319 - Store 278(u32v) 320 - 321:139(i16vec2) Load 269(i16v) - 322:162(i64vec2) SConvert 321 - Store 282(i64v) 322 - 323:139(i16vec2) Load 269(i16v) - 324:162(i64vec2) SConvert 323 - 325:167(i64vec2) Bitcast 324 - Store 285(u64v) 325 - 326:145(i16vec2) Load 272(u16v) - 327: 154(ivec2) UConvert 326 - Store 278(u32v) 327 - 328:145(i16vec2) Load 272(u16v) - 329:167(i64vec2) UConvert 328 - 330:162(i64vec2) Bitcast 329 - Store 282(i64v) 330 - 331:145(i16vec2) Load 272(u16v) - 332:167(i64vec2) UConvert 331 - 333:162(i64vec2) Bitcast 332 - 334:167(i64vec2) Bitcast 333 - Store 285(u64v) 334 - 335:139(i16vec2) Load 269(i16v) - 336:181(f16vec2) ConvertSToF 335 - Store 296(f16v) 336 - 337:139(i16vec2) Load 269(i16v) - 338: 187(fvec2) ConvertSToF 337 - Store 299(f32v) 338 - 339:139(i16vec2) Load 269(i16v) - 340:193(f64vec2) ConvertSToF 339 - Store 302(f64v) 340 - 341:145(i16vec2) Load 272(u16v) - 342:181(f16vec2) ConvertUToF 341 - Store 296(f16v) 342 - 343:145(i16vec2) Load 272(u16v) - 344: 187(fvec2) ConvertUToF 343 - Store 299(f32v) 344 - 345:145(i16vec2) Load 272(u16v) - 346:193(f64vec2) ConvertUToF 345 - Store 302(f64v) 346 - 348:139(i16vec2) Load 269(i16v) - 349: 134(i8vec2) SConvert 348 - Store 347(i8v) 349 - 350:145(i16vec2) Load 272(u16v) - 351: 131(i8vec2) UConvert 350 - 352: 134(i8vec2) Bitcast 351 - Store 347(i8v) 352 - 354:139(i16vec2) Load 269(i16v) - 355: 134(i8vec2) SConvert 354 - 356: 131(i8vec2) Bitcast 355 - Store 353(u8v) 356 - 357:145(i16vec2) Load 272(u16v) - 358: 131(i8vec2) UConvert 357 - Store 353(u8v) 358 - 359:145(i16vec2) Load 272(u16v) - 360: 131(i8vec2) UConvert 359 - 361:145(i16vec2) UConvert 360 - 362:139(i16vec2) Bitcast 361 - Store 269(i16v) 362 - 364: 250(bvec2) Load 363(bv) - 369:139(i16vec2) Select 364 368 367 - Store 269(i16v) 369 - 370: 250(bvec2) Load 363(bv) - 375:145(i16vec2) Select 370 374 373 - Store 272(u16v) 375 - 376:139(i16vec2) Load 269(i16v) - 377: 250(bvec2) INotEqual 376 373 - Store 363(bv) 377 - 378:145(i16vec2) Load 272(u16v) - 379: 250(bvec2) INotEqual 378 373 - Store 363(bv) 379 - Return - FunctionEnd - 12(typeCast32(): 2 Function None 3 - 13: Label - 380(u32v): 157(ptr) Variable Function - 381(i32v): 149(ptr) Variable Function - 384(i64v): 163(ptr) Variable Function - 387(u64v): 168(ptr) Variable Function - 396(f32v): 188(ptr) Variable Function - 399(f64v): 194(ptr) Variable Function - 406(i8v): 135(ptr) Variable Function - 412(i16v): 140(ptr) Variable Function - 429(u8v): 132(ptr) Variable Function - 435(u16v): 221(ptr) Variable Function - 452(f16v): 182(ptr) Variable Function - 465(bv): 251(ptr) Variable Function - 382: 148(ivec2) Load 381(i32v) - 383: 154(ivec2) Bitcast 382 - Store 380(u32v) 383 - 385: 148(ivec2) Load 381(i32v) - 386:162(i64vec2) SConvert 385 - Store 384(i64v) 386 - 388: 148(ivec2) Load 381(i32v) - 389:162(i64vec2) SConvert 388 - 390:167(i64vec2) Bitcast 389 - Store 387(u64v) 390 - 391: 154(ivec2) Load 380(u32v) - 392:167(i64vec2) UConvert 391 - 393:162(i64vec2) Bitcast 392 - Store 384(i64v) 393 - 394: 154(ivec2) Load 380(u32v) - 395:167(i64vec2) UConvert 394 - Store 387(u64v) 395 - 397: 148(ivec2) Load 381(i32v) - 398: 187(fvec2) ConvertSToF 397 - Store 396(f32v) 398 - 400: 148(ivec2) Load 381(i32v) - 401:193(f64vec2) ConvertSToF 400 - Store 399(f64v) 401 - 402: 154(ivec2) Load 380(u32v) - 403: 187(fvec2) ConvertUToF 402 - Store 396(f32v) 403 - 404: 154(ivec2) Load 380(u32v) - 405:193(f64vec2) ConvertUToF 404 - Store 399(f64v) 405 - 407: 148(ivec2) Load 381(i32v) - 408: 134(i8vec2) SConvert 407 - Store 406(i8v) 408 - 409: 154(ivec2) Load 380(u32v) - 410: 131(i8vec2) UConvert 409 - 411: 134(i8vec2) Bitcast 410 - Store 406(i8v) 411 - 413: 148(ivec2) Load 381(i32v) - 414:139(i16vec2) SConvert 413 - Store 412(i16v) 414 - 415: 154(ivec2) Load 380(u32v) - 416:145(i16vec2) UConvert 415 - 417:139(i16vec2) Bitcast 416 - Store 412(i16v) 417 - 418: 148(ivec2) Load 381(i32v) - 419: 29(int) CompositeExtract 418 0 - 420: 29(int) CompositeExtract 418 1 - 421: 148(ivec2) CompositeConstruct 419 420 - Store 381(i32v) 421 - 422: 154(ivec2) Load 380(u32v) - 423: 148(ivec2) Bitcast 422 - Store 381(i32v) 423 - 424: 148(ivec2) Load 381(i32v) - 425:162(i64vec2) SConvert 424 - Store 384(i64v) 425 - 426: 154(ivec2) Load 380(u32v) - 427:167(i64vec2) UConvert 426 - 428:162(i64vec2) Bitcast 427 - Store 384(i64v) 428 - 430: 148(ivec2) Load 381(i32v) - 431: 134(i8vec2) SConvert 430 - 432: 131(i8vec2) Bitcast 431 - Store 429(u8v) 432 - 433: 154(ivec2) Load 380(u32v) - 434: 131(i8vec2) UConvert 433 - Store 429(u8v) 434 - 436: 148(ivec2) Load 381(i32v) - 437:139(i16vec2) SConvert 436 - 438:145(i16vec2) Bitcast 437 - Store 435(u16v) 438 - 439: 154(ivec2) Load 380(u32v) - 440:145(i16vec2) UConvert 439 - Store 435(u16v) 440 - 441: 148(ivec2) Load 381(i32v) - 442: 154(ivec2) Bitcast 441 - Store 380(u32v) 442 - 443: 154(ivec2) Load 380(u32v) - 444: 19(int) CompositeExtract 443 0 - 445: 19(int) CompositeExtract 443 1 - 446: 154(ivec2) CompositeConstruct 444 445 - Store 380(u32v) 446 - 447: 148(ivec2) Load 381(i32v) - 448:162(i64vec2) SConvert 447 - 449:167(i64vec2) Bitcast 448 - Store 387(u64v) 449 - 450: 154(ivec2) Load 380(u32v) - 451:167(i64vec2) UConvert 450 - Store 387(u64v) 451 - 453: 148(ivec2) Load 381(i32v) - 454:181(f16vec2) ConvertSToF 453 - Store 452(f16v) 454 - 455: 148(ivec2) Load 381(i32v) - 456: 187(fvec2) ConvertSToF 455 - Store 396(f32v) 456 - 457: 148(ivec2) Load 381(i32v) - 458:193(f64vec2) ConvertSToF 457 - Store 399(f64v) 458 - 459: 154(ivec2) Load 380(u32v) - 460:181(f16vec2) ConvertUToF 459 - Store 452(f16v) 460 - 461: 154(ivec2) Load 380(u32v) - 462: 187(fvec2) ConvertUToF 461 - Store 396(f32v) 462 - 463: 154(ivec2) Load 380(u32v) - 464:193(f64vec2) ConvertUToF 463 - Store 399(f64v) 464 - 466: 250(bvec2) Load 465(bv) - 470: 148(ivec2) Select 466 469 468 - Store 381(i32v) 470 - 471: 250(bvec2) Load 465(bv) - 476: 154(ivec2) Select 471 475 474 - Store 380(u32v) 476 - 477: 148(ivec2) Load 381(i32v) - 478: 250(bvec2) INotEqual 477 474 - Store 465(bv) 478 - 479: 154(ivec2) Load 380(u32v) - 480: 250(bvec2) INotEqual 479 474 - Store 465(bv) 480 - Return - FunctionEnd - 14(typeCast64(): 2 Function None 3 - 15: Label - 481(u64v): 168(ptr) Variable Function - 482(i64v): 163(ptr) Variable Function - 485(f64v): 194(ptr) Variable Function - 490(i8v): 135(ptr) Variable Function - 496(i16v): 140(ptr) Variable Function - 502(i32v): 149(ptr) Variable Function - 510(u8v): 132(ptr) Variable Function - 516(u16v): 221(ptr) Variable Function - 522(u32v): 157(ptr) Variable Function - 534(f16v): 182(ptr) Variable Function - 537(f32v): 188(ptr) Variable Function - 548(bv): 251(ptr) Variable Function - 483:162(i64vec2) Load 482(i64v) - 484:167(i64vec2) Bitcast 483 - Store 481(u64v) 484 - 486:162(i64vec2) Load 482(i64v) - 487:193(f64vec2) ConvertSToF 486 - Store 485(f64v) 487 - 488:167(i64vec2) Load 481(u64v) - 489:193(f64vec2) ConvertUToF 488 - Store 485(f64v) 489 - 491:162(i64vec2) Load 482(i64v) - 492: 134(i8vec2) SConvert 491 - Store 490(i8v) 492 - 493:167(i64vec2) Load 481(u64v) - 494: 131(i8vec2) UConvert 493 - 495: 134(i8vec2) Bitcast 494 - Store 490(i8v) 495 - 497:162(i64vec2) Load 482(i64v) - 498:139(i16vec2) SConvert 497 - Store 496(i16v) 498 - 499:167(i64vec2) Load 481(u64v) - 500:145(i16vec2) UConvert 499 - 501:139(i16vec2) Bitcast 500 - Store 496(i16v) 501 - 503:162(i64vec2) Load 482(i64v) - 504: 148(ivec2) SConvert 503 - Store 502(i32v) 504 - 505:167(i64vec2) Load 481(u64v) - 506: 154(ivec2) UConvert 505 - 507: 148(ivec2) Bitcast 506 - Store 502(i32v) 507 - 508:167(i64vec2) Load 481(u64v) - 509:162(i64vec2) Bitcast 508 - Store 482(i64v) 509 - 511:162(i64vec2) Load 482(i64v) - 512: 134(i8vec2) SConvert 511 - 513: 131(i8vec2) Bitcast 512 - Store 510(u8v) 513 - 514:167(i64vec2) Load 481(u64v) - 515: 131(i8vec2) UConvert 514 - Store 510(u8v) 515 - 517:162(i64vec2) Load 482(i64v) - 518:139(i16vec2) SConvert 517 - 519:145(i16vec2) Bitcast 518 - Store 516(u16v) 519 - 520:167(i64vec2) Load 481(u64v) - 521:145(i16vec2) UConvert 520 - Store 516(u16v) 521 - 523:162(i64vec2) Load 482(i64v) - 524: 148(ivec2) SConvert 523 - 525: 154(ivec2) Bitcast 524 - Store 522(u32v) 525 - 526:167(i64vec2) Load 481(u64v) - 527: 154(ivec2) UConvert 526 - Store 522(u32v) 527 - 528:162(i64vec2) Load 482(i64v) - 529:167(i64vec2) Bitcast 528 - Store 481(u64v) 529 - 530:167(i64vec2) Load 481(u64v) - 531: 38(int64_t) CompositeExtract 530 0 - 532: 38(int64_t) CompositeExtract 530 1 - 533:167(i64vec2) CompositeConstruct 531 532 - Store 481(u64v) 533 - 535:162(i64vec2) Load 482(i64v) - 536:181(f16vec2) ConvertSToF 535 - Store 534(f16v) 536 - 538:162(i64vec2) Load 482(i64v) - 539: 187(fvec2) ConvertSToF 538 - Store 537(f32v) 539 - 540:162(i64vec2) Load 482(i64v) - 541:193(f64vec2) ConvertSToF 540 - Store 485(f64v) 541 - 542:167(i64vec2) Load 481(u64v) - 543:181(f16vec2) ConvertUToF 542 - Store 534(f16v) 543 - 544:167(i64vec2) Load 481(u64v) - 545: 187(fvec2) ConvertUToF 544 - Store 537(f32v) 545 - 546:167(i64vec2) Load 481(u64v) - 547:193(f64vec2) ConvertUToF 546 - Store 485(f64v) 547 - 549: 250(bvec2) Load 548(bv) - 554:162(i64vec2) Select 549 553 552 - Store 482(i64v) 554 - 555: 250(bvec2) Load 548(bv) - 560:167(i64vec2) Select 555 559 558 - Store 481(u64v) 560 - 561:162(i64vec2) Load 482(i64v) - 562: 250(bvec2) INotEqual 561 558 - Store 548(bv) 562 - 563:167(i64vec2) Load 481(u64v) - 564: 250(bvec2) INotEqual 563 558 - Store 548(bv) 564 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.ext.AccelDecl.frag.out b/deps/glslang/Test/baseResults/spv.ext.AccelDecl.frag.out deleted file mode 100644 index 11d45606..00000000 --- a/deps/glslang/Test/baseResults/spv.ext.AccelDecl.frag.out +++ /dev/null @@ -1,41 +0,0 @@ -spv.ext.AccelDecl.frag -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 15 - - Capability Shader - Capability RayQueryKHR - Extension "SPV_KHR_ray_query" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 9 14 - ExecutionMode 4 OriginUpperLeft - Source GLSL 460 - SourceExtension "GL_ARB_separate_shader_objects" - SourceExtension "GL_EXT_nonuniform_qualifier" - SourceExtension "GL_EXT_ray_query" - SourceExtension "GL_EXT_scalar_block_layout" - SourceExtension "GL_GOOGLE_cpp_style_line_directive" - SourceExtension "GL_GOOGLE_include_directive" - Name 4 "main" - Name 9 "outColor" - Name 14 "topLevelAS" - Decorate 9(outColor) Location 0 - Decorate 14(topLevelAS) DescriptorSet 0 - Decorate 14(topLevelAS) Binding 1 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) - 9(outColor): 8(ptr) Variable Output - 10: 6(float) Constant 0 - 11: 7(fvec4) ConstantComposite 10 10 10 10 - 12: TypeAccelerationStructureKHR - 13: TypePointer UniformConstant 12 - 14(topLevelAS): 13(ptr) Variable UniformConstant - 4(main): 2 Function None 3 - 5: Label - Store 9(outColor) 11 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.ext.AnyHitShader.rahit.out b/deps/glslang/Test/baseResults/spv.ext.AnyHitShader.rahit.out deleted file mode 100644 index df779bdd..00000000 --- a/deps/glslang/Test/baseResults/spv.ext.AnyHitShader.rahit.out +++ /dev/null @@ -1,200 +0,0 @@ -spv.ext.AnyHitShader.rahit -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 107 - - Capability GroupNonUniform - Capability RayTracingKHR - Extension "SPV_KHR_ray_tracing" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint AnyHitKHR 4 "main" 11 14 20 23 26 33 36 39 42 47 50 53 58 64 67 70 76 80 84 98 - Source GLSL 460 - SourceExtension "GL_EXT_ray_tracing" - SourceExtension "GL_KHR_shader_subgroup_basic" - Name 4 "main" - Name 9 "v0" - Name 11 "gl_LaunchIDEXT" - Name 13 "v1" - Name 14 "gl_LaunchSizeEXT" - Name 18 "v2" - Name 20 "gl_PrimitiveID" - Name 22 "v3" - Name 23 "gl_InstanceID" - Name 25 "v4" - Name 26 "gl_InstanceCustomIndexEXT" - Name 31 "v5" - Name 33 "gl_WorldRayOriginEXT" - Name 35 "v6" - Name 36 "gl_WorldRayDirectionEXT" - Name 38 "v7" - Name 39 "gl_ObjectRayOriginEXT" - Name 41 "v8" - Name 42 "gl_ObjectRayDirectionEXT" - Name 45 "v9" - Name 47 "gl_RayTminEXT" - Name 49 "v10" - Name 50 "gl_RayTmaxEXT" - Name 52 "v11" - Name 53 "gl_HitTEXT" - Name 56 "v12" - Name 58 "gl_HitKindEXT" - Name 62 "v13" - Name 64 "gl_ObjectToWorldEXT" - Name 66 "v14" - Name 67 "gl_WorldToObjectEXT" - Name 69 "v15" - Name 70 "gl_GeometryIndexEXT" - Name 75 "v16" - Name 76 "gl_ObjectToWorld3x4EXT" - Name 79 "v17" - Name 80 "gl_WorldToObject3x4EXT" - Name 84 "incomingPayload" - Name 98 "gl_SubgroupSize" - Decorate 11(gl_LaunchIDEXT) BuiltIn LaunchIdKHR - Decorate 14(gl_LaunchSizeEXT) BuiltIn LaunchSizeKHR - Decorate 20(gl_PrimitiveID) BuiltIn PrimitiveId - Decorate 23(gl_InstanceID) BuiltIn InstanceId - Decorate 26(gl_InstanceCustomIndexEXT) BuiltIn InstanceCustomIndexKHR - Decorate 33(gl_WorldRayOriginEXT) BuiltIn WorldRayOriginKHR - Decorate 36(gl_WorldRayDirectionEXT) BuiltIn WorldRayDirectionKHR - Decorate 39(gl_ObjectRayOriginEXT) BuiltIn ObjectRayOriginKHR - Decorate 42(gl_ObjectRayDirectionEXT) BuiltIn ObjectRayDirectionKHR - Decorate 47(gl_RayTminEXT) BuiltIn RayTminKHR - Decorate 50(gl_RayTmaxEXT) BuiltIn RayTmaxKHR - Decorate 53(gl_HitTEXT) BuiltIn RayTmaxKHR - Decorate 58(gl_HitKindEXT) BuiltIn HitKindKHR - Decorate 64(gl_ObjectToWorldEXT) BuiltIn ObjectToWorldKHR - Decorate 67(gl_WorldToObjectEXT) BuiltIn WorldToObjectKHR - Decorate 70(gl_GeometryIndexEXT) BuiltIn RayGeometryIndexKHR - Decorate 76(gl_ObjectToWorld3x4EXT) BuiltIn ObjectToWorldKHR - Decorate 80(gl_WorldToObject3x4EXT) BuiltIn WorldToObjectKHR - Decorate 98(gl_SubgroupSize) RelaxedPrecision - Decorate 98(gl_SubgroupSize) BuiltIn SubgroupSize - Decorate 99 RelaxedPrecision - Decorate 100 RelaxedPrecision - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeVector 6(int) 3 - 8: TypePointer Function 7(ivec3) - 10: TypePointer Input 7(ivec3) -11(gl_LaunchIDEXT): 10(ptr) Variable Input -14(gl_LaunchSizeEXT): 10(ptr) Variable Input - 16: TypeInt 32 1 - 17: TypePointer Function 16(int) - 19: TypePointer Input 16(int) -20(gl_PrimitiveID): 19(ptr) Variable Input -23(gl_InstanceID): 19(ptr) Variable Input -26(gl_InstanceCustomIndexEXT): 19(ptr) Variable Input - 28: TypeFloat 32 - 29: TypeVector 28(float) 3 - 30: TypePointer Function 29(fvec3) - 32: TypePointer Input 29(fvec3) -33(gl_WorldRayOriginEXT): 32(ptr) Variable Input -36(gl_WorldRayDirectionEXT): 32(ptr) Variable Input -39(gl_ObjectRayOriginEXT): 32(ptr) Variable Input -42(gl_ObjectRayDirectionEXT): 32(ptr) Variable Input - 44: TypePointer Function 28(float) - 46: TypePointer Input 28(float) -47(gl_RayTminEXT): 46(ptr) Variable Input -50(gl_RayTmaxEXT): 46(ptr) Variable Input - 53(gl_HitTEXT): 46(ptr) Variable Input - 55: TypePointer Function 6(int) - 57: TypePointer Input 6(int) -58(gl_HitKindEXT): 57(ptr) Variable Input - 60: TypeMatrix 29(fvec3) 4 - 61: TypePointer Function 60 - 63: TypePointer Input 60 -64(gl_ObjectToWorldEXT): 63(ptr) Variable Input -67(gl_WorldToObjectEXT): 63(ptr) Variable Input -70(gl_GeometryIndexEXT): 19(ptr) Variable Input - 72: TypeVector 28(float) 4 - 73: TypeMatrix 72(fvec4) 3 - 74: TypePointer Function 73 -76(gl_ObjectToWorld3x4EXT): 63(ptr) Variable Input -80(gl_WorldToObject3x4EXT): 63(ptr) Variable Input - 83: TypePointer IncomingRayPayloadKHR 72(fvec4) -84(incomingPayload): 83(ptr) Variable IncomingRayPayloadKHR - 85: 28(float) Constant 1056964608 - 86: 72(fvec4) ConstantComposite 85 85 85 85 - 88: 16(int) Constant 1 - 89: TypeBool - 94: 6(int) Constant 0 -98(gl_SubgroupSize): 57(ptr) Variable Input - 101: TypePointer IncomingRayPayloadKHR 28(float) - 4(main): 2 Function None 3 - 5: Label - 9(v0): 8(ptr) Variable Function - 13(v1): 8(ptr) Variable Function - 18(v2): 17(ptr) Variable Function - 22(v3): 17(ptr) Variable Function - 25(v4): 17(ptr) Variable Function - 31(v5): 30(ptr) Variable Function - 35(v6): 30(ptr) Variable Function - 38(v7): 30(ptr) Variable Function - 41(v8): 30(ptr) Variable Function - 45(v9): 44(ptr) Variable Function - 49(v10): 44(ptr) Variable Function - 52(v11): 44(ptr) Variable Function - 56(v12): 55(ptr) Variable Function - 62(v13): 61(ptr) Variable Function - 66(v14): 61(ptr) Variable Function - 69(v15): 17(ptr) Variable Function - 75(v16): 74(ptr) Variable Function - 79(v17): 74(ptr) Variable Function - 12: 7(ivec3) Load 11(gl_LaunchIDEXT) - Store 9(v0) 12 - 15: 7(ivec3) Load 14(gl_LaunchSizeEXT) - Store 13(v1) 15 - 21: 16(int) Load 20(gl_PrimitiveID) - Store 18(v2) 21 - 24: 16(int) Load 23(gl_InstanceID) - Store 22(v3) 24 - 27: 16(int) Load 26(gl_InstanceCustomIndexEXT) - Store 25(v4) 27 - 34: 29(fvec3) Load 33(gl_WorldRayOriginEXT) - Store 31(v5) 34 - 37: 29(fvec3) Load 36(gl_WorldRayDirectionEXT) - Store 35(v6) 37 - 40: 29(fvec3) Load 39(gl_ObjectRayOriginEXT) - Store 38(v7) 40 - 43: 29(fvec3) Load 42(gl_ObjectRayDirectionEXT) - Store 41(v8) 43 - 48: 28(float) Load 47(gl_RayTminEXT) - Store 45(v9) 48 - 51: 28(float) Load 50(gl_RayTmaxEXT) - Store 49(v10) 51 - 54: 28(float) Load 53(gl_HitTEXT) - Store 52(v11) 54 - 59: 6(int) Load 58(gl_HitKindEXT) - Store 56(v12) 59 - 65: 60 Load 64(gl_ObjectToWorldEXT) - Store 62(v13) 65 - 68: 60 Load 67(gl_WorldToObjectEXT) - Store 66(v14) 68 - 71: 16(int) Load 70(gl_GeometryIndexEXT) - Store 69(v15) 71 - 77: 60 Load 76(gl_ObjectToWorld3x4EXT) - 78: 73 Transpose 77 - Store 75(v16) 78 - 81: 60 Load 80(gl_WorldToObject3x4EXT) - 82: 73 Transpose 81 - Store 79(v17) 82 - Store 84(incomingPayload) 86 - 87: 16(int) Load 18(v2) - 90: 89(bool) IEqual 87 88 - SelectionMerge 92 None - BranchConditional 90 91 92 - 91: Label - IgnoreIntersectionKHR - 92: Label - 99: 6(int) Load 98(gl_SubgroupSize) - 100: 28(float) ConvertUToF 99 - 102: 101(ptr) AccessChain 84(incomingPayload) 94 - 103: 28(float) Load 102 - 104: 28(float) FAdd 103 100 - 105: 101(ptr) AccessChain 84(incomingPayload) 94 - Store 105 104 - TerminateRayKHR - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.ext.AnyHitShader_Errors.rahit.out b/deps/glslang/Test/baseResults/spv.ext.AnyHitShader_Errors.rahit.out deleted file mode 100644 index 8c474293..00000000 --- a/deps/glslang/Test/baseResults/spv.ext.AnyHitShader_Errors.rahit.out +++ /dev/null @@ -1,8 +0,0 @@ -spv.ext.AnyHitShader_Errors.rahit -ERROR: 0:8: 'assign' : l-value required "payload" (cannot modify hitAttributeNV in this stage) -ERROR: 0:9: 'reportIntersectionEXT' : no matching overloaded function found -ERROR: 0:10: 'traceRayEXT' : no matching overloaded function found -ERROR: 3 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.ext.ClosestHitShader.rchit.out b/deps/glslang/Test/baseResults/spv.ext.ClosestHitShader.rchit.out deleted file mode 100644 index 9a4eb288..00000000 --- a/deps/glslang/Test/baseResults/spv.ext.ClosestHitShader.rchit.out +++ /dev/null @@ -1,192 +0,0 @@ -spv.ext.ClosestHitShader.rchit -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 101 - - Capability RayTracingKHR - Extension "SPV_KHR_ray_tracing" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint ClosestHitKHR 4 "main" 11 14 20 23 26 33 36 39 42 47 50 53 58 64 67 70 76 80 85 98 100 - Source GLSL 460 - SourceExtension "GL_EXT_ray_tracing" - Name 4 "main" - Name 9 "v0" - Name 11 "gl_LaunchIDEXT" - Name 13 "v1" - Name 14 "gl_LaunchSizeEXT" - Name 18 "v2" - Name 20 "gl_PrimitiveID" - Name 22 "v3" - Name 23 "gl_InstanceID" - Name 25 "v4" - Name 26 "gl_InstanceCustomIndexEXT" - Name 31 "v5" - Name 33 "gl_WorldRayOriginEXT" - Name 35 "v6" - Name 36 "gl_WorldRayDirectionEXT" - Name 38 "v7" - Name 39 "gl_ObjectRayOriginEXT" - Name 41 "v8" - Name 42 "gl_ObjectRayDirectionEXT" - Name 45 "v9" - Name 47 "gl_RayTminEXT" - Name 49 "v10" - Name 50 "gl_RayTmaxEXT" - Name 52 "v11" - Name 53 "gl_HitTEXT" - Name 56 "v12" - Name 58 "gl_HitKindEXT" - Name 62 "v13" - Name 64 "gl_ObjectToWorldEXT" - Name 66 "v14" - Name 67 "gl_WorldToObjectEXT" - Name 69 "v15" - Name 70 "gl_GeometryIndexEXT" - Name 75 "v16" - Name 76 "gl_ObjectToWorld3x4EXT" - Name 79 "v17" - Name 80 "gl_WorldToObject3x4EXT" - Name 85 "accEXT" - Name 98 "incomingPayload" - Name 100 "localPayload" - Decorate 11(gl_LaunchIDEXT) BuiltIn LaunchIdKHR - Decorate 14(gl_LaunchSizeEXT) BuiltIn LaunchSizeKHR - Decorate 20(gl_PrimitiveID) BuiltIn PrimitiveId - Decorate 23(gl_InstanceID) BuiltIn InstanceId - Decorate 26(gl_InstanceCustomIndexEXT) BuiltIn InstanceCustomIndexKHR - Decorate 33(gl_WorldRayOriginEXT) BuiltIn WorldRayOriginKHR - Decorate 36(gl_WorldRayDirectionEXT) BuiltIn WorldRayDirectionKHR - Decorate 39(gl_ObjectRayOriginEXT) BuiltIn ObjectRayOriginKHR - Decorate 42(gl_ObjectRayDirectionEXT) BuiltIn ObjectRayDirectionKHR - Decorate 47(gl_RayTminEXT) BuiltIn RayTminKHR - Decorate 50(gl_RayTmaxEXT) BuiltIn RayTmaxKHR - Decorate 53(gl_HitTEXT) BuiltIn RayTmaxKHR - Decorate 58(gl_HitKindEXT) BuiltIn HitKindKHR - Decorate 64(gl_ObjectToWorldEXT) BuiltIn ObjectToWorldKHR - Decorate 67(gl_WorldToObjectEXT) BuiltIn WorldToObjectKHR - Decorate 70(gl_GeometryIndexEXT) BuiltIn RayGeometryIndexKHR - Decorate 76(gl_ObjectToWorld3x4EXT) BuiltIn ObjectToWorldKHR - Decorate 80(gl_WorldToObject3x4EXT) BuiltIn WorldToObjectKHR - Decorate 85(accEXT) DescriptorSet 0 - Decorate 85(accEXT) Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeVector 6(int) 3 - 8: TypePointer Function 7(ivec3) - 10: TypePointer Input 7(ivec3) -11(gl_LaunchIDEXT): 10(ptr) Variable Input -14(gl_LaunchSizeEXT): 10(ptr) Variable Input - 16: TypeInt 32 1 - 17: TypePointer Function 16(int) - 19: TypePointer Input 16(int) -20(gl_PrimitiveID): 19(ptr) Variable Input -23(gl_InstanceID): 19(ptr) Variable Input -26(gl_InstanceCustomIndexEXT): 19(ptr) Variable Input - 28: TypeFloat 32 - 29: TypeVector 28(float) 3 - 30: TypePointer Function 29(fvec3) - 32: TypePointer Input 29(fvec3) -33(gl_WorldRayOriginEXT): 32(ptr) Variable Input -36(gl_WorldRayDirectionEXT): 32(ptr) Variable Input -39(gl_ObjectRayOriginEXT): 32(ptr) Variable Input -42(gl_ObjectRayDirectionEXT): 32(ptr) Variable Input - 44: TypePointer Function 28(float) - 46: TypePointer Input 28(float) -47(gl_RayTminEXT): 46(ptr) Variable Input -50(gl_RayTmaxEXT): 46(ptr) Variable Input - 53(gl_HitTEXT): 46(ptr) Variable Input - 55: TypePointer Function 6(int) - 57: TypePointer Input 6(int) -58(gl_HitKindEXT): 57(ptr) Variable Input - 60: TypeMatrix 29(fvec3) 4 - 61: TypePointer Function 60 - 63: TypePointer Input 60 -64(gl_ObjectToWorldEXT): 63(ptr) Variable Input -67(gl_WorldToObjectEXT): 63(ptr) Variable Input -70(gl_GeometryIndexEXT): 19(ptr) Variable Input - 72: TypeVector 28(float) 4 - 73: TypeMatrix 72(fvec4) 3 - 74: TypePointer Function 73 -76(gl_ObjectToWorld3x4EXT): 63(ptr) Variable Input -80(gl_WorldToObject3x4EXT): 63(ptr) Variable Input - 83: TypeAccelerationStructureKHR - 84: TypePointer UniformConstant 83 - 85(accEXT): 84(ptr) Variable UniformConstant - 87: 6(int) Constant 0 - 88: 6(int) Constant 1 - 89: 6(int) Constant 2 - 90: 6(int) Constant 3 - 91: 28(float) Constant 1056964608 - 92: 29(fvec3) ConstantComposite 91 91 91 - 93: 28(float) Constant 1065353216 - 94: 29(fvec3) ConstantComposite 93 93 93 - 95: 28(float) Constant 1061158912 - 96: 16(int) Constant 1 - 97: TypePointer IncomingRayPayloadKHR 72(fvec4) -98(incomingPayload): 97(ptr) Variable IncomingRayPayloadKHR - 99: TypePointer RayPayloadKHR 72(fvec4) -100(localPayload): 99(ptr) Variable RayPayloadKHR - 4(main): 2 Function None 3 - 5: Label - 9(v0): 8(ptr) Variable Function - 13(v1): 8(ptr) Variable Function - 18(v2): 17(ptr) Variable Function - 22(v3): 17(ptr) Variable Function - 25(v4): 17(ptr) Variable Function - 31(v5): 30(ptr) Variable Function - 35(v6): 30(ptr) Variable Function - 38(v7): 30(ptr) Variable Function - 41(v8): 30(ptr) Variable Function - 45(v9): 44(ptr) Variable Function - 49(v10): 44(ptr) Variable Function - 52(v11): 44(ptr) Variable Function - 56(v12): 55(ptr) Variable Function - 62(v13): 61(ptr) Variable Function - 66(v14): 61(ptr) Variable Function - 69(v15): 17(ptr) Variable Function - 75(v16): 74(ptr) Variable Function - 79(v17): 74(ptr) Variable Function - 12: 7(ivec3) Load 11(gl_LaunchIDEXT) - Store 9(v0) 12 - 15: 7(ivec3) Load 14(gl_LaunchSizeEXT) - Store 13(v1) 15 - 21: 16(int) Load 20(gl_PrimitiveID) - Store 18(v2) 21 - 24: 16(int) Load 23(gl_InstanceID) - Store 22(v3) 24 - 27: 16(int) Load 26(gl_InstanceCustomIndexEXT) - Store 25(v4) 27 - 34: 29(fvec3) Load 33(gl_WorldRayOriginEXT) - Store 31(v5) 34 - 37: 29(fvec3) Load 36(gl_WorldRayDirectionEXT) - Store 35(v6) 37 - 40: 29(fvec3) Load 39(gl_ObjectRayOriginEXT) - Store 38(v7) 40 - 43: 29(fvec3) Load 42(gl_ObjectRayDirectionEXT) - Store 41(v8) 43 - 48: 28(float) Load 47(gl_RayTminEXT) - Store 45(v9) 48 - 51: 28(float) Load 50(gl_RayTmaxEXT) - Store 49(v10) 51 - 54: 28(float) Load 53(gl_HitTEXT) - Store 52(v11) 54 - 59: 6(int) Load 58(gl_HitKindEXT) - Store 56(v12) 59 - 65: 60 Load 64(gl_ObjectToWorldEXT) - Store 62(v13) 65 - 68: 60 Load 67(gl_WorldToObjectEXT) - Store 66(v14) 68 - 71: 16(int) Load 70(gl_GeometryIndexEXT) - Store 69(v15) 71 - 77: 60 Load 76(gl_ObjectToWorld3x4EXT) - 78: 73 Transpose 77 - Store 75(v16) 78 - 81: 60 Load 80(gl_WorldToObject3x4EXT) - 82: 73 Transpose 81 - Store 79(v17) 82 - 86: 83 Load 85(accEXT) - TraceRayKHR 86 87 88 89 90 87 92 91 94 95 98(incomingPayload) - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.ext.ClosestHitShader_Errors.rchit.out b/deps/glslang/Test/baseResults/spv.ext.ClosestHitShader_Errors.rchit.out deleted file mode 100644 index 9f945a2d..00000000 --- a/deps/glslang/Test/baseResults/spv.ext.ClosestHitShader_Errors.rchit.out +++ /dev/null @@ -1,12 +0,0 @@ -spv.ext.ClosestHitShader_Errors.rchit -ERROR: 0:6: 'location' : overlapping use of location 2 -ERROR: 0:9: 'assign' : l-value required "payload" (cannot modify hitAttributeNV in this stage) -ERROR: 0:10: 'reportIntersectionEXT' : no matching overloaded function found -ERROR: 0:11: 'terminateRayEXT' : not supported in this stage: closest-hit -ERROR: 0:12: 'ignoreIntersectionEXT' : not supported in this stage: closest-hit -ERROR: 0:13: 'gl_RayFlagsSkipAABBEXT' : required extension not requested: GL_EXT_ray_flags_primitive_culling -ERROR: 0:14: 'no rayPayloadEXT/rayPayloadInEXT declared' : with layout(location = 0) -ERROR: 7 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.ext.ClosestHitShader_Subgroup.rchit.out b/deps/glslang/Test/baseResults/spv.ext.ClosestHitShader_Subgroup.rchit.out deleted file mode 100644 index 24ab4f46..00000000 --- a/deps/glslang/Test/baseResults/spv.ext.ClosestHitShader_Subgroup.rchit.out +++ /dev/null @@ -1,124 +0,0 @@ -spv.ext.ClosestHitShader_Subgroup.rchit -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 67 - - Capability Int64 - Capability GroupNonUniform - Capability GroupNonUniformBallot - Capability SubgroupBallotKHR - Capability RayTracingKHR - Capability VulkanMemoryModelKHR - Capability ShaderSMBuiltinsNV - Extension "SPV_KHR_ray_tracing" - Extension "SPV_KHR_shader_ballot" - Extension "SPV_KHR_vulkan_memory_model" - Extension "SPV_NV_shader_sm_builtins" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical VulkanKHR - EntryPoint ClosestHitKHR 4 "main" 8 26 28 34 43 48 53 61 - Source GLSL 460 - SourceExtension "GL_ARB_shader_ballot" - SourceExtension "GL_EXT_ray_tracing" - SourceExtension "GL_KHR_shader_subgroup_ballot" - SourceExtension "GL_KHR_shader_subgroup_basic" - SourceExtension "GL_NV_shader_sm_builtins" - Name 4 "main" - Name 8 "accEXT" - Name 26 "incomingPayload" - Name 28 "gl_SubgroupInvocationID" - Name 34 "gl_SubGroupGeMaskARB" - Name 43 "gl_SubgroupGtMask" - Name 48 "gl_SubgroupLeMask" - Name 53 "gl_SubGroupLtMaskARB" - Name 61 "gl_SMIDNV" - Decorate 8(accEXT) DescriptorSet 0 - Decorate 8(accEXT) Binding 0 - Decorate 28(gl_SubgroupInvocationID) RelaxedPrecision - Decorate 28(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId - Decorate 29 RelaxedPrecision - Decorate 30 RelaxedPrecision - Decorate 34(gl_SubGroupGeMaskARB) BuiltIn SubgroupGeMaskKHR - Decorate 41 RelaxedPrecision - Decorate 42 RelaxedPrecision - Decorate 43(gl_SubgroupGtMask) BuiltIn SubgroupGtMaskKHR - Decorate 46 RelaxedPrecision - Decorate 46 RelaxedPrecision - Decorate 47 RelaxedPrecision - Decorate 48(gl_SubgroupLeMask) BuiltIn SubgroupLeMaskKHR - Decorate 51 RelaxedPrecision - Decorate 51 RelaxedPrecision - Decorate 52 RelaxedPrecision - Decorate 53(gl_SubGroupLtMaskARB) BuiltIn SubgroupLtMaskKHR - Decorate 59 RelaxedPrecision - Decorate 60 RelaxedPrecision - Decorate 61(gl_SMIDNV) BuiltIn SMIDNV - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeAccelerationStructureKHR - 7: TypePointer UniformConstant 6 - 8(accEXT): 7(ptr) Variable UniformConstant - 10: TypeInt 32 0 - 11: 10(int) Constant 0 - 12: 10(int) Constant 1 - 13: 10(int) Constant 2 - 14: 10(int) Constant 3 - 15: TypeFloat 32 - 16: TypeVector 15(float) 3 - 17: 15(float) Constant 1056964608 - 18: 16(fvec3) ConstantComposite 17 17 17 - 19: 15(float) Constant 1065353216 - 20: 16(fvec3) ConstantComposite 19 19 19 - 21: 15(float) Constant 1061158912 - 22: TypeInt 32 1 - 23: 22(int) Constant 1 - 24: TypeVector 15(float) 4 - 25: TypePointer IncomingRayPayloadKHR 24(fvec4) -26(incomingPayload): 25(ptr) Variable IncomingRayPayloadKHR - 27: TypePointer Input 10(int) -28(gl_SubgroupInvocationID): 27(ptr) Variable Input - 31: TypeVector 10(int) 4 - 32: TypeInt 64 0 - 33: TypePointer Input 31(ivec4) -34(gl_SubGroupGeMaskARB): 33(ptr) Variable Input - 38: TypeVector 10(int) 2 -43(gl_SubgroupGtMask): 33(ptr) Variable Input -48(gl_SubgroupLeMask): 33(ptr) Variable Input -53(gl_SubGroupLtMaskARB): 33(ptr) Variable Input - 61(gl_SMIDNV): 27(ptr) Variable Input - 65: TypePointer IncomingRayPayloadKHR 15(float) - 4(main): 2 Function None 3 - 5: Label - 9: 6 Load 8(accEXT) - TraceRayKHR 9 11 12 13 14 11 18 17 20 21 26(incomingPayload) - 29: 10(int) Load 28(gl_SubgroupInvocationID) Volatile - 30: 15(float) ConvertUToF 29 - 35: 31(ivec4) Load 34(gl_SubGroupGeMaskARB) - 36: 10(int) CompositeExtract 35 0 - 37: 10(int) CompositeExtract 35 1 - 39: 38(ivec2) CompositeConstruct 36 37 - 40: 32(int64_t) Bitcast 39 - 41: 15(float) ConvertUToF 40 - 42: 15(float) FAdd 30 41 - 44: 31(ivec4) Load 43(gl_SubgroupGtMask) Volatile - 45: 24(fvec4) ConvertUToF 44 - 46: 15(float) CompositeExtract 45 0 - 47: 15(float) FAdd 42 46 - 49: 31(ivec4) Load 48(gl_SubgroupLeMask) Volatile - 50: 24(fvec4) ConvertUToF 49 - 51: 15(float) CompositeExtract 50 0 - 52: 15(float) FAdd 47 51 - 54: 31(ivec4) Load 53(gl_SubGroupLtMaskARB) - 55: 10(int) CompositeExtract 54 0 - 56: 10(int) CompositeExtract 54 1 - 57: 38(ivec2) CompositeConstruct 55 56 - 58: 32(int64_t) Bitcast 57 - 59: 15(float) ConvertUToF 58 - 60: 15(float) FAdd 52 59 - 62: 10(int) Load 61(gl_SMIDNV) Volatile - 63: 15(float) ConvertUToF 62 - 64: 15(float) FAdd 60 63 - 66: 65(ptr) AccessChain 26(incomingPayload) 11 - Store 66 64 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.ext.IntersectShader.rint.out b/deps/glslang/Test/baseResults/spv.ext.IntersectShader.rint.out deleted file mode 100644 index 2d389a0c..00000000 --- a/deps/glslang/Test/baseResults/spv.ext.IntersectShader.rint.out +++ /dev/null @@ -1,158 +0,0 @@ -spv.ext.IntersectShader.rint -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 81 - - Capability RayTracingKHR - Extension "SPV_KHR_ray_tracing" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint IntersectionKHR 4 "main" 11 14 20 23 26 33 36 39 42 47 50 56 59 65 69 73 - Source GLSL 460 - SourceExtension "GL_EXT_ray_tracing" - Name 4 "main" - Name 9 "v0" - Name 11 "gl_LaunchIDEXT" - Name 13 "v1" - Name 14 "gl_LaunchSizeEXT" - Name 18 "v2" - Name 20 "gl_PrimitiveID" - Name 22 "v3" - Name 23 "gl_InstanceID" - Name 25 "v4" - Name 26 "gl_InstanceCustomIndexEXT" - Name 31 "v5" - Name 33 "gl_WorldRayOriginEXT" - Name 35 "v6" - Name 36 "gl_WorldRayDirectionEXT" - Name 38 "v7" - Name 39 "gl_ObjectRayOriginEXT" - Name 41 "v8" - Name 42 "gl_ObjectRayDirectionEXT" - Name 45 "v9" - Name 47 "gl_RayTminEXT" - Name 49 "v10" - Name 50 "gl_RayTmaxEXT" - Name 54 "v11" - Name 56 "gl_ObjectToWorldEXT" - Name 58 "v12" - Name 59 "gl_WorldToObjectEXT" - Name 64 "v13" - Name 65 "gl_ObjectToWorld3x4EXT" - Name 68 "v14" - Name 69 "gl_WorldToObject3x4EXT" - Name 73 "iAttr" - Decorate 11(gl_LaunchIDEXT) BuiltIn LaunchIdKHR - Decorate 14(gl_LaunchSizeEXT) BuiltIn LaunchSizeKHR - Decorate 20(gl_PrimitiveID) BuiltIn PrimitiveId - Decorate 23(gl_InstanceID) BuiltIn InstanceId - Decorate 26(gl_InstanceCustomIndexEXT) BuiltIn InstanceCustomIndexKHR - Decorate 33(gl_WorldRayOriginEXT) BuiltIn WorldRayOriginKHR - Decorate 36(gl_WorldRayDirectionEXT) BuiltIn WorldRayDirectionKHR - Decorate 39(gl_ObjectRayOriginEXT) BuiltIn ObjectRayOriginKHR - Decorate 42(gl_ObjectRayDirectionEXT) BuiltIn ObjectRayDirectionKHR - Decorate 47(gl_RayTminEXT) BuiltIn RayTminKHR - Decorate 50(gl_RayTmaxEXT) BuiltIn RayTmaxKHR - Decorate 50(gl_RayTmaxEXT) Volatile - Decorate 50(gl_RayTmaxEXT) Coherent - Decorate 56(gl_ObjectToWorldEXT) BuiltIn ObjectToWorldKHR - Decorate 59(gl_WorldToObjectEXT) BuiltIn WorldToObjectKHR - Decorate 65(gl_ObjectToWorld3x4EXT) BuiltIn ObjectToWorldKHR - Decorate 69(gl_WorldToObject3x4EXT) BuiltIn WorldToObjectKHR - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeVector 6(int) 3 - 8: TypePointer Function 7(ivec3) - 10: TypePointer Input 7(ivec3) -11(gl_LaunchIDEXT): 10(ptr) Variable Input -14(gl_LaunchSizeEXT): 10(ptr) Variable Input - 16: TypeInt 32 1 - 17: TypePointer Function 16(int) - 19: TypePointer Input 16(int) -20(gl_PrimitiveID): 19(ptr) Variable Input -23(gl_InstanceID): 19(ptr) Variable Input -26(gl_InstanceCustomIndexEXT): 19(ptr) Variable Input - 28: TypeFloat 32 - 29: TypeVector 28(float) 3 - 30: TypePointer Function 29(fvec3) - 32: TypePointer Input 29(fvec3) -33(gl_WorldRayOriginEXT): 32(ptr) Variable Input -36(gl_WorldRayDirectionEXT): 32(ptr) Variable Input -39(gl_ObjectRayOriginEXT): 32(ptr) Variable Input -42(gl_ObjectRayDirectionEXT): 32(ptr) Variable Input - 44: TypePointer Function 28(float) - 46: TypePointer Input 28(float) -47(gl_RayTminEXT): 46(ptr) Variable Input -50(gl_RayTmaxEXT): 46(ptr) Variable Input - 52: TypeMatrix 29(fvec3) 4 - 53: TypePointer Function 52 - 55: TypePointer Input 52 -56(gl_ObjectToWorldEXT): 55(ptr) Variable Input -59(gl_WorldToObjectEXT): 55(ptr) Variable Input - 61: TypeVector 28(float) 4 - 62: TypeMatrix 61(fvec4) 3 - 63: TypePointer Function 62 -65(gl_ObjectToWorld3x4EXT): 55(ptr) Variable Input -69(gl_WorldToObject3x4EXT): 55(ptr) Variable Input - 72: TypePointer HitAttributeKHR 61(fvec4) - 73(iAttr): 72(ptr) Variable HitAttributeKHR - 74: 28(float) Constant 1056964608 - 75: 28(float) Constant 0 - 76: 28(float) Constant 1065353216 - 77: 61(fvec4) ConstantComposite 74 74 75 76 - 78: 6(int) Constant 1 - 79: TypeBool - 4(main): 2 Function None 3 - 5: Label - 9(v0): 8(ptr) Variable Function - 13(v1): 8(ptr) Variable Function - 18(v2): 17(ptr) Variable Function - 22(v3): 17(ptr) Variable Function - 25(v4): 17(ptr) Variable Function - 31(v5): 30(ptr) Variable Function - 35(v6): 30(ptr) Variable Function - 38(v7): 30(ptr) Variable Function - 41(v8): 30(ptr) Variable Function - 45(v9): 44(ptr) Variable Function - 49(v10): 44(ptr) Variable Function - 54(v11): 53(ptr) Variable Function - 58(v12): 53(ptr) Variable Function - 64(v13): 63(ptr) Variable Function - 68(v14): 63(ptr) Variable Function - 12: 7(ivec3) Load 11(gl_LaunchIDEXT) - Store 9(v0) 12 - 15: 7(ivec3) Load 14(gl_LaunchSizeEXT) - Store 13(v1) 15 - 21: 16(int) Load 20(gl_PrimitiveID) - Store 18(v2) 21 - 24: 16(int) Load 23(gl_InstanceID) - Store 22(v3) 24 - 27: 16(int) Load 26(gl_InstanceCustomIndexEXT) - Store 25(v4) 27 - 34: 29(fvec3) Load 33(gl_WorldRayOriginEXT) - Store 31(v5) 34 - 37: 29(fvec3) Load 36(gl_WorldRayDirectionEXT) - Store 35(v6) 37 - 40: 29(fvec3) Load 39(gl_ObjectRayOriginEXT) - Store 38(v7) 40 - 43: 29(fvec3) Load 42(gl_ObjectRayDirectionEXT) - Store 41(v8) 43 - 48: 28(float) Load 47(gl_RayTminEXT) - Store 45(v9) 48 - 51: 28(float) Load 50(gl_RayTmaxEXT) - Store 49(v10) 51 - 57: 52 Load 56(gl_ObjectToWorldEXT) - Store 54(v11) 57 - 60: 52 Load 59(gl_WorldToObjectEXT) - Store 58(v12) 60 - 66: 52 Load 65(gl_ObjectToWorld3x4EXT) - 67: 62 Transpose 66 - Store 64(v13) 67 - 70: 52 Load 69(gl_WorldToObject3x4EXT) - 71: 62 Transpose 70 - Store 68(v14) 71 - Store 73(iAttr) 77 - 80: 79(bool) ReportIntersectionKHR 74 78 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.ext.IntersectShader_Errors.rint.out b/deps/glslang/Test/baseResults/spv.ext.IntersectShader_Errors.rint.out deleted file mode 100644 index 03f9b275..00000000 --- a/deps/glslang/Test/baseResults/spv.ext.IntersectShader_Errors.rint.out +++ /dev/null @@ -1,10 +0,0 @@ -spv.ext.IntersectShader_Errors.rint -ERROR: 0:3: 'rayPayloadInEXT' : not supported in this stage: intersection -ERROR: 0:4: 'rayPayloadEXT' : not supported in this stage: intersection -ERROR: 0:8: 'gl_HitTEXT' : undeclared identifier -ERROR: 0:9: 'gl_HitKindEXT' : undeclared identifier -ERROR: 0:10: 'traceRayEXT' : no matching overloaded function found -ERROR: 5 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.ext.MissShader.rmiss.out b/deps/glslang/Test/baseResults/spv.ext.MissShader.rmiss.out deleted file mode 100644 index 1acd5ae6..00000000 --- a/deps/glslang/Test/baseResults/spv.ext.MissShader.rmiss.out +++ /dev/null @@ -1,167 +0,0 @@ -spv.ext.MissShader.rmiss -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 90 - - Capability MinLod - Capability GroupNonUniform - Capability GroupNonUniformBallot - Capability SubgroupBallotKHR - Capability RayTracingKHR - Capability ShaderSMBuiltinsNV - Extension "SPV_KHR_ray_tracing" - Extension "SPV_KHR_shader_ballot" - Extension "SPV_NV_shader_sm_builtins" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint MissKHR 4 "main" 11 14 21 24 29 32 36 51 53 58 63 74 78 85 89 - Source GLSL 460 - SourceExtension "GL_ARB_shader_ballot" - SourceExtension "GL_ARB_sparse_texture_clamp" - SourceExtension "GL_EXT_ray_tracing" - SourceExtension "GL_KHR_shader_subgroup_ballot" - SourceExtension "GL_KHR_shader_subgroup_basic" - SourceExtension "GL_NV_shader_sm_builtins" - Name 4 "main" - Name 9 "v0" - Name 11 "gl_LaunchIDEXT" - Name 13 "v1" - Name 14 "gl_LaunchSizeEXT" - Name 19 "v2" - Name 21 "gl_WorldRayOriginEXT" - Name 23 "v3" - Name 24 "gl_WorldRayDirectionEXT" - Name 27 "v4" - Name 29 "gl_RayTminEXT" - Name 31 "v5" - Name 32 "gl_RayTmaxEXT" - Name 36 "accEXT" - Name 51 "incomingPayload" - Name 53 "gl_SubGroupSizeARB" - Name 58 "gl_SubgroupEqMask" - Name 63 "gl_WarpIDNV" - Name 70 "texel" - Name 74 "s2D" - Name 78 "c2" - Name 85 "lodClamp" - Name 89 "localPayload" - Decorate 11(gl_LaunchIDEXT) BuiltIn LaunchIdKHR - Decorate 14(gl_LaunchSizeEXT) BuiltIn LaunchSizeKHR - Decorate 21(gl_WorldRayOriginEXT) BuiltIn WorldRayOriginKHR - Decorate 24(gl_WorldRayDirectionEXT) BuiltIn WorldRayDirectionKHR - Decorate 29(gl_RayTminEXT) BuiltIn RayTminKHR - Decorate 32(gl_RayTmaxEXT) BuiltIn RayTmaxKHR - Decorate 36(accEXT) DescriptorSet 0 - Decorate 36(accEXT) Binding 0 - Decorate 53(gl_SubGroupSizeARB) BuiltIn SubgroupSize - Decorate 53(gl_SubGroupSizeARB) Volatile - Decorate 53(gl_SubGroupSizeARB) Coherent - Decorate 58(gl_SubgroupEqMask) BuiltIn SubgroupEqMaskKHR - Decorate 58(gl_SubgroupEqMask) Volatile - Decorate 58(gl_SubgroupEqMask) Coherent - Decorate 63(gl_WarpIDNV) BuiltIn WarpIDNV - Decorate 63(gl_WarpIDNV) Volatile - Decorate 63(gl_WarpIDNV) Coherent - Decorate 74(s2D) DescriptorSet 0 - Decorate 74(s2D) Binding 1 - Decorate 78(c2) Location 2 - Decorate 85(lodClamp) Location 3 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeVector 6(int) 3 - 8: TypePointer Function 7(ivec3) - 10: TypePointer Input 7(ivec3) -11(gl_LaunchIDEXT): 10(ptr) Variable Input -14(gl_LaunchSizeEXT): 10(ptr) Variable Input - 16: TypeFloat 32 - 17: TypeVector 16(float) 3 - 18: TypePointer Function 17(fvec3) - 20: TypePointer Input 17(fvec3) -21(gl_WorldRayOriginEXT): 20(ptr) Variable Input -24(gl_WorldRayDirectionEXT): 20(ptr) Variable Input - 26: TypePointer Function 16(float) - 28: TypePointer Input 16(float) -29(gl_RayTminEXT): 28(ptr) Variable Input -32(gl_RayTmaxEXT): 28(ptr) Variable Input - 34: TypeAccelerationStructureKHR - 35: TypePointer UniformConstant 34 - 36(accEXT): 35(ptr) Variable UniformConstant - 38: 6(int) Constant 0 - 39: 6(int) Constant 1 - 40: 6(int) Constant 2 - 41: 6(int) Constant 3 - 42: 16(float) Constant 1056964608 - 43: 17(fvec3) ConstantComposite 42 42 42 - 44: 16(float) Constant 1065353216 - 45: 17(fvec3) ConstantComposite 44 44 44 - 46: 16(float) Constant 1061158912 - 47: TypeInt 32 1 - 48: 47(int) Constant 1 - 49: TypeVector 16(float) 4 - 50: TypePointer IncomingRayPayloadKHR 49(fvec4) -51(incomingPayload): 50(ptr) Variable IncomingRayPayloadKHR - 52: TypePointer Input 6(int) -53(gl_SubGroupSizeARB): 52(ptr) Variable Input - 56: TypeVector 6(int) 4 - 57: TypePointer Input 56(ivec4) -58(gl_SubgroupEqMask): 57(ptr) Variable Input - 63(gl_WarpIDNV): 52(ptr) Variable Input - 67: TypePointer IncomingRayPayloadKHR 16(float) - 69: TypePointer Function 49(fvec4) - 71: TypeImage 16(float) 2D sampled format:Unknown - 72: TypeSampledImage 71 - 73: TypePointer UniformConstant 72 - 74(s2D): 73(ptr) Variable UniformConstant - 76: TypeVector 16(float) 2 - 77: TypePointer Input 76(fvec2) - 78(c2): 77(ptr) Variable Input - 82: TypeVector 47(int) 2 - 83: 47(int) Constant 5 - 84: 82(ivec2) ConstantComposite 83 83 - 85(lodClamp): 28(ptr) Variable Input - 88: TypePointer RayPayloadKHR 49(fvec4) -89(localPayload): 88(ptr) Variable RayPayloadKHR - 4(main): 2 Function None 3 - 5: Label - 9(v0): 8(ptr) Variable Function - 13(v1): 8(ptr) Variable Function - 19(v2): 18(ptr) Variable Function - 23(v3): 18(ptr) Variable Function - 27(v4): 26(ptr) Variable Function - 31(v5): 26(ptr) Variable Function - 70(texel): 69(ptr) Variable Function - 12: 7(ivec3) Load 11(gl_LaunchIDEXT) - Store 9(v0) 12 - 15: 7(ivec3) Load 14(gl_LaunchSizeEXT) - Store 13(v1) 15 - 22: 17(fvec3) Load 21(gl_WorldRayOriginEXT) - Store 19(v2) 22 - 25: 17(fvec3) Load 24(gl_WorldRayDirectionEXT) - Store 23(v3) 25 - 30: 16(float) Load 29(gl_RayTminEXT) - Store 27(v4) 30 - 33: 16(float) Load 32(gl_RayTmaxEXT) - Store 31(v5) 33 - 37: 34 Load 36(accEXT) - TraceRayKHR 37 38 39 40 41 38 43 42 45 46 51(incomingPayload) - 54: 6(int) Load 53(gl_SubGroupSizeARB) - 55: 16(float) ConvertUToF 54 - 59: 56(ivec4) Load 58(gl_SubgroupEqMask) - 60: 49(fvec4) ConvertUToF 59 - 61: 16(float) CompositeExtract 60 0 - 62: 16(float) FAdd 55 61 - 64: 6(int) Load 63(gl_WarpIDNV) - 65: 16(float) ConvertUToF 64 - 66: 16(float) FAdd 62 65 - 68: 67(ptr) AccessChain 51(incomingPayload) 38 - Store 68 66 - 75: 72 Load 74(s2D) - 79: 76(fvec2) Load 78(c2) - 80: 76(fvec2) Load 78(c2) - 81: 76(fvec2) Load 78(c2) - 86: 16(float) Load 85(lodClamp) - 87: 49(fvec4) ImageSampleExplicitLod 75 79 Grad ConstOffset MinLod 80 81 84 86 - Store 70(texel) 87 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.ext.MissShader_Errors.rmiss.out b/deps/glslang/Test/baseResults/spv.ext.MissShader_Errors.rmiss.out deleted file mode 100644 index 50d3c83e..00000000 --- a/deps/glslang/Test/baseResults/spv.ext.MissShader_Errors.rmiss.out +++ /dev/null @@ -1,21 +0,0 @@ -spv.ext.MissShader_Errors.rmiss -ERROR: 0:3: 'hitAttributeEXT' : not supported in this stage: miss -ERROR: 0:6: 'gl_PrimitiveID' : undeclared identifier -ERROR: 0:6: '=' : cannot convert from ' temp float' to ' temp highp int' -ERROR: 0:7: 'gl_InstanceID' : undeclared identifier (Did you mean gl_InstanceIndex?) -ERROR: 0:7: '=' : cannot convert from ' temp float' to ' temp highp int' -ERROR: 0:8: 'gl_InstanceCustomIndexEXT' : undeclared identifier -ERROR: 0:8: '=' : cannot convert from ' temp float' to ' temp highp int' -ERROR: 0:9: 'gl_ObjectToWorldEXT' : undeclared identifier -ERROR: 0:9: '=' : cannot convert from ' temp float' to ' temp highp 4X3 matrix of float' -ERROR: 0:10: 'gl_WorldToObjectEXT' : undeclared identifier -ERROR: 0:10: '=' : cannot convert from ' temp float' to ' temp highp 4X3 matrix of float' -ERROR: 0:11: 'gl_HitTEXT' : undeclared identifier -ERROR: 0:12: 'gl_HitKindEXT' : undeclared identifier -ERROR: 0:13: 'reportIntersectionEXT' : no matching overloaded function found -ERROR: 0:14: 'ignoreIntersectionEXT' : not supported in this stage: miss -ERROR: 0:15: 'terminateRayEXT' : not supported in this stage: miss -ERROR: 16 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.ext.RayCallable.rcall.out b/deps/glslang/Test/baseResults/spv.ext.RayCallable.rcall.out deleted file mode 100644 index 50e7fd8f..00000000 --- a/deps/glslang/Test/baseResults/spv.ext.RayCallable.rcall.out +++ /dev/null @@ -1,58 +0,0 @@ -spv.ext.RayCallable.rcall -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 30 - - Capability RayTracingKHR - Extension "SPV_KHR_ray_tracing" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint CallableKHR 4 "main" 11 14 18 29 - Source GLSL 460 - SourceExtension "GL_EXT_ray_tracing" - Name 4 "main" - Name 9 "id" - Name 11 "gl_LaunchIDEXT" - Name 13 "size" - Name 14 "gl_LaunchSizeEXT" - Name 16 "dataBlock" - MemberName 16(dataBlock) 0 "data1" - Name 18 "" - Name 29 "data0" - Decorate 11(gl_LaunchIDEXT) BuiltIn LaunchIdKHR - Decorate 14(gl_LaunchSizeEXT) BuiltIn LaunchSizeKHR - Decorate 16(dataBlock) Block - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeVector 6(int) 3 - 8: TypePointer Function 7(ivec3) - 10: TypePointer Input 7(ivec3) -11(gl_LaunchIDEXT): 10(ptr) Variable Input -14(gl_LaunchSizeEXT): 10(ptr) Variable Input - 16(dataBlock): TypeStruct 6(int) - 17: TypePointer IncomingCallableDataKHR 16(dataBlock) - 18: 17(ptr) Variable IncomingCallableDataKHR - 19: TypeInt 32 1 - 20: 19(int) Constant 0 - 21: 6(int) Constant 256 - 22: TypePointer IncomingCallableDataKHR 6(int) - 24: 6(int) Constant 2 - 25: 19(int) Constant 1 - 26: TypeFloat 32 - 27: TypeVector 26(float) 4 - 28: TypePointer CallableDataKHR 27(fvec4) - 29(data0): 28(ptr) Variable CallableDataKHR - 4(main): 2 Function None 3 - 5: Label - 9(id): 8(ptr) Variable Function - 13(size): 8(ptr) Variable Function - 12: 7(ivec3) Load 11(gl_LaunchIDEXT) - Store 9(id) 12 - 15: 7(ivec3) Load 14(gl_LaunchSizeEXT) - Store 13(size) 15 - 23: 22(ptr) AccessChain 18 20 - Store 23 21 - ExecuteCallableKHR 24 18 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.ext.RayCallable_Errors.rcall.out b/deps/glslang/Test/baseResults/spv.ext.RayCallable_Errors.rcall.out deleted file mode 100644 index e6238744..00000000 --- a/deps/glslang/Test/baseResults/spv.ext.RayCallable_Errors.rcall.out +++ /dev/null @@ -1,37 +0,0 @@ -spv.ext.RayCallable_Errors.rcall -ERROR: 0:3: 'hitAttributeEXT' : not supported in this stage: callable -ERROR: 0:4: 'rayPayloadEXT' : not supported in this stage: callable -ERROR: 0:5: 'rayPayloadInEXT' : not supported in this stage: callable -ERROR: 0:7: 'location' : overlapping use of location 0 -ERROR: 0:10: 'gl_PrimitiveID' : undeclared identifier -ERROR: 0:10: '=' : cannot convert from ' temp float' to ' temp highp int' -ERROR: 0:11: 'gl_InstanceID' : undeclared identifier (Did you mean gl_InstanceIndex?) -ERROR: 0:11: '=' : cannot convert from ' temp float' to ' temp highp int' -ERROR: 0:12: 'gl_InstanceCustomIndexEXT' : undeclared identifier -ERROR: 0:12: '=' : cannot convert from ' temp float' to ' temp highp int' -ERROR: 0:13: 'gl_WorldRayOriginEXT' : undeclared identifier -ERROR: 0:13: '=' : cannot convert from ' temp float' to ' temp highp 3-component vector of float' -ERROR: 0:14: 'gl_WorldRayDirectionEXT' : undeclared identifier -ERROR: 0:14: '=' : cannot convert from ' temp float' to ' temp highp 3-component vector of float' -ERROR: 0:15: 'gl_ObjectRayOriginEXT' : undeclared identifier -ERROR: 0:15: '=' : cannot convert from ' temp float' to ' temp highp 3-component vector of float' -ERROR: 0:16: 'gl_ObjectRayDirectionEXT' : undeclared identifier -ERROR: 0:16: '=' : cannot convert from ' temp float' to ' temp highp 3-component vector of float' -ERROR: 0:17: 'gl_RayTminEXT' : undeclared identifier -ERROR: 0:18: 'gl_RayTmaxEXT' : undeclared identifier -ERROR: 0:19: 'gl_ObjectToWorldEXT' : undeclared identifier -ERROR: 0:19: '=' : cannot convert from ' temp float' to ' temp highp 4X3 matrix of float' -ERROR: 0:20: 'gl_WorldToObjectEXT' : undeclared identifier -ERROR: 0:20: '=' : cannot convert from ' temp float' to ' temp highp 4X3 matrix of float' -ERROR: 0:21: 'gl_HitTEXT' : undeclared identifier -ERROR: 0:22: 'gl_HitKindEXT' : undeclared identifier -ERROR: 0:23: 'gl_IncomingRayFlagsEXT' : undeclared identifier -ERROR: 0:23: '=' : cannot convert from ' temp float' to ' temp highp uint' -ERROR: 0:24: 'reportIntersectionEXT' : no matching overloaded function found -ERROR: 0:25: 'ignoreIntersectionEXT' : not supported in this stage: callable -ERROR: 0:26: 'terminateRayEXT' : not supported in this stage: callable -ERROR: 0:27: 'no callableDataEXT/callableDataInEXT declared' : with layout(location = 1) -ERROR: 32 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.ext.RayConstants.rgen.out b/deps/glslang/Test/baseResults/spv.ext.RayConstants.rgen.out deleted file mode 100644 index 6ef9dd4d..00000000 --- a/deps/glslang/Test/baseResults/spv.ext.RayConstants.rgen.out +++ /dev/null @@ -1,45 +0,0 @@ -spv.ext.RayConstants.rgen -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 27 - - Capability RayTracingKHR - Extension "SPV_KHR_ray_tracing" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint RayGenerationKHR 4 "main" 8 26 - Source GLSL 460 - SourceExtension "GL_EXT_ray_tracing" - Name 4 "main" - Name 8 "accEXT" - Name 26 "payload" - Decorate 8(accEXT) DescriptorSet 0 - Decorate 8(accEXT) Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeAccelerationStructureKHR - 7: TypePointer UniformConstant 6 - 8(accEXT): 7(ptr) Variable UniformConstant - 10: TypeInt 32 0 - 11: 10(int) Constant 255 - 12: 10(int) Constant 0 - 13: 10(int) Constant 1 - 14: TypeFloat 32 - 15: TypeVector 14(float) 3 - 16: 14(float) Constant 0 - 17: 15(fvec3) ConstantComposite 16 16 16 - 18: 14(float) Constant 1056964608 - 19: 14(float) Constant 1065353216 - 20: 15(fvec3) ConstantComposite 19 19 19 - 21: 14(float) Constant 1061158912 - 22: TypeInt 32 1 - 23: 22(int) Constant 1 - 24: TypeVector 14(float) 4 - 25: TypePointer RayPayloadKHR 24(fvec4) - 26(payload): 25(ptr) Variable RayPayloadKHR - 4(main): 2 Function None 3 - 5: Label - 9: 6 Load 8(accEXT) - TraceRayKHR 9 11 12 13 13 12 17 18 20 21 26(payload) - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.ext.RayGenSBTlayout.rgen.out b/deps/glslang/Test/baseResults/spv.ext.RayGenSBTlayout.rgen.out deleted file mode 100644 index 88e3c004..00000000 --- a/deps/glslang/Test/baseResults/spv.ext.RayGenSBTlayout.rgen.out +++ /dev/null @@ -1,131 +0,0 @@ -spv.ext.RayGenSBTlayout.rgen -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 74 - - Capability Int64 - Capability RayTracingKHR - Extension "SPV_KHR_ray_tracing" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint RayGenerationKHR 4 "main" 11 21 38 60 - Source GLSL 460 - SourceExtension "GL_ARB_gpu_shader_int64" - SourceExtension "GL_EXT_ray_tracing" - Name 4 "main" - Name 8 "lx" - Name 11 "gl_LaunchIDEXT" - Name 16 "ly" - Name 20 "sx" - Name 21 "gl_LaunchSizeEXT" - Name 24 "sy" - Name 36 "block" - MemberName 36(block) 0 "dir" - MemberName 36(block) 1 "origin" - MemberName 36(block) 2 "i" - MemberName 36(block) 3 "aHandle32" - MemberName 36(block) 4 "aHandle64" - MemberName 36(block) 5 "arr2" - MemberName 36(block) 6 "a" - MemberName 36(block) 7 "arr3" - MemberName 36(block) 8 "packme" - MemberName 36(block) 9 "b" - MemberName 36(block) 10 "c" - Name 38 "" - Name 60 "payload" - Decorate 11(gl_LaunchIDEXT) BuiltIn LaunchIdKHR - Decorate 21(gl_LaunchSizeEXT) BuiltIn LaunchSizeKHR - Decorate 34 ArrayStride 8 - Decorate 35 ArrayStride 16 - MemberDecorate 36(block) 0 Offset 0 - MemberDecorate 36(block) 1 Offset 16 - MemberDecorate 36(block) 2 Offset 28 - MemberDecorate 36(block) 3 Offset 32 - MemberDecorate 36(block) 4 Offset 40 - MemberDecorate 36(block) 5 Offset 48 - MemberDecorate 36(block) 6 Offset 64 - MemberDecorate 36(block) 7 Offset 80 - MemberDecorate 36(block) 8 Offset 112 - MemberDecorate 36(block) 9 Offset 120 - MemberDecorate 36(block) 10 Offset 128 - Decorate 36(block) Block - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypeVector 6(int) 3 - 10: TypePointer Input 9(ivec3) -11(gl_LaunchIDEXT): 10(ptr) Variable Input - 12: 6(int) Constant 0 - 13: TypePointer Input 6(int) - 17: 6(int) Constant 1 -21(gl_LaunchSizeEXT): 10(ptr) Variable Input - 27: TypeFloat 32 - 28: TypeVector 27(float) 3 - 29: TypeInt 32 1 - 30: TypeVector 6(int) 2 - 31: TypeInt 64 0 - 32: TypeVector 27(float) 2 - 33: 6(int) Constant 2 - 34: TypeArray 32(fvec2) 33 - 35: TypeArray 28(fvec3) 33 - 36(block): TypeStruct 28(fvec3) 28(fvec3) 29(int) 30(ivec2) 31(int64_t) 34 27(float) 35 27(float) 32(fvec2) 27(float) - 37: TypePointer ShaderRecordBufferKHR 36(block) - 38: 37(ptr) Variable ShaderRecordBufferKHR - 39: 29(int) Constant 3 - 40: TypePointer ShaderRecordBufferKHR 30(ivec2) - 43: TypeAccelerationStructureKHR - 49: 29(int) Constant 1 - 50: TypePointer ShaderRecordBufferKHR 28(fvec3) - 53: 27(float) Constant 1056964608 - 54: 29(int) Constant 0 - 57: 27(float) Constant 1061158912 - 58: TypeVector 27(float) 4 - 59: TypePointer RayPayloadKHR 58(fvec4) - 60(payload): 59(ptr) Variable RayPayloadKHR - 61: 29(int) Constant 4 - 62: TypePointer ShaderRecordBufferKHR 31(int64_t) - 4(main): 2 Function None 3 - 5: Label - 8(lx): 7(ptr) Variable Function - 16(ly): 7(ptr) Variable Function - 20(sx): 7(ptr) Variable Function - 24(sy): 7(ptr) Variable Function - 14: 13(ptr) AccessChain 11(gl_LaunchIDEXT) 12 - 15: 6(int) Load 14 - Store 8(lx) 15 - 18: 13(ptr) AccessChain 11(gl_LaunchIDEXT) 17 - 19: 6(int) Load 18 - Store 16(ly) 19 - 22: 13(ptr) AccessChain 21(gl_LaunchSizeEXT) 12 - 23: 6(int) Load 22 - Store 20(sx) 23 - 25: 13(ptr) AccessChain 21(gl_LaunchSizeEXT) 17 - 26: 6(int) Load 25 - Store 24(sy) 26 - 41: 40(ptr) AccessChain 38 39 - 42: 30(ivec2) Load 41 - 44: 43 ConvertUToAccelerationStructureKHR 42 - 45: 6(int) Load 8(lx) - 46: 6(int) Load 16(ly) - 47: 6(int) Load 20(sx) - 48: 6(int) Load 24(sy) - 51: 50(ptr) AccessChain 38 49 - 52: 28(fvec3) Load 51 - 55: 50(ptr) AccessChain 38 54 - 56: 28(fvec3) Load 55 - TraceRayKHR 44 45 46 47 48 12 52 53 56 57 60(payload) - 63: 62(ptr) AccessChain 38 61 - 64: 31(int64_t) Load 63 - 65: 43 ConvertUToAccelerationStructureKHR 64 - 66: 6(int) Load 8(lx) - 67: 6(int) Load 16(ly) - 68: 6(int) Load 20(sx) - 69: 6(int) Load 24(sy) - 70: 50(ptr) AccessChain 38 49 - 71: 28(fvec3) Load 70 - 72: 50(ptr) AccessChain 38 54 - 73: 28(fvec3) Load 72 - TraceRayKHR 65 66 67 68 69 12 71 53 73 57 60(payload) - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.ext.RayGenSBTlayout140.rgen.out b/deps/glslang/Test/baseResults/spv.ext.RayGenSBTlayout140.rgen.out deleted file mode 100644 index ce5c3063..00000000 --- a/deps/glslang/Test/baseResults/spv.ext.RayGenSBTlayout140.rgen.out +++ /dev/null @@ -1,131 +0,0 @@ -spv.ext.RayGenSBTlayout140.rgen -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 74 - - Capability Int64 - Capability RayTracingKHR - Extension "SPV_KHR_ray_tracing" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint RayGenerationKHR 4 "main" 11 21 38 60 - Source GLSL 460 - SourceExtension "GL_ARB_gpu_shader_int64" - SourceExtension "GL_EXT_ray_tracing" - Name 4 "main" - Name 8 "lx" - Name 11 "gl_LaunchIDEXT" - Name 16 "ly" - Name 20 "sx" - Name 21 "gl_LaunchSizeEXT" - Name 24 "sy" - Name 36 "block" - MemberName 36(block) 0 "dir" - MemberName 36(block) 1 "origin" - MemberName 36(block) 2 "i" - MemberName 36(block) 3 "aHandle32" - MemberName 36(block) 4 "aHandle64" - MemberName 36(block) 5 "arr" - MemberName 36(block) 6 "a" - MemberName 36(block) 7 "arr3" - MemberName 36(block) 8 "packme" - MemberName 36(block) 9 "b" - MemberName 36(block) 10 "c" - Name 38 "" - Name 60 "payload" - Decorate 11(gl_LaunchIDEXT) BuiltIn LaunchIdKHR - Decorate 21(gl_LaunchSizeEXT) BuiltIn LaunchSizeKHR - Decorate 34 ArrayStride 16 - Decorate 35 ArrayStride 16 - MemberDecorate 36(block) 0 Offset 0 - MemberDecorate 36(block) 1 Offset 16 - MemberDecorate 36(block) 2 Offset 28 - MemberDecorate 36(block) 3 Offset 32 - MemberDecorate 36(block) 4 Offset 40 - MemberDecorate 36(block) 5 Offset 48 - MemberDecorate 36(block) 6 Offset 80 - MemberDecorate 36(block) 7 Offset 96 - MemberDecorate 36(block) 8 Offset 128 - MemberDecorate 36(block) 9 Offset 136 - MemberDecorate 36(block) 10 Offset 144 - Decorate 36(block) Block - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypeVector 6(int) 3 - 10: TypePointer Input 9(ivec3) -11(gl_LaunchIDEXT): 10(ptr) Variable Input - 12: 6(int) Constant 0 - 13: TypePointer Input 6(int) - 17: 6(int) Constant 1 -21(gl_LaunchSizeEXT): 10(ptr) Variable Input - 27: TypeFloat 32 - 28: TypeVector 27(float) 3 - 29: TypeInt 32 1 - 30: TypeVector 6(int) 2 - 31: TypeInt 64 0 - 32: TypeVector 27(float) 2 - 33: 6(int) Constant 2 - 34: TypeArray 32(fvec2) 33 - 35: TypeArray 28(fvec3) 33 - 36(block): TypeStruct 28(fvec3) 28(fvec3) 29(int) 30(ivec2) 31(int64_t) 34 27(float) 35 27(float) 32(fvec2) 27(float) - 37: TypePointer ShaderRecordBufferKHR 36(block) - 38: 37(ptr) Variable ShaderRecordBufferKHR - 39: 29(int) Constant 3 - 40: TypePointer ShaderRecordBufferKHR 30(ivec2) - 43: TypeAccelerationStructureKHR - 49: 29(int) Constant 1 - 50: TypePointer ShaderRecordBufferKHR 28(fvec3) - 53: 27(float) Constant 1056964608 - 54: 29(int) Constant 0 - 57: 27(float) Constant 1061158912 - 58: TypeVector 27(float) 4 - 59: TypePointer RayPayloadKHR 58(fvec4) - 60(payload): 59(ptr) Variable RayPayloadKHR - 61: 29(int) Constant 4 - 62: TypePointer ShaderRecordBufferKHR 31(int64_t) - 4(main): 2 Function None 3 - 5: Label - 8(lx): 7(ptr) Variable Function - 16(ly): 7(ptr) Variable Function - 20(sx): 7(ptr) Variable Function - 24(sy): 7(ptr) Variable Function - 14: 13(ptr) AccessChain 11(gl_LaunchIDEXT) 12 - 15: 6(int) Load 14 - Store 8(lx) 15 - 18: 13(ptr) AccessChain 11(gl_LaunchIDEXT) 17 - 19: 6(int) Load 18 - Store 16(ly) 19 - 22: 13(ptr) AccessChain 21(gl_LaunchSizeEXT) 12 - 23: 6(int) Load 22 - Store 20(sx) 23 - 25: 13(ptr) AccessChain 21(gl_LaunchSizeEXT) 17 - 26: 6(int) Load 25 - Store 24(sy) 26 - 41: 40(ptr) AccessChain 38 39 - 42: 30(ivec2) Load 41 - 44: 43 ConvertUToAccelerationStructureKHR 42 - 45: 6(int) Load 8(lx) - 46: 6(int) Load 16(ly) - 47: 6(int) Load 20(sx) - 48: 6(int) Load 24(sy) - 51: 50(ptr) AccessChain 38 49 - 52: 28(fvec3) Load 51 - 55: 50(ptr) AccessChain 38 54 - 56: 28(fvec3) Load 55 - TraceRayKHR 44 45 46 47 48 12 52 53 56 57 60(payload) - 63: 62(ptr) AccessChain 38 61 - 64: 31(int64_t) Load 63 - 65: 43 ConvertUToAccelerationStructureKHR 64 - 66: 6(int) Load 8(lx) - 67: 6(int) Load 16(ly) - 68: 6(int) Load 20(sx) - 69: 6(int) Load 24(sy) - 70: 50(ptr) AccessChain 38 49 - 71: 28(fvec3) Load 70 - 72: 50(ptr) AccessChain 38 54 - 73: 28(fvec3) Load 72 - TraceRayKHR 65 66 67 68 69 12 71 53 73 57 60(payload) - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.ext.RayGenSBTlayout430.rgen.out b/deps/glslang/Test/baseResults/spv.ext.RayGenSBTlayout430.rgen.out deleted file mode 100644 index 7462abd9..00000000 --- a/deps/glslang/Test/baseResults/spv.ext.RayGenSBTlayout430.rgen.out +++ /dev/null @@ -1,131 +0,0 @@ -spv.ext.RayGenSBTlayout430.rgen -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 74 - - Capability Int64 - Capability RayTracingKHR - Extension "SPV_KHR_ray_tracing" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint RayGenerationKHR 4 "main" 11 21 38 60 - Source GLSL 460 - SourceExtension "GL_ARB_gpu_shader_int64" - SourceExtension "GL_EXT_ray_tracing" - Name 4 "main" - Name 8 "lx" - Name 11 "gl_LaunchIDEXT" - Name 16 "ly" - Name 20 "sx" - Name 21 "gl_LaunchSizeEXT" - Name 24 "sy" - Name 36 "block" - MemberName 36(block) 0 "dir" - MemberName 36(block) 1 "origin" - MemberName 36(block) 2 "i" - MemberName 36(block) 3 "aHandle32" - MemberName 36(block) 4 "aHandle64" - MemberName 36(block) 5 "arr" - MemberName 36(block) 6 "a" - MemberName 36(block) 7 "arr3" - MemberName 36(block) 8 "packme" - MemberName 36(block) 9 "b" - MemberName 36(block) 10 "c" - Name 38 "" - Name 60 "payload" - Decorate 11(gl_LaunchIDEXT) BuiltIn LaunchIdKHR - Decorate 21(gl_LaunchSizeEXT) BuiltIn LaunchSizeKHR - Decorate 34 ArrayStride 8 - Decorate 35 ArrayStride 16 - MemberDecorate 36(block) 0 Offset 0 - MemberDecorate 36(block) 1 Offset 16 - MemberDecorate 36(block) 2 Offset 28 - MemberDecorate 36(block) 3 Offset 32 - MemberDecorate 36(block) 4 Offset 40 - MemberDecorate 36(block) 5 Offset 48 - MemberDecorate 36(block) 6 Offset 64 - MemberDecorate 36(block) 7 Offset 80 - MemberDecorate 36(block) 8 Offset 112 - MemberDecorate 36(block) 9 Offset 120 - MemberDecorate 36(block) 10 Offset 128 - Decorate 36(block) Block - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypeVector 6(int) 3 - 10: TypePointer Input 9(ivec3) -11(gl_LaunchIDEXT): 10(ptr) Variable Input - 12: 6(int) Constant 0 - 13: TypePointer Input 6(int) - 17: 6(int) Constant 1 -21(gl_LaunchSizeEXT): 10(ptr) Variable Input - 27: TypeFloat 32 - 28: TypeVector 27(float) 3 - 29: TypeInt 32 1 - 30: TypeVector 6(int) 2 - 31: TypeInt 64 0 - 32: TypeVector 27(float) 2 - 33: 6(int) Constant 2 - 34: TypeArray 32(fvec2) 33 - 35: TypeArray 28(fvec3) 33 - 36(block): TypeStruct 28(fvec3) 28(fvec3) 29(int) 30(ivec2) 31(int64_t) 34 27(float) 35 27(float) 32(fvec2) 27(float) - 37: TypePointer ShaderRecordBufferKHR 36(block) - 38: 37(ptr) Variable ShaderRecordBufferKHR - 39: 29(int) Constant 3 - 40: TypePointer ShaderRecordBufferKHR 30(ivec2) - 43: TypeAccelerationStructureKHR - 49: 29(int) Constant 1 - 50: TypePointer ShaderRecordBufferKHR 28(fvec3) - 53: 27(float) Constant 1056964608 - 54: 29(int) Constant 0 - 57: 27(float) Constant 1061158912 - 58: TypeVector 27(float) 4 - 59: TypePointer RayPayloadKHR 58(fvec4) - 60(payload): 59(ptr) Variable RayPayloadKHR - 61: 29(int) Constant 4 - 62: TypePointer ShaderRecordBufferKHR 31(int64_t) - 4(main): 2 Function None 3 - 5: Label - 8(lx): 7(ptr) Variable Function - 16(ly): 7(ptr) Variable Function - 20(sx): 7(ptr) Variable Function - 24(sy): 7(ptr) Variable Function - 14: 13(ptr) AccessChain 11(gl_LaunchIDEXT) 12 - 15: 6(int) Load 14 - Store 8(lx) 15 - 18: 13(ptr) AccessChain 11(gl_LaunchIDEXT) 17 - 19: 6(int) Load 18 - Store 16(ly) 19 - 22: 13(ptr) AccessChain 21(gl_LaunchSizeEXT) 12 - 23: 6(int) Load 22 - Store 20(sx) 23 - 25: 13(ptr) AccessChain 21(gl_LaunchSizeEXT) 17 - 26: 6(int) Load 25 - Store 24(sy) 26 - 41: 40(ptr) AccessChain 38 39 - 42: 30(ivec2) Load 41 - 44: 43 ConvertUToAccelerationStructureKHR 42 - 45: 6(int) Load 8(lx) - 46: 6(int) Load 16(ly) - 47: 6(int) Load 20(sx) - 48: 6(int) Load 24(sy) - 51: 50(ptr) AccessChain 38 49 - 52: 28(fvec3) Load 51 - 55: 50(ptr) AccessChain 38 54 - 56: 28(fvec3) Load 55 - TraceRayKHR 44 45 46 47 48 12 52 53 56 57 60(payload) - 63: 62(ptr) AccessChain 38 61 - 64: 31(int64_t) Load 63 - 65: 43 ConvertUToAccelerationStructureKHR 64 - 66: 6(int) Load 8(lx) - 67: 6(int) Load 16(ly) - 68: 6(int) Load 20(sx) - 69: 6(int) Load 24(sy) - 70: 50(ptr) AccessChain 38 49 - 71: 28(fvec3) Load 70 - 72: 50(ptr) AccessChain 38 54 - 73: 28(fvec3) Load 72 - TraceRayKHR 65 66 67 68 69 12 71 53 73 57 60(payload) - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.ext.RayGenSBTlayoutscalar.rgen.out b/deps/glslang/Test/baseResults/spv.ext.RayGenSBTlayoutscalar.rgen.out deleted file mode 100644 index 35734556..00000000 --- a/deps/glslang/Test/baseResults/spv.ext.RayGenSBTlayoutscalar.rgen.out +++ /dev/null @@ -1,132 +0,0 @@ -spv.ext.RayGenSBTlayoutscalar.rgen -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 74 - - Capability Int64 - Capability RayTracingKHR - Extension "SPV_KHR_ray_tracing" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint RayGenerationKHR 4 "main" 11 21 38 60 - Source GLSL 460 - SourceExtension "GL_ARB_gpu_shader_int64" - SourceExtension "GL_EXT_ray_tracing" - SourceExtension "GL_EXT_scalar_block_layout" - Name 4 "main" - Name 8 "lx" - Name 11 "gl_LaunchIDEXT" - Name 16 "ly" - Name 20 "sx" - Name 21 "gl_LaunchSizeEXT" - Name 24 "sy" - Name 36 "block" - MemberName 36(block) 0 "dir" - MemberName 36(block) 1 "origin" - MemberName 36(block) 2 "i" - MemberName 36(block) 3 "aHandle32" - MemberName 36(block) 4 "aHandle64" - MemberName 36(block) 5 "arr" - MemberName 36(block) 6 "a" - MemberName 36(block) 7 "arr3" - MemberName 36(block) 8 "packme" - MemberName 36(block) 9 "b" - MemberName 36(block) 10 "c" - Name 38 "" - Name 60 "payload" - Decorate 11(gl_LaunchIDEXT) BuiltIn LaunchIdKHR - Decorate 21(gl_LaunchSizeEXT) BuiltIn LaunchSizeKHR - Decorate 34 ArrayStride 8 - Decorate 35 ArrayStride 12 - MemberDecorate 36(block) 0 Offset 0 - MemberDecorate 36(block) 1 Offset 12 - MemberDecorate 36(block) 2 Offset 24 - MemberDecorate 36(block) 3 Offset 28 - MemberDecorate 36(block) 4 Offset 40 - MemberDecorate 36(block) 5 Offset 48 - MemberDecorate 36(block) 6 Offset 64 - MemberDecorate 36(block) 7 Offset 68 - MemberDecorate 36(block) 8 Offset 92 - MemberDecorate 36(block) 9 Offset 96 - MemberDecorate 36(block) 10 Offset 104 - Decorate 36(block) Block - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypeVector 6(int) 3 - 10: TypePointer Input 9(ivec3) -11(gl_LaunchIDEXT): 10(ptr) Variable Input - 12: 6(int) Constant 0 - 13: TypePointer Input 6(int) - 17: 6(int) Constant 1 -21(gl_LaunchSizeEXT): 10(ptr) Variable Input - 27: TypeFloat 32 - 28: TypeVector 27(float) 3 - 29: TypeInt 32 1 - 30: TypeVector 6(int) 2 - 31: TypeInt 64 0 - 32: TypeVector 27(float) 2 - 33: 6(int) Constant 2 - 34: TypeArray 32(fvec2) 33 - 35: TypeArray 28(fvec3) 33 - 36(block): TypeStruct 28(fvec3) 28(fvec3) 29(int) 30(ivec2) 31(int64_t) 34 27(float) 35 27(float) 32(fvec2) 27(float) - 37: TypePointer ShaderRecordBufferKHR 36(block) - 38: 37(ptr) Variable ShaderRecordBufferKHR - 39: 29(int) Constant 3 - 40: TypePointer ShaderRecordBufferKHR 30(ivec2) - 43: TypeAccelerationStructureKHR - 49: 29(int) Constant 1 - 50: TypePointer ShaderRecordBufferKHR 28(fvec3) - 53: 27(float) Constant 1056964608 - 54: 29(int) Constant 0 - 57: 27(float) Constant 1061158912 - 58: TypeVector 27(float) 4 - 59: TypePointer RayPayloadKHR 58(fvec4) - 60(payload): 59(ptr) Variable RayPayloadKHR - 61: 29(int) Constant 4 - 62: TypePointer ShaderRecordBufferKHR 31(int64_t) - 4(main): 2 Function None 3 - 5: Label - 8(lx): 7(ptr) Variable Function - 16(ly): 7(ptr) Variable Function - 20(sx): 7(ptr) Variable Function - 24(sy): 7(ptr) Variable Function - 14: 13(ptr) AccessChain 11(gl_LaunchIDEXT) 12 - 15: 6(int) Load 14 - Store 8(lx) 15 - 18: 13(ptr) AccessChain 11(gl_LaunchIDEXT) 17 - 19: 6(int) Load 18 - Store 16(ly) 19 - 22: 13(ptr) AccessChain 21(gl_LaunchSizeEXT) 12 - 23: 6(int) Load 22 - Store 20(sx) 23 - 25: 13(ptr) AccessChain 21(gl_LaunchSizeEXT) 17 - 26: 6(int) Load 25 - Store 24(sy) 26 - 41: 40(ptr) AccessChain 38 39 - 42: 30(ivec2) Load 41 - 44: 43 ConvertUToAccelerationStructureKHR 42 - 45: 6(int) Load 8(lx) - 46: 6(int) Load 16(ly) - 47: 6(int) Load 20(sx) - 48: 6(int) Load 24(sy) - 51: 50(ptr) AccessChain 38 49 - 52: 28(fvec3) Load 51 - 55: 50(ptr) AccessChain 38 54 - 56: 28(fvec3) Load 55 - TraceRayKHR 44 45 46 47 48 12 52 53 56 57 60(payload) - 63: 62(ptr) AccessChain 38 61 - 64: 31(int64_t) Load 63 - 65: 43 ConvertUToAccelerationStructureKHR 64 - 66: 6(int) Load 8(lx) - 67: 6(int) Load 16(ly) - 68: 6(int) Load 20(sx) - 69: 6(int) Load 24(sy) - 70: 50(ptr) AccessChain 38 49 - 71: 28(fvec3) Load 70 - 72: 50(ptr) AccessChain 38 54 - 73: 28(fvec3) Load 72 - TraceRayKHR 65 66 67 68 69 12 71 53 73 57 60(payload) - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.ext.RayGenShader.rgen.out b/deps/glslang/Test/baseResults/spv.ext.RayGenShader.rgen.out deleted file mode 100644 index 46f920ac..00000000 --- a/deps/glslang/Test/baseResults/spv.ext.RayGenShader.rgen.out +++ /dev/null @@ -1,103 +0,0 @@ -spv.ext.RayGenShader.rgen -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 58 - - Capability RayTraversalPrimitiveCullingKHR - Capability RayTracingKHR - Extension "SPV_KHR_ray_tracing" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint RayGenerationKHR 4 "main" 11 21 29 40 53 54 57 - Source GLSL 460 - SourceExtension "GL_EXT_ray_flags_primitive_culling" - SourceExtension "GL_EXT_ray_tracing" - Name 4 "main" - Name 8 "lx" - Name 11 "gl_LaunchIDEXT" - Name 16 "ly" - Name 20 "sx" - Name 21 "gl_LaunchSizeEXT" - Name 24 "sy" - Name 29 "accEXT0" - Name 38 "block" - MemberName 38(block) 0 "dir" - MemberName 38(block) 1 "origin" - Name 40 "" - Name 53 "payload" - Name 54 "accEXT1" - Name 57 "imageu" - Decorate 11(gl_LaunchIDEXT) BuiltIn LaunchIdKHR - Decorate 21(gl_LaunchSizeEXT) BuiltIn LaunchSizeKHR - Decorate 29(accEXT0) DescriptorSet 0 - Decorate 29(accEXT0) Binding 0 - MemberDecorate 38(block) 0 Offset 0 - MemberDecorate 38(block) 1 Offset 16 - Decorate 38(block) Block - Decorate 54(accEXT1) DescriptorSet 0 - Decorate 54(accEXT1) Binding 1 - Decorate 57(imageu) DescriptorSet 0 - Decorate 57(imageu) Binding 2 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypeVector 6(int) 3 - 10: TypePointer Input 9(ivec3) -11(gl_LaunchIDEXT): 10(ptr) Variable Input - 12: 6(int) Constant 0 - 13: TypePointer Input 6(int) - 17: 6(int) Constant 1 -21(gl_LaunchSizeEXT): 10(ptr) Variable Input - 27: TypeAccelerationStructureKHR - 28: TypePointer UniformConstant 27 - 29(accEXT0): 28(ptr) Variable UniformConstant - 35: 6(int) Constant 768 - 36: TypeFloat 32 - 37: TypeVector 36(float) 3 - 38(block): TypeStruct 37(fvec3) 37(fvec3) - 39: TypePointer ShaderRecordBufferKHR 38(block) - 40: 39(ptr) Variable ShaderRecordBufferKHR - 41: TypeInt 32 1 - 42: 41(int) Constant 1 - 43: TypePointer ShaderRecordBufferKHR 37(fvec3) - 46: 36(float) Constant 1056964608 - 47: 41(int) Constant 0 - 50: 36(float) Constant 1061158912 - 51: TypeVector 36(float) 4 - 52: TypePointer RayPayloadKHR 51(fvec4) - 53(payload): 52(ptr) Variable RayPayloadKHR - 54(accEXT1): 28(ptr) Variable UniformConstant - 55: TypeImage 6(int) 2D nonsampled format:R32ui - 56: TypePointer UniformConstant 55 - 57(imageu): 56(ptr) Variable UniformConstant - 4(main): 2 Function None 3 - 5: Label - 8(lx): 7(ptr) Variable Function - 16(ly): 7(ptr) Variable Function - 20(sx): 7(ptr) Variable Function - 24(sy): 7(ptr) Variable Function - 14: 13(ptr) AccessChain 11(gl_LaunchIDEXT) 12 - 15: 6(int) Load 14 - Store 8(lx) 15 - 18: 13(ptr) AccessChain 11(gl_LaunchIDEXT) 17 - 19: 6(int) Load 18 - Store 16(ly) 19 - 22: 13(ptr) AccessChain 21(gl_LaunchSizeEXT) 12 - 23: 6(int) Load 22 - Store 20(sx) 23 - 25: 13(ptr) AccessChain 21(gl_LaunchSizeEXT) 17 - 26: 6(int) Load 25 - Store 24(sy) 26 - 30: 27 Load 29(accEXT0) - 31: 6(int) Load 8(lx) - 32: 6(int) Load 16(ly) - 33: 6(int) Load 20(sx) - 34: 6(int) Load 24(sy) - 44: 43(ptr) AccessChain 40 42 - 45: 37(fvec3) Load 44 - 48: 43(ptr) AccessChain 40 47 - 49: 37(fvec3) Load 48 - TraceRayKHR 30 31 32 33 34 35 45 46 49 50 53(payload) - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.ext.RayGenShader11.rgen.out b/deps/glslang/Test/baseResults/spv.ext.RayGenShader11.rgen.out deleted file mode 100644 index b31ebd9a..00000000 --- a/deps/glslang/Test/baseResults/spv.ext.RayGenShader11.rgen.out +++ /dev/null @@ -1,90 +0,0 @@ -spv.ext.RayGenShader11.rgen -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 53 - - Capability RayTracingKHR - Extension "SPV_KHR_ray_tracing" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint RayGenerationKHR 4 "main" 11 21 29 39 52 - Source GLSL 460 - SourceExtension "GL_EXT_ray_tracing" - Name 4 "main" - Name 8 "lx" - Name 11 "gl_LaunchIDEXT" - Name 16 "ly" - Name 20 "sx" - Name 21 "gl_LaunchSizeEXT" - Name 24 "sy" - Name 29 "accEXT" - Name 37 "block" - MemberName 37(block) 0 "dir" - MemberName 37(block) 1 "origin" - Name 39 "" - Name 52 "payload" - Decorate 11(gl_LaunchIDEXT) BuiltIn LaunchIdKHR - Decorate 21(gl_LaunchSizeEXT) BuiltIn LaunchSizeKHR - Decorate 29(accEXT) DescriptorSet 0 - Decorate 29(accEXT) Binding 0 - MemberDecorate 37(block) 0 Offset 0 - MemberDecorate 37(block) 1 Offset 16 - Decorate 37(block) Block - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypeVector 6(int) 3 - 10: TypePointer Input 9(ivec3) -11(gl_LaunchIDEXT): 10(ptr) Variable Input - 12: 6(int) Constant 0 - 13: TypePointer Input 6(int) - 17: 6(int) Constant 1 -21(gl_LaunchSizeEXT): 10(ptr) Variable Input - 27: TypeAccelerationStructureKHR - 28: TypePointer UniformConstant 27 - 29(accEXT): 28(ptr) Variable UniformConstant - 35: TypeFloat 32 - 36: TypeVector 35(float) 3 - 37(block): TypeStruct 36(fvec3) 36(fvec3) - 38: TypePointer ShaderRecordBufferKHR 37(block) - 39: 38(ptr) Variable ShaderRecordBufferKHR - 40: TypeInt 32 1 - 41: 40(int) Constant 1 - 42: TypePointer ShaderRecordBufferKHR 36(fvec3) - 45: 35(float) Constant 1056964608 - 46: 40(int) Constant 0 - 49: 35(float) Constant 1061158912 - 50: TypeVector 35(float) 4 - 51: TypePointer RayPayloadKHR 50(fvec4) - 52(payload): 51(ptr) Variable RayPayloadKHR - 4(main): 2 Function None 3 - 5: Label - 8(lx): 7(ptr) Variable Function - 16(ly): 7(ptr) Variable Function - 20(sx): 7(ptr) Variable Function - 24(sy): 7(ptr) Variable Function - 14: 13(ptr) AccessChain 11(gl_LaunchIDEXT) 12 - 15: 6(int) Load 14 - Store 8(lx) 15 - 18: 13(ptr) AccessChain 11(gl_LaunchIDEXT) 17 - 19: 6(int) Load 18 - Store 16(ly) 19 - 22: 13(ptr) AccessChain 21(gl_LaunchSizeEXT) 12 - 23: 6(int) Load 22 - Store 20(sx) 23 - 25: 13(ptr) AccessChain 21(gl_LaunchSizeEXT) 17 - 26: 6(int) Load 25 - Store 24(sy) 26 - 30: 27 Load 29(accEXT) - 31: 6(int) Load 8(lx) - 32: 6(int) Load 16(ly) - 33: 6(int) Load 20(sx) - 34: 6(int) Load 24(sy) - 43: 42(ptr) AccessChain 39 41 - 44: 36(fvec3) Load 43 - 47: 42(ptr) AccessChain 39 46 - 48: 36(fvec3) Load 47 - TraceRayKHR 30 31 32 33 34 12 44 45 48 49 52(payload) - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.ext.RayGenShaderArray.rgen.out b/deps/glslang/Test/baseResults/spv.ext.RayGenShaderArray.rgen.out deleted file mode 100644 index 08f72b28..00000000 --- a/deps/glslang/Test/baseResults/spv.ext.RayGenShaderArray.rgen.out +++ /dev/null @@ -1,176 +0,0 @@ -spv.ext.RayGenShaderArray.rgen -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 117 - - Capability Int64 - Capability RayTracingKHR - Capability ShaderNonUniformEXT - Capability RuntimeDescriptorArrayEXT - Extension "SPV_EXT_descriptor_indexing" - Extension "SPV_KHR_ray_tracing" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint RayGenerationKHR 4 "main" 11 21 30 38 61 65 - Source GLSL 460 - SourceExtension "GL_ARB_gpu_shader_int64" - SourceExtension "GL_EXT_nonuniform_qualifier" - SourceExtension "GL_EXT_ray_tracing" - Name 4 "main" - Name 8 "lx" - Name 11 "gl_LaunchIDEXT" - Name 16 "ly" - Name 20 "sx" - Name 21 "gl_LaunchSizeEXT" - Name 24 "sy" - Name 30 "accEXT0" - Name 36 "block" - MemberName 36(block) 0 "dir" - MemberName 36(block) 1 "origin" - MemberName 36(block) 2 "i" - MemberName 36(block) 3 "aHandle32" - MemberName 36(block) 4 "aHandle64" - Name 38 "" - Name 61 "payload" - Name 65 "accEXT1" - Decorate 11(gl_LaunchIDEXT) BuiltIn LaunchIdKHR - Decorate 21(gl_LaunchSizeEXT) BuiltIn LaunchSizeKHR - Decorate 30(accEXT0) DescriptorSet 0 - Decorate 30(accEXT0) Binding 0 - MemberDecorate 36(block) 0 Offset 0 - MemberDecorate 36(block) 1 Offset 16 - MemberDecorate 36(block) 2 Offset 28 - MemberDecorate 36(block) 3 Offset 32 - MemberDecorate 36(block) 4 Offset 40 - Decorate 36(block) Block - Decorate 65(accEXT1) DescriptorSet 0 - Decorate 65(accEXT1) Binding 1 - Decorate 80 DecorationNonUniformEXT - Decorate 81 DecorationNonUniformEXT - Decorate 82 DecorationNonUniformEXT - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypeVector 6(int) 3 - 10: TypePointer Input 9(ivec3) -11(gl_LaunchIDEXT): 10(ptr) Variable Input - 12: 6(int) Constant 0 - 13: TypePointer Input 6(int) - 17: 6(int) Constant 1 -21(gl_LaunchSizeEXT): 10(ptr) Variable Input - 27: TypeAccelerationStructureKHR - 28: TypeRuntimeArray 27 - 29: TypePointer UniformConstant 28 - 30(accEXT0): 29(ptr) Variable UniformConstant - 31: TypeFloat 32 - 32: TypeVector 31(float) 3 - 33: TypeInt 32 1 - 34: TypeVector 6(int) 2 - 35: TypeInt 64 0 - 36(block): TypeStruct 32(fvec3) 32(fvec3) 33(int) 34(ivec2) 35(int64_t) - 37: TypePointer ShaderRecordBufferKHR 36(block) - 38: 37(ptr) Variable ShaderRecordBufferKHR - 39: 33(int) Constant 2 - 40: TypePointer ShaderRecordBufferKHR 33(int) - 43: TypePointer UniformConstant 27 - 50: 33(int) Constant 1 - 51: TypePointer ShaderRecordBufferKHR 32(fvec3) - 54: 31(float) Constant 1056964608 - 55: 33(int) Constant 0 - 58: 31(float) Constant 1061158912 - 59: TypeVector 31(float) 4 - 60: TypePointer RayPayloadKHR 59(fvec4) - 61(payload): 60(ptr) Variable RayPayloadKHR - 62: 6(int) Constant 2 - 63: TypeArray 27 62 - 64: TypePointer UniformConstant 63 - 65(accEXT1): 64(ptr) Variable UniformConstant - 91: 33(int) Constant 3 - 92: TypePointer ShaderRecordBufferKHR 34(ivec2) - 104: 33(int) Constant 4 - 105: TypePointer ShaderRecordBufferKHR 35(int64_t) - 4(main): 2 Function None 3 - 5: Label - 8(lx): 7(ptr) Variable Function - 16(ly): 7(ptr) Variable Function - 20(sx): 7(ptr) Variable Function - 24(sy): 7(ptr) Variable Function - 14: 13(ptr) AccessChain 11(gl_LaunchIDEXT) 12 - 15: 6(int) Load 14 - Store 8(lx) 15 - 18: 13(ptr) AccessChain 11(gl_LaunchIDEXT) 17 - 19: 6(int) Load 18 - Store 16(ly) 19 - 22: 13(ptr) AccessChain 21(gl_LaunchSizeEXT) 12 - 23: 6(int) Load 22 - Store 20(sx) 23 - 25: 13(ptr) AccessChain 21(gl_LaunchSizeEXT) 17 - 26: 6(int) Load 25 - Store 24(sy) 26 - 41: 40(ptr) AccessChain 38 39 - 42: 33(int) Load 41 - 44: 43(ptr) AccessChain 30(accEXT0) 42 - 45: 27 Load 44 - 46: 6(int) Load 8(lx) - 47: 6(int) Load 16(ly) - 48: 6(int) Load 20(sx) - 49: 6(int) Load 24(sy) - 52: 51(ptr) AccessChain 38 50 - 53: 32(fvec3) Load 52 - 56: 51(ptr) AccessChain 38 55 - 57: 32(fvec3) Load 56 - TraceRayKHR 45 46 47 48 49 12 53 54 57 58 61(payload) - 66: 40(ptr) AccessChain 38 39 - 67: 33(int) Load 66 - 68: 43(ptr) AccessChain 65(accEXT1) 67 - 69: 27 Load 68 - 70: 6(int) Load 8(lx) - 71: 6(int) Load 16(ly) - 72: 6(int) Load 20(sx) - 73: 6(int) Load 24(sy) - 74: 51(ptr) AccessChain 38 50 - 75: 32(fvec3) Load 74 - 76: 51(ptr) AccessChain 38 55 - 77: 32(fvec3) Load 76 - TraceRayKHR 69 70 71 72 73 12 75 54 77 58 61(payload) - 78: 40(ptr) AccessChain 38 39 - 79: 33(int) Load 78 - 80: 33(int) CopyObject 79 - 81: 43(ptr) AccessChain 30(accEXT0) 80 - 82: 27 Load 81 - 83: 6(int) Load 8(lx) - 84: 6(int) Load 16(ly) - 85: 6(int) Load 20(sx) - 86: 6(int) Load 24(sy) - 87: 51(ptr) AccessChain 38 50 - 88: 32(fvec3) Load 87 - 89: 51(ptr) AccessChain 38 55 - 90: 32(fvec3) Load 89 - TraceRayKHR 82 83 84 85 86 12 88 54 90 58 61(payload) - 93: 92(ptr) AccessChain 38 91 - 94: 34(ivec2) Load 93 - 95: 27 ConvertUToAccelerationStructureKHR 94 - 96: 6(int) Load 8(lx) - 97: 6(int) Load 16(ly) - 98: 6(int) Load 20(sx) - 99: 6(int) Load 24(sy) - 100: 51(ptr) AccessChain 38 50 - 101: 32(fvec3) Load 100 - 102: 51(ptr) AccessChain 38 55 - 103: 32(fvec3) Load 102 - TraceRayKHR 95 96 97 98 99 12 101 54 103 58 61(payload) - 106: 105(ptr) AccessChain 38 104 - 107: 35(int64_t) Load 106 - 108: 27 ConvertUToAccelerationStructureKHR 107 - 109: 6(int) Load 8(lx) - 110: 6(int) Load 16(ly) - 111: 6(int) Load 20(sx) - 112: 6(int) Load 24(sy) - 113: 51(ptr) AccessChain 38 50 - 114: 32(fvec3) Load 113 - 115: 51(ptr) AccessChain 38 55 - 116: 32(fvec3) Load 115 - TraceRayKHR 108 109 110 111 112 12 114 54 116 58 61(payload) - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.ext.RayGenShader_Errors.rgen.out b/deps/glslang/Test/baseResults/spv.ext.RayGenShader_Errors.rgen.out deleted file mode 100644 index 3f336bb7..00000000 --- a/deps/glslang/Test/baseResults/spv.ext.RayGenShader_Errors.rgen.out +++ /dev/null @@ -1,43 +0,0 @@ -spv.ext.RayGenShader_Errors.rgen -ERROR: 0:3: 'hitAttributeEXT' : not supported in this stage: ray-generation -ERROR: 0:4: 'rayPayloadInEXT' : not supported in this stage: ray-generation -ERROR: 0:5: 'shaderRecordNV' : can only be used with a buffer -ERROR: 0:9: 'binding' : cannot be used with shaderRecordNV -ERROR: 0:12: 'set' : cannot be used with shaderRecordNV -ERROR: 0:23: ' temp accelerationStructureNV' : cannot construct with these arguments -ERROR: 0:23: 'accelerationStructureNV' : accelerationStructureNV can only be used in uniform variables or function parameters: a -ERROR: 0:23: '=' : cannot convert from ' const float' to ' temp accelerationStructureNV' -ERROR: 0:24: 'gl_PrimitiveID' : undeclared identifier -ERROR: 0:24: '=' : cannot convert from ' temp float' to ' temp highp int' -ERROR: 0:25: 'gl_InstanceID' : undeclared identifier (Did you mean gl_InstanceIndex?) -ERROR: 0:25: '=' : cannot convert from ' temp float' to ' temp highp int' -ERROR: 0:26: 'gl_InstanceCustomIndexEXT' : undeclared identifier -ERROR: 0:26: '=' : cannot convert from ' temp float' to ' temp highp int' -ERROR: 0:27: 'gl_WorldRayOriginEXT' : undeclared identifier -ERROR: 0:27: '=' : cannot convert from ' temp float' to ' temp highp 3-component vector of float' -ERROR: 0:28: 'gl_WorldRayDirectionEXT' : undeclared identifier -ERROR: 0:28: '=' : cannot convert from ' temp float' to ' temp highp 3-component vector of float' -ERROR: 0:29: 'gl_ObjectRayOriginEXT' : undeclared identifier -ERROR: 0:29: '=' : cannot convert from ' temp float' to ' temp highp 3-component vector of float' -ERROR: 0:30: 'gl_ObjectRayDirectionEXT' : undeclared identifier -ERROR: 0:30: '=' : cannot convert from ' temp float' to ' temp highp 3-component vector of float' -ERROR: 0:31: 'gl_RayTminEXT' : undeclared identifier -ERROR: 0:32: 'gl_RayTmaxEXT' : undeclared identifier -ERROR: 0:33: 'gl_ObjectToWorldEXT' : undeclared identifier -ERROR: 0:33: '=' : cannot convert from ' temp float' to ' temp highp 4X3 matrix of float' -ERROR: 0:34: 'gl_WorldToObjectEXT' : undeclared identifier -ERROR: 0:34: '=' : cannot convert from ' temp float' to ' temp highp 4X3 matrix of float' -ERROR: 0:35: 'gl_HitTEXT' : undeclared identifier -ERROR: 0:36: 'gl_HitKindEXT' : undeclared identifier -ERROR: 0:37: 'gl_RayFlagsSkipAABBEXT' : required extension not requested: GL_EXT_ray_flags_primitive_culling -ERROR: 0:37: '=' : cannot convert from ' const uint' to ' temp highp int' -ERROR: 0:38: 'reportIntersectionEXT' : no matching overloaded function found -ERROR: 0:39: 'ignoreIntersectionEXT' : not supported in this stage: ray-generation -ERROR: 0:40: 'terminateRayEXT' : not supported in this stage: ray-generation -ERROR: 0:41: 'assign' : l-value required "anon@3" (can't modify a shaderrecordnv qualified buffer) -ERROR: 36 compilation errors. No code generated. - - -ERROR: Linking ray-generation stage: Only one shaderRecordNV buffer block is allowed per stage - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.ext.RayPrimCull_Errors.rgen.out b/deps/glslang/Test/baseResults/spv.ext.RayPrimCull_Errors.rgen.out deleted file mode 100644 index 23d1acf9..00000000 --- a/deps/glslang/Test/baseResults/spv.ext.RayPrimCull_Errors.rgen.out +++ /dev/null @@ -1,9 +0,0 @@ -spv.ext.RayPrimCull_Errors.rgen -ERROR: 0:3: 'primitive culling' : required extension not requested: GL_EXT_ray_flags_primitive_culling -ERROR: 0:5: 'primitive_culling' : layout qualifier can not have storage qualifiers -ERROR: 0:6: 'primitive_culling' : can only be applied as standalone -ERROR: 0:7: 'primitive_culling' : can only be applied as standalone -ERROR: 4 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.ext.RayQueryDecl.frag.out b/deps/glslang/Test/baseResults/spv.ext.RayQueryDecl.frag.out deleted file mode 100644 index 97681e9f..00000000 --- a/deps/glslang/Test/baseResults/spv.ext.RayQueryDecl.frag.out +++ /dev/null @@ -1,39 +0,0 @@ -spv.ext.RayQueryDecl.frag -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 15 - - Capability Shader - Capability RayQueryKHR - Extension "SPV_KHR_ray_query" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 9 14 - ExecutionMode 4 OriginUpperLeft - Source GLSL 460 - SourceExtension "GL_ARB_separate_shader_objects" - SourceExtension "GL_EXT_nonuniform_qualifier" - SourceExtension "GL_EXT_ray_query" - SourceExtension "GL_EXT_scalar_block_layout" - SourceExtension "GL_GOOGLE_cpp_style_line_directive" - SourceExtension "GL_GOOGLE_include_directive" - Name 4 "main" - Name 9 "outColor" - Name 14 "rq" - Decorate 9(outColor) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) - 9(outColor): 8(ptr) Variable Output - 10: 6(float) Constant 0 - 11: 7(fvec4) ConstantComposite 10 10 10 10 - 12: TypeRayQueryKHR - 13: TypePointer Private 12 - 14(rq): 13(ptr) Variable Private - 4(main): 2 Function None 3 - 5: Label - Store 9(outColor) 11 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.ext.World3x4.rahit.out b/deps/glslang/Test/baseResults/spv.ext.World3x4.rahit.out deleted file mode 100644 index 8c60912c..00000000 --- a/deps/glslang/Test/baseResults/spv.ext.World3x4.rahit.out +++ /dev/null @@ -1,144 +0,0 @@ -spv.ext.World3x4.rahit -// Module Version 10400 -// Generated by (magic number): 8000a -// Id's are bound by 90 - - Capability RayTracingKHR - Extension "SPV_KHR_ray_tracing" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint AnyHitKHR 4 "main" 43 60 78 87 89 - Source GLSL 460 - SourceExtension "GL_EXT_ray_tracing" - Name 4 "main" - Name 8 "k" - Name 12 "ndx" - Name 14 "col" - Name 25 "row" - Name 39 "p" - Name 43 "gl_LaunchIDEXT" - Name 53 "r" - Name 60 "gl_WorldToObject3x4EXT" - Name 66 "indexable" - Name 72 "c" - Name 78 "result" - Name 87 "attribs" - Name 89 "hitValue" - Decorate 43(gl_LaunchIDEXT) BuiltIn LaunchIdKHR - Decorate 60(gl_WorldToObject3x4EXT) BuiltIn WorldToObjectKHR - Decorate 78(result) DescriptorSet 0 - Decorate 78(result) Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypePointer Function 6(float) - 9: 6(float) Constant 1233125376 - 10: TypeInt 32 1 - 11: TypePointer Function 10(int) - 13: 10(int) Constant 4294967295 - 15: 10(int) Constant 0 - 22: 10(int) Constant 3 - 23: TypeBool - 32: 10(int) Constant 4 - 35: 10(int) Constant 1 - 37: TypeVector 10(int) 3 - 38: TypePointer Function 37(ivec3) - 40: TypeInt 32 0 - 41: TypeVector 40(int) 3 - 42: TypePointer Input 41(ivec3) -43(gl_LaunchIDEXT): 42(ptr) Variable Input - 44: TypeVector 40(int) 2 - 47: TypeVector 10(int) 2 - 55: TypeVector 6(float) 3 - 56: TypeMatrix 55(fvec3) 4 - 57: TypeVector 6(float) 4 - 58: TypeMatrix 57(fvec4) 3 - 59: TypePointer Input 56 -60(gl_WorldToObject3x4EXT): 59(ptr) Variable Input - 65: TypePointer Function 58 - 70: TypeVector 10(int) 4 - 71: TypePointer Function 70(ivec4) - 76: TypeImage 10(int) 3D nonsampled format:R32i - 77: TypePointer UniformConstant 76 - 78(result): 77(ptr) Variable UniformConstant - 86: TypePointer HitAttributeKHR 55(fvec3) - 87(attribs): 86(ptr) Variable HitAttributeKHR - 88: TypePointer IncomingRayPayloadKHR 55(fvec3) - 89(hitValue): 88(ptr) Variable IncomingRayPayloadKHR - 4(main): 2 Function None 3 - 5: Label - 8(k): 7(ptr) Variable Function - 12(ndx): 11(ptr) Variable Function - 14(col): 11(ptr) Variable Function - 25(row): 11(ptr) Variable Function - 39(p): 38(ptr) Variable Function - 53(r): 7(ptr) Variable Function - 66(indexable): 65(ptr) Variable Function - 72(c): 71(ptr) Variable Function - Store 8(k) 9 - Store 12(ndx) 13 - Store 14(col) 15 - Branch 16 - 16: Label - LoopMerge 18 19 None - Branch 20 - 20: Label - 21: 10(int) Load 14(col) - 24: 23(bool) SLessThan 21 22 - BranchConditional 24 17 18 - 17: Label - Store 25(row) 15 - Branch 26 - 26: Label - LoopMerge 28 29 None - Branch 30 - 30: Label - 31: 10(int) Load 25(row) - 33: 23(bool) SLessThan 31 32 - BranchConditional 33 27 28 - 27: Label - 34: 10(int) Load 12(ndx) - 36: 10(int) IAdd 34 35 - Store 12(ndx) 36 - 45: 41(ivec3) Load 43(gl_LaunchIDEXT) - 46: 44(ivec2) VectorShuffle 45 45 0 1 - 48: 47(ivec2) Bitcast 46 - 49: 10(int) Load 12(ndx) - 50: 10(int) CompositeExtract 48 0 - 51: 10(int) CompositeExtract 48 1 - 52: 37(ivec3) CompositeConstruct 50 51 49 - Store 39(p) 52 - 54: 6(float) Load 8(k) - 61: 56 Load 60(gl_WorldToObject3x4EXT) - 62: 58 Transpose 61 - 63: 10(int) Load 14(col) - 64: 10(int) Load 25(row) - Store 66(indexable) 62 - 67: 7(ptr) AccessChain 66(indexable) 63 64 - 68: 6(float) Load 67 - 69: 6(float) FMul 54 68 - Store 53(r) 69 - 73: 6(float) Load 53(r) - 74: 10(int) ConvertFToS 73 - 75: 70(ivec4) CompositeConstruct 74 15 15 35 - Store 72(c) 75 - 79: 76 Load 78(result) - 80: 37(ivec3) Load 39(p) - 81: 70(ivec4) Load 72(c) - ImageWrite 79 80 81 SignExtend - Branch 29 - 29: Label - 82: 10(int) Load 25(row) - 83: 10(int) IAdd 82 35 - Store 25(row) 83 - Branch 26 - 28: Label - Branch 19 - 19: Label - 84: 10(int) Load 14(col) - 85: 10(int) IAdd 84 35 - Store 14(col) 85 - Branch 16 - 18: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.extPostDepthCoverage.frag.out b/deps/glslang/Test/baseResults/spv.extPostDepthCoverage.frag.out deleted file mode 100644 index cc96fb4f..00000000 --- a/deps/glslang/Test/baseResults/spv.extPostDepthCoverage.frag.out +++ /dev/null @@ -1,23 +0,0 @@ -spv.extPostDepthCoverage.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 6 - - Capability Shader - Capability SampleMaskPostDepthCoverage - Extension "SPV_KHR_post_depth_coverage" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - ExecutionMode 4 EarlyFragmentTests - ExecutionMode 4 PostDepthCoverage - Source ESSL 310 - SourceExtension "GL_EXT_post_depth_coverage" - Name 4 "main" - 2: TypeVoid - 3: TypeFunction 2 - 4(main): 2 Function None 3 - 5: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.extPostDepthCoverage_Error.frag.out b/deps/glslang/Test/baseResults/spv.extPostDepthCoverage_Error.frag.out deleted file mode 100644 index 9ce299f4..00000000 --- a/deps/glslang/Test/baseResults/spv.extPostDepthCoverage_Error.frag.out +++ /dev/null @@ -1,4 +0,0 @@ -spv.extPostDepthCoverage_Error.frag -ERROR: Linking fragment stage: post_depth_coverage requires early_fragment_tests - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.float16.frag.out b/deps/glslang/Test/baseResults/spv.float16.frag.out deleted file mode 100644 index 8c33a667..00000000 --- a/deps/glslang/Test/baseResults/spv.float16.frag.out +++ /dev/null @@ -1,857 +0,0 @@ -spv.float16.frag -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 542 - - Capability Shader - Capability Float16 - Capability Float64 - Capability Int64 - Capability DerivativeControl - Capability InterpolationFunction - Capability StorageUniformBufferBlock16 - Capability StorageUniform16 - Capability StorageInputOutput16 - Extension "SPV_AMD_gpu_shader_half_float" - Extension "SPV_KHR_16bit_storage" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 465 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_AMD_gpu_shader_half_float" - SourceExtension "GL_ARB_gpu_shader_int64" - Name 4 "main" - Name 6 "literal(" - Name 8 "operators(" - Name 10 "typeCast(" - Name 12 "builtinAngleTrigFuncs(" - Name 14 "builtinExpFuncs(" - Name 16 "builtinCommonFuncs(" - Name 18 "builtinPackUnpackFuncs(" - Name 20 "builtinGeometryFuncs(" - Name 22 "builtinMatrixFuncs(" - Name 24 "builtinVecRelFuncs(" - Name 26 "builtinFragProcFuncs(" - Name 31 "f16v" - Name 42 "f16v" - Name 64 "f16m" - Name 87 "f16" - Name 111 "b" - Name 153 "f16v" - Name 156 "bv" - Name 167 "fv" - Name 175 "dv" - Name 186 "iv" - Name 193 "uv" - Name 201 "i64v" - Name 209 "u64v" - Name 216 "f16v2" - Name 217 "f16v1" - Name 249 "f16v2" - Name 250 "f16v1" - Name 266 "f16v2" - Name 267 "f16v1" - Name 288 "f16" - Name 292 "f16v3" - Name 332 "bv" - Name 353 "b" - Name 363 "iv" - Name 364 "ResType" - Name 372 "u" - Name 373 "f16v" - Name 378 "f16" - Name 379 "f16v1" - Name 383 "f16v2" - Name 389 "f16v3" - Name 408 "f16m3" - Name 409 "f16m1" - Name 411 "f16m2" - Name 420 "f16v1" - Name 422 "f16v2" - Name 427 "f16m4" - Name 430 "f16" - Name 433 "f16m5" - Name 438 "f16m6" - Name 439 "f16m7" - Name 442 "bv" - Name 443 "f16v1" - Name 445 "f16v2" - Name 463 "f16v" - Name 465 "if16v" - Name 522 "S" - MemberName 522(S) 0 "x" - MemberName 522(S) 1 "y" - MemberName 522(S) 2 "z" - Name 524 "B1" - MemberName 524(B1) 0 "a" - MemberName 524(B1) 1 "b" - MemberName 524(B1) 2 "c" - MemberName 524(B1) 3 "d" - MemberName 524(B1) 4 "e" - MemberName 524(B1) 5 "f" - MemberName 524(B1) 6 "g" - MemberName 524(B1) 7 "h" - Name 526 "" - Name 529 "S" - MemberName 529(S) 0 "x" - MemberName 529(S) 1 "y" - MemberName 529(S) 2 "z" - Name 531 "B2" - MemberName 531(B2) 0 "o" - MemberName 531(B2) 1 "p" - MemberName 531(B2) 2 "q" - MemberName 531(B2) 3 "r" - MemberName 531(B2) 4 "s" - MemberName 531(B2) 5 "t" - MemberName 531(B2) 6 "u" - MemberName 531(B2) 7 "v" - Name 533 "" - Name 534 "sf16" - Name 535 "sf" - Name 536 "sd" - Name 537 "f16_to_f" - Name 539 "f16_to_d" - Name 540 "f_to_f16" - Name 541 "d_to_f16" - Decorate 465(if16v) Location 0 - Decorate 520 ArrayStride 16 - Decorate 521 ArrayStride 32 - MemberDecorate 522(S) 0 Offset 0 - MemberDecorate 522(S) 1 Offset 4 - MemberDecorate 522(S) 2 Offset 8 - Decorate 523 ArrayStride 16 - MemberDecorate 524(B1) 0 Offset 0 - MemberDecorate 524(B1) 1 Offset 4 - MemberDecorate 524(B1) 2 Offset 8 - MemberDecorate 524(B1) 3 Offset 16 - MemberDecorate 524(B1) 4 ColMajor - MemberDecorate 524(B1) 4 Offset 48 - MemberDecorate 524(B1) 4 MatrixStride 16 - MemberDecorate 524(B1) 5 ColMajor - MemberDecorate 524(B1) 5 Offset 80 - MemberDecorate 524(B1) 5 MatrixStride 16 - MemberDecorate 524(B1) 6 Offset 144 - MemberDecorate 524(B1) 7 Offset 160 - Decorate 524(B1) Block - Decorate 526 DescriptorSet 0 - Decorate 526 Binding 0 - Decorate 527 ArrayStride 2 - Decorate 528 ArrayStride 12 - MemberDecorate 529(S) 0 Offset 0 - MemberDecorate 529(S) 1 Offset 4 - MemberDecorate 529(S) 2 Offset 8 - Decorate 530 ArrayStride 16 - MemberDecorate 531(B2) 0 Offset 0 - MemberDecorate 531(B2) 1 Offset 4 - MemberDecorate 531(B2) 2 Offset 8 - MemberDecorate 531(B2) 3 Offset 14 - MemberDecorate 531(B2) 4 RowMajor - MemberDecorate 531(B2) 4 Offset 20 - MemberDecorate 531(B2) 4 MatrixStride 4 - MemberDecorate 531(B2) 5 RowMajor - MemberDecorate 531(B2) 5 Offset 32 - MemberDecorate 531(B2) 5 MatrixStride 4 - MemberDecorate 531(B2) 6 Offset 56 - MemberDecorate 531(B2) 7 Offset 72 - Decorate 531(B2) BufferBlock - Decorate 533 DescriptorSet 0 - Decorate 533 Binding 0 - Decorate 534(sf16) SpecId 100 - Decorate 535(sf) SpecId 101 - Decorate 536(sd) SpecId 102 - 2: TypeVoid - 3: TypeFunction 2 - 28: TypeFloat 16 - 29: TypeVector 28(float16_t) 2 - 30: TypePointer Function 29(f16vec2) - 32:28(float16_t) Constant 16 - 33: TypeInt 32 0 - 34: 33(int) Constant 0 - 35: TypePointer Function 28(float16_t) - 37:28(float16_t) Constant 46080 - 38:28(float16_t) Constant 10158 - 39: 29(f16vec2) ConstantComposite 37 38 - 56:28(float16_t) Constant 15360 - 62: TypeMatrix 29(f16vec2) 2 - 63: TypePointer Function 62 - 90: 33(int) Constant 1 - 109: TypeBool - 110: TypePointer Function 109(bool) - 151: TypeVector 28(float16_t) 3 - 152: TypePointer Function 151(f16vec3) - 154: TypeVector 109(bool) 3 - 155: TypePointer Function 154(bvec3) - 158:28(float16_t) Constant 0 - 159:151(f16vec3) ConstantComposite 158 158 158 - 160:151(f16vec3) ConstantComposite 56 56 56 - 164: TypeFloat 32 - 165: TypeVector 164(float) 3 - 166: TypePointer Function 165(fvec3) - 172: TypeFloat 64 - 173: TypeVector 172(float64_t) 3 - 174: TypePointer Function 173(f64vec3) - 183: TypeInt 32 1 - 184: TypeVector 183(int) 3 - 185: TypePointer Function 184(ivec3) - 191: TypeVector 33(int) 3 - 192: TypePointer Function 191(ivec3) - 198: TypeInt 64 1 - 199: TypeVector 198(int64_t) 3 - 200: TypePointer Function 199(i64vec3) - 206: TypeInt 64 0 - 207: TypeVector 206(int64_t) 3 - 208: TypePointer Function 207(i64vec3) - 214: TypeVector 28(float16_t) 4 - 215: TypePointer Function 214(f16vec4) - 364(ResType): TypeStruct 151(f16vec3) 184(ivec3) - 371: TypePointer Function 33(int) - 406: TypeMatrix 151(f16vec3) 2 - 407: TypePointer Function 406 - 425: TypeMatrix 29(f16vec2) 3 - 426: TypePointer Function 425 - 431: TypeMatrix 151(f16vec3) 3 - 432: TypePointer Function 431 - 436: TypeMatrix 214(f16vec4) 4 - 437: TypePointer Function 436 - 464: TypePointer Input 151(f16vec3) - 465(if16v): 464(ptr) Variable Input - 466: TypePointer Input 28(float16_t) - 509: 183(int) Constant 1 - 516:28(float16_t) Constant 14336 - 517: 29(f16vec2) ConstantComposite 516 516 - 519: 33(int) Constant 2 - 520: TypeArray 28(float16_t) 519 - 521: TypeArray 406 519 - 522(S): TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3) - 523: TypeArray 522(S) 519 - 524(B1): TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3) 520 406 521 522(S) 523 - 525: TypePointer Uniform 524(B1) - 526: 525(ptr) Variable Uniform - 527: TypeArray 28(float16_t) 519 - 528: TypeArray 406 519 - 529(S): TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3) - 530: TypeArray 529(S) 519 - 531(B2): TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3) 527 406 528 529(S) 530 - 532: TypePointer Uniform 531(B2) - 533: 532(ptr) Variable Uniform - 534(sf16):28(float16_t) SpecConstant 12288 - 535(sf): 164(float) SpecConstant 1048576000 - 536(sd):172(float64_t) SpecConstant 0 1071644672 - 537(f16_to_f): 164(float) SpecConstantOp 115 534(sf16) - 538: 164(float) SpecConstantOp 115 534(sf16) - 539(f16_to_d):172(float64_t) SpecConstantOp 115 538 - 540(f_to_f16):28(float16_t) SpecConstantOp 115 535(sf) - 541(d_to_f16):28(float16_t) SpecConstantOp 115 536(sd) - 4(main): 2 Function None 3 - 5: Label - Return - FunctionEnd - 6(literal(): 2 Function None 3 - 7: Label - 31(f16v): 30(ptr) Variable Function - 36: 35(ptr) AccessChain 31(f16v) 34 - Store 36 32 - 40: 29(f16vec2) Load 31(f16v) - 41: 29(f16vec2) FAdd 40 39 - Store 31(f16v) 41 - Return - FunctionEnd - 8(operators(): 2 Function None 3 - 9: Label - 42(f16v): 30(ptr) Variable Function - 64(f16m): 63(ptr) Variable Function - 87(f16): 35(ptr) Variable Function - 111(b): 110(ptr) Variable Function - 43: 29(f16vec2) Load 42(f16v) - 44: 29(f16vec2) Load 42(f16v) - 45: 29(f16vec2) FAdd 44 43 - Store 42(f16v) 45 - 46: 29(f16vec2) Load 42(f16v) - 47: 29(f16vec2) Load 42(f16v) - 48: 29(f16vec2) FSub 47 46 - Store 42(f16v) 48 - 49: 29(f16vec2) Load 42(f16v) - 50: 29(f16vec2) Load 42(f16v) - 51: 29(f16vec2) FMul 50 49 - Store 42(f16v) 51 - 52: 29(f16vec2) Load 42(f16v) - 53: 29(f16vec2) Load 42(f16v) - 54: 29(f16vec2) FDiv 53 52 - Store 42(f16v) 54 - 55: 29(f16vec2) Load 42(f16v) - 57: 29(f16vec2) CompositeConstruct 56 56 - 58: 29(f16vec2) FAdd 55 57 - Store 42(f16v) 58 - 59: 29(f16vec2) Load 42(f16v) - 60: 29(f16vec2) CompositeConstruct 56 56 - 61: 29(f16vec2) FSub 59 60 - Store 42(f16v) 61 - 65: 62 Load 64(f16m) - 66: 29(f16vec2) CompositeConstruct 56 56 - 67: 29(f16vec2) CompositeExtract 65 0 - 68: 29(f16vec2) FAdd 67 66 - 69: 29(f16vec2) CompositeExtract 65 1 - 70: 29(f16vec2) FAdd 69 66 - 71: 62 CompositeConstruct 68 70 - Store 64(f16m) 71 - 72: 62 Load 64(f16m) - 73: 29(f16vec2) CompositeConstruct 56 56 - 74: 29(f16vec2) CompositeExtract 72 0 - 75: 29(f16vec2) FSub 74 73 - 76: 29(f16vec2) CompositeExtract 72 1 - 77: 29(f16vec2) FSub 76 73 - 78: 62 CompositeConstruct 75 77 - Store 64(f16m) 78 - 79: 29(f16vec2) Load 42(f16v) - 80: 29(f16vec2) FNegate 79 - Store 42(f16v) 80 - 81: 62 Load 64(f16m) - 82: 29(f16vec2) CompositeExtract 81 0 - 83: 29(f16vec2) FNegate 82 - 84: 29(f16vec2) CompositeExtract 81 1 - 85: 29(f16vec2) FNegate 84 - 86: 62 CompositeConstruct 83 85 - Store 64(f16m) 86 - 88: 35(ptr) AccessChain 42(f16v) 34 - 89:28(float16_t) Load 88 - 91: 35(ptr) AccessChain 42(f16v) 90 - 92:28(float16_t) Load 91 - 93:28(float16_t) FAdd 89 92 - Store 87(f16) 93 - 94: 35(ptr) AccessChain 42(f16v) 34 - 95:28(float16_t) Load 94 - 96: 35(ptr) AccessChain 42(f16v) 90 - 97:28(float16_t) Load 96 - 98:28(float16_t) FSub 95 97 - Store 87(f16) 98 - 99: 35(ptr) AccessChain 42(f16v) 34 - 100:28(float16_t) Load 99 - 101: 35(ptr) AccessChain 42(f16v) 90 - 102:28(float16_t) Load 101 - 103:28(float16_t) FMul 100 102 - Store 87(f16) 103 - 104: 35(ptr) AccessChain 42(f16v) 34 - 105:28(float16_t) Load 104 - 106: 35(ptr) AccessChain 42(f16v) 90 - 107:28(float16_t) Load 106 - 108:28(float16_t) FDiv 105 107 - Store 87(f16) 108 - 112: 35(ptr) AccessChain 42(f16v) 34 - 113:28(float16_t) Load 112 - 114:28(float16_t) Load 87(f16) - 115: 109(bool) FUnordNotEqual 113 114 - Store 111(b) 115 - 116: 35(ptr) AccessChain 42(f16v) 90 - 117:28(float16_t) Load 116 - 118:28(float16_t) Load 87(f16) - 119: 109(bool) FOrdEqual 117 118 - Store 111(b) 119 - 120: 35(ptr) AccessChain 42(f16v) 34 - 121:28(float16_t) Load 120 - 122:28(float16_t) Load 87(f16) - 123: 109(bool) FOrdGreaterThan 121 122 - Store 111(b) 123 - 124: 35(ptr) AccessChain 42(f16v) 90 - 125:28(float16_t) Load 124 - 126:28(float16_t) Load 87(f16) - 127: 109(bool) FOrdLessThan 125 126 - Store 111(b) 127 - 128: 35(ptr) AccessChain 42(f16v) 34 - 129:28(float16_t) Load 128 - 130:28(float16_t) Load 87(f16) - 131: 109(bool) FOrdGreaterThanEqual 129 130 - Store 111(b) 131 - 132: 35(ptr) AccessChain 42(f16v) 90 - 133:28(float16_t) Load 132 - 134:28(float16_t) Load 87(f16) - 135: 109(bool) FOrdLessThanEqual 133 134 - Store 111(b) 135 - 136: 29(f16vec2) Load 42(f16v) - 137:28(float16_t) Load 87(f16) - 138: 29(f16vec2) VectorTimesScalar 136 137 - Store 42(f16v) 138 - 139: 62 Load 64(f16m) - 140:28(float16_t) Load 87(f16) - 141: 62 MatrixTimesScalar 139 140 - Store 64(f16m) 141 - 142: 62 Load 64(f16m) - 143: 29(f16vec2) Load 42(f16v) - 144: 29(f16vec2) MatrixTimesVector 142 143 - Store 42(f16v) 144 - 145: 29(f16vec2) Load 42(f16v) - 146: 62 Load 64(f16m) - 147: 29(f16vec2) VectorTimesMatrix 145 146 - Store 42(f16v) 147 - 148: 62 Load 64(f16m) - 149: 62 Load 64(f16m) - 150: 62 MatrixTimesMatrix 148 149 - Store 64(f16m) 150 - Return - FunctionEnd - 10(typeCast(): 2 Function None 3 - 11: Label - 153(f16v): 152(ptr) Variable Function - 156(bv): 155(ptr) Variable Function - 167(fv): 166(ptr) Variable Function - 175(dv): 174(ptr) Variable Function - 186(iv): 185(ptr) Variable Function - 193(uv): 192(ptr) Variable Function - 201(i64v): 200(ptr) Variable Function - 209(u64v): 208(ptr) Variable Function - 157: 154(bvec3) Load 156(bv) - 161:151(f16vec3) Select 157 160 159 - Store 153(f16v) 161 - 162:151(f16vec3) Load 153(f16v) - 163: 154(bvec3) FUnordNotEqual 162 159 - Store 156(bv) 163 - 168: 165(fvec3) Load 167(fv) - 169:151(f16vec3) FConvert 168 - Store 153(f16v) 169 - 170:151(f16vec3) Load 153(f16v) - 171: 165(fvec3) FConvert 170 - Store 167(fv) 171 - 176:173(f64vec3) Load 175(dv) - 177:151(f16vec3) FConvert 176 - Store 153(f16v) 177 - 178:173(f64vec3) Load 175(dv) - 179:172(float64_t) CompositeExtract 178 0 - 180:172(float64_t) CompositeExtract 178 1 - 181:172(float64_t) CompositeExtract 178 2 - 182:173(f64vec3) CompositeConstruct 179 180 181 - Store 175(dv) 182 - 187: 184(ivec3) Load 186(iv) - 188:151(f16vec3) ConvertSToF 187 - Store 153(f16v) 188 - 189:151(f16vec3) Load 153(f16v) - 190: 184(ivec3) ConvertFToS 189 - Store 186(iv) 190 - 194: 191(ivec3) Load 193(uv) - 195:151(f16vec3) ConvertUToF 194 - Store 153(f16v) 195 - 196:151(f16vec3) Load 153(f16v) - 197: 191(ivec3) ConvertFToU 196 - Store 193(uv) 197 - 202:199(i64vec3) Load 201(i64v) - 203:151(f16vec3) ConvertSToF 202 - Store 153(f16v) 203 - 204:151(f16vec3) Load 153(f16v) - 205:199(i64vec3) ConvertFToS 204 - Store 201(i64v) 205 - 210:207(i64vec3) Load 209(u64v) - 211:151(f16vec3) ConvertUToF 210 - Store 153(f16v) 211 - 212:151(f16vec3) Load 153(f16v) - 213:207(i64vec3) ConvertFToU 212 - Store 209(u64v) 213 - Return - FunctionEnd -12(builtinAngleTrigFuncs(): 2 Function None 3 - 13: Label - 216(f16v2): 215(ptr) Variable Function - 217(f16v1): 215(ptr) Variable Function - 218:214(f16vec4) Load 217(f16v1) - 219:214(f16vec4) ExtInst 1(GLSL.std.450) 11(Radians) 218 - Store 216(f16v2) 219 - 220:214(f16vec4) Load 217(f16v1) - 221:214(f16vec4) ExtInst 1(GLSL.std.450) 12(Degrees) 220 - Store 216(f16v2) 221 - 222:214(f16vec4) Load 217(f16v1) - 223:214(f16vec4) ExtInst 1(GLSL.std.450) 13(Sin) 222 - Store 216(f16v2) 223 - 224:214(f16vec4) Load 217(f16v1) - 225:214(f16vec4) ExtInst 1(GLSL.std.450) 14(Cos) 224 - Store 216(f16v2) 225 - 226:214(f16vec4) Load 217(f16v1) - 227:214(f16vec4) ExtInst 1(GLSL.std.450) 15(Tan) 226 - Store 216(f16v2) 227 - 228:214(f16vec4) Load 217(f16v1) - 229:214(f16vec4) ExtInst 1(GLSL.std.450) 16(Asin) 228 - Store 216(f16v2) 229 - 230:214(f16vec4) Load 217(f16v1) - 231:214(f16vec4) ExtInst 1(GLSL.std.450) 17(Acos) 230 - Store 216(f16v2) 231 - 232:214(f16vec4) Load 217(f16v1) - 233:214(f16vec4) Load 216(f16v2) - 234:214(f16vec4) ExtInst 1(GLSL.std.450) 25(Atan2) 232 233 - Store 216(f16v2) 234 - 235:214(f16vec4) Load 217(f16v1) - 236:214(f16vec4) ExtInst 1(GLSL.std.450) 18(Atan) 235 - Store 216(f16v2) 236 - 237:214(f16vec4) Load 217(f16v1) - 238:214(f16vec4) ExtInst 1(GLSL.std.450) 19(Sinh) 237 - Store 216(f16v2) 238 - 239:214(f16vec4) Load 217(f16v1) - 240:214(f16vec4) ExtInst 1(GLSL.std.450) 20(Cosh) 239 - Store 216(f16v2) 240 - 241:214(f16vec4) Load 217(f16v1) - 242:214(f16vec4) ExtInst 1(GLSL.std.450) 21(Tanh) 241 - Store 216(f16v2) 242 - 243:214(f16vec4) Load 217(f16v1) - 244:214(f16vec4) ExtInst 1(GLSL.std.450) 22(Asinh) 243 - Store 216(f16v2) 244 - 245:214(f16vec4) Load 217(f16v1) - 246:214(f16vec4) ExtInst 1(GLSL.std.450) 23(Acosh) 245 - Store 216(f16v2) 246 - 247:214(f16vec4) Load 217(f16v1) - 248:214(f16vec4) ExtInst 1(GLSL.std.450) 24(Atanh) 247 - Store 216(f16v2) 248 - Return - FunctionEnd -14(builtinExpFuncs(): 2 Function None 3 - 15: Label - 249(f16v2): 30(ptr) Variable Function - 250(f16v1): 30(ptr) Variable Function - 251: 29(f16vec2) Load 250(f16v1) - 252: 29(f16vec2) Load 249(f16v2) - 253: 29(f16vec2) ExtInst 1(GLSL.std.450) 26(Pow) 251 252 - Store 249(f16v2) 253 - 254: 29(f16vec2) Load 250(f16v1) - 255: 29(f16vec2) ExtInst 1(GLSL.std.450) 27(Exp) 254 - Store 249(f16v2) 255 - 256: 29(f16vec2) Load 250(f16v1) - 257: 29(f16vec2) ExtInst 1(GLSL.std.450) 28(Log) 256 - Store 249(f16v2) 257 - 258: 29(f16vec2) Load 250(f16v1) - 259: 29(f16vec2) ExtInst 1(GLSL.std.450) 29(Exp2) 258 - Store 249(f16v2) 259 - 260: 29(f16vec2) Load 250(f16v1) - 261: 29(f16vec2) ExtInst 1(GLSL.std.450) 30(Log2) 260 - Store 249(f16v2) 261 - 262: 29(f16vec2) Load 250(f16v1) - 263: 29(f16vec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 262 - Store 249(f16v2) 263 - 264: 29(f16vec2) Load 250(f16v1) - 265: 29(f16vec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 264 - Store 249(f16v2) 265 - Return - FunctionEnd -16(builtinCommonFuncs(): 2 Function None 3 - 17: Label - 266(f16v2): 152(ptr) Variable Function - 267(f16v1): 152(ptr) Variable Function - 288(f16): 35(ptr) Variable Function - 292(f16v3): 152(ptr) Variable Function - 332(bv): 155(ptr) Variable Function - 353(b): 110(ptr) Variable Function - 363(iv): 185(ptr) Variable Function - 268:151(f16vec3) Load 267(f16v1) - 269:151(f16vec3) ExtInst 1(GLSL.std.450) 4(FAbs) 268 - Store 266(f16v2) 269 - 270:151(f16vec3) Load 267(f16v1) - 271:151(f16vec3) ExtInst 1(GLSL.std.450) 6(FSign) 270 - Store 266(f16v2) 271 - 272:151(f16vec3) Load 267(f16v1) - 273:151(f16vec3) ExtInst 1(GLSL.std.450) 8(Floor) 272 - Store 266(f16v2) 273 - 274:151(f16vec3) Load 267(f16v1) - 275:151(f16vec3) ExtInst 1(GLSL.std.450) 3(Trunc) 274 - Store 266(f16v2) 275 - 276:151(f16vec3) Load 267(f16v1) - 277:151(f16vec3) ExtInst 1(GLSL.std.450) 1(Round) 276 - Store 266(f16v2) 277 - 278:151(f16vec3) Load 267(f16v1) - 279:151(f16vec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 278 - Store 266(f16v2) 279 - 280:151(f16vec3) Load 267(f16v1) - 281:151(f16vec3) ExtInst 1(GLSL.std.450) 9(Ceil) 280 - Store 266(f16v2) 281 - 282:151(f16vec3) Load 267(f16v1) - 283:151(f16vec3) ExtInst 1(GLSL.std.450) 10(Fract) 282 - Store 266(f16v2) 283 - 284:151(f16vec3) Load 267(f16v1) - 285:151(f16vec3) Load 266(f16v2) - 286:151(f16vec3) FMod 284 285 - Store 266(f16v2) 286 - 287:151(f16vec3) Load 267(f16v1) - 289:28(float16_t) Load 288(f16) - 290:151(f16vec3) CompositeConstruct 289 289 289 - 291:151(f16vec3) FMod 287 290 - Store 266(f16v2) 291 - 293:151(f16vec3) Load 267(f16v1) - 294:151(f16vec3) ExtInst 1(GLSL.std.450) 35(Modf) 293 266(f16v2) - Store 292(f16v3) 294 - 295:151(f16vec3) Load 267(f16v1) - 296:151(f16vec3) Load 266(f16v2) - 297:151(f16vec3) ExtInst 1(GLSL.std.450) 37(FMin) 295 296 - Store 292(f16v3) 297 - 298:151(f16vec3) Load 267(f16v1) - 299:28(float16_t) Load 288(f16) - 300:151(f16vec3) CompositeConstruct 299 299 299 - 301:151(f16vec3) ExtInst 1(GLSL.std.450) 37(FMin) 298 300 - Store 292(f16v3) 301 - 302:151(f16vec3) Load 267(f16v1) - 303:151(f16vec3) Load 266(f16v2) - 304:151(f16vec3) ExtInst 1(GLSL.std.450) 40(FMax) 302 303 - Store 292(f16v3) 304 - 305:151(f16vec3) Load 267(f16v1) - 306:28(float16_t) Load 288(f16) - 307:151(f16vec3) CompositeConstruct 306 306 306 - 308:151(f16vec3) ExtInst 1(GLSL.std.450) 40(FMax) 305 307 - Store 292(f16v3) 308 - 309:151(f16vec3) Load 267(f16v1) - 310:28(float16_t) Load 288(f16) - 311: 35(ptr) AccessChain 266(f16v2) 34 - 312:28(float16_t) Load 311 - 313:151(f16vec3) CompositeConstruct 310 310 310 - 314:151(f16vec3) CompositeConstruct 312 312 312 - 315:151(f16vec3) ExtInst 1(GLSL.std.450) 43(FClamp) 309 313 314 - Store 292(f16v3) 315 - 316:151(f16vec3) Load 267(f16v1) - 317:151(f16vec3) Load 266(f16v2) - 318:28(float16_t) Load 288(f16) - 319:151(f16vec3) CompositeConstruct 318 318 318 - 320:151(f16vec3) ExtInst 1(GLSL.std.450) 43(FClamp) 316 317 319 - Store 292(f16v3) 320 - 321:151(f16vec3) Load 267(f16v1) - 322:151(f16vec3) Load 266(f16v2) - 323:28(float16_t) Load 288(f16) - 324:151(f16vec3) CompositeConstruct 323 323 323 - 325:151(f16vec3) ExtInst 1(GLSL.std.450) 46(FMix) 321 322 324 - Store 292(f16v3) 325 - 326:151(f16vec3) Load 267(f16v1) - 327:151(f16vec3) Load 266(f16v2) - 328:151(f16vec3) Load 292(f16v3) - 329:151(f16vec3) ExtInst 1(GLSL.std.450) 46(FMix) 326 327 328 - Store 292(f16v3) 329 - 330:151(f16vec3) Load 267(f16v1) - 331:151(f16vec3) Load 266(f16v2) - 333: 154(bvec3) Load 332(bv) - 334:151(f16vec3) Select 333 331 330 - Store 292(f16v3) 334 - 335:151(f16vec3) Load 267(f16v1) - 336:151(f16vec3) Load 266(f16v2) - 337:151(f16vec3) ExtInst 1(GLSL.std.450) 48(Step) 335 336 - Store 292(f16v3) 337 - 338:28(float16_t) Load 288(f16) - 339:151(f16vec3) Load 292(f16v3) - 340:151(f16vec3) CompositeConstruct 338 338 338 - 341:151(f16vec3) ExtInst 1(GLSL.std.450) 48(Step) 340 339 - Store 292(f16v3) 341 - 342:151(f16vec3) Load 267(f16v1) - 343:151(f16vec3) Load 266(f16v2) - 344:151(f16vec3) Load 292(f16v3) - 345:151(f16vec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 342 343 344 - Store 292(f16v3) 345 - 346:28(float16_t) Load 288(f16) - 347: 35(ptr) AccessChain 267(f16v1) 34 - 348:28(float16_t) Load 347 - 349:151(f16vec3) Load 266(f16v2) - 350:151(f16vec3) CompositeConstruct 346 346 346 - 351:151(f16vec3) CompositeConstruct 348 348 348 - 352:151(f16vec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 350 351 349 - Store 292(f16v3) 352 - 354:28(float16_t) Load 288(f16) - 355: 109(bool) IsNan 354 - Store 353(b) 355 - 356:151(f16vec3) Load 267(f16v1) - 357: 154(bvec3) IsInf 356 - Store 332(bv) 357 - 358:151(f16vec3) Load 267(f16v1) - 359:151(f16vec3) Load 266(f16v2) - 360:151(f16vec3) Load 292(f16v3) - 361:151(f16vec3) ExtInst 1(GLSL.std.450) 50(Fma) 358 359 360 - Store 292(f16v3) 361 - 362:151(f16vec3) Load 267(f16v1) - 365:364(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 362 - 366: 184(ivec3) CompositeExtract 365 1 - Store 363(iv) 366 - 367:151(f16vec3) CompositeExtract 365 0 - Store 266(f16v2) 367 - 368:151(f16vec3) Load 267(f16v1) - 369: 184(ivec3) Load 363(iv) - 370:151(f16vec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 368 369 - Store 266(f16v2) 370 - Return - FunctionEnd -18(builtinPackUnpackFuncs(): 2 Function None 3 - 19: Label - 372(u): 371(ptr) Variable Function - 373(f16v): 30(ptr) Variable Function - 374: 29(f16vec2) Load 373(f16v) - 375: 33(int) Bitcast 374 - Store 372(u) 375 - 376: 33(int) Load 372(u) - 377: 29(f16vec2) Bitcast 376 - Store 373(f16v) 377 - Return - FunctionEnd -20(builtinGeometryFuncs(): 2 Function None 3 - 21: Label - 378(f16): 35(ptr) Variable Function - 379(f16v1): 152(ptr) Variable Function - 383(f16v2): 152(ptr) Variable Function - 389(f16v3): 152(ptr) Variable Function - 380:151(f16vec3) Load 379(f16v1) - 381:28(float16_t) ExtInst 1(GLSL.std.450) 66(Length) 380 - Store 378(f16) 381 - 382:151(f16vec3) Load 379(f16v1) - 384:151(f16vec3) Load 383(f16v2) - 385:28(float16_t) ExtInst 1(GLSL.std.450) 67(Distance) 382 384 - Store 378(f16) 385 - 386:151(f16vec3) Load 379(f16v1) - 387:151(f16vec3) Load 383(f16v2) - 388:28(float16_t) Dot 386 387 - Store 378(f16) 388 - 390:151(f16vec3) Load 379(f16v1) - 391:151(f16vec3) Load 383(f16v2) - 392:151(f16vec3) ExtInst 1(GLSL.std.450) 68(Cross) 390 391 - Store 389(f16v3) 392 - 393:151(f16vec3) Load 379(f16v1) - 394:151(f16vec3) ExtInst 1(GLSL.std.450) 69(Normalize) 393 - Store 383(f16v2) 394 - 395:151(f16vec3) Load 379(f16v1) - 396:151(f16vec3) Load 383(f16v2) - 397:151(f16vec3) Load 389(f16v3) - 398:151(f16vec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 395 396 397 - Store 389(f16v3) 398 - 399:151(f16vec3) Load 379(f16v1) - 400:151(f16vec3) Load 383(f16v2) - 401:151(f16vec3) ExtInst 1(GLSL.std.450) 71(Reflect) 399 400 - Store 389(f16v3) 401 - 402:151(f16vec3) Load 379(f16v1) - 403:151(f16vec3) Load 383(f16v2) - 404:28(float16_t) Load 378(f16) - 405:151(f16vec3) ExtInst 1(GLSL.std.450) 72(Refract) 402 403 404 - Store 389(f16v3) 405 - Return - FunctionEnd -22(builtinMatrixFuncs(): 2 Function None 3 - 23: Label - 408(f16m3): 407(ptr) Variable Function - 409(f16m1): 407(ptr) Variable Function - 411(f16m2): 407(ptr) Variable Function - 420(f16v1): 152(ptr) Variable Function - 422(f16v2): 30(ptr) Variable Function - 427(f16m4): 426(ptr) Variable Function - 430(f16): 35(ptr) Variable Function - 433(f16m5): 432(ptr) Variable Function - 438(f16m6): 437(ptr) Variable Function - 439(f16m7): 437(ptr) Variable Function - 410: 406 Load 409(f16m1) - 412: 406 Load 411(f16m2) - 413:151(f16vec3) CompositeExtract 410 0 - 414:151(f16vec3) CompositeExtract 412 0 - 415:151(f16vec3) FMul 413 414 - 416:151(f16vec3) CompositeExtract 410 1 - 417:151(f16vec3) CompositeExtract 412 1 - 418:151(f16vec3) FMul 416 417 - 419: 406 CompositeConstruct 415 418 - Store 408(f16m3) 419 - 421:151(f16vec3) Load 420(f16v1) - 423: 29(f16vec2) Load 422(f16v2) - 424: 406 OuterProduct 421 423 - Store 409(f16m1) 424 - 428: 406 Load 409(f16m1) - 429: 425 Transpose 428 - Store 427(f16m4) 429 - 434: 431 Load 433(f16m5) - 435:28(float16_t) ExtInst 1(GLSL.std.450) 33(Determinant) 434 - Store 430(f16) 435 - 440: 436 Load 439(f16m7) - 441: 436 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 440 - Store 438(f16m6) 441 - Return - FunctionEnd -24(builtinVecRelFuncs(): 2 Function None 3 - 25: Label - 442(bv): 155(ptr) Variable Function - 443(f16v1): 152(ptr) Variable Function - 445(f16v2): 152(ptr) Variable Function - 444:151(f16vec3) Load 443(f16v1) - 446:151(f16vec3) Load 445(f16v2) - 447: 154(bvec3) FOrdLessThan 444 446 - Store 442(bv) 447 - 448:151(f16vec3) Load 443(f16v1) - 449:151(f16vec3) Load 445(f16v2) - 450: 154(bvec3) FOrdLessThanEqual 448 449 - Store 442(bv) 450 - 451:151(f16vec3) Load 443(f16v1) - 452:151(f16vec3) Load 445(f16v2) - 453: 154(bvec3) FOrdGreaterThan 451 452 - Store 442(bv) 453 - 454:151(f16vec3) Load 443(f16v1) - 455:151(f16vec3) Load 445(f16v2) - 456: 154(bvec3) FOrdGreaterThanEqual 454 455 - Store 442(bv) 456 - 457:151(f16vec3) Load 443(f16v1) - 458:151(f16vec3) Load 445(f16v2) - 459: 154(bvec3) FOrdEqual 457 458 - Store 442(bv) 459 - 460:151(f16vec3) Load 443(f16v1) - 461:151(f16vec3) Load 445(f16v2) - 462: 154(bvec3) FUnordNotEqual 460 461 - Store 442(bv) 462 - Return - FunctionEnd -26(builtinFragProcFuncs(): 2 Function None 3 - 27: Label - 463(f16v): 152(ptr) Variable Function - 467: 466(ptr) AccessChain 465(if16v) 34 - 468:28(float16_t) Load 467 - 469:28(float16_t) DPdx 468 - 470: 35(ptr) AccessChain 463(f16v) 34 - Store 470 469 - 471: 466(ptr) AccessChain 465(if16v) 90 - 472:28(float16_t) Load 471 - 473:28(float16_t) DPdy 472 - 474: 35(ptr) AccessChain 463(f16v) 90 - Store 474 473 - 475:151(f16vec3) Load 465(if16v) - 476: 29(f16vec2) VectorShuffle 475 475 0 1 - 477: 29(f16vec2) DPdxFine 476 - 478: 35(ptr) AccessChain 463(f16v) 34 - 479:28(float16_t) CompositeExtract 477 0 - Store 478 479 - 480: 35(ptr) AccessChain 463(f16v) 90 - 481:28(float16_t) CompositeExtract 477 1 - Store 480 481 - 482:151(f16vec3) Load 465(if16v) - 483: 29(f16vec2) VectorShuffle 482 482 0 1 - 484: 29(f16vec2) DPdyFine 483 - 485: 35(ptr) AccessChain 463(f16v) 34 - 486:28(float16_t) CompositeExtract 484 0 - Store 485 486 - 487: 35(ptr) AccessChain 463(f16v) 90 - 488:28(float16_t) CompositeExtract 484 1 - Store 487 488 - 489:151(f16vec3) Load 465(if16v) - 490:151(f16vec3) DPdxCoarse 489 - Store 463(f16v) 490 - 491:151(f16vec3) Load 465(if16v) - 492:151(f16vec3) DPdxCoarse 491 - Store 463(f16v) 492 - 493: 466(ptr) AccessChain 465(if16v) 34 - 494:28(float16_t) Load 493 - 495:28(float16_t) Fwidth 494 - 496: 35(ptr) AccessChain 463(f16v) 34 - Store 496 495 - 497:151(f16vec3) Load 465(if16v) - 498: 29(f16vec2) VectorShuffle 497 497 0 1 - 499: 29(f16vec2) FwidthFine 498 - 500: 35(ptr) AccessChain 463(f16v) 34 - 501:28(float16_t) CompositeExtract 499 0 - Store 500 501 - 502: 35(ptr) AccessChain 463(f16v) 90 - 503:28(float16_t) CompositeExtract 499 1 - Store 502 503 - 504:151(f16vec3) Load 465(if16v) - 505:151(f16vec3) FwidthCoarse 504 - Store 463(f16v) 505 - 506: 466(ptr) AccessChain 465(if16v) 34 - 507:28(float16_t) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 506 - 508: 35(ptr) AccessChain 463(f16v) 34 - Store 508 507 - 510:151(f16vec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 465(if16v) 509 - 511: 29(f16vec2) VectorShuffle 510 510 0 1 - 512: 35(ptr) AccessChain 463(f16v) 34 - 513:28(float16_t) CompositeExtract 511 0 - Store 512 513 - 514: 35(ptr) AccessChain 463(f16v) 90 - 515:28(float16_t) CompositeExtract 511 1 - Store 514 515 - 518:151(f16vec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 465(if16v) 517 - Store 463(f16v) 518 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.float16Fetch.frag.out b/deps/glslang/Test/baseResults/spv.float16Fetch.frag.out deleted file mode 100644 index da4aa4dd..00000000 --- a/deps/glslang/Test/baseResults/spv.float16Fetch.frag.out +++ /dev/null @@ -1,7149 +0,0 @@ -spv.float16Fetch.frag -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 5979 - - Capability Shader - Capability Float16 - Capability ImageGatherExtended - Capability StorageImageMultisample - Capability ImageCubeArray - Capability ImageRect - Capability SampledRect - Capability InputAttachment - Capability SparseResidency - Capability MinLod - Capability Sampled1D - Capability Image1D - Capability SampledCubeArray - Capability SampledBuffer - Capability ImageBuffer - Capability ImageMSArray - Capability ImageQuery - Capability StorageInputOutput16 - Capability Float16ImageAMD - Capability ImageGatherBiasLodAMD - Extension "SPV_AMD_gpu_shader_half_float_fetch" - Extension "SPV_AMD_texture_gather_bias_lod" - Extension "SPV_KHR_16bit_storage" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 128 135 137 148 156 169 177 215 251 309 565 572 1393 1401 1409 1417 1425 1433 4311 4318 5969 5978 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_AMD_gpu_shader_half_float" - SourceExtension "GL_AMD_gpu_shader_half_float_fetch" - SourceExtension "GL_AMD_texture_gather_bias_lod" - SourceExtension "GL_ARB_sparse_texture2" - SourceExtension "GL_ARB_sparse_texture_clamp" - Name 4 "main" - Name 9 "testTexture(" - Name 11 "testTextureProj(" - Name 13 "testTextureLod(" - Name 15 "testTextureOffset(" - Name 17 "testTextureProjOffset(" - Name 19 "testTextureLodOffset(" - Name 21 "testTextureProjLodOffset(" - Name 23 "testTexelFetch(" - Name 25 "testTexelFetchOffset(" - Name 27 "testTextureGrad(" - Name 29 "testTextureGradOffset(" - Name 31 "testTextureProjGrad(" - Name 33 "testTextureProjGradoffset(" - Name 35 "testTextureGather(" - Name 37 "testTextureGatherOffset(" - Name 39 "testTextureGatherOffsets(" - Name 41 "testTextureGatherLod(" - Name 43 "testTextureGatherLodOffset(" - Name 45 "testTextureGatherLodOffsets(" - Name 50 "testTextureSize(" - Name 55 "testTextureQueryLod(" - Name 58 "testTextureQueryLevels(" - Name 60 "testTextureSamples(" - Name 62 "testImageLoad(" - Name 67 "testImageStore(vf164;" - Name 66 "data" - Name 69 "testSparseTexture(" - Name 71 "testSparseTextureLod(" - Name 73 "testSparseTextureOffset(" - Name 75 "testSparseTextureLodOffset(" - Name 77 "testSparseTextureGrad(" - Name 79 "testSparseTextureGradOffset(" - Name 81 "testSparseTexelFetch(" - Name 83 "testSparseTexelFetchOffset(" - Name 85 "testSparseTextureGather(" - Name 87 "testSparseTextureGatherOffset(" - Name 89 "testSparseTextureGatherOffsets(" - Name 91 "testSparseTextureGatherLod(" - Name 93 "testSparseTextureGatherLodOffset(" - Name 95 "testSparseTextureGatherLodOffsets(" - Name 97 "testSparseImageLoad(" - Name 99 "testSparseTextureClamp(" - Name 101 "testTextureClamp(" - Name 103 "testSparseTextureOffsetClamp(" - Name 105 "testTextureOffsetClamp(" - Name 107 "testSparseTextureGradClamp(" - Name 109 "testTextureGradClamp(" - Name 111 "testSparseTextureGradOffsetClamp(" - Name 113 "testTextureGradOffsetClamp(" - Name 115 "testCombinedTextureSampler(" - Name 117 "testSubpassLoad(" - Name 119 "texel" - Name 125 "s1D" - Name 128 "c1" - Name 135 "f16c1" - Name 137 "f16bias" - Name 145 "s2D" - Name 148 "c2" - Name 156 "f16c2" - Name 165 "s3D" - Name 169 "c3" - Name 177 "f16c3" - Name 186 "sCube" - Name 201 "s1DShadow" - Name 215 "compare" - Name 226 "s2DShadow" - Name 247 "sCubeShadow" - Name 251 "c4" - Name 271 "s1DArray" - Name 286 "s2DArray" - Name 301 "sCubeArray" - Name 309 "f16c4" - Name 318 "s1DArrayShadow" - Name 339 "s2DArrayShadow" - Name 359 "s2DRect" - Name 373 "s2DRectShadow" - Name 393 "sCubeArrayShadow" - Name 413 "texel" - Name 562 "texel" - Name 565 "lod" - Name 572 "f16lod" - Name 706 "texel" - Name 863 "texel" - Name 1012 "texel" - Name 1130 "texel" - Name 1244 "texel" - Name 1300 "sBuffer" - Name 1311 "s2DMS" - Name 1322 "s2DMSArray" - Name 1334 "texel" - Name 1390 "texel" - Name 1393 "dPdxy1" - Name 1401 "f16dPdxy1" - Name 1409 "dPdxy2" - Name 1417 "f16dPdxy2" - Name 1425 "dPdxy3" - Name 1433 "f16dPdxy3" - Name 1632 "texel" - Name 1820 "texel" - Name 2002 "texel" - Name 2184 "texel" - Name 2303 "texel" - Name 2375 "texel" - Name 2450 "texel" - Name 2502 "texel" - Name 2530 "texel" - Name 2559 "size" - Name 2777 "lod" - Name 2913 "levels" - Name 2982 "samples" - Name 2996 "texel" - Name 2999 "i1D" - Name 3008 "i2D" - Name 3017 "i3D" - Name 3026 "i2DRect" - Name 3035 "iCube" - Name 3044 "iBuffer" - Name 3053 "i1DArray" - Name 3062 "i2DArray" - Name 3071 "iCubeArray" - Name 3080 "i2DMS" - Name 3089 "i2DMSArray" - Name 3143 "texel" - Name 3146 "ResType" - Name 3182 "ResType" - Name 3286 "texel" - Name 3366 "texel" - Name 3456 "texel" - Name 3512 "texel" - Name 3672 "texel" - Name 3786 "texel" - Name 3838 "texel" - Name 3876 "texel" - Name 3994 "texel" - Name 4066 "texel" - Name 4148 "texel" - Name 4200 "texel" - Name 4228 "texel" - Name 4256 "texel" - Name 4308 "texel" - Name 4311 "lodClamp" - Name 4318 "f16lodClamp" - Name 4445 "texel" - Name 4652 "texel" - Name 4728 "texel" - Name 4872 "texel" - Name 5016 "texel" - Name 5242 "texel" - Name 5334 "texel" - Name 5506 "texel" - Name 5508 "t1D" - Name 5512 "s" - Name 5528 "t2D" - Name 5545 "t3D" - Name 5562 "tCube" - Name 5579 "sShadow" - Name 5643 "t1DArray" - Name 5660 "t2DArray" - Name 5677 "tCubeArray" - Name 5735 "t2DRect" - Name 5795 "subpass" - Name 5801 "subpassMS" - Name 5807 "result" - Name 5890 "param" - Name 5969 "fragColor" - Name 5973 "tBuffer" - Name 5975 "t2DMS" - Name 5977 "t2DMSArray" - Name 5978 "bias" - Decorate 125(s1D) DescriptorSet 0 - Decorate 125(s1D) Binding 0 - Decorate 128(c1) Location 0 - Decorate 135(f16c1) Location 11 - Decorate 137(f16bias) Location 16 - Decorate 145(s2D) DescriptorSet 0 - Decorate 145(s2D) Binding 1 - Decorate 148(c2) Location 1 - Decorate 156(f16c2) Location 12 - Decorate 165(s3D) DescriptorSet 0 - Decorate 165(s3D) Binding 2 - Decorate 169(c3) Location 2 - Decorate 177(f16c3) Location 13 - Decorate 186(sCube) DescriptorSet 0 - Decorate 186(sCube) Binding 4 - Decorate 201(s1DShadow) DescriptorSet 0 - Decorate 201(s1DShadow) Binding 11 - Decorate 215(compare) Location 4 - Decorate 226(s2DShadow) DescriptorSet 0 - Decorate 226(s2DShadow) Binding 12 - Decorate 247(sCubeShadow) DescriptorSet 0 - Decorate 247(sCubeShadow) Binding 14 - Decorate 251(c4) Location 3 - Decorate 271(s1DArray) DescriptorSet 0 - Decorate 271(s1DArray) Binding 7 - Decorate 286(s2DArray) DescriptorSet 0 - Decorate 286(s2DArray) Binding 8 - Decorate 301(sCubeArray) DescriptorSet 0 - Decorate 301(sCubeArray) Binding 9 - Decorate 309(f16c4) Location 14 - Decorate 318(s1DArrayShadow) DescriptorSet 0 - Decorate 318(s1DArrayShadow) Binding 15 - Decorate 339(s2DArrayShadow) DescriptorSet 0 - Decorate 339(s2DArrayShadow) Binding 16 - Decorate 359(s2DRect) DescriptorSet 0 - Decorate 359(s2DRect) Binding 3 - Decorate 373(s2DRectShadow) DescriptorSet 0 - Decorate 373(s2DRectShadow) Binding 13 - Decorate 393(sCubeArrayShadow) DescriptorSet 0 - Decorate 393(sCubeArrayShadow) Binding 17 - Decorate 565(lod) Location 5 - Decorate 572(f16lod) Location 15 - Decorate 1300(sBuffer) DescriptorSet 0 - Decorate 1300(sBuffer) Binding 5 - Decorate 1311(s2DMS) DescriptorSet 0 - Decorate 1311(s2DMS) Binding 6 - Decorate 1322(s2DMSArray) DescriptorSet 0 - Decorate 1322(s2DMSArray) Binding 10 - Decorate 1393(dPdxy1) Location 8 - Decorate 1401(f16dPdxy1) Location 18 - Decorate 1409(dPdxy2) Location 9 - Decorate 1417(f16dPdxy2) Location 19 - Decorate 1425(dPdxy3) Location 10 - Decorate 1433(f16dPdxy3) Location 20 - Decorate 2999(i1D) DescriptorSet 1 - Decorate 2999(i1D) Binding 0 - Decorate 3008(i2D) DescriptorSet 1 - Decorate 3008(i2D) Binding 1 - Decorate 3017(i3D) DescriptorSet 1 - Decorate 3017(i3D) Binding 2 - Decorate 3026(i2DRect) DescriptorSet 1 - Decorate 3026(i2DRect) Binding 3 - Decorate 3035(iCube) DescriptorSet 1 - Decorate 3035(iCube) Binding 4 - Decorate 3044(iBuffer) DescriptorSet 1 - Decorate 3044(iBuffer) Binding 8 - Decorate 3053(i1DArray) DescriptorSet 1 - Decorate 3053(i1DArray) Binding 5 - Decorate 3062(i2DArray) DescriptorSet 1 - Decorate 3062(i2DArray) Binding 6 - Decorate 3071(iCubeArray) DescriptorSet 1 - Decorate 3071(iCubeArray) Binding 7 - Decorate 3080(i2DMS) DescriptorSet 1 - Decorate 3080(i2DMS) Binding 9 - Decorate 3089(i2DMSArray) DescriptorSet 1 - Decorate 3089(i2DMSArray) Binding 10 - Decorate 4311(lodClamp) Location 7 - Decorate 4318(f16lodClamp) Location 17 - Decorate 5508(t1D) DescriptorSet 2 - Decorate 5508(t1D) Binding 0 - Decorate 5512(s) DescriptorSet 2 - Decorate 5512(s) Binding 11 - Decorate 5528(t2D) DescriptorSet 2 - Decorate 5528(t2D) Binding 1 - Decorate 5545(t3D) DescriptorSet 2 - Decorate 5545(t3D) Binding 2 - Decorate 5562(tCube) DescriptorSet 2 - Decorate 5562(tCube) Binding 4 - Decorate 5579(sShadow) DescriptorSet 2 - Decorate 5579(sShadow) Binding 12 - Decorate 5643(t1DArray) DescriptorSet 2 - Decorate 5643(t1DArray) Binding 5 - Decorate 5660(t2DArray) DescriptorSet 2 - Decorate 5660(t2DArray) Binding 6 - Decorate 5677(tCubeArray) DescriptorSet 2 - Decorate 5677(tCubeArray) Binding 7 - Decorate 5735(t2DRect) DescriptorSet 2 - Decorate 5735(t2DRect) Binding 3 - Decorate 5795(subpass) DescriptorSet 3 - Decorate 5795(subpass) Binding 0 - Decorate 5795(subpass) InputAttachmentIndex 0 - Decorate 5801(subpassMS) DescriptorSet 3 - Decorate 5801(subpassMS) Binding 1 - Decorate 5801(subpassMS) InputAttachmentIndex 0 - Decorate 5969(fragColor) Location 0 - Decorate 5973(tBuffer) DescriptorSet 2 - Decorate 5973(tBuffer) Binding 8 - Decorate 5975(t2DMS) DescriptorSet 2 - Decorate 5975(t2DMS) Binding 9 - Decorate 5977(t2DMSArray) DescriptorSet 2 - Decorate 5977(t2DMSArray) Binding 10 - Decorate 5978(bias) Location 6 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 16 - 7: TypeVector 6(float16_t) 4 - 8: TypeFunction 7(f16vec4) - 47: TypeInt 32 1 - 48: TypeVector 47(int) 4 - 49: TypeFunction 48(ivec4) - 52: TypeFloat 32 - 53: TypeVector 52(float) 2 - 54: TypeFunction 53(fvec2) - 57: TypeFunction 47(int) - 64: TypePointer Function 7(f16vec4) - 65: TypeFunction 2 64(ptr) - 120:6(float16_t) Constant 0 - 121: 7(f16vec4) ConstantComposite 120 120 120 120 - 122: TypeImage 6(float16_t) 1D sampled format:Unknown - 123: TypeSampledImage 122 - 124: TypePointer UniformConstant 123 - 125(s1D): 124(ptr) Variable UniformConstant - 127: TypePointer Input 52(float) - 128(c1): 127(ptr) Variable Input - 134: TypePointer Input 6(float16_t) - 135(f16c1): 134(ptr) Variable Input - 137(f16bias): 134(ptr) Variable Input - 142: TypeImage 6(float16_t) 2D sampled format:Unknown - 143: TypeSampledImage 142 - 144: TypePointer UniformConstant 143 - 145(s2D): 144(ptr) Variable UniformConstant - 147: TypePointer Input 53(fvec2) - 148(c2): 147(ptr) Variable Input - 154: TypeVector 6(float16_t) 2 - 155: TypePointer Input 154(f16vec2) - 156(f16c2): 155(ptr) Variable Input - 162: TypeImage 6(float16_t) 3D sampled format:Unknown - 163: TypeSampledImage 162 - 164: TypePointer UniformConstant 163 - 165(s3D): 164(ptr) Variable UniformConstant - 167: TypeVector 52(float) 3 - 168: TypePointer Input 167(fvec3) - 169(c3): 168(ptr) Variable Input - 175: TypeVector 6(float16_t) 3 - 176: TypePointer Input 175(f16vec3) - 177(f16c3): 176(ptr) Variable Input - 183: TypeImage 6(float16_t) Cube sampled format:Unknown - 184: TypeSampledImage 183 - 185: TypePointer UniformConstant 184 - 186(sCube): 185(ptr) Variable UniformConstant - 198: TypeImage 6(float16_t) 1D depth sampled format:Unknown - 199: TypeSampledImage 198 - 200: TypePointer UniformConstant 199 - 201(s1DShadow): 200(ptr) Variable UniformConstant - 206: TypeInt 32 0 - 207: 206(int) Constant 0 - 208: TypePointer Function 6(float16_t) - 215(compare): 127(ptr) Variable Input - 223: TypeImage 6(float16_t) 2D depth sampled format:Unknown - 224: TypeSampledImage 223 - 225: TypePointer UniformConstant 224 - 226(s2DShadow): 225(ptr) Variable UniformConstant - 244: TypeImage 6(float16_t) Cube depth sampled format:Unknown - 245: TypeSampledImage 244 - 246: TypePointer UniformConstant 245 -247(sCubeShadow): 246(ptr) Variable UniformConstant - 249: TypeVector 52(float) 4 - 250: TypePointer Input 249(fvec4) - 251(c4): 250(ptr) Variable Input - 268: TypeImage 6(float16_t) 1D array sampled format:Unknown - 269: TypeSampledImage 268 - 270: TypePointer UniformConstant 269 - 271(s1DArray): 270(ptr) Variable UniformConstant - 283: TypeImage 6(float16_t) 2D array sampled format:Unknown - 284: TypeSampledImage 283 - 285: TypePointer UniformConstant 284 - 286(s2DArray): 285(ptr) Variable UniformConstant - 298: TypeImage 6(float16_t) Cube array sampled format:Unknown - 299: TypeSampledImage 298 - 300: TypePointer UniformConstant 299 - 301(sCubeArray): 300(ptr) Variable UniformConstant - 308: TypePointer Input 7(f16vec4) - 309(f16c4): 308(ptr) Variable Input - 315: TypeImage 6(float16_t) 1D depth array sampled format:Unknown - 316: TypeSampledImage 315 - 317: TypePointer UniformConstant 316 -318(s1DArrayShadow): 317(ptr) Variable UniformConstant - 336: TypeImage 6(float16_t) 2D depth array sampled format:Unknown - 337: TypeSampledImage 336 - 338: TypePointer UniformConstant 337 -339(s2DArrayShadow): 338(ptr) Variable UniformConstant - 356: TypeImage 6(float16_t) Rect sampled format:Unknown - 357: TypeSampledImage 356 - 358: TypePointer UniformConstant 357 - 359(s2DRect): 358(ptr) Variable UniformConstant - 370: TypeImage 6(float16_t) Rect depth sampled format:Unknown - 371: TypeSampledImage 370 - 372: TypePointer UniformConstant 371 -373(s2DRectShadow): 372(ptr) Variable UniformConstant - 390: TypeImage 6(float16_t) Cube depth array sampled format:Unknown - 391: TypeSampledImage 390 - 392: TypePointer UniformConstant 391 -393(sCubeArrayShadow): 392(ptr) Variable UniformConstant - 565(lod): 127(ptr) Variable Input - 572(f16lod): 134(ptr) Variable Input - 709: 47(int) Constant 1 - 721: TypeVector 47(int) 2 - 722: 721(ivec2) ConstantComposite 709 709 - 734: TypeVector 47(int) 3 - 735: 734(ivec3) ConstantComposite 709 709 709 - 1297: TypeImage 6(float16_t) Buffer sampled format:Unknown - 1298: TypeSampledImage 1297 - 1299: TypePointer UniformConstant 1298 - 1300(sBuffer): 1299(ptr) Variable UniformConstant - 1308: TypeImage 6(float16_t) 2D multi-sampled sampled format:Unknown - 1309: TypeSampledImage 1308 - 1310: TypePointer UniformConstant 1309 - 1311(s2DMS): 1310(ptr) Variable UniformConstant - 1319: TypeImage 6(float16_t) 2D array multi-sampled sampled format:Unknown - 1320: TypeSampledImage 1319 - 1321: TypePointer UniformConstant 1320 -1322(s2DMSArray): 1321(ptr) Variable UniformConstant - 1326: 47(int) Constant 2 - 1393(dPdxy1): 127(ptr) Variable Input - 1401(f16dPdxy1): 134(ptr) Variable Input - 1409(dPdxy2): 147(ptr) Variable Input - 1417(f16dPdxy2): 155(ptr) Variable Input - 1425(dPdxy3): 168(ptr) Variable Input - 1433(f16dPdxy3): 176(ptr) Variable Input - 2187: 47(int) Constant 0 - 2378: 206(int) Constant 4 - 2379: TypeArray 721(ivec2) 2378 - 2380: 2379 ConstantComposite 722 722 722 722 - 2558: TypePointer Function 48(ivec4) - 2560: 48(ivec4) ConstantComposite 2187 2187 2187 2187 - 2566: TypePointer Function 47(int) - 2581: 206(int) Constant 1 - 2596: 206(int) Constant 2 - 2776: TypePointer Function 53(fvec2) - 2778: 52(float) Constant 0 - 2779: 53(fvec2) ConstantComposite 2778 2778 - 2997: TypeImage 6(float16_t) 1D nonsampled format:Rgba16f - 2998: TypePointer UniformConstant 2997 - 2999(i1D): 2998(ptr) Variable UniformConstant - 3006: TypeImage 6(float16_t) 2D nonsampled format:Rgba16f - 3007: TypePointer UniformConstant 3006 - 3008(i2D): 3007(ptr) Variable UniformConstant - 3015: TypeImage 6(float16_t) 3D nonsampled format:Rgba16f - 3016: TypePointer UniformConstant 3015 - 3017(i3D): 3016(ptr) Variable UniformConstant - 3024: TypeImage 6(float16_t) Rect nonsampled format:Rgba16f - 3025: TypePointer UniformConstant 3024 - 3026(i2DRect): 3025(ptr) Variable UniformConstant - 3033: TypeImage 6(float16_t) Cube nonsampled format:Rgba16f - 3034: TypePointer UniformConstant 3033 - 3035(iCube): 3034(ptr) Variable UniformConstant - 3042: TypeImage 6(float16_t) Buffer nonsampled format:Rgba16f - 3043: TypePointer UniformConstant 3042 - 3044(iBuffer): 3043(ptr) Variable UniformConstant - 3051: TypeImage 6(float16_t) 1D array nonsampled format:Rgba16f - 3052: TypePointer UniformConstant 3051 - 3053(i1DArray): 3052(ptr) Variable UniformConstant - 3060: TypeImage 6(float16_t) 2D array nonsampled format:Rgba16f - 3061: TypePointer UniformConstant 3060 - 3062(i2DArray): 3061(ptr) Variable UniformConstant - 3069: TypeImage 6(float16_t) Cube array nonsampled format:Rgba16f - 3070: TypePointer UniformConstant 3069 -3071(iCubeArray): 3070(ptr) Variable UniformConstant - 3078: TypeImage 6(float16_t) 2D multi-sampled nonsampled format:Rgba16f - 3079: TypePointer UniformConstant 3078 - 3080(i2DMS): 3079(ptr) Variable UniformConstant - 3087: TypeImage 6(float16_t) 2D array multi-sampled nonsampled format:Rgba16f - 3088: TypePointer UniformConstant 3087 -3089(i2DMSArray): 3088(ptr) Variable UniformConstant - 3146(ResType): TypeStruct 47(int) 7(f16vec4) - 3182(ResType): TypeStruct 47(int) 6(float16_t) - 4069: 721(ivec2) ConstantComposite 709 1326 - 4070: 47(int) Constant 3 - 4071: 47(int) Constant 4 - 4072: 721(ivec2) ConstantComposite 4070 4071 - 4073: 47(int) Constant 15 - 4074: 47(int) Constant 16 - 4075: 721(ivec2) ConstantComposite 4073 4074 - 4076: 47(int) Constant 4294967294 - 4077: 721(ivec2) ConstantComposite 4076 2187 - 4078: 2379 ConstantComposite 4069 4072 4075 4077 - 4311(lodClamp): 127(ptr) Variable Input -4318(f16lodClamp): 134(ptr) Variable Input - 5507: TypePointer UniformConstant 122 - 5508(t1D): 5507(ptr) Variable UniformConstant - 5510: TypeSampler - 5511: TypePointer UniformConstant 5510 - 5512(s): 5511(ptr) Variable UniformConstant - 5527: TypePointer UniformConstant 142 - 5528(t2D): 5527(ptr) Variable UniformConstant - 5544: TypePointer UniformConstant 162 - 5545(t3D): 5544(ptr) Variable UniformConstant - 5561: TypePointer UniformConstant 183 - 5562(tCube): 5561(ptr) Variable UniformConstant - 5579(sShadow): 5511(ptr) Variable UniformConstant - 5642: TypePointer UniformConstant 268 - 5643(t1DArray): 5642(ptr) Variable UniformConstant - 5659: TypePointer UniformConstant 283 - 5660(t2DArray): 5659(ptr) Variable UniformConstant - 5676: TypePointer UniformConstant 298 -5677(tCubeArray): 5676(ptr) Variable UniformConstant - 5734: TypePointer UniformConstant 356 - 5735(t2DRect): 5734(ptr) Variable UniformConstant - 5793: TypeImage 6(float16_t) SubpassData nonsampled format:Unknown - 5794: TypePointer UniformConstant 5793 - 5795(subpass): 5794(ptr) Variable UniformConstant - 5797: 721(ivec2) ConstantComposite 2187 2187 - 5799: TypeImage 6(float16_t) SubpassData multi-sampled nonsampled format:Unknown - 5800: TypePointer UniformConstant 5799 - 5801(subpassMS): 5800(ptr) Variable UniformConstant - 5968: TypePointer Output 249(fvec4) - 5969(fragColor): 5968(ptr) Variable Output - 5972: TypePointer UniformConstant 1297 - 5973(tBuffer): 5972(ptr) Variable UniformConstant - 5974: TypePointer UniformConstant 1308 - 5975(t2DMS): 5974(ptr) Variable UniformConstant - 5976: TypePointer UniformConstant 1319 -5977(t2DMSArray): 5976(ptr) Variable UniformConstant - 5978(bias): 127(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 5807(result): 64(ptr) Variable Function - 5890(param): 64(ptr) Variable Function - Store 5807(result) 121 - 5808: 7(f16vec4) FunctionCall 9(testTexture() - 5809: 7(f16vec4) Load 5807(result) - 5810: 7(f16vec4) FAdd 5809 5808 - Store 5807(result) 5810 - 5811: 7(f16vec4) FunctionCall 11(testTextureProj() - 5812: 7(f16vec4) Load 5807(result) - 5813: 7(f16vec4) FAdd 5812 5811 - Store 5807(result) 5813 - 5814: 7(f16vec4) FunctionCall 13(testTextureLod() - 5815: 7(f16vec4) Load 5807(result) - 5816: 7(f16vec4) FAdd 5815 5814 - Store 5807(result) 5816 - 5817: 7(f16vec4) FunctionCall 15(testTextureOffset() - 5818: 7(f16vec4) Load 5807(result) - 5819: 7(f16vec4) FAdd 5818 5817 - Store 5807(result) 5819 - 5820: 7(f16vec4) FunctionCall 19(testTextureLodOffset() - 5821: 7(f16vec4) Load 5807(result) - 5822: 7(f16vec4) FAdd 5821 5820 - Store 5807(result) 5822 - 5823: 7(f16vec4) FunctionCall 21(testTextureProjLodOffset() - 5824: 7(f16vec4) Load 5807(result) - 5825: 7(f16vec4) FAdd 5824 5823 - Store 5807(result) 5825 - 5826: 7(f16vec4) FunctionCall 23(testTexelFetch() - 5827: 7(f16vec4) Load 5807(result) - 5828: 7(f16vec4) FAdd 5827 5826 - Store 5807(result) 5828 - 5829: 7(f16vec4) FunctionCall 25(testTexelFetchOffset() - 5830: 7(f16vec4) Load 5807(result) - 5831: 7(f16vec4) FAdd 5830 5829 - Store 5807(result) 5831 - 5832: 7(f16vec4) FunctionCall 27(testTextureGrad() - 5833: 7(f16vec4) Load 5807(result) - 5834: 7(f16vec4) FAdd 5833 5832 - Store 5807(result) 5834 - 5835: 7(f16vec4) FunctionCall 29(testTextureGradOffset() - 5836: 7(f16vec4) Load 5807(result) - 5837: 7(f16vec4) FAdd 5836 5835 - Store 5807(result) 5837 - 5838: 7(f16vec4) FunctionCall 31(testTextureProjGrad() - 5839: 7(f16vec4) Load 5807(result) - 5840: 7(f16vec4) FAdd 5839 5838 - Store 5807(result) 5840 - 5841: 7(f16vec4) FunctionCall 33(testTextureProjGradoffset() - 5842: 7(f16vec4) Load 5807(result) - 5843: 7(f16vec4) FAdd 5842 5841 - Store 5807(result) 5843 - 5844: 7(f16vec4) FunctionCall 35(testTextureGather() - 5845: 7(f16vec4) Load 5807(result) - 5846: 7(f16vec4) FAdd 5845 5844 - Store 5807(result) 5846 - 5847: 7(f16vec4) FunctionCall 37(testTextureGatherOffset() - 5848: 7(f16vec4) Load 5807(result) - 5849: 7(f16vec4) FAdd 5848 5847 - Store 5807(result) 5849 - 5850: 7(f16vec4) FunctionCall 39(testTextureGatherOffsets() - 5851: 7(f16vec4) Load 5807(result) - 5852: 7(f16vec4) FAdd 5851 5850 - Store 5807(result) 5852 - 5853: 7(f16vec4) FunctionCall 41(testTextureGatherLod() - 5854: 7(f16vec4) Load 5807(result) - 5855: 7(f16vec4) FAdd 5854 5853 - Store 5807(result) 5855 - 5856: 7(f16vec4) FunctionCall 43(testTextureGatherLodOffset() - 5857: 7(f16vec4) Load 5807(result) - 5858: 7(f16vec4) FAdd 5857 5856 - Store 5807(result) 5858 - 5859: 7(f16vec4) FunctionCall 45(testTextureGatherLodOffsets() - 5860: 7(f16vec4) Load 5807(result) - 5861: 7(f16vec4) FAdd 5860 5859 - Store 5807(result) 5861 - 5862: 48(ivec4) FunctionCall 50(testTextureSize() - 5863: 7(f16vec4) ConvertSToF 5862 - 5864: 7(f16vec4) Load 5807(result) - 5865: 7(f16vec4) FAdd 5864 5863 - Store 5807(result) 5865 - 5866: 53(fvec2) FunctionCall 55(testTextureQueryLod() - 5867:154(f16vec2) FConvert 5866 - 5868: 7(f16vec4) Load 5807(result) - 5869:154(f16vec2) VectorShuffle 5868 5868 0 1 - 5870:154(f16vec2) FAdd 5869 5867 - 5871: 208(ptr) AccessChain 5807(result) 207 - 5872:6(float16_t) CompositeExtract 5870 0 - Store 5871 5872 - 5873: 208(ptr) AccessChain 5807(result) 2581 - 5874:6(float16_t) CompositeExtract 5870 1 - Store 5873 5874 - 5875: 47(int) FunctionCall 58(testTextureQueryLevels() - 5876:6(float16_t) ConvertSToF 5875 - 5877: 208(ptr) AccessChain 5807(result) 207 - 5878:6(float16_t) Load 5877 - 5879:6(float16_t) FAdd 5878 5876 - 5880: 208(ptr) AccessChain 5807(result) 207 - Store 5880 5879 - 5881: 47(int) FunctionCall 60(testTextureSamples() - 5882:6(float16_t) ConvertSToF 5881 - 5883: 208(ptr) AccessChain 5807(result) 207 - 5884:6(float16_t) Load 5883 - 5885:6(float16_t) FAdd 5884 5882 - 5886: 208(ptr) AccessChain 5807(result) 207 - Store 5886 5885 - 5887: 7(f16vec4) FunctionCall 62(testImageLoad() - 5888: 7(f16vec4) Load 5807(result) - 5889: 7(f16vec4) FAdd 5888 5887 - Store 5807(result) 5889 - 5891: 7(f16vec4) Load 5807(result) - Store 5890(param) 5891 - 5892: 2 FunctionCall 67(testImageStore(vf164;) 5890(param) - 5893: 7(f16vec4) FunctionCall 69(testSparseTexture() - 5894: 7(f16vec4) Load 5807(result) - 5895: 7(f16vec4) FAdd 5894 5893 - Store 5807(result) 5895 - 5896: 7(f16vec4) FunctionCall 71(testSparseTextureLod() - 5897: 7(f16vec4) Load 5807(result) - 5898: 7(f16vec4) FAdd 5897 5896 - Store 5807(result) 5898 - 5899: 7(f16vec4) FunctionCall 73(testSparseTextureOffset() - 5900: 7(f16vec4) Load 5807(result) - 5901: 7(f16vec4) FAdd 5900 5899 - Store 5807(result) 5901 - 5902: 7(f16vec4) FunctionCall 75(testSparseTextureLodOffset() - 5903: 7(f16vec4) Load 5807(result) - 5904: 7(f16vec4) FAdd 5903 5902 - Store 5807(result) 5904 - 5905: 7(f16vec4) FunctionCall 77(testSparseTextureGrad() - 5906: 7(f16vec4) Load 5807(result) - 5907: 7(f16vec4) FAdd 5906 5905 - Store 5807(result) 5907 - 5908: 7(f16vec4) FunctionCall 79(testSparseTextureGradOffset() - 5909: 7(f16vec4) Load 5807(result) - 5910: 7(f16vec4) FAdd 5909 5908 - Store 5807(result) 5910 - 5911: 7(f16vec4) FunctionCall 81(testSparseTexelFetch() - 5912: 7(f16vec4) Load 5807(result) - 5913: 7(f16vec4) FAdd 5912 5911 - Store 5807(result) 5913 - 5914: 7(f16vec4) FunctionCall 83(testSparseTexelFetchOffset() - 5915: 7(f16vec4) Load 5807(result) - 5916: 7(f16vec4) FAdd 5915 5914 - Store 5807(result) 5916 - 5917: 7(f16vec4) FunctionCall 85(testSparseTextureGather() - 5918: 7(f16vec4) Load 5807(result) - 5919: 7(f16vec4) FAdd 5918 5917 - Store 5807(result) 5919 - 5920: 7(f16vec4) FunctionCall 87(testSparseTextureGatherOffset() - 5921: 7(f16vec4) Load 5807(result) - 5922: 7(f16vec4) FAdd 5921 5920 - Store 5807(result) 5922 - 5923: 7(f16vec4) FunctionCall 89(testSparseTextureGatherOffsets() - 5924: 7(f16vec4) Load 5807(result) - 5925: 7(f16vec4) FAdd 5924 5923 - Store 5807(result) 5925 - 5926: 7(f16vec4) FunctionCall 91(testSparseTextureGatherLod() - 5927: 7(f16vec4) Load 5807(result) - 5928: 7(f16vec4) FAdd 5927 5926 - Store 5807(result) 5928 - 5929: 7(f16vec4) FunctionCall 93(testSparseTextureGatherLodOffset() - 5930: 7(f16vec4) Load 5807(result) - 5931: 7(f16vec4) FAdd 5930 5929 - Store 5807(result) 5931 - 5932: 7(f16vec4) FunctionCall 95(testSparseTextureGatherLodOffsets() - 5933: 7(f16vec4) Load 5807(result) - 5934: 7(f16vec4) FAdd 5933 5932 - Store 5807(result) 5934 - 5935: 7(f16vec4) FunctionCall 97(testSparseImageLoad() - 5936: 7(f16vec4) Load 5807(result) - 5937: 7(f16vec4) FAdd 5936 5935 - Store 5807(result) 5937 - 5938: 7(f16vec4) FunctionCall 99(testSparseTextureClamp() - 5939: 7(f16vec4) Load 5807(result) - 5940: 7(f16vec4) FAdd 5939 5938 - Store 5807(result) 5940 - 5941: 7(f16vec4) FunctionCall 101(testTextureClamp() - 5942: 7(f16vec4) Load 5807(result) - 5943: 7(f16vec4) FAdd 5942 5941 - Store 5807(result) 5943 - 5944: 7(f16vec4) FunctionCall 103(testSparseTextureOffsetClamp() - 5945: 7(f16vec4) Load 5807(result) - 5946: 7(f16vec4) FAdd 5945 5944 - Store 5807(result) 5946 - 5947: 7(f16vec4) FunctionCall 105(testTextureOffsetClamp() - 5948: 7(f16vec4) Load 5807(result) - 5949: 7(f16vec4) FAdd 5948 5947 - Store 5807(result) 5949 - 5950: 7(f16vec4) FunctionCall 77(testSparseTextureGrad() - 5951: 7(f16vec4) Load 5807(result) - 5952: 7(f16vec4) FAdd 5951 5950 - Store 5807(result) 5952 - 5953: 7(f16vec4) FunctionCall 27(testTextureGrad() - 5954: 7(f16vec4) Load 5807(result) - 5955: 7(f16vec4) FAdd 5954 5953 - Store 5807(result) 5955 - 5956: 7(f16vec4) FunctionCall 111(testSparseTextureGradOffsetClamp() - 5957: 7(f16vec4) Load 5807(result) - 5958: 7(f16vec4) FAdd 5957 5956 - Store 5807(result) 5958 - 5959: 7(f16vec4) FunctionCall 113(testTextureGradOffsetClamp() - 5960: 7(f16vec4) Load 5807(result) - 5961: 7(f16vec4) FAdd 5960 5959 - Store 5807(result) 5961 - 5962: 7(f16vec4) FunctionCall 115(testCombinedTextureSampler() - 5963: 7(f16vec4) Load 5807(result) - 5964: 7(f16vec4) FAdd 5963 5962 - Store 5807(result) 5964 - 5965: 7(f16vec4) FunctionCall 117(testSubpassLoad() - 5966: 7(f16vec4) Load 5807(result) - 5967: 7(f16vec4) FAdd 5966 5965 - Store 5807(result) 5967 - 5970: 7(f16vec4) Load 5807(result) - 5971: 249(fvec4) FConvert 5970 - Store 5969(fragColor) 5971 - Return - FunctionEnd - 9(testTexture(): 7(f16vec4) Function None 8 - 10: Label - 119(texel): 64(ptr) Variable Function - Store 119(texel) 121 - 126: 123 Load 125(s1D) - 129: 52(float) Load 128(c1) - 130: 7(f16vec4) ImageSampleImplicitLod 126 129 - 131: 7(f16vec4) Load 119(texel) - 132: 7(f16vec4) FAdd 131 130 - Store 119(texel) 132 - 133: 123 Load 125(s1D) - 136:6(float16_t) Load 135(f16c1) - 138:6(float16_t) Load 137(f16bias) - 139: 7(f16vec4) ImageSampleImplicitLod 133 136 Bias 138 - 140: 7(f16vec4) Load 119(texel) - 141: 7(f16vec4) FAdd 140 139 - Store 119(texel) 141 - 146: 143 Load 145(s2D) - 149: 53(fvec2) Load 148(c2) - 150: 7(f16vec4) ImageSampleImplicitLod 146 149 - 151: 7(f16vec4) Load 119(texel) - 152: 7(f16vec4) FAdd 151 150 - Store 119(texel) 152 - 153: 143 Load 145(s2D) - 157:154(f16vec2) Load 156(f16c2) - 158:6(float16_t) Load 137(f16bias) - 159: 7(f16vec4) ImageSampleImplicitLod 153 157 Bias 158 - 160: 7(f16vec4) Load 119(texel) - 161: 7(f16vec4) FAdd 160 159 - Store 119(texel) 161 - 166: 163 Load 165(s3D) - 170: 167(fvec3) Load 169(c3) - 171: 7(f16vec4) ImageSampleImplicitLod 166 170 - 172: 7(f16vec4) Load 119(texel) - 173: 7(f16vec4) FAdd 172 171 - Store 119(texel) 173 - 174: 163 Load 165(s3D) - 178:175(f16vec3) Load 177(f16c3) - 179:6(float16_t) Load 137(f16bias) - 180: 7(f16vec4) ImageSampleImplicitLod 174 178 Bias 179 - 181: 7(f16vec4) Load 119(texel) - 182: 7(f16vec4) FAdd 181 180 - Store 119(texel) 182 - 187: 184 Load 186(sCube) - 188: 167(fvec3) Load 169(c3) - 189: 7(f16vec4) ImageSampleImplicitLod 187 188 - 190: 7(f16vec4) Load 119(texel) - 191: 7(f16vec4) FAdd 190 189 - Store 119(texel) 191 - 192: 184 Load 186(sCube) - 193:175(f16vec3) Load 177(f16c3) - 194:6(float16_t) Load 137(f16bias) - 195: 7(f16vec4) ImageSampleImplicitLod 192 193 Bias 194 - 196: 7(f16vec4) Load 119(texel) - 197: 7(f16vec4) FAdd 196 195 - Store 119(texel) 197 - 202: 199 Load 201(s1DShadow) - 203: 167(fvec3) Load 169(c3) - 204: 52(float) CompositeExtract 203 2 - 205:6(float16_t) ImageSampleDrefImplicitLod 202 203 204 - 209: 208(ptr) AccessChain 119(texel) 207 - 210:6(float16_t) Load 209 - 211:6(float16_t) FAdd 210 205 - 212: 208(ptr) AccessChain 119(texel) 207 - Store 212 211 - 213: 199 Load 201(s1DShadow) - 214:154(f16vec2) Load 156(f16c2) - 216: 52(float) Load 215(compare) - 217:6(float16_t) Load 137(f16bias) - 218:6(float16_t) ImageSampleDrefImplicitLod 213 214 216 Bias 217 - 219: 208(ptr) AccessChain 119(texel) 207 - 220:6(float16_t) Load 219 - 221:6(float16_t) FAdd 220 218 - 222: 208(ptr) AccessChain 119(texel) 207 - Store 222 221 - 227: 224 Load 226(s2DShadow) - 228: 167(fvec3) Load 169(c3) - 229: 52(float) CompositeExtract 228 2 - 230:6(float16_t) ImageSampleDrefImplicitLod 227 228 229 - 231: 208(ptr) AccessChain 119(texel) 207 - 232:6(float16_t) Load 231 - 233:6(float16_t) FAdd 232 230 - 234: 208(ptr) AccessChain 119(texel) 207 - Store 234 233 - 235: 224 Load 226(s2DShadow) - 236:154(f16vec2) Load 156(f16c2) - 237: 52(float) Load 215(compare) - 238:6(float16_t) Load 137(f16bias) - 239:6(float16_t) ImageSampleDrefImplicitLod 235 236 237 Bias 238 - 240: 208(ptr) AccessChain 119(texel) 207 - 241:6(float16_t) Load 240 - 242:6(float16_t) FAdd 241 239 - 243: 208(ptr) AccessChain 119(texel) 207 - Store 243 242 - 248: 245 Load 247(sCubeShadow) - 252: 249(fvec4) Load 251(c4) - 253: 52(float) CompositeExtract 252 3 - 254:6(float16_t) ImageSampleDrefImplicitLod 248 252 253 - 255: 208(ptr) AccessChain 119(texel) 207 - 256:6(float16_t) Load 255 - 257:6(float16_t) FAdd 256 254 - 258: 208(ptr) AccessChain 119(texel) 207 - Store 258 257 - 259: 245 Load 247(sCubeShadow) - 260:175(f16vec3) Load 177(f16c3) - 261: 52(float) Load 215(compare) - 262:6(float16_t) Load 137(f16bias) - 263:6(float16_t) ImageSampleDrefImplicitLod 259 260 261 Bias 262 - 264: 208(ptr) AccessChain 119(texel) 207 - 265:6(float16_t) Load 264 - 266:6(float16_t) FAdd 265 263 - 267: 208(ptr) AccessChain 119(texel) 207 - Store 267 266 - 272: 269 Load 271(s1DArray) - 273: 53(fvec2) Load 148(c2) - 274: 7(f16vec4) ImageSampleImplicitLod 272 273 - 275: 7(f16vec4) Load 119(texel) - 276: 7(f16vec4) FAdd 275 274 - Store 119(texel) 276 - 277: 269 Load 271(s1DArray) - 278:154(f16vec2) Load 156(f16c2) - 279:6(float16_t) Load 137(f16bias) - 280: 7(f16vec4) ImageSampleImplicitLod 277 278 Bias 279 - 281: 7(f16vec4) Load 119(texel) - 282: 7(f16vec4) FAdd 281 280 - Store 119(texel) 282 - 287: 284 Load 286(s2DArray) - 288: 167(fvec3) Load 169(c3) - 289: 7(f16vec4) ImageSampleImplicitLod 287 288 - 290: 7(f16vec4) Load 119(texel) - 291: 7(f16vec4) FAdd 290 289 - Store 119(texel) 291 - 292: 284 Load 286(s2DArray) - 293:175(f16vec3) Load 177(f16c3) - 294:6(float16_t) Load 137(f16bias) - 295: 7(f16vec4) ImageSampleImplicitLod 292 293 Bias 294 - 296: 7(f16vec4) Load 119(texel) - 297: 7(f16vec4) FAdd 296 295 - Store 119(texel) 297 - 302: 299 Load 301(sCubeArray) - 303: 249(fvec4) Load 251(c4) - 304: 7(f16vec4) ImageSampleImplicitLod 302 303 - 305: 7(f16vec4) Load 119(texel) - 306: 7(f16vec4) FAdd 305 304 - Store 119(texel) 306 - 307: 299 Load 301(sCubeArray) - 310: 7(f16vec4) Load 309(f16c4) - 311:6(float16_t) Load 137(f16bias) - 312: 7(f16vec4) ImageSampleImplicitLod 307 310 Bias 311 - 313: 7(f16vec4) Load 119(texel) - 314: 7(f16vec4) FAdd 313 312 - Store 119(texel) 314 - 319: 316 Load 318(s1DArrayShadow) - 320: 167(fvec3) Load 169(c3) - 321: 52(float) CompositeExtract 320 2 - 322:6(float16_t) ImageSampleDrefImplicitLod 319 320 321 - 323: 208(ptr) AccessChain 119(texel) 207 - 324:6(float16_t) Load 323 - 325:6(float16_t) FAdd 324 322 - 326: 208(ptr) AccessChain 119(texel) 207 - Store 326 325 - 327: 316 Load 318(s1DArrayShadow) - 328:154(f16vec2) Load 156(f16c2) - 329: 52(float) Load 215(compare) - 330:6(float16_t) Load 137(f16bias) - 331:6(float16_t) ImageSampleDrefImplicitLod 327 328 329 Bias 330 - 332: 208(ptr) AccessChain 119(texel) 207 - 333:6(float16_t) Load 332 - 334:6(float16_t) FAdd 333 331 - 335: 208(ptr) AccessChain 119(texel) 207 - Store 335 334 - 340: 337 Load 339(s2DArrayShadow) - 341: 249(fvec4) Load 251(c4) - 342: 52(float) CompositeExtract 341 3 - 343:6(float16_t) ImageSampleDrefImplicitLod 340 341 342 - 344: 208(ptr) AccessChain 119(texel) 207 - 345:6(float16_t) Load 344 - 346:6(float16_t) FAdd 345 343 - 347: 208(ptr) AccessChain 119(texel) 207 - Store 347 346 - 348: 337 Load 339(s2DArrayShadow) - 349:175(f16vec3) Load 177(f16c3) - 350: 52(float) Load 215(compare) - 351:6(float16_t) ImageSampleDrefImplicitLod 348 349 350 - 352: 208(ptr) AccessChain 119(texel) 207 - 353:6(float16_t) Load 352 - 354:6(float16_t) FAdd 353 351 - 355: 208(ptr) AccessChain 119(texel) 207 - Store 355 354 - 360: 357 Load 359(s2DRect) - 361: 53(fvec2) Load 148(c2) - 362: 7(f16vec4) ImageSampleImplicitLod 360 361 - 363: 7(f16vec4) Load 119(texel) - 364: 7(f16vec4) FAdd 363 362 - Store 119(texel) 364 - 365: 357 Load 359(s2DRect) - 366:154(f16vec2) Load 156(f16c2) - 367: 7(f16vec4) ImageSampleImplicitLod 365 366 - 368: 7(f16vec4) Load 119(texel) - 369: 7(f16vec4) FAdd 368 367 - Store 119(texel) 369 - 374: 371 Load 373(s2DRectShadow) - 375: 167(fvec3) Load 169(c3) - 376: 52(float) CompositeExtract 375 2 - 377:6(float16_t) ImageSampleDrefImplicitLod 374 375 376 - 378: 208(ptr) AccessChain 119(texel) 207 - 379:6(float16_t) Load 378 - 380:6(float16_t) FAdd 379 377 - 381: 208(ptr) AccessChain 119(texel) 207 - Store 381 380 - 382: 371 Load 373(s2DRectShadow) - 383:154(f16vec2) Load 156(f16c2) - 384: 52(float) Load 215(compare) - 385:6(float16_t) ImageSampleDrefImplicitLod 382 383 384 - 386: 208(ptr) AccessChain 119(texel) 207 - 387:6(float16_t) Load 386 - 388:6(float16_t) FAdd 387 385 - 389: 208(ptr) AccessChain 119(texel) 207 - Store 389 388 - 394: 391 Load 393(sCubeArrayShadow) - 395: 249(fvec4) Load 251(c4) - 396: 52(float) Load 215(compare) - 397:6(float16_t) ImageSampleDrefImplicitLod 394 395 396 - 398: 208(ptr) AccessChain 119(texel) 207 - 399:6(float16_t) Load 398 - 400:6(float16_t) FAdd 399 397 - 401: 208(ptr) AccessChain 119(texel) 207 - Store 401 400 - 402: 391 Load 393(sCubeArrayShadow) - 403: 7(f16vec4) Load 309(f16c4) - 404: 52(float) Load 215(compare) - 405:6(float16_t) ImageSampleDrefImplicitLod 402 403 404 - 406: 208(ptr) AccessChain 119(texel) 207 - 407:6(float16_t) Load 406 - 408:6(float16_t) FAdd 407 405 - 409: 208(ptr) AccessChain 119(texel) 207 - Store 409 408 - 410: 7(f16vec4) Load 119(texel) - ReturnValue 410 - FunctionEnd -11(testTextureProj(): 7(f16vec4) Function None 8 - 12: Label - 413(texel): 64(ptr) Variable Function - Store 413(texel) 121 - 414: 123 Load 125(s1D) - 415: 53(fvec2) Load 148(c2) - 416: 7(f16vec4) ImageSampleProjImplicitLod 414 415 - 417: 7(f16vec4) Load 413(texel) - 418: 7(f16vec4) FAdd 417 416 - Store 413(texel) 418 - 419: 123 Load 125(s1D) - 420:154(f16vec2) Load 156(f16c2) - 421:6(float16_t) Load 137(f16bias) - 422: 7(f16vec4) ImageSampleProjImplicitLod 419 420 Bias 421 - 423: 7(f16vec4) Load 413(texel) - 424: 7(f16vec4) FAdd 423 422 - Store 413(texel) 424 - 425: 123 Load 125(s1D) - 426: 249(fvec4) Load 251(c4) - 427: 52(float) CompositeExtract 426 3 - 428: 249(fvec4) CompositeInsert 427 426 1 - 429: 7(f16vec4) ImageSampleProjImplicitLod 425 428 - 430: 7(f16vec4) Load 413(texel) - 431: 7(f16vec4) FAdd 430 429 - Store 413(texel) 431 - 432: 123 Load 125(s1D) - 433: 7(f16vec4) Load 309(f16c4) - 434:6(float16_t) Load 137(f16bias) - 435:6(float16_t) CompositeExtract 433 3 - 436: 7(f16vec4) CompositeInsert 435 433 1 - 437: 7(f16vec4) ImageSampleProjImplicitLod 432 436 Bias 434 - 438: 7(f16vec4) Load 413(texel) - 439: 7(f16vec4) FAdd 438 437 - Store 413(texel) 439 - 440: 143 Load 145(s2D) - 441: 167(fvec3) Load 169(c3) - 442: 7(f16vec4) ImageSampleProjImplicitLod 440 441 - 443: 7(f16vec4) Load 413(texel) - 444: 7(f16vec4) FAdd 443 442 - Store 413(texel) 444 - 445: 143 Load 145(s2D) - 446:175(f16vec3) Load 177(f16c3) - 447:6(float16_t) Load 137(f16bias) - 448: 7(f16vec4) ImageSampleProjImplicitLod 445 446 Bias 447 - 449: 7(f16vec4) Load 413(texel) - 450: 7(f16vec4) FAdd 449 448 - Store 413(texel) 450 - 451: 143 Load 145(s2D) - 452: 249(fvec4) Load 251(c4) - 453: 52(float) CompositeExtract 452 3 - 454: 249(fvec4) CompositeInsert 453 452 2 - 455: 7(f16vec4) ImageSampleProjImplicitLod 451 454 - 456: 7(f16vec4) Load 413(texel) - 457: 7(f16vec4) FAdd 456 455 - Store 413(texel) 457 - 458: 143 Load 145(s2D) - 459: 7(f16vec4) Load 309(f16c4) - 460:6(float16_t) Load 137(f16bias) - 461:6(float16_t) CompositeExtract 459 3 - 462: 7(f16vec4) CompositeInsert 461 459 2 - 463: 7(f16vec4) ImageSampleProjImplicitLod 458 462 Bias 460 - 464: 7(f16vec4) Load 413(texel) - 465: 7(f16vec4) FAdd 464 463 - Store 413(texel) 465 - 466: 163 Load 165(s3D) - 467: 249(fvec4) Load 251(c4) - 468: 7(f16vec4) ImageSampleProjImplicitLod 466 467 - 469: 7(f16vec4) Load 413(texel) - 470: 7(f16vec4) FAdd 469 468 - Store 413(texel) 470 - 471: 163 Load 165(s3D) - 472: 7(f16vec4) Load 309(f16c4) - 473:6(float16_t) Load 137(f16bias) - 474: 7(f16vec4) ImageSampleProjImplicitLod 471 472 Bias 473 - 475: 7(f16vec4) Load 413(texel) - 476: 7(f16vec4) FAdd 475 474 - Store 413(texel) 476 - 477: 199 Load 201(s1DShadow) - 478: 249(fvec4) Load 251(c4) - 479: 52(float) CompositeExtract 478 2 - 480: 52(float) CompositeExtract 478 3 - 481: 249(fvec4) CompositeInsert 480 478 1 - 482:6(float16_t) ImageSampleProjDrefImplicitLod 477 481 479 - 483: 208(ptr) AccessChain 413(texel) 207 - 484:6(float16_t) Load 483 - 485:6(float16_t) FAdd 484 482 - 486: 208(ptr) AccessChain 413(texel) 207 - Store 486 485 - 487: 199 Load 201(s1DShadow) - 488:175(f16vec3) Load 177(f16c3) - 489: 52(float) Load 215(compare) - 490:6(float16_t) Load 137(f16bias) - 491:6(float16_t) CompositeExtract 488 2 - 492:175(f16vec3) CompositeInsert 491 488 1 - 493:6(float16_t) ImageSampleProjDrefImplicitLod 487 492 489 Bias 490 - 494: 208(ptr) AccessChain 413(texel) 207 - 495:6(float16_t) Load 494 - 496:6(float16_t) FAdd 495 493 - 497: 208(ptr) AccessChain 413(texel) 207 - Store 497 496 - 498: 224 Load 226(s2DShadow) - 499: 249(fvec4) Load 251(c4) - 500: 52(float) CompositeExtract 499 2 - 501: 52(float) CompositeExtract 499 3 - 502: 249(fvec4) CompositeInsert 501 499 2 - 503:6(float16_t) ImageSampleProjDrefImplicitLod 498 502 500 - 504: 208(ptr) AccessChain 413(texel) 207 - 505:6(float16_t) Load 504 - 506:6(float16_t) FAdd 505 503 - 507: 208(ptr) AccessChain 413(texel) 207 - Store 507 506 - 508: 224 Load 226(s2DShadow) - 509:175(f16vec3) Load 177(f16c3) - 510: 52(float) Load 215(compare) - 511:6(float16_t) Load 137(f16bias) - 512:6(float16_t) ImageSampleProjDrefImplicitLod 508 509 510 Bias 511 - 513: 208(ptr) AccessChain 413(texel) 207 - 514:6(float16_t) Load 513 - 515:6(float16_t) FAdd 514 512 - 516: 208(ptr) AccessChain 413(texel) 207 - Store 516 515 - 517: 357 Load 359(s2DRect) - 518: 167(fvec3) Load 169(c3) - 519: 7(f16vec4) ImageSampleProjImplicitLod 517 518 - 520: 7(f16vec4) Load 413(texel) - 521: 7(f16vec4) FAdd 520 519 - Store 413(texel) 521 - 522: 357 Load 359(s2DRect) - 523:175(f16vec3) Load 177(f16c3) - 524: 7(f16vec4) ImageSampleProjImplicitLod 522 523 - 525: 7(f16vec4) Load 413(texel) - 526: 7(f16vec4) FAdd 525 524 - Store 413(texel) 526 - 527: 357 Load 359(s2DRect) - 528: 249(fvec4) Load 251(c4) - 529: 52(float) CompositeExtract 528 3 - 530: 249(fvec4) CompositeInsert 529 528 2 - 531: 7(f16vec4) ImageSampleProjImplicitLod 527 530 - 532: 7(f16vec4) Load 413(texel) - 533: 7(f16vec4) FAdd 532 531 - Store 413(texel) 533 - 534: 357 Load 359(s2DRect) - 535: 7(f16vec4) Load 309(f16c4) - 536:6(float16_t) CompositeExtract 535 3 - 537: 7(f16vec4) CompositeInsert 536 535 2 - 538: 7(f16vec4) ImageSampleProjImplicitLod 534 537 - 539: 7(f16vec4) Load 413(texel) - 540: 7(f16vec4) FAdd 539 538 - Store 413(texel) 540 - 541: 371 Load 373(s2DRectShadow) - 542: 249(fvec4) Load 251(c4) - 543: 52(float) CompositeExtract 542 2 - 544: 52(float) CompositeExtract 542 3 - 545: 249(fvec4) CompositeInsert 544 542 2 - 546:6(float16_t) ImageSampleProjDrefImplicitLod 541 545 543 - 547: 208(ptr) AccessChain 413(texel) 207 - 548:6(float16_t) Load 547 - 549:6(float16_t) FAdd 548 546 - 550: 208(ptr) AccessChain 413(texel) 207 - Store 550 549 - 551: 371 Load 373(s2DRectShadow) - 552:175(f16vec3) Load 177(f16c3) - 553: 52(float) Load 215(compare) - 554:6(float16_t) ImageSampleProjDrefImplicitLod 551 552 553 - 555: 208(ptr) AccessChain 413(texel) 207 - 556:6(float16_t) Load 555 - 557:6(float16_t) FAdd 556 554 - 558: 208(ptr) AccessChain 413(texel) 207 - Store 558 557 - 559: 7(f16vec4) Load 413(texel) - ReturnValue 559 - FunctionEnd -13(testTextureLod(): 7(f16vec4) Function None 8 - 14: Label - 562(texel): 64(ptr) Variable Function - Store 562(texel) 121 - 563: 123 Load 125(s1D) - 564: 52(float) Load 128(c1) - 566: 52(float) Load 565(lod) - 567: 7(f16vec4) ImageSampleExplicitLod 563 564 Lod 566 - 568: 7(f16vec4) Load 562(texel) - 569: 7(f16vec4) FAdd 568 567 - Store 562(texel) 569 - 570: 123 Load 125(s1D) - 571:6(float16_t) Load 135(f16c1) - 573:6(float16_t) Load 572(f16lod) - 574: 7(f16vec4) ImageSampleExplicitLod 570 571 Lod 573 - 575: 7(f16vec4) Load 562(texel) - 576: 7(f16vec4) FAdd 575 574 - Store 562(texel) 576 - 577: 143 Load 145(s2D) - 578: 53(fvec2) Load 148(c2) - 579: 52(float) Load 565(lod) - 580: 7(f16vec4) ImageSampleExplicitLod 577 578 Lod 579 - 581: 7(f16vec4) Load 562(texel) - 582: 7(f16vec4) FAdd 581 580 - Store 562(texel) 582 - 583: 143 Load 145(s2D) - 584:154(f16vec2) Load 156(f16c2) - 585:6(float16_t) Load 572(f16lod) - 586: 7(f16vec4) ImageSampleExplicitLod 583 584 Lod 585 - 587: 7(f16vec4) Load 562(texel) - 588: 7(f16vec4) FAdd 587 586 - Store 562(texel) 588 - 589: 163 Load 165(s3D) - 590: 167(fvec3) Load 169(c3) - 591: 52(float) Load 565(lod) - 592: 7(f16vec4) ImageSampleExplicitLod 589 590 Lod 591 - 593: 7(f16vec4) Load 562(texel) - 594: 7(f16vec4) FAdd 593 592 - Store 562(texel) 594 - 595: 163 Load 165(s3D) - 596:175(f16vec3) Load 177(f16c3) - 597:6(float16_t) Load 572(f16lod) - 598: 7(f16vec4) ImageSampleExplicitLod 595 596 Lod 597 - 599: 7(f16vec4) Load 562(texel) - 600: 7(f16vec4) FAdd 599 598 - Store 562(texel) 600 - 601: 184 Load 186(sCube) - 602: 167(fvec3) Load 169(c3) - 603: 52(float) Load 565(lod) - 604: 7(f16vec4) ImageSampleExplicitLod 601 602 Lod 603 - 605: 7(f16vec4) Load 562(texel) - 606: 7(f16vec4) FAdd 605 604 - Store 562(texel) 606 - 607: 184 Load 186(sCube) - 608:175(f16vec3) Load 177(f16c3) - 609:6(float16_t) Load 572(f16lod) - 610: 7(f16vec4) ImageSampleExplicitLod 607 608 Lod 609 - 611: 7(f16vec4) Load 562(texel) - 612: 7(f16vec4) FAdd 611 610 - Store 562(texel) 612 - 613: 199 Load 201(s1DShadow) - 614: 167(fvec3) Load 169(c3) - 615: 52(float) Load 565(lod) - 616: 52(float) CompositeExtract 614 2 - 617:6(float16_t) ImageSampleDrefExplicitLod 613 614 616 Lod 615 - 618: 208(ptr) AccessChain 562(texel) 207 - 619:6(float16_t) Load 618 - 620:6(float16_t) FAdd 619 617 - 621: 208(ptr) AccessChain 562(texel) 207 - Store 621 620 - 622: 199 Load 201(s1DShadow) - 623:154(f16vec2) Load 156(f16c2) - 624: 52(float) Load 215(compare) - 625:6(float16_t) Load 572(f16lod) - 626:6(float16_t) ImageSampleDrefExplicitLod 622 623 624 Lod 625 - 627: 208(ptr) AccessChain 562(texel) 207 - 628:6(float16_t) Load 627 - 629:6(float16_t) FAdd 628 626 - 630: 208(ptr) AccessChain 562(texel) 207 - Store 630 629 - 631: 224 Load 226(s2DShadow) - 632: 167(fvec3) Load 169(c3) - 633: 52(float) Load 565(lod) - 634: 52(float) CompositeExtract 632 2 - 635:6(float16_t) ImageSampleDrefExplicitLod 631 632 634 Lod 633 - 636: 208(ptr) AccessChain 562(texel) 207 - 637:6(float16_t) Load 636 - 638:6(float16_t) FAdd 637 635 - 639: 208(ptr) AccessChain 562(texel) 207 - Store 639 638 - 640: 224 Load 226(s2DShadow) - 641:154(f16vec2) Load 156(f16c2) - 642: 52(float) Load 215(compare) - 643:6(float16_t) Load 572(f16lod) - 644:6(float16_t) ImageSampleDrefExplicitLod 640 641 642 Lod 643 - 645: 208(ptr) AccessChain 562(texel) 207 - 646:6(float16_t) Load 645 - 647:6(float16_t) FAdd 646 644 - 648: 208(ptr) AccessChain 562(texel) 207 - Store 648 647 - 649: 269 Load 271(s1DArray) - 650: 53(fvec2) Load 148(c2) - 651: 52(float) Load 565(lod) - 652: 7(f16vec4) ImageSampleExplicitLod 649 650 Lod 651 - 653: 7(f16vec4) Load 562(texel) - 654: 7(f16vec4) FAdd 653 652 - Store 562(texel) 654 - 655: 269 Load 271(s1DArray) - 656:154(f16vec2) Load 156(f16c2) - 657:6(float16_t) Load 572(f16lod) - 658: 7(f16vec4) ImageSampleExplicitLod 655 656 Lod 657 - 659: 7(f16vec4) Load 562(texel) - 660: 7(f16vec4) FAdd 659 658 - Store 562(texel) 660 - 661: 284 Load 286(s2DArray) - 662: 167(fvec3) Load 169(c3) - 663: 52(float) Load 565(lod) - 664: 7(f16vec4) ImageSampleExplicitLod 661 662 Lod 663 - 665: 7(f16vec4) Load 562(texel) - 666: 7(f16vec4) FAdd 665 664 - Store 562(texel) 666 - 667: 284 Load 286(s2DArray) - 668:175(f16vec3) Load 177(f16c3) - 669:6(float16_t) Load 572(f16lod) - 670: 7(f16vec4) ImageSampleExplicitLod 667 668 Lod 669 - 671: 7(f16vec4) Load 562(texel) - 672: 7(f16vec4) FAdd 671 670 - Store 562(texel) 672 - 673: 316 Load 318(s1DArrayShadow) - 674: 167(fvec3) Load 169(c3) - 675: 52(float) Load 565(lod) - 676: 52(float) CompositeExtract 674 2 - 677:6(float16_t) ImageSampleDrefExplicitLod 673 674 676 Lod 675 - 678: 208(ptr) AccessChain 562(texel) 207 - 679:6(float16_t) Load 678 - 680:6(float16_t) FAdd 679 677 - 681: 208(ptr) AccessChain 562(texel) 207 - Store 681 680 - 682: 316 Load 318(s1DArrayShadow) - 683:154(f16vec2) Load 156(f16c2) - 684: 52(float) Load 215(compare) - 685:6(float16_t) Load 572(f16lod) - 686:6(float16_t) ImageSampleDrefExplicitLod 682 683 684 Lod 685 - 687: 208(ptr) AccessChain 562(texel) 207 - 688:6(float16_t) Load 687 - 689:6(float16_t) FAdd 688 686 - 690: 208(ptr) AccessChain 562(texel) 207 - Store 690 689 - 691: 299 Load 301(sCubeArray) - 692: 249(fvec4) Load 251(c4) - 693: 52(float) Load 565(lod) - 694: 7(f16vec4) ImageSampleExplicitLod 691 692 Lod 693 - 695: 7(f16vec4) Load 562(texel) - 696: 7(f16vec4) FAdd 695 694 - Store 562(texel) 696 - 697: 299 Load 301(sCubeArray) - 698: 7(f16vec4) Load 309(f16c4) - 699:6(float16_t) Load 572(f16lod) - 700: 7(f16vec4) ImageSampleExplicitLod 697 698 Lod 699 - 701: 7(f16vec4) Load 562(texel) - 702: 7(f16vec4) FAdd 701 700 - Store 562(texel) 702 - 703: 7(f16vec4) Load 562(texel) - ReturnValue 703 - FunctionEnd -15(testTextureOffset(): 7(f16vec4) Function None 8 - 16: Label - 706(texel): 64(ptr) Variable Function - Store 706(texel) 121 - 707: 123 Load 125(s1D) - 708: 52(float) Load 128(c1) - 710: 7(f16vec4) ImageSampleImplicitLod 707 708 ConstOffset 709 - 711: 7(f16vec4) Load 706(texel) - 712: 7(f16vec4) FAdd 711 710 - Store 706(texel) 712 - 713: 123 Load 125(s1D) - 714:6(float16_t) Load 135(f16c1) - 715:6(float16_t) Load 137(f16bias) - 716: 7(f16vec4) ImageSampleImplicitLod 713 714 Bias ConstOffset 715 709 - 717: 7(f16vec4) Load 706(texel) - 718: 7(f16vec4) FAdd 717 716 - Store 706(texel) 718 - 719: 143 Load 145(s2D) - 720: 53(fvec2) Load 148(c2) - 723: 7(f16vec4) ImageSampleImplicitLod 719 720 ConstOffset 722 - 724: 7(f16vec4) Load 706(texel) - 725: 7(f16vec4) FAdd 724 723 - Store 706(texel) 725 - 726: 143 Load 145(s2D) - 727:154(f16vec2) Load 156(f16c2) - 728:6(float16_t) Load 137(f16bias) - 729: 7(f16vec4) ImageSampleImplicitLod 726 727 Bias ConstOffset 728 722 - 730: 7(f16vec4) Load 706(texel) - 731: 7(f16vec4) FAdd 730 729 - Store 706(texel) 731 - 732: 163 Load 165(s3D) - 733: 167(fvec3) Load 169(c3) - 736: 7(f16vec4) ImageSampleImplicitLod 732 733 ConstOffset 735 - 737: 7(f16vec4) Load 706(texel) - 738: 7(f16vec4) FAdd 737 736 - Store 706(texel) 738 - 739: 163 Load 165(s3D) - 740:175(f16vec3) Load 177(f16c3) - 741:6(float16_t) Load 137(f16bias) - 742: 7(f16vec4) ImageSampleImplicitLod 739 740 Bias ConstOffset 741 735 - 743: 7(f16vec4) Load 706(texel) - 744: 7(f16vec4) FAdd 743 742 - Store 706(texel) 744 - 745: 357 Load 359(s2DRect) - 746: 53(fvec2) Load 148(c2) - 747: 7(f16vec4) ImageSampleImplicitLod 745 746 ConstOffset 722 - 748: 7(f16vec4) Load 706(texel) - 749: 7(f16vec4) FAdd 748 747 - Store 706(texel) 749 - 750: 357 Load 359(s2DRect) - 751:154(f16vec2) Load 156(f16c2) - 752: 7(f16vec4) ImageSampleImplicitLod 750 751 ConstOffset 722 - 753: 7(f16vec4) Load 706(texel) - 754: 7(f16vec4) FAdd 753 752 - Store 706(texel) 754 - 755: 371 Load 373(s2DRectShadow) - 756: 167(fvec3) Load 169(c3) - 757: 52(float) CompositeExtract 756 2 - 758:6(float16_t) ImageSampleDrefImplicitLod 755 756 757 ConstOffset 722 - 759: 208(ptr) AccessChain 706(texel) 207 - 760:6(float16_t) Load 759 - 761:6(float16_t) FAdd 760 758 - 762: 208(ptr) AccessChain 706(texel) 207 - Store 762 761 - 763: 371 Load 373(s2DRectShadow) - 764:154(f16vec2) Load 156(f16c2) - 765: 52(float) Load 215(compare) - 766:6(float16_t) ImageSampleDrefImplicitLod 763 764 765 ConstOffset 722 - 767: 208(ptr) AccessChain 706(texel) 207 - 768:6(float16_t) Load 767 - 769:6(float16_t) FAdd 768 766 - 770: 208(ptr) AccessChain 706(texel) 207 - Store 770 769 - 771: 199 Load 201(s1DShadow) - 772: 167(fvec3) Load 169(c3) - 773: 52(float) CompositeExtract 772 2 - 774:6(float16_t) ImageSampleDrefImplicitLod 771 772 773 ConstOffset 709 - 775: 208(ptr) AccessChain 706(texel) 207 - 776:6(float16_t) Load 775 - 777:6(float16_t) FAdd 776 774 - 778: 208(ptr) AccessChain 706(texel) 207 - Store 778 777 - 779: 199 Load 201(s1DShadow) - 780:154(f16vec2) Load 156(f16c2) - 781: 52(float) Load 215(compare) - 782:6(float16_t) Load 137(f16bias) - 783:6(float16_t) ImageSampleDrefImplicitLod 779 780 781 Bias ConstOffset 782 709 - 784: 208(ptr) AccessChain 706(texel) 207 - 785:6(float16_t) Load 784 - 786:6(float16_t) FAdd 785 783 - 787: 208(ptr) AccessChain 706(texel) 207 - Store 787 786 - 788: 224 Load 226(s2DShadow) - 789: 167(fvec3) Load 169(c3) - 790: 52(float) CompositeExtract 789 2 - 791:6(float16_t) ImageSampleDrefImplicitLod 788 789 790 ConstOffset 722 - 792: 208(ptr) AccessChain 706(texel) 207 - 793:6(float16_t) Load 792 - 794:6(float16_t) FAdd 793 791 - 795: 208(ptr) AccessChain 706(texel) 207 - Store 795 794 - 796: 224 Load 226(s2DShadow) - 797:154(f16vec2) Load 156(f16c2) - 798: 52(float) Load 215(compare) - 799:6(float16_t) Load 137(f16bias) - 800:6(float16_t) ImageSampleDrefImplicitLod 796 797 798 Bias ConstOffset 799 722 - 801: 208(ptr) AccessChain 706(texel) 207 - 802:6(float16_t) Load 801 - 803:6(float16_t) FAdd 802 800 - 804: 208(ptr) AccessChain 706(texel) 207 - Store 804 803 - 805: 269 Load 271(s1DArray) - 806: 53(fvec2) Load 148(c2) - 807: 7(f16vec4) ImageSampleImplicitLod 805 806 ConstOffset 709 - 808: 7(f16vec4) Load 706(texel) - 809: 7(f16vec4) FAdd 808 807 - Store 706(texel) 809 - 810: 269 Load 271(s1DArray) - 811:154(f16vec2) Load 156(f16c2) - 812:6(float16_t) Load 137(f16bias) - 813: 7(f16vec4) ImageSampleImplicitLod 810 811 Bias ConstOffset 812 709 - 814: 7(f16vec4) Load 706(texel) - 815: 7(f16vec4) FAdd 814 813 - Store 706(texel) 815 - 816: 284 Load 286(s2DArray) - 817: 167(fvec3) Load 169(c3) - 818: 7(f16vec4) ImageSampleImplicitLod 816 817 ConstOffset 722 - 819: 7(f16vec4) Load 706(texel) - 820: 7(f16vec4) FAdd 819 818 - Store 706(texel) 820 - 821: 284 Load 286(s2DArray) - 822:175(f16vec3) Load 177(f16c3) - 823:6(float16_t) Load 137(f16bias) - 824: 7(f16vec4) ImageSampleImplicitLod 821 822 Bias ConstOffset 823 722 - 825: 7(f16vec4) Load 706(texel) - 826: 7(f16vec4) FAdd 825 824 - Store 706(texel) 826 - 827: 316 Load 318(s1DArrayShadow) - 828: 167(fvec3) Load 169(c3) - 829: 52(float) CompositeExtract 828 2 - 830:6(float16_t) ImageSampleDrefImplicitLod 827 828 829 ConstOffset 709 - 831: 208(ptr) AccessChain 706(texel) 207 - 832:6(float16_t) Load 831 - 833:6(float16_t) FAdd 832 830 - 834: 208(ptr) AccessChain 706(texel) 207 - Store 834 833 - 835: 316 Load 318(s1DArrayShadow) - 836:154(f16vec2) Load 156(f16c2) - 837: 52(float) Load 215(compare) - 838:6(float16_t) Load 137(f16bias) - 839:6(float16_t) ImageSampleDrefImplicitLod 835 836 837 Bias ConstOffset 838 709 - 840: 208(ptr) AccessChain 706(texel) 207 - 841:6(float16_t) Load 840 - 842:6(float16_t) FAdd 841 839 - 843: 208(ptr) AccessChain 706(texel) 207 - Store 843 842 - 844: 337 Load 339(s2DArrayShadow) - 845: 249(fvec4) Load 251(c4) - 846: 52(float) CompositeExtract 845 3 - 847:6(float16_t) ImageSampleDrefImplicitLod 844 845 846 ConstOffset 722 - 848: 208(ptr) AccessChain 706(texel) 207 - 849:6(float16_t) Load 848 - 850:6(float16_t) FAdd 849 847 - 851: 208(ptr) AccessChain 706(texel) 207 - Store 851 850 - 852: 337 Load 339(s2DArrayShadow) - 853:175(f16vec3) Load 177(f16c3) - 854: 52(float) Load 215(compare) - 855:6(float16_t) ImageSampleDrefImplicitLod 852 853 854 ConstOffset 722 - 856: 208(ptr) AccessChain 706(texel) 207 - 857:6(float16_t) Load 856 - 858:6(float16_t) FAdd 857 855 - 859: 208(ptr) AccessChain 706(texel) 207 - Store 859 858 - 860: 7(f16vec4) Load 706(texel) - ReturnValue 860 - FunctionEnd -17(testTextureProjOffset(): 7(f16vec4) Function None 8 - 18: Label - 863(texel): 64(ptr) Variable Function - Store 863(texel) 121 - 864: 123 Load 125(s1D) - 865: 53(fvec2) Load 148(c2) - 866: 7(f16vec4) ImageSampleProjImplicitLod 864 865 ConstOffset 709 - 867: 7(f16vec4) Load 863(texel) - 868: 7(f16vec4) FAdd 867 866 - Store 863(texel) 868 - 869: 123 Load 125(s1D) - 870:154(f16vec2) Load 156(f16c2) - 871:6(float16_t) Load 137(f16bias) - 872: 7(f16vec4) ImageSampleProjImplicitLod 869 870 Bias ConstOffset 871 709 - 873: 7(f16vec4) Load 863(texel) - 874: 7(f16vec4) FAdd 873 872 - Store 863(texel) 874 - 875: 123 Load 125(s1D) - 876: 249(fvec4) Load 251(c4) - 877: 52(float) CompositeExtract 876 3 - 878: 249(fvec4) CompositeInsert 877 876 1 - 879: 7(f16vec4) ImageSampleProjImplicitLod 875 878 ConstOffset 709 - 880: 7(f16vec4) Load 863(texel) - 881: 7(f16vec4) FAdd 880 879 - Store 863(texel) 881 - 882: 123 Load 125(s1D) - 883: 7(f16vec4) Load 309(f16c4) - 884:6(float16_t) Load 137(f16bias) - 885:6(float16_t) CompositeExtract 883 3 - 886: 7(f16vec4) CompositeInsert 885 883 1 - 887: 7(f16vec4) ImageSampleProjImplicitLod 882 886 Bias ConstOffset 884 709 - 888: 7(f16vec4) Load 863(texel) - 889: 7(f16vec4) FAdd 888 887 - Store 863(texel) 889 - 890: 143 Load 145(s2D) - 891: 167(fvec3) Load 169(c3) - 892: 7(f16vec4) ImageSampleProjImplicitLod 890 891 ConstOffset 722 - 893: 7(f16vec4) Load 863(texel) - 894: 7(f16vec4) FAdd 893 892 - Store 863(texel) 894 - 895: 143 Load 145(s2D) - 896:175(f16vec3) Load 177(f16c3) - 897:6(float16_t) Load 137(f16bias) - 898: 7(f16vec4) ImageSampleProjImplicitLod 895 896 Bias ConstOffset 897 722 - 899: 7(f16vec4) Load 863(texel) - 900: 7(f16vec4) FAdd 899 898 - Store 863(texel) 900 - 901: 143 Load 145(s2D) - 902: 249(fvec4) Load 251(c4) - 903: 52(float) CompositeExtract 902 3 - 904: 249(fvec4) CompositeInsert 903 902 2 - 905: 7(f16vec4) ImageSampleProjImplicitLod 901 904 ConstOffset 722 - 906: 7(f16vec4) Load 863(texel) - 907: 7(f16vec4) FAdd 906 905 - Store 863(texel) 907 - 908: 143 Load 145(s2D) - 909: 7(f16vec4) Load 309(f16c4) - 910:6(float16_t) Load 137(f16bias) - 911:6(float16_t) CompositeExtract 909 3 - 912: 7(f16vec4) CompositeInsert 911 909 2 - 913: 7(f16vec4) ImageSampleProjImplicitLod 908 912 Bias ConstOffset 910 722 - 914: 7(f16vec4) Load 863(texel) - 915: 7(f16vec4) FAdd 914 913 - Store 863(texel) 915 - 916: 163 Load 165(s3D) - 917: 249(fvec4) Load 251(c4) - 918: 7(f16vec4) ImageSampleProjImplicitLod 916 917 ConstOffset 735 - 919: 7(f16vec4) Load 863(texel) - 920: 7(f16vec4) FAdd 919 918 - Store 863(texel) 920 - 921: 163 Load 165(s3D) - 922: 7(f16vec4) Load 309(f16c4) - 923:6(float16_t) Load 137(f16bias) - 924: 7(f16vec4) ImageSampleProjImplicitLod 921 922 Bias ConstOffset 923 735 - 925: 7(f16vec4) Load 863(texel) - 926: 7(f16vec4) FAdd 925 924 - Store 863(texel) 926 - 927: 357 Load 359(s2DRect) - 928: 167(fvec3) Load 169(c3) - 929: 7(f16vec4) ImageSampleProjImplicitLod 927 928 ConstOffset 722 - 930: 7(f16vec4) Load 863(texel) - 931: 7(f16vec4) FAdd 930 929 - Store 863(texel) 931 - 932: 357 Load 359(s2DRect) - 933:175(f16vec3) Load 177(f16c3) - 934: 7(f16vec4) ImageSampleProjImplicitLod 932 933 ConstOffset 722 - 935: 7(f16vec4) Load 863(texel) - 936: 7(f16vec4) FAdd 935 934 - Store 863(texel) 936 - 937: 357 Load 359(s2DRect) - 938: 249(fvec4) Load 251(c4) - 939: 52(float) CompositeExtract 938 3 - 940: 249(fvec4) CompositeInsert 939 938 2 - 941: 7(f16vec4) ImageSampleProjImplicitLod 937 940 ConstOffset 722 - 942: 7(f16vec4) Load 863(texel) - 943: 7(f16vec4) FAdd 942 941 - Store 863(texel) 943 - 944: 357 Load 359(s2DRect) - 945: 7(f16vec4) Load 309(f16c4) - 946:6(float16_t) CompositeExtract 945 3 - 947: 7(f16vec4) CompositeInsert 946 945 2 - 948: 7(f16vec4) ImageSampleProjImplicitLod 944 947 ConstOffset 722 - 949: 7(f16vec4) Load 863(texel) - 950: 7(f16vec4) FAdd 949 948 - Store 863(texel) 950 - 951: 371 Load 373(s2DRectShadow) - 952: 249(fvec4) Load 251(c4) - 953: 52(float) CompositeExtract 952 2 - 954: 52(float) CompositeExtract 952 3 - 955: 249(fvec4) CompositeInsert 954 952 2 - 956:6(float16_t) ImageSampleProjDrefImplicitLod 951 955 953 ConstOffset 722 - 957: 208(ptr) AccessChain 863(texel) 207 - 958:6(float16_t) Load 957 - 959:6(float16_t) FAdd 958 956 - 960: 208(ptr) AccessChain 863(texel) 207 - Store 960 959 - 961: 371 Load 373(s2DRectShadow) - 962:175(f16vec3) Load 177(f16c3) - 963: 52(float) Load 215(compare) - 964:6(float16_t) ImageSampleProjDrefImplicitLod 961 962 963 ConstOffset 722 - 965: 208(ptr) AccessChain 863(texel) 207 - 966:6(float16_t) Load 965 - 967:6(float16_t) FAdd 966 964 - 968: 208(ptr) AccessChain 863(texel) 207 - Store 968 967 - 969: 199 Load 201(s1DShadow) - 970: 249(fvec4) Load 251(c4) - 971: 52(float) CompositeExtract 970 2 - 972: 52(float) CompositeExtract 970 3 - 973: 249(fvec4) CompositeInsert 972 970 1 - 974:6(float16_t) ImageSampleProjDrefImplicitLod 969 973 971 ConstOffset 709 - 975: 208(ptr) AccessChain 863(texel) 207 - 976:6(float16_t) Load 975 - 977:6(float16_t) FAdd 976 974 - 978: 208(ptr) AccessChain 863(texel) 207 - Store 978 977 - 979: 199 Load 201(s1DShadow) - 980:175(f16vec3) Load 177(f16c3) - 981: 52(float) Load 215(compare) - 982:6(float16_t) Load 137(f16bias) - 983:6(float16_t) CompositeExtract 980 2 - 984:175(f16vec3) CompositeInsert 983 980 1 - 985:6(float16_t) ImageSampleProjDrefImplicitLod 979 984 981 Bias ConstOffset 982 709 - 986: 208(ptr) AccessChain 863(texel) 207 - 987:6(float16_t) Load 986 - 988:6(float16_t) FAdd 987 985 - 989: 208(ptr) AccessChain 863(texel) 207 - Store 989 988 - 990: 224 Load 226(s2DShadow) - 991: 249(fvec4) Load 251(c4) - 992: 52(float) CompositeExtract 991 2 - 993: 52(float) CompositeExtract 991 3 - 994: 249(fvec4) CompositeInsert 993 991 2 - 995:6(float16_t) ImageSampleProjDrefImplicitLod 990 994 992 ConstOffset 722 - 996: 208(ptr) AccessChain 863(texel) 207 - 997:6(float16_t) Load 996 - 998:6(float16_t) FAdd 997 995 - 999: 208(ptr) AccessChain 863(texel) 207 - Store 999 998 - 1000: 224 Load 226(s2DShadow) - 1001:175(f16vec3) Load 177(f16c3) - 1002: 52(float) Load 215(compare) - 1003:6(float16_t) Load 137(f16bias) - 1004:6(float16_t) ImageSampleProjDrefImplicitLod 1000 1001 1002 Bias ConstOffset 1003 722 - 1005: 208(ptr) AccessChain 863(texel) 207 - 1006:6(float16_t) Load 1005 - 1007:6(float16_t) FAdd 1006 1004 - 1008: 208(ptr) AccessChain 863(texel) 207 - Store 1008 1007 - 1009: 7(f16vec4) Load 863(texel) - ReturnValue 1009 - FunctionEnd -19(testTextureLodOffset(): 7(f16vec4) Function None 8 - 20: Label - 1012(texel): 64(ptr) Variable Function - Store 1012(texel) 121 - 1013: 123 Load 125(s1D) - 1014: 52(float) Load 128(c1) - 1015: 52(float) Load 565(lod) - 1016: 7(f16vec4) ImageSampleExplicitLod 1013 1014 Lod ConstOffset 1015 709 - 1017: 7(f16vec4) Load 1012(texel) - 1018: 7(f16vec4) FAdd 1017 1016 - Store 1012(texel) 1018 - 1019: 123 Load 125(s1D) - 1020:6(float16_t) Load 135(f16c1) - 1021:6(float16_t) Load 572(f16lod) - 1022: 7(f16vec4) ImageSampleExplicitLod 1019 1020 Lod ConstOffset 1021 709 - 1023: 7(f16vec4) Load 1012(texel) - 1024: 7(f16vec4) FAdd 1023 1022 - Store 1012(texel) 1024 - 1025: 143 Load 145(s2D) - 1026: 53(fvec2) Load 148(c2) - 1027: 52(float) Load 565(lod) - 1028: 7(f16vec4) ImageSampleExplicitLod 1025 1026 Lod ConstOffset 1027 722 - 1029: 7(f16vec4) Load 1012(texel) - 1030: 7(f16vec4) FAdd 1029 1028 - Store 1012(texel) 1030 - 1031: 143 Load 145(s2D) - 1032:154(f16vec2) Load 156(f16c2) - 1033:6(float16_t) Load 572(f16lod) - 1034: 7(f16vec4) ImageSampleExplicitLod 1031 1032 Lod ConstOffset 1033 722 - 1035: 7(f16vec4) Load 1012(texel) - 1036: 7(f16vec4) FAdd 1035 1034 - Store 1012(texel) 1036 - 1037: 163 Load 165(s3D) - 1038: 167(fvec3) Load 169(c3) - 1039: 52(float) Load 565(lod) - 1040: 7(f16vec4) ImageSampleExplicitLod 1037 1038 Lod ConstOffset 1039 735 - 1041: 7(f16vec4) Load 1012(texel) - 1042: 7(f16vec4) FAdd 1041 1040 - Store 1012(texel) 1042 - 1043: 163 Load 165(s3D) - 1044:175(f16vec3) Load 177(f16c3) - 1045:6(float16_t) Load 572(f16lod) - 1046: 7(f16vec4) ImageSampleExplicitLod 1043 1044 Lod ConstOffset 1045 735 - 1047: 7(f16vec4) Load 1012(texel) - 1048: 7(f16vec4) FAdd 1047 1046 - Store 1012(texel) 1048 - 1049: 199 Load 201(s1DShadow) - 1050: 167(fvec3) Load 169(c3) - 1051: 52(float) Load 565(lod) - 1052: 52(float) CompositeExtract 1050 2 - 1053:6(float16_t) ImageSampleDrefExplicitLod 1049 1050 1052 Lod ConstOffset 1051 709 - 1054: 208(ptr) AccessChain 1012(texel) 207 - 1055:6(float16_t) Load 1054 - 1056:6(float16_t) FAdd 1055 1053 - 1057: 208(ptr) AccessChain 1012(texel) 207 - Store 1057 1056 - 1058: 199 Load 201(s1DShadow) - 1059:154(f16vec2) Load 156(f16c2) - 1060: 52(float) Load 215(compare) - 1061:6(float16_t) Load 572(f16lod) - 1062:6(float16_t) ImageSampleDrefExplicitLod 1058 1059 1060 Lod ConstOffset 1061 709 - 1063: 208(ptr) AccessChain 1012(texel) 207 - 1064:6(float16_t) Load 1063 - 1065:6(float16_t) FAdd 1064 1062 - 1066: 208(ptr) AccessChain 1012(texel) 207 - Store 1066 1065 - 1067: 224 Load 226(s2DShadow) - 1068: 167(fvec3) Load 169(c3) - 1069: 52(float) Load 565(lod) - 1070: 52(float) CompositeExtract 1068 2 - 1071:6(float16_t) ImageSampleDrefExplicitLod 1067 1068 1070 Lod ConstOffset 1069 722 - 1072: 208(ptr) AccessChain 1012(texel) 207 - 1073:6(float16_t) Load 1072 - 1074:6(float16_t) FAdd 1073 1071 - 1075: 208(ptr) AccessChain 1012(texel) 207 - Store 1075 1074 - 1076: 224 Load 226(s2DShadow) - 1077:154(f16vec2) Load 156(f16c2) - 1078: 52(float) Load 215(compare) - 1079:6(float16_t) Load 572(f16lod) - 1080:6(float16_t) ImageSampleDrefExplicitLod 1076 1077 1078 Lod ConstOffset 1079 722 - 1081: 208(ptr) AccessChain 1012(texel) 207 - 1082:6(float16_t) Load 1081 - 1083:6(float16_t) FAdd 1082 1080 - 1084: 208(ptr) AccessChain 1012(texel) 207 - Store 1084 1083 - 1085: 269 Load 271(s1DArray) - 1086: 53(fvec2) Load 148(c2) - 1087: 52(float) Load 565(lod) - 1088: 7(f16vec4) ImageSampleExplicitLod 1085 1086 Lod ConstOffset 1087 709 - 1089: 7(f16vec4) Load 1012(texel) - 1090: 7(f16vec4) FAdd 1089 1088 - Store 1012(texel) 1090 - 1091: 269 Load 271(s1DArray) - 1092:154(f16vec2) Load 156(f16c2) - 1093:6(float16_t) Load 572(f16lod) - 1094: 7(f16vec4) ImageSampleExplicitLod 1091 1092 Lod ConstOffset 1093 709 - 1095: 7(f16vec4) Load 1012(texel) - 1096: 7(f16vec4) FAdd 1095 1094 - Store 1012(texel) 1096 - 1097: 284 Load 286(s2DArray) - 1098: 167(fvec3) Load 169(c3) - 1099: 52(float) Load 565(lod) - 1100: 7(f16vec4) ImageSampleExplicitLod 1097 1098 Lod ConstOffset 1099 722 - 1101: 7(f16vec4) Load 1012(texel) - 1102: 7(f16vec4) FAdd 1101 1100 - Store 1012(texel) 1102 - 1103: 284 Load 286(s2DArray) - 1104:175(f16vec3) Load 177(f16c3) - 1105:6(float16_t) Load 572(f16lod) - 1106: 7(f16vec4) ImageSampleExplicitLod 1103 1104 Lod ConstOffset 1105 722 - 1107: 7(f16vec4) Load 1012(texel) - 1108: 7(f16vec4) FAdd 1107 1106 - Store 1012(texel) 1108 - 1109: 316 Load 318(s1DArrayShadow) - 1110: 167(fvec3) Load 169(c3) - 1111: 52(float) Load 565(lod) - 1112: 52(float) CompositeExtract 1110 2 - 1113:6(float16_t) ImageSampleDrefExplicitLod 1109 1110 1112 Lod ConstOffset 1111 709 - 1114: 208(ptr) AccessChain 1012(texel) 207 - 1115:6(float16_t) Load 1114 - 1116:6(float16_t) FAdd 1115 1113 - 1117: 208(ptr) AccessChain 1012(texel) 207 - Store 1117 1116 - 1118: 316 Load 318(s1DArrayShadow) - 1119:154(f16vec2) Load 156(f16c2) - 1120: 52(float) Load 215(compare) - 1121:6(float16_t) Load 572(f16lod) - 1122:6(float16_t) ImageSampleDrefExplicitLod 1118 1119 1120 Lod ConstOffset 1121 709 - 1123: 208(ptr) AccessChain 1012(texel) 207 - 1124:6(float16_t) Load 1123 - 1125:6(float16_t) FAdd 1124 1122 - 1126: 208(ptr) AccessChain 1012(texel) 207 - Store 1126 1125 - 1127: 7(f16vec4) Load 1012(texel) - ReturnValue 1127 - FunctionEnd -21(testTextureProjLodOffset(): 7(f16vec4) Function None 8 - 22: Label - 1130(texel): 64(ptr) Variable Function - Store 1130(texel) 121 - 1131: 123 Load 125(s1D) - 1132: 53(fvec2) Load 148(c2) - 1133: 52(float) Load 565(lod) - 1134: 7(f16vec4) ImageSampleProjExplicitLod 1131 1132 Lod ConstOffset 1133 709 - 1135: 7(f16vec4) Load 1130(texel) - 1136: 7(f16vec4) FAdd 1135 1134 - Store 1130(texel) 1136 - 1137: 123 Load 125(s1D) - 1138:154(f16vec2) Load 156(f16c2) - 1139:6(float16_t) Load 572(f16lod) - 1140: 7(f16vec4) ImageSampleProjExplicitLod 1137 1138 Lod ConstOffset 1139 709 - 1141: 7(f16vec4) Load 1130(texel) - 1142: 7(f16vec4) FAdd 1141 1140 - Store 1130(texel) 1142 - 1143: 123 Load 125(s1D) - 1144: 249(fvec4) Load 251(c4) - 1145: 52(float) Load 565(lod) - 1146: 52(float) CompositeExtract 1144 3 - 1147: 249(fvec4) CompositeInsert 1146 1144 1 - 1148: 7(f16vec4) ImageSampleProjExplicitLod 1143 1147 Lod ConstOffset 1145 709 - 1149: 7(f16vec4) Load 1130(texel) - 1150: 7(f16vec4) FAdd 1149 1148 - Store 1130(texel) 1150 - 1151: 123 Load 125(s1D) - 1152: 7(f16vec4) Load 309(f16c4) - 1153:6(float16_t) Load 572(f16lod) - 1154:6(float16_t) CompositeExtract 1152 3 - 1155: 7(f16vec4) CompositeInsert 1154 1152 1 - 1156: 7(f16vec4) ImageSampleProjExplicitLod 1151 1155 Lod ConstOffset 1153 709 - 1157: 7(f16vec4) Load 1130(texel) - 1158: 7(f16vec4) FAdd 1157 1156 - Store 1130(texel) 1158 - 1159: 143 Load 145(s2D) - 1160: 167(fvec3) Load 169(c3) - 1161: 52(float) Load 565(lod) - 1162: 7(f16vec4) ImageSampleProjExplicitLod 1159 1160 Lod ConstOffset 1161 722 - 1163: 7(f16vec4) Load 1130(texel) - 1164: 7(f16vec4) FAdd 1163 1162 - Store 1130(texel) 1164 - 1165: 143 Load 145(s2D) - 1166:175(f16vec3) Load 177(f16c3) - 1167:6(float16_t) Load 572(f16lod) - 1168: 7(f16vec4) ImageSampleProjExplicitLod 1165 1166 Lod ConstOffset 1167 722 - 1169: 7(f16vec4) Load 1130(texel) - 1170: 7(f16vec4) FAdd 1169 1168 - Store 1130(texel) 1170 - 1171: 143 Load 145(s2D) - 1172: 249(fvec4) Load 251(c4) - 1173: 52(float) Load 565(lod) - 1174: 52(float) CompositeExtract 1172 3 - 1175: 249(fvec4) CompositeInsert 1174 1172 2 - 1176: 7(f16vec4) ImageSampleProjExplicitLod 1171 1175 Lod ConstOffset 1173 722 - 1177: 7(f16vec4) Load 1130(texel) - 1178: 7(f16vec4) FAdd 1177 1176 - Store 1130(texel) 1178 - 1179: 143 Load 145(s2D) - 1180: 7(f16vec4) Load 309(f16c4) - 1181:6(float16_t) Load 572(f16lod) - 1182:6(float16_t) CompositeExtract 1180 3 - 1183: 7(f16vec4) CompositeInsert 1182 1180 2 - 1184: 7(f16vec4) ImageSampleProjExplicitLod 1179 1183 Lod ConstOffset 1181 722 - 1185: 7(f16vec4) Load 1130(texel) - 1186: 7(f16vec4) FAdd 1185 1184 - Store 1130(texel) 1186 - 1187: 163 Load 165(s3D) - 1188: 249(fvec4) Load 251(c4) - 1189: 52(float) Load 565(lod) - 1190: 7(f16vec4) ImageSampleProjExplicitLod 1187 1188 Lod ConstOffset 1189 735 - 1191: 7(f16vec4) Load 1130(texel) - 1192: 7(f16vec4) FAdd 1191 1190 - Store 1130(texel) 1192 - 1193: 163 Load 165(s3D) - 1194: 7(f16vec4) Load 309(f16c4) - 1195:6(float16_t) Load 572(f16lod) - 1196: 7(f16vec4) ImageSampleProjExplicitLod 1193 1194 Lod ConstOffset 1195 735 - 1197: 7(f16vec4) Load 1130(texel) - 1198: 7(f16vec4) FAdd 1197 1196 - Store 1130(texel) 1198 - 1199: 199 Load 201(s1DShadow) - 1200: 249(fvec4) Load 251(c4) - 1201: 52(float) Load 565(lod) - 1202: 52(float) CompositeExtract 1200 2 - 1203: 52(float) CompositeExtract 1200 3 - 1204: 249(fvec4) CompositeInsert 1203 1200 1 - 1205:6(float16_t) ImageSampleProjDrefExplicitLod 1199 1204 1202 Lod ConstOffset 1201 709 - 1206: 208(ptr) AccessChain 1130(texel) 207 - 1207:6(float16_t) Load 1206 - 1208:6(float16_t) FAdd 1207 1205 - 1209: 208(ptr) AccessChain 1130(texel) 207 - Store 1209 1208 - 1210: 199 Load 201(s1DShadow) - 1211:175(f16vec3) Load 177(f16c3) - 1212: 52(float) Load 215(compare) - 1213:6(float16_t) Load 572(f16lod) - 1214:6(float16_t) CompositeExtract 1211 2 - 1215:175(f16vec3) CompositeInsert 1214 1211 1 - 1216:6(float16_t) ImageSampleProjDrefExplicitLod 1210 1215 1212 Lod ConstOffset 1213 709 - 1217: 208(ptr) AccessChain 1130(texel) 207 - 1218:6(float16_t) Load 1217 - 1219:6(float16_t) FAdd 1218 1216 - 1220: 208(ptr) AccessChain 1130(texel) 207 - Store 1220 1219 - 1221: 224 Load 226(s2DShadow) - 1222: 249(fvec4) Load 251(c4) - 1223: 52(float) Load 565(lod) - 1224: 52(float) CompositeExtract 1222 2 - 1225: 52(float) CompositeExtract 1222 3 - 1226: 249(fvec4) CompositeInsert 1225 1222 2 - 1227:6(float16_t) ImageSampleProjDrefExplicitLod 1221 1226 1224 Lod ConstOffset 1223 722 - 1228: 208(ptr) AccessChain 1130(texel) 207 - 1229:6(float16_t) Load 1228 - 1230:6(float16_t) FAdd 1229 1227 - 1231: 208(ptr) AccessChain 1130(texel) 207 - Store 1231 1230 - 1232: 224 Load 226(s2DShadow) - 1233:175(f16vec3) Load 177(f16c3) - 1234: 52(float) Load 215(compare) - 1235:6(float16_t) Load 572(f16lod) - 1236:6(float16_t) ImageSampleProjDrefExplicitLod 1232 1233 1234 Lod ConstOffset 1235 722 - 1237: 208(ptr) AccessChain 1130(texel) 207 - 1238:6(float16_t) Load 1237 - 1239:6(float16_t) FAdd 1238 1236 - 1240: 208(ptr) AccessChain 1130(texel) 207 - Store 1240 1239 - 1241: 7(f16vec4) Load 1130(texel) - ReturnValue 1241 - FunctionEnd -23(testTexelFetch(): 7(f16vec4) Function None 8 - 24: Label - 1244(texel): 64(ptr) Variable Function - Store 1244(texel) 121 - 1245: 123 Load 125(s1D) - 1246: 52(float) Load 128(c1) - 1247: 47(int) ConvertFToS 1246 - 1248: 52(float) Load 565(lod) - 1249: 47(int) ConvertFToS 1248 - 1250: 122 Image 1245 - 1251: 7(f16vec4) ImageFetch 1250 1247 Lod 1249 - 1252: 7(f16vec4) Load 1244(texel) - 1253: 7(f16vec4) FAdd 1252 1251 - Store 1244(texel) 1253 - 1254: 143 Load 145(s2D) - 1255: 53(fvec2) Load 148(c2) - 1256: 721(ivec2) ConvertFToS 1255 - 1257: 52(float) Load 565(lod) - 1258: 47(int) ConvertFToS 1257 - 1259: 142 Image 1254 - 1260: 7(f16vec4) ImageFetch 1259 1256 Lod 1258 - 1261: 7(f16vec4) Load 1244(texel) - 1262: 7(f16vec4) FAdd 1261 1260 - Store 1244(texel) 1262 - 1263: 163 Load 165(s3D) - 1264: 167(fvec3) Load 169(c3) - 1265: 734(ivec3) ConvertFToS 1264 - 1266: 52(float) Load 565(lod) - 1267: 47(int) ConvertFToS 1266 - 1268: 162 Image 1263 - 1269: 7(f16vec4) ImageFetch 1268 1265 Lod 1267 - 1270: 7(f16vec4) Load 1244(texel) - 1271: 7(f16vec4) FAdd 1270 1269 - Store 1244(texel) 1271 - 1272: 357 Load 359(s2DRect) - 1273: 53(fvec2) Load 148(c2) - 1274: 721(ivec2) ConvertFToS 1273 - 1275: 356 Image 1272 - 1276: 7(f16vec4) ImageFetch 1275 1274 - 1277: 7(f16vec4) Load 1244(texel) - 1278: 7(f16vec4) FAdd 1277 1276 - Store 1244(texel) 1278 - 1279: 269 Load 271(s1DArray) - 1280: 53(fvec2) Load 148(c2) - 1281: 721(ivec2) ConvertFToS 1280 - 1282: 52(float) Load 565(lod) - 1283: 47(int) ConvertFToS 1282 - 1284: 268 Image 1279 - 1285: 7(f16vec4) ImageFetch 1284 1281 Lod 1283 - 1286: 7(f16vec4) Load 1244(texel) - 1287: 7(f16vec4) FAdd 1286 1285 - Store 1244(texel) 1287 - 1288: 284 Load 286(s2DArray) - 1289: 167(fvec3) Load 169(c3) - 1290: 734(ivec3) ConvertFToS 1289 - 1291: 52(float) Load 565(lod) - 1292: 47(int) ConvertFToS 1291 - 1293: 283 Image 1288 - 1294: 7(f16vec4) ImageFetch 1293 1290 Lod 1292 - 1295: 7(f16vec4) Load 1244(texel) - 1296: 7(f16vec4) FAdd 1295 1294 - Store 1244(texel) 1296 - 1301: 1298 Load 1300(sBuffer) - 1302: 52(float) Load 128(c1) - 1303: 47(int) ConvertFToS 1302 - 1304: 1297 Image 1301 - 1305: 7(f16vec4) ImageFetch 1304 1303 - 1306: 7(f16vec4) Load 1244(texel) - 1307: 7(f16vec4) FAdd 1306 1305 - Store 1244(texel) 1307 - 1312: 1309 Load 1311(s2DMS) - 1313: 53(fvec2) Load 148(c2) - 1314: 721(ivec2) ConvertFToS 1313 - 1315: 1308 Image 1312 - 1316: 7(f16vec4) ImageFetch 1315 1314 Sample 709 - 1317: 7(f16vec4) Load 1244(texel) - 1318: 7(f16vec4) FAdd 1317 1316 - Store 1244(texel) 1318 - 1323: 1320 Load 1322(s2DMSArray) - 1324: 167(fvec3) Load 169(c3) - 1325: 734(ivec3) ConvertFToS 1324 - 1327: 1319 Image 1323 - 1328: 7(f16vec4) ImageFetch 1327 1325 Sample 1326 - 1329: 7(f16vec4) Load 1244(texel) - 1330: 7(f16vec4) FAdd 1329 1328 - Store 1244(texel) 1330 - 1331: 7(f16vec4) Load 1244(texel) - ReturnValue 1331 - FunctionEnd -25(testTexelFetchOffset(): 7(f16vec4) Function None 8 - 26: Label - 1334(texel): 64(ptr) Variable Function - Store 1334(texel) 121 - 1335: 123 Load 125(s1D) - 1336: 52(float) Load 128(c1) - 1337: 47(int) ConvertFToS 1336 - 1338: 52(float) Load 565(lod) - 1339: 47(int) ConvertFToS 1338 - 1340: 122 Image 1335 - 1341: 7(f16vec4) ImageFetch 1340 1337 Lod ConstOffset 1339 709 - 1342: 7(f16vec4) Load 1334(texel) - 1343: 7(f16vec4) FAdd 1342 1341 - Store 1334(texel) 1343 - 1344: 143 Load 145(s2D) - 1345: 53(fvec2) Load 148(c2) - 1346: 721(ivec2) ConvertFToS 1345 - 1347: 52(float) Load 565(lod) - 1348: 47(int) ConvertFToS 1347 - 1349: 142 Image 1344 - 1350: 7(f16vec4) ImageFetch 1349 1346 Lod ConstOffset 1348 722 - 1351: 7(f16vec4) Load 1334(texel) - 1352: 7(f16vec4) FAdd 1351 1350 - Store 1334(texel) 1352 - 1353: 163 Load 165(s3D) - 1354: 167(fvec3) Load 169(c3) - 1355: 734(ivec3) ConvertFToS 1354 - 1356: 52(float) Load 565(lod) - 1357: 47(int) ConvertFToS 1356 - 1358: 162 Image 1353 - 1359: 7(f16vec4) ImageFetch 1358 1355 Lod ConstOffset 1357 735 - 1360: 7(f16vec4) Load 1334(texel) - 1361: 7(f16vec4) FAdd 1360 1359 - Store 1334(texel) 1361 - 1362: 357 Load 359(s2DRect) - 1363: 53(fvec2) Load 148(c2) - 1364: 721(ivec2) ConvertFToS 1363 - 1365: 356 Image 1362 - 1366: 7(f16vec4) ImageFetch 1365 1364 ConstOffset 722 - 1367: 7(f16vec4) Load 1334(texel) - 1368: 7(f16vec4) FAdd 1367 1366 - Store 1334(texel) 1368 - 1369: 269 Load 271(s1DArray) - 1370: 53(fvec2) Load 148(c2) - 1371: 721(ivec2) ConvertFToS 1370 - 1372: 52(float) Load 565(lod) - 1373: 47(int) ConvertFToS 1372 - 1374: 268 Image 1369 - 1375: 7(f16vec4) ImageFetch 1374 1371 Lod ConstOffset 1373 709 - 1376: 7(f16vec4) Load 1334(texel) - 1377: 7(f16vec4) FAdd 1376 1375 - Store 1334(texel) 1377 - 1378: 284 Load 286(s2DArray) - 1379: 167(fvec3) Load 169(c3) - 1380: 734(ivec3) ConvertFToS 1379 - 1381: 52(float) Load 565(lod) - 1382: 47(int) ConvertFToS 1381 - 1383: 283 Image 1378 - 1384: 7(f16vec4) ImageFetch 1383 1380 Lod ConstOffset 1382 722 - 1385: 7(f16vec4) Load 1334(texel) - 1386: 7(f16vec4) FAdd 1385 1384 - Store 1334(texel) 1386 - 1387: 7(f16vec4) Load 1334(texel) - ReturnValue 1387 - FunctionEnd -27(testTextureGrad(): 7(f16vec4) Function None 8 - 28: Label - 1390(texel): 64(ptr) Variable Function - Store 1390(texel) 121 - 1391: 123 Load 125(s1D) - 1392: 52(float) Load 128(c1) - 1394: 52(float) Load 1393(dPdxy1) - 1395: 52(float) Load 1393(dPdxy1) - 1396: 7(f16vec4) ImageSampleExplicitLod 1391 1392 Grad 1394 1395 - 1397: 7(f16vec4) Load 1390(texel) - 1398: 7(f16vec4) FAdd 1397 1396 - Store 1390(texel) 1398 - 1399: 123 Load 125(s1D) - 1400:6(float16_t) Load 135(f16c1) - 1402:6(float16_t) Load 1401(f16dPdxy1) - 1403:6(float16_t) Load 1401(f16dPdxy1) - 1404: 7(f16vec4) ImageSampleExplicitLod 1399 1400 Grad 1402 1403 - 1405: 7(f16vec4) Load 1390(texel) - 1406: 7(f16vec4) FAdd 1405 1404 - Store 1390(texel) 1406 - 1407: 143 Load 145(s2D) - 1408: 53(fvec2) Load 148(c2) - 1410: 53(fvec2) Load 1409(dPdxy2) - 1411: 53(fvec2) Load 1409(dPdxy2) - 1412: 7(f16vec4) ImageSampleExplicitLod 1407 1408 Grad 1410 1411 - 1413: 7(f16vec4) Load 1390(texel) - 1414: 7(f16vec4) FAdd 1413 1412 - Store 1390(texel) 1414 - 1415: 143 Load 145(s2D) - 1416:154(f16vec2) Load 156(f16c2) - 1418:154(f16vec2) Load 1417(f16dPdxy2) - 1419:154(f16vec2) Load 1417(f16dPdxy2) - 1420: 7(f16vec4) ImageSampleExplicitLod 1415 1416 Grad 1418 1419 - 1421: 7(f16vec4) Load 1390(texel) - 1422: 7(f16vec4) FAdd 1421 1420 - Store 1390(texel) 1422 - 1423: 163 Load 165(s3D) - 1424: 167(fvec3) Load 169(c3) - 1426: 167(fvec3) Load 1425(dPdxy3) - 1427: 167(fvec3) Load 1425(dPdxy3) - 1428: 7(f16vec4) ImageSampleExplicitLod 1423 1424 Grad 1426 1427 - 1429: 7(f16vec4) Load 1390(texel) - 1430: 7(f16vec4) FAdd 1429 1428 - Store 1390(texel) 1430 - 1431: 163 Load 165(s3D) - 1432:175(f16vec3) Load 177(f16c3) - 1434:175(f16vec3) Load 1433(f16dPdxy3) - 1435:175(f16vec3) Load 1433(f16dPdxy3) - 1436: 7(f16vec4) ImageSampleExplicitLod 1431 1432 Grad 1434 1435 - 1437: 7(f16vec4) Load 1390(texel) - 1438: 7(f16vec4) FAdd 1437 1436 - Store 1390(texel) 1438 - 1439: 184 Load 186(sCube) - 1440: 167(fvec3) Load 169(c3) - 1441: 167(fvec3) Load 1425(dPdxy3) - 1442: 167(fvec3) Load 1425(dPdxy3) - 1443: 7(f16vec4) ImageSampleExplicitLod 1439 1440 Grad 1441 1442 - 1444: 7(f16vec4) Load 1390(texel) - 1445: 7(f16vec4) FAdd 1444 1443 - Store 1390(texel) 1445 - 1446: 184 Load 186(sCube) - 1447:175(f16vec3) Load 177(f16c3) - 1448:175(f16vec3) Load 1433(f16dPdxy3) - 1449:175(f16vec3) Load 1433(f16dPdxy3) - 1450: 7(f16vec4) ImageSampleExplicitLod 1446 1447 Grad 1448 1449 - 1451: 7(f16vec4) Load 1390(texel) - 1452: 7(f16vec4) FAdd 1451 1450 - Store 1390(texel) 1452 - 1453: 357 Load 359(s2DRect) - 1454: 53(fvec2) Load 148(c2) - 1455: 53(fvec2) Load 1409(dPdxy2) - 1456: 53(fvec2) Load 1409(dPdxy2) - 1457: 7(f16vec4) ImageSampleExplicitLod 1453 1454 Grad 1455 1456 - 1458: 7(f16vec4) Load 1390(texel) - 1459: 7(f16vec4) FAdd 1458 1457 - Store 1390(texel) 1459 - 1460: 357 Load 359(s2DRect) - 1461:154(f16vec2) Load 156(f16c2) - 1462:154(f16vec2) Load 1417(f16dPdxy2) - 1463:154(f16vec2) Load 1417(f16dPdxy2) - 1464: 7(f16vec4) ImageSampleExplicitLod 1460 1461 Grad 1462 1463 - 1465: 7(f16vec4) Load 1390(texel) - 1466: 7(f16vec4) FAdd 1465 1464 - Store 1390(texel) 1466 - 1467: 371 Load 373(s2DRectShadow) - 1468: 167(fvec3) Load 169(c3) - 1469: 53(fvec2) Load 1409(dPdxy2) - 1470: 53(fvec2) Load 1409(dPdxy2) - 1471: 52(float) CompositeExtract 1468 2 - 1472:6(float16_t) ImageSampleDrefExplicitLod 1467 1468 1471 Grad 1469 1470 - 1473: 208(ptr) AccessChain 1390(texel) 207 - 1474:6(float16_t) Load 1473 - 1475:6(float16_t) FAdd 1474 1472 - 1476: 208(ptr) AccessChain 1390(texel) 207 - Store 1476 1475 - 1477: 371 Load 373(s2DRectShadow) - 1478:154(f16vec2) Load 156(f16c2) - 1479: 52(float) Load 215(compare) - 1480:154(f16vec2) Load 1417(f16dPdxy2) - 1481:154(f16vec2) Load 1417(f16dPdxy2) - 1482:6(float16_t) ImageSampleDrefExplicitLod 1477 1478 1479 Grad 1480 1481 - 1483: 208(ptr) AccessChain 1390(texel) 207 - 1484:6(float16_t) Load 1483 - 1485:6(float16_t) FAdd 1484 1482 - 1486: 208(ptr) AccessChain 1390(texel) 207 - Store 1486 1485 - 1487: 199 Load 201(s1DShadow) - 1488: 167(fvec3) Load 169(c3) - 1489: 52(float) Load 1393(dPdxy1) - 1490: 52(float) Load 1393(dPdxy1) - 1491: 52(float) CompositeExtract 1488 2 - 1492:6(float16_t) ImageSampleDrefExplicitLod 1487 1488 1491 Grad 1489 1490 - 1493: 208(ptr) AccessChain 1390(texel) 207 - 1494:6(float16_t) Load 1493 - 1495:6(float16_t) FAdd 1494 1492 - 1496: 208(ptr) AccessChain 1390(texel) 207 - Store 1496 1495 - 1497: 199 Load 201(s1DShadow) - 1498:154(f16vec2) Load 156(f16c2) - 1499: 52(float) Load 215(compare) - 1500:6(float16_t) Load 1401(f16dPdxy1) - 1501:6(float16_t) Load 1401(f16dPdxy1) - 1502:6(float16_t) ImageSampleDrefExplicitLod 1497 1498 1499 Grad 1500 1501 - 1503: 208(ptr) AccessChain 1390(texel) 207 - 1504:6(float16_t) Load 1503 - 1505:6(float16_t) FAdd 1504 1502 - 1506: 208(ptr) AccessChain 1390(texel) 207 - Store 1506 1505 - 1507: 224 Load 226(s2DShadow) - 1508: 167(fvec3) Load 169(c3) - 1509: 53(fvec2) Load 1409(dPdxy2) - 1510: 53(fvec2) Load 1409(dPdxy2) - 1511: 52(float) CompositeExtract 1508 2 - 1512:6(float16_t) ImageSampleDrefExplicitLod 1507 1508 1511 Grad 1509 1510 - 1513: 208(ptr) AccessChain 1390(texel) 207 - 1514:6(float16_t) Load 1513 - 1515:6(float16_t) FAdd 1514 1512 - 1516: 208(ptr) AccessChain 1390(texel) 207 - Store 1516 1515 - 1517: 224 Load 226(s2DShadow) - 1518:154(f16vec2) Load 156(f16c2) - 1519: 52(float) Load 215(compare) - 1520:154(f16vec2) Load 1417(f16dPdxy2) - 1521:154(f16vec2) Load 1417(f16dPdxy2) - 1522:6(float16_t) ImageSampleDrefExplicitLod 1517 1518 1519 Grad 1520 1521 - 1523: 208(ptr) AccessChain 1390(texel) 207 - 1524:6(float16_t) Load 1523 - 1525:6(float16_t) FAdd 1524 1522 - 1526: 208(ptr) AccessChain 1390(texel) 207 - Store 1526 1525 - 1527: 245 Load 247(sCubeShadow) - 1528: 249(fvec4) Load 251(c4) - 1529: 167(fvec3) Load 1425(dPdxy3) - 1530: 167(fvec3) Load 1425(dPdxy3) - 1531: 52(float) CompositeExtract 1528 3 - 1532:6(float16_t) ImageSampleDrefExplicitLod 1527 1528 1531 Grad 1529 1530 - 1533: 208(ptr) AccessChain 1390(texel) 207 - 1534:6(float16_t) Load 1533 - 1535:6(float16_t) FAdd 1534 1532 - 1536: 208(ptr) AccessChain 1390(texel) 207 - Store 1536 1535 - 1537: 245 Load 247(sCubeShadow) - 1538:175(f16vec3) Load 177(f16c3) - 1539: 52(float) Load 215(compare) - 1540:175(f16vec3) Load 1433(f16dPdxy3) - 1541:175(f16vec3) Load 1433(f16dPdxy3) - 1542:6(float16_t) ImageSampleDrefExplicitLod 1537 1538 1539 Grad 1540 1541 - 1543: 208(ptr) AccessChain 1390(texel) 207 - 1544:6(float16_t) Load 1543 - 1545:6(float16_t) FAdd 1544 1542 - 1546: 208(ptr) AccessChain 1390(texel) 207 - Store 1546 1545 - 1547: 269 Load 271(s1DArray) - 1548: 53(fvec2) Load 148(c2) - 1549: 52(float) Load 1393(dPdxy1) - 1550: 52(float) Load 1393(dPdxy1) - 1551: 7(f16vec4) ImageSampleExplicitLod 1547 1548 Grad 1549 1550 - 1552: 7(f16vec4) Load 1390(texel) - 1553: 7(f16vec4) FAdd 1552 1551 - Store 1390(texel) 1553 - 1554: 269 Load 271(s1DArray) - 1555:154(f16vec2) Load 156(f16c2) - 1556:6(float16_t) Load 1401(f16dPdxy1) - 1557:6(float16_t) Load 1401(f16dPdxy1) - 1558: 7(f16vec4) ImageSampleExplicitLod 1554 1555 Grad 1556 1557 - 1559: 7(f16vec4) Load 1390(texel) - 1560: 7(f16vec4) FAdd 1559 1558 - Store 1390(texel) 1560 - 1561: 284 Load 286(s2DArray) - 1562: 167(fvec3) Load 169(c3) - 1563: 53(fvec2) Load 1409(dPdxy2) - 1564: 53(fvec2) Load 1409(dPdxy2) - 1565: 7(f16vec4) ImageSampleExplicitLod 1561 1562 Grad 1563 1564 - 1566: 7(f16vec4) Load 1390(texel) - 1567: 7(f16vec4) FAdd 1566 1565 - Store 1390(texel) 1567 - 1568: 284 Load 286(s2DArray) - 1569:175(f16vec3) Load 177(f16c3) - 1570:154(f16vec2) Load 1417(f16dPdxy2) - 1571:154(f16vec2) Load 1417(f16dPdxy2) - 1572: 7(f16vec4) ImageSampleExplicitLod 1568 1569 Grad 1570 1571 - 1573: 7(f16vec4) Load 1390(texel) - 1574: 7(f16vec4) FAdd 1573 1572 - Store 1390(texel) 1574 - 1575: 316 Load 318(s1DArrayShadow) - 1576: 167(fvec3) Load 169(c3) - 1577: 52(float) Load 1393(dPdxy1) - 1578: 52(float) Load 1393(dPdxy1) - 1579: 52(float) CompositeExtract 1576 2 - 1580:6(float16_t) ImageSampleDrefExplicitLod 1575 1576 1579 Grad 1577 1578 - 1581: 208(ptr) AccessChain 1390(texel) 207 - 1582:6(float16_t) Load 1581 - 1583:6(float16_t) FAdd 1582 1580 - 1584: 208(ptr) AccessChain 1390(texel) 207 - Store 1584 1583 - 1585: 316 Load 318(s1DArrayShadow) - 1586:154(f16vec2) Load 156(f16c2) - 1587: 52(float) Load 215(compare) - 1588:6(float16_t) Load 1401(f16dPdxy1) - 1589:6(float16_t) Load 1401(f16dPdxy1) - 1590:6(float16_t) ImageSampleDrefExplicitLod 1585 1586 1587 Grad 1588 1589 - 1591: 208(ptr) AccessChain 1390(texel) 207 - 1592:6(float16_t) Load 1591 - 1593:6(float16_t) FAdd 1592 1590 - 1594: 208(ptr) AccessChain 1390(texel) 207 - Store 1594 1593 - 1595: 337 Load 339(s2DArrayShadow) - 1596: 249(fvec4) Load 251(c4) - 1597: 53(fvec2) Load 1409(dPdxy2) - 1598: 53(fvec2) Load 1409(dPdxy2) - 1599: 52(float) CompositeExtract 1596 3 - 1600:6(float16_t) ImageSampleDrefExplicitLod 1595 1596 1599 Grad 1597 1598 - 1601: 208(ptr) AccessChain 1390(texel) 207 - 1602:6(float16_t) Load 1601 - 1603:6(float16_t) FAdd 1602 1600 - 1604: 208(ptr) AccessChain 1390(texel) 207 - Store 1604 1603 - 1605: 337 Load 339(s2DArrayShadow) - 1606:175(f16vec3) Load 177(f16c3) - 1607: 52(float) Load 215(compare) - 1608:154(f16vec2) Load 1417(f16dPdxy2) - 1609:154(f16vec2) Load 1417(f16dPdxy2) - 1610:6(float16_t) ImageSampleDrefExplicitLod 1605 1606 1607 Grad 1608 1609 - 1611: 208(ptr) AccessChain 1390(texel) 207 - 1612:6(float16_t) Load 1611 - 1613:6(float16_t) FAdd 1612 1610 - 1614: 208(ptr) AccessChain 1390(texel) 207 - Store 1614 1613 - 1615: 299 Load 301(sCubeArray) - 1616: 249(fvec4) Load 251(c4) - 1617: 167(fvec3) Load 1425(dPdxy3) - 1618: 167(fvec3) Load 1425(dPdxy3) - 1619: 7(f16vec4) ImageSampleExplicitLod 1615 1616 Grad 1617 1618 - 1620: 7(f16vec4) Load 1390(texel) - 1621: 7(f16vec4) FAdd 1620 1619 - Store 1390(texel) 1621 - 1622: 299 Load 301(sCubeArray) - 1623: 7(f16vec4) Load 309(f16c4) - 1624:175(f16vec3) Load 1433(f16dPdxy3) - 1625:175(f16vec3) Load 1433(f16dPdxy3) - 1626: 7(f16vec4) ImageSampleExplicitLod 1622 1623 Grad 1624 1625 - 1627: 7(f16vec4) Load 1390(texel) - 1628: 7(f16vec4) FAdd 1627 1626 - Store 1390(texel) 1628 - 1629: 7(f16vec4) Load 1390(texel) - ReturnValue 1629 - FunctionEnd -29(testTextureGradOffset(): 7(f16vec4) Function None 8 - 30: Label - 1632(texel): 64(ptr) Variable Function - Store 1632(texel) 121 - 1633: 123 Load 125(s1D) - 1634: 52(float) Load 128(c1) - 1635: 52(float) Load 1393(dPdxy1) - 1636: 52(float) Load 1393(dPdxy1) - 1637: 7(f16vec4) ImageSampleExplicitLod 1633 1634 Grad ConstOffset 1635 1636 709 - 1638: 7(f16vec4) Load 1632(texel) - 1639: 7(f16vec4) FAdd 1638 1637 - Store 1632(texel) 1639 - 1640: 123 Load 125(s1D) - 1641:6(float16_t) Load 135(f16c1) - 1642:6(float16_t) Load 1401(f16dPdxy1) - 1643:6(float16_t) Load 1401(f16dPdxy1) - 1644: 7(f16vec4) ImageSampleExplicitLod 1640 1641 Grad ConstOffset 1642 1643 709 - 1645: 7(f16vec4) Load 1632(texel) - 1646: 7(f16vec4) FAdd 1645 1644 - Store 1632(texel) 1646 - 1647: 143 Load 145(s2D) - 1648: 53(fvec2) Load 148(c2) - 1649: 53(fvec2) Load 1409(dPdxy2) - 1650: 53(fvec2) Load 1409(dPdxy2) - 1651: 7(f16vec4) ImageSampleExplicitLod 1647 1648 Grad ConstOffset 1649 1650 722 - 1652: 7(f16vec4) Load 1632(texel) - 1653: 7(f16vec4) FAdd 1652 1651 - Store 1632(texel) 1653 - 1654: 143 Load 145(s2D) - 1655:154(f16vec2) Load 156(f16c2) - 1656:154(f16vec2) Load 1417(f16dPdxy2) - 1657:154(f16vec2) Load 1417(f16dPdxy2) - 1658: 7(f16vec4) ImageSampleExplicitLod 1654 1655 Grad ConstOffset 1656 1657 722 - 1659: 7(f16vec4) Load 1632(texel) - 1660: 7(f16vec4) FAdd 1659 1658 - Store 1632(texel) 1660 - 1661: 163 Load 165(s3D) - 1662: 167(fvec3) Load 169(c3) - 1663: 167(fvec3) Load 1425(dPdxy3) - 1664: 167(fvec3) Load 1425(dPdxy3) - 1665: 7(f16vec4) ImageSampleExplicitLod 1661 1662 Grad ConstOffset 1663 1664 735 - 1666: 7(f16vec4) Load 1632(texel) - 1667: 7(f16vec4) FAdd 1666 1665 - Store 1632(texel) 1667 - 1668: 163 Load 165(s3D) - 1669:175(f16vec3) Load 177(f16c3) - 1670:175(f16vec3) Load 1433(f16dPdxy3) - 1671:175(f16vec3) Load 1433(f16dPdxy3) - 1672: 7(f16vec4) ImageSampleExplicitLod 1668 1669 Grad ConstOffset 1670 1671 735 - 1673: 7(f16vec4) Load 1632(texel) - 1674: 7(f16vec4) FAdd 1673 1672 - Store 1632(texel) 1674 - 1675: 357 Load 359(s2DRect) - 1676: 53(fvec2) Load 148(c2) - 1677: 53(fvec2) Load 1409(dPdxy2) - 1678: 53(fvec2) Load 1409(dPdxy2) - 1679: 7(f16vec4) ImageSampleExplicitLod 1675 1676 Grad ConstOffset 1677 1678 722 - 1680: 7(f16vec4) Load 1632(texel) - 1681: 7(f16vec4) FAdd 1680 1679 - Store 1632(texel) 1681 - 1682: 357 Load 359(s2DRect) - 1683:154(f16vec2) Load 156(f16c2) - 1684:154(f16vec2) Load 1417(f16dPdxy2) - 1685:154(f16vec2) Load 1417(f16dPdxy2) - 1686: 7(f16vec4) ImageSampleExplicitLod 1682 1683 Grad ConstOffset 1684 1685 722 - 1687: 7(f16vec4) Load 1632(texel) - 1688: 7(f16vec4) FAdd 1687 1686 - Store 1632(texel) 1688 - 1689: 371 Load 373(s2DRectShadow) - 1690: 167(fvec3) Load 169(c3) - 1691: 53(fvec2) Load 1409(dPdxy2) - 1692: 53(fvec2) Load 1409(dPdxy2) - 1693: 52(float) CompositeExtract 1690 2 - 1694:6(float16_t) ImageSampleDrefExplicitLod 1689 1690 1693 Grad ConstOffset 1691 1692 722 - 1695: 208(ptr) AccessChain 1632(texel) 207 - 1696:6(float16_t) Load 1695 - 1697:6(float16_t) FAdd 1696 1694 - 1698: 208(ptr) AccessChain 1632(texel) 207 - Store 1698 1697 - 1699: 371 Load 373(s2DRectShadow) - 1700:154(f16vec2) Load 156(f16c2) - 1701: 52(float) Load 215(compare) - 1702:154(f16vec2) Load 1417(f16dPdxy2) - 1703:154(f16vec2) Load 1417(f16dPdxy2) - 1704:6(float16_t) ImageSampleDrefExplicitLod 1699 1700 1701 Grad ConstOffset 1702 1703 722 - 1705: 208(ptr) AccessChain 1632(texel) 207 - 1706:6(float16_t) Load 1705 - 1707:6(float16_t) FAdd 1706 1704 - 1708: 208(ptr) AccessChain 1632(texel) 207 - Store 1708 1707 - 1709: 199 Load 201(s1DShadow) - 1710: 167(fvec3) Load 169(c3) - 1711: 52(float) Load 1393(dPdxy1) - 1712: 52(float) Load 1393(dPdxy1) - 1713: 52(float) CompositeExtract 1710 2 - 1714:6(float16_t) ImageSampleDrefExplicitLod 1709 1710 1713 Grad ConstOffset 1711 1712 709 - 1715: 208(ptr) AccessChain 1632(texel) 207 - 1716:6(float16_t) Load 1715 - 1717:6(float16_t) FAdd 1716 1714 - 1718: 208(ptr) AccessChain 1632(texel) 207 - Store 1718 1717 - 1719: 199 Load 201(s1DShadow) - 1720:154(f16vec2) Load 156(f16c2) - 1721: 52(float) Load 215(compare) - 1722:6(float16_t) Load 1401(f16dPdxy1) - 1723:6(float16_t) Load 1401(f16dPdxy1) - 1724:6(float16_t) ImageSampleDrefExplicitLod 1719 1720 1721 Grad ConstOffset 1722 1723 709 - 1725: 208(ptr) AccessChain 1632(texel) 207 - 1726:6(float16_t) Load 1725 - 1727:6(float16_t) FAdd 1726 1724 - 1728: 208(ptr) AccessChain 1632(texel) 207 - Store 1728 1727 - 1729: 224 Load 226(s2DShadow) - 1730: 167(fvec3) Load 169(c3) - 1731: 53(fvec2) Load 1409(dPdxy2) - 1732: 53(fvec2) Load 1409(dPdxy2) - 1733: 52(float) CompositeExtract 1730 2 - 1734:6(float16_t) ImageSampleDrefExplicitLod 1729 1730 1733 Grad ConstOffset 1731 1732 722 - 1735: 208(ptr) AccessChain 1632(texel) 207 - 1736:6(float16_t) Load 1735 - 1737:6(float16_t) FAdd 1736 1734 - 1738: 208(ptr) AccessChain 1632(texel) 207 - Store 1738 1737 - 1739: 224 Load 226(s2DShadow) - 1740:154(f16vec2) Load 156(f16c2) - 1741: 52(float) Load 215(compare) - 1742:154(f16vec2) Load 1417(f16dPdxy2) - 1743:154(f16vec2) Load 1417(f16dPdxy2) - 1744:6(float16_t) ImageSampleDrefExplicitLod 1739 1740 1741 Grad ConstOffset 1742 1743 722 - 1745: 208(ptr) AccessChain 1632(texel) 207 - 1746:6(float16_t) Load 1745 - 1747:6(float16_t) FAdd 1746 1744 - 1748: 208(ptr) AccessChain 1632(texel) 207 - Store 1748 1747 - 1749: 269 Load 271(s1DArray) - 1750: 53(fvec2) Load 148(c2) - 1751: 52(float) Load 1393(dPdxy1) - 1752: 52(float) Load 1393(dPdxy1) - 1753: 7(f16vec4) ImageSampleExplicitLod 1749 1750 Grad ConstOffset 1751 1752 709 - 1754: 7(f16vec4) Load 1632(texel) - 1755: 7(f16vec4) FAdd 1754 1753 - Store 1632(texel) 1755 - 1756: 269 Load 271(s1DArray) - 1757:154(f16vec2) Load 156(f16c2) - 1758:6(float16_t) Load 1401(f16dPdxy1) - 1759:6(float16_t) Load 1401(f16dPdxy1) - 1760: 7(f16vec4) ImageSampleExplicitLod 1756 1757 Grad ConstOffset 1758 1759 709 - 1761: 7(f16vec4) Load 1632(texel) - 1762: 7(f16vec4) FAdd 1761 1760 - Store 1632(texel) 1762 - 1763: 284 Load 286(s2DArray) - 1764: 167(fvec3) Load 169(c3) - 1765: 53(fvec2) Load 1409(dPdxy2) - 1766: 53(fvec2) Load 1409(dPdxy2) - 1767: 7(f16vec4) ImageSampleExplicitLod 1763 1764 Grad ConstOffset 1765 1766 722 - 1768: 7(f16vec4) Load 1632(texel) - 1769: 7(f16vec4) FAdd 1768 1767 - Store 1632(texel) 1769 - 1770: 284 Load 286(s2DArray) - 1771:175(f16vec3) Load 177(f16c3) - 1772:154(f16vec2) Load 1417(f16dPdxy2) - 1773:154(f16vec2) Load 1417(f16dPdxy2) - 1774: 7(f16vec4) ImageSampleExplicitLod 1770 1771 Grad ConstOffset 1772 1773 722 - 1775: 7(f16vec4) Load 1632(texel) - 1776: 7(f16vec4) FAdd 1775 1774 - Store 1632(texel) 1776 - 1777: 316 Load 318(s1DArrayShadow) - 1778: 167(fvec3) Load 169(c3) - 1779: 52(float) Load 1393(dPdxy1) - 1780: 52(float) Load 1393(dPdxy1) - 1781: 52(float) CompositeExtract 1778 2 - 1782:6(float16_t) ImageSampleDrefExplicitLod 1777 1778 1781 Grad ConstOffset 1779 1780 709 - 1783: 208(ptr) AccessChain 1632(texel) 207 - 1784:6(float16_t) Load 1783 - 1785:6(float16_t) FAdd 1784 1782 - 1786: 208(ptr) AccessChain 1632(texel) 207 - Store 1786 1785 - 1787: 316 Load 318(s1DArrayShadow) - 1788:154(f16vec2) Load 156(f16c2) - 1789: 52(float) Load 215(compare) - 1790:6(float16_t) Load 1401(f16dPdxy1) - 1791:6(float16_t) Load 1401(f16dPdxy1) - 1792:6(float16_t) ImageSampleDrefExplicitLod 1787 1788 1789 Grad ConstOffset 1790 1791 709 - 1793: 208(ptr) AccessChain 1632(texel) 207 - 1794:6(float16_t) Load 1793 - 1795:6(float16_t) FAdd 1794 1792 - 1796: 208(ptr) AccessChain 1632(texel) 207 - Store 1796 1795 - 1797: 337 Load 339(s2DArrayShadow) - 1798: 249(fvec4) Load 251(c4) - 1799: 53(fvec2) Load 1409(dPdxy2) - 1800: 53(fvec2) Load 1409(dPdxy2) - 1801: 52(float) CompositeExtract 1798 3 - 1802:6(float16_t) ImageSampleDrefExplicitLod 1797 1798 1801 Grad ConstOffset 1799 1800 722 - 1803: 208(ptr) AccessChain 1632(texel) 207 - 1804:6(float16_t) Load 1803 - 1805:6(float16_t) FAdd 1804 1802 - 1806: 208(ptr) AccessChain 1632(texel) 207 - Store 1806 1805 - 1807: 337 Load 339(s2DArrayShadow) - 1808:175(f16vec3) Load 177(f16c3) - 1809: 52(float) Load 215(compare) - 1810:154(f16vec2) Load 1417(f16dPdxy2) - 1811:154(f16vec2) Load 1417(f16dPdxy2) - 1812:6(float16_t) ImageSampleDrefExplicitLod 1807 1808 1809 Grad ConstOffset 1810 1811 722 - 1813: 208(ptr) AccessChain 1632(texel) 207 - 1814:6(float16_t) Load 1813 - 1815:6(float16_t) FAdd 1814 1812 - 1816: 208(ptr) AccessChain 1632(texel) 207 - Store 1816 1815 - 1817: 7(f16vec4) Load 1632(texel) - ReturnValue 1817 - FunctionEnd -31(testTextureProjGrad(): 7(f16vec4) Function None 8 - 32: Label - 1820(texel): 64(ptr) Variable Function - Store 1820(texel) 121 - 1821: 123 Load 125(s1D) - 1822: 53(fvec2) Load 148(c2) - 1823: 52(float) Load 1393(dPdxy1) - 1824: 52(float) Load 1393(dPdxy1) - 1825: 7(f16vec4) ImageSampleProjExplicitLod 1821 1822 Grad 1823 1824 - 1826: 7(f16vec4) Load 1820(texel) - 1827: 7(f16vec4) FAdd 1826 1825 - Store 1820(texel) 1827 - 1828: 123 Load 125(s1D) - 1829:154(f16vec2) Load 156(f16c2) - 1830:6(float16_t) Load 1401(f16dPdxy1) - 1831:6(float16_t) Load 1401(f16dPdxy1) - 1832: 7(f16vec4) ImageSampleProjExplicitLod 1828 1829 Grad 1830 1831 - 1833: 7(f16vec4) Load 1820(texel) - 1834: 7(f16vec4) FAdd 1833 1832 - Store 1820(texel) 1834 - 1835: 123 Load 125(s1D) - 1836: 249(fvec4) Load 251(c4) - 1837: 52(float) Load 1393(dPdxy1) - 1838: 52(float) Load 1393(dPdxy1) - 1839: 52(float) CompositeExtract 1836 3 - 1840: 249(fvec4) CompositeInsert 1839 1836 1 - 1841: 7(f16vec4) ImageSampleProjExplicitLod 1835 1840 Grad 1837 1838 - 1842: 7(f16vec4) Load 1820(texel) - 1843: 7(f16vec4) FAdd 1842 1841 - Store 1820(texel) 1843 - 1844: 123 Load 125(s1D) - 1845: 7(f16vec4) Load 309(f16c4) - 1846:6(float16_t) Load 1401(f16dPdxy1) - 1847:6(float16_t) Load 1401(f16dPdxy1) - 1848:6(float16_t) CompositeExtract 1845 3 - 1849: 7(f16vec4) CompositeInsert 1848 1845 1 - 1850: 7(f16vec4) ImageSampleProjExplicitLod 1844 1849 Grad 1846 1847 - 1851: 7(f16vec4) Load 1820(texel) - 1852: 7(f16vec4) FAdd 1851 1850 - Store 1820(texel) 1852 - 1853: 143 Load 145(s2D) - 1854: 167(fvec3) Load 169(c3) - 1855: 53(fvec2) Load 1409(dPdxy2) - 1856: 53(fvec2) Load 1409(dPdxy2) - 1857: 7(f16vec4) ImageSampleProjExplicitLod 1853 1854 Grad 1855 1856 - 1858: 7(f16vec4) Load 1820(texel) - 1859: 7(f16vec4) FAdd 1858 1857 - Store 1820(texel) 1859 - 1860: 143 Load 145(s2D) - 1861:175(f16vec3) Load 177(f16c3) - 1862:154(f16vec2) Load 1417(f16dPdxy2) - 1863:154(f16vec2) Load 1417(f16dPdxy2) - 1864: 7(f16vec4) ImageSampleProjExplicitLod 1860 1861 Grad 1862 1863 - 1865: 7(f16vec4) Load 1820(texel) - 1866: 7(f16vec4) FAdd 1865 1864 - Store 1820(texel) 1866 - 1867: 143 Load 145(s2D) - 1868: 249(fvec4) Load 251(c4) - 1869: 53(fvec2) Load 1409(dPdxy2) - 1870: 53(fvec2) Load 1409(dPdxy2) - 1871: 52(float) CompositeExtract 1868 3 - 1872: 249(fvec4) CompositeInsert 1871 1868 2 - 1873: 7(f16vec4) ImageSampleProjExplicitLod 1867 1872 Grad 1869 1870 - 1874: 7(f16vec4) Load 1820(texel) - 1875: 7(f16vec4) FAdd 1874 1873 - Store 1820(texel) 1875 - 1876: 143 Load 145(s2D) - 1877: 7(f16vec4) Load 309(f16c4) - 1878:154(f16vec2) Load 1417(f16dPdxy2) - 1879:154(f16vec2) Load 1417(f16dPdxy2) - 1880:6(float16_t) CompositeExtract 1877 3 - 1881: 7(f16vec4) CompositeInsert 1880 1877 2 - 1882: 7(f16vec4) ImageSampleProjExplicitLod 1876 1881 Grad 1878 1879 - 1883: 7(f16vec4) Load 1820(texel) - 1884: 7(f16vec4) FAdd 1883 1882 - Store 1820(texel) 1884 - 1885: 163 Load 165(s3D) - 1886: 249(fvec4) Load 251(c4) - 1887: 167(fvec3) Load 1425(dPdxy3) - 1888: 167(fvec3) Load 1425(dPdxy3) - 1889: 7(f16vec4) ImageSampleProjExplicitLod 1885 1886 Grad 1887 1888 - 1890: 7(f16vec4) Load 1820(texel) - 1891: 7(f16vec4) FAdd 1890 1889 - Store 1820(texel) 1891 - 1892: 163 Load 165(s3D) - 1893: 7(f16vec4) Load 309(f16c4) - 1894:175(f16vec3) Load 1433(f16dPdxy3) - 1895:175(f16vec3) Load 1433(f16dPdxy3) - 1896: 7(f16vec4) ImageSampleProjExplicitLod 1892 1893 Grad 1894 1895 - 1897: 7(f16vec4) Load 1820(texel) - 1898: 7(f16vec4) FAdd 1897 1896 - Store 1820(texel) 1898 - 1899: 357 Load 359(s2DRect) - 1900: 167(fvec3) Load 169(c3) - 1901: 53(fvec2) Load 1409(dPdxy2) - 1902: 53(fvec2) Load 1409(dPdxy2) - 1903: 7(f16vec4) ImageSampleProjExplicitLod 1899 1900 Grad 1901 1902 - 1904: 7(f16vec4) Load 1820(texel) - 1905: 7(f16vec4) FAdd 1904 1903 - Store 1820(texel) 1905 - 1906: 357 Load 359(s2DRect) - 1907:175(f16vec3) Load 177(f16c3) - 1908:154(f16vec2) Load 1417(f16dPdxy2) - 1909:154(f16vec2) Load 1417(f16dPdxy2) - 1910: 7(f16vec4) ImageSampleProjExplicitLod 1906 1907 Grad 1908 1909 - 1911: 7(f16vec4) Load 1820(texel) - 1912: 7(f16vec4) FAdd 1911 1910 - Store 1820(texel) 1912 - 1913: 357 Load 359(s2DRect) - 1914: 249(fvec4) Load 251(c4) - 1915: 53(fvec2) Load 1409(dPdxy2) - 1916: 53(fvec2) Load 1409(dPdxy2) - 1917: 52(float) CompositeExtract 1914 3 - 1918: 249(fvec4) CompositeInsert 1917 1914 2 - 1919: 7(f16vec4) ImageSampleProjExplicitLod 1913 1918 Grad 1915 1916 - 1920: 7(f16vec4) Load 1820(texel) - 1921: 7(f16vec4) FAdd 1920 1919 - Store 1820(texel) 1921 - 1922: 357 Load 359(s2DRect) - 1923: 7(f16vec4) Load 309(f16c4) - 1924:154(f16vec2) Load 1417(f16dPdxy2) - 1925:154(f16vec2) Load 1417(f16dPdxy2) - 1926:6(float16_t) CompositeExtract 1923 3 - 1927: 7(f16vec4) CompositeInsert 1926 1923 2 - 1928: 7(f16vec4) ImageSampleProjExplicitLod 1922 1927 Grad 1924 1925 - 1929: 7(f16vec4) Load 1820(texel) - 1930: 7(f16vec4) FAdd 1929 1928 - Store 1820(texel) 1930 - 1931: 371 Load 373(s2DRectShadow) - 1932: 249(fvec4) Load 251(c4) - 1933: 53(fvec2) Load 1409(dPdxy2) - 1934: 53(fvec2) Load 1409(dPdxy2) - 1935: 52(float) CompositeExtract 1932 2 - 1936: 52(float) CompositeExtract 1932 3 - 1937: 249(fvec4) CompositeInsert 1936 1932 2 - 1938:6(float16_t) ImageSampleProjDrefExplicitLod 1931 1937 1935 Grad 1933 1934 - 1939: 208(ptr) AccessChain 1820(texel) 207 - 1940:6(float16_t) Load 1939 - 1941:6(float16_t) FAdd 1940 1938 - 1942: 208(ptr) AccessChain 1820(texel) 207 - Store 1942 1941 - 1943: 371 Load 373(s2DRectShadow) - 1944:175(f16vec3) Load 177(f16c3) - 1945: 52(float) Load 215(compare) - 1946:154(f16vec2) Load 1417(f16dPdxy2) - 1947:154(f16vec2) Load 1417(f16dPdxy2) - 1948:6(float16_t) ImageSampleProjDrefExplicitLod 1943 1944 1945 Grad 1946 1947 - 1949: 208(ptr) AccessChain 1820(texel) 207 - 1950:6(float16_t) Load 1949 - 1951:6(float16_t) FAdd 1950 1948 - 1952: 208(ptr) AccessChain 1820(texel) 207 - Store 1952 1951 - 1953: 199 Load 201(s1DShadow) - 1954: 249(fvec4) Load 251(c4) - 1955: 52(float) Load 1393(dPdxy1) - 1956: 52(float) Load 1393(dPdxy1) - 1957: 52(float) CompositeExtract 1954 2 - 1958: 52(float) CompositeExtract 1954 3 - 1959: 249(fvec4) CompositeInsert 1958 1954 1 - 1960:6(float16_t) ImageSampleProjDrefExplicitLod 1953 1959 1957 Grad 1955 1956 - 1961: 208(ptr) AccessChain 1820(texel) 207 - 1962:6(float16_t) Load 1961 - 1963:6(float16_t) FAdd 1962 1960 - 1964: 208(ptr) AccessChain 1820(texel) 207 - Store 1964 1963 - 1965: 199 Load 201(s1DShadow) - 1966:175(f16vec3) Load 177(f16c3) - 1967: 52(float) Load 215(compare) - 1968:6(float16_t) Load 1401(f16dPdxy1) - 1969:6(float16_t) Load 1401(f16dPdxy1) - 1970:6(float16_t) CompositeExtract 1966 2 - 1971:175(f16vec3) CompositeInsert 1970 1966 1 - 1972:6(float16_t) ImageSampleProjDrefExplicitLod 1965 1971 1967 Grad 1968 1969 - 1973: 208(ptr) AccessChain 1820(texel) 207 - 1974:6(float16_t) Load 1973 - 1975:6(float16_t) FAdd 1974 1972 - 1976: 208(ptr) AccessChain 1820(texel) 207 - Store 1976 1975 - 1977: 224 Load 226(s2DShadow) - 1978: 249(fvec4) Load 251(c4) - 1979: 53(fvec2) Load 1409(dPdxy2) - 1980: 53(fvec2) Load 1409(dPdxy2) - 1981: 52(float) CompositeExtract 1978 2 - 1982: 52(float) CompositeExtract 1978 3 - 1983: 249(fvec4) CompositeInsert 1982 1978 2 - 1984:6(float16_t) ImageSampleProjDrefExplicitLod 1977 1983 1981 Grad 1979 1980 - 1985: 208(ptr) AccessChain 1820(texel) 207 - 1986:6(float16_t) Load 1985 - 1987:6(float16_t) FAdd 1986 1984 - 1988: 208(ptr) AccessChain 1820(texel) 207 - Store 1988 1987 - 1989: 224 Load 226(s2DShadow) - 1990:175(f16vec3) Load 177(f16c3) - 1991: 52(float) Load 215(compare) - 1992:154(f16vec2) Load 1417(f16dPdxy2) - 1993:154(f16vec2) Load 1417(f16dPdxy2) - 1994:6(float16_t) ImageSampleProjDrefExplicitLod 1989 1990 1991 Grad 1992 1993 - 1995: 208(ptr) AccessChain 1820(texel) 207 - 1996:6(float16_t) Load 1995 - 1997:6(float16_t) FAdd 1996 1994 - 1998: 208(ptr) AccessChain 1820(texel) 207 - Store 1998 1997 - 1999: 7(f16vec4) Load 1820(texel) - ReturnValue 1999 - FunctionEnd -33(testTextureProjGradoffset(): 7(f16vec4) Function None 8 - 34: Label - 2002(texel): 64(ptr) Variable Function - Store 2002(texel) 121 - 2003: 123 Load 125(s1D) - 2004: 53(fvec2) Load 148(c2) - 2005: 52(float) Load 1393(dPdxy1) - 2006: 52(float) Load 1393(dPdxy1) - 2007: 7(f16vec4) ImageSampleProjExplicitLod 2003 2004 Grad ConstOffset 2005 2006 709 - 2008: 7(f16vec4) Load 2002(texel) - 2009: 7(f16vec4) FAdd 2008 2007 - Store 2002(texel) 2009 - 2010: 123 Load 125(s1D) - 2011:154(f16vec2) Load 156(f16c2) - 2012:6(float16_t) Load 1401(f16dPdxy1) - 2013:6(float16_t) Load 1401(f16dPdxy1) - 2014: 7(f16vec4) ImageSampleProjExplicitLod 2010 2011 Grad ConstOffset 2012 2013 709 - 2015: 7(f16vec4) Load 2002(texel) - 2016: 7(f16vec4) FAdd 2015 2014 - Store 2002(texel) 2016 - 2017: 123 Load 125(s1D) - 2018: 249(fvec4) Load 251(c4) - 2019: 52(float) Load 1393(dPdxy1) - 2020: 52(float) Load 1393(dPdxy1) - 2021: 52(float) CompositeExtract 2018 3 - 2022: 249(fvec4) CompositeInsert 2021 2018 1 - 2023: 7(f16vec4) ImageSampleProjExplicitLod 2017 2022 Grad ConstOffset 2019 2020 709 - 2024: 7(f16vec4) Load 2002(texel) - 2025: 7(f16vec4) FAdd 2024 2023 - Store 2002(texel) 2025 - 2026: 123 Load 125(s1D) - 2027: 7(f16vec4) Load 309(f16c4) - 2028:6(float16_t) Load 1401(f16dPdxy1) - 2029:6(float16_t) Load 1401(f16dPdxy1) - 2030:6(float16_t) CompositeExtract 2027 3 - 2031: 7(f16vec4) CompositeInsert 2030 2027 1 - 2032: 7(f16vec4) ImageSampleProjExplicitLod 2026 2031 Grad ConstOffset 2028 2029 709 - 2033: 7(f16vec4) Load 2002(texel) - 2034: 7(f16vec4) FAdd 2033 2032 - Store 2002(texel) 2034 - 2035: 143 Load 145(s2D) - 2036: 167(fvec3) Load 169(c3) - 2037: 53(fvec2) Load 1409(dPdxy2) - 2038: 53(fvec2) Load 1409(dPdxy2) - 2039: 7(f16vec4) ImageSampleProjExplicitLod 2035 2036 Grad ConstOffset 2037 2038 722 - 2040: 7(f16vec4) Load 2002(texel) - 2041: 7(f16vec4) FAdd 2040 2039 - Store 2002(texel) 2041 - 2042: 143 Load 145(s2D) - 2043:175(f16vec3) Load 177(f16c3) - 2044:154(f16vec2) Load 1417(f16dPdxy2) - 2045:154(f16vec2) Load 1417(f16dPdxy2) - 2046: 7(f16vec4) ImageSampleProjExplicitLod 2042 2043 Grad ConstOffset 2044 2045 722 - 2047: 7(f16vec4) Load 2002(texel) - 2048: 7(f16vec4) FAdd 2047 2046 - Store 2002(texel) 2048 - 2049: 143 Load 145(s2D) - 2050: 249(fvec4) Load 251(c4) - 2051: 53(fvec2) Load 1409(dPdxy2) - 2052: 53(fvec2) Load 1409(dPdxy2) - 2053: 52(float) CompositeExtract 2050 3 - 2054: 249(fvec4) CompositeInsert 2053 2050 2 - 2055: 7(f16vec4) ImageSampleProjExplicitLod 2049 2054 Grad ConstOffset 2051 2052 722 - 2056: 7(f16vec4) Load 2002(texel) - 2057: 7(f16vec4) FAdd 2056 2055 - Store 2002(texel) 2057 - 2058: 143 Load 145(s2D) - 2059: 7(f16vec4) Load 309(f16c4) - 2060:154(f16vec2) Load 1417(f16dPdxy2) - 2061:154(f16vec2) Load 1417(f16dPdxy2) - 2062:6(float16_t) CompositeExtract 2059 3 - 2063: 7(f16vec4) CompositeInsert 2062 2059 2 - 2064: 7(f16vec4) ImageSampleProjExplicitLod 2058 2063 Grad ConstOffset 2060 2061 722 - 2065: 7(f16vec4) Load 2002(texel) - 2066: 7(f16vec4) FAdd 2065 2064 - Store 2002(texel) 2066 - 2067: 357 Load 359(s2DRect) - 2068: 167(fvec3) Load 169(c3) - 2069: 53(fvec2) Load 1409(dPdxy2) - 2070: 53(fvec2) Load 1409(dPdxy2) - 2071: 7(f16vec4) ImageSampleProjExplicitLod 2067 2068 Grad ConstOffset 2069 2070 722 - 2072: 7(f16vec4) Load 2002(texel) - 2073: 7(f16vec4) FAdd 2072 2071 - Store 2002(texel) 2073 - 2074: 357 Load 359(s2DRect) - 2075:175(f16vec3) Load 177(f16c3) - 2076:154(f16vec2) Load 1417(f16dPdxy2) - 2077:154(f16vec2) Load 1417(f16dPdxy2) - 2078: 7(f16vec4) ImageSampleProjExplicitLod 2074 2075 Grad ConstOffset 2076 2077 722 - 2079: 7(f16vec4) Load 2002(texel) - 2080: 7(f16vec4) FAdd 2079 2078 - Store 2002(texel) 2080 - 2081: 357 Load 359(s2DRect) - 2082: 249(fvec4) Load 251(c4) - 2083: 53(fvec2) Load 1409(dPdxy2) - 2084: 53(fvec2) Load 1409(dPdxy2) - 2085: 52(float) CompositeExtract 2082 3 - 2086: 249(fvec4) CompositeInsert 2085 2082 2 - 2087: 7(f16vec4) ImageSampleProjExplicitLod 2081 2086 Grad ConstOffset 2083 2084 722 - 2088: 7(f16vec4) Load 2002(texel) - 2089: 7(f16vec4) FAdd 2088 2087 - Store 2002(texel) 2089 - 2090: 357 Load 359(s2DRect) - 2091: 7(f16vec4) Load 309(f16c4) - 2092:154(f16vec2) Load 1417(f16dPdxy2) - 2093:154(f16vec2) Load 1417(f16dPdxy2) - 2094:6(float16_t) CompositeExtract 2091 3 - 2095: 7(f16vec4) CompositeInsert 2094 2091 2 - 2096: 7(f16vec4) ImageSampleProjExplicitLod 2090 2095 Grad ConstOffset 2092 2093 722 - 2097: 7(f16vec4) Load 2002(texel) - 2098: 7(f16vec4) FAdd 2097 2096 - Store 2002(texel) 2098 - 2099: 371 Load 373(s2DRectShadow) - 2100: 249(fvec4) Load 251(c4) - 2101: 53(fvec2) Load 1409(dPdxy2) - 2102: 53(fvec2) Load 1409(dPdxy2) - 2103: 52(float) CompositeExtract 2100 2 - 2104: 52(float) CompositeExtract 2100 3 - 2105: 249(fvec4) CompositeInsert 2104 2100 2 - 2106:6(float16_t) ImageSampleProjDrefExplicitLod 2099 2105 2103 Grad ConstOffset 2101 2102 722 - 2107: 208(ptr) AccessChain 2002(texel) 207 - 2108:6(float16_t) Load 2107 - 2109:6(float16_t) FAdd 2108 2106 - 2110: 208(ptr) AccessChain 2002(texel) 207 - Store 2110 2109 - 2111: 371 Load 373(s2DRectShadow) - 2112:175(f16vec3) Load 177(f16c3) - 2113: 52(float) Load 215(compare) - 2114:154(f16vec2) Load 1417(f16dPdxy2) - 2115:154(f16vec2) Load 1417(f16dPdxy2) - 2116:6(float16_t) ImageSampleProjDrefExplicitLod 2111 2112 2113 Grad ConstOffset 2114 2115 722 - 2117: 208(ptr) AccessChain 2002(texel) 207 - 2118:6(float16_t) Load 2117 - 2119:6(float16_t) FAdd 2118 2116 - 2120: 208(ptr) AccessChain 2002(texel) 207 - Store 2120 2119 - 2121: 163 Load 165(s3D) - 2122: 249(fvec4) Load 251(c4) - 2123: 167(fvec3) Load 1425(dPdxy3) - 2124: 167(fvec3) Load 1425(dPdxy3) - 2125: 7(f16vec4) ImageSampleProjExplicitLod 2121 2122 Grad ConstOffset 2123 2124 735 - 2126: 7(f16vec4) Load 2002(texel) - 2127: 7(f16vec4) FAdd 2126 2125 - Store 2002(texel) 2127 - 2128: 163 Load 165(s3D) - 2129: 7(f16vec4) Load 309(f16c4) - 2130:175(f16vec3) Load 1433(f16dPdxy3) - 2131:175(f16vec3) Load 1433(f16dPdxy3) - 2132: 7(f16vec4) ImageSampleProjExplicitLod 2128 2129 Grad ConstOffset 2130 2131 735 - 2133: 7(f16vec4) Load 2002(texel) - 2134: 7(f16vec4) FAdd 2133 2132 - Store 2002(texel) 2134 - 2135: 199 Load 201(s1DShadow) - 2136: 249(fvec4) Load 251(c4) - 2137: 52(float) Load 1393(dPdxy1) - 2138: 52(float) Load 1393(dPdxy1) - 2139: 52(float) CompositeExtract 2136 2 - 2140: 52(float) CompositeExtract 2136 3 - 2141: 249(fvec4) CompositeInsert 2140 2136 1 - 2142:6(float16_t) ImageSampleProjDrefExplicitLod 2135 2141 2139 Grad ConstOffset 2137 2138 709 - 2143: 208(ptr) AccessChain 2002(texel) 207 - 2144:6(float16_t) Load 2143 - 2145:6(float16_t) FAdd 2144 2142 - 2146: 208(ptr) AccessChain 2002(texel) 207 - Store 2146 2145 - 2147: 199 Load 201(s1DShadow) - 2148:175(f16vec3) Load 177(f16c3) - 2149: 52(float) Load 215(compare) - 2150:6(float16_t) Load 1401(f16dPdxy1) - 2151:6(float16_t) Load 1401(f16dPdxy1) - 2152:6(float16_t) CompositeExtract 2148 2 - 2153:175(f16vec3) CompositeInsert 2152 2148 1 - 2154:6(float16_t) ImageSampleProjDrefExplicitLod 2147 2153 2149 Grad ConstOffset 2150 2151 709 - 2155: 208(ptr) AccessChain 2002(texel) 207 - 2156:6(float16_t) Load 2155 - 2157:6(float16_t) FAdd 2156 2154 - 2158: 208(ptr) AccessChain 2002(texel) 207 - Store 2158 2157 - 2159: 224 Load 226(s2DShadow) - 2160: 249(fvec4) Load 251(c4) - 2161: 53(fvec2) Load 1409(dPdxy2) - 2162: 53(fvec2) Load 1409(dPdxy2) - 2163: 52(float) CompositeExtract 2160 2 - 2164: 52(float) CompositeExtract 2160 3 - 2165: 249(fvec4) CompositeInsert 2164 2160 2 - 2166:6(float16_t) ImageSampleProjDrefExplicitLod 2159 2165 2163 Grad ConstOffset 2161 2162 722 - 2167: 208(ptr) AccessChain 2002(texel) 207 - 2168:6(float16_t) Load 2167 - 2169:6(float16_t) FAdd 2168 2166 - 2170: 208(ptr) AccessChain 2002(texel) 207 - Store 2170 2169 - 2171: 224 Load 226(s2DShadow) - 2172:175(f16vec3) Load 177(f16c3) - 2173: 52(float) Load 215(compare) - 2174:154(f16vec2) Load 1417(f16dPdxy2) - 2175:154(f16vec2) Load 1417(f16dPdxy2) - 2176:6(float16_t) ImageSampleProjDrefExplicitLod 2171 2172 2173 Grad ConstOffset 2174 2175 722 - 2177: 208(ptr) AccessChain 2002(texel) 207 - 2178:6(float16_t) Load 2177 - 2179:6(float16_t) FAdd 2178 2176 - 2180: 208(ptr) AccessChain 2002(texel) 207 - Store 2180 2179 - 2181: 7(f16vec4) Load 2002(texel) - ReturnValue 2181 - FunctionEnd -35(testTextureGather(): 7(f16vec4) Function None 8 - 36: Label - 2184(texel): 64(ptr) Variable Function - Store 2184(texel) 121 - 2185: 143 Load 145(s2D) - 2186: 53(fvec2) Load 148(c2) - 2188: 7(f16vec4) ImageGather 2185 2186 2187 - 2189: 7(f16vec4) Load 2184(texel) - 2190: 7(f16vec4) FAdd 2189 2188 - Store 2184(texel) 2190 - 2191: 143 Load 145(s2D) - 2192:154(f16vec2) Load 156(f16c2) - 2193:6(float16_t) Load 137(f16bias) - 2194: 7(f16vec4) ImageGather 2191 2192 2187 Bias 2193 - 2195: 7(f16vec4) Load 2184(texel) - 2196: 7(f16vec4) FAdd 2195 2194 - Store 2184(texel) 2196 - 2197: 284 Load 286(s2DArray) - 2198: 167(fvec3) Load 169(c3) - 2199: 7(f16vec4) ImageGather 2197 2198 2187 - 2200: 7(f16vec4) Load 2184(texel) - 2201: 7(f16vec4) FAdd 2200 2199 - Store 2184(texel) 2201 - 2202: 284 Load 286(s2DArray) - 2203:175(f16vec3) Load 177(f16c3) - 2204:6(float16_t) Load 137(f16bias) - 2205: 7(f16vec4) ImageGather 2202 2203 2187 Bias 2204 - 2206: 7(f16vec4) Load 2184(texel) - 2207: 7(f16vec4) FAdd 2206 2205 - Store 2184(texel) 2207 - 2208: 184 Load 186(sCube) - 2209: 167(fvec3) Load 169(c3) - 2210: 7(f16vec4) ImageGather 2208 2209 2187 - 2211: 7(f16vec4) Load 2184(texel) - 2212: 7(f16vec4) FAdd 2211 2210 - Store 2184(texel) 2212 - 2213: 184 Load 186(sCube) - 2214:175(f16vec3) Load 177(f16c3) - 2215:6(float16_t) Load 137(f16bias) - 2216: 7(f16vec4) ImageGather 2213 2214 2187 Bias 2215 - 2217: 7(f16vec4) Load 2184(texel) - 2218: 7(f16vec4) FAdd 2217 2216 - Store 2184(texel) 2218 - 2219: 299 Load 301(sCubeArray) - 2220: 249(fvec4) Load 251(c4) - 2221: 7(f16vec4) ImageGather 2219 2220 2187 - 2222: 7(f16vec4) Load 2184(texel) - 2223: 7(f16vec4) FAdd 2222 2221 - Store 2184(texel) 2223 - 2224: 299 Load 301(sCubeArray) - 2225: 7(f16vec4) Load 309(f16c4) - 2226:6(float16_t) Load 137(f16bias) - 2227: 7(f16vec4) ImageGather 2224 2225 2187 Bias 2226 - 2228: 7(f16vec4) Load 2184(texel) - 2229: 7(f16vec4) FAdd 2228 2227 - Store 2184(texel) 2229 - 2230: 357 Load 359(s2DRect) - 2231: 53(fvec2) Load 148(c2) - 2232: 7(f16vec4) ImageGather 2230 2231 2187 - 2233: 7(f16vec4) Load 2184(texel) - 2234: 7(f16vec4) FAdd 2233 2232 - Store 2184(texel) 2234 - 2235: 357 Load 359(s2DRect) - 2236:154(f16vec2) Load 156(f16c2) - 2237: 7(f16vec4) ImageGather 2235 2236 2187 - 2238: 7(f16vec4) Load 2184(texel) - 2239: 7(f16vec4) FAdd 2238 2237 - Store 2184(texel) 2239 - 2240: 224 Load 226(s2DShadow) - 2241: 53(fvec2) Load 148(c2) - 2242: 52(float) Load 215(compare) - 2243: 7(f16vec4) ImageDrefGather 2240 2241 2242 - 2244: 7(f16vec4) Load 2184(texel) - 2245: 7(f16vec4) FAdd 2244 2243 - Store 2184(texel) 2245 - 2246: 224 Load 226(s2DShadow) - 2247:154(f16vec2) Load 156(f16c2) - 2248: 52(float) Load 215(compare) - 2249: 7(f16vec4) ImageDrefGather 2246 2247 2248 - 2250: 7(f16vec4) Load 2184(texel) - 2251: 7(f16vec4) FAdd 2250 2249 - Store 2184(texel) 2251 - 2252: 337 Load 339(s2DArrayShadow) - 2253: 167(fvec3) Load 169(c3) - 2254: 52(float) Load 215(compare) - 2255: 7(f16vec4) ImageDrefGather 2252 2253 2254 - 2256: 7(f16vec4) Load 2184(texel) - 2257: 7(f16vec4) FAdd 2256 2255 - Store 2184(texel) 2257 - 2258: 337 Load 339(s2DArrayShadow) - 2259:175(f16vec3) Load 177(f16c3) - 2260: 52(float) Load 215(compare) - 2261: 7(f16vec4) ImageDrefGather 2258 2259 2260 - 2262: 7(f16vec4) Load 2184(texel) - 2263: 7(f16vec4) FAdd 2262 2261 - Store 2184(texel) 2263 - 2264: 245 Load 247(sCubeShadow) - 2265: 167(fvec3) Load 169(c3) - 2266: 52(float) Load 215(compare) - 2267: 7(f16vec4) ImageDrefGather 2264 2265 2266 - 2268: 7(f16vec4) Load 2184(texel) - 2269: 7(f16vec4) FAdd 2268 2267 - Store 2184(texel) 2269 - 2270: 245 Load 247(sCubeShadow) - 2271:175(f16vec3) Load 177(f16c3) - 2272: 52(float) Load 215(compare) - 2273: 7(f16vec4) ImageDrefGather 2270 2271 2272 - 2274: 7(f16vec4) Load 2184(texel) - 2275: 7(f16vec4) FAdd 2274 2273 - Store 2184(texel) 2275 - 2276: 391 Load 393(sCubeArrayShadow) - 2277: 249(fvec4) Load 251(c4) - 2278: 52(float) Load 215(compare) - 2279: 7(f16vec4) ImageDrefGather 2276 2277 2278 - 2280: 7(f16vec4) Load 2184(texel) - 2281: 7(f16vec4) FAdd 2280 2279 - Store 2184(texel) 2281 - 2282: 391 Load 393(sCubeArrayShadow) - 2283: 7(f16vec4) Load 309(f16c4) - 2284: 52(float) Load 215(compare) - 2285: 7(f16vec4) ImageDrefGather 2282 2283 2284 - 2286: 7(f16vec4) Load 2184(texel) - 2287: 7(f16vec4) FAdd 2286 2285 - Store 2184(texel) 2287 - 2288: 371 Load 373(s2DRectShadow) - 2289: 53(fvec2) Load 148(c2) - 2290: 52(float) Load 215(compare) - 2291: 7(f16vec4) ImageDrefGather 2288 2289 2290 - 2292: 7(f16vec4) Load 2184(texel) - 2293: 7(f16vec4) FAdd 2292 2291 - Store 2184(texel) 2293 - 2294: 371 Load 373(s2DRectShadow) - 2295:154(f16vec2) Load 156(f16c2) - 2296: 52(float) Load 215(compare) - 2297: 7(f16vec4) ImageDrefGather 2294 2295 2296 - 2298: 7(f16vec4) Load 2184(texel) - 2299: 7(f16vec4) FAdd 2298 2297 - Store 2184(texel) 2299 - 2300: 7(f16vec4) Load 2184(texel) - ReturnValue 2300 - FunctionEnd -37(testTextureGatherOffset(): 7(f16vec4) Function None 8 - 38: Label - 2303(texel): 64(ptr) Variable Function - Store 2303(texel) 121 - 2304: 143 Load 145(s2D) - 2305: 53(fvec2) Load 148(c2) - 2306: 7(f16vec4) ImageGather 2304 2305 2187 ConstOffset 722 - 2307: 7(f16vec4) Load 2303(texel) - 2308: 7(f16vec4) FAdd 2307 2306 - Store 2303(texel) 2308 - 2309: 143 Load 145(s2D) - 2310:154(f16vec2) Load 156(f16c2) - 2311:6(float16_t) Load 137(f16bias) - 2312: 7(f16vec4) ImageGather 2309 2310 2187 Bias ConstOffset 2311 722 - 2313: 7(f16vec4) Load 2303(texel) - 2314: 7(f16vec4) FAdd 2313 2312 - Store 2303(texel) 2314 - 2315: 284 Load 286(s2DArray) - 2316: 167(fvec3) Load 169(c3) - 2317: 7(f16vec4) ImageGather 2315 2316 2187 ConstOffset 722 - 2318: 7(f16vec4) Load 2303(texel) - 2319: 7(f16vec4) FAdd 2318 2317 - Store 2303(texel) 2319 - 2320: 284 Load 286(s2DArray) - 2321:175(f16vec3) Load 177(f16c3) - 2322:6(float16_t) Load 137(f16bias) - 2323: 7(f16vec4) ImageGather 2320 2321 2187 Bias ConstOffset 2322 722 - 2324: 7(f16vec4) Load 2303(texel) - 2325: 7(f16vec4) FAdd 2324 2323 - Store 2303(texel) 2325 - 2326: 357 Load 359(s2DRect) - 2327: 53(fvec2) Load 148(c2) - 2328: 7(f16vec4) ImageGather 2326 2327 2187 ConstOffset 722 - 2329: 7(f16vec4) Load 2303(texel) - 2330: 7(f16vec4) FAdd 2329 2328 - Store 2303(texel) 2330 - 2331: 357 Load 359(s2DRect) - 2332:154(f16vec2) Load 156(f16c2) - 2333: 7(f16vec4) ImageGather 2331 2332 2187 ConstOffset 722 - 2334: 7(f16vec4) Load 2303(texel) - 2335: 7(f16vec4) FAdd 2334 2333 - Store 2303(texel) 2335 - 2336: 224 Load 226(s2DShadow) - 2337: 53(fvec2) Load 148(c2) - 2338: 52(float) Load 215(compare) - 2339: 7(f16vec4) ImageDrefGather 2336 2337 2338 ConstOffset 722 - 2340: 7(f16vec4) Load 2303(texel) - 2341: 7(f16vec4) FAdd 2340 2339 - Store 2303(texel) 2341 - 2342: 224 Load 226(s2DShadow) - 2343:154(f16vec2) Load 156(f16c2) - 2344: 52(float) Load 215(compare) - 2345: 7(f16vec4) ImageDrefGather 2342 2343 2344 ConstOffset 722 - 2346: 7(f16vec4) Load 2303(texel) - 2347: 7(f16vec4) FAdd 2346 2345 - Store 2303(texel) 2347 - 2348: 337 Load 339(s2DArrayShadow) - 2349: 167(fvec3) Load 169(c3) - 2350: 52(float) Load 215(compare) - 2351: 7(f16vec4) ImageDrefGather 2348 2349 2350 ConstOffset 722 - 2352: 7(f16vec4) Load 2303(texel) - 2353: 7(f16vec4) FAdd 2352 2351 - Store 2303(texel) 2353 - 2354: 337 Load 339(s2DArrayShadow) - 2355:175(f16vec3) Load 177(f16c3) - 2356: 52(float) Load 215(compare) - 2357: 7(f16vec4) ImageDrefGather 2354 2355 2356 ConstOffset 722 - 2358: 7(f16vec4) Load 2303(texel) - 2359: 7(f16vec4) FAdd 2358 2357 - Store 2303(texel) 2359 - 2360: 371 Load 373(s2DRectShadow) - 2361: 53(fvec2) Load 148(c2) - 2362: 52(float) Load 215(compare) - 2363: 7(f16vec4) ImageDrefGather 2360 2361 2362 ConstOffset 722 - 2364: 7(f16vec4) Load 2303(texel) - 2365: 7(f16vec4) FAdd 2364 2363 - Store 2303(texel) 2365 - 2366: 371 Load 373(s2DRectShadow) - 2367:154(f16vec2) Load 156(f16c2) - 2368: 52(float) Load 215(compare) - 2369: 7(f16vec4) ImageDrefGather 2366 2367 2368 ConstOffset 722 - 2370: 7(f16vec4) Load 2303(texel) - 2371: 7(f16vec4) FAdd 2370 2369 - Store 2303(texel) 2371 - 2372: 7(f16vec4) Load 2303(texel) - ReturnValue 2372 - FunctionEnd -39(testTextureGatherOffsets(): 7(f16vec4) Function None 8 - 40: Label - 2375(texel): 64(ptr) Variable Function - Store 2375(texel) 121 - 2376: 143 Load 145(s2D) - 2377: 53(fvec2) Load 148(c2) - 2381: 7(f16vec4) ImageGather 2376 2377 2187 ConstOffsets 2380 - 2382: 7(f16vec4) Load 2375(texel) - 2383: 7(f16vec4) FAdd 2382 2381 - Store 2375(texel) 2383 - 2384: 143 Load 145(s2D) - 2385:154(f16vec2) Load 156(f16c2) - 2386:6(float16_t) Load 137(f16bias) - 2387: 7(f16vec4) ImageGather 2384 2385 2187 Bias ConstOffsets 2386 2380 - 2388: 7(f16vec4) Load 2375(texel) - 2389: 7(f16vec4) FAdd 2388 2387 - Store 2375(texel) 2389 - 2390: 284 Load 286(s2DArray) - 2391: 167(fvec3) Load 169(c3) - 2392: 7(f16vec4) ImageGather 2390 2391 2187 ConstOffsets 2380 - 2393: 7(f16vec4) Load 2375(texel) - 2394: 7(f16vec4) FAdd 2393 2392 - Store 2375(texel) 2394 - 2395: 284 Load 286(s2DArray) - 2396:175(f16vec3) Load 177(f16c3) - 2397:6(float16_t) Load 137(f16bias) - 2398: 7(f16vec4) ImageGather 2395 2396 2187 Bias ConstOffsets 2397 2380 - 2399: 7(f16vec4) Load 2375(texel) - 2400: 7(f16vec4) FAdd 2399 2398 - Store 2375(texel) 2400 - 2401: 357 Load 359(s2DRect) - 2402: 53(fvec2) Load 148(c2) - 2403: 7(f16vec4) ImageGather 2401 2402 2187 ConstOffsets 2380 - 2404: 7(f16vec4) Load 2375(texel) - 2405: 7(f16vec4) FAdd 2404 2403 - Store 2375(texel) 2405 - 2406: 357 Load 359(s2DRect) - 2407:154(f16vec2) Load 156(f16c2) - 2408: 7(f16vec4) ImageGather 2406 2407 2187 ConstOffsets 2380 - 2409: 7(f16vec4) Load 2375(texel) - 2410: 7(f16vec4) FAdd 2409 2408 - Store 2375(texel) 2410 - 2411: 224 Load 226(s2DShadow) - 2412: 53(fvec2) Load 148(c2) - 2413: 52(float) Load 215(compare) - 2414: 7(f16vec4) ImageDrefGather 2411 2412 2413 ConstOffsets 2380 - 2415: 7(f16vec4) Load 2375(texel) - 2416: 7(f16vec4) FAdd 2415 2414 - Store 2375(texel) 2416 - 2417: 224 Load 226(s2DShadow) - 2418:154(f16vec2) Load 156(f16c2) - 2419: 52(float) Load 215(compare) - 2420: 7(f16vec4) ImageDrefGather 2417 2418 2419 ConstOffsets 2380 - 2421: 7(f16vec4) Load 2375(texel) - 2422: 7(f16vec4) FAdd 2421 2420 - Store 2375(texel) 2422 - 2423: 337 Load 339(s2DArrayShadow) - 2424: 167(fvec3) Load 169(c3) - 2425: 52(float) Load 215(compare) - 2426: 7(f16vec4) ImageDrefGather 2423 2424 2425 ConstOffsets 2380 - 2427: 7(f16vec4) Load 2375(texel) - 2428: 7(f16vec4) FAdd 2427 2426 - Store 2375(texel) 2428 - 2429: 337 Load 339(s2DArrayShadow) - 2430:175(f16vec3) Load 177(f16c3) - 2431: 52(float) Load 215(compare) - 2432: 7(f16vec4) ImageDrefGather 2429 2430 2431 ConstOffsets 2380 - 2433: 7(f16vec4) Load 2375(texel) - 2434: 7(f16vec4) FAdd 2433 2432 - Store 2375(texel) 2434 - 2435: 371 Load 373(s2DRectShadow) - 2436: 53(fvec2) Load 148(c2) - 2437: 52(float) Load 215(compare) - 2438: 7(f16vec4) ImageDrefGather 2435 2436 2437 ConstOffsets 2380 - 2439: 7(f16vec4) Load 2375(texel) - 2440: 7(f16vec4) FAdd 2439 2438 - Store 2375(texel) 2440 - 2441: 371 Load 373(s2DRectShadow) - 2442:154(f16vec2) Load 156(f16c2) - 2443: 52(float) Load 215(compare) - 2444: 7(f16vec4) ImageDrefGather 2441 2442 2443 ConstOffsets 2380 - 2445: 7(f16vec4) Load 2375(texel) - 2446: 7(f16vec4) FAdd 2445 2444 - Store 2375(texel) 2446 - 2447: 7(f16vec4) Load 2375(texel) - ReturnValue 2447 - FunctionEnd -41(testTextureGatherLod(): 7(f16vec4) Function None 8 - 42: Label - 2450(texel): 64(ptr) Variable Function - Store 2450(texel) 121 - 2451: 143 Load 145(s2D) - 2452: 53(fvec2) Load 148(c2) - 2453: 52(float) Load 565(lod) - 2454: 7(f16vec4) ImageGather 2451 2452 2187 Lod 2453 - 2455: 7(f16vec4) Load 2450(texel) - 2456: 7(f16vec4) FAdd 2455 2454 - Store 2450(texel) 2456 - 2457: 143 Load 145(s2D) - 2458:154(f16vec2) Load 156(f16c2) - 2459:6(float16_t) Load 572(f16lod) - 2460: 7(f16vec4) ImageGather 2457 2458 2187 Lod 2459 - 2461: 7(f16vec4) Load 2450(texel) - 2462: 7(f16vec4) FAdd 2461 2460 - Store 2450(texel) 2462 - 2463: 284 Load 286(s2DArray) - 2464: 167(fvec3) Load 169(c3) - 2465: 52(float) Load 565(lod) - 2466: 7(f16vec4) ImageGather 2463 2464 2187 Lod 2465 - 2467: 7(f16vec4) Load 2450(texel) - 2468: 7(f16vec4) FAdd 2467 2466 - Store 2450(texel) 2468 - 2469: 284 Load 286(s2DArray) - 2470:175(f16vec3) Load 177(f16c3) - 2471:6(float16_t) Load 572(f16lod) - 2472: 7(f16vec4) ImageGather 2469 2470 2187 Lod 2471 - 2473: 7(f16vec4) Load 2450(texel) - 2474: 7(f16vec4) FAdd 2473 2472 - Store 2450(texel) 2474 - 2475: 184 Load 186(sCube) - 2476: 167(fvec3) Load 169(c3) - 2477: 52(float) Load 565(lod) - 2478: 7(f16vec4) ImageGather 2475 2476 2187 Lod 2477 - 2479: 7(f16vec4) Load 2450(texel) - 2480: 7(f16vec4) FAdd 2479 2478 - Store 2450(texel) 2480 - 2481: 184 Load 186(sCube) - 2482:175(f16vec3) Load 177(f16c3) - 2483:6(float16_t) Load 572(f16lod) - 2484: 7(f16vec4) ImageGather 2481 2482 2187 Lod 2483 - 2485: 7(f16vec4) Load 2450(texel) - 2486: 7(f16vec4) FAdd 2485 2484 - Store 2450(texel) 2486 - 2487: 299 Load 301(sCubeArray) - 2488: 249(fvec4) Load 251(c4) - 2489: 52(float) Load 565(lod) - 2490: 7(f16vec4) ImageGather 2487 2488 2187 Lod 2489 - 2491: 7(f16vec4) Load 2450(texel) - 2492: 7(f16vec4) FAdd 2491 2490 - Store 2450(texel) 2492 - 2493: 299 Load 301(sCubeArray) - 2494: 7(f16vec4) Load 309(f16c4) - 2495:6(float16_t) Load 572(f16lod) - 2496: 7(f16vec4) ImageGather 2493 2494 2187 Lod 2495 - 2497: 7(f16vec4) Load 2450(texel) - 2498: 7(f16vec4) FAdd 2497 2496 - Store 2450(texel) 2498 - 2499: 7(f16vec4) Load 2450(texel) - ReturnValue 2499 - FunctionEnd -43(testTextureGatherLodOffset(): 7(f16vec4) Function None 8 - 44: Label - 2502(texel): 64(ptr) Variable Function - Store 2502(texel) 121 - 2503: 143 Load 145(s2D) - 2504: 53(fvec2) Load 148(c2) - 2505: 52(float) Load 565(lod) - 2506: 7(f16vec4) ImageGather 2503 2504 2187 Lod ConstOffset 2505 722 - 2507: 7(f16vec4) Load 2502(texel) - 2508: 7(f16vec4) FAdd 2507 2506 - Store 2502(texel) 2508 - 2509: 143 Load 145(s2D) - 2510:154(f16vec2) Load 156(f16c2) - 2511:6(float16_t) Load 572(f16lod) - 2512: 7(f16vec4) ImageGather 2509 2510 2187 Lod ConstOffset 2511 722 - 2513: 7(f16vec4) Load 2502(texel) - 2514: 7(f16vec4) FAdd 2513 2512 - Store 2502(texel) 2514 - 2515: 284 Load 286(s2DArray) - 2516: 167(fvec3) Load 169(c3) - 2517: 52(float) Load 565(lod) - 2518: 7(f16vec4) ImageGather 2515 2516 2187 Lod ConstOffset 2517 722 - 2519: 7(f16vec4) Load 2502(texel) - 2520: 7(f16vec4) FAdd 2519 2518 - Store 2502(texel) 2520 - 2521: 284 Load 286(s2DArray) - 2522:175(f16vec3) Load 177(f16c3) - 2523:6(float16_t) Load 572(f16lod) - 2524: 7(f16vec4) ImageGather 2521 2522 2187 Lod ConstOffset 2523 722 - 2525: 7(f16vec4) Load 2502(texel) - 2526: 7(f16vec4) FAdd 2525 2524 - Store 2502(texel) 2526 - 2527: 7(f16vec4) Load 2502(texel) - ReturnValue 2527 - FunctionEnd -45(testTextureGatherLodOffsets(): 7(f16vec4) Function None 8 - 46: Label - 2530(texel): 64(ptr) Variable Function - Store 2530(texel) 121 - 2531: 143 Load 145(s2D) - 2532: 53(fvec2) Load 148(c2) - 2533: 52(float) Load 565(lod) - 2534: 7(f16vec4) ImageGather 2531 2532 2187 Lod ConstOffsets 2533 2380 - 2535: 7(f16vec4) Load 2530(texel) - 2536: 7(f16vec4) FAdd 2535 2534 - Store 2530(texel) 2536 - 2537: 143 Load 145(s2D) - 2538:154(f16vec2) Load 156(f16c2) - 2539:6(float16_t) Load 572(f16lod) - 2540: 7(f16vec4) ImageGather 2537 2538 2187 Lod ConstOffsets 2539 2380 - 2541: 7(f16vec4) Load 2530(texel) - 2542: 7(f16vec4) FAdd 2541 2540 - Store 2530(texel) 2542 - 2543: 284 Load 286(s2DArray) - 2544: 167(fvec3) Load 169(c3) - 2545: 52(float) Load 565(lod) - 2546: 7(f16vec4) ImageGather 2543 2544 2187 Lod ConstOffsets 2545 2380 - 2547: 7(f16vec4) Load 2530(texel) - 2548: 7(f16vec4) FAdd 2547 2546 - Store 2530(texel) 2548 - 2549: 284 Load 286(s2DArray) - 2550:175(f16vec3) Load 177(f16c3) - 2551:6(float16_t) Load 572(f16lod) - 2552: 7(f16vec4) ImageGather 2549 2550 2187 Lod ConstOffsets 2551 2380 - 2553: 7(f16vec4) Load 2530(texel) - 2554: 7(f16vec4) FAdd 2553 2552 - Store 2530(texel) 2554 - 2555: 7(f16vec4) Load 2530(texel) - ReturnValue 2555 - FunctionEnd -50(testTextureSize(): 48(ivec4) Function None 49 - 51: Label - 2559(size): 2558(ptr) Variable Function - Store 2559(size) 2560 - 2561: 123 Load 125(s1D) - 2562: 52(float) Load 565(lod) - 2563: 47(int) ConvertFToS 2562 - 2564: 122 Image 2561 - 2565: 47(int) ImageQuerySizeLod 2564 2563 - 2567: 2566(ptr) AccessChain 2559(size) 207 - 2568: 47(int) Load 2567 - 2569: 47(int) IAdd 2568 2565 - 2570: 2566(ptr) AccessChain 2559(size) 207 - Store 2570 2569 - 2571: 143 Load 145(s2D) - 2572: 52(float) Load 565(lod) - 2573: 47(int) ConvertFToS 2572 - 2574: 142 Image 2571 - 2575: 721(ivec2) ImageQuerySizeLod 2574 2573 - 2576: 48(ivec4) Load 2559(size) - 2577: 721(ivec2) VectorShuffle 2576 2576 0 1 - 2578: 721(ivec2) IAdd 2577 2575 - 2579: 2566(ptr) AccessChain 2559(size) 207 - 2580: 47(int) CompositeExtract 2578 0 - Store 2579 2580 - 2582: 2566(ptr) AccessChain 2559(size) 2581 - 2583: 47(int) CompositeExtract 2578 1 - Store 2582 2583 - 2584: 163 Load 165(s3D) - 2585: 52(float) Load 565(lod) - 2586: 47(int) ConvertFToS 2585 - 2587: 162 Image 2584 - 2588: 734(ivec3) ImageQuerySizeLod 2587 2586 - 2589: 48(ivec4) Load 2559(size) - 2590: 734(ivec3) VectorShuffle 2589 2589 0 1 2 - 2591: 734(ivec3) IAdd 2590 2588 - 2592: 2566(ptr) AccessChain 2559(size) 207 - 2593: 47(int) CompositeExtract 2591 0 - Store 2592 2593 - 2594: 2566(ptr) AccessChain 2559(size) 2581 - 2595: 47(int) CompositeExtract 2591 1 - Store 2594 2595 - 2597: 2566(ptr) AccessChain 2559(size) 2596 - 2598: 47(int) CompositeExtract 2591 2 - Store 2597 2598 - 2599: 184 Load 186(sCube) - 2600: 52(float) Load 565(lod) - 2601: 47(int) ConvertFToS 2600 - 2602: 183 Image 2599 - 2603: 721(ivec2) ImageQuerySizeLod 2602 2601 - 2604: 48(ivec4) Load 2559(size) - 2605: 721(ivec2) VectorShuffle 2604 2604 0 1 - 2606: 721(ivec2) IAdd 2605 2603 - 2607: 2566(ptr) AccessChain 2559(size) 207 - 2608: 47(int) CompositeExtract 2606 0 - Store 2607 2608 - 2609: 2566(ptr) AccessChain 2559(size) 2581 - 2610: 47(int) CompositeExtract 2606 1 - Store 2609 2610 - 2611: 199 Load 201(s1DShadow) - 2612: 52(float) Load 565(lod) - 2613: 47(int) ConvertFToS 2612 - 2614: 198 Image 2611 - 2615: 47(int) ImageQuerySizeLod 2614 2613 - 2616: 2566(ptr) AccessChain 2559(size) 207 - 2617: 47(int) Load 2616 - 2618: 47(int) IAdd 2617 2615 - 2619: 2566(ptr) AccessChain 2559(size) 207 - Store 2619 2618 - 2620: 224 Load 226(s2DShadow) - 2621: 52(float) Load 565(lod) - 2622: 47(int) ConvertFToS 2621 - 2623: 223 Image 2620 - 2624: 721(ivec2) ImageQuerySizeLod 2623 2622 - 2625: 48(ivec4) Load 2559(size) - 2626: 721(ivec2) VectorShuffle 2625 2625 0 1 - 2627: 721(ivec2) IAdd 2626 2624 - 2628: 2566(ptr) AccessChain 2559(size) 207 - 2629: 47(int) CompositeExtract 2627 0 - Store 2628 2629 - 2630: 2566(ptr) AccessChain 2559(size) 2581 - 2631: 47(int) CompositeExtract 2627 1 - Store 2630 2631 - 2632: 245 Load 247(sCubeShadow) - 2633: 52(float) Load 565(lod) - 2634: 47(int) ConvertFToS 2633 - 2635: 244 Image 2632 - 2636: 721(ivec2) ImageQuerySizeLod 2635 2634 - 2637: 48(ivec4) Load 2559(size) - 2638: 721(ivec2) VectorShuffle 2637 2637 0 1 - 2639: 721(ivec2) IAdd 2638 2636 - 2640: 2566(ptr) AccessChain 2559(size) 207 - 2641: 47(int) CompositeExtract 2639 0 - Store 2640 2641 - 2642: 2566(ptr) AccessChain 2559(size) 2581 - 2643: 47(int) CompositeExtract 2639 1 - Store 2642 2643 - 2644: 299 Load 301(sCubeArray) - 2645: 52(float) Load 565(lod) - 2646: 47(int) ConvertFToS 2645 - 2647: 298 Image 2644 - 2648: 734(ivec3) ImageQuerySizeLod 2647 2646 - 2649: 48(ivec4) Load 2559(size) - 2650: 734(ivec3) VectorShuffle 2649 2649 0 1 2 - 2651: 734(ivec3) IAdd 2650 2648 - 2652: 2566(ptr) AccessChain 2559(size) 207 - 2653: 47(int) CompositeExtract 2651 0 - Store 2652 2653 - 2654: 2566(ptr) AccessChain 2559(size) 2581 - 2655: 47(int) CompositeExtract 2651 1 - Store 2654 2655 - 2656: 2566(ptr) AccessChain 2559(size) 2596 - 2657: 47(int) CompositeExtract 2651 2 - Store 2656 2657 - 2658: 391 Load 393(sCubeArrayShadow) - 2659: 52(float) Load 565(lod) - 2660: 47(int) ConvertFToS 2659 - 2661: 390 Image 2658 - 2662: 734(ivec3) ImageQuerySizeLod 2661 2660 - 2663: 48(ivec4) Load 2559(size) - 2664: 734(ivec3) VectorShuffle 2663 2663 0 1 2 - 2665: 734(ivec3) IAdd 2664 2662 - 2666: 2566(ptr) AccessChain 2559(size) 207 - 2667: 47(int) CompositeExtract 2665 0 - Store 2666 2667 - 2668: 2566(ptr) AccessChain 2559(size) 2581 - 2669: 47(int) CompositeExtract 2665 1 - Store 2668 2669 - 2670: 2566(ptr) AccessChain 2559(size) 2596 - 2671: 47(int) CompositeExtract 2665 2 - Store 2670 2671 - 2672: 357 Load 359(s2DRect) - 2673: 356 Image 2672 - 2674: 721(ivec2) ImageQuerySize 2673 - 2675: 48(ivec4) Load 2559(size) - 2676: 721(ivec2) VectorShuffle 2675 2675 0 1 - 2677: 721(ivec2) IAdd 2676 2674 - 2678: 2566(ptr) AccessChain 2559(size) 207 - 2679: 47(int) CompositeExtract 2677 0 - Store 2678 2679 - 2680: 2566(ptr) AccessChain 2559(size) 2581 - 2681: 47(int) CompositeExtract 2677 1 - Store 2680 2681 - 2682: 371 Load 373(s2DRectShadow) - 2683: 370 Image 2682 - 2684: 721(ivec2) ImageQuerySize 2683 - 2685: 48(ivec4) Load 2559(size) - 2686: 721(ivec2) VectorShuffle 2685 2685 0 1 - 2687: 721(ivec2) IAdd 2686 2684 - 2688: 2566(ptr) AccessChain 2559(size) 207 - 2689: 47(int) CompositeExtract 2687 0 - Store 2688 2689 - 2690: 2566(ptr) AccessChain 2559(size) 2581 - 2691: 47(int) CompositeExtract 2687 1 - Store 2690 2691 - 2692: 269 Load 271(s1DArray) - 2693: 52(float) Load 565(lod) - 2694: 47(int) ConvertFToS 2693 - 2695: 268 Image 2692 - 2696: 721(ivec2) ImageQuerySizeLod 2695 2694 - 2697: 48(ivec4) Load 2559(size) - 2698: 721(ivec2) VectorShuffle 2697 2697 0 1 - 2699: 721(ivec2) IAdd 2698 2696 - 2700: 2566(ptr) AccessChain 2559(size) 207 - 2701: 47(int) CompositeExtract 2699 0 - Store 2700 2701 - 2702: 2566(ptr) AccessChain 2559(size) 2581 - 2703: 47(int) CompositeExtract 2699 1 - Store 2702 2703 - 2704: 284 Load 286(s2DArray) - 2705: 52(float) Load 565(lod) - 2706: 47(int) ConvertFToS 2705 - 2707: 283 Image 2704 - 2708: 734(ivec3) ImageQuerySizeLod 2707 2706 - 2709: 48(ivec4) Load 2559(size) - 2710: 734(ivec3) VectorShuffle 2709 2709 0 1 2 - 2711: 734(ivec3) IAdd 2710 2708 - 2712: 2566(ptr) AccessChain 2559(size) 207 - 2713: 47(int) CompositeExtract 2711 0 - Store 2712 2713 - 2714: 2566(ptr) AccessChain 2559(size) 2581 - 2715: 47(int) CompositeExtract 2711 1 - Store 2714 2715 - 2716: 2566(ptr) AccessChain 2559(size) 2596 - 2717: 47(int) CompositeExtract 2711 2 - Store 2716 2717 - 2718: 316 Load 318(s1DArrayShadow) - 2719: 52(float) Load 565(lod) - 2720: 47(int) ConvertFToS 2719 - 2721: 315 Image 2718 - 2722: 721(ivec2) ImageQuerySizeLod 2721 2720 - 2723: 48(ivec4) Load 2559(size) - 2724: 721(ivec2) VectorShuffle 2723 2723 0 1 - 2725: 721(ivec2) IAdd 2724 2722 - 2726: 2566(ptr) AccessChain 2559(size) 207 - 2727: 47(int) CompositeExtract 2725 0 - Store 2726 2727 - 2728: 2566(ptr) AccessChain 2559(size) 2581 - 2729: 47(int) CompositeExtract 2725 1 - Store 2728 2729 - 2730: 337 Load 339(s2DArrayShadow) - 2731: 52(float) Load 565(lod) - 2732: 47(int) ConvertFToS 2731 - 2733: 336 Image 2730 - 2734: 734(ivec3) ImageQuerySizeLod 2733 2732 - 2735: 48(ivec4) Load 2559(size) - 2736: 734(ivec3) VectorShuffle 2735 2735 0 1 2 - 2737: 734(ivec3) IAdd 2736 2734 - 2738: 2566(ptr) AccessChain 2559(size) 207 - 2739: 47(int) CompositeExtract 2737 0 - Store 2738 2739 - 2740: 2566(ptr) AccessChain 2559(size) 2581 - 2741: 47(int) CompositeExtract 2737 1 - Store 2740 2741 - 2742: 2566(ptr) AccessChain 2559(size) 2596 - 2743: 47(int) CompositeExtract 2737 2 - Store 2742 2743 - 2744: 1298 Load 1300(sBuffer) - 2745: 1297 Image 2744 - 2746: 47(int) ImageQuerySize 2745 - 2747: 2566(ptr) AccessChain 2559(size) 207 - 2748: 47(int) Load 2747 - 2749: 47(int) IAdd 2748 2746 - 2750: 2566(ptr) AccessChain 2559(size) 207 - Store 2750 2749 - 2751: 1309 Load 1311(s2DMS) - 2752: 1308 Image 2751 - 2753: 721(ivec2) ImageQuerySize 2752 - 2754: 48(ivec4) Load 2559(size) - 2755: 721(ivec2) VectorShuffle 2754 2754 0 1 - 2756: 721(ivec2) IAdd 2755 2753 - 2757: 2566(ptr) AccessChain 2559(size) 207 - 2758: 47(int) CompositeExtract 2756 0 - Store 2757 2758 - 2759: 2566(ptr) AccessChain 2559(size) 2581 - 2760: 47(int) CompositeExtract 2756 1 - Store 2759 2760 - 2761: 1320 Load 1322(s2DMSArray) - 2762: 1319 Image 2761 - 2763: 734(ivec3) ImageQuerySize 2762 - 2764: 48(ivec4) Load 2559(size) - 2765: 734(ivec3) VectorShuffle 2764 2764 0 1 2 - 2766: 734(ivec3) IAdd 2765 2763 - 2767: 2566(ptr) AccessChain 2559(size) 207 - 2768: 47(int) CompositeExtract 2766 0 - Store 2767 2768 - 2769: 2566(ptr) AccessChain 2559(size) 2581 - 2770: 47(int) CompositeExtract 2766 1 - Store 2769 2770 - 2771: 2566(ptr) AccessChain 2559(size) 2596 - 2772: 47(int) CompositeExtract 2766 2 - Store 2771 2772 - 2773: 48(ivec4) Load 2559(size) - ReturnValue 2773 - FunctionEnd -55(testTextureQueryLod(): 53(fvec2) Function None 54 - 56: Label - 2777(lod): 2776(ptr) Variable Function - Store 2777(lod) 2779 - 2780: 123 Load 125(s1D) - 2781: 52(float) Load 128(c1) - 2782: 53(fvec2) ImageQueryLod 2780 2781 - 2783: 53(fvec2) Load 2777(lod) - 2784: 53(fvec2) FAdd 2783 2782 - Store 2777(lod) 2784 - 2785: 123 Load 125(s1D) - 2786:6(float16_t) Load 135(f16c1) - 2787:154(f16vec2) ImageQueryLod 2785 2786 - 2788: 53(fvec2) Load 2777(lod) - 2789: 53(fvec2) FAdd 2788 2787 - Store 2777(lod) 2789 - 2790: 143 Load 145(s2D) - 2791: 53(fvec2) Load 148(c2) - 2792: 53(fvec2) ImageQueryLod 2790 2791 - 2793: 53(fvec2) Load 2777(lod) - 2794: 53(fvec2) FAdd 2793 2792 - Store 2777(lod) 2794 - 2795: 143 Load 145(s2D) - 2796:154(f16vec2) Load 156(f16c2) - 2797:154(f16vec2) ImageQueryLod 2795 2796 - 2798: 53(fvec2) Load 2777(lod) - 2799: 53(fvec2) FAdd 2798 2797 - Store 2777(lod) 2799 - 2800: 163 Load 165(s3D) - 2801: 167(fvec3) Load 169(c3) - 2802: 53(fvec2) ImageQueryLod 2800 2801 - 2803: 53(fvec2) Load 2777(lod) - 2804: 53(fvec2) FAdd 2803 2802 - Store 2777(lod) 2804 - 2805: 163 Load 165(s3D) - 2806:175(f16vec3) Load 177(f16c3) - 2807:154(f16vec2) ImageQueryLod 2805 2806 - 2808: 53(fvec2) Load 2777(lod) - 2809: 53(fvec2) FAdd 2808 2807 - Store 2777(lod) 2809 - 2810: 184 Load 186(sCube) - 2811: 167(fvec3) Load 169(c3) - 2812: 53(fvec2) ImageQueryLod 2810 2811 - 2813: 53(fvec2) Load 2777(lod) - 2814: 53(fvec2) FAdd 2813 2812 - Store 2777(lod) 2814 - 2815: 184 Load 186(sCube) - 2816:175(f16vec3) Load 177(f16c3) - 2817:154(f16vec2) ImageQueryLod 2815 2816 - 2818: 53(fvec2) Load 2777(lod) - 2819: 53(fvec2) FAdd 2818 2817 - Store 2777(lod) 2819 - 2820: 269 Load 271(s1DArray) - 2821: 52(float) Load 128(c1) - 2822: 53(fvec2) ImageQueryLod 2820 2821 - 2823: 53(fvec2) Load 2777(lod) - 2824: 53(fvec2) FAdd 2823 2822 - Store 2777(lod) 2824 - 2825: 269 Load 271(s1DArray) - 2826:6(float16_t) Load 135(f16c1) - 2827:154(f16vec2) ImageQueryLod 2825 2826 - 2828: 53(fvec2) Load 2777(lod) - 2829: 53(fvec2) FAdd 2828 2827 - Store 2777(lod) 2829 - 2830: 284 Load 286(s2DArray) - 2831: 53(fvec2) Load 148(c2) - 2832: 53(fvec2) ImageQueryLod 2830 2831 - 2833: 53(fvec2) Load 2777(lod) - 2834: 53(fvec2) FAdd 2833 2832 - Store 2777(lod) 2834 - 2835: 284 Load 286(s2DArray) - 2836:154(f16vec2) Load 156(f16c2) - 2837:154(f16vec2) ImageQueryLod 2835 2836 - 2838: 53(fvec2) Load 2777(lod) - 2839: 53(fvec2) FAdd 2838 2837 - Store 2777(lod) 2839 - 2840: 299 Load 301(sCubeArray) - 2841: 167(fvec3) Load 169(c3) - 2842: 53(fvec2) ImageQueryLod 2840 2841 - 2843: 53(fvec2) Load 2777(lod) - 2844: 53(fvec2) FAdd 2843 2842 - Store 2777(lod) 2844 - 2845: 299 Load 301(sCubeArray) - 2846:175(f16vec3) Load 177(f16c3) - 2847:154(f16vec2) ImageQueryLod 2845 2846 - 2848: 53(fvec2) Load 2777(lod) - 2849: 53(fvec2) FAdd 2848 2847 - Store 2777(lod) 2849 - 2850: 199 Load 201(s1DShadow) - 2851: 52(float) Load 128(c1) - 2852: 53(fvec2) ImageQueryLod 2850 2851 - 2853: 53(fvec2) Load 2777(lod) - 2854: 53(fvec2) FAdd 2853 2852 - Store 2777(lod) 2854 - 2855: 199 Load 201(s1DShadow) - 2856:6(float16_t) Load 135(f16c1) - 2857:154(f16vec2) ImageQueryLod 2855 2856 - 2858: 53(fvec2) Load 2777(lod) - 2859: 53(fvec2) FAdd 2858 2857 - Store 2777(lod) 2859 - 2860: 224 Load 226(s2DShadow) - 2861: 53(fvec2) Load 148(c2) - 2862: 53(fvec2) ImageQueryLod 2860 2861 - 2863: 53(fvec2) Load 2777(lod) - 2864: 53(fvec2) FAdd 2863 2862 - Store 2777(lod) 2864 - 2865: 224 Load 226(s2DShadow) - 2866:154(f16vec2) Load 156(f16c2) - 2867:154(f16vec2) ImageQueryLod 2865 2866 - 2868: 53(fvec2) Load 2777(lod) - 2869: 53(fvec2) FAdd 2868 2867 - Store 2777(lod) 2869 - 2870: 391 Load 393(sCubeArrayShadow) - 2871: 167(fvec3) Load 169(c3) - 2872: 53(fvec2) ImageQueryLod 2870 2871 - 2873: 53(fvec2) Load 2777(lod) - 2874: 53(fvec2) FAdd 2873 2872 - Store 2777(lod) 2874 - 2875: 391 Load 393(sCubeArrayShadow) - 2876:175(f16vec3) Load 177(f16c3) - 2877:154(f16vec2) ImageQueryLod 2875 2876 - 2878: 53(fvec2) Load 2777(lod) - 2879: 53(fvec2) FAdd 2878 2877 - Store 2777(lod) 2879 - 2880: 316 Load 318(s1DArrayShadow) - 2881: 52(float) Load 128(c1) - 2882: 53(fvec2) ImageQueryLod 2880 2881 - 2883: 53(fvec2) Load 2777(lod) - 2884: 53(fvec2) FAdd 2883 2882 - Store 2777(lod) 2884 - 2885: 316 Load 318(s1DArrayShadow) - 2886:6(float16_t) Load 135(f16c1) - 2887:154(f16vec2) ImageQueryLod 2885 2886 - 2888: 53(fvec2) Load 2777(lod) - 2889: 53(fvec2) FAdd 2888 2887 - Store 2777(lod) 2889 - 2890: 337 Load 339(s2DArrayShadow) - 2891: 53(fvec2) Load 148(c2) - 2892: 53(fvec2) ImageQueryLod 2890 2891 - 2893: 53(fvec2) Load 2777(lod) - 2894: 53(fvec2) FAdd 2893 2892 - Store 2777(lod) 2894 - 2895: 337 Load 339(s2DArrayShadow) - 2896:154(f16vec2) Load 156(f16c2) - 2897:154(f16vec2) ImageQueryLod 2895 2896 - 2898: 53(fvec2) Load 2777(lod) - 2899: 53(fvec2) FAdd 2898 2897 - Store 2777(lod) 2899 - 2900: 391 Load 393(sCubeArrayShadow) - 2901: 167(fvec3) Load 169(c3) - 2902: 53(fvec2) ImageQueryLod 2900 2901 - 2903: 53(fvec2) Load 2777(lod) - 2904: 53(fvec2) FAdd 2903 2902 - Store 2777(lod) 2904 - 2905: 391 Load 393(sCubeArrayShadow) - 2906:175(f16vec3) Load 177(f16c3) - 2907:154(f16vec2) ImageQueryLod 2905 2906 - 2908: 53(fvec2) Load 2777(lod) - 2909: 53(fvec2) FAdd 2908 2907 - Store 2777(lod) 2909 - 2910: 53(fvec2) Load 2777(lod) - ReturnValue 2910 - FunctionEnd -58(testTextureQueryLevels(): 47(int) Function None 57 - 59: Label - 2913(levels): 2566(ptr) Variable Function - Store 2913(levels) 2187 - 2914: 123 Load 125(s1D) - 2915: 122 Image 2914 - 2916: 47(int) ImageQueryLevels 2915 - 2917: 47(int) Load 2913(levels) - 2918: 47(int) IAdd 2917 2916 - Store 2913(levels) 2918 - 2919: 143 Load 145(s2D) - 2920: 142 Image 2919 - 2921: 47(int) ImageQueryLevels 2920 - 2922: 47(int) Load 2913(levels) - 2923: 47(int) IAdd 2922 2921 - Store 2913(levels) 2923 - 2924: 163 Load 165(s3D) - 2925: 162 Image 2924 - 2926: 47(int) ImageQueryLevels 2925 - 2927: 47(int) Load 2913(levels) - 2928: 47(int) IAdd 2927 2926 - Store 2913(levels) 2928 - 2929: 184 Load 186(sCube) - 2930: 183 Image 2929 - 2931: 47(int) ImageQueryLevels 2930 - 2932: 47(int) Load 2913(levels) - 2933: 47(int) IAdd 2932 2931 - Store 2913(levels) 2933 - 2934: 199 Load 201(s1DShadow) - 2935: 198 Image 2934 - 2936: 47(int) ImageQueryLevels 2935 - 2937: 47(int) Load 2913(levels) - 2938: 47(int) IAdd 2937 2936 - Store 2913(levels) 2938 - 2939: 224 Load 226(s2DShadow) - 2940: 223 Image 2939 - 2941: 47(int) ImageQueryLevels 2940 - 2942: 47(int) Load 2913(levels) - 2943: 47(int) IAdd 2942 2941 - Store 2913(levels) 2943 - 2944: 245 Load 247(sCubeShadow) - 2945: 244 Image 2944 - 2946: 47(int) ImageQueryLevels 2945 - 2947: 47(int) Load 2913(levels) - 2948: 47(int) IAdd 2947 2946 - Store 2913(levels) 2948 - 2949: 299 Load 301(sCubeArray) - 2950: 298 Image 2949 - 2951: 47(int) ImageQueryLevels 2950 - 2952: 47(int) Load 2913(levels) - 2953: 47(int) IAdd 2952 2951 - Store 2913(levels) 2953 - 2954: 391 Load 393(sCubeArrayShadow) - 2955: 390 Image 2954 - 2956: 47(int) ImageQueryLevels 2955 - 2957: 47(int) Load 2913(levels) - 2958: 47(int) IAdd 2957 2956 - Store 2913(levels) 2958 - 2959: 269 Load 271(s1DArray) - 2960: 268 Image 2959 - 2961: 47(int) ImageQueryLevels 2960 - 2962: 47(int) Load 2913(levels) - 2963: 47(int) IAdd 2962 2961 - Store 2913(levels) 2963 - 2964: 284 Load 286(s2DArray) - 2965: 283 Image 2964 - 2966: 47(int) ImageQueryLevels 2965 - 2967: 47(int) Load 2913(levels) - 2968: 47(int) IAdd 2967 2966 - Store 2913(levels) 2968 - 2969: 316 Load 318(s1DArrayShadow) - 2970: 315 Image 2969 - 2971: 47(int) ImageQueryLevels 2970 - 2972: 47(int) Load 2913(levels) - 2973: 47(int) IAdd 2972 2971 - Store 2913(levels) 2973 - 2974: 337 Load 339(s2DArrayShadow) - 2975: 336 Image 2974 - 2976: 47(int) ImageQueryLevels 2975 - 2977: 47(int) Load 2913(levels) - 2978: 47(int) IAdd 2977 2976 - Store 2913(levels) 2978 - 2979: 47(int) Load 2913(levels) - ReturnValue 2979 - FunctionEnd -60(testTextureSamples(): 47(int) Function None 57 - 61: Label - 2982(samples): 2566(ptr) Variable Function - Store 2982(samples) 2187 - 2983: 1309 Load 1311(s2DMS) - 2984: 1308 Image 2983 - 2985: 47(int) ImageQuerySamples 2984 - 2986: 47(int) Load 2982(samples) - 2987: 47(int) IAdd 2986 2985 - Store 2982(samples) 2987 - 2988: 1320 Load 1322(s2DMSArray) - 2989: 1319 Image 2988 - 2990: 47(int) ImageQuerySamples 2989 - 2991: 47(int) Load 2982(samples) - 2992: 47(int) IAdd 2991 2990 - Store 2982(samples) 2992 - 2993: 47(int) Load 2982(samples) - ReturnValue 2993 - FunctionEnd -62(testImageLoad(): 7(f16vec4) Function None 8 - 63: Label - 2996(texel): 64(ptr) Variable Function - Store 2996(texel) 121 - 3000: 2997 Load 2999(i1D) - 3001: 52(float) Load 128(c1) - 3002: 47(int) ConvertFToS 3001 - 3003: 7(f16vec4) ImageRead 3000 3002 - 3004: 7(f16vec4) Load 2996(texel) - 3005: 7(f16vec4) FAdd 3004 3003 - Store 2996(texel) 3005 - 3009: 3006 Load 3008(i2D) - 3010: 53(fvec2) Load 148(c2) - 3011: 721(ivec2) ConvertFToS 3010 - 3012: 7(f16vec4) ImageRead 3009 3011 - 3013: 7(f16vec4) Load 2996(texel) - 3014: 7(f16vec4) FAdd 3013 3012 - Store 2996(texel) 3014 - 3018: 3015 Load 3017(i3D) - 3019: 167(fvec3) Load 169(c3) - 3020: 734(ivec3) ConvertFToS 3019 - 3021: 7(f16vec4) ImageRead 3018 3020 - 3022: 7(f16vec4) Load 2996(texel) - 3023: 7(f16vec4) FAdd 3022 3021 - Store 2996(texel) 3023 - 3027: 3024 Load 3026(i2DRect) - 3028: 53(fvec2) Load 148(c2) - 3029: 721(ivec2) ConvertFToS 3028 - 3030: 7(f16vec4) ImageRead 3027 3029 - 3031: 7(f16vec4) Load 2996(texel) - 3032: 7(f16vec4) FAdd 3031 3030 - Store 2996(texel) 3032 - 3036: 3033 Load 3035(iCube) - 3037: 167(fvec3) Load 169(c3) - 3038: 734(ivec3) ConvertFToS 3037 - 3039: 7(f16vec4) ImageRead 3036 3038 - 3040: 7(f16vec4) Load 2996(texel) - 3041: 7(f16vec4) FAdd 3040 3039 - Store 2996(texel) 3041 - 3045: 3042 Load 3044(iBuffer) - 3046: 52(float) Load 128(c1) - 3047: 47(int) ConvertFToS 3046 - 3048: 7(f16vec4) ImageRead 3045 3047 - 3049: 7(f16vec4) Load 2996(texel) - 3050: 7(f16vec4) FAdd 3049 3048 - Store 2996(texel) 3050 - 3054: 3051 Load 3053(i1DArray) - 3055: 53(fvec2) Load 148(c2) - 3056: 721(ivec2) ConvertFToS 3055 - 3057: 7(f16vec4) ImageRead 3054 3056 - 3058: 7(f16vec4) Load 2996(texel) - 3059: 7(f16vec4) FAdd 3058 3057 - Store 2996(texel) 3059 - 3063: 3060 Load 3062(i2DArray) - 3064: 167(fvec3) Load 169(c3) - 3065: 734(ivec3) ConvertFToS 3064 - 3066: 7(f16vec4) ImageRead 3063 3065 - 3067: 7(f16vec4) Load 2996(texel) - 3068: 7(f16vec4) FAdd 3067 3066 - Store 2996(texel) 3068 - 3072: 3069 Load 3071(iCubeArray) - 3073: 167(fvec3) Load 169(c3) - 3074: 734(ivec3) ConvertFToS 3073 - 3075: 7(f16vec4) ImageRead 3072 3074 - 3076: 7(f16vec4) Load 2996(texel) - 3077: 7(f16vec4) FAdd 3076 3075 - Store 2996(texel) 3077 - 3081: 3078 Load 3080(i2DMS) - 3082: 53(fvec2) Load 148(c2) - 3083: 721(ivec2) ConvertFToS 3082 - 3084: 7(f16vec4) ImageRead 3081 3083 Sample 709 - 3085: 7(f16vec4) Load 2996(texel) - 3086: 7(f16vec4) FAdd 3085 3084 - Store 2996(texel) 3086 - 3090: 3087 Load 3089(i2DMSArray) - 3091: 167(fvec3) Load 169(c3) - 3092: 734(ivec3) ConvertFToS 3091 - 3093: 7(f16vec4) ImageRead 3090 3092 Sample 709 - 3094: 7(f16vec4) Load 2996(texel) - 3095: 7(f16vec4) FAdd 3094 3093 - Store 2996(texel) 3095 - 3096: 7(f16vec4) Load 2996(texel) - ReturnValue 3096 - FunctionEnd -67(testImageStore(vf164;): 2 Function None 65 - 66(data): 64(ptr) FunctionParameter - 68: Label - 3099: 2997 Load 2999(i1D) - 3100: 52(float) Load 128(c1) - 3101: 47(int) ConvertFToS 3100 - 3102: 7(f16vec4) Load 66(data) - ImageWrite 3099 3101 3102 - 3103: 3006 Load 3008(i2D) - 3104: 53(fvec2) Load 148(c2) - 3105: 721(ivec2) ConvertFToS 3104 - 3106: 7(f16vec4) Load 66(data) - ImageWrite 3103 3105 3106 - 3107: 3015 Load 3017(i3D) - 3108: 167(fvec3) Load 169(c3) - 3109: 734(ivec3) ConvertFToS 3108 - 3110: 7(f16vec4) Load 66(data) - ImageWrite 3107 3109 3110 - 3111: 3024 Load 3026(i2DRect) - 3112: 53(fvec2) Load 148(c2) - 3113: 721(ivec2) ConvertFToS 3112 - 3114: 7(f16vec4) Load 66(data) - ImageWrite 3111 3113 3114 - 3115: 3033 Load 3035(iCube) - 3116: 167(fvec3) Load 169(c3) - 3117: 734(ivec3) ConvertFToS 3116 - 3118: 7(f16vec4) Load 66(data) - ImageWrite 3115 3117 3118 - 3119: 3042 Load 3044(iBuffer) - 3120: 52(float) Load 128(c1) - 3121: 47(int) ConvertFToS 3120 - 3122: 7(f16vec4) Load 66(data) - ImageWrite 3119 3121 3122 - 3123: 3051 Load 3053(i1DArray) - 3124: 53(fvec2) Load 148(c2) - 3125: 721(ivec2) ConvertFToS 3124 - 3126: 7(f16vec4) Load 66(data) - ImageWrite 3123 3125 3126 - 3127: 3060 Load 3062(i2DArray) - 3128: 167(fvec3) Load 169(c3) - 3129: 734(ivec3) ConvertFToS 3128 - 3130: 7(f16vec4) Load 66(data) - ImageWrite 3127 3129 3130 - 3131: 3069 Load 3071(iCubeArray) - 3132: 167(fvec3) Load 169(c3) - 3133: 734(ivec3) ConvertFToS 3132 - 3134: 7(f16vec4) Load 66(data) - ImageWrite 3131 3133 3134 - 3135: 3078 Load 3080(i2DMS) - 3136: 53(fvec2) Load 148(c2) - 3137: 721(ivec2) ConvertFToS 3136 - 3138: 7(f16vec4) Load 66(data) - ImageWrite 3135 3137 3138 Sample 709 - 3139: 3087 Load 3089(i2DMSArray) - 3140: 167(fvec3) Load 169(c3) - 3141: 734(ivec3) ConvertFToS 3140 - 3142: 7(f16vec4) Load 66(data) - ImageWrite 3139 3141 3142 Sample 709 - Return - FunctionEnd -69(testSparseTexture(): 7(f16vec4) Function None 8 - 70: Label - 3143(texel): 64(ptr) Variable Function - Store 3143(texel) 121 - 3144: 143 Load 145(s2D) - 3145: 53(fvec2) Load 148(c2) - 3147:3146(ResType) ImageSparseSampleImplicitLod 3144 3145 - 3148: 7(f16vec4) CompositeExtract 3147 1 - Store 3143(texel) 3148 - 3149: 47(int) CompositeExtract 3147 0 - 3150: 143 Load 145(s2D) - 3151:154(f16vec2) Load 156(f16c2) - 3152:6(float16_t) Load 137(f16bias) - 3153:3146(ResType) ImageSparseSampleImplicitLod 3150 3151 Bias 3152 - 3154: 7(f16vec4) CompositeExtract 3153 1 - Store 3143(texel) 3154 - 3155: 47(int) CompositeExtract 3153 0 - 3156: 163 Load 165(s3D) - 3157: 167(fvec3) Load 169(c3) - 3158:3146(ResType) ImageSparseSampleImplicitLod 3156 3157 - 3159: 7(f16vec4) CompositeExtract 3158 1 - Store 3143(texel) 3159 - 3160: 47(int) CompositeExtract 3158 0 - 3161: 163 Load 165(s3D) - 3162:175(f16vec3) Load 177(f16c3) - 3163:6(float16_t) Load 137(f16bias) - 3164:3146(ResType) ImageSparseSampleImplicitLod 3161 3162 Bias 3163 - 3165: 7(f16vec4) CompositeExtract 3164 1 - Store 3143(texel) 3165 - 3166: 47(int) CompositeExtract 3164 0 - 3167: 184 Load 186(sCube) - 3168: 167(fvec3) Load 169(c3) - 3169:3146(ResType) ImageSparseSampleImplicitLod 3167 3168 - 3170: 7(f16vec4) CompositeExtract 3169 1 - Store 3143(texel) 3170 - 3171: 47(int) CompositeExtract 3169 0 - 3172: 184 Load 186(sCube) - 3173:175(f16vec3) Load 177(f16c3) - 3174:6(float16_t) Load 137(f16bias) - 3175:3146(ResType) ImageSparseSampleImplicitLod 3172 3173 Bias 3174 - 3176: 7(f16vec4) CompositeExtract 3175 1 - Store 3143(texel) 3176 - 3177: 47(int) CompositeExtract 3175 0 - 3178: 224 Load 226(s2DShadow) - 3179: 167(fvec3) Load 169(c3) - 3180: 208(ptr) AccessChain 3143(texel) 207 - 3181: 52(float) CompositeExtract 3179 2 - 3183:3182(ResType) ImageSparseSampleDrefImplicitLod 3178 3179 3181 - 3184:6(float16_t) CompositeExtract 3183 1 - Store 3180 3184 - 3185: 47(int) CompositeExtract 3183 0 - 3186: 224 Load 226(s2DShadow) - 3187:154(f16vec2) Load 156(f16c2) - 3188: 52(float) Load 215(compare) - 3189: 208(ptr) AccessChain 3143(texel) 207 - 3190:6(float16_t) Load 137(f16bias) - 3191:3182(ResType) ImageSparseSampleDrefImplicitLod 3186 3187 3188 Bias 3190 - 3192:6(float16_t) CompositeExtract 3191 1 - Store 3189 3192 - 3193: 47(int) CompositeExtract 3191 0 - 3194: 245 Load 247(sCubeShadow) - 3195: 249(fvec4) Load 251(c4) - 3196: 208(ptr) AccessChain 3143(texel) 207 - 3197: 52(float) CompositeExtract 3195 3 - 3198:3182(ResType) ImageSparseSampleDrefImplicitLod 3194 3195 3197 - 3199:6(float16_t) CompositeExtract 3198 1 - Store 3196 3199 - 3200: 47(int) CompositeExtract 3198 0 - 3201: 245 Load 247(sCubeShadow) - 3202:175(f16vec3) Load 177(f16c3) - 3203: 52(float) Load 215(compare) - 3204: 208(ptr) AccessChain 3143(texel) 207 - 3205:6(float16_t) Load 137(f16bias) - 3206:3182(ResType) ImageSparseSampleDrefImplicitLod 3201 3202 3203 Bias 3205 - 3207:6(float16_t) CompositeExtract 3206 1 - Store 3204 3207 - 3208: 47(int) CompositeExtract 3206 0 - 3209: 284 Load 286(s2DArray) - 3210: 167(fvec3) Load 169(c3) - 3211:3146(ResType) ImageSparseSampleImplicitLod 3209 3210 - 3212: 7(f16vec4) CompositeExtract 3211 1 - Store 3143(texel) 3212 - 3213: 47(int) CompositeExtract 3211 0 - 3214: 284 Load 286(s2DArray) - 3215:175(f16vec3) Load 177(f16c3) - 3216:6(float16_t) Load 137(f16bias) - 3217:3146(ResType) ImageSparseSampleImplicitLod 3214 3215 Bias 3216 - 3218: 7(f16vec4) CompositeExtract 3217 1 - Store 3143(texel) 3218 - 3219: 47(int) CompositeExtract 3217 0 - 3220: 299 Load 301(sCubeArray) - 3221: 249(fvec4) Load 251(c4) - 3222:3146(ResType) ImageSparseSampleImplicitLod 3220 3221 - 3223: 7(f16vec4) CompositeExtract 3222 1 - Store 3143(texel) 3223 - 3224: 47(int) CompositeExtract 3222 0 - 3225: 299 Load 301(sCubeArray) - 3226: 7(f16vec4) Load 309(f16c4) - 3227:6(float16_t) Load 137(f16bias) - 3228:3146(ResType) ImageSparseSampleImplicitLod 3225 3226 Bias 3227 - 3229: 7(f16vec4) CompositeExtract 3228 1 - Store 3143(texel) 3229 - 3230: 47(int) CompositeExtract 3228 0 - 3231: 337 Load 339(s2DArrayShadow) - 3232: 249(fvec4) Load 251(c4) - 3233: 208(ptr) AccessChain 3143(texel) 207 - 3234: 52(float) CompositeExtract 3232 3 - 3235:3182(ResType) ImageSparseSampleDrefImplicitLod 3231 3232 3234 - 3236:6(float16_t) CompositeExtract 3235 1 - Store 3233 3236 - 3237: 47(int) CompositeExtract 3235 0 - 3238: 337 Load 339(s2DArrayShadow) - 3239:175(f16vec3) Load 177(f16c3) - 3240: 52(float) Load 215(compare) - 3241: 208(ptr) AccessChain 3143(texel) 207 - 3242:3182(ResType) ImageSparseSampleDrefImplicitLod 3238 3239 3240 - 3243:6(float16_t) CompositeExtract 3242 1 - Store 3241 3243 - 3244: 47(int) CompositeExtract 3242 0 - 3245: 357 Load 359(s2DRect) - 3246: 53(fvec2) Load 148(c2) - 3247:3146(ResType) ImageSparseSampleImplicitLod 3245 3246 - 3248: 7(f16vec4) CompositeExtract 3247 1 - Store 3143(texel) 3248 - 3249: 47(int) CompositeExtract 3247 0 - 3250: 357 Load 359(s2DRect) - 3251:154(f16vec2) Load 156(f16c2) - 3252:3146(ResType) ImageSparseSampleImplicitLod 3250 3251 - 3253: 7(f16vec4) CompositeExtract 3252 1 - Store 3143(texel) 3253 - 3254: 47(int) CompositeExtract 3252 0 - 3255: 371 Load 373(s2DRectShadow) - 3256: 167(fvec3) Load 169(c3) - 3257: 208(ptr) AccessChain 3143(texel) 207 - 3258: 52(float) CompositeExtract 3256 2 - 3259:3182(ResType) ImageSparseSampleDrefImplicitLod 3255 3256 3258 - 3260:6(float16_t) CompositeExtract 3259 1 - Store 3257 3260 - 3261: 47(int) CompositeExtract 3259 0 - 3262: 371 Load 373(s2DRectShadow) - 3263:154(f16vec2) Load 156(f16c2) - 3264: 52(float) Load 215(compare) - 3265: 208(ptr) AccessChain 3143(texel) 207 - 3266:3182(ResType) ImageSparseSampleDrefImplicitLod 3262 3263 3264 - 3267:6(float16_t) CompositeExtract 3266 1 - Store 3265 3267 - 3268: 47(int) CompositeExtract 3266 0 - 3269: 391 Load 393(sCubeArrayShadow) - 3270: 249(fvec4) Load 251(c4) - 3271: 52(float) Load 215(compare) - 3272: 208(ptr) AccessChain 3143(texel) 207 - 3273:3182(ResType) ImageSparseSampleDrefImplicitLod 3269 3270 3271 - 3274:6(float16_t) CompositeExtract 3273 1 - Store 3272 3274 - 3275: 47(int) CompositeExtract 3273 0 - 3276: 391 Load 393(sCubeArrayShadow) - 3277: 7(f16vec4) Load 309(f16c4) - 3278: 52(float) Load 215(compare) - 3279: 208(ptr) AccessChain 3143(texel) 207 - 3280:3182(ResType) ImageSparseSampleDrefImplicitLod 3276 3277 3278 - 3281:6(float16_t) CompositeExtract 3280 1 - Store 3279 3281 - 3282: 47(int) CompositeExtract 3280 0 - 3283: 7(f16vec4) Load 3143(texel) - ReturnValue 3283 - FunctionEnd -71(testSparseTextureLod(): 7(f16vec4) Function None 8 - 72: Label - 3286(texel): 64(ptr) Variable Function - Store 3286(texel) 121 - 3287: 143 Load 145(s2D) - 3288: 53(fvec2) Load 148(c2) - 3289: 52(float) Load 565(lod) - 3290:3146(ResType) ImageSparseSampleExplicitLod 3287 3288 Lod 3289 - 3291: 7(f16vec4) CompositeExtract 3290 1 - Store 3286(texel) 3291 - 3292: 47(int) CompositeExtract 3290 0 - 3293: 143 Load 145(s2D) - 3294:154(f16vec2) Load 156(f16c2) - 3295:6(float16_t) Load 572(f16lod) - 3296:3146(ResType) ImageSparseSampleExplicitLod 3293 3294 Lod 3295 - 3297: 7(f16vec4) CompositeExtract 3296 1 - Store 3286(texel) 3297 - 3298: 47(int) CompositeExtract 3296 0 - 3299: 163 Load 165(s3D) - 3300: 167(fvec3) Load 169(c3) - 3301: 52(float) Load 565(lod) - 3302:3146(ResType) ImageSparseSampleExplicitLod 3299 3300 Lod 3301 - 3303: 7(f16vec4) CompositeExtract 3302 1 - Store 3286(texel) 3303 - 3304: 47(int) CompositeExtract 3302 0 - 3305: 163 Load 165(s3D) - 3306:175(f16vec3) Load 177(f16c3) - 3307:6(float16_t) Load 572(f16lod) - 3308:3146(ResType) ImageSparseSampleExplicitLod 3305 3306 Lod 3307 - 3309: 7(f16vec4) CompositeExtract 3308 1 - Store 3286(texel) 3309 - 3310: 47(int) CompositeExtract 3308 0 - 3311: 184 Load 186(sCube) - 3312: 167(fvec3) Load 169(c3) - 3313: 52(float) Load 565(lod) - 3314:3146(ResType) ImageSparseSampleExplicitLod 3311 3312 Lod 3313 - 3315: 7(f16vec4) CompositeExtract 3314 1 - Store 3286(texel) 3315 - 3316: 47(int) CompositeExtract 3314 0 - 3317: 184 Load 186(sCube) - 3318:175(f16vec3) Load 177(f16c3) - 3319:6(float16_t) Load 572(f16lod) - 3320:3146(ResType) ImageSparseSampleExplicitLod 3317 3318 Lod 3319 - 3321: 7(f16vec4) CompositeExtract 3320 1 - Store 3286(texel) 3321 - 3322: 47(int) CompositeExtract 3320 0 - 3323: 224 Load 226(s2DShadow) - 3324: 167(fvec3) Load 169(c3) - 3325: 52(float) Load 565(lod) - 3326: 208(ptr) AccessChain 3286(texel) 207 - 3327: 52(float) CompositeExtract 3324 2 - 3328:3182(ResType) ImageSparseSampleDrefExplicitLod 3323 3324 3327 Lod 3325 - 3329:6(float16_t) CompositeExtract 3328 1 - Store 3326 3329 - 3330: 47(int) CompositeExtract 3328 0 - 3331: 224 Load 226(s2DShadow) - 3332:154(f16vec2) Load 156(f16c2) - 3333: 52(float) Load 215(compare) - 3334:6(float16_t) Load 572(f16lod) - 3335: 208(ptr) AccessChain 3286(texel) 207 - 3336:3182(ResType) ImageSparseSampleDrefExplicitLod 3331 3332 3333 Lod 3334 - 3337:6(float16_t) CompositeExtract 3336 1 - Store 3335 3337 - 3338: 47(int) CompositeExtract 3336 0 - 3339: 284 Load 286(s2DArray) - 3340: 167(fvec3) Load 169(c3) - 3341: 52(float) Load 565(lod) - 3342:3146(ResType) ImageSparseSampleExplicitLod 3339 3340 Lod 3341 - 3343: 7(f16vec4) CompositeExtract 3342 1 - Store 3286(texel) 3343 - 3344: 47(int) CompositeExtract 3342 0 - 3345: 284 Load 286(s2DArray) - 3346:175(f16vec3) Load 177(f16c3) - 3347:6(float16_t) Load 572(f16lod) - 3348:3146(ResType) ImageSparseSampleExplicitLod 3345 3346 Lod 3347 - 3349: 7(f16vec4) CompositeExtract 3348 1 - Store 3286(texel) 3349 - 3350: 47(int) CompositeExtract 3348 0 - 3351: 299 Load 301(sCubeArray) - 3352: 249(fvec4) Load 251(c4) - 3353: 52(float) Load 565(lod) - 3354:3146(ResType) ImageSparseSampleExplicitLod 3351 3352 Lod 3353 - 3355: 7(f16vec4) CompositeExtract 3354 1 - Store 3286(texel) 3355 - 3356: 47(int) CompositeExtract 3354 0 - 3357: 299 Load 301(sCubeArray) - 3358: 7(f16vec4) Load 309(f16c4) - 3359:6(float16_t) Load 572(f16lod) - 3360:3146(ResType) ImageSparseSampleExplicitLod 3357 3358 Lod 3359 - 3361: 7(f16vec4) CompositeExtract 3360 1 - Store 3286(texel) 3361 - 3362: 47(int) CompositeExtract 3360 0 - 3363: 7(f16vec4) Load 3286(texel) - ReturnValue 3363 - FunctionEnd -73(testSparseTextureOffset(): 7(f16vec4) Function None 8 - 74: Label - 3366(texel): 64(ptr) Variable Function - Store 3366(texel) 121 - 3367: 143 Load 145(s2D) - 3368: 53(fvec2) Load 148(c2) - 3369:3146(ResType) ImageSparseSampleImplicitLod 3367 3368 ConstOffset 722 - 3370: 7(f16vec4) CompositeExtract 3369 1 - Store 3366(texel) 3370 - 3371: 47(int) CompositeExtract 3369 0 - 3372: 143 Load 145(s2D) - 3373:154(f16vec2) Load 156(f16c2) - 3374:6(float16_t) Load 137(f16bias) - 3375:3146(ResType) ImageSparseSampleImplicitLod 3372 3373 Bias ConstOffset 3374 722 - 3376: 7(f16vec4) CompositeExtract 3375 1 - Store 3366(texel) 3376 - 3377: 47(int) CompositeExtract 3375 0 - 3378: 163 Load 165(s3D) - 3379: 167(fvec3) Load 169(c3) - 3380:3146(ResType) ImageSparseSampleImplicitLod 3378 3379 ConstOffset 735 - 3381: 7(f16vec4) CompositeExtract 3380 1 - Store 3366(texel) 3381 - 3382: 47(int) CompositeExtract 3380 0 - 3383: 163 Load 165(s3D) - 3384:175(f16vec3) Load 177(f16c3) - 3385:6(float16_t) Load 137(f16bias) - 3386:3146(ResType) ImageSparseSampleImplicitLod 3383 3384 Bias ConstOffset 3385 735 - 3387: 7(f16vec4) CompositeExtract 3386 1 - Store 3366(texel) 3387 - 3388: 47(int) CompositeExtract 3386 0 - 3389: 357 Load 359(s2DRect) - 3390: 53(fvec2) Load 148(c2) - 3391:3146(ResType) ImageSparseSampleImplicitLod 3389 3390 ConstOffset 722 - 3392: 7(f16vec4) CompositeExtract 3391 1 - Store 3366(texel) 3392 - 3393: 47(int) CompositeExtract 3391 0 - 3394: 357 Load 359(s2DRect) - 3395:154(f16vec2) Load 156(f16c2) - 3396:3146(ResType) ImageSparseSampleImplicitLod 3394 3395 ConstOffset 722 - 3397: 7(f16vec4) CompositeExtract 3396 1 - Store 3366(texel) 3397 - 3398: 47(int) CompositeExtract 3396 0 - 3399: 371 Load 373(s2DRectShadow) - 3400: 167(fvec3) Load 169(c3) - 3401: 208(ptr) AccessChain 3366(texel) 207 - 3402: 52(float) CompositeExtract 3400 2 - 3403:3182(ResType) ImageSparseSampleDrefImplicitLod 3399 3400 3402 ConstOffset 722 - 3404:6(float16_t) CompositeExtract 3403 1 - Store 3401 3404 - 3405: 47(int) CompositeExtract 3403 0 - 3406: 371 Load 373(s2DRectShadow) - 3407:154(f16vec2) Load 156(f16c2) - 3408: 52(float) Load 215(compare) - 3409: 208(ptr) AccessChain 3366(texel) 207 - 3410:3182(ResType) ImageSparseSampleDrefImplicitLod 3406 3407 3408 ConstOffset 722 - 3411:6(float16_t) CompositeExtract 3410 1 - Store 3409 3411 - 3412: 47(int) CompositeExtract 3410 0 - 3413: 224 Load 226(s2DShadow) - 3414: 167(fvec3) Load 169(c3) - 3415: 208(ptr) AccessChain 3366(texel) 207 - 3416: 52(float) CompositeExtract 3414 2 - 3417:3182(ResType) ImageSparseSampleDrefImplicitLod 3413 3414 3416 ConstOffset 722 - 3418:6(float16_t) CompositeExtract 3417 1 - Store 3415 3418 - 3419: 47(int) CompositeExtract 3417 0 - 3420: 224 Load 226(s2DShadow) - 3421:154(f16vec2) Load 156(f16c2) - 3422: 52(float) Load 215(compare) - 3423: 208(ptr) AccessChain 3366(texel) 207 - 3424:6(float16_t) Load 137(f16bias) - 3425:3182(ResType) ImageSparseSampleDrefImplicitLod 3420 3421 3422 Bias ConstOffset 3424 722 - 3426:6(float16_t) CompositeExtract 3425 1 - Store 3423 3426 - 3427: 47(int) CompositeExtract 3425 0 - 3428: 284 Load 286(s2DArray) - 3429: 167(fvec3) Load 169(c3) - 3430:3146(ResType) ImageSparseSampleImplicitLod 3428 3429 ConstOffset 722 - 3431: 7(f16vec4) CompositeExtract 3430 1 - Store 3366(texel) 3431 - 3432: 47(int) CompositeExtract 3430 0 - 3433: 284 Load 286(s2DArray) - 3434:175(f16vec3) Load 177(f16c3) - 3435:6(float16_t) Load 137(f16bias) - 3436:3146(ResType) ImageSparseSampleImplicitLod 3433 3434 Bias ConstOffset 3435 722 - 3437: 7(f16vec4) CompositeExtract 3436 1 - Store 3366(texel) 3437 - 3438: 47(int) CompositeExtract 3436 0 - 3439: 337 Load 339(s2DArrayShadow) - 3440: 249(fvec4) Load 251(c4) - 3441: 208(ptr) AccessChain 3366(texel) 207 - 3442: 52(float) CompositeExtract 3440 3 - 3443:3182(ResType) ImageSparseSampleDrefImplicitLod 3439 3440 3442 ConstOffset 722 - 3444:6(float16_t) CompositeExtract 3443 1 - Store 3441 3444 - 3445: 47(int) CompositeExtract 3443 0 - 3446: 337 Load 339(s2DArrayShadow) - 3447:175(f16vec3) Load 177(f16c3) - 3448: 52(float) Load 215(compare) - 3449: 208(ptr) AccessChain 3366(texel) 207 - 3450:3182(ResType) ImageSparseSampleDrefImplicitLod 3446 3447 3448 ConstOffset 722 - 3451:6(float16_t) CompositeExtract 3450 1 - Store 3449 3451 - 3452: 47(int) CompositeExtract 3450 0 - 3453: 7(f16vec4) Load 3366(texel) - ReturnValue 3453 - FunctionEnd -75(testSparseTextureLodOffset(): 7(f16vec4) Function None 8 - 76: Label - 3456(texel): 64(ptr) Variable Function - Store 3456(texel) 121 - 3457: 143 Load 145(s2D) - 3458: 53(fvec2) Load 148(c2) - 3459: 52(float) Load 565(lod) - 3460:3146(ResType) ImageSparseSampleExplicitLod 3457 3458 Lod ConstOffset 3459 722 - 3461: 7(f16vec4) CompositeExtract 3460 1 - Store 3456(texel) 3461 - 3462: 47(int) CompositeExtract 3460 0 - 3463: 143 Load 145(s2D) - 3464:154(f16vec2) Load 156(f16c2) - 3465:6(float16_t) Load 572(f16lod) - 3466:3146(ResType) ImageSparseSampleExplicitLod 3463 3464 Lod ConstOffset 3465 722 - 3467: 7(f16vec4) CompositeExtract 3466 1 - Store 3456(texel) 3467 - 3468: 47(int) CompositeExtract 3466 0 - 3469: 163 Load 165(s3D) - 3470: 167(fvec3) Load 169(c3) - 3471: 52(float) Load 565(lod) - 3472:3146(ResType) ImageSparseSampleExplicitLod 3469 3470 Lod ConstOffset 3471 735 - 3473: 7(f16vec4) CompositeExtract 3472 1 - Store 3456(texel) 3473 - 3474: 47(int) CompositeExtract 3472 0 - 3475: 163 Load 165(s3D) - 3476:175(f16vec3) Load 177(f16c3) - 3477:6(float16_t) Load 572(f16lod) - 3478:3146(ResType) ImageSparseSampleExplicitLod 3475 3476 Lod ConstOffset 3477 735 - 3479: 7(f16vec4) CompositeExtract 3478 1 - Store 3456(texel) 3479 - 3480: 47(int) CompositeExtract 3478 0 - 3481: 224 Load 226(s2DShadow) - 3482: 167(fvec3) Load 169(c3) - 3483: 52(float) Load 565(lod) - 3484: 208(ptr) AccessChain 3456(texel) 207 - 3485: 52(float) CompositeExtract 3482 2 - 3486:3182(ResType) ImageSparseSampleDrefExplicitLod 3481 3482 3485 Lod ConstOffset 3483 722 - 3487:6(float16_t) CompositeExtract 3486 1 - Store 3484 3487 - 3488: 47(int) CompositeExtract 3486 0 - 3489: 224 Load 226(s2DShadow) - 3490:154(f16vec2) Load 156(f16c2) - 3491: 52(float) Load 215(compare) - 3492:6(float16_t) Load 572(f16lod) - 3493: 208(ptr) AccessChain 3456(texel) 207 - 3494:3182(ResType) ImageSparseSampleDrefExplicitLod 3489 3490 3491 Lod ConstOffset 3492 722 - 3495:6(float16_t) CompositeExtract 3494 1 - Store 3493 3495 - 3496: 47(int) CompositeExtract 3494 0 - 3497: 284 Load 286(s2DArray) - 3498: 167(fvec3) Load 169(c3) - 3499: 52(float) Load 565(lod) - 3500:3146(ResType) ImageSparseSampleExplicitLod 3497 3498 Lod ConstOffset 3499 722 - 3501: 7(f16vec4) CompositeExtract 3500 1 - Store 3456(texel) 3501 - 3502: 47(int) CompositeExtract 3500 0 - 3503: 284 Load 286(s2DArray) - 3504:175(f16vec3) Load 177(f16c3) - 3505:6(float16_t) Load 572(f16lod) - 3506:3146(ResType) ImageSparseSampleExplicitLod 3503 3504 Lod ConstOffset 3505 722 - 3507: 7(f16vec4) CompositeExtract 3506 1 - Store 3456(texel) 3507 - 3508: 47(int) CompositeExtract 3506 0 - 3509: 7(f16vec4) Load 3456(texel) - ReturnValue 3509 - FunctionEnd -77(testSparseTextureGrad(): 7(f16vec4) Function None 8 - 78: Label - 3512(texel): 64(ptr) Variable Function - Store 3512(texel) 121 - 3513: 143 Load 145(s2D) - 3514: 53(fvec2) Load 148(c2) - 3515: 53(fvec2) Load 1409(dPdxy2) - 3516: 53(fvec2) Load 1409(dPdxy2) - 3517:3146(ResType) ImageSparseSampleExplicitLod 3513 3514 Grad 3515 3516 - 3518: 7(f16vec4) CompositeExtract 3517 1 - Store 3512(texel) 3518 - 3519: 47(int) CompositeExtract 3517 0 - 3520: 143 Load 145(s2D) - 3521:154(f16vec2) Load 156(f16c2) - 3522:154(f16vec2) Load 1417(f16dPdxy2) - 3523:154(f16vec2) Load 1417(f16dPdxy2) - 3524:3146(ResType) ImageSparseSampleExplicitLod 3520 3521 Grad 3522 3523 - 3525: 7(f16vec4) CompositeExtract 3524 1 - Store 3512(texel) 3525 - 3526: 47(int) CompositeExtract 3524 0 - 3527: 163 Load 165(s3D) - 3528: 167(fvec3) Load 169(c3) - 3529: 167(fvec3) Load 1425(dPdxy3) - 3530: 167(fvec3) Load 1425(dPdxy3) - 3531:3146(ResType) ImageSparseSampleExplicitLod 3527 3528 Grad 3529 3530 - 3532: 7(f16vec4) CompositeExtract 3531 1 - Store 3512(texel) 3532 - 3533: 47(int) CompositeExtract 3531 0 - 3534: 163 Load 165(s3D) - 3535:175(f16vec3) Load 177(f16c3) - 3536:175(f16vec3) Load 1433(f16dPdxy3) - 3537:175(f16vec3) Load 1433(f16dPdxy3) - 3538:3146(ResType) ImageSparseSampleExplicitLod 3534 3535 Grad 3536 3537 - 3539: 7(f16vec4) CompositeExtract 3538 1 - Store 3512(texel) 3539 - 3540: 47(int) CompositeExtract 3538 0 - 3541: 184 Load 186(sCube) - 3542: 167(fvec3) Load 169(c3) - 3543: 167(fvec3) Load 1425(dPdxy3) - 3544: 167(fvec3) Load 1425(dPdxy3) - 3545:3146(ResType) ImageSparseSampleExplicitLod 3541 3542 Grad 3543 3544 - 3546: 7(f16vec4) CompositeExtract 3545 1 - Store 3512(texel) 3546 - 3547: 47(int) CompositeExtract 3545 0 - 3548: 184 Load 186(sCube) - 3549:175(f16vec3) Load 177(f16c3) - 3550:175(f16vec3) Load 1433(f16dPdxy3) - 3551:175(f16vec3) Load 1433(f16dPdxy3) - 3552:3146(ResType) ImageSparseSampleExplicitLod 3548 3549 Grad 3550 3551 - 3553: 7(f16vec4) CompositeExtract 3552 1 - Store 3512(texel) 3553 - 3554: 47(int) CompositeExtract 3552 0 - 3555: 357 Load 359(s2DRect) - 3556: 53(fvec2) Load 148(c2) - 3557: 53(fvec2) Load 1409(dPdxy2) - 3558: 53(fvec2) Load 1409(dPdxy2) - 3559:3146(ResType) ImageSparseSampleExplicitLod 3555 3556 Grad 3557 3558 - 3560: 7(f16vec4) CompositeExtract 3559 1 - Store 3512(texel) 3560 - 3561: 47(int) CompositeExtract 3559 0 - 3562: 357 Load 359(s2DRect) - 3563:154(f16vec2) Load 156(f16c2) - 3564:154(f16vec2) Load 1417(f16dPdxy2) - 3565:154(f16vec2) Load 1417(f16dPdxy2) - 3566:3146(ResType) ImageSparseSampleExplicitLod 3562 3563 Grad 3564 3565 - 3567: 7(f16vec4) CompositeExtract 3566 1 - Store 3512(texel) 3567 - 3568: 47(int) CompositeExtract 3566 0 - 3569: 371 Load 373(s2DRectShadow) - 3570: 167(fvec3) Load 169(c3) - 3571: 53(fvec2) Load 1409(dPdxy2) - 3572: 53(fvec2) Load 1409(dPdxy2) - 3573: 208(ptr) AccessChain 3512(texel) 207 - 3574: 52(float) CompositeExtract 3570 2 - 3575:3182(ResType) ImageSparseSampleDrefExplicitLod 3569 3570 3574 Grad 3571 3572 - 3576:6(float16_t) CompositeExtract 3575 1 - Store 3573 3576 - 3577: 47(int) CompositeExtract 3575 0 - 3578: 371 Load 373(s2DRectShadow) - 3579:154(f16vec2) Load 156(f16c2) - 3580: 52(float) Load 215(compare) - 3581:154(f16vec2) Load 1417(f16dPdxy2) - 3582:154(f16vec2) Load 1417(f16dPdxy2) - 3583: 208(ptr) AccessChain 3512(texel) 207 - 3584:3182(ResType) ImageSparseSampleDrefExplicitLod 3578 3579 3580 Grad 3581 3582 - 3585:6(float16_t) CompositeExtract 3584 1 - Store 3583 3585 - 3586: 47(int) CompositeExtract 3584 0 - 3587: 224 Load 226(s2DShadow) - 3588: 167(fvec3) Load 169(c3) - 3589: 53(fvec2) Load 1409(dPdxy2) - 3590: 53(fvec2) Load 1409(dPdxy2) - 3591: 208(ptr) AccessChain 3512(texel) 207 - 3592: 52(float) CompositeExtract 3588 2 - 3593:3182(ResType) ImageSparseSampleDrefExplicitLod 3587 3588 3592 Grad 3589 3590 - 3594:6(float16_t) CompositeExtract 3593 1 - Store 3591 3594 - 3595: 47(int) CompositeExtract 3593 0 - 3596: 224 Load 226(s2DShadow) - 3597:154(f16vec2) Load 156(f16c2) - 3598: 52(float) Load 215(compare) - 3599:154(f16vec2) Load 1417(f16dPdxy2) - 3600:154(f16vec2) Load 1417(f16dPdxy2) - 3601: 208(ptr) AccessChain 3512(texel) 207 - 3602:3182(ResType) ImageSparseSampleDrefExplicitLod 3596 3597 3598 Grad 3599 3600 - 3603:6(float16_t) CompositeExtract 3602 1 - Store 3601 3603 - 3604: 47(int) CompositeExtract 3602 0 - 3605: 245 Load 247(sCubeShadow) - 3606: 249(fvec4) Load 251(c4) - 3607: 167(fvec3) Load 1425(dPdxy3) - 3608: 167(fvec3) Load 1425(dPdxy3) - 3609: 208(ptr) AccessChain 3512(texel) 207 - 3610: 52(float) CompositeExtract 3606 3 - 3611:3182(ResType) ImageSparseSampleDrefExplicitLod 3605 3606 3610 Grad 3607 3608 - 3612:6(float16_t) CompositeExtract 3611 1 - Store 3609 3612 - 3613: 47(int) CompositeExtract 3611 0 - 3614: 245 Load 247(sCubeShadow) - 3615:175(f16vec3) Load 177(f16c3) - 3616: 52(float) Load 215(compare) - 3617:175(f16vec3) Load 1433(f16dPdxy3) - 3618:175(f16vec3) Load 1433(f16dPdxy3) - 3619: 208(ptr) AccessChain 3512(texel) 207 - 3620:3182(ResType) ImageSparseSampleDrefExplicitLod 3614 3615 3616 Grad 3617 3618 - 3621:6(float16_t) CompositeExtract 3620 1 - Store 3619 3621 - 3622: 47(int) CompositeExtract 3620 0 - 3623: 284 Load 286(s2DArray) - 3624: 167(fvec3) Load 169(c3) - 3625: 53(fvec2) Load 1409(dPdxy2) - 3626: 53(fvec2) Load 1409(dPdxy2) - 3627:3146(ResType) ImageSparseSampleExplicitLod 3623 3624 Grad 3625 3626 - 3628: 7(f16vec4) CompositeExtract 3627 1 - Store 3512(texel) 3628 - 3629: 47(int) CompositeExtract 3627 0 - 3630: 284 Load 286(s2DArray) - 3631:175(f16vec3) Load 177(f16c3) - 3632:154(f16vec2) Load 1417(f16dPdxy2) - 3633:154(f16vec2) Load 1417(f16dPdxy2) - 3634:3146(ResType) ImageSparseSampleExplicitLod 3630 3631 Grad 3632 3633 - 3635: 7(f16vec4) CompositeExtract 3634 1 - Store 3512(texel) 3635 - 3636: 47(int) CompositeExtract 3634 0 - 3637: 337 Load 339(s2DArrayShadow) - 3638: 249(fvec4) Load 251(c4) - 3639: 53(fvec2) Load 1409(dPdxy2) - 3640: 53(fvec2) Load 1409(dPdxy2) - 3641: 208(ptr) AccessChain 3512(texel) 207 - 3642: 52(float) CompositeExtract 3638 3 - 3643:3182(ResType) ImageSparseSampleDrefExplicitLod 3637 3638 3642 Grad 3639 3640 - 3644:6(float16_t) CompositeExtract 3643 1 - Store 3641 3644 - 3645: 47(int) CompositeExtract 3643 0 - 3646: 337 Load 339(s2DArrayShadow) - 3647:175(f16vec3) Load 177(f16c3) - 3648: 52(float) Load 215(compare) - 3649:154(f16vec2) Load 1417(f16dPdxy2) - 3650:154(f16vec2) Load 1417(f16dPdxy2) - 3651: 208(ptr) AccessChain 3512(texel) 207 - 3652:3182(ResType) ImageSparseSampleDrefExplicitLod 3646 3647 3648 Grad 3649 3650 - 3653:6(float16_t) CompositeExtract 3652 1 - Store 3651 3653 - 3654: 47(int) CompositeExtract 3652 0 - 3655: 299 Load 301(sCubeArray) - 3656: 249(fvec4) Load 251(c4) - 3657: 167(fvec3) Load 1425(dPdxy3) - 3658: 167(fvec3) Load 1425(dPdxy3) - 3659:3146(ResType) ImageSparseSampleExplicitLod 3655 3656 Grad 3657 3658 - 3660: 7(f16vec4) CompositeExtract 3659 1 - Store 3512(texel) 3660 - 3661: 47(int) CompositeExtract 3659 0 - 3662: 299 Load 301(sCubeArray) - 3663: 7(f16vec4) Load 309(f16c4) - 3664:175(f16vec3) Load 1433(f16dPdxy3) - 3665:175(f16vec3) Load 1433(f16dPdxy3) - 3666:3146(ResType) ImageSparseSampleExplicitLod 3662 3663 Grad 3664 3665 - 3667: 7(f16vec4) CompositeExtract 3666 1 - Store 3512(texel) 3667 - 3668: 47(int) CompositeExtract 3666 0 - 3669: 7(f16vec4) Load 3512(texel) - ReturnValue 3669 - FunctionEnd -79(testSparseTextureGradOffset(): 7(f16vec4) Function None 8 - 80: Label - 3672(texel): 64(ptr) Variable Function - Store 3672(texel) 121 - 3673: 143 Load 145(s2D) - 3674: 53(fvec2) Load 148(c2) - 3675: 53(fvec2) Load 1409(dPdxy2) - 3676: 53(fvec2) Load 1409(dPdxy2) - 3677:3146(ResType) ImageSparseSampleExplicitLod 3673 3674 Grad ConstOffset 3675 3676 722 - 3678: 7(f16vec4) CompositeExtract 3677 1 - Store 3672(texel) 3678 - 3679: 47(int) CompositeExtract 3677 0 - 3680: 143 Load 145(s2D) - 3681:154(f16vec2) Load 156(f16c2) - 3682:154(f16vec2) Load 1417(f16dPdxy2) - 3683:154(f16vec2) Load 1417(f16dPdxy2) - 3684:3146(ResType) ImageSparseSampleExplicitLod 3680 3681 Grad ConstOffset 3682 3683 722 - 3685: 7(f16vec4) CompositeExtract 3684 1 - Store 3672(texel) 3685 - 3686: 47(int) CompositeExtract 3684 0 - 3687: 163 Load 165(s3D) - 3688: 167(fvec3) Load 169(c3) - 3689: 167(fvec3) Load 1425(dPdxy3) - 3690: 167(fvec3) Load 1425(dPdxy3) - 3691:3146(ResType) ImageSparseSampleExplicitLod 3687 3688 Grad ConstOffset 3689 3690 735 - 3692: 7(f16vec4) CompositeExtract 3691 1 - Store 3672(texel) 3692 - 3693: 47(int) CompositeExtract 3691 0 - 3694: 163 Load 165(s3D) - 3695:175(f16vec3) Load 177(f16c3) - 3696:175(f16vec3) Load 1433(f16dPdxy3) - 3697:175(f16vec3) Load 1433(f16dPdxy3) - 3698:3146(ResType) ImageSparseSampleExplicitLod 3694 3695 Grad ConstOffset 3696 3697 735 - 3699: 7(f16vec4) CompositeExtract 3698 1 - Store 3672(texel) 3699 - 3700: 47(int) CompositeExtract 3698 0 - 3701: 357 Load 359(s2DRect) - 3702: 53(fvec2) Load 148(c2) - 3703: 53(fvec2) Load 1409(dPdxy2) - 3704: 53(fvec2) Load 1409(dPdxy2) - 3705:3146(ResType) ImageSparseSampleExplicitLod 3701 3702 Grad ConstOffset 3703 3704 722 - 3706: 7(f16vec4) CompositeExtract 3705 1 - Store 3672(texel) 3706 - 3707: 47(int) CompositeExtract 3705 0 - 3708: 357 Load 359(s2DRect) - 3709:154(f16vec2) Load 156(f16c2) - 3710:154(f16vec2) Load 1417(f16dPdxy2) - 3711:154(f16vec2) Load 1417(f16dPdxy2) - 3712:3146(ResType) ImageSparseSampleExplicitLod 3708 3709 Grad ConstOffset 3710 3711 722 - 3713: 7(f16vec4) CompositeExtract 3712 1 - Store 3672(texel) 3713 - 3714: 47(int) CompositeExtract 3712 0 - 3715: 371 Load 373(s2DRectShadow) - 3716: 167(fvec3) Load 169(c3) - 3717: 53(fvec2) Load 1409(dPdxy2) - 3718: 53(fvec2) Load 1409(dPdxy2) - 3719: 208(ptr) AccessChain 3672(texel) 207 - 3720: 52(float) CompositeExtract 3716 2 - 3721:3182(ResType) ImageSparseSampleDrefExplicitLod 3715 3716 3720 Grad ConstOffset 3717 3718 722 - 3722:6(float16_t) CompositeExtract 3721 1 - Store 3719 3722 - 3723: 47(int) CompositeExtract 3721 0 - 3724: 371 Load 373(s2DRectShadow) - 3725:154(f16vec2) Load 156(f16c2) - 3726: 52(float) Load 215(compare) - 3727:154(f16vec2) Load 1417(f16dPdxy2) - 3728:154(f16vec2) Load 1417(f16dPdxy2) - 3729: 208(ptr) AccessChain 3672(texel) 207 - 3730:3182(ResType) ImageSparseSampleDrefExplicitLod 3724 3725 3726 Grad ConstOffset 3727 3728 722 - 3731:6(float16_t) CompositeExtract 3730 1 - Store 3729 3731 - 3732: 47(int) CompositeExtract 3730 0 - 3733: 224 Load 226(s2DShadow) - 3734: 167(fvec3) Load 169(c3) - 3735: 53(fvec2) Load 1409(dPdxy2) - 3736: 53(fvec2) Load 1409(dPdxy2) - 3737: 208(ptr) AccessChain 3672(texel) 207 - 3738: 52(float) CompositeExtract 3734 2 - 3739:3182(ResType) ImageSparseSampleDrefExplicitLod 3733 3734 3738 Grad ConstOffset 3735 3736 722 - 3740:6(float16_t) CompositeExtract 3739 1 - Store 3737 3740 - 3741: 47(int) CompositeExtract 3739 0 - 3742: 224 Load 226(s2DShadow) - 3743:154(f16vec2) Load 156(f16c2) - 3744: 52(float) Load 215(compare) - 3745:154(f16vec2) Load 1417(f16dPdxy2) - 3746:154(f16vec2) Load 1417(f16dPdxy2) - 3747: 208(ptr) AccessChain 3672(texel) 207 - 3748:3182(ResType) ImageSparseSampleDrefExplicitLod 3742 3743 3744 Grad ConstOffset 3745 3746 722 - 3749:6(float16_t) CompositeExtract 3748 1 - Store 3747 3749 - 3750: 47(int) CompositeExtract 3748 0 - 3751: 284 Load 286(s2DArray) - 3752: 167(fvec3) Load 169(c3) - 3753: 53(fvec2) Load 1409(dPdxy2) - 3754: 53(fvec2) Load 1409(dPdxy2) - 3755:3146(ResType) ImageSparseSampleExplicitLod 3751 3752 Grad ConstOffset 3753 3754 722 - 3756: 7(f16vec4) CompositeExtract 3755 1 - Store 3672(texel) 3756 - 3757: 47(int) CompositeExtract 3755 0 - 3758: 284 Load 286(s2DArray) - 3759:175(f16vec3) Load 177(f16c3) - 3760:154(f16vec2) Load 1417(f16dPdxy2) - 3761:154(f16vec2) Load 1417(f16dPdxy2) - 3762:3146(ResType) ImageSparseSampleExplicitLod 3758 3759 Grad ConstOffset 3760 3761 722 - 3763: 7(f16vec4) CompositeExtract 3762 1 - Store 3672(texel) 3763 - 3764: 47(int) CompositeExtract 3762 0 - 3765: 337 Load 339(s2DArrayShadow) - 3766: 249(fvec4) Load 251(c4) - 3767: 53(fvec2) Load 1409(dPdxy2) - 3768: 53(fvec2) Load 1409(dPdxy2) - 3769: 208(ptr) AccessChain 3672(texel) 207 - 3770: 52(float) CompositeExtract 3766 3 - 3771:3182(ResType) ImageSparseSampleDrefExplicitLod 3765 3766 3770 Grad ConstOffset 3767 3768 722 - 3772:6(float16_t) CompositeExtract 3771 1 - Store 3769 3772 - 3773: 47(int) CompositeExtract 3771 0 - 3774: 337 Load 339(s2DArrayShadow) - 3775:175(f16vec3) Load 177(f16c3) - 3776: 52(float) Load 215(compare) - 3777:154(f16vec2) Load 1417(f16dPdxy2) - 3778:154(f16vec2) Load 1417(f16dPdxy2) - 3779: 208(ptr) AccessChain 3672(texel) 207 - 3780:3182(ResType) ImageSparseSampleDrefExplicitLod 3774 3775 3776 Grad ConstOffset 3777 3778 722 - 3781:6(float16_t) CompositeExtract 3780 1 - Store 3779 3781 - 3782: 47(int) CompositeExtract 3780 0 - 3783: 7(f16vec4) Load 3672(texel) - ReturnValue 3783 - FunctionEnd -81(testSparseTexelFetch(): 7(f16vec4) Function None 8 - 82: Label - 3786(texel): 64(ptr) Variable Function - Store 3786(texel) 121 - 3787: 143 Load 145(s2D) - 3788: 53(fvec2) Load 148(c2) - 3789: 721(ivec2) ConvertFToS 3788 - 3790: 52(float) Load 565(lod) - 3791: 47(int) ConvertFToS 3790 - 3792: 142 Image 3787 - 3793:3146(ResType) ImageSparseFetch 3792 3789 Lod 3791 - 3794: 7(f16vec4) CompositeExtract 3793 1 - Store 3786(texel) 3794 - 3795: 47(int) CompositeExtract 3793 0 - 3796: 163 Load 165(s3D) - 3797: 167(fvec3) Load 169(c3) - 3798: 734(ivec3) ConvertFToS 3797 - 3799: 52(float) Load 565(lod) - 3800: 47(int) ConvertFToS 3799 - 3801: 162 Image 3796 - 3802:3146(ResType) ImageSparseFetch 3801 3798 Lod 3800 - 3803: 7(f16vec4) CompositeExtract 3802 1 - Store 3786(texel) 3803 - 3804: 47(int) CompositeExtract 3802 0 - 3805: 357 Load 359(s2DRect) - 3806: 53(fvec2) Load 148(c2) - 3807: 721(ivec2) ConvertFToS 3806 - 3808: 356 Image 3805 - 3809:3146(ResType) ImageSparseFetch 3808 3807 - 3810: 7(f16vec4) CompositeExtract 3809 1 - Store 3786(texel) 3810 - 3811: 47(int) CompositeExtract 3809 0 - 3812: 284 Load 286(s2DArray) - 3813: 167(fvec3) Load 169(c3) - 3814: 734(ivec3) ConvertFToS 3813 - 3815: 52(float) Load 565(lod) - 3816: 47(int) ConvertFToS 3815 - 3817: 283 Image 3812 - 3818:3146(ResType) ImageSparseFetch 3817 3814 Lod 3816 - 3819: 7(f16vec4) CompositeExtract 3818 1 - Store 3786(texel) 3819 - 3820: 47(int) CompositeExtract 3818 0 - 3821: 1309 Load 1311(s2DMS) - 3822: 53(fvec2) Load 148(c2) - 3823: 721(ivec2) ConvertFToS 3822 - 3824: 1308 Image 3821 - 3825:3146(ResType) ImageSparseFetch 3824 3823 Sample 709 - 3826: 7(f16vec4) CompositeExtract 3825 1 - Store 3786(texel) 3826 - 3827: 47(int) CompositeExtract 3825 0 - 3828: 1320 Load 1322(s2DMSArray) - 3829: 167(fvec3) Load 169(c3) - 3830: 734(ivec3) ConvertFToS 3829 - 3831: 1319 Image 3828 - 3832:3146(ResType) ImageSparseFetch 3831 3830 Sample 1326 - 3833: 7(f16vec4) CompositeExtract 3832 1 - Store 3786(texel) 3833 - 3834: 47(int) CompositeExtract 3832 0 - 3835: 7(f16vec4) Load 3786(texel) - ReturnValue 3835 - FunctionEnd -83(testSparseTexelFetchOffset(): 7(f16vec4) Function None 8 - 84: Label - 3838(texel): 64(ptr) Variable Function - Store 3838(texel) 121 - 3839: 143 Load 145(s2D) - 3840: 53(fvec2) Load 148(c2) - 3841: 721(ivec2) ConvertFToS 3840 - 3842: 52(float) Load 565(lod) - 3843: 47(int) ConvertFToS 3842 - 3844: 142 Image 3839 - 3845:3146(ResType) ImageSparseFetch 3844 3841 Lod ConstOffset 3843 722 - 3846: 7(f16vec4) CompositeExtract 3845 1 - Store 3838(texel) 3846 - 3847: 47(int) CompositeExtract 3845 0 - 3848: 163 Load 165(s3D) - 3849: 167(fvec3) Load 169(c3) - 3850: 734(ivec3) ConvertFToS 3849 - 3851: 52(float) Load 565(lod) - 3852: 47(int) ConvertFToS 3851 - 3853: 162 Image 3848 - 3854:3146(ResType) ImageSparseFetch 3853 3850 Lod ConstOffset 3852 735 - 3855: 7(f16vec4) CompositeExtract 3854 1 - Store 3838(texel) 3855 - 3856: 47(int) CompositeExtract 3854 0 - 3857: 357 Load 359(s2DRect) - 3858: 53(fvec2) Load 148(c2) - 3859: 721(ivec2) ConvertFToS 3858 - 3860: 356 Image 3857 - 3861:3146(ResType) ImageSparseFetch 3860 3859 ConstOffset 722 - 3862: 7(f16vec4) CompositeExtract 3861 1 - Store 3838(texel) 3862 - 3863: 47(int) CompositeExtract 3861 0 - 3864: 284 Load 286(s2DArray) - 3865: 167(fvec3) Load 169(c3) - 3866: 734(ivec3) ConvertFToS 3865 - 3867: 52(float) Load 565(lod) - 3868: 47(int) ConvertFToS 3867 - 3869: 283 Image 3864 - 3870:3146(ResType) ImageSparseFetch 3869 3866 Lod ConstOffset 3868 722 - 3871: 7(f16vec4) CompositeExtract 3870 1 - Store 3838(texel) 3871 - 3872: 47(int) CompositeExtract 3870 0 - 3873: 7(f16vec4) Load 3838(texel) - ReturnValue 3873 - FunctionEnd -85(testSparseTextureGather(): 7(f16vec4) Function None 8 - 86: Label - 3876(texel): 64(ptr) Variable Function - Store 3876(texel) 121 - 3877: 143 Load 145(s2D) - 3878: 53(fvec2) Load 148(c2) - 3879:3146(ResType) ImageSparseGather 3877 3878 2187 - 3880: 7(f16vec4) CompositeExtract 3879 1 - Store 3876(texel) 3880 - 3881: 47(int) CompositeExtract 3879 0 - 3882: 143 Load 145(s2D) - 3883:154(f16vec2) Load 156(f16c2) - 3884:6(float16_t) Load 137(f16bias) - 3885:3146(ResType) ImageSparseGather 3882 3883 2187 Bias 3884 - 3886: 7(f16vec4) CompositeExtract 3885 1 - Store 3876(texel) 3886 - 3887: 47(int) CompositeExtract 3885 0 - 3888: 284 Load 286(s2DArray) - 3889: 167(fvec3) Load 169(c3) - 3890:3146(ResType) ImageSparseGather 3888 3889 2187 - 3891: 7(f16vec4) CompositeExtract 3890 1 - Store 3876(texel) 3891 - 3892: 47(int) CompositeExtract 3890 0 - 3893: 284 Load 286(s2DArray) - 3894:175(f16vec3) Load 177(f16c3) - 3895:6(float16_t) Load 137(f16bias) - 3896:3146(ResType) ImageSparseGather 3893 3894 2187 Bias 3895 - 3897: 7(f16vec4) CompositeExtract 3896 1 - Store 3876(texel) 3897 - 3898: 47(int) CompositeExtract 3896 0 - 3899: 184 Load 186(sCube) - 3900: 167(fvec3) Load 169(c3) - 3901:3146(ResType) ImageSparseGather 3899 3900 2187 - 3902: 7(f16vec4) CompositeExtract 3901 1 - Store 3876(texel) 3902 - 3903: 47(int) CompositeExtract 3901 0 - 3904: 184 Load 186(sCube) - 3905:175(f16vec3) Load 177(f16c3) - 3906:6(float16_t) Load 137(f16bias) - 3907:3146(ResType) ImageSparseGather 3904 3905 2187 Bias 3906 - 3908: 7(f16vec4) CompositeExtract 3907 1 - Store 3876(texel) 3908 - 3909: 47(int) CompositeExtract 3907 0 - 3910: 299 Load 301(sCubeArray) - 3911: 249(fvec4) Load 251(c4) - 3912:3146(ResType) ImageSparseGather 3910 3911 2187 - 3913: 7(f16vec4) CompositeExtract 3912 1 - Store 3876(texel) 3913 - 3914: 47(int) CompositeExtract 3912 0 - 3915: 299 Load 301(sCubeArray) - 3916: 7(f16vec4) Load 309(f16c4) - 3917:6(float16_t) Load 137(f16bias) - 3918:3146(ResType) ImageSparseGather 3915 3916 2187 Bias 3917 - 3919: 7(f16vec4) CompositeExtract 3918 1 - Store 3876(texel) 3919 - 3920: 47(int) CompositeExtract 3918 0 - 3921: 357 Load 359(s2DRect) - 3922: 53(fvec2) Load 148(c2) - 3923:3146(ResType) ImageSparseGather 3921 3922 2187 - 3924: 7(f16vec4) CompositeExtract 3923 1 - Store 3876(texel) 3924 - 3925: 47(int) CompositeExtract 3923 0 - 3926: 357 Load 359(s2DRect) - 3927:154(f16vec2) Load 156(f16c2) - 3928:3146(ResType) ImageSparseGather 3926 3927 2187 - 3929: 7(f16vec4) CompositeExtract 3928 1 - Store 3876(texel) 3929 - 3930: 47(int) CompositeExtract 3928 0 - 3931: 224 Load 226(s2DShadow) - 3932: 53(fvec2) Load 148(c2) - 3933: 52(float) Load 215(compare) - 3934:3146(ResType) ImageSparseDrefGather 3931 3932 3933 - 3935: 7(f16vec4) CompositeExtract 3934 1 - Store 3876(texel) 3935 - 3936: 47(int) CompositeExtract 3934 0 - 3937: 224 Load 226(s2DShadow) - 3938:154(f16vec2) Load 156(f16c2) - 3939: 52(float) Load 215(compare) - 3940:3146(ResType) ImageSparseDrefGather 3937 3938 3939 - 3941: 7(f16vec4) CompositeExtract 3940 1 - Store 3876(texel) 3941 - 3942: 47(int) CompositeExtract 3940 0 - 3943: 337 Load 339(s2DArrayShadow) - 3944: 167(fvec3) Load 169(c3) - 3945: 52(float) Load 215(compare) - 3946:3146(ResType) ImageSparseDrefGather 3943 3944 3945 - 3947: 7(f16vec4) CompositeExtract 3946 1 - Store 3876(texel) 3947 - 3948: 47(int) CompositeExtract 3946 0 - 3949: 337 Load 339(s2DArrayShadow) - 3950:175(f16vec3) Load 177(f16c3) - 3951: 52(float) Load 215(compare) - 3952:3146(ResType) ImageSparseDrefGather 3949 3950 3951 - 3953: 7(f16vec4) CompositeExtract 3952 1 - Store 3876(texel) 3953 - 3954: 47(int) CompositeExtract 3952 0 - 3955: 245 Load 247(sCubeShadow) - 3956: 167(fvec3) Load 169(c3) - 3957: 52(float) Load 215(compare) - 3958:3146(ResType) ImageSparseDrefGather 3955 3956 3957 - 3959: 7(f16vec4) CompositeExtract 3958 1 - Store 3876(texel) 3959 - 3960: 47(int) CompositeExtract 3958 0 - 3961: 245 Load 247(sCubeShadow) - 3962:175(f16vec3) Load 177(f16c3) - 3963: 52(float) Load 215(compare) - 3964:3146(ResType) ImageSparseDrefGather 3961 3962 3963 - 3965: 7(f16vec4) CompositeExtract 3964 1 - Store 3876(texel) 3965 - 3966: 47(int) CompositeExtract 3964 0 - 3967: 391 Load 393(sCubeArrayShadow) - 3968: 249(fvec4) Load 251(c4) - 3969: 52(float) Load 215(compare) - 3970:3146(ResType) ImageSparseDrefGather 3967 3968 3969 - 3971: 7(f16vec4) CompositeExtract 3970 1 - Store 3876(texel) 3971 - 3972: 47(int) CompositeExtract 3970 0 - 3973: 391 Load 393(sCubeArrayShadow) - 3974: 7(f16vec4) Load 309(f16c4) - 3975: 52(float) Load 215(compare) - 3976:3146(ResType) ImageSparseDrefGather 3973 3974 3975 - 3977: 7(f16vec4) CompositeExtract 3976 1 - Store 3876(texel) 3977 - 3978: 47(int) CompositeExtract 3976 0 - 3979: 371 Load 373(s2DRectShadow) - 3980: 53(fvec2) Load 148(c2) - 3981: 52(float) Load 215(compare) - 3982:3146(ResType) ImageSparseDrefGather 3979 3980 3981 - 3983: 7(f16vec4) CompositeExtract 3982 1 - Store 3876(texel) 3983 - 3984: 47(int) CompositeExtract 3982 0 - 3985: 371 Load 373(s2DRectShadow) - 3986:154(f16vec2) Load 156(f16c2) - 3987: 52(float) Load 215(compare) - 3988:3146(ResType) ImageSparseDrefGather 3985 3986 3987 - 3989: 7(f16vec4) CompositeExtract 3988 1 - Store 3876(texel) 3989 - 3990: 47(int) CompositeExtract 3988 0 - 3991: 7(f16vec4) Load 3876(texel) - ReturnValue 3991 - FunctionEnd -87(testSparseTextureGatherOffset(): 7(f16vec4) Function None 8 - 88: Label - 3994(texel): 64(ptr) Variable Function - Store 3994(texel) 121 - 3995: 143 Load 145(s2D) - 3996: 53(fvec2) Load 148(c2) - 3997:3146(ResType) ImageSparseGather 3995 3996 2187 ConstOffset 722 - 3998: 7(f16vec4) CompositeExtract 3997 1 - Store 3994(texel) 3998 - 3999: 47(int) CompositeExtract 3997 0 - 4000: 143 Load 145(s2D) - 4001:154(f16vec2) Load 156(f16c2) - 4002:6(float16_t) Load 137(f16bias) - 4003:3146(ResType) ImageSparseGather 4000 4001 2187 Bias ConstOffset 4002 722 - 4004: 7(f16vec4) CompositeExtract 4003 1 - Store 3994(texel) 4004 - 4005: 47(int) CompositeExtract 4003 0 - 4006: 284 Load 286(s2DArray) - 4007: 167(fvec3) Load 169(c3) - 4008:3146(ResType) ImageSparseGather 4006 4007 2187 ConstOffset 722 - 4009: 7(f16vec4) CompositeExtract 4008 1 - Store 3994(texel) 4009 - 4010: 47(int) CompositeExtract 4008 0 - 4011: 284 Load 286(s2DArray) - 4012:175(f16vec3) Load 177(f16c3) - 4013:6(float16_t) Load 137(f16bias) - 4014:3146(ResType) ImageSparseGather 4011 4012 2187 Bias ConstOffset 4013 722 - 4015: 7(f16vec4) CompositeExtract 4014 1 - Store 3994(texel) 4015 - 4016: 47(int) CompositeExtract 4014 0 - 4017: 357 Load 359(s2DRect) - 4018: 53(fvec2) Load 148(c2) - 4019:3146(ResType) ImageSparseGather 4017 4018 2187 ConstOffset 722 - 4020: 7(f16vec4) CompositeExtract 4019 1 - Store 3994(texel) 4020 - 4021: 47(int) CompositeExtract 4019 0 - 4022: 357 Load 359(s2DRect) - 4023:154(f16vec2) Load 156(f16c2) - 4024:3146(ResType) ImageSparseGather 4022 4023 2187 ConstOffset 722 - 4025: 7(f16vec4) CompositeExtract 4024 1 - Store 3994(texel) 4025 - 4026: 47(int) CompositeExtract 4024 0 - 4027: 224 Load 226(s2DShadow) - 4028: 53(fvec2) Load 148(c2) - 4029: 52(float) Load 215(compare) - 4030:3146(ResType) ImageSparseDrefGather 4027 4028 4029 ConstOffset 722 - 4031: 7(f16vec4) CompositeExtract 4030 1 - Store 3994(texel) 4031 - 4032: 47(int) CompositeExtract 4030 0 - 4033: 224 Load 226(s2DShadow) - 4034:154(f16vec2) Load 156(f16c2) - 4035: 52(float) Load 215(compare) - 4036:3146(ResType) ImageSparseDrefGather 4033 4034 4035 ConstOffset 722 - 4037: 7(f16vec4) CompositeExtract 4036 1 - Store 3994(texel) 4037 - 4038: 47(int) CompositeExtract 4036 0 - 4039: 337 Load 339(s2DArrayShadow) - 4040: 167(fvec3) Load 169(c3) - 4041: 52(float) Load 215(compare) - 4042:3146(ResType) ImageSparseDrefGather 4039 4040 4041 ConstOffset 722 - 4043: 7(f16vec4) CompositeExtract 4042 1 - Store 3994(texel) 4043 - 4044: 47(int) CompositeExtract 4042 0 - 4045: 337 Load 339(s2DArrayShadow) - 4046:175(f16vec3) Load 177(f16c3) - 4047: 52(float) Load 215(compare) - 4048:3146(ResType) ImageSparseDrefGather 4045 4046 4047 ConstOffset 722 - 4049: 7(f16vec4) CompositeExtract 4048 1 - Store 3994(texel) 4049 - 4050: 47(int) CompositeExtract 4048 0 - 4051: 371 Load 373(s2DRectShadow) - 4052: 53(fvec2) Load 148(c2) - 4053: 52(float) Load 215(compare) - 4054:3146(ResType) ImageSparseDrefGather 4051 4052 4053 ConstOffset 722 - 4055: 7(f16vec4) CompositeExtract 4054 1 - Store 3994(texel) 4055 - 4056: 47(int) CompositeExtract 4054 0 - 4057: 371 Load 373(s2DRectShadow) - 4058:154(f16vec2) Load 156(f16c2) - 4059: 52(float) Load 215(compare) - 4060:3146(ResType) ImageSparseDrefGather 4057 4058 4059 ConstOffset 722 - 4061: 7(f16vec4) CompositeExtract 4060 1 - Store 3994(texel) 4061 - 4062: 47(int) CompositeExtract 4060 0 - 4063: 7(f16vec4) Load 3994(texel) - ReturnValue 4063 - FunctionEnd -89(testSparseTextureGatherOffsets(): 7(f16vec4) Function None 8 - 90: Label - 4066(texel): 64(ptr) Variable Function - Store 4066(texel) 121 - 4067: 143 Load 145(s2D) - 4068: 53(fvec2) Load 148(c2) - 4079:3146(ResType) ImageSparseGather 4067 4068 2187 ConstOffsets 4078 - 4080: 7(f16vec4) CompositeExtract 4079 1 - Store 4066(texel) 4080 - 4081: 47(int) CompositeExtract 4079 0 - 4082: 143 Load 145(s2D) - 4083:154(f16vec2) Load 156(f16c2) - 4084:6(float16_t) Load 137(f16bias) - 4085:3146(ResType) ImageSparseGather 4082 4083 2187 Bias ConstOffsets 4084 4078 - 4086: 7(f16vec4) CompositeExtract 4085 1 - Store 4066(texel) 4086 - 4087: 47(int) CompositeExtract 4085 0 - 4088: 284 Load 286(s2DArray) - 4089: 167(fvec3) Load 169(c3) - 4090:3146(ResType) ImageSparseGather 4088 4089 2187 ConstOffsets 4078 - 4091: 7(f16vec4) CompositeExtract 4090 1 - Store 4066(texel) 4091 - 4092: 47(int) CompositeExtract 4090 0 - 4093: 284 Load 286(s2DArray) - 4094:175(f16vec3) Load 177(f16c3) - 4095:6(float16_t) Load 137(f16bias) - 4096:3146(ResType) ImageSparseGather 4093 4094 2187 Bias ConstOffsets 4095 4078 - 4097: 7(f16vec4) CompositeExtract 4096 1 - Store 4066(texel) 4097 - 4098: 47(int) CompositeExtract 4096 0 - 4099: 357 Load 359(s2DRect) - 4100: 53(fvec2) Load 148(c2) - 4101:3146(ResType) ImageSparseGather 4099 4100 2187 ConstOffsets 4078 - 4102: 7(f16vec4) CompositeExtract 4101 1 - Store 4066(texel) 4102 - 4103: 47(int) CompositeExtract 4101 0 - 4104: 357 Load 359(s2DRect) - 4105:154(f16vec2) Load 156(f16c2) - 4106:3146(ResType) ImageSparseGather 4104 4105 2187 ConstOffsets 4078 - 4107: 7(f16vec4) CompositeExtract 4106 1 - Store 4066(texel) 4107 - 4108: 47(int) CompositeExtract 4106 0 - 4109: 224 Load 226(s2DShadow) - 4110: 53(fvec2) Load 148(c2) - 4111: 52(float) Load 215(compare) - 4112:3146(ResType) ImageSparseDrefGather 4109 4110 4111 ConstOffsets 4078 - 4113: 7(f16vec4) CompositeExtract 4112 1 - Store 4066(texel) 4113 - 4114: 47(int) CompositeExtract 4112 0 - 4115: 224 Load 226(s2DShadow) - 4116:154(f16vec2) Load 156(f16c2) - 4117: 52(float) Load 215(compare) - 4118:3146(ResType) ImageSparseDrefGather 4115 4116 4117 ConstOffsets 4078 - 4119: 7(f16vec4) CompositeExtract 4118 1 - Store 4066(texel) 4119 - 4120: 47(int) CompositeExtract 4118 0 - 4121: 337 Load 339(s2DArrayShadow) - 4122: 167(fvec3) Load 169(c3) - 4123: 52(float) Load 215(compare) - 4124:3146(ResType) ImageSparseDrefGather 4121 4122 4123 ConstOffsets 4078 - 4125: 7(f16vec4) CompositeExtract 4124 1 - Store 4066(texel) 4125 - 4126: 47(int) CompositeExtract 4124 0 - 4127: 337 Load 339(s2DArrayShadow) - 4128:175(f16vec3) Load 177(f16c3) - 4129: 52(float) Load 215(compare) - 4130:3146(ResType) ImageSparseDrefGather 4127 4128 4129 ConstOffsets 4078 - 4131: 7(f16vec4) CompositeExtract 4130 1 - Store 4066(texel) 4131 - 4132: 47(int) CompositeExtract 4130 0 - 4133: 371 Load 373(s2DRectShadow) - 4134: 53(fvec2) Load 148(c2) - 4135: 52(float) Load 215(compare) - 4136:3146(ResType) ImageSparseDrefGather 4133 4134 4135 ConstOffsets 4078 - 4137: 7(f16vec4) CompositeExtract 4136 1 - Store 4066(texel) 4137 - 4138: 47(int) CompositeExtract 4136 0 - 4139: 371 Load 373(s2DRectShadow) - 4140:154(f16vec2) Load 156(f16c2) - 4141: 52(float) Load 215(compare) - 4142:3146(ResType) ImageSparseDrefGather 4139 4140 4141 ConstOffsets 4078 - 4143: 7(f16vec4) CompositeExtract 4142 1 - Store 4066(texel) 4143 - 4144: 47(int) CompositeExtract 4142 0 - 4145: 7(f16vec4) Load 4066(texel) - ReturnValue 4145 - FunctionEnd -91(testSparseTextureGatherLod(): 7(f16vec4) Function None 8 - 92: Label - 4148(texel): 64(ptr) Variable Function - Store 4148(texel) 121 - 4149: 143 Load 145(s2D) - 4150: 53(fvec2) Load 148(c2) - 4151: 52(float) Load 565(lod) - 4152:3146(ResType) ImageSparseGather 4149 4150 2187 Lod 4151 - 4153: 7(f16vec4) CompositeExtract 4152 1 - Store 4148(texel) 4153 - 4154: 47(int) CompositeExtract 4152 0 - 4155: 143 Load 145(s2D) - 4156:154(f16vec2) Load 156(f16c2) - 4157:6(float16_t) Load 572(f16lod) - 4158:3146(ResType) ImageSparseGather 4155 4156 2187 Lod 4157 - 4159: 7(f16vec4) CompositeExtract 4158 1 - Store 4148(texel) 4159 - 4160: 47(int) CompositeExtract 4158 0 - 4161: 284 Load 286(s2DArray) - 4162: 167(fvec3) Load 169(c3) - 4163: 52(float) Load 565(lod) - 4164:3146(ResType) ImageSparseGather 4161 4162 2187 Lod 4163 - 4165: 7(f16vec4) CompositeExtract 4164 1 - Store 4148(texel) 4165 - 4166: 47(int) CompositeExtract 4164 0 - 4167: 284 Load 286(s2DArray) - 4168:175(f16vec3) Load 177(f16c3) - 4169:6(float16_t) Load 572(f16lod) - 4170:3146(ResType) ImageSparseGather 4167 4168 2187 Lod 4169 - 4171: 7(f16vec4) CompositeExtract 4170 1 - Store 4148(texel) 4171 - 4172: 47(int) CompositeExtract 4170 0 - 4173: 184 Load 186(sCube) - 4174: 167(fvec3) Load 169(c3) - 4175: 52(float) Load 565(lod) - 4176:3146(ResType) ImageSparseGather 4173 4174 2187 Lod 4175 - 4177: 7(f16vec4) CompositeExtract 4176 1 - Store 4148(texel) 4177 - 4178: 47(int) CompositeExtract 4176 0 - 4179: 184 Load 186(sCube) - 4180:175(f16vec3) Load 177(f16c3) - 4181:6(float16_t) Load 572(f16lod) - 4182:3146(ResType) ImageSparseGather 4179 4180 2187 Lod 4181 - 4183: 7(f16vec4) CompositeExtract 4182 1 - Store 4148(texel) 4183 - 4184: 47(int) CompositeExtract 4182 0 - 4185: 299 Load 301(sCubeArray) - 4186: 249(fvec4) Load 251(c4) - 4187: 52(float) Load 565(lod) - 4188:3146(ResType) ImageSparseGather 4185 4186 2187 Lod 4187 - 4189: 7(f16vec4) CompositeExtract 4188 1 - Store 4148(texel) 4189 - 4190: 47(int) CompositeExtract 4188 0 - 4191: 299 Load 301(sCubeArray) - 4192: 7(f16vec4) Load 309(f16c4) - 4193:6(float16_t) Load 572(f16lod) - 4194:3146(ResType) ImageSparseGather 4191 4192 2187 Lod 4193 - 4195: 7(f16vec4) CompositeExtract 4194 1 - Store 4148(texel) 4195 - 4196: 47(int) CompositeExtract 4194 0 - 4197: 7(f16vec4) Load 4148(texel) - ReturnValue 4197 - FunctionEnd -93(testSparseTextureGatherLodOffset(): 7(f16vec4) Function None 8 - 94: Label - 4200(texel): 64(ptr) Variable Function - Store 4200(texel) 121 - 4201: 143 Load 145(s2D) - 4202: 53(fvec2) Load 148(c2) - 4203: 52(float) Load 565(lod) - 4204:3146(ResType) ImageSparseGather 4201 4202 2187 Lod ConstOffset 4203 722 - 4205: 7(f16vec4) CompositeExtract 4204 1 - Store 4200(texel) 4205 - 4206: 47(int) CompositeExtract 4204 0 - 4207: 143 Load 145(s2D) - 4208:154(f16vec2) Load 156(f16c2) - 4209:6(float16_t) Load 572(f16lod) - 4210:3146(ResType) ImageSparseGather 4207 4208 2187 Lod ConstOffset 4209 722 - 4211: 7(f16vec4) CompositeExtract 4210 1 - Store 4200(texel) 4211 - 4212: 47(int) CompositeExtract 4210 0 - 4213: 284 Load 286(s2DArray) - 4214: 167(fvec3) Load 169(c3) - 4215: 52(float) Load 565(lod) - 4216:3146(ResType) ImageSparseGather 4213 4214 2187 Lod ConstOffset 4215 722 - 4217: 7(f16vec4) CompositeExtract 4216 1 - Store 4200(texel) 4217 - 4218: 47(int) CompositeExtract 4216 0 - 4219: 284 Load 286(s2DArray) - 4220:175(f16vec3) Load 177(f16c3) - 4221:6(float16_t) Load 572(f16lod) - 4222:3146(ResType) ImageSparseGather 4219 4220 2187 Lod ConstOffset 4221 722 - 4223: 7(f16vec4) CompositeExtract 4222 1 - Store 4200(texel) 4223 - 4224: 47(int) CompositeExtract 4222 0 - 4225: 7(f16vec4) Load 4200(texel) - ReturnValue 4225 - FunctionEnd -95(testSparseTextureGatherLodOffsets(): 7(f16vec4) Function None 8 - 96: Label - 4228(texel): 64(ptr) Variable Function - Store 4228(texel) 121 - 4229: 143 Load 145(s2D) - 4230: 53(fvec2) Load 148(c2) - 4231: 52(float) Load 565(lod) - 4232:3146(ResType) ImageSparseGather 4229 4230 2187 Lod ConstOffsets 4231 2380 - 4233: 7(f16vec4) CompositeExtract 4232 1 - Store 4228(texel) 4233 - 4234: 47(int) CompositeExtract 4232 0 - 4235: 143 Load 145(s2D) - 4236:154(f16vec2) Load 156(f16c2) - 4237:6(float16_t) Load 572(f16lod) - 4238:3146(ResType) ImageSparseGather 4235 4236 2187 Lod ConstOffsets 4237 2380 - 4239: 7(f16vec4) CompositeExtract 4238 1 - Store 4228(texel) 4239 - 4240: 47(int) CompositeExtract 4238 0 - 4241: 284 Load 286(s2DArray) - 4242: 167(fvec3) Load 169(c3) - 4243: 52(float) Load 565(lod) - 4244:3146(ResType) ImageSparseGather 4241 4242 2187 Lod ConstOffsets 4243 2380 - 4245: 7(f16vec4) CompositeExtract 4244 1 - Store 4228(texel) 4245 - 4246: 47(int) CompositeExtract 4244 0 - 4247: 284 Load 286(s2DArray) - 4248:175(f16vec3) Load 177(f16c3) - 4249:6(float16_t) Load 572(f16lod) - 4250:3146(ResType) ImageSparseGather 4247 4248 2187 Lod ConstOffsets 4249 2380 - 4251: 7(f16vec4) CompositeExtract 4250 1 - Store 4228(texel) 4251 - 4252: 47(int) CompositeExtract 4250 0 - 4253: 7(f16vec4) Load 4228(texel) - ReturnValue 4253 - FunctionEnd -97(testSparseImageLoad(): 7(f16vec4) Function None 8 - 98: Label - 4256(texel): 64(ptr) Variable Function - Store 4256(texel) 121 - 4257: 3006 Load 3008(i2D) - 4258: 53(fvec2) Load 148(c2) - 4259: 721(ivec2) ConvertFToS 4258 - 4260:3146(ResType) ImageSparseRead 4257 4259 - 4261: 7(f16vec4) CompositeExtract 4260 1 - Store 4256(texel) 4261 - 4262: 47(int) CompositeExtract 4260 0 - 4263: 3015 Load 3017(i3D) - 4264: 167(fvec3) Load 169(c3) - 4265: 734(ivec3) ConvertFToS 4264 - 4266:3146(ResType) ImageSparseRead 4263 4265 - 4267: 7(f16vec4) CompositeExtract 4266 1 - Store 4256(texel) 4267 - 4268: 47(int) CompositeExtract 4266 0 - 4269: 3024 Load 3026(i2DRect) - 4270: 53(fvec2) Load 148(c2) - 4271: 721(ivec2) ConvertFToS 4270 - 4272:3146(ResType) ImageSparseRead 4269 4271 - 4273: 7(f16vec4) CompositeExtract 4272 1 - Store 4256(texel) 4273 - 4274: 47(int) CompositeExtract 4272 0 - 4275: 3033 Load 3035(iCube) - 4276: 167(fvec3) Load 169(c3) - 4277: 734(ivec3) ConvertFToS 4276 - 4278:3146(ResType) ImageSparseRead 4275 4277 - 4279: 7(f16vec4) CompositeExtract 4278 1 - Store 4256(texel) 4279 - 4280: 47(int) CompositeExtract 4278 0 - 4281: 3060 Load 3062(i2DArray) - 4282: 167(fvec3) Load 169(c3) - 4283: 734(ivec3) ConvertFToS 4282 - 4284:3146(ResType) ImageSparseRead 4281 4283 - 4285: 7(f16vec4) CompositeExtract 4284 1 - Store 4256(texel) 4285 - 4286: 47(int) CompositeExtract 4284 0 - 4287: 3069 Load 3071(iCubeArray) - 4288: 167(fvec3) Load 169(c3) - 4289: 734(ivec3) ConvertFToS 4288 - 4290:3146(ResType) ImageSparseRead 4287 4289 - 4291: 7(f16vec4) CompositeExtract 4290 1 - Store 4256(texel) 4291 - 4292: 47(int) CompositeExtract 4290 0 - 4293: 3078 Load 3080(i2DMS) - 4294: 53(fvec2) Load 148(c2) - 4295: 721(ivec2) ConvertFToS 4294 - 4296:3146(ResType) ImageSparseRead 4293 4295 Sample 709 - 4297: 7(f16vec4) CompositeExtract 4296 1 - Store 4256(texel) 4297 - 4298: 47(int) CompositeExtract 4296 0 - 4299: 3087 Load 3089(i2DMSArray) - 4300: 167(fvec3) Load 169(c3) - 4301: 734(ivec3) ConvertFToS 4300 - 4302:3146(ResType) ImageSparseRead 4299 4301 Sample 1326 - 4303: 7(f16vec4) CompositeExtract 4302 1 - Store 4256(texel) 4303 - 4304: 47(int) CompositeExtract 4302 0 - 4305: 7(f16vec4) Load 4256(texel) - ReturnValue 4305 - FunctionEnd -99(testSparseTextureClamp(): 7(f16vec4) Function None 8 - 100: Label - 4308(texel): 64(ptr) Variable Function - Store 4308(texel) 121 - 4309: 143 Load 145(s2D) - 4310: 53(fvec2) Load 148(c2) - 4312: 52(float) Load 4311(lodClamp) - 4313:3146(ResType) ImageSparseSampleImplicitLod 4309 4310 MinLod 4312 - 4314: 7(f16vec4) CompositeExtract 4313 1 - Store 4308(texel) 4314 - 4315: 47(int) CompositeExtract 4313 0 - 4316: 143 Load 145(s2D) - 4317:154(f16vec2) Load 156(f16c2) - 4319:6(float16_t) Load 4318(f16lodClamp) - 4320:6(float16_t) Load 137(f16bias) - 4321:3146(ResType) ImageSparseSampleImplicitLod 4316 4317 Bias MinLod 4320 4319 - 4322: 7(f16vec4) CompositeExtract 4321 1 - Store 4308(texel) 4322 - 4323: 47(int) CompositeExtract 4321 0 - 4324: 163 Load 165(s3D) - 4325: 167(fvec3) Load 169(c3) - 4326: 52(float) Load 4311(lodClamp) - 4327:3146(ResType) ImageSparseSampleImplicitLod 4324 4325 MinLod 4326 - 4328: 7(f16vec4) CompositeExtract 4327 1 - Store 4308(texel) 4328 - 4329: 47(int) CompositeExtract 4327 0 - 4330: 163 Load 165(s3D) - 4331:175(f16vec3) Load 177(f16c3) - 4332:6(float16_t) Load 4318(f16lodClamp) - 4333:6(float16_t) Load 137(f16bias) - 4334:3146(ResType) ImageSparseSampleImplicitLod 4330 4331 Bias MinLod 4333 4332 - 4335: 7(f16vec4) CompositeExtract 4334 1 - Store 4308(texel) 4335 - 4336: 47(int) CompositeExtract 4334 0 - 4337: 184 Load 186(sCube) - 4338: 167(fvec3) Load 169(c3) - 4339: 52(float) Load 4311(lodClamp) - 4340:3146(ResType) ImageSparseSampleImplicitLod 4337 4338 MinLod 4339 - 4341: 7(f16vec4) CompositeExtract 4340 1 - Store 4308(texel) 4341 - 4342: 47(int) CompositeExtract 4340 0 - 4343: 184 Load 186(sCube) - 4344:175(f16vec3) Load 177(f16c3) - 4345:6(float16_t) Load 4318(f16lodClamp) - 4346:6(float16_t) Load 137(f16bias) - 4347:3146(ResType) ImageSparseSampleImplicitLod 4343 4344 Bias MinLod 4346 4345 - 4348: 7(f16vec4) CompositeExtract 4347 1 - Store 4308(texel) 4348 - 4349: 47(int) CompositeExtract 4347 0 - 4350: 224 Load 226(s2DShadow) - 4351: 167(fvec3) Load 169(c3) - 4352: 52(float) Load 4311(lodClamp) - 4353: 208(ptr) AccessChain 4308(texel) 207 - 4354: 52(float) CompositeExtract 4351 2 - 4355:3182(ResType) ImageSparseSampleDrefImplicitLod 4350 4351 4354 MinLod 4352 - 4356:6(float16_t) CompositeExtract 4355 1 - Store 4353 4356 - 4357: 47(int) CompositeExtract 4355 0 - 4358: 224 Load 226(s2DShadow) - 4359:154(f16vec2) Load 156(f16c2) - 4360: 52(float) Load 215(compare) - 4361:6(float16_t) Load 4318(f16lodClamp) - 4362: 208(ptr) AccessChain 4308(texel) 207 - 4363:6(float16_t) Load 137(f16bias) - 4364:3182(ResType) ImageSparseSampleDrefImplicitLod 4358 4359 4360 Bias MinLod 4363 4361 - 4365:6(float16_t) CompositeExtract 4364 1 - Store 4362 4365 - 4366: 47(int) CompositeExtract 4364 0 - 4367: 245 Load 247(sCubeShadow) - 4368: 249(fvec4) Load 251(c4) - 4369: 52(float) Load 4311(lodClamp) - 4370: 208(ptr) AccessChain 4308(texel) 207 - 4371: 52(float) CompositeExtract 4368 3 - 4372:3182(ResType) ImageSparseSampleDrefImplicitLod 4367 4368 4371 MinLod 4369 - 4373:6(float16_t) CompositeExtract 4372 1 - Store 4370 4373 - 4374: 47(int) CompositeExtract 4372 0 - 4375: 245 Load 247(sCubeShadow) - 4376:175(f16vec3) Load 177(f16c3) - 4377: 52(float) Load 215(compare) - 4378:6(float16_t) Load 4318(f16lodClamp) - 4379: 208(ptr) AccessChain 4308(texel) 207 - 4380:6(float16_t) Load 137(f16bias) - 4381:3182(ResType) ImageSparseSampleDrefImplicitLod 4375 4376 4377 Bias MinLod 4380 4378 - 4382:6(float16_t) CompositeExtract 4381 1 - Store 4379 4382 - 4383: 47(int) CompositeExtract 4381 0 - 4384: 284 Load 286(s2DArray) - 4385: 167(fvec3) Load 169(c3) - 4386: 52(float) Load 4311(lodClamp) - 4387:3146(ResType) ImageSparseSampleImplicitLod 4384 4385 MinLod 4386 - 4388: 7(f16vec4) CompositeExtract 4387 1 - Store 4308(texel) 4388 - 4389: 47(int) CompositeExtract 4387 0 - 4390: 284 Load 286(s2DArray) - 4391:175(f16vec3) Load 177(f16c3) - 4392:6(float16_t) Load 4318(f16lodClamp) - 4393:6(float16_t) Load 137(f16bias) - 4394:3146(ResType) ImageSparseSampleImplicitLod 4390 4391 Bias MinLod 4393 4392 - 4395: 7(f16vec4) CompositeExtract 4394 1 - Store 4308(texel) 4395 - 4396: 47(int) CompositeExtract 4394 0 - 4397: 299 Load 301(sCubeArray) - 4398: 249(fvec4) Load 251(c4) - 4399: 52(float) Load 4311(lodClamp) - 4400:3146(ResType) ImageSparseSampleImplicitLod 4397 4398 MinLod 4399 - 4401: 7(f16vec4) CompositeExtract 4400 1 - Store 4308(texel) 4401 - 4402: 47(int) CompositeExtract 4400 0 - 4403: 299 Load 301(sCubeArray) - 4404: 7(f16vec4) Load 309(f16c4) - 4405:6(float16_t) Load 4318(f16lodClamp) - 4406:6(float16_t) Load 137(f16bias) - 4407:3146(ResType) ImageSparseSampleImplicitLod 4403 4404 Bias MinLod 4406 4405 - 4408: 7(f16vec4) CompositeExtract 4407 1 - Store 4308(texel) 4408 - 4409: 47(int) CompositeExtract 4407 0 - 4410: 337 Load 339(s2DArrayShadow) - 4411: 249(fvec4) Load 251(c4) - 4412: 52(float) Load 4311(lodClamp) - 4413: 208(ptr) AccessChain 4308(texel) 207 - 4414: 52(float) CompositeExtract 4411 3 - 4415:3182(ResType) ImageSparseSampleDrefImplicitLod 4410 4411 4414 MinLod 4412 - 4416:6(float16_t) CompositeExtract 4415 1 - Store 4413 4416 - 4417: 47(int) CompositeExtract 4415 0 - 4418: 337 Load 339(s2DArrayShadow) - 4419:175(f16vec3) Load 177(f16c3) - 4420: 52(float) Load 215(compare) - 4421:6(float16_t) Load 4318(f16lodClamp) - 4422: 208(ptr) AccessChain 4308(texel) 207 - 4423:3182(ResType) ImageSparseSampleDrefImplicitLod 4418 4419 4420 MinLod 4421 - 4424:6(float16_t) CompositeExtract 4423 1 - Store 4422 4424 - 4425: 47(int) CompositeExtract 4423 0 - 4426: 391 Load 393(sCubeArrayShadow) - 4427: 249(fvec4) Load 251(c4) - 4428: 52(float) Load 215(compare) - 4429: 52(float) Load 4311(lodClamp) - 4430: 208(ptr) AccessChain 4308(texel) 207 - 4431:3182(ResType) ImageSparseSampleDrefImplicitLod 4426 4427 4428 MinLod 4429 - 4432:6(float16_t) CompositeExtract 4431 1 - Store 4430 4432 - 4433: 47(int) CompositeExtract 4431 0 - 4434: 391 Load 393(sCubeArrayShadow) - 4435: 7(f16vec4) Load 309(f16c4) - 4436: 52(float) Load 215(compare) - 4437:6(float16_t) Load 4318(f16lodClamp) - 4438: 208(ptr) AccessChain 4308(texel) 207 - 4439:3182(ResType) ImageSparseSampleDrefImplicitLod 4434 4435 4436 MinLod 4437 - 4440:6(float16_t) CompositeExtract 4439 1 - Store 4438 4440 - 4441: 47(int) CompositeExtract 4439 0 - 4442: 7(f16vec4) Load 4308(texel) - ReturnValue 4442 - FunctionEnd -101(testTextureClamp(): 7(f16vec4) Function None 8 - 102: Label - 4445(texel): 64(ptr) Variable Function - Store 4445(texel) 121 - 4446: 123 Load 125(s1D) - 4447: 52(float) Load 128(c1) - 4448: 52(float) Load 4311(lodClamp) - 4449: 7(f16vec4) ImageSampleImplicitLod 4446 4447 MinLod 4448 - 4450: 7(f16vec4) Load 4445(texel) - 4451: 7(f16vec4) FAdd 4450 4449 - Store 4445(texel) 4451 - 4452: 123 Load 125(s1D) - 4453:6(float16_t) Load 135(f16c1) - 4454:6(float16_t) Load 4318(f16lodClamp) - 4455:6(float16_t) Load 137(f16bias) - 4456: 7(f16vec4) ImageSampleImplicitLod 4452 4453 Bias MinLod 4455 4454 - 4457: 7(f16vec4) Load 4445(texel) - 4458: 7(f16vec4) FAdd 4457 4456 - Store 4445(texel) 4458 - 4459: 143 Load 145(s2D) - 4460: 53(fvec2) Load 148(c2) - 4461: 52(float) Load 4311(lodClamp) - 4462: 7(f16vec4) ImageSampleImplicitLod 4459 4460 MinLod 4461 - 4463: 7(f16vec4) Load 4445(texel) - 4464: 7(f16vec4) FAdd 4463 4462 - Store 4445(texel) 4464 - 4465: 143 Load 145(s2D) - 4466:154(f16vec2) Load 156(f16c2) - 4467:6(float16_t) Load 4318(f16lodClamp) - 4468:6(float16_t) Load 137(f16bias) - 4469: 7(f16vec4) ImageSampleImplicitLod 4465 4466 Bias MinLod 4468 4467 - 4470: 7(f16vec4) Load 4445(texel) - 4471: 7(f16vec4) FAdd 4470 4469 - Store 4445(texel) 4471 - 4472: 163 Load 165(s3D) - 4473: 167(fvec3) Load 169(c3) - 4474: 52(float) Load 4311(lodClamp) - 4475: 7(f16vec4) ImageSampleImplicitLod 4472 4473 MinLod 4474 - 4476: 7(f16vec4) Load 4445(texel) - 4477: 7(f16vec4) FAdd 4476 4475 - Store 4445(texel) 4477 - 4478: 163 Load 165(s3D) - 4479:175(f16vec3) Load 177(f16c3) - 4480:6(float16_t) Load 4318(f16lodClamp) - 4481:6(float16_t) Load 137(f16bias) - 4482: 7(f16vec4) ImageSampleImplicitLod 4478 4479 Bias MinLod 4481 4480 - 4483: 7(f16vec4) Load 4445(texel) - 4484: 7(f16vec4) FAdd 4483 4482 - Store 4445(texel) 4484 - 4485: 184 Load 186(sCube) - 4486: 167(fvec3) Load 169(c3) - 4487: 52(float) Load 4311(lodClamp) - 4488: 7(f16vec4) ImageSampleImplicitLod 4485 4486 MinLod 4487 - 4489: 7(f16vec4) Load 4445(texel) - 4490: 7(f16vec4) FAdd 4489 4488 - Store 4445(texel) 4490 - 4491: 184 Load 186(sCube) - 4492:175(f16vec3) Load 177(f16c3) - 4493:6(float16_t) Load 4318(f16lodClamp) - 4494:6(float16_t) Load 137(f16bias) - 4495: 7(f16vec4) ImageSampleImplicitLod 4491 4492 Bias MinLod 4494 4493 - 4496: 7(f16vec4) Load 4445(texel) - 4497: 7(f16vec4) FAdd 4496 4495 - Store 4445(texel) 4497 - 4498: 199 Load 201(s1DShadow) - 4499: 167(fvec3) Load 169(c3) - 4500: 52(float) Load 4311(lodClamp) - 4501: 52(float) CompositeExtract 4499 2 - 4502:6(float16_t) ImageSampleDrefImplicitLod 4498 4499 4501 MinLod 4500 - 4503: 208(ptr) AccessChain 4445(texel) 207 - 4504:6(float16_t) Load 4503 - 4505:6(float16_t) FAdd 4504 4502 - 4506: 208(ptr) AccessChain 4445(texel) 207 - Store 4506 4505 - 4507: 199 Load 201(s1DShadow) - 4508:154(f16vec2) Load 156(f16c2) - 4509: 52(float) Load 215(compare) - 4510:6(float16_t) Load 4318(f16lodClamp) - 4511:6(float16_t) Load 137(f16bias) - 4512:6(float16_t) ImageSampleDrefImplicitLod 4507 4508 4509 Bias MinLod 4511 4510 - 4513: 208(ptr) AccessChain 4445(texel) 207 - 4514:6(float16_t) Load 4513 - 4515:6(float16_t) FAdd 4514 4512 - 4516: 208(ptr) AccessChain 4445(texel) 207 - Store 4516 4515 - 4517: 224 Load 226(s2DShadow) - 4518: 167(fvec3) Load 169(c3) - 4519: 52(float) Load 4311(lodClamp) - 4520: 52(float) CompositeExtract 4518 2 - 4521:6(float16_t) ImageSampleDrefImplicitLod 4517 4518 4520 MinLod 4519 - 4522: 208(ptr) AccessChain 4445(texel) 207 - 4523:6(float16_t) Load 4522 - 4524:6(float16_t) FAdd 4523 4521 - 4525: 208(ptr) AccessChain 4445(texel) 207 - Store 4525 4524 - 4526: 224 Load 226(s2DShadow) - 4527:154(f16vec2) Load 156(f16c2) - 4528: 52(float) Load 215(compare) - 4529:6(float16_t) Load 4318(f16lodClamp) - 4530:6(float16_t) Load 137(f16bias) - 4531:6(float16_t) ImageSampleDrefImplicitLod 4526 4527 4528 Bias MinLod 4530 4529 - 4532: 208(ptr) AccessChain 4445(texel) 207 - 4533:6(float16_t) Load 4532 - 4534:6(float16_t) FAdd 4533 4531 - 4535: 208(ptr) AccessChain 4445(texel) 207 - Store 4535 4534 - 4536: 245 Load 247(sCubeShadow) - 4537: 249(fvec4) Load 251(c4) - 4538: 52(float) Load 4311(lodClamp) - 4539: 52(float) CompositeExtract 4537 3 - 4540:6(float16_t) ImageSampleDrefImplicitLod 4536 4537 4539 MinLod 4538 - 4541: 208(ptr) AccessChain 4445(texel) 207 - 4542:6(float16_t) Load 4541 - 4543:6(float16_t) FAdd 4542 4540 - 4544: 208(ptr) AccessChain 4445(texel) 207 - Store 4544 4543 - 4545: 245 Load 247(sCubeShadow) - 4546:175(f16vec3) Load 177(f16c3) - 4547: 52(float) Load 215(compare) - 4548:6(float16_t) Load 4318(f16lodClamp) - 4549:6(float16_t) Load 137(f16bias) - 4550:6(float16_t) ImageSampleDrefImplicitLod 4545 4546 4547 Bias MinLod 4549 4548 - 4551: 208(ptr) AccessChain 4445(texel) 207 - 4552:6(float16_t) Load 4551 - 4553:6(float16_t) FAdd 4552 4550 - 4554: 208(ptr) AccessChain 4445(texel) 207 - Store 4554 4553 - 4555: 269 Load 271(s1DArray) - 4556: 53(fvec2) Load 148(c2) - 4557: 52(float) Load 4311(lodClamp) - 4558: 7(f16vec4) ImageSampleImplicitLod 4555 4556 MinLod 4557 - 4559: 7(f16vec4) Load 4445(texel) - 4560: 7(f16vec4) FAdd 4559 4558 - Store 4445(texel) 4560 - 4561: 269 Load 271(s1DArray) - 4562:154(f16vec2) Load 156(f16c2) - 4563:6(float16_t) Load 4318(f16lodClamp) - 4564:6(float16_t) Load 137(f16bias) - 4565: 7(f16vec4) ImageSampleImplicitLod 4561 4562 Bias MinLod 4564 4563 - 4566: 7(f16vec4) Load 4445(texel) - 4567: 7(f16vec4) FAdd 4566 4565 - Store 4445(texel) 4567 - 4568: 284 Load 286(s2DArray) - 4569: 167(fvec3) Load 169(c3) - 4570: 52(float) Load 4311(lodClamp) - 4571: 7(f16vec4) ImageSampleImplicitLod 4568 4569 MinLod 4570 - 4572: 7(f16vec4) Load 4445(texel) - 4573: 7(f16vec4) FAdd 4572 4571 - Store 4445(texel) 4573 - 4574: 284 Load 286(s2DArray) - 4575:175(f16vec3) Load 177(f16c3) - 4576:6(float16_t) Load 4318(f16lodClamp) - 4577:6(float16_t) Load 137(f16bias) - 4578: 7(f16vec4) ImageSampleImplicitLod 4574 4575 Bias MinLod 4577 4576 - 4579: 7(f16vec4) Load 4445(texel) - 4580: 7(f16vec4) FAdd 4579 4578 - Store 4445(texel) 4580 - 4581: 299 Load 301(sCubeArray) - 4582: 249(fvec4) Load 251(c4) - 4583: 52(float) Load 4311(lodClamp) - 4584: 7(f16vec4) ImageSampleImplicitLod 4581 4582 MinLod 4583 - 4585: 7(f16vec4) Load 4445(texel) - 4586: 7(f16vec4) FAdd 4585 4584 - Store 4445(texel) 4586 - 4587: 299 Load 301(sCubeArray) - 4588: 7(f16vec4) Load 309(f16c4) - 4589:6(float16_t) Load 4318(f16lodClamp) - 4590:6(float16_t) Load 137(f16bias) - 4591: 7(f16vec4) ImageSampleImplicitLod 4587 4588 Bias MinLod 4590 4589 - 4592: 7(f16vec4) Load 4445(texel) - 4593: 7(f16vec4) FAdd 4592 4591 - Store 4445(texel) 4593 - 4594: 316 Load 318(s1DArrayShadow) - 4595: 167(fvec3) Load 169(c3) - 4596: 52(float) Load 4311(lodClamp) - 4597: 52(float) CompositeExtract 4595 2 - 4598:6(float16_t) ImageSampleDrefImplicitLod 4594 4595 4597 MinLod 4596 - 4599: 208(ptr) AccessChain 4445(texel) 207 - 4600:6(float16_t) Load 4599 - 4601:6(float16_t) FAdd 4600 4598 - 4602: 208(ptr) AccessChain 4445(texel) 207 - Store 4602 4601 - 4603: 316 Load 318(s1DArrayShadow) - 4604:154(f16vec2) Load 156(f16c2) - 4605: 52(float) Load 215(compare) - 4606:6(float16_t) Load 4318(f16lodClamp) - 4607:6(float16_t) Load 137(f16bias) - 4608:6(float16_t) ImageSampleDrefImplicitLod 4603 4604 4605 Bias MinLod 4607 4606 - 4609: 208(ptr) AccessChain 4445(texel) 207 - 4610:6(float16_t) Load 4609 - 4611:6(float16_t) FAdd 4610 4608 - 4612: 208(ptr) AccessChain 4445(texel) 207 - Store 4612 4611 - 4613: 337 Load 339(s2DArrayShadow) - 4614: 249(fvec4) Load 251(c4) - 4615: 52(float) Load 4311(lodClamp) - 4616: 52(float) CompositeExtract 4614 3 - 4617:6(float16_t) ImageSampleDrefImplicitLod 4613 4614 4616 MinLod 4615 - 4618: 208(ptr) AccessChain 4445(texel) 207 - 4619:6(float16_t) Load 4618 - 4620:6(float16_t) FAdd 4619 4617 - 4621: 208(ptr) AccessChain 4445(texel) 207 - Store 4621 4620 - 4622: 337 Load 339(s2DArrayShadow) - 4623:175(f16vec3) Load 177(f16c3) - 4624: 52(float) Load 215(compare) - 4625:6(float16_t) Load 4318(f16lodClamp) - 4626:6(float16_t) ImageSampleDrefImplicitLod 4622 4623 4624 MinLod 4625 - 4627: 208(ptr) AccessChain 4445(texel) 207 - 4628:6(float16_t) Load 4627 - 4629:6(float16_t) FAdd 4628 4626 - 4630: 208(ptr) AccessChain 4445(texel) 207 - Store 4630 4629 - 4631: 391 Load 393(sCubeArrayShadow) - 4632: 249(fvec4) Load 251(c4) - 4633: 52(float) Load 215(compare) - 4634: 52(float) Load 4311(lodClamp) - 4635:6(float16_t) ImageSampleDrefImplicitLod 4631 4632 4633 MinLod 4634 - 4636: 208(ptr) AccessChain 4445(texel) 207 - 4637:6(float16_t) Load 4636 - 4638:6(float16_t) FAdd 4637 4635 - 4639: 208(ptr) AccessChain 4445(texel) 207 - Store 4639 4638 - 4640: 391 Load 393(sCubeArrayShadow) - 4641: 7(f16vec4) Load 309(f16c4) - 4642: 52(float) Load 215(compare) - 4643:6(float16_t) Load 4318(f16lodClamp) - 4644:6(float16_t) ImageSampleDrefImplicitLod 4640 4641 4642 MinLod 4643 - 4645: 208(ptr) AccessChain 4445(texel) 207 - 4646:6(float16_t) Load 4645 - 4647:6(float16_t) FAdd 4646 4644 - 4648: 208(ptr) AccessChain 4445(texel) 207 - Store 4648 4647 - 4649: 7(f16vec4) Load 4445(texel) - ReturnValue 4649 - FunctionEnd -103(testSparseTextureOffsetClamp(): 7(f16vec4) Function None 8 - 104: Label - 4652(texel): 64(ptr) Variable Function - Store 4652(texel) 121 - 4653: 143 Load 145(s2D) - 4654: 53(fvec2) Load 148(c2) - 4655: 52(float) Load 4311(lodClamp) - 4656:3146(ResType) ImageSparseSampleImplicitLod 4653 4654 ConstOffset MinLod 722 4655 - 4657: 7(f16vec4) CompositeExtract 4656 1 - Store 4652(texel) 4657 - 4658: 47(int) CompositeExtract 4656 0 - 4659: 143 Load 145(s2D) - 4660:154(f16vec2) Load 156(f16c2) - 4661:6(float16_t) Load 4318(f16lodClamp) - 4662:6(float16_t) Load 137(f16bias) - 4663:3146(ResType) ImageSparseSampleImplicitLod 4659 4660 Bias ConstOffset MinLod 4662 722 4661 - 4664: 7(f16vec4) CompositeExtract 4663 1 - Store 4652(texel) 4664 - 4665: 47(int) CompositeExtract 4663 0 - 4666: 163 Load 165(s3D) - 4667: 167(fvec3) Load 169(c3) - 4668: 52(float) Load 4311(lodClamp) - 4669:3146(ResType) ImageSparseSampleImplicitLod 4666 4667 ConstOffset MinLod 735 4668 - 4670: 7(f16vec4) CompositeExtract 4669 1 - Store 4652(texel) 4670 - 4671: 47(int) CompositeExtract 4669 0 - 4672: 163 Load 165(s3D) - 4673:175(f16vec3) Load 177(f16c3) - 4674:6(float16_t) Load 4318(f16lodClamp) - 4675:6(float16_t) Load 137(f16bias) - 4676:3146(ResType) ImageSparseSampleImplicitLod 4672 4673 Bias ConstOffset MinLod 4675 735 4674 - 4677: 7(f16vec4) CompositeExtract 4676 1 - Store 4652(texel) 4677 - 4678: 47(int) CompositeExtract 4676 0 - 4679: 224 Load 226(s2DShadow) - 4680: 167(fvec3) Load 169(c3) - 4681: 52(float) Load 4311(lodClamp) - 4682: 208(ptr) AccessChain 4652(texel) 207 - 4683: 52(float) CompositeExtract 4680 2 - 4684:3182(ResType) ImageSparseSampleDrefImplicitLod 4679 4680 4683 ConstOffset MinLod 722 4681 - 4685:6(float16_t) CompositeExtract 4684 1 - Store 4682 4685 - 4686: 47(int) CompositeExtract 4684 0 - 4687: 224 Load 226(s2DShadow) - 4688:154(f16vec2) Load 156(f16c2) - 4689: 52(float) Load 215(compare) - 4690:6(float16_t) Load 4318(f16lodClamp) - 4691: 208(ptr) AccessChain 4652(texel) 207 - 4692:6(float16_t) Load 137(f16bias) - 4693:3182(ResType) ImageSparseSampleDrefImplicitLod 4687 4688 4689 Bias ConstOffset MinLod 4692 722 4690 - 4694:6(float16_t) CompositeExtract 4693 1 - Store 4691 4694 - 4695: 47(int) CompositeExtract 4693 0 - 4696: 284 Load 286(s2DArray) - 4697: 167(fvec3) Load 169(c3) - 4698: 52(float) Load 4311(lodClamp) - 4699:3146(ResType) ImageSparseSampleImplicitLod 4696 4697 ConstOffset MinLod 722 4698 - 4700: 7(f16vec4) CompositeExtract 4699 1 - Store 4652(texel) 4700 - 4701: 47(int) CompositeExtract 4699 0 - 4702: 284 Load 286(s2DArray) - 4703:175(f16vec3) Load 177(f16c3) - 4704:6(float16_t) Load 4318(f16lodClamp) - 4705:6(float16_t) Load 137(f16bias) - 4706:3146(ResType) ImageSparseSampleImplicitLod 4702 4703 Bias ConstOffset MinLod 4705 722 4704 - 4707: 7(f16vec4) CompositeExtract 4706 1 - Store 4652(texel) 4707 - 4708: 47(int) CompositeExtract 4706 0 - 4709: 337 Load 339(s2DArrayShadow) - 4710: 249(fvec4) Load 251(c4) - 4711: 52(float) Load 4311(lodClamp) - 4712: 208(ptr) AccessChain 4652(texel) 207 - 4713: 52(float) CompositeExtract 4710 3 - 4714:3182(ResType) ImageSparseSampleDrefImplicitLod 4709 4710 4713 ConstOffset MinLod 722 4711 - 4715:6(float16_t) CompositeExtract 4714 1 - Store 4712 4715 - 4716: 47(int) CompositeExtract 4714 0 - 4717: 337 Load 339(s2DArrayShadow) - 4718:175(f16vec3) Load 177(f16c3) - 4719: 52(float) Load 215(compare) - 4720:6(float16_t) Load 4318(f16lodClamp) - 4721: 208(ptr) AccessChain 4652(texel) 207 - 4722:3182(ResType) ImageSparseSampleDrefImplicitLod 4717 4718 4719 ConstOffset MinLod 722 4720 - 4723:6(float16_t) CompositeExtract 4722 1 - Store 4721 4723 - 4724: 47(int) CompositeExtract 4722 0 - 4725: 7(f16vec4) Load 4652(texel) - ReturnValue 4725 - FunctionEnd -105(testTextureOffsetClamp(): 7(f16vec4) Function None 8 - 106: Label - 4728(texel): 64(ptr) Variable Function - Store 4728(texel) 121 - 4729: 123 Load 125(s1D) - 4730: 52(float) Load 128(c1) - 4731: 52(float) Load 4311(lodClamp) - 4732: 7(f16vec4) ImageSampleImplicitLod 4729 4730 ConstOffset MinLod 709 4731 - 4733: 7(f16vec4) Load 4728(texel) - 4734: 7(f16vec4) FAdd 4733 4732 - Store 4728(texel) 4734 - 4735: 123 Load 125(s1D) - 4736:6(float16_t) Load 135(f16c1) - 4737:6(float16_t) Load 4318(f16lodClamp) - 4738:6(float16_t) Load 137(f16bias) - 4739: 7(f16vec4) ImageSampleImplicitLod 4735 4736 Bias ConstOffset MinLod 4738 709 4737 - 4740: 7(f16vec4) Load 4728(texel) - 4741: 7(f16vec4) FAdd 4740 4739 - Store 4728(texel) 4741 - 4742: 143 Load 145(s2D) - 4743: 53(fvec2) Load 148(c2) - 4744: 52(float) Load 4311(lodClamp) - 4745: 7(f16vec4) ImageSampleImplicitLod 4742 4743 ConstOffset MinLod 722 4744 - 4746: 7(f16vec4) Load 4728(texel) - 4747: 7(f16vec4) FAdd 4746 4745 - Store 4728(texel) 4747 - 4748: 143 Load 145(s2D) - 4749:154(f16vec2) Load 156(f16c2) - 4750:6(float16_t) Load 4318(f16lodClamp) - 4751:6(float16_t) Load 137(f16bias) - 4752: 7(f16vec4) ImageSampleImplicitLod 4748 4749 Bias ConstOffset MinLod 4751 722 4750 - 4753: 7(f16vec4) Load 4728(texel) - 4754: 7(f16vec4) FAdd 4753 4752 - Store 4728(texel) 4754 - 4755: 163 Load 165(s3D) - 4756: 167(fvec3) Load 169(c3) - 4757: 52(float) Load 4311(lodClamp) - 4758: 7(f16vec4) ImageSampleImplicitLod 4755 4756 ConstOffset MinLod 735 4757 - 4759: 7(f16vec4) Load 4728(texel) - 4760: 7(f16vec4) FAdd 4759 4758 - Store 4728(texel) 4760 - 4761: 163 Load 165(s3D) - 4762:175(f16vec3) Load 177(f16c3) - 4763:6(float16_t) Load 4318(f16lodClamp) - 4764:6(float16_t) Load 137(f16bias) - 4765: 7(f16vec4) ImageSampleImplicitLod 4761 4762 Bias ConstOffset MinLod 4764 735 4763 - 4766: 7(f16vec4) Load 4728(texel) - 4767: 7(f16vec4) FAdd 4766 4765 - Store 4728(texel) 4767 - 4768: 199 Load 201(s1DShadow) - 4769: 167(fvec3) Load 169(c3) - 4770: 52(float) Load 4311(lodClamp) - 4771: 52(float) CompositeExtract 4769 2 - 4772:6(float16_t) ImageSampleDrefImplicitLod 4768 4769 4771 ConstOffset MinLod 709 4770 - 4773: 208(ptr) AccessChain 4728(texel) 207 - 4774:6(float16_t) Load 4773 - 4775:6(float16_t) FAdd 4774 4772 - 4776: 208(ptr) AccessChain 4728(texel) 207 - Store 4776 4775 - 4777: 199 Load 201(s1DShadow) - 4778:154(f16vec2) Load 156(f16c2) - 4779: 52(float) Load 215(compare) - 4780:6(float16_t) Load 4318(f16lodClamp) - 4781:6(float16_t) Load 137(f16bias) - 4782:6(float16_t) ImageSampleDrefImplicitLod 4777 4778 4779 Bias ConstOffset MinLod 4781 709 4780 - 4783: 208(ptr) AccessChain 4728(texel) 207 - 4784:6(float16_t) Load 4783 - 4785:6(float16_t) FAdd 4784 4782 - 4786: 208(ptr) AccessChain 4728(texel) 207 - Store 4786 4785 - 4787: 224 Load 226(s2DShadow) - 4788: 167(fvec3) Load 169(c3) - 4789: 52(float) Load 4311(lodClamp) - 4790: 52(float) CompositeExtract 4788 2 - 4791:6(float16_t) ImageSampleDrefImplicitLod 4787 4788 4790 ConstOffset MinLod 722 4789 - 4792: 208(ptr) AccessChain 4728(texel) 207 - 4793:6(float16_t) Load 4792 - 4794:6(float16_t) FAdd 4793 4791 - 4795: 208(ptr) AccessChain 4728(texel) 207 - Store 4795 4794 - 4796: 224 Load 226(s2DShadow) - 4797:154(f16vec2) Load 156(f16c2) - 4798: 52(float) Load 215(compare) - 4799:6(float16_t) Load 4318(f16lodClamp) - 4800:6(float16_t) Load 137(f16bias) - 4801:6(float16_t) ImageSampleDrefImplicitLod 4796 4797 4798 Bias ConstOffset MinLod 4800 722 4799 - 4802: 208(ptr) AccessChain 4728(texel) 207 - 4803:6(float16_t) Load 4802 - 4804:6(float16_t) FAdd 4803 4801 - 4805: 208(ptr) AccessChain 4728(texel) 207 - Store 4805 4804 - 4806: 269 Load 271(s1DArray) - 4807: 53(fvec2) Load 148(c2) - 4808: 52(float) Load 4311(lodClamp) - 4809: 7(f16vec4) ImageSampleImplicitLod 4806 4807 ConstOffset MinLod 709 4808 - 4810: 7(f16vec4) Load 4728(texel) - 4811: 7(f16vec4) FAdd 4810 4809 - Store 4728(texel) 4811 - 4812: 269 Load 271(s1DArray) - 4813:154(f16vec2) Load 156(f16c2) - 4814:6(float16_t) Load 4318(f16lodClamp) - 4815:6(float16_t) Load 137(f16bias) - 4816: 7(f16vec4) ImageSampleImplicitLod 4812 4813 Bias ConstOffset MinLod 4815 709 4814 - 4817: 7(f16vec4) Load 4728(texel) - 4818: 7(f16vec4) FAdd 4817 4816 - Store 4728(texel) 4818 - 4819: 284 Load 286(s2DArray) - 4820: 167(fvec3) Load 169(c3) - 4821: 52(float) Load 4311(lodClamp) - 4822: 7(f16vec4) ImageSampleImplicitLod 4819 4820 ConstOffset MinLod 722 4821 - 4823: 7(f16vec4) Load 4728(texel) - 4824: 7(f16vec4) FAdd 4823 4822 - Store 4728(texel) 4824 - 4825: 284 Load 286(s2DArray) - 4826:175(f16vec3) Load 177(f16c3) - 4827:6(float16_t) Load 4318(f16lodClamp) - 4828:6(float16_t) Load 137(f16bias) - 4829: 7(f16vec4) ImageSampleImplicitLod 4825 4826 Bias ConstOffset MinLod 4828 722 4827 - 4830: 7(f16vec4) Load 4728(texel) - 4831: 7(f16vec4) FAdd 4830 4829 - Store 4728(texel) 4831 - 4832: 316 Load 318(s1DArrayShadow) - 4833: 167(fvec3) Load 169(c3) - 4834: 52(float) Load 4311(lodClamp) - 4835: 52(float) CompositeExtract 4833 2 - 4836:6(float16_t) ImageSampleDrefImplicitLod 4832 4833 4835 ConstOffset MinLod 709 4834 - 4837: 208(ptr) AccessChain 4728(texel) 207 - 4838:6(float16_t) Load 4837 - 4839:6(float16_t) FAdd 4838 4836 - 4840: 208(ptr) AccessChain 4728(texel) 207 - Store 4840 4839 - 4841: 316 Load 318(s1DArrayShadow) - 4842:154(f16vec2) Load 156(f16c2) - 4843: 52(float) Load 215(compare) - 4844:6(float16_t) Load 4318(f16lodClamp) - 4845:6(float16_t) Load 137(f16bias) - 4846:6(float16_t) ImageSampleDrefImplicitLod 4841 4842 4843 Bias ConstOffset MinLod 4845 709 4844 - 4847: 208(ptr) AccessChain 4728(texel) 207 - 4848:6(float16_t) Load 4847 - 4849:6(float16_t) FAdd 4848 4846 - 4850: 208(ptr) AccessChain 4728(texel) 207 - Store 4850 4849 - 4851: 337 Load 339(s2DArrayShadow) - 4852: 249(fvec4) Load 251(c4) - 4853: 52(float) Load 4311(lodClamp) - 4854: 52(float) CompositeExtract 4852 3 - 4855:6(float16_t) ImageSampleDrefImplicitLod 4851 4852 4854 ConstOffset MinLod 722 4853 - 4856: 208(ptr) AccessChain 4728(texel) 207 - 4857:6(float16_t) Load 4856 - 4858:6(float16_t) FAdd 4857 4855 - 4859: 208(ptr) AccessChain 4728(texel) 207 - Store 4859 4858 - 4860: 337 Load 339(s2DArrayShadow) - 4861:175(f16vec3) Load 177(f16c3) - 4862: 52(float) Load 215(compare) - 4863:6(float16_t) Load 4318(f16lodClamp) - 4864:6(float16_t) ImageSampleDrefImplicitLod 4860 4861 4862 ConstOffset MinLod 722 4863 - 4865: 208(ptr) AccessChain 4728(texel) 207 - 4866:6(float16_t) Load 4865 - 4867:6(float16_t) FAdd 4866 4864 - 4868: 208(ptr) AccessChain 4728(texel) 207 - Store 4868 4867 - 4869: 7(f16vec4) Load 4728(texel) - ReturnValue 4869 - FunctionEnd -107(testSparseTextureGradClamp(): 7(f16vec4) Function None 8 - 108: Label - 4872(texel): 64(ptr) Variable Function - Store 4872(texel) 121 - 4873: 143 Load 145(s2D) - 4874: 53(fvec2) Load 148(c2) - 4875: 53(fvec2) Load 1409(dPdxy2) - 4876: 53(fvec2) Load 1409(dPdxy2) - 4877: 52(float) Load 4311(lodClamp) - 4878:3146(ResType) ImageSparseSampleExplicitLod 4873 4874 Grad MinLod 4875 4876 4877 - 4879: 7(f16vec4) CompositeExtract 4878 1 - Store 4872(texel) 4879 - 4880: 47(int) CompositeExtract 4878 0 - 4881: 143 Load 145(s2D) - 4882:154(f16vec2) Load 156(f16c2) - 4883:154(f16vec2) Load 1417(f16dPdxy2) - 4884:154(f16vec2) Load 1417(f16dPdxy2) - 4885:6(float16_t) Load 4318(f16lodClamp) - 4886:3146(ResType) ImageSparseSampleExplicitLod 4881 4882 Grad MinLod 4883 4884 4885 - 4887: 7(f16vec4) CompositeExtract 4886 1 - Store 4872(texel) 4887 - 4888: 47(int) CompositeExtract 4886 0 - 4889: 163 Load 165(s3D) - 4890: 167(fvec3) Load 169(c3) - 4891: 167(fvec3) Load 1425(dPdxy3) - 4892: 167(fvec3) Load 1425(dPdxy3) - 4893: 52(float) Load 4311(lodClamp) - 4894:3146(ResType) ImageSparseSampleExplicitLod 4889 4890 Grad MinLod 4891 4892 4893 - 4895: 7(f16vec4) CompositeExtract 4894 1 - Store 4872(texel) 4895 - 4896: 47(int) CompositeExtract 4894 0 - 4897: 163 Load 165(s3D) - 4898:175(f16vec3) Load 177(f16c3) - 4899:175(f16vec3) Load 1433(f16dPdxy3) - 4900:175(f16vec3) Load 1433(f16dPdxy3) - 4901:6(float16_t) Load 4318(f16lodClamp) - 4902:3146(ResType) ImageSparseSampleExplicitLod 4897 4898 Grad MinLod 4899 4900 4901 - 4903: 7(f16vec4) CompositeExtract 4902 1 - Store 4872(texel) 4903 - 4904: 47(int) CompositeExtract 4902 0 - 4905: 184 Load 186(sCube) - 4906: 167(fvec3) Load 169(c3) - 4907: 167(fvec3) Load 1425(dPdxy3) - 4908: 167(fvec3) Load 1425(dPdxy3) - 4909: 52(float) Load 4311(lodClamp) - 4910:3146(ResType) ImageSparseSampleExplicitLod 4905 4906 Grad MinLod 4907 4908 4909 - 4911: 7(f16vec4) CompositeExtract 4910 1 - Store 4872(texel) 4911 - 4912: 47(int) CompositeExtract 4910 0 - 4913: 184 Load 186(sCube) - 4914:175(f16vec3) Load 177(f16c3) - 4915:175(f16vec3) Load 1433(f16dPdxy3) - 4916:175(f16vec3) Load 1433(f16dPdxy3) - 4917:6(float16_t) Load 4318(f16lodClamp) - 4918:3146(ResType) ImageSparseSampleExplicitLod 4913 4914 Grad MinLod 4915 4916 4917 - 4919: 7(f16vec4) CompositeExtract 4918 1 - Store 4872(texel) 4919 - 4920: 47(int) CompositeExtract 4918 0 - 4921: 224 Load 226(s2DShadow) - 4922: 167(fvec3) Load 169(c3) - 4923: 53(fvec2) Load 1409(dPdxy2) - 4924: 53(fvec2) Load 1409(dPdxy2) - 4925: 52(float) Load 4311(lodClamp) - 4926: 208(ptr) AccessChain 4872(texel) 207 - 4927: 52(float) CompositeExtract 4922 2 - 4928:3182(ResType) ImageSparseSampleDrefExplicitLod 4921 4922 4927 Grad MinLod 4923 4924 4925 - 4929:6(float16_t) CompositeExtract 4928 1 - Store 4926 4929 - 4930: 47(int) CompositeExtract 4928 0 - 4931: 224 Load 226(s2DShadow) - 4932:154(f16vec2) Load 156(f16c2) - 4933: 52(float) Load 215(compare) - 4934:154(f16vec2) Load 1417(f16dPdxy2) - 4935:154(f16vec2) Load 1417(f16dPdxy2) - 4936:6(float16_t) Load 4318(f16lodClamp) - 4937: 208(ptr) AccessChain 4872(texel) 207 - 4938:3182(ResType) ImageSparseSampleDrefExplicitLod 4931 4932 4933 Grad MinLod 4934 4935 4936 - 4939:6(float16_t) CompositeExtract 4938 1 - Store 4937 4939 - 4940: 47(int) CompositeExtract 4938 0 - 4941: 245 Load 247(sCubeShadow) - 4942: 249(fvec4) Load 251(c4) - 4943: 167(fvec3) Load 1425(dPdxy3) - 4944: 167(fvec3) Load 1425(dPdxy3) - 4945: 52(float) Load 4311(lodClamp) - 4946: 208(ptr) AccessChain 4872(texel) 207 - 4947: 52(float) CompositeExtract 4942 3 - 4948:3182(ResType) ImageSparseSampleDrefExplicitLod 4941 4942 4947 Grad MinLod 4943 4944 4945 - 4949:6(float16_t) CompositeExtract 4948 1 - Store 4946 4949 - 4950: 47(int) CompositeExtract 4948 0 - 4951: 245 Load 247(sCubeShadow) - 4952:175(f16vec3) Load 177(f16c3) - 4953: 52(float) Load 215(compare) - 4954:175(f16vec3) Load 1433(f16dPdxy3) - 4955:175(f16vec3) Load 1433(f16dPdxy3) - 4956:6(float16_t) Load 4318(f16lodClamp) - 4957: 208(ptr) AccessChain 4872(texel) 207 - 4958:3182(ResType) ImageSparseSampleDrefExplicitLod 4951 4952 4953 Grad MinLod 4954 4955 4956 - 4959:6(float16_t) CompositeExtract 4958 1 - Store 4957 4959 - 4960: 47(int) CompositeExtract 4958 0 - 4961: 284 Load 286(s2DArray) - 4962: 167(fvec3) Load 169(c3) - 4963: 53(fvec2) Load 1409(dPdxy2) - 4964: 53(fvec2) Load 1409(dPdxy2) - 4965: 52(float) Load 4311(lodClamp) - 4966:3146(ResType) ImageSparseSampleExplicitLod 4961 4962 Grad MinLod 4963 4964 4965 - 4967: 7(f16vec4) CompositeExtract 4966 1 - Store 4872(texel) 4967 - 4968: 47(int) CompositeExtract 4966 0 - 4969: 284 Load 286(s2DArray) - 4970:175(f16vec3) Load 177(f16c3) - 4971:154(f16vec2) Load 1417(f16dPdxy2) - 4972:154(f16vec2) Load 1417(f16dPdxy2) - 4973:6(float16_t) Load 4318(f16lodClamp) - 4974:3146(ResType) ImageSparseSampleExplicitLod 4969 4970 Grad MinLod 4971 4972 4973 - 4975: 7(f16vec4) CompositeExtract 4974 1 - Store 4872(texel) 4975 - 4976: 47(int) CompositeExtract 4974 0 - 4977: 337 Load 339(s2DArrayShadow) - 4978: 249(fvec4) Load 251(c4) - 4979: 53(fvec2) Load 1409(dPdxy2) - 4980: 53(fvec2) Load 1409(dPdxy2) - 4981: 52(float) Load 4311(lodClamp) - 4982: 208(ptr) AccessChain 4872(texel) 207 - 4983: 52(float) CompositeExtract 4978 3 - 4984:3182(ResType) ImageSparseSampleDrefExplicitLod 4977 4978 4983 Grad MinLod 4979 4980 4981 - 4985:6(float16_t) CompositeExtract 4984 1 - Store 4982 4985 - 4986: 47(int) CompositeExtract 4984 0 - 4987: 337 Load 339(s2DArrayShadow) - 4988:175(f16vec3) Load 177(f16c3) - 4989: 52(float) Load 215(compare) - 4990:154(f16vec2) Load 1417(f16dPdxy2) - 4991:154(f16vec2) Load 1417(f16dPdxy2) - 4992:6(float16_t) Load 4318(f16lodClamp) - 4993: 208(ptr) AccessChain 4872(texel) 207 - 4994:3182(ResType) ImageSparseSampleDrefExplicitLod 4987 4988 4989 Grad MinLod 4990 4991 4992 - 4995:6(float16_t) CompositeExtract 4994 1 - Store 4993 4995 - 4996: 47(int) CompositeExtract 4994 0 - 4997: 299 Load 301(sCubeArray) - 4998: 249(fvec4) Load 251(c4) - 4999: 167(fvec3) Load 1425(dPdxy3) - 5000: 167(fvec3) Load 1425(dPdxy3) - 5001: 52(float) Load 4311(lodClamp) - 5002:3146(ResType) ImageSparseSampleExplicitLod 4997 4998 Grad MinLod 4999 5000 5001 - 5003: 7(f16vec4) CompositeExtract 5002 1 - Store 4872(texel) 5003 - 5004: 47(int) CompositeExtract 5002 0 - 5005: 299 Load 301(sCubeArray) - 5006: 7(f16vec4) Load 309(f16c4) - 5007:175(f16vec3) Load 1433(f16dPdxy3) - 5008:175(f16vec3) Load 1433(f16dPdxy3) - 5009:6(float16_t) Load 4318(f16lodClamp) - 5010:3146(ResType) ImageSparseSampleExplicitLod 5005 5006 Grad MinLod 5007 5008 5009 - 5011: 7(f16vec4) CompositeExtract 5010 1 - Store 4872(texel) 5011 - 5012: 47(int) CompositeExtract 5010 0 - 5013: 7(f16vec4) Load 4872(texel) - ReturnValue 5013 - FunctionEnd -109(testTextureGradClamp(): 7(f16vec4) Function None 8 - 110: Label - 5016(texel): 64(ptr) Variable Function - Store 5016(texel) 121 - 5017: 123 Load 125(s1D) - 5018: 52(float) Load 128(c1) - 5019: 52(float) Load 1393(dPdxy1) - 5020: 52(float) Load 1393(dPdxy1) - 5021: 52(float) Load 4311(lodClamp) - 5022: 7(f16vec4) ImageSampleExplicitLod 5017 5018 Grad MinLod 5019 5020 5021 - 5023: 7(f16vec4) Load 5016(texel) - 5024: 7(f16vec4) FAdd 5023 5022 - Store 5016(texel) 5024 - 5025: 123 Load 125(s1D) - 5026:6(float16_t) Load 135(f16c1) - 5027:6(float16_t) Load 1401(f16dPdxy1) - 5028:6(float16_t) Load 1401(f16dPdxy1) - 5029:6(float16_t) Load 4318(f16lodClamp) - 5030: 7(f16vec4) ImageSampleExplicitLod 5025 5026 Grad MinLod 5027 5028 5029 - 5031: 7(f16vec4) Load 5016(texel) - 5032: 7(f16vec4) FAdd 5031 5030 - Store 5016(texel) 5032 - 5033: 143 Load 145(s2D) - 5034: 53(fvec2) Load 148(c2) - 5035: 53(fvec2) Load 1409(dPdxy2) - 5036: 53(fvec2) Load 1409(dPdxy2) - 5037: 52(float) Load 4311(lodClamp) - 5038: 7(f16vec4) ImageSampleExplicitLod 5033 5034 Grad MinLod 5035 5036 5037 - 5039: 7(f16vec4) Load 5016(texel) - 5040: 7(f16vec4) FAdd 5039 5038 - Store 5016(texel) 5040 - 5041: 143 Load 145(s2D) - 5042:154(f16vec2) Load 156(f16c2) - 5043:154(f16vec2) Load 1417(f16dPdxy2) - 5044:154(f16vec2) Load 1417(f16dPdxy2) - 5045:6(float16_t) Load 4318(f16lodClamp) - 5046: 7(f16vec4) ImageSampleExplicitLod 5041 5042 Grad MinLod 5043 5044 5045 - 5047: 7(f16vec4) Load 5016(texel) - 5048: 7(f16vec4) FAdd 5047 5046 - Store 5016(texel) 5048 - 5049: 163 Load 165(s3D) - 5050: 167(fvec3) Load 169(c3) - 5051: 167(fvec3) Load 1425(dPdxy3) - 5052: 167(fvec3) Load 1425(dPdxy3) - 5053: 52(float) Load 4311(lodClamp) - 5054: 7(f16vec4) ImageSampleExplicitLod 5049 5050 Grad MinLod 5051 5052 5053 - 5055: 7(f16vec4) Load 5016(texel) - 5056: 7(f16vec4) FAdd 5055 5054 - Store 5016(texel) 5056 - 5057: 163 Load 165(s3D) - 5058:175(f16vec3) Load 177(f16c3) - 5059:175(f16vec3) Load 1433(f16dPdxy3) - 5060:175(f16vec3) Load 1433(f16dPdxy3) - 5061:6(float16_t) Load 4318(f16lodClamp) - 5062: 7(f16vec4) ImageSampleExplicitLod 5057 5058 Grad MinLod 5059 5060 5061 - 5063: 7(f16vec4) Load 5016(texel) - 5064: 7(f16vec4) FAdd 5063 5062 - Store 5016(texel) 5064 - 5065: 184 Load 186(sCube) - 5066: 167(fvec3) Load 169(c3) - 5067: 167(fvec3) Load 1425(dPdxy3) - 5068: 167(fvec3) Load 1425(dPdxy3) - 5069: 52(float) Load 4311(lodClamp) - 5070: 7(f16vec4) ImageSampleExplicitLod 5065 5066 Grad MinLod 5067 5068 5069 - 5071: 7(f16vec4) Load 5016(texel) - 5072: 7(f16vec4) FAdd 5071 5070 - Store 5016(texel) 5072 - 5073: 184 Load 186(sCube) - 5074:175(f16vec3) Load 177(f16c3) - 5075:175(f16vec3) Load 1433(f16dPdxy3) - 5076:175(f16vec3) Load 1433(f16dPdxy3) - 5077:6(float16_t) Load 4318(f16lodClamp) - 5078: 7(f16vec4) ImageSampleExplicitLod 5073 5074 Grad MinLod 5075 5076 5077 - 5079: 7(f16vec4) Load 5016(texel) - 5080: 7(f16vec4) FAdd 5079 5078 - Store 5016(texel) 5080 - 5081: 199 Load 201(s1DShadow) - 5082: 167(fvec3) Load 169(c3) - 5083: 52(float) Load 1393(dPdxy1) - 5084: 52(float) Load 1393(dPdxy1) - 5085: 52(float) Load 4311(lodClamp) - 5086: 52(float) CompositeExtract 5082 2 - 5087:6(float16_t) ImageSampleDrefExplicitLod 5081 5082 5086 Grad MinLod 5083 5084 5085 - 5088: 208(ptr) AccessChain 5016(texel) 207 - 5089:6(float16_t) Load 5088 - 5090:6(float16_t) FAdd 5089 5087 - 5091: 208(ptr) AccessChain 5016(texel) 207 - Store 5091 5090 - 5092: 199 Load 201(s1DShadow) - 5093:154(f16vec2) Load 156(f16c2) - 5094: 52(float) Load 215(compare) - 5095:6(float16_t) Load 1401(f16dPdxy1) - 5096:6(float16_t) Load 1401(f16dPdxy1) - 5097:6(float16_t) Load 4318(f16lodClamp) - 5098:6(float16_t) ImageSampleDrefExplicitLod 5092 5093 5094 Grad MinLod 5095 5096 5097 - 5099: 208(ptr) AccessChain 5016(texel) 207 - 5100:6(float16_t) Load 5099 - 5101:6(float16_t) FAdd 5100 5098 - 5102: 208(ptr) AccessChain 5016(texel) 207 - Store 5102 5101 - 5103: 224 Load 226(s2DShadow) - 5104: 167(fvec3) Load 169(c3) - 5105: 53(fvec2) Load 1409(dPdxy2) - 5106: 53(fvec2) Load 1409(dPdxy2) - 5107: 52(float) Load 4311(lodClamp) - 5108: 52(float) CompositeExtract 5104 2 - 5109:6(float16_t) ImageSampleDrefExplicitLod 5103 5104 5108 Grad MinLod 5105 5106 5107 - 5110: 208(ptr) AccessChain 5016(texel) 207 - 5111:6(float16_t) Load 5110 - 5112:6(float16_t) FAdd 5111 5109 - 5113: 208(ptr) AccessChain 5016(texel) 207 - Store 5113 5112 - 5114: 224 Load 226(s2DShadow) - 5115:154(f16vec2) Load 156(f16c2) - 5116: 52(float) Load 215(compare) - 5117:154(f16vec2) Load 1417(f16dPdxy2) - 5118:154(f16vec2) Load 1417(f16dPdxy2) - 5119:6(float16_t) Load 4318(f16lodClamp) - 5120:6(float16_t) ImageSampleDrefExplicitLod 5114 5115 5116 Grad MinLod 5117 5118 5119 - 5121: 208(ptr) AccessChain 5016(texel) 207 - 5122:6(float16_t) Load 5121 - 5123:6(float16_t) FAdd 5122 5120 - 5124: 208(ptr) AccessChain 5016(texel) 207 - Store 5124 5123 - 5125: 245 Load 247(sCubeShadow) - 5126: 249(fvec4) Load 251(c4) - 5127: 167(fvec3) Load 1425(dPdxy3) - 5128: 167(fvec3) Load 1425(dPdxy3) - 5129: 52(float) Load 4311(lodClamp) - 5130: 52(float) CompositeExtract 5126 3 - 5131:6(float16_t) ImageSampleDrefExplicitLod 5125 5126 5130 Grad MinLod 5127 5128 5129 - 5132: 208(ptr) AccessChain 5016(texel) 207 - 5133:6(float16_t) Load 5132 - 5134:6(float16_t) FAdd 5133 5131 - 5135: 208(ptr) AccessChain 5016(texel) 207 - Store 5135 5134 - 5136: 245 Load 247(sCubeShadow) - 5137:175(f16vec3) Load 177(f16c3) - 5138: 52(float) Load 215(compare) - 5139:175(f16vec3) Load 1433(f16dPdxy3) - 5140:175(f16vec3) Load 1433(f16dPdxy3) - 5141:6(float16_t) Load 4318(f16lodClamp) - 5142:6(float16_t) ImageSampleDrefExplicitLod 5136 5137 5138 Grad MinLod 5139 5140 5141 - 5143: 208(ptr) AccessChain 5016(texel) 207 - 5144:6(float16_t) Load 5143 - 5145:6(float16_t) FAdd 5144 5142 - 5146: 208(ptr) AccessChain 5016(texel) 207 - Store 5146 5145 - 5147: 269 Load 271(s1DArray) - 5148: 53(fvec2) Load 148(c2) - 5149: 52(float) Load 1393(dPdxy1) - 5150: 52(float) Load 1393(dPdxy1) - 5151: 52(float) Load 4311(lodClamp) - 5152: 7(f16vec4) ImageSampleExplicitLod 5147 5148 Grad MinLod 5149 5150 5151 - 5153: 7(f16vec4) Load 5016(texel) - 5154: 7(f16vec4) FAdd 5153 5152 - Store 5016(texel) 5154 - 5155: 269 Load 271(s1DArray) - 5156:154(f16vec2) Load 156(f16c2) - 5157:6(float16_t) Load 1401(f16dPdxy1) - 5158:6(float16_t) Load 1401(f16dPdxy1) - 5159:6(float16_t) Load 4318(f16lodClamp) - 5160: 7(f16vec4) ImageSampleExplicitLod 5155 5156 Grad MinLod 5157 5158 5159 - 5161: 7(f16vec4) Load 5016(texel) - 5162: 7(f16vec4) FAdd 5161 5160 - Store 5016(texel) 5162 - 5163: 284 Load 286(s2DArray) - 5164: 167(fvec3) Load 169(c3) - 5165: 53(fvec2) Load 1409(dPdxy2) - 5166: 53(fvec2) Load 1409(dPdxy2) - 5167: 52(float) Load 4311(lodClamp) - 5168: 7(f16vec4) ImageSampleExplicitLod 5163 5164 Grad MinLod 5165 5166 5167 - 5169: 7(f16vec4) Load 5016(texel) - 5170: 7(f16vec4) FAdd 5169 5168 - Store 5016(texel) 5170 - 5171: 284 Load 286(s2DArray) - 5172:175(f16vec3) Load 177(f16c3) - 5173:154(f16vec2) Load 1417(f16dPdxy2) - 5174:154(f16vec2) Load 1417(f16dPdxy2) - 5175:6(float16_t) Load 4318(f16lodClamp) - 5176: 7(f16vec4) ImageSampleExplicitLod 5171 5172 Grad MinLod 5173 5174 5175 - 5177: 7(f16vec4) Load 5016(texel) - 5178: 7(f16vec4) FAdd 5177 5176 - Store 5016(texel) 5178 - 5179: 316 Load 318(s1DArrayShadow) - 5180: 167(fvec3) Load 169(c3) - 5181: 52(float) Load 1393(dPdxy1) - 5182: 52(float) Load 1393(dPdxy1) - 5183: 52(float) Load 4311(lodClamp) - 5184: 52(float) CompositeExtract 5180 2 - 5185:6(float16_t) ImageSampleDrefExplicitLod 5179 5180 5184 Grad MinLod 5181 5182 5183 - 5186: 208(ptr) AccessChain 5016(texel) 207 - 5187:6(float16_t) Load 5186 - 5188:6(float16_t) FAdd 5187 5185 - 5189: 208(ptr) AccessChain 5016(texel) 207 - Store 5189 5188 - 5190: 316 Load 318(s1DArrayShadow) - 5191:154(f16vec2) Load 156(f16c2) - 5192: 52(float) Load 215(compare) - 5193:6(float16_t) Load 1401(f16dPdxy1) - 5194:6(float16_t) Load 1401(f16dPdxy1) - 5195:6(float16_t) Load 4318(f16lodClamp) - 5196:6(float16_t) ImageSampleDrefExplicitLod 5190 5191 5192 Grad MinLod 5193 5194 5195 - 5197: 208(ptr) AccessChain 5016(texel) 207 - 5198:6(float16_t) Load 5197 - 5199:6(float16_t) FAdd 5198 5196 - 5200: 208(ptr) AccessChain 5016(texel) 207 - Store 5200 5199 - 5201: 337 Load 339(s2DArrayShadow) - 5202: 249(fvec4) Load 251(c4) - 5203: 53(fvec2) Load 1409(dPdxy2) - 5204: 53(fvec2) Load 1409(dPdxy2) - 5205: 52(float) Load 4311(lodClamp) - 5206: 52(float) CompositeExtract 5202 3 - 5207:6(float16_t) ImageSampleDrefExplicitLod 5201 5202 5206 Grad MinLod 5203 5204 5205 - 5208: 208(ptr) AccessChain 5016(texel) 207 - 5209:6(float16_t) Load 5208 - 5210:6(float16_t) FAdd 5209 5207 - 5211: 208(ptr) AccessChain 5016(texel) 207 - Store 5211 5210 - 5212: 337 Load 339(s2DArrayShadow) - 5213:175(f16vec3) Load 177(f16c3) - 5214: 52(float) Load 215(compare) - 5215:154(f16vec2) Load 1417(f16dPdxy2) - 5216:154(f16vec2) Load 1417(f16dPdxy2) - 5217:6(float16_t) Load 4318(f16lodClamp) - 5218:6(float16_t) ImageSampleDrefExplicitLod 5212 5213 5214 Grad MinLod 5215 5216 5217 - 5219: 208(ptr) AccessChain 5016(texel) 207 - 5220:6(float16_t) Load 5219 - 5221:6(float16_t) FAdd 5220 5218 - 5222: 208(ptr) AccessChain 5016(texel) 207 - Store 5222 5221 - 5223: 299 Load 301(sCubeArray) - 5224: 249(fvec4) Load 251(c4) - 5225: 167(fvec3) Load 1425(dPdxy3) - 5226: 167(fvec3) Load 1425(dPdxy3) - 5227: 52(float) Load 4311(lodClamp) - 5228: 7(f16vec4) ImageSampleExplicitLod 5223 5224 Grad MinLod 5225 5226 5227 - 5229: 7(f16vec4) Load 5016(texel) - 5230: 7(f16vec4) FAdd 5229 5228 - Store 5016(texel) 5230 - 5231: 299 Load 301(sCubeArray) - 5232: 7(f16vec4) Load 309(f16c4) - 5233:175(f16vec3) Load 1433(f16dPdxy3) - 5234:175(f16vec3) Load 1433(f16dPdxy3) - 5235:6(float16_t) Load 4318(f16lodClamp) - 5236: 7(f16vec4) ImageSampleExplicitLod 5231 5232 Grad MinLod 5233 5234 5235 - 5237: 7(f16vec4) Load 5016(texel) - 5238: 7(f16vec4) FAdd 5237 5236 - Store 5016(texel) 5238 - 5239: 7(f16vec4) Load 5016(texel) - ReturnValue 5239 - FunctionEnd -111(testSparseTextureGradOffsetClamp(): 7(f16vec4) Function None 8 - 112: Label - 5242(texel): 64(ptr) Variable Function - Store 5242(texel) 121 - 5243: 143 Load 145(s2D) - 5244: 53(fvec2) Load 148(c2) - 5245: 53(fvec2) Load 1409(dPdxy2) - 5246: 53(fvec2) Load 1409(dPdxy2) - 5247: 52(float) Load 4311(lodClamp) - 5248:3146(ResType) ImageSparseSampleExplicitLod 5243 5244 Grad ConstOffset MinLod 5245 5246 722 5247 - 5249: 7(f16vec4) CompositeExtract 5248 1 - Store 5242(texel) 5249 - 5250: 47(int) CompositeExtract 5248 0 - 5251: 143 Load 145(s2D) - 5252:154(f16vec2) Load 156(f16c2) - 5253:154(f16vec2) Load 1417(f16dPdxy2) - 5254:154(f16vec2) Load 1417(f16dPdxy2) - 5255:6(float16_t) Load 4318(f16lodClamp) - 5256:3146(ResType) ImageSparseSampleExplicitLod 5251 5252 Grad ConstOffset MinLod 5253 5254 722 5255 - 5257: 7(f16vec4) CompositeExtract 5256 1 - Store 5242(texel) 5257 - 5258: 47(int) CompositeExtract 5256 0 - 5259: 163 Load 165(s3D) - 5260: 167(fvec3) Load 169(c3) - 5261: 167(fvec3) Load 1425(dPdxy3) - 5262: 167(fvec3) Load 1425(dPdxy3) - 5263: 52(float) Load 4311(lodClamp) - 5264:3146(ResType) ImageSparseSampleExplicitLod 5259 5260 Grad ConstOffset MinLod 5261 5262 735 5263 - 5265: 7(f16vec4) CompositeExtract 5264 1 - Store 5242(texel) 5265 - 5266: 47(int) CompositeExtract 5264 0 - 5267: 163 Load 165(s3D) - 5268:175(f16vec3) Load 177(f16c3) - 5269:175(f16vec3) Load 1433(f16dPdxy3) - 5270:175(f16vec3) Load 1433(f16dPdxy3) - 5271:6(float16_t) Load 4318(f16lodClamp) - 5272:3146(ResType) ImageSparseSampleExplicitLod 5267 5268 Grad ConstOffset MinLod 5269 5270 735 5271 - 5273: 7(f16vec4) CompositeExtract 5272 1 - Store 5242(texel) 5273 - 5274: 47(int) CompositeExtract 5272 0 - 5275: 224 Load 226(s2DShadow) - 5276: 167(fvec3) Load 169(c3) - 5277: 53(fvec2) Load 1409(dPdxy2) - 5278: 53(fvec2) Load 1409(dPdxy2) - 5279: 52(float) Load 4311(lodClamp) - 5280: 208(ptr) AccessChain 5242(texel) 207 - 5281: 52(float) CompositeExtract 5276 2 - 5282:3182(ResType) ImageSparseSampleDrefExplicitLod 5275 5276 5281 Grad ConstOffset MinLod 5277 5278 722 5279 - 5283:6(float16_t) CompositeExtract 5282 1 - Store 5280 5283 - 5284: 47(int) CompositeExtract 5282 0 - 5285: 224 Load 226(s2DShadow) - 5286:154(f16vec2) Load 156(f16c2) - 5287: 52(float) Load 215(compare) - 5288:154(f16vec2) Load 1417(f16dPdxy2) - 5289:154(f16vec2) Load 1417(f16dPdxy2) - 5290:6(float16_t) Load 4318(f16lodClamp) - 5291: 208(ptr) AccessChain 5242(texel) 207 - 5292:3182(ResType) ImageSparseSampleDrefExplicitLod 5285 5286 5287 Grad ConstOffset MinLod 5288 5289 722 5290 - 5293:6(float16_t) CompositeExtract 5292 1 - Store 5291 5293 - 5294: 47(int) CompositeExtract 5292 0 - 5295: 284 Load 286(s2DArray) - 5296: 167(fvec3) Load 169(c3) - 5297: 53(fvec2) Load 1409(dPdxy2) - 5298: 53(fvec2) Load 1409(dPdxy2) - 5299: 52(float) Load 4311(lodClamp) - 5300:3146(ResType) ImageSparseSampleExplicitLod 5295 5296 Grad ConstOffset MinLod 5297 5298 722 5299 - 5301: 7(f16vec4) CompositeExtract 5300 1 - Store 5242(texel) 5301 - 5302: 47(int) CompositeExtract 5300 0 - 5303: 284 Load 286(s2DArray) - 5304:175(f16vec3) Load 177(f16c3) - 5305:154(f16vec2) Load 1417(f16dPdxy2) - 5306:154(f16vec2) Load 1417(f16dPdxy2) - 5307:6(float16_t) Load 4318(f16lodClamp) - 5308:3146(ResType) ImageSparseSampleExplicitLod 5303 5304 Grad ConstOffset MinLod 5305 5306 722 5307 - 5309: 7(f16vec4) CompositeExtract 5308 1 - Store 5242(texel) 5309 - 5310: 47(int) CompositeExtract 5308 0 - 5311: 337 Load 339(s2DArrayShadow) - 5312: 249(fvec4) Load 251(c4) - 5313: 53(fvec2) Load 1409(dPdxy2) - 5314: 53(fvec2) Load 1409(dPdxy2) - 5315: 52(float) Load 4311(lodClamp) - 5316: 208(ptr) AccessChain 5242(texel) 207 - 5317: 52(float) CompositeExtract 5312 3 - 5318:3182(ResType) ImageSparseSampleDrefExplicitLod 5311 5312 5317 Grad ConstOffset MinLod 5313 5314 722 5315 - 5319:6(float16_t) CompositeExtract 5318 1 - Store 5316 5319 - 5320: 47(int) CompositeExtract 5318 0 - 5321: 337 Load 339(s2DArrayShadow) - 5322:175(f16vec3) Load 177(f16c3) - 5323: 52(float) Load 215(compare) - 5324:154(f16vec2) Load 1417(f16dPdxy2) - 5325:154(f16vec2) Load 1417(f16dPdxy2) - 5326:6(float16_t) Load 4318(f16lodClamp) - 5327: 208(ptr) AccessChain 5242(texel) 207 - 5328:3182(ResType) ImageSparseSampleDrefExplicitLod 5321 5322 5323 Grad ConstOffset MinLod 5324 5325 722 5326 - 5329:6(float16_t) CompositeExtract 5328 1 - Store 5327 5329 - 5330: 47(int) CompositeExtract 5328 0 - 5331: 7(f16vec4) Load 5242(texel) - ReturnValue 5331 - FunctionEnd -113(testTextureGradOffsetClamp(): 7(f16vec4) Function None 8 - 114: Label - 5334(texel): 64(ptr) Variable Function - Store 5334(texel) 121 - 5335: 123 Load 125(s1D) - 5336: 52(float) Load 128(c1) - 5337: 52(float) Load 1393(dPdxy1) - 5338: 52(float) Load 1393(dPdxy1) - 5339: 52(float) Load 4311(lodClamp) - 5340: 7(f16vec4) ImageSampleExplicitLod 5335 5336 Grad ConstOffset MinLod 5337 5338 709 5339 - 5341: 7(f16vec4) Load 5334(texel) - 5342: 7(f16vec4) FAdd 5341 5340 - Store 5334(texel) 5342 - 5343: 123 Load 125(s1D) - 5344:6(float16_t) Load 135(f16c1) - 5345:6(float16_t) Load 1401(f16dPdxy1) - 5346:6(float16_t) Load 1401(f16dPdxy1) - 5347:6(float16_t) Load 4318(f16lodClamp) - 5348: 7(f16vec4) ImageSampleExplicitLod 5343 5344 Grad ConstOffset MinLod 5345 5346 709 5347 - 5349: 7(f16vec4) Load 5334(texel) - 5350: 7(f16vec4) FAdd 5349 5348 - Store 5334(texel) 5350 - 5351: 143 Load 145(s2D) - 5352: 53(fvec2) Load 148(c2) - 5353: 53(fvec2) Load 1409(dPdxy2) - 5354: 53(fvec2) Load 1409(dPdxy2) - 5355: 52(float) Load 4311(lodClamp) - 5356: 7(f16vec4) ImageSampleExplicitLod 5351 5352 Grad ConstOffset MinLod 5353 5354 722 5355 - 5357: 7(f16vec4) Load 5334(texel) - 5358: 7(f16vec4) FAdd 5357 5356 - Store 5334(texel) 5358 - 5359: 143 Load 145(s2D) - 5360:154(f16vec2) Load 156(f16c2) - 5361:154(f16vec2) Load 1417(f16dPdxy2) - 5362:154(f16vec2) Load 1417(f16dPdxy2) - 5363:6(float16_t) Load 4318(f16lodClamp) - 5364: 7(f16vec4) ImageSampleExplicitLod 5359 5360 Grad ConstOffset MinLod 5361 5362 722 5363 - 5365: 7(f16vec4) Load 5334(texel) - 5366: 7(f16vec4) FAdd 5365 5364 - Store 5334(texel) 5366 - 5367: 163 Load 165(s3D) - 5368: 167(fvec3) Load 169(c3) - 5369: 167(fvec3) Load 1425(dPdxy3) - 5370: 167(fvec3) Load 1425(dPdxy3) - 5371: 52(float) Load 4311(lodClamp) - 5372: 7(f16vec4) ImageSampleExplicitLod 5367 5368 Grad ConstOffset MinLod 5369 5370 735 5371 - 5373: 7(f16vec4) Load 5334(texel) - 5374: 7(f16vec4) FAdd 5373 5372 - Store 5334(texel) 5374 - 5375: 163 Load 165(s3D) - 5376:175(f16vec3) Load 177(f16c3) - 5377:175(f16vec3) Load 1433(f16dPdxy3) - 5378:175(f16vec3) Load 1433(f16dPdxy3) - 5379:6(float16_t) Load 4318(f16lodClamp) - 5380: 7(f16vec4) ImageSampleExplicitLod 5375 5376 Grad ConstOffset MinLod 5377 5378 735 5379 - 5381: 7(f16vec4) Load 5334(texel) - 5382: 7(f16vec4) FAdd 5381 5380 - Store 5334(texel) 5382 - 5383: 199 Load 201(s1DShadow) - 5384: 167(fvec3) Load 169(c3) - 5385: 52(float) Load 1393(dPdxy1) - 5386: 52(float) Load 1393(dPdxy1) - 5387: 52(float) Load 4311(lodClamp) - 5388: 52(float) CompositeExtract 5384 2 - 5389:6(float16_t) ImageSampleDrefExplicitLod 5383 5384 5388 Grad ConstOffset MinLod 5385 5386 709 5387 - 5390: 208(ptr) AccessChain 5334(texel) 207 - 5391:6(float16_t) Load 5390 - 5392:6(float16_t) FAdd 5391 5389 - 5393: 208(ptr) AccessChain 5334(texel) 207 - Store 5393 5392 - 5394: 199 Load 201(s1DShadow) - 5395:154(f16vec2) Load 156(f16c2) - 5396: 52(float) Load 215(compare) - 5397:6(float16_t) Load 1401(f16dPdxy1) - 5398:6(float16_t) Load 1401(f16dPdxy1) - 5399:6(float16_t) Load 4318(f16lodClamp) - 5400:6(float16_t) ImageSampleDrefExplicitLod 5394 5395 5396 Grad ConstOffset MinLod 5397 5398 709 5399 - 5401: 208(ptr) AccessChain 5334(texel) 207 - 5402:6(float16_t) Load 5401 - 5403:6(float16_t) FAdd 5402 5400 - 5404: 208(ptr) AccessChain 5334(texel) 207 - Store 5404 5403 - 5405: 224 Load 226(s2DShadow) - 5406: 167(fvec3) Load 169(c3) - 5407: 53(fvec2) Load 1409(dPdxy2) - 5408: 53(fvec2) Load 1409(dPdxy2) - 5409: 52(float) Load 4311(lodClamp) - 5410: 52(float) CompositeExtract 5406 2 - 5411:6(float16_t) ImageSampleDrefExplicitLod 5405 5406 5410 Grad ConstOffset MinLod 5407 5408 722 5409 - 5412: 208(ptr) AccessChain 5334(texel) 207 - 5413:6(float16_t) Load 5412 - 5414:6(float16_t) FAdd 5413 5411 - 5415: 208(ptr) AccessChain 5334(texel) 207 - Store 5415 5414 - 5416: 224 Load 226(s2DShadow) - 5417:154(f16vec2) Load 156(f16c2) - 5418: 52(float) Load 215(compare) - 5419:154(f16vec2) Load 1417(f16dPdxy2) - 5420:154(f16vec2) Load 1417(f16dPdxy2) - 5421:6(float16_t) Load 4318(f16lodClamp) - 5422:6(float16_t) ImageSampleDrefExplicitLod 5416 5417 5418 Grad ConstOffset MinLod 5419 5420 722 5421 - 5423: 208(ptr) AccessChain 5334(texel) 207 - 5424:6(float16_t) Load 5423 - 5425:6(float16_t) FAdd 5424 5422 - 5426: 208(ptr) AccessChain 5334(texel) 207 - Store 5426 5425 - 5427: 269 Load 271(s1DArray) - 5428: 53(fvec2) Load 148(c2) - 5429: 52(float) Load 1393(dPdxy1) - 5430: 52(float) Load 1393(dPdxy1) - 5431: 52(float) Load 4311(lodClamp) - 5432: 7(f16vec4) ImageSampleExplicitLod 5427 5428 Grad ConstOffset MinLod 5429 5430 709 5431 - 5433: 7(f16vec4) Load 5334(texel) - 5434: 7(f16vec4) FAdd 5433 5432 - Store 5334(texel) 5434 - 5435: 269 Load 271(s1DArray) - 5436:154(f16vec2) Load 156(f16c2) - 5437:6(float16_t) Load 1401(f16dPdxy1) - 5438:6(float16_t) Load 1401(f16dPdxy1) - 5439:6(float16_t) Load 4318(f16lodClamp) - 5440: 7(f16vec4) ImageSampleExplicitLod 5435 5436 Grad ConstOffset MinLod 5437 5438 709 5439 - 5441: 7(f16vec4) Load 5334(texel) - 5442: 7(f16vec4) FAdd 5441 5440 - Store 5334(texel) 5442 - 5443: 284 Load 286(s2DArray) - 5444: 167(fvec3) Load 169(c3) - 5445: 53(fvec2) Load 1409(dPdxy2) - 5446: 53(fvec2) Load 1409(dPdxy2) - 5447: 52(float) Load 4311(lodClamp) - 5448: 7(f16vec4) ImageSampleExplicitLod 5443 5444 Grad ConstOffset MinLod 5445 5446 722 5447 - 5449: 7(f16vec4) Load 5334(texel) - 5450: 7(f16vec4) FAdd 5449 5448 - Store 5334(texel) 5450 - 5451: 284 Load 286(s2DArray) - 5452:175(f16vec3) Load 177(f16c3) - 5453:154(f16vec2) Load 1417(f16dPdxy2) - 5454:154(f16vec2) Load 1417(f16dPdxy2) - 5455:6(float16_t) Load 4318(f16lodClamp) - 5456: 7(f16vec4) ImageSampleExplicitLod 5451 5452 Grad ConstOffset MinLod 5453 5454 722 5455 - 5457: 7(f16vec4) Load 5334(texel) - 5458: 7(f16vec4) FAdd 5457 5456 - Store 5334(texel) 5458 - 5459: 316 Load 318(s1DArrayShadow) - 5460: 167(fvec3) Load 169(c3) - 5461: 52(float) Load 1393(dPdxy1) - 5462: 52(float) Load 1393(dPdxy1) - 5463: 52(float) Load 4311(lodClamp) - 5464: 52(float) CompositeExtract 5460 2 - 5465:6(float16_t) ImageSampleDrefExplicitLod 5459 5460 5464 Grad ConstOffset MinLod 5461 5462 709 5463 - 5466: 208(ptr) AccessChain 5334(texel) 207 - 5467:6(float16_t) Load 5466 - 5468:6(float16_t) FAdd 5467 5465 - 5469: 208(ptr) AccessChain 5334(texel) 207 - Store 5469 5468 - 5470: 316 Load 318(s1DArrayShadow) - 5471:154(f16vec2) Load 156(f16c2) - 5472: 52(float) Load 215(compare) - 5473:6(float16_t) Load 1401(f16dPdxy1) - 5474:6(float16_t) Load 1401(f16dPdxy1) - 5475:6(float16_t) Load 4318(f16lodClamp) - 5476:6(float16_t) ImageSampleDrefExplicitLod 5470 5471 5472 Grad ConstOffset MinLod 5473 5474 709 5475 - 5477: 208(ptr) AccessChain 5334(texel) 207 - 5478:6(float16_t) Load 5477 - 5479:6(float16_t) FAdd 5478 5476 - 5480: 208(ptr) AccessChain 5334(texel) 207 - Store 5480 5479 - 5481: 337 Load 339(s2DArrayShadow) - 5482: 249(fvec4) Load 251(c4) - 5483: 53(fvec2) Load 1409(dPdxy2) - 5484: 53(fvec2) Load 1409(dPdxy2) - 5485: 52(float) Load 4311(lodClamp) - 5486: 52(float) CompositeExtract 5482 3 - 5487:6(float16_t) ImageSampleDrefExplicitLod 5481 5482 5486 Grad ConstOffset MinLod 5483 5484 722 5485 - 5488: 208(ptr) AccessChain 5334(texel) 207 - 5489:6(float16_t) Load 5488 - 5490:6(float16_t) FAdd 5489 5487 - 5491: 208(ptr) AccessChain 5334(texel) 207 - Store 5491 5490 - 5492: 337 Load 339(s2DArrayShadow) - 5493:175(f16vec3) Load 177(f16c3) - 5494: 52(float) Load 215(compare) - 5495:154(f16vec2) Load 1417(f16dPdxy2) - 5496:154(f16vec2) Load 1417(f16dPdxy2) - 5497:6(float16_t) Load 4318(f16lodClamp) - 5498:6(float16_t) ImageSampleDrefExplicitLod 5492 5493 5494 Grad ConstOffset MinLod 5495 5496 722 5497 - 5499: 208(ptr) AccessChain 5334(texel) 207 - 5500:6(float16_t) Load 5499 - 5501:6(float16_t) FAdd 5500 5498 - 5502: 208(ptr) AccessChain 5334(texel) 207 - Store 5502 5501 - 5503: 7(f16vec4) Load 5334(texel) - ReturnValue 5503 - FunctionEnd -115(testCombinedTextureSampler(): 7(f16vec4) Function None 8 - 116: Label - 5506(texel): 64(ptr) Variable Function - Store 5506(texel) 121 - 5509: 122 Load 5508(t1D) - 5513: 5510 Load 5512(s) - 5514: 123 SampledImage 5509 5513 - 5515: 52(float) Load 128(c1) - 5516: 7(f16vec4) ImageSampleImplicitLod 5514 5515 - 5517: 7(f16vec4) Load 5506(texel) - 5518: 7(f16vec4) FAdd 5517 5516 - Store 5506(texel) 5518 - 5519: 122 Load 5508(t1D) - 5520: 5510 Load 5512(s) - 5521: 123 SampledImage 5519 5520 - 5522:6(float16_t) Load 135(f16c1) - 5523:6(float16_t) Load 137(f16bias) - 5524: 7(f16vec4) ImageSampleImplicitLod 5521 5522 Bias 5523 - 5525: 7(f16vec4) Load 5506(texel) - 5526: 7(f16vec4) FAdd 5525 5524 - Store 5506(texel) 5526 - 5529: 142 Load 5528(t2D) - 5530: 5510 Load 5512(s) - 5531: 143 SampledImage 5529 5530 - 5532: 53(fvec2) Load 148(c2) - 5533: 7(f16vec4) ImageSampleImplicitLod 5531 5532 - 5534: 7(f16vec4) Load 5506(texel) - 5535: 7(f16vec4) FAdd 5534 5533 - Store 5506(texel) 5535 - 5536: 142 Load 5528(t2D) - 5537: 5510 Load 5512(s) - 5538: 143 SampledImage 5536 5537 - 5539:154(f16vec2) Load 156(f16c2) - 5540:6(float16_t) Load 137(f16bias) - 5541: 7(f16vec4) ImageSampleImplicitLod 5538 5539 Bias 5540 - 5542: 7(f16vec4) Load 5506(texel) - 5543: 7(f16vec4) FAdd 5542 5541 - Store 5506(texel) 5543 - 5546: 162 Load 5545(t3D) - 5547: 5510 Load 5512(s) - 5548: 163 SampledImage 5546 5547 - 5549: 167(fvec3) Load 169(c3) - 5550: 7(f16vec4) ImageSampleImplicitLod 5548 5549 - 5551: 7(f16vec4) Load 5506(texel) - 5552: 7(f16vec4) FAdd 5551 5550 - Store 5506(texel) 5552 - 5553: 162 Load 5545(t3D) - 5554: 5510 Load 5512(s) - 5555: 163 SampledImage 5553 5554 - 5556:175(f16vec3) Load 177(f16c3) - 5557:6(float16_t) Load 137(f16bias) - 5558: 7(f16vec4) ImageSampleImplicitLod 5555 5556 Bias 5557 - 5559: 7(f16vec4) Load 5506(texel) - 5560: 7(f16vec4) FAdd 5559 5558 - Store 5506(texel) 5560 - 5563: 183 Load 5562(tCube) - 5564: 5510 Load 5512(s) - 5565: 184 SampledImage 5563 5564 - 5566: 167(fvec3) Load 169(c3) - 5567: 7(f16vec4) ImageSampleImplicitLod 5565 5566 - 5568: 7(f16vec4) Load 5506(texel) - 5569: 7(f16vec4) FAdd 5568 5567 - Store 5506(texel) 5569 - 5570: 183 Load 5562(tCube) - 5571: 5510 Load 5512(s) - 5572: 184 SampledImage 5570 5571 - 5573:175(f16vec3) Load 177(f16c3) - 5574:6(float16_t) Load 137(f16bias) - 5575: 7(f16vec4) ImageSampleImplicitLod 5572 5573 Bias 5574 - 5576: 7(f16vec4) Load 5506(texel) - 5577: 7(f16vec4) FAdd 5576 5575 - Store 5506(texel) 5577 - 5578: 122 Load 5508(t1D) - 5580: 5510 Load 5579(sShadow) - 5581: 199 SampledImage 5578 5580 - 5582: 167(fvec3) Load 169(c3) - 5583: 52(float) CompositeExtract 5582 2 - 5584:6(float16_t) ImageSampleDrefImplicitLod 5581 5582 5583 - 5585: 208(ptr) AccessChain 5506(texel) 207 - 5586:6(float16_t) Load 5585 - 5587:6(float16_t) FAdd 5586 5584 - 5588: 208(ptr) AccessChain 5506(texel) 207 - Store 5588 5587 - 5589: 122 Load 5508(t1D) - 5590: 5510 Load 5579(sShadow) - 5591: 199 SampledImage 5589 5590 - 5592:154(f16vec2) Load 156(f16c2) - 5593: 52(float) Load 215(compare) - 5594:6(float16_t) Load 137(f16bias) - 5595:6(float16_t) ImageSampleDrefImplicitLod 5591 5592 5593 Bias 5594 - 5596: 208(ptr) AccessChain 5506(texel) 207 - 5597:6(float16_t) Load 5596 - 5598:6(float16_t) FAdd 5597 5595 - 5599: 208(ptr) AccessChain 5506(texel) 207 - Store 5599 5598 - 5600: 142 Load 5528(t2D) - 5601: 5510 Load 5579(sShadow) - 5602: 224 SampledImage 5600 5601 - 5603: 167(fvec3) Load 169(c3) - 5604: 52(float) CompositeExtract 5603 2 - 5605:6(float16_t) ImageSampleDrefImplicitLod 5602 5603 5604 - 5606: 208(ptr) AccessChain 5506(texel) 207 - 5607:6(float16_t) Load 5606 - 5608:6(float16_t) FAdd 5607 5605 - 5609: 208(ptr) AccessChain 5506(texel) 207 - Store 5609 5608 - 5610: 142 Load 5528(t2D) - 5611: 5510 Load 5579(sShadow) - 5612: 224 SampledImage 5610 5611 - 5613:154(f16vec2) Load 156(f16c2) - 5614: 52(float) Load 215(compare) - 5615:6(float16_t) Load 137(f16bias) - 5616:6(float16_t) ImageSampleDrefImplicitLod 5612 5613 5614 Bias 5615 - 5617: 208(ptr) AccessChain 5506(texel) 207 - 5618:6(float16_t) Load 5617 - 5619:6(float16_t) FAdd 5618 5616 - 5620: 208(ptr) AccessChain 5506(texel) 207 - Store 5620 5619 - 5621: 183 Load 5562(tCube) - 5622: 5510 Load 5579(sShadow) - 5623: 245 SampledImage 5621 5622 - 5624: 249(fvec4) Load 251(c4) - 5625: 52(float) CompositeExtract 5624 3 - 5626:6(float16_t) ImageSampleDrefImplicitLod 5623 5624 5625 - 5627: 208(ptr) AccessChain 5506(texel) 207 - 5628:6(float16_t) Load 5627 - 5629:6(float16_t) FAdd 5628 5626 - 5630: 208(ptr) AccessChain 5506(texel) 207 - Store 5630 5629 - 5631: 183 Load 5562(tCube) - 5632: 5510 Load 5579(sShadow) - 5633: 245 SampledImage 5631 5632 - 5634:175(f16vec3) Load 177(f16c3) - 5635: 52(float) Load 215(compare) - 5636:6(float16_t) Load 137(f16bias) - 5637:6(float16_t) ImageSampleDrefImplicitLod 5633 5634 5635 Bias 5636 - 5638: 208(ptr) AccessChain 5506(texel) 207 - 5639:6(float16_t) Load 5638 - 5640:6(float16_t) FAdd 5639 5637 - 5641: 208(ptr) AccessChain 5506(texel) 207 - Store 5641 5640 - 5644: 268 Load 5643(t1DArray) - 5645: 5510 Load 5512(s) - 5646: 269 SampledImage 5644 5645 - 5647: 53(fvec2) Load 148(c2) - 5648: 7(f16vec4) ImageSampleImplicitLod 5646 5647 - 5649: 7(f16vec4) Load 5506(texel) - 5650: 7(f16vec4) FAdd 5649 5648 - Store 5506(texel) 5650 - 5651: 268 Load 5643(t1DArray) - 5652: 5510 Load 5512(s) - 5653: 269 SampledImage 5651 5652 - 5654:154(f16vec2) Load 156(f16c2) - 5655:6(float16_t) Load 137(f16bias) - 5656: 7(f16vec4) ImageSampleImplicitLod 5653 5654 Bias 5655 - 5657: 7(f16vec4) Load 5506(texel) - 5658: 7(f16vec4) FAdd 5657 5656 - Store 5506(texel) 5658 - 5661: 283 Load 5660(t2DArray) - 5662: 5510 Load 5512(s) - 5663: 284 SampledImage 5661 5662 - 5664: 167(fvec3) Load 169(c3) - 5665: 7(f16vec4) ImageSampleImplicitLod 5663 5664 - 5666: 7(f16vec4) Load 5506(texel) - 5667: 7(f16vec4) FAdd 5666 5665 - Store 5506(texel) 5667 - 5668: 283 Load 5660(t2DArray) - 5669: 5510 Load 5512(s) - 5670: 284 SampledImage 5668 5669 - 5671:175(f16vec3) Load 177(f16c3) - 5672:6(float16_t) Load 137(f16bias) - 5673: 7(f16vec4) ImageSampleImplicitLod 5670 5671 Bias 5672 - 5674: 7(f16vec4) Load 5506(texel) - 5675: 7(f16vec4) FAdd 5674 5673 - Store 5506(texel) 5675 - 5678: 298 Load 5677(tCubeArray) - 5679: 5510 Load 5512(s) - 5680: 299 SampledImage 5678 5679 - 5681: 249(fvec4) Load 251(c4) - 5682: 7(f16vec4) ImageSampleImplicitLod 5680 5681 - 5683: 7(f16vec4) Load 5506(texel) - 5684: 7(f16vec4) FAdd 5683 5682 - Store 5506(texel) 5684 - 5685: 298 Load 5677(tCubeArray) - 5686: 5510 Load 5512(s) - 5687: 299 SampledImage 5685 5686 - 5688: 7(f16vec4) Load 309(f16c4) - 5689:6(float16_t) Load 137(f16bias) - 5690: 7(f16vec4) ImageSampleImplicitLod 5687 5688 Bias 5689 - 5691: 7(f16vec4) Load 5506(texel) - 5692: 7(f16vec4) FAdd 5691 5690 - Store 5506(texel) 5692 - 5693: 268 Load 5643(t1DArray) - 5694: 5510 Load 5579(sShadow) - 5695: 316 SampledImage 5693 5694 - 5696: 167(fvec3) Load 169(c3) - 5697: 52(float) CompositeExtract 5696 2 - 5698:6(float16_t) ImageSampleDrefImplicitLod 5695 5696 5697 - 5699: 208(ptr) AccessChain 5506(texel) 207 - 5700:6(float16_t) Load 5699 - 5701:6(float16_t) FAdd 5700 5698 - 5702: 208(ptr) AccessChain 5506(texel) 207 - Store 5702 5701 - 5703: 268 Load 5643(t1DArray) - 5704: 5510 Load 5579(sShadow) - 5705: 316 SampledImage 5703 5704 - 5706:154(f16vec2) Load 156(f16c2) - 5707: 52(float) Load 215(compare) - 5708:6(float16_t) Load 137(f16bias) - 5709:6(float16_t) ImageSampleDrefImplicitLod 5705 5706 5707 Bias 5708 - 5710: 208(ptr) AccessChain 5506(texel) 207 - 5711:6(float16_t) Load 5710 - 5712:6(float16_t) FAdd 5711 5709 - 5713: 208(ptr) AccessChain 5506(texel) 207 - Store 5713 5712 - 5714: 283 Load 5660(t2DArray) - 5715: 5510 Load 5579(sShadow) - 5716: 337 SampledImage 5714 5715 - 5717: 249(fvec4) Load 251(c4) - 5718: 52(float) CompositeExtract 5717 3 - 5719:6(float16_t) ImageSampleDrefImplicitLod 5716 5717 5718 - 5720: 208(ptr) AccessChain 5506(texel) 207 - 5721:6(float16_t) Load 5720 - 5722:6(float16_t) FAdd 5721 5719 - 5723: 208(ptr) AccessChain 5506(texel) 207 - Store 5723 5722 - 5724: 283 Load 5660(t2DArray) - 5725: 5510 Load 5579(sShadow) - 5726: 337 SampledImage 5724 5725 - 5727:175(f16vec3) Load 177(f16c3) - 5728: 52(float) Load 215(compare) - 5729:6(float16_t) ImageSampleDrefImplicitLod 5726 5727 5728 - 5730: 208(ptr) AccessChain 5506(texel) 207 - 5731:6(float16_t) Load 5730 - 5732:6(float16_t) FAdd 5731 5729 - 5733: 208(ptr) AccessChain 5506(texel) 207 - Store 5733 5732 - 5736: 356 Load 5735(t2DRect) - 5737: 5510 Load 5512(s) - 5738: 357 SampledImage 5736 5737 - 5739: 53(fvec2) Load 148(c2) - 5740: 7(f16vec4) ImageSampleImplicitLod 5738 5739 - 5741: 7(f16vec4) Load 5506(texel) - 5742: 7(f16vec4) FAdd 5741 5740 - Store 5506(texel) 5742 - 5743: 356 Load 5735(t2DRect) - 5744: 5510 Load 5512(s) - 5745: 357 SampledImage 5743 5744 - 5746:154(f16vec2) Load 156(f16c2) - 5747: 7(f16vec4) ImageSampleImplicitLod 5745 5746 - 5748: 7(f16vec4) Load 5506(texel) - 5749: 7(f16vec4) FAdd 5748 5747 - Store 5506(texel) 5749 - 5750: 356 Load 5735(t2DRect) - 5751: 5510 Load 5579(sShadow) - 5752: 371 SampledImage 5750 5751 - 5753: 167(fvec3) Load 169(c3) - 5754: 52(float) CompositeExtract 5753 2 - 5755:6(float16_t) ImageSampleDrefImplicitLod 5752 5753 5754 - 5756: 208(ptr) AccessChain 5506(texel) 207 - 5757:6(float16_t) Load 5756 - 5758:6(float16_t) FAdd 5757 5755 - 5759: 208(ptr) AccessChain 5506(texel) 207 - Store 5759 5758 - 5760: 356 Load 5735(t2DRect) - 5761: 5510 Load 5579(sShadow) - 5762: 371 SampledImage 5760 5761 - 5763:154(f16vec2) Load 156(f16c2) - 5764: 52(float) Load 215(compare) - 5765:6(float16_t) ImageSampleDrefImplicitLod 5762 5763 5764 - 5766: 208(ptr) AccessChain 5506(texel) 207 - 5767:6(float16_t) Load 5766 - 5768:6(float16_t) FAdd 5767 5765 - 5769: 208(ptr) AccessChain 5506(texel) 207 - Store 5769 5768 - 5770: 298 Load 5677(tCubeArray) - 5771: 5510 Load 5579(sShadow) - 5772: 391 SampledImage 5770 5771 - 5773: 249(fvec4) Load 251(c4) - 5774: 52(float) Load 215(compare) - 5775:6(float16_t) ImageSampleDrefImplicitLod 5772 5773 5774 - 5776: 208(ptr) AccessChain 5506(texel) 207 - 5777:6(float16_t) Load 5776 - 5778:6(float16_t) FAdd 5777 5775 - 5779: 208(ptr) AccessChain 5506(texel) 207 - Store 5779 5778 - 5780: 298 Load 5677(tCubeArray) - 5781: 5510 Load 5579(sShadow) - 5782: 391 SampledImage 5780 5781 - 5783: 7(f16vec4) Load 309(f16c4) - 5784: 52(float) Load 215(compare) - 5785:6(float16_t) ImageSampleDrefImplicitLod 5782 5783 5784 - 5786: 208(ptr) AccessChain 5506(texel) 207 - 5787:6(float16_t) Load 5786 - 5788:6(float16_t) FAdd 5787 5785 - 5789: 208(ptr) AccessChain 5506(texel) 207 - Store 5789 5788 - 5790: 7(f16vec4) Load 5506(texel) - ReturnValue 5790 - FunctionEnd -117(testSubpassLoad(): 7(f16vec4) Function None 8 - 118: Label - 5796: 5793 Load 5795(subpass) - 5798: 7(f16vec4) ImageRead 5796 5797 - 5802: 5799 Load 5801(subpassMS) - 5803: 7(f16vec4) ImageRead 5802 5797 Sample 1326 - 5804: 7(f16vec4) FAdd 5798 5803 - ReturnValue 5804 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.float16NoRelaxed.vert.out b/deps/glslang/Test/baseResults/spv.float16NoRelaxed.vert.out deleted file mode 100644 index 8872b463..00000000 --- a/deps/glslang/Test/baseResults/spv.float16NoRelaxed.vert.out +++ /dev/null @@ -1,72 +0,0 @@ -spv.float16NoRelaxed.vert -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 35 - - Capability Shader - Capability Float16 - Capability GroupNonUniform - Capability GroupNonUniformVote - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 11 30 - Source GLSL 450 - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16" - SourceExtension "GL_EXT_shader_subgroup_extended_types_float16" - SourceExtension "GL_KHR_shader_subgroup_basic" - SourceExtension "GL_KHR_shader_subgroup_vote" - Name 4 "main" - Name 8 "valueNoEqual" - Name 11 "gl_SubgroupInvocationID" - Name 15 "tempRes" - Name 26 "Buffer1" - MemberName 26(Buffer1) 0 "result" - Name 28 "" - Name 30 "gl_VertexIndex" - Decorate 11(gl_SubgroupInvocationID) RelaxedPrecision - Decorate 11(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId - Decorate 12 RelaxedPrecision - Decorate 25 ArrayStride 4 - MemberDecorate 26(Buffer1) 0 Offset 0 - Decorate 26(Buffer1) Block - Decorate 28 DescriptorSet 0 - Decorate 28 Binding 0 - Decorate 30(gl_VertexIndex) BuiltIn VertexIndex - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 16 - 7: TypePointer Function 6(float16_t) - 9: TypeInt 32 0 - 10: TypePointer Input 9(int) -11(gl_SubgroupInvocationID): 10(ptr) Variable Input - 14: TypePointer Function 9(int) - 17: TypeBool - 18: 9(int) Constant 3 - 20: TypeInt 32 1 - 21: 20(int) Constant 0 - 22: 20(int) Constant 16 - 25: TypeRuntimeArray 9(int) - 26(Buffer1): TypeStruct 25 - 27: TypePointer StorageBuffer 26(Buffer1) - 28: 27(ptr) Variable StorageBuffer - 29: TypePointer Input 20(int) -30(gl_VertexIndex): 29(ptr) Variable Input - 33: TypePointer StorageBuffer 9(int) - 4(main): 2 Function None 3 - 5: Label - 8(valueNoEqual): 7(ptr) Variable Function - 15(tempRes): 14(ptr) Variable Function - 12: 9(int) Load 11(gl_SubgroupInvocationID) - 13:6(float16_t) ConvertUToF 12 - Store 8(valueNoEqual) 13 - 16:6(float16_t) Load 8(valueNoEqual) - 19: 17(bool) GroupNonUniformAllEqual 18 16 - 23: 20(int) Select 19 21 22 - 24: 9(int) Bitcast 23 - Store 15(tempRes) 24 - 31: 20(int) Load 30(gl_VertexIndex) - 32: 9(int) Load 15(tempRes) - 34: 33(ptr) AccessChain 28 21 31 - Store 34 32 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.float16convertonlyarith.comp.out b/deps/glslang/Test/baseResults/spv.float16convertonlyarith.comp.out deleted file mode 100644 index 1666f79f..00000000 --- a/deps/glslang/Test/baseResults/spv.float16convertonlyarith.comp.out +++ /dev/null @@ -1,39 +0,0 @@ -spv.float16convertonlyarith.comp -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 22 - - Capability Shader - Capability Float16 - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" - ExecutionMode 4 LocalSize 16 16 1 - Source GLSL 450 - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16" - Name 4 "main" - Name 9 "v" - Decorate 21 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: 6(float) Constant 0 - 11: 7(fvec4) ConstantComposite 10 10 10 10 - 13: TypeFloat 16 - 14: TypeVector 13(float16_t) 4 - 17: TypeInt 32 0 - 18: TypeVector 17(int) 3 - 19: 17(int) Constant 16 - 20: 17(int) Constant 1 - 21: 18(ivec3) ConstantComposite 19 19 20 - 4(main): 2 Function None 3 - 5: Label - 9(v): 8(ptr) Variable Function - Store 9(v) 11 - 12: 7(fvec4) Load 9(v) - 15: 14(f16vec4) FConvert 12 - 16: 7(fvec4) FConvert 15 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.float16convertonlystorage.comp.out b/deps/glslang/Test/baseResults/spv.float16convertonlystorage.comp.out deleted file mode 100644 index 8eb42f6f..00000000 --- a/deps/glslang/Test/baseResults/spv.float16convertonlystorage.comp.out +++ /dev/null @@ -1,39 +0,0 @@ -spv.float16convertonlystorage.comp -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 22 - - Capability Shader - Capability Float16 - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" - ExecutionMode 4 LocalSize 16 16 1 - Source GLSL 450 - SourceExtension "GL_EXT_shader_16bit_storage" - Name 4 "main" - Name 9 "v" - Decorate 21 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: 6(float) Constant 0 - 11: 7(fvec4) ConstantComposite 10 10 10 10 - 13: TypeFloat 16 - 14: TypeVector 13(float16_t) 4 - 17: TypeInt 32 0 - 18: TypeVector 17(int) 3 - 19: 17(int) Constant 16 - 20: 17(int) Constant 1 - 21: 18(ivec3) ConstantComposite 19 19 20 - 4(main): 2 Function None 3 - 5: Label - 9(v): 8(ptr) Variable Function - Store 9(v) 11 - 12: 7(fvec4) Load 9(v) - 15: 14(f16vec4) FConvert 12 - 16: 7(fvec4) FConvert 15 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.float32.frag.out b/deps/glslang/Test/baseResults/spv.float32.frag.out deleted file mode 100644 index 2ffa2311..00000000 --- a/deps/glslang/Test/baseResults/spv.float32.frag.out +++ /dev/null @@ -1,821 +0,0 @@ -spv.float32.frag -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 541 - - Capability Shader - Capability Float16 - Capability Float64 - Capability Int64 - Capability Int16 - Capability Int8 - Capability DerivativeControl - Capability InterpolationFunction - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 471 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_shader_explicit_arithmetic_types" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float32" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float64" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int16" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int32" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int64" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int8" - Name 4 "main" - Name 6 "literal(" - Name 8 "operators(" - Name 10 "typeCast(" - Name 12 "builtinAngleTrigFuncs(" - Name 14 "builtinExpFuncs(" - Name 16 "builtinCommonFuncs(" - Name 18 "builtinGeometryFuncs(" - Name 20 "builtinMatrixFuncs(" - Name 22 "builtinVecRelFuncs(" - Name 24 "builtinFragProcFuncs(" - Name 29 "f32v" - Name 40 "f32v" - Name 62 "f32m" - Name 85 "f32" - Name 109 "b" - Name 152 "f64v" - Name 155 "f32v" - Name 160 "bv" - Name 175 "f16v" - Name 183 "i8v" - Name 189 "i16v" - Name 195 "i32v" - Name 201 "i64v" - Name 207 "u8v" - Name 213 "u16v" - Name 218 "u32v" - Name 224 "u64v" - Name 229 "f32v2" - Name 230 "f32v1" - Name 262 "f32v2" - Name 263 "f32v1" - Name 279 "f32v2" - Name 280 "f32v1" - Name 301 "f32" - Name 305 "f32v3" - Name 345 "bv" - Name 366 "b" - Name 376 "iv" - Name 377 "ResType" - Name 384 "f32" - Name 385 "f32v1" - Name 389 "f32v2" - Name 395 "f32v3" - Name 414 "f32m3" - Name 415 "f32m1" - Name 417 "f32m2" - Name 426 "f32v1" - Name 428 "f32v2" - Name 433 "f32m4" - Name 436 "f32" - Name 439 "f32m5" - Name 444 "f32m6" - Name 445 "f32m7" - Name 448 "bv" - Name 449 "f32v1" - Name 451 "f32v2" - Name 469 "f32v" - Name 471 "if32v" - Name 528 "S" - MemberName 528(S) 0 "x" - MemberName 528(S) 1 "y" - MemberName 528(S) 2 "z" - Name 530 "B1" - MemberName 530(B1) 0 "a" - MemberName 530(B1) 1 "b" - MemberName 530(B1) 2 "c" - MemberName 530(B1) 3 "d" - MemberName 530(B1) 4 "e" - MemberName 530(B1) 5 "f" - MemberName 530(B1) 6 "g" - MemberName 530(B1) 7 "h" - Name 532 "" - Name 533 "sf16" - Name 534 "sf" - Name 535 "sd" - Name 536 "f16_to_f" - Name 538 "f16_to_d" - Name 539 "f_to_f16" - Name 540 "d_to_f16" - Decorate 471(if32v) Location 0 - Decorate 526 ArrayStride 16 - Decorate 527 ArrayStride 32 - MemberDecorate 528(S) 0 Offset 0 - MemberDecorate 528(S) 1 Offset 8 - MemberDecorate 528(S) 2 Offset 16 - Decorate 529 ArrayStride 32 - MemberDecorate 530(B1) 0 Offset 0 - MemberDecorate 530(B1) 1 Offset 8 - MemberDecorate 530(B1) 2 Offset 16 - MemberDecorate 530(B1) 3 Offset 32 - MemberDecorate 530(B1) 4 ColMajor - MemberDecorate 530(B1) 4 Offset 64 - MemberDecorate 530(B1) 4 MatrixStride 16 - MemberDecorate 530(B1) 5 ColMajor - MemberDecorate 530(B1) 5 Offset 96 - MemberDecorate 530(B1) 5 MatrixStride 16 - MemberDecorate 530(B1) 6 Offset 160 - MemberDecorate 530(B1) 7 Offset 192 - Decorate 530(B1) Block - Decorate 532 DescriptorSet 0 - Decorate 532 Binding 0 - Decorate 533(sf16) SpecId 100 - Decorate 534(sf) SpecId 101 - Decorate 535(sd) SpecId 102 - 2: TypeVoid - 3: TypeFunction 2 - 26: TypeFloat 32 - 27: TypeVector 26(float) 2 - 28: TypePointer Function 27(fvec2) - 30: 26(float) Constant 897988541 - 31: TypeInt 32 0 - 32: 31(int) Constant 0 - 33: TypePointer Function 26(float) - 35: 26(float) Constant 3196059648 - 36: 26(float) Constant 1022739087 - 37: 27(fvec2) ConstantComposite 35 36 - 54: 26(float) Constant 1065353216 - 60: TypeMatrix 27(fvec2) 2 - 61: TypePointer Function 60 - 88: 31(int) Constant 1 - 107: TypeBool - 108: TypePointer Function 107(bool) - 149: TypeFloat 64 - 150: TypeVector 149(float64_t) 3 - 151: TypePointer Function 150(f64vec3) - 153: TypeVector 26(float) 3 - 154: TypePointer Function 153(fvec3) - 158: TypeVector 107(bool) 3 - 159: TypePointer Function 158(bvec3) - 162: 26(float) Constant 0 - 163: 153(fvec3) ConstantComposite 162 162 162 - 164: 153(fvec3) ConstantComposite 54 54 54 - 172: TypeFloat 16 - 173: TypeVector 172(float16_t) 3 - 174: TypePointer Function 173(f16vec3) - 180: TypeInt 8 1 - 181: TypeVector 180(int8_t) 3 - 182: TypePointer Function 181(i8vec3) - 186: TypeInt 16 1 - 187: TypeVector 186(int16_t) 3 - 188: TypePointer Function 187(i16vec3) - 192: TypeInt 32 1 - 193: TypeVector 192(int) 3 - 194: TypePointer Function 193(ivec3) - 198: TypeInt 64 1 - 199: TypeVector 198(int64_t) 3 - 200: TypePointer Function 199(i64vec3) - 204: TypeInt 8 0 - 205: TypeVector 204(int8_t) 3 - 206: TypePointer Function 205(i8vec3) - 210: TypeInt 16 0 - 211: TypeVector 210(int16_t) 3 - 212: TypePointer Function 211(i16vec3) - 216: TypeVector 31(int) 3 - 217: TypePointer Function 216(ivec3) - 221: TypeInt 64 0 - 222: TypeVector 221(int64_t) 3 - 223: TypePointer Function 222(i64vec3) - 227: TypeVector 26(float) 4 - 228: TypePointer Function 227(fvec4) - 377(ResType): TypeStruct 153(fvec3) 193(ivec3) - 412: TypeMatrix 153(fvec3) 2 - 413: TypePointer Function 412 - 431: TypeMatrix 27(fvec2) 3 - 432: TypePointer Function 431 - 437: TypeMatrix 153(fvec3) 3 - 438: TypePointer Function 437 - 442: TypeMatrix 227(fvec4) 4 - 443: TypePointer Function 442 - 470: TypePointer Input 153(fvec3) - 471(if32v): 470(ptr) Variable Input - 472: TypePointer Input 26(float) - 515: 192(int) Constant 1 - 522: 26(float) Constant 1056964608 - 523: 27(fvec2) ConstantComposite 522 522 - 525: 31(int) Constant 2 - 526: TypeArray 26(float) 525 - 527: TypeArray 412 525 - 528(S): TypeStruct 26(float) 27(fvec2) 153(fvec3) - 529: TypeArray 528(S) 525 - 530(B1): TypeStruct 26(float) 27(fvec2) 153(fvec3) 526 412 527 528(S) 529 - 531: TypePointer Uniform 530(B1) - 532: 531(ptr) Variable Uniform - 533(sf16):172(float16_t) SpecConstant 12288 - 534(sf): 26(float) SpecConstant 1048576000 - 535(sd):149(float64_t) SpecConstant 0 1071644672 - 536(f16_to_f): 26(float) SpecConstantOp 115 533(sf16) - 537: 26(float) SpecConstantOp 115 533(sf16) - 538(f16_to_d):149(float64_t) SpecConstantOp 115 537 - 539(f_to_f16):172(float16_t) SpecConstantOp 115 534(sf) - 540(d_to_f16):172(float16_t) SpecConstantOp 115 535(sd) - 4(main): 2 Function None 3 - 5: Label - Return - FunctionEnd - 6(literal(): 2 Function None 3 - 7: Label - 29(f32v): 28(ptr) Variable Function - 34: 33(ptr) AccessChain 29(f32v) 32 - Store 34 30 - 38: 27(fvec2) Load 29(f32v) - 39: 27(fvec2) FAdd 38 37 - Store 29(f32v) 39 - Return - FunctionEnd - 8(operators(): 2 Function None 3 - 9: Label - 40(f32v): 28(ptr) Variable Function - 62(f32m): 61(ptr) Variable Function - 85(f32): 33(ptr) Variable Function - 109(b): 108(ptr) Variable Function - 41: 27(fvec2) Load 40(f32v) - 42: 27(fvec2) Load 40(f32v) - 43: 27(fvec2) FAdd 42 41 - Store 40(f32v) 43 - 44: 27(fvec2) Load 40(f32v) - 45: 27(fvec2) Load 40(f32v) - 46: 27(fvec2) FSub 45 44 - Store 40(f32v) 46 - 47: 27(fvec2) Load 40(f32v) - 48: 27(fvec2) Load 40(f32v) - 49: 27(fvec2) FMul 48 47 - Store 40(f32v) 49 - 50: 27(fvec2) Load 40(f32v) - 51: 27(fvec2) Load 40(f32v) - 52: 27(fvec2) FDiv 51 50 - Store 40(f32v) 52 - 53: 27(fvec2) Load 40(f32v) - 55: 27(fvec2) CompositeConstruct 54 54 - 56: 27(fvec2) FAdd 53 55 - Store 40(f32v) 56 - 57: 27(fvec2) Load 40(f32v) - 58: 27(fvec2) CompositeConstruct 54 54 - 59: 27(fvec2) FSub 57 58 - Store 40(f32v) 59 - 63: 60 Load 62(f32m) - 64: 27(fvec2) CompositeConstruct 54 54 - 65: 27(fvec2) CompositeExtract 63 0 - 66: 27(fvec2) FAdd 65 64 - 67: 27(fvec2) CompositeExtract 63 1 - 68: 27(fvec2) FAdd 67 64 - 69: 60 CompositeConstruct 66 68 - Store 62(f32m) 69 - 70: 60 Load 62(f32m) - 71: 27(fvec2) CompositeConstruct 54 54 - 72: 27(fvec2) CompositeExtract 70 0 - 73: 27(fvec2) FSub 72 71 - 74: 27(fvec2) CompositeExtract 70 1 - 75: 27(fvec2) FSub 74 71 - 76: 60 CompositeConstruct 73 75 - Store 62(f32m) 76 - 77: 27(fvec2) Load 40(f32v) - 78: 27(fvec2) FNegate 77 - Store 40(f32v) 78 - 79: 60 Load 62(f32m) - 80: 27(fvec2) CompositeExtract 79 0 - 81: 27(fvec2) FNegate 80 - 82: 27(fvec2) CompositeExtract 79 1 - 83: 27(fvec2) FNegate 82 - 84: 60 CompositeConstruct 81 83 - Store 62(f32m) 84 - 86: 33(ptr) AccessChain 40(f32v) 32 - 87: 26(float) Load 86 - 89: 33(ptr) AccessChain 40(f32v) 88 - 90: 26(float) Load 89 - 91: 26(float) FAdd 87 90 - Store 85(f32) 91 - 92: 33(ptr) AccessChain 40(f32v) 32 - 93: 26(float) Load 92 - 94: 33(ptr) AccessChain 40(f32v) 88 - 95: 26(float) Load 94 - 96: 26(float) FSub 93 95 - Store 85(f32) 96 - 97: 33(ptr) AccessChain 40(f32v) 32 - 98: 26(float) Load 97 - 99: 33(ptr) AccessChain 40(f32v) 88 - 100: 26(float) Load 99 - 101: 26(float) FMul 98 100 - Store 85(f32) 101 - 102: 33(ptr) AccessChain 40(f32v) 32 - 103: 26(float) Load 102 - 104: 33(ptr) AccessChain 40(f32v) 88 - 105: 26(float) Load 104 - 106: 26(float) FDiv 103 105 - Store 85(f32) 106 - 110: 33(ptr) AccessChain 40(f32v) 32 - 111: 26(float) Load 110 - 112: 26(float) Load 85(f32) - 113: 107(bool) FUnordNotEqual 111 112 - Store 109(b) 113 - 114: 33(ptr) AccessChain 40(f32v) 88 - 115: 26(float) Load 114 - 116: 26(float) Load 85(f32) - 117: 107(bool) FOrdEqual 115 116 - Store 109(b) 117 - 118: 33(ptr) AccessChain 40(f32v) 32 - 119: 26(float) Load 118 - 120: 26(float) Load 85(f32) - 121: 107(bool) FOrdGreaterThan 119 120 - Store 109(b) 121 - 122: 33(ptr) AccessChain 40(f32v) 88 - 123: 26(float) Load 122 - 124: 26(float) Load 85(f32) - 125: 107(bool) FOrdLessThan 123 124 - Store 109(b) 125 - 126: 33(ptr) AccessChain 40(f32v) 32 - 127: 26(float) Load 126 - 128: 26(float) Load 85(f32) - 129: 107(bool) FOrdGreaterThanEqual 127 128 - Store 109(b) 129 - 130: 33(ptr) AccessChain 40(f32v) 88 - 131: 26(float) Load 130 - 132: 26(float) Load 85(f32) - 133: 107(bool) FOrdLessThanEqual 131 132 - Store 109(b) 133 - 134: 27(fvec2) Load 40(f32v) - 135: 26(float) Load 85(f32) - 136: 27(fvec2) VectorTimesScalar 134 135 - Store 40(f32v) 136 - 137: 60 Load 62(f32m) - 138: 26(float) Load 85(f32) - 139: 60 MatrixTimesScalar 137 138 - Store 62(f32m) 139 - 140: 60 Load 62(f32m) - 141: 27(fvec2) Load 40(f32v) - 142: 27(fvec2) MatrixTimesVector 140 141 - Store 40(f32v) 142 - 143: 27(fvec2) Load 40(f32v) - 144: 60 Load 62(f32m) - 145: 27(fvec2) VectorTimesMatrix 143 144 - Store 40(f32v) 145 - 146: 60 Load 62(f32m) - 147: 60 Load 62(f32m) - 148: 60 MatrixTimesMatrix 146 147 - Store 62(f32m) 148 - Return - FunctionEnd - 10(typeCast(): 2 Function None 3 - 11: Label - 152(f64v): 151(ptr) Variable Function - 155(f32v): 154(ptr) Variable Function - 160(bv): 159(ptr) Variable Function - 175(f16v): 174(ptr) Variable Function - 183(i8v): 182(ptr) Variable Function - 189(i16v): 188(ptr) Variable Function - 195(i32v): 194(ptr) Variable Function - 201(i64v): 200(ptr) Variable Function - 207(u8v): 206(ptr) Variable Function - 213(u16v): 212(ptr) Variable Function - 218(u32v): 217(ptr) Variable Function - 224(u64v): 223(ptr) Variable Function - 156: 153(fvec3) Load 155(f32v) - 157:150(f64vec3) FConvert 156 - Store 152(f64v) 157 - 161: 158(bvec3) Load 160(bv) - 165: 153(fvec3) Select 161 164 163 - Store 155(f32v) 165 - 166: 153(fvec3) Load 155(f32v) - 167: 158(bvec3) FUnordNotEqual 166 163 - Store 160(bv) 167 - 168:150(f64vec3) Load 152(f64v) - 169: 153(fvec3) FConvert 168 - Store 155(f32v) 169 - 170: 153(fvec3) Load 155(f32v) - 171:150(f64vec3) FConvert 170 - Store 152(f64v) 171 - 176:173(f16vec3) Load 175(f16v) - 177: 153(fvec3) FConvert 176 - Store 155(f32v) 177 - 178: 153(fvec3) Load 155(f32v) - 179:173(f16vec3) FConvert 178 - Store 175(f16v) 179 - 184: 153(fvec3) Load 155(f32v) - 185: 181(i8vec3) ConvertFToS 184 - Store 183(i8v) 185 - 190: 153(fvec3) Load 155(f32v) - 191:187(i16vec3) ConvertFToS 190 - Store 189(i16v) 191 - 196: 153(fvec3) Load 155(f32v) - 197: 193(ivec3) ConvertFToS 196 - Store 195(i32v) 197 - 202: 153(fvec3) Load 155(f32v) - 203:199(i64vec3) ConvertFToS 202 - Store 201(i64v) 203 - 208: 153(fvec3) Load 155(f32v) - 209: 205(i8vec3) ConvertFToU 208 - Store 207(u8v) 209 - 214: 153(fvec3) Load 155(f32v) - 215:211(i16vec3) ConvertFToU 214 - Store 213(u16v) 215 - 219: 153(fvec3) Load 155(f32v) - 220: 216(ivec3) ConvertFToU 219 - Store 218(u32v) 220 - 225: 153(fvec3) Load 155(f32v) - 226:222(i64vec3) ConvertFToU 225 - Store 224(u64v) 226 - Return - FunctionEnd -12(builtinAngleTrigFuncs(): 2 Function None 3 - 13: Label - 229(f32v2): 228(ptr) Variable Function - 230(f32v1): 228(ptr) Variable Function - 231: 227(fvec4) Load 230(f32v1) - 232: 227(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 231 - Store 229(f32v2) 232 - 233: 227(fvec4) Load 230(f32v1) - 234: 227(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 233 - Store 229(f32v2) 234 - 235: 227(fvec4) Load 230(f32v1) - 236: 227(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 235 - Store 229(f32v2) 236 - 237: 227(fvec4) Load 230(f32v1) - 238: 227(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 237 - Store 229(f32v2) 238 - 239: 227(fvec4) Load 230(f32v1) - 240: 227(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 239 - Store 229(f32v2) 240 - 241: 227(fvec4) Load 230(f32v1) - 242: 227(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 241 - Store 229(f32v2) 242 - 243: 227(fvec4) Load 230(f32v1) - 244: 227(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 243 - Store 229(f32v2) 244 - 245: 227(fvec4) Load 230(f32v1) - 246: 227(fvec4) Load 229(f32v2) - 247: 227(fvec4) ExtInst 1(GLSL.std.450) 25(Atan2) 245 246 - Store 229(f32v2) 247 - 248: 227(fvec4) Load 230(f32v1) - 249: 227(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 248 - Store 229(f32v2) 249 - 250: 227(fvec4) Load 230(f32v1) - 251: 227(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 250 - Store 229(f32v2) 251 - 252: 227(fvec4) Load 230(f32v1) - 253: 227(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 252 - Store 229(f32v2) 253 - 254: 227(fvec4) Load 230(f32v1) - 255: 227(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 254 - Store 229(f32v2) 255 - 256: 227(fvec4) Load 230(f32v1) - 257: 227(fvec4) ExtInst 1(GLSL.std.450) 22(Asinh) 256 - Store 229(f32v2) 257 - 258: 227(fvec4) Load 230(f32v1) - 259: 227(fvec4) ExtInst 1(GLSL.std.450) 23(Acosh) 258 - Store 229(f32v2) 259 - 260: 227(fvec4) Load 230(f32v1) - 261: 227(fvec4) ExtInst 1(GLSL.std.450) 24(Atanh) 260 - Store 229(f32v2) 261 - Return - FunctionEnd -14(builtinExpFuncs(): 2 Function None 3 - 15: Label - 262(f32v2): 28(ptr) Variable Function - 263(f32v1): 28(ptr) Variable Function - 264: 27(fvec2) Load 263(f32v1) - 265: 27(fvec2) Load 262(f32v2) - 266: 27(fvec2) ExtInst 1(GLSL.std.450) 26(Pow) 264 265 - Store 262(f32v2) 266 - 267: 27(fvec2) Load 263(f32v1) - 268: 27(fvec2) ExtInst 1(GLSL.std.450) 27(Exp) 267 - Store 262(f32v2) 268 - 269: 27(fvec2) Load 263(f32v1) - 270: 27(fvec2) ExtInst 1(GLSL.std.450) 28(Log) 269 - Store 262(f32v2) 270 - 271: 27(fvec2) Load 263(f32v1) - 272: 27(fvec2) ExtInst 1(GLSL.std.450) 29(Exp2) 271 - Store 262(f32v2) 272 - 273: 27(fvec2) Load 263(f32v1) - 274: 27(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 273 - Store 262(f32v2) 274 - 275: 27(fvec2) Load 263(f32v1) - 276: 27(fvec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 275 - Store 262(f32v2) 276 - 277: 27(fvec2) Load 263(f32v1) - 278: 27(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 277 - Store 262(f32v2) 278 - Return - FunctionEnd -16(builtinCommonFuncs(): 2 Function None 3 - 17: Label - 279(f32v2): 154(ptr) Variable Function - 280(f32v1): 154(ptr) Variable Function - 301(f32): 33(ptr) Variable Function - 305(f32v3): 154(ptr) Variable Function - 345(bv): 159(ptr) Variable Function - 366(b): 108(ptr) Variable Function - 376(iv): 194(ptr) Variable Function - 281: 153(fvec3) Load 280(f32v1) - 282: 153(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 281 - Store 279(f32v2) 282 - 283: 153(fvec3) Load 280(f32v1) - 284: 153(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 283 - Store 279(f32v2) 284 - 285: 153(fvec3) Load 280(f32v1) - 286: 153(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 285 - Store 279(f32v2) 286 - 287: 153(fvec3) Load 280(f32v1) - 288: 153(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 287 - Store 279(f32v2) 288 - 289: 153(fvec3) Load 280(f32v1) - 290: 153(fvec3) ExtInst 1(GLSL.std.450) 1(Round) 289 - Store 279(f32v2) 290 - 291: 153(fvec3) Load 280(f32v1) - 292: 153(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 291 - Store 279(f32v2) 292 - 293: 153(fvec3) Load 280(f32v1) - 294: 153(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 293 - Store 279(f32v2) 294 - 295: 153(fvec3) Load 280(f32v1) - 296: 153(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 295 - Store 279(f32v2) 296 - 297: 153(fvec3) Load 280(f32v1) - 298: 153(fvec3) Load 279(f32v2) - 299: 153(fvec3) FMod 297 298 - Store 279(f32v2) 299 - 300: 153(fvec3) Load 280(f32v1) - 302: 26(float) Load 301(f32) - 303: 153(fvec3) CompositeConstruct 302 302 302 - 304: 153(fvec3) FMod 300 303 - Store 279(f32v2) 304 - 306: 153(fvec3) Load 280(f32v1) - 307: 153(fvec3) ExtInst 1(GLSL.std.450) 35(Modf) 306 279(f32v2) - Store 305(f32v3) 307 - 308: 153(fvec3) Load 280(f32v1) - 309: 153(fvec3) Load 279(f32v2) - 310: 153(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 308 309 - Store 305(f32v3) 310 - 311: 153(fvec3) Load 280(f32v1) - 312: 26(float) Load 301(f32) - 313: 153(fvec3) CompositeConstruct 312 312 312 - 314: 153(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 311 313 - Store 305(f32v3) 314 - 315: 153(fvec3) Load 280(f32v1) - 316: 153(fvec3) Load 279(f32v2) - 317: 153(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 315 316 - Store 305(f32v3) 317 - 318: 153(fvec3) Load 280(f32v1) - 319: 26(float) Load 301(f32) - 320: 153(fvec3) CompositeConstruct 319 319 319 - 321: 153(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 318 320 - Store 305(f32v3) 321 - 322: 153(fvec3) Load 280(f32v1) - 323: 26(float) Load 301(f32) - 324: 33(ptr) AccessChain 279(f32v2) 32 - 325: 26(float) Load 324 - 326: 153(fvec3) CompositeConstruct 323 323 323 - 327: 153(fvec3) CompositeConstruct 325 325 325 - 328: 153(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 322 326 327 - Store 305(f32v3) 328 - 329: 153(fvec3) Load 280(f32v1) - 330: 153(fvec3) Load 279(f32v2) - 331: 26(float) Load 301(f32) - 332: 153(fvec3) CompositeConstruct 331 331 331 - 333: 153(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 329 330 332 - Store 305(f32v3) 333 - 334: 153(fvec3) Load 280(f32v1) - 335: 153(fvec3) Load 279(f32v2) - 336: 26(float) Load 301(f32) - 337: 153(fvec3) CompositeConstruct 336 336 336 - 338: 153(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 334 335 337 - Store 305(f32v3) 338 - 339: 153(fvec3) Load 280(f32v1) - 340: 153(fvec3) Load 279(f32v2) - 341: 153(fvec3) Load 305(f32v3) - 342: 153(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 339 340 341 - Store 305(f32v3) 342 - 343: 153(fvec3) Load 280(f32v1) - 344: 153(fvec3) Load 279(f32v2) - 346: 158(bvec3) Load 345(bv) - 347: 153(fvec3) Select 346 344 343 - Store 305(f32v3) 347 - 348: 153(fvec3) Load 280(f32v1) - 349: 153(fvec3) Load 279(f32v2) - 350: 153(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 348 349 - Store 305(f32v3) 350 - 351: 26(float) Load 301(f32) - 352: 153(fvec3) Load 305(f32v3) - 353: 153(fvec3) CompositeConstruct 351 351 351 - 354: 153(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 353 352 - Store 305(f32v3) 354 - 355: 153(fvec3) Load 280(f32v1) - 356: 153(fvec3) Load 279(f32v2) - 357: 153(fvec3) Load 305(f32v3) - 358: 153(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 355 356 357 - Store 305(f32v3) 358 - 359: 26(float) Load 301(f32) - 360: 33(ptr) AccessChain 280(f32v1) 32 - 361: 26(float) Load 360 - 362: 153(fvec3) Load 279(f32v2) - 363: 153(fvec3) CompositeConstruct 359 359 359 - 364: 153(fvec3) CompositeConstruct 361 361 361 - 365: 153(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 363 364 362 - Store 305(f32v3) 365 - 367: 26(float) Load 301(f32) - 368: 107(bool) IsNan 367 - Store 366(b) 368 - 369: 153(fvec3) Load 280(f32v1) - 370: 158(bvec3) IsInf 369 - Store 345(bv) 370 - 371: 153(fvec3) Load 280(f32v1) - 372: 153(fvec3) Load 279(f32v2) - 373: 153(fvec3) Load 305(f32v3) - 374: 153(fvec3) ExtInst 1(GLSL.std.450) 50(Fma) 371 372 373 - Store 305(f32v3) 374 - 375: 153(fvec3) Load 280(f32v1) - 378:377(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 375 - 379: 193(ivec3) CompositeExtract 378 1 - Store 376(iv) 379 - 380: 153(fvec3) CompositeExtract 378 0 - Store 279(f32v2) 380 - 381: 153(fvec3) Load 280(f32v1) - 382: 193(ivec3) Load 376(iv) - 383: 153(fvec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 381 382 - Store 279(f32v2) 383 - Return - FunctionEnd -18(builtinGeometryFuncs(): 2 Function None 3 - 19: Label - 384(f32): 33(ptr) Variable Function - 385(f32v1): 154(ptr) Variable Function - 389(f32v2): 154(ptr) Variable Function - 395(f32v3): 154(ptr) Variable Function - 386: 153(fvec3) Load 385(f32v1) - 387: 26(float) ExtInst 1(GLSL.std.450) 66(Length) 386 - Store 384(f32) 387 - 388: 153(fvec3) Load 385(f32v1) - 390: 153(fvec3) Load 389(f32v2) - 391: 26(float) ExtInst 1(GLSL.std.450) 67(Distance) 388 390 - Store 384(f32) 391 - 392: 153(fvec3) Load 385(f32v1) - 393: 153(fvec3) Load 389(f32v2) - 394: 26(float) Dot 392 393 - Store 384(f32) 394 - 396: 153(fvec3) Load 385(f32v1) - 397: 153(fvec3) Load 389(f32v2) - 398: 153(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 396 397 - Store 395(f32v3) 398 - 399: 153(fvec3) Load 385(f32v1) - 400: 153(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 399 - Store 389(f32v2) 400 - 401: 153(fvec3) Load 385(f32v1) - 402: 153(fvec3) Load 389(f32v2) - 403: 153(fvec3) Load 395(f32v3) - 404: 153(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 401 402 403 - Store 395(f32v3) 404 - 405: 153(fvec3) Load 385(f32v1) - 406: 153(fvec3) Load 389(f32v2) - 407: 153(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 405 406 - Store 395(f32v3) 407 - 408: 153(fvec3) Load 385(f32v1) - 409: 153(fvec3) Load 389(f32v2) - 410: 26(float) Load 384(f32) - 411: 153(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 408 409 410 - Store 395(f32v3) 411 - Return - FunctionEnd -20(builtinMatrixFuncs(): 2 Function None 3 - 21: Label - 414(f32m3): 413(ptr) Variable Function - 415(f32m1): 413(ptr) Variable Function - 417(f32m2): 413(ptr) Variable Function - 426(f32v1): 154(ptr) Variable Function - 428(f32v2): 28(ptr) Variable Function - 433(f32m4): 432(ptr) Variable Function - 436(f32): 33(ptr) Variable Function - 439(f32m5): 438(ptr) Variable Function - 444(f32m6): 443(ptr) Variable Function - 445(f32m7): 443(ptr) Variable Function - 416: 412 Load 415(f32m1) - 418: 412 Load 417(f32m2) - 419: 153(fvec3) CompositeExtract 416 0 - 420: 153(fvec3) CompositeExtract 418 0 - 421: 153(fvec3) FMul 419 420 - 422: 153(fvec3) CompositeExtract 416 1 - 423: 153(fvec3) CompositeExtract 418 1 - 424: 153(fvec3) FMul 422 423 - 425: 412 CompositeConstruct 421 424 - Store 414(f32m3) 425 - 427: 153(fvec3) Load 426(f32v1) - 429: 27(fvec2) Load 428(f32v2) - 430: 412 OuterProduct 427 429 - Store 415(f32m1) 430 - 434: 412 Load 415(f32m1) - 435: 431 Transpose 434 - Store 433(f32m4) 435 - 440: 437 Load 439(f32m5) - 441: 26(float) ExtInst 1(GLSL.std.450) 33(Determinant) 440 - Store 436(f32) 441 - 446: 442 Load 445(f32m7) - 447: 442 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 446 - Store 444(f32m6) 447 - Return - FunctionEnd -22(builtinVecRelFuncs(): 2 Function None 3 - 23: Label - 448(bv): 159(ptr) Variable Function - 449(f32v1): 154(ptr) Variable Function - 451(f32v2): 154(ptr) Variable Function - 450: 153(fvec3) Load 449(f32v1) - 452: 153(fvec3) Load 451(f32v2) - 453: 158(bvec3) FOrdLessThan 450 452 - Store 448(bv) 453 - 454: 153(fvec3) Load 449(f32v1) - 455: 153(fvec3) Load 451(f32v2) - 456: 158(bvec3) FOrdLessThanEqual 454 455 - Store 448(bv) 456 - 457: 153(fvec3) Load 449(f32v1) - 458: 153(fvec3) Load 451(f32v2) - 459: 158(bvec3) FOrdGreaterThan 457 458 - Store 448(bv) 459 - 460: 153(fvec3) Load 449(f32v1) - 461: 153(fvec3) Load 451(f32v2) - 462: 158(bvec3) FOrdGreaterThanEqual 460 461 - Store 448(bv) 462 - 463: 153(fvec3) Load 449(f32v1) - 464: 153(fvec3) Load 451(f32v2) - 465: 158(bvec3) FOrdEqual 463 464 - Store 448(bv) 465 - 466: 153(fvec3) Load 449(f32v1) - 467: 153(fvec3) Load 451(f32v2) - 468: 158(bvec3) FUnordNotEqual 466 467 - Store 448(bv) 468 - Return - FunctionEnd -24(builtinFragProcFuncs(): 2 Function None 3 - 25: Label - 469(f32v): 154(ptr) Variable Function - 473: 472(ptr) AccessChain 471(if32v) 32 - 474: 26(float) Load 473 - 475: 26(float) DPdx 474 - 476: 33(ptr) AccessChain 469(f32v) 32 - Store 476 475 - 477: 472(ptr) AccessChain 471(if32v) 88 - 478: 26(float) Load 477 - 479: 26(float) DPdy 478 - 480: 33(ptr) AccessChain 469(f32v) 88 - Store 480 479 - 481: 153(fvec3) Load 471(if32v) - 482: 27(fvec2) VectorShuffle 481 481 0 1 - 483: 27(fvec2) DPdxFine 482 - 484: 33(ptr) AccessChain 469(f32v) 32 - 485: 26(float) CompositeExtract 483 0 - Store 484 485 - 486: 33(ptr) AccessChain 469(f32v) 88 - 487: 26(float) CompositeExtract 483 1 - Store 486 487 - 488: 153(fvec3) Load 471(if32v) - 489: 27(fvec2) VectorShuffle 488 488 0 1 - 490: 27(fvec2) DPdyFine 489 - 491: 33(ptr) AccessChain 469(f32v) 32 - 492: 26(float) CompositeExtract 490 0 - Store 491 492 - 493: 33(ptr) AccessChain 469(f32v) 88 - 494: 26(float) CompositeExtract 490 1 - Store 493 494 - 495: 153(fvec3) Load 471(if32v) - 496: 153(fvec3) DPdxCoarse 495 - Store 469(f32v) 496 - 497: 153(fvec3) Load 471(if32v) - 498: 153(fvec3) DPdxCoarse 497 - Store 469(f32v) 498 - 499: 472(ptr) AccessChain 471(if32v) 32 - 500: 26(float) Load 499 - 501: 26(float) Fwidth 500 - 502: 33(ptr) AccessChain 469(f32v) 32 - Store 502 501 - 503: 153(fvec3) Load 471(if32v) - 504: 27(fvec2) VectorShuffle 503 503 0 1 - 505: 27(fvec2) FwidthFine 504 - 506: 33(ptr) AccessChain 469(f32v) 32 - 507: 26(float) CompositeExtract 505 0 - Store 506 507 - 508: 33(ptr) AccessChain 469(f32v) 88 - 509: 26(float) CompositeExtract 505 1 - Store 508 509 - 510: 153(fvec3) Load 471(if32v) - 511: 153(fvec3) FwidthCoarse 510 - Store 469(f32v) 511 - 512: 472(ptr) AccessChain 471(if32v) 32 - 513: 26(float) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 512 - 514: 33(ptr) AccessChain 469(f32v) 32 - Store 514 513 - 516: 153(fvec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 471(if32v) 515 - 517: 27(fvec2) VectorShuffle 516 516 0 1 - 518: 33(ptr) AccessChain 469(f32v) 32 - 519: 26(float) CompositeExtract 517 0 - Store 518 519 - 520: 33(ptr) AccessChain 469(f32v) 88 - 521: 26(float) CompositeExtract 517 1 - Store 520 521 - 524: 153(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 471(if32v) 523 - Store 469(f32v) 524 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.float64.frag.out b/deps/glslang/Test/baseResults/spv.float64.frag.out deleted file mode 100644 index cd5f80d6..00000000 --- a/deps/glslang/Test/baseResults/spv.float64.frag.out +++ /dev/null @@ -1,738 +0,0 @@ -spv.float64.frag -Validation failed -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 485 - - Capability Shader - Capability Float16 - Capability Float64 - Capability Int64 - Capability Int16 - Capability Int8 - Capability DerivativeControl - Capability InterpolationFunction - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 414 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_shader_explicit_arithmetic_types" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float32" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float64" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int16" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int32" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int64" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int8" - Name 4 "main" - Name 6 "literal(" - Name 8 "operators(" - Name 10 "typeCast(" - Name 12 "builtinTranscendentalFuncs(" - Name 14 "builtinCommonFuncs(" - Name 16 "builtinGeometryFuncs(" - Name 18 "builtinMatrixFuncs(" - Name 20 "builtinVecRelFuncs(" - Name 22 "builtinFragProcFuncs(" - Name 27 "f64v" - Name 38 "f64v" - Name 60 "f64m" - Name 83 "f64" - Name 107 "b" - Name 149 "f64v" - Name 152 "bv" - Name 163 "f16v" - Name 171 "i8v" - Name 177 "i16v" - Name 183 "i32v" - Name 189 "i64v" - Name 195 "u8v" - Name 201 "u16v" - Name 206 "u32v" - Name 212 "u64v" - Name 215 "f64v2" - Name 216 "f64v1" - Name 221 "f64v2" - Name 222 "f64v1" - Name 243 "f64" - Name 247 "f64v3" - Name 287 "bv" - Name 308 "b" - Name 318 "iv" - Name 319 "ResType" - Name 326 "f64" - Name 327 "f64v1" - Name 331 "f64v2" - Name 337 "f64v3" - Name 356 "f64m3" - Name 357 "f64m1" - Name 359 "f64m2" - Name 368 "f64v1" - Name 370 "f64v2" - Name 375 "f64m4" - Name 378 "f64" - Name 381 "f64m5" - Name 387 "f64m6" - Name 388 "f64m7" - Name 391 "bv" - Name 392 "f64v1" - Name 394 "f64v2" - Name 412 "f64v" - Name 414 "if64v" - Name 471 "S" - MemberName 471(S) 0 "x" - MemberName 471(S) 1 "y" - MemberName 471(S) 2 "z" - Name 473 "B1" - MemberName 473(B1) 0 "a" - MemberName 473(B1) 1 "b" - MemberName 473(B1) 2 "c" - MemberName 473(B1) 3 "d" - MemberName 473(B1) 4 "e" - MemberName 473(B1) 5 "f" - MemberName 473(B1) 6 "g" - MemberName 473(B1) 7 "h" - Name 475 "" - Name 476 "sf16" - Name 478 "sf" - Name 479 "sd" - Name 480 "f16_to_f" - Name 482 "f16_to_d" - Name 483 "f_to_f16" - Name 484 "d_to_f16" - Decorate 414(if64v) Flat - Decorate 414(if64v) Location 0 - Decorate 469 ArrayStride 16 - Decorate 470 ArrayStride 64 - MemberDecorate 471(S) 0 Offset 0 - MemberDecorate 471(S) 1 Offset 16 - MemberDecorate 471(S) 2 Offset 32 - Decorate 472 ArrayStride 64 - MemberDecorate 473(B1) 0 Offset 0 - MemberDecorate 473(B1) 1 Offset 16 - MemberDecorate 473(B1) 2 Offset 32 - MemberDecorate 473(B1) 3 Offset 64 - MemberDecorate 473(B1) 4 ColMajor - MemberDecorate 473(B1) 4 Offset 96 - MemberDecorate 473(B1) 4 MatrixStride 32 - MemberDecorate 473(B1) 5 ColMajor - MemberDecorate 473(B1) 5 Offset 160 - MemberDecorate 473(B1) 5 MatrixStride 32 - MemberDecorate 473(B1) 6 Offset 288 - MemberDecorate 473(B1) 7 Offset 352 - Decorate 473(B1) Block - Decorate 475 DescriptorSet 0 - Decorate 475 Binding 0 - Decorate 476(sf16) SpecId 100 - Decorate 478(sf) SpecId 101 - Decorate 479(sd) SpecId 102 - 2: TypeVoid - 3: TypeFunction 2 - 24: TypeFloat 64 - 25: TypeVector 24(float64_t) 2 - 26: TypePointer Function 25(f64vec2) - 28:24(float64_t) Constant 2696277389 1051772663 - 29: TypeInt 32 0 - 30: 29(int) Constant 0 - 31: TypePointer Function 24(float64_t) - 33:24(float64_t) Constant 0 3218079744 - 34:24(float64_t) Constant 3951369912 1067366481 - 35: 25(f64vec2) ConstantComposite 33 34 - 52:24(float64_t) Constant 0 1072693248 - 58: TypeMatrix 25(f64vec2) 2 - 59: TypePointer Function 58 - 86: 29(int) Constant 1 - 105: TypeBool - 106: TypePointer Function 105(bool) - 147: TypeVector 24(float64_t) 3 - 148: TypePointer Function 147(f64vec3) - 150: TypeVector 105(bool) 3 - 151: TypePointer Function 150(bvec3) - 154:24(float64_t) Constant 0 0 - 155:147(f64vec3) ConstantComposite 154 154 154 - 156:147(f64vec3) ConstantComposite 52 52 52 - 160: TypeFloat 16 - 161: TypeVector 160(float16_t) 3 - 162: TypePointer Function 161(f16vec3) - 168: TypeInt 8 1 - 169: TypeVector 168(int8_t) 3 - 170: TypePointer Function 169(i8vec3) - 174: TypeInt 16 1 - 175: TypeVector 174(int16_t) 3 - 176: TypePointer Function 175(i16vec3) - 180: TypeInt 32 1 - 181: TypeVector 180(int) 3 - 182: TypePointer Function 181(ivec3) - 186: TypeInt 64 1 - 187: TypeVector 186(int64_t) 3 - 188: TypePointer Function 187(i64vec3) - 192: TypeInt 8 0 - 193: TypeVector 192(int8_t) 3 - 194: TypePointer Function 193(i8vec3) - 198: TypeInt 16 0 - 199: TypeVector 198(int16_t) 3 - 200: TypePointer Function 199(i16vec3) - 204: TypeVector 29(int) 3 - 205: TypePointer Function 204(ivec3) - 209: TypeInt 64 0 - 210: TypeVector 209(int64_t) 3 - 211: TypePointer Function 210(i64vec3) - 319(ResType): TypeStruct 147(f64vec3) 181(ivec3) - 354: TypeMatrix 147(f64vec3) 2 - 355: TypePointer Function 354 - 373: TypeMatrix 25(f64vec2) 3 - 374: TypePointer Function 373 - 379: TypeMatrix 147(f64vec3) 3 - 380: TypePointer Function 379 - 384: TypeVector 24(float64_t) 4 - 385: TypeMatrix 384(f64vec4) 4 - 386: TypePointer Function 385 - 413: TypePointer Input 147(f64vec3) - 414(if64v): 413(ptr) Variable Input - 415: TypePointer Input 24(float64_t) - 458: 180(int) Constant 1 - 465:24(float64_t) Constant 0 1071644672 - 466: 25(f64vec2) ConstantComposite 465 465 - 468: 29(int) Constant 2 - 469: TypeArray 24(float64_t) 468 - 470: TypeArray 354 468 - 471(S): TypeStruct 24(float64_t) 25(f64vec2) 147(f64vec3) - 472: TypeArray 471(S) 468 - 473(B1): TypeStruct 24(float64_t) 25(f64vec2) 147(f64vec3) 469 354 470 471(S) 472 - 474: TypePointer Uniform 473(B1) - 475: 474(ptr) Variable Uniform - 476(sf16):160(float16_t) SpecConstant 12288 - 477: TypeFloat 32 - 478(sf): 477(float) SpecConstant 1048576000 - 479(sd):24(float64_t) SpecConstant 0 1071644672 - 480(f16_to_f): 477(float) SpecConstantOp 115 476(sf16) - 481: 477(float) SpecConstantOp 115 476(sf16) - 482(f16_to_d):24(float64_t) SpecConstantOp 115 481 - 483(f_to_f16):160(float16_t) SpecConstantOp 115 478(sf) - 484(d_to_f16):160(float16_t) SpecConstantOp 115 479(sd) - 4(main): 2 Function None 3 - 5: Label - Return - FunctionEnd - 6(literal(): 2 Function None 3 - 7: Label - 27(f64v): 26(ptr) Variable Function - 32: 31(ptr) AccessChain 27(f64v) 30 - Store 32 28 - 36: 25(f64vec2) Load 27(f64v) - 37: 25(f64vec2) FAdd 36 35 - Store 27(f64v) 37 - Return - FunctionEnd - 8(operators(): 2 Function None 3 - 9: Label - 38(f64v): 26(ptr) Variable Function - 60(f64m): 59(ptr) Variable Function - 83(f64): 31(ptr) Variable Function - 107(b): 106(ptr) Variable Function - 39: 25(f64vec2) Load 38(f64v) - 40: 25(f64vec2) Load 38(f64v) - 41: 25(f64vec2) FAdd 40 39 - Store 38(f64v) 41 - 42: 25(f64vec2) Load 38(f64v) - 43: 25(f64vec2) Load 38(f64v) - 44: 25(f64vec2) FSub 43 42 - Store 38(f64v) 44 - 45: 25(f64vec2) Load 38(f64v) - 46: 25(f64vec2) Load 38(f64v) - 47: 25(f64vec2) FMul 46 45 - Store 38(f64v) 47 - 48: 25(f64vec2) Load 38(f64v) - 49: 25(f64vec2) Load 38(f64v) - 50: 25(f64vec2) FDiv 49 48 - Store 38(f64v) 50 - 51: 25(f64vec2) Load 38(f64v) - 53: 25(f64vec2) CompositeConstruct 52 52 - 54: 25(f64vec2) FAdd 51 53 - Store 38(f64v) 54 - 55: 25(f64vec2) Load 38(f64v) - 56: 25(f64vec2) CompositeConstruct 52 52 - 57: 25(f64vec2) FSub 55 56 - Store 38(f64v) 57 - 61: 58 Load 60(f64m) - 62: 25(f64vec2) CompositeConstruct 52 52 - 63: 25(f64vec2) CompositeExtract 61 0 - 64: 25(f64vec2) FAdd 63 62 - 65: 25(f64vec2) CompositeExtract 61 1 - 66: 25(f64vec2) FAdd 65 62 - 67: 58 CompositeConstruct 64 66 - Store 60(f64m) 67 - 68: 58 Load 60(f64m) - 69: 25(f64vec2) CompositeConstruct 52 52 - 70: 25(f64vec2) CompositeExtract 68 0 - 71: 25(f64vec2) FSub 70 69 - 72: 25(f64vec2) CompositeExtract 68 1 - 73: 25(f64vec2) FSub 72 69 - 74: 58 CompositeConstruct 71 73 - Store 60(f64m) 74 - 75: 25(f64vec2) Load 38(f64v) - 76: 25(f64vec2) FNegate 75 - Store 38(f64v) 76 - 77: 58 Load 60(f64m) - 78: 25(f64vec2) CompositeExtract 77 0 - 79: 25(f64vec2) FNegate 78 - 80: 25(f64vec2) CompositeExtract 77 1 - 81: 25(f64vec2) FNegate 80 - 82: 58 CompositeConstruct 79 81 - Store 60(f64m) 82 - 84: 31(ptr) AccessChain 38(f64v) 30 - 85:24(float64_t) Load 84 - 87: 31(ptr) AccessChain 38(f64v) 86 - 88:24(float64_t) Load 87 - 89:24(float64_t) FAdd 85 88 - Store 83(f64) 89 - 90: 31(ptr) AccessChain 38(f64v) 30 - 91:24(float64_t) Load 90 - 92: 31(ptr) AccessChain 38(f64v) 86 - 93:24(float64_t) Load 92 - 94:24(float64_t) FSub 91 93 - Store 83(f64) 94 - 95: 31(ptr) AccessChain 38(f64v) 30 - 96:24(float64_t) Load 95 - 97: 31(ptr) AccessChain 38(f64v) 86 - 98:24(float64_t) Load 97 - 99:24(float64_t) FMul 96 98 - Store 83(f64) 99 - 100: 31(ptr) AccessChain 38(f64v) 30 - 101:24(float64_t) Load 100 - 102: 31(ptr) AccessChain 38(f64v) 86 - 103:24(float64_t) Load 102 - 104:24(float64_t) FDiv 101 103 - Store 83(f64) 104 - 108: 31(ptr) AccessChain 38(f64v) 30 - 109:24(float64_t) Load 108 - 110:24(float64_t) Load 83(f64) - 111: 105(bool) FUnordNotEqual 109 110 - Store 107(b) 111 - 112: 31(ptr) AccessChain 38(f64v) 86 - 113:24(float64_t) Load 112 - 114:24(float64_t) Load 83(f64) - 115: 105(bool) FOrdEqual 113 114 - Store 107(b) 115 - 116: 31(ptr) AccessChain 38(f64v) 30 - 117:24(float64_t) Load 116 - 118:24(float64_t) Load 83(f64) - 119: 105(bool) FOrdGreaterThan 117 118 - Store 107(b) 119 - 120: 31(ptr) AccessChain 38(f64v) 86 - 121:24(float64_t) Load 120 - 122:24(float64_t) Load 83(f64) - 123: 105(bool) FOrdLessThan 121 122 - Store 107(b) 123 - 124: 31(ptr) AccessChain 38(f64v) 30 - 125:24(float64_t) Load 124 - 126:24(float64_t) Load 83(f64) - 127: 105(bool) FOrdGreaterThanEqual 125 126 - Store 107(b) 127 - 128: 31(ptr) AccessChain 38(f64v) 86 - 129:24(float64_t) Load 128 - 130:24(float64_t) Load 83(f64) - 131: 105(bool) FOrdLessThanEqual 129 130 - Store 107(b) 131 - 132: 25(f64vec2) Load 38(f64v) - 133:24(float64_t) Load 83(f64) - 134: 25(f64vec2) VectorTimesScalar 132 133 - Store 38(f64v) 134 - 135: 58 Load 60(f64m) - 136:24(float64_t) Load 83(f64) - 137: 58 MatrixTimesScalar 135 136 - Store 60(f64m) 137 - 138: 58 Load 60(f64m) - 139: 25(f64vec2) Load 38(f64v) - 140: 25(f64vec2) MatrixTimesVector 138 139 - Store 38(f64v) 140 - 141: 25(f64vec2) Load 38(f64v) - 142: 58 Load 60(f64m) - 143: 25(f64vec2) VectorTimesMatrix 141 142 - Store 38(f64v) 143 - 144: 58 Load 60(f64m) - 145: 58 Load 60(f64m) - 146: 58 MatrixTimesMatrix 144 145 - Store 60(f64m) 146 - Return - FunctionEnd - 10(typeCast(): 2 Function None 3 - 11: Label - 149(f64v): 148(ptr) Variable Function - 152(bv): 151(ptr) Variable Function - 163(f16v): 162(ptr) Variable Function - 171(i8v): 170(ptr) Variable Function - 177(i16v): 176(ptr) Variable Function - 183(i32v): 182(ptr) Variable Function - 189(i64v): 188(ptr) Variable Function - 195(u8v): 194(ptr) Variable Function - 201(u16v): 200(ptr) Variable Function - 206(u32v): 205(ptr) Variable Function - 212(u64v): 211(ptr) Variable Function - 153: 150(bvec3) Load 152(bv) - 157:147(f64vec3) Select 153 156 155 - Store 149(f64v) 157 - 158:147(f64vec3) Load 149(f64v) - 159: 150(bvec3) FUnordNotEqual 158 155 - Store 152(bv) 159 - 164:161(f16vec3) Load 163(f16v) - 165:147(f64vec3) FConvert 164 - Store 149(f64v) 165 - 166:147(f64vec3) Load 149(f64v) - 167:161(f16vec3) FConvert 166 - Store 163(f16v) 167 - 172:147(f64vec3) Load 149(f64v) - 173: 169(i8vec3) ConvertFToS 172 - Store 171(i8v) 173 - 178:147(f64vec3) Load 149(f64v) - 179:175(i16vec3) ConvertFToS 178 - Store 177(i16v) 179 - 184:147(f64vec3) Load 149(f64v) - 185: 181(ivec3) ConvertFToS 184 - Store 183(i32v) 185 - 190:147(f64vec3) Load 149(f64v) - 191:187(i64vec3) ConvertFToS 190 - Store 189(i64v) 191 - 196:147(f64vec3) Load 149(f64v) - 197: 193(i8vec3) ConvertFToU 196 - Store 195(u8v) 197 - 202:147(f64vec3) Load 149(f64v) - 203:199(i16vec3) ConvertFToU 202 - Store 201(u16v) 203 - 207:147(f64vec3) Load 149(f64v) - 208: 204(ivec3) ConvertFToU 207 - Store 206(u32v) 208 - 213:147(f64vec3) Load 149(f64v) - 214:210(i64vec3) ConvertFToU 213 - Store 212(u64v) 214 - Return - FunctionEnd -12(builtinTranscendentalFuncs(): 2 Function None 3 - 13: Label - 215(f64v2): 26(ptr) Variable Function - 216(f64v1): 26(ptr) Variable Function - 217: 25(f64vec2) Load 216(f64v1) - 218: 25(f64vec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 217 - Store 215(f64v2) 218 - 219: 25(f64vec2) Load 216(f64v1) - 220: 25(f64vec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 219 - Store 215(f64v2) 220 - Return - FunctionEnd -14(builtinCommonFuncs(): 2 Function None 3 - 15: Label - 221(f64v2): 148(ptr) Variable Function - 222(f64v1): 148(ptr) Variable Function - 243(f64): 31(ptr) Variable Function - 247(f64v3): 148(ptr) Variable Function - 287(bv): 151(ptr) Variable Function - 308(b): 106(ptr) Variable Function - 318(iv): 182(ptr) Variable Function - 223:147(f64vec3) Load 222(f64v1) - 224:147(f64vec3) ExtInst 1(GLSL.std.450) 4(FAbs) 223 - Store 221(f64v2) 224 - 225:147(f64vec3) Load 222(f64v1) - 226:147(f64vec3) ExtInst 1(GLSL.std.450) 6(FSign) 225 - Store 221(f64v2) 226 - 227:147(f64vec3) Load 222(f64v1) - 228:147(f64vec3) ExtInst 1(GLSL.std.450) 8(Floor) 227 - Store 221(f64v2) 228 - 229:147(f64vec3) Load 222(f64v1) - 230:147(f64vec3) ExtInst 1(GLSL.std.450) 3(Trunc) 229 - Store 221(f64v2) 230 - 231:147(f64vec3) Load 222(f64v1) - 232:147(f64vec3) ExtInst 1(GLSL.std.450) 1(Round) 231 - Store 221(f64v2) 232 - 233:147(f64vec3) Load 222(f64v1) - 234:147(f64vec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 233 - Store 221(f64v2) 234 - 235:147(f64vec3) Load 222(f64v1) - 236:147(f64vec3) ExtInst 1(GLSL.std.450) 9(Ceil) 235 - Store 221(f64v2) 236 - 237:147(f64vec3) Load 222(f64v1) - 238:147(f64vec3) ExtInst 1(GLSL.std.450) 10(Fract) 237 - Store 221(f64v2) 238 - 239:147(f64vec3) Load 222(f64v1) - 240:147(f64vec3) Load 221(f64v2) - 241:147(f64vec3) FMod 239 240 - Store 221(f64v2) 241 - 242:147(f64vec3) Load 222(f64v1) - 244:24(float64_t) Load 243(f64) - 245:147(f64vec3) CompositeConstruct 244 244 244 - 246:147(f64vec3) FMod 242 245 - Store 221(f64v2) 246 - 248:147(f64vec3) Load 222(f64v1) - 249:147(f64vec3) ExtInst 1(GLSL.std.450) 35(Modf) 248 221(f64v2) - Store 247(f64v3) 249 - 250:147(f64vec3) Load 222(f64v1) - 251:147(f64vec3) Load 221(f64v2) - 252:147(f64vec3) ExtInst 1(GLSL.std.450) 37(FMin) 250 251 - Store 247(f64v3) 252 - 253:147(f64vec3) Load 222(f64v1) - 254:24(float64_t) Load 243(f64) - 255:147(f64vec3) CompositeConstruct 254 254 254 - 256:147(f64vec3) ExtInst 1(GLSL.std.450) 37(FMin) 253 255 - Store 247(f64v3) 256 - 257:147(f64vec3) Load 222(f64v1) - 258:147(f64vec3) Load 221(f64v2) - 259:147(f64vec3) ExtInst 1(GLSL.std.450) 40(FMax) 257 258 - Store 247(f64v3) 259 - 260:147(f64vec3) Load 222(f64v1) - 261:24(float64_t) Load 243(f64) - 262:147(f64vec3) CompositeConstruct 261 261 261 - 263:147(f64vec3) ExtInst 1(GLSL.std.450) 40(FMax) 260 262 - Store 247(f64v3) 263 - 264:147(f64vec3) Load 222(f64v1) - 265:24(float64_t) Load 243(f64) - 266: 31(ptr) AccessChain 221(f64v2) 30 - 267:24(float64_t) Load 266 - 268:147(f64vec3) CompositeConstruct 265 265 265 - 269:147(f64vec3) CompositeConstruct 267 267 267 - 270:147(f64vec3) ExtInst 1(GLSL.std.450) 43(FClamp) 264 268 269 - Store 247(f64v3) 270 - 271:147(f64vec3) Load 222(f64v1) - 272:147(f64vec3) Load 221(f64v2) - 273:24(float64_t) Load 243(f64) - 274:147(f64vec3) CompositeConstruct 273 273 273 - 275:147(f64vec3) ExtInst 1(GLSL.std.450) 43(FClamp) 271 272 274 - Store 247(f64v3) 275 - 276:147(f64vec3) Load 222(f64v1) - 277:147(f64vec3) Load 221(f64v2) - 278:24(float64_t) Load 243(f64) - 279:147(f64vec3) CompositeConstruct 278 278 278 - 280:147(f64vec3) ExtInst 1(GLSL.std.450) 46(FMix) 276 277 279 - Store 247(f64v3) 280 - 281:147(f64vec3) Load 222(f64v1) - 282:147(f64vec3) Load 221(f64v2) - 283:147(f64vec3) Load 247(f64v3) - 284:147(f64vec3) ExtInst 1(GLSL.std.450) 46(FMix) 281 282 283 - Store 247(f64v3) 284 - 285:147(f64vec3) Load 222(f64v1) - 286:147(f64vec3) Load 221(f64v2) - 288: 150(bvec3) Load 287(bv) - 289:147(f64vec3) Select 288 286 285 - Store 247(f64v3) 289 - 290:147(f64vec3) Load 222(f64v1) - 291:147(f64vec3) Load 221(f64v2) - 292:147(f64vec3) ExtInst 1(GLSL.std.450) 48(Step) 290 291 - Store 247(f64v3) 292 - 293:24(float64_t) Load 243(f64) - 294:147(f64vec3) Load 247(f64v3) - 295:147(f64vec3) CompositeConstruct 293 293 293 - 296:147(f64vec3) ExtInst 1(GLSL.std.450) 48(Step) 295 294 - Store 247(f64v3) 296 - 297:147(f64vec3) Load 222(f64v1) - 298:147(f64vec3) Load 221(f64v2) - 299:147(f64vec3) Load 247(f64v3) - 300:147(f64vec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 297 298 299 - Store 247(f64v3) 300 - 301:24(float64_t) Load 243(f64) - 302: 31(ptr) AccessChain 222(f64v1) 30 - 303:24(float64_t) Load 302 - 304:147(f64vec3) Load 221(f64v2) - 305:147(f64vec3) CompositeConstruct 301 301 301 - 306:147(f64vec3) CompositeConstruct 303 303 303 - 307:147(f64vec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 305 306 304 - Store 247(f64v3) 307 - 309:24(float64_t) Load 243(f64) - 310: 105(bool) IsNan 309 - Store 308(b) 310 - 311:147(f64vec3) Load 222(f64v1) - 312: 150(bvec3) IsInf 311 - Store 287(bv) 312 - 313:147(f64vec3) Load 222(f64v1) - 314:147(f64vec3) Load 221(f64v2) - 315:147(f64vec3) Load 247(f64v3) - 316:147(f64vec3) ExtInst 1(GLSL.std.450) 50(Fma) 313 314 315 - Store 247(f64v3) 316 - 317:147(f64vec3) Load 222(f64v1) - 320:319(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 317 - 321: 181(ivec3) CompositeExtract 320 1 - Store 318(iv) 321 - 322:147(f64vec3) CompositeExtract 320 0 - Store 221(f64v2) 322 - 323:147(f64vec3) Load 222(f64v1) - 324: 181(ivec3) Load 318(iv) - 325:147(f64vec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 323 324 - Store 221(f64v2) 325 - Return - FunctionEnd -16(builtinGeometryFuncs(): 2 Function None 3 - 17: Label - 326(f64): 31(ptr) Variable Function - 327(f64v1): 148(ptr) Variable Function - 331(f64v2): 148(ptr) Variable Function - 337(f64v3): 148(ptr) Variable Function - 328:147(f64vec3) Load 327(f64v1) - 329:24(float64_t) ExtInst 1(GLSL.std.450) 66(Length) 328 - Store 326(f64) 329 - 330:147(f64vec3) Load 327(f64v1) - 332:147(f64vec3) Load 331(f64v2) - 333:24(float64_t) ExtInst 1(GLSL.std.450) 67(Distance) 330 332 - Store 326(f64) 333 - 334:147(f64vec3) Load 327(f64v1) - 335:147(f64vec3) Load 331(f64v2) - 336:24(float64_t) Dot 334 335 - Store 326(f64) 336 - 338:147(f64vec3) Load 327(f64v1) - 339:147(f64vec3) Load 331(f64v2) - 340:147(f64vec3) ExtInst 1(GLSL.std.450) 68(Cross) 338 339 - Store 337(f64v3) 340 - 341:147(f64vec3) Load 327(f64v1) - 342:147(f64vec3) ExtInst 1(GLSL.std.450) 69(Normalize) 341 - Store 331(f64v2) 342 - 343:147(f64vec3) Load 327(f64v1) - 344:147(f64vec3) Load 331(f64v2) - 345:147(f64vec3) Load 337(f64v3) - 346:147(f64vec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 343 344 345 - Store 337(f64v3) 346 - 347:147(f64vec3) Load 327(f64v1) - 348:147(f64vec3) Load 331(f64v2) - 349:147(f64vec3) ExtInst 1(GLSL.std.450) 71(Reflect) 347 348 - Store 337(f64v3) 349 - 350:147(f64vec3) Load 327(f64v1) - 351:147(f64vec3) Load 331(f64v2) - 352:24(float64_t) Load 326(f64) - 353:147(f64vec3) ExtInst 1(GLSL.std.450) 72(Refract) 350 351 352 - Store 337(f64v3) 353 - Return - FunctionEnd -18(builtinMatrixFuncs(): 2 Function None 3 - 19: Label - 356(f64m3): 355(ptr) Variable Function - 357(f64m1): 355(ptr) Variable Function - 359(f64m2): 355(ptr) Variable Function - 368(f64v1): 148(ptr) Variable Function - 370(f64v2): 26(ptr) Variable Function - 375(f64m4): 374(ptr) Variable Function - 378(f64): 31(ptr) Variable Function - 381(f64m5): 380(ptr) Variable Function - 387(f64m6): 386(ptr) Variable Function - 388(f64m7): 386(ptr) Variable Function - 358: 354 Load 357(f64m1) - 360: 354 Load 359(f64m2) - 361:147(f64vec3) CompositeExtract 358 0 - 362:147(f64vec3) CompositeExtract 360 0 - 363:147(f64vec3) FMul 361 362 - 364:147(f64vec3) CompositeExtract 358 1 - 365:147(f64vec3) CompositeExtract 360 1 - 366:147(f64vec3) FMul 364 365 - 367: 354 CompositeConstruct 363 366 - Store 356(f64m3) 367 - 369:147(f64vec3) Load 368(f64v1) - 371: 25(f64vec2) Load 370(f64v2) - 372: 354 OuterProduct 369 371 - Store 357(f64m1) 372 - 376: 354 Load 357(f64m1) - 377: 373 Transpose 376 - Store 375(f64m4) 377 - 382: 379 Load 381(f64m5) - 383:24(float64_t) ExtInst 1(GLSL.std.450) 33(Determinant) 382 - Store 378(f64) 383 - 389: 385 Load 388(f64m7) - 390: 385 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 389 - Store 387(f64m6) 390 - Return - FunctionEnd -20(builtinVecRelFuncs(): 2 Function None 3 - 21: Label - 391(bv): 151(ptr) Variable Function - 392(f64v1): 148(ptr) Variable Function - 394(f64v2): 148(ptr) Variable Function - 393:147(f64vec3) Load 392(f64v1) - 395:147(f64vec3) Load 394(f64v2) - 396: 150(bvec3) FOrdLessThan 393 395 - Store 391(bv) 396 - 397:147(f64vec3) Load 392(f64v1) - 398:147(f64vec3) Load 394(f64v2) - 399: 150(bvec3) FOrdLessThanEqual 397 398 - Store 391(bv) 399 - 400:147(f64vec3) Load 392(f64v1) - 401:147(f64vec3) Load 394(f64v2) - 402: 150(bvec3) FOrdGreaterThan 400 401 - Store 391(bv) 402 - 403:147(f64vec3) Load 392(f64v1) - 404:147(f64vec3) Load 394(f64v2) - 405: 150(bvec3) FOrdGreaterThanEqual 403 404 - Store 391(bv) 405 - 406:147(f64vec3) Load 392(f64v1) - 407:147(f64vec3) Load 394(f64v2) - 408: 150(bvec3) FOrdEqual 406 407 - Store 391(bv) 408 - 409:147(f64vec3) Load 392(f64v1) - 410:147(f64vec3) Load 394(f64v2) - 411: 150(bvec3) FUnordNotEqual 409 410 - Store 391(bv) 411 - Return - FunctionEnd -22(builtinFragProcFuncs(): 2 Function None 3 - 23: Label - 412(f64v): 148(ptr) Variable Function - 416: 415(ptr) AccessChain 414(if64v) 30 - 417:24(float64_t) Load 416 - 418:24(float64_t) DPdx 417 - 419: 31(ptr) AccessChain 412(f64v) 30 - Store 419 418 - 420: 415(ptr) AccessChain 414(if64v) 86 - 421:24(float64_t) Load 420 - 422:24(float64_t) DPdy 421 - 423: 31(ptr) AccessChain 412(f64v) 86 - Store 423 422 - 424:147(f64vec3) Load 414(if64v) - 425: 25(f64vec2) VectorShuffle 424 424 0 1 - 426: 25(f64vec2) DPdxFine 425 - 427: 31(ptr) AccessChain 412(f64v) 30 - 428:24(float64_t) CompositeExtract 426 0 - Store 427 428 - 429: 31(ptr) AccessChain 412(f64v) 86 - 430:24(float64_t) CompositeExtract 426 1 - Store 429 430 - 431:147(f64vec3) Load 414(if64v) - 432: 25(f64vec2) VectorShuffle 431 431 0 1 - 433: 25(f64vec2) DPdyFine 432 - 434: 31(ptr) AccessChain 412(f64v) 30 - 435:24(float64_t) CompositeExtract 433 0 - Store 434 435 - 436: 31(ptr) AccessChain 412(f64v) 86 - 437:24(float64_t) CompositeExtract 433 1 - Store 436 437 - 438:147(f64vec3) Load 414(if64v) - 439:147(f64vec3) DPdxCoarse 438 - Store 412(f64v) 439 - 440:147(f64vec3) Load 414(if64v) - 441:147(f64vec3) DPdxCoarse 440 - Store 412(f64v) 441 - 442: 415(ptr) AccessChain 414(if64v) 30 - 443:24(float64_t) Load 442 - 444:24(float64_t) Fwidth 443 - 445: 31(ptr) AccessChain 412(f64v) 30 - Store 445 444 - 446:147(f64vec3) Load 414(if64v) - 447: 25(f64vec2) VectorShuffle 446 446 0 1 - 448: 25(f64vec2) FwidthFine 447 - 449: 31(ptr) AccessChain 412(f64v) 30 - 450:24(float64_t) CompositeExtract 448 0 - Store 449 450 - 451: 31(ptr) AccessChain 412(f64v) 86 - 452:24(float64_t) CompositeExtract 448 1 - Store 451 452 - 453:147(f64vec3) Load 414(if64v) - 454:147(f64vec3) FwidthCoarse 453 - Store 412(f64v) 454 - 455: 415(ptr) AccessChain 414(if64v) 30 - 456:24(float64_t) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 455 - 457: 31(ptr) AccessChain 412(f64v) 30 - Store 457 456 - 459:147(f64vec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 414(if64v) 458 - 460: 25(f64vec2) VectorShuffle 459 459 0 1 - 461: 31(ptr) AccessChain 412(f64v) 30 - 462:24(float64_t) CompositeExtract 460 0 - Store 461 462 - 463: 31(ptr) AccessChain 412(f64v) 86 - 464:24(float64_t) CompositeExtract 460 1 - Store 463 464 - 467:147(f64vec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 414(if64v) 466 - Store 412(f64v) 467 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.flowControl.frag.out b/deps/glslang/Test/baseResults/spv.flowControl.frag.out deleted file mode 100644 index efbe63eb..00000000 --- a/deps/glslang/Test/baseResults/spv.flowControl.frag.out +++ /dev/null @@ -1,76 +0,0 @@ -spv.flowControl.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 39 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 11 14 17 19 25 30 35 - ExecutionMode 4 OriginUpperLeft - Source GLSL 140 - Name 4 "main" - Name 9 "color" - Name 11 "BaseColor" - Name 13 "color2" - Name 14 "otherColor" - Name 17 "c" - Name 19 "d" - Name 25 "bigColor" - Name 30 "smallColor" - Name 35 "gl_FragColor" - Decorate 11(BaseColor) Location 5 - Decorate 14(otherColor) Location 3 - Decorate 17(c) Location 4 - Decorate 19(d) Location 0 - Decorate 25(bigColor) Location 1 - Decorate 30(smallColor) Location 2 - Decorate 35(gl_FragColor) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: TypePointer Input 7(fvec4) - 11(BaseColor): 10(ptr) Variable Input - 14(otherColor): 10(ptr) Variable Input - 16: TypePointer Input 6(float) - 17(c): 16(ptr) Variable Input - 19(d): 16(ptr) Variable Input - 21: TypeBool - 25(bigColor): 10(ptr) Variable Input - 30(smallColor): 10(ptr) Variable Input - 34: TypePointer Output 7(fvec4) -35(gl_FragColor): 34(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 9(color): 8(ptr) Variable Function - 13(color2): 8(ptr) Variable Function - 12: 7(fvec4) Load 11(BaseColor) - Store 9(color) 12 - 15: 7(fvec4) Load 14(otherColor) - Store 13(color2) 15 - 18: 6(float) Load 17(c) - 20: 6(float) Load 19(d) - 22: 21(bool) FOrdGreaterThan 18 20 - SelectionMerge 24 None - BranchConditional 22 23 29 - 23: Label - 26: 7(fvec4) Load 25(bigColor) - 27: 7(fvec4) Load 9(color) - 28: 7(fvec4) FAdd 27 26 - Store 9(color) 28 - Branch 24 - 29: Label - 31: 7(fvec4) Load 30(smallColor) - 32: 7(fvec4) Load 9(color) - 33: 7(fvec4) FAdd 32 31 - Store 9(color) 33 - Branch 24 - 24: Label - 36: 7(fvec4) Load 9(color) - 37: 7(fvec4) Load 13(color2) - 38: 7(fvec4) FMul 36 37 - Store 35(gl_FragColor) 38 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.for-complex-condition.vert.out b/deps/glslang/Test/baseResults/spv.for-complex-condition.vert.out deleted file mode 100644 index ca971fd5..00000000 --- a/deps/glslang/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): 8000a -// 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/Test/baseResults/spv.for-continue-break.vert.out b/deps/glslang/Test/baseResults/spv.for-continue-break.vert.out deleted file mode 100644 index 4ba1cb91..00000000 --- a/deps/glslang/Test/baseResults/spv.for-continue-break.vert.out +++ /dev/null @@ -1,81 +0,0 @@ -spv.for-continue-break.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 45 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" - Source ESSL 310 - Name 4 "main" - Name 8 "i" - Name 19 "A" - Name 27 "B" - Name 29 "C" - Name 36 "D" - Name 38 "E" - Name 39 "F" - Name 43 "G" - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Function 6(int) - 9: 6(int) Constant 0 - 16: 6(int) Constant 10 - 17: TypeBool - 20: 6(int) Constant 1 - 22: 6(int) Constant 2 - 31: 6(int) Constant 3 - 40: 6(int) Constant 12 - 44: 6(int) Constant 99 - 4(main): 2 Function None 3 - 5: Label - 8(i): 7(ptr) Variable Function - 19(A): 7(ptr) Variable Function - 27(B): 7(ptr) Variable Function - 29(C): 7(ptr) Variable Function - 36(D): 7(ptr) Variable Function - 38(E): 7(ptr) Variable Function - 39(F): 7(ptr) Variable Function - 43(G): 7(ptr) Variable Function - Store 8(i) 9 - Branch 10 - 10: Label - LoopMerge 12 13 None - Branch 14 - 14: Label - 15: 6(int) Load 8(i) - 18: 17(bool) SLessThan 15 16 - BranchConditional 18 11 12 - 11: Label - Store 19(A) 20 - 21: 6(int) Load 8(i) - 23: 6(int) SMod 21 22 - 24: 17(bool) IEqual 23 9 - SelectionMerge 26 None - BranchConditional 24 25 26 - 25: Label - Store 27(B) 20 - Branch 13 - 26: Label - 30: 6(int) Load 8(i) - 32: 6(int) SMod 30 31 - 33: 17(bool) IEqual 32 9 - SelectionMerge 35 None - BranchConditional 33 34 35 - 34: Label - Store 36(D) 20 - Branch 12 - 35: Label - Store 39(F) 40 - Branch 13 - 13: Label - 41: 6(int) Load 8(i) - 42: 6(int) IAdd 41 20 - Store 8(i) 42 - Branch 10 - 12: Label - Store 43(G) 44 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.for-nobody.vert.out b/deps/glslang/Test/baseResults/spv.for-nobody.vert.out deleted file mode 100644 index b965a58e..00000000 --- a/deps/glslang/Test/baseResults/spv.for-nobody.vert.out +++ /dev/null @@ -1,48 +0,0 @@ -spv.for-nobody.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 25 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 23 - Source GLSL 450 - Name 4 "main" - Name 8 "i" - Name 23 "r" - Decorate 23(r) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Function 6(int) - 9: 6(int) Constant 0 - 16: 6(int) Constant 10 - 17: TypeBool - 20: 6(int) Constant 1 - 22: TypePointer Output 6(int) - 23(r): 22(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 8(i): 7(ptr) Variable Function - Store 8(i) 9 - Branch 10 - 10: Label - LoopMerge 12 13 None - Branch 14 - 14: Label - 15: 6(int) Load 8(i) - 18: 17(bool) SLessThan 15 16 - BranchConditional 18 11 12 - 11: Label - Branch 13 - 13: Label - 19: 6(int) Load 8(i) - 21: 6(int) IAdd 19 20 - Store 8(i) 21 - Branch 10 - 12: Label - 24: 6(int) Load 8(i) - Store 23(r) 24 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.for-notest.vert.out b/deps/glslang/Test/baseResults/spv.for-notest.vert.out deleted file mode 100644 index d3e96032..00000000 --- a/deps/glslang/Test/baseResults/spv.for-notest.vert.out +++ /dev/null @@ -1,42 +0,0 @@ -spv.for-notest.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 20 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 15 - Source GLSL 450 - Name 4 "main" - Name 8 "i" - Name 15 "r" - Decorate 15(r) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Function 6(int) - 9: 6(int) Constant 0 - 14: TypePointer Output 6(int) - 15(r): 14(ptr) Variable Output - 18: 6(int) Constant 1 - 4(main): 2 Function None 3 - 5: Label - 8(i): 7(ptr) Variable Function - Store 8(i) 9 - Branch 10 - 10: Label - LoopMerge 12 13 None - Branch 11 - 11: Label - 16: 6(int) Load 8(i) - Store 15(r) 16 - Branch 13 - 13: Label - 17: 6(int) Load 8(i) - 19: 6(int) IAdd 17 18 - Store 8(i) 19 - Branch 10 - 12: Label - Unreachable - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.for-simple.vert.out b/deps/glslang/Test/baseResults/spv.for-simple.vert.out deleted file mode 100644 index c4de9965..00000000 --- a/deps/glslang/Test/baseResults/spv.for-simple.vert.out +++ /dev/null @@ -1,46 +0,0 @@ -spv.for-simple.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 24 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" - Source ESSL 310 - Name 4 "main" - Name 8 "i" - Name 19 "j" - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Function 6(int) - 9: 6(int) Constant 0 - 16: 6(int) Constant 10 - 17: TypeBool - 20: 6(int) Constant 12 - 22: 6(int) Constant 1 - 4(main): 2 Function None 3 - 5: Label - 8(i): 7(ptr) Variable Function - 19(j): 7(ptr) Variable Function - Store 8(i) 9 - Branch 10 - 10: Label - LoopMerge 12 13 None - Branch 14 - 14: Label - 15: 6(int) Load 8(i) - 18: 17(bool) SLessThan 15 16 - BranchConditional 18 11 12 - 11: Label - Store 19(j) 20 - Branch 13 - 13: Label - 21: 6(int) Load 8(i) - 23: 6(int) IAdd 21 22 - Store 8(i) 23 - Branch 10 - 12: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.forLoop.frag.out b/deps/glslang/Test/baseResults/spv.forLoop.frag.out deleted file mode 100644 index 3a366677..00000000 --- a/deps/glslang/Test/baseResults/spv.forLoop.frag.out +++ /dev/null @@ -1,233 +0,0 @@ -spv.forLoop.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 143 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 11 24 28 36 53 111 - ExecutionMode 4 OriginUpperLeft - Source GLSL 140 - Name 4 "main" - Name 9 "color" - Name 11 "BaseColor" - Name 15 "i" - Name 24 "Count" - Name 28 "bigColor" - Name 36 "gl_FragColor" - Name 39 "sum" - Name 41 "i" - Name 53 "v4" - Name 63 "i" - Name 71 "tv4" - Name 88 "r" - Name 101 "i" - Name 111 "f" - Name 129 "i" - Decorate 11(BaseColor) Location 1 - Decorate 24(Count) Flat - Decorate 24(Count) Location 3 - Decorate 28(bigColor) Location 0 - Decorate 36(gl_FragColor) Location 0 - Decorate 53(v4) Flat - Decorate 53(v4) Location 4 - Decorate 111(f) Location 2 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: TypePointer Input 7(fvec4) - 11(BaseColor): 10(ptr) Variable Input - 13: TypeInt 32 1 - 14: TypePointer Function 13(int) - 16: 13(int) Constant 0 - 23: TypePointer Input 13(int) - 24(Count): 23(ptr) Variable Input - 26: TypeBool - 28(bigColor): 10(ptr) Variable Input - 33: 13(int) Constant 1 - 35: TypePointer Output 7(fvec4) -36(gl_FragColor): 35(ptr) Variable Output - 38: TypePointer Function 6(float) - 40: 6(float) Constant 0 - 48: 13(int) Constant 4 - 50: TypeInt 32 0 - 51: TypeVector 50(int) 4 - 52: TypePointer Input 51(ivec4) - 53(v4): 52(ptr) Variable Input - 55: TypePointer Input 50(int) - 76: 50(int) Constant 4 - 89: TypeVector 6(float) 3 - 92: 50(int) Constant 0 - 95: 50(int) Constant 1 - 98: 50(int) Constant 2 - 110: TypePointer Input 6(float) - 111(f): 110(ptr) Variable Input - 113: 50(int) Constant 3 - 122: TypePointer Output 6(float) - 136: 13(int) Constant 16 - 4(main): 2 Function None 3 - 5: Label - 9(color): 8(ptr) Variable Function - 15(i): 14(ptr) Variable Function - 39(sum): 38(ptr) Variable Function - 41(i): 14(ptr) Variable Function - 63(i): 14(ptr) Variable Function - 71(tv4): 8(ptr) Variable Function - 88(r): 8(ptr) Variable Function - 101(i): 14(ptr) Variable Function - 129(i): 14(ptr) Variable Function - 12: 7(fvec4) Load 11(BaseColor) - Store 9(color) 12 - Store 15(i) 16 - Branch 17 - 17: Label - LoopMerge 19 20 None - Branch 21 - 21: Label - 22: 13(int) Load 15(i) - 25: 13(int) Load 24(Count) - 27: 26(bool) SLessThan 22 25 - BranchConditional 27 18 19 - 18: Label - 29: 7(fvec4) Load 28(bigColor) - 30: 7(fvec4) Load 9(color) - 31: 7(fvec4) FAdd 30 29 - Store 9(color) 31 - Branch 20 - 20: Label - 32: 13(int) Load 15(i) - 34: 13(int) IAdd 32 33 - Store 15(i) 34 - Branch 17 - 19: Label - 37: 7(fvec4) Load 9(color) - Store 36(gl_FragColor) 37 - Store 39(sum) 40 - Store 41(i) 16 - Branch 42 - 42: Label - LoopMerge 44 45 None - Branch 46 - 46: Label - 47: 13(int) Load 41(i) - 49: 26(bool) SLessThan 47 48 - BranchConditional 49 43 44 - 43: Label - 54: 13(int) Load 41(i) - 56: 55(ptr) AccessChain 53(v4) 54 - 57: 50(int) Load 56 - 58: 6(float) ConvertUToF 57 - 59: 6(float) Load 39(sum) - 60: 6(float) FAdd 59 58 - Store 39(sum) 60 - Branch 45 - 45: Label - 61: 13(int) Load 41(i) - 62: 13(int) IAdd 61 33 - Store 41(i) 62 - Branch 42 - 44: Label - Store 63(i) 16 - Branch 64 - 64: Label - LoopMerge 66 67 None - Branch 68 - 68: Label - 69: 13(int) Load 63(i) - 70: 26(bool) SLessThan 69 48 - BranchConditional 70 65 66 - 65: Label - 72: 13(int) Load 63(i) - 73: 13(int) Load 63(i) - 74: 55(ptr) AccessChain 53(v4) 73 - 75: 50(int) Load 74 - 77: 50(int) IMul 75 76 - 78: 6(float) ConvertUToF 77 - 79: 38(ptr) AccessChain 71(tv4) 72 - Store 79 78 - Branch 67 - 67: Label - 80: 13(int) Load 63(i) - 81: 13(int) IAdd 80 33 - Store 63(i) 81 - Branch 64 - 66: Label - 82: 6(float) Load 39(sum) - 83: 7(fvec4) CompositeConstruct 82 82 82 82 - 84: 7(fvec4) Load 71(tv4) - 85: 7(fvec4) FAdd 83 84 - 86: 7(fvec4) Load 36(gl_FragColor) - 87: 7(fvec4) FAdd 86 85 - Store 36(gl_FragColor) 87 - 90: 7(fvec4) Load 11(BaseColor) - 91: 89(fvec3) VectorShuffle 90 90 0 1 2 - 93: 38(ptr) AccessChain 88(r) 92 - 94: 6(float) CompositeExtract 91 0 - Store 93 94 - 96: 38(ptr) AccessChain 88(r) 95 - 97: 6(float) CompositeExtract 91 1 - Store 96 97 - 99: 38(ptr) AccessChain 88(r) 98 - 100: 6(float) CompositeExtract 91 2 - Store 99 100 - Store 101(i) 16 - Branch 102 - 102: Label - LoopMerge 104 105 None - Branch 106 - 106: Label - 107: 13(int) Load 101(i) - 108: 13(int) Load 24(Count) - 109: 26(bool) SLessThan 107 108 - BranchConditional 109 103 104 - 103: Label - 112: 6(float) Load 111(f) - 114: 38(ptr) AccessChain 88(r) 113 - Store 114 112 - Branch 105 - 105: Label - 115: 13(int) Load 101(i) - 116: 13(int) IAdd 115 33 - Store 101(i) 116 - Branch 102 - 104: Label - 117: 7(fvec4) Load 88(r) - 118: 89(fvec3) VectorShuffle 117 117 0 1 2 - 119: 7(fvec4) Load 36(gl_FragColor) - 120: 89(fvec3) VectorShuffle 119 119 0 1 2 - 121: 89(fvec3) FAdd 120 118 - 123: 122(ptr) AccessChain 36(gl_FragColor) 92 - 124: 6(float) CompositeExtract 121 0 - Store 123 124 - 125: 122(ptr) AccessChain 36(gl_FragColor) 95 - 126: 6(float) CompositeExtract 121 1 - Store 125 126 - 127: 122(ptr) AccessChain 36(gl_FragColor) 98 - 128: 6(float) CompositeExtract 121 2 - Store 127 128 - Store 129(i) 16 - Branch 130 - 130: Label - LoopMerge 132 133 None - Branch 134 - 134: Label - 135: 13(int) Load 129(i) - 137: 26(bool) SLessThan 135 136 - BranchConditional 137 131 132 - 131: Label - 138: 6(float) Load 111(f) - 139: 7(fvec4) Load 36(gl_FragColor) - 140: 7(fvec4) VectorTimesScalar 139 138 - Store 36(gl_FragColor) 140 - Branch 133 - 133: Label - 141: 13(int) Load 129(i) - 142: 13(int) IAdd 141 48 - Store 129(i) 142 - Branch 130 - 132: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.forwardFun.frag.out b/deps/glslang/Test/baseResults/spv.forwardFun.frag.out deleted file mode 100644 index f1662865..00000000 --- a/deps/glslang/Test/baseResults/spv.forwardFun.frag.out +++ /dev/null @@ -1,117 +0,0 @@ -spv.forwardFun.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 60 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 20 30 36 59 - ExecutionMode 4 OriginUpperLeft - Source GLSL 140 - Name 4 "main" - Name 6 "bar(" - Name 10 "unreachableReturn(" - Name 16 "foo(vf4;" - Name 15 "bar" - Name 18 "color" - Name 20 "BaseColor" - Name 21 "param" - Name 27 "f" - Name 30 "gl_FragColor" - Name 36 "d" - Name 59 "bigColor" - Decorate 10(unreachableReturn() RelaxedPrecision - Decorate 16(foo(vf4;) RelaxedPrecision - Decorate 15(bar) RelaxedPrecision - Decorate 18(color) RelaxedPrecision - Decorate 20(BaseColor) RelaxedPrecision - Decorate 20(BaseColor) Location 1 - Decorate 21(param) RelaxedPrecision - Decorate 22 RelaxedPrecision - Decorate 23 RelaxedPrecision - Decorate 24 RelaxedPrecision - Decorate 27(f) RelaxedPrecision - Decorate 28 RelaxedPrecision - Decorate 30(gl_FragColor) RelaxedPrecision - Decorate 30(gl_FragColor) Location 0 - Decorate 31 RelaxedPrecision - Decorate 32 RelaxedPrecision - Decorate 33 RelaxedPrecision - Decorate 36(d) RelaxedPrecision - Decorate 36(d) Location 2 - Decorate 37 RelaxedPrecision - Decorate 52 RelaxedPrecision - Decorate 55 RelaxedPrecision - Decorate 56 RelaxedPrecision - Decorate 59(bigColor) RelaxedPrecision - Decorate 59(bigColor) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 8: TypeFloat 32 - 9: TypeFunction 8(float) - 12: TypeVector 8(float) 4 - 13: TypePointer Function 12(fvec4) - 14: TypeFunction 8(float) 13(ptr) - 19: TypePointer Input 12(fvec4) - 20(BaseColor): 19(ptr) Variable Input - 26: TypePointer Function 8(float) - 29: TypePointer Output 12(fvec4) -30(gl_FragColor): 29(ptr) Variable Output - 35: TypePointer Input 8(float) - 36(d): 35(ptr) Variable Input - 38: 8(float) Constant 1082549862 - 39: TypeBool - 43: 8(float) Constant 1067030938 - 46: 8(float) Constant 1083179008 - 49: TypeInt 32 0 - 50: 49(int) Constant 0 - 53: 49(int) Constant 1 - 59(bigColor): 19(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 18(color): 13(ptr) Variable Function - 21(param): 13(ptr) Variable Function - 27(f): 26(ptr) Variable Function - 22: 12(fvec4) Load 20(BaseColor) - Store 21(param) 22 - 23: 8(float) FunctionCall 16(foo(vf4;) 21(param) - 24: 12(fvec4) CompositeConstruct 23 23 23 23 - Store 18(color) 24 - 25: 2 FunctionCall 6(bar() - 28: 8(float) FunctionCall 10(unreachableReturn() - Store 27(f) 28 - 31: 12(fvec4) Load 18(color) - 32: 8(float) Load 27(f) - 33: 12(fvec4) VectorTimesScalar 31 32 - Store 30(gl_FragColor) 33 - Return - FunctionEnd - 6(bar(): 2 Function None 3 - 7: Label - Return - FunctionEnd -10(unreachableReturn(): 8(float) Function None 9 - 11: Label - 34: 2 FunctionCall 6(bar() - 37: 8(float) Load 36(d) - 40: 39(bool) FOrdLessThan 37 38 - SelectionMerge 42 None - BranchConditional 40 41 45 - 41: Label - ReturnValue 43 - 45: Label - ReturnValue 46 - 42: Label - Unreachable - FunctionEnd - 16(foo(vf4;): 8(float) Function None 14 - 15(bar): 13(ptr) FunctionParameter - 17: Label - 51: 26(ptr) AccessChain 15(bar) 50 - 52: 8(float) Load 51 - 54: 26(ptr) AccessChain 15(bar) 53 - 55: 8(float) Load 54 - 56: 8(float) FAdd 52 55 - ReturnValue 56 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.fragmentDensity-es.frag.out b/deps/glslang/Test/baseResults/spv.fragmentDensity-es.frag.out deleted file mode 100644 index 253ce2ee..00000000 --- a/deps/glslang/Test/baseResults/spv.fragmentDensity-es.frag.out +++ /dev/null @@ -1,45 +0,0 @@ -spv.fragmentDensity-es.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 18 - - Capability Shader - Capability FragmentDensityEXT - Extension "SPV_EXT_fragment_invocation_density" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 9 11 14 16 - ExecutionMode 4 OriginUpperLeft - Source ESSL 310 - SourceExtension "GL_EXT_fragment_invocation_density" - Name 4 "main" - Name 9 "FragSize" - Name 11 "gl_FragSizeEXT" - Name 14 "FragInvocationCount" - Name 16 "gl_FragInvocationCountEXT" - Decorate 9(FragSize) Location 0 - Decorate 11(gl_FragSizeEXT) Flat - Decorate 11(gl_FragSizeEXT) BuiltIn FragSizeEXT - Decorate 14(FragInvocationCount) Location 2 - Decorate 16(gl_FragInvocationCountEXT) Flat - Decorate 16(gl_FragInvocationCountEXT) BuiltIn FragInvocationCountEXT - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypeVector 6(int) 2 - 8: TypePointer Output 7(ivec2) - 9(FragSize): 8(ptr) Variable Output - 10: TypePointer Input 7(ivec2) -11(gl_FragSizeEXT): 10(ptr) Variable Input - 13: TypePointer Output 6(int) -14(FragInvocationCount): 13(ptr) Variable Output - 15: TypePointer Input 6(int) -16(gl_FragInvocationCountEXT): 15(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 12: 7(ivec2) Load 11(gl_FragSizeEXT) - Store 9(FragSize) 12 - 17: 6(int) Load 16(gl_FragInvocationCountEXT) - Store 14(FragInvocationCount) 17 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.fragmentDensity-neg.frag.out b/deps/glslang/Test/baseResults/spv.fragmentDensity-neg.frag.out deleted file mode 100644 index 6b5078bd..00000000 --- a/deps/glslang/Test/baseResults/spv.fragmentDensity-neg.frag.out +++ /dev/null @@ -1,7 +0,0 @@ -spv.fragmentDensity-neg.frag -ERROR: 0:10: 'gl_FragSizeEXT' : required extension not requested: GL_EXT_fragment_invocation_density -ERROR: 0:11: 'gl_FragInvocationCountEXT' : required extension not requested: GL_EXT_fragment_invocation_density -ERROR: 2 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.fragmentDensity.frag.out b/deps/glslang/Test/baseResults/spv.fragmentDensity.frag.out deleted file mode 100644 index 4c831f29..00000000 --- a/deps/glslang/Test/baseResults/spv.fragmentDensity.frag.out +++ /dev/null @@ -1,48 +0,0 @@ -spv.fragmentDensity.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 21 - - Capability Shader - Capability FragmentDensityEXT - Extension "SPV_EXT_fragment_invocation_density" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 9 13 17 19 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_fragment_invocation_density" - Name 4 "main" - Name 9 "FragSize" - Name 13 "gl_FragSizeEXT" - Name 17 "FragInvocationCount" - Name 19 "gl_FragInvocationCountEXT" - Decorate 9(FragSize) Location 0 - Decorate 13(gl_FragSizeEXT) Flat - Decorate 13(gl_FragSizeEXT) BuiltIn FragSizeEXT - Decorate 17(FragInvocationCount) Location 2 - Decorate 19(gl_FragInvocationCountEXT) Flat - Decorate 19(gl_FragInvocationCountEXT) BuiltIn FragInvocationCountEXT - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 2 - 8: TypePointer Output 7(fvec2) - 9(FragSize): 8(ptr) Variable Output - 10: TypeInt 32 1 - 11: TypeVector 10(int) 2 - 12: TypePointer Input 11(ivec2) -13(gl_FragSizeEXT): 12(ptr) Variable Input - 16: TypePointer Output 10(int) -17(FragInvocationCount): 16(ptr) Variable Output - 18: TypePointer Input 10(int) -19(gl_FragInvocationCountEXT): 18(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 14: 11(ivec2) Load 13(gl_FragSizeEXT) - 15: 7(fvec2) ConvertSToF 14 - Store 9(FragSize) 15 - 20: 10(int) Load 19(gl_FragInvocationCountEXT) - Store 17(FragInvocationCount) 20 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.fragmentDensity.vert.out b/deps/glslang/Test/baseResults/spv.fragmentDensity.vert.out deleted file mode 100644 index ff77a3ec..00000000 --- a/deps/glslang/Test/baseResults/spv.fragmentDensity.vert.out +++ /dev/null @@ -1,9 +0,0 @@ -spv.fragmentDensity.vert -ERROR: 0:10: 'gl_FragSizeEXT' : undeclared identifier -ERROR: 0:10: 'assign' : cannot convert from ' temp float' to 'layout( location=0) smooth out highp 2-component vector of uint' -ERROR: 0:11: 'gl_FragInvocationCountEXT' : undeclared identifier -ERROR: 0:11: 'assign' : cannot convert from ' temp float' to 'layout( location=2) smooth out highp int' -ERROR: 4 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.fragmentShaderBarycentric.frag.out b/deps/glslang/Test/baseResults/spv.fragmentShaderBarycentric.frag.out deleted file mode 100644 index 2ea8f35f..00000000 --- a/deps/glslang/Test/baseResults/spv.fragmentShaderBarycentric.frag.out +++ /dev/null @@ -1,69 +0,0 @@ -spv.fragmentShaderBarycentric.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 43 - - Capability Shader - Capability FragmentBarycentricNV - Extension "SPV_NV_fragment_shader_barycentric" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 8 11 21 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_NV_fragment_shader_barycentric" - Name 4 "main" - Name 8 "value" - Name 11 "gl_BaryCoordNV" - Name 17 "vertices" - MemberName 17(vertices) 0 "attrib" - Name 21 "v" - Decorate 8(value) Location 1 - Decorate 11(gl_BaryCoordNV) BuiltIn BaryCoordNV - Decorate 17(vertices) Block - Decorate 21(v) Location 0 - Decorate 21(v) PerVertexNV - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypePointer Output 6(float) - 8(value): 7(ptr) Variable Output - 9: TypeVector 6(float) 3 - 10: TypePointer Input 9(fvec3) -11(gl_BaryCoordNV): 10(ptr) Variable Input - 12: TypeInt 32 0 - 13: 12(int) Constant 0 - 14: TypePointer Input 6(float) - 17(vertices): TypeStruct 6(float) - 18: 12(int) Constant 3 - 19: TypeArray 17(vertices) 18 - 20: TypePointer Input 19 - 21(v): 20(ptr) Variable Input - 22: TypeInt 32 1 - 23: 22(int) Constant 0 - 27: 12(int) Constant 1 - 30: 22(int) Constant 1 - 35: 12(int) Constant 2 - 38: 22(int) Constant 2 - 4(main): 2 Function None 3 - 5: Label - 15: 14(ptr) AccessChain 11(gl_BaryCoordNV) 13 - 16: 6(float) Load 15 - 24: 14(ptr) AccessChain 21(v) 23 23 - 25: 6(float) Load 24 - 26: 6(float) FMul 16 25 - 28: 14(ptr) AccessChain 11(gl_BaryCoordNV) 27 - 29: 6(float) Load 28 - 31: 14(ptr) AccessChain 21(v) 30 23 - 32: 6(float) Load 31 - 33: 6(float) FMul 29 32 - 34: 6(float) FAdd 26 33 - 36: 14(ptr) AccessChain 11(gl_BaryCoordNV) 35 - 37: 6(float) Load 36 - 39: 14(ptr) AccessChain 21(v) 38 23 - 40: 6(float) Load 39 - 41: 6(float) FMul 37 40 - 42: 6(float) FAdd 34 41 - Store 8(value) 42 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.fragmentShaderBarycentric2.frag.out b/deps/glslang/Test/baseResults/spv.fragmentShaderBarycentric2.frag.out deleted file mode 100644 index 74a34983..00000000 --- a/deps/glslang/Test/baseResults/spv.fragmentShaderBarycentric2.frag.out +++ /dev/null @@ -1,65 +0,0 @@ -spv.fragmentShaderBarycentric2.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 42 - - Capability Shader - Capability FragmentBarycentricNV - Extension "SPV_NV_fragment_shader_barycentric" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 8 11 20 - ExecutionMode 4 OriginUpperLeft - Source ESSL 320 - SourceExtension "GL_NV_fragment_shader_barycentric" - Name 4 "main" - Name 8 "value" - Name 11 "gl_BaryCoordNoPerspNV" - Name 20 "vertexIDs" - Decorate 8(value) Location 1 - Decorate 11(gl_BaryCoordNoPerspNV) BuiltIn BaryCoordNoPerspNV - Decorate 20(vertexIDs) Location 0 - Decorate 20(vertexIDs) PerVertexNV - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypePointer Output 6(float) - 8(value): 7(ptr) Variable Output - 9: TypeVector 6(float) 3 - 10: TypePointer Input 9(fvec3) -11(gl_BaryCoordNoPerspNV): 10(ptr) Variable Input - 12: TypeInt 32 0 - 13: 12(int) Constant 0 - 14: TypePointer Input 6(float) - 17: 12(int) Constant 3 - 18: TypeArray 6(float) 17 - 19: TypePointer Input 18 - 20(vertexIDs): 19(ptr) Variable Input - 21: TypeInt 32 1 - 22: 21(int) Constant 0 - 26: 12(int) Constant 1 - 29: 21(int) Constant 1 - 34: 12(int) Constant 2 - 37: 21(int) Constant 2 - 4(main): 2 Function None 3 - 5: Label - 15: 14(ptr) AccessChain 11(gl_BaryCoordNoPerspNV) 13 - 16: 6(float) Load 15 - 23: 14(ptr) AccessChain 20(vertexIDs) 22 - 24: 6(float) Load 23 - 25: 6(float) FMul 16 24 - 27: 14(ptr) AccessChain 11(gl_BaryCoordNoPerspNV) 26 - 28: 6(float) Load 27 - 30: 14(ptr) AccessChain 20(vertexIDs) 29 - 31: 6(float) Load 30 - 32: 6(float) FMul 28 31 - 33: 6(float) FAdd 25 32 - 35: 14(ptr) AccessChain 11(gl_BaryCoordNoPerspNV) 34 - 36: 6(float) Load 35 - 38: 14(ptr) AccessChain 20(vertexIDs) 37 - 39: 6(float) Load 38 - 40: 6(float) FMul 36 39 - 41: 6(float) FAdd 33 40 - Store 8(value) 41 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.fsi.frag.out b/deps/glslang/Test/baseResults/spv.fsi.frag.out deleted file mode 100644 index 3e06aed0..00000000 --- a/deps/glslang/Test/baseResults/spv.fsi.frag.out +++ /dev/null @@ -1,56 +0,0 @@ -spv.fsi.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 24 - - Capability Shader - Capability CapabilityFragmentShaderSampleInterlockEXT - Extension "SPV_EXT_fragment_shader_interlock" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - ExecutionMode 4 SampleInterlockOrderedEXT - Source GLSL 450 - SourceExtension "GL_ARB_fragment_shader_interlock" - Name 4 "main" - Name 7 "B1" - MemberName 7(B1) 0 "x" - Name 9 "b1" - Name 17 "im" - MemberDecorate 7(B1) 0 Coherent - MemberDecorate 7(B1) 0 Offset 0 - Decorate 7(B1) BufferBlock - Decorate 9(b1) DescriptorSet 0 - Decorate 9(b1) Binding 0 - Decorate 17(im) DescriptorSet 0 - Decorate 17(im) Binding 1 - Decorate 17(im) Coherent - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7(B1): TypeStruct 6(int) - 8: TypePointer Uniform 7(B1) - 9(b1): 8(ptr) Variable Uniform - 10: 6(int) Constant 0 - 11: 6(int) Constant 1 - 12: TypePointer Uniform 6(int) - 14: TypeFloat 32 - 15: TypeImage 14(float) 2D nonsampled format:Rgba32f - 16: TypePointer UniformConstant 15 - 17(im): 16(ptr) Variable UniformConstant - 19: TypeVector 6(int) 2 - 20: 19(ivec2) ConstantComposite 10 10 - 21: TypeVector 14(float) 4 - 22: 14(float) Constant 0 - 23: 21(fvec4) ConstantComposite 22 22 22 22 - 4(main): 2 Function None 3 - 5: Label - BeginInvocationInterlockEXT - 13: 12(ptr) AccessChain 9(b1) 10 - Store 13 11 - 18: 15 Load 17(im) - ImageWrite 18 20 23 - EndInvocationInterlockEXT - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.fsi_Error.frag.out b/deps/glslang/Test/baseResults/spv.fsi_Error.frag.out deleted file mode 100644 index 4a03436d..00000000 --- a/deps/glslang/Test/baseResults/spv.fsi_Error.frag.out +++ /dev/null @@ -1,14 +0,0 @@ -spv.fsi_Error.frag -ERROR: 0:4: 'pixel_interlock_ordered' : can only apply to 'in' -ERROR: 0:7: 'pixel_interlock_unordered' : cannot change previously set fragment shader interlock ordering -ERROR: 0:11: '' : beginInvocationInterlockARB() must be in main() -ERROR: 0:12: '' : endInvocationInterlockARB() must be in main() -ERROR: 0:17: '' : endInvocationInterlockARB() must only be called once -ERROR: 0:18: '' : beginInvocationInterlockARB() must only be called once -ERROR: 0:18: '' : beginInvocationInterlockARB() must be called before endInvocationInterlockARB() -ERROR: 0:22: '' : endInvocationInterlockARB() cannot be placed after a return from main() -ERROR: 0:22: '' : endInvocationInterlockARB() must only be called once -ERROR: 9 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.fullyCovered.frag.out b/deps/glslang/Test/baseResults/spv.fullyCovered.frag.out deleted file mode 100644 index ae7b426c..00000000 --- a/deps/glslang/Test/baseResults/spv.fullyCovered.frag.out +++ /dev/null @@ -1,38 +0,0 @@ -spv.fullyCovered.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 18 - - Capability Shader - Capability FragmentFullyCoveredEXT - Extension "SPV_EXT_fragment_fully_covered" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 9 12 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_NV_conservative_raster_underestimation" - Name 4 "main" - Name 9 "color" - Name 12 "gl_FragFullyCoveredNV" - Decorate 9(color) Location 0 - Decorate 12(gl_FragFullyCoveredNV) BuiltIn FullyCoveredEXT - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) - 9(color): 8(ptr) Variable Output - 10: TypeBool - 11: TypePointer Input 10(bool) -12(gl_FragFullyCoveredNV): 11(ptr) Variable Input - 14: 6(float) Constant 0 - 15: 6(float) Constant 1065353216 - 4(main): 2 Function None 3 - 5: Label - 13: 10(bool) Load 12(gl_FragFullyCoveredNV) - 16: 6(float) Select 13 15 14 - 17: 7(fvec4) CompositeConstruct 16 14 14 14 - Store 9(color) 17 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.funcall.array.frag.out b/deps/glslang/Test/baseResults/spv.funcall.array.frag.out deleted file mode 100644 index 616ba16c..00000000 --- a/deps/glslang/Test/baseResults/spv.funcall.array.frag.out +++ /dev/null @@ -1,106 +0,0 @@ -spv.funcall.array.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 66 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 27 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - Name 4 "main" - Name 16 "f(vf4[9];i1;" - Name 14 "a" - Name 15 "ix" - Name 20 "indexable" - Name 27 "color" - Name 29 "ub" - MemberName 29(ub) 0 "u" - Name 31 "" - Name 37 "arg" - Name 64 "param" - Decorate 27(color) Location 0 - Decorate 28 ArrayStride 16 - MemberDecorate 29(ub) 0 Offset 0 - Decorate 29(ub) Block - Decorate 31 DescriptorSet 0 - Decorate 31 Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeInt 32 0 - 9: 8(int) Constant 9 - 10: TypeArray 7(fvec4) 9 - 11: TypeInt 32 1 - 12: TypePointer Function 11(int) - 13: TypeFunction 7(fvec4) 10 12(ptr) - 19: TypePointer Function 10 - 21: TypePointer Function 7(fvec4) - 26: TypePointer Output 7(fvec4) - 27(color): 26(ptr) Variable Output - 28: TypeArray 7(fvec4) 9 - 29(ub): TypeStruct 28 - 30: TypePointer Uniform 29(ub) - 31: 30(ptr) Variable Uniform - 32: 11(int) Constant 0 - 33: TypePointer Uniform 28 - 36: 11(int) Constant 2 - 41: 11(int) Constant 1 - 46: 11(int) Constant 3 - 49: 11(int) Constant 4 - 52: 11(int) Constant 5 - 55: 11(int) Constant 6 - 58: 11(int) Constant 7 - 61: 11(int) Constant 8 - 4(main): 2 Function None 3 - 5: Label - 37(arg): 19(ptr) Variable Function - 64(param): 12(ptr) Variable Function - 34: 33(ptr) AccessChain 31 32 - 35: 28 Load 34 - 38: 7(fvec4) CompositeExtract 35 0 - 39: 21(ptr) AccessChain 37(arg) 32 - Store 39 38 - 40: 7(fvec4) CompositeExtract 35 1 - 42: 21(ptr) AccessChain 37(arg) 41 - Store 42 40 - 43: 7(fvec4) CompositeExtract 35 2 - 44: 21(ptr) AccessChain 37(arg) 36 - Store 44 43 - 45: 7(fvec4) CompositeExtract 35 3 - 47: 21(ptr) AccessChain 37(arg) 46 - Store 47 45 - 48: 7(fvec4) CompositeExtract 35 4 - 50: 21(ptr) AccessChain 37(arg) 49 - Store 50 48 - 51: 7(fvec4) CompositeExtract 35 5 - 53: 21(ptr) AccessChain 37(arg) 52 - Store 53 51 - 54: 7(fvec4) CompositeExtract 35 6 - 56: 21(ptr) AccessChain 37(arg) 55 - Store 56 54 - 57: 7(fvec4) CompositeExtract 35 7 - 59: 21(ptr) AccessChain 37(arg) 58 - Store 59 57 - 60: 7(fvec4) CompositeExtract 35 8 - 62: 21(ptr) AccessChain 37(arg) 61 - Store 62 60 - 63: 10 Load 37(arg) - Store 64(param) 36 - 65: 7(fvec4) FunctionCall 16(f(vf4[9];i1;) 63 64(param) - Store 27(color) 65 - Return - FunctionEnd -16(f(vf4[9];i1;): 7(fvec4) Function None 13 - 14(a): 10 FunctionParameter - 15(ix): 12(ptr) FunctionParameter - 17: Label - 20(indexable): 19(ptr) Variable Function - 18: 11(int) Load 15(ix) - Store 20(indexable) 14(a) - 22: 21(ptr) AccessChain 20(indexable) 18 - 23: 7(fvec4) Load 22 - ReturnValue 23 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.functionCall.frag.out b/deps/glslang/Test/baseResults/spv.functionCall.frag.out deleted file mode 100644 index 58b04610..00000000 --- a/deps/glslang/Test/baseResults/spv.functionCall.frag.out +++ /dev/null @@ -1,126 +0,0 @@ -spv.functionCall.frag -WARNING: 0:3: varying deprecated in version 130; may be removed in future release -WARNING: 0:4: varying deprecated in version 130; may be removed in future release -WARNING: 0:5: varying deprecated in version 130; may be removed in future release - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 76 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 35 58 69 75 - ExecutionMode 4 OriginUpperLeft - Source GLSL 140 - Name 4 "main" - Name 11 "foo(vf4;" - Name 10 "bar" - Name 13 "bar(" - Name 16 "unreachableReturn(" - Name 18 "missingReturn(" - Name 21 "h" - Name 35 "d" - Name 56 "color" - Name 58 "BaseColor" - Name 59 "param" - Name 64 "f" - Name 66 "g" - Name 69 "gl_FragColor" - Name 75 "bigColor" - Decorate 35(d) Location 2 - Decorate 58(BaseColor) Location 1 - Decorate 69(gl_FragColor) Location 0 - Decorate 75(bigColor) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 9: TypeFunction 6(float) 8(ptr) - 15: TypeFunction 6(float) - 20: TypePointer Private 6(float) - 21(h): 20(ptr) Variable Private - 22: 6(float) Constant 0 - 23: TypeInt 32 0 - 24: 23(int) Constant 0 - 25: TypePointer Function 6(float) - 28: 23(int) Constant 1 - 34: TypePointer Input 6(float) - 35(d): 34(ptr) Variable Input - 37: 6(float) Constant 1082549862 - 38: TypeBool - 42: 6(float) Constant 1067030938 - 45: 6(float) Constant 1083179008 - 53: 6(float) Constant 1081711002 - 57: TypePointer Input 7(fvec4) - 58(BaseColor): 57(ptr) Variable Input - 68: TypePointer Output 7(fvec4) -69(gl_FragColor): 68(ptr) Variable Output - 75(bigColor): 57(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 56(color): 8(ptr) Variable Function - 59(param): 8(ptr) Variable Function - 64(f): 25(ptr) Variable Function - 66(g): 25(ptr) Variable Function - Store 21(h) 22 - 60: 7(fvec4) Load 58(BaseColor) - Store 59(param) 60 - 61: 6(float) FunctionCall 11(foo(vf4;) 59(param) - 62: 7(fvec4) CompositeConstruct 61 61 61 61 - Store 56(color) 62 - 63: 2 FunctionCall 13(bar() - 65: 6(float) FunctionCall 16(unreachableReturn() - Store 64(f) 65 - 67: 6(float) FunctionCall 18(missingReturn() - Store 66(g) 67 - 70: 7(fvec4) Load 56(color) - 71: 6(float) Load 64(f) - 72: 7(fvec4) VectorTimesScalar 70 71 - 73: 6(float) Load 21(h) - 74: 7(fvec4) VectorTimesScalar 72 73 - Store 69(gl_FragColor) 74 - Return - FunctionEnd - 11(foo(vf4;): 6(float) Function None 9 - 10(bar): 8(ptr) FunctionParameter - 12: Label - 26: 25(ptr) AccessChain 10(bar) 24 - 27: 6(float) Load 26 - 29: 25(ptr) AccessChain 10(bar) 28 - 30: 6(float) Load 29 - 31: 6(float) FAdd 27 30 - ReturnValue 31 - FunctionEnd - 13(bar(): 2 Function None 3 - 14: Label - Return - FunctionEnd -16(unreachableReturn(): 6(float) Function None 15 - 17: Label - 36: 6(float) Load 35(d) - 39: 38(bool) FOrdLessThan 36 37 - SelectionMerge 41 None - BranchConditional 39 40 44 - 40: Label - ReturnValue 42 - 44: Label - ReturnValue 45 - 41: Label - Unreachable - FunctionEnd -18(missingReturn(): 6(float) Function None 15 - 19: Label - 48: 6(float) Load 35(d) - 49: 38(bool) FOrdLessThan 48 45 - SelectionMerge 51 None - BranchConditional 49 50 51 - 50: Label - 52: 6(float) Load 35(d) - Store 21(h) 52 - ReturnValue 53 - 51: Label - 55: 6(float) Undef - ReturnValue 55 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.functionNestedOpaque.vert.out b/deps/glslang/Test/baseResults/spv.functionNestedOpaque.vert.out deleted file mode 100644 index 96a64aa3..00000000 --- a/deps/glslang/Test/baseResults/spv.functionNestedOpaque.vert.out +++ /dev/null @@ -1,68 +0,0 @@ -spv.functionNestedOpaque.vert -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 39 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" - Source GLSL 450 - Name 4 "main" - Name 12 "foo(s21;" - Name 11 "t" - Name 14 "S" - MemberName 14(S) 0 "s" - Name 18 "barc(struct-S-s211;" - Name 17 "p" - Name 21 "bar(struct-S-s211;" - Name 20 "p" - Name 36 "si" - Decorate 36(si) DescriptorSet 0 - Decorate 36(si) Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeImage 6(float) 2D sampled format:Unknown - 8: TypeSampledImage 7 - 9: TypePointer UniformConstant 8 - 10: TypeFunction 2 9(ptr) - 14(S): TypeStruct 8 - 15: TypePointer UniformConstant 14(S) - 16: TypeFunction 2 15(ptr) - 24: TypeVector 6(float) 2 - 25: 6(float) Constant 1056964608 - 26: 24(fvec2) ConstantComposite 25 25 - 27: TypeVector 6(float) 4 - 28: 6(float) Constant 0 - 30: TypeInt 32 1 - 31: 30(int) Constant 0 - 36(si): 15(ptr) Variable UniformConstant - 4(main): 2 Function None 3 - 5: Label - 37: 2 FunctionCall 18(barc(struct-S-s211;) 36(si) - 38: 2 FunctionCall 21(bar(struct-S-s211;) 36(si) - Return - FunctionEnd - 12(foo(s21;): 2 Function None 10 - 11(t): 9(ptr) FunctionParameter - 13: Label - 23: 8 Load 11(t) - 29: 27(fvec4) ImageSampleExplicitLod 23 26 Lod 28 - Return - FunctionEnd -18(barc(struct-S-s211;): 2 Function None 16 - 17(p): 15(ptr) FunctionParameter - 19: Label - 32: 9(ptr) AccessChain 17(p) 31 - 33: 2 FunctionCall 12(foo(s21;) 32 - Return - FunctionEnd -21(bar(struct-S-s211;): 2 Function None 16 - 20(p): 15(ptr) FunctionParameter - 22: Label - 34: 9(ptr) AccessChain 20(p) 31 - 35: 2 FunctionCall 12(foo(s21;) 34 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.functionParameterTypes.frag.out b/deps/glslang/Test/baseResults/spv.functionParameterTypes.frag.out deleted file mode 100644 index 65a33da2..00000000 --- a/deps/glslang/Test/baseResults/spv.functionParameterTypes.frag.out +++ /dev/null @@ -1,62 +0,0 @@ -spv.functionParameterTypes.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 34 - - Capability Shader - Capability Float16 - Capability Int64 - Capability Int16 - Capability Int8 - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source GLSL 460 - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int16" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int64" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int8" - Name 4 "main" - Name 29 "f(i81;u81;i161;u161;i641;u641;f161;" - Name 22 "i8" - Name 23 "u8" - Name 24 "i16" - Name 25 "u16" - Name 26 "i64" - Name 27 "u64" - Name 28 "f16" - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 8 1 - 7: TypePointer Function 6(int8_t) - 8: TypeInt 8 0 - 9: TypePointer Function 8(int8_t) - 10: TypeInt 16 1 - 11: TypePointer Function 10(int16_t) - 12: TypeInt 16 0 - 13: TypePointer Function 12(int16_t) - 14: TypeInt 64 1 - 15: TypePointer Function 14(int64_t) - 16: TypeInt 64 0 - 17: TypePointer Function 16(int64_t) - 18: TypeFloat 16 - 19: TypePointer Function 18(float16_t) - 20: TypeInt 32 1 - 21: TypeFunction 20(int) 7(ptr) 9(ptr) 11(ptr) 13(ptr) 15(ptr) 17(ptr) 19(ptr) - 31: 20(int) Constant 0 - 4(main): 2 Function None 3 - 5: Label - Return - FunctionEnd -29(f(i81;u81;i161;u161;i641;u641;f161;): 20(int) Function None 21 - 22(i8): 7(ptr) FunctionParameter - 23(u8): 9(ptr) FunctionParameter - 24(i16): 11(ptr) FunctionParameter - 25(u16): 13(ptr) FunctionParameter - 26(i64): 15(ptr) FunctionParameter - 27(u64): 17(ptr) FunctionParameter - 28(f16): 19(ptr) FunctionParameter - 30: Label - ReturnValue 31 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.functionSemantics.frag.out b/deps/glslang/Test/baseResults/spv.functionSemantics.frag.out deleted file mode 100644 index f12aae09..00000000 --- a/deps/glslang/Test/baseResults/spv.functionSemantics.frag.out +++ /dev/null @@ -1,228 +0,0 @@ -spv.functionSemantics.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 156 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 76 152 - ExecutionMode 4 OriginUpperLeft - Source GLSL 400 - Name 4 "main" - Name 15 "foo(i1;i1;i1;i1;i1;i1;" - Name 9 "a" - Name 10 "b" - Name 11 "c" - Name 12 "d" - Name 13 "e" - Name 14 "f" - Name 25 "foo2(f1;vf3;i1;" - Name 22 "a" - Name 23 "b" - Name 24 "r" - Name 28 "foo3(" - Name 30 "sum" - Name 76 "u" - Name 89 "t" - Name 92 "s" - MemberName 92(s) 0 "t" - Name 94 "f" - Name 98 "color" - Name 104 "e" - Name 105 "param" - Name 106 "param" - Name 107 "param" - Name 108 "param" - Name 123 "ret" - Name 125 "tempReturn" - Name 130 "tempArg" - Name 131 "param" - Name 132 "param" - Name 133 "param" - Name 136 "arg" - Name 152 "gl_FragColor" - Decorate 76(u) Location 0 - Decorate 152(gl_FragColor) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Function 6(int) - 8: TypeFunction 6(int) 7(ptr) 6(int) 7(ptr) 6(int) 7(ptr) 7(ptr) - 17: TypeFloat 32 - 18: TypePointer Function 17(float) - 19: TypeVector 17(float) 3 - 20: TypePointer Function 19(fvec3) - 21: TypeFunction 6(int) 18(ptr) 20(ptr) 7(ptr) - 27: TypeFunction 6(int) - 38: 6(int) Constant 64 - 43: 6(int) Constant 1024 - 62: 17(float) Constant 1077936128 - 66: 17(float) Constant 1084227584 - 67: TypeInt 32 0 - 68: 67(int) Constant 1 - 75: TypePointer Input 17(float) - 76(u): 75(ptr) Variable Input - 78: 17(float) Constant 1078774989 - 79: TypeBool - 84: 6(int) Constant 1000000 - 86: 6(int) Constant 2000000 - 90: 6(int) Constant 2 - 91: TypeVector 6(int) 4 - 92(s): TypeStruct 91(ivec4) - 93: TypePointer Function 92(s) - 95: 6(int) Constant 0 - 96: 6(int) Constant 32 - 99: 6(int) Constant 1 - 103: 6(int) Constant 8 - 115: 6(int) Constant 128 - 124: TypePointer Private 6(int) - 125(tempReturn): 124(ptr) Variable Private - 126: 17(float) Constant 1082130432 - 127: 17(float) Constant 1065353216 - 128: 17(float) Constant 1073741824 - 129: 19(fvec3) ConstantComposite 127 128 62 - 150: TypeVector 17(float) 4 - 151: TypePointer Output 150(fvec4) -152(gl_FragColor): 151(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 89(t): 7(ptr) Variable Function - 94(f): 93(ptr) Variable Function - 98(color): 7(ptr) Variable Function - 104(e): 7(ptr) Variable Function - 105(param): 7(ptr) Variable Function - 106(param): 7(ptr) Variable Function - 107(param): 7(ptr) Variable Function - 108(param): 7(ptr) Variable Function - 123(ret): 18(ptr) Variable Function - 130(tempArg): 7(ptr) Variable Function - 131(param): 18(ptr) Variable Function - 132(param): 20(ptr) Variable Function - 133(param): 7(ptr) Variable Function - 136(arg): 18(ptr) Variable Function - Store 89(t) 90 - 97: 7(ptr) AccessChain 94(f) 95 68 - Store 97 96 - 100: 6(int) Load 89(t) - 101: 6(int) Load 89(t) - 102: 6(int) IAdd 100 101 - Store 105(param) 99 - Store 106(param) 102 - 109: 7(ptr) AccessChain 94(f) 95 68 - 110: 6(int) Load 109 - Store 108(param) 110 - 111: 6(int) FunctionCall 15(foo(i1;i1;i1;i1;i1;i1;) 105(param) 90 106(param) 103 107(param) 108(param) - 112: 6(int) Load 107(param) - Store 104(e) 112 - 113: 6(int) Load 108(param) - 114: 7(ptr) AccessChain 94(f) 95 68 - Store 114 113 - Store 98(color) 111 - 116: 6(int) Load 104(e) - 117: 7(ptr) AccessChain 94(f) 95 68 - 118: 6(int) Load 117 - 119: 6(int) IAdd 116 118 - 120: 6(int) IMul 115 119 - 121: 6(int) Load 98(color) - 122: 6(int) IAdd 121 120 - Store 98(color) 122 - Store 131(param) 126 - Store 132(param) 129 - 134: 6(int) FunctionCall 25(foo2(f1;vf3;i1;) 131(param) 132(param) 133(param) - 135: 6(int) Load 133(param) - Store 130(tempArg) 135 - Store 125(tempReturn) 134 - 137: 6(int) Load 130(tempArg) - 138: 17(float) ConvertSToF 137 - Store 136(arg) 138 - 139: 6(int) Load 125(tempReturn) - 140: 17(float) ConvertSToF 139 - Store 123(ret) 140 - 141: 17(float) Load 123(ret) - 142: 17(float) Load 136(arg) - 143: 17(float) FAdd 141 142 - 144: 6(int) ConvertFToS 143 - 145: 6(int) Load 98(color) - 146: 6(int) IAdd 145 144 - Store 98(color) 146 - 147: 6(int) FunctionCall 28(foo3() - 148: 6(int) Load 98(color) - 149: 6(int) IAdd 148 147 - Store 98(color) 149 - 153: 6(int) Load 98(color) - 154: 17(float) ConvertSToF 153 - 155: 150(fvec4) CompositeConstruct 154 154 154 154 - Store 152(gl_FragColor) 155 - Return - FunctionEnd -15(foo(i1;i1;i1;i1;i1;i1;): 6(int) Function None 8 - 9(a): 7(ptr) FunctionParameter - 10(b): 6(int) FunctionParameter - 11(c): 7(ptr) FunctionParameter - 12(d): 6(int) FunctionParameter - 13(e): 7(ptr) FunctionParameter - 14(f): 7(ptr) FunctionParameter - 16: Label - 30(sum): 7(ptr) Variable Function - 31: 6(int) Load 9(a) - 32: 6(int) IAdd 31 10(b) - 33: 6(int) Load 11(c) - 34: 6(int) IAdd 32 33 - 35: 6(int) IAdd 34 12(d) - 36: 6(int) Load 14(f) - 37: 6(int) IAdd 35 36 - Store 30(sum) 37 - 39: 6(int) Load 9(a) - 40: 6(int) IMul 39 38 - Store 9(a) 40 - 41: 6(int) Load 11(c) - 42: 6(int) IMul 41 38 - Store 11(c) 42 - Store 13(e) 43 - 44: 6(int) Load 14(f) - 45: 6(int) IMul 44 38 - Store 14(f) 45 - 46: 6(int) Load 9(a) - 47: 6(int) IMul 38 10(b) - 48: 6(int) IAdd 46 47 - 49: 6(int) Load 11(c) - 50: 6(int) IAdd 48 49 - 51: 6(int) IMul 38 12(d) - 52: 6(int) IAdd 50 51 - 53: 6(int) Load 13(e) - 54: 6(int) IAdd 52 53 - 55: 6(int) Load 14(f) - 56: 6(int) IAdd 54 55 - 57: 6(int) Load 30(sum) - 58: 6(int) IAdd 57 56 - Store 30(sum) 58 - 59: 6(int) Load 30(sum) - ReturnValue 59 - FunctionEnd -25(foo2(f1;vf3;i1;): 6(int) Function None 21 - 22(a): 18(ptr) FunctionParameter - 23(b): 20(ptr) FunctionParameter - 24(r): 7(ptr) FunctionParameter - 26: Label - 63: 17(float) Load 22(a) - 64: 17(float) FMul 62 63 - 65: 6(int) ConvertFToS 64 - Store 24(r) 65 - 69: 18(ptr) AccessChain 23(b) 68 - 70: 17(float) Load 69 - 71: 17(float) FMul 66 70 - 72: 6(int) ConvertFToS 71 - ReturnValue 72 - FunctionEnd - 28(foo3(): 6(int) Function None 27 - 29: Label - 77: 17(float) Load 76(u) - 80: 79(bool) FOrdGreaterThan 77 78 - SelectionMerge 82 None - BranchConditional 80 81 82 - 81: Label - Kill - 82: Label - ReturnValue 86 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.glFragColor.frag.out b/deps/glslang/Test/baseResults/spv.glFragColor.frag.out deleted file mode 100644 index df391298..00000000 --- a/deps/glslang/Test/baseResults/spv.glFragColor.frag.out +++ /dev/null @@ -1,27 +0,0 @@ -spv.glFragColor.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 12 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 9 - ExecutionMode 4 OriginLowerLeft - Source GLSL 330 - Name 4 "main" - Name 9 "gl_FragColor" - Decorate 9(gl_FragColor) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) - 9(gl_FragColor): 8(ptr) Variable Output - 10: 6(float) Constant 1065353216 - 11: 7(fvec4) ConstantComposite 10 10 10 10 - 4(main): 2 Function None 3 - 5: Label - Store 9(gl_FragColor) 11 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.glsl.register.autoassign.frag.out b/deps/glslang/Test/baseResults/spv.glsl.register.autoassign.frag.out deleted file mode 100644 index 01df400f..00000000 --- a/deps/glslang/Test/baseResults/spv.glsl.register.autoassign.frag.out +++ /dev/null @@ -1,226 +0,0 @@ -spv.glsl.register.autoassign.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 142 - - Capability Shader - Capability Sampled1D - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 137 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - Name 4 "main" - Name 9 "Func1(" - Name 11 "Func2(" - Name 13 "Func2_unused(" - Name 17 "g_tTex1" - Name 21 "g_sSamp1" - Name 27 "g_tTex2" - Name 29 "g_sSamp2" - Name 39 "g_tTex3" - Name 46 "g_sSamp3" - Name 64 "g_tTex4" - Name 69 "g_sSamp4" - Name 84 "g_tTex5" - Name 86 "g_sSamp5" - Name 93 "MyStruct_t" - MemberName 93(MyStruct_t) 0 "a" - MemberName 93(MyStruct_t) 1 "b" - MemberName 93(MyStruct_t) 2 "c" - Name 95 "myblock" - MemberName 95(myblock) 0 "mystruct" - MemberName 95(myblock) 1 "myvec4_a" - MemberName 95(myblock) 2 "myvec4_b" - MemberName 95(myblock) 3 "myint4_a" - Name 97 "" - Name 119 "g_tTex_unused1" - Name 121 "g_sSamp_unused1" - Name 126 "g_tTex_unused2" - Name 128 "g_sSamp_unused2" - Name 137 "FragColor" - Name 141 "g_tTex_unused3" - Decorate 17(g_tTex1) DescriptorSet 0 - Decorate 17(g_tTex1) Binding 11 - Decorate 21(g_sSamp1) DescriptorSet 0 - Decorate 21(g_sSamp1) Binding 5 - Decorate 27(g_tTex2) DescriptorSet 0 - Decorate 27(g_tTex2) Binding 14 - Decorate 29(g_sSamp2) DescriptorSet 0 - Decorate 29(g_sSamp2) Binding 6 - Decorate 39(g_tTex3) DescriptorSet 0 - Decorate 39(g_tTex3) Binding 13 - Decorate 46(g_sSamp3) DescriptorSet 0 - Decorate 46(g_sSamp3) Binding 7 - Decorate 64(g_tTex4) DescriptorSet 0 - Decorate 64(g_tTex4) Binding 15 - Decorate 69(g_sSamp4) DescriptorSet 0 - Decorate 69(g_sSamp4) Binding 8 - Decorate 84(g_tTex5) DescriptorSet 0 - Decorate 84(g_tTex5) Binding 16 - Decorate 86(g_sSamp5) DescriptorSet 0 - Decorate 86(g_sSamp5) Binding 9 - MemberDecorate 93(MyStruct_t) 0 Offset 0 - MemberDecorate 93(MyStruct_t) 1 Offset 4 - MemberDecorate 93(MyStruct_t) 2 Offset 16 - MemberDecorate 95(myblock) 0 Offset 0 - MemberDecorate 95(myblock) 1 Offset 32 - MemberDecorate 95(myblock) 2 Offset 48 - MemberDecorate 95(myblock) 3 Offset 64 - Decorate 95(myblock) Block - Decorate 97 DescriptorSet 0 - Decorate 97 Binding 24 - Decorate 119(g_tTex_unused1) DescriptorSet 0 - Decorate 119(g_tTex_unused1) Binding 10 - Decorate 121(g_sSamp_unused1) DescriptorSet 0 - Decorate 121(g_sSamp_unused1) Binding 0 - Decorate 126(g_tTex_unused2) DescriptorSet 0 - Decorate 126(g_tTex_unused2) Binding 12 - Decorate 128(g_sSamp_unused2) DescriptorSet 0 - Decorate 128(g_sSamp_unused2) Binding 0 - Decorate 137(FragColor) Location 0 - Decorate 141(g_tTex_unused3) DescriptorSet 0 - Decorate 141(g_tTex_unused3) Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 15: TypeImage 6(float) 1D sampled format:Unknown - 16: TypePointer UniformConstant 15 - 17(g_tTex1): 16(ptr) Variable UniformConstant - 19: TypeSampler - 20: TypePointer UniformConstant 19 - 21(g_sSamp1): 20(ptr) Variable UniformConstant - 23: TypeSampledImage 15 - 25: 6(float) Constant 1036831949 - 27(g_tTex2): 16(ptr) Variable UniformConstant - 29(g_sSamp2): 20(ptr) Variable UniformConstant - 32: 6(float) Constant 1045220557 - 35: TypeInt 32 0 - 36: 35(int) Constant 2 - 37: TypeArray 15 36 - 38: TypePointer UniformConstant 37 - 39(g_tTex3): 38(ptr) Variable UniformConstant - 40: TypeInt 32 1 - 41: 40(int) Constant 0 - 44: TypeArray 19 36 - 45: TypePointer UniformConstant 44 - 46(g_sSamp3): 45(ptr) Variable UniformConstant - 50: 6(float) Constant 1050253722 - 53: 40(int) Constant 1 - 61: 35(int) Constant 3 - 62: TypeArray 15 61 - 63: TypePointer UniformConstant 62 - 64(g_tTex4): 63(ptr) Variable UniformConstant - 67: TypeArray 19 61 - 68: TypePointer UniformConstant 67 - 69(g_sSamp4): 68(ptr) Variable UniformConstant - 73: 6(float) Constant 1053609165 - 76: 40(int) Constant 2 - 84(g_tTex5): 16(ptr) Variable UniformConstant - 86(g_sSamp5): 20(ptr) Variable UniformConstant - 89: 6(float) Constant 1056964608 - 92: TypeVector 6(float) 3 - 93(MyStruct_t): TypeStruct 40(int) 6(float) 92(fvec3) - 94: TypeVector 40(int) 4 - 95(myblock): TypeStruct 93(MyStruct_t) 7(fvec4) 7(fvec4) 94(ivec4) - 96: TypePointer Uniform 95(myblock) - 97: 96(ptr) Variable Uniform - 98: 35(int) Constant 1 - 99: TypePointer Uniform 6(float) -119(g_tTex_unused1): 16(ptr) Variable UniformConstant -121(g_sSamp_unused1): 20(ptr) Variable UniformConstant - 124: 6(float) Constant 1066192077 -126(g_tTex_unused2): 16(ptr) Variable UniformConstant -128(g_sSamp_unused2): 20(ptr) Variable UniformConstant - 131: 6(float) Constant 1067030938 - 136: TypePointer Output 7(fvec4) - 137(FragColor): 136(ptr) Variable Output -141(g_tTex_unused3): 16(ptr) Variable UniformConstant - 4(main): 2 Function None 3 - 5: Label - 138: 7(fvec4) FunctionCall 9(Func1() - 139: 7(fvec4) FunctionCall 11(Func2() - 140: 7(fvec4) FAdd 138 139 - Store 137(FragColor) 140 - Return - FunctionEnd - 9(Func1(): 7(fvec4) Function None 8 - 10: Label - 18: 15 Load 17(g_tTex1) - 22: 19 Load 21(g_sSamp1) - 24: 23 SampledImage 18 22 - 26: 7(fvec4) ImageSampleImplicitLod 24 25 - 28: 15 Load 27(g_tTex2) - 30: 19 Load 29(g_sSamp2) - 31: 23 SampledImage 28 30 - 33: 7(fvec4) ImageSampleImplicitLod 31 32 - 34: 7(fvec4) FAdd 26 33 - 42: 16(ptr) AccessChain 39(g_tTex3) 41 - 43: 15 Load 42 - 47: 20(ptr) AccessChain 46(g_sSamp3) 41 - 48: 19 Load 47 - 49: 23 SampledImage 43 48 - 51: 7(fvec4) ImageSampleImplicitLod 49 50 - 52: 7(fvec4) FAdd 34 51 - 54: 16(ptr) AccessChain 39(g_tTex3) 53 - 55: 15 Load 54 - 56: 20(ptr) AccessChain 46(g_sSamp3) 53 - 57: 19 Load 56 - 58: 23 SampledImage 55 57 - 59: 7(fvec4) ImageSampleImplicitLod 58 50 - 60: 7(fvec4) FAdd 52 59 - 65: 16(ptr) AccessChain 64(g_tTex4) 53 - 66: 15 Load 65 - 70: 20(ptr) AccessChain 69(g_sSamp4) 53 - 71: 19 Load 70 - 72: 23 SampledImage 66 71 - 74: 7(fvec4) ImageSampleImplicitLod 72 73 - 75: 7(fvec4) FAdd 60 74 - 77: 16(ptr) AccessChain 64(g_tTex4) 76 - 78: 15 Load 77 - 79: 20(ptr) AccessChain 69(g_sSamp4) 76 - 80: 19 Load 79 - 81: 23 SampledImage 78 80 - 82: 7(fvec4) ImageSampleImplicitLod 81 73 - 83: 7(fvec4) FAdd 75 82 - 85: 15 Load 84(g_tTex5) - 87: 19 Load 86(g_sSamp5) - 88: 23 SampledImage 85 87 - 90: 7(fvec4) ImageSampleImplicitLod 88 89 - 91: 7(fvec4) FAdd 83 90 - 100: 99(ptr) AccessChain 97 41 76 98 - 101: 6(float) Load 100 - 102: 7(fvec4) CompositeConstruct 101 101 101 101 - 103: 7(fvec4) FAdd 91 102 - ReturnValue 103 - FunctionEnd - 11(Func2(): 7(fvec4) Function None 8 - 12: Label - 106: 15 Load 17(g_tTex1) - 107: 19 Load 21(g_sSamp1) - 108: 23 SampledImage 106 107 - 109: 7(fvec4) ImageSampleImplicitLod 108 25 - 110: 16(ptr) AccessChain 39(g_tTex3) 53 - 111: 15 Load 110 - 112: 20(ptr) AccessChain 46(g_sSamp3) 53 - 113: 19 Load 112 - 114: 23 SampledImage 111 113 - 115: 7(fvec4) ImageSampleImplicitLod 114 50 - 116: 7(fvec4) FAdd 109 115 - ReturnValue 116 - FunctionEnd -13(Func2_unused(): 7(fvec4) Function None 8 - 14: Label - 120: 15 Load 119(g_tTex_unused1) - 122: 19 Load 121(g_sSamp_unused1) - 123: 23 SampledImage 120 122 - 125: 7(fvec4) ImageSampleImplicitLod 123 124 - 127: 15 Load 126(g_tTex_unused2) - 129: 19 Load 128(g_sSamp_unused2) - 130: 23 SampledImage 127 129 - 132: 7(fvec4) ImageSampleImplicitLod 130 131 - 133: 7(fvec4) FAdd 125 132 - ReturnValue 133 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.glsl.register.noautoassign.frag.out b/deps/glslang/Test/baseResults/spv.glsl.register.noautoassign.frag.out deleted file mode 100644 index e475a008..00000000 --- a/deps/glslang/Test/baseResults/spv.glsl.register.noautoassign.frag.out +++ /dev/null @@ -1,226 +0,0 @@ -spv.glsl.register.noautoassign.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 142 - - Capability Shader - Capability Sampled1D - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 137 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - Name 4 "main" - Name 9 "Func1(" - Name 11 "Func2(" - Name 13 "Func2_unused(" - Name 17 "g_tTex1" - Name 21 "g_sSamp1" - Name 27 "g_tTex2" - Name 29 "g_sSamp2" - Name 39 "g_tTex3" - Name 46 "g_sSamp3" - Name 64 "g_tTex4" - Name 69 "g_sSamp4" - Name 84 "g_tTex5" - Name 86 "g_sSamp5" - Name 93 "MyStruct_t" - MemberName 93(MyStruct_t) 0 "a" - MemberName 93(MyStruct_t) 1 "b" - MemberName 93(MyStruct_t) 2 "c" - Name 95 "myblock" - MemberName 95(myblock) 0 "mystruct" - MemberName 95(myblock) 1 "myvec4_a" - MemberName 95(myblock) 2 "myvec4_b" - MemberName 95(myblock) 3 "myint4_a" - Name 97 "" - Name 119 "g_tTex_unused1" - Name 121 "g_sSamp_unused1" - Name 126 "g_tTex_unused2" - Name 128 "g_sSamp_unused2" - Name 137 "FragColor" - Name 141 "g_tTex_unused3" - Decorate 17(g_tTex1) DescriptorSet 0 - Decorate 17(g_tTex1) Binding 17 - Decorate 21(g_sSamp1) DescriptorSet 0 - Decorate 21(g_sSamp1) Binding 5 - Decorate 27(g_tTex2) DescriptorSet 0 - Decorate 27(g_tTex2) Binding 18 - Decorate 29(g_sSamp2) DescriptorSet 0 - Decorate 29(g_sSamp2) Binding 6 - Decorate 39(g_tTex3) DescriptorSet 0 - Decorate 39(g_tTex3) Binding 19 - Decorate 46(g_sSamp3) DescriptorSet 0 - Decorate 46(g_sSamp3) Binding 7 - Decorate 64(g_tTex4) DescriptorSet 0 - Decorate 64(g_tTex4) Binding 20 - Decorate 69(g_sSamp4) DescriptorSet 0 - Decorate 69(g_sSamp4) Binding 8 - Decorate 84(g_tTex5) DescriptorSet 0 - Decorate 84(g_tTex5) Binding 21 - Decorate 86(g_sSamp5) DescriptorSet 0 - Decorate 86(g_sSamp5) Binding 9 - MemberDecorate 93(MyStruct_t) 0 Offset 0 - MemberDecorate 93(MyStruct_t) 1 Offset 4 - MemberDecorate 93(MyStruct_t) 2 Offset 16 - MemberDecorate 95(myblock) 0 Offset 0 - MemberDecorate 95(myblock) 1 Offset 32 - MemberDecorate 95(myblock) 2 Offset 48 - MemberDecorate 95(myblock) 3 Offset 64 - Decorate 95(myblock) Block - Decorate 97 DescriptorSet 0 - Decorate 97 Binding 19 - Decorate 119(g_tTex_unused1) DescriptorSet 0 - Decorate 119(g_tTex_unused1) Binding 22 - Decorate 121(g_sSamp_unused1) DescriptorSet 0 - Decorate 121(g_sSamp_unused1) Binding 10 - Decorate 126(g_tTex_unused2) DescriptorSet 0 - Decorate 126(g_tTex_unused2) Binding 23 - Decorate 128(g_sSamp_unused2) DescriptorSet 0 - Decorate 128(g_sSamp_unused2) Binding 11 - Decorate 137(FragColor) Location 0 - Decorate 141(g_tTex_unused3) DescriptorSet 0 - Decorate 141(g_tTex_unused3) Binding 24 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 15: TypeImage 6(float) 1D sampled format:Unknown - 16: TypePointer UniformConstant 15 - 17(g_tTex1): 16(ptr) Variable UniformConstant - 19: TypeSampler - 20: TypePointer UniformConstant 19 - 21(g_sSamp1): 20(ptr) Variable UniformConstant - 23: TypeSampledImage 15 - 25: 6(float) Constant 1036831949 - 27(g_tTex2): 16(ptr) Variable UniformConstant - 29(g_sSamp2): 20(ptr) Variable UniformConstant - 32: 6(float) Constant 1045220557 - 35: TypeInt 32 0 - 36: 35(int) Constant 2 - 37: TypeArray 15 36 - 38: TypePointer UniformConstant 37 - 39(g_tTex3): 38(ptr) Variable UniformConstant - 40: TypeInt 32 1 - 41: 40(int) Constant 0 - 44: TypeArray 19 36 - 45: TypePointer UniformConstant 44 - 46(g_sSamp3): 45(ptr) Variable UniformConstant - 50: 6(float) Constant 1050253722 - 53: 40(int) Constant 1 - 61: 35(int) Constant 3 - 62: TypeArray 15 61 - 63: TypePointer UniformConstant 62 - 64(g_tTex4): 63(ptr) Variable UniformConstant - 67: TypeArray 19 61 - 68: TypePointer UniformConstant 67 - 69(g_sSamp4): 68(ptr) Variable UniformConstant - 73: 6(float) Constant 1053609165 - 76: 40(int) Constant 2 - 84(g_tTex5): 16(ptr) Variable UniformConstant - 86(g_sSamp5): 20(ptr) Variable UniformConstant - 89: 6(float) Constant 1056964608 - 92: TypeVector 6(float) 3 - 93(MyStruct_t): TypeStruct 40(int) 6(float) 92(fvec3) - 94: TypeVector 40(int) 4 - 95(myblock): TypeStruct 93(MyStruct_t) 7(fvec4) 7(fvec4) 94(ivec4) - 96: TypePointer Uniform 95(myblock) - 97: 96(ptr) Variable Uniform - 98: 35(int) Constant 1 - 99: TypePointer Uniform 6(float) -119(g_tTex_unused1): 16(ptr) Variable UniformConstant -121(g_sSamp_unused1): 20(ptr) Variable UniformConstant - 124: 6(float) Constant 1066192077 -126(g_tTex_unused2): 16(ptr) Variable UniformConstant -128(g_sSamp_unused2): 20(ptr) Variable UniformConstant - 131: 6(float) Constant 1067030938 - 136: TypePointer Output 7(fvec4) - 137(FragColor): 136(ptr) Variable Output -141(g_tTex_unused3): 16(ptr) Variable UniformConstant - 4(main): 2 Function None 3 - 5: Label - 138: 7(fvec4) FunctionCall 9(Func1() - 139: 7(fvec4) FunctionCall 11(Func2() - 140: 7(fvec4) FAdd 138 139 - Store 137(FragColor) 140 - Return - FunctionEnd - 9(Func1(): 7(fvec4) Function None 8 - 10: Label - 18: 15 Load 17(g_tTex1) - 22: 19 Load 21(g_sSamp1) - 24: 23 SampledImage 18 22 - 26: 7(fvec4) ImageSampleImplicitLod 24 25 - 28: 15 Load 27(g_tTex2) - 30: 19 Load 29(g_sSamp2) - 31: 23 SampledImage 28 30 - 33: 7(fvec4) ImageSampleImplicitLod 31 32 - 34: 7(fvec4) FAdd 26 33 - 42: 16(ptr) AccessChain 39(g_tTex3) 41 - 43: 15 Load 42 - 47: 20(ptr) AccessChain 46(g_sSamp3) 41 - 48: 19 Load 47 - 49: 23 SampledImage 43 48 - 51: 7(fvec4) ImageSampleImplicitLod 49 50 - 52: 7(fvec4) FAdd 34 51 - 54: 16(ptr) AccessChain 39(g_tTex3) 53 - 55: 15 Load 54 - 56: 20(ptr) AccessChain 46(g_sSamp3) 53 - 57: 19 Load 56 - 58: 23 SampledImage 55 57 - 59: 7(fvec4) ImageSampleImplicitLod 58 50 - 60: 7(fvec4) FAdd 52 59 - 65: 16(ptr) AccessChain 64(g_tTex4) 53 - 66: 15 Load 65 - 70: 20(ptr) AccessChain 69(g_sSamp4) 53 - 71: 19 Load 70 - 72: 23 SampledImage 66 71 - 74: 7(fvec4) ImageSampleImplicitLod 72 73 - 75: 7(fvec4) FAdd 60 74 - 77: 16(ptr) AccessChain 64(g_tTex4) 76 - 78: 15 Load 77 - 79: 20(ptr) AccessChain 69(g_sSamp4) 76 - 80: 19 Load 79 - 81: 23 SampledImage 78 80 - 82: 7(fvec4) ImageSampleImplicitLod 81 73 - 83: 7(fvec4) FAdd 75 82 - 85: 15 Load 84(g_tTex5) - 87: 19 Load 86(g_sSamp5) - 88: 23 SampledImage 85 87 - 90: 7(fvec4) ImageSampleImplicitLod 88 89 - 91: 7(fvec4) FAdd 83 90 - 100: 99(ptr) AccessChain 97 41 76 98 - 101: 6(float) Load 100 - 102: 7(fvec4) CompositeConstruct 101 101 101 101 - 103: 7(fvec4) FAdd 91 102 - ReturnValue 103 - FunctionEnd - 11(Func2(): 7(fvec4) Function None 8 - 12: Label - 106: 15 Load 17(g_tTex1) - 107: 19 Load 21(g_sSamp1) - 108: 23 SampledImage 106 107 - 109: 7(fvec4) ImageSampleImplicitLod 108 25 - 110: 16(ptr) AccessChain 39(g_tTex3) 53 - 111: 15 Load 110 - 112: 20(ptr) AccessChain 46(g_sSamp3) 53 - 113: 19 Load 112 - 114: 23 SampledImage 111 113 - 115: 7(fvec4) ImageSampleImplicitLod 114 50 - 116: 7(fvec4) FAdd 109 115 - ReturnValue 116 - FunctionEnd -13(Func2_unused(): 7(fvec4) Function None 8 - 14: Label - 120: 15 Load 119(g_tTex_unused1) - 122: 19 Load 121(g_sSamp_unused1) - 123: 23 SampledImage 120 122 - 125: 7(fvec4) ImageSampleImplicitLod 123 124 - 127: 15 Load 126(g_tTex_unused2) - 129: 19 Load 128(g_sSamp_unused2) - 130: 23 SampledImage 127 129 - 132: 7(fvec4) ImageSampleImplicitLod 130 131 - 133: 7(fvec4) FAdd 125 132 - ReturnValue 133 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.hlslDebugInfo.frag.out b/deps/glslang/Test/baseResults/spv.hlslDebugInfo.frag.out deleted file mode 100644 index 40089e7b..00000000 --- a/deps/glslang/Test/baseResults/spv.hlslDebugInfo.frag.out +++ /dev/null @@ -1,58 +0,0 @@ -spv.hlslDebugInfo.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 19 - - Capability Shader - 2: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 5 "newMain" 17 - 1: String "spv.hlslDebugInfo.vert" - Source HLSL 500 1 "// OpModuleProcessed entry-point newMain -// OpModuleProcessed shift-sampler-binding 2 -// OpModuleProcessed shift-texture-binding 4 -// OpModuleProcessed shift-image-binding 1 -// OpModuleProcessed shift-UBO-binding 6 -// OpModuleProcessed shift-ssbo-binding 3 -// OpModuleProcessed shift-uav-binding 5 -// OpModuleProcessed no-storage-format -// OpModuleProcessed resource-set-binding t0 0 0 -// OpModuleProcessed auto-map-bindings -// OpModuleProcessed auto-map-locations -// OpModuleProcessed flatten-uniform-arrays -// OpModuleProcessed hlsl-iomap -// OpModuleProcessed client vulkan100 -// OpModuleProcessed target-env vulkan1.0 -// OpModuleProcessed source-entrypoint origMain -// OpModuleProcessed hlsl-offsets -#line 1 -float4 origMain() : SV_Position -{ - return (float4)0; -} -" - Name 5 "newMain" - Name 10 "@newMain(" - Name 17 "@entryPointOutput" - Decorate 17(@entryPointOutput) BuiltIn Position - 3: TypeVoid - 4: TypeFunction 3 - 7: TypeFloat 32 - 8: TypeVector 7(float) 4 - 9: TypeFunction 8(fvec4) - 12: 7(float) Constant 0 - 13: 8(fvec4) ConstantComposite 12 12 12 12 - 16: TypePointer Output 8(fvec4) -17(@entryPointOutput): 16(ptr) Variable Output - 5(newMain): 3 Function None 4 - 6: Label - Line 1 2 0 - 18: 8(fvec4) FunctionCall 10(@newMain() - Store 17(@entryPointOutput) 18 - Return - FunctionEnd - 10(@newMain(): 8(fvec4) Function None 9 - 11: Label - Line 1 3 0 - ReturnValue 13 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.hlslOffsets.vert.out b/deps/glslang/Test/baseResults/spv.hlslOffsets.vert.out deleted file mode 100644 index cc712839..00000000 --- a/deps/glslang/Test/baseResults/spv.hlslOffsets.vert.out +++ /dev/null @@ -1,77 +0,0 @@ -spv.hlslOffsets.vert -Shader version: 450 -0:? Sequence -0:27 Function Definition: main( ( global void) -0:27 Function Parameters: -0:? Linker Objects -0:? 'anon@0' (layout( binding=0 column_major std430) buffer block{layout( column_major std430) buffer highp float m0, layout( column_major std430) buffer highp 3-component vector of float m4, layout( column_major std430) buffer highp float m16, layout( column_major std430 offset=20) buffer highp 3-component vector of float m20, layout( column_major std430) buffer highp 3-component vector of float m32, layout( column_major std430) buffer highp 2-component vector of float m48, layout( column_major std430) buffer highp 2-component vector of float m56, layout( column_major std430) buffer highp float m64, layout( column_major std430) buffer highp 2-component vector of float m68, layout( column_major std430) buffer highp float m76, layout( column_major std430) buffer highp float m80, layout( column_major std430 offset=88) buffer highp 2-component vector of float m88, layout( column_major std430) buffer highp 2-component vector of float m96, layout( column_major std430) buffer 2-component vector of double m112}) - - -Linked vertex stage: - - -Shader version: 450 -0:? Sequence -0:27 Function Definition: main( ( global void) -0:27 Function Parameters: -0:? Linker Objects -0:? 'anon@0' (layout( binding=0 column_major std430) buffer block{layout( column_major std430) buffer highp float m0, layout( column_major std430) buffer highp 3-component vector of float m4, layout( column_major std430) buffer highp float m16, layout( column_major std430 offset=20) buffer highp 3-component vector of float m20, layout( column_major std430) buffer highp 3-component vector of float m32, layout( column_major std430) buffer highp 2-component vector of float m48, layout( column_major std430) buffer highp 2-component vector of float m56, layout( column_major std430) buffer highp float m64, layout( column_major std430) buffer highp 2-component vector of float m68, layout( column_major std430) buffer highp float m76, layout( column_major std430) buffer highp float m80, layout( column_major std430 offset=88) buffer highp 2-component vector of float m88, layout( column_major std430) buffer highp 2-component vector of float m96, layout( column_major std430) buffer 2-component vector of double m112}) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 14 - - Capability Shader - Capability Float64 - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" - Source GLSL 450 - Name 4 "main" - Name 11 "block" - MemberName 11(block) 0 "m0" - MemberName 11(block) 1 "m4" - MemberName 11(block) 2 "m16" - MemberName 11(block) 3 "m20" - MemberName 11(block) 4 "m32" - MemberName 11(block) 5 "m48" - MemberName 11(block) 6 "m56" - MemberName 11(block) 7 "m64" - MemberName 11(block) 8 "m68" - MemberName 11(block) 9 "m76" - MemberName 11(block) 10 "m80" - MemberName 11(block) 11 "m88" - MemberName 11(block) 12 "m96" - MemberName 11(block) 13 "m112" - Name 13 "" - MemberDecorate 11(block) 0 Offset 0 - MemberDecorate 11(block) 1 Offset 4 - MemberDecorate 11(block) 2 Offset 16 - MemberDecorate 11(block) 3 Offset 20 - MemberDecorate 11(block) 4 Offset 32 - MemberDecorate 11(block) 5 Offset 48 - MemberDecorate 11(block) 6 Offset 56 - MemberDecorate 11(block) 7 Offset 64 - MemberDecorate 11(block) 8 Offset 68 - MemberDecorate 11(block) 9 Offset 76 - MemberDecorate 11(block) 10 Offset 80 - MemberDecorate 11(block) 11 Offset 88 - MemberDecorate 11(block) 12 Offset 96 - MemberDecorate 11(block) 13 Offset 112 - Decorate 11(block) BufferBlock - Decorate 13 DescriptorSet 0 - Decorate 13 Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 3 - 8: TypeVector 6(float) 2 - 9: TypeFloat 64 - 10: TypeVector 9(float64_t) 2 - 11(block): TypeStruct 6(float) 7(fvec3) 6(float) 7(fvec3) 7(fvec3) 8(fvec2) 8(fvec2) 6(float) 8(fvec2) 6(float) 6(float) 8(fvec2) 8(fvec2) 10(f64vec2) - 12: TypePointer Uniform 11(block) - 13: 12(ptr) Variable Uniform - 4(main): 2 Function None 3 - 5: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.image.frag.out b/deps/glslang/Test/baseResults/spv.image.frag.out deleted file mode 100644 index 5fbb922e..00000000 --- a/deps/glslang/Test/baseResults/spv.image.frag.out +++ /dev/null @@ -1,559 +0,0 @@ -spv.image.frag -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 405 - - Capability Shader - Capability StorageImageMultisample - Capability ImageCubeArray - Capability ImageRect - Capability Image1D - Capability ImageBuffer - Capability ImageMSArray - Capability StorageImageExtendedFormats - Capability ImageQuery - Capability StorageImageWriteWithoutFormat - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 143 153 163 258 391 404 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - Name 4 "main" - Name 9 "iv" - Name 15 "i1D" - Name 27 "i2D" - Name 41 "i3D" - Name 48 "iCube" - Name 60 "iCubeArray" - Name 67 "i2DRect" - Name 79 "i1DArray" - Name 91 "i2DArray" - Name 98 "iBuffer" - Name 107 "i2DMS" - Name 119 "i2DMSArray" - Name 138 "v" - Name 143 "ic1D" - Name 153 "ic2D" - Name 163 "ic3D" - Name 240 "ui" - Name 243 "ii1D" - Name 255 "ui2D" - Name 258 "value" - Name 367 "ii2DMS" - Name 377 "ui2DMSArray" - Name 386 "wo2D" - Name 391 "fragData" - Name 404 "ic4D" - Decorate 15(i1D) DescriptorSet 0 - Decorate 15(i1D) Binding 0 - Decorate 27(i2D) DescriptorSet 0 - Decorate 27(i2D) Binding 1 - Decorate 41(i3D) DescriptorSet 0 - Decorate 41(i3D) Binding 2 - Decorate 48(iCube) DescriptorSet 0 - Decorate 48(iCube) Binding 3 - Decorate 60(iCubeArray) DescriptorSet 0 - Decorate 60(iCubeArray) Binding 4 - Decorate 67(i2DRect) DescriptorSet 0 - Decorate 67(i2DRect) Binding 5 - Decorate 79(i1DArray) DescriptorSet 0 - Decorate 79(i1DArray) Binding 6 - Decorate 91(i2DArray) DescriptorSet 0 - Decorate 91(i2DArray) Binding 7 - Decorate 98(iBuffer) DescriptorSet 0 - Decorate 98(iBuffer) Binding 8 - Decorate 107(i2DMS) DescriptorSet 0 - Decorate 107(i2DMS) Binding 9 - Decorate 119(i2DMSArray) DescriptorSet 0 - Decorate 119(i2DMSArray) Binding 10 - Decorate 143(ic1D) Flat - Decorate 143(ic1D) Location 0 - Decorate 153(ic2D) Flat - Decorate 153(ic2D) Location 1 - Decorate 163(ic3D) Flat - Decorate 163(ic3D) Location 2 - Decorate 243(ii1D) DescriptorSet 0 - Decorate 243(ii1D) Binding 11 - Decorate 255(ui2D) DescriptorSet 0 - Decorate 255(ui2D) Binding 12 - Decorate 258(value) Flat - Decorate 258(value) Location 4 - Decorate 367(ii2DMS) DescriptorSet 0 - Decorate 367(ii2DMS) Binding 13 - Decorate 377(ui2DMSArray) DescriptorSet 0 - Decorate 377(ui2DMSArray) Binding 14 - Decorate 386(wo2D) DescriptorSet 0 - Decorate 386(wo2D) Binding 1 - Decorate 386(wo2D) NonReadable - Decorate 391(fragData) Location 0 - Decorate 404(ic4D) Flat - Decorate 404(ic4D) Location 3 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypeVector 6(int) 3 - 8: TypePointer Function 7(ivec3) - 10: 6(int) Constant 0 - 11: 7(ivec3) ConstantComposite 10 10 10 - 12: TypeFloat 32 - 13: TypeImage 12(float) 1D nonsampled format:Rgba32f - 14: TypePointer UniformConstant 13 - 15(i1D): 14(ptr) Variable UniformConstant - 18: TypeInt 32 0 - 19: 18(int) Constant 0 - 20: TypePointer Function 6(int) - 25: TypeImage 12(float) 2D nonsampled format:Rgba32f - 26: TypePointer UniformConstant 25 - 27(i2D): 26(ptr) Variable UniformConstant - 29: TypeVector 6(int) 2 - 36: 18(int) Constant 1 - 39: TypeImage 12(float) 3D nonsampled format:Rgba32f - 40: TypePointer UniformConstant 39 - 41(i3D): 40(ptr) Variable UniformConstant - 46: TypeImage 12(float) Cube nonsampled format:Rgba32f - 47: TypePointer UniformConstant 46 - 48(iCube): 47(ptr) Variable UniformConstant - 58: TypeImage 12(float) Cube array nonsampled format:Rgba32f - 59: TypePointer UniformConstant 58 - 60(iCubeArray): 59(ptr) Variable UniformConstant - 65: TypeImage 12(float) Rect nonsampled format:Rgba32f - 66: TypePointer UniformConstant 65 - 67(i2DRect): 66(ptr) Variable UniformConstant - 77: TypeImage 12(float) 1D array nonsampled format:Rgba32f - 78: TypePointer UniformConstant 77 - 79(i1DArray): 78(ptr) Variable UniformConstant - 89: TypeImage 12(float) 2D array nonsampled format:Rg16 - 90: TypePointer UniformConstant 89 - 91(i2DArray): 90(ptr) Variable UniformConstant - 96: TypeImage 12(float) Buffer nonsampled format:Rgba32f - 97: TypePointer UniformConstant 96 - 98(iBuffer): 97(ptr) Variable UniformConstant - 105: TypeImage 12(float) 2D multi-sampled nonsampled format:Rgba32f - 106: TypePointer UniformConstant 105 - 107(i2DMS): 106(ptr) Variable UniformConstant - 117: TypeImage 12(float) 2D array multi-sampled nonsampled format:Rgba32f - 118: TypePointer UniformConstant 117 - 119(i2DMSArray): 118(ptr) Variable UniformConstant - 136: TypeVector 12(float) 4 - 137: TypePointer Function 136(fvec4) - 139: 12(float) Constant 0 - 140: 136(fvec4) ConstantComposite 139 139 139 139 - 142: TypePointer Input 6(int) - 143(ic1D): 142(ptr) Variable Input - 152: TypePointer Input 29(ivec2) - 153(ic2D): 152(ptr) Variable Input - 162: TypePointer Input 7(ivec3) - 163(ic3D): 162(ptr) Variable Input - 221: 6(int) Constant 1 - 227: 6(int) Constant 2 - 231: 6(int) Constant 3 - 237: 6(int) Constant 4 - 239: TypePointer Function 18(int) - 241: TypeImage 6(int) 1D nonsampled format:R32i - 242: TypePointer UniformConstant 241 - 243(ii1D): 242(ptr) Variable UniformConstant - 245: 6(int) Constant 10 - 246: TypePointer Image 6(int) - 253: TypeImage 18(int) 2D nonsampled format:R32ui - 254: TypePointer UniformConstant 253 - 255(ui2D): 254(ptr) Variable UniformConstant - 257: TypePointer Input 18(int) - 258(value): 257(ptr) Variable Input - 260: TypePointer Image 18(int) - 266: 6(int) Constant 11 - 280: 6(int) Constant 12 - 294: 6(int) Constant 13 - 308: 6(int) Constant 14 - 322: 6(int) Constant 15 - 336: 6(int) Constant 16 - 350: 6(int) Constant 18 - 351: 6(int) Constant 17 - 359: 18(int) Constant 19 - 365: TypeImage 6(int) 2D multi-sampled nonsampled format:R32i - 366: TypePointer UniformConstant 365 - 367(ii2DMS): 366(ptr) Variable UniformConstant - 375: TypeImage 18(int) 2D array multi-sampled nonsampled format:R32ui - 376: TypePointer UniformConstant 375 -377(ui2DMSArray): 376(ptr) Variable UniformConstant - 384: TypeImage 12(float) 2D nonsampled format:Unknown - 385: TypePointer UniformConstant 384 - 386(wo2D): 385(ptr) Variable UniformConstant - 390: TypePointer Output 136(fvec4) - 391(fragData): 390(ptr) Variable Output - 396: TypeBool - 399: TypeVector 396(bool) 4 - 402: TypeVector 6(int) 4 - 403: TypePointer Input 402(ivec4) - 404(ic4D): 403(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 9(iv): 8(ptr) Variable Function - 138(v): 137(ptr) Variable Function - 240(ui): 239(ptr) Variable Function - Store 9(iv) 11 - 16: 13 Load 15(i1D) - 17: 6(int) ImageQuerySize 16 - 21: 20(ptr) AccessChain 9(iv) 19 - 22: 6(int) Load 21 - 23: 6(int) IAdd 22 17 - 24: 20(ptr) AccessChain 9(iv) 19 - Store 24 23 - 28: 25 Load 27(i2D) - 30: 29(ivec2) ImageQuerySize 28 - 31: 7(ivec3) Load 9(iv) - 32: 29(ivec2) VectorShuffle 31 31 0 1 - 33: 29(ivec2) IAdd 32 30 - 34: 20(ptr) AccessChain 9(iv) 19 - 35: 6(int) CompositeExtract 33 0 - Store 34 35 - 37: 20(ptr) AccessChain 9(iv) 36 - 38: 6(int) CompositeExtract 33 1 - Store 37 38 - 42: 39 Load 41(i3D) - 43: 7(ivec3) ImageQuerySize 42 - 44: 7(ivec3) Load 9(iv) - 45: 7(ivec3) IAdd 44 43 - Store 9(iv) 45 - 49: 46 Load 48(iCube) - 50: 29(ivec2) ImageQuerySize 49 - 51: 7(ivec3) Load 9(iv) - 52: 29(ivec2) VectorShuffle 51 51 0 1 - 53: 29(ivec2) IAdd 52 50 - 54: 20(ptr) AccessChain 9(iv) 19 - 55: 6(int) CompositeExtract 53 0 - Store 54 55 - 56: 20(ptr) AccessChain 9(iv) 36 - 57: 6(int) CompositeExtract 53 1 - Store 56 57 - 61: 58 Load 60(iCubeArray) - 62: 7(ivec3) ImageQuerySize 61 - 63: 7(ivec3) Load 9(iv) - 64: 7(ivec3) IAdd 63 62 - Store 9(iv) 64 - 68: 65 Load 67(i2DRect) - 69: 29(ivec2) ImageQuerySize 68 - 70: 7(ivec3) Load 9(iv) - 71: 29(ivec2) VectorShuffle 70 70 0 1 - 72: 29(ivec2) IAdd 71 69 - 73: 20(ptr) AccessChain 9(iv) 19 - 74: 6(int) CompositeExtract 72 0 - Store 73 74 - 75: 20(ptr) AccessChain 9(iv) 36 - 76: 6(int) CompositeExtract 72 1 - Store 75 76 - 80: 77 Load 79(i1DArray) - 81: 29(ivec2) ImageQuerySize 80 - 82: 7(ivec3) Load 9(iv) - 83: 29(ivec2) VectorShuffle 82 82 0 1 - 84: 29(ivec2) IAdd 83 81 - 85: 20(ptr) AccessChain 9(iv) 19 - 86: 6(int) CompositeExtract 84 0 - Store 85 86 - 87: 20(ptr) AccessChain 9(iv) 36 - 88: 6(int) CompositeExtract 84 1 - Store 87 88 - 92: 89 Load 91(i2DArray) - 93: 7(ivec3) ImageQuerySize 92 - 94: 7(ivec3) Load 9(iv) - 95: 7(ivec3) IAdd 94 93 - Store 9(iv) 95 - 99: 96 Load 98(iBuffer) - 100: 6(int) ImageQuerySize 99 - 101: 20(ptr) AccessChain 9(iv) 19 - 102: 6(int) Load 101 - 103: 6(int) IAdd 102 100 - 104: 20(ptr) AccessChain 9(iv) 19 - Store 104 103 - 108: 105 Load 107(i2DMS) - 109: 29(ivec2) ImageQuerySize 108 - 110: 7(ivec3) Load 9(iv) - 111: 29(ivec2) VectorShuffle 110 110 0 1 - 112: 29(ivec2) IAdd 111 109 - 113: 20(ptr) AccessChain 9(iv) 19 - 114: 6(int) CompositeExtract 112 0 - Store 113 114 - 115: 20(ptr) AccessChain 9(iv) 36 - 116: 6(int) CompositeExtract 112 1 - Store 115 116 - 120: 117 Load 119(i2DMSArray) - 121: 7(ivec3) ImageQuerySize 120 - 122: 7(ivec3) Load 9(iv) - 123: 7(ivec3) IAdd 122 121 - Store 9(iv) 123 - 124: 105 Load 107(i2DMS) - 125: 6(int) ImageQuerySamples 124 - 126: 20(ptr) AccessChain 9(iv) 19 - 127: 6(int) Load 126 - 128: 6(int) IAdd 127 125 - 129: 20(ptr) AccessChain 9(iv) 19 - Store 129 128 - 130: 117 Load 119(i2DMSArray) - 131: 6(int) ImageQuerySamples 130 - 132: 20(ptr) AccessChain 9(iv) 19 - 133: 6(int) Load 132 - 134: 6(int) IAdd 133 131 - 135: 20(ptr) AccessChain 9(iv) 19 - Store 135 134 - Store 138(v) 140 - 141: 13 Load 15(i1D) - 144: 6(int) Load 143(ic1D) - 145: 136(fvec4) ImageRead 141 144 - 146: 136(fvec4) Load 138(v) - 147: 136(fvec4) FAdd 146 145 - Store 138(v) 147 - 148: 13 Load 15(i1D) - 149: 6(int) Load 143(ic1D) - 150: 136(fvec4) Load 138(v) - ImageWrite 148 149 150 - 151: 25 Load 27(i2D) - 154: 29(ivec2) Load 153(ic2D) - 155: 136(fvec4) ImageRead 151 154 - 156: 136(fvec4) Load 138(v) - 157: 136(fvec4) FAdd 156 155 - Store 138(v) 157 - 158: 25 Load 27(i2D) - 159: 29(ivec2) Load 153(ic2D) - 160: 136(fvec4) Load 138(v) - ImageWrite 158 159 160 - 161: 39 Load 41(i3D) - 164: 7(ivec3) Load 163(ic3D) - 165: 136(fvec4) ImageRead 161 164 - 166: 136(fvec4) Load 138(v) - 167: 136(fvec4) FAdd 166 165 - Store 138(v) 167 - 168: 39 Load 41(i3D) - 169: 7(ivec3) Load 163(ic3D) - 170: 136(fvec4) Load 138(v) - ImageWrite 168 169 170 - 171: 46 Load 48(iCube) - 172: 7(ivec3) Load 163(ic3D) - 173: 136(fvec4) ImageRead 171 172 - 174: 136(fvec4) Load 138(v) - 175: 136(fvec4) FAdd 174 173 - Store 138(v) 175 - 176: 46 Load 48(iCube) - 177: 7(ivec3) Load 163(ic3D) - 178: 136(fvec4) Load 138(v) - ImageWrite 176 177 178 - 179: 58 Load 60(iCubeArray) - 180: 7(ivec3) Load 163(ic3D) - 181: 136(fvec4) ImageRead 179 180 - 182: 136(fvec4) Load 138(v) - 183: 136(fvec4) FAdd 182 181 - Store 138(v) 183 - 184: 58 Load 60(iCubeArray) - 185: 7(ivec3) Load 163(ic3D) - 186: 136(fvec4) Load 138(v) - ImageWrite 184 185 186 - 187: 65 Load 67(i2DRect) - 188: 29(ivec2) Load 153(ic2D) - 189: 136(fvec4) ImageRead 187 188 - 190: 136(fvec4) Load 138(v) - 191: 136(fvec4) FAdd 190 189 - Store 138(v) 191 - 192: 65 Load 67(i2DRect) - 193: 29(ivec2) Load 153(ic2D) - 194: 136(fvec4) Load 138(v) - ImageWrite 192 193 194 - 195: 77 Load 79(i1DArray) - 196: 29(ivec2) Load 153(ic2D) - 197: 136(fvec4) ImageRead 195 196 - 198: 136(fvec4) Load 138(v) - 199: 136(fvec4) FAdd 198 197 - Store 138(v) 199 - 200: 77 Load 79(i1DArray) - 201: 29(ivec2) Load 153(ic2D) - 202: 136(fvec4) Load 138(v) - ImageWrite 200 201 202 - 203: 89 Load 91(i2DArray) - 204: 7(ivec3) Load 163(ic3D) - 205: 136(fvec4) ImageRead 203 204 - 206: 136(fvec4) Load 138(v) - 207: 136(fvec4) FAdd 206 205 - Store 138(v) 207 - 208: 89 Load 91(i2DArray) - 209: 7(ivec3) Load 163(ic3D) - 210: 136(fvec4) Load 138(v) - ImageWrite 208 209 210 - 211: 96 Load 98(iBuffer) - 212: 6(int) Load 143(ic1D) - 213: 136(fvec4) ImageRead 211 212 - 214: 136(fvec4) Load 138(v) - 215: 136(fvec4) FAdd 214 213 - Store 138(v) 215 - 216: 96 Load 98(iBuffer) - 217: 6(int) Load 143(ic1D) - 218: 136(fvec4) Load 138(v) - ImageWrite 216 217 218 - 219: 105 Load 107(i2DMS) - 220: 29(ivec2) Load 153(ic2D) - 222: 136(fvec4) ImageRead 219 220 Sample 221 - 223: 136(fvec4) Load 138(v) - 224: 136(fvec4) FAdd 223 222 - Store 138(v) 224 - 225: 105 Load 107(i2DMS) - 226: 29(ivec2) Load 153(ic2D) - 228: 136(fvec4) Load 138(v) - ImageWrite 225 226 228 Sample 227 - 229: 117 Load 119(i2DMSArray) - 230: 7(ivec3) Load 163(ic3D) - 232: 136(fvec4) ImageRead 229 230 Sample 231 - 233: 136(fvec4) Load 138(v) - 234: 136(fvec4) FAdd 233 232 - Store 138(v) 234 - 235: 117 Load 119(i2DMSArray) - 236: 7(ivec3) Load 163(ic3D) - 238: 136(fvec4) Load 138(v) - ImageWrite 235 236 238 Sample 237 - Store 240(ui) 19 - 244: 6(int) Load 143(ic1D) - 247: 246(ptr) ImageTexelPointer 243(ii1D) 244 19 - 248: 6(int) AtomicIAdd 247 36 19 245 - 249: 20(ptr) AccessChain 9(iv) 19 - 250: 6(int) Load 249 - 251: 6(int) IAdd 250 248 - 252: 20(ptr) AccessChain 9(iv) 19 - Store 252 251 - 256: 29(ivec2) Load 153(ic2D) - 259: 18(int) Load 258(value) - 261: 260(ptr) ImageTexelPointer 255(ui2D) 256 19 - 262: 18(int) AtomicIAdd 261 36 19 259 - 263: 18(int) Load 240(ui) - 264: 18(int) IAdd 263 262 - Store 240(ui) 264 - 265: 6(int) Load 143(ic1D) - 267: 246(ptr) ImageTexelPointer 243(ii1D) 265 19 - 268: 6(int) AtomicSMin 267 36 19 266 - 269: 20(ptr) AccessChain 9(iv) 19 - 270: 6(int) Load 269 - 271: 6(int) IAdd 270 268 - 272: 20(ptr) AccessChain 9(iv) 19 - Store 272 271 - 273: 29(ivec2) Load 153(ic2D) - 274: 18(int) Load 258(value) - 275: 260(ptr) ImageTexelPointer 255(ui2D) 273 19 - 276: 18(int) AtomicUMin 275 36 19 274 - 277: 18(int) Load 240(ui) - 278: 18(int) IAdd 277 276 - Store 240(ui) 278 - 279: 6(int) Load 143(ic1D) - 281: 246(ptr) ImageTexelPointer 243(ii1D) 279 19 - 282: 6(int) AtomicSMax 281 36 19 280 - 283: 20(ptr) AccessChain 9(iv) 19 - 284: 6(int) Load 283 - 285: 6(int) IAdd 284 282 - 286: 20(ptr) AccessChain 9(iv) 19 - Store 286 285 - 287: 29(ivec2) Load 153(ic2D) - 288: 18(int) Load 258(value) - 289: 260(ptr) ImageTexelPointer 255(ui2D) 287 19 - 290: 18(int) AtomicUMax 289 36 19 288 - 291: 18(int) Load 240(ui) - 292: 18(int) IAdd 291 290 - Store 240(ui) 292 - 293: 6(int) Load 143(ic1D) - 295: 246(ptr) ImageTexelPointer 243(ii1D) 293 19 - 296: 6(int) AtomicAnd 295 36 19 294 - 297: 20(ptr) AccessChain 9(iv) 19 - 298: 6(int) Load 297 - 299: 6(int) IAdd 298 296 - 300: 20(ptr) AccessChain 9(iv) 19 - Store 300 299 - 301: 29(ivec2) Load 153(ic2D) - 302: 18(int) Load 258(value) - 303: 260(ptr) ImageTexelPointer 255(ui2D) 301 19 - 304: 18(int) AtomicAnd 303 36 19 302 - 305: 18(int) Load 240(ui) - 306: 18(int) IAdd 305 304 - Store 240(ui) 306 - 307: 6(int) Load 143(ic1D) - 309: 246(ptr) ImageTexelPointer 243(ii1D) 307 19 - 310: 6(int) AtomicOr 309 36 19 308 - 311: 20(ptr) AccessChain 9(iv) 19 - 312: 6(int) Load 311 - 313: 6(int) IAdd 312 310 - 314: 20(ptr) AccessChain 9(iv) 19 - Store 314 313 - 315: 29(ivec2) Load 153(ic2D) - 316: 18(int) Load 258(value) - 317: 260(ptr) ImageTexelPointer 255(ui2D) 315 19 - 318: 18(int) AtomicOr 317 36 19 316 - 319: 18(int) Load 240(ui) - 320: 18(int) IAdd 319 318 - Store 240(ui) 320 - 321: 6(int) Load 143(ic1D) - 323: 246(ptr) ImageTexelPointer 243(ii1D) 321 19 - 324: 6(int) AtomicXor 323 36 19 322 - 325: 20(ptr) AccessChain 9(iv) 19 - 326: 6(int) Load 325 - 327: 6(int) IAdd 326 324 - 328: 20(ptr) AccessChain 9(iv) 19 - Store 328 327 - 329: 29(ivec2) Load 153(ic2D) - 330: 18(int) Load 258(value) - 331: 260(ptr) ImageTexelPointer 255(ui2D) 329 19 - 332: 18(int) AtomicXor 331 36 19 330 - 333: 18(int) Load 240(ui) - 334: 18(int) IAdd 333 332 - Store 240(ui) 334 - 335: 6(int) Load 143(ic1D) - 337: 246(ptr) ImageTexelPointer 243(ii1D) 335 19 - 338: 6(int) AtomicExchange 337 36 19 336 - 339: 20(ptr) AccessChain 9(iv) 19 - 340: 6(int) Load 339 - 341: 6(int) IAdd 340 338 - 342: 20(ptr) AccessChain 9(iv) 19 - Store 342 341 - 343: 29(ivec2) Load 153(ic2D) - 344: 18(int) Load 258(value) - 345: 260(ptr) ImageTexelPointer 255(ui2D) 343 19 - 346: 18(int) AtomicExchange 345 36 19 344 - 347: 18(int) Load 240(ui) - 348: 18(int) IAdd 347 346 - Store 240(ui) 348 - 349: 6(int) Load 143(ic1D) - 352: 246(ptr) ImageTexelPointer 243(ii1D) 349 19 - 353: 6(int) AtomicCompareExchange 352 36 19 19 351 350 - 354: 20(ptr) AccessChain 9(iv) 19 - 355: 6(int) Load 354 - 356: 6(int) IAdd 355 353 - 357: 20(ptr) AccessChain 9(iv) 19 - Store 357 356 - 358: 29(ivec2) Load 153(ic2D) - 360: 18(int) Load 258(value) - 361: 260(ptr) ImageTexelPointer 255(ui2D) 358 19 - 362: 18(int) AtomicCompareExchange 361 36 19 19 360 359 - 363: 18(int) Load 240(ui) - 364: 18(int) IAdd 363 362 - Store 240(ui) 364 - 368: 29(ivec2) Load 153(ic2D) - 369: 246(ptr) ImageTexelPointer 367(ii2DMS) 368 227 - 370: 6(int) AtomicCompareExchange 369 36 19 19 351 350 - 371: 20(ptr) AccessChain 9(iv) 19 - 372: 6(int) Load 371 - 373: 6(int) IAdd 372 370 - 374: 20(ptr) AccessChain 9(iv) 19 - Store 374 373 - 378: 7(ivec3) Load 163(ic3D) - 379: 18(int) Load 258(value) - 380: 260(ptr) ImageTexelPointer 377(ui2DMSArray) 378 231 - 381: 18(int) AtomicCompareExchange 380 36 19 19 379 359 - 382: 18(int) Load 240(ui) - 383: 18(int) IAdd 382 381 - Store 240(ui) 383 - 387: 384 Load 386(wo2D) - 388: 29(ivec2) Load 153(ic2D) - 389: 136(fvec4) Load 138(v) - ImageWrite 387 388 389 - 392: 18(int) Load 240(ui) - 393: 20(ptr) AccessChain 9(iv) 36 - 394: 6(int) Load 393 - 395: 18(int) Bitcast 394 - 397: 396(bool) INotEqual 392 395 - 398: 136(fvec4) Load 138(v) - 400: 399(bvec4) CompositeConstruct 397 397 397 397 - 401: 136(fvec4) Select 400 398 140 - Store 391(fragData) 401 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.image.load-formatted.frag.out b/deps/glslang/Test/baseResults/spv.image.load-formatted.frag.out deleted file mode 100644 index 172a3a17..00000000 --- a/deps/glslang/Test/baseResults/spv.image.load-formatted.frag.out +++ /dev/null @@ -1,352 +0,0 @@ -spv.image.load-formatted.frag -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - -// Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 240 - - Capability Shader - Capability SampledRect - Capability Sampled1D - Capability SampledCubeArray - Capability SampledBuffer - Capability ImageMSArray - Capability ImageQuery - Capability StorageImageReadWithoutFormat - Capability StorageImageWriteWithoutFormat - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 132 142 152 233 237 239 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_shader_image_load_formatted" - Name 4 "main" - Name 9 "iv" - Name 15 "i1D" - Name 27 "i2D" - Name 38 "i3D" - Name 45 "iCube" - Name 55 "iCubeArray" - Name 62 "i2DRect" - Name 72 "i1DArray" - Name 82 "i2DArray" - Name 89 "iBuffer" - Name 98 "i2DMS" - Name 108 "i2DMSArray" - Name 127 "v" - Name 132 "ic1D" - Name 142 "ic2D" - Name 152 "ic3D" - Name 228 "wo2D" - Name 233 "fragData" - Name 237 "ic4D" - Name 239 "value" - Decorate 15(i1D) DescriptorSet 0 - Decorate 15(i1D) Binding 0 - Decorate 27(i2D) DescriptorSet 0 - Decorate 27(i2D) Binding 1 - Decorate 38(i3D) DescriptorSet 0 - Decorate 38(i3D) Binding 2 - Decorate 45(iCube) DescriptorSet 0 - Decorate 45(iCube) Binding 3 - Decorate 55(iCubeArray) DescriptorSet 0 - Decorate 55(iCubeArray) Binding 4 - Decorate 62(i2DRect) DescriptorSet 0 - Decorate 62(i2DRect) Binding 5 - Decorate 72(i1DArray) DescriptorSet 0 - Decorate 72(i1DArray) Binding 6 - Decorate 82(i2DArray) DescriptorSet 0 - Decorate 82(i2DArray) Binding 7 - Decorate 89(iBuffer) DescriptorSet 0 - Decorate 89(iBuffer) Binding 8 - Decorate 98(i2DMS) DescriptorSet 0 - Decorate 98(i2DMS) Binding 9 - Decorate 108(i2DMSArray) DescriptorSet 0 - Decorate 108(i2DMSArray) Binding 10 - Decorate 132(ic1D) Flat - Decorate 142(ic2D) Flat - Decorate 152(ic3D) Flat - Decorate 228(wo2D) DescriptorSet 0 - Decorate 228(wo2D) Binding 1 - Decorate 228(wo2D) NonReadable - Decorate 237(ic4D) Flat - Decorate 239(value) Flat - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypeVector 6(int) 3 - 8: TypePointer Function 7(ivec3) - 10: 6(int) Constant 0 - 11: 7(ivec3) ConstantComposite 10 10 10 - 12: TypeFloat 32 - 13: TypeImage 12(float) 1D nonsampled format:Unknown - 14: TypePointer UniformConstant 13 - 15(i1D): 14(ptr) Variable UniformConstant - 18: TypeInt 32 0 - 19: 18(int) Constant 0 - 20: TypePointer Function 6(int) - 25: TypeImage 12(float) 2D nonsampled format:Unknown - 26: TypePointer UniformConstant 25 - 27(i2D): 26(ptr) Variable UniformConstant - 29: TypeVector 6(int) 2 - 36: TypeImage 12(float) 3D nonsampled format:Unknown - 37: TypePointer UniformConstant 36 - 38(i3D): 37(ptr) Variable UniformConstant - 43: TypeImage 12(float) Cube nonsampled format:Unknown - 44: TypePointer UniformConstant 43 - 45(iCube): 44(ptr) Variable UniformConstant - 53: TypeImage 12(float) Cube array nonsampled format:Unknown - 54: TypePointer UniformConstant 53 - 55(iCubeArray): 54(ptr) Variable UniformConstant - 60: TypeImage 12(float) Rect nonsampled format:Unknown - 61: TypePointer UniformConstant 60 - 62(i2DRect): 61(ptr) Variable UniformConstant - 70: TypeImage 12(float) 1D array nonsampled format:Unknown - 71: TypePointer UniformConstant 70 - 72(i1DArray): 71(ptr) Variable UniformConstant - 80: TypeImage 12(float) 2D array nonsampled format:Unknown - 81: TypePointer UniformConstant 80 - 82(i2DArray): 81(ptr) Variable UniformConstant - 87: TypeImage 12(float) Buffer nonsampled format:Unknown - 88: TypePointer UniformConstant 87 - 89(iBuffer): 88(ptr) Variable UniformConstant - 96: TypeImage 12(float) 2D multi-sampled nonsampled format:Unknown - 97: TypePointer UniformConstant 96 - 98(i2DMS): 97(ptr) Variable UniformConstant - 106: TypeImage 12(float) 2D array multi-sampled nonsampled format:Unknown - 107: TypePointer UniformConstant 106 - 108(i2DMSArray): 107(ptr) Variable UniformConstant - 125: TypeVector 12(float) 4 - 126: TypePointer Function 125(fvec4) - 128: 12(float) Constant 0 - 129: 125(fvec4) ConstantComposite 128 128 128 128 - 131: TypePointer Input 6(int) - 132(ic1D): 131(ptr) Variable Input - 141: TypePointer Input 29(ivec2) - 142(ic2D): 141(ptr) Variable Input - 151: TypePointer Input 7(ivec3) - 152(ic3D): 151(ptr) Variable Input - 210: 6(int) Constant 1 - 216: 6(int) Constant 2 - 220: 6(int) Constant 3 - 226: 6(int) Constant 4 - 228(wo2D): 26(ptr) Variable UniformConstant - 232: TypePointer Output 125(fvec4) - 233(fragData): 232(ptr) Variable Output - 235: TypeVector 6(int) 4 - 236: TypePointer Input 235(ivec4) - 237(ic4D): 236(ptr) Variable Input - 238: TypePointer Input 18(int) - 239(value): 238(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 9(iv): 8(ptr) Variable Function - 127(v): 126(ptr) Variable Function - Store 9(iv) 11 - 16: 13 Load 15(i1D) - 17: 6(int) ImageQuerySize 16 - 21: 20(ptr) AccessChain 9(iv) 19 - 22: 6(int) Load 21 - 23: 6(int) IAdd 22 17 - 24: 20(ptr) AccessChain 9(iv) 19 - Store 24 23 - 28: 25 Load 27(i2D) - 30: 29(ivec2) ImageQuerySize 28 - 31: 7(ivec3) Load 9(iv) - 32: 29(ivec2) VectorShuffle 31 31 0 1 - 33: 29(ivec2) IAdd 32 30 - 34: 7(ivec3) Load 9(iv) - 35: 7(ivec3) VectorShuffle 34 33 3 4 2 - Store 9(iv) 35 - 39: 36 Load 38(i3D) - 40: 7(ivec3) ImageQuerySize 39 - 41: 7(ivec3) Load 9(iv) - 42: 7(ivec3) IAdd 41 40 - Store 9(iv) 42 - 46: 43 Load 45(iCube) - 47: 29(ivec2) ImageQuerySize 46 - 48: 7(ivec3) Load 9(iv) - 49: 29(ivec2) VectorShuffle 48 48 0 1 - 50: 29(ivec2) IAdd 49 47 - 51: 7(ivec3) Load 9(iv) - 52: 7(ivec3) VectorShuffle 51 50 3 4 2 - Store 9(iv) 52 - 56: 53 Load 55(iCubeArray) - 57: 7(ivec3) ImageQuerySize 56 - 58: 7(ivec3) Load 9(iv) - 59: 7(ivec3) IAdd 58 57 - Store 9(iv) 59 - 63: 60 Load 62(i2DRect) - 64: 29(ivec2) ImageQuerySize 63 - 65: 7(ivec3) Load 9(iv) - 66: 29(ivec2) VectorShuffle 65 65 0 1 - 67: 29(ivec2) IAdd 66 64 - 68: 7(ivec3) Load 9(iv) - 69: 7(ivec3) VectorShuffle 68 67 3 4 2 - Store 9(iv) 69 - 73: 70 Load 72(i1DArray) - 74: 29(ivec2) ImageQuerySize 73 - 75: 7(ivec3) Load 9(iv) - 76: 29(ivec2) VectorShuffle 75 75 0 1 - 77: 29(ivec2) IAdd 76 74 - 78: 7(ivec3) Load 9(iv) - 79: 7(ivec3) VectorShuffle 78 77 3 4 2 - Store 9(iv) 79 - 83: 80 Load 82(i2DArray) - 84: 7(ivec3) ImageQuerySize 83 - 85: 7(ivec3) Load 9(iv) - 86: 7(ivec3) IAdd 85 84 - Store 9(iv) 86 - 90: 87 Load 89(iBuffer) - 91: 6(int) ImageQuerySize 90 - 92: 20(ptr) AccessChain 9(iv) 19 - 93: 6(int) Load 92 - 94: 6(int) IAdd 93 91 - 95: 20(ptr) AccessChain 9(iv) 19 - Store 95 94 - 99: 96 Load 98(i2DMS) - 100: 29(ivec2) ImageQuerySize 99 - 101: 7(ivec3) Load 9(iv) - 102: 29(ivec2) VectorShuffle 101 101 0 1 - 103: 29(ivec2) IAdd 102 100 - 104: 7(ivec3) Load 9(iv) - 105: 7(ivec3) VectorShuffle 104 103 3 4 2 - Store 9(iv) 105 - 109: 106 Load 108(i2DMSArray) - 110: 7(ivec3) ImageQuerySize 109 - 111: 7(ivec3) Load 9(iv) - 112: 7(ivec3) IAdd 111 110 - Store 9(iv) 112 - 113: 96 Load 98(i2DMS) - 114: 6(int) ImageQuerySamples 113 - 115: 20(ptr) AccessChain 9(iv) 19 - 116: 6(int) Load 115 - 117: 6(int) IAdd 116 114 - 118: 20(ptr) AccessChain 9(iv) 19 - Store 118 117 - 119: 106 Load 108(i2DMSArray) - 120: 6(int) ImageQuerySamples 119 - 121: 20(ptr) AccessChain 9(iv) 19 - 122: 6(int) Load 121 - 123: 6(int) IAdd 122 120 - 124: 20(ptr) AccessChain 9(iv) 19 - Store 124 123 - Store 127(v) 129 - 130: 13 Load 15(i1D) - 133: 6(int) Load 132(ic1D) - 134: 125(fvec4) ImageRead 130 133 - 135: 125(fvec4) Load 127(v) - 136: 125(fvec4) FAdd 135 134 - Store 127(v) 136 - 137: 13 Load 15(i1D) - 138: 6(int) Load 132(ic1D) - 139: 125(fvec4) Load 127(v) - ImageWrite 137 138 139 - 140: 25 Load 27(i2D) - 143: 29(ivec2) Load 142(ic2D) - 144: 125(fvec4) ImageRead 140 143 - 145: 125(fvec4) Load 127(v) - 146: 125(fvec4) FAdd 145 144 - Store 127(v) 146 - 147: 25 Load 27(i2D) - 148: 29(ivec2) Load 142(ic2D) - 149: 125(fvec4) Load 127(v) - ImageWrite 147 148 149 - 150: 36 Load 38(i3D) - 153: 7(ivec3) Load 152(ic3D) - 154: 125(fvec4) ImageRead 150 153 - 155: 125(fvec4) Load 127(v) - 156: 125(fvec4) FAdd 155 154 - Store 127(v) 156 - 157: 36 Load 38(i3D) - 158: 7(ivec3) Load 152(ic3D) - 159: 125(fvec4) Load 127(v) - ImageWrite 157 158 159 - 160: 43 Load 45(iCube) - 161: 7(ivec3) Load 152(ic3D) - 162: 125(fvec4) ImageRead 160 161 - 163: 125(fvec4) Load 127(v) - 164: 125(fvec4) FAdd 163 162 - Store 127(v) 164 - 165: 43 Load 45(iCube) - 166: 7(ivec3) Load 152(ic3D) - 167: 125(fvec4) Load 127(v) - ImageWrite 165 166 167 - 168: 53 Load 55(iCubeArray) - 169: 7(ivec3) Load 152(ic3D) - 170: 125(fvec4) ImageRead 168 169 - 171: 125(fvec4) Load 127(v) - 172: 125(fvec4) FAdd 171 170 - Store 127(v) 172 - 173: 53 Load 55(iCubeArray) - 174: 7(ivec3) Load 152(ic3D) - 175: 125(fvec4) Load 127(v) - ImageWrite 173 174 175 - 176: 60 Load 62(i2DRect) - 177: 29(ivec2) Load 142(ic2D) - 178: 125(fvec4) ImageRead 176 177 - 179: 125(fvec4) Load 127(v) - 180: 125(fvec4) FAdd 179 178 - Store 127(v) 180 - 181: 60 Load 62(i2DRect) - 182: 29(ivec2) Load 142(ic2D) - 183: 125(fvec4) Load 127(v) - ImageWrite 181 182 183 - 184: 70 Load 72(i1DArray) - 185: 29(ivec2) Load 142(ic2D) - 186: 125(fvec4) ImageRead 184 185 - 187: 125(fvec4) Load 127(v) - 188: 125(fvec4) FAdd 187 186 - Store 127(v) 188 - 189: 70 Load 72(i1DArray) - 190: 29(ivec2) Load 142(ic2D) - 191: 125(fvec4) Load 127(v) - ImageWrite 189 190 191 - 192: 80 Load 82(i2DArray) - 193: 7(ivec3) Load 152(ic3D) - 194: 125(fvec4) ImageRead 192 193 - 195: 125(fvec4) Load 127(v) - 196: 125(fvec4) FAdd 195 194 - Store 127(v) 196 - 197: 80 Load 82(i2DArray) - 198: 7(ivec3) Load 152(ic3D) - 199: 125(fvec4) Load 127(v) - ImageWrite 197 198 199 - 200: 87 Load 89(iBuffer) - 201: 6(int) Load 132(ic1D) - 202: 125(fvec4) ImageRead 200 201 - 203: 125(fvec4) Load 127(v) - 204: 125(fvec4) FAdd 203 202 - Store 127(v) 204 - 205: 87 Load 89(iBuffer) - 206: 6(int) Load 132(ic1D) - 207: 125(fvec4) Load 127(v) - ImageWrite 205 206 207 - 208: 96 Load 98(i2DMS) - 209: 29(ivec2) Load 142(ic2D) - 211: 125(fvec4) ImageRead 208 209 Sample 210 - 212: 125(fvec4) Load 127(v) - 213: 125(fvec4) FAdd 212 211 - Store 127(v) 213 - 214: 96 Load 98(i2DMS) - 215: 29(ivec2) Load 142(ic2D) - 217: 125(fvec4) Load 127(v) - ImageWrite 214 215 217 Sample 216 - 218: 106 Load 108(i2DMSArray) - 219: 7(ivec3) Load 152(ic3D) - 221: 125(fvec4) ImageRead 218 219 Sample 220 - 222: 125(fvec4) Load 127(v) - 223: 125(fvec4) FAdd 222 221 - Store 127(v) 223 - 224: 106 Load 108(i2DMSArray) - 225: 7(ivec3) Load 152(ic3D) - 227: 125(fvec4) Load 127(v) - ImageWrite 224 225 227 Sample 226 - 229: 25 Load 228(wo2D) - 230: 29(ivec2) Load 142(ic2D) - 231: 125(fvec4) Load 127(v) - ImageWrite 229 230 231 - 234: 125(fvec4) Load 127(v) - Store 233(fragData) 234 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.imageAtomic64.frag.out b/deps/glslang/Test/baseResults/spv.imageAtomic64.frag.out deleted file mode 100644 index 30836978..00000000 --- a/deps/glslang/Test/baseResults/spv.imageAtomic64.frag.out +++ /dev/null @@ -1,634 +0,0 @@ -spv.imageAtomic64.frag -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 503 - - Capability Shader - Capability Int64 - Capability Int64Atomics - Capability StorageImageMultisample - Capability ImageCubeArray - Capability ImageRect - Capability SparseResidency - Capability Image1D - Capability ImageBuffer - Capability ImageMSArray - Capability Int64ImageEXT - Extension "SPV_EXT_shader_image_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_ARB_sparse_texture2" - SourceExtension "GL_EXT_shader_image_int64" - SourceExtension "GL_KHR_memory_scope_semantics" - Name 4 "main" - Name 12 "Buf" - MemberName 12(Buf) 0 "i64" - MemberName 12(Buf) 1 "u64" - MemberName 12(Buf) 2 "i64v4" - MemberName 12(Buf) 3 "u64v4" - MemberName 12(Buf) 4 "i32v4" - Name 14 "" - Name 18 "i1D" - Name 35 "i3D" - Name 48 "iBuf" - Name 58 "i2DArray" - Name 69 "i2DRect" - Name 81 "i2DMSArray" - Name 194 "u2D" - Name 207 "uCube" - Name 218 "u1DArray" - Name 229 "uCubeArray" - Name 240 "u2DMS" - Name 458 "ResType" - Name 483 "ResType" - MemberDecorate 12(Buf) 0 Offset 0 - MemberDecorate 12(Buf) 1 Offset 8 - MemberDecorate 12(Buf) 2 Offset 32 - MemberDecorate 12(Buf) 3 Offset 64 - MemberDecorate 12(Buf) 4 Offset 96 - Decorate 12(Buf) BufferBlock - Decorate 14 DescriptorSet 0 - Decorate 14 Binding 11 - Decorate 18(i1D) DescriptorSet 0 - Decorate 18(i1D) Binding 0 - Decorate 35(i3D) DescriptorSet 0 - Decorate 35(i3D) Binding 2 - Decorate 48(iBuf) DescriptorSet 0 - Decorate 48(iBuf) Binding 4 - Decorate 58(i2DArray) DescriptorSet 0 - Decorate 58(i2DArray) Binding 6 - Decorate 69(i2DRect) DescriptorSet 0 - Decorate 69(i2DRect) Binding 8 - Decorate 81(i2DMSArray) DescriptorSet 0 - Decorate 81(i2DMSArray) Binding 10 - Decorate 194(u2D) DescriptorSet 0 - Decorate 194(u2D) Binding 1 - Decorate 207(uCube) DescriptorSet 0 - Decorate 207(uCube) Binding 3 - Decorate 218(u1DArray) DescriptorSet 0 - Decorate 218(u1DArray) Binding 5 - Decorate 229(uCubeArray) DescriptorSet 0 - Decorate 229(uCubeArray) Binding 7 - Decorate 240(u2DMS) DescriptorSet 0 - Decorate 240(u2DMS) Binding 9 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 64 1 - 7: TypeInt 64 0 - 8: TypeVector 6(int64_t) 4 - 9: TypeVector 7(int64_t) 4 - 10: TypeInt 32 1 - 11: TypeVector 10(int) 4 - 12(Buf): TypeStruct 6(int64_t) 7(int64_t) 8(i64vec4) 9(i64vec4) 11(ivec4) - 13: TypePointer Uniform 12(Buf) - 14: 13(ptr) Variable Uniform - 15: 10(int) Constant 0 - 16: TypeImage 6(int64_t) 1D nonsampled format:R64i - 17: TypePointer UniformConstant 16 - 18(i1D): 17(ptr) Variable UniformConstant - 19: 10(int) Constant 4 - 20: TypeInt 32 0 - 21: 20(int) Constant 0 - 22: TypePointer Uniform 10(int) - 25: TypePointer Uniform 6(int64_t) - 28: TypePointer Image 6(int64_t) - 30: 20(int) Constant 1 - 33: TypeImage 6(int64_t) 3D nonsampled format:R64i - 34: TypePointer UniformConstant 33 - 35(i3D): 34(ptr) Variable UniformConstant - 36: TypeVector 10(int) 3 - 37: TypePointer Uniform 11(ivec4) - 46: TypeImage 6(int64_t) Buffer nonsampled format:R64i - 47: TypePointer UniformConstant 46 - 48(iBuf): 47(ptr) Variable UniformConstant - 56: TypeImage 6(int64_t) 2D array nonsampled format:R64i - 57: TypePointer UniformConstant 56 - 58(i2DArray): 57(ptr) Variable UniformConstant - 67: TypeImage 6(int64_t) Rect nonsampled format:R64i - 68: TypePointer UniformConstant 67 - 69(i2DRect): 68(ptr) Variable UniformConstant - 70: TypeVector 10(int) 2 - 79: TypeImage 6(int64_t) 2D array multi-sampled nonsampled format:R64i - 80: TypePointer UniformConstant 79 - 81(i2DMSArray): 80(ptr) Variable UniformConstant - 85: 20(int) Constant 3 - 107: 6(int64_t) Constant 1 0 - 116: 10(int) Constant 1 - 117: 10(int) Constant 2048 - 119: 20(int) Constant 2048 - 192: TypeImage 7(int64_t) 2D nonsampled format:R64ui - 193: TypePointer UniformConstant 192 - 194(u2D): 193(ptr) Variable UniformConstant - 198: TypePointer Uniform 7(int64_t) - 201: TypePointer Image 7(int64_t) - 205: TypeImage 7(int64_t) Cube nonsampled format:R64ui - 206: TypePointer UniformConstant 205 - 207(uCube): 206(ptr) Variable UniformConstant - 216: TypeImage 7(int64_t) 1D array nonsampled format:R64ui - 217: TypePointer UniformConstant 216 - 218(u1DArray): 217(ptr) Variable UniformConstant - 227: TypeImage 7(int64_t) Cube array nonsampled format:R64ui - 228: TypePointer UniformConstant 227 - 229(uCubeArray): 228(ptr) Variable UniformConstant - 238: TypeImage 7(int64_t) 2D multi-sampled nonsampled format:R64ui - 239: TypePointer UniformConstant 238 - 240(u2DMS): 239(ptr) Variable UniformConstant - 244: 20(int) Constant 2 - 275: 7(int64_t) Constant 1 0 - 363: 10(int) Constant 2 - 368: TypePointer Uniform 8(i64vec4) - 423: 10(int) Constant 3 - 424: TypePointer Uniform 9(i64vec4) - 458(ResType): TypeStruct 10(int) 8(i64vec4) - 483(ResType): TypeStruct 10(int) 9(i64vec4) - 4(main): 2 Function None 3 - 5: Label - 23: 22(ptr) AccessChain 14 19 21 - 24: 10(int) Load 23 - 26: 25(ptr) AccessChain 14 15 - 27: 6(int64_t) Load 26 - 29: 28(ptr) ImageTexelPointer 18(i1D) 24 21 - 31: 6(int64_t) AtomicIAdd 29 30 21 27 - 32: 25(ptr) AccessChain 14 15 - Store 32 31 - 38: 37(ptr) AccessChain 14 19 - 39: 11(ivec4) Load 38 - 40: 36(ivec3) VectorShuffle 39 39 0 1 2 - 41: 25(ptr) AccessChain 14 15 - 42: 6(int64_t) Load 41 - 43: 28(ptr) ImageTexelPointer 35(i3D) 40 21 - 44: 6(int64_t) AtomicSMin 43 30 21 42 - 45: 25(ptr) AccessChain 14 15 - Store 45 44 - 49: 22(ptr) AccessChain 14 19 21 - 50: 10(int) Load 49 - 51: 25(ptr) AccessChain 14 15 - 52: 6(int64_t) Load 51 - 53: 28(ptr) ImageTexelPointer 48(iBuf) 50 21 - 54: 6(int64_t) AtomicSMax 53 30 21 52 - 55: 25(ptr) AccessChain 14 15 - Store 55 54 - 59: 37(ptr) AccessChain 14 19 - 60: 11(ivec4) Load 59 - 61: 36(ivec3) VectorShuffle 60 60 0 1 2 - 62: 25(ptr) AccessChain 14 15 - 63: 6(int64_t) Load 62 - 64: 28(ptr) ImageTexelPointer 58(i2DArray) 61 21 - 65: 6(int64_t) AtomicAnd 64 30 21 63 - 66: 25(ptr) AccessChain 14 15 - Store 66 65 - 71: 37(ptr) AccessChain 14 19 - 72: 11(ivec4) Load 71 - 73: 70(ivec2) VectorShuffle 72 72 0 1 - 74: 25(ptr) AccessChain 14 15 - 75: 6(int64_t) Load 74 - 76: 28(ptr) ImageTexelPointer 69(i2DRect) 73 21 - 77: 6(int64_t) AtomicOr 76 30 21 75 - 78: 25(ptr) AccessChain 14 15 - Store 78 77 - 82: 37(ptr) AccessChain 14 19 - 83: 11(ivec4) Load 82 - 84: 36(ivec3) VectorShuffle 83 83 0 1 2 - 86: 22(ptr) AccessChain 14 19 85 - 87: 10(int) Load 86 - 88: 25(ptr) AccessChain 14 15 - 89: 6(int64_t) Load 88 - 90: 28(ptr) ImageTexelPointer 81(i2DMSArray) 84 87 - 91: 6(int64_t) AtomicXor 90 30 21 89 - 92: 25(ptr) AccessChain 14 15 - Store 92 91 - 93: 22(ptr) AccessChain 14 19 21 - 94: 10(int) Load 93 - 95: 25(ptr) AccessChain 14 15 - 96: 6(int64_t) Load 95 - 97: 28(ptr) ImageTexelPointer 18(i1D) 94 21 - 98: 6(int64_t) AtomicExchange 97 30 21 96 - 99: 25(ptr) AccessChain 14 15 - Store 99 98 - 100: 37(ptr) AccessChain 14 19 - 101: 11(ivec4) Load 100 - 102: 36(ivec3) VectorShuffle 101 101 0 1 2 - 103: 25(ptr) AccessChain 14 15 - 104: 6(int64_t) Load 103 - 105: 25(ptr) AccessChain 14 15 - 106: 6(int64_t) Load 105 - 108: 6(int64_t) IAdd 106 107 - 109: 28(ptr) ImageTexelPointer 35(i3D) 102 21 - 110: 6(int64_t) AtomicCompareExchange 109 30 21 21 108 104 - 111: 25(ptr) AccessChain 14 15 - Store 111 110 - 112: 22(ptr) AccessChain 14 19 21 - 113: 10(int) Load 112 - 114: 25(ptr) AccessChain 14 15 - 115: 6(int64_t) Load 114 - 118: 28(ptr) ImageTexelPointer 18(i1D) 113 21 - 120: 6(int64_t) AtomicIAdd 118 116 119 115 - 121: 25(ptr) AccessChain 14 15 - Store 121 120 - 122: 37(ptr) AccessChain 14 19 - 123: 11(ivec4) Load 122 - 124: 36(ivec3) VectorShuffle 123 123 0 1 2 - 125: 25(ptr) AccessChain 14 15 - 126: 6(int64_t) Load 125 - 127: 28(ptr) ImageTexelPointer 35(i3D) 124 21 - 128: 6(int64_t) AtomicSMin 127 116 119 126 - 129: 25(ptr) AccessChain 14 15 - Store 129 128 - 130: 22(ptr) AccessChain 14 19 21 - 131: 10(int) Load 130 - 132: 25(ptr) AccessChain 14 15 - 133: 6(int64_t) Load 132 - 134: 28(ptr) ImageTexelPointer 48(iBuf) 131 21 - 135: 6(int64_t) AtomicSMax 134 116 119 133 - 136: 25(ptr) AccessChain 14 15 - Store 136 135 - 137: 37(ptr) AccessChain 14 19 - 138: 11(ivec4) Load 137 - 139: 36(ivec3) VectorShuffle 138 138 0 1 2 - 140: 25(ptr) AccessChain 14 15 - 141: 6(int64_t) Load 140 - 142: 28(ptr) ImageTexelPointer 58(i2DArray) 139 21 - 143: 6(int64_t) AtomicAnd 142 116 119 141 - 144: 25(ptr) AccessChain 14 15 - Store 144 143 - 145: 37(ptr) AccessChain 14 19 - 146: 11(ivec4) Load 145 - 147: 70(ivec2) VectorShuffle 146 146 0 1 - 148: 25(ptr) AccessChain 14 15 - 149: 6(int64_t) Load 148 - 150: 28(ptr) ImageTexelPointer 69(i2DRect) 147 21 - 151: 6(int64_t) AtomicOr 150 116 119 149 - 152: 25(ptr) AccessChain 14 15 - Store 152 151 - 153: 37(ptr) AccessChain 14 19 - 154: 11(ivec4) Load 153 - 155: 36(ivec3) VectorShuffle 154 154 0 1 2 - 156: 22(ptr) AccessChain 14 19 85 - 157: 10(int) Load 156 - 158: 25(ptr) AccessChain 14 15 - 159: 6(int64_t) Load 158 - 160: 28(ptr) ImageTexelPointer 81(i2DMSArray) 155 157 - 161: 6(int64_t) AtomicXor 160 116 119 159 - 162: 25(ptr) AccessChain 14 15 - Store 162 161 - 163: 22(ptr) AccessChain 14 19 21 - 164: 10(int) Load 163 - 165: 25(ptr) AccessChain 14 15 - 166: 6(int64_t) Load 165 - 167: 28(ptr) ImageTexelPointer 18(i1D) 164 21 - 168: 6(int64_t) AtomicExchange 167 116 119 166 - 169: 25(ptr) AccessChain 14 15 - Store 169 168 - 170: 37(ptr) AccessChain 14 19 - 171: 11(ivec4) Load 170 - 172: 36(ivec3) VectorShuffle 171 171 0 1 2 - 173: 25(ptr) AccessChain 14 15 - 174: 6(int64_t) Load 173 - 175: 25(ptr) AccessChain 14 15 - 176: 6(int64_t) Load 175 - 177: 6(int64_t) IAdd 176 107 - 178: 28(ptr) ImageTexelPointer 35(i3D) 172 21 - 179: 6(int64_t) AtomicCompareExchange 178 116 119 119 177 174 - 180: 25(ptr) AccessChain 14 15 - Store 180 179 - 181: 22(ptr) AccessChain 14 19 21 - 182: 10(int) Load 181 - 183: 28(ptr) ImageTexelPointer 48(iBuf) 182 21 - 184: 6(int64_t) AtomicLoad 183 116 119 - 185: 25(ptr) AccessChain 14 15 - Store 185 184 - 186: 37(ptr) AccessChain 14 19 - 187: 11(ivec4) Load 186 - 188: 36(ivec3) VectorShuffle 187 187 0 1 2 - 189: 25(ptr) AccessChain 14 15 - 190: 6(int64_t) Load 189 - 191: 28(ptr) ImageTexelPointer 58(i2DArray) 188 21 - AtomicStore 191 116 119 190 - 195: 37(ptr) AccessChain 14 19 - 196: 11(ivec4) Load 195 - 197: 70(ivec2) VectorShuffle 196 196 0 1 - 199: 198(ptr) AccessChain 14 116 - 200: 7(int64_t) Load 199 - 202: 201(ptr) ImageTexelPointer 194(u2D) 197 21 - 203: 7(int64_t) AtomicIAdd 202 30 21 200 - 204: 198(ptr) AccessChain 14 116 - Store 204 203 - 208: 37(ptr) AccessChain 14 19 - 209: 11(ivec4) Load 208 - 210: 36(ivec3) VectorShuffle 209 209 0 1 2 - 211: 198(ptr) AccessChain 14 116 - 212: 7(int64_t) Load 211 - 213: 201(ptr) ImageTexelPointer 207(uCube) 210 21 - 214: 7(int64_t) AtomicUMin 213 30 21 212 - 215: 198(ptr) AccessChain 14 116 - Store 215 214 - 219: 37(ptr) AccessChain 14 19 - 220: 11(ivec4) Load 219 - 221: 70(ivec2) VectorShuffle 220 220 0 1 - 222: 198(ptr) AccessChain 14 116 - 223: 7(int64_t) Load 222 - 224: 201(ptr) ImageTexelPointer 218(u1DArray) 221 21 - 225: 7(int64_t) AtomicUMax 224 30 21 223 - 226: 198(ptr) AccessChain 14 116 - Store 226 225 - 230: 37(ptr) AccessChain 14 19 - 231: 11(ivec4) Load 230 - 232: 36(ivec3) VectorShuffle 231 231 0 1 2 - 233: 198(ptr) AccessChain 14 116 - 234: 7(int64_t) Load 233 - 235: 201(ptr) ImageTexelPointer 229(uCubeArray) 232 21 - 236: 7(int64_t) AtomicAnd 235 30 21 234 - 237: 198(ptr) AccessChain 14 116 - Store 237 236 - 241: 37(ptr) AccessChain 14 19 - 242: 11(ivec4) Load 241 - 243: 70(ivec2) VectorShuffle 242 242 0 1 - 245: 22(ptr) AccessChain 14 19 244 - 246: 10(int) Load 245 - 247: 198(ptr) AccessChain 14 116 - 248: 7(int64_t) Load 247 - 249: 201(ptr) ImageTexelPointer 240(u2DMS) 243 246 - 250: 7(int64_t) AtomicOr 249 30 21 248 - 251: 198(ptr) AccessChain 14 116 - Store 251 250 - 252: 37(ptr) AccessChain 14 19 - 253: 11(ivec4) Load 252 - 254: 70(ivec2) VectorShuffle 253 253 0 1 - 255: 198(ptr) AccessChain 14 116 - 256: 7(int64_t) Load 255 - 257: 201(ptr) ImageTexelPointer 194(u2D) 254 21 - 258: 7(int64_t) AtomicXor 257 30 21 256 - 259: 198(ptr) AccessChain 14 116 - Store 259 258 - 260: 37(ptr) AccessChain 14 19 - 261: 11(ivec4) Load 260 - 262: 36(ivec3) VectorShuffle 261 261 0 1 2 - 263: 198(ptr) AccessChain 14 116 - 264: 7(int64_t) Load 263 - 265: 201(ptr) ImageTexelPointer 207(uCube) 262 21 - 266: 7(int64_t) AtomicExchange 265 30 21 264 - 267: 198(ptr) AccessChain 14 116 - Store 267 266 - 268: 37(ptr) AccessChain 14 19 - 269: 11(ivec4) Load 268 - 270: 70(ivec2) VectorShuffle 269 269 0 1 - 271: 198(ptr) AccessChain 14 116 - 272: 7(int64_t) Load 271 - 273: 198(ptr) AccessChain 14 116 - 274: 7(int64_t) Load 273 - 276: 7(int64_t) IAdd 274 275 - 277: 201(ptr) ImageTexelPointer 218(u1DArray) 270 21 - 278: 7(int64_t) AtomicCompareExchange 277 30 21 21 276 272 - 279: 198(ptr) AccessChain 14 116 - Store 279 278 - 280: 37(ptr) AccessChain 14 19 - 281: 11(ivec4) Load 280 - 282: 70(ivec2) VectorShuffle 281 281 0 1 - 283: 198(ptr) AccessChain 14 116 - 284: 7(int64_t) Load 283 - 285: 201(ptr) ImageTexelPointer 194(u2D) 282 21 - 286: 7(int64_t) AtomicIAdd 285 116 119 284 - 287: 198(ptr) AccessChain 14 116 - Store 287 286 - 288: 37(ptr) AccessChain 14 19 - 289: 11(ivec4) Load 288 - 290: 36(ivec3) VectorShuffle 289 289 0 1 2 - 291: 198(ptr) AccessChain 14 116 - 292: 7(int64_t) Load 291 - 293: 201(ptr) ImageTexelPointer 207(uCube) 290 21 - 294: 7(int64_t) AtomicUMin 293 116 119 292 - 295: 198(ptr) AccessChain 14 116 - Store 295 294 - 296: 37(ptr) AccessChain 14 19 - 297: 11(ivec4) Load 296 - 298: 70(ivec2) VectorShuffle 297 297 0 1 - 299: 198(ptr) AccessChain 14 116 - 300: 7(int64_t) Load 299 - 301: 201(ptr) ImageTexelPointer 218(u1DArray) 298 21 - 302: 7(int64_t) AtomicUMax 301 116 119 300 - 303: 198(ptr) AccessChain 14 116 - Store 303 302 - 304: 37(ptr) AccessChain 14 19 - 305: 11(ivec4) Load 304 - 306: 36(ivec3) VectorShuffle 305 305 0 1 2 - 307: 198(ptr) AccessChain 14 116 - 308: 7(int64_t) Load 307 - 309: 201(ptr) ImageTexelPointer 229(uCubeArray) 306 21 - 310: 7(int64_t) AtomicAnd 309 116 119 308 - 311: 198(ptr) AccessChain 14 116 - Store 311 310 - 312: 37(ptr) AccessChain 14 19 - 313: 11(ivec4) Load 312 - 314: 70(ivec2) VectorShuffle 313 313 0 1 - 315: 22(ptr) AccessChain 14 19 244 - 316: 10(int) Load 315 - 317: 198(ptr) AccessChain 14 116 - 318: 7(int64_t) Load 317 - 319: 201(ptr) ImageTexelPointer 240(u2DMS) 314 316 - 320: 7(int64_t) AtomicOr 319 116 119 318 - 321: 198(ptr) AccessChain 14 116 - Store 321 320 - 322: 37(ptr) AccessChain 14 19 - 323: 11(ivec4) Load 322 - 324: 70(ivec2) VectorShuffle 323 323 0 1 - 325: 198(ptr) AccessChain 14 116 - 326: 7(int64_t) Load 325 - 327: 201(ptr) ImageTexelPointer 194(u2D) 324 21 - 328: 7(int64_t) AtomicXor 327 116 119 326 - 329: 198(ptr) AccessChain 14 116 - Store 329 328 - 330: 37(ptr) AccessChain 14 19 - 331: 11(ivec4) Load 330 - 332: 36(ivec3) VectorShuffle 331 331 0 1 2 - 333: 198(ptr) AccessChain 14 116 - 334: 7(int64_t) Load 333 - 335: 201(ptr) ImageTexelPointer 207(uCube) 332 21 - 336: 7(int64_t) AtomicExchange 335 116 119 334 - 337: 198(ptr) AccessChain 14 116 - Store 337 336 - 338: 37(ptr) AccessChain 14 19 - 339: 11(ivec4) Load 338 - 340: 70(ivec2) VectorShuffle 339 339 0 1 - 341: 198(ptr) AccessChain 14 116 - 342: 7(int64_t) Load 341 - 343: 198(ptr) AccessChain 14 116 - 344: 7(int64_t) Load 343 - 345: 7(int64_t) IAdd 344 275 - 346: 201(ptr) ImageTexelPointer 218(u1DArray) 340 21 - 347: 7(int64_t) AtomicCompareExchange 346 116 119 119 345 342 - 348: 198(ptr) AccessChain 14 116 - Store 348 347 - 349: 37(ptr) AccessChain 14 19 - 350: 11(ivec4) Load 349 - 351: 36(ivec3) VectorShuffle 350 350 0 1 2 - 352: 201(ptr) ImageTexelPointer 229(uCubeArray) 351 21 - 353: 7(int64_t) AtomicLoad 352 116 119 - 354: 198(ptr) AccessChain 14 116 - Store 354 353 - 355: 37(ptr) AccessChain 14 19 - 356: 11(ivec4) Load 355 - 357: 70(ivec2) VectorShuffle 356 356 0 1 - 358: 22(ptr) AccessChain 14 19 244 - 359: 10(int) Load 358 - 360: 198(ptr) AccessChain 14 116 - 361: 7(int64_t) Load 360 - 362: 201(ptr) ImageTexelPointer 240(u2DMS) 357 359 - AtomicStore 362 116 119 361 - 364: 16 Load 18(i1D) - 365: 22(ptr) AccessChain 14 19 21 - 366: 10(int) Load 365 - 367: 8(i64vec4) ImageRead 364 366 - 369: 368(ptr) AccessChain 14 363 - 370: 8(i64vec4) Load 369 - 371: 8(i64vec4) IAdd 370 367 - 372: 368(ptr) AccessChain 14 363 - Store 372 371 - 373: 33 Load 35(i3D) - 374: 37(ptr) AccessChain 14 19 - 375: 11(ivec4) Load 374 - 376: 36(ivec3) VectorShuffle 375 375 0 1 2 - 377: 8(i64vec4) ImageRead 373 376 - 378: 368(ptr) AccessChain 14 363 - 379: 8(i64vec4) Load 378 - 380: 8(i64vec4) IAdd 379 377 - 381: 368(ptr) AccessChain 14 363 - Store 381 380 - 382: 46 Load 48(iBuf) - 383: 22(ptr) AccessChain 14 19 21 - 384: 10(int) Load 383 - 385: 8(i64vec4) ImageRead 382 384 - 386: 368(ptr) AccessChain 14 363 - 387: 8(i64vec4) Load 386 - 388: 8(i64vec4) IAdd 387 385 - 389: 368(ptr) AccessChain 14 363 - Store 389 388 - 390: 56 Load 58(i2DArray) - 391: 37(ptr) AccessChain 14 19 - 392: 11(ivec4) Load 391 - 393: 36(ivec3) VectorShuffle 392 392 0 1 2 - 394: 8(i64vec4) ImageRead 390 393 - 395: 368(ptr) AccessChain 14 363 - 396: 8(i64vec4) Load 395 - 397: 8(i64vec4) IAdd 396 394 - 398: 368(ptr) AccessChain 14 363 - Store 398 397 - 399: 67 Load 69(i2DRect) - 400: 37(ptr) AccessChain 14 19 - 401: 11(ivec4) Load 400 - 402: 70(ivec2) VectorShuffle 401 401 0 1 - 403: 8(i64vec4) ImageRead 399 402 - 404: 368(ptr) AccessChain 14 363 - 405: 8(i64vec4) Load 404 - 406: 8(i64vec4) IAdd 405 403 - 407: 368(ptr) AccessChain 14 363 - Store 407 406 - 408: 79 Load 81(i2DMSArray) - 409: 37(ptr) AccessChain 14 19 - 410: 11(ivec4) Load 409 - 411: 36(ivec3) VectorShuffle 410 410 0 1 2 - 412: 22(ptr) AccessChain 14 19 85 - 413: 10(int) Load 412 - 414: 8(i64vec4) ImageRead 408 411 Sample 413 - 415: 368(ptr) AccessChain 14 363 - 416: 8(i64vec4) Load 415 - 417: 8(i64vec4) IAdd 416 414 - 418: 368(ptr) AccessChain 14 363 - Store 418 417 - 419: 192 Load 194(u2D) - 420: 37(ptr) AccessChain 14 19 - 421: 11(ivec4) Load 420 - 422: 70(ivec2) VectorShuffle 421 421 0 1 - 425: 424(ptr) AccessChain 14 423 - 426: 9(i64vec4) Load 425 - ImageWrite 419 422 426 - 427: 205 Load 207(uCube) - 428: 37(ptr) AccessChain 14 19 - 429: 11(ivec4) Load 428 - 430: 36(ivec3) VectorShuffle 429 429 0 1 2 - 431: 424(ptr) AccessChain 14 423 - 432: 9(i64vec4) Load 431 - ImageWrite 427 430 432 - 433: 216 Load 218(u1DArray) - 434: 37(ptr) AccessChain 14 19 - 435: 11(ivec4) Load 434 - 436: 70(ivec2) VectorShuffle 435 435 0 1 - 437: 424(ptr) AccessChain 14 423 - 438: 9(i64vec4) Load 437 - ImageWrite 433 436 438 - 439: 227 Load 229(uCubeArray) - 440: 37(ptr) AccessChain 14 19 - 441: 11(ivec4) Load 440 - 442: 36(ivec3) VectorShuffle 441 441 0 1 2 - 443: 424(ptr) AccessChain 14 423 - 444: 9(i64vec4) Load 443 - ImageWrite 439 442 444 - 445: 238 Load 240(u2DMS) - 446: 37(ptr) AccessChain 14 19 - 447: 11(ivec4) Load 446 - 448: 70(ivec2) VectorShuffle 447 447 0 1 - 449: 22(ptr) AccessChain 14 19 244 - 450: 10(int) Load 449 - 451: 424(ptr) AccessChain 14 423 - 452: 9(i64vec4) Load 451 - ImageWrite 445 448 452 Sample 450 - 453: 33 Load 35(i3D) - 454: 37(ptr) AccessChain 14 19 - 455: 11(ivec4) Load 454 - 456: 36(ivec3) VectorShuffle 455 455 0 1 2 - 457: 368(ptr) AccessChain 14 363 - 459:458(ResType) ImageSparseRead 453 456 - 460: 8(i64vec4) CompositeExtract 459 1 - Store 457 460 - 461: 10(int) CompositeExtract 459 0 - 462: 56 Load 58(i2DArray) - 463: 37(ptr) AccessChain 14 19 - 464: 11(ivec4) Load 463 - 465: 36(ivec3) VectorShuffle 464 464 0 1 2 - 466: 368(ptr) AccessChain 14 363 - 467:458(ResType) ImageSparseRead 462 465 - 468: 8(i64vec4) CompositeExtract 467 1 - Store 466 468 - 469: 10(int) CompositeExtract 467 0 - 470: 67 Load 69(i2DRect) - 471: 37(ptr) AccessChain 14 19 - 472: 11(ivec4) Load 471 - 473: 70(ivec2) VectorShuffle 472 472 0 1 - 474: 368(ptr) AccessChain 14 363 - 475:458(ResType) ImageSparseRead 470 473 - 476: 8(i64vec4) CompositeExtract 475 1 - Store 474 476 - 477: 10(int) CompositeExtract 475 0 - 478: 192 Load 194(u2D) - 479: 37(ptr) AccessChain 14 19 - 480: 11(ivec4) Load 479 - 481: 70(ivec2) VectorShuffle 480 480 0 1 - 482: 424(ptr) AccessChain 14 423 - 484:483(ResType) ImageSparseRead 478 481 - 485: 9(i64vec4) CompositeExtract 484 1 - Store 482 485 - 486: 10(int) CompositeExtract 484 0 - 487: 205 Load 207(uCube) - 488: 37(ptr) AccessChain 14 19 - 489: 11(ivec4) Load 488 - 490: 36(ivec3) VectorShuffle 489 489 0 1 2 - 491: 424(ptr) AccessChain 14 423 - 492:483(ResType) ImageSparseRead 487 490 - 493: 9(i64vec4) CompositeExtract 492 1 - Store 491 493 - 494: 10(int) CompositeExtract 492 0 - 495: 227 Load 229(uCubeArray) - 496: 37(ptr) AccessChain 14 19 - 497: 11(ivec4) Load 496 - 498: 36(ivec3) VectorShuffle 497 497 0 1 2 - 499: 424(ptr) AccessChain 14 423 - 500:483(ResType) ImageSparseRead 495 498 - 501: 9(i64vec4) CompositeExtract 500 1 - Store 499 501 - 502: 10(int) CompositeExtract 500 0 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.imageLoadStoreLod.frag.out b/deps/glslang/Test/baseResults/spv.imageLoadStoreLod.frag.out deleted file mode 100644 index b8094742..00000000 --- a/deps/glslang/Test/baseResults/spv.imageLoadStoreLod.frag.out +++ /dev/null @@ -1,244 +0,0 @@ -spv.imageLoadStoreLod.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 148 - - Capability Shader - Capability Int64 - Capability ImageCubeArray - Capability SparseResidency - Capability Image1D - Capability ImageReadWriteLodAMD - Capability Int64ImageEXT - Extension "SPV_AMD_shader_image_load_store_lod" - Extension "SPV_EXT_shader_image_int64" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 77 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_AMD_shader_image_load_store_lod" - SourceExtension "GL_ARB_gpu_shader_int64" - SourceExtension "GL_EXT_shader_image_int64" - Name 4 "main" - Name 9 "f4" - Name 14 "i1D" - Name 24 "i2D" - Name 34 "i3D" - Name 46 "iiCube" - Name 53 "ii1DArray" - Name 60 "ui2DArray" - Name 64 "u4" - Name 65 "ResType" - Name 71 "uiCubeArray" - Name 77 "fragColor" - Name 86 "Buf" - MemberName 86(Buf) 0 "i64v4" - MemberName 86(Buf) 1 "u64v4" - Name 88 "" - Name 92 "i64i1D" - Name 102 "i64i2D" - Name 111 "i64i3D" - Name 120 "u64iCube" - Name 127 "u64i1DArray" - Name 133 "u64i2DArray" - Name 136 "ResType" - Name 142 "u64iCubeArray" - Decorate 14(i1D) DescriptorSet 0 - Decorate 14(i1D) Binding 0 - Decorate 24(i2D) DescriptorSet 0 - Decorate 24(i2D) Binding 1 - Decorate 34(i3D) DescriptorSet 0 - Decorate 34(i3D) Binding 2 - Decorate 46(iiCube) DescriptorSet 0 - Decorate 46(iiCube) Binding 3 - Decorate 53(ii1DArray) DescriptorSet 0 - Decorate 53(ii1DArray) Binding 4 - Decorate 60(ui2DArray) DescriptorSet 0 - Decorate 60(ui2DArray) Binding 5 - Decorate 71(uiCubeArray) DescriptorSet 0 - Decorate 71(uiCubeArray) Binding 6 - Decorate 77(fragColor) Location 0 - MemberDecorate 86(Buf) 0 Offset 0 - MemberDecorate 86(Buf) 1 Offset 32 - Decorate 86(Buf) BufferBlock - Decorate 88 DescriptorSet 0 - Decorate 88 Binding 14 - Decorate 92(i64i1D) DescriptorSet 0 - Decorate 92(i64i1D) Binding 7 - Decorate 102(i64i2D) DescriptorSet 0 - Decorate 102(i64i2D) Binding 8 - Decorate 111(i64i3D) DescriptorSet 0 - Decorate 111(i64i3D) Binding 9 - Decorate 120(u64iCube) DescriptorSet 0 - Decorate 120(u64iCube) Binding 10 - Decorate 127(u64i1DArray) DescriptorSet 0 - Decorate 127(u64i1DArray) Binding 11 - Decorate 133(u64i2DArray) DescriptorSet 0 - Decorate 133(u64i2DArray) Binding 12 - Decorate 142(u64iCubeArray) DescriptorSet 0 - Decorate 142(u64iCubeArray) Binding 13 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: 6(float) Constant 0 - 11: 7(fvec4) ConstantComposite 10 10 10 10 - 12: TypeImage 6(float) 1D nonsampled format:Rgba32f - 13: TypePointer UniformConstant 12 - 14(i1D): 13(ptr) Variable UniformConstant - 16: TypeInt 32 1 - 17: 16(int) Constant 1 - 18: 16(int) Constant 3 - 22: TypeImage 6(float) 2D nonsampled format:Rgba32f - 23: TypePointer UniformConstant 22 - 24(i2D): 23(ptr) Variable UniformConstant - 26: TypeVector 16(int) 2 - 27: 16(int) Constant 2 - 28: 26(ivec2) ConstantComposite 27 18 - 32: TypeImage 6(float) 3D nonsampled format:Rgba32f - 33: TypePointer UniformConstant 32 - 34(i3D): 33(ptr) Variable UniformConstant - 36: TypeVector 16(int) 3 - 37: 16(int) Constant 4 - 38: 16(int) Constant 5 - 39: 16(int) Constant 6 - 40: 36(ivec3) ConstantComposite 37 38 39 - 44: TypeImage 16(int) Cube nonsampled format:Rgba32i - 45: TypePointer UniformConstant 44 - 46(iiCube): 45(ptr) Variable UniformConstant - 49: TypeVector 16(int) 4 - 51: TypeImage 16(int) 1D array nonsampled format:Rgba32i - 52: TypePointer UniformConstant 51 - 53(ii1DArray): 52(ptr) Variable UniformConstant - 57: TypeInt 32 0 - 58: TypeImage 57(int) 2D array nonsampled format:Rgba32ui - 59: TypePointer UniformConstant 58 - 60(ui2DArray): 59(ptr) Variable UniformConstant - 62: TypeVector 57(int) 4 - 63: TypePointer Function 62(ivec4) - 65(ResType): TypeStruct 16(int) 62(ivec4) - 69: TypeImage 57(int) Cube array nonsampled format:Rgba32ui - 70: TypePointer UniformConstant 69 - 71(uiCubeArray): 70(ptr) Variable UniformConstant - 76: TypePointer Output 7(fvec4) - 77(fragColor): 76(ptr) Variable Output - 82: TypeInt 64 1 - 83: TypeVector 82(int64_t) 4 - 84: TypeInt 64 0 - 85: TypeVector 84(int64_t) 4 - 86(Buf): TypeStruct 83(i64vec4) 85(i64vec4) - 87: TypePointer Uniform 86(Buf) - 88: 87(ptr) Variable Uniform - 89: 16(int) Constant 0 - 90: TypeImage 82(int64_t) 1D nonsampled format:R64i - 91: TypePointer UniformConstant 90 - 92(i64i1D): 91(ptr) Variable UniformConstant - 95: TypePointer Uniform 83(i64vec4) - 100: TypeImage 82(int64_t) 2D nonsampled format:R64i - 101: TypePointer UniformConstant 100 - 102(i64i2D): 101(ptr) Variable UniformConstant - 109: TypeImage 82(int64_t) 3D nonsampled format:R64i - 110: TypePointer UniformConstant 109 - 111(i64i3D): 110(ptr) Variable UniformConstant - 118: TypeImage 84(int64_t) Cube nonsampled format:R64ui - 119: TypePointer UniformConstant 118 - 120(u64iCube): 119(ptr) Variable UniformConstant - 122: TypePointer Uniform 85(i64vec4) - 125: TypeImage 84(int64_t) 1D array nonsampled format:R64ui - 126: TypePointer UniformConstant 125 -127(u64i1DArray): 126(ptr) Variable UniformConstant - 131: TypeImage 84(int64_t) 2D array nonsampled format:R64ui - 132: TypePointer UniformConstant 131 -133(u64i2DArray): 132(ptr) Variable UniformConstant - 136(ResType): TypeStruct 16(int) 85(i64vec4) - 140: TypeImage 84(int64_t) Cube array nonsampled format:R64ui - 141: TypePointer UniformConstant 140 -142(u64iCubeArray): 141(ptr) Variable UniformConstant - 4(main): 2 Function None 3 - 5: Label - 9(f4): 8(ptr) Variable Function - 64(u4): 63(ptr) Variable Function - Store 9(f4) 11 - 15: 12 Load 14(i1D) - 19: 7(fvec4) ImageRead 15 17 Lod 18 - 20: 7(fvec4) Load 9(f4) - 21: 7(fvec4) FAdd 20 19 - Store 9(f4) 21 - 25: 22 Load 24(i2D) - 29: 7(fvec4) ImageRead 25 28 Lod 18 - 30: 7(fvec4) Load 9(f4) - 31: 7(fvec4) FAdd 30 29 - Store 9(f4) 31 - 35: 32 Load 34(i3D) - 41: 7(fvec4) ImageRead 35 40 Lod 18 - 42: 7(fvec4) Load 9(f4) - 43: 7(fvec4) FAdd 42 41 - Store 9(f4) 43 - 47: 44 Load 46(iiCube) - 48: 7(fvec4) Load 9(f4) - 50: 49(ivec4) ConvertFToS 48 - ImageWrite 47 40 50 Lod 18 - 54: 51 Load 53(ii1DArray) - 55: 7(fvec4) Load 9(f4) - 56: 49(ivec4) ConvertFToS 55 - ImageWrite 54 28 56 Lod 18 - 61: 58 Load 60(ui2DArray) - 66: 65(ResType) ImageSparseRead 61 40 Lod 18 - 67: 62(ivec4) CompositeExtract 66 1 - Store 64(u4) 67 - 68: 16(int) CompositeExtract 66 0 - 72: 69 Load 71(uiCubeArray) - 73: 65(ResType) ImageSparseRead 72 40 Lod 18 - 74: 62(ivec4) CompositeExtract 73 1 - Store 64(u4) 74 - 75: 16(int) CompositeExtract 73 0 - 78: 7(fvec4) Load 9(f4) - 79: 62(ivec4) Load 64(u4) - 80: 7(fvec4) ConvertUToF 79 - 81: 7(fvec4) FAdd 78 80 - Store 77(fragColor) 81 - 93: 90 Load 92(i64i1D) - 94: 83(i64vec4) ImageRead 93 17 Lod 18 - 96: 95(ptr) AccessChain 88 89 - 97: 83(i64vec4) Load 96 - 98: 83(i64vec4) IAdd 97 94 - 99: 95(ptr) AccessChain 88 89 - Store 99 98 - 103: 100 Load 102(i64i2D) - 104: 83(i64vec4) ImageRead 103 28 Lod 18 - 105: 95(ptr) AccessChain 88 89 - 106: 83(i64vec4) Load 105 - 107: 83(i64vec4) IAdd 106 104 - 108: 95(ptr) AccessChain 88 89 - Store 108 107 - 112: 109 Load 111(i64i3D) - 113: 83(i64vec4) ImageRead 112 40 Lod 18 - 114: 95(ptr) AccessChain 88 89 - 115: 83(i64vec4) Load 114 - 116: 83(i64vec4) IAdd 115 113 - 117: 95(ptr) AccessChain 88 89 - Store 117 116 - 121: 118 Load 120(u64iCube) - 123: 122(ptr) AccessChain 88 17 - 124: 85(i64vec4) Load 123 - ImageWrite 121 40 124 Lod 18 - 128: 125 Load 127(u64i1DArray) - 129: 122(ptr) AccessChain 88 17 - 130: 85(i64vec4) Load 129 - ImageWrite 128 28 130 Lod 18 - 134: 131 Load 133(u64i2DArray) - 135: 122(ptr) AccessChain 88 17 - 137:136(ResType) ImageSparseRead 134 40 Lod 18 - 138: 85(i64vec4) CompositeExtract 137 1 - Store 135 138 - 139: 16(int) CompositeExtract 137 0 - 143: 140 Load 142(u64iCubeArray) - 144: 122(ptr) AccessChain 88 17 - 145:136(ResType) ImageSparseRead 143 40 Lod 18 - 146: 85(i64vec4) CompositeExtract 145 1 - Store 144 146 - 147: 16(int) CompositeExtract 145 0 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.int16.amd.frag.out b/deps/glslang/Test/baseResults/spv.int16.amd.frag.out deleted file mode 100644 index 676d99c1..00000000 --- a/deps/glslang/Test/baseResults/spv.int16.amd.frag.out +++ /dev/null @@ -1,823 +0,0 @@ -spv.int16.amd.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 576 - - Capability Shader - Capability Float16 - Capability Float64 - Capability Int64 - Capability Int16 - Capability StorageUniform16 - Capability StorageInputOutput16 - Extension "SPV_AMD_gpu_shader_int16" - Extension "SPV_KHR_16bit_storage" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 535 537 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_AMD_gpu_shader_half_float" - SourceExtension "GL_AMD_gpu_shader_int16" - SourceExtension "GL_ARB_gpu_shader_int64" - Name 4 "main" - Name 6 "literal(" - Name 8 "operators(" - Name 10 "typeCast(" - Name 12 "builtinFuncs(" - Name 16 "u16" - Name 25 "Uniforms" - MemberName 25(Uniforms) 0 "i" - Name 27 "" - Name 34 "indexable" - Name 45 "indexable" - Name 51 "u16v" - Name 57 "i16" - Name 70 "u16" - Name 127 "b" - Name 148 "u" - Name 159 "i" - Name 189 "i16v" - Name 192 "bv" - Name 200 "u16v" - Name 213 "iv" - Name 226 "uv" - Name 240 "fv" - Name 252 "dv" - Name 264 "f16v" - Name 276 "i64v" - Name 290 "u64v" - Name 305 "i16v" - Name 311 "i16" - Name 319 "u16v" - Name 321 "u16" - Name 393 "f16v" - Name 396 "exp" - Name 397 "ResType" - Name 420 "packi" - Name 425 "packu" - Name 436 "packi64" - Name 445 "packu64" - Name 454 "bv" - Name 531 "Block" - MemberName 531(Block) 0 "i16v" - MemberName 531(Block) 1 "u16" - Name 533 "block" - Name 535 "iu16v" - Name 537 "ii16" - Name 538 "si64" - Name 539 "su64" - Name 540 "si" - Name 541 "su" - Name 542 "sb" - Name 543 "si16" - Name 544 "su16" - Name 545 "i16_to_b" - Name 546 "u16_to_b" - Name 547 "b_to_i16" - Name 548 "b_to_u16" - Name 549 "i16_to_i" - Name 551 "u16_to_i" - Name 552 "i_to_i16" - Name 554 "i_to_u16" - Name 556 "i16_to_u" - Name 557 "u16_to_u" - Name 559 "u_to_i16" - Name 560 "u_to_u16" - Name 561 "i16_to_i64" - Name 564 "u16_to_i64" - Name 565 "i64_to_i16" - Name 567 "i64_to_u16" - Name 569 "i16_to_u64" - Name 570 "u16_to_u64" - Name 572 "u64_to_i16" - Name 573 "u64_to_u16" - Name 574 "i16_to_u16" - Name 575 "u16_to_i16" - MemberDecorate 25(Uniforms) 0 Offset 0 - Decorate 25(Uniforms) Block - Decorate 27 DescriptorSet 0 - Decorate 27 Binding 0 - MemberDecorate 531(Block) 0 Offset 0 - MemberDecorate 531(Block) 1 Offset 6 - Decorate 531(Block) Block - Decorate 533(block) DescriptorSet 0 - Decorate 533(block) Binding 1 - Decorate 535(iu16v) Flat - Decorate 535(iu16v) Location 0 - Decorate 537(ii16) Flat - Decorate 537(ii16) Location 1 - Decorate 538(si64) SpecId 100 - Decorate 539(su64) SpecId 101 - Decorate 540(si) SpecId 102 - Decorate 541(su) SpecId 103 - Decorate 542(sb) SpecId 104 - Decorate 543(si16) SpecId 105 - Decorate 544(su16) SpecId 106 - 2: TypeVoid - 3: TypeFunction 2 - 14: TypeInt 16 0 - 15: TypePointer Function 14(int16_t) - 17: TypeInt 16 1 - 18: TypeInt 32 0 - 19: 18(int) Constant 3 - 20: TypeArray 17(int16_t) 19 - 21: 17(int16_t) Constant 273 - 22: 17(int16_t) Constant 4294967294 - 23: 17(int16_t) Constant 256 - 24: 20 ConstantComposite 21 22 23 - 25(Uniforms): TypeStruct 18(int) - 26: TypePointer Uniform 25(Uniforms) - 27: 26(ptr) Variable Uniform - 28: TypeInt 32 1 - 29: 28(int) Constant 0 - 30: TypePointer Uniform 18(int) - 33: TypePointer Function 20 - 35: TypePointer Function 17(int16_t) - 39: TypeArray 14(int16_t) 19 - 40: 14(int16_t) Constant 65535 - 41: 39 ConstantComposite 40 40 40 - 44: TypePointer Function 39 - 49: TypeVector 14(int16_t) 3 - 50: TypePointer Function 49(i16vec3) - 53: 17(int16_t) Constant 1 - 54: TypeVector 17(int16_t) 3 - 111: 18(int) Constant 1 - 117: 18(int) Constant 2 - 125: TypeBool - 126: TypePointer Function 125(bool) - 128: 18(int) Constant 0 - 147: TypePointer Function 18(int) - 158: TypePointer Function 28(int) - 187: TypeVector 17(int16_t) 2 - 188: TypePointer Function 187(i16vec2) - 190: TypeVector 125(bool) 2 - 191: TypePointer Function 190(bvec2) - 194: 17(int16_t) Constant 0 - 195:187(i16vec2) ConstantComposite 194 194 - 196:187(i16vec2) ConstantComposite 53 53 - 198: TypeVector 14(int16_t) 2 - 199: TypePointer Function 198(i16vec2) - 202: 14(int16_t) Constant 0 - 203: 14(int16_t) Constant 1 - 204:198(i16vec2) ConstantComposite 202 202 - 205:198(i16vec2) ConstantComposite 203 203 - 211: TypeVector 28(int) 2 - 212: TypePointer Function 211(ivec2) - 222: TypeVector 18(int) 2 - 225: TypePointer Function 222(ivec2) - 237: TypeFloat 32 - 238: TypeVector 237(float) 2 - 239: TypePointer Function 238(fvec2) - 249: TypeFloat 64 - 250: TypeVector 249(float64_t) 2 - 251: TypePointer Function 250(f64vec2) - 261: TypeFloat 16 - 262: TypeVector 261(float16_t) 2 - 263: TypePointer Function 262(f16vec2) - 273: TypeInt 64 1 - 274: TypeVector 273(int64_t) 2 - 275: TypePointer Function 274(i64vec2) - 285: TypeInt 64 0 - 286: TypeVector 285(int64_t) 2 - 289: TypePointer Function 286(i64vec2) - 316: 17(int16_t) Constant 4294967295 - 317:187(i16vec2) ConstantComposite 316 316 - 326: 49(i16vec3) ConstantComposite 202 202 202 - 368: 125(bool) ConstantTrue - 375: 125(bool) ConstantFalse - 376: 190(bvec2) ConstantComposite 375 375 - 388: TypeVector 125(bool) 3 - 389: 388(bvec3) ConstantComposite 375 375 375 - 391: TypeVector 261(float16_t) 3 - 392: TypePointer Function 391(f16vec3) - 395: TypePointer Function 54(i16vec3) - 397(ResType): TypeStruct 391(f16vec3) 54(i16vec3) - 407: TypePointer Function 261(float16_t) - 435: TypePointer Function 273(int64_t) - 438: TypeVector 17(int16_t) 4 - 444: TypePointer Function 285(int64_t) - 447: TypeVector 14(int16_t) 4 - 453: TypePointer Function 388(bvec3) - 531(Block): TypeStruct 54(i16vec3) 14(int16_t) - 532: TypePointer Uniform 531(Block) - 533(block): 532(ptr) Variable Uniform - 534: TypePointer Input 49(i16vec3) - 535(iu16v): 534(ptr) Variable Input - 536: TypePointer Input 17(int16_t) - 537(ii16): 536(ptr) Variable Input - 538(si64):273(int64_t) SpecConstant 4294967286 4294967295 - 539(su64):285(int64_t) SpecConstant 20 0 - 540(si): 28(int) SpecConstant 4294967291 - 541(su): 18(int) SpecConstant 4 - 542(sb): 125(bool) SpecConstantTrue - 543(si16): 17(int16_t) SpecConstant 4294967291 - 544(su16): 14(int16_t) SpecConstant 4 - 545(i16_to_b): 125(bool) SpecConstantOp 171 543(si16) 202 - 546(u16_to_b): 125(bool) SpecConstantOp 171 544(su16) 202 - 547(b_to_i16): 17(int16_t) SpecConstantOp 169 542(sb) 53 194 - 548(b_to_u16): 14(int16_t) SpecConstantOp 169 542(sb) 203 202 - 549(i16_to_i): 28(int) SpecConstantOp 114 543(si16) - 550: 18(int) SpecConstantOp 113 544(su16) - 551(u16_to_i): 28(int) SpecConstantOp 128 550 128 - 552(i_to_i16): 17(int16_t) SpecConstantOp 114 540(si) - 553: 17(int16_t) SpecConstantOp 114 540(si) - 554(i_to_u16): 14(int16_t) SpecConstantOp 128 553 202 - 555: 28(int) SpecConstantOp 114 543(si16) - 556(i16_to_u): 18(int) SpecConstantOp 128 555 128 - 557(u16_to_u): 18(int) SpecConstantOp 113 544(su16) - 558: 14(int16_t) SpecConstantOp 113 541(su) - 559(u_to_i16): 17(int16_t) SpecConstantOp 128 558 202 - 560(u_to_u16): 14(int16_t) SpecConstantOp 113 541(su) - 561(i16_to_i64):273(int64_t) SpecConstantOp 114 543(si16) - 562:285(int64_t) SpecConstantOp 113 544(su16) - 563:285(int64_t) Constant 0 0 - 564(u16_to_i64):273(int64_t) SpecConstantOp 128 562 563 - 565(i64_to_i16): 17(int16_t) SpecConstantOp 114 538(si64) - 566: 17(int16_t) SpecConstantOp 114 538(si64) - 567(i64_to_u16): 14(int16_t) SpecConstantOp 128 566 202 - 568:273(int64_t) SpecConstantOp 114 543(si16) - 569(i16_to_u64):285(int64_t) SpecConstantOp 128 568 563 - 570(u16_to_u64):285(int64_t) SpecConstantOp 113 544(su16) - 571: 14(int16_t) SpecConstantOp 113 539(su64) - 572(u64_to_i16): 17(int16_t) SpecConstantOp 128 571 202 - 573(u64_to_u16): 14(int16_t) SpecConstantOp 113 539(su64) - 574(i16_to_u16): 14(int16_t) SpecConstantOp 128 543(si16) 202 - 575(u16_to_i16): 17(int16_t) SpecConstantOp 128 544(su16) 202 - 4(main): 2 Function None 3 - 5: Label - 527: 2 FunctionCall 6(literal() - 528: 2 FunctionCall 8(operators() - 529: 2 FunctionCall 10(typeCast() - 530: 2 FunctionCall 12(builtinFuncs() - Return - FunctionEnd - 6(literal(): 2 Function None 3 - 7: Label - 16(u16): 15(ptr) Variable Function - 34(indexable): 33(ptr) Variable Function - 45(indexable): 44(ptr) Variable Function - 31: 30(ptr) AccessChain 27 29 - 32: 18(int) Load 31 - Store 34(indexable) 24 - 36: 35(ptr) AccessChain 34(indexable) 32 - 37: 17(int16_t) Load 36 - 38: 14(int16_t) Bitcast 37 - 42: 30(ptr) AccessChain 27 29 - 43: 18(int) Load 42 - Store 45(indexable) 41 - 46: 15(ptr) AccessChain 45(indexable) 43 - 47: 14(int16_t) Load 46 - 48: 14(int16_t) IAdd 38 47 - Store 16(u16) 48 - Return - FunctionEnd - 8(operators(): 2 Function None 3 - 9: Label - 51(u16v): 50(ptr) Variable Function - 57(i16): 35(ptr) Variable Function - 70(u16): 15(ptr) Variable Function - 127(b): 126(ptr) Variable Function - 148(u): 147(ptr) Variable Function - 159(i): 158(ptr) Variable Function - 52: 49(i16vec3) Load 51(u16v) - 55: 54(i16vec3) CompositeConstruct 53 53 53 - 56: 49(i16vec3) IAdd 52 55 - Store 51(u16v) 56 - 58: 17(int16_t) Load 57(i16) - 59: 17(int16_t) ISub 58 53 - Store 57(i16) 59 - 60: 17(int16_t) Load 57(i16) - 61: 17(int16_t) IAdd 60 53 - Store 57(i16) 61 - 62: 49(i16vec3) Load 51(u16v) - 63: 54(i16vec3) CompositeConstruct 53 53 53 - 64: 49(i16vec3) ISub 62 63 - Store 51(u16v) 64 - 65: 49(i16vec3) Load 51(u16v) - 66: 49(i16vec3) Not 65 - Store 51(u16v) 66 - 67: 17(int16_t) Load 57(i16) - Store 57(i16) 67 - 68: 49(i16vec3) Load 51(u16v) - 69: 49(i16vec3) SNegate 68 - Store 51(u16v) 69 - 71: 17(int16_t) Load 57(i16) - 72: 14(int16_t) Bitcast 71 - 73: 14(int16_t) Load 70(u16) - 74: 14(int16_t) IAdd 73 72 - Store 70(u16) 74 - 75: 49(i16vec3) Load 51(u16v) - 76: 49(i16vec3) Load 51(u16v) - 77: 49(i16vec3) ISub 76 75 - Store 51(u16v) 77 - 78: 17(int16_t) Load 57(i16) - 79: 17(int16_t) Load 57(i16) - 80: 17(int16_t) IMul 79 78 - Store 57(i16) 80 - 81: 49(i16vec3) Load 51(u16v) - 82: 49(i16vec3) Load 51(u16v) - 83: 49(i16vec3) UDiv 82 81 - Store 51(u16v) 83 - 84: 17(int16_t) Load 57(i16) - 85: 14(int16_t) Bitcast 84 - 86: 49(i16vec3) Load 51(u16v) - 87: 49(i16vec3) CompositeConstruct 85 85 85 - 88: 49(i16vec3) UMod 86 87 - Store 51(u16v) 88 - 89: 49(i16vec3) Load 51(u16v) - 90: 49(i16vec3) Load 51(u16v) - 91: 49(i16vec3) IAdd 89 90 - Store 51(u16v) 91 - 92: 17(int16_t) Load 57(i16) - 93: 14(int16_t) Bitcast 92 - 94: 14(int16_t) Load 70(u16) - 95: 14(int16_t) ISub 93 94 - Store 70(u16) 95 - 96: 49(i16vec3) Load 51(u16v) - 97: 17(int16_t) Load 57(i16) - 98: 14(int16_t) Bitcast 97 - 99: 49(i16vec3) CompositeConstruct 98 98 98 - 100: 49(i16vec3) IMul 96 99 - Store 51(u16v) 100 - 101: 17(int16_t) Load 57(i16) - 102: 17(int16_t) Load 57(i16) - 103: 17(int16_t) IMul 101 102 - Store 57(i16) 103 - 104: 17(int16_t) Load 57(i16) - 105: 17(int16_t) Load 57(i16) - 106: 17(int16_t) SMod 104 105 - Store 57(i16) 106 - 107: 17(int16_t) Load 57(i16) - 108: 49(i16vec3) Load 51(u16v) - 109: 54(i16vec3) CompositeConstruct 107 107 107 - 110: 49(i16vec3) ShiftLeftLogical 108 109 - Store 51(u16v) 110 - 112: 15(ptr) AccessChain 51(u16v) 111 - 113: 14(int16_t) Load 112 - 114: 17(int16_t) Load 57(i16) - 115: 17(int16_t) ShiftRightArithmetic 114 113 - Store 57(i16) 115 - 116: 17(int16_t) Load 57(i16) - 118: 15(ptr) AccessChain 51(u16v) 117 - 119: 14(int16_t) Load 118 - 120: 17(int16_t) ShiftLeftLogical 116 119 - Store 57(i16) 120 - 121: 49(i16vec3) Load 51(u16v) - 122: 17(int16_t) Load 57(i16) - 123: 54(i16vec3) CompositeConstruct 122 122 122 - 124: 49(i16vec3) ShiftLeftLogical 121 123 - Store 51(u16v) 124 - 129: 15(ptr) AccessChain 51(u16v) 128 - 130: 14(int16_t) Load 129 - 131: 17(int16_t) Load 57(i16) - 132: 14(int16_t) Bitcast 131 - 133: 125(bool) INotEqual 130 132 - Store 127(b) 133 - 134: 17(int16_t) Load 57(i16) - 135: 14(int16_t) Bitcast 134 - 136: 15(ptr) AccessChain 51(u16v) 128 - 137: 14(int16_t) Load 136 - 138: 125(bool) IEqual 135 137 - Store 127(b) 138 - 139: 15(ptr) AccessChain 51(u16v) 128 - 140: 14(int16_t) Load 139 - 141: 15(ptr) AccessChain 51(u16v) 111 - 142: 14(int16_t) Load 141 - 143: 125(bool) UGreaterThan 140 142 - Store 127(b) 143 - 144: 17(int16_t) Load 57(i16) - 145: 28(int) SConvert 144 - 146: 18(int) Bitcast 145 - 149: 18(int) Load 148(u) - 150: 125(bool) ULessThan 146 149 - Store 127(b) 150 - 151: 15(ptr) AccessChain 51(u16v) 111 - 152: 14(int16_t) Load 151 - 153: 15(ptr) AccessChain 51(u16v) 128 - 154: 14(int16_t) Load 153 - 155: 125(bool) UGreaterThanEqual 152 154 - Store 127(b) 155 - 156: 17(int16_t) Load 57(i16) - 157: 28(int) SConvert 156 - 160: 28(int) Load 159(i) - 161: 125(bool) SLessThanEqual 157 160 - Store 127(b) 161 - 162: 17(int16_t) Load 57(i16) - 163: 14(int16_t) Bitcast 162 - 164: 49(i16vec3) Load 51(u16v) - 165: 49(i16vec3) CompositeConstruct 163 163 163 - 166: 49(i16vec3) BitwiseOr 164 165 - Store 51(u16v) 166 - 167: 17(int16_t) Load 57(i16) - 168: 14(int16_t) Bitcast 167 - 169: 14(int16_t) Load 70(u16) - 170: 14(int16_t) BitwiseOr 168 169 - Store 70(u16) 170 - 171: 17(int16_t) Load 57(i16) - 172: 17(int16_t) Load 57(i16) - 173: 17(int16_t) BitwiseAnd 172 171 - Store 57(i16) 173 - 174: 49(i16vec3) Load 51(u16v) - 175: 49(i16vec3) Load 51(u16v) - 176: 49(i16vec3) BitwiseAnd 174 175 - Store 51(u16v) 176 - 177: 17(int16_t) Load 57(i16) - 178: 14(int16_t) Bitcast 177 - 179: 49(i16vec3) Load 51(u16v) - 180: 49(i16vec3) CompositeConstruct 178 178 178 - 181: 49(i16vec3) BitwiseXor 179 180 - Store 51(u16v) 181 - 182: 49(i16vec3) Load 51(u16v) - 183: 17(int16_t) Load 57(i16) - 184: 14(int16_t) Bitcast 183 - 185: 49(i16vec3) CompositeConstruct 184 184 184 - 186: 49(i16vec3) BitwiseXor 182 185 - Store 51(u16v) 186 - Return - FunctionEnd - 10(typeCast(): 2 Function None 3 - 11: Label - 189(i16v): 188(ptr) Variable Function - 192(bv): 191(ptr) Variable Function - 200(u16v): 199(ptr) Variable Function - 213(iv): 212(ptr) Variable Function - 226(uv): 225(ptr) Variable Function - 240(fv): 239(ptr) Variable Function - 252(dv): 251(ptr) Variable Function - 264(f16v): 263(ptr) Variable Function - 276(i64v): 275(ptr) Variable Function - 290(u64v): 289(ptr) Variable Function - 193: 190(bvec2) Load 192(bv) - 197:187(i16vec2) Select 193 196 195 - Store 189(i16v) 197 - 201: 190(bvec2) Load 192(bv) - 206:198(i16vec2) Select 201 205 204 - Store 200(u16v) 206 - 207:187(i16vec2) Load 189(i16v) - 208: 190(bvec2) INotEqual 207 204 - Store 192(bv) 208 - 209:198(i16vec2) Load 200(u16v) - 210: 190(bvec2) INotEqual 209 204 - Store 192(bv) 210 - 214: 211(ivec2) Load 213(iv) - 215:187(i16vec2) SConvert 214 - Store 189(i16v) 215 - 216: 211(ivec2) Load 213(iv) - 217:187(i16vec2) SConvert 216 - 218:198(i16vec2) Bitcast 217 - Store 200(u16v) 218 - 219:187(i16vec2) Load 189(i16v) - 220: 211(ivec2) SConvert 219 - Store 213(iv) 220 - 221:198(i16vec2) Load 200(u16v) - 223: 222(ivec2) UConvert 221 - 224: 211(ivec2) Bitcast 223 - Store 213(iv) 224 - 227: 222(ivec2) Load 226(uv) - 228:198(i16vec2) UConvert 227 - 229:187(i16vec2) Bitcast 228 - Store 189(i16v) 229 - 230: 222(ivec2) Load 226(uv) - 231:198(i16vec2) UConvert 230 - Store 200(u16v) 231 - 232:187(i16vec2) Load 189(i16v) - 233: 211(ivec2) SConvert 232 - 234: 222(ivec2) Bitcast 233 - Store 226(uv) 234 - 235:198(i16vec2) Load 200(u16v) - 236: 222(ivec2) UConvert 235 - Store 226(uv) 236 - 241: 238(fvec2) Load 240(fv) - 242:187(i16vec2) ConvertFToS 241 - Store 189(i16v) 242 - 243: 238(fvec2) Load 240(fv) - 244:198(i16vec2) ConvertFToU 243 - Store 200(u16v) 244 - 245:187(i16vec2) Load 189(i16v) - 246: 238(fvec2) ConvertSToF 245 - Store 240(fv) 246 - 247:198(i16vec2) Load 200(u16v) - 248: 238(fvec2) ConvertUToF 247 - Store 240(fv) 248 - 253:250(f64vec2) Load 252(dv) - 254:187(i16vec2) ConvertFToS 253 - Store 189(i16v) 254 - 255:250(f64vec2) Load 252(dv) - 256:198(i16vec2) ConvertFToU 255 - Store 200(u16v) 256 - 257:187(i16vec2) Load 189(i16v) - 258:250(f64vec2) ConvertSToF 257 - Store 252(dv) 258 - 259:198(i16vec2) Load 200(u16v) - 260:250(f64vec2) ConvertUToF 259 - Store 252(dv) 260 - 265:262(f16vec2) Load 264(f16v) - 266:187(i16vec2) ConvertFToS 265 - Store 189(i16v) 266 - 267:262(f16vec2) Load 264(f16v) - 268:198(i16vec2) ConvertFToU 267 - Store 200(u16v) 268 - 269:187(i16vec2) Load 189(i16v) - 270:262(f16vec2) ConvertSToF 269 - Store 264(f16v) 270 - 271:198(i16vec2) Load 200(u16v) - 272:262(f16vec2) ConvertUToF 271 - Store 264(f16v) 272 - 277:274(i64vec2) Load 276(i64v) - 278:187(i16vec2) SConvert 277 - Store 189(i16v) 278 - 279:274(i64vec2) Load 276(i64v) - 280:187(i16vec2) SConvert 279 - 281:198(i16vec2) Bitcast 280 - Store 200(u16v) 281 - 282:187(i16vec2) Load 189(i16v) - 283:274(i64vec2) SConvert 282 - Store 276(i64v) 283 - 284:198(i16vec2) Load 200(u16v) - 287:286(i64vec2) UConvert 284 - 288:274(i64vec2) Bitcast 287 - Store 276(i64v) 288 - 291:286(i64vec2) Load 290(u64v) - 292:198(i16vec2) UConvert 291 - 293:187(i16vec2) Bitcast 292 - Store 189(i16v) 293 - 294:286(i64vec2) Load 290(u64v) - 295:198(i16vec2) UConvert 294 - Store 200(u16v) 295 - 296:187(i16vec2) Load 189(i16v) - 297:274(i64vec2) SConvert 296 - 298:286(i64vec2) Bitcast 297 - Store 290(u64v) 298 - 299:198(i16vec2) Load 200(u16v) - 300:286(i64vec2) UConvert 299 - Store 290(u64v) 300 - 301:198(i16vec2) Load 200(u16v) - 302:187(i16vec2) Bitcast 301 - Store 189(i16v) 302 - 303:187(i16vec2) Load 189(i16v) - 304:198(i16vec2) Bitcast 303 - Store 200(u16v) 304 - Return - FunctionEnd -12(builtinFuncs(): 2 Function None 3 - 13: Label - 305(i16v): 188(ptr) Variable Function - 311(i16): 35(ptr) Variable Function - 319(u16v): 50(ptr) Variable Function - 321(u16): 15(ptr) Variable Function - 393(f16v): 392(ptr) Variable Function - 396(exp): 395(ptr) Variable Function - 420(packi): 158(ptr) Variable Function - 425(packu): 147(ptr) Variable Function - 436(packi64): 435(ptr) Variable Function - 445(packu64): 444(ptr) Variable Function - 454(bv): 453(ptr) Variable Function - 306:187(i16vec2) Load 305(i16v) - 307:187(i16vec2) ExtInst 1(GLSL.std.450) 5(SAbs) 306 - Store 305(i16v) 307 - 308:187(i16vec2) Load 305(i16v) - 309:187(i16vec2) ExtInst 1(GLSL.std.450) 7(SSign) 308 - Store 305(i16v) 309 - 310:187(i16vec2) Load 305(i16v) - 312: 17(int16_t) Load 311(i16) - 313:187(i16vec2) CompositeConstruct 312 312 - 314:187(i16vec2) ExtInst 1(GLSL.std.450) 39(SMin) 310 313 - Store 305(i16v) 314 - 315:187(i16vec2) Load 305(i16v) - 318:187(i16vec2) ExtInst 1(GLSL.std.450) 39(SMin) 315 317 - Store 305(i16v) 318 - 320: 49(i16vec3) Load 319(u16v) - 322: 14(int16_t) Load 321(u16) - 323: 49(i16vec3) CompositeConstruct 322 322 322 - 324: 49(i16vec3) ExtInst 1(GLSL.std.450) 38(UMin) 320 323 - Store 319(u16v) 324 - 325: 49(i16vec3) Load 319(u16v) - 327: 49(i16vec3) ExtInst 1(GLSL.std.450) 38(UMin) 325 326 - Store 319(u16v) 327 - 328:187(i16vec2) Load 305(i16v) - 329: 17(int16_t) Load 311(i16) - 330:187(i16vec2) CompositeConstruct 329 329 - 331:187(i16vec2) ExtInst 1(GLSL.std.450) 42(SMax) 328 330 - Store 305(i16v) 331 - 332:187(i16vec2) Load 305(i16v) - 333:187(i16vec2) ExtInst 1(GLSL.std.450) 42(SMax) 332 317 - Store 305(i16v) 333 - 334: 49(i16vec3) Load 319(u16v) - 335: 14(int16_t) Load 321(u16) - 336: 49(i16vec3) CompositeConstruct 335 335 335 - 337: 49(i16vec3) ExtInst 1(GLSL.std.450) 41(UMax) 334 336 - Store 319(u16v) 337 - 338: 49(i16vec3) Load 319(u16v) - 339: 49(i16vec3) ExtInst 1(GLSL.std.450) 41(UMax) 338 326 - Store 319(u16v) 339 - 340:187(i16vec2) Load 305(i16v) - 341: 17(int16_t) Load 311(i16) - 342: 17(int16_t) SNegate 341 - 343: 17(int16_t) Load 311(i16) - 344:187(i16vec2) CompositeConstruct 342 342 - 345:187(i16vec2) CompositeConstruct 343 343 - 346:187(i16vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 340 344 345 - Store 305(i16v) 346 - 347:187(i16vec2) Load 305(i16v) - 348:187(i16vec2) Load 305(i16v) - 349:187(i16vec2) SNegate 348 - 350:187(i16vec2) Load 305(i16v) - 351:187(i16vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 347 349 350 - Store 305(i16v) 351 - 352: 49(i16vec3) Load 319(u16v) - 353: 14(int16_t) Load 321(u16) - 354: 14(int16_t) SNegate 353 - 355: 14(int16_t) Load 321(u16) - 356: 49(i16vec3) CompositeConstruct 354 354 354 - 357: 49(i16vec3) CompositeConstruct 355 355 355 - 358: 49(i16vec3) ExtInst 1(GLSL.std.450) 44(UClamp) 352 356 357 - Store 319(u16v) 358 - 359: 49(i16vec3) Load 319(u16v) - 360: 49(i16vec3) Load 319(u16v) - 361: 49(i16vec3) SNegate 360 - 362: 49(i16vec3) Load 319(u16v) - 363: 49(i16vec3) ExtInst 1(GLSL.std.450) 44(UClamp) 359 361 362 - Store 319(u16v) 363 - 364: 35(ptr) AccessChain 305(i16v) 128 - 365: 17(int16_t) Load 364 - 366: 35(ptr) AccessChain 305(i16v) 111 - 367: 17(int16_t) Load 366 - 369: 17(int16_t) Select 368 367 365 - Store 311(i16) 369 - 370: 17(int16_t) Load 311(i16) - 371:187(i16vec2) CompositeConstruct 370 370 - 372: 17(int16_t) Load 311(i16) - 373: 17(int16_t) SNegate 372 - 374:187(i16vec2) CompositeConstruct 373 373 - 377:187(i16vec2) Select 376 374 371 - Store 305(i16v) 377 - 378: 15(ptr) AccessChain 319(u16v) 128 - 379: 14(int16_t) Load 378 - 380: 15(ptr) AccessChain 319(u16v) 111 - 381: 14(int16_t) Load 380 - 382: 14(int16_t) Select 368 381 379 - Store 321(u16) 382 - 383: 14(int16_t) Load 321(u16) - 384: 49(i16vec3) CompositeConstruct 383 383 383 - 385: 14(int16_t) Load 321(u16) - 386: 14(int16_t) SNegate 385 - 387: 49(i16vec3) CompositeConstruct 386 386 386 - 390: 49(i16vec3) Select 389 387 384 - Store 319(u16v) 390 - 394:391(f16vec3) Load 393(f16v) - 398:397(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 394 - 399: 54(i16vec3) CompositeExtract 398 1 - Store 396(exp) 399 - 400:391(f16vec3) CompositeExtract 398 0 - Store 393(f16v) 400 - 401:391(f16vec3) Load 393(f16v) - 402: 54(i16vec3) Load 396(exp) - 403:391(f16vec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 401 402 - Store 393(f16v) 403 - 404:391(f16vec3) Load 393(f16v) - 405:262(f16vec2) VectorShuffle 404 404 0 1 - 406:187(i16vec2) Bitcast 405 - Store 305(i16v) 406 - 408: 407(ptr) AccessChain 393(f16v) 117 - 409:261(float16_t) Load 408 - 410: 14(int16_t) Bitcast 409 - 411: 15(ptr) AccessChain 319(u16v) 128 - Store 411 410 - 412:187(i16vec2) Load 305(i16v) - 413:262(f16vec2) Bitcast 412 - 414: 407(ptr) AccessChain 393(f16v) 128 - 415:261(float16_t) CompositeExtract 413 0 - Store 414 415 - 416: 407(ptr) AccessChain 393(f16v) 111 - 417:261(float16_t) CompositeExtract 413 1 - Store 416 417 - 418: 49(i16vec3) Load 319(u16v) - 419:391(f16vec3) Bitcast 418 - Store 393(f16v) 419 - 421:187(i16vec2) Load 305(i16v) - 422: 28(int) Bitcast 421 - Store 420(packi) 422 - 423: 28(int) Load 420(packi) - 424:187(i16vec2) Bitcast 423 - Store 305(i16v) 424 - 426: 49(i16vec3) Load 319(u16v) - 427:198(i16vec2) VectorShuffle 426 426 0 1 - 428: 18(int) Bitcast 427 - Store 425(packu) 428 - 429: 18(int) Load 425(packu) - 430:198(i16vec2) Bitcast 429 - 431: 15(ptr) AccessChain 319(u16v) 128 - 432: 14(int16_t) CompositeExtract 430 0 - Store 431 432 - 433: 15(ptr) AccessChain 319(u16v) 111 - 434: 14(int16_t) CompositeExtract 430 1 - Store 433 434 - 437: 17(int16_t) Load 311(i16) - 439:438(i16vec4) CompositeConstruct 437 437 437 437 - 440:273(int64_t) Bitcast 439 - Store 436(packi64) 440 - 441:273(int64_t) Load 436(packi64) - 442:438(i16vec4) Bitcast 441 - 443:187(i16vec2) VectorShuffle 442 442 0 1 - Store 305(i16v) 443 - 446: 14(int16_t) Load 321(u16) - 448:447(i16vec4) CompositeConstruct 446 446 446 446 - 449:285(int64_t) Bitcast 448 - Store 445(packu64) 449 - 450:285(int64_t) Load 445(packu64) - 451:447(i16vec4) Bitcast 450 - 452: 49(i16vec3) VectorShuffle 451 451 0 1 2 - Store 319(u16v) 452 - 455: 49(i16vec3) Load 319(u16v) - 456: 14(int16_t) Load 321(u16) - 457: 49(i16vec3) CompositeConstruct 456 456 456 - 458: 388(bvec3) ULessThan 455 457 - Store 454(bv) 458 - 459:187(i16vec2) Load 305(i16v) - 460: 17(int16_t) Load 311(i16) - 461:187(i16vec2) CompositeConstruct 460 460 - 462: 190(bvec2) SLessThan 459 461 - 463: 126(ptr) AccessChain 454(bv) 128 - 464: 125(bool) CompositeExtract 462 0 - Store 463 464 - 465: 126(ptr) AccessChain 454(bv) 111 - 466: 125(bool) CompositeExtract 462 1 - Store 465 466 - 467: 49(i16vec3) Load 319(u16v) - 468: 14(int16_t) Load 321(u16) - 469: 49(i16vec3) CompositeConstruct 468 468 468 - 470: 388(bvec3) ULessThanEqual 467 469 - Store 454(bv) 470 - 471:187(i16vec2) Load 305(i16v) - 472: 17(int16_t) Load 311(i16) - 473:187(i16vec2) CompositeConstruct 472 472 - 474: 190(bvec2) SLessThanEqual 471 473 - 475: 126(ptr) AccessChain 454(bv) 128 - 476: 125(bool) CompositeExtract 474 0 - Store 475 476 - 477: 126(ptr) AccessChain 454(bv) 111 - 478: 125(bool) CompositeExtract 474 1 - Store 477 478 - 479: 49(i16vec3) Load 319(u16v) - 480: 14(int16_t) Load 321(u16) - 481: 49(i16vec3) CompositeConstruct 480 480 480 - 482: 388(bvec3) UGreaterThan 479 481 - Store 454(bv) 482 - 483:187(i16vec2) Load 305(i16v) - 484: 17(int16_t) Load 311(i16) - 485:187(i16vec2) CompositeConstruct 484 484 - 486: 190(bvec2) SGreaterThan 483 485 - 487: 126(ptr) AccessChain 454(bv) 128 - 488: 125(bool) CompositeExtract 486 0 - Store 487 488 - 489: 126(ptr) AccessChain 454(bv) 111 - 490: 125(bool) CompositeExtract 486 1 - Store 489 490 - 491: 49(i16vec3) Load 319(u16v) - 492: 14(int16_t) Load 321(u16) - 493: 49(i16vec3) CompositeConstruct 492 492 492 - 494: 388(bvec3) UGreaterThanEqual 491 493 - Store 454(bv) 494 - 495:187(i16vec2) Load 305(i16v) - 496: 17(int16_t) Load 311(i16) - 497:187(i16vec2) CompositeConstruct 496 496 - 498: 190(bvec2) SGreaterThanEqual 495 497 - 499: 126(ptr) AccessChain 454(bv) 128 - 500: 125(bool) CompositeExtract 498 0 - Store 499 500 - 501: 126(ptr) AccessChain 454(bv) 111 - 502: 125(bool) CompositeExtract 498 1 - Store 501 502 - 503: 49(i16vec3) Load 319(u16v) - 504: 14(int16_t) Load 321(u16) - 505: 49(i16vec3) CompositeConstruct 504 504 504 - 506: 388(bvec3) IEqual 503 505 - Store 454(bv) 506 - 507:187(i16vec2) Load 305(i16v) - 508: 17(int16_t) Load 311(i16) - 509:187(i16vec2) CompositeConstruct 508 508 - 510: 190(bvec2) IEqual 507 509 - 511: 126(ptr) AccessChain 454(bv) 128 - 512: 125(bool) CompositeExtract 510 0 - Store 511 512 - 513: 126(ptr) AccessChain 454(bv) 111 - 514: 125(bool) CompositeExtract 510 1 - Store 513 514 - 515: 49(i16vec3) Load 319(u16v) - 516: 14(int16_t) Load 321(u16) - 517: 49(i16vec3) CompositeConstruct 516 516 516 - 518: 388(bvec3) INotEqual 515 517 - Store 454(bv) 518 - 519:187(i16vec2) Load 305(i16v) - 520: 17(int16_t) Load 311(i16) - 521:187(i16vec2) CompositeConstruct 520 520 - 522: 190(bvec2) INotEqual 519 521 - 523: 126(ptr) AccessChain 454(bv) 128 - 524: 125(bool) CompositeExtract 522 0 - Store 523 524 - 525: 126(ptr) AccessChain 454(bv) 111 - 526: 125(bool) CompositeExtract 522 1 - Store 525 526 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.int16.frag.out b/deps/glslang/Test/baseResults/spv.int16.frag.out deleted file mode 100644 index 3e10a7db..00000000 --- a/deps/glslang/Test/baseResults/spv.int16.frag.out +++ /dev/null @@ -1,778 +0,0 @@ -spv.int16.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 549 - - Capability Shader - Capability Float16 - Capability Float64 - Capability Int64 - Capability Int16 - Capability Int8 - Capability StorageUniform16 - Extension "SPV_KHR_16bit_storage" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_shader_explicit_arithmetic_types" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float32" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float64" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int16" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int32" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int64" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int8" - Name 4 "main" - Name 6 "literal(" - Name 8 "typeCast16(" - Name 10 "operators(" - Name 12 "builtinFuncs(" - Name 16 "i16" - Name 24 "Uniforms" - MemberName 24(Uniforms) 0 "index" - Name 26 "" - Name 33 "indexable" - Name 38 "u16" - Name 46 "indexable" - Name 51 "i32v" - Name 54 "i16v" - Name 59 "u16v" - Name 67 "u32v" - Name 74 "i64v" - Name 80 "u64v" - Name 94 "f16v" - Name 100 "f32v" - Name 106 "f64v" - Name 154 "i8v" - Name 163 "u8v" - Name 176 "bv" - Name 196 "arr" - Name 204 "u16v" - Name 209 "i16" - Name 229 "i" - Name 236 "uv" - Name 252 "i64" - Name 290 "b" - Name 353 "f" - Name 357 "i16v" - Name 360 "i16" - Name 370 "u16v" - Name 372 "u16" - Name 442 "i32" - Name 445 "i64" - Name 448 "i16v4" - Name 451 "u32" - Name 452 "u16v2" - Name 456 "u64" - Name 459 "u16v4" - Name 471 "bv" - Name 544 "Block" - MemberName 544(Block) 0 "i16" - MemberName 544(Block) 1 "i16v2" - MemberName 544(Block) 2 "i16v3" - MemberName 544(Block) 3 "i16v4" - MemberName 544(Block) 4 "u16" - MemberName 544(Block) 5 "u16v2" - MemberName 544(Block) 6 "u16v3" - MemberName 544(Block) 7 "u16v4" - Name 546 "block" - Name 547 "si16" - Name 548 "su16" - MemberDecorate 24(Uniforms) 0 Offset 0 - Decorate 24(Uniforms) Block - Decorate 26 DescriptorSet 0 - Decorate 26 Binding 0 - MemberDecorate 544(Block) 0 Offset 0 - MemberDecorate 544(Block) 1 Offset 4 - MemberDecorate 544(Block) 2 Offset 8 - MemberDecorate 544(Block) 3 Offset 16 - MemberDecorate 544(Block) 4 Offset 24 - MemberDecorate 544(Block) 5 Offset 28 - MemberDecorate 544(Block) 6 Offset 32 - MemberDecorate 544(Block) 7 Offset 40 - Decorate 544(Block) Block - Decorate 546(block) DescriptorSet 0 - Decorate 546(block) Binding 1 - Decorate 547(si16) SpecId 100 - Decorate 548(su16) SpecId 101 - 2: TypeVoid - 3: TypeFunction 2 - 14: TypeInt 16 1 - 15: TypePointer Function 14(int16_t) - 17: TypeInt 32 0 - 18: 17(int) Constant 3 - 19: TypeArray 14(int16_t) 18 - 20: 14(int16_t) Constant 4294962927 - 21: 14(int16_t) Constant 4294967295 - 22: 14(int16_t) Constant 16384 - 23: 19 ConstantComposite 20 21 22 - 24(Uniforms): TypeStruct 17(int) - 25: TypePointer Uniform 24(Uniforms) - 26: 25(ptr) Variable Uniform - 27: TypeInt 32 1 - 28: 27(int) Constant 0 - 29: TypePointer Uniform 17(int) - 32: TypePointer Function 19 - 36: TypeInt 16 0 - 37: TypePointer Function 36(int16_t) - 39: TypeArray 36(int16_t) 18 - 40: 36(int16_t) Constant 65535 - 41: 36(int16_t) Constant 32767 - 42: 39 ConstantComposite 40 40 41 - 45: TypePointer Function 39 - 49: TypeVector 27(int) 2 - 50: TypePointer Function 49(ivec2) - 52: TypeVector 14(int16_t) 2 - 53: TypePointer Function 52(i16vec2) - 57: TypeVector 36(int16_t) 2 - 58: TypePointer Function 57(i16vec2) - 61: TypeVector 17(int) 2 - 66: TypePointer Function 61(ivec2) - 71: TypeInt 64 1 - 72: TypeVector 71(int64_t) 2 - 73: TypePointer Function 72(i64vec2) - 77: TypeInt 64 0 - 78: TypeVector 77(int64_t) 2 - 79: TypePointer Function 78(i64vec2) - 91: TypeFloat 16 - 92: TypeVector 91(float16_t) 2 - 93: TypePointer Function 92(f16vec2) - 97: TypeFloat 32 - 98: TypeVector 97(float) 2 - 99: TypePointer Function 98(fvec2) - 103: TypeFloat 64 - 104: TypeVector 103(float64_t) 2 - 105: TypePointer Function 104(f64vec2) - 151: TypeInt 8 1 - 152: TypeVector 151(int8_t) 2 - 153: TypePointer Function 152(i8vec2) - 158: TypeInt 8 0 - 159: TypeVector 158(int8_t) 2 - 162: TypePointer Function 159(i8vec2) - 173: TypeBool - 174: TypeVector 173(bool) 2 - 175: TypePointer Function 174(bvec2) - 178: 14(int16_t) Constant 0 - 179: 14(int16_t) Constant 1 - 180: 52(i16vec2) ConstantComposite 178 178 - 181: 52(i16vec2) ConstantComposite 179 179 - 184: 36(int16_t) Constant 0 - 185: 36(int16_t) Constant 1 - 186: 57(i16vec2) ConstantComposite 184 184 - 187: 57(i16vec2) ConstantComposite 185 185 - 193: 17(int) Constant 4 - 194: TypeArray 97(float) 193 - 195: TypePointer Function 194 - 197: 97(float) Constant 1065353216 - 198: 97(float) Constant 1073741824 - 199: 97(float) Constant 1077936128 - 200: 97(float) Constant 1082130432 - 201: 194 ConstantComposite 197 198 199 200 - 202: TypeVector 36(int16_t) 3 - 203: TypePointer Function 202(i16vec3) - 206: TypeVector 14(int16_t) 3 - 228: TypePointer Function 27(int) - 234: TypeVector 17(int) 3 - 235: TypePointer Function 234(ivec3) - 251: TypePointer Function 71(int64_t) - 273: 17(int) Constant 1 - 279: 17(int) Constant 2 - 285: TypeVector 27(int) 3 - 289: TypePointer Function 173(bool) - 291: 17(int) Constant 0 - 305: TypePointer Function 17(int) - 352: TypePointer Function 97(float) - 368: 52(i16vec2) ConstantComposite 21 21 - 377:202(i16vec3) ConstantComposite 184 184 184 - 419: 173(bool) ConstantTrue - 426: 173(bool) ConstantFalse - 427: 174(bvec2) ConstantComposite 426 426 - 439: TypeVector 173(bool) 3 - 440: 439(bvec3) ConstantComposite 426 426 426 - 446: TypeVector 14(int16_t) 4 - 447: TypePointer Function 446(i16vec4) - 455: TypePointer Function 77(int64_t) - 457: TypeVector 36(int16_t) 4 - 458: TypePointer Function 457(i16vec4) - 470: TypePointer Function 439(bvec3) - 544(Block): TypeStruct 14(int16_t) 52(i16vec2) 206(i16vec3) 446(i16vec4) 36(int16_t) 57(i16vec2) 202(i16vec3) 457(i16vec4) - 545: TypePointer Uniform 544(Block) - 546(block): 545(ptr) Variable Uniform - 547(si16): 14(int16_t) SpecConstant 4294967286 - 548(su16): 36(int16_t) SpecConstant 20 - 4(main): 2 Function None 3 - 5: Label - Return - FunctionEnd - 6(literal(): 2 Function None 3 - 7: Label - 16(i16): 15(ptr) Variable Function - 33(indexable): 32(ptr) Variable Function - 38(u16): 37(ptr) Variable Function - 46(indexable): 45(ptr) Variable Function - 30: 29(ptr) AccessChain 26 28 - 31: 17(int) Load 30 - Store 33(indexable) 23 - 34: 15(ptr) AccessChain 33(indexable) 31 - 35: 14(int16_t) Load 34 - Store 16(i16) 35 - 43: 29(ptr) AccessChain 26 28 - 44: 17(int) Load 43 - Store 46(indexable) 42 - 47: 37(ptr) AccessChain 46(indexable) 44 - 48: 36(int16_t) Load 47 - Store 38(u16) 48 - Return - FunctionEnd - 8(typeCast16(): 2 Function None 3 - 9: Label - 51(i32v): 50(ptr) Variable Function - 54(i16v): 53(ptr) Variable Function - 59(u16v): 58(ptr) Variable Function - 67(u32v): 66(ptr) Variable Function - 74(i64v): 73(ptr) Variable Function - 80(u64v): 79(ptr) Variable Function - 94(f16v): 93(ptr) Variable Function - 100(f32v): 99(ptr) Variable Function - 106(f64v): 105(ptr) Variable Function - 154(i8v): 153(ptr) Variable Function - 163(u8v): 162(ptr) Variable Function - 176(bv): 175(ptr) Variable Function - 55: 52(i16vec2) Load 54(i16v) - 56: 49(ivec2) SConvert 55 - Store 51(i32v) 56 - 60: 57(i16vec2) Load 59(u16v) - 62: 61(ivec2) UConvert 60 - 63: 49(ivec2) Bitcast 62 - Store 51(i32v) 63 - 64: 52(i16vec2) Load 54(i16v) - 65: 57(i16vec2) Bitcast 64 - Store 59(u16v) 65 - 68: 52(i16vec2) Load 54(i16v) - 69: 49(ivec2) SConvert 68 - 70: 61(ivec2) Bitcast 69 - Store 67(u32v) 70 - 75: 52(i16vec2) Load 54(i16v) - 76: 72(i64vec2) SConvert 75 - Store 74(i64v) 76 - 81: 52(i16vec2) Load 54(i16v) - 82: 72(i64vec2) SConvert 81 - 83: 78(i64vec2) Bitcast 82 - Store 80(u64v) 83 - 84: 57(i16vec2) Load 59(u16v) - 85: 61(ivec2) UConvert 84 - Store 67(u32v) 85 - 86: 57(i16vec2) Load 59(u16v) - 87: 78(i64vec2) UConvert 86 - 88: 72(i64vec2) Bitcast 87 - Store 74(i64v) 88 - 89: 57(i16vec2) Load 59(u16v) - 90: 78(i64vec2) UConvert 89 - Store 80(u64v) 90 - 95: 52(i16vec2) Load 54(i16v) - 96: 92(f16vec2) ConvertSToF 95 - Store 94(f16v) 96 - 101: 52(i16vec2) Load 54(i16v) - 102: 98(fvec2) ConvertSToF 101 - Store 100(f32v) 102 - 107: 52(i16vec2) Load 54(i16v) - 108:104(f64vec2) ConvertSToF 107 - Store 106(f64v) 108 - 109: 57(i16vec2) Load 59(u16v) - 110: 92(f16vec2) ConvertUToF 109 - Store 94(f16v) 110 - 111: 57(i16vec2) Load 59(u16v) - 112: 98(fvec2) ConvertUToF 111 - Store 100(f32v) 112 - 113: 57(i16vec2) Load 59(u16v) - 114:104(f64vec2) ConvertUToF 113 - Store 106(f64v) 114 - 115: 52(i16vec2) Load 54(i16v) - 116: 49(ivec2) SConvert 115 - Store 51(i32v) 116 - 117: 57(i16vec2) Load 59(u16v) - 118: 61(ivec2) UConvert 117 - 119: 49(ivec2) Bitcast 118 - Store 51(i32v) 119 - 120: 52(i16vec2) Load 54(i16v) - 121: 57(i16vec2) Bitcast 120 - Store 59(u16v) 121 - 122: 52(i16vec2) Load 54(i16v) - 123: 49(ivec2) SConvert 122 - 124: 61(ivec2) Bitcast 123 - Store 67(u32v) 124 - 125: 52(i16vec2) Load 54(i16v) - 126: 72(i64vec2) SConvert 125 - Store 74(i64v) 126 - 127: 52(i16vec2) Load 54(i16v) - 128: 72(i64vec2) SConvert 127 - 129: 78(i64vec2) Bitcast 128 - Store 80(u64v) 129 - 130: 57(i16vec2) Load 59(u16v) - 131: 61(ivec2) UConvert 130 - Store 67(u32v) 131 - 132: 57(i16vec2) Load 59(u16v) - 133: 78(i64vec2) UConvert 132 - 134: 72(i64vec2) Bitcast 133 - Store 74(i64v) 134 - 135: 57(i16vec2) Load 59(u16v) - 136: 78(i64vec2) UConvert 135 - 137: 72(i64vec2) Bitcast 136 - 138: 78(i64vec2) Bitcast 137 - Store 80(u64v) 138 - 139: 52(i16vec2) Load 54(i16v) - 140: 92(f16vec2) ConvertSToF 139 - Store 94(f16v) 140 - 141: 52(i16vec2) Load 54(i16v) - 142: 98(fvec2) ConvertSToF 141 - Store 100(f32v) 142 - 143: 52(i16vec2) Load 54(i16v) - 144:104(f64vec2) ConvertSToF 143 - Store 106(f64v) 144 - 145: 57(i16vec2) Load 59(u16v) - 146: 92(f16vec2) ConvertUToF 145 - Store 94(f16v) 146 - 147: 57(i16vec2) Load 59(u16v) - 148: 98(fvec2) ConvertUToF 147 - Store 100(f32v) 148 - 149: 57(i16vec2) Load 59(u16v) - 150:104(f64vec2) ConvertUToF 149 - Store 106(f64v) 150 - 155: 52(i16vec2) Load 54(i16v) - 156: 152(i8vec2) SConvert 155 - Store 154(i8v) 156 - 157: 57(i16vec2) Load 59(u16v) - 160: 159(i8vec2) UConvert 157 - 161: 152(i8vec2) Bitcast 160 - Store 154(i8v) 161 - 164: 52(i16vec2) Load 54(i16v) - 165: 152(i8vec2) SConvert 164 - 166: 159(i8vec2) Bitcast 165 - Store 163(u8v) 166 - 167: 57(i16vec2) Load 59(u16v) - 168: 159(i8vec2) UConvert 167 - Store 163(u8v) 168 - 169: 57(i16vec2) Load 59(u16v) - 170: 159(i8vec2) UConvert 169 - 171: 57(i16vec2) UConvert 170 - 172: 52(i16vec2) Bitcast 171 - Store 54(i16v) 172 - 177: 174(bvec2) Load 176(bv) - 182: 52(i16vec2) Select 177 181 180 - Store 54(i16v) 182 - 183: 174(bvec2) Load 176(bv) - 188: 57(i16vec2) Select 183 187 186 - Store 59(u16v) 188 - 189: 52(i16vec2) Load 54(i16v) - 190: 174(bvec2) INotEqual 189 186 - Store 176(bv) 190 - 191: 57(i16vec2) Load 59(u16v) - 192: 174(bvec2) INotEqual 191 186 - Store 176(bv) 192 - Return - FunctionEnd - 10(operators(): 2 Function None 3 - 11: Label - 196(arr): 195(ptr) Variable Function - 204(u16v): 203(ptr) Variable Function - 209(i16): 15(ptr) Variable Function - 229(i): 228(ptr) Variable Function - 236(uv): 235(ptr) Variable Function - 252(i64): 251(ptr) Variable Function - 290(b): 289(ptr) Variable Function - 353(f): 352(ptr) Variable Function - Store 196(arr) 201 - 205:202(i16vec3) Load 204(u16v) - 207:206(i16vec3) CompositeConstruct 179 179 179 - 208:202(i16vec3) IAdd 205 207 - Store 204(u16v) 208 - 210: 14(int16_t) Load 209(i16) - 211: 14(int16_t) ISub 210 179 - Store 209(i16) 211 - 212: 14(int16_t) Load 209(i16) - 213: 14(int16_t) IAdd 212 179 - Store 209(i16) 213 - 214:202(i16vec3) Load 204(u16v) - 215:206(i16vec3) CompositeConstruct 179 179 179 - 216:202(i16vec3) ISub 214 215 - Store 204(u16v) 216 - 217:202(i16vec3) Load 204(u16v) - 218:202(i16vec3) Not 217 - Store 204(u16v) 218 - 219: 14(int16_t) Load 209(i16) - Store 209(i16) 219 - 220:202(i16vec3) Load 204(u16v) - 221:202(i16vec3) SNegate 220 - Store 204(u16v) 221 - 222: 14(int16_t) Load 209(i16) - 223: 14(int16_t) Load 209(i16) - 224: 14(int16_t) IAdd 223 222 - Store 209(i16) 224 - 225:202(i16vec3) Load 204(u16v) - 226:202(i16vec3) Load 204(u16v) - 227:202(i16vec3) ISub 226 225 - Store 204(u16v) 227 - 230: 14(int16_t) Load 209(i16) - 231: 27(int) SConvert 230 - 232: 27(int) Load 229(i) - 233: 27(int) IMul 232 231 - Store 229(i) 233 - 237:202(i16vec3) Load 204(u16v) - 238: 234(ivec3) UConvert 237 - 239: 234(ivec3) Load 236(uv) - 240: 234(ivec3) UDiv 239 238 - Store 236(uv) 240 - 241: 14(int16_t) Load 209(i16) - 242: 27(int) SConvert 241 - 243: 17(int) Bitcast 242 - 244: 234(ivec3) Load 236(uv) - 245: 234(ivec3) CompositeConstruct 243 243 243 - 246: 234(ivec3) UMod 244 245 - Store 236(uv) 246 - 247:202(i16vec3) Load 204(u16v) - 248: 234(ivec3) UConvert 247 - 249: 234(ivec3) Load 236(uv) - 250: 234(ivec3) IAdd 248 249 - Store 236(uv) 250 - 253: 14(int16_t) Load 209(i16) - 254: 71(int64_t) SConvert 253 - 255: 71(int64_t) Load 252(i64) - 256: 71(int64_t) ISub 254 255 - Store 252(i64) 256 - 257:202(i16vec3) Load 204(u16v) - 258: 234(ivec3) UConvert 257 - 259: 234(ivec3) Load 236(uv) - 260: 234(ivec3) IMul 258 259 - Store 236(uv) 260 - 261: 14(int16_t) Load 209(i16) - 262: 71(int64_t) SConvert 261 - 263: 71(int64_t) Load 252(i64) - 264: 71(int64_t) IMul 262 263 - Store 252(i64) 264 - 265: 14(int16_t) Load 209(i16) - 266: 27(int) SConvert 265 - 267: 27(int) Load 229(i) - 268: 27(int) SMod 266 267 - Store 229(i) 268 - 269: 14(int16_t) Load 209(i16) - 270:202(i16vec3) Load 204(u16v) - 271:206(i16vec3) CompositeConstruct 269 269 269 - 272:202(i16vec3) ShiftLeftLogical 270 271 - Store 204(u16v) 272 - 274: 37(ptr) AccessChain 204(u16v) 273 - 275: 36(int16_t) Load 274 - 276: 14(int16_t) Load 209(i16) - 277: 14(int16_t) ShiftRightArithmetic 276 275 - Store 209(i16) 277 - 278: 14(int16_t) Load 209(i16) - 280: 37(ptr) AccessChain 204(u16v) 279 - 281: 36(int16_t) Load 280 - 282: 14(int16_t) ShiftLeftLogical 278 281 - Store 209(i16) 282 - 283:202(i16vec3) Load 204(u16v) - 284: 27(int) Load 229(i) - 286: 285(ivec3) CompositeConstruct 284 284 284 - 287:202(i16vec3) ShiftLeftLogical 283 286 - 288: 234(ivec3) UConvert 287 - Store 236(uv) 288 - 292: 37(ptr) AccessChain 204(u16v) 291 - 293: 36(int16_t) Load 292 - 294: 14(int16_t) Load 209(i16) - 295: 36(int16_t) Bitcast 294 - 296: 173(bool) INotEqual 293 295 - Store 290(b) 296 - 297: 14(int16_t) Load 209(i16) - 298: 36(int16_t) Bitcast 297 - 299: 37(ptr) AccessChain 204(u16v) 291 - 300: 36(int16_t) Load 299 - 301: 173(bool) IEqual 298 300 - Store 290(b) 301 - 302: 37(ptr) AccessChain 204(u16v) 291 - 303: 36(int16_t) Load 302 - 304: 17(int) UConvert 303 - 306: 305(ptr) AccessChain 236(uv) 273 - 307: 17(int) Load 306 - 308: 173(bool) UGreaterThan 304 307 - Store 290(b) 308 - 309: 14(int16_t) Load 209(i16) - 310: 27(int) SConvert 309 - 311: 27(int) Load 229(i) - 312: 173(bool) SLessThan 310 311 - Store 290(b) 312 - 313: 37(ptr) AccessChain 204(u16v) 273 - 314: 36(int16_t) Load 313 - 315: 17(int) UConvert 314 - 316: 305(ptr) AccessChain 236(uv) 291 - 317: 17(int) Load 316 - 318: 173(bool) UGreaterThanEqual 315 317 - Store 290(b) 318 - 319: 14(int16_t) Load 209(i16) - 320: 27(int) SConvert 319 - 321: 27(int) Load 229(i) - 322: 173(bool) SLessThanEqual 320 321 - Store 290(b) 322 - 323: 14(int16_t) Load 209(i16) - 324: 27(int) SConvert 323 - 325: 17(int) Bitcast 324 - 326: 234(ivec3) Load 236(uv) - 327: 234(ivec3) CompositeConstruct 325 325 325 - 328: 234(ivec3) BitwiseOr 326 327 - Store 236(uv) 328 - 329: 14(int16_t) Load 209(i16) - 330: 27(int) SConvert 329 - 331: 27(int) Load 229(i) - 332: 27(int) BitwiseOr 330 331 - Store 229(i) 332 - 333: 14(int16_t) Load 209(i16) - 334: 71(int64_t) SConvert 333 - 335: 71(int64_t) Load 252(i64) - 336: 71(int64_t) BitwiseAnd 335 334 - Store 252(i64) 336 - 337:202(i16vec3) Load 204(u16v) - 338: 234(ivec3) UConvert 337 - 339: 234(ivec3) Load 236(uv) - 340: 234(ivec3) BitwiseAnd 338 339 - Store 236(uv) 340 - 341: 14(int16_t) Load 209(i16) - 342: 27(int) SConvert 341 - 343: 17(int) Bitcast 342 - 344: 234(ivec3) Load 236(uv) - 345: 234(ivec3) CompositeConstruct 343 343 343 - 346: 234(ivec3) BitwiseXor 344 345 - Store 236(uv) 346 - 347:202(i16vec3) Load 204(u16v) - 348: 14(int16_t) Load 209(i16) - 349: 36(int16_t) Bitcast 348 - 350:202(i16vec3) CompositeConstruct 349 349 349 - 351:202(i16vec3) BitwiseXor 347 350 - Store 204(u16v) 351 - 354: 14(int16_t) Load 209(i16) - 355: 352(ptr) AccessChain 196(arr) 354 - 356: 97(float) Load 355 - Store 353(f) 356 - Return - FunctionEnd -12(builtinFuncs(): 2 Function None 3 - 13: Label - 357(i16v): 53(ptr) Variable Function - 360(i16): 15(ptr) Variable Function - 370(u16v): 203(ptr) Variable Function - 372(u16): 37(ptr) Variable Function - 442(i32): 228(ptr) Variable Function - 445(i64): 251(ptr) Variable Function - 448(i16v4): 447(ptr) Variable Function - 451(u32): 305(ptr) Variable Function - 452(u16v2): 58(ptr) Variable Function - 456(u64): 455(ptr) Variable Function - 459(u16v4): 458(ptr) Variable Function - 471(bv): 470(ptr) Variable Function - 358: 52(i16vec2) Load 357(i16v) - 359: 52(i16vec2) ExtInst 1(GLSL.std.450) 5(SAbs) 358 - Store 357(i16v) 359 - 361: 14(int16_t) Load 360(i16) - 362: 14(int16_t) ExtInst 1(GLSL.std.450) 7(SSign) 361 - Store 360(i16) 362 - 363: 52(i16vec2) Load 357(i16v) - 364: 14(int16_t) Load 360(i16) - 365: 52(i16vec2) CompositeConstruct 364 364 - 366: 52(i16vec2) ExtInst 1(GLSL.std.450) 39(SMin) 363 365 - Store 357(i16v) 366 - 367: 52(i16vec2) Load 357(i16v) - 369: 52(i16vec2) ExtInst 1(GLSL.std.450) 39(SMin) 367 368 - Store 357(i16v) 369 - 371:202(i16vec3) Load 370(u16v) - 373: 36(int16_t) Load 372(u16) - 374:202(i16vec3) CompositeConstruct 373 373 373 - 375:202(i16vec3) ExtInst 1(GLSL.std.450) 38(UMin) 371 374 - Store 370(u16v) 375 - 376:202(i16vec3) Load 370(u16v) - 378:202(i16vec3) ExtInst 1(GLSL.std.450) 38(UMin) 376 377 - Store 370(u16v) 378 - 379: 52(i16vec2) Load 357(i16v) - 380: 14(int16_t) Load 360(i16) - 381: 52(i16vec2) CompositeConstruct 380 380 - 382: 52(i16vec2) ExtInst 1(GLSL.std.450) 42(SMax) 379 381 - Store 357(i16v) 382 - 383: 52(i16vec2) Load 357(i16v) - 384: 52(i16vec2) ExtInst 1(GLSL.std.450) 42(SMax) 383 368 - Store 357(i16v) 384 - 385:202(i16vec3) Load 370(u16v) - 386: 36(int16_t) Load 372(u16) - 387:202(i16vec3) CompositeConstruct 386 386 386 - 388:202(i16vec3) ExtInst 1(GLSL.std.450) 41(UMax) 385 387 - Store 370(u16v) 388 - 389:202(i16vec3) Load 370(u16v) - 390:202(i16vec3) ExtInst 1(GLSL.std.450) 41(UMax) 389 377 - Store 370(u16v) 390 - 391: 52(i16vec2) Load 357(i16v) - 392: 14(int16_t) Load 360(i16) - 393: 14(int16_t) SNegate 392 - 394: 14(int16_t) Load 360(i16) - 395: 52(i16vec2) CompositeConstruct 393 393 - 396: 52(i16vec2) CompositeConstruct 394 394 - 397: 52(i16vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 391 395 396 - Store 357(i16v) 397 - 398: 52(i16vec2) Load 357(i16v) - 399: 52(i16vec2) Load 357(i16v) - 400: 52(i16vec2) SNegate 399 - 401: 52(i16vec2) Load 357(i16v) - 402: 52(i16vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 398 400 401 - Store 357(i16v) 402 - 403:202(i16vec3) Load 370(u16v) - 404: 36(int16_t) Load 372(u16) - 405: 36(int16_t) SNegate 404 - 406: 36(int16_t) Load 372(u16) - 407:202(i16vec3) CompositeConstruct 405 405 405 - 408:202(i16vec3) CompositeConstruct 406 406 406 - 409:202(i16vec3) ExtInst 1(GLSL.std.450) 44(UClamp) 403 407 408 - Store 370(u16v) 409 - 410:202(i16vec3) Load 370(u16v) - 411:202(i16vec3) Load 370(u16v) - 412:202(i16vec3) SNegate 411 - 413:202(i16vec3) Load 370(u16v) - 414:202(i16vec3) ExtInst 1(GLSL.std.450) 44(UClamp) 410 412 413 - Store 370(u16v) 414 - 415: 15(ptr) AccessChain 357(i16v) 291 - 416: 14(int16_t) Load 415 - 417: 15(ptr) AccessChain 357(i16v) 273 - 418: 14(int16_t) Load 417 - 420: 14(int16_t) Select 419 418 416 - Store 360(i16) 420 - 421: 14(int16_t) Load 360(i16) - 422: 52(i16vec2) CompositeConstruct 421 421 - 423: 14(int16_t) Load 360(i16) - 424: 14(int16_t) SNegate 423 - 425: 52(i16vec2) CompositeConstruct 424 424 - 428: 52(i16vec2) Select 427 425 422 - Store 357(i16v) 428 - 429: 37(ptr) AccessChain 370(u16v) 291 - 430: 36(int16_t) Load 429 - 431: 37(ptr) AccessChain 370(u16v) 273 - 432: 36(int16_t) Load 431 - 433: 36(int16_t) Select 419 432 430 - Store 372(u16) 433 - 434: 36(int16_t) Load 372(u16) - 435:202(i16vec3) CompositeConstruct 434 434 434 - 436: 36(int16_t) Load 372(u16) - 437: 36(int16_t) SNegate 436 - 438:202(i16vec3) CompositeConstruct 437 437 437 - 441:202(i16vec3) Select 440 438 435 - Store 370(u16v) 441 - 443: 52(i16vec2) Load 357(i16v) - 444: 27(int) Bitcast 443 - Store 442(i32) 444 - 449:446(i16vec4) Load 448(i16v4) - 450: 71(int64_t) Bitcast 449 - Store 445(i64) 450 - 453: 57(i16vec2) Load 452(u16v2) - 454: 17(int) Bitcast 453 - Store 451(u32) 454 - 460:457(i16vec4) Load 459(u16v4) - 461: 77(int64_t) Bitcast 460 - Store 456(u64) 461 - 462: 27(int) Load 442(i32) - 463: 52(i16vec2) Bitcast 462 - Store 357(i16v) 463 - 464: 71(int64_t) Load 445(i64) - 465:446(i16vec4) Bitcast 464 - Store 448(i16v4) 465 - 466: 17(int) Load 451(u32) - 467: 57(i16vec2) Bitcast 466 - Store 452(u16v2) 467 - 468: 77(int64_t) Load 456(u64) - 469:457(i16vec4) Bitcast 468 - Store 459(u16v4) 469 - 472:202(i16vec3) Load 370(u16v) - 473: 36(int16_t) Load 372(u16) - 474:202(i16vec3) CompositeConstruct 473 473 473 - 475: 439(bvec3) ULessThan 472 474 - Store 471(bv) 475 - 476: 52(i16vec2) Load 357(i16v) - 477: 14(int16_t) Load 360(i16) - 478: 52(i16vec2) CompositeConstruct 477 477 - 479: 174(bvec2) SLessThan 476 478 - 480: 289(ptr) AccessChain 471(bv) 291 - 481: 173(bool) CompositeExtract 479 0 - Store 480 481 - 482: 289(ptr) AccessChain 471(bv) 273 - 483: 173(bool) CompositeExtract 479 1 - Store 482 483 - 484:202(i16vec3) Load 370(u16v) - 485: 36(int16_t) Load 372(u16) - 486:202(i16vec3) CompositeConstruct 485 485 485 - 487: 439(bvec3) ULessThanEqual 484 486 - Store 471(bv) 487 - 488: 52(i16vec2) Load 357(i16v) - 489: 14(int16_t) Load 360(i16) - 490: 52(i16vec2) CompositeConstruct 489 489 - 491: 174(bvec2) SLessThanEqual 488 490 - 492: 289(ptr) AccessChain 471(bv) 291 - 493: 173(bool) CompositeExtract 491 0 - Store 492 493 - 494: 289(ptr) AccessChain 471(bv) 273 - 495: 173(bool) CompositeExtract 491 1 - Store 494 495 - 496:202(i16vec3) Load 370(u16v) - 497: 36(int16_t) Load 372(u16) - 498:202(i16vec3) CompositeConstruct 497 497 497 - 499: 439(bvec3) UGreaterThan 496 498 - Store 471(bv) 499 - 500: 52(i16vec2) Load 357(i16v) - 501: 14(int16_t) Load 360(i16) - 502: 52(i16vec2) CompositeConstruct 501 501 - 503: 174(bvec2) SGreaterThan 500 502 - 504: 289(ptr) AccessChain 471(bv) 291 - 505: 173(bool) CompositeExtract 503 0 - Store 504 505 - 506: 289(ptr) AccessChain 471(bv) 273 - 507: 173(bool) CompositeExtract 503 1 - Store 506 507 - 508:202(i16vec3) Load 370(u16v) - 509: 36(int16_t) Load 372(u16) - 510:202(i16vec3) CompositeConstruct 509 509 509 - 511: 439(bvec3) UGreaterThanEqual 508 510 - Store 471(bv) 511 - 512: 52(i16vec2) Load 357(i16v) - 513: 14(int16_t) Load 360(i16) - 514: 52(i16vec2) CompositeConstruct 513 513 - 515: 174(bvec2) SGreaterThanEqual 512 514 - 516: 289(ptr) AccessChain 471(bv) 291 - 517: 173(bool) CompositeExtract 515 0 - Store 516 517 - 518: 289(ptr) AccessChain 471(bv) 273 - 519: 173(bool) CompositeExtract 515 1 - Store 518 519 - 520:202(i16vec3) Load 370(u16v) - 521: 36(int16_t) Load 372(u16) - 522:202(i16vec3) CompositeConstruct 521 521 521 - 523: 439(bvec3) IEqual 520 522 - Store 471(bv) 523 - 524: 52(i16vec2) Load 357(i16v) - 525: 14(int16_t) Load 360(i16) - 526: 52(i16vec2) CompositeConstruct 525 525 - 527: 174(bvec2) IEqual 524 526 - 528: 289(ptr) AccessChain 471(bv) 291 - 529: 173(bool) CompositeExtract 527 0 - Store 528 529 - 530: 289(ptr) AccessChain 471(bv) 273 - 531: 173(bool) CompositeExtract 527 1 - Store 530 531 - 532:202(i16vec3) Load 370(u16v) - 533: 36(int16_t) Load 372(u16) - 534:202(i16vec3) CompositeConstruct 533 533 533 - 535: 439(bvec3) INotEqual 532 534 - Store 471(bv) 535 - 536: 52(i16vec2) Load 357(i16v) - 537: 14(int16_t) Load 360(i16) - 538: 52(i16vec2) CompositeConstruct 537 537 - 539: 174(bvec2) INotEqual 536 538 - 540: 289(ptr) AccessChain 471(bv) 291 - 541: 173(bool) CompositeExtract 539 0 - Store 540 541 - 542: 289(ptr) AccessChain 471(bv) 273 - 543: 173(bool) CompositeExtract 539 1 - Store 542 543 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.int32.frag.out b/deps/glslang/Test/baseResults/spv.int32.frag.out deleted file mode 100644 index af232ec3..00000000 --- a/deps/glslang/Test/baseResults/spv.int32.frag.out +++ /dev/null @@ -1,730 +0,0 @@ -spv.int32.frag -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 505 - - Capability Shader - Capability Float16 - Capability Float64 - Capability Int64 - Capability Int16 - Capability Int8 - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_shader_explicit_arithmetic_types" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float32" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float64" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int16" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int32" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int64" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int8" - Name 4 "main" - Name 6 "literal(" - Name 8 "typeCast32(" - Name 10 "operators(" - Name 12 "builtinFuncs(" - Name 16 "u32Max" - Name 20 "i32" - Name 27 "Uniforms" - MemberName 27(Uniforms) 0 "index" - Name 29 "" - Name 35 "indexable" - Name 39 "u32" - Name 46 "indexable" - Name 51 "u32v" - Name 54 "i32v" - Name 60 "i64v" - Name 66 "u64v" - Name 78 "f32v" - Name 84 "f64v" - Name 94 "i8v" - Name 105 "i16v" - Name 125 "u8v" - Name 132 "u16v" - Name 152 "f16v" - Name 168 "bv" - Name 186 "u32v" - Name 191 "i32" - Name 210 "i" - Name 214 "uv" - Name 227 "i64" - Name 260 "b" - Name 312 "i32v" - Name 315 "i32" - Name 325 "u32v" - Name 327 "u32" - Name 399 "i8v4" - Name 402 "i16v2" - Name 407 "u8v4" - Name 410 "u16v2" - Name 413 "i64" - Name 416 "u32v2" - Name 418 "u64" - Name 422 "bv" - Name 497 "Block" - MemberName 497(Block) 0 "i32" - MemberName 497(Block) 1 "i32v2" - MemberName 497(Block) 2 "i32v3" - MemberName 497(Block) 3 "i32v4" - MemberName 497(Block) 4 "u32" - MemberName 497(Block) 5 "u32v2" - MemberName 497(Block) 6 "u32v3" - MemberName 497(Block) 7 "u32v4" - Name 499 "block" - Name 500 "si32" - Name 501 "su32" - Name 502 "si" - Name 503 "su" - Name 504 "sb" - MemberDecorate 27(Uniforms) 0 Offset 0 - Decorate 27(Uniforms) Block - Decorate 29 DescriptorSet 0 - Decorate 29 Binding 0 - MemberDecorate 497(Block) 0 Offset 0 - MemberDecorate 497(Block) 1 Offset 8 - MemberDecorate 497(Block) 2 Offset 16 - MemberDecorate 497(Block) 3 Offset 32 - MemberDecorate 497(Block) 4 Offset 48 - MemberDecorate 497(Block) 5 Offset 56 - MemberDecorate 497(Block) 6 Offset 64 - MemberDecorate 497(Block) 7 Offset 80 - Decorate 497(Block) Block - Decorate 499(block) DescriptorSet 0 - Decorate 499(block) Binding 1 - Decorate 500(si32) SpecId 100 - Decorate 501(su32) SpecId 101 - Decorate 502(si) SpecId 102 - Decorate 503(su) SpecId 103 - Decorate 504(sb) SpecId 104 - 2: TypeVoid - 3: TypeFunction 2 - 14: TypeInt 32 0 - 15: TypePointer Private 14(int) - 16(u32Max): 15(ptr) Variable Private - 17: 14(int) Constant 4294967295 - 18: TypeInt 32 1 - 19: TypePointer Function 18(int) - 21: 14(int) Constant 3 - 22: TypeArray 18(int) 21 - 23: 18(int) Constant 4008636143 - 24: 18(int) Constant 4294967295 - 25: 18(int) Constant 536870912 - 26: 22 ConstantComposite 23 24 25 - 27(Uniforms): TypeStruct 14(int) - 28: TypePointer Uniform 27(Uniforms) - 29: 28(ptr) Variable Uniform - 30: 18(int) Constant 0 - 31: TypePointer Uniform 14(int) - 34: TypePointer Function 22 - 38: TypePointer Function 14(int) - 40: TypeArray 14(int) 21 - 41: 14(int) Constant 2147483647 - 42: 40 ConstantComposite 17 17 41 - 45: TypePointer Function 40 - 49: TypeVector 14(int) 2 - 50: TypePointer Function 49(ivec2) - 52: TypeVector 18(int) 2 - 53: TypePointer Function 52(ivec2) - 57: TypeInt 64 1 - 58: TypeVector 57(int64_t) 2 - 59: TypePointer Function 58(i64vec2) - 63: TypeInt 64 0 - 64: TypeVector 63(int64_t) 2 - 65: TypePointer Function 64(i64vec2) - 75: TypeFloat 32 - 76: TypeVector 75(float) 2 - 77: TypePointer Function 76(fvec2) - 81: TypeFloat 64 - 82: TypeVector 81(float64_t) 2 - 83: TypePointer Function 82(f64vec2) - 91: TypeInt 8 1 - 92: TypeVector 91(int8_t) 2 - 93: TypePointer Function 92(i8vec2) - 98: TypeInt 8 0 - 99: TypeVector 98(int8_t) 2 - 102: TypeInt 16 1 - 103: TypeVector 102(int16_t) 2 - 104: TypePointer Function 103(i16vec2) - 109: TypeInt 16 0 - 110: TypeVector 109(int16_t) 2 - 124: TypePointer Function 99(i8vec2) - 131: TypePointer Function 110(i16vec2) - 149: TypeFloat 16 - 150: TypeVector 149(float16_t) 2 - 151: TypePointer Function 150(f16vec2) - 165: TypeBool - 166: TypeVector 165(bool) 2 - 167: TypePointer Function 166(bvec2) - 170: 18(int) Constant 1 - 171: 52(ivec2) ConstantComposite 30 30 - 172: 52(ivec2) ConstantComposite 170 170 - 175: 14(int) Constant 0 - 176: 14(int) Constant 1 - 177: 49(ivec2) ConstantComposite 175 175 - 178: 49(ivec2) ConstantComposite 176 176 - 184: TypeVector 14(int) 3 - 185: TypePointer Function 184(ivec3) - 188: TypeVector 18(int) 3 - 226: TypePointer Function 57(int64_t) - 251: 14(int) Constant 2 - 259: TypePointer Function 165(bool) - 323: 52(ivec2) ConstantComposite 24 24 - 332: 184(ivec3) ConstantComposite 175 175 175 - 374: 165(bool) ConstantTrue - 381: 165(bool) ConstantFalse - 382: 166(bvec2) ConstantComposite 381 381 - 394: TypeVector 165(bool) 3 - 395: 394(bvec3) ConstantComposite 381 381 381 - 397: TypeVector 91(int8_t) 4 - 398: TypePointer Function 397(i8vec4) - 405: TypeVector 98(int8_t) 4 - 406: TypePointer Function 405(i8vec4) - 417: TypePointer Function 63(int64_t) - 421: TypePointer Function 394(bvec3) - 495: TypeVector 18(int) 4 - 496: TypeVector 14(int) 4 - 497(Block): TypeStruct 18(int) 52(ivec2) 188(ivec3) 495(ivec4) 14(int) 49(ivec2) 184(ivec3) 496(ivec4) - 498: TypePointer Uniform 497(Block) - 499(block): 498(ptr) Variable Uniform - 500(si32): 18(int) SpecConstant 4294967286 - 501(su32): 14(int) SpecConstant 20 - 502(si): 18(int) SpecConstant 4294967291 - 503(su): 14(int) SpecConstant 4 - 504(sb): 165(bool) SpecConstantTrue - 4(main): 2 Function None 3 - 5: Label - Store 16(u32Max) 17 - Return - FunctionEnd - 6(literal(): 2 Function None 3 - 7: Label - 20(i32): 19(ptr) Variable Function - 35(indexable): 34(ptr) Variable Function - 39(u32): 38(ptr) Variable Function - 46(indexable): 45(ptr) Variable Function - 32: 31(ptr) AccessChain 29 30 - 33: 14(int) Load 32 - Store 35(indexable) 26 - 36: 19(ptr) AccessChain 35(indexable) 33 - 37: 18(int) Load 36 - Store 20(i32) 37 - 43: 31(ptr) AccessChain 29 30 - 44: 14(int) Load 43 - Store 46(indexable) 42 - 47: 38(ptr) AccessChain 46(indexable) 44 - 48: 14(int) Load 47 - Store 39(u32) 48 - Return - FunctionEnd - 8(typeCast32(): 2 Function None 3 - 9: Label - 51(u32v): 50(ptr) Variable Function - 54(i32v): 53(ptr) Variable Function - 60(i64v): 59(ptr) Variable Function - 66(u64v): 65(ptr) Variable Function - 78(f32v): 77(ptr) Variable Function - 84(f64v): 83(ptr) Variable Function - 94(i8v): 93(ptr) Variable Function - 105(i16v): 104(ptr) Variable Function - 125(u8v): 124(ptr) Variable Function - 132(u16v): 131(ptr) Variable Function - 152(f16v): 151(ptr) Variable Function - 168(bv): 167(ptr) Variable Function - 55: 52(ivec2) Load 54(i32v) - 56: 49(ivec2) Bitcast 55 - Store 51(u32v) 56 - 61: 52(ivec2) Load 54(i32v) - 62: 58(i64vec2) SConvert 61 - Store 60(i64v) 62 - 67: 52(ivec2) Load 54(i32v) - 68: 58(i64vec2) SConvert 67 - 69: 64(i64vec2) Bitcast 68 - Store 66(u64v) 69 - 70: 49(ivec2) Load 51(u32v) - 71: 64(i64vec2) UConvert 70 - 72: 58(i64vec2) Bitcast 71 - Store 60(i64v) 72 - 73: 49(ivec2) Load 51(u32v) - 74: 64(i64vec2) UConvert 73 - Store 66(u64v) 74 - 79: 52(ivec2) Load 54(i32v) - 80: 76(fvec2) ConvertSToF 79 - Store 78(f32v) 80 - 85: 52(ivec2) Load 54(i32v) - 86: 82(f64vec2) ConvertSToF 85 - Store 84(f64v) 86 - 87: 49(ivec2) Load 51(u32v) - 88: 76(fvec2) ConvertUToF 87 - Store 78(f32v) 88 - 89: 49(ivec2) Load 51(u32v) - 90: 82(f64vec2) ConvertUToF 89 - Store 84(f64v) 90 - 95: 52(ivec2) Load 54(i32v) - 96: 92(i8vec2) SConvert 95 - Store 94(i8v) 96 - 97: 49(ivec2) Load 51(u32v) - 100: 99(i8vec2) UConvert 97 - 101: 92(i8vec2) Bitcast 100 - Store 94(i8v) 101 - 106: 52(ivec2) Load 54(i32v) - 107:103(i16vec2) SConvert 106 - Store 105(i16v) 107 - 108: 49(ivec2) Load 51(u32v) - 111:110(i16vec2) UConvert 108 - 112:103(i16vec2) Bitcast 111 - Store 105(i16v) 112 - 113: 52(ivec2) Load 54(i32v) - 114: 18(int) CompositeExtract 113 0 - 115: 18(int) CompositeExtract 113 1 - 116: 52(ivec2) CompositeConstruct 114 115 - Store 54(i32v) 116 - 117: 49(ivec2) Load 51(u32v) - 118: 52(ivec2) Bitcast 117 - Store 54(i32v) 118 - 119: 52(ivec2) Load 54(i32v) - 120: 58(i64vec2) SConvert 119 - Store 60(i64v) 120 - 121: 49(ivec2) Load 51(u32v) - 122: 64(i64vec2) UConvert 121 - 123: 58(i64vec2) Bitcast 122 - Store 60(i64v) 123 - 126: 52(ivec2) Load 54(i32v) - 127: 92(i8vec2) SConvert 126 - 128: 99(i8vec2) Bitcast 127 - Store 125(u8v) 128 - 129: 49(ivec2) Load 51(u32v) - 130: 99(i8vec2) UConvert 129 - Store 125(u8v) 130 - 133: 52(ivec2) Load 54(i32v) - 134:103(i16vec2) SConvert 133 - 135:110(i16vec2) Bitcast 134 - Store 132(u16v) 135 - 136: 49(ivec2) Load 51(u32v) - 137:110(i16vec2) UConvert 136 - Store 132(u16v) 137 - 138: 52(ivec2) Load 54(i32v) - 139: 49(ivec2) Bitcast 138 - Store 51(u32v) 139 - 140: 49(ivec2) Load 51(u32v) - 141: 14(int) CompositeExtract 140 0 - 142: 14(int) CompositeExtract 140 1 - 143: 49(ivec2) CompositeConstruct 141 142 - Store 51(u32v) 143 - 144: 52(ivec2) Load 54(i32v) - 145: 58(i64vec2) SConvert 144 - 146: 64(i64vec2) Bitcast 145 - Store 66(u64v) 146 - 147: 49(ivec2) Load 51(u32v) - 148: 64(i64vec2) UConvert 147 - Store 66(u64v) 148 - 153: 52(ivec2) Load 54(i32v) - 154:150(f16vec2) ConvertSToF 153 - Store 152(f16v) 154 - 155: 52(ivec2) Load 54(i32v) - 156: 76(fvec2) ConvertSToF 155 - Store 78(f32v) 156 - 157: 52(ivec2) Load 54(i32v) - 158: 82(f64vec2) ConvertSToF 157 - Store 84(f64v) 158 - 159: 49(ivec2) Load 51(u32v) - 160:150(f16vec2) ConvertUToF 159 - Store 152(f16v) 160 - 161: 49(ivec2) Load 51(u32v) - 162: 76(fvec2) ConvertUToF 161 - Store 78(f32v) 162 - 163: 49(ivec2) Load 51(u32v) - 164: 82(f64vec2) ConvertUToF 163 - Store 84(f64v) 164 - 169: 166(bvec2) Load 168(bv) - 173: 52(ivec2) Select 169 172 171 - Store 54(i32v) 173 - 174: 166(bvec2) Load 168(bv) - 179: 49(ivec2) Select 174 178 177 - Store 51(u32v) 179 - 180: 52(ivec2) Load 54(i32v) - 181: 166(bvec2) INotEqual 180 177 - Store 168(bv) 181 - 182: 49(ivec2) Load 51(u32v) - 183: 166(bvec2) INotEqual 182 177 - Store 168(bv) 183 - Return - FunctionEnd - 10(operators(): 2 Function None 3 - 11: Label - 186(u32v): 185(ptr) Variable Function - 191(i32): 19(ptr) Variable Function - 210(i): 19(ptr) Variable Function - 214(uv): 185(ptr) Variable Function - 227(i64): 226(ptr) Variable Function - 260(b): 259(ptr) Variable Function - 187: 184(ivec3) Load 186(u32v) - 189: 188(ivec3) CompositeConstruct 170 170 170 - 190: 184(ivec3) IAdd 187 189 - Store 186(u32v) 190 - 192: 18(int) Load 191(i32) - 193: 18(int) ISub 192 170 - Store 191(i32) 193 - 194: 18(int) Load 191(i32) - 195: 18(int) IAdd 194 170 - Store 191(i32) 195 - 196: 184(ivec3) Load 186(u32v) - 197: 188(ivec3) CompositeConstruct 170 170 170 - 198: 184(ivec3) ISub 196 197 - Store 186(u32v) 198 - 199: 184(ivec3) Load 186(u32v) - 200: 184(ivec3) Not 199 - Store 186(u32v) 200 - 201: 18(int) Load 191(i32) - Store 191(i32) 201 - 202: 184(ivec3) Load 186(u32v) - 203: 184(ivec3) SNegate 202 - Store 186(u32v) 203 - 204: 18(int) Load 191(i32) - 205: 18(int) Load 191(i32) - 206: 18(int) IAdd 205 204 - Store 191(i32) 206 - 207: 184(ivec3) Load 186(u32v) - 208: 184(ivec3) Load 186(u32v) - 209: 184(ivec3) ISub 208 207 - Store 186(u32v) 209 - 211: 18(int) Load 191(i32) - 212: 18(int) Load 210(i) - 213: 18(int) IMul 212 211 - Store 210(i) 213 - 215: 184(ivec3) Load 186(u32v) - 216: 184(ivec3) Load 214(uv) - 217: 184(ivec3) UDiv 216 215 - Store 214(uv) 217 - 218: 18(int) Load 191(i32) - 219: 14(int) Bitcast 218 - 220: 184(ivec3) Load 214(uv) - 221: 184(ivec3) CompositeConstruct 219 219 219 - 222: 184(ivec3) UMod 220 221 - Store 214(uv) 222 - 223: 184(ivec3) Load 186(u32v) - 224: 184(ivec3) Load 214(uv) - 225: 184(ivec3) IAdd 223 224 - Store 214(uv) 225 - 228: 18(int) Load 191(i32) - 229: 57(int64_t) SConvert 228 - 230: 57(int64_t) Load 227(i64) - 231: 57(int64_t) ISub 229 230 - Store 227(i64) 231 - 232: 184(ivec3) Load 186(u32v) - 233: 184(ivec3) Load 214(uv) - 234: 184(ivec3) IMul 232 233 - Store 214(uv) 234 - 235: 18(int) Load 191(i32) - 236: 57(int64_t) SConvert 235 - 237: 57(int64_t) Load 227(i64) - 238: 57(int64_t) IMul 236 237 - Store 227(i64) 238 - 239: 18(int) Load 191(i32) - 240: 18(int) Load 210(i) - 241: 18(int) SMod 239 240 - Store 210(i) 241 - 242: 18(int) Load 191(i32) - 243: 184(ivec3) Load 186(u32v) - 244: 188(ivec3) CompositeConstruct 242 242 242 - 245: 184(ivec3) ShiftLeftLogical 243 244 - Store 186(u32v) 245 - 246: 38(ptr) AccessChain 186(u32v) 176 - 247: 14(int) Load 246 - 248: 18(int) Load 191(i32) - 249: 18(int) ShiftRightArithmetic 248 247 - Store 191(i32) 249 - 250: 57(int64_t) Load 227(i64) - 252: 38(ptr) AccessChain 186(u32v) 251 - 253: 14(int) Load 252 - 254: 57(int64_t) ShiftLeftLogical 250 253 - Store 227(i64) 254 - 255: 184(ivec3) Load 186(u32v) - 256: 18(int) Load 210(i) - 257: 188(ivec3) CompositeConstruct 256 256 256 - 258: 184(ivec3) ShiftLeftLogical 255 257 - Store 214(uv) 258 - 261: 38(ptr) AccessChain 186(u32v) 175 - 262: 14(int) Load 261 - 263: 18(int) Load 191(i32) - 264: 14(int) Bitcast 263 - 265: 165(bool) INotEqual 262 264 - Store 260(b) 265 - 266: 18(int) Load 191(i32) - 267: 14(int) Bitcast 266 - 268: 38(ptr) AccessChain 186(u32v) 175 - 269: 14(int) Load 268 - 270: 165(bool) IEqual 267 269 - Store 260(b) 270 - 271: 38(ptr) AccessChain 186(u32v) 175 - 272: 14(int) Load 271 - 273: 38(ptr) AccessChain 214(uv) 176 - 274: 14(int) Load 273 - 275: 165(bool) UGreaterThan 272 274 - Store 260(b) 275 - 276: 18(int) Load 191(i32) - 277: 18(int) Load 210(i) - 278: 165(bool) SLessThan 276 277 - Store 260(b) 278 - 279: 38(ptr) AccessChain 186(u32v) 176 - 280: 14(int) Load 279 - 281: 38(ptr) AccessChain 214(uv) 175 - 282: 14(int) Load 281 - 283: 165(bool) UGreaterThanEqual 280 282 - Store 260(b) 283 - 284: 18(int) Load 191(i32) - 285: 18(int) Load 210(i) - 286: 165(bool) SLessThanEqual 284 285 - Store 260(b) 286 - 287: 18(int) Load 191(i32) - 288: 14(int) Bitcast 287 - 289: 184(ivec3) Load 214(uv) - 290: 184(ivec3) CompositeConstruct 288 288 288 - 291: 184(ivec3) BitwiseOr 289 290 - Store 214(uv) 291 - 292: 18(int) Load 191(i32) - 293: 18(int) Load 210(i) - 294: 18(int) BitwiseOr 292 293 - Store 210(i) 294 - 295: 18(int) Load 191(i32) - 296: 57(int64_t) SConvert 295 - 297: 57(int64_t) Load 227(i64) - 298: 57(int64_t) BitwiseAnd 297 296 - Store 227(i64) 298 - 299: 184(ivec3) Load 186(u32v) - 300: 184(ivec3) Load 214(uv) - 301: 184(ivec3) BitwiseAnd 299 300 - Store 214(uv) 301 - 302: 18(int) Load 191(i32) - 303: 14(int) Bitcast 302 - 304: 184(ivec3) Load 214(uv) - 305: 184(ivec3) CompositeConstruct 303 303 303 - 306: 184(ivec3) BitwiseXor 304 305 - Store 214(uv) 306 - 307: 184(ivec3) Load 186(u32v) - 308: 18(int) Load 191(i32) - 309: 14(int) Bitcast 308 - 310: 184(ivec3) CompositeConstruct 309 309 309 - 311: 184(ivec3) BitwiseXor 307 310 - Store 186(u32v) 311 - Return - FunctionEnd -12(builtinFuncs(): 2 Function None 3 - 13: Label - 312(i32v): 53(ptr) Variable Function - 315(i32): 19(ptr) Variable Function - 325(u32v): 185(ptr) Variable Function - 327(u32): 38(ptr) Variable Function - 399(i8v4): 398(ptr) Variable Function - 402(i16v2): 104(ptr) Variable Function - 407(u8v4): 406(ptr) Variable Function - 410(u16v2): 131(ptr) Variable Function - 413(i64): 226(ptr) Variable Function - 416(u32v2): 50(ptr) Variable Function - 418(u64): 417(ptr) Variable Function - 422(bv): 421(ptr) Variable Function - 313: 52(ivec2) Load 312(i32v) - 314: 52(ivec2) ExtInst 1(GLSL.std.450) 5(SAbs) 313 - Store 312(i32v) 314 - 316: 18(int) Load 315(i32) - 317: 18(int) ExtInst 1(GLSL.std.450) 7(SSign) 316 - Store 315(i32) 317 - 318: 52(ivec2) Load 312(i32v) - 319: 18(int) Load 315(i32) - 320: 52(ivec2) CompositeConstruct 319 319 - 321: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 318 320 - Store 312(i32v) 321 - 322: 52(ivec2) Load 312(i32v) - 324: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 322 323 - Store 312(i32v) 324 - 326: 184(ivec3) Load 325(u32v) - 328: 14(int) Load 327(u32) - 329: 184(ivec3) CompositeConstruct 328 328 328 - 330: 184(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 326 329 - Store 325(u32v) 330 - 331: 184(ivec3) Load 325(u32v) - 333: 184(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 331 332 - Store 325(u32v) 333 - 334: 52(ivec2) Load 312(i32v) - 335: 18(int) Load 315(i32) - 336: 52(ivec2) CompositeConstruct 335 335 - 337: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 334 336 - Store 312(i32v) 337 - 338: 52(ivec2) Load 312(i32v) - 339: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 338 323 - Store 312(i32v) 339 - 340: 184(ivec3) Load 325(u32v) - 341: 14(int) Load 327(u32) - 342: 184(ivec3) CompositeConstruct 341 341 341 - 343: 184(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 340 342 - Store 325(u32v) 343 - 344: 184(ivec3) Load 325(u32v) - 345: 184(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 344 332 - Store 325(u32v) 345 - 346: 52(ivec2) Load 312(i32v) - 347: 18(int) Load 315(i32) - 348: 18(int) SNegate 347 - 349: 18(int) Load 315(i32) - 350: 52(ivec2) CompositeConstruct 348 348 - 351: 52(ivec2) CompositeConstruct 349 349 - 352: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 346 350 351 - Store 312(i32v) 352 - 353: 52(ivec2) Load 312(i32v) - 354: 52(ivec2) Load 312(i32v) - 355: 52(ivec2) SNegate 354 - 356: 52(ivec2) Load 312(i32v) - 357: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 353 355 356 - Store 312(i32v) 357 - 358: 184(ivec3) Load 325(u32v) - 359: 14(int) Load 327(u32) - 360: 14(int) SNegate 359 - 361: 14(int) Load 327(u32) - 362: 184(ivec3) CompositeConstruct 360 360 360 - 363: 184(ivec3) CompositeConstruct 361 361 361 - 364: 184(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 358 362 363 - Store 325(u32v) 364 - 365: 184(ivec3) Load 325(u32v) - 366: 184(ivec3) Load 325(u32v) - 367: 184(ivec3) SNegate 366 - 368: 184(ivec3) Load 325(u32v) - 369: 184(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 365 367 368 - Store 325(u32v) 369 - 370: 19(ptr) AccessChain 312(i32v) 175 - 371: 18(int) Load 370 - 372: 19(ptr) AccessChain 312(i32v) 176 - 373: 18(int) Load 372 - 375: 18(int) Select 374 373 371 - Store 315(i32) 375 - 376: 18(int) Load 315(i32) - 377: 52(ivec2) CompositeConstruct 376 376 - 378: 18(int) Load 315(i32) - 379: 18(int) SNegate 378 - 380: 52(ivec2) CompositeConstruct 379 379 - 383: 52(ivec2) Select 382 380 377 - Store 312(i32v) 383 - 384: 38(ptr) AccessChain 325(u32v) 175 - 385: 14(int) Load 384 - 386: 38(ptr) AccessChain 325(u32v) 176 - 387: 14(int) Load 386 - 388: 14(int) Select 374 387 385 - Store 327(u32) 388 - 389: 14(int) Load 327(u32) - 390: 184(ivec3) CompositeConstruct 389 389 389 - 391: 14(int) Load 327(u32) - 392: 14(int) SNegate 391 - 393: 184(ivec3) CompositeConstruct 392 392 392 - 396: 184(ivec3) Select 395 393 390 - Store 325(u32v) 396 - 400: 397(i8vec4) Load 399(i8v4) - 401: 18(int) Bitcast 400 - Store 315(i32) 401 - 403:103(i16vec2) Load 402(i16v2) - 404: 18(int) Bitcast 403 - Store 315(i32) 404 - 408: 405(i8vec4) Load 407(u8v4) - 409: 14(int) Bitcast 408 - Store 327(u32) 409 - 411:110(i16vec2) Load 410(u16v2) - 412: 14(int) Bitcast 411 - Store 327(u32) 412 - 414: 57(int64_t) Load 413(i64) - 415: 52(ivec2) Bitcast 414 - Store 312(i32v) 415 - 419: 63(int64_t) Load 418(u64) - 420: 49(ivec2) Bitcast 419 - Store 416(u32v2) 420 - 423: 184(ivec3) Load 325(u32v) - 424: 14(int) Load 327(u32) - 425: 184(ivec3) CompositeConstruct 424 424 424 - 426: 394(bvec3) ULessThan 423 425 - Store 422(bv) 426 - 427: 52(ivec2) Load 312(i32v) - 428: 18(int) Load 315(i32) - 429: 52(ivec2) CompositeConstruct 428 428 - 430: 166(bvec2) SLessThan 427 429 - 431: 259(ptr) AccessChain 422(bv) 175 - 432: 165(bool) CompositeExtract 430 0 - Store 431 432 - 433: 259(ptr) AccessChain 422(bv) 176 - 434: 165(bool) CompositeExtract 430 1 - Store 433 434 - 435: 184(ivec3) Load 325(u32v) - 436: 14(int) Load 327(u32) - 437: 184(ivec3) CompositeConstruct 436 436 436 - 438: 394(bvec3) ULessThanEqual 435 437 - Store 422(bv) 438 - 439: 52(ivec2) Load 312(i32v) - 440: 18(int) Load 315(i32) - 441: 52(ivec2) CompositeConstruct 440 440 - 442: 166(bvec2) SLessThanEqual 439 441 - 443: 259(ptr) AccessChain 422(bv) 175 - 444: 165(bool) CompositeExtract 442 0 - Store 443 444 - 445: 259(ptr) AccessChain 422(bv) 176 - 446: 165(bool) CompositeExtract 442 1 - Store 445 446 - 447: 184(ivec3) Load 325(u32v) - 448: 14(int) Load 327(u32) - 449: 184(ivec3) CompositeConstruct 448 448 448 - 450: 394(bvec3) UGreaterThan 447 449 - Store 422(bv) 450 - 451: 52(ivec2) Load 312(i32v) - 452: 18(int) Load 315(i32) - 453: 52(ivec2) CompositeConstruct 452 452 - 454: 166(bvec2) SGreaterThan 451 453 - 455: 259(ptr) AccessChain 422(bv) 175 - 456: 165(bool) CompositeExtract 454 0 - Store 455 456 - 457: 259(ptr) AccessChain 422(bv) 176 - 458: 165(bool) CompositeExtract 454 1 - Store 457 458 - 459: 184(ivec3) Load 325(u32v) - 460: 14(int) Load 327(u32) - 461: 184(ivec3) CompositeConstruct 460 460 460 - 462: 394(bvec3) UGreaterThanEqual 459 461 - Store 422(bv) 462 - 463: 52(ivec2) Load 312(i32v) - 464: 18(int) Load 315(i32) - 465: 52(ivec2) CompositeConstruct 464 464 - 466: 166(bvec2) SGreaterThanEqual 463 465 - 467: 259(ptr) AccessChain 422(bv) 175 - 468: 165(bool) CompositeExtract 466 0 - Store 467 468 - 469: 259(ptr) AccessChain 422(bv) 176 - 470: 165(bool) CompositeExtract 466 1 - Store 469 470 - 471: 184(ivec3) Load 325(u32v) - 472: 14(int) Load 327(u32) - 473: 184(ivec3) CompositeConstruct 472 472 472 - 474: 394(bvec3) IEqual 471 473 - Store 422(bv) 474 - 475: 52(ivec2) Load 312(i32v) - 476: 18(int) Load 315(i32) - 477: 52(ivec2) CompositeConstruct 476 476 - 478: 166(bvec2) IEqual 475 477 - 479: 259(ptr) AccessChain 422(bv) 175 - 480: 165(bool) CompositeExtract 478 0 - Store 479 480 - 481: 259(ptr) AccessChain 422(bv) 176 - 482: 165(bool) CompositeExtract 478 1 - Store 481 482 - 483: 184(ivec3) Load 325(u32v) - 484: 14(int) Load 327(u32) - 485: 184(ivec3) CompositeConstruct 484 484 484 - 486: 394(bvec3) INotEqual 483 485 - Store 422(bv) 486 - 487: 52(ivec2) Load 312(i32v) - 488: 18(int) Load 315(i32) - 489: 52(ivec2) CompositeConstruct 488 488 - 490: 166(bvec2) INotEqual 487 489 - 491: 259(ptr) AccessChain 422(bv) 175 - 492: 165(bool) CompositeExtract 490 0 - Store 491 492 - 493: 259(ptr) AccessChain 422(bv) 176 - 494: 165(bool) CompositeExtract 490 1 - Store 493 494 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.int64.frag.out b/deps/glslang/Test/baseResults/spv.int64.frag.out deleted file mode 100644 index f2fd600f..00000000 --- a/deps/glslang/Test/baseResults/spv.int64.frag.out +++ /dev/null @@ -1,720 +0,0 @@ -spv.int64.frag -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 513 - - 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_EXT_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 394 "iv" - Name 399 "uv" - Name 403 "bv" - Name 486 "Block" - MemberName 486(Block) 0 "i64v" - MemberName 486(Block) 1 "u64" - Name 488 "block" - Name 489 "si64" - Name 490 "su64" - Name 491 "si" - Name 492 "su" - Name 493 "sb" - Name 494 "su64inc" - Name 495 "i64_to_b" - Name 496 "u64_to_b" - Name 497 "b_to_i64" - Name 498 "b_to_u64" - Name 499 "i64_to_i" - Name 500 "i_to_i64" - Name 501 "u64_to_u" - Name 502 "u_to_u64" - Name 503 "u64_to_i64" - Name 504 "i64_to_u64" - Name 506 "u64_to_i" - Name 508 "i_to_u64" - Name 510 "i64_to_u" - Name 512 "u_to_i64" - MemberDecorate 28(Uniforms) 0 Offset 0 - Decorate 28(Uniforms) Block - Decorate 30 DescriptorSet 0 - Decorate 30 Binding 0 - MemberDecorate 486(Block) 0 Offset 0 - MemberDecorate 486(Block) 1 Offset 24 - Decorate 486(Block) Block - Decorate 488(block) DescriptorSet 0 - Decorate 488(block) Binding 1 - Decorate 489(si64) SpecId 100 - Decorate 490(su64) SpecId 101 - Decorate 491(si) SpecId 102 - Decorate 492(su) SpecId 103 - Decorate 493(sb) SpecId 104 - Decorate 494(su64inc) SpecId 105 - 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) - 390: 31(int) Constant 1 - 391: 31(int) Constant 2 - 392: 74(ivec2) ConstantComposite 390 391 - 397: 81(ivec2) ConstantComposite 217 22 - 402: TypePointer Function 368(bvec3) - 486(Block): TypeStruct 136(i64vec3) 14(int64_t) - 487: TypePointer Uniform 486(Block) - 488(block): 487(ptr) Variable Uniform - 489(si64): 18(int64_t) SpecConstant 4294967286 4294967295 - 490(su64): 14(int64_t) SpecConstant 20 0 - 491(si): 31(int) SpecConstant 4294967291 - 492(su): 21(int) SpecConstant 4 - 493(sb): 55(bool) SpecConstantTrue - 494(su64inc): 14(int64_t) SpecConstantOp 128 490(su64) 70 - 495(i64_to_b): 55(bool) SpecConstantOp 171 489(si64) 69 - 496(u64_to_b): 55(bool) SpecConstantOp 171 490(su64) 69 - 497(b_to_i64): 18(int64_t) SpecConstantOp 169 493(sb) 61 60 - 498(b_to_u64): 14(int64_t) SpecConstantOp 169 493(sb) 70 69 - 499(i64_to_i): 31(int) SpecConstantOp 114 489(si64) - 500(i_to_i64): 18(int64_t) SpecConstantOp 114 491(si) - 501(u64_to_u): 21(int) SpecConstantOp 113 490(su64) - 502(u_to_u64): 14(int64_t) SpecConstantOp 113 492(su) - 503(u64_to_i64): 18(int64_t) SpecConstantOp 128 490(su64) 69 - 504(i64_to_u64): 14(int64_t) SpecConstantOp 128 489(si64) 69 - 505: 21(int) SpecConstantOp 113 490(su64) - 506(u64_to_i): 31(int) SpecConstantOp 128 505 227 - 507: 18(int64_t) SpecConstantOp 114 491(si) - 508(i_to_u64): 14(int64_t) SpecConstantOp 128 507 69 - 509: 31(int) SpecConstantOp 114 489(si64) - 510(i64_to_u): 21(int) SpecConstantOp 128 509 227 - 511: 14(int64_t) SpecConstantOp 113 492(su) - 512(u_to_i64): 18(int64_t) SpecConstantOp 128 511 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 - 394(iv): 75(ptr) Variable Function - 399(uv): 82(ptr) Variable Function - 403(bv): 402(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: 377(ptr) AccessChain 373(dv) 227 - 385:94(float64_t) CompositeExtract 383 0 - Store 384 385 - 386: 377(ptr) AccessChain 373(dv) 203 - 387:94(float64_t) CompositeExtract 383 1 - Store 386 387 - 388:132(i64vec3) Load 299(u64v) - 389:371(f64vec3) Bitcast 388 - Store 373(dv) 389 - 393: 18(int64_t) Bitcast 392 - Store 289(i64) 393 - 395: 18(int64_t) Load 289(i64) - 396: 74(ivec2) Bitcast 395 - Store 394(iv) 396 - 398: 14(int64_t) Bitcast 397 - Store 301(u64) 398 - 400: 14(int64_t) Load 301(u64) - 401: 81(ivec2) Bitcast 400 - Store 399(uv) 401 - 404:132(i64vec3) Load 299(u64v) - 405: 14(int64_t) Load 301(u64) - 406:132(i64vec3) CompositeConstruct 405 405 405 - 407: 368(bvec3) ULessThan 404 406 - Store 403(bv) 407 - 408: 52(i64vec2) Load 286(i64v) - 409: 18(int64_t) Load 289(i64) - 410: 52(i64vec2) CompositeConstruct 409 409 - 411: 56(bvec2) SLessThan 408 410 - 412: 225(ptr) AccessChain 403(bv) 227 - 413: 55(bool) CompositeExtract 411 0 - Store 412 413 - 414: 225(ptr) AccessChain 403(bv) 203 - 415: 55(bool) CompositeExtract 411 1 - Store 414 415 - 416:132(i64vec3) Load 299(u64v) - 417: 14(int64_t) Load 301(u64) - 418:132(i64vec3) CompositeConstruct 417 417 417 - 419: 368(bvec3) ULessThanEqual 416 418 - Store 403(bv) 419 - 420: 52(i64vec2) Load 286(i64v) - 421: 18(int64_t) Load 289(i64) - 422: 52(i64vec2) CompositeConstruct 421 421 - 423: 56(bvec2) SLessThanEqual 420 422 - 424: 225(ptr) AccessChain 403(bv) 227 - 425: 55(bool) CompositeExtract 423 0 - Store 424 425 - 426: 225(ptr) AccessChain 403(bv) 203 - 427: 55(bool) CompositeExtract 423 1 - Store 426 427 - 428:132(i64vec3) Load 299(u64v) - 429: 14(int64_t) Load 301(u64) - 430:132(i64vec3) CompositeConstruct 429 429 429 - 431: 368(bvec3) UGreaterThan 428 430 - Store 403(bv) 431 - 432: 52(i64vec2) Load 286(i64v) - 433: 18(int64_t) Load 289(i64) - 434: 52(i64vec2) CompositeConstruct 433 433 - 435: 56(bvec2) SGreaterThan 432 434 - 436: 225(ptr) AccessChain 403(bv) 227 - 437: 55(bool) CompositeExtract 435 0 - Store 436 437 - 438: 225(ptr) AccessChain 403(bv) 203 - 439: 55(bool) CompositeExtract 435 1 - Store 438 439 - 440:132(i64vec3) Load 299(u64v) - 441: 14(int64_t) Load 301(u64) - 442:132(i64vec3) CompositeConstruct 441 441 441 - 443: 368(bvec3) UGreaterThanEqual 440 442 - Store 403(bv) 443 - 444: 52(i64vec2) Load 286(i64v) - 445: 18(int64_t) Load 289(i64) - 446: 52(i64vec2) CompositeConstruct 445 445 - 447: 56(bvec2) SGreaterThanEqual 444 446 - 448: 225(ptr) AccessChain 403(bv) 227 - 449: 55(bool) CompositeExtract 447 0 - Store 448 449 - 450: 225(ptr) AccessChain 403(bv) 203 - 451: 55(bool) CompositeExtract 447 1 - Store 450 451 - 452:132(i64vec3) Load 299(u64v) - 453: 14(int64_t) Load 301(u64) - 454:132(i64vec3) CompositeConstruct 453 453 453 - 455: 368(bvec3) IEqual 452 454 - Store 403(bv) 455 - 456: 52(i64vec2) Load 286(i64v) - 457: 18(int64_t) Load 289(i64) - 458: 52(i64vec2) CompositeConstruct 457 457 - 459: 56(bvec2) IEqual 456 458 - 460: 225(ptr) AccessChain 403(bv) 227 - 461: 55(bool) CompositeExtract 459 0 - Store 460 461 - 462: 225(ptr) AccessChain 403(bv) 203 - 463: 55(bool) CompositeExtract 459 1 - Store 462 463 - 464:132(i64vec3) Load 299(u64v) - 465: 14(int64_t) Load 301(u64) - 466:132(i64vec3) CompositeConstruct 465 465 465 - 467: 368(bvec3) INotEqual 464 466 - Store 403(bv) 467 - 468: 52(i64vec2) Load 286(i64v) - 469: 18(int64_t) Load 289(i64) - 470: 52(i64vec2) CompositeConstruct 469 469 - 471: 56(bvec2) INotEqual 468 470 - 472: 225(ptr) AccessChain 403(bv) 227 - 473: 55(bool) CompositeExtract 471 0 - Store 472 473 - 474: 225(ptr) AccessChain 403(bv) 203 - 475: 55(bool) CompositeExtract 471 1 - Store 474 475 - 476: 14(int64_t) Load 301(u64) - 477: 18(int64_t) ExtInst 1(GLSL.std.450) 73(FindILsb) 476 - Store 289(i64) 477 - 478: 14(int64_t) Load 301(u64) - 479: 65(i64vec2) CompositeConstruct 478 478 - 480: 52(i64vec2) ExtInst 1(GLSL.std.450) 73(FindILsb) 479 - Store 286(i64v) 480 - 481: 14(int64_t) Load 301(u64) - 482: 18(int64_t) BitCount 481 - Store 289(i64) 482 - 483: 14(int64_t) Load 301(u64) - 484: 65(i64vec2) CompositeConstruct 483 483 - 485: 52(i64vec2) BitCount 484 - Store 286(i64v) 485 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.int8.frag.out b/deps/glslang/Test/baseResults/spv.int8.frag.out deleted file mode 100644 index e9cd5f86..00000000 --- a/deps/glslang/Test/baseResults/spv.int8.frag.out +++ /dev/null @@ -1,773 +0,0 @@ -spv.int8.frag -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 544 - - Capability Shader - Capability Float16 - Capability Float64 - Capability Int64 - Capability Int16 - Capability Int8 - Capability UniformAndStorageBuffer8BitAccess - Extension "SPV_KHR_8bit_storage" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_shader_explicit_arithmetic_types" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float32" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float64" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int16" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int32" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int64" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int8" - Name 4 "main" - Name 6 "literal(" - Name 8 "typeCast8(" - Name 10 "operators(" - Name 12 "builtinFuncs(" - Name 16 "i8" - Name 24 "Uniforms" - MemberName 24(Uniforms) 0 "index" - Name 26 "" - Name 33 "indexable" - Name 38 "u8" - Name 46 "indexable" - Name 51 "u8v" - Name 54 "i8v" - Name 60 "i16v" - Name 70 "i32v" - Name 78 "u32v" - Name 85 "i64v" - Name 91 "u64v" - Name 105 "f16v" - Name 111 "f32v" - Name 117 "f64v" - Name 144 "u16v" - Name 174 "bv" - Name 193 "arr" - Name 201 "u8v" - Name 206 "i8" - Name 226 "i" - Name 233 "uv" - Name 249 "i16" - Name 285 "b" - Name 348 "f" - Name 352 "i8v" - Name 355 "i8" - Name 365 "u8v" - Name 367 "u8" - Name 437 "i16" - Name 440 "i32" - Name 443 "i8v4" - Name 447 "u16" - Name 448 "u8v2" - Name 451 "u32" - Name 454 "u8v4" - Name 466 "bv" - Name 539 "Block" - MemberName 539(Block) 0 "i8" - MemberName 539(Block) 1 "i8v2" - MemberName 539(Block) 2 "i8v3" - MemberName 539(Block) 3 "i8v4" - MemberName 539(Block) 4 "u8" - MemberName 539(Block) 5 "u8v2" - MemberName 539(Block) 6 "u8v3" - MemberName 539(Block) 7 "u8v4" - Name 541 "block" - Name 542 "si8" - Name 543 "su8" - MemberDecorate 24(Uniforms) 0 Offset 0 - Decorate 24(Uniforms) Block - Decorate 26 DescriptorSet 0 - Decorate 26 Binding 0 - MemberDecorate 539(Block) 0 Offset 0 - MemberDecorate 539(Block) 1 Offset 2 - MemberDecorate 539(Block) 2 Offset 4 - MemberDecorate 539(Block) 3 Offset 8 - MemberDecorate 539(Block) 4 Offset 12 - MemberDecorate 539(Block) 5 Offset 14 - MemberDecorate 539(Block) 6 Offset 16 - MemberDecorate 539(Block) 7 Offset 20 - Decorate 539(Block) Block - Decorate 541(block) DescriptorSet 0 - Decorate 541(block) Binding 1 - Decorate 542(si8) SpecId 100 - Decorate 543(su8) SpecId 101 - 2: TypeVoid - 3: TypeFunction 2 - 14: TypeInt 8 1 - 15: TypePointer Function 14(int8_t) - 17: TypeInt 32 0 - 18: 17(int) Constant 3 - 19: TypeArray 14(int8_t) 18 - 20: 14(int8_t) Constant 4294967279 - 21: 14(int8_t) Constant 4294967295 - 22: 14(int8_t) Constant 0 - 23: 19 ConstantComposite 20 21 22 - 24(Uniforms): TypeStruct 17(int) - 25: TypePointer Uniform 24(Uniforms) - 26: 25(ptr) Variable Uniform - 27: TypeInt 32 1 - 28: 27(int) Constant 0 - 29: TypePointer Uniform 17(int) - 32: TypePointer Function 19 - 36: TypeInt 8 0 - 37: TypePointer Function 36(int8_t) - 39: TypeArray 36(int8_t) 18 - 40: 36(int8_t) Constant 255 - 41: 36(int8_t) Constant 127 - 42: 39 ConstantComposite 40 40 41 - 45: TypePointer Function 39 - 49: TypeVector 36(int8_t) 2 - 50: TypePointer Function 49(i8vec2) - 52: TypeVector 14(int8_t) 2 - 53: TypePointer Function 52(i8vec2) - 57: TypeInt 16 1 - 58: TypeVector 57(int16_t) 2 - 59: TypePointer Function 58(i16vec2) - 64: TypeInt 16 0 - 65: TypeVector 64(int16_t) 2 - 68: TypeVector 27(int) 2 - 69: TypePointer Function 68(ivec2) - 74: TypeVector 17(int) 2 - 77: TypePointer Function 74(ivec2) - 82: TypeInt 64 1 - 83: TypeVector 82(int64_t) 2 - 84: TypePointer Function 83(i64vec2) - 88: TypeInt 64 0 - 89: TypeVector 88(int64_t) 2 - 90: TypePointer Function 89(i64vec2) - 102: TypeFloat 16 - 103: TypeVector 102(float16_t) 2 - 104: TypePointer Function 103(f16vec2) - 108: TypeFloat 32 - 109: TypeVector 108(float) 2 - 110: TypePointer Function 109(fvec2) - 114: TypeFloat 64 - 115: TypeVector 114(float64_t) 2 - 116: TypePointer Function 115(f64vec2) - 143: TypePointer Function 65(i16vec2) - 171: TypeBool - 172: TypeVector 171(bool) 2 - 173: TypePointer Function 172(bvec2) - 176: 14(int8_t) Constant 1 - 177: 52(i8vec2) ConstantComposite 22 22 - 178: 52(i8vec2) ConstantComposite 176 176 - 181: 36(int8_t) Constant 0 - 182: 36(int8_t) Constant 1 - 183: 49(i8vec2) ConstantComposite 181 181 - 184: 49(i8vec2) ConstantComposite 182 182 - 190: 17(int) Constant 4 - 191: TypeArray 108(float) 190 - 192: TypePointer Function 191 - 194: 108(float) Constant 1065353216 - 195: 108(float) Constant 1073741824 - 196: 108(float) Constant 1077936128 - 197: 108(float) Constant 1082130432 - 198: 191 ConstantComposite 194 195 196 197 - 199: TypeVector 36(int8_t) 3 - 200: TypePointer Function 199(i8vec3) - 203: TypeVector 14(int8_t) 3 - 225: TypePointer Function 27(int) - 231: TypeVector 17(int) 3 - 232: TypePointer Function 231(ivec3) - 248: TypePointer Function 57(int16_t) - 270: 17(int) Constant 1 - 276: 17(int) Constant 2 - 284: TypePointer Function 171(bool) - 286: 17(int) Constant 0 - 300: TypePointer Function 17(int) - 347: TypePointer Function 108(float) - 363: 52(i8vec2) ConstantComposite 21 21 - 372: 199(i8vec3) ConstantComposite 181 181 181 - 414: 171(bool) ConstantTrue - 421: 171(bool) ConstantFalse - 422: 172(bvec2) ConstantComposite 421 421 - 434: TypeVector 171(bool) 3 - 435: 434(bvec3) ConstantComposite 421 421 421 - 441: TypeVector 14(int8_t) 4 - 442: TypePointer Function 441(i8vec4) - 446: TypePointer Function 64(int16_t) - 452: TypeVector 36(int8_t) 4 - 453: TypePointer Function 452(i8vec4) - 465: TypePointer Function 434(bvec3) - 539(Block): TypeStruct 14(int8_t) 52(i8vec2) 203(i8vec3) 441(i8vec4) 36(int8_t) 49(i8vec2) 199(i8vec3) 452(i8vec4) - 540: TypePointer Uniform 539(Block) - 541(block): 540(ptr) Variable Uniform - 542(si8): 14(int8_t) SpecConstant 4294967286 - 543(su8): 36(int8_t) SpecConstant 20 - 4(main): 2 Function None 3 - 5: Label - Return - FunctionEnd - 6(literal(): 2 Function None 3 - 7: Label - 16(i8): 15(ptr) Variable Function - 33(indexable): 32(ptr) Variable Function - 38(u8): 37(ptr) Variable Function - 46(indexable): 45(ptr) Variable Function - 30: 29(ptr) AccessChain 26 28 - 31: 17(int) Load 30 - Store 33(indexable) 23 - 34: 15(ptr) AccessChain 33(indexable) 31 - 35: 14(int8_t) Load 34 - Store 16(i8) 35 - 43: 29(ptr) AccessChain 26 28 - 44: 17(int) Load 43 - Store 46(indexable) 42 - 47: 37(ptr) AccessChain 46(indexable) 44 - 48: 36(int8_t) Load 47 - Store 38(u8) 48 - Return - FunctionEnd - 8(typeCast8(): 2 Function None 3 - 9: Label - 51(u8v): 50(ptr) Variable Function - 54(i8v): 53(ptr) Variable Function - 60(i16v): 59(ptr) Variable Function - 70(i32v): 69(ptr) Variable Function - 78(u32v): 77(ptr) Variable Function - 85(i64v): 84(ptr) Variable Function - 91(u64v): 90(ptr) Variable Function - 105(f16v): 104(ptr) Variable Function - 111(f32v): 110(ptr) Variable Function - 117(f64v): 116(ptr) Variable Function - 144(u16v): 143(ptr) Variable Function - 174(bv): 173(ptr) Variable Function - 55: 52(i8vec2) Load 54(i8v) - 56: 49(i8vec2) Bitcast 55 - Store 51(u8v) 56 - 61: 52(i8vec2) Load 54(i8v) - 62: 58(i16vec2) SConvert 61 - Store 60(i16v) 62 - 63: 49(i8vec2) Load 51(u8v) - 66: 65(i16vec2) UConvert 63 - 67: 58(i16vec2) Bitcast 66 - Store 60(i16v) 67 - 71: 52(i8vec2) Load 54(i8v) - 72: 68(ivec2) SConvert 71 - Store 70(i32v) 72 - 73: 49(i8vec2) Load 51(u8v) - 75: 74(ivec2) UConvert 73 - 76: 68(ivec2) Bitcast 75 - Store 70(i32v) 76 - 79: 52(i8vec2) Load 54(i8v) - 80: 68(ivec2) SConvert 79 - 81: 74(ivec2) Bitcast 80 - Store 78(u32v) 81 - 86: 52(i8vec2) Load 54(i8v) - 87: 83(i64vec2) SConvert 86 - Store 85(i64v) 87 - 92: 52(i8vec2) Load 54(i8v) - 93: 83(i64vec2) SConvert 92 - 94: 89(i64vec2) Bitcast 93 - Store 91(u64v) 94 - 95: 49(i8vec2) Load 51(u8v) - 96: 74(ivec2) UConvert 95 - Store 78(u32v) 96 - 97: 49(i8vec2) Load 51(u8v) - 98: 89(i64vec2) UConvert 97 - 99: 83(i64vec2) Bitcast 98 - Store 85(i64v) 99 - 100: 49(i8vec2) Load 51(u8v) - 101: 89(i64vec2) UConvert 100 - Store 91(u64v) 101 - 106: 52(i8vec2) Load 54(i8v) - 107:103(f16vec2) ConvertSToF 106 - Store 105(f16v) 107 - 112: 52(i8vec2) Load 54(i8v) - 113: 109(fvec2) ConvertSToF 112 - Store 111(f32v) 113 - 118: 52(i8vec2) Load 54(i8v) - 119:115(f64vec2) ConvertSToF 118 - Store 117(f64v) 119 - 120: 49(i8vec2) Load 51(u8v) - 121:103(f16vec2) ConvertUToF 120 - Store 105(f16v) 121 - 122: 49(i8vec2) Load 51(u8v) - 123: 109(fvec2) ConvertUToF 122 - Store 111(f32v) 123 - 124: 49(i8vec2) Load 51(u8v) - 125:115(f64vec2) ConvertUToF 124 - Store 117(f64v) 125 - 126: 49(i8vec2) Load 51(u8v) - 127: 52(i8vec2) Bitcast 126 - Store 54(i8v) 127 - 128: 52(i8vec2) Load 54(i8v) - 129: 58(i16vec2) SConvert 128 - Store 60(i16v) 129 - 130: 49(i8vec2) Load 51(u8v) - 131: 65(i16vec2) UConvert 130 - 132: 58(i16vec2) Bitcast 131 - Store 60(i16v) 132 - 133: 52(i8vec2) Load 54(i8v) - 134: 68(ivec2) SConvert 133 - Store 70(i32v) 134 - 135: 49(i8vec2) Load 51(u8v) - 136: 74(ivec2) UConvert 135 - 137: 68(ivec2) Bitcast 136 - Store 70(i32v) 137 - 138: 52(i8vec2) Load 54(i8v) - 139: 83(i64vec2) SConvert 138 - Store 85(i64v) 139 - 140: 52(i8vec2) Load 54(i8v) - 141: 83(i64vec2) SConvert 140 - 142: 89(i64vec2) Bitcast 141 - Store 91(u64v) 142 - 145: 52(i8vec2) Load 54(i8v) - 146: 58(i16vec2) SConvert 145 - 147: 65(i16vec2) Bitcast 146 - Store 144(u16v) 147 - 148: 49(i8vec2) Load 51(u8v) - 149: 65(i16vec2) UConvert 148 - Store 144(u16v) 149 - 150: 49(i8vec2) Load 51(u8v) - 151: 74(ivec2) UConvert 150 - Store 78(u32v) 151 - 152: 49(i8vec2) Load 51(u8v) - 153: 89(i64vec2) UConvert 152 - 154: 83(i64vec2) Bitcast 153 - Store 85(i64v) 154 - 155: 49(i8vec2) Load 51(u8v) - 156: 89(i64vec2) UConvert 155 - 157: 83(i64vec2) Bitcast 156 - 158: 89(i64vec2) Bitcast 157 - Store 91(u64v) 158 - 159: 52(i8vec2) Load 54(i8v) - 160:103(f16vec2) ConvertSToF 159 - Store 105(f16v) 160 - 161: 52(i8vec2) Load 54(i8v) - 162: 109(fvec2) ConvertSToF 161 - Store 111(f32v) 162 - 163: 52(i8vec2) Load 54(i8v) - 164:115(f64vec2) ConvertSToF 163 - Store 117(f64v) 164 - 165: 49(i8vec2) Load 51(u8v) - 166:103(f16vec2) ConvertUToF 165 - Store 105(f16v) 166 - 167: 49(i8vec2) Load 51(u8v) - 168: 109(fvec2) ConvertUToF 167 - Store 111(f32v) 168 - 169: 49(i8vec2) Load 51(u8v) - 170:115(f64vec2) ConvertUToF 169 - Store 117(f64v) 170 - 175: 172(bvec2) Load 174(bv) - 179: 52(i8vec2) Select 175 178 177 - Store 54(i8v) 179 - 180: 172(bvec2) Load 174(bv) - 185: 49(i8vec2) Select 180 184 183 - Store 51(u8v) 185 - 186: 52(i8vec2) Load 54(i8v) - 187: 172(bvec2) INotEqual 186 183 - Store 174(bv) 187 - 188: 49(i8vec2) Load 51(u8v) - 189: 172(bvec2) INotEqual 188 183 - Store 174(bv) 189 - Return - FunctionEnd - 10(operators(): 2 Function None 3 - 11: Label - 193(arr): 192(ptr) Variable Function - 201(u8v): 200(ptr) Variable Function - 206(i8): 15(ptr) Variable Function - 226(i): 225(ptr) Variable Function - 233(uv): 232(ptr) Variable Function - 249(i16): 248(ptr) Variable Function - 285(b): 284(ptr) Variable Function - 348(f): 347(ptr) Variable Function - Store 193(arr) 198 - 202: 199(i8vec3) Load 201(u8v) - 204: 203(i8vec3) CompositeConstruct 176 176 176 - 205: 199(i8vec3) IAdd 202 204 - Store 201(u8v) 205 - 207: 14(int8_t) Load 206(i8) - 208: 14(int8_t) ISub 207 176 - Store 206(i8) 208 - 209: 14(int8_t) Load 206(i8) - 210: 14(int8_t) IAdd 209 176 - Store 206(i8) 210 - 211: 199(i8vec3) Load 201(u8v) - 212: 203(i8vec3) CompositeConstruct 176 176 176 - 213: 199(i8vec3) ISub 211 212 - Store 201(u8v) 213 - 214: 199(i8vec3) Load 201(u8v) - 215: 199(i8vec3) Not 214 - Store 201(u8v) 215 - 216: 14(int8_t) Load 206(i8) - Store 206(i8) 216 - 217: 199(i8vec3) Load 201(u8v) - 218: 199(i8vec3) SNegate 217 - Store 201(u8v) 218 - 219: 14(int8_t) Load 206(i8) - 220: 14(int8_t) Load 206(i8) - 221: 14(int8_t) IAdd 220 219 - Store 206(i8) 221 - 222: 199(i8vec3) Load 201(u8v) - 223: 199(i8vec3) Load 201(u8v) - 224: 199(i8vec3) ISub 223 222 - Store 201(u8v) 224 - 227: 14(int8_t) Load 206(i8) - 228: 27(int) SConvert 227 - 229: 27(int) Load 226(i) - 230: 27(int) IMul 229 228 - Store 226(i) 230 - 234: 199(i8vec3) Load 201(u8v) - 235: 231(ivec3) UConvert 234 - 236: 231(ivec3) Load 233(uv) - 237: 231(ivec3) UDiv 236 235 - Store 233(uv) 237 - 238: 14(int8_t) Load 206(i8) - 239: 27(int) SConvert 238 - 240: 17(int) Bitcast 239 - 241: 231(ivec3) Load 233(uv) - 242: 231(ivec3) CompositeConstruct 240 240 240 - 243: 231(ivec3) UMod 241 242 - Store 233(uv) 243 - 244: 199(i8vec3) Load 201(u8v) - 245: 231(ivec3) UConvert 244 - 246: 231(ivec3) Load 233(uv) - 247: 231(ivec3) IAdd 245 246 - Store 233(uv) 247 - 250: 14(int8_t) Load 206(i8) - 251: 57(int16_t) SConvert 250 - 252: 57(int16_t) Load 249(i16) - 253: 57(int16_t) ISub 251 252 - Store 249(i16) 253 - 254: 199(i8vec3) Load 201(u8v) - 255: 231(ivec3) UConvert 254 - 256: 231(ivec3) Load 233(uv) - 257: 231(ivec3) IMul 255 256 - Store 233(uv) 257 - 258: 14(int8_t) Load 206(i8) - 259: 57(int16_t) SConvert 258 - 260: 57(int16_t) Load 249(i16) - 261: 57(int16_t) IMul 259 260 - Store 249(i16) 261 - 262: 14(int8_t) Load 206(i8) - 263: 27(int) SConvert 262 - 264: 27(int) Load 226(i) - 265: 27(int) SMod 263 264 - Store 226(i) 265 - 266: 14(int8_t) Load 206(i8) - 267: 199(i8vec3) Load 201(u8v) - 268: 203(i8vec3) CompositeConstruct 266 266 266 - 269: 199(i8vec3) ShiftLeftLogical 267 268 - Store 201(u8v) 269 - 271: 37(ptr) AccessChain 201(u8v) 270 - 272: 36(int8_t) Load 271 - 273: 14(int8_t) Load 206(i8) - 274: 14(int8_t) ShiftRightArithmetic 273 272 - Store 206(i8) 274 - 275: 14(int8_t) Load 206(i8) - 277: 37(ptr) AccessChain 201(u8v) 276 - 278: 36(int8_t) Load 277 - 279: 14(int8_t) ShiftLeftLogical 275 278 - Store 206(i8) 279 - 280: 199(i8vec3) Load 201(u8v) - 281: 14(int8_t) Load 206(i8) - 282: 203(i8vec3) CompositeConstruct 281 281 281 - 283: 199(i8vec3) ShiftLeftLogical 280 282 - Store 201(u8v) 283 - 287: 37(ptr) AccessChain 201(u8v) 286 - 288: 36(int8_t) Load 287 - 289: 14(int8_t) Load 206(i8) - 290: 36(int8_t) Bitcast 289 - 291: 171(bool) INotEqual 288 290 - Store 285(b) 291 - 292: 14(int8_t) Load 206(i8) - 293: 36(int8_t) Bitcast 292 - 294: 37(ptr) AccessChain 201(u8v) 286 - 295: 36(int8_t) Load 294 - 296: 171(bool) IEqual 293 295 - Store 285(b) 296 - 297: 37(ptr) AccessChain 201(u8v) 286 - 298: 36(int8_t) Load 297 - 299: 17(int) UConvert 298 - 301: 300(ptr) AccessChain 233(uv) 270 - 302: 17(int) Load 301 - 303: 171(bool) UGreaterThan 299 302 - Store 285(b) 303 - 304: 14(int8_t) Load 206(i8) - 305: 27(int) SConvert 304 - 306: 27(int) Load 226(i) - 307: 171(bool) SLessThan 305 306 - Store 285(b) 307 - 308: 37(ptr) AccessChain 201(u8v) 270 - 309: 36(int8_t) Load 308 - 310: 17(int) UConvert 309 - 311: 300(ptr) AccessChain 233(uv) 286 - 312: 17(int) Load 311 - 313: 171(bool) UGreaterThanEqual 310 312 - Store 285(b) 313 - 314: 14(int8_t) Load 206(i8) - 315: 27(int) SConvert 314 - 316: 27(int) Load 226(i) - 317: 171(bool) SLessThanEqual 315 316 - Store 285(b) 317 - 318: 14(int8_t) Load 206(i8) - 319: 27(int) SConvert 318 - 320: 17(int) Bitcast 319 - 321: 231(ivec3) Load 233(uv) - 322: 231(ivec3) CompositeConstruct 320 320 320 - 323: 231(ivec3) BitwiseOr 321 322 - Store 233(uv) 323 - 324: 14(int8_t) Load 206(i8) - 325: 27(int) SConvert 324 - 326: 27(int) Load 226(i) - 327: 27(int) BitwiseOr 325 326 - Store 226(i) 327 - 328: 14(int8_t) Load 206(i8) - 329: 57(int16_t) SConvert 328 - 330: 57(int16_t) Load 249(i16) - 331: 57(int16_t) BitwiseAnd 330 329 - Store 249(i16) 331 - 332: 199(i8vec3) Load 201(u8v) - 333: 231(ivec3) UConvert 332 - 334: 231(ivec3) Load 233(uv) - 335: 231(ivec3) BitwiseAnd 333 334 - Store 233(uv) 335 - 336: 14(int8_t) Load 206(i8) - 337: 27(int) SConvert 336 - 338: 17(int) Bitcast 337 - 339: 231(ivec3) Load 233(uv) - 340: 231(ivec3) CompositeConstruct 338 338 338 - 341: 231(ivec3) BitwiseXor 339 340 - Store 233(uv) 341 - 342: 199(i8vec3) Load 201(u8v) - 343: 14(int8_t) Load 206(i8) - 344: 36(int8_t) Bitcast 343 - 345: 199(i8vec3) CompositeConstruct 344 344 344 - 346: 199(i8vec3) BitwiseXor 342 345 - Store 201(u8v) 346 - 349: 14(int8_t) Load 206(i8) - 350: 347(ptr) AccessChain 193(arr) 349 - 351: 108(float) Load 350 - Store 348(f) 351 - Return - FunctionEnd -12(builtinFuncs(): 2 Function None 3 - 13: Label - 352(i8v): 53(ptr) Variable Function - 355(i8): 15(ptr) Variable Function - 365(u8v): 200(ptr) Variable Function - 367(u8): 37(ptr) Variable Function - 437(i16): 248(ptr) Variable Function - 440(i32): 225(ptr) Variable Function - 443(i8v4): 442(ptr) Variable Function - 447(u16): 446(ptr) Variable Function - 448(u8v2): 50(ptr) Variable Function - 451(u32): 300(ptr) Variable Function - 454(u8v4): 453(ptr) Variable Function - 466(bv): 465(ptr) Variable Function - 353: 52(i8vec2) Load 352(i8v) - 354: 52(i8vec2) ExtInst 1(GLSL.std.450) 5(SAbs) 353 - Store 352(i8v) 354 - 356: 14(int8_t) Load 355(i8) - 357: 14(int8_t) ExtInst 1(GLSL.std.450) 7(SSign) 356 - Store 355(i8) 357 - 358: 52(i8vec2) Load 352(i8v) - 359: 14(int8_t) Load 355(i8) - 360: 52(i8vec2) CompositeConstruct 359 359 - 361: 52(i8vec2) ExtInst 1(GLSL.std.450) 39(SMin) 358 360 - Store 352(i8v) 361 - 362: 52(i8vec2) Load 352(i8v) - 364: 52(i8vec2) ExtInst 1(GLSL.std.450) 39(SMin) 362 363 - Store 352(i8v) 364 - 366: 199(i8vec3) Load 365(u8v) - 368: 36(int8_t) Load 367(u8) - 369: 199(i8vec3) CompositeConstruct 368 368 368 - 370: 199(i8vec3) ExtInst 1(GLSL.std.450) 38(UMin) 366 369 - Store 365(u8v) 370 - 371: 199(i8vec3) Load 365(u8v) - 373: 199(i8vec3) ExtInst 1(GLSL.std.450) 38(UMin) 371 372 - Store 365(u8v) 373 - 374: 52(i8vec2) Load 352(i8v) - 375: 14(int8_t) Load 355(i8) - 376: 52(i8vec2) CompositeConstruct 375 375 - 377: 52(i8vec2) ExtInst 1(GLSL.std.450) 42(SMax) 374 376 - Store 352(i8v) 377 - 378: 52(i8vec2) Load 352(i8v) - 379: 52(i8vec2) ExtInst 1(GLSL.std.450) 42(SMax) 378 363 - Store 352(i8v) 379 - 380: 199(i8vec3) Load 365(u8v) - 381: 36(int8_t) Load 367(u8) - 382: 199(i8vec3) CompositeConstruct 381 381 381 - 383: 199(i8vec3) ExtInst 1(GLSL.std.450) 41(UMax) 380 382 - Store 365(u8v) 383 - 384: 199(i8vec3) Load 365(u8v) - 385: 199(i8vec3) ExtInst 1(GLSL.std.450) 41(UMax) 384 372 - Store 365(u8v) 385 - 386: 52(i8vec2) Load 352(i8v) - 387: 14(int8_t) Load 355(i8) - 388: 14(int8_t) SNegate 387 - 389: 14(int8_t) Load 355(i8) - 390: 52(i8vec2) CompositeConstruct 388 388 - 391: 52(i8vec2) CompositeConstruct 389 389 - 392: 52(i8vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 386 390 391 - Store 352(i8v) 392 - 393: 52(i8vec2) Load 352(i8v) - 394: 52(i8vec2) Load 352(i8v) - 395: 52(i8vec2) SNegate 394 - 396: 52(i8vec2) Load 352(i8v) - 397: 52(i8vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 393 395 396 - Store 352(i8v) 397 - 398: 199(i8vec3) Load 365(u8v) - 399: 36(int8_t) Load 367(u8) - 400: 36(int8_t) SNegate 399 - 401: 36(int8_t) Load 367(u8) - 402: 199(i8vec3) CompositeConstruct 400 400 400 - 403: 199(i8vec3) CompositeConstruct 401 401 401 - 404: 199(i8vec3) ExtInst 1(GLSL.std.450) 44(UClamp) 398 402 403 - Store 365(u8v) 404 - 405: 199(i8vec3) Load 365(u8v) - 406: 199(i8vec3) Load 365(u8v) - 407: 199(i8vec3) SNegate 406 - 408: 199(i8vec3) Load 365(u8v) - 409: 199(i8vec3) ExtInst 1(GLSL.std.450) 44(UClamp) 405 407 408 - Store 365(u8v) 409 - 410: 15(ptr) AccessChain 352(i8v) 286 - 411: 14(int8_t) Load 410 - 412: 15(ptr) AccessChain 352(i8v) 270 - 413: 14(int8_t) Load 412 - 415: 14(int8_t) Select 414 413 411 - Store 355(i8) 415 - 416: 14(int8_t) Load 355(i8) - 417: 52(i8vec2) CompositeConstruct 416 416 - 418: 14(int8_t) Load 355(i8) - 419: 14(int8_t) SNegate 418 - 420: 52(i8vec2) CompositeConstruct 419 419 - 423: 52(i8vec2) Select 422 420 417 - Store 352(i8v) 423 - 424: 37(ptr) AccessChain 365(u8v) 286 - 425: 36(int8_t) Load 424 - 426: 37(ptr) AccessChain 365(u8v) 270 - 427: 36(int8_t) Load 426 - 428: 36(int8_t) Select 414 427 425 - Store 367(u8) 428 - 429: 36(int8_t) Load 367(u8) - 430: 199(i8vec3) CompositeConstruct 429 429 429 - 431: 36(int8_t) Load 367(u8) - 432: 36(int8_t) SNegate 431 - 433: 199(i8vec3) CompositeConstruct 432 432 432 - 436: 199(i8vec3) Select 435 433 430 - Store 365(u8v) 436 - 438: 52(i8vec2) Load 352(i8v) - 439: 57(int16_t) Bitcast 438 - Store 437(i16) 439 - 444: 441(i8vec4) Load 443(i8v4) - 445: 27(int) Bitcast 444 - Store 440(i32) 445 - 449: 49(i8vec2) Load 448(u8v2) - 450: 64(int16_t) Bitcast 449 - Store 447(u16) 450 - 455: 452(i8vec4) Load 454(u8v4) - 456: 17(int) Bitcast 455 - Store 451(u32) 456 - 457: 57(int16_t) Load 437(i16) - 458: 52(i8vec2) Bitcast 457 - Store 352(i8v) 458 - 459: 27(int) Load 440(i32) - 460: 441(i8vec4) Bitcast 459 - Store 443(i8v4) 460 - 461: 64(int16_t) Load 447(u16) - 462: 49(i8vec2) Bitcast 461 - Store 448(u8v2) 462 - 463: 17(int) Load 451(u32) - 464: 452(i8vec4) Bitcast 463 - Store 454(u8v4) 464 - 467: 199(i8vec3) Load 365(u8v) - 468: 36(int8_t) Load 367(u8) - 469: 199(i8vec3) CompositeConstruct 468 468 468 - 470: 434(bvec3) ULessThan 467 469 - Store 466(bv) 470 - 471: 52(i8vec2) Load 352(i8v) - 472: 14(int8_t) Load 355(i8) - 473: 52(i8vec2) CompositeConstruct 472 472 - 474: 172(bvec2) SLessThan 471 473 - 475: 284(ptr) AccessChain 466(bv) 286 - 476: 171(bool) CompositeExtract 474 0 - Store 475 476 - 477: 284(ptr) AccessChain 466(bv) 270 - 478: 171(bool) CompositeExtract 474 1 - Store 477 478 - 479: 199(i8vec3) Load 365(u8v) - 480: 36(int8_t) Load 367(u8) - 481: 199(i8vec3) CompositeConstruct 480 480 480 - 482: 434(bvec3) ULessThanEqual 479 481 - Store 466(bv) 482 - 483: 52(i8vec2) Load 352(i8v) - 484: 14(int8_t) Load 355(i8) - 485: 52(i8vec2) CompositeConstruct 484 484 - 486: 172(bvec2) SLessThanEqual 483 485 - 487: 284(ptr) AccessChain 466(bv) 286 - 488: 171(bool) CompositeExtract 486 0 - Store 487 488 - 489: 284(ptr) AccessChain 466(bv) 270 - 490: 171(bool) CompositeExtract 486 1 - Store 489 490 - 491: 199(i8vec3) Load 365(u8v) - 492: 36(int8_t) Load 367(u8) - 493: 199(i8vec3) CompositeConstruct 492 492 492 - 494: 434(bvec3) UGreaterThan 491 493 - Store 466(bv) 494 - 495: 52(i8vec2) Load 352(i8v) - 496: 14(int8_t) Load 355(i8) - 497: 52(i8vec2) CompositeConstruct 496 496 - 498: 172(bvec2) SGreaterThan 495 497 - 499: 284(ptr) AccessChain 466(bv) 286 - 500: 171(bool) CompositeExtract 498 0 - Store 499 500 - 501: 284(ptr) AccessChain 466(bv) 270 - 502: 171(bool) CompositeExtract 498 1 - Store 501 502 - 503: 199(i8vec3) Load 365(u8v) - 504: 36(int8_t) Load 367(u8) - 505: 199(i8vec3) CompositeConstruct 504 504 504 - 506: 434(bvec3) UGreaterThanEqual 503 505 - Store 466(bv) 506 - 507: 52(i8vec2) Load 352(i8v) - 508: 14(int8_t) Load 355(i8) - 509: 52(i8vec2) CompositeConstruct 508 508 - 510: 172(bvec2) SGreaterThanEqual 507 509 - 511: 284(ptr) AccessChain 466(bv) 286 - 512: 171(bool) CompositeExtract 510 0 - Store 511 512 - 513: 284(ptr) AccessChain 466(bv) 270 - 514: 171(bool) CompositeExtract 510 1 - Store 513 514 - 515: 199(i8vec3) Load 365(u8v) - 516: 36(int8_t) Load 367(u8) - 517: 199(i8vec3) CompositeConstruct 516 516 516 - 518: 434(bvec3) IEqual 515 517 - Store 466(bv) 518 - 519: 52(i8vec2) Load 352(i8v) - 520: 14(int8_t) Load 355(i8) - 521: 52(i8vec2) CompositeConstruct 520 520 - 522: 172(bvec2) IEqual 519 521 - 523: 284(ptr) AccessChain 466(bv) 286 - 524: 171(bool) CompositeExtract 522 0 - Store 523 524 - 525: 284(ptr) AccessChain 466(bv) 270 - 526: 171(bool) CompositeExtract 522 1 - Store 525 526 - 527: 199(i8vec3) Load 365(u8v) - 528: 36(int8_t) Load 367(u8) - 529: 199(i8vec3) CompositeConstruct 528 528 528 - 530: 434(bvec3) INotEqual 527 529 - Store 466(bv) 530 - 531: 52(i8vec2) Load 352(i8v) - 532: 14(int8_t) Load 355(i8) - 533: 52(i8vec2) CompositeConstruct 532 532 - 534: 172(bvec2) INotEqual 531 533 - 535: 284(ptr) AccessChain 466(bv) 286 - 536: 171(bool) CompositeExtract 534 0 - Store 535 536 - 537: 284(ptr) AccessChain 466(bv) 270 - 538: 171(bool) CompositeExtract 534 1 - Store 537 538 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.intOps.vert.out b/deps/glslang/Test/baseResults/spv.intOps.vert.out deleted file mode 100644 index b57eac2b..00000000 --- a/deps/glslang/Test/baseResults/spv.intOps.vert.out +++ /dev/null @@ -1,412 +0,0 @@ -spv.intOps.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 302 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 9 15 21 26 53 72 88 105 137 156 160 172 189 202 281 - Source ESSL 310 - Name 4 "main" - Name 9 "iout" - Name 15 "uout" - Name 21 "fout" - Name 26 "u2" - Name 30 "u2out" - Name 31 "ResType" - Name 53 "u1" - Name 57 "u1out" - Name 58 "ResType" - Name 72 "u4" - Name 76 "u4outHi" - Name 77 "u4outLow" - Name 78 "ResType" - Name 88 "i4" - Name 92 "i4outHi" - Name 93 "i4outLow" - Name 94 "ResType" - Name 105 "v3" - Name 109 "i3out" - Name 110 "ResType" - Name 137 "v1" - Name 140 "i1out" - Name 141 "ResType" - Name 156 "v2" - Name 160 "i2" - Name 172 "i1" - Name 189 "u3" - Name 202 "i3" - Name 281 "v4" - Decorate 9(iout) Location 1 - Decorate 15(uout) Location 0 - Decorate 21(fout) Location 2 - Decorate 26(u2) Location 1 - Decorate 53(u1) Location 0 - Decorate 72(u4) Location 3 - Decorate 88(i4) Location 11 - Decorate 105(v3) Location 6 - Decorate 137(v1) Location 4 - Decorate 156(v2) Location 5 - Decorate 160(i2) Location 9 - Decorate 172(i1) Location 8 - Decorate 189(u3) Location 2 - Decorate 202(i3) Location 10 - Decorate 281(v4) Location 7 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypeVector 6(int) 4 - 8: TypePointer Output 7(ivec4) - 9(iout): 8(ptr) Variable Output - 10: 6(int) Constant 0 - 11: 7(ivec4) ConstantComposite 10 10 10 10 - 12: TypeInt 32 0 - 13: TypeVector 12(int) 4 - 14: TypePointer Output 13(ivec4) - 15(uout): 14(ptr) Variable Output - 16: 12(int) Constant 0 - 17: 13(ivec4) ConstantComposite 16 16 16 16 - 18: TypeFloat 32 - 19: TypeVector 18(float) 4 - 20: TypePointer Output 19(fvec4) - 21(fout): 20(ptr) Variable Output - 22: 18(float) Constant 0 - 23: 19(fvec4) ConstantComposite 22 22 22 22 - 24: TypeVector 12(int) 2 - 25: TypePointer Input 24(ivec2) - 26(u2): 25(ptr) Variable Input - 29: TypePointer Function 24(ivec2) - 31(ResType): TypeStruct 24(ivec2) 24(ivec2) - 38: TypePointer Output 12(int) - 41: 12(int) Constant 1 - 52: TypePointer Input 12(int) - 53(u1): 52(ptr) Variable Input - 56: TypePointer Function 12(int) - 58(ResType): TypeStruct 12(int) 12(int) - 71: TypePointer Input 13(ivec4) - 72(u4): 71(ptr) Variable Input - 75: TypePointer Function 13(ivec4) - 78(ResType): TypeStruct 13(ivec4) 13(ivec4) - 87: TypePointer Input 7(ivec4) - 88(i4): 87(ptr) Variable Input - 91: TypePointer Function 7(ivec4) - 94(ResType): TypeStruct 7(ivec4) 7(ivec4) - 103: TypeVector 18(float) 3 - 104: TypePointer Input 103(fvec3) - 105(v3): 104(ptr) Variable Input - 107: TypeVector 6(int) 3 - 108: TypePointer Function 107(ivec3) - 110(ResType): TypeStruct 103(fvec3) 107(ivec3) - 117: TypePointer Output 18(float) - 122: 12(int) Constant 2 - 129: TypePointer Output 6(int) - 136: TypePointer Input 18(float) - 137(v1): 136(ptr) Variable Input - 139: TypePointer Function 6(int) - 141(ResType): TypeStruct 18(float) 6(int) - 154: TypeVector 18(float) 2 - 155: TypePointer Input 154(fvec2) - 156(v2): 155(ptr) Variable Input - 158: TypeVector 6(int) 2 - 159: TypePointer Input 158(ivec2) - 160(i2): 159(ptr) Variable Input - 171: TypePointer Input 6(int) - 172(i1): 171(ptr) Variable Input - 180: 6(int) Constant 4 - 181: 6(int) Constant 5 - 187: TypeVector 12(int) 3 - 188: TypePointer Input 187(ivec3) - 189(u3): 188(ptr) Variable Input - 201: TypePointer Input 107(ivec3) - 202(i3): 201(ptr) Variable Input - 280: TypePointer Input 19(fvec4) - 281(v4): 280(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 30(u2out): 29(ptr) Variable Function - 57(u1out): 56(ptr) Variable Function - 76(u4outHi): 75(ptr) Variable Function - 77(u4outLow): 75(ptr) Variable Function - 92(i4outHi): 91(ptr) Variable Function - 93(i4outLow): 91(ptr) Variable Function - 109(i3out): 108(ptr) Variable Function - 140(i1out): 139(ptr) Variable Function - Store 9(iout) 11 - Store 15(uout) 17 - Store 21(fout) 23 - 27: 24(ivec2) Load 26(u2) - 28: 24(ivec2) Load 26(u2) - 32: 31(ResType) IAddCarry 27 28 - 33: 24(ivec2) CompositeExtract 32 1 - Store 30(u2out) 33 - 34: 24(ivec2) CompositeExtract 32 0 - 35: 13(ivec4) Load 15(uout) - 36: 24(ivec2) VectorShuffle 35 35 0 1 - 37: 24(ivec2) IAdd 36 34 - 39: 38(ptr) AccessChain 15(uout) 16 - 40: 12(int) CompositeExtract 37 0 - Store 39 40 - 42: 38(ptr) AccessChain 15(uout) 41 - 43: 12(int) CompositeExtract 37 1 - Store 42 43 - 44: 24(ivec2) Load 30(u2out) - 45: 13(ivec4) Load 15(uout) - 46: 24(ivec2) VectorShuffle 45 45 0 1 - 47: 24(ivec2) IAdd 46 44 - 48: 38(ptr) AccessChain 15(uout) 16 - 49: 12(int) CompositeExtract 47 0 - Store 48 49 - 50: 38(ptr) AccessChain 15(uout) 41 - 51: 12(int) CompositeExtract 47 1 - Store 50 51 - 54: 12(int) Load 53(u1) - 55: 12(int) Load 53(u1) - 59: 58(ResType) ISubBorrow 54 55 - 60: 12(int) CompositeExtract 59 1 - Store 57(u1out) 60 - 61: 12(int) CompositeExtract 59 0 - 62: 38(ptr) AccessChain 15(uout) 16 - 63: 12(int) Load 62 - 64: 12(int) IAdd 63 61 - 65: 38(ptr) AccessChain 15(uout) 16 - Store 65 64 - 66: 12(int) Load 57(u1out) - 67: 38(ptr) AccessChain 15(uout) 16 - 68: 12(int) Load 67 - 69: 12(int) IAdd 68 66 - 70: 38(ptr) AccessChain 15(uout) 16 - Store 70 69 - 73: 13(ivec4) Load 72(u4) - 74: 13(ivec4) Load 72(u4) - 79: 78(ResType) UMulExtended 73 74 - 80: 13(ivec4) CompositeExtract 79 0 - Store 77(u4outLow) 80 - 81: 13(ivec4) CompositeExtract 79 1 - Store 76(u4outHi) 81 - 82: 13(ivec4) Load 76(u4outHi) - 83: 13(ivec4) Load 77(u4outLow) - 84: 13(ivec4) IAdd 82 83 - 85: 13(ivec4) Load 15(uout) - 86: 13(ivec4) IAdd 85 84 - Store 15(uout) 86 - 89: 7(ivec4) Load 88(i4) - 90: 7(ivec4) Load 88(i4) - 95: 94(ResType) SMulExtended 89 90 - 96: 7(ivec4) CompositeExtract 95 0 - Store 93(i4outLow) 96 - 97: 7(ivec4) CompositeExtract 95 1 - Store 92(i4outHi) 97 - 98: 7(ivec4) Load 93(i4outLow) - 99: 7(ivec4) Load 92(i4outHi) - 100: 7(ivec4) IAdd 98 99 - 101: 7(ivec4) Load 9(iout) - 102: 7(ivec4) IAdd 101 100 - Store 9(iout) 102 - 106: 103(fvec3) Load 105(v3) - 111:110(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 106 - 112: 107(ivec3) CompositeExtract 111 1 - Store 109(i3out) 112 - 113: 103(fvec3) CompositeExtract 111 0 - 114: 19(fvec4) Load 21(fout) - 115: 103(fvec3) VectorShuffle 114 114 0 1 2 - 116: 103(fvec3) FAdd 115 113 - 118: 117(ptr) AccessChain 21(fout) 16 - 119: 18(float) CompositeExtract 116 0 - Store 118 119 - 120: 117(ptr) AccessChain 21(fout) 41 - 121: 18(float) CompositeExtract 116 1 - Store 120 121 - 123: 117(ptr) AccessChain 21(fout) 122 - 124: 18(float) CompositeExtract 116 2 - Store 123 124 - 125: 107(ivec3) Load 109(i3out) - 126: 7(ivec4) Load 9(iout) - 127: 107(ivec3) VectorShuffle 126 126 0 1 2 - 128: 107(ivec3) IAdd 127 125 - 130: 129(ptr) AccessChain 9(iout) 16 - 131: 6(int) CompositeExtract 128 0 - Store 130 131 - 132: 129(ptr) AccessChain 9(iout) 41 - 133: 6(int) CompositeExtract 128 1 - Store 132 133 - 134: 129(ptr) AccessChain 9(iout) 122 - 135: 6(int) CompositeExtract 128 2 - Store 134 135 - 138: 18(float) Load 137(v1) - 142:141(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 138 - 143: 6(int) CompositeExtract 142 1 - Store 140(i1out) 143 - 144: 18(float) CompositeExtract 142 0 - 145: 117(ptr) AccessChain 21(fout) 16 - 146: 18(float) Load 145 - 147: 18(float) FAdd 146 144 - 148: 117(ptr) AccessChain 21(fout) 16 - Store 148 147 - 149: 6(int) Load 140(i1out) - 150: 129(ptr) AccessChain 9(iout) 16 - 151: 6(int) Load 150 - 152: 6(int) IAdd 151 149 - 153: 129(ptr) AccessChain 9(iout) 16 - Store 153 152 - 157: 154(fvec2) Load 156(v2) - 161: 158(ivec2) Load 160(i2) - 162: 154(fvec2) ExtInst 1(GLSL.std.450) 53(Ldexp) 157 161 - 163: 19(fvec4) Load 21(fout) - 164: 154(fvec2) VectorShuffle 163 163 0 1 - 165: 154(fvec2) FAdd 164 162 - 166: 117(ptr) AccessChain 21(fout) 16 - 167: 18(float) CompositeExtract 165 0 - Store 166 167 - 168: 117(ptr) AccessChain 21(fout) 41 - 169: 18(float) CompositeExtract 165 1 - Store 168 169 - 170: 18(float) Load 137(v1) - 173: 6(int) Load 172(i1) - 174: 18(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 170 173 - 175: 117(ptr) AccessChain 21(fout) 16 - 176: 18(float) Load 175 - 177: 18(float) FAdd 176 174 - 178: 117(ptr) AccessChain 21(fout) 16 - Store 178 177 - 179: 6(int) Load 172(i1) - 182: 6(int) BitFieldSExtract 179 180 181 - 183: 129(ptr) AccessChain 9(iout) 16 - 184: 6(int) Load 183 - 185: 6(int) IAdd 184 182 - 186: 129(ptr) AccessChain 9(iout) 16 - Store 186 185 - 190: 187(ivec3) Load 189(u3) - 191: 187(ivec3) BitFieldUExtract 190 180 181 - 192: 13(ivec4) Load 15(uout) - 193: 187(ivec3) VectorShuffle 192 192 0 1 2 - 194: 187(ivec3) IAdd 193 191 - 195: 38(ptr) AccessChain 15(uout) 16 - 196: 12(int) CompositeExtract 194 0 - Store 195 196 - 197: 38(ptr) AccessChain 15(uout) 41 - 198: 12(int) CompositeExtract 194 1 - Store 197 198 - 199: 38(ptr) AccessChain 15(uout) 122 - 200: 12(int) CompositeExtract 194 2 - Store 199 200 - 203: 107(ivec3) Load 202(i3) - 204: 107(ivec3) Load 202(i3) - 205: 107(ivec3) BitFieldInsert 203 204 180 181 - 206: 7(ivec4) Load 9(iout) - 207: 107(ivec3) VectorShuffle 206 206 0 1 2 - 208: 107(ivec3) IAdd 207 205 - 209: 129(ptr) AccessChain 9(iout) 16 - 210: 6(int) CompositeExtract 208 0 - Store 209 210 - 211: 129(ptr) AccessChain 9(iout) 41 - 212: 6(int) CompositeExtract 208 1 - Store 211 212 - 213: 129(ptr) AccessChain 9(iout) 122 - 214: 6(int) CompositeExtract 208 2 - Store 213 214 - 215: 12(int) Load 53(u1) - 216: 12(int) Load 53(u1) - 217: 12(int) BitFieldInsert 215 216 180 181 - 218: 38(ptr) AccessChain 15(uout) 16 - 219: 12(int) Load 218 - 220: 12(int) IAdd 219 217 - 221: 38(ptr) AccessChain 15(uout) 16 - Store 221 220 - 222: 158(ivec2) Load 160(i2) - 223: 158(ivec2) BitReverse 222 - 224: 7(ivec4) Load 9(iout) - 225: 158(ivec2) VectorShuffle 224 224 0 1 - 226: 158(ivec2) IAdd 225 223 - 227: 129(ptr) AccessChain 9(iout) 16 - 228: 6(int) CompositeExtract 226 0 - Store 227 228 - 229: 129(ptr) AccessChain 9(iout) 41 - 230: 6(int) CompositeExtract 226 1 - Store 229 230 - 231: 13(ivec4) Load 72(u4) - 232: 13(ivec4) BitReverse 231 - 233: 13(ivec4) Load 15(uout) - 234: 13(ivec4) IAdd 233 232 - Store 15(uout) 234 - 235: 6(int) Load 172(i1) - 236: 6(int) BitCount 235 - 237: 129(ptr) AccessChain 9(iout) 16 - 238: 6(int) Load 237 - 239: 6(int) IAdd 238 236 - 240: 129(ptr) AccessChain 9(iout) 16 - Store 240 239 - 241: 187(ivec3) Load 189(u3) - 242: 107(ivec3) BitCount 241 - 243: 7(ivec4) Load 9(iout) - 244: 107(ivec3) VectorShuffle 243 243 0 1 2 - 245: 107(ivec3) IAdd 244 242 - 246: 129(ptr) AccessChain 9(iout) 16 - 247: 6(int) CompositeExtract 245 0 - Store 246 247 - 248: 129(ptr) AccessChain 9(iout) 41 - 249: 6(int) CompositeExtract 245 1 - Store 248 249 - 250: 129(ptr) AccessChain 9(iout) 122 - 251: 6(int) CompositeExtract 245 2 - Store 250 251 - 252: 158(ivec2) Load 160(i2) - 253: 158(ivec2) ExtInst 1(GLSL.std.450) 73(FindILsb) 252 - 254: 7(ivec4) Load 9(iout) - 255: 158(ivec2) VectorShuffle 254 254 0 1 - 256: 158(ivec2) IAdd 255 253 - 257: 129(ptr) AccessChain 9(iout) 16 - 258: 6(int) CompositeExtract 256 0 - Store 257 258 - 259: 129(ptr) AccessChain 9(iout) 41 - 260: 6(int) CompositeExtract 256 1 - Store 259 260 - 261: 13(ivec4) Load 72(u4) - 262: 7(ivec4) ExtInst 1(GLSL.std.450) 73(FindILsb) 261 - 263: 7(ivec4) Load 9(iout) - 264: 7(ivec4) IAdd 263 262 - Store 9(iout) 264 - 265: 6(int) Load 172(i1) - 266: 6(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 265 - 267: 129(ptr) AccessChain 9(iout) 16 - 268: 6(int) Load 267 - 269: 6(int) IAdd 268 266 - 270: 129(ptr) AccessChain 9(iout) 16 - Store 270 269 - 271: 24(ivec2) Load 26(u2) - 272: 158(ivec2) ExtInst 1(GLSL.std.450) 75(FindUMsb) 271 - 273: 7(ivec4) Load 9(iout) - 274: 158(ivec2) VectorShuffle 273 273 0 1 - 275: 158(ivec2) IAdd 274 272 - 276: 129(ptr) AccessChain 9(iout) 16 - 277: 6(int) CompositeExtract 275 0 - Store 276 277 - 278: 129(ptr) AccessChain 9(iout) 41 - 279: 6(int) CompositeExtract 275 1 - Store 278 279 - 282: 19(fvec4) Load 281(v4) - 283: 12(int) ExtInst 1(GLSL.std.450) 55(PackUnorm4x8) 282 - 284: 38(ptr) AccessChain 15(uout) 16 - 285: 12(int) Load 284 - 286: 12(int) IAdd 285 283 - 287: 38(ptr) AccessChain 15(uout) 16 - Store 287 286 - 288: 19(fvec4) Load 281(v4) - 289: 12(int) ExtInst 1(GLSL.std.450) 54(PackSnorm4x8) 288 - 290: 38(ptr) AccessChain 15(uout) 16 - 291: 12(int) Load 290 - 292: 12(int) IAdd 291 289 - 293: 38(ptr) AccessChain 15(uout) 16 - Store 293 292 - 294: 12(int) Load 53(u1) - 295: 19(fvec4) ExtInst 1(GLSL.std.450) 64(UnpackUnorm4x8) 294 - 296: 19(fvec4) Load 21(fout) - 297: 19(fvec4) FAdd 296 295 - Store 21(fout) 297 - 298: 12(int) Load 53(u1) - 299: 19(fvec4) ExtInst 1(GLSL.std.450) 63(UnpackSnorm4x8) 298 - 300: 19(fvec4) Load 21(fout) - 301: 19(fvec4) FAdd 300 299 - Store 21(fout) 301 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.intcoopmat.comp.out b/deps/glslang/Test/baseResults/spv.intcoopmat.comp.out deleted file mode 100644 index 6a697432..00000000 --- a/deps/glslang/Test/baseResults/spv.intcoopmat.comp.out +++ /dev/null @@ -1,418 +0,0 @@ -spv.intcoopmat.comp -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 262 - - Capability Shader - Capability Float16 - Capability Int8 - Capability StorageBuffer8BitAccess - Capability VulkanMemoryModelKHR - Capability PhysicalStorageBufferAddressesEXT - Capability CooperativeMatrixNV - Extension "SPV_KHR_8bit_storage" - Extension "SPV_KHR_physical_storage_buffer" - Extension "SPV_KHR_storage_buffer_storage_class" - Extension "SPV_KHR_vulkan_memory_model" - Extension "SPV_NV_cooperative_matrix" - 1: ExtInstImport "GLSL.std.450" - MemoryModel PhysicalStorageBuffer64EXT VulkanKHR - EntryPoint GLCompute 4 "main" - ExecutionMode 4 LocalSize 64 1 1 - Source GLSL 450 - SourceExtension "GL_EXT_buffer_reference" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types" - SourceExtension "GL_KHR_memory_scope_semantics" - SourceExtension "GL_NV_cooperative_matrix" - SourceExtension "GL_NV_integer_cooperative_matrix" - Name 4 "main" - Name 14 "ineg(i81;" - Name 13 "m" - Name 21 "umul(u81;" - Name 20 "m" - Name 35 "mu" - Name 39 "mi" - Name 55 "mf16_0" - Name 61 "mf32_0" - Name 64 "mf16_1" - Name 67 "mf32_1" - Name 71 "x" - Name 81 "tempArg" - Name 85 "Block" - MemberName 85(Block) 0 "y" - MemberName 85(Block) 1 "x" - Name 87 "block" - Name 98 "tempArg" - Name 103 "Block16" - MemberName 103(Block16) 0 "y" - MemberName 103(Block16) 1 "x" - MemberName 103(Block16) 2 "b" - Name 106 "Block" - MemberName 106(Block) 0 "y" - MemberName 106(Block) 1 "x" - Name 108 "block8" - Name 115 "tempArg" - Name 128 "D" - Name 129 "A" - Name 131 "B" - Name 133 "C" - Name 137 "l" - Name 142 "a" - Name 146 "md1" - Name 156 "Y" - Name 157 "Z" - Name 161 "muC2" - Name 169 "miC2" - Name 176 "tempArg" - Name 182 "tempArg" - Name 188 "p1" - Name 189 "param" - Name 192 "p2" - Name 193 "param" - Name 207 "tempArg" - Name 212 "shmatrix" - Name 217 "ms" - Name 225 "miC" - Name 226 "muC" - Name 231 "iarr" - Name 236 "iarr2" - Name 241 "uarr" - Name 246 "uarr2" - Name 251 "S" - MemberName 251(S) 0 "a" - MemberName 251(S) 1 "b" - MemberName 251(S) 2 "c" - Name 256 "SC" - Name 261 "scm" - Decorate 83 ArrayStride 4 - Decorate 84 ArrayStride 4 - MemberDecorate 85(Block) 0 Offset 0 - MemberDecorate 85(Block) 1 Offset 4194304 - Decorate 85(Block) Block - Decorate 87(block) DescriptorSet 0 - Decorate 87(block) Binding 0 - Decorate 99 ArrayStride 1 - Decorate 101 ArrayStride 1 - MemberDecorate 103(Block16) 0 Offset 0 - MemberDecorate 103(Block16) 1 Offset 1048576 - MemberDecorate 103(Block16) 2 Offset 1048584 - Decorate 103(Block16) Block - Decorate 104 ArrayStride 4 - Decorate 105 ArrayStride 4 - MemberDecorate 106(Block) 0 Offset 0 - MemberDecorate 106(Block) 1 Offset 4194304 - Decorate 106(Block) Block - Decorate 108(block8) DescriptorSet 0 - Decorate 108(block8) Binding 0 - Decorate 156(Y) SpecId 0 - Decorate 223 BuiltIn WorkgroupSize - Decorate 256(SC) SpecId 2 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 8 1 - 7: TypeInt 32 0 - 8: 7(int) Constant 3 - 9: 7(int) Constant 8 - 10: TypeCooperativeMatrixNV 6(int8_t) 8 9 9 - 11: TypePointer Function 10 - 12: TypeFunction 10 11(ptr) - 16: TypeInt 8 0 - 17: TypeCooperativeMatrixNV 16(int8_t) 8 9 9 - 18: TypePointer Function 17 - 19: TypeFunction 17 18(ptr) - 28: 16(int8_t) Constant 2 - 32: 7(int) Constant 16 - 33: TypeCooperativeMatrixNV 16(int8_t) 8 32 9 - 34: TypePointer Function 33 - 36: 33 ConstantComposite 28 - 37: TypeCooperativeMatrixNV 6(int8_t) 8 32 9 - 38: TypePointer Function 37 - 40: 6(int8_t) Constant 2 - 41: 37 ConstantComposite 40 - 52: TypeFloat 16 - 53: TypeCooperativeMatrixNV 52(float16_t) 8 32 9 - 54: TypePointer Function 53 - 58: TypeFloat 32 - 59: TypeCooperativeMatrixNV 58(float) 8 32 9 - 60: TypePointer Function 59 - 70: TypePointer Function 16(int8_t) - 72: TypeInt 32 1 - 73: 72(int) Constant 1 - 76: 72(int) Constant 0 - 79: TypePointer Function 6(int8_t) - 82: 7(int) Constant 1048576 - 83: TypeArray 7(int) 82 - 84: TypeRuntimeArray 7(int) - 85(Block): TypeStruct 83 84 - 86: TypePointer StorageBuffer 85(Block) - 87(block): 86(ptr) Variable StorageBuffer - 88: 7(int) Constant 5 - 89: TypePointer StorageBuffer 7(int) - 91: 7(int) Constant 128 - 92: TypeBool - 93: 92(bool) ConstantFalse - 99: TypeArray 6(int8_t) 82 - 100: 7(int) Constant 1 - 101: TypeArray 6(int8_t) 100 - TypeForwardPointer 102 PhysicalStorageBufferEXT - 103(Block16): TypeStruct 99 101 102 - 104: TypeArray 7(int) 82 - 105: TypeRuntimeArray 7(int) - 106(Block): TypeStruct 104 105 - 102: TypePointer PhysicalStorageBufferEXT 106(Block) - 107: TypePointer StorageBuffer 103(Block16) - 108(block8): 107(ptr) Variable StorageBuffer - 109: TypePointer StorageBuffer 6(int8_t) - 116: 72(int) Constant 2 - 117: TypePointer StorageBuffer 102(ptr) - 120: TypePointer PhysicalStorageBufferEXT 7(int) - 136: TypePointer Function 72(int) - 138: 7(int) SpecConstantOp 5362 33 - 139: 72(int) SpecConstantOp 128 138 76 - 140: TypeArray 37 88 - 141: TypePointer Function 140 - 143: 72(int) Constant 3 - 144: 6(int8_t) Constant 1 - 150: 72(int) Constant 1234 - 155: 72(int) Constant 8 - 156(Y): 72(int) SpecConstant 2 - 157(Z): 72(int) SpecConstantOp 132 155 156(Y) - 158: TypeCooperativeMatrixNV 16(int8_t) 8 157(Z) 9 - 159: TypeArray 158 8 - 160: TypePointer Private 159 - 161(muC2): 160(ptr) Variable Private - 162: TypePointer Private 158 - 166: TypeCooperativeMatrixNV 6(int8_t) 8 157(Z) 9 - 167: TypeArray 166 8 - 168: TypePointer Private 167 - 169(miC2): 168(ptr) Variable Private - 170: TypePointer Private 6(int8_t) - 174: TypePointer Private 16(int8_t) - 204: 16(int8_t) Constant 4 - 208: TypeVector 7(int) 4 - 209: 7(int) Constant 32 - 210: TypeArray 208(ivec4) 209 - 211: TypePointer Workgroup 210 - 212(shmatrix): 211(ptr) Variable Workgroup - 213: 7(int) Constant 2 - 214: TypePointer Workgroup 208(ivec4) - 221: TypeVector 7(int) 3 - 222: 7(int) Constant 64 - 223: 221(ivec3) ConstantComposite 222 100 100 - 224: TypePointer Private 166 - 225(miC): 224(ptr) Variable Private - 226(muC): 162(ptr) Variable Private - 227: 7(int) SpecConstantOp 5362 166 - 228: 72(int) SpecConstantOp 128 227 76 - 229: TypeArray 72(int) 228 - 230: TypePointer Private 229 - 231(iarr): 230(ptr) Variable Private - 232: 7(int) SpecConstantOp 5362 166 - 233: 72(int) SpecConstantOp 128 232 76 - 234: TypeArray 72(int) 233 - 235: TypePointer Private 234 - 236(iarr2): 235(ptr) Variable Private - 237: 7(int) SpecConstantOp 5362 158 - 238: 72(int) SpecConstantOp 128 237 76 - 239: TypeArray 72(int) 238 - 240: TypePointer Private 239 - 241(uarr): 240(ptr) Variable Private - 242: 7(int) SpecConstantOp 5362 158 - 243: 72(int) SpecConstantOp 128 242 76 - 244: TypeArray 72(int) 243 - 245: TypePointer Private 244 - 246(uarr2): 245(ptr) Variable Private - 247: TypeCooperativeMatrixNV 72(int) 8 157(Z) 9 - 248: 247 ConstantComposite 73 - 249: 16(int8_t) Constant 1 - 250: 17 ConstantComposite 249 - 251(S): TypeStruct 72(int) 72(int) 72(int) - 252: 72(int) Constant 12 - 253: 72(int) Constant 23 - 254: 72(int) Constant 34 - 255: 251(S) ConstantComposite 252 253 254 - 256(SC): 72(int) SpecConstant 1 - 257: TypeCooperativeMatrixNV 7(int) 8 256(SC) 256(SC) - 258: TypeArray 257 256(SC) - 259: TypeArray 258 256(SC) - 260: TypePointer Private 259 - 261(scm): 260(ptr) Variable Private - 4(main): 2 Function None 3 - 5: Label - 35(mu): 34(ptr) Variable Function - 39(mi): 38(ptr) Variable Function - 55(mf16_0): 54(ptr) Variable Function - 61(mf32_0): 60(ptr) Variable Function - 64(mf16_1): 54(ptr) Variable Function - 67(mf32_1): 60(ptr) Variable Function - 71(x): 70(ptr) Variable Function - 81(tempArg): 38(ptr) Variable Function - 98(tempArg): 34(ptr) Variable Function - 115(tempArg): 38(ptr) Variable Function - 128(D): 34(ptr) Variable Function - 129(A): 34(ptr) Variable Function - 131(B): 18(ptr) Variable Function - 133(C): 34(ptr) Variable Function - 137(l): 136(ptr) Variable Function - 142(a): 141(ptr) Variable Function - 146(md1): 136(ptr) Variable Function - 176(tempArg): 38(ptr) Variable Function - 182(tempArg): 34(ptr) Variable Function - 188(p1): 11(ptr) Variable Function - 189(param): 11(ptr) Variable Function - 192(p2): 18(ptr) Variable Function - 193(param): 18(ptr) Variable Function - 207(tempArg): 38(ptr) Variable Function - 217(ms): 38(ptr) Variable Function - Store 35(mu) 36 - Store 39(mi) 41 - 42: 33 Load 35(mu) - 43: 33 Load 35(mu) - 44: 33 IAdd 42 43 - Store 35(mu) 44 - 45: 33 Load 35(mu) - 46: 33 Load 35(mu) - 47: 33 ISub 45 46 - Store 35(mu) 47 - 48: 37 Load 39(mi) - 49: 37 SNegate 48 - Store 39(mi) 49 - 50: 37 Load 39(mi) - 51: 37 MatrixTimesScalar 50 40 - Store 39(mi) 51 - 56: 33 Load 35(mu) - 57: 53 ConvertUToF 56 - Store 55(mf16_0) 57 - 62: 33 Load 35(mu) - 63: 59 ConvertUToF 62 - Store 61(mf32_0) 63 - 65: 37 Load 39(mi) - 66: 53 ConvertSToF 65 - Store 64(mf16_1) 66 - 68: 37 Load 39(mi) - 69: 59 ConvertSToF 68 - Store 67(mf32_1) 69 - 74: 70(ptr) AccessChain 35(mu) 73 - 75: 16(int8_t) Load 74 - Store 71(x) 75 - 77: 16(int8_t) Load 71(x) - 78: 6(int8_t) Bitcast 77 - 80: 79(ptr) AccessChain 39(mi) 76 - Store 80 78 - 90: 89(ptr) AccessChain 87(block) 73 32 - 94: 37 CooperativeMatrixLoadNV 90 91 93 MakePointerVisibleKHR NonPrivatePointerKHR 88 - Store 81(tempArg) 94 - 95: 37 Load 81(tempArg) - Store 39(mi) 95 - 96: 37 Load 39(mi) - 97: 89(ptr) AccessChain 87(block) 73 32 - CooperativeMatrixStoreNV 97 96 91 93 MakePointerAvailableKHR NonPrivatePointerKHR 88 - 110: 109(ptr) AccessChain 108(block8) 73 32 - 111: 33 CooperativeMatrixLoadNV 110 91 93 MakePointerVisibleKHR NonPrivatePointerKHR 88 - Store 98(tempArg) 111 - 112: 33 Load 98(tempArg) - Store 35(mu) 112 - 113: 33 Load 35(mu) - 114: 109(ptr) AccessChain 108(block8) 73 32 - CooperativeMatrixStoreNV 114 113 91 93 MakePointerAvailableKHR NonPrivatePointerKHR 88 - 118: 117(ptr) AccessChain 108(block8) 116 - 119: 102(ptr) Load 118 MakePointerVisibleKHR NonPrivatePointerKHR 88 - 121: 120(ptr) AccessChain 119 73 32 - 122: 37 CooperativeMatrixLoadNV 121 91 93 Aligned MakePointerVisibleKHR NonPrivatePointerKHR 16 88 - Store 115(tempArg) 122 - 123: 37 Load 115(tempArg) - Store 39(mi) 123 - 124: 37 Load 39(mi) - 125: 117(ptr) AccessChain 108(block8) 116 - 126: 102(ptr) Load 125 MakePointerVisibleKHR NonPrivatePointerKHR 88 - 127: 120(ptr) AccessChain 126 73 32 - CooperativeMatrixStoreNV 127 124 91 93 Aligned MakePointerAvailableKHR NonPrivatePointerKHR 16 88 - 130: 33 Load 129(A) - 132: 17 Load 131(B) - 134: 33 Load 133(C) - 135: 33 CooperativeMatrixMulAddNV 130 132 134 - Store 128(D) 135 - Store 137(l) 139 - 145: 79(ptr) AccessChain 142(a) 143 76 - Store 145 144 - Store 146(md1) 73 - 147: 37 Load 39(mi) - 148: 37 Load 39(mi) - 149: 37 IAdd 148 147 - Store 39(mi) 149 - 151: 6(int8_t) CompositeExtract 149 1234 - 152: 72(int) SConvert 151 - 153: 72(int) Load 146(md1) - 154: 72(int) IAdd 153 152 - Store 146(md1) 154 - 163: 162(ptr) AccessChain 161(muC2) 73 - 164: 158 Load 163 - 165: 162(ptr) AccessChain 161(muC2) 76 - Store 165 164 - 171: 170(ptr) AccessChain 169(miC2) 116 76 - 172: 6(int8_t) Load 171 - 173: 16(int8_t) Bitcast 172 - 175: 174(ptr) AccessChain 161(muC2) 73 76 - Store 175 173 - 177: 89(ptr) AccessChain 87(block) 76 32 - 178: 37 CooperativeMatrixLoadNV 177 91 93 MakePointerVisibleKHR NonPrivatePointerKHR 88 - Store 176(tempArg) 178 - 179: 37 Load 176(tempArg) - Store 39(mi) 179 - 180: 37 Load 39(mi) - 181: 89(ptr) AccessChain 87(block) 76 32 - CooperativeMatrixStoreNV 181 180 91 93 MakePointerAvailableKHR NonPrivatePointerKHR 88 - 183: 109(ptr) AccessChain 108(block8) 76 32 - 184: 33 CooperativeMatrixLoadNV 183 91 93 MakePointerVisibleKHR NonPrivatePointerKHR 88 - Store 182(tempArg) 184 - 185: 33 Load 182(tempArg) - Store 35(mu) 185 - 186: 33 Load 35(mu) - 187: 109(ptr) AccessChain 108(block8) 76 32 - CooperativeMatrixStoreNV 187 186 91 93 MakePointerAvailableKHR NonPrivatePointerKHR 88 - 190: 10 Load 188(p1) - Store 189(param) 190 - 191: 10 FunctionCall 14(ineg(i81;) 189(param) - Store 188(p1) 191 - 194: 17 Load 192(p2) - Store 193(param) 194 - 195: 17 FunctionCall 21(umul(u81;) 193(param) - Store 192(p2) 195 - 196: 10 Load 188(p1) - 197: 10 Load 188(p1) - 198: 10 SDiv 197 196 - Store 188(p1) 198 - 199: 17 Load 192(p2) - 200: 17 Load 192(p2) - 201: 17 UDiv 200 199 - Store 192(p2) 201 - 202: 10 Load 188(p1) - 203: 10 MatrixTimesScalar 202 40 - Store 188(p1) 203 - 205: 17 Load 192(p2) - 206: 17 MatrixTimesScalar 205 204 - Store 192(p2) 206 - 215: 214(ptr) AccessChain 212(shmatrix) 100 - 216: 37 CooperativeMatrixLoadNV 215 213 93 MakePointerVisibleKHR NonPrivatePointerKHR 213 - Store 207(tempArg) 216 - 218: 37 Load 207(tempArg) - Store 217(ms) 218 - 219: 37 Load 217(ms) - 220: 214(ptr) AccessChain 212(shmatrix) 100 - CooperativeMatrixStoreNV 220 219 213 93 MakePointerAvailableKHR NonPrivatePointerKHR 213 - Return - FunctionEnd - 14(ineg(i81;): 10 Function None 12 - 13(m): 11(ptr) FunctionParameter - 15: Label - 23: 10 Load 13(m) - 24: 10 SNegate 23 - ReturnValue 24 - FunctionEnd - 21(umul(u81;): 17 Function None 19 - 20(m): 18(ptr) FunctionParameter - 22: Label - 27: 17 Load 20(m) - 29: 17 MatrixTimesScalar 27 28 - ReturnValue 29 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.interpOps.frag.out b/deps/glslang/Test/baseResults/spv.interpOps.frag.out deleted file mode 100644 index 808c1cdb..00000000 --- a/deps/glslang/Test/baseResults/spv.interpOps.frag.out +++ /dev/null @@ -1,173 +0,0 @@ -spv.interpOps.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 120 - - Capability Shader - Capability InterpolationFunction - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 13 24 36 49 55 86 118 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - Name 4 "main" - Name 9 "f4" - Name 13 "if1" - Name 24 "if2" - Name 36 "if3" - Name 49 "if4" - Name 55 "samp" - Name 86 "offset" - Name 118 "fragColor" - Decorate 13(if1) Location 0 - Decorate 24(if2) Location 1 - Decorate 36(if3) Location 2 - Decorate 49(if4) Location 3 - Decorate 55(samp) Flat - Decorate 55(samp) Location 4 - Decorate 86(offset) Flat - Decorate 86(offset) Location 5 - Decorate 118(fragColor) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: 6(float) Constant 0 - 11: 7(fvec4) ConstantComposite 10 10 10 10 - 12: TypePointer Input 6(float) - 13(if1): 12(ptr) Variable Input - 15: TypeInt 32 0 - 16: 15(int) Constant 0 - 17: TypePointer Function 6(float) - 22: TypeVector 6(float) 2 - 23: TypePointer Input 22(fvec2) - 24(if2): 23(ptr) Variable Input - 31: 15(int) Constant 1 - 34: TypeVector 6(float) 3 - 35: TypePointer Input 34(fvec3) - 36(if3): 35(ptr) Variable Input - 45: 15(int) Constant 2 - 48: TypePointer Input 7(fvec4) - 49(if4): 48(ptr) Variable Input - 53: TypeInt 32 1 - 54: TypePointer Input 53(int) - 55(samp): 54(ptr) Variable Input - 86(offset): 23(ptr) Variable Input - 117: TypePointer Output 7(fvec4) - 118(fragColor): 117(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 9(f4): 8(ptr) Variable Function - Store 9(f4) 11 - 14: 6(float) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 13(if1) - 18: 17(ptr) AccessChain 9(f4) 16 - 19: 6(float) Load 18 - 20: 6(float) FAdd 19 14 - 21: 17(ptr) AccessChain 9(f4) 16 - Store 21 20 - 25: 22(fvec2) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 24(if2) - 26: 7(fvec4) Load 9(f4) - 27: 22(fvec2) VectorShuffle 26 26 0 1 - 28: 22(fvec2) FAdd 27 25 - 29: 17(ptr) AccessChain 9(f4) 16 - 30: 6(float) CompositeExtract 28 0 - Store 29 30 - 32: 17(ptr) AccessChain 9(f4) 31 - 33: 6(float) CompositeExtract 28 1 - Store 32 33 - 37: 34(fvec3) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 36(if3) - 38: 7(fvec4) Load 9(f4) - 39: 34(fvec3) VectorShuffle 38 38 0 1 2 - 40: 34(fvec3) FAdd 39 37 - 41: 17(ptr) AccessChain 9(f4) 16 - 42: 6(float) CompositeExtract 40 0 - Store 41 42 - 43: 17(ptr) AccessChain 9(f4) 31 - 44: 6(float) CompositeExtract 40 1 - Store 43 44 - 46: 17(ptr) AccessChain 9(f4) 45 - 47: 6(float) CompositeExtract 40 2 - Store 46 47 - 50: 7(fvec4) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 49(if4) - 51: 7(fvec4) Load 9(f4) - 52: 7(fvec4) FAdd 51 50 - Store 9(f4) 52 - 56: 53(int) Load 55(samp) - 57: 6(float) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 13(if1) 56 - 58: 17(ptr) AccessChain 9(f4) 16 - 59: 6(float) Load 58 - 60: 6(float) FAdd 59 57 - 61: 17(ptr) AccessChain 9(f4) 16 - Store 61 60 - 62: 53(int) Load 55(samp) - 63: 22(fvec2) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 24(if2) 62 - 64: 7(fvec4) Load 9(f4) - 65: 22(fvec2) VectorShuffle 64 64 0 1 - 66: 22(fvec2) FAdd 65 63 - 67: 17(ptr) AccessChain 9(f4) 16 - 68: 6(float) CompositeExtract 66 0 - Store 67 68 - 69: 17(ptr) AccessChain 9(f4) 31 - 70: 6(float) CompositeExtract 66 1 - Store 69 70 - 71: 53(int) Load 55(samp) - 72: 34(fvec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 36(if3) 71 - 73: 7(fvec4) Load 9(f4) - 74: 34(fvec3) VectorShuffle 73 73 0 1 2 - 75: 34(fvec3) FAdd 74 72 - 76: 17(ptr) AccessChain 9(f4) 16 - 77: 6(float) CompositeExtract 75 0 - Store 76 77 - 78: 17(ptr) AccessChain 9(f4) 31 - 79: 6(float) CompositeExtract 75 1 - Store 78 79 - 80: 17(ptr) AccessChain 9(f4) 45 - 81: 6(float) CompositeExtract 75 2 - Store 80 81 - 82: 53(int) Load 55(samp) - 83: 7(fvec4) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 49(if4) 82 - 84: 7(fvec4) Load 9(f4) - 85: 7(fvec4) FAdd 84 83 - Store 9(f4) 85 - 87: 22(fvec2) Load 86(offset) - 88: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 13(if1) 87 - 89: 17(ptr) AccessChain 9(f4) 16 - 90: 6(float) Load 89 - 91: 6(float) FAdd 90 88 - 92: 17(ptr) AccessChain 9(f4) 16 - Store 92 91 - 93: 22(fvec2) Load 86(offset) - 94: 22(fvec2) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 24(if2) 93 - 95: 7(fvec4) Load 9(f4) - 96: 22(fvec2) VectorShuffle 95 95 0 1 - 97: 22(fvec2) FAdd 96 94 - 98: 17(ptr) AccessChain 9(f4) 16 - 99: 6(float) CompositeExtract 97 0 - Store 98 99 - 100: 17(ptr) AccessChain 9(f4) 31 - 101: 6(float) CompositeExtract 97 1 - Store 100 101 - 102: 22(fvec2) Load 86(offset) - 103: 34(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 36(if3) 102 - 104: 7(fvec4) Load 9(f4) - 105: 34(fvec3) VectorShuffle 104 104 0 1 2 - 106: 34(fvec3) FAdd 105 103 - 107: 17(ptr) AccessChain 9(f4) 16 - 108: 6(float) CompositeExtract 106 0 - Store 107 108 - 109: 17(ptr) AccessChain 9(f4) 31 - 110: 6(float) CompositeExtract 106 1 - Store 109 110 - 111: 17(ptr) AccessChain 9(f4) 45 - 112: 6(float) CompositeExtract 106 2 - Store 111 112 - 113: 22(fvec2) Load 86(offset) - 114: 7(fvec4) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 49(if4) 113 - 115: 7(fvec4) Load 9(f4) - 116: 7(fvec4) FAdd 115 114 - Store 9(f4) 116 - 119: 7(fvec4) Load 9(f4) - Store 118(fragColor) 119 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.intrinsicsSpirvByReference.vert.out b/deps/glslang/Test/baseResults/spv.intrinsicsSpirvByReference.vert.out deleted file mode 100644 index d46b33f8..00000000 --- a/deps/glslang/Test/baseResults/spv.intrinsicsSpirvByReference.vert.out +++ /dev/null @@ -1,56 +0,0 @@ -spv.intrinsicsSpirvByReference.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 30 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 15 17 26 - Source GLSL 450 - SourceExtension "GL_EXT_spirv_intrinsics" - Name 4 "main" - Name 10 "func(f1;" - Name 9 "f" - Name 15 "vec2Out" - Name 17 "floatIn" - Name 26 "floatOut" - Name 27 "param" - Decorate 15(vec2Out) Location 0 - Decorate 17(floatIn) Location 0 - Decorate 26(floatOut) Location 1 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypePointer Function 6(float) - 8: TypeFunction 2 7(ptr) - 12: 6(float) Constant 1056964608 - 13: TypeVector 6(float) 2 - 14: TypePointer Output 13(fvec2) - 15(vec2Out): 14(ptr) Variable Output - 16: TypePointer Input 6(float) - 17(floatIn): 16(ptr) Variable Input - 19: TypeInt 32 0 - 20: 19(int) Constant 1 - 21: TypePointer Output 6(float) - 24: 19(int) Constant 0 - 26(floatOut): 21(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 27(param): 7(ptr) Variable Function - 18: 6(float) Load 17(floatIn) - 22: 21(ptr) AccessChain 15(vec2Out) 20 - 23: 6(float) ExtInst 1(GLSL.std.450) 35(Modf) 18 22 - 25: 21(ptr) AccessChain 15(vec2Out) 24 - Store 25 23 - 28: 6(float) Load 26(floatOut) - Store 27(param) 28 - 29: 2 FunctionCall 10(func(f1;) 27(param) - Return - FunctionEnd - 10(func(f1;): 2 Function None 8 - 9(f): 7(ptr) FunctionParameter - 11: Label - Store 9(f) 12 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.intrinsicsSpirvDecorate.frag.out b/deps/glslang/Test/baseResults/spv.intrinsicsSpirvDecorate.frag.out deleted file mode 100644 index c41dcc9c..00000000 --- a/deps/glslang/Test/baseResults/spv.intrinsicsSpirvDecorate.frag.out +++ /dev/null @@ -1,80 +0,0 @@ -spv.intrinsicsSpirvDecorate.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 43 - - Capability Shader - Extension "SPV_AMD_shader_explicit_vertex_parameter" - 1: ExtInstImport "GLSL.std.450" - 14: ExtInstImport "SPV_AMD_shader_explicit_vertex_parameter" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 8 10 18 20 22 25 28 31 34 39 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_spirv_intrinsics" - Name 4 "main" - Name 8 "floatOut" - Name 10 "floatIn" - Name 18 "vec2Out" - Name 20 "gl_BaryCoordNoPerspAMD" - Name 22 "gl_BaryCoordNoPerspCentroidAMD" - Name 25 "gl_BaryCoordNoPerspSampleAMD" - Name 28 "gl_BaryCoordSmoothAMD" - Name 31 "gl_BaryCoordSmoothCentroidAMD" - Name 34 "gl_BaryCoordSmoothSampleAMD" - Name 39 "gl_BaryCoordPullModelAMD" - Decorate 8(floatOut) Location 0 - Decorate 10(floatIn) Location 0 - Decorate 10(floatIn) ExplicitInterpAMD - Decorate 18(vec2Out) Location 1 - Decorate 20(gl_BaryCoordNoPerspAMD) BuiltIn BaryCoordNoPerspAMD - Decorate 22(gl_BaryCoordNoPerspCentroidAMD) BuiltIn BaryCoordNoPerspCentroidAMD - Decorate 25(gl_BaryCoordNoPerspSampleAMD) BuiltIn BaryCoordNoPerspSampleAMD - Decorate 28(gl_BaryCoordSmoothAMD) BuiltIn BaryCoordSmoothAMD - Decorate 31(gl_BaryCoordSmoothCentroidAMD) BuiltIn BaryCoordSmoothCentroidAMD - Decorate 34(gl_BaryCoordSmoothSampleAMD) BuiltIn BaryCoordSmoothSampleAMD - Decorate 39(gl_BaryCoordPullModelAMD) BuiltIn BaryCoordPullModelAMD - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypePointer Output 6(float) - 8(floatOut): 7(ptr) Variable Output - 9: TypePointer Input 6(float) - 10(floatIn): 9(ptr) Variable Input - 12: TypeInt 32 0 - 13: 12(int) Constant 1 - 16: TypeVector 6(float) 2 - 17: TypePointer Output 16(fvec2) - 18(vec2Out): 17(ptr) Variable Output - 19: TypePointer Input 16(fvec2) -20(gl_BaryCoordNoPerspAMD): 19(ptr) Variable Input -22(gl_BaryCoordNoPerspCentroidAMD): 19(ptr) Variable Input -25(gl_BaryCoordNoPerspSampleAMD): 19(ptr) Variable Input -28(gl_BaryCoordSmoothAMD): 19(ptr) Variable Input -31(gl_BaryCoordSmoothCentroidAMD): 19(ptr) Variable Input -34(gl_BaryCoordSmoothSampleAMD): 19(ptr) Variable Input - 37: TypeVector 6(float) 3 - 38: TypePointer Input 37(fvec3) -39(gl_BaryCoordPullModelAMD): 38(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 11: 6(float) Load 10(floatIn) - 15: 6(float) ExtInst 14(SPV_AMD_shader_explicit_vertex_parameter) 1(InterpolateAtVertexAMD) 11 13 - Store 8(floatOut) 15 - 21: 16(fvec2) Load 20(gl_BaryCoordNoPerspAMD) - 23: 16(fvec2) Load 22(gl_BaryCoordNoPerspCentroidAMD) - 24: 16(fvec2) FAdd 21 23 - 26: 16(fvec2) Load 25(gl_BaryCoordNoPerspSampleAMD) - 27: 16(fvec2) FAdd 24 26 - 29: 16(fvec2) Load 28(gl_BaryCoordSmoothAMD) - 30: 16(fvec2) FAdd 27 29 - 32: 16(fvec2) Load 31(gl_BaryCoordSmoothCentroidAMD) - 33: 16(fvec2) FAdd 30 32 - 35: 16(fvec2) Load 34(gl_BaryCoordSmoothSampleAMD) - 36: 16(fvec2) FAdd 33 35 - 40: 37(fvec3) Load 39(gl_BaryCoordPullModelAMD) - 41: 16(fvec2) VectorShuffle 40 40 0 1 - 42: 16(fvec2) FAdd 36 41 - Store 18(vec2Out) 42 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.intrinsicsSpirvExecutionMode.frag.out b/deps/glslang/Test/baseResults/spv.intrinsicsSpirvExecutionMode.frag.out deleted file mode 100644 index cdea3820..00000000 --- a/deps/glslang/Test/baseResults/spv.intrinsicsSpirvExecutionMode.frag.out +++ /dev/null @@ -1,34 +0,0 @@ -spv.intrinsicsSpirvExecutionMode.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 12 - - Capability Shader - Capability StencilExportEXT - Extension "SPV_EXT_shader_stencil_export" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 8 10 - ExecutionMode 4 OriginUpperLeft - ExecutionMode 4 StencilRefReplacingEXT - Source GLSL 450 - SourceExtension "GL_EXT_spirv_intrinsics" - Name 4 "main" - Name 8 "gl_FragStencilRef" - Name 10 "color" - Decorate 8(gl_FragStencilRef) BuiltIn FragStencilRefEXT - Decorate 10(color) Flat - Decorate 10(color) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Output 6(int) -8(gl_FragStencilRef): 7(ptr) Variable Output - 9: TypePointer Input 6(int) - 10(color): 9(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 11: 6(int) Load 10(color) - Store 8(gl_FragStencilRef) 11 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.intrinsicsSpirvInstruction.vert.out b/deps/glslang/Test/baseResults/spv.intrinsicsSpirvInstruction.vert.out deleted file mode 100644 index 0e95e42b..00000000 --- a/deps/glslang/Test/baseResults/spv.intrinsicsSpirvInstruction.vert.out +++ /dev/null @@ -1,60 +0,0 @@ -spv.intrinsicsSpirvInstruction.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 32 - - Capability Shader - Capability Int64 - Capability ShaderClockKHR - Extension "SPV_AMD_shader_trinary_minmax" - Extension "SPV_KHR_shader_clock" - 1: ExtInstImport "GLSL.std.450" - 30: ExtInstImport "SPV_AMD_shader_trinary_minmax" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 9 15 20 23 - Source GLSL 450 - SourceExtension "GL_ARB_gpu_shader_int64" - SourceExtension "GL_EXT_spirv_intrinsics" - Name 4 "main" - Name 9 "uvec2Out" - Name 15 "u64Out" - Name 20 "vec2Out" - Name 23 "vec3In" - Decorate 9(uvec2Out) Location 0 - Decorate 15(u64Out) Location 1 - Decorate 20(vec2Out) Location 2 - Decorate 23(vec3In) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeVector 6(int) 2 - 8: TypePointer Output 7(ivec2) - 9(uvec2Out): 8(ptr) Variable Output - 10: TypeInt 32 1 - 11: 10(int) Constant 1 - 13: TypeInt 64 0 - 14: TypePointer Output 13(int64_t) - 15(u64Out): 14(ptr) Variable Output - 17: TypeFloat 32 - 18: TypeVector 17(float) 2 - 19: TypePointer Output 18(fvec2) - 20(vec2Out): 19(ptr) Variable Output - 21: TypeVector 17(float) 3 - 22: TypePointer Input 21(fvec3) - 23(vec3In): 22(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 12: 7(ivec2) ReadClockKHR 11 - Store 9(uvec2Out) 12 - 16: 13(int64_t) ReadClockKHR 11 - Store 15(u64Out) 16 - 24: 21(fvec3) Load 23(vec3In) - 25: 18(fvec2) VectorShuffle 24 24 0 1 - 26: 21(fvec3) Load 23(vec3In) - 27: 18(fvec2) VectorShuffle 26 26 1 2 - 28: 21(fvec3) Load 23(vec3In) - 29: 18(fvec2) VectorShuffle 28 28 2 0 - 31: 18(fvec2) ExtInst 30(SPV_AMD_shader_trinary_minmax) 1(FMin3AMD) 25 27 29 - Store 20(vec2Out) 31 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.intrinsicsSpirvLiteral.vert.out b/deps/glslang/Test/baseResults/spv.intrinsicsSpirvLiteral.vert.out deleted file mode 100644 index 096cc611..00000000 --- a/deps/glslang/Test/baseResults/spv.intrinsicsSpirvLiteral.vert.out +++ /dev/null @@ -1,30 +0,0 @@ -spv.intrinsicsSpirvLiteral.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 13 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 9 11 - Source GLSL 450 - SourceExtension "GL_EXT_spirv_intrinsics" - Name 4 "main" - Name 9 "vec4Out" - Name 11 "vec4In" - Decorate 9(vec4Out) Location 1 - Decorate 11(vec4In) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) - 9(vec4Out): 8(ptr) Variable Output - 10: TypePointer Input 7(fvec4) - 11(vec4In): 10(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 12: 7(fvec4) Load 11(vec4In) None - Store 9(vec4Out) 12 Volatile - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.intrinsicsSpirvStorageClass.rchit.out b/deps/glslang/Test/baseResults/spv.intrinsicsSpirvStorageClass.rchit.out deleted file mode 100644 index 4be5b914..00000000 --- a/deps/glslang/Test/baseResults/spv.intrinsicsSpirvStorageClass.rchit.out +++ /dev/null @@ -1,30 +0,0 @@ -spv.intrinsicsSpirvStorageClass.rchit -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 13 - - Capability RayTracingKHR - Capability RayTracingProvisionalKHR - Extension "SPV_KHR_ray_tracing" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint ClosestHitKHR 4 "main" - Source GLSL 460 - SourceExtension "GL_EXT_spirv_intrinsics" - Name 4 "main" - Name 9 "payload" - Decorate 9(payload) Location 1 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer RayPayloadKHR 7(fvec4) - 9(payload): 8(ptr) Variable RayPayloadKHR - 10: 6(float) Constant 0 - 11: 6(float) Constant 1065353216 - 12: 7(fvec4) ConstantComposite 10 11 10 11 - 4(main): 2 Function None 3 - 5: Label - Store 9(payload) 12 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.intrinsicsSpirvType.rgen.out b/deps/glslang/Test/baseResults/spv.intrinsicsSpirvType.rgen.out deleted file mode 100644 index f3937b49..00000000 --- a/deps/glslang/Test/baseResults/spv.intrinsicsSpirvType.rgen.out +++ /dev/null @@ -1,43 +0,0 @@ -spv.intrinsicsSpirvType.rgen -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 21 - - Capability RayQueryKHR - Capability RayTraversalPrimitiveCullingKHR - Capability RayTracingKHR - Extension "SPV_KHR_ray_query" - Extension "SPV_KHR_ray_tracing" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint RayGenerationKHR 4 "main" - Source GLSL 460 - SourceExtension "GL_EXT_spirv_intrinsics" - Name 4 "main" - Name 8 "rq" - Name 11 "as" - Decorate 11(as) DescriptorSet 0 - Decorate 11(as) Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeRayQueryKHR - 7: TypePointer Function 6 - 9: TypeAccelerationStructureKHR - 10: TypePointer UniformConstant 9 - 11(as): 10(ptr) Variable UniformConstant - 13: TypeInt 32 0 - 14: 13(int) Constant 0 - 15: TypeFloat 32 - 16: TypeVector 15(float) 3 - 17: 15(float) Constant 0 - 18: 16(fvec3) ConstantComposite 17 17 17 - 19: 15(float) Constant 1065353216 - 20: 16(fvec3) ConstantComposite 19 19 19 - 4(main): 2 Function None 3 - 5: Label - 8(rq): 7(ptr) Variable Function - 12: 9 Load 11(as) - RayQueryInitializeKHR 8(rq) 12 14 14 18 17 20 19 - RayQueryTerminateKHR 8(rq) - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.intrinsicsSpirvTypeLocalVar.vert.out b/deps/glslang/Test/baseResults/spv.intrinsicsSpirvTypeLocalVar.vert.out deleted file mode 100644 index 75515be0..00000000 --- a/deps/glslang/Test/baseResults/spv.intrinsicsSpirvTypeLocalVar.vert.out +++ /dev/null @@ -1,43 +0,0 @@ -spv.intrinsicsSpirvTypeLocalVar.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 22 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" - Source GLSL 460 - SourceExtension "GL_EXT_spirv_intrinsics" - Name 4 "main" - Name 10 "func(spv-t1;" - Name 9 "emptyStruct" - Name 13 "size" - Name 16 "dummy" - Name 18 "param" - Decorate 13(size) SpecId 9 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeStruct - 7: TypePointer Function 6(struct) - 8: TypeFunction 2 7(ptr) - 12: TypeInt 32 1 - 13(size): 12(int) SpecConstant 9 - 14: TypeArray 6(struct) 13(size) - 15: TypePointer Function 14 - 17: 12(int) Constant 1 - 4(main): 2 Function None 3 - 5: Label - 16(dummy): 15(ptr) Variable Function - 18(param): 7(ptr) Variable Function - 19: 7(ptr) AccessChain 16(dummy) 17 - 20: 6(struct) Load 19 - Store 18(param) 20 - 21: 2 FunctionCall 10(func(spv-t1;) 18(param) - Return - FunctionEnd -10(func(spv-t1;): 2 Function None 8 - 9(emptyStruct): 7(ptr) FunctionParameter - 11: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.invariantAll.vert.out b/deps/glslang/Test/baseResults/spv.invariantAll.vert.out deleted file mode 100644 index ec5ad30a..00000000 --- a/deps/glslang/Test/baseResults/spv.invariantAll.vert.out +++ /dev/null @@ -1,55 +0,0 @@ -spv.invariantAll.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 25 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 13 17 - Source GLSL 450 - Name 4 "main" - Name 11 "gl_PerVertex" - MemberName 11(gl_PerVertex) 0 "gl_Position" - MemberName 11(gl_PerVertex) 1 "gl_PointSize" - MemberName 11(gl_PerVertex) 2 "gl_ClipDistance" - MemberName 11(gl_PerVertex) 3 "gl_CullDistance" - Name 13 "" - Name 17 "v" - MemberDecorate 11(gl_PerVertex) 0 Invariant - MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 11(gl_PerVertex) 1 Invariant - MemberDecorate 11(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 11(gl_PerVertex) 2 Invariant - MemberDecorate 11(gl_PerVertex) 2 BuiltIn ClipDistance - MemberDecorate 11(gl_PerVertex) 3 Invariant - MemberDecorate 11(gl_PerVertex) 3 BuiltIn CullDistance - Decorate 11(gl_PerVertex) Block - Decorate 17(v) Location 0 - Decorate 17(v) Invariant - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeInt 32 0 - 9: 8(int) Constant 1 - 10: TypeArray 6(float) 9 -11(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 10 10 - 12: TypePointer Output 11(gl_PerVertex) - 13: 12(ptr) Variable Output - 14: TypeInt 32 1 - 15: 14(int) Constant 0 - 16: TypePointer Output 6(float) - 17(v): 16(ptr) Variable Output - 20: 6(float) Constant 0 - 21: 6(float) Constant 1065353216 - 23: TypePointer Output 7(fvec4) - 4(main): 2 Function None 3 - 5: Label - 18: 6(float) Load 17(v) - 19: 6(float) Load 17(v) - 22: 7(fvec4) CompositeConstruct 18 19 20 21 - 24: 23(ptr) AccessChain 13 15 - Store 24 22 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.layer.tese.out b/deps/glslang/Test/baseResults/spv.layer.tese.out deleted file mode 100644 index 906340fe..00000000 --- a/deps/glslang/Test/baseResults/spv.layer.tese.out +++ /dev/null @@ -1,30 +0,0 @@ -spv.layer.tese -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 10 - - Capability Tessellation - Capability ShaderViewportIndexLayerNV - Extension "SPV_EXT_shader_viewport_index_layer" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint TessellationEvaluation 4 "main" 8 - ExecutionMode 4 Triangles - ExecutionMode 4 SpacingEqual - ExecutionMode 4 VertexOrderCcw - Source GLSL 450 - SourceExtension "GL_ARB_shader_viewport_layer_array" - Name 4 "main" - Name 8 "gl_Layer" - Decorate 8(gl_Layer) BuiltIn Layer - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Output 6(int) - 8(gl_Layer): 7(ptr) Variable Output - 9: 6(int) Constant 1 - 4(main): 2 Function None 3 - 5: Label - Store 8(gl_Layer) 9 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.layoutNested.vert.out b/deps/glslang/Test/baseResults/spv.layoutNested.vert.out deleted file mode 100644 index 7de04d40..00000000 --- a/deps/glslang/Test/baseResults/spv.layoutNested.vert.out +++ /dev/null @@ -1,243 +0,0 @@ -spv.layoutNested.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 66 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 62 65 - Source GLSL 450 - Name 4 "main" - Name 14 "S" - MemberName 14(S) 0 "a" - MemberName 14(S) 1 "b" - MemberName 14(S) 2 "c" - Name 19 "Block140" - MemberName 19(Block140) 0 "u" - MemberName 19(Block140) 1 "s" - MemberName 19(Block140) 2 "v" - Name 21 "inst140" - Name 23 "S" - MemberName 23(S) 0 "a" - MemberName 23(S) 1 "b" - MemberName 23(S) 2 "c" - Name 26 "Block430" - MemberName 26(Block430) 0 "u" - MemberName 26(Block430) 1 "s" - MemberName 26(Block430) 2 "v" - Name 28 "inst430" - Name 29 "S" - MemberName 29(S) 0 "a" - MemberName 29(S) 1 "b" - MemberName 29(S) 2 "c" - Name 31 "s" - Name 32 "T" - MemberName 32(T) 0 "m" - MemberName 32(T) 1 "a" - Name 34 "t" - Name 35 "T" - MemberName 35(T) 0 "m" - MemberName 35(T) 1 "a" - Name 36 "Nestor" - MemberName 36(Nestor) 0 "nestorT" - Name 37 "Bt1" - MemberName 37(Bt1) 0 "nt" - Name 39 "Btn1" - Name 40 "T" - MemberName 40(T) 0 "m" - MemberName 40(T) 1 "a" - Name 41 "Nestor" - MemberName 41(Nestor) 0 "nestorT" - Name 42 "Bt2" - MemberName 42(Bt2) 0 "nt" - Name 44 "Btn2" - Name 45 "Bt3" - MemberName 45(Bt3) 0 "ntcol" - MemberName 45(Bt3) 1 "ntrow" - Name 47 "Btn3" - Name 48 "T" - MemberName 48(T) 0 "m" - MemberName 48(T) 1 "a" - Name 49 "Nestor" - MemberName 49(Nestor) 0 "nestorT" - Name 50 "bBt1" - MemberName 50(bBt1) 0 "nt" - Name 52 "bBtn1" - Name 53 "T" - MemberName 53(T) 0 "m" - MemberName 53(T) 1 "a" - Name 54 "Nestor" - MemberName 54(Nestor) 0 "nestorT" - Name 55 "bBt2" - MemberName 55(bBt2) 0 "nt" - Name 57 "bBtn2" - Name 58 "bBt3" - MemberName 58(bBt3) 0 "ntcol" - MemberName 58(bBt3) 1 "ntrow" - Name 60 "bBtn3" - Name 62 "sout" - Name 63 "S" - MemberName 63(S) 0 "a" - MemberName 63(S) 1 "b" - MemberName 63(S) 2 "c" - Name 65 "soutinv" - Decorate 13 ArrayStride 32 - MemberDecorate 14(S) 0 Offset 0 - MemberDecorate 14(S) 1 ColMajor - MemberDecorate 14(S) 1 RelaxedPrecision - MemberDecorate 14(S) 1 Offset 16 - MemberDecorate 14(S) 1 MatrixStride 16 - MemberDecorate 14(S) 2 RelaxedPrecision - MemberDecorate 14(S) 2 Offset 144 - Decorate 16 ArrayStride 160 - Decorate 18 ArrayStride 480 - MemberDecorate 19(Block140) 0 RelaxedPrecision - MemberDecorate 19(Block140) 0 Offset 0 - MemberDecorate 19(Block140) 1 Offset 16 - MemberDecorate 19(Block140) 2 RelaxedPrecision - MemberDecorate 19(Block140) 2 Offset 976 - Decorate 19(Block140) Block - Decorate 21(inst140) DescriptorSet 0 - Decorate 21(inst140) Binding 0 - Decorate 22 ArrayStride 16 - MemberDecorate 23(S) 0 Offset 0 - MemberDecorate 23(S) 1 ColMajor - MemberDecorate 23(S) 1 RelaxedPrecision - MemberDecorate 23(S) 1 Offset 16 - MemberDecorate 23(S) 1 MatrixStride 8 - MemberDecorate 23(S) 2 RelaxedPrecision - MemberDecorate 23(S) 2 Offset 80 - Decorate 24 ArrayStride 96 - Decorate 25 ArrayStride 288 - MemberDecorate 26(Block430) 0 RelaxedPrecision - MemberDecorate 26(Block430) 0 Offset 0 - MemberDecorate 26(Block430) 1 Offset 16 - MemberDecorate 26(Block430) 2 RelaxedPrecision - MemberDecorate 26(Block430) 2 Offset 592 - Decorate 26(Block430) BufferBlock - Decorate 28(inst430) DescriptorSet 0 - Decorate 28(inst430) Binding 1 - MemberDecorate 29(S) 1 RelaxedPrecision - MemberDecorate 29(S) 2 RelaxedPrecision - MemberDecorate 35(T) 0 RowMajor - MemberDecorate 35(T) 0 Offset 0 - MemberDecorate 35(T) 0 MatrixStride 16 - MemberDecorate 35(T) 1 Offset 32 - MemberDecorate 36(Nestor) 0 Offset 0 - MemberDecorate 37(Bt1) 0 Offset 0 - Decorate 37(Bt1) Block - Decorate 39(Btn1) DescriptorSet 1 - Decorate 39(Btn1) Binding 0 - MemberDecorate 40(T) 0 ColMajor - MemberDecorate 40(T) 0 Offset 0 - MemberDecorate 40(T) 0 MatrixStride 16 - MemberDecorate 40(T) 1 Offset 32 - MemberDecorate 41(Nestor) 0 Offset 0 - MemberDecorate 42(Bt2) 0 Offset 0 - Decorate 42(Bt2) Block - Decorate 44(Btn2) DescriptorSet 1 - Decorate 44(Btn2) Binding 0 - MemberDecorate 45(Bt3) 0 Offset 0 - MemberDecorate 45(Bt3) 1 Offset 48 - Decorate 45(Bt3) Block - Decorate 47(Btn3) DescriptorSet 1 - Decorate 47(Btn3) Binding 0 - MemberDecorate 48(T) 0 RowMajor - MemberDecorate 48(T) 0 Offset 0 - MemberDecorate 48(T) 0 MatrixStride 8 - MemberDecorate 48(T) 1 Offset 16 - MemberDecorate 49(Nestor) 0 Offset 0 - MemberDecorate 50(bBt1) 0 Offset 0 - Decorate 50(bBt1) BufferBlock - Decorate 52(bBtn1) DescriptorSet 1 - Decorate 52(bBtn1) Binding 0 - MemberDecorate 53(T) 0 ColMajor - MemberDecorate 53(T) 0 Offset 0 - MemberDecorate 53(T) 0 MatrixStride 8 - MemberDecorate 53(T) 1 Offset 16 - MemberDecorate 54(Nestor) 0 Offset 0 - MemberDecorate 55(bBt2) 0 Offset 0 - Decorate 55(bBt2) BufferBlock - Decorate 57(bBtn2) DescriptorSet 1 - Decorate 57(bBtn2) Binding 0 - MemberDecorate 58(bBt3) 0 Offset 0 - MemberDecorate 58(bBt3) 1 Offset 24 - Decorate 58(bBt3) BufferBlock - Decorate 60(bBtn3) DescriptorSet 1 - Decorate 60(bBtn3) Binding 0 - Decorate 62(sout) Flat - Decorate 62(sout) Location 0 - MemberDecorate 63(S) 0 Invariant - MemberDecorate 63(S) 1 RelaxedPrecision - MemberDecorate 63(S) 1 Invariant - MemberDecorate 63(S) 2 RelaxedPrecision - MemberDecorate 63(S) 2 Invariant - Decorate 65(soutinv) Location 10 - Decorate 65(soutinv) Invariant - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypeInt 32 0 - 8: TypeVector 7(int) 3 - 9: TypeFloat 32 - 10: TypeVector 9(float) 2 - 11: TypeMatrix 10(fvec2) 2 - 12: 7(int) Constant 4 - 13: TypeArray 11 12 - 14(S): TypeStruct 8(ivec3) 13 7(int) - 15: 7(int) Constant 3 - 16: TypeArray 14(S) 15 - 17: 7(int) Constant 2 - 18: TypeArray 16 17 - 19(Block140): TypeStruct 6(int) 18 10(fvec2) - 20: TypePointer Uniform 19(Block140) - 21(inst140): 20(ptr) Variable Uniform - 22: TypeArray 11 12 - 23(S): TypeStruct 8(ivec3) 22 7(int) - 24: TypeArray 23(S) 15 - 25: TypeArray 24 17 - 26(Block430): TypeStruct 6(int) 25 10(fvec2) - 27: TypePointer Uniform 26(Block430) - 28(inst430): 27(ptr) Variable Uniform - 29(S): TypeStruct 8(ivec3) 13 7(int) - 30: TypePointer Private 29(S) - 31(s): 30(ptr) Variable Private - 32(T): TypeStruct 11 6(int) - 33: TypePointer Private 32(T) - 34(t): 33(ptr) Variable Private - 35(T): TypeStruct 11 6(int) - 36(Nestor): TypeStruct 35(T) - 37(Bt1): TypeStruct 36(Nestor) - 38: TypePointer Uniform 37(Bt1) - 39(Btn1): 38(ptr) Variable Uniform - 40(T): TypeStruct 11 6(int) - 41(Nestor): TypeStruct 40(T) - 42(Bt2): TypeStruct 41(Nestor) - 43: TypePointer Uniform 42(Bt2) - 44(Btn2): 43(ptr) Variable Uniform - 45(Bt3): TypeStruct 41(Nestor) 36(Nestor) - 46: TypePointer Uniform 45(Bt3) - 47(Btn3): 46(ptr) Variable Uniform - 48(T): TypeStruct 11 6(int) - 49(Nestor): TypeStruct 48(T) - 50(bBt1): TypeStruct 49(Nestor) - 51: TypePointer Uniform 50(bBt1) - 52(bBtn1): 51(ptr) Variable Uniform - 53(T): TypeStruct 11 6(int) - 54(Nestor): TypeStruct 53(T) - 55(bBt2): TypeStruct 54(Nestor) - 56: TypePointer Uniform 55(bBt2) - 57(bBtn2): 56(ptr) Variable Uniform - 58(bBt3): TypeStruct 49(Nestor) 54(Nestor) - 59: TypePointer Uniform 58(bBt3) - 60(bBtn3): 59(ptr) Variable Uniform - 61: TypePointer Output 29(S) - 62(sout): 61(ptr) Variable Output - 63(S): TypeStruct 8(ivec3) 13 7(int) - 64: TypePointer Output 63(S) - 65(soutinv): 64(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.length.frag.out b/deps/glslang/Test/baseResults/spv.length.frag.out deleted file mode 100644 index 8957a3cd..00000000 --- a/deps/glslang/Test/baseResults/spv.length.frag.out +++ /dev/null @@ -1,53 +0,0 @@ -spv.length.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 33 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 14 26 - ExecutionMode 4 OriginUpperLeft - Source GLSL 140 - Name 4 "main" - Name 9 "t" - Name 14 "v" - Name 26 "gl_FragColor" - Name 32 "u" - Decorate 14(v) Location 0 - Decorate 26(gl_FragColor) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 2 - 8: TypePointer Function 7(fvec2) - 10: TypeInt 32 0 - 11: 10(int) Constant 2 - 12: TypeArray 7(fvec2) 11 - 13: TypePointer Input 12 - 14(v): 13(ptr) Variable Input - 15: TypeInt 32 1 - 16: 15(int) Constant 0 - 17: TypePointer Input 7(fvec2) - 20: 15(int) Constant 1 - 24: TypeVector 6(float) 4 - 25: TypePointer Output 24(fvec4) -26(gl_FragColor): 25(ptr) Variable Output - 27: 6(float) Constant 1106247680 - 28: 24(fvec4) ConstantComposite 27 27 27 27 - 29: 10(int) Constant 3 - 30: TypeArray 24(fvec4) 29 - 31: TypePointer Private 30 - 32(u): 31(ptr) Variable Private - 4(main): 2 Function None 3 - 5: Label - 9(t): 8(ptr) Variable Function - 18: 17(ptr) AccessChain 14(v) 16 - 19: 7(fvec2) Load 18 - 21: 17(ptr) AccessChain 14(v) 20 - 22: 7(fvec2) Load 21 - 23: 7(fvec2) FAdd 19 22 - Store 9(t) 23 - Store 26(gl_FragColor) 28 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.load.bool.array.interface.block.frag.out b/deps/glslang/Test/baseResults/spv.load.bool.array.interface.block.frag.out deleted file mode 100644 index f45736cb..00000000 --- a/deps/glslang/Test/baseResults/spv.load.bool.array.interface.block.frag.out +++ /dev/null @@ -1,119 +0,0 @@ -spv.load.bool.array.interface.block.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 80 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 77 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - Name 4 "main" - Name 11 "ssbo" - MemberName 11(ssbo) 0 "bo" - Name 13 "" - Name 18 "ub" - MemberName 18(ub) 0 "bi" - Name 20 "" - Name 77 "color" - Decorate 8 ArrayStride 4 - Decorate 10 ArrayStride 12 - MemberDecorate 11(ssbo) 0 Offset 0 - Decorate 11(ssbo) BufferBlock - Decorate 13 DescriptorSet 0 - Decorate 13 Binding 1 - Decorate 16 ArrayStride 16 - Decorate 17 ArrayStride 48 - MemberDecorate 18(ub) 0 Offset 0 - Decorate 18(ub) Block - Decorate 20 DescriptorSet 0 - Decorate 20 Binding 0 - Decorate 77(color) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: 6(int) Constant 3 - 8: TypeArray 6(int) 7 - 9: 6(int) Constant 2 - 10: TypeArray 8 9 - 11(ssbo): TypeStruct 10 - 12: TypePointer Uniform 11(ssbo) - 13: 12(ptr) Variable Uniform - 14: TypeInt 32 1 - 15: 14(int) Constant 0 - 16: TypeArray 6(int) 7 - 17: TypeArray 16 9 - 18(ub): TypeStruct 17 - 19: TypePointer Uniform 18(ub) - 20: 19(ptr) Variable Uniform - 21: TypePointer Uniform 17 - 24: TypeBool - 25: TypeArray 24(bool) 7 - 26: TypeArray 25 9 - 29: 6(int) Constant 0 - 45: TypePointer Uniform 10 - 48: TypePointer Uniform 8 - 51: 6(int) Constant 1 - 53: TypePointer Uniform 6(int) - 56: 14(int) Constant 1 - 60: 14(int) Constant 2 - 74: TypeFloat 32 - 75: TypeVector 74(float) 4 - 76: TypePointer Output 75(fvec4) - 77(color): 76(ptr) Variable Output - 78: 74(float) Constant 0 - 79: 75(fvec4) ConstantComposite 78 78 78 78 - 4(main): 2 Function None 3 - 5: Label - 22: 21(ptr) AccessChain 20 15 - 23: 17 Load 22 - 27: 16 CompositeExtract 23 0 - 28: 6(int) CompositeExtract 27 0 - 30: 24(bool) INotEqual 28 29 - 31: 6(int) CompositeExtract 27 1 - 32: 24(bool) INotEqual 31 29 - 33: 6(int) CompositeExtract 27 2 - 34: 24(bool) INotEqual 33 29 - 35: 25 CompositeConstruct 30 32 34 - 36: 16 CompositeExtract 23 1 - 37: 6(int) CompositeExtract 36 0 - 38: 24(bool) INotEqual 37 29 - 39: 6(int) CompositeExtract 36 1 - 40: 24(bool) INotEqual 39 29 - 41: 6(int) CompositeExtract 36 2 - 42: 24(bool) INotEqual 41 29 - 43: 25 CompositeConstruct 38 40 42 - 44: 26 CompositeConstruct 35 43 - 46: 45(ptr) AccessChain 13 15 - 47: 25 CompositeExtract 44 0 - 49: 48(ptr) AccessChain 46 15 - 50: 24(bool) CompositeExtract 47 0 - 52: 6(int) Select 50 51 29 - 54: 53(ptr) AccessChain 49 15 - Store 54 52 - 55: 24(bool) CompositeExtract 47 1 - 57: 6(int) Select 55 51 29 - 58: 53(ptr) AccessChain 49 56 - Store 58 57 - 59: 24(bool) CompositeExtract 47 2 - 61: 6(int) Select 59 51 29 - 62: 53(ptr) AccessChain 49 60 - Store 62 61 - 63: 25 CompositeExtract 44 1 - 64: 48(ptr) AccessChain 46 56 - 65: 24(bool) CompositeExtract 63 0 - 66: 6(int) Select 65 51 29 - 67: 53(ptr) AccessChain 64 15 - Store 67 66 - 68: 24(bool) CompositeExtract 63 1 - 69: 6(int) Select 68 51 29 - 70: 53(ptr) AccessChain 64 56 - Store 70 69 - 71: 24(bool) CompositeExtract 63 2 - 72: 6(int) Select 71 51 29 - 73: 53(ptr) AccessChain 64 60 - Store 73 72 - Store 77(color) 79 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.localAggregates.frag.out b/deps/glslang/Test/baseResults/spv.localAggregates.frag.out deleted file mode 100644 index 637fb6d7..00000000 --- a/deps/glslang/Test/baseResults/spv.localAggregates.frag.out +++ /dev/null @@ -1,222 +0,0 @@ -spv.localAggregates.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 136 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 15 40 90 98 108 134 135 - ExecutionMode 4 OriginUpperLeft - Source GLSL 400 - Name 4 "main" - Name 8 "s1" - MemberName 8(s1) 0 "i" - MemberName 8(s1) 1 "f" - Name 10 "s2" - MemberName 10(s2) 0 "i" - MemberName 10(s2) 1 "f" - MemberName 10(s2) 2 "s1_1" - MemberName 10(s2) 3 "bleh" - Name 12 "locals2" - Name 13 "s3" - MemberName 13(s3) 0 "s2_1" - MemberName 13(s3) 1 "i" - MemberName 13(s3) 2 "f" - MemberName 13(s3) 3 "s1_1" - Name 15 "foo3" - Name 36 "localFArray" - Name 40 "coord" - Name 49 "localIArray" - Name 68 "x" - Name 70 "localArray" - Name 75 "i" - Name 84 "a" - Name 90 "condition" - Name 98 "color" - Name 108 "gl_FragColor" - Name 128 "samp2D" - Name 134 "foo" - Name 135 "foo2" - Decorate 15(foo3) Flat - Decorate 15(foo3) Location 9 - Decorate 40(coord) Location 0 - Decorate 90(condition) Flat - Decorate 90(condition) Location 18 - Decorate 98(color) Location 1 - Decorate 108(gl_FragColor) Location 0 - Decorate 128(samp2D) DescriptorSet 0 - Decorate 128(samp2D) Binding 0 - Decorate 134(foo) Flat - Decorate 134(foo) Location 2 - Decorate 135(foo2) Flat - Decorate 135(foo2) Location 4 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypeFloat 32 - 8(s1): TypeStruct 6(int) 7(float) - 9: TypeVector 7(float) 4 - 10(s2): TypeStruct 6(int) 7(float) 8(s1) 9(fvec4) - 11: TypePointer Function 10(s2) - 13(s3): TypeStruct 10(s2) 6(int) 7(float) 8(s1) - 14: TypePointer Input 13(s3) - 15(foo3): 14(ptr) Variable Input - 16: 6(int) Constant 0 - 17: TypePointer Input 10(s2) - 20: TypePointer Input 6(int) - 23: TypeBool - 27: 6(int) Constant 2 - 28: 6(int) Constant 1 - 29: 7(float) Constant 1065353216 - 30: TypePointer Function 7(float) - 32: TypeInt 32 0 - 33: 32(int) Constant 16 - 34: TypeArray 7(float) 33 - 35: TypePointer Function 34 - 37: 6(int) Constant 4 - 38: TypeVector 7(float) 2 - 39: TypePointer Input 38(fvec2) - 40(coord): 39(ptr) Variable Input - 41: 32(int) Constant 0 - 42: TypePointer Input 7(float) - 46: 32(int) Constant 8 - 47: TypeArray 6(int) 46 - 48: TypePointer Function 47 - 52: TypePointer Function 6(int) - 69: 6(int) Constant 5 - 82: 6(int) Constant 16 - 86: 7(float) Constant 0 - 90(condition): 20(ptr) Variable Input - 96: 6(int) Constant 3 - 97: TypePointer Input 9(fvec4) - 98(color): 97(ptr) Variable Input - 100: TypePointer Function 9(fvec4) - 102: 32(int) Constant 1 - 105: 32(int) Constant 2 - 107: TypePointer Output 9(fvec4) -108(gl_FragColor): 107(ptr) Variable Output - 125: TypeImage 7(float) 2D sampled format:Unknown - 126: TypeSampledImage 125 - 127: TypePointer UniformConstant 126 - 128(samp2D): 127(ptr) Variable UniformConstant - 133: TypePointer Input 8(s1) - 134(foo): 133(ptr) Variable Input - 135(foo2): 17(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 12(locals2): 11(ptr) Variable Function - 36(localFArray): 35(ptr) Variable Function - 49(localIArray): 48(ptr) Variable Function - 68(x): 52(ptr) Variable Function - 70(localArray): 35(ptr) Variable Function - 75(i): 52(ptr) Variable Function - 84(a): 35(ptr) Variable Function - 18: 17(ptr) AccessChain 15(foo3) 16 - 19: 10(s2) Load 18 - Store 12(locals2) 19 - 21: 20(ptr) AccessChain 15(foo3) 16 16 - 22: 6(int) Load 21 - 24: 23(bool) SGreaterThan 22 16 - SelectionMerge 26 None - BranchConditional 24 25 54 - 25: Label - 31: 30(ptr) AccessChain 12(locals2) 27 28 - Store 31 29 - 43: 42(ptr) AccessChain 40(coord) 41 - 44: 7(float) Load 43 - 45: 30(ptr) AccessChain 36(localFArray) 37 - Store 45 44 - 50: 20(ptr) AccessChain 15(foo3) 16 16 - 51: 6(int) Load 50 - 53: 52(ptr) AccessChain 49(localIArray) 27 - Store 53 51 - Branch 26 - 54: Label - 55: 42(ptr) AccessChain 40(coord) 41 - 56: 7(float) Load 55 - 57: 30(ptr) AccessChain 12(locals2) 27 28 - Store 57 56 - 58: 30(ptr) AccessChain 36(localFArray) 37 - Store 58 29 - 59: 52(ptr) AccessChain 49(localIArray) 27 - Store 59 16 - Branch 26 - 26: Label - 60: 52(ptr) AccessChain 49(localIArray) 27 - 61: 6(int) Load 60 - 62: 23(bool) IEqual 61 16 - SelectionMerge 64 None - BranchConditional 62 63 64 - 63: Label - 65: 30(ptr) AccessChain 36(localFArray) 37 - 66: 7(float) Load 65 - 67: 7(float) FAdd 66 29 - Store 65 67 - Branch 64 - 64: Label - Store 68(x) 69 - 71: 6(int) Load 68(x) - 72: 42(ptr) AccessChain 40(coord) 41 - 73: 7(float) Load 72 - 74: 30(ptr) AccessChain 70(localArray) 71 - Store 74 73 - Store 75(i) 16 - Branch 76 - 76: Label - LoopMerge 78 79 None - Branch 80 - 80: Label - 81: 6(int) Load 75(i) - 83: 23(bool) SLessThan 81 82 - BranchConditional 83 77 78 - 77: Label - 85: 6(int) Load 75(i) - 87: 30(ptr) AccessChain 84(a) 85 - Store 87 86 - Branch 79 - 79: Label - 88: 6(int) Load 75(i) - 89: 6(int) IAdd 88 28 - Store 75(i) 89 - Branch 76 - 78: Label - 91: 6(int) Load 90(condition) - 92: 23(bool) IEqual 91 28 - SelectionMerge 94 None - BranchConditional 92 93 94 - 93: Label - 95: 34 Load 70(localArray) - Store 84(a) 95 - Branch 94 - 94: Label - 99: 9(fvec4) Load 98(color) - 101: 100(ptr) AccessChain 12(locals2) 96 - Store 101 99 - 103: 42(ptr) AccessChain 40(coord) 102 - 104: 7(float) Load 103 - 106: 30(ptr) AccessChain 12(locals2) 96 105 - Store 106 104 - 109: 100(ptr) AccessChain 12(locals2) 96 - 110: 9(fvec4) Load 109 - 111: 30(ptr) AccessChain 36(localFArray) 37 - 112: 7(float) Load 111 - 113: 30(ptr) AccessChain 12(locals2) 27 28 - 114: 7(float) Load 113 - 115: 7(float) FAdd 112 114 - 116: 6(int) Load 68(x) - 117: 30(ptr) AccessChain 70(localArray) 116 - 118: 7(float) Load 117 - 119: 7(float) FAdd 115 118 - 120: 6(int) Load 68(x) - 121: 30(ptr) AccessChain 84(a) 120 - 122: 7(float) Load 121 - 123: 7(float) FAdd 119 122 - 124: 9(fvec4) VectorTimesScalar 110 123 - 129: 126 Load 128(samp2D) - 130: 38(fvec2) Load 40(coord) - 131: 9(fvec4) ImageSampleImplicitLod 129 130 - 132: 9(fvec4) FMul 124 131 - Store 108(gl_FragColor) 132 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.loops.frag.out b/deps/glslang/Test/baseResults/spv.loops.frag.out deleted file mode 100644 index 7178f358..00000000 --- a/deps/glslang/Test/baseResults/spv.loops.frag.out +++ /dev/null @@ -1,1135 +0,0 @@ -spv.loops.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 725 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 11 54 57 71 106 114 118 131 137 157 160 171 308 344 350 366 380 418 450 469 512 544 552 562 588 615 624 629 649 687 698 - ExecutionMode 4 OriginUpperLeft - Source GLSL 140 - Name 4 "main" - Name 9 "color" - Name 11 "BaseColor" - Name 54 "d" - Name 57 "bigColor" - Name 71 "bigColor1_1" - Name 106 "d2" - Name 114 "d3" - Name 118 "bigColor1_2" - Name 131 "bigColor1_3" - Name 137 "d4" - Name 148 "i" - Name 157 "Count" - Name 160 "bigColor2" - Name 171 "bigColor3" - Name 179 "i" - Name 195 "i" - Name 231 "i" - Name 254 "i" - Name 279 "i" - Name 308 "bigColor4" - Name 344 "bigColor5" - Name 350 "d5" - Name 366 "d6" - Name 380 "bigColor6" - Name 418 "d7" - Name 450 "bigColor7" - Name 469 "d8" - Name 512 "d9" - Name 544 "d10" - Name 552 "d11" - Name 562 "d12" - Name 588 "bigColor8" - Name 615 "gl_FragColor" - Name 624 "d14" - Name 629 "d15" - Name 649 "d16" - Name 687 "d18" - Name 698 "d17" - Decorate 11(BaseColor) Location 11 - Decorate 54(d) Location 12 - Decorate 57(bigColor) Location 0 - Decorate 71(bigColor1_1) Location 1 - Decorate 106(d2) Location 13 - Decorate 114(d3) Location 14 - Decorate 118(bigColor1_2) Location 2 - Decorate 131(bigColor1_3) Location 3 - Decorate 137(d4) Location 15 - Decorate 157(Count) Flat - Decorate 157(Count) Location 29 - Decorate 160(bigColor2) Location 4 - Decorate 171(bigColor3) Location 5 - Decorate 308(bigColor4) Location 6 - Decorate 344(bigColor5) Location 7 - Decorate 350(d5) Location 16 - Decorate 366(d6) Location 17 - Decorate 380(bigColor6) Location 8 - Decorate 418(d7) Location 18 - Decorate 450(bigColor7) Location 9 - Decorate 469(d8) Location 19 - Decorate 512(d9) Location 20 - Decorate 544(d10) Location 21 - Decorate 552(d11) Location 22 - Decorate 562(d12) Location 23 - Decorate 588(bigColor8) Location 10 - Decorate 615(gl_FragColor) Location 0 - Decorate 624(d14) Location 24 - Decorate 629(d15) Location 25 - Decorate 649(d16) Location 26 - Decorate 687(d18) Location 28 - Decorate 698(d17) Location 27 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: TypePointer Input 7(fvec4) - 11(BaseColor): 10(ptr) Variable Input - 18: TypeBool - 19: 18(bool) ConstantTrue - 20: TypeInt 32 0 - 21: 20(int) Constant 0 - 22: TypePointer Function 6(float) - 25: 6(float) Constant 1051260355 - 29: 7(fvec4) ConstantComposite 25 25 25 25 - 35: 6(float) Constant 1059648963 - 39: 7(fvec4) ConstantComposite 35 35 35 35 - 53: TypePointer Input 6(float) - 54(d): 53(ptr) Variable Input - 57(bigColor): 10(ptr) Variable Input - 66: 20(int) Constant 2 - 71(bigColor1_1): 10(ptr) Variable Input - 75: 20(int) Constant 3 - 93: 6(float) Constant 1109917696 - 96: 6(float) Constant 1065353216 - 106(d2): 53(ptr) Variable Input - 111: 20(int) Constant 1 - 114(d3): 53(ptr) Variable Input -118(bigColor1_2): 10(ptr) Variable Input -131(bigColor1_3): 10(ptr) Variable Input - 137(d4): 53(ptr) Variable Input - 146: TypeInt 32 1 - 147: TypePointer Function 146(int) - 149: 146(int) Constant 0 - 156: TypePointer Input 146(int) - 157(Count): 156(ptr) Variable Input - 160(bigColor2): 10(ptr) Variable Input - 165: 146(int) Constant 1 - 171(bigColor3): 10(ptr) Variable Input - 186: 146(int) Constant 42 - 202: 146(int) Constant 100 - 206: 6(float) Constant 1101004800 - 238: 146(int) Constant 120 - 308(bigColor4): 10(ptr) Variable Input - 344(bigColor5): 10(ptr) Variable Input - 350(d5): 53(ptr) Variable Input - 366(d6): 53(ptr) Variable Input - 380(bigColor6): 10(ptr) Variable Input - 418(d7): 53(ptr) Variable Input - 445: 6(float) Constant 0 - 450(bigColor7): 10(ptr) Variable Input - 469(d8): 53(ptr) Variable Input - 486: 6(float) Constant 1073741824 - 512(d9): 53(ptr) Variable Input - 528: 6(float) Constant 1084227584 - 544(d10): 53(ptr) Variable Input - 552(d11): 53(ptr) Variable Input - 562(d12): 53(ptr) Variable Input - 586: 6(float) Constant 1092616192 - 588(bigColor8): 10(ptr) Variable Input - 614: TypePointer Output 7(fvec4) -615(gl_FragColor): 614(ptr) Variable Output - 624(d14): 53(ptr) Variable Input - 629(d15): 53(ptr) Variable Input - 649(d16): 53(ptr) Variable Input - 687(d18): 53(ptr) Variable Input - 698(d17): 53(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 9(color): 8(ptr) Variable Function - 148(i): 147(ptr) Variable Function - 179(i): 147(ptr) Variable Function - 195(i): 147(ptr) Variable Function - 231(i): 147(ptr) Variable Function - 254(i): 147(ptr) Variable Function - 279(i): 147(ptr) Variable Function - 12: 7(fvec4) Load 11(BaseColor) - Store 9(color) 12 - Branch 13 - 13: Label - LoopMerge 15 16 None - Branch 17 - 17: Label - BranchConditional 19 14 15 - 14: Label - 23: 22(ptr) AccessChain 9(color) 21 - 24: 6(float) Load 23 - 26: 18(bool) FOrdLessThan 24 25 - SelectionMerge 28 None - BranchConditional 26 27 28 - 27: Label - 30: 7(fvec4) Load 9(color) - 31: 7(fvec4) FAdd 30 29 - Store 9(color) 31 - Branch 15 - 28: Label - 33: 22(ptr) AccessChain 9(color) 21 - 34: 6(float) Load 33 - 36: 18(bool) FOrdLessThan 34 35 - SelectionMerge 38 None - BranchConditional 36 37 38 - 37: Label - 40: 7(fvec4) Load 9(color) - 41: 7(fvec4) FAdd 40 39 - Store 9(color) 41 - Branch 15 - 38: Label - 43: 7(fvec4) Load 9(color) - 44: 7(fvec4) FAdd 43 29 - Store 9(color) 44 - Branch 15 - 16: Label - Branch 13 - 15: Label - Branch 46 - 46: Label - LoopMerge 48 49 None - Branch 50 - 50: Label - 51: 22(ptr) AccessChain 9(color) 21 - 52: 6(float) Load 51 - 55: 6(float) Load 54(d) - 56: 18(bool) FOrdLessThan 52 55 - BranchConditional 56 47 48 - 47: Label - 58: 7(fvec4) Load 57(bigColor) - 59: 7(fvec4) Load 9(color) - 60: 7(fvec4) FAdd 59 58 - Store 9(color) 60 - Branch 49 - 49: Label - Branch 46 - 48: Label - Branch 61 - 61: Label - LoopMerge 63 64 None - Branch 65 - 65: Label - 67: 22(ptr) AccessChain 9(color) 66 - 68: 6(float) Load 67 - 69: 6(float) Load 54(d) - 70: 18(bool) FOrdLessThan 68 69 - BranchConditional 70 62 63 - 62: Label - 72: 7(fvec4) Load 71(bigColor1_1) - 73: 7(fvec4) Load 9(color) - 74: 7(fvec4) FAdd 73 72 - Store 9(color) 74 - 76: 22(ptr) AccessChain 9(color) 75 - 77: 6(float) Load 76 - 78: 6(float) Load 54(d) - 79: 18(bool) FOrdLessThan 77 78 - SelectionMerge 81 None - BranchConditional 79 80 81 - 80: Label - Branch 64 - 81: Label - 83: 7(fvec4) Load 71(bigColor1_1) - 84: 7(fvec4) Load 9(color) - 85: 7(fvec4) FAdd 84 83 - Store 9(color) 85 - Branch 64 - 64: Label - Branch 61 - 63: Label - Branch 86 - 86: Label - LoopMerge 88 89 None - Branch 90 - 90: Label - 91: 22(ptr) AccessChain 9(color) 21 - 92: 6(float) Load 91 - 94: 18(bool) FOrdLessThan 92 93 - BranchConditional 94 87 88 - 87: Label - 95: 7(fvec4) Load 9(color) - 97: 7(fvec4) CompositeConstruct 96 96 96 96 - 98: 7(fvec4) FAdd 95 97 - Store 9(color) 98 - Branch 89 - 89: Label - Branch 86 - 88: Label - Branch 99 - 99: Label - LoopMerge 101 102 None - Branch 103 - 103: Label - 104: 22(ptr) AccessChain 9(color) 75 - 105: 6(float) Load 104 - 107: 6(float) Load 106(d2) - 108: 18(bool) FOrdLessThan 105 107 - SelectionMerge 110 None - BranchConditional 108 109 110 - 109: Label - 112: 22(ptr) AccessChain 9(color) 111 - 113: 6(float) Load 112 - 115: 6(float) Load 114(d3) - 116: 18(bool) FOrdLessThan 113 115 - Branch 110 - 110: Label - 117: 18(bool) Phi 108 103 116 109 - BranchConditional 117 100 101 - 100: Label - 119: 7(fvec4) Load 118(bigColor1_2) - 120: 7(fvec4) Load 9(color) - 121: 7(fvec4) FAdd 120 119 - Store 9(color) 121 - Branch 102 - 102: Label - Branch 99 - 101: Label - Branch 122 - 122: Label - LoopMerge 124 125 None - Branch 126 - 126: Label - 127: 22(ptr) AccessChain 9(color) 66 - 128: 6(float) Load 127 - 129: 6(float) Load 114(d3) - 130: 18(bool) FOrdLessThan 128 129 - BranchConditional 130 123 124 - 123: Label - 132: 7(fvec4) Load 131(bigColor1_3) - 133: 7(fvec4) Load 9(color) - 134: 7(fvec4) FAdd 133 132 - Store 9(color) 134 - 135: 22(ptr) AccessChain 9(color) 111 - 136: 6(float) Load 135 - 138: 6(float) Load 137(d4) - 139: 18(bool) FOrdLessThan 136 138 - SelectionMerge 141 None - BranchConditional 139 140 141 - 140: Label - Branch 124 - 141: Label - 143: 7(fvec4) Load 131(bigColor1_3) - 144: 7(fvec4) Load 9(color) - 145: 7(fvec4) FAdd 144 143 - Store 9(color) 145 - Branch 125 - 125: Label - Branch 122 - 124: Label - Store 148(i) 149 - Branch 150 - 150: Label - LoopMerge 152 153 None - Branch 154 - 154: Label - 155: 146(int) Load 148(i) - 158: 146(int) Load 157(Count) - 159: 18(bool) SLessThan 155 158 - BranchConditional 159 151 152 - 151: Label - 161: 7(fvec4) Load 160(bigColor2) - 162: 7(fvec4) Load 9(color) - 163: 7(fvec4) FAdd 162 161 - Store 9(color) 163 - Branch 153 - 153: Label - 164: 146(int) Load 148(i) - 166: 146(int) IAdd 164 165 - Store 148(i) 166 - Branch 150 - 152: Label - Branch 167 - 167: Label - LoopMerge 169 170 None - Branch 168 - 168: Label - 172: 7(fvec4) Load 171(bigColor3) - 173: 7(fvec4) Load 9(color) - 174: 7(fvec4) FAdd 173 172 - Store 9(color) 174 - Branch 170 - 170: Label - 175: 22(ptr) AccessChain 9(color) 21 - 176: 6(float) Load 175 - 177: 6(float) Load 106(d2) - 178: 18(bool) FOrdLessThan 176 177 - BranchConditional 178 167 169 - 169: Label - Store 179(i) 149 - Branch 180 - 180: Label - LoopMerge 182 183 None - Branch 184 - 184: Label - 185: 146(int) Load 179(i) - 187: 18(bool) SLessThan 185 186 - BranchConditional 187 181 182 - 181: Label - 188: 6(float) Load 114(d3) - 189: 22(ptr) AccessChain 9(color) 66 - 190: 6(float) Load 189 - 191: 6(float) FAdd 190 188 - 192: 22(ptr) AccessChain 9(color) 66 - Store 192 191 - Branch 183 - 183: Label - 193: 146(int) Load 179(i) - 194: 146(int) IAdd 193 165 - Store 179(i) 194 - Branch 180 - 182: Label - Store 195(i) 149 - Branch 196 - 196: Label - LoopMerge 198 199 None - Branch 200 - 200: Label - 201: 146(int) Load 195(i) - 203: 18(bool) SLessThan 201 202 - BranchConditional 203 197 198 - 197: Label - 204: 22(ptr) AccessChain 9(color) 66 - 205: 6(float) Load 204 - 207: 18(bool) FOrdLessThan 205 206 - SelectionMerge 209 None - BranchConditional 207 208 213 - 208: Label - 210: 22(ptr) AccessChain 9(color) 21 - 211: 6(float) Load 210 - 212: 6(float) FAdd 211 96 - Store 210 212 - Branch 209 - 213: Label - 214: 22(ptr) AccessChain 9(color) 111 - 215: 6(float) Load 214 - 216: 6(float) FAdd 215 96 - Store 214 216 - Branch 209 - 209: Label - 217: 22(ptr) AccessChain 9(color) 75 - 218: 6(float) Load 217 - 219: 18(bool) FOrdLessThan 218 206 - SelectionMerge 221 None - BranchConditional 219 220 221 - 220: Label - 222: 22(ptr) AccessChain 9(color) 66 - 223: 6(float) Load 222 - 224: 22(ptr) AccessChain 9(color) 111 - 225: 6(float) Load 224 - 226: 18(bool) FOrdGreaterThan 223 225 - SelectionMerge 228 None - BranchConditional 226 227 228 - 227: Label - Branch 228 - 228: Label - Branch 221 - 221: Label - Branch 199 - 199: Label - 229: 146(int) Load 195(i) - 230: 146(int) IAdd 229 165 - Store 195(i) 230 - Branch 196 - 198: Label - Store 231(i) 149 - Branch 232 - 232: Label - LoopMerge 234 235 None - Branch 236 - 236: Label - 237: 146(int) Load 231(i) - 239: 18(bool) SLessThan 237 238 - BranchConditional 239 233 234 - 233: Label - 240: 22(ptr) AccessChain 9(color) 66 - 241: 6(float) Load 240 - 242: 18(bool) FOrdLessThan 241 206 - SelectionMerge 244 None - BranchConditional 242 243 248 - 243: Label - 245: 22(ptr) AccessChain 9(color) 21 - 246: 6(float) Load 245 - 247: 6(float) FAdd 246 96 - Store 245 247 - Branch 244 - 248: Label - 249: 22(ptr) AccessChain 9(color) 111 - 250: 6(float) Load 249 - 251: 6(float) FAdd 250 96 - Store 249 251 - Branch 244 - 244: Label - Branch 235 - 235: Label - 252: 146(int) Load 231(i) - 253: 146(int) IAdd 252 165 - Store 231(i) 253 - Branch 232 - 234: Label - Store 254(i) 149 - Branch 255 - 255: Label - LoopMerge 257 258 None - Branch 259 - 259: Label - 260: 146(int) Load 254(i) - 261: 18(bool) SLessThan 260 186 - BranchConditional 261 256 257 - 256: Label - 262: 6(float) Load 114(d3) - 263: 22(ptr) AccessChain 9(color) 66 - 264: 6(float) Load 263 - 265: 6(float) FAdd 264 262 - 266: 22(ptr) AccessChain 9(color) 66 - Store 266 265 - 267: 22(ptr) AccessChain 9(color) 21 - 268: 6(float) Load 267 - 269: 6(float) Load 137(d4) - 270: 18(bool) FOrdLessThan 268 269 - SelectionMerge 272 None - BranchConditional 270 271 272 - 271: Label - Branch 258 - 272: Label - 274: 22(ptr) AccessChain 9(color) 75 - 275: 6(float) Load 274 - 276: 6(float) FAdd 275 96 - Store 274 276 - Branch 258 - 258: Label - 277: 146(int) Load 254(i) - 278: 146(int) IAdd 277 165 - Store 254(i) 278 - Branch 255 - 257: Label - Store 279(i) 149 - Branch 280 - 280: Label - LoopMerge 282 283 None - Branch 284 - 284: Label - 285: 146(int) Load 279(i) - 286: 18(bool) SLessThan 285 186 - BranchConditional 286 281 282 - 281: Label - 287: 6(float) Load 114(d3) - 288: 22(ptr) AccessChain 9(color) 66 - 289: 6(float) Load 288 - 290: 6(float) FAdd 289 287 - 291: 22(ptr) AccessChain 9(color) 66 - Store 291 290 - 292: 22(ptr) AccessChain 9(color) 21 - 293: 6(float) Load 292 - 294: 6(float) Load 137(d4) - 295: 18(bool) FOrdLessThan 293 294 - SelectionMerge 297 None - BranchConditional 295 296 297 - 296: Label - Branch 282 - 297: Label - 299: 22(ptr) AccessChain 9(color) 75 - 300: 6(float) Load 299 - 301: 6(float) FAdd 300 96 - Store 299 301 - Branch 283 - 283: Label - 302: 146(int) Load 279(i) - 303: 146(int) IAdd 302 165 - Store 279(i) 303 - Branch 280 - 282: Label - Branch 304 - 304: Label - LoopMerge 306 307 None - Branch 305 - 305: Label - 309: 7(fvec4) Load 308(bigColor4) - 310: 7(fvec4) Load 9(color) - 311: 7(fvec4) FAdd 310 309 - Store 9(color) 311 - 312: 22(ptr) AccessChain 9(color) 21 - 313: 6(float) Load 312 - 314: 6(float) Load 137(d4) - 315: 18(bool) FOrdLessThan 313 314 - SelectionMerge 317 None - BranchConditional 315 316 317 - 316: Label - Branch 307 - 317: Label - 319: 22(ptr) AccessChain 9(color) 111 - 320: 6(float) Load 319 - 321: 6(float) Load 137(d4) - 322: 18(bool) FOrdLessThan 320 321 - SelectionMerge 324 None - BranchConditional 322 323 330 - 323: Label - 325: 6(float) Load 137(d4) - 326: 22(ptr) AccessChain 9(color) 111 - 327: 6(float) Load 326 - 328: 6(float) FAdd 327 325 - 329: 22(ptr) AccessChain 9(color) 111 - Store 329 328 - Branch 324 - 330: Label - 331: 6(float) Load 137(d4) - 332: 22(ptr) AccessChain 9(color) 21 - 333: 6(float) Load 332 - 334: 6(float) FAdd 333 331 - 335: 22(ptr) AccessChain 9(color) 21 - Store 335 334 - Branch 324 - 324: Label - Branch 307 - 307: Label - 336: 22(ptr) AccessChain 9(color) 66 - 337: 6(float) Load 336 - 338: 6(float) Load 137(d4) - 339: 18(bool) FOrdLessThan 337 338 - BranchConditional 339 304 306 - 306: Label - Branch 340 - 340: Label - LoopMerge 342 343 None - Branch 341 - 341: Label - 345: 7(fvec4) Load 344(bigColor5) - 346: 7(fvec4) Load 9(color) - 347: 7(fvec4) FAdd 346 345 - Store 9(color) 347 - 348: 22(ptr) AccessChain 9(color) 111 - 349: 6(float) Load 348 - 351: 6(float) Load 350(d5) - 352: 18(bool) FOrdLessThan 349 351 - SelectionMerge 354 None - BranchConditional 352 353 354 - 353: Label - 355: 6(float) Load 350(d5) - 356: 22(ptr) AccessChain 9(color) 111 - 357: 6(float) Load 356 - 358: 6(float) FAdd 357 355 - 359: 22(ptr) AccessChain 9(color) 111 - Store 359 358 - Branch 354 - 354: Label - Branch 343 - 343: Label - 360: 22(ptr) AccessChain 9(color) 21 - 361: 6(float) Load 360 - 362: 6(float) Load 350(d5) - 363: 18(bool) FOrdLessThan 361 362 - BranchConditional 363 340 342 - 342: Label - 364: 22(ptr) AccessChain 9(color) 21 - 365: 6(float) Load 364 - 367: 6(float) Load 366(d6) - 368: 18(bool) FOrdLessThan 365 367 - SelectionMerge 370 None - BranchConditional 368 369 384 - 369: Label - Branch 371 - 371: Label - LoopMerge 373 374 None - Branch 375 - 375: Label - 376: 22(ptr) AccessChain 9(color) 111 - 377: 6(float) Load 376 - 378: 6(float) Load 366(d6) - 379: 18(bool) FOrdLessThan 377 378 - BranchConditional 379 372 373 - 372: Label - 381: 7(fvec4) Load 380(bigColor6) - 382: 7(fvec4) Load 9(color) - 383: 7(fvec4) FAdd 382 381 - Store 9(color) 383 - Branch 374 - 374: Label - Branch 371 - 373: Label - Branch 370 - 384: Label - Branch 385 - 385: Label - LoopMerge 387 388 None - Branch 389 - 389: Label - 390: 22(ptr) AccessChain 9(color) 66 - 391: 6(float) Load 390 - 392: 6(float) Load 366(d6) - 393: 18(bool) FOrdLessThan 391 392 - BranchConditional 393 386 387 - 386: Label - 394: 53(ptr) AccessChain 380(bigColor6) 66 - 395: 6(float) Load 394 - 396: 22(ptr) AccessChain 9(color) 66 - 397: 6(float) Load 396 - 398: 6(float) FAdd 397 395 - 399: 22(ptr) AccessChain 9(color) 66 - Store 399 398 - Branch 388 - 388: Label - Branch 385 - 387: Label - Branch 370 - 370: Label - 400: 22(ptr) AccessChain 9(color) 21 - 401: 6(float) Load 400 - 402: 6(float) Load 366(d6) - 403: 18(bool) FOrdLessThan 401 402 - SelectionMerge 405 None - BranchConditional 403 404 424 - 404: Label - Branch 406 - 406: Label - LoopMerge 408 409 None - Branch 410 - 410: Label - 411: 22(ptr) AccessChain 9(color) 111 - 412: 6(float) Load 411 - 413: 6(float) Load 366(d6) - 414: 18(bool) FOrdLessThan 412 413 - BranchConditional 414 407 408 - 407: Label - 415: 7(fvec4) Load 380(bigColor6) - 416: 7(fvec4) Load 9(color) - 417: 7(fvec4) FAdd 416 415 - Store 9(color) 417 - 419: 6(float) Load 418(d7) - 420: 18(bool) FOrdLessThan 419 96 - SelectionMerge 422 None - BranchConditional 420 421 422 - 421: Label - Branch 408 - 422: Label - Branch 409 - 409: Label - Branch 406 - 408: Label - Branch 405 - 424: Label - Branch 425 - 425: Label - LoopMerge 427 428 None - Branch 429 - 429: Label - 430: 22(ptr) AccessChain 9(color) 66 - 431: 6(float) Load 430 - 432: 6(float) Load 366(d6) - 433: 18(bool) FOrdLessThan 431 432 - BranchConditional 433 426 427 - 426: Label - 434: 53(ptr) AccessChain 380(bigColor6) 66 - 435: 6(float) Load 434 - 436: 22(ptr) AccessChain 9(color) 66 - 437: 6(float) Load 436 - 438: 6(float) FAdd 437 435 - 439: 22(ptr) AccessChain 9(color) 66 - Store 439 438 - Branch 428 - 428: Label - Branch 425 - 427: Label - Branch 405 - 405: Label - Branch 440 - 440: Label - LoopMerge 442 443 None - Branch 441 - 441: Label - 444: 6(float) Load 418(d7) - 446: 18(bool) FOrdLessThan 444 445 - SelectionMerge 448 None - BranchConditional 446 447 448 - 447: Label - Branch 442 - 448: Label - 451: 7(fvec4) Load 450(bigColor7) - 452: 7(fvec4) Load 9(color) - 453: 7(fvec4) FAdd 452 451 - Store 9(color) 453 - 454: 6(float) Load 418(d7) - 455: 18(bool) FOrdLessThan 454 96 - SelectionMerge 457 None - BranchConditional 455 456 457 - 456: Label - 458: 22(ptr) AccessChain 9(color) 66 - 459: 6(float) Load 458 - 460: 6(float) FAdd 459 96 - Store 458 460 - Branch 442 - 457: Label - 462: 7(fvec4) Load 11(BaseColor) - 463: 7(fvec4) Load 9(color) - 464: 7(fvec4) FAdd 463 462 - Store 9(color) 464 - Branch 443 - 443: Label - BranchConditional 19 440 442 - 442: Label - Branch 465 - 465: Label - LoopMerge 467 468 None - Branch 466 - 466: Label - 470: 6(float) Load 469(d8) - 471: 18(bool) FOrdLessThan 470 445 - SelectionMerge 473 None - BranchConditional 471 472 473 - 472: Label - Branch 467 - 473: Label - 475: 7(fvec4) Load 450(bigColor7) - 476: 7(fvec4) Load 9(color) - 477: 7(fvec4) FAdd 476 475 - Store 9(color) 477 - 478: 6(float) Load 469(d8) - 479: 18(bool) FOrdLessThan 478 96 - SelectionMerge 481 None - BranchConditional 479 480 481 - 480: Label - 482: 22(ptr) AccessChain 9(color) 66 - 483: 6(float) Load 482 - 484: 6(float) FAdd 483 96 - Store 482 484 - 485: 6(float) Load 469(d8) - 487: 18(bool) FOrdLessThan 485 486 - SelectionMerge 489 None - BranchConditional 487 488 493 - 488: Label - 490: 22(ptr) AccessChain 9(color) 111 - 491: 6(float) Load 490 - 492: 6(float) FAdd 491 96 - Store 490 492 - Branch 489 - 493: Label - 494: 22(ptr) AccessChain 9(color) 21 - 495: 6(float) Load 494 - 496: 6(float) FAdd 495 96 - Store 494 496 - Branch 489 - 489: Label - Branch 467 - 481: Label - 498: 7(fvec4) Load 11(BaseColor) - 499: 7(fvec4) Load 9(color) - 500: 7(fvec4) FAdd 499 498 - Store 9(color) 500 - Branch 468 - 468: Label - 501: 22(ptr) AccessChain 9(color) 66 - 502: 6(float) Load 501 - 503: 6(float) Load 469(d8) - 504: 18(bool) FOrdLessThan 502 503 - BranchConditional 504 465 467 - 467: Label - Branch 505 - 505: Label - LoopMerge 507 508 None - Branch 509 - 509: Label - 510: 22(ptr) AccessChain 9(color) 75 - 511: 6(float) Load 510 - 513: 6(float) Load 512(d9) - 514: 18(bool) FOrdLessThan 511 513 - BranchConditional 514 506 507 - 506: Label - 515: 6(float) Load 512(d9) - 516: 6(float) Load 469(d8) - 517: 18(bool) FOrdGreaterThan 515 516 - SelectionMerge 519 None - BranchConditional 517 518 519 - 518: Label - 520: 22(ptr) AccessChain 9(color) 21 - 521: 6(float) Load 520 - 522: 6(float) Load 418(d7) - 523: 18(bool) FOrdLessThanEqual 521 522 - SelectionMerge 525 None - BranchConditional 523 524 525 - 524: Label - 526: 22(ptr) AccessChain 9(color) 66 - 527: 6(float) Load 526 - 529: 18(bool) FOrdEqual 527 528 - SelectionMerge 531 None - BranchConditional 529 530 535 - 530: Label - 532: 22(ptr) AccessChain 9(color) 75 - 533: 6(float) Load 532 - 534: 6(float) FAdd 533 96 - Store 532 534 - Branch 531 - 535: Label - Branch 507 - 531: Label - Branch 525 - 525: Label - Branch 519 - 519: Label - Branch 508 - 508: Label - Branch 505 - 507: Label - Branch 537 - 537: Label - LoopMerge 539 540 None - Branch 541 - 541: Label - 542: 22(ptr) AccessChain 9(color) 66 - 543: 6(float) Load 542 - 545: 6(float) Load 544(d10) - 546: 18(bool) FOrdLessThan 543 545 - BranchConditional 546 538 539 - 538: Label - 547: 22(ptr) AccessChain 9(color) 111 - 548: 6(float) Load 547 - 549: 6(float) FAdd 548 96 - Store 547 549 - 550: 22(ptr) AccessChain 9(color) 111 - 551: 6(float) Load 550 - 553: 6(float) Load 552(d11) - 554: 18(bool) FOrdLessThan 551 553 - SelectionMerge 556 None - BranchConditional 554 555 556 - 555: Label - 557: 22(ptr) AccessChain 9(color) 66 - 558: 6(float) Load 557 - 559: 6(float) FAdd 558 96 - Store 557 559 - 560: 22(ptr) AccessChain 9(color) 75 - 561: 6(float) Load 560 - 563: 6(float) Load 562(d12) - 564: 18(bool) FOrdLessThan 561 563 - SelectionMerge 566 None - BranchConditional 564 565 570 - 565: Label - 567: 22(ptr) AccessChain 9(color) 75 - 568: 6(float) Load 567 - 569: 6(float) FAdd 568 96 - Store 567 569 - Branch 566 - 570: Label - 571: 22(ptr) AccessChain 9(color) 21 - 572: 6(float) Load 571 - 573: 6(float) FAdd 572 96 - Store 571 573 - Branch 566 - 566: Label - Branch 540 - 556: Label - 575: 7(fvec4) Load 9(color) - 576: 7(fvec4) CompositeConstruct 96 96 96 96 - 577: 7(fvec4) FAdd 575 576 - Store 9(color) 577 - Branch 539 - 540: Label - Branch 537 - 539: Label - Branch 579 - 579: Label - LoopMerge 581 582 None - Branch 583 - 583: Label - 584: 22(ptr) AccessChain 9(color) 21 - 585: 6(float) Load 584 - 587: 18(bool) FOrdLessThan 585 586 - BranchConditional 587 580 581 - 580: Label - 589: 7(fvec4) Load 588(bigColor8) - 590: 7(fvec4) Load 9(color) - 591: 7(fvec4) FAdd 590 589 - Store 9(color) 591 - 592: 22(ptr) AccessChain 9(color) 66 - 593: 6(float) Load 592 - 594: 6(float) Load 469(d8) - 595: 18(bool) FOrdLessThan 593 594 - SelectionMerge 597 None - BranchConditional 595 596 597 - 596: Label - 598: 22(ptr) AccessChain 9(color) 75 - 599: 6(float) Load 598 - 600: 6(float) Load 366(d6) - 601: 18(bool) FOrdLessThan 599 600 - SelectionMerge 603 None - BranchConditional 601 602 603 - 602: Label - Branch 582 - 603: Label - Branch 597 - 597: Label - 605: 53(ptr) AccessChain 588(bigColor8) 21 - 606: 6(float) Load 605 - 607: 22(ptr) AccessChain 9(color) 111 - 608: 6(float) Load 607 - 609: 6(float) FAdd 608 606 - 610: 22(ptr) AccessChain 9(color) 111 - Store 610 609 - Branch 582 - 582: Label - Branch 579 - 581: Label - 611: 7(fvec4) Load 9(color) - 612: 7(fvec4) CompositeConstruct 96 96 96 96 - 613: 7(fvec4) FAdd 611 612 - Store 9(color) 613 - 616: 7(fvec4) Load 9(color) - Store 615(gl_FragColor) 616 - Branch 617 - 617: Label - LoopMerge 619 620 None - Branch 621 - 621: Label - 622: 22(ptr) AccessChain 9(color) 21 - 623: 6(float) Load 622 - 625: 6(float) Load 624(d14) - 626: 18(bool) FOrdLessThan 623 625 - BranchConditional 626 618 619 - 618: Label - 627: 22(ptr) AccessChain 9(color) 111 - 628: 6(float) Load 627 - 630: 6(float) Load 629(d15) - 631: 18(bool) FOrdLessThan 628 630 - SelectionMerge 633 None - BranchConditional 631 632 635 - 632: Label - Return - 635: Label - 636: 7(fvec4) Load 9(color) - 637: 7(fvec4) CompositeConstruct 96 96 96 96 - 638: 7(fvec4) FAdd 636 637 - Store 9(color) 638 - Branch 633 - 633: Label - Branch 620 - 620: Label - Branch 617 - 619: Label - 639: 7(fvec4) Load 9(color) - 640: 7(fvec4) CompositeConstruct 96 96 96 96 - 641: 7(fvec4) FAdd 639 640 - Store 9(color) 641 - Branch 642 - 642: Label - LoopMerge 644 645 None - Branch 646 - 646: Label - 647: 22(ptr) AccessChain 9(color) 75 - 648: 6(float) Load 647 - 650: 6(float) Load 649(d16) - 651: 18(bool) FOrdLessThan 648 650 - BranchConditional 651 643 644 - 643: Label - 652: 22(ptr) AccessChain 9(color) 75 - 653: 6(float) Load 652 - 654: 6(float) FAdd 653 96 - Store 652 654 - Branch 645 - 645: Label - Branch 642 - 644: Label - Branch 655 - 655: Label - LoopMerge 657 658 None - Branch 659 - 659: Label - 660: 22(ptr) AccessChain 9(color) 75 - 661: 6(float) Load 660 - 662: 6(float) Load 106(d2) - 663: 18(bool) FOrdLessThan 661 662 - SelectionMerge 665 None - BranchConditional 663 664 665 - 664: Label - 666: 22(ptr) AccessChain 9(color) 111 - 667: 6(float) Load 666 - 668: 6(float) Load 114(d3) - 669: 18(bool) FOrdLessThan 667 668 - Branch 665 - 665: Label - 670: 18(bool) Phi 663 659 669 664 - BranchConditional 670 656 657 - 656: Label - 671: 7(fvec4) Load 118(bigColor1_2) - 672: 7(fvec4) Load 9(color) - 673: 7(fvec4) FAdd 672 671 - Store 9(color) 673 - 674: 22(ptr) AccessChain 9(color) 66 - 675: 6(float) Load 674 - 676: 6(float) Load 114(d3) - 677: 18(bool) FOrdLessThan 675 676 - SelectionMerge 679 None - BranchConditional 677 678 679 - 678: Label - Return - 679: Label - Branch 658 - 658: Label - Branch 655 - 657: Label - Branch 681 - 681: Label - LoopMerge 683 684 None - Branch 682 - 682: Label - 685: 22(ptr) AccessChain 9(color) 111 - 686: 6(float) Load 685 - 688: 6(float) Load 687(d18) - 689: 18(bool) FOrdLessThan 686 688 - SelectionMerge 691 None - BranchConditional 689 690 691 - 690: Label - Return - 691: Label - 693: 7(fvec4) Load 9(color) - 694: 7(fvec4) CompositeConstruct 96 96 96 96 - 695: 7(fvec4) FAdd 693 694 - Store 9(color) 695 - Branch 684 - 684: Label - 696: 22(ptr) AccessChain 9(color) 21 - 697: 6(float) Load 696 - 699: 6(float) Load 698(d17) - 700: 18(bool) FOrdLessThan 697 699 - BranchConditional 700 681 683 - 683: Label - Branch 701 - 701: Label - LoopMerge 703 704 None - Branch 705 - 705: Label - 706: 22(ptr) AccessChain 9(color) 111 - 707: 6(float) Load 706 - 708: 6(float) Load 649(d16) - 709: 18(bool) FOrdLessThan 707 708 - BranchConditional 709 702 703 - 702: Label - 710: 22(ptr) AccessChain 9(color) 75 - 711: 6(float) Load 710 - 712: 6(float) Load 649(d16) - 713: 18(bool) FOrdLessThan 711 712 - SelectionMerge 715 None - BranchConditional 713 714 717 - 714: Label - Kill - 717: Label - 718: 7(fvec4) Load 9(color) - 719: 7(fvec4) CompositeConstruct 96 96 96 96 - 720: 7(fvec4) FAdd 718 719 - Store 9(color) 720 - Branch 715 - 715: Label - Branch 704 - 704: Label - Branch 701 - 703: Label - 721: 7(fvec4) Load 9(color) - 722: 7(fvec4) CompositeConstruct 96 96 96 96 - 723: 7(fvec4) FAdd 721 722 - Store 9(color) 723 - 724: 7(fvec4) Load 9(color) - Store 615(gl_FragColor) 724 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.loopsArtificial.frag.out b/deps/glslang/Test/baseResults/spv.loopsArtificial.frag.out deleted file mode 100644 index 4de834db..00000000 --- a/deps/glslang/Test/baseResults/spv.loopsArtificial.frag.out +++ /dev/null @@ -1,258 +0,0 @@ -spv.loopsArtificial.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 158 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 11 17 27 80 140 142 143 144 145 146 147 148 149 150 151 152 153 154 157 - ExecutionMode 4 OriginUpperLeft - Source GLSL 140 - Name 4 "main" - Name 9 "color" - Name 11 "BaseColor" - Name 17 "bigColor4" - Name 27 "d4" - Name 80 "d13" - Name 140 "gl_FragColor" - Name 142 "bigColor" - Name 143 "bigColor1_1" - Name 144 "bigColor1_2" - Name 145 "bigColor1_3" - Name 146 "bigColor2" - Name 147 "bigColor3" - Name 148 "bigColor5" - Name 149 "bigColor6" - Name 150 "bigColor7" - Name 151 "bigColor8" - Name 152 "d" - Name 153 "d2" - Name 154 "d3" - Name 157 "Count" - Decorate 11(BaseColor) Location 11 - Decorate 17(bigColor4) Location 6 - Decorate 27(d4) Location 15 - Decorate 80(d13) Location 16 - Decorate 140(gl_FragColor) Location 0 - Decorate 142(bigColor) Location 0 - Decorate 143(bigColor1_1) Location 1 - Decorate 144(bigColor1_2) Location 2 - Decorate 145(bigColor1_3) Location 3 - Decorate 146(bigColor2) Location 4 - Decorate 147(bigColor3) Location 5 - Decorate 148(bigColor5) Location 7 - Decorate 149(bigColor6) Location 8 - Decorate 150(bigColor7) Location 9 - Decorate 151(bigColor8) Location 10 - Decorate 152(d) Location 12 - Decorate 153(d2) Location 13 - Decorate 154(d3) Location 14 - Decorate 157(Count) Flat - Decorate 157(Count) Location 17 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: TypePointer Input 7(fvec4) - 11(BaseColor): 10(ptr) Variable Input - 17(bigColor4): 10(ptr) Variable Input - 21: TypeInt 32 0 - 22: 21(int) Constant 0 - 23: TypePointer Function 6(float) - 26: TypePointer Input 6(float) - 27(d4): 26(ptr) Variable Input - 29: TypeBool - 33: 6(float) Constant 1073741824 - 34: 21(int) Constant 2 - 47: 6(float) Constant 1065353216 - 50: 21(int) Constant 1 - 77: 21(int) Constant 3 - 80(d13): 26(ptr) Variable Input - 139: TypePointer Output 7(fvec4) -140(gl_FragColor): 139(ptr) Variable Output - 142(bigColor): 10(ptr) Variable Input -143(bigColor1_1): 10(ptr) Variable Input -144(bigColor1_2): 10(ptr) Variable Input -145(bigColor1_3): 10(ptr) Variable Input - 146(bigColor2): 10(ptr) Variable Input - 147(bigColor3): 10(ptr) Variable Input - 148(bigColor5): 10(ptr) Variable Input - 149(bigColor6): 10(ptr) Variable Input - 150(bigColor7): 10(ptr) Variable Input - 151(bigColor8): 10(ptr) Variable Input - 152(d): 26(ptr) Variable Input - 153(d2): 26(ptr) Variable Input - 154(d3): 26(ptr) Variable Input - 155: TypeInt 32 1 - 156: TypePointer Input 155(int) - 157(Count): 156(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 9(color): 8(ptr) Variable Function - 12: 7(fvec4) Load 11(BaseColor) - Store 9(color) 12 - Branch 13 - 13: Label - LoopMerge 15 16 None - Branch 14 - 14: Label - 18: 7(fvec4) Load 17(bigColor4) - 19: 7(fvec4) Load 9(color) - 20: 7(fvec4) FAdd 19 18 - Store 9(color) 20 - 24: 23(ptr) AccessChain 9(color) 22 - 25: 6(float) Load 24 - 28: 6(float) Load 27(d4) - 30: 29(bool) FOrdLessThan 25 28 - SelectionMerge 32 None - BranchConditional 30 31 32 - 31: Label - 35: 23(ptr) AccessChain 9(color) 34 - 36: 6(float) Load 35 - 37: 6(float) FAdd 36 33 - 38: 23(ptr) AccessChain 9(color) 34 - Store 38 37 - 39: 23(ptr) AccessChain 9(color) 34 - 40: 6(float) Load 39 - 41: 6(float) Load 27(d4) - 42: 29(bool) FOrdLessThan 40 41 - SelectionMerge 44 None - BranchConditional 42 43 44 - 43: Label - 45: 23(ptr) AccessChain 9(color) 22 - 46: 6(float) Load 45 - 48: 6(float) FAdd 46 47 - Store 45 48 - Branch 16 - 44: Label - Branch 32 - 32: Label - 51: 23(ptr) AccessChain 9(color) 50 - 52: 6(float) Load 51 - 53: 6(float) Load 27(d4) - 54: 29(bool) FOrdLessThan 52 53 - SelectionMerge 56 None - BranchConditional 54 55 62 - 55: Label - 57: 6(float) Load 27(d4) - 58: 23(ptr) AccessChain 9(color) 50 - 59: 6(float) Load 58 - 60: 6(float) FAdd 59 57 - 61: 23(ptr) AccessChain 9(color) 50 - Store 61 60 - Branch 56 - 62: Label - 63: 6(float) Load 27(d4) - 64: 23(ptr) AccessChain 9(color) 22 - 65: 6(float) Load 64 - 66: 6(float) FAdd 65 63 - 67: 23(ptr) AccessChain 9(color) 22 - Store 67 66 - Branch 56 - 56: Label - Branch 16 - 16: Label - 68: 23(ptr) AccessChain 9(color) 34 - 69: 6(float) Load 68 - 70: 6(float) Load 27(d4) - 71: 29(bool) FOrdLessThan 69 70 - BranchConditional 71 13 15 - 15: Label - Branch 72 - 72: Label - LoopMerge 74 75 None - Branch 76 - 76: Label - 78: 23(ptr) AccessChain 9(color) 77 - 79: 6(float) Load 78 - 81: 6(float) Load 80(d13) - 82: 29(bool) FOrdLessThan 79 81 - BranchConditional 82 73 74 - 73: Label - 83: 23(ptr) AccessChain 9(color) 34 - 84: 6(float) Load 83 - 85: 6(float) Load 80(d13) - 86: 29(bool) FOrdLessThan 84 85 - SelectionMerge 88 None - BranchConditional 86 87 92 - 87: Label - 89: 7(fvec4) Load 9(color) - 90: 7(fvec4) CompositeConstruct 47 47 47 47 - 91: 7(fvec4) FAdd 89 90 - Store 9(color) 91 - Branch 88 - 92: Label - 93: 7(fvec4) Load 9(color) - 94: 7(fvec4) CompositeConstruct 47 47 47 47 - 95: 7(fvec4) FSub 93 94 - Store 9(color) 95 - Branch 88 - 88: Label - 96: 7(fvec4) Load 17(bigColor4) - 97: 7(fvec4) Load 9(color) - 98: 7(fvec4) FAdd 97 96 - Store 9(color) 98 - 99: 23(ptr) AccessChain 9(color) 22 - 100: 6(float) Load 99 - 101: 6(float) Load 27(d4) - 102: 29(bool) FOrdLessThan 100 101 - SelectionMerge 104 None - BranchConditional 102 103 104 - 103: Label - 105: 23(ptr) AccessChain 9(color) 34 - 106: 6(float) Load 105 - 107: 6(float) FAdd 106 33 - 108: 23(ptr) AccessChain 9(color) 34 - Store 108 107 - 109: 23(ptr) AccessChain 9(color) 34 - 110: 6(float) Load 109 - 111: 6(float) Load 27(d4) - 112: 29(bool) FOrdLessThan 110 111 - SelectionMerge 114 None - BranchConditional 112 113 114 - 113: Label - 115: 23(ptr) AccessChain 9(color) 22 - 116: 6(float) Load 115 - 117: 6(float) FAdd 116 47 - Store 115 117 - Branch 75 - 114: Label - Branch 104 - 104: Label - 119: 23(ptr) AccessChain 9(color) 50 - 120: 6(float) Load 119 - 121: 6(float) Load 27(d4) - 122: 29(bool) FOrdLessThan 120 121 - SelectionMerge 124 None - BranchConditional 122 123 130 - 123: Label - 125: 6(float) Load 27(d4) - 126: 23(ptr) AccessChain 9(color) 50 - 127: 6(float) Load 126 - 128: 6(float) FAdd 127 125 - 129: 23(ptr) AccessChain 9(color) 50 - Store 129 128 - Branch 124 - 130: Label - 131: 6(float) Load 27(d4) - 132: 23(ptr) AccessChain 9(color) 22 - 133: 6(float) Load 132 - 134: 6(float) FAdd 133 131 - 135: 23(ptr) AccessChain 9(color) 22 - Store 135 134 - Branch 124 - 124: Label - Branch 75 - 75: Label - Branch 72 - 74: Label - 136: 7(fvec4) Load 9(color) - 137: 7(fvec4) CompositeConstruct 47 47 47 47 - 138: 7(fvec4) FAdd 136 137 - Store 9(color) 138 - 141: 7(fvec4) Load 9(color) - Store 140(gl_FragColor) 141 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.looseUniformNoLoc.vert.out b/deps/glslang/Test/baseResults/spv.looseUniformNoLoc.vert.out deleted file mode 100644 index 55d1639c..00000000 --- a/deps/glslang/Test/baseResults/spv.looseUniformNoLoc.vert.out +++ /dev/null @@ -1,8 +0,0 @@ -spv.looseUniformNoLoc.vert -ERROR: spv.looseUniformNoLoc.vert:9: 'uv' : non-opaque uniform variables need a layout(location=L) -ERROR: 1 compilation errors. No code generated. - - -ERROR: Linking vertex stage: Missing entry point: Each stage requires one entry point - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.matFun.vert.out b/deps/glslang/Test/baseResults/spv.matFun.vert.out deleted file mode 100644 index 932018fa..00000000 --- a/deps/glslang/Test/baseResults/spv.matFun.vert.out +++ /dev/null @@ -1,157 +0,0 @@ -spv.matFun.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 103 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 76 81 - Source GLSL 400 - Name 4 "main" - Name 14 "xf(mf33;vf3;" - Name 12 "m" - Name 13 "v" - Name 21 "Mat3(mf44;" - Name 20 "m" - Name 26 "mxv(mf44;vf3;" - Name 24 "m4" - Name 25 "v" - Name 65 "param" - Name 74 "gl_PerVertex" - MemberName 74(gl_PerVertex) 0 "gl_Position" - MemberName 74(gl_PerVertex) 1 "gl_PointSize" - MemberName 74(gl_PerVertex) 2 "gl_ClipDistance" - Name 76 "" - Name 77 "bl" - MemberName 77(bl) 0 "m4" - MemberName 77(bl) 1 "m3" - Name 79 "bName" - Name 81 "v3" - Name 82 "param" - Name 86 "param" - Name 89 "param" - Name 93 "param" - MemberDecorate 74(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 74(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 74(gl_PerVertex) 2 BuiltIn ClipDistance - Decorate 74(gl_PerVertex) Block - MemberDecorate 77(bl) 0 ColMajor - MemberDecorate 77(bl) 0 Offset 0 - MemberDecorate 77(bl) 0 MatrixStride 16 - MemberDecorate 77(bl) 1 ColMajor - MemberDecorate 77(bl) 1 Offset 64 - MemberDecorate 77(bl) 1 MatrixStride 16 - Decorate 77(bl) Block - Decorate 79(bName) DescriptorSet 0 - Decorate 79(bName) Binding 0 - Decorate 81(v3) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 3 - 8: TypeMatrix 7(fvec3) 3 - 9: TypePointer Function 8 - 10: TypePointer Function 7(fvec3) - 11: TypeFunction 7(fvec3) 9(ptr) 10(ptr) - 16: TypeVector 6(float) 4 - 17: TypeMatrix 16(fvec4) 4 - 18: TypePointer Function 17 - 19: TypeFunction 8 18(ptr) - 23: TypeFunction 7(fvec3) 18(ptr) 10(ptr) - 33: TypeInt 32 1 - 34: 33(int) Constant 0 - 35: TypePointer Function 16(fvec4) - 39: 33(int) Constant 1 - 43: 33(int) Constant 2 - 47: 6(float) Constant 1065353216 - 48: 6(float) Constant 0 - 71: TypeInt 32 0 - 72: 71(int) Constant 1 - 73: TypeArray 6(float) 72 -74(gl_PerVertex): TypeStruct 16(fvec4) 6(float) 73 - 75: TypePointer Output 74(gl_PerVertex) - 76: 75(ptr) Variable Output - 77(bl): TypeStruct 17 8 - 78: TypePointer Uniform 77(bl) - 79(bName): 78(ptr) Variable Uniform - 80: TypePointer Input 7(fvec3) - 81(v3): 80(ptr) Variable Input - 83: TypePointer Uniform 17 - 90: TypePointer Uniform 8 - 101: TypePointer Output 16(fvec4) - 4(main): 2 Function None 3 - 5: Label - 82(param): 18(ptr) Variable Function - 86(param): 10(ptr) Variable Function - 89(param): 9(ptr) Variable Function - 93(param): 10(ptr) Variable Function - 84: 83(ptr) AccessChain 79(bName) 34 - 85: 17 Load 84 - Store 82(param) 85 - 87: 7(fvec3) Load 81(v3) - Store 86(param) 87 - 88: 7(fvec3) FunctionCall 26(mxv(mf44;vf3;) 82(param) 86(param) - 91: 90(ptr) AccessChain 79(bName) 39 - 92: 8 Load 91 - Store 89(param) 92 - 94: 7(fvec3) Load 81(v3) - Store 93(param) 94 - 95: 7(fvec3) FunctionCall 14(xf(mf33;vf3;) 89(param) 93(param) - 96: 7(fvec3) FAdd 88 95 - 97: 6(float) CompositeExtract 96 0 - 98: 6(float) CompositeExtract 96 1 - 99: 6(float) CompositeExtract 96 2 - 100: 16(fvec4) CompositeConstruct 97 98 99 47 - 102: 101(ptr) AccessChain 76 34 - Store 102 100 - Return - FunctionEnd -14(xf(mf33;vf3;): 7(fvec3) Function None 11 - 12(m): 9(ptr) FunctionParameter - 13(v): 10(ptr) FunctionParameter - 15: Label - 28: 7(fvec3) Load 13(v) - 29: 8 Load 12(m) - 30: 7(fvec3) VectorTimesMatrix 28 29 - ReturnValue 30 - FunctionEnd - 21(Mat3(mf44;): 8 Function None 19 - 20(m): 18(ptr) FunctionParameter - 22: Label - 36: 35(ptr) AccessChain 20(m) 34 - 37: 16(fvec4) Load 36 - 38: 7(fvec3) VectorShuffle 37 37 0 1 2 - 40: 35(ptr) AccessChain 20(m) 39 - 41: 16(fvec4) Load 40 - 42: 7(fvec3) VectorShuffle 41 41 0 1 2 - 44: 35(ptr) AccessChain 20(m) 43 - 45: 16(fvec4) Load 44 - 46: 7(fvec3) VectorShuffle 45 45 0 1 2 - 49: 6(float) CompositeExtract 38 0 - 50: 6(float) CompositeExtract 38 1 - 51: 6(float) CompositeExtract 38 2 - 52: 6(float) CompositeExtract 42 0 - 53: 6(float) CompositeExtract 42 1 - 54: 6(float) CompositeExtract 42 2 - 55: 6(float) CompositeExtract 46 0 - 56: 6(float) CompositeExtract 46 1 - 57: 6(float) CompositeExtract 46 2 - 58: 7(fvec3) CompositeConstruct 49 50 51 - 59: 7(fvec3) CompositeConstruct 52 53 54 - 60: 7(fvec3) CompositeConstruct 55 56 57 - 61: 8 CompositeConstruct 58 59 60 - ReturnValue 61 - FunctionEnd -26(mxv(mf44;vf3;): 7(fvec3) Function None 23 - 24(m4): 18(ptr) FunctionParameter - 25(v): 10(ptr) FunctionParameter - 27: Label - 65(param): 18(ptr) Variable Function - 64: 7(fvec3) Load 25(v) - 66: 17 Load 24(m4) - Store 65(param) 66 - 67: 8 FunctionCall 21(Mat3(mf44;) 65(param) - 68: 7(fvec3) VectorTimesMatrix 64 67 - ReturnValue 68 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.matrix.frag.out b/deps/glslang/Test/baseResults/spv.matrix.frag.out deleted file mode 100644 index a287cda7..00000000 --- a/deps/glslang/Test/baseResults/spv.matrix.frag.out +++ /dev/null @@ -1,340 +0,0 @@ -spv.matrix.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 286 - - Capability Shader - Capability Float64 - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 12 14 28 161 169 187 - ExecutionMode 4 OriginUpperLeft - Source GLSL 420 - Name 4 "main" - Name 10 "sum34" - Name 12 "m1" - Name 14 "m2" - Name 28 "f" - Name 140 "dm" - Name 159 "sum3" - Name 161 "v4" - Name 166 "sum4" - Name 169 "v3" - Name 174 "m43" - Name 179 "m4" - Name 187 "color" - Decorate 12(m1) Location 0 - Decorate 14(m2) Location 3 - Decorate 28(f) Location 6 - Decorate 161(v4) Location 8 - Decorate 169(v3) Location 7 - Decorate 187(color) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeMatrix 7(fvec4) 3 - 9: TypePointer Function 8 - 11: TypePointer Input 8 - 12(m1): 11(ptr) Variable Input - 14(m2): 11(ptr) Variable Input - 27: TypePointer Input 6(float) - 28(f): 27(ptr) Variable Input - 81: 6(float) Constant 1065353216 - 136: TypeFloat 64 - 137: TypeVector 136(float64_t) 4 - 138: TypeMatrix 137(f64vec4) 3 - 139: TypePointer Function 138 - 157: TypeVector 6(float) 3 - 158: TypePointer Function 157(fvec3) - 160: TypePointer Input 7(fvec4) - 161(v4): 160(ptr) Variable Input - 165: TypePointer Function 7(fvec4) - 168: TypePointer Input 157(fvec3) - 169(v3): 168(ptr) Variable Input - 172: TypeMatrix 157(fvec3) 4 - 173: TypePointer Function 172 - 177: TypeMatrix 7(fvec4) 4 - 178: TypePointer Function 177 - 186: TypePointer Output 7(fvec4) - 187(color): 186(ptr) Variable Output - 208: 6(float) Constant 0 - 270: TypeVector 6(float) 2 - 271: TypeMatrix 270(fvec2) 2 - 279: 6(float) Constant 1088841318 - 4(main): 2 Function None 3 - 5: Label - 10(sum34): 9(ptr) Variable Function - 140(dm): 139(ptr) Variable Function - 159(sum3): 158(ptr) Variable Function - 166(sum4): 165(ptr) Variable Function - 174(m43): 173(ptr) Variable Function - 179(m4): 178(ptr) Variable Function - 13: 8 Load 12(m1) - 15: 8 Load 14(m2) - 16: 7(fvec4) CompositeExtract 13 0 - 17: 7(fvec4) CompositeExtract 15 0 - 18: 7(fvec4) FSub 16 17 - 19: 7(fvec4) CompositeExtract 13 1 - 20: 7(fvec4) CompositeExtract 15 1 - 21: 7(fvec4) FSub 19 20 - 22: 7(fvec4) CompositeExtract 13 2 - 23: 7(fvec4) CompositeExtract 15 2 - 24: 7(fvec4) FSub 22 23 - 25: 8 CompositeConstruct 18 21 24 - Store 10(sum34) 25 - 26: 8 Load 12(m1) - 29: 6(float) Load 28(f) - 30: 8 MatrixTimesScalar 26 29 - 31: 8 Load 10(sum34) - 32: 7(fvec4) CompositeExtract 31 0 - 33: 7(fvec4) CompositeExtract 30 0 - 34: 7(fvec4) FAdd 32 33 - 35: 7(fvec4) CompositeExtract 31 1 - 36: 7(fvec4) CompositeExtract 30 1 - 37: 7(fvec4) FAdd 35 36 - 38: 7(fvec4) CompositeExtract 31 2 - 39: 7(fvec4) CompositeExtract 30 2 - 40: 7(fvec4) FAdd 38 39 - 41: 8 CompositeConstruct 34 37 40 - Store 10(sum34) 41 - 42: 6(float) Load 28(f) - 43: 8 Load 12(m1) - 44: 8 MatrixTimesScalar 43 42 - 45: 8 Load 10(sum34) - 46: 7(fvec4) CompositeExtract 45 0 - 47: 7(fvec4) CompositeExtract 44 0 - 48: 7(fvec4) FAdd 46 47 - 49: 7(fvec4) CompositeExtract 45 1 - 50: 7(fvec4) CompositeExtract 44 1 - 51: 7(fvec4) FAdd 49 50 - 52: 7(fvec4) CompositeExtract 45 2 - 53: 7(fvec4) CompositeExtract 44 2 - 54: 7(fvec4) FAdd 52 53 - 55: 8 CompositeConstruct 48 51 54 - Store 10(sum34) 55 - 56: 8 Load 12(m1) - 57: 8 Load 14(m2) - 58: 7(fvec4) CompositeExtract 56 0 - 59: 7(fvec4) CompositeExtract 57 0 - 60: 7(fvec4) FMul 58 59 - 61: 7(fvec4) CompositeExtract 56 1 - 62: 7(fvec4) CompositeExtract 57 1 - 63: 7(fvec4) FMul 61 62 - 64: 7(fvec4) CompositeExtract 56 2 - 65: 7(fvec4) CompositeExtract 57 2 - 66: 7(fvec4) FMul 64 65 - 67: 8 CompositeConstruct 60 63 66 - 68: 8 Load 10(sum34) - 69: 7(fvec4) CompositeExtract 68 0 - 70: 7(fvec4) CompositeExtract 67 0 - 71: 7(fvec4) FDiv 69 70 - 72: 7(fvec4) CompositeExtract 68 1 - 73: 7(fvec4) CompositeExtract 67 1 - 74: 7(fvec4) FDiv 72 73 - 75: 7(fvec4) CompositeExtract 68 2 - 76: 7(fvec4) CompositeExtract 67 2 - 77: 7(fvec4) FDiv 75 76 - 78: 8 CompositeConstruct 71 74 77 - Store 10(sum34) 78 - 79: 8 Load 12(m1) - 80: 6(float) Load 28(f) - 82: 6(float) FDiv 81 80 - 83: 8 MatrixTimesScalar 79 82 - 84: 8 Load 10(sum34) - 85: 7(fvec4) CompositeExtract 84 0 - 86: 7(fvec4) CompositeExtract 83 0 - 87: 7(fvec4) FAdd 85 86 - 88: 7(fvec4) CompositeExtract 84 1 - 89: 7(fvec4) CompositeExtract 83 1 - 90: 7(fvec4) FAdd 88 89 - 91: 7(fvec4) CompositeExtract 84 2 - 92: 7(fvec4) CompositeExtract 83 2 - 93: 7(fvec4) FAdd 91 92 - 94: 8 CompositeConstruct 87 90 93 - Store 10(sum34) 94 - 95: 6(float) Load 28(f) - 96: 8 Load 12(m1) - 97: 7(fvec4) CompositeConstruct 95 95 95 95 - 98: 7(fvec4) CompositeExtract 96 0 - 99: 7(fvec4) FDiv 97 98 - 100: 7(fvec4) CompositeExtract 96 1 - 101: 7(fvec4) FDiv 97 100 - 102: 7(fvec4) CompositeExtract 96 2 - 103: 7(fvec4) FDiv 97 102 - 104: 8 CompositeConstruct 99 101 103 - 105: 8 Load 10(sum34) - 106: 7(fvec4) CompositeExtract 105 0 - 107: 7(fvec4) CompositeExtract 104 0 - 108: 7(fvec4) FAdd 106 107 - 109: 7(fvec4) CompositeExtract 105 1 - 110: 7(fvec4) CompositeExtract 104 1 - 111: 7(fvec4) FAdd 109 110 - 112: 7(fvec4) CompositeExtract 105 2 - 113: 7(fvec4) CompositeExtract 104 2 - 114: 7(fvec4) FAdd 112 113 - 115: 8 CompositeConstruct 108 111 114 - Store 10(sum34) 115 - 116: 6(float) Load 28(f) - 117: 8 Load 10(sum34) - 118: 7(fvec4) CompositeConstruct 116 116 116 116 - 119: 7(fvec4) CompositeExtract 117 0 - 120: 7(fvec4) FAdd 119 118 - 121: 7(fvec4) CompositeExtract 117 1 - 122: 7(fvec4) FAdd 121 118 - 123: 7(fvec4) CompositeExtract 117 2 - 124: 7(fvec4) FAdd 123 118 - 125: 8 CompositeConstruct 120 122 124 - Store 10(sum34) 125 - 126: 6(float) Load 28(f) - 127: 8 Load 10(sum34) - 128: 7(fvec4) CompositeConstruct 126 126 126 126 - 129: 7(fvec4) CompositeExtract 127 0 - 130: 7(fvec4) FSub 129 128 - 131: 7(fvec4) CompositeExtract 127 1 - 132: 7(fvec4) FSub 131 128 - 133: 7(fvec4) CompositeExtract 127 2 - 134: 7(fvec4) FSub 133 128 - 135: 8 CompositeConstruct 130 132 134 - Store 10(sum34) 135 - 141: 8 Load 10(sum34) - 142: 7(fvec4) CompositeExtract 141 0 - 143:137(f64vec4) FConvert 142 - 144: 7(fvec4) CompositeExtract 141 1 - 145:137(f64vec4) FConvert 144 - 146: 7(fvec4) CompositeExtract 141 2 - 147:137(f64vec4) FConvert 146 - 148: 138 CompositeConstruct 143 145 147 - Store 140(dm) 148 - 149: 138 Load 140(dm) - 150:137(f64vec4) CompositeExtract 149 0 - 151: 7(fvec4) FConvert 150 - 152:137(f64vec4) CompositeExtract 149 1 - 153: 7(fvec4) FConvert 152 - 154:137(f64vec4) CompositeExtract 149 2 - 155: 7(fvec4) FConvert 154 - 156: 8 CompositeConstruct 151 153 155 - Store 10(sum34) 156 - 162: 7(fvec4) Load 161(v4) - 163: 8 Load 14(m2) - 164: 157(fvec3) VectorTimesMatrix 162 163 - Store 159(sum3) 164 - 167: 8 Load 14(m2) - 170: 157(fvec3) Load 169(v3) - 171: 7(fvec4) MatrixTimesVector 167 170 - Store 166(sum4) 171 - 175: 8 Load 10(sum34) - 176: 172 Transpose 175 - Store 174(m43) 176 - 180: 8 Load 12(m1) - 181: 172 Load 174(m43) - 182: 177 MatrixTimesMatrix 180 181 - Store 179(m4) 182 - 183: 7(fvec4) Load 161(v4) - 184: 177 Load 179(m4) - 185: 7(fvec4) VectorTimesMatrix 183 184 - Store 166(sum4) 185 - 188: 7(fvec4) Load 166(sum4) - Store 187(color) 188 - 189: 8 Load 10(sum34) - 190: 7(fvec4) CompositeConstruct 81 81 81 81 - 191: 7(fvec4) CompositeExtract 189 0 - 192: 7(fvec4) FAdd 191 190 - 193: 7(fvec4) CompositeExtract 189 1 - 194: 7(fvec4) FAdd 193 190 - 195: 7(fvec4) CompositeExtract 189 2 - 196: 7(fvec4) FAdd 195 190 - 197: 8 CompositeConstruct 192 194 196 - Store 10(sum34) 197 - 198: 8 Load 10(sum34) - 199: 7(fvec4) CompositeConstruct 81 81 81 81 - 200: 7(fvec4) CompositeExtract 198 0 - 201: 7(fvec4) FSub 200 199 - 202: 7(fvec4) CompositeExtract 198 1 - 203: 7(fvec4) FSub 202 199 - 204: 7(fvec4) CompositeExtract 198 2 - 205: 7(fvec4) FSub 204 199 - 206: 8 CompositeConstruct 201 203 205 - Store 10(sum34) 206 - 207: 6(float) Load 28(f) - 209: 7(fvec4) CompositeConstruct 207 208 208 208 - 210: 7(fvec4) CompositeConstruct 208 207 208 208 - 211: 7(fvec4) CompositeConstruct 208 208 207 208 - 212: 8 CompositeConstruct 209 210 211 - 213: 8 Load 10(sum34) - 214: 7(fvec4) CompositeExtract 213 0 - 215: 7(fvec4) CompositeExtract 212 0 - 216: 7(fvec4) FAdd 214 215 - 217: 7(fvec4) CompositeExtract 213 1 - 218: 7(fvec4) CompositeExtract 212 1 - 219: 7(fvec4) FAdd 217 218 - 220: 7(fvec4) CompositeExtract 213 2 - 221: 7(fvec4) CompositeExtract 212 2 - 222: 7(fvec4) FAdd 220 221 - 223: 8 CompositeConstruct 216 219 222 - Store 10(sum34) 223 - 224: 157(fvec3) Load 169(v3) - 225: 6(float) Load 28(f) - 226: 157(fvec3) Load 169(v3) - 227: 6(float) Load 28(f) - 228: 157(fvec3) Load 169(v3) - 229: 6(float) Load 28(f) - 230: 6(float) CompositeExtract 224 0 - 231: 6(float) CompositeExtract 224 1 - 232: 6(float) CompositeExtract 224 2 - 233: 6(float) CompositeExtract 226 0 - 234: 6(float) CompositeExtract 226 1 - 235: 6(float) CompositeExtract 226 2 - 236: 6(float) CompositeExtract 228 0 - 237: 6(float) CompositeExtract 228 1 - 238: 6(float) CompositeExtract 228 2 - 239: 7(fvec4) CompositeConstruct 230 231 232 225 - 240: 7(fvec4) CompositeConstruct 233 234 235 227 - 241: 7(fvec4) CompositeConstruct 236 237 238 229 - 242: 8 CompositeConstruct 239 240 241 - 243: 8 Load 10(sum34) - 244: 7(fvec4) CompositeExtract 243 0 - 245: 7(fvec4) CompositeExtract 242 0 - 246: 7(fvec4) FAdd 244 245 - 247: 7(fvec4) CompositeExtract 243 1 - 248: 7(fvec4) CompositeExtract 242 1 - 249: 7(fvec4) FAdd 247 248 - 250: 7(fvec4) CompositeExtract 243 2 - 251: 7(fvec4) CompositeExtract 242 2 - 252: 7(fvec4) FAdd 250 251 - 253: 8 CompositeConstruct 246 249 252 - Store 10(sum34) 253 - 254: 157(fvec3) Load 159(sum3) - 255: 172 Load 174(m43) - 256: 7(fvec4) VectorTimesMatrix 254 255 - 257: 7(fvec4) Load 166(sum4) - 258: 7(fvec4) FAdd 256 257 - 259: 7(fvec4) Load 187(color) - 260: 7(fvec4) FAdd 259 258 - Store 187(color) 260 - 261: 172 Load 174(m43) - 262: 6(float) CompositeExtract 261 0 0 - 263: 6(float) CompositeExtract 261 0 1 - 264: 6(float) CompositeExtract 261 0 2 - 265: 6(float) CompositeExtract 261 1 0 - 266: 7(fvec4) CompositeConstruct 262 263 264 265 - 267: 7(fvec4) Load 187(color) - 268: 7(fvec4) FAdd 267 266 - Store 187(color) 268 - 269: 6(float) Load 28(f) - 272: 270(fvec2) CompositeConstruct 269 208 - 273: 270(fvec2) CompositeConstruct 208 269 - 274: 271 CompositeConstruct 272 273 - 275: 6(float) CompositeExtract 274 0 0 - 276: 6(float) CompositeExtract 274 0 1 - 277: 6(float) CompositeExtract 274 1 0 - 278: 157(fvec3) CompositeConstruct 275 276 277 - 280: 6(float) CompositeExtract 278 0 - 281: 6(float) CompositeExtract 278 1 - 282: 6(float) CompositeExtract 278 2 - 283: 7(fvec4) CompositeConstruct 280 281 282 279 - 284: 7(fvec4) Load 187(color) - 285: 7(fvec4) FAdd 284 283 - Store 187(color) 285 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.matrix2.frag.out b/deps/glslang/Test/baseResults/spv.matrix2.frag.out deleted file mode 100644 index 13f2708d..00000000 --- a/deps/glslang/Test/baseResults/spv.matrix2.frag.out +++ /dev/null @@ -1,281 +0,0 @@ -spv.matrix2.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 221 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 12 16 37 38 65 87 147 158 181 218 219 220 - ExecutionMode 4 OriginUpperLeft - Source GLSL 150 - Name 4 "main" - Name 10 "m34" - Name 12 "v" - Name 16 "u" - Name 37 "FragColor" - Name 38 "Color" - Name 63 "m44" - Name 65 "un34" - Name 87 "um43" - Name 147 "um4" - Name 156 "inv" - Name 158 "um2" - Name 179 "inv3" - Name 181 "um3" - Name 190 "inv4" - Name 218 "colorTransform" - Name 219 "m" - Name 220 "n" - Decorate 12(v) Location 28 - Decorate 16(u) Location 29 - Decorate 37(FragColor) Location 0 - Decorate 38(Color) Location 3 - Decorate 65(un34) Location 16 - Decorate 87(um43) Location 12 - Decorate 147(um4) Location 24 - Decorate 158(um2) Location 19 - Decorate 181(um3) Location 21 - Decorate 218(colorTransform) Location 0 - Decorate 219(m) Location 4 - Decorate 220(n) Location 8 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeMatrix 7(fvec4) 3 - 9: TypePointer Function 8 - 11: TypePointer Input 7(fvec4) - 12(v): 11(ptr) Variable Input - 14: TypeVector 6(float) 3 - 15: TypePointer Input 14(fvec3) - 16(u): 15(ptr) Variable Input - 19: 6(float) Constant 1082759578 - 20: 6(float) Constant 0 - 21: 7(fvec4) ConstantComposite 19 20 20 20 - 22: 7(fvec4) ConstantComposite 20 19 20 20 - 23: 7(fvec4) ConstantComposite 20 20 19 20 - 24: 8 ConstantComposite 21 22 23 - 36: TypePointer Output 7(fvec4) - 37(FragColor): 36(ptr) Variable Output - 38(Color): 15(ptr) Variable Input - 40: 6(float) Constant 1065353216 - 54: TypeInt 32 0 - 55: 54(int) Constant 0 - 56: TypePointer Input 6(float) - 61: TypeMatrix 7(fvec4) 4 - 62: TypePointer Function 61 - 64: TypePointer Input 8 - 65(un34): 64(ptr) Variable Input - 85: TypeMatrix 14(fvec3) 4 - 86: TypePointer Input 85 - 87(um43): 86(ptr) Variable Input - 146: TypePointer Input 61 - 147(um4): 146(ptr) Variable Input - 153: TypeVector 6(float) 2 - 154: TypeMatrix 153(fvec2) 2 - 155: TypePointer Function 154 - 157: TypePointer Input 154 - 158(um2): 157(ptr) Variable Input - 161: TypeInt 32 1 - 162: 161(int) Constant 0 - 163: TypePointer Function 6(float) - 166: 161(int) Constant 1 - 169: 54(int) Constant 1 - 177: TypeMatrix 14(fvec3) 3 - 178: TypePointer Function 177 - 180: TypePointer Input 177 - 181(um3): 180(ptr) Variable Input - 184: 161(int) Constant 2 - 210: 54(int) Constant 3 - 211: TypePointer Output 6(float) -218(colorTransform): 180(ptr) Variable Input - 219(m): 146(ptr) Variable Input - 220(n): 146(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 10(m34): 9(ptr) Variable Function - 63(m44): 62(ptr) Variable Function - 156(inv): 155(ptr) Variable Function - 179(inv3): 178(ptr) Variable Function - 190(inv4): 62(ptr) Variable Function - 13: 7(fvec4) Load 12(v) - 17: 14(fvec3) Load 16(u) - 18: 8 OuterProduct 13 17 - Store 10(m34) 18 - 25: 8 Load 10(m34) - 26: 7(fvec4) CompositeExtract 25 0 - 27: 7(fvec4) CompositeExtract 24 0 - 28: 7(fvec4) FAdd 26 27 - 29: 7(fvec4) CompositeExtract 25 1 - 30: 7(fvec4) CompositeExtract 24 1 - 31: 7(fvec4) FAdd 29 30 - 32: 7(fvec4) CompositeExtract 25 2 - 33: 7(fvec4) CompositeExtract 24 2 - 34: 7(fvec4) FAdd 32 33 - 35: 8 CompositeConstruct 28 31 34 - Store 10(m34) 35 - 39: 14(fvec3) Load 38(Color) - 41: 6(float) CompositeExtract 39 0 - 42: 6(float) CompositeExtract 39 1 - 43: 6(float) CompositeExtract 39 2 - 44: 7(fvec4) CompositeConstruct 41 42 43 40 - Store 37(FragColor) 44 - 45: 7(fvec4) Load 37(FragColor) - 46: 8 Load 10(m34) - 47: 14(fvec3) VectorTimesMatrix 45 46 - 48: 6(float) CompositeExtract 47 0 - 49: 6(float) CompositeExtract 47 1 - 50: 6(float) CompositeExtract 47 2 - 51: 7(fvec4) CompositeConstruct 48 49 50 40 - 52: 7(fvec4) Load 37(FragColor) - 53: 7(fvec4) FMul 52 51 - Store 37(FragColor) 53 - 57: 56(ptr) AccessChain 12(v) 55 - 58: 6(float) Load 57 - 59: 8 Load 10(m34) - 60: 8 MatrixTimesScalar 59 58 - Store 10(m34) 60 - 66: 8 Load 65(un34) - 67: 6(float) CompositeExtract 66 0 0 - 68: 6(float) CompositeExtract 66 0 1 - 69: 6(float) CompositeExtract 66 0 2 - 70: 6(float) CompositeExtract 66 0 3 - 71: 6(float) CompositeExtract 66 1 0 - 72: 6(float) CompositeExtract 66 1 1 - 73: 6(float) CompositeExtract 66 1 2 - 74: 6(float) CompositeExtract 66 1 3 - 75: 6(float) CompositeExtract 66 2 0 - 76: 6(float) CompositeExtract 66 2 1 - 77: 6(float) CompositeExtract 66 2 2 - 78: 6(float) CompositeExtract 66 2 3 - 79: 7(fvec4) CompositeConstruct 67 68 69 70 - 80: 7(fvec4) CompositeConstruct 71 72 73 74 - 81: 7(fvec4) CompositeConstruct 75 76 77 78 - 82: 7(fvec4) CompositeConstruct 20 20 20 40 - 83: 61 CompositeConstruct 79 80 81 82 - Store 63(m44) 83 - 84: 8 Load 10(m34) - 88: 85 Load 87(um43) - 89: 61 MatrixTimesMatrix 84 88 - 90: 61 Load 63(m44) - 91: 7(fvec4) CompositeExtract 90 0 - 92: 7(fvec4) CompositeExtract 89 0 - 93: 7(fvec4) FAdd 91 92 - 94: 7(fvec4) CompositeExtract 90 1 - 95: 7(fvec4) CompositeExtract 89 1 - 96: 7(fvec4) FAdd 94 95 - 97: 7(fvec4) CompositeExtract 90 2 - 98: 7(fvec4) CompositeExtract 89 2 - 99: 7(fvec4) FAdd 97 98 - 100: 7(fvec4) CompositeExtract 90 3 - 101: 7(fvec4) CompositeExtract 89 3 - 102: 7(fvec4) FAdd 100 101 - 103: 61 CompositeConstruct 93 96 99 102 - Store 63(m44) 103 - 104: 61 Load 63(m44) - 105: 7(fvec4) CompositeExtract 104 0 - 106: 7(fvec4) FNegate 105 - 107: 7(fvec4) CompositeExtract 104 1 - 108: 7(fvec4) FNegate 107 - 109: 7(fvec4) CompositeExtract 104 2 - 110: 7(fvec4) FNegate 109 - 111: 7(fvec4) CompositeExtract 104 3 - 112: 7(fvec4) FNegate 111 - 113: 61 CompositeConstruct 106 108 110 112 - 114: 7(fvec4) Load 12(v) - 115: 7(fvec4) MatrixTimesVector 113 114 - 116: 7(fvec4) Load 37(FragColor) - 117: 7(fvec4) FAdd 116 115 - Store 37(FragColor) 117 - 118: 61 Load 63(m44) - 119: 61 Load 63(m44) - 120: 7(fvec4) CompositeExtract 118 0 - 121: 7(fvec4) CompositeExtract 119 0 - 122: 7(fvec4) FMul 120 121 - 123: 7(fvec4) CompositeExtract 118 1 - 124: 7(fvec4) CompositeExtract 119 1 - 125: 7(fvec4) FMul 123 124 - 126: 7(fvec4) CompositeExtract 118 2 - 127: 7(fvec4) CompositeExtract 119 2 - 128: 7(fvec4) FMul 126 127 - 129: 7(fvec4) CompositeExtract 118 3 - 130: 7(fvec4) CompositeExtract 119 3 - 131: 7(fvec4) FMul 129 130 - 132: 61 CompositeConstruct 122 125 128 131 - 133: 7(fvec4) Load 37(FragColor) - 134: 7(fvec4) VectorTimesMatrix 133 132 - Store 37(FragColor) 134 - 135: 85 Load 87(um43) - 136: 8 Transpose 135 - Store 10(m34) 136 - 137: 7(fvec4) Load 37(FragColor) - 138: 8 Load 10(m34) - 139: 14(fvec3) VectorTimesMatrix 137 138 - 140: 6(float) CompositeExtract 139 0 - 141: 6(float) CompositeExtract 139 1 - 142: 6(float) CompositeExtract 139 2 - 143: 7(fvec4) CompositeConstruct 140 141 142 40 - 144: 7(fvec4) Load 37(FragColor) - 145: 7(fvec4) FMul 144 143 - Store 37(FragColor) 145 - 148: 61 Load 147(um4) - 149: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 148 - 150: 7(fvec4) CompositeConstruct 149 149 149 149 - 151: 7(fvec4) Load 37(FragColor) - 152: 7(fvec4) FMul 151 150 - Store 37(FragColor) 152 - 159: 154 Load 158(um2) - 160: 154 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 159 - Store 156(inv) 160 - 164: 163(ptr) AccessChain 156(inv) 162 55 - 165: 6(float) Load 164 - 167: 163(ptr) AccessChain 156(inv) 166 55 - 168: 6(float) Load 167 - 170: 163(ptr) AccessChain 156(inv) 162 169 - 171: 6(float) Load 170 - 172: 163(ptr) AccessChain 156(inv) 166 169 - 173: 6(float) Load 172 - 174: 7(fvec4) CompositeConstruct 165 168 171 173 - 175: 7(fvec4) Load 37(FragColor) - 176: 7(fvec4) FMul 175 174 - Store 37(FragColor) 176 - 182: 177 Load 181(um3) - 183: 177 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 182 - Store 179(inv3) 183 - 185: 163(ptr) AccessChain 179(inv3) 184 169 - 186: 6(float) Load 185 - 187: 7(fvec4) CompositeConstruct 186 186 186 186 - 188: 7(fvec4) Load 37(FragColor) - 189: 7(fvec4) FMul 188 187 - Store 37(FragColor) 189 - 191: 61 Load 147(um4) - 192: 61 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 191 - Store 190(inv4) 192 - 193: 61 Load 190(inv4) - 194: 7(fvec4) Load 37(FragColor) - 195: 7(fvec4) VectorTimesMatrix 194 193 - Store 37(FragColor) 195 - 196: 7(fvec4) Load 37(FragColor) - 197: 8 Load 65(un34) - 198: 8 Load 65(un34) - 199: 7(fvec4) CompositeExtract 197 0 - 200: 7(fvec4) CompositeExtract 198 0 - 201: 7(fvec4) FMul 199 200 - 202: 7(fvec4) CompositeExtract 197 1 - 203: 7(fvec4) CompositeExtract 198 1 - 204: 7(fvec4) FMul 202 203 - 205: 7(fvec4) CompositeExtract 197 2 - 206: 7(fvec4) CompositeExtract 198 2 - 207: 7(fvec4) FMul 205 206 - 208: 8 CompositeConstruct 201 204 207 - 209: 14(fvec3) VectorTimesMatrix 196 208 - 212: 211(ptr) AccessChain 37(FragColor) 210 - 213: 6(float) Load 212 - 214: 6(float) CompositeExtract 209 0 - 215: 6(float) CompositeExtract 209 1 - 216: 6(float) CompositeExtract 209 2 - 217: 7(fvec4) CompositeConstruct 214 215 216 213 - Store 37(FragColor) 217 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.memoryQualifier.frag.out b/deps/glslang/Test/baseResults/spv.memoryQualifier.frag.out deleted file mode 100644 index fce8c9cc..00000000 --- a/deps/glslang/Test/baseResults/spv.memoryQualifier.frag.out +++ /dev/null @@ -1,188 +0,0 @@ -spv.memoryQualifier.frag -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 105 - - Capability Shader - Capability ImageRect - Capability Image1D - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - Name 4 "main" - Name 9 "texel" - Name 12 "i1D" - Name 19 "i2D" - Name 28 "i2DRect" - Name 35 "i3D" - Name 44 "iCube" - Name 49 "Data" - MemberName 49(Data) 0 "f1" - MemberName 49(Data) 1 "f2" - Name 50 "Buffer" - MemberName 50(Buffer) 0 "f1" - MemberName 50(Buffer) 1 "f2" - MemberName 50(Buffer) 2 "f3" - MemberName 50(Buffer) 3 "f4" - MemberName 50(Buffer) 4 "i1" - MemberName 50(Buffer) 5 "data" - Name 52 "" - Decorate 12(i1D) DescriptorSet 0 - Decorate 12(i1D) Binding 0 - Decorate 12(i1D) Coherent - Decorate 19(i2D) DescriptorSet 0 - Decorate 19(i2D) Binding 1 - Decorate 19(i2D) Volatile - Decorate 19(i2D) Coherent - Decorate 28(i2DRect) DescriptorSet 0 - Decorate 28(i2DRect) Binding 2 - Decorate 28(i2DRect) Restrict - Decorate 35(i3D) DescriptorSet 0 - Decorate 35(i3D) Binding 3 - Decorate 35(i3D) NonWritable - Decorate 44(iCube) DescriptorSet 0 - Decorate 44(iCube) Binding 3 - Decorate 44(iCube) NonReadable - MemberDecorate 49(Data) 0 Offset 0 - MemberDecorate 49(Data) 1 Offset 8 - MemberDecorate 50(Buffer) 0 Coherent - MemberDecorate 50(Buffer) 0 Volatile - MemberDecorate 50(Buffer) 0 Coherent - MemberDecorate 50(Buffer) 0 Offset 0 - MemberDecorate 50(Buffer) 1 Coherent - MemberDecorate 50(Buffer) 1 Restrict - MemberDecorate 50(Buffer) 1 Offset 8 - MemberDecorate 50(Buffer) 2 Coherent - MemberDecorate 50(Buffer) 2 NonWritable - MemberDecorate 50(Buffer) 2 Offset 16 - MemberDecorate 50(Buffer) 3 Coherent - MemberDecorate 50(Buffer) 3 NonReadable - MemberDecorate 50(Buffer) 3 Offset 32 - MemberDecorate 50(Buffer) 4 Coherent - MemberDecorate 50(Buffer) 4 Offset 48 - MemberDecorate 50(Buffer) 5 Coherent - MemberDecorate 50(Buffer) 5 Offset 56 - Decorate 50(Buffer) BufferBlock - Decorate 52 DescriptorSet 0 - Decorate 52 Binding 4 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: TypeImage 6(float) 1D nonsampled format:R32f - 11: TypePointer UniformConstant 10 - 12(i1D): 11(ptr) Variable UniformConstant - 14: TypeInt 32 1 - 15: 14(int) Constant 1 - 17: TypeImage 6(float) 2D nonsampled format:R32f - 18: TypePointer UniformConstant 17 - 19(i2D): 18(ptr) Variable UniformConstant - 21: TypeVector 14(int) 2 - 22: 21(ivec2) ConstantComposite 15 15 - 26: TypeImage 6(float) Rect nonsampled format:R32f - 27: TypePointer UniformConstant 26 - 28(i2DRect): 27(ptr) Variable UniformConstant - 33: TypeImage 6(float) 3D nonsampled format:R32f - 34: TypePointer UniformConstant 33 - 35(i3D): 34(ptr) Variable UniformConstant - 37: TypeVector 14(int) 3 - 38: 37(ivec3) ConstantComposite 15 15 15 - 42: TypeImage 6(float) Cube nonsampled format:R32f - 43: TypePointer UniformConstant 42 - 44(iCube): 43(ptr) Variable UniformConstant - 47: TypeVector 6(float) 2 - 48: TypeVector 6(float) 3 - 49(Data): TypeStruct 6(float) 47(fvec2) - 50(Buffer): TypeStruct 6(float) 47(fvec2) 48(fvec3) 7(fvec4) 14(int) 49(Data) - 51: TypePointer Uniform 50(Buffer) - 52: 51(ptr) Variable Uniform - 53: 14(int) Constant 4 - 54: TypePointer Uniform 14(int) - 57: 14(int) Constant 0 - 58: TypePointer Uniform 6(float) - 61: TypePointer Function 6(float) - 63: TypePointer Uniform 47(fvec2) - 69: TypeInt 32 0 - 70: 69(int) Constant 0 - 73: 69(int) Constant 1 - 76: 14(int) Constant 2 - 77: TypePointer Uniform 48(fvec3) - 87: 69(int) Constant 2 - 90: 14(int) Constant 5 - 96: 69(int) Constant 3 - 101: 14(int) Constant 3 - 103: TypePointer Uniform 7(fvec4) - 4(main): 2 Function None 3 - 5: Label - 9(texel): 8(ptr) Variable Function - 13: 10 Load 12(i1D) - 16: 7(fvec4) ImageRead 13 15 - Store 9(texel) 16 - 20: 17 Load 19(i2D) - 23: 7(fvec4) ImageRead 20 22 - 24: 7(fvec4) Load 9(texel) - 25: 7(fvec4) FAdd 24 23 - Store 9(texel) 25 - 29: 26 Load 28(i2DRect) - 30: 7(fvec4) ImageRead 29 22 - 31: 7(fvec4) Load 9(texel) - 32: 7(fvec4) FAdd 31 30 - Store 9(texel) 32 - 36: 33 Load 35(i3D) - 39: 7(fvec4) ImageRead 36 38 - 40: 7(fvec4) Load 9(texel) - 41: 7(fvec4) FAdd 40 39 - Store 9(texel) 41 - 45: 42 Load 44(iCube) - 46: 7(fvec4) Load 9(texel) - ImageWrite 45 38 46 - 55: 54(ptr) AccessChain 52 53 - 56: 14(int) Load 55 - 59: 58(ptr) AccessChain 52 57 - 60: 6(float) Load 59 - 62: 61(ptr) AccessChain 9(texel) 56 - Store 62 60 - 64: 63(ptr) AccessChain 52 15 - 65: 47(fvec2) Load 64 - 66: 7(fvec4) Load 9(texel) - 67: 47(fvec2) VectorShuffle 66 66 0 1 - 68: 47(fvec2) FAdd 67 65 - 71: 61(ptr) AccessChain 9(texel) 70 - 72: 6(float) CompositeExtract 68 0 - Store 71 72 - 74: 61(ptr) AccessChain 9(texel) 73 - 75: 6(float) CompositeExtract 68 1 - Store 74 75 - 78: 77(ptr) AccessChain 52 76 - 79: 48(fvec3) Load 78 - 80: 7(fvec4) Load 9(texel) - 81: 48(fvec3) VectorShuffle 80 80 0 1 2 - 82: 48(fvec3) FSub 81 79 - 83: 61(ptr) AccessChain 9(texel) 70 - 84: 6(float) CompositeExtract 82 0 - Store 83 84 - 85: 61(ptr) AccessChain 9(texel) 73 - 86: 6(float) CompositeExtract 82 1 - Store 85 86 - 88: 61(ptr) AccessChain 9(texel) 87 - 89: 6(float) CompositeExtract 82 2 - Store 88 89 - 91: 58(ptr) AccessChain 52 90 57 - 92: 6(float) Load 91 - 93: 58(ptr) AccessChain 52 90 15 73 - 94: 6(float) Load 93 - 95: 6(float) FAdd 92 94 - 97: 61(ptr) AccessChain 9(texel) 96 - 98: 6(float) Load 97 - 99: 6(float) FAdd 98 95 - 100: 61(ptr) AccessChain 9(texel) 96 - Store 100 99 - 102: 7(fvec4) Load 9(texel) - 104: 103(ptr) AccessChain 52 101 - Store 104 102 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.memoryScopeSemantics.comp.out b/deps/glslang/Test/baseResults/spv.memoryScopeSemantics.comp.out deleted file mode 100644 index 56c8470e..00000000 --- a/deps/glslang/Test/baseResults/spv.memoryScopeSemantics.comp.out +++ /dev/null @@ -1,287 +0,0 @@ -spv.memoryScopeSemantics.comp -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 169 - - Capability Shader - Capability Int64 - Capability Int64Atomics - Capability StorageImageMultisample - Capability VulkanMemoryModelKHR - Capability VulkanMemoryModelDeviceScopeKHR - Extension "SPV_KHR_vulkan_memory_model" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical VulkanKHR - EntryPoint GLCompute 4 "main" - ExecutionMode 4 LocalSize 1 1 1 - Source GLSL 450 - SourceExtension "GL_ARB_gpu_shader_int64" - SourceExtension "GL_KHR_memory_scope_semantics" - Name 4 "main" - Name 8 "origi" - Name 10 "atomi" - Name 21 "origu" - Name 23 "atomu" - Name 24 "value" - Name 36 "imagei" - Name 46 "imageu" - Name 66 "BufferU" - MemberName 66(BufferU) 0 "x" - Name 68 "bufferu" - Name 73 "y" - Name 78 "BufferI" - MemberName 78(BufferI) 0 "x" - Name 80 "bufferi" - Name 84 "A" - MemberName 84(A) 0 "x" - Name 85 "BufferJ" - MemberName 85(BufferJ) 0 "a" - Name 88 "bufferj" - Name 99 "BufferK" - MemberName 99(BufferK) 0 "x" - Name 101 "bufferk" - Name 111 "imagej" - Name 123 "samp" - Name 134 "atomu64" - Name 139 "atomi64" - Name 144 "BufferL" - MemberName 144(BufferL) 0 "x" - Name 146 "bufferl" - Name 151 "BufferM" - MemberName 151(BufferM) 0 "x" - Name 153 "bufferm" - Name 165 "imageMS" - Decorate 36(imagei) DescriptorSet 0 - Decorate 36(imagei) Binding 1 - Decorate 46(imageu) DescriptorSet 0 - Decorate 46(imageu) Binding 0 - MemberDecorate 66(BufferU) 0 Offset 0 - Decorate 66(BufferU) Block - Decorate 68(bufferu) DescriptorSet 0 - Decorate 68(bufferu) Binding 2 - MemberDecorate 78(BufferI) 0 Offset 0 - Decorate 78(BufferI) Block - Decorate 80(bufferi) DescriptorSet 0 - Decorate 80(bufferi) Binding 3 - Decorate 83 ArrayStride 4 - MemberDecorate 84(A) 0 Offset 0 - MemberDecorate 85(BufferJ) 0 Offset 0 - Decorate 85(BufferJ) Block - Decorate 88(bufferj) DescriptorSet 0 - Decorate 88(bufferj) Binding 4 - MemberDecorate 99(BufferK) 0 Offset 0 - Decorate 99(BufferK) Block - Decorate 101(bufferk) DescriptorSet 0 - Decorate 101(bufferk) Binding 7 - Decorate 111(imagej) DescriptorSet 0 - Decorate 111(imagej) Binding 5 - Decorate 123(samp) DescriptorSet 0 - Decorate 123(samp) Binding 6 - MemberDecorate 144(BufferL) 0 Offset 0 - Decorate 144(BufferL) Block - Decorate 146(bufferl) DescriptorSet 0 - Decorate 146(bufferl) Binding 8 - MemberDecorate 151(BufferM) 0 Offset 0 - Decorate 151(BufferM) Block - Decorate 153(bufferm) DescriptorSet 0 - Decorate 153(bufferm) Binding 9 - Decorate 165(imageMS) DescriptorSet 0 - Decorate 165(imageMS) Binding 10 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Function 6(int) - 9: TypePointer Workgroup 6(int) - 10(atomi): 9(ptr) Variable Workgroup - 11: 6(int) Constant 3 - 12: 6(int) Constant 1 - 13: 6(int) Constant 320 - 14: 6(int) Constant 4 - 15: TypeInt 32 0 - 16: 15(int) Constant 5 - 17: 15(int) Constant 0 - 18: 15(int) Constant 324 - 20: TypePointer Function 15(int) - 22: TypePointer Workgroup 15(int) - 23(atomu): 22(ptr) Variable Workgroup - 24(value): 22(ptr) Variable Workgroup - 26: 15(int) Constant 2 - 28: 6(int) Constant 64 - 29: 6(int) Constant 2 - 30: 15(int) Constant 66 - 33: 15(int) Constant 68 - 34: TypeImage 6(int) 2D nonsampled format:R32i - 35: TypePointer UniformConstant 34 - 36(imagei): 35(ptr) Variable UniformConstant - 37: TypeVector 6(int) 2 - 38: 6(int) Constant 0 - 39: 37(ivec2) ConstantComposite 38 38 - 40: TypePointer Image 6(int) - 42: 15(int) Constant 32768 - 44: TypeImage 15(int) 2D nonsampled format:R32ui - 45: TypePointer UniformConstant 44 - 46(imageu): 45(ptr) Variable UniformConstant - 47: 15(int) Constant 3 - 48: TypePointer Image 15(int) - 51: 15(int) Constant 4 - 53: 15(int) Constant 7 - 58: 6(int) Constant 7 - 62: 15(int) Constant 10 - 64: 15(int) Constant 322 - 66(BufferU): TypeStruct 15(int) - 67: TypePointer StorageBuffer 66(BufferU) - 68(bufferu): 67(ptr) Variable StorageBuffer - 69: TypePointer StorageBuffer 15(int) - 71: 15(int) Constant 1 - 78(BufferI): TypeStruct 15(int) - 79: TypePointer StorageBuffer 78(BufferI) - 80(bufferi): 79(ptr) Variable StorageBuffer - 83: TypeArray 15(int) 26 - 84(A): TypeStruct 83 - 85(BufferJ): TypeStruct 84(A) - 86: TypeArray 85(BufferJ) 26 - 87: TypePointer StorageBuffer 86 - 88(bufferj): 87(ptr) Variable StorageBuffer - 95: TypePointer StorageBuffer 84(A) - 99(BufferK): TypeStruct 15(int) - 100: TypePointer Uniform 99(BufferK) - 101(bufferk): 100(ptr) Variable Uniform - 102: TypePointer Uniform 15(int) - 107: TypeVector 6(int) 4 - 109: TypeArray 34 26 - 110: TypePointer UniformConstant 109 - 111(imagej): 110(ptr) Variable UniformConstant - 117: 107(ivec4) ConstantComposite 38 38 38 38 - 118: TypeFloat 32 - 119: TypeImage 118(float) 2D sampled format:Unknown - 120: TypeSampledImage 119 - 121: TypeArray 120 26 - 122: TypePointer UniformConstant 121 - 123(samp): 122(ptr) Variable UniformConstant - 124: TypePointer UniformConstant 120 - 127: TypeVector 118(float) 2 - 128: 118(float) Constant 0 - 129: 127(fvec2) ConstantComposite 128 128 - 130: TypeVector 118(float) 4 - 132: TypeInt 64 0 - 133: TypePointer Workgroup 132(int64_t) - 134(atomu64): 133(ptr) Variable Workgroup - 135:132(int64_t) Constant 7 0 - 137: TypeInt 64 1 - 138: TypePointer Workgroup 137(int64_t) - 139(atomi64): 138(ptr) Variable Workgroup - 140:137(int64_t) Constant 10 0 - 144(BufferL): TypeStruct 15(int) - 145: TypePointer StorageBuffer 144(BufferL) - 146(bufferl): 145(ptr) Variable StorageBuffer - 151(BufferM): TypeStruct 15(int) - 152: TypePointer StorageBuffer 151(BufferM) - 153(bufferm): 152(ptr) Variable StorageBuffer - 161: 6(int) Constant 32768 - 163: TypeImage 6(int) 2D multi-sampled nonsampled format:R32i - 164: TypePointer UniformConstant 163 - 165(imageMS): 164(ptr) Variable UniformConstant - 167: 6(int) Constant 4294967289 - 4(main): 2 Function None 3 - 5: Label - 8(origi): 7(ptr) Variable Function - 21(origu): 20(ptr) Variable Function - 73(y): 20(ptr) Variable Function - 19: 6(int) AtomicIAdd 10(atomi) 12 18 11 - Store 8(origi) 19 - 25: 15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26 - 27: 15(int) AtomicAnd 23(atomu) 16 17 25 - Store 21(origu) 27 - 31: 6(int) AtomicLoad 10(atomi) 12 30 - Store 8(origi) 31 - 32: 15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26 - AtomicStore 23(atomu) 12 33 32 - 41: 40(ptr) ImageTexelPointer 36(imagei) 39 17 - 43: 6(int) AtomicLoad 41 12 30 - Store 8(origi) 43 - 49: 48(ptr) ImageTexelPointer 46(imageu) 39 17 - 50: 15(int) AtomicIAdd 49 12 30 47 - Store 21(origu) 50 - 52: 48(ptr) ImageTexelPointer 46(imageu) 39 17 - AtomicStore 52 12 33 51 - 54: 15(int) AtomicOr 23(atomu) 12 17 53 - Store 21(origu) 54 - 55: 15(int) AtomicXor 23(atomu) 12 17 53 - Store 21(origu) 55 - 56: 15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26 - 57: 15(int) AtomicUMin 23(atomu) 12 17 56 - Store 21(origu) 57 - 59: 6(int) AtomicSMax 10(atomi) 12 17 58 - Store 8(origi) 59 - 60: 6(int) Load 8(origi) - 61: 6(int) AtomicExchange 10(atomi) 12 17 60 - Store 8(origi) 61 - 63: 15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26 - 65: 15(int) AtomicCompareExchange 23(atomu) 12 64 64 63 62 - Store 21(origu) 65 - 70: 69(ptr) AccessChain 68(bufferu) 38 - 72: 15(int) AtomicIAdd 70 12 18 71 - MemoryBarrier 26 18 - ControlBarrier 26 26 64 - ControlBarrier 26 26 17 - 74: 69(ptr) AccessChain 68(bufferu) 38 - 75: 15(int) Load 74 MakePointerVisibleKHR NonPrivatePointerKHR 26 - Store 73(y) 75 - 76: 15(int) Load 73(y) - 77: 69(ptr) AccessChain 68(bufferu) 38 - Store 77 76 MakePointerAvailableKHR NonPrivatePointerKHR 26 - 81: 69(ptr) AccessChain 80(bufferi) 38 - 82: 15(int) Load 81 MakePointerVisibleKHR NonPrivatePointerKHR 16 - Store 73(y) 82 - 89: 69(ptr) AccessChain 88(bufferj) 38 38 38 12 - 90: 15(int) Load 89 Volatile MakePointerVisibleKHR NonPrivatePointerKHR 16 - Store 73(y) 90 - 91: 15(int) Load 73(y) - 92: 69(ptr) AccessChain 80(bufferi) 38 - Store 92 91 MakePointerAvailableKHR NonPrivatePointerKHR 16 - 93: 15(int) Load 73(y) - 94: 69(ptr) AccessChain 88(bufferj) 38 38 38 12 - Store 94 93 Volatile MakePointerAvailableKHR NonPrivatePointerKHR 16 - 96: 95(ptr) AccessChain 88(bufferj) 12 38 - 97: 84(A) Load 96 Volatile MakePointerVisibleKHR NonPrivatePointerKHR 16 - 98: 95(ptr) AccessChain 88(bufferj) 38 38 - Store 98 97 Volatile MakePointerAvailableKHR NonPrivatePointerKHR 16 - 103: 102(ptr) AccessChain 101(bufferk) 38 - 104: 15(int) Load 103 NonPrivatePointerKHR - 105: 69(ptr) AccessChain 80(bufferi) 38 - Store 105 104 MakePointerAvailableKHR NonPrivatePointerKHR 16 - 106: 34 Load 36(imagei) - 108: 107(ivec4) ImageRead 106 39 MakeTexelVisibleKHR NonPrivateTexelKHR VolatileTexelKHR 16 - 112: 35(ptr) AccessChain 111(imagej) 38 - 113: 34 Load 112 - 114: 107(ivec4) ImageRead 113 39 NonPrivateTexelKHR - 115: 35(ptr) AccessChain 111(imagej) 12 - 116: 34 Load 115 - ImageWrite 116 39 117 NonPrivateTexelKHR - 125: 124(ptr) AccessChain 123(samp) 38 - 126: 120 Load 125 - 131: 130(fvec4) ImageSampleExplicitLod 126 129 Lod NonPrivateTexelKHR 128 - 136:132(int64_t) AtomicUMax 134(atomu64) 12 17 135 - Store 134(atomu64) 136 MakePointerAvailableKHR NonPrivatePointerKHR 26 - 141:132(int64_t) Load 134(atomu64) MakePointerVisibleKHR NonPrivatePointerKHR 26 - 142:137(int64_t) Bitcast 141 - 143:137(int64_t) AtomicCompareExchange 139(atomi64) 12 64 64 142 140 - 147: 69(ptr) AccessChain 146(bufferl) 38 - 148: 15(int) Load 147 Volatile MakePointerVisibleKHR NonPrivatePointerKHR 16 - Store 73(y) 148 - 149: 69(ptr) AccessChain 146(bufferl) 38 - 150: 15(int) AtomicIAdd 149 16 42 71 - 154: 69(ptr) AccessChain 153(bufferm) 38 - 155: 15(int) AtomicOr 154 16 42 26 - 156: 40(ptr) ImageTexelPointer 36(imagei) 39 17 - 157: 6(int) AtomicIAdd 156 16 42 11 - 158: 69(ptr) AccessChain 68(bufferu) 38 - 159: 15(int) AtomicIAdd 158 12 17 51 - 160: 69(ptr) AccessChain 68(bufferu) 38 - 162: 15(int) AtomicIAdd 160 12 42 16 - 166: 40(ptr) ImageTexelPointer 165(imageMS) 39 12 - AtomicStore 166 12 33 14 - 168: 40(ptr) ImageTexelPointer 36(imagei) 39 17 - AtomicStore 168 12 33 167 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.memoryScopeSemantics_Error.comp.out b/deps/glslang/Test/baseResults/spv.memoryScopeSemantics_Error.comp.out deleted file mode 100644 index 6de93fde..00000000 --- a/deps/glslang/Test/baseResults/spv.memoryScopeSemantics_Error.comp.out +++ /dev/null @@ -1,19 +0,0 @@ -spv.memoryScopeSemantics_Error.comp -ERROR: 0:15: 'atomicStore' : gl_SemanticsAcquire must not be used with (image) atomic store -ERROR: 0:16: 'imageAtomicLoad' : gl_SemanticsRelease must not be used with (image) atomic load -ERROR: 0:17: 'atomicStore' : gl_SemanticsAcquireRelease must not be used with (image) atomic load/store -ERROR: 0:18: 'atomicStore' : Invalid semantics value -ERROR: 0:19: 'imageAtomicLoad' : Invalid storage class semantics value -ERROR: 0:20: 'memoryBarrier' : Semantics must include exactly one of gl_SemanticsRelease, gl_SemanticsAcquire, or gl_SemanticsAcquireRelease -ERROR: 0:21: 'memoryBarrier' : Storage class semantics must not be zero -ERROR: 0:22: 'memoryBarrier' : Semantics must include exactly one of gl_SemanticsRelease, gl_SemanticsAcquire, or gl_SemanticsAcquireRelease -ERROR: 0:23: 'atomicAdd' : Semantics must not include multiple of gl_SemanticsRelease, gl_SemanticsAcquire, or gl_SemanticsAcquireRelease -ERROR: 0:24: 'atomicCompSwap' : semUnequal must not be gl_SemanticsRelease or gl_SemanticsAcquireRelease -ERROR: 0:25: 'memoryBarrier' : gl_SemanticsMakeVisible requires gl_SemanticsAcquire or gl_SemanticsAcquireRelease -ERROR: 0:26: 'memoryBarrier' : gl_SemanticsMakeAvailable requires gl_SemanticsRelease or gl_SemanticsAcquireRelease -ERROR: 0:27: 'memoryBarrier' : gl_SemanticsVolatile must not be used with memoryBarrier or controlBarrier -ERROR: 0:28: 'atomicCompSwap' : semEqual and semUnequal must either both include gl_SemanticsVolatile or neither -ERROR: 14 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.merge-unreachable.frag.out b/deps/glslang/Test/baseResults/spv.merge-unreachable.frag.out deleted file mode 100644 index dedec9c8..00000000 --- a/deps/glslang/Test/baseResults/spv.merge-unreachable.frag.out +++ /dev/null @@ -1,41 +0,0 @@ -spv.merge-unreachable.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 25 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 9 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - Name 4 "main" - Name 9 "v" - Decorate 9(v) Location 1 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Input 7(fvec4) - 9(v): 8(ptr) Variable Input - 11: 6(float) Constant 1036831949 - 12: 6(float) Constant 1045220557 - 13: 6(float) Constant 1050253722 - 14: 6(float) Constant 1053609165 - 15: 7(fvec4) ConstantComposite 11 12 13 14 - 16: TypeBool - 17: TypeVector 16(bool) 4 - 4(main): 2 Function None 3 - 5: Label - 10: 7(fvec4) Load 9(v) - 18: 17(bvec4) FOrdEqual 10 15 - 19: 16(bool) All 18 - SelectionMerge 21 None - BranchConditional 19 20 23 - 20: Label - Kill - 23: Label - Return - 21: Label - Unreachable - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.meshShaderBuiltins.mesh.out b/deps/glslang/Test/baseResults/spv.meshShaderBuiltins.mesh.out deleted file mode 100644 index b26122ef..00000000 --- a/deps/glslang/Test/baseResults/spv.meshShaderBuiltins.mesh.out +++ /dev/null @@ -1,260 +0,0 @@ -spv.meshShaderBuiltins.mesh -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 148 - - Capability ClipDistance - Capability CullDistance - Capability DrawParameters - Capability ShaderViewportMaskNV - Capability MeshShadingNV - Extension "SPV_KHR_shader_draw_parameters" - Extension "SPV_NV_mesh_shader" - Extension "SPV_NV_viewport_array2" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint MeshNV 4 "main" 11 17 34 88 129 142 146 - ExecutionMode 4 LocalSize 32 1 1 - ExecutionMode 4 OutputVertices 81 - ExecutionMode 4 OutputPrimitivesNV 32 - ExecutionMode 4 OutputTrianglesNV - Source GLSL 460 - SourceExtension "GL_NV_mesh_shader" - Name 4 "main" - Name 8 "iid" - Name 11 "gl_LocalInvocationID" - Name 16 "gid" - Name 17 "gl_WorkGroupID" - Name 30 "gl_MeshPerVertexNV" - MemberName 30(gl_MeshPerVertexNV) 0 "gl_Position" - MemberName 30(gl_MeshPerVertexNV) 1 "gl_PointSize" - MemberName 30(gl_MeshPerVertexNV) 2 "gl_ClipDistance" - MemberName 30(gl_MeshPerVertexNV) 3 "gl_CullDistance" - MemberName 30(gl_MeshPerVertexNV) 4 "gl_PositionPerViewNV" - MemberName 30(gl_MeshPerVertexNV) 5 "gl_ClipDistancePerViewNV" - MemberName 30(gl_MeshPerVertexNV) 6 "gl_CullDistancePerViewNV" - Name 34 "gl_MeshVerticesNV" - Name 84 "gl_MeshPerPrimitiveNV" - MemberName 84(gl_MeshPerPrimitiveNV) 0 "gl_PrimitiveID" - MemberName 84(gl_MeshPerPrimitiveNV) 1 "gl_Layer" - MemberName 84(gl_MeshPerPrimitiveNV) 2 "gl_ViewportIndex" - MemberName 84(gl_MeshPerPrimitiveNV) 3 "gl_ViewportMask" - MemberName 84(gl_MeshPerPrimitiveNV) 4 "gl_LayerPerViewNV" - MemberName 84(gl_MeshPerPrimitiveNV) 5 "gl_ViewportMaskPerViewNV" - Name 88 "gl_MeshPrimitivesNV" - Name 129 "gl_PrimitiveIndicesNV" - Name 142 "gl_DrawID" - Name 146 "gl_PrimitiveCountNV" - Decorate 11(gl_LocalInvocationID) BuiltIn LocalInvocationId - Decorate 17(gl_WorkGroupID) BuiltIn WorkgroupId - MemberDecorate 30(gl_MeshPerVertexNV) 0 BuiltIn Position - MemberDecorate 30(gl_MeshPerVertexNV) 1 BuiltIn PointSize - MemberDecorate 30(gl_MeshPerVertexNV) 2 BuiltIn ClipDistance - MemberDecorate 30(gl_MeshPerVertexNV) 3 BuiltIn CullDistance - MemberDecorate 30(gl_MeshPerVertexNV) 4 PerViewNV - MemberDecorate 30(gl_MeshPerVertexNV) 4 BuiltIn PositionPerViewNV - MemberDecorate 30(gl_MeshPerVertexNV) 5 PerViewNV - MemberDecorate 30(gl_MeshPerVertexNV) 5 BuiltIn ClipDistancePerViewNV - MemberDecorate 30(gl_MeshPerVertexNV) 6 PerViewNV - MemberDecorate 30(gl_MeshPerVertexNV) 6 BuiltIn CullDistancePerViewNV - Decorate 30(gl_MeshPerVertexNV) Block - MemberDecorate 84(gl_MeshPerPrimitiveNV) 0 PerPrimitiveNV - MemberDecorate 84(gl_MeshPerPrimitiveNV) 0 BuiltIn PrimitiveId - MemberDecorate 84(gl_MeshPerPrimitiveNV) 1 PerPrimitiveNV - MemberDecorate 84(gl_MeshPerPrimitiveNV) 1 BuiltIn Layer - MemberDecorate 84(gl_MeshPerPrimitiveNV) 2 PerPrimitiveNV - MemberDecorate 84(gl_MeshPerPrimitiveNV) 2 BuiltIn ViewportIndex - MemberDecorate 84(gl_MeshPerPrimitiveNV) 3 PerPrimitiveNV - MemberDecorate 84(gl_MeshPerPrimitiveNV) 3 BuiltIn ViewportMaskNV - MemberDecorate 84(gl_MeshPerPrimitiveNV) 4 PerPrimitiveNV - MemberDecorate 84(gl_MeshPerPrimitiveNV) 4 PerViewNV - MemberDecorate 84(gl_MeshPerPrimitiveNV) 4 BuiltIn LayerPerViewNV - MemberDecorate 84(gl_MeshPerPrimitiveNV) 5 PerPrimitiveNV - MemberDecorate 84(gl_MeshPerPrimitiveNV) 5 PerViewNV - MemberDecorate 84(gl_MeshPerPrimitiveNV) 5 BuiltIn ViewportMaskPerViewNV - Decorate 84(gl_MeshPerPrimitiveNV) Block - Decorate 129(gl_PrimitiveIndicesNV) BuiltIn PrimitiveIndicesNV - Decorate 142(gl_DrawID) BuiltIn DrawIndex - Decorate 146(gl_PrimitiveCountNV) BuiltIn PrimitiveCountNV - Decorate 147 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypeVector 6(int) 3 - 10: TypePointer Input 9(ivec3) -11(gl_LocalInvocationID): 10(ptr) Variable Input - 12: 6(int) Constant 0 - 13: TypePointer Input 6(int) -17(gl_WorkGroupID): 10(ptr) Variable Input - 20: TypeFloat 32 - 21: TypeVector 20(float) 4 - 22: 6(int) Constant 4 - 23: TypeArray 20(float) 22 - 24: 6(int) Constant 3 - 25: TypeArray 20(float) 24 - 26: TypeArray 21(fvec4) 22 - 27: 6(int) Constant 1 - 28: TypeArray 20(float) 27 - 29: TypeArray 28 22 -30(gl_MeshPerVertexNV): TypeStruct 21(fvec4) 20(float) 23 25 26 29 29 - 31: 6(int) Constant 81 - 32: TypeArray 30(gl_MeshPerVertexNV) 31 - 33: TypePointer Output 32 -34(gl_MeshVerticesNV): 33(ptr) Variable Output - 36: TypeInt 32 1 - 37: 36(int) Constant 0 - 38: 20(float) Constant 1065353216 - 39: 21(fvec4) ConstantComposite 38 38 38 38 - 40: TypePointer Output 21(fvec4) - 43: 36(int) Constant 1 - 44: 20(float) Constant 1073741824 - 45: TypePointer Output 20(float) - 48: 36(int) Constant 2 - 49: 36(int) Constant 3 - 50: 20(float) Constant 1077936128 - 53: 20(float) Constant 1082130432 - 55: 6(int) Constant 264 - 56: 6(int) Constant 2 - 81: TypeArray 36(int) 27 - 82: TypeArray 36(int) 22 - 83: TypeArray 81 22 -84(gl_MeshPerPrimitiveNV): TypeStruct 36(int) 36(int) 36(int) 81 82 83 - 85: 6(int) Constant 32 - 86: TypeArray 84(gl_MeshPerPrimitiveNV) 85 - 87: TypePointer Output 86 -88(gl_MeshPrimitivesNV): 87(ptr) Variable Output - 90: 36(int) Constant 6 - 91: TypePointer Output 36(int) - 94: 36(int) Constant 7 - 97: 36(int) Constant 8 - 100: 36(int) Constant 9 - 126: 6(int) Constant 96 - 127: TypeArray 6(int) 126 - 128: TypePointer Output 127 -129(gl_PrimitiveIndicesNV): 128(ptr) Variable Output - 130: 6(int) Constant 257 - 131: TypePointer Output 6(int) - 133: 36(int) Constant 95 - 141: TypePointer Input 36(int) - 142(gl_DrawID): 141(ptr) Variable Input - 145: 6(int) Constant 16909060 -146(gl_PrimitiveCountNV): 131(ptr) Variable Output - 147: 9(ivec3) ConstantComposite 85 27 27 - 4(main): 2 Function None 3 - 5: Label - 8(iid): 7(ptr) Variable Function - 16(gid): 7(ptr) Variable Function - 14: 13(ptr) AccessChain 11(gl_LocalInvocationID) 12 - 15: 6(int) Load 14 - Store 8(iid) 15 - 18: 13(ptr) AccessChain 17(gl_WorkGroupID) 12 - 19: 6(int) Load 18 - Store 16(gid) 19 - 35: 6(int) Load 8(iid) - 41: 40(ptr) AccessChain 34(gl_MeshVerticesNV) 35 37 - Store 41 39 - 42: 6(int) Load 8(iid) - 46: 45(ptr) AccessChain 34(gl_MeshVerticesNV) 42 43 - Store 46 44 - 47: 6(int) Load 8(iid) - 51: 45(ptr) AccessChain 34(gl_MeshVerticesNV) 47 48 49 - Store 51 50 - 52: 6(int) Load 8(iid) - 54: 45(ptr) AccessChain 34(gl_MeshVerticesNV) 52 49 48 - Store 54 53 - MemoryBarrier 27 55 - ControlBarrier 56 56 55 - 57: 6(int) Load 8(iid) - 58: 6(int) IAdd 57 27 - 59: 6(int) Load 8(iid) - 60: 40(ptr) AccessChain 34(gl_MeshVerticesNV) 59 37 - 61: 21(fvec4) Load 60 - 62: 40(ptr) AccessChain 34(gl_MeshVerticesNV) 58 37 - Store 62 61 - 63: 6(int) Load 8(iid) - 64: 6(int) IAdd 63 27 - 65: 6(int) Load 8(iid) - 66: 45(ptr) AccessChain 34(gl_MeshVerticesNV) 65 43 - 67: 20(float) Load 66 - 68: 45(ptr) AccessChain 34(gl_MeshVerticesNV) 64 43 - Store 68 67 - 69: 6(int) Load 8(iid) - 70: 6(int) IAdd 69 27 - 71: 6(int) Load 8(iid) - 72: 45(ptr) AccessChain 34(gl_MeshVerticesNV) 71 48 49 - 73: 20(float) Load 72 - 74: 45(ptr) AccessChain 34(gl_MeshVerticesNV) 70 48 49 - Store 74 73 - 75: 6(int) Load 8(iid) - 76: 6(int) IAdd 75 27 - 77: 6(int) Load 8(iid) - 78: 45(ptr) AccessChain 34(gl_MeshVerticesNV) 77 49 48 - 79: 20(float) Load 78 - 80: 45(ptr) AccessChain 34(gl_MeshVerticesNV) 76 49 48 - Store 80 79 - MemoryBarrier 27 55 - ControlBarrier 56 56 55 - 89: 6(int) Load 8(iid) - 92: 91(ptr) AccessChain 88(gl_MeshPrimitivesNV) 89 37 - Store 92 90 - 93: 6(int) Load 8(iid) - 95: 91(ptr) AccessChain 88(gl_MeshPrimitivesNV) 93 43 - Store 95 94 - 96: 6(int) Load 8(iid) - 98: 91(ptr) AccessChain 88(gl_MeshPrimitivesNV) 96 48 - Store 98 97 - 99: 6(int) Load 8(iid) - 101: 91(ptr) AccessChain 88(gl_MeshPrimitivesNV) 99 49 37 - Store 101 100 - MemoryBarrier 27 55 - ControlBarrier 56 56 55 - 102: 6(int) Load 8(iid) - 103: 6(int) IAdd 102 27 - 104: 6(int) Load 8(iid) - 105: 91(ptr) AccessChain 88(gl_MeshPrimitivesNV) 104 37 - 106: 36(int) Load 105 - 107: 91(ptr) AccessChain 88(gl_MeshPrimitivesNV) 103 37 - Store 107 106 - 108: 6(int) Load 8(iid) - 109: 6(int) IAdd 108 27 - 110: 6(int) Load 8(iid) - 111: 91(ptr) AccessChain 88(gl_MeshPrimitivesNV) 110 43 - 112: 36(int) Load 111 - 113: 91(ptr) AccessChain 88(gl_MeshPrimitivesNV) 109 43 - Store 113 112 - 114: 6(int) Load 8(iid) - 115: 6(int) IAdd 114 27 - 116: 6(int) Load 8(iid) - 117: 91(ptr) AccessChain 88(gl_MeshPrimitivesNV) 116 48 - 118: 36(int) Load 117 - 119: 91(ptr) AccessChain 88(gl_MeshPrimitivesNV) 115 48 - Store 119 118 - 120: 6(int) Load 8(iid) - 121: 6(int) IAdd 120 27 - 122: 6(int) Load 8(iid) - 123: 91(ptr) AccessChain 88(gl_MeshPrimitivesNV) 122 49 37 - 124: 36(int) Load 123 - 125: 91(ptr) AccessChain 88(gl_MeshPrimitivesNV) 121 49 37 - Store 125 124 - MemoryBarrier 27 55 - ControlBarrier 56 56 55 - 132: 131(ptr) AccessChain 129(gl_PrimitiveIndicesNV) 37 - Store 132 130 - 134: 131(ptr) AccessChain 129(gl_PrimitiveIndicesNV) 133 - Store 134 56 - 135: 6(int) Load 16(gid) - 136: 6(int) Load 16(gid) - 137: 6(int) ISub 136 27 - 138: 131(ptr) AccessChain 129(gl_PrimitiveIndicesNV) 137 - 139: 6(int) Load 138 - 140: 131(ptr) AccessChain 129(gl_PrimitiveIndicesNV) 135 - Store 140 139 - 143: 36(int) Load 142(gl_DrawID) - 144: 6(int) Bitcast 143 - 145: 144 WritePackedPrimitiveIndices4x8NV - Store 146(gl_PrimitiveCountNV) 126 - MemoryBarrier 27 55 - ControlBarrier 56 56 55 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.meshShaderPerViewBuiltins.mesh.out b/deps/glslang/Test/baseResults/spv.meshShaderPerViewBuiltins.mesh.out deleted file mode 100644 index 86a4fd2e..00000000 --- a/deps/glslang/Test/baseResults/spv.meshShaderPerViewBuiltins.mesh.out +++ /dev/null @@ -1,213 +0,0 @@ -spv.meshShaderPerViewBuiltins.mesh -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 126 - - Capability PerViewAttributesNV - Capability MeshShadingNV - Extension "SPV_NVX_multiview_per_view_attributes" - Extension "SPV_NV_mesh_shader" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint MeshNV 4 "main" 11 20 21 40 72 - ExecutionMode 4 LocalSize 32 1 1 - ExecutionMode 4 OutputVertices 81 - ExecutionMode 4 OutputPrimitivesNV 32 - ExecutionMode 4 OutputTrianglesNV - Source GLSL 450 - SourceExtension "GL_NV_mesh_shader" - Name 4 "main" - Name 8 "iid" - Name 11 "gl_LocalInvocationID" - Name 16 "viewID" - Name 20 "gl_MeshViewIndicesNV" - Name 21 "gl_MeshViewCountNV" - Name 36 "gl_MeshPerVertexNV" - MemberName 36(gl_MeshPerVertexNV) 0 "gl_Position" - MemberName 36(gl_MeshPerVertexNV) 1 "gl_PointSize" - MemberName 36(gl_MeshPerVertexNV) 2 "gl_ClipDistance" - MemberName 36(gl_MeshPerVertexNV) 3 "gl_CullDistance" - MemberName 36(gl_MeshPerVertexNV) 4 "gl_PositionPerViewNV" - MemberName 36(gl_MeshPerVertexNV) 5 "gl_ClipDistancePerViewNV" - MemberName 36(gl_MeshPerVertexNV) 6 "gl_CullDistancePerViewNV" - Name 40 "gl_MeshVerticesNV" - Name 68 "gl_MeshPerPrimitiveNV" - MemberName 68(gl_MeshPerPrimitiveNV) 0 "gl_PrimitiveID" - MemberName 68(gl_MeshPerPrimitiveNV) 1 "gl_Layer" - MemberName 68(gl_MeshPerPrimitiveNV) 2 "gl_ViewportIndex" - MemberName 68(gl_MeshPerPrimitiveNV) 3 "gl_ViewportMask" - MemberName 68(gl_MeshPerPrimitiveNV) 4 "gl_LayerPerViewNV" - MemberName 68(gl_MeshPerPrimitiveNV) 5 "gl_ViewportMaskPerViewNV" - Name 72 "gl_MeshPrimitivesNV" - Decorate 11(gl_LocalInvocationID) BuiltIn LocalInvocationId - Decorate 20(gl_MeshViewIndicesNV) BuiltIn MeshViewIndicesNV - Decorate 21(gl_MeshViewCountNV) BuiltIn MeshViewCountNV - MemberDecorate 36(gl_MeshPerVertexNV) 0 BuiltIn Position - MemberDecorate 36(gl_MeshPerVertexNV) 1 BuiltIn PointSize - MemberDecorate 36(gl_MeshPerVertexNV) 2 BuiltIn ClipDistance - MemberDecorate 36(gl_MeshPerVertexNV) 3 BuiltIn CullDistance - MemberDecorate 36(gl_MeshPerVertexNV) 4 PerViewNV - MemberDecorate 36(gl_MeshPerVertexNV) 4 BuiltIn PositionPerViewNV - MemberDecorate 36(gl_MeshPerVertexNV) 5 PerViewNV - MemberDecorate 36(gl_MeshPerVertexNV) 5 BuiltIn ClipDistancePerViewNV - MemberDecorate 36(gl_MeshPerVertexNV) 6 PerViewNV - MemberDecorate 36(gl_MeshPerVertexNV) 6 BuiltIn CullDistancePerViewNV - Decorate 36(gl_MeshPerVertexNV) Block - MemberDecorate 68(gl_MeshPerPrimitiveNV) 0 PerPrimitiveNV - MemberDecorate 68(gl_MeshPerPrimitiveNV) 0 BuiltIn PrimitiveId - MemberDecorate 68(gl_MeshPerPrimitiveNV) 1 PerPrimitiveNV - MemberDecorate 68(gl_MeshPerPrimitiveNV) 1 BuiltIn Layer - MemberDecorate 68(gl_MeshPerPrimitiveNV) 2 PerPrimitiveNV - MemberDecorate 68(gl_MeshPerPrimitiveNV) 2 BuiltIn ViewportIndex - MemberDecorate 68(gl_MeshPerPrimitiveNV) 3 PerPrimitiveNV - MemberDecorate 68(gl_MeshPerPrimitiveNV) 3 BuiltIn ViewportMaskNV - MemberDecorate 68(gl_MeshPerPrimitiveNV) 4 PerPrimitiveNV - MemberDecorate 68(gl_MeshPerPrimitiveNV) 4 PerViewNV - MemberDecorate 68(gl_MeshPerPrimitiveNV) 4 BuiltIn LayerPerViewNV - MemberDecorate 68(gl_MeshPerPrimitiveNV) 5 PerPrimitiveNV - MemberDecorate 68(gl_MeshPerPrimitiveNV) 5 PerViewNV - MemberDecorate 68(gl_MeshPerPrimitiveNV) 5 BuiltIn ViewportMaskPerViewNV - Decorate 68(gl_MeshPerPrimitiveNV) Block - Decorate 125 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypeVector 6(int) 3 - 10: TypePointer Input 9(ivec3) -11(gl_LocalInvocationID): 10(ptr) Variable Input - 12: 6(int) Constant 0 - 13: TypePointer Input 6(int) - 17: 6(int) Constant 4 - 18: TypeArray 6(int) 17 - 19: TypePointer Input 18 -20(gl_MeshViewIndicesNV): 19(ptr) Variable Input -21(gl_MeshViewCountNV): 13(ptr) Variable Input - 26: TypeFloat 32 - 27: TypeVector 26(float) 4 - 28: 6(int) Constant 1 - 29: TypeArray 26(float) 28 - 30: TypeArray 27(fvec4) 17 - 31: 6(int) Constant 3 - 32: TypeArray 26(float) 31 - 33: TypeArray 32 17 - 34: TypeArray 26(float) 17 - 35: TypeArray 34 17 -36(gl_MeshPerVertexNV): TypeStruct 27(fvec4) 26(float) 29 29 30 33 35 - 37: 6(int) Constant 81 - 38: TypeArray 36(gl_MeshPerVertexNV) 37 - 39: TypePointer Output 38 -40(gl_MeshVerticesNV): 39(ptr) Variable Output - 42: TypeInt 32 1 - 43: 42(int) Constant 4 - 45: 26(float) Constant 1065353216 - 46: 26(float) Constant 1073741824 - 47: 26(float) Constant 1077936128 - 48: 26(float) Constant 1082130432 - 49: 27(fvec4) ConstantComposite 45 46 47 48 - 50: TypePointer Output 27(fvec4) - 53: 42(int) Constant 5 - 55: 42(int) Constant 2 - 56: 26(float) Constant 1084227584 - 57: TypePointer Output 26(float) - 60: 42(int) Constant 6 - 62: 42(int) Constant 3 - 63: 26(float) Constant 1086324736 - 65: TypeArray 42(int) 28 - 66: TypeArray 42(int) 17 - 67: TypeArray 65 17 -68(gl_MeshPerPrimitiveNV): TypeStruct 42(int) 42(int) 42(int) 65 66 67 - 69: 6(int) Constant 32 - 70: TypeArray 68(gl_MeshPerPrimitiveNV) 69 - 71: TypePointer Output 70 -72(gl_MeshPrimitivesNV): 71(ptr) Variable Output - 75: 42(int) Constant 7 - 76: TypePointer Output 42(int) - 80: 42(int) Constant 0 - 81: 42(int) Constant 8 - 83: 6(int) Constant 264 - 84: 6(int) Constant 2 - 125: 9(ivec3) ConstantComposite 69 28 28 - 4(main): 2 Function None 3 - 5: Label - 8(iid): 7(ptr) Variable Function - 16(viewID): 7(ptr) Variable Function - 14: 13(ptr) AccessChain 11(gl_LocalInvocationID) 12 - 15: 6(int) Load 14 - Store 8(iid) 15 - 22: 6(int) Load 21(gl_MeshViewCountNV) - 23: 6(int) UMod 22 17 - 24: 13(ptr) AccessChain 20(gl_MeshViewIndicesNV) 23 - 25: 6(int) Load 24 - Store 16(viewID) 25 - 41: 6(int) Load 8(iid) - 44: 6(int) Load 16(viewID) - 51: 50(ptr) AccessChain 40(gl_MeshVerticesNV) 41 43 44 - Store 51 49 - 52: 6(int) Load 8(iid) - 54: 6(int) Load 16(viewID) - 58: 57(ptr) AccessChain 40(gl_MeshVerticesNV) 52 53 54 55 - Store 58 56 - 59: 6(int) Load 8(iid) - 61: 6(int) Load 16(viewID) - 64: 57(ptr) AccessChain 40(gl_MeshVerticesNV) 59 60 61 62 - Store 64 63 - 73: 6(int) Load 8(iid) - 74: 6(int) Load 16(viewID) - 77: 76(ptr) AccessChain 72(gl_MeshPrimitivesNV) 73 43 74 - Store 77 75 - 78: 6(int) Load 8(iid) - 79: 6(int) Load 16(viewID) - 82: 76(ptr) AccessChain 72(gl_MeshPrimitivesNV) 78 53 79 80 - Store 82 81 - MemoryBarrier 28 83 - ControlBarrier 84 84 83 - 85: 6(int) Load 8(iid) - 86: 6(int) IAdd 85 28 - 87: 6(int) Load 16(viewID) - 88: 6(int) Load 8(iid) - 89: 6(int) Load 16(viewID) - 90: 50(ptr) AccessChain 40(gl_MeshVerticesNV) 88 43 89 - 91: 27(fvec4) Load 90 - 92: 50(ptr) AccessChain 40(gl_MeshVerticesNV) 86 43 87 - Store 92 91 - 93: 6(int) Load 8(iid) - 94: 6(int) IAdd 93 28 - 95: 6(int) Load 16(viewID) - 96: 6(int) Load 8(iid) - 97: 6(int) Load 16(viewID) - 98: 57(ptr) AccessChain 40(gl_MeshVerticesNV) 96 53 97 55 - 99: 26(float) Load 98 - 100: 57(ptr) AccessChain 40(gl_MeshVerticesNV) 94 53 95 55 - Store 100 99 - 101: 6(int) Load 8(iid) - 102: 6(int) IAdd 101 28 - 103: 6(int) Load 16(viewID) - 104: 6(int) Load 8(iid) - 105: 6(int) Load 16(viewID) - 106: 57(ptr) AccessChain 40(gl_MeshVerticesNV) 104 60 105 62 - 107: 26(float) Load 106 - 108: 57(ptr) AccessChain 40(gl_MeshVerticesNV) 102 60 103 62 - Store 108 107 - 109: 6(int) Load 8(iid) - 110: 6(int) IAdd 109 28 - 111: 6(int) Load 16(viewID) - 112: 6(int) Load 8(iid) - 113: 6(int) Load 16(viewID) - 114: 76(ptr) AccessChain 72(gl_MeshPrimitivesNV) 112 43 113 - 115: 42(int) Load 114 - 116: 76(ptr) AccessChain 72(gl_MeshPrimitivesNV) 110 43 111 - Store 116 115 - 117: 6(int) Load 8(iid) - 118: 6(int) IAdd 117 28 - 119: 6(int) Load 16(viewID) - 120: 6(int) Load 8(iid) - 121: 6(int) Load 16(viewID) - 122: 76(ptr) AccessChain 72(gl_MeshPrimitivesNV) 120 53 121 80 - 123: 42(int) Load 122 - 124: 76(ptr) AccessChain 72(gl_MeshPrimitivesNV) 118 53 119 80 - Store 124 123 - MemoryBarrier 28 83 - ControlBarrier 84 84 83 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.meshShaderPerViewUserDefined.mesh.out b/deps/glslang/Test/baseResults/spv.meshShaderPerViewUserDefined.mesh.out deleted file mode 100644 index e9eaed3f..00000000 --- a/deps/glslang/Test/baseResults/spv.meshShaderPerViewUserDefined.mesh.out +++ /dev/null @@ -1,202 +0,0 @@ -spv.meshShaderPerViewUserDefined.mesh -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 108 - - Capability MeshShadingNV - Extension "SPV_NV_mesh_shader" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint MeshNV 4 "main" 11 20 21 35 67 92 95 96 97 102 105 106 107 - ExecutionMode 4 LocalSize 32 1 1 - ExecutionMode 4 OutputVertices 81 - ExecutionMode 4 OutputPrimitivesNV 32 - ExecutionMode 4 OutputTrianglesNV - Source GLSL 450 - SourceExtension "GL_NV_mesh_shader" - Name 4 "main" - Name 8 "iid" - Name 11 "gl_LocalInvocationID" - Name 16 "viewID" - Name 20 "gl_MeshViewIndicesNV" - Name 21 "gl_MeshViewCountNV" - Name 31 "block" - MemberName 31(block) 0 "color1" - MemberName 31(block) 1 "color2" - MemberName 31(block) 2 "color3" - MemberName 31(block) 3 "color4" - Name 35 "b" - Name 64 "perviewBlock" - MemberName 64(perviewBlock) 0 "color5" - MemberName 64(perviewBlock) 1 "color6" - MemberName 64(perviewBlock) 2 "color7" - MemberName 64(perviewBlock) 3 "color8" - Name 67 "b2" - Name 92 "nonBlk1" - Name 95 "nonBlk2" - Name 96 "nonBlk3" - Name 97 "nonBlk4" - Name 102 "nonBlkArr1" - Name 105 "nonBlkArr2" - Name 106 "nonBlkArr3" - Name 107 "nonBlkArr4" - Decorate 11(gl_LocalInvocationID) BuiltIn LocalInvocationId - Decorate 20(gl_MeshViewIndicesNV) BuiltIn MeshViewIndicesNV - Decorate 21(gl_MeshViewCountNV) BuiltIn MeshViewCountNV - MemberDecorate 31(block) 0 PerPrimitiveNV - MemberDecorate 31(block) 0 PerViewNV - MemberDecorate 31(block) 1 PerPrimitiveNV - MemberDecorate 31(block) 2 PerViewNV - Decorate 31(block) Block - Decorate 35(b) Location 0 - MemberDecorate 64(perviewBlock) 0 PerPrimitiveNV - MemberDecorate 64(perviewBlock) 0 PerViewNV - MemberDecorate 64(perviewBlock) 1 PerPrimitiveNV - MemberDecorate 64(perviewBlock) 1 PerViewNV - MemberDecorate 64(perviewBlock) 2 PerViewNV - MemberDecorate 64(perviewBlock) 3 PerViewNV - Decorate 64(perviewBlock) Block - Decorate 67(b2) Location 10 - Decorate 89 BuiltIn WorkgroupSize - Decorate 92(nonBlk1) PerViewNV - Decorate 92(nonBlk1) Location 18 - Decorate 95(nonBlk2) PerPrimitiveNV - Decorate 95(nonBlk2) PerViewNV - Decorate 95(nonBlk2) Location 19 - Decorate 96(nonBlk3) PerViewNV - Decorate 96(nonBlk3) Location 20 - Decorate 97(nonBlk4) PerPrimitiveNV - Decorate 97(nonBlk4) PerViewNV - Decorate 97(nonBlk4) Location 21 - Decorate 102(nonBlkArr1) PerViewNV - Decorate 102(nonBlkArr1) Location 22 - Decorate 105(nonBlkArr2) PerPrimitiveNV - Decorate 105(nonBlkArr2) PerViewNV - Decorate 105(nonBlkArr2) Location 24 - Decorate 106(nonBlkArr3) PerViewNV - Decorate 106(nonBlkArr3) Location 26 - Decorate 107(nonBlkArr4) PerPrimitiveNV - Decorate 107(nonBlkArr4) PerViewNV - Decorate 107(nonBlkArr4) Location 28 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypeVector 6(int) 3 - 10: TypePointer Input 9(ivec3) -11(gl_LocalInvocationID): 10(ptr) Variable Input - 12: 6(int) Constant 0 - 13: TypePointer Input 6(int) - 17: 6(int) Constant 4 - 18: TypeArray 6(int) 17 - 19: TypePointer Input 18 -20(gl_MeshViewIndicesNV): 19(ptr) Variable Input -21(gl_MeshViewCountNV): 13(ptr) Variable Input - 26: TypeFloat 32 - 27: TypeVector 26(float) 4 - 28: 6(int) Constant 3 - 29: TypeArray 27(fvec4) 28 - 30: TypeArray 29 17 - 31(block): TypeStruct 30 29 30 27(fvec4) - 32: 6(int) Constant 81 - 33: TypeArray 31(block) 32 - 34: TypePointer Output 33 - 35(b): 34(ptr) Variable Output - 37: TypeInt 32 1 - 38: 37(int) Constant 0 - 40: 37(int) Constant 2 - 41: 26(float) Constant 1065353216 - 42: 27(fvec4) ConstantComposite 41 41 41 41 - 43: TypePointer Output 27(fvec4) - 46: 37(int) Constant 1 - 47: 26(float) Constant 1073741824 - 48: 27(fvec4) ConstantComposite 47 47 47 47 - 52: 26(float) Constant 1077936128 - 53: 27(fvec4) ConstantComposite 52 52 52 52 - 56: 37(int) Constant 3 - 57: 26(float) Constant 1082130432 - 58: 27(fvec4) ConstantComposite 57 57 57 57 - 60: 6(int) Constant 1 - 61: 6(int) Constant 264 - 62: 6(int) Constant 2 - 63: TypeArray 27(fvec4) 17 -64(perviewBlock): TypeStruct 63 30 30 63 - 65: TypeArray 64(perviewBlock) 32 - 66: TypePointer Output 65 - 67(b2): 66(ptr) Variable Output - 70: 26(float) Constant 1084227584 - 71: 27(fvec4) ConstantComposite 70 70 70 70 - 75: 26(float) Constant 1086324736 - 76: 27(fvec4) ConstantComposite 75 75 75 75 - 80: 26(float) Constant 1088421888 - 81: 27(fvec4) ConstantComposite 80 80 80 80 - 85: 26(float) Constant 1090519040 - 86: 27(fvec4) ConstantComposite 85 85 85 85 - 88: 6(int) Constant 32 - 89: 9(ivec3) ConstantComposite 88 60 60 - 90: TypeArray 63 32 - 91: TypePointer Output 90 - 92(nonBlk1): 91(ptr) Variable Output - 93: TypeArray 63 88 - 94: TypePointer Output 93 - 95(nonBlk2): 94(ptr) Variable Output - 96(nonBlk3): 91(ptr) Variable Output - 97(nonBlk4): 94(ptr) Variable Output - 98: TypeArray 27(fvec4) 62 - 99: TypeArray 98 17 - 100: TypeArray 99 32 - 101: TypePointer Output 100 - 102(nonBlkArr1): 101(ptr) Variable Output - 103: TypeArray 99 88 - 104: TypePointer Output 103 - 105(nonBlkArr2): 104(ptr) Variable Output - 106(nonBlkArr3): 101(ptr) Variable Output - 107(nonBlkArr4): 104(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 8(iid): 7(ptr) Variable Function - 16(viewID): 7(ptr) Variable Function - 14: 13(ptr) AccessChain 11(gl_LocalInvocationID) 12 - 15: 6(int) Load 14 - Store 8(iid) 15 - 22: 6(int) Load 21(gl_MeshViewCountNV) - 23: 6(int) UMod 22 17 - 24: 13(ptr) AccessChain 20(gl_MeshViewIndicesNV) 23 - 25: 6(int) Load 24 - Store 16(viewID) 25 - 36: 6(int) Load 8(iid) - 39: 6(int) Load 16(viewID) - 44: 43(ptr) AccessChain 35(b) 36 38 39 40 - Store 44 42 - 45: 6(int) Load 8(iid) - 49: 43(ptr) AccessChain 35(b) 45 46 46 - Store 49 48 - 50: 6(int) Load 8(iid) - 51: 6(int) Load 16(viewID) - 54: 43(ptr) AccessChain 35(b) 50 40 51 40 - Store 54 53 - 55: 6(int) Load 8(iid) - 59: 43(ptr) AccessChain 35(b) 55 56 - Store 59 58 - MemoryBarrier 60 61 - ControlBarrier 62 62 61 - 68: 6(int) Load 8(iid) - 69: 6(int) Load 16(viewID) - 72: 43(ptr) AccessChain 67(b2) 68 38 69 - Store 72 71 - 73: 6(int) Load 8(iid) - 74: 6(int) Load 16(viewID) - 77: 43(ptr) AccessChain 67(b2) 73 46 74 46 - Store 77 76 - 78: 6(int) Load 8(iid) - 79: 6(int) Load 16(viewID) - 82: 43(ptr) AccessChain 67(b2) 78 40 79 40 - Store 82 81 - 83: 6(int) Load 8(iid) - 84: 6(int) Load 16(viewID) - 87: 43(ptr) AccessChain 67(b2) 83 56 84 - Store 87 86 - MemoryBarrier 60 61 - ControlBarrier 62 62 61 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.meshShaderPerView_Errors.mesh.out b/deps/glslang/Test/baseResults/spv.meshShaderPerView_Errors.mesh.out deleted file mode 100644 index aa0b99ee..00000000 --- a/deps/glslang/Test/baseResults/spv.meshShaderPerView_Errors.mesh.out +++ /dev/null @@ -1,11 +0,0 @@ -spv.meshShaderPerView_Errors.mesh -ERROR: 0:19: '[]' : only outermost dimension of an array of arrays can be implicitly sized -ERROR: 0:20: '[]' : mesh view output array size must be gl_MaxMeshViewCountNV or implicitly sized -ERROR: 0:21: 'perviewNV' : requires a view array dimension -ERROR: 0:25: '[]' : only outermost dimension of an array of arrays can be implicitly sized -ERROR: 0:26: '[]' : mesh view output array size must be gl_MaxMeshViewCountNV or implicitly sized -ERROR: 0:27: 'perviewNV' : requires a view array dimension -ERROR: 6 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.meshShaderRedeclBuiltins.mesh.out b/deps/glslang/Test/baseResults/spv.meshShaderRedeclBuiltins.mesh.out deleted file mode 100644 index bfd2d85b..00000000 --- a/deps/glslang/Test/baseResults/spv.meshShaderRedeclBuiltins.mesh.out +++ /dev/null @@ -1,216 +0,0 @@ -spv.meshShaderRedeclBuiltins.mesh -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 129 - - Capability ClipDistance - Capability CullDistance - Capability ShaderViewportMaskNV - Capability MeshShadingNV - Extension "SPV_NV_mesh_shader" - Extension "SPV_NV_viewport_array2" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint MeshNV 4 "main" 11 17 28 81 122 127 - ExecutionMode 4 LocalSize 32 1 1 - ExecutionMode 4 OutputVertices 81 - ExecutionMode 4 OutputPrimitivesNV 32 - ExecutionMode 4 OutputTrianglesNV - Source GLSL 460 - SourceExtension "GL_NV_mesh_shader" - Name 4 "main" - Name 8 "iid" - Name 11 "gl_LocalInvocationID" - Name 16 "gid" - Name 17 "gl_WorkGroupID" - Name 24 "gl_MeshPerVertexNV" - MemberName 24(gl_MeshPerVertexNV) 0 "gl_Position" - MemberName 24(gl_MeshPerVertexNV) 1 "gl_PointSize" - MemberName 24(gl_MeshPerVertexNV) 2 "gl_ClipDistance" - MemberName 24(gl_MeshPerVertexNV) 3 "gl_CullDistance" - Name 28 "gl_MeshVerticesNV" - Name 77 "gl_MeshPerPrimitiveNV" - MemberName 77(gl_MeshPerPrimitiveNV) 0 "gl_PrimitiveID" - MemberName 77(gl_MeshPerPrimitiveNV) 1 "gl_Layer" - MemberName 77(gl_MeshPerPrimitiveNV) 2 "gl_ViewportIndex" - MemberName 77(gl_MeshPerPrimitiveNV) 3 "gl_ViewportMask" - Name 81 "gl_MeshPrimitivesNV" - Name 122 "gl_PrimitiveIndicesNV" - Name 127 "gl_PrimitiveCountNV" - Decorate 11(gl_LocalInvocationID) BuiltIn LocalInvocationId - Decorate 17(gl_WorkGroupID) BuiltIn WorkgroupId - MemberDecorate 24(gl_MeshPerVertexNV) 0 BuiltIn Position - MemberDecorate 24(gl_MeshPerVertexNV) 1 BuiltIn PointSize - MemberDecorate 24(gl_MeshPerVertexNV) 2 BuiltIn ClipDistance - MemberDecorate 24(gl_MeshPerVertexNV) 3 BuiltIn CullDistance - Decorate 24(gl_MeshPerVertexNV) Block - MemberDecorate 77(gl_MeshPerPrimitiveNV) 0 PerPrimitiveNV - MemberDecorate 77(gl_MeshPerPrimitiveNV) 0 BuiltIn PrimitiveId - MemberDecorate 77(gl_MeshPerPrimitiveNV) 1 PerPrimitiveNV - MemberDecorate 77(gl_MeshPerPrimitiveNV) 1 BuiltIn Layer - MemberDecorate 77(gl_MeshPerPrimitiveNV) 2 PerPrimitiveNV - MemberDecorate 77(gl_MeshPerPrimitiveNV) 2 BuiltIn ViewportIndex - MemberDecorate 77(gl_MeshPerPrimitiveNV) 3 PerPrimitiveNV - MemberDecorate 77(gl_MeshPerPrimitiveNV) 3 BuiltIn ViewportMaskNV - Decorate 77(gl_MeshPerPrimitiveNV) Block - Decorate 122(gl_PrimitiveIndicesNV) BuiltIn PrimitiveIndicesNV - Decorate 127(gl_PrimitiveCountNV) BuiltIn PrimitiveCountNV - Decorate 128 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypeVector 6(int) 3 - 10: TypePointer Input 9(ivec3) -11(gl_LocalInvocationID): 10(ptr) Variable Input - 12: 6(int) Constant 0 - 13: TypePointer Input 6(int) -17(gl_WorkGroupID): 10(ptr) Variable Input - 20: TypeFloat 32 - 21: TypeVector 20(float) 4 - 22: 6(int) Constant 4 - 23: TypeArray 20(float) 22 -24(gl_MeshPerVertexNV): TypeStruct 21(fvec4) 20(float) 23 23 - 25: 6(int) Constant 81 - 26: TypeArray 24(gl_MeshPerVertexNV) 25 - 27: TypePointer Output 26 -28(gl_MeshVerticesNV): 27(ptr) Variable Output - 30: TypeInt 32 1 - 31: 30(int) Constant 0 - 32: 20(float) Constant 1065353216 - 33: 21(fvec4) ConstantComposite 32 32 32 32 - 34: TypePointer Output 21(fvec4) - 37: 30(int) Constant 1 - 38: 20(float) Constant 1073741824 - 39: TypePointer Output 20(float) - 42: 30(int) Constant 2 - 43: 30(int) Constant 3 - 44: 20(float) Constant 1077936128 - 47: 20(float) Constant 1082130432 - 49: 6(int) Constant 1 - 50: 6(int) Constant 264 - 51: 6(int) Constant 2 - 76: TypeArray 30(int) 49 -77(gl_MeshPerPrimitiveNV): TypeStruct 30(int) 30(int) 30(int) 76 - 78: 6(int) Constant 32 - 79: TypeArray 77(gl_MeshPerPrimitiveNV) 78 - 80: TypePointer Output 79 -81(gl_MeshPrimitivesNV): 80(ptr) Variable Output - 83: 30(int) Constant 6 - 84: TypePointer Output 30(int) - 87: 30(int) Constant 7 - 90: 30(int) Constant 8 - 93: 30(int) Constant 9 - 119: 6(int) Constant 96 - 120: TypeArray 6(int) 119 - 121: TypePointer Output 120 -122(gl_PrimitiveIndicesNV): 121(ptr) Variable Output - 123: TypePointer Output 6(int) - 125: 30(int) Constant 95 -127(gl_PrimitiveCountNV): 123(ptr) Variable Output - 128: 9(ivec3) ConstantComposite 78 49 49 - 4(main): 2 Function None 3 - 5: Label - 8(iid): 7(ptr) Variable Function - 16(gid): 7(ptr) Variable Function - 14: 13(ptr) AccessChain 11(gl_LocalInvocationID) 12 - 15: 6(int) Load 14 - Store 8(iid) 15 - 18: 13(ptr) AccessChain 17(gl_WorkGroupID) 12 - 19: 6(int) Load 18 - Store 16(gid) 19 - 29: 6(int) Load 8(iid) - 35: 34(ptr) AccessChain 28(gl_MeshVerticesNV) 29 31 - Store 35 33 - 36: 6(int) Load 8(iid) - 40: 39(ptr) AccessChain 28(gl_MeshVerticesNV) 36 37 - Store 40 38 - 41: 6(int) Load 8(iid) - 45: 39(ptr) AccessChain 28(gl_MeshVerticesNV) 41 42 43 - Store 45 44 - 46: 6(int) Load 8(iid) - 48: 39(ptr) AccessChain 28(gl_MeshVerticesNV) 46 43 42 - Store 48 47 - MemoryBarrier 49 50 - ControlBarrier 51 51 50 - 52: 6(int) Load 8(iid) - 53: 6(int) IAdd 52 49 - 54: 6(int) Load 8(iid) - 55: 34(ptr) AccessChain 28(gl_MeshVerticesNV) 54 31 - 56: 21(fvec4) Load 55 - 57: 34(ptr) AccessChain 28(gl_MeshVerticesNV) 53 31 - Store 57 56 - 58: 6(int) Load 8(iid) - 59: 6(int) IAdd 58 49 - 60: 6(int) Load 8(iid) - 61: 39(ptr) AccessChain 28(gl_MeshVerticesNV) 60 37 - 62: 20(float) Load 61 - 63: 39(ptr) AccessChain 28(gl_MeshVerticesNV) 59 37 - Store 63 62 - 64: 6(int) Load 8(iid) - 65: 6(int) IAdd 64 49 - 66: 6(int) Load 8(iid) - 67: 39(ptr) AccessChain 28(gl_MeshVerticesNV) 66 42 43 - 68: 20(float) Load 67 - 69: 39(ptr) AccessChain 28(gl_MeshVerticesNV) 65 42 43 - Store 69 68 - 70: 6(int) Load 8(iid) - 71: 6(int) IAdd 70 49 - 72: 6(int) Load 8(iid) - 73: 39(ptr) AccessChain 28(gl_MeshVerticesNV) 72 43 42 - 74: 20(float) Load 73 - 75: 39(ptr) AccessChain 28(gl_MeshVerticesNV) 71 43 42 - Store 75 74 - MemoryBarrier 49 50 - ControlBarrier 51 51 50 - 82: 6(int) Load 8(iid) - 85: 84(ptr) AccessChain 81(gl_MeshPrimitivesNV) 82 31 - Store 85 83 - 86: 6(int) Load 8(iid) - 88: 84(ptr) AccessChain 81(gl_MeshPrimitivesNV) 86 37 - Store 88 87 - 89: 6(int) Load 8(iid) - 91: 84(ptr) AccessChain 81(gl_MeshPrimitivesNV) 89 42 - Store 91 90 - 92: 6(int) Load 8(iid) - 94: 84(ptr) AccessChain 81(gl_MeshPrimitivesNV) 92 43 31 - Store 94 93 - MemoryBarrier 49 50 - ControlBarrier 51 51 50 - 95: 6(int) Load 8(iid) - 96: 6(int) IAdd 95 49 - 97: 6(int) Load 8(iid) - 98: 84(ptr) AccessChain 81(gl_MeshPrimitivesNV) 97 31 - 99: 30(int) Load 98 - 100: 84(ptr) AccessChain 81(gl_MeshPrimitivesNV) 96 31 - Store 100 99 - 101: 6(int) Load 8(iid) - 102: 6(int) IAdd 101 49 - 103: 6(int) Load 8(iid) - 104: 84(ptr) AccessChain 81(gl_MeshPrimitivesNV) 103 37 - 105: 30(int) Load 104 - 106: 84(ptr) AccessChain 81(gl_MeshPrimitivesNV) 102 37 - Store 106 105 - 107: 6(int) Load 8(iid) - 108: 6(int) IAdd 107 49 - 109: 6(int) Load 8(iid) - 110: 84(ptr) AccessChain 81(gl_MeshPrimitivesNV) 109 42 - 111: 30(int) Load 110 - 112: 84(ptr) AccessChain 81(gl_MeshPrimitivesNV) 108 42 - Store 112 111 - 113: 6(int) Load 8(iid) - 114: 6(int) IAdd 113 49 - 115: 6(int) Load 8(iid) - 116: 84(ptr) AccessChain 81(gl_MeshPrimitivesNV) 115 43 31 - 117: 30(int) Load 116 - 118: 84(ptr) AccessChain 81(gl_MeshPrimitivesNV) 114 43 31 - Store 118 117 - MemoryBarrier 49 50 - ControlBarrier 51 51 50 - 124: 123(ptr) AccessChain 122(gl_PrimitiveIndicesNV) 31 - Store 124 49 - 126: 123(ptr) AccessChain 122(gl_PrimitiveIndicesNV) 125 - Store 126 51 - Store 127(gl_PrimitiveCountNV) 119 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.meshShaderRedeclPerViewBuiltins.mesh.out b/deps/glslang/Test/baseResults/spv.meshShaderRedeclPerViewBuiltins.mesh.out deleted file mode 100644 index 9f881e61..00000000 --- a/deps/glslang/Test/baseResults/spv.meshShaderRedeclPerViewBuiltins.mesh.out +++ /dev/null @@ -1,187 +0,0 @@ -spv.meshShaderRedeclPerViewBuiltins.mesh -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 120 - - Capability PerViewAttributesNV - Capability MeshShadingNV - Extension "SPV_NVX_multiview_per_view_attributes" - Extension "SPV_NV_mesh_shader" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint MeshNV 4 "main" 11 20 21 35 67 - ExecutionMode 4 LocalSize 32 1 1 - ExecutionMode 4 OutputVertices 81 - ExecutionMode 4 OutputPrimitivesNV 32 - ExecutionMode 4 OutputTrianglesNV - Source GLSL 450 - SourceExtension "GL_NV_mesh_shader" - Name 4 "main" - Name 8 "iid" - Name 11 "gl_LocalInvocationID" - Name 16 "viewID" - Name 20 "gl_MeshViewIndicesNV" - Name 21 "gl_MeshViewCountNV" - Name 31 "gl_MeshPerVertexNV" - MemberName 31(gl_MeshPerVertexNV) 0 "gl_PositionPerViewNV" - MemberName 31(gl_MeshPerVertexNV) 1 "gl_ClipDistancePerViewNV" - MemberName 31(gl_MeshPerVertexNV) 2 "gl_CullDistancePerViewNV" - Name 35 "gl_MeshVerticesNV" - Name 63 "gl_MeshPerPrimitiveNV" - MemberName 63(gl_MeshPerPrimitiveNV) 0 "gl_LayerPerViewNV" - MemberName 63(gl_MeshPerPrimitiveNV) 1 "gl_ViewportMaskPerViewNV" - Name 67 "gl_MeshPrimitivesNV" - Decorate 11(gl_LocalInvocationID) BuiltIn LocalInvocationId - Decorate 20(gl_MeshViewIndicesNV) BuiltIn MeshViewIndicesNV - Decorate 21(gl_MeshViewCountNV) BuiltIn MeshViewCountNV - MemberDecorate 31(gl_MeshPerVertexNV) 0 PerViewNV - MemberDecorate 31(gl_MeshPerVertexNV) 0 BuiltIn PositionPerViewNV - MemberDecorate 31(gl_MeshPerVertexNV) 1 PerViewNV - MemberDecorate 31(gl_MeshPerVertexNV) 1 BuiltIn ClipDistancePerViewNV - MemberDecorate 31(gl_MeshPerVertexNV) 2 PerViewNV - MemberDecorate 31(gl_MeshPerVertexNV) 2 BuiltIn CullDistancePerViewNV - Decorate 31(gl_MeshPerVertexNV) Block - MemberDecorate 63(gl_MeshPerPrimitiveNV) 0 PerPrimitiveNV - MemberDecorate 63(gl_MeshPerPrimitiveNV) 0 PerViewNV - MemberDecorate 63(gl_MeshPerPrimitiveNV) 0 BuiltIn LayerPerViewNV - MemberDecorate 63(gl_MeshPerPrimitiveNV) 1 PerPrimitiveNV - MemberDecorate 63(gl_MeshPerPrimitiveNV) 1 PerViewNV - MemberDecorate 63(gl_MeshPerPrimitiveNV) 1 BuiltIn ViewportMaskPerViewNV - Decorate 63(gl_MeshPerPrimitiveNV) Block - Decorate 119 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypeVector 6(int) 3 - 10: TypePointer Input 9(ivec3) -11(gl_LocalInvocationID): 10(ptr) Variable Input - 12: 6(int) Constant 0 - 13: TypePointer Input 6(int) - 17: 6(int) Constant 4 - 18: TypeArray 6(int) 17 - 19: TypePointer Input 18 -20(gl_MeshViewIndicesNV): 19(ptr) Variable Input -21(gl_MeshViewCountNV): 13(ptr) Variable Input - 26: TypeFloat 32 - 27: TypeVector 26(float) 4 - 28: TypeArray 27(fvec4) 17 - 29: TypeArray 26(float) 17 - 30: TypeArray 29 17 -31(gl_MeshPerVertexNV): TypeStruct 28 30 30 - 32: 6(int) Constant 81 - 33: TypeArray 31(gl_MeshPerVertexNV) 32 - 34: TypePointer Output 33 -35(gl_MeshVerticesNV): 34(ptr) Variable Output - 37: TypeInt 32 1 - 38: 37(int) Constant 0 - 40: 26(float) Constant 1065353216 - 41: 26(float) Constant 1073741824 - 42: 26(float) Constant 1077936128 - 43: 26(float) Constant 1082130432 - 44: 27(fvec4) ConstantComposite 40 41 42 43 - 45: TypePointer Output 27(fvec4) - 48: 37(int) Constant 1 - 50: 37(int) Constant 2 - 51: 26(float) Constant 1084227584 - 52: TypePointer Output 26(float) - 56: 37(int) Constant 3 - 57: 26(float) Constant 1086324736 - 59: TypeArray 37(int) 17 - 60: 6(int) Constant 1 - 61: TypeArray 37(int) 60 - 62: TypeArray 61 17 -63(gl_MeshPerPrimitiveNV): TypeStruct 59 62 - 64: 6(int) Constant 32 - 65: TypeArray 63(gl_MeshPerPrimitiveNV) 64 - 66: TypePointer Output 65 -67(gl_MeshPrimitivesNV): 66(ptr) Variable Output - 70: 37(int) Constant 7 - 71: TypePointer Output 37(int) - 75: 37(int) Constant 8 - 77: 6(int) Constant 264 - 78: 6(int) Constant 2 - 119: 9(ivec3) ConstantComposite 64 60 60 - 4(main): 2 Function None 3 - 5: Label - 8(iid): 7(ptr) Variable Function - 16(viewID): 7(ptr) Variable Function - 14: 13(ptr) AccessChain 11(gl_LocalInvocationID) 12 - 15: 6(int) Load 14 - Store 8(iid) 15 - 22: 6(int) Load 21(gl_MeshViewCountNV) - 23: 6(int) UMod 22 17 - 24: 13(ptr) AccessChain 20(gl_MeshViewIndicesNV) 23 - 25: 6(int) Load 24 - Store 16(viewID) 25 - 36: 6(int) Load 8(iid) - 39: 6(int) Load 16(viewID) - 46: 45(ptr) AccessChain 35(gl_MeshVerticesNV) 36 38 39 - Store 46 44 - 47: 6(int) Load 8(iid) - 49: 6(int) Load 16(viewID) - 53: 52(ptr) AccessChain 35(gl_MeshVerticesNV) 47 48 49 50 - Store 53 51 - 54: 6(int) Load 8(iid) - 55: 6(int) Load 16(viewID) - 58: 52(ptr) AccessChain 35(gl_MeshVerticesNV) 54 50 55 56 - Store 58 57 - 68: 6(int) Load 8(iid) - 69: 6(int) Load 16(viewID) - 72: 71(ptr) AccessChain 67(gl_MeshPrimitivesNV) 68 38 69 - Store 72 70 - 73: 6(int) Load 8(iid) - 74: 6(int) Load 16(viewID) - 76: 71(ptr) AccessChain 67(gl_MeshPrimitivesNV) 73 48 74 38 - Store 76 75 - MemoryBarrier 60 77 - ControlBarrier 78 78 77 - 79: 6(int) Load 8(iid) - 80: 6(int) IAdd 79 60 - 81: 6(int) Load 16(viewID) - 82: 6(int) Load 8(iid) - 83: 6(int) Load 16(viewID) - 84: 45(ptr) AccessChain 35(gl_MeshVerticesNV) 82 38 83 - 85: 27(fvec4) Load 84 - 86: 45(ptr) AccessChain 35(gl_MeshVerticesNV) 80 38 81 - Store 86 85 - 87: 6(int) Load 8(iid) - 88: 6(int) IAdd 87 60 - 89: 6(int) Load 16(viewID) - 90: 6(int) Load 8(iid) - 91: 6(int) Load 16(viewID) - 92: 52(ptr) AccessChain 35(gl_MeshVerticesNV) 90 48 91 50 - 93: 26(float) Load 92 - 94: 52(ptr) AccessChain 35(gl_MeshVerticesNV) 88 48 89 50 - Store 94 93 - 95: 6(int) Load 8(iid) - 96: 6(int) IAdd 95 60 - 97: 6(int) Load 16(viewID) - 98: 6(int) Load 8(iid) - 99: 6(int) Load 16(viewID) - 100: 52(ptr) AccessChain 35(gl_MeshVerticesNV) 98 50 99 56 - 101: 26(float) Load 100 - 102: 52(ptr) AccessChain 35(gl_MeshVerticesNV) 96 50 97 56 - Store 102 101 - 103: 6(int) Load 8(iid) - 104: 6(int) IAdd 103 60 - 105: 6(int) Load 16(viewID) - 106: 6(int) Load 8(iid) - 107: 6(int) Load 16(viewID) - 108: 71(ptr) AccessChain 67(gl_MeshPrimitivesNV) 106 38 107 - 109: 37(int) Load 108 - 110: 71(ptr) AccessChain 67(gl_MeshPrimitivesNV) 104 38 105 - Store 110 109 - 111: 6(int) Load 8(iid) - 112: 6(int) IAdd 111 60 - 113: 6(int) Load 16(viewID) - 114: 6(int) Load 8(iid) - 115: 6(int) Load 16(viewID) - 116: 71(ptr) AccessChain 67(gl_MeshPrimitivesNV) 114 48 115 38 - 117: 37(int) Load 116 - 118: 71(ptr) AccessChain 67(gl_MeshPrimitivesNV) 112 48 113 38 - Store 118 117 - MemoryBarrier 60 77 - ControlBarrier 78 78 77 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.meshShaderSharedMem.mesh.out b/deps/glslang/Test/baseResults/spv.meshShaderSharedMem.mesh.out deleted file mode 100644 index 7960ffaa..00000000 --- a/deps/glslang/Test/baseResults/spv.meshShaderSharedMem.mesh.out +++ /dev/null @@ -1,130 +0,0 @@ -spv.meshShaderSharedMem.mesh -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 77 - - Capability StorageImageWriteWithoutFormat - Capability MeshShadingNV - Extension "SPV_NV_mesh_shader" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint MeshNV 4 "main" 11 17 - ExecutionMode 4 LocalSize 32 1 1 - ExecutionMode 4 OutputVertices 81 - ExecutionMode 4 OutputPrimitivesNV 32 - ExecutionMode 4 OutputTrianglesNV - Source GLSL 450 - SourceExtension "GL_NV_mesh_shader" - Name 4 "main" - Name 8 "iid" - Name 11 "gl_LocalInvocationID" - Name 16 "gid" - Name 17 "gl_WorkGroupID" - Name 20 "i" - Name 34 "mem" - Name 37 "block0" - MemberName 37(block0) 0 "uni_value" - Name 39 "" - Name 55 "uni_image" - Decorate 11(gl_LocalInvocationID) BuiltIn LocalInvocationId - Decorate 17(gl_WorkGroupID) BuiltIn WorkgroupId - MemberDecorate 37(block0) 0 Offset 0 - Decorate 37(block0) Block - Decorate 39 DescriptorSet 0 - Decorate 39 Binding 1 - Decorate 55(uni_image) DescriptorSet 0 - Decorate 55(uni_image) Binding 0 - Decorate 55(uni_image) NonReadable - Decorate 76 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypeVector 6(int) 3 - 10: TypePointer Input 9(ivec3) -11(gl_LocalInvocationID): 10(ptr) Variable Input - 12: 6(int) Constant 0 - 13: TypePointer Input 6(int) -17(gl_WorkGroupID): 10(ptr) Variable Input - 27: 6(int) Constant 10 - 28: TypeBool - 30: TypeFloat 32 - 31: TypeVector 30(float) 4 - 32: TypeArray 31(fvec4) 27 - 33: TypePointer Workgroup 32 - 34(mem): 33(ptr) Variable Workgroup - 37(block0): TypeStruct 6(int) - 38: TypePointer Uniform 37(block0) - 39: 38(ptr) Variable Uniform - 40: TypeInt 32 1 - 41: 40(int) Constant 0 - 42: TypePointer Uniform 6(int) - 48: TypePointer Workgroup 31(fvec4) - 51: 40(int) Constant 1 - 53: TypeImage 30(float) 2D nonsampled format:Unknown - 54: TypePointer UniformConstant 53 - 55(uni_image): 54(ptr) Variable UniformConstant - 59: TypeVector 40(int) 2 - 69: 6(int) Constant 1 - 73: 6(int) Constant 264 - 74: 6(int) Constant 2 - 75: 6(int) Constant 32 - 76: 9(ivec3) ConstantComposite 75 69 69 - 4(main): 2 Function None 3 - 5: Label - 8(iid): 7(ptr) Variable Function - 16(gid): 7(ptr) Variable Function - 20(i): 7(ptr) Variable Function - 14: 13(ptr) AccessChain 11(gl_LocalInvocationID) 12 - 15: 6(int) Load 14 - Store 8(iid) 15 - 18: 13(ptr) AccessChain 17(gl_WorkGroupID) 12 - 19: 6(int) Load 18 - Store 16(gid) 19 - Store 20(i) 12 - Branch 21 - 21: Label - LoopMerge 23 24 None - Branch 25 - 25: Label - 26: 6(int) Load 20(i) - 29: 28(bool) ULessThan 26 27 - BranchConditional 29 22 23 - 22: Label - 35: 6(int) Load 20(i) - 36: 6(int) Load 20(i) - 43: 42(ptr) AccessChain 39 41 - 44: 6(int) Load 43 - 45: 6(int) IAdd 36 44 - 46: 30(float) ConvertUToF 45 - 47: 31(fvec4) CompositeConstruct 46 46 46 46 - 49: 48(ptr) AccessChain 34(mem) 35 - Store 49 47 - Branch 24 - 24: Label - 50: 6(int) Load 20(i) - 52: 6(int) IAdd 50 51 - Store 20(i) 52 - Branch 21 - 23: Label - 56: 53 Load 55(uni_image) - 57: 6(int) Load 8(iid) - 58: 40(int) Bitcast 57 - 60: 59(ivec2) CompositeConstruct 58 58 - 61: 6(int) Load 16(gid) - 62: 48(ptr) AccessChain 34(mem) 61 - 63: 31(fvec4) Load 62 - ImageWrite 56 60 63 - 64: 53 Load 55(uni_image) - 65: 6(int) Load 8(iid) - 66: 40(int) Bitcast 65 - 67: 59(ivec2) CompositeConstruct 66 66 - 68: 6(int) Load 16(gid) - 70: 6(int) IAdd 68 69 - 71: 48(ptr) AccessChain 34(mem) 70 - 72: 31(fvec4) Load 71 - ImageWrite 64 67 72 - MemoryBarrier 69 73 - ControlBarrier 74 74 73 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.meshShaderTaskMem.mesh.out b/deps/glslang/Test/baseResults/spv.meshShaderTaskMem.mesh.out deleted file mode 100644 index be804392..00000000 --- a/deps/glslang/Test/baseResults/spv.meshShaderTaskMem.mesh.out +++ /dev/null @@ -1,109 +0,0 @@ -spv.meshShaderTaskMem.mesh -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 58 - - Capability MeshShadingNV - Extension "SPV_NV_mesh_shader" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint MeshNV 4 "main" 11 22 30 - ExecutionMode 4 LocalSize 32 1 1 - ExecutionMode 4 OutputVertices 81 - ExecutionMode 4 OutputPrimitivesNV 32 - ExecutionMode 4 OutputTrianglesNV - Source GLSL 450 - SourceExtension "GL_NV_mesh_shader" - Name 4 "main" - Name 8 "iid" - Name 11 "gl_LocalInvocationID" - Name 18 "outBlock" - MemberName 18(outBlock) 0 "gid5" - MemberName 18(outBlock) 1 "gid6" - Name 22 "myblk" - Name 28 "taskBlock" - MemberName 28(taskBlock) 0 "gid1" - MemberName 28(taskBlock) 1 "gid2" - Name 30 "mytask" - Name 36 "bufferBlock" - MemberName 36(bufferBlock) 0 "gid3" - MemberName 36(bufferBlock) 1 "gid4" - Name 38 "mybuf" - Decorate 11(gl_LocalInvocationID) BuiltIn LocalInvocationId - Decorate 18(outBlock) Block - Decorate 22(myblk) Location 0 - Decorate 27 ArrayStride 4 - MemberDecorate 28(taskBlock) 0 PerTaskNV - MemberDecorate 28(taskBlock) 0 Offset 0 - MemberDecorate 28(taskBlock) 1 PerTaskNV - MemberDecorate 28(taskBlock) 1 Offset 16 - Decorate 28(taskBlock) Block - Decorate 30(mytask) Location 0 - Decorate 35 ArrayStride 4 - MemberDecorate 36(bufferBlock) 0 Offset 0 - MemberDecorate 36(bufferBlock) 1 Offset 16 - Decorate 36(bufferBlock) BufferBlock - Decorate 38(mybuf) DescriptorSet 0 - Decorate 38(mybuf) Binding 0 - Decorate 57 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypeVector 6(int) 3 - 10: TypePointer Input 9(ivec3) -11(gl_LocalInvocationID): 10(ptr) Variable Input - 12: 6(int) Constant 0 - 13: TypePointer Input 6(int) - 16: TypeFloat 32 - 17: TypeVector 16(float) 4 - 18(outBlock): TypeStruct 16(float) 17(fvec4) - 19: 6(int) Constant 81 - 20: TypeArray 18(outBlock) 19 - 21: TypePointer Output 20 - 22(myblk): 21(ptr) Variable Output - 24: TypeInt 32 1 - 25: 24(int) Constant 0 - 26: 6(int) Constant 2 - 27: TypeArray 16(float) 26 - 28(taskBlock): TypeStruct 27 17(fvec4) - 29: TypePointer Input 28(taskBlock) - 30(mytask): 29(ptr) Variable Input - 31: 24(int) Constant 1 - 32: TypePointer Input 16(float) - 35: TypeArray 16(float) 26 - 36(bufferBlock): TypeStruct 35 17(fvec4) - 37: TypePointer Uniform 36(bufferBlock) - 38(mybuf): 37(ptr) Variable Uniform - 39: TypePointer Uniform 16(float) - 43: TypePointer Output 16(float) - 46: TypePointer Input 17(fvec4) - 49: TypePointer Uniform 17(fvec4) - 53: TypePointer Output 17(fvec4) - 55: 6(int) Constant 32 - 56: 6(int) Constant 1 - 57: 9(ivec3) ConstantComposite 55 56 56 - 4(main): 2 Function None 3 - 5: Label - 8(iid): 7(ptr) Variable Function - 14: 13(ptr) AccessChain 11(gl_LocalInvocationID) 12 - 15: 6(int) Load 14 - Store 8(iid) 15 - 23: 6(int) Load 8(iid) - 33: 32(ptr) AccessChain 30(mytask) 25 31 - 34: 16(float) Load 33 - 40: 39(ptr) AccessChain 38(mybuf) 25 31 - 41: 16(float) Load 40 - 42: 16(float) FAdd 34 41 - 44: 43(ptr) AccessChain 22(myblk) 23 25 - Store 44 42 - 45: 6(int) Load 8(iid) - 47: 46(ptr) AccessChain 30(mytask) 31 - 48: 17(fvec4) Load 47 - 50: 49(ptr) AccessChain 38(mybuf) 31 - 51: 17(fvec4) Load 50 - 52: 17(fvec4) FAdd 48 51 - 54: 53(ptr) AccessChain 22(myblk) 45 31 - Store 54 52 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.meshShaderUserDefined.mesh.out b/deps/glslang/Test/baseResults/spv.meshShaderUserDefined.mesh.out deleted file mode 100644 index 01ee933d..00000000 --- a/deps/glslang/Test/baseResults/spv.meshShaderUserDefined.mesh.out +++ /dev/null @@ -1,208 +0,0 @@ -spv.meshShaderUserDefined.mesh -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 141 - - Capability MeshShadingNV - Extension "SPV_NV_mesh_shader" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint MeshNV 4 "main" 11 17 34 104 - ExecutionMode 4 LocalSize 32 1 1 - ExecutionMode 4 OutputVertices 81 - ExecutionMode 4 OutputPrimitivesNV 32 - ExecutionMode 4 OutputTrianglesNV - Source GLSL 450 - SourceExtension "GL_NV_mesh_shader" - Name 4 "main" - Name 8 "iid" - Name 11 "gl_LocalInvocationID" - Name 16 "gid" - Name 17 "gl_WorkGroupID" - Name 30 "myblock" - MemberName 30(myblock) 0 "f" - MemberName 30(myblock) 1 "fArr" - MemberName 30(myblock) 2 "pos" - MemberName 30(myblock) 3 "posArr" - MemberName 30(myblock) 4 "m" - MemberName 30(myblock) 5 "mArr" - Name 34 "blk" - Name 100 "myblock2" - MemberName 100(myblock2) 0 "f" - MemberName 100(myblock2) 1 "pos" - MemberName 100(myblock2) 2 "m" - Name 104 "blk2" - Decorate 11(gl_LocalInvocationID) BuiltIn LocalInvocationId - Decorate 17(gl_WorkGroupID) BuiltIn WorkgroupId - MemberDecorate 30(myblock) 0 PerPrimitiveNV - MemberDecorate 30(myblock) 1 PerPrimitiveNV - MemberDecorate 30(myblock) 2 PerPrimitiveNV - MemberDecorate 30(myblock) 3 PerPrimitiveNV - MemberDecorate 30(myblock) 4 PerPrimitiveNV - MemberDecorate 30(myblock) 5 PerPrimitiveNV - Decorate 30(myblock) Block - Decorate 34(blk) Location 0 - Decorate 100(myblock2) Block - Decorate 104(blk2) Location 20 - Decorate 140 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypeVector 6(int) 3 - 10: TypePointer Input 9(ivec3) -11(gl_LocalInvocationID): 10(ptr) Variable Input - 12: 6(int) Constant 0 - 13: TypePointer Input 6(int) -17(gl_WorkGroupID): 10(ptr) Variable Input - 20: TypeFloat 32 - 21: 6(int) Constant 4 - 22: TypeArray 20(float) 21 - 23: TypeVector 20(float) 3 - 24: TypeVector 20(float) 4 - 25: TypeArray 24(fvec4) 21 - 26: TypeMatrix 24(fvec4) 4 - 27: TypeMatrix 23(fvec3) 3 - 28: 6(int) Constant 2 - 29: TypeArray 27 28 - 30(myblock): TypeStruct 20(float) 22 23(fvec3) 25 26 29 - 31: 6(int) Constant 32 - 32: TypeArray 30(myblock) 31 - 33: TypePointer Output 32 - 34(blk): 33(ptr) Variable Output - 36: TypeInt 32 1 - 37: 36(int) Constant 0 - 38: 20(float) Constant 1093664768 - 39: TypePointer Output 20(float) - 42: 6(int) Constant 1 - 44: 36(int) Constant 1 - 52: 36(int) Constant 2 - 53: 20(float) Constant 1096810496 - 54: 20(float) Constant 1097859072 - 55: 20(float) Constant 1095761920 - 56: 23(fvec3) ConstantComposite 53 54 55 - 57: TypePointer Output 23(fvec3) - 63: 36(int) Constant 3 - 72: 6(int) Constant 3 - 77: 36(int) Constant 4 - 78: 20(float) Constant 1098907648 - 79: 24(fvec4) ConstantComposite 55 53 54 78 - 80: TypePointer Output 24(fvec4) - 85: 36(int) Constant 5 - 94: 20(float) Constant 1099431936 - 95: 20(float) Constant 1099956224 - 96: 20(float) Constant 1100480512 - 97: 23(fvec3) ConstantComposite 94 95 96 - 99: 6(int) Constant 264 - 100(myblock2): TypeStruct 20(float) 24(fvec4) 26 - 101: 6(int) Constant 81 - 102: TypeArray 100(myblock2) 101 - 103: TypePointer Output 102 - 104(blk2): 103(ptr) Variable Output - 110: 20(float) Constant 1101004800 - 114: 20(float) Constant 1101529088 - 115: 20(float) Constant 1102053376 - 116: 20(float) Constant 1102577664 - 117: 20(float) Constant 1103101952 - 118: 24(fvec4) ConstantComposite 114 115 116 117 - 130: 20(float) Constant 1105723392 - 140: 9(ivec3) ConstantComposite 31 42 42 - 4(main): 2 Function None 3 - 5: Label - 8(iid): 7(ptr) Variable Function - 16(gid): 7(ptr) Variable Function - 14: 13(ptr) AccessChain 11(gl_LocalInvocationID) 12 - 15: 6(int) Load 14 - Store 8(iid) 15 - 18: 13(ptr) AccessChain 17(gl_WorkGroupID) 12 - 19: 6(int) Load 18 - Store 16(gid) 19 - 35: 6(int) Load 8(iid) - 40: 39(ptr) AccessChain 34(blk) 35 37 - Store 40 38 - 41: 6(int) Load 8(iid) - 43: 6(int) IAdd 41 42 - 45: 6(int) Load 16(gid) - 46: 6(int) Load 8(iid) - 47: 39(ptr) AccessChain 34(blk) 46 37 - 48: 20(float) Load 47 - 49: 39(ptr) AccessChain 34(blk) 43 44 45 - Store 49 48 - 50: 6(int) Load 8(iid) - 51: 6(int) UDiv 50 28 - 58: 57(ptr) AccessChain 34(blk) 51 52 - 59: 23(fvec3) Load 58 - 60: 23(fvec3) VectorShuffle 59 56 5 3 4 - Store 58 60 - 61: 6(int) Load 8(iid) - 62: 6(int) IMul 61 28 - 64: 6(int) Load 8(iid) - 65: 6(int) UDiv 64 28 - 66: 57(ptr) AccessChain 34(blk) 65 52 - 67: 23(fvec3) Load 66 - 68: 39(ptr) AccessChain 34(blk) 62 63 44 42 - 69: 20(float) CompositeExtract 67 0 - Store 68 69 - 70: 39(ptr) AccessChain 34(blk) 62 63 44 28 - 71: 20(float) CompositeExtract 67 1 - Store 70 71 - 73: 39(ptr) AccessChain 34(blk) 62 63 44 72 - 74: 20(float) CompositeExtract 67 2 - Store 73 74 - 75: 6(int) Load 8(iid) - 76: 6(int) UDiv 75 21 - 81: 80(ptr) AccessChain 34(blk) 76 77 52 - 82: 24(fvec4) Load 81 - 83: 24(fvec4) VectorShuffle 82 79 7 6 5 4 - Store 81 83 - 84: 6(int) Load 8(iid) - 86: 6(int) Load 8(iid) - 87: 6(int) UDiv 86 21 - 88: 39(ptr) AccessChain 34(blk) 87 77 52 72 - 89: 20(float) Load 88 - 90: 39(ptr) AccessChain 34(blk) 84 85 37 44 42 - Store 90 89 - 91: 6(int) Load 8(iid) - 92: 6(int) IMul 91 21 - 93: 6(int) Load 16(gid) - 98: 57(ptr) AccessChain 34(blk) 92 85 44 93 - Store 98 97 - MemoryBarrier 42 99 - ControlBarrier 28 28 99 - 105: 6(int) Load 8(iid) - 106: 6(int) Load 8(iid) - 107: 6(int) ISub 106 42 - 108: 39(ptr) AccessChain 104(blk2) 107 37 - 109: 20(float) Load 108 - 111: 20(float) FAdd 109 110 - 112: 39(ptr) AccessChain 104(blk2) 105 37 - Store 112 111 - 113: 6(int) Load 8(iid) - 119: 80(ptr) AccessChain 104(blk2) 113 44 - Store 119 118 - 120: 6(int) Load 8(iid) - 121: 6(int) IAdd 120 42 - 122: 6(int) Load 16(gid) - 123: 6(int) Load 8(iid) - 124: 80(ptr) AccessChain 104(blk2) 123 44 - 125: 24(fvec4) Load 124 - 126: 80(ptr) AccessChain 104(blk2) 121 52 122 - Store 126 125 - 127: 6(int) Load 8(iid) - 128: 6(int) IAdd 127 42 - 129: 6(int) Load 16(gid) - 131: 39(ptr) AccessChain 104(blk2) 128 52 129 28 - Store 131 130 - 132: 6(int) Load 8(iid) - 133: 6(int) IAdd 132 28 - 134: 6(int) Load 8(iid) - 135: 6(int) IAdd 134 42 - 136: 6(int) Load 16(gid) - 137: 80(ptr) AccessChain 104(blk2) 135 52 136 - 138: 24(fvec4) Load 137 - 139: 80(ptr) AccessChain 104(blk2) 133 52 63 - Store 139 138 - MemoryBarrier 42 99 - ControlBarrier 28 28 99 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.meshTaskShader.task.out b/deps/glslang/Test/baseResults/spv.meshTaskShader.task.out deleted file mode 100644 index 9fed1915..00000000 --- a/deps/glslang/Test/baseResults/spv.meshTaskShader.task.out +++ /dev/null @@ -1,196 +0,0 @@ -spv.meshTaskShader.task -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 116 - - Capability StorageImageWriteWithoutFormat - Capability MeshShadingNV - Extension "SPV_NV_mesh_shader" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint TaskNV 4 "main" 11 17 24 25 90 113 - ExecutionMode 4 LocalSize 32 1 1 - Source GLSL 450 - SourceExtension "GL_NV_mesh_shader" - Name 4 "main" - Name 8 "iid" - Name 11 "gl_LocalInvocationID" - Name 16 "gid" - Name 17 "gl_WorkGroupID" - Name 20 "viewID" - Name 24 "gl_MeshViewIndicesNV" - Name 25 "gl_MeshViewCountNV" - Name 30 "i" - Name 44 "mem" - Name 47 "block0" - MemberName 47(block0) 0 "uni_value" - Name 49 "" - Name 65 "uni_image" - Name 88 "Task" - MemberName 88(Task) 0 "dummy" - MemberName 88(Task) 1 "submesh" - MemberName 88(Task) 2 "viewID" - Name 90 "mytask" - Name 113 "gl_TaskCountNV" - Decorate 11(gl_LocalInvocationID) BuiltIn LocalInvocationId - Decorate 17(gl_WorkGroupID) BuiltIn WorkgroupId - Decorate 24(gl_MeshViewIndicesNV) BuiltIn MeshViewIndicesNV - Decorate 25(gl_MeshViewCountNV) BuiltIn MeshViewCountNV - MemberDecorate 47(block0) 0 Offset 0 - Decorate 47(block0) Block - Decorate 49 DescriptorSet 0 - Decorate 49 Binding 1 - Decorate 65(uni_image) DescriptorSet 0 - Decorate 65(uni_image) Binding 0 - Decorate 65(uni_image) NonReadable - Decorate 87 ArrayStride 8 - MemberDecorate 88(Task) 0 PerTaskNV - MemberDecorate 88(Task) 0 Offset 0 - MemberDecorate 88(Task) 1 PerTaskNV - MemberDecorate 88(Task) 1 Offset 8 - MemberDecorate 88(Task) 2 PerTaskNV - MemberDecorate 88(Task) 2 Offset 32 - Decorate 88(Task) Block - Decorate 90(mytask) Location 0 - Decorate 113(gl_TaskCountNV) BuiltIn TaskCountNV - Decorate 115 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypeVector 6(int) 3 - 10: TypePointer Input 9(ivec3) -11(gl_LocalInvocationID): 10(ptr) Variable Input - 12: 6(int) Constant 0 - 13: TypePointer Input 6(int) -17(gl_WorkGroupID): 10(ptr) Variable Input - 21: 6(int) Constant 4 - 22: TypeArray 6(int) 21 - 23: TypePointer Input 22 -24(gl_MeshViewIndicesNV): 23(ptr) Variable Input -25(gl_MeshViewCountNV): 13(ptr) Variable Input - 37: 6(int) Constant 10 - 38: TypeBool - 40: TypeFloat 32 - 41: TypeVector 40(float) 4 - 42: TypeArray 41(fvec4) 37 - 43: TypePointer Workgroup 42 - 44(mem): 43(ptr) Variable Workgroup - 47(block0): TypeStruct 6(int) - 48: TypePointer Uniform 47(block0) - 49: 48(ptr) Variable Uniform - 50: TypeInt 32 1 - 51: 50(int) Constant 0 - 52: TypePointer Uniform 6(int) - 58: TypePointer Workgroup 41(fvec4) - 61: 50(int) Constant 1 - 63: TypeImage 40(float) 2D nonsampled format:Unknown - 64: TypePointer UniformConstant 63 - 65(uni_image): 64(ptr) Variable UniformConstant - 69: TypeVector 50(int) 2 - 79: 6(int) Constant 1 - 83: 6(int) Constant 264 - 84: 6(int) Constant 2 - 85: TypeVector 40(float) 2 - 86: 6(int) Constant 3 - 87: TypeArray 85(fvec2) 86 - 88(Task): TypeStruct 85(fvec2) 87 6(int) - 89: TypePointer Output 88(Task) - 90(mytask): 89(ptr) Variable Output - 91: 40(float) Constant 1106247680 - 92: 40(float) Constant 1106771968 - 93: 85(fvec2) ConstantComposite 91 92 - 94: TypePointer Output 85(fvec2) - 96: 40(float) Constant 1107296256 - 97: 40(float) Constant 1107558400 - 98: 85(fvec2) ConstantComposite 96 97 - 100: 40(float) Constant 1107820544 - 101: 40(float) Constant 1108082688 - 102: 85(fvec2) ConstantComposite 100 101 - 104: 50(int) Constant 2 - 111: TypePointer Output 6(int) -113(gl_TaskCountNV): 111(ptr) Variable Output - 114: 6(int) Constant 32 - 115: 9(ivec3) ConstantComposite 114 79 79 - 4(main): 2 Function None 3 - 5: Label - 8(iid): 7(ptr) Variable Function - 16(gid): 7(ptr) Variable Function - 20(viewID): 7(ptr) Variable Function - 30(i): 7(ptr) Variable Function - 14: 13(ptr) AccessChain 11(gl_LocalInvocationID) 12 - 15: 6(int) Load 14 - Store 8(iid) 15 - 18: 13(ptr) AccessChain 17(gl_WorkGroupID) 12 - 19: 6(int) Load 18 - Store 16(gid) 19 - 26: 6(int) Load 25(gl_MeshViewCountNV) - 27: 6(int) UMod 26 21 - 28: 13(ptr) AccessChain 24(gl_MeshViewIndicesNV) 27 - 29: 6(int) Load 28 - Store 20(viewID) 29 - Store 30(i) 12 - Branch 31 - 31: Label - LoopMerge 33 34 None - Branch 35 - 35: Label - 36: 6(int) Load 30(i) - 39: 38(bool) ULessThan 36 37 - BranchConditional 39 32 33 - 32: Label - 45: 6(int) Load 30(i) - 46: 6(int) Load 30(i) - 53: 52(ptr) AccessChain 49 51 - 54: 6(int) Load 53 - 55: 6(int) IAdd 46 54 - 56: 40(float) ConvertUToF 55 - 57: 41(fvec4) CompositeConstruct 56 56 56 56 - 59: 58(ptr) AccessChain 44(mem) 45 - Store 59 57 - Branch 34 - 34: Label - 60: 6(int) Load 30(i) - 62: 6(int) IAdd 60 61 - Store 30(i) 62 - Branch 31 - 33: Label - 66: 63 Load 65(uni_image) - 67: 6(int) Load 8(iid) - 68: 50(int) Bitcast 67 - 70: 69(ivec2) CompositeConstruct 68 68 - 71: 6(int) Load 16(gid) - 72: 58(ptr) AccessChain 44(mem) 71 - 73: 41(fvec4) Load 72 - ImageWrite 66 70 73 - 74: 63 Load 65(uni_image) - 75: 6(int) Load 8(iid) - 76: 50(int) Bitcast 75 - 77: 69(ivec2) CompositeConstruct 76 76 - 78: 6(int) Load 16(gid) - 80: 6(int) IAdd 78 79 - 81: 58(ptr) AccessChain 44(mem) 80 - 82: 41(fvec4) Load 81 - ImageWrite 74 77 82 - MemoryBarrier 79 83 - ControlBarrier 84 84 83 - 95: 94(ptr) AccessChain 90(mytask) 51 - Store 95 93 - 99: 94(ptr) AccessChain 90(mytask) 61 51 - Store 99 98 - 103: 94(ptr) AccessChain 90(mytask) 61 61 - Store 103 102 - 105: 6(int) Load 16(gid) - 106: 6(int) UMod 105 84 - 107: 94(ptr) AccessChain 90(mytask) 61 106 - 108: 85(fvec2) Load 107 - 109: 94(ptr) AccessChain 90(mytask) 61 104 - Store 109 108 - 110: 6(int) Load 20(viewID) - 112: 111(ptr) AccessChain 90(mytask) 104 - Store 112 110 - MemoryBarrier 79 83 - ControlBarrier 84 84 83 - Store 113(gl_TaskCountNV) 86 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.multiStruct.comp.out b/deps/glslang/Test/baseResults/spv.multiStruct.comp.out deleted file mode 100644 index 13a3528f..00000000 --- a/deps/glslang/Test/baseResults/spv.multiStruct.comp.out +++ /dev/null @@ -1,266 +0,0 @@ -spv.multiStruct.comp -// Module Version 10000 -// Generated by (magic number): 8000a -// 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/Test/baseResults/spv.multiStructFuncall.frag.out b/deps/glslang/Test/baseResults/spv.multiStructFuncall.frag.out deleted file mode 100644 index eec734a3..00000000 --- a/deps/glslang/Test/baseResults/spv.multiStructFuncall.frag.out +++ /dev/null @@ -1,116 +0,0 @@ -spv.multiStructFuncall.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 65 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - Name 4 "main" - Name 9 "S" - MemberName 9(S) 0 "m" - Name 12 "fooConst(struct-S-mf441;" - Name 11 "s" - Name 17 "foo(struct-S-mf441;" - Name 16 "s" - Name 20 "fooOut(struct-S-mf441;" - Name 19 "s" - Name 22 "S" - MemberName 22(S) 0 "m" - Name 23 "blockName" - MemberName 23(blockName) 0 "s1" - Name 25 "" - Name 31 "arg" - Name 38 "s2" - Name 41 "param" - Name 47 "param" - Name 50 "param" - Name 61 "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 - Decorate 25 Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeMatrix 7(fvec4) 4 - 9(S): TypeStruct 8 - 10: TypeFunction 2 9(S) - 14: TypePointer Function 9(S) - 15: TypeFunction 2 14(ptr) - 22(S): TypeStruct 8 - 23(blockName): TypeStruct 22(S) - 24: TypePointer Uniform 23(blockName) - 25: 24(ptr) Variable Uniform - 26: TypeInt 32 1 - 27: 26(int) Constant 0 - 28: TypePointer Uniform 22(S) - 33: TypePointer Function 8 - 37: TypePointer Private 9(S) - 38(s2): 37(ptr) Variable Private - 59: TypePointer Uniform 8 - 4(main): 2 Function None 3 - 5: Label - 31(arg): 14(ptr) Variable Function - 41(param): 14(ptr) Variable Function - 47(param): 14(ptr) Variable Function - 50(param): 14(ptr) Variable Function - 61(param): 14(ptr) Variable Function - 29: 28(ptr) AccessChain 25 27 - 30: 22(S) Load 29 - 32: 8 CompositeExtract 30 0 - 34: 33(ptr) AccessChain 31(arg) 27 - Store 34 32 - 35: 9(S) Load 31(arg) - 36: 2 FunctionCall 12(fooConst(struct-S-mf441;) 35 - 39: 9(S) Load 38(s2) - 40: 2 FunctionCall 12(fooConst(struct-S-mf441;) 39 - 42: 28(ptr) AccessChain 25 27 - 43: 22(S) Load 42 - 44: 8 CompositeExtract 43 0 - 45: 33(ptr) AccessChain 41(param) 27 - Store 45 44 - 46: 2 FunctionCall 17(foo(struct-S-mf441;) 41(param) - 48: 9(S) Load 38(s2) - Store 47(param) 48 - 49: 2 FunctionCall 17(foo(struct-S-mf441;) 47(param) - 51: 28(ptr) AccessChain 25 27 - 52: 22(S) Load 51 - 53: 8 CompositeExtract 52 0 - 54: 33(ptr) AccessChain 50(param) 27 - Store 54 53 - 55: 2 FunctionCall 20(fooOut(struct-S-mf441;) 50(param) - 56: 9(S) Load 50(param) - 57: 28(ptr) AccessChain 25 27 - 58: 8 CompositeExtract 56 0 - 60: 59(ptr) AccessChain 57 27 - Store 60 58 - 62: 9(S) Load 38(s2) - Store 61(param) 62 - 63: 2 FunctionCall 20(fooOut(struct-S-mf441;) 61(param) - 64: 9(S) Load 61(param) - Store 38(s2) 64 - Return - FunctionEnd -12(fooConst(struct-S-mf441;): 2 Function None 10 - 11(s): 9(S) FunctionParameter - 13: Label - Return - FunctionEnd -17(foo(struct-S-mf441;): 2 Function None 15 - 16(s): 14(ptr) FunctionParameter - 18: Label - Return - FunctionEnd -20(fooOut(struct-S-mf441;): 2 Function None 15 - 19(s): 14(ptr) FunctionParameter - 21: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.multiView.frag.out b/deps/glslang/Test/baseResults/spv.multiView.frag.out deleted file mode 100644 index a1575d98..00000000 --- a/deps/glslang/Test/baseResults/spv.multiView.frag.out +++ /dev/null @@ -1,37 +0,0 @@ -spv.multiView.frag -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 17 - - Capability Shader - Capability MultiView - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 9 12 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_multiview" - Name 4 "main" - Name 9 "color" - Name 12 "gl_ViewIndex" - Decorate 9(color) Location 0 - Decorate 12(gl_ViewIndex) Flat - Decorate 12(gl_ViewIndex) BuiltIn ViewIndex - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) - 9(color): 8(ptr) Variable Output - 10: TypeInt 32 1 - 11: TypePointer Input 10(int) -12(gl_ViewIndex): 11(ptr) Variable Input - 15: 6(float) Constant 0 - 4(main): 2 Function None 3 - 5: Label - 13: 10(int) Load 12(gl_ViewIndex) - 14: 6(float) ConvertSToF 13 - 16: 7(fvec4) CompositeConstruct 14 15 15 15 - Store 9(color) 16 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.multiviewPerViewAttributes.tesc.out b/deps/glslang/Test/baseResults/spv.multiviewPerViewAttributes.tesc.out deleted file mode 100644 index b1c29f9b..00000000 --- a/deps/glslang/Test/baseResults/spv.multiviewPerViewAttributes.tesc.out +++ /dev/null @@ -1,80 +0,0 @@ -spv.multiviewPerViewAttributes.tesc -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 41 - - Capability Tessellation - Capability PerViewAttributesNV - Extension "SPV_NVX_multiview_per_view_attributes" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint TessellationControl 4 "main" 17 19 31 - ExecutionMode 4 OutputVertices 4 - Source GLSL 450 - SourceExtension "GL_NVX_multiview_per_view_attributes" - Name 4 "main" - Name 13 "gl_PerVertex" - MemberName 13(gl_PerVertex) 0 "gl_PositionPerViewNV" - MemberName 13(gl_PerVertex) 1 "gl_ViewportMaskPerViewNV" - Name 17 "gl_out" - Name 19 "gl_InvocationID" - Name 27 "gl_PerVertex" - MemberName 27(gl_PerVertex) 0 "gl_Position" - MemberName 27(gl_PerVertex) 1 "gl_PointSize" - MemberName 27(gl_PerVertex) 2 "gl_ClipDistance" - MemberName 27(gl_PerVertex) 3 "gl_CullDistance" - MemberName 27(gl_PerVertex) 4 "gl_PositionPerViewNV" - Name 31 "gl_in" - MemberDecorate 13(gl_PerVertex) 0 BuiltIn PositionPerViewNV - MemberDecorate 13(gl_PerVertex) 1 BuiltIn ViewportMaskPerViewNV - Decorate 13(gl_PerVertex) Block - Decorate 19(gl_InvocationID) BuiltIn InvocationId - MemberDecorate 27(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 27(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 27(gl_PerVertex) 2 BuiltIn ClipDistance - MemberDecorate 27(gl_PerVertex) 3 BuiltIn CullDistance - MemberDecorate 27(gl_PerVertex) 4 BuiltIn PositionPerViewNV - Decorate 27(gl_PerVertex) Block - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeInt 32 0 - 9: 8(int) Constant 1 - 10: TypeArray 7(fvec4) 9 - 11: TypeInt 32 1 - 12: TypeArray 11(int) 9 -13(gl_PerVertex): TypeStruct 10 12 - 14: 8(int) Constant 4 - 15: TypeArray 13(gl_PerVertex) 14 - 16: TypePointer Output 15 - 17(gl_out): 16(ptr) Variable Output - 18: TypePointer Input 11(int) -19(gl_InvocationID): 18(ptr) Variable Input - 21: 11(int) Constant 1 - 22: 11(int) Constant 0 - 23: TypePointer Output 11(int) - 26: TypeArray 6(float) 9 -27(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 26 26 10 - 28: 8(int) Constant 32 - 29: TypeArray 27(gl_PerVertex) 28 - 30: TypePointer Input 29 - 31(gl_in): 30(ptr) Variable Input - 32: TypePointer Input 7(fvec4) - 35: 11(int) Constant 4 - 39: TypePointer Output 7(fvec4) - 4(main): 2 Function None 3 - 5: Label - 20: 11(int) Load 19(gl_InvocationID) - 24: 23(ptr) AccessChain 17(gl_out) 20 21 22 - Store 24 21 - 25: 11(int) Load 19(gl_InvocationID) - 33: 32(ptr) AccessChain 31(gl_in) 21 22 - 34: 7(fvec4) Load 33 - 36: 32(ptr) AccessChain 31(gl_in) 21 35 22 - 37: 7(fvec4) Load 36 - 38: 7(fvec4) FAdd 34 37 - 40: 39(ptr) AccessChain 17(gl_out) 25 22 22 - Store 40 38 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.multiviewPerViewAttributes.vert.out b/deps/glslang/Test/baseResults/spv.multiviewPerViewAttributes.vert.out deleted file mode 100644 index 0a4e1f0b..00000000 --- a/deps/glslang/Test/baseResults/spv.multiviewPerViewAttributes.vert.out +++ /dev/null @@ -1,60 +0,0 @@ -spv.multiviewPerViewAttributes.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 29 - - Capability Shader - Capability PerViewAttributesNV - Extension "SPV_NVX_multiview_per_view_attributes" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 11 20 24 - Source GLSL 450 - SourceExtension "GL_NVX_multiview_per_view_attributes" - Name 4 "main" - Name 11 "gl_ViewportMaskPerViewNV" - Name 20 "gl_PositionPerViewNV" - Name 22 "gl_PerVertex" - MemberName 22(gl_PerVertex) 0 "gl_Position" - MemberName 22(gl_PerVertex) 1 "gl_PointSize" - MemberName 22(gl_PerVertex) 2 "gl_ClipDistance" - MemberName 22(gl_PerVertex) 3 "gl_CullDistance" - Name 24 "" - Decorate 11(gl_ViewportMaskPerViewNV) BuiltIn ViewportMaskPerViewNV - Decorate 20(gl_PositionPerViewNV) BuiltIn PositionPerViewNV - MemberDecorate 22(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 22(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 22(gl_PerVertex) 2 BuiltIn ClipDistance - MemberDecorate 22(gl_PerVertex) 3 BuiltIn CullDistance - Decorate 22(gl_PerVertex) Block - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypeInt 32 0 - 8: 7(int) Constant 1 - 9: TypeArray 6(int) 8 - 10: TypePointer Output 9 -11(gl_ViewportMaskPerViewNV): 10(ptr) Variable Output - 12: 6(int) Constant 0 - 13: 6(int) Constant 1 - 14: TypePointer Output 6(int) - 16: TypeFloat 32 - 17: TypeVector 16(float) 4 - 18: TypeArray 17(fvec4) 8 - 19: TypePointer Output 18 -20(gl_PositionPerViewNV): 19(ptr) Variable Output - 21: TypeArray 16(float) 8 -22(gl_PerVertex): TypeStruct 17(fvec4) 16(float) 21 21 - 23: TypePointer Output 22(gl_PerVertex) - 24: 23(ptr) Variable Output - 25: TypePointer Output 17(fvec4) - 4(main): 2 Function None 3 - 5: Label - 15: 14(ptr) AccessChain 11(gl_ViewportMaskPerViewNV) 12 - Store 15 13 - 26: 25(ptr) AccessChain 24 12 - 27: 17(fvec4) Load 26 - 28: 25(ptr) AccessChain 20(gl_PositionPerViewNV) 12 - Store 28 27 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.newTexture.frag.out b/deps/glslang/Test/baseResults/spv.newTexture.frag.out deleted file mode 100644 index 332ca662..00000000 --- a/deps/glslang/Test/baseResults/spv.newTexture.frag.out +++ /dev/null @@ -1,409 +0,0 @@ -spv.newTexture.frag -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 284 - - Capability Shader - Capability SampledRect - Capability SampledCubeArray - Capability ImageQuery - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 17 26 29 55 81 84 92 253 283 - ExecutionMode 4 OriginUpperLeft - Source GLSL 430 - Name 4 "main" - Name 9 "v" - Name 13 "s2D" - Name 17 "c2D" - Name 23 "sCubeArrayShadow" - Name 26 "c4D" - Name 29 "c1D" - Name 42 "s3D" - Name 51 "s2DArray" - Name 55 "c3D" - Name 64 "s2DShadow" - Name 81 "ic3D" - Name 84 "ic1D" - Name 92 "ic2D" - Name 102 "sr" - Name 128 "sCube" - Name 139 "s2DArrayShadow" - Name 167 "iv" - Name 171 "is2D" - Name 208 "is3D" - Name 220 "isCube" - Name 232 "is2DArray" - Name 243 "iv2" - Name 247 "sCubeShadow" - Name 253 "FragData" - Name 265 "is2Dms" - Name 269 "us2D" - Name 273 "us3D" - Name 277 "usCube" - Name 281 "us2DArray" - Name 283 "ic4D" - Decorate 13(s2D) DescriptorSet 0 - Decorate 13(s2D) Binding 0 - Decorate 17(c2D) Location 1 - Decorate 23(sCubeArrayShadow) DescriptorSet 0 - Decorate 23(sCubeArrayShadow) Binding 5 - Decorate 26(c4D) Location 3 - Decorate 29(c1D) Location 0 - Decorate 42(s3D) DescriptorSet 0 - Decorate 42(s3D) Binding 2 - Decorate 51(s2DArray) DescriptorSet 0 - Decorate 51(s2DArray) Binding 7 - Decorate 55(c3D) Location 2 - Decorate 64(s2DShadow) DescriptorSet 0 - Decorate 64(s2DShadow) Binding 6 - Decorate 81(ic3D) Flat - Decorate 81(ic3D) Location 6 - Decorate 84(ic1D) Flat - Decorate 84(ic1D) Location 4 - Decorate 92(ic2D) Flat - Decorate 92(ic2D) Location 5 - Decorate 102(sr) DescriptorSet 0 - Decorate 102(sr) Binding 1 - Decorate 128(sCube) DescriptorSet 0 - Decorate 128(sCube) Binding 3 - Decorate 139(s2DArrayShadow) DescriptorSet 0 - Decorate 139(s2DArrayShadow) Binding 8 - Decorate 171(is2D) DescriptorSet 0 - Decorate 171(is2D) Binding 9 - Decorate 208(is3D) DescriptorSet 0 - Decorate 208(is3D) Binding 10 - Decorate 220(isCube) DescriptorSet 0 - Decorate 220(isCube) Binding 11 - Decorate 232(is2DArray) DescriptorSet 0 - Decorate 232(is2DArray) Binding 12 - Decorate 247(sCubeShadow) DescriptorSet 0 - Decorate 247(sCubeShadow) Binding 4 - Decorate 253(FragData) Location 0 - Decorate 265(is2Dms) DescriptorSet 0 - Decorate 265(is2Dms) Binding 0 - Decorate 269(us2D) DescriptorSet 0 - Decorate 269(us2D) Binding 0 - Decorate 273(us3D) DescriptorSet 0 - Decorate 273(us3D) Binding 0 - Decorate 277(usCube) DescriptorSet 0 - Decorate 277(usCube) Binding 0 - Decorate 281(us2DArray) DescriptorSet 0 - Decorate 281(us2DArray) Binding 0 - Decorate 283(ic4D) Flat - Decorate 283(ic4D) Location 7 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: TypeImage 6(float) 2D sampled format:Unknown - 11: TypeSampledImage 10 - 12: TypePointer UniformConstant 11 - 13(s2D): 12(ptr) Variable UniformConstant - 15: TypeVector 6(float) 2 - 16: TypePointer Input 15(fvec2) - 17(c2D): 16(ptr) Variable Input - 20: TypeImage 6(float) Cube depth array sampled format:Unknown - 21: TypeSampledImage 20 - 22: TypePointer UniformConstant 21 -23(sCubeArrayShadow): 22(ptr) Variable UniformConstant - 25: TypePointer Input 7(fvec4) - 26(c4D): 25(ptr) Variable Input - 28: TypePointer Input 6(float) - 29(c1D): 28(ptr) Variable Input - 32: TypeInt 32 0 - 33: 32(int) Constant 1 - 34: TypePointer Function 6(float) - 39: TypeImage 6(float) 3D sampled format:Unknown - 40: TypeSampledImage 39 - 41: TypePointer UniformConstant 40 - 42(s3D): 41(ptr) Variable UniformConstant - 48: TypeImage 6(float) 2D array sampled format:Unknown - 49: TypeSampledImage 48 - 50: TypePointer UniformConstant 49 - 51(s2DArray): 50(ptr) Variable UniformConstant - 53: TypeVector 6(float) 3 - 54: TypePointer Input 53(fvec3) - 55(c3D): 54(ptr) Variable Input - 57: 6(float) Constant 1067030938 - 61: TypeImage 6(float) 2D depth sampled format:Unknown - 62: TypeSampledImage 61 - 63: TypePointer UniformConstant 62 - 64(s2DShadow): 63(ptr) Variable UniformConstant - 67: TypeInt 32 1 - 68: TypeVector 67(int) 2 - 69: 67(int) Constant 3 - 70: 68(ivec2) ConstantComposite 69 69 - 79: TypeVector 67(int) 3 - 80: TypePointer Input 79(ivec3) - 81(ic3D): 80(ptr) Variable Input - 83: TypePointer Input 67(int) - 84(ic1D): 83(ptr) Variable Input - 91: TypePointer Input 68(ivec2) - 92(ic2D): 91(ptr) Variable Input - 94: 67(int) Constant 4 - 99: TypeImage 6(float) Rect sampled format:Unknown - 100: TypeSampledImage 99 - 101: TypePointer UniformConstant 100 - 102(sr): 101(ptr) Variable UniformConstant - 105: 68(ivec2) ConstantComposite 94 94 - 125: TypeImage 6(float) Cube sampled format:Unknown - 126: TypeSampledImage 125 - 127: TypePointer UniformConstant 126 - 128(sCube): 127(ptr) Variable UniformConstant - 136: TypeImage 6(float) 2D depth array sampled format:Unknown - 137: TypeSampledImage 136 - 138: TypePointer UniformConstant 137 -139(s2DArrayShadow): 138(ptr) Variable UniformConstant - 146: 32(int) Constant 0 - 165: TypeVector 67(int) 4 - 166: TypePointer Function 165(ivec4) - 168: TypeImage 67(int) 2D sampled format:Unknown - 169: TypeSampledImage 168 - 170: TypePointer UniformConstant 169 - 171(is2D): 170(ptr) Variable UniformConstant - 205: TypeImage 67(int) 3D sampled format:Unknown - 206: TypeSampledImage 205 - 207: TypePointer UniformConstant 206 - 208(is3D): 207(ptr) Variable UniformConstant - 211: 6(float) Constant 1082549862 - 217: TypeImage 67(int) Cube sampled format:Unknown - 218: TypeSampledImage 217 - 219: TypePointer UniformConstant 218 - 220(isCube): 219(ptr) Variable UniformConstant - 229: TypeImage 67(int) 2D array sampled format:Unknown - 230: TypeSampledImage 229 - 231: TypePointer UniformConstant 230 - 232(is2DArray): 231(ptr) Variable UniformConstant - 242: TypePointer Function 68(ivec2) - 244: TypeImage 6(float) Cube depth sampled format:Unknown - 245: TypeSampledImage 244 - 246: TypePointer UniformConstant 245 -247(sCubeShadow): 246(ptr) Variable UniformConstant - 249: 67(int) Constant 2 - 252: TypePointer Output 7(fvec4) - 253(FragData): 252(ptr) Variable Output - 257: 6(float) Constant 0 - 262: TypeImage 67(int) 2D multi-sampled sampled format:Unknown - 263: TypeSampledImage 262 - 264: TypePointer UniformConstant 263 - 265(is2Dms): 264(ptr) Variable UniformConstant - 266: TypeImage 32(int) 2D sampled format:Unknown - 267: TypeSampledImage 266 - 268: TypePointer UniformConstant 267 - 269(us2D): 268(ptr) Variable UniformConstant - 270: TypeImage 32(int) 3D sampled format:Unknown - 271: TypeSampledImage 270 - 272: TypePointer UniformConstant 271 - 273(us3D): 272(ptr) Variable UniformConstant - 274: TypeImage 32(int) Cube sampled format:Unknown - 275: TypeSampledImage 274 - 276: TypePointer UniformConstant 275 - 277(usCube): 276(ptr) Variable UniformConstant - 278: TypeImage 32(int) 2D array sampled format:Unknown - 279: TypeSampledImage 278 - 280: TypePointer UniformConstant 279 - 281(us2DArray): 280(ptr) Variable UniformConstant - 282: TypePointer Input 165(ivec4) - 283(ic4D): 282(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 9(v): 8(ptr) Variable Function - 167(iv): 166(ptr) Variable Function - 243(iv2): 242(ptr) Variable Function - 14: 11 Load 13(s2D) - 18: 15(fvec2) Load 17(c2D) - 19: 7(fvec4) ImageSampleImplicitLod 14 18 - Store 9(v) 19 - 24: 21 Load 23(sCubeArrayShadow) - 27: 7(fvec4) Load 26(c4D) - 30: 6(float) Load 29(c1D) - 31: 6(float) ImageSampleDrefImplicitLod 24 27 30 - 35: 34(ptr) AccessChain 9(v) 33 - 36: 6(float) Load 35 - 37: 6(float) FAdd 36 31 - 38: 34(ptr) AccessChain 9(v) 33 - Store 38 37 - 43: 40 Load 42(s3D) - 44: 7(fvec4) Load 26(c4D) - 45: 7(fvec4) ImageSampleProjImplicitLod 43 44 - 46: 7(fvec4) Load 9(v) - 47: 7(fvec4) FAdd 46 45 - Store 9(v) 47 - 52: 49 Load 51(s2DArray) - 56: 53(fvec3) Load 55(c3D) - 58: 7(fvec4) ImageSampleExplicitLod 52 56 Lod 57 - 59: 7(fvec4) Load 9(v) - 60: 7(fvec4) FAdd 59 58 - Store 9(v) 60 - 65: 62 Load 64(s2DShadow) - 66: 53(fvec3) Load 55(c3D) - 71: 6(float) Load 29(c1D) - 72: 6(float) CompositeExtract 66 2 - 73: 6(float) ImageSampleDrefImplicitLod 65 66 72 Bias ConstOffset 71 70 - 74: 34(ptr) AccessChain 9(v) 33 - 75: 6(float) Load 74 - 76: 6(float) FAdd 75 73 - 77: 34(ptr) AccessChain 9(v) 33 - Store 77 76 - 78: 40 Load 42(s3D) - 82: 79(ivec3) Load 81(ic3D) - 85: 67(int) Load 84(ic1D) - 86: 39 Image 78 - 87: 7(fvec4) ImageFetch 86 82 Lod 85 - 88: 7(fvec4) Load 9(v) - 89: 7(fvec4) FAdd 88 87 - Store 9(v) 89 - 90: 11 Load 13(s2D) - 93: 68(ivec2) Load 92(ic2D) - 95: 10 Image 90 - 96: 7(fvec4) ImageFetch 95 93 Lod ConstOffset 94 70 - 97: 7(fvec4) Load 9(v) - 98: 7(fvec4) FAdd 97 96 - Store 9(v) 98 - 103: 100 Load 102(sr) - 104: 68(ivec2) Load 92(ic2D) - 106: 99 Image 103 - 107: 7(fvec4) ImageFetch 106 104 ConstOffset 105 - 108: 7(fvec4) Load 9(v) - 109: 7(fvec4) FAdd 108 107 - Store 9(v) 109 - 110: 62 Load 64(s2DShadow) - 111: 53(fvec3) Load 55(c3D) - 112: 6(float) Load 29(c1D) - 113: 6(float) CompositeExtract 111 2 - 114: 6(float) ImageSampleDrefExplicitLod 110 111 113 Lod ConstOffset 112 70 - 115: 34(ptr) AccessChain 9(v) 33 - 116: 6(float) Load 115 - 117: 6(float) FAdd 116 114 - 118: 34(ptr) AccessChain 9(v) 33 - Store 118 117 - 119: 11 Load 13(s2D) - 120: 53(fvec3) Load 55(c3D) - 121: 6(float) Load 29(c1D) - 122: 7(fvec4) ImageSampleProjExplicitLod 119 120 Lod ConstOffset 121 70 - 123: 7(fvec4) Load 9(v) - 124: 7(fvec4) FAdd 123 122 - Store 9(v) 124 - 129: 126 Load 128(sCube) - 130: 53(fvec3) Load 55(c3D) - 131: 53(fvec3) Load 55(c3D) - 132: 53(fvec3) Load 55(c3D) - 133: 7(fvec4) ImageSampleExplicitLod 129 130 Grad 131 132 - 134: 7(fvec4) Load 9(v) - 135: 7(fvec4) FAdd 134 133 - Store 9(v) 135 - 140: 137 Load 139(s2DArrayShadow) - 141: 7(fvec4) Load 26(c4D) - 142: 15(fvec2) Load 17(c2D) - 143: 15(fvec2) Load 17(c2D) - 144: 6(float) CompositeExtract 141 3 - 145: 6(float) ImageSampleDrefExplicitLod 140 141 144 Grad ConstOffset 142 143 70 - 147: 34(ptr) AccessChain 9(v) 146 - 148: 6(float) Load 147 - 149: 6(float) FAdd 148 145 - 150: 34(ptr) AccessChain 9(v) 146 - Store 150 149 - 151: 40 Load 42(s3D) - 152: 7(fvec4) Load 26(c4D) - 153: 53(fvec3) Load 55(c3D) - 154: 53(fvec3) Load 55(c3D) - 155: 7(fvec4) ImageSampleProjExplicitLod 151 152 Grad 153 154 - 156: 7(fvec4) Load 9(v) - 157: 7(fvec4) FAdd 156 155 - Store 9(v) 157 - 158: 11 Load 13(s2D) - 159: 53(fvec3) Load 55(c3D) - 160: 15(fvec2) Load 17(c2D) - 161: 15(fvec2) Load 17(c2D) - 162: 7(fvec4) ImageSampleProjExplicitLod 158 159 Grad ConstOffset 160 161 70 - 163: 7(fvec4) Load 9(v) - 164: 7(fvec4) FAdd 163 162 - Store 9(v) 164 - 172: 169 Load 171(is2D) - 173: 15(fvec2) Load 17(c2D) - 174: 165(ivec4) ImageSampleImplicitLod 172 173 - Store 167(iv) 174 - 175: 165(ivec4) Load 167(iv) - 176: 7(fvec4) ConvertSToF 175 - 177: 7(fvec4) Load 9(v) - 178: 7(fvec4) FAdd 177 176 - Store 9(v) 178 - 179: 169 Load 171(is2D) - 180: 7(fvec4) Load 26(c4D) - 181: 6(float) CompositeExtract 180 3 - 182: 7(fvec4) CompositeInsert 181 180 2 - 183: 165(ivec4) ImageSampleProjImplicitLod 179 182 ConstOffset 70 - Store 167(iv) 183 - 184: 165(ivec4) Load 167(iv) - 185: 7(fvec4) ConvertSToF 184 - 186: 7(fvec4) Load 9(v) - 187: 7(fvec4) FAdd 186 185 - Store 9(v) 187 - 188: 169 Load 171(is2D) - 189: 53(fvec3) Load 55(c3D) - 190: 6(float) Load 29(c1D) - 191: 165(ivec4) ImageSampleProjExplicitLod 188 189 Lod 190 - Store 167(iv) 191 - 192: 165(ivec4) Load 167(iv) - 193: 7(fvec4) ConvertSToF 192 - 194: 7(fvec4) Load 9(v) - 195: 7(fvec4) FAdd 194 193 - Store 9(v) 195 - 196: 169 Load 171(is2D) - 197: 53(fvec3) Load 55(c3D) - 198: 15(fvec2) Load 17(c2D) - 199: 15(fvec2) Load 17(c2D) - 200: 165(ivec4) ImageSampleProjExplicitLod 196 197 Grad 198 199 - Store 167(iv) 200 - 201: 165(ivec4) Load 167(iv) - 202: 7(fvec4) ConvertSToF 201 - 203: 7(fvec4) Load 9(v) - 204: 7(fvec4) FAdd 203 202 - Store 9(v) 204 - 209: 206 Load 208(is3D) - 210: 53(fvec3) Load 55(c3D) - 212: 165(ivec4) ImageSampleImplicitLod 209 210 Bias 211 - Store 167(iv) 212 - 213: 165(ivec4) Load 167(iv) - 214: 7(fvec4) ConvertSToF 213 - 215: 7(fvec4) Load 9(v) - 216: 7(fvec4) FAdd 215 214 - Store 9(v) 216 - 221: 218 Load 220(isCube) - 222: 53(fvec3) Load 55(c3D) - 223: 6(float) Load 29(c1D) - 224: 165(ivec4) ImageSampleExplicitLod 221 222 Lod 223 - Store 167(iv) 224 - 225: 165(ivec4) Load 167(iv) - 226: 7(fvec4) ConvertSToF 225 - 227: 7(fvec4) Load 9(v) - 228: 7(fvec4) FAdd 227 226 - Store 9(v) 228 - 233: 230 Load 232(is2DArray) - 234: 79(ivec3) Load 81(ic3D) - 235: 67(int) Load 84(ic1D) - 236: 229 Image 233 - 237: 165(ivec4) ImageFetch 236 234 Lod 235 - Store 167(iv) 237 - 238: 165(ivec4) Load 167(iv) - 239: 7(fvec4) ConvertSToF 238 - 240: 7(fvec4) Load 9(v) - 241: 7(fvec4) FAdd 240 239 - Store 9(v) 241 - 248: 245 Load 247(sCubeShadow) - 250: 244 Image 248 - 251: 68(ivec2) ImageQuerySizeLod 250 249 - Store 243(iv2) 251 - 254: 7(fvec4) Load 9(v) - 255: 68(ivec2) Load 243(iv2) - 256: 15(fvec2) ConvertSToF 255 - 258: 6(float) CompositeExtract 256 0 - 259: 6(float) CompositeExtract 256 1 - 260: 7(fvec4) CompositeConstruct 258 259 257 257 - 261: 7(fvec4) FAdd 254 260 - Store 253(FragData) 261 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.noBuiltInLoc.vert.out b/deps/glslang/Test/baseResults/spv.noBuiltInLoc.vert.out deleted file mode 100644 index 63220520..00000000 --- a/deps/glslang/Test/baseResults/spv.noBuiltInLoc.vert.out +++ /dev/null @@ -1,81 +0,0 @@ -spv.noBuiltInLoc.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 35 - - Capability Shader - Capability AtomicStorage - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 9 11 18 33 34 - Source GLSL 450 - Name 4 "main" - Name 9 "bar" - Name 11 "foo" - Name 16 "gl_PerVertex" - MemberName 16(gl_PerVertex) 0 "gl_Position" - MemberName 16(gl_PerVertex) 1 "gl_PointSize" - MemberName 16(gl_PerVertex) 2 "gl_ClipDistance" - MemberName 16(gl_PerVertex) 3 "gl_CullDistance" - Name 18 "" - Name 24 "uv1" - Name 26 "uv2" - Name 29 "uv3" - Name 31 "a_uint" - Name 33 "gl_VertexID" - Name 34 "gl_InstanceID" - Decorate 9(bar) Location 0 - Decorate 11(foo) Location 0 - MemberDecorate 16(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 16(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 16(gl_PerVertex) 2 BuiltIn ClipDistance - MemberDecorate 16(gl_PerVertex) 3 BuiltIn CullDistance - Decorate 16(gl_PerVertex) Block - Decorate 24(uv1) Location 0 - Decorate 24(uv1) DescriptorSet 0 - Decorate 26(uv2) Location 1 - Decorate 26(uv2) DescriptorSet 0 - Decorate 29(uv3) Location 2 - Decorate 29(uv3) DescriptorSet 0 - Decorate 31(a_uint) Offset 0 - Decorate 31(a_uint) DescriptorSet 0 - Decorate 31(a_uint) Binding 0 - Decorate 33(gl_VertexID) BuiltIn VertexId - Decorate 34(gl_InstanceID) BuiltIn InstanceId - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) - 9(bar): 8(ptr) Variable Output - 10: TypePointer Input 7(fvec4) - 11(foo): 10(ptr) Variable Input - 13: TypeInt 32 0 - 14: 13(int) Constant 1 - 15: TypeArray 6(float) 14 -16(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 15 15 - 17: TypePointer Output 16(gl_PerVertex) - 18: 17(ptr) Variable Output - 19: TypeInt 32 1 - 20: 19(int) Constant 0 - 23: TypePointer UniformConstant 7(fvec4) - 24(uv1): 23(ptr) Variable UniformConstant - 25: TypePointer UniformConstant 6(float) - 26(uv2): 25(ptr) Variable UniformConstant - 27: TypeVector 6(float) 3 - 28: TypePointer UniformConstant 27(fvec3) - 29(uv3): 28(ptr) Variable UniformConstant - 30: TypePointer AtomicCounter 13(int) - 31(a_uint): 30(ptr) Variable AtomicCounter - 32: TypePointer Input 19(int) - 33(gl_VertexID): 32(ptr) Variable Input -34(gl_InstanceID): 32(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 12: 7(fvec4) Load 11(foo) - Store 9(bar) 12 - 21: 7(fvec4) Load 11(foo) - 22: 8(ptr) AccessChain 18 20 - Store 22 21 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.noDeadDecorations.vert.out b/deps/glslang/Test/baseResults/spv.noDeadDecorations.vert.out deleted file mode 100644 index 4a4d7b38..00000000 --- a/deps/glslang/Test/baseResults/spv.noDeadDecorations.vert.out +++ /dev/null @@ -1,59 +0,0 @@ -spv.noDeadDecorations.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 32 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 22 - Source ESSL 310 - Name 4 "main" - Name 10 "func(f1;" - Name 9 "a" - Name 20 "gl_PerVertex" - MemberName 20(gl_PerVertex) 0 "gl_Position" - MemberName 20(gl_PerVertex) 1 "gl_PointSize" - Name 22 "" - Name 26 "param" - Decorate 10(func(f1;) RelaxedPrecision - Decorate 9(a) RelaxedPrecision - Decorate 12 RelaxedPrecision - Decorate 13 RelaxedPrecision - MemberDecorate 20(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 20(gl_PerVertex) 1 BuiltIn PointSize - Decorate 20(gl_PerVertex) Block - Decorate 26(param) RelaxedPrecision - Decorate 27 RelaxedPrecision - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypePointer Function 6(float) - 8: TypeFunction 6(float) 7(ptr) - 16: 6(float) Constant 3212836864 - 19: TypeVector 6(float) 4 -20(gl_PerVertex): TypeStruct 19(fvec4) 6(float) - 21: TypePointer Output 20(gl_PerVertex) - 22: 21(ptr) Variable Output - 23: TypeInt 32 1 - 24: 23(int) Constant 0 - 25: 6(float) Constant 0 - 28: TypeInt 32 0 - 29: 28(int) Constant 0 - 30: TypePointer Output 6(float) - 4(main): 2 Function None 3 - 5: Label - 26(param): 7(ptr) Variable Function - Store 26(param) 25 - 27: 6(float) FunctionCall 10(func(f1;) 26(param) - 31: 30(ptr) AccessChain 22 24 29 - Store 31 27 - Return - FunctionEnd - 10(func(f1;): 6(float) Function None 8 - 9(a): 7(ptr) FunctionParameter - 11: Label - 12: 6(float) Load 9(a) - 13: 6(float) FNegate 12 - ReturnValue 13 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.noLocation.vert.out b/deps/glslang/Test/baseResults/spv.noLocation.vert.out deleted file mode 100644 index 7a664745..00000000 --- a/deps/glslang/Test/baseResults/spv.noLocation.vert.out +++ /dev/null @@ -1,10 +0,0 @@ -spv.noLocation.vert -ERROR: spv.noLocation.vert:4: 'location' : SPIR-V requires location for user input/output -ERROR: spv.noLocation.vert:8: 'location' : SPIR-V requires location for user input/output -ERROR: spv.noLocation.vert:19: 'location' : SPIR-V requires location for user input/output -ERROR: spv.noLocation.vert:25: 'location' : SPIR-V requires location for user input/output -ERROR: spv.noLocation.vert:29: 'location' : SPIR-V requires location for user input/output -ERROR: 5 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.noWorkgroup.comp.out b/deps/glslang/Test/baseResults/spv.noWorkgroup.comp.out deleted file mode 100644 index a8969e02..00000000 --- a/deps/glslang/Test/baseResults/spv.noWorkgroup.comp.out +++ /dev/null @@ -1,40 +0,0 @@ -spv.noWorkgroup.comp -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 23 - - 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 22 "keys" - Decorate 7 SpecId 18 - Decorate 8 SpecId 10 - Decorate 9 SpecId 19 - Decorate 11 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: 6(int) SpecConstant 1 - 8: 6(int) SpecConstant 1 - 9: 6(int) SpecConstant 1 - 10: TypeVector 6(int) 3 - 11: 10(ivec3) SpecConstantComposite 7 8 9 - 12: 6(int) Constant 0 - 13: 6(int) SpecConstantOp 81 11 0 - 14: 6(int) Constant 1 - 15: 6(int) SpecConstantOp 81 11 1(GLSL.std.450) - 16: 6(int) SpecConstantOp 132 13 15 - 17: TypeArray 6(int) 16 - 18: 6(int) Constant 2 - 19: 6(int) SpecConstantOp 81 11 2 - 20: TypeArray 17 19 - 21: TypePointer Workgroup 20 - 22(keys): 21(ptr) Variable Workgroup - 4(main): 2 Function None 3 - 5: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.nonSquare.vert.out b/deps/glslang/Test/baseResults/spv.nonSquare.vert.out deleted file mode 100644 index 3728dd5d..00000000 --- a/deps/glslang/Test/baseResults/spv.nonSquare.vert.out +++ /dev/null @@ -1,115 +0,0 @@ -spv.nonSquare.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 90 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 12 22 28 55 - Source GLSL 140 - Name 4 "main" - Name 9 "a" - Name 12 "v3" - Name 16 "m23" - Name 19 "b" - Name 22 "m32" - Name 28 "gl_Position" - Name 55 "v4" - Decorate 12(v3) Location 0 - Decorate 22(m32) Location 0 - Decorate 28(gl_Position) BuiltIn Position - Decorate 55(v4) Location 1 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 2 - 8: TypePointer Function 7(fvec2) - 10: TypeVector 6(float) 3 - 11: TypePointer Input 10(fvec3) - 12(v3): 11(ptr) Variable Input - 14: TypeMatrix 10(fvec3) 2 - 15: TypePointer Function 14 - 20: TypeMatrix 7(fvec2) 3 - 21: TypePointer Output 20 - 22(m32): 21(ptr) Variable Output - 26: TypeVector 6(float) 4 - 27: TypePointer Output 26(fvec4) - 28(gl_Position): 27(ptr) Variable Output - 31: TypeMatrix 10(fvec3) 3 - 35: 6(float) Constant 0 - 40: TypeMatrix 26(fvec4) 4 - 41: 6(float) Constant 1077936128 - 42: 6(float) Constant 1086324736 - 43: 26(fvec4) ConstantComposite 41 42 35 35 - 44: 6(float) Constant 1091567616 - 45: 6(float) Constant 1094713344 - 46: 26(fvec4) ConstantComposite 44 45 35 35 - 47: 6(float) Constant 1097859072 - 48: 6(float) Constant 1099956224 - 49: 26(fvec4) ConstantComposite 47 48 35 35 - 50: 6(float) Constant 1101529088 - 51: 6(float) Constant 1103101952 - 52: 26(fvec4) ConstantComposite 50 51 35 35 - 53: 40 ConstantComposite 43 46 49 52 - 54: TypePointer Input 26(fvec4) - 55(v4): 54(ptr) Variable Input - 59: 6(float) Constant 1112014848 - 60: 6(float) Constant 1121714176 - 61: 6(float) Constant 1126825984 - 62: 6(float) Constant 1130758144 - 63: 26(fvec4) ConstantComposite 59 60 61 62 - 65: 6(float) Constant 1106247680 - 66: 6(float) Constant 1114636288 - 67: 26(fvec4) ConstantComposite 65 66 35 35 - 69: 6(float) Constant 1101004800 - 70: 6(float) Constant 1092616192 - 71: 6(float) Constant 1084227584 - 72: 26(fvec4) ConstantComposite 69 70 42 71 - 74: 7(fvec2) ConstantComposite 70 69 - 75: TypeMatrix 26(fvec4) 2 - 76: 26(fvec4) ConstantComposite 41 35 35 35 - 77: 26(fvec4) ConstantComposite 35 41 35 35 - 78: 75 ConstantComposite 76 77 - 79: TypeMatrix 7(fvec2) 4 - 80: 6(float) Constant 1065353216 - 81: 6(float) Constant 1073741824 - 82: 7(fvec2) ConstantComposite 80 81 - 83: 6(float) Constant 1082130432 - 84: 7(fvec2) ConstantComposite 41 83 - 85: 7(fvec2) ConstantComposite 71 42 - 86: 6(float) Constant 1088421888 - 87: 6(float) Constant 1090519040 - 88: 7(fvec2) ConstantComposite 86 87 - 89: 79 ConstantComposite 82 84 85 88 - 4(main): 2 Function None 3 - 5: Label - 9(a): 8(ptr) Variable Function - 16(m23): 15(ptr) Variable Function - 19(b): 8(ptr) Variable Function - 13: 10(fvec3) Load 12(v3) - 17: 14 Load 16(m23) - 18: 7(fvec2) VectorTimesMatrix 13 17 - Store 9(a) 18 - 23: 20 Load 22(m32) - 24: 10(fvec3) Load 12(v3) - 25: 7(fvec2) MatrixTimesVector 23 24 - Store 19(b) 25 - 29: 14 Load 16(m23) - 30: 20 Load 22(m32) - 32: 31 MatrixTimesMatrix 29 30 - 33: 10(fvec3) Load 12(v3) - 34: 10(fvec3) MatrixTimesVector 32 33 - 36: 6(float) CompositeExtract 34 0 - 37: 6(float) CompositeExtract 34 1 - 38: 6(float) CompositeExtract 34 2 - 39: 26(fvec4) CompositeConstruct 36 37 38 35 - 56: 26(fvec4) Load 55(v4) - 57: 26(fvec4) MatrixTimesVector 53 56 - 58: 26(fvec4) FAdd 39 57 - 64: 26(fvec4) FAdd 58 63 - 68: 26(fvec4) FAdd 64 67 - 73: 26(fvec4) FAdd 68 72 - Store 28(gl_Position) 73 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.nonuniform.frag.out b/deps/glslang/Test/baseResults/spv.nonuniform.frag.out deleted file mode 100644 index f6febc9b..00000000 --- a/deps/glslang/Test/baseResults/spv.nonuniform.frag.out +++ /dev/null @@ -1,505 +0,0 @@ -spv.nonuniform.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 289 - - Capability Shader - Capability InputAttachment - Capability SampledBuffer - Capability ImageBuffer - Capability ShaderNonUniformEXT - Capability RuntimeDescriptorArrayEXT - Capability InputAttachmentArrayDynamicIndexingEXT - Capability UniformTexelBufferArrayDynamicIndexingEXT - Capability StorageTexelBufferArrayDynamicIndexingEXT - Capability UniformBufferArrayNonUniformIndexingEXT - Capability SampledImageArrayNonUniformIndexingEXT - Capability StorageBufferArrayNonUniformIndexingEXT - Capability StorageImageArrayNonUniformIndexingEXT - Capability InputAttachmentArrayNonUniformIndexingEXT - Capability UniformTexelBufferArrayNonUniformIndexingEXT - Capability StorageTexelBufferArrayNonUniformIndexingEXT - Extension "SPV_EXT_descriptor_indexing" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 41 98 188 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_nonuniform_qualifier" - Name 4 "main" - Name 11 "foo(i1;i1;" - Name 9 "nupi" - Name 10 "f" - Name 16 "a" - Name 17 "nu_li" - Name 18 "param" - Name 20 "param" - Name 30 "nu_li2" - Name 38 "b" - Name 41 "nu_inv4" - Name 47 "nu_gf" - Name 53 "inputAttachmentDyn" - Name 54 "dyn_i" - Name 70 "uniformTexelBufferDyn" - Name 84 "storageTexelBufferDyn" - Name 93 "uname" - MemberName 93(uname) 0 "a" - Name 96 "uniformBuffer" - Name 98 "nu_ii" - Name 105 "bname" - MemberName 105(bname) 0 "b" - Name 108 "storageBuffer" - Name 118 "sampledImage" - Name 133 "storageImage" - Name 145 "inputAttachment" - Name 155 "uniformTexelBuffer" - Name 166 "storageTexelBuffer" - Name 177 "uniformTexArr" - Name 184 "uniformSampler" - Name 188 "inTexcoord" - Name 207 "v" - Name 222 "uv" - Name 232 "m" - Name 240 "S" - MemberName 240(S) 0 "a" - Name 242 "s" - Name 252 "arr" - Name 259 "um" - Name 268 "US" - MemberName 268(US) 0 "a" - Name 270 "us" - Name 278 "uarr" - Decorate 13 DecorationNonUniformEXT - Decorate 19 DecorationNonUniformEXT - Decorate 21 DecorationNonUniformEXT - Decorate 22 DecorationNonUniformEXT - Decorate 24 DecorationNonUniformEXT - Decorate 28 DecorationNonUniformEXT - Decorate 29 DecorationNonUniformEXT - Decorate 34 DecorationNonUniformEXT - Decorate 35 DecorationNonUniformEXT - Decorate 41(nu_inv4) Location 0 - Decorate 46 DecorationNonUniformEXT - Decorate 48 DecorationNonUniformEXT - Decorate 49 DecorationNonUniformEXT - Decorate 53(inputAttachmentDyn) DescriptorSet 0 - Decorate 53(inputAttachmentDyn) Binding 0 - Decorate 53(inputAttachmentDyn) InputAttachmentIndex 0 - Decorate 70(uniformTexelBufferDyn) DescriptorSet 0 - Decorate 70(uniformTexelBufferDyn) Binding 1 - Decorate 84(storageTexelBufferDyn) DescriptorSet 0 - Decorate 84(storageTexelBufferDyn) Binding 2 - MemberDecorate 93(uname) 0 Offset 0 - Decorate 93(uname) Block - Decorate 96(uniformBuffer) DescriptorSet 0 - Decorate 96(uniformBuffer) Binding 3 - Decorate 98(nu_ii) Flat - Decorate 98(nu_ii) Location 1 - Decorate 99 DecorationNonUniformEXT - Decorate 101 DecorationNonUniformEXT - Decorate 102 DecorationNonUniformEXT - Decorate 104 DecorationNonUniformEXT - MemberDecorate 105(bname) 0 Offset 0 - Decorate 105(bname) BufferBlock - Decorate 108(storageBuffer) DescriptorSet 0 - Decorate 108(storageBuffer) Binding 4 - Decorate 109 DecorationNonUniformEXT - Decorate 110 DecorationNonUniformEXT - Decorate 111 DecorationNonUniformEXT - Decorate 113 DecorationNonUniformEXT - Decorate 118(sampledImage) DescriptorSet 0 - Decorate 118(sampledImage) Binding 5 - Decorate 119 DecorationNonUniformEXT - Decorate 121 DecorationNonUniformEXT - Decorate 122 DecorationNonUniformEXT - Decorate 133(storageImage) DescriptorSet 0 - Decorate 133(storageImage) Binding 6 - Decorate 134 DecorationNonUniformEXT - Decorate 136 DecorationNonUniformEXT - Decorate 137 DecorationNonUniformEXT - Decorate 145(inputAttachment) DescriptorSet 0 - Decorate 145(inputAttachment) Binding 7 - Decorate 145(inputAttachment) InputAttachmentIndex 1 - Decorate 146 DecorationNonUniformEXT - Decorate 147 DecorationNonUniformEXT - Decorate 148 DecorationNonUniformEXT - Decorate 155(uniformTexelBuffer) DescriptorSet 0 - Decorate 155(uniformTexelBuffer) Binding 8 - Decorate 156 DecorationNonUniformEXT - Decorate 157 DecorationNonUniformEXT - Decorate 158 DecorationNonUniformEXT - Decorate 159 DecorationNonUniformEXT - Decorate 166(storageTexelBuffer) DescriptorSet 0 - Decorate 166(storageTexelBuffer) Binding 9 - Decorate 167 DecorationNonUniformEXT - Decorate 168 DecorationNonUniformEXT - Decorate 169 DecorationNonUniformEXT - Decorate 177(uniformTexArr) DescriptorSet 0 - Decorate 177(uniformTexArr) Binding 10 - Decorate 178 DecorationNonUniformEXT - Decorate 180 DecorationNonUniformEXT - Decorate 181 DecorationNonUniformEXT - Decorate 184(uniformSampler) DescriptorSet 0 - Decorate 184(uniformSampler) Binding 11 - Decorate 188(inTexcoord) Location 2 - Decorate 194 DecorationNonUniformEXT - Decorate 195 DecorationNonUniformEXT - Decorate 196 DecorationNonUniformEXT - Decorate 199 DecorationNonUniformEXT - Decorate 210 DecorationNonUniformEXT - Decorate 211 DecorationNonUniformEXT - Decorate 212 DecorationNonUniformEXT - Decorate 214 DecorationNonUniformEXT - Decorate 217 DecorationNonUniformEXT - Decorate 218 DecorationNonUniformEXT - Decorate 219 DecorationNonUniformEXT - Decorate 221 DecorationNonUniformEXT - Decorate 223 DecorationNonUniformEXT - Decorate 224 DecorationNonUniformEXT - Decorate 225 DecorationNonUniformEXT - Decorate 226 DecorationNonUniformEXT - Decorate 227 DecorationNonUniformEXT - Decorate 229 DecorationNonUniformEXT - Decorate 234 DecorationNonUniformEXT - Decorate 244 DecorationNonUniformEXT - Decorate 245 DecorationNonUniformEXT - Decorate 246 DecorationNonUniformEXT - Decorate 248 DecorationNonUniformEXT - Decorate 254 DecorationNonUniformEXT - Decorate 255 DecorationNonUniformEXT - Decorate 256 DecorationNonUniformEXT - Decorate 258 DecorationNonUniformEXT - Decorate 260 DecorationNonUniformEXT - Decorate 261 DecorationNonUniformEXT - Decorate 262 DecorationNonUniformEXT - Decorate 271 DecorationNonUniformEXT - Decorate 272 DecorationNonUniformEXT - Decorate 273 DecorationNonUniformEXT - Decorate 274 DecorationNonUniformEXT - Decorate 275 DecorationNonUniformEXT - Decorate 277 DecorationNonUniformEXT - Decorate 279 DecorationNonUniformEXT - Decorate 280 DecorationNonUniformEXT - Decorate 281 DecorationNonUniformEXT - Decorate 282 DecorationNonUniformEXT - Decorate 283 DecorationNonUniformEXT - Decorate 285 DecorationNonUniformEXT - Decorate 286 DecorationNonUniformEXT - Decorate 288 DecorationNonUniformEXT - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Function 6(int) - 8: TypeFunction 6(int) 7(ptr) 7(ptr) - 26: 6(int) Constant 2 - 36: TypeFloat 32 - 37: TypePointer Function 36(float) - 39: TypeVector 36(float) 4 - 40: TypePointer Input 39(fvec4) - 41(nu_inv4): 40(ptr) Variable Input - 42: TypeInt 32 0 - 43: 42(int) Constant 0 - 44: TypePointer Input 36(float) - 50: TypeImage 36(float) SubpassData nonsampled format:Unknown - 51: TypeRuntimeArray 50 - 52: TypePointer UniformConstant 51 -53(inputAttachmentDyn): 52(ptr) Variable UniformConstant - 56: TypePointer UniformConstant 50 - 59: 6(int) Constant 0 - 60: TypeVector 6(int) 2 - 61: 60(ivec2) ConstantComposite 59 59 - 66: TypeImage 36(float) Buffer sampled format:Unknown - 67: TypeSampledImage 66 - 68: TypeRuntimeArray 67 - 69: TypePointer UniformConstant 68 -70(uniformTexelBufferDyn): 69(ptr) Variable UniformConstant - 72: TypePointer UniformConstant 67 - 75: 6(int) Constant 1 - 81: TypeImage 36(float) Buffer nonsampled format:R32f - 82: TypeRuntimeArray 81 - 83: TypePointer UniformConstant 82 -84(storageTexelBufferDyn): 83(ptr) Variable UniformConstant - 86: TypePointer UniformConstant 81 - 93(uname): TypeStruct 36(float) - 94: TypeRuntimeArray 93(uname) - 95: TypePointer Uniform 94 -96(uniformBuffer): 95(ptr) Variable Uniform - 97: TypePointer Input 6(int) - 98(nu_ii): 97(ptr) Variable Input - 100: TypePointer Uniform 36(float) - 105(bname): TypeStruct 36(float) - 106: TypeRuntimeArray 105(bname) - 107: TypePointer Uniform 106 -108(storageBuffer): 107(ptr) Variable Uniform - 114: TypeImage 36(float) 2D sampled format:Unknown - 115: TypeSampledImage 114 - 116: TypeRuntimeArray 115 - 117: TypePointer UniformConstant 116 -118(sampledImage): 117(ptr) Variable UniformConstant - 120: TypePointer UniformConstant 115 - 123: TypeVector 36(float) 2 - 124: 36(float) Constant 1056964608 - 125: 123(fvec2) ConstantComposite 124 124 - 130: TypeImage 36(float) 2D nonsampled format:R32f - 131: TypeRuntimeArray 130 - 132: TypePointer UniformConstant 131 -133(storageImage): 132(ptr) Variable UniformConstant - 135: TypePointer UniformConstant 130 - 138: 60(ivec2) ConstantComposite 75 75 - 143: TypeRuntimeArray 50 - 144: TypePointer UniformConstant 143 -145(inputAttachment): 144(ptr) Variable UniformConstant - 153: TypeRuntimeArray 67 - 154: TypePointer UniformConstant 153 -155(uniformTexelBuffer): 154(ptr) Variable UniformConstant - 164: TypeRuntimeArray 81 - 165: TypePointer UniformConstant 164 -166(storageTexelBuffer): 165(ptr) Variable UniformConstant - 174: 42(int) Constant 8 - 175: TypeArray 114 174 - 176: TypePointer UniformConstant 175 -177(uniformTexArr): 176(ptr) Variable UniformConstant - 179: TypePointer UniformConstant 114 - 182: TypeSampler - 183: TypePointer UniformConstant 182 -184(uniformSampler): 183(ptr) Variable UniformConstant - 187: TypePointer Input 123(fvec2) - 188(inTexcoord): 187(ptr) Variable Input - 205: TypeVector 6(int) 4 - 206: TypePointer Function 205(ivec4) - 208: 42(int) Constant 1 - 215: 42(int) Constant 2 - 230: TypeMatrix 39(fvec4) 4 - 231: TypePointer Function 230 - 240(S): TypeStruct 6(int) - 241: TypePointer Function 240(S) - 249: 42(int) Constant 10 - 250: TypeArray 6(int) 249 - 251: TypePointer Function 250 - 268(US): TypeStruct 250 - 269: TypePointer Function 268(US) - 4(main): 2 Function None 3 - 5: Label - 16(a): 7(ptr) Variable Function - 17(nu_li): 7(ptr) Variable Function - 18(param): 7(ptr) Variable Function - 20(param): 7(ptr) Variable Function - 30(nu_li2): 7(ptr) Variable Function - 38(b): 37(ptr) Variable Function - 47(nu_gf): 37(ptr) Variable Function - 54(dyn_i): 7(ptr) Variable Function - 207(v): 206(ptr) Variable Function - 222(uv): 206(ptr) Variable Function - 232(m): 231(ptr) Variable Function - 242(s): 241(ptr) Variable Function - 252(arr): 251(ptr) Variable Function - 259(um): 231(ptr) Variable Function - 270(us): 269(ptr) Variable Function - 278(uarr): 251(ptr) Variable Function - 19: 6(int) Load 17(nu_li) - Store 18(param) 19 - 21: 6(int) FunctionCall 11(foo(i1;i1;) 18(param) 20(param) - 22: 6(int) Load 20(param) - Store 17(nu_li) 22 - Store 16(a) 21 - 23: 6(int) Load 16(a) - 24: 6(int) CopyObject 23 - 25: 6(int) Load 16(a) - 27: 6(int) IMul 25 26 - 28: 6(int) CopyObject 27 - 29: 6(int) IAdd 24 28 - Store 17(nu_li) 29 - 31: 6(int) Load 16(a) - 32: 6(int) Load 16(a) - 33: 6(int) IMul 32 26 - 34: 6(int) CopyObject 33 - 35: 6(int) IAdd 31 34 - Store 30(nu_li2) 35 - 45: 44(ptr) AccessChain 41(nu_inv4) 43 - 46: 36(float) Load 45 - 48: 36(float) Load 47(nu_gf) - 49: 36(float) FMul 46 48 - Store 38(b) 49 - 55: 6(int) Load 54(dyn_i) - 57: 56(ptr) AccessChain 53(inputAttachmentDyn) 55 - 58: 50 Load 57 - 62: 39(fvec4) ImageRead 58 61 - 63: 36(float) CompositeExtract 62 0 - 64: 36(float) Load 38(b) - 65: 36(float) FAdd 64 63 - Store 38(b) 65 - 71: 6(int) Load 54(dyn_i) - 73: 72(ptr) AccessChain 70(uniformTexelBufferDyn) 71 - 74: 67 Load 73 - 76: 66 Image 74 - 77: 39(fvec4) ImageFetch 76 75 - 78: 36(float) CompositeExtract 77 0 - 79: 36(float) Load 38(b) - 80: 36(float) FAdd 79 78 - Store 38(b) 80 - 85: 6(int) Load 54(dyn_i) - 87: 86(ptr) AccessChain 84(storageTexelBufferDyn) 85 - 88: 81 Load 87 - 89: 39(fvec4) ImageRead 88 75 - 90: 36(float) CompositeExtract 89 0 - 91: 36(float) Load 38(b) - 92: 36(float) FAdd 91 90 - Store 38(b) 92 - 99: 6(int) Load 98(nu_ii) - 101: 100(ptr) AccessChain 96(uniformBuffer) 99 59 - 102: 36(float) Load 101 - 103: 36(float) Load 38(b) - 104: 36(float) FAdd 103 102 - Store 38(b) 104 - 109: 6(int) Load 98(nu_ii) - 110: 100(ptr) AccessChain 108(storageBuffer) 109 59 - 111: 36(float) Load 110 - 112: 36(float) Load 38(b) - 113: 36(float) FAdd 112 111 - Store 38(b) 113 - 119: 6(int) Load 98(nu_ii) - 121: 120(ptr) AccessChain 118(sampledImage) 119 - 122: 115 Load 121 - 126: 39(fvec4) ImageSampleImplicitLod 122 125 - 127: 36(float) CompositeExtract 126 0 - 128: 36(float) Load 38(b) - 129: 36(float) FAdd 128 127 - Store 38(b) 129 - 134: 6(int) Load 98(nu_ii) - 136: 135(ptr) AccessChain 133(storageImage) 134 - 137: 130 Load 136 - 139: 39(fvec4) ImageRead 137 138 - 140: 36(float) CompositeExtract 139 0 - 141: 36(float) Load 38(b) - 142: 36(float) FAdd 141 140 - Store 38(b) 142 - 146: 6(int) Load 98(nu_ii) - 147: 56(ptr) AccessChain 145(inputAttachment) 146 - 148: 50 Load 147 - 149: 39(fvec4) ImageRead 148 61 - 150: 36(float) CompositeExtract 149 0 - 151: 36(float) Load 38(b) - 152: 36(float) FAdd 151 150 - Store 38(b) 152 - 156: 6(int) Load 98(nu_ii) - 157: 72(ptr) AccessChain 155(uniformTexelBuffer) 156 - 158: 67 Load 157 - 159: 66 Image 158 - 160: 39(fvec4) ImageFetch 159 75 - 161: 36(float) CompositeExtract 160 0 - 162: 36(float) Load 38(b) - 163: 36(float) FAdd 162 161 - Store 38(b) 163 - 167: 6(int) Load 98(nu_ii) - 168: 86(ptr) AccessChain 166(storageTexelBuffer) 167 - 169: 81 Load 168 - 170: 39(fvec4) ImageRead 169 75 - 171: 36(float) CompositeExtract 170 0 - 172: 36(float) Load 38(b) - 173: 36(float) FAdd 172 171 - Store 38(b) 173 - 178: 6(int) Load 98(nu_ii) - 180: 179(ptr) AccessChain 177(uniformTexArr) 178 - 181: 114 Load 180 - 185: 182 Load 184(uniformSampler) - 186: 115 SampledImage 181 185 - 189: 123(fvec2) Load 188(inTexcoord) - 190: 39(fvec4) ImageSampleImplicitLod 186 189 - 191: 36(float) CompositeExtract 190 0 - 192: 36(float) Load 38(b) - 193: 36(float) FAdd 192 191 - Store 38(b) 193 - 194: 6(int) Load 98(nu_ii) - 195: 179(ptr) AccessChain 177(uniformTexArr) 194 - 196: 114 Load 195 - 197: 182 Load 184(uniformSampler) - 198: 115 SampledImage 196 197 - 199: 115 CopyObject 198 - 200: 123(fvec2) Load 188(inTexcoord) - 201: 39(fvec4) ImageSampleImplicitLod 199 200 - 202: 36(float) CompositeExtract 201 0 - 203: 36(float) Load 38(b) - 204: 36(float) FAdd 203 202 - Store 38(b) 204 - 209: 7(ptr) AccessChain 207(v) 208 - 210: 6(int) Load 209 - 211: 100(ptr) AccessChain 96(uniformBuffer) 210 59 - 212: 36(float) Load 211 - 213: 36(float) Load 38(b) - 214: 36(float) FAdd 213 212 - Store 38(b) 214 - 216: 7(ptr) AccessChain 207(v) 215 - 217: 6(int) Load 216 - 218: 100(ptr) AccessChain 96(uniformBuffer) 217 59 - 219: 36(float) Load 218 - 220: 36(float) Load 38(b) - 221: 36(float) FAdd 220 219 - Store 38(b) 221 - 223: 6(int) Load 98(nu_ii) - 224: 7(ptr) AccessChain 222(uv) 223 - 225: 6(int) Load 224 - 226: 100(ptr) AccessChain 96(uniformBuffer) 225 59 - 227: 36(float) Load 226 - 228: 36(float) Load 38(b) - 229: 36(float) FAdd 228 227 - Store 38(b) 229 - 233: 37(ptr) AccessChain 232(m) 26 215 - 234: 36(float) Load 233 - 235: 6(int) ConvertFToS 234 - 236: 100(ptr) AccessChain 96(uniformBuffer) 235 59 - 237: 36(float) Load 236 - 238: 36(float) Load 38(b) - 239: 36(float) FAdd 238 237 - Store 38(b) 239 - 243: 7(ptr) AccessChain 242(s) 59 - 244: 6(int) Load 243 - 245: 100(ptr) AccessChain 96(uniformBuffer) 244 59 - 246: 36(float) Load 245 - 247: 36(float) Load 38(b) - 248: 36(float) FAdd 247 246 - Store 38(b) 248 - 253: 7(ptr) AccessChain 252(arr) 26 - 254: 6(int) Load 253 - 255: 100(ptr) AccessChain 96(uniformBuffer) 254 59 - 256: 36(float) Load 255 - 257: 36(float) Load 38(b) - 258: 36(float) FAdd 257 256 - Store 38(b) 258 - 260: 6(int) Load 98(nu_ii) - 261: 37(ptr) AccessChain 259(um) 260 215 - 262: 36(float) Load 261 - 263: 6(int) ConvertFToS 262 - 264: 100(ptr) AccessChain 96(uniformBuffer) 263 59 - 265: 36(float) Load 264 - 266: 36(float) Load 38(b) - 267: 36(float) FAdd 266 265 - Store 38(b) 267 - 271: 6(int) Load 98(nu_ii) - 272: 7(ptr) AccessChain 270(us) 59 271 - 273: 6(int) Load 272 - 274: 100(ptr) AccessChain 96(uniformBuffer) 273 59 - 275: 36(float) Load 274 - 276: 36(float) Load 38(b) - 277: 36(float) FAdd 276 275 - Store 38(b) 277 - 279: 6(int) Load 98(nu_ii) - 280: 7(ptr) AccessChain 278(uarr) 279 - 281: 6(int) Load 280 - 282: 100(ptr) AccessChain 96(uniformBuffer) 281 59 - 283: 36(float) Load 282 - 284: 36(float) Load 38(b) - 285: 36(float) FAdd 284 283 - Store 38(b) 285 - 286: 6(int) Load 98(nu_ii) - 287: 36(float) Load 38(b) - 288: 100(ptr) AccessChain 108(storageBuffer) 286 59 - Store 288 287 - Return - FunctionEnd - 11(foo(i1;i1;): 6(int) Function None 8 - 9(nupi): 7(ptr) FunctionParameter - 10(f): 7(ptr) FunctionParameter - 12: Label - 13: 6(int) Load 9(nupi) - ReturnValue 13 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.nonuniform2.frag.out b/deps/glslang/Test/baseResults/spv.nonuniform2.frag.out deleted file mode 100644 index bb89ba79..00000000 --- a/deps/glslang/Test/baseResults/spv.nonuniform2.frag.out +++ /dev/null @@ -1,54 +0,0 @@ -spv.nonuniform2.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 24 - - Capability Shader - Capability ImageBuffer - Capability ShaderNonUniformEXT - Capability RuntimeDescriptorArrayEXT - Capability StorageTexelBufferArrayNonUniformIndexingEXT - Extension "SPV_EXT_descriptor_indexing" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 9 16 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_nonuniform_qualifier" - Name 4 "main" - Name 9 "FragColor" - Name 13 "data" - Name 16 "rIndex" - Decorate 9(FragColor) Location 0 - Decorate 13(data) DescriptorSet 0 - Decorate 13(data) Binding 4 - Decorate 16(rIndex) Flat - Decorate 16(rIndex) Location 3 - Decorate 18 DecorationNonUniformEXT - Decorate 20 DecorationNonUniformEXT - Decorate 21 DecorationNonUniformEXT - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) - 9(FragColor): 8(ptr) Variable Output - 10: TypeImage 6(float) Buffer nonsampled format:Rgba32f - 11: TypeRuntimeArray 10 - 12: TypePointer UniformConstant 11 - 13(data): 12(ptr) Variable UniformConstant - 14: TypeInt 32 1 - 15: TypePointer Input 14(int) - 16(rIndex): 15(ptr) Variable Input - 19: TypePointer UniformConstant 10 - 22: 14(int) Constant 0 - 4(main): 2 Function None 3 - 5: Label - 17: 14(int) Load 16(rIndex) - 18: 14(int) CopyObject 17 - 20: 19(ptr) AccessChain 13(data) 18 - 21: 10 Load 20 - 23: 7(fvec4) ImageRead 21 22 - Store 9(FragColor) 23 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.nonuniform3.frag.out b/deps/glslang/Test/baseResults/spv.nonuniform3.frag.out deleted file mode 100644 index b48916c5..00000000 --- a/deps/glslang/Test/baseResults/spv.nonuniform3.frag.out +++ /dev/null @@ -1,61 +0,0 @@ -spv.nonuniform3.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 32 - - Capability Shader - Capability ShaderNonUniformEXT - Capability RuntimeDescriptorArrayEXT - Extension "SPV_EXT_descriptor_indexing" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 9 16 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_nonuniform_qualifier" - Name 4 "main" - Name 9 "FragColor" - Name 13 "uTex" - Name 16 "Index" - Name 23 "uSamp" - Decorate 9(FragColor) Location 0 - Decorate 13(uTex) DescriptorSet 0 - Decorate 13(uTex) Binding 0 - Decorate 16(Index) Flat - Decorate 16(Index) Location 0 - Decorate 23(uSamp) DescriptorSet 1 - Decorate 23(uSamp) Binding 0 - Decorate 27 DecorationNonUniformEXT - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) - 9(FragColor): 8(ptr) Variable Output - 10: TypeImage 6(float) 2D sampled format:Unknown - 11: TypeRuntimeArray 10 - 12: TypePointer UniformConstant 11 - 13(uTex): 12(ptr) Variable UniformConstant - 14: TypeInt 32 1 - 15: TypePointer Input 14(int) - 16(Index): 15(ptr) Variable Input - 18: TypePointer UniformConstant 10 - 21: TypeSampler - 22: TypePointer UniformConstant 21 - 23(uSamp): 22(ptr) Variable UniformConstant - 25: TypeSampledImage 10 - 28: TypeVector 6(float) 2 - 29: 6(float) Constant 1056964608 - 30: 28(fvec2) ConstantComposite 29 29 - 4(main): 2 Function None 3 - 5: Label - 17: 14(int) Load 16(Index) - 19: 18(ptr) AccessChain 13(uTex) 17 - 20: 10 Load 19 - 24: 21 Load 23(uSamp) - 26: 25 SampledImage 20 24 - 27: 25 CopyObject 26 - 31: 7(fvec4) ImageSampleImplicitLod 27 30 - Store 9(FragColor) 31 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.nonuniform4.frag.out b/deps/glslang/Test/baseResults/spv.nonuniform4.frag.out deleted file mode 100644 index 6bfc9575..00000000 --- a/deps/glslang/Test/baseResults/spv.nonuniform4.frag.out +++ /dev/null @@ -1,51 +0,0 @@ -spv.nonuniform4.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 24 - - Capability Shader - Capability ImageBuffer - Capability ShaderNonUniformEXT - Capability RuntimeDescriptorArrayEXT - Capability StorageTexelBufferArrayNonUniformIndexingEXT - Extension "SPV_EXT_descriptor_indexing" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 13 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_nonuniform_qualifier" - Name 4 "main" - Name 10 "data" - Name 13 "rIndex" - Decorate 10(data) DescriptorSet 0 - Decorate 10(data) Binding 4 - Decorate 13(rIndex) Flat - Decorate 13(rIndex) Location 3 - Decorate 15 DecorationNonUniformEXT - Decorate 17 DecorationNonUniformEXT - Decorate 21 DecorationNonUniformEXT - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeImage 6(int) Buffer nonsampled format:R32ui - 8: TypeRuntimeArray 7 - 9: TypePointer UniformConstant 8 - 10(data): 9(ptr) Variable UniformConstant - 11: TypeInt 32 1 - 12: TypePointer Input 11(int) - 13(rIndex): 12(ptr) Variable Input - 16: TypePointer UniformConstant 7 - 18: 11(int) Constant 0 - 19: 6(int) Constant 0 - 20: TypePointer Image 6(int) - 22: 6(int) Constant 1 - 4(main): 2 Function None 3 - 5: Label - 14: 11(int) Load 13(rIndex) - 15: 11(int) CopyObject 14 - 17: 16(ptr) AccessChain 10(data) 15 - 21: 20(ptr) ImageTexelPointer 17 18 19 - 23: 6(int) AtomicIAdd 21 22 19 19 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.nonuniform5.frag.out b/deps/glslang/Test/baseResults/spv.nonuniform5.frag.out deleted file mode 100644 index ebbb6f41..00000000 --- a/deps/glslang/Test/baseResults/spv.nonuniform5.frag.out +++ /dev/null @@ -1,56 +0,0 @@ -spv.nonuniform5.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 23 - - Capability Shader - Capability ShaderNonUniformEXT - Capability RuntimeDescriptorArrayEXT - Capability UniformBufferArrayNonUniformIndexingEXT - Extension "SPV_EXT_descriptor_indexing" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 9 16 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_nonuniform_qualifier" - Name 4 "main" - Name 9 "FragColor" - Name 10 "UBO" - MemberName 10(UBO) 0 "v" - Name 13 "ubos" - Name 16 "Index" - Decorate 9(FragColor) Location 0 - MemberDecorate 10(UBO) 0 Offset 0 - Decorate 10(UBO) Block - Decorate 13(ubos) DescriptorSet 0 - Decorate 13(ubos) Binding 0 - Decorate 16(Index) Flat - Decorate 16(Index) Location 0 - Decorate 18 DecorationNonUniformEXT - Decorate 21 DecorationNonUniformEXT - Decorate 22 DecorationNonUniformEXT - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) - 9(FragColor): 8(ptr) Variable Output - 10(UBO): TypeStruct 7(fvec4) - 11: TypeRuntimeArray 10(UBO) - 12: TypePointer Uniform 11 - 13(ubos): 12(ptr) Variable Uniform - 14: TypeInt 32 1 - 15: TypePointer Input 14(int) - 16(Index): 15(ptr) Variable Input - 19: 14(int) Constant 0 - 20: TypePointer Uniform 7(fvec4) - 4(main): 2 Function None 3 - 5: Label - 17: 14(int) Load 16(Index) - 18: 14(int) CopyObject 17 - 21: 20(ptr) AccessChain 13(ubos) 18 19 - 22: 7(fvec4) Load 21 - Store 9(FragColor) 22 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.nullInit.comp.out b/deps/glslang/Test/baseResults/spv.nullInit.comp.out deleted file mode 100644 index b7908b57..00000000 --- a/deps/glslang/Test/baseResults/spv.nullInit.comp.out +++ /dev/null @@ -1,65 +0,0 @@ -spv.nullInit.comp -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 37 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" - ExecutionMode 4 LocalSize 1 1 1 - Source GLSL 460 - SourceExtension "GL_EXT_null_initializer" - Name 4 "main" - Name 12 "S" - MemberName 12(S) 0 "v" - MemberName 12(S) 1 "a" - Name 15 "local" - Name 23 "f" - Name 24 "T" - MemberName 24(T) 0 "b" - MemberName 24(T) 1 "s" - Name 27 "t1" - Name 28 "t2" - Name 30 "s" - Name 31 "g" - Name 34 "i" - Name 36 "global" - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 3 - 8: TypeInt 32 0 - 9: 8(int) Constant 4 - 10: TypeArray 7(fvec3) 9 - 11: TypeInt 32 1 - 12(S): TypeStruct 10 11(int) - 13: 12(S) ConstantNull - 14: TypePointer Function 12(S) - 16: 11(int) Constant 1 - 17: TypePointer Function 11(int) - 21: 6(float) ConstantNull - 22: TypePointer Workgroup 6(float) - 23(f): 22(ptr) Variable Workgroup 21 - 24(T): TypeStruct 11(int) 12(S) - 25: 24(T) ConstantNull - 26: TypePointer Workgroup 24(T) - 27(t1): 26(ptr) Variable Workgroup 25 - 28(t2): 26(ptr) Variable Workgroup 25 - 29: TypePointer Workgroup 12(S) - 30(s): 29(ptr) Variable Workgroup 13 - 31(g): 22(ptr) Variable Workgroup 21 - 32: 11(int) ConstantNull - 33: TypePointer Workgroup 11(int) - 34(i): 33(ptr) Variable Workgroup 32 - 35: TypePointer Private 12(S) - 36(global): 35(ptr) Variable Private 13 - 4(main): 2 Function None 3 - 5: Label - 15(local): 14(ptr) Variable Function 13 - 18: 17(ptr) AccessChain 15(local) 16 - 19: 11(int) Load 18 - 20: 11(int) IAdd 19 16 - Store 18 20 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.offsets.frag.out b/deps/glslang/Test/baseResults/spv.offsets.frag.out deleted file mode 100644 index a1a9f311..00000000 --- a/deps/glslang/Test/baseResults/spv.offsets.frag.out +++ /dev/null @@ -1,53 +0,0 @@ -spv.offsets.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 15 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - Name 4 "main" - Name 7 "n1" - MemberName 7(n1) 0 "a" - MemberName 7(n1) 1 "b" - MemberName 7(n1) 2 "c" - MemberName 7(n1) 3 "d" - Name 9 "i1" - Name 12 "n2" - MemberName 12(n2) 0 "e" - MemberName 12(n2) 1 "f" - MemberName 12(n2) 2 "g" - MemberName 12(n2) 3 "h" - Name 14 "i2" - MemberDecorate 7(n1) 0 Offset 8 - MemberDecorate 7(n1) 1 Offset 4 - MemberDecorate 7(n1) 2 Offset 0 - MemberDecorate 7(n1) 3 Offset 12 - Decorate 7(n1) Block - Decorate 9(i1) DescriptorSet 0 - Decorate 9(i1) Binding 0 - MemberDecorate 12(n2) 0 Offset 32 - MemberDecorate 12(n2) 1 Offset 48 - MemberDecorate 12(n2) 2 Offset 16 - MemberDecorate 12(n2) 3 Offset 0 - Decorate 12(n2) BufferBlock - Decorate 14(i2) DescriptorSet 0 - Decorate 14(i2) Binding 1 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7(n1): TypeStruct 6(int) 6(int) 6(int) 6(int) - 8: TypePointer Uniform 7(n1) - 9(i1): 8(ptr) Variable Uniform - 10: TypeFloat 32 - 11: TypeVector 10(float) 3 - 12(n2): TypeStruct 11(fvec3) 11(fvec3) 11(fvec3) 11(fvec3) - 13: TypePointer Uniform 12(n2) - 14(i2): 13(ptr) Variable Uniform - 4(main): 2 Function None 3 - 5: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.paramMemory.420.frag.out b/deps/glslang/Test/baseResults/spv.paramMemory.420.frag.out deleted file mode 100644 index 4cdc35f7..00000000 --- a/deps/glslang/Test/baseResults/spv.paramMemory.420.frag.out +++ /dev/null @@ -1,139 +0,0 @@ -spv.paramMemory.420.frag -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 69 - - Capability Shader - Capability StorageImageReadWithoutFormat - Capability StorageImageWriteWithoutFormat - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 27 66 - ExecutionMode 4 OriginUpperLeft - Source GLSL 420 - SourceExtension "GL_EXT_shader_image_load_formatted" - Name 4 "main" - Name 16 "image_load(I21;vi2;" - Name 14 "image" - Name 15 "coords" - Name 23 "image_store(I21;vi2;vf4;" - Name 20 "image" - Name 21 "coords" - Name 22 "data" - Name 27 "in_coords" - Name 35 "read1" - Name 36 "image1" - Name 37 "param" - Name 40 "read2" - Name 41 "image2" - Name 42 "param" - Name 47 "image3" - Name 51 "param" - Name 53 "param" - Name 57 "image4" - Name 61 "param" - Name 63 "param" - Name 66 "out_color" - Decorate 14(image) Coherent - Decorate 14(image) NonWritable - Decorate 20(image) Coherent - Decorate 20(image) NonReadable - Decorate 27(in_coords) Flat - Decorate 27(in_coords) Location 0 - Decorate 36(image1) DescriptorSet 0 - Decorate 36(image1) Binding 0 - Decorate 36(image1) Coherent - Decorate 36(image1) NonWritable - Decorate 41(image2) DescriptorSet 0 - Decorate 41(image2) Binding 2 - Decorate 41(image2) NonWritable - Decorate 47(image3) DescriptorSet 0 - Decorate 47(image3) Binding 1 - Decorate 47(image3) Coherent - Decorate 47(image3) NonReadable - Decorate 57(image4) DescriptorSet 0 - Decorate 57(image4) Binding 3 - Decorate 57(image4) NonReadable - Decorate 66(out_color) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeImage 6(float) 2D nonsampled format:Unknown - 8: TypePointer UniformConstant 7 - 9: TypeInt 32 1 - 10: TypeVector 9(int) 2 - 11: TypePointer Function 10(ivec2) - 12: TypeVector 6(float) 4 - 13: TypeFunction 12(fvec4) 8(ptr) 11(ptr) - 18: TypePointer Function 12(fvec4) - 19: TypeFunction 2 8(ptr) 11(ptr) 18(ptr) - 26: TypePointer Input 10(ivec2) - 27(in_coords): 26(ptr) Variable Input - 36(image1): 8(ptr) Variable UniformConstant - 41(image2): 8(ptr) Variable UniformConstant - 45: TypeImage 6(float) 2D nonsampled format:Rgba32f - 46: TypePointer UniformConstant 45 - 47(image3): 46(ptr) Variable UniformConstant - 49: 6(float) Constant 1056964608 - 55: TypeImage 6(float) 2D nonsampled format:Rgba16f - 56: TypePointer UniformConstant 55 - 57(image4): 56(ptr) Variable UniformConstant - 59: 6(float) Constant 1073741824 - 65: TypePointer Output 12(fvec4) - 66(out_color): 65(ptr) Variable Output - 67: 6(float) Constant 0 - 68: 12(fvec4) ConstantComposite 67 67 67 67 - 4(main): 2 Function None 3 - 5: Label - 35(read1): 18(ptr) Variable Function - 37(param): 11(ptr) Variable Function - 40(read2): 18(ptr) Variable Function - 42(param): 11(ptr) Variable Function - 51(param): 11(ptr) Variable Function - 53(param): 18(ptr) Variable Function - 61(param): 11(ptr) Variable Function - 63(param): 18(ptr) Variable Function - 38: 10(ivec2) Load 27(in_coords) - Store 37(param) 38 - 39: 12(fvec4) FunctionCall 16(image_load(I21;vi2;) 36(image1) 37(param) - Store 35(read1) 39 - 43: 10(ivec2) Load 27(in_coords) - Store 42(param) 43 - 44: 12(fvec4) FunctionCall 16(image_load(I21;vi2;) 41(image2) 42(param) - Store 40(read2) 44 - 48: 12(fvec4) Load 35(read1) - 50: 12(fvec4) VectorTimesScalar 48 49 - 52: 10(ivec2) Load 27(in_coords) - Store 51(param) 52 - Store 53(param) 50 - 54: 2 FunctionCall 23(image_store(I21;vi2;vf4;) 47(image3) 51(param) 53(param) - 58: 12(fvec4) Load 40(read2) - 60: 12(fvec4) VectorTimesScalar 58 59 - 62: 10(ivec2) Load 27(in_coords) - Store 61(param) 62 - Store 63(param) 60 - 64: 2 FunctionCall 23(image_store(I21;vi2;vf4;) 57(image4) 61(param) 63(param) - Store 66(out_color) 68 - Return - FunctionEnd -16(image_load(I21;vi2;): 12(fvec4) Function None 13 - 14(image): 8(ptr) FunctionParameter - 15(coords): 11(ptr) FunctionParameter - 17: Label - 25: 7 Load 14(image) - 28: 10(ivec2) Load 27(in_coords) - 29: 12(fvec4) ImageRead 25 28 - ReturnValue 29 - FunctionEnd -23(image_store(I21;vi2;vf4;): 2 Function None 19 - 20(image): 8(ptr) FunctionParameter - 21(coords): 11(ptr) FunctionParameter - 22(data): 18(ptr) FunctionParameter - 24: Label - 32: 7 Load 20(image) - 33: 10(ivec2) Load 27(in_coords) - 34: 12(fvec4) Load 22(data) - ImageWrite 32 33 34 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.paramMemory.frag.out b/deps/glslang/Test/baseResults/spv.paramMemory.frag.out deleted file mode 100644 index a535cd3f..00000000 --- a/deps/glslang/Test/baseResults/spv.paramMemory.frag.out +++ /dev/null @@ -1,120 +0,0 @@ -spv.paramMemory.frag -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 64 - - Capability Shader - Capability StorageImageReadWithoutFormat - Capability StorageImageWriteWithoutFormat - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 27 61 - ExecutionMode 4 OriginUpperLeft - Source ESSL 310 - Name 4 "main" - Name 16 "image_load(I21;vi2;" - Name 14 "image" - Name 15 "coords" - Name 23 "image_store(I21;vi2;vf4;" - Name 20 "image" - Name 21 "coords" - Name 22 "data" - Name 27 "in_coords" - Name 35 "read1" - Name 38 "read2" - Name 43 "image3" - Name 46 "param" - Name 48 "param" - Name 52 "image4" - Name 56 "param" - Name 58 "param" - Name 61 "out_color" - Decorate 14(image) Coherent - Decorate 14(image) NonWritable - Decorate 20(image) Coherent - Decorate 20(image) NonReadable - Decorate 27(in_coords) Flat - Decorate 27(in_coords) Location 0 - Decorate 43(image3) DescriptorSet 0 - Decorate 43(image3) Binding 1 - Decorate 43(image3) Coherent - Decorate 43(image3) NonReadable - Decorate 52(image4) DescriptorSet 0 - Decorate 52(image4) Binding 3 - Decorate 52(image4) NonReadable - Decorate 61(out_color) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeImage 6(float) 2D nonsampled format:Unknown - 8: TypePointer UniformConstant 7 - 9: TypeInt 32 1 - 10: TypeVector 9(int) 2 - 11: TypePointer Function 10(ivec2) - 12: TypeVector 6(float) 4 - 13: TypeFunction 12(fvec4) 8(ptr) 11(ptr) - 18: TypePointer Function 12(fvec4) - 19: TypeFunction 2 8(ptr) 11(ptr) 18(ptr) - 26: TypePointer Input 10(ivec2) - 27(in_coords): 26(ptr) Variable Input - 36: 6(float) Constant 1053609165 - 37: 12(fvec4) ConstantComposite 36 36 36 36 - 39: 6(float) Constant 1056964608 - 40: 12(fvec4) ConstantComposite 39 39 39 39 - 41: TypeImage 6(float) 2D nonsampled format:Rgba32f - 42: TypePointer UniformConstant 41 - 43(image3): 42(ptr) Variable UniformConstant - 50: TypeImage 6(float) 2D nonsampled format:Rgba16f - 51: TypePointer UniformConstant 50 - 52(image4): 51(ptr) Variable UniformConstant - 54: 6(float) Constant 1073741824 - 60: TypePointer Output 12(fvec4) - 61(out_color): 60(ptr) Variable Output - 62: 6(float) Constant 0 - 63: 12(fvec4) ConstantComposite 62 62 62 62 - 4(main): 2 Function None 3 - 5: Label - 35(read1): 18(ptr) Variable Function - 38(read2): 18(ptr) Variable Function - 46(param): 11(ptr) Variable Function - 48(param): 18(ptr) Variable Function - 56(param): 11(ptr) Variable Function - 58(param): 18(ptr) Variable Function - Store 35(read1) 37 - Store 38(read2) 40 - 44: 12(fvec4) Load 35(read1) - 45: 12(fvec4) VectorTimesScalar 44 39 - 47: 10(ivec2) Load 27(in_coords) - Store 46(param) 47 - Store 48(param) 45 - 49: 2 FunctionCall 23(image_store(I21;vi2;vf4;) 43(image3) 46(param) 48(param) - 53: 12(fvec4) Load 38(read2) - 55: 12(fvec4) VectorTimesScalar 53 54 - 57: 10(ivec2) Load 27(in_coords) - Store 56(param) 57 - Store 58(param) 55 - 59: 2 FunctionCall 23(image_store(I21;vi2;vf4;) 52(image4) 56(param) 58(param) - Store 61(out_color) 63 - Return - FunctionEnd -16(image_load(I21;vi2;): 12(fvec4) Function None 13 - 14(image): 8(ptr) FunctionParameter - 15(coords): 11(ptr) FunctionParameter - 17: Label - 25: 7 Load 14(image) - 28: 10(ivec2) Load 27(in_coords) - 29: 12(fvec4) ImageRead 25 28 - ReturnValue 29 - FunctionEnd -23(image_store(I21;vi2;vf4;): 2 Function None 19 - 20(image): 8(ptr) FunctionParameter - 21(coords): 11(ptr) FunctionParameter - 22(data): 18(ptr) FunctionParameter - 24: Label - 32: 7 Load 20(image) - 33: 10(ivec2) Load 27(in_coords) - 34: 12(fvec4) Load 22(data) - ImageWrite 32 33 34 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.perprimitiveNV.frag.out b/deps/glslang/Test/baseResults/spv.perprimitiveNV.frag.out deleted file mode 100644 index 2a37f2b5..00000000 --- a/deps/glslang/Test/baseResults/spv.perprimitiveNV.frag.out +++ /dev/null @@ -1,54 +0,0 @@ -spv.perprimitiveNV.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 23 - - Capability Shader - Capability MeshShadingNV - Extension "SPV_NV_mesh_shader" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 8 11 19 - ExecutionMode 4 OriginUpperLeft - Source GLSL 460 - SourceExtension "GL_NV_mesh_shader" - Name 4 "main" - Name 8 "g" - Name 9 "B" - MemberName 9(B) 0 "f" - Name 11 "" - Name 17 "C" - MemberName 17(C) 0 "h" - Name 19 "" - Decorate 8(g) Location 8 - MemberDecorate 9(B) 0 PerPrimitiveNV - Decorate 9(B) Block - Decorate 11 Location 0 - MemberDecorate 17(C) 0 Flat - MemberDecorate 17(C) 0 Centroid - Decorate 17(C) Block - Decorate 19 Location 4 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypePointer Output 6(float) - 8(g): 7(ptr) Variable Output - 9(B): TypeStruct 6(float) - 10: TypePointer Input 9(B) - 11: 10(ptr) Variable Input - 12: TypeInt 32 1 - 13: 12(int) Constant 0 - 14: TypePointer Input 6(float) - 17(C): TypeStruct 6(float) - 18: TypePointer Input 17(C) - 19: 18(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 15: 14(ptr) AccessChain 11 13 - 16: 6(float) Load 15 - 20: 14(ptr) AccessChain 19 13 - 21: 6(float) Load 20 - 22: 6(float) FAdd 16 21 - Store 8(g) 22 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.pp.line.frag.out b/deps/glslang/Test/baseResults/spv.pp.line.frag.out deleted file mode 100644 index 549ae912..00000000 --- a/deps/glslang/Test/baseResults/spv.pp.line.frag.out +++ /dev/null @@ -1,149 +0,0 @@ -spv.pp.line.frag -WARNING: spv.pp.line.frag:6: varying deprecated in version 130; may be removed in future release -WARNING: spv.pp.line.frag:7: varying deprecated in version 130; may be removed in future release - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 65 - - Capability Shader - Capability Sampled1D - 2: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 5 "main" 41 53 56 59 - ExecutionMode 5 OriginUpperLeft - 1: String "spv.pp.line.frag" - Source GLSL 140 1 "// OpModuleProcessed auto-map-locations -// OpModuleProcessed auto-map-bindings -// OpModuleProcessed client vulkan100 -// OpModuleProcessed target-env vulkan1.0 -// OpModuleProcessed keep-uncalled -// OpModuleProcessed entry-point main -#line 1 -#version 140 - -uniform sampler1D texSampler1D; -uniform sampler2D texSampler2D; - -varying float blend; -varying vec4 u; - -in vec2 coords2D; - -void main() -{ - float blendscale = 1.789; - float bias = 2.0; - float coords1D = 1.789; - vec4 color = vec4(0.0, 0.0, 0.0, 0.0); -#line 53 - color += texture (texSampler1D, coords1D); - color += texture (texSampler1D, coords1D, bias); -#line 102 - color += texture (texSampler2D, coords2D); - color += texture (texSampler2D, coords2D, bias); - - gl_FragColor = mix(color, u, blend * blendscale); -} -" - Name 5 "main" - Name 9 "blendscale" - Name 11 "bias" - Name 13 "coords1D" - Name 16 "color" - Name 22 "texSampler1D" - Name 37 "texSampler2D" - Name 41 "coords2D" - Name 53 "gl_FragColor" - Name 56 "u" - Name 59 "blend" - Decorate 22(texSampler1D) DescriptorSet 0 - Decorate 22(texSampler1D) Binding 0 - Decorate 37(texSampler2D) DescriptorSet 0 - Decorate 37(texSampler2D) Binding 1 - Decorate 41(coords2D) Location 2 - Decorate 53(gl_FragColor) Location 0 - Decorate 56(u) Location 1 - Decorate 59(blend) Location 0 - 3: TypeVoid - 4: TypeFunction 3 - 7: TypeFloat 32 - 8: TypePointer Function 7(float) - 10: 7(float) Constant 1071971828 - 12: 7(float) Constant 1073741824 - 14: TypeVector 7(float) 4 - 15: TypePointer Function 14(fvec4) - 17: 7(float) Constant 0 - 18: 14(fvec4) ConstantComposite 17 17 17 17 - 19: TypeImage 7(float) 1D sampled format:Unknown - 20: TypeSampledImage 19 - 21: TypePointer UniformConstant 20 -22(texSampler1D): 21(ptr) Variable UniformConstant - 34: TypeImage 7(float) 2D sampled format:Unknown - 35: TypeSampledImage 34 - 36: TypePointer UniformConstant 35 -37(texSampler2D): 36(ptr) Variable UniformConstant - 39: TypeVector 7(float) 2 - 40: TypePointer Input 39(fvec2) - 41(coords2D): 40(ptr) Variable Input - 52: TypePointer Output 14(fvec4) -53(gl_FragColor): 52(ptr) Variable Output - 55: TypePointer Input 14(fvec4) - 56(u): 55(ptr) Variable Input - 58: TypePointer Input 7(float) - 59(blend): 58(ptr) Variable Input - 5(main): 3 Function None 4 - 6: Label - 9(blendscale): 8(ptr) Variable Function - 11(bias): 8(ptr) Variable Function - 13(coords1D): 8(ptr) Variable Function - 16(color): 15(ptr) Variable Function - Line 1 13 0 - Store 9(blendscale) 10 - Line 1 14 0 - Store 11(bias) 12 - Line 1 15 0 - Store 13(coords1D) 10 - Line 1 16 0 - Store 16(color) 18 - Line 1 54 0 - 23: 20 Load 22(texSampler1D) - 24: 7(float) Load 13(coords1D) - 25: 14(fvec4) ImageSampleImplicitLod 23 24 - 26: 14(fvec4) Load 16(color) - 27: 14(fvec4) FAdd 26 25 - Store 16(color) 27 - Line 1 55 0 - 28: 20 Load 22(texSampler1D) - 29: 7(float) Load 13(coords1D) - 30: 7(float) Load 11(bias) - 31: 14(fvec4) ImageSampleImplicitLod 28 29 Bias 30 - 32: 14(fvec4) Load 16(color) - 33: 14(fvec4) FAdd 32 31 - Store 16(color) 33 - Line 1 103 0 - 38: 35 Load 37(texSampler2D) - 42: 39(fvec2) Load 41(coords2D) - 43: 14(fvec4) ImageSampleImplicitLod 38 42 - 44: 14(fvec4) Load 16(color) - 45: 14(fvec4) FAdd 44 43 - Store 16(color) 45 - Line 1 104 0 - 46: 35 Load 37(texSampler2D) - 47: 39(fvec2) Load 41(coords2D) - 48: 7(float) Load 11(bias) - 49: 14(fvec4) ImageSampleImplicitLod 46 47 Bias 48 - 50: 14(fvec4) Load 16(color) - 51: 14(fvec4) FAdd 50 49 - Store 16(color) 51 - Line 1 106 0 - 54: 14(fvec4) Load 16(color) - 57: 14(fvec4) Load 56(u) - 60: 7(float) Load 59(blend) - 61: 7(float) Load 9(blendscale) - 62: 7(float) FMul 60 61 - 63: 14(fvec4) CompositeConstruct 62 62 62 62 - 64: 14(fvec4) ExtInst 2(GLSL.std.450) 46(FMix) 54 57 63 - Store 53(gl_FragColor) 64 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.precise.tesc.out b/deps/glslang/Test/baseResults/spv.precise.tesc.out deleted file mode 100644 index e13c6121..00000000 --- a/deps/glslang/Test/baseResults/spv.precise.tesc.out +++ /dev/null @@ -1,116 +0,0 @@ -spv.precise.tesc -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 72 - - Capability Tessellation - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint TessellationControl 4 "main" 12 15 20 30 40 45 - ExecutionMode 4 OutputVertices 3 - Source ESSL 310 - SourceExtension "GL_EXT_gpu_shader5" - SourceExtension "GL_EXT_shader_io_blocks" - SourceExtension "GL_EXT_tessellation_shader" - Name 4 "main" - Name 12 "in_te_position" - Name 15 "gl_InvocationID" - Name 20 "in_tc_position" - Name 30 "gl_TessLevelInner" - Name 40 "gl_TessLevelOuter" - Name 45 "in_tc_tessParam" - Decorate 12(in_te_position) Location 0 - Decorate 15(gl_InvocationID) BuiltIn InvocationId - Decorate 20(in_tc_position) Location 0 - Decorate 30(gl_TessLevelInner) Patch - Decorate 30(gl_TessLevelInner) BuiltIn TessLevelInner - Decorate 40(gl_TessLevelOuter) Patch - Decorate 40(gl_TessLevelOuter) BuiltIn TessLevelOuter - Decorate 45(in_tc_tessParam) Location 1 - Decorate 52 NoContraction - Decorate 53 NoContraction - Decorate 54 NoContraction - Decorate 60 NoContraction - Decorate 61 NoContraction - Decorate 62 NoContraction - Decorate 68 NoContraction - Decorate 69 NoContraction - Decorate 70 NoContraction - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 2 - 8: TypeInt 32 0 - 9: 8(int) Constant 3 - 10: TypeArray 7(fvec2) 9 - 11: TypePointer Output 10 -12(in_te_position): 11(ptr) Variable Output - 13: TypeInt 32 1 - 14: TypePointer Input 13(int) -15(gl_InvocationID): 14(ptr) Variable Input - 17: 8(int) Constant 32 - 18: TypeArray 7(fvec2) 17 - 19: TypePointer Input 18 -20(in_tc_position): 19(ptr) Variable Input - 22: TypePointer Input 7(fvec2) - 25: TypePointer Output 7(fvec2) - 27: 8(int) Constant 2 - 28: TypeArray 6(float) 27 - 29: TypePointer Output 28 -30(gl_TessLevelInner): 29(ptr) Variable Output - 31: 13(int) Constant 0 - 32: 6(float) Constant 1084227584 - 33: TypePointer Output 6(float) - 35: 13(int) Constant 1 - 37: 8(int) Constant 4 - 38: TypeArray 6(float) 37 - 39: TypePointer Output 38 -40(gl_TessLevelOuter): 39(ptr) Variable Output - 41: 6(float) Constant 1065353216 - 42: 6(float) Constant 1105985536 - 43: TypeArray 6(float) 17 - 44: TypePointer Input 43 -45(in_tc_tessParam): 44(ptr) Variable Input - 46: TypePointer Input 6(float) - 49: 13(int) Constant 2 - 4(main): 2 Function None 3 - 5: Label - 16: 13(int) Load 15(gl_InvocationID) - 21: 13(int) Load 15(gl_InvocationID) - 23: 22(ptr) AccessChain 20(in_tc_position) 21 - 24: 7(fvec2) Load 23 - 26: 25(ptr) AccessChain 12(in_te_position) 16 - Store 26 24 - 34: 33(ptr) AccessChain 30(gl_TessLevelInner) 31 - Store 34 32 - 36: 33(ptr) AccessChain 30(gl_TessLevelInner) 35 - Store 36 32 - 47: 46(ptr) AccessChain 45(in_tc_tessParam) 35 - 48: 6(float) Load 47 - 50: 46(ptr) AccessChain 45(in_tc_tessParam) 49 - 51: 6(float) Load 50 - 52: 6(float) FAdd 48 51 - 53: 6(float) FMul 42 52 - 54: 6(float) FAdd 41 53 - 55: 33(ptr) AccessChain 40(gl_TessLevelOuter) 31 - Store 55 54 - 56: 46(ptr) AccessChain 45(in_tc_tessParam) 49 - 57: 6(float) Load 56 - 58: 46(ptr) AccessChain 45(in_tc_tessParam) 31 - 59: 6(float) Load 58 - 60: 6(float) FAdd 57 59 - 61: 6(float) FMul 42 60 - 62: 6(float) FAdd 41 61 - 63: 33(ptr) AccessChain 40(gl_TessLevelOuter) 35 - Store 63 62 - 64: 46(ptr) AccessChain 45(in_tc_tessParam) 31 - 65: 6(float) Load 64 - 66: 46(ptr) AccessChain 45(in_tc_tessParam) 35 - 67: 6(float) Load 66 - 68: 6(float) FAdd 65 67 - 69: 6(float) FMul 42 68 - 70: 6(float) FAdd 41 69 - 71: 33(ptr) AccessChain 40(gl_TessLevelOuter) 49 - Store 71 70 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.precise.tese.out b/deps/glslang/Test/baseResults/spv.precise.tese.out deleted file mode 100644 index 7db4ed01..00000000 --- a/deps/glslang/Test/baseResults/spv.precise.tese.out +++ /dev/null @@ -1,181 +0,0 @@ -spv.precise.tese -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 119 - - Capability Tessellation - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint TessellationEvaluation 4 "main" 12 21 62 112 - ExecutionMode 4 Triangles - ExecutionMode 4 SpacingEqual - ExecutionMode 4 VertexOrderCcw - Source ESSL 310 - SourceExtension "GL_EXT_gpu_shader5" - SourceExtension "GL_EXT_shader_io_blocks" - SourceExtension "GL_EXT_tessellation_shader" - Name 4 "main" - Name 9 "pos" - Name 12 "gl_TessCoord" - Name 21 "in_te_position" - Name 45 "f" - Name 62 "in_f_color" - Name 73 "bits" - Name 77 "numBits" - Name 78 "i" - Name 110 "gl_PerVertex" - MemberName 110(gl_PerVertex) 0 "gl_Position" - MemberName 110(gl_PerVertex) 1 "gl_PointSize" - Name 112 "" - Decorate 12(gl_TessCoord) BuiltIn TessCoord - Decorate 21(in_te_position) Location 0 - Decorate 27 NoContraction - Decorate 34 NoContraction - Decorate 35 NoContraction - Decorate 42 NoContraction - Decorate 43 NoContraction - Decorate 62(in_f_color) RelaxedPrecision - Decorate 62(in_f_color) Location 0 - Decorate 97 NoContraction - Decorate 99 NoContraction - Decorate 101 NoContraction - Decorate 106 NoContraction - Decorate 109 NoContraction - MemberDecorate 110(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 110(gl_PerVertex) 1 BuiltIn PointSize - Decorate 110(gl_PerVertex) Block - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 2 - 8: TypePointer Function 7(fvec2) - 10: TypeVector 6(float) 3 - 11: TypePointer Input 10(fvec3) -12(gl_TessCoord): 11(ptr) Variable Input - 13: TypeInt 32 0 - 14: 13(int) Constant 0 - 15: TypePointer Input 6(float) - 18: 13(int) Constant 32 - 19: TypeArray 7(fvec2) 18 - 20: TypePointer Input 19 -21(in_te_position): 20(ptr) Variable Input - 22: TypeInt 32 1 - 23: 22(int) Constant 0 - 24: TypePointer Input 7(fvec2) - 28: 13(int) Constant 1 - 31: 22(int) Constant 1 - 36: 13(int) Constant 2 - 39: 22(int) Constant 2 - 44: TypePointer Function 6(float) - 46: 6(float) Constant 1077936128 - 57: 6(float) Constant 1056964608 - 60: TypeVector 6(float) 4 - 61: TypePointer Output 60(fvec4) - 62(in_f_color): 61(ptr) Variable Output - 66: 6(float) Constant 1065353216 - 71: TypeVector 13(int) 2 - 72: TypePointer Function 71(ivec2) - 76: TypePointer Function 13(int) - 85: TypeBool - 105: 6(float) Constant 1025758986 -110(gl_PerVertex): TypeStruct 60(fvec4) 6(float) - 111: TypePointer Output 110(gl_PerVertex) - 112: 111(ptr) Variable Output - 114: 6(float) Constant 0 - 4(main): 2 Function None 3 - 5: Label - 9(pos): 8(ptr) Variable Function - 45(f): 44(ptr) Variable Function - 73(bits): 72(ptr) Variable Function - 77(numBits): 76(ptr) Variable Function - 78(i): 76(ptr) Variable Function - 16: 15(ptr) AccessChain 12(gl_TessCoord) 14 - 17: 6(float) Load 16 - 25: 24(ptr) AccessChain 21(in_te_position) 23 - 26: 7(fvec2) Load 25 - 27: 7(fvec2) VectorTimesScalar 26 17 - 29: 15(ptr) AccessChain 12(gl_TessCoord) 28 - 30: 6(float) Load 29 - 32: 24(ptr) AccessChain 21(in_te_position) 31 - 33: 7(fvec2) Load 32 - 34: 7(fvec2) VectorTimesScalar 33 30 - 35: 7(fvec2) FAdd 27 34 - 37: 15(ptr) AccessChain 12(gl_TessCoord) 36 - 38: 6(float) Load 37 - 40: 24(ptr) AccessChain 21(in_te_position) 39 - 41: 7(fvec2) Load 40 - 42: 7(fvec2) VectorTimesScalar 41 38 - 43: 7(fvec2) FAdd 35 42 - Store 9(pos) 43 - 47: 15(ptr) AccessChain 12(gl_TessCoord) 14 - 48: 6(float) Load 47 - 49: 15(ptr) AccessChain 12(gl_TessCoord) 28 - 50: 6(float) Load 49 - 51: 15(ptr) AccessChain 12(gl_TessCoord) 36 - 52: 6(float) Load 51 - 53: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 50 52 - 54: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 48 53 - 55: 6(float) FMul 46 54 - 56: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 55 - 58: 6(float) FMul 56 57 - 59: 6(float) FAdd 58 57 - Store 45(f) 59 - 63: 10(fvec3) Load 12(gl_TessCoord) - 64: 6(float) Load 45(f) - 65: 10(fvec3) VectorTimesScalar 63 64 - 67: 6(float) CompositeExtract 65 0 - 68: 6(float) CompositeExtract 65 1 - 69: 6(float) CompositeExtract 65 2 - 70: 60(fvec4) CompositeConstruct 67 68 69 66 - Store 62(in_f_color) 70 - 74: 7(fvec2) Load 9(pos) - 75: 71(ivec2) Bitcast 74 - Store 73(bits) 75 - Store 77(numBits) 14 - Store 78(i) 14 - Branch 79 - 79: Label - LoopMerge 81 82 None - Branch 83 - 83: Label - 84: 13(int) Load 78(i) - 86: 85(bool) ULessThan 84 18 - BranchConditional 86 80 81 - 80: Label - 87: 76(ptr) AccessChain 73(bits) 14 - 88: 13(int) Load 87 - 89: 13(int) Load 78(i) - 90: 13(int) ShiftLeftLogical 88 89 - 91: 13(int) BitwiseAnd 90 28 - 92: 76(ptr) AccessChain 73(bits) 28 - 93: 13(int) Load 92 - 94: 13(int) Load 78(i) - 95: 13(int) ShiftLeftLogical 93 94 - 96: 13(int) BitwiseAnd 95 28 - 97: 13(int) IAdd 91 96 - 98: 13(int) Load 77(numBits) - 99: 13(int) IAdd 98 97 - Store 77(numBits) 99 - Branch 82 - 82: Label - 100: 13(int) Load 78(i) - 101: 13(int) IAdd 100 31 - Store 78(i) 101 - Branch 79 - 81: Label - 102: 13(int) Load 77(numBits) - 103: 13(int) BitwiseAnd 102 28 - 104: 6(float) ConvertUToF 103 - 106: 6(float) FMul 104 105 - 107: 7(fvec2) Load 9(pos) - 108: 7(fvec2) CompositeConstruct 106 106 - 109: 7(fvec2) FAdd 107 108 - Store 9(pos) 109 - 113: 7(fvec2) Load 9(pos) - 115: 6(float) CompositeExtract 113 0 - 116: 6(float) CompositeExtract 113 1 - 117: 60(fvec4) CompositeConstruct 115 116 114 66 - 118: 61(ptr) AccessChain 112 23 - Store 118 117 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.precision.frag.out b/deps/glslang/Test/baseResults/spv.precision.frag.out deleted file mode 100644 index 1d31230f..00000000 --- a/deps/glslang/Test/baseResults/spv.precision.frag.out +++ /dev/null @@ -1,308 +0,0 @@ -spv.precision.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 165 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 23 62 64 76 119 149 - ExecutionMode 4 OriginUpperLeft - Source ESSL 310 - SourceExtension "GL_OES_sample_variables" - Name 4 "main" - Name 12 "foo(vf3;" - Name 11 "mv3" - Name 19 "boolfun(vb2;" - Name 18 "bv2" - Name 23 "highfin" - Name 41 "sum" - Name 43 "uniform_medium" - Name 45 "uniform_high" - Name 51 "uniform_low" - Name 56 "arg1" - Name 58 "arg2" - Name 60 "d" - Name 62 "lowfin" - Name 64 "mediumfin" - Name 68 "global_highp" - Name 72 "local_highp" - Name 76 "mediumfout" - Name 107 "ub2" - Name 108 "param" - Name 117 "S" - MemberName 117(S) 0 "a" - MemberName 117(S) 1 "b" - Name 119 "s" - Name 149 "gl_SampleMaskIn" - Decorate 12(foo(vf3;) RelaxedPrecision - Decorate 11(mv3) RelaxedPrecision - Decorate 23(highfin) Location 2 - Decorate 27 RelaxedPrecision - Decorate 28 RelaxedPrecision - Decorate 41(sum) RelaxedPrecision - Decorate 43(uniform_medium) RelaxedPrecision - Decorate 44 RelaxedPrecision - Decorate 49 RelaxedPrecision - Decorate 51(uniform_low) RelaxedPrecision - Decorate 52 RelaxedPrecision - Decorate 53 RelaxedPrecision - Decorate 54 RelaxedPrecision - Decorate 56(arg1) RelaxedPrecision - Decorate 58(arg2) RelaxedPrecision - Decorate 60(d) RelaxedPrecision - Decorate 62(lowfin) RelaxedPrecision - Decorate 62(lowfin) Location 0 - Decorate 63 RelaxedPrecision - Decorate 64(mediumfin) RelaxedPrecision - Decorate 64(mediumfin) Location 1 - Decorate 65 RelaxedPrecision - Decorate 66 RelaxedPrecision - Decorate 76(mediumfout) RelaxedPrecision - Decorate 76(mediumfout) Location 0 - Decorate 77 RelaxedPrecision - Decorate 78 RelaxedPrecision - Decorate 79 RelaxedPrecision - Decorate 80 RelaxedPrecision - Decorate 81 RelaxedPrecision - Decorate 82 RelaxedPrecision - Decorate 86 RelaxedPrecision - Decorate 88 RelaxedPrecision - Decorate 90 RelaxedPrecision - Decorate 91 RelaxedPrecision - Decorate 93 RelaxedPrecision - Decorate 94 RelaxedPrecision - Decorate 97 RelaxedPrecision - Decorate 98 RelaxedPrecision - Decorate 99 RelaxedPrecision - Decorate 100 RelaxedPrecision - Decorate 101 RelaxedPrecision - Decorate 102 RelaxedPrecision - Decorate 103 RelaxedPrecision - Decorate 104 RelaxedPrecision - Decorate 105 RelaxedPrecision - Decorate 113 RelaxedPrecision - Decorate 115 RelaxedPrecision - Decorate 116 RelaxedPrecision - MemberDecorate 117(S) 1 RelaxedPrecision - Decorate 119(s) Location 3 - Decorate 123 RelaxedPrecision - Decorate 127 RelaxedPrecision - Decorate 128 RelaxedPrecision - Decorate 129 RelaxedPrecision - Decorate 130 RelaxedPrecision - Decorate 131 RelaxedPrecision - Decorate 132 RelaxedPrecision - Decorate 135 RelaxedPrecision - Decorate 139 RelaxedPrecision - Decorate 140 RelaxedPrecision - Decorate 143 RelaxedPrecision - Decorate 144 RelaxedPrecision - Decorate 145 RelaxedPrecision - Decorate 149(gl_SampleMaskIn) Flat - Decorate 149(gl_SampleMaskIn) BuiltIn SampleMask - Decorate 153 RelaxedPrecision - Decorate 156 RelaxedPrecision - Decorate 159 RelaxedPrecision - Decorate 160 RelaxedPrecision - Decorate 162 RelaxedPrecision - Decorate 163 RelaxedPrecision - Decorate 164 RelaxedPrecision - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 3 - 8: TypePointer Function 7(fvec3) - 9: TypeVector 6(float) 2 - 10: TypeFunction 9(fvec2) 8(ptr) - 14: TypeBool - 15: TypeVector 14(bool) 2 - 16: TypePointer Function 15(bvec2) - 17: TypeFunction 14(bool) 16(ptr) - 21: TypeVector 6(float) 4 - 22: TypePointer Input 21(fvec4) - 23(highfin): 22(ptr) Variable Input - 26: TypePointer Function 9(fvec2) - 32: 14(bool) ConstantFalse - 33: 14(bool) ConstantTrue - 34: 15(bvec2) ConstantComposite 32 33 - 39: TypeInt 32 1 - 40: TypePointer Function 39(int) - 42: TypePointer Private 39(int) -43(uniform_medium): 42(ptr) Variable Private -45(uniform_high): 42(ptr) Variable Private - 51(uniform_low): 42(ptr) Variable Private - 55: TypePointer Function 6(float) - 57: 6(float) Constant 1078774989 - 59: 6(float) Constant 1232730691 - 61: TypePointer Input 6(float) - 62(lowfin): 61(ptr) Variable Input - 64(mediumfin): 61(ptr) Variable Input - 67: TypePointer Private 6(float) -68(global_highp): 67(ptr) Variable Private - 71: TypePointer Function 21(fvec4) - 75: TypePointer Output 21(fvec4) - 76(mediumfout): 75(ptr) Variable Output - 85: 39(int) Constant 4 - 87: TypeVector 39(int) 2 - 95: TypeInt 32 0 - 96: 95(int) Constant 0 - 106: TypePointer Private 15(bvec2) - 107(ub2): 106(ptr) Variable Private - 114: 6(float) Constant 1065353216 - 117(S): TypeStruct 6(float) 6(float) - 118: TypePointer Input 117(S) - 119(s): 118(ptr) Variable Input - 120: 39(int) Constant 0 - 125: 39(int) Constant 1 - 133: 6(float) Constant 1082549862 - 138: 6(float) Constant 1073741824 - 142: 6(float) Constant 1077936128 - 146: 95(int) Constant 1 - 147: TypeArray 39(int) 146 - 148: TypePointer Input 147 -149(gl_SampleMaskIn): 148(ptr) Variable Input - 150: TypePointer Input 39(int) - 4(main): 2 Function None 3 - 5: Label - 41(sum): 40(ptr) Variable Function - 56(arg1): 55(ptr) Variable Function - 58(arg2): 55(ptr) Variable Function - 60(d): 55(ptr) Variable Function - 72(local_highp): 71(ptr) Variable Function - 108(param): 16(ptr) Variable Function - 135: 71(ptr) Variable Function - 156: 71(ptr) Variable Function - 44: 39(int) Load 43(uniform_medium) - 46: 39(int) Load 45(uniform_high) - 47: 39(int) IAdd 44 46 - Store 41(sum) 47 - 48: 39(int) Load 45(uniform_high) - 49: 39(int) Load 41(sum) - 50: 39(int) IAdd 49 48 - Store 41(sum) 50 - 52: 39(int) Load 51(uniform_low) - 53: 39(int) Load 41(sum) - 54: 39(int) IAdd 53 52 - Store 41(sum) 54 - Store 56(arg1) 57 - Store 58(arg2) 59 - 63: 6(float) Load 62(lowfin) - 65: 6(float) Load 64(mediumfin) - 66: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 63 65 - Store 60(d) 66 - 69: 21(fvec4) Load 23(highfin) - 70: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 69 - Store 68(global_highp) 70 - 73: 6(float) Load 68(global_highp) - 74: 21(fvec4) CompositeConstruct 73 73 73 73 - Store 72(local_highp) 74 - 77: 6(float) Load 60(d) - 78: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 77 - 79: 21(fvec4) CompositeConstruct 78 78 78 78 - 80: 6(float) Load 58(arg2) - 81: 21(fvec4) CompositeConstruct 80 80 80 80 - 82: 21(fvec4) FAdd 79 81 - 83: 21(fvec4) Load 72(local_highp) - 84: 21(fvec4) FAdd 82 83 - Store 76(mediumfout) 84 - 86: 39(int) Load 51(uniform_low) - 88: 87(ivec2) CompositeConstruct 86 86 - 89: 39(int) Load 45(uniform_high) - 90: 87(ivec2) CompositeConstruct 89 89 - 91: 87(ivec2) IMul 88 90 - 92: 39(int) Load 45(uniform_high) - 93: 87(ivec2) CompositeConstruct 92 92 - 94: 87(ivec2) IAdd 91 93 - 97: 39(int) CompositeExtract 94 0 - 98: 39(int) IAdd 85 97 - 99: 39(int) Load 41(sum) - 100: 39(int) IAdd 99 98 - Store 41(sum) 100 - 101: 39(int) Load 41(sum) - 102: 6(float) ConvertSToF 101 - 103: 21(fvec4) CompositeConstruct 102 102 102 102 - 104: 21(fvec4) Load 76(mediumfout) - 105: 21(fvec4) FAdd 104 103 - Store 76(mediumfout) 105 - 109: 15(bvec2) Load 107(ub2) - Store 108(param) 109 - 110: 14(bool) FunctionCall 19(boolfun(vb2;) 108(param) - SelectionMerge 112 None - BranchConditional 110 111 112 - 111: Label - 113: 21(fvec4) Load 76(mediumfout) - 115: 21(fvec4) CompositeConstruct 114 114 114 114 - 116: 21(fvec4) FAdd 113 115 - Store 76(mediumfout) 116 - Branch 112 - 112: Label - 121: 61(ptr) AccessChain 119(s) 120 - 122: 6(float) Load 121 - 123: 21(fvec4) Load 76(mediumfout) - 124: 21(fvec4) VectorTimesScalar 123 122 - Store 76(mediumfout) 124 - 126: 61(ptr) AccessChain 119(s) 125 - 127: 6(float) Load 126 - 128: 21(fvec4) Load 76(mediumfout) - 129: 21(fvec4) VectorTimesScalar 128 127 - Store 76(mediumfout) 129 - 130: 6(float) Load 64(mediumfin) - 131: 6(float) Load 64(mediumfin) - 132: 6(float) FMul 130 131 - 134: 14(bool) FOrdGreaterThan 132 133 - SelectionMerge 137 None - BranchConditional 134 136 141 - 136: Label - 139: 21(fvec4) Load 76(mediumfout) - 140: 21(fvec4) VectorTimesScalar 139 138 - Store 135 140 - Branch 137 - 141: Label - 143: 21(fvec4) Load 76(mediumfout) - 144: 21(fvec4) VectorTimesScalar 143 142 - Store 135 144 - Branch 137 - 137: Label - 145: 21(fvec4) Load 135 - Store 76(mediumfout) 145 - 151: 150(ptr) AccessChain 149(gl_SampleMaskIn) 120 - 152: 39(int) Load 151 - 153: 39(int) Load 43(uniform_medium) - 154: 39(int) ShiftRightArithmetic 152 153 - 155: 14(bool) SGreaterThan 154 120 - SelectionMerge 158 None - BranchConditional 155 157 161 - 157: Label - 159: 21(fvec4) Load 76(mediumfout) - 160: 21(fvec4) VectorTimesScalar 159 138 - Store 156 160 - Branch 158 - 161: Label - 162: 21(fvec4) Load 76(mediumfout) - 163: 21(fvec4) VectorTimesScalar 162 142 - Store 156 163 - Branch 158 - 158: Label - 164: 21(fvec4) Load 156 - Store 76(mediumfout) 164 - Return - FunctionEnd - 12(foo(vf3;): 9(fvec2) Function None 10 - 11(mv3): 8(ptr) FunctionParameter - 13: Label - 27: 26(ptr) Variable Function - 24: 21(fvec4) Load 23(highfin) - 25: 9(fvec2) VectorShuffle 24 24 0 1 - Store 27 25 - 28: 9(fvec2) Load 27 - ReturnValue 28 - FunctionEnd -19(boolfun(vb2;): 14(bool) Function None 17 - 18(bv2): 16(ptr) FunctionParameter - 20: Label - 31: 15(bvec2) Load 18(bv2) - 35: 15(bvec2) LogicalEqual 31 34 - 36: 14(bool) All 35 - ReturnValue 36 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.precisionArgs.frag.out b/deps/glslang/Test/baseResults/spv.precisionArgs.frag.out deleted file mode 100644 index ae54a58a..00000000 --- a/deps/glslang/Test/baseResults/spv.precisionArgs.frag.out +++ /dev/null @@ -1,165 +0,0 @@ -spv.precisionArgs.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 83 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source ESSL 310 - Name 4 "main" - Name 10 "fooConst(f1;f1;" - Name 8 "f" - Name 9 "g" - Name 16 "foo(f1;f1;" - Name 14 "f" - Name 15 "g" - Name 20 "retM(f1;" - Name 19 "x" - Name 23 "retH(f1;" - Name 22 "x" - Name 26 "retHM(f1;" - Name 25 "x" - Name 29 "retMH(f1;" - Name 28 "x" - Name 47 "aM" - Name 49 "bM" - Name 51 "arg" - Name 54 "aH" - Name 56 "bH" - Name 58 "arg" - Name 61 "param" - Name 63 "param" - Name 66 "param" - Name 68 "param" - Name 71 "param" - Name 74 "param" - Name 77 "param" - Name 80 "param" - Decorate 8(f) RelaxedPrecision - Decorate 14(f) RelaxedPrecision - Decorate 20(retM(f1;) RelaxedPrecision - Decorate 19(x) RelaxedPrecision - Decorate 26(retHM(f1;) RelaxedPrecision - Decorate 28(x) RelaxedPrecision - Decorate 31 RelaxedPrecision - Decorate 38 RelaxedPrecision - Decorate 39 RelaxedPrecision - Decorate 42 RelaxedPrecision - Decorate 47(aM) RelaxedPrecision - Decorate 48 RelaxedPrecision - Decorate 49(bM) RelaxedPrecision - Decorate 50 RelaxedPrecision - Decorate 58(arg) RelaxedPrecision - Decorate 59 RelaxedPrecision - Decorate 61(param) RelaxedPrecision - Decorate 62 RelaxedPrecision - Decorate 64 RelaxedPrecision - Decorate 66(param) RelaxedPrecision - Decorate 71(param) RelaxedPrecision - Decorate 72 RelaxedPrecision - Decorate 73 RelaxedPrecision - Decorate 79 RelaxedPrecision - Decorate 80(param) RelaxedPrecision - Decorate 81 RelaxedPrecision - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeFunction 2 6(float) 6(float) - 12: TypePointer Function 6(float) - 13: TypeFunction 2 12(ptr) 12(ptr) - 18: TypeFunction 6(float) 12(ptr) - 4(main): 2 Function None 3 - 5: Label - 47(aM): 12(ptr) Variable Function - 49(bM): 12(ptr) Variable Function - 51(arg): 12(ptr) Variable Function - 54(aH): 12(ptr) Variable Function - 56(bH): 12(ptr) Variable Function - 58(arg): 12(ptr) Variable Function - 61(param): 12(ptr) Variable Function - 63(param): 12(ptr) Variable Function - 66(param): 12(ptr) Variable Function - 68(param): 12(ptr) Variable Function - 71(param): 12(ptr) Variable Function - 74(param): 12(ptr) Variable Function - 77(param): 12(ptr) Variable Function - 80(param): 12(ptr) Variable Function - 48: 6(float) Load 47(aM) - 50: 6(float) Load 49(bM) - Store 51(arg) 50 - 52: 6(float) Load 51(arg) - 53: 2 FunctionCall 10(fooConst(f1;f1;) 48 52 - 55: 6(float) Load 54(aH) - 57: 6(float) Load 56(bH) - Store 58(arg) 55 - 59: 6(float) Load 58(arg) - 60: 2 FunctionCall 10(fooConst(f1;f1;) 59 57 - 62: 6(float) Load 47(aM) - Store 61(param) 62 - 64: 6(float) Load 49(bM) - Store 63(param) 64 - 65: 2 FunctionCall 16(foo(f1;f1;) 61(param) 63(param) - 67: 6(float) Load 54(aH) - Store 66(param) 67 - 69: 6(float) Load 56(bH) - Store 68(param) 69 - 70: 2 FunctionCall 16(foo(f1;f1;) 66(param) 68(param) - 72: 6(float) Load 47(aM) - Store 71(param) 72 - 73: 6(float) FunctionCall 20(retM(f1;) 71(param) - 75: 6(float) Load 54(aH) - Store 74(param) 75 - 76: 6(float) FunctionCall 23(retH(f1;) 74(param) - 78: 6(float) Load 54(aH) - Store 77(param) 78 - 79: 6(float) FunctionCall 26(retHM(f1;) 77(param) - 81: 6(float) Load 47(aM) - Store 80(param) 81 - 82: 6(float) FunctionCall 29(retMH(f1;) 80(param) - Return - FunctionEnd -10(fooConst(f1;f1;): 2 Function None 7 - 8(f): 6(float) FunctionParameter - 9(g): 6(float) FunctionParameter - 11: Label - Return - FunctionEnd - 16(foo(f1;f1;): 2 Function None 13 - 14(f): 12(ptr) FunctionParameter - 15(g): 12(ptr) FunctionParameter - 17: Label - Return - FunctionEnd - 20(retM(f1;): 6(float) Function None 18 - 19(x): 12(ptr) FunctionParameter - 21: Label - 31: 6(float) Load 19(x) - ReturnValue 31 - FunctionEnd - 23(retH(f1;): 6(float) Function None 18 - 22(x): 12(ptr) FunctionParameter - 24: Label - 34: 6(float) Load 22(x) - ReturnValue 34 - FunctionEnd - 26(retHM(f1;): 6(float) Function None 18 - 25(x): 12(ptr) FunctionParameter - 27: Label - 38: 12(ptr) Variable Function - 37: 6(float) Load 25(x) - Store 38 37 - 39: 6(float) Load 38 - ReturnValue 39 - FunctionEnd - 29(retMH(f1;): 6(float) Function None 18 - 28(x): 12(ptr) FunctionParameter - 30: Label - 43: 12(ptr) Variable Function - 42: 6(float) Load 28(x) - Store 43 42 - 44: 6(float) Load 43 - ReturnValue 44 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.precisionNonESSamp.frag.out b/deps/glslang/Test/baseResults/spv.precisionNonESSamp.frag.out deleted file mode 100644 index c4cd1eb7..00000000 --- a/deps/glslang/Test/baseResults/spv.precisionNonESSamp.frag.out +++ /dev/null @@ -1,102 +0,0 @@ -spv.precisionNonESSamp.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 47 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 9 17 27 39 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - Name 4 "main" - Name 9 "color" - Name 13 "s" - Name 17 "v2" - Name 23 "t" - Name 27 "v3" - Name 31 "vi1" - Name 34 "i1" - Name 39 "iv2" - Name 42 "vi2" - Name 43 "i2" - Decorate 9(color) RelaxedPrecision - Decorate 9(color) Location 0 - Decorate 13(s) RelaxedPrecision - Decorate 13(s) DescriptorSet 0 - Decorate 13(s) Binding 0 - Decorate 14 RelaxedPrecision - Decorate 17(v2) RelaxedPrecision - Decorate 17(v2) Location 0 - Decorate 18 RelaxedPrecision - Decorate 19 RelaxedPrecision - Decorate 23(t) DescriptorSet 0 - Decorate 23(t) Binding 1 - Decorate 27(v3) RelaxedPrecision - Decorate 27(v3) Location 1 - Decorate 28 RelaxedPrecision - Decorate 31(vi1) RelaxedPrecision - Decorate 34(i1) RelaxedPrecision - Decorate 34(i1) DescriptorSet 0 - Decorate 34(i1) Binding 2 - Decorate 35 RelaxedPrecision - Decorate 39(iv2) RelaxedPrecision - Decorate 39(iv2) Flat - Decorate 39(iv2) Location 3 - Decorate 40 RelaxedPrecision - Decorate 41 RelaxedPrecision - Decorate 42(vi2) RelaxedPrecision - Decorate 43(i2) DescriptorSet 0 - Decorate 43(i2) Binding 3 - Decorate 45 RelaxedPrecision - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) - 9(color): 8(ptr) Variable Output - 10: TypeImage 6(float) 2D sampled format:Unknown - 11: TypeSampledImage 10 - 12: TypePointer UniformConstant 11 - 13(s): 12(ptr) Variable UniformConstant - 15: TypeVector 6(float) 2 - 16: TypePointer Input 15(fvec2) - 17(v2): 16(ptr) Variable Input - 20: TypeImage 6(float) 3D sampled format:Unknown - 21: TypeSampledImage 20 - 22: TypePointer UniformConstant 21 - 23(t): 22(ptr) Variable UniformConstant - 25: TypeVector 6(float) 3 - 26: TypePointer Input 25(fvec3) - 27(v3): 26(ptr) Variable Input - 30: TypePointer Function 7(fvec4) - 32: TypeImage 6(float) 2D nonsampled format:Rgba32f - 33: TypePointer UniformConstant 32 - 34(i1): 33(ptr) Variable UniformConstant - 36: TypeInt 32 1 - 37: TypeVector 36(int) 2 - 38: TypePointer Input 37(ivec2) - 39(iv2): 38(ptr) Variable Input - 43(i2): 33(ptr) Variable UniformConstant - 4(main): 2 Function None 3 - 5: Label - 31(vi1): 30(ptr) Variable Function - 42(vi2): 30(ptr) Variable Function - 14: 11 Load 13(s) - 18: 15(fvec2) Load 17(v2) - 19: 7(fvec4) ImageSampleImplicitLod 14 18 - Store 9(color) 19 - 24: 21 Load 23(t) - 28: 25(fvec3) Load 27(v3) - 29: 7(fvec4) ImageSampleImplicitLod 24 28 - Store 9(color) 29 - 35: 32 Load 34(i1) - 40: 37(ivec2) Load 39(iv2) - 41: 7(fvec4) ImageRead 35 40 - Store 31(vi1) 41 - 44: 32 Load 43(i2) - 45: 37(ivec2) Load 39(iv2) - 46: 7(fvec4) ImageRead 44 45 - Store 42(vi2) 46 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.precisionTexture.frag.out b/deps/glslang/Test/baseResults/spv.precisionTexture.frag.out deleted file mode 100644 index d5e21b6c..00000000 --- a/deps/glslang/Test/baseResults/spv.precisionTexture.frag.out +++ /dev/null @@ -1,120 +0,0 @@ -spv.precisionTexture.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 66 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 16 57 65 - ExecutionMode 4 OriginUpperLeft - Source ESSL 310 - Name 4 "main" - Name 9 "v" - Name 13 "texM" - Name 16 "vertex" - Name 21 "texH" - Name 52 "imageM" - Name 57 "coord" - Name 60 "imageH" - Name 65 "fragColor" - Decorate 9(v) RelaxedPrecision - Decorate 13(texM) RelaxedPrecision - Decorate 13(texM) DescriptorSet 0 - Decorate 13(texM) Binding 0 - Decorate 14 RelaxedPrecision - Decorate 16(vertex) Location 0 - Decorate 20 RelaxedPrecision - Decorate 21(texH) DescriptorSet 0 - Decorate 21(texH) Binding 1 - Decorate 26 RelaxedPrecision - Decorate 34 RelaxedPrecision - Decorate 41 RelaxedPrecision - Decorate 45 RelaxedPrecision - Decorate 52(imageM) RelaxedPrecision - Decorate 52(imageM) DescriptorSet 0 - Decorate 52(imageM) Binding 0 - Decorate 52(imageM) NonWritable - Decorate 53 RelaxedPrecision - Decorate 57(coord) Flat - Decorate 57(coord) Location 1 - Decorate 59 RelaxedPrecision - Decorate 60(imageH) DescriptorSet 0 - Decorate 60(imageH) Binding 1 - Decorate 60(imageH) NonWritable - Decorate 65(fragColor) RelaxedPrecision - Decorate 65(fragColor) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: TypeImage 6(float) 2D sampled format:Unknown - 11: TypeSampledImage 10 - 12: TypePointer UniformConstant 11 - 13(texM): 12(ptr) Variable UniformConstant - 15: TypePointer Input 7(fvec4) - 16(vertex): 15(ptr) Variable Input - 17: TypeVector 6(float) 2 - 21(texH): 12(ptr) Variable UniformConstant - 29: TypeInt 32 0 - 30: 29(int) Constant 2 - 31: TypePointer Input 6(float) - 42: TypeVector 6(float) 3 - 50: TypeImage 6(float) 2D nonsampled format:Rgba32f - 51: TypePointer UniformConstant 50 - 52(imageM): 51(ptr) Variable UniformConstant - 54: TypeInt 32 1 - 55: TypeVector 54(int) 2 - 56: TypePointer Input 55(ivec2) - 57(coord): 56(ptr) Variable Input - 60(imageH): 51(ptr) Variable UniformConstant - 64: TypePointer Output 7(fvec4) - 65(fragColor): 64(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 9(v): 8(ptr) Variable Function - 14: 11 Load 13(texM) - 18: 7(fvec4) Load 16(vertex) - 19: 17(fvec2) VectorShuffle 18 18 0 1 - 20: 7(fvec4) ImageSampleImplicitLod 14 19 - Store 9(v) 20 - 22: 11 Load 21(texH) - 23: 7(fvec4) Load 16(vertex) - 24: 17(fvec2) VectorShuffle 23 23 0 1 - 25: 7(fvec4) ImageSampleImplicitLod 22 24 - Store 9(v) 25 - 26: 11 Load 13(texM) - 27: 7(fvec4) Load 16(vertex) - 28: 17(fvec2) VectorShuffle 27 27 0 1 - 32: 31(ptr) AccessChain 16(vertex) 30 - 33: 6(float) Load 32 - 34: 7(fvec4) ImageSampleExplicitLod 26 28 Lod 33 - Store 9(v) 34 - 35: 11 Load 21(texH) - 36: 7(fvec4) Load 16(vertex) - 37: 17(fvec2) VectorShuffle 36 36 0 1 - 38: 31(ptr) AccessChain 16(vertex) 30 - 39: 6(float) Load 38 - 40: 7(fvec4) ImageSampleExplicitLod 35 37 Lod 39 - Store 9(v) 40 - 41: 11 Load 13(texM) - 43: 7(fvec4) Load 16(vertex) - 44: 42(fvec3) VectorShuffle 43 43 0 1 2 - 45: 7(fvec4) ImageSampleProjImplicitLod 41 44 - Store 9(v) 45 - 46: 11 Load 21(texH) - 47: 7(fvec4) Load 16(vertex) - 48: 42(fvec3) VectorShuffle 47 47 0 1 2 - 49: 7(fvec4) ImageSampleProjImplicitLod 46 48 - Store 9(v) 49 - 53: 50 Load 52(imageM) - 58: 55(ivec2) Load 57(coord) - 59: 7(fvec4) ImageRead 53 58 - Store 9(v) 59 - 61: 50 Load 60(imageH) - 62: 55(ivec2) Load 57(coord) - 63: 7(fvec4) ImageRead 61 62 - Store 9(v) 63 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.prepost.frag.out b/deps/glslang/Test/baseResults/spv.prepost.frag.out deleted file mode 100644 index 5fd6b379..00000000 --- a/deps/glslang/Test/baseResults/spv.prepost.frag.out +++ /dev/null @@ -1,144 +0,0 @@ -spv.prepost.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 94 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 90 - ExecutionMode 4 OriginUpperLeft - Source GLSL 140 - Name 4 "main" - Name 8 "index" - Name 14 "s" - MemberName 14(s) 0 "y" - Name 16 "str" - Name 22 "t" - Name 50 "x" - Name 61 "y" - Name 66 "z" - Name 73 "v" - Name 90 "gl_FragColor" - Decorate 90(gl_FragColor) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Function 6(int) - 9: 6(int) Constant 5 - 10: TypeFloat 32 - 11: TypeInt 32 0 - 12: 11(int) Constant 5 - 13: TypeArray 10(float) 12 - 14(s): TypeStruct 13 - 15: TypePointer Function 14(s) - 17: 6(int) Constant 0 - 18: 6(int) Constant 4 - 19: 10(float) Constant 1073741824 - 20: TypePointer Function 10(float) - 24: 6(int) Constant 1 - 28: 10(float) Constant 1065353216 - 71: TypeVector 10(float) 4 - 72: TypePointer Function 71(fvec4) - 74: 10(float) Constant 1077936128 - 75: 10(float) Constant 1082130432 - 76: 71(fvec4) ConstantComposite 28 19 74 75 - 77: 11(int) Constant 2 - 81: 11(int) Constant 1 - 83: 11(int) Constant 3 - 87: 11(int) Constant 0 - 89: TypePointer Output 71(fvec4) -90(gl_FragColor): 89(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 8(index): 7(ptr) Variable Function - 16(str): 15(ptr) Variable Function - 22(t): 20(ptr) Variable Function - 50(x): 20(ptr) Variable Function - 61(y): 20(ptr) Variable Function - 66(z): 20(ptr) Variable Function - 73(v): 72(ptr) Variable Function - Store 8(index) 9 - 21: 20(ptr) AccessChain 16(str) 17 18 - Store 21 19 - 23: 6(int) Load 8(index) - 25: 6(int) ISub 23 24 - Store 8(index) 25 - 26: 20(ptr) AccessChain 16(str) 17 25 - 27: 10(float) Load 26 - 29: 10(float) FAdd 27 28 - Store 26 29 - Store 22(t) 29 - 30: 10(float) Load 22(t) - 31: 20(ptr) AccessChain 16(str) 17 18 - 32: 10(float) Load 31 - 33: 10(float) FAdd 32 30 - 34: 20(ptr) AccessChain 16(str) 17 18 - Store 34 33 - 35: 20(ptr) AccessChain 16(str) 17 18 - 36: 10(float) Load 35 - 37: 10(float) FSub 36 28 - Store 35 37 - Store 22(t) 36 - 38: 6(int) Load 8(index) - 39: 6(int) IAdd 38 24 - Store 8(index) 39 - 40: 10(float) Load 22(t) - 41: 20(ptr) AccessChain 16(str) 17 38 - 42: 10(float) Load 41 - 43: 10(float) FAdd 42 40 - 44: 20(ptr) AccessChain 16(str) 17 38 - Store 44 43 - 45: 6(int) Load 8(index) - 46: 6(int) ISub 45 24 - Store 8(index) 46 - 47: 20(ptr) AccessChain 16(str) 17 46 - 48: 10(float) Load 47 - 49: 10(float) FSub 48 28 - Store 47 49 - 51: 20(ptr) AccessChain 16(str) 17 18 - 52: 10(float) Load 51 - Store 50(x) 52 - 53: 10(float) Load 50(x) - 54: 10(float) FAdd 53 28 - Store 50(x) 54 - 55: 10(float) Load 50(x) - 56: 10(float) FSub 55 28 - Store 50(x) 56 - 57: 10(float) Load 50(x) - 58: 10(float) FAdd 57 28 - Store 50(x) 58 - 59: 10(float) Load 50(x) - 60: 10(float) FSub 59 28 - Store 50(x) 60 - 62: 10(float) Load 50(x) - 63: 10(float) Load 50(x) - 64: 10(float) FAdd 63 28 - Store 50(x) 64 - 65: 10(float) FMul 62 64 - Store 61(y) 65 - 67: 10(float) Load 61(y) - 68: 10(float) Load 50(x) - 69: 10(float) FSub 68 28 - Store 50(x) 69 - 70: 10(float) FMul 67 68 - Store 66(z) 70 - Store 73(v) 76 - 78: 20(ptr) AccessChain 73(v) 77 - 79: 10(float) Load 78 - 80: 10(float) FSub 79 28 - Store 78 80 - 82: 20(ptr) AccessChain 73(v) 81 - Store 82 79 - 84: 20(ptr) AccessChain 73(v) 83 - 85: 10(float) Load 84 - 86: 10(float) FSub 85 28 - Store 84 86 - 88: 20(ptr) AccessChain 73(v) 87 - Store 88 86 - 91: 10(float) Load 66(z) - 92: 71(fvec4) Load 73(v) - 93: 71(fvec4) VectorTimesScalar 92 91 - Store 90(gl_FragColor) 93 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.privateVariableTypes.frag.out b/deps/glslang/Test/baseResults/spv.privateVariableTypes.frag.out deleted file mode 100644 index d5ad68ab..00000000 --- a/deps/glslang/Test/baseResults/spv.privateVariableTypes.frag.out +++ /dev/null @@ -1,54 +0,0 @@ -spv.privateVariableTypes.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 27 - - Capability Shader - Capability Float16 - Capability Int64 - Capability Int16 - Capability Int8 - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source GLSL 460 - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int16" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int64" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int8" - Name 4 "main" - Name 8 "i8" - Name 11 "u8" - Name 14 "i16" - Name 17 "u16" - Name 20 "i64" - Name 23 "u64" - Name 26 "f16" - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 8 1 - 7: TypePointer Private 6(int8_t) - 8(i8): 7(ptr) Variable Private - 9: TypeInt 8 0 - 10: TypePointer Private 9(int8_t) - 11(u8): 10(ptr) Variable Private - 12: TypeInt 16 1 - 13: TypePointer Private 12(int16_t) - 14(i16): 13(ptr) Variable Private - 15: TypeInt 16 0 - 16: TypePointer Private 15(int16_t) - 17(u16): 16(ptr) Variable Private - 18: TypeInt 64 1 - 19: TypePointer Private 18(int64_t) - 20(i64): 19(ptr) Variable Private - 21: TypeInt 64 0 - 22: TypePointer Private 21(int64_t) - 23(u64): 22(ptr) Variable Private - 24: TypeFloat 16 - 25: TypePointer Private 24(float16_t) - 26(f16): 25(ptr) Variable Private - 4(main): 2 Function None 3 - 5: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.pushConstant.vert.out b/deps/glslang/Test/baseResults/spv.pushConstant.vert.out deleted file mode 100644 index 888d134b..00000000 --- a/deps/glslang/Test/baseResults/spv.pushConstant.vert.out +++ /dev/null @@ -1,62 +0,0 @@ -spv.pushConstant.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 35 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 24 - Source GLSL 400 - Name 4 "main" - Name 11 "Material" - MemberName 11(Material) 0 "kind" - MemberName 11(Material) 1 "fa" - Name 13 "matInst" - Name 24 "color" - Decorate 10 ArrayStride 4 - MemberDecorate 11(Material) 0 Offset 0 - MemberDecorate 11(Material) 1 Offset 4 - Decorate 11(Material) Block - Decorate 24(color) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypeFloat 32 - 8: TypeInt 32 0 - 9: 8(int) Constant 3 - 10: TypeArray 7(float) 9 - 11(Material): TypeStruct 6(int) 10 - 12: TypePointer PushConstant 11(Material) - 13(matInst): 12(ptr) Variable PushConstant - 14: 6(int) Constant 0 - 15: TypePointer PushConstant 6(int) - 22: TypeVector 7(float) 4 - 23: TypePointer Output 22(fvec4) - 24(color): 23(ptr) Variable Output - 25: 7(float) Constant 1045220557 - 26: 22(fvec4) ConstantComposite 25 25 25 25 - 28: 7(float) Constant 1056964608 - 29: 22(fvec4) ConstantComposite 28 28 28 28 - 31: 7(float) Constant 0 - 32: 22(fvec4) ConstantComposite 31 31 31 31 - 4(main): 2 Function None 3 - 5: Label - 16: 15(ptr) AccessChain 13(matInst) 14 - 17: 6(int) Load 16 - SelectionMerge 21 None - Switch 17 20 - case 1: 18 - case 2: 19 - 20: Label - Store 24(color) 32 - Branch 21 - 18: Label - Store 24(color) 26 - Branch 21 - 19: Label - Store 24(color) 29 - Branch 21 - 21: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.pushConstantAnon.vert.out b/deps/glslang/Test/baseResults/spv.pushConstantAnon.vert.out deleted file mode 100644 index 75efdbc1..00000000 --- a/deps/glslang/Test/baseResults/spv.pushConstantAnon.vert.out +++ /dev/null @@ -1,65 +0,0 @@ -spv.pushConstantAnon.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 38 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 24 - Source GLSL 400 - Name 4 "main" - Name 11 "Material" - MemberName 11(Material) 0 "kind" - MemberName 11(Material) 1 "fa" - Name 13 "" - Name 24 "color" - Decorate 10 ArrayStride 4 - MemberDecorate 11(Material) 0 Offset 0 - MemberDecorate 11(Material) 1 Offset 4 - Decorate 11(Material) Block - Decorate 24(color) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypeFloat 32 - 8: TypeInt 32 0 - 9: 8(int) Constant 3 - 10: TypeArray 7(float) 9 - 11(Material): TypeStruct 6(int) 10 - 12: TypePointer PushConstant 11(Material) - 13: 12(ptr) Variable PushConstant - 14: 6(int) Constant 0 - 15: TypePointer PushConstant 6(int) - 22: TypeVector 7(float) 4 - 23: TypePointer Output 22(fvec4) - 24(color): 23(ptr) Variable Output - 25: 7(float) Constant 1045220557 - 26: 22(fvec4) ConstantComposite 25 25 25 25 - 28: 7(float) Constant 1056964608 - 29: 22(fvec4) ConstantComposite 28 28 28 28 - 31: 6(int) Constant 1 - 32: TypePointer PushConstant 7(float) - 4(main): 2 Function None 3 - 5: Label - 16: 15(ptr) AccessChain 13 14 - 17: 6(int) Load 16 - SelectionMerge 21 None - Switch 17 20 - case 1: 18 - case 2: 19 - 20: Label - 33: 32(ptr) AccessChain 13 31 31 - 34: 7(float) Load 33 - 35: 22(fvec4) CompositeConstruct 34 34 34 34 - Store 24(color) 35 - Branch 21 - 18: Label - Store 24(color) 26 - Branch 21 - 19: Label - Store 24(color) 29 - Branch 21 - 21: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.qualifiers.vert.out b/deps/glslang/Test/baseResults/spv.qualifiers.vert.out deleted file mode 100644 index 4180e176..00000000 --- a/deps/glslang/Test/baseResults/spv.qualifiers.vert.out +++ /dev/null @@ -1,54 +0,0 @@ -spv.qualifiers.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 21 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 9 11 13 15 17 19 - Source GLSL 430 - Name 4 "main" - Name 9 "outVc" - Name 11 "inV" - Name 13 "outVs" - Name 15 "outVf" - Name 17 "outVn" - Name 19 "outVcn" - Decorate 9(outVc) Centroid - Decorate 9(outVc) Location 0 - Decorate 11(inV) Location 0 - Decorate 13(outVs) Location 1 - Decorate 15(outVf) Flat - Decorate 15(outVf) Location 2 - Decorate 17(outVn) NoPerspective - Decorate 17(outVn) Location 3 - Decorate 19(outVcn) NoPerspective - Decorate 19(outVcn) Centroid - Decorate 19(outVcn) Location 4 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) - 9(outVc): 8(ptr) Variable Output - 10: TypePointer Input 7(fvec4) - 11(inV): 10(ptr) Variable Input - 13(outVs): 8(ptr) Variable Output - 15(outVf): 8(ptr) Variable Output - 17(outVn): 8(ptr) Variable Output - 19(outVcn): 8(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 12: 7(fvec4) Load 11(inV) - Store 9(outVc) 12 - 14: 7(fvec4) Load 11(inV) - Store 13(outVs) 14 - 16: 7(fvec4) Load 11(inV) - Store 15(outVf) 16 - 18: 7(fvec4) Load 11(inV) - Store 17(outVn) 18 - 20: 7(fvec4) Load 11(inV) - Store 19(outVcn) 20 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.queryL.frag.out b/deps/glslang/Test/baseResults/spv.queryL.frag.out deleted file mode 100644 index 1e386616..00000000 --- a/deps/glslang/Test/baseResults/spv.queryL.frag.out +++ /dev/null @@ -1,333 +0,0 @@ -spv.queryL.frag -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 224 - - Capability Shader - Capability SampledRect - Capability Sampled1D - Capability SampledCubeArray - Capability SampledBuffer - Capability ImageQuery - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source GLSL 430 - Name 4 "main" - Name 9 "lod" - Name 13 "samp1D" - Name 16 "pf" - Name 23 "isamp2D" - Name 25 "pf2" - Name 34 "usamp3D" - Name 38 "pf3" - Name 46 "sampCube" - Name 55 "isamp1DA" - Name 64 "usamp2DA" - Name 73 "isampCubeA" - Name 82 "samp1Ds" - Name 91 "samp2Ds" - Name 100 "sampCubes" - Name 109 "samp1DAs" - Name 118 "samp2DAs" - Name 127 "sampCubeAs" - Name 134 "levels" - Name 141 "usamp2D" - Name 150 "isamp3D" - Name 159 "isampCube" - Name 173 "samp2DA" - Name 182 "usampCubeA" - Name 219 "sampBuf" - Name 223 "sampRect" - Decorate 13(samp1D) DescriptorSet 0 - Decorate 13(samp1D) Binding 0 - Decorate 23(isamp2D) DescriptorSet 0 - Decorate 23(isamp2D) Binding 1 - Decorate 34(usamp3D) DescriptorSet 0 - Decorate 34(usamp3D) Binding 4 - Decorate 46(sampCube) DescriptorSet 0 - Decorate 46(sampCube) Binding 5 - Decorate 55(isamp1DA) DescriptorSet 0 - Decorate 55(isamp1DA) Binding 7 - Decorate 64(usamp2DA) DescriptorSet 0 - Decorate 64(usamp2DA) Binding 9 - Decorate 73(isampCubeA) DescriptorSet 0 - Decorate 73(isampCubeA) Binding 10 - Decorate 82(samp1Ds) DescriptorSet 0 - Decorate 82(samp1Ds) Binding 12 - Decorate 91(samp2Ds) DescriptorSet 0 - Decorate 91(samp2Ds) Binding 13 - Decorate 100(sampCubes) DescriptorSet 0 - Decorate 100(sampCubes) Binding 14 - Decorate 109(samp1DAs) DescriptorSet 0 - Decorate 109(samp1DAs) Binding 15 - Decorate 118(samp2DAs) DescriptorSet 0 - Decorate 118(samp2DAs) Binding 16 - Decorate 127(sampCubeAs) DescriptorSet 0 - Decorate 127(sampCubeAs) Binding 17 - Decorate 141(usamp2D) DescriptorSet 0 - Decorate 141(usamp2D) Binding 2 - Decorate 150(isamp3D) DescriptorSet 0 - Decorate 150(isamp3D) Binding 3 - Decorate 159(isampCube) DescriptorSet 0 - Decorate 159(isampCube) Binding 6 - Decorate 173(samp2DA) DescriptorSet 0 - Decorate 173(samp2DA) Binding 8 - Decorate 182(usampCubeA) DescriptorSet 0 - Decorate 182(usampCubeA) Binding 11 - Decorate 219(sampBuf) DescriptorSet 0 - Decorate 219(sampBuf) Binding 0 - Decorate 223(sampRect) DescriptorSet 0 - Decorate 223(sampRect) Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 2 - 8: TypePointer Function 7(fvec2) - 10: TypeImage 6(float) 1D sampled format:Unknown - 11: TypeSampledImage 10 - 12: TypePointer UniformConstant 11 - 13(samp1D): 12(ptr) Variable UniformConstant - 15: TypePointer Function 6(float) - 19: TypeInt 32 1 - 20: TypeImage 19(int) 2D sampled format:Unknown - 21: TypeSampledImage 20 - 22: TypePointer UniformConstant 21 - 23(isamp2D): 22(ptr) Variable UniformConstant - 30: TypeInt 32 0 - 31: TypeImage 30(int) 3D sampled format:Unknown - 32: TypeSampledImage 31 - 33: TypePointer UniformConstant 32 - 34(usamp3D): 33(ptr) Variable UniformConstant - 36: TypeVector 6(float) 3 - 37: TypePointer Function 36(fvec3) - 43: TypeImage 6(float) Cube sampled format:Unknown - 44: TypeSampledImage 43 - 45: TypePointer UniformConstant 44 - 46(sampCube): 45(ptr) Variable UniformConstant - 52: TypeImage 19(int) 1D array sampled format:Unknown - 53: TypeSampledImage 52 - 54: TypePointer UniformConstant 53 - 55(isamp1DA): 54(ptr) Variable UniformConstant - 61: TypeImage 30(int) 2D array sampled format:Unknown - 62: TypeSampledImage 61 - 63: TypePointer UniformConstant 62 - 64(usamp2DA): 63(ptr) Variable UniformConstant - 70: TypeImage 19(int) Cube array sampled format:Unknown - 71: TypeSampledImage 70 - 72: TypePointer UniformConstant 71 - 73(isampCubeA): 72(ptr) Variable UniformConstant - 79: TypeImage 6(float) 1D depth sampled format:Unknown - 80: TypeSampledImage 79 - 81: TypePointer UniformConstant 80 - 82(samp1Ds): 81(ptr) Variable UniformConstant - 88: TypeImage 6(float) 2D depth sampled format:Unknown - 89: TypeSampledImage 88 - 90: TypePointer UniformConstant 89 - 91(samp2Ds): 90(ptr) Variable UniformConstant - 97: TypeImage 6(float) Cube depth sampled format:Unknown - 98: TypeSampledImage 97 - 99: TypePointer UniformConstant 98 - 100(sampCubes): 99(ptr) Variable UniformConstant - 106: TypeImage 6(float) 1D depth array sampled format:Unknown - 107: TypeSampledImage 106 - 108: TypePointer UniformConstant 107 - 109(samp1DAs): 108(ptr) Variable UniformConstant - 115: TypeImage 6(float) 2D depth array sampled format:Unknown - 116: TypeSampledImage 115 - 117: TypePointer UniformConstant 116 - 118(samp2DAs): 117(ptr) Variable UniformConstant - 124: TypeImage 6(float) Cube depth array sampled format:Unknown - 125: TypeSampledImage 124 - 126: TypePointer UniformConstant 125 - 127(sampCubeAs): 126(ptr) Variable UniformConstant - 133: TypePointer Function 19(int) - 138: TypeImage 30(int) 2D sampled format:Unknown - 139: TypeSampledImage 138 - 140: TypePointer UniformConstant 139 - 141(usamp2D): 140(ptr) Variable UniformConstant - 147: TypeImage 19(int) 3D sampled format:Unknown - 148: TypeSampledImage 147 - 149: TypePointer UniformConstant 148 - 150(isamp3D): 149(ptr) Variable UniformConstant - 156: TypeImage 19(int) Cube sampled format:Unknown - 157: TypeSampledImage 156 - 158: TypePointer UniformConstant 157 - 159(isampCube): 158(ptr) Variable UniformConstant - 170: TypeImage 6(float) 2D array sampled format:Unknown - 171: TypeSampledImage 170 - 172: TypePointer UniformConstant 171 - 173(samp2DA): 172(ptr) Variable UniformConstant - 179: TypeImage 30(int) Cube array sampled format:Unknown - 180: TypeSampledImage 179 - 181: TypePointer UniformConstant 180 - 182(usampCubeA): 181(ptr) Variable UniformConstant - 216: TypeImage 6(float) Buffer sampled format:Unknown - 217: TypeSampledImage 216 - 218: TypePointer UniformConstant 217 - 219(sampBuf): 218(ptr) Variable UniformConstant - 220: TypeImage 6(float) Rect sampled format:Unknown - 221: TypeSampledImage 220 - 222: TypePointer UniformConstant 221 - 223(sampRect): 222(ptr) Variable UniformConstant - 4(main): 2 Function None 3 - 5: Label - 9(lod): 8(ptr) Variable Function - 16(pf): 15(ptr) Variable Function - 25(pf2): 8(ptr) Variable Function - 38(pf3): 37(ptr) Variable Function - 134(levels): 133(ptr) Variable Function - 14: 11 Load 13(samp1D) - 17: 6(float) Load 16(pf) - 18: 7(fvec2) ImageQueryLod 14 17 - Store 9(lod) 18 - 24: 21 Load 23(isamp2D) - 26: 7(fvec2) Load 25(pf2) - 27: 7(fvec2) ImageQueryLod 24 26 - 28: 7(fvec2) Load 9(lod) - 29: 7(fvec2) FAdd 28 27 - Store 9(lod) 29 - 35: 32 Load 34(usamp3D) - 39: 36(fvec3) Load 38(pf3) - 40: 7(fvec2) ImageQueryLod 35 39 - 41: 7(fvec2) Load 9(lod) - 42: 7(fvec2) FAdd 41 40 - Store 9(lod) 42 - 47: 44 Load 46(sampCube) - 48: 36(fvec3) Load 38(pf3) - 49: 7(fvec2) ImageQueryLod 47 48 - 50: 7(fvec2) Load 9(lod) - 51: 7(fvec2) FAdd 50 49 - Store 9(lod) 51 - 56: 53 Load 55(isamp1DA) - 57: 6(float) Load 16(pf) - 58: 7(fvec2) ImageQueryLod 56 57 - 59: 7(fvec2) Load 9(lod) - 60: 7(fvec2) FAdd 59 58 - Store 9(lod) 60 - 65: 62 Load 64(usamp2DA) - 66: 7(fvec2) Load 25(pf2) - 67: 7(fvec2) ImageQueryLod 65 66 - 68: 7(fvec2) Load 9(lod) - 69: 7(fvec2) FAdd 68 67 - Store 9(lod) 69 - 74: 71 Load 73(isampCubeA) - 75: 36(fvec3) Load 38(pf3) - 76: 7(fvec2) ImageQueryLod 74 75 - 77: 7(fvec2) Load 9(lod) - 78: 7(fvec2) FAdd 77 76 - Store 9(lod) 78 - 83: 80 Load 82(samp1Ds) - 84: 6(float) Load 16(pf) - 85: 7(fvec2) ImageQueryLod 83 84 - 86: 7(fvec2) Load 9(lod) - 87: 7(fvec2) FAdd 86 85 - Store 9(lod) 87 - 92: 89 Load 91(samp2Ds) - 93: 7(fvec2) Load 25(pf2) - 94: 7(fvec2) ImageQueryLod 92 93 - 95: 7(fvec2) Load 9(lod) - 96: 7(fvec2) FAdd 95 94 - Store 9(lod) 96 - 101: 98 Load 100(sampCubes) - 102: 36(fvec3) Load 38(pf3) - 103: 7(fvec2) ImageQueryLod 101 102 - 104: 7(fvec2) Load 9(lod) - 105: 7(fvec2) FAdd 104 103 - Store 9(lod) 105 - 110: 107 Load 109(samp1DAs) - 111: 6(float) Load 16(pf) - 112: 7(fvec2) ImageQueryLod 110 111 - 113: 7(fvec2) Load 9(lod) - 114: 7(fvec2) FAdd 113 112 - Store 9(lod) 114 - 119: 116 Load 118(samp2DAs) - 120: 7(fvec2) Load 25(pf2) - 121: 7(fvec2) ImageQueryLod 119 120 - 122: 7(fvec2) Load 9(lod) - 123: 7(fvec2) FAdd 122 121 - Store 9(lod) 123 - 128: 125 Load 127(sampCubeAs) - 129: 36(fvec3) Load 38(pf3) - 130: 7(fvec2) ImageQueryLod 128 129 - 131: 7(fvec2) Load 9(lod) - 132: 7(fvec2) FAdd 131 130 - Store 9(lod) 132 - 135: 11 Load 13(samp1D) - 136: 10 Image 135 - 137: 19(int) ImageQueryLevels 136 - Store 134(levels) 137 - 142: 139 Load 141(usamp2D) - 143: 138 Image 142 - 144: 19(int) ImageQueryLevels 143 - 145: 19(int) Load 134(levels) - 146: 19(int) IAdd 145 144 - Store 134(levels) 146 - 151: 148 Load 150(isamp3D) - 152: 147 Image 151 - 153: 19(int) ImageQueryLevels 152 - 154: 19(int) Load 134(levels) - 155: 19(int) IAdd 154 153 - Store 134(levels) 155 - 160: 157 Load 159(isampCube) - 161: 156 Image 160 - 162: 19(int) ImageQueryLevels 161 - 163: 19(int) Load 134(levels) - 164: 19(int) IAdd 163 162 - Store 134(levels) 164 - 165: 53 Load 55(isamp1DA) - 166: 52 Image 165 - 167: 19(int) ImageQueryLevels 166 - 168: 19(int) Load 134(levels) - 169: 19(int) IAdd 168 167 - Store 134(levels) 169 - 174: 171 Load 173(samp2DA) - 175: 170 Image 174 - 176: 19(int) ImageQueryLevels 175 - 177: 19(int) Load 134(levels) - 178: 19(int) IAdd 177 176 - Store 134(levels) 178 - 183: 180 Load 182(usampCubeA) - 184: 179 Image 183 - 185: 19(int) ImageQueryLevels 184 - 186: 19(int) Load 134(levels) - 187: 19(int) IAdd 186 185 - Store 134(levels) 187 - 188: 80 Load 82(samp1Ds) - 189: 79 Image 188 - 190: 19(int) ImageQueryLevels 189 - Store 134(levels) 190 - 191: 89 Load 91(samp2Ds) - 192: 88 Image 191 - 193: 19(int) ImageQueryLevels 192 - 194: 19(int) Load 134(levels) - 195: 19(int) IAdd 194 193 - Store 134(levels) 195 - 196: 98 Load 100(sampCubes) - 197: 97 Image 196 - 198: 19(int) ImageQueryLevels 197 - 199: 19(int) Load 134(levels) - 200: 19(int) IAdd 199 198 - Store 134(levels) 200 - 201: 107 Load 109(samp1DAs) - 202: 106 Image 201 - 203: 19(int) ImageQueryLevels 202 - 204: 19(int) Load 134(levels) - 205: 19(int) IAdd 204 203 - Store 134(levels) 205 - 206: 116 Load 118(samp2DAs) - 207: 115 Image 206 - 208: 19(int) ImageQueryLevels 207 - 209: 19(int) Load 134(levels) - 210: 19(int) IAdd 209 208 - Store 134(levels) 210 - 211: 125 Load 127(sampCubeAs) - 212: 124 Image 211 - 213: 19(int) ImageQueryLevels 212 - 214: 19(int) Load 134(levels) - 215: 19(int) IAdd 214 213 - Store 134(levels) 215 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.queueFamilyScope.comp.out b/deps/glslang/Test/baseResults/spv.queueFamilyScope.comp.out deleted file mode 100644 index 9c239df2..00000000 --- a/deps/glslang/Test/baseResults/spv.queueFamilyScope.comp.out +++ /dev/null @@ -1,43 +0,0 @@ -spv.queueFamilyScope.comp -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 21 - - Capability Shader - Capability VulkanMemoryModelKHR - Extension "SPV_KHR_vulkan_memory_model" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical VulkanKHR - EntryPoint GLCompute 4 "main" - ExecutionMode 4 LocalSize 1 1 1 - Source GLSL 450 - SourceExtension "GL_KHR_memory_scope_semantics" - Name 4 "main" - Name 7 "Buffer" - MemberName 7(Buffer) 0 "a" - Name 9 "A" - MemberDecorate 7(Buffer) 0 Offset 0 - Decorate 7(Buffer) Block - Decorate 9(A) DescriptorSet 0 - Decorate 9(A) Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7(Buffer): TypeStruct 6(int) - 8: TypePointer StorageBuffer 7(Buffer) - 9(A): 8(ptr) Variable StorageBuffer - 10: TypeInt 32 1 - 11: 10(int) Constant 0 - 12: TypePointer StorageBuffer 6(int) - 14: 10(int) Constant 5 - 15: 10(int) Constant 64 - 16: 10(int) Constant 2 - 17: 6(int) Constant 1 - 18: 6(int) Constant 0 - 19: 6(int) Constant 66 - 4(main): 2 Function None 3 - 5: Label - 13: 12(ptr) AccessChain 9(A) 11 - 20: 6(int) AtomicLoad 13 14 19 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.rankShift.comp.out b/deps/glslang/Test/baseResults/spv.rankShift.comp.out deleted file mode 100644 index 1a725c13..00000000 --- a/deps/glslang/Test/baseResults/spv.rankShift.comp.out +++ /dev/null @@ -1,61 +0,0 @@ -spv.rankShift.comp -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 33 - - Capability Shader - Capability Int64 - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" - ExecutionMode 4 LocalSize 54 1 1 - Source GLSL 450 - SourceExtension "GL_ARB_gpu_shader_int64" - Name 4 "main" - Name 8 "result" - Name 11 "arg0" - Name 15 "arg1" - Decorate 11(arg0) Location 4 - Decorate 11(arg0) DescriptorSet 0 - Decorate 11(arg0) Binding 0 - Decorate 15(arg1) Location 5 - Decorate 15(arg1) DescriptorSet 0 - Decorate 15(arg1) Binding 1 - Decorate 32 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 64 0 - 7: TypePointer Function 6(int64_t) - 9: TypeInt 64 1 - 10: TypePointer UniformConstant 9(int64_t) - 11(arg0): 10(ptr) Variable UniformConstant - 13: TypeInt 32 0 - 14: TypePointer UniformConstant 13(int) - 15(arg1): 14(ptr) Variable UniformConstant - 29: TypeVector 13(int) 3 - 30: 13(int) Constant 54 - 31: 13(int) Constant 1 - 32: 29(ivec3) ConstantComposite 30 31 31 - 4(main): 2 Function None 3 - 5: Label - 8(result): 7(ptr) Variable Function - 12: 9(int64_t) Load 11(arg0) - 16: 13(int) Load 15(arg1) - 17: 9(int64_t) ShiftLeftLogical 12 16 - 18: 6(int64_t) Bitcast 17 - Store 8(result) 18 - 19: 9(int64_t) Load 11(arg0) - 20: 13(int) Load 15(arg1) - 21: 9(int64_t) ShiftRightArithmetic 19 20 - 22: 6(int64_t) Bitcast 21 - Store 8(result) 22 - 23: 13(int) Load 15(arg1) - 24: 6(int64_t) Load 8(result) - 25: 6(int64_t) ShiftLeftLogical 24 23 - Store 8(result) 25 - 26: 13(int) Load 15(arg1) - 27: 6(int64_t) Load 8(result) - 28: 6(int64_t) ShiftRightLogical 27 26 - Store 8(result) 28 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.register.autoassign-2.frag.out b/deps/glslang/Test/baseResults/spv.register.autoassign-2.frag.out deleted file mode 100644 index 26b149b8..00000000 --- a/deps/glslang/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): 8000a -// 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/Test/baseResults/spv.register.autoassign.frag.out b/deps/glslang/Test/baseResults/spv.register.autoassign.frag.out deleted file mode 100644 index e347ce21..00000000 --- a/deps/glslang/Test/baseResults/spv.register.autoassign.frag.out +++ /dev/null @@ -1,244 +0,0 @@ -spv.register.autoassign.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// 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 125(g_sSamp_unused1) Binding 0 - Decorate 130(g_tTex_unused2) DescriptorSet 0 - Decorate 130(g_tTex_unused2) Binding 12 - Decorate 132(g_sSamp_unused2) DescriptorSet 0 - Decorate 132(g_sSamp_unused2) Binding 0 - Decorate 151(@entryPointOutput.Color) Location 0 - Decorate 154(g_tTex_unused3) DescriptorSet 0 - Decorate 154(g_tTex_unused3) Binding 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/Test/baseResults/spv.register.autoassign.rangetest.frag.out b/deps/glslang/Test/baseResults/spv.register.autoassign.rangetest.frag.out deleted file mode 100644 index 4381daba..00000000 --- a/deps/glslang/Test/baseResults/spv.register.autoassign.rangetest.frag.out +++ /dev/null @@ -1,86 +0,0 @@ -spv.register.autoassign.rangetest.frag -INTERNAL ERROR: mapped binding out of range: g_tSamp -INTERNAL ERROR: mapped binding out of range: g_tScene - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 52 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 49 - 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 21 "g_tScene" - Name 27 "g_tSamp" - Name 44 "psout" - Name 45 "param" - Name 49 "psout.Color" - Decorate 21(g_tScene) DescriptorSet 0 - Decorate 21(g_tScene) Binding 5 - Decorate 27(g_tSamp) DescriptorSet 0 - Decorate 27(g_tSamp) Binding 5 - Decorate 49(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: TypeInt 32 0 - 18: 17(int) Constant 2 - 19: TypeArray 16 18 - 20: TypePointer UniformConstant 19 - 21(g_tScene): 20(ptr) Variable UniformConstant - 22: TypePointer UniformConstant 16 - 25: TypeSampler - 26: TypePointer UniformConstant 25 - 27(g_tSamp): 26(ptr) Variable UniformConstant - 29: TypeSampledImage 16 - 31: TypeVector 6(float) 2 - 32: 6(float) Constant 1050253722 - 33: 31(fvec2) ConstantComposite 32 32 - 35: 14(int) Constant 1 - 42: TypePointer Function 7(fvec4) - 48: TypePointer Output 7(fvec4) - 49(psout.Color): 48(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 44(psout): 9(ptr) Variable Function - 45(param): 9(ptr) Variable Function - 46: 2 FunctionCall 12(@main(struct-PS_OUTPUT-vf41;) 45(param) - 47:8(PS_OUTPUT) Load 45(param) - Store 44(psout) 47 - 50: 42(ptr) AccessChain 44(psout) 15 - 51: 7(fvec4) Load 50 - Store 49(psout.Color) 51 - Return - FunctionEnd -12(@main(struct-PS_OUTPUT-vf41;): 2 Function None 10 - 11(psout): 9(ptr) FunctionParameter - 13: Label - 23: 22(ptr) AccessChain 21(g_tScene) 15 - 24: 16 Load 23 - 28: 25 Load 27(g_tSamp) - 30: 29 SampledImage 24 28 - 34: 7(fvec4) ImageSampleImplicitLod 30 33 - 36: 22(ptr) AccessChain 21(g_tScene) 35 - 37: 16 Load 36 - 38: 25 Load 27(g_tSamp) - 39: 29 SampledImage 37 38 - 40: 7(fvec4) ImageSampleImplicitLod 39 33 - 41: 7(fvec4) FAdd 34 40 - 43: 42(ptr) AccessChain 11(psout) 15 - Store 43 41 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.register.noautoassign.frag.out b/deps/glslang/Test/baseResults/spv.register.noautoassign.frag.out deleted file mode 100644 index ed8d5075..00000000 --- a/deps/glslang/Test/baseResults/spv.register.noautoassign.frag.out +++ /dev/null @@ -1,244 +0,0 @@ -spv.register.noautoassign.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// 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 0 - Decorate 33(g_sSamp2) DescriptorSet 0 - Decorate 33(g_sSamp2) Binding 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 68(g_tTex4) Binding 0 - Decorate 73(g_sSamp4) DescriptorSet 0 - Decorate 73(g_sSamp4) Binding 0 - Decorate 88(g_tTex5) DescriptorSet 0 - Decorate 88(g_tTex5) Binding 0 - Decorate 90(g_sSamp5) DescriptorSet 0 - Decorate 90(g_sSamp5) Binding 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 101 Binding 0 - Decorate 123(g_tTex_unused1) DescriptorSet 0 - Decorate 123(g_tTex_unused1) Binding 10 - Decorate 125(g_sSamp_unused1) DescriptorSet 0 - Decorate 125(g_sSamp_unused1) Binding 0 - Decorate 130(g_tTex_unused2) DescriptorSet 0 - Decorate 130(g_tTex_unused2) Binding 12 - Decorate 132(g_sSamp_unused2) DescriptorSet 0 - Decorate 132(g_sSamp_unused2) Binding 0 - Decorate 151(@entryPointOutput.Color) Location 0 - Decorate 154(g_tTex_unused3) DescriptorSet 0 - Decorate 154(g_tTex_unused3) Binding 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/Test/baseResults/spv.register.subpass.frag.out b/deps/glslang/Test/baseResults/spv.register.subpass.frag.out deleted file mode 100644 index acd447d6..00000000 --- a/deps/glslang/Test/baseResults/spv.register.subpass.frag.out +++ /dev/null @@ -1,75 +0,0 @@ -spv.register.subpass.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 40 - - Capability Shader - Capability InputAttachment - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 38 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 9 "@main(" - Name 12 "result00" - Name 15 "subpass_f4" - Name 22 "result10" - Name 25 "subpass_ms_f4" - Name 29 "result73" - Name 30 "subpass_2" - Name 38 "@entryPointOutput" - Decorate 15(subpass_f4) DescriptorSet 0 - Decorate 15(subpass_f4) Binding 21 - Decorate 15(subpass_f4) InputAttachmentIndex 1 - Decorate 25(subpass_ms_f4) DescriptorSet 0 - Decorate 25(subpass_ms_f4) Binding 20 - Decorate 25(subpass_ms_f4) InputAttachmentIndex 4 - Decorate 30(subpass_2) DescriptorSet 0 - Decorate 30(subpass_2) Binding 22 - Decorate 30(subpass_2) InputAttachmentIndex 7 - Decorate 38(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 11: TypePointer Function 7(fvec4) - 13: TypeImage 6(float) SubpassData nonsampled format:Unknown - 14: TypePointer UniformConstant 13 - 15(subpass_f4): 14(ptr) Variable UniformConstant - 17: TypeInt 32 1 - 18: 17(int) Constant 0 - 19: TypeVector 17(int) 2 - 20: 19(ivec2) ConstantComposite 18 18 - 23: TypeImage 6(float) SubpassData multi-sampled nonsampled format:Unknown - 24: TypePointer UniformConstant 23 -25(subpass_ms_f4): 24(ptr) Variable UniformConstant - 27: 17(int) Constant 3 - 30(subpass_2): 14(ptr) Variable UniformConstant - 33: 6(float) Constant 0 - 34: 7(fvec4) ConstantComposite 33 33 33 33 - 37: TypePointer Output 7(fvec4) -38(@entryPointOutput): 37(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 39: 7(fvec4) FunctionCall 9(@main() - Store 38(@entryPointOutput) 39 - Return - FunctionEnd - 9(@main(): 7(fvec4) Function None 8 - 10: Label - 12(result00): 11(ptr) Variable Function - 22(result10): 11(ptr) Variable Function - 29(result73): 11(ptr) Variable Function - 16: 13 Load 15(subpass_f4) - 21: 7(fvec4) ImageRead 16 20 - Store 12(result00) 21 - 26: 23 Load 25(subpass_ms_f4) - 28: 7(fvec4) ImageRead 26 20 Sample 27 - Store 22(result10) 28 - 31: 13 Load 30(subpass_2) - 32: 7(fvec4) ImageRead 31 20 - Store 29(result73) 32 - ReturnValue 34 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.rw.autoassign.frag.out b/deps/glslang/Test/baseResults/spv.rw.autoassign.frag.out deleted file mode 100644 index 27db3368..00000000 --- a/deps/glslang/Test/baseResults/spv.rw.autoassign.frag.out +++ /dev/null @@ -1,77 +0,0 @@ -spv.rw.autoassign.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 45 - - Capability Shader - Capability Image1D - Capability ImageBuffer - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 42 - 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 24 "r01" - Name 27 "g_tBuf1du1" - Name 33 "psout" - Name 42 "@entryPointOutput.Color" - Decorate 16(g_tTex1df1) DescriptorSet 0 - Decorate 16(g_tTex1df1) Binding 20 - Decorate 27(g_tBuf1du1) DescriptorSet 0 - Decorate 27(g_tBuf1du1) Binding 21 - Decorate 42(@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 - 22: TypeInt 32 0 - 23: TypePointer Function 22(int) - 25: TypeImage 22(int) Buffer nonsampled format:R32ui - 26: TypePointer UniformConstant 25 - 27(g_tBuf1du1): 26(ptr) Variable UniformConstant - 29: TypeVector 22(int) 4 - 32: TypePointer Function 8(PS_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.Color): 41(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 43:8(PS_OUTPUT) FunctionCall 10(@main() - 44: 7(fvec4) CompositeExtract 43 0 - Store 42(@entryPointOutput.Color) 44 - Return - FunctionEnd - 10(@main():8(PS_OUTPUT) Function None 9 - 11: Label - 13(r00): 12(ptr) Variable Function - 24(r01): 23(ptr) Variable Function - 33(psout): 32(ptr) Variable Function - 17: 14 Load 16(g_tTex1df1) - 20: 7(fvec4) ImageRead 17 19 - 21: 6(float) CompositeExtract 20 0 - Store 13(r00) 21 - 28: 25 Load 27(g_tBuf1du1) - 30: 29(ivec4) ImageRead 28 19 - 31: 22(int) CompositeExtract 30 0 - Store 24(r01) 31 - 37: 36(ptr) AccessChain 33(psout) 19 - Store 37 35 - 38:8(PS_OUTPUT) Load 33(psout) - ReturnValue 38 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.sample.frag.out b/deps/glslang/Test/baseResults/spv.sample.frag.out deleted file mode 100644 index f43fc98c..00000000 --- a/deps/glslang/Test/baseResults/spv.sample.frag.out +++ /dev/null @@ -1,32 +0,0 @@ -spv.sample.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 13 - - Capability Shader - Capability SampleRateShading - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 9 11 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - Name 4 "main" - Name 9 "color" - Name 11 "samp" - Decorate 9(color) Location 0 - Decorate 11(samp) Sample - Decorate 11(samp) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) - 9(color): 8(ptr) Variable Output - 10: TypePointer Input 7(fvec4) - 11(samp): 10(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 12: 7(fvec4) Load 11(samp) - Store 9(color) 12 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.sampleId.frag.out b/deps/glslang/Test/baseResults/spv.sampleId.frag.out deleted file mode 100644 index 8f9bc387..00000000 --- a/deps/glslang/Test/baseResults/spv.sampleId.frag.out +++ /dev/null @@ -1,52 +0,0 @@ -spv.sampleId.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 26 - - Capability Shader - Capability SampleRateShading - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 8 18 20 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - Name 4 "main" - Name 8 "gl_SampleID" - Name 18 "color" - Name 20 "samp" - Decorate 8(gl_SampleID) Flat - Decorate 8(gl_SampleID) BuiltIn SampleId - Decorate 18(color) Location 0 - Decorate 20(samp) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Input 6(int) - 8(gl_SampleID): 7(ptr) Variable Input - 10: 6(int) Constant 3 - 11: TypeBool - 15: TypeFloat 32 - 16: TypeVector 15(float) 4 - 17: TypePointer Output 16(fvec4) - 18(color): 17(ptr) Variable Output - 19: TypePointer Input 16(fvec4) - 20(samp): 19(ptr) Variable Input - 23: 15(float) Constant 1073741824 - 4(main): 2 Function None 3 - 5: Label - 9: 6(int) Load 8(gl_SampleID) - 12: 11(bool) SLessThan 9 10 - SelectionMerge 14 None - BranchConditional 12 13 22 - 13: Label - 21: 16(fvec4) Load 20(samp) - Store 18(color) 21 - Branch 14 - 22: Label - 24: 16(fvec4) Load 20(samp) - 25: 16(fvec4) VectorTimesScalar 24 23 - Store 18(color) 25 - Branch 14 - 14: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.sampleMaskOverrideCoverage.frag.out b/deps/glslang/Test/baseResults/spv.sampleMaskOverrideCoverage.frag.out deleted file mode 100644 index 9b401d88..00000000 --- a/deps/glslang/Test/baseResults/spv.sampleMaskOverrideCoverage.frag.out +++ /dev/null @@ -1,41 +0,0 @@ -spv.sampleMaskOverrideCoverage.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 20 - - Capability Shader - Capability SampleMaskOverrideCoverageNV - Extension "SPV_NV_sample_mask_override_coverage" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 11 19 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_NV_sample_mask_override_coverage" - Name 4 "main" - Name 11 "gl_SampleMask" - Name 19 "color" - Decorate 11(gl_SampleMask) BuiltIn SampleMask - Decorate 11(gl_SampleMask) OverrideCoverageNV - Decorate 19(color) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypeInt 32 0 - 8: 7(int) Constant 1 - 9: TypeArray 6(int) 8 - 10: TypePointer Output 9 -11(gl_SampleMask): 10(ptr) Variable Output - 12: 6(int) Constant 0 - 13: 6(int) Constant 4294967295 - 14: TypePointer Output 6(int) - 16: TypeFloat 32 - 17: TypeVector 16(float) 4 - 18: TypePointer Input 17(fvec4) - 19(color): 18(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 15: 14(ptr) AccessChain 11(gl_SampleMask) 12 - Store 15 13 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.samplePosition.frag.out b/deps/glslang/Test/baseResults/spv.samplePosition.frag.out deleted file mode 100644 index 80128303..00000000 --- a/deps/glslang/Test/baseResults/spv.samplePosition.frag.out +++ /dev/null @@ -1,55 +0,0 @@ -spv.samplePosition.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 30 - - Capability Shader - Capability SampleRateShading - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 9 22 24 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - Name 4 "main" - Name 9 "gl_SamplePosition" - Name 22 "color" - Name 24 "samp" - Decorate 9(gl_SamplePosition) BuiltIn SamplePosition - Decorate 22(color) Location 0 - Decorate 24(samp) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 2 - 8: TypePointer Input 7(fvec2) -9(gl_SamplePosition): 8(ptr) Variable Input - 10: TypeInt 32 0 - 11: 10(int) Constant 1 - 12: TypePointer Input 6(float) - 15: 6(float) Constant 1056964608 - 16: TypeBool - 20: TypeVector 6(float) 4 - 21: TypePointer Output 20(fvec4) - 22(color): 21(ptr) Variable Output - 23: TypePointer Input 20(fvec4) - 24(samp): 23(ptr) Variable Input - 27: 6(float) Constant 1073741824 - 4(main): 2 Function None 3 - 5: Label - 13: 12(ptr) AccessChain 9(gl_SamplePosition) 11 - 14: 6(float) Load 13 - 17: 16(bool) FOrdLessThan 14 15 - SelectionMerge 19 None - BranchConditional 17 18 26 - 18: Label - 25: 20(fvec4) Load 24(samp) - Store 22(color) 25 - Branch 19 - 26: Label - 28: 20(fvec4) Load 24(samp) - 29: 20(fvec4) VectorTimesScalar 28 27 - Store 22(color) 29 - Branch 19 - 19: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.samplerlessTextureFunctions.frag.out b/deps/glslang/Test/baseResults/spv.samplerlessTextureFunctions.frag.out deleted file mode 100644 index c2c431df..00000000 --- a/deps/glslang/Test/baseResults/spv.samplerlessTextureFunctions.frag.out +++ /dev/null @@ -1,93 +0,0 @@ -spv.samplerlessTextureFunctions.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 51 - - Capability Shader - Capability SampledBuffer - Capability ImageQuery - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_samplerless_texture_functions" - Name 4 "main" - Name 9 "tex2DFetch" - Name 12 "tex2D" - Name 19 "texMSFetch" - Name 22 "texMS" - Name 25 "bufFetch" - Name 28 "buf" - Name 31 "tex2DFetchOffset" - Name 35 "tex2DSize" - Name 38 "texMSSize" - Name 42 "bufSize" - Name 45 "tex2DLevels" - Name 48 "texMSSamples" - Decorate 12(tex2D) DescriptorSet 0 - Decorate 12(tex2D) Binding 1 - Decorate 22(texMS) DescriptorSet 0 - Decorate 22(texMS) Binding 1 - Decorate 28(buf) DescriptorSet 0 - Decorate 28(buf) Binding 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(tex2D): 11(ptr) Variable UniformConstant - 14: TypeInt 32 1 - 15: TypeVector 14(int) 2 - 16: 14(int) Constant 0 - 17: 15(ivec2) ConstantComposite 16 16 - 20: TypeImage 6(float) 2D multi-sampled sampled format:Unknown - 21: TypePointer UniformConstant 20 - 22(texMS): 21(ptr) Variable UniformConstant - 26: TypeImage 6(float) Buffer sampled format:Unknown - 27: TypePointer UniformConstant 26 - 28(buf): 27(ptr) Variable UniformConstant - 34: TypePointer Function 15(ivec2) - 41: TypePointer Function 14(int) - 4(main): 2 Function None 3 - 5: Label - 9(tex2DFetch): 8(ptr) Variable Function - 19(texMSFetch): 8(ptr) Variable Function - 25(bufFetch): 8(ptr) Variable Function -31(tex2DFetchOffset): 8(ptr) Variable Function - 35(tex2DSize): 34(ptr) Variable Function - 38(texMSSize): 34(ptr) Variable Function - 42(bufSize): 41(ptr) Variable Function - 45(tex2DLevels): 41(ptr) Variable Function -48(texMSSamples): 41(ptr) Variable Function - 13: 10 Load 12(tex2D) - 18: 7(fvec4) ImageFetch 13 17 Lod 16 - Store 9(tex2DFetch) 18 - 23: 20 Load 22(texMS) - 24: 7(fvec4) ImageFetch 23 17 Sample 16 - Store 19(texMSFetch) 24 - 29: 26 Load 28(buf) - 30: 7(fvec4) ImageFetch 29 16 - Store 25(bufFetch) 30 - 32: 10 Load 12(tex2D) - 33: 7(fvec4) ImageFetch 32 17 Lod ConstOffset 16 17 - Store 31(tex2DFetchOffset) 33 - 36: 10 Load 12(tex2D) - 37: 15(ivec2) ImageQuerySizeLod 36 16 - Store 35(tex2DSize) 37 - 39: 20 Load 22(texMS) - 40: 15(ivec2) ImageQuerySize 39 - Store 38(texMSSize) 40 - 43: 26 Load 28(buf) - 44: 14(int) ImageQuerySize 43 - Store 42(bufSize) 44 - 46: 10 Load 12(tex2D) - 47: 14(int) ImageQueryLevels 46 - Store 45(tex2DLevels) 47 - 49: 20 Load 22(texMS) - 50: 14(int) ImageQuerySamples 49 - Store 48(texMSSamples) 50 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.scalarlayout.frag.out b/deps/glslang/Test/baseResults/spv.scalarlayout.frag.out deleted file mode 100644 index e08721f8..00000000 --- a/deps/glslang/Test/baseResults/spv.scalarlayout.frag.out +++ /dev/null @@ -1,77 +0,0 @@ -spv.scalarlayout.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 20 - - Capability Shader - Capability Float64 - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_scalar_block_layout" - Name 4 "main" - Name 15 "S" - MemberName 15(S) 0 "a" - MemberName 15(S) 1 "b" - MemberName 15(S) 2 "c" - MemberName 15(S) 3 "d" - MemberName 15(S) 4 "e" - MemberName 15(S) 5 "f" - Name 17 "B1" - MemberName 17(B1) 0 "a" - MemberName 17(B1) 1 "b" - MemberName 17(B1) 2 "c" - MemberName 17(B1) 3 "d" - MemberName 17(B1) 4 "e" - MemberName 17(B1) 5 "f" - MemberName 17(B1) 6 "g" - MemberName 17(B1) 7 "h" - MemberName 17(B1) 8 "i" - Name 19 "" - Decorate 11 ArrayStride 4 - Decorate 13 ArrayStride 24 - MemberDecorate 15(S) 0 Offset 0 - MemberDecorate 15(S) 1 Offset 4 - MemberDecorate 15(S) 2 Offset 16 - MemberDecorate 15(S) 3 Offset 24 - MemberDecorate 15(S) 4 Offset 28 - MemberDecorate 15(S) 5 Offset 40 - Decorate 16 ArrayStride 48 - MemberDecorate 17(B1) 0 Offset 0 - MemberDecorate 17(B1) 1 Offset 4 - MemberDecorate 17(B1) 2 Offset 12 - MemberDecorate 17(B1) 3 Offset 24 - MemberDecorate 17(B1) 4 ColMajor - MemberDecorate 17(B1) 4 Offset 32 - MemberDecorate 17(B1) 4 MatrixStride 12 - MemberDecorate 17(B1) 5 ColMajor - MemberDecorate 17(B1) 5 Offset 56 - MemberDecorate 17(B1) 5 MatrixStride 12 - MemberDecorate 17(B1) 6 Offset 104 - MemberDecorate 17(B1) 7 Offset 112 - MemberDecorate 17(B1) 8 Offset 160 - Decorate 17(B1) Block - Decorate 19 DescriptorSet 0 - Decorate 19 Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 2 - 8: TypeVector 6(float) 3 - 9: TypeInt 32 0 - 10: 9(int) Constant 2 - 11: TypeArray 6(float) 10 - 12: TypeMatrix 8(fvec3) 2 - 13: TypeArray 12 10 - 14: TypeFloat 64 - 15(S): TypeStruct 6(float) 7(fvec2) 14(float64_t) 6(float) 8(fvec3) 6(float) - 16: TypeArray 15(S) 10 - 17(B1): TypeStruct 6(float) 7(fvec2) 8(fvec3) 11 12 13 6(float) 15(S) 16 - 18: TypePointer Uniform 17(B1) - 19: 18(ptr) Variable Uniform - 4(main): 2 Function None 3 - 5: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.scalarlayoutfloat16.frag.out b/deps/glslang/Test/baseResults/spv.scalarlayoutfloat16.frag.out deleted file mode 100644 index 4f22730e..00000000 --- a/deps/glslang/Test/baseResults/spv.scalarlayoutfloat16.frag.out +++ /dev/null @@ -1,69 +0,0 @@ -spv.scalarlayoutfloat16.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 18 - - Capability Shader - Capability Float64 - Capability StorageUniform16 - Extension "SPV_KHR_16bit_storage" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_scalar_block_layout" - SourceExtension "GL_EXT_shader_16bit_storage" - Name 4 "main" - Name 13 "S" - MemberName 13(S) 0 "a" - MemberName 13(S) 1 "b" - MemberName 13(S) 2 "c" - MemberName 13(S) 3 "d" - MemberName 13(S) 4 "e" - MemberName 13(S) 5 "f" - Name 15 "B1" - MemberName 15(B1) 0 "a" - MemberName 15(B1) 1 "b" - MemberName 15(B1) 2 "c" - MemberName 15(B1) 3 "d" - MemberName 15(B1) 4 "g" - MemberName 15(B1) 5 "h" - MemberName 15(B1) 6 "i" - Name 17 "" - Decorate 11 ArrayStride 2 - MemberDecorate 13(S) 0 Offset 0 - MemberDecorate 13(S) 1 Offset 2 - MemberDecorate 13(S) 2 Offset 8 - MemberDecorate 13(S) 3 Offset 16 - MemberDecorate 13(S) 4 Offset 18 - MemberDecorate 13(S) 5 Offset 24 - Decorate 14 ArrayStride 32 - MemberDecorate 15(B1) 0 Offset 0 - MemberDecorate 15(B1) 1 Offset 2 - MemberDecorate 15(B1) 2 Offset 6 - MemberDecorate 15(B1) 3 Offset 12 - MemberDecorate 15(B1) 4 Offset 16 - MemberDecorate 15(B1) 5 Offset 24 - MemberDecorate 15(B1) 6 Offset 56 - Decorate 15(B1) Block - Decorate 17 DescriptorSet 0 - Decorate 17 Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 16 - 7: TypeVector 6(float16_t) 2 - 8: TypeVector 6(float16_t) 3 - 9: TypeInt 32 0 - 10: 9(int) Constant 2 - 11: TypeArray 6(float16_t) 10 - 12: TypeFloat 64 - 13(S): TypeStruct 6(float16_t) 7(f16vec2) 12(float64_t) 6(float16_t) 8(f16vec3) 6(float16_t) - 14: TypeArray 13(S) 10 - 15(B1): TypeStruct 6(float16_t) 7(f16vec2) 8(f16vec3) 11 6(float16_t) 13(S) 14 - 16: TypePointer Uniform 15(B1) - 17: 16(ptr) Variable Uniform - 4(main): 2 Function None 3 - 5: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.separate.frag.out b/deps/glslang/Test/baseResults/spv.separate.frag.out deleted file mode 100644 index d31f8973..00000000 --- a/deps/glslang/Test/baseResults/spv.separate.frag.out +++ /dev/null @@ -1,461 +0,0 @@ -spv.separate.frag -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 319 - - Capability Shader - Capability SampledRect - Capability Sampled1D - Capability SampledCubeArray - Capability SampledBuffer - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 11 34 - ExecutionMode 4 OriginUpperLeft - Source GLSL 400 - Name 4 "main" - Name 6 "foo(" - Name 11 "color" - Name 14 "t2d" - Name 18 "s" - Name 31 "t3d" - Name 34 "i" - Name 41 "sA" - Name 58 "tex2D" - Name 64 "texCube" - Name 71 "texCubeArray" - Name 77 "sShadow" - Name 84 "itexCubeArray" - Name 91 "utexCubeArray" - Name 98 "tex1DArray" - Name 105 "itex1DArray" - Name 112 "utex1D" - Name 119 "itex1D" - Name 126 "utex1DArray" - Name 133 "texBuffer" - Name 145 "tex2DArray" - Name 157 "itex2D" - Name 164 "itex3D" - Name 171 "itexCube" - Name 178 "itex2DArray" - Name 185 "utex2D" - Name 192 "utex3D" - Name 199 "utexCube" - Name 206 "utex2DArray" - Name 213 "itex2DRect" - Name 220 "utex2DRect" - Name 227 "itexBuffer" - Name 234 "utexBuffer" - Name 241 "tex2DMS" - Name 248 "itex2DMS" - Name 255 "utex2DMS" - Name 262 "tex2DMSArray" - Name 269 "itex2DMSArray" - Name 276 "utex2DMSArray" - Name 283 "tex1D" - Name 293 "tex3D" - Name 304 "tex2DRect" - Decorate 11(color) Location 0 - Decorate 14(t2d) DescriptorSet 0 - Decorate 14(t2d) Binding 2 - Decorate 18(s) DescriptorSet 0 - Decorate 18(s) Binding 0 - Decorate 31(t3d) DescriptorSet 0 - Decorate 31(t3d) Binding 3 - Decorate 34(i) Flat - Decorate 34(i) Location 0 - Decorate 41(sA) DescriptorSet 0 - Decorate 41(sA) Binding 1 - Decorate 58(tex2D) DescriptorSet 0 - Decorate 58(tex2D) Binding 0 - Decorate 64(texCube) DescriptorSet 0 - Decorate 64(texCube) Binding 0 - Decorate 71(texCubeArray) DescriptorSet 0 - Decorate 71(texCubeArray) Binding 0 - Decorate 77(sShadow) DescriptorSet 0 - Decorate 77(sShadow) Binding 0 - Decorate 84(itexCubeArray) DescriptorSet 0 - Decorate 84(itexCubeArray) Binding 0 - Decorate 91(utexCubeArray) DescriptorSet 0 - Decorate 91(utexCubeArray) Binding 0 - Decorate 98(tex1DArray) DescriptorSet 0 - Decorate 98(tex1DArray) Binding 0 - Decorate 105(itex1DArray) DescriptorSet 0 - Decorate 105(itex1DArray) Binding 0 - Decorate 112(utex1D) DescriptorSet 0 - Decorate 112(utex1D) Binding 0 - Decorate 119(itex1D) DescriptorSet 0 - Decorate 119(itex1D) Binding 0 - Decorate 126(utex1DArray) DescriptorSet 0 - Decorate 126(utex1DArray) Binding 0 - Decorate 133(texBuffer) DescriptorSet 0 - Decorate 133(texBuffer) Binding 0 - Decorate 145(tex2DArray) DescriptorSet 0 - Decorate 145(tex2DArray) Binding 0 - Decorate 157(itex2D) DescriptorSet 0 - Decorate 157(itex2D) Binding 0 - Decorate 164(itex3D) DescriptorSet 0 - Decorate 164(itex3D) Binding 0 - Decorate 171(itexCube) DescriptorSet 0 - Decorate 171(itexCube) Binding 0 - Decorate 178(itex2DArray) DescriptorSet 0 - Decorate 178(itex2DArray) Binding 0 - Decorate 185(utex2D) DescriptorSet 0 - Decorate 185(utex2D) Binding 0 - Decorate 192(utex3D) DescriptorSet 0 - Decorate 192(utex3D) Binding 0 - Decorate 199(utexCube) DescriptorSet 0 - Decorate 199(utexCube) Binding 0 - Decorate 206(utex2DArray) DescriptorSet 0 - Decorate 206(utex2DArray) Binding 0 - Decorate 213(itex2DRect) DescriptorSet 0 - Decorate 213(itex2DRect) Binding 0 - Decorate 220(utex2DRect) DescriptorSet 0 - Decorate 220(utex2DRect) Binding 0 - Decorate 227(itexBuffer) DescriptorSet 0 - Decorate 227(itexBuffer) Binding 0 - Decorate 234(utexBuffer) DescriptorSet 0 - Decorate 234(utexBuffer) Binding 0 - Decorate 241(tex2DMS) DescriptorSet 0 - Decorate 241(tex2DMS) Binding 0 - Decorate 248(itex2DMS) DescriptorSet 0 - Decorate 248(itex2DMS) Binding 0 - Decorate 255(utex2DMS) DescriptorSet 0 - Decorate 255(utex2DMS) Binding 0 - Decorate 262(tex2DMSArray) DescriptorSet 0 - Decorate 262(tex2DMSArray) Binding 0 - Decorate 269(itex2DMSArray) DescriptorSet 0 - Decorate 269(itex2DMSArray) Binding 0 - Decorate 276(utex2DMSArray) DescriptorSet 0 - Decorate 276(utex2DMSArray) Binding 0 - Decorate 283(tex1D) DescriptorSet 0 - Decorate 283(tex1D) Binding 0 - Decorate 293(tex3D) DescriptorSet 0 - Decorate 293(tex3D) Binding 0 - Decorate 304(tex2DRect) DescriptorSet 0 - Decorate 304(tex2DRect) Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 8: TypeFloat 32 - 9: TypeVector 8(float) 4 - 10: TypePointer Output 9(fvec4) - 11(color): 10(ptr) Variable Output - 12: TypeImage 8(float) 2D sampled format:Unknown - 13: TypePointer UniformConstant 12 - 14(t2d): 13(ptr) Variable UniformConstant - 16: TypeSampler - 17: TypePointer UniformConstant 16 - 18(s): 17(ptr) Variable UniformConstant - 20: TypeSampledImage 12 - 22: TypeVector 8(float) 2 - 23: 8(float) Constant 1056964608 - 24: 22(fvec2) ConstantComposite 23 23 - 26: TypeImage 8(float) 3D sampled format:Unknown - 27: TypeInt 32 0 - 28: 27(int) Constant 4 - 29: TypeArray 26 28 - 30: TypePointer UniformConstant 29 - 31(t3d): 30(ptr) Variable UniformConstant - 32: TypeInt 32 1 - 33: TypePointer Input 32(int) - 34(i): 33(ptr) Variable Input - 36: TypePointer UniformConstant 26 - 39: TypeArray 16 28 - 40: TypePointer UniformConstant 39 - 41(sA): 40(ptr) Variable UniformConstant - 42: 32(int) Constant 2 - 45: TypeSampledImage 26 - 47: TypeVector 8(float) 3 - 48: 47(fvec3) ConstantComposite 23 23 23 - 58(tex2D): 13(ptr) Variable UniformConstant - 62: TypeImage 8(float) Cube sampled format:Unknown - 63: TypePointer UniformConstant 62 - 64(texCube): 63(ptr) Variable UniformConstant - 67: TypeSampledImage 62 - 69: TypeImage 8(float) Cube array sampled format:Unknown - 70: TypePointer UniformConstant 69 -71(texCubeArray): 70(ptr) Variable UniformConstant - 74: TypeSampledImage 69 - 77(sShadow): 17(ptr) Variable UniformConstant - 79: TypeImage 8(float) Cube depth array sampled format:Unknown - 80: TypeSampledImage 79 - 82: TypeImage 32(int) Cube array sampled format:Unknown - 83: TypePointer UniformConstant 82 -84(itexCubeArray): 83(ptr) Variable UniformConstant - 87: TypeSampledImage 82 - 89: TypeImage 27(int) Cube array sampled format:Unknown - 90: TypePointer UniformConstant 89 -91(utexCubeArray): 90(ptr) Variable UniformConstant - 94: TypeSampledImage 89 - 96: TypeImage 8(float) 1D depth array sampled format:Unknown - 97: TypePointer UniformConstant 96 - 98(tex1DArray): 97(ptr) Variable UniformConstant - 101: TypeSampledImage 96 - 103: TypeImage 32(int) 1D array sampled format:Unknown - 104: TypePointer UniformConstant 103 -105(itex1DArray): 104(ptr) Variable UniformConstant - 108: TypeSampledImage 103 - 110: TypeImage 27(int) 1D sampled format:Unknown - 111: TypePointer UniformConstant 110 - 112(utex1D): 111(ptr) Variable UniformConstant - 115: TypeSampledImage 110 - 117: TypeImage 32(int) 1D sampled format:Unknown - 118: TypePointer UniformConstant 117 - 119(itex1D): 118(ptr) Variable UniformConstant - 122: TypeSampledImage 117 - 124: TypeImage 27(int) 1D array sampled format:Unknown - 125: TypePointer UniformConstant 124 -126(utex1DArray): 125(ptr) Variable UniformConstant - 129: TypeSampledImage 124 - 131: TypeImage 8(float) Buffer sampled format:Unknown - 132: TypePointer UniformConstant 131 - 133(texBuffer): 132(ptr) Variable UniformConstant - 136: TypeSampledImage 131 - 140: TypeImage 8(float) Cube depth sampled format:Unknown - 141: TypeSampledImage 140 - 143: TypeImage 8(float) 2D array sampled format:Unknown - 144: TypePointer UniformConstant 143 - 145(tex2DArray): 144(ptr) Variable UniformConstant - 148: TypeSampledImage 143 - 152: TypeImage 8(float) 2D depth array sampled format:Unknown - 153: TypeSampledImage 152 - 155: TypeImage 32(int) 2D sampled format:Unknown - 156: TypePointer UniformConstant 155 - 157(itex2D): 156(ptr) Variable UniformConstant - 160: TypeSampledImage 155 - 162: TypeImage 32(int) 3D sampled format:Unknown - 163: TypePointer UniformConstant 162 - 164(itex3D): 163(ptr) Variable UniformConstant - 167: TypeSampledImage 162 - 169: TypeImage 32(int) Cube sampled format:Unknown - 170: TypePointer UniformConstant 169 - 171(itexCube): 170(ptr) Variable UniformConstant - 174: TypeSampledImage 169 - 176: TypeImage 32(int) 2D array sampled format:Unknown - 177: TypePointer UniformConstant 176 -178(itex2DArray): 177(ptr) Variable UniformConstant - 181: TypeSampledImage 176 - 183: TypeImage 27(int) 2D sampled format:Unknown - 184: TypePointer UniformConstant 183 - 185(utex2D): 184(ptr) Variable UniformConstant - 188: TypeSampledImage 183 - 190: TypeImage 27(int) 3D sampled format:Unknown - 191: TypePointer UniformConstant 190 - 192(utex3D): 191(ptr) Variable UniformConstant - 195: TypeSampledImage 190 - 197: TypeImage 27(int) Cube sampled format:Unknown - 198: TypePointer UniformConstant 197 - 199(utexCube): 198(ptr) Variable UniformConstant - 202: TypeSampledImage 197 - 204: TypeImage 27(int) 2D array sampled format:Unknown - 205: TypePointer UniformConstant 204 -206(utex2DArray): 205(ptr) Variable UniformConstant - 209: TypeSampledImage 204 - 211: TypeImage 32(int) Rect sampled format:Unknown - 212: TypePointer UniformConstant 211 - 213(itex2DRect): 212(ptr) Variable UniformConstant - 216: TypeSampledImage 211 - 218: TypeImage 27(int) Rect sampled format:Unknown - 219: TypePointer UniformConstant 218 - 220(utex2DRect): 219(ptr) Variable UniformConstant - 223: TypeSampledImage 218 - 225: TypeImage 32(int) Buffer sampled format:Unknown - 226: TypePointer UniformConstant 225 - 227(itexBuffer): 226(ptr) Variable UniformConstant - 230: TypeSampledImage 225 - 232: TypeImage 27(int) Buffer sampled format:Unknown - 233: TypePointer UniformConstant 232 - 234(utexBuffer): 233(ptr) Variable UniformConstant - 237: TypeSampledImage 232 - 239: TypeImage 8(float) 2D multi-sampled sampled format:Unknown - 240: TypePointer UniformConstant 239 - 241(tex2DMS): 240(ptr) Variable UniformConstant - 244: TypeSampledImage 239 - 246: TypeImage 32(int) 2D multi-sampled sampled format:Unknown - 247: TypePointer UniformConstant 246 - 248(itex2DMS): 247(ptr) Variable UniformConstant - 251: TypeSampledImage 246 - 253: TypeImage 27(int) 2D multi-sampled sampled format:Unknown - 254: TypePointer UniformConstant 253 - 255(utex2DMS): 254(ptr) Variable UniformConstant - 258: TypeSampledImage 253 - 260: TypeImage 8(float) 2D array multi-sampled sampled format:Unknown - 261: TypePointer UniformConstant 260 -262(tex2DMSArray): 261(ptr) Variable UniformConstant - 265: TypeSampledImage 260 - 267: TypeImage 32(int) 2D array multi-sampled sampled format:Unknown - 268: TypePointer UniformConstant 267 -269(itex2DMSArray): 268(ptr) Variable UniformConstant - 272: TypeSampledImage 267 - 274: TypeImage 27(int) 2D array multi-sampled sampled format:Unknown - 275: TypePointer UniformConstant 274 -276(utex2DMSArray): 275(ptr) Variable UniformConstant - 279: TypeSampledImage 274 - 281: TypeImage 8(float) 1D sampled format:Unknown - 282: TypePointer UniformConstant 281 - 283(tex1D): 282(ptr) Variable UniformConstant - 286: TypeSampledImage 281 - 290: TypeImage 8(float) 1D depth sampled format:Unknown - 291: TypeSampledImage 290 - 293(tex3D): 36(ptr) Variable UniformConstant - 299: TypeImage 8(float) 2D depth sampled format:Unknown - 300: TypeSampledImage 299 - 302: TypeImage 8(float) Rect sampled format:Unknown - 303: TypePointer UniformConstant 302 - 304(tex2DRect): 303(ptr) Variable UniformConstant - 307: TypeSampledImage 302 - 311: TypeImage 8(float) Rect depth sampled format:Unknown - 312: TypeSampledImage 311 - 316: TypeImage 8(float) 1D array sampled format:Unknown - 317: TypeSampledImage 316 - 4(main): 2 Function None 3 - 5: Label - 15: 12 Load 14(t2d) - 19: 16 Load 18(s) - 21: 20 SampledImage 15 19 - 25: 9(fvec4) ImageSampleImplicitLod 21 24 - Store 11(color) 25 - 35: 32(int) Load 34(i) - 37: 36(ptr) AccessChain 31(t3d) 35 - 38: 26 Load 37 - 43: 17(ptr) AccessChain 41(sA) 42 - 44: 16 Load 43 - 46: 45 SampledImage 38 44 - 49: 9(fvec4) ImageSampleImplicitLod 46 48 - 50: 9(fvec4) Load 11(color) - 51: 9(fvec4) FAdd 50 49 - Store 11(color) 51 - 52: 12 Load 14(t2d) - 53: 16 Load 18(s) - 54: 20 SampledImage 52 53 - 55: 9(fvec4) ImageSampleImplicitLod 54 24 - 56: 9(fvec4) Load 11(color) - 57: 9(fvec4) FAdd 56 55 - Store 11(color) 57 - Return - FunctionEnd - 6(foo(): 2 Function None 3 - 7: Label - 59: 12 Load 58(tex2D) - 60: 16 Load 18(s) - 61: 20 SampledImage 59 60 - 65: 62 Load 64(texCube) - 66: 16 Load 18(s) - 68: 67 SampledImage 65 66 - 72: 69 Load 71(texCubeArray) - 73: 16 Load 18(s) - 75: 74 SampledImage 72 73 - 76: 69 Load 71(texCubeArray) - 78: 16 Load 77(sShadow) - 81: 80 SampledImage 76 78 - 85: 82 Load 84(itexCubeArray) - 86: 16 Load 18(s) - 88: 87 SampledImage 85 86 - 92: 89 Load 91(utexCubeArray) - 93: 16 Load 18(s) - 95: 94 SampledImage 92 93 - 99: 96 Load 98(tex1DArray) - 100: 16 Load 77(sShadow) - 102: 101 SampledImage 99 100 - 106: 103 Load 105(itex1DArray) - 107: 16 Load 18(s) - 109: 108 SampledImage 106 107 - 113: 110 Load 112(utex1D) - 114: 16 Load 18(s) - 116: 115 SampledImage 113 114 - 120: 117 Load 119(itex1D) - 121: 16 Load 18(s) - 123: 122 SampledImage 120 121 - 127: 124 Load 126(utex1DArray) - 128: 16 Load 18(s) - 130: 129 SampledImage 127 128 - 134: 131 Load 133(texBuffer) - 135: 16 Load 18(s) - 137: 136 SampledImage 134 135 - 138: 62 Load 64(texCube) - 139: 16 Load 77(sShadow) - 142: 141 SampledImage 138 139 - 146: 143 Load 145(tex2DArray) - 147: 16 Load 18(s) - 149: 148 SampledImage 146 147 - 150: 143 Load 145(tex2DArray) - 151: 16 Load 77(sShadow) - 154: 153 SampledImage 150 151 - 158: 155 Load 157(itex2D) - 159: 16 Load 18(s) - 161: 160 SampledImage 158 159 - 165: 162 Load 164(itex3D) - 166: 16 Load 18(s) - 168: 167 SampledImage 165 166 - 172: 169 Load 171(itexCube) - 173: 16 Load 18(s) - 175: 174 SampledImage 172 173 - 179: 176 Load 178(itex2DArray) - 180: 16 Load 18(s) - 182: 181 SampledImage 179 180 - 186: 183 Load 185(utex2D) - 187: 16 Load 18(s) - 189: 188 SampledImage 186 187 - 193: 190 Load 192(utex3D) - 194: 16 Load 18(s) - 196: 195 SampledImage 193 194 - 200: 197 Load 199(utexCube) - 201: 16 Load 18(s) - 203: 202 SampledImage 200 201 - 207: 204 Load 206(utex2DArray) - 208: 16 Load 18(s) - 210: 209 SampledImage 207 208 - 214: 211 Load 213(itex2DRect) - 215: 16 Load 18(s) - 217: 216 SampledImage 214 215 - 221: 218 Load 220(utex2DRect) - 222: 16 Load 18(s) - 224: 223 SampledImage 221 222 - 228: 225 Load 227(itexBuffer) - 229: 16 Load 18(s) - 231: 230 SampledImage 228 229 - 235: 232 Load 234(utexBuffer) - 236: 16 Load 18(s) - 238: 237 SampledImage 235 236 - 242: 239 Load 241(tex2DMS) - 243: 16 Load 18(s) - 245: 244 SampledImage 242 243 - 249: 246 Load 248(itex2DMS) - 250: 16 Load 18(s) - 252: 251 SampledImage 249 250 - 256: 253 Load 255(utex2DMS) - 257: 16 Load 18(s) - 259: 258 SampledImage 256 257 - 263: 260 Load 262(tex2DMSArray) - 264: 16 Load 18(s) - 266: 265 SampledImage 263 264 - 270: 267 Load 269(itex2DMSArray) - 271: 16 Load 18(s) - 273: 272 SampledImage 270 271 - 277: 274 Load 276(utex2DMSArray) - 278: 16 Load 18(s) - 280: 279 SampledImage 277 278 - 284: 281 Load 283(tex1D) - 285: 16 Load 18(s) - 287: 286 SampledImage 284 285 - 288: 281 Load 283(tex1D) - 289: 16 Load 77(sShadow) - 292: 291 SampledImage 288 289 - 294: 26 Load 293(tex3D) - 295: 16 Load 18(s) - 296: 45 SampledImage 294 295 - 297: 12 Load 58(tex2D) - 298: 16 Load 77(sShadow) - 301: 300 SampledImage 297 298 - 305: 302 Load 304(tex2DRect) - 306: 16 Load 18(s) - 308: 307 SampledImage 305 306 - 309: 302 Load 304(tex2DRect) - 310: 16 Load 77(sShadow) - 313: 312 SampledImage 309 310 - 314: 96 Load 98(tex1DArray) - 315: 16 Load 18(s) - 318: 317 SampledImage 314 315 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.set.vert.out b/deps/glslang/Test/baseResults/spv.set.vert.out deleted file mode 100644 index 245b4bd8..00000000 --- a/deps/glslang/Test/baseResults/spv.set.vert.out +++ /dev/null @@ -1,46 +0,0 @@ -spv.set.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 22 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 9 - Source GLSL 450 - Name 4 "main" - Name 9 "color" - Name 10 "setBuf" - MemberName 10(setBuf) 0 "color" - Name 12 "setBufInst" - Name 21 "samp2D" - Decorate 9(color) Location 0 - MemberDecorate 10(setBuf) 0 Offset 0 - Decorate 10(setBuf) BufferBlock - Decorate 12(setBufInst) DescriptorSet 0 - Decorate 12(setBufInst) Binding 8 - Decorate 21(samp2D) DescriptorSet 4 - Decorate 21(samp2D) Binding 7 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) - 9(color): 8(ptr) Variable Output - 10(setBuf): TypeStruct 7(fvec4) - 11: TypePointer Uniform 10(setBuf) - 12(setBufInst): 11(ptr) Variable Uniform - 13: TypeInt 32 1 - 14: 13(int) Constant 0 - 15: TypePointer Uniform 7(fvec4) - 18: TypeImage 6(float) 2D sampled format:Unknown - 19: TypeSampledImage 18 - 20: TypePointer UniformConstant 19 - 21(samp2D): 20(ptr) Variable UniformConstant - 4(main): 2 Function None 3 - 5: Label - 16: 15(ptr) AccessChain 12(setBufInst) 14 - 17: 7(fvec4) Load 16 - Store 9(color) 17 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.shaderBallot.comp.out b/deps/glslang/Test/baseResults/spv.shaderBallot.comp.out deleted file mode 100644 index 2a0106e6..00000000 --- a/deps/glslang/Test/baseResults/spv.shaderBallot.comp.out +++ /dev/null @@ -1,490 +0,0 @@ -spv.shaderBallot.comp -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 397 - - 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 22 29 36 43 50 - 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 22 "gl_SubGroupEqMaskARB" - Name 29 "gl_SubGroupGeMaskARB" - Name 36 "gl_SubGroupGtMaskARB" - Name 43 "gl_SubGroupLeMaskARB" - Name 50 "gl_SubGroupLtMaskARB" - Name 72 "Buffers" - MemberName 72(Buffers) 0 "f4" - MemberName 72(Buffers) 1 "i4" - MemberName 72(Buffers) 2 "u4" - Name 75 "data" - Decorate 10(gl_SubGroupInvocationARB) BuiltIn SubgroupLocalInvocationId - Decorate 12(gl_SubGroupSizeARB) BuiltIn SubgroupSize - Decorate 22(gl_SubGroupEqMaskARB) BuiltIn SubgroupEqMaskKHR - Decorate 29(gl_SubGroupGeMaskARB) BuiltIn SubgroupGeMaskKHR - Decorate 36(gl_SubGroupGtMaskARB) BuiltIn SubgroupGtMaskKHR - Decorate 43(gl_SubGroupLeMaskARB) BuiltIn SubgroupLeMaskKHR - Decorate 50(gl_SubGroupLtMaskARB) BuiltIn SubgroupLtMaskKHR - MemberDecorate 72(Buffers) 0 Offset 0 - MemberDecorate 72(Buffers) 1 Offset 16 - MemberDecorate 72(Buffers) 2 Offset 32 - Decorate 72(Buffers) BufferBlock - Decorate 75(data) DescriptorSet 0 - Decorate 75(data) Binding 0 - Decorate 396 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: TypeVector 6(int) 4 - 21: TypePointer Input 20(ivec4) -22(gl_SubGroupEqMaskARB): 21(ptr) Variable Input - 26: TypeVector 6(int) 2 -29(gl_SubGroupGeMaskARB): 21(ptr) Variable Input -36(gl_SubGroupGtMaskARB): 21(ptr) Variable Input -43(gl_SubGroupLeMaskARB): 21(ptr) Variable Input -50(gl_SubGroupLtMaskARB): 21(ptr) Variable Input - 58: TypeBool - 59: 58(bool) ConstantTrue - 68: TypeFloat 32 - 69: TypeVector 68(float) 4 - 70: TypeInt 32 1 - 71: TypeVector 70(int) 4 - 72(Buffers): TypeStruct 69(fvec4) 71(ivec4) 20(ivec4) - 73: TypeArray 72(Buffers) 15 - 74: TypePointer Uniform 73 - 75(data): 74(ptr) Variable Uniform - 77: 70(int) Constant 0 - 78: 6(int) Constant 0 - 79: TypePointer Uniform 68(float) - 86: 70(int) Constant 1 - 87: TypeVector 68(float) 2 - 88: TypePointer Uniform 69(fvec4) - 100: 6(int) Constant 1 - 104: 70(int) Constant 2 - 105: TypeVector 68(float) 3 - 121: 6(int) Constant 2 - 125: 70(int) Constant 3 - 140: TypePointer Uniform 70(int) - 147: TypeVector 70(int) 2 - 148: TypePointer Uniform 71(ivec4) - 163: TypeVector 70(int) 3 - 196: TypePointer Uniform 6(int) - 203: TypePointer Uniform 20(ivec4) - 218: TypeVector 6(int) 3 - 395: 6(int) Constant 8 - 396: 218(ivec3) ConstantComposite 395 395 100 - 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 - 23: 20(ivec4) Load 22(gl_SubGroupEqMaskARB) - 24: 6(int) CompositeExtract 23 0 - 25: 6(int) CompositeExtract 23 1 - 27: 26(ivec2) CompositeConstruct 24 25 - 28: 17(int64_t) Bitcast 27 - 30: 20(ivec4) Load 29(gl_SubGroupGeMaskARB) - 31: 6(int) CompositeExtract 30 0 - 32: 6(int) CompositeExtract 30 1 - 33: 26(ivec2) CompositeConstruct 31 32 - 34: 17(int64_t) Bitcast 33 - 35: 17(int64_t) IAdd 28 34 - 37: 20(ivec4) Load 36(gl_SubGroupGtMaskARB) - 38: 6(int) CompositeExtract 37 0 - 39: 6(int) CompositeExtract 37 1 - 40: 26(ivec2) CompositeConstruct 38 39 - 41: 17(int64_t) Bitcast 40 - 42: 17(int64_t) IAdd 35 41 - 44: 20(ivec4) Load 43(gl_SubGroupLeMaskARB) - 45: 6(int) CompositeExtract 44 0 - 46: 6(int) CompositeExtract 44 1 - 47: 26(ivec2) CompositeConstruct 45 46 - 48: 17(int64_t) Bitcast 47 - 49: 17(int64_t) IAdd 42 48 - 51: 20(ivec4) Load 50(gl_SubGroupLtMaskARB) - 52: 6(int) CompositeExtract 51 0 - 53: 6(int) CompositeExtract 51 1 - 54: 26(ivec2) CompositeConstruct 52 53 - 55: 17(int64_t) Bitcast 54 - 56: 17(int64_t) IAdd 49 55 - Store 19(relMask) 56 - 57: 17(int64_t) Load 19(relMask) - 60: 20(ivec4) SubgroupBallotKHR 59 - 61: 6(int) CompositeExtract 60 0 - 62: 6(int) CompositeExtract 60 1 - 63: 26(ivec2) CompositeConstruct 61 62 - 64: 17(int64_t) Bitcast 63 - 65: 58(bool) IEqual 57 64 - SelectionMerge 67 None - BranchConditional 65 66 250 - 66: Label - 76: 6(int) Load 8(invocation) - 80: 79(ptr) AccessChain 75(data) 77 77 78 - 81: 68(float) Load 80 - 82: 6(int) Load 8(invocation) - 83: 68(float) SubgroupReadInvocationKHR 81 82 - 84: 79(ptr) AccessChain 75(data) 76 77 78 - Store 84 83 - 85: 6(int) Load 8(invocation) - 89: 88(ptr) AccessChain 75(data) 86 77 - 90: 69(fvec4) Load 89 - 91: 87(fvec2) VectorShuffle 90 90 0 1 - 92: 6(int) Load 8(invocation) - 93: 68(float) CompositeExtract 91 0 - 94: 68(float) SubgroupReadInvocationKHR 93 92 - 95: 68(float) CompositeExtract 91 1 - 96: 68(float) SubgroupReadInvocationKHR 95 92 - 97: 87(fvec2) CompositeConstruct 94 96 - 98: 79(ptr) AccessChain 75(data) 85 77 78 - 99: 68(float) CompositeExtract 97 0 - Store 98 99 - 101: 79(ptr) AccessChain 75(data) 85 77 100 - 102: 68(float) CompositeExtract 97 1 - Store 101 102 - 103: 6(int) Load 8(invocation) - 106: 88(ptr) AccessChain 75(data) 104 77 - 107: 69(fvec4) Load 106 - 108: 105(fvec3) VectorShuffle 107 107 0 1 2 - 109: 6(int) Load 8(invocation) - 110: 68(float) CompositeExtract 108 0 - 111: 68(float) SubgroupReadInvocationKHR 110 109 - 112: 68(float) CompositeExtract 108 1 - 113: 68(float) SubgroupReadInvocationKHR 112 109 - 114: 68(float) CompositeExtract 108 2 - 115: 68(float) SubgroupReadInvocationKHR 114 109 - 116: 105(fvec3) CompositeConstruct 111 113 115 - 117: 79(ptr) AccessChain 75(data) 103 77 78 - 118: 68(float) CompositeExtract 116 0 - Store 117 118 - 119: 79(ptr) AccessChain 75(data) 103 77 100 - 120: 68(float) CompositeExtract 116 1 - Store 119 120 - 122: 79(ptr) AccessChain 75(data) 103 77 121 - 123: 68(float) CompositeExtract 116 2 - Store 122 123 - 124: 6(int) Load 8(invocation) - 126: 88(ptr) AccessChain 75(data) 125 77 - 127: 69(fvec4) Load 126 - 128: 6(int) Load 8(invocation) - 129: 68(float) CompositeExtract 127 0 - 130: 68(float) SubgroupReadInvocationKHR 129 128 - 131: 68(float) CompositeExtract 127 1 - 132: 68(float) SubgroupReadInvocationKHR 131 128 - 133: 68(float) CompositeExtract 127 2 - 134: 68(float) SubgroupReadInvocationKHR 133 128 - 135: 68(float) CompositeExtract 127 3 - 136: 68(float) SubgroupReadInvocationKHR 135 128 - 137: 69(fvec4) CompositeConstruct 130 132 134 136 - 138: 88(ptr) AccessChain 75(data) 124 77 - Store 138 137 - 139: 6(int) Load 8(invocation) - 141: 140(ptr) AccessChain 75(data) 77 86 78 - 142: 70(int) Load 141 - 143: 6(int) Load 8(invocation) - 144: 70(int) SubgroupReadInvocationKHR 142 143 - 145: 140(ptr) AccessChain 75(data) 139 86 78 - Store 145 144 - 146: 6(int) Load 8(invocation) - 149: 148(ptr) AccessChain 75(data) 86 86 - 150: 71(ivec4) Load 149 - 151: 147(ivec2) VectorShuffle 150 150 0 1 - 152: 6(int) Load 8(invocation) - 153: 70(int) CompositeExtract 151 0 - 154: 70(int) SubgroupReadInvocationKHR 153 152 - 155: 70(int) CompositeExtract 151 1 - 156: 70(int) SubgroupReadInvocationKHR 155 152 - 157: 147(ivec2) CompositeConstruct 154 156 - 158: 140(ptr) AccessChain 75(data) 146 86 78 - 159: 70(int) CompositeExtract 157 0 - Store 158 159 - 160: 140(ptr) AccessChain 75(data) 146 86 100 - 161: 70(int) CompositeExtract 157 1 - Store 160 161 - 162: 6(int) Load 8(invocation) - 164: 148(ptr) AccessChain 75(data) 104 86 - 165: 71(ivec4) Load 164 - 166: 163(ivec3) VectorShuffle 165 165 0 1 2 - 167: 6(int) Load 8(invocation) - 168: 70(int) CompositeExtract 166 0 - 169: 70(int) SubgroupReadInvocationKHR 168 167 - 170: 70(int) CompositeExtract 166 1 - 171: 70(int) SubgroupReadInvocationKHR 170 167 - 172: 70(int) CompositeExtract 166 2 - 173: 70(int) SubgroupReadInvocationKHR 172 167 - 174: 163(ivec3) CompositeConstruct 169 171 173 - 175: 140(ptr) AccessChain 75(data) 162 86 78 - 176: 70(int) CompositeExtract 174 0 - Store 175 176 - 177: 140(ptr) AccessChain 75(data) 162 86 100 - 178: 70(int) CompositeExtract 174 1 - Store 177 178 - 179: 140(ptr) AccessChain 75(data) 162 86 121 - 180: 70(int) CompositeExtract 174 2 - Store 179 180 - 181: 6(int) Load 8(invocation) - 182: 148(ptr) AccessChain 75(data) 125 86 - 183: 71(ivec4) Load 182 - 184: 6(int) Load 8(invocation) - 185: 70(int) CompositeExtract 183 0 - 186: 70(int) SubgroupReadInvocationKHR 185 184 - 187: 70(int) CompositeExtract 183 1 - 188: 70(int) SubgroupReadInvocationKHR 187 184 - 189: 70(int) CompositeExtract 183 2 - 190: 70(int) SubgroupReadInvocationKHR 189 184 - 191: 70(int) CompositeExtract 183 3 - 192: 70(int) SubgroupReadInvocationKHR 191 184 - 193: 71(ivec4) CompositeConstruct 186 188 190 192 - 194: 148(ptr) AccessChain 75(data) 181 86 - Store 194 193 - 195: 6(int) Load 8(invocation) - 197: 196(ptr) AccessChain 75(data) 77 104 78 - 198: 6(int) Load 197 - 199: 6(int) Load 8(invocation) - 200: 6(int) SubgroupReadInvocationKHR 198 199 - 201: 196(ptr) AccessChain 75(data) 195 104 78 - Store 201 200 - 202: 6(int) Load 8(invocation) - 204: 203(ptr) AccessChain 75(data) 86 104 - 205: 20(ivec4) Load 204 - 206: 26(ivec2) VectorShuffle 205 205 0 1 - 207: 6(int) Load 8(invocation) - 208: 6(int) CompositeExtract 206 0 - 209: 6(int) SubgroupReadInvocationKHR 208 207 - 210: 6(int) CompositeExtract 206 1 - 211: 6(int) SubgroupReadInvocationKHR 210 207 - 212: 26(ivec2) CompositeConstruct 209 211 - 213: 196(ptr) AccessChain 75(data) 202 104 78 - 214: 6(int) CompositeExtract 212 0 - Store 213 214 - 215: 196(ptr) AccessChain 75(data) 202 104 100 - 216: 6(int) CompositeExtract 212 1 - Store 215 216 - 217: 6(int) Load 8(invocation) - 219: 203(ptr) AccessChain 75(data) 104 104 - 220: 20(ivec4) Load 219 - 221: 218(ivec3) VectorShuffle 220 220 0 1 2 - 222: 6(int) Load 8(invocation) - 223: 6(int) CompositeExtract 221 0 - 224: 6(int) SubgroupReadInvocationKHR 223 222 - 225: 6(int) CompositeExtract 221 1 - 226: 6(int) SubgroupReadInvocationKHR 225 222 - 227: 6(int) CompositeExtract 221 2 - 228: 6(int) SubgroupReadInvocationKHR 227 222 - 229: 218(ivec3) CompositeConstruct 224 226 228 - 230: 196(ptr) AccessChain 75(data) 217 104 78 - 231: 6(int) CompositeExtract 229 0 - Store 230 231 - 232: 196(ptr) AccessChain 75(data) 217 104 100 - 233: 6(int) CompositeExtract 229 1 - Store 232 233 - 234: 196(ptr) AccessChain 75(data) 217 104 121 - 235: 6(int) CompositeExtract 229 2 - Store 234 235 - 236: 6(int) Load 8(invocation) - 237: 203(ptr) AccessChain 75(data) 125 104 - 238: 20(ivec4) Load 237 - 239: 6(int) Load 8(invocation) - 240: 6(int) CompositeExtract 238 0 - 241: 6(int) SubgroupReadInvocationKHR 240 239 - 242: 6(int) CompositeExtract 238 1 - 243: 6(int) SubgroupReadInvocationKHR 242 239 - 244: 6(int) CompositeExtract 238 2 - 245: 6(int) SubgroupReadInvocationKHR 244 239 - 246: 6(int) CompositeExtract 238 3 - 247: 6(int) SubgroupReadInvocationKHR 246 239 - 248: 20(ivec4) CompositeConstruct 241 243 245 247 - 249: 203(ptr) AccessChain 75(data) 236 104 - Store 249 248 - Branch 67 - 250: Label - 251: 6(int) Load 8(invocation) - 252: 79(ptr) AccessChain 75(data) 77 77 78 - 253: 68(float) Load 252 - 254: 68(float) SubgroupFirstInvocationKHR 253 - 255: 79(ptr) AccessChain 75(data) 251 77 78 - Store 255 254 - 256: 6(int) Load 8(invocation) - 257: 88(ptr) AccessChain 75(data) 86 77 - 258: 69(fvec4) Load 257 - 259: 87(fvec2) VectorShuffle 258 258 0 1 - 260: 68(float) CompositeExtract 259 0 - 261: 68(float) SubgroupFirstInvocationKHR 260 - 262: 68(float) CompositeExtract 259 1 - 263: 68(float) SubgroupFirstInvocationKHR 262 - 264: 87(fvec2) CompositeConstruct 261 263 - 265: 79(ptr) AccessChain 75(data) 256 77 78 - 266: 68(float) CompositeExtract 264 0 - Store 265 266 - 267: 79(ptr) AccessChain 75(data) 256 77 100 - 268: 68(float) CompositeExtract 264 1 - Store 267 268 - 269: 6(int) Load 8(invocation) - 270: 88(ptr) AccessChain 75(data) 104 77 - 271: 69(fvec4) Load 270 - 272: 105(fvec3) VectorShuffle 271 271 0 1 2 - 273: 68(float) CompositeExtract 272 0 - 274: 68(float) SubgroupFirstInvocationKHR 273 - 275: 68(float) CompositeExtract 272 1 - 276: 68(float) SubgroupFirstInvocationKHR 275 - 277: 68(float) CompositeExtract 272 2 - 278: 68(float) SubgroupFirstInvocationKHR 277 - 279: 105(fvec3) CompositeConstruct 274 276 278 - 280: 79(ptr) AccessChain 75(data) 269 77 78 - 281: 68(float) CompositeExtract 279 0 - Store 280 281 - 282: 79(ptr) AccessChain 75(data) 269 77 100 - 283: 68(float) CompositeExtract 279 1 - Store 282 283 - 284: 79(ptr) AccessChain 75(data) 269 77 121 - 285: 68(float) CompositeExtract 279 2 - Store 284 285 - 286: 6(int) Load 8(invocation) - 287: 88(ptr) AccessChain 75(data) 125 77 - 288: 69(fvec4) Load 287 - 289: 68(float) CompositeExtract 288 0 - 290: 68(float) SubgroupFirstInvocationKHR 289 - 291: 68(float) CompositeExtract 288 1 - 292: 68(float) SubgroupFirstInvocationKHR 291 - 293: 68(float) CompositeExtract 288 2 - 294: 68(float) SubgroupFirstInvocationKHR 293 - 295: 68(float) CompositeExtract 288 3 - 296: 68(float) SubgroupFirstInvocationKHR 295 - 297: 69(fvec4) CompositeConstruct 290 292 294 296 - 298: 88(ptr) AccessChain 75(data) 286 77 - Store 298 297 - 299: 6(int) Load 8(invocation) - 300: 140(ptr) AccessChain 75(data) 77 86 78 - 301: 70(int) Load 300 - 302: 70(int) SubgroupFirstInvocationKHR 301 - 303: 140(ptr) AccessChain 75(data) 299 86 78 - Store 303 302 - 304: 6(int) Load 8(invocation) - 305: 148(ptr) AccessChain 75(data) 86 86 - 306: 71(ivec4) Load 305 - 307: 147(ivec2) VectorShuffle 306 306 0 1 - 308: 70(int) CompositeExtract 307 0 - 309: 70(int) SubgroupFirstInvocationKHR 308 - 310: 70(int) CompositeExtract 307 1 - 311: 70(int) SubgroupFirstInvocationKHR 310 - 312: 147(ivec2) CompositeConstruct 309 311 - 313: 140(ptr) AccessChain 75(data) 304 86 78 - 314: 70(int) CompositeExtract 312 0 - Store 313 314 - 315: 140(ptr) AccessChain 75(data) 304 86 100 - 316: 70(int) CompositeExtract 312 1 - Store 315 316 - 317: 6(int) Load 8(invocation) - 318: 148(ptr) AccessChain 75(data) 104 86 - 319: 71(ivec4) Load 318 - 320: 163(ivec3) VectorShuffle 319 319 0 1 2 - 321: 70(int) CompositeExtract 320 0 - 322: 70(int) SubgroupFirstInvocationKHR 321 - 323: 70(int) CompositeExtract 320 1 - 324: 70(int) SubgroupFirstInvocationKHR 323 - 325: 70(int) CompositeExtract 320 2 - 326: 70(int) SubgroupFirstInvocationKHR 325 - 327: 163(ivec3) CompositeConstruct 322 324 326 - 328: 140(ptr) AccessChain 75(data) 317 86 78 - 329: 70(int) CompositeExtract 327 0 - Store 328 329 - 330: 140(ptr) AccessChain 75(data) 317 86 100 - 331: 70(int) CompositeExtract 327 1 - Store 330 331 - 332: 140(ptr) AccessChain 75(data) 317 86 121 - 333: 70(int) CompositeExtract 327 2 - Store 332 333 - 334: 6(int) Load 8(invocation) - 335: 148(ptr) AccessChain 75(data) 125 86 - 336: 71(ivec4) Load 335 - 337: 70(int) CompositeExtract 336 0 - 338: 70(int) SubgroupFirstInvocationKHR 337 - 339: 70(int) CompositeExtract 336 1 - 340: 70(int) SubgroupFirstInvocationKHR 339 - 341: 70(int) CompositeExtract 336 2 - 342: 70(int) SubgroupFirstInvocationKHR 341 - 343: 70(int) CompositeExtract 336 3 - 344: 70(int) SubgroupFirstInvocationKHR 343 - 345: 71(ivec4) CompositeConstruct 338 340 342 344 - 346: 148(ptr) AccessChain 75(data) 334 86 - Store 346 345 - 347: 6(int) Load 8(invocation) - 348: 196(ptr) AccessChain 75(data) 77 104 78 - 349: 6(int) Load 348 - 350: 6(int) SubgroupFirstInvocationKHR 349 - 351: 196(ptr) AccessChain 75(data) 347 104 78 - Store 351 350 - 352: 6(int) Load 8(invocation) - 353: 203(ptr) AccessChain 75(data) 86 104 - 354: 20(ivec4) Load 353 - 355: 26(ivec2) VectorShuffle 354 354 0 1 - 356: 6(int) CompositeExtract 355 0 - 357: 6(int) SubgroupFirstInvocationKHR 356 - 358: 6(int) CompositeExtract 355 1 - 359: 6(int) SubgroupFirstInvocationKHR 358 - 360: 26(ivec2) CompositeConstruct 357 359 - 361: 196(ptr) AccessChain 75(data) 352 104 78 - 362: 6(int) CompositeExtract 360 0 - Store 361 362 - 363: 196(ptr) AccessChain 75(data) 352 104 100 - 364: 6(int) CompositeExtract 360 1 - Store 363 364 - 365: 6(int) Load 8(invocation) - 366: 203(ptr) AccessChain 75(data) 104 104 - 367: 20(ivec4) Load 366 - 368: 218(ivec3) VectorShuffle 367 367 0 1 2 - 369: 6(int) CompositeExtract 368 0 - 370: 6(int) SubgroupFirstInvocationKHR 369 - 371: 6(int) CompositeExtract 368 1 - 372: 6(int) SubgroupFirstInvocationKHR 371 - 373: 6(int) CompositeExtract 368 2 - 374: 6(int) SubgroupFirstInvocationKHR 373 - 375: 218(ivec3) CompositeConstruct 370 372 374 - 376: 196(ptr) AccessChain 75(data) 365 104 78 - 377: 6(int) CompositeExtract 375 0 - Store 376 377 - 378: 196(ptr) AccessChain 75(data) 365 104 100 - 379: 6(int) CompositeExtract 375 1 - Store 378 379 - 380: 196(ptr) AccessChain 75(data) 365 104 121 - 381: 6(int) CompositeExtract 375 2 - Store 380 381 - 382: 6(int) Load 8(invocation) - 383: 203(ptr) AccessChain 75(data) 125 104 - 384: 20(ivec4) Load 383 - 385: 6(int) CompositeExtract 384 0 - 386: 6(int) SubgroupFirstInvocationKHR 385 - 387: 6(int) CompositeExtract 384 1 - 388: 6(int) SubgroupFirstInvocationKHR 387 - 389: 6(int) CompositeExtract 384 2 - 390: 6(int) SubgroupFirstInvocationKHR 389 - 391: 6(int) CompositeExtract 384 3 - 392: 6(int) SubgroupFirstInvocationKHR 391 - 393: 20(ivec4) CompositeConstruct 386 388 390 392 - 394: 203(ptr) AccessChain 75(data) 382 104 - Store 394 393 - Branch 67 - 67: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.shaderBallotAMD.comp.out b/deps/glslang/Test/baseResults/spv.shaderBallotAMD.comp.out deleted file mode 100644 index 9ea5ba00..00000000 --- a/deps/glslang/Test/baseResults/spv.shaderBallotAMD.comp.out +++ /dev/null @@ -1,1553 +0,0 @@ -spv.shaderBallotAMD.comp -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 1343 - - Capability Shader - Capability Float16 - Capability Float64 - Capability Int64 - Capability Groups - Capability Int16 - Capability StorageUniformBufferBlock16 - Extension "SPV_AMD_shader_ballot" - Extension "SPV_KHR_16bit_storage" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" - ExecutionMode 4 LocalSize 8 8 1 - Source GLSL 450 - SourceExtension "GL_AMD_gpu_shader_half_float" - SourceExtension "GL_AMD_gpu_shader_int16" - SourceExtension "GL_AMD_shader_ballot" - SourceExtension "GL_ARB_gpu_shader_int64" - Name 4 "main" - Name 21 "Buffers" - MemberName 21(Buffers) 0 "i" - MemberName 21(Buffers) 1 "uv" - MemberName 21(Buffers) 2 "fv" - MemberName 21(Buffers) 3 "dv" - MemberName 21(Buffers) 4 "i64" - MemberName 21(Buffers) 5 "u64v" - MemberName 21(Buffers) 6 "f16v" - MemberName 21(Buffers) 7 "i16v" - MemberName 21(Buffers) 8 "u16" - Name 23 "" - MemberDecorate 21(Buffers) 0 Offset 0 - MemberDecorate 21(Buffers) 1 Offset 8 - MemberDecorate 21(Buffers) 2 Offset 16 - MemberDecorate 21(Buffers) 3 Offset 32 - MemberDecorate 21(Buffers) 4 Offset 64 - MemberDecorate 21(Buffers) 5 Offset 80 - MemberDecorate 21(Buffers) 6 Offset 96 - MemberDecorate 21(Buffers) 7 Offset 104 - MemberDecorate 21(Buffers) 8 Offset 112 - Decorate 21(Buffers) BufferBlock - Decorate 23 DescriptorSet 0 - Decorate 23 Binding 0 - Decorate 1342 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypeInt 32 0 - 8: TypeVector 7(int) 2 - 9: TypeFloat 32 - 10: TypeVector 9(float) 3 - 11: TypeFloat 64 - 12: TypeVector 11(float64_t) 4 - 13: TypeInt 64 1 - 14: TypeInt 64 0 - 15: TypeVector 14(int64_t) 2 - 16: TypeFloat 16 - 17: TypeVector 16(float16_t) 3 - 18: TypeInt 16 1 - 19: TypeVector 18(int16_t) 4 - 20: TypeInt 16 0 - 21(Buffers): TypeStruct 6(int) 8(ivec2) 10(fvec3) 12(f64vec4) 13(int64_t) 15(i64vec2) 17(f16vec3) 19(i16vec4) 20(int16_t) - 22: TypePointer Uniform 21(Buffers) - 23: 22(ptr) Variable Uniform - 24: 6(int) Constant 0 - 25: TypePointer Uniform 6(int) - 28: 7(int) Constant 3 - 31: 6(int) Constant 1 - 32: TypePointer Uniform 8(ivec2) - 41: 6(int) Constant 2 - 42: TypePointer Uniform 10(fvec3) - 53: 6(int) Constant 3 - 54: TypePointer Uniform 12(f64vec4) - 67: 6(int) Constant 4 - 68: TypePointer Uniform 13(int64_t) - 73: 6(int) Constant 5 - 74: TypePointer Uniform 15(i64vec2) - 83: 6(int) Constant 6 - 84: TypePointer Uniform 17(f16vec3) - 95: 6(int) Constant 7 - 96: TypePointer Uniform 19(i16vec4) - 109: 6(int) Constant 8 - 110: TypePointer Uniform 20(int16_t) - 1339: TypeVector 7(int) 3 - 1340: 7(int) Constant 8 - 1341: 7(int) Constant 1 - 1342: 1339(ivec3) ConstantComposite 1340 1340 1341 - 4(main): 2 Function None 3 - 5: Label - 26: 25(ptr) AccessChain 23 24 - 27: 6(int) Load 26 - 29: 6(int) GroupSMin 28 Reduce 27 - 30: 25(ptr) AccessChain 23 24 - Store 30 29 - 33: 32(ptr) AccessChain 23 31 - 34: 8(ivec2) Load 33 - 35: 7(int) CompositeExtract 34 0 - 36: 7(int) GroupUMin 28 Reduce 35 - 37: 7(int) CompositeExtract 34 1 - 38: 7(int) GroupUMin 28 Reduce 37 - 39: 8(ivec2) CompositeConstruct 36 38 - 40: 32(ptr) AccessChain 23 31 - Store 40 39 - 43: 42(ptr) AccessChain 23 41 - 44: 10(fvec3) Load 43 - 45: 9(float) CompositeExtract 44 0 - 46: 9(float) GroupFMin 28 Reduce 45 - 47: 9(float) CompositeExtract 44 1 - 48: 9(float) GroupFMin 28 Reduce 47 - 49: 9(float) CompositeExtract 44 2 - 50: 9(float) GroupFMin 28 Reduce 49 - 51: 10(fvec3) CompositeConstruct 46 48 50 - 52: 42(ptr) AccessChain 23 41 - Store 52 51 - 55: 54(ptr) AccessChain 23 53 - 56: 12(f64vec4) Load 55 - 57:11(float64_t) CompositeExtract 56 0 - 58:11(float64_t) GroupFMin 28 Reduce 57 - 59:11(float64_t) CompositeExtract 56 1 - 60:11(float64_t) GroupFMin 28 Reduce 59 - 61:11(float64_t) CompositeExtract 56 2 - 62:11(float64_t) GroupFMin 28 Reduce 61 - 63:11(float64_t) CompositeExtract 56 3 - 64:11(float64_t) GroupFMin 28 Reduce 63 - 65: 12(f64vec4) CompositeConstruct 58 60 62 64 - 66: 54(ptr) AccessChain 23 53 - Store 66 65 - 69: 68(ptr) AccessChain 23 67 - 70: 13(int64_t) Load 69 - 71: 13(int64_t) GroupSMin 28 Reduce 70 - 72: 68(ptr) AccessChain 23 67 - Store 72 71 - 75: 74(ptr) AccessChain 23 73 - 76: 15(i64vec2) Load 75 - 77: 14(int64_t) CompositeExtract 76 0 - 78: 14(int64_t) GroupUMin 28 Reduce 77 - 79: 14(int64_t) CompositeExtract 76 1 - 80: 14(int64_t) GroupUMin 28 Reduce 79 - 81: 15(i64vec2) CompositeConstruct 78 80 - 82: 74(ptr) AccessChain 23 73 - Store 82 81 - 85: 84(ptr) AccessChain 23 83 - 86: 17(f16vec3) Load 85 - 87:16(float16_t) CompositeExtract 86 0 - 88:16(float16_t) GroupFMin 28 Reduce 87 - 89:16(float16_t) CompositeExtract 86 1 - 90:16(float16_t) GroupFMin 28 Reduce 89 - 91:16(float16_t) CompositeExtract 86 2 - 92:16(float16_t) GroupFMin 28 Reduce 91 - 93: 17(f16vec3) CompositeConstruct 88 90 92 - 94: 84(ptr) AccessChain 23 83 - Store 94 93 - 97: 96(ptr) AccessChain 23 95 - 98: 19(i16vec4) Load 97 - 99: 18(int16_t) CompositeExtract 98 0 - 100: 18(int16_t) GroupSMin 28 Reduce 99 - 101: 18(int16_t) CompositeExtract 98 1 - 102: 18(int16_t) GroupSMin 28 Reduce 101 - 103: 18(int16_t) CompositeExtract 98 2 - 104: 18(int16_t) GroupSMin 28 Reduce 103 - 105: 18(int16_t) CompositeExtract 98 3 - 106: 18(int16_t) GroupSMin 28 Reduce 105 - 107: 19(i16vec4) CompositeConstruct 100 102 104 106 - 108: 96(ptr) AccessChain 23 95 - Store 108 107 - 111: 110(ptr) AccessChain 23 109 - 112: 20(int16_t) Load 111 - 113: 20(int16_t) GroupUMin 28 Reduce 112 - 114: 110(ptr) AccessChain 23 109 - Store 114 113 - 115: 25(ptr) AccessChain 23 24 - 116: 6(int) Load 115 - 117: 6(int) GroupSMax 28 Reduce 116 - 118: 25(ptr) AccessChain 23 24 - Store 118 117 - 119: 32(ptr) AccessChain 23 31 - 120: 8(ivec2) Load 119 - 121: 7(int) CompositeExtract 120 0 - 122: 7(int) GroupUMax 28 Reduce 121 - 123: 7(int) CompositeExtract 120 1 - 124: 7(int) GroupUMax 28 Reduce 123 - 125: 8(ivec2) CompositeConstruct 122 124 - 126: 32(ptr) AccessChain 23 31 - Store 126 125 - 127: 42(ptr) AccessChain 23 41 - 128: 10(fvec3) Load 127 - 129: 9(float) CompositeExtract 128 0 - 130: 9(float) GroupFMax 28 Reduce 129 - 131: 9(float) CompositeExtract 128 1 - 132: 9(float) GroupFMax 28 Reduce 131 - 133: 9(float) CompositeExtract 128 2 - 134: 9(float) GroupFMax 28 Reduce 133 - 135: 10(fvec3) CompositeConstruct 130 132 134 - 136: 42(ptr) AccessChain 23 41 - Store 136 135 - 137: 54(ptr) AccessChain 23 53 - 138: 12(f64vec4) Load 137 - 139:11(float64_t) CompositeExtract 138 0 - 140:11(float64_t) GroupFMax 28 Reduce 139 - 141:11(float64_t) CompositeExtract 138 1 - 142:11(float64_t) GroupFMax 28 Reduce 141 - 143:11(float64_t) CompositeExtract 138 2 - 144:11(float64_t) GroupFMax 28 Reduce 143 - 145:11(float64_t) CompositeExtract 138 3 - 146:11(float64_t) GroupFMax 28 Reduce 145 - 147: 12(f64vec4) CompositeConstruct 140 142 144 146 - 148: 54(ptr) AccessChain 23 53 - Store 148 147 - 149: 68(ptr) AccessChain 23 67 - 150: 13(int64_t) Load 149 - 151: 13(int64_t) GroupSMax 28 Reduce 150 - 152: 68(ptr) AccessChain 23 67 - Store 152 151 - 153: 74(ptr) AccessChain 23 73 - 154: 15(i64vec2) Load 153 - 155: 14(int64_t) CompositeExtract 154 0 - 156: 14(int64_t) GroupUMax 28 Reduce 155 - 157: 14(int64_t) CompositeExtract 154 1 - 158: 14(int64_t) GroupUMax 28 Reduce 157 - 159: 15(i64vec2) CompositeConstruct 156 158 - 160: 74(ptr) AccessChain 23 73 - Store 160 159 - 161: 84(ptr) AccessChain 23 83 - 162: 17(f16vec3) Load 161 - 163:16(float16_t) CompositeExtract 162 0 - 164:16(float16_t) GroupFMax 28 Reduce 163 - 165:16(float16_t) CompositeExtract 162 1 - 166:16(float16_t) GroupFMax 28 Reduce 165 - 167:16(float16_t) CompositeExtract 162 2 - 168:16(float16_t) GroupFMax 28 Reduce 167 - 169: 17(f16vec3) CompositeConstruct 164 166 168 - 170: 84(ptr) AccessChain 23 83 - Store 170 169 - 171: 96(ptr) AccessChain 23 95 - 172: 19(i16vec4) Load 171 - 173: 18(int16_t) CompositeExtract 172 0 - 174: 18(int16_t) GroupSMax 28 Reduce 173 - 175: 18(int16_t) CompositeExtract 172 1 - 176: 18(int16_t) GroupSMax 28 Reduce 175 - 177: 18(int16_t) CompositeExtract 172 2 - 178: 18(int16_t) GroupSMax 28 Reduce 177 - 179: 18(int16_t) CompositeExtract 172 3 - 180: 18(int16_t) GroupSMax 28 Reduce 179 - 181: 19(i16vec4) CompositeConstruct 174 176 178 180 - 182: 96(ptr) AccessChain 23 95 - Store 182 181 - 183: 110(ptr) AccessChain 23 109 - 184: 20(int16_t) Load 183 - 185: 20(int16_t) GroupUMax 28 Reduce 184 - 186: 110(ptr) AccessChain 23 109 - Store 186 185 - 187: 25(ptr) AccessChain 23 24 - 188: 6(int) Load 187 - 189: 6(int) GroupIAdd 28 Reduce 188 - 190: 25(ptr) AccessChain 23 24 - Store 190 189 - 191: 32(ptr) AccessChain 23 31 - 192: 8(ivec2) Load 191 - 193: 7(int) CompositeExtract 192 0 - 194: 7(int) GroupIAdd 28 Reduce 193 - 195: 7(int) CompositeExtract 192 1 - 196: 7(int) GroupIAdd 28 Reduce 195 - 197: 8(ivec2) CompositeConstruct 194 196 - 198: 32(ptr) AccessChain 23 31 - Store 198 197 - 199: 42(ptr) AccessChain 23 41 - 200: 10(fvec3) Load 199 - 201: 9(float) CompositeExtract 200 0 - 202: 9(float) GroupFAdd 28 Reduce 201 - 203: 9(float) CompositeExtract 200 1 - 204: 9(float) GroupFAdd 28 Reduce 203 - 205: 9(float) CompositeExtract 200 2 - 206: 9(float) GroupFAdd 28 Reduce 205 - 207: 10(fvec3) CompositeConstruct 202 204 206 - 208: 42(ptr) AccessChain 23 41 - Store 208 207 - 209: 54(ptr) AccessChain 23 53 - 210: 12(f64vec4) Load 209 - 211:11(float64_t) CompositeExtract 210 0 - 212:11(float64_t) GroupFAdd 28 Reduce 211 - 213:11(float64_t) CompositeExtract 210 1 - 214:11(float64_t) GroupFAdd 28 Reduce 213 - 215:11(float64_t) CompositeExtract 210 2 - 216:11(float64_t) GroupFAdd 28 Reduce 215 - 217:11(float64_t) CompositeExtract 210 3 - 218:11(float64_t) GroupFAdd 28 Reduce 217 - 219: 12(f64vec4) CompositeConstruct 212 214 216 218 - 220: 54(ptr) AccessChain 23 53 - Store 220 219 - 221: 68(ptr) AccessChain 23 67 - 222: 13(int64_t) Load 221 - 223: 13(int64_t) GroupIAdd 28 Reduce 222 - 224: 68(ptr) AccessChain 23 67 - Store 224 223 - 225: 74(ptr) AccessChain 23 73 - 226: 15(i64vec2) Load 225 - 227: 14(int64_t) CompositeExtract 226 0 - 228: 14(int64_t) GroupIAdd 28 Reduce 227 - 229: 14(int64_t) CompositeExtract 226 1 - 230: 14(int64_t) GroupIAdd 28 Reduce 229 - 231: 15(i64vec2) CompositeConstruct 228 230 - 232: 74(ptr) AccessChain 23 73 - Store 232 231 - 233: 84(ptr) AccessChain 23 83 - 234: 17(f16vec3) Load 233 - 235:16(float16_t) CompositeExtract 234 0 - 236:16(float16_t) GroupFAdd 28 Reduce 235 - 237:16(float16_t) CompositeExtract 234 1 - 238:16(float16_t) GroupFAdd 28 Reduce 237 - 239:16(float16_t) CompositeExtract 234 2 - 240:16(float16_t) GroupFAdd 28 Reduce 239 - 241: 17(f16vec3) CompositeConstruct 236 238 240 - 242: 84(ptr) AccessChain 23 83 - Store 242 241 - 243: 96(ptr) AccessChain 23 95 - 244: 19(i16vec4) Load 243 - 245: 18(int16_t) CompositeExtract 244 0 - 246: 18(int16_t) GroupIAdd 28 Reduce 245 - 247: 18(int16_t) CompositeExtract 244 1 - 248: 18(int16_t) GroupIAdd 28 Reduce 247 - 249: 18(int16_t) CompositeExtract 244 2 - 250: 18(int16_t) GroupIAdd 28 Reduce 249 - 251: 18(int16_t) CompositeExtract 244 3 - 252: 18(int16_t) GroupIAdd 28 Reduce 251 - 253: 19(i16vec4) CompositeConstruct 246 248 250 252 - 254: 96(ptr) AccessChain 23 95 - Store 254 253 - 255: 110(ptr) AccessChain 23 109 - 256: 20(int16_t) Load 255 - 257: 20(int16_t) GroupIAdd 28 Reduce 256 - 258: 110(ptr) AccessChain 23 109 - Store 258 257 - 259: 25(ptr) AccessChain 23 24 - 260: 6(int) Load 259 - 261: 6(int) GroupSMinNonUniformAMD 28 Reduce 260 - 262: 25(ptr) AccessChain 23 24 - Store 262 261 - 263: 32(ptr) AccessChain 23 31 - 264: 8(ivec2) Load 263 - 265: 7(int) CompositeExtract 264 0 - 266: 7(int) GroupUMinNonUniformAMD 28 Reduce 265 - 267: 7(int) CompositeExtract 264 1 - 268: 7(int) GroupUMinNonUniformAMD 28 Reduce 267 - 269: 8(ivec2) CompositeConstruct 266 268 - 270: 32(ptr) AccessChain 23 31 - Store 270 269 - 271: 42(ptr) AccessChain 23 41 - 272: 10(fvec3) Load 271 - 273: 9(float) CompositeExtract 272 0 - 274: 9(float) GroupFMinNonUniformAMD 28 Reduce 273 - 275: 9(float) CompositeExtract 272 1 - 276: 9(float) GroupFMinNonUniformAMD 28 Reduce 275 - 277: 9(float) CompositeExtract 272 2 - 278: 9(float) GroupFMinNonUniformAMD 28 Reduce 277 - 279: 10(fvec3) CompositeConstruct 274 276 278 - 280: 42(ptr) AccessChain 23 41 - Store 280 279 - 281: 54(ptr) AccessChain 23 53 - 282: 12(f64vec4) Load 281 - 283:11(float64_t) CompositeExtract 282 0 - 284:11(float64_t) GroupFMinNonUniformAMD 28 Reduce 283 - 285:11(float64_t) CompositeExtract 282 1 - 286:11(float64_t) GroupFMinNonUniformAMD 28 Reduce 285 - 287:11(float64_t) CompositeExtract 282 2 - 288:11(float64_t) GroupFMinNonUniformAMD 28 Reduce 287 - 289:11(float64_t) CompositeExtract 282 3 - 290:11(float64_t) GroupFMinNonUniformAMD 28 Reduce 289 - 291: 12(f64vec4) CompositeConstruct 284 286 288 290 - 292: 54(ptr) AccessChain 23 53 - Store 292 291 - 293: 68(ptr) AccessChain 23 67 - 294: 13(int64_t) Load 293 - 295: 13(int64_t) GroupSMinNonUniformAMD 28 Reduce 294 - 296: 68(ptr) AccessChain 23 67 - Store 296 295 - 297: 74(ptr) AccessChain 23 73 - 298: 15(i64vec2) Load 297 - 299: 14(int64_t) CompositeExtract 298 0 - 300: 14(int64_t) GroupUMinNonUniformAMD 28 Reduce 299 - 301: 14(int64_t) CompositeExtract 298 1 - 302: 14(int64_t) GroupUMinNonUniformAMD 28 Reduce 301 - 303: 15(i64vec2) CompositeConstruct 300 302 - 304: 74(ptr) AccessChain 23 73 - Store 304 303 - 305: 84(ptr) AccessChain 23 83 - 306: 17(f16vec3) Load 305 - 307:16(float16_t) CompositeExtract 306 0 - 308:16(float16_t) GroupFMinNonUniformAMD 28 Reduce 307 - 309:16(float16_t) CompositeExtract 306 1 - 310:16(float16_t) GroupFMinNonUniformAMD 28 Reduce 309 - 311:16(float16_t) CompositeExtract 306 2 - 312:16(float16_t) GroupFMinNonUniformAMD 28 Reduce 311 - 313: 17(f16vec3) CompositeConstruct 308 310 312 - 314: 84(ptr) AccessChain 23 83 - Store 314 313 - 315: 96(ptr) AccessChain 23 95 - 316: 19(i16vec4) Load 315 - 317: 18(int16_t) CompositeExtract 316 0 - 318: 18(int16_t) GroupSMinNonUniformAMD 28 Reduce 317 - 319: 18(int16_t) CompositeExtract 316 1 - 320: 18(int16_t) GroupSMinNonUniformAMD 28 Reduce 319 - 321: 18(int16_t) CompositeExtract 316 2 - 322: 18(int16_t) GroupSMinNonUniformAMD 28 Reduce 321 - 323: 18(int16_t) CompositeExtract 316 3 - 324: 18(int16_t) GroupSMinNonUniformAMD 28 Reduce 323 - 325: 19(i16vec4) CompositeConstruct 318 320 322 324 - 326: 96(ptr) AccessChain 23 95 - Store 326 325 - 327: 110(ptr) AccessChain 23 109 - 328: 20(int16_t) Load 327 - 329: 20(int16_t) GroupUMinNonUniformAMD 28 Reduce 328 - 330: 110(ptr) AccessChain 23 109 - Store 330 329 - 331: 25(ptr) AccessChain 23 24 - 332: 6(int) Load 331 - 333: 6(int) GroupSMaxNonUniformAMD 28 Reduce 332 - 334: 25(ptr) AccessChain 23 24 - Store 334 333 - 335: 32(ptr) AccessChain 23 31 - 336: 8(ivec2) Load 335 - 337: 7(int) CompositeExtract 336 0 - 338: 7(int) GroupUMaxNonUniformAMD 28 Reduce 337 - 339: 7(int) CompositeExtract 336 1 - 340: 7(int) GroupUMaxNonUniformAMD 28 Reduce 339 - 341: 8(ivec2) CompositeConstruct 338 340 - 342: 32(ptr) AccessChain 23 31 - Store 342 341 - 343: 42(ptr) AccessChain 23 41 - 344: 10(fvec3) Load 343 - 345: 9(float) CompositeExtract 344 0 - 346: 9(float) GroupFMaxNonUniformAMD 28 Reduce 345 - 347: 9(float) CompositeExtract 344 1 - 348: 9(float) GroupFMaxNonUniformAMD 28 Reduce 347 - 349: 9(float) CompositeExtract 344 2 - 350: 9(float) GroupFMaxNonUniformAMD 28 Reduce 349 - 351: 10(fvec3) CompositeConstruct 346 348 350 - 352: 42(ptr) AccessChain 23 41 - Store 352 351 - 353: 54(ptr) AccessChain 23 53 - 354: 12(f64vec4) Load 353 - 355:11(float64_t) CompositeExtract 354 0 - 356:11(float64_t) GroupFMaxNonUniformAMD 28 Reduce 355 - 357:11(float64_t) CompositeExtract 354 1 - 358:11(float64_t) GroupFMaxNonUniformAMD 28 Reduce 357 - 359:11(float64_t) CompositeExtract 354 2 - 360:11(float64_t) GroupFMaxNonUniformAMD 28 Reduce 359 - 361:11(float64_t) CompositeExtract 354 3 - 362:11(float64_t) GroupFMaxNonUniformAMD 28 Reduce 361 - 363: 12(f64vec4) CompositeConstruct 356 358 360 362 - 364: 54(ptr) AccessChain 23 53 - Store 364 363 - 365: 68(ptr) AccessChain 23 67 - 366: 13(int64_t) Load 365 - 367: 13(int64_t) GroupSMaxNonUniformAMD 28 Reduce 366 - 368: 68(ptr) AccessChain 23 67 - Store 368 367 - 369: 74(ptr) AccessChain 23 73 - 370: 15(i64vec2) Load 369 - 371: 14(int64_t) CompositeExtract 370 0 - 372: 14(int64_t) GroupUMaxNonUniformAMD 28 Reduce 371 - 373: 14(int64_t) CompositeExtract 370 1 - 374: 14(int64_t) GroupUMaxNonUniformAMD 28 Reduce 373 - 375: 15(i64vec2) CompositeConstruct 372 374 - 376: 74(ptr) AccessChain 23 73 - Store 376 375 - 377: 84(ptr) AccessChain 23 83 - 378: 17(f16vec3) Load 377 - 379:16(float16_t) CompositeExtract 378 0 - 380:16(float16_t) GroupFMaxNonUniformAMD 28 Reduce 379 - 381:16(float16_t) CompositeExtract 378 1 - 382:16(float16_t) GroupFMaxNonUniformAMD 28 Reduce 381 - 383:16(float16_t) CompositeExtract 378 2 - 384:16(float16_t) GroupFMaxNonUniformAMD 28 Reduce 383 - 385: 17(f16vec3) CompositeConstruct 380 382 384 - 386: 84(ptr) AccessChain 23 83 - Store 386 385 - 387: 96(ptr) AccessChain 23 95 - 388: 19(i16vec4) Load 387 - 389: 18(int16_t) CompositeExtract 388 0 - 390: 18(int16_t) GroupSMaxNonUniformAMD 28 Reduce 389 - 391: 18(int16_t) CompositeExtract 388 1 - 392: 18(int16_t) GroupSMaxNonUniformAMD 28 Reduce 391 - 393: 18(int16_t) CompositeExtract 388 2 - 394: 18(int16_t) GroupSMaxNonUniformAMD 28 Reduce 393 - 395: 18(int16_t) CompositeExtract 388 3 - 396: 18(int16_t) GroupSMaxNonUniformAMD 28 Reduce 395 - 397: 19(i16vec4) CompositeConstruct 390 392 394 396 - 398: 96(ptr) AccessChain 23 95 - Store 398 397 - 399: 110(ptr) AccessChain 23 109 - 400: 20(int16_t) Load 399 - 401: 20(int16_t) GroupUMaxNonUniformAMD 28 Reduce 400 - 402: 110(ptr) AccessChain 23 109 - Store 402 401 - 403: 25(ptr) AccessChain 23 24 - 404: 6(int) Load 403 - 405: 6(int) GroupIAddNonUniformAMD 28 Reduce 404 - 406: 25(ptr) AccessChain 23 24 - Store 406 405 - 407: 32(ptr) AccessChain 23 31 - 408: 8(ivec2) Load 407 - 409: 7(int) CompositeExtract 408 0 - 410: 7(int) GroupIAddNonUniformAMD 28 Reduce 409 - 411: 7(int) CompositeExtract 408 1 - 412: 7(int) GroupIAddNonUniformAMD 28 Reduce 411 - 413: 8(ivec2) CompositeConstruct 410 412 - 414: 32(ptr) AccessChain 23 31 - Store 414 413 - 415: 42(ptr) AccessChain 23 41 - 416: 10(fvec3) Load 415 - 417: 9(float) CompositeExtract 416 0 - 418: 9(float) GroupFAddNonUniformAMD 28 Reduce 417 - 419: 9(float) CompositeExtract 416 1 - 420: 9(float) GroupFAddNonUniformAMD 28 Reduce 419 - 421: 9(float) CompositeExtract 416 2 - 422: 9(float) GroupFAddNonUniformAMD 28 Reduce 421 - 423: 10(fvec3) CompositeConstruct 418 420 422 - 424: 42(ptr) AccessChain 23 41 - Store 424 423 - 425: 54(ptr) AccessChain 23 53 - 426: 12(f64vec4) Load 425 - 427:11(float64_t) CompositeExtract 426 0 - 428:11(float64_t) GroupFAddNonUniformAMD 28 Reduce 427 - 429:11(float64_t) CompositeExtract 426 1 - 430:11(float64_t) GroupFAddNonUniformAMD 28 Reduce 429 - 431:11(float64_t) CompositeExtract 426 2 - 432:11(float64_t) GroupFAddNonUniformAMD 28 Reduce 431 - 433:11(float64_t) CompositeExtract 426 3 - 434:11(float64_t) GroupFAddNonUniformAMD 28 Reduce 433 - 435: 12(f64vec4) CompositeConstruct 428 430 432 434 - 436: 54(ptr) AccessChain 23 53 - Store 436 435 - 437: 68(ptr) AccessChain 23 67 - 438: 13(int64_t) Load 437 - 439: 13(int64_t) GroupIAddNonUniformAMD 28 Reduce 438 - 440: 68(ptr) AccessChain 23 67 - Store 440 439 - 441: 74(ptr) AccessChain 23 73 - 442: 15(i64vec2) Load 441 - 443: 14(int64_t) CompositeExtract 442 0 - 444: 14(int64_t) GroupIAddNonUniformAMD 28 Reduce 443 - 445: 14(int64_t) CompositeExtract 442 1 - 446: 14(int64_t) GroupIAddNonUniformAMD 28 Reduce 445 - 447: 15(i64vec2) CompositeConstruct 444 446 - 448: 74(ptr) AccessChain 23 73 - Store 448 447 - 449: 84(ptr) AccessChain 23 83 - 450: 17(f16vec3) Load 449 - 451:16(float16_t) CompositeExtract 450 0 - 452:16(float16_t) GroupFAddNonUniformAMD 28 Reduce 451 - 453:16(float16_t) CompositeExtract 450 1 - 454:16(float16_t) GroupFAddNonUniformAMD 28 Reduce 453 - 455:16(float16_t) CompositeExtract 450 2 - 456:16(float16_t) GroupFAddNonUniformAMD 28 Reduce 455 - 457: 17(f16vec3) CompositeConstruct 452 454 456 - 458: 84(ptr) AccessChain 23 83 - Store 458 457 - 459: 96(ptr) AccessChain 23 95 - 460: 19(i16vec4) Load 459 - 461: 18(int16_t) CompositeExtract 460 0 - 462: 18(int16_t) GroupIAddNonUniformAMD 28 Reduce 461 - 463: 18(int16_t) CompositeExtract 460 1 - 464: 18(int16_t) GroupIAddNonUniformAMD 28 Reduce 463 - 465: 18(int16_t) CompositeExtract 460 2 - 466: 18(int16_t) GroupIAddNonUniformAMD 28 Reduce 465 - 467: 18(int16_t) CompositeExtract 460 3 - 468: 18(int16_t) GroupIAddNonUniformAMD 28 Reduce 467 - 469: 19(i16vec4) CompositeConstruct 462 464 466 468 - 470: 96(ptr) AccessChain 23 95 - Store 470 469 - 471: 110(ptr) AccessChain 23 109 - 472: 20(int16_t) Load 471 - 473: 20(int16_t) GroupIAddNonUniformAMD 28 Reduce 472 - 474: 110(ptr) AccessChain 23 109 - Store 474 473 - 475: 25(ptr) AccessChain 23 24 - 476: 6(int) Load 475 - 477: 6(int) GroupSMin 28 InclusiveScan 476 - 478: 25(ptr) AccessChain 23 24 - Store 478 477 - 479: 32(ptr) AccessChain 23 31 - 480: 8(ivec2) Load 479 - 481: 7(int) CompositeExtract 480 0 - 482: 7(int) GroupUMin 28 InclusiveScan 481 - 483: 7(int) CompositeExtract 480 1 - 484: 7(int) GroupUMin 28 InclusiveScan 483 - 485: 8(ivec2) CompositeConstruct 482 484 - 486: 32(ptr) AccessChain 23 31 - Store 486 485 - 487: 42(ptr) AccessChain 23 41 - 488: 10(fvec3) Load 487 - 489: 9(float) CompositeExtract 488 0 - 490: 9(float) GroupFMin 28 InclusiveScan 489 - 491: 9(float) CompositeExtract 488 1 - 492: 9(float) GroupFMin 28 InclusiveScan 491 - 493: 9(float) CompositeExtract 488 2 - 494: 9(float) GroupFMin 28 InclusiveScan 493 - 495: 10(fvec3) CompositeConstruct 490 492 494 - 496: 42(ptr) AccessChain 23 41 - Store 496 495 - 497: 54(ptr) AccessChain 23 53 - 498: 12(f64vec4) Load 497 - 499:11(float64_t) CompositeExtract 498 0 - 500:11(float64_t) GroupFMin 28 InclusiveScan 499 - 501:11(float64_t) CompositeExtract 498 1 - 502:11(float64_t) GroupFMin 28 InclusiveScan 501 - 503:11(float64_t) CompositeExtract 498 2 - 504:11(float64_t) GroupFMin 28 InclusiveScan 503 - 505:11(float64_t) CompositeExtract 498 3 - 506:11(float64_t) GroupFMin 28 InclusiveScan 505 - 507: 12(f64vec4) CompositeConstruct 500 502 504 506 - 508: 54(ptr) AccessChain 23 53 - Store 508 507 - 509: 68(ptr) AccessChain 23 67 - 510: 13(int64_t) Load 509 - 511: 13(int64_t) GroupSMin 28 InclusiveScan 510 - 512: 68(ptr) AccessChain 23 67 - Store 512 511 - 513: 74(ptr) AccessChain 23 73 - 514: 15(i64vec2) Load 513 - 515: 14(int64_t) CompositeExtract 514 0 - 516: 14(int64_t) GroupUMin 28 InclusiveScan 515 - 517: 14(int64_t) CompositeExtract 514 1 - 518: 14(int64_t) GroupUMin 28 InclusiveScan 517 - 519: 15(i64vec2) CompositeConstruct 516 518 - 520: 74(ptr) AccessChain 23 73 - Store 520 519 - 521: 84(ptr) AccessChain 23 83 - 522: 17(f16vec3) Load 521 - 523:16(float16_t) CompositeExtract 522 0 - 524:16(float16_t) GroupFMin 28 InclusiveScan 523 - 525:16(float16_t) CompositeExtract 522 1 - 526:16(float16_t) GroupFMin 28 InclusiveScan 525 - 527:16(float16_t) CompositeExtract 522 2 - 528:16(float16_t) GroupFMin 28 InclusiveScan 527 - 529: 17(f16vec3) CompositeConstruct 524 526 528 - 530: 84(ptr) AccessChain 23 83 - Store 530 529 - 531: 96(ptr) AccessChain 23 95 - 532: 19(i16vec4) Load 531 - 533: 18(int16_t) CompositeExtract 532 0 - 534: 18(int16_t) GroupSMin 28 InclusiveScan 533 - 535: 18(int16_t) CompositeExtract 532 1 - 536: 18(int16_t) GroupSMin 28 InclusiveScan 535 - 537: 18(int16_t) CompositeExtract 532 2 - 538: 18(int16_t) GroupSMin 28 InclusiveScan 537 - 539: 18(int16_t) CompositeExtract 532 3 - 540: 18(int16_t) GroupSMin 28 InclusiveScan 539 - 541: 19(i16vec4) CompositeConstruct 534 536 538 540 - 542: 96(ptr) AccessChain 23 95 - Store 542 541 - 543: 110(ptr) AccessChain 23 109 - 544: 20(int16_t) Load 543 - 545: 20(int16_t) GroupUMin 28 InclusiveScan 544 - 546: 110(ptr) AccessChain 23 109 - Store 546 545 - 547: 25(ptr) AccessChain 23 24 - 548: 6(int) Load 547 - 549: 6(int) GroupSMax 28 InclusiveScan 548 - 550: 25(ptr) AccessChain 23 24 - Store 550 549 - 551: 32(ptr) AccessChain 23 31 - 552: 8(ivec2) Load 551 - 553: 7(int) CompositeExtract 552 0 - 554: 7(int) GroupUMax 28 InclusiveScan 553 - 555: 7(int) CompositeExtract 552 1 - 556: 7(int) GroupUMax 28 InclusiveScan 555 - 557: 8(ivec2) CompositeConstruct 554 556 - 558: 32(ptr) AccessChain 23 31 - Store 558 557 - 559: 42(ptr) AccessChain 23 41 - 560: 10(fvec3) Load 559 - 561: 9(float) CompositeExtract 560 0 - 562: 9(float) GroupFMax 28 InclusiveScan 561 - 563: 9(float) CompositeExtract 560 1 - 564: 9(float) GroupFMax 28 InclusiveScan 563 - 565: 9(float) CompositeExtract 560 2 - 566: 9(float) GroupFMax 28 InclusiveScan 565 - 567: 10(fvec3) CompositeConstruct 562 564 566 - 568: 42(ptr) AccessChain 23 41 - Store 568 567 - 569: 54(ptr) AccessChain 23 53 - 570: 12(f64vec4) Load 569 - 571:11(float64_t) CompositeExtract 570 0 - 572:11(float64_t) GroupFMax 28 InclusiveScan 571 - 573:11(float64_t) CompositeExtract 570 1 - 574:11(float64_t) GroupFMax 28 InclusiveScan 573 - 575:11(float64_t) CompositeExtract 570 2 - 576:11(float64_t) GroupFMax 28 InclusiveScan 575 - 577:11(float64_t) CompositeExtract 570 3 - 578:11(float64_t) GroupFMax 28 InclusiveScan 577 - 579: 12(f64vec4) CompositeConstruct 572 574 576 578 - 580: 54(ptr) AccessChain 23 53 - Store 580 579 - 581: 68(ptr) AccessChain 23 67 - 582: 13(int64_t) Load 581 - 583: 13(int64_t) GroupSMax 28 InclusiveScan 582 - 584: 68(ptr) AccessChain 23 67 - Store 584 583 - 585: 74(ptr) AccessChain 23 73 - 586: 15(i64vec2) Load 585 - 587: 14(int64_t) CompositeExtract 586 0 - 588: 14(int64_t) GroupUMax 28 InclusiveScan 587 - 589: 14(int64_t) CompositeExtract 586 1 - 590: 14(int64_t) GroupUMax 28 InclusiveScan 589 - 591: 15(i64vec2) CompositeConstruct 588 590 - 592: 74(ptr) AccessChain 23 73 - Store 592 591 - 593: 84(ptr) AccessChain 23 83 - 594: 17(f16vec3) Load 593 - 595:16(float16_t) CompositeExtract 594 0 - 596:16(float16_t) GroupFMax 28 InclusiveScan 595 - 597:16(float16_t) CompositeExtract 594 1 - 598:16(float16_t) GroupFMax 28 InclusiveScan 597 - 599:16(float16_t) CompositeExtract 594 2 - 600:16(float16_t) GroupFMax 28 InclusiveScan 599 - 601: 17(f16vec3) CompositeConstruct 596 598 600 - 602: 84(ptr) AccessChain 23 83 - Store 602 601 - 603: 96(ptr) AccessChain 23 95 - 604: 19(i16vec4) Load 603 - 605: 18(int16_t) CompositeExtract 604 0 - 606: 18(int16_t) GroupSMax 28 InclusiveScan 605 - 607: 18(int16_t) CompositeExtract 604 1 - 608: 18(int16_t) GroupSMax 28 InclusiveScan 607 - 609: 18(int16_t) CompositeExtract 604 2 - 610: 18(int16_t) GroupSMax 28 InclusiveScan 609 - 611: 18(int16_t) CompositeExtract 604 3 - 612: 18(int16_t) GroupSMax 28 InclusiveScan 611 - 613: 19(i16vec4) CompositeConstruct 606 608 610 612 - 614: 96(ptr) AccessChain 23 95 - Store 614 613 - 615: 110(ptr) AccessChain 23 109 - 616: 20(int16_t) Load 615 - 617: 20(int16_t) GroupUMax 28 InclusiveScan 616 - 618: 110(ptr) AccessChain 23 109 - Store 618 617 - 619: 25(ptr) AccessChain 23 24 - 620: 6(int) Load 619 - 621: 6(int) GroupIAdd 28 InclusiveScan 620 - 622: 25(ptr) AccessChain 23 24 - Store 622 621 - 623: 32(ptr) AccessChain 23 31 - 624: 8(ivec2) Load 623 - 625: 7(int) CompositeExtract 624 0 - 626: 7(int) GroupIAdd 28 InclusiveScan 625 - 627: 7(int) CompositeExtract 624 1 - 628: 7(int) GroupIAdd 28 InclusiveScan 627 - 629: 8(ivec2) CompositeConstruct 626 628 - 630: 32(ptr) AccessChain 23 31 - Store 630 629 - 631: 42(ptr) AccessChain 23 41 - 632: 10(fvec3) Load 631 - 633: 9(float) CompositeExtract 632 0 - 634: 9(float) GroupFAdd 28 InclusiveScan 633 - 635: 9(float) CompositeExtract 632 1 - 636: 9(float) GroupFAdd 28 InclusiveScan 635 - 637: 9(float) CompositeExtract 632 2 - 638: 9(float) GroupFAdd 28 InclusiveScan 637 - 639: 10(fvec3) CompositeConstruct 634 636 638 - 640: 42(ptr) AccessChain 23 41 - Store 640 639 - 641: 54(ptr) AccessChain 23 53 - 642: 12(f64vec4) Load 641 - 643:11(float64_t) CompositeExtract 642 0 - 644:11(float64_t) GroupFAdd 28 InclusiveScan 643 - 645:11(float64_t) CompositeExtract 642 1 - 646:11(float64_t) GroupFAdd 28 InclusiveScan 645 - 647:11(float64_t) CompositeExtract 642 2 - 648:11(float64_t) GroupFAdd 28 InclusiveScan 647 - 649:11(float64_t) CompositeExtract 642 3 - 650:11(float64_t) GroupFAdd 28 InclusiveScan 649 - 651: 12(f64vec4) CompositeConstruct 644 646 648 650 - 652: 54(ptr) AccessChain 23 53 - Store 652 651 - 653: 68(ptr) AccessChain 23 67 - 654: 13(int64_t) Load 653 - 655: 13(int64_t) GroupIAdd 28 InclusiveScan 654 - 656: 68(ptr) AccessChain 23 67 - Store 656 655 - 657: 74(ptr) AccessChain 23 73 - 658: 15(i64vec2) Load 657 - 659: 14(int64_t) CompositeExtract 658 0 - 660: 14(int64_t) GroupIAdd 28 InclusiveScan 659 - 661: 14(int64_t) CompositeExtract 658 1 - 662: 14(int64_t) GroupIAdd 28 InclusiveScan 661 - 663: 15(i64vec2) CompositeConstruct 660 662 - 664: 74(ptr) AccessChain 23 73 - Store 664 663 - 665: 84(ptr) AccessChain 23 83 - 666: 17(f16vec3) Load 665 - 667:16(float16_t) CompositeExtract 666 0 - 668:16(float16_t) GroupFAdd 28 InclusiveScan 667 - 669:16(float16_t) CompositeExtract 666 1 - 670:16(float16_t) GroupFAdd 28 InclusiveScan 669 - 671:16(float16_t) CompositeExtract 666 2 - 672:16(float16_t) GroupFAdd 28 InclusiveScan 671 - 673: 17(f16vec3) CompositeConstruct 668 670 672 - 674: 84(ptr) AccessChain 23 83 - Store 674 673 - 675: 96(ptr) AccessChain 23 95 - 676: 19(i16vec4) Load 675 - 677: 18(int16_t) CompositeExtract 676 0 - 678: 18(int16_t) GroupIAdd 28 InclusiveScan 677 - 679: 18(int16_t) CompositeExtract 676 1 - 680: 18(int16_t) GroupIAdd 28 InclusiveScan 679 - 681: 18(int16_t) CompositeExtract 676 2 - 682: 18(int16_t) GroupIAdd 28 InclusiveScan 681 - 683: 18(int16_t) CompositeExtract 676 3 - 684: 18(int16_t) GroupIAdd 28 InclusiveScan 683 - 685: 19(i16vec4) CompositeConstruct 678 680 682 684 - 686: 96(ptr) AccessChain 23 95 - Store 686 685 - 687: 110(ptr) AccessChain 23 109 - 688: 20(int16_t) Load 687 - 689: 20(int16_t) GroupIAdd 28 InclusiveScan 688 - 690: 110(ptr) AccessChain 23 109 - Store 690 689 - 691: 25(ptr) AccessChain 23 24 - 692: 6(int) Load 691 - 693: 6(int) GroupSMin 28 ExclusiveScan 692 - 694: 25(ptr) AccessChain 23 24 - Store 694 693 - 695: 32(ptr) AccessChain 23 31 - 696: 8(ivec2) Load 695 - 697: 7(int) CompositeExtract 696 0 - 698: 7(int) GroupUMin 28 ExclusiveScan 697 - 699: 7(int) CompositeExtract 696 1 - 700: 7(int) GroupUMin 28 ExclusiveScan 699 - 701: 8(ivec2) CompositeConstruct 698 700 - 702: 32(ptr) AccessChain 23 31 - Store 702 701 - 703: 42(ptr) AccessChain 23 41 - 704: 10(fvec3) Load 703 - 705: 9(float) CompositeExtract 704 0 - 706: 9(float) GroupFMin 28 ExclusiveScan 705 - 707: 9(float) CompositeExtract 704 1 - 708: 9(float) GroupFMin 28 ExclusiveScan 707 - 709: 9(float) CompositeExtract 704 2 - 710: 9(float) GroupFMin 28 ExclusiveScan 709 - 711: 10(fvec3) CompositeConstruct 706 708 710 - 712: 42(ptr) AccessChain 23 41 - Store 712 711 - 713: 54(ptr) AccessChain 23 53 - 714: 12(f64vec4) Load 713 - 715:11(float64_t) CompositeExtract 714 0 - 716:11(float64_t) GroupFMin 28 ExclusiveScan 715 - 717:11(float64_t) CompositeExtract 714 1 - 718:11(float64_t) GroupFMin 28 ExclusiveScan 717 - 719:11(float64_t) CompositeExtract 714 2 - 720:11(float64_t) GroupFMin 28 ExclusiveScan 719 - 721:11(float64_t) CompositeExtract 714 3 - 722:11(float64_t) GroupFMin 28 ExclusiveScan 721 - 723: 12(f64vec4) CompositeConstruct 716 718 720 722 - 724: 54(ptr) AccessChain 23 53 - Store 724 723 - 725: 68(ptr) AccessChain 23 67 - 726: 13(int64_t) Load 725 - 727: 13(int64_t) GroupSMin 28 ExclusiveScan 726 - 728: 68(ptr) AccessChain 23 67 - Store 728 727 - 729: 74(ptr) AccessChain 23 73 - 730: 15(i64vec2) Load 729 - 731: 14(int64_t) CompositeExtract 730 0 - 732: 14(int64_t) GroupUMin 28 ExclusiveScan 731 - 733: 14(int64_t) CompositeExtract 730 1 - 734: 14(int64_t) GroupUMin 28 ExclusiveScan 733 - 735: 15(i64vec2) CompositeConstruct 732 734 - 736: 74(ptr) AccessChain 23 73 - Store 736 735 - 737: 84(ptr) AccessChain 23 83 - 738: 17(f16vec3) Load 737 - 739:16(float16_t) CompositeExtract 738 0 - 740:16(float16_t) GroupFMin 28 ExclusiveScan 739 - 741:16(float16_t) CompositeExtract 738 1 - 742:16(float16_t) GroupFMin 28 ExclusiveScan 741 - 743:16(float16_t) CompositeExtract 738 2 - 744:16(float16_t) GroupFMin 28 ExclusiveScan 743 - 745: 17(f16vec3) CompositeConstruct 740 742 744 - 746: 84(ptr) AccessChain 23 83 - Store 746 745 - 747: 96(ptr) AccessChain 23 95 - 748: 19(i16vec4) Load 747 - 749: 18(int16_t) CompositeExtract 748 0 - 750: 18(int16_t) GroupSMin 28 ExclusiveScan 749 - 751: 18(int16_t) CompositeExtract 748 1 - 752: 18(int16_t) GroupSMin 28 ExclusiveScan 751 - 753: 18(int16_t) CompositeExtract 748 2 - 754: 18(int16_t) GroupSMin 28 ExclusiveScan 753 - 755: 18(int16_t) CompositeExtract 748 3 - 756: 18(int16_t) GroupSMin 28 ExclusiveScan 755 - 757: 19(i16vec4) CompositeConstruct 750 752 754 756 - 758: 96(ptr) AccessChain 23 95 - Store 758 757 - 759: 110(ptr) AccessChain 23 109 - 760: 20(int16_t) Load 759 - 761: 20(int16_t) GroupUMin 28 ExclusiveScan 760 - 762: 110(ptr) AccessChain 23 109 - Store 762 761 - 763: 25(ptr) AccessChain 23 24 - 764: 6(int) Load 763 - 765: 6(int) GroupSMax 28 ExclusiveScan 764 - 766: 25(ptr) AccessChain 23 24 - Store 766 765 - 767: 32(ptr) AccessChain 23 31 - 768: 8(ivec2) Load 767 - 769: 7(int) CompositeExtract 768 0 - 770: 7(int) GroupUMax 28 ExclusiveScan 769 - 771: 7(int) CompositeExtract 768 1 - 772: 7(int) GroupUMax 28 ExclusiveScan 771 - 773: 8(ivec2) CompositeConstruct 770 772 - 774: 32(ptr) AccessChain 23 31 - Store 774 773 - 775: 42(ptr) AccessChain 23 41 - 776: 10(fvec3) Load 775 - 777: 9(float) CompositeExtract 776 0 - 778: 9(float) GroupFMax 28 ExclusiveScan 777 - 779: 9(float) CompositeExtract 776 1 - 780: 9(float) GroupFMax 28 ExclusiveScan 779 - 781: 9(float) CompositeExtract 776 2 - 782: 9(float) GroupFMax 28 ExclusiveScan 781 - 783: 10(fvec3) CompositeConstruct 778 780 782 - 784: 42(ptr) AccessChain 23 41 - Store 784 783 - 785: 54(ptr) AccessChain 23 53 - 786: 12(f64vec4) Load 785 - 787:11(float64_t) CompositeExtract 786 0 - 788:11(float64_t) GroupFMax 28 ExclusiveScan 787 - 789:11(float64_t) CompositeExtract 786 1 - 790:11(float64_t) GroupFMax 28 ExclusiveScan 789 - 791:11(float64_t) CompositeExtract 786 2 - 792:11(float64_t) GroupFMax 28 ExclusiveScan 791 - 793:11(float64_t) CompositeExtract 786 3 - 794:11(float64_t) GroupFMax 28 ExclusiveScan 793 - 795: 12(f64vec4) CompositeConstruct 788 790 792 794 - 796: 54(ptr) AccessChain 23 53 - Store 796 795 - 797: 68(ptr) AccessChain 23 67 - 798: 13(int64_t) Load 797 - 799: 13(int64_t) GroupSMax 28 ExclusiveScan 798 - 800: 68(ptr) AccessChain 23 67 - Store 800 799 - 801: 74(ptr) AccessChain 23 73 - 802: 15(i64vec2) Load 801 - 803: 14(int64_t) CompositeExtract 802 0 - 804: 14(int64_t) GroupUMax 28 ExclusiveScan 803 - 805: 14(int64_t) CompositeExtract 802 1 - 806: 14(int64_t) GroupUMax 28 ExclusiveScan 805 - 807: 15(i64vec2) CompositeConstruct 804 806 - 808: 74(ptr) AccessChain 23 73 - Store 808 807 - 809: 84(ptr) AccessChain 23 83 - 810: 17(f16vec3) Load 809 - 811:16(float16_t) CompositeExtract 810 0 - 812:16(float16_t) GroupFMax 28 ExclusiveScan 811 - 813:16(float16_t) CompositeExtract 810 1 - 814:16(float16_t) GroupFMax 28 ExclusiveScan 813 - 815:16(float16_t) CompositeExtract 810 2 - 816:16(float16_t) GroupFMax 28 ExclusiveScan 815 - 817: 17(f16vec3) CompositeConstruct 812 814 816 - 818: 84(ptr) AccessChain 23 83 - Store 818 817 - 819: 96(ptr) AccessChain 23 95 - 820: 19(i16vec4) Load 819 - 821: 18(int16_t) CompositeExtract 820 0 - 822: 18(int16_t) GroupSMax 28 ExclusiveScan 821 - 823: 18(int16_t) CompositeExtract 820 1 - 824: 18(int16_t) GroupSMax 28 ExclusiveScan 823 - 825: 18(int16_t) CompositeExtract 820 2 - 826: 18(int16_t) GroupSMax 28 ExclusiveScan 825 - 827: 18(int16_t) CompositeExtract 820 3 - 828: 18(int16_t) GroupSMax 28 ExclusiveScan 827 - 829: 19(i16vec4) CompositeConstruct 822 824 826 828 - 830: 96(ptr) AccessChain 23 95 - Store 830 829 - 831: 110(ptr) AccessChain 23 109 - 832: 20(int16_t) Load 831 - 833: 20(int16_t) GroupUMax 28 ExclusiveScan 832 - 834: 110(ptr) AccessChain 23 109 - Store 834 833 - 835: 25(ptr) AccessChain 23 24 - 836: 6(int) Load 835 - 837: 6(int) GroupIAdd 28 ExclusiveScan 836 - 838: 25(ptr) AccessChain 23 24 - Store 838 837 - 839: 32(ptr) AccessChain 23 31 - 840: 8(ivec2) Load 839 - 841: 7(int) CompositeExtract 840 0 - 842: 7(int) GroupIAdd 28 ExclusiveScan 841 - 843: 7(int) CompositeExtract 840 1 - 844: 7(int) GroupIAdd 28 ExclusiveScan 843 - 845: 8(ivec2) CompositeConstruct 842 844 - 846: 32(ptr) AccessChain 23 31 - Store 846 845 - 847: 42(ptr) AccessChain 23 41 - 848: 10(fvec3) Load 847 - 849: 9(float) CompositeExtract 848 0 - 850: 9(float) GroupFAdd 28 ExclusiveScan 849 - 851: 9(float) CompositeExtract 848 1 - 852: 9(float) GroupFAdd 28 ExclusiveScan 851 - 853: 9(float) CompositeExtract 848 2 - 854: 9(float) GroupFAdd 28 ExclusiveScan 853 - 855: 10(fvec3) CompositeConstruct 850 852 854 - 856: 42(ptr) AccessChain 23 41 - Store 856 855 - 857: 54(ptr) AccessChain 23 53 - 858: 12(f64vec4) Load 857 - 859:11(float64_t) CompositeExtract 858 0 - 860:11(float64_t) GroupFAdd 28 ExclusiveScan 859 - 861:11(float64_t) CompositeExtract 858 1 - 862:11(float64_t) GroupFAdd 28 ExclusiveScan 861 - 863:11(float64_t) CompositeExtract 858 2 - 864:11(float64_t) GroupFAdd 28 ExclusiveScan 863 - 865:11(float64_t) CompositeExtract 858 3 - 866:11(float64_t) GroupFAdd 28 ExclusiveScan 865 - 867: 12(f64vec4) CompositeConstruct 860 862 864 866 - 868: 54(ptr) AccessChain 23 53 - Store 868 867 - 869: 68(ptr) AccessChain 23 67 - 870: 13(int64_t) Load 869 - 871: 13(int64_t) GroupIAdd 28 ExclusiveScan 870 - 872: 68(ptr) AccessChain 23 67 - Store 872 871 - 873: 74(ptr) AccessChain 23 73 - 874: 15(i64vec2) Load 873 - 875: 14(int64_t) CompositeExtract 874 0 - 876: 14(int64_t) GroupIAdd 28 ExclusiveScan 875 - 877: 14(int64_t) CompositeExtract 874 1 - 878: 14(int64_t) GroupIAdd 28 ExclusiveScan 877 - 879: 15(i64vec2) CompositeConstruct 876 878 - 880: 74(ptr) AccessChain 23 73 - Store 880 879 - 881: 84(ptr) AccessChain 23 83 - 882: 17(f16vec3) Load 881 - 883:16(float16_t) CompositeExtract 882 0 - 884:16(float16_t) GroupFAdd 28 ExclusiveScan 883 - 885:16(float16_t) CompositeExtract 882 1 - 886:16(float16_t) GroupFAdd 28 ExclusiveScan 885 - 887:16(float16_t) CompositeExtract 882 2 - 888:16(float16_t) GroupFAdd 28 ExclusiveScan 887 - 889: 17(f16vec3) CompositeConstruct 884 886 888 - 890: 84(ptr) AccessChain 23 83 - Store 890 889 - 891: 96(ptr) AccessChain 23 95 - 892: 19(i16vec4) Load 891 - 893: 18(int16_t) CompositeExtract 892 0 - 894: 18(int16_t) GroupIAdd 28 ExclusiveScan 893 - 895: 18(int16_t) CompositeExtract 892 1 - 896: 18(int16_t) GroupIAdd 28 ExclusiveScan 895 - 897: 18(int16_t) CompositeExtract 892 2 - 898: 18(int16_t) GroupIAdd 28 ExclusiveScan 897 - 899: 18(int16_t) CompositeExtract 892 3 - 900: 18(int16_t) GroupIAdd 28 ExclusiveScan 899 - 901: 19(i16vec4) CompositeConstruct 894 896 898 900 - 902: 96(ptr) AccessChain 23 95 - Store 902 901 - 903: 110(ptr) AccessChain 23 109 - 904: 20(int16_t) Load 903 - 905: 20(int16_t) GroupIAdd 28 ExclusiveScan 904 - 906: 110(ptr) AccessChain 23 109 - Store 906 905 - 907: 25(ptr) AccessChain 23 24 - 908: 6(int) Load 907 - 909: 6(int) GroupSMinNonUniformAMD 28 InclusiveScan 908 - 910: 25(ptr) AccessChain 23 24 - Store 910 909 - 911: 32(ptr) AccessChain 23 31 - 912: 8(ivec2) Load 911 - 913: 7(int) CompositeExtract 912 0 - 914: 7(int) GroupUMinNonUniformAMD 28 InclusiveScan 913 - 915: 7(int) CompositeExtract 912 1 - 916: 7(int) GroupUMinNonUniformAMD 28 InclusiveScan 915 - 917: 8(ivec2) CompositeConstruct 914 916 - 918: 32(ptr) AccessChain 23 31 - Store 918 917 - 919: 42(ptr) AccessChain 23 41 - 920: 10(fvec3) Load 919 - 921: 9(float) CompositeExtract 920 0 - 922: 9(float) GroupFMinNonUniformAMD 28 InclusiveScan 921 - 923: 9(float) CompositeExtract 920 1 - 924: 9(float) GroupFMinNonUniformAMD 28 InclusiveScan 923 - 925: 9(float) CompositeExtract 920 2 - 926: 9(float) GroupFMinNonUniformAMD 28 InclusiveScan 925 - 927: 10(fvec3) CompositeConstruct 922 924 926 - 928: 42(ptr) AccessChain 23 41 - Store 928 927 - 929: 54(ptr) AccessChain 23 53 - 930: 12(f64vec4) Load 929 - 931:11(float64_t) CompositeExtract 930 0 - 932:11(float64_t) GroupFMinNonUniformAMD 28 InclusiveScan 931 - 933:11(float64_t) CompositeExtract 930 1 - 934:11(float64_t) GroupFMinNonUniformAMD 28 InclusiveScan 933 - 935:11(float64_t) CompositeExtract 930 2 - 936:11(float64_t) GroupFMinNonUniformAMD 28 InclusiveScan 935 - 937:11(float64_t) CompositeExtract 930 3 - 938:11(float64_t) GroupFMinNonUniformAMD 28 InclusiveScan 937 - 939: 12(f64vec4) CompositeConstruct 932 934 936 938 - 940: 54(ptr) AccessChain 23 53 - Store 940 939 - 941: 68(ptr) AccessChain 23 67 - 942: 13(int64_t) Load 941 - 943: 13(int64_t) GroupSMinNonUniformAMD 28 InclusiveScan 942 - 944: 68(ptr) AccessChain 23 67 - Store 944 943 - 945: 74(ptr) AccessChain 23 73 - 946: 15(i64vec2) Load 945 - 947: 14(int64_t) CompositeExtract 946 0 - 948: 14(int64_t) GroupUMinNonUniformAMD 28 InclusiveScan 947 - 949: 14(int64_t) CompositeExtract 946 1 - 950: 14(int64_t) GroupUMinNonUniformAMD 28 InclusiveScan 949 - 951: 15(i64vec2) CompositeConstruct 948 950 - 952: 74(ptr) AccessChain 23 73 - Store 952 951 - 953: 84(ptr) AccessChain 23 83 - 954: 17(f16vec3) Load 953 - 955:16(float16_t) CompositeExtract 954 0 - 956:16(float16_t) GroupFMinNonUniformAMD 28 InclusiveScan 955 - 957:16(float16_t) CompositeExtract 954 1 - 958:16(float16_t) GroupFMinNonUniformAMD 28 InclusiveScan 957 - 959:16(float16_t) CompositeExtract 954 2 - 960:16(float16_t) GroupFMinNonUniformAMD 28 InclusiveScan 959 - 961: 17(f16vec3) CompositeConstruct 956 958 960 - 962: 84(ptr) AccessChain 23 83 - Store 962 961 - 963: 96(ptr) AccessChain 23 95 - 964: 19(i16vec4) Load 963 - 965: 18(int16_t) CompositeExtract 964 0 - 966: 18(int16_t) GroupSMinNonUniformAMD 28 InclusiveScan 965 - 967: 18(int16_t) CompositeExtract 964 1 - 968: 18(int16_t) GroupSMinNonUniformAMD 28 InclusiveScan 967 - 969: 18(int16_t) CompositeExtract 964 2 - 970: 18(int16_t) GroupSMinNonUniformAMD 28 InclusiveScan 969 - 971: 18(int16_t) CompositeExtract 964 3 - 972: 18(int16_t) GroupSMinNonUniformAMD 28 InclusiveScan 971 - 973: 19(i16vec4) CompositeConstruct 966 968 970 972 - 974: 96(ptr) AccessChain 23 95 - Store 974 973 - 975: 110(ptr) AccessChain 23 109 - 976: 20(int16_t) Load 975 - 977: 20(int16_t) GroupUMinNonUniformAMD 28 InclusiveScan 976 - 978: 110(ptr) AccessChain 23 109 - Store 978 977 - 979: 25(ptr) AccessChain 23 24 - 980: 6(int) Load 979 - 981: 6(int) GroupSMaxNonUniformAMD 28 InclusiveScan 980 - 982: 25(ptr) AccessChain 23 24 - Store 982 981 - 983: 32(ptr) AccessChain 23 31 - 984: 8(ivec2) Load 983 - 985: 7(int) CompositeExtract 984 0 - 986: 7(int) GroupUMaxNonUniformAMD 28 InclusiveScan 985 - 987: 7(int) CompositeExtract 984 1 - 988: 7(int) GroupUMaxNonUniformAMD 28 InclusiveScan 987 - 989: 8(ivec2) CompositeConstruct 986 988 - 990: 32(ptr) AccessChain 23 31 - Store 990 989 - 991: 42(ptr) AccessChain 23 41 - 992: 10(fvec3) Load 991 - 993: 9(float) CompositeExtract 992 0 - 994: 9(float) GroupFMaxNonUniformAMD 28 InclusiveScan 993 - 995: 9(float) CompositeExtract 992 1 - 996: 9(float) GroupFMaxNonUniformAMD 28 InclusiveScan 995 - 997: 9(float) CompositeExtract 992 2 - 998: 9(float) GroupFMaxNonUniformAMD 28 InclusiveScan 997 - 999: 10(fvec3) CompositeConstruct 994 996 998 - 1000: 42(ptr) AccessChain 23 41 - Store 1000 999 - 1001: 54(ptr) AccessChain 23 53 - 1002: 12(f64vec4) Load 1001 - 1003:11(float64_t) CompositeExtract 1002 0 - 1004:11(float64_t) GroupFMaxNonUniformAMD 28 InclusiveScan 1003 - 1005:11(float64_t) CompositeExtract 1002 1 - 1006:11(float64_t) GroupFMaxNonUniformAMD 28 InclusiveScan 1005 - 1007:11(float64_t) CompositeExtract 1002 2 - 1008:11(float64_t) GroupFMaxNonUniformAMD 28 InclusiveScan 1007 - 1009:11(float64_t) CompositeExtract 1002 3 - 1010:11(float64_t) GroupFMaxNonUniformAMD 28 InclusiveScan 1009 - 1011: 12(f64vec4) CompositeConstruct 1004 1006 1008 1010 - 1012: 54(ptr) AccessChain 23 53 - Store 1012 1011 - 1013: 68(ptr) AccessChain 23 67 - 1014: 13(int64_t) Load 1013 - 1015: 13(int64_t) GroupSMaxNonUniformAMD 28 InclusiveScan 1014 - 1016: 68(ptr) AccessChain 23 67 - Store 1016 1015 - 1017: 74(ptr) AccessChain 23 73 - 1018: 15(i64vec2) Load 1017 - 1019: 14(int64_t) CompositeExtract 1018 0 - 1020: 14(int64_t) GroupUMaxNonUniformAMD 28 InclusiveScan 1019 - 1021: 14(int64_t) CompositeExtract 1018 1 - 1022: 14(int64_t) GroupUMaxNonUniformAMD 28 InclusiveScan 1021 - 1023: 15(i64vec2) CompositeConstruct 1020 1022 - 1024: 74(ptr) AccessChain 23 73 - Store 1024 1023 - 1025: 84(ptr) AccessChain 23 83 - 1026: 17(f16vec3) Load 1025 - 1027:16(float16_t) CompositeExtract 1026 0 - 1028:16(float16_t) GroupFMaxNonUniformAMD 28 InclusiveScan 1027 - 1029:16(float16_t) CompositeExtract 1026 1 - 1030:16(float16_t) GroupFMaxNonUniformAMD 28 InclusiveScan 1029 - 1031:16(float16_t) CompositeExtract 1026 2 - 1032:16(float16_t) GroupFMaxNonUniformAMD 28 InclusiveScan 1031 - 1033: 17(f16vec3) CompositeConstruct 1028 1030 1032 - 1034: 84(ptr) AccessChain 23 83 - Store 1034 1033 - 1035: 96(ptr) AccessChain 23 95 - 1036: 19(i16vec4) Load 1035 - 1037: 18(int16_t) CompositeExtract 1036 0 - 1038: 18(int16_t) GroupSMaxNonUniformAMD 28 InclusiveScan 1037 - 1039: 18(int16_t) CompositeExtract 1036 1 - 1040: 18(int16_t) GroupSMaxNonUniformAMD 28 InclusiveScan 1039 - 1041: 18(int16_t) CompositeExtract 1036 2 - 1042: 18(int16_t) GroupSMaxNonUniformAMD 28 InclusiveScan 1041 - 1043: 18(int16_t) CompositeExtract 1036 3 - 1044: 18(int16_t) GroupSMaxNonUniformAMD 28 InclusiveScan 1043 - 1045: 19(i16vec4) CompositeConstruct 1038 1040 1042 1044 - 1046: 96(ptr) AccessChain 23 95 - Store 1046 1045 - 1047: 110(ptr) AccessChain 23 109 - 1048: 20(int16_t) Load 1047 - 1049: 20(int16_t) GroupUMaxNonUniformAMD 28 InclusiveScan 1048 - 1050: 110(ptr) AccessChain 23 109 - Store 1050 1049 - 1051: 25(ptr) AccessChain 23 24 - 1052: 6(int) Load 1051 - 1053: 6(int) GroupIAddNonUniformAMD 28 InclusiveScan 1052 - 1054: 25(ptr) AccessChain 23 24 - Store 1054 1053 - 1055: 32(ptr) AccessChain 23 31 - 1056: 8(ivec2) Load 1055 - 1057: 7(int) CompositeExtract 1056 0 - 1058: 7(int) GroupIAddNonUniformAMD 28 InclusiveScan 1057 - 1059: 7(int) CompositeExtract 1056 1 - 1060: 7(int) GroupIAddNonUniformAMD 28 InclusiveScan 1059 - 1061: 8(ivec2) CompositeConstruct 1058 1060 - 1062: 32(ptr) AccessChain 23 31 - Store 1062 1061 - 1063: 42(ptr) AccessChain 23 41 - 1064: 10(fvec3) Load 1063 - 1065: 9(float) CompositeExtract 1064 0 - 1066: 9(float) GroupFAddNonUniformAMD 28 InclusiveScan 1065 - 1067: 9(float) CompositeExtract 1064 1 - 1068: 9(float) GroupFAddNonUniformAMD 28 InclusiveScan 1067 - 1069: 9(float) CompositeExtract 1064 2 - 1070: 9(float) GroupFAddNonUniformAMD 28 InclusiveScan 1069 - 1071: 10(fvec3) CompositeConstruct 1066 1068 1070 - 1072: 42(ptr) AccessChain 23 41 - Store 1072 1071 - 1073: 54(ptr) AccessChain 23 53 - 1074: 12(f64vec4) Load 1073 - 1075:11(float64_t) CompositeExtract 1074 0 - 1076:11(float64_t) GroupFAddNonUniformAMD 28 InclusiveScan 1075 - 1077:11(float64_t) CompositeExtract 1074 1 - 1078:11(float64_t) GroupFAddNonUniformAMD 28 InclusiveScan 1077 - 1079:11(float64_t) CompositeExtract 1074 2 - 1080:11(float64_t) GroupFAddNonUniformAMD 28 InclusiveScan 1079 - 1081:11(float64_t) CompositeExtract 1074 3 - 1082:11(float64_t) GroupFAddNonUniformAMD 28 InclusiveScan 1081 - 1083: 12(f64vec4) CompositeConstruct 1076 1078 1080 1082 - 1084: 54(ptr) AccessChain 23 53 - Store 1084 1083 - 1085: 68(ptr) AccessChain 23 67 - 1086: 13(int64_t) Load 1085 - 1087: 13(int64_t) GroupIAddNonUniformAMD 28 InclusiveScan 1086 - 1088: 68(ptr) AccessChain 23 67 - Store 1088 1087 - 1089: 74(ptr) AccessChain 23 73 - 1090: 15(i64vec2) Load 1089 - 1091: 14(int64_t) CompositeExtract 1090 0 - 1092: 14(int64_t) GroupIAddNonUniformAMD 28 InclusiveScan 1091 - 1093: 14(int64_t) CompositeExtract 1090 1 - 1094: 14(int64_t) GroupIAddNonUniformAMD 28 InclusiveScan 1093 - 1095: 15(i64vec2) CompositeConstruct 1092 1094 - 1096: 74(ptr) AccessChain 23 73 - Store 1096 1095 - 1097: 84(ptr) AccessChain 23 83 - 1098: 17(f16vec3) Load 1097 - 1099:16(float16_t) CompositeExtract 1098 0 - 1100:16(float16_t) GroupFAddNonUniformAMD 28 InclusiveScan 1099 - 1101:16(float16_t) CompositeExtract 1098 1 - 1102:16(float16_t) GroupFAddNonUniformAMD 28 InclusiveScan 1101 - 1103:16(float16_t) CompositeExtract 1098 2 - 1104:16(float16_t) GroupFAddNonUniformAMD 28 InclusiveScan 1103 - 1105: 17(f16vec3) CompositeConstruct 1100 1102 1104 - 1106: 84(ptr) AccessChain 23 83 - Store 1106 1105 - 1107: 96(ptr) AccessChain 23 95 - 1108: 19(i16vec4) Load 1107 - 1109: 18(int16_t) CompositeExtract 1108 0 - 1110: 18(int16_t) GroupIAddNonUniformAMD 28 InclusiveScan 1109 - 1111: 18(int16_t) CompositeExtract 1108 1 - 1112: 18(int16_t) GroupIAddNonUniformAMD 28 InclusiveScan 1111 - 1113: 18(int16_t) CompositeExtract 1108 2 - 1114: 18(int16_t) GroupIAddNonUniformAMD 28 InclusiveScan 1113 - 1115: 18(int16_t) CompositeExtract 1108 3 - 1116: 18(int16_t) GroupIAddNonUniformAMD 28 InclusiveScan 1115 - 1117: 19(i16vec4) CompositeConstruct 1110 1112 1114 1116 - 1118: 96(ptr) AccessChain 23 95 - Store 1118 1117 - 1119: 110(ptr) AccessChain 23 109 - 1120: 20(int16_t) Load 1119 - 1121: 20(int16_t) GroupIAddNonUniformAMD 28 InclusiveScan 1120 - 1122: 110(ptr) AccessChain 23 109 - Store 1122 1121 - 1123: 25(ptr) AccessChain 23 24 - 1124: 6(int) Load 1123 - 1125: 6(int) GroupSMinNonUniformAMD 28 ExclusiveScan 1124 - 1126: 25(ptr) AccessChain 23 24 - Store 1126 1125 - 1127: 32(ptr) AccessChain 23 31 - 1128: 8(ivec2) Load 1127 - 1129: 7(int) CompositeExtract 1128 0 - 1130: 7(int) GroupUMinNonUniformAMD 28 ExclusiveScan 1129 - 1131: 7(int) CompositeExtract 1128 1 - 1132: 7(int) GroupUMinNonUniformAMD 28 ExclusiveScan 1131 - 1133: 8(ivec2) CompositeConstruct 1130 1132 - 1134: 32(ptr) AccessChain 23 31 - Store 1134 1133 - 1135: 42(ptr) AccessChain 23 41 - 1136: 10(fvec3) Load 1135 - 1137: 9(float) CompositeExtract 1136 0 - 1138: 9(float) GroupFMinNonUniformAMD 28 ExclusiveScan 1137 - 1139: 9(float) CompositeExtract 1136 1 - 1140: 9(float) GroupFMinNonUniformAMD 28 ExclusiveScan 1139 - 1141: 9(float) CompositeExtract 1136 2 - 1142: 9(float) GroupFMinNonUniformAMD 28 ExclusiveScan 1141 - 1143: 10(fvec3) CompositeConstruct 1138 1140 1142 - 1144: 42(ptr) AccessChain 23 41 - Store 1144 1143 - 1145: 54(ptr) AccessChain 23 53 - 1146: 12(f64vec4) Load 1145 - 1147:11(float64_t) CompositeExtract 1146 0 - 1148:11(float64_t) GroupFMinNonUniformAMD 28 ExclusiveScan 1147 - 1149:11(float64_t) CompositeExtract 1146 1 - 1150:11(float64_t) GroupFMinNonUniformAMD 28 ExclusiveScan 1149 - 1151:11(float64_t) CompositeExtract 1146 2 - 1152:11(float64_t) GroupFMinNonUniformAMD 28 ExclusiveScan 1151 - 1153:11(float64_t) CompositeExtract 1146 3 - 1154:11(float64_t) GroupFMinNonUniformAMD 28 ExclusiveScan 1153 - 1155: 12(f64vec4) CompositeConstruct 1148 1150 1152 1154 - 1156: 54(ptr) AccessChain 23 53 - Store 1156 1155 - 1157: 68(ptr) AccessChain 23 67 - 1158: 13(int64_t) Load 1157 - 1159: 13(int64_t) GroupSMinNonUniformAMD 28 ExclusiveScan 1158 - 1160: 68(ptr) AccessChain 23 67 - Store 1160 1159 - 1161: 74(ptr) AccessChain 23 73 - 1162: 15(i64vec2) Load 1161 - 1163: 14(int64_t) CompositeExtract 1162 0 - 1164: 14(int64_t) GroupUMinNonUniformAMD 28 ExclusiveScan 1163 - 1165: 14(int64_t) CompositeExtract 1162 1 - 1166: 14(int64_t) GroupUMinNonUniformAMD 28 ExclusiveScan 1165 - 1167: 15(i64vec2) CompositeConstruct 1164 1166 - 1168: 74(ptr) AccessChain 23 73 - Store 1168 1167 - 1169: 84(ptr) AccessChain 23 83 - 1170: 17(f16vec3) Load 1169 - 1171:16(float16_t) CompositeExtract 1170 0 - 1172:16(float16_t) GroupFMinNonUniformAMD 28 ExclusiveScan 1171 - 1173:16(float16_t) CompositeExtract 1170 1 - 1174:16(float16_t) GroupFMinNonUniformAMD 28 ExclusiveScan 1173 - 1175:16(float16_t) CompositeExtract 1170 2 - 1176:16(float16_t) GroupFMinNonUniformAMD 28 ExclusiveScan 1175 - 1177: 17(f16vec3) CompositeConstruct 1172 1174 1176 - 1178: 84(ptr) AccessChain 23 83 - Store 1178 1177 - 1179: 96(ptr) AccessChain 23 95 - 1180: 19(i16vec4) Load 1179 - 1181: 18(int16_t) CompositeExtract 1180 0 - 1182: 18(int16_t) GroupSMinNonUniformAMD 28 ExclusiveScan 1181 - 1183: 18(int16_t) CompositeExtract 1180 1 - 1184: 18(int16_t) GroupSMinNonUniformAMD 28 ExclusiveScan 1183 - 1185: 18(int16_t) CompositeExtract 1180 2 - 1186: 18(int16_t) GroupSMinNonUniformAMD 28 ExclusiveScan 1185 - 1187: 18(int16_t) CompositeExtract 1180 3 - 1188: 18(int16_t) GroupSMinNonUniformAMD 28 ExclusiveScan 1187 - 1189: 19(i16vec4) CompositeConstruct 1182 1184 1186 1188 - 1190: 96(ptr) AccessChain 23 95 - Store 1190 1189 - 1191: 110(ptr) AccessChain 23 109 - 1192: 20(int16_t) Load 1191 - 1193: 20(int16_t) GroupUMinNonUniformAMD 28 ExclusiveScan 1192 - 1194: 110(ptr) AccessChain 23 109 - Store 1194 1193 - 1195: 25(ptr) AccessChain 23 24 - 1196: 6(int) Load 1195 - 1197: 6(int) GroupSMaxNonUniformAMD 28 ExclusiveScan 1196 - 1198: 25(ptr) AccessChain 23 24 - Store 1198 1197 - 1199: 32(ptr) AccessChain 23 31 - 1200: 8(ivec2) Load 1199 - 1201: 7(int) CompositeExtract 1200 0 - 1202: 7(int) GroupUMaxNonUniformAMD 28 ExclusiveScan 1201 - 1203: 7(int) CompositeExtract 1200 1 - 1204: 7(int) GroupUMaxNonUniformAMD 28 ExclusiveScan 1203 - 1205: 8(ivec2) CompositeConstruct 1202 1204 - 1206: 32(ptr) AccessChain 23 31 - Store 1206 1205 - 1207: 42(ptr) AccessChain 23 41 - 1208: 10(fvec3) Load 1207 - 1209: 9(float) CompositeExtract 1208 0 - 1210: 9(float) GroupFMaxNonUniformAMD 28 ExclusiveScan 1209 - 1211: 9(float) CompositeExtract 1208 1 - 1212: 9(float) GroupFMaxNonUniformAMD 28 ExclusiveScan 1211 - 1213: 9(float) CompositeExtract 1208 2 - 1214: 9(float) GroupFMaxNonUniformAMD 28 ExclusiveScan 1213 - 1215: 10(fvec3) CompositeConstruct 1210 1212 1214 - 1216: 42(ptr) AccessChain 23 41 - Store 1216 1215 - 1217: 54(ptr) AccessChain 23 53 - 1218: 12(f64vec4) Load 1217 - 1219:11(float64_t) CompositeExtract 1218 0 - 1220:11(float64_t) GroupFMaxNonUniformAMD 28 ExclusiveScan 1219 - 1221:11(float64_t) CompositeExtract 1218 1 - 1222:11(float64_t) GroupFMaxNonUniformAMD 28 ExclusiveScan 1221 - 1223:11(float64_t) CompositeExtract 1218 2 - 1224:11(float64_t) GroupFMaxNonUniformAMD 28 ExclusiveScan 1223 - 1225:11(float64_t) CompositeExtract 1218 3 - 1226:11(float64_t) GroupFMaxNonUniformAMD 28 ExclusiveScan 1225 - 1227: 12(f64vec4) CompositeConstruct 1220 1222 1224 1226 - 1228: 54(ptr) AccessChain 23 53 - Store 1228 1227 - 1229: 68(ptr) AccessChain 23 67 - 1230: 13(int64_t) Load 1229 - 1231: 13(int64_t) GroupSMaxNonUniformAMD 28 ExclusiveScan 1230 - 1232: 68(ptr) AccessChain 23 67 - Store 1232 1231 - 1233: 74(ptr) AccessChain 23 73 - 1234: 15(i64vec2) Load 1233 - 1235: 14(int64_t) CompositeExtract 1234 0 - 1236: 14(int64_t) GroupUMaxNonUniformAMD 28 ExclusiveScan 1235 - 1237: 14(int64_t) CompositeExtract 1234 1 - 1238: 14(int64_t) GroupUMaxNonUniformAMD 28 ExclusiveScan 1237 - 1239: 15(i64vec2) CompositeConstruct 1236 1238 - 1240: 74(ptr) AccessChain 23 73 - Store 1240 1239 - 1241: 84(ptr) AccessChain 23 83 - 1242: 17(f16vec3) Load 1241 - 1243:16(float16_t) CompositeExtract 1242 0 - 1244:16(float16_t) GroupFMaxNonUniformAMD 28 ExclusiveScan 1243 - 1245:16(float16_t) CompositeExtract 1242 1 - 1246:16(float16_t) GroupFMaxNonUniformAMD 28 ExclusiveScan 1245 - 1247:16(float16_t) CompositeExtract 1242 2 - 1248:16(float16_t) GroupFMaxNonUniformAMD 28 ExclusiveScan 1247 - 1249: 17(f16vec3) CompositeConstruct 1244 1246 1248 - 1250: 84(ptr) AccessChain 23 83 - Store 1250 1249 - 1251: 96(ptr) AccessChain 23 95 - 1252: 19(i16vec4) Load 1251 - 1253: 18(int16_t) CompositeExtract 1252 0 - 1254: 18(int16_t) GroupSMaxNonUniformAMD 28 ExclusiveScan 1253 - 1255: 18(int16_t) CompositeExtract 1252 1 - 1256: 18(int16_t) GroupSMaxNonUniformAMD 28 ExclusiveScan 1255 - 1257: 18(int16_t) CompositeExtract 1252 2 - 1258: 18(int16_t) GroupSMaxNonUniformAMD 28 ExclusiveScan 1257 - 1259: 18(int16_t) CompositeExtract 1252 3 - 1260: 18(int16_t) GroupSMaxNonUniformAMD 28 ExclusiveScan 1259 - 1261: 19(i16vec4) CompositeConstruct 1254 1256 1258 1260 - 1262: 96(ptr) AccessChain 23 95 - Store 1262 1261 - 1263: 110(ptr) AccessChain 23 109 - 1264: 20(int16_t) Load 1263 - 1265: 20(int16_t) GroupUMaxNonUniformAMD 28 ExclusiveScan 1264 - 1266: 110(ptr) AccessChain 23 109 - Store 1266 1265 - 1267: 25(ptr) AccessChain 23 24 - 1268: 6(int) Load 1267 - 1269: 6(int) GroupIAddNonUniformAMD 28 ExclusiveScan 1268 - 1270: 25(ptr) AccessChain 23 24 - Store 1270 1269 - 1271: 32(ptr) AccessChain 23 31 - 1272: 8(ivec2) Load 1271 - 1273: 7(int) CompositeExtract 1272 0 - 1274: 7(int) GroupIAddNonUniformAMD 28 ExclusiveScan 1273 - 1275: 7(int) CompositeExtract 1272 1 - 1276: 7(int) GroupIAddNonUniformAMD 28 ExclusiveScan 1275 - 1277: 8(ivec2) CompositeConstruct 1274 1276 - 1278: 32(ptr) AccessChain 23 31 - Store 1278 1277 - 1279: 42(ptr) AccessChain 23 41 - 1280: 10(fvec3) Load 1279 - 1281: 9(float) CompositeExtract 1280 0 - 1282: 9(float) GroupFAddNonUniformAMD 28 ExclusiveScan 1281 - 1283: 9(float) CompositeExtract 1280 1 - 1284: 9(float) GroupFAddNonUniformAMD 28 ExclusiveScan 1283 - 1285: 9(float) CompositeExtract 1280 2 - 1286: 9(float) GroupFAddNonUniformAMD 28 ExclusiveScan 1285 - 1287: 10(fvec3) CompositeConstruct 1282 1284 1286 - 1288: 42(ptr) AccessChain 23 41 - Store 1288 1287 - 1289: 54(ptr) AccessChain 23 53 - 1290: 12(f64vec4) Load 1289 - 1291:11(float64_t) CompositeExtract 1290 0 - 1292:11(float64_t) GroupFAddNonUniformAMD 28 ExclusiveScan 1291 - 1293:11(float64_t) CompositeExtract 1290 1 - 1294:11(float64_t) GroupFAddNonUniformAMD 28 ExclusiveScan 1293 - 1295:11(float64_t) CompositeExtract 1290 2 - 1296:11(float64_t) GroupFAddNonUniformAMD 28 ExclusiveScan 1295 - 1297:11(float64_t) CompositeExtract 1290 3 - 1298:11(float64_t) GroupFAddNonUniformAMD 28 ExclusiveScan 1297 - 1299: 12(f64vec4) CompositeConstruct 1292 1294 1296 1298 - 1300: 54(ptr) AccessChain 23 53 - Store 1300 1299 - 1301: 68(ptr) AccessChain 23 67 - 1302: 13(int64_t) Load 1301 - 1303: 13(int64_t) GroupIAddNonUniformAMD 28 ExclusiveScan 1302 - 1304: 68(ptr) AccessChain 23 67 - Store 1304 1303 - 1305: 74(ptr) AccessChain 23 73 - 1306: 15(i64vec2) Load 1305 - 1307: 14(int64_t) CompositeExtract 1306 0 - 1308: 14(int64_t) GroupIAddNonUniformAMD 28 ExclusiveScan 1307 - 1309: 14(int64_t) CompositeExtract 1306 1 - 1310: 14(int64_t) GroupIAddNonUniformAMD 28 ExclusiveScan 1309 - 1311: 15(i64vec2) CompositeConstruct 1308 1310 - 1312: 74(ptr) AccessChain 23 73 - Store 1312 1311 - 1313: 84(ptr) AccessChain 23 83 - 1314: 17(f16vec3) Load 1313 - 1315:16(float16_t) CompositeExtract 1314 0 - 1316:16(float16_t) GroupFAddNonUniformAMD 28 ExclusiveScan 1315 - 1317:16(float16_t) CompositeExtract 1314 1 - 1318:16(float16_t) GroupFAddNonUniformAMD 28 ExclusiveScan 1317 - 1319:16(float16_t) CompositeExtract 1314 2 - 1320:16(float16_t) GroupFAddNonUniformAMD 28 ExclusiveScan 1319 - 1321: 17(f16vec3) CompositeConstruct 1316 1318 1320 - 1322: 84(ptr) AccessChain 23 83 - Store 1322 1321 - 1323: 96(ptr) AccessChain 23 95 - 1324: 19(i16vec4) Load 1323 - 1325: 18(int16_t) CompositeExtract 1324 0 - 1326: 18(int16_t) GroupIAddNonUniformAMD 28 ExclusiveScan 1325 - 1327: 18(int16_t) CompositeExtract 1324 1 - 1328: 18(int16_t) GroupIAddNonUniformAMD 28 ExclusiveScan 1327 - 1329: 18(int16_t) CompositeExtract 1324 2 - 1330: 18(int16_t) GroupIAddNonUniformAMD 28 ExclusiveScan 1329 - 1331: 18(int16_t) CompositeExtract 1324 3 - 1332: 18(int16_t) GroupIAddNonUniformAMD 28 ExclusiveScan 1331 - 1333: 19(i16vec4) CompositeConstruct 1326 1328 1330 1332 - 1334: 96(ptr) AccessChain 23 95 - Store 1334 1333 - 1335: 110(ptr) AccessChain 23 109 - 1336: 20(int16_t) Load 1335 - 1337: 20(int16_t) GroupIAddNonUniformAMD 28 ExclusiveScan 1336 - 1338: 110(ptr) AccessChain 23 109 - Store 1338 1337 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.shaderDrawParams.vert.out b/deps/glslang/Test/baseResults/spv.shaderDrawParams.vert.out deleted file mode 100644 index 5baabbf5..00000000 --- a/deps/glslang/Test/baseResults/spv.shaderDrawParams.vert.out +++ /dev/null @@ -1,102 +0,0 @@ -spv.shaderDrawParams.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 53 - - Capability Shader - Capability DrawParameters - Extension "SPV_KHR_shader_draw_parameters" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 9 16 29 37 - Source GLSL 450 - SourceExtension "GL_ARB_shader_draw_parameters" - Name 4 "main" - Name 9 "gl_BaseVertexARB" - Name 16 "gl_BaseInstanceARB" - Name 27 "gl_PerVertex" - MemberName 27(gl_PerVertex) 0 "gl_Position" - MemberName 27(gl_PerVertex) 1 "gl_PointSize" - MemberName 27(gl_PerVertex) 2 "gl_ClipDistance" - MemberName 27(gl_PerVertex) 3 "gl_CullDistance" - Name 29 "" - Name 34 "Block" - MemberName 34(Block) 0 "pos" - Name 36 "block" - Name 37 "gl_DrawIDARB" - Decorate 9(gl_BaseVertexARB) BuiltIn BaseVertex - Decorate 16(gl_BaseInstanceARB) BuiltIn BaseInstance - MemberDecorate 27(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 27(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 27(gl_PerVertex) 2 BuiltIn ClipDistance - MemberDecorate 27(gl_PerVertex) 3 BuiltIn CullDistance - Decorate 27(gl_PerVertex) Block - Decorate 31 ArrayStride 16 - Decorate 33 ArrayStride 64 - MemberDecorate 34(Block) 0 Offset 0 - Decorate 34(Block) Block - Decorate 36(block) DescriptorSet 0 - Decorate 36(block) Binding 0 - Decorate 37(gl_DrawIDARB) BuiltIn DrawIndex - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeBool - 7: TypeInt 32 1 - 8: TypePointer Input 7(int) -9(gl_BaseVertexARB): 8(ptr) Variable Input - 11: 7(int) Constant 0 -16(gl_BaseInstanceARB): 8(ptr) Variable Input - 22: TypeFloat 32 - 23: TypeVector 22(float) 4 - 24: TypeInt 32 0 - 25: 24(int) Constant 1 - 26: TypeArray 22(float) 25 -27(gl_PerVertex): TypeStruct 23(fvec4) 22(float) 26 26 - 28: TypePointer Output 27(gl_PerVertex) - 29: 28(ptr) Variable Output - 30: 24(int) Constant 4 - 31: TypeArray 23(fvec4) 30 - 32: 24(int) Constant 2 - 33: TypeArray 31 32 - 34(Block): TypeStruct 33 - 35: TypePointer Uniform 34(Block) - 36(block): 35(ptr) Variable Uniform -37(gl_DrawIDARB): 8(ptr) Variable Input - 39: 7(int) Constant 4 - 41: TypePointer Uniform 23(fvec4) - 44: TypePointer Output 23(fvec4) - 47: 7(int) Constant 1 - 4(main): 2 Function None 3 - 5: Label - 10: 7(int) Load 9(gl_BaseVertexARB) - 12: 6(bool) SGreaterThan 10 11 - 13: 6(bool) LogicalNot 12 - SelectionMerge 15 None - BranchConditional 13 14 15 - 14: Label - 17: 7(int) Load 16(gl_BaseInstanceARB) - 18: 6(bool) SGreaterThan 17 11 - Branch 15 - 15: Label - 19: 6(bool) Phi 12 5 18 14 - SelectionMerge 21 None - BranchConditional 19 20 46 - 20: Label - 38: 7(int) Load 37(gl_DrawIDARB) - 40: 7(int) SMod 38 39 - 42: 41(ptr) AccessChain 36(block) 11 11 40 - 43: 23(fvec4) Load 42 - 45: 44(ptr) AccessChain 29 11 - Store 45 43 - Branch 21 - 46: Label - 48: 7(int) Load 37(gl_DrawIDARB) - 49: 7(int) SMod 48 39 - 50: 41(ptr) AccessChain 36(block) 11 47 49 - 51: 23(fvec4) Load 50 - 52: 44(ptr) AccessChain 29 11 - Store 52 51 - Branch 21 - 21: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.shaderFragMaskAMD.frag.out b/deps/glslang/Test/baseResults/spv.shaderFragMaskAMD.frag.out deleted file mode 100644 index ab48e04e..00000000 --- a/deps/glslang/Test/baseResults/spv.shaderFragMaskAMD.frag.out +++ /dev/null @@ -1,122 +0,0 @@ -spv.shaderFragMaskAMD.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 80 - - Capability Shader - Capability InputAttachment - Capability FragmentMaskAMD - Extension "SPV_AMD_shader_fragment_mask" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 78 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_AMD_shader_fragment_mask" - Name 4 "main" - Name 9 "f4" - Name 14 "fragMask" - Name 18 "s2DMS" - Name 27 "fragIndex" - Name 42 "is2DMSArray" - Name 62 "usubpassMS" - Name 78 "fragColor" - Decorate 18(s2DMS) DescriptorSet 0 - Decorate 18(s2DMS) Binding 0 - Decorate 42(is2DMSArray) DescriptorSet 0 - Decorate 42(is2DMSArray) Binding 1 - Decorate 62(usubpassMS) DescriptorSet 0 - Decorate 62(usubpassMS) Binding 2 - Decorate 62(usubpassMS) InputAttachmentIndex 0 - Decorate 78(fragColor) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: 6(float) Constant 0 - 11: 7(fvec4) ConstantComposite 10 10 10 10 - 12: TypeInt 32 0 - 13: TypePointer Function 12(int) - 15: TypeImage 6(float) 2D multi-sampled sampled format:Unknown - 16: TypeSampledImage 15 - 17: TypePointer UniformConstant 16 - 18(s2DMS): 17(ptr) Variable UniformConstant - 20: TypeInt 32 1 - 21: TypeVector 20(int) 2 - 22: 20(int) Constant 2 - 23: 20(int) Constant 3 - 24: 21(ivec2) ConstantComposite 22 23 - 29: 12(int) Constant 240 - 31: 20(int) Constant 4 - 34: 12(int) Constant 1 - 39: TypeImage 20(int) 2D array multi-sampled sampled format:Unknown - 40: TypeSampledImage 39 - 41: TypePointer UniformConstant 40 - 42(is2DMSArray): 41(ptr) Variable UniformConstant - 44: TypeVector 20(int) 3 - 45: 20(int) Constant 1 - 46: 44(ivec3) ConstantComposite 22 23 45 - 55: TypeVector 20(int) 4 - 60: TypeImage 12(int) SubpassData multi-sampled nonsampled format:Unknown - 61: TypePointer UniformConstant 60 - 62(usubpassMS): 61(ptr) Variable UniformConstant - 64: 20(int) Constant 0 - 65: 21(ivec2) ConstantComposite 64 64 - 72: TypeVector 12(int) 4 - 77: TypePointer Output 7(fvec4) - 78(fragColor): 77(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 9(f4): 8(ptr) Variable Function - 14(fragMask): 13(ptr) Variable Function - 27(fragIndex): 13(ptr) Variable Function - Store 9(f4) 11 - 19: 16 Load 18(s2DMS) - 25: 15 Image 19 - 26: 12(int) FragmentMaskFetchAMD 25 24 - Store 14(fragMask) 26 - 28: 12(int) Load 14(fragMask) - 30: 12(int) BitwiseAnd 28 29 - 32: 12(int) ShiftRightLogical 30 31 - Store 27(fragIndex) 32 - 33: 16 Load 18(s2DMS) - 35: 15 Image 33 - 36: 7(fvec4) FragmentFetchAMD 35 24 34 - 37: 7(fvec4) Load 9(f4) - 38: 7(fvec4) FAdd 37 36 - Store 9(f4) 38 - 43: 40 Load 42(is2DMSArray) - 47: 39 Image 43 - 48: 12(int) FragmentMaskFetchAMD 47 46 - Store 14(fragMask) 48 - 49: 12(int) Load 14(fragMask) - 50: 12(int) BitwiseAnd 49 29 - 51: 12(int) ShiftRightLogical 50 31 - Store 27(fragIndex) 51 - 52: 40 Load 42(is2DMSArray) - 53: 12(int) Load 27(fragIndex) - 54: 39 Image 52 - 56: 55(ivec4) FragmentFetchAMD 54 46 53 - 57: 7(fvec4) ConvertSToF 56 - 58: 7(fvec4) Load 9(f4) - 59: 7(fvec4) FAdd 58 57 - Store 9(f4) 59 - 63: 60 Load 62(usubpassMS) - 66: 12(int) FragmentMaskFetchAMD 63 65 - Store 14(fragMask) 66 - 67: 12(int) Load 14(fragMask) - 68: 12(int) BitwiseAnd 67 29 - 69: 12(int) ShiftRightLogical 68 31 - Store 27(fragIndex) 69 - 70: 60 Load 62(usubpassMS) - 71: 12(int) Load 27(fragIndex) - 73: 72(ivec4) FragmentFetchAMD 70 65 71 - 74: 7(fvec4) ConvertUToF 73 - 75: 7(fvec4) Load 9(f4) - 76: 7(fvec4) FAdd 75 74 - Store 9(f4) 76 - 79: 7(fvec4) Load 9(f4) - Store 78(fragColor) 79 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.shaderGroupVote.comp.out b/deps/glslang/Test/baseResults/spv.shaderGroupVote.comp.out deleted file mode 100644 index 4c45e33c..00000000 --- a/deps/glslang/Test/baseResults/spv.shaderGroupVote.comp.out +++ /dev/null @@ -1,62 +0,0 @@ -spv.shaderGroupVote.comp -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 33 - - Capability Shader - Capability SubgroupVoteKHR - Extension "SPV_KHR_subgroup_vote" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" - ExecutionMode 4 LocalSize 4 4 1 - Source GLSL 450 - SourceExtension "GL_ARB_shader_group_vote" - Name 4 "main" - Name 8 "b1" - Name 10 "Buffers" - MemberName 10(Buffers) 0 "b" - Name 12 "" - MemberDecorate 10(Buffers) 0 Offset 0 - Decorate 10(Buffers) BufferBlock - Decorate 12 DescriptorSet 0 - Decorate 12 Binding 0 - Decorate 32 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeBool - 7: TypePointer Function 6(bool) - 9: TypeInt 32 0 - 10(Buffers): TypeStruct 9(int) - 11: TypePointer Uniform 10(Buffers) - 12: 11(ptr) Variable Uniform - 13: TypeInt 32 1 - 14: 13(int) Constant 0 - 15: TypePointer Uniform 9(int) - 18: 9(int) Constant 0 - 27: 9(int) Constant 1 - 30: TypeVector 9(int) 3 - 31: 9(int) Constant 4 - 32: 30(ivec3) ConstantComposite 31 31 27 - 4(main): 2 Function None 3 - 5: Label - 8(b1): 7(ptr) Variable Function - 16: 15(ptr) AccessChain 12 14 - 17: 9(int) Load 16 - 19: 6(bool) INotEqual 17 18 - Store 8(b1) 19 - 20: 6(bool) Load 8(b1) - 21: 6(bool) SubgroupAnyKHR 20 - Store 8(b1) 21 - 22: 6(bool) Load 8(b1) - 23: 6(bool) SubgroupAllKHR 22 - Store 8(b1) 23 - 24: 6(bool) Load 8(b1) - 25: 6(bool) SubgroupAllEqualKHR 24 - Store 8(b1) 25 - 26: 6(bool) Load 8(b1) - 28: 9(int) Select 26 27 18 - 29: 15(ptr) AccessChain 12 14 - Store 29 28 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.shaderImageFootprint.frag.out b/deps/glslang/Test/baseResults/spv.shaderImageFootprint.frag.out deleted file mode 100644 index ea8873c4..00000000 --- a/deps/glslang/Test/baseResults/spv.shaderImageFootprint.frag.out +++ /dev/null @@ -1,853 +0,0 @@ -spv.shaderImageFootprint.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 622 - - Capability Shader - Capability MinLod - Capability ImageFootprintNV - Extension "SPV_NV_shader_image_footprint" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 21 24 76 125 225 275 277 387 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_NV_shader_texture_footprint" - Name 4 "main" - Name 8 "result2D" - MemberName 8(result2D) 0 "ret2D" - MemberName 8(result2D) 1 "anchor2D" - MemberName 8(result2D) 2 "offset2D" - MemberName 8(result2D) 3 "mask2D" - MemberName 8(result2D) 4 "lod2D" - MemberName 8(result2D) 5 "granularity2D" - Name 10 "" - Name 17 "sample2D" - Name 21 "P2" - Name 24 "granularity" - Name 28 "gl_TextureFootprint2DNV" - MemberName 28(gl_TextureFootprint2DNV) 0 "anchor" - MemberName 28(gl_TextureFootprint2DNV) 1 "offset" - MemberName 28(gl_TextureFootprint2DNV) 2 "mask" - MemberName 28(gl_TextureFootprint2DNV) 3 "lod" - MemberName 28(gl_TextureFootprint2DNV) 4 "granularity" - Name 30 "fp2D" - Name 31 "ResType" - Name 76 "bias" - Name 78 "ResType" - Name 125 "lodClamp" - Name 128 "ResType" - Name 178 "ResType" - Name 225 "lod" - Name 228 "ResType" - Name 275 "dx" - Name 277 "dy" - Name 280 "ResType" - Name 331 "ResType" - Name 377 "result3D" - MemberName 377(result3D) 0 "ret3D" - MemberName 377(result3D) 1 "anchor3D" - MemberName 377(result3D) 2 "offset3D" - MemberName 377(result3D) 3 "mask3D" - MemberName 377(result3D) 4 "lod3D" - MemberName 377(result3D) 5 "granularity3D" - Name 379 "" - Name 383 "sample3D" - Name 387 "P3" - Name 390 "gl_TextureFootprint3DNV" - MemberName 390(gl_TextureFootprint3DNV) 0 "anchor" - MemberName 390(gl_TextureFootprint3DNV) 1 "offset" - MemberName 390(gl_TextureFootprint3DNV) 2 "mask" - MemberName 390(gl_TextureFootprint3DNV) 3 "lod" - MemberName 390(gl_TextureFootprint3DNV) 4 "granularity" - Name 392 "fp3D" - Name 393 "ResType" - Name 429 "ResType" - Name 478 "ResType" - Name 528 "ResType" - Name 577 "ResType" - MemberDecorate 8(result2D) 0 Offset 0 - MemberDecorate 8(result2D) 1 Offset 8 - MemberDecorate 8(result2D) 2 Offset 16 - MemberDecorate 8(result2D) 3 Offset 24 - MemberDecorate 8(result2D) 4 Offset 32 - MemberDecorate 8(result2D) 5 Offset 36 - Decorate 8(result2D) BufferBlock - Decorate 10 DescriptorSet 0 - Decorate 10 Binding 2 - Decorate 17(sample2D) DescriptorSet 0 - Decorate 17(sample2D) Binding 0 - Decorate 21(P2) Location 0 - Decorate 24(granularity) Flat - Decorate 24(granularity) Location 3 - Decorate 76(bias) Location 9 - Decorate 125(lodClamp) Location 4 - Decorate 225(lod) Location 5 - Decorate 275(dx) Location 6 - Decorate 277(dy) Location 8 - MemberDecorate 377(result3D) 0 Offset 0 - MemberDecorate 377(result3D) 1 Offset 16 - MemberDecorate 377(result3D) 2 Offset 32 - MemberDecorate 377(result3D) 3 Offset 48 - MemberDecorate 377(result3D) 4 Offset 56 - MemberDecorate 377(result3D) 5 Offset 60 - Decorate 377(result3D) BufferBlock - Decorate 379 DescriptorSet 0 - Decorate 379 Binding 3 - Decorate 383(sample3D) DescriptorSet 0 - Decorate 383(sample3D) Binding 1 - Decorate 387(P3) Location 2 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeVector 6(int) 2 - 8(result2D): TypeStruct 6(int) 7(ivec2) 7(ivec2) 7(ivec2) 6(int) 6(int) - 9: TypePointer Uniform 8(result2D) - 10: 9(ptr) Variable Uniform - 11: TypeInt 32 1 - 12: 11(int) Constant 0 - 13: TypeFloat 32 - 14: TypeImage 13(float) 2D sampled format:Unknown - 15: TypeSampledImage 14 - 16: TypePointer UniformConstant 15 - 17(sample2D): 16(ptr) Variable UniformConstant - 19: TypeVector 13(float) 2 - 20: TypePointer Input 19(fvec2) - 21(P2): 20(ptr) Variable Input - 23: TypePointer Input 11(int) - 24(granularity): 23(ptr) Variable Input - 26: TypeBool - 27: 26(bool) ConstantTrue -28(gl_TextureFootprint2DNV): TypeStruct 7(ivec2) 7(ivec2) 7(ivec2) 6(int) 6(int) - 29: TypePointer Function 28(gl_TextureFootprint2DNV) - 31(ResType): TypeStruct 26(bool) 7(ivec2) 7(ivec2) 7(ivec2) 6(int) 6(int) - 34: TypePointer Function 7(ivec2) - 36: 11(int) Constant 1 - 39: 11(int) Constant 2 - 42: 11(int) Constant 3 - 44: TypePointer Function 6(int) - 46: 11(int) Constant 4 - 50: 6(int) Constant 1 - 51: 6(int) Constant 0 - 53: TypePointer Uniform 6(int) - 57: TypePointer Uniform 7(ivec2) - 68: 11(int) Constant 5 - 75: TypePointer Input 13(float) - 76(bias): 75(ptr) Variable Input - 78(ResType): TypeStruct 26(bool) 7(ivec2) 7(ivec2) 7(ivec2) 6(int) 6(int) - 125(lodClamp): 75(ptr) Variable Input - 128(ResType): TypeStruct 26(bool) 7(ivec2) 7(ivec2) 7(ivec2) 6(int) 6(int) - 178(ResType): TypeStruct 26(bool) 7(ivec2) 7(ivec2) 7(ivec2) 6(int) 6(int) - 225(lod): 75(ptr) Variable Input - 228(ResType): TypeStruct 26(bool) 7(ivec2) 7(ivec2) 7(ivec2) 6(int) 6(int) - 275(dx): 20(ptr) Variable Input - 277(dy): 20(ptr) Variable Input - 280(ResType): TypeStruct 26(bool) 7(ivec2) 7(ivec2) 7(ivec2) 6(int) 6(int) - 331(ResType): TypeStruct 26(bool) 7(ivec2) 7(ivec2) 7(ivec2) 6(int) 6(int) - 376: TypeVector 6(int) 3 - 377(result3D): TypeStruct 6(int) 376(ivec3) 376(ivec3) 7(ivec2) 6(int) 6(int) - 378: TypePointer Uniform 377(result3D) - 379: 378(ptr) Variable Uniform - 380: TypeImage 13(float) 3D sampled format:Unknown - 381: TypeSampledImage 380 - 382: TypePointer UniformConstant 381 - 383(sample3D): 382(ptr) Variable UniformConstant - 385: TypeVector 13(float) 3 - 386: TypePointer Input 385(fvec3) - 387(P3): 386(ptr) Variable Input -390(gl_TextureFootprint3DNV): TypeStruct 376(ivec3) 376(ivec3) 7(ivec2) 6(int) 6(int) - 391: TypePointer Function 390(gl_TextureFootprint3DNV) - 393(ResType): TypeStruct 26(bool) 376(ivec3) 376(ivec3) 7(ivec2) 6(int) 6(int) - 396: TypePointer Function 376(ivec3) - 411: TypePointer Uniform 376(ivec3) - 429(ResType): TypeStruct 26(bool) 376(ivec3) 376(ivec3) 7(ivec2) 6(int) 6(int) - 478(ResType): TypeStruct 26(bool) 376(ivec3) 376(ivec3) 7(ivec2) 6(int) 6(int) - 528(ResType): TypeStruct 26(bool) 376(ivec3) 376(ivec3) 7(ivec2) 6(int) 6(int) - 577(ResType): TypeStruct 26(bool) 376(ivec3) 376(ivec3) 7(ivec2) 6(int) 6(int) - 4(main): 2 Function None 3 - 5: Label - 30(fp2D): 29(ptr) Variable Function - 392(fp3D): 391(ptr) Variable Function - 18: 15 Load 17(sample2D) - 22: 19(fvec2) Load 21(P2) - 25: 11(int) Load 24(granularity) - 32: 31(ResType) ImageSampleFootprintNV 18 22 25 27 - 33: 7(ivec2) CompositeExtract 32 1 - 35: 34(ptr) AccessChain 30(fp2D) 12 - Store 35 33 - 37: 7(ivec2) CompositeExtract 32 2 - 38: 34(ptr) AccessChain 30(fp2D) 36 - Store 38 37 - 40: 7(ivec2) CompositeExtract 32 3 - 41: 34(ptr) AccessChain 30(fp2D) 39 - Store 41 40 - 43: 6(int) CompositeExtract 32 4 - 45: 44(ptr) AccessChain 30(fp2D) 42 - Store 45 43 - 47: 6(int) CompositeExtract 32 5 - 48: 44(ptr) AccessChain 30(fp2D) 46 - Store 48 47 - 49: 26(bool) CompositeExtract 32 0 - 52: 6(int) Select 49 50 51 - 54: 53(ptr) AccessChain 10 12 - Store 54 52 - 55: 34(ptr) AccessChain 30(fp2D) 12 - 56: 7(ivec2) Load 55 - 58: 57(ptr) AccessChain 10 36 - Store 58 56 - 59: 34(ptr) AccessChain 30(fp2D) 36 - 60: 7(ivec2) Load 59 - 61: 57(ptr) AccessChain 10 39 - Store 61 60 - 62: 34(ptr) AccessChain 30(fp2D) 39 - 63: 7(ivec2) Load 62 - 64: 57(ptr) AccessChain 10 42 - Store 64 63 - 65: 44(ptr) AccessChain 30(fp2D) 42 - 66: 6(int) Load 65 - 67: 53(ptr) AccessChain 10 46 - Store 67 66 - 69: 44(ptr) AccessChain 30(fp2D) 46 - 70: 6(int) Load 69 - 71: 53(ptr) AccessChain 10 68 - Store 71 70 - 72: 15 Load 17(sample2D) - 73: 19(fvec2) Load 21(P2) - 74: 11(int) Load 24(granularity) - 77: 13(float) Load 76(bias) - 79: 78(ResType) ImageSampleFootprintNV 72 73 74 27 Bias 77 - 80: 7(ivec2) CompositeExtract 79 1 - 81: 34(ptr) AccessChain 30(fp2D) 12 - Store 81 80 - 82: 7(ivec2) CompositeExtract 79 2 - 83: 34(ptr) AccessChain 30(fp2D) 36 - Store 83 82 - 84: 7(ivec2) CompositeExtract 79 3 - 85: 34(ptr) AccessChain 30(fp2D) 39 - Store 85 84 - 86: 6(int) CompositeExtract 79 4 - 87: 44(ptr) AccessChain 30(fp2D) 42 - Store 87 86 - 88: 6(int) CompositeExtract 79 5 - 89: 44(ptr) AccessChain 30(fp2D) 46 - Store 89 88 - 90: 26(bool) CompositeExtract 79 0 - 91: 6(int) Select 90 50 51 - 92: 53(ptr) AccessChain 10 12 - Store 92 91 - 93: 34(ptr) AccessChain 30(fp2D) 12 - 94: 7(ivec2) Load 93 - 95: 57(ptr) AccessChain 10 36 - 96: 7(ivec2) Load 95 - 97: 7(ivec2) IAdd 96 94 - 98: 57(ptr) AccessChain 10 36 - Store 98 97 - 99: 34(ptr) AccessChain 30(fp2D) 36 - 100: 7(ivec2) Load 99 - 101: 57(ptr) AccessChain 10 39 - 102: 7(ivec2) Load 101 - 103: 7(ivec2) IAdd 102 100 - 104: 57(ptr) AccessChain 10 39 - Store 104 103 - 105: 34(ptr) AccessChain 30(fp2D) 39 - 106: 7(ivec2) Load 105 - 107: 57(ptr) AccessChain 10 42 - 108: 7(ivec2) Load 107 - 109: 7(ivec2) IAdd 108 106 - 110: 57(ptr) AccessChain 10 42 - Store 110 109 - 111: 44(ptr) AccessChain 30(fp2D) 42 - 112: 6(int) Load 111 - 113: 53(ptr) AccessChain 10 46 - 114: 6(int) Load 113 - 115: 6(int) IAdd 114 112 - 116: 53(ptr) AccessChain 10 46 - Store 116 115 - 117: 44(ptr) AccessChain 30(fp2D) 46 - 118: 6(int) Load 117 - 119: 53(ptr) AccessChain 10 68 - 120: 6(int) Load 119 - 121: 6(int) IAdd 120 118 - 122: 53(ptr) AccessChain 10 68 - Store 122 121 - 123: 15 Load 17(sample2D) - 124: 19(fvec2) Load 21(P2) - 126: 13(float) Load 125(lodClamp) - 127: 11(int) Load 24(granularity) - 129:128(ResType) ImageSampleFootprintNV 123 124 127 27 MinLod 126 - 130: 7(ivec2) CompositeExtract 129 1 - 131: 34(ptr) AccessChain 30(fp2D) 12 - Store 131 130 - 132: 7(ivec2) CompositeExtract 129 2 - 133: 34(ptr) AccessChain 30(fp2D) 36 - Store 133 132 - 134: 7(ivec2) CompositeExtract 129 3 - 135: 34(ptr) AccessChain 30(fp2D) 39 - Store 135 134 - 136: 6(int) CompositeExtract 129 4 - 137: 44(ptr) AccessChain 30(fp2D) 42 - Store 137 136 - 138: 6(int) CompositeExtract 129 5 - 139: 44(ptr) AccessChain 30(fp2D) 46 - Store 139 138 - 140: 26(bool) CompositeExtract 129 0 - 141: 6(int) Select 140 50 51 - 142: 53(ptr) AccessChain 10 12 - Store 142 141 - 143: 34(ptr) AccessChain 30(fp2D) 12 - 144: 7(ivec2) Load 143 - 145: 57(ptr) AccessChain 10 36 - 146: 7(ivec2) Load 145 - 147: 7(ivec2) IAdd 146 144 - 148: 57(ptr) AccessChain 10 36 - Store 148 147 - 149: 34(ptr) AccessChain 30(fp2D) 36 - 150: 7(ivec2) Load 149 - 151: 57(ptr) AccessChain 10 39 - 152: 7(ivec2) Load 151 - 153: 7(ivec2) IAdd 152 150 - 154: 57(ptr) AccessChain 10 39 - Store 154 153 - 155: 34(ptr) AccessChain 30(fp2D) 39 - 156: 7(ivec2) Load 155 - 157: 57(ptr) AccessChain 10 42 - 158: 7(ivec2) Load 157 - 159: 7(ivec2) IAdd 158 156 - 160: 57(ptr) AccessChain 10 42 - Store 160 159 - 161: 44(ptr) AccessChain 30(fp2D) 42 - 162: 6(int) Load 161 - 163: 53(ptr) AccessChain 10 46 - 164: 6(int) Load 163 - 165: 6(int) IAdd 164 162 - 166: 53(ptr) AccessChain 10 46 - Store 166 165 - 167: 44(ptr) AccessChain 30(fp2D) 46 - 168: 6(int) Load 167 - 169: 53(ptr) AccessChain 10 68 - 170: 6(int) Load 169 - 171: 6(int) IAdd 170 168 - 172: 53(ptr) AccessChain 10 68 - Store 172 171 - 173: 15 Load 17(sample2D) - 174: 19(fvec2) Load 21(P2) - 175: 13(float) Load 125(lodClamp) - 176: 11(int) Load 24(granularity) - 177: 13(float) Load 76(bias) - 179:178(ResType) ImageSampleFootprintNV 173 174 176 27 Bias MinLod 177 175 - 180: 7(ivec2) CompositeExtract 179 1 - 181: 34(ptr) AccessChain 30(fp2D) 12 - Store 181 180 - 182: 7(ivec2) CompositeExtract 179 2 - 183: 34(ptr) AccessChain 30(fp2D) 36 - Store 183 182 - 184: 7(ivec2) CompositeExtract 179 3 - 185: 34(ptr) AccessChain 30(fp2D) 39 - Store 185 184 - 186: 6(int) CompositeExtract 179 4 - 187: 44(ptr) AccessChain 30(fp2D) 42 - Store 187 186 - 188: 6(int) CompositeExtract 179 5 - 189: 44(ptr) AccessChain 30(fp2D) 46 - Store 189 188 - 190: 26(bool) CompositeExtract 179 0 - 191: 6(int) Select 190 50 51 - 192: 53(ptr) AccessChain 10 12 - Store 192 191 - 193: 34(ptr) AccessChain 30(fp2D) 12 - 194: 7(ivec2) Load 193 - 195: 57(ptr) AccessChain 10 36 - 196: 7(ivec2) Load 195 - 197: 7(ivec2) IAdd 196 194 - 198: 57(ptr) AccessChain 10 36 - Store 198 197 - 199: 34(ptr) AccessChain 30(fp2D) 36 - 200: 7(ivec2) Load 199 - 201: 57(ptr) AccessChain 10 39 - 202: 7(ivec2) Load 201 - 203: 7(ivec2) IAdd 202 200 - 204: 57(ptr) AccessChain 10 39 - Store 204 203 - 205: 34(ptr) AccessChain 30(fp2D) 39 - 206: 7(ivec2) Load 205 - 207: 57(ptr) AccessChain 10 42 - 208: 7(ivec2) Load 207 - 209: 7(ivec2) IAdd 208 206 - 210: 57(ptr) AccessChain 10 42 - Store 210 209 - 211: 44(ptr) AccessChain 30(fp2D) 42 - 212: 6(int) Load 211 - 213: 53(ptr) AccessChain 10 46 - 214: 6(int) Load 213 - 215: 6(int) IAdd 214 212 - 216: 53(ptr) AccessChain 10 46 - Store 216 215 - 217: 44(ptr) AccessChain 30(fp2D) 46 - 218: 6(int) Load 217 - 219: 53(ptr) AccessChain 10 68 - 220: 6(int) Load 219 - 221: 6(int) IAdd 220 218 - 222: 53(ptr) AccessChain 10 68 - Store 222 221 - 223: 15 Load 17(sample2D) - 224: 19(fvec2) Load 21(P2) - 226: 13(float) Load 225(lod) - 227: 11(int) Load 24(granularity) - 229:228(ResType) ImageSampleFootprintNV 223 224 227 27 Lod 226 - 230: 7(ivec2) CompositeExtract 229 1 - 231: 34(ptr) AccessChain 30(fp2D) 12 - Store 231 230 - 232: 7(ivec2) CompositeExtract 229 2 - 233: 34(ptr) AccessChain 30(fp2D) 36 - Store 233 232 - 234: 7(ivec2) CompositeExtract 229 3 - 235: 34(ptr) AccessChain 30(fp2D) 39 - Store 235 234 - 236: 6(int) CompositeExtract 229 4 - 237: 44(ptr) AccessChain 30(fp2D) 42 - Store 237 236 - 238: 6(int) CompositeExtract 229 5 - 239: 44(ptr) AccessChain 30(fp2D) 46 - Store 239 238 - 240: 26(bool) CompositeExtract 229 0 - 241: 6(int) Select 240 50 51 - 242: 53(ptr) AccessChain 10 12 - Store 242 241 - 243: 34(ptr) AccessChain 30(fp2D) 12 - 244: 7(ivec2) Load 243 - 245: 57(ptr) AccessChain 10 36 - 246: 7(ivec2) Load 245 - 247: 7(ivec2) IAdd 246 244 - 248: 57(ptr) AccessChain 10 36 - Store 248 247 - 249: 34(ptr) AccessChain 30(fp2D) 36 - 250: 7(ivec2) Load 249 - 251: 57(ptr) AccessChain 10 39 - 252: 7(ivec2) Load 251 - 253: 7(ivec2) IAdd 252 250 - 254: 57(ptr) AccessChain 10 39 - Store 254 253 - 255: 34(ptr) AccessChain 30(fp2D) 39 - 256: 7(ivec2) Load 255 - 257: 57(ptr) AccessChain 10 42 - 258: 7(ivec2) Load 257 - 259: 7(ivec2) IAdd 258 256 - 260: 57(ptr) AccessChain 10 42 - Store 260 259 - 261: 44(ptr) AccessChain 30(fp2D) 42 - 262: 6(int) Load 261 - 263: 53(ptr) AccessChain 10 46 - 264: 6(int) Load 263 - 265: 6(int) IAdd 264 262 - 266: 53(ptr) AccessChain 10 46 - Store 266 265 - 267: 44(ptr) AccessChain 30(fp2D) 46 - 268: 6(int) Load 267 - 269: 53(ptr) AccessChain 10 68 - 270: 6(int) Load 269 - 271: 6(int) IAdd 270 268 - 272: 53(ptr) AccessChain 10 68 - Store 272 271 - 273: 15 Load 17(sample2D) - 274: 19(fvec2) Load 21(P2) - 276: 19(fvec2) Load 275(dx) - 278: 19(fvec2) Load 277(dy) - 279: 11(int) Load 24(granularity) - 281:280(ResType) ImageSampleFootprintNV 273 274 279 27 Grad 276 278 - 282: 7(ivec2) CompositeExtract 281 1 - 283: 34(ptr) AccessChain 30(fp2D) 12 - Store 283 282 - 284: 7(ivec2) CompositeExtract 281 2 - 285: 34(ptr) AccessChain 30(fp2D) 36 - Store 285 284 - 286: 7(ivec2) CompositeExtract 281 3 - 287: 34(ptr) AccessChain 30(fp2D) 39 - Store 287 286 - 288: 6(int) CompositeExtract 281 4 - 289: 44(ptr) AccessChain 30(fp2D) 42 - Store 289 288 - 290: 6(int) CompositeExtract 281 5 - 291: 44(ptr) AccessChain 30(fp2D) 46 - Store 291 290 - 292: 26(bool) CompositeExtract 281 0 - 293: 6(int) Select 292 50 51 - 294: 53(ptr) AccessChain 10 12 - Store 294 293 - 295: 34(ptr) AccessChain 30(fp2D) 12 - 296: 7(ivec2) Load 295 - 297: 57(ptr) AccessChain 10 36 - 298: 7(ivec2) Load 297 - 299: 7(ivec2) IAdd 298 296 - 300: 57(ptr) AccessChain 10 36 - Store 300 299 - 301: 34(ptr) AccessChain 30(fp2D) 36 - 302: 7(ivec2) Load 301 - 303: 57(ptr) AccessChain 10 39 - 304: 7(ivec2) Load 303 - 305: 7(ivec2) IAdd 304 302 - 306: 57(ptr) AccessChain 10 39 - Store 306 305 - 307: 34(ptr) AccessChain 30(fp2D) 39 - 308: 7(ivec2) Load 307 - 309: 57(ptr) AccessChain 10 42 - 310: 7(ivec2) Load 309 - 311: 7(ivec2) IAdd 310 308 - 312: 57(ptr) AccessChain 10 42 - Store 312 311 - 313: 44(ptr) AccessChain 30(fp2D) 42 - 314: 6(int) Load 313 - 315: 53(ptr) AccessChain 10 46 - 316: 6(int) Load 315 - 317: 6(int) IAdd 316 314 - 318: 53(ptr) AccessChain 10 46 - Store 318 317 - 319: 44(ptr) AccessChain 30(fp2D) 46 - 320: 6(int) Load 319 - 321: 53(ptr) AccessChain 10 68 - 322: 6(int) Load 321 - 323: 6(int) IAdd 322 320 - 324: 53(ptr) AccessChain 10 68 - Store 324 323 - 325: 15 Load 17(sample2D) - 326: 19(fvec2) Load 21(P2) - 327: 19(fvec2) Load 275(dx) - 328: 19(fvec2) Load 277(dy) - 329: 13(float) Load 125(lodClamp) - 330: 11(int) Load 24(granularity) - 332:331(ResType) ImageSampleFootprintNV 325 326 330 27 Grad MinLod 327 328 329 - 333: 7(ivec2) CompositeExtract 332 1 - 334: 34(ptr) AccessChain 30(fp2D) 12 - Store 334 333 - 335: 7(ivec2) CompositeExtract 332 2 - 336: 34(ptr) AccessChain 30(fp2D) 36 - Store 336 335 - 337: 7(ivec2) CompositeExtract 332 3 - 338: 34(ptr) AccessChain 30(fp2D) 39 - Store 338 337 - 339: 6(int) CompositeExtract 332 4 - 340: 44(ptr) AccessChain 30(fp2D) 42 - Store 340 339 - 341: 6(int) CompositeExtract 332 5 - 342: 44(ptr) AccessChain 30(fp2D) 46 - Store 342 341 - 343: 26(bool) CompositeExtract 332 0 - 344: 6(int) Select 343 50 51 - 345: 53(ptr) AccessChain 10 12 - Store 345 344 - 346: 34(ptr) AccessChain 30(fp2D) 12 - 347: 7(ivec2) Load 346 - 348: 57(ptr) AccessChain 10 36 - 349: 7(ivec2) Load 348 - 350: 7(ivec2) IAdd 349 347 - 351: 57(ptr) AccessChain 10 36 - Store 351 350 - 352: 34(ptr) AccessChain 30(fp2D) 36 - 353: 7(ivec2) Load 352 - 354: 57(ptr) AccessChain 10 39 - 355: 7(ivec2) Load 354 - 356: 7(ivec2) IAdd 355 353 - 357: 57(ptr) AccessChain 10 39 - Store 357 356 - 358: 34(ptr) AccessChain 30(fp2D) 39 - 359: 7(ivec2) Load 358 - 360: 57(ptr) AccessChain 10 42 - 361: 7(ivec2) Load 360 - 362: 7(ivec2) IAdd 361 359 - 363: 57(ptr) AccessChain 10 42 - Store 363 362 - 364: 44(ptr) AccessChain 30(fp2D) 42 - 365: 6(int) Load 364 - 366: 53(ptr) AccessChain 10 46 - 367: 6(int) Load 366 - 368: 6(int) IAdd 367 365 - 369: 53(ptr) AccessChain 10 46 - Store 369 368 - 370: 44(ptr) AccessChain 30(fp2D) 46 - 371: 6(int) Load 370 - 372: 53(ptr) AccessChain 10 68 - 373: 6(int) Load 372 - 374: 6(int) IAdd 373 371 - 375: 53(ptr) AccessChain 10 68 - Store 375 374 - 384: 381 Load 383(sample3D) - 388: 385(fvec3) Load 387(P3) - 389: 11(int) Load 24(granularity) - 394:393(ResType) ImageSampleFootprintNV 384 388 389 27 - 395: 376(ivec3) CompositeExtract 394 1 - 397: 396(ptr) AccessChain 392(fp3D) 12 - Store 397 395 - 398: 376(ivec3) CompositeExtract 394 2 - 399: 396(ptr) AccessChain 392(fp3D) 36 - Store 399 398 - 400: 7(ivec2) CompositeExtract 394 3 - 401: 34(ptr) AccessChain 392(fp3D) 39 - Store 401 400 - 402: 6(int) CompositeExtract 394 4 - 403: 44(ptr) AccessChain 392(fp3D) 42 - Store 403 402 - 404: 6(int) CompositeExtract 394 5 - 405: 44(ptr) AccessChain 392(fp3D) 46 - Store 405 404 - 406: 26(bool) CompositeExtract 394 0 - 407: 6(int) Select 406 50 51 - 408: 53(ptr) AccessChain 379 12 - Store 408 407 - 409: 396(ptr) AccessChain 392(fp3D) 12 - 410: 376(ivec3) Load 409 - 412: 411(ptr) AccessChain 379 36 - Store 412 410 - 413: 396(ptr) AccessChain 392(fp3D) 36 - 414: 376(ivec3) Load 413 - 415: 411(ptr) AccessChain 379 39 - Store 415 414 - 416: 34(ptr) AccessChain 392(fp3D) 39 - 417: 7(ivec2) Load 416 - 418: 57(ptr) AccessChain 379 42 - Store 418 417 - 419: 44(ptr) AccessChain 392(fp3D) 42 - 420: 6(int) Load 419 - 421: 53(ptr) AccessChain 379 46 - Store 421 420 - 422: 44(ptr) AccessChain 392(fp3D) 46 - 423: 6(int) Load 422 - 424: 53(ptr) AccessChain 379 68 - Store 424 423 - 425: 381 Load 383(sample3D) - 426: 385(fvec3) Load 387(P3) - 427: 11(int) Load 24(granularity) - 428: 13(float) Load 76(bias) - 430:429(ResType) ImageSampleFootprintNV 425 426 427 27 Bias 428 - 431: 376(ivec3) CompositeExtract 430 1 - 432: 396(ptr) AccessChain 392(fp3D) 12 - Store 432 431 - 433: 376(ivec3) CompositeExtract 430 2 - 434: 396(ptr) AccessChain 392(fp3D) 36 - Store 434 433 - 435: 7(ivec2) CompositeExtract 430 3 - 436: 34(ptr) AccessChain 392(fp3D) 39 - Store 436 435 - 437: 6(int) CompositeExtract 430 4 - 438: 44(ptr) AccessChain 392(fp3D) 42 - Store 438 437 - 439: 6(int) CompositeExtract 430 5 - 440: 44(ptr) AccessChain 392(fp3D) 46 - Store 440 439 - 441: 26(bool) CompositeExtract 430 0 - 442: 6(int) Select 441 50 51 - 443: 53(ptr) AccessChain 379 12 - Store 443 442 - 444: 396(ptr) AccessChain 392(fp3D) 12 - 445: 376(ivec3) Load 444 - 446: 411(ptr) AccessChain 379 36 - 447: 376(ivec3) Load 446 - 448: 376(ivec3) IAdd 447 445 - 449: 411(ptr) AccessChain 379 36 - Store 449 448 - 450: 396(ptr) AccessChain 392(fp3D) 36 - 451: 376(ivec3) Load 450 - 452: 411(ptr) AccessChain 379 39 - 453: 376(ivec3) Load 452 - 454: 376(ivec3) IAdd 453 451 - 455: 411(ptr) AccessChain 379 39 - Store 455 454 - 456: 34(ptr) AccessChain 392(fp3D) 39 - 457: 7(ivec2) Load 456 - 458: 57(ptr) AccessChain 379 42 - 459: 7(ivec2) Load 458 - 460: 7(ivec2) IAdd 459 457 - 461: 57(ptr) AccessChain 379 42 - Store 461 460 - 462: 44(ptr) AccessChain 392(fp3D) 42 - 463: 6(int) Load 462 - 464: 53(ptr) AccessChain 379 46 - 465: 6(int) Load 464 - 466: 6(int) IAdd 465 463 - 467: 53(ptr) AccessChain 379 46 - Store 467 466 - 468: 44(ptr) AccessChain 392(fp3D) 46 - 469: 6(int) Load 468 - 470: 53(ptr) AccessChain 379 68 - 471: 6(int) Load 470 - 472: 6(int) IAdd 471 469 - 473: 53(ptr) AccessChain 379 68 - Store 473 472 - 474: 381 Load 383(sample3D) - 475: 385(fvec3) Load 387(P3) - 476: 13(float) Load 125(lodClamp) - 477: 11(int) Load 24(granularity) - 479:478(ResType) ImageSampleFootprintNV 474 475 477 27 MinLod 476 - 480: 376(ivec3) CompositeExtract 479 1 - 481: 396(ptr) AccessChain 392(fp3D) 12 - Store 481 480 - 482: 376(ivec3) CompositeExtract 479 2 - 483: 396(ptr) AccessChain 392(fp3D) 36 - Store 483 482 - 484: 7(ivec2) CompositeExtract 479 3 - 485: 34(ptr) AccessChain 392(fp3D) 39 - Store 485 484 - 486: 6(int) CompositeExtract 479 4 - 487: 44(ptr) AccessChain 392(fp3D) 42 - Store 487 486 - 488: 6(int) CompositeExtract 479 5 - 489: 44(ptr) AccessChain 392(fp3D) 46 - Store 489 488 - 490: 26(bool) CompositeExtract 479 0 - 491: 6(int) Select 490 50 51 - 492: 53(ptr) AccessChain 379 12 - Store 492 491 - 493: 396(ptr) AccessChain 392(fp3D) 12 - 494: 376(ivec3) Load 493 - 495: 411(ptr) AccessChain 379 36 - 496: 376(ivec3) Load 495 - 497: 376(ivec3) IAdd 496 494 - 498: 411(ptr) AccessChain 379 36 - Store 498 497 - 499: 396(ptr) AccessChain 392(fp3D) 36 - 500: 376(ivec3) Load 499 - 501: 411(ptr) AccessChain 379 39 - 502: 376(ivec3) Load 501 - 503: 376(ivec3) IAdd 502 500 - 504: 411(ptr) AccessChain 379 39 - Store 504 503 - 505: 34(ptr) AccessChain 392(fp3D) 39 - 506: 7(ivec2) Load 505 - 507: 57(ptr) AccessChain 379 42 - 508: 7(ivec2) Load 507 - 509: 7(ivec2) IAdd 508 506 - 510: 57(ptr) AccessChain 379 42 - Store 510 509 - 511: 44(ptr) AccessChain 392(fp3D) 42 - 512: 6(int) Load 511 - 513: 53(ptr) AccessChain 379 46 - 514: 6(int) Load 513 - 515: 6(int) IAdd 514 512 - 516: 53(ptr) AccessChain 379 46 - Store 516 515 - 517: 44(ptr) AccessChain 392(fp3D) 46 - 518: 6(int) Load 517 - 519: 53(ptr) AccessChain 379 68 - 520: 6(int) Load 519 - 521: 6(int) IAdd 520 518 - 522: 53(ptr) AccessChain 379 68 - Store 522 521 - 523: 381 Load 383(sample3D) - 524: 385(fvec3) Load 387(P3) - 525: 13(float) Load 125(lodClamp) - 526: 11(int) Load 24(granularity) - 527: 13(float) Load 76(bias) - 529:528(ResType) ImageSampleFootprintNV 523 524 526 27 Bias MinLod 527 525 - 530: 376(ivec3) CompositeExtract 529 1 - 531: 396(ptr) AccessChain 392(fp3D) 12 - Store 531 530 - 532: 376(ivec3) CompositeExtract 529 2 - 533: 396(ptr) AccessChain 392(fp3D) 36 - Store 533 532 - 534: 7(ivec2) CompositeExtract 529 3 - 535: 34(ptr) AccessChain 392(fp3D) 39 - Store 535 534 - 536: 6(int) CompositeExtract 529 4 - 537: 44(ptr) AccessChain 392(fp3D) 42 - Store 537 536 - 538: 6(int) CompositeExtract 529 5 - 539: 44(ptr) AccessChain 392(fp3D) 46 - Store 539 538 - 540: 26(bool) CompositeExtract 529 0 - 541: 6(int) Select 540 50 51 - 542: 53(ptr) AccessChain 379 12 - Store 542 541 - 543: 396(ptr) AccessChain 392(fp3D) 12 - 544: 376(ivec3) Load 543 - 545: 411(ptr) AccessChain 379 36 - 546: 376(ivec3) Load 545 - 547: 376(ivec3) IAdd 546 544 - 548: 411(ptr) AccessChain 379 36 - Store 548 547 - 549: 396(ptr) AccessChain 392(fp3D) 36 - 550: 376(ivec3) Load 549 - 551: 411(ptr) AccessChain 379 39 - 552: 376(ivec3) Load 551 - 553: 376(ivec3) IAdd 552 550 - 554: 411(ptr) AccessChain 379 39 - Store 554 553 - 555: 34(ptr) AccessChain 392(fp3D) 39 - 556: 7(ivec2) Load 555 - 557: 57(ptr) AccessChain 379 42 - 558: 7(ivec2) Load 557 - 559: 7(ivec2) IAdd 558 556 - 560: 57(ptr) AccessChain 379 42 - Store 560 559 - 561: 44(ptr) AccessChain 392(fp3D) 42 - 562: 6(int) Load 561 - 563: 53(ptr) AccessChain 379 46 - 564: 6(int) Load 563 - 565: 6(int) IAdd 564 562 - 566: 53(ptr) AccessChain 379 46 - Store 566 565 - 567: 44(ptr) AccessChain 392(fp3D) 46 - 568: 6(int) Load 567 - 569: 53(ptr) AccessChain 379 68 - 570: 6(int) Load 569 - 571: 6(int) IAdd 570 568 - 572: 53(ptr) AccessChain 379 68 - Store 572 571 - 573: 381 Load 383(sample3D) - 574: 385(fvec3) Load 387(P3) - 575: 13(float) Load 225(lod) - 576: 11(int) Load 24(granularity) - 578:577(ResType) ImageSampleFootprintNV 573 574 576 27 Lod 575 - 579: 376(ivec3) CompositeExtract 578 1 - 580: 396(ptr) AccessChain 392(fp3D) 12 - Store 580 579 - 581: 376(ivec3) CompositeExtract 578 2 - 582: 396(ptr) AccessChain 392(fp3D) 36 - Store 582 581 - 583: 7(ivec2) CompositeExtract 578 3 - 584: 34(ptr) AccessChain 392(fp3D) 39 - Store 584 583 - 585: 6(int) CompositeExtract 578 4 - 586: 44(ptr) AccessChain 392(fp3D) 42 - Store 586 585 - 587: 6(int) CompositeExtract 578 5 - 588: 44(ptr) AccessChain 392(fp3D) 46 - Store 588 587 - 589: 26(bool) CompositeExtract 578 0 - 590: 6(int) Select 589 50 51 - 591: 53(ptr) AccessChain 379 12 - Store 591 590 - 592: 396(ptr) AccessChain 392(fp3D) 12 - 593: 376(ivec3) Load 592 - 594: 411(ptr) AccessChain 379 36 - 595: 376(ivec3) Load 594 - 596: 376(ivec3) IAdd 595 593 - 597: 411(ptr) AccessChain 379 36 - Store 597 596 - 598: 396(ptr) AccessChain 392(fp3D) 36 - 599: 376(ivec3) Load 598 - 600: 411(ptr) AccessChain 379 39 - 601: 376(ivec3) Load 600 - 602: 376(ivec3) IAdd 601 599 - 603: 411(ptr) AccessChain 379 39 - Store 603 602 - 604: 34(ptr) AccessChain 392(fp3D) 39 - 605: 7(ivec2) Load 604 - 606: 57(ptr) AccessChain 379 42 - 607: 7(ivec2) Load 606 - 608: 7(ivec2) IAdd 607 605 - 609: 57(ptr) AccessChain 379 42 - Store 609 608 - 610: 44(ptr) AccessChain 392(fp3D) 42 - 611: 6(int) Load 610 - 612: 53(ptr) AccessChain 379 46 - 613: 6(int) Load 612 - 614: 6(int) IAdd 613 611 - 615: 53(ptr) AccessChain 379 46 - Store 615 614 - 616: 44(ptr) AccessChain 392(fp3D) 46 - 617: 6(int) Load 616 - 618: 53(ptr) AccessChain 379 68 - 619: 6(int) Load 618 - 620: 6(int) IAdd 619 617 - 621: 53(ptr) AccessChain 379 68 - Store 621 620 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.shaderStencilExport.frag.out b/deps/glslang/Test/baseResults/spv.shaderStencilExport.frag.out deleted file mode 100644 index f73349c9..00000000 --- a/deps/glslang/Test/baseResults/spv.shaderStencilExport.frag.out +++ /dev/null @@ -1,28 +0,0 @@ -spv.shaderStencilExport.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 10 - - Capability Shader - Capability StencilExportEXT - Extension "SPV_EXT_shader_stencil_export" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 8 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_ARB_shader_stencil_export" - Name 4 "main" - Name 8 "gl_FragStencilRefARB" - Decorate 8(gl_FragStencilRefARB) BuiltIn FragStencilRefEXT - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Output 6(int) -8(gl_FragStencilRefARB): 7(ptr) Variable Output - 9: 6(int) Constant 100 - 4(main): 2 Function None 3 - 5: Label - Store 8(gl_FragStencilRefARB) 9 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.shadingRate.frag.out b/deps/glslang/Test/baseResults/spv.shadingRate.frag.out deleted file mode 100644 index 866ae609..00000000 --- a/deps/glslang/Test/baseResults/spv.shadingRate.frag.out +++ /dev/null @@ -1,48 +0,0 @@ -spv.shadingRate.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 21 - - Capability Shader - Capability FragmentDensityEXT - Extension "SPV_NV_shading_rate" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 9 13 17 19 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_NV_shading_rate_image" - Name 4 "main" - Name 9 "FragmentSize" - Name 13 "gl_FragmentSizeNV" - Name 17 "InvocationsPerPixel" - Name 19 "gl_InvocationsPerPixelNV" - Decorate 9(FragmentSize) Location 0 - Decorate 13(gl_FragmentSizeNV) Flat - Decorate 13(gl_FragmentSizeNV) BuiltIn FragSizeEXT - Decorate 17(InvocationsPerPixel) Location 2 - Decorate 19(gl_InvocationsPerPixelNV) Flat - Decorate 19(gl_InvocationsPerPixelNV) BuiltIn FragInvocationCountEXT - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 2 - 8: TypePointer Output 7(fvec2) - 9(FragmentSize): 8(ptr) Variable Output - 10: TypeInt 32 1 - 11: TypeVector 10(int) 2 - 12: TypePointer Input 11(ivec2) -13(gl_FragmentSizeNV): 12(ptr) Variable Input - 16: TypePointer Output 10(int) -17(InvocationsPerPixel): 16(ptr) Variable Output - 18: TypePointer Input 10(int) -19(gl_InvocationsPerPixelNV): 18(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 14: 11(ivec2) Load 13(gl_FragmentSizeNV) - 15: 7(fvec2) ConvertSToF 14 - Store 9(FragmentSize) 15 - 20: 10(int) Load 19(gl_InvocationsPerPixelNV) - Store 17(InvocationsPerPixel) 20 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.shiftOps.frag.out b/deps/glslang/Test/baseResults/spv.shiftOps.frag.out deleted file mode 100644 index 03f75467..00000000 --- a/deps/glslang/Test/baseResults/spv.shiftOps.frag.out +++ /dev/null @@ -1,70 +0,0 @@ -spv.shiftOps.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 38 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 9 11 15 25 27 30 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - Name 4 "main" - Name 9 "icolor" - Name 11 "i3" - Name 15 "u1" - Name 25 "ucolor" - Name 27 "u3" - Name 30 "i1" - Decorate 9(icolor) Location 0 - Decorate 11(i3) Flat - Decorate 11(i3) Location 2 - Decorate 15(u1) Flat - Decorate 15(u1) Location 1 - Decorate 25(ucolor) Location 1 - Decorate 27(u3) Flat - Decorate 27(u3) Location 3 - Decorate 30(i1) Flat - Decorate 30(i1) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypeVector 6(int) 3 - 8: TypePointer Output 7(ivec3) - 9(icolor): 8(ptr) Variable Output - 10: TypePointer Input 7(ivec3) - 11(i3): 10(ptr) Variable Input - 13: TypeInt 32 0 - 14: TypePointer Input 13(int) - 15(u1): 14(ptr) Variable Input - 17: TypeVector 13(int) 3 - 20: 13(int) Constant 4 - 24: TypePointer Output 17(ivec3) - 25(ucolor): 24(ptr) Variable Output - 26: TypePointer Input 17(ivec3) - 27(u3): 26(ptr) Variable Input - 29: TypePointer Input 6(int) - 30(i1): 29(ptr) Variable Input - 34: 6(int) Constant 5 - 4(main): 2 Function None 3 - 5: Label - 12: 7(ivec3) Load 11(i3) - 16: 13(int) Load 15(u1) - 18: 17(ivec3) CompositeConstruct 16 16 16 - 19: 7(ivec3) ShiftLeftLogical 12 18 - Store 9(icolor) 19 - 21: 7(ivec3) Load 9(icolor) - 22: 17(ivec3) CompositeConstruct 20 20 20 - 23: 7(ivec3) ShiftLeftLogical 21 22 - Store 9(icolor) 23 - 28: 17(ivec3) Load 27(u3) - 31: 6(int) Load 30(i1) - 32: 7(ivec3) CompositeConstruct 31 31 31 - 33: 17(ivec3) ShiftRightLogical 28 32 - Store 25(ucolor) 33 - 35: 17(ivec3) Load 25(ucolor) - 36: 7(ivec3) CompositeConstruct 34 34 34 - 37: 17(ivec3) ShiftRightLogical 35 36 - Store 25(ucolor) 37 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.shortCircuit.frag.out b/deps/glslang/Test/baseResults/spv.shortCircuit.frag.out deleted file mode 100644 index 3c706f77..00000000 --- a/deps/glslang/Test/baseResults/spv.shortCircuit.frag.out +++ /dev/null @@ -1,241 +0,0 @@ -spv.shortCircuit.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 147 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 12 24 34 113 140 142 - ExecutionMode 4 OriginUpperLeft - Source GLSL 400 - Name 4 "main" - Name 8 "foo(" - Name 12 "of1" - Name 24 "of4" - Name 27 "ub" - Name 34 "ui" - Name 44 "uba" - Name 113 "uf" - Name 140 "uiv4" - Name 142 "uv4" - Name 145 "ub41" - Name 146 "ub42" - Decorate 12(of1) Location 0 - Decorate 24(of4) Location 1 - Decorate 34(ui) Flat - Decorate 34(ui) Location 3 - Decorate 113(uf) Location 2 - Decorate 140(uiv4) Flat - Decorate 140(uiv4) Location 0 - Decorate 142(uv4) Location 1 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeBool - 7: TypeFunction 6(bool) - 10: TypeFloat 32 - 11: TypePointer Output 10(float) - 12(of1): 11(ptr) Variable Output - 14: 10(float) Constant 1065353216 - 17: 10(float) Constant 1092616192 - 21: 10(float) Constant 0 - 22: TypeVector 10(float) 4 - 23: TypePointer Output 22(fvec4) - 24(of4): 23(ptr) Variable Output - 25: 22(fvec4) ConstantComposite 21 21 21 21 - 26: TypePointer Private 6(bool) - 27(ub): 26(ptr) Variable Private - 32: TypeInt 32 1 - 33: TypePointer Input 32(int) - 34(ui): 33(ptr) Variable Input - 36: 32(int) Constant 2 - 44(uba): 26(ptr) Variable Private - 112: TypePointer Input 10(float) - 113(uf): 112(ptr) Variable Input - 116: 10(float) Constant 1082130432 - 138: TypeVector 32(int) 4 - 139: TypePointer Input 138(ivec4) - 140(uiv4): 139(ptr) Variable Input - 141: TypePointer Input 22(fvec4) - 142(uv4): 141(ptr) Variable Input - 143: TypeVector 6(bool) 4 - 144: TypePointer Private 143(bvec4) - 145(ub41): 144(ptr) Variable Private - 146(ub42): 144(ptr) Variable Private - 4(main): 2 Function None 3 - 5: Label - Store 12(of1) 21 - Store 24(of4) 25 - 28: 6(bool) Load 27(ub) - 29: 6(bool) LogicalNot 28 - SelectionMerge 31 None - BranchConditional 29 30 31 - 30: Label - 35: 32(int) Load 34(ui) - 37: 6(bool) SGreaterThan 35 36 - Branch 31 - 31: Label - 38: 6(bool) Phi 28 5 37 30 - SelectionMerge 40 None - BranchConditional 38 39 40 - 39: Label - 41: 10(float) Load 12(of1) - 42: 10(float) FAdd 41 14 - Store 12(of1) 42 - Branch 40 - 40: Label - 43: 6(bool) Load 27(ub) - 45: 6(bool) Load 44(uba) - 46: 6(bool) LogicalNot 45 - 47: 6(bool) LogicalAnd 43 46 - SelectionMerge 49 None - BranchConditional 47 48 49 - 48: Label - 50: 10(float) Load 12(of1) - 51: 10(float) FAdd 50 14 - Store 12(of1) 51 - Branch 49 - 49: Label - 52: 6(bool) Load 27(ub) - 53: 6(bool) LogicalNot 52 - SelectionMerge 55 None - BranchConditional 53 54 55 - 54: Label - 56: 6(bool) FunctionCall 8(foo() - Branch 55 - 55: Label - 57: 6(bool) Phi 52 49 56 54 - SelectionMerge 59 None - BranchConditional 57 58 59 - 58: Label - 60: 10(float) Load 12(of1) - 61: 10(float) FAdd 60 14 - Store 12(of1) 61 - Branch 59 - 59: Label - 62: 6(bool) Load 27(ub) - SelectionMerge 64 None - BranchConditional 62 63 64 - 63: Label - 65: 6(bool) FunctionCall 8(foo() - Branch 64 - 64: Label - 66: 6(bool) Phi 62 59 65 63 - SelectionMerge 68 None - BranchConditional 66 67 68 - 67: Label - 69: 10(float) Load 12(of1) - 70: 10(float) FAdd 69 14 - Store 12(of1) 70 - Branch 68 - 68: Label - 71: 6(bool) FunctionCall 8(foo() - 72: 6(bool) Load 27(ub) - 73: 6(bool) LogicalOr 71 72 - SelectionMerge 75 None - BranchConditional 73 74 75 - 74: Label - 76: 10(float) Load 12(of1) - 77: 10(float) FAdd 76 14 - Store 12(of1) 77 - Branch 75 - 75: Label - 78: 6(bool) FunctionCall 8(foo() - 79: 6(bool) Load 27(ub) - 80: 6(bool) LogicalAnd 78 79 - SelectionMerge 82 None - BranchConditional 80 81 82 - 81: Label - 83: 10(float) Load 12(of1) - 84: 10(float) FAdd 83 14 - Store 12(of1) 84 - Branch 82 - 82: Label - 85: 6(bool) Load 27(ub) - 86: 6(bool) LogicalNot 85 - SelectionMerge 88 None - BranchConditional 86 87 88 - 87: Label - 89: 10(float) Load 12(of1) - 90: 10(float) FAdd 89 14 - Store 12(of1) 90 - 91: 6(bool) FOrdGreaterThan 90 14 - Branch 88 - 88: Label - 92: 6(bool) Phi 85 82 91 87 - SelectionMerge 94 None - BranchConditional 92 93 94 - 93: Label - 95: 22(fvec4) Load 24(of4) - 96: 22(fvec4) CompositeConstruct 14 14 14 14 - 97: 22(fvec4) FAdd 95 96 - Store 24(of4) 97 - Branch 94 - 94: Label - 98: 10(float) Load 12(of1) - 99: 10(float) FAdd 98 14 - Store 12(of1) 99 - 100: 6(bool) FOrdGreaterThan 99 14 - 101: 6(bool) Load 27(ub) - 102: 6(bool) LogicalOr 100 101 - SelectionMerge 104 None - BranchConditional 102 103 104 - 103: Label - 105: 22(fvec4) Load 24(of4) - 106: 22(fvec4) CompositeConstruct 14 14 14 14 - 107: 22(fvec4) FAdd 105 106 - Store 24(of4) 107 - Branch 104 - 104: Label - 108: 6(bool) Load 27(ub) - 109: 6(bool) LogicalNot 108 - SelectionMerge 111 None - BranchConditional 109 110 111 - 110: Label - 114: 10(float) Load 113(uf) - 115: 10(float) ExtInst 1(GLSL.std.450) 13(Sin) 114 - 117: 10(float) FMul 115 116 - 118: 10(float) Load 12(of1) - 119: 6(bool) FOrdGreaterThan 117 118 - Branch 111 - 111: Label - 120: 6(bool) Phi 108 104 119 110 - SelectionMerge 122 None - BranchConditional 120 121 122 - 121: Label - 123: 10(float) Load 12(of1) - 124: 10(float) FAdd 123 14 - Store 12(of1) 124 - Branch 122 - 122: Label - 125: 6(bool) Load 27(ub) - SelectionMerge 127 None - BranchConditional 125 126 127 - 126: Label - 128: 10(float) Load 113(uf) - 129: 10(float) ExtInst 1(GLSL.std.450) 13(Sin) 128 - 130: 10(float) FMul 129 116 - 131: 10(float) Load 12(of1) - 132: 6(bool) FOrdGreaterThan 130 131 - Branch 127 - 127: Label - 133: 6(bool) Phi 125 122 132 126 - SelectionMerge 135 None - BranchConditional 133 134 135 - 134: Label - 136: 10(float) Load 12(of1) - 137: 10(float) FAdd 136 14 - Store 12(of1) 137 - Branch 135 - 135: Label - Return - FunctionEnd - 8(foo(): 6(bool) Function None 7 - 9: Label - 13: 10(float) Load 12(of1) - 15: 10(float) FAdd 13 14 - Store 12(of1) 15 - 16: 10(float) Load 12(of1) - 18: 6(bool) FOrdGreaterThan 16 17 - ReturnValue 18 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.simpleFunctionCall.frag.out b/deps/glslang/Test/baseResults/spv.simpleFunctionCall.frag.out deleted file mode 100644 index bda91b7f..00000000 --- a/deps/glslang/Test/baseResults/spv.simpleFunctionCall.frag.out +++ /dev/null @@ -1,37 +0,0 @@ -spv.simpleFunctionCall.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 19 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 12 17 - ExecutionMode 4 OriginUpperLeft - Source GLSL 150 - Name 4 "main" - Name 9 "foo(" - Name 12 "BaseColor" - Name 17 "gl_FragColor" - Decorate 12(BaseColor) Location 0 - Decorate 17(gl_FragColor) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 11: TypePointer Input 7(fvec4) - 12(BaseColor): 11(ptr) Variable Input - 16: TypePointer Output 7(fvec4) -17(gl_FragColor): 16(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 18: 7(fvec4) FunctionCall 9(foo() - Store 17(gl_FragColor) 18 - Return - FunctionEnd - 9(foo(): 7(fvec4) Function None 8 - 10: Label - 13: 7(fvec4) Load 12(BaseColor) - ReturnValue 13 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.simpleMat.vert.out b/deps/glslang/Test/baseResults/spv.simpleMat.vert.out deleted file mode 100644 index cc9b2b21..00000000 --- a/deps/glslang/Test/baseResults/spv.simpleMat.vert.out +++ /dev/null @@ -1,66 +0,0 @@ -spv.simpleMat.vert -WARNING: 0:3: varying deprecated in version 130; may be removed in future release - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 39 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 9 12 15 19 23 34 - Source GLSL 330 - Name 4 "main" - Name 9 "glPos" - Name 12 "mvp" - Name 15 "v" - Name 19 "f" - Name 23 "am3" - Name 34 "arraym" - Decorate 9(glPos) Location 5 - Decorate 12(mvp) Location 0 - Decorate 15(v) Location 0 - Decorate 19(f) Location 4 - Decorate 23(am3) Location 1 - Decorate 34(arraym) Location 4 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) - 9(glPos): 8(ptr) Variable Output - 10: TypeMatrix 7(fvec4) 4 - 11: TypePointer Output 10 - 12(mvp): 11(ptr) Variable Output - 14: TypePointer Input 7(fvec4) - 15(v): 14(ptr) Variable Input - 18: TypePointer Output 6(float) - 19(f): 18(ptr) Variable Output - 20: TypeVector 6(float) 3 - 21: TypeMatrix 20(fvec3) 3 - 22: TypePointer Input 21 - 23(am3): 22(ptr) Variable Input - 24: TypeInt 32 1 - 25: 24(int) Constant 2 - 26: TypeInt 32 0 - 27: 26(int) Constant 1 - 28: TypePointer Input 6(float) - 31: 26(int) Constant 3 - 32: TypeArray 10 31 - 33: TypePointer Input 32 - 34(arraym): 33(ptr) Variable Input - 35: 24(int) Constant 1 - 4(main): 2 Function None 3 - 5: Label - 13: 10 Load 12(mvp) - 16: 7(fvec4) Load 15(v) - 17: 7(fvec4) MatrixTimesVector 13 16 - Store 9(glPos) 17 - 29: 28(ptr) AccessChain 23(am3) 25 27 - 30: 6(float) Load 29 - 36: 28(ptr) AccessChain 34(arraym) 35 25 31 - 37: 6(float) Load 36 - 38: 6(float) FAdd 30 37 - Store 19(f) 38 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.smBuiltins.frag.out b/deps/glslang/Test/baseResults/spv.smBuiltins.frag.out deleted file mode 100644 index 3fafa04c..00000000 --- a/deps/glslang/Test/baseResults/spv.smBuiltins.frag.out +++ /dev/null @@ -1,50 +0,0 @@ -spv.smBuiltins.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 20 - - Capability Shader - Capability ShaderSMBuiltinsNV - Extension "SPV_NV_shader_sm_builtins" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 9 11 13 15 17 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_NV_shader_sm_builtins" - Name 4 "main" - Name 9 "data" - Name 11 "gl_WarpsPerSMNV" - Name 13 "gl_SMCountNV" - Name 15 "gl_WarpIDNV" - Name 17 "gl_SMIDNV" - Decorate 9(data) Location 0 - Decorate 11(gl_WarpsPerSMNV) Flat - Decorate 11(gl_WarpsPerSMNV) BuiltIn WarpsPerSMNV - Decorate 13(gl_SMCountNV) Flat - Decorate 13(gl_SMCountNV) BuiltIn SMCountNV - Decorate 15(gl_WarpIDNV) Flat - Decorate 15(gl_WarpIDNV) BuiltIn WarpIDNV - Decorate 17(gl_SMIDNV) Flat - Decorate 17(gl_SMIDNV) BuiltIn SMIDNV - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeVector 6(int) 4 - 8: TypePointer Output 7(ivec4) - 9(data): 8(ptr) Variable Output - 10: TypePointer Input 6(int) -11(gl_WarpsPerSMNV): 10(ptr) Variable Input -13(gl_SMCountNV): 10(ptr) Variable Input - 15(gl_WarpIDNV): 10(ptr) Variable Input - 17(gl_SMIDNV): 10(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 12: 6(int) Load 11(gl_WarpsPerSMNV) - 14: 6(int) Load 13(gl_SMCountNV) - 16: 6(int) Load 15(gl_WarpIDNV) - 18: 6(int) Load 17(gl_SMIDNV) - 19: 7(ivec4) CompositeConstruct 12 14 16 18 - Store 9(data) 19 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.smBuiltins.vert.out b/deps/glslang/Test/baseResults/spv.smBuiltins.vert.out deleted file mode 100644 index 91ad637e..00000000 --- a/deps/glslang/Test/baseResults/spv.smBuiltins.vert.out +++ /dev/null @@ -1,62 +0,0 @@ -spv.smBuiltins.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 29 - - Capability Shader - Capability ShaderSMBuiltinsNV - Extension "SPV_NV_shader_sm_builtins" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 15 18 20 22 24 - Source GLSL 450 - SourceExtension "GL_NV_shader_sm_builtins" - Name 4 "main" - Name 9 "Output" - MemberName 9(Output) 0 "result" - Name 11 "" - Name 15 "gl_VertexIndex" - Name 18 "gl_WarpsPerSMNV" - Name 20 "gl_SMCountNV" - Name 22 "gl_WarpIDNV" - Name 24 "gl_SMIDNV" - Decorate 8 ArrayStride 16 - MemberDecorate 9(Output) 0 Offset 0 - Decorate 9(Output) BufferBlock - Decorate 11 DescriptorSet 0 - Decorate 11 Binding 0 - Decorate 15(gl_VertexIndex) BuiltIn VertexIndex - Decorate 18(gl_WarpsPerSMNV) BuiltIn WarpsPerSMNV - Decorate 20(gl_SMCountNV) BuiltIn SMCountNV - Decorate 22(gl_WarpIDNV) BuiltIn WarpIDNV - Decorate 24(gl_SMIDNV) BuiltIn SMIDNV - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeVector 6(int) 4 - 8: TypeRuntimeArray 7(ivec4) - 9(Output): TypeStruct 8 - 10: TypePointer Uniform 9(Output) - 11: 10(ptr) Variable Uniform - 12: TypeInt 32 1 - 13: 12(int) Constant 0 - 14: TypePointer Input 12(int) -15(gl_VertexIndex): 14(ptr) Variable Input - 17: TypePointer Input 6(int) -18(gl_WarpsPerSMNV): 17(ptr) Variable Input -20(gl_SMCountNV): 17(ptr) Variable Input - 22(gl_WarpIDNV): 17(ptr) Variable Input - 24(gl_SMIDNV): 17(ptr) Variable Input - 27: TypePointer Uniform 7(ivec4) - 4(main): 2 Function None 3 - 5: Label - 16: 12(int) Load 15(gl_VertexIndex) - 19: 6(int) Load 18(gl_WarpsPerSMNV) - 21: 6(int) Load 20(gl_SMCountNV) - 23: 6(int) Load 22(gl_WarpIDNV) - 25: 6(int) Load 24(gl_SMIDNV) - 26: 7(ivec4) CompositeConstruct 19 21 23 25 - 28: 27(ptr) AccessChain 11 13 16 - Store 28 26 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.sparseTexture.frag.out b/deps/glslang/Test/baseResults/spv.sparseTexture.frag.out deleted file mode 100644 index bf44b81e..00000000 --- a/deps/glslang/Test/baseResults/spv.sparseTexture.frag.out +++ /dev/null @@ -1,613 +0,0 @@ -spv.sparseTexture.frag -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 442 - - Capability Shader - Capability ImageGatherExtended - Capability StorageImageMultisample - Capability SampledRect - Capability SparseResidency - Capability SampledCubeArray - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 33 48 89 397 409 427 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_ARB_sparse_texture2" - Name 4 "main" - Name 8 "resident" - Name 13 "texel" - Name 18 "itexel" - Name 23 "utexel" - Name 29 "s2D" - Name 33 "c2" - Name 35 "ResType" - Name 44 "s3D" - Name 48 "c3" - Name 59 "isCube" - Name 62 "ResType" - Name 71 "s2DShadow" - Name 77 "ResType" - Name 86 "sCubeArrayShadow" - Name 89 "c4" - Name 108 "usCubeArray" - Name 111 "ResType" - Name 140 "us2DRect" - Name 154 "s2DArrayShadow" - Name 188 "s2DMS" - Name 228 "is2DArray" - Name 261 "sCubeShadow" - Name 294 "s2DRectShadow" - Name 394 "i2D" - Name 397 "ic2" - Name 406 "ii3D" - Name 409 "ic3" - Name 418 "i2DMS" - Name 427 "outColor" - Decorate 29(s2D) DescriptorSet 0 - Decorate 29(s2D) Binding 0 - Decorate 33(c2) Location 0 - Decorate 44(s3D) DescriptorSet 0 - Decorate 44(s3D) Binding 1 - Decorate 48(c3) Location 1 - Decorate 59(isCube) DescriptorSet 0 - Decorate 59(isCube) Binding 8 - Decorate 71(s2DShadow) DescriptorSet 0 - Decorate 71(s2DShadow) Binding 2 - Decorate 86(sCubeArrayShadow) DescriptorSet 0 - Decorate 86(sCubeArrayShadow) Binding 6 - Decorate 89(c4) Location 2 - Decorate 108(usCubeArray) DescriptorSet 0 - Decorate 108(usCubeArray) Binding 10 - Decorate 140(us2DRect) DescriptorSet 0 - Decorate 140(us2DRect) Binding 11 - Decorate 154(s2DArrayShadow) DescriptorSet 0 - Decorate 154(s2DArrayShadow) Binding 4 - Decorate 188(s2DMS) DescriptorSet 0 - Decorate 188(s2DMS) Binding 7 - Decorate 228(is2DArray) DescriptorSet 0 - Decorate 228(is2DArray) Binding 9 - Decorate 261(sCubeShadow) DescriptorSet 0 - Decorate 261(sCubeShadow) Binding 3 - Decorate 294(s2DRectShadow) DescriptorSet 0 - Decorate 294(s2DRectShadow) Binding 5 - Decorate 394(i2D) DescriptorSet 0 - Decorate 394(i2D) Binding 12 - Decorate 397(ic2) Flat - Decorate 397(ic2) Location 3 - Decorate 406(ii3D) DescriptorSet 0 - Decorate 406(ii3D) Binding 13 - Decorate 409(ic3) Flat - Decorate 409(ic3) Location 4 - Decorate 418(i2DMS) DescriptorSet 0 - Decorate 418(i2DMS) Binding 14 - Decorate 427(outColor) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Function 6(int) - 9: 6(int) Constant 0 - 10: TypeFloat 32 - 11: TypeVector 10(float) 4 - 12: TypePointer Function 11(fvec4) - 14: 10(float) Constant 0 - 15: 11(fvec4) ConstantComposite 14 14 14 14 - 16: TypeVector 6(int) 4 - 17: TypePointer Function 16(ivec4) - 19: 16(ivec4) ConstantComposite 9 9 9 9 - 20: TypeInt 32 0 - 21: TypeVector 20(int) 4 - 22: TypePointer Function 21(ivec4) - 24: 20(int) Constant 0 - 25: 21(ivec4) ConstantComposite 24 24 24 24 - 26: TypeImage 10(float) 2D sampled format:Unknown - 27: TypeSampledImage 26 - 28: TypePointer UniformConstant 27 - 29(s2D): 28(ptr) Variable UniformConstant - 31: TypeVector 10(float) 2 - 32: TypePointer Input 31(fvec2) - 33(c2): 32(ptr) Variable Input - 35(ResType): TypeStruct 6(int) 11(fvec4) - 41: TypeImage 10(float) 3D sampled format:Unknown - 42: TypeSampledImage 41 - 43: TypePointer UniformConstant 42 - 44(s3D): 43(ptr) Variable UniformConstant - 46: TypeVector 10(float) 3 - 47: TypePointer Input 46(fvec3) - 48(c3): 47(ptr) Variable Input - 50: 10(float) Constant 1073741824 - 56: TypeImage 6(int) Cube sampled format:Unknown - 57: TypeSampledImage 56 - 58: TypePointer UniformConstant 57 - 59(isCube): 58(ptr) Variable UniformConstant - 62(ResType): TypeStruct 6(int) 16(ivec4) - 68: TypeImage 10(float) 2D depth sampled format:Unknown - 69: TypeSampledImage 68 - 70: TypePointer UniformConstant 69 - 71(s2DShadow): 70(ptr) Variable UniformConstant - 74: TypePointer Function 10(float) - 77(ResType): TypeStruct 6(int) 10(float) - 83: TypeImage 10(float) Cube depth array sampled format:Unknown - 84: TypeSampledImage 83 - 85: TypePointer UniformConstant 84 -86(sCubeArrayShadow): 85(ptr) Variable UniformConstant - 88: TypePointer Input 11(fvec4) - 89(c4): 88(ptr) Variable Input - 91: 10(float) Constant 1065353216 - 105: TypeImage 20(int) Cube array sampled format:Unknown - 106: TypeSampledImage 105 - 107: TypePointer UniformConstant 106 -108(usCubeArray): 107(ptr) Variable UniformConstant - 111(ResType): TypeStruct 6(int) 21(ivec4) - 119: 20(int) Constant 1 - 129: TypeVector 6(int) 3 - 130: 6(int) Constant 2 - 131: 129(ivec3) ConstantComposite 130 130 130 - 137: TypeImage 20(int) Rect sampled format:Unknown - 138: TypeSampledImage 137 - 139: TypePointer UniformConstant 138 - 140(us2DRect): 139(ptr) Variable UniformConstant - 143: TypeVector 6(int) 2 - 144: 6(int) Constant 3 - 145: 143(ivec2) ConstantComposite 144 144 - 151: TypeImage 10(float) 2D depth array sampled format:Unknown - 152: TypeSampledImage 151 - 153: TypePointer UniformConstant 152 -154(s2DArrayShadow): 153(ptr) Variable UniformConstant - 157: 6(int) Constant 5 - 158: 143(ivec2) ConstantComposite 157 157 - 159: 20(int) Constant 2 - 185: TypeImage 10(float) 2D multi-sampled sampled format:Unknown - 186: TypeSampledImage 185 - 187: TypePointer UniformConstant 186 - 188(s2DMS): 187(ptr) Variable UniformConstant - 192: 6(int) Constant 4 - 202: 129(ivec3) ConstantComposite 192 192 192 - 225: TypeImage 6(int) 2D array sampled format:Unknown - 226: TypeSampledImage 225 - 227: TypePointer UniformConstant 226 - 228(is2DArray): 227(ptr) Variable UniformConstant - 231: 6(int) Constant 6 - 232: 143(ivec2) ConstantComposite 231 231 - 240: 6(int) Constant 7 - 241: 143(ivec2) ConstantComposite 240 240 - 258: TypeImage 10(float) Cube depth sampled format:Unknown - 259: TypeSampledImage 258 - 260: TypePointer UniformConstant 259 -261(sCubeShadow): 260(ptr) Variable UniformConstant - 291: TypeImage 10(float) Rect depth sampled format:Unknown - 292: TypeSampledImage 291 - 293: TypePointer UniformConstant 292 -294(s2DRectShadow): 293(ptr) Variable UniformConstant - 299: 20(int) Constant 3 - 311: 143(ivec2) ConstantComposite 130 130 - 340: 143(ivec2) ConstantComposite 192 192 - 362: 20(int) Constant 4 - 363: TypeArray 143(ivec2) 362 - 364: 6(int) Constant 1 - 365: 143(ivec2) ConstantComposite 364 130 - 366: 143(ivec2) ConstantComposite 144 192 - 367: 6(int) Constant 15 - 368: 6(int) Constant 16 - 369: 143(ivec2) ConstantComposite 367 368 - 370: 6(int) Constant 4294967294 - 371: 143(ivec2) ConstantComposite 370 9 - 372: 363 ConstantComposite 365 366 369 371 - 392: TypeImage 10(float) 2D nonsampled format:Rgba32f - 393: TypePointer UniformConstant 392 - 394(i2D): 393(ptr) Variable UniformConstant - 396: TypePointer Input 143(ivec2) - 397(ic2): 396(ptr) Variable Input - 404: TypeImage 6(int) 3D nonsampled format:Rgba32i - 405: TypePointer UniformConstant 404 - 406(ii3D): 405(ptr) Variable UniformConstant - 408: TypePointer Input 129(ivec3) - 409(ic3): 408(ptr) Variable Input - 416: TypeImage 10(float) 2D multi-sampled nonsampled format:Rgba32f - 417: TypePointer UniformConstant 416 - 418(i2DMS): 417(ptr) Variable UniformConstant - 426: TypePointer Output 11(fvec4) - 427(outColor): 426(ptr) Variable Output - 429: 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 - 431: 12(ptr) Variable Function - Store 8(resident) 9 - Store 13(texel) 15 - Store 18(itexel) 19 - Store 23(utexel) 25 - 30: 27 Load 29(s2D) - 34: 31(fvec2) Load 33(c2) - 36: 35(ResType) ImageSparseSampleImplicitLod 30 34 - 37: 11(fvec4) CompositeExtract 36 1 - Store 13(texel) 37 - 38: 6(int) CompositeExtract 36 0 - 39: 6(int) Load 8(resident) - 40: 6(int) BitwiseOr 39 38 - Store 8(resident) 40 - 45: 42 Load 44(s3D) - 49: 46(fvec3) Load 48(c3) - 51: 35(ResType) ImageSparseSampleImplicitLod 45 49 Bias 50 - 52: 11(fvec4) CompositeExtract 51 1 - Store 13(texel) 52 - 53: 6(int) CompositeExtract 51 0 - 54: 6(int) Load 8(resident) - 55: 6(int) BitwiseOr 54 53 - Store 8(resident) 55 - 60: 57 Load 59(isCube) - 61: 46(fvec3) Load 48(c3) - 63: 62(ResType) ImageSparseSampleImplicitLod 60 61 - 64: 16(ivec4) CompositeExtract 63 1 - Store 18(itexel) 64 - 65: 6(int) CompositeExtract 63 0 - 66: 6(int) Load 8(resident) - 67: 6(int) BitwiseOr 66 65 - Store 8(resident) 67 - 72: 69 Load 71(s2DShadow) - 73: 46(fvec3) Load 48(c3) - 75: 74(ptr) AccessChain 13(texel) 24 - 76: 10(float) CompositeExtract 73 2 - 78: 77(ResType) ImageSparseSampleDrefImplicitLod 72 73 76 - 79: 10(float) CompositeExtract 78 1 - Store 75 79 - 80: 6(int) CompositeExtract 78 0 - 81: 6(int) Load 8(resident) - 82: 6(int) BitwiseOr 81 80 - Store 8(resident) 82 - 87: 84 Load 86(sCubeArrayShadow) - 90: 11(fvec4) Load 89(c4) - 92: 74(ptr) AccessChain 13(texel) 24 - 93: 77(ResType) ImageSparseSampleDrefImplicitLod 87 90 91 - 94: 10(float) CompositeExtract 93 1 - Store 92 94 - 95: 6(int) CompositeExtract 93 0 - 96: 6(int) Load 8(resident) - 97: 6(int) BitwiseOr 96 95 - Store 8(resident) 97 - 98: 27 Load 29(s2D) - 99: 31(fvec2) Load 33(c2) - 100: 35(ResType) ImageSparseSampleExplicitLod 98 99 Lod 50 - 101: 11(fvec4) CompositeExtract 100 1 - Store 13(texel) 101 - 102: 6(int) CompositeExtract 100 0 - 103: 6(int) Load 8(resident) - 104: 6(int) BitwiseOr 103 102 - Store 8(resident) 104 - 109: 106 Load 108(usCubeArray) - 110: 11(fvec4) Load 89(c4) - 112:111(ResType) ImageSparseSampleExplicitLod 109 110 Lod 91 - 113: 21(ivec4) CompositeExtract 112 1 - Store 23(utexel) 113 - 114: 6(int) CompositeExtract 112 0 - 115: 6(int) Load 8(resident) - 116: 6(int) BitwiseOr 115 114 - Store 8(resident) 116 - 117: 69 Load 71(s2DShadow) - 118: 46(fvec3) Load 48(c3) - 120: 74(ptr) AccessChain 13(texel) 119 - 121: 10(float) CompositeExtract 118 2 - 122: 77(ResType) ImageSparseSampleDrefExplicitLod 117 118 121 Lod 50 - 123: 10(float) CompositeExtract 122 1 - Store 120 123 - 124: 6(int) CompositeExtract 122 0 - 125: 6(int) Load 8(resident) - 126: 6(int) BitwiseOr 125 124 - Store 8(resident) 126 - 127: 42 Load 44(s3D) - 128: 46(fvec3) Load 48(c3) - 132: 35(ResType) ImageSparseSampleImplicitLod 127 128 Bias ConstOffset 50 131 - 133: 11(fvec4) CompositeExtract 132 1 - Store 13(texel) 133 - 134: 6(int) CompositeExtract 132 0 - 135: 6(int) Load 8(resident) - 136: 6(int) BitwiseOr 135 134 - Store 8(resident) 136 - 141: 138 Load 140(us2DRect) - 142: 31(fvec2) Load 33(c2) - 146:111(ResType) ImageSparseSampleImplicitLod 141 142 ConstOffset 145 - 147: 21(ivec4) CompositeExtract 146 1 - Store 23(utexel) 147 - 148: 6(int) CompositeExtract 146 0 - 149: 6(int) Load 8(resident) - 150: 6(int) BitwiseOr 149 148 - Store 8(resident) 150 - 155: 152 Load 154(s2DArrayShadow) - 156: 11(fvec4) Load 89(c4) - 160: 74(ptr) AccessChain 13(texel) 159 - 161: 10(float) CompositeExtract 156 3 - 162: 77(ResType) ImageSparseSampleDrefImplicitLod 155 156 161 ConstOffset 158 - 163: 10(float) CompositeExtract 162 1 - Store 160 163 - 164: 6(int) CompositeExtract 162 0 - 165: 6(int) Load 8(resident) - 166: 6(int) BitwiseOr 165 164 - Store 8(resident) 166 - 167: 27 Load 29(s2D) - 168: 31(fvec2) Load 33(c2) - 169: 143(ivec2) ConvertFToS 168 - 170: 26 Image 167 - 171: 35(ResType) ImageSparseFetch 170 169 Lod 130 - 172: 11(fvec4) CompositeExtract 171 1 - Store 13(texel) 172 - 173: 6(int) CompositeExtract 171 0 - 174: 6(int) Load 8(resident) - 175: 6(int) BitwiseOr 174 173 - Store 8(resident) 175 - 176: 138 Load 140(us2DRect) - 177: 31(fvec2) Load 33(c2) - 178: 143(ivec2) ConvertFToS 177 - 179: 137 Image 176 - 180:111(ResType) ImageSparseFetch 179 178 - 181: 21(ivec4) CompositeExtract 180 1 - Store 23(utexel) 181 - 182: 6(int) CompositeExtract 180 0 - 183: 6(int) Load 8(resident) - 184: 6(int) BitwiseOr 183 182 - Store 8(resident) 184 - 189: 186 Load 188(s2DMS) - 190: 31(fvec2) Load 33(c2) - 191: 143(ivec2) ConvertFToS 190 - 193: 185 Image 189 - 194: 35(ResType) ImageSparseFetch 193 191 Sample 192 - 195: 11(fvec4) CompositeExtract 194 1 - Store 13(texel) 195 - 196: 6(int) CompositeExtract 194 0 - 197: 6(int) Load 8(resident) - 198: 6(int) BitwiseOr 197 196 - Store 8(resident) 198 - 199: 42 Load 44(s3D) - 200: 46(fvec3) Load 48(c3) - 201: 129(ivec3) ConvertFToS 200 - 203: 41 Image 199 - 204: 35(ResType) ImageSparseFetch 203 201 Lod ConstOffset 130 202 - 205: 11(fvec4) CompositeExtract 204 1 - Store 13(texel) 205 - 206: 6(int) CompositeExtract 204 0 - 207: 6(int) Load 8(resident) - 208: 6(int) BitwiseOr 207 206 - Store 8(resident) 208 - 209: 138 Load 140(us2DRect) - 210: 31(fvec2) Load 33(c2) - 211: 143(ivec2) ConvertFToS 210 - 212: 137 Image 209 - 213:111(ResType) ImageSparseFetch 212 211 ConstOffset 145 - 214: 21(ivec4) CompositeExtract 213 1 - Store 23(utexel) 214 - 215: 6(int) CompositeExtract 213 0 - 216: 6(int) Load 8(resident) - 217: 6(int) BitwiseOr 216 215 - Store 8(resident) 217 - 218: 27 Load 29(s2D) - 219: 31(fvec2) Load 33(c2) - 220: 35(ResType) ImageSparseSampleExplicitLod 218 219 Lod ConstOffset 50 158 - 221: 11(fvec4) CompositeExtract 220 1 - Store 13(texel) 221 - 222: 6(int) CompositeExtract 220 0 - 223: 6(int) Load 8(resident) - 224: 6(int) BitwiseOr 223 222 - Store 8(resident) 224 - 229: 226 Load 228(is2DArray) - 230: 46(fvec3) Load 48(c3) - 233: 62(ResType) ImageSparseSampleExplicitLod 229 230 Lod ConstOffset 50 232 - 234: 16(ivec4) CompositeExtract 233 1 - Store 18(itexel) 234 - 235: 6(int) CompositeExtract 233 0 - 236: 6(int) Load 8(resident) - 237: 6(int) BitwiseOr 236 235 - Store 8(resident) 237 - 238: 69 Load 71(s2DShadow) - 239: 46(fvec3) Load 48(c3) - 242: 74(ptr) AccessChain 13(texel) 159 - 243: 10(float) CompositeExtract 239 2 - 244: 77(ResType) ImageSparseSampleDrefExplicitLod 238 239 243 Lod ConstOffset 50 241 - 245: 10(float) CompositeExtract 244 1 - Store 242 245 - 246: 6(int) CompositeExtract 244 0 - 247: 6(int) Load 8(resident) - 248: 6(int) BitwiseOr 247 246 - Store 8(resident) 248 - 249: 42 Load 44(s3D) - 250: 46(fvec3) Load 48(c3) - 251: 46(fvec3) Load 48(c3) - 252: 46(fvec3) Load 48(c3) - 253: 35(ResType) ImageSparseSampleExplicitLod 249 250 Grad 251 252 - 254: 11(fvec4) CompositeExtract 253 1 - Store 13(texel) 254 - 255: 6(int) CompositeExtract 253 0 - 256: 6(int) Load 8(resident) - 257: 6(int) BitwiseOr 256 255 - Store 8(resident) 257 - 262: 259 Load 261(sCubeShadow) - 263: 11(fvec4) Load 89(c4) - 264: 46(fvec3) Load 48(c3) - 265: 46(fvec3) Load 48(c3) - 266: 74(ptr) AccessChain 13(texel) 119 - 267: 10(float) CompositeExtract 263 3 - 268: 77(ResType) ImageSparseSampleDrefExplicitLod 262 263 267 Grad 264 265 - 269: 10(float) CompositeExtract 268 1 - Store 266 269 - 270: 6(int) CompositeExtract 268 0 - 271: 6(int) Load 8(resident) - 272: 6(int) BitwiseOr 271 270 - Store 8(resident) 272 - 273: 106 Load 108(usCubeArray) - 274: 11(fvec4) Load 89(c4) - 275: 46(fvec3) Load 48(c3) - 276: 46(fvec3) Load 48(c3) - 277:111(ResType) ImageSparseSampleExplicitLod 273 274 Grad 275 276 - 278: 21(ivec4) CompositeExtract 277 1 - Store 23(utexel) 278 - 279: 6(int) CompositeExtract 277 0 - 280: 6(int) Load 8(resident) - 281: 6(int) BitwiseOr 280 279 - Store 8(resident) 281 - 282: 27 Load 29(s2D) - 283: 31(fvec2) Load 33(c2) - 284: 31(fvec2) Load 33(c2) - 285: 31(fvec2) Load 33(c2) - 286: 35(ResType) ImageSparseSampleExplicitLod 282 283 Grad ConstOffset 284 285 158 - 287: 11(fvec4) CompositeExtract 286 1 - Store 13(texel) 287 - 288: 6(int) CompositeExtract 286 0 - 289: 6(int) Load 8(resident) - 290: 6(int) BitwiseOr 289 288 - Store 8(resident) 290 - 295: 292 Load 294(s2DRectShadow) - 296: 46(fvec3) Load 48(c3) - 297: 31(fvec2) Load 33(c2) - 298: 31(fvec2) Load 33(c2) - 300: 74(ptr) AccessChain 13(texel) 299 - 301: 10(float) CompositeExtract 296 2 - 302: 77(ResType) ImageSparseSampleDrefExplicitLod 295 296 301 Grad ConstOffset 297 298 232 - 303: 10(float) CompositeExtract 302 1 - Store 300 303 - 304: 6(int) CompositeExtract 302 0 - 305: 6(int) Load 8(resident) - 306: 6(int) BitwiseOr 305 304 - Store 8(resident) 306 - 307: 226 Load 228(is2DArray) - 308: 46(fvec3) Load 48(c3) - 309: 31(fvec2) Load 33(c2) - 310: 31(fvec2) Load 33(c2) - 312: 62(ResType) ImageSparseSampleExplicitLod 307 308 Grad ConstOffset 309 310 311 - 313: 16(ivec4) CompositeExtract 312 1 - Store 18(itexel) 313 - 314: 6(int) CompositeExtract 312 0 - 315: 6(int) Load 8(resident) - 316: 6(int) BitwiseOr 315 314 - Store 8(resident) 316 - 317: 27 Load 29(s2D) - 318: 31(fvec2) Load 33(c2) - 319: 35(ResType) ImageSparseGather 317 318 9 - 320: 11(fvec4) CompositeExtract 319 1 - Store 13(texel) 320 - 321: 6(int) CompositeExtract 319 0 - 322: 6(int) Load 8(resident) - 323: 6(int) BitwiseOr 322 321 - Store 8(resident) 323 - 324: 226 Load 228(is2DArray) - 325: 46(fvec3) Load 48(c3) - 326: 62(ResType) ImageSparseGather 324 325 130 - 327: 16(ivec4) CompositeExtract 326 1 - Store 18(itexel) 327 - 328: 6(int) CompositeExtract 326 0 - 329: 6(int) Load 8(resident) - 330: 6(int) BitwiseOr 329 328 - Store 8(resident) 330 - 331: 152 Load 154(s2DArrayShadow) - 332: 46(fvec3) Load 48(c3) - 333: 35(ResType) ImageSparseDrefGather 331 332 50 - 334: 11(fvec4) CompositeExtract 333 1 - Store 13(texel) 334 - 335: 6(int) CompositeExtract 333 0 - 336: 6(int) Load 8(resident) - 337: 6(int) BitwiseOr 336 335 - Store 8(resident) 337 - 338: 27 Load 29(s2D) - 339: 31(fvec2) Load 33(c2) - 341: 35(ResType) ImageSparseGather 338 339 9 ConstOffset 340 - 342: 11(fvec4) CompositeExtract 341 1 - Store 13(texel) 342 - 343: 6(int) CompositeExtract 341 0 - 344: 6(int) Load 8(resident) - 345: 6(int) BitwiseOr 344 343 - Store 8(resident) 345 - 346: 226 Load 228(is2DArray) - 347: 46(fvec3) Load 48(c3) - 348: 62(ResType) ImageSparseGather 346 347 130 ConstOffset 158 - 349: 16(ivec4) CompositeExtract 348 1 - Store 18(itexel) 349 - 350: 6(int) CompositeExtract 348 0 - 351: 6(int) Load 8(resident) - 352: 6(int) BitwiseOr 351 350 - Store 8(resident) 352 - 353: 292 Load 294(s2DRectShadow) - 354: 31(fvec2) Load 33(c2) - 355: 35(ResType) ImageSparseDrefGather 353 354 50 ConstOffset 241 - 356: 11(fvec4) CompositeExtract 355 1 - Store 13(texel) 356 - 357: 6(int) CompositeExtract 355 0 - 358: 6(int) Load 8(resident) - 359: 6(int) BitwiseOr 358 357 - Store 8(resident) 359 - 360: 27 Load 29(s2D) - 361: 31(fvec2) Load 33(c2) - 373: 35(ResType) ImageSparseGather 360 361 9 ConstOffsets 372 - 374: 11(fvec4) CompositeExtract 373 1 - Store 13(texel) 374 - 375: 6(int) CompositeExtract 373 0 - 376: 6(int) Load 8(resident) - 377: 6(int) BitwiseOr 376 375 - Store 8(resident) 377 - 378: 226 Load 228(is2DArray) - 379: 46(fvec3) Load 48(c3) - 380: 62(ResType) ImageSparseGather 378 379 130 ConstOffsets 372 - 381: 16(ivec4) CompositeExtract 380 1 - Store 18(itexel) 381 - 382: 6(int) CompositeExtract 380 0 - 383: 6(int) Load 8(resident) - 384: 6(int) BitwiseOr 383 382 - Store 8(resident) 384 - 385: 292 Load 294(s2DRectShadow) - 386: 31(fvec2) Load 33(c2) - 387: 35(ResType) ImageSparseDrefGather 385 386 50 ConstOffsets 372 - 388: 11(fvec4) CompositeExtract 387 1 - Store 13(texel) 388 - 389: 6(int) CompositeExtract 387 0 - 390: 6(int) Load 8(resident) - 391: 6(int) BitwiseOr 390 389 - Store 8(resident) 391 - 395: 392 Load 394(i2D) - 398: 143(ivec2) Load 397(ic2) - 399: 35(ResType) ImageSparseRead 395 398 - 400: 11(fvec4) CompositeExtract 399 1 - Store 13(texel) 400 - 401: 6(int) CompositeExtract 399 0 - 402: 6(int) Load 8(resident) - 403: 6(int) BitwiseOr 402 401 - Store 8(resident) 403 - 407: 404 Load 406(ii3D) - 410: 129(ivec3) Load 409(ic3) - 411: 62(ResType) ImageSparseRead 407 410 - 412: 16(ivec4) CompositeExtract 411 1 - Store 18(itexel) 412 - 413: 6(int) CompositeExtract 411 0 - 414: 6(int) Load 8(resident) - 415: 6(int) BitwiseOr 414 413 - Store 8(resident) 415 - 419: 416 Load 418(i2DMS) - 420: 143(ivec2) Load 397(ic2) - 421: 35(ResType) ImageSparseRead 419 420 Sample 144 - 422: 11(fvec4) CompositeExtract 421 1 - Store 13(texel) 422 - 423: 6(int) CompositeExtract 421 0 - 424: 6(int) Load 8(resident) - 425: 6(int) BitwiseOr 424 423 - Store 8(resident) 425 - 428: 6(int) Load 8(resident) - 430: 429(bool) ImageSparseTexelsResident 428 - SelectionMerge 433 None - BranchConditional 430 432 435 - 432: Label - 434: 11(fvec4) Load 13(texel) - Store 431 434 - Branch 433 - 435: Label - 436: 16(ivec4) Load 18(itexel) - 437: 11(fvec4) ConvertSToF 436 - 438: 21(ivec4) Load 23(utexel) - 439: 11(fvec4) ConvertUToF 438 - 440: 11(fvec4) FAdd 437 439 - Store 431 440 - Branch 433 - 433: Label - 441: 11(fvec4) Load 431 - Store 427(outColor) 441 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.sparseTextureClamp.frag.out b/deps/glslang/Test/baseResults/spv.sparseTextureClamp.frag.out deleted file mode 100644 index f42326d4..00000000 --- a/deps/glslang/Test/baseResults/spv.sparseTextureClamp.frag.out +++ /dev/null @@ -1,482 +0,0 @@ -spv.sparseTextureClamp.frag -Validation failed -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 360 - - Capability Shader - Capability SampledRect - Capability SparseResidency - Capability MinLod - Capability SampledCubeArray - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 33 36 51 95 345 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_ARB_sparse_texture_clamp" - Name 4 "main" - Name 8 "resident" - Name 13 "texel" - Name 18 "itexel" - Name 23 "utexel" - Name 29 "s2D" - Name 33 "c2" - Name 36 "lodClamp" - Name 38 "ResType" - Name 47 "s3D" - Name 51 "c3" - Name 63 "isCube" - Name 67 "ResType" - Name 76 "s2DShadow" - Name 83 "ResType" - Name 92 "sCubeArrayShadow" - Name 95 "c4" - Name 154 "us2DRect" - Name 161 "ResType" - Name 170 "s2DArrayShadow" - Name 218 "sCubeShadow" - Name 235 "usCubeArray" - Name 286 "s2DRectShadow" - Name 305 "is2DArray" - Name 345 "outColor" - Decorate 29(s2D) DescriptorSet 0 - Decorate 29(s2D) Binding 0 - Decorate 33(c2) Location 0 - Decorate 36(lodClamp) Location 3 - Decorate 47(s3D) DescriptorSet 0 - Decorate 47(s3D) Binding 1 - Decorate 51(c3) Location 1 - Decorate 63(isCube) DescriptorSet 0 - Decorate 63(isCube) Binding 7 - Decorate 76(s2DShadow) DescriptorSet 0 - Decorate 76(s2DShadow) Binding 2 - Decorate 92(sCubeArrayShadow) DescriptorSet 0 - Decorate 92(sCubeArrayShadow) Binding 6 - Decorate 95(c4) Location 2 - Decorate 154(us2DRect) DescriptorSet 0 - Decorate 154(us2DRect) Binding 10 - Decorate 170(s2DArrayShadow) DescriptorSet 0 - Decorate 170(s2DArrayShadow) Binding 4 - Decorate 218(sCubeShadow) DescriptorSet 0 - Decorate 218(sCubeShadow) Binding 3 - Decorate 235(usCubeArray) DescriptorSet 0 - Decorate 235(usCubeArray) Binding 9 - Decorate 286(s2DRectShadow) DescriptorSet 0 - Decorate 286(s2DRectShadow) Binding 5 - Decorate 305(is2DArray) DescriptorSet 0 - Decorate 305(is2DArray) Binding 8 - Decorate 345(outColor) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Function 6(int) - 9: 6(int) Constant 0 - 10: TypeFloat 32 - 11: TypeVector 10(float) 4 - 12: TypePointer Function 11(fvec4) - 14: 10(float) Constant 0 - 15: 11(fvec4) ConstantComposite 14 14 14 14 - 16: TypeVector 6(int) 4 - 17: TypePointer Function 16(ivec4) - 19: 16(ivec4) ConstantComposite 9 9 9 9 - 20: TypeInt 32 0 - 21: TypeVector 20(int) 4 - 22: TypePointer Function 21(ivec4) - 24: 20(int) Constant 0 - 25: 21(ivec4) ConstantComposite 24 24 24 24 - 26: TypeImage 10(float) 2D sampled format:Unknown - 27: TypeSampledImage 26 - 28: TypePointer UniformConstant 27 - 29(s2D): 28(ptr) Variable UniformConstant - 31: TypeVector 10(float) 2 - 32: TypePointer Input 31(fvec2) - 33(c2): 32(ptr) Variable Input - 35: TypePointer Input 10(float) - 36(lodClamp): 35(ptr) Variable Input - 38(ResType): TypeStruct 6(int) 11(fvec4) - 44: TypeImage 10(float) 3D sampled format:Unknown - 45: TypeSampledImage 44 - 46: TypePointer UniformConstant 45 - 47(s3D): 46(ptr) Variable UniformConstant - 49: TypeVector 10(float) 3 - 50: TypePointer Input 49(fvec3) - 51(c3): 50(ptr) Variable Input - 54: 10(float) Constant 1073741824 - 60: TypeImage 6(int) Cube sampled format:Unknown - 61: TypeSampledImage 60 - 62: TypePointer UniformConstant 61 - 63(isCube): 62(ptr) Variable UniformConstant - 67(ResType): TypeStruct 6(int) 16(ivec4) - 73: TypeImage 10(float) 2D depth sampled format:Unknown - 74: TypeSampledImage 73 - 75: TypePointer UniformConstant 74 - 76(s2DShadow): 75(ptr) Variable UniformConstant - 80: TypePointer Function 10(float) - 83(ResType): TypeStruct 6(int) 10(float) - 89: TypeImage 10(float) Cube depth array sampled format:Unknown - 90: TypeSampledImage 89 - 91: TypePointer UniformConstant 90 -92(sCubeArrayShadow): 91(ptr) Variable UniformConstant - 94: TypePointer Input 11(fvec4) - 95(c4): 94(ptr) Variable Input - 97: 10(float) Constant 1065353216 - 142: TypeVector 6(int) 3 - 143: 6(int) Constant 2 - 144: 142(ivec3) ConstantComposite 143 143 143 - 151: TypeImage 20(int) Rect sampled format:Unknown - 152: TypeSampledImage 151 - 153: TypePointer UniformConstant 152 - 154(us2DRect): 153(ptr) Variable UniformConstant - 157: TypeVector 6(int) 2 - 158: 6(int) Constant 3 - 159: 157(ivec2) ConstantComposite 158 158 - 161(ResType): TypeStruct 6(int) 21(ivec4) - 167: TypeImage 10(float) 2D depth array sampled format:Unknown - 168: TypeSampledImage 167 - 169: TypePointer UniformConstant 168 -170(s2DArrayShadow): 169(ptr) Variable UniformConstant - 173: 6(int) Constant 5 - 174: 157(ivec2) ConstantComposite 173 173 - 176: 20(int) Constant 2 - 215: TypeImage 10(float) Cube depth sampled format:Unknown - 216: TypeSampledImage 215 - 217: TypePointer UniformConstant 216 -218(sCubeShadow): 217(ptr) Variable UniformConstant - 224: 20(int) Constant 1 - 232: TypeImage 20(int) Cube array sampled format:Unknown - 233: TypeSampledImage 232 - 234: TypePointer UniformConstant 233 -235(usCubeArray): 234(ptr) Variable UniformConstant - 283: TypeImage 10(float) Rect depth sampled format:Unknown - 284: TypeSampledImage 283 - 285: TypePointer UniformConstant 284 -286(s2DRectShadow): 285(ptr) Variable UniformConstant - 291: 6(int) Constant 6 - 292: 157(ivec2) ConstantComposite 291 291 - 294: 20(int) Constant 3 - 302: TypeImage 6(int) 2D array sampled format:Unknown - 303: TypeSampledImage 302 - 304: TypePointer UniformConstant 303 - 305(is2DArray): 304(ptr) Variable UniformConstant - 310: 157(ivec2) ConstantComposite 143 143 - 344: TypePointer Output 11(fvec4) - 345(outColor): 344(ptr) Variable Output - 347: TypeBool - 4(main): 2 Function None 3 - 5: Label - 8(resident): 7(ptr) Variable Function - 13(texel): 12(ptr) Variable Function - 18(itexel): 17(ptr) Variable Function - 23(utexel): 22(ptr) Variable Function - 349: 12(ptr) Variable Function - Store 8(resident) 9 - Store 13(texel) 15 - Store 18(itexel) 19 - Store 23(utexel) 25 - 30: 27 Load 29(s2D) - 34: 31(fvec2) Load 33(c2) - 37: 10(float) Load 36(lodClamp) - 39: 38(ResType) ImageSparseSampleImplicitLod 30 34 MinLod 37 - 40: 11(fvec4) CompositeExtract 39 1 - Store 13(texel) 40 - 41: 6(int) CompositeExtract 39 0 - 42: 6(int) Load 8(resident) - 43: 6(int) BitwiseOr 42 41 - Store 8(resident) 43 - 48: 45 Load 47(s3D) - 52: 49(fvec3) Load 51(c3) - 53: 10(float) Load 36(lodClamp) - 55: 38(ResType) ImageSparseSampleImplicitLod 48 52 Bias MinLod 54 53 - 56: 11(fvec4) CompositeExtract 55 1 - Store 13(texel) 56 - 57: 6(int) CompositeExtract 55 0 - 58: 6(int) Load 8(resident) - 59: 6(int) BitwiseOr 58 57 - Store 8(resident) 59 - 64: 61 Load 63(isCube) - 65: 49(fvec3) Load 51(c3) - 66: 10(float) Load 36(lodClamp) - 68: 67(ResType) ImageSparseSampleImplicitLod 64 65 MinLod 66 - 69: 16(ivec4) CompositeExtract 68 1 - Store 18(itexel) 69 - 70: 6(int) CompositeExtract 68 0 - 71: 6(int) Load 8(resident) - 72: 6(int) BitwiseOr 71 70 - Store 8(resident) 72 - 77: 74 Load 76(s2DShadow) - 78: 49(fvec3) Load 51(c3) - 79: 10(float) Load 36(lodClamp) - 81: 80(ptr) AccessChain 13(texel) 24 - 82: 10(float) CompositeExtract 78 2 - 84: 83(ResType) ImageSparseSampleDrefImplicitLod 77 78 82 MinLod 79 - 85: 10(float) CompositeExtract 84 1 - Store 81 85 - 86: 6(int) CompositeExtract 84 0 - 87: 6(int) Load 8(resident) - 88: 6(int) BitwiseOr 87 86 - Store 8(resident) 88 - 93: 90 Load 92(sCubeArrayShadow) - 96: 11(fvec4) Load 95(c4) - 98: 10(float) Load 36(lodClamp) - 99: 80(ptr) AccessChain 13(texel) 24 - 100: 83(ResType) ImageSparseSampleDrefImplicitLod 93 96 97 MinLod 98 - 101: 10(float) CompositeExtract 100 1 - Store 99 101 - 102: 6(int) CompositeExtract 100 0 - 103: 6(int) Load 8(resident) - 104: 6(int) BitwiseOr 103 102 - Store 8(resident) 104 - 105: 27 Load 29(s2D) - 106: 31(fvec2) Load 33(c2) - 107: 10(float) Load 36(lodClamp) - 108: 11(fvec4) ImageSampleImplicitLod 105 106 MinLod 107 - 109: 11(fvec4) Load 13(texel) - 110: 11(fvec4) FAdd 109 108 - Store 13(texel) 110 - 111: 45 Load 47(s3D) - 112: 49(fvec3) Load 51(c3) - 113: 10(float) Load 36(lodClamp) - 114: 11(fvec4) ImageSampleImplicitLod 111 112 Bias MinLod 54 113 - 115: 11(fvec4) Load 13(texel) - 116: 11(fvec4) FAdd 115 114 - Store 13(texel) 116 - 117: 61 Load 63(isCube) - 118: 49(fvec3) Load 51(c3) - 119: 10(float) Load 36(lodClamp) - 120: 16(ivec4) ImageSampleImplicitLod 117 118 MinLod 119 - 121: 16(ivec4) Load 18(itexel) - 122: 16(ivec4) IAdd 121 120 - Store 18(itexel) 122 - 123: 74 Load 76(s2DShadow) - 124: 49(fvec3) Load 51(c3) - 125: 10(float) Load 36(lodClamp) - 126: 10(float) CompositeExtract 124 2 - 127: 10(float) ImageSampleDrefImplicitLod 123 124 126 MinLod 125 - 128: 80(ptr) AccessChain 13(texel) 24 - 129: 10(float) Load 128 - 130: 10(float) FAdd 129 127 - 131: 80(ptr) AccessChain 13(texel) 24 - Store 131 130 - 132: 90 Load 92(sCubeArrayShadow) - 133: 11(fvec4) Load 95(c4) - 134: 10(float) Load 36(lodClamp) - 135: 10(float) ImageSampleDrefImplicitLod 132 133 97 MinLod 134 - 136: 80(ptr) AccessChain 13(texel) 24 - 137: 10(float) Load 136 - 138: 10(float) FAdd 137 135 - 139: 80(ptr) AccessChain 13(texel) 24 - Store 139 138 - 140: 45 Load 47(s3D) - 141: 49(fvec3) Load 51(c3) - 145: 10(float) Load 36(lodClamp) - 146: 38(ResType) ImageSparseSampleImplicitLod 140 141 Bias ConstOffset MinLod 54 144 145 - 147: 11(fvec4) CompositeExtract 146 1 - Store 13(texel) 147 - 148: 6(int) CompositeExtract 146 0 - 149: 6(int) Load 8(resident) - 150: 6(int) BitwiseOr 149 148 - Store 8(resident) 150 - 155: 152 Load 154(us2DRect) - 156: 31(fvec2) Load 33(c2) - 160: 10(float) Load 36(lodClamp) - 162:161(ResType) ImageSparseSampleImplicitLod 155 156 ConstOffset MinLod 159 160 - 163: 21(ivec4) CompositeExtract 162 1 - Store 23(utexel) 163 - 164: 6(int) CompositeExtract 162 0 - 165: 6(int) Load 8(resident) - 166: 6(int) BitwiseOr 165 164 - Store 8(resident) 166 - 171: 168 Load 170(s2DArrayShadow) - 172: 11(fvec4) Load 95(c4) - 175: 10(float) Load 36(lodClamp) - 177: 80(ptr) AccessChain 13(texel) 176 - 178: 10(float) CompositeExtract 172 3 - 179: 83(ResType) ImageSparseSampleDrefImplicitLod 171 172 178 ConstOffset MinLod 174 175 - 180: 10(float) CompositeExtract 179 1 - Store 177 180 - 181: 6(int) CompositeExtract 179 0 - 182: 6(int) Load 8(resident) - 183: 6(int) BitwiseOr 182 181 - Store 8(resident) 183 - 184: 45 Load 47(s3D) - 185: 49(fvec3) Load 51(c3) - 186: 10(float) Load 36(lodClamp) - 187: 11(fvec4) ImageSampleImplicitLod 184 185 Bias ConstOffset MinLod 54 144 186 - 188: 11(fvec4) Load 13(texel) - 189: 11(fvec4) FAdd 188 187 - Store 13(texel) 189 - 190: 152 Load 154(us2DRect) - 191: 31(fvec2) Load 33(c2) - 192: 10(float) Load 36(lodClamp) - 193: 21(ivec4) ImageSampleImplicitLod 190 191 ConstOffset MinLod 159 192 - 194: 21(ivec4) Load 23(utexel) - 195: 21(ivec4) IAdd 194 193 - Store 23(utexel) 195 - 196: 168 Load 170(s2DArrayShadow) - 197: 11(fvec4) Load 95(c4) - 198: 10(float) Load 36(lodClamp) - 199: 10(float) CompositeExtract 197 3 - 200: 10(float) ImageSampleDrefImplicitLod 196 197 199 ConstOffset MinLod 174 198 - 201: 80(ptr) AccessChain 13(texel) 176 - 202: 10(float) Load 201 - 203: 10(float) FAdd 202 200 - 204: 80(ptr) AccessChain 13(texel) 176 - Store 204 203 - 205: 45 Load 47(s3D) - 206: 49(fvec3) Load 51(c3) - 207: 49(fvec3) Load 51(c3) - 208: 49(fvec3) Load 51(c3) - 209: 10(float) Load 36(lodClamp) - 210: 38(ResType) ImageSparseSampleExplicitLod 205 206 Grad MinLod 207 208 209 - 211: 11(fvec4) CompositeExtract 210 1 - Store 13(texel) 211 - 212: 6(int) CompositeExtract 210 0 - 213: 6(int) Load 8(resident) - 214: 6(int) BitwiseOr 213 212 - Store 8(resident) 214 - 219: 216 Load 218(sCubeShadow) - 220: 11(fvec4) Load 95(c4) - 221: 49(fvec3) Load 51(c3) - 222: 49(fvec3) Load 51(c3) - 223: 10(float) Load 36(lodClamp) - 225: 80(ptr) AccessChain 13(texel) 224 - 226: 10(float) CompositeExtract 220 3 - 227: 83(ResType) ImageSparseSampleDrefExplicitLod 219 220 226 Grad MinLod 221 222 223 - 228: 10(float) CompositeExtract 227 1 - Store 225 228 - 229: 6(int) CompositeExtract 227 0 - 230: 6(int) Load 8(resident) - 231: 6(int) BitwiseOr 230 229 - Store 8(resident) 231 - 236: 233 Load 235(usCubeArray) - 237: 11(fvec4) Load 95(c4) - 238: 49(fvec3) Load 51(c3) - 239: 49(fvec3) Load 51(c3) - 240: 10(float) Load 36(lodClamp) - 241:161(ResType) ImageSparseSampleExplicitLod 236 237 Grad MinLod 238 239 240 - 242: 21(ivec4) CompositeExtract 241 1 - Store 23(utexel) 242 - 243: 6(int) CompositeExtract 241 0 - 244: 6(int) Load 8(resident) - 245: 6(int) BitwiseOr 244 243 - Store 8(resident) 245 - 246: 45 Load 47(s3D) - 247: 49(fvec3) Load 51(c3) - 248: 49(fvec3) Load 51(c3) - 249: 49(fvec3) Load 51(c3) - 250: 10(float) Load 36(lodClamp) - 251: 11(fvec4) ImageSampleExplicitLod 246 247 Grad MinLod 248 249 250 - 252: 11(fvec4) Load 13(texel) - 253: 11(fvec4) FAdd 252 251 - Store 13(texel) 253 - 254: 216 Load 218(sCubeShadow) - 255: 11(fvec4) Load 95(c4) - 256: 49(fvec3) Load 51(c3) - 257: 49(fvec3) Load 51(c3) - 258: 10(float) Load 36(lodClamp) - 259: 10(float) CompositeExtract 255 3 - 260: 10(float) ImageSampleDrefExplicitLod 254 255 259 Grad MinLod 256 257 258 - 261: 80(ptr) AccessChain 13(texel) 224 - 262: 10(float) Load 261 - 263: 10(float) FAdd 262 260 - 264: 80(ptr) AccessChain 13(texel) 224 - Store 264 263 - 265: 233 Load 235(usCubeArray) - 266: 11(fvec4) Load 95(c4) - 267: 49(fvec3) Load 51(c3) - 268: 49(fvec3) Load 51(c3) - 269: 10(float) Load 36(lodClamp) - 270: 21(ivec4) ImageSampleExplicitLod 265 266 Grad MinLod 267 268 269 - 271: 21(ivec4) Load 23(utexel) - 272: 21(ivec4) IAdd 271 270 - Store 23(utexel) 272 - 273: 27 Load 29(s2D) - 274: 31(fvec2) Load 33(c2) - 275: 31(fvec2) Load 33(c2) - 276: 31(fvec2) Load 33(c2) - 277: 10(float) Load 36(lodClamp) - 278: 38(ResType) ImageSparseSampleExplicitLod 273 274 Grad ConstOffset MinLod 275 276 174 277 - 279: 11(fvec4) CompositeExtract 278 1 - Store 13(texel) 279 - 280: 6(int) CompositeExtract 278 0 - 281: 6(int) Load 8(resident) - 282: 6(int) BitwiseOr 281 280 - Store 8(resident) 282 - 287: 284 Load 286(s2DRectShadow) - 288: 49(fvec3) Load 51(c3) - 289: 31(fvec2) Load 33(c2) - 290: 31(fvec2) Load 33(c2) - 293: 10(float) Load 36(lodClamp) - 295: 80(ptr) AccessChain 13(texel) 294 - 296: 10(float) CompositeExtract 288 2 - 297: 83(ResType) ImageSparseSampleDrefExplicitLod 287 288 296 Grad ConstOffset MinLod 289 290 292 293 - 298: 10(float) CompositeExtract 297 1 - Store 295 298 - 299: 6(int) CompositeExtract 297 0 - 300: 6(int) Load 8(resident) - 301: 6(int) BitwiseOr 300 299 - Store 8(resident) 301 - 306: 303 Load 305(is2DArray) - 307: 49(fvec3) Load 51(c3) - 308: 31(fvec2) Load 33(c2) - 309: 31(fvec2) Load 33(c2) - 311: 10(float) Load 36(lodClamp) - 312: 67(ResType) ImageSparseSampleExplicitLod 306 307 Grad ConstOffset MinLod 308 309 310 311 - 313: 16(ivec4) CompositeExtract 312 1 - Store 18(itexel) 313 - 314: 6(int) CompositeExtract 312 0 - 315: 6(int) Load 8(resident) - 316: 6(int) BitwiseOr 315 314 - Store 8(resident) 316 - 317: 27 Load 29(s2D) - 318: 31(fvec2) Load 33(c2) - 319: 31(fvec2) Load 33(c2) - 320: 31(fvec2) Load 33(c2) - 321: 10(float) Load 36(lodClamp) - 322: 11(fvec4) ImageSampleExplicitLod 317 318 Grad ConstOffset MinLod 319 320 174 321 - 323: 11(fvec4) Load 13(texel) - 324: 11(fvec4) FAdd 323 322 - Store 13(texel) 324 - 325: 284 Load 286(s2DRectShadow) - 326: 49(fvec3) Load 51(c3) - 327: 31(fvec2) Load 33(c2) - 328: 31(fvec2) Load 33(c2) - 329: 10(float) Load 36(lodClamp) - 330: 10(float) CompositeExtract 326 2 - 331: 10(float) ImageSampleDrefExplicitLod 325 326 330 Grad ConstOffset MinLod 327 328 292 329 - 332: 80(ptr) AccessChain 13(texel) 294 - 333: 10(float) Load 332 - 334: 10(float) FAdd 333 331 - 335: 80(ptr) AccessChain 13(texel) 294 - Store 335 334 - 336: 303 Load 305(is2DArray) - 337: 49(fvec3) Load 51(c3) - 338: 31(fvec2) Load 33(c2) - 339: 31(fvec2) Load 33(c2) - 340: 10(float) Load 36(lodClamp) - 341: 16(ivec4) ImageSampleExplicitLod 336 337 Grad ConstOffset MinLod 338 339 310 340 - 342: 16(ivec4) Load 18(itexel) - 343: 16(ivec4) IAdd 342 341 - Store 18(itexel) 343 - 346: 6(int) Load 8(resident) - 348: 347(bool) ImageSparseTexelsResident 346 - SelectionMerge 351 None - BranchConditional 348 350 353 - 350: Label - 352: 11(fvec4) Load 13(texel) - Store 349 352 - Branch 351 - 353: Label - 354: 16(ivec4) Load 18(itexel) - 355: 11(fvec4) ConvertSToF 354 - 356: 21(ivec4) Load 23(utexel) - 357: 11(fvec4) ConvertUToF 356 - 358: 11(fvec4) FAdd 355 357 - Store 349 358 - Branch 351 - 351: Label - 359: 11(fvec4) Load 349 - Store 345(outColor) 359 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.specConst.vert.out b/deps/glslang/Test/baseResults/spv.specConst.vert.out deleted file mode 100644 index a510dc9a..00000000 --- a/deps/glslang/Test/baseResults/spv.specConst.vert.out +++ /dev/null @@ -1,56 +0,0 @@ -spv.specConst.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 27 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 13 25 26 - Source GLSL 450 - Name 4 "main" - Name 11 "gl_PerVertex" - MemberName 11(gl_PerVertex) 0 "gl_Position" - MemberName 11(gl_PerVertex) 1 "gl_PointSize" - MemberName 11(gl_PerVertex) 2 "gl_ClipDistance" - MemberName 11(gl_PerVertex) 3 "gl_CullDistance" - Name 13 "" - Name 18 "a" - Name 25 "gl_VertexID" - Name 26 "gl_InstanceID" - MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 11(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 11(gl_PerVertex) 2 BuiltIn ClipDistance - MemberDecorate 11(gl_PerVertex) 3 BuiltIn CullDistance - Decorate 11(gl_PerVertex) Block - Decorate 18(a) SpecId 11 - Decorate 25(gl_VertexID) BuiltIn VertexId - Decorate 26(gl_InstanceID) BuiltIn InstanceId - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeInt 32 0 - 9: 8(int) Constant 1 - 10: TypeArray 6(float) 9 -11(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 10 10 - 12: TypePointer Output 11(gl_PerVertex) - 13: 12(ptr) Variable Output - 14: TypeInt 32 1 - 15: 14(int) Constant 0 - 16: 6(float) Constant 1065353216 - 17: 7(fvec4) ConstantComposite 16 16 16 16 - 18(a): 14(int) SpecConstant 8 - 22: TypePointer Output 7(fvec4) - 24: TypePointer Input 14(int) - 25(gl_VertexID): 24(ptr) Variable Input -26(gl_InstanceID): 24(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 19: 6(float) ConvertSToF 18(a) - 20: 7(fvec4) CompositeConstruct 19 19 19 19 - 21: 7(fvec4) FDiv 17 20 - 23: 22(ptr) AccessChain 13 15 - Store 23 21 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.specConstArrayCheck.vert.out b/deps/glslang/Test/baseResults/spv.specConstArrayCheck.vert.out deleted file mode 100644 index d9b0779f..00000000 --- a/deps/glslang/Test/baseResults/spv.specConstArrayCheck.vert.out +++ /dev/null @@ -1,6 +0,0 @@ -spv.specConstArrayCheck.vert -ERROR: 0:13: '[' : array index out of range '6' -ERROR: 1 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.specConstant.comp.out b/deps/glslang/Test/baseResults/spv.specConstant.comp.out deleted file mode 100644 index a4e769fd..00000000 --- a/deps/glslang/Test/baseResults/spv.specConstant.comp.out +++ /dev/null @@ -1,50 +0,0 @@ -spv.specConstant.comp -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 27 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" - ExecutionMode 4 LocalSize 32 32 1 - Source GLSL 450 - Name 4 "main" - Name 7 "bn" - MemberName 7(bn) 0 "a" - Name 9 "bi" - MemberDecorate 7(bn) 0 Offset 0 - Decorate 7(bn) BufferBlock - Decorate 9(bi) DescriptorSet 0 - Decorate 9(bi) Binding 0 - Decorate 12 SpecId 18 - Decorate 14 SpecId 19 - Decorate 16 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7(bn): TypeStruct 6(int) - 8: TypePointer Uniform 7(bn) - 9(bi): 8(ptr) Variable Uniform - 10: TypeInt 32 1 - 11: 10(int) Constant 0 - 12: 6(int) SpecConstant 32 - 13: 6(int) Constant 32 - 14: 6(int) SpecConstant 1 - 15: TypeVector 6(int) 3 - 16: 15(ivec3) SpecConstantComposite 12 13 14 - 17: 6(int) Constant 0 - 18: 6(int) SpecConstantOp 81 16 0 - 19: 6(int) Constant 1 - 20: 6(int) SpecConstantOp 81 16 1(GLSL.std.450) - 21: 6(int) SpecConstantOp 132 18 20 - 22: 6(int) Constant 2 - 23: 6(int) SpecConstantOp 81 16 2 - 24: 6(int) SpecConstantOp 132 21 23 - 25: TypePointer Uniform 6(int) - 4(main): 2 Function None 3 - 5: Label - 26: 25(ptr) AccessChain 9(bi) 11 - Store 26 24 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.specConstant.float16.comp.out b/deps/glslang/Test/baseResults/spv.specConstant.float16.comp.out deleted file mode 100644 index be02057c..00000000 --- a/deps/glslang/Test/baseResults/spv.specConstant.float16.comp.out +++ /dev/null @@ -1,51 +0,0 @@ -spv.specConstant.float16.comp -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 18 - - Capability Shader - Capability Float16 - Capability StorageUniformBufferBlock16 - Extension "SPV_KHR_16bit_storage" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" - ExecutionMode 4 LocalSize 1 1 1 - Source GLSL 450 - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16" - Name 4 "main" - Name 7 "Output" - MemberName 7(Output) 0 "r0" - MemberName 7(Output) 1 "r1" - Name 9 "sb_out" - Name 12 "sc0" - Name 16 "sc1" - MemberDecorate 7(Output) 0 NonReadable - MemberDecorate 7(Output) 0 Offset 0 - MemberDecorate 7(Output) 1 NonReadable - MemberDecorate 7(Output) 1 Offset 2 - Decorate 7(Output) BufferBlock - Decorate 9(sb_out) DescriptorSet 0 - Decorate 9(sb_out) Binding 0 - Decorate 12(sc0) SpecId 1 - Decorate 16(sc1) SpecId 2 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 16 - 7(Output): TypeStruct 6(float16_t) 6(float16_t) - 8: TypePointer Uniform 7(Output) - 9(sb_out): 8(ptr) Variable Uniform - 10: TypeInt 32 1 - 11: 10(int) Constant 0 - 12(sc0):6(float16_t) SpecConstant 18624 - 13: TypePointer Uniform 6(float16_t) - 15: 10(int) Constant 1 - 16(sc1):6(float16_t) SpecConstant 52000 - 4(main): 2 Function None 3 - 5: Label - 14: 13(ptr) AccessChain 9(sb_out) 11 - Store 14 12(sc0) - 17: 13(ptr) AccessChain 9(sb_out) 15 - Store 17 16(sc1) - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.specConstant.int16.comp.out b/deps/glslang/Test/baseResults/spv.specConstant.int16.comp.out deleted file mode 100644 index 7bb4c8f3..00000000 --- a/deps/glslang/Test/baseResults/spv.specConstant.int16.comp.out +++ /dev/null @@ -1,51 +0,0 @@ -spv.specConstant.int16.comp -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 18 - - Capability Shader - Capability Int16 - Capability StorageUniformBufferBlock16 - Extension "SPV_KHR_16bit_storage" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" - ExecutionMode 4 LocalSize 1 1 1 - Source GLSL 450 - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int16" - Name 4 "main" - Name 7 "Output" - MemberName 7(Output) 0 "r0" - MemberName 7(Output) 1 "r1" - Name 9 "sb_out" - Name 12 "sc0" - Name 16 "sc1" - MemberDecorate 7(Output) 0 NonReadable - MemberDecorate 7(Output) 0 Offset 0 - MemberDecorate 7(Output) 1 NonReadable - MemberDecorate 7(Output) 1 Offset 2 - Decorate 7(Output) BufferBlock - Decorate 9(sb_out) DescriptorSet 0 - Decorate 9(sb_out) Binding 0 - Decorate 12(sc0) SpecId 1 - Decorate 16(sc1) SpecId 2 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 16 1 - 7(Output): TypeStruct 6(int16_t) 6(int16_t) - 8: TypePointer Uniform 7(Output) - 9(sb_out): 8(ptr) Variable Uniform - 10: TypeInt 32 1 - 11: 10(int) Constant 0 - 12(sc0): 6(int16_t) SpecConstant 20000 - 13: TypePointer Uniform 6(int16_t) - 15: 10(int) Constant 1 - 16(sc1): 6(int16_t) SpecConstant 4294947296 - 4(main): 2 Function None 3 - 5: Label - 14: 13(ptr) AccessChain 9(sb_out) 11 - Store 14 12(sc0) - 17: 13(ptr) AccessChain 9(sb_out) 15 - Store 17 16(sc1) - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.specConstant.int8.comp.out b/deps/glslang/Test/baseResults/spv.specConstant.int8.comp.out deleted file mode 100644 index 0ab3bdc2..00000000 --- a/deps/glslang/Test/baseResults/spv.specConstant.int8.comp.out +++ /dev/null @@ -1,51 +0,0 @@ -spv.specConstant.int8.comp -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 18 - - Capability Shader - Capability Int8 - Capability UniformAndStorageBuffer8BitAccess - Extension "SPV_KHR_8bit_storage" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" - ExecutionMode 4 LocalSize 1 1 1 - Source GLSL 450 - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int8" - Name 4 "main" - Name 7 "Output" - MemberName 7(Output) 0 "r0" - MemberName 7(Output) 1 "r1" - Name 9 "sb_out" - Name 12 "sc0" - Name 16 "sc1" - MemberDecorate 7(Output) 0 NonReadable - MemberDecorate 7(Output) 0 Offset 0 - MemberDecorate 7(Output) 1 NonReadable - MemberDecorate 7(Output) 1 Offset 1 - Decorate 7(Output) BufferBlock - Decorate 9(sb_out) DescriptorSet 0 - Decorate 9(sb_out) Binding 0 - Decorate 12(sc0) SpecId 1 - Decorate 16(sc1) SpecId 2 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 8 1 - 7(Output): TypeStruct 6(int8_t) 6(int8_t) - 8: TypePointer Uniform 7(Output) - 9(sb_out): 8(ptr) Variable Uniform - 10: TypeInt 32 1 - 11: 10(int) Constant 0 - 12(sc0): 6(int8_t) SpecConstant 127 - 13: TypePointer Uniform 6(int8_t) - 15: 10(int) Constant 1 - 16(sc1): 6(int8_t) SpecConstant 4294967169 - 4(main): 2 Function None 3 - 5: Label - 14: 13(ptr) AccessChain 9(sb_out) 11 - Store 14 12(sc0) - 17: 13(ptr) AccessChain 9(sb_out) 15 - Store 17 16(sc1) - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.specConstant.vert.out b/deps/glslang/Test/baseResults/spv.specConstant.vert.out deleted file mode 100644 index f7d43811..00000000 --- a/deps/glslang/Test/baseResults/spv.specConstant.vert.out +++ /dev/null @@ -1,146 +0,0 @@ -spv.specConstant.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 81 - - Capability Shader - Capability Float64 - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 20 22 28 53 - Source GLSL 400 - Name 4 "main" - Name 9 "arraySize" - Name 14 "foo(vf4[s216172782];" - 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 20(color) Location 0 - Decorate 22(ucol) Location 0 - Decorate 28(size) Location 1 - 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 53(dupUcol) Location 5 - Decorate 60(spDupBool) SpecId 117 - Decorate 63(dupScale) SpecId 122 - Decorate 67(spDupDouble) SpecId 119 - Decorate 68(spDupFloat) SpecId 118 - Decorate 77(gl_MaxImageUnits) SpecId 24 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeInt 32 1 - 9(arraySize): 8(int) SpecConstant 5 - 10: TypeArray 7(fvec4) 9(arraySize) - 11: TypePointer Function 10 - 12: TypeFunction 2 11(ptr) - 16: TypeFunction 8(int) - 19: TypePointer Output 7(fvec4) - 20(color): 19(ptr) Variable Output - 21: TypePointer Input 10 - 22(ucol): 21(ptr) Variable Input - 23: 8(int) Constant 2 - 24: TypePointer Input 7(fvec4) - 27: TypePointer Output 8(int) - 28(size): 27(ptr) Variable Output - 29: TypeBool - 30(spBool): 29(bool) SpecConstantTrue - 33: TypeInt 32 0 - 34(scale): 33(int) SpecConstant 2 - 38: TypeFloat 64 - 39(spDouble):38(float64_t) SpecConstant 1413754136 1074340347 - 40(spFloat): 6(float) SpecConstant 1078523331 - 41:38(float64_t) SpecConstantOp 115 40(spFloat) -50(dupArraySize): 8(int) SpecConstant 12 - 51: TypeArray 7(fvec4) 50(dupArraySize) - 52: TypePointer Input 51 - 53(dupUcol): 52(ptr) Variable Input - 60(spDupBool): 29(bool) SpecConstantTrue - 63(dupScale): 33(int) SpecConstant 2 - 67(spDupDouble):38(float64_t) SpecConstant 1413754136 1074340347 - 68(spDupFloat): 6(float) SpecConstant 1078523331 - 69:38(float64_t) SpecConstantOp 115 68(spDupFloat) - 75: TypePointer Function 8(int) -77(gl_MaxImageUnits): 8(int) SpecConstant 8 - 4(main): 2 Function None 3 - 5: Label - 47(param): 11(ptr) Variable Function - 25: 24(ptr) AccessChain 22(ucol) 23 - 26: 7(fvec4) Load 25 - Store 20(color) 26 - Store 28(size) 9(arraySize) - SelectionMerge 32 None - BranchConditional 30(spBool) 31 32 - 31: Label - 35: 6(float) ConvertUToF 34(scale) - 36: 7(fvec4) Load 20(color) - 37: 7(fvec4) VectorTimesScalar 36 35 - Store 20(color) 37 - Branch 32 - 32: Label - 42:38(float64_t) FDiv 39(spDouble) 41 - 43: 6(float) FConvert 42 - 44: 7(fvec4) Load 20(color) - 45: 7(fvec4) CompositeConstruct 43 43 43 43 - 46: 7(fvec4) FAdd 44 45 - Store 20(color) 46 - 48: 10 Load 22(ucol) - Store 47(param) 48 - 49: 2 FunctionCall 14(foo(vf4[s216172782];) 47(param) - Return - FunctionEnd -14(foo(vf4[s216172782];): 2 Function None 12 - 13(p): 11(ptr) FunctionParameter - 15: Label - 54: 24(ptr) AccessChain 53(dupUcol) 23 - 55: 7(fvec4) Load 54 - 56: 7(fvec4) Load 20(color) - 57: 7(fvec4) FAdd 56 55 - Store 20(color) 57 - 58: 8(int) Load 28(size) - 59: 8(int) IAdd 58 50(dupArraySize) - Store 28(size) 59 - SelectionMerge 62 None - BranchConditional 60(spDupBool) 61 62 - 61: Label - 64: 6(float) ConvertUToF 63(dupScale) - 65: 7(fvec4) Load 20(color) - 66: 7(fvec4) VectorTimesScalar 65 64 - Store 20(color) 66 - Branch 62 - 62: Label - 70:38(float64_t) FDiv 67(spDupDouble) 69 - 71: 6(float) FConvert 70 - 72: 7(fvec4) Load 20(color) - 73: 7(fvec4) CompositeConstruct 71 71 71 71 - 74: 7(fvec4) FAdd 72 73 - Store 20(color) 74 - Return - FunctionEnd -17(builtin_spec_constant(): 8(int) Function None 16 - 18: Label - 76(result): 75(ptr) Variable Function - Store 76(result) 77(gl_MaxImageUnits) - 78: 8(int) Load 76(result) - ReturnValue 78 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.specConstantComposite.vert.out b/deps/glslang/Test/baseResults/spv.specConstantComposite.vert.out deleted file mode 100644 index 15777d8f..00000000 --- a/deps/glslang/Test/baseResults/spv.specConstantComposite.vert.out +++ /dev/null @@ -1,89 +0,0 @@ -spv.specConstantComposite.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 43 - - Capability Shader - Capability Float64 - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 27 42 - Source GLSL 450 - Name 4 "main" - Name 6 "refer_primary_spec_const(" - Name 8 "refer_composite_spec_const(" - Name 10 "refer_copmosite_dot_dereference(" - Name 12 "refer_composite_bracket_dereference(" - Name 16 "refer_spec_const_array_length(" - Name 18 "declare_spec_const_in_func(" - Name 21 "spec_bool" - Name 27 "color" - Name 28 "spec_int" - Name 33 "len" - Name 37 "spec_float" - Name 39 "spec_double" - Name 42 "global_vec4_array_with_spec_length" - Decorate 21(spec_bool) SpecId 203 - Decorate 27(color) Location 0 - Decorate 28(spec_int) SpecId 200 - Decorate 37(spec_float) SpecId 201 - Decorate 39(spec_double) SpecId 202 - Decorate 42(global_vec4_array_with_spec_length) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 14: TypeInt 32 1 - 15: TypeFunction 14(int) - 20: TypeBool - 21(spec_bool): 20(bool) SpecConstantTrue - 24: TypeFloat 32 - 25: TypeVector 24(float) 4 - 26: TypePointer Output 25(fvec4) - 27(color): 26(ptr) Variable Output - 28(spec_int): 14(int) SpecConstant 3 - 32: TypePointer Function 14(int) - 37(spec_float): 24(float) SpecConstant 1078523331 - 38: TypeFloat 64 - 39(spec_double):38(float64_t) SpecConstant 1413754136 1074340347 - 40: TypeArray 25(fvec4) 28(spec_int) - 41: TypePointer Input 40 -42(global_vec4_array_with_spec_length): 41(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - Return - FunctionEnd -6(refer_primary_spec_const(): 2 Function None 3 - 7: Label - SelectionMerge 23 None - BranchConditional 21(spec_bool) 22 23 - 22: Label - 29: 24(float) ConvertSToF 28(spec_int) - 30: 25(fvec4) Load 27(color) - 31: 25(fvec4) VectorTimesScalar 30 29 - Store 27(color) 31 - Branch 23 - 23: Label - Return - FunctionEnd -8(refer_composite_spec_const(): 2 Function None 3 - 9: Label - Return - FunctionEnd -10(refer_copmosite_dot_dereference(): 2 Function None 3 - 11: Label - Return - FunctionEnd -12(refer_composite_bracket_dereference(): 2 Function None 3 - 13: Label - Return - FunctionEnd -16(refer_spec_const_array_length(): 14(int) Function None 15 - 17: Label - 33(len): 32(ptr) Variable Function - Store 33(len) 28(spec_int) - 34: 14(int) Load 33(len) - ReturnValue 34 - FunctionEnd -18(declare_spec_const_in_func(): 2 Function None 3 - 19: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.specConstantOperations.vert.out b/deps/glslang/Test/baseResults/spv.specConstantOperations.vert.out deleted file mode 100644 index 53664601..00000000 --- a/deps/glslang/Test/baseResults/spv.specConstantOperations.vert.out +++ /dev/null @@ -1,261 +0,0 @@ -spv.specConstantOperations.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 162 - - Capability Shader - Capability Float64 - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" - Source GLSL 450 - Name 4 "main" - Name 8 "non_const_array_size_from_spec_const(" - Name 11 "i" - Name 19 "sp_int" - Name 27 "array" - Name 40 "sp_float" - Name 42 "sp_uint" - Name 43 "sp_sint" - Name 45 "sp_double" - Name 46 "float_from_double" - Name 47 "double_from_float" - Name 49 "bool_from_int" - Name 50 "bool_from_uint" - Name 51 "int_from_bool" - Name 53 "uint_from_bool" - Name 54 "sp_uint_from_sint" - Name 55 "sp_sint_from_uint" - Name 56 "negate_int" - Name 57 "not_int" - Name 58 "sp_int_add_two" - Name 61 "sp_int_add_two_sub_three" - Name 63 "sp_int_add_two_sub_four" - Name 64 "sp_sint_mul_two" - Name 66 "sp_uint_mul_two" - Name 68 "sp_sint_mul_two_div_five" - Name 70 "sp_uint_mul_two_div_five" - Name 71 "sp_sint_rem_four" - Name 73 "sp_uint_rem_four" - Name 75 "sp_sint_mul_three_div_five" - Name 77 "sp_sint_shift_right_arithmetic" - Name 79 "sp_uint_shift_right_arithmetic" - Name 80 "sp_sint_shift_left" - Name 81 "sp_uint_shift_left" - Name 83 "sp_sint_or_256" - Name 85 "sp_uint_xor_512" - Name 86 "sp_int_lt_sp_sint" - Name 87 "sp_uint_equal_sp_uint" - Name 88 "sp_int_gt_sp_sint" - Name 91 "iv" - Name 95 "uv" - Name 98 "bv_from_iv" - Name 99 "bv_from_uv" - Name 102 "iv_from_bv" - Name 104 "uv_from_bv" - Name 105 "uv_from_iv" - Name 106 "iv_from_uv" - Name 107 "not_iv" - Name 108 "negate_iv" - Name 110 "iv_add_two" - Name 113 "iv_add_two_sub_three" - Name 115 "iv_add_two_sub_four" - Name 116 "iv_mul_two" - Name 118 "iv_mul_two_div_five" - Name 119 "iv_rem_four" - Name 121 "iv_shift_right_arithmetic" - Name 122 "iv_shift_left" - Name 125 "iv_or_1024" - Name 128 "uv_xor_2048" - Name 129 "iv_x" - Name 131 "iv_yx" - Name 133 "iv_zyx" - Name 134 "iv_yzxw" - Name 135 "a" - Name 136 "b" - Name 137 "c" - Name 142 "ternayArray1" - Name 145 "t1" - Name 146 "t2" - Name 148 "t3" - Name 152 "t4" - Name 161 "v2" - Decorate 19(sp_int) SpecId 201 - Decorate 40(sp_float) SpecId 200 - Decorate 42(sp_uint) SpecId 202 - Decorate 43(sp_sint) SpecId 203 - Decorate 45(sp_double) SpecId 204 - Decorate 135(a) SpecId 210 - Decorate 136(b) SpecId 211 - Decorate 137(c) SpecId 212 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypeFunction 6(int) - 10: TypePointer Function 6(int) - 12: 6(int) Constant 0 - 19(sp_int): 6(int) SpecConstant 10 - 20: 6(int) Constant 2 - 21: 6(int) SpecConstantOp 128 19(sp_int) 20 - 22: TypeBool - 24: 6(int) SpecConstantOp 128 19(sp_int) 20 - 25: TypeArray 6(int) 24 - 26: TypePointer Function 25 - 29: 6(int) Constant 1023 - 32: 6(int) Constant 1 - 34: 6(int) SpecConstantOp 128 19(sp_int) 32 - 39: TypeFloat 32 - 40(sp_float): 39(float) SpecConstant 1078530010 - 41: TypeInt 32 0 - 42(sp_uint): 41(int) SpecConstant 100 - 43(sp_sint): 6(int) SpecConstant 4294967286 - 44: TypeFloat 64 - 45(sp_double):44(float64_t) SpecConstant 2333366019 1074118410 -46(float_from_double): 39(float) SpecConstantOp 115 45(sp_double) -47(double_from_float):44(float64_t) SpecConstantOp 115 40(sp_float) - 48: 41(int) Constant 0 -49(bool_from_int): 22(bool) SpecConstantOp 171 19(sp_int) 48 -50(bool_from_uint): 22(bool) SpecConstantOp 171 42(sp_uint) 48 -51(int_from_bool): 6(int) SpecConstantOp 169 49(bool_from_int) 32 12 - 52: 41(int) Constant 1 -53(uint_from_bool): 41(int) SpecConstantOp 169 49(bool_from_int) 52 48 -54(sp_uint_from_sint): 41(int) SpecConstantOp 128 43(sp_sint) 48 -55(sp_sint_from_uint): 6(int) SpecConstantOp 128 42(sp_uint) 48 - 56(negate_int): 6(int) SpecConstantOp 126 19(sp_int) - 57(not_int): 6(int) SpecConstantOp 200 19(sp_int) -58(sp_int_add_two): 6(int) SpecConstantOp 128 19(sp_int) 20 - 59: 6(int) SpecConstantOp 128 19(sp_int) 20 - 60: 6(int) Constant 3 -61(sp_int_add_two_sub_three): 6(int) SpecConstantOp 130 59 60 - 62: 6(int) Constant 4 -63(sp_int_add_two_sub_four): 6(int) SpecConstantOp 130 58(sp_int_add_two) 62 -64(sp_sint_mul_two): 6(int) SpecConstantOp 132 43(sp_sint) 20 - 65: 41(int) Constant 2 -66(sp_uint_mul_two): 41(int) SpecConstantOp 132 42(sp_uint) 65 - 67: 6(int) Constant 5 -68(sp_sint_mul_two_div_five): 6(int) SpecConstantOp 135 64(sp_sint_mul_two) 67 - 69: 41(int) Constant 5 -70(sp_uint_mul_two_div_five): 41(int) SpecConstantOp 134 66(sp_uint_mul_two) 69 -71(sp_sint_rem_four): 6(int) SpecConstantOp 139 43(sp_sint) 62 - 72: 41(int) Constant 4 -73(sp_uint_rem_four): 41(int) SpecConstantOp 137 42(sp_uint) 72 - 74: 6(int) SpecConstantOp 132 43(sp_sint) 60 -75(sp_sint_mul_three_div_five): 6(int) SpecConstantOp 135 74 67 - 76: 6(int) Constant 10 -77(sp_sint_shift_right_arithmetic): 6(int) SpecConstantOp 195 43(sp_sint) 76 - 78: 6(int) Constant 20 -79(sp_uint_shift_right_arithmetic): 41(int) SpecConstantOp 194 42(sp_uint) 78 -80(sp_sint_shift_left): 6(int) SpecConstantOp 196 43(sp_sint) 32 -81(sp_uint_shift_left): 41(int) SpecConstantOp 196 42(sp_uint) 20 - 82: 6(int) Constant 256 -83(sp_sint_or_256): 6(int) SpecConstantOp 197 43(sp_sint) 82 - 84: 41(int) Constant 512 -85(sp_uint_xor_512): 41(int) SpecConstantOp 198 42(sp_uint) 84 -86(sp_int_lt_sp_sint): 22(bool) SpecConstantOp 177 19(sp_int) 43(sp_sint) -87(sp_uint_equal_sp_uint): 22(bool) SpecConstantOp 170 42(sp_uint) 42(sp_uint) -88(sp_int_gt_sp_sint): 22(bool) SpecConstantOp 173 19(sp_int) 43(sp_sint) - 89: 6(int) Constant 30 - 90: TypeVector 6(int) 4 - 91(iv): 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(uv): 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(bv_from_iv): 96(bvec4) SpecConstantOp 171 91(iv) 97 - 99(bv_from_uv): 96(bvec4) SpecConstantOp 171 95(uv) 97 - 100: 90(ivec4) ConstantComposite 12 12 12 12 - 101: 90(ivec4) ConstantComposite 32 32 32 32 - 102(iv_from_bv): 90(ivec4) SpecConstantOp 169 98(bv_from_iv) 101 100 - 103: 94(ivec4) ConstantComposite 52 52 52 52 - 104(uv_from_bv): 94(ivec4) SpecConstantOp 169 98(bv_from_iv) 103 97 - 105(uv_from_iv): 94(ivec4) SpecConstantOp 128 91(iv) 97 - 106(iv_from_uv): 90(ivec4) SpecConstantOp 128 95(uv) 97 - 107(not_iv): 90(ivec4) SpecConstantOp 200 91(iv) - 108(negate_iv): 90(ivec4) SpecConstantOp 126 91(iv) - 109: 90(ivec4) ConstantComposite 20 20 20 20 - 110(iv_add_two): 90(ivec4) SpecConstantOp 128 91(iv) 109 - 111: 90(ivec4) SpecConstantOp 128 91(iv) 109 - 112: 90(ivec4) ConstantComposite 60 60 60 60 -113(iv_add_two_sub_three): 90(ivec4) SpecConstantOp 130 111 112 - 114: 90(ivec4) ConstantComposite 62 62 62 62 -115(iv_add_two_sub_four): 90(ivec4) SpecConstantOp 130 113(iv_add_two_sub_three) 114 - 116(iv_mul_two): 90(ivec4) SpecConstantOp 132 91(iv) 109 - 117: 90(ivec4) ConstantComposite 67 67 67 67 -118(iv_mul_two_div_five): 90(ivec4) SpecConstantOp 135 116(iv_mul_two) 117 -119(iv_rem_four): 90(ivec4) SpecConstantOp 139 91(iv) 114 - 120: 90(ivec4) ConstantComposite 76 76 76 76 -121(iv_shift_right_arithmetic): 90(ivec4) SpecConstantOp 195 91(iv) 120 -122(iv_shift_left): 90(ivec4) SpecConstantOp 196 91(iv) 109 - 123: 6(int) Constant 1024 - 124: 90(ivec4) ConstantComposite 123 123 123 123 - 125(iv_or_1024): 90(ivec4) SpecConstantOp 197 91(iv) 124 - 126: 41(int) Constant 2048 - 127: 94(ivec4) ConstantComposite 126 126 126 126 -128(uv_xor_2048): 94(ivec4) SpecConstantOp 198 95(uv) 127 - 129(iv_x): 6(int) SpecConstantOp 81 91(iv) 0 - 130: TypeVector 6(int) 2 - 131(iv_yx): 130(ivec2) SpecConstantOp 79 91(iv) 91(iv) 1(GLSL.std.450) 0 - 132: TypeVector 6(int) 3 - 133(iv_zyx): 132(ivec3) SpecConstantOp 79 91(iv) 91(iv) 2 1(GLSL.std.450) 0 - 134(iv_yzxw): 90(ivec4) SpecConstantOp 79 91(iv) 91(iv) 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(t1): 6(int) SpecConstantOp 169 137(c) 143 144 - 146(t2): 6(int) SpecConstantOp 169 137(c) 135(a) 144 - 147: 22(bool) ConstantTrue - 148(t3): 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(t4): 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(v2): 154(fvec2) SpecConstantOp 169 160 156 158 - 4(main): 2 Function None 3 - 5: Label - Return - FunctionEnd -8(non_const_array_size_from_spec_const(): 6(int) Function None 7 - 9: Label - 11(i): 10(ptr) Variable Function - 27(array): 26(ptr) Variable Function - Store 11(i) 12 - Branch 13 - 13: Label - LoopMerge 15 16 None - Branch 17 - 17: Label - 18: 6(int) Load 11(i) - 23: 22(bool) SLessThan 18 21 - BranchConditional 23 14 15 - 14: Label - 28: 6(int) Load 11(i) - 30: 10(ptr) AccessChain 27(array) 28 - Store 30 29 - Branch 16 - 16: Label - 31: 6(int) Load 11(i) - 33: 6(int) IAdd 31 32 - Store 11(i) 33 - Branch 13 - 15: Label - 35: 10(ptr) AccessChain 27(array) 34 - 36: 6(int) Load 35 - ReturnValue 36 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.specTexture.frag.out b/deps/glslang/Test/baseResults/spv.specTexture.frag.out deleted file mode 100644 index 4ca488eb..00000000 --- a/deps/glslang/Test/baseResults/spv.specTexture.frag.out +++ /dev/null @@ -1,44 +0,0 @@ -spv.specTexture.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 23 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 9 - ExecutionMode 4 OriginLowerLeft - Source GLSL 450 - Name 4 "main" - Name 9 "color_out" - Name 13 "tex" - Name 19 "offs" - Decorate 9(color_out) Location 0 - Decorate 13(tex) Location 0 - Decorate 13(tex) DescriptorSet 0 - Decorate 13(tex) Binding 0 - Decorate 19(offs) SpecId 1 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) - 9(color_out): 8(ptr) Variable Output - 10: TypeImage 6(float) 2D sampled format:Unknown - 11: TypeSampledImage 10 - 12: TypePointer UniformConstant 11 - 13(tex): 12(ptr) Variable UniformConstant - 15: TypeVector 6(float) 2 - 16: 6(float) Constant 0 - 17: 15(fvec2) ConstantComposite 16 16 - 18: TypeInt 32 1 - 19(offs): 18(int) SpecConstant 0 - 20: TypeVector 18(int) 2 - 21: 20(ivec2) SpecConstantComposite 19(offs) 19(offs) - 4(main): 2 Function None 3 - 5: Label - 14: 11 Load 13(tex) - 22: 7(fvec4) ImageSampleExplicitLod 14 17 Lod ConstOffset 16 21 - Store 9(color_out) 22 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.ssbo.autoassign.frag.out b/deps/glslang/Test/baseResults/spv.ssbo.autoassign.frag.out deleted file mode 100644 index e2db863c..00000000 --- a/deps/glslang/Test/baseResults/spv.ssbo.autoassign.frag.out +++ /dev/null @@ -1,156 +0,0 @@ -spv.ssbo.autoassign.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 99 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 92 95 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 11 "@main(vf4;" - Name 10 "pos" - Name 13 "vTmp" - Name 14 "BufType" - MemberName 14(BufType) 0 "va" - MemberName 14(BufType) 1 "vb" - Name 16 "SB0" - MemberName 16(SB0) 0 "@data" - Name 18 "SB0" - Name 26 "TestCB" - MemberName 26(TestCB) 0 "W" - MemberName 26(TestCB) 1 "H" - Name 28 "" - Name 57 "SB1" - MemberName 57(SB1) 0 "@data" - Name 59 "SB1" - Name 90 "pos" - Name 92 "pos" - Name 95 "@entryPointOutput" - Name 96 "param" - MemberDecorate 14(BufType) 0 Offset 0 - MemberDecorate 14(BufType) 1 Offset 16 - Decorate 15 ArrayStride 32 - MemberDecorate 16(SB0) 0 NonWritable - MemberDecorate 16(SB0) 0 Offset 0 - Decorate 16(SB0) BufferBlock - Decorate 18(SB0) DescriptorSet 0 - Decorate 18(SB0) Binding 30 - MemberDecorate 26(TestCB) 0 Offset 0 - MemberDecorate 26(TestCB) 1 Offset 4 - Decorate 26(TestCB) Block - Decorate 28 DescriptorSet 0 - Decorate 28 Binding 15 - Decorate 56 ArrayStride 32 - MemberDecorate 57(SB1) 0 Offset 0 - Decorate 57(SB1) BufferBlock - Decorate 59(SB1) DescriptorSet 0 - Decorate 59(SB1) Binding 31 - Decorate 92(pos) Location 0 - Decorate 95(@entryPointOutput) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 9: TypeFunction 7(fvec4) 8(ptr) - 14(BufType): TypeStruct 7(fvec4) 7(fvec4) - 15: TypeRuntimeArray 14(BufType) - 16(SB0): TypeStruct 15 - 17: TypePointer Uniform 16(SB0) - 18(SB0): 17(ptr) Variable Uniform - 19: TypeInt 32 1 - 20: 19(int) Constant 0 - 21: TypeInt 32 0 - 22: 21(int) Constant 1 - 23: TypePointer Function 6(float) - 26(TestCB): TypeStruct 21(int) 21(int) - 27: TypePointer Uniform 26(TestCB) - 28: 27(ptr) Variable Uniform - 29: TypePointer Uniform 21(int) - 34: 21(int) Constant 0 - 39: TypePointer Uniform 7(fvec4) - 52: 19(int) Constant 1 - 56: TypeRuntimeArray 14(BufType) - 57(SB1): TypeStruct 56 - 58: TypePointer Uniform 57(SB1) - 59(SB1): 58(ptr) Variable Uniform - 91: TypePointer Input 7(fvec4) - 92(pos): 91(ptr) Variable Input - 94: TypePointer Output 7(fvec4) -95(@entryPointOutput): 94(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 90(pos): 8(ptr) Variable Function - 96(param): 8(ptr) Variable Function - 93: 7(fvec4) Load 92(pos) - Store 90(pos) 93 - 97: 7(fvec4) Load 90(pos) - Store 96(param) 97 - 98: 7(fvec4) FunctionCall 11(@main(vf4;) 96(param) - Store 95(@entryPointOutput) 98 - Return - FunctionEnd - 11(@main(vf4;): 7(fvec4) Function None 9 - 10(pos): 8(ptr) FunctionParameter - 12: Label - 13(vTmp): 8(ptr) Variable Function - 24: 23(ptr) AccessChain 10(pos) 22 - 25: 6(float) Load 24 - 30: 29(ptr) AccessChain 28 20 - 31: 21(int) Load 30 - 32: 6(float) ConvertUToF 31 - 33: 6(float) FMul 25 32 - 35: 23(ptr) AccessChain 10(pos) 34 - 36: 6(float) Load 35 - 37: 6(float) FAdd 33 36 - 38: 21(int) ConvertFToU 37 - 40: 39(ptr) AccessChain 18(SB0) 20 38 20 - 41: 7(fvec4) Load 40 - 42: 23(ptr) AccessChain 10(pos) 22 - 43: 6(float) Load 42 - 44: 29(ptr) AccessChain 28 20 - 45: 21(int) Load 44 - 46: 6(float) ConvertUToF 45 - 47: 6(float) FMul 43 46 - 48: 23(ptr) AccessChain 10(pos) 34 - 49: 6(float) Load 48 - 50: 6(float) FAdd 47 49 - 51: 21(int) ConvertFToU 50 - 53: 39(ptr) AccessChain 18(SB0) 20 51 52 - 54: 7(fvec4) Load 53 - 55: 7(fvec4) FAdd 41 54 - Store 13(vTmp) 55 - 60: 23(ptr) AccessChain 10(pos) 22 - 61: 6(float) Load 60 - 62: 29(ptr) AccessChain 28 20 - 63: 21(int) Load 62 - 64: 6(float) ConvertUToF 63 - 65: 6(float) FMul 61 64 - 66: 23(ptr) AccessChain 10(pos) 34 - 67: 6(float) Load 66 - 68: 6(float) FAdd 65 67 - 69: 21(int) ConvertFToU 68 - 70: 39(ptr) AccessChain 59(SB1) 20 69 20 - 71: 7(fvec4) Load 70 - 72: 23(ptr) AccessChain 10(pos) 22 - 73: 6(float) Load 72 - 74: 29(ptr) AccessChain 28 20 - 75: 21(int) Load 74 - 76: 6(float) ConvertUToF 75 - 77: 6(float) FMul 73 76 - 78: 23(ptr) AccessChain 10(pos) 34 - 79: 6(float) Load 78 - 80: 6(float) FAdd 77 79 - 81: 21(int) ConvertFToU 80 - 82: 39(ptr) AccessChain 59(SB1) 20 81 52 - 83: 7(fvec4) Load 82 - 84: 7(fvec4) FAdd 71 83 - 85: 7(fvec4) Load 13(vTmp) - 86: 7(fvec4) FAdd 85 84 - Store 13(vTmp) 86 - 87: 7(fvec4) Load 13(vTmp) - ReturnValue 87 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.ssboAlias.frag.out b/deps/glslang/Test/baseResults/spv.ssboAlias.frag.out deleted file mode 100644 index cdcd222c..00000000 --- a/deps/glslang/Test/baseResults/spv.ssboAlias.frag.out +++ /dev/null @@ -1,86 +0,0 @@ -spv.ssboAlias.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 44 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 41 - ExecutionMode 4 OriginUpperLeft - Source HLSL 500 - Name 4 "main" - Name 9 "@main(" - Name 13 "Buf1" - MemberName 13(Buf1) 0 "@data" - Name 15 "Buf1" - Name 18 "Buf1@count" - MemberName 18(Buf1@count) 0 "@count" - Name 20 "Buf1@count" - Name 28 "Buf2" - Name 29 "Buf2@count" - Name 41 "@entryPointOutput" - Name 43 "Buf3" - Decorate 12 ArrayStride 4 - MemberDecorate 13(Buf1) 0 Offset 0 - Decorate 13(Buf1) BufferBlock - Decorate 15(Buf1) DescriptorSet 0 - Decorate 15(Buf1) Binding 84 - MemberDecorate 18(Buf1@count) 0 Offset 0 - Decorate 18(Buf1@count) BufferBlock - Decorate 20(Buf1@count) DescriptorSet 0 - Decorate 20(Buf1@count) Binding 83 - Decorate 28(Buf2) DescriptorSet 0 - Decorate 28(Buf2) Binding 85 - Decorate 29(Buf2@count) DescriptorSet 0 - Decorate 29(Buf2@count) Binding 86 - Decorate 41(@entryPointOutput) Location 0 - Decorate 43(Buf3) DescriptorSet 0 - Decorate 43(Buf3) Binding 84 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 11: TypeInt 32 0 - 12: TypeRuntimeArray 11(int) - 13(Buf1): TypeStruct 12 - 14: TypePointer Uniform 13(Buf1) - 15(Buf1): 14(ptr) Variable Uniform - 16: TypeInt 32 1 - 17: 16(int) Constant 0 - 18(Buf1@count): TypeStruct 11(int) - 19: TypePointer Uniform 18(Buf1@count) - 20(Buf1@count): 19(ptr) Variable Uniform - 21: TypePointer Uniform 11(int) - 23: 11(int) Constant 1 - 24: 11(int) Constant 0 - 26: 11(int) Constant 10 - 28(Buf2): 14(ptr) Variable Uniform - 29(Buf2@count): 19(ptr) Variable Uniform - 32: 11(int) Constant 20 - 34: 6(float) Constant 1065353216 - 35: 6(float) Constant 1077936128 - 36: 6(float) Constant 1084227584 - 37: 7(fvec4) ConstantComposite 34 35 36 34 - 40: TypePointer Output 7(fvec4) -41(@entryPointOutput): 40(ptr) Variable Output - 43(Buf3): 14(ptr) Variable Uniform - 4(main): 2 Function None 3 - 5: Label - 42: 7(fvec4) FunctionCall 9(@main() - Store 41(@entryPointOutput) 42 - Return - FunctionEnd - 9(@main(): 7(fvec4) Function None 8 - 10: Label - 22: 21(ptr) AccessChain 20(Buf1@count) 17 - 25: 11(int) AtomicIAdd 22 23 24 23 - 27: 21(ptr) AccessChain 15(Buf1) 17 25 - Store 27 26 - 30: 21(ptr) AccessChain 29(Buf2@count) 17 - 31: 11(int) AtomicIAdd 30 23 24 23 - 33: 21(ptr) AccessChain 28(Buf2) 17 31 - Store 33 32 - ReturnValue 37 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.stereoViewRendering.tesc.out b/deps/glslang/Test/baseResults/spv.stereoViewRendering.tesc.out deleted file mode 100644 index f01e53bf..00000000 --- a/deps/glslang/Test/baseResults/spv.stereoViewRendering.tesc.out +++ /dev/null @@ -1,90 +0,0 @@ -spv.stereoViewRendering.tesc -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 42 - - Capability Tessellation - Capability ShaderViewportIndexLayerNV - Capability ShaderViewportMaskNV - Capability ShaderStereoViewNV - Extension "SPV_EXT_shader_viewport_index_layer" - Extension "SPV_NV_stereo_view_rendering" - Extension "SPV_NV_viewport_array2" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint TessellationControl 4 "main" 16 18 31 41 - ExecutionMode 4 OutputVertices 4 - Source GLSL 450 - SourceExtension "GL_NV_stereo_view_rendering" - SourceExtension "GL_NV_viewport_array2" - Name 4 "main" - Name 12 "gl_PerVertex" - MemberName 12(gl_PerVertex) 0 "gl_SecondaryPositionNV" - MemberName 12(gl_PerVertex) 1 "gl_SecondaryViewportMaskNV" - Name 16 "gl_out" - Name 18 "gl_InvocationID" - Name 27 "gl_PerVertex" - MemberName 27(gl_PerVertex) 0 "gl_Position" - MemberName 27(gl_PerVertex) 1 "gl_PointSize" - MemberName 27(gl_PerVertex) 2 "gl_ClipDistance" - MemberName 27(gl_PerVertex) 3 "gl_CullDistance" - MemberName 27(gl_PerVertex) 4 "gl_SecondaryPositionNV" - Name 31 "gl_in" - Name 41 "gl_Layer" - MemberDecorate 12(gl_PerVertex) 0 BuiltIn SecondaryPositionNV - MemberDecorate 12(gl_PerVertex) 1 BuiltIn SecondaryViewportMaskNV - Decorate 12(gl_PerVertex) Block - Decorate 18(gl_InvocationID) BuiltIn InvocationId - MemberDecorate 27(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 27(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 27(gl_PerVertex) 2 BuiltIn ClipDistance - MemberDecorate 27(gl_PerVertex) 3 BuiltIn CullDistance - MemberDecorate 27(gl_PerVertex) 4 BuiltIn SecondaryPositionNV - Decorate 27(gl_PerVertex) Block - Decorate 41(gl_Layer) BuiltIn Layer - Decorate 41(gl_Layer) ViewportRelativeNV - Decorate 41(gl_Layer) SecondaryViewportRelativeNV 1 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeInt 32 1 - 9: TypeInt 32 0 - 10: 9(int) Constant 2 - 11: TypeArray 8(int) 10 -12(gl_PerVertex): TypeStruct 7(fvec4) 11 - 13: 9(int) Constant 4 - 14: TypeArray 12(gl_PerVertex) 13 - 15: TypePointer Output 14 - 16(gl_out): 15(ptr) Variable Output - 17: TypePointer Input 8(int) -18(gl_InvocationID): 17(ptr) Variable Input - 20: 8(int) Constant 1 - 21: 8(int) Constant 0 - 22: TypePointer Output 8(int) - 25: 9(int) Constant 1 - 26: TypeArray 6(float) 25 -27(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 26 26 7(fvec4) - 28: 9(int) Constant 32 - 29: TypeArray 27(gl_PerVertex) 28 - 30: TypePointer Input 29 - 31(gl_in): 30(ptr) Variable Input - 32: TypePointer Input 7(fvec4) - 35: 8(int) Constant 4 - 39: TypePointer Output 7(fvec4) - 41(gl_Layer): 22(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 19: 8(int) Load 18(gl_InvocationID) - 23: 22(ptr) AccessChain 16(gl_out) 19 20 21 - Store 23 20 - 24: 8(int) Load 18(gl_InvocationID) - 33: 32(ptr) AccessChain 31(gl_in) 20 21 - 34: 7(fvec4) Load 33 - 36: 32(ptr) AccessChain 31(gl_in) 20 35 - 37: 7(fvec4) Load 36 - 38: 7(fvec4) FAdd 34 37 - 40: 39(ptr) AccessChain 16(gl_out) 24 21 - Store 40 38 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.stereoViewRendering.vert.out b/deps/glslang/Test/baseResults/spv.stereoViewRendering.vert.out deleted file mode 100644 index e74921af..00000000 --- a/deps/glslang/Test/baseResults/spv.stereoViewRendering.vert.out +++ /dev/null @@ -1,67 +0,0 @@ -spv.stereoViewRendering.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 27 - - Capability Shader - Capability ShaderViewportIndexLayerNV - Capability ShaderViewportMaskNV - Capability ShaderStereoViewNV - Extension "SPV_EXT_shader_viewport_index_layer" - Extension "SPV_NV_stereo_view_rendering" - Extension "SPV_NV_viewport_array2" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 11 19 23 26 - Source GLSL 450 - SourceExtension "GL_NV_stereo_view_rendering" - SourceExtension "GL_NV_viewport_array2" - Name 4 "main" - Name 11 "gl_SecondaryViewportMaskNV" - Name 19 "gl_SecondaryPositionNV" - Name 21 "gl_PerVertex" - MemberName 21(gl_PerVertex) 0 "gl_Position" - MemberName 21(gl_PerVertex) 1 "gl_PointSize" - MemberName 21(gl_PerVertex) 2 "gl_ClipDistance" - MemberName 21(gl_PerVertex) 3 "gl_CullDistance" - Name 23 "" - Name 26 "gl_Layer" - Decorate 11(gl_SecondaryViewportMaskNV) BuiltIn SecondaryViewportMaskNV - Decorate 19(gl_SecondaryPositionNV) BuiltIn SecondaryPositionNV - MemberDecorate 21(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 21(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 21(gl_PerVertex) 2 BuiltIn ClipDistance - MemberDecorate 21(gl_PerVertex) 3 BuiltIn CullDistance - Decorate 21(gl_PerVertex) Block - Decorate 26(gl_Layer) BuiltIn Layer - Decorate 26(gl_Layer) ViewportRelativeNV - Decorate 26(gl_Layer) SecondaryViewportRelativeNV 2 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypeInt 32 0 - 8: 7(int) Constant 1 - 9: TypeArray 6(int) 8 - 10: TypePointer Output 9 -11(gl_SecondaryViewportMaskNV): 10(ptr) Variable Output - 12: 6(int) Constant 0 - 13: 6(int) Constant 1 - 14: TypePointer Output 6(int) - 16: TypeFloat 32 - 17: TypeVector 16(float) 4 - 18: TypePointer Output 17(fvec4) -19(gl_SecondaryPositionNV): 18(ptr) Variable Output - 20: TypeArray 16(float) 8 -21(gl_PerVertex): TypeStruct 17(fvec4) 16(float) 20 20 - 22: TypePointer Output 21(gl_PerVertex) - 23: 22(ptr) Variable Output - 26(gl_Layer): 14(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 15: 14(ptr) AccessChain 11(gl_SecondaryViewportMaskNV) 12 - Store 15 13 - 24: 18(ptr) AccessChain 23 12 - 25: 17(fvec4) Load 24 - Store 19(gl_SecondaryPositionNV) 25 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.storageBuffer.vert.out b/deps/glslang/Test/baseResults/spv.storageBuffer.vert.out deleted file mode 100644 index 2411d2f7..00000000 --- a/deps/glslang/Test/baseResults/spv.storageBuffer.vert.out +++ /dev/null @@ -1,69 +0,0 @@ -spv.storageBuffer.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 31 - - Capability Shader - Extension "SPV_KHR_storage_buffer_storage_class" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 13 - Source GLSL 450 - Name 4 "main" - Name 11 "gl_PerVertex" - MemberName 11(gl_PerVertex) 0 "gl_Position" - MemberName 11(gl_PerVertex) 1 "gl_PointSize" - MemberName 11(gl_PerVertex) 2 "gl_ClipDistance" - MemberName 11(gl_PerVertex) 3 "gl_CullDistance" - Name 13 "" - Name 16 "ub" - MemberName 16(ub) 0 "a" - Name 18 "ubi" - Name 22 "bb" - MemberName 22(bb) 0 "b" - Name 24 "bbi" - MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 11(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 11(gl_PerVertex) 2 BuiltIn ClipDistance - MemberDecorate 11(gl_PerVertex) 3 BuiltIn CullDistance - Decorate 11(gl_PerVertex) Block - MemberDecorate 16(ub) 0 Offset 0 - Decorate 16(ub) Block - Decorate 18(ubi) DescriptorSet 0 - Decorate 18(ubi) Binding 0 - MemberDecorate 22(bb) 0 Offset 0 - Decorate 22(bb) Block - Decorate 24(bbi) DescriptorSet 0 - Decorate 24(bbi) Binding 1 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeInt 32 0 - 9: 8(int) Constant 1 - 10: TypeArray 6(float) 9 -11(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 10 10 - 12: TypePointer Output 11(gl_PerVertex) - 13: 12(ptr) Variable Output - 14: TypeInt 32 1 - 15: 14(int) Constant 0 - 16(ub): TypeStruct 7(fvec4) - 17: TypePointer Uniform 16(ub) - 18(ubi): 17(ptr) Variable Uniform - 19: TypePointer Uniform 7(fvec4) - 22(bb): TypeStruct 7(fvec4) - 23: TypePointer StorageBuffer 22(bb) - 24(bbi): 23(ptr) Variable StorageBuffer - 25: TypePointer StorageBuffer 7(fvec4) - 29: TypePointer Output 7(fvec4) - 4(main): 2 Function None 3 - 5: Label - 20: 19(ptr) AccessChain 18(ubi) 15 - 21: 7(fvec4) Load 20 - 26: 25(ptr) AccessChain 24(bbi) 15 - 27: 7(fvec4) Load 26 - 28: 7(fvec4) FAdd 21 27 - 30: 29(ptr) AccessChain 13 15 - Store 30 28 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.structAssignment.frag.out b/deps/glslang/Test/baseResults/spv.structAssignment.frag.out deleted file mode 100644 index 8e82cac3..00000000 --- a/deps/glslang/Test/baseResults/spv.structAssignment.frag.out +++ /dev/null @@ -1,101 +0,0 @@ -spv.structAssignment.frag -WARNING: 0:6: '' : all default precisions are highp; use precision statements to quiet warning, e.g.: - "precision mediump int; precision highp float;" - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 50 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 31 44 - ExecutionMode 4 OriginUpperLeft - Source GLSL 140 - Name 4 "main" - Name 8 "lunarStruct1" - MemberName 8(lunarStruct1) 0 "i" - MemberName 8(lunarStruct1) 1 "f" - Name 9 "lunarStruct2" - MemberName 9(lunarStruct2) 0 "i" - MemberName 9(lunarStruct2) 1 "f" - MemberName 9(lunarStruct2) 2 "s1_1" - Name 10 "lunarStruct3" - MemberName 10(lunarStruct3) 0 "s2_1" - MemberName 10(lunarStruct3) 1 "i" - MemberName 10(lunarStruct3) 2 "f" - MemberName 10(lunarStruct3) 3 "s1_1" - Name 12 "foo3" - Name 22 "locals2" - Name 27 "foo2" - Name 31 "gl_FragColor" - Name 40 "samp2D" - Name 44 "coord" - Name 49 "foo" - MemberDecorate 8(lunarStruct1) 0 RelaxedPrecision - MemberDecorate 9(lunarStruct2) 0 RelaxedPrecision - MemberDecorate 10(lunarStruct3) 1 RelaxedPrecision - Decorate 16 RelaxedPrecision - Decorate 31(gl_FragColor) Location 0 - Decorate 40(samp2D) DescriptorSet 0 - Decorate 40(samp2D) Binding 0 - Decorate 44(coord) RelaxedPrecision - Decorate 44(coord) Location 0 - Decorate 45 RelaxedPrecision - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypeFloat 32 - 8(lunarStruct1): TypeStruct 6(int) 7(float) - 9(lunarStruct2): TypeStruct 6(int) 7(float) 8(lunarStruct1) -10(lunarStruct3): TypeStruct 9(lunarStruct2) 6(int) 7(float) 8(lunarStruct1) - 11: TypePointer Private 10(lunarStruct3) - 12(foo3): 11(ptr) Variable Private - 13: 6(int) Constant 0 - 14: TypePointer Private 6(int) - 17: TypeBool - 21: TypePointer Function 9(lunarStruct2) - 23: TypePointer Private 9(lunarStruct2) - 27(foo2): 23(ptr) Variable Private - 29: TypeVector 7(float) 4 - 30: TypePointer Output 29(fvec4) -31(gl_FragColor): 30(ptr) Variable Output - 32: 6(int) Constant 2 - 33: 6(int) Constant 1 - 34: TypePointer Function 7(float) - 37: TypeImage 7(float) 2D sampled format:Unknown - 38: TypeSampledImage 37 - 39: TypePointer UniformConstant 38 - 40(samp2D): 39(ptr) Variable UniformConstant - 42: TypeVector 7(float) 2 - 43: TypePointer Input 42(fvec2) - 44(coord): 43(ptr) Variable Input - 48: TypePointer Private 8(lunarStruct1) - 49(foo): 48(ptr) Variable Private - 4(main): 2 Function None 3 - 5: Label - 22(locals2): 21(ptr) Variable Function - 15: 14(ptr) AccessChain 12(foo3) 13 13 - 16: 6(int) Load 15 - 18: 17(bool) SGreaterThan 16 13 - SelectionMerge 20 None - BranchConditional 18 19 26 - 19: Label - 24: 23(ptr) AccessChain 12(foo3) 13 - 25:9(lunarStruct2) Load 24 - Store 22(locals2) 25 - Branch 20 - 26: Label - 28:9(lunarStruct2) Load 27(foo2) - Store 22(locals2) 28 - Branch 20 - 20: Label - 35: 34(ptr) AccessChain 22(locals2) 32 33 - 36: 7(float) Load 35 - 41: 38 Load 40(samp2D) - 45: 42(fvec2) Load 44(coord) - 46: 29(fvec4) ImageSampleImplicitLod 41 45 - 47: 29(fvec4) VectorTimesScalar 46 36 - Store 31(gl_FragColor) 47 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.structDeref.frag.out b/deps/glslang/Test/baseResults/spv.structDeref.frag.out deleted file mode 100644 index 94fc4e24..00000000 --- a/deps/glslang/Test/baseResults/spv.structDeref.frag.out +++ /dev/null @@ -1,190 +0,0 @@ -spv.structDeref.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 123 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 61 99 - ExecutionMode 4 OriginUpperLeft - Source GLSL 140 - Name 4 "main" - Name 8 "s0" - MemberName 8(s0) 0 "i" - Name 9 "s1" - MemberName 9(s1) 0 "i" - MemberName 9(s1) 1 "f" - MemberName 9(s1) 2 "s0_1" - Name 10 "s2" - MemberName 10(s2) 0 "i" - MemberName 10(s2) 1 "f" - MemberName 10(s2) 2 "s1_1" - Name 14 "s3" - MemberName 14(s3) 0 "s2_1" - MemberName 14(s3) 1 "i" - MemberName 14(s3) 2 "f" - MemberName 14(s3) 3 "s1_1" - Name 16 "foo3" - Name 27 "locals2" - Name 40 "fArray" - Name 46 "locals1Array" - Name 49 "foo1" - Name 53 "locals0" - Name 54 "s00" - MemberName 54(s00) 0 "s0_0" - Name 56 "locals00" - Name 61 "coord" - Name 71 "foo0" - Name 86 "foo00" - Name 99 "gl_FragColor" - Name 116 "samp2D" - Name 122 "foo2" - Decorate 61(coord) Location 0 - Decorate 99(gl_FragColor) Location 0 - Decorate 116(samp2D) DescriptorSet 0 - Decorate 116(samp2D) Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypeFloat 32 - 8(s0): TypeStruct 6(int) - 9(s1): TypeStruct 6(int) 7(float) 8(s0) - 10(s2): TypeStruct 6(int) 7(float) 9(s1) - 11: TypeInt 32 0 - 12: 11(int) Constant 12 - 13: TypeArray 10(s2) 12 - 14(s3): TypeStruct 13 6(int) 7(float) 9(s1) - 15: TypePointer Private 14(s3) - 16(foo3): 15(ptr) Variable Private - 17: 6(int) Constant 0 - 18: 6(int) Constant 9 - 19: TypePointer Private 6(int) - 22: TypeBool - 26: TypePointer Function 10(s2) - 28: 6(int) Constant 1 - 29: 7(float) Constant 1065353216 - 30: TypePointer Function 7(float) - 32: 6(int) Constant 2 - 33: 8(s0) ConstantComposite 17 - 34: 9(s1) ConstantComposite 17 29 33 - 35: TypePointer Function 9(s1) - 37: 11(int) Constant 6 - 38: TypeArray 7(float) 37 - 39: TypePointer Function 38 - 41: 7(float) Constant 0 - 42: 38 ConstantComposite 41 41 41 41 41 41 - 43: 11(int) Constant 10 - 44: TypeArray 9(s1) 43 - 45: TypePointer Function 44 - 47: 6(int) Constant 6 - 48: TypePointer Private 9(s1) - 49(foo1): 48(ptr) Variable Private - 52: TypePointer Function 8(s0) - 54(s00): TypeStruct 8(s0) - 55: TypePointer Function 54(s00) - 57: 54(s00) ConstantComposite 33 - 59: TypeVector 7(float) 2 - 60: TypePointer Input 59(fvec2) - 61(coord): 60(ptr) Variable Input - 62: 11(int) Constant 0 - 63: TypePointer Input 7(float) - 67: 11(int) Constant 1 - 70: TypePointer Private 8(s0) - 71(foo0): 70(ptr) Variable Private - 75: 7(float) Constant 1073741824 - 76: 7(float) Constant 1077936128 - 77: 7(float) Constant 1082130432 - 78: 7(float) Constant 1084227584 - 79: 38 ConstantComposite 41 29 75 76 77 78 - 85: TypePointer Private 54(s00) - 86(foo00): 85(ptr) Variable Private - 88: TypePointer Function 6(int) - 91: 6(int) Constant 5 - 97: TypeVector 7(float) 4 - 98: TypePointer Output 97(fvec4) -99(gl_FragColor): 98(ptr) Variable Output - 106: 6(int) Constant 3 - 113: TypeImage 7(float) 2D sampled format:Unknown - 114: TypeSampledImage 113 - 115: TypePointer UniformConstant 114 - 116(samp2D): 115(ptr) Variable UniformConstant - 121: TypePointer Private 10(s2) - 122(foo2): 121(ptr) Variable Private - 4(main): 2 Function None 3 - 5: Label - 27(locals2): 26(ptr) Variable Function - 40(fArray): 39(ptr) Variable Function -46(locals1Array): 45(ptr) Variable Function - 53(locals0): 52(ptr) Variable Function - 56(locals00): 55(ptr) Variable Function - 20: 19(ptr) AccessChain 16(foo3) 17 18 17 - 21: 6(int) Load 20 - 23: 22(bool) SGreaterThan 21 17 - SelectionMerge 25 None - BranchConditional 23 24 58 - 24: Label - 31: 30(ptr) AccessChain 27(locals2) 28 - Store 31 29 - 36: 35(ptr) AccessChain 27(locals2) 32 - Store 36 34 - Store 40(fArray) 42 - 50: 9(s1) Load 49(foo1) - 51: 35(ptr) AccessChain 46(locals1Array) 47 - Store 51 50 - Store 53(locals0) 33 - Store 56(locals00) 57 - Branch 25 - 58: Label - 64: 63(ptr) AccessChain 61(coord) 62 - 65: 7(float) Load 64 - 66: 30(ptr) AccessChain 27(locals2) 28 - Store 66 65 - 68: 63(ptr) AccessChain 61(coord) 67 - 69: 7(float) Load 68 - 72: 8(s0) Load 71(foo0) - 73: 9(s1) CompositeConstruct 28 69 72 - 74: 35(ptr) AccessChain 27(locals2) 32 - Store 74 73 - Store 40(fArray) 79 - 80: 35(ptr) AccessChain 27(locals2) 32 - 81: 9(s1) Load 80 - 82: 35(ptr) AccessChain 46(locals1Array) 47 - Store 82 81 - 83: 70(ptr) AccessChain 49(foo1) 32 - 84: 8(s0) Load 83 - Store 53(locals0) 84 - 87: 54(s00) Load 86(foo00) - Store 56(locals00) 87 - Branch 25 - 25: Label - 89: 88(ptr) AccessChain 53(locals0) 17 - 90: 6(int) Load 89 - 92: 22(bool) SGreaterThan 90 91 - SelectionMerge 94 None - BranchConditional 92 93 94 - 93: Label - 95: 52(ptr) AccessChain 56(locals00) 17 - 96: 8(s0) Load 95 - Store 53(locals0) 96 - Branch 94 - 94: Label - 100: 88(ptr) AccessChain 53(locals0) 17 - 101: 6(int) Load 100 - 102: 7(float) ConvertSToF 101 - 103: 30(ptr) AccessChain 46(locals1Array) 47 28 - 104: 7(float) Load 103 - 105: 7(float) FAdd 102 104 - 107: 30(ptr) AccessChain 40(fArray) 106 - 108: 7(float) Load 107 - 109: 7(float) FAdd 105 108 - 110: 30(ptr) AccessChain 27(locals2) 32 28 - 111: 7(float) Load 110 - 112: 7(float) FAdd 109 111 - 117: 114 Load 116(samp2D) - 118: 59(fvec2) Load 61(coord) - 119: 97(fvec4) ImageSampleImplicitLod 117 118 - 120: 97(fvec4) VectorTimesScalar 119 112 - Store 99(gl_FragColor) 120 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.structure.frag.out b/deps/glslang/Test/baseResults/spv.structure.frag.out deleted file mode 100644 index 00fed0e0..00000000 --- a/deps/glslang/Test/baseResults/spv.structure.frag.out +++ /dev/null @@ -1,98 +0,0 @@ -spv.structure.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 60 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 45 54 - ExecutionMode 4 OriginUpperLeft - Source GLSL 140 - Name 4 "main" - Name 8 "scale" - Name 18 "lunarStruct1" - MemberName 18(lunarStruct1) 0 "i" - MemberName 18(lunarStruct1) 1 "f" - MemberName 18(lunarStruct1) 2 "color" - Name 21 "lunarStruct2" - MemberName 21(lunarStruct2) 0 "i" - MemberName 21(lunarStruct2) 1 "f" - MemberName 21(lunarStruct2) 2 "s1_1" - Name 24 "foo2" - Name 45 "gl_FragColor" - Name 50 "samp2D" - Name 54 "coord" - Name 59 "foo" - Decorate 45(gl_FragColor) Location 0 - Decorate 50(samp2D) DescriptorSet 0 - Decorate 50(samp2D) Binding 0 - Decorate 54(coord) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypePointer Function 6(float) - 9: 6(float) Constant 0 - 10: TypeInt 32 1 - 11: TypeInt 32 0 - 12: 11(int) Constant 5 - 13: TypeArray 10(int) 12 - 14: 11(int) Constant 4 - 15: TypeArray 6(float) 14 - 16: TypeVector 6(float) 4 - 17: TypeArray 16(fvec4) 12 -18(lunarStruct1): TypeStruct 10(int) 15 17 - 19: 11(int) Constant 7 - 20: TypeArray 18(lunarStruct1) 19 -21(lunarStruct2): TypeStruct 13 6(float) 20 - 22: TypeArray 21(lunarStruct2) 12 - 23: TypePointer Private 22 - 24(foo2): 23(ptr) Variable Private - 25: 10(int) Constant 3 - 26: 10(int) Constant 0 - 27: 10(int) Constant 4 - 28: TypePointer Private 10(int) - 31: TypeBool - 35: 10(int) Constant 2 - 36: 11(int) Constant 0 - 37: TypePointer Private 6(float) - 41: 10(int) Constant 1 - 44: TypePointer Output 16(fvec4) -45(gl_FragColor): 44(ptr) Variable Output - 47: TypeImage 6(float) 2D sampled format:Unknown - 48: TypeSampledImage 47 - 49: TypePointer UniformConstant 48 - 50(samp2D): 49(ptr) Variable UniformConstant - 52: TypeVector 6(float) 2 - 53: TypePointer Input 52(fvec2) - 54(coord): 53(ptr) Variable Input - 58: TypePointer Private 18(lunarStruct1) - 59(foo): 58(ptr) Variable Private - 4(main): 2 Function None 3 - 5: Label - 8(scale): 7(ptr) Variable Function - Store 8(scale) 9 - 29: 28(ptr) AccessChain 24(foo2) 25 26 27 - 30: 10(int) Load 29 - 32: 31(bool) SGreaterThan 30 26 - SelectionMerge 34 None - BranchConditional 32 33 40 - 33: Label - 38: 37(ptr) AccessChain 24(foo2) 25 35 35 35 25 36 - 39: 6(float) Load 38 - Store 8(scale) 39 - Branch 34 - 40: Label - 42: 37(ptr) AccessChain 24(foo2) 25 35 35 41 25 - 43: 6(float) Load 42 - Store 8(scale) 43 - Branch 34 - 34: Label - 46: 6(float) Load 8(scale) - 51: 48 Load 50(samp2D) - 55: 52(fvec2) Load 54(coord) - 56: 16(fvec4) ImageSampleImplicitLod 51 55 - 57: 16(fvec4) VectorTimesScalar 56 46 - Store 45(gl_FragColor) 57 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.subgroup.frag.out b/deps/glslang/Test/baseResults/spv.subgroup.frag.out deleted file mode 100644 index a3e427f0..00000000 --- a/deps/glslang/Test/baseResults/spv.subgroup.frag.out +++ /dev/null @@ -1,45 +0,0 @@ -spv.subgroup.frag -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 17 - - Capability Shader - Capability GroupNonUniform - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 9 11 13 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_KHR_shader_subgroup_basic" - Name 4 "main" - Name 9 "data" - Name 11 "gl_SubgroupSize" - Name 13 "gl_SubgroupInvocationID" - Decorate 9(data) Location 0 - Decorate 11(gl_SubgroupSize) RelaxedPrecision - Decorate 11(gl_SubgroupSize) Flat - Decorate 11(gl_SubgroupSize) BuiltIn SubgroupSize - Decorate 12 RelaxedPrecision - Decorate 13(gl_SubgroupInvocationID) RelaxedPrecision - Decorate 13(gl_SubgroupInvocationID) Flat - Decorate 13(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId - Decorate 14 RelaxedPrecision - Decorate 16 RelaxedPrecision - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeVector 6(int) 4 - 8: TypePointer Output 7(ivec4) - 9(data): 8(ptr) Variable Output - 10: TypePointer Input 6(int) -11(gl_SubgroupSize): 10(ptr) Variable Input -13(gl_SubgroupInvocationID): 10(ptr) Variable Input - 15: 6(int) Constant 0 - 4(main): 2 Function None 3 - 5: Label - 12: 6(int) Load 11(gl_SubgroupSize) - 14: 6(int) Load 13(gl_SubgroupInvocationID) - 16: 7(ivec4) CompositeConstruct 12 14 15 15 - Store 9(data) 16 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.subgroup.geom.out b/deps/glslang/Test/baseResults/spv.subgroup.geom.out deleted file mode 100644 index 27f05b2f..00000000 --- a/deps/glslang/Test/baseResults/spv.subgroup.geom.out +++ /dev/null @@ -1,63 +0,0 @@ -spv.subgroup.geom -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 26 - - Capability Geometry - Capability GroupNonUniform - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Geometry 4 "main" 15 18 20 - ExecutionMode 4 InputPoints - ExecutionMode 4 Invocations 1 - ExecutionMode 4 OutputPoints - ExecutionMode 4 OutputVertices 1 - Source GLSL 450 - SourceExtension "GL_KHR_shader_subgroup_basic" - Name 4 "main" - Name 9 "Output" - MemberName 9(Output) 0 "result" - Name 11 "" - Name 15 "gl_PrimitiveIDIn" - Name 18 "gl_SubgroupSize" - Name 20 "gl_SubgroupInvocationID" - Decorate 8 ArrayStride 16 - MemberDecorate 9(Output) 0 Offset 0 - Decorate 9(Output) Block - Decorate 11 DescriptorSet 0 - Decorate 11 Binding 0 - Decorate 15(gl_PrimitiveIDIn) BuiltIn PrimitiveId - Decorate 18(gl_SubgroupSize) RelaxedPrecision - Decorate 18(gl_SubgroupSize) BuiltIn SubgroupSize - Decorate 19 RelaxedPrecision - Decorate 20(gl_SubgroupInvocationID) RelaxedPrecision - Decorate 20(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId - Decorate 21 RelaxedPrecision - Decorate 23 RelaxedPrecision - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeVector 6(int) 4 - 8: TypeRuntimeArray 7(ivec4) - 9(Output): TypeStruct 8 - 10: TypePointer StorageBuffer 9(Output) - 11: 10(ptr) Variable StorageBuffer - 12: TypeInt 32 1 - 13: 12(int) Constant 0 - 14: TypePointer Input 12(int) -15(gl_PrimitiveIDIn): 14(ptr) Variable Input - 17: TypePointer Input 6(int) -18(gl_SubgroupSize): 17(ptr) Variable Input -20(gl_SubgroupInvocationID): 17(ptr) Variable Input - 22: 6(int) Constant 0 - 24: TypePointer StorageBuffer 7(ivec4) - 4(main): 2 Function None 3 - 5: Label - 16: 12(int) Load 15(gl_PrimitiveIDIn) - 19: 6(int) Load 18(gl_SubgroupSize) - 21: 6(int) Load 20(gl_SubgroupInvocationID) - 23: 7(ivec4) CompositeConstruct 19 21 22 22 - 25: 24(ptr) AccessChain 11 13 16 - Store 25 23 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.subgroup.tesc.out b/deps/glslang/Test/baseResults/spv.subgroup.tesc.out deleted file mode 100644 index 8322a4a1..00000000 --- a/deps/glslang/Test/baseResults/spv.subgroup.tesc.out +++ /dev/null @@ -1,60 +0,0 @@ -spv.subgroup.tesc -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 26 - - Capability Tessellation - Capability GroupNonUniform - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint TessellationControl 4 "main" 15 18 20 - ExecutionMode 4 OutputVertices 1 - Source GLSL 450 - SourceExtension "GL_KHR_shader_subgroup_basic" - Name 4 "main" - Name 9 "Output" - MemberName 9(Output) 0 "result" - Name 11 "" - Name 15 "gl_PrimitiveID" - Name 18 "gl_SubgroupSize" - Name 20 "gl_SubgroupInvocationID" - Decorate 8 ArrayStride 16 - MemberDecorate 9(Output) 0 Offset 0 - Decorate 9(Output) Block - Decorate 11 DescriptorSet 0 - Decorate 11 Binding 0 - Decorate 15(gl_PrimitiveID) BuiltIn PrimitiveId - Decorate 18(gl_SubgroupSize) RelaxedPrecision - Decorate 18(gl_SubgroupSize) BuiltIn SubgroupSize - Decorate 19 RelaxedPrecision - Decorate 20(gl_SubgroupInvocationID) RelaxedPrecision - Decorate 20(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId - Decorate 21 RelaxedPrecision - Decorate 23 RelaxedPrecision - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeVector 6(int) 4 - 8: TypeRuntimeArray 7(ivec4) - 9(Output): TypeStruct 8 - 10: TypePointer StorageBuffer 9(Output) - 11: 10(ptr) Variable StorageBuffer - 12: TypeInt 32 1 - 13: 12(int) Constant 0 - 14: TypePointer Input 12(int) -15(gl_PrimitiveID): 14(ptr) Variable Input - 17: TypePointer Input 6(int) -18(gl_SubgroupSize): 17(ptr) Variable Input -20(gl_SubgroupInvocationID): 17(ptr) Variable Input - 22: 6(int) Constant 0 - 24: TypePointer StorageBuffer 7(ivec4) - 4(main): 2 Function None 3 - 5: Label - 16: 12(int) Load 15(gl_PrimitiveID) - 19: 6(int) Load 18(gl_SubgroupSize) - 21: 6(int) Load 20(gl_SubgroupInvocationID) - 23: 7(ivec4) CompositeConstruct 19 21 22 22 - 25: 24(ptr) AccessChain 11 13 16 - Store 25 23 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.subgroup.tese.out b/deps/glslang/Test/baseResults/spv.subgroup.tese.out deleted file mode 100644 index 360f98be..00000000 --- a/deps/glslang/Test/baseResults/spv.subgroup.tese.out +++ /dev/null @@ -1,62 +0,0 @@ -spv.subgroup.tese -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 26 - - Capability Tessellation - Capability GroupNonUniform - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint TessellationEvaluation 4 "main" 15 18 20 - ExecutionMode 4 Isolines - ExecutionMode 4 SpacingEqual - ExecutionMode 4 VertexOrderCcw - Source GLSL 450 - SourceExtension "GL_KHR_shader_subgroup_basic" - Name 4 "main" - Name 9 "Output" - MemberName 9(Output) 0 "result" - Name 11 "" - Name 15 "gl_PrimitiveID" - Name 18 "gl_SubgroupSize" - Name 20 "gl_SubgroupInvocationID" - Decorate 8 ArrayStride 16 - MemberDecorate 9(Output) 0 Offset 0 - Decorate 9(Output) Block - Decorate 11 DescriptorSet 0 - Decorate 11 Binding 0 - Decorate 15(gl_PrimitiveID) BuiltIn PrimitiveId - Decorate 18(gl_SubgroupSize) RelaxedPrecision - Decorate 18(gl_SubgroupSize) BuiltIn SubgroupSize - Decorate 19 RelaxedPrecision - Decorate 20(gl_SubgroupInvocationID) RelaxedPrecision - Decorate 20(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId - Decorate 21 RelaxedPrecision - Decorate 23 RelaxedPrecision - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeVector 6(int) 4 - 8: TypeRuntimeArray 7(ivec4) - 9(Output): TypeStruct 8 - 10: TypePointer StorageBuffer 9(Output) - 11: 10(ptr) Variable StorageBuffer - 12: TypeInt 32 1 - 13: 12(int) Constant 0 - 14: TypePointer Input 12(int) -15(gl_PrimitiveID): 14(ptr) Variable Input - 17: TypePointer Input 6(int) -18(gl_SubgroupSize): 17(ptr) Variable Input -20(gl_SubgroupInvocationID): 17(ptr) Variable Input - 22: 6(int) Constant 0 - 24: TypePointer StorageBuffer 7(ivec4) - 4(main): 2 Function None 3 - 5: Label - 16: 12(int) Load 15(gl_PrimitiveID) - 19: 6(int) Load 18(gl_SubgroupSize) - 21: 6(int) Load 20(gl_SubgroupInvocationID) - 23: 7(ivec4) CompositeConstruct 19 21 22 22 - 25: 24(ptr) AccessChain 11 13 16 - Store 25 23 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.subgroup.vert.out b/deps/glslang/Test/baseResults/spv.subgroup.vert.out deleted file mode 100644 index 6de8a0ae..00000000 --- a/deps/glslang/Test/baseResults/spv.subgroup.vert.out +++ /dev/null @@ -1,59 +0,0 @@ -spv.subgroup.vert -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 26 - - Capability Shader - Capability GroupNonUniform - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 15 18 20 - Source GLSL 450 - SourceExtension "GL_KHR_shader_subgroup_basic" - Name 4 "main" - Name 9 "Output" - MemberName 9(Output) 0 "result" - Name 11 "" - Name 15 "gl_VertexIndex" - Name 18 "gl_SubgroupSize" - Name 20 "gl_SubgroupInvocationID" - Decorate 8 ArrayStride 16 - MemberDecorate 9(Output) 0 Offset 0 - Decorate 9(Output) Block - Decorate 11 DescriptorSet 0 - Decorate 11 Binding 0 - Decorate 15(gl_VertexIndex) BuiltIn VertexIndex - Decorate 18(gl_SubgroupSize) RelaxedPrecision - Decorate 18(gl_SubgroupSize) BuiltIn SubgroupSize - Decorate 19 RelaxedPrecision - Decorate 20(gl_SubgroupInvocationID) RelaxedPrecision - Decorate 20(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId - Decorate 21 RelaxedPrecision - Decorate 23 RelaxedPrecision - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeVector 6(int) 4 - 8: TypeRuntimeArray 7(ivec4) - 9(Output): TypeStruct 8 - 10: TypePointer StorageBuffer 9(Output) - 11: 10(ptr) Variable StorageBuffer - 12: TypeInt 32 1 - 13: 12(int) Constant 0 - 14: TypePointer Input 12(int) -15(gl_VertexIndex): 14(ptr) Variable Input - 17: TypePointer Input 6(int) -18(gl_SubgroupSize): 17(ptr) Variable Input -20(gl_SubgroupInvocationID): 17(ptr) Variable Input - 22: 6(int) Constant 0 - 24: TypePointer StorageBuffer 7(ivec4) - 4(main): 2 Function None 3 - 5: Label - 16: 12(int) Load 15(gl_VertexIndex) - 19: 6(int) Load 18(gl_SubgroupSize) - 21: 6(int) Load 20(gl_SubgroupInvocationID) - 23: 7(ivec4) CompositeConstruct 19 21 22 22 - 25: 24(ptr) AccessChain 11 13 16 - Store 25 23 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.subgroupArithmetic.comp.out b/deps/glslang/Test/baseResults/spv.subgroupArithmetic.comp.out deleted file mode 100644 index 87bfa311..00000000 --- a/deps/glslang/Test/baseResults/spv.subgroupArithmetic.comp.out +++ /dev/null @@ -1,2954 +0,0 @@ -spv.subgroupArithmetic.comp -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 2386 - - Capability Shader - Capability Float64 - Capability GroupNonUniform - Capability GroupNonUniformArithmetic - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 10 12 - ExecutionMode 4 LocalSize 8 1 1 - Source GLSL 450 - SourceExtension "GL_KHR_shader_subgroup_arithmetic" - SourceExtension "GL_KHR_shader_subgroup_basic" - Name 4 "main" - Name 8 "invocation" - Name 10 "gl_SubgroupInvocationID" - Name 12 "gl_SubgroupSize" - Name 24 "Buffers" - MemberName 24(Buffers) 0 "f4" - MemberName 24(Buffers) 1 "i4" - MemberName 24(Buffers) 2 "u4" - MemberName 24(Buffers) 3 "d4" - Name 27 "data" - Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision - Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId - Decorate 11 RelaxedPrecision - Decorate 12(gl_SubgroupSize) RelaxedPrecision - Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize - Decorate 13 RelaxedPrecision - Decorate 14 RelaxedPrecision - Decorate 16 RelaxedPrecision - MemberDecorate 24(Buffers) 0 Offset 0 - MemberDecorate 24(Buffers) 1 Offset 16 - MemberDecorate 24(Buffers) 2 Offset 32 - MemberDecorate 24(Buffers) 3 Offset 64 - Decorate 24(Buffers) Block - Decorate 27(data) DescriptorSet 0 - Decorate 27(data) Binding 0 - Decorate 2385 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypePointer Input 6(int) -10(gl_SubgroupInvocationID): 9(ptr) Variable Input -12(gl_SubgroupSize): 9(ptr) Variable Input - 15: 6(int) Constant 4 - 17: TypeFloat 32 - 18: TypeVector 17(float) 4 - 19: TypeInt 32 1 - 20: TypeVector 19(int) 4 - 21: TypeVector 6(int) 4 - 22: TypeFloat 64 - 23: TypeVector 22(float64_t) 4 - 24(Buffers): TypeStruct 18(fvec4) 20(ivec4) 21(ivec4) 23(f64vec4) - 25: TypeArray 24(Buffers) 15 - 26: TypePointer StorageBuffer 25 - 27(data): 26(ptr) Variable StorageBuffer - 29: 19(int) Constant 0 - 30: 6(int) Constant 0 - 31: TypePointer StorageBuffer 17(float) - 34: 6(int) Constant 3 - 38: 19(int) Constant 1 - 39: TypeVector 17(float) 2 - 40: TypePointer StorageBuffer 18(fvec4) - 47: 6(int) Constant 1 - 51: 19(int) Constant 2 - 52: TypeVector 17(float) 3 - 61: 6(int) Constant 2 - 65: 19(int) Constant 3 - 71: TypePointer StorageBuffer 19(int) - 77: TypeVector 19(int) 2 - 78: TypePointer StorageBuffer 20(ivec4) - 88: TypeVector 19(int) 3 - 105: TypePointer StorageBuffer 6(int) - 111: TypeVector 6(int) 2 - 112: TypePointer StorageBuffer 21(ivec4) - 122: TypeVector 6(int) 3 - 139: TypePointer StorageBuffer 22(float64_t) - 145: TypeVector 22(float64_t) 2 - 146: TypePointer StorageBuffer 23(f64vec4) - 156: TypeVector 22(float64_t) 3 - 595: TypeBool - 604: 77(ivec2) ConstantComposite 29 29 - 605: TypeVector 595(bool) 2 - 608: 77(ivec2) ConstantComposite 38 38 - 618: 88(ivec3) ConstantComposite 29 29 29 - 619: TypeVector 595(bool) 3 - 622: 88(ivec3) ConstantComposite 38 38 38 - 633: 20(ivec4) ConstantComposite 29 29 29 29 - 634: TypeVector 595(bool) 4 - 637: 20(ivec4) ConstantComposite 38 38 38 38 - 2384: 6(int) Constant 8 - 2385: 122(ivec3) ConstantComposite 2384 47 47 - 4(main): 2 Function None 3 - 5: Label - 8(invocation): 7(ptr) Variable Function - 11: 6(int) Load 10(gl_SubgroupInvocationID) - 13: 6(int) Load 12(gl_SubgroupSize) - 14: 6(int) IAdd 11 13 - 16: 6(int) UMod 14 15 - Store 8(invocation) 16 - 28: 6(int) Load 8(invocation) - 32: 31(ptr) AccessChain 27(data) 29 29 30 - 33: 17(float) Load 32 - 35: 17(float) GroupNonUniformFAdd 34 Reduce 33 - 36: 31(ptr) AccessChain 27(data) 28 29 30 - Store 36 35 - 37: 6(int) Load 8(invocation) - 41: 40(ptr) AccessChain 27(data) 38 29 - 42: 18(fvec4) Load 41 - 43: 39(fvec2) VectorShuffle 42 42 0 1 - 44: 39(fvec2) GroupNonUniformFAdd 34 Reduce 43 - 45: 31(ptr) AccessChain 27(data) 37 29 30 - 46: 17(float) CompositeExtract 44 0 - Store 45 46 - 48: 31(ptr) AccessChain 27(data) 37 29 47 - 49: 17(float) CompositeExtract 44 1 - Store 48 49 - 50: 6(int) Load 8(invocation) - 53: 40(ptr) AccessChain 27(data) 51 29 - 54: 18(fvec4) Load 53 - 55: 52(fvec3) VectorShuffle 54 54 0 1 2 - 56: 52(fvec3) GroupNonUniformFAdd 34 Reduce 55 - 57: 31(ptr) AccessChain 27(data) 50 29 30 - 58: 17(float) CompositeExtract 56 0 - Store 57 58 - 59: 31(ptr) AccessChain 27(data) 50 29 47 - 60: 17(float) CompositeExtract 56 1 - Store 59 60 - 62: 31(ptr) AccessChain 27(data) 50 29 61 - 63: 17(float) CompositeExtract 56 2 - Store 62 63 - 64: 6(int) Load 8(invocation) - 66: 40(ptr) AccessChain 27(data) 65 29 - 67: 18(fvec4) Load 66 - 68: 18(fvec4) GroupNonUniformFAdd 34 Reduce 67 - 69: 40(ptr) AccessChain 27(data) 64 29 - Store 69 68 - 70: 6(int) Load 8(invocation) - 72: 71(ptr) AccessChain 27(data) 29 38 30 - 73: 19(int) Load 72 - 74: 19(int) GroupNonUniformIAdd 34 Reduce 73 - 75: 71(ptr) AccessChain 27(data) 70 38 30 - Store 75 74 - 76: 6(int) Load 8(invocation) - 79: 78(ptr) AccessChain 27(data) 38 38 - 80: 20(ivec4) Load 79 - 81: 77(ivec2) VectorShuffle 80 80 0 1 - 82: 77(ivec2) GroupNonUniformIAdd 34 Reduce 81 - 83: 71(ptr) AccessChain 27(data) 76 38 30 - 84: 19(int) CompositeExtract 82 0 - Store 83 84 - 85: 71(ptr) AccessChain 27(data) 76 38 47 - 86: 19(int) CompositeExtract 82 1 - Store 85 86 - 87: 6(int) Load 8(invocation) - 89: 78(ptr) AccessChain 27(data) 51 38 - 90: 20(ivec4) Load 89 - 91: 88(ivec3) VectorShuffle 90 90 0 1 2 - 92: 88(ivec3) GroupNonUniformIAdd 34 Reduce 91 - 93: 71(ptr) AccessChain 27(data) 87 38 30 - 94: 19(int) CompositeExtract 92 0 - Store 93 94 - 95: 71(ptr) AccessChain 27(data) 87 38 47 - 96: 19(int) CompositeExtract 92 1 - Store 95 96 - 97: 71(ptr) AccessChain 27(data) 87 38 61 - 98: 19(int) CompositeExtract 92 2 - Store 97 98 - 99: 6(int) Load 8(invocation) - 100: 78(ptr) AccessChain 27(data) 65 38 - 101: 20(ivec4) Load 100 - 102: 20(ivec4) GroupNonUniformIAdd 34 Reduce 101 - 103: 78(ptr) AccessChain 27(data) 99 38 - Store 103 102 - 104: 6(int) Load 8(invocation) - 106: 105(ptr) AccessChain 27(data) 29 51 30 - 107: 6(int) Load 106 - 108: 6(int) GroupNonUniformIAdd 34 Reduce 107 - 109: 105(ptr) AccessChain 27(data) 104 51 30 - Store 109 108 - 110: 6(int) Load 8(invocation) - 113: 112(ptr) AccessChain 27(data) 38 51 - 114: 21(ivec4) Load 113 - 115: 111(ivec2) VectorShuffle 114 114 0 1 - 116: 111(ivec2) GroupNonUniformIAdd 34 Reduce 115 - 117: 105(ptr) AccessChain 27(data) 110 51 30 - 118: 6(int) CompositeExtract 116 0 - Store 117 118 - 119: 105(ptr) AccessChain 27(data) 110 51 47 - 120: 6(int) CompositeExtract 116 1 - Store 119 120 - 121: 6(int) Load 8(invocation) - 123: 112(ptr) AccessChain 27(data) 51 51 - 124: 21(ivec4) Load 123 - 125: 122(ivec3) VectorShuffle 124 124 0 1 2 - 126: 122(ivec3) GroupNonUniformIAdd 34 Reduce 125 - 127: 105(ptr) AccessChain 27(data) 121 51 30 - 128: 6(int) CompositeExtract 126 0 - Store 127 128 - 129: 105(ptr) AccessChain 27(data) 121 51 47 - 130: 6(int) CompositeExtract 126 1 - Store 129 130 - 131: 105(ptr) AccessChain 27(data) 121 51 61 - 132: 6(int) CompositeExtract 126 2 - Store 131 132 - 133: 6(int) Load 8(invocation) - 134: 112(ptr) AccessChain 27(data) 65 51 - 135: 21(ivec4) Load 134 - 136: 21(ivec4) GroupNonUniformIAdd 34 Reduce 135 - 137: 112(ptr) AccessChain 27(data) 133 51 - Store 137 136 - 138: 6(int) Load 8(invocation) - 140: 139(ptr) AccessChain 27(data) 29 65 30 - 141:22(float64_t) Load 140 - 142:22(float64_t) GroupNonUniformFAdd 34 Reduce 141 - 143: 139(ptr) AccessChain 27(data) 138 65 30 - Store 143 142 - 144: 6(int) Load 8(invocation) - 147: 146(ptr) AccessChain 27(data) 38 65 - 148: 23(f64vec4) Load 147 - 149:145(f64vec2) VectorShuffle 148 148 0 1 - 150:145(f64vec2) GroupNonUniformFAdd 34 Reduce 149 - 151: 139(ptr) AccessChain 27(data) 144 65 30 - 152:22(float64_t) CompositeExtract 150 0 - Store 151 152 - 153: 139(ptr) AccessChain 27(data) 144 65 47 - 154:22(float64_t) CompositeExtract 150 1 - Store 153 154 - 155: 6(int) Load 8(invocation) - 157: 146(ptr) AccessChain 27(data) 51 65 - 158: 23(f64vec4) Load 157 - 159:156(f64vec3) VectorShuffle 158 158 0 1 2 - 160:156(f64vec3) GroupNonUniformFAdd 34 Reduce 159 - 161: 139(ptr) AccessChain 27(data) 155 65 30 - 162:22(float64_t) CompositeExtract 160 0 - Store 161 162 - 163: 139(ptr) AccessChain 27(data) 155 65 47 - 164:22(float64_t) CompositeExtract 160 1 - Store 163 164 - 165: 139(ptr) AccessChain 27(data) 155 65 61 - 166:22(float64_t) CompositeExtract 160 2 - Store 165 166 - 167: 6(int) Load 8(invocation) - 168: 146(ptr) AccessChain 27(data) 65 65 - 169: 23(f64vec4) Load 168 - 170: 23(f64vec4) GroupNonUniformFAdd 34 Reduce 169 - 171: 146(ptr) AccessChain 27(data) 167 65 - Store 171 170 - 172: 6(int) Load 8(invocation) - 173: 31(ptr) AccessChain 27(data) 29 29 30 - 174: 17(float) Load 173 - 175: 17(float) GroupNonUniformFMul 34 Reduce 174 - 176: 31(ptr) AccessChain 27(data) 172 29 30 - Store 176 175 - 177: 6(int) Load 8(invocation) - 178: 40(ptr) AccessChain 27(data) 38 29 - 179: 18(fvec4) Load 178 - 180: 39(fvec2) VectorShuffle 179 179 0 1 - 181: 39(fvec2) GroupNonUniformFMul 34 Reduce 180 - 182: 31(ptr) AccessChain 27(data) 177 29 30 - 183: 17(float) CompositeExtract 181 0 - Store 182 183 - 184: 31(ptr) AccessChain 27(data) 177 29 47 - 185: 17(float) CompositeExtract 181 1 - Store 184 185 - 186: 6(int) Load 8(invocation) - 187: 40(ptr) AccessChain 27(data) 51 29 - 188: 18(fvec4) Load 187 - 189: 52(fvec3) VectorShuffle 188 188 0 1 2 - 190: 52(fvec3) GroupNonUniformFMul 34 Reduce 189 - 191: 31(ptr) AccessChain 27(data) 186 29 30 - 192: 17(float) CompositeExtract 190 0 - Store 191 192 - 193: 31(ptr) AccessChain 27(data) 186 29 47 - 194: 17(float) CompositeExtract 190 1 - Store 193 194 - 195: 31(ptr) AccessChain 27(data) 186 29 61 - 196: 17(float) CompositeExtract 190 2 - Store 195 196 - 197: 6(int) Load 8(invocation) - 198: 40(ptr) AccessChain 27(data) 65 29 - 199: 18(fvec4) Load 198 - 200: 18(fvec4) GroupNonUniformFMul 34 Reduce 199 - 201: 40(ptr) AccessChain 27(data) 197 29 - Store 201 200 - 202: 6(int) Load 8(invocation) - 203: 71(ptr) AccessChain 27(data) 29 38 30 - 204: 19(int) Load 203 - 205: 19(int) GroupNonUniformIMul 34 Reduce 204 - 206: 71(ptr) AccessChain 27(data) 202 38 30 - Store 206 205 - 207: 6(int) Load 8(invocation) - 208: 78(ptr) AccessChain 27(data) 38 38 - 209: 20(ivec4) Load 208 - 210: 77(ivec2) VectorShuffle 209 209 0 1 - 211: 77(ivec2) GroupNonUniformIMul 34 Reduce 210 - 212: 71(ptr) AccessChain 27(data) 207 38 30 - 213: 19(int) CompositeExtract 211 0 - Store 212 213 - 214: 71(ptr) AccessChain 27(data) 207 38 47 - 215: 19(int) CompositeExtract 211 1 - Store 214 215 - 216: 6(int) Load 8(invocation) - 217: 78(ptr) AccessChain 27(data) 51 38 - 218: 20(ivec4) Load 217 - 219: 88(ivec3) VectorShuffle 218 218 0 1 2 - 220: 88(ivec3) GroupNonUniformIMul 34 Reduce 219 - 221: 71(ptr) AccessChain 27(data) 216 38 30 - 222: 19(int) CompositeExtract 220 0 - Store 221 222 - 223: 71(ptr) AccessChain 27(data) 216 38 47 - 224: 19(int) CompositeExtract 220 1 - Store 223 224 - 225: 71(ptr) AccessChain 27(data) 216 38 61 - 226: 19(int) CompositeExtract 220 2 - Store 225 226 - 227: 6(int) Load 8(invocation) - 228: 78(ptr) AccessChain 27(data) 65 38 - 229: 20(ivec4) Load 228 - 230: 20(ivec4) GroupNonUniformIMul 34 Reduce 229 - 231: 78(ptr) AccessChain 27(data) 227 38 - Store 231 230 - 232: 6(int) Load 8(invocation) - 233: 105(ptr) AccessChain 27(data) 29 51 30 - 234: 6(int) Load 233 - 235: 6(int) GroupNonUniformIMul 34 Reduce 234 - 236: 105(ptr) AccessChain 27(data) 232 51 30 - Store 236 235 - 237: 6(int) Load 8(invocation) - 238: 112(ptr) AccessChain 27(data) 38 51 - 239: 21(ivec4) Load 238 - 240: 111(ivec2) VectorShuffle 239 239 0 1 - 241: 111(ivec2) GroupNonUniformIMul 34 Reduce 240 - 242: 105(ptr) AccessChain 27(data) 237 51 30 - 243: 6(int) CompositeExtract 241 0 - Store 242 243 - 244: 105(ptr) AccessChain 27(data) 237 51 47 - 245: 6(int) CompositeExtract 241 1 - Store 244 245 - 246: 6(int) Load 8(invocation) - 247: 112(ptr) AccessChain 27(data) 51 51 - 248: 21(ivec4) Load 247 - 249: 122(ivec3) VectorShuffle 248 248 0 1 2 - 250: 122(ivec3) GroupNonUniformIMul 34 Reduce 249 - 251: 105(ptr) AccessChain 27(data) 246 51 30 - 252: 6(int) CompositeExtract 250 0 - Store 251 252 - 253: 105(ptr) AccessChain 27(data) 246 51 47 - 254: 6(int) CompositeExtract 250 1 - Store 253 254 - 255: 105(ptr) AccessChain 27(data) 246 51 61 - 256: 6(int) CompositeExtract 250 2 - Store 255 256 - 257: 6(int) Load 8(invocation) - 258: 112(ptr) AccessChain 27(data) 65 51 - 259: 21(ivec4) Load 258 - 260: 21(ivec4) GroupNonUniformIMul 34 Reduce 259 - 261: 112(ptr) AccessChain 27(data) 257 51 - Store 261 260 - 262: 6(int) Load 8(invocation) - 263: 139(ptr) AccessChain 27(data) 29 65 30 - 264:22(float64_t) Load 263 - 265:22(float64_t) GroupNonUniformFMul 34 Reduce 264 - 266: 139(ptr) AccessChain 27(data) 262 65 30 - Store 266 265 - 267: 6(int) Load 8(invocation) - 268: 146(ptr) AccessChain 27(data) 38 65 - 269: 23(f64vec4) Load 268 - 270:145(f64vec2) VectorShuffle 269 269 0 1 - 271:145(f64vec2) GroupNonUniformFMul 34 Reduce 270 - 272: 139(ptr) AccessChain 27(data) 267 65 30 - 273:22(float64_t) CompositeExtract 271 0 - Store 272 273 - 274: 139(ptr) AccessChain 27(data) 267 65 47 - 275:22(float64_t) CompositeExtract 271 1 - Store 274 275 - 276: 6(int) Load 8(invocation) - 277: 146(ptr) AccessChain 27(data) 51 65 - 278: 23(f64vec4) Load 277 - 279:156(f64vec3) VectorShuffle 278 278 0 1 2 - 280:156(f64vec3) GroupNonUniformFMul 34 Reduce 279 - 281: 139(ptr) AccessChain 27(data) 276 65 30 - 282:22(float64_t) CompositeExtract 280 0 - Store 281 282 - 283: 139(ptr) AccessChain 27(data) 276 65 47 - 284:22(float64_t) CompositeExtract 280 1 - Store 283 284 - 285: 139(ptr) AccessChain 27(data) 276 65 61 - 286:22(float64_t) CompositeExtract 280 2 - Store 285 286 - 287: 6(int) Load 8(invocation) - 288: 146(ptr) AccessChain 27(data) 65 65 - 289: 23(f64vec4) Load 288 - 290: 23(f64vec4) GroupNonUniformFMul 34 Reduce 289 - 291: 146(ptr) AccessChain 27(data) 287 65 - Store 291 290 - 292: 6(int) Load 8(invocation) - 293: 31(ptr) AccessChain 27(data) 29 29 30 - 294: 17(float) Load 293 - 295: 17(float) GroupNonUniformFMin 34 Reduce 294 - 296: 31(ptr) AccessChain 27(data) 292 29 30 - Store 296 295 - 297: 6(int) Load 8(invocation) - 298: 40(ptr) AccessChain 27(data) 38 29 - 299: 18(fvec4) Load 298 - 300: 39(fvec2) VectorShuffle 299 299 0 1 - 301: 39(fvec2) GroupNonUniformFMin 34 Reduce 300 - 302: 31(ptr) AccessChain 27(data) 297 29 30 - 303: 17(float) CompositeExtract 301 0 - Store 302 303 - 304: 31(ptr) AccessChain 27(data) 297 29 47 - 305: 17(float) CompositeExtract 301 1 - Store 304 305 - 306: 6(int) Load 8(invocation) - 307: 40(ptr) AccessChain 27(data) 51 29 - 308: 18(fvec4) Load 307 - 309: 52(fvec3) VectorShuffle 308 308 0 1 2 - 310: 52(fvec3) GroupNonUniformFMin 34 Reduce 309 - 311: 31(ptr) AccessChain 27(data) 306 29 30 - 312: 17(float) CompositeExtract 310 0 - Store 311 312 - 313: 31(ptr) AccessChain 27(data) 306 29 47 - 314: 17(float) CompositeExtract 310 1 - Store 313 314 - 315: 31(ptr) AccessChain 27(data) 306 29 61 - 316: 17(float) CompositeExtract 310 2 - Store 315 316 - 317: 6(int) Load 8(invocation) - 318: 40(ptr) AccessChain 27(data) 65 29 - 319: 18(fvec4) Load 318 - 320: 18(fvec4) GroupNonUniformFMin 34 Reduce 319 - 321: 40(ptr) AccessChain 27(data) 317 29 - Store 321 320 - 322: 6(int) Load 8(invocation) - 323: 71(ptr) AccessChain 27(data) 29 38 30 - 324: 19(int) Load 323 - 325: 19(int) GroupNonUniformSMin 34 Reduce 324 - 326: 71(ptr) AccessChain 27(data) 322 38 30 - Store 326 325 - 327: 6(int) Load 8(invocation) - 328: 78(ptr) AccessChain 27(data) 38 38 - 329: 20(ivec4) Load 328 - 330: 77(ivec2) VectorShuffle 329 329 0 1 - 331: 77(ivec2) GroupNonUniformSMin 34 Reduce 330 - 332: 71(ptr) AccessChain 27(data) 327 38 30 - 333: 19(int) CompositeExtract 331 0 - Store 332 333 - 334: 71(ptr) AccessChain 27(data) 327 38 47 - 335: 19(int) CompositeExtract 331 1 - Store 334 335 - 336: 6(int) Load 8(invocation) - 337: 78(ptr) AccessChain 27(data) 51 38 - 338: 20(ivec4) Load 337 - 339: 88(ivec3) VectorShuffle 338 338 0 1 2 - 340: 88(ivec3) GroupNonUniformSMin 34 Reduce 339 - 341: 71(ptr) AccessChain 27(data) 336 38 30 - 342: 19(int) CompositeExtract 340 0 - Store 341 342 - 343: 71(ptr) AccessChain 27(data) 336 38 47 - 344: 19(int) CompositeExtract 340 1 - Store 343 344 - 345: 71(ptr) AccessChain 27(data) 336 38 61 - 346: 19(int) CompositeExtract 340 2 - Store 345 346 - 347: 6(int) Load 8(invocation) - 348: 78(ptr) AccessChain 27(data) 65 38 - 349: 20(ivec4) Load 348 - 350: 20(ivec4) GroupNonUniformSMin 34 Reduce 349 - 351: 78(ptr) AccessChain 27(data) 347 38 - Store 351 350 - 352: 6(int) Load 8(invocation) - 353: 105(ptr) AccessChain 27(data) 29 51 30 - 354: 6(int) Load 353 - 355: 6(int) GroupNonUniformUMin 34 Reduce 354 - 356: 105(ptr) AccessChain 27(data) 352 51 30 - Store 356 355 - 357: 6(int) Load 8(invocation) - 358: 112(ptr) AccessChain 27(data) 38 51 - 359: 21(ivec4) Load 358 - 360: 111(ivec2) VectorShuffle 359 359 0 1 - 361: 111(ivec2) GroupNonUniformUMin 34 Reduce 360 - 362: 105(ptr) AccessChain 27(data) 357 51 30 - 363: 6(int) CompositeExtract 361 0 - Store 362 363 - 364: 105(ptr) AccessChain 27(data) 357 51 47 - 365: 6(int) CompositeExtract 361 1 - Store 364 365 - 366: 6(int) Load 8(invocation) - 367: 112(ptr) AccessChain 27(data) 51 51 - 368: 21(ivec4) Load 367 - 369: 122(ivec3) VectorShuffle 368 368 0 1 2 - 370: 122(ivec3) GroupNonUniformUMin 34 Reduce 369 - 371: 105(ptr) AccessChain 27(data) 366 51 30 - 372: 6(int) CompositeExtract 370 0 - Store 371 372 - 373: 105(ptr) AccessChain 27(data) 366 51 47 - 374: 6(int) CompositeExtract 370 1 - Store 373 374 - 375: 105(ptr) AccessChain 27(data) 366 51 61 - 376: 6(int) CompositeExtract 370 2 - Store 375 376 - 377: 6(int) Load 8(invocation) - 378: 112(ptr) AccessChain 27(data) 65 51 - 379: 21(ivec4) Load 378 - 380: 21(ivec4) GroupNonUniformUMin 34 Reduce 379 - 381: 112(ptr) AccessChain 27(data) 377 51 - Store 381 380 - 382: 6(int) Load 8(invocation) - 383: 139(ptr) AccessChain 27(data) 29 65 30 - 384:22(float64_t) Load 383 - 385:22(float64_t) GroupNonUniformFMin 34 Reduce 384 - 386: 139(ptr) AccessChain 27(data) 382 65 30 - Store 386 385 - 387: 6(int) Load 8(invocation) - 388: 146(ptr) AccessChain 27(data) 38 65 - 389: 23(f64vec4) Load 388 - 390:145(f64vec2) VectorShuffle 389 389 0 1 - 391:145(f64vec2) GroupNonUniformFMin 34 Reduce 390 - 392: 139(ptr) AccessChain 27(data) 387 65 30 - 393:22(float64_t) CompositeExtract 391 0 - Store 392 393 - 394: 139(ptr) AccessChain 27(data) 387 65 47 - 395:22(float64_t) CompositeExtract 391 1 - Store 394 395 - 396: 6(int) Load 8(invocation) - 397: 146(ptr) AccessChain 27(data) 51 65 - 398: 23(f64vec4) Load 397 - 399:156(f64vec3) VectorShuffle 398 398 0 1 2 - 400:156(f64vec3) GroupNonUniformFMin 34 Reduce 399 - 401: 139(ptr) AccessChain 27(data) 396 65 30 - 402:22(float64_t) CompositeExtract 400 0 - Store 401 402 - 403: 139(ptr) AccessChain 27(data) 396 65 47 - 404:22(float64_t) CompositeExtract 400 1 - Store 403 404 - 405: 139(ptr) AccessChain 27(data) 396 65 61 - 406:22(float64_t) CompositeExtract 400 2 - Store 405 406 - 407: 6(int) Load 8(invocation) - 408: 146(ptr) AccessChain 27(data) 65 65 - 409: 23(f64vec4) Load 408 - 410: 23(f64vec4) GroupNonUniformFMin 34 Reduce 409 - 411: 146(ptr) AccessChain 27(data) 407 65 - Store 411 410 - 412: 6(int) Load 8(invocation) - 413: 31(ptr) AccessChain 27(data) 29 29 30 - 414: 17(float) Load 413 - 415: 17(float) GroupNonUniformFMax 34 Reduce 414 - 416: 31(ptr) AccessChain 27(data) 412 29 30 - Store 416 415 - 417: 6(int) Load 8(invocation) - 418: 40(ptr) AccessChain 27(data) 38 29 - 419: 18(fvec4) Load 418 - 420: 39(fvec2) VectorShuffle 419 419 0 1 - 421: 39(fvec2) GroupNonUniformFMax 34 Reduce 420 - 422: 31(ptr) AccessChain 27(data) 417 29 30 - 423: 17(float) CompositeExtract 421 0 - Store 422 423 - 424: 31(ptr) AccessChain 27(data) 417 29 47 - 425: 17(float) CompositeExtract 421 1 - Store 424 425 - 426: 6(int) Load 8(invocation) - 427: 40(ptr) AccessChain 27(data) 51 29 - 428: 18(fvec4) Load 427 - 429: 52(fvec3) VectorShuffle 428 428 0 1 2 - 430: 52(fvec3) GroupNonUniformFMax 34 Reduce 429 - 431: 31(ptr) AccessChain 27(data) 426 29 30 - 432: 17(float) CompositeExtract 430 0 - Store 431 432 - 433: 31(ptr) AccessChain 27(data) 426 29 47 - 434: 17(float) CompositeExtract 430 1 - Store 433 434 - 435: 31(ptr) AccessChain 27(data) 426 29 61 - 436: 17(float) CompositeExtract 430 2 - Store 435 436 - 437: 6(int) Load 8(invocation) - 438: 40(ptr) AccessChain 27(data) 65 29 - 439: 18(fvec4) Load 438 - 440: 18(fvec4) GroupNonUniformFMax 34 Reduce 439 - 441: 40(ptr) AccessChain 27(data) 437 29 - Store 441 440 - 442: 6(int) Load 8(invocation) - 443: 71(ptr) AccessChain 27(data) 29 38 30 - 444: 19(int) Load 443 - 445: 19(int) GroupNonUniformSMax 34 Reduce 444 - 446: 71(ptr) AccessChain 27(data) 442 38 30 - Store 446 445 - 447: 6(int) Load 8(invocation) - 448: 78(ptr) AccessChain 27(data) 38 38 - 449: 20(ivec4) Load 448 - 450: 77(ivec2) VectorShuffle 449 449 0 1 - 451: 77(ivec2) GroupNonUniformSMax 34 Reduce 450 - 452: 71(ptr) AccessChain 27(data) 447 38 30 - 453: 19(int) CompositeExtract 451 0 - Store 452 453 - 454: 71(ptr) AccessChain 27(data) 447 38 47 - 455: 19(int) CompositeExtract 451 1 - Store 454 455 - 456: 6(int) Load 8(invocation) - 457: 78(ptr) AccessChain 27(data) 51 38 - 458: 20(ivec4) Load 457 - 459: 88(ivec3) VectorShuffle 458 458 0 1 2 - 460: 88(ivec3) GroupNonUniformSMax 34 Reduce 459 - 461: 71(ptr) AccessChain 27(data) 456 38 30 - 462: 19(int) CompositeExtract 460 0 - Store 461 462 - 463: 71(ptr) AccessChain 27(data) 456 38 47 - 464: 19(int) CompositeExtract 460 1 - Store 463 464 - 465: 71(ptr) AccessChain 27(data) 456 38 61 - 466: 19(int) CompositeExtract 460 2 - Store 465 466 - 467: 6(int) Load 8(invocation) - 468: 78(ptr) AccessChain 27(data) 65 38 - 469: 20(ivec4) Load 468 - 470: 20(ivec4) GroupNonUniformSMax 34 Reduce 469 - 471: 78(ptr) AccessChain 27(data) 467 38 - Store 471 470 - 472: 6(int) Load 8(invocation) - 473: 105(ptr) AccessChain 27(data) 29 51 30 - 474: 6(int) Load 473 - 475: 6(int) GroupNonUniformUMax 34 Reduce 474 - 476: 105(ptr) AccessChain 27(data) 472 51 30 - Store 476 475 - 477: 6(int) Load 8(invocation) - 478: 112(ptr) AccessChain 27(data) 38 51 - 479: 21(ivec4) Load 478 - 480: 111(ivec2) VectorShuffle 479 479 0 1 - 481: 111(ivec2) GroupNonUniformUMax 34 Reduce 480 - 482: 105(ptr) AccessChain 27(data) 477 51 30 - 483: 6(int) CompositeExtract 481 0 - Store 482 483 - 484: 105(ptr) AccessChain 27(data) 477 51 47 - 485: 6(int) CompositeExtract 481 1 - Store 484 485 - 486: 6(int) Load 8(invocation) - 487: 112(ptr) AccessChain 27(data) 51 51 - 488: 21(ivec4) Load 487 - 489: 122(ivec3) VectorShuffle 488 488 0 1 2 - 490: 122(ivec3) GroupNonUniformUMax 34 Reduce 489 - 491: 105(ptr) AccessChain 27(data) 486 51 30 - 492: 6(int) CompositeExtract 490 0 - Store 491 492 - 493: 105(ptr) AccessChain 27(data) 486 51 47 - 494: 6(int) CompositeExtract 490 1 - Store 493 494 - 495: 105(ptr) AccessChain 27(data) 486 51 61 - 496: 6(int) CompositeExtract 490 2 - Store 495 496 - 497: 6(int) Load 8(invocation) - 498: 112(ptr) AccessChain 27(data) 65 51 - 499: 21(ivec4) Load 498 - 500: 21(ivec4) GroupNonUniformUMax 34 Reduce 499 - 501: 112(ptr) AccessChain 27(data) 497 51 - Store 501 500 - 502: 6(int) Load 8(invocation) - 503: 139(ptr) AccessChain 27(data) 29 65 30 - 504:22(float64_t) Load 503 - 505:22(float64_t) GroupNonUniformFMax 34 Reduce 504 - 506: 139(ptr) AccessChain 27(data) 502 65 30 - Store 506 505 - 507: 6(int) Load 8(invocation) - 508: 146(ptr) AccessChain 27(data) 38 65 - 509: 23(f64vec4) Load 508 - 510:145(f64vec2) VectorShuffle 509 509 0 1 - 511:145(f64vec2) GroupNonUniformFMax 34 Reduce 510 - 512: 139(ptr) AccessChain 27(data) 507 65 30 - 513:22(float64_t) CompositeExtract 511 0 - Store 512 513 - 514: 139(ptr) AccessChain 27(data) 507 65 47 - 515:22(float64_t) CompositeExtract 511 1 - Store 514 515 - 516: 6(int) Load 8(invocation) - 517: 146(ptr) AccessChain 27(data) 51 65 - 518: 23(f64vec4) Load 517 - 519:156(f64vec3) VectorShuffle 518 518 0 1 2 - 520:156(f64vec3) GroupNonUniformFMax 34 Reduce 519 - 521: 139(ptr) AccessChain 27(data) 516 65 30 - 522:22(float64_t) CompositeExtract 520 0 - Store 521 522 - 523: 139(ptr) AccessChain 27(data) 516 65 47 - 524:22(float64_t) CompositeExtract 520 1 - Store 523 524 - 525: 139(ptr) AccessChain 27(data) 516 65 61 - 526:22(float64_t) CompositeExtract 520 2 - Store 525 526 - 527: 6(int) Load 8(invocation) - 528: 146(ptr) AccessChain 27(data) 65 65 - 529: 23(f64vec4) Load 528 - 530: 23(f64vec4) GroupNonUniformFMax 34 Reduce 529 - 531: 146(ptr) AccessChain 27(data) 527 65 - Store 531 530 - 532: 6(int) Load 8(invocation) - 533: 71(ptr) AccessChain 27(data) 29 38 30 - 534: 19(int) Load 533 - 535: 19(int) GroupNonUniformBitwiseAnd 34 Reduce 534 - 536: 71(ptr) AccessChain 27(data) 532 38 30 - Store 536 535 - 537: 6(int) Load 8(invocation) - 538: 78(ptr) AccessChain 27(data) 38 38 - 539: 20(ivec4) Load 538 - 540: 77(ivec2) VectorShuffle 539 539 0 1 - 541: 77(ivec2) GroupNonUniformBitwiseAnd 34 Reduce 540 - 542: 71(ptr) AccessChain 27(data) 537 38 30 - 543: 19(int) CompositeExtract 541 0 - Store 542 543 - 544: 71(ptr) AccessChain 27(data) 537 38 47 - 545: 19(int) CompositeExtract 541 1 - Store 544 545 - 546: 6(int) Load 8(invocation) - 547: 78(ptr) AccessChain 27(data) 51 38 - 548: 20(ivec4) Load 547 - 549: 88(ivec3) VectorShuffle 548 548 0 1 2 - 550: 88(ivec3) GroupNonUniformBitwiseAnd 34 Reduce 549 - 551: 71(ptr) AccessChain 27(data) 546 38 30 - 552: 19(int) CompositeExtract 550 0 - Store 551 552 - 553: 71(ptr) AccessChain 27(data) 546 38 47 - 554: 19(int) CompositeExtract 550 1 - Store 553 554 - 555: 71(ptr) AccessChain 27(data) 546 38 61 - 556: 19(int) CompositeExtract 550 2 - Store 555 556 - 557: 6(int) Load 8(invocation) - 558: 78(ptr) AccessChain 27(data) 65 38 - 559: 20(ivec4) Load 558 - 560: 20(ivec4) GroupNonUniformBitwiseAnd 34 Reduce 559 - 561: 78(ptr) AccessChain 27(data) 557 38 - Store 561 560 - 562: 6(int) Load 8(invocation) - 563: 105(ptr) AccessChain 27(data) 29 51 30 - 564: 6(int) Load 563 - 565: 6(int) GroupNonUniformBitwiseAnd 34 Reduce 564 - 566: 105(ptr) AccessChain 27(data) 562 51 30 - Store 566 565 - 567: 6(int) Load 8(invocation) - 568: 112(ptr) AccessChain 27(data) 38 51 - 569: 21(ivec4) Load 568 - 570: 111(ivec2) VectorShuffle 569 569 0 1 - 571: 111(ivec2) GroupNonUniformBitwiseAnd 34 Reduce 570 - 572: 105(ptr) AccessChain 27(data) 567 51 30 - 573: 6(int) CompositeExtract 571 0 - Store 572 573 - 574: 105(ptr) AccessChain 27(data) 567 51 47 - 575: 6(int) CompositeExtract 571 1 - Store 574 575 - 576: 6(int) Load 8(invocation) - 577: 112(ptr) AccessChain 27(data) 51 51 - 578: 21(ivec4) Load 577 - 579: 122(ivec3) VectorShuffle 578 578 0 1 2 - 580: 122(ivec3) GroupNonUniformBitwiseAnd 34 Reduce 579 - 581: 105(ptr) AccessChain 27(data) 576 51 30 - 582: 6(int) CompositeExtract 580 0 - Store 581 582 - 583: 105(ptr) AccessChain 27(data) 576 51 47 - 584: 6(int) CompositeExtract 580 1 - Store 583 584 - 585: 105(ptr) AccessChain 27(data) 576 51 61 - 586: 6(int) CompositeExtract 580 2 - Store 585 586 - 587: 6(int) Load 8(invocation) - 588: 112(ptr) AccessChain 27(data) 65 51 - 589: 21(ivec4) Load 588 - 590: 21(ivec4) GroupNonUniformBitwiseAnd 34 Reduce 589 - 591: 112(ptr) AccessChain 27(data) 587 51 - Store 591 590 - 592: 6(int) Load 8(invocation) - 593: 71(ptr) AccessChain 27(data) 29 38 30 - 594: 19(int) Load 593 - 596: 595(bool) SLessThan 594 29 - 597: 595(bool) GroupNonUniformLogicalAnd 34 Reduce 596 - 598: 19(int) Select 597 38 29 - 599: 71(ptr) AccessChain 27(data) 592 38 30 - Store 599 598 - 600: 6(int) Load 8(invocation) - 601: 78(ptr) AccessChain 27(data) 38 38 - 602: 20(ivec4) Load 601 - 603: 77(ivec2) VectorShuffle 602 602 0 1 - 606: 605(bvec2) SLessThan 603 604 - 607: 605(bvec2) GroupNonUniformLogicalAnd 34 Reduce 606 - 609: 77(ivec2) Select 607 608 604 - 610: 71(ptr) AccessChain 27(data) 600 38 30 - 611: 19(int) CompositeExtract 609 0 - Store 610 611 - 612: 71(ptr) AccessChain 27(data) 600 38 47 - 613: 19(int) CompositeExtract 609 1 - Store 612 613 - 614: 6(int) Load 8(invocation) - 615: 78(ptr) AccessChain 27(data) 38 38 - 616: 20(ivec4) Load 615 - 617: 88(ivec3) VectorShuffle 616 616 0 1 2 - 620: 619(bvec3) SLessThan 617 618 - 621: 619(bvec3) GroupNonUniformLogicalAnd 34 Reduce 620 - 623: 88(ivec3) Select 621 622 618 - 624: 71(ptr) AccessChain 27(data) 614 38 30 - 625: 19(int) CompositeExtract 623 0 - Store 624 625 - 626: 71(ptr) AccessChain 27(data) 614 38 47 - 627: 19(int) CompositeExtract 623 1 - Store 626 627 - 628: 71(ptr) AccessChain 27(data) 614 38 61 - 629: 19(int) CompositeExtract 623 2 - Store 628 629 - 630: 6(int) Load 8(invocation) - 631: 78(ptr) AccessChain 27(data) 38 38 - 632: 20(ivec4) Load 631 - 635: 634(bvec4) SLessThan 632 633 - 636: 634(bvec4) GroupNonUniformLogicalAnd 34 Reduce 635 - 638: 20(ivec4) Select 636 637 633 - 639: 78(ptr) AccessChain 27(data) 630 38 - Store 639 638 - 640: 6(int) Load 8(invocation) - 641: 71(ptr) AccessChain 27(data) 29 38 30 - 642: 19(int) Load 641 - 643: 19(int) GroupNonUniformBitwiseOr 34 Reduce 642 - 644: 71(ptr) AccessChain 27(data) 640 38 30 - Store 644 643 - 645: 6(int) Load 8(invocation) - 646: 78(ptr) AccessChain 27(data) 38 38 - 647: 20(ivec4) Load 646 - 648: 77(ivec2) VectorShuffle 647 647 0 1 - 649: 77(ivec2) GroupNonUniformBitwiseOr 34 Reduce 648 - 650: 71(ptr) AccessChain 27(data) 645 38 30 - 651: 19(int) CompositeExtract 649 0 - Store 650 651 - 652: 71(ptr) AccessChain 27(data) 645 38 47 - 653: 19(int) CompositeExtract 649 1 - Store 652 653 - 654: 6(int) Load 8(invocation) - 655: 78(ptr) AccessChain 27(data) 51 38 - 656: 20(ivec4) Load 655 - 657: 88(ivec3) VectorShuffle 656 656 0 1 2 - 658: 88(ivec3) GroupNonUniformBitwiseOr 34 Reduce 657 - 659: 71(ptr) AccessChain 27(data) 654 38 30 - 660: 19(int) CompositeExtract 658 0 - Store 659 660 - 661: 71(ptr) AccessChain 27(data) 654 38 47 - 662: 19(int) CompositeExtract 658 1 - Store 661 662 - 663: 71(ptr) AccessChain 27(data) 654 38 61 - 664: 19(int) CompositeExtract 658 2 - Store 663 664 - 665: 6(int) Load 8(invocation) - 666: 78(ptr) AccessChain 27(data) 65 38 - 667: 20(ivec4) Load 666 - 668: 20(ivec4) GroupNonUniformBitwiseOr 34 Reduce 667 - 669: 78(ptr) AccessChain 27(data) 665 38 - Store 669 668 - 670: 6(int) Load 8(invocation) - 671: 105(ptr) AccessChain 27(data) 29 51 30 - 672: 6(int) Load 671 - 673: 6(int) GroupNonUniformBitwiseOr 34 Reduce 672 - 674: 105(ptr) AccessChain 27(data) 670 51 30 - Store 674 673 - 675: 6(int) Load 8(invocation) - 676: 112(ptr) AccessChain 27(data) 38 51 - 677: 21(ivec4) Load 676 - 678: 111(ivec2) VectorShuffle 677 677 0 1 - 679: 111(ivec2) GroupNonUniformBitwiseOr 34 Reduce 678 - 680: 105(ptr) AccessChain 27(data) 675 51 30 - 681: 6(int) CompositeExtract 679 0 - Store 680 681 - 682: 105(ptr) AccessChain 27(data) 675 51 47 - 683: 6(int) CompositeExtract 679 1 - Store 682 683 - 684: 6(int) Load 8(invocation) - 685: 112(ptr) AccessChain 27(data) 51 51 - 686: 21(ivec4) Load 685 - 687: 122(ivec3) VectorShuffle 686 686 0 1 2 - 688: 122(ivec3) GroupNonUniformBitwiseOr 34 Reduce 687 - 689: 105(ptr) AccessChain 27(data) 684 51 30 - 690: 6(int) CompositeExtract 688 0 - Store 689 690 - 691: 105(ptr) AccessChain 27(data) 684 51 47 - 692: 6(int) CompositeExtract 688 1 - Store 691 692 - 693: 105(ptr) AccessChain 27(data) 684 51 61 - 694: 6(int) CompositeExtract 688 2 - Store 693 694 - 695: 6(int) Load 8(invocation) - 696: 112(ptr) AccessChain 27(data) 65 51 - 697: 21(ivec4) Load 696 - 698: 21(ivec4) GroupNonUniformBitwiseOr 34 Reduce 697 - 699: 112(ptr) AccessChain 27(data) 695 51 - Store 699 698 - 700: 6(int) Load 8(invocation) - 701: 71(ptr) AccessChain 27(data) 29 38 30 - 702: 19(int) Load 701 - 703: 595(bool) SLessThan 702 29 - 704: 595(bool) GroupNonUniformLogicalOr 34 Reduce 703 - 705: 19(int) Select 704 38 29 - 706: 71(ptr) AccessChain 27(data) 700 38 30 - Store 706 705 - 707: 6(int) Load 8(invocation) - 708: 78(ptr) AccessChain 27(data) 38 38 - 709: 20(ivec4) Load 708 - 710: 77(ivec2) VectorShuffle 709 709 0 1 - 711: 605(bvec2) SLessThan 710 604 - 712: 605(bvec2) GroupNonUniformLogicalOr 34 Reduce 711 - 713: 77(ivec2) Select 712 608 604 - 714: 71(ptr) AccessChain 27(data) 707 38 30 - 715: 19(int) CompositeExtract 713 0 - Store 714 715 - 716: 71(ptr) AccessChain 27(data) 707 38 47 - 717: 19(int) CompositeExtract 713 1 - Store 716 717 - 718: 6(int) Load 8(invocation) - 719: 78(ptr) AccessChain 27(data) 38 38 - 720: 20(ivec4) Load 719 - 721: 88(ivec3) VectorShuffle 720 720 0 1 2 - 722: 619(bvec3) SLessThan 721 618 - 723: 619(bvec3) GroupNonUniformLogicalOr 34 Reduce 722 - 724: 88(ivec3) Select 723 622 618 - 725: 71(ptr) AccessChain 27(data) 718 38 30 - 726: 19(int) CompositeExtract 724 0 - Store 725 726 - 727: 71(ptr) AccessChain 27(data) 718 38 47 - 728: 19(int) CompositeExtract 724 1 - Store 727 728 - 729: 71(ptr) AccessChain 27(data) 718 38 61 - 730: 19(int) CompositeExtract 724 2 - Store 729 730 - 731: 6(int) Load 8(invocation) - 732: 78(ptr) AccessChain 27(data) 38 38 - 733: 20(ivec4) Load 732 - 734: 634(bvec4) SLessThan 733 633 - 735: 634(bvec4) GroupNonUniformLogicalOr 34 Reduce 734 - 736: 20(ivec4) Select 735 637 633 - 737: 78(ptr) AccessChain 27(data) 731 38 - Store 737 736 - 738: 6(int) Load 8(invocation) - 739: 71(ptr) AccessChain 27(data) 29 38 30 - 740: 19(int) Load 739 - 741: 19(int) GroupNonUniformBitwiseXor 34 Reduce 740 - 742: 71(ptr) AccessChain 27(data) 738 38 30 - Store 742 741 - 743: 6(int) Load 8(invocation) - 744: 78(ptr) AccessChain 27(data) 38 38 - 745: 20(ivec4) Load 744 - 746: 77(ivec2) VectorShuffle 745 745 0 1 - 747: 77(ivec2) GroupNonUniformBitwiseXor 34 Reduce 746 - 748: 71(ptr) AccessChain 27(data) 743 38 30 - 749: 19(int) CompositeExtract 747 0 - Store 748 749 - 750: 71(ptr) AccessChain 27(data) 743 38 47 - 751: 19(int) CompositeExtract 747 1 - Store 750 751 - 752: 6(int) Load 8(invocation) - 753: 78(ptr) AccessChain 27(data) 51 38 - 754: 20(ivec4) Load 753 - 755: 88(ivec3) VectorShuffle 754 754 0 1 2 - 756: 88(ivec3) GroupNonUniformBitwiseXor 34 Reduce 755 - 757: 71(ptr) AccessChain 27(data) 752 38 30 - 758: 19(int) CompositeExtract 756 0 - Store 757 758 - 759: 71(ptr) AccessChain 27(data) 752 38 47 - 760: 19(int) CompositeExtract 756 1 - Store 759 760 - 761: 71(ptr) AccessChain 27(data) 752 38 61 - 762: 19(int) CompositeExtract 756 2 - Store 761 762 - 763: 6(int) Load 8(invocation) - 764: 78(ptr) AccessChain 27(data) 65 38 - 765: 20(ivec4) Load 764 - 766: 20(ivec4) GroupNonUniformBitwiseXor 34 Reduce 765 - 767: 78(ptr) AccessChain 27(data) 763 38 - Store 767 766 - 768: 6(int) Load 8(invocation) - 769: 105(ptr) AccessChain 27(data) 29 51 30 - 770: 6(int) Load 769 - 771: 6(int) GroupNonUniformBitwiseXor 34 Reduce 770 - 772: 105(ptr) AccessChain 27(data) 768 51 30 - Store 772 771 - 773: 6(int) Load 8(invocation) - 774: 112(ptr) AccessChain 27(data) 38 51 - 775: 21(ivec4) Load 774 - 776: 111(ivec2) VectorShuffle 775 775 0 1 - 777: 111(ivec2) GroupNonUniformBitwiseXor 34 Reduce 776 - 778: 105(ptr) AccessChain 27(data) 773 51 30 - 779: 6(int) CompositeExtract 777 0 - Store 778 779 - 780: 105(ptr) AccessChain 27(data) 773 51 47 - 781: 6(int) CompositeExtract 777 1 - Store 780 781 - 782: 6(int) Load 8(invocation) - 783: 112(ptr) AccessChain 27(data) 51 51 - 784: 21(ivec4) Load 783 - 785: 122(ivec3) VectorShuffle 784 784 0 1 2 - 786: 122(ivec3) GroupNonUniformBitwiseXor 34 Reduce 785 - 787: 105(ptr) AccessChain 27(data) 782 51 30 - 788: 6(int) CompositeExtract 786 0 - Store 787 788 - 789: 105(ptr) AccessChain 27(data) 782 51 47 - 790: 6(int) CompositeExtract 786 1 - Store 789 790 - 791: 105(ptr) AccessChain 27(data) 782 51 61 - 792: 6(int) CompositeExtract 786 2 - Store 791 792 - 793: 6(int) Load 8(invocation) - 794: 112(ptr) AccessChain 27(data) 65 51 - 795: 21(ivec4) Load 794 - 796: 21(ivec4) GroupNonUniformBitwiseXor 34 Reduce 795 - 797: 112(ptr) AccessChain 27(data) 793 51 - Store 797 796 - 798: 6(int) Load 8(invocation) - 799: 71(ptr) AccessChain 27(data) 29 38 30 - 800: 19(int) Load 799 - 801: 595(bool) SLessThan 800 29 - 802: 595(bool) GroupNonUniformLogicalXor 34 Reduce 801 - 803: 19(int) Select 802 38 29 - 804: 71(ptr) AccessChain 27(data) 798 38 30 - Store 804 803 - 805: 6(int) Load 8(invocation) - 806: 78(ptr) AccessChain 27(data) 38 38 - 807: 20(ivec4) Load 806 - 808: 77(ivec2) VectorShuffle 807 807 0 1 - 809: 605(bvec2) SLessThan 808 604 - 810: 605(bvec2) GroupNonUniformLogicalXor 34 Reduce 809 - 811: 77(ivec2) Select 810 608 604 - 812: 71(ptr) AccessChain 27(data) 805 38 30 - 813: 19(int) CompositeExtract 811 0 - Store 812 813 - 814: 71(ptr) AccessChain 27(data) 805 38 47 - 815: 19(int) CompositeExtract 811 1 - Store 814 815 - 816: 6(int) Load 8(invocation) - 817: 78(ptr) AccessChain 27(data) 38 38 - 818: 20(ivec4) Load 817 - 819: 88(ivec3) VectorShuffle 818 818 0 1 2 - 820: 619(bvec3) SLessThan 819 618 - 821: 619(bvec3) GroupNonUniformLogicalXor 34 Reduce 820 - 822: 88(ivec3) Select 821 622 618 - 823: 71(ptr) AccessChain 27(data) 816 38 30 - 824: 19(int) CompositeExtract 822 0 - Store 823 824 - 825: 71(ptr) AccessChain 27(data) 816 38 47 - 826: 19(int) CompositeExtract 822 1 - Store 825 826 - 827: 71(ptr) AccessChain 27(data) 816 38 61 - 828: 19(int) CompositeExtract 822 2 - Store 827 828 - 829: 6(int) Load 8(invocation) - 830: 78(ptr) AccessChain 27(data) 38 38 - 831: 20(ivec4) Load 830 - 832: 634(bvec4) SLessThan 831 633 - 833: 634(bvec4) GroupNonUniformLogicalXor 34 Reduce 832 - 834: 20(ivec4) Select 833 637 633 - 835: 78(ptr) AccessChain 27(data) 829 38 - Store 835 834 - 836: 6(int) Load 8(invocation) - 837: 31(ptr) AccessChain 27(data) 29 29 30 - 838: 17(float) Load 837 - 839: 17(float) GroupNonUniformFAdd 34 InclusiveScan 838 - 840: 31(ptr) AccessChain 27(data) 836 29 30 - Store 840 839 - 841: 6(int) Load 8(invocation) - 842: 40(ptr) AccessChain 27(data) 38 29 - 843: 18(fvec4) Load 842 - 844: 39(fvec2) VectorShuffle 843 843 0 1 - 845: 39(fvec2) GroupNonUniformFAdd 34 InclusiveScan 844 - 846: 31(ptr) AccessChain 27(data) 841 29 30 - 847: 17(float) CompositeExtract 845 0 - Store 846 847 - 848: 31(ptr) AccessChain 27(data) 841 29 47 - 849: 17(float) CompositeExtract 845 1 - Store 848 849 - 850: 6(int) Load 8(invocation) - 851: 40(ptr) AccessChain 27(data) 51 29 - 852: 18(fvec4) Load 851 - 853: 52(fvec3) VectorShuffle 852 852 0 1 2 - 854: 52(fvec3) GroupNonUniformFAdd 34 InclusiveScan 853 - 855: 31(ptr) AccessChain 27(data) 850 29 30 - 856: 17(float) CompositeExtract 854 0 - Store 855 856 - 857: 31(ptr) AccessChain 27(data) 850 29 47 - 858: 17(float) CompositeExtract 854 1 - Store 857 858 - 859: 31(ptr) AccessChain 27(data) 850 29 61 - 860: 17(float) CompositeExtract 854 2 - Store 859 860 - 861: 6(int) Load 8(invocation) - 862: 40(ptr) AccessChain 27(data) 65 29 - 863: 18(fvec4) Load 862 - 864: 18(fvec4) GroupNonUniformFAdd 34 InclusiveScan 863 - 865: 40(ptr) AccessChain 27(data) 861 29 - Store 865 864 - 866: 6(int) Load 8(invocation) - 867: 71(ptr) AccessChain 27(data) 29 38 30 - 868: 19(int) Load 867 - 869: 19(int) GroupNonUniformIAdd 34 InclusiveScan 868 - 870: 71(ptr) AccessChain 27(data) 866 38 30 - Store 870 869 - 871: 6(int) Load 8(invocation) - 872: 78(ptr) AccessChain 27(data) 38 38 - 873: 20(ivec4) Load 872 - 874: 77(ivec2) VectorShuffle 873 873 0 1 - 875: 77(ivec2) GroupNonUniformIAdd 34 InclusiveScan 874 - 876: 71(ptr) AccessChain 27(data) 871 38 30 - 877: 19(int) CompositeExtract 875 0 - Store 876 877 - 878: 71(ptr) AccessChain 27(data) 871 38 47 - 879: 19(int) CompositeExtract 875 1 - Store 878 879 - 880: 6(int) Load 8(invocation) - 881: 78(ptr) AccessChain 27(data) 51 38 - 882: 20(ivec4) Load 881 - 883: 88(ivec3) VectorShuffle 882 882 0 1 2 - 884: 88(ivec3) GroupNonUniformIAdd 34 InclusiveScan 883 - 885: 71(ptr) AccessChain 27(data) 880 38 30 - 886: 19(int) CompositeExtract 884 0 - Store 885 886 - 887: 71(ptr) AccessChain 27(data) 880 38 47 - 888: 19(int) CompositeExtract 884 1 - Store 887 888 - 889: 71(ptr) AccessChain 27(data) 880 38 61 - 890: 19(int) CompositeExtract 884 2 - Store 889 890 - 891: 6(int) Load 8(invocation) - 892: 78(ptr) AccessChain 27(data) 65 38 - 893: 20(ivec4) Load 892 - 894: 20(ivec4) GroupNonUniformIAdd 34 InclusiveScan 893 - 895: 78(ptr) AccessChain 27(data) 891 38 - Store 895 894 - 896: 6(int) Load 8(invocation) - 897: 105(ptr) AccessChain 27(data) 29 51 30 - 898: 6(int) Load 897 - 899: 6(int) GroupNonUniformIAdd 34 InclusiveScan 898 - 900: 105(ptr) AccessChain 27(data) 896 51 30 - Store 900 899 - 901: 6(int) Load 8(invocation) - 902: 112(ptr) AccessChain 27(data) 38 51 - 903: 21(ivec4) Load 902 - 904: 111(ivec2) VectorShuffle 903 903 0 1 - 905: 111(ivec2) GroupNonUniformIAdd 34 InclusiveScan 904 - 906: 105(ptr) AccessChain 27(data) 901 51 30 - 907: 6(int) CompositeExtract 905 0 - Store 906 907 - 908: 105(ptr) AccessChain 27(data) 901 51 47 - 909: 6(int) CompositeExtract 905 1 - Store 908 909 - 910: 6(int) Load 8(invocation) - 911: 112(ptr) AccessChain 27(data) 51 51 - 912: 21(ivec4) Load 911 - 913: 122(ivec3) VectorShuffle 912 912 0 1 2 - 914: 122(ivec3) GroupNonUniformIAdd 34 InclusiveScan 913 - 915: 105(ptr) AccessChain 27(data) 910 51 30 - 916: 6(int) CompositeExtract 914 0 - Store 915 916 - 917: 105(ptr) AccessChain 27(data) 910 51 47 - 918: 6(int) CompositeExtract 914 1 - Store 917 918 - 919: 105(ptr) AccessChain 27(data) 910 51 61 - 920: 6(int) CompositeExtract 914 2 - Store 919 920 - 921: 6(int) Load 8(invocation) - 922: 112(ptr) AccessChain 27(data) 65 51 - 923: 21(ivec4) Load 922 - 924: 21(ivec4) GroupNonUniformIAdd 34 InclusiveScan 923 - 925: 112(ptr) AccessChain 27(data) 921 51 - Store 925 924 - 926: 6(int) Load 8(invocation) - 927: 139(ptr) AccessChain 27(data) 29 65 30 - 928:22(float64_t) Load 927 - 929:22(float64_t) GroupNonUniformFAdd 34 InclusiveScan 928 - 930: 139(ptr) AccessChain 27(data) 926 65 30 - Store 930 929 - 931: 6(int) Load 8(invocation) - 932: 146(ptr) AccessChain 27(data) 38 65 - 933: 23(f64vec4) Load 932 - 934:145(f64vec2) VectorShuffle 933 933 0 1 - 935:145(f64vec2) GroupNonUniformFAdd 34 InclusiveScan 934 - 936: 139(ptr) AccessChain 27(data) 931 65 30 - 937:22(float64_t) CompositeExtract 935 0 - Store 936 937 - 938: 139(ptr) AccessChain 27(data) 931 65 47 - 939:22(float64_t) CompositeExtract 935 1 - Store 938 939 - 940: 6(int) Load 8(invocation) - 941: 146(ptr) AccessChain 27(data) 51 65 - 942: 23(f64vec4) Load 941 - 943:156(f64vec3) VectorShuffle 942 942 0 1 2 - 944:156(f64vec3) GroupNonUniformFAdd 34 InclusiveScan 943 - 945: 139(ptr) AccessChain 27(data) 940 65 30 - 946:22(float64_t) CompositeExtract 944 0 - Store 945 946 - 947: 139(ptr) AccessChain 27(data) 940 65 47 - 948:22(float64_t) CompositeExtract 944 1 - Store 947 948 - 949: 139(ptr) AccessChain 27(data) 940 65 61 - 950:22(float64_t) CompositeExtract 944 2 - Store 949 950 - 951: 6(int) Load 8(invocation) - 952: 146(ptr) AccessChain 27(data) 65 65 - 953: 23(f64vec4) Load 952 - 954: 23(f64vec4) GroupNonUniformFAdd 34 InclusiveScan 953 - 955: 146(ptr) AccessChain 27(data) 951 65 - Store 955 954 - 956: 6(int) Load 8(invocation) - 957: 31(ptr) AccessChain 27(data) 29 29 30 - 958: 17(float) Load 957 - 959: 17(float) GroupNonUniformFMul 34 InclusiveScan 958 - 960: 31(ptr) AccessChain 27(data) 956 29 30 - Store 960 959 - 961: 6(int) Load 8(invocation) - 962: 40(ptr) AccessChain 27(data) 38 29 - 963: 18(fvec4) Load 962 - 964: 39(fvec2) VectorShuffle 963 963 0 1 - 965: 39(fvec2) GroupNonUniformFMul 34 InclusiveScan 964 - 966: 31(ptr) AccessChain 27(data) 961 29 30 - 967: 17(float) CompositeExtract 965 0 - Store 966 967 - 968: 31(ptr) AccessChain 27(data) 961 29 47 - 969: 17(float) CompositeExtract 965 1 - Store 968 969 - 970: 6(int) Load 8(invocation) - 971: 40(ptr) AccessChain 27(data) 51 29 - 972: 18(fvec4) Load 971 - 973: 52(fvec3) VectorShuffle 972 972 0 1 2 - 974: 52(fvec3) GroupNonUniformFMul 34 InclusiveScan 973 - 975: 31(ptr) AccessChain 27(data) 970 29 30 - 976: 17(float) CompositeExtract 974 0 - Store 975 976 - 977: 31(ptr) AccessChain 27(data) 970 29 47 - 978: 17(float) CompositeExtract 974 1 - Store 977 978 - 979: 31(ptr) AccessChain 27(data) 970 29 61 - 980: 17(float) CompositeExtract 974 2 - Store 979 980 - 981: 6(int) Load 8(invocation) - 982: 40(ptr) AccessChain 27(data) 65 29 - 983: 18(fvec4) Load 982 - 984: 18(fvec4) GroupNonUniformFMul 34 InclusiveScan 983 - 985: 40(ptr) AccessChain 27(data) 981 29 - Store 985 984 - 986: 6(int) Load 8(invocation) - 987: 71(ptr) AccessChain 27(data) 29 38 30 - 988: 19(int) Load 987 - 989: 19(int) GroupNonUniformIMul 34 InclusiveScan 988 - 990: 71(ptr) AccessChain 27(data) 986 38 30 - Store 990 989 - 991: 6(int) Load 8(invocation) - 992: 78(ptr) AccessChain 27(data) 38 38 - 993: 20(ivec4) Load 992 - 994: 77(ivec2) VectorShuffle 993 993 0 1 - 995: 77(ivec2) GroupNonUniformIMul 34 InclusiveScan 994 - 996: 71(ptr) AccessChain 27(data) 991 38 30 - 997: 19(int) CompositeExtract 995 0 - Store 996 997 - 998: 71(ptr) AccessChain 27(data) 991 38 47 - 999: 19(int) CompositeExtract 995 1 - Store 998 999 - 1000: 6(int) Load 8(invocation) - 1001: 78(ptr) AccessChain 27(data) 51 38 - 1002: 20(ivec4) Load 1001 - 1003: 88(ivec3) VectorShuffle 1002 1002 0 1 2 - 1004: 88(ivec3) GroupNonUniformIMul 34 InclusiveScan 1003 - 1005: 71(ptr) AccessChain 27(data) 1000 38 30 - 1006: 19(int) CompositeExtract 1004 0 - Store 1005 1006 - 1007: 71(ptr) AccessChain 27(data) 1000 38 47 - 1008: 19(int) CompositeExtract 1004 1 - Store 1007 1008 - 1009: 71(ptr) AccessChain 27(data) 1000 38 61 - 1010: 19(int) CompositeExtract 1004 2 - Store 1009 1010 - 1011: 6(int) Load 8(invocation) - 1012: 78(ptr) AccessChain 27(data) 65 38 - 1013: 20(ivec4) Load 1012 - 1014: 20(ivec4) GroupNonUniformIMul 34 InclusiveScan 1013 - 1015: 78(ptr) AccessChain 27(data) 1011 38 - Store 1015 1014 - 1016: 6(int) Load 8(invocation) - 1017: 105(ptr) AccessChain 27(data) 29 51 30 - 1018: 6(int) Load 1017 - 1019: 6(int) GroupNonUniformIMul 34 InclusiveScan 1018 - 1020: 105(ptr) AccessChain 27(data) 1016 51 30 - Store 1020 1019 - 1021: 6(int) Load 8(invocation) - 1022: 112(ptr) AccessChain 27(data) 38 51 - 1023: 21(ivec4) Load 1022 - 1024: 111(ivec2) VectorShuffle 1023 1023 0 1 - 1025: 111(ivec2) GroupNonUniformIMul 34 InclusiveScan 1024 - 1026: 105(ptr) AccessChain 27(data) 1021 51 30 - 1027: 6(int) CompositeExtract 1025 0 - Store 1026 1027 - 1028: 105(ptr) AccessChain 27(data) 1021 51 47 - 1029: 6(int) CompositeExtract 1025 1 - Store 1028 1029 - 1030: 6(int) Load 8(invocation) - 1031: 112(ptr) AccessChain 27(data) 51 51 - 1032: 21(ivec4) Load 1031 - 1033: 122(ivec3) VectorShuffle 1032 1032 0 1 2 - 1034: 122(ivec3) GroupNonUniformIMul 34 InclusiveScan 1033 - 1035: 105(ptr) AccessChain 27(data) 1030 51 30 - 1036: 6(int) CompositeExtract 1034 0 - Store 1035 1036 - 1037: 105(ptr) AccessChain 27(data) 1030 51 47 - 1038: 6(int) CompositeExtract 1034 1 - Store 1037 1038 - 1039: 105(ptr) AccessChain 27(data) 1030 51 61 - 1040: 6(int) CompositeExtract 1034 2 - Store 1039 1040 - 1041: 6(int) Load 8(invocation) - 1042: 112(ptr) AccessChain 27(data) 65 51 - 1043: 21(ivec4) Load 1042 - 1044: 21(ivec4) GroupNonUniformIMul 34 InclusiveScan 1043 - 1045: 112(ptr) AccessChain 27(data) 1041 51 - Store 1045 1044 - 1046: 6(int) Load 8(invocation) - 1047: 139(ptr) AccessChain 27(data) 29 65 30 - 1048:22(float64_t) Load 1047 - 1049:22(float64_t) GroupNonUniformFMul 34 InclusiveScan 1048 - 1050: 139(ptr) AccessChain 27(data) 1046 65 30 - Store 1050 1049 - 1051: 6(int) Load 8(invocation) - 1052: 146(ptr) AccessChain 27(data) 38 65 - 1053: 23(f64vec4) Load 1052 - 1054:145(f64vec2) VectorShuffle 1053 1053 0 1 - 1055:145(f64vec2) GroupNonUniformFMul 34 InclusiveScan 1054 - 1056: 139(ptr) AccessChain 27(data) 1051 65 30 - 1057:22(float64_t) CompositeExtract 1055 0 - Store 1056 1057 - 1058: 139(ptr) AccessChain 27(data) 1051 65 47 - 1059:22(float64_t) CompositeExtract 1055 1 - Store 1058 1059 - 1060: 6(int) Load 8(invocation) - 1061: 146(ptr) AccessChain 27(data) 51 65 - 1062: 23(f64vec4) Load 1061 - 1063:156(f64vec3) VectorShuffle 1062 1062 0 1 2 - 1064:156(f64vec3) GroupNonUniformFMul 34 InclusiveScan 1063 - 1065: 139(ptr) AccessChain 27(data) 1060 65 30 - 1066:22(float64_t) CompositeExtract 1064 0 - Store 1065 1066 - 1067: 139(ptr) AccessChain 27(data) 1060 65 47 - 1068:22(float64_t) CompositeExtract 1064 1 - Store 1067 1068 - 1069: 139(ptr) AccessChain 27(data) 1060 65 61 - 1070:22(float64_t) CompositeExtract 1064 2 - Store 1069 1070 - 1071: 6(int) Load 8(invocation) - 1072: 146(ptr) AccessChain 27(data) 65 65 - 1073: 23(f64vec4) Load 1072 - 1074: 23(f64vec4) GroupNonUniformFMul 34 InclusiveScan 1073 - 1075: 146(ptr) AccessChain 27(data) 1071 65 - Store 1075 1074 - 1076: 6(int) Load 8(invocation) - 1077: 31(ptr) AccessChain 27(data) 29 29 30 - 1078: 17(float) Load 1077 - 1079: 17(float) GroupNonUniformFMin 34 InclusiveScan 1078 - 1080: 31(ptr) AccessChain 27(data) 1076 29 30 - Store 1080 1079 - 1081: 6(int) Load 8(invocation) - 1082: 40(ptr) AccessChain 27(data) 38 29 - 1083: 18(fvec4) Load 1082 - 1084: 39(fvec2) VectorShuffle 1083 1083 0 1 - 1085: 39(fvec2) GroupNonUniformFMin 34 InclusiveScan 1084 - 1086: 31(ptr) AccessChain 27(data) 1081 29 30 - 1087: 17(float) CompositeExtract 1085 0 - Store 1086 1087 - 1088: 31(ptr) AccessChain 27(data) 1081 29 47 - 1089: 17(float) CompositeExtract 1085 1 - Store 1088 1089 - 1090: 6(int) Load 8(invocation) - 1091: 40(ptr) AccessChain 27(data) 51 29 - 1092: 18(fvec4) Load 1091 - 1093: 52(fvec3) VectorShuffle 1092 1092 0 1 2 - 1094: 52(fvec3) GroupNonUniformFMin 34 InclusiveScan 1093 - 1095: 31(ptr) AccessChain 27(data) 1090 29 30 - 1096: 17(float) CompositeExtract 1094 0 - Store 1095 1096 - 1097: 31(ptr) AccessChain 27(data) 1090 29 47 - 1098: 17(float) CompositeExtract 1094 1 - Store 1097 1098 - 1099: 31(ptr) AccessChain 27(data) 1090 29 61 - 1100: 17(float) CompositeExtract 1094 2 - Store 1099 1100 - 1101: 6(int) Load 8(invocation) - 1102: 40(ptr) AccessChain 27(data) 65 29 - 1103: 18(fvec4) Load 1102 - 1104: 18(fvec4) GroupNonUniformFMin 34 InclusiveScan 1103 - 1105: 40(ptr) AccessChain 27(data) 1101 29 - Store 1105 1104 - 1106: 6(int) Load 8(invocation) - 1107: 71(ptr) AccessChain 27(data) 29 38 30 - 1108: 19(int) Load 1107 - 1109: 19(int) GroupNonUniformSMin 34 InclusiveScan 1108 - 1110: 71(ptr) AccessChain 27(data) 1106 38 30 - Store 1110 1109 - 1111: 6(int) Load 8(invocation) - 1112: 78(ptr) AccessChain 27(data) 38 38 - 1113: 20(ivec4) Load 1112 - 1114: 77(ivec2) VectorShuffle 1113 1113 0 1 - 1115: 77(ivec2) GroupNonUniformSMin 34 InclusiveScan 1114 - 1116: 71(ptr) AccessChain 27(data) 1111 38 30 - 1117: 19(int) CompositeExtract 1115 0 - Store 1116 1117 - 1118: 71(ptr) AccessChain 27(data) 1111 38 47 - 1119: 19(int) CompositeExtract 1115 1 - Store 1118 1119 - 1120: 6(int) Load 8(invocation) - 1121: 78(ptr) AccessChain 27(data) 51 38 - 1122: 20(ivec4) Load 1121 - 1123: 88(ivec3) VectorShuffle 1122 1122 0 1 2 - 1124: 88(ivec3) GroupNonUniformSMin 34 InclusiveScan 1123 - 1125: 71(ptr) AccessChain 27(data) 1120 38 30 - 1126: 19(int) CompositeExtract 1124 0 - Store 1125 1126 - 1127: 71(ptr) AccessChain 27(data) 1120 38 47 - 1128: 19(int) CompositeExtract 1124 1 - Store 1127 1128 - 1129: 71(ptr) AccessChain 27(data) 1120 38 61 - 1130: 19(int) CompositeExtract 1124 2 - Store 1129 1130 - 1131: 6(int) Load 8(invocation) - 1132: 78(ptr) AccessChain 27(data) 65 38 - 1133: 20(ivec4) Load 1132 - 1134: 20(ivec4) GroupNonUniformSMin 34 InclusiveScan 1133 - 1135: 78(ptr) AccessChain 27(data) 1131 38 - Store 1135 1134 - 1136: 6(int) Load 8(invocation) - 1137: 105(ptr) AccessChain 27(data) 29 51 30 - 1138: 6(int) Load 1137 - 1139: 6(int) GroupNonUniformUMin 34 InclusiveScan 1138 - 1140: 105(ptr) AccessChain 27(data) 1136 51 30 - Store 1140 1139 - 1141: 6(int) Load 8(invocation) - 1142: 112(ptr) AccessChain 27(data) 38 51 - 1143: 21(ivec4) Load 1142 - 1144: 111(ivec2) VectorShuffle 1143 1143 0 1 - 1145: 111(ivec2) GroupNonUniformUMin 34 InclusiveScan 1144 - 1146: 105(ptr) AccessChain 27(data) 1141 51 30 - 1147: 6(int) CompositeExtract 1145 0 - Store 1146 1147 - 1148: 105(ptr) AccessChain 27(data) 1141 51 47 - 1149: 6(int) CompositeExtract 1145 1 - Store 1148 1149 - 1150: 6(int) Load 8(invocation) - 1151: 112(ptr) AccessChain 27(data) 51 51 - 1152: 21(ivec4) Load 1151 - 1153: 122(ivec3) VectorShuffle 1152 1152 0 1 2 - 1154: 122(ivec3) GroupNonUniformUMin 34 InclusiveScan 1153 - 1155: 105(ptr) AccessChain 27(data) 1150 51 30 - 1156: 6(int) CompositeExtract 1154 0 - Store 1155 1156 - 1157: 105(ptr) AccessChain 27(data) 1150 51 47 - 1158: 6(int) CompositeExtract 1154 1 - Store 1157 1158 - 1159: 105(ptr) AccessChain 27(data) 1150 51 61 - 1160: 6(int) CompositeExtract 1154 2 - Store 1159 1160 - 1161: 6(int) Load 8(invocation) - 1162: 112(ptr) AccessChain 27(data) 65 51 - 1163: 21(ivec4) Load 1162 - 1164: 21(ivec4) GroupNonUniformUMin 34 InclusiveScan 1163 - 1165: 112(ptr) AccessChain 27(data) 1161 51 - Store 1165 1164 - 1166: 6(int) Load 8(invocation) - 1167: 139(ptr) AccessChain 27(data) 29 65 30 - 1168:22(float64_t) Load 1167 - 1169:22(float64_t) GroupNonUniformFMin 34 InclusiveScan 1168 - 1170: 139(ptr) AccessChain 27(data) 1166 65 30 - Store 1170 1169 - 1171: 6(int) Load 8(invocation) - 1172: 146(ptr) AccessChain 27(data) 38 65 - 1173: 23(f64vec4) Load 1172 - 1174:145(f64vec2) VectorShuffle 1173 1173 0 1 - 1175:145(f64vec2) GroupNonUniformFMin 34 InclusiveScan 1174 - 1176: 139(ptr) AccessChain 27(data) 1171 65 30 - 1177:22(float64_t) CompositeExtract 1175 0 - Store 1176 1177 - 1178: 139(ptr) AccessChain 27(data) 1171 65 47 - 1179:22(float64_t) CompositeExtract 1175 1 - Store 1178 1179 - 1180: 6(int) Load 8(invocation) - 1181: 146(ptr) AccessChain 27(data) 51 65 - 1182: 23(f64vec4) Load 1181 - 1183:156(f64vec3) VectorShuffle 1182 1182 0 1 2 - 1184:156(f64vec3) GroupNonUniformFMin 34 InclusiveScan 1183 - 1185: 139(ptr) AccessChain 27(data) 1180 65 30 - 1186:22(float64_t) CompositeExtract 1184 0 - Store 1185 1186 - 1187: 139(ptr) AccessChain 27(data) 1180 65 47 - 1188:22(float64_t) CompositeExtract 1184 1 - Store 1187 1188 - 1189: 139(ptr) AccessChain 27(data) 1180 65 61 - 1190:22(float64_t) CompositeExtract 1184 2 - Store 1189 1190 - 1191: 6(int) Load 8(invocation) - 1192: 146(ptr) AccessChain 27(data) 65 65 - 1193: 23(f64vec4) Load 1192 - 1194: 23(f64vec4) GroupNonUniformFMin 34 InclusiveScan 1193 - 1195: 146(ptr) AccessChain 27(data) 1191 65 - Store 1195 1194 - 1196: 6(int) Load 8(invocation) - 1197: 31(ptr) AccessChain 27(data) 29 29 30 - 1198: 17(float) Load 1197 - 1199: 17(float) GroupNonUniformFMax 34 InclusiveScan 1198 - 1200: 31(ptr) AccessChain 27(data) 1196 29 30 - Store 1200 1199 - 1201: 6(int) Load 8(invocation) - 1202: 40(ptr) AccessChain 27(data) 38 29 - 1203: 18(fvec4) Load 1202 - 1204: 39(fvec2) VectorShuffle 1203 1203 0 1 - 1205: 39(fvec2) GroupNonUniformFMax 34 InclusiveScan 1204 - 1206: 31(ptr) AccessChain 27(data) 1201 29 30 - 1207: 17(float) CompositeExtract 1205 0 - Store 1206 1207 - 1208: 31(ptr) AccessChain 27(data) 1201 29 47 - 1209: 17(float) CompositeExtract 1205 1 - Store 1208 1209 - 1210: 6(int) Load 8(invocation) - 1211: 40(ptr) AccessChain 27(data) 51 29 - 1212: 18(fvec4) Load 1211 - 1213: 52(fvec3) VectorShuffle 1212 1212 0 1 2 - 1214: 52(fvec3) GroupNonUniformFMax 34 InclusiveScan 1213 - 1215: 31(ptr) AccessChain 27(data) 1210 29 30 - 1216: 17(float) CompositeExtract 1214 0 - Store 1215 1216 - 1217: 31(ptr) AccessChain 27(data) 1210 29 47 - 1218: 17(float) CompositeExtract 1214 1 - Store 1217 1218 - 1219: 31(ptr) AccessChain 27(data) 1210 29 61 - 1220: 17(float) CompositeExtract 1214 2 - Store 1219 1220 - 1221: 6(int) Load 8(invocation) - 1222: 40(ptr) AccessChain 27(data) 65 29 - 1223: 18(fvec4) Load 1222 - 1224: 18(fvec4) GroupNonUniformFMax 34 InclusiveScan 1223 - 1225: 40(ptr) AccessChain 27(data) 1221 29 - Store 1225 1224 - 1226: 6(int) Load 8(invocation) - 1227: 71(ptr) AccessChain 27(data) 29 38 30 - 1228: 19(int) Load 1227 - 1229: 19(int) GroupNonUniformSMax 34 InclusiveScan 1228 - 1230: 71(ptr) AccessChain 27(data) 1226 38 30 - Store 1230 1229 - 1231: 6(int) Load 8(invocation) - 1232: 78(ptr) AccessChain 27(data) 38 38 - 1233: 20(ivec4) Load 1232 - 1234: 77(ivec2) VectorShuffle 1233 1233 0 1 - 1235: 77(ivec2) GroupNonUniformSMax 34 InclusiveScan 1234 - 1236: 71(ptr) AccessChain 27(data) 1231 38 30 - 1237: 19(int) CompositeExtract 1235 0 - Store 1236 1237 - 1238: 71(ptr) AccessChain 27(data) 1231 38 47 - 1239: 19(int) CompositeExtract 1235 1 - Store 1238 1239 - 1240: 6(int) Load 8(invocation) - 1241: 78(ptr) AccessChain 27(data) 51 38 - 1242: 20(ivec4) Load 1241 - 1243: 88(ivec3) VectorShuffle 1242 1242 0 1 2 - 1244: 88(ivec3) GroupNonUniformSMax 34 InclusiveScan 1243 - 1245: 71(ptr) AccessChain 27(data) 1240 38 30 - 1246: 19(int) CompositeExtract 1244 0 - Store 1245 1246 - 1247: 71(ptr) AccessChain 27(data) 1240 38 47 - 1248: 19(int) CompositeExtract 1244 1 - Store 1247 1248 - 1249: 71(ptr) AccessChain 27(data) 1240 38 61 - 1250: 19(int) CompositeExtract 1244 2 - Store 1249 1250 - 1251: 6(int) Load 8(invocation) - 1252: 78(ptr) AccessChain 27(data) 65 38 - 1253: 20(ivec4) Load 1252 - 1254: 20(ivec4) GroupNonUniformSMax 34 InclusiveScan 1253 - 1255: 78(ptr) AccessChain 27(data) 1251 38 - Store 1255 1254 - 1256: 6(int) Load 8(invocation) - 1257: 105(ptr) AccessChain 27(data) 29 51 30 - 1258: 6(int) Load 1257 - 1259: 6(int) GroupNonUniformUMax 34 InclusiveScan 1258 - 1260: 105(ptr) AccessChain 27(data) 1256 51 30 - Store 1260 1259 - 1261: 6(int) Load 8(invocation) - 1262: 112(ptr) AccessChain 27(data) 38 51 - 1263: 21(ivec4) Load 1262 - 1264: 111(ivec2) VectorShuffle 1263 1263 0 1 - 1265: 111(ivec2) GroupNonUniformUMax 34 InclusiveScan 1264 - 1266: 105(ptr) AccessChain 27(data) 1261 51 30 - 1267: 6(int) CompositeExtract 1265 0 - Store 1266 1267 - 1268: 105(ptr) AccessChain 27(data) 1261 51 47 - 1269: 6(int) CompositeExtract 1265 1 - Store 1268 1269 - 1270: 6(int) Load 8(invocation) - 1271: 112(ptr) AccessChain 27(data) 51 51 - 1272: 21(ivec4) Load 1271 - 1273: 122(ivec3) VectorShuffle 1272 1272 0 1 2 - 1274: 122(ivec3) GroupNonUniformUMax 34 InclusiveScan 1273 - 1275: 105(ptr) AccessChain 27(data) 1270 51 30 - 1276: 6(int) CompositeExtract 1274 0 - Store 1275 1276 - 1277: 105(ptr) AccessChain 27(data) 1270 51 47 - 1278: 6(int) CompositeExtract 1274 1 - Store 1277 1278 - 1279: 105(ptr) AccessChain 27(data) 1270 51 61 - 1280: 6(int) CompositeExtract 1274 2 - Store 1279 1280 - 1281: 6(int) Load 8(invocation) - 1282: 112(ptr) AccessChain 27(data) 65 51 - 1283: 21(ivec4) Load 1282 - 1284: 21(ivec4) GroupNonUniformUMax 34 InclusiveScan 1283 - 1285: 112(ptr) AccessChain 27(data) 1281 51 - Store 1285 1284 - 1286: 6(int) Load 8(invocation) - 1287: 139(ptr) AccessChain 27(data) 29 65 30 - 1288:22(float64_t) Load 1287 - 1289:22(float64_t) GroupNonUniformFMax 34 InclusiveScan 1288 - 1290: 139(ptr) AccessChain 27(data) 1286 65 30 - Store 1290 1289 - 1291: 6(int) Load 8(invocation) - 1292: 146(ptr) AccessChain 27(data) 38 65 - 1293: 23(f64vec4) Load 1292 - 1294:145(f64vec2) VectorShuffle 1293 1293 0 1 - 1295:145(f64vec2) GroupNonUniformFMax 34 InclusiveScan 1294 - 1296: 139(ptr) AccessChain 27(data) 1291 65 30 - 1297:22(float64_t) CompositeExtract 1295 0 - Store 1296 1297 - 1298: 139(ptr) AccessChain 27(data) 1291 65 47 - 1299:22(float64_t) CompositeExtract 1295 1 - Store 1298 1299 - 1300: 6(int) Load 8(invocation) - 1301: 146(ptr) AccessChain 27(data) 51 65 - 1302: 23(f64vec4) Load 1301 - 1303:156(f64vec3) VectorShuffle 1302 1302 0 1 2 - 1304:156(f64vec3) GroupNonUniformFMax 34 InclusiveScan 1303 - 1305: 139(ptr) AccessChain 27(data) 1300 65 30 - 1306:22(float64_t) CompositeExtract 1304 0 - Store 1305 1306 - 1307: 139(ptr) AccessChain 27(data) 1300 65 47 - 1308:22(float64_t) CompositeExtract 1304 1 - Store 1307 1308 - 1309: 139(ptr) AccessChain 27(data) 1300 65 61 - 1310:22(float64_t) CompositeExtract 1304 2 - Store 1309 1310 - 1311: 6(int) Load 8(invocation) - 1312: 146(ptr) AccessChain 27(data) 65 65 - 1313: 23(f64vec4) Load 1312 - 1314: 23(f64vec4) GroupNonUniformFMax 34 InclusiveScan 1313 - 1315: 146(ptr) AccessChain 27(data) 1311 65 - Store 1315 1314 - 1316: 6(int) Load 8(invocation) - 1317: 71(ptr) AccessChain 27(data) 29 38 30 - 1318: 19(int) Load 1317 - 1319: 19(int) GroupNonUniformBitwiseAnd 34 InclusiveScan 1318 - 1320: 71(ptr) AccessChain 27(data) 1316 38 30 - Store 1320 1319 - 1321: 6(int) Load 8(invocation) - 1322: 78(ptr) AccessChain 27(data) 38 38 - 1323: 20(ivec4) Load 1322 - 1324: 77(ivec2) VectorShuffle 1323 1323 0 1 - 1325: 77(ivec2) GroupNonUniformBitwiseAnd 34 InclusiveScan 1324 - 1326: 71(ptr) AccessChain 27(data) 1321 38 30 - 1327: 19(int) CompositeExtract 1325 0 - Store 1326 1327 - 1328: 71(ptr) AccessChain 27(data) 1321 38 47 - 1329: 19(int) CompositeExtract 1325 1 - Store 1328 1329 - 1330: 6(int) Load 8(invocation) - 1331: 78(ptr) AccessChain 27(data) 51 38 - 1332: 20(ivec4) Load 1331 - 1333: 88(ivec3) VectorShuffle 1332 1332 0 1 2 - 1334: 88(ivec3) GroupNonUniformBitwiseAnd 34 InclusiveScan 1333 - 1335: 71(ptr) AccessChain 27(data) 1330 38 30 - 1336: 19(int) CompositeExtract 1334 0 - Store 1335 1336 - 1337: 71(ptr) AccessChain 27(data) 1330 38 47 - 1338: 19(int) CompositeExtract 1334 1 - Store 1337 1338 - 1339: 71(ptr) AccessChain 27(data) 1330 38 61 - 1340: 19(int) CompositeExtract 1334 2 - Store 1339 1340 - 1341: 6(int) Load 8(invocation) - 1342: 78(ptr) AccessChain 27(data) 65 38 - 1343: 20(ivec4) Load 1342 - 1344: 20(ivec4) GroupNonUniformBitwiseAnd 34 InclusiveScan 1343 - 1345: 78(ptr) AccessChain 27(data) 1341 38 - Store 1345 1344 - 1346: 6(int) Load 8(invocation) - 1347: 105(ptr) AccessChain 27(data) 29 51 30 - 1348: 6(int) Load 1347 - 1349: 6(int) GroupNonUniformBitwiseAnd 34 InclusiveScan 1348 - 1350: 105(ptr) AccessChain 27(data) 1346 51 30 - Store 1350 1349 - 1351: 6(int) Load 8(invocation) - 1352: 112(ptr) AccessChain 27(data) 38 51 - 1353: 21(ivec4) Load 1352 - 1354: 111(ivec2) VectorShuffle 1353 1353 0 1 - 1355: 111(ivec2) GroupNonUniformBitwiseAnd 34 InclusiveScan 1354 - 1356: 105(ptr) AccessChain 27(data) 1351 51 30 - 1357: 6(int) CompositeExtract 1355 0 - Store 1356 1357 - 1358: 105(ptr) AccessChain 27(data) 1351 51 47 - 1359: 6(int) CompositeExtract 1355 1 - Store 1358 1359 - 1360: 6(int) Load 8(invocation) - 1361: 112(ptr) AccessChain 27(data) 51 51 - 1362: 21(ivec4) Load 1361 - 1363: 122(ivec3) VectorShuffle 1362 1362 0 1 2 - 1364: 122(ivec3) GroupNonUniformBitwiseAnd 34 InclusiveScan 1363 - 1365: 105(ptr) AccessChain 27(data) 1360 51 30 - 1366: 6(int) CompositeExtract 1364 0 - Store 1365 1366 - 1367: 105(ptr) AccessChain 27(data) 1360 51 47 - 1368: 6(int) CompositeExtract 1364 1 - Store 1367 1368 - 1369: 105(ptr) AccessChain 27(data) 1360 51 61 - 1370: 6(int) CompositeExtract 1364 2 - Store 1369 1370 - 1371: 6(int) Load 8(invocation) - 1372: 112(ptr) AccessChain 27(data) 65 51 - 1373: 21(ivec4) Load 1372 - 1374: 21(ivec4) GroupNonUniformBitwiseAnd 34 InclusiveScan 1373 - 1375: 112(ptr) AccessChain 27(data) 1371 51 - Store 1375 1374 - 1376: 6(int) Load 8(invocation) - 1377: 71(ptr) AccessChain 27(data) 29 38 30 - 1378: 19(int) Load 1377 - 1379: 595(bool) SLessThan 1378 29 - 1380: 595(bool) GroupNonUniformLogicalAnd 34 InclusiveScan 1379 - 1381: 19(int) Select 1380 38 29 - 1382: 71(ptr) AccessChain 27(data) 1376 38 30 - Store 1382 1381 - 1383: 6(int) Load 8(invocation) - 1384: 78(ptr) AccessChain 27(data) 38 38 - 1385: 20(ivec4) Load 1384 - 1386: 77(ivec2) VectorShuffle 1385 1385 0 1 - 1387: 605(bvec2) SLessThan 1386 604 - 1388: 605(bvec2) GroupNonUniformLogicalAnd 34 InclusiveScan 1387 - 1389: 77(ivec2) Select 1388 608 604 - 1390: 71(ptr) AccessChain 27(data) 1383 38 30 - 1391: 19(int) CompositeExtract 1389 0 - Store 1390 1391 - 1392: 71(ptr) AccessChain 27(data) 1383 38 47 - 1393: 19(int) CompositeExtract 1389 1 - Store 1392 1393 - 1394: 6(int) Load 8(invocation) - 1395: 78(ptr) AccessChain 27(data) 38 38 - 1396: 20(ivec4) Load 1395 - 1397: 88(ivec3) VectorShuffle 1396 1396 0 1 2 - 1398: 619(bvec3) SLessThan 1397 618 - 1399: 619(bvec3) GroupNonUniformLogicalAnd 34 InclusiveScan 1398 - 1400: 88(ivec3) Select 1399 622 618 - 1401: 71(ptr) AccessChain 27(data) 1394 38 30 - 1402: 19(int) CompositeExtract 1400 0 - Store 1401 1402 - 1403: 71(ptr) AccessChain 27(data) 1394 38 47 - 1404: 19(int) CompositeExtract 1400 1 - Store 1403 1404 - 1405: 71(ptr) AccessChain 27(data) 1394 38 61 - 1406: 19(int) CompositeExtract 1400 2 - Store 1405 1406 - 1407: 6(int) Load 8(invocation) - 1408: 78(ptr) AccessChain 27(data) 38 38 - 1409: 20(ivec4) Load 1408 - 1410: 634(bvec4) SLessThan 1409 633 - 1411: 634(bvec4) GroupNonUniformLogicalAnd 34 InclusiveScan 1410 - 1412: 20(ivec4) Select 1411 637 633 - 1413: 78(ptr) AccessChain 27(data) 1407 38 - Store 1413 1412 - 1414: 6(int) Load 8(invocation) - 1415: 71(ptr) AccessChain 27(data) 29 38 30 - 1416: 19(int) Load 1415 - 1417: 19(int) GroupNonUniformBitwiseOr 34 InclusiveScan 1416 - 1418: 71(ptr) AccessChain 27(data) 1414 38 30 - Store 1418 1417 - 1419: 6(int) Load 8(invocation) - 1420: 78(ptr) AccessChain 27(data) 38 38 - 1421: 20(ivec4) Load 1420 - 1422: 77(ivec2) VectorShuffle 1421 1421 0 1 - 1423: 77(ivec2) GroupNonUniformBitwiseOr 34 InclusiveScan 1422 - 1424: 71(ptr) AccessChain 27(data) 1419 38 30 - 1425: 19(int) CompositeExtract 1423 0 - Store 1424 1425 - 1426: 71(ptr) AccessChain 27(data) 1419 38 47 - 1427: 19(int) CompositeExtract 1423 1 - Store 1426 1427 - 1428: 6(int) Load 8(invocation) - 1429: 78(ptr) AccessChain 27(data) 51 38 - 1430: 20(ivec4) Load 1429 - 1431: 88(ivec3) VectorShuffle 1430 1430 0 1 2 - 1432: 88(ivec3) GroupNonUniformBitwiseOr 34 InclusiveScan 1431 - 1433: 71(ptr) AccessChain 27(data) 1428 38 30 - 1434: 19(int) CompositeExtract 1432 0 - Store 1433 1434 - 1435: 71(ptr) AccessChain 27(data) 1428 38 47 - 1436: 19(int) CompositeExtract 1432 1 - Store 1435 1436 - 1437: 71(ptr) AccessChain 27(data) 1428 38 61 - 1438: 19(int) CompositeExtract 1432 2 - Store 1437 1438 - 1439: 6(int) Load 8(invocation) - 1440: 78(ptr) AccessChain 27(data) 65 38 - 1441: 20(ivec4) Load 1440 - 1442: 20(ivec4) GroupNonUniformBitwiseOr 34 InclusiveScan 1441 - 1443: 78(ptr) AccessChain 27(data) 1439 38 - Store 1443 1442 - 1444: 6(int) Load 8(invocation) - 1445: 105(ptr) AccessChain 27(data) 29 51 30 - 1446: 6(int) Load 1445 - 1447: 6(int) GroupNonUniformBitwiseOr 34 InclusiveScan 1446 - 1448: 105(ptr) AccessChain 27(data) 1444 51 30 - Store 1448 1447 - 1449: 6(int) Load 8(invocation) - 1450: 112(ptr) AccessChain 27(data) 38 51 - 1451: 21(ivec4) Load 1450 - 1452: 111(ivec2) VectorShuffle 1451 1451 0 1 - 1453: 111(ivec2) GroupNonUniformBitwiseOr 34 InclusiveScan 1452 - 1454: 105(ptr) AccessChain 27(data) 1449 51 30 - 1455: 6(int) CompositeExtract 1453 0 - Store 1454 1455 - 1456: 105(ptr) AccessChain 27(data) 1449 51 47 - 1457: 6(int) CompositeExtract 1453 1 - Store 1456 1457 - 1458: 6(int) Load 8(invocation) - 1459: 112(ptr) AccessChain 27(data) 51 51 - 1460: 21(ivec4) Load 1459 - 1461: 122(ivec3) VectorShuffle 1460 1460 0 1 2 - 1462: 122(ivec3) GroupNonUniformBitwiseOr 34 InclusiveScan 1461 - 1463: 105(ptr) AccessChain 27(data) 1458 51 30 - 1464: 6(int) CompositeExtract 1462 0 - Store 1463 1464 - 1465: 105(ptr) AccessChain 27(data) 1458 51 47 - 1466: 6(int) CompositeExtract 1462 1 - Store 1465 1466 - 1467: 105(ptr) AccessChain 27(data) 1458 51 61 - 1468: 6(int) CompositeExtract 1462 2 - Store 1467 1468 - 1469: 6(int) Load 8(invocation) - 1470: 112(ptr) AccessChain 27(data) 65 51 - 1471: 21(ivec4) Load 1470 - 1472: 21(ivec4) GroupNonUniformBitwiseOr 34 InclusiveScan 1471 - 1473: 112(ptr) AccessChain 27(data) 1469 51 - Store 1473 1472 - 1474: 6(int) Load 8(invocation) - 1475: 71(ptr) AccessChain 27(data) 29 38 30 - 1476: 19(int) Load 1475 - 1477: 595(bool) SLessThan 1476 29 - 1478: 595(bool) GroupNonUniformLogicalOr 34 InclusiveScan 1477 - 1479: 19(int) Select 1478 38 29 - 1480: 71(ptr) AccessChain 27(data) 1474 38 30 - Store 1480 1479 - 1481: 6(int) Load 8(invocation) - 1482: 78(ptr) AccessChain 27(data) 38 38 - 1483: 20(ivec4) Load 1482 - 1484: 77(ivec2) VectorShuffle 1483 1483 0 1 - 1485: 605(bvec2) SLessThan 1484 604 - 1486: 605(bvec2) GroupNonUniformLogicalOr 34 InclusiveScan 1485 - 1487: 77(ivec2) Select 1486 608 604 - 1488: 71(ptr) AccessChain 27(data) 1481 38 30 - 1489: 19(int) CompositeExtract 1487 0 - Store 1488 1489 - 1490: 71(ptr) AccessChain 27(data) 1481 38 47 - 1491: 19(int) CompositeExtract 1487 1 - Store 1490 1491 - 1492: 6(int) Load 8(invocation) - 1493: 78(ptr) AccessChain 27(data) 38 38 - 1494: 20(ivec4) Load 1493 - 1495: 88(ivec3) VectorShuffle 1494 1494 0 1 2 - 1496: 619(bvec3) SLessThan 1495 618 - 1497: 619(bvec3) GroupNonUniformLogicalOr 34 InclusiveScan 1496 - 1498: 88(ivec3) Select 1497 622 618 - 1499: 71(ptr) AccessChain 27(data) 1492 38 30 - 1500: 19(int) CompositeExtract 1498 0 - Store 1499 1500 - 1501: 71(ptr) AccessChain 27(data) 1492 38 47 - 1502: 19(int) CompositeExtract 1498 1 - Store 1501 1502 - 1503: 71(ptr) AccessChain 27(data) 1492 38 61 - 1504: 19(int) CompositeExtract 1498 2 - Store 1503 1504 - 1505: 6(int) Load 8(invocation) - 1506: 78(ptr) AccessChain 27(data) 38 38 - 1507: 20(ivec4) Load 1506 - 1508: 634(bvec4) SLessThan 1507 633 - 1509: 634(bvec4) GroupNonUniformLogicalOr 34 InclusiveScan 1508 - 1510: 20(ivec4) Select 1509 637 633 - 1511: 78(ptr) AccessChain 27(data) 1505 38 - Store 1511 1510 - 1512: 6(int) Load 8(invocation) - 1513: 71(ptr) AccessChain 27(data) 29 38 30 - 1514: 19(int) Load 1513 - 1515: 19(int) GroupNonUniformBitwiseXor 34 InclusiveScan 1514 - 1516: 71(ptr) AccessChain 27(data) 1512 38 30 - Store 1516 1515 - 1517: 6(int) Load 8(invocation) - 1518: 78(ptr) AccessChain 27(data) 38 38 - 1519: 20(ivec4) Load 1518 - 1520: 77(ivec2) VectorShuffle 1519 1519 0 1 - 1521: 77(ivec2) GroupNonUniformBitwiseXor 34 InclusiveScan 1520 - 1522: 71(ptr) AccessChain 27(data) 1517 38 30 - 1523: 19(int) CompositeExtract 1521 0 - Store 1522 1523 - 1524: 71(ptr) AccessChain 27(data) 1517 38 47 - 1525: 19(int) CompositeExtract 1521 1 - Store 1524 1525 - 1526: 6(int) Load 8(invocation) - 1527: 78(ptr) AccessChain 27(data) 51 38 - 1528: 20(ivec4) Load 1527 - 1529: 88(ivec3) VectorShuffle 1528 1528 0 1 2 - 1530: 88(ivec3) GroupNonUniformBitwiseXor 34 InclusiveScan 1529 - 1531: 71(ptr) AccessChain 27(data) 1526 38 30 - 1532: 19(int) CompositeExtract 1530 0 - Store 1531 1532 - 1533: 71(ptr) AccessChain 27(data) 1526 38 47 - 1534: 19(int) CompositeExtract 1530 1 - Store 1533 1534 - 1535: 71(ptr) AccessChain 27(data) 1526 38 61 - 1536: 19(int) CompositeExtract 1530 2 - Store 1535 1536 - 1537: 6(int) Load 8(invocation) - 1538: 78(ptr) AccessChain 27(data) 65 38 - 1539: 20(ivec4) Load 1538 - 1540: 20(ivec4) GroupNonUniformBitwiseXor 34 InclusiveScan 1539 - 1541: 78(ptr) AccessChain 27(data) 1537 38 - Store 1541 1540 - 1542: 6(int) Load 8(invocation) - 1543: 105(ptr) AccessChain 27(data) 29 51 30 - 1544: 6(int) Load 1543 - 1545: 6(int) GroupNonUniformBitwiseXor 34 InclusiveScan 1544 - 1546: 105(ptr) AccessChain 27(data) 1542 51 30 - Store 1546 1545 - 1547: 6(int) Load 8(invocation) - 1548: 112(ptr) AccessChain 27(data) 38 51 - 1549: 21(ivec4) Load 1548 - 1550: 111(ivec2) VectorShuffle 1549 1549 0 1 - 1551: 111(ivec2) GroupNonUniformBitwiseXor 34 InclusiveScan 1550 - 1552: 105(ptr) AccessChain 27(data) 1547 51 30 - 1553: 6(int) CompositeExtract 1551 0 - Store 1552 1553 - 1554: 105(ptr) AccessChain 27(data) 1547 51 47 - 1555: 6(int) CompositeExtract 1551 1 - Store 1554 1555 - 1556: 6(int) Load 8(invocation) - 1557: 112(ptr) AccessChain 27(data) 51 51 - 1558: 21(ivec4) Load 1557 - 1559: 122(ivec3) VectorShuffle 1558 1558 0 1 2 - 1560: 122(ivec3) GroupNonUniformBitwiseXor 34 InclusiveScan 1559 - 1561: 105(ptr) AccessChain 27(data) 1556 51 30 - 1562: 6(int) CompositeExtract 1560 0 - Store 1561 1562 - 1563: 105(ptr) AccessChain 27(data) 1556 51 47 - 1564: 6(int) CompositeExtract 1560 1 - Store 1563 1564 - 1565: 105(ptr) AccessChain 27(data) 1556 51 61 - 1566: 6(int) CompositeExtract 1560 2 - Store 1565 1566 - 1567: 6(int) Load 8(invocation) - 1568: 112(ptr) AccessChain 27(data) 65 51 - 1569: 21(ivec4) Load 1568 - 1570: 21(ivec4) GroupNonUniformBitwiseXor 34 InclusiveScan 1569 - 1571: 112(ptr) AccessChain 27(data) 1567 51 - Store 1571 1570 - 1572: 6(int) Load 8(invocation) - 1573: 71(ptr) AccessChain 27(data) 29 38 30 - 1574: 19(int) Load 1573 - 1575: 595(bool) SLessThan 1574 29 - 1576: 595(bool) GroupNonUniformLogicalXor 34 InclusiveScan 1575 - 1577: 19(int) Select 1576 38 29 - 1578: 71(ptr) AccessChain 27(data) 1572 38 30 - Store 1578 1577 - 1579: 6(int) Load 8(invocation) - 1580: 78(ptr) AccessChain 27(data) 38 38 - 1581: 20(ivec4) Load 1580 - 1582: 77(ivec2) VectorShuffle 1581 1581 0 1 - 1583: 605(bvec2) SLessThan 1582 604 - 1584: 605(bvec2) GroupNonUniformLogicalXor 34 InclusiveScan 1583 - 1585: 77(ivec2) Select 1584 608 604 - 1586: 71(ptr) AccessChain 27(data) 1579 38 30 - 1587: 19(int) CompositeExtract 1585 0 - Store 1586 1587 - 1588: 71(ptr) AccessChain 27(data) 1579 38 47 - 1589: 19(int) CompositeExtract 1585 1 - Store 1588 1589 - 1590: 6(int) Load 8(invocation) - 1591: 78(ptr) AccessChain 27(data) 38 38 - 1592: 20(ivec4) Load 1591 - 1593: 88(ivec3) VectorShuffle 1592 1592 0 1 2 - 1594: 619(bvec3) SLessThan 1593 618 - 1595: 619(bvec3) GroupNonUniformLogicalXor 34 InclusiveScan 1594 - 1596: 88(ivec3) Select 1595 622 618 - 1597: 71(ptr) AccessChain 27(data) 1590 38 30 - 1598: 19(int) CompositeExtract 1596 0 - Store 1597 1598 - 1599: 71(ptr) AccessChain 27(data) 1590 38 47 - 1600: 19(int) CompositeExtract 1596 1 - Store 1599 1600 - 1601: 71(ptr) AccessChain 27(data) 1590 38 61 - 1602: 19(int) CompositeExtract 1596 2 - Store 1601 1602 - 1603: 6(int) Load 8(invocation) - 1604: 78(ptr) AccessChain 27(data) 38 38 - 1605: 20(ivec4) Load 1604 - 1606: 634(bvec4) SLessThan 1605 633 - 1607: 634(bvec4) GroupNonUniformLogicalXor 34 InclusiveScan 1606 - 1608: 20(ivec4) Select 1607 637 633 - 1609: 78(ptr) AccessChain 27(data) 1603 38 - Store 1609 1608 - 1610: 6(int) Load 8(invocation) - 1611: 31(ptr) AccessChain 27(data) 29 29 30 - 1612: 17(float) Load 1611 - 1613: 17(float) GroupNonUniformFAdd 34 ExclusiveScan 1612 - 1614: 31(ptr) AccessChain 27(data) 1610 29 30 - Store 1614 1613 - 1615: 6(int) Load 8(invocation) - 1616: 40(ptr) AccessChain 27(data) 38 29 - 1617: 18(fvec4) Load 1616 - 1618: 39(fvec2) VectorShuffle 1617 1617 0 1 - 1619: 39(fvec2) GroupNonUniformFAdd 34 ExclusiveScan 1618 - 1620: 31(ptr) AccessChain 27(data) 1615 29 30 - 1621: 17(float) CompositeExtract 1619 0 - Store 1620 1621 - 1622: 31(ptr) AccessChain 27(data) 1615 29 47 - 1623: 17(float) CompositeExtract 1619 1 - Store 1622 1623 - 1624: 6(int) Load 8(invocation) - 1625: 40(ptr) AccessChain 27(data) 51 29 - 1626: 18(fvec4) Load 1625 - 1627: 52(fvec3) VectorShuffle 1626 1626 0 1 2 - 1628: 52(fvec3) GroupNonUniformFAdd 34 ExclusiveScan 1627 - 1629: 31(ptr) AccessChain 27(data) 1624 29 30 - 1630: 17(float) CompositeExtract 1628 0 - Store 1629 1630 - 1631: 31(ptr) AccessChain 27(data) 1624 29 47 - 1632: 17(float) CompositeExtract 1628 1 - Store 1631 1632 - 1633: 31(ptr) AccessChain 27(data) 1624 29 61 - 1634: 17(float) CompositeExtract 1628 2 - Store 1633 1634 - 1635: 6(int) Load 8(invocation) - 1636: 40(ptr) AccessChain 27(data) 65 29 - 1637: 18(fvec4) Load 1636 - 1638: 18(fvec4) GroupNonUniformFAdd 34 ExclusiveScan 1637 - 1639: 40(ptr) AccessChain 27(data) 1635 29 - Store 1639 1638 - 1640: 6(int) Load 8(invocation) - 1641: 71(ptr) AccessChain 27(data) 29 38 30 - 1642: 19(int) Load 1641 - 1643: 19(int) GroupNonUniformIAdd 34 ExclusiveScan 1642 - 1644: 71(ptr) AccessChain 27(data) 1640 38 30 - Store 1644 1643 - 1645: 6(int) Load 8(invocation) - 1646: 78(ptr) AccessChain 27(data) 38 38 - 1647: 20(ivec4) Load 1646 - 1648: 77(ivec2) VectorShuffle 1647 1647 0 1 - 1649: 77(ivec2) GroupNonUniformIAdd 34 ExclusiveScan 1648 - 1650: 71(ptr) AccessChain 27(data) 1645 38 30 - 1651: 19(int) CompositeExtract 1649 0 - Store 1650 1651 - 1652: 71(ptr) AccessChain 27(data) 1645 38 47 - 1653: 19(int) CompositeExtract 1649 1 - Store 1652 1653 - 1654: 6(int) Load 8(invocation) - 1655: 78(ptr) AccessChain 27(data) 51 38 - 1656: 20(ivec4) Load 1655 - 1657: 88(ivec3) VectorShuffle 1656 1656 0 1 2 - 1658: 88(ivec3) GroupNonUniformIAdd 34 ExclusiveScan 1657 - 1659: 71(ptr) AccessChain 27(data) 1654 38 30 - 1660: 19(int) CompositeExtract 1658 0 - Store 1659 1660 - 1661: 71(ptr) AccessChain 27(data) 1654 38 47 - 1662: 19(int) CompositeExtract 1658 1 - Store 1661 1662 - 1663: 71(ptr) AccessChain 27(data) 1654 38 61 - 1664: 19(int) CompositeExtract 1658 2 - Store 1663 1664 - 1665: 6(int) Load 8(invocation) - 1666: 78(ptr) AccessChain 27(data) 65 38 - 1667: 20(ivec4) Load 1666 - 1668: 20(ivec4) GroupNonUniformIAdd 34 ExclusiveScan 1667 - 1669: 78(ptr) AccessChain 27(data) 1665 38 - Store 1669 1668 - 1670: 6(int) Load 8(invocation) - 1671: 105(ptr) AccessChain 27(data) 29 51 30 - 1672: 6(int) Load 1671 - 1673: 6(int) GroupNonUniformIAdd 34 ExclusiveScan 1672 - 1674: 105(ptr) AccessChain 27(data) 1670 51 30 - Store 1674 1673 - 1675: 6(int) Load 8(invocation) - 1676: 112(ptr) AccessChain 27(data) 38 51 - 1677: 21(ivec4) Load 1676 - 1678: 111(ivec2) VectorShuffle 1677 1677 0 1 - 1679: 111(ivec2) GroupNonUniformIAdd 34 ExclusiveScan 1678 - 1680: 105(ptr) AccessChain 27(data) 1675 51 30 - 1681: 6(int) CompositeExtract 1679 0 - Store 1680 1681 - 1682: 105(ptr) AccessChain 27(data) 1675 51 47 - 1683: 6(int) CompositeExtract 1679 1 - Store 1682 1683 - 1684: 6(int) Load 8(invocation) - 1685: 112(ptr) AccessChain 27(data) 51 51 - 1686: 21(ivec4) Load 1685 - 1687: 122(ivec3) VectorShuffle 1686 1686 0 1 2 - 1688: 122(ivec3) GroupNonUniformIAdd 34 ExclusiveScan 1687 - 1689: 105(ptr) AccessChain 27(data) 1684 51 30 - 1690: 6(int) CompositeExtract 1688 0 - Store 1689 1690 - 1691: 105(ptr) AccessChain 27(data) 1684 51 47 - 1692: 6(int) CompositeExtract 1688 1 - Store 1691 1692 - 1693: 105(ptr) AccessChain 27(data) 1684 51 61 - 1694: 6(int) CompositeExtract 1688 2 - Store 1693 1694 - 1695: 6(int) Load 8(invocation) - 1696: 112(ptr) AccessChain 27(data) 65 51 - 1697: 21(ivec4) Load 1696 - 1698: 21(ivec4) GroupNonUniformIAdd 34 ExclusiveScan 1697 - 1699: 112(ptr) AccessChain 27(data) 1695 51 - Store 1699 1698 - 1700: 6(int) Load 8(invocation) - 1701: 139(ptr) AccessChain 27(data) 29 65 30 - 1702:22(float64_t) Load 1701 - 1703:22(float64_t) GroupNonUniformFAdd 34 ExclusiveScan 1702 - 1704: 139(ptr) AccessChain 27(data) 1700 65 30 - Store 1704 1703 - 1705: 6(int) Load 8(invocation) - 1706: 146(ptr) AccessChain 27(data) 38 65 - 1707: 23(f64vec4) Load 1706 - 1708:145(f64vec2) VectorShuffle 1707 1707 0 1 - 1709:145(f64vec2) GroupNonUniformFAdd 34 ExclusiveScan 1708 - 1710: 139(ptr) AccessChain 27(data) 1705 65 30 - 1711:22(float64_t) CompositeExtract 1709 0 - Store 1710 1711 - 1712: 139(ptr) AccessChain 27(data) 1705 65 47 - 1713:22(float64_t) CompositeExtract 1709 1 - Store 1712 1713 - 1714: 6(int) Load 8(invocation) - 1715: 146(ptr) AccessChain 27(data) 51 65 - 1716: 23(f64vec4) Load 1715 - 1717:156(f64vec3) VectorShuffle 1716 1716 0 1 2 - 1718:156(f64vec3) GroupNonUniformFAdd 34 ExclusiveScan 1717 - 1719: 139(ptr) AccessChain 27(data) 1714 65 30 - 1720:22(float64_t) CompositeExtract 1718 0 - Store 1719 1720 - 1721: 139(ptr) AccessChain 27(data) 1714 65 47 - 1722:22(float64_t) CompositeExtract 1718 1 - Store 1721 1722 - 1723: 139(ptr) AccessChain 27(data) 1714 65 61 - 1724:22(float64_t) CompositeExtract 1718 2 - Store 1723 1724 - 1725: 6(int) Load 8(invocation) - 1726: 146(ptr) AccessChain 27(data) 65 65 - 1727: 23(f64vec4) Load 1726 - 1728: 23(f64vec4) GroupNonUniformFAdd 34 ExclusiveScan 1727 - 1729: 146(ptr) AccessChain 27(data) 1725 65 - Store 1729 1728 - 1730: 6(int) Load 8(invocation) - 1731: 31(ptr) AccessChain 27(data) 29 29 30 - 1732: 17(float) Load 1731 - 1733: 17(float) GroupNonUniformFMul 34 ExclusiveScan 1732 - 1734: 31(ptr) AccessChain 27(data) 1730 29 30 - Store 1734 1733 - 1735: 6(int) Load 8(invocation) - 1736: 40(ptr) AccessChain 27(data) 38 29 - 1737: 18(fvec4) Load 1736 - 1738: 39(fvec2) VectorShuffle 1737 1737 0 1 - 1739: 39(fvec2) GroupNonUniformFMul 34 ExclusiveScan 1738 - 1740: 31(ptr) AccessChain 27(data) 1735 29 30 - 1741: 17(float) CompositeExtract 1739 0 - Store 1740 1741 - 1742: 31(ptr) AccessChain 27(data) 1735 29 47 - 1743: 17(float) CompositeExtract 1739 1 - Store 1742 1743 - 1744: 6(int) Load 8(invocation) - 1745: 40(ptr) AccessChain 27(data) 51 29 - 1746: 18(fvec4) Load 1745 - 1747: 52(fvec3) VectorShuffle 1746 1746 0 1 2 - 1748: 52(fvec3) GroupNonUniformFMul 34 ExclusiveScan 1747 - 1749: 31(ptr) AccessChain 27(data) 1744 29 30 - 1750: 17(float) CompositeExtract 1748 0 - Store 1749 1750 - 1751: 31(ptr) AccessChain 27(data) 1744 29 47 - 1752: 17(float) CompositeExtract 1748 1 - Store 1751 1752 - 1753: 31(ptr) AccessChain 27(data) 1744 29 61 - 1754: 17(float) CompositeExtract 1748 2 - Store 1753 1754 - 1755: 6(int) Load 8(invocation) - 1756: 40(ptr) AccessChain 27(data) 65 29 - 1757: 18(fvec4) Load 1756 - 1758: 18(fvec4) GroupNonUniformFMul 34 ExclusiveScan 1757 - 1759: 40(ptr) AccessChain 27(data) 1755 29 - Store 1759 1758 - 1760: 6(int) Load 8(invocation) - 1761: 71(ptr) AccessChain 27(data) 29 38 30 - 1762: 19(int) Load 1761 - 1763: 19(int) GroupNonUniformIMul 34 ExclusiveScan 1762 - 1764: 71(ptr) AccessChain 27(data) 1760 38 30 - Store 1764 1763 - 1765: 6(int) Load 8(invocation) - 1766: 78(ptr) AccessChain 27(data) 38 38 - 1767: 20(ivec4) Load 1766 - 1768: 77(ivec2) VectorShuffle 1767 1767 0 1 - 1769: 77(ivec2) GroupNonUniformIMul 34 ExclusiveScan 1768 - 1770: 71(ptr) AccessChain 27(data) 1765 38 30 - 1771: 19(int) CompositeExtract 1769 0 - Store 1770 1771 - 1772: 71(ptr) AccessChain 27(data) 1765 38 47 - 1773: 19(int) CompositeExtract 1769 1 - Store 1772 1773 - 1774: 6(int) Load 8(invocation) - 1775: 78(ptr) AccessChain 27(data) 51 38 - 1776: 20(ivec4) Load 1775 - 1777: 88(ivec3) VectorShuffle 1776 1776 0 1 2 - 1778: 88(ivec3) GroupNonUniformIMul 34 ExclusiveScan 1777 - 1779: 71(ptr) AccessChain 27(data) 1774 38 30 - 1780: 19(int) CompositeExtract 1778 0 - Store 1779 1780 - 1781: 71(ptr) AccessChain 27(data) 1774 38 47 - 1782: 19(int) CompositeExtract 1778 1 - Store 1781 1782 - 1783: 71(ptr) AccessChain 27(data) 1774 38 61 - 1784: 19(int) CompositeExtract 1778 2 - Store 1783 1784 - 1785: 6(int) Load 8(invocation) - 1786: 78(ptr) AccessChain 27(data) 65 38 - 1787: 20(ivec4) Load 1786 - 1788: 20(ivec4) GroupNonUniformIMul 34 ExclusiveScan 1787 - 1789: 78(ptr) AccessChain 27(data) 1785 38 - Store 1789 1788 - 1790: 6(int) Load 8(invocation) - 1791: 105(ptr) AccessChain 27(data) 29 51 30 - 1792: 6(int) Load 1791 - 1793: 6(int) GroupNonUniformIMul 34 ExclusiveScan 1792 - 1794: 105(ptr) AccessChain 27(data) 1790 51 30 - Store 1794 1793 - 1795: 6(int) Load 8(invocation) - 1796: 112(ptr) AccessChain 27(data) 38 51 - 1797: 21(ivec4) Load 1796 - 1798: 111(ivec2) VectorShuffle 1797 1797 0 1 - 1799: 111(ivec2) GroupNonUniformIMul 34 ExclusiveScan 1798 - 1800: 105(ptr) AccessChain 27(data) 1795 51 30 - 1801: 6(int) CompositeExtract 1799 0 - Store 1800 1801 - 1802: 105(ptr) AccessChain 27(data) 1795 51 47 - 1803: 6(int) CompositeExtract 1799 1 - Store 1802 1803 - 1804: 6(int) Load 8(invocation) - 1805: 112(ptr) AccessChain 27(data) 51 51 - 1806: 21(ivec4) Load 1805 - 1807: 122(ivec3) VectorShuffle 1806 1806 0 1 2 - 1808: 122(ivec3) GroupNonUniformIMul 34 ExclusiveScan 1807 - 1809: 105(ptr) AccessChain 27(data) 1804 51 30 - 1810: 6(int) CompositeExtract 1808 0 - Store 1809 1810 - 1811: 105(ptr) AccessChain 27(data) 1804 51 47 - 1812: 6(int) CompositeExtract 1808 1 - Store 1811 1812 - 1813: 105(ptr) AccessChain 27(data) 1804 51 61 - 1814: 6(int) CompositeExtract 1808 2 - Store 1813 1814 - 1815: 6(int) Load 8(invocation) - 1816: 112(ptr) AccessChain 27(data) 65 51 - 1817: 21(ivec4) Load 1816 - 1818: 21(ivec4) GroupNonUniformIMul 34 ExclusiveScan 1817 - 1819: 112(ptr) AccessChain 27(data) 1815 51 - Store 1819 1818 - 1820: 6(int) Load 8(invocation) - 1821: 139(ptr) AccessChain 27(data) 29 65 30 - 1822:22(float64_t) Load 1821 - 1823:22(float64_t) GroupNonUniformFMul 34 ExclusiveScan 1822 - 1824: 139(ptr) AccessChain 27(data) 1820 65 30 - Store 1824 1823 - 1825: 6(int) Load 8(invocation) - 1826: 146(ptr) AccessChain 27(data) 38 65 - 1827: 23(f64vec4) Load 1826 - 1828:145(f64vec2) VectorShuffle 1827 1827 0 1 - 1829:145(f64vec2) GroupNonUniformFMul 34 ExclusiveScan 1828 - 1830: 139(ptr) AccessChain 27(data) 1825 65 30 - 1831:22(float64_t) CompositeExtract 1829 0 - Store 1830 1831 - 1832: 139(ptr) AccessChain 27(data) 1825 65 47 - 1833:22(float64_t) CompositeExtract 1829 1 - Store 1832 1833 - 1834: 6(int) Load 8(invocation) - 1835: 146(ptr) AccessChain 27(data) 51 65 - 1836: 23(f64vec4) Load 1835 - 1837:156(f64vec3) VectorShuffle 1836 1836 0 1 2 - 1838:156(f64vec3) GroupNonUniformFMul 34 ExclusiveScan 1837 - 1839: 139(ptr) AccessChain 27(data) 1834 65 30 - 1840:22(float64_t) CompositeExtract 1838 0 - Store 1839 1840 - 1841: 139(ptr) AccessChain 27(data) 1834 65 47 - 1842:22(float64_t) CompositeExtract 1838 1 - Store 1841 1842 - 1843: 139(ptr) AccessChain 27(data) 1834 65 61 - 1844:22(float64_t) CompositeExtract 1838 2 - Store 1843 1844 - 1845: 6(int) Load 8(invocation) - 1846: 146(ptr) AccessChain 27(data) 65 65 - 1847: 23(f64vec4) Load 1846 - 1848: 23(f64vec4) GroupNonUniformFMul 34 ExclusiveScan 1847 - 1849: 146(ptr) AccessChain 27(data) 1845 65 - Store 1849 1848 - 1850: 6(int) Load 8(invocation) - 1851: 31(ptr) AccessChain 27(data) 29 29 30 - 1852: 17(float) Load 1851 - 1853: 17(float) GroupNonUniformFMin 34 ExclusiveScan 1852 - 1854: 31(ptr) AccessChain 27(data) 1850 29 30 - Store 1854 1853 - 1855: 6(int) Load 8(invocation) - 1856: 40(ptr) AccessChain 27(data) 38 29 - 1857: 18(fvec4) Load 1856 - 1858: 39(fvec2) VectorShuffle 1857 1857 0 1 - 1859: 39(fvec2) GroupNonUniformFMin 34 ExclusiveScan 1858 - 1860: 31(ptr) AccessChain 27(data) 1855 29 30 - 1861: 17(float) CompositeExtract 1859 0 - Store 1860 1861 - 1862: 31(ptr) AccessChain 27(data) 1855 29 47 - 1863: 17(float) CompositeExtract 1859 1 - Store 1862 1863 - 1864: 6(int) Load 8(invocation) - 1865: 40(ptr) AccessChain 27(data) 51 29 - 1866: 18(fvec4) Load 1865 - 1867: 52(fvec3) VectorShuffle 1866 1866 0 1 2 - 1868: 52(fvec3) GroupNonUniformFMin 34 ExclusiveScan 1867 - 1869: 31(ptr) AccessChain 27(data) 1864 29 30 - 1870: 17(float) CompositeExtract 1868 0 - Store 1869 1870 - 1871: 31(ptr) AccessChain 27(data) 1864 29 47 - 1872: 17(float) CompositeExtract 1868 1 - Store 1871 1872 - 1873: 31(ptr) AccessChain 27(data) 1864 29 61 - 1874: 17(float) CompositeExtract 1868 2 - Store 1873 1874 - 1875: 6(int) Load 8(invocation) - 1876: 40(ptr) AccessChain 27(data) 65 29 - 1877: 18(fvec4) Load 1876 - 1878: 18(fvec4) GroupNonUniformFMin 34 ExclusiveScan 1877 - 1879: 40(ptr) AccessChain 27(data) 1875 29 - Store 1879 1878 - 1880: 6(int) Load 8(invocation) - 1881: 71(ptr) AccessChain 27(data) 29 38 30 - 1882: 19(int) Load 1881 - 1883: 19(int) GroupNonUniformSMin 34 ExclusiveScan 1882 - 1884: 71(ptr) AccessChain 27(data) 1880 38 30 - Store 1884 1883 - 1885: 6(int) Load 8(invocation) - 1886: 78(ptr) AccessChain 27(data) 38 38 - 1887: 20(ivec4) Load 1886 - 1888: 77(ivec2) VectorShuffle 1887 1887 0 1 - 1889: 77(ivec2) GroupNonUniformSMin 34 ExclusiveScan 1888 - 1890: 71(ptr) AccessChain 27(data) 1885 38 30 - 1891: 19(int) CompositeExtract 1889 0 - Store 1890 1891 - 1892: 71(ptr) AccessChain 27(data) 1885 38 47 - 1893: 19(int) CompositeExtract 1889 1 - Store 1892 1893 - 1894: 6(int) Load 8(invocation) - 1895: 78(ptr) AccessChain 27(data) 51 38 - 1896: 20(ivec4) Load 1895 - 1897: 88(ivec3) VectorShuffle 1896 1896 0 1 2 - 1898: 88(ivec3) GroupNonUniformSMin 34 ExclusiveScan 1897 - 1899: 71(ptr) AccessChain 27(data) 1894 38 30 - 1900: 19(int) CompositeExtract 1898 0 - Store 1899 1900 - 1901: 71(ptr) AccessChain 27(data) 1894 38 47 - 1902: 19(int) CompositeExtract 1898 1 - Store 1901 1902 - 1903: 71(ptr) AccessChain 27(data) 1894 38 61 - 1904: 19(int) CompositeExtract 1898 2 - Store 1903 1904 - 1905: 6(int) Load 8(invocation) - 1906: 78(ptr) AccessChain 27(data) 65 38 - 1907: 20(ivec4) Load 1906 - 1908: 20(ivec4) GroupNonUniformSMin 34 ExclusiveScan 1907 - 1909: 78(ptr) AccessChain 27(data) 1905 38 - Store 1909 1908 - 1910: 6(int) Load 8(invocation) - 1911: 105(ptr) AccessChain 27(data) 29 51 30 - 1912: 6(int) Load 1911 - 1913: 6(int) GroupNonUniformUMin 34 ExclusiveScan 1912 - 1914: 105(ptr) AccessChain 27(data) 1910 51 30 - Store 1914 1913 - 1915: 6(int) Load 8(invocation) - 1916: 112(ptr) AccessChain 27(data) 38 51 - 1917: 21(ivec4) Load 1916 - 1918: 111(ivec2) VectorShuffle 1917 1917 0 1 - 1919: 111(ivec2) GroupNonUniformUMin 34 ExclusiveScan 1918 - 1920: 105(ptr) AccessChain 27(data) 1915 51 30 - 1921: 6(int) CompositeExtract 1919 0 - Store 1920 1921 - 1922: 105(ptr) AccessChain 27(data) 1915 51 47 - 1923: 6(int) CompositeExtract 1919 1 - Store 1922 1923 - 1924: 6(int) Load 8(invocation) - 1925: 112(ptr) AccessChain 27(data) 51 51 - 1926: 21(ivec4) Load 1925 - 1927: 122(ivec3) VectorShuffle 1926 1926 0 1 2 - 1928: 122(ivec3) GroupNonUniformUMin 34 ExclusiveScan 1927 - 1929: 105(ptr) AccessChain 27(data) 1924 51 30 - 1930: 6(int) CompositeExtract 1928 0 - Store 1929 1930 - 1931: 105(ptr) AccessChain 27(data) 1924 51 47 - 1932: 6(int) CompositeExtract 1928 1 - Store 1931 1932 - 1933: 105(ptr) AccessChain 27(data) 1924 51 61 - 1934: 6(int) CompositeExtract 1928 2 - Store 1933 1934 - 1935: 6(int) Load 8(invocation) - 1936: 112(ptr) AccessChain 27(data) 65 51 - 1937: 21(ivec4) Load 1936 - 1938: 21(ivec4) GroupNonUniformUMin 34 ExclusiveScan 1937 - 1939: 112(ptr) AccessChain 27(data) 1935 51 - Store 1939 1938 - 1940: 6(int) Load 8(invocation) - 1941: 139(ptr) AccessChain 27(data) 29 65 30 - 1942:22(float64_t) Load 1941 - 1943:22(float64_t) GroupNonUniformFMin 34 ExclusiveScan 1942 - 1944: 139(ptr) AccessChain 27(data) 1940 65 30 - Store 1944 1943 - 1945: 6(int) Load 8(invocation) - 1946: 146(ptr) AccessChain 27(data) 38 65 - 1947: 23(f64vec4) Load 1946 - 1948:145(f64vec2) VectorShuffle 1947 1947 0 1 - 1949:145(f64vec2) GroupNonUniformFMin 34 ExclusiveScan 1948 - 1950: 139(ptr) AccessChain 27(data) 1945 65 30 - 1951:22(float64_t) CompositeExtract 1949 0 - Store 1950 1951 - 1952: 139(ptr) AccessChain 27(data) 1945 65 47 - 1953:22(float64_t) CompositeExtract 1949 1 - Store 1952 1953 - 1954: 6(int) Load 8(invocation) - 1955: 146(ptr) AccessChain 27(data) 51 65 - 1956: 23(f64vec4) Load 1955 - 1957:156(f64vec3) VectorShuffle 1956 1956 0 1 2 - 1958:156(f64vec3) GroupNonUniformFMin 34 ExclusiveScan 1957 - 1959: 139(ptr) AccessChain 27(data) 1954 65 30 - 1960:22(float64_t) CompositeExtract 1958 0 - Store 1959 1960 - 1961: 139(ptr) AccessChain 27(data) 1954 65 47 - 1962:22(float64_t) CompositeExtract 1958 1 - Store 1961 1962 - 1963: 139(ptr) AccessChain 27(data) 1954 65 61 - 1964:22(float64_t) CompositeExtract 1958 2 - Store 1963 1964 - 1965: 6(int) Load 8(invocation) - 1966: 146(ptr) AccessChain 27(data) 65 65 - 1967: 23(f64vec4) Load 1966 - 1968: 23(f64vec4) GroupNonUniformFMin 34 ExclusiveScan 1967 - 1969: 146(ptr) AccessChain 27(data) 1965 65 - Store 1969 1968 - 1970: 6(int) Load 8(invocation) - 1971: 31(ptr) AccessChain 27(data) 29 29 30 - 1972: 17(float) Load 1971 - 1973: 17(float) GroupNonUniformFMax 34 ExclusiveScan 1972 - 1974: 31(ptr) AccessChain 27(data) 1970 29 30 - Store 1974 1973 - 1975: 6(int) Load 8(invocation) - 1976: 40(ptr) AccessChain 27(data) 38 29 - 1977: 18(fvec4) Load 1976 - 1978: 39(fvec2) VectorShuffle 1977 1977 0 1 - 1979: 39(fvec2) GroupNonUniformFMax 34 ExclusiveScan 1978 - 1980: 31(ptr) AccessChain 27(data) 1975 29 30 - 1981: 17(float) CompositeExtract 1979 0 - Store 1980 1981 - 1982: 31(ptr) AccessChain 27(data) 1975 29 47 - 1983: 17(float) CompositeExtract 1979 1 - Store 1982 1983 - 1984: 6(int) Load 8(invocation) - 1985: 40(ptr) AccessChain 27(data) 51 29 - 1986: 18(fvec4) Load 1985 - 1987: 52(fvec3) VectorShuffle 1986 1986 0 1 2 - 1988: 52(fvec3) GroupNonUniformFMax 34 ExclusiveScan 1987 - 1989: 31(ptr) AccessChain 27(data) 1984 29 30 - 1990: 17(float) CompositeExtract 1988 0 - Store 1989 1990 - 1991: 31(ptr) AccessChain 27(data) 1984 29 47 - 1992: 17(float) CompositeExtract 1988 1 - Store 1991 1992 - 1993: 31(ptr) AccessChain 27(data) 1984 29 61 - 1994: 17(float) CompositeExtract 1988 2 - Store 1993 1994 - 1995: 6(int) Load 8(invocation) - 1996: 40(ptr) AccessChain 27(data) 65 29 - 1997: 18(fvec4) Load 1996 - 1998: 18(fvec4) GroupNonUniformFMax 34 ExclusiveScan 1997 - 1999: 40(ptr) AccessChain 27(data) 1995 29 - Store 1999 1998 - 2000: 6(int) Load 8(invocation) - 2001: 71(ptr) AccessChain 27(data) 29 38 30 - 2002: 19(int) Load 2001 - 2003: 19(int) GroupNonUniformSMax 34 ExclusiveScan 2002 - 2004: 71(ptr) AccessChain 27(data) 2000 38 30 - Store 2004 2003 - 2005: 6(int) Load 8(invocation) - 2006: 78(ptr) AccessChain 27(data) 38 38 - 2007: 20(ivec4) Load 2006 - 2008: 77(ivec2) VectorShuffle 2007 2007 0 1 - 2009: 77(ivec2) GroupNonUniformSMax 34 ExclusiveScan 2008 - 2010: 71(ptr) AccessChain 27(data) 2005 38 30 - 2011: 19(int) CompositeExtract 2009 0 - Store 2010 2011 - 2012: 71(ptr) AccessChain 27(data) 2005 38 47 - 2013: 19(int) CompositeExtract 2009 1 - Store 2012 2013 - 2014: 6(int) Load 8(invocation) - 2015: 78(ptr) AccessChain 27(data) 51 38 - 2016: 20(ivec4) Load 2015 - 2017: 88(ivec3) VectorShuffle 2016 2016 0 1 2 - 2018: 88(ivec3) GroupNonUniformSMax 34 ExclusiveScan 2017 - 2019: 71(ptr) AccessChain 27(data) 2014 38 30 - 2020: 19(int) CompositeExtract 2018 0 - Store 2019 2020 - 2021: 71(ptr) AccessChain 27(data) 2014 38 47 - 2022: 19(int) CompositeExtract 2018 1 - Store 2021 2022 - 2023: 71(ptr) AccessChain 27(data) 2014 38 61 - 2024: 19(int) CompositeExtract 2018 2 - Store 2023 2024 - 2025: 6(int) Load 8(invocation) - 2026: 78(ptr) AccessChain 27(data) 65 38 - 2027: 20(ivec4) Load 2026 - 2028: 20(ivec4) GroupNonUniformSMax 34 ExclusiveScan 2027 - 2029: 78(ptr) AccessChain 27(data) 2025 38 - Store 2029 2028 - 2030: 6(int) Load 8(invocation) - 2031: 105(ptr) AccessChain 27(data) 29 51 30 - 2032: 6(int) Load 2031 - 2033: 6(int) GroupNonUniformUMax 34 ExclusiveScan 2032 - 2034: 105(ptr) AccessChain 27(data) 2030 51 30 - Store 2034 2033 - 2035: 6(int) Load 8(invocation) - 2036: 112(ptr) AccessChain 27(data) 38 51 - 2037: 21(ivec4) Load 2036 - 2038: 111(ivec2) VectorShuffle 2037 2037 0 1 - 2039: 111(ivec2) GroupNonUniformUMax 34 ExclusiveScan 2038 - 2040: 105(ptr) AccessChain 27(data) 2035 51 30 - 2041: 6(int) CompositeExtract 2039 0 - Store 2040 2041 - 2042: 105(ptr) AccessChain 27(data) 2035 51 47 - 2043: 6(int) CompositeExtract 2039 1 - Store 2042 2043 - 2044: 6(int) Load 8(invocation) - 2045: 112(ptr) AccessChain 27(data) 51 51 - 2046: 21(ivec4) Load 2045 - 2047: 122(ivec3) VectorShuffle 2046 2046 0 1 2 - 2048: 122(ivec3) GroupNonUniformUMax 34 ExclusiveScan 2047 - 2049: 105(ptr) AccessChain 27(data) 2044 51 30 - 2050: 6(int) CompositeExtract 2048 0 - Store 2049 2050 - 2051: 105(ptr) AccessChain 27(data) 2044 51 47 - 2052: 6(int) CompositeExtract 2048 1 - Store 2051 2052 - 2053: 105(ptr) AccessChain 27(data) 2044 51 61 - 2054: 6(int) CompositeExtract 2048 2 - Store 2053 2054 - 2055: 6(int) Load 8(invocation) - 2056: 112(ptr) AccessChain 27(data) 65 51 - 2057: 21(ivec4) Load 2056 - 2058: 21(ivec4) GroupNonUniformUMax 34 ExclusiveScan 2057 - 2059: 112(ptr) AccessChain 27(data) 2055 51 - Store 2059 2058 - 2060: 6(int) Load 8(invocation) - 2061: 139(ptr) AccessChain 27(data) 29 65 30 - 2062:22(float64_t) Load 2061 - 2063:22(float64_t) GroupNonUniformFMax 34 ExclusiveScan 2062 - 2064: 139(ptr) AccessChain 27(data) 2060 65 30 - Store 2064 2063 - 2065: 6(int) Load 8(invocation) - 2066: 146(ptr) AccessChain 27(data) 38 65 - 2067: 23(f64vec4) Load 2066 - 2068:145(f64vec2) VectorShuffle 2067 2067 0 1 - 2069:145(f64vec2) GroupNonUniformFMax 34 ExclusiveScan 2068 - 2070: 139(ptr) AccessChain 27(data) 2065 65 30 - 2071:22(float64_t) CompositeExtract 2069 0 - Store 2070 2071 - 2072: 139(ptr) AccessChain 27(data) 2065 65 47 - 2073:22(float64_t) CompositeExtract 2069 1 - Store 2072 2073 - 2074: 6(int) Load 8(invocation) - 2075: 146(ptr) AccessChain 27(data) 51 65 - 2076: 23(f64vec4) Load 2075 - 2077:156(f64vec3) VectorShuffle 2076 2076 0 1 2 - 2078:156(f64vec3) GroupNonUniformFMax 34 ExclusiveScan 2077 - 2079: 139(ptr) AccessChain 27(data) 2074 65 30 - 2080:22(float64_t) CompositeExtract 2078 0 - Store 2079 2080 - 2081: 139(ptr) AccessChain 27(data) 2074 65 47 - 2082:22(float64_t) CompositeExtract 2078 1 - Store 2081 2082 - 2083: 139(ptr) AccessChain 27(data) 2074 65 61 - 2084:22(float64_t) CompositeExtract 2078 2 - Store 2083 2084 - 2085: 6(int) Load 8(invocation) - 2086: 146(ptr) AccessChain 27(data) 65 65 - 2087: 23(f64vec4) Load 2086 - 2088: 23(f64vec4) GroupNonUniformFMax 34 ExclusiveScan 2087 - 2089: 146(ptr) AccessChain 27(data) 2085 65 - Store 2089 2088 - 2090: 6(int) Load 8(invocation) - 2091: 71(ptr) AccessChain 27(data) 29 38 30 - 2092: 19(int) Load 2091 - 2093: 19(int) GroupNonUniformBitwiseAnd 34 ExclusiveScan 2092 - 2094: 71(ptr) AccessChain 27(data) 2090 38 30 - Store 2094 2093 - 2095: 6(int) Load 8(invocation) - 2096: 78(ptr) AccessChain 27(data) 38 38 - 2097: 20(ivec4) Load 2096 - 2098: 77(ivec2) VectorShuffle 2097 2097 0 1 - 2099: 77(ivec2) GroupNonUniformBitwiseAnd 34 ExclusiveScan 2098 - 2100: 71(ptr) AccessChain 27(data) 2095 38 30 - 2101: 19(int) CompositeExtract 2099 0 - Store 2100 2101 - 2102: 71(ptr) AccessChain 27(data) 2095 38 47 - 2103: 19(int) CompositeExtract 2099 1 - Store 2102 2103 - 2104: 6(int) Load 8(invocation) - 2105: 78(ptr) AccessChain 27(data) 51 38 - 2106: 20(ivec4) Load 2105 - 2107: 88(ivec3) VectorShuffle 2106 2106 0 1 2 - 2108: 88(ivec3) GroupNonUniformBitwiseAnd 34 ExclusiveScan 2107 - 2109: 71(ptr) AccessChain 27(data) 2104 38 30 - 2110: 19(int) CompositeExtract 2108 0 - Store 2109 2110 - 2111: 71(ptr) AccessChain 27(data) 2104 38 47 - 2112: 19(int) CompositeExtract 2108 1 - Store 2111 2112 - 2113: 71(ptr) AccessChain 27(data) 2104 38 61 - 2114: 19(int) CompositeExtract 2108 2 - Store 2113 2114 - 2115: 6(int) Load 8(invocation) - 2116: 78(ptr) AccessChain 27(data) 65 38 - 2117: 20(ivec4) Load 2116 - 2118: 20(ivec4) GroupNonUniformBitwiseAnd 34 ExclusiveScan 2117 - 2119: 78(ptr) AccessChain 27(data) 2115 38 - Store 2119 2118 - 2120: 6(int) Load 8(invocation) - 2121: 105(ptr) AccessChain 27(data) 29 51 30 - 2122: 6(int) Load 2121 - 2123: 6(int) GroupNonUniformBitwiseAnd 34 ExclusiveScan 2122 - 2124: 105(ptr) AccessChain 27(data) 2120 51 30 - Store 2124 2123 - 2125: 6(int) Load 8(invocation) - 2126: 112(ptr) AccessChain 27(data) 38 51 - 2127: 21(ivec4) Load 2126 - 2128: 111(ivec2) VectorShuffle 2127 2127 0 1 - 2129: 111(ivec2) GroupNonUniformBitwiseAnd 34 ExclusiveScan 2128 - 2130: 105(ptr) AccessChain 27(data) 2125 51 30 - 2131: 6(int) CompositeExtract 2129 0 - Store 2130 2131 - 2132: 105(ptr) AccessChain 27(data) 2125 51 47 - 2133: 6(int) CompositeExtract 2129 1 - Store 2132 2133 - 2134: 6(int) Load 8(invocation) - 2135: 112(ptr) AccessChain 27(data) 51 51 - 2136: 21(ivec4) Load 2135 - 2137: 122(ivec3) VectorShuffle 2136 2136 0 1 2 - 2138: 122(ivec3) GroupNonUniformBitwiseAnd 34 ExclusiveScan 2137 - 2139: 105(ptr) AccessChain 27(data) 2134 51 30 - 2140: 6(int) CompositeExtract 2138 0 - Store 2139 2140 - 2141: 105(ptr) AccessChain 27(data) 2134 51 47 - 2142: 6(int) CompositeExtract 2138 1 - Store 2141 2142 - 2143: 105(ptr) AccessChain 27(data) 2134 51 61 - 2144: 6(int) CompositeExtract 2138 2 - Store 2143 2144 - 2145: 6(int) Load 8(invocation) - 2146: 112(ptr) AccessChain 27(data) 65 51 - 2147: 21(ivec4) Load 2146 - 2148: 21(ivec4) GroupNonUniformBitwiseAnd 34 ExclusiveScan 2147 - 2149: 112(ptr) AccessChain 27(data) 2145 51 - Store 2149 2148 - 2150: 6(int) Load 8(invocation) - 2151: 71(ptr) AccessChain 27(data) 29 38 30 - 2152: 19(int) Load 2151 - 2153: 595(bool) SLessThan 2152 29 - 2154: 595(bool) GroupNonUniformLogicalAnd 34 ExclusiveScan 2153 - 2155: 19(int) Select 2154 38 29 - 2156: 71(ptr) AccessChain 27(data) 2150 38 30 - Store 2156 2155 - 2157: 6(int) Load 8(invocation) - 2158: 78(ptr) AccessChain 27(data) 38 38 - 2159: 20(ivec4) Load 2158 - 2160: 77(ivec2) VectorShuffle 2159 2159 0 1 - 2161: 605(bvec2) SLessThan 2160 604 - 2162: 605(bvec2) GroupNonUniformLogicalAnd 34 ExclusiveScan 2161 - 2163: 77(ivec2) Select 2162 608 604 - 2164: 71(ptr) AccessChain 27(data) 2157 38 30 - 2165: 19(int) CompositeExtract 2163 0 - Store 2164 2165 - 2166: 71(ptr) AccessChain 27(data) 2157 38 47 - 2167: 19(int) CompositeExtract 2163 1 - Store 2166 2167 - 2168: 6(int) Load 8(invocation) - 2169: 78(ptr) AccessChain 27(data) 38 38 - 2170: 20(ivec4) Load 2169 - 2171: 88(ivec3) VectorShuffle 2170 2170 0 1 2 - 2172: 619(bvec3) SLessThan 2171 618 - 2173: 619(bvec3) GroupNonUniformLogicalAnd 34 ExclusiveScan 2172 - 2174: 88(ivec3) Select 2173 622 618 - 2175: 71(ptr) AccessChain 27(data) 2168 38 30 - 2176: 19(int) CompositeExtract 2174 0 - Store 2175 2176 - 2177: 71(ptr) AccessChain 27(data) 2168 38 47 - 2178: 19(int) CompositeExtract 2174 1 - Store 2177 2178 - 2179: 71(ptr) AccessChain 27(data) 2168 38 61 - 2180: 19(int) CompositeExtract 2174 2 - Store 2179 2180 - 2181: 6(int) Load 8(invocation) - 2182: 78(ptr) AccessChain 27(data) 38 38 - 2183: 20(ivec4) Load 2182 - 2184: 634(bvec4) SLessThan 2183 633 - 2185: 634(bvec4) GroupNonUniformLogicalAnd 34 ExclusiveScan 2184 - 2186: 20(ivec4) Select 2185 637 633 - 2187: 78(ptr) AccessChain 27(data) 2181 38 - Store 2187 2186 - 2188: 6(int) Load 8(invocation) - 2189: 71(ptr) AccessChain 27(data) 29 38 30 - 2190: 19(int) Load 2189 - 2191: 19(int) GroupNonUniformBitwiseOr 34 ExclusiveScan 2190 - 2192: 71(ptr) AccessChain 27(data) 2188 38 30 - Store 2192 2191 - 2193: 6(int) Load 8(invocation) - 2194: 78(ptr) AccessChain 27(data) 38 38 - 2195: 20(ivec4) Load 2194 - 2196: 77(ivec2) VectorShuffle 2195 2195 0 1 - 2197: 77(ivec2) GroupNonUniformBitwiseOr 34 ExclusiveScan 2196 - 2198: 71(ptr) AccessChain 27(data) 2193 38 30 - 2199: 19(int) CompositeExtract 2197 0 - Store 2198 2199 - 2200: 71(ptr) AccessChain 27(data) 2193 38 47 - 2201: 19(int) CompositeExtract 2197 1 - Store 2200 2201 - 2202: 6(int) Load 8(invocation) - 2203: 78(ptr) AccessChain 27(data) 51 38 - 2204: 20(ivec4) Load 2203 - 2205: 88(ivec3) VectorShuffle 2204 2204 0 1 2 - 2206: 88(ivec3) GroupNonUniformBitwiseOr 34 ExclusiveScan 2205 - 2207: 71(ptr) AccessChain 27(data) 2202 38 30 - 2208: 19(int) CompositeExtract 2206 0 - Store 2207 2208 - 2209: 71(ptr) AccessChain 27(data) 2202 38 47 - 2210: 19(int) CompositeExtract 2206 1 - Store 2209 2210 - 2211: 71(ptr) AccessChain 27(data) 2202 38 61 - 2212: 19(int) CompositeExtract 2206 2 - Store 2211 2212 - 2213: 6(int) Load 8(invocation) - 2214: 78(ptr) AccessChain 27(data) 65 38 - 2215: 20(ivec4) Load 2214 - 2216: 20(ivec4) GroupNonUniformBitwiseOr 34 ExclusiveScan 2215 - 2217: 78(ptr) AccessChain 27(data) 2213 38 - Store 2217 2216 - 2218: 6(int) Load 8(invocation) - 2219: 105(ptr) AccessChain 27(data) 29 51 30 - 2220: 6(int) Load 2219 - 2221: 6(int) GroupNonUniformBitwiseOr 34 ExclusiveScan 2220 - 2222: 105(ptr) AccessChain 27(data) 2218 51 30 - Store 2222 2221 - 2223: 6(int) Load 8(invocation) - 2224: 112(ptr) AccessChain 27(data) 38 51 - 2225: 21(ivec4) Load 2224 - 2226: 111(ivec2) VectorShuffle 2225 2225 0 1 - 2227: 111(ivec2) GroupNonUniformBitwiseOr 34 ExclusiveScan 2226 - 2228: 105(ptr) AccessChain 27(data) 2223 51 30 - 2229: 6(int) CompositeExtract 2227 0 - Store 2228 2229 - 2230: 105(ptr) AccessChain 27(data) 2223 51 47 - 2231: 6(int) CompositeExtract 2227 1 - Store 2230 2231 - 2232: 6(int) Load 8(invocation) - 2233: 112(ptr) AccessChain 27(data) 51 51 - 2234: 21(ivec4) Load 2233 - 2235: 122(ivec3) VectorShuffle 2234 2234 0 1 2 - 2236: 122(ivec3) GroupNonUniformBitwiseOr 34 ExclusiveScan 2235 - 2237: 105(ptr) AccessChain 27(data) 2232 51 30 - 2238: 6(int) CompositeExtract 2236 0 - Store 2237 2238 - 2239: 105(ptr) AccessChain 27(data) 2232 51 47 - 2240: 6(int) CompositeExtract 2236 1 - Store 2239 2240 - 2241: 105(ptr) AccessChain 27(data) 2232 51 61 - 2242: 6(int) CompositeExtract 2236 2 - Store 2241 2242 - 2243: 6(int) Load 8(invocation) - 2244: 112(ptr) AccessChain 27(data) 65 51 - 2245: 21(ivec4) Load 2244 - 2246: 21(ivec4) GroupNonUniformBitwiseOr 34 ExclusiveScan 2245 - 2247: 112(ptr) AccessChain 27(data) 2243 51 - Store 2247 2246 - 2248: 6(int) Load 8(invocation) - 2249: 71(ptr) AccessChain 27(data) 29 38 30 - 2250: 19(int) Load 2249 - 2251: 595(bool) SLessThan 2250 29 - 2252: 595(bool) GroupNonUniformLogicalOr 34 ExclusiveScan 2251 - 2253: 19(int) Select 2252 38 29 - 2254: 71(ptr) AccessChain 27(data) 2248 38 30 - Store 2254 2253 - 2255: 6(int) Load 8(invocation) - 2256: 78(ptr) AccessChain 27(data) 38 38 - 2257: 20(ivec4) Load 2256 - 2258: 77(ivec2) VectorShuffle 2257 2257 0 1 - 2259: 605(bvec2) SLessThan 2258 604 - 2260: 605(bvec2) GroupNonUniformLogicalOr 34 ExclusiveScan 2259 - 2261: 77(ivec2) Select 2260 608 604 - 2262: 71(ptr) AccessChain 27(data) 2255 38 30 - 2263: 19(int) CompositeExtract 2261 0 - Store 2262 2263 - 2264: 71(ptr) AccessChain 27(data) 2255 38 47 - 2265: 19(int) CompositeExtract 2261 1 - Store 2264 2265 - 2266: 6(int) Load 8(invocation) - 2267: 78(ptr) AccessChain 27(data) 38 38 - 2268: 20(ivec4) Load 2267 - 2269: 88(ivec3) VectorShuffle 2268 2268 0 1 2 - 2270: 619(bvec3) SLessThan 2269 618 - 2271: 619(bvec3) GroupNonUniformLogicalOr 34 ExclusiveScan 2270 - 2272: 88(ivec3) Select 2271 622 618 - 2273: 71(ptr) AccessChain 27(data) 2266 38 30 - 2274: 19(int) CompositeExtract 2272 0 - Store 2273 2274 - 2275: 71(ptr) AccessChain 27(data) 2266 38 47 - 2276: 19(int) CompositeExtract 2272 1 - Store 2275 2276 - 2277: 71(ptr) AccessChain 27(data) 2266 38 61 - 2278: 19(int) CompositeExtract 2272 2 - Store 2277 2278 - 2279: 6(int) Load 8(invocation) - 2280: 78(ptr) AccessChain 27(data) 38 38 - 2281: 20(ivec4) Load 2280 - 2282: 634(bvec4) SLessThan 2281 633 - 2283: 634(bvec4) GroupNonUniformLogicalOr 34 ExclusiveScan 2282 - 2284: 20(ivec4) Select 2283 637 633 - 2285: 78(ptr) AccessChain 27(data) 2279 38 - Store 2285 2284 - 2286: 6(int) Load 8(invocation) - 2287: 71(ptr) AccessChain 27(data) 29 38 30 - 2288: 19(int) Load 2287 - 2289: 19(int) GroupNonUniformBitwiseXor 34 ExclusiveScan 2288 - 2290: 71(ptr) AccessChain 27(data) 2286 38 30 - Store 2290 2289 - 2291: 6(int) Load 8(invocation) - 2292: 78(ptr) AccessChain 27(data) 38 38 - 2293: 20(ivec4) Load 2292 - 2294: 77(ivec2) VectorShuffle 2293 2293 0 1 - 2295: 77(ivec2) GroupNonUniformBitwiseXor 34 ExclusiveScan 2294 - 2296: 71(ptr) AccessChain 27(data) 2291 38 30 - 2297: 19(int) CompositeExtract 2295 0 - Store 2296 2297 - 2298: 71(ptr) AccessChain 27(data) 2291 38 47 - 2299: 19(int) CompositeExtract 2295 1 - Store 2298 2299 - 2300: 6(int) Load 8(invocation) - 2301: 78(ptr) AccessChain 27(data) 51 38 - 2302: 20(ivec4) Load 2301 - 2303: 88(ivec3) VectorShuffle 2302 2302 0 1 2 - 2304: 88(ivec3) GroupNonUniformBitwiseXor 34 ExclusiveScan 2303 - 2305: 71(ptr) AccessChain 27(data) 2300 38 30 - 2306: 19(int) CompositeExtract 2304 0 - Store 2305 2306 - 2307: 71(ptr) AccessChain 27(data) 2300 38 47 - 2308: 19(int) CompositeExtract 2304 1 - Store 2307 2308 - 2309: 71(ptr) AccessChain 27(data) 2300 38 61 - 2310: 19(int) CompositeExtract 2304 2 - Store 2309 2310 - 2311: 6(int) Load 8(invocation) - 2312: 78(ptr) AccessChain 27(data) 65 38 - 2313: 20(ivec4) Load 2312 - 2314: 20(ivec4) GroupNonUniformBitwiseXor 34 ExclusiveScan 2313 - 2315: 78(ptr) AccessChain 27(data) 2311 38 - Store 2315 2314 - 2316: 6(int) Load 8(invocation) - 2317: 105(ptr) AccessChain 27(data) 29 51 30 - 2318: 6(int) Load 2317 - 2319: 6(int) GroupNonUniformBitwiseXor 34 ExclusiveScan 2318 - 2320: 105(ptr) AccessChain 27(data) 2316 51 30 - Store 2320 2319 - 2321: 6(int) Load 8(invocation) - 2322: 112(ptr) AccessChain 27(data) 38 51 - 2323: 21(ivec4) Load 2322 - 2324: 111(ivec2) VectorShuffle 2323 2323 0 1 - 2325: 111(ivec2) GroupNonUniformBitwiseXor 34 ExclusiveScan 2324 - 2326: 105(ptr) AccessChain 27(data) 2321 51 30 - 2327: 6(int) CompositeExtract 2325 0 - Store 2326 2327 - 2328: 105(ptr) AccessChain 27(data) 2321 51 47 - 2329: 6(int) CompositeExtract 2325 1 - Store 2328 2329 - 2330: 6(int) Load 8(invocation) - 2331: 112(ptr) AccessChain 27(data) 51 51 - 2332: 21(ivec4) Load 2331 - 2333: 122(ivec3) VectorShuffle 2332 2332 0 1 2 - 2334: 122(ivec3) GroupNonUniformBitwiseXor 34 ExclusiveScan 2333 - 2335: 105(ptr) AccessChain 27(data) 2330 51 30 - 2336: 6(int) CompositeExtract 2334 0 - Store 2335 2336 - 2337: 105(ptr) AccessChain 27(data) 2330 51 47 - 2338: 6(int) CompositeExtract 2334 1 - Store 2337 2338 - 2339: 105(ptr) AccessChain 27(data) 2330 51 61 - 2340: 6(int) CompositeExtract 2334 2 - Store 2339 2340 - 2341: 6(int) Load 8(invocation) - 2342: 112(ptr) AccessChain 27(data) 65 51 - 2343: 21(ivec4) Load 2342 - 2344: 21(ivec4) GroupNonUniformBitwiseXor 34 ExclusiveScan 2343 - 2345: 112(ptr) AccessChain 27(data) 2341 51 - Store 2345 2344 - 2346: 6(int) Load 8(invocation) - 2347: 71(ptr) AccessChain 27(data) 29 38 30 - 2348: 19(int) Load 2347 - 2349: 595(bool) SLessThan 2348 29 - 2350: 595(bool) GroupNonUniformLogicalXor 34 ExclusiveScan 2349 - 2351: 19(int) Select 2350 38 29 - 2352: 71(ptr) AccessChain 27(data) 2346 38 30 - Store 2352 2351 - 2353: 6(int) Load 8(invocation) - 2354: 78(ptr) AccessChain 27(data) 38 38 - 2355: 20(ivec4) Load 2354 - 2356: 77(ivec2) VectorShuffle 2355 2355 0 1 - 2357: 605(bvec2) SLessThan 2356 604 - 2358: 605(bvec2) GroupNonUniformLogicalXor 34 ExclusiveScan 2357 - 2359: 77(ivec2) Select 2358 608 604 - 2360: 71(ptr) AccessChain 27(data) 2353 38 30 - 2361: 19(int) CompositeExtract 2359 0 - Store 2360 2361 - 2362: 71(ptr) AccessChain 27(data) 2353 38 47 - 2363: 19(int) CompositeExtract 2359 1 - Store 2362 2363 - 2364: 6(int) Load 8(invocation) - 2365: 78(ptr) AccessChain 27(data) 38 38 - 2366: 20(ivec4) Load 2365 - 2367: 88(ivec3) VectorShuffle 2366 2366 0 1 2 - 2368: 619(bvec3) SLessThan 2367 618 - 2369: 619(bvec3) GroupNonUniformLogicalXor 34 ExclusiveScan 2368 - 2370: 88(ivec3) Select 2369 622 618 - 2371: 71(ptr) AccessChain 27(data) 2364 38 30 - 2372: 19(int) CompositeExtract 2370 0 - Store 2371 2372 - 2373: 71(ptr) AccessChain 27(data) 2364 38 47 - 2374: 19(int) CompositeExtract 2370 1 - Store 2373 2374 - 2375: 71(ptr) AccessChain 27(data) 2364 38 61 - 2376: 19(int) CompositeExtract 2370 2 - Store 2375 2376 - 2377: 6(int) Load 8(invocation) - 2378: 78(ptr) AccessChain 27(data) 38 38 - 2379: 20(ivec4) Load 2378 - 2380: 634(bvec4) SLessThan 2379 633 - 2381: 634(bvec4) GroupNonUniformLogicalXor 34 ExclusiveScan 2380 - 2382: 20(ivec4) Select 2381 637 633 - 2383: 78(ptr) AccessChain 27(data) 2377 38 - Store 2383 2382 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.subgroupBallot.comp.out b/deps/glslang/Test/baseResults/spv.subgroupBallot.comp.out deleted file mode 100644 index 65cfa7a4..00000000 --- a/deps/glslang/Test/baseResults/spv.subgroupBallot.comp.out +++ /dev/null @@ -1,575 +0,0 @@ -spv.subgroupBallot.comp -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 437 - - Capability Shader - Capability Float64 - Capability GroupNonUniform - Capability GroupNonUniformBallot - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 10 12 21 23 26 29 32 - ExecutionMode 4 LocalSize 8 8 1 - Source GLSL 450 - SourceExtension "GL_KHR_shader_subgroup_ballot" - SourceExtension "GL_KHR_shader_subgroup_basic" - Name 4 "main" - Name 8 "invocation" - Name 10 "gl_SubgroupInvocationID" - Name 12 "gl_SubgroupSize" - Name 19 "relMask" - Name 21 "gl_SubgroupEqMask" - Name 23 "gl_SubgroupGeMask" - Name 26 "gl_SubgroupGtMask" - Name 29 "gl_SubgroupLeMask" - Name 32 "gl_SubgroupLtMask" - Name 35 "result" - Name 46 "Buffers" - MemberName 46(Buffers) 0 "f4" - MemberName 46(Buffers) 1 "i4" - MemberName 46(Buffers) 2 "u4" - MemberName 46(Buffers) 3 "d4" - Name 49 "data" - Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision - Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId - Decorate 11 RelaxedPrecision - Decorate 12(gl_SubgroupSize) RelaxedPrecision - Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize - Decorate 13 RelaxedPrecision - Decorate 14 RelaxedPrecision - Decorate 16 RelaxedPrecision - Decorate 21(gl_SubgroupEqMask) BuiltIn SubgroupEqMaskKHR - Decorate 23(gl_SubgroupGeMask) BuiltIn SubgroupGeMaskKHR - Decorate 26(gl_SubgroupGtMask) BuiltIn SubgroupGtMaskKHR - Decorate 29(gl_SubgroupLeMask) BuiltIn SubgroupLeMaskKHR - Decorate 32(gl_SubgroupLtMask) BuiltIn SubgroupLtMaskKHR - MemberDecorate 46(Buffers) 0 Offset 0 - MemberDecorate 46(Buffers) 1 Offset 16 - MemberDecorate 46(Buffers) 2 Offset 32 - MemberDecorate 46(Buffers) 3 Offset 64 - Decorate 46(Buffers) Block - Decorate 49(data) DescriptorSet 0 - Decorate 49(data) Binding 0 - Decorate 436 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypePointer Input 6(int) -10(gl_SubgroupInvocationID): 9(ptr) Variable Input -12(gl_SubgroupSize): 9(ptr) Variable Input - 15: 6(int) Constant 4 - 17: TypeVector 6(int) 4 - 18: TypePointer Function 17(ivec4) - 20: TypePointer Input 17(ivec4) -21(gl_SubgroupEqMask): 20(ptr) Variable Input -23(gl_SubgroupGeMask): 20(ptr) Variable Input -26(gl_SubgroupGtMask): 20(ptr) Variable Input -29(gl_SubgroupLeMask): 20(ptr) Variable Input -32(gl_SubgroupLtMask): 20(ptr) Variable Input - 36: TypeBool - 37: 36(bool) ConstantTrue - 38: 6(int) Constant 3 - 40: TypeFloat 32 - 41: TypeVector 40(float) 4 - 42: TypeInt 32 1 - 43: TypeVector 42(int) 4 - 44: TypeFloat 64 - 45: TypeVector 44(float64_t) 4 - 46(Buffers): TypeStruct 41(fvec4) 43(ivec4) 17(ivec4) 45(f64vec4) - 47: TypeArray 46(Buffers) 15 - 48: TypePointer StorageBuffer 47 - 49(data): 48(ptr) Variable StorageBuffer - 51: 42(int) Constant 2 - 54: 6(int) Constant 0 - 55: TypePointer StorageBuffer 6(int) - 60: 42(int) Constant 1 - 61: 42(int) Constant 0 - 64: 6(int) Constant 1 - 72: 6(int) Constant 2 - 83: TypeVector 36(bool) 4 - 88: TypePointer StorageBuffer 17(ivec4) - 96: TypePointer StorageBuffer 40(float) - 102: TypeVector 40(float) 2 - 103: TypePointer StorageBuffer 41(fvec4) - 113: TypeVector 40(float) 3 - 125: 42(int) Constant 3 - 131: TypePointer StorageBuffer 42(int) - 137: TypeVector 42(int) 2 - 138: TypePointer StorageBuffer 43(ivec4) - 148: TypeVector 42(int) 3 - 170: TypeVector 6(int) 2 - 180: TypeVector 6(int) 3 - 197: TypePointer StorageBuffer 44(float64_t) - 203: TypeVector 44(float64_t) 2 - 204: TypePointer StorageBuffer 45(f64vec4) - 214: TypeVector 44(float64_t) 3 - 241: 137(ivec2) ConstantComposite 61 61 - 242: TypeVector 36(bool) 2 - 245: 137(ivec2) ConstantComposite 60 60 - 255: 148(ivec3) ConstantComposite 61 61 61 - 256: TypeVector 36(bool) 3 - 259: 148(ivec3) ConstantComposite 60 60 60 - 270: 43(ivec4) ConstantComposite 61 61 61 61 - 273: 43(ivec4) ConstantComposite 60 60 60 60 - 435: 6(int) Constant 8 - 436: 180(ivec3) ConstantComposite 435 435 64 - 4(main): 2 Function None 3 - 5: Label - 8(invocation): 7(ptr) Variable Function - 19(relMask): 18(ptr) Variable Function - 35(result): 18(ptr) Variable Function - 11: 6(int) Load 10(gl_SubgroupInvocationID) - 13: 6(int) Load 12(gl_SubgroupSize) - 14: 6(int) IAdd 11 13 - 16: 6(int) UMod 14 15 - Store 8(invocation) 16 - 22: 17(ivec4) Load 21(gl_SubgroupEqMask) - 24: 17(ivec4) Load 23(gl_SubgroupGeMask) - 25: 17(ivec4) IAdd 22 24 - 27: 17(ivec4) Load 26(gl_SubgroupGtMask) - 28: 17(ivec4) IAdd 25 27 - 30: 17(ivec4) Load 29(gl_SubgroupLeMask) - 31: 17(ivec4) IAdd 28 30 - 33: 17(ivec4) Load 32(gl_SubgroupLtMask) - 34: 17(ivec4) IAdd 31 33 - Store 19(relMask) 34 - 39: 17(ivec4) GroupNonUniformBallot 38 37 - Store 35(result) 39 - 50: 6(int) Load 8(invocation) - 52: 17(ivec4) Load 35(result) - 53: 6(int) GroupNonUniformBallotBitCount 38 Reduce 52 - 56: 55(ptr) AccessChain 49(data) 50 51 54 - Store 56 53 - 57: 6(int) Load 8(invocation) - 58: 17(ivec4) Load 35(result) - 59: 36(bool) GroupNonUniformBallotBitExtract 38 58 54 - 62: 42(int) Select 59 60 61 - 63: 6(int) Bitcast 62 - 65: 55(ptr) AccessChain 49(data) 57 51 64 - Store 65 63 - 66: 6(int) Load 8(invocation) - 67: 17(ivec4) Load 35(result) - 68: 6(int) GroupNonUniformBallotBitCount 38 InclusiveScan 67 - 69: 17(ivec4) Load 35(result) - 70: 6(int) GroupNonUniformBallotBitCount 38 ExclusiveScan 69 - 71: 6(int) IAdd 68 70 - 73: 55(ptr) AccessChain 49(data) 66 51 72 - Store 73 71 - 74: 6(int) Load 8(invocation) - 75: 17(ivec4) Load 35(result) - 76: 6(int) GroupNonUniformBallotFindLSB 38 75 - 77: 17(ivec4) Load 35(result) - 78: 6(int) GroupNonUniformBallotFindMSB 38 77 - 79: 6(int) IAdd 76 78 - 80: 55(ptr) AccessChain 49(data) 74 51 38 - Store 80 79 - 81: 17(ivec4) Load 19(relMask) - 82: 17(ivec4) Load 35(result) - 84: 83(bvec4) IEqual 81 82 - 85: 36(bool) All 84 - SelectionMerge 87 None - BranchConditional 85 86 87 - 86: Label - 89: 88(ptr) AccessChain 49(data) 61 51 - 90: 17(ivec4) Load 89 - 91: 36(bool) GroupNonUniformInverseBallot 38 90 - Branch 87 - 87: Label - 92: 36(bool) Phi 85 5 91 86 - SelectionMerge 94 None - BranchConditional 92 93 276 - 93: Label - 95: 6(int) Load 8(invocation) - 97: 96(ptr) AccessChain 49(data) 61 61 54 - 98: 40(float) Load 97 - 99: 40(float) GroupNonUniformBroadcast 38 98 38 - 100: 96(ptr) AccessChain 49(data) 95 61 54 - Store 100 99 - 101: 6(int) Load 8(invocation) - 104: 103(ptr) AccessChain 49(data) 60 61 - 105: 41(fvec4) Load 104 - 106: 102(fvec2) VectorShuffle 105 105 0 1 - 107: 102(fvec2) GroupNonUniformBroadcast 38 106 38 - 108: 96(ptr) AccessChain 49(data) 101 61 54 - 109: 40(float) CompositeExtract 107 0 - Store 108 109 - 110: 96(ptr) AccessChain 49(data) 101 61 64 - 111: 40(float) CompositeExtract 107 1 - Store 110 111 - 112: 6(int) Load 8(invocation) - 114: 103(ptr) AccessChain 49(data) 51 61 - 115: 41(fvec4) Load 114 - 116: 113(fvec3) VectorShuffle 115 115 0 1 2 - 117: 113(fvec3) GroupNonUniformBroadcast 38 116 38 - 118: 96(ptr) AccessChain 49(data) 112 61 54 - 119: 40(float) CompositeExtract 117 0 - Store 118 119 - 120: 96(ptr) AccessChain 49(data) 112 61 64 - 121: 40(float) CompositeExtract 117 1 - Store 120 121 - 122: 96(ptr) AccessChain 49(data) 112 61 72 - 123: 40(float) CompositeExtract 117 2 - Store 122 123 - 124: 6(int) Load 8(invocation) - 126: 103(ptr) AccessChain 49(data) 125 61 - 127: 41(fvec4) Load 126 - 128: 41(fvec4) GroupNonUniformBroadcast 38 127 38 - 129: 103(ptr) AccessChain 49(data) 124 61 - Store 129 128 - 130: 6(int) Load 8(invocation) - 132: 131(ptr) AccessChain 49(data) 61 60 54 - 133: 42(int) Load 132 - 134: 42(int) GroupNonUniformBroadcast 38 133 72 - 135: 131(ptr) AccessChain 49(data) 130 60 54 - Store 135 134 - 136: 6(int) Load 8(invocation) - 139: 138(ptr) AccessChain 49(data) 60 60 - 140: 43(ivec4) Load 139 - 141: 137(ivec2) VectorShuffle 140 140 0 1 - 142: 137(ivec2) GroupNonUniformBroadcast 38 141 72 - 143: 131(ptr) AccessChain 49(data) 136 60 54 - 144: 42(int) CompositeExtract 142 0 - Store 143 144 - 145: 131(ptr) AccessChain 49(data) 136 60 64 - 146: 42(int) CompositeExtract 142 1 - Store 145 146 - 147: 6(int) Load 8(invocation) - 149: 138(ptr) AccessChain 49(data) 51 60 - 150: 43(ivec4) Load 149 - 151: 148(ivec3) VectorShuffle 150 150 0 1 2 - 152: 148(ivec3) GroupNonUniformBroadcast 38 151 72 - 153: 131(ptr) AccessChain 49(data) 147 60 54 - 154: 42(int) CompositeExtract 152 0 - Store 153 154 - 155: 131(ptr) AccessChain 49(data) 147 60 64 - 156: 42(int) CompositeExtract 152 1 - Store 155 156 - 157: 131(ptr) AccessChain 49(data) 147 60 72 - 158: 42(int) CompositeExtract 152 2 - Store 157 158 - 159: 6(int) Load 8(invocation) - 160: 138(ptr) AccessChain 49(data) 125 60 - 161: 43(ivec4) Load 160 - 162: 43(ivec4) GroupNonUniformBroadcast 38 161 72 - 163: 138(ptr) AccessChain 49(data) 159 60 - Store 163 162 - 164: 6(int) Load 8(invocation) - 165: 55(ptr) AccessChain 49(data) 61 51 54 - 166: 6(int) Load 165 - 167: 6(int) GroupNonUniformBroadcast 38 166 64 - 168: 55(ptr) AccessChain 49(data) 164 51 54 - Store 168 167 - 169: 6(int) Load 8(invocation) - 171: 88(ptr) AccessChain 49(data) 60 51 - 172: 17(ivec4) Load 171 - 173: 170(ivec2) VectorShuffle 172 172 0 1 - 174: 170(ivec2) GroupNonUniformBroadcast 38 173 64 - 175: 55(ptr) AccessChain 49(data) 169 51 54 - 176: 6(int) CompositeExtract 174 0 - Store 175 176 - 177: 55(ptr) AccessChain 49(data) 169 51 64 - 178: 6(int) CompositeExtract 174 1 - Store 177 178 - 179: 6(int) Load 8(invocation) - 181: 88(ptr) AccessChain 49(data) 51 51 - 182: 17(ivec4) Load 181 - 183: 180(ivec3) VectorShuffle 182 182 0 1 2 - 184: 180(ivec3) GroupNonUniformBroadcast 38 183 64 - 185: 55(ptr) AccessChain 49(data) 179 51 54 - 186: 6(int) CompositeExtract 184 0 - Store 185 186 - 187: 55(ptr) AccessChain 49(data) 179 51 64 - 188: 6(int) CompositeExtract 184 1 - Store 187 188 - 189: 55(ptr) AccessChain 49(data) 179 51 72 - 190: 6(int) CompositeExtract 184 2 - Store 189 190 - 191: 6(int) Load 8(invocation) - 192: 88(ptr) AccessChain 49(data) 125 51 - 193: 17(ivec4) Load 192 - 194: 17(ivec4) GroupNonUniformBroadcast 38 193 64 - 195: 88(ptr) AccessChain 49(data) 191 51 - Store 195 194 - 196: 6(int) Load 8(invocation) - 198: 197(ptr) AccessChain 49(data) 61 125 54 - 199:44(float64_t) Load 198 - 200:44(float64_t) GroupNonUniformBroadcast 38 199 54 - 201: 197(ptr) AccessChain 49(data) 196 125 54 - Store 201 200 - 202: 6(int) Load 8(invocation) - 205: 204(ptr) AccessChain 49(data) 60 125 - 206: 45(f64vec4) Load 205 - 207:203(f64vec2) VectorShuffle 206 206 0 1 - 208:203(f64vec2) GroupNonUniformBroadcast 38 207 54 - 209: 197(ptr) AccessChain 49(data) 202 125 54 - 210:44(float64_t) CompositeExtract 208 0 - Store 209 210 - 211: 197(ptr) AccessChain 49(data) 202 125 64 - 212:44(float64_t) CompositeExtract 208 1 - Store 211 212 - 213: 6(int) Load 8(invocation) - 215: 204(ptr) AccessChain 49(data) 51 125 - 216: 45(f64vec4) Load 215 - 217:214(f64vec3) VectorShuffle 216 216 0 1 2 - 218:214(f64vec3) GroupNonUniformBroadcast 38 217 54 - 219: 197(ptr) AccessChain 49(data) 213 125 54 - 220:44(float64_t) CompositeExtract 218 0 - Store 219 220 - 221: 197(ptr) AccessChain 49(data) 213 125 64 - 222:44(float64_t) CompositeExtract 218 1 - Store 221 222 - 223: 197(ptr) AccessChain 49(data) 213 125 72 - 224:44(float64_t) CompositeExtract 218 2 - Store 223 224 - 225: 6(int) Load 8(invocation) - 226: 204(ptr) AccessChain 49(data) 125 125 - 227: 45(f64vec4) Load 226 - 228: 45(f64vec4) GroupNonUniformBroadcast 38 227 54 - 229: 204(ptr) AccessChain 49(data) 225 125 - Store 229 228 - 230: 6(int) Load 8(invocation) - 231: 131(ptr) AccessChain 49(data) 61 60 54 - 232: 42(int) Load 231 - 233: 36(bool) SLessThan 232 61 - 234: 36(bool) GroupNonUniformBroadcast 38 233 64 - 235: 42(int) Select 234 60 61 - 236: 131(ptr) AccessChain 49(data) 230 60 54 - Store 236 235 - 237: 6(int) Load 8(invocation) - 238: 138(ptr) AccessChain 49(data) 60 60 - 239: 43(ivec4) Load 238 - 240: 137(ivec2) VectorShuffle 239 239 0 1 - 243: 242(bvec2) SLessThan 240 241 - 244: 242(bvec2) GroupNonUniformBroadcast 38 243 64 - 246: 137(ivec2) Select 244 245 241 - 247: 131(ptr) AccessChain 49(data) 237 60 54 - 248: 42(int) CompositeExtract 246 0 - Store 247 248 - 249: 131(ptr) AccessChain 49(data) 237 60 64 - 250: 42(int) CompositeExtract 246 1 - Store 249 250 - 251: 6(int) Load 8(invocation) - 252: 138(ptr) AccessChain 49(data) 60 60 - 253: 43(ivec4) Load 252 - 254: 148(ivec3) VectorShuffle 253 253 0 1 2 - 257: 256(bvec3) SLessThan 254 255 - 258: 256(bvec3) GroupNonUniformBroadcast 38 257 64 - 260: 148(ivec3) Select 258 259 255 - 261: 131(ptr) AccessChain 49(data) 251 60 54 - 262: 42(int) CompositeExtract 260 0 - Store 261 262 - 263: 131(ptr) AccessChain 49(data) 251 60 64 - 264: 42(int) CompositeExtract 260 1 - Store 263 264 - 265: 131(ptr) AccessChain 49(data) 251 60 72 - 266: 42(int) CompositeExtract 260 2 - Store 265 266 - 267: 6(int) Load 8(invocation) - 268: 138(ptr) AccessChain 49(data) 60 60 - 269: 43(ivec4) Load 268 - 271: 83(bvec4) SLessThan 269 270 - 272: 83(bvec4) GroupNonUniformBroadcast 38 271 64 - 274: 43(ivec4) Select 272 273 270 - 275: 138(ptr) AccessChain 49(data) 267 60 - Store 275 274 - Branch 94 - 276: Label - 277: 6(int) Load 8(invocation) - 278: 96(ptr) AccessChain 49(data) 61 61 54 - 279: 40(float) Load 278 - 280: 40(float) GroupNonUniformBroadcastFirst 38 279 - 281: 96(ptr) AccessChain 49(data) 277 61 54 - Store 281 280 - 282: 6(int) Load 8(invocation) - 283: 103(ptr) AccessChain 49(data) 60 61 - 284: 41(fvec4) Load 283 - 285: 102(fvec2) VectorShuffle 284 284 0 1 - 286: 102(fvec2) GroupNonUniformBroadcastFirst 38 285 - 287: 96(ptr) AccessChain 49(data) 282 61 54 - 288: 40(float) CompositeExtract 286 0 - Store 287 288 - 289: 96(ptr) AccessChain 49(data) 282 61 64 - 290: 40(float) CompositeExtract 286 1 - Store 289 290 - 291: 6(int) Load 8(invocation) - 292: 103(ptr) AccessChain 49(data) 51 61 - 293: 41(fvec4) Load 292 - 294: 113(fvec3) VectorShuffle 293 293 0 1 2 - 295: 113(fvec3) GroupNonUniformBroadcastFirst 38 294 - 296: 96(ptr) AccessChain 49(data) 291 61 54 - 297: 40(float) CompositeExtract 295 0 - Store 296 297 - 298: 96(ptr) AccessChain 49(data) 291 61 64 - 299: 40(float) CompositeExtract 295 1 - Store 298 299 - 300: 96(ptr) AccessChain 49(data) 291 61 72 - 301: 40(float) CompositeExtract 295 2 - Store 300 301 - 302: 6(int) Load 8(invocation) - 303: 103(ptr) AccessChain 49(data) 125 61 - 304: 41(fvec4) Load 303 - 305: 41(fvec4) GroupNonUniformBroadcastFirst 38 304 - 306: 103(ptr) AccessChain 49(data) 302 61 - Store 306 305 - 307: 6(int) Load 8(invocation) - 308: 131(ptr) AccessChain 49(data) 61 60 54 - 309: 42(int) Load 308 - 310: 42(int) GroupNonUniformBroadcastFirst 38 309 - 311: 131(ptr) AccessChain 49(data) 307 60 54 - Store 311 310 - 312: 6(int) Load 8(invocation) - 313: 138(ptr) AccessChain 49(data) 60 60 - 314: 43(ivec4) Load 313 - 315: 137(ivec2) VectorShuffle 314 314 0 1 - 316: 137(ivec2) GroupNonUniformBroadcastFirst 38 315 - 317: 131(ptr) AccessChain 49(data) 312 60 54 - 318: 42(int) CompositeExtract 316 0 - Store 317 318 - 319: 131(ptr) AccessChain 49(data) 312 60 64 - 320: 42(int) CompositeExtract 316 1 - Store 319 320 - 321: 6(int) Load 8(invocation) - 322: 138(ptr) AccessChain 49(data) 51 60 - 323: 43(ivec4) Load 322 - 324: 148(ivec3) VectorShuffle 323 323 0 1 2 - 325: 148(ivec3) GroupNonUniformBroadcastFirst 38 324 - 326: 131(ptr) AccessChain 49(data) 321 60 54 - 327: 42(int) CompositeExtract 325 0 - Store 326 327 - 328: 131(ptr) AccessChain 49(data) 321 60 64 - 329: 42(int) CompositeExtract 325 1 - Store 328 329 - 330: 131(ptr) AccessChain 49(data) 321 60 72 - 331: 42(int) CompositeExtract 325 2 - Store 330 331 - 332: 6(int) Load 8(invocation) - 333: 138(ptr) AccessChain 49(data) 125 60 - 334: 43(ivec4) Load 333 - 335: 43(ivec4) GroupNonUniformBroadcastFirst 38 334 - 336: 138(ptr) AccessChain 49(data) 332 60 - Store 336 335 - 337: 6(int) Load 8(invocation) - 338: 55(ptr) AccessChain 49(data) 61 51 54 - 339: 6(int) Load 338 - 340: 6(int) GroupNonUniformBroadcastFirst 38 339 - 341: 55(ptr) AccessChain 49(data) 337 51 54 - Store 341 340 - 342: 6(int) Load 8(invocation) - 343: 88(ptr) AccessChain 49(data) 60 51 - 344: 17(ivec4) Load 343 - 345: 170(ivec2) VectorShuffle 344 344 0 1 - 346: 170(ivec2) GroupNonUniformBroadcastFirst 38 345 - 347: 55(ptr) AccessChain 49(data) 342 51 54 - 348: 6(int) CompositeExtract 346 0 - Store 347 348 - 349: 55(ptr) AccessChain 49(data) 342 51 64 - 350: 6(int) CompositeExtract 346 1 - Store 349 350 - 351: 6(int) Load 8(invocation) - 352: 88(ptr) AccessChain 49(data) 51 51 - 353: 17(ivec4) Load 352 - 354: 180(ivec3) VectorShuffle 353 353 0 1 2 - 355: 180(ivec3) GroupNonUniformBroadcastFirst 38 354 - 356: 55(ptr) AccessChain 49(data) 351 51 54 - 357: 6(int) CompositeExtract 355 0 - Store 356 357 - 358: 55(ptr) AccessChain 49(data) 351 51 64 - 359: 6(int) CompositeExtract 355 1 - Store 358 359 - 360: 55(ptr) AccessChain 49(data) 351 51 72 - 361: 6(int) CompositeExtract 355 2 - Store 360 361 - 362: 6(int) Load 8(invocation) - 363: 88(ptr) AccessChain 49(data) 125 51 - 364: 17(ivec4) Load 363 - 365: 17(ivec4) GroupNonUniformBroadcastFirst 38 364 - 366: 88(ptr) AccessChain 49(data) 362 51 - Store 366 365 - 367: 6(int) Load 8(invocation) - 368: 197(ptr) AccessChain 49(data) 61 125 54 - 369:44(float64_t) Load 368 - 370:44(float64_t) GroupNonUniformBroadcastFirst 38 369 - 371: 197(ptr) AccessChain 49(data) 367 125 54 - Store 371 370 - 372: 6(int) Load 8(invocation) - 373: 204(ptr) AccessChain 49(data) 60 125 - 374: 45(f64vec4) Load 373 - 375:203(f64vec2) VectorShuffle 374 374 0 1 - 376:203(f64vec2) GroupNonUniformBroadcastFirst 38 375 - 377: 197(ptr) AccessChain 49(data) 372 125 54 - 378:44(float64_t) CompositeExtract 376 0 - Store 377 378 - 379: 197(ptr) AccessChain 49(data) 372 125 64 - 380:44(float64_t) CompositeExtract 376 1 - Store 379 380 - 381: 6(int) Load 8(invocation) - 382: 204(ptr) AccessChain 49(data) 51 125 - 383: 45(f64vec4) Load 382 - 384:214(f64vec3) VectorShuffle 383 383 0 1 2 - 385:214(f64vec3) GroupNonUniformBroadcastFirst 38 384 - 386: 197(ptr) AccessChain 49(data) 381 125 54 - 387:44(float64_t) CompositeExtract 385 0 - Store 386 387 - 388: 197(ptr) AccessChain 49(data) 381 125 64 - 389:44(float64_t) CompositeExtract 385 1 - Store 388 389 - 390: 197(ptr) AccessChain 49(data) 381 125 72 - 391:44(float64_t) CompositeExtract 385 2 - Store 390 391 - 392: 6(int) Load 8(invocation) - 393: 204(ptr) AccessChain 49(data) 125 125 - 394: 45(f64vec4) Load 393 - 395: 45(f64vec4) GroupNonUniformBroadcastFirst 38 394 - 396: 204(ptr) AccessChain 49(data) 392 125 - Store 396 395 - 397: 6(int) Load 8(invocation) - 398: 131(ptr) AccessChain 49(data) 61 60 54 - 399: 42(int) Load 398 - 400: 36(bool) SLessThan 399 61 - 401: 36(bool) GroupNonUniformBroadcastFirst 38 400 - 402: 42(int) Select 401 60 61 - 403: 131(ptr) AccessChain 49(data) 397 60 54 - Store 403 402 - 404: 6(int) Load 8(invocation) - 405: 138(ptr) AccessChain 49(data) 60 60 - 406: 43(ivec4) Load 405 - 407: 137(ivec2) VectorShuffle 406 406 0 1 - 408: 242(bvec2) SLessThan 407 241 - 409: 242(bvec2) GroupNonUniformBroadcastFirst 38 408 - 410: 137(ivec2) Select 409 245 241 - 411: 131(ptr) AccessChain 49(data) 404 60 54 - 412: 42(int) CompositeExtract 410 0 - Store 411 412 - 413: 131(ptr) AccessChain 49(data) 404 60 64 - 414: 42(int) CompositeExtract 410 1 - Store 413 414 - 415: 6(int) Load 8(invocation) - 416: 138(ptr) AccessChain 49(data) 60 60 - 417: 43(ivec4) Load 416 - 418: 148(ivec3) VectorShuffle 417 417 0 1 2 - 419: 256(bvec3) SLessThan 418 255 - 420: 256(bvec3) GroupNonUniformBroadcastFirst 38 419 - 421: 148(ivec3) Select 420 259 255 - 422: 131(ptr) AccessChain 49(data) 415 60 54 - 423: 42(int) CompositeExtract 421 0 - Store 422 423 - 424: 131(ptr) AccessChain 49(data) 415 60 64 - 425: 42(int) CompositeExtract 421 1 - Store 424 425 - 426: 131(ptr) AccessChain 49(data) 415 60 72 - 427: 42(int) CompositeExtract 421 2 - Store 426 427 - 428: 6(int) Load 8(invocation) - 429: 138(ptr) AccessChain 49(data) 60 60 - 430: 43(ivec4) Load 429 - 431: 83(bvec4) SLessThan 430 270 - 432: 83(bvec4) GroupNonUniformBroadcastFirst 38 431 - 433: 43(ivec4) Select 432 273 270 - 434: 138(ptr) AccessChain 49(data) 428 60 - Store 434 433 - Branch 94 - 94: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.subgroupBallotNeg.comp.out b/deps/glslang/Test/baseResults/spv.subgroupBallotNeg.comp.out deleted file mode 100644 index 49b6b540..00000000 --- a/deps/glslang/Test/baseResults/spv.subgroupBallotNeg.comp.out +++ /dev/null @@ -1,6 +0,0 @@ -spv.subgroupBallotNeg.comp -ERROR: 0:32: 'id' : argument must be compile-time constant -ERROR: 1 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.subgroupBasic.comp.out b/deps/glslang/Test/baseResults/spv.subgroupBasic.comp.out deleted file mode 100644 index fb9fa0cb..00000000 --- a/deps/glslang/Test/baseResults/spv.subgroupBasic.comp.out +++ /dev/null @@ -1,84 +0,0 @@ -spv.subgroupBasic.comp -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 40 - - Capability Shader - Capability GroupNonUniform - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 14 19 22 25 - ExecutionMode 4 LocalSize 8 8 1 - Source GLSL 450 - SourceExtension "GL_KHR_shader_subgroup_basic" - Name 4 "main" - Name 8 "Buffer" - MemberName 8(Buffer) 0 "a" - Name 10 "data" - Name 14 "gl_SubgroupSize" - Name 19 "gl_SubgroupInvocationID" - Name 22 "gl_NumSubgroups" - Name 25 "gl_SubgroupID" - Decorate 7 ArrayStride 4 - MemberDecorate 8(Buffer) 0 Offset 0 - Decorate 8(Buffer) Block - Decorate 10(data) DescriptorSet 0 - Decorate 10(data) Binding 0 - Decorate 14(gl_SubgroupSize) RelaxedPrecision - Decorate 14(gl_SubgroupSize) BuiltIn SubgroupSize - Decorate 15 RelaxedPrecision - Decorate 19(gl_SubgroupInvocationID) RelaxedPrecision - Decorate 19(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId - Decorate 20 RelaxedPrecision - Decorate 22(gl_NumSubgroups) BuiltIn NumSubgroups - Decorate 25(gl_SubgroupID) BuiltIn SubgroupId - Decorate 39 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypeRuntimeArray 6(int) - 8(Buffer): TypeStruct 7 - 9: TypePointer StorageBuffer 8(Buffer) - 10(data): 9(ptr) Variable StorageBuffer - 11: 6(int) Constant 0 - 12: TypeInt 32 0 - 13: TypePointer Input 12(int) -14(gl_SubgroupSize): 13(ptr) Variable Input - 16: 6(int) Constant 1 - 17: TypePointer StorageBuffer 6(int) -19(gl_SubgroupInvocationID): 13(ptr) Variable Input -22(gl_NumSubgroups): 13(ptr) Variable Input -25(gl_SubgroupID): 13(ptr) Variable Input - 27: TypeBool - 28: 12(int) Constant 3 - 32: 12(int) Constant 3400 - 33: 12(int) Constant 72 - 34: 12(int) Constant 264 - 35: 12(int) Constant 2056 - 36: TypeVector 12(int) 3 - 37: 12(int) Constant 8 - 38: 12(int) Constant 1 - 39: 36(ivec3) ConstantComposite 37 37 38 - 4(main): 2 Function None 3 - 5: Label - 15: 12(int) Load 14(gl_SubgroupSize) - 18: 17(ptr) AccessChain 10(data) 11 15 - Store 18 16 - 20: 12(int) Load 19(gl_SubgroupInvocationID) - 21: 17(ptr) AccessChain 10(data) 11 20 - Store 21 16 - 23: 12(int) Load 22(gl_NumSubgroups) - 24: 17(ptr) AccessChain 10(data) 11 23 - Store 24 16 - 26: 12(int) Load 25(gl_SubgroupID) - 29: 27(bool) GroupNonUniformElect 28 - 30: 6(int) Select 29 16 11 - 31: 17(ptr) AccessChain 10(data) 11 26 - Store 31 30 - ControlBarrier 28 28 32 - MemoryBarrier 28 32 - MemoryBarrier 28 33 - MemoryBarrier 28 34 - MemoryBarrier 28 35 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.subgroupClustered.comp.out b/deps/glslang/Test/baseResults/spv.subgroupClustered.comp.out deleted file mode 100644 index a2e486dd..00000000 --- a/deps/glslang/Test/baseResults/spv.subgroupClustered.comp.out +++ /dev/null @@ -1,1056 +0,0 @@ -spv.subgroupClustered.comp -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 838 - - Capability Shader - Capability Float64 - Capability GroupNonUniform - Capability GroupNonUniformClustered - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 10 12 - ExecutionMode 4 LocalSize 8 1 1 - Source GLSL 450 - SourceExtension "GL_KHR_shader_subgroup_basic" - SourceExtension "GL_KHR_shader_subgroup_clustered" - Name 4 "main" - Name 8 "invocation" - Name 10 "gl_SubgroupInvocationID" - Name 12 "gl_SubgroupSize" - Name 24 "Buffers" - MemberName 24(Buffers) 0 "f4" - MemberName 24(Buffers) 1 "i4" - MemberName 24(Buffers) 2 "u4" - MemberName 24(Buffers) 3 "d4" - Name 27 "data" - Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision - Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId - Decorate 11 RelaxedPrecision - Decorate 12(gl_SubgroupSize) RelaxedPrecision - Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize - Decorate 13 RelaxedPrecision - Decorate 14 RelaxedPrecision - Decorate 16 RelaxedPrecision - MemberDecorate 24(Buffers) 0 Offset 0 - MemberDecorate 24(Buffers) 1 Offset 16 - MemberDecorate 24(Buffers) 2 Offset 32 - MemberDecorate 24(Buffers) 3 Offset 64 - Decorate 24(Buffers) Block - Decorate 27(data) DescriptorSet 0 - Decorate 27(data) Binding 0 - Decorate 837 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypePointer Input 6(int) -10(gl_SubgroupInvocationID): 9(ptr) Variable Input -12(gl_SubgroupSize): 9(ptr) Variable Input - 15: 6(int) Constant 4 - 17: TypeFloat 32 - 18: TypeVector 17(float) 4 - 19: TypeInt 32 1 - 20: TypeVector 19(int) 4 - 21: TypeVector 6(int) 4 - 22: TypeFloat 64 - 23: TypeVector 22(float64_t) 4 - 24(Buffers): TypeStruct 18(fvec4) 20(ivec4) 21(ivec4) 23(f64vec4) - 25: TypeArray 24(Buffers) 15 - 26: TypePointer StorageBuffer 25 - 27(data): 26(ptr) Variable StorageBuffer - 29: 19(int) Constant 0 - 30: 6(int) Constant 0 - 31: TypePointer StorageBuffer 17(float) - 34: 6(int) Constant 1 - 35: 6(int) Constant 3 - 39: 19(int) Constant 1 - 40: TypeVector 17(float) 2 - 41: TypePointer StorageBuffer 18(fvec4) - 51: 19(int) Constant 2 - 52: TypeVector 17(float) 3 - 61: 6(int) Constant 2 - 65: 19(int) Constant 3 - 71: TypePointer StorageBuffer 19(int) - 77: TypeVector 19(int) 2 - 78: TypePointer StorageBuffer 20(ivec4) - 88: TypeVector 19(int) 3 - 105: TypePointer StorageBuffer 6(int) - 111: TypeVector 6(int) 2 - 112: TypePointer StorageBuffer 21(ivec4) - 122: TypeVector 6(int) 3 - 139: TypePointer StorageBuffer 22(float64_t) - 145: TypeVector 22(float64_t) 2 - 146: TypePointer StorageBuffer 23(f64vec4) - 156: TypeVector 22(float64_t) 3 - 595: TypeBool - 604: 77(ivec2) ConstantComposite 29 29 - 605: TypeVector 595(bool) 2 - 608: 77(ivec2) ConstantComposite 39 39 - 618: 88(ivec3) ConstantComposite 29 29 29 - 619: TypeVector 595(bool) 3 - 622: 88(ivec3) ConstantComposite 39 39 39 - 633: 20(ivec4) ConstantComposite 29 29 29 29 - 634: TypeVector 595(bool) 4 - 637: 20(ivec4) ConstantComposite 39 39 39 39 - 836: 6(int) Constant 8 - 837: 122(ivec3) ConstantComposite 836 34 34 - 4(main): 2 Function None 3 - 5: Label - 8(invocation): 7(ptr) Variable Function - 11: 6(int) Load 10(gl_SubgroupInvocationID) - 13: 6(int) Load 12(gl_SubgroupSize) - 14: 6(int) IAdd 11 13 - 16: 6(int) UMod 14 15 - Store 8(invocation) 16 - 28: 6(int) Load 8(invocation) - 32: 31(ptr) AccessChain 27(data) 29 29 30 - 33: 17(float) Load 32 - 36: 17(float) GroupNonUniformFAdd 35 ClusteredReduce 33 34 - 37: 31(ptr) AccessChain 27(data) 28 29 30 - Store 37 36 - 38: 6(int) Load 8(invocation) - 42: 41(ptr) AccessChain 27(data) 39 29 - 43: 18(fvec4) Load 42 - 44: 40(fvec2) VectorShuffle 43 43 0 1 - 45: 40(fvec2) GroupNonUniformFAdd 35 ClusteredReduce 44 34 - 46: 31(ptr) AccessChain 27(data) 38 29 30 - 47: 17(float) CompositeExtract 45 0 - Store 46 47 - 48: 31(ptr) AccessChain 27(data) 38 29 34 - 49: 17(float) CompositeExtract 45 1 - Store 48 49 - 50: 6(int) Load 8(invocation) - 53: 41(ptr) AccessChain 27(data) 51 29 - 54: 18(fvec4) Load 53 - 55: 52(fvec3) VectorShuffle 54 54 0 1 2 - 56: 52(fvec3) GroupNonUniformFAdd 35 ClusteredReduce 55 34 - 57: 31(ptr) AccessChain 27(data) 50 29 30 - 58: 17(float) CompositeExtract 56 0 - Store 57 58 - 59: 31(ptr) AccessChain 27(data) 50 29 34 - 60: 17(float) CompositeExtract 56 1 - Store 59 60 - 62: 31(ptr) AccessChain 27(data) 50 29 61 - 63: 17(float) CompositeExtract 56 2 - Store 62 63 - 64: 6(int) Load 8(invocation) - 66: 41(ptr) AccessChain 27(data) 65 29 - 67: 18(fvec4) Load 66 - 68: 18(fvec4) GroupNonUniformFAdd 35 ClusteredReduce 67 34 - 69: 41(ptr) AccessChain 27(data) 64 29 - Store 69 68 - 70: 6(int) Load 8(invocation) - 72: 71(ptr) AccessChain 27(data) 29 39 30 - 73: 19(int) Load 72 - 74: 19(int) GroupNonUniformIAdd 35 ClusteredReduce 73 34 - 75: 71(ptr) AccessChain 27(data) 70 39 30 - Store 75 74 - 76: 6(int) Load 8(invocation) - 79: 78(ptr) AccessChain 27(data) 39 39 - 80: 20(ivec4) Load 79 - 81: 77(ivec2) VectorShuffle 80 80 0 1 - 82: 77(ivec2) GroupNonUniformIAdd 35 ClusteredReduce 81 34 - 83: 71(ptr) AccessChain 27(data) 76 39 30 - 84: 19(int) CompositeExtract 82 0 - Store 83 84 - 85: 71(ptr) AccessChain 27(data) 76 39 34 - 86: 19(int) CompositeExtract 82 1 - Store 85 86 - 87: 6(int) Load 8(invocation) - 89: 78(ptr) AccessChain 27(data) 51 39 - 90: 20(ivec4) Load 89 - 91: 88(ivec3) VectorShuffle 90 90 0 1 2 - 92: 88(ivec3) GroupNonUniformIAdd 35 ClusteredReduce 91 34 - 93: 71(ptr) AccessChain 27(data) 87 39 30 - 94: 19(int) CompositeExtract 92 0 - Store 93 94 - 95: 71(ptr) AccessChain 27(data) 87 39 34 - 96: 19(int) CompositeExtract 92 1 - Store 95 96 - 97: 71(ptr) AccessChain 27(data) 87 39 61 - 98: 19(int) CompositeExtract 92 2 - Store 97 98 - 99: 6(int) Load 8(invocation) - 100: 78(ptr) AccessChain 27(data) 65 39 - 101: 20(ivec4) Load 100 - 102: 20(ivec4) GroupNonUniformIAdd 35 ClusteredReduce 101 34 - 103: 78(ptr) AccessChain 27(data) 99 39 - Store 103 102 - 104: 6(int) Load 8(invocation) - 106: 105(ptr) AccessChain 27(data) 29 51 30 - 107: 6(int) Load 106 - 108: 6(int) GroupNonUniformIAdd 35 ClusteredReduce 107 34 - 109: 105(ptr) AccessChain 27(data) 104 51 30 - Store 109 108 - 110: 6(int) Load 8(invocation) - 113: 112(ptr) AccessChain 27(data) 39 51 - 114: 21(ivec4) Load 113 - 115: 111(ivec2) VectorShuffle 114 114 0 1 - 116: 111(ivec2) GroupNonUniformIAdd 35 ClusteredReduce 115 34 - 117: 105(ptr) AccessChain 27(data) 110 51 30 - 118: 6(int) CompositeExtract 116 0 - Store 117 118 - 119: 105(ptr) AccessChain 27(data) 110 51 34 - 120: 6(int) CompositeExtract 116 1 - Store 119 120 - 121: 6(int) Load 8(invocation) - 123: 112(ptr) AccessChain 27(data) 51 51 - 124: 21(ivec4) Load 123 - 125: 122(ivec3) VectorShuffle 124 124 0 1 2 - 126: 122(ivec3) GroupNonUniformIAdd 35 ClusteredReduce 125 34 - 127: 105(ptr) AccessChain 27(data) 121 51 30 - 128: 6(int) CompositeExtract 126 0 - Store 127 128 - 129: 105(ptr) AccessChain 27(data) 121 51 34 - 130: 6(int) CompositeExtract 126 1 - Store 129 130 - 131: 105(ptr) AccessChain 27(data) 121 51 61 - 132: 6(int) CompositeExtract 126 2 - Store 131 132 - 133: 6(int) Load 8(invocation) - 134: 112(ptr) AccessChain 27(data) 65 51 - 135: 21(ivec4) Load 134 - 136: 21(ivec4) GroupNonUniformIAdd 35 ClusteredReduce 135 34 - 137: 112(ptr) AccessChain 27(data) 133 51 - Store 137 136 - 138: 6(int) Load 8(invocation) - 140: 139(ptr) AccessChain 27(data) 29 65 30 - 141:22(float64_t) Load 140 - 142:22(float64_t) GroupNonUniformFAdd 35 ClusteredReduce 141 34 - 143: 139(ptr) AccessChain 27(data) 138 65 30 - Store 143 142 - 144: 6(int) Load 8(invocation) - 147: 146(ptr) AccessChain 27(data) 39 65 - 148: 23(f64vec4) Load 147 - 149:145(f64vec2) VectorShuffle 148 148 0 1 - 150:145(f64vec2) GroupNonUniformFAdd 35 ClusteredReduce 149 34 - 151: 139(ptr) AccessChain 27(data) 144 65 30 - 152:22(float64_t) CompositeExtract 150 0 - Store 151 152 - 153: 139(ptr) AccessChain 27(data) 144 65 34 - 154:22(float64_t) CompositeExtract 150 1 - Store 153 154 - 155: 6(int) Load 8(invocation) - 157: 146(ptr) AccessChain 27(data) 51 65 - 158: 23(f64vec4) Load 157 - 159:156(f64vec3) VectorShuffle 158 158 0 1 2 - 160:156(f64vec3) GroupNonUniformFAdd 35 ClusteredReduce 159 34 - 161: 139(ptr) AccessChain 27(data) 155 65 30 - 162:22(float64_t) CompositeExtract 160 0 - Store 161 162 - 163: 139(ptr) AccessChain 27(data) 155 65 34 - 164:22(float64_t) CompositeExtract 160 1 - Store 163 164 - 165: 139(ptr) AccessChain 27(data) 155 65 61 - 166:22(float64_t) CompositeExtract 160 2 - Store 165 166 - 167: 6(int) Load 8(invocation) - 168: 146(ptr) AccessChain 27(data) 65 65 - 169: 23(f64vec4) Load 168 - 170: 23(f64vec4) GroupNonUniformFAdd 35 ClusteredReduce 169 34 - 171: 146(ptr) AccessChain 27(data) 167 65 - Store 171 170 - 172: 6(int) Load 8(invocation) - 173: 31(ptr) AccessChain 27(data) 29 29 30 - 174: 17(float) Load 173 - 175: 17(float) GroupNonUniformFMul 35 ClusteredReduce 174 34 - 176: 31(ptr) AccessChain 27(data) 172 29 30 - Store 176 175 - 177: 6(int) Load 8(invocation) - 178: 41(ptr) AccessChain 27(data) 39 29 - 179: 18(fvec4) Load 178 - 180: 40(fvec2) VectorShuffle 179 179 0 1 - 181: 40(fvec2) GroupNonUniformFMul 35 ClusteredReduce 180 34 - 182: 31(ptr) AccessChain 27(data) 177 29 30 - 183: 17(float) CompositeExtract 181 0 - Store 182 183 - 184: 31(ptr) AccessChain 27(data) 177 29 34 - 185: 17(float) CompositeExtract 181 1 - Store 184 185 - 186: 6(int) Load 8(invocation) - 187: 41(ptr) AccessChain 27(data) 51 29 - 188: 18(fvec4) Load 187 - 189: 52(fvec3) VectorShuffle 188 188 0 1 2 - 190: 52(fvec3) GroupNonUniformFMul 35 ClusteredReduce 189 34 - 191: 31(ptr) AccessChain 27(data) 186 29 30 - 192: 17(float) CompositeExtract 190 0 - Store 191 192 - 193: 31(ptr) AccessChain 27(data) 186 29 34 - 194: 17(float) CompositeExtract 190 1 - Store 193 194 - 195: 31(ptr) AccessChain 27(data) 186 29 61 - 196: 17(float) CompositeExtract 190 2 - Store 195 196 - 197: 6(int) Load 8(invocation) - 198: 41(ptr) AccessChain 27(data) 65 29 - 199: 18(fvec4) Load 198 - 200: 18(fvec4) GroupNonUniformFMul 35 ClusteredReduce 199 34 - 201: 41(ptr) AccessChain 27(data) 197 29 - Store 201 200 - 202: 6(int) Load 8(invocation) - 203: 71(ptr) AccessChain 27(data) 29 39 30 - 204: 19(int) Load 203 - 205: 19(int) GroupNonUniformIMul 35 ClusteredReduce 204 34 - 206: 71(ptr) AccessChain 27(data) 202 39 30 - Store 206 205 - 207: 6(int) Load 8(invocation) - 208: 78(ptr) AccessChain 27(data) 39 39 - 209: 20(ivec4) Load 208 - 210: 77(ivec2) VectorShuffle 209 209 0 1 - 211: 77(ivec2) GroupNonUniformIMul 35 ClusteredReduce 210 34 - 212: 71(ptr) AccessChain 27(data) 207 39 30 - 213: 19(int) CompositeExtract 211 0 - Store 212 213 - 214: 71(ptr) AccessChain 27(data) 207 39 34 - 215: 19(int) CompositeExtract 211 1 - Store 214 215 - 216: 6(int) Load 8(invocation) - 217: 78(ptr) AccessChain 27(data) 51 39 - 218: 20(ivec4) Load 217 - 219: 88(ivec3) VectorShuffle 218 218 0 1 2 - 220: 88(ivec3) GroupNonUniformIMul 35 ClusteredReduce 219 34 - 221: 71(ptr) AccessChain 27(data) 216 39 30 - 222: 19(int) CompositeExtract 220 0 - Store 221 222 - 223: 71(ptr) AccessChain 27(data) 216 39 34 - 224: 19(int) CompositeExtract 220 1 - Store 223 224 - 225: 71(ptr) AccessChain 27(data) 216 39 61 - 226: 19(int) CompositeExtract 220 2 - Store 225 226 - 227: 6(int) Load 8(invocation) - 228: 78(ptr) AccessChain 27(data) 65 39 - 229: 20(ivec4) Load 228 - 230: 20(ivec4) GroupNonUniformIMul 35 ClusteredReduce 229 34 - 231: 78(ptr) AccessChain 27(data) 227 39 - Store 231 230 - 232: 6(int) Load 8(invocation) - 233: 105(ptr) AccessChain 27(data) 29 51 30 - 234: 6(int) Load 233 - 235: 6(int) GroupNonUniformIMul 35 ClusteredReduce 234 34 - 236: 105(ptr) AccessChain 27(data) 232 51 30 - Store 236 235 - 237: 6(int) Load 8(invocation) - 238: 112(ptr) AccessChain 27(data) 39 51 - 239: 21(ivec4) Load 238 - 240: 111(ivec2) VectorShuffle 239 239 0 1 - 241: 111(ivec2) GroupNonUniformIMul 35 ClusteredReduce 240 34 - 242: 105(ptr) AccessChain 27(data) 237 51 30 - 243: 6(int) CompositeExtract 241 0 - Store 242 243 - 244: 105(ptr) AccessChain 27(data) 237 51 34 - 245: 6(int) CompositeExtract 241 1 - Store 244 245 - 246: 6(int) Load 8(invocation) - 247: 112(ptr) AccessChain 27(data) 51 51 - 248: 21(ivec4) Load 247 - 249: 122(ivec3) VectorShuffle 248 248 0 1 2 - 250: 122(ivec3) GroupNonUniformIMul 35 ClusteredReduce 249 34 - 251: 105(ptr) AccessChain 27(data) 246 51 30 - 252: 6(int) CompositeExtract 250 0 - Store 251 252 - 253: 105(ptr) AccessChain 27(data) 246 51 34 - 254: 6(int) CompositeExtract 250 1 - Store 253 254 - 255: 105(ptr) AccessChain 27(data) 246 51 61 - 256: 6(int) CompositeExtract 250 2 - Store 255 256 - 257: 6(int) Load 8(invocation) - 258: 112(ptr) AccessChain 27(data) 65 51 - 259: 21(ivec4) Load 258 - 260: 21(ivec4) GroupNonUniformIMul 35 ClusteredReduce 259 34 - 261: 112(ptr) AccessChain 27(data) 257 51 - Store 261 260 - 262: 6(int) Load 8(invocation) - 263: 139(ptr) AccessChain 27(data) 29 65 30 - 264:22(float64_t) Load 263 - 265:22(float64_t) GroupNonUniformFMul 35 ClusteredReduce 264 34 - 266: 139(ptr) AccessChain 27(data) 262 65 30 - Store 266 265 - 267: 6(int) Load 8(invocation) - 268: 146(ptr) AccessChain 27(data) 39 65 - 269: 23(f64vec4) Load 268 - 270:145(f64vec2) VectorShuffle 269 269 0 1 - 271:145(f64vec2) GroupNonUniformFMul 35 ClusteredReduce 270 34 - 272: 139(ptr) AccessChain 27(data) 267 65 30 - 273:22(float64_t) CompositeExtract 271 0 - Store 272 273 - 274: 139(ptr) AccessChain 27(data) 267 65 34 - 275:22(float64_t) CompositeExtract 271 1 - Store 274 275 - 276: 6(int) Load 8(invocation) - 277: 146(ptr) AccessChain 27(data) 51 65 - 278: 23(f64vec4) Load 277 - 279:156(f64vec3) VectorShuffle 278 278 0 1 2 - 280:156(f64vec3) GroupNonUniformFMul 35 ClusteredReduce 279 34 - 281: 139(ptr) AccessChain 27(data) 276 65 30 - 282:22(float64_t) CompositeExtract 280 0 - Store 281 282 - 283: 139(ptr) AccessChain 27(data) 276 65 34 - 284:22(float64_t) CompositeExtract 280 1 - Store 283 284 - 285: 139(ptr) AccessChain 27(data) 276 65 61 - 286:22(float64_t) CompositeExtract 280 2 - Store 285 286 - 287: 6(int) Load 8(invocation) - 288: 146(ptr) AccessChain 27(data) 65 65 - 289: 23(f64vec4) Load 288 - 290: 23(f64vec4) GroupNonUniformFMul 35 ClusteredReduce 289 34 - 291: 146(ptr) AccessChain 27(data) 287 65 - Store 291 290 - 292: 6(int) Load 8(invocation) - 293: 31(ptr) AccessChain 27(data) 29 29 30 - 294: 17(float) Load 293 - 295: 17(float) GroupNonUniformFMin 35 ClusteredReduce 294 34 - 296: 31(ptr) AccessChain 27(data) 292 29 30 - Store 296 295 - 297: 6(int) Load 8(invocation) - 298: 41(ptr) AccessChain 27(data) 39 29 - 299: 18(fvec4) Load 298 - 300: 40(fvec2) VectorShuffle 299 299 0 1 - 301: 40(fvec2) GroupNonUniformFMin 35 ClusteredReduce 300 34 - 302: 31(ptr) AccessChain 27(data) 297 29 30 - 303: 17(float) CompositeExtract 301 0 - Store 302 303 - 304: 31(ptr) AccessChain 27(data) 297 29 34 - 305: 17(float) CompositeExtract 301 1 - Store 304 305 - 306: 6(int) Load 8(invocation) - 307: 41(ptr) AccessChain 27(data) 51 29 - 308: 18(fvec4) Load 307 - 309: 52(fvec3) VectorShuffle 308 308 0 1 2 - 310: 52(fvec3) GroupNonUniformFMin 35 ClusteredReduce 309 34 - 311: 31(ptr) AccessChain 27(data) 306 29 30 - 312: 17(float) CompositeExtract 310 0 - Store 311 312 - 313: 31(ptr) AccessChain 27(data) 306 29 34 - 314: 17(float) CompositeExtract 310 1 - Store 313 314 - 315: 31(ptr) AccessChain 27(data) 306 29 61 - 316: 17(float) CompositeExtract 310 2 - Store 315 316 - 317: 6(int) Load 8(invocation) - 318: 41(ptr) AccessChain 27(data) 65 29 - 319: 18(fvec4) Load 318 - 320: 18(fvec4) GroupNonUniformFMin 35 ClusteredReduce 319 34 - 321: 41(ptr) AccessChain 27(data) 317 29 - Store 321 320 - 322: 6(int) Load 8(invocation) - 323: 71(ptr) AccessChain 27(data) 29 39 30 - 324: 19(int) Load 323 - 325: 19(int) GroupNonUniformSMin 35 ClusteredReduce 324 34 - 326: 71(ptr) AccessChain 27(data) 322 39 30 - Store 326 325 - 327: 6(int) Load 8(invocation) - 328: 78(ptr) AccessChain 27(data) 39 39 - 329: 20(ivec4) Load 328 - 330: 77(ivec2) VectorShuffle 329 329 0 1 - 331: 77(ivec2) GroupNonUniformSMin 35 ClusteredReduce 330 34 - 332: 71(ptr) AccessChain 27(data) 327 39 30 - 333: 19(int) CompositeExtract 331 0 - Store 332 333 - 334: 71(ptr) AccessChain 27(data) 327 39 34 - 335: 19(int) CompositeExtract 331 1 - Store 334 335 - 336: 6(int) Load 8(invocation) - 337: 78(ptr) AccessChain 27(data) 51 39 - 338: 20(ivec4) Load 337 - 339: 88(ivec3) VectorShuffle 338 338 0 1 2 - 340: 88(ivec3) GroupNonUniformSMin 35 ClusteredReduce 339 34 - 341: 71(ptr) AccessChain 27(data) 336 39 30 - 342: 19(int) CompositeExtract 340 0 - Store 341 342 - 343: 71(ptr) AccessChain 27(data) 336 39 34 - 344: 19(int) CompositeExtract 340 1 - Store 343 344 - 345: 71(ptr) AccessChain 27(data) 336 39 61 - 346: 19(int) CompositeExtract 340 2 - Store 345 346 - 347: 6(int) Load 8(invocation) - 348: 78(ptr) AccessChain 27(data) 65 39 - 349: 20(ivec4) Load 348 - 350: 20(ivec4) GroupNonUniformSMin 35 ClusteredReduce 349 34 - 351: 78(ptr) AccessChain 27(data) 347 39 - Store 351 350 - 352: 6(int) Load 8(invocation) - 353: 105(ptr) AccessChain 27(data) 29 51 30 - 354: 6(int) Load 353 - 355: 6(int) GroupNonUniformUMin 35 ClusteredReduce 354 34 - 356: 105(ptr) AccessChain 27(data) 352 51 30 - Store 356 355 - 357: 6(int) Load 8(invocation) - 358: 112(ptr) AccessChain 27(data) 39 51 - 359: 21(ivec4) Load 358 - 360: 111(ivec2) VectorShuffle 359 359 0 1 - 361: 111(ivec2) GroupNonUniformUMin 35 ClusteredReduce 360 34 - 362: 105(ptr) AccessChain 27(data) 357 51 30 - 363: 6(int) CompositeExtract 361 0 - Store 362 363 - 364: 105(ptr) AccessChain 27(data) 357 51 34 - 365: 6(int) CompositeExtract 361 1 - Store 364 365 - 366: 6(int) Load 8(invocation) - 367: 112(ptr) AccessChain 27(data) 51 51 - 368: 21(ivec4) Load 367 - 369: 122(ivec3) VectorShuffle 368 368 0 1 2 - 370: 122(ivec3) GroupNonUniformUMin 35 ClusteredReduce 369 34 - 371: 105(ptr) AccessChain 27(data) 366 51 30 - 372: 6(int) CompositeExtract 370 0 - Store 371 372 - 373: 105(ptr) AccessChain 27(data) 366 51 34 - 374: 6(int) CompositeExtract 370 1 - Store 373 374 - 375: 105(ptr) AccessChain 27(data) 366 51 61 - 376: 6(int) CompositeExtract 370 2 - Store 375 376 - 377: 6(int) Load 8(invocation) - 378: 112(ptr) AccessChain 27(data) 65 51 - 379: 21(ivec4) Load 378 - 380: 21(ivec4) GroupNonUniformUMin 35 ClusteredReduce 379 34 - 381: 112(ptr) AccessChain 27(data) 377 51 - Store 381 380 - 382: 6(int) Load 8(invocation) - 383: 139(ptr) AccessChain 27(data) 29 65 30 - 384:22(float64_t) Load 383 - 385:22(float64_t) GroupNonUniformFMin 35 ClusteredReduce 384 34 - 386: 139(ptr) AccessChain 27(data) 382 65 30 - Store 386 385 - 387: 6(int) Load 8(invocation) - 388: 146(ptr) AccessChain 27(data) 39 65 - 389: 23(f64vec4) Load 388 - 390:145(f64vec2) VectorShuffle 389 389 0 1 - 391:145(f64vec2) GroupNonUniformFMin 35 ClusteredReduce 390 34 - 392: 139(ptr) AccessChain 27(data) 387 65 30 - 393:22(float64_t) CompositeExtract 391 0 - Store 392 393 - 394: 139(ptr) AccessChain 27(data) 387 65 34 - 395:22(float64_t) CompositeExtract 391 1 - Store 394 395 - 396: 6(int) Load 8(invocation) - 397: 146(ptr) AccessChain 27(data) 51 65 - 398: 23(f64vec4) Load 397 - 399:156(f64vec3) VectorShuffle 398 398 0 1 2 - 400:156(f64vec3) GroupNonUniformFMin 35 ClusteredReduce 399 34 - 401: 139(ptr) AccessChain 27(data) 396 65 30 - 402:22(float64_t) CompositeExtract 400 0 - Store 401 402 - 403: 139(ptr) AccessChain 27(data) 396 65 34 - 404:22(float64_t) CompositeExtract 400 1 - Store 403 404 - 405: 139(ptr) AccessChain 27(data) 396 65 61 - 406:22(float64_t) CompositeExtract 400 2 - Store 405 406 - 407: 6(int) Load 8(invocation) - 408: 146(ptr) AccessChain 27(data) 65 65 - 409: 23(f64vec4) Load 408 - 410: 23(f64vec4) GroupNonUniformFMin 35 ClusteredReduce 409 34 - 411: 146(ptr) AccessChain 27(data) 407 65 - Store 411 410 - 412: 6(int) Load 8(invocation) - 413: 31(ptr) AccessChain 27(data) 29 29 30 - 414: 17(float) Load 413 - 415: 17(float) GroupNonUniformFMax 35 ClusteredReduce 414 34 - 416: 31(ptr) AccessChain 27(data) 412 29 30 - Store 416 415 - 417: 6(int) Load 8(invocation) - 418: 41(ptr) AccessChain 27(data) 39 29 - 419: 18(fvec4) Load 418 - 420: 40(fvec2) VectorShuffle 419 419 0 1 - 421: 40(fvec2) GroupNonUniformFMax 35 ClusteredReduce 420 34 - 422: 31(ptr) AccessChain 27(data) 417 29 30 - 423: 17(float) CompositeExtract 421 0 - Store 422 423 - 424: 31(ptr) AccessChain 27(data) 417 29 34 - 425: 17(float) CompositeExtract 421 1 - Store 424 425 - 426: 6(int) Load 8(invocation) - 427: 41(ptr) AccessChain 27(data) 51 29 - 428: 18(fvec4) Load 427 - 429: 52(fvec3) VectorShuffle 428 428 0 1 2 - 430: 52(fvec3) GroupNonUniformFMax 35 ClusteredReduce 429 34 - 431: 31(ptr) AccessChain 27(data) 426 29 30 - 432: 17(float) CompositeExtract 430 0 - Store 431 432 - 433: 31(ptr) AccessChain 27(data) 426 29 34 - 434: 17(float) CompositeExtract 430 1 - Store 433 434 - 435: 31(ptr) AccessChain 27(data) 426 29 61 - 436: 17(float) CompositeExtract 430 2 - Store 435 436 - 437: 6(int) Load 8(invocation) - 438: 41(ptr) AccessChain 27(data) 65 29 - 439: 18(fvec4) Load 438 - 440: 18(fvec4) GroupNonUniformFMax 35 ClusteredReduce 439 34 - 441: 41(ptr) AccessChain 27(data) 437 29 - Store 441 440 - 442: 6(int) Load 8(invocation) - 443: 71(ptr) AccessChain 27(data) 29 39 30 - 444: 19(int) Load 443 - 445: 19(int) GroupNonUniformSMax 35 ClusteredReduce 444 34 - 446: 71(ptr) AccessChain 27(data) 442 39 30 - Store 446 445 - 447: 6(int) Load 8(invocation) - 448: 78(ptr) AccessChain 27(data) 39 39 - 449: 20(ivec4) Load 448 - 450: 77(ivec2) VectorShuffle 449 449 0 1 - 451: 77(ivec2) GroupNonUniformSMax 35 ClusteredReduce 450 34 - 452: 71(ptr) AccessChain 27(data) 447 39 30 - 453: 19(int) CompositeExtract 451 0 - Store 452 453 - 454: 71(ptr) AccessChain 27(data) 447 39 34 - 455: 19(int) CompositeExtract 451 1 - Store 454 455 - 456: 6(int) Load 8(invocation) - 457: 78(ptr) AccessChain 27(data) 51 39 - 458: 20(ivec4) Load 457 - 459: 88(ivec3) VectorShuffle 458 458 0 1 2 - 460: 88(ivec3) GroupNonUniformSMax 35 ClusteredReduce 459 34 - 461: 71(ptr) AccessChain 27(data) 456 39 30 - 462: 19(int) CompositeExtract 460 0 - Store 461 462 - 463: 71(ptr) AccessChain 27(data) 456 39 34 - 464: 19(int) CompositeExtract 460 1 - Store 463 464 - 465: 71(ptr) AccessChain 27(data) 456 39 61 - 466: 19(int) CompositeExtract 460 2 - Store 465 466 - 467: 6(int) Load 8(invocation) - 468: 78(ptr) AccessChain 27(data) 65 39 - 469: 20(ivec4) Load 468 - 470: 20(ivec4) GroupNonUniformSMax 35 ClusteredReduce 469 34 - 471: 78(ptr) AccessChain 27(data) 467 39 - Store 471 470 - 472: 6(int) Load 8(invocation) - 473: 105(ptr) AccessChain 27(data) 29 51 30 - 474: 6(int) Load 473 - 475: 6(int) GroupNonUniformUMax 35 ClusteredReduce 474 34 - 476: 105(ptr) AccessChain 27(data) 472 51 30 - Store 476 475 - 477: 6(int) Load 8(invocation) - 478: 112(ptr) AccessChain 27(data) 39 51 - 479: 21(ivec4) Load 478 - 480: 111(ivec2) VectorShuffle 479 479 0 1 - 481: 111(ivec2) GroupNonUniformUMax 35 ClusteredReduce 480 34 - 482: 105(ptr) AccessChain 27(data) 477 51 30 - 483: 6(int) CompositeExtract 481 0 - Store 482 483 - 484: 105(ptr) AccessChain 27(data) 477 51 34 - 485: 6(int) CompositeExtract 481 1 - Store 484 485 - 486: 6(int) Load 8(invocation) - 487: 112(ptr) AccessChain 27(data) 51 51 - 488: 21(ivec4) Load 487 - 489: 122(ivec3) VectorShuffle 488 488 0 1 2 - 490: 122(ivec3) GroupNonUniformUMax 35 ClusteredReduce 489 34 - 491: 105(ptr) AccessChain 27(data) 486 51 30 - 492: 6(int) CompositeExtract 490 0 - Store 491 492 - 493: 105(ptr) AccessChain 27(data) 486 51 34 - 494: 6(int) CompositeExtract 490 1 - Store 493 494 - 495: 105(ptr) AccessChain 27(data) 486 51 61 - 496: 6(int) CompositeExtract 490 2 - Store 495 496 - 497: 6(int) Load 8(invocation) - 498: 112(ptr) AccessChain 27(data) 65 51 - 499: 21(ivec4) Load 498 - 500: 21(ivec4) GroupNonUniformUMax 35 ClusteredReduce 499 34 - 501: 112(ptr) AccessChain 27(data) 497 51 - Store 501 500 - 502: 6(int) Load 8(invocation) - 503: 139(ptr) AccessChain 27(data) 29 65 30 - 504:22(float64_t) Load 503 - 505:22(float64_t) GroupNonUniformFMax 35 ClusteredReduce 504 34 - 506: 139(ptr) AccessChain 27(data) 502 65 30 - Store 506 505 - 507: 6(int) Load 8(invocation) - 508: 146(ptr) AccessChain 27(data) 39 65 - 509: 23(f64vec4) Load 508 - 510:145(f64vec2) VectorShuffle 509 509 0 1 - 511:145(f64vec2) GroupNonUniformFMax 35 ClusteredReduce 510 34 - 512: 139(ptr) AccessChain 27(data) 507 65 30 - 513:22(float64_t) CompositeExtract 511 0 - Store 512 513 - 514: 139(ptr) AccessChain 27(data) 507 65 34 - 515:22(float64_t) CompositeExtract 511 1 - Store 514 515 - 516: 6(int) Load 8(invocation) - 517: 146(ptr) AccessChain 27(data) 51 65 - 518: 23(f64vec4) Load 517 - 519:156(f64vec3) VectorShuffle 518 518 0 1 2 - 520:156(f64vec3) GroupNonUniformFMax 35 ClusteredReduce 519 34 - 521: 139(ptr) AccessChain 27(data) 516 65 30 - 522:22(float64_t) CompositeExtract 520 0 - Store 521 522 - 523: 139(ptr) AccessChain 27(data) 516 65 34 - 524:22(float64_t) CompositeExtract 520 1 - Store 523 524 - 525: 139(ptr) AccessChain 27(data) 516 65 61 - 526:22(float64_t) CompositeExtract 520 2 - Store 525 526 - 527: 6(int) Load 8(invocation) - 528: 146(ptr) AccessChain 27(data) 65 65 - 529: 23(f64vec4) Load 528 - 530: 23(f64vec4) GroupNonUniformFMax 35 ClusteredReduce 529 34 - 531: 146(ptr) AccessChain 27(data) 527 65 - Store 531 530 - 532: 6(int) Load 8(invocation) - 533: 71(ptr) AccessChain 27(data) 29 39 30 - 534: 19(int) Load 533 - 535: 19(int) GroupNonUniformBitwiseAnd 35 ClusteredReduce 534 34 - 536: 71(ptr) AccessChain 27(data) 532 39 30 - Store 536 535 - 537: 6(int) Load 8(invocation) - 538: 78(ptr) AccessChain 27(data) 39 39 - 539: 20(ivec4) Load 538 - 540: 77(ivec2) VectorShuffle 539 539 0 1 - 541: 77(ivec2) GroupNonUniformBitwiseAnd 35 ClusteredReduce 540 34 - 542: 71(ptr) AccessChain 27(data) 537 39 30 - 543: 19(int) CompositeExtract 541 0 - Store 542 543 - 544: 71(ptr) AccessChain 27(data) 537 39 34 - 545: 19(int) CompositeExtract 541 1 - Store 544 545 - 546: 6(int) Load 8(invocation) - 547: 78(ptr) AccessChain 27(data) 51 39 - 548: 20(ivec4) Load 547 - 549: 88(ivec3) VectorShuffle 548 548 0 1 2 - 550: 88(ivec3) GroupNonUniformBitwiseAnd 35 ClusteredReduce 549 34 - 551: 71(ptr) AccessChain 27(data) 546 39 30 - 552: 19(int) CompositeExtract 550 0 - Store 551 552 - 553: 71(ptr) AccessChain 27(data) 546 39 34 - 554: 19(int) CompositeExtract 550 1 - Store 553 554 - 555: 71(ptr) AccessChain 27(data) 546 39 61 - 556: 19(int) CompositeExtract 550 2 - Store 555 556 - 557: 6(int) Load 8(invocation) - 558: 78(ptr) AccessChain 27(data) 65 39 - 559: 20(ivec4) Load 558 - 560: 20(ivec4) GroupNonUniformBitwiseAnd 35 ClusteredReduce 559 34 - 561: 78(ptr) AccessChain 27(data) 557 39 - Store 561 560 - 562: 6(int) Load 8(invocation) - 563: 105(ptr) AccessChain 27(data) 29 51 30 - 564: 6(int) Load 563 - 565: 6(int) GroupNonUniformBitwiseAnd 35 ClusteredReduce 564 34 - 566: 105(ptr) AccessChain 27(data) 562 51 30 - Store 566 565 - 567: 6(int) Load 8(invocation) - 568: 112(ptr) AccessChain 27(data) 39 51 - 569: 21(ivec4) Load 568 - 570: 111(ivec2) VectorShuffle 569 569 0 1 - 571: 111(ivec2) GroupNonUniformBitwiseAnd 35 ClusteredReduce 570 34 - 572: 105(ptr) AccessChain 27(data) 567 51 30 - 573: 6(int) CompositeExtract 571 0 - Store 572 573 - 574: 105(ptr) AccessChain 27(data) 567 51 34 - 575: 6(int) CompositeExtract 571 1 - Store 574 575 - 576: 6(int) Load 8(invocation) - 577: 112(ptr) AccessChain 27(data) 51 51 - 578: 21(ivec4) Load 577 - 579: 122(ivec3) VectorShuffle 578 578 0 1 2 - 580: 122(ivec3) GroupNonUniformBitwiseAnd 35 ClusteredReduce 579 34 - 581: 105(ptr) AccessChain 27(data) 576 51 30 - 582: 6(int) CompositeExtract 580 0 - Store 581 582 - 583: 105(ptr) AccessChain 27(data) 576 51 34 - 584: 6(int) CompositeExtract 580 1 - Store 583 584 - 585: 105(ptr) AccessChain 27(data) 576 51 61 - 586: 6(int) CompositeExtract 580 2 - Store 585 586 - 587: 6(int) Load 8(invocation) - 588: 112(ptr) AccessChain 27(data) 65 51 - 589: 21(ivec4) Load 588 - 590: 21(ivec4) GroupNonUniformBitwiseAnd 35 ClusteredReduce 589 34 - 591: 112(ptr) AccessChain 27(data) 587 51 - Store 591 590 - 592: 6(int) Load 8(invocation) - 593: 71(ptr) AccessChain 27(data) 29 39 30 - 594: 19(int) Load 593 - 596: 595(bool) SLessThan 594 29 - 597: 595(bool) GroupNonUniformLogicalAnd 35 ClusteredReduce 596 34 - 598: 19(int) Select 597 39 29 - 599: 71(ptr) AccessChain 27(data) 592 39 30 - Store 599 598 - 600: 6(int) Load 8(invocation) - 601: 78(ptr) AccessChain 27(data) 39 39 - 602: 20(ivec4) Load 601 - 603: 77(ivec2) VectorShuffle 602 602 0 1 - 606: 605(bvec2) SLessThan 603 604 - 607: 605(bvec2) GroupNonUniformLogicalAnd 35 ClusteredReduce 606 34 - 609: 77(ivec2) Select 607 608 604 - 610: 71(ptr) AccessChain 27(data) 600 39 30 - 611: 19(int) CompositeExtract 609 0 - Store 610 611 - 612: 71(ptr) AccessChain 27(data) 600 39 34 - 613: 19(int) CompositeExtract 609 1 - Store 612 613 - 614: 6(int) Load 8(invocation) - 615: 78(ptr) AccessChain 27(data) 39 39 - 616: 20(ivec4) Load 615 - 617: 88(ivec3) VectorShuffle 616 616 0 1 2 - 620: 619(bvec3) SLessThan 617 618 - 621: 619(bvec3) GroupNonUniformLogicalAnd 35 ClusteredReduce 620 34 - 623: 88(ivec3) Select 621 622 618 - 624: 71(ptr) AccessChain 27(data) 614 39 30 - 625: 19(int) CompositeExtract 623 0 - Store 624 625 - 626: 71(ptr) AccessChain 27(data) 614 39 34 - 627: 19(int) CompositeExtract 623 1 - Store 626 627 - 628: 71(ptr) AccessChain 27(data) 614 39 61 - 629: 19(int) CompositeExtract 623 2 - Store 628 629 - 630: 6(int) Load 8(invocation) - 631: 78(ptr) AccessChain 27(data) 39 39 - 632: 20(ivec4) Load 631 - 635: 634(bvec4) SLessThan 632 633 - 636: 634(bvec4) GroupNonUniformLogicalAnd 35 ClusteredReduce 635 34 - 638: 20(ivec4) Select 636 637 633 - 639: 78(ptr) AccessChain 27(data) 630 39 - Store 639 638 - 640: 6(int) Load 8(invocation) - 641: 71(ptr) AccessChain 27(data) 29 39 30 - 642: 19(int) Load 641 - 643: 19(int) GroupNonUniformBitwiseOr 35 ClusteredReduce 642 34 - 644: 71(ptr) AccessChain 27(data) 640 39 30 - Store 644 643 - 645: 6(int) Load 8(invocation) - 646: 78(ptr) AccessChain 27(data) 39 39 - 647: 20(ivec4) Load 646 - 648: 77(ivec2) VectorShuffle 647 647 0 1 - 649: 77(ivec2) GroupNonUniformBitwiseOr 35 ClusteredReduce 648 34 - 650: 71(ptr) AccessChain 27(data) 645 39 30 - 651: 19(int) CompositeExtract 649 0 - Store 650 651 - 652: 71(ptr) AccessChain 27(data) 645 39 34 - 653: 19(int) CompositeExtract 649 1 - Store 652 653 - 654: 6(int) Load 8(invocation) - 655: 78(ptr) AccessChain 27(data) 51 39 - 656: 20(ivec4) Load 655 - 657: 88(ivec3) VectorShuffle 656 656 0 1 2 - 658: 88(ivec3) GroupNonUniformBitwiseOr 35 ClusteredReduce 657 34 - 659: 71(ptr) AccessChain 27(data) 654 39 30 - 660: 19(int) CompositeExtract 658 0 - Store 659 660 - 661: 71(ptr) AccessChain 27(data) 654 39 34 - 662: 19(int) CompositeExtract 658 1 - Store 661 662 - 663: 71(ptr) AccessChain 27(data) 654 39 61 - 664: 19(int) CompositeExtract 658 2 - Store 663 664 - 665: 6(int) Load 8(invocation) - 666: 78(ptr) AccessChain 27(data) 65 39 - 667: 20(ivec4) Load 666 - 668: 20(ivec4) GroupNonUniformBitwiseOr 35 ClusteredReduce 667 34 - 669: 78(ptr) AccessChain 27(data) 665 39 - Store 669 668 - 670: 6(int) Load 8(invocation) - 671: 105(ptr) AccessChain 27(data) 29 51 30 - 672: 6(int) Load 671 - 673: 6(int) GroupNonUniformBitwiseOr 35 ClusteredReduce 672 34 - 674: 105(ptr) AccessChain 27(data) 670 51 30 - Store 674 673 - 675: 6(int) Load 8(invocation) - 676: 112(ptr) AccessChain 27(data) 39 51 - 677: 21(ivec4) Load 676 - 678: 111(ivec2) VectorShuffle 677 677 0 1 - 679: 111(ivec2) GroupNonUniformBitwiseOr 35 ClusteredReduce 678 34 - 680: 105(ptr) AccessChain 27(data) 675 51 30 - 681: 6(int) CompositeExtract 679 0 - Store 680 681 - 682: 105(ptr) AccessChain 27(data) 675 51 34 - 683: 6(int) CompositeExtract 679 1 - Store 682 683 - 684: 6(int) Load 8(invocation) - 685: 112(ptr) AccessChain 27(data) 51 51 - 686: 21(ivec4) Load 685 - 687: 122(ivec3) VectorShuffle 686 686 0 1 2 - 688: 122(ivec3) GroupNonUniformBitwiseOr 35 ClusteredReduce 687 34 - 689: 105(ptr) AccessChain 27(data) 684 51 30 - 690: 6(int) CompositeExtract 688 0 - Store 689 690 - 691: 105(ptr) AccessChain 27(data) 684 51 34 - 692: 6(int) CompositeExtract 688 1 - Store 691 692 - 693: 105(ptr) AccessChain 27(data) 684 51 61 - 694: 6(int) CompositeExtract 688 2 - Store 693 694 - 695: 6(int) Load 8(invocation) - 696: 112(ptr) AccessChain 27(data) 65 51 - 697: 21(ivec4) Load 696 - 698: 21(ivec4) GroupNonUniformBitwiseOr 35 ClusteredReduce 697 34 - 699: 112(ptr) AccessChain 27(data) 695 51 - Store 699 698 - 700: 6(int) Load 8(invocation) - 701: 71(ptr) AccessChain 27(data) 29 39 30 - 702: 19(int) Load 701 - 703: 595(bool) SLessThan 702 29 - 704: 595(bool) GroupNonUniformLogicalOr 35 ClusteredReduce 703 34 - 705: 19(int) Select 704 39 29 - 706: 71(ptr) AccessChain 27(data) 700 39 30 - Store 706 705 - 707: 6(int) Load 8(invocation) - 708: 78(ptr) AccessChain 27(data) 39 39 - 709: 20(ivec4) Load 708 - 710: 77(ivec2) VectorShuffle 709 709 0 1 - 711: 605(bvec2) SLessThan 710 604 - 712: 605(bvec2) GroupNonUniformLogicalOr 35 ClusteredReduce 711 34 - 713: 77(ivec2) Select 712 608 604 - 714: 71(ptr) AccessChain 27(data) 707 39 30 - 715: 19(int) CompositeExtract 713 0 - Store 714 715 - 716: 71(ptr) AccessChain 27(data) 707 39 34 - 717: 19(int) CompositeExtract 713 1 - Store 716 717 - 718: 6(int) Load 8(invocation) - 719: 78(ptr) AccessChain 27(data) 39 39 - 720: 20(ivec4) Load 719 - 721: 88(ivec3) VectorShuffle 720 720 0 1 2 - 722: 619(bvec3) SLessThan 721 618 - 723: 619(bvec3) GroupNonUniformLogicalOr 35 ClusteredReduce 722 34 - 724: 88(ivec3) Select 723 622 618 - 725: 71(ptr) AccessChain 27(data) 718 39 30 - 726: 19(int) CompositeExtract 724 0 - Store 725 726 - 727: 71(ptr) AccessChain 27(data) 718 39 34 - 728: 19(int) CompositeExtract 724 1 - Store 727 728 - 729: 71(ptr) AccessChain 27(data) 718 39 61 - 730: 19(int) CompositeExtract 724 2 - Store 729 730 - 731: 6(int) Load 8(invocation) - 732: 78(ptr) AccessChain 27(data) 39 39 - 733: 20(ivec4) Load 732 - 734: 634(bvec4) SLessThan 733 633 - 735: 634(bvec4) GroupNonUniformLogicalOr 35 ClusteredReduce 734 34 - 736: 20(ivec4) Select 735 637 633 - 737: 78(ptr) AccessChain 27(data) 731 39 - Store 737 736 - 738: 6(int) Load 8(invocation) - 739: 71(ptr) AccessChain 27(data) 29 39 30 - 740: 19(int) Load 739 - 741: 19(int) GroupNonUniformBitwiseXor 35 ClusteredReduce 740 34 - 742: 71(ptr) AccessChain 27(data) 738 39 30 - Store 742 741 - 743: 6(int) Load 8(invocation) - 744: 78(ptr) AccessChain 27(data) 39 39 - 745: 20(ivec4) Load 744 - 746: 77(ivec2) VectorShuffle 745 745 0 1 - 747: 77(ivec2) GroupNonUniformBitwiseXor 35 ClusteredReduce 746 34 - 748: 71(ptr) AccessChain 27(data) 743 39 30 - 749: 19(int) CompositeExtract 747 0 - Store 748 749 - 750: 71(ptr) AccessChain 27(data) 743 39 34 - 751: 19(int) CompositeExtract 747 1 - Store 750 751 - 752: 6(int) Load 8(invocation) - 753: 78(ptr) AccessChain 27(data) 51 39 - 754: 20(ivec4) Load 753 - 755: 88(ivec3) VectorShuffle 754 754 0 1 2 - 756: 88(ivec3) GroupNonUniformBitwiseXor 35 ClusteredReduce 755 34 - 757: 71(ptr) AccessChain 27(data) 752 39 30 - 758: 19(int) CompositeExtract 756 0 - Store 757 758 - 759: 71(ptr) AccessChain 27(data) 752 39 34 - 760: 19(int) CompositeExtract 756 1 - Store 759 760 - 761: 71(ptr) AccessChain 27(data) 752 39 61 - 762: 19(int) CompositeExtract 756 2 - Store 761 762 - 763: 6(int) Load 8(invocation) - 764: 78(ptr) AccessChain 27(data) 65 39 - 765: 20(ivec4) Load 764 - 766: 20(ivec4) GroupNonUniformBitwiseXor 35 ClusteredReduce 765 34 - 767: 78(ptr) AccessChain 27(data) 763 39 - Store 767 766 - 768: 6(int) Load 8(invocation) - 769: 105(ptr) AccessChain 27(data) 29 51 30 - 770: 6(int) Load 769 - 771: 6(int) GroupNonUniformBitwiseXor 35 ClusteredReduce 770 34 - 772: 105(ptr) AccessChain 27(data) 768 51 30 - Store 772 771 - 773: 6(int) Load 8(invocation) - 774: 112(ptr) AccessChain 27(data) 39 51 - 775: 21(ivec4) Load 774 - 776: 111(ivec2) VectorShuffle 775 775 0 1 - 777: 111(ivec2) GroupNonUniformBitwiseXor 35 ClusteredReduce 776 34 - 778: 105(ptr) AccessChain 27(data) 773 51 30 - 779: 6(int) CompositeExtract 777 0 - Store 778 779 - 780: 105(ptr) AccessChain 27(data) 773 51 34 - 781: 6(int) CompositeExtract 777 1 - Store 780 781 - 782: 6(int) Load 8(invocation) - 783: 112(ptr) AccessChain 27(data) 51 51 - 784: 21(ivec4) Load 783 - 785: 122(ivec3) VectorShuffle 784 784 0 1 2 - 786: 122(ivec3) GroupNonUniformBitwiseXor 35 ClusteredReduce 785 34 - 787: 105(ptr) AccessChain 27(data) 782 51 30 - 788: 6(int) CompositeExtract 786 0 - Store 787 788 - 789: 105(ptr) AccessChain 27(data) 782 51 34 - 790: 6(int) CompositeExtract 786 1 - Store 789 790 - 791: 105(ptr) AccessChain 27(data) 782 51 61 - 792: 6(int) CompositeExtract 786 2 - Store 791 792 - 793: 6(int) Load 8(invocation) - 794: 112(ptr) AccessChain 27(data) 65 51 - 795: 21(ivec4) Load 794 - 796: 21(ivec4) GroupNonUniformBitwiseXor 35 ClusteredReduce 795 34 - 797: 112(ptr) AccessChain 27(data) 793 51 - Store 797 796 - 798: 6(int) Load 8(invocation) - 799: 71(ptr) AccessChain 27(data) 29 39 30 - 800: 19(int) Load 799 - 801: 595(bool) SLessThan 800 29 - 802: 595(bool) GroupNonUniformLogicalXor 35 ClusteredReduce 801 34 - 803: 19(int) Select 802 39 29 - 804: 71(ptr) AccessChain 27(data) 798 39 30 - Store 804 803 - 805: 6(int) Load 8(invocation) - 806: 78(ptr) AccessChain 27(data) 39 39 - 807: 20(ivec4) Load 806 - 808: 77(ivec2) VectorShuffle 807 807 0 1 - 809: 605(bvec2) SLessThan 808 604 - 810: 605(bvec2) GroupNonUniformLogicalXor 35 ClusteredReduce 809 34 - 811: 77(ivec2) Select 810 608 604 - 812: 71(ptr) AccessChain 27(data) 805 39 30 - 813: 19(int) CompositeExtract 811 0 - Store 812 813 - 814: 71(ptr) AccessChain 27(data) 805 39 34 - 815: 19(int) CompositeExtract 811 1 - Store 814 815 - 816: 6(int) Load 8(invocation) - 817: 78(ptr) AccessChain 27(data) 39 39 - 818: 20(ivec4) Load 817 - 819: 88(ivec3) VectorShuffle 818 818 0 1 2 - 820: 619(bvec3) SLessThan 819 618 - 821: 619(bvec3) GroupNonUniformLogicalXor 35 ClusteredReduce 820 34 - 822: 88(ivec3) Select 821 622 618 - 823: 71(ptr) AccessChain 27(data) 816 39 30 - 824: 19(int) CompositeExtract 822 0 - Store 823 824 - 825: 71(ptr) AccessChain 27(data) 816 39 34 - 826: 19(int) CompositeExtract 822 1 - Store 825 826 - 827: 71(ptr) AccessChain 27(data) 816 39 61 - 828: 19(int) CompositeExtract 822 2 - Store 827 828 - 829: 6(int) Load 8(invocation) - 830: 78(ptr) AccessChain 27(data) 39 39 - 831: 20(ivec4) Load 830 - 832: 634(bvec4) SLessThan 831 633 - 833: 634(bvec4) GroupNonUniformLogicalXor 35 ClusteredReduce 832 34 - 834: 20(ivec4) Select 833 637 633 - 835: 78(ptr) AccessChain 27(data) 829 39 - Store 835 834 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.subgroupClusteredNeg.comp.out b/deps/glslang/Test/baseResults/spv.subgroupClusteredNeg.comp.out deleted file mode 100644 index 911ff72d..00000000 --- a/deps/glslang/Test/baseResults/spv.subgroupClusteredNeg.comp.out +++ /dev/null @@ -1,13 +0,0 @@ -spv.subgroupClusteredNeg.comp -ERROR: 0:22: 'cluster size' : argument must be at least 1 -ERROR: 0:24: 'cluster size' : argument must be a power of 2 -ERROR: 0:27: 'cluster size' : argument must be a power of 2 -ERROR: 0:29: 'cluster size' : argument must be at least 1 -ERROR: 0:31: 'cluster size' : argument must be at least 1 -ERROR: 0:33: 'cluster size' : argument must be compile-time constant -ERROR: 0:36: 'cluster size' : argument must be compile-time constant -ERROR: 0:37: 'cluster size' : argument must be compile-time constant -ERROR: 8 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesArithmetic.comp.out b/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesArithmetic.comp.out deleted file mode 100644 index 828ce616..00000000 --- a/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesArithmetic.comp.out +++ /dev/null @@ -1,5247 +0,0 @@ -spv.subgroupExtendedTypesArithmetic.comp -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 4218 - - Capability Shader - Capability Float16 - Capability Int64 - Capability Int16 - Capability Int8 - Capability GroupNonUniform - Capability GroupNonUniformArithmetic - Capability StorageUniformBufferBlock16 - Capability StorageBuffer8BitAccess - Extension "SPV_KHR_8bit_storage" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 10 12 - ExecutionMode 4 LocalSize 8 1 1 - Source GLSL 450 - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int16" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int64" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int8" - SourceExtension "GL_EXT_shader_subgroup_extended_types_float16" - SourceExtension "GL_EXT_shader_subgroup_extended_types_int16" - SourceExtension "GL_EXT_shader_subgroup_extended_types_int64" - SourceExtension "GL_EXT_shader_subgroup_extended_types_int8" - SourceExtension "GL_KHR_shader_subgroup_arithmetic" - SourceExtension "GL_KHR_shader_subgroup_basic" - Name 4 "main" - Name 8 "invocation" - Name 10 "gl_SubgroupInvocationID" - Name 12 "gl_SubgroupSize" - Name 31 "Buffers" - MemberName 31(Buffers) 0 "i8" - MemberName 31(Buffers) 1 "u8" - MemberName 31(Buffers) 2 "i16" - MemberName 31(Buffers) 3 "u16" - MemberName 31(Buffers) 4 "i64" - MemberName 31(Buffers) 5 "u64" - MemberName 31(Buffers) 6 "f16" - Name 34 "data" - Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision - Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId - Decorate 11 RelaxedPrecision - Decorate 12(gl_SubgroupSize) RelaxedPrecision - Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize - Decorate 13 RelaxedPrecision - Decorate 14 RelaxedPrecision - Decorate 16 RelaxedPrecision - MemberDecorate 31(Buffers) 0 Offset 0 - MemberDecorate 31(Buffers) 1 Offset 4 - MemberDecorate 31(Buffers) 2 Offset 8 - MemberDecorate 31(Buffers) 3 Offset 16 - MemberDecorate 31(Buffers) 4 Offset 32 - MemberDecorate 31(Buffers) 5 Offset 64 - MemberDecorate 31(Buffers) 6 Offset 96 - Decorate 31(Buffers) Block - Decorate 34(data) DescriptorSet 0 - Decorate 34(data) Binding 0 - Decorate 4217 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypePointer Input 6(int) -10(gl_SubgroupInvocationID): 9(ptr) Variable Input -12(gl_SubgroupSize): 9(ptr) Variable Input - 15: 6(int) Constant 4 - 17: TypeInt 8 1 - 18: TypeVector 17(int8_t) 4 - 19: TypeInt 8 0 - 20: TypeVector 19(int8_t) 4 - 21: TypeInt 16 1 - 22: TypeVector 21(int16_t) 4 - 23: TypeInt 16 0 - 24: TypeVector 23(int16_t) 4 - 25: TypeInt 64 1 - 26: TypeVector 25(int64_t) 4 - 27: TypeInt 64 0 - 28: TypeVector 27(int64_t) 4 - 29: TypeFloat 16 - 30: TypeVector 29(float16_t) 4 - 31(Buffers): TypeStruct 18(i8vec4) 20(i8vec4) 22(i16vec4) 24(i16vec4) 26(i64vec4) 28(i64vec4) 30(f16vec4) - 32: TypeArray 31(Buffers) 15 - 33: TypePointer StorageBuffer 32 - 34(data): 33(ptr) Variable StorageBuffer - 36: TypeInt 32 1 - 37: 36(int) Constant 0 - 38: 6(int) Constant 0 - 39: TypePointer StorageBuffer 17(int8_t) - 42: 6(int) Constant 3 - 46: 36(int) Constant 1 - 47: TypeVector 17(int8_t) 2 - 48: TypePointer StorageBuffer 18(i8vec4) - 55: 6(int) Constant 1 - 59: 36(int) Constant 2 - 60: TypeVector 17(int8_t) 3 - 69: 6(int) Constant 2 - 73: 36(int) Constant 3 - 679: TypePointer StorageBuffer 19(int8_t) - 685: TypeVector 19(int8_t) 2 - 686: TypePointer StorageBuffer 20(i8vec4) - 696: TypeVector 19(int8_t) 3 - 1313: TypePointer StorageBuffer 21(int16_t) - 1319: TypeVector 21(int16_t) 2 - 1320: TypePointer StorageBuffer 22(i16vec4) - 1330: TypeVector 21(int16_t) 3 - 1947: TypePointer StorageBuffer 23(int16_t) - 1953: TypeVector 23(int16_t) 2 - 1954: TypePointer StorageBuffer 24(i16vec4) - 1964: TypeVector 23(int16_t) 3 - 2581: 36(int) Constant 4 - 2582: TypePointer StorageBuffer 25(int64_t) - 2588: TypeVector 25(int64_t) 2 - 2589: TypePointer StorageBuffer 26(i64vec4) - 2599: TypeVector 25(int64_t) 3 - 3216: 36(int) Constant 5 - 3217: TypePointer StorageBuffer 27(int64_t) - 3223: TypeVector 27(int64_t) 2 - 3224: TypePointer StorageBuffer 28(i64vec4) - 3234: TypeVector 27(int64_t) 3 - 3851: 36(int) Constant 6 - 3852: TypePointer StorageBuffer 29(float16_t) - 3858: TypeVector 29(float16_t) 2 - 3859: TypePointer StorageBuffer 30(f16vec4) - 3869: TypeVector 29(float16_t) 3 - 4215: TypeVector 6(int) 3 - 4216: 6(int) Constant 8 - 4217: 4215(ivec3) ConstantComposite 4216 55 55 - 4(main): 2 Function None 3 - 5: Label - 8(invocation): 7(ptr) Variable Function - 11: 6(int) Load 10(gl_SubgroupInvocationID) - 13: 6(int) Load 12(gl_SubgroupSize) - 14: 6(int) IAdd 11 13 - 16: 6(int) UMod 14 15 - Store 8(invocation) 16 - 35: 6(int) Load 8(invocation) - 40: 39(ptr) AccessChain 34(data) 37 37 38 - 41: 17(int8_t) Load 40 - 43: 17(int8_t) GroupNonUniformIAdd 42 Reduce 41 - 44: 39(ptr) AccessChain 34(data) 35 37 38 - Store 44 43 - 45: 6(int) Load 8(invocation) - 49: 48(ptr) AccessChain 34(data) 46 37 - 50: 18(i8vec4) Load 49 - 51: 47(i8vec2) VectorShuffle 50 50 0 1 - 52: 47(i8vec2) GroupNonUniformIAdd 42 Reduce 51 - 53: 39(ptr) AccessChain 34(data) 45 37 38 - 54: 17(int8_t) CompositeExtract 52 0 - Store 53 54 - 56: 39(ptr) AccessChain 34(data) 45 37 55 - 57: 17(int8_t) CompositeExtract 52 1 - Store 56 57 - 58: 6(int) Load 8(invocation) - 61: 48(ptr) AccessChain 34(data) 59 37 - 62: 18(i8vec4) Load 61 - 63: 60(i8vec3) VectorShuffle 62 62 0 1 2 - 64: 60(i8vec3) GroupNonUniformIAdd 42 Reduce 63 - 65: 39(ptr) AccessChain 34(data) 58 37 38 - 66: 17(int8_t) CompositeExtract 64 0 - Store 65 66 - 67: 39(ptr) AccessChain 34(data) 58 37 55 - 68: 17(int8_t) CompositeExtract 64 1 - Store 67 68 - 70: 39(ptr) AccessChain 34(data) 58 37 69 - 71: 17(int8_t) CompositeExtract 64 2 - Store 70 71 - 72: 6(int) Load 8(invocation) - 74: 48(ptr) AccessChain 34(data) 73 37 - 75: 18(i8vec4) Load 74 - 76: 18(i8vec4) GroupNonUniformIAdd 42 Reduce 75 - 77: 48(ptr) AccessChain 34(data) 72 37 - Store 77 76 - 78: 6(int) Load 8(invocation) - 79: 39(ptr) AccessChain 34(data) 37 37 38 - 80: 17(int8_t) Load 79 - 81: 17(int8_t) GroupNonUniformIMul 42 Reduce 80 - 82: 39(ptr) AccessChain 34(data) 78 37 38 - Store 82 81 - 83: 6(int) Load 8(invocation) - 84: 48(ptr) AccessChain 34(data) 46 37 - 85: 18(i8vec4) Load 84 - 86: 47(i8vec2) VectorShuffle 85 85 0 1 - 87: 47(i8vec2) GroupNonUniformIMul 42 Reduce 86 - 88: 39(ptr) AccessChain 34(data) 83 37 38 - 89: 17(int8_t) CompositeExtract 87 0 - Store 88 89 - 90: 39(ptr) AccessChain 34(data) 83 37 55 - 91: 17(int8_t) CompositeExtract 87 1 - Store 90 91 - 92: 6(int) Load 8(invocation) - 93: 48(ptr) AccessChain 34(data) 59 37 - 94: 18(i8vec4) Load 93 - 95: 60(i8vec3) VectorShuffle 94 94 0 1 2 - 96: 60(i8vec3) GroupNonUniformIMul 42 Reduce 95 - 97: 39(ptr) AccessChain 34(data) 92 37 38 - 98: 17(int8_t) CompositeExtract 96 0 - Store 97 98 - 99: 39(ptr) AccessChain 34(data) 92 37 55 - 100: 17(int8_t) CompositeExtract 96 1 - Store 99 100 - 101: 39(ptr) AccessChain 34(data) 92 37 69 - 102: 17(int8_t) CompositeExtract 96 2 - Store 101 102 - 103: 6(int) Load 8(invocation) - 104: 48(ptr) AccessChain 34(data) 73 37 - 105: 18(i8vec4) Load 104 - 106: 18(i8vec4) GroupNonUniformIMul 42 Reduce 105 - 107: 48(ptr) AccessChain 34(data) 103 37 - Store 107 106 - 108: 6(int) Load 8(invocation) - 109: 39(ptr) AccessChain 34(data) 37 37 38 - 110: 17(int8_t) Load 109 - 111: 17(int8_t) GroupNonUniformSMin 42 Reduce 110 - 112: 39(ptr) AccessChain 34(data) 108 37 38 - Store 112 111 - 113: 6(int) Load 8(invocation) - 114: 48(ptr) AccessChain 34(data) 46 37 - 115: 18(i8vec4) Load 114 - 116: 47(i8vec2) VectorShuffle 115 115 0 1 - 117: 47(i8vec2) GroupNonUniformSMin 42 Reduce 116 - 118: 39(ptr) AccessChain 34(data) 113 37 38 - 119: 17(int8_t) CompositeExtract 117 0 - Store 118 119 - 120: 39(ptr) AccessChain 34(data) 113 37 55 - 121: 17(int8_t) CompositeExtract 117 1 - Store 120 121 - 122: 6(int) Load 8(invocation) - 123: 48(ptr) AccessChain 34(data) 59 37 - 124: 18(i8vec4) Load 123 - 125: 60(i8vec3) VectorShuffle 124 124 0 1 2 - 126: 60(i8vec3) GroupNonUniformSMin 42 Reduce 125 - 127: 39(ptr) AccessChain 34(data) 122 37 38 - 128: 17(int8_t) CompositeExtract 126 0 - Store 127 128 - 129: 39(ptr) AccessChain 34(data) 122 37 55 - 130: 17(int8_t) CompositeExtract 126 1 - Store 129 130 - 131: 39(ptr) AccessChain 34(data) 122 37 69 - 132: 17(int8_t) CompositeExtract 126 2 - Store 131 132 - 133: 6(int) Load 8(invocation) - 134: 48(ptr) AccessChain 34(data) 73 37 - 135: 18(i8vec4) Load 134 - 136: 18(i8vec4) GroupNonUniformSMin 42 Reduce 135 - 137: 48(ptr) AccessChain 34(data) 133 37 - Store 137 136 - 138: 6(int) Load 8(invocation) - 139: 39(ptr) AccessChain 34(data) 37 37 38 - 140: 17(int8_t) Load 139 - 141: 17(int8_t) GroupNonUniformSMax 42 Reduce 140 - 142: 39(ptr) AccessChain 34(data) 138 37 38 - Store 142 141 - 143: 6(int) Load 8(invocation) - 144: 48(ptr) AccessChain 34(data) 46 37 - 145: 18(i8vec4) Load 144 - 146: 47(i8vec2) VectorShuffle 145 145 0 1 - 147: 47(i8vec2) GroupNonUniformSMax 42 Reduce 146 - 148: 39(ptr) AccessChain 34(data) 143 37 38 - 149: 17(int8_t) CompositeExtract 147 0 - Store 148 149 - 150: 39(ptr) AccessChain 34(data) 143 37 55 - 151: 17(int8_t) CompositeExtract 147 1 - Store 150 151 - 152: 6(int) Load 8(invocation) - 153: 48(ptr) AccessChain 34(data) 59 37 - 154: 18(i8vec4) Load 153 - 155: 60(i8vec3) VectorShuffle 154 154 0 1 2 - 156: 60(i8vec3) GroupNonUniformSMax 42 Reduce 155 - 157: 39(ptr) AccessChain 34(data) 152 37 38 - 158: 17(int8_t) CompositeExtract 156 0 - Store 157 158 - 159: 39(ptr) AccessChain 34(data) 152 37 55 - 160: 17(int8_t) CompositeExtract 156 1 - Store 159 160 - 161: 39(ptr) AccessChain 34(data) 152 37 69 - 162: 17(int8_t) CompositeExtract 156 2 - Store 161 162 - 163: 6(int) Load 8(invocation) - 164: 48(ptr) AccessChain 34(data) 73 37 - 165: 18(i8vec4) Load 164 - 166: 18(i8vec4) GroupNonUniformSMax 42 Reduce 165 - 167: 48(ptr) AccessChain 34(data) 163 37 - Store 167 166 - 168: 6(int) Load 8(invocation) - 169: 39(ptr) AccessChain 34(data) 37 37 38 - 170: 17(int8_t) Load 169 - 171: 17(int8_t) GroupNonUniformBitwiseAnd 42 Reduce 170 - 172: 39(ptr) AccessChain 34(data) 168 37 38 - Store 172 171 - 173: 6(int) Load 8(invocation) - 174: 48(ptr) AccessChain 34(data) 46 37 - 175: 18(i8vec4) Load 174 - 176: 47(i8vec2) VectorShuffle 175 175 0 1 - 177: 47(i8vec2) GroupNonUniformBitwiseAnd 42 Reduce 176 - 178: 39(ptr) AccessChain 34(data) 173 37 38 - 179: 17(int8_t) CompositeExtract 177 0 - Store 178 179 - 180: 39(ptr) AccessChain 34(data) 173 37 55 - 181: 17(int8_t) CompositeExtract 177 1 - Store 180 181 - 182: 6(int) Load 8(invocation) - 183: 48(ptr) AccessChain 34(data) 59 37 - 184: 18(i8vec4) Load 183 - 185: 60(i8vec3) VectorShuffle 184 184 0 1 2 - 186: 60(i8vec3) GroupNonUniformBitwiseAnd 42 Reduce 185 - 187: 39(ptr) AccessChain 34(data) 182 37 38 - 188: 17(int8_t) CompositeExtract 186 0 - Store 187 188 - 189: 39(ptr) AccessChain 34(data) 182 37 55 - 190: 17(int8_t) CompositeExtract 186 1 - Store 189 190 - 191: 39(ptr) AccessChain 34(data) 182 37 69 - 192: 17(int8_t) CompositeExtract 186 2 - Store 191 192 - 193: 6(int) Load 8(invocation) - 194: 48(ptr) AccessChain 34(data) 73 37 - 195: 18(i8vec4) Load 194 - 196: 18(i8vec4) GroupNonUniformBitwiseAnd 42 Reduce 195 - 197: 48(ptr) AccessChain 34(data) 193 37 - Store 197 196 - 198: 6(int) Load 8(invocation) - 199: 39(ptr) AccessChain 34(data) 37 37 38 - 200: 17(int8_t) Load 199 - 201: 17(int8_t) GroupNonUniformBitwiseOr 42 Reduce 200 - 202: 39(ptr) AccessChain 34(data) 198 37 38 - Store 202 201 - 203: 6(int) Load 8(invocation) - 204: 48(ptr) AccessChain 34(data) 46 37 - 205: 18(i8vec4) Load 204 - 206: 47(i8vec2) VectorShuffle 205 205 0 1 - 207: 47(i8vec2) GroupNonUniformBitwiseOr 42 Reduce 206 - 208: 39(ptr) AccessChain 34(data) 203 37 38 - 209: 17(int8_t) CompositeExtract 207 0 - Store 208 209 - 210: 39(ptr) AccessChain 34(data) 203 37 55 - 211: 17(int8_t) CompositeExtract 207 1 - Store 210 211 - 212: 6(int) Load 8(invocation) - 213: 48(ptr) AccessChain 34(data) 59 37 - 214: 18(i8vec4) Load 213 - 215: 60(i8vec3) VectorShuffle 214 214 0 1 2 - 216: 60(i8vec3) GroupNonUniformBitwiseOr 42 Reduce 215 - 217: 39(ptr) AccessChain 34(data) 212 37 38 - 218: 17(int8_t) CompositeExtract 216 0 - Store 217 218 - 219: 39(ptr) AccessChain 34(data) 212 37 55 - 220: 17(int8_t) CompositeExtract 216 1 - Store 219 220 - 221: 39(ptr) AccessChain 34(data) 212 37 69 - 222: 17(int8_t) CompositeExtract 216 2 - Store 221 222 - 223: 6(int) Load 8(invocation) - 224: 48(ptr) AccessChain 34(data) 73 37 - 225: 18(i8vec4) Load 224 - 226: 18(i8vec4) GroupNonUniformBitwiseOr 42 Reduce 225 - 227: 48(ptr) AccessChain 34(data) 223 37 - Store 227 226 - 228: 6(int) Load 8(invocation) - 229: 39(ptr) AccessChain 34(data) 37 37 38 - 230: 17(int8_t) Load 229 - 231: 17(int8_t) GroupNonUniformBitwiseXor 42 Reduce 230 - 232: 39(ptr) AccessChain 34(data) 228 37 38 - Store 232 231 - 233: 6(int) Load 8(invocation) - 234: 48(ptr) AccessChain 34(data) 46 37 - 235: 18(i8vec4) Load 234 - 236: 47(i8vec2) VectorShuffle 235 235 0 1 - 237: 47(i8vec2) GroupNonUniformBitwiseXor 42 Reduce 236 - 238: 39(ptr) AccessChain 34(data) 233 37 38 - 239: 17(int8_t) CompositeExtract 237 0 - Store 238 239 - 240: 39(ptr) AccessChain 34(data) 233 37 55 - 241: 17(int8_t) CompositeExtract 237 1 - Store 240 241 - 242: 6(int) Load 8(invocation) - 243: 48(ptr) AccessChain 34(data) 59 37 - 244: 18(i8vec4) Load 243 - 245: 60(i8vec3) VectorShuffle 244 244 0 1 2 - 246: 60(i8vec3) GroupNonUniformBitwiseXor 42 Reduce 245 - 247: 39(ptr) AccessChain 34(data) 242 37 38 - 248: 17(int8_t) CompositeExtract 246 0 - Store 247 248 - 249: 39(ptr) AccessChain 34(data) 242 37 55 - 250: 17(int8_t) CompositeExtract 246 1 - Store 249 250 - 251: 39(ptr) AccessChain 34(data) 242 37 69 - 252: 17(int8_t) CompositeExtract 246 2 - Store 251 252 - 253: 6(int) Load 8(invocation) - 254: 48(ptr) AccessChain 34(data) 73 37 - 255: 18(i8vec4) Load 254 - 256: 18(i8vec4) GroupNonUniformBitwiseXor 42 Reduce 255 - 257: 48(ptr) AccessChain 34(data) 253 37 - Store 257 256 - 258: 6(int) Load 8(invocation) - 259: 39(ptr) AccessChain 34(data) 37 37 38 - 260: 17(int8_t) Load 259 - 261: 17(int8_t) GroupNonUniformIAdd 42 InclusiveScan 260 - 262: 39(ptr) AccessChain 34(data) 258 37 38 - Store 262 261 - 263: 6(int) Load 8(invocation) - 264: 48(ptr) AccessChain 34(data) 46 37 - 265: 18(i8vec4) Load 264 - 266: 47(i8vec2) VectorShuffle 265 265 0 1 - 267: 47(i8vec2) GroupNonUniformIAdd 42 InclusiveScan 266 - 268: 39(ptr) AccessChain 34(data) 263 37 38 - 269: 17(int8_t) CompositeExtract 267 0 - Store 268 269 - 270: 39(ptr) AccessChain 34(data) 263 37 55 - 271: 17(int8_t) CompositeExtract 267 1 - Store 270 271 - 272: 6(int) Load 8(invocation) - 273: 48(ptr) AccessChain 34(data) 59 37 - 274: 18(i8vec4) Load 273 - 275: 60(i8vec3) VectorShuffle 274 274 0 1 2 - 276: 60(i8vec3) GroupNonUniformIAdd 42 InclusiveScan 275 - 277: 39(ptr) AccessChain 34(data) 272 37 38 - 278: 17(int8_t) CompositeExtract 276 0 - Store 277 278 - 279: 39(ptr) AccessChain 34(data) 272 37 55 - 280: 17(int8_t) CompositeExtract 276 1 - Store 279 280 - 281: 39(ptr) AccessChain 34(data) 272 37 69 - 282: 17(int8_t) CompositeExtract 276 2 - Store 281 282 - 283: 6(int) Load 8(invocation) - 284: 48(ptr) AccessChain 34(data) 73 37 - 285: 18(i8vec4) Load 284 - 286: 18(i8vec4) GroupNonUniformIAdd 42 InclusiveScan 285 - 287: 48(ptr) AccessChain 34(data) 283 37 - Store 287 286 - 288: 6(int) Load 8(invocation) - 289: 39(ptr) AccessChain 34(data) 37 37 38 - 290: 17(int8_t) Load 289 - 291: 17(int8_t) GroupNonUniformIMul 42 InclusiveScan 290 - 292: 39(ptr) AccessChain 34(data) 288 37 38 - Store 292 291 - 293: 6(int) Load 8(invocation) - 294: 48(ptr) AccessChain 34(data) 46 37 - 295: 18(i8vec4) Load 294 - 296: 47(i8vec2) VectorShuffle 295 295 0 1 - 297: 47(i8vec2) GroupNonUniformIMul 42 InclusiveScan 296 - 298: 39(ptr) AccessChain 34(data) 293 37 38 - 299: 17(int8_t) CompositeExtract 297 0 - Store 298 299 - 300: 39(ptr) AccessChain 34(data) 293 37 55 - 301: 17(int8_t) CompositeExtract 297 1 - Store 300 301 - 302: 6(int) Load 8(invocation) - 303: 48(ptr) AccessChain 34(data) 59 37 - 304: 18(i8vec4) Load 303 - 305: 60(i8vec3) VectorShuffle 304 304 0 1 2 - 306: 60(i8vec3) GroupNonUniformIMul 42 InclusiveScan 305 - 307: 39(ptr) AccessChain 34(data) 302 37 38 - 308: 17(int8_t) CompositeExtract 306 0 - Store 307 308 - 309: 39(ptr) AccessChain 34(data) 302 37 55 - 310: 17(int8_t) CompositeExtract 306 1 - Store 309 310 - 311: 39(ptr) AccessChain 34(data) 302 37 69 - 312: 17(int8_t) CompositeExtract 306 2 - Store 311 312 - 313: 6(int) Load 8(invocation) - 314: 48(ptr) AccessChain 34(data) 73 37 - 315: 18(i8vec4) Load 314 - 316: 18(i8vec4) GroupNonUniformIMul 42 InclusiveScan 315 - 317: 48(ptr) AccessChain 34(data) 313 37 - Store 317 316 - 318: 6(int) Load 8(invocation) - 319: 39(ptr) AccessChain 34(data) 37 37 38 - 320: 17(int8_t) Load 319 - 321: 17(int8_t) GroupNonUniformSMin 42 InclusiveScan 320 - 322: 39(ptr) AccessChain 34(data) 318 37 38 - Store 322 321 - 323: 6(int) Load 8(invocation) - 324: 48(ptr) AccessChain 34(data) 46 37 - 325: 18(i8vec4) Load 324 - 326: 47(i8vec2) VectorShuffle 325 325 0 1 - 327: 47(i8vec2) GroupNonUniformSMin 42 InclusiveScan 326 - 328: 39(ptr) AccessChain 34(data) 323 37 38 - 329: 17(int8_t) CompositeExtract 327 0 - Store 328 329 - 330: 39(ptr) AccessChain 34(data) 323 37 55 - 331: 17(int8_t) CompositeExtract 327 1 - Store 330 331 - 332: 6(int) Load 8(invocation) - 333: 48(ptr) AccessChain 34(data) 59 37 - 334: 18(i8vec4) Load 333 - 335: 60(i8vec3) VectorShuffle 334 334 0 1 2 - 336: 60(i8vec3) GroupNonUniformSMin 42 InclusiveScan 335 - 337: 39(ptr) AccessChain 34(data) 332 37 38 - 338: 17(int8_t) CompositeExtract 336 0 - Store 337 338 - 339: 39(ptr) AccessChain 34(data) 332 37 55 - 340: 17(int8_t) CompositeExtract 336 1 - Store 339 340 - 341: 39(ptr) AccessChain 34(data) 332 37 69 - 342: 17(int8_t) CompositeExtract 336 2 - Store 341 342 - 343: 6(int) Load 8(invocation) - 344: 48(ptr) AccessChain 34(data) 73 37 - 345: 18(i8vec4) Load 344 - 346: 18(i8vec4) GroupNonUniformSMin 42 InclusiveScan 345 - 347: 48(ptr) AccessChain 34(data) 343 37 - Store 347 346 - 348: 6(int) Load 8(invocation) - 349: 39(ptr) AccessChain 34(data) 37 37 38 - 350: 17(int8_t) Load 349 - 351: 17(int8_t) GroupNonUniformSMax 42 InclusiveScan 350 - 352: 39(ptr) AccessChain 34(data) 348 37 38 - Store 352 351 - 353: 6(int) Load 8(invocation) - 354: 48(ptr) AccessChain 34(data) 46 37 - 355: 18(i8vec4) Load 354 - 356: 47(i8vec2) VectorShuffle 355 355 0 1 - 357: 47(i8vec2) GroupNonUniformSMax 42 InclusiveScan 356 - 358: 39(ptr) AccessChain 34(data) 353 37 38 - 359: 17(int8_t) CompositeExtract 357 0 - Store 358 359 - 360: 39(ptr) AccessChain 34(data) 353 37 55 - 361: 17(int8_t) CompositeExtract 357 1 - Store 360 361 - 362: 6(int) Load 8(invocation) - 363: 48(ptr) AccessChain 34(data) 59 37 - 364: 18(i8vec4) Load 363 - 365: 60(i8vec3) VectorShuffle 364 364 0 1 2 - 366: 60(i8vec3) GroupNonUniformSMax 42 InclusiveScan 365 - 367: 39(ptr) AccessChain 34(data) 362 37 38 - 368: 17(int8_t) CompositeExtract 366 0 - Store 367 368 - 369: 39(ptr) AccessChain 34(data) 362 37 55 - 370: 17(int8_t) CompositeExtract 366 1 - Store 369 370 - 371: 39(ptr) AccessChain 34(data) 362 37 69 - 372: 17(int8_t) CompositeExtract 366 2 - Store 371 372 - 373: 6(int) Load 8(invocation) - 374: 48(ptr) AccessChain 34(data) 73 37 - 375: 18(i8vec4) Load 374 - 376: 18(i8vec4) GroupNonUniformSMax 42 InclusiveScan 375 - 377: 48(ptr) AccessChain 34(data) 373 37 - Store 377 376 - 378: 6(int) Load 8(invocation) - 379: 39(ptr) AccessChain 34(data) 37 37 38 - 380: 17(int8_t) Load 379 - 381: 17(int8_t) GroupNonUniformBitwiseAnd 42 InclusiveScan 380 - 382: 39(ptr) AccessChain 34(data) 378 37 38 - Store 382 381 - 383: 6(int) Load 8(invocation) - 384: 48(ptr) AccessChain 34(data) 46 37 - 385: 18(i8vec4) Load 384 - 386: 47(i8vec2) VectorShuffle 385 385 0 1 - 387: 47(i8vec2) GroupNonUniformBitwiseAnd 42 InclusiveScan 386 - 388: 39(ptr) AccessChain 34(data) 383 37 38 - 389: 17(int8_t) CompositeExtract 387 0 - Store 388 389 - 390: 39(ptr) AccessChain 34(data) 383 37 55 - 391: 17(int8_t) CompositeExtract 387 1 - Store 390 391 - 392: 6(int) Load 8(invocation) - 393: 48(ptr) AccessChain 34(data) 59 37 - 394: 18(i8vec4) Load 393 - 395: 60(i8vec3) VectorShuffle 394 394 0 1 2 - 396: 60(i8vec3) GroupNonUniformBitwiseAnd 42 InclusiveScan 395 - 397: 39(ptr) AccessChain 34(data) 392 37 38 - 398: 17(int8_t) CompositeExtract 396 0 - Store 397 398 - 399: 39(ptr) AccessChain 34(data) 392 37 55 - 400: 17(int8_t) CompositeExtract 396 1 - Store 399 400 - 401: 39(ptr) AccessChain 34(data) 392 37 69 - 402: 17(int8_t) CompositeExtract 396 2 - Store 401 402 - 403: 6(int) Load 8(invocation) - 404: 48(ptr) AccessChain 34(data) 73 37 - 405: 18(i8vec4) Load 404 - 406: 18(i8vec4) GroupNonUniformBitwiseAnd 42 InclusiveScan 405 - 407: 48(ptr) AccessChain 34(data) 403 37 - Store 407 406 - 408: 6(int) Load 8(invocation) - 409: 39(ptr) AccessChain 34(data) 37 37 38 - 410: 17(int8_t) Load 409 - 411: 17(int8_t) GroupNonUniformBitwiseOr 42 InclusiveScan 410 - 412: 39(ptr) AccessChain 34(data) 408 37 38 - Store 412 411 - 413: 6(int) Load 8(invocation) - 414: 48(ptr) AccessChain 34(data) 46 37 - 415: 18(i8vec4) Load 414 - 416: 47(i8vec2) VectorShuffle 415 415 0 1 - 417: 47(i8vec2) GroupNonUniformBitwiseOr 42 InclusiveScan 416 - 418: 39(ptr) AccessChain 34(data) 413 37 38 - 419: 17(int8_t) CompositeExtract 417 0 - Store 418 419 - 420: 39(ptr) AccessChain 34(data) 413 37 55 - 421: 17(int8_t) CompositeExtract 417 1 - Store 420 421 - 422: 6(int) Load 8(invocation) - 423: 48(ptr) AccessChain 34(data) 59 37 - 424: 18(i8vec4) Load 423 - 425: 60(i8vec3) VectorShuffle 424 424 0 1 2 - 426: 60(i8vec3) GroupNonUniformBitwiseOr 42 InclusiveScan 425 - 427: 39(ptr) AccessChain 34(data) 422 37 38 - 428: 17(int8_t) CompositeExtract 426 0 - Store 427 428 - 429: 39(ptr) AccessChain 34(data) 422 37 55 - 430: 17(int8_t) CompositeExtract 426 1 - Store 429 430 - 431: 39(ptr) AccessChain 34(data) 422 37 69 - 432: 17(int8_t) CompositeExtract 426 2 - Store 431 432 - 433: 6(int) Load 8(invocation) - 434: 48(ptr) AccessChain 34(data) 73 37 - 435: 18(i8vec4) Load 434 - 436: 18(i8vec4) GroupNonUniformBitwiseOr 42 InclusiveScan 435 - 437: 48(ptr) AccessChain 34(data) 433 37 - Store 437 436 - 438: 6(int) Load 8(invocation) - 439: 39(ptr) AccessChain 34(data) 37 37 38 - 440: 17(int8_t) Load 439 - 441: 17(int8_t) GroupNonUniformBitwiseXor 42 InclusiveScan 440 - 442: 39(ptr) AccessChain 34(data) 438 37 38 - Store 442 441 - 443: 6(int) Load 8(invocation) - 444: 48(ptr) AccessChain 34(data) 46 37 - 445: 18(i8vec4) Load 444 - 446: 47(i8vec2) VectorShuffle 445 445 0 1 - 447: 47(i8vec2) GroupNonUniformBitwiseXor 42 InclusiveScan 446 - 448: 39(ptr) AccessChain 34(data) 443 37 38 - 449: 17(int8_t) CompositeExtract 447 0 - Store 448 449 - 450: 39(ptr) AccessChain 34(data) 443 37 55 - 451: 17(int8_t) CompositeExtract 447 1 - Store 450 451 - 452: 6(int) Load 8(invocation) - 453: 48(ptr) AccessChain 34(data) 59 37 - 454: 18(i8vec4) Load 453 - 455: 60(i8vec3) VectorShuffle 454 454 0 1 2 - 456: 60(i8vec3) GroupNonUniformBitwiseXor 42 InclusiveScan 455 - 457: 39(ptr) AccessChain 34(data) 452 37 38 - 458: 17(int8_t) CompositeExtract 456 0 - Store 457 458 - 459: 39(ptr) AccessChain 34(data) 452 37 55 - 460: 17(int8_t) CompositeExtract 456 1 - Store 459 460 - 461: 39(ptr) AccessChain 34(data) 452 37 69 - 462: 17(int8_t) CompositeExtract 456 2 - Store 461 462 - 463: 6(int) Load 8(invocation) - 464: 48(ptr) AccessChain 34(data) 73 37 - 465: 18(i8vec4) Load 464 - 466: 18(i8vec4) GroupNonUniformBitwiseXor 42 InclusiveScan 465 - 467: 48(ptr) AccessChain 34(data) 463 37 - Store 467 466 - 468: 6(int) Load 8(invocation) - 469: 39(ptr) AccessChain 34(data) 37 37 38 - 470: 17(int8_t) Load 469 - 471: 17(int8_t) GroupNonUniformIAdd 42 ExclusiveScan 470 - 472: 39(ptr) AccessChain 34(data) 468 37 38 - Store 472 471 - 473: 6(int) Load 8(invocation) - 474: 48(ptr) AccessChain 34(data) 46 37 - 475: 18(i8vec4) Load 474 - 476: 47(i8vec2) VectorShuffle 475 475 0 1 - 477: 47(i8vec2) GroupNonUniformIAdd 42 ExclusiveScan 476 - 478: 39(ptr) AccessChain 34(data) 473 37 38 - 479: 17(int8_t) CompositeExtract 477 0 - Store 478 479 - 480: 39(ptr) AccessChain 34(data) 473 37 55 - 481: 17(int8_t) CompositeExtract 477 1 - Store 480 481 - 482: 6(int) Load 8(invocation) - 483: 48(ptr) AccessChain 34(data) 59 37 - 484: 18(i8vec4) Load 483 - 485: 60(i8vec3) VectorShuffle 484 484 0 1 2 - 486: 60(i8vec3) GroupNonUniformIAdd 42 ExclusiveScan 485 - 487: 39(ptr) AccessChain 34(data) 482 37 38 - 488: 17(int8_t) CompositeExtract 486 0 - Store 487 488 - 489: 39(ptr) AccessChain 34(data) 482 37 55 - 490: 17(int8_t) CompositeExtract 486 1 - Store 489 490 - 491: 39(ptr) AccessChain 34(data) 482 37 69 - 492: 17(int8_t) CompositeExtract 486 2 - Store 491 492 - 493: 6(int) Load 8(invocation) - 494: 48(ptr) AccessChain 34(data) 73 37 - 495: 18(i8vec4) Load 494 - 496: 18(i8vec4) GroupNonUniformIAdd 42 ExclusiveScan 495 - 497: 48(ptr) AccessChain 34(data) 493 37 - Store 497 496 - 498: 6(int) Load 8(invocation) - 499: 39(ptr) AccessChain 34(data) 37 37 38 - 500: 17(int8_t) Load 499 - 501: 17(int8_t) GroupNonUniformIMul 42 ExclusiveScan 500 - 502: 39(ptr) AccessChain 34(data) 498 37 38 - Store 502 501 - 503: 6(int) Load 8(invocation) - 504: 48(ptr) AccessChain 34(data) 46 37 - 505: 18(i8vec4) Load 504 - 506: 47(i8vec2) VectorShuffle 505 505 0 1 - 507: 47(i8vec2) GroupNonUniformIMul 42 ExclusiveScan 506 - 508: 39(ptr) AccessChain 34(data) 503 37 38 - 509: 17(int8_t) CompositeExtract 507 0 - Store 508 509 - 510: 39(ptr) AccessChain 34(data) 503 37 55 - 511: 17(int8_t) CompositeExtract 507 1 - Store 510 511 - 512: 6(int) Load 8(invocation) - 513: 48(ptr) AccessChain 34(data) 59 37 - 514: 18(i8vec4) Load 513 - 515: 60(i8vec3) VectorShuffle 514 514 0 1 2 - 516: 60(i8vec3) GroupNonUniformIMul 42 ExclusiveScan 515 - 517: 39(ptr) AccessChain 34(data) 512 37 38 - 518: 17(int8_t) CompositeExtract 516 0 - Store 517 518 - 519: 39(ptr) AccessChain 34(data) 512 37 55 - 520: 17(int8_t) CompositeExtract 516 1 - Store 519 520 - 521: 39(ptr) AccessChain 34(data) 512 37 69 - 522: 17(int8_t) CompositeExtract 516 2 - Store 521 522 - 523: 6(int) Load 8(invocation) - 524: 48(ptr) AccessChain 34(data) 73 37 - 525: 18(i8vec4) Load 524 - 526: 18(i8vec4) GroupNonUniformIMul 42 ExclusiveScan 525 - 527: 48(ptr) AccessChain 34(data) 523 37 - Store 527 526 - 528: 6(int) Load 8(invocation) - 529: 39(ptr) AccessChain 34(data) 37 37 38 - 530: 17(int8_t) Load 529 - 531: 17(int8_t) GroupNonUniformSMin 42 ExclusiveScan 530 - 532: 39(ptr) AccessChain 34(data) 528 37 38 - Store 532 531 - 533: 6(int) Load 8(invocation) - 534: 48(ptr) AccessChain 34(data) 46 37 - 535: 18(i8vec4) Load 534 - 536: 47(i8vec2) VectorShuffle 535 535 0 1 - 537: 47(i8vec2) GroupNonUniformSMin 42 ExclusiveScan 536 - 538: 39(ptr) AccessChain 34(data) 533 37 38 - 539: 17(int8_t) CompositeExtract 537 0 - Store 538 539 - 540: 39(ptr) AccessChain 34(data) 533 37 55 - 541: 17(int8_t) CompositeExtract 537 1 - Store 540 541 - 542: 6(int) Load 8(invocation) - 543: 48(ptr) AccessChain 34(data) 59 37 - 544: 18(i8vec4) Load 543 - 545: 60(i8vec3) VectorShuffle 544 544 0 1 2 - 546: 60(i8vec3) GroupNonUniformSMin 42 ExclusiveScan 545 - 547: 39(ptr) AccessChain 34(data) 542 37 38 - 548: 17(int8_t) CompositeExtract 546 0 - Store 547 548 - 549: 39(ptr) AccessChain 34(data) 542 37 55 - 550: 17(int8_t) CompositeExtract 546 1 - Store 549 550 - 551: 39(ptr) AccessChain 34(data) 542 37 69 - 552: 17(int8_t) CompositeExtract 546 2 - Store 551 552 - 553: 6(int) Load 8(invocation) - 554: 48(ptr) AccessChain 34(data) 73 37 - 555: 18(i8vec4) Load 554 - 556: 18(i8vec4) GroupNonUniformSMin 42 ExclusiveScan 555 - 557: 48(ptr) AccessChain 34(data) 553 37 - Store 557 556 - 558: 6(int) Load 8(invocation) - 559: 39(ptr) AccessChain 34(data) 37 37 38 - 560: 17(int8_t) Load 559 - 561: 17(int8_t) GroupNonUniformSMax 42 ExclusiveScan 560 - 562: 39(ptr) AccessChain 34(data) 558 37 38 - Store 562 561 - 563: 6(int) Load 8(invocation) - 564: 48(ptr) AccessChain 34(data) 46 37 - 565: 18(i8vec4) Load 564 - 566: 47(i8vec2) VectorShuffle 565 565 0 1 - 567: 47(i8vec2) GroupNonUniformSMax 42 ExclusiveScan 566 - 568: 39(ptr) AccessChain 34(data) 563 37 38 - 569: 17(int8_t) CompositeExtract 567 0 - Store 568 569 - 570: 39(ptr) AccessChain 34(data) 563 37 55 - 571: 17(int8_t) CompositeExtract 567 1 - Store 570 571 - 572: 6(int) Load 8(invocation) - 573: 48(ptr) AccessChain 34(data) 59 37 - 574: 18(i8vec4) Load 573 - 575: 60(i8vec3) VectorShuffle 574 574 0 1 2 - 576: 60(i8vec3) GroupNonUniformSMax 42 ExclusiveScan 575 - 577: 39(ptr) AccessChain 34(data) 572 37 38 - 578: 17(int8_t) CompositeExtract 576 0 - Store 577 578 - 579: 39(ptr) AccessChain 34(data) 572 37 55 - 580: 17(int8_t) CompositeExtract 576 1 - Store 579 580 - 581: 39(ptr) AccessChain 34(data) 572 37 69 - 582: 17(int8_t) CompositeExtract 576 2 - Store 581 582 - 583: 6(int) Load 8(invocation) - 584: 48(ptr) AccessChain 34(data) 73 37 - 585: 18(i8vec4) Load 584 - 586: 18(i8vec4) GroupNonUniformSMax 42 ExclusiveScan 585 - 587: 48(ptr) AccessChain 34(data) 583 37 - Store 587 586 - 588: 6(int) Load 8(invocation) - 589: 39(ptr) AccessChain 34(data) 37 37 38 - 590: 17(int8_t) Load 589 - 591: 17(int8_t) GroupNonUniformBitwiseAnd 42 ExclusiveScan 590 - 592: 39(ptr) AccessChain 34(data) 588 37 38 - Store 592 591 - 593: 6(int) Load 8(invocation) - 594: 48(ptr) AccessChain 34(data) 46 37 - 595: 18(i8vec4) Load 594 - 596: 47(i8vec2) VectorShuffle 595 595 0 1 - 597: 47(i8vec2) GroupNonUniformBitwiseAnd 42 ExclusiveScan 596 - 598: 39(ptr) AccessChain 34(data) 593 37 38 - 599: 17(int8_t) CompositeExtract 597 0 - Store 598 599 - 600: 39(ptr) AccessChain 34(data) 593 37 55 - 601: 17(int8_t) CompositeExtract 597 1 - Store 600 601 - 602: 6(int) Load 8(invocation) - 603: 48(ptr) AccessChain 34(data) 59 37 - 604: 18(i8vec4) Load 603 - 605: 60(i8vec3) VectorShuffle 604 604 0 1 2 - 606: 60(i8vec3) GroupNonUniformBitwiseAnd 42 ExclusiveScan 605 - 607: 39(ptr) AccessChain 34(data) 602 37 38 - 608: 17(int8_t) CompositeExtract 606 0 - Store 607 608 - 609: 39(ptr) AccessChain 34(data) 602 37 55 - 610: 17(int8_t) CompositeExtract 606 1 - Store 609 610 - 611: 39(ptr) AccessChain 34(data) 602 37 69 - 612: 17(int8_t) CompositeExtract 606 2 - Store 611 612 - 613: 6(int) Load 8(invocation) - 614: 48(ptr) AccessChain 34(data) 73 37 - 615: 18(i8vec4) Load 614 - 616: 18(i8vec4) GroupNonUniformBitwiseAnd 42 ExclusiveScan 615 - 617: 48(ptr) AccessChain 34(data) 613 37 - Store 617 616 - 618: 6(int) Load 8(invocation) - 619: 39(ptr) AccessChain 34(data) 37 37 38 - 620: 17(int8_t) Load 619 - 621: 17(int8_t) GroupNonUniformBitwiseOr 42 ExclusiveScan 620 - 622: 39(ptr) AccessChain 34(data) 618 37 38 - Store 622 621 - 623: 6(int) Load 8(invocation) - 624: 48(ptr) AccessChain 34(data) 46 37 - 625: 18(i8vec4) Load 624 - 626: 47(i8vec2) VectorShuffle 625 625 0 1 - 627: 47(i8vec2) GroupNonUniformBitwiseOr 42 ExclusiveScan 626 - 628: 39(ptr) AccessChain 34(data) 623 37 38 - 629: 17(int8_t) CompositeExtract 627 0 - Store 628 629 - 630: 39(ptr) AccessChain 34(data) 623 37 55 - 631: 17(int8_t) CompositeExtract 627 1 - Store 630 631 - 632: 6(int) Load 8(invocation) - 633: 48(ptr) AccessChain 34(data) 59 37 - 634: 18(i8vec4) Load 633 - 635: 60(i8vec3) VectorShuffle 634 634 0 1 2 - 636: 60(i8vec3) GroupNonUniformBitwiseOr 42 ExclusiveScan 635 - 637: 39(ptr) AccessChain 34(data) 632 37 38 - 638: 17(int8_t) CompositeExtract 636 0 - Store 637 638 - 639: 39(ptr) AccessChain 34(data) 632 37 55 - 640: 17(int8_t) CompositeExtract 636 1 - Store 639 640 - 641: 39(ptr) AccessChain 34(data) 632 37 69 - 642: 17(int8_t) CompositeExtract 636 2 - Store 641 642 - 643: 6(int) Load 8(invocation) - 644: 48(ptr) AccessChain 34(data) 73 37 - 645: 18(i8vec4) Load 644 - 646: 18(i8vec4) GroupNonUniformBitwiseOr 42 ExclusiveScan 645 - 647: 48(ptr) AccessChain 34(data) 643 37 - Store 647 646 - 648: 6(int) Load 8(invocation) - 649: 39(ptr) AccessChain 34(data) 37 37 38 - 650: 17(int8_t) Load 649 - 651: 17(int8_t) GroupNonUniformBitwiseXor 42 ExclusiveScan 650 - 652: 39(ptr) AccessChain 34(data) 648 37 38 - Store 652 651 - 653: 6(int) Load 8(invocation) - 654: 48(ptr) AccessChain 34(data) 46 37 - 655: 18(i8vec4) Load 654 - 656: 47(i8vec2) VectorShuffle 655 655 0 1 - 657: 47(i8vec2) GroupNonUniformBitwiseXor 42 ExclusiveScan 656 - 658: 39(ptr) AccessChain 34(data) 653 37 38 - 659: 17(int8_t) CompositeExtract 657 0 - Store 658 659 - 660: 39(ptr) AccessChain 34(data) 653 37 55 - 661: 17(int8_t) CompositeExtract 657 1 - Store 660 661 - 662: 6(int) Load 8(invocation) - 663: 48(ptr) AccessChain 34(data) 59 37 - 664: 18(i8vec4) Load 663 - 665: 60(i8vec3) VectorShuffle 664 664 0 1 2 - 666: 60(i8vec3) GroupNonUniformBitwiseXor 42 ExclusiveScan 665 - 667: 39(ptr) AccessChain 34(data) 662 37 38 - 668: 17(int8_t) CompositeExtract 666 0 - Store 667 668 - 669: 39(ptr) AccessChain 34(data) 662 37 55 - 670: 17(int8_t) CompositeExtract 666 1 - Store 669 670 - 671: 39(ptr) AccessChain 34(data) 662 37 69 - 672: 17(int8_t) CompositeExtract 666 2 - Store 671 672 - 673: 6(int) Load 8(invocation) - 674: 48(ptr) AccessChain 34(data) 73 37 - 675: 18(i8vec4) Load 674 - 676: 18(i8vec4) GroupNonUniformBitwiseXor 42 ExclusiveScan 675 - 677: 48(ptr) AccessChain 34(data) 673 37 - Store 677 676 - 678: 6(int) Load 8(invocation) - 680: 679(ptr) AccessChain 34(data) 37 46 38 - 681: 19(int8_t) Load 680 - 682: 19(int8_t) GroupNonUniformIAdd 42 Reduce 681 - 683: 679(ptr) AccessChain 34(data) 678 46 38 - Store 683 682 - 684: 6(int) Load 8(invocation) - 687: 686(ptr) AccessChain 34(data) 46 46 - 688: 20(i8vec4) Load 687 - 689: 685(i8vec2) VectorShuffle 688 688 0 1 - 690: 685(i8vec2) GroupNonUniformIAdd 42 Reduce 689 - 691: 679(ptr) AccessChain 34(data) 684 46 38 - 692: 19(int8_t) CompositeExtract 690 0 - Store 691 692 - 693: 679(ptr) AccessChain 34(data) 684 46 55 - 694: 19(int8_t) CompositeExtract 690 1 - Store 693 694 - 695: 6(int) Load 8(invocation) - 697: 686(ptr) AccessChain 34(data) 59 46 - 698: 20(i8vec4) Load 697 - 699: 696(i8vec3) VectorShuffle 698 698 0 1 2 - 700: 696(i8vec3) GroupNonUniformIAdd 42 Reduce 699 - 701: 679(ptr) AccessChain 34(data) 695 46 38 - 702: 19(int8_t) CompositeExtract 700 0 - Store 701 702 - 703: 679(ptr) AccessChain 34(data) 695 46 55 - 704: 19(int8_t) CompositeExtract 700 1 - Store 703 704 - 705: 679(ptr) AccessChain 34(data) 695 46 69 - 706: 19(int8_t) CompositeExtract 700 2 - Store 705 706 - 707: 6(int) Load 8(invocation) - 708: 686(ptr) AccessChain 34(data) 73 46 - 709: 20(i8vec4) Load 708 - 710: 20(i8vec4) GroupNonUniformIAdd 42 Reduce 709 - 711: 686(ptr) AccessChain 34(data) 707 46 - Store 711 710 - 712: 6(int) Load 8(invocation) - 713: 679(ptr) AccessChain 34(data) 37 46 38 - 714: 19(int8_t) Load 713 - 715: 19(int8_t) GroupNonUniformIMul 42 Reduce 714 - 716: 679(ptr) AccessChain 34(data) 712 46 38 - Store 716 715 - 717: 6(int) Load 8(invocation) - 718: 686(ptr) AccessChain 34(data) 46 46 - 719: 20(i8vec4) Load 718 - 720: 685(i8vec2) VectorShuffle 719 719 0 1 - 721: 685(i8vec2) GroupNonUniformIMul 42 Reduce 720 - 722: 679(ptr) AccessChain 34(data) 717 46 38 - 723: 19(int8_t) CompositeExtract 721 0 - Store 722 723 - 724: 679(ptr) AccessChain 34(data) 717 46 55 - 725: 19(int8_t) CompositeExtract 721 1 - Store 724 725 - 726: 6(int) Load 8(invocation) - 727: 686(ptr) AccessChain 34(data) 59 46 - 728: 20(i8vec4) Load 727 - 729: 696(i8vec3) VectorShuffle 728 728 0 1 2 - 730: 696(i8vec3) GroupNonUniformIMul 42 Reduce 729 - 731: 679(ptr) AccessChain 34(data) 726 46 38 - 732: 19(int8_t) CompositeExtract 730 0 - Store 731 732 - 733: 679(ptr) AccessChain 34(data) 726 46 55 - 734: 19(int8_t) CompositeExtract 730 1 - Store 733 734 - 735: 679(ptr) AccessChain 34(data) 726 46 69 - 736: 19(int8_t) CompositeExtract 730 2 - Store 735 736 - 737: 6(int) Load 8(invocation) - 738: 686(ptr) AccessChain 34(data) 73 46 - 739: 20(i8vec4) Load 738 - 740: 20(i8vec4) GroupNonUniformIMul 42 Reduce 739 - 741: 686(ptr) AccessChain 34(data) 737 46 - Store 741 740 - 742: 6(int) Load 8(invocation) - 743: 679(ptr) AccessChain 34(data) 37 46 38 - 744: 19(int8_t) Load 743 - 745: 19(int8_t) GroupNonUniformUMin 42 Reduce 744 - 746: 679(ptr) AccessChain 34(data) 742 46 38 - Store 746 745 - 747: 6(int) Load 8(invocation) - 748: 686(ptr) AccessChain 34(data) 46 46 - 749: 20(i8vec4) Load 748 - 750: 685(i8vec2) VectorShuffle 749 749 0 1 - 751: 685(i8vec2) GroupNonUniformUMin 42 Reduce 750 - 752: 679(ptr) AccessChain 34(data) 747 46 38 - 753: 19(int8_t) CompositeExtract 751 0 - Store 752 753 - 754: 679(ptr) AccessChain 34(data) 747 46 55 - 755: 19(int8_t) CompositeExtract 751 1 - Store 754 755 - 756: 6(int) Load 8(invocation) - 757: 686(ptr) AccessChain 34(data) 59 46 - 758: 20(i8vec4) Load 757 - 759: 696(i8vec3) VectorShuffle 758 758 0 1 2 - 760: 696(i8vec3) GroupNonUniformUMin 42 Reduce 759 - 761: 679(ptr) AccessChain 34(data) 756 46 38 - 762: 19(int8_t) CompositeExtract 760 0 - Store 761 762 - 763: 679(ptr) AccessChain 34(data) 756 46 55 - 764: 19(int8_t) CompositeExtract 760 1 - Store 763 764 - 765: 679(ptr) AccessChain 34(data) 756 46 69 - 766: 19(int8_t) CompositeExtract 760 2 - Store 765 766 - 767: 6(int) Load 8(invocation) - 768: 686(ptr) AccessChain 34(data) 73 46 - 769: 20(i8vec4) Load 768 - 770: 20(i8vec4) GroupNonUniformUMin 42 Reduce 769 - 771: 686(ptr) AccessChain 34(data) 767 46 - Store 771 770 - 772: 6(int) Load 8(invocation) - 773: 679(ptr) AccessChain 34(data) 37 46 38 - 774: 19(int8_t) Load 773 - 775: 19(int8_t) GroupNonUniformUMax 42 Reduce 774 - 776: 679(ptr) AccessChain 34(data) 772 46 38 - Store 776 775 - 777: 6(int) Load 8(invocation) - 778: 686(ptr) AccessChain 34(data) 46 46 - 779: 20(i8vec4) Load 778 - 780: 685(i8vec2) VectorShuffle 779 779 0 1 - 781: 685(i8vec2) GroupNonUniformUMax 42 Reduce 780 - 782: 679(ptr) AccessChain 34(data) 777 46 38 - 783: 19(int8_t) CompositeExtract 781 0 - Store 782 783 - 784: 679(ptr) AccessChain 34(data) 777 46 55 - 785: 19(int8_t) CompositeExtract 781 1 - Store 784 785 - 786: 6(int) Load 8(invocation) - 787: 686(ptr) AccessChain 34(data) 59 46 - 788: 20(i8vec4) Load 787 - 789: 696(i8vec3) VectorShuffle 788 788 0 1 2 - 790: 696(i8vec3) GroupNonUniformUMax 42 Reduce 789 - 791: 679(ptr) AccessChain 34(data) 786 46 38 - 792: 19(int8_t) CompositeExtract 790 0 - Store 791 792 - 793: 679(ptr) AccessChain 34(data) 786 46 55 - 794: 19(int8_t) CompositeExtract 790 1 - Store 793 794 - 795: 679(ptr) AccessChain 34(data) 786 46 69 - 796: 19(int8_t) CompositeExtract 790 2 - Store 795 796 - 797: 6(int) Load 8(invocation) - 798: 686(ptr) AccessChain 34(data) 73 46 - 799: 20(i8vec4) Load 798 - 800: 20(i8vec4) GroupNonUniformUMax 42 Reduce 799 - 801: 686(ptr) AccessChain 34(data) 797 46 - Store 801 800 - 802: 6(int) Load 8(invocation) - 803: 679(ptr) AccessChain 34(data) 37 46 38 - 804: 19(int8_t) Load 803 - 805: 19(int8_t) GroupNonUniformBitwiseAnd 42 Reduce 804 - 806: 679(ptr) AccessChain 34(data) 802 46 38 - Store 806 805 - 807: 6(int) Load 8(invocation) - 808: 686(ptr) AccessChain 34(data) 46 46 - 809: 20(i8vec4) Load 808 - 810: 685(i8vec2) VectorShuffle 809 809 0 1 - 811: 685(i8vec2) GroupNonUniformBitwiseAnd 42 Reduce 810 - 812: 679(ptr) AccessChain 34(data) 807 46 38 - 813: 19(int8_t) CompositeExtract 811 0 - Store 812 813 - 814: 679(ptr) AccessChain 34(data) 807 46 55 - 815: 19(int8_t) CompositeExtract 811 1 - Store 814 815 - 816: 6(int) Load 8(invocation) - 817: 686(ptr) AccessChain 34(data) 59 46 - 818: 20(i8vec4) Load 817 - 819: 696(i8vec3) VectorShuffle 818 818 0 1 2 - 820: 696(i8vec3) GroupNonUniformBitwiseAnd 42 Reduce 819 - 821: 679(ptr) AccessChain 34(data) 816 46 38 - 822: 19(int8_t) CompositeExtract 820 0 - Store 821 822 - 823: 679(ptr) AccessChain 34(data) 816 46 55 - 824: 19(int8_t) CompositeExtract 820 1 - Store 823 824 - 825: 679(ptr) AccessChain 34(data) 816 46 69 - 826: 19(int8_t) CompositeExtract 820 2 - Store 825 826 - 827: 6(int) Load 8(invocation) - 828: 686(ptr) AccessChain 34(data) 73 46 - 829: 20(i8vec4) Load 828 - 830: 20(i8vec4) GroupNonUniformBitwiseAnd 42 Reduce 829 - 831: 686(ptr) AccessChain 34(data) 827 46 - Store 831 830 - 832: 6(int) Load 8(invocation) - 833: 679(ptr) AccessChain 34(data) 37 46 38 - 834: 19(int8_t) Load 833 - 835: 19(int8_t) GroupNonUniformBitwiseOr 42 Reduce 834 - 836: 679(ptr) AccessChain 34(data) 832 46 38 - Store 836 835 - 837: 6(int) Load 8(invocation) - 838: 686(ptr) AccessChain 34(data) 46 46 - 839: 20(i8vec4) Load 838 - 840: 685(i8vec2) VectorShuffle 839 839 0 1 - 841: 685(i8vec2) GroupNonUniformBitwiseOr 42 Reduce 840 - 842: 679(ptr) AccessChain 34(data) 837 46 38 - 843: 19(int8_t) CompositeExtract 841 0 - Store 842 843 - 844: 679(ptr) AccessChain 34(data) 837 46 55 - 845: 19(int8_t) CompositeExtract 841 1 - Store 844 845 - 846: 6(int) Load 8(invocation) - 847: 686(ptr) AccessChain 34(data) 59 46 - 848: 20(i8vec4) Load 847 - 849: 696(i8vec3) VectorShuffle 848 848 0 1 2 - 850: 696(i8vec3) GroupNonUniformBitwiseOr 42 Reduce 849 - 851: 679(ptr) AccessChain 34(data) 846 46 38 - 852: 19(int8_t) CompositeExtract 850 0 - Store 851 852 - 853: 679(ptr) AccessChain 34(data) 846 46 55 - 854: 19(int8_t) CompositeExtract 850 1 - Store 853 854 - 855: 679(ptr) AccessChain 34(data) 846 46 69 - 856: 19(int8_t) CompositeExtract 850 2 - Store 855 856 - 857: 6(int) Load 8(invocation) - 858: 686(ptr) AccessChain 34(data) 73 46 - 859: 20(i8vec4) Load 858 - 860: 20(i8vec4) GroupNonUniformBitwiseOr 42 Reduce 859 - 861: 686(ptr) AccessChain 34(data) 857 46 - Store 861 860 - 862: 6(int) Load 8(invocation) - 863: 679(ptr) AccessChain 34(data) 37 46 38 - 864: 19(int8_t) Load 863 - 865: 19(int8_t) GroupNonUniformBitwiseXor 42 Reduce 864 - 866: 679(ptr) AccessChain 34(data) 862 46 38 - Store 866 865 - 867: 6(int) Load 8(invocation) - 868: 686(ptr) AccessChain 34(data) 46 46 - 869: 20(i8vec4) Load 868 - 870: 685(i8vec2) VectorShuffle 869 869 0 1 - 871: 685(i8vec2) GroupNonUniformBitwiseXor 42 Reduce 870 - 872: 679(ptr) AccessChain 34(data) 867 46 38 - 873: 19(int8_t) CompositeExtract 871 0 - Store 872 873 - 874: 679(ptr) AccessChain 34(data) 867 46 55 - 875: 19(int8_t) CompositeExtract 871 1 - Store 874 875 - 876: 6(int) Load 8(invocation) - 877: 686(ptr) AccessChain 34(data) 59 46 - 878: 20(i8vec4) Load 877 - 879: 696(i8vec3) VectorShuffle 878 878 0 1 2 - 880: 696(i8vec3) GroupNonUniformBitwiseXor 42 Reduce 879 - 881: 679(ptr) AccessChain 34(data) 876 46 38 - 882: 19(int8_t) CompositeExtract 880 0 - Store 881 882 - 883: 679(ptr) AccessChain 34(data) 876 46 55 - 884: 19(int8_t) CompositeExtract 880 1 - Store 883 884 - 885: 679(ptr) AccessChain 34(data) 876 46 69 - 886: 19(int8_t) CompositeExtract 880 2 - Store 885 886 - 887: 6(int) Load 8(invocation) - 888: 686(ptr) AccessChain 34(data) 73 46 - 889: 20(i8vec4) Load 888 - 890: 20(i8vec4) GroupNonUniformBitwiseXor 42 Reduce 889 - 891: 686(ptr) AccessChain 34(data) 887 46 - Store 891 890 - 892: 6(int) Load 8(invocation) - 893: 679(ptr) AccessChain 34(data) 37 46 38 - 894: 19(int8_t) Load 893 - 895: 19(int8_t) GroupNonUniformIAdd 42 InclusiveScan 894 - 896: 679(ptr) AccessChain 34(data) 892 46 38 - Store 896 895 - 897: 6(int) Load 8(invocation) - 898: 686(ptr) AccessChain 34(data) 46 46 - 899: 20(i8vec4) Load 898 - 900: 685(i8vec2) VectorShuffle 899 899 0 1 - 901: 685(i8vec2) GroupNonUniformIAdd 42 InclusiveScan 900 - 902: 679(ptr) AccessChain 34(data) 897 46 38 - 903: 19(int8_t) CompositeExtract 901 0 - Store 902 903 - 904: 679(ptr) AccessChain 34(data) 897 46 55 - 905: 19(int8_t) CompositeExtract 901 1 - Store 904 905 - 906: 6(int) Load 8(invocation) - 907: 686(ptr) AccessChain 34(data) 59 46 - 908: 20(i8vec4) Load 907 - 909: 696(i8vec3) VectorShuffle 908 908 0 1 2 - 910: 696(i8vec3) GroupNonUniformIAdd 42 InclusiveScan 909 - 911: 679(ptr) AccessChain 34(data) 906 46 38 - 912: 19(int8_t) CompositeExtract 910 0 - Store 911 912 - 913: 679(ptr) AccessChain 34(data) 906 46 55 - 914: 19(int8_t) CompositeExtract 910 1 - Store 913 914 - 915: 679(ptr) AccessChain 34(data) 906 46 69 - 916: 19(int8_t) CompositeExtract 910 2 - Store 915 916 - 917: 6(int) Load 8(invocation) - 918: 686(ptr) AccessChain 34(data) 73 46 - 919: 20(i8vec4) Load 918 - 920: 20(i8vec4) GroupNonUniformIAdd 42 InclusiveScan 919 - 921: 686(ptr) AccessChain 34(data) 917 46 - Store 921 920 - 922: 6(int) Load 8(invocation) - 923: 679(ptr) AccessChain 34(data) 37 46 38 - 924: 19(int8_t) Load 923 - 925: 19(int8_t) GroupNonUniformIMul 42 InclusiveScan 924 - 926: 679(ptr) AccessChain 34(data) 922 46 38 - Store 926 925 - 927: 6(int) Load 8(invocation) - 928: 686(ptr) AccessChain 34(data) 46 46 - 929: 20(i8vec4) Load 928 - 930: 685(i8vec2) VectorShuffle 929 929 0 1 - 931: 685(i8vec2) GroupNonUniformIMul 42 InclusiveScan 930 - 932: 679(ptr) AccessChain 34(data) 927 46 38 - 933: 19(int8_t) CompositeExtract 931 0 - Store 932 933 - 934: 679(ptr) AccessChain 34(data) 927 46 55 - 935: 19(int8_t) CompositeExtract 931 1 - Store 934 935 - 936: 6(int) Load 8(invocation) - 937: 686(ptr) AccessChain 34(data) 59 46 - 938: 20(i8vec4) Load 937 - 939: 696(i8vec3) VectorShuffle 938 938 0 1 2 - 940: 696(i8vec3) GroupNonUniformIMul 42 InclusiveScan 939 - 941: 679(ptr) AccessChain 34(data) 936 46 38 - 942: 19(int8_t) CompositeExtract 940 0 - Store 941 942 - 943: 679(ptr) AccessChain 34(data) 936 46 55 - 944: 19(int8_t) CompositeExtract 940 1 - Store 943 944 - 945: 679(ptr) AccessChain 34(data) 936 46 69 - 946: 19(int8_t) CompositeExtract 940 2 - Store 945 946 - 947: 6(int) Load 8(invocation) - 948: 686(ptr) AccessChain 34(data) 73 46 - 949: 20(i8vec4) Load 948 - 950: 20(i8vec4) GroupNonUniformIMul 42 InclusiveScan 949 - 951: 686(ptr) AccessChain 34(data) 947 46 - Store 951 950 - 952: 6(int) Load 8(invocation) - 953: 679(ptr) AccessChain 34(data) 37 46 38 - 954: 19(int8_t) Load 953 - 955: 19(int8_t) GroupNonUniformUMin 42 InclusiveScan 954 - 956: 679(ptr) AccessChain 34(data) 952 46 38 - Store 956 955 - 957: 6(int) Load 8(invocation) - 958: 686(ptr) AccessChain 34(data) 46 46 - 959: 20(i8vec4) Load 958 - 960: 685(i8vec2) VectorShuffle 959 959 0 1 - 961: 685(i8vec2) GroupNonUniformUMin 42 InclusiveScan 960 - 962: 679(ptr) AccessChain 34(data) 957 46 38 - 963: 19(int8_t) CompositeExtract 961 0 - Store 962 963 - 964: 679(ptr) AccessChain 34(data) 957 46 55 - 965: 19(int8_t) CompositeExtract 961 1 - Store 964 965 - 966: 6(int) Load 8(invocation) - 967: 686(ptr) AccessChain 34(data) 59 46 - 968: 20(i8vec4) Load 967 - 969: 696(i8vec3) VectorShuffle 968 968 0 1 2 - 970: 696(i8vec3) GroupNonUniformUMin 42 InclusiveScan 969 - 971: 679(ptr) AccessChain 34(data) 966 46 38 - 972: 19(int8_t) CompositeExtract 970 0 - Store 971 972 - 973: 679(ptr) AccessChain 34(data) 966 46 55 - 974: 19(int8_t) CompositeExtract 970 1 - Store 973 974 - 975: 679(ptr) AccessChain 34(data) 966 46 69 - 976: 19(int8_t) CompositeExtract 970 2 - Store 975 976 - 977: 6(int) Load 8(invocation) - 978: 686(ptr) AccessChain 34(data) 73 46 - 979: 20(i8vec4) Load 978 - 980: 20(i8vec4) GroupNonUniformUMin 42 InclusiveScan 979 - 981: 686(ptr) AccessChain 34(data) 977 46 - Store 981 980 - 982: 6(int) Load 8(invocation) - 983: 679(ptr) AccessChain 34(data) 37 46 38 - 984: 19(int8_t) Load 983 - 985: 19(int8_t) GroupNonUniformUMax 42 InclusiveScan 984 - 986: 679(ptr) AccessChain 34(data) 982 46 38 - Store 986 985 - 987: 6(int) Load 8(invocation) - 988: 686(ptr) AccessChain 34(data) 46 46 - 989: 20(i8vec4) Load 988 - 990: 685(i8vec2) VectorShuffle 989 989 0 1 - 991: 685(i8vec2) GroupNonUniformUMax 42 InclusiveScan 990 - 992: 679(ptr) AccessChain 34(data) 987 46 38 - 993: 19(int8_t) CompositeExtract 991 0 - Store 992 993 - 994: 679(ptr) AccessChain 34(data) 987 46 55 - 995: 19(int8_t) CompositeExtract 991 1 - Store 994 995 - 996: 6(int) Load 8(invocation) - 997: 686(ptr) AccessChain 34(data) 59 46 - 998: 20(i8vec4) Load 997 - 999: 696(i8vec3) VectorShuffle 998 998 0 1 2 - 1000: 696(i8vec3) GroupNonUniformUMax 42 InclusiveScan 999 - 1001: 679(ptr) AccessChain 34(data) 996 46 38 - 1002: 19(int8_t) CompositeExtract 1000 0 - Store 1001 1002 - 1003: 679(ptr) AccessChain 34(data) 996 46 55 - 1004: 19(int8_t) CompositeExtract 1000 1 - Store 1003 1004 - 1005: 679(ptr) AccessChain 34(data) 996 46 69 - 1006: 19(int8_t) CompositeExtract 1000 2 - Store 1005 1006 - 1007: 6(int) Load 8(invocation) - 1008: 686(ptr) AccessChain 34(data) 73 46 - 1009: 20(i8vec4) Load 1008 - 1010: 20(i8vec4) GroupNonUniformUMax 42 InclusiveScan 1009 - 1011: 686(ptr) AccessChain 34(data) 1007 46 - Store 1011 1010 - 1012: 6(int) Load 8(invocation) - 1013: 679(ptr) AccessChain 34(data) 37 46 38 - 1014: 19(int8_t) Load 1013 - 1015: 19(int8_t) GroupNonUniformBitwiseAnd 42 InclusiveScan 1014 - 1016: 679(ptr) AccessChain 34(data) 1012 46 38 - Store 1016 1015 - 1017: 6(int) Load 8(invocation) - 1018: 686(ptr) AccessChain 34(data) 46 46 - 1019: 20(i8vec4) Load 1018 - 1020: 685(i8vec2) VectorShuffle 1019 1019 0 1 - 1021: 685(i8vec2) GroupNonUniformBitwiseAnd 42 InclusiveScan 1020 - 1022: 679(ptr) AccessChain 34(data) 1017 46 38 - 1023: 19(int8_t) CompositeExtract 1021 0 - Store 1022 1023 - 1024: 679(ptr) AccessChain 34(data) 1017 46 55 - 1025: 19(int8_t) CompositeExtract 1021 1 - Store 1024 1025 - 1026: 6(int) Load 8(invocation) - 1027: 686(ptr) AccessChain 34(data) 59 46 - 1028: 20(i8vec4) Load 1027 - 1029: 696(i8vec3) VectorShuffle 1028 1028 0 1 2 - 1030: 696(i8vec3) GroupNonUniformBitwiseAnd 42 InclusiveScan 1029 - 1031: 679(ptr) AccessChain 34(data) 1026 46 38 - 1032: 19(int8_t) CompositeExtract 1030 0 - Store 1031 1032 - 1033: 679(ptr) AccessChain 34(data) 1026 46 55 - 1034: 19(int8_t) CompositeExtract 1030 1 - Store 1033 1034 - 1035: 679(ptr) AccessChain 34(data) 1026 46 69 - 1036: 19(int8_t) CompositeExtract 1030 2 - Store 1035 1036 - 1037: 6(int) Load 8(invocation) - 1038: 686(ptr) AccessChain 34(data) 73 46 - 1039: 20(i8vec4) Load 1038 - 1040: 20(i8vec4) GroupNonUniformBitwiseAnd 42 InclusiveScan 1039 - 1041: 686(ptr) AccessChain 34(data) 1037 46 - Store 1041 1040 - 1042: 6(int) Load 8(invocation) - 1043: 679(ptr) AccessChain 34(data) 37 46 38 - 1044: 19(int8_t) Load 1043 - 1045: 19(int8_t) GroupNonUniformBitwiseOr 42 InclusiveScan 1044 - 1046: 679(ptr) AccessChain 34(data) 1042 46 38 - Store 1046 1045 - 1047: 6(int) Load 8(invocation) - 1048: 686(ptr) AccessChain 34(data) 46 46 - 1049: 20(i8vec4) Load 1048 - 1050: 685(i8vec2) VectorShuffle 1049 1049 0 1 - 1051: 685(i8vec2) GroupNonUniformBitwiseOr 42 InclusiveScan 1050 - 1052: 679(ptr) AccessChain 34(data) 1047 46 38 - 1053: 19(int8_t) CompositeExtract 1051 0 - Store 1052 1053 - 1054: 679(ptr) AccessChain 34(data) 1047 46 55 - 1055: 19(int8_t) CompositeExtract 1051 1 - Store 1054 1055 - 1056: 6(int) Load 8(invocation) - 1057: 686(ptr) AccessChain 34(data) 59 46 - 1058: 20(i8vec4) Load 1057 - 1059: 696(i8vec3) VectorShuffle 1058 1058 0 1 2 - 1060: 696(i8vec3) GroupNonUniformBitwiseOr 42 InclusiveScan 1059 - 1061: 679(ptr) AccessChain 34(data) 1056 46 38 - 1062: 19(int8_t) CompositeExtract 1060 0 - Store 1061 1062 - 1063: 679(ptr) AccessChain 34(data) 1056 46 55 - 1064: 19(int8_t) CompositeExtract 1060 1 - Store 1063 1064 - 1065: 679(ptr) AccessChain 34(data) 1056 46 69 - 1066: 19(int8_t) CompositeExtract 1060 2 - Store 1065 1066 - 1067: 6(int) Load 8(invocation) - 1068: 686(ptr) AccessChain 34(data) 73 46 - 1069: 20(i8vec4) Load 1068 - 1070: 20(i8vec4) GroupNonUniformBitwiseOr 42 InclusiveScan 1069 - 1071: 686(ptr) AccessChain 34(data) 1067 46 - Store 1071 1070 - 1072: 6(int) Load 8(invocation) - 1073: 679(ptr) AccessChain 34(data) 37 46 38 - 1074: 19(int8_t) Load 1073 - 1075: 19(int8_t) GroupNonUniformBitwiseXor 42 InclusiveScan 1074 - 1076: 679(ptr) AccessChain 34(data) 1072 46 38 - Store 1076 1075 - 1077: 6(int) Load 8(invocation) - 1078: 686(ptr) AccessChain 34(data) 46 46 - 1079: 20(i8vec4) Load 1078 - 1080: 685(i8vec2) VectorShuffle 1079 1079 0 1 - 1081: 685(i8vec2) GroupNonUniformBitwiseXor 42 InclusiveScan 1080 - 1082: 679(ptr) AccessChain 34(data) 1077 46 38 - 1083: 19(int8_t) CompositeExtract 1081 0 - Store 1082 1083 - 1084: 679(ptr) AccessChain 34(data) 1077 46 55 - 1085: 19(int8_t) CompositeExtract 1081 1 - Store 1084 1085 - 1086: 6(int) Load 8(invocation) - 1087: 686(ptr) AccessChain 34(data) 59 46 - 1088: 20(i8vec4) Load 1087 - 1089: 696(i8vec3) VectorShuffle 1088 1088 0 1 2 - 1090: 696(i8vec3) GroupNonUniformBitwiseXor 42 InclusiveScan 1089 - 1091: 679(ptr) AccessChain 34(data) 1086 46 38 - 1092: 19(int8_t) CompositeExtract 1090 0 - Store 1091 1092 - 1093: 679(ptr) AccessChain 34(data) 1086 46 55 - 1094: 19(int8_t) CompositeExtract 1090 1 - Store 1093 1094 - 1095: 679(ptr) AccessChain 34(data) 1086 46 69 - 1096: 19(int8_t) CompositeExtract 1090 2 - Store 1095 1096 - 1097: 6(int) Load 8(invocation) - 1098: 686(ptr) AccessChain 34(data) 73 46 - 1099: 20(i8vec4) Load 1098 - 1100: 20(i8vec4) GroupNonUniformBitwiseXor 42 InclusiveScan 1099 - 1101: 686(ptr) AccessChain 34(data) 1097 46 - Store 1101 1100 - 1102: 6(int) Load 8(invocation) - 1103: 679(ptr) AccessChain 34(data) 37 46 38 - 1104: 19(int8_t) Load 1103 - 1105: 19(int8_t) GroupNonUniformIAdd 42 ExclusiveScan 1104 - 1106: 679(ptr) AccessChain 34(data) 1102 46 38 - Store 1106 1105 - 1107: 6(int) Load 8(invocation) - 1108: 686(ptr) AccessChain 34(data) 46 46 - 1109: 20(i8vec4) Load 1108 - 1110: 685(i8vec2) VectorShuffle 1109 1109 0 1 - 1111: 685(i8vec2) GroupNonUniformIAdd 42 ExclusiveScan 1110 - 1112: 679(ptr) AccessChain 34(data) 1107 46 38 - 1113: 19(int8_t) CompositeExtract 1111 0 - Store 1112 1113 - 1114: 679(ptr) AccessChain 34(data) 1107 46 55 - 1115: 19(int8_t) CompositeExtract 1111 1 - Store 1114 1115 - 1116: 6(int) Load 8(invocation) - 1117: 686(ptr) AccessChain 34(data) 59 46 - 1118: 20(i8vec4) Load 1117 - 1119: 696(i8vec3) VectorShuffle 1118 1118 0 1 2 - 1120: 696(i8vec3) GroupNonUniformIAdd 42 ExclusiveScan 1119 - 1121: 679(ptr) AccessChain 34(data) 1116 46 38 - 1122: 19(int8_t) CompositeExtract 1120 0 - Store 1121 1122 - 1123: 679(ptr) AccessChain 34(data) 1116 46 55 - 1124: 19(int8_t) CompositeExtract 1120 1 - Store 1123 1124 - 1125: 679(ptr) AccessChain 34(data) 1116 46 69 - 1126: 19(int8_t) CompositeExtract 1120 2 - Store 1125 1126 - 1127: 6(int) Load 8(invocation) - 1128: 686(ptr) AccessChain 34(data) 73 46 - 1129: 20(i8vec4) Load 1128 - 1130: 20(i8vec4) GroupNonUniformIAdd 42 ExclusiveScan 1129 - 1131: 686(ptr) AccessChain 34(data) 1127 46 - Store 1131 1130 - 1132: 6(int) Load 8(invocation) - 1133: 679(ptr) AccessChain 34(data) 37 46 38 - 1134: 19(int8_t) Load 1133 - 1135: 19(int8_t) GroupNonUniformIMul 42 ExclusiveScan 1134 - 1136: 679(ptr) AccessChain 34(data) 1132 46 38 - Store 1136 1135 - 1137: 6(int) Load 8(invocation) - 1138: 686(ptr) AccessChain 34(data) 46 46 - 1139: 20(i8vec4) Load 1138 - 1140: 685(i8vec2) VectorShuffle 1139 1139 0 1 - 1141: 685(i8vec2) GroupNonUniformIMul 42 ExclusiveScan 1140 - 1142: 679(ptr) AccessChain 34(data) 1137 46 38 - 1143: 19(int8_t) CompositeExtract 1141 0 - Store 1142 1143 - 1144: 679(ptr) AccessChain 34(data) 1137 46 55 - 1145: 19(int8_t) CompositeExtract 1141 1 - Store 1144 1145 - 1146: 6(int) Load 8(invocation) - 1147: 686(ptr) AccessChain 34(data) 59 46 - 1148: 20(i8vec4) Load 1147 - 1149: 696(i8vec3) VectorShuffle 1148 1148 0 1 2 - 1150: 696(i8vec3) GroupNonUniformIMul 42 ExclusiveScan 1149 - 1151: 679(ptr) AccessChain 34(data) 1146 46 38 - 1152: 19(int8_t) CompositeExtract 1150 0 - Store 1151 1152 - 1153: 679(ptr) AccessChain 34(data) 1146 46 55 - 1154: 19(int8_t) CompositeExtract 1150 1 - Store 1153 1154 - 1155: 679(ptr) AccessChain 34(data) 1146 46 69 - 1156: 19(int8_t) CompositeExtract 1150 2 - Store 1155 1156 - 1157: 6(int) Load 8(invocation) - 1158: 686(ptr) AccessChain 34(data) 73 46 - 1159: 20(i8vec4) Load 1158 - 1160: 20(i8vec4) GroupNonUniformIMul 42 ExclusiveScan 1159 - 1161: 686(ptr) AccessChain 34(data) 1157 46 - Store 1161 1160 - 1162: 6(int) Load 8(invocation) - 1163: 679(ptr) AccessChain 34(data) 37 46 38 - 1164: 19(int8_t) Load 1163 - 1165: 19(int8_t) GroupNonUniformUMin 42 ExclusiveScan 1164 - 1166: 679(ptr) AccessChain 34(data) 1162 46 38 - Store 1166 1165 - 1167: 6(int) Load 8(invocation) - 1168: 686(ptr) AccessChain 34(data) 46 46 - 1169: 20(i8vec4) Load 1168 - 1170: 685(i8vec2) VectorShuffle 1169 1169 0 1 - 1171: 685(i8vec2) GroupNonUniformUMin 42 ExclusiveScan 1170 - 1172: 679(ptr) AccessChain 34(data) 1167 46 38 - 1173: 19(int8_t) CompositeExtract 1171 0 - Store 1172 1173 - 1174: 679(ptr) AccessChain 34(data) 1167 46 55 - 1175: 19(int8_t) CompositeExtract 1171 1 - Store 1174 1175 - 1176: 6(int) Load 8(invocation) - 1177: 686(ptr) AccessChain 34(data) 59 46 - 1178: 20(i8vec4) Load 1177 - 1179: 696(i8vec3) VectorShuffle 1178 1178 0 1 2 - 1180: 696(i8vec3) GroupNonUniformUMin 42 ExclusiveScan 1179 - 1181: 679(ptr) AccessChain 34(data) 1176 46 38 - 1182: 19(int8_t) CompositeExtract 1180 0 - Store 1181 1182 - 1183: 679(ptr) AccessChain 34(data) 1176 46 55 - 1184: 19(int8_t) CompositeExtract 1180 1 - Store 1183 1184 - 1185: 679(ptr) AccessChain 34(data) 1176 46 69 - 1186: 19(int8_t) CompositeExtract 1180 2 - Store 1185 1186 - 1187: 6(int) Load 8(invocation) - 1188: 686(ptr) AccessChain 34(data) 73 46 - 1189: 20(i8vec4) Load 1188 - 1190: 20(i8vec4) GroupNonUniformUMin 42 ExclusiveScan 1189 - 1191: 686(ptr) AccessChain 34(data) 1187 46 - Store 1191 1190 - 1192: 6(int) Load 8(invocation) - 1193: 679(ptr) AccessChain 34(data) 37 46 38 - 1194: 19(int8_t) Load 1193 - 1195: 19(int8_t) GroupNonUniformUMax 42 ExclusiveScan 1194 - 1196: 679(ptr) AccessChain 34(data) 1192 46 38 - Store 1196 1195 - 1197: 6(int) Load 8(invocation) - 1198: 686(ptr) AccessChain 34(data) 46 46 - 1199: 20(i8vec4) Load 1198 - 1200: 685(i8vec2) VectorShuffle 1199 1199 0 1 - 1201: 685(i8vec2) GroupNonUniformUMax 42 ExclusiveScan 1200 - 1202: 679(ptr) AccessChain 34(data) 1197 46 38 - 1203: 19(int8_t) CompositeExtract 1201 0 - Store 1202 1203 - 1204: 679(ptr) AccessChain 34(data) 1197 46 55 - 1205: 19(int8_t) CompositeExtract 1201 1 - Store 1204 1205 - 1206: 6(int) Load 8(invocation) - 1207: 686(ptr) AccessChain 34(data) 59 46 - 1208: 20(i8vec4) Load 1207 - 1209: 696(i8vec3) VectorShuffle 1208 1208 0 1 2 - 1210: 696(i8vec3) GroupNonUniformUMax 42 ExclusiveScan 1209 - 1211: 679(ptr) AccessChain 34(data) 1206 46 38 - 1212: 19(int8_t) CompositeExtract 1210 0 - Store 1211 1212 - 1213: 679(ptr) AccessChain 34(data) 1206 46 55 - 1214: 19(int8_t) CompositeExtract 1210 1 - Store 1213 1214 - 1215: 679(ptr) AccessChain 34(data) 1206 46 69 - 1216: 19(int8_t) CompositeExtract 1210 2 - Store 1215 1216 - 1217: 6(int) Load 8(invocation) - 1218: 686(ptr) AccessChain 34(data) 73 46 - 1219: 20(i8vec4) Load 1218 - 1220: 20(i8vec4) GroupNonUniformUMax 42 ExclusiveScan 1219 - 1221: 686(ptr) AccessChain 34(data) 1217 46 - Store 1221 1220 - 1222: 6(int) Load 8(invocation) - 1223: 679(ptr) AccessChain 34(data) 37 46 38 - 1224: 19(int8_t) Load 1223 - 1225: 19(int8_t) GroupNonUniformBitwiseAnd 42 ExclusiveScan 1224 - 1226: 679(ptr) AccessChain 34(data) 1222 46 38 - Store 1226 1225 - 1227: 6(int) Load 8(invocation) - 1228: 686(ptr) AccessChain 34(data) 46 46 - 1229: 20(i8vec4) Load 1228 - 1230: 685(i8vec2) VectorShuffle 1229 1229 0 1 - 1231: 685(i8vec2) GroupNonUniformBitwiseAnd 42 ExclusiveScan 1230 - 1232: 679(ptr) AccessChain 34(data) 1227 46 38 - 1233: 19(int8_t) CompositeExtract 1231 0 - Store 1232 1233 - 1234: 679(ptr) AccessChain 34(data) 1227 46 55 - 1235: 19(int8_t) CompositeExtract 1231 1 - Store 1234 1235 - 1236: 6(int) Load 8(invocation) - 1237: 686(ptr) AccessChain 34(data) 59 46 - 1238: 20(i8vec4) Load 1237 - 1239: 696(i8vec3) VectorShuffle 1238 1238 0 1 2 - 1240: 696(i8vec3) GroupNonUniformBitwiseAnd 42 ExclusiveScan 1239 - 1241: 679(ptr) AccessChain 34(data) 1236 46 38 - 1242: 19(int8_t) CompositeExtract 1240 0 - Store 1241 1242 - 1243: 679(ptr) AccessChain 34(data) 1236 46 55 - 1244: 19(int8_t) CompositeExtract 1240 1 - Store 1243 1244 - 1245: 679(ptr) AccessChain 34(data) 1236 46 69 - 1246: 19(int8_t) CompositeExtract 1240 2 - Store 1245 1246 - 1247: 6(int) Load 8(invocation) - 1248: 686(ptr) AccessChain 34(data) 73 46 - 1249: 20(i8vec4) Load 1248 - 1250: 20(i8vec4) GroupNonUniformBitwiseAnd 42 ExclusiveScan 1249 - 1251: 686(ptr) AccessChain 34(data) 1247 46 - Store 1251 1250 - 1252: 6(int) Load 8(invocation) - 1253: 679(ptr) AccessChain 34(data) 37 46 38 - 1254: 19(int8_t) Load 1253 - 1255: 19(int8_t) GroupNonUniformBitwiseOr 42 ExclusiveScan 1254 - 1256: 679(ptr) AccessChain 34(data) 1252 46 38 - Store 1256 1255 - 1257: 6(int) Load 8(invocation) - 1258: 686(ptr) AccessChain 34(data) 46 46 - 1259: 20(i8vec4) Load 1258 - 1260: 685(i8vec2) VectorShuffle 1259 1259 0 1 - 1261: 685(i8vec2) GroupNonUniformBitwiseOr 42 ExclusiveScan 1260 - 1262: 679(ptr) AccessChain 34(data) 1257 46 38 - 1263: 19(int8_t) CompositeExtract 1261 0 - Store 1262 1263 - 1264: 679(ptr) AccessChain 34(data) 1257 46 55 - 1265: 19(int8_t) CompositeExtract 1261 1 - Store 1264 1265 - 1266: 6(int) Load 8(invocation) - 1267: 686(ptr) AccessChain 34(data) 59 46 - 1268: 20(i8vec4) Load 1267 - 1269: 696(i8vec3) VectorShuffle 1268 1268 0 1 2 - 1270: 696(i8vec3) GroupNonUniformBitwiseOr 42 ExclusiveScan 1269 - 1271: 679(ptr) AccessChain 34(data) 1266 46 38 - 1272: 19(int8_t) CompositeExtract 1270 0 - Store 1271 1272 - 1273: 679(ptr) AccessChain 34(data) 1266 46 55 - 1274: 19(int8_t) CompositeExtract 1270 1 - Store 1273 1274 - 1275: 679(ptr) AccessChain 34(data) 1266 46 69 - 1276: 19(int8_t) CompositeExtract 1270 2 - Store 1275 1276 - 1277: 6(int) Load 8(invocation) - 1278: 686(ptr) AccessChain 34(data) 73 46 - 1279: 20(i8vec4) Load 1278 - 1280: 20(i8vec4) GroupNonUniformBitwiseOr 42 ExclusiveScan 1279 - 1281: 686(ptr) AccessChain 34(data) 1277 46 - Store 1281 1280 - 1282: 6(int) Load 8(invocation) - 1283: 679(ptr) AccessChain 34(data) 37 46 38 - 1284: 19(int8_t) Load 1283 - 1285: 19(int8_t) GroupNonUniformBitwiseXor 42 ExclusiveScan 1284 - 1286: 679(ptr) AccessChain 34(data) 1282 46 38 - Store 1286 1285 - 1287: 6(int) Load 8(invocation) - 1288: 686(ptr) AccessChain 34(data) 46 46 - 1289: 20(i8vec4) Load 1288 - 1290: 685(i8vec2) VectorShuffle 1289 1289 0 1 - 1291: 685(i8vec2) GroupNonUniformBitwiseXor 42 ExclusiveScan 1290 - 1292: 679(ptr) AccessChain 34(data) 1287 46 38 - 1293: 19(int8_t) CompositeExtract 1291 0 - Store 1292 1293 - 1294: 679(ptr) AccessChain 34(data) 1287 46 55 - 1295: 19(int8_t) CompositeExtract 1291 1 - Store 1294 1295 - 1296: 6(int) Load 8(invocation) - 1297: 686(ptr) AccessChain 34(data) 59 46 - 1298: 20(i8vec4) Load 1297 - 1299: 696(i8vec3) VectorShuffle 1298 1298 0 1 2 - 1300: 696(i8vec3) GroupNonUniformBitwiseXor 42 ExclusiveScan 1299 - 1301: 679(ptr) AccessChain 34(data) 1296 46 38 - 1302: 19(int8_t) CompositeExtract 1300 0 - Store 1301 1302 - 1303: 679(ptr) AccessChain 34(data) 1296 46 55 - 1304: 19(int8_t) CompositeExtract 1300 1 - Store 1303 1304 - 1305: 679(ptr) AccessChain 34(data) 1296 46 69 - 1306: 19(int8_t) CompositeExtract 1300 2 - Store 1305 1306 - 1307: 6(int) Load 8(invocation) - 1308: 686(ptr) AccessChain 34(data) 73 46 - 1309: 20(i8vec4) Load 1308 - 1310: 20(i8vec4) GroupNonUniformBitwiseXor 42 ExclusiveScan 1309 - 1311: 686(ptr) AccessChain 34(data) 1307 46 - Store 1311 1310 - 1312: 6(int) Load 8(invocation) - 1314: 1313(ptr) AccessChain 34(data) 37 59 38 - 1315: 21(int16_t) Load 1314 - 1316: 21(int16_t) GroupNonUniformIAdd 42 Reduce 1315 - 1317: 1313(ptr) AccessChain 34(data) 1312 59 38 - Store 1317 1316 - 1318: 6(int) Load 8(invocation) - 1321: 1320(ptr) AccessChain 34(data) 46 59 - 1322: 22(i16vec4) Load 1321 - 1323:1319(i16vec2) VectorShuffle 1322 1322 0 1 - 1324:1319(i16vec2) GroupNonUniformIAdd 42 Reduce 1323 - 1325: 1313(ptr) AccessChain 34(data) 1318 59 38 - 1326: 21(int16_t) CompositeExtract 1324 0 - Store 1325 1326 - 1327: 1313(ptr) AccessChain 34(data) 1318 59 55 - 1328: 21(int16_t) CompositeExtract 1324 1 - Store 1327 1328 - 1329: 6(int) Load 8(invocation) - 1331: 1320(ptr) AccessChain 34(data) 59 59 - 1332: 22(i16vec4) Load 1331 - 1333:1330(i16vec3) VectorShuffle 1332 1332 0 1 2 - 1334:1330(i16vec3) GroupNonUniformIAdd 42 Reduce 1333 - 1335: 1313(ptr) AccessChain 34(data) 1329 59 38 - 1336: 21(int16_t) CompositeExtract 1334 0 - Store 1335 1336 - 1337: 1313(ptr) AccessChain 34(data) 1329 59 55 - 1338: 21(int16_t) CompositeExtract 1334 1 - Store 1337 1338 - 1339: 1313(ptr) AccessChain 34(data) 1329 59 69 - 1340: 21(int16_t) CompositeExtract 1334 2 - Store 1339 1340 - 1341: 6(int) Load 8(invocation) - 1342: 1320(ptr) AccessChain 34(data) 73 59 - 1343: 22(i16vec4) Load 1342 - 1344: 22(i16vec4) GroupNonUniformIAdd 42 Reduce 1343 - 1345: 1320(ptr) AccessChain 34(data) 1341 59 - Store 1345 1344 - 1346: 6(int) Load 8(invocation) - 1347: 1313(ptr) AccessChain 34(data) 37 59 38 - 1348: 21(int16_t) Load 1347 - 1349: 21(int16_t) GroupNonUniformIMul 42 Reduce 1348 - 1350: 1313(ptr) AccessChain 34(data) 1346 59 38 - Store 1350 1349 - 1351: 6(int) Load 8(invocation) - 1352: 1320(ptr) AccessChain 34(data) 46 59 - 1353: 22(i16vec4) Load 1352 - 1354:1319(i16vec2) VectorShuffle 1353 1353 0 1 - 1355:1319(i16vec2) GroupNonUniformIMul 42 Reduce 1354 - 1356: 1313(ptr) AccessChain 34(data) 1351 59 38 - 1357: 21(int16_t) CompositeExtract 1355 0 - Store 1356 1357 - 1358: 1313(ptr) AccessChain 34(data) 1351 59 55 - 1359: 21(int16_t) CompositeExtract 1355 1 - Store 1358 1359 - 1360: 6(int) Load 8(invocation) - 1361: 1320(ptr) AccessChain 34(data) 59 59 - 1362: 22(i16vec4) Load 1361 - 1363:1330(i16vec3) VectorShuffle 1362 1362 0 1 2 - 1364:1330(i16vec3) GroupNonUniformIMul 42 Reduce 1363 - 1365: 1313(ptr) AccessChain 34(data) 1360 59 38 - 1366: 21(int16_t) CompositeExtract 1364 0 - Store 1365 1366 - 1367: 1313(ptr) AccessChain 34(data) 1360 59 55 - 1368: 21(int16_t) CompositeExtract 1364 1 - Store 1367 1368 - 1369: 1313(ptr) AccessChain 34(data) 1360 59 69 - 1370: 21(int16_t) CompositeExtract 1364 2 - Store 1369 1370 - 1371: 6(int) Load 8(invocation) - 1372: 1320(ptr) AccessChain 34(data) 73 59 - 1373: 22(i16vec4) Load 1372 - 1374: 22(i16vec4) GroupNonUniformIMul 42 Reduce 1373 - 1375: 1320(ptr) AccessChain 34(data) 1371 59 - Store 1375 1374 - 1376: 6(int) Load 8(invocation) - 1377: 1313(ptr) AccessChain 34(data) 37 59 38 - 1378: 21(int16_t) Load 1377 - 1379: 21(int16_t) GroupNonUniformSMin 42 Reduce 1378 - 1380: 1313(ptr) AccessChain 34(data) 1376 59 38 - Store 1380 1379 - 1381: 6(int) Load 8(invocation) - 1382: 1320(ptr) AccessChain 34(data) 46 59 - 1383: 22(i16vec4) Load 1382 - 1384:1319(i16vec2) VectorShuffle 1383 1383 0 1 - 1385:1319(i16vec2) GroupNonUniformSMin 42 Reduce 1384 - 1386: 1313(ptr) AccessChain 34(data) 1381 59 38 - 1387: 21(int16_t) CompositeExtract 1385 0 - Store 1386 1387 - 1388: 1313(ptr) AccessChain 34(data) 1381 59 55 - 1389: 21(int16_t) CompositeExtract 1385 1 - Store 1388 1389 - 1390: 6(int) Load 8(invocation) - 1391: 1320(ptr) AccessChain 34(data) 59 59 - 1392: 22(i16vec4) Load 1391 - 1393:1330(i16vec3) VectorShuffle 1392 1392 0 1 2 - 1394:1330(i16vec3) GroupNonUniformSMin 42 Reduce 1393 - 1395: 1313(ptr) AccessChain 34(data) 1390 59 38 - 1396: 21(int16_t) CompositeExtract 1394 0 - Store 1395 1396 - 1397: 1313(ptr) AccessChain 34(data) 1390 59 55 - 1398: 21(int16_t) CompositeExtract 1394 1 - Store 1397 1398 - 1399: 1313(ptr) AccessChain 34(data) 1390 59 69 - 1400: 21(int16_t) CompositeExtract 1394 2 - Store 1399 1400 - 1401: 6(int) Load 8(invocation) - 1402: 1320(ptr) AccessChain 34(data) 73 59 - 1403: 22(i16vec4) Load 1402 - 1404: 22(i16vec4) GroupNonUniformSMin 42 Reduce 1403 - 1405: 1320(ptr) AccessChain 34(data) 1401 59 - Store 1405 1404 - 1406: 6(int) Load 8(invocation) - 1407: 1313(ptr) AccessChain 34(data) 37 59 38 - 1408: 21(int16_t) Load 1407 - 1409: 21(int16_t) GroupNonUniformSMax 42 Reduce 1408 - 1410: 1313(ptr) AccessChain 34(data) 1406 59 38 - Store 1410 1409 - 1411: 6(int) Load 8(invocation) - 1412: 1320(ptr) AccessChain 34(data) 46 59 - 1413: 22(i16vec4) Load 1412 - 1414:1319(i16vec2) VectorShuffle 1413 1413 0 1 - 1415:1319(i16vec2) GroupNonUniformSMax 42 Reduce 1414 - 1416: 1313(ptr) AccessChain 34(data) 1411 59 38 - 1417: 21(int16_t) CompositeExtract 1415 0 - Store 1416 1417 - 1418: 1313(ptr) AccessChain 34(data) 1411 59 55 - 1419: 21(int16_t) CompositeExtract 1415 1 - Store 1418 1419 - 1420: 6(int) Load 8(invocation) - 1421: 1320(ptr) AccessChain 34(data) 59 59 - 1422: 22(i16vec4) Load 1421 - 1423:1330(i16vec3) VectorShuffle 1422 1422 0 1 2 - 1424:1330(i16vec3) GroupNonUniformSMax 42 Reduce 1423 - 1425: 1313(ptr) AccessChain 34(data) 1420 59 38 - 1426: 21(int16_t) CompositeExtract 1424 0 - Store 1425 1426 - 1427: 1313(ptr) AccessChain 34(data) 1420 59 55 - 1428: 21(int16_t) CompositeExtract 1424 1 - Store 1427 1428 - 1429: 1313(ptr) AccessChain 34(data) 1420 59 69 - 1430: 21(int16_t) CompositeExtract 1424 2 - Store 1429 1430 - 1431: 6(int) Load 8(invocation) - 1432: 1320(ptr) AccessChain 34(data) 73 59 - 1433: 22(i16vec4) Load 1432 - 1434: 22(i16vec4) GroupNonUniformSMax 42 Reduce 1433 - 1435: 1320(ptr) AccessChain 34(data) 1431 59 - Store 1435 1434 - 1436: 6(int) Load 8(invocation) - 1437: 1313(ptr) AccessChain 34(data) 37 59 38 - 1438: 21(int16_t) Load 1437 - 1439: 21(int16_t) GroupNonUniformBitwiseAnd 42 Reduce 1438 - 1440: 1313(ptr) AccessChain 34(data) 1436 59 38 - Store 1440 1439 - 1441: 6(int) Load 8(invocation) - 1442: 1320(ptr) AccessChain 34(data) 46 59 - 1443: 22(i16vec4) Load 1442 - 1444:1319(i16vec2) VectorShuffle 1443 1443 0 1 - 1445:1319(i16vec2) GroupNonUniformBitwiseAnd 42 Reduce 1444 - 1446: 1313(ptr) AccessChain 34(data) 1441 59 38 - 1447: 21(int16_t) CompositeExtract 1445 0 - Store 1446 1447 - 1448: 1313(ptr) AccessChain 34(data) 1441 59 55 - 1449: 21(int16_t) CompositeExtract 1445 1 - Store 1448 1449 - 1450: 6(int) Load 8(invocation) - 1451: 1320(ptr) AccessChain 34(data) 59 59 - 1452: 22(i16vec4) Load 1451 - 1453:1330(i16vec3) VectorShuffle 1452 1452 0 1 2 - 1454:1330(i16vec3) GroupNonUniformBitwiseAnd 42 Reduce 1453 - 1455: 1313(ptr) AccessChain 34(data) 1450 59 38 - 1456: 21(int16_t) CompositeExtract 1454 0 - Store 1455 1456 - 1457: 1313(ptr) AccessChain 34(data) 1450 59 55 - 1458: 21(int16_t) CompositeExtract 1454 1 - Store 1457 1458 - 1459: 1313(ptr) AccessChain 34(data) 1450 59 69 - 1460: 21(int16_t) CompositeExtract 1454 2 - Store 1459 1460 - 1461: 6(int) Load 8(invocation) - 1462: 1320(ptr) AccessChain 34(data) 73 59 - 1463: 22(i16vec4) Load 1462 - 1464: 22(i16vec4) GroupNonUniformBitwiseAnd 42 Reduce 1463 - 1465: 1320(ptr) AccessChain 34(data) 1461 59 - Store 1465 1464 - 1466: 6(int) Load 8(invocation) - 1467: 1313(ptr) AccessChain 34(data) 37 59 38 - 1468: 21(int16_t) Load 1467 - 1469: 21(int16_t) GroupNonUniformBitwiseOr 42 Reduce 1468 - 1470: 1313(ptr) AccessChain 34(data) 1466 59 38 - Store 1470 1469 - 1471: 6(int) Load 8(invocation) - 1472: 1320(ptr) AccessChain 34(data) 46 59 - 1473: 22(i16vec4) Load 1472 - 1474:1319(i16vec2) VectorShuffle 1473 1473 0 1 - 1475:1319(i16vec2) GroupNonUniformBitwiseOr 42 Reduce 1474 - 1476: 1313(ptr) AccessChain 34(data) 1471 59 38 - 1477: 21(int16_t) CompositeExtract 1475 0 - Store 1476 1477 - 1478: 1313(ptr) AccessChain 34(data) 1471 59 55 - 1479: 21(int16_t) CompositeExtract 1475 1 - Store 1478 1479 - 1480: 6(int) Load 8(invocation) - 1481: 1320(ptr) AccessChain 34(data) 59 59 - 1482: 22(i16vec4) Load 1481 - 1483:1330(i16vec3) VectorShuffle 1482 1482 0 1 2 - 1484:1330(i16vec3) GroupNonUniformBitwiseOr 42 Reduce 1483 - 1485: 1313(ptr) AccessChain 34(data) 1480 59 38 - 1486: 21(int16_t) CompositeExtract 1484 0 - Store 1485 1486 - 1487: 1313(ptr) AccessChain 34(data) 1480 59 55 - 1488: 21(int16_t) CompositeExtract 1484 1 - Store 1487 1488 - 1489: 1313(ptr) AccessChain 34(data) 1480 59 69 - 1490: 21(int16_t) CompositeExtract 1484 2 - Store 1489 1490 - 1491: 6(int) Load 8(invocation) - 1492: 1320(ptr) AccessChain 34(data) 73 59 - 1493: 22(i16vec4) Load 1492 - 1494: 22(i16vec4) GroupNonUniformBitwiseOr 42 Reduce 1493 - 1495: 1320(ptr) AccessChain 34(data) 1491 59 - Store 1495 1494 - 1496: 6(int) Load 8(invocation) - 1497: 1313(ptr) AccessChain 34(data) 37 59 38 - 1498: 21(int16_t) Load 1497 - 1499: 21(int16_t) GroupNonUniformBitwiseXor 42 Reduce 1498 - 1500: 1313(ptr) AccessChain 34(data) 1496 59 38 - Store 1500 1499 - 1501: 6(int) Load 8(invocation) - 1502: 1320(ptr) AccessChain 34(data) 46 59 - 1503: 22(i16vec4) Load 1502 - 1504:1319(i16vec2) VectorShuffle 1503 1503 0 1 - 1505:1319(i16vec2) GroupNonUniformBitwiseXor 42 Reduce 1504 - 1506: 1313(ptr) AccessChain 34(data) 1501 59 38 - 1507: 21(int16_t) CompositeExtract 1505 0 - Store 1506 1507 - 1508: 1313(ptr) AccessChain 34(data) 1501 59 55 - 1509: 21(int16_t) CompositeExtract 1505 1 - Store 1508 1509 - 1510: 6(int) Load 8(invocation) - 1511: 1320(ptr) AccessChain 34(data) 59 59 - 1512: 22(i16vec4) Load 1511 - 1513:1330(i16vec3) VectorShuffle 1512 1512 0 1 2 - 1514:1330(i16vec3) GroupNonUniformBitwiseXor 42 Reduce 1513 - 1515: 1313(ptr) AccessChain 34(data) 1510 59 38 - 1516: 21(int16_t) CompositeExtract 1514 0 - Store 1515 1516 - 1517: 1313(ptr) AccessChain 34(data) 1510 59 55 - 1518: 21(int16_t) CompositeExtract 1514 1 - Store 1517 1518 - 1519: 1313(ptr) AccessChain 34(data) 1510 59 69 - 1520: 21(int16_t) CompositeExtract 1514 2 - Store 1519 1520 - 1521: 6(int) Load 8(invocation) - 1522: 1320(ptr) AccessChain 34(data) 73 59 - 1523: 22(i16vec4) Load 1522 - 1524: 22(i16vec4) GroupNonUniformBitwiseXor 42 Reduce 1523 - 1525: 1320(ptr) AccessChain 34(data) 1521 59 - Store 1525 1524 - 1526: 6(int) Load 8(invocation) - 1527: 1313(ptr) AccessChain 34(data) 37 59 38 - 1528: 21(int16_t) Load 1527 - 1529: 21(int16_t) GroupNonUniformIAdd 42 InclusiveScan 1528 - 1530: 1313(ptr) AccessChain 34(data) 1526 59 38 - Store 1530 1529 - 1531: 6(int) Load 8(invocation) - 1532: 1320(ptr) AccessChain 34(data) 46 59 - 1533: 22(i16vec4) Load 1532 - 1534:1319(i16vec2) VectorShuffle 1533 1533 0 1 - 1535:1319(i16vec2) GroupNonUniformIAdd 42 InclusiveScan 1534 - 1536: 1313(ptr) AccessChain 34(data) 1531 59 38 - 1537: 21(int16_t) CompositeExtract 1535 0 - Store 1536 1537 - 1538: 1313(ptr) AccessChain 34(data) 1531 59 55 - 1539: 21(int16_t) CompositeExtract 1535 1 - Store 1538 1539 - 1540: 6(int) Load 8(invocation) - 1541: 1320(ptr) AccessChain 34(data) 59 59 - 1542: 22(i16vec4) Load 1541 - 1543:1330(i16vec3) VectorShuffle 1542 1542 0 1 2 - 1544:1330(i16vec3) GroupNonUniformIAdd 42 InclusiveScan 1543 - 1545: 1313(ptr) AccessChain 34(data) 1540 59 38 - 1546: 21(int16_t) CompositeExtract 1544 0 - Store 1545 1546 - 1547: 1313(ptr) AccessChain 34(data) 1540 59 55 - 1548: 21(int16_t) CompositeExtract 1544 1 - Store 1547 1548 - 1549: 1313(ptr) AccessChain 34(data) 1540 59 69 - 1550: 21(int16_t) CompositeExtract 1544 2 - Store 1549 1550 - 1551: 6(int) Load 8(invocation) - 1552: 1320(ptr) AccessChain 34(data) 73 59 - 1553: 22(i16vec4) Load 1552 - 1554: 22(i16vec4) GroupNonUniformIAdd 42 InclusiveScan 1553 - 1555: 1320(ptr) AccessChain 34(data) 1551 59 - Store 1555 1554 - 1556: 6(int) Load 8(invocation) - 1557: 1313(ptr) AccessChain 34(data) 37 59 38 - 1558: 21(int16_t) Load 1557 - 1559: 21(int16_t) GroupNonUniformIMul 42 InclusiveScan 1558 - 1560: 1313(ptr) AccessChain 34(data) 1556 59 38 - Store 1560 1559 - 1561: 6(int) Load 8(invocation) - 1562: 1320(ptr) AccessChain 34(data) 46 59 - 1563: 22(i16vec4) Load 1562 - 1564:1319(i16vec2) VectorShuffle 1563 1563 0 1 - 1565:1319(i16vec2) GroupNonUniformIMul 42 InclusiveScan 1564 - 1566: 1313(ptr) AccessChain 34(data) 1561 59 38 - 1567: 21(int16_t) CompositeExtract 1565 0 - Store 1566 1567 - 1568: 1313(ptr) AccessChain 34(data) 1561 59 55 - 1569: 21(int16_t) CompositeExtract 1565 1 - Store 1568 1569 - 1570: 6(int) Load 8(invocation) - 1571: 1320(ptr) AccessChain 34(data) 59 59 - 1572: 22(i16vec4) Load 1571 - 1573:1330(i16vec3) VectorShuffle 1572 1572 0 1 2 - 1574:1330(i16vec3) GroupNonUniformIMul 42 InclusiveScan 1573 - 1575: 1313(ptr) AccessChain 34(data) 1570 59 38 - 1576: 21(int16_t) CompositeExtract 1574 0 - Store 1575 1576 - 1577: 1313(ptr) AccessChain 34(data) 1570 59 55 - 1578: 21(int16_t) CompositeExtract 1574 1 - Store 1577 1578 - 1579: 1313(ptr) AccessChain 34(data) 1570 59 69 - 1580: 21(int16_t) CompositeExtract 1574 2 - Store 1579 1580 - 1581: 6(int) Load 8(invocation) - 1582: 1320(ptr) AccessChain 34(data) 73 59 - 1583: 22(i16vec4) Load 1582 - 1584: 22(i16vec4) GroupNonUniformIMul 42 InclusiveScan 1583 - 1585: 1320(ptr) AccessChain 34(data) 1581 59 - Store 1585 1584 - 1586: 6(int) Load 8(invocation) - 1587: 1313(ptr) AccessChain 34(data) 37 59 38 - 1588: 21(int16_t) Load 1587 - 1589: 21(int16_t) GroupNonUniformSMin 42 InclusiveScan 1588 - 1590: 1313(ptr) AccessChain 34(data) 1586 59 38 - Store 1590 1589 - 1591: 6(int) Load 8(invocation) - 1592: 1320(ptr) AccessChain 34(data) 46 59 - 1593: 22(i16vec4) Load 1592 - 1594:1319(i16vec2) VectorShuffle 1593 1593 0 1 - 1595:1319(i16vec2) GroupNonUniformSMin 42 InclusiveScan 1594 - 1596: 1313(ptr) AccessChain 34(data) 1591 59 38 - 1597: 21(int16_t) CompositeExtract 1595 0 - Store 1596 1597 - 1598: 1313(ptr) AccessChain 34(data) 1591 59 55 - 1599: 21(int16_t) CompositeExtract 1595 1 - Store 1598 1599 - 1600: 6(int) Load 8(invocation) - 1601: 1320(ptr) AccessChain 34(data) 59 59 - 1602: 22(i16vec4) Load 1601 - 1603:1330(i16vec3) VectorShuffle 1602 1602 0 1 2 - 1604:1330(i16vec3) GroupNonUniformSMin 42 InclusiveScan 1603 - 1605: 1313(ptr) AccessChain 34(data) 1600 59 38 - 1606: 21(int16_t) CompositeExtract 1604 0 - Store 1605 1606 - 1607: 1313(ptr) AccessChain 34(data) 1600 59 55 - 1608: 21(int16_t) CompositeExtract 1604 1 - Store 1607 1608 - 1609: 1313(ptr) AccessChain 34(data) 1600 59 69 - 1610: 21(int16_t) CompositeExtract 1604 2 - Store 1609 1610 - 1611: 6(int) Load 8(invocation) - 1612: 1320(ptr) AccessChain 34(data) 73 59 - 1613: 22(i16vec4) Load 1612 - 1614: 22(i16vec4) GroupNonUniformSMin 42 InclusiveScan 1613 - 1615: 1320(ptr) AccessChain 34(data) 1611 59 - Store 1615 1614 - 1616: 6(int) Load 8(invocation) - 1617: 1313(ptr) AccessChain 34(data) 37 59 38 - 1618: 21(int16_t) Load 1617 - 1619: 21(int16_t) GroupNonUniformSMax 42 InclusiveScan 1618 - 1620: 1313(ptr) AccessChain 34(data) 1616 59 38 - Store 1620 1619 - 1621: 6(int) Load 8(invocation) - 1622: 1320(ptr) AccessChain 34(data) 46 59 - 1623: 22(i16vec4) Load 1622 - 1624:1319(i16vec2) VectorShuffle 1623 1623 0 1 - 1625:1319(i16vec2) GroupNonUniformSMax 42 InclusiveScan 1624 - 1626: 1313(ptr) AccessChain 34(data) 1621 59 38 - 1627: 21(int16_t) CompositeExtract 1625 0 - Store 1626 1627 - 1628: 1313(ptr) AccessChain 34(data) 1621 59 55 - 1629: 21(int16_t) CompositeExtract 1625 1 - Store 1628 1629 - 1630: 6(int) Load 8(invocation) - 1631: 1320(ptr) AccessChain 34(data) 59 59 - 1632: 22(i16vec4) Load 1631 - 1633:1330(i16vec3) VectorShuffle 1632 1632 0 1 2 - 1634:1330(i16vec3) GroupNonUniformSMax 42 InclusiveScan 1633 - 1635: 1313(ptr) AccessChain 34(data) 1630 59 38 - 1636: 21(int16_t) CompositeExtract 1634 0 - Store 1635 1636 - 1637: 1313(ptr) AccessChain 34(data) 1630 59 55 - 1638: 21(int16_t) CompositeExtract 1634 1 - Store 1637 1638 - 1639: 1313(ptr) AccessChain 34(data) 1630 59 69 - 1640: 21(int16_t) CompositeExtract 1634 2 - Store 1639 1640 - 1641: 6(int) Load 8(invocation) - 1642: 1320(ptr) AccessChain 34(data) 73 59 - 1643: 22(i16vec4) Load 1642 - 1644: 22(i16vec4) GroupNonUniformSMax 42 InclusiveScan 1643 - 1645: 1320(ptr) AccessChain 34(data) 1641 59 - Store 1645 1644 - 1646: 6(int) Load 8(invocation) - 1647: 1313(ptr) AccessChain 34(data) 37 59 38 - 1648: 21(int16_t) Load 1647 - 1649: 21(int16_t) GroupNonUniformBitwiseAnd 42 InclusiveScan 1648 - 1650: 1313(ptr) AccessChain 34(data) 1646 59 38 - Store 1650 1649 - 1651: 6(int) Load 8(invocation) - 1652: 1320(ptr) AccessChain 34(data) 46 59 - 1653: 22(i16vec4) Load 1652 - 1654:1319(i16vec2) VectorShuffle 1653 1653 0 1 - 1655:1319(i16vec2) GroupNonUniformBitwiseAnd 42 InclusiveScan 1654 - 1656: 1313(ptr) AccessChain 34(data) 1651 59 38 - 1657: 21(int16_t) CompositeExtract 1655 0 - Store 1656 1657 - 1658: 1313(ptr) AccessChain 34(data) 1651 59 55 - 1659: 21(int16_t) CompositeExtract 1655 1 - Store 1658 1659 - 1660: 6(int) Load 8(invocation) - 1661: 1320(ptr) AccessChain 34(data) 59 59 - 1662: 22(i16vec4) Load 1661 - 1663:1330(i16vec3) VectorShuffle 1662 1662 0 1 2 - 1664:1330(i16vec3) GroupNonUniformBitwiseAnd 42 InclusiveScan 1663 - 1665: 1313(ptr) AccessChain 34(data) 1660 59 38 - 1666: 21(int16_t) CompositeExtract 1664 0 - Store 1665 1666 - 1667: 1313(ptr) AccessChain 34(data) 1660 59 55 - 1668: 21(int16_t) CompositeExtract 1664 1 - Store 1667 1668 - 1669: 1313(ptr) AccessChain 34(data) 1660 59 69 - 1670: 21(int16_t) CompositeExtract 1664 2 - Store 1669 1670 - 1671: 6(int) Load 8(invocation) - 1672: 1320(ptr) AccessChain 34(data) 73 59 - 1673: 22(i16vec4) Load 1672 - 1674: 22(i16vec4) GroupNonUniformBitwiseAnd 42 InclusiveScan 1673 - 1675: 1320(ptr) AccessChain 34(data) 1671 59 - Store 1675 1674 - 1676: 6(int) Load 8(invocation) - 1677: 1313(ptr) AccessChain 34(data) 37 59 38 - 1678: 21(int16_t) Load 1677 - 1679: 21(int16_t) GroupNonUniformBitwiseOr 42 InclusiveScan 1678 - 1680: 1313(ptr) AccessChain 34(data) 1676 59 38 - Store 1680 1679 - 1681: 6(int) Load 8(invocation) - 1682: 1320(ptr) AccessChain 34(data) 46 59 - 1683: 22(i16vec4) Load 1682 - 1684:1319(i16vec2) VectorShuffle 1683 1683 0 1 - 1685:1319(i16vec2) GroupNonUniformBitwiseOr 42 InclusiveScan 1684 - 1686: 1313(ptr) AccessChain 34(data) 1681 59 38 - 1687: 21(int16_t) CompositeExtract 1685 0 - Store 1686 1687 - 1688: 1313(ptr) AccessChain 34(data) 1681 59 55 - 1689: 21(int16_t) CompositeExtract 1685 1 - Store 1688 1689 - 1690: 6(int) Load 8(invocation) - 1691: 1320(ptr) AccessChain 34(data) 59 59 - 1692: 22(i16vec4) Load 1691 - 1693:1330(i16vec3) VectorShuffle 1692 1692 0 1 2 - 1694:1330(i16vec3) GroupNonUniformBitwiseOr 42 InclusiveScan 1693 - 1695: 1313(ptr) AccessChain 34(data) 1690 59 38 - 1696: 21(int16_t) CompositeExtract 1694 0 - Store 1695 1696 - 1697: 1313(ptr) AccessChain 34(data) 1690 59 55 - 1698: 21(int16_t) CompositeExtract 1694 1 - Store 1697 1698 - 1699: 1313(ptr) AccessChain 34(data) 1690 59 69 - 1700: 21(int16_t) CompositeExtract 1694 2 - Store 1699 1700 - 1701: 6(int) Load 8(invocation) - 1702: 1320(ptr) AccessChain 34(data) 73 59 - 1703: 22(i16vec4) Load 1702 - 1704: 22(i16vec4) GroupNonUniformBitwiseOr 42 InclusiveScan 1703 - 1705: 1320(ptr) AccessChain 34(data) 1701 59 - Store 1705 1704 - 1706: 6(int) Load 8(invocation) - 1707: 1313(ptr) AccessChain 34(data) 37 59 38 - 1708: 21(int16_t) Load 1707 - 1709: 21(int16_t) GroupNonUniformBitwiseXor 42 InclusiveScan 1708 - 1710: 1313(ptr) AccessChain 34(data) 1706 59 38 - Store 1710 1709 - 1711: 6(int) Load 8(invocation) - 1712: 1320(ptr) AccessChain 34(data) 46 59 - 1713: 22(i16vec4) Load 1712 - 1714:1319(i16vec2) VectorShuffle 1713 1713 0 1 - 1715:1319(i16vec2) GroupNonUniformBitwiseXor 42 InclusiveScan 1714 - 1716: 1313(ptr) AccessChain 34(data) 1711 59 38 - 1717: 21(int16_t) CompositeExtract 1715 0 - Store 1716 1717 - 1718: 1313(ptr) AccessChain 34(data) 1711 59 55 - 1719: 21(int16_t) CompositeExtract 1715 1 - Store 1718 1719 - 1720: 6(int) Load 8(invocation) - 1721: 1320(ptr) AccessChain 34(data) 59 59 - 1722: 22(i16vec4) Load 1721 - 1723:1330(i16vec3) VectorShuffle 1722 1722 0 1 2 - 1724:1330(i16vec3) GroupNonUniformBitwiseXor 42 InclusiveScan 1723 - 1725: 1313(ptr) AccessChain 34(data) 1720 59 38 - 1726: 21(int16_t) CompositeExtract 1724 0 - Store 1725 1726 - 1727: 1313(ptr) AccessChain 34(data) 1720 59 55 - 1728: 21(int16_t) CompositeExtract 1724 1 - Store 1727 1728 - 1729: 1313(ptr) AccessChain 34(data) 1720 59 69 - 1730: 21(int16_t) CompositeExtract 1724 2 - Store 1729 1730 - 1731: 6(int) Load 8(invocation) - 1732: 1320(ptr) AccessChain 34(data) 73 59 - 1733: 22(i16vec4) Load 1732 - 1734: 22(i16vec4) GroupNonUniformBitwiseXor 42 InclusiveScan 1733 - 1735: 1320(ptr) AccessChain 34(data) 1731 59 - Store 1735 1734 - 1736: 6(int) Load 8(invocation) - 1737: 1313(ptr) AccessChain 34(data) 37 59 38 - 1738: 21(int16_t) Load 1737 - 1739: 21(int16_t) GroupNonUniformIAdd 42 ExclusiveScan 1738 - 1740: 1313(ptr) AccessChain 34(data) 1736 59 38 - Store 1740 1739 - 1741: 6(int) Load 8(invocation) - 1742: 1320(ptr) AccessChain 34(data) 46 59 - 1743: 22(i16vec4) Load 1742 - 1744:1319(i16vec2) VectorShuffle 1743 1743 0 1 - 1745:1319(i16vec2) GroupNonUniformIAdd 42 ExclusiveScan 1744 - 1746: 1313(ptr) AccessChain 34(data) 1741 59 38 - 1747: 21(int16_t) CompositeExtract 1745 0 - Store 1746 1747 - 1748: 1313(ptr) AccessChain 34(data) 1741 59 55 - 1749: 21(int16_t) CompositeExtract 1745 1 - Store 1748 1749 - 1750: 6(int) Load 8(invocation) - 1751: 1320(ptr) AccessChain 34(data) 59 59 - 1752: 22(i16vec4) Load 1751 - 1753:1330(i16vec3) VectorShuffle 1752 1752 0 1 2 - 1754:1330(i16vec3) GroupNonUniformIAdd 42 ExclusiveScan 1753 - 1755: 1313(ptr) AccessChain 34(data) 1750 59 38 - 1756: 21(int16_t) CompositeExtract 1754 0 - Store 1755 1756 - 1757: 1313(ptr) AccessChain 34(data) 1750 59 55 - 1758: 21(int16_t) CompositeExtract 1754 1 - Store 1757 1758 - 1759: 1313(ptr) AccessChain 34(data) 1750 59 69 - 1760: 21(int16_t) CompositeExtract 1754 2 - Store 1759 1760 - 1761: 6(int) Load 8(invocation) - 1762: 1320(ptr) AccessChain 34(data) 73 59 - 1763: 22(i16vec4) Load 1762 - 1764: 22(i16vec4) GroupNonUniformIAdd 42 ExclusiveScan 1763 - 1765: 1320(ptr) AccessChain 34(data) 1761 59 - Store 1765 1764 - 1766: 6(int) Load 8(invocation) - 1767: 1313(ptr) AccessChain 34(data) 37 59 38 - 1768: 21(int16_t) Load 1767 - 1769: 21(int16_t) GroupNonUniformIMul 42 ExclusiveScan 1768 - 1770: 1313(ptr) AccessChain 34(data) 1766 59 38 - Store 1770 1769 - 1771: 6(int) Load 8(invocation) - 1772: 1320(ptr) AccessChain 34(data) 46 59 - 1773: 22(i16vec4) Load 1772 - 1774:1319(i16vec2) VectorShuffle 1773 1773 0 1 - 1775:1319(i16vec2) GroupNonUniformIMul 42 ExclusiveScan 1774 - 1776: 1313(ptr) AccessChain 34(data) 1771 59 38 - 1777: 21(int16_t) CompositeExtract 1775 0 - Store 1776 1777 - 1778: 1313(ptr) AccessChain 34(data) 1771 59 55 - 1779: 21(int16_t) CompositeExtract 1775 1 - Store 1778 1779 - 1780: 6(int) Load 8(invocation) - 1781: 1320(ptr) AccessChain 34(data) 59 59 - 1782: 22(i16vec4) Load 1781 - 1783:1330(i16vec3) VectorShuffle 1782 1782 0 1 2 - 1784:1330(i16vec3) GroupNonUniformIMul 42 ExclusiveScan 1783 - 1785: 1313(ptr) AccessChain 34(data) 1780 59 38 - 1786: 21(int16_t) CompositeExtract 1784 0 - Store 1785 1786 - 1787: 1313(ptr) AccessChain 34(data) 1780 59 55 - 1788: 21(int16_t) CompositeExtract 1784 1 - Store 1787 1788 - 1789: 1313(ptr) AccessChain 34(data) 1780 59 69 - 1790: 21(int16_t) CompositeExtract 1784 2 - Store 1789 1790 - 1791: 6(int) Load 8(invocation) - 1792: 1320(ptr) AccessChain 34(data) 73 59 - 1793: 22(i16vec4) Load 1792 - 1794: 22(i16vec4) GroupNonUniformIMul 42 ExclusiveScan 1793 - 1795: 1320(ptr) AccessChain 34(data) 1791 59 - Store 1795 1794 - 1796: 6(int) Load 8(invocation) - 1797: 1313(ptr) AccessChain 34(data) 37 59 38 - 1798: 21(int16_t) Load 1797 - 1799: 21(int16_t) GroupNonUniformSMin 42 ExclusiveScan 1798 - 1800: 1313(ptr) AccessChain 34(data) 1796 59 38 - Store 1800 1799 - 1801: 6(int) Load 8(invocation) - 1802: 1320(ptr) AccessChain 34(data) 46 59 - 1803: 22(i16vec4) Load 1802 - 1804:1319(i16vec2) VectorShuffle 1803 1803 0 1 - 1805:1319(i16vec2) GroupNonUniformSMin 42 ExclusiveScan 1804 - 1806: 1313(ptr) AccessChain 34(data) 1801 59 38 - 1807: 21(int16_t) CompositeExtract 1805 0 - Store 1806 1807 - 1808: 1313(ptr) AccessChain 34(data) 1801 59 55 - 1809: 21(int16_t) CompositeExtract 1805 1 - Store 1808 1809 - 1810: 6(int) Load 8(invocation) - 1811: 1320(ptr) AccessChain 34(data) 59 59 - 1812: 22(i16vec4) Load 1811 - 1813:1330(i16vec3) VectorShuffle 1812 1812 0 1 2 - 1814:1330(i16vec3) GroupNonUniformSMin 42 ExclusiveScan 1813 - 1815: 1313(ptr) AccessChain 34(data) 1810 59 38 - 1816: 21(int16_t) CompositeExtract 1814 0 - Store 1815 1816 - 1817: 1313(ptr) AccessChain 34(data) 1810 59 55 - 1818: 21(int16_t) CompositeExtract 1814 1 - Store 1817 1818 - 1819: 1313(ptr) AccessChain 34(data) 1810 59 69 - 1820: 21(int16_t) CompositeExtract 1814 2 - Store 1819 1820 - 1821: 6(int) Load 8(invocation) - 1822: 1320(ptr) AccessChain 34(data) 73 59 - 1823: 22(i16vec4) Load 1822 - 1824: 22(i16vec4) GroupNonUniformSMin 42 ExclusiveScan 1823 - 1825: 1320(ptr) AccessChain 34(data) 1821 59 - Store 1825 1824 - 1826: 6(int) Load 8(invocation) - 1827: 1313(ptr) AccessChain 34(data) 37 59 38 - 1828: 21(int16_t) Load 1827 - 1829: 21(int16_t) GroupNonUniformSMax 42 ExclusiveScan 1828 - 1830: 1313(ptr) AccessChain 34(data) 1826 59 38 - Store 1830 1829 - 1831: 6(int) Load 8(invocation) - 1832: 1320(ptr) AccessChain 34(data) 46 59 - 1833: 22(i16vec4) Load 1832 - 1834:1319(i16vec2) VectorShuffle 1833 1833 0 1 - 1835:1319(i16vec2) GroupNonUniformSMax 42 ExclusiveScan 1834 - 1836: 1313(ptr) AccessChain 34(data) 1831 59 38 - 1837: 21(int16_t) CompositeExtract 1835 0 - Store 1836 1837 - 1838: 1313(ptr) AccessChain 34(data) 1831 59 55 - 1839: 21(int16_t) CompositeExtract 1835 1 - Store 1838 1839 - 1840: 6(int) Load 8(invocation) - 1841: 1320(ptr) AccessChain 34(data) 59 59 - 1842: 22(i16vec4) Load 1841 - 1843:1330(i16vec3) VectorShuffle 1842 1842 0 1 2 - 1844:1330(i16vec3) GroupNonUniformSMax 42 ExclusiveScan 1843 - 1845: 1313(ptr) AccessChain 34(data) 1840 59 38 - 1846: 21(int16_t) CompositeExtract 1844 0 - Store 1845 1846 - 1847: 1313(ptr) AccessChain 34(data) 1840 59 55 - 1848: 21(int16_t) CompositeExtract 1844 1 - Store 1847 1848 - 1849: 1313(ptr) AccessChain 34(data) 1840 59 69 - 1850: 21(int16_t) CompositeExtract 1844 2 - Store 1849 1850 - 1851: 6(int) Load 8(invocation) - 1852: 1320(ptr) AccessChain 34(data) 73 59 - 1853: 22(i16vec4) Load 1852 - 1854: 22(i16vec4) GroupNonUniformSMax 42 ExclusiveScan 1853 - 1855: 1320(ptr) AccessChain 34(data) 1851 59 - Store 1855 1854 - 1856: 6(int) Load 8(invocation) - 1857: 1313(ptr) AccessChain 34(data) 37 59 38 - 1858: 21(int16_t) Load 1857 - 1859: 21(int16_t) GroupNonUniformBitwiseAnd 42 ExclusiveScan 1858 - 1860: 1313(ptr) AccessChain 34(data) 1856 59 38 - Store 1860 1859 - 1861: 6(int) Load 8(invocation) - 1862: 1320(ptr) AccessChain 34(data) 46 59 - 1863: 22(i16vec4) Load 1862 - 1864:1319(i16vec2) VectorShuffle 1863 1863 0 1 - 1865:1319(i16vec2) GroupNonUniformBitwiseAnd 42 ExclusiveScan 1864 - 1866: 1313(ptr) AccessChain 34(data) 1861 59 38 - 1867: 21(int16_t) CompositeExtract 1865 0 - Store 1866 1867 - 1868: 1313(ptr) AccessChain 34(data) 1861 59 55 - 1869: 21(int16_t) CompositeExtract 1865 1 - Store 1868 1869 - 1870: 6(int) Load 8(invocation) - 1871: 1320(ptr) AccessChain 34(data) 59 59 - 1872: 22(i16vec4) Load 1871 - 1873:1330(i16vec3) VectorShuffle 1872 1872 0 1 2 - 1874:1330(i16vec3) GroupNonUniformBitwiseAnd 42 ExclusiveScan 1873 - 1875: 1313(ptr) AccessChain 34(data) 1870 59 38 - 1876: 21(int16_t) CompositeExtract 1874 0 - Store 1875 1876 - 1877: 1313(ptr) AccessChain 34(data) 1870 59 55 - 1878: 21(int16_t) CompositeExtract 1874 1 - Store 1877 1878 - 1879: 1313(ptr) AccessChain 34(data) 1870 59 69 - 1880: 21(int16_t) CompositeExtract 1874 2 - Store 1879 1880 - 1881: 6(int) Load 8(invocation) - 1882: 1320(ptr) AccessChain 34(data) 73 59 - 1883: 22(i16vec4) Load 1882 - 1884: 22(i16vec4) GroupNonUniformBitwiseAnd 42 ExclusiveScan 1883 - 1885: 1320(ptr) AccessChain 34(data) 1881 59 - Store 1885 1884 - 1886: 6(int) Load 8(invocation) - 1887: 1313(ptr) AccessChain 34(data) 37 59 38 - 1888: 21(int16_t) Load 1887 - 1889: 21(int16_t) GroupNonUniformBitwiseOr 42 ExclusiveScan 1888 - 1890: 1313(ptr) AccessChain 34(data) 1886 59 38 - Store 1890 1889 - 1891: 6(int) Load 8(invocation) - 1892: 1320(ptr) AccessChain 34(data) 46 59 - 1893: 22(i16vec4) Load 1892 - 1894:1319(i16vec2) VectorShuffle 1893 1893 0 1 - 1895:1319(i16vec2) GroupNonUniformBitwiseOr 42 ExclusiveScan 1894 - 1896: 1313(ptr) AccessChain 34(data) 1891 59 38 - 1897: 21(int16_t) CompositeExtract 1895 0 - Store 1896 1897 - 1898: 1313(ptr) AccessChain 34(data) 1891 59 55 - 1899: 21(int16_t) CompositeExtract 1895 1 - Store 1898 1899 - 1900: 6(int) Load 8(invocation) - 1901: 1320(ptr) AccessChain 34(data) 59 59 - 1902: 22(i16vec4) Load 1901 - 1903:1330(i16vec3) VectorShuffle 1902 1902 0 1 2 - 1904:1330(i16vec3) GroupNonUniformBitwiseOr 42 ExclusiveScan 1903 - 1905: 1313(ptr) AccessChain 34(data) 1900 59 38 - 1906: 21(int16_t) CompositeExtract 1904 0 - Store 1905 1906 - 1907: 1313(ptr) AccessChain 34(data) 1900 59 55 - 1908: 21(int16_t) CompositeExtract 1904 1 - Store 1907 1908 - 1909: 1313(ptr) AccessChain 34(data) 1900 59 69 - 1910: 21(int16_t) CompositeExtract 1904 2 - Store 1909 1910 - 1911: 6(int) Load 8(invocation) - 1912: 1320(ptr) AccessChain 34(data) 73 59 - 1913: 22(i16vec4) Load 1912 - 1914: 22(i16vec4) GroupNonUniformBitwiseOr 42 ExclusiveScan 1913 - 1915: 1320(ptr) AccessChain 34(data) 1911 59 - Store 1915 1914 - 1916: 6(int) Load 8(invocation) - 1917: 1313(ptr) AccessChain 34(data) 37 59 38 - 1918: 21(int16_t) Load 1917 - 1919: 21(int16_t) GroupNonUniformBitwiseXor 42 ExclusiveScan 1918 - 1920: 1313(ptr) AccessChain 34(data) 1916 59 38 - Store 1920 1919 - 1921: 6(int) Load 8(invocation) - 1922: 1320(ptr) AccessChain 34(data) 46 59 - 1923: 22(i16vec4) Load 1922 - 1924:1319(i16vec2) VectorShuffle 1923 1923 0 1 - 1925:1319(i16vec2) GroupNonUniformBitwiseXor 42 ExclusiveScan 1924 - 1926: 1313(ptr) AccessChain 34(data) 1921 59 38 - 1927: 21(int16_t) CompositeExtract 1925 0 - Store 1926 1927 - 1928: 1313(ptr) AccessChain 34(data) 1921 59 55 - 1929: 21(int16_t) CompositeExtract 1925 1 - Store 1928 1929 - 1930: 6(int) Load 8(invocation) - 1931: 1320(ptr) AccessChain 34(data) 59 59 - 1932: 22(i16vec4) Load 1931 - 1933:1330(i16vec3) VectorShuffle 1932 1932 0 1 2 - 1934:1330(i16vec3) GroupNonUniformBitwiseXor 42 ExclusiveScan 1933 - 1935: 1313(ptr) AccessChain 34(data) 1930 59 38 - 1936: 21(int16_t) CompositeExtract 1934 0 - Store 1935 1936 - 1937: 1313(ptr) AccessChain 34(data) 1930 59 55 - 1938: 21(int16_t) CompositeExtract 1934 1 - Store 1937 1938 - 1939: 1313(ptr) AccessChain 34(data) 1930 59 69 - 1940: 21(int16_t) CompositeExtract 1934 2 - Store 1939 1940 - 1941: 6(int) Load 8(invocation) - 1942: 1320(ptr) AccessChain 34(data) 73 59 - 1943: 22(i16vec4) Load 1942 - 1944: 22(i16vec4) GroupNonUniformBitwiseXor 42 ExclusiveScan 1943 - 1945: 1320(ptr) AccessChain 34(data) 1941 59 - Store 1945 1944 - 1946: 6(int) Load 8(invocation) - 1948: 1947(ptr) AccessChain 34(data) 37 73 38 - 1949: 23(int16_t) Load 1948 - 1950: 23(int16_t) GroupNonUniformIAdd 42 Reduce 1949 - 1951: 1947(ptr) AccessChain 34(data) 1946 73 38 - Store 1951 1950 - 1952: 6(int) Load 8(invocation) - 1955: 1954(ptr) AccessChain 34(data) 46 73 - 1956: 24(i16vec4) Load 1955 - 1957:1953(i16vec2) VectorShuffle 1956 1956 0 1 - 1958:1953(i16vec2) GroupNonUniformIAdd 42 Reduce 1957 - 1959: 1947(ptr) AccessChain 34(data) 1952 73 38 - 1960: 23(int16_t) CompositeExtract 1958 0 - Store 1959 1960 - 1961: 1947(ptr) AccessChain 34(data) 1952 73 55 - 1962: 23(int16_t) CompositeExtract 1958 1 - Store 1961 1962 - 1963: 6(int) Load 8(invocation) - 1965: 1954(ptr) AccessChain 34(data) 59 73 - 1966: 24(i16vec4) Load 1965 - 1967:1964(i16vec3) VectorShuffle 1966 1966 0 1 2 - 1968:1964(i16vec3) GroupNonUniformIAdd 42 Reduce 1967 - 1969: 1947(ptr) AccessChain 34(data) 1963 73 38 - 1970: 23(int16_t) CompositeExtract 1968 0 - Store 1969 1970 - 1971: 1947(ptr) AccessChain 34(data) 1963 73 55 - 1972: 23(int16_t) CompositeExtract 1968 1 - Store 1971 1972 - 1973: 1947(ptr) AccessChain 34(data) 1963 73 69 - 1974: 23(int16_t) CompositeExtract 1968 2 - Store 1973 1974 - 1975: 6(int) Load 8(invocation) - 1976: 1954(ptr) AccessChain 34(data) 73 73 - 1977: 24(i16vec4) Load 1976 - 1978: 24(i16vec4) GroupNonUniformIAdd 42 Reduce 1977 - 1979: 1954(ptr) AccessChain 34(data) 1975 73 - Store 1979 1978 - 1980: 6(int) Load 8(invocation) - 1981: 1947(ptr) AccessChain 34(data) 37 73 38 - 1982: 23(int16_t) Load 1981 - 1983: 23(int16_t) GroupNonUniformIMul 42 Reduce 1982 - 1984: 1947(ptr) AccessChain 34(data) 1980 73 38 - Store 1984 1983 - 1985: 6(int) Load 8(invocation) - 1986: 1954(ptr) AccessChain 34(data) 46 73 - 1987: 24(i16vec4) Load 1986 - 1988:1953(i16vec2) VectorShuffle 1987 1987 0 1 - 1989:1953(i16vec2) GroupNonUniformIMul 42 Reduce 1988 - 1990: 1947(ptr) AccessChain 34(data) 1985 73 38 - 1991: 23(int16_t) CompositeExtract 1989 0 - Store 1990 1991 - 1992: 1947(ptr) AccessChain 34(data) 1985 73 55 - 1993: 23(int16_t) CompositeExtract 1989 1 - Store 1992 1993 - 1994: 6(int) Load 8(invocation) - 1995: 1954(ptr) AccessChain 34(data) 59 73 - 1996: 24(i16vec4) Load 1995 - 1997:1964(i16vec3) VectorShuffle 1996 1996 0 1 2 - 1998:1964(i16vec3) GroupNonUniformIMul 42 Reduce 1997 - 1999: 1947(ptr) AccessChain 34(data) 1994 73 38 - 2000: 23(int16_t) CompositeExtract 1998 0 - Store 1999 2000 - 2001: 1947(ptr) AccessChain 34(data) 1994 73 55 - 2002: 23(int16_t) CompositeExtract 1998 1 - Store 2001 2002 - 2003: 1947(ptr) AccessChain 34(data) 1994 73 69 - 2004: 23(int16_t) CompositeExtract 1998 2 - Store 2003 2004 - 2005: 6(int) Load 8(invocation) - 2006: 1954(ptr) AccessChain 34(data) 73 73 - 2007: 24(i16vec4) Load 2006 - 2008: 24(i16vec4) GroupNonUniformIMul 42 Reduce 2007 - 2009: 1954(ptr) AccessChain 34(data) 2005 73 - Store 2009 2008 - 2010: 6(int) Load 8(invocation) - 2011: 1947(ptr) AccessChain 34(data) 37 73 38 - 2012: 23(int16_t) Load 2011 - 2013: 23(int16_t) GroupNonUniformUMin 42 Reduce 2012 - 2014: 1947(ptr) AccessChain 34(data) 2010 73 38 - Store 2014 2013 - 2015: 6(int) Load 8(invocation) - 2016: 1954(ptr) AccessChain 34(data) 46 73 - 2017: 24(i16vec4) Load 2016 - 2018:1953(i16vec2) VectorShuffle 2017 2017 0 1 - 2019:1953(i16vec2) GroupNonUniformUMin 42 Reduce 2018 - 2020: 1947(ptr) AccessChain 34(data) 2015 73 38 - 2021: 23(int16_t) CompositeExtract 2019 0 - Store 2020 2021 - 2022: 1947(ptr) AccessChain 34(data) 2015 73 55 - 2023: 23(int16_t) CompositeExtract 2019 1 - Store 2022 2023 - 2024: 6(int) Load 8(invocation) - 2025: 1954(ptr) AccessChain 34(data) 59 73 - 2026: 24(i16vec4) Load 2025 - 2027:1964(i16vec3) VectorShuffle 2026 2026 0 1 2 - 2028:1964(i16vec3) GroupNonUniformUMin 42 Reduce 2027 - 2029: 1947(ptr) AccessChain 34(data) 2024 73 38 - 2030: 23(int16_t) CompositeExtract 2028 0 - Store 2029 2030 - 2031: 1947(ptr) AccessChain 34(data) 2024 73 55 - 2032: 23(int16_t) CompositeExtract 2028 1 - Store 2031 2032 - 2033: 1947(ptr) AccessChain 34(data) 2024 73 69 - 2034: 23(int16_t) CompositeExtract 2028 2 - Store 2033 2034 - 2035: 6(int) Load 8(invocation) - 2036: 1954(ptr) AccessChain 34(data) 73 73 - 2037: 24(i16vec4) Load 2036 - 2038: 24(i16vec4) GroupNonUniformUMin 42 Reduce 2037 - 2039: 1954(ptr) AccessChain 34(data) 2035 73 - Store 2039 2038 - 2040: 6(int) Load 8(invocation) - 2041: 1947(ptr) AccessChain 34(data) 37 73 38 - 2042: 23(int16_t) Load 2041 - 2043: 23(int16_t) GroupNonUniformUMax 42 Reduce 2042 - 2044: 1947(ptr) AccessChain 34(data) 2040 73 38 - Store 2044 2043 - 2045: 6(int) Load 8(invocation) - 2046: 1954(ptr) AccessChain 34(data) 46 73 - 2047: 24(i16vec4) Load 2046 - 2048:1953(i16vec2) VectorShuffle 2047 2047 0 1 - 2049:1953(i16vec2) GroupNonUniformUMax 42 Reduce 2048 - 2050: 1947(ptr) AccessChain 34(data) 2045 73 38 - 2051: 23(int16_t) CompositeExtract 2049 0 - Store 2050 2051 - 2052: 1947(ptr) AccessChain 34(data) 2045 73 55 - 2053: 23(int16_t) CompositeExtract 2049 1 - Store 2052 2053 - 2054: 6(int) Load 8(invocation) - 2055: 1954(ptr) AccessChain 34(data) 59 73 - 2056: 24(i16vec4) Load 2055 - 2057:1964(i16vec3) VectorShuffle 2056 2056 0 1 2 - 2058:1964(i16vec3) GroupNonUniformUMax 42 Reduce 2057 - 2059: 1947(ptr) AccessChain 34(data) 2054 73 38 - 2060: 23(int16_t) CompositeExtract 2058 0 - Store 2059 2060 - 2061: 1947(ptr) AccessChain 34(data) 2054 73 55 - 2062: 23(int16_t) CompositeExtract 2058 1 - Store 2061 2062 - 2063: 1947(ptr) AccessChain 34(data) 2054 73 69 - 2064: 23(int16_t) CompositeExtract 2058 2 - Store 2063 2064 - 2065: 6(int) Load 8(invocation) - 2066: 1954(ptr) AccessChain 34(data) 73 73 - 2067: 24(i16vec4) Load 2066 - 2068: 24(i16vec4) GroupNonUniformUMax 42 Reduce 2067 - 2069: 1954(ptr) AccessChain 34(data) 2065 73 - Store 2069 2068 - 2070: 6(int) Load 8(invocation) - 2071: 1947(ptr) AccessChain 34(data) 37 73 38 - 2072: 23(int16_t) Load 2071 - 2073: 23(int16_t) GroupNonUniformBitwiseAnd 42 Reduce 2072 - 2074: 1947(ptr) AccessChain 34(data) 2070 73 38 - Store 2074 2073 - 2075: 6(int) Load 8(invocation) - 2076: 1954(ptr) AccessChain 34(data) 46 73 - 2077: 24(i16vec4) Load 2076 - 2078:1953(i16vec2) VectorShuffle 2077 2077 0 1 - 2079:1953(i16vec2) GroupNonUniformBitwiseAnd 42 Reduce 2078 - 2080: 1947(ptr) AccessChain 34(data) 2075 73 38 - 2081: 23(int16_t) CompositeExtract 2079 0 - Store 2080 2081 - 2082: 1947(ptr) AccessChain 34(data) 2075 73 55 - 2083: 23(int16_t) CompositeExtract 2079 1 - Store 2082 2083 - 2084: 6(int) Load 8(invocation) - 2085: 1954(ptr) AccessChain 34(data) 59 73 - 2086: 24(i16vec4) Load 2085 - 2087:1964(i16vec3) VectorShuffle 2086 2086 0 1 2 - 2088:1964(i16vec3) GroupNonUniformBitwiseAnd 42 Reduce 2087 - 2089: 1947(ptr) AccessChain 34(data) 2084 73 38 - 2090: 23(int16_t) CompositeExtract 2088 0 - Store 2089 2090 - 2091: 1947(ptr) AccessChain 34(data) 2084 73 55 - 2092: 23(int16_t) CompositeExtract 2088 1 - Store 2091 2092 - 2093: 1947(ptr) AccessChain 34(data) 2084 73 69 - 2094: 23(int16_t) CompositeExtract 2088 2 - Store 2093 2094 - 2095: 6(int) Load 8(invocation) - 2096: 1954(ptr) AccessChain 34(data) 73 73 - 2097: 24(i16vec4) Load 2096 - 2098: 24(i16vec4) GroupNonUniformBitwiseAnd 42 Reduce 2097 - 2099: 1954(ptr) AccessChain 34(data) 2095 73 - Store 2099 2098 - 2100: 6(int) Load 8(invocation) - 2101: 1947(ptr) AccessChain 34(data) 37 73 38 - 2102: 23(int16_t) Load 2101 - 2103: 23(int16_t) GroupNonUniformBitwiseOr 42 Reduce 2102 - 2104: 1947(ptr) AccessChain 34(data) 2100 73 38 - Store 2104 2103 - 2105: 6(int) Load 8(invocation) - 2106: 1954(ptr) AccessChain 34(data) 46 73 - 2107: 24(i16vec4) Load 2106 - 2108:1953(i16vec2) VectorShuffle 2107 2107 0 1 - 2109:1953(i16vec2) GroupNonUniformBitwiseOr 42 Reduce 2108 - 2110: 1947(ptr) AccessChain 34(data) 2105 73 38 - 2111: 23(int16_t) CompositeExtract 2109 0 - Store 2110 2111 - 2112: 1947(ptr) AccessChain 34(data) 2105 73 55 - 2113: 23(int16_t) CompositeExtract 2109 1 - Store 2112 2113 - 2114: 6(int) Load 8(invocation) - 2115: 1954(ptr) AccessChain 34(data) 59 73 - 2116: 24(i16vec4) Load 2115 - 2117:1964(i16vec3) VectorShuffle 2116 2116 0 1 2 - 2118:1964(i16vec3) GroupNonUniformBitwiseOr 42 Reduce 2117 - 2119: 1947(ptr) AccessChain 34(data) 2114 73 38 - 2120: 23(int16_t) CompositeExtract 2118 0 - Store 2119 2120 - 2121: 1947(ptr) AccessChain 34(data) 2114 73 55 - 2122: 23(int16_t) CompositeExtract 2118 1 - Store 2121 2122 - 2123: 1947(ptr) AccessChain 34(data) 2114 73 69 - 2124: 23(int16_t) CompositeExtract 2118 2 - Store 2123 2124 - 2125: 6(int) Load 8(invocation) - 2126: 1954(ptr) AccessChain 34(data) 73 73 - 2127: 24(i16vec4) Load 2126 - 2128: 24(i16vec4) GroupNonUniformBitwiseOr 42 Reduce 2127 - 2129: 1954(ptr) AccessChain 34(data) 2125 73 - Store 2129 2128 - 2130: 6(int) Load 8(invocation) - 2131: 1947(ptr) AccessChain 34(data) 37 73 38 - 2132: 23(int16_t) Load 2131 - 2133: 23(int16_t) GroupNonUniformBitwiseXor 42 Reduce 2132 - 2134: 1947(ptr) AccessChain 34(data) 2130 73 38 - Store 2134 2133 - 2135: 6(int) Load 8(invocation) - 2136: 1954(ptr) AccessChain 34(data) 46 73 - 2137: 24(i16vec4) Load 2136 - 2138:1953(i16vec2) VectorShuffle 2137 2137 0 1 - 2139:1953(i16vec2) GroupNonUniformBitwiseXor 42 Reduce 2138 - 2140: 1947(ptr) AccessChain 34(data) 2135 73 38 - 2141: 23(int16_t) CompositeExtract 2139 0 - Store 2140 2141 - 2142: 1947(ptr) AccessChain 34(data) 2135 73 55 - 2143: 23(int16_t) CompositeExtract 2139 1 - Store 2142 2143 - 2144: 6(int) Load 8(invocation) - 2145: 1954(ptr) AccessChain 34(data) 59 73 - 2146: 24(i16vec4) Load 2145 - 2147:1964(i16vec3) VectorShuffle 2146 2146 0 1 2 - 2148:1964(i16vec3) GroupNonUniformBitwiseXor 42 Reduce 2147 - 2149: 1947(ptr) AccessChain 34(data) 2144 73 38 - 2150: 23(int16_t) CompositeExtract 2148 0 - Store 2149 2150 - 2151: 1947(ptr) AccessChain 34(data) 2144 73 55 - 2152: 23(int16_t) CompositeExtract 2148 1 - Store 2151 2152 - 2153: 1947(ptr) AccessChain 34(data) 2144 73 69 - 2154: 23(int16_t) CompositeExtract 2148 2 - Store 2153 2154 - 2155: 6(int) Load 8(invocation) - 2156: 1954(ptr) AccessChain 34(data) 73 73 - 2157: 24(i16vec4) Load 2156 - 2158: 24(i16vec4) GroupNonUniformBitwiseXor 42 Reduce 2157 - 2159: 1954(ptr) AccessChain 34(data) 2155 73 - Store 2159 2158 - 2160: 6(int) Load 8(invocation) - 2161: 1947(ptr) AccessChain 34(data) 37 73 38 - 2162: 23(int16_t) Load 2161 - 2163: 23(int16_t) GroupNonUniformIAdd 42 InclusiveScan 2162 - 2164: 1947(ptr) AccessChain 34(data) 2160 73 38 - Store 2164 2163 - 2165: 6(int) Load 8(invocation) - 2166: 1954(ptr) AccessChain 34(data) 46 73 - 2167: 24(i16vec4) Load 2166 - 2168:1953(i16vec2) VectorShuffle 2167 2167 0 1 - 2169:1953(i16vec2) GroupNonUniformIAdd 42 InclusiveScan 2168 - 2170: 1947(ptr) AccessChain 34(data) 2165 73 38 - 2171: 23(int16_t) CompositeExtract 2169 0 - Store 2170 2171 - 2172: 1947(ptr) AccessChain 34(data) 2165 73 55 - 2173: 23(int16_t) CompositeExtract 2169 1 - Store 2172 2173 - 2174: 6(int) Load 8(invocation) - 2175: 1954(ptr) AccessChain 34(data) 59 73 - 2176: 24(i16vec4) Load 2175 - 2177:1964(i16vec3) VectorShuffle 2176 2176 0 1 2 - 2178:1964(i16vec3) GroupNonUniformIAdd 42 InclusiveScan 2177 - 2179: 1947(ptr) AccessChain 34(data) 2174 73 38 - 2180: 23(int16_t) CompositeExtract 2178 0 - Store 2179 2180 - 2181: 1947(ptr) AccessChain 34(data) 2174 73 55 - 2182: 23(int16_t) CompositeExtract 2178 1 - Store 2181 2182 - 2183: 1947(ptr) AccessChain 34(data) 2174 73 69 - 2184: 23(int16_t) CompositeExtract 2178 2 - Store 2183 2184 - 2185: 6(int) Load 8(invocation) - 2186: 1954(ptr) AccessChain 34(data) 73 73 - 2187: 24(i16vec4) Load 2186 - 2188: 24(i16vec4) GroupNonUniformIAdd 42 InclusiveScan 2187 - 2189: 1954(ptr) AccessChain 34(data) 2185 73 - Store 2189 2188 - 2190: 6(int) Load 8(invocation) - 2191: 1947(ptr) AccessChain 34(data) 37 73 38 - 2192: 23(int16_t) Load 2191 - 2193: 23(int16_t) GroupNonUniformIMul 42 InclusiveScan 2192 - 2194: 1947(ptr) AccessChain 34(data) 2190 73 38 - Store 2194 2193 - 2195: 6(int) Load 8(invocation) - 2196: 1954(ptr) AccessChain 34(data) 46 73 - 2197: 24(i16vec4) Load 2196 - 2198:1953(i16vec2) VectorShuffle 2197 2197 0 1 - 2199:1953(i16vec2) GroupNonUniformIMul 42 InclusiveScan 2198 - 2200: 1947(ptr) AccessChain 34(data) 2195 73 38 - 2201: 23(int16_t) CompositeExtract 2199 0 - Store 2200 2201 - 2202: 1947(ptr) AccessChain 34(data) 2195 73 55 - 2203: 23(int16_t) CompositeExtract 2199 1 - Store 2202 2203 - 2204: 6(int) Load 8(invocation) - 2205: 1954(ptr) AccessChain 34(data) 59 73 - 2206: 24(i16vec4) Load 2205 - 2207:1964(i16vec3) VectorShuffle 2206 2206 0 1 2 - 2208:1964(i16vec3) GroupNonUniformIMul 42 InclusiveScan 2207 - 2209: 1947(ptr) AccessChain 34(data) 2204 73 38 - 2210: 23(int16_t) CompositeExtract 2208 0 - Store 2209 2210 - 2211: 1947(ptr) AccessChain 34(data) 2204 73 55 - 2212: 23(int16_t) CompositeExtract 2208 1 - Store 2211 2212 - 2213: 1947(ptr) AccessChain 34(data) 2204 73 69 - 2214: 23(int16_t) CompositeExtract 2208 2 - Store 2213 2214 - 2215: 6(int) Load 8(invocation) - 2216: 1954(ptr) AccessChain 34(data) 73 73 - 2217: 24(i16vec4) Load 2216 - 2218: 24(i16vec4) GroupNonUniformIMul 42 InclusiveScan 2217 - 2219: 1954(ptr) AccessChain 34(data) 2215 73 - Store 2219 2218 - 2220: 6(int) Load 8(invocation) - 2221: 1947(ptr) AccessChain 34(data) 37 73 38 - 2222: 23(int16_t) Load 2221 - 2223: 23(int16_t) GroupNonUniformUMin 42 InclusiveScan 2222 - 2224: 1947(ptr) AccessChain 34(data) 2220 73 38 - Store 2224 2223 - 2225: 6(int) Load 8(invocation) - 2226: 1954(ptr) AccessChain 34(data) 46 73 - 2227: 24(i16vec4) Load 2226 - 2228:1953(i16vec2) VectorShuffle 2227 2227 0 1 - 2229:1953(i16vec2) GroupNonUniformUMin 42 InclusiveScan 2228 - 2230: 1947(ptr) AccessChain 34(data) 2225 73 38 - 2231: 23(int16_t) CompositeExtract 2229 0 - Store 2230 2231 - 2232: 1947(ptr) AccessChain 34(data) 2225 73 55 - 2233: 23(int16_t) CompositeExtract 2229 1 - Store 2232 2233 - 2234: 6(int) Load 8(invocation) - 2235: 1954(ptr) AccessChain 34(data) 59 73 - 2236: 24(i16vec4) Load 2235 - 2237:1964(i16vec3) VectorShuffle 2236 2236 0 1 2 - 2238:1964(i16vec3) GroupNonUniformUMin 42 InclusiveScan 2237 - 2239: 1947(ptr) AccessChain 34(data) 2234 73 38 - 2240: 23(int16_t) CompositeExtract 2238 0 - Store 2239 2240 - 2241: 1947(ptr) AccessChain 34(data) 2234 73 55 - 2242: 23(int16_t) CompositeExtract 2238 1 - Store 2241 2242 - 2243: 1947(ptr) AccessChain 34(data) 2234 73 69 - 2244: 23(int16_t) CompositeExtract 2238 2 - Store 2243 2244 - 2245: 6(int) Load 8(invocation) - 2246: 1954(ptr) AccessChain 34(data) 73 73 - 2247: 24(i16vec4) Load 2246 - 2248: 24(i16vec4) GroupNonUniformUMin 42 InclusiveScan 2247 - 2249: 1954(ptr) AccessChain 34(data) 2245 73 - Store 2249 2248 - 2250: 6(int) Load 8(invocation) - 2251: 1947(ptr) AccessChain 34(data) 37 73 38 - 2252: 23(int16_t) Load 2251 - 2253: 23(int16_t) GroupNonUniformUMax 42 InclusiveScan 2252 - 2254: 1947(ptr) AccessChain 34(data) 2250 73 38 - Store 2254 2253 - 2255: 6(int) Load 8(invocation) - 2256: 1954(ptr) AccessChain 34(data) 46 73 - 2257: 24(i16vec4) Load 2256 - 2258:1953(i16vec2) VectorShuffle 2257 2257 0 1 - 2259:1953(i16vec2) GroupNonUniformUMax 42 InclusiveScan 2258 - 2260: 1947(ptr) AccessChain 34(data) 2255 73 38 - 2261: 23(int16_t) CompositeExtract 2259 0 - Store 2260 2261 - 2262: 1947(ptr) AccessChain 34(data) 2255 73 55 - 2263: 23(int16_t) CompositeExtract 2259 1 - Store 2262 2263 - 2264: 6(int) Load 8(invocation) - 2265: 1954(ptr) AccessChain 34(data) 59 73 - 2266: 24(i16vec4) Load 2265 - 2267:1964(i16vec3) VectorShuffle 2266 2266 0 1 2 - 2268:1964(i16vec3) GroupNonUniformUMax 42 InclusiveScan 2267 - 2269: 1947(ptr) AccessChain 34(data) 2264 73 38 - 2270: 23(int16_t) CompositeExtract 2268 0 - Store 2269 2270 - 2271: 1947(ptr) AccessChain 34(data) 2264 73 55 - 2272: 23(int16_t) CompositeExtract 2268 1 - Store 2271 2272 - 2273: 1947(ptr) AccessChain 34(data) 2264 73 69 - 2274: 23(int16_t) CompositeExtract 2268 2 - Store 2273 2274 - 2275: 6(int) Load 8(invocation) - 2276: 1954(ptr) AccessChain 34(data) 73 73 - 2277: 24(i16vec4) Load 2276 - 2278: 24(i16vec4) GroupNonUniformUMax 42 InclusiveScan 2277 - 2279: 1954(ptr) AccessChain 34(data) 2275 73 - Store 2279 2278 - 2280: 6(int) Load 8(invocation) - 2281: 1947(ptr) AccessChain 34(data) 37 73 38 - 2282: 23(int16_t) Load 2281 - 2283: 23(int16_t) GroupNonUniformBitwiseAnd 42 InclusiveScan 2282 - 2284: 1947(ptr) AccessChain 34(data) 2280 73 38 - Store 2284 2283 - 2285: 6(int) Load 8(invocation) - 2286: 1954(ptr) AccessChain 34(data) 46 73 - 2287: 24(i16vec4) Load 2286 - 2288:1953(i16vec2) VectorShuffle 2287 2287 0 1 - 2289:1953(i16vec2) GroupNonUniformBitwiseAnd 42 InclusiveScan 2288 - 2290: 1947(ptr) AccessChain 34(data) 2285 73 38 - 2291: 23(int16_t) CompositeExtract 2289 0 - Store 2290 2291 - 2292: 1947(ptr) AccessChain 34(data) 2285 73 55 - 2293: 23(int16_t) CompositeExtract 2289 1 - Store 2292 2293 - 2294: 6(int) Load 8(invocation) - 2295: 1954(ptr) AccessChain 34(data) 59 73 - 2296: 24(i16vec4) Load 2295 - 2297:1964(i16vec3) VectorShuffle 2296 2296 0 1 2 - 2298:1964(i16vec3) GroupNonUniformBitwiseAnd 42 InclusiveScan 2297 - 2299: 1947(ptr) AccessChain 34(data) 2294 73 38 - 2300: 23(int16_t) CompositeExtract 2298 0 - Store 2299 2300 - 2301: 1947(ptr) AccessChain 34(data) 2294 73 55 - 2302: 23(int16_t) CompositeExtract 2298 1 - Store 2301 2302 - 2303: 1947(ptr) AccessChain 34(data) 2294 73 69 - 2304: 23(int16_t) CompositeExtract 2298 2 - Store 2303 2304 - 2305: 6(int) Load 8(invocation) - 2306: 1954(ptr) AccessChain 34(data) 73 73 - 2307: 24(i16vec4) Load 2306 - 2308: 24(i16vec4) GroupNonUniformBitwiseAnd 42 InclusiveScan 2307 - 2309: 1954(ptr) AccessChain 34(data) 2305 73 - Store 2309 2308 - 2310: 6(int) Load 8(invocation) - 2311: 1947(ptr) AccessChain 34(data) 37 73 38 - 2312: 23(int16_t) Load 2311 - 2313: 23(int16_t) GroupNonUniformBitwiseOr 42 InclusiveScan 2312 - 2314: 1947(ptr) AccessChain 34(data) 2310 73 38 - Store 2314 2313 - 2315: 6(int) Load 8(invocation) - 2316: 1954(ptr) AccessChain 34(data) 46 73 - 2317: 24(i16vec4) Load 2316 - 2318:1953(i16vec2) VectorShuffle 2317 2317 0 1 - 2319:1953(i16vec2) GroupNonUniformBitwiseOr 42 InclusiveScan 2318 - 2320: 1947(ptr) AccessChain 34(data) 2315 73 38 - 2321: 23(int16_t) CompositeExtract 2319 0 - Store 2320 2321 - 2322: 1947(ptr) AccessChain 34(data) 2315 73 55 - 2323: 23(int16_t) CompositeExtract 2319 1 - Store 2322 2323 - 2324: 6(int) Load 8(invocation) - 2325: 1954(ptr) AccessChain 34(data) 59 73 - 2326: 24(i16vec4) Load 2325 - 2327:1964(i16vec3) VectorShuffle 2326 2326 0 1 2 - 2328:1964(i16vec3) GroupNonUniformBitwiseOr 42 InclusiveScan 2327 - 2329: 1947(ptr) AccessChain 34(data) 2324 73 38 - 2330: 23(int16_t) CompositeExtract 2328 0 - Store 2329 2330 - 2331: 1947(ptr) AccessChain 34(data) 2324 73 55 - 2332: 23(int16_t) CompositeExtract 2328 1 - Store 2331 2332 - 2333: 1947(ptr) AccessChain 34(data) 2324 73 69 - 2334: 23(int16_t) CompositeExtract 2328 2 - Store 2333 2334 - 2335: 6(int) Load 8(invocation) - 2336: 1954(ptr) AccessChain 34(data) 73 73 - 2337: 24(i16vec4) Load 2336 - 2338: 24(i16vec4) GroupNonUniformBitwiseOr 42 InclusiveScan 2337 - 2339: 1954(ptr) AccessChain 34(data) 2335 73 - Store 2339 2338 - 2340: 6(int) Load 8(invocation) - 2341: 1947(ptr) AccessChain 34(data) 37 73 38 - 2342: 23(int16_t) Load 2341 - 2343: 23(int16_t) GroupNonUniformBitwiseXor 42 InclusiveScan 2342 - 2344: 1947(ptr) AccessChain 34(data) 2340 73 38 - Store 2344 2343 - 2345: 6(int) Load 8(invocation) - 2346: 1954(ptr) AccessChain 34(data) 46 73 - 2347: 24(i16vec4) Load 2346 - 2348:1953(i16vec2) VectorShuffle 2347 2347 0 1 - 2349:1953(i16vec2) GroupNonUniformBitwiseXor 42 InclusiveScan 2348 - 2350: 1947(ptr) AccessChain 34(data) 2345 73 38 - 2351: 23(int16_t) CompositeExtract 2349 0 - Store 2350 2351 - 2352: 1947(ptr) AccessChain 34(data) 2345 73 55 - 2353: 23(int16_t) CompositeExtract 2349 1 - Store 2352 2353 - 2354: 6(int) Load 8(invocation) - 2355: 1954(ptr) AccessChain 34(data) 59 73 - 2356: 24(i16vec4) Load 2355 - 2357:1964(i16vec3) VectorShuffle 2356 2356 0 1 2 - 2358:1964(i16vec3) GroupNonUniformBitwiseXor 42 InclusiveScan 2357 - 2359: 1947(ptr) AccessChain 34(data) 2354 73 38 - 2360: 23(int16_t) CompositeExtract 2358 0 - Store 2359 2360 - 2361: 1947(ptr) AccessChain 34(data) 2354 73 55 - 2362: 23(int16_t) CompositeExtract 2358 1 - Store 2361 2362 - 2363: 1947(ptr) AccessChain 34(data) 2354 73 69 - 2364: 23(int16_t) CompositeExtract 2358 2 - Store 2363 2364 - 2365: 6(int) Load 8(invocation) - 2366: 1954(ptr) AccessChain 34(data) 73 73 - 2367: 24(i16vec4) Load 2366 - 2368: 24(i16vec4) GroupNonUniformBitwiseXor 42 InclusiveScan 2367 - 2369: 1954(ptr) AccessChain 34(data) 2365 73 - Store 2369 2368 - 2370: 6(int) Load 8(invocation) - 2371: 1947(ptr) AccessChain 34(data) 37 73 38 - 2372: 23(int16_t) Load 2371 - 2373: 23(int16_t) GroupNonUniformIAdd 42 ExclusiveScan 2372 - 2374: 1947(ptr) AccessChain 34(data) 2370 73 38 - Store 2374 2373 - 2375: 6(int) Load 8(invocation) - 2376: 1954(ptr) AccessChain 34(data) 46 73 - 2377: 24(i16vec4) Load 2376 - 2378:1953(i16vec2) VectorShuffle 2377 2377 0 1 - 2379:1953(i16vec2) GroupNonUniformIAdd 42 ExclusiveScan 2378 - 2380: 1947(ptr) AccessChain 34(data) 2375 73 38 - 2381: 23(int16_t) CompositeExtract 2379 0 - Store 2380 2381 - 2382: 1947(ptr) AccessChain 34(data) 2375 73 55 - 2383: 23(int16_t) CompositeExtract 2379 1 - Store 2382 2383 - 2384: 6(int) Load 8(invocation) - 2385: 1954(ptr) AccessChain 34(data) 59 73 - 2386: 24(i16vec4) Load 2385 - 2387:1964(i16vec3) VectorShuffle 2386 2386 0 1 2 - 2388:1964(i16vec3) GroupNonUniformIAdd 42 ExclusiveScan 2387 - 2389: 1947(ptr) AccessChain 34(data) 2384 73 38 - 2390: 23(int16_t) CompositeExtract 2388 0 - Store 2389 2390 - 2391: 1947(ptr) AccessChain 34(data) 2384 73 55 - 2392: 23(int16_t) CompositeExtract 2388 1 - Store 2391 2392 - 2393: 1947(ptr) AccessChain 34(data) 2384 73 69 - 2394: 23(int16_t) CompositeExtract 2388 2 - Store 2393 2394 - 2395: 6(int) Load 8(invocation) - 2396: 1954(ptr) AccessChain 34(data) 73 73 - 2397: 24(i16vec4) Load 2396 - 2398: 24(i16vec4) GroupNonUniformIAdd 42 ExclusiveScan 2397 - 2399: 1954(ptr) AccessChain 34(data) 2395 73 - Store 2399 2398 - 2400: 6(int) Load 8(invocation) - 2401: 1947(ptr) AccessChain 34(data) 37 73 38 - 2402: 23(int16_t) Load 2401 - 2403: 23(int16_t) GroupNonUniformIMul 42 ExclusiveScan 2402 - 2404: 1947(ptr) AccessChain 34(data) 2400 73 38 - Store 2404 2403 - 2405: 6(int) Load 8(invocation) - 2406: 1954(ptr) AccessChain 34(data) 46 73 - 2407: 24(i16vec4) Load 2406 - 2408:1953(i16vec2) VectorShuffle 2407 2407 0 1 - 2409:1953(i16vec2) GroupNonUniformIMul 42 ExclusiveScan 2408 - 2410: 1947(ptr) AccessChain 34(data) 2405 73 38 - 2411: 23(int16_t) CompositeExtract 2409 0 - Store 2410 2411 - 2412: 1947(ptr) AccessChain 34(data) 2405 73 55 - 2413: 23(int16_t) CompositeExtract 2409 1 - Store 2412 2413 - 2414: 6(int) Load 8(invocation) - 2415: 1954(ptr) AccessChain 34(data) 59 73 - 2416: 24(i16vec4) Load 2415 - 2417:1964(i16vec3) VectorShuffle 2416 2416 0 1 2 - 2418:1964(i16vec3) GroupNonUniformIMul 42 ExclusiveScan 2417 - 2419: 1947(ptr) AccessChain 34(data) 2414 73 38 - 2420: 23(int16_t) CompositeExtract 2418 0 - Store 2419 2420 - 2421: 1947(ptr) AccessChain 34(data) 2414 73 55 - 2422: 23(int16_t) CompositeExtract 2418 1 - Store 2421 2422 - 2423: 1947(ptr) AccessChain 34(data) 2414 73 69 - 2424: 23(int16_t) CompositeExtract 2418 2 - Store 2423 2424 - 2425: 6(int) Load 8(invocation) - 2426: 1954(ptr) AccessChain 34(data) 73 73 - 2427: 24(i16vec4) Load 2426 - 2428: 24(i16vec4) GroupNonUniformIMul 42 ExclusiveScan 2427 - 2429: 1954(ptr) AccessChain 34(data) 2425 73 - Store 2429 2428 - 2430: 6(int) Load 8(invocation) - 2431: 1947(ptr) AccessChain 34(data) 37 73 38 - 2432: 23(int16_t) Load 2431 - 2433: 23(int16_t) GroupNonUniformUMin 42 ExclusiveScan 2432 - 2434: 1947(ptr) AccessChain 34(data) 2430 73 38 - Store 2434 2433 - 2435: 6(int) Load 8(invocation) - 2436: 1954(ptr) AccessChain 34(data) 46 73 - 2437: 24(i16vec4) Load 2436 - 2438:1953(i16vec2) VectorShuffle 2437 2437 0 1 - 2439:1953(i16vec2) GroupNonUniformUMin 42 ExclusiveScan 2438 - 2440: 1947(ptr) AccessChain 34(data) 2435 73 38 - 2441: 23(int16_t) CompositeExtract 2439 0 - Store 2440 2441 - 2442: 1947(ptr) AccessChain 34(data) 2435 73 55 - 2443: 23(int16_t) CompositeExtract 2439 1 - Store 2442 2443 - 2444: 6(int) Load 8(invocation) - 2445: 1954(ptr) AccessChain 34(data) 59 73 - 2446: 24(i16vec4) Load 2445 - 2447:1964(i16vec3) VectorShuffle 2446 2446 0 1 2 - 2448:1964(i16vec3) GroupNonUniformUMin 42 ExclusiveScan 2447 - 2449: 1947(ptr) AccessChain 34(data) 2444 73 38 - 2450: 23(int16_t) CompositeExtract 2448 0 - Store 2449 2450 - 2451: 1947(ptr) AccessChain 34(data) 2444 73 55 - 2452: 23(int16_t) CompositeExtract 2448 1 - Store 2451 2452 - 2453: 1947(ptr) AccessChain 34(data) 2444 73 69 - 2454: 23(int16_t) CompositeExtract 2448 2 - Store 2453 2454 - 2455: 6(int) Load 8(invocation) - 2456: 1954(ptr) AccessChain 34(data) 73 73 - 2457: 24(i16vec4) Load 2456 - 2458: 24(i16vec4) GroupNonUniformUMin 42 ExclusiveScan 2457 - 2459: 1954(ptr) AccessChain 34(data) 2455 73 - Store 2459 2458 - 2460: 6(int) Load 8(invocation) - 2461: 1947(ptr) AccessChain 34(data) 37 73 38 - 2462: 23(int16_t) Load 2461 - 2463: 23(int16_t) GroupNonUniformUMax 42 ExclusiveScan 2462 - 2464: 1947(ptr) AccessChain 34(data) 2460 73 38 - Store 2464 2463 - 2465: 6(int) Load 8(invocation) - 2466: 1954(ptr) AccessChain 34(data) 46 73 - 2467: 24(i16vec4) Load 2466 - 2468:1953(i16vec2) VectorShuffle 2467 2467 0 1 - 2469:1953(i16vec2) GroupNonUniformUMax 42 ExclusiveScan 2468 - 2470: 1947(ptr) AccessChain 34(data) 2465 73 38 - 2471: 23(int16_t) CompositeExtract 2469 0 - Store 2470 2471 - 2472: 1947(ptr) AccessChain 34(data) 2465 73 55 - 2473: 23(int16_t) CompositeExtract 2469 1 - Store 2472 2473 - 2474: 6(int) Load 8(invocation) - 2475: 1954(ptr) AccessChain 34(data) 59 73 - 2476: 24(i16vec4) Load 2475 - 2477:1964(i16vec3) VectorShuffle 2476 2476 0 1 2 - 2478:1964(i16vec3) GroupNonUniformUMax 42 ExclusiveScan 2477 - 2479: 1947(ptr) AccessChain 34(data) 2474 73 38 - 2480: 23(int16_t) CompositeExtract 2478 0 - Store 2479 2480 - 2481: 1947(ptr) AccessChain 34(data) 2474 73 55 - 2482: 23(int16_t) CompositeExtract 2478 1 - Store 2481 2482 - 2483: 1947(ptr) AccessChain 34(data) 2474 73 69 - 2484: 23(int16_t) CompositeExtract 2478 2 - Store 2483 2484 - 2485: 6(int) Load 8(invocation) - 2486: 1954(ptr) AccessChain 34(data) 73 73 - 2487: 24(i16vec4) Load 2486 - 2488: 24(i16vec4) GroupNonUniformUMax 42 ExclusiveScan 2487 - 2489: 1954(ptr) AccessChain 34(data) 2485 73 - Store 2489 2488 - 2490: 6(int) Load 8(invocation) - 2491: 1947(ptr) AccessChain 34(data) 37 73 38 - 2492: 23(int16_t) Load 2491 - 2493: 23(int16_t) GroupNonUniformBitwiseAnd 42 ExclusiveScan 2492 - 2494: 1947(ptr) AccessChain 34(data) 2490 73 38 - Store 2494 2493 - 2495: 6(int) Load 8(invocation) - 2496: 1954(ptr) AccessChain 34(data) 46 73 - 2497: 24(i16vec4) Load 2496 - 2498:1953(i16vec2) VectorShuffle 2497 2497 0 1 - 2499:1953(i16vec2) GroupNonUniformBitwiseAnd 42 ExclusiveScan 2498 - 2500: 1947(ptr) AccessChain 34(data) 2495 73 38 - 2501: 23(int16_t) CompositeExtract 2499 0 - Store 2500 2501 - 2502: 1947(ptr) AccessChain 34(data) 2495 73 55 - 2503: 23(int16_t) CompositeExtract 2499 1 - Store 2502 2503 - 2504: 6(int) Load 8(invocation) - 2505: 1954(ptr) AccessChain 34(data) 59 73 - 2506: 24(i16vec4) Load 2505 - 2507:1964(i16vec3) VectorShuffle 2506 2506 0 1 2 - 2508:1964(i16vec3) GroupNonUniformBitwiseAnd 42 ExclusiveScan 2507 - 2509: 1947(ptr) AccessChain 34(data) 2504 73 38 - 2510: 23(int16_t) CompositeExtract 2508 0 - Store 2509 2510 - 2511: 1947(ptr) AccessChain 34(data) 2504 73 55 - 2512: 23(int16_t) CompositeExtract 2508 1 - Store 2511 2512 - 2513: 1947(ptr) AccessChain 34(data) 2504 73 69 - 2514: 23(int16_t) CompositeExtract 2508 2 - Store 2513 2514 - 2515: 6(int) Load 8(invocation) - 2516: 1954(ptr) AccessChain 34(data) 73 73 - 2517: 24(i16vec4) Load 2516 - 2518: 24(i16vec4) GroupNonUniformBitwiseAnd 42 ExclusiveScan 2517 - 2519: 1954(ptr) AccessChain 34(data) 2515 73 - Store 2519 2518 - 2520: 6(int) Load 8(invocation) - 2521: 1947(ptr) AccessChain 34(data) 37 73 38 - 2522: 23(int16_t) Load 2521 - 2523: 23(int16_t) GroupNonUniformBitwiseOr 42 ExclusiveScan 2522 - 2524: 1947(ptr) AccessChain 34(data) 2520 73 38 - Store 2524 2523 - 2525: 6(int) Load 8(invocation) - 2526: 1954(ptr) AccessChain 34(data) 46 73 - 2527: 24(i16vec4) Load 2526 - 2528:1953(i16vec2) VectorShuffle 2527 2527 0 1 - 2529:1953(i16vec2) GroupNonUniformBitwiseOr 42 ExclusiveScan 2528 - 2530: 1947(ptr) AccessChain 34(data) 2525 73 38 - 2531: 23(int16_t) CompositeExtract 2529 0 - Store 2530 2531 - 2532: 1947(ptr) AccessChain 34(data) 2525 73 55 - 2533: 23(int16_t) CompositeExtract 2529 1 - Store 2532 2533 - 2534: 6(int) Load 8(invocation) - 2535: 1954(ptr) AccessChain 34(data) 59 73 - 2536: 24(i16vec4) Load 2535 - 2537:1964(i16vec3) VectorShuffle 2536 2536 0 1 2 - 2538:1964(i16vec3) GroupNonUniformBitwiseOr 42 ExclusiveScan 2537 - 2539: 1947(ptr) AccessChain 34(data) 2534 73 38 - 2540: 23(int16_t) CompositeExtract 2538 0 - Store 2539 2540 - 2541: 1947(ptr) AccessChain 34(data) 2534 73 55 - 2542: 23(int16_t) CompositeExtract 2538 1 - Store 2541 2542 - 2543: 1947(ptr) AccessChain 34(data) 2534 73 69 - 2544: 23(int16_t) CompositeExtract 2538 2 - Store 2543 2544 - 2545: 6(int) Load 8(invocation) - 2546: 1954(ptr) AccessChain 34(data) 73 73 - 2547: 24(i16vec4) Load 2546 - 2548: 24(i16vec4) GroupNonUniformBitwiseOr 42 ExclusiveScan 2547 - 2549: 1954(ptr) AccessChain 34(data) 2545 73 - Store 2549 2548 - 2550: 6(int) Load 8(invocation) - 2551: 1947(ptr) AccessChain 34(data) 37 73 38 - 2552: 23(int16_t) Load 2551 - 2553: 23(int16_t) GroupNonUniformBitwiseXor 42 ExclusiveScan 2552 - 2554: 1947(ptr) AccessChain 34(data) 2550 73 38 - Store 2554 2553 - 2555: 6(int) Load 8(invocation) - 2556: 1954(ptr) AccessChain 34(data) 46 73 - 2557: 24(i16vec4) Load 2556 - 2558:1953(i16vec2) VectorShuffle 2557 2557 0 1 - 2559:1953(i16vec2) GroupNonUniformBitwiseXor 42 ExclusiveScan 2558 - 2560: 1947(ptr) AccessChain 34(data) 2555 73 38 - 2561: 23(int16_t) CompositeExtract 2559 0 - Store 2560 2561 - 2562: 1947(ptr) AccessChain 34(data) 2555 73 55 - 2563: 23(int16_t) CompositeExtract 2559 1 - Store 2562 2563 - 2564: 6(int) Load 8(invocation) - 2565: 1954(ptr) AccessChain 34(data) 59 73 - 2566: 24(i16vec4) Load 2565 - 2567:1964(i16vec3) VectorShuffle 2566 2566 0 1 2 - 2568:1964(i16vec3) GroupNonUniformBitwiseXor 42 ExclusiveScan 2567 - 2569: 1947(ptr) AccessChain 34(data) 2564 73 38 - 2570: 23(int16_t) CompositeExtract 2568 0 - Store 2569 2570 - 2571: 1947(ptr) AccessChain 34(data) 2564 73 55 - 2572: 23(int16_t) CompositeExtract 2568 1 - Store 2571 2572 - 2573: 1947(ptr) AccessChain 34(data) 2564 73 69 - 2574: 23(int16_t) CompositeExtract 2568 2 - Store 2573 2574 - 2575: 6(int) Load 8(invocation) - 2576: 1954(ptr) AccessChain 34(data) 73 73 - 2577: 24(i16vec4) Load 2576 - 2578: 24(i16vec4) GroupNonUniformBitwiseXor 42 ExclusiveScan 2577 - 2579: 1954(ptr) AccessChain 34(data) 2575 73 - Store 2579 2578 - 2580: 6(int) Load 8(invocation) - 2583: 2582(ptr) AccessChain 34(data) 37 2581 38 - 2584: 25(int64_t) Load 2583 - 2585: 25(int64_t) GroupNonUniformIAdd 42 Reduce 2584 - 2586: 2582(ptr) AccessChain 34(data) 2580 2581 38 - Store 2586 2585 - 2587: 6(int) Load 8(invocation) - 2590: 2589(ptr) AccessChain 34(data) 46 2581 - 2591: 26(i64vec4) Load 2590 - 2592:2588(i64vec2) VectorShuffle 2591 2591 0 1 - 2593:2588(i64vec2) GroupNonUniformIAdd 42 Reduce 2592 - 2594: 2582(ptr) AccessChain 34(data) 2587 2581 38 - 2595: 25(int64_t) CompositeExtract 2593 0 - Store 2594 2595 - 2596: 2582(ptr) AccessChain 34(data) 2587 2581 55 - 2597: 25(int64_t) CompositeExtract 2593 1 - Store 2596 2597 - 2598: 6(int) Load 8(invocation) - 2600: 2589(ptr) AccessChain 34(data) 59 2581 - 2601: 26(i64vec4) Load 2600 - 2602:2599(i64vec3) VectorShuffle 2601 2601 0 1 2 - 2603:2599(i64vec3) GroupNonUniformIAdd 42 Reduce 2602 - 2604: 2582(ptr) AccessChain 34(data) 2598 2581 38 - 2605: 25(int64_t) CompositeExtract 2603 0 - Store 2604 2605 - 2606: 2582(ptr) AccessChain 34(data) 2598 2581 55 - 2607: 25(int64_t) CompositeExtract 2603 1 - Store 2606 2607 - 2608: 2582(ptr) AccessChain 34(data) 2598 2581 69 - 2609: 25(int64_t) CompositeExtract 2603 2 - Store 2608 2609 - 2610: 6(int) Load 8(invocation) - 2611: 2589(ptr) AccessChain 34(data) 73 2581 - 2612: 26(i64vec4) Load 2611 - 2613: 26(i64vec4) GroupNonUniformIAdd 42 Reduce 2612 - 2614: 2589(ptr) AccessChain 34(data) 2610 2581 - Store 2614 2613 - 2615: 6(int) Load 8(invocation) - 2616: 2582(ptr) AccessChain 34(data) 37 2581 38 - 2617: 25(int64_t) Load 2616 - 2618: 25(int64_t) GroupNonUniformIMul 42 Reduce 2617 - 2619: 2582(ptr) AccessChain 34(data) 2615 2581 38 - Store 2619 2618 - 2620: 6(int) Load 8(invocation) - 2621: 2589(ptr) AccessChain 34(data) 46 2581 - 2622: 26(i64vec4) Load 2621 - 2623:2588(i64vec2) VectorShuffle 2622 2622 0 1 - 2624:2588(i64vec2) GroupNonUniformIMul 42 Reduce 2623 - 2625: 2582(ptr) AccessChain 34(data) 2620 2581 38 - 2626: 25(int64_t) CompositeExtract 2624 0 - Store 2625 2626 - 2627: 2582(ptr) AccessChain 34(data) 2620 2581 55 - 2628: 25(int64_t) CompositeExtract 2624 1 - Store 2627 2628 - 2629: 6(int) Load 8(invocation) - 2630: 2589(ptr) AccessChain 34(data) 59 2581 - 2631: 26(i64vec4) Load 2630 - 2632:2599(i64vec3) VectorShuffle 2631 2631 0 1 2 - 2633:2599(i64vec3) GroupNonUniformIMul 42 Reduce 2632 - 2634: 2582(ptr) AccessChain 34(data) 2629 2581 38 - 2635: 25(int64_t) CompositeExtract 2633 0 - Store 2634 2635 - 2636: 2582(ptr) AccessChain 34(data) 2629 2581 55 - 2637: 25(int64_t) CompositeExtract 2633 1 - Store 2636 2637 - 2638: 2582(ptr) AccessChain 34(data) 2629 2581 69 - 2639: 25(int64_t) CompositeExtract 2633 2 - Store 2638 2639 - 2640: 6(int) Load 8(invocation) - 2641: 2589(ptr) AccessChain 34(data) 73 2581 - 2642: 26(i64vec4) Load 2641 - 2643: 26(i64vec4) GroupNonUniformIMul 42 Reduce 2642 - 2644: 2589(ptr) AccessChain 34(data) 2640 2581 - Store 2644 2643 - 2645: 6(int) Load 8(invocation) - 2646: 2582(ptr) AccessChain 34(data) 37 2581 38 - 2647: 25(int64_t) Load 2646 - 2648: 25(int64_t) GroupNonUniformSMin 42 Reduce 2647 - 2649: 2582(ptr) AccessChain 34(data) 2645 2581 38 - Store 2649 2648 - 2650: 6(int) Load 8(invocation) - 2651: 2589(ptr) AccessChain 34(data) 46 2581 - 2652: 26(i64vec4) Load 2651 - 2653:2588(i64vec2) VectorShuffle 2652 2652 0 1 - 2654:2588(i64vec2) GroupNonUniformSMin 42 Reduce 2653 - 2655: 2582(ptr) AccessChain 34(data) 2650 2581 38 - 2656: 25(int64_t) CompositeExtract 2654 0 - Store 2655 2656 - 2657: 2582(ptr) AccessChain 34(data) 2650 2581 55 - 2658: 25(int64_t) CompositeExtract 2654 1 - Store 2657 2658 - 2659: 6(int) Load 8(invocation) - 2660: 2589(ptr) AccessChain 34(data) 59 2581 - 2661: 26(i64vec4) Load 2660 - 2662:2599(i64vec3) VectorShuffle 2661 2661 0 1 2 - 2663:2599(i64vec3) GroupNonUniformSMin 42 Reduce 2662 - 2664: 2582(ptr) AccessChain 34(data) 2659 2581 38 - 2665: 25(int64_t) CompositeExtract 2663 0 - Store 2664 2665 - 2666: 2582(ptr) AccessChain 34(data) 2659 2581 55 - 2667: 25(int64_t) CompositeExtract 2663 1 - Store 2666 2667 - 2668: 2582(ptr) AccessChain 34(data) 2659 2581 69 - 2669: 25(int64_t) CompositeExtract 2663 2 - Store 2668 2669 - 2670: 6(int) Load 8(invocation) - 2671: 2589(ptr) AccessChain 34(data) 73 2581 - 2672: 26(i64vec4) Load 2671 - 2673: 26(i64vec4) GroupNonUniformSMin 42 Reduce 2672 - 2674: 2589(ptr) AccessChain 34(data) 2670 2581 - Store 2674 2673 - 2675: 6(int) Load 8(invocation) - 2676: 2582(ptr) AccessChain 34(data) 37 2581 38 - 2677: 25(int64_t) Load 2676 - 2678: 25(int64_t) GroupNonUniformSMax 42 Reduce 2677 - 2679: 2582(ptr) AccessChain 34(data) 2675 2581 38 - Store 2679 2678 - 2680: 6(int) Load 8(invocation) - 2681: 2589(ptr) AccessChain 34(data) 46 2581 - 2682: 26(i64vec4) Load 2681 - 2683:2588(i64vec2) VectorShuffle 2682 2682 0 1 - 2684:2588(i64vec2) GroupNonUniformSMax 42 Reduce 2683 - 2685: 2582(ptr) AccessChain 34(data) 2680 2581 38 - 2686: 25(int64_t) CompositeExtract 2684 0 - Store 2685 2686 - 2687: 2582(ptr) AccessChain 34(data) 2680 2581 55 - 2688: 25(int64_t) CompositeExtract 2684 1 - Store 2687 2688 - 2689: 6(int) Load 8(invocation) - 2690: 2589(ptr) AccessChain 34(data) 59 2581 - 2691: 26(i64vec4) Load 2690 - 2692:2599(i64vec3) VectorShuffle 2691 2691 0 1 2 - 2693:2599(i64vec3) GroupNonUniformSMax 42 Reduce 2692 - 2694: 2582(ptr) AccessChain 34(data) 2689 2581 38 - 2695: 25(int64_t) CompositeExtract 2693 0 - Store 2694 2695 - 2696: 2582(ptr) AccessChain 34(data) 2689 2581 55 - 2697: 25(int64_t) CompositeExtract 2693 1 - Store 2696 2697 - 2698: 2582(ptr) AccessChain 34(data) 2689 2581 69 - 2699: 25(int64_t) CompositeExtract 2693 2 - Store 2698 2699 - 2700: 6(int) Load 8(invocation) - 2701: 2589(ptr) AccessChain 34(data) 73 2581 - 2702: 26(i64vec4) Load 2701 - 2703: 26(i64vec4) GroupNonUniformSMax 42 Reduce 2702 - 2704: 2589(ptr) AccessChain 34(data) 2700 2581 - Store 2704 2703 - 2705: 6(int) Load 8(invocation) - 2706: 2582(ptr) AccessChain 34(data) 37 2581 38 - 2707: 25(int64_t) Load 2706 - 2708: 25(int64_t) GroupNonUniformBitwiseAnd 42 Reduce 2707 - 2709: 2582(ptr) AccessChain 34(data) 2705 2581 38 - Store 2709 2708 - 2710: 6(int) Load 8(invocation) - 2711: 2589(ptr) AccessChain 34(data) 46 2581 - 2712: 26(i64vec4) Load 2711 - 2713:2588(i64vec2) VectorShuffle 2712 2712 0 1 - 2714:2588(i64vec2) GroupNonUniformBitwiseAnd 42 Reduce 2713 - 2715: 2582(ptr) AccessChain 34(data) 2710 2581 38 - 2716: 25(int64_t) CompositeExtract 2714 0 - Store 2715 2716 - 2717: 2582(ptr) AccessChain 34(data) 2710 2581 55 - 2718: 25(int64_t) CompositeExtract 2714 1 - Store 2717 2718 - 2719: 6(int) Load 8(invocation) - 2720: 2589(ptr) AccessChain 34(data) 59 2581 - 2721: 26(i64vec4) Load 2720 - 2722:2599(i64vec3) VectorShuffle 2721 2721 0 1 2 - 2723:2599(i64vec3) GroupNonUniformBitwiseAnd 42 Reduce 2722 - 2724: 2582(ptr) AccessChain 34(data) 2719 2581 38 - 2725: 25(int64_t) CompositeExtract 2723 0 - Store 2724 2725 - 2726: 2582(ptr) AccessChain 34(data) 2719 2581 55 - 2727: 25(int64_t) CompositeExtract 2723 1 - Store 2726 2727 - 2728: 2582(ptr) AccessChain 34(data) 2719 2581 69 - 2729: 25(int64_t) CompositeExtract 2723 2 - Store 2728 2729 - 2730: 6(int) Load 8(invocation) - 2731: 2589(ptr) AccessChain 34(data) 73 2581 - 2732: 26(i64vec4) Load 2731 - 2733: 26(i64vec4) GroupNonUniformBitwiseAnd 42 Reduce 2732 - 2734: 2589(ptr) AccessChain 34(data) 2730 2581 - Store 2734 2733 - 2735: 6(int) Load 8(invocation) - 2736: 2582(ptr) AccessChain 34(data) 37 2581 38 - 2737: 25(int64_t) Load 2736 - 2738: 25(int64_t) GroupNonUniformBitwiseOr 42 Reduce 2737 - 2739: 2582(ptr) AccessChain 34(data) 2735 2581 38 - Store 2739 2738 - 2740: 6(int) Load 8(invocation) - 2741: 2589(ptr) AccessChain 34(data) 46 2581 - 2742: 26(i64vec4) Load 2741 - 2743:2588(i64vec2) VectorShuffle 2742 2742 0 1 - 2744:2588(i64vec2) GroupNonUniformBitwiseOr 42 Reduce 2743 - 2745: 2582(ptr) AccessChain 34(data) 2740 2581 38 - 2746: 25(int64_t) CompositeExtract 2744 0 - Store 2745 2746 - 2747: 2582(ptr) AccessChain 34(data) 2740 2581 55 - 2748: 25(int64_t) CompositeExtract 2744 1 - Store 2747 2748 - 2749: 6(int) Load 8(invocation) - 2750: 2589(ptr) AccessChain 34(data) 59 2581 - 2751: 26(i64vec4) Load 2750 - 2752:2599(i64vec3) VectorShuffle 2751 2751 0 1 2 - 2753:2599(i64vec3) GroupNonUniformBitwiseOr 42 Reduce 2752 - 2754: 2582(ptr) AccessChain 34(data) 2749 2581 38 - 2755: 25(int64_t) CompositeExtract 2753 0 - Store 2754 2755 - 2756: 2582(ptr) AccessChain 34(data) 2749 2581 55 - 2757: 25(int64_t) CompositeExtract 2753 1 - Store 2756 2757 - 2758: 2582(ptr) AccessChain 34(data) 2749 2581 69 - 2759: 25(int64_t) CompositeExtract 2753 2 - Store 2758 2759 - 2760: 6(int) Load 8(invocation) - 2761: 2589(ptr) AccessChain 34(data) 73 2581 - 2762: 26(i64vec4) Load 2761 - 2763: 26(i64vec4) GroupNonUniformBitwiseOr 42 Reduce 2762 - 2764: 2589(ptr) AccessChain 34(data) 2760 2581 - Store 2764 2763 - 2765: 6(int) Load 8(invocation) - 2766: 2582(ptr) AccessChain 34(data) 37 2581 38 - 2767: 25(int64_t) Load 2766 - 2768: 25(int64_t) GroupNonUniformBitwiseXor 42 Reduce 2767 - 2769: 2582(ptr) AccessChain 34(data) 2765 2581 38 - Store 2769 2768 - 2770: 6(int) Load 8(invocation) - 2771: 2589(ptr) AccessChain 34(data) 46 2581 - 2772: 26(i64vec4) Load 2771 - 2773:2588(i64vec2) VectorShuffle 2772 2772 0 1 - 2774:2588(i64vec2) GroupNonUniformBitwiseXor 42 Reduce 2773 - 2775: 2582(ptr) AccessChain 34(data) 2770 2581 38 - 2776: 25(int64_t) CompositeExtract 2774 0 - Store 2775 2776 - 2777: 2582(ptr) AccessChain 34(data) 2770 2581 55 - 2778: 25(int64_t) CompositeExtract 2774 1 - Store 2777 2778 - 2779: 6(int) Load 8(invocation) - 2780: 2589(ptr) AccessChain 34(data) 59 2581 - 2781: 26(i64vec4) Load 2780 - 2782:2599(i64vec3) VectorShuffle 2781 2781 0 1 2 - 2783:2599(i64vec3) GroupNonUniformBitwiseXor 42 Reduce 2782 - 2784: 2582(ptr) AccessChain 34(data) 2779 2581 38 - 2785: 25(int64_t) CompositeExtract 2783 0 - Store 2784 2785 - 2786: 2582(ptr) AccessChain 34(data) 2779 2581 55 - 2787: 25(int64_t) CompositeExtract 2783 1 - Store 2786 2787 - 2788: 2582(ptr) AccessChain 34(data) 2779 2581 69 - 2789: 25(int64_t) CompositeExtract 2783 2 - Store 2788 2789 - 2790: 6(int) Load 8(invocation) - 2791: 2589(ptr) AccessChain 34(data) 73 2581 - 2792: 26(i64vec4) Load 2791 - 2793: 26(i64vec4) GroupNonUniformBitwiseXor 42 Reduce 2792 - 2794: 2589(ptr) AccessChain 34(data) 2790 2581 - Store 2794 2793 - 2795: 6(int) Load 8(invocation) - 2796: 2582(ptr) AccessChain 34(data) 37 2581 38 - 2797: 25(int64_t) Load 2796 - 2798: 25(int64_t) GroupNonUniformIAdd 42 InclusiveScan 2797 - 2799: 2582(ptr) AccessChain 34(data) 2795 2581 38 - Store 2799 2798 - 2800: 6(int) Load 8(invocation) - 2801: 2589(ptr) AccessChain 34(data) 46 2581 - 2802: 26(i64vec4) Load 2801 - 2803:2588(i64vec2) VectorShuffle 2802 2802 0 1 - 2804:2588(i64vec2) GroupNonUniformIAdd 42 InclusiveScan 2803 - 2805: 2582(ptr) AccessChain 34(data) 2800 2581 38 - 2806: 25(int64_t) CompositeExtract 2804 0 - Store 2805 2806 - 2807: 2582(ptr) AccessChain 34(data) 2800 2581 55 - 2808: 25(int64_t) CompositeExtract 2804 1 - Store 2807 2808 - 2809: 6(int) Load 8(invocation) - 2810: 2589(ptr) AccessChain 34(data) 59 2581 - 2811: 26(i64vec4) Load 2810 - 2812:2599(i64vec3) VectorShuffle 2811 2811 0 1 2 - 2813:2599(i64vec3) GroupNonUniformIAdd 42 InclusiveScan 2812 - 2814: 2582(ptr) AccessChain 34(data) 2809 2581 38 - 2815: 25(int64_t) CompositeExtract 2813 0 - Store 2814 2815 - 2816: 2582(ptr) AccessChain 34(data) 2809 2581 55 - 2817: 25(int64_t) CompositeExtract 2813 1 - Store 2816 2817 - 2818: 2582(ptr) AccessChain 34(data) 2809 2581 69 - 2819: 25(int64_t) CompositeExtract 2813 2 - Store 2818 2819 - 2820: 6(int) Load 8(invocation) - 2821: 2589(ptr) AccessChain 34(data) 73 2581 - 2822: 26(i64vec4) Load 2821 - 2823: 26(i64vec4) GroupNonUniformIAdd 42 InclusiveScan 2822 - 2824: 2589(ptr) AccessChain 34(data) 2820 2581 - Store 2824 2823 - 2825: 6(int) Load 8(invocation) - 2826: 2582(ptr) AccessChain 34(data) 37 2581 38 - 2827: 25(int64_t) Load 2826 - 2828: 25(int64_t) GroupNonUniformIMul 42 InclusiveScan 2827 - 2829: 2582(ptr) AccessChain 34(data) 2825 2581 38 - Store 2829 2828 - 2830: 6(int) Load 8(invocation) - 2831: 2589(ptr) AccessChain 34(data) 46 2581 - 2832: 26(i64vec4) Load 2831 - 2833:2588(i64vec2) VectorShuffle 2832 2832 0 1 - 2834:2588(i64vec2) GroupNonUniformIMul 42 InclusiveScan 2833 - 2835: 2582(ptr) AccessChain 34(data) 2830 2581 38 - 2836: 25(int64_t) CompositeExtract 2834 0 - Store 2835 2836 - 2837: 2582(ptr) AccessChain 34(data) 2830 2581 55 - 2838: 25(int64_t) CompositeExtract 2834 1 - Store 2837 2838 - 2839: 6(int) Load 8(invocation) - 2840: 2589(ptr) AccessChain 34(data) 59 2581 - 2841: 26(i64vec4) Load 2840 - 2842:2599(i64vec3) VectorShuffle 2841 2841 0 1 2 - 2843:2599(i64vec3) GroupNonUniformIMul 42 InclusiveScan 2842 - 2844: 2582(ptr) AccessChain 34(data) 2839 2581 38 - 2845: 25(int64_t) CompositeExtract 2843 0 - Store 2844 2845 - 2846: 2582(ptr) AccessChain 34(data) 2839 2581 55 - 2847: 25(int64_t) CompositeExtract 2843 1 - Store 2846 2847 - 2848: 2582(ptr) AccessChain 34(data) 2839 2581 69 - 2849: 25(int64_t) CompositeExtract 2843 2 - Store 2848 2849 - 2850: 6(int) Load 8(invocation) - 2851: 2589(ptr) AccessChain 34(data) 73 2581 - 2852: 26(i64vec4) Load 2851 - 2853: 26(i64vec4) GroupNonUniformIMul 42 InclusiveScan 2852 - 2854: 2589(ptr) AccessChain 34(data) 2850 2581 - Store 2854 2853 - 2855: 6(int) Load 8(invocation) - 2856: 2582(ptr) AccessChain 34(data) 37 2581 38 - 2857: 25(int64_t) Load 2856 - 2858: 25(int64_t) GroupNonUniformSMin 42 InclusiveScan 2857 - 2859: 2582(ptr) AccessChain 34(data) 2855 2581 38 - Store 2859 2858 - 2860: 6(int) Load 8(invocation) - 2861: 2589(ptr) AccessChain 34(data) 46 2581 - 2862: 26(i64vec4) Load 2861 - 2863:2588(i64vec2) VectorShuffle 2862 2862 0 1 - 2864:2588(i64vec2) GroupNonUniformSMin 42 InclusiveScan 2863 - 2865: 2582(ptr) AccessChain 34(data) 2860 2581 38 - 2866: 25(int64_t) CompositeExtract 2864 0 - Store 2865 2866 - 2867: 2582(ptr) AccessChain 34(data) 2860 2581 55 - 2868: 25(int64_t) CompositeExtract 2864 1 - Store 2867 2868 - 2869: 6(int) Load 8(invocation) - 2870: 2589(ptr) AccessChain 34(data) 59 2581 - 2871: 26(i64vec4) Load 2870 - 2872:2599(i64vec3) VectorShuffle 2871 2871 0 1 2 - 2873:2599(i64vec3) GroupNonUniformSMin 42 InclusiveScan 2872 - 2874: 2582(ptr) AccessChain 34(data) 2869 2581 38 - 2875: 25(int64_t) CompositeExtract 2873 0 - Store 2874 2875 - 2876: 2582(ptr) AccessChain 34(data) 2869 2581 55 - 2877: 25(int64_t) CompositeExtract 2873 1 - Store 2876 2877 - 2878: 2582(ptr) AccessChain 34(data) 2869 2581 69 - 2879: 25(int64_t) CompositeExtract 2873 2 - Store 2878 2879 - 2880: 6(int) Load 8(invocation) - 2881: 2589(ptr) AccessChain 34(data) 73 2581 - 2882: 26(i64vec4) Load 2881 - 2883: 26(i64vec4) GroupNonUniformSMin 42 InclusiveScan 2882 - 2884: 2589(ptr) AccessChain 34(data) 2880 2581 - Store 2884 2883 - 2885: 6(int) Load 8(invocation) - 2886: 2582(ptr) AccessChain 34(data) 37 2581 38 - 2887: 25(int64_t) Load 2886 - 2888: 25(int64_t) GroupNonUniformSMax 42 InclusiveScan 2887 - 2889: 2582(ptr) AccessChain 34(data) 2885 2581 38 - Store 2889 2888 - 2890: 6(int) Load 8(invocation) - 2891: 2589(ptr) AccessChain 34(data) 46 2581 - 2892: 26(i64vec4) Load 2891 - 2893:2588(i64vec2) VectorShuffle 2892 2892 0 1 - 2894:2588(i64vec2) GroupNonUniformSMax 42 InclusiveScan 2893 - 2895: 2582(ptr) AccessChain 34(data) 2890 2581 38 - 2896: 25(int64_t) CompositeExtract 2894 0 - Store 2895 2896 - 2897: 2582(ptr) AccessChain 34(data) 2890 2581 55 - 2898: 25(int64_t) CompositeExtract 2894 1 - Store 2897 2898 - 2899: 6(int) Load 8(invocation) - 2900: 2589(ptr) AccessChain 34(data) 59 2581 - 2901: 26(i64vec4) Load 2900 - 2902:2599(i64vec3) VectorShuffle 2901 2901 0 1 2 - 2903:2599(i64vec3) GroupNonUniformSMax 42 InclusiveScan 2902 - 2904: 2582(ptr) AccessChain 34(data) 2899 2581 38 - 2905: 25(int64_t) CompositeExtract 2903 0 - Store 2904 2905 - 2906: 2582(ptr) AccessChain 34(data) 2899 2581 55 - 2907: 25(int64_t) CompositeExtract 2903 1 - Store 2906 2907 - 2908: 2582(ptr) AccessChain 34(data) 2899 2581 69 - 2909: 25(int64_t) CompositeExtract 2903 2 - Store 2908 2909 - 2910: 6(int) Load 8(invocation) - 2911: 2589(ptr) AccessChain 34(data) 73 2581 - 2912: 26(i64vec4) Load 2911 - 2913: 26(i64vec4) GroupNonUniformSMax 42 InclusiveScan 2912 - 2914: 2589(ptr) AccessChain 34(data) 2910 2581 - Store 2914 2913 - 2915: 6(int) Load 8(invocation) - 2916: 2582(ptr) AccessChain 34(data) 37 2581 38 - 2917: 25(int64_t) Load 2916 - 2918: 25(int64_t) GroupNonUniformBitwiseAnd 42 InclusiveScan 2917 - 2919: 2582(ptr) AccessChain 34(data) 2915 2581 38 - Store 2919 2918 - 2920: 6(int) Load 8(invocation) - 2921: 2589(ptr) AccessChain 34(data) 46 2581 - 2922: 26(i64vec4) Load 2921 - 2923:2588(i64vec2) VectorShuffle 2922 2922 0 1 - 2924:2588(i64vec2) GroupNonUniformBitwiseAnd 42 InclusiveScan 2923 - 2925: 2582(ptr) AccessChain 34(data) 2920 2581 38 - 2926: 25(int64_t) CompositeExtract 2924 0 - Store 2925 2926 - 2927: 2582(ptr) AccessChain 34(data) 2920 2581 55 - 2928: 25(int64_t) CompositeExtract 2924 1 - Store 2927 2928 - 2929: 6(int) Load 8(invocation) - 2930: 2589(ptr) AccessChain 34(data) 59 2581 - 2931: 26(i64vec4) Load 2930 - 2932:2599(i64vec3) VectorShuffle 2931 2931 0 1 2 - 2933:2599(i64vec3) GroupNonUniformBitwiseAnd 42 InclusiveScan 2932 - 2934: 2582(ptr) AccessChain 34(data) 2929 2581 38 - 2935: 25(int64_t) CompositeExtract 2933 0 - Store 2934 2935 - 2936: 2582(ptr) AccessChain 34(data) 2929 2581 55 - 2937: 25(int64_t) CompositeExtract 2933 1 - Store 2936 2937 - 2938: 2582(ptr) AccessChain 34(data) 2929 2581 69 - 2939: 25(int64_t) CompositeExtract 2933 2 - Store 2938 2939 - 2940: 6(int) Load 8(invocation) - 2941: 2589(ptr) AccessChain 34(data) 73 2581 - 2942: 26(i64vec4) Load 2941 - 2943: 26(i64vec4) GroupNonUniformBitwiseAnd 42 InclusiveScan 2942 - 2944: 2589(ptr) AccessChain 34(data) 2940 2581 - Store 2944 2943 - 2945: 6(int) Load 8(invocation) - 2946: 2582(ptr) AccessChain 34(data) 37 2581 38 - 2947: 25(int64_t) Load 2946 - 2948: 25(int64_t) GroupNonUniformBitwiseOr 42 InclusiveScan 2947 - 2949: 2582(ptr) AccessChain 34(data) 2945 2581 38 - Store 2949 2948 - 2950: 6(int) Load 8(invocation) - 2951: 2589(ptr) AccessChain 34(data) 46 2581 - 2952: 26(i64vec4) Load 2951 - 2953:2588(i64vec2) VectorShuffle 2952 2952 0 1 - 2954:2588(i64vec2) GroupNonUniformBitwiseOr 42 InclusiveScan 2953 - 2955: 2582(ptr) AccessChain 34(data) 2950 2581 38 - 2956: 25(int64_t) CompositeExtract 2954 0 - Store 2955 2956 - 2957: 2582(ptr) AccessChain 34(data) 2950 2581 55 - 2958: 25(int64_t) CompositeExtract 2954 1 - Store 2957 2958 - 2959: 6(int) Load 8(invocation) - 2960: 2589(ptr) AccessChain 34(data) 59 2581 - 2961: 26(i64vec4) Load 2960 - 2962:2599(i64vec3) VectorShuffle 2961 2961 0 1 2 - 2963:2599(i64vec3) GroupNonUniformBitwiseOr 42 InclusiveScan 2962 - 2964: 2582(ptr) AccessChain 34(data) 2959 2581 38 - 2965: 25(int64_t) CompositeExtract 2963 0 - Store 2964 2965 - 2966: 2582(ptr) AccessChain 34(data) 2959 2581 55 - 2967: 25(int64_t) CompositeExtract 2963 1 - Store 2966 2967 - 2968: 2582(ptr) AccessChain 34(data) 2959 2581 69 - 2969: 25(int64_t) CompositeExtract 2963 2 - Store 2968 2969 - 2970: 6(int) Load 8(invocation) - 2971: 2589(ptr) AccessChain 34(data) 73 2581 - 2972: 26(i64vec4) Load 2971 - 2973: 26(i64vec4) GroupNonUniformBitwiseOr 42 InclusiveScan 2972 - 2974: 2589(ptr) AccessChain 34(data) 2970 2581 - Store 2974 2973 - 2975: 6(int) Load 8(invocation) - 2976: 2582(ptr) AccessChain 34(data) 37 2581 38 - 2977: 25(int64_t) Load 2976 - 2978: 25(int64_t) GroupNonUniformBitwiseXor 42 InclusiveScan 2977 - 2979: 2582(ptr) AccessChain 34(data) 2975 2581 38 - Store 2979 2978 - 2980: 6(int) Load 8(invocation) - 2981: 2589(ptr) AccessChain 34(data) 46 2581 - 2982: 26(i64vec4) Load 2981 - 2983:2588(i64vec2) VectorShuffle 2982 2982 0 1 - 2984:2588(i64vec2) GroupNonUniformBitwiseXor 42 InclusiveScan 2983 - 2985: 2582(ptr) AccessChain 34(data) 2980 2581 38 - 2986: 25(int64_t) CompositeExtract 2984 0 - Store 2985 2986 - 2987: 2582(ptr) AccessChain 34(data) 2980 2581 55 - 2988: 25(int64_t) CompositeExtract 2984 1 - Store 2987 2988 - 2989: 6(int) Load 8(invocation) - 2990: 2589(ptr) AccessChain 34(data) 59 2581 - 2991: 26(i64vec4) Load 2990 - 2992:2599(i64vec3) VectorShuffle 2991 2991 0 1 2 - 2993:2599(i64vec3) GroupNonUniformBitwiseXor 42 InclusiveScan 2992 - 2994: 2582(ptr) AccessChain 34(data) 2989 2581 38 - 2995: 25(int64_t) CompositeExtract 2993 0 - Store 2994 2995 - 2996: 2582(ptr) AccessChain 34(data) 2989 2581 55 - 2997: 25(int64_t) CompositeExtract 2993 1 - Store 2996 2997 - 2998: 2582(ptr) AccessChain 34(data) 2989 2581 69 - 2999: 25(int64_t) CompositeExtract 2993 2 - Store 2998 2999 - 3000: 6(int) Load 8(invocation) - 3001: 2589(ptr) AccessChain 34(data) 73 2581 - 3002: 26(i64vec4) Load 3001 - 3003: 26(i64vec4) GroupNonUniformBitwiseXor 42 InclusiveScan 3002 - 3004: 2589(ptr) AccessChain 34(data) 3000 2581 - Store 3004 3003 - 3005: 6(int) Load 8(invocation) - 3006: 2582(ptr) AccessChain 34(data) 37 2581 38 - 3007: 25(int64_t) Load 3006 - 3008: 25(int64_t) GroupNonUniformIAdd 42 ExclusiveScan 3007 - 3009: 2582(ptr) AccessChain 34(data) 3005 2581 38 - Store 3009 3008 - 3010: 6(int) Load 8(invocation) - 3011: 2589(ptr) AccessChain 34(data) 46 2581 - 3012: 26(i64vec4) Load 3011 - 3013:2588(i64vec2) VectorShuffle 3012 3012 0 1 - 3014:2588(i64vec2) GroupNonUniformIAdd 42 ExclusiveScan 3013 - 3015: 2582(ptr) AccessChain 34(data) 3010 2581 38 - 3016: 25(int64_t) CompositeExtract 3014 0 - Store 3015 3016 - 3017: 2582(ptr) AccessChain 34(data) 3010 2581 55 - 3018: 25(int64_t) CompositeExtract 3014 1 - Store 3017 3018 - 3019: 6(int) Load 8(invocation) - 3020: 2589(ptr) AccessChain 34(data) 59 2581 - 3021: 26(i64vec4) Load 3020 - 3022:2599(i64vec3) VectorShuffle 3021 3021 0 1 2 - 3023:2599(i64vec3) GroupNonUniformIAdd 42 ExclusiveScan 3022 - 3024: 2582(ptr) AccessChain 34(data) 3019 2581 38 - 3025: 25(int64_t) CompositeExtract 3023 0 - Store 3024 3025 - 3026: 2582(ptr) AccessChain 34(data) 3019 2581 55 - 3027: 25(int64_t) CompositeExtract 3023 1 - Store 3026 3027 - 3028: 2582(ptr) AccessChain 34(data) 3019 2581 69 - 3029: 25(int64_t) CompositeExtract 3023 2 - Store 3028 3029 - 3030: 6(int) Load 8(invocation) - 3031: 2589(ptr) AccessChain 34(data) 73 2581 - 3032: 26(i64vec4) Load 3031 - 3033: 26(i64vec4) GroupNonUniformIAdd 42 ExclusiveScan 3032 - 3034: 2589(ptr) AccessChain 34(data) 3030 2581 - Store 3034 3033 - 3035: 6(int) Load 8(invocation) - 3036: 2582(ptr) AccessChain 34(data) 37 2581 38 - 3037: 25(int64_t) Load 3036 - 3038: 25(int64_t) GroupNonUniformIMul 42 ExclusiveScan 3037 - 3039: 2582(ptr) AccessChain 34(data) 3035 2581 38 - Store 3039 3038 - 3040: 6(int) Load 8(invocation) - 3041: 2589(ptr) AccessChain 34(data) 46 2581 - 3042: 26(i64vec4) Load 3041 - 3043:2588(i64vec2) VectorShuffle 3042 3042 0 1 - 3044:2588(i64vec2) GroupNonUniformIMul 42 ExclusiveScan 3043 - 3045: 2582(ptr) AccessChain 34(data) 3040 2581 38 - 3046: 25(int64_t) CompositeExtract 3044 0 - Store 3045 3046 - 3047: 2582(ptr) AccessChain 34(data) 3040 2581 55 - 3048: 25(int64_t) CompositeExtract 3044 1 - Store 3047 3048 - 3049: 6(int) Load 8(invocation) - 3050: 2589(ptr) AccessChain 34(data) 59 2581 - 3051: 26(i64vec4) Load 3050 - 3052:2599(i64vec3) VectorShuffle 3051 3051 0 1 2 - 3053:2599(i64vec3) GroupNonUniformIMul 42 ExclusiveScan 3052 - 3054: 2582(ptr) AccessChain 34(data) 3049 2581 38 - 3055: 25(int64_t) CompositeExtract 3053 0 - Store 3054 3055 - 3056: 2582(ptr) AccessChain 34(data) 3049 2581 55 - 3057: 25(int64_t) CompositeExtract 3053 1 - Store 3056 3057 - 3058: 2582(ptr) AccessChain 34(data) 3049 2581 69 - 3059: 25(int64_t) CompositeExtract 3053 2 - Store 3058 3059 - 3060: 6(int) Load 8(invocation) - 3061: 2589(ptr) AccessChain 34(data) 73 2581 - 3062: 26(i64vec4) Load 3061 - 3063: 26(i64vec4) GroupNonUniformIMul 42 ExclusiveScan 3062 - 3064: 2589(ptr) AccessChain 34(data) 3060 2581 - Store 3064 3063 - 3065: 6(int) Load 8(invocation) - 3066: 2582(ptr) AccessChain 34(data) 37 2581 38 - 3067: 25(int64_t) Load 3066 - 3068: 25(int64_t) GroupNonUniformSMin 42 ExclusiveScan 3067 - 3069: 2582(ptr) AccessChain 34(data) 3065 2581 38 - Store 3069 3068 - 3070: 6(int) Load 8(invocation) - 3071: 2589(ptr) AccessChain 34(data) 46 2581 - 3072: 26(i64vec4) Load 3071 - 3073:2588(i64vec2) VectorShuffle 3072 3072 0 1 - 3074:2588(i64vec2) GroupNonUniformSMin 42 ExclusiveScan 3073 - 3075: 2582(ptr) AccessChain 34(data) 3070 2581 38 - 3076: 25(int64_t) CompositeExtract 3074 0 - Store 3075 3076 - 3077: 2582(ptr) AccessChain 34(data) 3070 2581 55 - 3078: 25(int64_t) CompositeExtract 3074 1 - Store 3077 3078 - 3079: 6(int) Load 8(invocation) - 3080: 2589(ptr) AccessChain 34(data) 59 2581 - 3081: 26(i64vec4) Load 3080 - 3082:2599(i64vec3) VectorShuffle 3081 3081 0 1 2 - 3083:2599(i64vec3) GroupNonUniformSMin 42 ExclusiveScan 3082 - 3084: 2582(ptr) AccessChain 34(data) 3079 2581 38 - 3085: 25(int64_t) CompositeExtract 3083 0 - Store 3084 3085 - 3086: 2582(ptr) AccessChain 34(data) 3079 2581 55 - 3087: 25(int64_t) CompositeExtract 3083 1 - Store 3086 3087 - 3088: 2582(ptr) AccessChain 34(data) 3079 2581 69 - 3089: 25(int64_t) CompositeExtract 3083 2 - Store 3088 3089 - 3090: 6(int) Load 8(invocation) - 3091: 2589(ptr) AccessChain 34(data) 73 2581 - 3092: 26(i64vec4) Load 3091 - 3093: 26(i64vec4) GroupNonUniformSMin 42 ExclusiveScan 3092 - 3094: 2589(ptr) AccessChain 34(data) 3090 2581 - Store 3094 3093 - 3095: 6(int) Load 8(invocation) - 3096: 2582(ptr) AccessChain 34(data) 37 2581 38 - 3097: 25(int64_t) Load 3096 - 3098: 25(int64_t) GroupNonUniformSMax 42 ExclusiveScan 3097 - 3099: 2582(ptr) AccessChain 34(data) 3095 2581 38 - Store 3099 3098 - 3100: 6(int) Load 8(invocation) - 3101: 2589(ptr) AccessChain 34(data) 46 2581 - 3102: 26(i64vec4) Load 3101 - 3103:2588(i64vec2) VectorShuffle 3102 3102 0 1 - 3104:2588(i64vec2) GroupNonUniformSMax 42 ExclusiveScan 3103 - 3105: 2582(ptr) AccessChain 34(data) 3100 2581 38 - 3106: 25(int64_t) CompositeExtract 3104 0 - Store 3105 3106 - 3107: 2582(ptr) AccessChain 34(data) 3100 2581 55 - 3108: 25(int64_t) CompositeExtract 3104 1 - Store 3107 3108 - 3109: 6(int) Load 8(invocation) - 3110: 2589(ptr) AccessChain 34(data) 59 2581 - 3111: 26(i64vec4) Load 3110 - 3112:2599(i64vec3) VectorShuffle 3111 3111 0 1 2 - 3113:2599(i64vec3) GroupNonUniformSMax 42 ExclusiveScan 3112 - 3114: 2582(ptr) AccessChain 34(data) 3109 2581 38 - 3115: 25(int64_t) CompositeExtract 3113 0 - Store 3114 3115 - 3116: 2582(ptr) AccessChain 34(data) 3109 2581 55 - 3117: 25(int64_t) CompositeExtract 3113 1 - Store 3116 3117 - 3118: 2582(ptr) AccessChain 34(data) 3109 2581 69 - 3119: 25(int64_t) CompositeExtract 3113 2 - Store 3118 3119 - 3120: 6(int) Load 8(invocation) - 3121: 2589(ptr) AccessChain 34(data) 73 2581 - 3122: 26(i64vec4) Load 3121 - 3123: 26(i64vec4) GroupNonUniformSMax 42 ExclusiveScan 3122 - 3124: 2589(ptr) AccessChain 34(data) 3120 2581 - Store 3124 3123 - 3125: 6(int) Load 8(invocation) - 3126: 2582(ptr) AccessChain 34(data) 37 2581 38 - 3127: 25(int64_t) Load 3126 - 3128: 25(int64_t) GroupNonUniformBitwiseAnd 42 ExclusiveScan 3127 - 3129: 2582(ptr) AccessChain 34(data) 3125 2581 38 - Store 3129 3128 - 3130: 6(int) Load 8(invocation) - 3131: 2589(ptr) AccessChain 34(data) 46 2581 - 3132: 26(i64vec4) Load 3131 - 3133:2588(i64vec2) VectorShuffle 3132 3132 0 1 - 3134:2588(i64vec2) GroupNonUniformBitwiseAnd 42 ExclusiveScan 3133 - 3135: 2582(ptr) AccessChain 34(data) 3130 2581 38 - 3136: 25(int64_t) CompositeExtract 3134 0 - Store 3135 3136 - 3137: 2582(ptr) AccessChain 34(data) 3130 2581 55 - 3138: 25(int64_t) CompositeExtract 3134 1 - Store 3137 3138 - 3139: 6(int) Load 8(invocation) - 3140: 2589(ptr) AccessChain 34(data) 59 2581 - 3141: 26(i64vec4) Load 3140 - 3142:2599(i64vec3) VectorShuffle 3141 3141 0 1 2 - 3143:2599(i64vec3) GroupNonUniformBitwiseAnd 42 ExclusiveScan 3142 - 3144: 2582(ptr) AccessChain 34(data) 3139 2581 38 - 3145: 25(int64_t) CompositeExtract 3143 0 - Store 3144 3145 - 3146: 2582(ptr) AccessChain 34(data) 3139 2581 55 - 3147: 25(int64_t) CompositeExtract 3143 1 - Store 3146 3147 - 3148: 2582(ptr) AccessChain 34(data) 3139 2581 69 - 3149: 25(int64_t) CompositeExtract 3143 2 - Store 3148 3149 - 3150: 6(int) Load 8(invocation) - 3151: 2589(ptr) AccessChain 34(data) 73 2581 - 3152: 26(i64vec4) Load 3151 - 3153: 26(i64vec4) GroupNonUniformBitwiseAnd 42 ExclusiveScan 3152 - 3154: 2589(ptr) AccessChain 34(data) 3150 2581 - Store 3154 3153 - 3155: 6(int) Load 8(invocation) - 3156: 2582(ptr) AccessChain 34(data) 37 2581 38 - 3157: 25(int64_t) Load 3156 - 3158: 25(int64_t) GroupNonUniformBitwiseOr 42 ExclusiveScan 3157 - 3159: 2582(ptr) AccessChain 34(data) 3155 2581 38 - Store 3159 3158 - 3160: 6(int) Load 8(invocation) - 3161: 2589(ptr) AccessChain 34(data) 46 2581 - 3162: 26(i64vec4) Load 3161 - 3163:2588(i64vec2) VectorShuffle 3162 3162 0 1 - 3164:2588(i64vec2) GroupNonUniformBitwiseOr 42 ExclusiveScan 3163 - 3165: 2582(ptr) AccessChain 34(data) 3160 2581 38 - 3166: 25(int64_t) CompositeExtract 3164 0 - Store 3165 3166 - 3167: 2582(ptr) AccessChain 34(data) 3160 2581 55 - 3168: 25(int64_t) CompositeExtract 3164 1 - Store 3167 3168 - 3169: 6(int) Load 8(invocation) - 3170: 2589(ptr) AccessChain 34(data) 59 2581 - 3171: 26(i64vec4) Load 3170 - 3172:2599(i64vec3) VectorShuffle 3171 3171 0 1 2 - 3173:2599(i64vec3) GroupNonUniformBitwiseOr 42 ExclusiveScan 3172 - 3174: 2582(ptr) AccessChain 34(data) 3169 2581 38 - 3175: 25(int64_t) CompositeExtract 3173 0 - Store 3174 3175 - 3176: 2582(ptr) AccessChain 34(data) 3169 2581 55 - 3177: 25(int64_t) CompositeExtract 3173 1 - Store 3176 3177 - 3178: 2582(ptr) AccessChain 34(data) 3169 2581 69 - 3179: 25(int64_t) CompositeExtract 3173 2 - Store 3178 3179 - 3180: 6(int) Load 8(invocation) - 3181: 2589(ptr) AccessChain 34(data) 73 2581 - 3182: 26(i64vec4) Load 3181 - 3183: 26(i64vec4) GroupNonUniformBitwiseOr 42 ExclusiveScan 3182 - 3184: 2589(ptr) AccessChain 34(data) 3180 2581 - Store 3184 3183 - 3185: 6(int) Load 8(invocation) - 3186: 2582(ptr) AccessChain 34(data) 37 2581 38 - 3187: 25(int64_t) Load 3186 - 3188: 25(int64_t) GroupNonUniformBitwiseXor 42 ExclusiveScan 3187 - 3189: 2582(ptr) AccessChain 34(data) 3185 2581 38 - Store 3189 3188 - 3190: 6(int) Load 8(invocation) - 3191: 2589(ptr) AccessChain 34(data) 46 2581 - 3192: 26(i64vec4) Load 3191 - 3193:2588(i64vec2) VectorShuffle 3192 3192 0 1 - 3194:2588(i64vec2) GroupNonUniformBitwiseXor 42 ExclusiveScan 3193 - 3195: 2582(ptr) AccessChain 34(data) 3190 2581 38 - 3196: 25(int64_t) CompositeExtract 3194 0 - Store 3195 3196 - 3197: 2582(ptr) AccessChain 34(data) 3190 2581 55 - 3198: 25(int64_t) CompositeExtract 3194 1 - Store 3197 3198 - 3199: 6(int) Load 8(invocation) - 3200: 2589(ptr) AccessChain 34(data) 59 2581 - 3201: 26(i64vec4) Load 3200 - 3202:2599(i64vec3) VectorShuffle 3201 3201 0 1 2 - 3203:2599(i64vec3) GroupNonUniformBitwiseXor 42 ExclusiveScan 3202 - 3204: 2582(ptr) AccessChain 34(data) 3199 2581 38 - 3205: 25(int64_t) CompositeExtract 3203 0 - Store 3204 3205 - 3206: 2582(ptr) AccessChain 34(data) 3199 2581 55 - 3207: 25(int64_t) CompositeExtract 3203 1 - Store 3206 3207 - 3208: 2582(ptr) AccessChain 34(data) 3199 2581 69 - 3209: 25(int64_t) CompositeExtract 3203 2 - Store 3208 3209 - 3210: 6(int) Load 8(invocation) - 3211: 2589(ptr) AccessChain 34(data) 73 2581 - 3212: 26(i64vec4) Load 3211 - 3213: 26(i64vec4) GroupNonUniformBitwiseXor 42 ExclusiveScan 3212 - 3214: 2589(ptr) AccessChain 34(data) 3210 2581 - Store 3214 3213 - 3215: 6(int) Load 8(invocation) - 3218: 3217(ptr) AccessChain 34(data) 37 3216 38 - 3219: 27(int64_t) Load 3218 - 3220: 27(int64_t) GroupNonUniformIAdd 42 Reduce 3219 - 3221: 3217(ptr) AccessChain 34(data) 3215 3216 38 - Store 3221 3220 - 3222: 6(int) Load 8(invocation) - 3225: 3224(ptr) AccessChain 34(data) 46 3216 - 3226: 28(i64vec4) Load 3225 - 3227:3223(i64vec2) VectorShuffle 3226 3226 0 1 - 3228:3223(i64vec2) GroupNonUniformIAdd 42 Reduce 3227 - 3229: 3217(ptr) AccessChain 34(data) 3222 3216 38 - 3230: 27(int64_t) CompositeExtract 3228 0 - Store 3229 3230 - 3231: 3217(ptr) AccessChain 34(data) 3222 3216 55 - 3232: 27(int64_t) CompositeExtract 3228 1 - Store 3231 3232 - 3233: 6(int) Load 8(invocation) - 3235: 3224(ptr) AccessChain 34(data) 59 3216 - 3236: 28(i64vec4) Load 3235 - 3237:3234(i64vec3) VectorShuffle 3236 3236 0 1 2 - 3238:3234(i64vec3) GroupNonUniformIAdd 42 Reduce 3237 - 3239: 3217(ptr) AccessChain 34(data) 3233 3216 38 - 3240: 27(int64_t) CompositeExtract 3238 0 - Store 3239 3240 - 3241: 3217(ptr) AccessChain 34(data) 3233 3216 55 - 3242: 27(int64_t) CompositeExtract 3238 1 - Store 3241 3242 - 3243: 3217(ptr) AccessChain 34(data) 3233 3216 69 - 3244: 27(int64_t) CompositeExtract 3238 2 - Store 3243 3244 - 3245: 6(int) Load 8(invocation) - 3246: 3224(ptr) AccessChain 34(data) 73 3216 - 3247: 28(i64vec4) Load 3246 - 3248: 28(i64vec4) GroupNonUniformIAdd 42 Reduce 3247 - 3249: 3224(ptr) AccessChain 34(data) 3245 3216 - Store 3249 3248 - 3250: 6(int) Load 8(invocation) - 3251: 3217(ptr) AccessChain 34(data) 37 3216 38 - 3252: 27(int64_t) Load 3251 - 3253: 27(int64_t) GroupNonUniformIMul 42 Reduce 3252 - 3254: 3217(ptr) AccessChain 34(data) 3250 3216 38 - Store 3254 3253 - 3255: 6(int) Load 8(invocation) - 3256: 3224(ptr) AccessChain 34(data) 46 3216 - 3257: 28(i64vec4) Load 3256 - 3258:3223(i64vec2) VectorShuffle 3257 3257 0 1 - 3259:3223(i64vec2) GroupNonUniformIMul 42 Reduce 3258 - 3260: 3217(ptr) AccessChain 34(data) 3255 3216 38 - 3261: 27(int64_t) CompositeExtract 3259 0 - Store 3260 3261 - 3262: 3217(ptr) AccessChain 34(data) 3255 3216 55 - 3263: 27(int64_t) CompositeExtract 3259 1 - Store 3262 3263 - 3264: 6(int) Load 8(invocation) - 3265: 3224(ptr) AccessChain 34(data) 59 3216 - 3266: 28(i64vec4) Load 3265 - 3267:3234(i64vec3) VectorShuffle 3266 3266 0 1 2 - 3268:3234(i64vec3) GroupNonUniformIMul 42 Reduce 3267 - 3269: 3217(ptr) AccessChain 34(data) 3264 3216 38 - 3270: 27(int64_t) CompositeExtract 3268 0 - Store 3269 3270 - 3271: 3217(ptr) AccessChain 34(data) 3264 3216 55 - 3272: 27(int64_t) CompositeExtract 3268 1 - Store 3271 3272 - 3273: 3217(ptr) AccessChain 34(data) 3264 3216 69 - 3274: 27(int64_t) CompositeExtract 3268 2 - Store 3273 3274 - 3275: 6(int) Load 8(invocation) - 3276: 3224(ptr) AccessChain 34(data) 73 3216 - 3277: 28(i64vec4) Load 3276 - 3278: 28(i64vec4) GroupNonUniformIMul 42 Reduce 3277 - 3279: 3224(ptr) AccessChain 34(data) 3275 3216 - Store 3279 3278 - 3280: 6(int) Load 8(invocation) - 3281: 3217(ptr) AccessChain 34(data) 37 3216 38 - 3282: 27(int64_t) Load 3281 - 3283: 27(int64_t) GroupNonUniformUMin 42 Reduce 3282 - 3284: 3217(ptr) AccessChain 34(data) 3280 3216 38 - Store 3284 3283 - 3285: 6(int) Load 8(invocation) - 3286: 3224(ptr) AccessChain 34(data) 46 3216 - 3287: 28(i64vec4) Load 3286 - 3288:3223(i64vec2) VectorShuffle 3287 3287 0 1 - 3289:3223(i64vec2) GroupNonUniformUMin 42 Reduce 3288 - 3290: 3217(ptr) AccessChain 34(data) 3285 3216 38 - 3291: 27(int64_t) CompositeExtract 3289 0 - Store 3290 3291 - 3292: 3217(ptr) AccessChain 34(data) 3285 3216 55 - 3293: 27(int64_t) CompositeExtract 3289 1 - Store 3292 3293 - 3294: 6(int) Load 8(invocation) - 3295: 3224(ptr) AccessChain 34(data) 59 3216 - 3296: 28(i64vec4) Load 3295 - 3297:3234(i64vec3) VectorShuffle 3296 3296 0 1 2 - 3298:3234(i64vec3) GroupNonUniformUMin 42 Reduce 3297 - 3299: 3217(ptr) AccessChain 34(data) 3294 3216 38 - 3300: 27(int64_t) CompositeExtract 3298 0 - Store 3299 3300 - 3301: 3217(ptr) AccessChain 34(data) 3294 3216 55 - 3302: 27(int64_t) CompositeExtract 3298 1 - Store 3301 3302 - 3303: 3217(ptr) AccessChain 34(data) 3294 3216 69 - 3304: 27(int64_t) CompositeExtract 3298 2 - Store 3303 3304 - 3305: 6(int) Load 8(invocation) - 3306: 3224(ptr) AccessChain 34(data) 73 3216 - 3307: 28(i64vec4) Load 3306 - 3308: 28(i64vec4) GroupNonUniformUMin 42 Reduce 3307 - 3309: 3224(ptr) AccessChain 34(data) 3305 3216 - Store 3309 3308 - 3310: 6(int) Load 8(invocation) - 3311: 3217(ptr) AccessChain 34(data) 37 3216 38 - 3312: 27(int64_t) Load 3311 - 3313: 27(int64_t) GroupNonUniformUMax 42 Reduce 3312 - 3314: 3217(ptr) AccessChain 34(data) 3310 3216 38 - Store 3314 3313 - 3315: 6(int) Load 8(invocation) - 3316: 3224(ptr) AccessChain 34(data) 46 3216 - 3317: 28(i64vec4) Load 3316 - 3318:3223(i64vec2) VectorShuffle 3317 3317 0 1 - 3319:3223(i64vec2) GroupNonUniformUMax 42 Reduce 3318 - 3320: 3217(ptr) AccessChain 34(data) 3315 3216 38 - 3321: 27(int64_t) CompositeExtract 3319 0 - Store 3320 3321 - 3322: 3217(ptr) AccessChain 34(data) 3315 3216 55 - 3323: 27(int64_t) CompositeExtract 3319 1 - Store 3322 3323 - 3324: 6(int) Load 8(invocation) - 3325: 3224(ptr) AccessChain 34(data) 59 3216 - 3326: 28(i64vec4) Load 3325 - 3327:3234(i64vec3) VectorShuffle 3326 3326 0 1 2 - 3328:3234(i64vec3) GroupNonUniformUMax 42 Reduce 3327 - 3329: 3217(ptr) AccessChain 34(data) 3324 3216 38 - 3330: 27(int64_t) CompositeExtract 3328 0 - Store 3329 3330 - 3331: 3217(ptr) AccessChain 34(data) 3324 3216 55 - 3332: 27(int64_t) CompositeExtract 3328 1 - Store 3331 3332 - 3333: 3217(ptr) AccessChain 34(data) 3324 3216 69 - 3334: 27(int64_t) CompositeExtract 3328 2 - Store 3333 3334 - 3335: 6(int) Load 8(invocation) - 3336: 3224(ptr) AccessChain 34(data) 73 3216 - 3337: 28(i64vec4) Load 3336 - 3338: 28(i64vec4) GroupNonUniformUMax 42 Reduce 3337 - 3339: 3224(ptr) AccessChain 34(data) 3335 3216 - Store 3339 3338 - 3340: 6(int) Load 8(invocation) - 3341: 3217(ptr) AccessChain 34(data) 37 3216 38 - 3342: 27(int64_t) Load 3341 - 3343: 27(int64_t) GroupNonUniformBitwiseAnd 42 Reduce 3342 - 3344: 3217(ptr) AccessChain 34(data) 3340 3216 38 - Store 3344 3343 - 3345: 6(int) Load 8(invocation) - 3346: 3224(ptr) AccessChain 34(data) 46 3216 - 3347: 28(i64vec4) Load 3346 - 3348:3223(i64vec2) VectorShuffle 3347 3347 0 1 - 3349:3223(i64vec2) GroupNonUniformBitwiseAnd 42 Reduce 3348 - 3350: 3217(ptr) AccessChain 34(data) 3345 3216 38 - 3351: 27(int64_t) CompositeExtract 3349 0 - Store 3350 3351 - 3352: 3217(ptr) AccessChain 34(data) 3345 3216 55 - 3353: 27(int64_t) CompositeExtract 3349 1 - Store 3352 3353 - 3354: 6(int) Load 8(invocation) - 3355: 3224(ptr) AccessChain 34(data) 59 3216 - 3356: 28(i64vec4) Load 3355 - 3357:3234(i64vec3) VectorShuffle 3356 3356 0 1 2 - 3358:3234(i64vec3) GroupNonUniformBitwiseAnd 42 Reduce 3357 - 3359: 3217(ptr) AccessChain 34(data) 3354 3216 38 - 3360: 27(int64_t) CompositeExtract 3358 0 - Store 3359 3360 - 3361: 3217(ptr) AccessChain 34(data) 3354 3216 55 - 3362: 27(int64_t) CompositeExtract 3358 1 - Store 3361 3362 - 3363: 3217(ptr) AccessChain 34(data) 3354 3216 69 - 3364: 27(int64_t) CompositeExtract 3358 2 - Store 3363 3364 - 3365: 6(int) Load 8(invocation) - 3366: 3224(ptr) AccessChain 34(data) 73 3216 - 3367: 28(i64vec4) Load 3366 - 3368: 28(i64vec4) GroupNonUniformBitwiseAnd 42 Reduce 3367 - 3369: 3224(ptr) AccessChain 34(data) 3365 3216 - Store 3369 3368 - 3370: 6(int) Load 8(invocation) - 3371: 3217(ptr) AccessChain 34(data) 37 3216 38 - 3372: 27(int64_t) Load 3371 - 3373: 27(int64_t) GroupNonUniformBitwiseOr 42 Reduce 3372 - 3374: 3217(ptr) AccessChain 34(data) 3370 3216 38 - Store 3374 3373 - 3375: 6(int) Load 8(invocation) - 3376: 3224(ptr) AccessChain 34(data) 46 3216 - 3377: 28(i64vec4) Load 3376 - 3378:3223(i64vec2) VectorShuffle 3377 3377 0 1 - 3379:3223(i64vec2) GroupNonUniformBitwiseOr 42 Reduce 3378 - 3380: 3217(ptr) AccessChain 34(data) 3375 3216 38 - 3381: 27(int64_t) CompositeExtract 3379 0 - Store 3380 3381 - 3382: 3217(ptr) AccessChain 34(data) 3375 3216 55 - 3383: 27(int64_t) CompositeExtract 3379 1 - Store 3382 3383 - 3384: 6(int) Load 8(invocation) - 3385: 3224(ptr) AccessChain 34(data) 59 3216 - 3386: 28(i64vec4) Load 3385 - 3387:3234(i64vec3) VectorShuffle 3386 3386 0 1 2 - 3388:3234(i64vec3) GroupNonUniformBitwiseOr 42 Reduce 3387 - 3389: 3217(ptr) AccessChain 34(data) 3384 3216 38 - 3390: 27(int64_t) CompositeExtract 3388 0 - Store 3389 3390 - 3391: 3217(ptr) AccessChain 34(data) 3384 3216 55 - 3392: 27(int64_t) CompositeExtract 3388 1 - Store 3391 3392 - 3393: 3217(ptr) AccessChain 34(data) 3384 3216 69 - 3394: 27(int64_t) CompositeExtract 3388 2 - Store 3393 3394 - 3395: 6(int) Load 8(invocation) - 3396: 3224(ptr) AccessChain 34(data) 73 3216 - 3397: 28(i64vec4) Load 3396 - 3398: 28(i64vec4) GroupNonUniformBitwiseOr 42 Reduce 3397 - 3399: 3224(ptr) AccessChain 34(data) 3395 3216 - Store 3399 3398 - 3400: 6(int) Load 8(invocation) - 3401: 3217(ptr) AccessChain 34(data) 37 3216 38 - 3402: 27(int64_t) Load 3401 - 3403: 27(int64_t) GroupNonUniformBitwiseXor 42 Reduce 3402 - 3404: 3217(ptr) AccessChain 34(data) 3400 3216 38 - Store 3404 3403 - 3405: 6(int) Load 8(invocation) - 3406: 3224(ptr) AccessChain 34(data) 46 3216 - 3407: 28(i64vec4) Load 3406 - 3408:3223(i64vec2) VectorShuffle 3407 3407 0 1 - 3409:3223(i64vec2) GroupNonUniformBitwiseXor 42 Reduce 3408 - 3410: 3217(ptr) AccessChain 34(data) 3405 3216 38 - 3411: 27(int64_t) CompositeExtract 3409 0 - Store 3410 3411 - 3412: 3217(ptr) AccessChain 34(data) 3405 3216 55 - 3413: 27(int64_t) CompositeExtract 3409 1 - Store 3412 3413 - 3414: 6(int) Load 8(invocation) - 3415: 3224(ptr) AccessChain 34(data) 59 3216 - 3416: 28(i64vec4) Load 3415 - 3417:3234(i64vec3) VectorShuffle 3416 3416 0 1 2 - 3418:3234(i64vec3) GroupNonUniformBitwiseXor 42 Reduce 3417 - 3419: 3217(ptr) AccessChain 34(data) 3414 3216 38 - 3420: 27(int64_t) CompositeExtract 3418 0 - Store 3419 3420 - 3421: 3217(ptr) AccessChain 34(data) 3414 3216 55 - 3422: 27(int64_t) CompositeExtract 3418 1 - Store 3421 3422 - 3423: 3217(ptr) AccessChain 34(data) 3414 3216 69 - 3424: 27(int64_t) CompositeExtract 3418 2 - Store 3423 3424 - 3425: 6(int) Load 8(invocation) - 3426: 3224(ptr) AccessChain 34(data) 73 3216 - 3427: 28(i64vec4) Load 3426 - 3428: 28(i64vec4) GroupNonUniformBitwiseXor 42 Reduce 3427 - 3429: 3224(ptr) AccessChain 34(data) 3425 3216 - Store 3429 3428 - 3430: 6(int) Load 8(invocation) - 3431: 3217(ptr) AccessChain 34(data) 37 3216 38 - 3432: 27(int64_t) Load 3431 - 3433: 27(int64_t) GroupNonUniformIAdd 42 InclusiveScan 3432 - 3434: 3217(ptr) AccessChain 34(data) 3430 3216 38 - Store 3434 3433 - 3435: 6(int) Load 8(invocation) - 3436: 3224(ptr) AccessChain 34(data) 46 3216 - 3437: 28(i64vec4) Load 3436 - 3438:3223(i64vec2) VectorShuffle 3437 3437 0 1 - 3439:3223(i64vec2) GroupNonUniformIAdd 42 InclusiveScan 3438 - 3440: 3217(ptr) AccessChain 34(data) 3435 3216 38 - 3441: 27(int64_t) CompositeExtract 3439 0 - Store 3440 3441 - 3442: 3217(ptr) AccessChain 34(data) 3435 3216 55 - 3443: 27(int64_t) CompositeExtract 3439 1 - Store 3442 3443 - 3444: 6(int) Load 8(invocation) - 3445: 3224(ptr) AccessChain 34(data) 59 3216 - 3446: 28(i64vec4) Load 3445 - 3447:3234(i64vec3) VectorShuffle 3446 3446 0 1 2 - 3448:3234(i64vec3) GroupNonUniformIAdd 42 InclusiveScan 3447 - 3449: 3217(ptr) AccessChain 34(data) 3444 3216 38 - 3450: 27(int64_t) CompositeExtract 3448 0 - Store 3449 3450 - 3451: 3217(ptr) AccessChain 34(data) 3444 3216 55 - 3452: 27(int64_t) CompositeExtract 3448 1 - Store 3451 3452 - 3453: 3217(ptr) AccessChain 34(data) 3444 3216 69 - 3454: 27(int64_t) CompositeExtract 3448 2 - Store 3453 3454 - 3455: 6(int) Load 8(invocation) - 3456: 3224(ptr) AccessChain 34(data) 73 3216 - 3457: 28(i64vec4) Load 3456 - 3458: 28(i64vec4) GroupNonUniformIAdd 42 InclusiveScan 3457 - 3459: 3224(ptr) AccessChain 34(data) 3455 3216 - Store 3459 3458 - 3460: 6(int) Load 8(invocation) - 3461: 3217(ptr) AccessChain 34(data) 37 3216 38 - 3462: 27(int64_t) Load 3461 - 3463: 27(int64_t) GroupNonUniformIMul 42 InclusiveScan 3462 - 3464: 3217(ptr) AccessChain 34(data) 3460 3216 38 - Store 3464 3463 - 3465: 6(int) Load 8(invocation) - 3466: 3224(ptr) AccessChain 34(data) 46 3216 - 3467: 28(i64vec4) Load 3466 - 3468:3223(i64vec2) VectorShuffle 3467 3467 0 1 - 3469:3223(i64vec2) GroupNonUniformIMul 42 InclusiveScan 3468 - 3470: 3217(ptr) AccessChain 34(data) 3465 3216 38 - 3471: 27(int64_t) CompositeExtract 3469 0 - Store 3470 3471 - 3472: 3217(ptr) AccessChain 34(data) 3465 3216 55 - 3473: 27(int64_t) CompositeExtract 3469 1 - Store 3472 3473 - 3474: 6(int) Load 8(invocation) - 3475: 3224(ptr) AccessChain 34(data) 59 3216 - 3476: 28(i64vec4) Load 3475 - 3477:3234(i64vec3) VectorShuffle 3476 3476 0 1 2 - 3478:3234(i64vec3) GroupNonUniformIMul 42 InclusiveScan 3477 - 3479: 3217(ptr) AccessChain 34(data) 3474 3216 38 - 3480: 27(int64_t) CompositeExtract 3478 0 - Store 3479 3480 - 3481: 3217(ptr) AccessChain 34(data) 3474 3216 55 - 3482: 27(int64_t) CompositeExtract 3478 1 - Store 3481 3482 - 3483: 3217(ptr) AccessChain 34(data) 3474 3216 69 - 3484: 27(int64_t) CompositeExtract 3478 2 - Store 3483 3484 - 3485: 6(int) Load 8(invocation) - 3486: 3224(ptr) AccessChain 34(data) 73 3216 - 3487: 28(i64vec4) Load 3486 - 3488: 28(i64vec4) GroupNonUniformIMul 42 InclusiveScan 3487 - 3489: 3224(ptr) AccessChain 34(data) 3485 3216 - Store 3489 3488 - 3490: 6(int) Load 8(invocation) - 3491: 3217(ptr) AccessChain 34(data) 37 3216 38 - 3492: 27(int64_t) Load 3491 - 3493: 27(int64_t) GroupNonUniformUMin 42 InclusiveScan 3492 - 3494: 3217(ptr) AccessChain 34(data) 3490 3216 38 - Store 3494 3493 - 3495: 6(int) Load 8(invocation) - 3496: 3224(ptr) AccessChain 34(data) 46 3216 - 3497: 28(i64vec4) Load 3496 - 3498:3223(i64vec2) VectorShuffle 3497 3497 0 1 - 3499:3223(i64vec2) GroupNonUniformUMin 42 InclusiveScan 3498 - 3500: 3217(ptr) AccessChain 34(data) 3495 3216 38 - 3501: 27(int64_t) CompositeExtract 3499 0 - Store 3500 3501 - 3502: 3217(ptr) AccessChain 34(data) 3495 3216 55 - 3503: 27(int64_t) CompositeExtract 3499 1 - Store 3502 3503 - 3504: 6(int) Load 8(invocation) - 3505: 3224(ptr) AccessChain 34(data) 59 3216 - 3506: 28(i64vec4) Load 3505 - 3507:3234(i64vec3) VectorShuffle 3506 3506 0 1 2 - 3508:3234(i64vec3) GroupNonUniformUMin 42 InclusiveScan 3507 - 3509: 3217(ptr) AccessChain 34(data) 3504 3216 38 - 3510: 27(int64_t) CompositeExtract 3508 0 - Store 3509 3510 - 3511: 3217(ptr) AccessChain 34(data) 3504 3216 55 - 3512: 27(int64_t) CompositeExtract 3508 1 - Store 3511 3512 - 3513: 3217(ptr) AccessChain 34(data) 3504 3216 69 - 3514: 27(int64_t) CompositeExtract 3508 2 - Store 3513 3514 - 3515: 6(int) Load 8(invocation) - 3516: 3224(ptr) AccessChain 34(data) 73 3216 - 3517: 28(i64vec4) Load 3516 - 3518: 28(i64vec4) GroupNonUniformUMin 42 InclusiveScan 3517 - 3519: 3224(ptr) AccessChain 34(data) 3515 3216 - Store 3519 3518 - 3520: 6(int) Load 8(invocation) - 3521: 3217(ptr) AccessChain 34(data) 37 3216 38 - 3522: 27(int64_t) Load 3521 - 3523: 27(int64_t) GroupNonUniformUMax 42 InclusiveScan 3522 - 3524: 3217(ptr) AccessChain 34(data) 3520 3216 38 - Store 3524 3523 - 3525: 6(int) Load 8(invocation) - 3526: 3224(ptr) AccessChain 34(data) 46 3216 - 3527: 28(i64vec4) Load 3526 - 3528:3223(i64vec2) VectorShuffle 3527 3527 0 1 - 3529:3223(i64vec2) GroupNonUniformUMax 42 InclusiveScan 3528 - 3530: 3217(ptr) AccessChain 34(data) 3525 3216 38 - 3531: 27(int64_t) CompositeExtract 3529 0 - Store 3530 3531 - 3532: 3217(ptr) AccessChain 34(data) 3525 3216 55 - 3533: 27(int64_t) CompositeExtract 3529 1 - Store 3532 3533 - 3534: 6(int) Load 8(invocation) - 3535: 3224(ptr) AccessChain 34(data) 59 3216 - 3536: 28(i64vec4) Load 3535 - 3537:3234(i64vec3) VectorShuffle 3536 3536 0 1 2 - 3538:3234(i64vec3) GroupNonUniformUMax 42 InclusiveScan 3537 - 3539: 3217(ptr) AccessChain 34(data) 3534 3216 38 - 3540: 27(int64_t) CompositeExtract 3538 0 - Store 3539 3540 - 3541: 3217(ptr) AccessChain 34(data) 3534 3216 55 - 3542: 27(int64_t) CompositeExtract 3538 1 - Store 3541 3542 - 3543: 3217(ptr) AccessChain 34(data) 3534 3216 69 - 3544: 27(int64_t) CompositeExtract 3538 2 - Store 3543 3544 - 3545: 6(int) Load 8(invocation) - 3546: 3224(ptr) AccessChain 34(data) 73 3216 - 3547: 28(i64vec4) Load 3546 - 3548: 28(i64vec4) GroupNonUniformUMax 42 InclusiveScan 3547 - 3549: 3224(ptr) AccessChain 34(data) 3545 3216 - Store 3549 3548 - 3550: 6(int) Load 8(invocation) - 3551: 3217(ptr) AccessChain 34(data) 37 3216 38 - 3552: 27(int64_t) Load 3551 - 3553: 27(int64_t) GroupNonUniformBitwiseAnd 42 InclusiveScan 3552 - 3554: 3217(ptr) AccessChain 34(data) 3550 3216 38 - Store 3554 3553 - 3555: 6(int) Load 8(invocation) - 3556: 3224(ptr) AccessChain 34(data) 46 3216 - 3557: 28(i64vec4) Load 3556 - 3558:3223(i64vec2) VectorShuffle 3557 3557 0 1 - 3559:3223(i64vec2) GroupNonUniformBitwiseAnd 42 InclusiveScan 3558 - 3560: 3217(ptr) AccessChain 34(data) 3555 3216 38 - 3561: 27(int64_t) CompositeExtract 3559 0 - Store 3560 3561 - 3562: 3217(ptr) AccessChain 34(data) 3555 3216 55 - 3563: 27(int64_t) CompositeExtract 3559 1 - Store 3562 3563 - 3564: 6(int) Load 8(invocation) - 3565: 3224(ptr) AccessChain 34(data) 59 3216 - 3566: 28(i64vec4) Load 3565 - 3567:3234(i64vec3) VectorShuffle 3566 3566 0 1 2 - 3568:3234(i64vec3) GroupNonUniformBitwiseAnd 42 InclusiveScan 3567 - 3569: 3217(ptr) AccessChain 34(data) 3564 3216 38 - 3570: 27(int64_t) CompositeExtract 3568 0 - Store 3569 3570 - 3571: 3217(ptr) AccessChain 34(data) 3564 3216 55 - 3572: 27(int64_t) CompositeExtract 3568 1 - Store 3571 3572 - 3573: 3217(ptr) AccessChain 34(data) 3564 3216 69 - 3574: 27(int64_t) CompositeExtract 3568 2 - Store 3573 3574 - 3575: 6(int) Load 8(invocation) - 3576: 3224(ptr) AccessChain 34(data) 73 3216 - 3577: 28(i64vec4) Load 3576 - 3578: 28(i64vec4) GroupNonUniformBitwiseAnd 42 InclusiveScan 3577 - 3579: 3224(ptr) AccessChain 34(data) 3575 3216 - Store 3579 3578 - 3580: 6(int) Load 8(invocation) - 3581: 3217(ptr) AccessChain 34(data) 37 3216 38 - 3582: 27(int64_t) Load 3581 - 3583: 27(int64_t) GroupNonUniformBitwiseOr 42 InclusiveScan 3582 - 3584: 3217(ptr) AccessChain 34(data) 3580 3216 38 - Store 3584 3583 - 3585: 6(int) Load 8(invocation) - 3586: 3224(ptr) AccessChain 34(data) 46 3216 - 3587: 28(i64vec4) Load 3586 - 3588:3223(i64vec2) VectorShuffle 3587 3587 0 1 - 3589:3223(i64vec2) GroupNonUniformBitwiseOr 42 InclusiveScan 3588 - 3590: 3217(ptr) AccessChain 34(data) 3585 3216 38 - 3591: 27(int64_t) CompositeExtract 3589 0 - Store 3590 3591 - 3592: 3217(ptr) AccessChain 34(data) 3585 3216 55 - 3593: 27(int64_t) CompositeExtract 3589 1 - Store 3592 3593 - 3594: 6(int) Load 8(invocation) - 3595: 3224(ptr) AccessChain 34(data) 59 3216 - 3596: 28(i64vec4) Load 3595 - 3597:3234(i64vec3) VectorShuffle 3596 3596 0 1 2 - 3598:3234(i64vec3) GroupNonUniformBitwiseOr 42 InclusiveScan 3597 - 3599: 3217(ptr) AccessChain 34(data) 3594 3216 38 - 3600: 27(int64_t) CompositeExtract 3598 0 - Store 3599 3600 - 3601: 3217(ptr) AccessChain 34(data) 3594 3216 55 - 3602: 27(int64_t) CompositeExtract 3598 1 - Store 3601 3602 - 3603: 3217(ptr) AccessChain 34(data) 3594 3216 69 - 3604: 27(int64_t) CompositeExtract 3598 2 - Store 3603 3604 - 3605: 6(int) Load 8(invocation) - 3606: 3224(ptr) AccessChain 34(data) 73 3216 - 3607: 28(i64vec4) Load 3606 - 3608: 28(i64vec4) GroupNonUniformBitwiseOr 42 InclusiveScan 3607 - 3609: 3224(ptr) AccessChain 34(data) 3605 3216 - Store 3609 3608 - 3610: 6(int) Load 8(invocation) - 3611: 3217(ptr) AccessChain 34(data) 37 3216 38 - 3612: 27(int64_t) Load 3611 - 3613: 27(int64_t) GroupNonUniformBitwiseXor 42 InclusiveScan 3612 - 3614: 3217(ptr) AccessChain 34(data) 3610 3216 38 - Store 3614 3613 - 3615: 6(int) Load 8(invocation) - 3616: 3224(ptr) AccessChain 34(data) 46 3216 - 3617: 28(i64vec4) Load 3616 - 3618:3223(i64vec2) VectorShuffle 3617 3617 0 1 - 3619:3223(i64vec2) GroupNonUniformBitwiseXor 42 InclusiveScan 3618 - 3620: 3217(ptr) AccessChain 34(data) 3615 3216 38 - 3621: 27(int64_t) CompositeExtract 3619 0 - Store 3620 3621 - 3622: 3217(ptr) AccessChain 34(data) 3615 3216 55 - 3623: 27(int64_t) CompositeExtract 3619 1 - Store 3622 3623 - 3624: 6(int) Load 8(invocation) - 3625: 3224(ptr) AccessChain 34(data) 59 3216 - 3626: 28(i64vec4) Load 3625 - 3627:3234(i64vec3) VectorShuffle 3626 3626 0 1 2 - 3628:3234(i64vec3) GroupNonUniformBitwiseXor 42 InclusiveScan 3627 - 3629: 3217(ptr) AccessChain 34(data) 3624 3216 38 - 3630: 27(int64_t) CompositeExtract 3628 0 - Store 3629 3630 - 3631: 3217(ptr) AccessChain 34(data) 3624 3216 55 - 3632: 27(int64_t) CompositeExtract 3628 1 - Store 3631 3632 - 3633: 3217(ptr) AccessChain 34(data) 3624 3216 69 - 3634: 27(int64_t) CompositeExtract 3628 2 - Store 3633 3634 - 3635: 6(int) Load 8(invocation) - 3636: 3224(ptr) AccessChain 34(data) 73 3216 - 3637: 28(i64vec4) Load 3636 - 3638: 28(i64vec4) GroupNonUniformBitwiseXor 42 InclusiveScan 3637 - 3639: 3224(ptr) AccessChain 34(data) 3635 3216 - Store 3639 3638 - 3640: 6(int) Load 8(invocation) - 3641: 3217(ptr) AccessChain 34(data) 37 3216 38 - 3642: 27(int64_t) Load 3641 - 3643: 27(int64_t) GroupNonUniformIAdd 42 ExclusiveScan 3642 - 3644: 3217(ptr) AccessChain 34(data) 3640 3216 38 - Store 3644 3643 - 3645: 6(int) Load 8(invocation) - 3646: 3224(ptr) AccessChain 34(data) 46 3216 - 3647: 28(i64vec4) Load 3646 - 3648:3223(i64vec2) VectorShuffle 3647 3647 0 1 - 3649:3223(i64vec2) GroupNonUniformIAdd 42 ExclusiveScan 3648 - 3650: 3217(ptr) AccessChain 34(data) 3645 3216 38 - 3651: 27(int64_t) CompositeExtract 3649 0 - Store 3650 3651 - 3652: 3217(ptr) AccessChain 34(data) 3645 3216 55 - 3653: 27(int64_t) CompositeExtract 3649 1 - Store 3652 3653 - 3654: 6(int) Load 8(invocation) - 3655: 3224(ptr) AccessChain 34(data) 59 3216 - 3656: 28(i64vec4) Load 3655 - 3657:3234(i64vec3) VectorShuffle 3656 3656 0 1 2 - 3658:3234(i64vec3) GroupNonUniformIAdd 42 ExclusiveScan 3657 - 3659: 3217(ptr) AccessChain 34(data) 3654 3216 38 - 3660: 27(int64_t) CompositeExtract 3658 0 - Store 3659 3660 - 3661: 3217(ptr) AccessChain 34(data) 3654 3216 55 - 3662: 27(int64_t) CompositeExtract 3658 1 - Store 3661 3662 - 3663: 3217(ptr) AccessChain 34(data) 3654 3216 69 - 3664: 27(int64_t) CompositeExtract 3658 2 - Store 3663 3664 - 3665: 6(int) Load 8(invocation) - 3666: 3224(ptr) AccessChain 34(data) 73 3216 - 3667: 28(i64vec4) Load 3666 - 3668: 28(i64vec4) GroupNonUniformIAdd 42 ExclusiveScan 3667 - 3669: 3224(ptr) AccessChain 34(data) 3665 3216 - Store 3669 3668 - 3670: 6(int) Load 8(invocation) - 3671: 3217(ptr) AccessChain 34(data) 37 3216 38 - 3672: 27(int64_t) Load 3671 - 3673: 27(int64_t) GroupNonUniformIMul 42 ExclusiveScan 3672 - 3674: 3217(ptr) AccessChain 34(data) 3670 3216 38 - Store 3674 3673 - 3675: 6(int) Load 8(invocation) - 3676: 3224(ptr) AccessChain 34(data) 46 3216 - 3677: 28(i64vec4) Load 3676 - 3678:3223(i64vec2) VectorShuffle 3677 3677 0 1 - 3679:3223(i64vec2) GroupNonUniformIMul 42 ExclusiveScan 3678 - 3680: 3217(ptr) AccessChain 34(data) 3675 3216 38 - 3681: 27(int64_t) CompositeExtract 3679 0 - Store 3680 3681 - 3682: 3217(ptr) AccessChain 34(data) 3675 3216 55 - 3683: 27(int64_t) CompositeExtract 3679 1 - Store 3682 3683 - 3684: 6(int) Load 8(invocation) - 3685: 3224(ptr) AccessChain 34(data) 59 3216 - 3686: 28(i64vec4) Load 3685 - 3687:3234(i64vec3) VectorShuffle 3686 3686 0 1 2 - 3688:3234(i64vec3) GroupNonUniformIMul 42 ExclusiveScan 3687 - 3689: 3217(ptr) AccessChain 34(data) 3684 3216 38 - 3690: 27(int64_t) CompositeExtract 3688 0 - Store 3689 3690 - 3691: 3217(ptr) AccessChain 34(data) 3684 3216 55 - 3692: 27(int64_t) CompositeExtract 3688 1 - Store 3691 3692 - 3693: 3217(ptr) AccessChain 34(data) 3684 3216 69 - 3694: 27(int64_t) CompositeExtract 3688 2 - Store 3693 3694 - 3695: 6(int) Load 8(invocation) - 3696: 3224(ptr) AccessChain 34(data) 73 3216 - 3697: 28(i64vec4) Load 3696 - 3698: 28(i64vec4) GroupNonUniformIMul 42 ExclusiveScan 3697 - 3699: 3224(ptr) AccessChain 34(data) 3695 3216 - Store 3699 3698 - 3700: 6(int) Load 8(invocation) - 3701: 3217(ptr) AccessChain 34(data) 37 3216 38 - 3702: 27(int64_t) Load 3701 - 3703: 27(int64_t) GroupNonUniformUMin 42 ExclusiveScan 3702 - 3704: 3217(ptr) AccessChain 34(data) 3700 3216 38 - Store 3704 3703 - 3705: 6(int) Load 8(invocation) - 3706: 3224(ptr) AccessChain 34(data) 46 3216 - 3707: 28(i64vec4) Load 3706 - 3708:3223(i64vec2) VectorShuffle 3707 3707 0 1 - 3709:3223(i64vec2) GroupNonUniformUMin 42 ExclusiveScan 3708 - 3710: 3217(ptr) AccessChain 34(data) 3705 3216 38 - 3711: 27(int64_t) CompositeExtract 3709 0 - Store 3710 3711 - 3712: 3217(ptr) AccessChain 34(data) 3705 3216 55 - 3713: 27(int64_t) CompositeExtract 3709 1 - Store 3712 3713 - 3714: 6(int) Load 8(invocation) - 3715: 3224(ptr) AccessChain 34(data) 59 3216 - 3716: 28(i64vec4) Load 3715 - 3717:3234(i64vec3) VectorShuffle 3716 3716 0 1 2 - 3718:3234(i64vec3) GroupNonUniformUMin 42 ExclusiveScan 3717 - 3719: 3217(ptr) AccessChain 34(data) 3714 3216 38 - 3720: 27(int64_t) CompositeExtract 3718 0 - Store 3719 3720 - 3721: 3217(ptr) AccessChain 34(data) 3714 3216 55 - 3722: 27(int64_t) CompositeExtract 3718 1 - Store 3721 3722 - 3723: 3217(ptr) AccessChain 34(data) 3714 3216 69 - 3724: 27(int64_t) CompositeExtract 3718 2 - Store 3723 3724 - 3725: 6(int) Load 8(invocation) - 3726: 3224(ptr) AccessChain 34(data) 73 3216 - 3727: 28(i64vec4) Load 3726 - 3728: 28(i64vec4) GroupNonUniformUMin 42 ExclusiveScan 3727 - 3729: 3224(ptr) AccessChain 34(data) 3725 3216 - Store 3729 3728 - 3730: 6(int) Load 8(invocation) - 3731: 3217(ptr) AccessChain 34(data) 37 3216 38 - 3732: 27(int64_t) Load 3731 - 3733: 27(int64_t) GroupNonUniformUMax 42 ExclusiveScan 3732 - 3734: 3217(ptr) AccessChain 34(data) 3730 3216 38 - Store 3734 3733 - 3735: 6(int) Load 8(invocation) - 3736: 3224(ptr) AccessChain 34(data) 46 3216 - 3737: 28(i64vec4) Load 3736 - 3738:3223(i64vec2) VectorShuffle 3737 3737 0 1 - 3739:3223(i64vec2) GroupNonUniformUMax 42 ExclusiveScan 3738 - 3740: 3217(ptr) AccessChain 34(data) 3735 3216 38 - 3741: 27(int64_t) CompositeExtract 3739 0 - Store 3740 3741 - 3742: 3217(ptr) AccessChain 34(data) 3735 3216 55 - 3743: 27(int64_t) CompositeExtract 3739 1 - Store 3742 3743 - 3744: 6(int) Load 8(invocation) - 3745: 3224(ptr) AccessChain 34(data) 59 3216 - 3746: 28(i64vec4) Load 3745 - 3747:3234(i64vec3) VectorShuffle 3746 3746 0 1 2 - 3748:3234(i64vec3) GroupNonUniformUMax 42 ExclusiveScan 3747 - 3749: 3217(ptr) AccessChain 34(data) 3744 3216 38 - 3750: 27(int64_t) CompositeExtract 3748 0 - Store 3749 3750 - 3751: 3217(ptr) AccessChain 34(data) 3744 3216 55 - 3752: 27(int64_t) CompositeExtract 3748 1 - Store 3751 3752 - 3753: 3217(ptr) AccessChain 34(data) 3744 3216 69 - 3754: 27(int64_t) CompositeExtract 3748 2 - Store 3753 3754 - 3755: 6(int) Load 8(invocation) - 3756: 3224(ptr) AccessChain 34(data) 73 3216 - 3757: 28(i64vec4) Load 3756 - 3758: 28(i64vec4) GroupNonUniformUMax 42 ExclusiveScan 3757 - 3759: 3224(ptr) AccessChain 34(data) 3755 3216 - Store 3759 3758 - 3760: 6(int) Load 8(invocation) - 3761: 3217(ptr) AccessChain 34(data) 37 3216 38 - 3762: 27(int64_t) Load 3761 - 3763: 27(int64_t) GroupNonUniformBitwiseAnd 42 ExclusiveScan 3762 - 3764: 3217(ptr) AccessChain 34(data) 3760 3216 38 - Store 3764 3763 - 3765: 6(int) Load 8(invocation) - 3766: 3224(ptr) AccessChain 34(data) 46 3216 - 3767: 28(i64vec4) Load 3766 - 3768:3223(i64vec2) VectorShuffle 3767 3767 0 1 - 3769:3223(i64vec2) GroupNonUniformBitwiseAnd 42 ExclusiveScan 3768 - 3770: 3217(ptr) AccessChain 34(data) 3765 3216 38 - 3771: 27(int64_t) CompositeExtract 3769 0 - Store 3770 3771 - 3772: 3217(ptr) AccessChain 34(data) 3765 3216 55 - 3773: 27(int64_t) CompositeExtract 3769 1 - Store 3772 3773 - 3774: 6(int) Load 8(invocation) - 3775: 3224(ptr) AccessChain 34(data) 59 3216 - 3776: 28(i64vec4) Load 3775 - 3777:3234(i64vec3) VectorShuffle 3776 3776 0 1 2 - 3778:3234(i64vec3) GroupNonUniformBitwiseAnd 42 ExclusiveScan 3777 - 3779: 3217(ptr) AccessChain 34(data) 3774 3216 38 - 3780: 27(int64_t) CompositeExtract 3778 0 - Store 3779 3780 - 3781: 3217(ptr) AccessChain 34(data) 3774 3216 55 - 3782: 27(int64_t) CompositeExtract 3778 1 - Store 3781 3782 - 3783: 3217(ptr) AccessChain 34(data) 3774 3216 69 - 3784: 27(int64_t) CompositeExtract 3778 2 - Store 3783 3784 - 3785: 6(int) Load 8(invocation) - 3786: 3224(ptr) AccessChain 34(data) 73 3216 - 3787: 28(i64vec4) Load 3786 - 3788: 28(i64vec4) GroupNonUniformBitwiseAnd 42 ExclusiveScan 3787 - 3789: 3224(ptr) AccessChain 34(data) 3785 3216 - Store 3789 3788 - 3790: 6(int) Load 8(invocation) - 3791: 3217(ptr) AccessChain 34(data) 37 3216 38 - 3792: 27(int64_t) Load 3791 - 3793: 27(int64_t) GroupNonUniformBitwiseOr 42 ExclusiveScan 3792 - 3794: 3217(ptr) AccessChain 34(data) 3790 3216 38 - Store 3794 3793 - 3795: 6(int) Load 8(invocation) - 3796: 3224(ptr) AccessChain 34(data) 46 3216 - 3797: 28(i64vec4) Load 3796 - 3798:3223(i64vec2) VectorShuffle 3797 3797 0 1 - 3799:3223(i64vec2) GroupNonUniformBitwiseOr 42 ExclusiveScan 3798 - 3800: 3217(ptr) AccessChain 34(data) 3795 3216 38 - 3801: 27(int64_t) CompositeExtract 3799 0 - Store 3800 3801 - 3802: 3217(ptr) AccessChain 34(data) 3795 3216 55 - 3803: 27(int64_t) CompositeExtract 3799 1 - Store 3802 3803 - 3804: 6(int) Load 8(invocation) - 3805: 3224(ptr) AccessChain 34(data) 59 3216 - 3806: 28(i64vec4) Load 3805 - 3807:3234(i64vec3) VectorShuffle 3806 3806 0 1 2 - 3808:3234(i64vec3) GroupNonUniformBitwiseOr 42 ExclusiveScan 3807 - 3809: 3217(ptr) AccessChain 34(data) 3804 3216 38 - 3810: 27(int64_t) CompositeExtract 3808 0 - Store 3809 3810 - 3811: 3217(ptr) AccessChain 34(data) 3804 3216 55 - 3812: 27(int64_t) CompositeExtract 3808 1 - Store 3811 3812 - 3813: 3217(ptr) AccessChain 34(data) 3804 3216 69 - 3814: 27(int64_t) CompositeExtract 3808 2 - Store 3813 3814 - 3815: 6(int) Load 8(invocation) - 3816: 3224(ptr) AccessChain 34(data) 73 3216 - 3817: 28(i64vec4) Load 3816 - 3818: 28(i64vec4) GroupNonUniformBitwiseOr 42 ExclusiveScan 3817 - 3819: 3224(ptr) AccessChain 34(data) 3815 3216 - Store 3819 3818 - 3820: 6(int) Load 8(invocation) - 3821: 3217(ptr) AccessChain 34(data) 37 3216 38 - 3822: 27(int64_t) Load 3821 - 3823: 27(int64_t) GroupNonUniformBitwiseXor 42 ExclusiveScan 3822 - 3824: 3217(ptr) AccessChain 34(data) 3820 3216 38 - Store 3824 3823 - 3825: 6(int) Load 8(invocation) - 3826: 3224(ptr) AccessChain 34(data) 46 3216 - 3827: 28(i64vec4) Load 3826 - 3828:3223(i64vec2) VectorShuffle 3827 3827 0 1 - 3829:3223(i64vec2) GroupNonUniformBitwiseXor 42 ExclusiveScan 3828 - 3830: 3217(ptr) AccessChain 34(data) 3825 3216 38 - 3831: 27(int64_t) CompositeExtract 3829 0 - Store 3830 3831 - 3832: 3217(ptr) AccessChain 34(data) 3825 3216 55 - 3833: 27(int64_t) CompositeExtract 3829 1 - Store 3832 3833 - 3834: 6(int) Load 8(invocation) - 3835: 3224(ptr) AccessChain 34(data) 59 3216 - 3836: 28(i64vec4) Load 3835 - 3837:3234(i64vec3) VectorShuffle 3836 3836 0 1 2 - 3838:3234(i64vec3) GroupNonUniformBitwiseXor 42 ExclusiveScan 3837 - 3839: 3217(ptr) AccessChain 34(data) 3834 3216 38 - 3840: 27(int64_t) CompositeExtract 3838 0 - Store 3839 3840 - 3841: 3217(ptr) AccessChain 34(data) 3834 3216 55 - 3842: 27(int64_t) CompositeExtract 3838 1 - Store 3841 3842 - 3843: 3217(ptr) AccessChain 34(data) 3834 3216 69 - 3844: 27(int64_t) CompositeExtract 3838 2 - Store 3843 3844 - 3845: 6(int) Load 8(invocation) - 3846: 3224(ptr) AccessChain 34(data) 73 3216 - 3847: 28(i64vec4) Load 3846 - 3848: 28(i64vec4) GroupNonUniformBitwiseXor 42 ExclusiveScan 3847 - 3849: 3224(ptr) AccessChain 34(data) 3845 3216 - Store 3849 3848 - 3850: 6(int) Load 8(invocation) - 3853: 3852(ptr) AccessChain 34(data) 37 3851 38 - 3854:29(float16_t) Load 3853 - 3855:29(float16_t) GroupNonUniformFAdd 42 Reduce 3854 - 3856: 3852(ptr) AccessChain 34(data) 3850 3851 38 - Store 3856 3855 - 3857: 6(int) Load 8(invocation) - 3860: 3859(ptr) AccessChain 34(data) 46 3851 - 3861: 30(f16vec4) Load 3860 - 3862:3858(f16vec2) VectorShuffle 3861 3861 0 1 - 3863:3858(f16vec2) GroupNonUniformFAdd 42 Reduce 3862 - 3864: 3852(ptr) AccessChain 34(data) 3857 3851 38 - 3865:29(float16_t) CompositeExtract 3863 0 - Store 3864 3865 - 3866: 3852(ptr) AccessChain 34(data) 3857 3851 55 - 3867:29(float16_t) CompositeExtract 3863 1 - Store 3866 3867 - 3868: 6(int) Load 8(invocation) - 3870: 3859(ptr) AccessChain 34(data) 59 3851 - 3871: 30(f16vec4) Load 3870 - 3872:3869(f16vec3) VectorShuffle 3871 3871 0 1 2 - 3873:3869(f16vec3) GroupNonUniformFAdd 42 Reduce 3872 - 3874: 3852(ptr) AccessChain 34(data) 3868 3851 38 - 3875:29(float16_t) CompositeExtract 3873 0 - Store 3874 3875 - 3876: 3852(ptr) AccessChain 34(data) 3868 3851 55 - 3877:29(float16_t) CompositeExtract 3873 1 - Store 3876 3877 - 3878: 3852(ptr) AccessChain 34(data) 3868 3851 69 - 3879:29(float16_t) CompositeExtract 3873 2 - Store 3878 3879 - 3880: 6(int) Load 8(invocation) - 3881: 3859(ptr) AccessChain 34(data) 73 3851 - 3882: 30(f16vec4) Load 3881 - 3883: 30(f16vec4) GroupNonUniformFAdd 42 Reduce 3882 - 3884: 3859(ptr) AccessChain 34(data) 3880 3851 - Store 3884 3883 - 3885: 6(int) Load 8(invocation) - 3886: 3852(ptr) AccessChain 34(data) 37 3851 38 - 3887:29(float16_t) Load 3886 - 3888:29(float16_t) GroupNonUniformFMul 42 Reduce 3887 - 3889: 3852(ptr) AccessChain 34(data) 3885 3851 38 - Store 3889 3888 - 3890: 6(int) Load 8(invocation) - 3891: 3859(ptr) AccessChain 34(data) 46 3851 - 3892: 30(f16vec4) Load 3891 - 3893:3858(f16vec2) VectorShuffle 3892 3892 0 1 - 3894:3858(f16vec2) GroupNonUniformFMul 42 Reduce 3893 - 3895: 3852(ptr) AccessChain 34(data) 3890 3851 38 - 3896:29(float16_t) CompositeExtract 3894 0 - Store 3895 3896 - 3897: 3852(ptr) AccessChain 34(data) 3890 3851 55 - 3898:29(float16_t) CompositeExtract 3894 1 - Store 3897 3898 - 3899: 6(int) Load 8(invocation) - 3900: 3859(ptr) AccessChain 34(data) 59 3851 - 3901: 30(f16vec4) Load 3900 - 3902:3869(f16vec3) VectorShuffle 3901 3901 0 1 2 - 3903:3869(f16vec3) GroupNonUniformFMul 42 Reduce 3902 - 3904: 3852(ptr) AccessChain 34(data) 3899 3851 38 - 3905:29(float16_t) CompositeExtract 3903 0 - Store 3904 3905 - 3906: 3852(ptr) AccessChain 34(data) 3899 3851 55 - 3907:29(float16_t) CompositeExtract 3903 1 - Store 3906 3907 - 3908: 3852(ptr) AccessChain 34(data) 3899 3851 69 - 3909:29(float16_t) CompositeExtract 3903 2 - Store 3908 3909 - 3910: 6(int) Load 8(invocation) - 3911: 3859(ptr) AccessChain 34(data) 73 3851 - 3912: 30(f16vec4) Load 3911 - 3913: 30(f16vec4) GroupNonUniformFMul 42 Reduce 3912 - 3914: 3859(ptr) AccessChain 34(data) 3910 3851 - Store 3914 3913 - 3915: 6(int) Load 8(invocation) - 3916: 3852(ptr) AccessChain 34(data) 37 3851 38 - 3917:29(float16_t) Load 3916 - 3918:29(float16_t) GroupNonUniformFMin 42 Reduce 3917 - 3919: 3852(ptr) AccessChain 34(data) 3915 3851 38 - Store 3919 3918 - 3920: 6(int) Load 8(invocation) - 3921: 3859(ptr) AccessChain 34(data) 46 3851 - 3922: 30(f16vec4) Load 3921 - 3923:3858(f16vec2) VectorShuffle 3922 3922 0 1 - 3924:3858(f16vec2) GroupNonUniformFMin 42 Reduce 3923 - 3925: 3852(ptr) AccessChain 34(data) 3920 3851 38 - 3926:29(float16_t) CompositeExtract 3924 0 - Store 3925 3926 - 3927: 3852(ptr) AccessChain 34(data) 3920 3851 55 - 3928:29(float16_t) CompositeExtract 3924 1 - Store 3927 3928 - 3929: 6(int) Load 8(invocation) - 3930: 3859(ptr) AccessChain 34(data) 59 3851 - 3931: 30(f16vec4) Load 3930 - 3932:3869(f16vec3) VectorShuffle 3931 3931 0 1 2 - 3933:3869(f16vec3) GroupNonUniformFMin 42 Reduce 3932 - 3934: 3852(ptr) AccessChain 34(data) 3929 3851 38 - 3935:29(float16_t) CompositeExtract 3933 0 - Store 3934 3935 - 3936: 3852(ptr) AccessChain 34(data) 3929 3851 55 - 3937:29(float16_t) CompositeExtract 3933 1 - Store 3936 3937 - 3938: 3852(ptr) AccessChain 34(data) 3929 3851 69 - 3939:29(float16_t) CompositeExtract 3933 2 - Store 3938 3939 - 3940: 6(int) Load 8(invocation) - 3941: 3859(ptr) AccessChain 34(data) 73 3851 - 3942: 30(f16vec4) Load 3941 - 3943: 30(f16vec4) GroupNonUniformFMin 42 Reduce 3942 - 3944: 3859(ptr) AccessChain 34(data) 3940 3851 - Store 3944 3943 - 3945: 6(int) Load 8(invocation) - 3946: 3852(ptr) AccessChain 34(data) 37 3851 38 - 3947:29(float16_t) Load 3946 - 3948:29(float16_t) GroupNonUniformFMax 42 Reduce 3947 - 3949: 3852(ptr) AccessChain 34(data) 3945 3851 38 - Store 3949 3948 - 3950: 6(int) Load 8(invocation) - 3951: 3859(ptr) AccessChain 34(data) 46 3851 - 3952: 30(f16vec4) Load 3951 - 3953:3858(f16vec2) VectorShuffle 3952 3952 0 1 - 3954:3858(f16vec2) GroupNonUniformFMax 42 Reduce 3953 - 3955: 3852(ptr) AccessChain 34(data) 3950 3851 38 - 3956:29(float16_t) CompositeExtract 3954 0 - Store 3955 3956 - 3957: 3852(ptr) AccessChain 34(data) 3950 3851 55 - 3958:29(float16_t) CompositeExtract 3954 1 - Store 3957 3958 - 3959: 6(int) Load 8(invocation) - 3960: 3859(ptr) AccessChain 34(data) 59 3851 - 3961: 30(f16vec4) Load 3960 - 3962:3869(f16vec3) VectorShuffle 3961 3961 0 1 2 - 3963:3869(f16vec3) GroupNonUniformFMax 42 Reduce 3962 - 3964: 3852(ptr) AccessChain 34(data) 3959 3851 38 - 3965:29(float16_t) CompositeExtract 3963 0 - Store 3964 3965 - 3966: 3852(ptr) AccessChain 34(data) 3959 3851 55 - 3967:29(float16_t) CompositeExtract 3963 1 - Store 3966 3967 - 3968: 3852(ptr) AccessChain 34(data) 3959 3851 69 - 3969:29(float16_t) CompositeExtract 3963 2 - Store 3968 3969 - 3970: 6(int) Load 8(invocation) - 3971: 3859(ptr) AccessChain 34(data) 73 3851 - 3972: 30(f16vec4) Load 3971 - 3973: 30(f16vec4) GroupNonUniformFMax 42 Reduce 3972 - 3974: 3859(ptr) AccessChain 34(data) 3970 3851 - Store 3974 3973 - 3975: 6(int) Load 8(invocation) - 3976: 3852(ptr) AccessChain 34(data) 37 3851 38 - 3977:29(float16_t) Load 3976 - 3978:29(float16_t) GroupNonUniformFAdd 42 InclusiveScan 3977 - 3979: 3852(ptr) AccessChain 34(data) 3975 3851 38 - Store 3979 3978 - 3980: 6(int) Load 8(invocation) - 3981: 3859(ptr) AccessChain 34(data) 46 3851 - 3982: 30(f16vec4) Load 3981 - 3983:3858(f16vec2) VectorShuffle 3982 3982 0 1 - 3984:3858(f16vec2) GroupNonUniformFAdd 42 InclusiveScan 3983 - 3985: 3852(ptr) AccessChain 34(data) 3980 3851 38 - 3986:29(float16_t) CompositeExtract 3984 0 - Store 3985 3986 - 3987: 3852(ptr) AccessChain 34(data) 3980 3851 55 - 3988:29(float16_t) CompositeExtract 3984 1 - Store 3987 3988 - 3989: 6(int) Load 8(invocation) - 3990: 3859(ptr) AccessChain 34(data) 59 3851 - 3991: 30(f16vec4) Load 3990 - 3992:3869(f16vec3) VectorShuffle 3991 3991 0 1 2 - 3993:3869(f16vec3) GroupNonUniformFAdd 42 InclusiveScan 3992 - 3994: 3852(ptr) AccessChain 34(data) 3989 3851 38 - 3995:29(float16_t) CompositeExtract 3993 0 - Store 3994 3995 - 3996: 3852(ptr) AccessChain 34(data) 3989 3851 55 - 3997:29(float16_t) CompositeExtract 3993 1 - Store 3996 3997 - 3998: 3852(ptr) AccessChain 34(data) 3989 3851 69 - 3999:29(float16_t) CompositeExtract 3993 2 - Store 3998 3999 - 4000: 6(int) Load 8(invocation) - 4001: 3859(ptr) AccessChain 34(data) 73 3851 - 4002: 30(f16vec4) Load 4001 - 4003: 30(f16vec4) GroupNonUniformFAdd 42 InclusiveScan 4002 - 4004: 3859(ptr) AccessChain 34(data) 4000 3851 - Store 4004 4003 - 4005: 6(int) Load 8(invocation) - 4006: 3852(ptr) AccessChain 34(data) 37 3851 38 - 4007:29(float16_t) Load 4006 - 4008:29(float16_t) GroupNonUniformFMul 42 InclusiveScan 4007 - 4009: 3852(ptr) AccessChain 34(data) 4005 3851 38 - Store 4009 4008 - 4010: 6(int) Load 8(invocation) - 4011: 3859(ptr) AccessChain 34(data) 46 3851 - 4012: 30(f16vec4) Load 4011 - 4013:3858(f16vec2) VectorShuffle 4012 4012 0 1 - 4014:3858(f16vec2) GroupNonUniformFMul 42 InclusiveScan 4013 - 4015: 3852(ptr) AccessChain 34(data) 4010 3851 38 - 4016:29(float16_t) CompositeExtract 4014 0 - Store 4015 4016 - 4017: 3852(ptr) AccessChain 34(data) 4010 3851 55 - 4018:29(float16_t) CompositeExtract 4014 1 - Store 4017 4018 - 4019: 6(int) Load 8(invocation) - 4020: 3859(ptr) AccessChain 34(data) 59 3851 - 4021: 30(f16vec4) Load 4020 - 4022:3869(f16vec3) VectorShuffle 4021 4021 0 1 2 - 4023:3869(f16vec3) GroupNonUniformFMul 42 InclusiveScan 4022 - 4024: 3852(ptr) AccessChain 34(data) 4019 3851 38 - 4025:29(float16_t) CompositeExtract 4023 0 - Store 4024 4025 - 4026: 3852(ptr) AccessChain 34(data) 4019 3851 55 - 4027:29(float16_t) CompositeExtract 4023 1 - Store 4026 4027 - 4028: 3852(ptr) AccessChain 34(data) 4019 3851 69 - 4029:29(float16_t) CompositeExtract 4023 2 - Store 4028 4029 - 4030: 6(int) Load 8(invocation) - 4031: 3859(ptr) AccessChain 34(data) 73 3851 - 4032: 30(f16vec4) Load 4031 - 4033: 30(f16vec4) GroupNonUniformFMul 42 InclusiveScan 4032 - 4034: 3859(ptr) AccessChain 34(data) 4030 3851 - Store 4034 4033 - 4035: 6(int) Load 8(invocation) - 4036: 3852(ptr) AccessChain 34(data) 37 3851 38 - 4037:29(float16_t) Load 4036 - 4038:29(float16_t) GroupNonUniformFMin 42 InclusiveScan 4037 - 4039: 3852(ptr) AccessChain 34(data) 4035 3851 38 - Store 4039 4038 - 4040: 6(int) Load 8(invocation) - 4041: 3859(ptr) AccessChain 34(data) 46 3851 - 4042: 30(f16vec4) Load 4041 - 4043:3858(f16vec2) VectorShuffle 4042 4042 0 1 - 4044:3858(f16vec2) GroupNonUniformFMin 42 InclusiveScan 4043 - 4045: 3852(ptr) AccessChain 34(data) 4040 3851 38 - 4046:29(float16_t) CompositeExtract 4044 0 - Store 4045 4046 - 4047: 3852(ptr) AccessChain 34(data) 4040 3851 55 - 4048:29(float16_t) CompositeExtract 4044 1 - Store 4047 4048 - 4049: 6(int) Load 8(invocation) - 4050: 3859(ptr) AccessChain 34(data) 59 3851 - 4051: 30(f16vec4) Load 4050 - 4052:3869(f16vec3) VectorShuffle 4051 4051 0 1 2 - 4053:3869(f16vec3) GroupNonUniformFMin 42 InclusiveScan 4052 - 4054: 3852(ptr) AccessChain 34(data) 4049 3851 38 - 4055:29(float16_t) CompositeExtract 4053 0 - Store 4054 4055 - 4056: 3852(ptr) AccessChain 34(data) 4049 3851 55 - 4057:29(float16_t) CompositeExtract 4053 1 - Store 4056 4057 - 4058: 3852(ptr) AccessChain 34(data) 4049 3851 69 - 4059:29(float16_t) CompositeExtract 4053 2 - Store 4058 4059 - 4060: 6(int) Load 8(invocation) - 4061: 3859(ptr) AccessChain 34(data) 73 3851 - 4062: 30(f16vec4) Load 4061 - 4063: 30(f16vec4) GroupNonUniformFMin 42 InclusiveScan 4062 - 4064: 3859(ptr) AccessChain 34(data) 4060 3851 - Store 4064 4063 - 4065: 6(int) Load 8(invocation) - 4066: 3852(ptr) AccessChain 34(data) 37 3851 38 - 4067:29(float16_t) Load 4066 - 4068:29(float16_t) GroupNonUniformFMax 42 InclusiveScan 4067 - 4069: 3852(ptr) AccessChain 34(data) 4065 3851 38 - Store 4069 4068 - 4070: 6(int) Load 8(invocation) - 4071: 3859(ptr) AccessChain 34(data) 46 3851 - 4072: 30(f16vec4) Load 4071 - 4073:3858(f16vec2) VectorShuffle 4072 4072 0 1 - 4074:3858(f16vec2) GroupNonUniformFMax 42 InclusiveScan 4073 - 4075: 3852(ptr) AccessChain 34(data) 4070 3851 38 - 4076:29(float16_t) CompositeExtract 4074 0 - Store 4075 4076 - 4077: 3852(ptr) AccessChain 34(data) 4070 3851 55 - 4078:29(float16_t) CompositeExtract 4074 1 - Store 4077 4078 - 4079: 6(int) Load 8(invocation) - 4080: 3859(ptr) AccessChain 34(data) 59 3851 - 4081: 30(f16vec4) Load 4080 - 4082:3869(f16vec3) VectorShuffle 4081 4081 0 1 2 - 4083:3869(f16vec3) GroupNonUniformFMax 42 InclusiveScan 4082 - 4084: 3852(ptr) AccessChain 34(data) 4079 3851 38 - 4085:29(float16_t) CompositeExtract 4083 0 - Store 4084 4085 - 4086: 3852(ptr) AccessChain 34(data) 4079 3851 55 - 4087:29(float16_t) CompositeExtract 4083 1 - Store 4086 4087 - 4088: 3852(ptr) AccessChain 34(data) 4079 3851 69 - 4089:29(float16_t) CompositeExtract 4083 2 - Store 4088 4089 - 4090: 6(int) Load 8(invocation) - 4091: 3859(ptr) AccessChain 34(data) 73 3851 - 4092: 30(f16vec4) Load 4091 - 4093: 30(f16vec4) GroupNonUniformFMax 42 InclusiveScan 4092 - 4094: 3859(ptr) AccessChain 34(data) 4090 3851 - Store 4094 4093 - 4095: 6(int) Load 8(invocation) - 4096: 3852(ptr) AccessChain 34(data) 37 3851 38 - 4097:29(float16_t) Load 4096 - 4098:29(float16_t) GroupNonUniformFAdd 42 ExclusiveScan 4097 - 4099: 3852(ptr) AccessChain 34(data) 4095 3851 38 - Store 4099 4098 - 4100: 6(int) Load 8(invocation) - 4101: 3859(ptr) AccessChain 34(data) 46 3851 - 4102: 30(f16vec4) Load 4101 - 4103:3858(f16vec2) VectorShuffle 4102 4102 0 1 - 4104:3858(f16vec2) GroupNonUniformFAdd 42 ExclusiveScan 4103 - 4105: 3852(ptr) AccessChain 34(data) 4100 3851 38 - 4106:29(float16_t) CompositeExtract 4104 0 - Store 4105 4106 - 4107: 3852(ptr) AccessChain 34(data) 4100 3851 55 - 4108:29(float16_t) CompositeExtract 4104 1 - Store 4107 4108 - 4109: 6(int) Load 8(invocation) - 4110: 3859(ptr) AccessChain 34(data) 59 3851 - 4111: 30(f16vec4) Load 4110 - 4112:3869(f16vec3) VectorShuffle 4111 4111 0 1 2 - 4113:3869(f16vec3) GroupNonUniformFAdd 42 ExclusiveScan 4112 - 4114: 3852(ptr) AccessChain 34(data) 4109 3851 38 - 4115:29(float16_t) CompositeExtract 4113 0 - Store 4114 4115 - 4116: 3852(ptr) AccessChain 34(data) 4109 3851 55 - 4117:29(float16_t) CompositeExtract 4113 1 - Store 4116 4117 - 4118: 3852(ptr) AccessChain 34(data) 4109 3851 69 - 4119:29(float16_t) CompositeExtract 4113 2 - Store 4118 4119 - 4120: 6(int) Load 8(invocation) - 4121: 3859(ptr) AccessChain 34(data) 73 3851 - 4122: 30(f16vec4) Load 4121 - 4123: 30(f16vec4) GroupNonUniformFAdd 42 ExclusiveScan 4122 - 4124: 3859(ptr) AccessChain 34(data) 4120 3851 - Store 4124 4123 - 4125: 6(int) Load 8(invocation) - 4126: 3852(ptr) AccessChain 34(data) 37 3851 38 - 4127:29(float16_t) Load 4126 - 4128:29(float16_t) GroupNonUniformFMul 42 ExclusiveScan 4127 - 4129: 3852(ptr) AccessChain 34(data) 4125 3851 38 - Store 4129 4128 - 4130: 6(int) Load 8(invocation) - 4131: 3859(ptr) AccessChain 34(data) 46 3851 - 4132: 30(f16vec4) Load 4131 - 4133:3858(f16vec2) VectorShuffle 4132 4132 0 1 - 4134:3858(f16vec2) GroupNonUniformFMul 42 ExclusiveScan 4133 - 4135: 3852(ptr) AccessChain 34(data) 4130 3851 38 - 4136:29(float16_t) CompositeExtract 4134 0 - Store 4135 4136 - 4137: 3852(ptr) AccessChain 34(data) 4130 3851 55 - 4138:29(float16_t) CompositeExtract 4134 1 - Store 4137 4138 - 4139: 6(int) Load 8(invocation) - 4140: 3859(ptr) AccessChain 34(data) 59 3851 - 4141: 30(f16vec4) Load 4140 - 4142:3869(f16vec3) VectorShuffle 4141 4141 0 1 2 - 4143:3869(f16vec3) GroupNonUniformFMul 42 ExclusiveScan 4142 - 4144: 3852(ptr) AccessChain 34(data) 4139 3851 38 - 4145:29(float16_t) CompositeExtract 4143 0 - Store 4144 4145 - 4146: 3852(ptr) AccessChain 34(data) 4139 3851 55 - 4147:29(float16_t) CompositeExtract 4143 1 - Store 4146 4147 - 4148: 3852(ptr) AccessChain 34(data) 4139 3851 69 - 4149:29(float16_t) CompositeExtract 4143 2 - Store 4148 4149 - 4150: 6(int) Load 8(invocation) - 4151: 3859(ptr) AccessChain 34(data) 73 3851 - 4152: 30(f16vec4) Load 4151 - 4153: 30(f16vec4) GroupNonUniformFMul 42 ExclusiveScan 4152 - 4154: 3859(ptr) AccessChain 34(data) 4150 3851 - Store 4154 4153 - 4155: 6(int) Load 8(invocation) - 4156: 3852(ptr) AccessChain 34(data) 37 3851 38 - 4157:29(float16_t) Load 4156 - 4158:29(float16_t) GroupNonUniformFMin 42 ExclusiveScan 4157 - 4159: 3852(ptr) AccessChain 34(data) 4155 3851 38 - Store 4159 4158 - 4160: 6(int) Load 8(invocation) - 4161: 3859(ptr) AccessChain 34(data) 46 3851 - 4162: 30(f16vec4) Load 4161 - 4163:3858(f16vec2) VectorShuffle 4162 4162 0 1 - 4164:3858(f16vec2) GroupNonUniformFMin 42 ExclusiveScan 4163 - 4165: 3852(ptr) AccessChain 34(data) 4160 3851 38 - 4166:29(float16_t) CompositeExtract 4164 0 - Store 4165 4166 - 4167: 3852(ptr) AccessChain 34(data) 4160 3851 55 - 4168:29(float16_t) CompositeExtract 4164 1 - Store 4167 4168 - 4169: 6(int) Load 8(invocation) - 4170: 3859(ptr) AccessChain 34(data) 59 3851 - 4171: 30(f16vec4) Load 4170 - 4172:3869(f16vec3) VectorShuffle 4171 4171 0 1 2 - 4173:3869(f16vec3) GroupNonUniformFMin 42 ExclusiveScan 4172 - 4174: 3852(ptr) AccessChain 34(data) 4169 3851 38 - 4175:29(float16_t) CompositeExtract 4173 0 - Store 4174 4175 - 4176: 3852(ptr) AccessChain 34(data) 4169 3851 55 - 4177:29(float16_t) CompositeExtract 4173 1 - Store 4176 4177 - 4178: 3852(ptr) AccessChain 34(data) 4169 3851 69 - 4179:29(float16_t) CompositeExtract 4173 2 - Store 4178 4179 - 4180: 6(int) Load 8(invocation) - 4181: 3859(ptr) AccessChain 34(data) 73 3851 - 4182: 30(f16vec4) Load 4181 - 4183: 30(f16vec4) GroupNonUniformFMin 42 ExclusiveScan 4182 - 4184: 3859(ptr) AccessChain 34(data) 4180 3851 - Store 4184 4183 - 4185: 6(int) Load 8(invocation) - 4186: 3852(ptr) AccessChain 34(data) 37 3851 38 - 4187:29(float16_t) Load 4186 - 4188:29(float16_t) GroupNonUniformFMax 42 ExclusiveScan 4187 - 4189: 3852(ptr) AccessChain 34(data) 4185 3851 38 - Store 4189 4188 - 4190: 6(int) Load 8(invocation) - 4191: 3859(ptr) AccessChain 34(data) 46 3851 - 4192: 30(f16vec4) Load 4191 - 4193:3858(f16vec2) VectorShuffle 4192 4192 0 1 - 4194:3858(f16vec2) GroupNonUniformFMax 42 ExclusiveScan 4193 - 4195: 3852(ptr) AccessChain 34(data) 4190 3851 38 - 4196:29(float16_t) CompositeExtract 4194 0 - Store 4195 4196 - 4197: 3852(ptr) AccessChain 34(data) 4190 3851 55 - 4198:29(float16_t) CompositeExtract 4194 1 - Store 4197 4198 - 4199: 6(int) Load 8(invocation) - 4200: 3859(ptr) AccessChain 34(data) 59 3851 - 4201: 30(f16vec4) Load 4200 - 4202:3869(f16vec3) VectorShuffle 4201 4201 0 1 2 - 4203:3869(f16vec3) GroupNonUniformFMax 42 ExclusiveScan 4202 - 4204: 3852(ptr) AccessChain 34(data) 4199 3851 38 - 4205:29(float16_t) CompositeExtract 4203 0 - Store 4204 4205 - 4206: 3852(ptr) AccessChain 34(data) 4199 3851 55 - 4207:29(float16_t) CompositeExtract 4203 1 - Store 4206 4207 - 4208: 3852(ptr) AccessChain 34(data) 4199 3851 69 - 4209:29(float16_t) CompositeExtract 4203 2 - Store 4208 4209 - 4210: 6(int) Load 8(invocation) - 4211: 3859(ptr) AccessChain 34(data) 73 3851 - 4212: 30(f16vec4) Load 4211 - 4213: 30(f16vec4) GroupNonUniformFMax 42 ExclusiveScan 4212 - 4214: 3859(ptr) AccessChain 34(data) 4210 3851 - Store 4214 4213 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesArithmeticNeg.comp.out b/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesArithmeticNeg.comp.out deleted file mode 100644 index 47505596..00000000 --- a/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesArithmeticNeg.comp.out +++ /dev/null @@ -1,557 +0,0 @@ -spv.subgroupExtendedTypesArithmeticNeg.comp -ERROR: 0:26: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:27: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:28: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:29: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:31: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:32: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:33: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:34: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:36: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:37: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:38: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:39: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:41: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:42: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:43: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:44: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:46: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:47: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:48: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:49: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:51: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:52: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:53: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:54: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:56: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:57: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:58: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:59: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:61: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:62: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:63: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:64: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:66: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:67: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:68: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:69: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:71: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:72: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:73: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:74: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:76: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:77: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:78: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:79: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:81: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:82: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:83: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:84: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:86: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:87: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:88: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:89: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:91: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:92: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:93: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:94: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:96: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:97: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:98: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:99: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:101: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:102: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:103: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:104: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:106: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:107: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:108: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:109: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:111: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:112: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:113: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:114: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:116: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:117: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:118: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:119: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:121: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:122: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:123: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:124: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:126: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:127: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:128: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:129: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:131: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:132: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:133: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:134: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:136: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:137: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:138: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:139: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:141: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:142: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:143: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:144: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:146: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:147: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:148: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:149: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:151: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:152: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:153: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:154: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:156: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:157: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:158: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:159: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:161: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:162: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:163: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:164: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:166: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:167: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:168: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:169: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:171: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:172: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:173: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:174: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:176: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:177: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:178: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:179: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:181: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:182: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:183: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:184: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:186: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:187: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:188: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:189: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:191: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:192: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:193: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:194: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:196: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:197: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:198: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:199: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:201: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:202: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:203: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:204: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:206: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:207: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:208: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:209: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:211: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:212: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:213: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:214: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:216: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:217: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:218: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:219: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:221: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:222: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:223: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:224: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:226: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:227: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:228: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:229: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:231: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:232: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:233: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:234: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:236: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:237: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:238: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:239: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:241: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:242: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:243: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:244: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:246: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:247: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:248: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:249: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:251: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:252: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:253: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:254: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:256: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:257: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:258: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:259: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:261: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:262: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:263: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:264: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:266: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:267: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:268: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:269: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:271: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:272: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:273: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:274: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:276: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:277: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:278: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:279: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:281: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:282: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:283: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:284: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:286: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:287: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:288: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:289: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:291: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:292: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:293: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:294: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:296: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:297: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:298: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:299: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:301: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:302: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:303: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:304: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:306: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:307: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:308: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:309: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:311: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:312: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:313: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:314: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:316: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:317: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:318: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:319: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:321: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:322: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:323: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:324: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:326: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:327: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:328: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:329: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:331: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:332: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:333: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:334: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:336: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:337: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:338: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:339: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:341: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:342: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:343: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:344: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:346: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:347: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:348: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:349: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:351: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:352: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:353: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:354: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:356: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:357: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:358: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:359: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:361: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:362: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:363: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:364: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:366: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:367: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:368: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:369: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:371: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:372: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:373: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:374: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:376: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:377: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:378: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:379: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:381: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:382: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:383: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:384: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:386: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:387: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:388: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:389: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:391: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:392: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:393: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:394: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:396: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:397: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:398: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:399: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:401: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:402: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:403: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:404: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:406: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:407: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:408: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:409: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:411: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:412: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:413: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:414: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:416: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:417: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:418: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:419: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:421: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:422: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:423: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:424: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:426: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:427: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:428: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:429: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:431: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:432: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:433: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:434: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:436: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:437: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:438: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:439: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:441: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:442: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:443: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:444: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:446: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:447: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:448: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:449: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:451: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:452: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:453: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:454: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:456: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:457: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:458: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:459: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:461: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:462: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:463: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:464: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:466: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:467: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:468: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:469: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:471: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:472: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:473: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:474: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:476: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:477: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:478: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:479: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:481: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:482: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:483: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:484: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:486: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:487: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:488: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:489: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:491: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:492: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:493: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:494: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:496: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:497: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:498: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:499: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:501: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:502: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:503: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:504: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:506: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:507: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:508: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:509: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:511: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:512: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:513: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:514: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:516: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:517: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:518: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:519: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:521: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:522: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:523: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:524: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:526: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:527: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:528: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:529: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:531: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:532: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:533: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:534: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:536: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:537: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:538: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:539: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:541: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:542: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:543: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:544: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:546: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:547: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:548: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:549: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:551: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:552: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:553: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:554: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:556: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:557: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:558: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:559: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:561: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:562: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:563: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:564: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:566: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:567: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:568: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:569: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:571: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:572: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:573: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:574: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:576: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:577: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:578: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:579: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:581: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:582: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:583: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:584: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:586: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:587: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:588: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:589: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:591: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:592: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:593: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:594: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:596: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:597: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:598: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:599: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:601: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:602: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:603: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:604: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:606: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:607: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:608: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:609: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:611: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:612: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:613: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:614: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:616: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:617: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:618: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:619: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:621: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:622: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:623: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:624: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:626: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:627: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:628: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:629: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:631: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:632: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:633: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:634: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:636: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:637: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:638: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:639: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:641: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:642: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:643: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:644: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:646: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:647: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:648: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:649: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:651: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:652: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:653: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:654: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:656: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:657: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:658: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:659: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:661: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:662: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:663: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:664: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:666: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:667: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:668: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:669: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:671: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:672: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:673: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:674: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:676: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:677: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:678: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:679: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:681: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:682: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:683: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:684: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:686: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:687: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:688: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:689: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:691: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:692: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:693: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:694: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:696: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:697: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:698: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:699: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:701: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:702: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:703: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:704: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:706: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:707: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:708: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:709: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:711: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:712: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:713: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:714: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 552 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesBallot.comp.out b/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesBallot.comp.out deleted file mode 100644 index 60f01bcc..00000000 --- a/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesBallot.comp.out +++ /dev/null @@ -1,659 +0,0 @@ -spv.subgroupExtendedTypesBallot.comp -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 498 - - Capability Shader - Capability Float16 - Capability Int64 - Capability Int16 - Capability Int8 - Capability GroupNonUniform - Capability GroupNonUniformBallot - Capability StorageUniformBufferBlock16 - Capability StorageBuffer8BitAccess - Extension "SPV_KHR_8bit_storage" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 10 12 - ExecutionMode 4 LocalSize 8 1 1 - Source GLSL 450 - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int16" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int64" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int8" - SourceExtension "GL_EXT_shader_subgroup_extended_types_float16" - SourceExtension "GL_EXT_shader_subgroup_extended_types_int16" - SourceExtension "GL_EXT_shader_subgroup_extended_types_int64" - SourceExtension "GL_EXT_shader_subgroup_extended_types_int8" - SourceExtension "GL_KHR_shader_subgroup_ballot" - SourceExtension "GL_KHR_shader_subgroup_basic" - Name 4 "main" - Name 8 "invocation" - Name 10 "gl_SubgroupInvocationID" - Name 12 "gl_SubgroupSize" - Name 31 "Buffers" - MemberName 31(Buffers) 0 "i8" - MemberName 31(Buffers) 1 "u8" - MemberName 31(Buffers) 2 "i16" - MemberName 31(Buffers) 3 "u16" - MemberName 31(Buffers) 4 "i64" - MemberName 31(Buffers) 5 "u64" - MemberName 31(Buffers) 6 "f16" - Name 34 "data" - Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision - Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId - Decorate 11 RelaxedPrecision - Decorate 12(gl_SubgroupSize) RelaxedPrecision - Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize - Decorate 13 RelaxedPrecision - Decorate 14 RelaxedPrecision - Decorate 16 RelaxedPrecision - MemberDecorate 31(Buffers) 0 Offset 0 - MemberDecorate 31(Buffers) 1 Offset 4 - MemberDecorate 31(Buffers) 2 Offset 8 - MemberDecorate 31(Buffers) 3 Offset 16 - MemberDecorate 31(Buffers) 4 Offset 32 - MemberDecorate 31(Buffers) 5 Offset 64 - MemberDecorate 31(Buffers) 6 Offset 96 - Decorate 31(Buffers) Block - Decorate 34(data) DescriptorSet 0 - Decorate 34(data) Binding 0 - Decorate 497 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypePointer Input 6(int) -10(gl_SubgroupInvocationID): 9(ptr) Variable Input -12(gl_SubgroupSize): 9(ptr) Variable Input - 15: 6(int) Constant 4 - 17: TypeInt 8 1 - 18: TypeVector 17(int8_t) 4 - 19: TypeInt 8 0 - 20: TypeVector 19(int8_t) 4 - 21: TypeInt 16 1 - 22: TypeVector 21(int16_t) 4 - 23: TypeInt 16 0 - 24: TypeVector 23(int16_t) 4 - 25: TypeInt 64 1 - 26: TypeVector 25(int64_t) 4 - 27: TypeInt 64 0 - 28: TypeVector 27(int64_t) 4 - 29: TypeFloat 16 - 30: TypeVector 29(float16_t) 4 - 31(Buffers): TypeStruct 18(i8vec4) 20(i8vec4) 22(i16vec4) 24(i16vec4) 26(i64vec4) 28(i64vec4) 30(f16vec4) - 32: TypeArray 31(Buffers) 15 - 33: TypePointer StorageBuffer 32 - 34(data): 33(ptr) Variable StorageBuffer - 36: TypeInt 32 1 - 37: 36(int) Constant 0 - 38: 6(int) Constant 0 - 39: TypePointer StorageBuffer 17(int8_t) - 42: 6(int) Constant 3 - 46: 36(int) Constant 1 - 47: TypeVector 17(int8_t) 2 - 48: TypePointer StorageBuffer 18(i8vec4) - 55: 6(int) Constant 1 - 59: 36(int) Constant 2 - 60: TypeVector 17(int8_t) 3 - 69: 6(int) Constant 2 - 73: 36(int) Constant 3 - 109: TypePointer StorageBuffer 19(int8_t) - 115: TypeVector 19(int8_t) 2 - 116: TypePointer StorageBuffer 20(i8vec4) - 126: TypeVector 19(int8_t) 3 - 173: TypePointer StorageBuffer 21(int16_t) - 179: TypeVector 21(int16_t) 2 - 180: TypePointer StorageBuffer 22(i16vec4) - 190: TypeVector 21(int16_t) 3 - 237: TypePointer StorageBuffer 23(int16_t) - 243: TypeVector 23(int16_t) 2 - 244: TypePointer StorageBuffer 24(i16vec4) - 254: TypeVector 23(int16_t) 3 - 301: 36(int) Constant 4 - 302: TypePointer StorageBuffer 25(int64_t) - 308: TypeVector 25(int64_t) 2 - 309: TypePointer StorageBuffer 26(i64vec4) - 319: TypeVector 25(int64_t) 3 - 366: 36(int) Constant 5 - 367: TypePointer StorageBuffer 27(int64_t) - 373: TypeVector 27(int64_t) 2 - 374: TypePointer StorageBuffer 28(i64vec4) - 384: TypeVector 27(int64_t) 3 - 431: 36(int) Constant 6 - 432: TypePointer StorageBuffer 29(float16_t) - 438: TypeVector 29(float16_t) 2 - 439: TypePointer StorageBuffer 30(f16vec4) - 449: TypeVector 29(float16_t) 3 - 495: TypeVector 6(int) 3 - 496: 6(int) Constant 8 - 497: 495(ivec3) ConstantComposite 496 55 55 - 4(main): 2 Function None 3 - 5: Label - 8(invocation): 7(ptr) Variable Function - 11: 6(int) Load 10(gl_SubgroupInvocationID) - 13: 6(int) Load 12(gl_SubgroupSize) - 14: 6(int) IAdd 11 13 - 16: 6(int) UMod 14 15 - Store 8(invocation) 16 - 35: 6(int) Load 8(invocation) - 40: 39(ptr) AccessChain 34(data) 37 37 38 - 41: 17(int8_t) Load 40 - 43: 17(int8_t) GroupNonUniformBroadcast 42 41 42 - 44: 39(ptr) AccessChain 34(data) 35 37 38 - Store 44 43 - 45: 6(int) Load 8(invocation) - 49: 48(ptr) AccessChain 34(data) 46 37 - 50: 18(i8vec4) Load 49 - 51: 47(i8vec2) VectorShuffle 50 50 0 1 - 52: 47(i8vec2) GroupNonUniformBroadcast 42 51 42 - 53: 39(ptr) AccessChain 34(data) 45 37 38 - 54: 17(int8_t) CompositeExtract 52 0 - Store 53 54 - 56: 39(ptr) AccessChain 34(data) 45 37 55 - 57: 17(int8_t) CompositeExtract 52 1 - Store 56 57 - 58: 6(int) Load 8(invocation) - 61: 48(ptr) AccessChain 34(data) 59 37 - 62: 18(i8vec4) Load 61 - 63: 60(i8vec3) VectorShuffle 62 62 0 1 2 - 64: 60(i8vec3) GroupNonUniformBroadcast 42 63 42 - 65: 39(ptr) AccessChain 34(data) 58 37 38 - 66: 17(int8_t) CompositeExtract 64 0 - Store 65 66 - 67: 39(ptr) AccessChain 34(data) 58 37 55 - 68: 17(int8_t) CompositeExtract 64 1 - Store 67 68 - 70: 39(ptr) AccessChain 34(data) 58 37 69 - 71: 17(int8_t) CompositeExtract 64 2 - Store 70 71 - 72: 6(int) Load 8(invocation) - 74: 48(ptr) AccessChain 34(data) 73 37 - 75: 18(i8vec4) Load 74 - 76: 18(i8vec4) GroupNonUniformBroadcast 42 75 42 - 77: 48(ptr) AccessChain 34(data) 72 37 - Store 77 76 - 78: 6(int) Load 8(invocation) - 79: 39(ptr) AccessChain 34(data) 37 37 38 - 80: 17(int8_t) Load 79 - 81: 17(int8_t) GroupNonUniformBroadcastFirst 42 80 - 82: 39(ptr) AccessChain 34(data) 78 37 38 - Store 82 81 - 83: 6(int) Load 8(invocation) - 84: 48(ptr) AccessChain 34(data) 46 37 - 85: 18(i8vec4) Load 84 - 86: 47(i8vec2) VectorShuffle 85 85 0 1 - 87: 47(i8vec2) GroupNonUniformBroadcastFirst 42 86 - 88: 39(ptr) AccessChain 34(data) 83 37 38 - 89: 17(int8_t) CompositeExtract 87 0 - Store 88 89 - 90: 39(ptr) AccessChain 34(data) 83 37 55 - 91: 17(int8_t) CompositeExtract 87 1 - Store 90 91 - 92: 6(int) Load 8(invocation) - 93: 48(ptr) AccessChain 34(data) 59 37 - 94: 18(i8vec4) Load 93 - 95: 60(i8vec3) VectorShuffle 94 94 0 1 2 - 96: 60(i8vec3) GroupNonUniformBroadcastFirst 42 95 - 97: 39(ptr) AccessChain 34(data) 92 37 38 - 98: 17(int8_t) CompositeExtract 96 0 - Store 97 98 - 99: 39(ptr) AccessChain 34(data) 92 37 55 - 100: 17(int8_t) CompositeExtract 96 1 - Store 99 100 - 101: 39(ptr) AccessChain 34(data) 92 37 69 - 102: 17(int8_t) CompositeExtract 96 2 - Store 101 102 - 103: 6(int) Load 8(invocation) - 104: 48(ptr) AccessChain 34(data) 73 37 - 105: 18(i8vec4) Load 104 - 106: 18(i8vec4) GroupNonUniformBroadcastFirst 42 105 - 107: 48(ptr) AccessChain 34(data) 103 37 - Store 107 106 - 108: 6(int) Load 8(invocation) - 110: 109(ptr) AccessChain 34(data) 37 46 38 - 111: 19(int8_t) Load 110 - 112: 19(int8_t) GroupNonUniformBroadcast 42 111 42 - 113: 109(ptr) AccessChain 34(data) 108 46 38 - Store 113 112 - 114: 6(int) Load 8(invocation) - 117: 116(ptr) AccessChain 34(data) 46 46 - 118: 20(i8vec4) Load 117 - 119: 115(i8vec2) VectorShuffle 118 118 0 1 - 120: 115(i8vec2) GroupNonUniformBroadcast 42 119 42 - 121: 109(ptr) AccessChain 34(data) 114 46 38 - 122: 19(int8_t) CompositeExtract 120 0 - Store 121 122 - 123: 109(ptr) AccessChain 34(data) 114 46 55 - 124: 19(int8_t) CompositeExtract 120 1 - Store 123 124 - 125: 6(int) Load 8(invocation) - 127: 116(ptr) AccessChain 34(data) 59 46 - 128: 20(i8vec4) Load 127 - 129: 126(i8vec3) VectorShuffle 128 128 0 1 2 - 130: 126(i8vec3) GroupNonUniformBroadcast 42 129 42 - 131: 109(ptr) AccessChain 34(data) 125 46 38 - 132: 19(int8_t) CompositeExtract 130 0 - Store 131 132 - 133: 109(ptr) AccessChain 34(data) 125 46 55 - 134: 19(int8_t) CompositeExtract 130 1 - Store 133 134 - 135: 109(ptr) AccessChain 34(data) 125 46 69 - 136: 19(int8_t) CompositeExtract 130 2 - Store 135 136 - 137: 6(int) Load 8(invocation) - 138: 116(ptr) AccessChain 34(data) 73 46 - 139: 20(i8vec4) Load 138 - 140: 20(i8vec4) GroupNonUniformBroadcast 42 139 42 - 141: 116(ptr) AccessChain 34(data) 137 46 - Store 141 140 - 142: 6(int) Load 8(invocation) - 143: 109(ptr) AccessChain 34(data) 37 46 38 - 144: 19(int8_t) Load 143 - 145: 19(int8_t) GroupNonUniformBroadcastFirst 42 144 - 146: 109(ptr) AccessChain 34(data) 142 46 38 - Store 146 145 - 147: 6(int) Load 8(invocation) - 148: 116(ptr) AccessChain 34(data) 46 46 - 149: 20(i8vec4) Load 148 - 150: 115(i8vec2) VectorShuffle 149 149 0 1 - 151: 115(i8vec2) GroupNonUniformBroadcastFirst 42 150 - 152: 109(ptr) AccessChain 34(data) 147 46 38 - 153: 19(int8_t) CompositeExtract 151 0 - Store 152 153 - 154: 109(ptr) AccessChain 34(data) 147 46 55 - 155: 19(int8_t) CompositeExtract 151 1 - Store 154 155 - 156: 6(int) Load 8(invocation) - 157: 116(ptr) AccessChain 34(data) 59 46 - 158: 20(i8vec4) Load 157 - 159: 126(i8vec3) VectorShuffle 158 158 0 1 2 - 160: 126(i8vec3) GroupNonUniformBroadcastFirst 42 159 - 161: 109(ptr) AccessChain 34(data) 156 46 38 - 162: 19(int8_t) CompositeExtract 160 0 - Store 161 162 - 163: 109(ptr) AccessChain 34(data) 156 46 55 - 164: 19(int8_t) CompositeExtract 160 1 - Store 163 164 - 165: 109(ptr) AccessChain 34(data) 156 46 69 - 166: 19(int8_t) CompositeExtract 160 2 - Store 165 166 - 167: 6(int) Load 8(invocation) - 168: 116(ptr) AccessChain 34(data) 73 46 - 169: 20(i8vec4) Load 168 - 170: 20(i8vec4) GroupNonUniformBroadcastFirst 42 169 - 171: 116(ptr) AccessChain 34(data) 167 46 - Store 171 170 - 172: 6(int) Load 8(invocation) - 174: 173(ptr) AccessChain 34(data) 37 59 38 - 175: 21(int16_t) Load 174 - 176: 21(int16_t) GroupNonUniformBroadcast 42 175 42 - 177: 173(ptr) AccessChain 34(data) 172 59 38 - Store 177 176 - 178: 6(int) Load 8(invocation) - 181: 180(ptr) AccessChain 34(data) 46 59 - 182: 22(i16vec4) Load 181 - 183:179(i16vec2) VectorShuffle 182 182 0 1 - 184:179(i16vec2) GroupNonUniformBroadcast 42 183 42 - 185: 173(ptr) AccessChain 34(data) 178 59 38 - 186: 21(int16_t) CompositeExtract 184 0 - Store 185 186 - 187: 173(ptr) AccessChain 34(data) 178 59 55 - 188: 21(int16_t) CompositeExtract 184 1 - Store 187 188 - 189: 6(int) Load 8(invocation) - 191: 180(ptr) AccessChain 34(data) 59 59 - 192: 22(i16vec4) Load 191 - 193:190(i16vec3) VectorShuffle 192 192 0 1 2 - 194:190(i16vec3) GroupNonUniformBroadcast 42 193 42 - 195: 173(ptr) AccessChain 34(data) 189 59 38 - 196: 21(int16_t) CompositeExtract 194 0 - Store 195 196 - 197: 173(ptr) AccessChain 34(data) 189 59 55 - 198: 21(int16_t) CompositeExtract 194 1 - Store 197 198 - 199: 173(ptr) AccessChain 34(data) 189 59 69 - 200: 21(int16_t) CompositeExtract 194 2 - Store 199 200 - 201: 6(int) Load 8(invocation) - 202: 180(ptr) AccessChain 34(data) 73 59 - 203: 22(i16vec4) Load 202 - 204: 22(i16vec4) GroupNonUniformBroadcast 42 203 42 - 205: 180(ptr) AccessChain 34(data) 201 59 - Store 205 204 - 206: 6(int) Load 8(invocation) - 207: 173(ptr) AccessChain 34(data) 37 59 38 - 208: 21(int16_t) Load 207 - 209: 21(int16_t) GroupNonUniformBroadcastFirst 42 208 - 210: 173(ptr) AccessChain 34(data) 206 59 38 - Store 210 209 - 211: 6(int) Load 8(invocation) - 212: 180(ptr) AccessChain 34(data) 46 59 - 213: 22(i16vec4) Load 212 - 214:179(i16vec2) VectorShuffle 213 213 0 1 - 215:179(i16vec2) GroupNonUniformBroadcastFirst 42 214 - 216: 173(ptr) AccessChain 34(data) 211 59 38 - 217: 21(int16_t) CompositeExtract 215 0 - Store 216 217 - 218: 173(ptr) AccessChain 34(data) 211 59 55 - 219: 21(int16_t) CompositeExtract 215 1 - Store 218 219 - 220: 6(int) Load 8(invocation) - 221: 180(ptr) AccessChain 34(data) 59 59 - 222: 22(i16vec4) Load 221 - 223:190(i16vec3) VectorShuffle 222 222 0 1 2 - 224:190(i16vec3) GroupNonUniformBroadcastFirst 42 223 - 225: 173(ptr) AccessChain 34(data) 220 59 38 - 226: 21(int16_t) CompositeExtract 224 0 - Store 225 226 - 227: 173(ptr) AccessChain 34(data) 220 59 55 - 228: 21(int16_t) CompositeExtract 224 1 - Store 227 228 - 229: 173(ptr) AccessChain 34(data) 220 59 69 - 230: 21(int16_t) CompositeExtract 224 2 - Store 229 230 - 231: 6(int) Load 8(invocation) - 232: 180(ptr) AccessChain 34(data) 73 59 - 233: 22(i16vec4) Load 232 - 234: 22(i16vec4) GroupNonUniformBroadcastFirst 42 233 - 235: 180(ptr) AccessChain 34(data) 231 59 - Store 235 234 - 236: 6(int) Load 8(invocation) - 238: 237(ptr) AccessChain 34(data) 37 73 38 - 239: 23(int16_t) Load 238 - 240: 23(int16_t) GroupNonUniformBroadcast 42 239 42 - 241: 237(ptr) AccessChain 34(data) 236 73 38 - Store 241 240 - 242: 6(int) Load 8(invocation) - 245: 244(ptr) AccessChain 34(data) 46 73 - 246: 24(i16vec4) Load 245 - 247:243(i16vec2) VectorShuffle 246 246 0 1 - 248:243(i16vec2) GroupNonUniformBroadcast 42 247 42 - 249: 237(ptr) AccessChain 34(data) 242 73 38 - 250: 23(int16_t) CompositeExtract 248 0 - Store 249 250 - 251: 237(ptr) AccessChain 34(data) 242 73 55 - 252: 23(int16_t) CompositeExtract 248 1 - Store 251 252 - 253: 6(int) Load 8(invocation) - 255: 244(ptr) AccessChain 34(data) 59 73 - 256: 24(i16vec4) Load 255 - 257:254(i16vec3) VectorShuffle 256 256 0 1 2 - 258:254(i16vec3) GroupNonUniformBroadcast 42 257 42 - 259: 237(ptr) AccessChain 34(data) 253 73 38 - 260: 23(int16_t) CompositeExtract 258 0 - Store 259 260 - 261: 237(ptr) AccessChain 34(data) 253 73 55 - 262: 23(int16_t) CompositeExtract 258 1 - Store 261 262 - 263: 237(ptr) AccessChain 34(data) 253 73 69 - 264: 23(int16_t) CompositeExtract 258 2 - Store 263 264 - 265: 6(int) Load 8(invocation) - 266: 244(ptr) AccessChain 34(data) 73 73 - 267: 24(i16vec4) Load 266 - 268: 24(i16vec4) GroupNonUniformBroadcast 42 267 42 - 269: 244(ptr) AccessChain 34(data) 265 73 - Store 269 268 - 270: 6(int) Load 8(invocation) - 271: 237(ptr) AccessChain 34(data) 37 73 38 - 272: 23(int16_t) Load 271 - 273: 23(int16_t) GroupNonUniformBroadcastFirst 42 272 - 274: 237(ptr) AccessChain 34(data) 270 73 38 - Store 274 273 - 275: 6(int) Load 8(invocation) - 276: 244(ptr) AccessChain 34(data) 46 73 - 277: 24(i16vec4) Load 276 - 278:243(i16vec2) VectorShuffle 277 277 0 1 - 279:243(i16vec2) GroupNonUniformBroadcastFirst 42 278 - 280: 237(ptr) AccessChain 34(data) 275 73 38 - 281: 23(int16_t) CompositeExtract 279 0 - Store 280 281 - 282: 237(ptr) AccessChain 34(data) 275 73 55 - 283: 23(int16_t) CompositeExtract 279 1 - Store 282 283 - 284: 6(int) Load 8(invocation) - 285: 244(ptr) AccessChain 34(data) 59 73 - 286: 24(i16vec4) Load 285 - 287:254(i16vec3) VectorShuffle 286 286 0 1 2 - 288:254(i16vec3) GroupNonUniformBroadcastFirst 42 287 - 289: 237(ptr) AccessChain 34(data) 284 73 38 - 290: 23(int16_t) CompositeExtract 288 0 - Store 289 290 - 291: 237(ptr) AccessChain 34(data) 284 73 55 - 292: 23(int16_t) CompositeExtract 288 1 - Store 291 292 - 293: 237(ptr) AccessChain 34(data) 284 73 69 - 294: 23(int16_t) CompositeExtract 288 2 - Store 293 294 - 295: 6(int) Load 8(invocation) - 296: 244(ptr) AccessChain 34(data) 73 73 - 297: 24(i16vec4) Load 296 - 298: 24(i16vec4) GroupNonUniformBroadcastFirst 42 297 - 299: 244(ptr) AccessChain 34(data) 295 73 - Store 299 298 - 300: 6(int) Load 8(invocation) - 303: 302(ptr) AccessChain 34(data) 37 301 38 - 304: 25(int64_t) Load 303 - 305: 25(int64_t) GroupNonUniformBroadcast 42 304 42 - 306: 302(ptr) AccessChain 34(data) 300 301 38 - Store 306 305 - 307: 6(int) Load 8(invocation) - 310: 309(ptr) AccessChain 34(data) 46 301 - 311: 26(i64vec4) Load 310 - 312:308(i64vec2) VectorShuffle 311 311 0 1 - 313:308(i64vec2) GroupNonUniformBroadcast 42 312 42 - 314: 302(ptr) AccessChain 34(data) 307 301 38 - 315: 25(int64_t) CompositeExtract 313 0 - Store 314 315 - 316: 302(ptr) AccessChain 34(data) 307 301 55 - 317: 25(int64_t) CompositeExtract 313 1 - Store 316 317 - 318: 6(int) Load 8(invocation) - 320: 309(ptr) AccessChain 34(data) 59 301 - 321: 26(i64vec4) Load 320 - 322:319(i64vec3) VectorShuffle 321 321 0 1 2 - 323:319(i64vec3) GroupNonUniformBroadcast 42 322 42 - 324: 302(ptr) AccessChain 34(data) 318 301 38 - 325: 25(int64_t) CompositeExtract 323 0 - Store 324 325 - 326: 302(ptr) AccessChain 34(data) 318 301 55 - 327: 25(int64_t) CompositeExtract 323 1 - Store 326 327 - 328: 302(ptr) AccessChain 34(data) 318 301 69 - 329: 25(int64_t) CompositeExtract 323 2 - Store 328 329 - 330: 6(int) Load 8(invocation) - 331: 309(ptr) AccessChain 34(data) 73 301 - 332: 26(i64vec4) Load 331 - 333: 26(i64vec4) GroupNonUniformBroadcast 42 332 42 - 334: 309(ptr) AccessChain 34(data) 330 301 - Store 334 333 - 335: 6(int) Load 8(invocation) - 336: 302(ptr) AccessChain 34(data) 37 301 38 - 337: 25(int64_t) Load 336 - 338: 25(int64_t) GroupNonUniformBroadcastFirst 42 337 - 339: 302(ptr) AccessChain 34(data) 335 301 38 - Store 339 338 - 340: 6(int) Load 8(invocation) - 341: 309(ptr) AccessChain 34(data) 46 301 - 342: 26(i64vec4) Load 341 - 343:308(i64vec2) VectorShuffle 342 342 0 1 - 344:308(i64vec2) GroupNonUniformBroadcastFirst 42 343 - 345: 302(ptr) AccessChain 34(data) 340 301 38 - 346: 25(int64_t) CompositeExtract 344 0 - Store 345 346 - 347: 302(ptr) AccessChain 34(data) 340 301 55 - 348: 25(int64_t) CompositeExtract 344 1 - Store 347 348 - 349: 6(int) Load 8(invocation) - 350: 309(ptr) AccessChain 34(data) 59 301 - 351: 26(i64vec4) Load 350 - 352:319(i64vec3) VectorShuffle 351 351 0 1 2 - 353:319(i64vec3) GroupNonUniformBroadcastFirst 42 352 - 354: 302(ptr) AccessChain 34(data) 349 301 38 - 355: 25(int64_t) CompositeExtract 353 0 - Store 354 355 - 356: 302(ptr) AccessChain 34(data) 349 301 55 - 357: 25(int64_t) CompositeExtract 353 1 - Store 356 357 - 358: 302(ptr) AccessChain 34(data) 349 301 69 - 359: 25(int64_t) CompositeExtract 353 2 - Store 358 359 - 360: 6(int) Load 8(invocation) - 361: 309(ptr) AccessChain 34(data) 73 301 - 362: 26(i64vec4) Load 361 - 363: 26(i64vec4) GroupNonUniformBroadcastFirst 42 362 - 364: 309(ptr) AccessChain 34(data) 360 301 - Store 364 363 - 365: 6(int) Load 8(invocation) - 368: 367(ptr) AccessChain 34(data) 37 366 38 - 369: 27(int64_t) Load 368 - 370: 27(int64_t) GroupNonUniformBroadcast 42 369 42 - 371: 367(ptr) AccessChain 34(data) 365 366 38 - Store 371 370 - 372: 6(int) Load 8(invocation) - 375: 374(ptr) AccessChain 34(data) 46 366 - 376: 28(i64vec4) Load 375 - 377:373(i64vec2) VectorShuffle 376 376 0 1 - 378:373(i64vec2) GroupNonUniformBroadcast 42 377 42 - 379: 367(ptr) AccessChain 34(data) 372 366 38 - 380: 27(int64_t) CompositeExtract 378 0 - Store 379 380 - 381: 367(ptr) AccessChain 34(data) 372 366 55 - 382: 27(int64_t) CompositeExtract 378 1 - Store 381 382 - 383: 6(int) Load 8(invocation) - 385: 374(ptr) AccessChain 34(data) 59 366 - 386: 28(i64vec4) Load 385 - 387:384(i64vec3) VectorShuffle 386 386 0 1 2 - 388:384(i64vec3) GroupNonUniformBroadcast 42 387 42 - 389: 367(ptr) AccessChain 34(data) 383 366 38 - 390: 27(int64_t) CompositeExtract 388 0 - Store 389 390 - 391: 367(ptr) AccessChain 34(data) 383 366 55 - 392: 27(int64_t) CompositeExtract 388 1 - Store 391 392 - 393: 367(ptr) AccessChain 34(data) 383 366 69 - 394: 27(int64_t) CompositeExtract 388 2 - Store 393 394 - 395: 6(int) Load 8(invocation) - 396: 374(ptr) AccessChain 34(data) 73 366 - 397: 28(i64vec4) Load 396 - 398: 28(i64vec4) GroupNonUniformBroadcast 42 397 42 - 399: 374(ptr) AccessChain 34(data) 395 366 - Store 399 398 - 400: 6(int) Load 8(invocation) - 401: 367(ptr) AccessChain 34(data) 37 366 38 - 402: 27(int64_t) Load 401 - 403: 27(int64_t) GroupNonUniformBroadcastFirst 42 402 - 404: 367(ptr) AccessChain 34(data) 400 366 38 - Store 404 403 - 405: 6(int) Load 8(invocation) - 406: 374(ptr) AccessChain 34(data) 46 366 - 407: 28(i64vec4) Load 406 - 408:373(i64vec2) VectorShuffle 407 407 0 1 - 409:373(i64vec2) GroupNonUniformBroadcastFirst 42 408 - 410: 367(ptr) AccessChain 34(data) 405 366 38 - 411: 27(int64_t) CompositeExtract 409 0 - Store 410 411 - 412: 367(ptr) AccessChain 34(data) 405 366 55 - 413: 27(int64_t) CompositeExtract 409 1 - Store 412 413 - 414: 6(int) Load 8(invocation) - 415: 374(ptr) AccessChain 34(data) 59 366 - 416: 28(i64vec4) Load 415 - 417:384(i64vec3) VectorShuffle 416 416 0 1 2 - 418:384(i64vec3) GroupNonUniformBroadcastFirst 42 417 - 419: 367(ptr) AccessChain 34(data) 414 366 38 - 420: 27(int64_t) CompositeExtract 418 0 - Store 419 420 - 421: 367(ptr) AccessChain 34(data) 414 366 55 - 422: 27(int64_t) CompositeExtract 418 1 - Store 421 422 - 423: 367(ptr) AccessChain 34(data) 414 366 69 - 424: 27(int64_t) CompositeExtract 418 2 - Store 423 424 - 425: 6(int) Load 8(invocation) - 426: 374(ptr) AccessChain 34(data) 73 366 - 427: 28(i64vec4) Load 426 - 428: 28(i64vec4) GroupNonUniformBroadcastFirst 42 427 - 429: 374(ptr) AccessChain 34(data) 425 366 - Store 429 428 - 430: 6(int) Load 8(invocation) - 433: 432(ptr) AccessChain 34(data) 37 431 38 - 434:29(float16_t) Load 433 - 435:29(float16_t) GroupNonUniformBroadcast 42 434 42 - 436: 432(ptr) AccessChain 34(data) 430 431 38 - Store 436 435 - 437: 6(int) Load 8(invocation) - 440: 439(ptr) AccessChain 34(data) 46 431 - 441: 30(f16vec4) Load 440 - 442:438(f16vec2) VectorShuffle 441 441 0 1 - 443:438(f16vec2) GroupNonUniformBroadcast 42 442 42 - 444: 432(ptr) AccessChain 34(data) 437 431 38 - 445:29(float16_t) CompositeExtract 443 0 - Store 444 445 - 446: 432(ptr) AccessChain 34(data) 437 431 55 - 447:29(float16_t) CompositeExtract 443 1 - Store 446 447 - 448: 6(int) Load 8(invocation) - 450: 439(ptr) AccessChain 34(data) 59 431 - 451: 30(f16vec4) Load 450 - 452:449(f16vec3) VectorShuffle 451 451 0 1 2 - 453:449(f16vec3) GroupNonUniformBroadcast 42 452 42 - 454: 432(ptr) AccessChain 34(data) 448 431 38 - 455:29(float16_t) CompositeExtract 453 0 - Store 454 455 - 456: 432(ptr) AccessChain 34(data) 448 431 55 - 457:29(float16_t) CompositeExtract 453 1 - Store 456 457 - 458: 432(ptr) AccessChain 34(data) 448 431 69 - 459:29(float16_t) CompositeExtract 453 2 - Store 458 459 - 460: 6(int) Load 8(invocation) - 461: 439(ptr) AccessChain 34(data) 73 431 - 462: 30(f16vec4) Load 461 - 463: 30(f16vec4) GroupNonUniformBroadcast 42 462 42 - 464: 439(ptr) AccessChain 34(data) 460 431 - Store 464 463 - 465: 6(int) Load 8(invocation) - 466: 432(ptr) AccessChain 34(data) 37 431 38 - 467:29(float16_t) Load 466 - 468:29(float16_t) GroupNonUniformBroadcastFirst 42 467 - 469: 432(ptr) AccessChain 34(data) 465 431 38 - Store 469 468 - 470: 6(int) Load 8(invocation) - 471: 439(ptr) AccessChain 34(data) 46 431 - 472: 30(f16vec4) Load 471 - 473:438(f16vec2) VectorShuffle 472 472 0 1 - 474:438(f16vec2) GroupNonUniformBroadcastFirst 42 473 - 475: 432(ptr) AccessChain 34(data) 470 431 38 - 476:29(float16_t) CompositeExtract 474 0 - Store 475 476 - 477: 432(ptr) AccessChain 34(data) 470 431 55 - 478:29(float16_t) CompositeExtract 474 1 - Store 477 478 - 479: 6(int) Load 8(invocation) - 480: 439(ptr) AccessChain 34(data) 59 431 - 481: 30(f16vec4) Load 480 - 482:449(f16vec3) VectorShuffle 481 481 0 1 2 - 483:449(f16vec3) GroupNonUniformBroadcastFirst 42 482 - 484: 432(ptr) AccessChain 34(data) 479 431 38 - 485:29(float16_t) CompositeExtract 483 0 - Store 484 485 - 486: 432(ptr) AccessChain 34(data) 479 431 55 - 487:29(float16_t) CompositeExtract 483 1 - Store 486 487 - 488: 432(ptr) AccessChain 34(data) 479 431 69 - 489:29(float16_t) CompositeExtract 483 2 - Store 488 489 - 490: 6(int) Load 8(invocation) - 491: 439(ptr) AccessChain 34(data) 73 431 - 492: 30(f16vec4) Load 491 - 493: 30(f16vec4) GroupNonUniformBroadcastFirst 42 492 - 494: 439(ptr) AccessChain 34(data) 490 431 - Store 494 493 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesBallotNeg.comp.out b/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesBallotNeg.comp.out deleted file mode 100644 index 534560d8..00000000 --- a/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesBallotNeg.comp.out +++ /dev/null @@ -1,61 +0,0 @@ -spv.subgroupExtendedTypesBallotNeg.comp -ERROR: 0:26: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:27: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:28: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:29: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:30: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:31: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:32: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:33: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:35: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:36: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:37: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:38: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:39: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:40: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:41: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:42: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:44: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:45: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:46: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:47: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:48: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:49: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:50: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:51: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:53: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:54: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:55: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:56: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:57: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:58: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:59: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:60: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:62: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:63: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:64: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:65: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:66: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:67: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:68: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:69: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:71: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:72: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:73: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:74: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:75: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:76: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:77: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:78: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:80: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:81: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:82: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:83: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:84: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:85: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:86: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:87: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 56 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesBasic.comp.out b/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesBasic.comp.out deleted file mode 100644 index 63196977..00000000 --- a/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesBasic.comp.out +++ /dev/null @@ -1,9 +0,0 @@ -spv.subgroupExtendedTypesBasic.comp -ERROR: #version: compute shaders require es profile with version 310 or above, or non-es profile with version 420 or above -ERROR: #version: statement must appear first in es-profile shader; before comments or newlines -ERROR: 1 compilation errors. No code generated. - - -ERROR: Linking compute stage: Missing entry point: Each stage requires one entry point - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesClustered.comp.out b/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesClustered.comp.out deleted file mode 100644 index 98a7a890..00000000 --- a/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesClustered.comp.out +++ /dev/null @@ -1,1843 +0,0 @@ -spv.subgroupExtendedTypesClustered.comp -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 1458 - - Capability Shader - Capability Float16 - Capability Int64 - Capability Int16 - Capability Int8 - Capability GroupNonUniform - Capability GroupNonUniformClustered - Capability StorageUniformBufferBlock16 - Capability StorageBuffer8BitAccess - Extension "SPV_KHR_8bit_storage" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 10 12 - ExecutionMode 4 LocalSize 8 1 1 - Source GLSL 450 - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int16" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int64" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int8" - SourceExtension "GL_EXT_shader_subgroup_extended_types_float16" - SourceExtension "GL_EXT_shader_subgroup_extended_types_int16" - SourceExtension "GL_EXT_shader_subgroup_extended_types_int64" - SourceExtension "GL_EXT_shader_subgroup_extended_types_int8" - SourceExtension "GL_KHR_shader_subgroup_basic" - SourceExtension "GL_KHR_shader_subgroup_clustered" - Name 4 "main" - Name 8 "invocation" - Name 10 "gl_SubgroupInvocationID" - Name 12 "gl_SubgroupSize" - Name 31 "Buffers" - MemberName 31(Buffers) 0 "i8" - MemberName 31(Buffers) 1 "u8" - MemberName 31(Buffers) 2 "i16" - MemberName 31(Buffers) 3 "u16" - MemberName 31(Buffers) 4 "i64" - MemberName 31(Buffers) 5 "u64" - MemberName 31(Buffers) 6 "f16" - Name 34 "data" - Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision - Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId - Decorate 11 RelaxedPrecision - Decorate 12(gl_SubgroupSize) RelaxedPrecision - Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize - Decorate 13 RelaxedPrecision - Decorate 14 RelaxedPrecision - Decorate 16 RelaxedPrecision - MemberDecorate 31(Buffers) 0 Offset 0 - MemberDecorate 31(Buffers) 1 Offset 4 - MemberDecorate 31(Buffers) 2 Offset 8 - MemberDecorate 31(Buffers) 3 Offset 16 - MemberDecorate 31(Buffers) 4 Offset 32 - MemberDecorate 31(Buffers) 5 Offset 64 - MemberDecorate 31(Buffers) 6 Offset 96 - Decorate 31(Buffers) Block - Decorate 34(data) DescriptorSet 0 - Decorate 34(data) Binding 0 - Decorate 1457 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypePointer Input 6(int) -10(gl_SubgroupInvocationID): 9(ptr) Variable Input -12(gl_SubgroupSize): 9(ptr) Variable Input - 15: 6(int) Constant 4 - 17: TypeInt 8 1 - 18: TypeVector 17(int8_t) 4 - 19: TypeInt 8 0 - 20: TypeVector 19(int8_t) 4 - 21: TypeInt 16 1 - 22: TypeVector 21(int16_t) 4 - 23: TypeInt 16 0 - 24: TypeVector 23(int16_t) 4 - 25: TypeInt 64 1 - 26: TypeVector 25(int64_t) 4 - 27: TypeInt 64 0 - 28: TypeVector 27(int64_t) 4 - 29: TypeFloat 16 - 30: TypeVector 29(float16_t) 4 - 31(Buffers): TypeStruct 18(i8vec4) 20(i8vec4) 22(i16vec4) 24(i16vec4) 26(i64vec4) 28(i64vec4) 30(f16vec4) - 32: TypeArray 31(Buffers) 15 - 33: TypePointer StorageBuffer 32 - 34(data): 33(ptr) Variable StorageBuffer - 36: TypeInt 32 1 - 37: 36(int) Constant 0 - 38: 6(int) Constant 0 - 39: TypePointer StorageBuffer 17(int8_t) - 42: 6(int) Constant 1 - 43: 6(int) Constant 3 - 47: 36(int) Constant 1 - 48: TypeVector 17(int8_t) 2 - 49: TypePointer StorageBuffer 18(i8vec4) - 59: 36(int) Constant 2 - 60: TypeVector 17(int8_t) 3 - 69: 6(int) Constant 2 - 73: 36(int) Constant 3 - 259: TypePointer StorageBuffer 19(int8_t) - 265: TypeVector 19(int8_t) 2 - 266: TypePointer StorageBuffer 20(i8vec4) - 276: TypeVector 19(int8_t) 3 - 473: TypePointer StorageBuffer 21(int16_t) - 479: TypeVector 21(int16_t) 2 - 480: TypePointer StorageBuffer 22(i16vec4) - 490: TypeVector 21(int16_t) 3 - 687: TypePointer StorageBuffer 23(int16_t) - 693: TypeVector 23(int16_t) 2 - 694: TypePointer StorageBuffer 24(i16vec4) - 704: TypeVector 23(int16_t) 3 - 901: 36(int) Constant 4 - 902: TypePointer StorageBuffer 25(int64_t) - 908: TypeVector 25(int64_t) 2 - 909: TypePointer StorageBuffer 26(i64vec4) - 919: TypeVector 25(int64_t) 3 - 1116: 36(int) Constant 5 - 1117: TypePointer StorageBuffer 27(int64_t) - 1123: TypeVector 27(int64_t) 2 - 1124: TypePointer StorageBuffer 28(i64vec4) - 1134: TypeVector 27(int64_t) 3 - 1331: 36(int) Constant 6 - 1332: TypePointer StorageBuffer 29(float16_t) - 1338: TypeVector 29(float16_t) 2 - 1339: TypePointer StorageBuffer 30(f16vec4) - 1349: TypeVector 29(float16_t) 3 - 1455: TypeVector 6(int) 3 - 1456: 6(int) Constant 8 - 1457: 1455(ivec3) ConstantComposite 1456 42 42 - 4(main): 2 Function None 3 - 5: Label - 8(invocation): 7(ptr) Variable Function - 11: 6(int) Load 10(gl_SubgroupInvocationID) - 13: 6(int) Load 12(gl_SubgroupSize) - 14: 6(int) IAdd 11 13 - 16: 6(int) UMod 14 15 - Store 8(invocation) 16 - 35: 6(int) Load 8(invocation) - 40: 39(ptr) AccessChain 34(data) 37 37 38 - 41: 17(int8_t) Load 40 - 44: 17(int8_t) GroupNonUniformIAdd 43 ClusteredReduce 41 42 - 45: 39(ptr) AccessChain 34(data) 35 37 38 - Store 45 44 - 46: 6(int) Load 8(invocation) - 50: 49(ptr) AccessChain 34(data) 47 37 - 51: 18(i8vec4) Load 50 - 52: 48(i8vec2) VectorShuffle 51 51 0 1 - 53: 48(i8vec2) GroupNonUniformIAdd 43 ClusteredReduce 52 42 - 54: 39(ptr) AccessChain 34(data) 46 37 38 - 55: 17(int8_t) CompositeExtract 53 0 - Store 54 55 - 56: 39(ptr) AccessChain 34(data) 46 37 42 - 57: 17(int8_t) CompositeExtract 53 1 - Store 56 57 - 58: 6(int) Load 8(invocation) - 61: 49(ptr) AccessChain 34(data) 59 37 - 62: 18(i8vec4) Load 61 - 63: 60(i8vec3) VectorShuffle 62 62 0 1 2 - 64: 60(i8vec3) GroupNonUniformIAdd 43 ClusteredReduce 63 42 - 65: 39(ptr) AccessChain 34(data) 58 37 38 - 66: 17(int8_t) CompositeExtract 64 0 - Store 65 66 - 67: 39(ptr) AccessChain 34(data) 58 37 42 - 68: 17(int8_t) CompositeExtract 64 1 - Store 67 68 - 70: 39(ptr) AccessChain 34(data) 58 37 69 - 71: 17(int8_t) CompositeExtract 64 2 - Store 70 71 - 72: 6(int) Load 8(invocation) - 74: 49(ptr) AccessChain 34(data) 73 37 - 75: 18(i8vec4) Load 74 - 76: 18(i8vec4) GroupNonUniformIAdd 43 ClusteredReduce 75 42 - 77: 49(ptr) AccessChain 34(data) 72 37 - Store 77 76 - 78: 6(int) Load 8(invocation) - 79: 39(ptr) AccessChain 34(data) 37 37 38 - 80: 17(int8_t) Load 79 - 81: 17(int8_t) GroupNonUniformIMul 43 ClusteredReduce 80 42 - 82: 39(ptr) AccessChain 34(data) 78 37 38 - Store 82 81 - 83: 6(int) Load 8(invocation) - 84: 49(ptr) AccessChain 34(data) 47 37 - 85: 18(i8vec4) Load 84 - 86: 48(i8vec2) VectorShuffle 85 85 0 1 - 87: 48(i8vec2) GroupNonUniformIMul 43 ClusteredReduce 86 42 - 88: 39(ptr) AccessChain 34(data) 83 37 38 - 89: 17(int8_t) CompositeExtract 87 0 - Store 88 89 - 90: 39(ptr) AccessChain 34(data) 83 37 42 - 91: 17(int8_t) CompositeExtract 87 1 - Store 90 91 - 92: 6(int) Load 8(invocation) - 93: 49(ptr) AccessChain 34(data) 59 37 - 94: 18(i8vec4) Load 93 - 95: 60(i8vec3) VectorShuffle 94 94 0 1 2 - 96: 60(i8vec3) GroupNonUniformIMul 43 ClusteredReduce 95 42 - 97: 39(ptr) AccessChain 34(data) 92 37 38 - 98: 17(int8_t) CompositeExtract 96 0 - Store 97 98 - 99: 39(ptr) AccessChain 34(data) 92 37 42 - 100: 17(int8_t) CompositeExtract 96 1 - Store 99 100 - 101: 39(ptr) AccessChain 34(data) 92 37 69 - 102: 17(int8_t) CompositeExtract 96 2 - Store 101 102 - 103: 6(int) Load 8(invocation) - 104: 49(ptr) AccessChain 34(data) 73 37 - 105: 18(i8vec4) Load 104 - 106: 18(i8vec4) GroupNonUniformIMul 43 ClusteredReduce 105 42 - 107: 49(ptr) AccessChain 34(data) 103 37 - Store 107 106 - 108: 6(int) Load 8(invocation) - 109: 39(ptr) AccessChain 34(data) 37 37 38 - 110: 17(int8_t) Load 109 - 111: 17(int8_t) GroupNonUniformSMin 43 ClusteredReduce 110 42 - 112: 39(ptr) AccessChain 34(data) 108 37 38 - Store 112 111 - 113: 6(int) Load 8(invocation) - 114: 49(ptr) AccessChain 34(data) 47 37 - 115: 18(i8vec4) Load 114 - 116: 48(i8vec2) VectorShuffle 115 115 0 1 - 117: 48(i8vec2) GroupNonUniformSMin 43 ClusteredReduce 116 42 - 118: 39(ptr) AccessChain 34(data) 113 37 38 - 119: 17(int8_t) CompositeExtract 117 0 - Store 118 119 - 120: 39(ptr) AccessChain 34(data) 113 37 42 - 121: 17(int8_t) CompositeExtract 117 1 - Store 120 121 - 122: 6(int) Load 8(invocation) - 123: 49(ptr) AccessChain 34(data) 59 37 - 124: 18(i8vec4) Load 123 - 125: 60(i8vec3) VectorShuffle 124 124 0 1 2 - 126: 60(i8vec3) GroupNonUniformSMin 43 ClusteredReduce 125 42 - 127: 39(ptr) AccessChain 34(data) 122 37 38 - 128: 17(int8_t) CompositeExtract 126 0 - Store 127 128 - 129: 39(ptr) AccessChain 34(data) 122 37 42 - 130: 17(int8_t) CompositeExtract 126 1 - Store 129 130 - 131: 39(ptr) AccessChain 34(data) 122 37 69 - 132: 17(int8_t) CompositeExtract 126 2 - Store 131 132 - 133: 6(int) Load 8(invocation) - 134: 49(ptr) AccessChain 34(data) 73 37 - 135: 18(i8vec4) Load 134 - 136: 18(i8vec4) GroupNonUniformSMin 43 ClusteredReduce 135 42 - 137: 49(ptr) AccessChain 34(data) 133 37 - Store 137 136 - 138: 6(int) Load 8(invocation) - 139: 39(ptr) AccessChain 34(data) 37 37 38 - 140: 17(int8_t) Load 139 - 141: 17(int8_t) GroupNonUniformSMax 43 ClusteredReduce 140 42 - 142: 39(ptr) AccessChain 34(data) 138 37 38 - Store 142 141 - 143: 6(int) Load 8(invocation) - 144: 49(ptr) AccessChain 34(data) 47 37 - 145: 18(i8vec4) Load 144 - 146: 48(i8vec2) VectorShuffle 145 145 0 1 - 147: 48(i8vec2) GroupNonUniformSMax 43 ClusteredReduce 146 42 - 148: 39(ptr) AccessChain 34(data) 143 37 38 - 149: 17(int8_t) CompositeExtract 147 0 - Store 148 149 - 150: 39(ptr) AccessChain 34(data) 143 37 42 - 151: 17(int8_t) CompositeExtract 147 1 - Store 150 151 - 152: 6(int) Load 8(invocation) - 153: 49(ptr) AccessChain 34(data) 59 37 - 154: 18(i8vec4) Load 153 - 155: 60(i8vec3) VectorShuffle 154 154 0 1 2 - 156: 60(i8vec3) GroupNonUniformSMax 43 ClusteredReduce 155 42 - 157: 39(ptr) AccessChain 34(data) 152 37 38 - 158: 17(int8_t) CompositeExtract 156 0 - Store 157 158 - 159: 39(ptr) AccessChain 34(data) 152 37 42 - 160: 17(int8_t) CompositeExtract 156 1 - Store 159 160 - 161: 39(ptr) AccessChain 34(data) 152 37 69 - 162: 17(int8_t) CompositeExtract 156 2 - Store 161 162 - 163: 6(int) Load 8(invocation) - 164: 49(ptr) AccessChain 34(data) 73 37 - 165: 18(i8vec4) Load 164 - 166: 18(i8vec4) GroupNonUniformSMax 43 ClusteredReduce 165 42 - 167: 49(ptr) AccessChain 34(data) 163 37 - Store 167 166 - 168: 6(int) Load 8(invocation) - 169: 39(ptr) AccessChain 34(data) 37 37 38 - 170: 17(int8_t) Load 169 - 171: 17(int8_t) GroupNonUniformBitwiseAnd 43 ClusteredReduce 170 42 - 172: 39(ptr) AccessChain 34(data) 168 37 38 - Store 172 171 - 173: 6(int) Load 8(invocation) - 174: 49(ptr) AccessChain 34(data) 47 37 - 175: 18(i8vec4) Load 174 - 176: 48(i8vec2) VectorShuffle 175 175 0 1 - 177: 48(i8vec2) GroupNonUniformBitwiseAnd 43 ClusteredReduce 176 42 - 178: 39(ptr) AccessChain 34(data) 173 37 38 - 179: 17(int8_t) CompositeExtract 177 0 - Store 178 179 - 180: 39(ptr) AccessChain 34(data) 173 37 42 - 181: 17(int8_t) CompositeExtract 177 1 - Store 180 181 - 182: 6(int) Load 8(invocation) - 183: 49(ptr) AccessChain 34(data) 59 37 - 184: 18(i8vec4) Load 183 - 185: 60(i8vec3) VectorShuffle 184 184 0 1 2 - 186: 60(i8vec3) GroupNonUniformBitwiseAnd 43 ClusteredReduce 185 42 - 187: 39(ptr) AccessChain 34(data) 182 37 38 - 188: 17(int8_t) CompositeExtract 186 0 - Store 187 188 - 189: 39(ptr) AccessChain 34(data) 182 37 42 - 190: 17(int8_t) CompositeExtract 186 1 - Store 189 190 - 191: 39(ptr) AccessChain 34(data) 182 37 69 - 192: 17(int8_t) CompositeExtract 186 2 - Store 191 192 - 193: 6(int) Load 8(invocation) - 194: 49(ptr) AccessChain 34(data) 73 37 - 195: 18(i8vec4) Load 194 - 196: 18(i8vec4) GroupNonUniformBitwiseAnd 43 ClusteredReduce 195 42 - 197: 49(ptr) AccessChain 34(data) 193 37 - Store 197 196 - 198: 6(int) Load 8(invocation) - 199: 39(ptr) AccessChain 34(data) 37 37 38 - 200: 17(int8_t) Load 199 - 201: 17(int8_t) GroupNonUniformBitwiseOr 43 ClusteredReduce 200 42 - 202: 39(ptr) AccessChain 34(data) 198 37 38 - Store 202 201 - 203: 6(int) Load 8(invocation) - 204: 49(ptr) AccessChain 34(data) 47 37 - 205: 18(i8vec4) Load 204 - 206: 48(i8vec2) VectorShuffle 205 205 0 1 - 207: 48(i8vec2) GroupNonUniformBitwiseOr 43 ClusteredReduce 206 42 - 208: 39(ptr) AccessChain 34(data) 203 37 38 - 209: 17(int8_t) CompositeExtract 207 0 - Store 208 209 - 210: 39(ptr) AccessChain 34(data) 203 37 42 - 211: 17(int8_t) CompositeExtract 207 1 - Store 210 211 - 212: 6(int) Load 8(invocation) - 213: 49(ptr) AccessChain 34(data) 59 37 - 214: 18(i8vec4) Load 213 - 215: 60(i8vec3) VectorShuffle 214 214 0 1 2 - 216: 60(i8vec3) GroupNonUniformBitwiseOr 43 ClusteredReduce 215 42 - 217: 39(ptr) AccessChain 34(data) 212 37 38 - 218: 17(int8_t) CompositeExtract 216 0 - Store 217 218 - 219: 39(ptr) AccessChain 34(data) 212 37 42 - 220: 17(int8_t) CompositeExtract 216 1 - Store 219 220 - 221: 39(ptr) AccessChain 34(data) 212 37 69 - 222: 17(int8_t) CompositeExtract 216 2 - Store 221 222 - 223: 6(int) Load 8(invocation) - 224: 49(ptr) AccessChain 34(data) 73 37 - 225: 18(i8vec4) Load 224 - 226: 18(i8vec4) GroupNonUniformBitwiseOr 43 ClusteredReduce 225 42 - 227: 49(ptr) AccessChain 34(data) 223 37 - Store 227 226 - 228: 6(int) Load 8(invocation) - 229: 39(ptr) AccessChain 34(data) 37 37 38 - 230: 17(int8_t) Load 229 - 231: 17(int8_t) GroupNonUniformBitwiseXor 43 ClusteredReduce 230 42 - 232: 39(ptr) AccessChain 34(data) 228 37 38 - Store 232 231 - 233: 6(int) Load 8(invocation) - 234: 49(ptr) AccessChain 34(data) 47 37 - 235: 18(i8vec4) Load 234 - 236: 48(i8vec2) VectorShuffle 235 235 0 1 - 237: 48(i8vec2) GroupNonUniformBitwiseXor 43 ClusteredReduce 236 42 - 238: 39(ptr) AccessChain 34(data) 233 37 38 - 239: 17(int8_t) CompositeExtract 237 0 - Store 238 239 - 240: 39(ptr) AccessChain 34(data) 233 37 42 - 241: 17(int8_t) CompositeExtract 237 1 - Store 240 241 - 242: 6(int) Load 8(invocation) - 243: 49(ptr) AccessChain 34(data) 59 37 - 244: 18(i8vec4) Load 243 - 245: 60(i8vec3) VectorShuffle 244 244 0 1 2 - 246: 60(i8vec3) GroupNonUniformBitwiseXor 43 ClusteredReduce 245 42 - 247: 39(ptr) AccessChain 34(data) 242 37 38 - 248: 17(int8_t) CompositeExtract 246 0 - Store 247 248 - 249: 39(ptr) AccessChain 34(data) 242 37 42 - 250: 17(int8_t) CompositeExtract 246 1 - Store 249 250 - 251: 39(ptr) AccessChain 34(data) 242 37 69 - 252: 17(int8_t) CompositeExtract 246 2 - Store 251 252 - 253: 6(int) Load 8(invocation) - 254: 49(ptr) AccessChain 34(data) 73 37 - 255: 18(i8vec4) Load 254 - 256: 18(i8vec4) GroupNonUniformBitwiseXor 43 ClusteredReduce 255 42 - 257: 49(ptr) AccessChain 34(data) 253 37 - Store 257 256 - 258: 6(int) Load 8(invocation) - 260: 259(ptr) AccessChain 34(data) 37 47 38 - 261: 19(int8_t) Load 260 - 262: 19(int8_t) GroupNonUniformIAdd 43 ClusteredReduce 261 42 - 263: 259(ptr) AccessChain 34(data) 258 47 38 - Store 263 262 - 264: 6(int) Load 8(invocation) - 267: 266(ptr) AccessChain 34(data) 47 47 - 268: 20(i8vec4) Load 267 - 269: 265(i8vec2) VectorShuffle 268 268 0 1 - 270: 265(i8vec2) GroupNonUniformIAdd 43 ClusteredReduce 269 42 - 271: 259(ptr) AccessChain 34(data) 264 47 38 - 272: 19(int8_t) CompositeExtract 270 0 - Store 271 272 - 273: 259(ptr) AccessChain 34(data) 264 47 42 - 274: 19(int8_t) CompositeExtract 270 1 - Store 273 274 - 275: 6(int) Load 8(invocation) - 277: 266(ptr) AccessChain 34(data) 59 47 - 278: 20(i8vec4) Load 277 - 279: 276(i8vec3) VectorShuffle 278 278 0 1 2 - 280: 276(i8vec3) GroupNonUniformIAdd 43 ClusteredReduce 279 42 - 281: 259(ptr) AccessChain 34(data) 275 47 38 - 282: 19(int8_t) CompositeExtract 280 0 - Store 281 282 - 283: 259(ptr) AccessChain 34(data) 275 47 42 - 284: 19(int8_t) CompositeExtract 280 1 - Store 283 284 - 285: 259(ptr) AccessChain 34(data) 275 47 69 - 286: 19(int8_t) CompositeExtract 280 2 - Store 285 286 - 287: 6(int) Load 8(invocation) - 288: 266(ptr) AccessChain 34(data) 73 47 - 289: 20(i8vec4) Load 288 - 290: 20(i8vec4) GroupNonUniformIAdd 43 ClusteredReduce 289 42 - 291: 266(ptr) AccessChain 34(data) 287 47 - Store 291 290 - 292: 6(int) Load 8(invocation) - 293: 259(ptr) AccessChain 34(data) 37 47 38 - 294: 19(int8_t) Load 293 - 295: 19(int8_t) GroupNonUniformIMul 43 ClusteredReduce 294 42 - 296: 259(ptr) AccessChain 34(data) 292 47 38 - Store 296 295 - 297: 6(int) Load 8(invocation) - 298: 266(ptr) AccessChain 34(data) 47 47 - 299: 20(i8vec4) Load 298 - 300: 265(i8vec2) VectorShuffle 299 299 0 1 - 301: 265(i8vec2) GroupNonUniformIMul 43 ClusteredReduce 300 42 - 302: 259(ptr) AccessChain 34(data) 297 47 38 - 303: 19(int8_t) CompositeExtract 301 0 - Store 302 303 - 304: 259(ptr) AccessChain 34(data) 297 47 42 - 305: 19(int8_t) CompositeExtract 301 1 - Store 304 305 - 306: 6(int) Load 8(invocation) - 307: 266(ptr) AccessChain 34(data) 59 47 - 308: 20(i8vec4) Load 307 - 309: 276(i8vec3) VectorShuffle 308 308 0 1 2 - 310: 276(i8vec3) GroupNonUniformIMul 43 ClusteredReduce 309 42 - 311: 259(ptr) AccessChain 34(data) 306 47 38 - 312: 19(int8_t) CompositeExtract 310 0 - Store 311 312 - 313: 259(ptr) AccessChain 34(data) 306 47 42 - 314: 19(int8_t) CompositeExtract 310 1 - Store 313 314 - 315: 259(ptr) AccessChain 34(data) 306 47 69 - 316: 19(int8_t) CompositeExtract 310 2 - Store 315 316 - 317: 6(int) Load 8(invocation) - 318: 266(ptr) AccessChain 34(data) 73 47 - 319: 20(i8vec4) Load 318 - 320: 20(i8vec4) GroupNonUniformIMul 43 ClusteredReduce 319 42 - 321: 266(ptr) AccessChain 34(data) 317 47 - Store 321 320 - 322: 6(int) Load 8(invocation) - 323: 259(ptr) AccessChain 34(data) 37 47 38 - 324: 19(int8_t) Load 323 - 325: 19(int8_t) GroupNonUniformUMin 43 ClusteredReduce 324 42 - 326: 259(ptr) AccessChain 34(data) 322 47 38 - Store 326 325 - 327: 6(int) Load 8(invocation) - 328: 266(ptr) AccessChain 34(data) 47 47 - 329: 20(i8vec4) Load 328 - 330: 265(i8vec2) VectorShuffle 329 329 0 1 - 331: 265(i8vec2) GroupNonUniformUMin 43 ClusteredReduce 330 42 - 332: 259(ptr) AccessChain 34(data) 327 47 38 - 333: 19(int8_t) CompositeExtract 331 0 - Store 332 333 - 334: 259(ptr) AccessChain 34(data) 327 47 42 - 335: 19(int8_t) CompositeExtract 331 1 - Store 334 335 - 336: 6(int) Load 8(invocation) - 337: 266(ptr) AccessChain 34(data) 59 47 - 338: 20(i8vec4) Load 337 - 339: 276(i8vec3) VectorShuffle 338 338 0 1 2 - 340: 276(i8vec3) GroupNonUniformUMin 43 ClusteredReduce 339 42 - 341: 259(ptr) AccessChain 34(data) 336 47 38 - 342: 19(int8_t) CompositeExtract 340 0 - Store 341 342 - 343: 259(ptr) AccessChain 34(data) 336 47 42 - 344: 19(int8_t) CompositeExtract 340 1 - Store 343 344 - 345: 259(ptr) AccessChain 34(data) 336 47 69 - 346: 19(int8_t) CompositeExtract 340 2 - Store 345 346 - 347: 6(int) Load 8(invocation) - 348: 266(ptr) AccessChain 34(data) 73 47 - 349: 20(i8vec4) Load 348 - 350: 20(i8vec4) GroupNonUniformUMin 43 ClusteredReduce 349 42 - 351: 266(ptr) AccessChain 34(data) 347 47 - Store 351 350 - 352: 6(int) Load 8(invocation) - 353: 259(ptr) AccessChain 34(data) 37 47 38 - 354: 19(int8_t) Load 353 - 355: 19(int8_t) GroupNonUniformUMax 43 ClusteredReduce 354 42 - 356: 259(ptr) AccessChain 34(data) 352 47 38 - Store 356 355 - 357: 6(int) Load 8(invocation) - 358: 266(ptr) AccessChain 34(data) 47 47 - 359: 20(i8vec4) Load 358 - 360: 265(i8vec2) VectorShuffle 359 359 0 1 - 361: 265(i8vec2) GroupNonUniformUMax 43 ClusteredReduce 360 42 - 362: 259(ptr) AccessChain 34(data) 357 47 38 - 363: 19(int8_t) CompositeExtract 361 0 - Store 362 363 - 364: 259(ptr) AccessChain 34(data) 357 47 42 - 365: 19(int8_t) CompositeExtract 361 1 - Store 364 365 - 366: 6(int) Load 8(invocation) - 367: 266(ptr) AccessChain 34(data) 59 47 - 368: 20(i8vec4) Load 367 - 369: 276(i8vec3) VectorShuffle 368 368 0 1 2 - 370: 276(i8vec3) GroupNonUniformUMax 43 ClusteredReduce 369 42 - 371: 259(ptr) AccessChain 34(data) 366 47 38 - 372: 19(int8_t) CompositeExtract 370 0 - Store 371 372 - 373: 259(ptr) AccessChain 34(data) 366 47 42 - 374: 19(int8_t) CompositeExtract 370 1 - Store 373 374 - 375: 259(ptr) AccessChain 34(data) 366 47 69 - 376: 19(int8_t) CompositeExtract 370 2 - Store 375 376 - 377: 6(int) Load 8(invocation) - 378: 266(ptr) AccessChain 34(data) 73 47 - 379: 20(i8vec4) Load 378 - 380: 20(i8vec4) GroupNonUniformUMax 43 ClusteredReduce 379 42 - 381: 266(ptr) AccessChain 34(data) 377 47 - Store 381 380 - 382: 6(int) Load 8(invocation) - 383: 259(ptr) AccessChain 34(data) 37 47 38 - 384: 19(int8_t) Load 383 - 385: 19(int8_t) GroupNonUniformBitwiseAnd 43 ClusteredReduce 384 42 - 386: 259(ptr) AccessChain 34(data) 382 47 38 - Store 386 385 - 387: 6(int) Load 8(invocation) - 388: 266(ptr) AccessChain 34(data) 47 47 - 389: 20(i8vec4) Load 388 - 390: 265(i8vec2) VectorShuffle 389 389 0 1 - 391: 265(i8vec2) GroupNonUniformBitwiseAnd 43 ClusteredReduce 390 42 - 392: 259(ptr) AccessChain 34(data) 387 47 38 - 393: 19(int8_t) CompositeExtract 391 0 - Store 392 393 - 394: 259(ptr) AccessChain 34(data) 387 47 42 - 395: 19(int8_t) CompositeExtract 391 1 - Store 394 395 - 396: 6(int) Load 8(invocation) - 397: 266(ptr) AccessChain 34(data) 59 47 - 398: 20(i8vec4) Load 397 - 399: 276(i8vec3) VectorShuffle 398 398 0 1 2 - 400: 276(i8vec3) GroupNonUniformBitwiseAnd 43 ClusteredReduce 399 42 - 401: 259(ptr) AccessChain 34(data) 396 47 38 - 402: 19(int8_t) CompositeExtract 400 0 - Store 401 402 - 403: 259(ptr) AccessChain 34(data) 396 47 42 - 404: 19(int8_t) CompositeExtract 400 1 - Store 403 404 - 405: 259(ptr) AccessChain 34(data) 396 47 69 - 406: 19(int8_t) CompositeExtract 400 2 - Store 405 406 - 407: 6(int) Load 8(invocation) - 408: 266(ptr) AccessChain 34(data) 73 47 - 409: 20(i8vec4) Load 408 - 410: 20(i8vec4) GroupNonUniformBitwiseAnd 43 ClusteredReduce 409 42 - 411: 266(ptr) AccessChain 34(data) 407 47 - Store 411 410 - 412: 6(int) Load 8(invocation) - 413: 259(ptr) AccessChain 34(data) 37 47 38 - 414: 19(int8_t) Load 413 - 415: 19(int8_t) GroupNonUniformBitwiseOr 43 ClusteredReduce 414 42 - 416: 259(ptr) AccessChain 34(data) 412 47 38 - Store 416 415 - 417: 6(int) Load 8(invocation) - 418: 266(ptr) AccessChain 34(data) 47 47 - 419: 20(i8vec4) Load 418 - 420: 265(i8vec2) VectorShuffle 419 419 0 1 - 421: 265(i8vec2) GroupNonUniformBitwiseOr 43 ClusteredReduce 420 42 - 422: 259(ptr) AccessChain 34(data) 417 47 38 - 423: 19(int8_t) CompositeExtract 421 0 - Store 422 423 - 424: 259(ptr) AccessChain 34(data) 417 47 42 - 425: 19(int8_t) CompositeExtract 421 1 - Store 424 425 - 426: 6(int) Load 8(invocation) - 427: 266(ptr) AccessChain 34(data) 59 47 - 428: 20(i8vec4) Load 427 - 429: 276(i8vec3) VectorShuffle 428 428 0 1 2 - 430: 276(i8vec3) GroupNonUniformBitwiseOr 43 ClusteredReduce 429 42 - 431: 259(ptr) AccessChain 34(data) 426 47 38 - 432: 19(int8_t) CompositeExtract 430 0 - Store 431 432 - 433: 259(ptr) AccessChain 34(data) 426 47 42 - 434: 19(int8_t) CompositeExtract 430 1 - Store 433 434 - 435: 259(ptr) AccessChain 34(data) 426 47 69 - 436: 19(int8_t) CompositeExtract 430 2 - Store 435 436 - 437: 6(int) Load 8(invocation) - 438: 266(ptr) AccessChain 34(data) 73 47 - 439: 20(i8vec4) Load 438 - 440: 20(i8vec4) GroupNonUniformBitwiseOr 43 ClusteredReduce 439 42 - 441: 266(ptr) AccessChain 34(data) 437 47 - Store 441 440 - 442: 6(int) Load 8(invocation) - 443: 259(ptr) AccessChain 34(data) 37 47 38 - 444: 19(int8_t) Load 443 - 445: 19(int8_t) GroupNonUniformBitwiseXor 43 ClusteredReduce 444 42 - 446: 259(ptr) AccessChain 34(data) 442 47 38 - Store 446 445 - 447: 6(int) Load 8(invocation) - 448: 266(ptr) AccessChain 34(data) 47 47 - 449: 20(i8vec4) Load 448 - 450: 265(i8vec2) VectorShuffle 449 449 0 1 - 451: 265(i8vec2) GroupNonUniformBitwiseXor 43 ClusteredReduce 450 42 - 452: 259(ptr) AccessChain 34(data) 447 47 38 - 453: 19(int8_t) CompositeExtract 451 0 - Store 452 453 - 454: 259(ptr) AccessChain 34(data) 447 47 42 - 455: 19(int8_t) CompositeExtract 451 1 - Store 454 455 - 456: 6(int) Load 8(invocation) - 457: 266(ptr) AccessChain 34(data) 59 47 - 458: 20(i8vec4) Load 457 - 459: 276(i8vec3) VectorShuffle 458 458 0 1 2 - 460: 276(i8vec3) GroupNonUniformBitwiseXor 43 ClusteredReduce 459 42 - 461: 259(ptr) AccessChain 34(data) 456 47 38 - 462: 19(int8_t) CompositeExtract 460 0 - Store 461 462 - 463: 259(ptr) AccessChain 34(data) 456 47 42 - 464: 19(int8_t) CompositeExtract 460 1 - Store 463 464 - 465: 259(ptr) AccessChain 34(data) 456 47 69 - 466: 19(int8_t) CompositeExtract 460 2 - Store 465 466 - 467: 6(int) Load 8(invocation) - 468: 266(ptr) AccessChain 34(data) 73 47 - 469: 20(i8vec4) Load 468 - 470: 20(i8vec4) GroupNonUniformBitwiseXor 43 ClusteredReduce 469 42 - 471: 266(ptr) AccessChain 34(data) 467 47 - Store 471 470 - 472: 6(int) Load 8(invocation) - 474: 473(ptr) AccessChain 34(data) 37 59 38 - 475: 21(int16_t) Load 474 - 476: 21(int16_t) GroupNonUniformIAdd 43 ClusteredReduce 475 42 - 477: 473(ptr) AccessChain 34(data) 472 59 38 - Store 477 476 - 478: 6(int) Load 8(invocation) - 481: 480(ptr) AccessChain 34(data) 47 59 - 482: 22(i16vec4) Load 481 - 483:479(i16vec2) VectorShuffle 482 482 0 1 - 484:479(i16vec2) GroupNonUniformIAdd 43 ClusteredReduce 483 42 - 485: 473(ptr) AccessChain 34(data) 478 59 38 - 486: 21(int16_t) CompositeExtract 484 0 - Store 485 486 - 487: 473(ptr) AccessChain 34(data) 478 59 42 - 488: 21(int16_t) CompositeExtract 484 1 - Store 487 488 - 489: 6(int) Load 8(invocation) - 491: 480(ptr) AccessChain 34(data) 59 59 - 492: 22(i16vec4) Load 491 - 493:490(i16vec3) VectorShuffle 492 492 0 1 2 - 494:490(i16vec3) GroupNonUniformIAdd 43 ClusteredReduce 493 42 - 495: 473(ptr) AccessChain 34(data) 489 59 38 - 496: 21(int16_t) CompositeExtract 494 0 - Store 495 496 - 497: 473(ptr) AccessChain 34(data) 489 59 42 - 498: 21(int16_t) CompositeExtract 494 1 - Store 497 498 - 499: 473(ptr) AccessChain 34(data) 489 59 69 - 500: 21(int16_t) CompositeExtract 494 2 - Store 499 500 - 501: 6(int) Load 8(invocation) - 502: 480(ptr) AccessChain 34(data) 73 59 - 503: 22(i16vec4) Load 502 - 504: 22(i16vec4) GroupNonUniformIAdd 43 ClusteredReduce 503 42 - 505: 480(ptr) AccessChain 34(data) 501 59 - Store 505 504 - 506: 6(int) Load 8(invocation) - 507: 473(ptr) AccessChain 34(data) 37 59 38 - 508: 21(int16_t) Load 507 - 509: 21(int16_t) GroupNonUniformIMul 43 ClusteredReduce 508 42 - 510: 473(ptr) AccessChain 34(data) 506 59 38 - Store 510 509 - 511: 6(int) Load 8(invocation) - 512: 480(ptr) AccessChain 34(data) 47 59 - 513: 22(i16vec4) Load 512 - 514:479(i16vec2) VectorShuffle 513 513 0 1 - 515:479(i16vec2) GroupNonUniformIMul 43 ClusteredReduce 514 42 - 516: 473(ptr) AccessChain 34(data) 511 59 38 - 517: 21(int16_t) CompositeExtract 515 0 - Store 516 517 - 518: 473(ptr) AccessChain 34(data) 511 59 42 - 519: 21(int16_t) CompositeExtract 515 1 - Store 518 519 - 520: 6(int) Load 8(invocation) - 521: 480(ptr) AccessChain 34(data) 59 59 - 522: 22(i16vec4) Load 521 - 523:490(i16vec3) VectorShuffle 522 522 0 1 2 - 524:490(i16vec3) GroupNonUniformIMul 43 ClusteredReduce 523 42 - 525: 473(ptr) AccessChain 34(data) 520 59 38 - 526: 21(int16_t) CompositeExtract 524 0 - Store 525 526 - 527: 473(ptr) AccessChain 34(data) 520 59 42 - 528: 21(int16_t) CompositeExtract 524 1 - Store 527 528 - 529: 473(ptr) AccessChain 34(data) 520 59 69 - 530: 21(int16_t) CompositeExtract 524 2 - Store 529 530 - 531: 6(int) Load 8(invocation) - 532: 480(ptr) AccessChain 34(data) 73 59 - 533: 22(i16vec4) Load 532 - 534: 22(i16vec4) GroupNonUniformIMul 43 ClusteredReduce 533 42 - 535: 480(ptr) AccessChain 34(data) 531 59 - Store 535 534 - 536: 6(int) Load 8(invocation) - 537: 473(ptr) AccessChain 34(data) 37 59 38 - 538: 21(int16_t) Load 537 - 539: 21(int16_t) GroupNonUniformSMin 43 ClusteredReduce 538 42 - 540: 473(ptr) AccessChain 34(data) 536 59 38 - Store 540 539 - 541: 6(int) Load 8(invocation) - 542: 480(ptr) AccessChain 34(data) 47 59 - 543: 22(i16vec4) Load 542 - 544:479(i16vec2) VectorShuffle 543 543 0 1 - 545:479(i16vec2) GroupNonUniformSMin 43 ClusteredReduce 544 42 - 546: 473(ptr) AccessChain 34(data) 541 59 38 - 547: 21(int16_t) CompositeExtract 545 0 - Store 546 547 - 548: 473(ptr) AccessChain 34(data) 541 59 42 - 549: 21(int16_t) CompositeExtract 545 1 - Store 548 549 - 550: 6(int) Load 8(invocation) - 551: 480(ptr) AccessChain 34(data) 59 59 - 552: 22(i16vec4) Load 551 - 553:490(i16vec3) VectorShuffle 552 552 0 1 2 - 554:490(i16vec3) GroupNonUniformSMin 43 ClusteredReduce 553 42 - 555: 473(ptr) AccessChain 34(data) 550 59 38 - 556: 21(int16_t) CompositeExtract 554 0 - Store 555 556 - 557: 473(ptr) AccessChain 34(data) 550 59 42 - 558: 21(int16_t) CompositeExtract 554 1 - Store 557 558 - 559: 473(ptr) AccessChain 34(data) 550 59 69 - 560: 21(int16_t) CompositeExtract 554 2 - Store 559 560 - 561: 6(int) Load 8(invocation) - 562: 480(ptr) AccessChain 34(data) 73 59 - 563: 22(i16vec4) Load 562 - 564: 22(i16vec4) GroupNonUniformSMin 43 ClusteredReduce 563 42 - 565: 480(ptr) AccessChain 34(data) 561 59 - Store 565 564 - 566: 6(int) Load 8(invocation) - 567: 473(ptr) AccessChain 34(data) 37 59 38 - 568: 21(int16_t) Load 567 - 569: 21(int16_t) GroupNonUniformSMax 43 ClusteredReduce 568 42 - 570: 473(ptr) AccessChain 34(data) 566 59 38 - Store 570 569 - 571: 6(int) Load 8(invocation) - 572: 480(ptr) AccessChain 34(data) 47 59 - 573: 22(i16vec4) Load 572 - 574:479(i16vec2) VectorShuffle 573 573 0 1 - 575:479(i16vec2) GroupNonUniformSMax 43 ClusteredReduce 574 42 - 576: 473(ptr) AccessChain 34(data) 571 59 38 - 577: 21(int16_t) CompositeExtract 575 0 - Store 576 577 - 578: 473(ptr) AccessChain 34(data) 571 59 42 - 579: 21(int16_t) CompositeExtract 575 1 - Store 578 579 - 580: 6(int) Load 8(invocation) - 581: 480(ptr) AccessChain 34(data) 59 59 - 582: 22(i16vec4) Load 581 - 583:490(i16vec3) VectorShuffle 582 582 0 1 2 - 584:490(i16vec3) GroupNonUniformSMax 43 ClusteredReduce 583 42 - 585: 473(ptr) AccessChain 34(data) 580 59 38 - 586: 21(int16_t) CompositeExtract 584 0 - Store 585 586 - 587: 473(ptr) AccessChain 34(data) 580 59 42 - 588: 21(int16_t) CompositeExtract 584 1 - Store 587 588 - 589: 473(ptr) AccessChain 34(data) 580 59 69 - 590: 21(int16_t) CompositeExtract 584 2 - Store 589 590 - 591: 6(int) Load 8(invocation) - 592: 480(ptr) AccessChain 34(data) 73 59 - 593: 22(i16vec4) Load 592 - 594: 22(i16vec4) GroupNonUniformSMax 43 ClusteredReduce 593 42 - 595: 480(ptr) AccessChain 34(data) 591 59 - Store 595 594 - 596: 6(int) Load 8(invocation) - 597: 473(ptr) AccessChain 34(data) 37 59 38 - 598: 21(int16_t) Load 597 - 599: 21(int16_t) GroupNonUniformBitwiseAnd 43 ClusteredReduce 598 42 - 600: 473(ptr) AccessChain 34(data) 596 59 38 - Store 600 599 - 601: 6(int) Load 8(invocation) - 602: 480(ptr) AccessChain 34(data) 47 59 - 603: 22(i16vec4) Load 602 - 604:479(i16vec2) VectorShuffle 603 603 0 1 - 605:479(i16vec2) GroupNonUniformBitwiseAnd 43 ClusteredReduce 604 42 - 606: 473(ptr) AccessChain 34(data) 601 59 38 - 607: 21(int16_t) CompositeExtract 605 0 - Store 606 607 - 608: 473(ptr) AccessChain 34(data) 601 59 42 - 609: 21(int16_t) CompositeExtract 605 1 - Store 608 609 - 610: 6(int) Load 8(invocation) - 611: 480(ptr) AccessChain 34(data) 59 59 - 612: 22(i16vec4) Load 611 - 613:490(i16vec3) VectorShuffle 612 612 0 1 2 - 614:490(i16vec3) GroupNonUniformBitwiseAnd 43 ClusteredReduce 613 42 - 615: 473(ptr) AccessChain 34(data) 610 59 38 - 616: 21(int16_t) CompositeExtract 614 0 - Store 615 616 - 617: 473(ptr) AccessChain 34(data) 610 59 42 - 618: 21(int16_t) CompositeExtract 614 1 - Store 617 618 - 619: 473(ptr) AccessChain 34(data) 610 59 69 - 620: 21(int16_t) CompositeExtract 614 2 - Store 619 620 - 621: 6(int) Load 8(invocation) - 622: 480(ptr) AccessChain 34(data) 73 59 - 623: 22(i16vec4) Load 622 - 624: 22(i16vec4) GroupNonUniformBitwiseAnd 43 ClusteredReduce 623 42 - 625: 480(ptr) AccessChain 34(data) 621 59 - Store 625 624 - 626: 6(int) Load 8(invocation) - 627: 473(ptr) AccessChain 34(data) 37 59 38 - 628: 21(int16_t) Load 627 - 629: 21(int16_t) GroupNonUniformBitwiseOr 43 ClusteredReduce 628 42 - 630: 473(ptr) AccessChain 34(data) 626 59 38 - Store 630 629 - 631: 6(int) Load 8(invocation) - 632: 480(ptr) AccessChain 34(data) 47 59 - 633: 22(i16vec4) Load 632 - 634:479(i16vec2) VectorShuffle 633 633 0 1 - 635:479(i16vec2) GroupNonUniformBitwiseOr 43 ClusteredReduce 634 42 - 636: 473(ptr) AccessChain 34(data) 631 59 38 - 637: 21(int16_t) CompositeExtract 635 0 - Store 636 637 - 638: 473(ptr) AccessChain 34(data) 631 59 42 - 639: 21(int16_t) CompositeExtract 635 1 - Store 638 639 - 640: 6(int) Load 8(invocation) - 641: 480(ptr) AccessChain 34(data) 59 59 - 642: 22(i16vec4) Load 641 - 643:490(i16vec3) VectorShuffle 642 642 0 1 2 - 644:490(i16vec3) GroupNonUniformBitwiseOr 43 ClusteredReduce 643 42 - 645: 473(ptr) AccessChain 34(data) 640 59 38 - 646: 21(int16_t) CompositeExtract 644 0 - Store 645 646 - 647: 473(ptr) AccessChain 34(data) 640 59 42 - 648: 21(int16_t) CompositeExtract 644 1 - Store 647 648 - 649: 473(ptr) AccessChain 34(data) 640 59 69 - 650: 21(int16_t) CompositeExtract 644 2 - Store 649 650 - 651: 6(int) Load 8(invocation) - 652: 480(ptr) AccessChain 34(data) 73 59 - 653: 22(i16vec4) Load 652 - 654: 22(i16vec4) GroupNonUniformBitwiseOr 43 ClusteredReduce 653 42 - 655: 480(ptr) AccessChain 34(data) 651 59 - Store 655 654 - 656: 6(int) Load 8(invocation) - 657: 473(ptr) AccessChain 34(data) 37 59 38 - 658: 21(int16_t) Load 657 - 659: 21(int16_t) GroupNonUniformBitwiseXor 43 ClusteredReduce 658 42 - 660: 473(ptr) AccessChain 34(data) 656 59 38 - Store 660 659 - 661: 6(int) Load 8(invocation) - 662: 480(ptr) AccessChain 34(data) 47 59 - 663: 22(i16vec4) Load 662 - 664:479(i16vec2) VectorShuffle 663 663 0 1 - 665:479(i16vec2) GroupNonUniformBitwiseXor 43 ClusteredReduce 664 42 - 666: 473(ptr) AccessChain 34(data) 661 59 38 - 667: 21(int16_t) CompositeExtract 665 0 - Store 666 667 - 668: 473(ptr) AccessChain 34(data) 661 59 42 - 669: 21(int16_t) CompositeExtract 665 1 - Store 668 669 - 670: 6(int) Load 8(invocation) - 671: 480(ptr) AccessChain 34(data) 59 59 - 672: 22(i16vec4) Load 671 - 673:490(i16vec3) VectorShuffle 672 672 0 1 2 - 674:490(i16vec3) GroupNonUniformBitwiseXor 43 ClusteredReduce 673 42 - 675: 473(ptr) AccessChain 34(data) 670 59 38 - 676: 21(int16_t) CompositeExtract 674 0 - Store 675 676 - 677: 473(ptr) AccessChain 34(data) 670 59 42 - 678: 21(int16_t) CompositeExtract 674 1 - Store 677 678 - 679: 473(ptr) AccessChain 34(data) 670 59 69 - 680: 21(int16_t) CompositeExtract 674 2 - Store 679 680 - 681: 6(int) Load 8(invocation) - 682: 480(ptr) AccessChain 34(data) 73 59 - 683: 22(i16vec4) Load 682 - 684: 22(i16vec4) GroupNonUniformBitwiseXor 43 ClusteredReduce 683 42 - 685: 480(ptr) AccessChain 34(data) 681 59 - Store 685 684 - 686: 6(int) Load 8(invocation) - 688: 687(ptr) AccessChain 34(data) 37 73 38 - 689: 23(int16_t) Load 688 - 690: 23(int16_t) GroupNonUniformIAdd 43 ClusteredReduce 689 42 - 691: 687(ptr) AccessChain 34(data) 686 73 38 - Store 691 690 - 692: 6(int) Load 8(invocation) - 695: 694(ptr) AccessChain 34(data) 47 73 - 696: 24(i16vec4) Load 695 - 697:693(i16vec2) VectorShuffle 696 696 0 1 - 698:693(i16vec2) GroupNonUniformIAdd 43 ClusteredReduce 697 42 - 699: 687(ptr) AccessChain 34(data) 692 73 38 - 700: 23(int16_t) CompositeExtract 698 0 - Store 699 700 - 701: 687(ptr) AccessChain 34(data) 692 73 42 - 702: 23(int16_t) CompositeExtract 698 1 - Store 701 702 - 703: 6(int) Load 8(invocation) - 705: 694(ptr) AccessChain 34(data) 59 73 - 706: 24(i16vec4) Load 705 - 707:704(i16vec3) VectorShuffle 706 706 0 1 2 - 708:704(i16vec3) GroupNonUniformIAdd 43 ClusteredReduce 707 42 - 709: 687(ptr) AccessChain 34(data) 703 73 38 - 710: 23(int16_t) CompositeExtract 708 0 - Store 709 710 - 711: 687(ptr) AccessChain 34(data) 703 73 42 - 712: 23(int16_t) CompositeExtract 708 1 - Store 711 712 - 713: 687(ptr) AccessChain 34(data) 703 73 69 - 714: 23(int16_t) CompositeExtract 708 2 - Store 713 714 - 715: 6(int) Load 8(invocation) - 716: 694(ptr) AccessChain 34(data) 73 73 - 717: 24(i16vec4) Load 716 - 718: 24(i16vec4) GroupNonUniformIAdd 43 ClusteredReduce 717 42 - 719: 694(ptr) AccessChain 34(data) 715 73 - Store 719 718 - 720: 6(int) Load 8(invocation) - 721: 687(ptr) AccessChain 34(data) 37 73 38 - 722: 23(int16_t) Load 721 - 723: 23(int16_t) GroupNonUniformIMul 43 ClusteredReduce 722 42 - 724: 687(ptr) AccessChain 34(data) 720 73 38 - Store 724 723 - 725: 6(int) Load 8(invocation) - 726: 694(ptr) AccessChain 34(data) 47 73 - 727: 24(i16vec4) Load 726 - 728:693(i16vec2) VectorShuffle 727 727 0 1 - 729:693(i16vec2) GroupNonUniformIMul 43 ClusteredReduce 728 42 - 730: 687(ptr) AccessChain 34(data) 725 73 38 - 731: 23(int16_t) CompositeExtract 729 0 - Store 730 731 - 732: 687(ptr) AccessChain 34(data) 725 73 42 - 733: 23(int16_t) CompositeExtract 729 1 - Store 732 733 - 734: 6(int) Load 8(invocation) - 735: 694(ptr) AccessChain 34(data) 59 73 - 736: 24(i16vec4) Load 735 - 737:704(i16vec3) VectorShuffle 736 736 0 1 2 - 738:704(i16vec3) GroupNonUniformIMul 43 ClusteredReduce 737 42 - 739: 687(ptr) AccessChain 34(data) 734 73 38 - 740: 23(int16_t) CompositeExtract 738 0 - Store 739 740 - 741: 687(ptr) AccessChain 34(data) 734 73 42 - 742: 23(int16_t) CompositeExtract 738 1 - Store 741 742 - 743: 687(ptr) AccessChain 34(data) 734 73 69 - 744: 23(int16_t) CompositeExtract 738 2 - Store 743 744 - 745: 6(int) Load 8(invocation) - 746: 694(ptr) AccessChain 34(data) 73 73 - 747: 24(i16vec4) Load 746 - 748: 24(i16vec4) GroupNonUniformIMul 43 ClusteredReduce 747 42 - 749: 694(ptr) AccessChain 34(data) 745 73 - Store 749 748 - 750: 6(int) Load 8(invocation) - 751: 687(ptr) AccessChain 34(data) 37 73 38 - 752: 23(int16_t) Load 751 - 753: 23(int16_t) GroupNonUniformUMin 43 ClusteredReduce 752 42 - 754: 687(ptr) AccessChain 34(data) 750 73 38 - Store 754 753 - 755: 6(int) Load 8(invocation) - 756: 694(ptr) AccessChain 34(data) 47 73 - 757: 24(i16vec4) Load 756 - 758:693(i16vec2) VectorShuffle 757 757 0 1 - 759:693(i16vec2) GroupNonUniformUMin 43 ClusteredReduce 758 42 - 760: 687(ptr) AccessChain 34(data) 755 73 38 - 761: 23(int16_t) CompositeExtract 759 0 - Store 760 761 - 762: 687(ptr) AccessChain 34(data) 755 73 42 - 763: 23(int16_t) CompositeExtract 759 1 - Store 762 763 - 764: 6(int) Load 8(invocation) - 765: 694(ptr) AccessChain 34(data) 59 73 - 766: 24(i16vec4) Load 765 - 767:704(i16vec3) VectorShuffle 766 766 0 1 2 - 768:704(i16vec3) GroupNonUniformUMin 43 ClusteredReduce 767 42 - 769: 687(ptr) AccessChain 34(data) 764 73 38 - 770: 23(int16_t) CompositeExtract 768 0 - Store 769 770 - 771: 687(ptr) AccessChain 34(data) 764 73 42 - 772: 23(int16_t) CompositeExtract 768 1 - Store 771 772 - 773: 687(ptr) AccessChain 34(data) 764 73 69 - 774: 23(int16_t) CompositeExtract 768 2 - Store 773 774 - 775: 6(int) Load 8(invocation) - 776: 694(ptr) AccessChain 34(data) 73 73 - 777: 24(i16vec4) Load 776 - 778: 24(i16vec4) GroupNonUniformUMin 43 ClusteredReduce 777 42 - 779: 694(ptr) AccessChain 34(data) 775 73 - Store 779 778 - 780: 6(int) Load 8(invocation) - 781: 687(ptr) AccessChain 34(data) 37 73 38 - 782: 23(int16_t) Load 781 - 783: 23(int16_t) GroupNonUniformUMax 43 ClusteredReduce 782 42 - 784: 687(ptr) AccessChain 34(data) 780 73 38 - Store 784 783 - 785: 6(int) Load 8(invocation) - 786: 694(ptr) AccessChain 34(data) 47 73 - 787: 24(i16vec4) Load 786 - 788:693(i16vec2) VectorShuffle 787 787 0 1 - 789:693(i16vec2) GroupNonUniformUMax 43 ClusteredReduce 788 42 - 790: 687(ptr) AccessChain 34(data) 785 73 38 - 791: 23(int16_t) CompositeExtract 789 0 - Store 790 791 - 792: 687(ptr) AccessChain 34(data) 785 73 42 - 793: 23(int16_t) CompositeExtract 789 1 - Store 792 793 - 794: 6(int) Load 8(invocation) - 795: 694(ptr) AccessChain 34(data) 59 73 - 796: 24(i16vec4) Load 795 - 797:704(i16vec3) VectorShuffle 796 796 0 1 2 - 798:704(i16vec3) GroupNonUniformUMax 43 ClusteredReduce 797 42 - 799: 687(ptr) AccessChain 34(data) 794 73 38 - 800: 23(int16_t) CompositeExtract 798 0 - Store 799 800 - 801: 687(ptr) AccessChain 34(data) 794 73 42 - 802: 23(int16_t) CompositeExtract 798 1 - Store 801 802 - 803: 687(ptr) AccessChain 34(data) 794 73 69 - 804: 23(int16_t) CompositeExtract 798 2 - Store 803 804 - 805: 6(int) Load 8(invocation) - 806: 694(ptr) AccessChain 34(data) 73 73 - 807: 24(i16vec4) Load 806 - 808: 24(i16vec4) GroupNonUniformUMax 43 ClusteredReduce 807 42 - 809: 694(ptr) AccessChain 34(data) 805 73 - Store 809 808 - 810: 6(int) Load 8(invocation) - 811: 687(ptr) AccessChain 34(data) 37 73 38 - 812: 23(int16_t) Load 811 - 813: 23(int16_t) GroupNonUniformBitwiseAnd 43 ClusteredReduce 812 42 - 814: 687(ptr) AccessChain 34(data) 810 73 38 - Store 814 813 - 815: 6(int) Load 8(invocation) - 816: 694(ptr) AccessChain 34(data) 47 73 - 817: 24(i16vec4) Load 816 - 818:693(i16vec2) VectorShuffle 817 817 0 1 - 819:693(i16vec2) GroupNonUniformBitwiseAnd 43 ClusteredReduce 818 42 - 820: 687(ptr) AccessChain 34(data) 815 73 38 - 821: 23(int16_t) CompositeExtract 819 0 - Store 820 821 - 822: 687(ptr) AccessChain 34(data) 815 73 42 - 823: 23(int16_t) CompositeExtract 819 1 - Store 822 823 - 824: 6(int) Load 8(invocation) - 825: 694(ptr) AccessChain 34(data) 59 73 - 826: 24(i16vec4) Load 825 - 827:704(i16vec3) VectorShuffle 826 826 0 1 2 - 828:704(i16vec3) GroupNonUniformBitwiseAnd 43 ClusteredReduce 827 42 - 829: 687(ptr) AccessChain 34(data) 824 73 38 - 830: 23(int16_t) CompositeExtract 828 0 - Store 829 830 - 831: 687(ptr) AccessChain 34(data) 824 73 42 - 832: 23(int16_t) CompositeExtract 828 1 - Store 831 832 - 833: 687(ptr) AccessChain 34(data) 824 73 69 - 834: 23(int16_t) CompositeExtract 828 2 - Store 833 834 - 835: 6(int) Load 8(invocation) - 836: 694(ptr) AccessChain 34(data) 73 73 - 837: 24(i16vec4) Load 836 - 838: 24(i16vec4) GroupNonUniformBitwiseAnd 43 ClusteredReduce 837 42 - 839: 694(ptr) AccessChain 34(data) 835 73 - Store 839 838 - 840: 6(int) Load 8(invocation) - 841: 687(ptr) AccessChain 34(data) 37 73 38 - 842: 23(int16_t) Load 841 - 843: 23(int16_t) GroupNonUniformBitwiseOr 43 ClusteredReduce 842 42 - 844: 687(ptr) AccessChain 34(data) 840 73 38 - Store 844 843 - 845: 6(int) Load 8(invocation) - 846: 694(ptr) AccessChain 34(data) 47 73 - 847: 24(i16vec4) Load 846 - 848:693(i16vec2) VectorShuffle 847 847 0 1 - 849:693(i16vec2) GroupNonUniformBitwiseOr 43 ClusteredReduce 848 42 - 850: 687(ptr) AccessChain 34(data) 845 73 38 - 851: 23(int16_t) CompositeExtract 849 0 - Store 850 851 - 852: 687(ptr) AccessChain 34(data) 845 73 42 - 853: 23(int16_t) CompositeExtract 849 1 - Store 852 853 - 854: 6(int) Load 8(invocation) - 855: 694(ptr) AccessChain 34(data) 59 73 - 856: 24(i16vec4) Load 855 - 857:704(i16vec3) VectorShuffle 856 856 0 1 2 - 858:704(i16vec3) GroupNonUniformBitwiseOr 43 ClusteredReduce 857 42 - 859: 687(ptr) AccessChain 34(data) 854 73 38 - 860: 23(int16_t) CompositeExtract 858 0 - Store 859 860 - 861: 687(ptr) AccessChain 34(data) 854 73 42 - 862: 23(int16_t) CompositeExtract 858 1 - Store 861 862 - 863: 687(ptr) AccessChain 34(data) 854 73 69 - 864: 23(int16_t) CompositeExtract 858 2 - Store 863 864 - 865: 6(int) Load 8(invocation) - 866: 694(ptr) AccessChain 34(data) 73 73 - 867: 24(i16vec4) Load 866 - 868: 24(i16vec4) GroupNonUniformBitwiseOr 43 ClusteredReduce 867 42 - 869: 694(ptr) AccessChain 34(data) 865 73 - Store 869 868 - 870: 6(int) Load 8(invocation) - 871: 687(ptr) AccessChain 34(data) 37 73 38 - 872: 23(int16_t) Load 871 - 873: 23(int16_t) GroupNonUniformBitwiseXor 43 ClusteredReduce 872 42 - 874: 687(ptr) AccessChain 34(data) 870 73 38 - Store 874 873 - 875: 6(int) Load 8(invocation) - 876: 694(ptr) AccessChain 34(data) 47 73 - 877: 24(i16vec4) Load 876 - 878:693(i16vec2) VectorShuffle 877 877 0 1 - 879:693(i16vec2) GroupNonUniformBitwiseXor 43 ClusteredReduce 878 42 - 880: 687(ptr) AccessChain 34(data) 875 73 38 - 881: 23(int16_t) CompositeExtract 879 0 - Store 880 881 - 882: 687(ptr) AccessChain 34(data) 875 73 42 - 883: 23(int16_t) CompositeExtract 879 1 - Store 882 883 - 884: 6(int) Load 8(invocation) - 885: 694(ptr) AccessChain 34(data) 59 73 - 886: 24(i16vec4) Load 885 - 887:704(i16vec3) VectorShuffle 886 886 0 1 2 - 888:704(i16vec3) GroupNonUniformBitwiseXor 43 ClusteredReduce 887 42 - 889: 687(ptr) AccessChain 34(data) 884 73 38 - 890: 23(int16_t) CompositeExtract 888 0 - Store 889 890 - 891: 687(ptr) AccessChain 34(data) 884 73 42 - 892: 23(int16_t) CompositeExtract 888 1 - Store 891 892 - 893: 687(ptr) AccessChain 34(data) 884 73 69 - 894: 23(int16_t) CompositeExtract 888 2 - Store 893 894 - 895: 6(int) Load 8(invocation) - 896: 694(ptr) AccessChain 34(data) 73 73 - 897: 24(i16vec4) Load 896 - 898: 24(i16vec4) GroupNonUniformBitwiseXor 43 ClusteredReduce 897 42 - 899: 694(ptr) AccessChain 34(data) 895 73 - Store 899 898 - 900: 6(int) Load 8(invocation) - 903: 902(ptr) AccessChain 34(data) 37 901 38 - 904: 25(int64_t) Load 903 - 905: 25(int64_t) GroupNonUniformIAdd 43 ClusteredReduce 904 42 - 906: 902(ptr) AccessChain 34(data) 900 901 38 - Store 906 905 - 907: 6(int) Load 8(invocation) - 910: 909(ptr) AccessChain 34(data) 47 901 - 911: 26(i64vec4) Load 910 - 912:908(i64vec2) VectorShuffle 911 911 0 1 - 913:908(i64vec2) GroupNonUniformIAdd 43 ClusteredReduce 912 42 - 914: 902(ptr) AccessChain 34(data) 907 901 38 - 915: 25(int64_t) CompositeExtract 913 0 - Store 914 915 - 916: 902(ptr) AccessChain 34(data) 907 901 42 - 917: 25(int64_t) CompositeExtract 913 1 - Store 916 917 - 918: 6(int) Load 8(invocation) - 920: 909(ptr) AccessChain 34(data) 59 901 - 921: 26(i64vec4) Load 920 - 922:919(i64vec3) VectorShuffle 921 921 0 1 2 - 923:919(i64vec3) GroupNonUniformIAdd 43 ClusteredReduce 922 42 - 924: 902(ptr) AccessChain 34(data) 918 901 38 - 925: 25(int64_t) CompositeExtract 923 0 - Store 924 925 - 926: 902(ptr) AccessChain 34(data) 918 901 42 - 927: 25(int64_t) CompositeExtract 923 1 - Store 926 927 - 928: 902(ptr) AccessChain 34(data) 918 901 69 - 929: 25(int64_t) CompositeExtract 923 2 - Store 928 929 - 930: 6(int) Load 8(invocation) - 931: 909(ptr) AccessChain 34(data) 73 901 - 932: 26(i64vec4) Load 931 - 933: 26(i64vec4) GroupNonUniformIAdd 43 ClusteredReduce 932 42 - 934: 909(ptr) AccessChain 34(data) 930 901 - Store 934 933 - 935: 6(int) Load 8(invocation) - 936: 902(ptr) AccessChain 34(data) 37 901 38 - 937: 25(int64_t) Load 936 - 938: 25(int64_t) GroupNonUniformIMul 43 ClusteredReduce 937 42 - 939: 902(ptr) AccessChain 34(data) 935 901 38 - Store 939 938 - 940: 6(int) Load 8(invocation) - 941: 909(ptr) AccessChain 34(data) 47 901 - 942: 26(i64vec4) Load 941 - 943:908(i64vec2) VectorShuffle 942 942 0 1 - 944:908(i64vec2) GroupNonUniformIMul 43 ClusteredReduce 943 42 - 945: 902(ptr) AccessChain 34(data) 940 901 38 - 946: 25(int64_t) CompositeExtract 944 0 - Store 945 946 - 947: 902(ptr) AccessChain 34(data) 940 901 42 - 948: 25(int64_t) CompositeExtract 944 1 - Store 947 948 - 949: 6(int) Load 8(invocation) - 950: 909(ptr) AccessChain 34(data) 59 901 - 951: 26(i64vec4) Load 950 - 952:919(i64vec3) VectorShuffle 951 951 0 1 2 - 953:919(i64vec3) GroupNonUniformIMul 43 ClusteredReduce 952 42 - 954: 902(ptr) AccessChain 34(data) 949 901 38 - 955: 25(int64_t) CompositeExtract 953 0 - Store 954 955 - 956: 902(ptr) AccessChain 34(data) 949 901 42 - 957: 25(int64_t) CompositeExtract 953 1 - Store 956 957 - 958: 902(ptr) AccessChain 34(data) 949 901 69 - 959: 25(int64_t) CompositeExtract 953 2 - Store 958 959 - 960: 6(int) Load 8(invocation) - 961: 909(ptr) AccessChain 34(data) 73 901 - 962: 26(i64vec4) Load 961 - 963: 26(i64vec4) GroupNonUniformIMul 43 ClusteredReduce 962 42 - 964: 909(ptr) AccessChain 34(data) 960 901 - Store 964 963 - 965: 6(int) Load 8(invocation) - 966: 902(ptr) AccessChain 34(data) 37 901 38 - 967: 25(int64_t) Load 966 - 968: 25(int64_t) GroupNonUniformSMin 43 ClusteredReduce 967 42 - 969: 902(ptr) AccessChain 34(data) 965 901 38 - Store 969 968 - 970: 6(int) Load 8(invocation) - 971: 909(ptr) AccessChain 34(data) 47 901 - 972: 26(i64vec4) Load 971 - 973:908(i64vec2) VectorShuffle 972 972 0 1 - 974:908(i64vec2) GroupNonUniformSMin 43 ClusteredReduce 973 42 - 975: 902(ptr) AccessChain 34(data) 970 901 38 - 976: 25(int64_t) CompositeExtract 974 0 - Store 975 976 - 977: 902(ptr) AccessChain 34(data) 970 901 42 - 978: 25(int64_t) CompositeExtract 974 1 - Store 977 978 - 979: 6(int) Load 8(invocation) - 980: 909(ptr) AccessChain 34(data) 59 901 - 981: 26(i64vec4) Load 980 - 982:919(i64vec3) VectorShuffle 981 981 0 1 2 - 983:919(i64vec3) GroupNonUniformSMin 43 ClusteredReduce 982 42 - 984: 902(ptr) AccessChain 34(data) 979 901 38 - 985: 25(int64_t) CompositeExtract 983 0 - Store 984 985 - 986: 902(ptr) AccessChain 34(data) 979 901 42 - 987: 25(int64_t) CompositeExtract 983 1 - Store 986 987 - 988: 902(ptr) AccessChain 34(data) 979 901 69 - 989: 25(int64_t) CompositeExtract 983 2 - Store 988 989 - 990: 6(int) Load 8(invocation) - 991: 909(ptr) AccessChain 34(data) 73 901 - 992: 26(i64vec4) Load 991 - 993: 26(i64vec4) GroupNonUniformSMin 43 ClusteredReduce 992 42 - 994: 909(ptr) AccessChain 34(data) 990 901 - Store 994 993 - 995: 6(int) Load 8(invocation) - 996: 902(ptr) AccessChain 34(data) 37 901 38 - 997: 25(int64_t) Load 996 - 998: 25(int64_t) GroupNonUniformSMax 43 ClusteredReduce 997 42 - 999: 902(ptr) AccessChain 34(data) 995 901 38 - Store 999 998 - 1000: 6(int) Load 8(invocation) - 1001: 909(ptr) AccessChain 34(data) 47 901 - 1002: 26(i64vec4) Load 1001 - 1003:908(i64vec2) VectorShuffle 1002 1002 0 1 - 1004:908(i64vec2) GroupNonUniformSMax 43 ClusteredReduce 1003 42 - 1005: 902(ptr) AccessChain 34(data) 1000 901 38 - 1006: 25(int64_t) CompositeExtract 1004 0 - Store 1005 1006 - 1007: 902(ptr) AccessChain 34(data) 1000 901 42 - 1008: 25(int64_t) CompositeExtract 1004 1 - Store 1007 1008 - 1009: 6(int) Load 8(invocation) - 1010: 909(ptr) AccessChain 34(data) 59 901 - 1011: 26(i64vec4) Load 1010 - 1012:919(i64vec3) VectorShuffle 1011 1011 0 1 2 - 1013:919(i64vec3) GroupNonUniformSMax 43 ClusteredReduce 1012 42 - 1014: 902(ptr) AccessChain 34(data) 1009 901 38 - 1015: 25(int64_t) CompositeExtract 1013 0 - Store 1014 1015 - 1016: 902(ptr) AccessChain 34(data) 1009 901 42 - 1017: 25(int64_t) CompositeExtract 1013 1 - Store 1016 1017 - 1018: 902(ptr) AccessChain 34(data) 1009 901 69 - 1019: 25(int64_t) CompositeExtract 1013 2 - Store 1018 1019 - 1020: 6(int) Load 8(invocation) - 1021: 909(ptr) AccessChain 34(data) 73 901 - 1022: 26(i64vec4) Load 1021 - 1023: 26(i64vec4) GroupNonUniformSMax 43 ClusteredReduce 1022 42 - 1024: 909(ptr) AccessChain 34(data) 1020 901 - Store 1024 1023 - 1025: 6(int) Load 8(invocation) - 1026: 902(ptr) AccessChain 34(data) 37 901 38 - 1027: 25(int64_t) Load 1026 - 1028: 25(int64_t) GroupNonUniformBitwiseAnd 43 ClusteredReduce 1027 42 - 1029: 902(ptr) AccessChain 34(data) 1025 901 38 - Store 1029 1028 - 1030: 6(int) Load 8(invocation) - 1031: 909(ptr) AccessChain 34(data) 47 901 - 1032: 26(i64vec4) Load 1031 - 1033:908(i64vec2) VectorShuffle 1032 1032 0 1 - 1034:908(i64vec2) GroupNonUniformBitwiseAnd 43 ClusteredReduce 1033 42 - 1035: 902(ptr) AccessChain 34(data) 1030 901 38 - 1036: 25(int64_t) CompositeExtract 1034 0 - Store 1035 1036 - 1037: 902(ptr) AccessChain 34(data) 1030 901 42 - 1038: 25(int64_t) CompositeExtract 1034 1 - Store 1037 1038 - 1039: 6(int) Load 8(invocation) - 1040: 909(ptr) AccessChain 34(data) 59 901 - 1041: 26(i64vec4) Load 1040 - 1042:919(i64vec3) VectorShuffle 1041 1041 0 1 2 - 1043:919(i64vec3) GroupNonUniformBitwiseAnd 43 ClusteredReduce 1042 42 - 1044: 902(ptr) AccessChain 34(data) 1039 901 38 - 1045: 25(int64_t) CompositeExtract 1043 0 - Store 1044 1045 - 1046: 902(ptr) AccessChain 34(data) 1039 901 42 - 1047: 25(int64_t) CompositeExtract 1043 1 - Store 1046 1047 - 1048: 902(ptr) AccessChain 34(data) 1039 901 69 - 1049: 25(int64_t) CompositeExtract 1043 2 - Store 1048 1049 - 1050: 6(int) Load 8(invocation) - 1051: 909(ptr) AccessChain 34(data) 73 901 - 1052: 26(i64vec4) Load 1051 - 1053: 26(i64vec4) GroupNonUniformBitwiseAnd 43 ClusteredReduce 1052 42 - 1054: 909(ptr) AccessChain 34(data) 1050 901 - Store 1054 1053 - 1055: 6(int) Load 8(invocation) - 1056: 902(ptr) AccessChain 34(data) 37 901 38 - 1057: 25(int64_t) Load 1056 - 1058: 25(int64_t) GroupNonUniformBitwiseOr 43 ClusteredReduce 1057 42 - 1059: 902(ptr) AccessChain 34(data) 1055 901 38 - Store 1059 1058 - 1060: 6(int) Load 8(invocation) - 1061: 909(ptr) AccessChain 34(data) 47 901 - 1062: 26(i64vec4) Load 1061 - 1063:908(i64vec2) VectorShuffle 1062 1062 0 1 - 1064:908(i64vec2) GroupNonUniformBitwiseOr 43 ClusteredReduce 1063 42 - 1065: 902(ptr) AccessChain 34(data) 1060 901 38 - 1066: 25(int64_t) CompositeExtract 1064 0 - Store 1065 1066 - 1067: 902(ptr) AccessChain 34(data) 1060 901 42 - 1068: 25(int64_t) CompositeExtract 1064 1 - Store 1067 1068 - 1069: 6(int) Load 8(invocation) - 1070: 909(ptr) AccessChain 34(data) 59 901 - 1071: 26(i64vec4) Load 1070 - 1072:919(i64vec3) VectorShuffle 1071 1071 0 1 2 - 1073:919(i64vec3) GroupNonUniformBitwiseOr 43 ClusteredReduce 1072 42 - 1074: 902(ptr) AccessChain 34(data) 1069 901 38 - 1075: 25(int64_t) CompositeExtract 1073 0 - Store 1074 1075 - 1076: 902(ptr) AccessChain 34(data) 1069 901 42 - 1077: 25(int64_t) CompositeExtract 1073 1 - Store 1076 1077 - 1078: 902(ptr) AccessChain 34(data) 1069 901 69 - 1079: 25(int64_t) CompositeExtract 1073 2 - Store 1078 1079 - 1080: 6(int) Load 8(invocation) - 1081: 909(ptr) AccessChain 34(data) 73 901 - 1082: 26(i64vec4) Load 1081 - 1083: 26(i64vec4) GroupNonUniformBitwiseOr 43 ClusteredReduce 1082 42 - 1084: 909(ptr) AccessChain 34(data) 1080 901 - Store 1084 1083 - 1085: 6(int) Load 8(invocation) - 1086: 902(ptr) AccessChain 34(data) 37 901 38 - 1087: 25(int64_t) Load 1086 - 1088: 25(int64_t) GroupNonUniformBitwiseXor 43 ClusteredReduce 1087 42 - 1089: 902(ptr) AccessChain 34(data) 1085 901 38 - Store 1089 1088 - 1090: 6(int) Load 8(invocation) - 1091: 909(ptr) AccessChain 34(data) 47 901 - 1092: 26(i64vec4) Load 1091 - 1093:908(i64vec2) VectorShuffle 1092 1092 0 1 - 1094:908(i64vec2) GroupNonUniformBitwiseXor 43 ClusteredReduce 1093 42 - 1095: 902(ptr) AccessChain 34(data) 1090 901 38 - 1096: 25(int64_t) CompositeExtract 1094 0 - Store 1095 1096 - 1097: 902(ptr) AccessChain 34(data) 1090 901 42 - 1098: 25(int64_t) CompositeExtract 1094 1 - Store 1097 1098 - 1099: 6(int) Load 8(invocation) - 1100: 909(ptr) AccessChain 34(data) 59 901 - 1101: 26(i64vec4) Load 1100 - 1102:919(i64vec3) VectorShuffle 1101 1101 0 1 2 - 1103:919(i64vec3) GroupNonUniformBitwiseXor 43 ClusteredReduce 1102 42 - 1104: 902(ptr) AccessChain 34(data) 1099 901 38 - 1105: 25(int64_t) CompositeExtract 1103 0 - Store 1104 1105 - 1106: 902(ptr) AccessChain 34(data) 1099 901 42 - 1107: 25(int64_t) CompositeExtract 1103 1 - Store 1106 1107 - 1108: 902(ptr) AccessChain 34(data) 1099 901 69 - 1109: 25(int64_t) CompositeExtract 1103 2 - Store 1108 1109 - 1110: 6(int) Load 8(invocation) - 1111: 909(ptr) AccessChain 34(data) 73 901 - 1112: 26(i64vec4) Load 1111 - 1113: 26(i64vec4) GroupNonUniformBitwiseXor 43 ClusteredReduce 1112 42 - 1114: 909(ptr) AccessChain 34(data) 1110 901 - Store 1114 1113 - 1115: 6(int) Load 8(invocation) - 1118: 1117(ptr) AccessChain 34(data) 37 1116 38 - 1119: 27(int64_t) Load 1118 - 1120: 27(int64_t) GroupNonUniformIAdd 43 ClusteredReduce 1119 42 - 1121: 1117(ptr) AccessChain 34(data) 1115 1116 38 - Store 1121 1120 - 1122: 6(int) Load 8(invocation) - 1125: 1124(ptr) AccessChain 34(data) 47 1116 - 1126: 28(i64vec4) Load 1125 - 1127:1123(i64vec2) VectorShuffle 1126 1126 0 1 - 1128:1123(i64vec2) GroupNonUniformIAdd 43 ClusteredReduce 1127 42 - 1129: 1117(ptr) AccessChain 34(data) 1122 1116 38 - 1130: 27(int64_t) CompositeExtract 1128 0 - Store 1129 1130 - 1131: 1117(ptr) AccessChain 34(data) 1122 1116 42 - 1132: 27(int64_t) CompositeExtract 1128 1 - Store 1131 1132 - 1133: 6(int) Load 8(invocation) - 1135: 1124(ptr) AccessChain 34(data) 59 1116 - 1136: 28(i64vec4) Load 1135 - 1137:1134(i64vec3) VectorShuffle 1136 1136 0 1 2 - 1138:1134(i64vec3) GroupNonUniformIAdd 43 ClusteredReduce 1137 42 - 1139: 1117(ptr) AccessChain 34(data) 1133 1116 38 - 1140: 27(int64_t) CompositeExtract 1138 0 - Store 1139 1140 - 1141: 1117(ptr) AccessChain 34(data) 1133 1116 42 - 1142: 27(int64_t) CompositeExtract 1138 1 - Store 1141 1142 - 1143: 1117(ptr) AccessChain 34(data) 1133 1116 69 - 1144: 27(int64_t) CompositeExtract 1138 2 - Store 1143 1144 - 1145: 6(int) Load 8(invocation) - 1146: 1124(ptr) AccessChain 34(data) 73 1116 - 1147: 28(i64vec4) Load 1146 - 1148: 28(i64vec4) GroupNonUniformIAdd 43 ClusteredReduce 1147 42 - 1149: 1124(ptr) AccessChain 34(data) 1145 1116 - Store 1149 1148 - 1150: 6(int) Load 8(invocation) - 1151: 1117(ptr) AccessChain 34(data) 37 1116 38 - 1152: 27(int64_t) Load 1151 - 1153: 27(int64_t) GroupNonUniformIMul 43 ClusteredReduce 1152 42 - 1154: 1117(ptr) AccessChain 34(data) 1150 1116 38 - Store 1154 1153 - 1155: 6(int) Load 8(invocation) - 1156: 1124(ptr) AccessChain 34(data) 47 1116 - 1157: 28(i64vec4) Load 1156 - 1158:1123(i64vec2) VectorShuffle 1157 1157 0 1 - 1159:1123(i64vec2) GroupNonUniformIMul 43 ClusteredReduce 1158 42 - 1160: 1117(ptr) AccessChain 34(data) 1155 1116 38 - 1161: 27(int64_t) CompositeExtract 1159 0 - Store 1160 1161 - 1162: 1117(ptr) AccessChain 34(data) 1155 1116 42 - 1163: 27(int64_t) CompositeExtract 1159 1 - Store 1162 1163 - 1164: 6(int) Load 8(invocation) - 1165: 1124(ptr) AccessChain 34(data) 59 1116 - 1166: 28(i64vec4) Load 1165 - 1167:1134(i64vec3) VectorShuffle 1166 1166 0 1 2 - 1168:1134(i64vec3) GroupNonUniformIMul 43 ClusteredReduce 1167 42 - 1169: 1117(ptr) AccessChain 34(data) 1164 1116 38 - 1170: 27(int64_t) CompositeExtract 1168 0 - Store 1169 1170 - 1171: 1117(ptr) AccessChain 34(data) 1164 1116 42 - 1172: 27(int64_t) CompositeExtract 1168 1 - Store 1171 1172 - 1173: 1117(ptr) AccessChain 34(data) 1164 1116 69 - 1174: 27(int64_t) CompositeExtract 1168 2 - Store 1173 1174 - 1175: 6(int) Load 8(invocation) - 1176: 1124(ptr) AccessChain 34(data) 73 1116 - 1177: 28(i64vec4) Load 1176 - 1178: 28(i64vec4) GroupNonUniformIMul 43 ClusteredReduce 1177 42 - 1179: 1124(ptr) AccessChain 34(data) 1175 1116 - Store 1179 1178 - 1180: 6(int) Load 8(invocation) - 1181: 1117(ptr) AccessChain 34(data) 37 1116 38 - 1182: 27(int64_t) Load 1181 - 1183: 27(int64_t) GroupNonUniformUMin 43 ClusteredReduce 1182 42 - 1184: 1117(ptr) AccessChain 34(data) 1180 1116 38 - Store 1184 1183 - 1185: 6(int) Load 8(invocation) - 1186: 1124(ptr) AccessChain 34(data) 47 1116 - 1187: 28(i64vec4) Load 1186 - 1188:1123(i64vec2) VectorShuffle 1187 1187 0 1 - 1189:1123(i64vec2) GroupNonUniformUMin 43 ClusteredReduce 1188 42 - 1190: 1117(ptr) AccessChain 34(data) 1185 1116 38 - 1191: 27(int64_t) CompositeExtract 1189 0 - Store 1190 1191 - 1192: 1117(ptr) AccessChain 34(data) 1185 1116 42 - 1193: 27(int64_t) CompositeExtract 1189 1 - Store 1192 1193 - 1194: 6(int) Load 8(invocation) - 1195: 1124(ptr) AccessChain 34(data) 59 1116 - 1196: 28(i64vec4) Load 1195 - 1197:1134(i64vec3) VectorShuffle 1196 1196 0 1 2 - 1198:1134(i64vec3) GroupNonUniformUMin 43 ClusteredReduce 1197 42 - 1199: 1117(ptr) AccessChain 34(data) 1194 1116 38 - 1200: 27(int64_t) CompositeExtract 1198 0 - Store 1199 1200 - 1201: 1117(ptr) AccessChain 34(data) 1194 1116 42 - 1202: 27(int64_t) CompositeExtract 1198 1 - Store 1201 1202 - 1203: 1117(ptr) AccessChain 34(data) 1194 1116 69 - 1204: 27(int64_t) CompositeExtract 1198 2 - Store 1203 1204 - 1205: 6(int) Load 8(invocation) - 1206: 1124(ptr) AccessChain 34(data) 73 1116 - 1207: 28(i64vec4) Load 1206 - 1208: 28(i64vec4) GroupNonUniformUMin 43 ClusteredReduce 1207 42 - 1209: 1124(ptr) AccessChain 34(data) 1205 1116 - Store 1209 1208 - 1210: 6(int) Load 8(invocation) - 1211: 1117(ptr) AccessChain 34(data) 37 1116 38 - 1212: 27(int64_t) Load 1211 - 1213: 27(int64_t) GroupNonUniformUMax 43 ClusteredReduce 1212 42 - 1214: 1117(ptr) AccessChain 34(data) 1210 1116 38 - Store 1214 1213 - 1215: 6(int) Load 8(invocation) - 1216: 1124(ptr) AccessChain 34(data) 47 1116 - 1217: 28(i64vec4) Load 1216 - 1218:1123(i64vec2) VectorShuffle 1217 1217 0 1 - 1219:1123(i64vec2) GroupNonUniformUMax 43 ClusteredReduce 1218 42 - 1220: 1117(ptr) AccessChain 34(data) 1215 1116 38 - 1221: 27(int64_t) CompositeExtract 1219 0 - Store 1220 1221 - 1222: 1117(ptr) AccessChain 34(data) 1215 1116 42 - 1223: 27(int64_t) CompositeExtract 1219 1 - Store 1222 1223 - 1224: 6(int) Load 8(invocation) - 1225: 1124(ptr) AccessChain 34(data) 59 1116 - 1226: 28(i64vec4) Load 1225 - 1227:1134(i64vec3) VectorShuffle 1226 1226 0 1 2 - 1228:1134(i64vec3) GroupNonUniformUMax 43 ClusteredReduce 1227 42 - 1229: 1117(ptr) AccessChain 34(data) 1224 1116 38 - 1230: 27(int64_t) CompositeExtract 1228 0 - Store 1229 1230 - 1231: 1117(ptr) AccessChain 34(data) 1224 1116 42 - 1232: 27(int64_t) CompositeExtract 1228 1 - Store 1231 1232 - 1233: 1117(ptr) AccessChain 34(data) 1224 1116 69 - 1234: 27(int64_t) CompositeExtract 1228 2 - Store 1233 1234 - 1235: 6(int) Load 8(invocation) - 1236: 1124(ptr) AccessChain 34(data) 73 1116 - 1237: 28(i64vec4) Load 1236 - 1238: 28(i64vec4) GroupNonUniformUMax 43 ClusteredReduce 1237 42 - 1239: 1124(ptr) AccessChain 34(data) 1235 1116 - Store 1239 1238 - 1240: 6(int) Load 8(invocation) - 1241: 1117(ptr) AccessChain 34(data) 37 1116 38 - 1242: 27(int64_t) Load 1241 - 1243: 27(int64_t) GroupNonUniformBitwiseAnd 43 ClusteredReduce 1242 42 - 1244: 1117(ptr) AccessChain 34(data) 1240 1116 38 - Store 1244 1243 - 1245: 6(int) Load 8(invocation) - 1246: 1124(ptr) AccessChain 34(data) 47 1116 - 1247: 28(i64vec4) Load 1246 - 1248:1123(i64vec2) VectorShuffle 1247 1247 0 1 - 1249:1123(i64vec2) GroupNonUniformBitwiseAnd 43 ClusteredReduce 1248 42 - 1250: 1117(ptr) AccessChain 34(data) 1245 1116 38 - 1251: 27(int64_t) CompositeExtract 1249 0 - Store 1250 1251 - 1252: 1117(ptr) AccessChain 34(data) 1245 1116 42 - 1253: 27(int64_t) CompositeExtract 1249 1 - Store 1252 1253 - 1254: 6(int) Load 8(invocation) - 1255: 1124(ptr) AccessChain 34(data) 59 1116 - 1256: 28(i64vec4) Load 1255 - 1257:1134(i64vec3) VectorShuffle 1256 1256 0 1 2 - 1258:1134(i64vec3) GroupNonUniformBitwiseAnd 43 ClusteredReduce 1257 42 - 1259: 1117(ptr) AccessChain 34(data) 1254 1116 38 - 1260: 27(int64_t) CompositeExtract 1258 0 - Store 1259 1260 - 1261: 1117(ptr) AccessChain 34(data) 1254 1116 42 - 1262: 27(int64_t) CompositeExtract 1258 1 - Store 1261 1262 - 1263: 1117(ptr) AccessChain 34(data) 1254 1116 69 - 1264: 27(int64_t) CompositeExtract 1258 2 - Store 1263 1264 - 1265: 6(int) Load 8(invocation) - 1266: 1124(ptr) AccessChain 34(data) 73 1116 - 1267: 28(i64vec4) Load 1266 - 1268: 28(i64vec4) GroupNonUniformBitwiseAnd 43 ClusteredReduce 1267 42 - 1269: 1124(ptr) AccessChain 34(data) 1265 1116 - Store 1269 1268 - 1270: 6(int) Load 8(invocation) - 1271: 1117(ptr) AccessChain 34(data) 37 1116 38 - 1272: 27(int64_t) Load 1271 - 1273: 27(int64_t) GroupNonUniformBitwiseOr 43 ClusteredReduce 1272 42 - 1274: 1117(ptr) AccessChain 34(data) 1270 1116 38 - Store 1274 1273 - 1275: 6(int) Load 8(invocation) - 1276: 1124(ptr) AccessChain 34(data) 47 1116 - 1277: 28(i64vec4) Load 1276 - 1278:1123(i64vec2) VectorShuffle 1277 1277 0 1 - 1279:1123(i64vec2) GroupNonUniformBitwiseOr 43 ClusteredReduce 1278 42 - 1280: 1117(ptr) AccessChain 34(data) 1275 1116 38 - 1281: 27(int64_t) CompositeExtract 1279 0 - Store 1280 1281 - 1282: 1117(ptr) AccessChain 34(data) 1275 1116 42 - 1283: 27(int64_t) CompositeExtract 1279 1 - Store 1282 1283 - 1284: 6(int) Load 8(invocation) - 1285: 1124(ptr) AccessChain 34(data) 59 1116 - 1286: 28(i64vec4) Load 1285 - 1287:1134(i64vec3) VectorShuffle 1286 1286 0 1 2 - 1288:1134(i64vec3) GroupNonUniformBitwiseOr 43 ClusteredReduce 1287 42 - 1289: 1117(ptr) AccessChain 34(data) 1284 1116 38 - 1290: 27(int64_t) CompositeExtract 1288 0 - Store 1289 1290 - 1291: 1117(ptr) AccessChain 34(data) 1284 1116 42 - 1292: 27(int64_t) CompositeExtract 1288 1 - Store 1291 1292 - 1293: 1117(ptr) AccessChain 34(data) 1284 1116 69 - 1294: 27(int64_t) CompositeExtract 1288 2 - Store 1293 1294 - 1295: 6(int) Load 8(invocation) - 1296: 1124(ptr) AccessChain 34(data) 73 1116 - 1297: 28(i64vec4) Load 1296 - 1298: 28(i64vec4) GroupNonUniformBitwiseOr 43 ClusteredReduce 1297 42 - 1299: 1124(ptr) AccessChain 34(data) 1295 1116 - Store 1299 1298 - 1300: 6(int) Load 8(invocation) - 1301: 1117(ptr) AccessChain 34(data) 37 1116 38 - 1302: 27(int64_t) Load 1301 - 1303: 27(int64_t) GroupNonUniformBitwiseXor 43 ClusteredReduce 1302 42 - 1304: 1117(ptr) AccessChain 34(data) 1300 1116 38 - Store 1304 1303 - 1305: 6(int) Load 8(invocation) - 1306: 1124(ptr) AccessChain 34(data) 47 1116 - 1307: 28(i64vec4) Load 1306 - 1308:1123(i64vec2) VectorShuffle 1307 1307 0 1 - 1309:1123(i64vec2) GroupNonUniformBitwiseXor 43 ClusteredReduce 1308 42 - 1310: 1117(ptr) AccessChain 34(data) 1305 1116 38 - 1311: 27(int64_t) CompositeExtract 1309 0 - Store 1310 1311 - 1312: 1117(ptr) AccessChain 34(data) 1305 1116 42 - 1313: 27(int64_t) CompositeExtract 1309 1 - Store 1312 1313 - 1314: 6(int) Load 8(invocation) - 1315: 1124(ptr) AccessChain 34(data) 59 1116 - 1316: 28(i64vec4) Load 1315 - 1317:1134(i64vec3) VectorShuffle 1316 1316 0 1 2 - 1318:1134(i64vec3) GroupNonUniformBitwiseXor 43 ClusteredReduce 1317 42 - 1319: 1117(ptr) AccessChain 34(data) 1314 1116 38 - 1320: 27(int64_t) CompositeExtract 1318 0 - Store 1319 1320 - 1321: 1117(ptr) AccessChain 34(data) 1314 1116 42 - 1322: 27(int64_t) CompositeExtract 1318 1 - Store 1321 1322 - 1323: 1117(ptr) AccessChain 34(data) 1314 1116 69 - 1324: 27(int64_t) CompositeExtract 1318 2 - Store 1323 1324 - 1325: 6(int) Load 8(invocation) - 1326: 1124(ptr) AccessChain 34(data) 73 1116 - 1327: 28(i64vec4) Load 1326 - 1328: 28(i64vec4) GroupNonUniformBitwiseXor 43 ClusteredReduce 1327 42 - 1329: 1124(ptr) AccessChain 34(data) 1325 1116 - Store 1329 1328 - 1330: 6(int) Load 8(invocation) - 1333: 1332(ptr) AccessChain 34(data) 37 1331 38 - 1334:29(float16_t) Load 1333 - 1335:29(float16_t) GroupNonUniformFAdd 43 ClusteredReduce 1334 42 - 1336: 1332(ptr) AccessChain 34(data) 1330 1331 38 - Store 1336 1335 - 1337: 6(int) Load 8(invocation) - 1340: 1339(ptr) AccessChain 34(data) 47 1331 - 1341: 30(f16vec4) Load 1340 - 1342:1338(f16vec2) VectorShuffle 1341 1341 0 1 - 1343:1338(f16vec2) GroupNonUniformFAdd 43 ClusteredReduce 1342 42 - 1344: 1332(ptr) AccessChain 34(data) 1337 1331 38 - 1345:29(float16_t) CompositeExtract 1343 0 - Store 1344 1345 - 1346: 1332(ptr) AccessChain 34(data) 1337 1331 42 - 1347:29(float16_t) CompositeExtract 1343 1 - Store 1346 1347 - 1348: 6(int) Load 8(invocation) - 1350: 1339(ptr) AccessChain 34(data) 59 1331 - 1351: 30(f16vec4) Load 1350 - 1352:1349(f16vec3) VectorShuffle 1351 1351 0 1 2 - 1353:1349(f16vec3) GroupNonUniformFAdd 43 ClusteredReduce 1352 42 - 1354: 1332(ptr) AccessChain 34(data) 1348 1331 38 - 1355:29(float16_t) CompositeExtract 1353 0 - Store 1354 1355 - 1356: 1332(ptr) AccessChain 34(data) 1348 1331 42 - 1357:29(float16_t) CompositeExtract 1353 1 - Store 1356 1357 - 1358: 1332(ptr) AccessChain 34(data) 1348 1331 69 - 1359:29(float16_t) CompositeExtract 1353 2 - Store 1358 1359 - 1360: 6(int) Load 8(invocation) - 1361: 1339(ptr) AccessChain 34(data) 73 1331 - 1362: 30(f16vec4) Load 1361 - 1363: 30(f16vec4) GroupNonUniformFAdd 43 ClusteredReduce 1362 42 - 1364: 1339(ptr) AccessChain 34(data) 1360 1331 - Store 1364 1363 - 1365: 6(int) Load 8(invocation) - 1366: 1332(ptr) AccessChain 34(data) 37 1331 38 - 1367:29(float16_t) Load 1366 - 1368:29(float16_t) GroupNonUniformFMul 43 ClusteredReduce 1367 42 - 1369: 1332(ptr) AccessChain 34(data) 1365 1331 38 - Store 1369 1368 - 1370: 6(int) Load 8(invocation) - 1371: 1339(ptr) AccessChain 34(data) 47 1331 - 1372: 30(f16vec4) Load 1371 - 1373:1338(f16vec2) VectorShuffle 1372 1372 0 1 - 1374:1338(f16vec2) GroupNonUniformFMul 43 ClusteredReduce 1373 42 - 1375: 1332(ptr) AccessChain 34(data) 1370 1331 38 - 1376:29(float16_t) CompositeExtract 1374 0 - Store 1375 1376 - 1377: 1332(ptr) AccessChain 34(data) 1370 1331 42 - 1378:29(float16_t) CompositeExtract 1374 1 - Store 1377 1378 - 1379: 6(int) Load 8(invocation) - 1380: 1339(ptr) AccessChain 34(data) 59 1331 - 1381: 30(f16vec4) Load 1380 - 1382:1349(f16vec3) VectorShuffle 1381 1381 0 1 2 - 1383:1349(f16vec3) GroupNonUniformFMul 43 ClusteredReduce 1382 42 - 1384: 1332(ptr) AccessChain 34(data) 1379 1331 38 - 1385:29(float16_t) CompositeExtract 1383 0 - Store 1384 1385 - 1386: 1332(ptr) AccessChain 34(data) 1379 1331 42 - 1387:29(float16_t) CompositeExtract 1383 1 - Store 1386 1387 - 1388: 1332(ptr) AccessChain 34(data) 1379 1331 69 - 1389:29(float16_t) CompositeExtract 1383 2 - Store 1388 1389 - 1390: 6(int) Load 8(invocation) - 1391: 1339(ptr) AccessChain 34(data) 73 1331 - 1392: 30(f16vec4) Load 1391 - 1393: 30(f16vec4) GroupNonUniformFMul 43 ClusteredReduce 1392 42 - 1394: 1339(ptr) AccessChain 34(data) 1390 1331 - Store 1394 1393 - 1395: 6(int) Load 8(invocation) - 1396: 1332(ptr) AccessChain 34(data) 37 1331 38 - 1397:29(float16_t) Load 1396 - 1398:29(float16_t) GroupNonUniformFMin 43 ClusteredReduce 1397 42 - 1399: 1332(ptr) AccessChain 34(data) 1395 1331 38 - Store 1399 1398 - 1400: 6(int) Load 8(invocation) - 1401: 1339(ptr) AccessChain 34(data) 47 1331 - 1402: 30(f16vec4) Load 1401 - 1403:1338(f16vec2) VectorShuffle 1402 1402 0 1 - 1404:1338(f16vec2) GroupNonUniformFMin 43 ClusteredReduce 1403 42 - 1405: 1332(ptr) AccessChain 34(data) 1400 1331 38 - 1406:29(float16_t) CompositeExtract 1404 0 - Store 1405 1406 - 1407: 1332(ptr) AccessChain 34(data) 1400 1331 42 - 1408:29(float16_t) CompositeExtract 1404 1 - Store 1407 1408 - 1409: 6(int) Load 8(invocation) - 1410: 1339(ptr) AccessChain 34(data) 59 1331 - 1411: 30(f16vec4) Load 1410 - 1412:1349(f16vec3) VectorShuffle 1411 1411 0 1 2 - 1413:1349(f16vec3) GroupNonUniformFMin 43 ClusteredReduce 1412 42 - 1414: 1332(ptr) AccessChain 34(data) 1409 1331 38 - 1415:29(float16_t) CompositeExtract 1413 0 - Store 1414 1415 - 1416: 1332(ptr) AccessChain 34(data) 1409 1331 42 - 1417:29(float16_t) CompositeExtract 1413 1 - Store 1416 1417 - 1418: 1332(ptr) AccessChain 34(data) 1409 1331 69 - 1419:29(float16_t) CompositeExtract 1413 2 - Store 1418 1419 - 1420: 6(int) Load 8(invocation) - 1421: 1339(ptr) AccessChain 34(data) 73 1331 - 1422: 30(f16vec4) Load 1421 - 1423: 30(f16vec4) GroupNonUniformFMin 43 ClusteredReduce 1422 42 - 1424: 1339(ptr) AccessChain 34(data) 1420 1331 - Store 1424 1423 - 1425: 6(int) Load 8(invocation) - 1426: 1332(ptr) AccessChain 34(data) 37 1331 38 - 1427:29(float16_t) Load 1426 - 1428:29(float16_t) GroupNonUniformFMax 43 ClusteredReduce 1427 42 - 1429: 1332(ptr) AccessChain 34(data) 1425 1331 38 - Store 1429 1428 - 1430: 6(int) Load 8(invocation) - 1431: 1339(ptr) AccessChain 34(data) 47 1331 - 1432: 30(f16vec4) Load 1431 - 1433:1338(f16vec2) VectorShuffle 1432 1432 0 1 - 1434:1338(f16vec2) GroupNonUniformFMax 43 ClusteredReduce 1433 42 - 1435: 1332(ptr) AccessChain 34(data) 1430 1331 38 - 1436:29(float16_t) CompositeExtract 1434 0 - Store 1435 1436 - 1437: 1332(ptr) AccessChain 34(data) 1430 1331 42 - 1438:29(float16_t) CompositeExtract 1434 1 - Store 1437 1438 - 1439: 6(int) Load 8(invocation) - 1440: 1339(ptr) AccessChain 34(data) 59 1331 - 1441: 30(f16vec4) Load 1440 - 1442:1349(f16vec3) VectorShuffle 1441 1441 0 1 2 - 1443:1349(f16vec3) GroupNonUniformFMax 43 ClusteredReduce 1442 42 - 1444: 1332(ptr) AccessChain 34(data) 1439 1331 38 - 1445:29(float16_t) CompositeExtract 1443 0 - Store 1444 1445 - 1446: 1332(ptr) AccessChain 34(data) 1439 1331 42 - 1447:29(float16_t) CompositeExtract 1443 1 - Store 1446 1447 - 1448: 1332(ptr) AccessChain 34(data) 1439 1331 69 - 1449:29(float16_t) CompositeExtract 1443 2 - Store 1448 1449 - 1450: 6(int) Load 8(invocation) - 1451: 1339(ptr) AccessChain 34(data) 73 1331 - 1452: 30(f16vec4) Load 1451 - 1453: 30(f16vec4) GroupNonUniformFMax 43 ClusteredReduce 1452 42 - 1454: 1339(ptr) AccessChain 34(data) 1450 1331 - Store 1454 1453 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesClusteredNeg.comp.out b/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesClusteredNeg.comp.out deleted file mode 100644 index fd01ef39..00000000 --- a/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesClusteredNeg.comp.out +++ /dev/null @@ -1,189 +0,0 @@ -spv.subgroupExtendedTypesClusteredNeg.comp -ERROR: 0:26: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:27: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:28: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:29: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:31: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:32: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:33: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:34: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:36: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:37: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:38: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:39: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:41: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:42: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:43: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:44: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:46: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:47: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:48: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:49: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:51: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:52: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:53: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:54: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:56: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:57: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:58: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:59: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:61: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:62: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:63: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:64: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:66: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:67: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:68: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:69: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:71: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:72: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:73: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:74: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:76: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:77: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:78: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:79: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:81: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:82: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:83: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:84: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:86: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:87: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:88: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:89: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:91: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:92: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:93: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:94: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:96: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:97: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:98: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:99: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:101: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:102: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:103: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:104: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:106: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:107: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:108: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:109: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:111: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:112: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:113: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:114: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:116: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:117: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:118: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:119: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:121: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:122: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:123: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:124: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:126: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:127: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:128: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:129: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:131: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:132: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:133: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:134: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:136: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:137: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:138: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:139: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:141: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:142: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:143: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:144: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:146: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:147: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:148: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:149: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:151: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:152: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:153: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:154: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:156: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:157: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:158: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:159: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:161: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:162: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:163: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:164: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:166: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:167: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:168: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:169: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:171: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:172: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:173: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:174: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:176: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:177: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:178: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:179: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:181: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:182: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:183: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:184: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:186: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:187: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:188: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:189: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:191: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:192: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:193: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:194: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:196: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:197: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:198: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:199: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:201: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:202: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:203: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:204: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:206: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:207: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:208: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:209: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:211: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:212: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:213: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:214: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:216: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:217: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:218: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:219: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:221: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:222: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:223: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:224: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:226: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:227: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:228: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:229: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:231: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:232: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:233: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:234: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:236: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:237: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:238: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:239: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:241: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:242: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:243: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:244: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:246: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:247: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:248: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:249: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:251: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:252: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:253: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:254: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 184 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesPartitioned.comp.out b/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesPartitioned.comp.out deleted file mode 100644 index 47576d9f..00000000 --- a/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesPartitioned.comp.out +++ /dev/null @@ -1,2158 +0,0 @@ -spv.subgroupExtendedTypesPartitioned.comp -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 1743 - - Capability Shader - Capability Float16 - Capability Int64 - Capability Int16 - Capability Int8 - Capability GroupNonUniform - Capability StorageUniformBufferBlock16 - Capability StorageBuffer8BitAccess - Capability GroupNonUniformPartitionedNV - Extension "SPV_KHR_8bit_storage" - Extension "SPV_NV_shader_subgroup_partitioned" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 10 12 - ExecutionMode 4 LocalSize 8 1 1 - Source GLSL 450 - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int16" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int64" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int8" - SourceExtension "GL_EXT_shader_subgroup_extended_types_float16" - SourceExtension "GL_EXT_shader_subgroup_extended_types_int16" - SourceExtension "GL_EXT_shader_subgroup_extended_types_int64" - SourceExtension "GL_EXT_shader_subgroup_extended_types_int8" - SourceExtension "GL_KHR_shader_subgroup_basic" - SourceExtension "GL_NV_shader_subgroup_partitioned" - Name 4 "main" - Name 8 "invocation" - Name 10 "gl_SubgroupInvocationID" - Name 12 "gl_SubgroupSize" - Name 19 "ballot" - Name 34 "Buffers" - MemberName 34(Buffers) 0 "i8" - MemberName 34(Buffers) 1 "u8" - MemberName 34(Buffers) 2 "i16" - MemberName 34(Buffers) 3 "u16" - MemberName 34(Buffers) 4 "i64" - MemberName 34(Buffers) 5 "u64" - MemberName 34(Buffers) 6 "f16" - Name 37 "data" - Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision - Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId - Decorate 11 RelaxedPrecision - Decorate 12(gl_SubgroupSize) RelaxedPrecision - Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize - Decorate 13 RelaxedPrecision - Decorate 14 RelaxedPrecision - Decorate 16 RelaxedPrecision - MemberDecorate 34(Buffers) 0 Offset 0 - MemberDecorate 34(Buffers) 1 Offset 4 - MemberDecorate 34(Buffers) 2 Offset 8 - MemberDecorate 34(Buffers) 3 Offset 16 - MemberDecorate 34(Buffers) 4 Offset 32 - MemberDecorate 34(Buffers) 5 Offset 64 - MemberDecorate 34(Buffers) 6 Offset 96 - Decorate 34(Buffers) Block - Decorate 37(data) DescriptorSet 0 - Decorate 37(data) Binding 0 - Decorate 1742 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypePointer Input 6(int) -10(gl_SubgroupInvocationID): 9(ptr) Variable Input -12(gl_SubgroupSize): 9(ptr) Variable Input - 15: 6(int) Constant 4 - 17: TypeVector 6(int) 4 - 18: TypePointer Function 17(ivec4) - 20: TypeInt 8 1 - 21: TypeVector 20(int8_t) 4 - 22: TypeInt 8 0 - 23: TypeVector 22(int8_t) 4 - 24: TypeInt 16 1 - 25: TypeVector 24(int16_t) 4 - 26: TypeInt 16 0 - 27: TypeVector 26(int16_t) 4 - 28: TypeInt 64 1 - 29: TypeVector 28(int64_t) 4 - 30: TypeInt 64 0 - 31: TypeVector 30(int64_t) 4 - 32: TypeFloat 16 - 33: TypeVector 32(float16_t) 4 - 34(Buffers): TypeStruct 21(i8vec4) 23(i8vec4) 25(i16vec4) 27(i16vec4) 29(i64vec4) 31(i64vec4) 33(f16vec4) - 35: TypeArray 34(Buffers) 15 - 36: TypePointer StorageBuffer 35 - 37(data): 36(ptr) Variable StorageBuffer - 38: TypeInt 32 1 - 39: 38(int) Constant 0 - 40: 6(int) Constant 0 - 41: TypePointer StorageBuffer 20(int8_t) - 45: 38(int) Constant 1 - 46: TypeVector 20(int8_t) 2 - 47: TypePointer StorageBuffer 21(i8vec4) - 52: 38(int) Constant 2 - 53: TypeVector 20(int8_t) 3 - 58: 38(int) Constant 3 - 62: TypePointer StorageBuffer 22(int8_t) - 66: TypeVector 22(int8_t) 2 - 67: TypePointer StorageBuffer 23(i8vec4) - 72: TypeVector 22(int8_t) 3 - 80: TypePointer StorageBuffer 24(int16_t) - 84: TypeVector 24(int16_t) 2 - 85: TypePointer StorageBuffer 25(i16vec4) - 90: TypeVector 24(int16_t) 3 - 98: TypePointer StorageBuffer 26(int16_t) - 102: TypeVector 26(int16_t) 2 - 103: TypePointer StorageBuffer 27(i16vec4) - 108: TypeVector 26(int16_t) 3 - 116: 38(int) Constant 4 - 117: TypePointer StorageBuffer 28(int64_t) - 121: TypeVector 28(int64_t) 2 - 122: TypePointer StorageBuffer 29(i64vec4) - 127: TypeVector 28(int64_t) 3 - 135: 38(int) Constant 5 - 136: TypePointer StorageBuffer 30(int64_t) - 140: TypeVector 30(int64_t) 2 - 141: TypePointer StorageBuffer 31(i64vec4) - 146: TypeVector 30(int64_t) 3 - 154: 38(int) Constant 6 - 155: TypePointer StorageBuffer 32(float16_t) - 159: TypeVector 32(float16_t) 2 - 160: TypePointer StorageBuffer 33(f16vec4) - 165: TypeVector 32(float16_t) 3 - 177: 6(int) Constant 3 - 188: 6(int) Constant 1 - 201: 6(int) Constant 2 - 1740: TypeVector 6(int) 3 - 1741: 6(int) Constant 8 - 1742: 1740(ivec3) ConstantComposite 1741 188 188 - 4(main): 2 Function None 3 - 5: Label - 8(invocation): 7(ptr) Variable Function - 19(ballot): 18(ptr) Variable Function - 11: 6(int) Load 10(gl_SubgroupInvocationID) - 13: 6(int) Load 12(gl_SubgroupSize) - 14: 6(int) IAdd 11 13 - 16: 6(int) UMod 14 15 - Store 8(invocation) 16 - 42: 41(ptr) AccessChain 37(data) 39 39 40 - 43: 20(int8_t) Load 42 - 44: 17(ivec4) GroupNonUniformPartitionNV 43 - Store 19(ballot) 44 - 48: 47(ptr) AccessChain 37(data) 45 39 - 49: 21(i8vec4) Load 48 - 50: 46(i8vec2) VectorShuffle 49 49 0 1 - 51: 17(ivec4) GroupNonUniformPartitionNV 50 - Store 19(ballot) 51 - 54: 47(ptr) AccessChain 37(data) 52 39 - 55: 21(i8vec4) Load 54 - 56: 53(i8vec3) VectorShuffle 55 55 0 1 2 - 57: 17(ivec4) GroupNonUniformPartitionNV 56 - Store 19(ballot) 57 - 59: 47(ptr) AccessChain 37(data) 58 39 - 60: 21(i8vec4) Load 59 - 61: 17(ivec4) GroupNonUniformPartitionNV 60 - Store 19(ballot) 61 - 63: 62(ptr) AccessChain 37(data) 39 45 40 - 64: 22(int8_t) Load 63 - 65: 17(ivec4) GroupNonUniformPartitionNV 64 - Store 19(ballot) 65 - 68: 67(ptr) AccessChain 37(data) 45 45 - 69: 23(i8vec4) Load 68 - 70: 66(i8vec2) VectorShuffle 69 69 0 1 - 71: 17(ivec4) GroupNonUniformPartitionNV 70 - Store 19(ballot) 71 - 73: 67(ptr) AccessChain 37(data) 52 45 - 74: 23(i8vec4) Load 73 - 75: 72(i8vec3) VectorShuffle 74 74 0 1 2 - 76: 17(ivec4) GroupNonUniformPartitionNV 75 - Store 19(ballot) 76 - 77: 67(ptr) AccessChain 37(data) 58 45 - 78: 23(i8vec4) Load 77 - 79: 17(ivec4) GroupNonUniformPartitionNV 78 - Store 19(ballot) 79 - 81: 80(ptr) AccessChain 37(data) 39 52 40 - 82: 24(int16_t) Load 81 - 83: 17(ivec4) GroupNonUniformPartitionNV 82 - Store 19(ballot) 83 - 86: 85(ptr) AccessChain 37(data) 45 52 - 87: 25(i16vec4) Load 86 - 88: 84(i16vec2) VectorShuffle 87 87 0 1 - 89: 17(ivec4) GroupNonUniformPartitionNV 88 - Store 19(ballot) 89 - 91: 85(ptr) AccessChain 37(data) 52 52 - 92: 25(i16vec4) Load 91 - 93: 90(i16vec3) VectorShuffle 92 92 0 1 2 - 94: 17(ivec4) GroupNonUniformPartitionNV 93 - Store 19(ballot) 94 - 95: 85(ptr) AccessChain 37(data) 58 52 - 96: 25(i16vec4) Load 95 - 97: 17(ivec4) GroupNonUniformPartitionNV 96 - Store 19(ballot) 97 - 99: 98(ptr) AccessChain 37(data) 39 58 40 - 100: 26(int16_t) Load 99 - 101: 17(ivec4) GroupNonUniformPartitionNV 100 - Store 19(ballot) 101 - 104: 103(ptr) AccessChain 37(data) 45 58 - 105: 27(i16vec4) Load 104 - 106:102(i16vec2) VectorShuffle 105 105 0 1 - 107: 17(ivec4) GroupNonUniformPartitionNV 106 - Store 19(ballot) 107 - 109: 103(ptr) AccessChain 37(data) 52 58 - 110: 27(i16vec4) Load 109 - 111:108(i16vec3) VectorShuffle 110 110 0 1 2 - 112: 17(ivec4) GroupNonUniformPartitionNV 111 - Store 19(ballot) 112 - 113: 103(ptr) AccessChain 37(data) 58 58 - 114: 27(i16vec4) Load 113 - 115: 17(ivec4) GroupNonUniformPartitionNV 114 - Store 19(ballot) 115 - 118: 117(ptr) AccessChain 37(data) 39 116 40 - 119: 28(int64_t) Load 118 - 120: 17(ivec4) GroupNonUniformPartitionNV 119 - Store 19(ballot) 120 - 123: 122(ptr) AccessChain 37(data) 45 116 - 124: 29(i64vec4) Load 123 - 125:121(i64vec2) VectorShuffle 124 124 0 1 - 126: 17(ivec4) GroupNonUniformPartitionNV 125 - Store 19(ballot) 126 - 128: 122(ptr) AccessChain 37(data) 52 116 - 129: 29(i64vec4) Load 128 - 130:127(i64vec3) VectorShuffle 129 129 0 1 2 - 131: 17(ivec4) GroupNonUniformPartitionNV 130 - Store 19(ballot) 131 - 132: 122(ptr) AccessChain 37(data) 58 116 - 133: 29(i64vec4) Load 132 - 134: 17(ivec4) GroupNonUniformPartitionNV 133 - Store 19(ballot) 134 - 137: 136(ptr) AccessChain 37(data) 39 135 40 - 138: 30(int64_t) Load 137 - 139: 17(ivec4) GroupNonUniformPartitionNV 138 - Store 19(ballot) 139 - 142: 141(ptr) AccessChain 37(data) 45 135 - 143: 31(i64vec4) Load 142 - 144:140(i64vec2) VectorShuffle 143 143 0 1 - 145: 17(ivec4) GroupNonUniformPartitionNV 144 - Store 19(ballot) 145 - 147: 141(ptr) AccessChain 37(data) 52 135 - 148: 31(i64vec4) Load 147 - 149:146(i64vec3) VectorShuffle 148 148 0 1 2 - 150: 17(ivec4) GroupNonUniformPartitionNV 149 - Store 19(ballot) 150 - 151: 141(ptr) AccessChain 37(data) 58 135 - 152: 31(i64vec4) Load 151 - 153: 17(ivec4) GroupNonUniformPartitionNV 152 - Store 19(ballot) 153 - 156: 155(ptr) AccessChain 37(data) 39 154 40 - 157:32(float16_t) Load 156 - 158: 17(ivec4) GroupNonUniformPartitionNV 157 - Store 19(ballot) 158 - 161: 160(ptr) AccessChain 37(data) 45 154 - 162: 33(f16vec4) Load 161 - 163:159(f16vec2) VectorShuffle 162 162 0 1 - 164: 17(ivec4) GroupNonUniformPartitionNV 163 - Store 19(ballot) 164 - 166: 160(ptr) AccessChain 37(data) 52 154 - 167: 33(f16vec4) Load 166 - 168:165(f16vec3) VectorShuffle 167 167 0 1 2 - 169: 17(ivec4) GroupNonUniformPartitionNV 168 - Store 19(ballot) 169 - 170: 160(ptr) AccessChain 37(data) 58 154 - 171: 33(f16vec4) Load 170 - 172: 17(ivec4) GroupNonUniformPartitionNV 171 - Store 19(ballot) 172 - 173: 6(int) Load 8(invocation) - 174: 41(ptr) AccessChain 37(data) 39 39 40 - 175: 20(int8_t) Load 174 - 176: 17(ivec4) Load 19(ballot) - 178: 20(int8_t) GroupNonUniformIAdd 177 PartitionedReduceNV 175 176 - 179: 41(ptr) AccessChain 37(data) 173 39 40 - Store 179 178 - 180: 6(int) Load 8(invocation) - 181: 47(ptr) AccessChain 37(data) 45 39 - 182: 21(i8vec4) Load 181 - 183: 46(i8vec2) VectorShuffle 182 182 0 1 - 184: 17(ivec4) Load 19(ballot) - 185: 46(i8vec2) GroupNonUniformIAdd 177 PartitionedReduceNV 183 184 - 186: 41(ptr) AccessChain 37(data) 180 39 40 - 187: 20(int8_t) CompositeExtract 185 0 - Store 186 187 - 189: 41(ptr) AccessChain 37(data) 180 39 188 - 190: 20(int8_t) CompositeExtract 185 1 - Store 189 190 - 191: 6(int) Load 8(invocation) - 192: 47(ptr) AccessChain 37(data) 52 39 - 193: 21(i8vec4) Load 192 - 194: 53(i8vec3) VectorShuffle 193 193 0 1 2 - 195: 17(ivec4) Load 19(ballot) - 196: 53(i8vec3) GroupNonUniformIAdd 177 PartitionedReduceNV 194 195 - 197: 41(ptr) AccessChain 37(data) 191 39 40 - 198: 20(int8_t) CompositeExtract 196 0 - Store 197 198 - 199: 41(ptr) AccessChain 37(data) 191 39 188 - 200: 20(int8_t) CompositeExtract 196 1 - Store 199 200 - 202: 41(ptr) AccessChain 37(data) 191 39 201 - 203: 20(int8_t) CompositeExtract 196 2 - Store 202 203 - 204: 6(int) Load 8(invocation) - 205: 47(ptr) AccessChain 37(data) 58 39 - 206: 21(i8vec4) Load 205 - 207: 17(ivec4) Load 19(ballot) - 208: 21(i8vec4) GroupNonUniformIAdd 177 PartitionedReduceNV 206 207 - 209: 47(ptr) AccessChain 37(data) 204 39 - Store 209 208 - 210: 6(int) Load 8(invocation) - 211: 41(ptr) AccessChain 37(data) 39 39 40 - 212: 20(int8_t) Load 211 - 213: 17(ivec4) Load 19(ballot) - 214: 20(int8_t) GroupNonUniformIMul 177 PartitionedReduceNV 212 213 - 215: 41(ptr) AccessChain 37(data) 210 39 40 - Store 215 214 - 216: 6(int) Load 8(invocation) - 217: 47(ptr) AccessChain 37(data) 45 39 - 218: 21(i8vec4) Load 217 - 219: 46(i8vec2) VectorShuffle 218 218 0 1 - 220: 17(ivec4) Load 19(ballot) - 221: 46(i8vec2) GroupNonUniformIMul 177 PartitionedReduceNV 219 220 - 222: 41(ptr) AccessChain 37(data) 216 39 40 - 223: 20(int8_t) CompositeExtract 221 0 - Store 222 223 - 224: 41(ptr) AccessChain 37(data) 216 39 188 - 225: 20(int8_t) CompositeExtract 221 1 - Store 224 225 - 226: 6(int) Load 8(invocation) - 227: 47(ptr) AccessChain 37(data) 52 39 - 228: 21(i8vec4) Load 227 - 229: 53(i8vec3) VectorShuffle 228 228 0 1 2 - 230: 17(ivec4) Load 19(ballot) - 231: 53(i8vec3) GroupNonUniformIMul 177 PartitionedReduceNV 229 230 - 232: 41(ptr) AccessChain 37(data) 226 39 40 - 233: 20(int8_t) CompositeExtract 231 0 - Store 232 233 - 234: 41(ptr) AccessChain 37(data) 226 39 188 - 235: 20(int8_t) CompositeExtract 231 1 - Store 234 235 - 236: 41(ptr) AccessChain 37(data) 226 39 201 - 237: 20(int8_t) CompositeExtract 231 2 - Store 236 237 - 238: 6(int) Load 8(invocation) - 239: 47(ptr) AccessChain 37(data) 58 39 - 240: 21(i8vec4) Load 239 - 241: 17(ivec4) Load 19(ballot) - 242: 21(i8vec4) GroupNonUniformIMul 177 PartitionedReduceNV 240 241 - 243: 47(ptr) AccessChain 37(data) 238 39 - Store 243 242 - 244: 6(int) Load 8(invocation) - 245: 41(ptr) AccessChain 37(data) 39 39 40 - 246: 20(int8_t) Load 245 - 247: 17(ivec4) Load 19(ballot) - 248: 20(int8_t) GroupNonUniformSMin 177 PartitionedReduceNV 246 247 - 249: 41(ptr) AccessChain 37(data) 244 39 40 - Store 249 248 - 250: 6(int) Load 8(invocation) - 251: 47(ptr) AccessChain 37(data) 45 39 - 252: 21(i8vec4) Load 251 - 253: 46(i8vec2) VectorShuffle 252 252 0 1 - 254: 17(ivec4) Load 19(ballot) - 255: 46(i8vec2) GroupNonUniformSMin 177 PartitionedReduceNV 253 254 - 256: 41(ptr) AccessChain 37(data) 250 39 40 - 257: 20(int8_t) CompositeExtract 255 0 - Store 256 257 - 258: 41(ptr) AccessChain 37(data) 250 39 188 - 259: 20(int8_t) CompositeExtract 255 1 - Store 258 259 - 260: 6(int) Load 8(invocation) - 261: 47(ptr) AccessChain 37(data) 52 39 - 262: 21(i8vec4) Load 261 - 263: 53(i8vec3) VectorShuffle 262 262 0 1 2 - 264: 17(ivec4) Load 19(ballot) - 265: 53(i8vec3) GroupNonUniformSMin 177 PartitionedReduceNV 263 264 - 266: 41(ptr) AccessChain 37(data) 260 39 40 - 267: 20(int8_t) CompositeExtract 265 0 - Store 266 267 - 268: 41(ptr) AccessChain 37(data) 260 39 188 - 269: 20(int8_t) CompositeExtract 265 1 - Store 268 269 - 270: 41(ptr) AccessChain 37(data) 260 39 201 - 271: 20(int8_t) CompositeExtract 265 2 - Store 270 271 - 272: 6(int) Load 8(invocation) - 273: 47(ptr) AccessChain 37(data) 58 39 - 274: 21(i8vec4) Load 273 - 275: 17(ivec4) Load 19(ballot) - 276: 21(i8vec4) GroupNonUniformSMin 177 PartitionedReduceNV 274 275 - 277: 47(ptr) AccessChain 37(data) 272 39 - Store 277 276 - 278: 6(int) Load 8(invocation) - 279: 41(ptr) AccessChain 37(data) 39 39 40 - 280: 20(int8_t) Load 279 - 281: 17(ivec4) Load 19(ballot) - 282: 20(int8_t) GroupNonUniformSMax 177 PartitionedReduceNV 280 281 - 283: 41(ptr) AccessChain 37(data) 278 39 40 - Store 283 282 - 284: 6(int) Load 8(invocation) - 285: 47(ptr) AccessChain 37(data) 45 39 - 286: 21(i8vec4) Load 285 - 287: 46(i8vec2) VectorShuffle 286 286 0 1 - 288: 17(ivec4) Load 19(ballot) - 289: 46(i8vec2) GroupNonUniformSMax 177 PartitionedReduceNV 287 288 - 290: 41(ptr) AccessChain 37(data) 284 39 40 - 291: 20(int8_t) CompositeExtract 289 0 - Store 290 291 - 292: 41(ptr) AccessChain 37(data) 284 39 188 - 293: 20(int8_t) CompositeExtract 289 1 - Store 292 293 - 294: 6(int) Load 8(invocation) - 295: 47(ptr) AccessChain 37(data) 52 39 - 296: 21(i8vec4) Load 295 - 297: 53(i8vec3) VectorShuffle 296 296 0 1 2 - 298: 17(ivec4) Load 19(ballot) - 299: 53(i8vec3) GroupNonUniformSMax 177 PartitionedReduceNV 297 298 - 300: 41(ptr) AccessChain 37(data) 294 39 40 - 301: 20(int8_t) CompositeExtract 299 0 - Store 300 301 - 302: 41(ptr) AccessChain 37(data) 294 39 188 - 303: 20(int8_t) CompositeExtract 299 1 - Store 302 303 - 304: 41(ptr) AccessChain 37(data) 294 39 201 - 305: 20(int8_t) CompositeExtract 299 2 - Store 304 305 - 306: 6(int) Load 8(invocation) - 307: 47(ptr) AccessChain 37(data) 58 39 - 308: 21(i8vec4) Load 307 - 309: 17(ivec4) Load 19(ballot) - 310: 21(i8vec4) GroupNonUniformSMax 177 PartitionedReduceNV 308 309 - 311: 47(ptr) AccessChain 37(data) 306 39 - Store 311 310 - 312: 6(int) Load 8(invocation) - 313: 41(ptr) AccessChain 37(data) 39 39 40 - 314: 20(int8_t) Load 313 - 315: 17(ivec4) Load 19(ballot) - 316: 20(int8_t) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 314 315 - 317: 41(ptr) AccessChain 37(data) 312 39 40 - Store 317 316 - 318: 6(int) Load 8(invocation) - 319: 47(ptr) AccessChain 37(data) 45 39 - 320: 21(i8vec4) Load 319 - 321: 46(i8vec2) VectorShuffle 320 320 0 1 - 322: 17(ivec4) Load 19(ballot) - 323: 46(i8vec2) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 321 322 - 324: 41(ptr) AccessChain 37(data) 318 39 40 - 325: 20(int8_t) CompositeExtract 323 0 - Store 324 325 - 326: 41(ptr) AccessChain 37(data) 318 39 188 - 327: 20(int8_t) CompositeExtract 323 1 - Store 326 327 - 328: 6(int) Load 8(invocation) - 329: 47(ptr) AccessChain 37(data) 52 39 - 330: 21(i8vec4) Load 329 - 331: 53(i8vec3) VectorShuffle 330 330 0 1 2 - 332: 17(ivec4) Load 19(ballot) - 333: 53(i8vec3) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 331 332 - 334: 41(ptr) AccessChain 37(data) 328 39 40 - 335: 20(int8_t) CompositeExtract 333 0 - Store 334 335 - 336: 41(ptr) AccessChain 37(data) 328 39 188 - 337: 20(int8_t) CompositeExtract 333 1 - Store 336 337 - 338: 41(ptr) AccessChain 37(data) 328 39 201 - 339: 20(int8_t) CompositeExtract 333 2 - Store 338 339 - 340: 6(int) Load 8(invocation) - 341: 47(ptr) AccessChain 37(data) 58 39 - 342: 21(i8vec4) Load 341 - 343: 17(ivec4) Load 19(ballot) - 344: 21(i8vec4) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 342 343 - 345: 47(ptr) AccessChain 37(data) 340 39 - Store 345 344 - 346: 6(int) Load 8(invocation) - 347: 41(ptr) AccessChain 37(data) 39 39 40 - 348: 20(int8_t) Load 347 - 349: 17(ivec4) Load 19(ballot) - 350: 20(int8_t) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 348 349 - 351: 41(ptr) AccessChain 37(data) 346 39 40 - Store 351 350 - 352: 6(int) Load 8(invocation) - 353: 47(ptr) AccessChain 37(data) 45 39 - 354: 21(i8vec4) Load 353 - 355: 46(i8vec2) VectorShuffle 354 354 0 1 - 356: 17(ivec4) Load 19(ballot) - 357: 46(i8vec2) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 355 356 - 358: 41(ptr) AccessChain 37(data) 352 39 40 - 359: 20(int8_t) CompositeExtract 357 0 - Store 358 359 - 360: 41(ptr) AccessChain 37(data) 352 39 188 - 361: 20(int8_t) CompositeExtract 357 1 - Store 360 361 - 362: 6(int) Load 8(invocation) - 363: 47(ptr) AccessChain 37(data) 52 39 - 364: 21(i8vec4) Load 363 - 365: 53(i8vec3) VectorShuffle 364 364 0 1 2 - 366: 17(ivec4) Load 19(ballot) - 367: 53(i8vec3) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 365 366 - 368: 41(ptr) AccessChain 37(data) 362 39 40 - 369: 20(int8_t) CompositeExtract 367 0 - Store 368 369 - 370: 41(ptr) AccessChain 37(data) 362 39 188 - 371: 20(int8_t) CompositeExtract 367 1 - Store 370 371 - 372: 41(ptr) AccessChain 37(data) 362 39 201 - 373: 20(int8_t) CompositeExtract 367 2 - Store 372 373 - 374: 6(int) Load 8(invocation) - 375: 47(ptr) AccessChain 37(data) 58 39 - 376: 21(i8vec4) Load 375 - 377: 17(ivec4) Load 19(ballot) - 378: 21(i8vec4) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 376 377 - 379: 47(ptr) AccessChain 37(data) 374 39 - Store 379 378 - 380: 6(int) Load 8(invocation) - 381: 41(ptr) AccessChain 37(data) 39 39 40 - 382: 20(int8_t) Load 381 - 383: 17(ivec4) Load 19(ballot) - 384: 20(int8_t) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 382 383 - 385: 41(ptr) AccessChain 37(data) 380 39 40 - Store 385 384 - 386: 6(int) Load 8(invocation) - 387: 47(ptr) AccessChain 37(data) 45 39 - 388: 21(i8vec4) Load 387 - 389: 46(i8vec2) VectorShuffle 388 388 0 1 - 390: 17(ivec4) Load 19(ballot) - 391: 46(i8vec2) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 389 390 - 392: 41(ptr) AccessChain 37(data) 386 39 40 - 393: 20(int8_t) CompositeExtract 391 0 - Store 392 393 - 394: 41(ptr) AccessChain 37(data) 386 39 188 - 395: 20(int8_t) CompositeExtract 391 1 - Store 394 395 - 396: 6(int) Load 8(invocation) - 397: 47(ptr) AccessChain 37(data) 52 39 - 398: 21(i8vec4) Load 397 - 399: 53(i8vec3) VectorShuffle 398 398 0 1 2 - 400: 17(ivec4) Load 19(ballot) - 401: 53(i8vec3) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 399 400 - 402: 41(ptr) AccessChain 37(data) 396 39 40 - 403: 20(int8_t) CompositeExtract 401 0 - Store 402 403 - 404: 41(ptr) AccessChain 37(data) 396 39 188 - 405: 20(int8_t) CompositeExtract 401 1 - Store 404 405 - 406: 41(ptr) AccessChain 37(data) 396 39 201 - 407: 20(int8_t) CompositeExtract 401 2 - Store 406 407 - 408: 6(int) Load 8(invocation) - 409: 47(ptr) AccessChain 37(data) 58 39 - 410: 21(i8vec4) Load 409 - 411: 17(ivec4) Load 19(ballot) - 412: 21(i8vec4) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 410 411 - 413: 47(ptr) AccessChain 37(data) 408 39 - Store 413 412 - 414: 6(int) Load 8(invocation) - 415: 62(ptr) AccessChain 37(data) 39 45 40 - 416: 22(int8_t) Load 415 - 417: 17(ivec4) Load 19(ballot) - 418: 22(int8_t) GroupNonUniformIAdd 177 PartitionedReduceNV 416 417 - 419: 62(ptr) AccessChain 37(data) 414 45 40 - Store 419 418 - 420: 6(int) Load 8(invocation) - 421: 67(ptr) AccessChain 37(data) 45 45 - 422: 23(i8vec4) Load 421 - 423: 66(i8vec2) VectorShuffle 422 422 0 1 - 424: 17(ivec4) Load 19(ballot) - 425: 66(i8vec2) GroupNonUniformIAdd 177 PartitionedReduceNV 423 424 - 426: 62(ptr) AccessChain 37(data) 420 45 40 - 427: 22(int8_t) CompositeExtract 425 0 - Store 426 427 - 428: 62(ptr) AccessChain 37(data) 420 45 188 - 429: 22(int8_t) CompositeExtract 425 1 - Store 428 429 - 430: 6(int) Load 8(invocation) - 431: 67(ptr) AccessChain 37(data) 52 45 - 432: 23(i8vec4) Load 431 - 433: 72(i8vec3) VectorShuffle 432 432 0 1 2 - 434: 17(ivec4) Load 19(ballot) - 435: 72(i8vec3) GroupNonUniformIAdd 177 PartitionedReduceNV 433 434 - 436: 62(ptr) AccessChain 37(data) 430 45 40 - 437: 22(int8_t) CompositeExtract 435 0 - Store 436 437 - 438: 62(ptr) AccessChain 37(data) 430 45 188 - 439: 22(int8_t) CompositeExtract 435 1 - Store 438 439 - 440: 62(ptr) AccessChain 37(data) 430 45 201 - 441: 22(int8_t) CompositeExtract 435 2 - Store 440 441 - 442: 6(int) Load 8(invocation) - 443: 67(ptr) AccessChain 37(data) 58 45 - 444: 23(i8vec4) Load 443 - 445: 17(ivec4) Load 19(ballot) - 446: 23(i8vec4) GroupNonUniformIAdd 177 PartitionedReduceNV 444 445 - 447: 67(ptr) AccessChain 37(data) 442 45 - Store 447 446 - 448: 6(int) Load 8(invocation) - 449: 62(ptr) AccessChain 37(data) 39 45 40 - 450: 22(int8_t) Load 449 - 451: 17(ivec4) Load 19(ballot) - 452: 22(int8_t) GroupNonUniformIMul 177 PartitionedReduceNV 450 451 - 453: 62(ptr) AccessChain 37(data) 448 45 40 - Store 453 452 - 454: 6(int) Load 8(invocation) - 455: 67(ptr) AccessChain 37(data) 45 45 - 456: 23(i8vec4) Load 455 - 457: 66(i8vec2) VectorShuffle 456 456 0 1 - 458: 17(ivec4) Load 19(ballot) - 459: 66(i8vec2) GroupNonUniformIMul 177 PartitionedReduceNV 457 458 - 460: 62(ptr) AccessChain 37(data) 454 45 40 - 461: 22(int8_t) CompositeExtract 459 0 - Store 460 461 - 462: 62(ptr) AccessChain 37(data) 454 45 188 - 463: 22(int8_t) CompositeExtract 459 1 - Store 462 463 - 464: 6(int) Load 8(invocation) - 465: 67(ptr) AccessChain 37(data) 52 45 - 466: 23(i8vec4) Load 465 - 467: 72(i8vec3) VectorShuffle 466 466 0 1 2 - 468: 17(ivec4) Load 19(ballot) - 469: 72(i8vec3) GroupNonUniformIMul 177 PartitionedReduceNV 467 468 - 470: 62(ptr) AccessChain 37(data) 464 45 40 - 471: 22(int8_t) CompositeExtract 469 0 - Store 470 471 - 472: 62(ptr) AccessChain 37(data) 464 45 188 - 473: 22(int8_t) CompositeExtract 469 1 - Store 472 473 - 474: 62(ptr) AccessChain 37(data) 464 45 201 - 475: 22(int8_t) CompositeExtract 469 2 - Store 474 475 - 476: 6(int) Load 8(invocation) - 477: 67(ptr) AccessChain 37(data) 58 45 - 478: 23(i8vec4) Load 477 - 479: 17(ivec4) Load 19(ballot) - 480: 23(i8vec4) GroupNonUniformIMul 177 PartitionedReduceNV 478 479 - 481: 67(ptr) AccessChain 37(data) 476 45 - Store 481 480 - 482: 6(int) Load 8(invocation) - 483: 62(ptr) AccessChain 37(data) 39 45 40 - 484: 22(int8_t) Load 483 - 485: 17(ivec4) Load 19(ballot) - 486: 22(int8_t) GroupNonUniformUMin 177 PartitionedReduceNV 484 485 - 487: 62(ptr) AccessChain 37(data) 482 45 40 - Store 487 486 - 488: 6(int) Load 8(invocation) - 489: 67(ptr) AccessChain 37(data) 45 45 - 490: 23(i8vec4) Load 489 - 491: 66(i8vec2) VectorShuffle 490 490 0 1 - 492: 17(ivec4) Load 19(ballot) - 493: 66(i8vec2) GroupNonUniformUMin 177 PartitionedReduceNV 491 492 - 494: 62(ptr) AccessChain 37(data) 488 45 40 - 495: 22(int8_t) CompositeExtract 493 0 - Store 494 495 - 496: 62(ptr) AccessChain 37(data) 488 45 188 - 497: 22(int8_t) CompositeExtract 493 1 - Store 496 497 - 498: 6(int) Load 8(invocation) - 499: 67(ptr) AccessChain 37(data) 52 45 - 500: 23(i8vec4) Load 499 - 501: 72(i8vec3) VectorShuffle 500 500 0 1 2 - 502: 17(ivec4) Load 19(ballot) - 503: 72(i8vec3) GroupNonUniformUMin 177 PartitionedReduceNV 501 502 - 504: 62(ptr) AccessChain 37(data) 498 45 40 - 505: 22(int8_t) CompositeExtract 503 0 - Store 504 505 - 506: 62(ptr) AccessChain 37(data) 498 45 188 - 507: 22(int8_t) CompositeExtract 503 1 - Store 506 507 - 508: 62(ptr) AccessChain 37(data) 498 45 201 - 509: 22(int8_t) CompositeExtract 503 2 - Store 508 509 - 510: 6(int) Load 8(invocation) - 511: 67(ptr) AccessChain 37(data) 58 45 - 512: 23(i8vec4) Load 511 - 513: 17(ivec4) Load 19(ballot) - 514: 23(i8vec4) GroupNonUniformUMin 177 PartitionedReduceNV 512 513 - 515: 67(ptr) AccessChain 37(data) 510 45 - Store 515 514 - 516: 6(int) Load 8(invocation) - 517: 62(ptr) AccessChain 37(data) 39 45 40 - 518: 22(int8_t) Load 517 - 519: 17(ivec4) Load 19(ballot) - 520: 22(int8_t) GroupNonUniformUMax 177 PartitionedReduceNV 518 519 - 521: 62(ptr) AccessChain 37(data) 516 45 40 - Store 521 520 - 522: 6(int) Load 8(invocation) - 523: 67(ptr) AccessChain 37(data) 45 45 - 524: 23(i8vec4) Load 523 - 525: 66(i8vec2) VectorShuffle 524 524 0 1 - 526: 17(ivec4) Load 19(ballot) - 527: 66(i8vec2) GroupNonUniformUMax 177 PartitionedReduceNV 525 526 - 528: 62(ptr) AccessChain 37(data) 522 45 40 - 529: 22(int8_t) CompositeExtract 527 0 - Store 528 529 - 530: 62(ptr) AccessChain 37(data) 522 45 188 - 531: 22(int8_t) CompositeExtract 527 1 - Store 530 531 - 532: 6(int) Load 8(invocation) - 533: 67(ptr) AccessChain 37(data) 52 45 - 534: 23(i8vec4) Load 533 - 535: 72(i8vec3) VectorShuffle 534 534 0 1 2 - 536: 17(ivec4) Load 19(ballot) - 537: 72(i8vec3) GroupNonUniformUMax 177 PartitionedReduceNV 535 536 - 538: 62(ptr) AccessChain 37(data) 532 45 40 - 539: 22(int8_t) CompositeExtract 537 0 - Store 538 539 - 540: 62(ptr) AccessChain 37(data) 532 45 188 - 541: 22(int8_t) CompositeExtract 537 1 - Store 540 541 - 542: 62(ptr) AccessChain 37(data) 532 45 201 - 543: 22(int8_t) CompositeExtract 537 2 - Store 542 543 - 544: 6(int) Load 8(invocation) - 545: 67(ptr) AccessChain 37(data) 58 45 - 546: 23(i8vec4) Load 545 - 547: 17(ivec4) Load 19(ballot) - 548: 23(i8vec4) GroupNonUniformUMax 177 PartitionedReduceNV 546 547 - 549: 67(ptr) AccessChain 37(data) 544 45 - Store 549 548 - 550: 6(int) Load 8(invocation) - 551: 62(ptr) AccessChain 37(data) 39 45 40 - 552: 22(int8_t) Load 551 - 553: 17(ivec4) Load 19(ballot) - 554: 22(int8_t) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 552 553 - 555: 62(ptr) AccessChain 37(data) 550 45 40 - Store 555 554 - 556: 6(int) Load 8(invocation) - 557: 67(ptr) AccessChain 37(data) 45 45 - 558: 23(i8vec4) Load 557 - 559: 66(i8vec2) VectorShuffle 558 558 0 1 - 560: 17(ivec4) Load 19(ballot) - 561: 66(i8vec2) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 559 560 - 562: 62(ptr) AccessChain 37(data) 556 45 40 - 563: 22(int8_t) CompositeExtract 561 0 - Store 562 563 - 564: 62(ptr) AccessChain 37(data) 556 45 188 - 565: 22(int8_t) CompositeExtract 561 1 - Store 564 565 - 566: 6(int) Load 8(invocation) - 567: 67(ptr) AccessChain 37(data) 52 45 - 568: 23(i8vec4) Load 567 - 569: 72(i8vec3) VectorShuffle 568 568 0 1 2 - 570: 17(ivec4) Load 19(ballot) - 571: 72(i8vec3) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 569 570 - 572: 62(ptr) AccessChain 37(data) 566 45 40 - 573: 22(int8_t) CompositeExtract 571 0 - Store 572 573 - 574: 62(ptr) AccessChain 37(data) 566 45 188 - 575: 22(int8_t) CompositeExtract 571 1 - Store 574 575 - 576: 62(ptr) AccessChain 37(data) 566 45 201 - 577: 22(int8_t) CompositeExtract 571 2 - Store 576 577 - 578: 6(int) Load 8(invocation) - 579: 67(ptr) AccessChain 37(data) 58 45 - 580: 23(i8vec4) Load 579 - 581: 17(ivec4) Load 19(ballot) - 582: 23(i8vec4) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 580 581 - 583: 67(ptr) AccessChain 37(data) 578 45 - Store 583 582 - 584: 6(int) Load 8(invocation) - 585: 62(ptr) AccessChain 37(data) 39 45 40 - 586: 22(int8_t) Load 585 - 587: 17(ivec4) Load 19(ballot) - 588: 22(int8_t) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 586 587 - 589: 62(ptr) AccessChain 37(data) 584 45 40 - Store 589 588 - 590: 6(int) Load 8(invocation) - 591: 67(ptr) AccessChain 37(data) 45 45 - 592: 23(i8vec4) Load 591 - 593: 66(i8vec2) VectorShuffle 592 592 0 1 - 594: 17(ivec4) Load 19(ballot) - 595: 66(i8vec2) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 593 594 - 596: 62(ptr) AccessChain 37(data) 590 45 40 - 597: 22(int8_t) CompositeExtract 595 0 - Store 596 597 - 598: 62(ptr) AccessChain 37(data) 590 45 188 - 599: 22(int8_t) CompositeExtract 595 1 - Store 598 599 - 600: 6(int) Load 8(invocation) - 601: 67(ptr) AccessChain 37(data) 52 45 - 602: 23(i8vec4) Load 601 - 603: 72(i8vec3) VectorShuffle 602 602 0 1 2 - 604: 17(ivec4) Load 19(ballot) - 605: 72(i8vec3) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 603 604 - 606: 62(ptr) AccessChain 37(data) 600 45 40 - 607: 22(int8_t) CompositeExtract 605 0 - Store 606 607 - 608: 62(ptr) AccessChain 37(data) 600 45 188 - 609: 22(int8_t) CompositeExtract 605 1 - Store 608 609 - 610: 62(ptr) AccessChain 37(data) 600 45 201 - 611: 22(int8_t) CompositeExtract 605 2 - Store 610 611 - 612: 6(int) Load 8(invocation) - 613: 67(ptr) AccessChain 37(data) 58 45 - 614: 23(i8vec4) Load 613 - 615: 17(ivec4) Load 19(ballot) - 616: 23(i8vec4) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 614 615 - 617: 67(ptr) AccessChain 37(data) 612 45 - Store 617 616 - 618: 6(int) Load 8(invocation) - 619: 62(ptr) AccessChain 37(data) 39 45 40 - 620: 22(int8_t) Load 619 - 621: 17(ivec4) Load 19(ballot) - 622: 22(int8_t) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 620 621 - 623: 62(ptr) AccessChain 37(data) 618 45 40 - Store 623 622 - 624: 6(int) Load 8(invocation) - 625: 67(ptr) AccessChain 37(data) 45 45 - 626: 23(i8vec4) Load 625 - 627: 66(i8vec2) VectorShuffle 626 626 0 1 - 628: 17(ivec4) Load 19(ballot) - 629: 66(i8vec2) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 627 628 - 630: 62(ptr) AccessChain 37(data) 624 45 40 - 631: 22(int8_t) CompositeExtract 629 0 - Store 630 631 - 632: 62(ptr) AccessChain 37(data) 624 45 188 - 633: 22(int8_t) CompositeExtract 629 1 - Store 632 633 - 634: 6(int) Load 8(invocation) - 635: 67(ptr) AccessChain 37(data) 52 45 - 636: 23(i8vec4) Load 635 - 637: 72(i8vec3) VectorShuffle 636 636 0 1 2 - 638: 17(ivec4) Load 19(ballot) - 639: 72(i8vec3) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 637 638 - 640: 62(ptr) AccessChain 37(data) 634 45 40 - 641: 22(int8_t) CompositeExtract 639 0 - Store 640 641 - 642: 62(ptr) AccessChain 37(data) 634 45 188 - 643: 22(int8_t) CompositeExtract 639 1 - Store 642 643 - 644: 62(ptr) AccessChain 37(data) 634 45 201 - 645: 22(int8_t) CompositeExtract 639 2 - Store 644 645 - 646: 6(int) Load 8(invocation) - 647: 67(ptr) AccessChain 37(data) 58 45 - 648: 23(i8vec4) Load 647 - 649: 17(ivec4) Load 19(ballot) - 650: 23(i8vec4) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 648 649 - 651: 67(ptr) AccessChain 37(data) 646 45 - Store 651 650 - 652: 6(int) Load 8(invocation) - 653: 80(ptr) AccessChain 37(data) 39 52 40 - 654: 24(int16_t) Load 653 - 655: 17(ivec4) Load 19(ballot) - 656: 24(int16_t) GroupNonUniformIAdd 177 PartitionedReduceNV 654 655 - 657: 80(ptr) AccessChain 37(data) 652 52 40 - Store 657 656 - 658: 6(int) Load 8(invocation) - 659: 85(ptr) AccessChain 37(data) 45 52 - 660: 25(i16vec4) Load 659 - 661: 84(i16vec2) VectorShuffle 660 660 0 1 - 662: 17(ivec4) Load 19(ballot) - 663: 84(i16vec2) GroupNonUniformIAdd 177 PartitionedReduceNV 661 662 - 664: 80(ptr) AccessChain 37(data) 658 52 40 - 665: 24(int16_t) CompositeExtract 663 0 - Store 664 665 - 666: 80(ptr) AccessChain 37(data) 658 52 188 - 667: 24(int16_t) CompositeExtract 663 1 - Store 666 667 - 668: 6(int) Load 8(invocation) - 669: 85(ptr) AccessChain 37(data) 52 52 - 670: 25(i16vec4) Load 669 - 671: 90(i16vec3) VectorShuffle 670 670 0 1 2 - 672: 17(ivec4) Load 19(ballot) - 673: 90(i16vec3) GroupNonUniformIAdd 177 PartitionedReduceNV 671 672 - 674: 80(ptr) AccessChain 37(data) 668 52 40 - 675: 24(int16_t) CompositeExtract 673 0 - Store 674 675 - 676: 80(ptr) AccessChain 37(data) 668 52 188 - 677: 24(int16_t) CompositeExtract 673 1 - Store 676 677 - 678: 80(ptr) AccessChain 37(data) 668 52 201 - 679: 24(int16_t) CompositeExtract 673 2 - Store 678 679 - 680: 6(int) Load 8(invocation) - 681: 85(ptr) AccessChain 37(data) 58 52 - 682: 25(i16vec4) Load 681 - 683: 17(ivec4) Load 19(ballot) - 684: 25(i16vec4) GroupNonUniformIAdd 177 PartitionedReduceNV 682 683 - 685: 85(ptr) AccessChain 37(data) 680 52 - Store 685 684 - 686: 6(int) Load 8(invocation) - 687: 80(ptr) AccessChain 37(data) 39 52 40 - 688: 24(int16_t) Load 687 - 689: 17(ivec4) Load 19(ballot) - 690: 24(int16_t) GroupNonUniformIMul 177 PartitionedReduceNV 688 689 - 691: 80(ptr) AccessChain 37(data) 686 52 40 - Store 691 690 - 692: 6(int) Load 8(invocation) - 693: 85(ptr) AccessChain 37(data) 45 52 - 694: 25(i16vec4) Load 693 - 695: 84(i16vec2) VectorShuffle 694 694 0 1 - 696: 17(ivec4) Load 19(ballot) - 697: 84(i16vec2) GroupNonUniformIMul 177 PartitionedReduceNV 695 696 - 698: 80(ptr) AccessChain 37(data) 692 52 40 - 699: 24(int16_t) CompositeExtract 697 0 - Store 698 699 - 700: 80(ptr) AccessChain 37(data) 692 52 188 - 701: 24(int16_t) CompositeExtract 697 1 - Store 700 701 - 702: 6(int) Load 8(invocation) - 703: 85(ptr) AccessChain 37(data) 52 52 - 704: 25(i16vec4) Load 703 - 705: 90(i16vec3) VectorShuffle 704 704 0 1 2 - 706: 17(ivec4) Load 19(ballot) - 707: 90(i16vec3) GroupNonUniformIMul 177 PartitionedReduceNV 705 706 - 708: 80(ptr) AccessChain 37(data) 702 52 40 - 709: 24(int16_t) CompositeExtract 707 0 - Store 708 709 - 710: 80(ptr) AccessChain 37(data) 702 52 188 - 711: 24(int16_t) CompositeExtract 707 1 - Store 710 711 - 712: 80(ptr) AccessChain 37(data) 702 52 201 - 713: 24(int16_t) CompositeExtract 707 2 - Store 712 713 - 714: 6(int) Load 8(invocation) - 715: 85(ptr) AccessChain 37(data) 58 52 - 716: 25(i16vec4) Load 715 - 717: 17(ivec4) Load 19(ballot) - 718: 25(i16vec4) GroupNonUniformIMul 177 PartitionedReduceNV 716 717 - 719: 85(ptr) AccessChain 37(data) 714 52 - Store 719 718 - 720: 6(int) Load 8(invocation) - 721: 80(ptr) AccessChain 37(data) 39 52 40 - 722: 24(int16_t) Load 721 - 723: 17(ivec4) Load 19(ballot) - 724: 24(int16_t) GroupNonUniformSMin 177 PartitionedReduceNV 722 723 - 725: 80(ptr) AccessChain 37(data) 720 52 40 - Store 725 724 - 726: 6(int) Load 8(invocation) - 727: 85(ptr) AccessChain 37(data) 45 52 - 728: 25(i16vec4) Load 727 - 729: 84(i16vec2) VectorShuffle 728 728 0 1 - 730: 17(ivec4) Load 19(ballot) - 731: 84(i16vec2) GroupNonUniformSMin 177 PartitionedReduceNV 729 730 - 732: 80(ptr) AccessChain 37(data) 726 52 40 - 733: 24(int16_t) CompositeExtract 731 0 - Store 732 733 - 734: 80(ptr) AccessChain 37(data) 726 52 188 - 735: 24(int16_t) CompositeExtract 731 1 - Store 734 735 - 736: 6(int) Load 8(invocation) - 737: 85(ptr) AccessChain 37(data) 52 52 - 738: 25(i16vec4) Load 737 - 739: 90(i16vec3) VectorShuffle 738 738 0 1 2 - 740: 17(ivec4) Load 19(ballot) - 741: 90(i16vec3) GroupNonUniformSMin 177 PartitionedReduceNV 739 740 - 742: 80(ptr) AccessChain 37(data) 736 52 40 - 743: 24(int16_t) CompositeExtract 741 0 - Store 742 743 - 744: 80(ptr) AccessChain 37(data) 736 52 188 - 745: 24(int16_t) CompositeExtract 741 1 - Store 744 745 - 746: 80(ptr) AccessChain 37(data) 736 52 201 - 747: 24(int16_t) CompositeExtract 741 2 - Store 746 747 - 748: 6(int) Load 8(invocation) - 749: 85(ptr) AccessChain 37(data) 58 52 - 750: 25(i16vec4) Load 749 - 751: 17(ivec4) Load 19(ballot) - 752: 25(i16vec4) GroupNonUniformSMin 177 PartitionedReduceNV 750 751 - 753: 85(ptr) AccessChain 37(data) 748 52 - Store 753 752 - 754: 6(int) Load 8(invocation) - 755: 80(ptr) AccessChain 37(data) 39 52 40 - 756: 24(int16_t) Load 755 - 757: 17(ivec4) Load 19(ballot) - 758: 24(int16_t) GroupNonUniformSMax 177 PartitionedReduceNV 756 757 - 759: 80(ptr) AccessChain 37(data) 754 52 40 - Store 759 758 - 760: 6(int) Load 8(invocation) - 761: 85(ptr) AccessChain 37(data) 45 52 - 762: 25(i16vec4) Load 761 - 763: 84(i16vec2) VectorShuffle 762 762 0 1 - 764: 17(ivec4) Load 19(ballot) - 765: 84(i16vec2) GroupNonUniformSMax 177 PartitionedReduceNV 763 764 - 766: 80(ptr) AccessChain 37(data) 760 52 40 - 767: 24(int16_t) CompositeExtract 765 0 - Store 766 767 - 768: 80(ptr) AccessChain 37(data) 760 52 188 - 769: 24(int16_t) CompositeExtract 765 1 - Store 768 769 - 770: 6(int) Load 8(invocation) - 771: 85(ptr) AccessChain 37(data) 52 52 - 772: 25(i16vec4) Load 771 - 773: 90(i16vec3) VectorShuffle 772 772 0 1 2 - 774: 17(ivec4) Load 19(ballot) - 775: 90(i16vec3) GroupNonUniformSMax 177 PartitionedReduceNV 773 774 - 776: 80(ptr) AccessChain 37(data) 770 52 40 - 777: 24(int16_t) CompositeExtract 775 0 - Store 776 777 - 778: 80(ptr) AccessChain 37(data) 770 52 188 - 779: 24(int16_t) CompositeExtract 775 1 - Store 778 779 - 780: 80(ptr) AccessChain 37(data) 770 52 201 - 781: 24(int16_t) CompositeExtract 775 2 - Store 780 781 - 782: 6(int) Load 8(invocation) - 783: 85(ptr) AccessChain 37(data) 58 52 - 784: 25(i16vec4) Load 783 - 785: 17(ivec4) Load 19(ballot) - 786: 25(i16vec4) GroupNonUniformSMax 177 PartitionedReduceNV 784 785 - 787: 85(ptr) AccessChain 37(data) 782 52 - Store 787 786 - 788: 6(int) Load 8(invocation) - 789: 80(ptr) AccessChain 37(data) 39 52 40 - 790: 24(int16_t) Load 789 - 791: 17(ivec4) Load 19(ballot) - 792: 24(int16_t) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 790 791 - 793: 80(ptr) AccessChain 37(data) 788 52 40 - Store 793 792 - 794: 6(int) Load 8(invocation) - 795: 85(ptr) AccessChain 37(data) 45 52 - 796: 25(i16vec4) Load 795 - 797: 84(i16vec2) VectorShuffle 796 796 0 1 - 798: 17(ivec4) Load 19(ballot) - 799: 84(i16vec2) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 797 798 - 800: 80(ptr) AccessChain 37(data) 794 52 40 - 801: 24(int16_t) CompositeExtract 799 0 - Store 800 801 - 802: 80(ptr) AccessChain 37(data) 794 52 188 - 803: 24(int16_t) CompositeExtract 799 1 - Store 802 803 - 804: 6(int) Load 8(invocation) - 805: 85(ptr) AccessChain 37(data) 52 52 - 806: 25(i16vec4) Load 805 - 807: 90(i16vec3) VectorShuffle 806 806 0 1 2 - 808: 17(ivec4) Load 19(ballot) - 809: 90(i16vec3) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 807 808 - 810: 80(ptr) AccessChain 37(data) 804 52 40 - 811: 24(int16_t) CompositeExtract 809 0 - Store 810 811 - 812: 80(ptr) AccessChain 37(data) 804 52 188 - 813: 24(int16_t) CompositeExtract 809 1 - Store 812 813 - 814: 80(ptr) AccessChain 37(data) 804 52 201 - 815: 24(int16_t) CompositeExtract 809 2 - Store 814 815 - 816: 6(int) Load 8(invocation) - 817: 85(ptr) AccessChain 37(data) 58 52 - 818: 25(i16vec4) Load 817 - 819: 17(ivec4) Load 19(ballot) - 820: 25(i16vec4) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 818 819 - 821: 85(ptr) AccessChain 37(data) 816 52 - Store 821 820 - 822: 6(int) Load 8(invocation) - 823: 80(ptr) AccessChain 37(data) 39 52 40 - 824: 24(int16_t) Load 823 - 825: 17(ivec4) Load 19(ballot) - 826: 24(int16_t) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 824 825 - 827: 80(ptr) AccessChain 37(data) 822 52 40 - Store 827 826 - 828: 6(int) Load 8(invocation) - 829: 85(ptr) AccessChain 37(data) 45 52 - 830: 25(i16vec4) Load 829 - 831: 84(i16vec2) VectorShuffle 830 830 0 1 - 832: 17(ivec4) Load 19(ballot) - 833: 84(i16vec2) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 831 832 - 834: 80(ptr) AccessChain 37(data) 828 52 40 - 835: 24(int16_t) CompositeExtract 833 0 - Store 834 835 - 836: 80(ptr) AccessChain 37(data) 828 52 188 - 837: 24(int16_t) CompositeExtract 833 1 - Store 836 837 - 838: 6(int) Load 8(invocation) - 839: 85(ptr) AccessChain 37(data) 52 52 - 840: 25(i16vec4) Load 839 - 841: 90(i16vec3) VectorShuffle 840 840 0 1 2 - 842: 17(ivec4) Load 19(ballot) - 843: 90(i16vec3) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 841 842 - 844: 80(ptr) AccessChain 37(data) 838 52 40 - 845: 24(int16_t) CompositeExtract 843 0 - Store 844 845 - 846: 80(ptr) AccessChain 37(data) 838 52 188 - 847: 24(int16_t) CompositeExtract 843 1 - Store 846 847 - 848: 80(ptr) AccessChain 37(data) 838 52 201 - 849: 24(int16_t) CompositeExtract 843 2 - Store 848 849 - 850: 6(int) Load 8(invocation) - 851: 85(ptr) AccessChain 37(data) 58 52 - 852: 25(i16vec4) Load 851 - 853: 17(ivec4) Load 19(ballot) - 854: 25(i16vec4) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 852 853 - 855: 85(ptr) AccessChain 37(data) 850 52 - Store 855 854 - 856: 6(int) Load 8(invocation) - 857: 80(ptr) AccessChain 37(data) 39 52 40 - 858: 24(int16_t) Load 857 - 859: 17(ivec4) Load 19(ballot) - 860: 24(int16_t) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 858 859 - 861: 80(ptr) AccessChain 37(data) 856 52 40 - Store 861 860 - 862: 6(int) Load 8(invocation) - 863: 85(ptr) AccessChain 37(data) 45 52 - 864: 25(i16vec4) Load 863 - 865: 84(i16vec2) VectorShuffle 864 864 0 1 - 866: 17(ivec4) Load 19(ballot) - 867: 84(i16vec2) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 865 866 - 868: 80(ptr) AccessChain 37(data) 862 52 40 - 869: 24(int16_t) CompositeExtract 867 0 - Store 868 869 - 870: 80(ptr) AccessChain 37(data) 862 52 188 - 871: 24(int16_t) CompositeExtract 867 1 - Store 870 871 - 872: 6(int) Load 8(invocation) - 873: 85(ptr) AccessChain 37(data) 52 52 - 874: 25(i16vec4) Load 873 - 875: 90(i16vec3) VectorShuffle 874 874 0 1 2 - 876: 17(ivec4) Load 19(ballot) - 877: 90(i16vec3) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 875 876 - 878: 80(ptr) AccessChain 37(data) 872 52 40 - 879: 24(int16_t) CompositeExtract 877 0 - Store 878 879 - 880: 80(ptr) AccessChain 37(data) 872 52 188 - 881: 24(int16_t) CompositeExtract 877 1 - Store 880 881 - 882: 80(ptr) AccessChain 37(data) 872 52 201 - 883: 24(int16_t) CompositeExtract 877 2 - Store 882 883 - 884: 6(int) Load 8(invocation) - 885: 85(ptr) AccessChain 37(data) 58 52 - 886: 25(i16vec4) Load 885 - 887: 17(ivec4) Load 19(ballot) - 888: 25(i16vec4) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 886 887 - 889: 85(ptr) AccessChain 37(data) 884 52 - Store 889 888 - 890: 6(int) Load 8(invocation) - 891: 98(ptr) AccessChain 37(data) 39 58 40 - 892: 26(int16_t) Load 891 - 893: 17(ivec4) Load 19(ballot) - 894: 26(int16_t) GroupNonUniformIAdd 177 PartitionedReduceNV 892 893 - 895: 98(ptr) AccessChain 37(data) 890 58 40 - Store 895 894 - 896: 6(int) Load 8(invocation) - 897: 103(ptr) AccessChain 37(data) 45 58 - 898: 27(i16vec4) Load 897 - 899:102(i16vec2) VectorShuffle 898 898 0 1 - 900: 17(ivec4) Load 19(ballot) - 901:102(i16vec2) GroupNonUniformIAdd 177 PartitionedReduceNV 899 900 - 902: 98(ptr) AccessChain 37(data) 896 58 40 - 903: 26(int16_t) CompositeExtract 901 0 - Store 902 903 - 904: 98(ptr) AccessChain 37(data) 896 58 188 - 905: 26(int16_t) CompositeExtract 901 1 - Store 904 905 - 906: 6(int) Load 8(invocation) - 907: 103(ptr) AccessChain 37(data) 52 58 - 908: 27(i16vec4) Load 907 - 909:108(i16vec3) VectorShuffle 908 908 0 1 2 - 910: 17(ivec4) Load 19(ballot) - 911:108(i16vec3) GroupNonUniformIAdd 177 PartitionedReduceNV 909 910 - 912: 98(ptr) AccessChain 37(data) 906 58 40 - 913: 26(int16_t) CompositeExtract 911 0 - Store 912 913 - 914: 98(ptr) AccessChain 37(data) 906 58 188 - 915: 26(int16_t) CompositeExtract 911 1 - Store 914 915 - 916: 98(ptr) AccessChain 37(data) 906 58 201 - 917: 26(int16_t) CompositeExtract 911 2 - Store 916 917 - 918: 6(int) Load 8(invocation) - 919: 103(ptr) AccessChain 37(data) 58 58 - 920: 27(i16vec4) Load 919 - 921: 17(ivec4) Load 19(ballot) - 922: 27(i16vec4) GroupNonUniformIAdd 177 PartitionedReduceNV 920 921 - 923: 103(ptr) AccessChain 37(data) 918 58 - Store 923 922 - 924: 6(int) Load 8(invocation) - 925: 98(ptr) AccessChain 37(data) 39 58 40 - 926: 26(int16_t) Load 925 - 927: 17(ivec4) Load 19(ballot) - 928: 26(int16_t) GroupNonUniformIMul 177 PartitionedReduceNV 926 927 - 929: 98(ptr) AccessChain 37(data) 924 58 40 - Store 929 928 - 930: 6(int) Load 8(invocation) - 931: 103(ptr) AccessChain 37(data) 45 58 - 932: 27(i16vec4) Load 931 - 933:102(i16vec2) VectorShuffle 932 932 0 1 - 934: 17(ivec4) Load 19(ballot) - 935:102(i16vec2) GroupNonUniformIMul 177 PartitionedReduceNV 933 934 - 936: 98(ptr) AccessChain 37(data) 930 58 40 - 937: 26(int16_t) CompositeExtract 935 0 - Store 936 937 - 938: 98(ptr) AccessChain 37(data) 930 58 188 - 939: 26(int16_t) CompositeExtract 935 1 - Store 938 939 - 940: 6(int) Load 8(invocation) - 941: 103(ptr) AccessChain 37(data) 52 58 - 942: 27(i16vec4) Load 941 - 943:108(i16vec3) VectorShuffle 942 942 0 1 2 - 944: 17(ivec4) Load 19(ballot) - 945:108(i16vec3) GroupNonUniformIMul 177 PartitionedReduceNV 943 944 - 946: 98(ptr) AccessChain 37(data) 940 58 40 - 947: 26(int16_t) CompositeExtract 945 0 - Store 946 947 - 948: 98(ptr) AccessChain 37(data) 940 58 188 - 949: 26(int16_t) CompositeExtract 945 1 - Store 948 949 - 950: 98(ptr) AccessChain 37(data) 940 58 201 - 951: 26(int16_t) CompositeExtract 945 2 - Store 950 951 - 952: 6(int) Load 8(invocation) - 953: 103(ptr) AccessChain 37(data) 58 58 - 954: 27(i16vec4) Load 953 - 955: 17(ivec4) Load 19(ballot) - 956: 27(i16vec4) GroupNonUniformIMul 177 PartitionedReduceNV 954 955 - 957: 103(ptr) AccessChain 37(data) 952 58 - Store 957 956 - 958: 6(int) Load 8(invocation) - 959: 98(ptr) AccessChain 37(data) 39 58 40 - 960: 26(int16_t) Load 959 - 961: 17(ivec4) Load 19(ballot) - 962: 26(int16_t) GroupNonUniformUMin 177 PartitionedReduceNV 960 961 - 963: 98(ptr) AccessChain 37(data) 958 58 40 - Store 963 962 - 964: 6(int) Load 8(invocation) - 965: 103(ptr) AccessChain 37(data) 45 58 - 966: 27(i16vec4) Load 965 - 967:102(i16vec2) VectorShuffle 966 966 0 1 - 968: 17(ivec4) Load 19(ballot) - 969:102(i16vec2) GroupNonUniformUMin 177 PartitionedReduceNV 967 968 - 970: 98(ptr) AccessChain 37(data) 964 58 40 - 971: 26(int16_t) CompositeExtract 969 0 - Store 970 971 - 972: 98(ptr) AccessChain 37(data) 964 58 188 - 973: 26(int16_t) CompositeExtract 969 1 - Store 972 973 - 974: 6(int) Load 8(invocation) - 975: 103(ptr) AccessChain 37(data) 52 58 - 976: 27(i16vec4) Load 975 - 977:108(i16vec3) VectorShuffle 976 976 0 1 2 - 978: 17(ivec4) Load 19(ballot) - 979:108(i16vec3) GroupNonUniformUMin 177 PartitionedReduceNV 977 978 - 980: 98(ptr) AccessChain 37(data) 974 58 40 - 981: 26(int16_t) CompositeExtract 979 0 - Store 980 981 - 982: 98(ptr) AccessChain 37(data) 974 58 188 - 983: 26(int16_t) CompositeExtract 979 1 - Store 982 983 - 984: 98(ptr) AccessChain 37(data) 974 58 201 - 985: 26(int16_t) CompositeExtract 979 2 - Store 984 985 - 986: 6(int) Load 8(invocation) - 987: 103(ptr) AccessChain 37(data) 58 58 - 988: 27(i16vec4) Load 987 - 989: 17(ivec4) Load 19(ballot) - 990: 27(i16vec4) GroupNonUniformUMin 177 PartitionedReduceNV 988 989 - 991: 103(ptr) AccessChain 37(data) 986 58 - Store 991 990 - 992: 6(int) Load 8(invocation) - 993: 98(ptr) AccessChain 37(data) 39 58 40 - 994: 26(int16_t) Load 993 - 995: 17(ivec4) Load 19(ballot) - 996: 26(int16_t) GroupNonUniformUMax 177 PartitionedReduceNV 994 995 - 997: 98(ptr) AccessChain 37(data) 992 58 40 - Store 997 996 - 998: 6(int) Load 8(invocation) - 999: 103(ptr) AccessChain 37(data) 45 58 - 1000: 27(i16vec4) Load 999 - 1001:102(i16vec2) VectorShuffle 1000 1000 0 1 - 1002: 17(ivec4) Load 19(ballot) - 1003:102(i16vec2) GroupNonUniformUMax 177 PartitionedReduceNV 1001 1002 - 1004: 98(ptr) AccessChain 37(data) 998 58 40 - 1005: 26(int16_t) CompositeExtract 1003 0 - Store 1004 1005 - 1006: 98(ptr) AccessChain 37(data) 998 58 188 - 1007: 26(int16_t) CompositeExtract 1003 1 - Store 1006 1007 - 1008: 6(int) Load 8(invocation) - 1009: 103(ptr) AccessChain 37(data) 52 58 - 1010: 27(i16vec4) Load 1009 - 1011:108(i16vec3) VectorShuffle 1010 1010 0 1 2 - 1012: 17(ivec4) Load 19(ballot) - 1013:108(i16vec3) GroupNonUniformUMax 177 PartitionedReduceNV 1011 1012 - 1014: 98(ptr) AccessChain 37(data) 1008 58 40 - 1015: 26(int16_t) CompositeExtract 1013 0 - Store 1014 1015 - 1016: 98(ptr) AccessChain 37(data) 1008 58 188 - 1017: 26(int16_t) CompositeExtract 1013 1 - Store 1016 1017 - 1018: 98(ptr) AccessChain 37(data) 1008 58 201 - 1019: 26(int16_t) CompositeExtract 1013 2 - Store 1018 1019 - 1020: 6(int) Load 8(invocation) - 1021: 103(ptr) AccessChain 37(data) 58 58 - 1022: 27(i16vec4) Load 1021 - 1023: 17(ivec4) Load 19(ballot) - 1024: 27(i16vec4) GroupNonUniformUMax 177 PartitionedReduceNV 1022 1023 - 1025: 103(ptr) AccessChain 37(data) 1020 58 - Store 1025 1024 - 1026: 6(int) Load 8(invocation) - 1027: 98(ptr) AccessChain 37(data) 39 58 40 - 1028: 26(int16_t) Load 1027 - 1029: 17(ivec4) Load 19(ballot) - 1030: 26(int16_t) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1028 1029 - 1031: 98(ptr) AccessChain 37(data) 1026 58 40 - Store 1031 1030 - 1032: 6(int) Load 8(invocation) - 1033: 103(ptr) AccessChain 37(data) 45 58 - 1034: 27(i16vec4) Load 1033 - 1035:102(i16vec2) VectorShuffle 1034 1034 0 1 - 1036: 17(ivec4) Load 19(ballot) - 1037:102(i16vec2) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1035 1036 - 1038: 98(ptr) AccessChain 37(data) 1032 58 40 - 1039: 26(int16_t) CompositeExtract 1037 0 - Store 1038 1039 - 1040: 98(ptr) AccessChain 37(data) 1032 58 188 - 1041: 26(int16_t) CompositeExtract 1037 1 - Store 1040 1041 - 1042: 6(int) Load 8(invocation) - 1043: 103(ptr) AccessChain 37(data) 52 58 - 1044: 27(i16vec4) Load 1043 - 1045:108(i16vec3) VectorShuffle 1044 1044 0 1 2 - 1046: 17(ivec4) Load 19(ballot) - 1047:108(i16vec3) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1045 1046 - 1048: 98(ptr) AccessChain 37(data) 1042 58 40 - 1049: 26(int16_t) CompositeExtract 1047 0 - Store 1048 1049 - 1050: 98(ptr) AccessChain 37(data) 1042 58 188 - 1051: 26(int16_t) CompositeExtract 1047 1 - Store 1050 1051 - 1052: 98(ptr) AccessChain 37(data) 1042 58 201 - 1053: 26(int16_t) CompositeExtract 1047 2 - Store 1052 1053 - 1054: 6(int) Load 8(invocation) - 1055: 103(ptr) AccessChain 37(data) 58 58 - 1056: 27(i16vec4) Load 1055 - 1057: 17(ivec4) Load 19(ballot) - 1058: 27(i16vec4) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1056 1057 - 1059: 103(ptr) AccessChain 37(data) 1054 58 - Store 1059 1058 - 1060: 6(int) Load 8(invocation) - 1061: 98(ptr) AccessChain 37(data) 39 58 40 - 1062: 26(int16_t) Load 1061 - 1063: 17(ivec4) Load 19(ballot) - 1064: 26(int16_t) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1062 1063 - 1065: 98(ptr) AccessChain 37(data) 1060 58 40 - Store 1065 1064 - 1066: 6(int) Load 8(invocation) - 1067: 103(ptr) AccessChain 37(data) 45 58 - 1068: 27(i16vec4) Load 1067 - 1069:102(i16vec2) VectorShuffle 1068 1068 0 1 - 1070: 17(ivec4) Load 19(ballot) - 1071:102(i16vec2) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1069 1070 - 1072: 98(ptr) AccessChain 37(data) 1066 58 40 - 1073: 26(int16_t) CompositeExtract 1071 0 - Store 1072 1073 - 1074: 98(ptr) AccessChain 37(data) 1066 58 188 - 1075: 26(int16_t) CompositeExtract 1071 1 - Store 1074 1075 - 1076: 6(int) Load 8(invocation) - 1077: 103(ptr) AccessChain 37(data) 52 58 - 1078: 27(i16vec4) Load 1077 - 1079:108(i16vec3) VectorShuffle 1078 1078 0 1 2 - 1080: 17(ivec4) Load 19(ballot) - 1081:108(i16vec3) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1079 1080 - 1082: 98(ptr) AccessChain 37(data) 1076 58 40 - 1083: 26(int16_t) CompositeExtract 1081 0 - Store 1082 1083 - 1084: 98(ptr) AccessChain 37(data) 1076 58 188 - 1085: 26(int16_t) CompositeExtract 1081 1 - Store 1084 1085 - 1086: 98(ptr) AccessChain 37(data) 1076 58 201 - 1087: 26(int16_t) CompositeExtract 1081 2 - Store 1086 1087 - 1088: 6(int) Load 8(invocation) - 1089: 103(ptr) AccessChain 37(data) 58 58 - 1090: 27(i16vec4) Load 1089 - 1091: 17(ivec4) Load 19(ballot) - 1092: 27(i16vec4) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1090 1091 - 1093: 103(ptr) AccessChain 37(data) 1088 58 - Store 1093 1092 - 1094: 6(int) Load 8(invocation) - 1095: 98(ptr) AccessChain 37(data) 39 58 40 - 1096: 26(int16_t) Load 1095 - 1097: 17(ivec4) Load 19(ballot) - 1098: 26(int16_t) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1096 1097 - 1099: 98(ptr) AccessChain 37(data) 1094 58 40 - Store 1099 1098 - 1100: 6(int) Load 8(invocation) - 1101: 103(ptr) AccessChain 37(data) 45 58 - 1102: 27(i16vec4) Load 1101 - 1103:102(i16vec2) VectorShuffle 1102 1102 0 1 - 1104: 17(ivec4) Load 19(ballot) - 1105:102(i16vec2) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1103 1104 - 1106: 98(ptr) AccessChain 37(data) 1100 58 40 - 1107: 26(int16_t) CompositeExtract 1105 0 - Store 1106 1107 - 1108: 98(ptr) AccessChain 37(data) 1100 58 188 - 1109: 26(int16_t) CompositeExtract 1105 1 - Store 1108 1109 - 1110: 6(int) Load 8(invocation) - 1111: 103(ptr) AccessChain 37(data) 52 58 - 1112: 27(i16vec4) Load 1111 - 1113:108(i16vec3) VectorShuffle 1112 1112 0 1 2 - 1114: 17(ivec4) Load 19(ballot) - 1115:108(i16vec3) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1113 1114 - 1116: 98(ptr) AccessChain 37(data) 1110 58 40 - 1117: 26(int16_t) CompositeExtract 1115 0 - Store 1116 1117 - 1118: 98(ptr) AccessChain 37(data) 1110 58 188 - 1119: 26(int16_t) CompositeExtract 1115 1 - Store 1118 1119 - 1120: 98(ptr) AccessChain 37(data) 1110 58 201 - 1121: 26(int16_t) CompositeExtract 1115 2 - Store 1120 1121 - 1122: 6(int) Load 8(invocation) - 1123: 103(ptr) AccessChain 37(data) 58 58 - 1124: 27(i16vec4) Load 1123 - 1125: 17(ivec4) Load 19(ballot) - 1126: 27(i16vec4) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1124 1125 - 1127: 103(ptr) AccessChain 37(data) 1122 58 - Store 1127 1126 - 1128: 6(int) Load 8(invocation) - 1129: 117(ptr) AccessChain 37(data) 39 116 40 - 1130: 28(int64_t) Load 1129 - 1131: 17(ivec4) Load 19(ballot) - 1132: 28(int64_t) GroupNonUniformIAdd 177 PartitionedReduceNV 1130 1131 - 1133: 117(ptr) AccessChain 37(data) 1128 116 40 - Store 1133 1132 - 1134: 6(int) Load 8(invocation) - 1135: 122(ptr) AccessChain 37(data) 45 116 - 1136: 29(i64vec4) Load 1135 - 1137:121(i64vec2) VectorShuffle 1136 1136 0 1 - 1138: 17(ivec4) Load 19(ballot) - 1139:121(i64vec2) GroupNonUniformIAdd 177 PartitionedReduceNV 1137 1138 - 1140: 117(ptr) AccessChain 37(data) 1134 116 40 - 1141: 28(int64_t) CompositeExtract 1139 0 - Store 1140 1141 - 1142: 117(ptr) AccessChain 37(data) 1134 116 188 - 1143: 28(int64_t) CompositeExtract 1139 1 - Store 1142 1143 - 1144: 6(int) Load 8(invocation) - 1145: 122(ptr) AccessChain 37(data) 52 116 - 1146: 29(i64vec4) Load 1145 - 1147:127(i64vec3) VectorShuffle 1146 1146 0 1 2 - 1148: 17(ivec4) Load 19(ballot) - 1149:127(i64vec3) GroupNonUniformIAdd 177 PartitionedReduceNV 1147 1148 - 1150: 117(ptr) AccessChain 37(data) 1144 116 40 - 1151: 28(int64_t) CompositeExtract 1149 0 - Store 1150 1151 - 1152: 117(ptr) AccessChain 37(data) 1144 116 188 - 1153: 28(int64_t) CompositeExtract 1149 1 - Store 1152 1153 - 1154: 117(ptr) AccessChain 37(data) 1144 116 201 - 1155: 28(int64_t) CompositeExtract 1149 2 - Store 1154 1155 - 1156: 6(int) Load 8(invocation) - 1157: 122(ptr) AccessChain 37(data) 58 116 - 1158: 29(i64vec4) Load 1157 - 1159: 17(ivec4) Load 19(ballot) - 1160: 29(i64vec4) GroupNonUniformIAdd 177 PartitionedReduceNV 1158 1159 - 1161: 122(ptr) AccessChain 37(data) 1156 116 - Store 1161 1160 - 1162: 6(int) Load 8(invocation) - 1163: 117(ptr) AccessChain 37(data) 39 116 40 - 1164: 28(int64_t) Load 1163 - 1165: 17(ivec4) Load 19(ballot) - 1166: 28(int64_t) GroupNonUniformIMul 177 PartitionedReduceNV 1164 1165 - 1167: 117(ptr) AccessChain 37(data) 1162 116 40 - Store 1167 1166 - 1168: 6(int) Load 8(invocation) - 1169: 122(ptr) AccessChain 37(data) 45 116 - 1170: 29(i64vec4) Load 1169 - 1171:121(i64vec2) VectorShuffle 1170 1170 0 1 - 1172: 17(ivec4) Load 19(ballot) - 1173:121(i64vec2) GroupNonUniformIMul 177 PartitionedReduceNV 1171 1172 - 1174: 117(ptr) AccessChain 37(data) 1168 116 40 - 1175: 28(int64_t) CompositeExtract 1173 0 - Store 1174 1175 - 1176: 117(ptr) AccessChain 37(data) 1168 116 188 - 1177: 28(int64_t) CompositeExtract 1173 1 - Store 1176 1177 - 1178: 6(int) Load 8(invocation) - 1179: 122(ptr) AccessChain 37(data) 52 116 - 1180: 29(i64vec4) Load 1179 - 1181:127(i64vec3) VectorShuffle 1180 1180 0 1 2 - 1182: 17(ivec4) Load 19(ballot) - 1183:127(i64vec3) GroupNonUniformIMul 177 PartitionedReduceNV 1181 1182 - 1184: 117(ptr) AccessChain 37(data) 1178 116 40 - 1185: 28(int64_t) CompositeExtract 1183 0 - Store 1184 1185 - 1186: 117(ptr) AccessChain 37(data) 1178 116 188 - 1187: 28(int64_t) CompositeExtract 1183 1 - Store 1186 1187 - 1188: 117(ptr) AccessChain 37(data) 1178 116 201 - 1189: 28(int64_t) CompositeExtract 1183 2 - Store 1188 1189 - 1190: 6(int) Load 8(invocation) - 1191: 122(ptr) AccessChain 37(data) 58 116 - 1192: 29(i64vec4) Load 1191 - 1193: 17(ivec4) Load 19(ballot) - 1194: 29(i64vec4) GroupNonUniformIMul 177 PartitionedReduceNV 1192 1193 - 1195: 122(ptr) AccessChain 37(data) 1190 116 - Store 1195 1194 - 1196: 6(int) Load 8(invocation) - 1197: 117(ptr) AccessChain 37(data) 39 116 40 - 1198: 28(int64_t) Load 1197 - 1199: 17(ivec4) Load 19(ballot) - 1200: 28(int64_t) GroupNonUniformSMin 177 PartitionedReduceNV 1198 1199 - 1201: 117(ptr) AccessChain 37(data) 1196 116 40 - Store 1201 1200 - 1202: 6(int) Load 8(invocation) - 1203: 122(ptr) AccessChain 37(data) 45 116 - 1204: 29(i64vec4) Load 1203 - 1205:121(i64vec2) VectorShuffle 1204 1204 0 1 - 1206: 17(ivec4) Load 19(ballot) - 1207:121(i64vec2) GroupNonUniformSMin 177 PartitionedReduceNV 1205 1206 - 1208: 117(ptr) AccessChain 37(data) 1202 116 40 - 1209: 28(int64_t) CompositeExtract 1207 0 - Store 1208 1209 - 1210: 117(ptr) AccessChain 37(data) 1202 116 188 - 1211: 28(int64_t) CompositeExtract 1207 1 - Store 1210 1211 - 1212: 6(int) Load 8(invocation) - 1213: 122(ptr) AccessChain 37(data) 52 116 - 1214: 29(i64vec4) Load 1213 - 1215:127(i64vec3) VectorShuffle 1214 1214 0 1 2 - 1216: 17(ivec4) Load 19(ballot) - 1217:127(i64vec3) GroupNonUniformSMin 177 PartitionedReduceNV 1215 1216 - 1218: 117(ptr) AccessChain 37(data) 1212 116 40 - 1219: 28(int64_t) CompositeExtract 1217 0 - Store 1218 1219 - 1220: 117(ptr) AccessChain 37(data) 1212 116 188 - 1221: 28(int64_t) CompositeExtract 1217 1 - Store 1220 1221 - 1222: 117(ptr) AccessChain 37(data) 1212 116 201 - 1223: 28(int64_t) CompositeExtract 1217 2 - Store 1222 1223 - 1224: 6(int) Load 8(invocation) - 1225: 122(ptr) AccessChain 37(data) 58 116 - 1226: 29(i64vec4) Load 1225 - 1227: 17(ivec4) Load 19(ballot) - 1228: 29(i64vec4) GroupNonUniformSMin 177 PartitionedReduceNV 1226 1227 - 1229: 122(ptr) AccessChain 37(data) 1224 116 - Store 1229 1228 - 1230: 6(int) Load 8(invocation) - 1231: 117(ptr) AccessChain 37(data) 39 116 40 - 1232: 28(int64_t) Load 1231 - 1233: 17(ivec4) Load 19(ballot) - 1234: 28(int64_t) GroupNonUniformSMax 177 PartitionedReduceNV 1232 1233 - 1235: 117(ptr) AccessChain 37(data) 1230 116 40 - Store 1235 1234 - 1236: 6(int) Load 8(invocation) - 1237: 122(ptr) AccessChain 37(data) 45 116 - 1238: 29(i64vec4) Load 1237 - 1239:121(i64vec2) VectorShuffle 1238 1238 0 1 - 1240: 17(ivec4) Load 19(ballot) - 1241:121(i64vec2) GroupNonUniformSMax 177 PartitionedReduceNV 1239 1240 - 1242: 117(ptr) AccessChain 37(data) 1236 116 40 - 1243: 28(int64_t) CompositeExtract 1241 0 - Store 1242 1243 - 1244: 117(ptr) AccessChain 37(data) 1236 116 188 - 1245: 28(int64_t) CompositeExtract 1241 1 - Store 1244 1245 - 1246: 6(int) Load 8(invocation) - 1247: 122(ptr) AccessChain 37(data) 52 116 - 1248: 29(i64vec4) Load 1247 - 1249:127(i64vec3) VectorShuffle 1248 1248 0 1 2 - 1250: 17(ivec4) Load 19(ballot) - 1251:127(i64vec3) GroupNonUniformSMax 177 PartitionedReduceNV 1249 1250 - 1252: 117(ptr) AccessChain 37(data) 1246 116 40 - 1253: 28(int64_t) CompositeExtract 1251 0 - Store 1252 1253 - 1254: 117(ptr) AccessChain 37(data) 1246 116 188 - 1255: 28(int64_t) CompositeExtract 1251 1 - Store 1254 1255 - 1256: 117(ptr) AccessChain 37(data) 1246 116 201 - 1257: 28(int64_t) CompositeExtract 1251 2 - Store 1256 1257 - 1258: 6(int) Load 8(invocation) - 1259: 122(ptr) AccessChain 37(data) 58 116 - 1260: 29(i64vec4) Load 1259 - 1261: 17(ivec4) Load 19(ballot) - 1262: 29(i64vec4) GroupNonUniformSMax 177 PartitionedReduceNV 1260 1261 - 1263: 122(ptr) AccessChain 37(data) 1258 116 - Store 1263 1262 - 1264: 6(int) Load 8(invocation) - 1265: 117(ptr) AccessChain 37(data) 39 116 40 - 1266: 28(int64_t) Load 1265 - 1267: 17(ivec4) Load 19(ballot) - 1268: 28(int64_t) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1266 1267 - 1269: 117(ptr) AccessChain 37(data) 1264 116 40 - Store 1269 1268 - 1270: 6(int) Load 8(invocation) - 1271: 122(ptr) AccessChain 37(data) 45 116 - 1272: 29(i64vec4) Load 1271 - 1273:121(i64vec2) VectorShuffle 1272 1272 0 1 - 1274: 17(ivec4) Load 19(ballot) - 1275:121(i64vec2) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1273 1274 - 1276: 117(ptr) AccessChain 37(data) 1270 116 40 - 1277: 28(int64_t) CompositeExtract 1275 0 - Store 1276 1277 - 1278: 117(ptr) AccessChain 37(data) 1270 116 188 - 1279: 28(int64_t) CompositeExtract 1275 1 - Store 1278 1279 - 1280: 6(int) Load 8(invocation) - 1281: 122(ptr) AccessChain 37(data) 52 116 - 1282: 29(i64vec4) Load 1281 - 1283:127(i64vec3) VectorShuffle 1282 1282 0 1 2 - 1284: 17(ivec4) Load 19(ballot) - 1285:127(i64vec3) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1283 1284 - 1286: 117(ptr) AccessChain 37(data) 1280 116 40 - 1287: 28(int64_t) CompositeExtract 1285 0 - Store 1286 1287 - 1288: 117(ptr) AccessChain 37(data) 1280 116 188 - 1289: 28(int64_t) CompositeExtract 1285 1 - Store 1288 1289 - 1290: 117(ptr) AccessChain 37(data) 1280 116 201 - 1291: 28(int64_t) CompositeExtract 1285 2 - Store 1290 1291 - 1292: 6(int) Load 8(invocation) - 1293: 122(ptr) AccessChain 37(data) 58 116 - 1294: 29(i64vec4) Load 1293 - 1295: 17(ivec4) Load 19(ballot) - 1296: 29(i64vec4) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1294 1295 - 1297: 122(ptr) AccessChain 37(data) 1292 116 - Store 1297 1296 - 1298: 6(int) Load 8(invocation) - 1299: 117(ptr) AccessChain 37(data) 39 116 40 - 1300: 28(int64_t) Load 1299 - 1301: 17(ivec4) Load 19(ballot) - 1302: 28(int64_t) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1300 1301 - 1303: 117(ptr) AccessChain 37(data) 1298 116 40 - Store 1303 1302 - 1304: 6(int) Load 8(invocation) - 1305: 122(ptr) AccessChain 37(data) 45 116 - 1306: 29(i64vec4) Load 1305 - 1307:121(i64vec2) VectorShuffle 1306 1306 0 1 - 1308: 17(ivec4) Load 19(ballot) - 1309:121(i64vec2) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1307 1308 - 1310: 117(ptr) AccessChain 37(data) 1304 116 40 - 1311: 28(int64_t) CompositeExtract 1309 0 - Store 1310 1311 - 1312: 117(ptr) AccessChain 37(data) 1304 116 188 - 1313: 28(int64_t) CompositeExtract 1309 1 - Store 1312 1313 - 1314: 6(int) Load 8(invocation) - 1315: 122(ptr) AccessChain 37(data) 52 116 - 1316: 29(i64vec4) Load 1315 - 1317:127(i64vec3) VectorShuffle 1316 1316 0 1 2 - 1318: 17(ivec4) Load 19(ballot) - 1319:127(i64vec3) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1317 1318 - 1320: 117(ptr) AccessChain 37(data) 1314 116 40 - 1321: 28(int64_t) CompositeExtract 1319 0 - Store 1320 1321 - 1322: 117(ptr) AccessChain 37(data) 1314 116 188 - 1323: 28(int64_t) CompositeExtract 1319 1 - Store 1322 1323 - 1324: 117(ptr) AccessChain 37(data) 1314 116 201 - 1325: 28(int64_t) CompositeExtract 1319 2 - Store 1324 1325 - 1326: 6(int) Load 8(invocation) - 1327: 122(ptr) AccessChain 37(data) 58 116 - 1328: 29(i64vec4) Load 1327 - 1329: 17(ivec4) Load 19(ballot) - 1330: 29(i64vec4) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1328 1329 - 1331: 122(ptr) AccessChain 37(data) 1326 116 - Store 1331 1330 - 1332: 6(int) Load 8(invocation) - 1333: 117(ptr) AccessChain 37(data) 39 116 40 - 1334: 28(int64_t) Load 1333 - 1335: 17(ivec4) Load 19(ballot) - 1336: 28(int64_t) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1334 1335 - 1337: 117(ptr) AccessChain 37(data) 1332 116 40 - Store 1337 1336 - 1338: 6(int) Load 8(invocation) - 1339: 122(ptr) AccessChain 37(data) 45 116 - 1340: 29(i64vec4) Load 1339 - 1341:121(i64vec2) VectorShuffle 1340 1340 0 1 - 1342: 17(ivec4) Load 19(ballot) - 1343:121(i64vec2) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1341 1342 - 1344: 117(ptr) AccessChain 37(data) 1338 116 40 - 1345: 28(int64_t) CompositeExtract 1343 0 - Store 1344 1345 - 1346: 117(ptr) AccessChain 37(data) 1338 116 188 - 1347: 28(int64_t) CompositeExtract 1343 1 - Store 1346 1347 - 1348: 6(int) Load 8(invocation) - 1349: 122(ptr) AccessChain 37(data) 52 116 - 1350: 29(i64vec4) Load 1349 - 1351:127(i64vec3) VectorShuffle 1350 1350 0 1 2 - 1352: 17(ivec4) Load 19(ballot) - 1353:127(i64vec3) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1351 1352 - 1354: 117(ptr) AccessChain 37(data) 1348 116 40 - 1355: 28(int64_t) CompositeExtract 1353 0 - Store 1354 1355 - 1356: 117(ptr) AccessChain 37(data) 1348 116 188 - 1357: 28(int64_t) CompositeExtract 1353 1 - Store 1356 1357 - 1358: 117(ptr) AccessChain 37(data) 1348 116 201 - 1359: 28(int64_t) CompositeExtract 1353 2 - Store 1358 1359 - 1360: 6(int) Load 8(invocation) - 1361: 122(ptr) AccessChain 37(data) 58 116 - 1362: 29(i64vec4) Load 1361 - 1363: 17(ivec4) Load 19(ballot) - 1364: 29(i64vec4) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1362 1363 - 1365: 122(ptr) AccessChain 37(data) 1360 116 - Store 1365 1364 - 1366: 6(int) Load 8(invocation) - 1367: 136(ptr) AccessChain 37(data) 39 135 40 - 1368: 30(int64_t) Load 1367 - 1369: 17(ivec4) Load 19(ballot) - 1370: 30(int64_t) GroupNonUniformIAdd 177 PartitionedReduceNV 1368 1369 - 1371: 136(ptr) AccessChain 37(data) 1366 135 40 - Store 1371 1370 - 1372: 6(int) Load 8(invocation) - 1373: 141(ptr) AccessChain 37(data) 45 135 - 1374: 31(i64vec4) Load 1373 - 1375:140(i64vec2) VectorShuffle 1374 1374 0 1 - 1376: 17(ivec4) Load 19(ballot) - 1377:140(i64vec2) GroupNonUniformIAdd 177 PartitionedReduceNV 1375 1376 - 1378: 136(ptr) AccessChain 37(data) 1372 135 40 - 1379: 30(int64_t) CompositeExtract 1377 0 - Store 1378 1379 - 1380: 136(ptr) AccessChain 37(data) 1372 135 188 - 1381: 30(int64_t) CompositeExtract 1377 1 - Store 1380 1381 - 1382: 6(int) Load 8(invocation) - 1383: 141(ptr) AccessChain 37(data) 52 135 - 1384: 31(i64vec4) Load 1383 - 1385:146(i64vec3) VectorShuffle 1384 1384 0 1 2 - 1386: 17(ivec4) Load 19(ballot) - 1387:146(i64vec3) GroupNonUniformIAdd 177 PartitionedReduceNV 1385 1386 - 1388: 136(ptr) AccessChain 37(data) 1382 135 40 - 1389: 30(int64_t) CompositeExtract 1387 0 - Store 1388 1389 - 1390: 136(ptr) AccessChain 37(data) 1382 135 188 - 1391: 30(int64_t) CompositeExtract 1387 1 - Store 1390 1391 - 1392: 136(ptr) AccessChain 37(data) 1382 135 201 - 1393: 30(int64_t) CompositeExtract 1387 2 - Store 1392 1393 - 1394: 6(int) Load 8(invocation) - 1395: 141(ptr) AccessChain 37(data) 58 135 - 1396: 31(i64vec4) Load 1395 - 1397: 17(ivec4) Load 19(ballot) - 1398: 31(i64vec4) GroupNonUniformIAdd 177 PartitionedReduceNV 1396 1397 - 1399: 141(ptr) AccessChain 37(data) 1394 135 - Store 1399 1398 - 1400: 6(int) Load 8(invocation) - 1401: 136(ptr) AccessChain 37(data) 39 135 40 - 1402: 30(int64_t) Load 1401 - 1403: 17(ivec4) Load 19(ballot) - 1404: 30(int64_t) GroupNonUniformIMul 177 PartitionedReduceNV 1402 1403 - 1405: 136(ptr) AccessChain 37(data) 1400 135 40 - Store 1405 1404 - 1406: 6(int) Load 8(invocation) - 1407: 141(ptr) AccessChain 37(data) 45 135 - 1408: 31(i64vec4) Load 1407 - 1409:140(i64vec2) VectorShuffle 1408 1408 0 1 - 1410: 17(ivec4) Load 19(ballot) - 1411:140(i64vec2) GroupNonUniformIMul 177 PartitionedReduceNV 1409 1410 - 1412: 136(ptr) AccessChain 37(data) 1406 135 40 - 1413: 30(int64_t) CompositeExtract 1411 0 - Store 1412 1413 - 1414: 136(ptr) AccessChain 37(data) 1406 135 188 - 1415: 30(int64_t) CompositeExtract 1411 1 - Store 1414 1415 - 1416: 6(int) Load 8(invocation) - 1417: 141(ptr) AccessChain 37(data) 52 135 - 1418: 31(i64vec4) Load 1417 - 1419:146(i64vec3) VectorShuffle 1418 1418 0 1 2 - 1420: 17(ivec4) Load 19(ballot) - 1421:146(i64vec3) GroupNonUniformIMul 177 PartitionedReduceNV 1419 1420 - 1422: 136(ptr) AccessChain 37(data) 1416 135 40 - 1423: 30(int64_t) CompositeExtract 1421 0 - Store 1422 1423 - 1424: 136(ptr) AccessChain 37(data) 1416 135 188 - 1425: 30(int64_t) CompositeExtract 1421 1 - Store 1424 1425 - 1426: 136(ptr) AccessChain 37(data) 1416 135 201 - 1427: 30(int64_t) CompositeExtract 1421 2 - Store 1426 1427 - 1428: 6(int) Load 8(invocation) - 1429: 141(ptr) AccessChain 37(data) 58 135 - 1430: 31(i64vec4) Load 1429 - 1431: 17(ivec4) Load 19(ballot) - 1432: 31(i64vec4) GroupNonUniformIMul 177 PartitionedReduceNV 1430 1431 - 1433: 141(ptr) AccessChain 37(data) 1428 135 - Store 1433 1432 - 1434: 6(int) Load 8(invocation) - 1435: 136(ptr) AccessChain 37(data) 39 135 40 - 1436: 30(int64_t) Load 1435 - 1437: 17(ivec4) Load 19(ballot) - 1438: 30(int64_t) GroupNonUniformUMin 177 PartitionedReduceNV 1436 1437 - 1439: 136(ptr) AccessChain 37(data) 1434 135 40 - Store 1439 1438 - 1440: 6(int) Load 8(invocation) - 1441: 141(ptr) AccessChain 37(data) 45 135 - 1442: 31(i64vec4) Load 1441 - 1443:140(i64vec2) VectorShuffle 1442 1442 0 1 - 1444: 17(ivec4) Load 19(ballot) - 1445:140(i64vec2) GroupNonUniformUMin 177 PartitionedReduceNV 1443 1444 - 1446: 136(ptr) AccessChain 37(data) 1440 135 40 - 1447: 30(int64_t) CompositeExtract 1445 0 - Store 1446 1447 - 1448: 136(ptr) AccessChain 37(data) 1440 135 188 - 1449: 30(int64_t) CompositeExtract 1445 1 - Store 1448 1449 - 1450: 6(int) Load 8(invocation) - 1451: 141(ptr) AccessChain 37(data) 52 135 - 1452: 31(i64vec4) Load 1451 - 1453:146(i64vec3) VectorShuffle 1452 1452 0 1 2 - 1454: 17(ivec4) Load 19(ballot) - 1455:146(i64vec3) GroupNonUniformUMin 177 PartitionedReduceNV 1453 1454 - 1456: 136(ptr) AccessChain 37(data) 1450 135 40 - 1457: 30(int64_t) CompositeExtract 1455 0 - Store 1456 1457 - 1458: 136(ptr) AccessChain 37(data) 1450 135 188 - 1459: 30(int64_t) CompositeExtract 1455 1 - Store 1458 1459 - 1460: 136(ptr) AccessChain 37(data) 1450 135 201 - 1461: 30(int64_t) CompositeExtract 1455 2 - Store 1460 1461 - 1462: 6(int) Load 8(invocation) - 1463: 141(ptr) AccessChain 37(data) 58 135 - 1464: 31(i64vec4) Load 1463 - 1465: 17(ivec4) Load 19(ballot) - 1466: 31(i64vec4) GroupNonUniformUMin 177 PartitionedReduceNV 1464 1465 - 1467: 141(ptr) AccessChain 37(data) 1462 135 - Store 1467 1466 - 1468: 6(int) Load 8(invocation) - 1469: 136(ptr) AccessChain 37(data) 39 135 40 - 1470: 30(int64_t) Load 1469 - 1471: 17(ivec4) Load 19(ballot) - 1472: 30(int64_t) GroupNonUniformUMax 177 PartitionedReduceNV 1470 1471 - 1473: 136(ptr) AccessChain 37(data) 1468 135 40 - Store 1473 1472 - 1474: 6(int) Load 8(invocation) - 1475: 141(ptr) AccessChain 37(data) 45 135 - 1476: 31(i64vec4) Load 1475 - 1477:140(i64vec2) VectorShuffle 1476 1476 0 1 - 1478: 17(ivec4) Load 19(ballot) - 1479:140(i64vec2) GroupNonUniformUMax 177 PartitionedReduceNV 1477 1478 - 1480: 136(ptr) AccessChain 37(data) 1474 135 40 - 1481: 30(int64_t) CompositeExtract 1479 0 - Store 1480 1481 - 1482: 136(ptr) AccessChain 37(data) 1474 135 188 - 1483: 30(int64_t) CompositeExtract 1479 1 - Store 1482 1483 - 1484: 6(int) Load 8(invocation) - 1485: 141(ptr) AccessChain 37(data) 52 135 - 1486: 31(i64vec4) Load 1485 - 1487:146(i64vec3) VectorShuffle 1486 1486 0 1 2 - 1488: 17(ivec4) Load 19(ballot) - 1489:146(i64vec3) GroupNonUniformUMax 177 PartitionedReduceNV 1487 1488 - 1490: 136(ptr) AccessChain 37(data) 1484 135 40 - 1491: 30(int64_t) CompositeExtract 1489 0 - Store 1490 1491 - 1492: 136(ptr) AccessChain 37(data) 1484 135 188 - 1493: 30(int64_t) CompositeExtract 1489 1 - Store 1492 1493 - 1494: 136(ptr) AccessChain 37(data) 1484 135 201 - 1495: 30(int64_t) CompositeExtract 1489 2 - Store 1494 1495 - 1496: 6(int) Load 8(invocation) - 1497: 141(ptr) AccessChain 37(data) 58 135 - 1498: 31(i64vec4) Load 1497 - 1499: 17(ivec4) Load 19(ballot) - 1500: 31(i64vec4) GroupNonUniformUMax 177 PartitionedReduceNV 1498 1499 - 1501: 141(ptr) AccessChain 37(data) 1496 135 - Store 1501 1500 - 1502: 6(int) Load 8(invocation) - 1503: 136(ptr) AccessChain 37(data) 39 135 40 - 1504: 30(int64_t) Load 1503 - 1505: 17(ivec4) Load 19(ballot) - 1506: 30(int64_t) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1504 1505 - 1507: 136(ptr) AccessChain 37(data) 1502 135 40 - Store 1507 1506 - 1508: 6(int) Load 8(invocation) - 1509: 141(ptr) AccessChain 37(data) 45 135 - 1510: 31(i64vec4) Load 1509 - 1511:140(i64vec2) VectorShuffle 1510 1510 0 1 - 1512: 17(ivec4) Load 19(ballot) - 1513:140(i64vec2) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1511 1512 - 1514: 136(ptr) AccessChain 37(data) 1508 135 40 - 1515: 30(int64_t) CompositeExtract 1513 0 - Store 1514 1515 - 1516: 136(ptr) AccessChain 37(data) 1508 135 188 - 1517: 30(int64_t) CompositeExtract 1513 1 - Store 1516 1517 - 1518: 6(int) Load 8(invocation) - 1519: 141(ptr) AccessChain 37(data) 52 135 - 1520: 31(i64vec4) Load 1519 - 1521:146(i64vec3) VectorShuffle 1520 1520 0 1 2 - 1522: 17(ivec4) Load 19(ballot) - 1523:146(i64vec3) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1521 1522 - 1524: 136(ptr) AccessChain 37(data) 1518 135 40 - 1525: 30(int64_t) CompositeExtract 1523 0 - Store 1524 1525 - 1526: 136(ptr) AccessChain 37(data) 1518 135 188 - 1527: 30(int64_t) CompositeExtract 1523 1 - Store 1526 1527 - 1528: 136(ptr) AccessChain 37(data) 1518 135 201 - 1529: 30(int64_t) CompositeExtract 1523 2 - Store 1528 1529 - 1530: 6(int) Load 8(invocation) - 1531: 141(ptr) AccessChain 37(data) 58 135 - 1532: 31(i64vec4) Load 1531 - 1533: 17(ivec4) Load 19(ballot) - 1534: 31(i64vec4) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1532 1533 - 1535: 141(ptr) AccessChain 37(data) 1530 135 - Store 1535 1534 - 1536: 6(int) Load 8(invocation) - 1537: 136(ptr) AccessChain 37(data) 39 135 40 - 1538: 30(int64_t) Load 1537 - 1539: 17(ivec4) Load 19(ballot) - 1540: 30(int64_t) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1538 1539 - 1541: 136(ptr) AccessChain 37(data) 1536 135 40 - Store 1541 1540 - 1542: 6(int) Load 8(invocation) - 1543: 141(ptr) AccessChain 37(data) 45 135 - 1544: 31(i64vec4) Load 1543 - 1545:140(i64vec2) VectorShuffle 1544 1544 0 1 - 1546: 17(ivec4) Load 19(ballot) - 1547:140(i64vec2) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1545 1546 - 1548: 136(ptr) AccessChain 37(data) 1542 135 40 - 1549: 30(int64_t) CompositeExtract 1547 0 - Store 1548 1549 - 1550: 136(ptr) AccessChain 37(data) 1542 135 188 - 1551: 30(int64_t) CompositeExtract 1547 1 - Store 1550 1551 - 1552: 6(int) Load 8(invocation) - 1553: 141(ptr) AccessChain 37(data) 52 135 - 1554: 31(i64vec4) Load 1553 - 1555:146(i64vec3) VectorShuffle 1554 1554 0 1 2 - 1556: 17(ivec4) Load 19(ballot) - 1557:146(i64vec3) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1555 1556 - 1558: 136(ptr) AccessChain 37(data) 1552 135 40 - 1559: 30(int64_t) CompositeExtract 1557 0 - Store 1558 1559 - 1560: 136(ptr) AccessChain 37(data) 1552 135 188 - 1561: 30(int64_t) CompositeExtract 1557 1 - Store 1560 1561 - 1562: 136(ptr) AccessChain 37(data) 1552 135 201 - 1563: 30(int64_t) CompositeExtract 1557 2 - Store 1562 1563 - 1564: 6(int) Load 8(invocation) - 1565: 141(ptr) AccessChain 37(data) 58 135 - 1566: 31(i64vec4) Load 1565 - 1567: 17(ivec4) Load 19(ballot) - 1568: 31(i64vec4) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1566 1567 - 1569: 141(ptr) AccessChain 37(data) 1564 135 - Store 1569 1568 - 1570: 6(int) Load 8(invocation) - 1571: 136(ptr) AccessChain 37(data) 39 135 40 - 1572: 30(int64_t) Load 1571 - 1573: 17(ivec4) Load 19(ballot) - 1574: 30(int64_t) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1572 1573 - 1575: 136(ptr) AccessChain 37(data) 1570 135 40 - Store 1575 1574 - 1576: 6(int) Load 8(invocation) - 1577: 141(ptr) AccessChain 37(data) 45 135 - 1578: 31(i64vec4) Load 1577 - 1579:140(i64vec2) VectorShuffle 1578 1578 0 1 - 1580: 17(ivec4) Load 19(ballot) - 1581:140(i64vec2) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1579 1580 - 1582: 136(ptr) AccessChain 37(data) 1576 135 40 - 1583: 30(int64_t) CompositeExtract 1581 0 - Store 1582 1583 - 1584: 136(ptr) AccessChain 37(data) 1576 135 188 - 1585: 30(int64_t) CompositeExtract 1581 1 - Store 1584 1585 - 1586: 6(int) Load 8(invocation) - 1587: 141(ptr) AccessChain 37(data) 52 135 - 1588: 31(i64vec4) Load 1587 - 1589:146(i64vec3) VectorShuffle 1588 1588 0 1 2 - 1590: 17(ivec4) Load 19(ballot) - 1591:146(i64vec3) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1589 1590 - 1592: 136(ptr) AccessChain 37(data) 1586 135 40 - 1593: 30(int64_t) CompositeExtract 1591 0 - Store 1592 1593 - 1594: 136(ptr) AccessChain 37(data) 1586 135 188 - 1595: 30(int64_t) CompositeExtract 1591 1 - Store 1594 1595 - 1596: 136(ptr) AccessChain 37(data) 1586 135 201 - 1597: 30(int64_t) CompositeExtract 1591 2 - Store 1596 1597 - 1598: 6(int) Load 8(invocation) - 1599: 141(ptr) AccessChain 37(data) 58 135 - 1600: 31(i64vec4) Load 1599 - 1601: 17(ivec4) Load 19(ballot) - 1602: 31(i64vec4) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1600 1601 - 1603: 141(ptr) AccessChain 37(data) 1598 135 - Store 1603 1602 - 1604: 6(int) Load 8(invocation) - 1605: 155(ptr) AccessChain 37(data) 39 154 40 - 1606:32(float16_t) Load 1605 - 1607: 17(ivec4) Load 19(ballot) - 1608:32(float16_t) GroupNonUniformFAdd 177 PartitionedReduceNV 1606 1607 - 1609: 155(ptr) AccessChain 37(data) 1604 154 40 - Store 1609 1608 - 1610: 6(int) Load 8(invocation) - 1611: 160(ptr) AccessChain 37(data) 45 154 - 1612: 33(f16vec4) Load 1611 - 1613:159(f16vec2) VectorShuffle 1612 1612 0 1 - 1614: 17(ivec4) Load 19(ballot) - 1615:159(f16vec2) GroupNonUniformFAdd 177 PartitionedReduceNV 1613 1614 - 1616: 155(ptr) AccessChain 37(data) 1610 154 40 - 1617:32(float16_t) CompositeExtract 1615 0 - Store 1616 1617 - 1618: 155(ptr) AccessChain 37(data) 1610 154 188 - 1619:32(float16_t) CompositeExtract 1615 1 - Store 1618 1619 - 1620: 6(int) Load 8(invocation) - 1621: 160(ptr) AccessChain 37(data) 52 154 - 1622: 33(f16vec4) Load 1621 - 1623:165(f16vec3) VectorShuffle 1622 1622 0 1 2 - 1624: 17(ivec4) Load 19(ballot) - 1625:165(f16vec3) GroupNonUniformFAdd 177 PartitionedReduceNV 1623 1624 - 1626: 155(ptr) AccessChain 37(data) 1620 154 40 - 1627:32(float16_t) CompositeExtract 1625 0 - Store 1626 1627 - 1628: 155(ptr) AccessChain 37(data) 1620 154 188 - 1629:32(float16_t) CompositeExtract 1625 1 - Store 1628 1629 - 1630: 155(ptr) AccessChain 37(data) 1620 154 201 - 1631:32(float16_t) CompositeExtract 1625 2 - Store 1630 1631 - 1632: 6(int) Load 8(invocation) - 1633: 160(ptr) AccessChain 37(data) 58 154 - 1634: 33(f16vec4) Load 1633 - 1635: 17(ivec4) Load 19(ballot) - 1636: 33(f16vec4) GroupNonUniformFAdd 177 PartitionedReduceNV 1634 1635 - 1637: 160(ptr) AccessChain 37(data) 1632 154 - Store 1637 1636 - 1638: 6(int) Load 8(invocation) - 1639: 155(ptr) AccessChain 37(data) 39 154 40 - 1640:32(float16_t) Load 1639 - 1641: 17(ivec4) Load 19(ballot) - 1642:32(float16_t) GroupNonUniformFMul 177 PartitionedReduceNV 1640 1641 - 1643: 155(ptr) AccessChain 37(data) 1638 154 40 - Store 1643 1642 - 1644: 6(int) Load 8(invocation) - 1645: 160(ptr) AccessChain 37(data) 45 154 - 1646: 33(f16vec4) Load 1645 - 1647:159(f16vec2) VectorShuffle 1646 1646 0 1 - 1648: 17(ivec4) Load 19(ballot) - 1649:159(f16vec2) GroupNonUniformFMul 177 PartitionedReduceNV 1647 1648 - 1650: 155(ptr) AccessChain 37(data) 1644 154 40 - 1651:32(float16_t) CompositeExtract 1649 0 - Store 1650 1651 - 1652: 155(ptr) AccessChain 37(data) 1644 154 188 - 1653:32(float16_t) CompositeExtract 1649 1 - Store 1652 1653 - 1654: 6(int) Load 8(invocation) - 1655: 160(ptr) AccessChain 37(data) 52 154 - 1656: 33(f16vec4) Load 1655 - 1657:165(f16vec3) VectorShuffle 1656 1656 0 1 2 - 1658: 17(ivec4) Load 19(ballot) - 1659:165(f16vec3) GroupNonUniformFMul 177 PartitionedReduceNV 1657 1658 - 1660: 155(ptr) AccessChain 37(data) 1654 154 40 - 1661:32(float16_t) CompositeExtract 1659 0 - Store 1660 1661 - 1662: 155(ptr) AccessChain 37(data) 1654 154 188 - 1663:32(float16_t) CompositeExtract 1659 1 - Store 1662 1663 - 1664: 155(ptr) AccessChain 37(data) 1654 154 201 - 1665:32(float16_t) CompositeExtract 1659 2 - Store 1664 1665 - 1666: 6(int) Load 8(invocation) - 1667: 160(ptr) AccessChain 37(data) 58 154 - 1668: 33(f16vec4) Load 1667 - 1669: 17(ivec4) Load 19(ballot) - 1670: 33(f16vec4) GroupNonUniformFMul 177 PartitionedReduceNV 1668 1669 - 1671: 160(ptr) AccessChain 37(data) 1666 154 - Store 1671 1670 - 1672: 6(int) Load 8(invocation) - 1673: 155(ptr) AccessChain 37(data) 39 154 40 - 1674:32(float16_t) Load 1673 - 1675: 17(ivec4) Load 19(ballot) - 1676:32(float16_t) GroupNonUniformFMin 177 PartitionedReduceNV 1674 1675 - 1677: 155(ptr) AccessChain 37(data) 1672 154 40 - Store 1677 1676 - 1678: 6(int) Load 8(invocation) - 1679: 160(ptr) AccessChain 37(data) 45 154 - 1680: 33(f16vec4) Load 1679 - 1681:159(f16vec2) VectorShuffle 1680 1680 0 1 - 1682: 17(ivec4) Load 19(ballot) - 1683:159(f16vec2) GroupNonUniformFMin 177 PartitionedReduceNV 1681 1682 - 1684: 155(ptr) AccessChain 37(data) 1678 154 40 - 1685:32(float16_t) CompositeExtract 1683 0 - Store 1684 1685 - 1686: 155(ptr) AccessChain 37(data) 1678 154 188 - 1687:32(float16_t) CompositeExtract 1683 1 - Store 1686 1687 - 1688: 6(int) Load 8(invocation) - 1689: 160(ptr) AccessChain 37(data) 52 154 - 1690: 33(f16vec4) Load 1689 - 1691:165(f16vec3) VectorShuffle 1690 1690 0 1 2 - 1692: 17(ivec4) Load 19(ballot) - 1693:165(f16vec3) GroupNonUniformFMin 177 PartitionedReduceNV 1691 1692 - 1694: 155(ptr) AccessChain 37(data) 1688 154 40 - 1695:32(float16_t) CompositeExtract 1693 0 - Store 1694 1695 - 1696: 155(ptr) AccessChain 37(data) 1688 154 188 - 1697:32(float16_t) CompositeExtract 1693 1 - Store 1696 1697 - 1698: 155(ptr) AccessChain 37(data) 1688 154 201 - 1699:32(float16_t) CompositeExtract 1693 2 - Store 1698 1699 - 1700: 6(int) Load 8(invocation) - 1701: 160(ptr) AccessChain 37(data) 58 154 - 1702: 33(f16vec4) Load 1701 - 1703: 17(ivec4) Load 19(ballot) - 1704: 33(f16vec4) GroupNonUniformFMin 177 PartitionedReduceNV 1702 1703 - 1705: 160(ptr) AccessChain 37(data) 1700 154 - Store 1705 1704 - 1706: 6(int) Load 8(invocation) - 1707: 155(ptr) AccessChain 37(data) 39 154 40 - 1708:32(float16_t) Load 1707 - 1709: 17(ivec4) Load 19(ballot) - 1710:32(float16_t) GroupNonUniformFMax 177 PartitionedReduceNV 1708 1709 - 1711: 155(ptr) AccessChain 37(data) 1706 154 40 - Store 1711 1710 - 1712: 6(int) Load 8(invocation) - 1713: 160(ptr) AccessChain 37(data) 45 154 - 1714: 33(f16vec4) Load 1713 - 1715:159(f16vec2) VectorShuffle 1714 1714 0 1 - 1716: 17(ivec4) Load 19(ballot) - 1717:159(f16vec2) GroupNonUniformFMax 177 PartitionedReduceNV 1715 1716 - 1718: 155(ptr) AccessChain 37(data) 1712 154 40 - 1719:32(float16_t) CompositeExtract 1717 0 - Store 1718 1719 - 1720: 155(ptr) AccessChain 37(data) 1712 154 188 - 1721:32(float16_t) CompositeExtract 1717 1 - Store 1720 1721 - 1722: 6(int) Load 8(invocation) - 1723: 160(ptr) AccessChain 37(data) 52 154 - 1724: 33(f16vec4) Load 1723 - 1725:165(f16vec3) VectorShuffle 1724 1724 0 1 2 - 1726: 17(ivec4) Load 19(ballot) - 1727:165(f16vec3) GroupNonUniformFMax 177 PartitionedReduceNV 1725 1726 - 1728: 155(ptr) AccessChain 37(data) 1722 154 40 - 1729:32(float16_t) CompositeExtract 1727 0 - Store 1728 1729 - 1730: 155(ptr) AccessChain 37(data) 1722 154 188 - 1731:32(float16_t) CompositeExtract 1727 1 - Store 1730 1731 - 1732: 155(ptr) AccessChain 37(data) 1722 154 201 - 1733:32(float16_t) CompositeExtract 1727 2 - Store 1732 1733 - 1734: 6(int) Load 8(invocation) - 1735: 160(ptr) AccessChain 37(data) 58 154 - 1736: 33(f16vec4) Load 1735 - 1737: 17(ivec4) Load 19(ballot) - 1738: 33(f16vec4) GroupNonUniformFMax 177 PartitionedReduceNV 1736 1737 - 1739: 160(ptr) AccessChain 37(data) 1734 154 - Store 1739 1738 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesPartitionedNeg.comp.out b/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesPartitionedNeg.comp.out deleted file mode 100644 index c029617f..00000000 --- a/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesPartitionedNeg.comp.out +++ /dev/null @@ -1,217 +0,0 @@ -spv.subgroupExtendedTypesPartitionedNeg.comp -ERROR: 0:27: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:28: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:29: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:30: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:32: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:33: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:34: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:35: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:37: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:38: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:39: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:40: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:42: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:43: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:44: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:45: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:47: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:48: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:49: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:50: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:52: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:53: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:54: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:55: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:57: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:58: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:59: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:60: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:62: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:63: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:64: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:65: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:67: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:68: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:69: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:70: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:72: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:73: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:74: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:75: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:77: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:78: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:79: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:80: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:82: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:83: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:84: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:85: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:87: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:88: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:89: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:90: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:92: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:93: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:94: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:95: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:97: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:98: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:99: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:100: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:102: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:103: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:104: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:105: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:107: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:108: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:109: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:110: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:112: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:113: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:114: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:115: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:117: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:118: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:119: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:120: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:122: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:123: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:124: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:125: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:127: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:128: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:129: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:130: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:132: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:133: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:134: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:135: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:137: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:138: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:139: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:140: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:142: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:143: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:144: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:145: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:147: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:148: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:149: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:150: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:152: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:153: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:154: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:155: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:157: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:158: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:159: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:160: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:162: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:163: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:164: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:165: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:167: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:168: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:169: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:170: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:172: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:173: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:174: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:175: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:177: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:178: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:179: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:180: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:182: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:183: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:184: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:185: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:187: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:188: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:189: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:190: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:192: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:193: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:194: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:195: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:197: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:198: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:199: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:200: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:202: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:203: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:204: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:205: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:207: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:208: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:209: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:210: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:212: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:213: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:214: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:215: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:217: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:218: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:219: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:220: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:222: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:223: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:224: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:225: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:227: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:228: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:229: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:230: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:232: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:233: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:234: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:235: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:237: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:238: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:239: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:240: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:242: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:243: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:244: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:245: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:247: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:248: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:249: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:250: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:252: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:253: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:254: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:255: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:257: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:258: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:259: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:260: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:262: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:263: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:264: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:265: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:267: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:268: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:269: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:270: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:272: ' temp highp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:273: ' temp highp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:274: ' temp highp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:275: 'layout( column_major std430) buffer highp 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:277: ' temp highp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:278: ' temp highp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:279: ' temp highp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:280: 'layout( column_major std430) buffer highp 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:282: ' temp highp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:283: ' temp highp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:284: ' temp highp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:285: 'layout( column_major std430) buffer highp 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:287: ' temp highp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:288: ' temp highp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:289: ' temp highp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:290: 'layout( column_major std430) buffer highp 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 212 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesQuad.comp.out b/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesQuad.comp.out deleted file mode 100644 index f385545e..00000000 --- a/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesQuad.comp.out +++ /dev/null @@ -1,1177 +0,0 @@ -spv.subgroupExtendedTypesQuad.comp -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 918 - - Capability Shader - Capability Float16 - Capability Int64 - Capability Int16 - Capability Int8 - Capability GroupNonUniform - Capability GroupNonUniformQuad - Capability StorageUniformBufferBlock16 - Capability StorageBuffer8BitAccess - Extension "SPV_KHR_8bit_storage" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 10 12 - ExecutionMode 4 LocalSize 8 1 1 - Source GLSL 450 - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int16" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int64" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int8" - SourceExtension "GL_EXT_shader_subgroup_extended_types_float16" - SourceExtension "GL_EXT_shader_subgroup_extended_types_int16" - SourceExtension "GL_EXT_shader_subgroup_extended_types_int64" - SourceExtension "GL_EXT_shader_subgroup_extended_types_int8" - SourceExtension "GL_KHR_shader_subgroup_basic" - SourceExtension "GL_KHR_shader_subgroup_quad" - Name 4 "main" - Name 8 "invocation" - Name 10 "gl_SubgroupInvocationID" - Name 12 "gl_SubgroupSize" - Name 31 "Buffers" - MemberName 31(Buffers) 0 "i8" - MemberName 31(Buffers) 1 "u8" - MemberName 31(Buffers) 2 "i16" - MemberName 31(Buffers) 3 "u16" - MemberName 31(Buffers) 4 "i64" - MemberName 31(Buffers) 5 "u64" - MemberName 31(Buffers) 6 "f16" - Name 34 "data" - Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision - Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId - Decorate 11 RelaxedPrecision - Decorate 12(gl_SubgroupSize) RelaxedPrecision - Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize - Decorate 13 RelaxedPrecision - Decorate 14 RelaxedPrecision - Decorate 16 RelaxedPrecision - MemberDecorate 31(Buffers) 0 Offset 0 - MemberDecorate 31(Buffers) 1 Offset 4 - MemberDecorate 31(Buffers) 2 Offset 8 - MemberDecorate 31(Buffers) 3 Offset 16 - MemberDecorate 31(Buffers) 4 Offset 32 - MemberDecorate 31(Buffers) 5 Offset 64 - MemberDecorate 31(Buffers) 6 Offset 96 - Decorate 31(Buffers) Block - Decorate 34(data) DescriptorSet 0 - Decorate 34(data) Binding 0 - Decorate 917 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypePointer Input 6(int) -10(gl_SubgroupInvocationID): 9(ptr) Variable Input -12(gl_SubgroupSize): 9(ptr) Variable Input - 15: 6(int) Constant 4 - 17: TypeInt 8 1 - 18: TypeVector 17(int8_t) 4 - 19: TypeInt 8 0 - 20: TypeVector 19(int8_t) 4 - 21: TypeInt 16 1 - 22: TypeVector 21(int16_t) 4 - 23: TypeInt 16 0 - 24: TypeVector 23(int16_t) 4 - 25: TypeInt 64 1 - 26: TypeVector 25(int64_t) 4 - 27: TypeInt 64 0 - 28: TypeVector 27(int64_t) 4 - 29: TypeFloat 16 - 30: TypeVector 29(float16_t) 4 - 31(Buffers): TypeStruct 18(i8vec4) 20(i8vec4) 22(i16vec4) 24(i16vec4) 26(i64vec4) 28(i64vec4) 30(f16vec4) - 32: TypeArray 31(Buffers) 15 - 33: TypePointer StorageBuffer 32 - 34(data): 33(ptr) Variable StorageBuffer - 36: TypeInt 32 1 - 37: 36(int) Constant 0 - 38: 6(int) Constant 0 - 39: TypePointer StorageBuffer 17(int8_t) - 42: 6(int) Constant 1 - 43: 6(int) Constant 3 - 47: 36(int) Constant 1 - 48: TypeVector 17(int8_t) 2 - 49: TypePointer StorageBuffer 18(i8vec4) - 59: 36(int) Constant 2 - 60: TypeVector 17(int8_t) 3 - 69: 6(int) Constant 2 - 73: 36(int) Constant 3 - 169: TypePointer StorageBuffer 19(int8_t) - 175: TypeVector 19(int8_t) 2 - 176: TypePointer StorageBuffer 20(i8vec4) - 186: TypeVector 19(int8_t) 3 - 293: TypePointer StorageBuffer 21(int16_t) - 299: TypeVector 21(int16_t) 2 - 300: TypePointer StorageBuffer 22(i16vec4) - 310: TypeVector 21(int16_t) 3 - 417: TypePointer StorageBuffer 23(int16_t) - 423: TypeVector 23(int16_t) 2 - 424: TypePointer StorageBuffer 24(i16vec4) - 434: TypeVector 23(int16_t) 3 - 541: 36(int) Constant 4 - 542: TypePointer StorageBuffer 25(int64_t) - 548: TypeVector 25(int64_t) 2 - 549: TypePointer StorageBuffer 26(i64vec4) - 559: TypeVector 25(int64_t) 3 - 666: 36(int) Constant 5 - 667: TypePointer StorageBuffer 27(int64_t) - 673: TypeVector 27(int64_t) 2 - 674: TypePointer StorageBuffer 28(i64vec4) - 684: TypeVector 27(int64_t) 3 - 791: 36(int) Constant 6 - 792: TypePointer StorageBuffer 29(float16_t) - 798: TypeVector 29(float16_t) 2 - 799: TypePointer StorageBuffer 30(f16vec4) - 809: TypeVector 29(float16_t) 3 - 915: TypeVector 6(int) 3 - 916: 6(int) Constant 8 - 917: 915(ivec3) ConstantComposite 916 42 42 - 4(main): 2 Function None 3 - 5: Label - 8(invocation): 7(ptr) Variable Function - 11: 6(int) Load 10(gl_SubgroupInvocationID) - 13: 6(int) Load 12(gl_SubgroupSize) - 14: 6(int) IAdd 11 13 - 16: 6(int) UMod 14 15 - Store 8(invocation) 16 - 35: 6(int) Load 8(invocation) - 40: 39(ptr) AccessChain 34(data) 37 37 38 - 41: 17(int8_t) Load 40 - 44: 17(int8_t) GroupNonUniformQuadBroadcast 43 41 42 - 45: 39(ptr) AccessChain 34(data) 35 37 38 - Store 45 44 - 46: 6(int) Load 8(invocation) - 50: 49(ptr) AccessChain 34(data) 47 37 - 51: 18(i8vec4) Load 50 - 52: 48(i8vec2) VectorShuffle 51 51 0 1 - 53: 48(i8vec2) GroupNonUniformQuadBroadcast 43 52 42 - 54: 39(ptr) AccessChain 34(data) 46 37 38 - 55: 17(int8_t) CompositeExtract 53 0 - Store 54 55 - 56: 39(ptr) AccessChain 34(data) 46 37 42 - 57: 17(int8_t) CompositeExtract 53 1 - Store 56 57 - 58: 6(int) Load 8(invocation) - 61: 49(ptr) AccessChain 34(data) 59 37 - 62: 18(i8vec4) Load 61 - 63: 60(i8vec3) VectorShuffle 62 62 0 1 2 - 64: 60(i8vec3) GroupNonUniformQuadBroadcast 43 63 42 - 65: 39(ptr) AccessChain 34(data) 58 37 38 - 66: 17(int8_t) CompositeExtract 64 0 - Store 65 66 - 67: 39(ptr) AccessChain 34(data) 58 37 42 - 68: 17(int8_t) CompositeExtract 64 1 - Store 67 68 - 70: 39(ptr) AccessChain 34(data) 58 37 69 - 71: 17(int8_t) CompositeExtract 64 2 - Store 70 71 - 72: 6(int) Load 8(invocation) - 74: 49(ptr) AccessChain 34(data) 73 37 - 75: 18(i8vec4) Load 74 - 76: 18(i8vec4) GroupNonUniformQuadBroadcast 43 75 42 - 77: 49(ptr) AccessChain 34(data) 72 37 - Store 77 76 - 78: 6(int) Load 8(invocation) - 79: 39(ptr) AccessChain 34(data) 37 37 38 - 80: 17(int8_t) Load 79 - 81: 17(int8_t) GroupNonUniformQuadSwap 43 80 38 - 82: 39(ptr) AccessChain 34(data) 78 37 38 - Store 82 81 - 83: 6(int) Load 8(invocation) - 84: 49(ptr) AccessChain 34(data) 47 37 - 85: 18(i8vec4) Load 84 - 86: 48(i8vec2) VectorShuffle 85 85 0 1 - 87: 48(i8vec2) GroupNonUniformQuadSwap 43 86 38 - 88: 39(ptr) AccessChain 34(data) 83 37 38 - 89: 17(int8_t) CompositeExtract 87 0 - Store 88 89 - 90: 39(ptr) AccessChain 34(data) 83 37 42 - 91: 17(int8_t) CompositeExtract 87 1 - Store 90 91 - 92: 6(int) Load 8(invocation) - 93: 49(ptr) AccessChain 34(data) 59 37 - 94: 18(i8vec4) Load 93 - 95: 60(i8vec3) VectorShuffle 94 94 0 1 2 - 96: 60(i8vec3) GroupNonUniformQuadSwap 43 95 38 - 97: 39(ptr) AccessChain 34(data) 92 37 38 - 98: 17(int8_t) CompositeExtract 96 0 - Store 97 98 - 99: 39(ptr) AccessChain 34(data) 92 37 42 - 100: 17(int8_t) CompositeExtract 96 1 - Store 99 100 - 101: 39(ptr) AccessChain 34(data) 92 37 69 - 102: 17(int8_t) CompositeExtract 96 2 - Store 101 102 - 103: 6(int) Load 8(invocation) - 104: 49(ptr) AccessChain 34(data) 73 37 - 105: 18(i8vec4) Load 104 - 106: 18(i8vec4) GroupNonUniformQuadSwap 43 105 38 - 107: 49(ptr) AccessChain 34(data) 103 37 - Store 107 106 - 108: 6(int) Load 8(invocation) - 109: 39(ptr) AccessChain 34(data) 37 37 38 - 110: 17(int8_t) Load 109 - 111: 17(int8_t) GroupNonUniformQuadSwap 43 110 42 - 112: 39(ptr) AccessChain 34(data) 108 37 38 - Store 112 111 - 113: 6(int) Load 8(invocation) - 114: 49(ptr) AccessChain 34(data) 47 37 - 115: 18(i8vec4) Load 114 - 116: 48(i8vec2) VectorShuffle 115 115 0 1 - 117: 48(i8vec2) GroupNonUniformQuadSwap 43 116 42 - 118: 39(ptr) AccessChain 34(data) 113 37 38 - 119: 17(int8_t) CompositeExtract 117 0 - Store 118 119 - 120: 39(ptr) AccessChain 34(data) 113 37 42 - 121: 17(int8_t) CompositeExtract 117 1 - Store 120 121 - 122: 6(int) Load 8(invocation) - 123: 49(ptr) AccessChain 34(data) 59 37 - 124: 18(i8vec4) Load 123 - 125: 60(i8vec3) VectorShuffle 124 124 0 1 2 - 126: 60(i8vec3) GroupNonUniformQuadSwap 43 125 42 - 127: 39(ptr) AccessChain 34(data) 122 37 38 - 128: 17(int8_t) CompositeExtract 126 0 - Store 127 128 - 129: 39(ptr) AccessChain 34(data) 122 37 42 - 130: 17(int8_t) CompositeExtract 126 1 - Store 129 130 - 131: 39(ptr) AccessChain 34(data) 122 37 69 - 132: 17(int8_t) CompositeExtract 126 2 - Store 131 132 - 133: 6(int) Load 8(invocation) - 134: 49(ptr) AccessChain 34(data) 73 37 - 135: 18(i8vec4) Load 134 - 136: 18(i8vec4) GroupNonUniformQuadSwap 43 135 42 - 137: 49(ptr) AccessChain 34(data) 133 37 - Store 137 136 - 138: 6(int) Load 8(invocation) - 139: 39(ptr) AccessChain 34(data) 37 37 38 - 140: 17(int8_t) Load 139 - 141: 17(int8_t) GroupNonUniformQuadSwap 43 140 69 - 142: 39(ptr) AccessChain 34(data) 138 37 38 - Store 142 141 - 143: 6(int) Load 8(invocation) - 144: 49(ptr) AccessChain 34(data) 47 37 - 145: 18(i8vec4) Load 144 - 146: 48(i8vec2) VectorShuffle 145 145 0 1 - 147: 48(i8vec2) GroupNonUniformQuadSwap 43 146 69 - 148: 39(ptr) AccessChain 34(data) 143 37 38 - 149: 17(int8_t) CompositeExtract 147 0 - Store 148 149 - 150: 39(ptr) AccessChain 34(data) 143 37 42 - 151: 17(int8_t) CompositeExtract 147 1 - Store 150 151 - 152: 6(int) Load 8(invocation) - 153: 49(ptr) AccessChain 34(data) 59 37 - 154: 18(i8vec4) Load 153 - 155: 60(i8vec3) VectorShuffle 154 154 0 1 2 - 156: 60(i8vec3) GroupNonUniformQuadSwap 43 155 69 - 157: 39(ptr) AccessChain 34(data) 152 37 38 - 158: 17(int8_t) CompositeExtract 156 0 - Store 157 158 - 159: 39(ptr) AccessChain 34(data) 152 37 42 - 160: 17(int8_t) CompositeExtract 156 1 - Store 159 160 - 161: 39(ptr) AccessChain 34(data) 152 37 69 - 162: 17(int8_t) CompositeExtract 156 2 - Store 161 162 - 163: 6(int) Load 8(invocation) - 164: 49(ptr) AccessChain 34(data) 73 37 - 165: 18(i8vec4) Load 164 - 166: 18(i8vec4) GroupNonUniformQuadSwap 43 165 69 - 167: 49(ptr) AccessChain 34(data) 163 37 - Store 167 166 - 168: 6(int) Load 8(invocation) - 170: 169(ptr) AccessChain 34(data) 37 47 38 - 171: 19(int8_t) Load 170 - 172: 19(int8_t) GroupNonUniformQuadBroadcast 43 171 42 - 173: 169(ptr) AccessChain 34(data) 168 47 38 - Store 173 172 - 174: 6(int) Load 8(invocation) - 177: 176(ptr) AccessChain 34(data) 47 47 - 178: 20(i8vec4) Load 177 - 179: 175(i8vec2) VectorShuffle 178 178 0 1 - 180: 175(i8vec2) GroupNonUniformQuadBroadcast 43 179 42 - 181: 169(ptr) AccessChain 34(data) 174 47 38 - 182: 19(int8_t) CompositeExtract 180 0 - Store 181 182 - 183: 169(ptr) AccessChain 34(data) 174 47 42 - 184: 19(int8_t) CompositeExtract 180 1 - Store 183 184 - 185: 6(int) Load 8(invocation) - 187: 176(ptr) AccessChain 34(data) 59 47 - 188: 20(i8vec4) Load 187 - 189: 186(i8vec3) VectorShuffle 188 188 0 1 2 - 190: 186(i8vec3) GroupNonUniformQuadBroadcast 43 189 42 - 191: 169(ptr) AccessChain 34(data) 185 47 38 - 192: 19(int8_t) CompositeExtract 190 0 - Store 191 192 - 193: 169(ptr) AccessChain 34(data) 185 47 42 - 194: 19(int8_t) CompositeExtract 190 1 - Store 193 194 - 195: 169(ptr) AccessChain 34(data) 185 47 69 - 196: 19(int8_t) CompositeExtract 190 2 - Store 195 196 - 197: 6(int) Load 8(invocation) - 198: 176(ptr) AccessChain 34(data) 73 47 - 199: 20(i8vec4) Load 198 - 200: 20(i8vec4) GroupNonUniformQuadBroadcast 43 199 42 - 201: 176(ptr) AccessChain 34(data) 197 47 - Store 201 200 - 202: 6(int) Load 8(invocation) - 203: 169(ptr) AccessChain 34(data) 37 47 38 - 204: 19(int8_t) Load 203 - 205: 19(int8_t) GroupNonUniformQuadSwap 43 204 38 - 206: 169(ptr) AccessChain 34(data) 202 47 38 - Store 206 205 - 207: 6(int) Load 8(invocation) - 208: 176(ptr) AccessChain 34(data) 47 47 - 209: 20(i8vec4) Load 208 - 210: 175(i8vec2) VectorShuffle 209 209 0 1 - 211: 175(i8vec2) GroupNonUniformQuadSwap 43 210 38 - 212: 169(ptr) AccessChain 34(data) 207 47 38 - 213: 19(int8_t) CompositeExtract 211 0 - Store 212 213 - 214: 169(ptr) AccessChain 34(data) 207 47 42 - 215: 19(int8_t) CompositeExtract 211 1 - Store 214 215 - 216: 6(int) Load 8(invocation) - 217: 176(ptr) AccessChain 34(data) 59 47 - 218: 20(i8vec4) Load 217 - 219: 186(i8vec3) VectorShuffle 218 218 0 1 2 - 220: 186(i8vec3) GroupNonUniformQuadSwap 43 219 38 - 221: 169(ptr) AccessChain 34(data) 216 47 38 - 222: 19(int8_t) CompositeExtract 220 0 - Store 221 222 - 223: 169(ptr) AccessChain 34(data) 216 47 42 - 224: 19(int8_t) CompositeExtract 220 1 - Store 223 224 - 225: 169(ptr) AccessChain 34(data) 216 47 69 - 226: 19(int8_t) CompositeExtract 220 2 - Store 225 226 - 227: 6(int) Load 8(invocation) - 228: 176(ptr) AccessChain 34(data) 73 47 - 229: 20(i8vec4) Load 228 - 230: 20(i8vec4) GroupNonUniformQuadSwap 43 229 38 - 231: 176(ptr) AccessChain 34(data) 227 47 - Store 231 230 - 232: 6(int) Load 8(invocation) - 233: 169(ptr) AccessChain 34(data) 37 47 38 - 234: 19(int8_t) Load 233 - 235: 19(int8_t) GroupNonUniformQuadSwap 43 234 42 - 236: 169(ptr) AccessChain 34(data) 232 47 38 - Store 236 235 - 237: 6(int) Load 8(invocation) - 238: 176(ptr) AccessChain 34(data) 47 47 - 239: 20(i8vec4) Load 238 - 240: 175(i8vec2) VectorShuffle 239 239 0 1 - 241: 175(i8vec2) GroupNonUniformQuadSwap 43 240 42 - 242: 169(ptr) AccessChain 34(data) 237 47 38 - 243: 19(int8_t) CompositeExtract 241 0 - Store 242 243 - 244: 169(ptr) AccessChain 34(data) 237 47 42 - 245: 19(int8_t) CompositeExtract 241 1 - Store 244 245 - 246: 6(int) Load 8(invocation) - 247: 176(ptr) AccessChain 34(data) 59 47 - 248: 20(i8vec4) Load 247 - 249: 186(i8vec3) VectorShuffle 248 248 0 1 2 - 250: 186(i8vec3) GroupNonUniformQuadSwap 43 249 42 - 251: 169(ptr) AccessChain 34(data) 246 47 38 - 252: 19(int8_t) CompositeExtract 250 0 - Store 251 252 - 253: 169(ptr) AccessChain 34(data) 246 47 42 - 254: 19(int8_t) CompositeExtract 250 1 - Store 253 254 - 255: 169(ptr) AccessChain 34(data) 246 47 69 - 256: 19(int8_t) CompositeExtract 250 2 - Store 255 256 - 257: 6(int) Load 8(invocation) - 258: 176(ptr) AccessChain 34(data) 73 47 - 259: 20(i8vec4) Load 258 - 260: 20(i8vec4) GroupNonUniformQuadSwap 43 259 42 - 261: 176(ptr) AccessChain 34(data) 257 47 - Store 261 260 - 262: 6(int) Load 8(invocation) - 263: 169(ptr) AccessChain 34(data) 37 47 38 - 264: 19(int8_t) Load 263 - 265: 19(int8_t) GroupNonUniformQuadSwap 43 264 69 - 266: 169(ptr) AccessChain 34(data) 262 47 38 - Store 266 265 - 267: 6(int) Load 8(invocation) - 268: 176(ptr) AccessChain 34(data) 47 47 - 269: 20(i8vec4) Load 268 - 270: 175(i8vec2) VectorShuffle 269 269 0 1 - 271: 175(i8vec2) GroupNonUniformQuadSwap 43 270 69 - 272: 169(ptr) AccessChain 34(data) 267 47 38 - 273: 19(int8_t) CompositeExtract 271 0 - Store 272 273 - 274: 169(ptr) AccessChain 34(data) 267 47 42 - 275: 19(int8_t) CompositeExtract 271 1 - Store 274 275 - 276: 6(int) Load 8(invocation) - 277: 176(ptr) AccessChain 34(data) 59 47 - 278: 20(i8vec4) Load 277 - 279: 186(i8vec3) VectorShuffle 278 278 0 1 2 - 280: 186(i8vec3) GroupNonUniformQuadSwap 43 279 69 - 281: 169(ptr) AccessChain 34(data) 276 47 38 - 282: 19(int8_t) CompositeExtract 280 0 - Store 281 282 - 283: 169(ptr) AccessChain 34(data) 276 47 42 - 284: 19(int8_t) CompositeExtract 280 1 - Store 283 284 - 285: 169(ptr) AccessChain 34(data) 276 47 69 - 286: 19(int8_t) CompositeExtract 280 2 - Store 285 286 - 287: 6(int) Load 8(invocation) - 288: 176(ptr) AccessChain 34(data) 73 47 - 289: 20(i8vec4) Load 288 - 290: 20(i8vec4) GroupNonUniformQuadSwap 43 289 69 - 291: 176(ptr) AccessChain 34(data) 287 47 - Store 291 290 - 292: 6(int) Load 8(invocation) - 294: 293(ptr) AccessChain 34(data) 37 59 38 - 295: 21(int16_t) Load 294 - 296: 21(int16_t) GroupNonUniformQuadBroadcast 43 295 42 - 297: 293(ptr) AccessChain 34(data) 292 59 38 - Store 297 296 - 298: 6(int) Load 8(invocation) - 301: 300(ptr) AccessChain 34(data) 47 59 - 302: 22(i16vec4) Load 301 - 303:299(i16vec2) VectorShuffle 302 302 0 1 - 304:299(i16vec2) GroupNonUniformQuadBroadcast 43 303 42 - 305: 293(ptr) AccessChain 34(data) 298 59 38 - 306: 21(int16_t) CompositeExtract 304 0 - Store 305 306 - 307: 293(ptr) AccessChain 34(data) 298 59 42 - 308: 21(int16_t) CompositeExtract 304 1 - Store 307 308 - 309: 6(int) Load 8(invocation) - 311: 300(ptr) AccessChain 34(data) 59 59 - 312: 22(i16vec4) Load 311 - 313:310(i16vec3) VectorShuffle 312 312 0 1 2 - 314:310(i16vec3) GroupNonUniformQuadBroadcast 43 313 42 - 315: 293(ptr) AccessChain 34(data) 309 59 38 - 316: 21(int16_t) CompositeExtract 314 0 - Store 315 316 - 317: 293(ptr) AccessChain 34(data) 309 59 42 - 318: 21(int16_t) CompositeExtract 314 1 - Store 317 318 - 319: 293(ptr) AccessChain 34(data) 309 59 69 - 320: 21(int16_t) CompositeExtract 314 2 - Store 319 320 - 321: 6(int) Load 8(invocation) - 322: 300(ptr) AccessChain 34(data) 73 59 - 323: 22(i16vec4) Load 322 - 324: 22(i16vec4) GroupNonUniformQuadBroadcast 43 323 42 - 325: 300(ptr) AccessChain 34(data) 321 59 - Store 325 324 - 326: 6(int) Load 8(invocation) - 327: 293(ptr) AccessChain 34(data) 37 59 38 - 328: 21(int16_t) Load 327 - 329: 21(int16_t) GroupNonUniformQuadSwap 43 328 38 - 330: 293(ptr) AccessChain 34(data) 326 59 38 - Store 330 329 - 331: 6(int) Load 8(invocation) - 332: 300(ptr) AccessChain 34(data) 47 59 - 333: 22(i16vec4) Load 332 - 334:299(i16vec2) VectorShuffle 333 333 0 1 - 335:299(i16vec2) GroupNonUniformQuadSwap 43 334 38 - 336: 293(ptr) AccessChain 34(data) 331 59 38 - 337: 21(int16_t) CompositeExtract 335 0 - Store 336 337 - 338: 293(ptr) AccessChain 34(data) 331 59 42 - 339: 21(int16_t) CompositeExtract 335 1 - Store 338 339 - 340: 6(int) Load 8(invocation) - 341: 300(ptr) AccessChain 34(data) 59 59 - 342: 22(i16vec4) Load 341 - 343:310(i16vec3) VectorShuffle 342 342 0 1 2 - 344:310(i16vec3) GroupNonUniformQuadSwap 43 343 38 - 345: 293(ptr) AccessChain 34(data) 340 59 38 - 346: 21(int16_t) CompositeExtract 344 0 - Store 345 346 - 347: 293(ptr) AccessChain 34(data) 340 59 42 - 348: 21(int16_t) CompositeExtract 344 1 - Store 347 348 - 349: 293(ptr) AccessChain 34(data) 340 59 69 - 350: 21(int16_t) CompositeExtract 344 2 - Store 349 350 - 351: 6(int) Load 8(invocation) - 352: 300(ptr) AccessChain 34(data) 73 59 - 353: 22(i16vec4) Load 352 - 354: 22(i16vec4) GroupNonUniformQuadSwap 43 353 38 - 355: 300(ptr) AccessChain 34(data) 351 59 - Store 355 354 - 356: 6(int) Load 8(invocation) - 357: 293(ptr) AccessChain 34(data) 37 59 38 - 358: 21(int16_t) Load 357 - 359: 21(int16_t) GroupNonUniformQuadSwap 43 358 42 - 360: 293(ptr) AccessChain 34(data) 356 59 38 - Store 360 359 - 361: 6(int) Load 8(invocation) - 362: 300(ptr) AccessChain 34(data) 47 59 - 363: 22(i16vec4) Load 362 - 364:299(i16vec2) VectorShuffle 363 363 0 1 - 365:299(i16vec2) GroupNonUniformQuadSwap 43 364 42 - 366: 293(ptr) AccessChain 34(data) 361 59 38 - 367: 21(int16_t) CompositeExtract 365 0 - Store 366 367 - 368: 293(ptr) AccessChain 34(data) 361 59 42 - 369: 21(int16_t) CompositeExtract 365 1 - Store 368 369 - 370: 6(int) Load 8(invocation) - 371: 300(ptr) AccessChain 34(data) 59 59 - 372: 22(i16vec4) Load 371 - 373:310(i16vec3) VectorShuffle 372 372 0 1 2 - 374:310(i16vec3) GroupNonUniformQuadSwap 43 373 42 - 375: 293(ptr) AccessChain 34(data) 370 59 38 - 376: 21(int16_t) CompositeExtract 374 0 - Store 375 376 - 377: 293(ptr) AccessChain 34(data) 370 59 42 - 378: 21(int16_t) CompositeExtract 374 1 - Store 377 378 - 379: 293(ptr) AccessChain 34(data) 370 59 69 - 380: 21(int16_t) CompositeExtract 374 2 - Store 379 380 - 381: 6(int) Load 8(invocation) - 382: 300(ptr) AccessChain 34(data) 73 59 - 383: 22(i16vec4) Load 382 - 384: 22(i16vec4) GroupNonUniformQuadSwap 43 383 42 - 385: 300(ptr) AccessChain 34(data) 381 59 - Store 385 384 - 386: 6(int) Load 8(invocation) - 387: 293(ptr) AccessChain 34(data) 37 59 38 - 388: 21(int16_t) Load 387 - 389: 21(int16_t) GroupNonUniformQuadSwap 43 388 69 - 390: 293(ptr) AccessChain 34(data) 386 59 38 - Store 390 389 - 391: 6(int) Load 8(invocation) - 392: 300(ptr) AccessChain 34(data) 47 59 - 393: 22(i16vec4) Load 392 - 394:299(i16vec2) VectorShuffle 393 393 0 1 - 395:299(i16vec2) GroupNonUniformQuadSwap 43 394 69 - 396: 293(ptr) AccessChain 34(data) 391 59 38 - 397: 21(int16_t) CompositeExtract 395 0 - Store 396 397 - 398: 293(ptr) AccessChain 34(data) 391 59 42 - 399: 21(int16_t) CompositeExtract 395 1 - Store 398 399 - 400: 6(int) Load 8(invocation) - 401: 300(ptr) AccessChain 34(data) 59 59 - 402: 22(i16vec4) Load 401 - 403:310(i16vec3) VectorShuffle 402 402 0 1 2 - 404:310(i16vec3) GroupNonUniformQuadSwap 43 403 69 - 405: 293(ptr) AccessChain 34(data) 400 59 38 - 406: 21(int16_t) CompositeExtract 404 0 - Store 405 406 - 407: 293(ptr) AccessChain 34(data) 400 59 42 - 408: 21(int16_t) CompositeExtract 404 1 - Store 407 408 - 409: 293(ptr) AccessChain 34(data) 400 59 69 - 410: 21(int16_t) CompositeExtract 404 2 - Store 409 410 - 411: 6(int) Load 8(invocation) - 412: 300(ptr) AccessChain 34(data) 73 59 - 413: 22(i16vec4) Load 412 - 414: 22(i16vec4) GroupNonUniformQuadSwap 43 413 69 - 415: 300(ptr) AccessChain 34(data) 411 59 - Store 415 414 - 416: 6(int) Load 8(invocation) - 418: 417(ptr) AccessChain 34(data) 37 73 38 - 419: 23(int16_t) Load 418 - 420: 23(int16_t) GroupNonUniformQuadBroadcast 43 419 42 - 421: 417(ptr) AccessChain 34(data) 416 73 38 - Store 421 420 - 422: 6(int) Load 8(invocation) - 425: 424(ptr) AccessChain 34(data) 47 73 - 426: 24(i16vec4) Load 425 - 427:423(i16vec2) VectorShuffle 426 426 0 1 - 428:423(i16vec2) GroupNonUniformQuadBroadcast 43 427 42 - 429: 417(ptr) AccessChain 34(data) 422 73 38 - 430: 23(int16_t) CompositeExtract 428 0 - Store 429 430 - 431: 417(ptr) AccessChain 34(data) 422 73 42 - 432: 23(int16_t) CompositeExtract 428 1 - Store 431 432 - 433: 6(int) Load 8(invocation) - 435: 424(ptr) AccessChain 34(data) 59 73 - 436: 24(i16vec4) Load 435 - 437:434(i16vec3) VectorShuffle 436 436 0 1 2 - 438:434(i16vec3) GroupNonUniformQuadBroadcast 43 437 42 - 439: 417(ptr) AccessChain 34(data) 433 73 38 - 440: 23(int16_t) CompositeExtract 438 0 - Store 439 440 - 441: 417(ptr) AccessChain 34(data) 433 73 42 - 442: 23(int16_t) CompositeExtract 438 1 - Store 441 442 - 443: 417(ptr) AccessChain 34(data) 433 73 69 - 444: 23(int16_t) CompositeExtract 438 2 - Store 443 444 - 445: 6(int) Load 8(invocation) - 446: 424(ptr) AccessChain 34(data) 73 73 - 447: 24(i16vec4) Load 446 - 448: 24(i16vec4) GroupNonUniformQuadBroadcast 43 447 42 - 449: 424(ptr) AccessChain 34(data) 445 73 - Store 449 448 - 450: 6(int) Load 8(invocation) - 451: 417(ptr) AccessChain 34(data) 37 73 38 - 452: 23(int16_t) Load 451 - 453: 23(int16_t) GroupNonUniformQuadSwap 43 452 38 - 454: 417(ptr) AccessChain 34(data) 450 73 38 - Store 454 453 - 455: 6(int) Load 8(invocation) - 456: 424(ptr) AccessChain 34(data) 47 73 - 457: 24(i16vec4) Load 456 - 458:423(i16vec2) VectorShuffle 457 457 0 1 - 459:423(i16vec2) GroupNonUniformQuadSwap 43 458 38 - 460: 417(ptr) AccessChain 34(data) 455 73 38 - 461: 23(int16_t) CompositeExtract 459 0 - Store 460 461 - 462: 417(ptr) AccessChain 34(data) 455 73 42 - 463: 23(int16_t) CompositeExtract 459 1 - Store 462 463 - 464: 6(int) Load 8(invocation) - 465: 424(ptr) AccessChain 34(data) 59 73 - 466: 24(i16vec4) Load 465 - 467:434(i16vec3) VectorShuffle 466 466 0 1 2 - 468:434(i16vec3) GroupNonUniformQuadSwap 43 467 38 - 469: 417(ptr) AccessChain 34(data) 464 73 38 - 470: 23(int16_t) CompositeExtract 468 0 - Store 469 470 - 471: 417(ptr) AccessChain 34(data) 464 73 42 - 472: 23(int16_t) CompositeExtract 468 1 - Store 471 472 - 473: 417(ptr) AccessChain 34(data) 464 73 69 - 474: 23(int16_t) CompositeExtract 468 2 - Store 473 474 - 475: 6(int) Load 8(invocation) - 476: 424(ptr) AccessChain 34(data) 73 73 - 477: 24(i16vec4) Load 476 - 478: 24(i16vec4) GroupNonUniformQuadSwap 43 477 38 - 479: 424(ptr) AccessChain 34(data) 475 73 - Store 479 478 - 480: 6(int) Load 8(invocation) - 481: 417(ptr) AccessChain 34(data) 37 73 38 - 482: 23(int16_t) Load 481 - 483: 23(int16_t) GroupNonUniformQuadSwap 43 482 42 - 484: 417(ptr) AccessChain 34(data) 480 73 38 - Store 484 483 - 485: 6(int) Load 8(invocation) - 486: 424(ptr) AccessChain 34(data) 47 73 - 487: 24(i16vec4) Load 486 - 488:423(i16vec2) VectorShuffle 487 487 0 1 - 489:423(i16vec2) GroupNonUniformQuadSwap 43 488 42 - 490: 417(ptr) AccessChain 34(data) 485 73 38 - 491: 23(int16_t) CompositeExtract 489 0 - Store 490 491 - 492: 417(ptr) AccessChain 34(data) 485 73 42 - 493: 23(int16_t) CompositeExtract 489 1 - Store 492 493 - 494: 6(int) Load 8(invocation) - 495: 424(ptr) AccessChain 34(data) 59 73 - 496: 24(i16vec4) Load 495 - 497:434(i16vec3) VectorShuffle 496 496 0 1 2 - 498:434(i16vec3) GroupNonUniformQuadSwap 43 497 42 - 499: 417(ptr) AccessChain 34(data) 494 73 38 - 500: 23(int16_t) CompositeExtract 498 0 - Store 499 500 - 501: 417(ptr) AccessChain 34(data) 494 73 42 - 502: 23(int16_t) CompositeExtract 498 1 - Store 501 502 - 503: 417(ptr) AccessChain 34(data) 494 73 69 - 504: 23(int16_t) CompositeExtract 498 2 - Store 503 504 - 505: 6(int) Load 8(invocation) - 506: 424(ptr) AccessChain 34(data) 73 73 - 507: 24(i16vec4) Load 506 - 508: 24(i16vec4) GroupNonUniformQuadSwap 43 507 42 - 509: 424(ptr) AccessChain 34(data) 505 73 - Store 509 508 - 510: 6(int) Load 8(invocation) - 511: 417(ptr) AccessChain 34(data) 37 73 38 - 512: 23(int16_t) Load 511 - 513: 23(int16_t) GroupNonUniformQuadSwap 43 512 69 - 514: 417(ptr) AccessChain 34(data) 510 73 38 - Store 514 513 - 515: 6(int) Load 8(invocation) - 516: 424(ptr) AccessChain 34(data) 47 73 - 517: 24(i16vec4) Load 516 - 518:423(i16vec2) VectorShuffle 517 517 0 1 - 519:423(i16vec2) GroupNonUniformQuadSwap 43 518 69 - 520: 417(ptr) AccessChain 34(data) 515 73 38 - 521: 23(int16_t) CompositeExtract 519 0 - Store 520 521 - 522: 417(ptr) AccessChain 34(data) 515 73 42 - 523: 23(int16_t) CompositeExtract 519 1 - Store 522 523 - 524: 6(int) Load 8(invocation) - 525: 424(ptr) AccessChain 34(data) 59 73 - 526: 24(i16vec4) Load 525 - 527:434(i16vec3) VectorShuffle 526 526 0 1 2 - 528:434(i16vec3) GroupNonUniformQuadSwap 43 527 69 - 529: 417(ptr) AccessChain 34(data) 524 73 38 - 530: 23(int16_t) CompositeExtract 528 0 - Store 529 530 - 531: 417(ptr) AccessChain 34(data) 524 73 42 - 532: 23(int16_t) CompositeExtract 528 1 - Store 531 532 - 533: 417(ptr) AccessChain 34(data) 524 73 69 - 534: 23(int16_t) CompositeExtract 528 2 - Store 533 534 - 535: 6(int) Load 8(invocation) - 536: 424(ptr) AccessChain 34(data) 73 73 - 537: 24(i16vec4) Load 536 - 538: 24(i16vec4) GroupNonUniformQuadSwap 43 537 69 - 539: 424(ptr) AccessChain 34(data) 535 73 - Store 539 538 - 540: 6(int) Load 8(invocation) - 543: 542(ptr) AccessChain 34(data) 37 541 38 - 544: 25(int64_t) Load 543 - 545: 25(int64_t) GroupNonUniformQuadBroadcast 43 544 42 - 546: 542(ptr) AccessChain 34(data) 540 541 38 - Store 546 545 - 547: 6(int) Load 8(invocation) - 550: 549(ptr) AccessChain 34(data) 47 541 - 551: 26(i64vec4) Load 550 - 552:548(i64vec2) VectorShuffle 551 551 0 1 - 553:548(i64vec2) GroupNonUniformQuadBroadcast 43 552 42 - 554: 542(ptr) AccessChain 34(data) 547 541 38 - 555: 25(int64_t) CompositeExtract 553 0 - Store 554 555 - 556: 542(ptr) AccessChain 34(data) 547 541 42 - 557: 25(int64_t) CompositeExtract 553 1 - Store 556 557 - 558: 6(int) Load 8(invocation) - 560: 549(ptr) AccessChain 34(data) 59 541 - 561: 26(i64vec4) Load 560 - 562:559(i64vec3) VectorShuffle 561 561 0 1 2 - 563:559(i64vec3) GroupNonUniformQuadBroadcast 43 562 42 - 564: 542(ptr) AccessChain 34(data) 558 541 38 - 565: 25(int64_t) CompositeExtract 563 0 - Store 564 565 - 566: 542(ptr) AccessChain 34(data) 558 541 42 - 567: 25(int64_t) CompositeExtract 563 1 - Store 566 567 - 568: 542(ptr) AccessChain 34(data) 558 541 69 - 569: 25(int64_t) CompositeExtract 563 2 - Store 568 569 - 570: 6(int) Load 8(invocation) - 571: 549(ptr) AccessChain 34(data) 73 541 - 572: 26(i64vec4) Load 571 - 573: 26(i64vec4) GroupNonUniformQuadBroadcast 43 572 42 - 574: 549(ptr) AccessChain 34(data) 570 541 - Store 574 573 - 575: 6(int) Load 8(invocation) - 576: 542(ptr) AccessChain 34(data) 37 541 38 - 577: 25(int64_t) Load 576 - 578: 25(int64_t) GroupNonUniformQuadSwap 43 577 38 - 579: 542(ptr) AccessChain 34(data) 575 541 38 - Store 579 578 - 580: 6(int) Load 8(invocation) - 581: 549(ptr) AccessChain 34(data) 47 541 - 582: 26(i64vec4) Load 581 - 583:548(i64vec2) VectorShuffle 582 582 0 1 - 584:548(i64vec2) GroupNonUniformQuadSwap 43 583 38 - 585: 542(ptr) AccessChain 34(data) 580 541 38 - 586: 25(int64_t) CompositeExtract 584 0 - Store 585 586 - 587: 542(ptr) AccessChain 34(data) 580 541 42 - 588: 25(int64_t) CompositeExtract 584 1 - Store 587 588 - 589: 6(int) Load 8(invocation) - 590: 549(ptr) AccessChain 34(data) 59 541 - 591: 26(i64vec4) Load 590 - 592:559(i64vec3) VectorShuffle 591 591 0 1 2 - 593:559(i64vec3) GroupNonUniformQuadSwap 43 592 38 - 594: 542(ptr) AccessChain 34(data) 589 541 38 - 595: 25(int64_t) CompositeExtract 593 0 - Store 594 595 - 596: 542(ptr) AccessChain 34(data) 589 541 42 - 597: 25(int64_t) CompositeExtract 593 1 - Store 596 597 - 598: 542(ptr) AccessChain 34(data) 589 541 69 - 599: 25(int64_t) CompositeExtract 593 2 - Store 598 599 - 600: 6(int) Load 8(invocation) - 601: 549(ptr) AccessChain 34(data) 73 541 - 602: 26(i64vec4) Load 601 - 603: 26(i64vec4) GroupNonUniformQuadSwap 43 602 38 - 604: 549(ptr) AccessChain 34(data) 600 541 - Store 604 603 - 605: 6(int) Load 8(invocation) - 606: 542(ptr) AccessChain 34(data) 37 541 38 - 607: 25(int64_t) Load 606 - 608: 25(int64_t) GroupNonUniformQuadSwap 43 607 42 - 609: 542(ptr) AccessChain 34(data) 605 541 38 - Store 609 608 - 610: 6(int) Load 8(invocation) - 611: 549(ptr) AccessChain 34(data) 47 541 - 612: 26(i64vec4) Load 611 - 613:548(i64vec2) VectorShuffle 612 612 0 1 - 614:548(i64vec2) GroupNonUniformQuadSwap 43 613 42 - 615: 542(ptr) AccessChain 34(data) 610 541 38 - 616: 25(int64_t) CompositeExtract 614 0 - Store 615 616 - 617: 542(ptr) AccessChain 34(data) 610 541 42 - 618: 25(int64_t) CompositeExtract 614 1 - Store 617 618 - 619: 6(int) Load 8(invocation) - 620: 549(ptr) AccessChain 34(data) 59 541 - 621: 26(i64vec4) Load 620 - 622:559(i64vec3) VectorShuffle 621 621 0 1 2 - 623:559(i64vec3) GroupNonUniformQuadSwap 43 622 42 - 624: 542(ptr) AccessChain 34(data) 619 541 38 - 625: 25(int64_t) CompositeExtract 623 0 - Store 624 625 - 626: 542(ptr) AccessChain 34(data) 619 541 42 - 627: 25(int64_t) CompositeExtract 623 1 - Store 626 627 - 628: 542(ptr) AccessChain 34(data) 619 541 69 - 629: 25(int64_t) CompositeExtract 623 2 - Store 628 629 - 630: 6(int) Load 8(invocation) - 631: 549(ptr) AccessChain 34(data) 73 541 - 632: 26(i64vec4) Load 631 - 633: 26(i64vec4) GroupNonUniformQuadSwap 43 632 42 - 634: 549(ptr) AccessChain 34(data) 630 541 - Store 634 633 - 635: 6(int) Load 8(invocation) - 636: 542(ptr) AccessChain 34(data) 37 541 38 - 637: 25(int64_t) Load 636 - 638: 25(int64_t) GroupNonUniformQuadSwap 43 637 69 - 639: 542(ptr) AccessChain 34(data) 635 541 38 - Store 639 638 - 640: 6(int) Load 8(invocation) - 641: 549(ptr) AccessChain 34(data) 47 541 - 642: 26(i64vec4) Load 641 - 643:548(i64vec2) VectorShuffle 642 642 0 1 - 644:548(i64vec2) GroupNonUniformQuadSwap 43 643 69 - 645: 542(ptr) AccessChain 34(data) 640 541 38 - 646: 25(int64_t) CompositeExtract 644 0 - Store 645 646 - 647: 542(ptr) AccessChain 34(data) 640 541 42 - 648: 25(int64_t) CompositeExtract 644 1 - Store 647 648 - 649: 6(int) Load 8(invocation) - 650: 549(ptr) AccessChain 34(data) 59 541 - 651: 26(i64vec4) Load 650 - 652:559(i64vec3) VectorShuffle 651 651 0 1 2 - 653:559(i64vec3) GroupNonUniformQuadSwap 43 652 69 - 654: 542(ptr) AccessChain 34(data) 649 541 38 - 655: 25(int64_t) CompositeExtract 653 0 - Store 654 655 - 656: 542(ptr) AccessChain 34(data) 649 541 42 - 657: 25(int64_t) CompositeExtract 653 1 - Store 656 657 - 658: 542(ptr) AccessChain 34(data) 649 541 69 - 659: 25(int64_t) CompositeExtract 653 2 - Store 658 659 - 660: 6(int) Load 8(invocation) - 661: 549(ptr) AccessChain 34(data) 73 541 - 662: 26(i64vec4) Load 661 - 663: 26(i64vec4) GroupNonUniformQuadSwap 43 662 69 - 664: 549(ptr) AccessChain 34(data) 660 541 - Store 664 663 - 665: 6(int) Load 8(invocation) - 668: 667(ptr) AccessChain 34(data) 37 666 38 - 669: 27(int64_t) Load 668 - 670: 27(int64_t) GroupNonUniformQuadBroadcast 43 669 42 - 671: 667(ptr) AccessChain 34(data) 665 666 38 - Store 671 670 - 672: 6(int) Load 8(invocation) - 675: 674(ptr) AccessChain 34(data) 47 666 - 676: 28(i64vec4) Load 675 - 677:673(i64vec2) VectorShuffle 676 676 0 1 - 678:673(i64vec2) GroupNonUniformQuadBroadcast 43 677 42 - 679: 667(ptr) AccessChain 34(data) 672 666 38 - 680: 27(int64_t) CompositeExtract 678 0 - Store 679 680 - 681: 667(ptr) AccessChain 34(data) 672 666 42 - 682: 27(int64_t) CompositeExtract 678 1 - Store 681 682 - 683: 6(int) Load 8(invocation) - 685: 674(ptr) AccessChain 34(data) 59 666 - 686: 28(i64vec4) Load 685 - 687:684(i64vec3) VectorShuffle 686 686 0 1 2 - 688:684(i64vec3) GroupNonUniformQuadBroadcast 43 687 42 - 689: 667(ptr) AccessChain 34(data) 683 666 38 - 690: 27(int64_t) CompositeExtract 688 0 - Store 689 690 - 691: 667(ptr) AccessChain 34(data) 683 666 42 - 692: 27(int64_t) CompositeExtract 688 1 - Store 691 692 - 693: 667(ptr) AccessChain 34(data) 683 666 69 - 694: 27(int64_t) CompositeExtract 688 2 - Store 693 694 - 695: 6(int) Load 8(invocation) - 696: 674(ptr) AccessChain 34(data) 73 666 - 697: 28(i64vec4) Load 696 - 698: 28(i64vec4) GroupNonUniformQuadBroadcast 43 697 42 - 699: 674(ptr) AccessChain 34(data) 695 666 - Store 699 698 - 700: 6(int) Load 8(invocation) - 701: 667(ptr) AccessChain 34(data) 37 666 38 - 702: 27(int64_t) Load 701 - 703: 27(int64_t) GroupNonUniformQuadSwap 43 702 38 - 704: 667(ptr) AccessChain 34(data) 700 666 38 - Store 704 703 - 705: 6(int) Load 8(invocation) - 706: 674(ptr) AccessChain 34(data) 47 666 - 707: 28(i64vec4) Load 706 - 708:673(i64vec2) VectorShuffle 707 707 0 1 - 709:673(i64vec2) GroupNonUniformQuadSwap 43 708 38 - 710: 667(ptr) AccessChain 34(data) 705 666 38 - 711: 27(int64_t) CompositeExtract 709 0 - Store 710 711 - 712: 667(ptr) AccessChain 34(data) 705 666 42 - 713: 27(int64_t) CompositeExtract 709 1 - Store 712 713 - 714: 6(int) Load 8(invocation) - 715: 674(ptr) AccessChain 34(data) 59 666 - 716: 28(i64vec4) Load 715 - 717:684(i64vec3) VectorShuffle 716 716 0 1 2 - 718:684(i64vec3) GroupNonUniformQuadSwap 43 717 38 - 719: 667(ptr) AccessChain 34(data) 714 666 38 - 720: 27(int64_t) CompositeExtract 718 0 - Store 719 720 - 721: 667(ptr) AccessChain 34(data) 714 666 42 - 722: 27(int64_t) CompositeExtract 718 1 - Store 721 722 - 723: 667(ptr) AccessChain 34(data) 714 666 69 - 724: 27(int64_t) CompositeExtract 718 2 - Store 723 724 - 725: 6(int) Load 8(invocation) - 726: 674(ptr) AccessChain 34(data) 73 666 - 727: 28(i64vec4) Load 726 - 728: 28(i64vec4) GroupNonUniformQuadSwap 43 727 38 - 729: 674(ptr) AccessChain 34(data) 725 666 - Store 729 728 - 730: 6(int) Load 8(invocation) - 731: 667(ptr) AccessChain 34(data) 37 666 38 - 732: 27(int64_t) Load 731 - 733: 27(int64_t) GroupNonUniformQuadSwap 43 732 42 - 734: 667(ptr) AccessChain 34(data) 730 666 38 - Store 734 733 - 735: 6(int) Load 8(invocation) - 736: 674(ptr) AccessChain 34(data) 47 666 - 737: 28(i64vec4) Load 736 - 738:673(i64vec2) VectorShuffle 737 737 0 1 - 739:673(i64vec2) GroupNonUniformQuadSwap 43 738 42 - 740: 667(ptr) AccessChain 34(data) 735 666 38 - 741: 27(int64_t) CompositeExtract 739 0 - Store 740 741 - 742: 667(ptr) AccessChain 34(data) 735 666 42 - 743: 27(int64_t) CompositeExtract 739 1 - Store 742 743 - 744: 6(int) Load 8(invocation) - 745: 674(ptr) AccessChain 34(data) 59 666 - 746: 28(i64vec4) Load 745 - 747:684(i64vec3) VectorShuffle 746 746 0 1 2 - 748:684(i64vec3) GroupNonUniformQuadSwap 43 747 42 - 749: 667(ptr) AccessChain 34(data) 744 666 38 - 750: 27(int64_t) CompositeExtract 748 0 - Store 749 750 - 751: 667(ptr) AccessChain 34(data) 744 666 42 - 752: 27(int64_t) CompositeExtract 748 1 - Store 751 752 - 753: 667(ptr) AccessChain 34(data) 744 666 69 - 754: 27(int64_t) CompositeExtract 748 2 - Store 753 754 - 755: 6(int) Load 8(invocation) - 756: 674(ptr) AccessChain 34(data) 73 666 - 757: 28(i64vec4) Load 756 - 758: 28(i64vec4) GroupNonUniformQuadSwap 43 757 42 - 759: 674(ptr) AccessChain 34(data) 755 666 - Store 759 758 - 760: 6(int) Load 8(invocation) - 761: 667(ptr) AccessChain 34(data) 37 666 38 - 762: 27(int64_t) Load 761 - 763: 27(int64_t) GroupNonUniformQuadSwap 43 762 69 - 764: 667(ptr) AccessChain 34(data) 760 666 38 - Store 764 763 - 765: 6(int) Load 8(invocation) - 766: 674(ptr) AccessChain 34(data) 47 666 - 767: 28(i64vec4) Load 766 - 768:673(i64vec2) VectorShuffle 767 767 0 1 - 769:673(i64vec2) GroupNonUniformQuadSwap 43 768 69 - 770: 667(ptr) AccessChain 34(data) 765 666 38 - 771: 27(int64_t) CompositeExtract 769 0 - Store 770 771 - 772: 667(ptr) AccessChain 34(data) 765 666 42 - 773: 27(int64_t) CompositeExtract 769 1 - Store 772 773 - 774: 6(int) Load 8(invocation) - 775: 674(ptr) AccessChain 34(data) 59 666 - 776: 28(i64vec4) Load 775 - 777:684(i64vec3) VectorShuffle 776 776 0 1 2 - 778:684(i64vec3) GroupNonUniformQuadSwap 43 777 69 - 779: 667(ptr) AccessChain 34(data) 774 666 38 - 780: 27(int64_t) CompositeExtract 778 0 - Store 779 780 - 781: 667(ptr) AccessChain 34(data) 774 666 42 - 782: 27(int64_t) CompositeExtract 778 1 - Store 781 782 - 783: 667(ptr) AccessChain 34(data) 774 666 69 - 784: 27(int64_t) CompositeExtract 778 2 - Store 783 784 - 785: 6(int) Load 8(invocation) - 786: 674(ptr) AccessChain 34(data) 73 666 - 787: 28(i64vec4) Load 786 - 788: 28(i64vec4) GroupNonUniformQuadSwap 43 787 69 - 789: 674(ptr) AccessChain 34(data) 785 666 - Store 789 788 - 790: 6(int) Load 8(invocation) - 793: 792(ptr) AccessChain 34(data) 37 791 38 - 794:29(float16_t) Load 793 - 795:29(float16_t) GroupNonUniformQuadBroadcast 43 794 42 - 796: 792(ptr) AccessChain 34(data) 790 791 38 - Store 796 795 - 797: 6(int) Load 8(invocation) - 800: 799(ptr) AccessChain 34(data) 47 791 - 801: 30(f16vec4) Load 800 - 802:798(f16vec2) VectorShuffle 801 801 0 1 - 803:798(f16vec2) GroupNonUniformQuadBroadcast 43 802 42 - 804: 792(ptr) AccessChain 34(data) 797 791 38 - 805:29(float16_t) CompositeExtract 803 0 - Store 804 805 - 806: 792(ptr) AccessChain 34(data) 797 791 42 - 807:29(float16_t) CompositeExtract 803 1 - Store 806 807 - 808: 6(int) Load 8(invocation) - 810: 799(ptr) AccessChain 34(data) 59 791 - 811: 30(f16vec4) Load 810 - 812:809(f16vec3) VectorShuffle 811 811 0 1 2 - 813:809(f16vec3) GroupNonUniformQuadBroadcast 43 812 42 - 814: 792(ptr) AccessChain 34(data) 808 791 38 - 815:29(float16_t) CompositeExtract 813 0 - Store 814 815 - 816: 792(ptr) AccessChain 34(data) 808 791 42 - 817:29(float16_t) CompositeExtract 813 1 - Store 816 817 - 818: 792(ptr) AccessChain 34(data) 808 791 69 - 819:29(float16_t) CompositeExtract 813 2 - Store 818 819 - 820: 6(int) Load 8(invocation) - 821: 799(ptr) AccessChain 34(data) 73 791 - 822: 30(f16vec4) Load 821 - 823: 30(f16vec4) GroupNonUniformQuadBroadcast 43 822 42 - 824: 799(ptr) AccessChain 34(data) 820 791 - Store 824 823 - 825: 6(int) Load 8(invocation) - 826: 792(ptr) AccessChain 34(data) 37 791 38 - 827:29(float16_t) Load 826 - 828:29(float16_t) GroupNonUniformQuadSwap 43 827 38 - 829: 792(ptr) AccessChain 34(data) 825 791 38 - Store 829 828 - 830: 6(int) Load 8(invocation) - 831: 799(ptr) AccessChain 34(data) 47 791 - 832: 30(f16vec4) Load 831 - 833:798(f16vec2) VectorShuffle 832 832 0 1 - 834:798(f16vec2) GroupNonUniformQuadSwap 43 833 38 - 835: 792(ptr) AccessChain 34(data) 830 791 38 - 836:29(float16_t) CompositeExtract 834 0 - Store 835 836 - 837: 792(ptr) AccessChain 34(data) 830 791 42 - 838:29(float16_t) CompositeExtract 834 1 - Store 837 838 - 839: 6(int) Load 8(invocation) - 840: 799(ptr) AccessChain 34(data) 59 791 - 841: 30(f16vec4) Load 840 - 842:809(f16vec3) VectorShuffle 841 841 0 1 2 - 843:809(f16vec3) GroupNonUniformQuadSwap 43 842 38 - 844: 792(ptr) AccessChain 34(data) 839 791 38 - 845:29(float16_t) CompositeExtract 843 0 - Store 844 845 - 846: 792(ptr) AccessChain 34(data) 839 791 42 - 847:29(float16_t) CompositeExtract 843 1 - Store 846 847 - 848: 792(ptr) AccessChain 34(data) 839 791 69 - 849:29(float16_t) CompositeExtract 843 2 - Store 848 849 - 850: 6(int) Load 8(invocation) - 851: 799(ptr) AccessChain 34(data) 73 791 - 852: 30(f16vec4) Load 851 - 853: 30(f16vec4) GroupNonUniformQuadSwap 43 852 38 - 854: 799(ptr) AccessChain 34(data) 850 791 - Store 854 853 - 855: 6(int) Load 8(invocation) - 856: 792(ptr) AccessChain 34(data) 37 791 38 - 857:29(float16_t) Load 856 - 858:29(float16_t) GroupNonUniformQuadSwap 43 857 42 - 859: 792(ptr) AccessChain 34(data) 855 791 38 - Store 859 858 - 860: 6(int) Load 8(invocation) - 861: 799(ptr) AccessChain 34(data) 47 791 - 862: 30(f16vec4) Load 861 - 863:798(f16vec2) VectorShuffle 862 862 0 1 - 864:798(f16vec2) GroupNonUniformQuadSwap 43 863 42 - 865: 792(ptr) AccessChain 34(data) 860 791 38 - 866:29(float16_t) CompositeExtract 864 0 - Store 865 866 - 867: 792(ptr) AccessChain 34(data) 860 791 42 - 868:29(float16_t) CompositeExtract 864 1 - Store 867 868 - 869: 6(int) Load 8(invocation) - 870: 799(ptr) AccessChain 34(data) 59 791 - 871: 30(f16vec4) Load 870 - 872:809(f16vec3) VectorShuffle 871 871 0 1 2 - 873:809(f16vec3) GroupNonUniformQuadSwap 43 872 42 - 874: 792(ptr) AccessChain 34(data) 869 791 38 - 875:29(float16_t) CompositeExtract 873 0 - Store 874 875 - 876: 792(ptr) AccessChain 34(data) 869 791 42 - 877:29(float16_t) CompositeExtract 873 1 - Store 876 877 - 878: 792(ptr) AccessChain 34(data) 869 791 69 - 879:29(float16_t) CompositeExtract 873 2 - Store 878 879 - 880: 6(int) Load 8(invocation) - 881: 799(ptr) AccessChain 34(data) 73 791 - 882: 30(f16vec4) Load 881 - 883: 30(f16vec4) GroupNonUniformQuadSwap 43 882 42 - 884: 799(ptr) AccessChain 34(data) 880 791 - Store 884 883 - 885: 6(int) Load 8(invocation) - 886: 792(ptr) AccessChain 34(data) 37 791 38 - 887:29(float16_t) Load 886 - 888:29(float16_t) GroupNonUniformQuadSwap 43 887 69 - 889: 792(ptr) AccessChain 34(data) 885 791 38 - Store 889 888 - 890: 6(int) Load 8(invocation) - 891: 799(ptr) AccessChain 34(data) 47 791 - 892: 30(f16vec4) Load 891 - 893:798(f16vec2) VectorShuffle 892 892 0 1 - 894:798(f16vec2) GroupNonUniformQuadSwap 43 893 69 - 895: 792(ptr) AccessChain 34(data) 890 791 38 - 896:29(float16_t) CompositeExtract 894 0 - Store 895 896 - 897: 792(ptr) AccessChain 34(data) 890 791 42 - 898:29(float16_t) CompositeExtract 894 1 - Store 897 898 - 899: 6(int) Load 8(invocation) - 900: 799(ptr) AccessChain 34(data) 59 791 - 901: 30(f16vec4) Load 900 - 902:809(f16vec3) VectorShuffle 901 901 0 1 2 - 903:809(f16vec3) GroupNonUniformQuadSwap 43 902 69 - 904: 792(ptr) AccessChain 34(data) 899 791 38 - 905:29(float16_t) CompositeExtract 903 0 - Store 904 905 - 906: 792(ptr) AccessChain 34(data) 899 791 42 - 907:29(float16_t) CompositeExtract 903 1 - Store 906 907 - 908: 792(ptr) AccessChain 34(data) 899 791 69 - 909:29(float16_t) CompositeExtract 903 2 - Store 908 909 - 910: 6(int) Load 8(invocation) - 911: 799(ptr) AccessChain 34(data) 73 791 - 912: 30(f16vec4) Load 911 - 913: 30(f16vec4) GroupNonUniformQuadSwap 43 912 69 - 914: 799(ptr) AccessChain 34(data) 910 791 - Store 914 913 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesQuadNeg.comp.out b/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesQuadNeg.comp.out deleted file mode 100644 index 73b1597e..00000000 --- a/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesQuadNeg.comp.out +++ /dev/null @@ -1,117 +0,0 @@ -spv.subgroupExtendedTypesQuadNeg.comp -ERROR: 0:26: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:27: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:28: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:29: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:31: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:32: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:33: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:34: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:36: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:37: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:38: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:39: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:41: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:42: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:43: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:44: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:46: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:47: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:48: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:49: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:51: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:52: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:53: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:54: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:56: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:57: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:58: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:59: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:61: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:62: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:63: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:64: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:66: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:67: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:68: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:69: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:71: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:72: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:73: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:74: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:76: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:77: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:78: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:79: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:81: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:82: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:83: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:84: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:86: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:87: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:88: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:89: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:91: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:92: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:93: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:94: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:96: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:97: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:98: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:99: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:101: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:102: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:103: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:104: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:106: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:107: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:108: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:109: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:111: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:112: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:113: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:114: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:116: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:117: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:118: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:119: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:121: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:122: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:123: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:124: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:126: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:127: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:128: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:129: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:131: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:132: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:133: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:134: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:136: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:137: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:138: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:139: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:141: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:142: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:143: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:144: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:146: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:147: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:148: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:149: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:151: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:152: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:153: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:154: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:156: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:157: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:158: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:159: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:161: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:162: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:163: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:164: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 112 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesShuffle.comp.out b/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesShuffle.comp.out deleted file mode 100644 index eaea708b..00000000 --- a/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesShuffle.comp.out +++ /dev/null @@ -1,715 +0,0 @@ -spv.subgroupExtendedTypesShuffle.comp -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 554 - - Capability Shader - Capability Float16 - Capability Int64 - Capability Int16 - Capability Int8 - Capability GroupNonUniform - Capability GroupNonUniformShuffle - Capability StorageUniformBufferBlock16 - Capability StorageBuffer8BitAccess - Extension "SPV_KHR_8bit_storage" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 10 12 - ExecutionMode 4 LocalSize 8 1 1 - Source GLSL 450 - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int16" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int64" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int8" - SourceExtension "GL_EXT_shader_subgroup_extended_types_float16" - SourceExtension "GL_EXT_shader_subgroup_extended_types_int16" - SourceExtension "GL_EXT_shader_subgroup_extended_types_int64" - SourceExtension "GL_EXT_shader_subgroup_extended_types_int8" - SourceExtension "GL_KHR_shader_subgroup_basic" - SourceExtension "GL_KHR_shader_subgroup_shuffle" - Name 4 "main" - Name 8 "invocation" - Name 10 "gl_SubgroupInvocationID" - Name 12 "gl_SubgroupSize" - Name 31 "Buffers" - MemberName 31(Buffers) 0 "i8" - MemberName 31(Buffers) 1 "u8" - MemberName 31(Buffers) 2 "i16" - MemberName 31(Buffers) 3 "u16" - MemberName 31(Buffers) 4 "i64" - MemberName 31(Buffers) 5 "u64" - MemberName 31(Buffers) 6 "f16" - Name 34 "data" - Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision - Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId - Decorate 11 RelaxedPrecision - Decorate 12(gl_SubgroupSize) RelaxedPrecision - Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize - Decorate 13 RelaxedPrecision - Decorate 14 RelaxedPrecision - Decorate 16 RelaxedPrecision - MemberDecorate 31(Buffers) 0 Offset 0 - MemberDecorate 31(Buffers) 1 Offset 4 - MemberDecorate 31(Buffers) 2 Offset 8 - MemberDecorate 31(Buffers) 3 Offset 16 - MemberDecorate 31(Buffers) 4 Offset 32 - MemberDecorate 31(Buffers) 5 Offset 64 - MemberDecorate 31(Buffers) 6 Offset 96 - Decorate 31(Buffers) Block - Decorate 34(data) DescriptorSet 0 - Decorate 34(data) Binding 0 - Decorate 553 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypePointer Input 6(int) -10(gl_SubgroupInvocationID): 9(ptr) Variable Input -12(gl_SubgroupSize): 9(ptr) Variable Input - 15: 6(int) Constant 4 - 17: TypeInt 8 1 - 18: TypeVector 17(int8_t) 4 - 19: TypeInt 8 0 - 20: TypeVector 19(int8_t) 4 - 21: TypeInt 16 1 - 22: TypeVector 21(int16_t) 4 - 23: TypeInt 16 0 - 24: TypeVector 23(int16_t) 4 - 25: TypeInt 64 1 - 26: TypeVector 25(int64_t) 4 - 27: TypeInt 64 0 - 28: TypeVector 27(int64_t) 4 - 29: TypeFloat 16 - 30: TypeVector 29(float16_t) 4 - 31(Buffers): TypeStruct 18(i8vec4) 20(i8vec4) 22(i16vec4) 24(i16vec4) 26(i64vec4) 28(i64vec4) 30(f16vec4) - 32: TypeArray 31(Buffers) 15 - 33: TypePointer StorageBuffer 32 - 34(data): 33(ptr) Variable StorageBuffer - 36: TypeInt 32 1 - 37: 36(int) Constant 0 - 38: 6(int) Constant 0 - 39: TypePointer StorageBuffer 17(int8_t) - 43: 6(int) Constant 3 - 47: 36(int) Constant 1 - 48: TypeVector 17(int8_t) 2 - 49: TypePointer StorageBuffer 18(i8vec4) - 57: 6(int) Constant 1 - 61: 36(int) Constant 2 - 62: TypeVector 17(int8_t) 3 - 72: 6(int) Constant 2 - 76: 36(int) Constant 3 - 117: TypePointer StorageBuffer 19(int8_t) - 124: TypeVector 19(int8_t) 2 - 125: TypePointer StorageBuffer 20(i8vec4) - 136: TypeVector 19(int8_t) 3 - 189: TypePointer StorageBuffer 21(int16_t) - 196: TypeVector 21(int16_t) 2 - 197: TypePointer StorageBuffer 22(i16vec4) - 208: TypeVector 21(int16_t) 3 - 261: TypePointer StorageBuffer 23(int16_t) - 268: TypeVector 23(int16_t) 2 - 269: TypePointer StorageBuffer 24(i16vec4) - 280: TypeVector 23(int16_t) 3 - 333: 36(int) Constant 4 - 334: TypePointer StorageBuffer 25(int64_t) - 341: TypeVector 25(int64_t) 2 - 342: TypePointer StorageBuffer 26(i64vec4) - 353: TypeVector 25(int64_t) 3 - 406: 36(int) Constant 5 - 407: TypePointer StorageBuffer 27(int64_t) - 414: TypeVector 27(int64_t) 2 - 415: TypePointer StorageBuffer 28(i64vec4) - 426: TypeVector 27(int64_t) 3 - 479: 36(int) Constant 6 - 480: TypePointer StorageBuffer 29(float16_t) - 487: TypeVector 29(float16_t) 2 - 488: TypePointer StorageBuffer 30(f16vec4) - 499: TypeVector 29(float16_t) 3 - 551: TypeVector 6(int) 3 - 552: 6(int) Constant 8 - 553: 551(ivec3) ConstantComposite 552 57 57 - 4(main): 2 Function None 3 - 5: Label - 8(invocation): 7(ptr) Variable Function - 11: 6(int) Load 10(gl_SubgroupInvocationID) - 13: 6(int) Load 12(gl_SubgroupSize) - 14: 6(int) IAdd 11 13 - 16: 6(int) UMod 14 15 - Store 8(invocation) 16 - 35: 6(int) Load 8(invocation) - 40: 39(ptr) AccessChain 34(data) 37 37 38 - 41: 17(int8_t) Load 40 - 42: 6(int) Load 8(invocation) - 44: 17(int8_t) GroupNonUniformShuffle 43 41 42 - 45: 39(ptr) AccessChain 34(data) 35 37 38 - Store 45 44 - 46: 6(int) Load 8(invocation) - 50: 49(ptr) AccessChain 34(data) 47 37 - 51: 18(i8vec4) Load 50 - 52: 48(i8vec2) VectorShuffle 51 51 0 1 - 53: 6(int) Load 8(invocation) - 54: 48(i8vec2) GroupNonUniformShuffle 43 52 53 - 55: 39(ptr) AccessChain 34(data) 46 37 38 - 56: 17(int8_t) CompositeExtract 54 0 - Store 55 56 - 58: 39(ptr) AccessChain 34(data) 46 37 57 - 59: 17(int8_t) CompositeExtract 54 1 - Store 58 59 - 60: 6(int) Load 8(invocation) - 63: 49(ptr) AccessChain 34(data) 61 37 - 64: 18(i8vec4) Load 63 - 65: 62(i8vec3) VectorShuffle 64 64 0 1 2 - 66: 6(int) Load 8(invocation) - 67: 62(i8vec3) GroupNonUniformShuffle 43 65 66 - 68: 39(ptr) AccessChain 34(data) 60 37 38 - 69: 17(int8_t) CompositeExtract 67 0 - Store 68 69 - 70: 39(ptr) AccessChain 34(data) 60 37 57 - 71: 17(int8_t) CompositeExtract 67 1 - Store 70 71 - 73: 39(ptr) AccessChain 34(data) 60 37 72 - 74: 17(int8_t) CompositeExtract 67 2 - Store 73 74 - 75: 6(int) Load 8(invocation) - 77: 49(ptr) AccessChain 34(data) 76 37 - 78: 18(i8vec4) Load 77 - 79: 6(int) Load 8(invocation) - 80: 18(i8vec4) GroupNonUniformShuffle 43 78 79 - 81: 49(ptr) AccessChain 34(data) 75 37 - Store 81 80 - 82: 6(int) Load 8(invocation) - 83: 39(ptr) AccessChain 34(data) 37 37 38 - 84: 17(int8_t) Load 83 - 85: 6(int) Load 8(invocation) - 86: 17(int8_t) GroupNonUniformShuffleXor 43 84 85 - 87: 39(ptr) AccessChain 34(data) 82 37 38 - Store 87 86 - 88: 6(int) Load 8(invocation) - 89: 49(ptr) AccessChain 34(data) 47 37 - 90: 18(i8vec4) Load 89 - 91: 48(i8vec2) VectorShuffle 90 90 0 1 - 92: 6(int) Load 8(invocation) - 93: 48(i8vec2) GroupNonUniformShuffleXor 43 91 92 - 94: 39(ptr) AccessChain 34(data) 88 37 38 - 95: 17(int8_t) CompositeExtract 93 0 - Store 94 95 - 96: 39(ptr) AccessChain 34(data) 88 37 57 - 97: 17(int8_t) CompositeExtract 93 1 - Store 96 97 - 98: 6(int) Load 8(invocation) - 99: 49(ptr) AccessChain 34(data) 61 37 - 100: 18(i8vec4) Load 99 - 101: 62(i8vec3) VectorShuffle 100 100 0 1 2 - 102: 6(int) Load 8(invocation) - 103: 62(i8vec3) GroupNonUniformShuffleXor 43 101 102 - 104: 39(ptr) AccessChain 34(data) 98 37 38 - 105: 17(int8_t) CompositeExtract 103 0 - Store 104 105 - 106: 39(ptr) AccessChain 34(data) 98 37 57 - 107: 17(int8_t) CompositeExtract 103 1 - Store 106 107 - 108: 39(ptr) AccessChain 34(data) 98 37 72 - 109: 17(int8_t) CompositeExtract 103 2 - Store 108 109 - 110: 6(int) Load 8(invocation) - 111: 49(ptr) AccessChain 34(data) 76 37 - 112: 18(i8vec4) Load 111 - 113: 6(int) Load 8(invocation) - 114: 18(i8vec4) GroupNonUniformShuffleXor 43 112 113 - 115: 49(ptr) AccessChain 34(data) 110 37 - Store 115 114 - 116: 6(int) Load 8(invocation) - 118: 117(ptr) AccessChain 34(data) 37 47 38 - 119: 19(int8_t) Load 118 - 120: 6(int) Load 8(invocation) - 121: 19(int8_t) GroupNonUniformShuffle 43 119 120 - 122: 117(ptr) AccessChain 34(data) 116 47 38 - Store 122 121 - 123: 6(int) Load 8(invocation) - 126: 125(ptr) AccessChain 34(data) 47 47 - 127: 20(i8vec4) Load 126 - 128: 124(i8vec2) VectorShuffle 127 127 0 1 - 129: 6(int) Load 8(invocation) - 130: 124(i8vec2) GroupNonUniformShuffle 43 128 129 - 131: 117(ptr) AccessChain 34(data) 123 47 38 - 132: 19(int8_t) CompositeExtract 130 0 - Store 131 132 - 133: 117(ptr) AccessChain 34(data) 123 47 57 - 134: 19(int8_t) CompositeExtract 130 1 - Store 133 134 - 135: 6(int) Load 8(invocation) - 137: 125(ptr) AccessChain 34(data) 61 47 - 138: 20(i8vec4) Load 137 - 139: 136(i8vec3) VectorShuffle 138 138 0 1 2 - 140: 6(int) Load 8(invocation) - 141: 136(i8vec3) GroupNonUniformShuffle 43 139 140 - 142: 117(ptr) AccessChain 34(data) 135 47 38 - 143: 19(int8_t) CompositeExtract 141 0 - Store 142 143 - 144: 117(ptr) AccessChain 34(data) 135 47 57 - 145: 19(int8_t) CompositeExtract 141 1 - Store 144 145 - 146: 117(ptr) AccessChain 34(data) 135 47 72 - 147: 19(int8_t) CompositeExtract 141 2 - Store 146 147 - 148: 6(int) Load 8(invocation) - 149: 125(ptr) AccessChain 34(data) 76 47 - 150: 20(i8vec4) Load 149 - 151: 6(int) Load 8(invocation) - 152: 20(i8vec4) GroupNonUniformShuffle 43 150 151 - 153: 125(ptr) AccessChain 34(data) 148 47 - Store 153 152 - 154: 6(int) Load 8(invocation) - 155: 117(ptr) AccessChain 34(data) 37 47 38 - 156: 19(int8_t) Load 155 - 157: 6(int) Load 8(invocation) - 158: 19(int8_t) GroupNonUniformShuffleXor 43 156 157 - 159: 117(ptr) AccessChain 34(data) 154 47 38 - Store 159 158 - 160: 6(int) Load 8(invocation) - 161: 125(ptr) AccessChain 34(data) 47 47 - 162: 20(i8vec4) Load 161 - 163: 124(i8vec2) VectorShuffle 162 162 0 1 - 164: 6(int) Load 8(invocation) - 165: 124(i8vec2) GroupNonUniformShuffleXor 43 163 164 - 166: 117(ptr) AccessChain 34(data) 160 47 38 - 167: 19(int8_t) CompositeExtract 165 0 - Store 166 167 - 168: 117(ptr) AccessChain 34(data) 160 47 57 - 169: 19(int8_t) CompositeExtract 165 1 - Store 168 169 - 170: 6(int) Load 8(invocation) - 171: 125(ptr) AccessChain 34(data) 61 47 - 172: 20(i8vec4) Load 171 - 173: 136(i8vec3) VectorShuffle 172 172 0 1 2 - 174: 6(int) Load 8(invocation) - 175: 136(i8vec3) GroupNonUniformShuffleXor 43 173 174 - 176: 117(ptr) AccessChain 34(data) 170 47 38 - 177: 19(int8_t) CompositeExtract 175 0 - Store 176 177 - 178: 117(ptr) AccessChain 34(data) 170 47 57 - 179: 19(int8_t) CompositeExtract 175 1 - Store 178 179 - 180: 117(ptr) AccessChain 34(data) 170 47 72 - 181: 19(int8_t) CompositeExtract 175 2 - Store 180 181 - 182: 6(int) Load 8(invocation) - 183: 125(ptr) AccessChain 34(data) 76 47 - 184: 20(i8vec4) Load 183 - 185: 6(int) Load 8(invocation) - 186: 20(i8vec4) GroupNonUniformShuffleXor 43 184 185 - 187: 125(ptr) AccessChain 34(data) 182 47 - Store 187 186 - 188: 6(int) Load 8(invocation) - 190: 189(ptr) AccessChain 34(data) 37 61 38 - 191: 21(int16_t) Load 190 - 192: 6(int) Load 8(invocation) - 193: 21(int16_t) GroupNonUniformShuffle 43 191 192 - 194: 189(ptr) AccessChain 34(data) 188 61 38 - Store 194 193 - 195: 6(int) Load 8(invocation) - 198: 197(ptr) AccessChain 34(data) 47 61 - 199: 22(i16vec4) Load 198 - 200:196(i16vec2) VectorShuffle 199 199 0 1 - 201: 6(int) Load 8(invocation) - 202:196(i16vec2) GroupNonUniformShuffle 43 200 201 - 203: 189(ptr) AccessChain 34(data) 195 61 38 - 204: 21(int16_t) CompositeExtract 202 0 - Store 203 204 - 205: 189(ptr) AccessChain 34(data) 195 61 57 - 206: 21(int16_t) CompositeExtract 202 1 - Store 205 206 - 207: 6(int) Load 8(invocation) - 209: 197(ptr) AccessChain 34(data) 61 61 - 210: 22(i16vec4) Load 209 - 211:208(i16vec3) VectorShuffle 210 210 0 1 2 - 212: 6(int) Load 8(invocation) - 213:208(i16vec3) GroupNonUniformShuffle 43 211 212 - 214: 189(ptr) AccessChain 34(data) 207 61 38 - 215: 21(int16_t) CompositeExtract 213 0 - Store 214 215 - 216: 189(ptr) AccessChain 34(data) 207 61 57 - 217: 21(int16_t) CompositeExtract 213 1 - Store 216 217 - 218: 189(ptr) AccessChain 34(data) 207 61 72 - 219: 21(int16_t) CompositeExtract 213 2 - Store 218 219 - 220: 6(int) Load 8(invocation) - 221: 197(ptr) AccessChain 34(data) 76 61 - 222: 22(i16vec4) Load 221 - 223: 6(int) Load 8(invocation) - 224: 22(i16vec4) GroupNonUniformShuffle 43 222 223 - 225: 197(ptr) AccessChain 34(data) 220 61 - Store 225 224 - 226: 6(int) Load 8(invocation) - 227: 189(ptr) AccessChain 34(data) 37 61 38 - 228: 21(int16_t) Load 227 - 229: 6(int) Load 8(invocation) - 230: 21(int16_t) GroupNonUniformShuffleXor 43 228 229 - 231: 189(ptr) AccessChain 34(data) 226 61 38 - Store 231 230 - 232: 6(int) Load 8(invocation) - 233: 197(ptr) AccessChain 34(data) 47 61 - 234: 22(i16vec4) Load 233 - 235:196(i16vec2) VectorShuffle 234 234 0 1 - 236: 6(int) Load 8(invocation) - 237:196(i16vec2) GroupNonUniformShuffleXor 43 235 236 - 238: 189(ptr) AccessChain 34(data) 232 61 38 - 239: 21(int16_t) CompositeExtract 237 0 - Store 238 239 - 240: 189(ptr) AccessChain 34(data) 232 61 57 - 241: 21(int16_t) CompositeExtract 237 1 - Store 240 241 - 242: 6(int) Load 8(invocation) - 243: 197(ptr) AccessChain 34(data) 61 61 - 244: 22(i16vec4) Load 243 - 245:208(i16vec3) VectorShuffle 244 244 0 1 2 - 246: 6(int) Load 8(invocation) - 247:208(i16vec3) GroupNonUniformShuffleXor 43 245 246 - 248: 189(ptr) AccessChain 34(data) 242 61 38 - 249: 21(int16_t) CompositeExtract 247 0 - Store 248 249 - 250: 189(ptr) AccessChain 34(data) 242 61 57 - 251: 21(int16_t) CompositeExtract 247 1 - Store 250 251 - 252: 189(ptr) AccessChain 34(data) 242 61 72 - 253: 21(int16_t) CompositeExtract 247 2 - Store 252 253 - 254: 6(int) Load 8(invocation) - 255: 197(ptr) AccessChain 34(data) 76 61 - 256: 22(i16vec4) Load 255 - 257: 6(int) Load 8(invocation) - 258: 22(i16vec4) GroupNonUniformShuffleXor 43 256 257 - 259: 197(ptr) AccessChain 34(data) 254 61 - Store 259 258 - 260: 6(int) Load 8(invocation) - 262: 261(ptr) AccessChain 34(data) 37 76 38 - 263: 23(int16_t) Load 262 - 264: 6(int) Load 8(invocation) - 265: 23(int16_t) GroupNonUniformShuffle 43 263 264 - 266: 261(ptr) AccessChain 34(data) 260 76 38 - Store 266 265 - 267: 6(int) Load 8(invocation) - 270: 269(ptr) AccessChain 34(data) 47 76 - 271: 24(i16vec4) Load 270 - 272:268(i16vec2) VectorShuffle 271 271 0 1 - 273: 6(int) Load 8(invocation) - 274:268(i16vec2) GroupNonUniformShuffle 43 272 273 - 275: 261(ptr) AccessChain 34(data) 267 76 38 - 276: 23(int16_t) CompositeExtract 274 0 - Store 275 276 - 277: 261(ptr) AccessChain 34(data) 267 76 57 - 278: 23(int16_t) CompositeExtract 274 1 - Store 277 278 - 279: 6(int) Load 8(invocation) - 281: 269(ptr) AccessChain 34(data) 61 76 - 282: 24(i16vec4) Load 281 - 283:280(i16vec3) VectorShuffle 282 282 0 1 2 - 284: 6(int) Load 8(invocation) - 285:280(i16vec3) GroupNonUniformShuffle 43 283 284 - 286: 261(ptr) AccessChain 34(data) 279 76 38 - 287: 23(int16_t) CompositeExtract 285 0 - Store 286 287 - 288: 261(ptr) AccessChain 34(data) 279 76 57 - 289: 23(int16_t) CompositeExtract 285 1 - Store 288 289 - 290: 261(ptr) AccessChain 34(data) 279 76 72 - 291: 23(int16_t) CompositeExtract 285 2 - Store 290 291 - 292: 6(int) Load 8(invocation) - 293: 269(ptr) AccessChain 34(data) 76 76 - 294: 24(i16vec4) Load 293 - 295: 6(int) Load 8(invocation) - 296: 24(i16vec4) GroupNonUniformShuffle 43 294 295 - 297: 269(ptr) AccessChain 34(data) 292 76 - Store 297 296 - 298: 6(int) Load 8(invocation) - 299: 261(ptr) AccessChain 34(data) 37 76 38 - 300: 23(int16_t) Load 299 - 301: 6(int) Load 8(invocation) - 302: 23(int16_t) GroupNonUniformShuffleXor 43 300 301 - 303: 261(ptr) AccessChain 34(data) 298 76 38 - Store 303 302 - 304: 6(int) Load 8(invocation) - 305: 269(ptr) AccessChain 34(data) 47 76 - 306: 24(i16vec4) Load 305 - 307:268(i16vec2) VectorShuffle 306 306 0 1 - 308: 6(int) Load 8(invocation) - 309:268(i16vec2) GroupNonUniformShuffleXor 43 307 308 - 310: 261(ptr) AccessChain 34(data) 304 76 38 - 311: 23(int16_t) CompositeExtract 309 0 - Store 310 311 - 312: 261(ptr) AccessChain 34(data) 304 76 57 - 313: 23(int16_t) CompositeExtract 309 1 - Store 312 313 - 314: 6(int) Load 8(invocation) - 315: 269(ptr) AccessChain 34(data) 61 76 - 316: 24(i16vec4) Load 315 - 317:280(i16vec3) VectorShuffle 316 316 0 1 2 - 318: 6(int) Load 8(invocation) - 319:280(i16vec3) GroupNonUniformShuffleXor 43 317 318 - 320: 261(ptr) AccessChain 34(data) 314 76 38 - 321: 23(int16_t) CompositeExtract 319 0 - Store 320 321 - 322: 261(ptr) AccessChain 34(data) 314 76 57 - 323: 23(int16_t) CompositeExtract 319 1 - Store 322 323 - 324: 261(ptr) AccessChain 34(data) 314 76 72 - 325: 23(int16_t) CompositeExtract 319 2 - Store 324 325 - 326: 6(int) Load 8(invocation) - 327: 269(ptr) AccessChain 34(data) 76 76 - 328: 24(i16vec4) Load 327 - 329: 6(int) Load 8(invocation) - 330: 24(i16vec4) GroupNonUniformShuffleXor 43 328 329 - 331: 269(ptr) AccessChain 34(data) 326 76 - Store 331 330 - 332: 6(int) Load 8(invocation) - 335: 334(ptr) AccessChain 34(data) 37 333 38 - 336: 25(int64_t) Load 335 - 337: 6(int) Load 8(invocation) - 338: 25(int64_t) GroupNonUniformShuffle 43 336 337 - 339: 334(ptr) AccessChain 34(data) 332 333 38 - Store 339 338 - 340: 6(int) Load 8(invocation) - 343: 342(ptr) AccessChain 34(data) 47 333 - 344: 26(i64vec4) Load 343 - 345:341(i64vec2) VectorShuffle 344 344 0 1 - 346: 6(int) Load 8(invocation) - 347:341(i64vec2) GroupNonUniformShuffle 43 345 346 - 348: 334(ptr) AccessChain 34(data) 340 333 38 - 349: 25(int64_t) CompositeExtract 347 0 - Store 348 349 - 350: 334(ptr) AccessChain 34(data) 340 333 57 - 351: 25(int64_t) CompositeExtract 347 1 - Store 350 351 - 352: 6(int) Load 8(invocation) - 354: 342(ptr) AccessChain 34(data) 61 333 - 355: 26(i64vec4) Load 354 - 356:353(i64vec3) VectorShuffle 355 355 0 1 2 - 357: 6(int) Load 8(invocation) - 358:353(i64vec3) GroupNonUniformShuffle 43 356 357 - 359: 334(ptr) AccessChain 34(data) 352 333 38 - 360: 25(int64_t) CompositeExtract 358 0 - Store 359 360 - 361: 334(ptr) AccessChain 34(data) 352 333 57 - 362: 25(int64_t) CompositeExtract 358 1 - Store 361 362 - 363: 334(ptr) AccessChain 34(data) 352 333 72 - 364: 25(int64_t) CompositeExtract 358 2 - Store 363 364 - 365: 6(int) Load 8(invocation) - 366: 342(ptr) AccessChain 34(data) 76 333 - 367: 26(i64vec4) Load 366 - 368: 6(int) Load 8(invocation) - 369: 26(i64vec4) GroupNonUniformShuffle 43 367 368 - 370: 342(ptr) AccessChain 34(data) 365 333 - Store 370 369 - 371: 6(int) Load 8(invocation) - 372: 334(ptr) AccessChain 34(data) 37 333 38 - 373: 25(int64_t) Load 372 - 374: 6(int) Load 8(invocation) - 375: 25(int64_t) GroupNonUniformShuffleXor 43 373 374 - 376: 334(ptr) AccessChain 34(data) 371 333 38 - Store 376 375 - 377: 6(int) Load 8(invocation) - 378: 342(ptr) AccessChain 34(data) 47 333 - 379: 26(i64vec4) Load 378 - 380:341(i64vec2) VectorShuffle 379 379 0 1 - 381: 6(int) Load 8(invocation) - 382:341(i64vec2) GroupNonUniformShuffleXor 43 380 381 - 383: 334(ptr) AccessChain 34(data) 377 333 38 - 384: 25(int64_t) CompositeExtract 382 0 - Store 383 384 - 385: 334(ptr) AccessChain 34(data) 377 333 57 - 386: 25(int64_t) CompositeExtract 382 1 - Store 385 386 - 387: 6(int) Load 8(invocation) - 388: 342(ptr) AccessChain 34(data) 61 333 - 389: 26(i64vec4) Load 388 - 390:353(i64vec3) VectorShuffle 389 389 0 1 2 - 391: 6(int) Load 8(invocation) - 392:353(i64vec3) GroupNonUniformShuffleXor 43 390 391 - 393: 334(ptr) AccessChain 34(data) 387 333 38 - 394: 25(int64_t) CompositeExtract 392 0 - Store 393 394 - 395: 334(ptr) AccessChain 34(data) 387 333 57 - 396: 25(int64_t) CompositeExtract 392 1 - Store 395 396 - 397: 334(ptr) AccessChain 34(data) 387 333 72 - 398: 25(int64_t) CompositeExtract 392 2 - Store 397 398 - 399: 6(int) Load 8(invocation) - 400: 342(ptr) AccessChain 34(data) 76 333 - 401: 26(i64vec4) Load 400 - 402: 6(int) Load 8(invocation) - 403: 26(i64vec4) GroupNonUniformShuffleXor 43 401 402 - 404: 342(ptr) AccessChain 34(data) 399 333 - Store 404 403 - 405: 6(int) Load 8(invocation) - 408: 407(ptr) AccessChain 34(data) 37 406 38 - 409: 27(int64_t) Load 408 - 410: 6(int) Load 8(invocation) - 411: 27(int64_t) GroupNonUniformShuffle 43 409 410 - 412: 407(ptr) AccessChain 34(data) 405 406 38 - Store 412 411 - 413: 6(int) Load 8(invocation) - 416: 415(ptr) AccessChain 34(data) 47 406 - 417: 28(i64vec4) Load 416 - 418:414(i64vec2) VectorShuffle 417 417 0 1 - 419: 6(int) Load 8(invocation) - 420:414(i64vec2) GroupNonUniformShuffle 43 418 419 - 421: 407(ptr) AccessChain 34(data) 413 406 38 - 422: 27(int64_t) CompositeExtract 420 0 - Store 421 422 - 423: 407(ptr) AccessChain 34(data) 413 406 57 - 424: 27(int64_t) CompositeExtract 420 1 - Store 423 424 - 425: 6(int) Load 8(invocation) - 427: 415(ptr) AccessChain 34(data) 61 406 - 428: 28(i64vec4) Load 427 - 429:426(i64vec3) VectorShuffle 428 428 0 1 2 - 430: 6(int) Load 8(invocation) - 431:426(i64vec3) GroupNonUniformShuffle 43 429 430 - 432: 407(ptr) AccessChain 34(data) 425 406 38 - 433: 27(int64_t) CompositeExtract 431 0 - Store 432 433 - 434: 407(ptr) AccessChain 34(data) 425 406 57 - 435: 27(int64_t) CompositeExtract 431 1 - Store 434 435 - 436: 407(ptr) AccessChain 34(data) 425 406 72 - 437: 27(int64_t) CompositeExtract 431 2 - Store 436 437 - 438: 6(int) Load 8(invocation) - 439: 415(ptr) AccessChain 34(data) 76 406 - 440: 28(i64vec4) Load 439 - 441: 6(int) Load 8(invocation) - 442: 28(i64vec4) GroupNonUniformShuffle 43 440 441 - 443: 415(ptr) AccessChain 34(data) 438 406 - Store 443 442 - 444: 6(int) Load 8(invocation) - 445: 407(ptr) AccessChain 34(data) 37 406 38 - 446: 27(int64_t) Load 445 - 447: 6(int) Load 8(invocation) - 448: 27(int64_t) GroupNonUniformShuffleXor 43 446 447 - 449: 407(ptr) AccessChain 34(data) 444 406 38 - Store 449 448 - 450: 6(int) Load 8(invocation) - 451: 415(ptr) AccessChain 34(data) 47 406 - 452: 28(i64vec4) Load 451 - 453:414(i64vec2) VectorShuffle 452 452 0 1 - 454: 6(int) Load 8(invocation) - 455:414(i64vec2) GroupNonUniformShuffleXor 43 453 454 - 456: 407(ptr) AccessChain 34(data) 450 406 38 - 457: 27(int64_t) CompositeExtract 455 0 - Store 456 457 - 458: 407(ptr) AccessChain 34(data) 450 406 57 - 459: 27(int64_t) CompositeExtract 455 1 - Store 458 459 - 460: 6(int) Load 8(invocation) - 461: 415(ptr) AccessChain 34(data) 61 406 - 462: 28(i64vec4) Load 461 - 463:426(i64vec3) VectorShuffle 462 462 0 1 2 - 464: 6(int) Load 8(invocation) - 465:426(i64vec3) GroupNonUniformShuffleXor 43 463 464 - 466: 407(ptr) AccessChain 34(data) 460 406 38 - 467: 27(int64_t) CompositeExtract 465 0 - Store 466 467 - 468: 407(ptr) AccessChain 34(data) 460 406 57 - 469: 27(int64_t) CompositeExtract 465 1 - Store 468 469 - 470: 407(ptr) AccessChain 34(data) 460 406 72 - 471: 27(int64_t) CompositeExtract 465 2 - Store 470 471 - 472: 6(int) Load 8(invocation) - 473: 415(ptr) AccessChain 34(data) 76 406 - 474: 28(i64vec4) Load 473 - 475: 6(int) Load 8(invocation) - 476: 28(i64vec4) GroupNonUniformShuffleXor 43 474 475 - 477: 415(ptr) AccessChain 34(data) 472 406 - Store 477 476 - 478: 6(int) Load 8(invocation) - 481: 480(ptr) AccessChain 34(data) 37 479 38 - 482:29(float16_t) Load 481 - 483: 6(int) Load 8(invocation) - 484:29(float16_t) GroupNonUniformShuffle 43 482 483 - 485: 480(ptr) AccessChain 34(data) 478 479 38 - Store 485 484 - 486: 6(int) Load 8(invocation) - 489: 488(ptr) AccessChain 34(data) 47 479 - 490: 30(f16vec4) Load 489 - 491:487(f16vec2) VectorShuffle 490 490 0 1 - 492: 6(int) Load 8(invocation) - 493:487(f16vec2) GroupNonUniformShuffle 43 491 492 - 494: 480(ptr) AccessChain 34(data) 486 479 38 - 495:29(float16_t) CompositeExtract 493 0 - Store 494 495 - 496: 480(ptr) AccessChain 34(data) 486 479 57 - 497:29(float16_t) CompositeExtract 493 1 - Store 496 497 - 498: 6(int) Load 8(invocation) - 500: 488(ptr) AccessChain 34(data) 61 479 - 501: 30(f16vec4) Load 500 - 502:499(f16vec3) VectorShuffle 501 501 0 1 2 - 503: 6(int) Load 8(invocation) - 504:499(f16vec3) GroupNonUniformShuffle 43 502 503 - 505: 480(ptr) AccessChain 34(data) 498 479 38 - 506:29(float16_t) CompositeExtract 504 0 - Store 505 506 - 507: 480(ptr) AccessChain 34(data) 498 479 57 - 508:29(float16_t) CompositeExtract 504 1 - Store 507 508 - 509: 480(ptr) AccessChain 34(data) 498 479 72 - 510:29(float16_t) CompositeExtract 504 2 - Store 509 510 - 511: 6(int) Load 8(invocation) - 512: 488(ptr) AccessChain 34(data) 76 479 - 513: 30(f16vec4) Load 512 - 514: 6(int) Load 8(invocation) - 515: 30(f16vec4) GroupNonUniformShuffle 43 513 514 - 516: 488(ptr) AccessChain 34(data) 511 479 - Store 516 515 - 517: 6(int) Load 8(invocation) - 518: 480(ptr) AccessChain 34(data) 37 479 38 - 519:29(float16_t) Load 518 - 520: 6(int) Load 8(invocation) - 521:29(float16_t) GroupNonUniformShuffleXor 43 519 520 - 522: 480(ptr) AccessChain 34(data) 517 479 38 - Store 522 521 - 523: 6(int) Load 8(invocation) - 524: 488(ptr) AccessChain 34(data) 47 479 - 525: 30(f16vec4) Load 524 - 526:487(f16vec2) VectorShuffle 525 525 0 1 - 527: 6(int) Load 8(invocation) - 528:487(f16vec2) GroupNonUniformShuffleXor 43 526 527 - 529: 480(ptr) AccessChain 34(data) 523 479 38 - 530:29(float16_t) CompositeExtract 528 0 - Store 529 530 - 531: 480(ptr) AccessChain 34(data) 523 479 57 - 532:29(float16_t) CompositeExtract 528 1 - Store 531 532 - 533: 6(int) Load 8(invocation) - 534: 488(ptr) AccessChain 34(data) 61 479 - 535: 30(f16vec4) Load 534 - 536:499(f16vec3) VectorShuffle 535 535 0 1 2 - 537: 6(int) Load 8(invocation) - 538:499(f16vec3) GroupNonUniformShuffleXor 43 536 537 - 539: 480(ptr) AccessChain 34(data) 533 479 38 - 540:29(float16_t) CompositeExtract 538 0 - Store 539 540 - 541: 480(ptr) AccessChain 34(data) 533 479 57 - 542:29(float16_t) CompositeExtract 538 1 - Store 541 542 - 543: 480(ptr) AccessChain 34(data) 533 479 72 - 544:29(float16_t) CompositeExtract 538 2 - Store 543 544 - 545: 6(int) Load 8(invocation) - 546: 488(ptr) AccessChain 34(data) 76 479 - 547: 30(f16vec4) Load 546 - 548: 6(int) Load 8(invocation) - 549: 30(f16vec4) GroupNonUniformShuffleXor 43 547 548 - 550: 488(ptr) AccessChain 34(data) 545 479 - Store 550 549 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesShuffleNeg.comp.out b/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesShuffleNeg.comp.out deleted file mode 100644 index df1234b0..00000000 --- a/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesShuffleNeg.comp.out +++ /dev/null @@ -1,61 +0,0 @@ -spv.subgroupExtendedTypesShuffleNeg.comp -ERROR: 0:26: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:27: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:28: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:29: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:31: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:32: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:33: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:34: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:36: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:37: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:38: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:39: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:41: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:42: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:43: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:44: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:46: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:47: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:48: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:49: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:51: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:52: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:53: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:54: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:56: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:57: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:58: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:59: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:61: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:62: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:63: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:64: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:66: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:67: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:68: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:69: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:71: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:72: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:73: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:74: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:76: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:77: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:78: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:79: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:81: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:82: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:83: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:84: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:86: ' temp highp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:87: ' temp highp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:88: ' temp highp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:89: 'layout( column_major std430) buffer highp 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:91: ' temp highp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:92: ' temp highp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:93: ' temp highp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:94: 'layout( column_major std430) buffer highp 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 56 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesShuffleRelative.comp.out b/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesShuffleRelative.comp.out deleted file mode 100644 index 8665c46c..00000000 --- a/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesShuffleRelative.comp.out +++ /dev/null @@ -1,715 +0,0 @@ -spv.subgroupExtendedTypesShuffleRelative.comp -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 554 - - Capability Shader - Capability Float16 - Capability Int64 - Capability Int16 - Capability Int8 - Capability GroupNonUniform - Capability GroupNonUniformShuffleRelative - Capability StorageUniformBufferBlock16 - Capability StorageBuffer8BitAccess - Extension "SPV_KHR_8bit_storage" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 10 12 - ExecutionMode 4 LocalSize 8 1 1 - Source GLSL 450 - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int16" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int64" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int8" - SourceExtension "GL_EXT_shader_subgroup_extended_types_float16" - SourceExtension "GL_EXT_shader_subgroup_extended_types_int16" - SourceExtension "GL_EXT_shader_subgroup_extended_types_int64" - SourceExtension "GL_EXT_shader_subgroup_extended_types_int8" - SourceExtension "GL_KHR_shader_subgroup_basic" - SourceExtension "GL_KHR_shader_subgroup_shuffle_relative" - Name 4 "main" - Name 8 "invocation" - Name 10 "gl_SubgroupInvocationID" - Name 12 "gl_SubgroupSize" - Name 31 "Buffers" - MemberName 31(Buffers) 0 "i8" - MemberName 31(Buffers) 1 "u8" - MemberName 31(Buffers) 2 "i16" - MemberName 31(Buffers) 3 "u16" - MemberName 31(Buffers) 4 "i64" - MemberName 31(Buffers) 5 "u64" - MemberName 31(Buffers) 6 "f16" - Name 34 "data" - Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision - Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId - Decorate 11 RelaxedPrecision - Decorate 12(gl_SubgroupSize) RelaxedPrecision - Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize - Decorate 13 RelaxedPrecision - Decorate 14 RelaxedPrecision - Decorate 16 RelaxedPrecision - MemberDecorate 31(Buffers) 0 Offset 0 - MemberDecorate 31(Buffers) 1 Offset 4 - MemberDecorate 31(Buffers) 2 Offset 8 - MemberDecorate 31(Buffers) 3 Offset 16 - MemberDecorate 31(Buffers) 4 Offset 32 - MemberDecorate 31(Buffers) 5 Offset 64 - MemberDecorate 31(Buffers) 6 Offset 96 - Decorate 31(Buffers) Block - Decorate 34(data) DescriptorSet 0 - Decorate 34(data) Binding 0 - Decorate 553 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypePointer Input 6(int) -10(gl_SubgroupInvocationID): 9(ptr) Variable Input -12(gl_SubgroupSize): 9(ptr) Variable Input - 15: 6(int) Constant 4 - 17: TypeInt 8 1 - 18: TypeVector 17(int8_t) 4 - 19: TypeInt 8 0 - 20: TypeVector 19(int8_t) 4 - 21: TypeInt 16 1 - 22: TypeVector 21(int16_t) 4 - 23: TypeInt 16 0 - 24: TypeVector 23(int16_t) 4 - 25: TypeInt 64 1 - 26: TypeVector 25(int64_t) 4 - 27: TypeInt 64 0 - 28: TypeVector 27(int64_t) 4 - 29: TypeFloat 16 - 30: TypeVector 29(float16_t) 4 - 31(Buffers): TypeStruct 18(i8vec4) 20(i8vec4) 22(i16vec4) 24(i16vec4) 26(i64vec4) 28(i64vec4) 30(f16vec4) - 32: TypeArray 31(Buffers) 15 - 33: TypePointer StorageBuffer 32 - 34(data): 33(ptr) Variable StorageBuffer - 36: TypeInt 32 1 - 37: 36(int) Constant 0 - 38: 6(int) Constant 0 - 39: TypePointer StorageBuffer 17(int8_t) - 43: 6(int) Constant 3 - 47: 36(int) Constant 1 - 48: TypeVector 17(int8_t) 2 - 49: TypePointer StorageBuffer 18(i8vec4) - 57: 6(int) Constant 1 - 61: 36(int) Constant 2 - 62: TypeVector 17(int8_t) 3 - 72: 6(int) Constant 2 - 76: 36(int) Constant 3 - 117: TypePointer StorageBuffer 19(int8_t) - 124: TypeVector 19(int8_t) 2 - 125: TypePointer StorageBuffer 20(i8vec4) - 136: TypeVector 19(int8_t) 3 - 189: TypePointer StorageBuffer 21(int16_t) - 196: TypeVector 21(int16_t) 2 - 197: TypePointer StorageBuffer 22(i16vec4) - 208: TypeVector 21(int16_t) 3 - 261: TypePointer StorageBuffer 23(int16_t) - 268: TypeVector 23(int16_t) 2 - 269: TypePointer StorageBuffer 24(i16vec4) - 280: TypeVector 23(int16_t) 3 - 333: 36(int) Constant 4 - 334: TypePointer StorageBuffer 25(int64_t) - 341: TypeVector 25(int64_t) 2 - 342: TypePointer StorageBuffer 26(i64vec4) - 353: TypeVector 25(int64_t) 3 - 406: 36(int) Constant 5 - 407: TypePointer StorageBuffer 27(int64_t) - 414: TypeVector 27(int64_t) 2 - 415: TypePointer StorageBuffer 28(i64vec4) - 426: TypeVector 27(int64_t) 3 - 479: 36(int) Constant 6 - 480: TypePointer StorageBuffer 29(float16_t) - 487: TypeVector 29(float16_t) 2 - 488: TypePointer StorageBuffer 30(f16vec4) - 499: TypeVector 29(float16_t) 3 - 551: TypeVector 6(int) 3 - 552: 6(int) Constant 8 - 553: 551(ivec3) ConstantComposite 552 57 57 - 4(main): 2 Function None 3 - 5: Label - 8(invocation): 7(ptr) Variable Function - 11: 6(int) Load 10(gl_SubgroupInvocationID) - 13: 6(int) Load 12(gl_SubgroupSize) - 14: 6(int) IAdd 11 13 - 16: 6(int) UMod 14 15 - Store 8(invocation) 16 - 35: 6(int) Load 8(invocation) - 40: 39(ptr) AccessChain 34(data) 37 37 38 - 41: 17(int8_t) Load 40 - 42: 6(int) Load 8(invocation) - 44: 17(int8_t) GroupNonUniformShuffleUp 43 41 42 - 45: 39(ptr) AccessChain 34(data) 35 37 38 - Store 45 44 - 46: 6(int) Load 8(invocation) - 50: 49(ptr) AccessChain 34(data) 47 37 - 51: 18(i8vec4) Load 50 - 52: 48(i8vec2) VectorShuffle 51 51 0 1 - 53: 6(int) Load 8(invocation) - 54: 48(i8vec2) GroupNonUniformShuffleUp 43 52 53 - 55: 39(ptr) AccessChain 34(data) 46 37 38 - 56: 17(int8_t) CompositeExtract 54 0 - Store 55 56 - 58: 39(ptr) AccessChain 34(data) 46 37 57 - 59: 17(int8_t) CompositeExtract 54 1 - Store 58 59 - 60: 6(int) Load 8(invocation) - 63: 49(ptr) AccessChain 34(data) 61 37 - 64: 18(i8vec4) Load 63 - 65: 62(i8vec3) VectorShuffle 64 64 0 1 2 - 66: 6(int) Load 8(invocation) - 67: 62(i8vec3) GroupNonUniformShuffleUp 43 65 66 - 68: 39(ptr) AccessChain 34(data) 60 37 38 - 69: 17(int8_t) CompositeExtract 67 0 - Store 68 69 - 70: 39(ptr) AccessChain 34(data) 60 37 57 - 71: 17(int8_t) CompositeExtract 67 1 - Store 70 71 - 73: 39(ptr) AccessChain 34(data) 60 37 72 - 74: 17(int8_t) CompositeExtract 67 2 - Store 73 74 - 75: 6(int) Load 8(invocation) - 77: 49(ptr) AccessChain 34(data) 76 37 - 78: 18(i8vec4) Load 77 - 79: 6(int) Load 8(invocation) - 80: 18(i8vec4) GroupNonUniformShuffleUp 43 78 79 - 81: 49(ptr) AccessChain 34(data) 75 37 - Store 81 80 - 82: 6(int) Load 8(invocation) - 83: 39(ptr) AccessChain 34(data) 37 37 38 - 84: 17(int8_t) Load 83 - 85: 6(int) Load 8(invocation) - 86: 17(int8_t) GroupNonUniformShuffleDown 43 84 85 - 87: 39(ptr) AccessChain 34(data) 82 37 38 - Store 87 86 - 88: 6(int) Load 8(invocation) - 89: 49(ptr) AccessChain 34(data) 47 37 - 90: 18(i8vec4) Load 89 - 91: 48(i8vec2) VectorShuffle 90 90 0 1 - 92: 6(int) Load 8(invocation) - 93: 48(i8vec2) GroupNonUniformShuffleDown 43 91 92 - 94: 39(ptr) AccessChain 34(data) 88 37 38 - 95: 17(int8_t) CompositeExtract 93 0 - Store 94 95 - 96: 39(ptr) AccessChain 34(data) 88 37 57 - 97: 17(int8_t) CompositeExtract 93 1 - Store 96 97 - 98: 6(int) Load 8(invocation) - 99: 49(ptr) AccessChain 34(data) 61 37 - 100: 18(i8vec4) Load 99 - 101: 62(i8vec3) VectorShuffle 100 100 0 1 2 - 102: 6(int) Load 8(invocation) - 103: 62(i8vec3) GroupNonUniformShuffleDown 43 101 102 - 104: 39(ptr) AccessChain 34(data) 98 37 38 - 105: 17(int8_t) CompositeExtract 103 0 - Store 104 105 - 106: 39(ptr) AccessChain 34(data) 98 37 57 - 107: 17(int8_t) CompositeExtract 103 1 - Store 106 107 - 108: 39(ptr) AccessChain 34(data) 98 37 72 - 109: 17(int8_t) CompositeExtract 103 2 - Store 108 109 - 110: 6(int) Load 8(invocation) - 111: 49(ptr) AccessChain 34(data) 76 37 - 112: 18(i8vec4) Load 111 - 113: 6(int) Load 8(invocation) - 114: 18(i8vec4) GroupNonUniformShuffleDown 43 112 113 - 115: 49(ptr) AccessChain 34(data) 110 37 - Store 115 114 - 116: 6(int) Load 8(invocation) - 118: 117(ptr) AccessChain 34(data) 37 47 38 - 119: 19(int8_t) Load 118 - 120: 6(int) Load 8(invocation) - 121: 19(int8_t) GroupNonUniformShuffleUp 43 119 120 - 122: 117(ptr) AccessChain 34(data) 116 47 38 - Store 122 121 - 123: 6(int) Load 8(invocation) - 126: 125(ptr) AccessChain 34(data) 47 47 - 127: 20(i8vec4) Load 126 - 128: 124(i8vec2) VectorShuffle 127 127 0 1 - 129: 6(int) Load 8(invocation) - 130: 124(i8vec2) GroupNonUniformShuffleUp 43 128 129 - 131: 117(ptr) AccessChain 34(data) 123 47 38 - 132: 19(int8_t) CompositeExtract 130 0 - Store 131 132 - 133: 117(ptr) AccessChain 34(data) 123 47 57 - 134: 19(int8_t) CompositeExtract 130 1 - Store 133 134 - 135: 6(int) Load 8(invocation) - 137: 125(ptr) AccessChain 34(data) 61 47 - 138: 20(i8vec4) Load 137 - 139: 136(i8vec3) VectorShuffle 138 138 0 1 2 - 140: 6(int) Load 8(invocation) - 141: 136(i8vec3) GroupNonUniformShuffleUp 43 139 140 - 142: 117(ptr) AccessChain 34(data) 135 47 38 - 143: 19(int8_t) CompositeExtract 141 0 - Store 142 143 - 144: 117(ptr) AccessChain 34(data) 135 47 57 - 145: 19(int8_t) CompositeExtract 141 1 - Store 144 145 - 146: 117(ptr) AccessChain 34(data) 135 47 72 - 147: 19(int8_t) CompositeExtract 141 2 - Store 146 147 - 148: 6(int) Load 8(invocation) - 149: 125(ptr) AccessChain 34(data) 76 47 - 150: 20(i8vec4) Load 149 - 151: 6(int) Load 8(invocation) - 152: 20(i8vec4) GroupNonUniformShuffleUp 43 150 151 - 153: 125(ptr) AccessChain 34(data) 148 47 - Store 153 152 - 154: 6(int) Load 8(invocation) - 155: 117(ptr) AccessChain 34(data) 37 47 38 - 156: 19(int8_t) Load 155 - 157: 6(int) Load 8(invocation) - 158: 19(int8_t) GroupNonUniformShuffleDown 43 156 157 - 159: 117(ptr) AccessChain 34(data) 154 47 38 - Store 159 158 - 160: 6(int) Load 8(invocation) - 161: 125(ptr) AccessChain 34(data) 47 47 - 162: 20(i8vec4) Load 161 - 163: 124(i8vec2) VectorShuffle 162 162 0 1 - 164: 6(int) Load 8(invocation) - 165: 124(i8vec2) GroupNonUniformShuffleDown 43 163 164 - 166: 117(ptr) AccessChain 34(data) 160 47 38 - 167: 19(int8_t) CompositeExtract 165 0 - Store 166 167 - 168: 117(ptr) AccessChain 34(data) 160 47 57 - 169: 19(int8_t) CompositeExtract 165 1 - Store 168 169 - 170: 6(int) Load 8(invocation) - 171: 125(ptr) AccessChain 34(data) 61 47 - 172: 20(i8vec4) Load 171 - 173: 136(i8vec3) VectorShuffle 172 172 0 1 2 - 174: 6(int) Load 8(invocation) - 175: 136(i8vec3) GroupNonUniformShuffleDown 43 173 174 - 176: 117(ptr) AccessChain 34(data) 170 47 38 - 177: 19(int8_t) CompositeExtract 175 0 - Store 176 177 - 178: 117(ptr) AccessChain 34(data) 170 47 57 - 179: 19(int8_t) CompositeExtract 175 1 - Store 178 179 - 180: 117(ptr) AccessChain 34(data) 170 47 72 - 181: 19(int8_t) CompositeExtract 175 2 - Store 180 181 - 182: 6(int) Load 8(invocation) - 183: 125(ptr) AccessChain 34(data) 76 47 - 184: 20(i8vec4) Load 183 - 185: 6(int) Load 8(invocation) - 186: 20(i8vec4) GroupNonUniformShuffleDown 43 184 185 - 187: 125(ptr) AccessChain 34(data) 182 47 - Store 187 186 - 188: 6(int) Load 8(invocation) - 190: 189(ptr) AccessChain 34(data) 37 61 38 - 191: 21(int16_t) Load 190 - 192: 6(int) Load 8(invocation) - 193: 21(int16_t) GroupNonUniformShuffleUp 43 191 192 - 194: 189(ptr) AccessChain 34(data) 188 61 38 - Store 194 193 - 195: 6(int) Load 8(invocation) - 198: 197(ptr) AccessChain 34(data) 47 61 - 199: 22(i16vec4) Load 198 - 200:196(i16vec2) VectorShuffle 199 199 0 1 - 201: 6(int) Load 8(invocation) - 202:196(i16vec2) GroupNonUniformShuffleUp 43 200 201 - 203: 189(ptr) AccessChain 34(data) 195 61 38 - 204: 21(int16_t) CompositeExtract 202 0 - Store 203 204 - 205: 189(ptr) AccessChain 34(data) 195 61 57 - 206: 21(int16_t) CompositeExtract 202 1 - Store 205 206 - 207: 6(int) Load 8(invocation) - 209: 197(ptr) AccessChain 34(data) 61 61 - 210: 22(i16vec4) Load 209 - 211:208(i16vec3) VectorShuffle 210 210 0 1 2 - 212: 6(int) Load 8(invocation) - 213:208(i16vec3) GroupNonUniformShuffleUp 43 211 212 - 214: 189(ptr) AccessChain 34(data) 207 61 38 - 215: 21(int16_t) CompositeExtract 213 0 - Store 214 215 - 216: 189(ptr) AccessChain 34(data) 207 61 57 - 217: 21(int16_t) CompositeExtract 213 1 - Store 216 217 - 218: 189(ptr) AccessChain 34(data) 207 61 72 - 219: 21(int16_t) CompositeExtract 213 2 - Store 218 219 - 220: 6(int) Load 8(invocation) - 221: 197(ptr) AccessChain 34(data) 76 61 - 222: 22(i16vec4) Load 221 - 223: 6(int) Load 8(invocation) - 224: 22(i16vec4) GroupNonUniformShuffleUp 43 222 223 - 225: 197(ptr) AccessChain 34(data) 220 61 - Store 225 224 - 226: 6(int) Load 8(invocation) - 227: 189(ptr) AccessChain 34(data) 37 61 38 - 228: 21(int16_t) Load 227 - 229: 6(int) Load 8(invocation) - 230: 21(int16_t) GroupNonUniformShuffleDown 43 228 229 - 231: 189(ptr) AccessChain 34(data) 226 61 38 - Store 231 230 - 232: 6(int) Load 8(invocation) - 233: 197(ptr) AccessChain 34(data) 47 61 - 234: 22(i16vec4) Load 233 - 235:196(i16vec2) VectorShuffle 234 234 0 1 - 236: 6(int) Load 8(invocation) - 237:196(i16vec2) GroupNonUniformShuffleDown 43 235 236 - 238: 189(ptr) AccessChain 34(data) 232 61 38 - 239: 21(int16_t) CompositeExtract 237 0 - Store 238 239 - 240: 189(ptr) AccessChain 34(data) 232 61 57 - 241: 21(int16_t) CompositeExtract 237 1 - Store 240 241 - 242: 6(int) Load 8(invocation) - 243: 197(ptr) AccessChain 34(data) 61 61 - 244: 22(i16vec4) Load 243 - 245:208(i16vec3) VectorShuffle 244 244 0 1 2 - 246: 6(int) Load 8(invocation) - 247:208(i16vec3) GroupNonUniformShuffleDown 43 245 246 - 248: 189(ptr) AccessChain 34(data) 242 61 38 - 249: 21(int16_t) CompositeExtract 247 0 - Store 248 249 - 250: 189(ptr) AccessChain 34(data) 242 61 57 - 251: 21(int16_t) CompositeExtract 247 1 - Store 250 251 - 252: 189(ptr) AccessChain 34(data) 242 61 72 - 253: 21(int16_t) CompositeExtract 247 2 - Store 252 253 - 254: 6(int) Load 8(invocation) - 255: 197(ptr) AccessChain 34(data) 76 61 - 256: 22(i16vec4) Load 255 - 257: 6(int) Load 8(invocation) - 258: 22(i16vec4) GroupNonUniformShuffleDown 43 256 257 - 259: 197(ptr) AccessChain 34(data) 254 61 - Store 259 258 - 260: 6(int) Load 8(invocation) - 262: 261(ptr) AccessChain 34(data) 37 76 38 - 263: 23(int16_t) Load 262 - 264: 6(int) Load 8(invocation) - 265: 23(int16_t) GroupNonUniformShuffleUp 43 263 264 - 266: 261(ptr) AccessChain 34(data) 260 76 38 - Store 266 265 - 267: 6(int) Load 8(invocation) - 270: 269(ptr) AccessChain 34(data) 47 76 - 271: 24(i16vec4) Load 270 - 272:268(i16vec2) VectorShuffle 271 271 0 1 - 273: 6(int) Load 8(invocation) - 274:268(i16vec2) GroupNonUniformShuffleUp 43 272 273 - 275: 261(ptr) AccessChain 34(data) 267 76 38 - 276: 23(int16_t) CompositeExtract 274 0 - Store 275 276 - 277: 261(ptr) AccessChain 34(data) 267 76 57 - 278: 23(int16_t) CompositeExtract 274 1 - Store 277 278 - 279: 6(int) Load 8(invocation) - 281: 269(ptr) AccessChain 34(data) 61 76 - 282: 24(i16vec4) Load 281 - 283:280(i16vec3) VectorShuffle 282 282 0 1 2 - 284: 6(int) Load 8(invocation) - 285:280(i16vec3) GroupNonUniformShuffleUp 43 283 284 - 286: 261(ptr) AccessChain 34(data) 279 76 38 - 287: 23(int16_t) CompositeExtract 285 0 - Store 286 287 - 288: 261(ptr) AccessChain 34(data) 279 76 57 - 289: 23(int16_t) CompositeExtract 285 1 - Store 288 289 - 290: 261(ptr) AccessChain 34(data) 279 76 72 - 291: 23(int16_t) CompositeExtract 285 2 - Store 290 291 - 292: 6(int) Load 8(invocation) - 293: 269(ptr) AccessChain 34(data) 76 76 - 294: 24(i16vec4) Load 293 - 295: 6(int) Load 8(invocation) - 296: 24(i16vec4) GroupNonUniformShuffleUp 43 294 295 - 297: 269(ptr) AccessChain 34(data) 292 76 - Store 297 296 - 298: 6(int) Load 8(invocation) - 299: 261(ptr) AccessChain 34(data) 37 76 38 - 300: 23(int16_t) Load 299 - 301: 6(int) Load 8(invocation) - 302: 23(int16_t) GroupNonUniformShuffleDown 43 300 301 - 303: 261(ptr) AccessChain 34(data) 298 76 38 - Store 303 302 - 304: 6(int) Load 8(invocation) - 305: 269(ptr) AccessChain 34(data) 47 76 - 306: 24(i16vec4) Load 305 - 307:268(i16vec2) VectorShuffle 306 306 0 1 - 308: 6(int) Load 8(invocation) - 309:268(i16vec2) GroupNonUniformShuffleDown 43 307 308 - 310: 261(ptr) AccessChain 34(data) 304 76 38 - 311: 23(int16_t) CompositeExtract 309 0 - Store 310 311 - 312: 261(ptr) AccessChain 34(data) 304 76 57 - 313: 23(int16_t) CompositeExtract 309 1 - Store 312 313 - 314: 6(int) Load 8(invocation) - 315: 269(ptr) AccessChain 34(data) 61 76 - 316: 24(i16vec4) Load 315 - 317:280(i16vec3) VectorShuffle 316 316 0 1 2 - 318: 6(int) Load 8(invocation) - 319:280(i16vec3) GroupNonUniformShuffleDown 43 317 318 - 320: 261(ptr) AccessChain 34(data) 314 76 38 - 321: 23(int16_t) CompositeExtract 319 0 - Store 320 321 - 322: 261(ptr) AccessChain 34(data) 314 76 57 - 323: 23(int16_t) CompositeExtract 319 1 - Store 322 323 - 324: 261(ptr) AccessChain 34(data) 314 76 72 - 325: 23(int16_t) CompositeExtract 319 2 - Store 324 325 - 326: 6(int) Load 8(invocation) - 327: 269(ptr) AccessChain 34(data) 76 76 - 328: 24(i16vec4) Load 327 - 329: 6(int) Load 8(invocation) - 330: 24(i16vec4) GroupNonUniformShuffleDown 43 328 329 - 331: 269(ptr) AccessChain 34(data) 326 76 - Store 331 330 - 332: 6(int) Load 8(invocation) - 335: 334(ptr) AccessChain 34(data) 37 333 38 - 336: 25(int64_t) Load 335 - 337: 6(int) Load 8(invocation) - 338: 25(int64_t) GroupNonUniformShuffleUp 43 336 337 - 339: 334(ptr) AccessChain 34(data) 332 333 38 - Store 339 338 - 340: 6(int) Load 8(invocation) - 343: 342(ptr) AccessChain 34(data) 47 333 - 344: 26(i64vec4) Load 343 - 345:341(i64vec2) VectorShuffle 344 344 0 1 - 346: 6(int) Load 8(invocation) - 347:341(i64vec2) GroupNonUniformShuffleUp 43 345 346 - 348: 334(ptr) AccessChain 34(data) 340 333 38 - 349: 25(int64_t) CompositeExtract 347 0 - Store 348 349 - 350: 334(ptr) AccessChain 34(data) 340 333 57 - 351: 25(int64_t) CompositeExtract 347 1 - Store 350 351 - 352: 6(int) Load 8(invocation) - 354: 342(ptr) AccessChain 34(data) 61 333 - 355: 26(i64vec4) Load 354 - 356:353(i64vec3) VectorShuffle 355 355 0 1 2 - 357: 6(int) Load 8(invocation) - 358:353(i64vec3) GroupNonUniformShuffleUp 43 356 357 - 359: 334(ptr) AccessChain 34(data) 352 333 38 - 360: 25(int64_t) CompositeExtract 358 0 - Store 359 360 - 361: 334(ptr) AccessChain 34(data) 352 333 57 - 362: 25(int64_t) CompositeExtract 358 1 - Store 361 362 - 363: 334(ptr) AccessChain 34(data) 352 333 72 - 364: 25(int64_t) CompositeExtract 358 2 - Store 363 364 - 365: 6(int) Load 8(invocation) - 366: 342(ptr) AccessChain 34(data) 76 333 - 367: 26(i64vec4) Load 366 - 368: 6(int) Load 8(invocation) - 369: 26(i64vec4) GroupNonUniformShuffleUp 43 367 368 - 370: 342(ptr) AccessChain 34(data) 365 333 - Store 370 369 - 371: 6(int) Load 8(invocation) - 372: 334(ptr) AccessChain 34(data) 37 333 38 - 373: 25(int64_t) Load 372 - 374: 6(int) Load 8(invocation) - 375: 25(int64_t) GroupNonUniformShuffleDown 43 373 374 - 376: 334(ptr) AccessChain 34(data) 371 333 38 - Store 376 375 - 377: 6(int) Load 8(invocation) - 378: 342(ptr) AccessChain 34(data) 47 333 - 379: 26(i64vec4) Load 378 - 380:341(i64vec2) VectorShuffle 379 379 0 1 - 381: 6(int) Load 8(invocation) - 382:341(i64vec2) GroupNonUniformShuffleDown 43 380 381 - 383: 334(ptr) AccessChain 34(data) 377 333 38 - 384: 25(int64_t) CompositeExtract 382 0 - Store 383 384 - 385: 334(ptr) AccessChain 34(data) 377 333 57 - 386: 25(int64_t) CompositeExtract 382 1 - Store 385 386 - 387: 6(int) Load 8(invocation) - 388: 342(ptr) AccessChain 34(data) 61 333 - 389: 26(i64vec4) Load 388 - 390:353(i64vec3) VectorShuffle 389 389 0 1 2 - 391: 6(int) Load 8(invocation) - 392:353(i64vec3) GroupNonUniformShuffleDown 43 390 391 - 393: 334(ptr) AccessChain 34(data) 387 333 38 - 394: 25(int64_t) CompositeExtract 392 0 - Store 393 394 - 395: 334(ptr) AccessChain 34(data) 387 333 57 - 396: 25(int64_t) CompositeExtract 392 1 - Store 395 396 - 397: 334(ptr) AccessChain 34(data) 387 333 72 - 398: 25(int64_t) CompositeExtract 392 2 - Store 397 398 - 399: 6(int) Load 8(invocation) - 400: 342(ptr) AccessChain 34(data) 76 333 - 401: 26(i64vec4) Load 400 - 402: 6(int) Load 8(invocation) - 403: 26(i64vec4) GroupNonUniformShuffleDown 43 401 402 - 404: 342(ptr) AccessChain 34(data) 399 333 - Store 404 403 - 405: 6(int) Load 8(invocation) - 408: 407(ptr) AccessChain 34(data) 37 406 38 - 409: 27(int64_t) Load 408 - 410: 6(int) Load 8(invocation) - 411: 27(int64_t) GroupNonUniformShuffleUp 43 409 410 - 412: 407(ptr) AccessChain 34(data) 405 406 38 - Store 412 411 - 413: 6(int) Load 8(invocation) - 416: 415(ptr) AccessChain 34(data) 47 406 - 417: 28(i64vec4) Load 416 - 418:414(i64vec2) VectorShuffle 417 417 0 1 - 419: 6(int) Load 8(invocation) - 420:414(i64vec2) GroupNonUniformShuffleUp 43 418 419 - 421: 407(ptr) AccessChain 34(data) 413 406 38 - 422: 27(int64_t) CompositeExtract 420 0 - Store 421 422 - 423: 407(ptr) AccessChain 34(data) 413 406 57 - 424: 27(int64_t) CompositeExtract 420 1 - Store 423 424 - 425: 6(int) Load 8(invocation) - 427: 415(ptr) AccessChain 34(data) 61 406 - 428: 28(i64vec4) Load 427 - 429:426(i64vec3) VectorShuffle 428 428 0 1 2 - 430: 6(int) Load 8(invocation) - 431:426(i64vec3) GroupNonUniformShuffleUp 43 429 430 - 432: 407(ptr) AccessChain 34(data) 425 406 38 - 433: 27(int64_t) CompositeExtract 431 0 - Store 432 433 - 434: 407(ptr) AccessChain 34(data) 425 406 57 - 435: 27(int64_t) CompositeExtract 431 1 - Store 434 435 - 436: 407(ptr) AccessChain 34(data) 425 406 72 - 437: 27(int64_t) CompositeExtract 431 2 - Store 436 437 - 438: 6(int) Load 8(invocation) - 439: 415(ptr) AccessChain 34(data) 76 406 - 440: 28(i64vec4) Load 439 - 441: 6(int) Load 8(invocation) - 442: 28(i64vec4) GroupNonUniformShuffleUp 43 440 441 - 443: 415(ptr) AccessChain 34(data) 438 406 - Store 443 442 - 444: 6(int) Load 8(invocation) - 445: 407(ptr) AccessChain 34(data) 37 406 38 - 446: 27(int64_t) Load 445 - 447: 6(int) Load 8(invocation) - 448: 27(int64_t) GroupNonUniformShuffleDown 43 446 447 - 449: 407(ptr) AccessChain 34(data) 444 406 38 - Store 449 448 - 450: 6(int) Load 8(invocation) - 451: 415(ptr) AccessChain 34(data) 47 406 - 452: 28(i64vec4) Load 451 - 453:414(i64vec2) VectorShuffle 452 452 0 1 - 454: 6(int) Load 8(invocation) - 455:414(i64vec2) GroupNonUniformShuffleDown 43 453 454 - 456: 407(ptr) AccessChain 34(data) 450 406 38 - 457: 27(int64_t) CompositeExtract 455 0 - Store 456 457 - 458: 407(ptr) AccessChain 34(data) 450 406 57 - 459: 27(int64_t) CompositeExtract 455 1 - Store 458 459 - 460: 6(int) Load 8(invocation) - 461: 415(ptr) AccessChain 34(data) 61 406 - 462: 28(i64vec4) Load 461 - 463:426(i64vec3) VectorShuffle 462 462 0 1 2 - 464: 6(int) Load 8(invocation) - 465:426(i64vec3) GroupNonUniformShuffleDown 43 463 464 - 466: 407(ptr) AccessChain 34(data) 460 406 38 - 467: 27(int64_t) CompositeExtract 465 0 - Store 466 467 - 468: 407(ptr) AccessChain 34(data) 460 406 57 - 469: 27(int64_t) CompositeExtract 465 1 - Store 468 469 - 470: 407(ptr) AccessChain 34(data) 460 406 72 - 471: 27(int64_t) CompositeExtract 465 2 - Store 470 471 - 472: 6(int) Load 8(invocation) - 473: 415(ptr) AccessChain 34(data) 76 406 - 474: 28(i64vec4) Load 473 - 475: 6(int) Load 8(invocation) - 476: 28(i64vec4) GroupNonUniformShuffleDown 43 474 475 - 477: 415(ptr) AccessChain 34(data) 472 406 - Store 477 476 - 478: 6(int) Load 8(invocation) - 481: 480(ptr) AccessChain 34(data) 37 479 38 - 482:29(float16_t) Load 481 - 483: 6(int) Load 8(invocation) - 484:29(float16_t) GroupNonUniformShuffleUp 43 482 483 - 485: 480(ptr) AccessChain 34(data) 478 479 38 - Store 485 484 - 486: 6(int) Load 8(invocation) - 489: 488(ptr) AccessChain 34(data) 47 479 - 490: 30(f16vec4) Load 489 - 491:487(f16vec2) VectorShuffle 490 490 0 1 - 492: 6(int) Load 8(invocation) - 493:487(f16vec2) GroupNonUniformShuffleUp 43 491 492 - 494: 480(ptr) AccessChain 34(data) 486 479 38 - 495:29(float16_t) CompositeExtract 493 0 - Store 494 495 - 496: 480(ptr) AccessChain 34(data) 486 479 57 - 497:29(float16_t) CompositeExtract 493 1 - Store 496 497 - 498: 6(int) Load 8(invocation) - 500: 488(ptr) AccessChain 34(data) 61 479 - 501: 30(f16vec4) Load 500 - 502:499(f16vec3) VectorShuffle 501 501 0 1 2 - 503: 6(int) Load 8(invocation) - 504:499(f16vec3) GroupNonUniformShuffleUp 43 502 503 - 505: 480(ptr) AccessChain 34(data) 498 479 38 - 506:29(float16_t) CompositeExtract 504 0 - Store 505 506 - 507: 480(ptr) AccessChain 34(data) 498 479 57 - 508:29(float16_t) CompositeExtract 504 1 - Store 507 508 - 509: 480(ptr) AccessChain 34(data) 498 479 72 - 510:29(float16_t) CompositeExtract 504 2 - Store 509 510 - 511: 6(int) Load 8(invocation) - 512: 488(ptr) AccessChain 34(data) 76 479 - 513: 30(f16vec4) Load 512 - 514: 6(int) Load 8(invocation) - 515: 30(f16vec4) GroupNonUniformShuffleUp 43 513 514 - 516: 488(ptr) AccessChain 34(data) 511 479 - Store 516 515 - 517: 6(int) Load 8(invocation) - 518: 480(ptr) AccessChain 34(data) 37 479 38 - 519:29(float16_t) Load 518 - 520: 6(int) Load 8(invocation) - 521:29(float16_t) GroupNonUniformShuffleDown 43 519 520 - 522: 480(ptr) AccessChain 34(data) 517 479 38 - Store 522 521 - 523: 6(int) Load 8(invocation) - 524: 488(ptr) AccessChain 34(data) 47 479 - 525: 30(f16vec4) Load 524 - 526:487(f16vec2) VectorShuffle 525 525 0 1 - 527: 6(int) Load 8(invocation) - 528:487(f16vec2) GroupNonUniformShuffleDown 43 526 527 - 529: 480(ptr) AccessChain 34(data) 523 479 38 - 530:29(float16_t) CompositeExtract 528 0 - Store 529 530 - 531: 480(ptr) AccessChain 34(data) 523 479 57 - 532:29(float16_t) CompositeExtract 528 1 - Store 531 532 - 533: 6(int) Load 8(invocation) - 534: 488(ptr) AccessChain 34(data) 61 479 - 535: 30(f16vec4) Load 534 - 536:499(f16vec3) VectorShuffle 535 535 0 1 2 - 537: 6(int) Load 8(invocation) - 538:499(f16vec3) GroupNonUniformShuffleDown 43 536 537 - 539: 480(ptr) AccessChain 34(data) 533 479 38 - 540:29(float16_t) CompositeExtract 538 0 - Store 539 540 - 541: 480(ptr) AccessChain 34(data) 533 479 57 - 542:29(float16_t) CompositeExtract 538 1 - Store 541 542 - 543: 480(ptr) AccessChain 34(data) 533 479 72 - 544:29(float16_t) CompositeExtract 538 2 - Store 543 544 - 545: 6(int) Load 8(invocation) - 546: 488(ptr) AccessChain 34(data) 76 479 - 547: 30(f16vec4) Load 546 - 548: 6(int) Load 8(invocation) - 549: 30(f16vec4) GroupNonUniformShuffleDown 43 547 548 - 550: 488(ptr) AccessChain 34(data) 545 479 - Store 550 549 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesShuffleRelativeNeg.comp.out b/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesShuffleRelativeNeg.comp.out deleted file mode 100644 index a0437157..00000000 --- a/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesShuffleRelativeNeg.comp.out +++ /dev/null @@ -1,61 +0,0 @@ -spv.subgroupExtendedTypesShuffleRelativeNeg.comp -ERROR: 0:26: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:27: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:28: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:29: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:31: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:32: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:33: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:34: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:36: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:37: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:38: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:39: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:41: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:42: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:43: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:44: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:46: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:47: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:48: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:49: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:51: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:52: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:53: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:54: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:56: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:57: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:58: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:59: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:61: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:62: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:63: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:64: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:66: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:67: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:68: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:69: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:71: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:72: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:73: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:74: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:76: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:77: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:78: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:79: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:81: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:82: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:83: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:84: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:86: ' temp highp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:87: ' temp highp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:88: ' temp highp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:89: 'layout( column_major std430) buffer highp 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:91: ' temp highp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:92: ' temp highp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:93: ' temp highp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:94: 'layout( column_major std430) buffer highp 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 56 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesVote.comp.out b/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesVote.comp.out deleted file mode 100644 index 6fde1f93..00000000 --- a/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesVote.comp.out +++ /dev/null @@ -1,377 +0,0 @@ -spv.subgroupExtendedTypesVote.comp -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 277 - - Capability Shader - Capability Float16 - Capability Int64 - Capability Int16 - Capability Int8 - Capability GroupNonUniform - Capability GroupNonUniformVote - Capability StorageUniformBufferBlock16 - Capability StorageBuffer8BitAccess - Extension "SPV_KHR_8bit_storage" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 10 12 - ExecutionMode 4 LocalSize 8 1 1 - Source GLSL 450 - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int16" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int64" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int8" - SourceExtension "GL_EXT_shader_subgroup_extended_types_float16" - SourceExtension "GL_EXT_shader_subgroup_extended_types_int16" - SourceExtension "GL_EXT_shader_subgroup_extended_types_int64" - SourceExtension "GL_EXT_shader_subgroup_extended_types_int8" - SourceExtension "GL_KHR_shader_subgroup_basic" - SourceExtension "GL_KHR_shader_subgroup_vote" - Name 4 "main" - Name 8 "invocation" - Name 10 "gl_SubgroupInvocationID" - Name 12 "gl_SubgroupSize" - Name 32 "Buffers" - MemberName 32(Buffers) 0 "i8" - MemberName 32(Buffers) 1 "u8" - MemberName 32(Buffers) 2 "i16" - MemberName 32(Buffers) 3 "u16" - MemberName 32(Buffers) 4 "i64" - MemberName 32(Buffers) 5 "u64" - MemberName 32(Buffers) 6 "f16" - MemberName 32(Buffers) 7 "r" - Name 35 "data" - Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision - Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId - Decorate 11 RelaxedPrecision - Decorate 12(gl_SubgroupSize) RelaxedPrecision - Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize - Decorate 13 RelaxedPrecision - Decorate 14 RelaxedPrecision - Decorate 16 RelaxedPrecision - MemberDecorate 32(Buffers) 0 Offset 0 - MemberDecorate 32(Buffers) 1 Offset 4 - MemberDecorate 32(Buffers) 2 Offset 8 - MemberDecorate 32(Buffers) 3 Offset 16 - MemberDecorate 32(Buffers) 4 Offset 32 - MemberDecorate 32(Buffers) 5 Offset 64 - MemberDecorate 32(Buffers) 6 Offset 96 - MemberDecorate 32(Buffers) 7 Offset 104 - Decorate 32(Buffers) Block - Decorate 35(data) DescriptorSet 0 - Decorate 35(data) Binding 0 - Decorate 276 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypePointer Input 6(int) -10(gl_SubgroupInvocationID): 9(ptr) Variable Input -12(gl_SubgroupSize): 9(ptr) Variable Input - 15: 6(int) Constant 4 - 17: TypeInt 8 1 - 18: TypeVector 17(int8_t) 4 - 19: TypeInt 8 0 - 20: TypeVector 19(int8_t) 4 - 21: TypeInt 16 1 - 22: TypeVector 21(int16_t) 4 - 23: TypeInt 16 0 - 24: TypeVector 23(int16_t) 4 - 25: TypeInt 64 1 - 26: TypeVector 25(int64_t) 4 - 27: TypeInt 64 0 - 28: TypeVector 27(int64_t) 4 - 29: TypeFloat 16 - 30: TypeVector 29(float16_t) 4 - 31: TypeInt 32 1 - 32(Buffers): TypeStruct 18(i8vec4) 20(i8vec4) 22(i16vec4) 24(i16vec4) 26(i64vec4) 28(i64vec4) 30(f16vec4) 31(int) - 33: TypeArray 32(Buffers) 15 - 34: TypePointer StorageBuffer 33 - 35(data): 34(ptr) Variable StorageBuffer - 37: 31(int) Constant 7 - 38: TypePointer StorageBuffer 31(int) - 41: 31(int) Constant 0 - 42: TypeBool - 44: 6(int) Constant 3 - 49: 6(int) Constant 0 - 50: TypePointer StorageBuffer 17(int8_t) - 54: 31(int) Constant 1 - 58: TypeVector 17(int8_t) 2 - 59: TypePointer StorageBuffer 18(i8vec4) - 67: 31(int) Constant 2 - 68: TypeVector 17(int8_t) 3 - 76: 31(int) Constant 3 - 83: TypePointer StorageBuffer 19(int8_t) - 90: TypeVector 19(int8_t) 2 - 91: TypePointer StorageBuffer 20(i8vec4) - 99: TypeVector 19(int8_t) 3 - 113: TypePointer StorageBuffer 21(int16_t) - 120: TypeVector 21(int16_t) 2 - 121: TypePointer StorageBuffer 22(i16vec4) - 129: TypeVector 21(int16_t) 3 - 143: TypePointer StorageBuffer 23(int16_t) - 150: TypeVector 23(int16_t) 2 - 151: TypePointer StorageBuffer 24(i16vec4) - 159: TypeVector 23(int16_t) 3 - 181: 31(int) Constant 4 - 182: TypePointer StorageBuffer 25(int64_t) - 189: TypeVector 25(int64_t) 2 - 190: TypePointer StorageBuffer 26(i64vec4) - 198: TypeVector 25(int64_t) 3 - 212: 31(int) Constant 5 - 213: TypePointer StorageBuffer 27(int64_t) - 220: TypeVector 27(int64_t) 2 - 221: TypePointer StorageBuffer 28(i64vec4) - 229: TypeVector 27(int64_t) 3 - 243: 31(int) Constant 6 - 244: TypePointer StorageBuffer 29(float16_t) - 251: TypeVector 29(float16_t) 2 - 252: TypePointer StorageBuffer 30(f16vec4) - 260: TypeVector 29(float16_t) 3 - 273: TypeVector 6(int) 3 - 274: 6(int) Constant 8 - 275: 6(int) Constant 1 - 276: 273(ivec3) ConstantComposite 274 275 275 - 4(main): 2 Function None 3 - 5: Label - 8(invocation): 7(ptr) Variable Function - 11: 6(int) Load 10(gl_SubgroupInvocationID) - 13: 6(int) Load 12(gl_SubgroupSize) - 14: 6(int) IAdd 11 13 - 16: 6(int) UMod 14 15 - Store 8(invocation) 16 - 36: 6(int) Load 8(invocation) - 39: 38(ptr) AccessChain 35(data) 36 37 - 40: 31(int) Load 39 - 43: 42(bool) SLessThan 40 41 - 45: 42(bool) GroupNonUniformAll 44 43 - SelectionMerge 47 None - BranchConditional 45 46 172 - 46: Label - 48: 6(int) Load 8(invocation) - 51: 50(ptr) AccessChain 35(data) 41 41 49 - 52: 17(int8_t) Load 51 - 53: 42(bool) GroupNonUniformAllEqual 44 52 - 55: 31(int) Select 53 54 41 - 56: 38(ptr) AccessChain 35(data) 48 37 - Store 56 55 - 57: 6(int) Load 8(invocation) - 60: 59(ptr) AccessChain 35(data) 54 41 - 61: 18(i8vec4) Load 60 - 62: 58(i8vec2) VectorShuffle 61 61 0 1 - 63: 42(bool) GroupNonUniformAllEqual 44 62 - 64: 31(int) Select 63 54 41 - 65: 38(ptr) AccessChain 35(data) 57 37 - Store 65 64 - 66: 6(int) Load 8(invocation) - 69: 59(ptr) AccessChain 35(data) 67 41 - 70: 18(i8vec4) Load 69 - 71: 68(i8vec3) VectorShuffle 70 70 0 1 2 - 72: 42(bool) GroupNonUniformAllEqual 44 71 - 73: 31(int) Select 72 54 41 - 74: 38(ptr) AccessChain 35(data) 66 37 - Store 74 73 - 75: 6(int) Load 8(invocation) - 77: 59(ptr) AccessChain 35(data) 76 41 - 78: 18(i8vec4) Load 77 - 79: 42(bool) GroupNonUniformAllEqual 44 78 - 80: 31(int) Select 79 54 41 - 81: 38(ptr) AccessChain 35(data) 75 37 - Store 81 80 - 82: 6(int) Load 8(invocation) - 84: 83(ptr) AccessChain 35(data) 41 54 49 - 85: 19(int8_t) Load 84 - 86: 42(bool) GroupNonUniformAllEqual 44 85 - 87: 31(int) Select 86 54 41 - 88: 38(ptr) AccessChain 35(data) 82 37 - Store 88 87 - 89: 6(int) Load 8(invocation) - 92: 91(ptr) AccessChain 35(data) 54 54 - 93: 20(i8vec4) Load 92 - 94: 90(i8vec2) VectorShuffle 93 93 0 1 - 95: 42(bool) GroupNonUniformAllEqual 44 94 - 96: 31(int) Select 95 54 41 - 97: 38(ptr) AccessChain 35(data) 89 37 - Store 97 96 - 98: 6(int) Load 8(invocation) - 100: 91(ptr) AccessChain 35(data) 67 54 - 101: 20(i8vec4) Load 100 - 102: 99(i8vec3) VectorShuffle 101 101 0 1 2 - 103: 42(bool) GroupNonUniformAllEqual 44 102 - 104: 31(int) Select 103 54 41 - 105: 38(ptr) AccessChain 35(data) 98 37 - Store 105 104 - 106: 6(int) Load 8(invocation) - 107: 91(ptr) AccessChain 35(data) 76 54 - 108: 20(i8vec4) Load 107 - 109: 42(bool) GroupNonUniformAllEqual 44 108 - 110: 31(int) Select 109 54 41 - 111: 38(ptr) AccessChain 35(data) 106 37 - Store 111 110 - 112: 6(int) Load 8(invocation) - 114: 113(ptr) AccessChain 35(data) 41 67 49 - 115: 21(int16_t) Load 114 - 116: 42(bool) GroupNonUniformAllEqual 44 115 - 117: 31(int) Select 116 54 41 - 118: 38(ptr) AccessChain 35(data) 112 37 - Store 118 117 - 119: 6(int) Load 8(invocation) - 122: 121(ptr) AccessChain 35(data) 54 67 - 123: 22(i16vec4) Load 122 - 124:120(i16vec2) VectorShuffle 123 123 0 1 - 125: 42(bool) GroupNonUniformAllEqual 44 124 - 126: 31(int) Select 125 54 41 - 127: 38(ptr) AccessChain 35(data) 119 37 - Store 127 126 - 128: 6(int) Load 8(invocation) - 130: 121(ptr) AccessChain 35(data) 67 67 - 131: 22(i16vec4) Load 130 - 132:129(i16vec3) VectorShuffle 131 131 0 1 2 - 133: 42(bool) GroupNonUniformAllEqual 44 132 - 134: 31(int) Select 133 54 41 - 135: 38(ptr) AccessChain 35(data) 128 37 - Store 135 134 - 136: 6(int) Load 8(invocation) - 137: 121(ptr) AccessChain 35(data) 76 67 - 138: 22(i16vec4) Load 137 - 139: 42(bool) GroupNonUniformAllEqual 44 138 - 140: 31(int) Select 139 54 41 - 141: 38(ptr) AccessChain 35(data) 136 37 - Store 141 140 - 142: 6(int) Load 8(invocation) - 144: 143(ptr) AccessChain 35(data) 41 76 49 - 145: 23(int16_t) Load 144 - 146: 42(bool) GroupNonUniformAllEqual 44 145 - 147: 31(int) Select 146 54 41 - 148: 38(ptr) AccessChain 35(data) 142 37 - Store 148 147 - 149: 6(int) Load 8(invocation) - 152: 151(ptr) AccessChain 35(data) 54 76 - 153: 24(i16vec4) Load 152 - 154:150(i16vec2) VectorShuffle 153 153 0 1 - 155: 42(bool) GroupNonUniformAllEqual 44 154 - 156: 31(int) Select 155 54 41 - 157: 38(ptr) AccessChain 35(data) 149 37 - Store 157 156 - 158: 6(int) Load 8(invocation) - 160: 151(ptr) AccessChain 35(data) 67 76 - 161: 24(i16vec4) Load 160 - 162:159(i16vec3) VectorShuffle 161 161 0 1 2 - 163: 42(bool) GroupNonUniformAllEqual 44 162 - 164: 31(int) Select 163 54 41 - 165: 38(ptr) AccessChain 35(data) 158 37 - Store 165 164 - 166: 6(int) Load 8(invocation) - 167: 151(ptr) AccessChain 35(data) 76 76 - 168: 24(i16vec4) Load 167 - 169: 42(bool) GroupNonUniformAllEqual 44 168 - 170: 31(int) Select 169 54 41 - 171: 38(ptr) AccessChain 35(data) 166 37 - Store 171 170 - Branch 47 - 172: Label - 173: 6(int) Load 8(invocation) - 174: 38(ptr) AccessChain 35(data) 173 37 - 175: 31(int) Load 174 - 176: 42(bool) SLessThan 175 41 - 177: 42(bool) GroupNonUniformAny 44 176 - SelectionMerge 179 None - BranchConditional 177 178 179 - 178: Label - 180: 6(int) Load 8(invocation) - 183: 182(ptr) AccessChain 35(data) 41 181 49 - 184: 25(int64_t) Load 183 - 185: 42(bool) GroupNonUniformAllEqual 44 184 - 186: 31(int) Select 185 54 41 - 187: 38(ptr) AccessChain 35(data) 180 37 - Store 187 186 - 188: 6(int) Load 8(invocation) - 191: 190(ptr) AccessChain 35(data) 54 181 - 192: 26(i64vec4) Load 191 - 193:189(i64vec2) VectorShuffle 192 192 0 1 - 194: 42(bool) GroupNonUniformAllEqual 44 193 - 195: 31(int) Select 194 54 41 - 196: 38(ptr) AccessChain 35(data) 188 37 - Store 196 195 - 197: 6(int) Load 8(invocation) - 199: 190(ptr) AccessChain 35(data) 67 181 - 200: 26(i64vec4) Load 199 - 201:198(i64vec3) VectorShuffle 200 200 0 1 2 - 202: 42(bool) GroupNonUniformAllEqual 44 201 - 203: 31(int) Select 202 54 41 - 204: 38(ptr) AccessChain 35(data) 197 37 - Store 204 203 - 205: 6(int) Load 8(invocation) - 206: 190(ptr) AccessChain 35(data) 76 181 - 207: 26(i64vec4) Load 206 - 208: 42(bool) GroupNonUniformAllEqual 44 207 - 209: 31(int) Select 208 54 41 - 210: 38(ptr) AccessChain 35(data) 205 37 - Store 210 209 - 211: 6(int) Load 8(invocation) - 214: 213(ptr) AccessChain 35(data) 41 212 49 - 215: 27(int64_t) Load 214 - 216: 42(bool) GroupNonUniformAllEqual 44 215 - 217: 31(int) Select 216 54 41 - 218: 38(ptr) AccessChain 35(data) 211 37 - Store 218 217 - 219: 6(int) Load 8(invocation) - 222: 221(ptr) AccessChain 35(data) 54 212 - 223: 28(i64vec4) Load 222 - 224:220(i64vec2) VectorShuffle 223 223 0 1 - 225: 42(bool) GroupNonUniformAllEqual 44 224 - 226: 31(int) Select 225 54 41 - 227: 38(ptr) AccessChain 35(data) 219 37 - Store 227 226 - 228: 6(int) Load 8(invocation) - 230: 221(ptr) AccessChain 35(data) 67 212 - 231: 28(i64vec4) Load 230 - 232:229(i64vec3) VectorShuffle 231 231 0 1 2 - 233: 42(bool) GroupNonUniformAllEqual 44 232 - 234: 31(int) Select 233 54 41 - 235: 38(ptr) AccessChain 35(data) 228 37 - Store 235 234 - 236: 6(int) Load 8(invocation) - 237: 221(ptr) AccessChain 35(data) 76 212 - 238: 28(i64vec4) Load 237 - 239: 42(bool) GroupNonUniformAllEqual 44 238 - 240: 31(int) Select 239 54 41 - 241: 38(ptr) AccessChain 35(data) 236 37 - Store 241 240 - 242: 6(int) Load 8(invocation) - 245: 244(ptr) AccessChain 35(data) 41 243 49 - 246:29(float16_t) Load 245 - 247: 42(bool) GroupNonUniformAllEqual 44 246 - 248: 31(int) Select 247 54 41 - 249: 38(ptr) AccessChain 35(data) 242 37 - Store 249 248 - 250: 6(int) Load 8(invocation) - 253: 252(ptr) AccessChain 35(data) 54 243 - 254: 30(f16vec4) Load 253 - 255:251(f16vec2) VectorShuffle 254 254 0 1 - 256: 42(bool) GroupNonUniformAllEqual 44 255 - 257: 31(int) Select 256 54 41 - 258: 38(ptr) AccessChain 35(data) 250 37 - Store 258 257 - 259: 6(int) Load 8(invocation) - 261: 252(ptr) AccessChain 35(data) 67 243 - 262: 30(f16vec4) Load 261 - 263:260(f16vec3) VectorShuffle 262 262 0 1 2 - 264: 42(bool) GroupNonUniformAllEqual 44 263 - 265: 31(int) Select 264 54 41 - 266: 38(ptr) AccessChain 35(data) 259 37 - Store 266 265 - 267: 6(int) Load 8(invocation) - 268: 252(ptr) AccessChain 35(data) 76 243 - 269: 30(f16vec4) Load 268 - 270: 42(bool) GroupNonUniformAllEqual 44 269 - 271: 31(int) Select 270 54 41 - 272: 38(ptr) AccessChain 35(data) 267 37 - Store 272 271 - Branch 179 - 179: Label - Branch 47 - 47: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesVoteNeg.comp.out b/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesVoteNeg.comp.out deleted file mode 100644 index 2197d417..00000000 --- a/deps/glslang/Test/baseResults/spv.subgroupExtendedTypesVoteNeg.comp.out +++ /dev/null @@ -1,33 +0,0 @@ -spv.subgroupExtendedTypesVoteNeg.comp -ERROR: 0:29: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:30: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:31: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:32: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:34: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:35: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:36: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:37: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 -ERROR: 0:39: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:40: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:41: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:42: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:44: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:45: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:46: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:47: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 -ERROR: 0:51: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:52: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:53: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:54: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:56: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:57: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:58: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:59: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 -ERROR: 0:61: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:62: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:63: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 0:64: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 -ERROR: 28 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.subgroupPartitioned.comp.out b/deps/glslang/Test/baseResults/spv.subgroupPartitioned.comp.out deleted file mode 100644 index 0e7b7ef2..00000000 --- a/deps/glslang/Test/baseResults/spv.subgroupPartitioned.comp.out +++ /dev/null @@ -1,3398 +0,0 @@ -spv.subgroupPartitioned.comp -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 2807 - - Capability Shader - Capability Float64 - Capability GroupNonUniform - Capability GroupNonUniformPartitionedNV - Extension "SPV_NV_shader_subgroup_partitioned" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 10 12 - ExecutionMode 4 LocalSize 8 1 1 - Source GLSL 450 - SourceExtension "GL_KHR_shader_subgroup_basic" - SourceExtension "GL_NV_shader_subgroup_partitioned" - Name 4 "main" - Name 8 "invocation" - Name 10 "gl_SubgroupInvocationID" - Name 12 "gl_SubgroupSize" - Name 19 "ballot" - Name 28 "Buffers" - MemberName 28(Buffers) 0 "f4" - MemberName 28(Buffers) 1 "i4" - MemberName 28(Buffers) 2 "u4" - MemberName 28(Buffers) 3 "d4" - Name 31 "data" - Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision - Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId - Decorate 11 RelaxedPrecision - Decorate 12(gl_SubgroupSize) RelaxedPrecision - Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize - Decorate 13 RelaxedPrecision - Decorate 14 RelaxedPrecision - Decorate 16 RelaxedPrecision - MemberDecorate 28(Buffers) 0 Offset 0 - MemberDecorate 28(Buffers) 1 Offset 16 - MemberDecorate 28(Buffers) 2 Offset 32 - MemberDecorate 28(Buffers) 3 Offset 64 - Decorate 28(Buffers) Block - Decorate 31(data) DescriptorSet 0 - Decorate 31(data) Binding 0 - Decorate 2806 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypePointer Input 6(int) -10(gl_SubgroupInvocationID): 9(ptr) Variable Input -12(gl_SubgroupSize): 9(ptr) Variable Input - 15: 6(int) Constant 4 - 17: TypeVector 6(int) 4 - 18: TypePointer Function 17(ivec4) - 22: TypeFloat 32 - 23: TypeVector 22(float) 4 - 24: TypeInt 32 1 - 25: TypeVector 24(int) 4 - 26: TypeFloat 64 - 27: TypeVector 26(float64_t) 4 - 28(Buffers): TypeStruct 23(fvec4) 25(ivec4) 17(ivec4) 27(f64vec4) - 29: TypeArray 28(Buffers) 15 - 30: TypePointer StorageBuffer 29 - 31(data): 30(ptr) Variable StorageBuffer - 33: 24(int) Constant 2 - 34: 24(int) Constant 0 - 35: 6(int) Constant 0 - 36: TypePointer StorageBuffer 22(float) - 40: TypePointer StorageBuffer 17(ivec4) - 43: TypeVector 22(float) 2 - 44: TypePointer StorageBuffer 23(fvec4) - 51: TypeVector 22(float) 3 - 63: 24(int) Constant 1 - 64: TypePointer StorageBuffer 24(int) - 70: TypeVector 24(int) 2 - 71: TypePointer StorageBuffer 25(ivec4) - 78: TypeVector 24(int) 3 - 90: TypePointer StorageBuffer 6(int) - 96: TypeVector 6(int) 2 - 103: TypeVector 6(int) 3 - 115: 24(int) Constant 3 - 116: TypePointer StorageBuffer 26(float64_t) - 122: TypeVector 26(float64_t) 2 - 123: TypePointer StorageBuffer 27(f64vec4) - 130: TypeVector 26(float64_t) 3 - 144: TypeBool - 152: TypeVector 144(bool) 2 - 153: 96(ivec2) ConstantComposite 35 35 - 161: TypeVector 144(bool) 3 - 162: 103(ivec3) ConstantComposite 35 35 35 - 169: TypeVector 144(bool) 4 - 170: 17(ivec4) ConstantComposite 35 35 35 35 - 178: 6(int) Constant 3 - 189: 6(int) Constant 1 - 202: 6(int) Constant 2 - 801: 70(ivec2) ConstantComposite 34 34 - 805: 70(ivec2) ConstantComposite 63 63 - 815: 78(ivec3) ConstantComposite 34 34 34 - 819: 78(ivec3) ConstantComposite 63 63 63 - 830: 25(ivec4) ConstantComposite 34 34 34 34 - 834: 25(ivec4) ConstantComposite 63 63 63 63 - 2805: 6(int) Constant 8 - 2806: 103(ivec3) ConstantComposite 2805 189 189 - 4(main): 2 Function None 3 - 5: Label - 8(invocation): 7(ptr) Variable Function - 19(ballot): 18(ptr) Variable Function - 11: 6(int) Load 10(gl_SubgroupInvocationID) - 13: 6(int) Load 12(gl_SubgroupSize) - 14: 6(int) IAdd 11 13 - 16: 6(int) UMod 14 15 - Store 8(invocation) 16 - 20: 6(int) Load 8(invocation) - 21: 17(ivec4) GroupNonUniformPartitionNV 20 - Store 19(ballot) 21 - 32: 6(int) Load 8(invocation) - 37: 36(ptr) AccessChain 31(data) 34 34 35 - 38: 22(float) Load 37 - 39: 17(ivec4) GroupNonUniformPartitionNV 38 - 41: 40(ptr) AccessChain 31(data) 32 33 - Store 41 39 - 42: 6(int) Load 8(invocation) - 45: 44(ptr) AccessChain 31(data) 34 34 - 46: 23(fvec4) Load 45 - 47: 43(fvec2) VectorShuffle 46 46 0 1 - 48: 17(ivec4) GroupNonUniformPartitionNV 47 - 49: 40(ptr) AccessChain 31(data) 42 33 - Store 49 48 - 50: 6(int) Load 8(invocation) - 52: 44(ptr) AccessChain 31(data) 34 34 - 53: 23(fvec4) Load 52 - 54: 51(fvec3) VectorShuffle 53 53 0 1 2 - 55: 17(ivec4) GroupNonUniformPartitionNV 54 - 56: 40(ptr) AccessChain 31(data) 50 33 - Store 56 55 - 57: 6(int) Load 8(invocation) - 58: 44(ptr) AccessChain 31(data) 34 34 - 59: 23(fvec4) Load 58 - 60: 17(ivec4) GroupNonUniformPartitionNV 59 - 61: 40(ptr) AccessChain 31(data) 57 33 - Store 61 60 - 62: 6(int) Load 8(invocation) - 65: 64(ptr) AccessChain 31(data) 34 63 35 - 66: 24(int) Load 65 - 67: 17(ivec4) GroupNonUniformPartitionNV 66 - 68: 40(ptr) AccessChain 31(data) 62 33 - Store 68 67 - 69: 6(int) Load 8(invocation) - 72: 71(ptr) AccessChain 31(data) 34 63 - 73: 25(ivec4) Load 72 - 74: 70(ivec2) VectorShuffle 73 73 0 1 - 75: 17(ivec4) GroupNonUniformPartitionNV 74 - 76: 40(ptr) AccessChain 31(data) 69 33 - Store 76 75 - 77: 6(int) Load 8(invocation) - 79: 71(ptr) AccessChain 31(data) 34 63 - 80: 25(ivec4) Load 79 - 81: 78(ivec3) VectorShuffle 80 80 0 1 2 - 82: 17(ivec4) GroupNonUniformPartitionNV 81 - 83: 40(ptr) AccessChain 31(data) 77 33 - Store 83 82 - 84: 6(int) Load 8(invocation) - 85: 71(ptr) AccessChain 31(data) 34 63 - 86: 25(ivec4) Load 85 - 87: 17(ivec4) GroupNonUniformPartitionNV 86 - 88: 40(ptr) AccessChain 31(data) 84 33 - Store 88 87 - 89: 6(int) Load 8(invocation) - 91: 90(ptr) AccessChain 31(data) 34 33 35 - 92: 6(int) Load 91 - 93: 17(ivec4) GroupNonUniformPartitionNV 92 - 94: 40(ptr) AccessChain 31(data) 89 33 - Store 94 93 - 95: 6(int) Load 8(invocation) - 97: 40(ptr) AccessChain 31(data) 34 33 - 98: 17(ivec4) Load 97 - 99: 96(ivec2) VectorShuffle 98 98 0 1 - 100: 17(ivec4) GroupNonUniformPartitionNV 99 - 101: 40(ptr) AccessChain 31(data) 95 33 - Store 101 100 - 102: 6(int) Load 8(invocation) - 104: 40(ptr) AccessChain 31(data) 34 33 - 105: 17(ivec4) Load 104 - 106: 103(ivec3) VectorShuffle 105 105 0 1 2 - 107: 17(ivec4) GroupNonUniformPartitionNV 106 - 108: 40(ptr) AccessChain 31(data) 102 33 - Store 108 107 - 109: 6(int) Load 8(invocation) - 110: 40(ptr) AccessChain 31(data) 34 33 - 111: 17(ivec4) Load 110 - 112: 17(ivec4) GroupNonUniformPartitionNV 111 - 113: 40(ptr) AccessChain 31(data) 109 33 - Store 113 112 - 114: 6(int) Load 8(invocation) - 117: 116(ptr) AccessChain 31(data) 34 115 35 - 118:26(float64_t) Load 117 - 119: 17(ivec4) GroupNonUniformPartitionNV 118 - 120: 40(ptr) AccessChain 31(data) 114 33 - Store 120 119 - 121: 6(int) Load 8(invocation) - 124: 123(ptr) AccessChain 31(data) 34 115 - 125: 27(f64vec4) Load 124 - 126:122(f64vec2) VectorShuffle 125 125 0 1 - 127: 17(ivec4) GroupNonUniformPartitionNV 126 - 128: 40(ptr) AccessChain 31(data) 121 33 - Store 128 127 - 129: 6(int) Load 8(invocation) - 131: 123(ptr) AccessChain 31(data) 34 115 - 132: 27(f64vec4) Load 131 - 133:130(f64vec3) VectorShuffle 132 132 0 1 2 - 134: 17(ivec4) GroupNonUniformPartitionNV 133 - 135: 40(ptr) AccessChain 31(data) 129 33 - Store 135 134 - 136: 6(int) Load 8(invocation) - 137: 123(ptr) AccessChain 31(data) 34 115 - 138: 27(f64vec4) Load 137 - 139: 17(ivec4) GroupNonUniformPartitionNV 138 - 140: 40(ptr) AccessChain 31(data) 136 33 - Store 140 139 - 141: 6(int) Load 8(invocation) - 142: 64(ptr) AccessChain 31(data) 34 63 35 - 143: 24(int) Load 142 - 145: 144(bool) INotEqual 143 35 - 146: 17(ivec4) GroupNonUniformPartitionNV 145 - 147: 40(ptr) AccessChain 31(data) 141 33 - Store 147 146 - 148: 6(int) Load 8(invocation) - 149: 71(ptr) AccessChain 31(data) 34 63 - 150: 25(ivec4) Load 149 - 151: 70(ivec2) VectorShuffle 150 150 0 1 - 154: 152(bvec2) INotEqual 151 153 - 155: 17(ivec4) GroupNonUniformPartitionNV 154 - 156: 40(ptr) AccessChain 31(data) 148 33 - Store 156 155 - 157: 6(int) Load 8(invocation) - 158: 71(ptr) AccessChain 31(data) 34 63 - 159: 25(ivec4) Load 158 - 160: 78(ivec3) VectorShuffle 159 159 0 1 2 - 163: 161(bvec3) INotEqual 160 162 - 164: 17(ivec4) GroupNonUniformPartitionNV 163 - 165: 40(ptr) AccessChain 31(data) 157 33 - Store 165 164 - 166: 6(int) Load 8(invocation) - 167: 71(ptr) AccessChain 31(data) 34 63 - 168: 25(ivec4) Load 167 - 171: 169(bvec4) INotEqual 168 170 - 172: 17(ivec4) GroupNonUniformPartitionNV 171 - 173: 40(ptr) AccessChain 31(data) 166 33 - Store 173 172 - 174: 6(int) Load 8(invocation) - 175: 36(ptr) AccessChain 31(data) 34 34 35 - 176: 22(float) Load 175 - 177: 17(ivec4) Load 19(ballot) - 179: 22(float) GroupNonUniformFAdd 178 PartitionedReduceNV 176 177 - 180: 36(ptr) AccessChain 31(data) 174 34 35 - Store 180 179 - 181: 6(int) Load 8(invocation) - 182: 44(ptr) AccessChain 31(data) 63 34 - 183: 23(fvec4) Load 182 - 184: 43(fvec2) VectorShuffle 183 183 0 1 - 185: 17(ivec4) Load 19(ballot) - 186: 43(fvec2) GroupNonUniformFAdd 178 PartitionedReduceNV 184 185 - 187: 36(ptr) AccessChain 31(data) 181 34 35 - 188: 22(float) CompositeExtract 186 0 - Store 187 188 - 190: 36(ptr) AccessChain 31(data) 181 34 189 - 191: 22(float) CompositeExtract 186 1 - Store 190 191 - 192: 6(int) Load 8(invocation) - 193: 44(ptr) AccessChain 31(data) 33 34 - 194: 23(fvec4) Load 193 - 195: 51(fvec3) VectorShuffle 194 194 0 1 2 - 196: 17(ivec4) Load 19(ballot) - 197: 51(fvec3) GroupNonUniformFAdd 178 PartitionedReduceNV 195 196 - 198: 36(ptr) AccessChain 31(data) 192 34 35 - 199: 22(float) CompositeExtract 197 0 - Store 198 199 - 200: 36(ptr) AccessChain 31(data) 192 34 189 - 201: 22(float) CompositeExtract 197 1 - Store 200 201 - 203: 36(ptr) AccessChain 31(data) 192 34 202 - 204: 22(float) CompositeExtract 197 2 - Store 203 204 - 205: 6(int) Load 8(invocation) - 206: 44(ptr) AccessChain 31(data) 115 34 - 207: 23(fvec4) Load 206 - 208: 17(ivec4) Load 19(ballot) - 209: 23(fvec4) GroupNonUniformFAdd 178 PartitionedReduceNV 207 208 - 210: 44(ptr) AccessChain 31(data) 205 34 - Store 210 209 - 211: 6(int) Load 8(invocation) - 212: 64(ptr) AccessChain 31(data) 34 63 35 - 213: 24(int) Load 212 - 214: 17(ivec4) Load 19(ballot) - 215: 24(int) GroupNonUniformIAdd 178 PartitionedReduceNV 213 214 - 216: 64(ptr) AccessChain 31(data) 211 63 35 - Store 216 215 - 217: 6(int) Load 8(invocation) - 218: 71(ptr) AccessChain 31(data) 63 63 - 219: 25(ivec4) Load 218 - 220: 70(ivec2) VectorShuffle 219 219 0 1 - 221: 17(ivec4) Load 19(ballot) - 222: 70(ivec2) GroupNonUniformIAdd 178 PartitionedReduceNV 220 221 - 223: 64(ptr) AccessChain 31(data) 217 63 35 - 224: 24(int) CompositeExtract 222 0 - Store 223 224 - 225: 64(ptr) AccessChain 31(data) 217 63 189 - 226: 24(int) CompositeExtract 222 1 - Store 225 226 - 227: 6(int) Load 8(invocation) - 228: 71(ptr) AccessChain 31(data) 33 63 - 229: 25(ivec4) Load 228 - 230: 78(ivec3) VectorShuffle 229 229 0 1 2 - 231: 17(ivec4) Load 19(ballot) - 232: 78(ivec3) GroupNonUniformIAdd 178 PartitionedReduceNV 230 231 - 233: 64(ptr) AccessChain 31(data) 227 63 35 - 234: 24(int) CompositeExtract 232 0 - Store 233 234 - 235: 64(ptr) AccessChain 31(data) 227 63 189 - 236: 24(int) CompositeExtract 232 1 - Store 235 236 - 237: 64(ptr) AccessChain 31(data) 227 63 202 - 238: 24(int) CompositeExtract 232 2 - Store 237 238 - 239: 6(int) Load 8(invocation) - 240: 71(ptr) AccessChain 31(data) 115 63 - 241: 25(ivec4) Load 240 - 242: 17(ivec4) Load 19(ballot) - 243: 25(ivec4) GroupNonUniformIAdd 178 PartitionedReduceNV 241 242 - 244: 71(ptr) AccessChain 31(data) 239 63 - Store 244 243 - 245: 6(int) Load 8(invocation) - 246: 90(ptr) AccessChain 31(data) 34 33 35 - 247: 6(int) Load 246 - 248: 17(ivec4) Load 19(ballot) - 249: 6(int) GroupNonUniformIAdd 178 PartitionedReduceNV 247 248 - 250: 90(ptr) AccessChain 31(data) 245 33 35 - Store 250 249 - 251: 6(int) Load 8(invocation) - 252: 40(ptr) AccessChain 31(data) 63 33 - 253: 17(ivec4) Load 252 - 254: 96(ivec2) VectorShuffle 253 253 0 1 - 255: 17(ivec4) Load 19(ballot) - 256: 96(ivec2) GroupNonUniformIAdd 178 PartitionedReduceNV 254 255 - 257: 90(ptr) AccessChain 31(data) 251 33 35 - 258: 6(int) CompositeExtract 256 0 - Store 257 258 - 259: 90(ptr) AccessChain 31(data) 251 33 189 - 260: 6(int) CompositeExtract 256 1 - Store 259 260 - 261: 6(int) Load 8(invocation) - 262: 40(ptr) AccessChain 31(data) 33 33 - 263: 17(ivec4) Load 262 - 264: 103(ivec3) VectorShuffle 263 263 0 1 2 - 265: 17(ivec4) Load 19(ballot) - 266: 103(ivec3) GroupNonUniformIAdd 178 PartitionedReduceNV 264 265 - 267: 90(ptr) AccessChain 31(data) 261 33 35 - 268: 6(int) CompositeExtract 266 0 - Store 267 268 - 269: 90(ptr) AccessChain 31(data) 261 33 189 - 270: 6(int) CompositeExtract 266 1 - Store 269 270 - 271: 90(ptr) AccessChain 31(data) 261 33 202 - 272: 6(int) CompositeExtract 266 2 - Store 271 272 - 273: 6(int) Load 8(invocation) - 274: 40(ptr) AccessChain 31(data) 115 33 - 275: 17(ivec4) Load 274 - 276: 17(ivec4) Load 19(ballot) - 277: 17(ivec4) GroupNonUniformIAdd 178 PartitionedReduceNV 275 276 - 278: 40(ptr) AccessChain 31(data) 273 33 - Store 278 277 - 279: 6(int) Load 8(invocation) - 280: 116(ptr) AccessChain 31(data) 34 115 35 - 281:26(float64_t) Load 280 - 282: 17(ivec4) Load 19(ballot) - 283:26(float64_t) GroupNonUniformFAdd 178 PartitionedReduceNV 281 282 - 284: 116(ptr) AccessChain 31(data) 279 115 35 - Store 284 283 - 285: 6(int) Load 8(invocation) - 286: 123(ptr) AccessChain 31(data) 63 115 - 287: 27(f64vec4) Load 286 - 288:122(f64vec2) VectorShuffle 287 287 0 1 - 289: 17(ivec4) Load 19(ballot) - 290:122(f64vec2) GroupNonUniformFAdd 178 PartitionedReduceNV 288 289 - 291: 116(ptr) AccessChain 31(data) 285 115 35 - 292:26(float64_t) CompositeExtract 290 0 - Store 291 292 - 293: 116(ptr) AccessChain 31(data) 285 115 189 - 294:26(float64_t) CompositeExtract 290 1 - Store 293 294 - 295: 6(int) Load 8(invocation) - 296: 123(ptr) AccessChain 31(data) 33 115 - 297: 27(f64vec4) Load 296 - 298:130(f64vec3) VectorShuffle 297 297 0 1 2 - 299: 17(ivec4) Load 19(ballot) - 300:130(f64vec3) GroupNonUniformFAdd 178 PartitionedReduceNV 298 299 - 301: 116(ptr) AccessChain 31(data) 295 115 35 - 302:26(float64_t) CompositeExtract 300 0 - Store 301 302 - 303: 116(ptr) AccessChain 31(data) 295 115 189 - 304:26(float64_t) CompositeExtract 300 1 - Store 303 304 - 305: 116(ptr) AccessChain 31(data) 295 115 202 - 306:26(float64_t) CompositeExtract 300 2 - Store 305 306 - 307: 6(int) Load 8(invocation) - 308: 123(ptr) AccessChain 31(data) 115 115 - 309: 27(f64vec4) Load 308 - 310: 17(ivec4) Load 19(ballot) - 311: 27(f64vec4) GroupNonUniformFAdd 178 PartitionedReduceNV 309 310 - 312: 123(ptr) AccessChain 31(data) 307 115 - Store 312 311 - 313: 6(int) Load 8(invocation) - 314: 36(ptr) AccessChain 31(data) 34 34 35 - 315: 22(float) Load 314 - 316: 17(ivec4) Load 19(ballot) - 317: 22(float) GroupNonUniformFMul 178 PartitionedReduceNV 315 316 - 318: 36(ptr) AccessChain 31(data) 313 34 35 - Store 318 317 - 319: 6(int) Load 8(invocation) - 320: 44(ptr) AccessChain 31(data) 63 34 - 321: 23(fvec4) Load 320 - 322: 43(fvec2) VectorShuffle 321 321 0 1 - 323: 17(ivec4) Load 19(ballot) - 324: 43(fvec2) GroupNonUniformFMul 178 PartitionedReduceNV 322 323 - 325: 36(ptr) AccessChain 31(data) 319 34 35 - 326: 22(float) CompositeExtract 324 0 - Store 325 326 - 327: 36(ptr) AccessChain 31(data) 319 34 189 - 328: 22(float) CompositeExtract 324 1 - Store 327 328 - 329: 6(int) Load 8(invocation) - 330: 44(ptr) AccessChain 31(data) 33 34 - 331: 23(fvec4) Load 330 - 332: 51(fvec3) VectorShuffle 331 331 0 1 2 - 333: 17(ivec4) Load 19(ballot) - 334: 51(fvec3) GroupNonUniformFMul 178 PartitionedReduceNV 332 333 - 335: 36(ptr) AccessChain 31(data) 329 34 35 - 336: 22(float) CompositeExtract 334 0 - Store 335 336 - 337: 36(ptr) AccessChain 31(data) 329 34 189 - 338: 22(float) CompositeExtract 334 1 - Store 337 338 - 339: 36(ptr) AccessChain 31(data) 329 34 202 - 340: 22(float) CompositeExtract 334 2 - Store 339 340 - 341: 6(int) Load 8(invocation) - 342: 44(ptr) AccessChain 31(data) 115 34 - 343: 23(fvec4) Load 342 - 344: 17(ivec4) Load 19(ballot) - 345: 23(fvec4) GroupNonUniformFMul 178 PartitionedReduceNV 343 344 - 346: 44(ptr) AccessChain 31(data) 341 34 - Store 346 345 - 347: 6(int) Load 8(invocation) - 348: 64(ptr) AccessChain 31(data) 34 63 35 - 349: 24(int) Load 348 - 350: 17(ivec4) Load 19(ballot) - 351: 24(int) GroupNonUniformIMul 178 PartitionedReduceNV 349 350 - 352: 64(ptr) AccessChain 31(data) 347 63 35 - Store 352 351 - 353: 6(int) Load 8(invocation) - 354: 71(ptr) AccessChain 31(data) 63 63 - 355: 25(ivec4) Load 354 - 356: 70(ivec2) VectorShuffle 355 355 0 1 - 357: 17(ivec4) Load 19(ballot) - 358: 70(ivec2) GroupNonUniformIMul 178 PartitionedReduceNV 356 357 - 359: 64(ptr) AccessChain 31(data) 353 63 35 - 360: 24(int) CompositeExtract 358 0 - Store 359 360 - 361: 64(ptr) AccessChain 31(data) 353 63 189 - 362: 24(int) CompositeExtract 358 1 - Store 361 362 - 363: 6(int) Load 8(invocation) - 364: 71(ptr) AccessChain 31(data) 33 63 - 365: 25(ivec4) Load 364 - 366: 78(ivec3) VectorShuffle 365 365 0 1 2 - 367: 17(ivec4) Load 19(ballot) - 368: 78(ivec3) GroupNonUniformIMul 178 PartitionedReduceNV 366 367 - 369: 64(ptr) AccessChain 31(data) 363 63 35 - 370: 24(int) CompositeExtract 368 0 - Store 369 370 - 371: 64(ptr) AccessChain 31(data) 363 63 189 - 372: 24(int) CompositeExtract 368 1 - Store 371 372 - 373: 64(ptr) AccessChain 31(data) 363 63 202 - 374: 24(int) CompositeExtract 368 2 - Store 373 374 - 375: 6(int) Load 8(invocation) - 376: 71(ptr) AccessChain 31(data) 115 63 - 377: 25(ivec4) Load 376 - 378: 17(ivec4) Load 19(ballot) - 379: 25(ivec4) GroupNonUniformIMul 178 PartitionedReduceNV 377 378 - 380: 71(ptr) AccessChain 31(data) 375 63 - Store 380 379 - 381: 6(int) Load 8(invocation) - 382: 90(ptr) AccessChain 31(data) 34 33 35 - 383: 6(int) Load 382 - 384: 17(ivec4) Load 19(ballot) - 385: 6(int) GroupNonUniformIMul 178 PartitionedReduceNV 383 384 - 386: 90(ptr) AccessChain 31(data) 381 33 35 - Store 386 385 - 387: 6(int) Load 8(invocation) - 388: 40(ptr) AccessChain 31(data) 63 33 - 389: 17(ivec4) Load 388 - 390: 96(ivec2) VectorShuffle 389 389 0 1 - 391: 17(ivec4) Load 19(ballot) - 392: 96(ivec2) GroupNonUniformIMul 178 PartitionedReduceNV 390 391 - 393: 90(ptr) AccessChain 31(data) 387 33 35 - 394: 6(int) CompositeExtract 392 0 - Store 393 394 - 395: 90(ptr) AccessChain 31(data) 387 33 189 - 396: 6(int) CompositeExtract 392 1 - Store 395 396 - 397: 6(int) Load 8(invocation) - 398: 40(ptr) AccessChain 31(data) 33 33 - 399: 17(ivec4) Load 398 - 400: 103(ivec3) VectorShuffle 399 399 0 1 2 - 401: 17(ivec4) Load 19(ballot) - 402: 103(ivec3) GroupNonUniformIMul 178 PartitionedReduceNV 400 401 - 403: 90(ptr) AccessChain 31(data) 397 33 35 - 404: 6(int) CompositeExtract 402 0 - Store 403 404 - 405: 90(ptr) AccessChain 31(data) 397 33 189 - 406: 6(int) CompositeExtract 402 1 - Store 405 406 - 407: 90(ptr) AccessChain 31(data) 397 33 202 - 408: 6(int) CompositeExtract 402 2 - Store 407 408 - 409: 6(int) Load 8(invocation) - 410: 40(ptr) AccessChain 31(data) 115 33 - 411: 17(ivec4) Load 410 - 412: 17(ivec4) Load 19(ballot) - 413: 17(ivec4) GroupNonUniformIMul 178 PartitionedReduceNV 411 412 - 414: 40(ptr) AccessChain 31(data) 409 33 - Store 414 413 - 415: 6(int) Load 8(invocation) - 416: 116(ptr) AccessChain 31(data) 34 115 35 - 417:26(float64_t) Load 416 - 418: 17(ivec4) Load 19(ballot) - 419:26(float64_t) GroupNonUniformFMul 178 PartitionedReduceNV 417 418 - 420: 116(ptr) AccessChain 31(data) 415 115 35 - Store 420 419 - 421: 6(int) Load 8(invocation) - 422: 123(ptr) AccessChain 31(data) 63 115 - 423: 27(f64vec4) Load 422 - 424:122(f64vec2) VectorShuffle 423 423 0 1 - 425: 17(ivec4) Load 19(ballot) - 426:122(f64vec2) GroupNonUniformFMul 178 PartitionedReduceNV 424 425 - 427: 116(ptr) AccessChain 31(data) 421 115 35 - 428:26(float64_t) CompositeExtract 426 0 - Store 427 428 - 429: 116(ptr) AccessChain 31(data) 421 115 189 - 430:26(float64_t) CompositeExtract 426 1 - Store 429 430 - 431: 6(int) Load 8(invocation) - 432: 123(ptr) AccessChain 31(data) 33 115 - 433: 27(f64vec4) Load 432 - 434:130(f64vec3) VectorShuffle 433 433 0 1 2 - 435: 17(ivec4) Load 19(ballot) - 436:130(f64vec3) GroupNonUniformFMul 178 PartitionedReduceNV 434 435 - 437: 116(ptr) AccessChain 31(data) 431 115 35 - 438:26(float64_t) CompositeExtract 436 0 - Store 437 438 - 439: 116(ptr) AccessChain 31(data) 431 115 189 - 440:26(float64_t) CompositeExtract 436 1 - Store 439 440 - 441: 116(ptr) AccessChain 31(data) 431 115 202 - 442:26(float64_t) CompositeExtract 436 2 - Store 441 442 - 443: 6(int) Load 8(invocation) - 444: 123(ptr) AccessChain 31(data) 115 115 - 445: 27(f64vec4) Load 444 - 446: 17(ivec4) Load 19(ballot) - 447: 27(f64vec4) GroupNonUniformFMul 178 PartitionedReduceNV 445 446 - 448: 123(ptr) AccessChain 31(data) 443 115 - Store 448 447 - 449: 6(int) Load 8(invocation) - 450: 36(ptr) AccessChain 31(data) 34 34 35 - 451: 22(float) Load 450 - 452: 17(ivec4) Load 19(ballot) - 453: 22(float) GroupNonUniformFMin 178 PartitionedReduceNV 451 452 - 454: 36(ptr) AccessChain 31(data) 449 34 35 - Store 454 453 - 455: 6(int) Load 8(invocation) - 456: 44(ptr) AccessChain 31(data) 63 34 - 457: 23(fvec4) Load 456 - 458: 43(fvec2) VectorShuffle 457 457 0 1 - 459: 17(ivec4) Load 19(ballot) - 460: 43(fvec2) GroupNonUniformFMin 178 PartitionedReduceNV 458 459 - 461: 36(ptr) AccessChain 31(data) 455 34 35 - 462: 22(float) CompositeExtract 460 0 - Store 461 462 - 463: 36(ptr) AccessChain 31(data) 455 34 189 - 464: 22(float) CompositeExtract 460 1 - Store 463 464 - 465: 6(int) Load 8(invocation) - 466: 44(ptr) AccessChain 31(data) 33 34 - 467: 23(fvec4) Load 466 - 468: 51(fvec3) VectorShuffle 467 467 0 1 2 - 469: 17(ivec4) Load 19(ballot) - 470: 51(fvec3) GroupNonUniformFMin 178 PartitionedReduceNV 468 469 - 471: 36(ptr) AccessChain 31(data) 465 34 35 - 472: 22(float) CompositeExtract 470 0 - Store 471 472 - 473: 36(ptr) AccessChain 31(data) 465 34 189 - 474: 22(float) CompositeExtract 470 1 - Store 473 474 - 475: 36(ptr) AccessChain 31(data) 465 34 202 - 476: 22(float) CompositeExtract 470 2 - Store 475 476 - 477: 6(int) Load 8(invocation) - 478: 44(ptr) AccessChain 31(data) 115 34 - 479: 23(fvec4) Load 478 - 480: 17(ivec4) Load 19(ballot) - 481: 23(fvec4) GroupNonUniformFMin 178 PartitionedReduceNV 479 480 - 482: 44(ptr) AccessChain 31(data) 477 34 - Store 482 481 - 483: 6(int) Load 8(invocation) - 484: 64(ptr) AccessChain 31(data) 34 63 35 - 485: 24(int) Load 484 - 486: 17(ivec4) Load 19(ballot) - 487: 24(int) GroupNonUniformSMin 178 PartitionedReduceNV 485 486 - 488: 64(ptr) AccessChain 31(data) 483 63 35 - Store 488 487 - 489: 6(int) Load 8(invocation) - 490: 71(ptr) AccessChain 31(data) 63 63 - 491: 25(ivec4) Load 490 - 492: 70(ivec2) VectorShuffle 491 491 0 1 - 493: 17(ivec4) Load 19(ballot) - 494: 70(ivec2) GroupNonUniformSMin 178 PartitionedReduceNV 492 493 - 495: 64(ptr) AccessChain 31(data) 489 63 35 - 496: 24(int) CompositeExtract 494 0 - Store 495 496 - 497: 64(ptr) AccessChain 31(data) 489 63 189 - 498: 24(int) CompositeExtract 494 1 - Store 497 498 - 499: 6(int) Load 8(invocation) - 500: 71(ptr) AccessChain 31(data) 33 63 - 501: 25(ivec4) Load 500 - 502: 78(ivec3) VectorShuffle 501 501 0 1 2 - 503: 17(ivec4) Load 19(ballot) - 504: 78(ivec3) GroupNonUniformSMin 178 PartitionedReduceNV 502 503 - 505: 64(ptr) AccessChain 31(data) 499 63 35 - 506: 24(int) CompositeExtract 504 0 - Store 505 506 - 507: 64(ptr) AccessChain 31(data) 499 63 189 - 508: 24(int) CompositeExtract 504 1 - Store 507 508 - 509: 64(ptr) AccessChain 31(data) 499 63 202 - 510: 24(int) CompositeExtract 504 2 - Store 509 510 - 511: 6(int) Load 8(invocation) - 512: 71(ptr) AccessChain 31(data) 115 63 - 513: 25(ivec4) Load 512 - 514: 17(ivec4) Load 19(ballot) - 515: 25(ivec4) GroupNonUniformSMin 178 PartitionedReduceNV 513 514 - 516: 71(ptr) AccessChain 31(data) 511 63 - Store 516 515 - 517: 6(int) Load 8(invocation) - 518: 90(ptr) AccessChain 31(data) 34 33 35 - 519: 6(int) Load 518 - 520: 17(ivec4) Load 19(ballot) - 521: 6(int) GroupNonUniformUMin 178 PartitionedReduceNV 519 520 - 522: 90(ptr) AccessChain 31(data) 517 33 35 - Store 522 521 - 523: 6(int) Load 8(invocation) - 524: 40(ptr) AccessChain 31(data) 63 33 - 525: 17(ivec4) Load 524 - 526: 96(ivec2) VectorShuffle 525 525 0 1 - 527: 17(ivec4) Load 19(ballot) - 528: 96(ivec2) GroupNonUniformUMin 178 PartitionedReduceNV 526 527 - 529: 90(ptr) AccessChain 31(data) 523 33 35 - 530: 6(int) CompositeExtract 528 0 - Store 529 530 - 531: 90(ptr) AccessChain 31(data) 523 33 189 - 532: 6(int) CompositeExtract 528 1 - Store 531 532 - 533: 6(int) Load 8(invocation) - 534: 40(ptr) AccessChain 31(data) 33 33 - 535: 17(ivec4) Load 534 - 536: 103(ivec3) VectorShuffle 535 535 0 1 2 - 537: 17(ivec4) Load 19(ballot) - 538: 103(ivec3) GroupNonUniformUMin 178 PartitionedReduceNV 536 537 - 539: 90(ptr) AccessChain 31(data) 533 33 35 - 540: 6(int) CompositeExtract 538 0 - Store 539 540 - 541: 90(ptr) AccessChain 31(data) 533 33 189 - 542: 6(int) CompositeExtract 538 1 - Store 541 542 - 543: 90(ptr) AccessChain 31(data) 533 33 202 - 544: 6(int) CompositeExtract 538 2 - Store 543 544 - 545: 6(int) Load 8(invocation) - 546: 40(ptr) AccessChain 31(data) 115 33 - 547: 17(ivec4) Load 546 - 548: 17(ivec4) Load 19(ballot) - 549: 17(ivec4) GroupNonUniformUMin 178 PartitionedReduceNV 547 548 - 550: 40(ptr) AccessChain 31(data) 545 33 - Store 550 549 - 551: 6(int) Load 8(invocation) - 552: 116(ptr) AccessChain 31(data) 34 115 35 - 553:26(float64_t) Load 552 - 554: 17(ivec4) Load 19(ballot) - 555:26(float64_t) GroupNonUniformFMin 178 PartitionedReduceNV 553 554 - 556: 116(ptr) AccessChain 31(data) 551 115 35 - Store 556 555 - 557: 6(int) Load 8(invocation) - 558: 123(ptr) AccessChain 31(data) 63 115 - 559: 27(f64vec4) Load 558 - 560:122(f64vec2) VectorShuffle 559 559 0 1 - 561: 17(ivec4) Load 19(ballot) - 562:122(f64vec2) GroupNonUniformFMin 178 PartitionedReduceNV 560 561 - 563: 116(ptr) AccessChain 31(data) 557 115 35 - 564:26(float64_t) CompositeExtract 562 0 - Store 563 564 - 565: 116(ptr) AccessChain 31(data) 557 115 189 - 566:26(float64_t) CompositeExtract 562 1 - Store 565 566 - 567: 6(int) Load 8(invocation) - 568: 123(ptr) AccessChain 31(data) 33 115 - 569: 27(f64vec4) Load 568 - 570:130(f64vec3) VectorShuffle 569 569 0 1 2 - 571: 17(ivec4) Load 19(ballot) - 572:130(f64vec3) GroupNonUniformFMin 178 PartitionedReduceNV 570 571 - 573: 116(ptr) AccessChain 31(data) 567 115 35 - 574:26(float64_t) CompositeExtract 572 0 - Store 573 574 - 575: 116(ptr) AccessChain 31(data) 567 115 189 - 576:26(float64_t) CompositeExtract 572 1 - Store 575 576 - 577: 116(ptr) AccessChain 31(data) 567 115 202 - 578:26(float64_t) CompositeExtract 572 2 - Store 577 578 - 579: 6(int) Load 8(invocation) - 580: 123(ptr) AccessChain 31(data) 115 115 - 581: 27(f64vec4) Load 580 - 582: 17(ivec4) Load 19(ballot) - 583: 27(f64vec4) GroupNonUniformFMin 178 PartitionedReduceNV 581 582 - 584: 123(ptr) AccessChain 31(data) 579 115 - Store 584 583 - 585: 6(int) Load 8(invocation) - 586: 36(ptr) AccessChain 31(data) 34 34 35 - 587: 22(float) Load 586 - 588: 17(ivec4) Load 19(ballot) - 589: 22(float) GroupNonUniformFMax 178 PartitionedReduceNV 587 588 - 590: 36(ptr) AccessChain 31(data) 585 34 35 - Store 590 589 - 591: 6(int) Load 8(invocation) - 592: 44(ptr) AccessChain 31(data) 63 34 - 593: 23(fvec4) Load 592 - 594: 43(fvec2) VectorShuffle 593 593 0 1 - 595: 17(ivec4) Load 19(ballot) - 596: 43(fvec2) GroupNonUniformFMax 178 PartitionedReduceNV 594 595 - 597: 36(ptr) AccessChain 31(data) 591 34 35 - 598: 22(float) CompositeExtract 596 0 - Store 597 598 - 599: 36(ptr) AccessChain 31(data) 591 34 189 - 600: 22(float) CompositeExtract 596 1 - Store 599 600 - 601: 6(int) Load 8(invocation) - 602: 44(ptr) AccessChain 31(data) 33 34 - 603: 23(fvec4) Load 602 - 604: 51(fvec3) VectorShuffle 603 603 0 1 2 - 605: 17(ivec4) Load 19(ballot) - 606: 51(fvec3) GroupNonUniformFMax 178 PartitionedReduceNV 604 605 - 607: 36(ptr) AccessChain 31(data) 601 34 35 - 608: 22(float) CompositeExtract 606 0 - Store 607 608 - 609: 36(ptr) AccessChain 31(data) 601 34 189 - 610: 22(float) CompositeExtract 606 1 - Store 609 610 - 611: 36(ptr) AccessChain 31(data) 601 34 202 - 612: 22(float) CompositeExtract 606 2 - Store 611 612 - 613: 6(int) Load 8(invocation) - 614: 44(ptr) AccessChain 31(data) 115 34 - 615: 23(fvec4) Load 614 - 616: 17(ivec4) Load 19(ballot) - 617: 23(fvec4) GroupNonUniformFMax 178 PartitionedReduceNV 615 616 - 618: 44(ptr) AccessChain 31(data) 613 34 - Store 618 617 - 619: 6(int) Load 8(invocation) - 620: 64(ptr) AccessChain 31(data) 34 63 35 - 621: 24(int) Load 620 - 622: 17(ivec4) Load 19(ballot) - 623: 24(int) GroupNonUniformSMax 178 PartitionedReduceNV 621 622 - 624: 64(ptr) AccessChain 31(data) 619 63 35 - Store 624 623 - 625: 6(int) Load 8(invocation) - 626: 71(ptr) AccessChain 31(data) 63 63 - 627: 25(ivec4) Load 626 - 628: 70(ivec2) VectorShuffle 627 627 0 1 - 629: 17(ivec4) Load 19(ballot) - 630: 70(ivec2) GroupNonUniformSMax 178 PartitionedReduceNV 628 629 - 631: 64(ptr) AccessChain 31(data) 625 63 35 - 632: 24(int) CompositeExtract 630 0 - Store 631 632 - 633: 64(ptr) AccessChain 31(data) 625 63 189 - 634: 24(int) CompositeExtract 630 1 - Store 633 634 - 635: 6(int) Load 8(invocation) - 636: 71(ptr) AccessChain 31(data) 33 63 - 637: 25(ivec4) Load 636 - 638: 78(ivec3) VectorShuffle 637 637 0 1 2 - 639: 17(ivec4) Load 19(ballot) - 640: 78(ivec3) GroupNonUniformSMax 178 PartitionedReduceNV 638 639 - 641: 64(ptr) AccessChain 31(data) 635 63 35 - 642: 24(int) CompositeExtract 640 0 - Store 641 642 - 643: 64(ptr) AccessChain 31(data) 635 63 189 - 644: 24(int) CompositeExtract 640 1 - Store 643 644 - 645: 64(ptr) AccessChain 31(data) 635 63 202 - 646: 24(int) CompositeExtract 640 2 - Store 645 646 - 647: 6(int) Load 8(invocation) - 648: 71(ptr) AccessChain 31(data) 115 63 - 649: 25(ivec4) Load 648 - 650: 17(ivec4) Load 19(ballot) - 651: 25(ivec4) GroupNonUniformSMax 178 PartitionedReduceNV 649 650 - 652: 71(ptr) AccessChain 31(data) 647 63 - Store 652 651 - 653: 6(int) Load 8(invocation) - 654: 90(ptr) AccessChain 31(data) 34 33 35 - 655: 6(int) Load 654 - 656: 17(ivec4) Load 19(ballot) - 657: 6(int) GroupNonUniformUMax 178 PartitionedReduceNV 655 656 - 658: 90(ptr) AccessChain 31(data) 653 33 35 - Store 658 657 - 659: 6(int) Load 8(invocation) - 660: 40(ptr) AccessChain 31(data) 63 33 - 661: 17(ivec4) Load 660 - 662: 96(ivec2) VectorShuffle 661 661 0 1 - 663: 17(ivec4) Load 19(ballot) - 664: 96(ivec2) GroupNonUniformUMax 178 PartitionedReduceNV 662 663 - 665: 90(ptr) AccessChain 31(data) 659 33 35 - 666: 6(int) CompositeExtract 664 0 - Store 665 666 - 667: 90(ptr) AccessChain 31(data) 659 33 189 - 668: 6(int) CompositeExtract 664 1 - Store 667 668 - 669: 6(int) Load 8(invocation) - 670: 40(ptr) AccessChain 31(data) 33 33 - 671: 17(ivec4) Load 670 - 672: 103(ivec3) VectorShuffle 671 671 0 1 2 - 673: 17(ivec4) Load 19(ballot) - 674: 103(ivec3) GroupNonUniformUMax 178 PartitionedReduceNV 672 673 - 675: 90(ptr) AccessChain 31(data) 669 33 35 - 676: 6(int) CompositeExtract 674 0 - Store 675 676 - 677: 90(ptr) AccessChain 31(data) 669 33 189 - 678: 6(int) CompositeExtract 674 1 - Store 677 678 - 679: 90(ptr) AccessChain 31(data) 669 33 202 - 680: 6(int) CompositeExtract 674 2 - Store 679 680 - 681: 6(int) Load 8(invocation) - 682: 40(ptr) AccessChain 31(data) 115 33 - 683: 17(ivec4) Load 682 - 684: 17(ivec4) Load 19(ballot) - 685: 17(ivec4) GroupNonUniformUMax 178 PartitionedReduceNV 683 684 - 686: 40(ptr) AccessChain 31(data) 681 33 - Store 686 685 - 687: 6(int) Load 8(invocation) - 688: 116(ptr) AccessChain 31(data) 34 115 35 - 689:26(float64_t) Load 688 - 690: 17(ivec4) Load 19(ballot) - 691:26(float64_t) GroupNonUniformFMax 178 PartitionedReduceNV 689 690 - 692: 116(ptr) AccessChain 31(data) 687 115 35 - Store 692 691 - 693: 6(int) Load 8(invocation) - 694: 123(ptr) AccessChain 31(data) 63 115 - 695: 27(f64vec4) Load 694 - 696:122(f64vec2) VectorShuffle 695 695 0 1 - 697: 17(ivec4) Load 19(ballot) - 698:122(f64vec2) GroupNonUniformFMax 178 PartitionedReduceNV 696 697 - 699: 116(ptr) AccessChain 31(data) 693 115 35 - 700:26(float64_t) CompositeExtract 698 0 - Store 699 700 - 701: 116(ptr) AccessChain 31(data) 693 115 189 - 702:26(float64_t) CompositeExtract 698 1 - Store 701 702 - 703: 6(int) Load 8(invocation) - 704: 123(ptr) AccessChain 31(data) 33 115 - 705: 27(f64vec4) Load 704 - 706:130(f64vec3) VectorShuffle 705 705 0 1 2 - 707: 17(ivec4) Load 19(ballot) - 708:130(f64vec3) GroupNonUniformFMax 178 PartitionedReduceNV 706 707 - 709: 116(ptr) AccessChain 31(data) 703 115 35 - 710:26(float64_t) CompositeExtract 708 0 - Store 709 710 - 711: 116(ptr) AccessChain 31(data) 703 115 189 - 712:26(float64_t) CompositeExtract 708 1 - Store 711 712 - 713: 116(ptr) AccessChain 31(data) 703 115 202 - 714:26(float64_t) CompositeExtract 708 2 - Store 713 714 - 715: 6(int) Load 8(invocation) - 716: 123(ptr) AccessChain 31(data) 115 115 - 717: 27(f64vec4) Load 716 - 718: 17(ivec4) Load 19(ballot) - 719: 27(f64vec4) GroupNonUniformFMax 178 PartitionedReduceNV 717 718 - 720: 123(ptr) AccessChain 31(data) 715 115 - Store 720 719 - 721: 6(int) Load 8(invocation) - 722: 64(ptr) AccessChain 31(data) 34 63 35 - 723: 24(int) Load 722 - 724: 17(ivec4) Load 19(ballot) - 725: 24(int) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 723 724 - 726: 64(ptr) AccessChain 31(data) 721 63 35 - Store 726 725 - 727: 6(int) Load 8(invocation) - 728: 71(ptr) AccessChain 31(data) 63 63 - 729: 25(ivec4) Load 728 - 730: 70(ivec2) VectorShuffle 729 729 0 1 - 731: 17(ivec4) Load 19(ballot) - 732: 70(ivec2) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 730 731 - 733: 64(ptr) AccessChain 31(data) 727 63 35 - 734: 24(int) CompositeExtract 732 0 - Store 733 734 - 735: 64(ptr) AccessChain 31(data) 727 63 189 - 736: 24(int) CompositeExtract 732 1 - Store 735 736 - 737: 6(int) Load 8(invocation) - 738: 71(ptr) AccessChain 31(data) 33 63 - 739: 25(ivec4) Load 738 - 740: 78(ivec3) VectorShuffle 739 739 0 1 2 - 741: 17(ivec4) Load 19(ballot) - 742: 78(ivec3) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 740 741 - 743: 64(ptr) AccessChain 31(data) 737 63 35 - 744: 24(int) CompositeExtract 742 0 - Store 743 744 - 745: 64(ptr) AccessChain 31(data) 737 63 189 - 746: 24(int) CompositeExtract 742 1 - Store 745 746 - 747: 64(ptr) AccessChain 31(data) 737 63 202 - 748: 24(int) CompositeExtract 742 2 - Store 747 748 - 749: 6(int) Load 8(invocation) - 750: 71(ptr) AccessChain 31(data) 115 63 - 751: 25(ivec4) Load 750 - 752: 17(ivec4) Load 19(ballot) - 753: 25(ivec4) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 751 752 - 754: 71(ptr) AccessChain 31(data) 749 63 - Store 754 753 - 755: 6(int) Load 8(invocation) - 756: 90(ptr) AccessChain 31(data) 34 33 35 - 757: 6(int) Load 756 - 758: 17(ivec4) Load 19(ballot) - 759: 6(int) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 757 758 - 760: 90(ptr) AccessChain 31(data) 755 33 35 - Store 760 759 - 761: 6(int) Load 8(invocation) - 762: 40(ptr) AccessChain 31(data) 63 33 - 763: 17(ivec4) Load 762 - 764: 96(ivec2) VectorShuffle 763 763 0 1 - 765: 17(ivec4) Load 19(ballot) - 766: 96(ivec2) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 764 765 - 767: 90(ptr) AccessChain 31(data) 761 33 35 - 768: 6(int) CompositeExtract 766 0 - Store 767 768 - 769: 90(ptr) AccessChain 31(data) 761 33 189 - 770: 6(int) CompositeExtract 766 1 - Store 769 770 - 771: 6(int) Load 8(invocation) - 772: 40(ptr) AccessChain 31(data) 33 33 - 773: 17(ivec4) Load 772 - 774: 103(ivec3) VectorShuffle 773 773 0 1 2 - 775: 17(ivec4) Load 19(ballot) - 776: 103(ivec3) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 774 775 - 777: 90(ptr) AccessChain 31(data) 771 33 35 - 778: 6(int) CompositeExtract 776 0 - Store 777 778 - 779: 90(ptr) AccessChain 31(data) 771 33 189 - 780: 6(int) CompositeExtract 776 1 - Store 779 780 - 781: 90(ptr) AccessChain 31(data) 771 33 202 - 782: 6(int) CompositeExtract 776 2 - Store 781 782 - 783: 6(int) Load 8(invocation) - 784: 40(ptr) AccessChain 31(data) 115 33 - 785: 17(ivec4) Load 784 - 786: 17(ivec4) Load 19(ballot) - 787: 17(ivec4) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 785 786 - 788: 40(ptr) AccessChain 31(data) 783 33 - Store 788 787 - 789: 6(int) Load 8(invocation) - 790: 64(ptr) AccessChain 31(data) 34 63 35 - 791: 24(int) Load 790 - 792: 144(bool) SLessThan 791 34 - 793: 17(ivec4) Load 19(ballot) - 794: 144(bool) GroupNonUniformLogicalAnd 178 PartitionedReduceNV 792 793 - 795: 24(int) Select 794 63 34 - 796: 64(ptr) AccessChain 31(data) 789 63 35 - Store 796 795 - 797: 6(int) Load 8(invocation) - 798: 71(ptr) AccessChain 31(data) 63 63 - 799: 25(ivec4) Load 798 - 800: 70(ivec2) VectorShuffle 799 799 0 1 - 802: 152(bvec2) SLessThan 800 801 - 803: 17(ivec4) Load 19(ballot) - 804: 152(bvec2) GroupNonUniformLogicalAnd 178 PartitionedReduceNV 802 803 - 806: 70(ivec2) Select 804 805 801 - 807: 64(ptr) AccessChain 31(data) 797 63 35 - 808: 24(int) CompositeExtract 806 0 - Store 807 808 - 809: 64(ptr) AccessChain 31(data) 797 63 189 - 810: 24(int) CompositeExtract 806 1 - Store 809 810 - 811: 6(int) Load 8(invocation) - 812: 71(ptr) AccessChain 31(data) 63 63 - 813: 25(ivec4) Load 812 - 814: 78(ivec3) VectorShuffle 813 813 0 1 2 - 816: 161(bvec3) SLessThan 814 815 - 817: 17(ivec4) Load 19(ballot) - 818: 161(bvec3) GroupNonUniformLogicalAnd 178 PartitionedReduceNV 816 817 - 820: 78(ivec3) Select 818 819 815 - 821: 64(ptr) AccessChain 31(data) 811 63 35 - 822: 24(int) CompositeExtract 820 0 - Store 821 822 - 823: 64(ptr) AccessChain 31(data) 811 63 189 - 824: 24(int) CompositeExtract 820 1 - Store 823 824 - 825: 64(ptr) AccessChain 31(data) 811 63 202 - 826: 24(int) CompositeExtract 820 2 - Store 825 826 - 827: 6(int) Load 8(invocation) - 828: 71(ptr) AccessChain 31(data) 63 63 - 829: 25(ivec4) Load 828 - 831: 169(bvec4) SLessThan 829 830 - 832: 17(ivec4) Load 19(ballot) - 833: 169(bvec4) GroupNonUniformLogicalAnd 178 PartitionedReduceNV 831 832 - 835: 25(ivec4) Select 833 834 830 - 836: 71(ptr) AccessChain 31(data) 827 63 - Store 836 835 - 837: 6(int) Load 8(invocation) - 838: 64(ptr) AccessChain 31(data) 34 63 35 - 839: 24(int) Load 838 - 840: 17(ivec4) Load 19(ballot) - 841: 24(int) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 839 840 - 842: 64(ptr) AccessChain 31(data) 837 63 35 - Store 842 841 - 843: 6(int) Load 8(invocation) - 844: 71(ptr) AccessChain 31(data) 63 63 - 845: 25(ivec4) Load 844 - 846: 70(ivec2) VectorShuffle 845 845 0 1 - 847: 17(ivec4) Load 19(ballot) - 848: 70(ivec2) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 846 847 - 849: 64(ptr) AccessChain 31(data) 843 63 35 - 850: 24(int) CompositeExtract 848 0 - Store 849 850 - 851: 64(ptr) AccessChain 31(data) 843 63 189 - 852: 24(int) CompositeExtract 848 1 - Store 851 852 - 853: 6(int) Load 8(invocation) - 854: 71(ptr) AccessChain 31(data) 33 63 - 855: 25(ivec4) Load 854 - 856: 78(ivec3) VectorShuffle 855 855 0 1 2 - 857: 17(ivec4) Load 19(ballot) - 858: 78(ivec3) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 856 857 - 859: 64(ptr) AccessChain 31(data) 853 63 35 - 860: 24(int) CompositeExtract 858 0 - Store 859 860 - 861: 64(ptr) AccessChain 31(data) 853 63 189 - 862: 24(int) CompositeExtract 858 1 - Store 861 862 - 863: 64(ptr) AccessChain 31(data) 853 63 202 - 864: 24(int) CompositeExtract 858 2 - Store 863 864 - 865: 6(int) Load 8(invocation) - 866: 71(ptr) AccessChain 31(data) 115 63 - 867: 25(ivec4) Load 866 - 868: 17(ivec4) Load 19(ballot) - 869: 25(ivec4) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 867 868 - 870: 71(ptr) AccessChain 31(data) 865 63 - Store 870 869 - 871: 6(int) Load 8(invocation) - 872: 90(ptr) AccessChain 31(data) 34 33 35 - 873: 6(int) Load 872 - 874: 17(ivec4) Load 19(ballot) - 875: 6(int) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 873 874 - 876: 90(ptr) AccessChain 31(data) 871 33 35 - Store 876 875 - 877: 6(int) Load 8(invocation) - 878: 40(ptr) AccessChain 31(data) 63 33 - 879: 17(ivec4) Load 878 - 880: 96(ivec2) VectorShuffle 879 879 0 1 - 881: 17(ivec4) Load 19(ballot) - 882: 96(ivec2) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 880 881 - 883: 90(ptr) AccessChain 31(data) 877 33 35 - 884: 6(int) CompositeExtract 882 0 - Store 883 884 - 885: 90(ptr) AccessChain 31(data) 877 33 189 - 886: 6(int) CompositeExtract 882 1 - Store 885 886 - 887: 6(int) Load 8(invocation) - 888: 40(ptr) AccessChain 31(data) 33 33 - 889: 17(ivec4) Load 888 - 890: 103(ivec3) VectorShuffle 889 889 0 1 2 - 891: 17(ivec4) Load 19(ballot) - 892: 103(ivec3) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 890 891 - 893: 90(ptr) AccessChain 31(data) 887 33 35 - 894: 6(int) CompositeExtract 892 0 - Store 893 894 - 895: 90(ptr) AccessChain 31(data) 887 33 189 - 896: 6(int) CompositeExtract 892 1 - Store 895 896 - 897: 90(ptr) AccessChain 31(data) 887 33 202 - 898: 6(int) CompositeExtract 892 2 - Store 897 898 - 899: 6(int) Load 8(invocation) - 900: 40(ptr) AccessChain 31(data) 115 33 - 901: 17(ivec4) Load 900 - 902: 17(ivec4) Load 19(ballot) - 903: 17(ivec4) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 901 902 - 904: 40(ptr) AccessChain 31(data) 899 33 - Store 904 903 - 905: 6(int) Load 8(invocation) - 906: 64(ptr) AccessChain 31(data) 34 63 35 - 907: 24(int) Load 906 - 908: 144(bool) SLessThan 907 34 - 909: 17(ivec4) Load 19(ballot) - 910: 144(bool) GroupNonUniformLogicalOr 178 PartitionedReduceNV 908 909 - 911: 24(int) Select 910 63 34 - 912: 64(ptr) AccessChain 31(data) 905 63 35 - Store 912 911 - 913: 6(int) Load 8(invocation) - 914: 71(ptr) AccessChain 31(data) 63 63 - 915: 25(ivec4) Load 914 - 916: 70(ivec2) VectorShuffle 915 915 0 1 - 917: 152(bvec2) SLessThan 916 801 - 918: 17(ivec4) Load 19(ballot) - 919: 152(bvec2) GroupNonUniformLogicalOr 178 PartitionedReduceNV 917 918 - 920: 70(ivec2) Select 919 805 801 - 921: 64(ptr) AccessChain 31(data) 913 63 35 - 922: 24(int) CompositeExtract 920 0 - Store 921 922 - 923: 64(ptr) AccessChain 31(data) 913 63 189 - 924: 24(int) CompositeExtract 920 1 - Store 923 924 - 925: 6(int) Load 8(invocation) - 926: 71(ptr) AccessChain 31(data) 63 63 - 927: 25(ivec4) Load 926 - 928: 78(ivec3) VectorShuffle 927 927 0 1 2 - 929: 161(bvec3) SLessThan 928 815 - 930: 17(ivec4) Load 19(ballot) - 931: 161(bvec3) GroupNonUniformLogicalOr 178 PartitionedReduceNV 929 930 - 932: 78(ivec3) Select 931 819 815 - 933: 64(ptr) AccessChain 31(data) 925 63 35 - 934: 24(int) CompositeExtract 932 0 - Store 933 934 - 935: 64(ptr) AccessChain 31(data) 925 63 189 - 936: 24(int) CompositeExtract 932 1 - Store 935 936 - 937: 64(ptr) AccessChain 31(data) 925 63 202 - 938: 24(int) CompositeExtract 932 2 - Store 937 938 - 939: 6(int) Load 8(invocation) - 940: 71(ptr) AccessChain 31(data) 63 63 - 941: 25(ivec4) Load 940 - 942: 169(bvec4) SLessThan 941 830 - 943: 17(ivec4) Load 19(ballot) - 944: 169(bvec4) GroupNonUniformLogicalOr 178 PartitionedReduceNV 942 943 - 945: 25(ivec4) Select 944 834 830 - 946: 71(ptr) AccessChain 31(data) 939 63 - Store 946 945 - 947: 6(int) Load 8(invocation) - 948: 64(ptr) AccessChain 31(data) 34 63 35 - 949: 24(int) Load 948 - 950: 17(ivec4) Load 19(ballot) - 951: 24(int) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 949 950 - 952: 64(ptr) AccessChain 31(data) 947 63 35 - Store 952 951 - 953: 6(int) Load 8(invocation) - 954: 71(ptr) AccessChain 31(data) 63 63 - 955: 25(ivec4) Load 954 - 956: 70(ivec2) VectorShuffle 955 955 0 1 - 957: 17(ivec4) Load 19(ballot) - 958: 70(ivec2) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 956 957 - 959: 64(ptr) AccessChain 31(data) 953 63 35 - 960: 24(int) CompositeExtract 958 0 - Store 959 960 - 961: 64(ptr) AccessChain 31(data) 953 63 189 - 962: 24(int) CompositeExtract 958 1 - Store 961 962 - 963: 6(int) Load 8(invocation) - 964: 71(ptr) AccessChain 31(data) 33 63 - 965: 25(ivec4) Load 964 - 966: 78(ivec3) VectorShuffle 965 965 0 1 2 - 967: 17(ivec4) Load 19(ballot) - 968: 78(ivec3) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 966 967 - 969: 64(ptr) AccessChain 31(data) 963 63 35 - 970: 24(int) CompositeExtract 968 0 - Store 969 970 - 971: 64(ptr) AccessChain 31(data) 963 63 189 - 972: 24(int) CompositeExtract 968 1 - Store 971 972 - 973: 64(ptr) AccessChain 31(data) 963 63 202 - 974: 24(int) CompositeExtract 968 2 - Store 973 974 - 975: 6(int) Load 8(invocation) - 976: 71(ptr) AccessChain 31(data) 115 63 - 977: 25(ivec4) Load 976 - 978: 17(ivec4) Load 19(ballot) - 979: 25(ivec4) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 977 978 - 980: 71(ptr) AccessChain 31(data) 975 63 - Store 980 979 - 981: 6(int) Load 8(invocation) - 982: 90(ptr) AccessChain 31(data) 34 33 35 - 983: 6(int) Load 982 - 984: 17(ivec4) Load 19(ballot) - 985: 6(int) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 983 984 - 986: 90(ptr) AccessChain 31(data) 981 33 35 - Store 986 985 - 987: 6(int) Load 8(invocation) - 988: 40(ptr) AccessChain 31(data) 63 33 - 989: 17(ivec4) Load 988 - 990: 96(ivec2) VectorShuffle 989 989 0 1 - 991: 17(ivec4) Load 19(ballot) - 992: 96(ivec2) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 990 991 - 993: 90(ptr) AccessChain 31(data) 987 33 35 - 994: 6(int) CompositeExtract 992 0 - Store 993 994 - 995: 90(ptr) AccessChain 31(data) 987 33 189 - 996: 6(int) CompositeExtract 992 1 - Store 995 996 - 997: 6(int) Load 8(invocation) - 998: 40(ptr) AccessChain 31(data) 33 33 - 999: 17(ivec4) Load 998 - 1000: 103(ivec3) VectorShuffle 999 999 0 1 2 - 1001: 17(ivec4) Load 19(ballot) - 1002: 103(ivec3) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 1000 1001 - 1003: 90(ptr) AccessChain 31(data) 997 33 35 - 1004: 6(int) CompositeExtract 1002 0 - Store 1003 1004 - 1005: 90(ptr) AccessChain 31(data) 997 33 189 - 1006: 6(int) CompositeExtract 1002 1 - Store 1005 1006 - 1007: 90(ptr) AccessChain 31(data) 997 33 202 - 1008: 6(int) CompositeExtract 1002 2 - Store 1007 1008 - 1009: 6(int) Load 8(invocation) - 1010: 40(ptr) AccessChain 31(data) 115 33 - 1011: 17(ivec4) Load 1010 - 1012: 17(ivec4) Load 19(ballot) - 1013: 17(ivec4) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 1011 1012 - 1014: 40(ptr) AccessChain 31(data) 1009 33 - Store 1014 1013 - 1015: 6(int) Load 8(invocation) - 1016: 64(ptr) AccessChain 31(data) 34 63 35 - 1017: 24(int) Load 1016 - 1018: 144(bool) SLessThan 1017 34 - 1019: 17(ivec4) Load 19(ballot) - 1020: 144(bool) GroupNonUniformLogicalXor 178 PartitionedReduceNV 1018 1019 - 1021: 24(int) Select 1020 63 34 - 1022: 64(ptr) AccessChain 31(data) 1015 63 35 - Store 1022 1021 - 1023: 6(int) Load 8(invocation) - 1024: 71(ptr) AccessChain 31(data) 63 63 - 1025: 25(ivec4) Load 1024 - 1026: 70(ivec2) VectorShuffle 1025 1025 0 1 - 1027: 152(bvec2) SLessThan 1026 801 - 1028: 17(ivec4) Load 19(ballot) - 1029: 152(bvec2) GroupNonUniformLogicalXor 178 PartitionedReduceNV 1027 1028 - 1030: 70(ivec2) Select 1029 805 801 - 1031: 64(ptr) AccessChain 31(data) 1023 63 35 - 1032: 24(int) CompositeExtract 1030 0 - Store 1031 1032 - 1033: 64(ptr) AccessChain 31(data) 1023 63 189 - 1034: 24(int) CompositeExtract 1030 1 - Store 1033 1034 - 1035: 6(int) Load 8(invocation) - 1036: 71(ptr) AccessChain 31(data) 63 63 - 1037: 25(ivec4) Load 1036 - 1038: 78(ivec3) VectorShuffle 1037 1037 0 1 2 - 1039: 161(bvec3) SLessThan 1038 815 - 1040: 17(ivec4) Load 19(ballot) - 1041: 161(bvec3) GroupNonUniformLogicalXor 178 PartitionedReduceNV 1039 1040 - 1042: 78(ivec3) Select 1041 819 815 - 1043: 64(ptr) AccessChain 31(data) 1035 63 35 - 1044: 24(int) CompositeExtract 1042 0 - Store 1043 1044 - 1045: 64(ptr) AccessChain 31(data) 1035 63 189 - 1046: 24(int) CompositeExtract 1042 1 - Store 1045 1046 - 1047: 64(ptr) AccessChain 31(data) 1035 63 202 - 1048: 24(int) CompositeExtract 1042 2 - Store 1047 1048 - 1049: 6(int) Load 8(invocation) - 1050: 71(ptr) AccessChain 31(data) 63 63 - 1051: 25(ivec4) Load 1050 - 1052: 169(bvec4) SLessThan 1051 830 - 1053: 17(ivec4) Load 19(ballot) - 1054: 169(bvec4) GroupNonUniformLogicalXor 178 PartitionedReduceNV 1052 1053 - 1055: 25(ivec4) Select 1054 834 830 - 1056: 71(ptr) AccessChain 31(data) 1049 63 - Store 1056 1055 - 1057: 6(int) Load 8(invocation) - 1058: 36(ptr) AccessChain 31(data) 34 34 35 - 1059: 22(float) Load 1058 - 1060: 17(ivec4) Load 19(ballot) - 1061: 22(float) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 1059 1060 - 1062: 36(ptr) AccessChain 31(data) 1057 34 35 - Store 1062 1061 - 1063: 6(int) Load 8(invocation) - 1064: 44(ptr) AccessChain 31(data) 63 34 - 1065: 23(fvec4) Load 1064 - 1066: 43(fvec2) VectorShuffle 1065 1065 0 1 - 1067: 17(ivec4) Load 19(ballot) - 1068: 43(fvec2) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 1066 1067 - 1069: 36(ptr) AccessChain 31(data) 1063 34 35 - 1070: 22(float) CompositeExtract 1068 0 - Store 1069 1070 - 1071: 36(ptr) AccessChain 31(data) 1063 34 189 - 1072: 22(float) CompositeExtract 1068 1 - Store 1071 1072 - 1073: 6(int) Load 8(invocation) - 1074: 44(ptr) AccessChain 31(data) 33 34 - 1075: 23(fvec4) Load 1074 - 1076: 51(fvec3) VectorShuffle 1075 1075 0 1 2 - 1077: 17(ivec4) Load 19(ballot) - 1078: 51(fvec3) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 1076 1077 - 1079: 36(ptr) AccessChain 31(data) 1073 34 35 - 1080: 22(float) CompositeExtract 1078 0 - Store 1079 1080 - 1081: 36(ptr) AccessChain 31(data) 1073 34 189 - 1082: 22(float) CompositeExtract 1078 1 - Store 1081 1082 - 1083: 36(ptr) AccessChain 31(data) 1073 34 202 - 1084: 22(float) CompositeExtract 1078 2 - Store 1083 1084 - 1085: 6(int) Load 8(invocation) - 1086: 44(ptr) AccessChain 31(data) 115 34 - 1087: 23(fvec4) Load 1086 - 1088: 17(ivec4) Load 19(ballot) - 1089: 23(fvec4) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 1087 1088 - 1090: 44(ptr) AccessChain 31(data) 1085 34 - Store 1090 1089 - 1091: 6(int) Load 8(invocation) - 1092: 64(ptr) AccessChain 31(data) 34 63 35 - 1093: 24(int) Load 1092 - 1094: 17(ivec4) Load 19(ballot) - 1095: 24(int) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 1093 1094 - 1096: 64(ptr) AccessChain 31(data) 1091 63 35 - Store 1096 1095 - 1097: 6(int) Load 8(invocation) - 1098: 71(ptr) AccessChain 31(data) 63 63 - 1099: 25(ivec4) Load 1098 - 1100: 70(ivec2) VectorShuffle 1099 1099 0 1 - 1101: 17(ivec4) Load 19(ballot) - 1102: 70(ivec2) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 1100 1101 - 1103: 64(ptr) AccessChain 31(data) 1097 63 35 - 1104: 24(int) CompositeExtract 1102 0 - Store 1103 1104 - 1105: 64(ptr) AccessChain 31(data) 1097 63 189 - 1106: 24(int) CompositeExtract 1102 1 - Store 1105 1106 - 1107: 6(int) Load 8(invocation) - 1108: 71(ptr) AccessChain 31(data) 33 63 - 1109: 25(ivec4) Load 1108 - 1110: 78(ivec3) VectorShuffle 1109 1109 0 1 2 - 1111: 17(ivec4) Load 19(ballot) - 1112: 78(ivec3) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 1110 1111 - 1113: 64(ptr) AccessChain 31(data) 1107 63 35 - 1114: 24(int) CompositeExtract 1112 0 - Store 1113 1114 - 1115: 64(ptr) AccessChain 31(data) 1107 63 189 - 1116: 24(int) CompositeExtract 1112 1 - Store 1115 1116 - 1117: 64(ptr) AccessChain 31(data) 1107 63 202 - 1118: 24(int) CompositeExtract 1112 2 - Store 1117 1118 - 1119: 6(int) Load 8(invocation) - 1120: 71(ptr) AccessChain 31(data) 115 63 - 1121: 25(ivec4) Load 1120 - 1122: 17(ivec4) Load 19(ballot) - 1123: 25(ivec4) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 1121 1122 - 1124: 71(ptr) AccessChain 31(data) 1119 63 - Store 1124 1123 - 1125: 6(int) Load 8(invocation) - 1126: 90(ptr) AccessChain 31(data) 34 33 35 - 1127: 6(int) Load 1126 - 1128: 17(ivec4) Load 19(ballot) - 1129: 6(int) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 1127 1128 - 1130: 90(ptr) AccessChain 31(data) 1125 33 35 - Store 1130 1129 - 1131: 6(int) Load 8(invocation) - 1132: 40(ptr) AccessChain 31(data) 63 33 - 1133: 17(ivec4) Load 1132 - 1134: 96(ivec2) VectorShuffle 1133 1133 0 1 - 1135: 17(ivec4) Load 19(ballot) - 1136: 96(ivec2) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 1134 1135 - 1137: 90(ptr) AccessChain 31(data) 1131 33 35 - 1138: 6(int) CompositeExtract 1136 0 - Store 1137 1138 - 1139: 90(ptr) AccessChain 31(data) 1131 33 189 - 1140: 6(int) CompositeExtract 1136 1 - Store 1139 1140 - 1141: 6(int) Load 8(invocation) - 1142: 40(ptr) AccessChain 31(data) 33 33 - 1143: 17(ivec4) Load 1142 - 1144: 103(ivec3) VectorShuffle 1143 1143 0 1 2 - 1145: 17(ivec4) Load 19(ballot) - 1146: 103(ivec3) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 1144 1145 - 1147: 90(ptr) AccessChain 31(data) 1141 33 35 - 1148: 6(int) CompositeExtract 1146 0 - Store 1147 1148 - 1149: 90(ptr) AccessChain 31(data) 1141 33 189 - 1150: 6(int) CompositeExtract 1146 1 - Store 1149 1150 - 1151: 90(ptr) AccessChain 31(data) 1141 33 202 - 1152: 6(int) CompositeExtract 1146 2 - Store 1151 1152 - 1153: 6(int) Load 8(invocation) - 1154: 40(ptr) AccessChain 31(data) 115 33 - 1155: 17(ivec4) Load 1154 - 1156: 17(ivec4) Load 19(ballot) - 1157: 17(ivec4) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 1155 1156 - 1158: 40(ptr) AccessChain 31(data) 1153 33 - Store 1158 1157 - 1159: 6(int) Load 8(invocation) - 1160: 116(ptr) AccessChain 31(data) 34 115 35 - 1161:26(float64_t) Load 1160 - 1162: 17(ivec4) Load 19(ballot) - 1163:26(float64_t) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 1161 1162 - 1164: 116(ptr) AccessChain 31(data) 1159 115 35 - Store 1164 1163 - 1165: 6(int) Load 8(invocation) - 1166: 123(ptr) AccessChain 31(data) 63 115 - 1167: 27(f64vec4) Load 1166 - 1168:122(f64vec2) VectorShuffle 1167 1167 0 1 - 1169: 17(ivec4) Load 19(ballot) - 1170:122(f64vec2) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 1168 1169 - 1171: 116(ptr) AccessChain 31(data) 1165 115 35 - 1172:26(float64_t) CompositeExtract 1170 0 - Store 1171 1172 - 1173: 116(ptr) AccessChain 31(data) 1165 115 189 - 1174:26(float64_t) CompositeExtract 1170 1 - Store 1173 1174 - 1175: 6(int) Load 8(invocation) - 1176: 123(ptr) AccessChain 31(data) 33 115 - 1177: 27(f64vec4) Load 1176 - 1178:130(f64vec3) VectorShuffle 1177 1177 0 1 2 - 1179: 17(ivec4) Load 19(ballot) - 1180:130(f64vec3) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 1178 1179 - 1181: 116(ptr) AccessChain 31(data) 1175 115 35 - 1182:26(float64_t) CompositeExtract 1180 0 - Store 1181 1182 - 1183: 116(ptr) AccessChain 31(data) 1175 115 189 - 1184:26(float64_t) CompositeExtract 1180 1 - Store 1183 1184 - 1185: 116(ptr) AccessChain 31(data) 1175 115 202 - 1186:26(float64_t) CompositeExtract 1180 2 - Store 1185 1186 - 1187: 6(int) Load 8(invocation) - 1188: 123(ptr) AccessChain 31(data) 115 115 - 1189: 27(f64vec4) Load 1188 - 1190: 17(ivec4) Load 19(ballot) - 1191: 27(f64vec4) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 1189 1190 - 1192: 123(ptr) AccessChain 31(data) 1187 115 - Store 1192 1191 - 1193: 6(int) Load 8(invocation) - 1194: 36(ptr) AccessChain 31(data) 34 34 35 - 1195: 22(float) Load 1194 - 1196: 17(ivec4) Load 19(ballot) - 1197: 22(float) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1195 1196 - 1198: 36(ptr) AccessChain 31(data) 1193 34 35 - Store 1198 1197 - 1199: 6(int) Load 8(invocation) - 1200: 44(ptr) AccessChain 31(data) 63 34 - 1201: 23(fvec4) Load 1200 - 1202: 43(fvec2) VectorShuffle 1201 1201 0 1 - 1203: 17(ivec4) Load 19(ballot) - 1204: 43(fvec2) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1202 1203 - 1205: 36(ptr) AccessChain 31(data) 1199 34 35 - 1206: 22(float) CompositeExtract 1204 0 - Store 1205 1206 - 1207: 36(ptr) AccessChain 31(data) 1199 34 189 - 1208: 22(float) CompositeExtract 1204 1 - Store 1207 1208 - 1209: 6(int) Load 8(invocation) - 1210: 44(ptr) AccessChain 31(data) 33 34 - 1211: 23(fvec4) Load 1210 - 1212: 51(fvec3) VectorShuffle 1211 1211 0 1 2 - 1213: 17(ivec4) Load 19(ballot) - 1214: 51(fvec3) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1212 1213 - 1215: 36(ptr) AccessChain 31(data) 1209 34 35 - 1216: 22(float) CompositeExtract 1214 0 - Store 1215 1216 - 1217: 36(ptr) AccessChain 31(data) 1209 34 189 - 1218: 22(float) CompositeExtract 1214 1 - Store 1217 1218 - 1219: 36(ptr) AccessChain 31(data) 1209 34 202 - 1220: 22(float) CompositeExtract 1214 2 - Store 1219 1220 - 1221: 6(int) Load 8(invocation) - 1222: 44(ptr) AccessChain 31(data) 115 34 - 1223: 23(fvec4) Load 1222 - 1224: 17(ivec4) Load 19(ballot) - 1225: 23(fvec4) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1223 1224 - 1226: 44(ptr) AccessChain 31(data) 1221 34 - Store 1226 1225 - 1227: 6(int) Load 8(invocation) - 1228: 64(ptr) AccessChain 31(data) 34 63 35 - 1229: 24(int) Load 1228 - 1230: 17(ivec4) Load 19(ballot) - 1231: 24(int) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1229 1230 - 1232: 64(ptr) AccessChain 31(data) 1227 63 35 - Store 1232 1231 - 1233: 6(int) Load 8(invocation) - 1234: 71(ptr) AccessChain 31(data) 63 63 - 1235: 25(ivec4) Load 1234 - 1236: 70(ivec2) VectorShuffle 1235 1235 0 1 - 1237: 17(ivec4) Load 19(ballot) - 1238: 70(ivec2) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1236 1237 - 1239: 64(ptr) AccessChain 31(data) 1233 63 35 - 1240: 24(int) CompositeExtract 1238 0 - Store 1239 1240 - 1241: 64(ptr) AccessChain 31(data) 1233 63 189 - 1242: 24(int) CompositeExtract 1238 1 - Store 1241 1242 - 1243: 6(int) Load 8(invocation) - 1244: 71(ptr) AccessChain 31(data) 33 63 - 1245: 25(ivec4) Load 1244 - 1246: 78(ivec3) VectorShuffle 1245 1245 0 1 2 - 1247: 17(ivec4) Load 19(ballot) - 1248: 78(ivec3) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1246 1247 - 1249: 64(ptr) AccessChain 31(data) 1243 63 35 - 1250: 24(int) CompositeExtract 1248 0 - Store 1249 1250 - 1251: 64(ptr) AccessChain 31(data) 1243 63 189 - 1252: 24(int) CompositeExtract 1248 1 - Store 1251 1252 - 1253: 64(ptr) AccessChain 31(data) 1243 63 202 - 1254: 24(int) CompositeExtract 1248 2 - Store 1253 1254 - 1255: 6(int) Load 8(invocation) - 1256: 71(ptr) AccessChain 31(data) 115 63 - 1257: 25(ivec4) Load 1256 - 1258: 17(ivec4) Load 19(ballot) - 1259: 25(ivec4) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1257 1258 - 1260: 71(ptr) AccessChain 31(data) 1255 63 - Store 1260 1259 - 1261: 6(int) Load 8(invocation) - 1262: 90(ptr) AccessChain 31(data) 34 33 35 - 1263: 6(int) Load 1262 - 1264: 17(ivec4) Load 19(ballot) - 1265: 6(int) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1263 1264 - 1266: 90(ptr) AccessChain 31(data) 1261 33 35 - Store 1266 1265 - 1267: 6(int) Load 8(invocation) - 1268: 40(ptr) AccessChain 31(data) 63 33 - 1269: 17(ivec4) Load 1268 - 1270: 96(ivec2) VectorShuffle 1269 1269 0 1 - 1271: 17(ivec4) Load 19(ballot) - 1272: 96(ivec2) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1270 1271 - 1273: 90(ptr) AccessChain 31(data) 1267 33 35 - 1274: 6(int) CompositeExtract 1272 0 - Store 1273 1274 - 1275: 90(ptr) AccessChain 31(data) 1267 33 189 - 1276: 6(int) CompositeExtract 1272 1 - Store 1275 1276 - 1277: 6(int) Load 8(invocation) - 1278: 40(ptr) AccessChain 31(data) 33 33 - 1279: 17(ivec4) Load 1278 - 1280: 103(ivec3) VectorShuffle 1279 1279 0 1 2 - 1281: 17(ivec4) Load 19(ballot) - 1282: 103(ivec3) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1280 1281 - 1283: 90(ptr) AccessChain 31(data) 1277 33 35 - 1284: 6(int) CompositeExtract 1282 0 - Store 1283 1284 - 1285: 90(ptr) AccessChain 31(data) 1277 33 189 - 1286: 6(int) CompositeExtract 1282 1 - Store 1285 1286 - 1287: 90(ptr) AccessChain 31(data) 1277 33 202 - 1288: 6(int) CompositeExtract 1282 2 - Store 1287 1288 - 1289: 6(int) Load 8(invocation) - 1290: 40(ptr) AccessChain 31(data) 115 33 - 1291: 17(ivec4) Load 1290 - 1292: 17(ivec4) Load 19(ballot) - 1293: 17(ivec4) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1291 1292 - 1294: 40(ptr) AccessChain 31(data) 1289 33 - Store 1294 1293 - 1295: 6(int) Load 8(invocation) - 1296: 116(ptr) AccessChain 31(data) 34 115 35 - 1297:26(float64_t) Load 1296 - 1298: 17(ivec4) Load 19(ballot) - 1299:26(float64_t) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1297 1298 - 1300: 116(ptr) AccessChain 31(data) 1295 115 35 - Store 1300 1299 - 1301: 6(int) Load 8(invocation) - 1302: 123(ptr) AccessChain 31(data) 63 115 - 1303: 27(f64vec4) Load 1302 - 1304:122(f64vec2) VectorShuffle 1303 1303 0 1 - 1305: 17(ivec4) Load 19(ballot) - 1306:122(f64vec2) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1304 1305 - 1307: 116(ptr) AccessChain 31(data) 1301 115 35 - 1308:26(float64_t) CompositeExtract 1306 0 - Store 1307 1308 - 1309: 116(ptr) AccessChain 31(data) 1301 115 189 - 1310:26(float64_t) CompositeExtract 1306 1 - Store 1309 1310 - 1311: 6(int) Load 8(invocation) - 1312: 123(ptr) AccessChain 31(data) 33 115 - 1313: 27(f64vec4) Load 1312 - 1314:130(f64vec3) VectorShuffle 1313 1313 0 1 2 - 1315: 17(ivec4) Load 19(ballot) - 1316:130(f64vec3) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1314 1315 - 1317: 116(ptr) AccessChain 31(data) 1311 115 35 - 1318:26(float64_t) CompositeExtract 1316 0 - Store 1317 1318 - 1319: 116(ptr) AccessChain 31(data) 1311 115 189 - 1320:26(float64_t) CompositeExtract 1316 1 - Store 1319 1320 - 1321: 116(ptr) AccessChain 31(data) 1311 115 202 - 1322:26(float64_t) CompositeExtract 1316 2 - Store 1321 1322 - 1323: 6(int) Load 8(invocation) - 1324: 123(ptr) AccessChain 31(data) 115 115 - 1325: 27(f64vec4) Load 1324 - 1326: 17(ivec4) Load 19(ballot) - 1327: 27(f64vec4) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1325 1326 - 1328: 123(ptr) AccessChain 31(data) 1323 115 - Store 1328 1327 - 1329: 6(int) Load 8(invocation) - 1330: 36(ptr) AccessChain 31(data) 34 34 35 - 1331: 22(float) Load 1330 - 1332: 17(ivec4) Load 19(ballot) - 1333: 22(float) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1331 1332 - 1334: 36(ptr) AccessChain 31(data) 1329 34 35 - Store 1334 1333 - 1335: 6(int) Load 8(invocation) - 1336: 44(ptr) AccessChain 31(data) 63 34 - 1337: 23(fvec4) Load 1336 - 1338: 43(fvec2) VectorShuffle 1337 1337 0 1 - 1339: 17(ivec4) Load 19(ballot) - 1340: 43(fvec2) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1338 1339 - 1341: 36(ptr) AccessChain 31(data) 1335 34 35 - 1342: 22(float) CompositeExtract 1340 0 - Store 1341 1342 - 1343: 36(ptr) AccessChain 31(data) 1335 34 189 - 1344: 22(float) CompositeExtract 1340 1 - Store 1343 1344 - 1345: 6(int) Load 8(invocation) - 1346: 44(ptr) AccessChain 31(data) 33 34 - 1347: 23(fvec4) Load 1346 - 1348: 51(fvec3) VectorShuffle 1347 1347 0 1 2 - 1349: 17(ivec4) Load 19(ballot) - 1350: 51(fvec3) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1348 1349 - 1351: 36(ptr) AccessChain 31(data) 1345 34 35 - 1352: 22(float) CompositeExtract 1350 0 - Store 1351 1352 - 1353: 36(ptr) AccessChain 31(data) 1345 34 189 - 1354: 22(float) CompositeExtract 1350 1 - Store 1353 1354 - 1355: 36(ptr) AccessChain 31(data) 1345 34 202 - 1356: 22(float) CompositeExtract 1350 2 - Store 1355 1356 - 1357: 6(int) Load 8(invocation) - 1358: 44(ptr) AccessChain 31(data) 115 34 - 1359: 23(fvec4) Load 1358 - 1360: 17(ivec4) Load 19(ballot) - 1361: 23(fvec4) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1359 1360 - 1362: 44(ptr) AccessChain 31(data) 1357 34 - Store 1362 1361 - 1363: 6(int) Load 8(invocation) - 1364: 64(ptr) AccessChain 31(data) 34 63 35 - 1365: 24(int) Load 1364 - 1366: 17(ivec4) Load 19(ballot) - 1367: 24(int) GroupNonUniformSMin 178 PartitionedInclusiveScanNV 1365 1366 - 1368: 64(ptr) AccessChain 31(data) 1363 63 35 - Store 1368 1367 - 1369: 6(int) Load 8(invocation) - 1370: 71(ptr) AccessChain 31(data) 63 63 - 1371: 25(ivec4) Load 1370 - 1372: 70(ivec2) VectorShuffle 1371 1371 0 1 - 1373: 17(ivec4) Load 19(ballot) - 1374: 70(ivec2) GroupNonUniformSMin 178 PartitionedInclusiveScanNV 1372 1373 - 1375: 64(ptr) AccessChain 31(data) 1369 63 35 - 1376: 24(int) CompositeExtract 1374 0 - Store 1375 1376 - 1377: 64(ptr) AccessChain 31(data) 1369 63 189 - 1378: 24(int) CompositeExtract 1374 1 - Store 1377 1378 - 1379: 6(int) Load 8(invocation) - 1380: 71(ptr) AccessChain 31(data) 33 63 - 1381: 25(ivec4) Load 1380 - 1382: 78(ivec3) VectorShuffle 1381 1381 0 1 2 - 1383: 17(ivec4) Load 19(ballot) - 1384: 78(ivec3) GroupNonUniformSMin 178 PartitionedInclusiveScanNV 1382 1383 - 1385: 64(ptr) AccessChain 31(data) 1379 63 35 - 1386: 24(int) CompositeExtract 1384 0 - Store 1385 1386 - 1387: 64(ptr) AccessChain 31(data) 1379 63 189 - 1388: 24(int) CompositeExtract 1384 1 - Store 1387 1388 - 1389: 64(ptr) AccessChain 31(data) 1379 63 202 - 1390: 24(int) CompositeExtract 1384 2 - Store 1389 1390 - 1391: 6(int) Load 8(invocation) - 1392: 71(ptr) AccessChain 31(data) 115 63 - 1393: 25(ivec4) Load 1392 - 1394: 17(ivec4) Load 19(ballot) - 1395: 25(ivec4) GroupNonUniformSMin 178 PartitionedInclusiveScanNV 1393 1394 - 1396: 71(ptr) AccessChain 31(data) 1391 63 - Store 1396 1395 - 1397: 6(int) Load 8(invocation) - 1398: 90(ptr) AccessChain 31(data) 34 33 35 - 1399: 6(int) Load 1398 - 1400: 17(ivec4) Load 19(ballot) - 1401: 6(int) GroupNonUniformUMin 178 PartitionedInclusiveScanNV 1399 1400 - 1402: 90(ptr) AccessChain 31(data) 1397 33 35 - Store 1402 1401 - 1403: 6(int) Load 8(invocation) - 1404: 40(ptr) AccessChain 31(data) 63 33 - 1405: 17(ivec4) Load 1404 - 1406: 96(ivec2) VectorShuffle 1405 1405 0 1 - 1407: 17(ivec4) Load 19(ballot) - 1408: 96(ivec2) GroupNonUniformUMin 178 PartitionedInclusiveScanNV 1406 1407 - 1409: 90(ptr) AccessChain 31(data) 1403 33 35 - 1410: 6(int) CompositeExtract 1408 0 - Store 1409 1410 - 1411: 90(ptr) AccessChain 31(data) 1403 33 189 - 1412: 6(int) CompositeExtract 1408 1 - Store 1411 1412 - 1413: 6(int) Load 8(invocation) - 1414: 40(ptr) AccessChain 31(data) 33 33 - 1415: 17(ivec4) Load 1414 - 1416: 103(ivec3) VectorShuffle 1415 1415 0 1 2 - 1417: 17(ivec4) Load 19(ballot) - 1418: 103(ivec3) GroupNonUniformUMin 178 PartitionedInclusiveScanNV 1416 1417 - 1419: 90(ptr) AccessChain 31(data) 1413 33 35 - 1420: 6(int) CompositeExtract 1418 0 - Store 1419 1420 - 1421: 90(ptr) AccessChain 31(data) 1413 33 189 - 1422: 6(int) CompositeExtract 1418 1 - Store 1421 1422 - 1423: 90(ptr) AccessChain 31(data) 1413 33 202 - 1424: 6(int) CompositeExtract 1418 2 - Store 1423 1424 - 1425: 6(int) Load 8(invocation) - 1426: 40(ptr) AccessChain 31(data) 115 33 - 1427: 17(ivec4) Load 1426 - 1428: 17(ivec4) Load 19(ballot) - 1429: 17(ivec4) GroupNonUniformUMin 178 PartitionedInclusiveScanNV 1427 1428 - 1430: 40(ptr) AccessChain 31(data) 1425 33 - Store 1430 1429 - 1431: 6(int) Load 8(invocation) - 1432: 116(ptr) AccessChain 31(data) 34 115 35 - 1433:26(float64_t) Load 1432 - 1434: 17(ivec4) Load 19(ballot) - 1435:26(float64_t) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1433 1434 - 1436: 116(ptr) AccessChain 31(data) 1431 115 35 - Store 1436 1435 - 1437: 6(int) Load 8(invocation) - 1438: 123(ptr) AccessChain 31(data) 63 115 - 1439: 27(f64vec4) Load 1438 - 1440:122(f64vec2) VectorShuffle 1439 1439 0 1 - 1441: 17(ivec4) Load 19(ballot) - 1442:122(f64vec2) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1440 1441 - 1443: 116(ptr) AccessChain 31(data) 1437 115 35 - 1444:26(float64_t) CompositeExtract 1442 0 - Store 1443 1444 - 1445: 116(ptr) AccessChain 31(data) 1437 115 189 - 1446:26(float64_t) CompositeExtract 1442 1 - Store 1445 1446 - 1447: 6(int) Load 8(invocation) - 1448: 123(ptr) AccessChain 31(data) 33 115 - 1449: 27(f64vec4) Load 1448 - 1450:130(f64vec3) VectorShuffle 1449 1449 0 1 2 - 1451: 17(ivec4) Load 19(ballot) - 1452:130(f64vec3) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1450 1451 - 1453: 116(ptr) AccessChain 31(data) 1447 115 35 - 1454:26(float64_t) CompositeExtract 1452 0 - Store 1453 1454 - 1455: 116(ptr) AccessChain 31(data) 1447 115 189 - 1456:26(float64_t) CompositeExtract 1452 1 - Store 1455 1456 - 1457: 116(ptr) AccessChain 31(data) 1447 115 202 - 1458:26(float64_t) CompositeExtract 1452 2 - Store 1457 1458 - 1459: 6(int) Load 8(invocation) - 1460: 123(ptr) AccessChain 31(data) 115 115 - 1461: 27(f64vec4) Load 1460 - 1462: 17(ivec4) Load 19(ballot) - 1463: 27(f64vec4) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1461 1462 - 1464: 123(ptr) AccessChain 31(data) 1459 115 - Store 1464 1463 - 1465: 6(int) Load 8(invocation) - 1466: 36(ptr) AccessChain 31(data) 34 34 35 - 1467: 22(float) Load 1466 - 1468: 17(ivec4) Load 19(ballot) - 1469: 22(float) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1467 1468 - 1470: 36(ptr) AccessChain 31(data) 1465 34 35 - Store 1470 1469 - 1471: 6(int) Load 8(invocation) - 1472: 44(ptr) AccessChain 31(data) 63 34 - 1473: 23(fvec4) Load 1472 - 1474: 43(fvec2) VectorShuffle 1473 1473 0 1 - 1475: 17(ivec4) Load 19(ballot) - 1476: 43(fvec2) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1474 1475 - 1477: 36(ptr) AccessChain 31(data) 1471 34 35 - 1478: 22(float) CompositeExtract 1476 0 - Store 1477 1478 - 1479: 36(ptr) AccessChain 31(data) 1471 34 189 - 1480: 22(float) CompositeExtract 1476 1 - Store 1479 1480 - 1481: 6(int) Load 8(invocation) - 1482: 44(ptr) AccessChain 31(data) 33 34 - 1483: 23(fvec4) Load 1482 - 1484: 51(fvec3) VectorShuffle 1483 1483 0 1 2 - 1485: 17(ivec4) Load 19(ballot) - 1486: 51(fvec3) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1484 1485 - 1487: 36(ptr) AccessChain 31(data) 1481 34 35 - 1488: 22(float) CompositeExtract 1486 0 - Store 1487 1488 - 1489: 36(ptr) AccessChain 31(data) 1481 34 189 - 1490: 22(float) CompositeExtract 1486 1 - Store 1489 1490 - 1491: 36(ptr) AccessChain 31(data) 1481 34 202 - 1492: 22(float) CompositeExtract 1486 2 - Store 1491 1492 - 1493: 6(int) Load 8(invocation) - 1494: 44(ptr) AccessChain 31(data) 115 34 - 1495: 23(fvec4) Load 1494 - 1496: 17(ivec4) Load 19(ballot) - 1497: 23(fvec4) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1495 1496 - 1498: 44(ptr) AccessChain 31(data) 1493 34 - Store 1498 1497 - 1499: 6(int) Load 8(invocation) - 1500: 64(ptr) AccessChain 31(data) 34 63 35 - 1501: 24(int) Load 1500 - 1502: 17(ivec4) Load 19(ballot) - 1503: 24(int) GroupNonUniformSMax 178 PartitionedInclusiveScanNV 1501 1502 - 1504: 64(ptr) AccessChain 31(data) 1499 63 35 - Store 1504 1503 - 1505: 6(int) Load 8(invocation) - 1506: 71(ptr) AccessChain 31(data) 63 63 - 1507: 25(ivec4) Load 1506 - 1508: 70(ivec2) VectorShuffle 1507 1507 0 1 - 1509: 17(ivec4) Load 19(ballot) - 1510: 70(ivec2) GroupNonUniformSMax 178 PartitionedInclusiveScanNV 1508 1509 - 1511: 64(ptr) AccessChain 31(data) 1505 63 35 - 1512: 24(int) CompositeExtract 1510 0 - Store 1511 1512 - 1513: 64(ptr) AccessChain 31(data) 1505 63 189 - 1514: 24(int) CompositeExtract 1510 1 - Store 1513 1514 - 1515: 6(int) Load 8(invocation) - 1516: 71(ptr) AccessChain 31(data) 33 63 - 1517: 25(ivec4) Load 1516 - 1518: 78(ivec3) VectorShuffle 1517 1517 0 1 2 - 1519: 17(ivec4) Load 19(ballot) - 1520: 78(ivec3) GroupNonUniformSMax 178 PartitionedInclusiveScanNV 1518 1519 - 1521: 64(ptr) AccessChain 31(data) 1515 63 35 - 1522: 24(int) CompositeExtract 1520 0 - Store 1521 1522 - 1523: 64(ptr) AccessChain 31(data) 1515 63 189 - 1524: 24(int) CompositeExtract 1520 1 - Store 1523 1524 - 1525: 64(ptr) AccessChain 31(data) 1515 63 202 - 1526: 24(int) CompositeExtract 1520 2 - Store 1525 1526 - 1527: 6(int) Load 8(invocation) - 1528: 71(ptr) AccessChain 31(data) 115 63 - 1529: 25(ivec4) Load 1528 - 1530: 17(ivec4) Load 19(ballot) - 1531: 25(ivec4) GroupNonUniformSMax 178 PartitionedInclusiveScanNV 1529 1530 - 1532: 71(ptr) AccessChain 31(data) 1527 63 - Store 1532 1531 - 1533: 6(int) Load 8(invocation) - 1534: 90(ptr) AccessChain 31(data) 34 33 35 - 1535: 6(int) Load 1534 - 1536: 17(ivec4) Load 19(ballot) - 1537: 6(int) GroupNonUniformUMax 178 PartitionedInclusiveScanNV 1535 1536 - 1538: 90(ptr) AccessChain 31(data) 1533 33 35 - Store 1538 1537 - 1539: 6(int) Load 8(invocation) - 1540: 40(ptr) AccessChain 31(data) 63 33 - 1541: 17(ivec4) Load 1540 - 1542: 96(ivec2) VectorShuffle 1541 1541 0 1 - 1543: 17(ivec4) Load 19(ballot) - 1544: 96(ivec2) GroupNonUniformUMax 178 PartitionedInclusiveScanNV 1542 1543 - 1545: 90(ptr) AccessChain 31(data) 1539 33 35 - 1546: 6(int) CompositeExtract 1544 0 - Store 1545 1546 - 1547: 90(ptr) AccessChain 31(data) 1539 33 189 - 1548: 6(int) CompositeExtract 1544 1 - Store 1547 1548 - 1549: 6(int) Load 8(invocation) - 1550: 40(ptr) AccessChain 31(data) 33 33 - 1551: 17(ivec4) Load 1550 - 1552: 103(ivec3) VectorShuffle 1551 1551 0 1 2 - 1553: 17(ivec4) Load 19(ballot) - 1554: 103(ivec3) GroupNonUniformUMax 178 PartitionedInclusiveScanNV 1552 1553 - 1555: 90(ptr) AccessChain 31(data) 1549 33 35 - 1556: 6(int) CompositeExtract 1554 0 - Store 1555 1556 - 1557: 90(ptr) AccessChain 31(data) 1549 33 189 - 1558: 6(int) CompositeExtract 1554 1 - Store 1557 1558 - 1559: 90(ptr) AccessChain 31(data) 1549 33 202 - 1560: 6(int) CompositeExtract 1554 2 - Store 1559 1560 - 1561: 6(int) Load 8(invocation) - 1562: 40(ptr) AccessChain 31(data) 115 33 - 1563: 17(ivec4) Load 1562 - 1564: 17(ivec4) Load 19(ballot) - 1565: 17(ivec4) GroupNonUniformUMax 178 PartitionedInclusiveScanNV 1563 1564 - 1566: 40(ptr) AccessChain 31(data) 1561 33 - Store 1566 1565 - 1567: 6(int) Load 8(invocation) - 1568: 116(ptr) AccessChain 31(data) 34 115 35 - 1569:26(float64_t) Load 1568 - 1570: 17(ivec4) Load 19(ballot) - 1571:26(float64_t) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1569 1570 - 1572: 116(ptr) AccessChain 31(data) 1567 115 35 - Store 1572 1571 - 1573: 6(int) Load 8(invocation) - 1574: 123(ptr) AccessChain 31(data) 63 115 - 1575: 27(f64vec4) Load 1574 - 1576:122(f64vec2) VectorShuffle 1575 1575 0 1 - 1577: 17(ivec4) Load 19(ballot) - 1578:122(f64vec2) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1576 1577 - 1579: 116(ptr) AccessChain 31(data) 1573 115 35 - 1580:26(float64_t) CompositeExtract 1578 0 - Store 1579 1580 - 1581: 116(ptr) AccessChain 31(data) 1573 115 189 - 1582:26(float64_t) CompositeExtract 1578 1 - Store 1581 1582 - 1583: 6(int) Load 8(invocation) - 1584: 123(ptr) AccessChain 31(data) 33 115 - 1585: 27(f64vec4) Load 1584 - 1586:130(f64vec3) VectorShuffle 1585 1585 0 1 2 - 1587: 17(ivec4) Load 19(ballot) - 1588:130(f64vec3) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1586 1587 - 1589: 116(ptr) AccessChain 31(data) 1583 115 35 - 1590:26(float64_t) CompositeExtract 1588 0 - Store 1589 1590 - 1591: 116(ptr) AccessChain 31(data) 1583 115 189 - 1592:26(float64_t) CompositeExtract 1588 1 - Store 1591 1592 - 1593: 116(ptr) AccessChain 31(data) 1583 115 202 - 1594:26(float64_t) CompositeExtract 1588 2 - Store 1593 1594 - 1595: 6(int) Load 8(invocation) - 1596: 123(ptr) AccessChain 31(data) 115 115 - 1597: 27(f64vec4) Load 1596 - 1598: 17(ivec4) Load 19(ballot) - 1599: 27(f64vec4) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1597 1598 - 1600: 123(ptr) AccessChain 31(data) 1595 115 - Store 1600 1599 - 1601: 6(int) Load 8(invocation) - 1602: 64(ptr) AccessChain 31(data) 34 63 35 - 1603: 24(int) Load 1602 - 1604: 17(ivec4) Load 19(ballot) - 1605: 24(int) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1603 1604 - 1606: 64(ptr) AccessChain 31(data) 1601 63 35 - Store 1606 1605 - 1607: 6(int) Load 8(invocation) - 1608: 71(ptr) AccessChain 31(data) 63 63 - 1609: 25(ivec4) Load 1608 - 1610: 70(ivec2) VectorShuffle 1609 1609 0 1 - 1611: 17(ivec4) Load 19(ballot) - 1612: 70(ivec2) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1610 1611 - 1613: 64(ptr) AccessChain 31(data) 1607 63 35 - 1614: 24(int) CompositeExtract 1612 0 - Store 1613 1614 - 1615: 64(ptr) AccessChain 31(data) 1607 63 189 - 1616: 24(int) CompositeExtract 1612 1 - Store 1615 1616 - 1617: 6(int) Load 8(invocation) - 1618: 71(ptr) AccessChain 31(data) 33 63 - 1619: 25(ivec4) Load 1618 - 1620: 78(ivec3) VectorShuffle 1619 1619 0 1 2 - 1621: 17(ivec4) Load 19(ballot) - 1622: 78(ivec3) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1620 1621 - 1623: 64(ptr) AccessChain 31(data) 1617 63 35 - 1624: 24(int) CompositeExtract 1622 0 - Store 1623 1624 - 1625: 64(ptr) AccessChain 31(data) 1617 63 189 - 1626: 24(int) CompositeExtract 1622 1 - Store 1625 1626 - 1627: 64(ptr) AccessChain 31(data) 1617 63 202 - 1628: 24(int) CompositeExtract 1622 2 - Store 1627 1628 - 1629: 6(int) Load 8(invocation) - 1630: 71(ptr) AccessChain 31(data) 115 63 - 1631: 25(ivec4) Load 1630 - 1632: 17(ivec4) Load 19(ballot) - 1633: 25(ivec4) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1631 1632 - 1634: 71(ptr) AccessChain 31(data) 1629 63 - Store 1634 1633 - 1635: 6(int) Load 8(invocation) - 1636: 90(ptr) AccessChain 31(data) 34 33 35 - 1637: 6(int) Load 1636 - 1638: 17(ivec4) Load 19(ballot) - 1639: 6(int) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1637 1638 - 1640: 90(ptr) AccessChain 31(data) 1635 33 35 - Store 1640 1639 - 1641: 6(int) Load 8(invocation) - 1642: 40(ptr) AccessChain 31(data) 63 33 - 1643: 17(ivec4) Load 1642 - 1644: 96(ivec2) VectorShuffle 1643 1643 0 1 - 1645: 17(ivec4) Load 19(ballot) - 1646: 96(ivec2) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1644 1645 - 1647: 90(ptr) AccessChain 31(data) 1641 33 35 - 1648: 6(int) CompositeExtract 1646 0 - Store 1647 1648 - 1649: 90(ptr) AccessChain 31(data) 1641 33 189 - 1650: 6(int) CompositeExtract 1646 1 - Store 1649 1650 - 1651: 6(int) Load 8(invocation) - 1652: 40(ptr) AccessChain 31(data) 33 33 - 1653: 17(ivec4) Load 1652 - 1654: 103(ivec3) VectorShuffle 1653 1653 0 1 2 - 1655: 17(ivec4) Load 19(ballot) - 1656: 103(ivec3) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1654 1655 - 1657: 90(ptr) AccessChain 31(data) 1651 33 35 - 1658: 6(int) CompositeExtract 1656 0 - Store 1657 1658 - 1659: 90(ptr) AccessChain 31(data) 1651 33 189 - 1660: 6(int) CompositeExtract 1656 1 - Store 1659 1660 - 1661: 90(ptr) AccessChain 31(data) 1651 33 202 - 1662: 6(int) CompositeExtract 1656 2 - Store 1661 1662 - 1663: 6(int) Load 8(invocation) - 1664: 40(ptr) AccessChain 31(data) 115 33 - 1665: 17(ivec4) Load 1664 - 1666: 17(ivec4) Load 19(ballot) - 1667: 17(ivec4) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1665 1666 - 1668: 40(ptr) AccessChain 31(data) 1663 33 - Store 1668 1667 - 1669: 6(int) Load 8(invocation) - 1670: 64(ptr) AccessChain 31(data) 34 63 35 - 1671: 24(int) Load 1670 - 1672: 144(bool) SLessThan 1671 34 - 1673: 17(ivec4) Load 19(ballot) - 1674: 144(bool) GroupNonUniformLogicalAnd 178 PartitionedInclusiveScanNV 1672 1673 - 1675: 24(int) Select 1674 63 34 - 1676: 64(ptr) AccessChain 31(data) 1669 63 35 - Store 1676 1675 - 1677: 6(int) Load 8(invocation) - 1678: 71(ptr) AccessChain 31(data) 63 63 - 1679: 25(ivec4) Load 1678 - 1680: 70(ivec2) VectorShuffle 1679 1679 0 1 - 1681: 152(bvec2) SLessThan 1680 801 - 1682: 17(ivec4) Load 19(ballot) - 1683: 152(bvec2) GroupNonUniformLogicalAnd 178 PartitionedInclusiveScanNV 1681 1682 - 1684: 70(ivec2) Select 1683 805 801 - 1685: 64(ptr) AccessChain 31(data) 1677 63 35 - 1686: 24(int) CompositeExtract 1684 0 - Store 1685 1686 - 1687: 64(ptr) AccessChain 31(data) 1677 63 189 - 1688: 24(int) CompositeExtract 1684 1 - Store 1687 1688 - 1689: 6(int) Load 8(invocation) - 1690: 71(ptr) AccessChain 31(data) 63 63 - 1691: 25(ivec4) Load 1690 - 1692: 78(ivec3) VectorShuffle 1691 1691 0 1 2 - 1693: 161(bvec3) SLessThan 1692 815 - 1694: 17(ivec4) Load 19(ballot) - 1695: 161(bvec3) GroupNonUniformLogicalAnd 178 PartitionedInclusiveScanNV 1693 1694 - 1696: 78(ivec3) Select 1695 819 815 - 1697: 64(ptr) AccessChain 31(data) 1689 63 35 - 1698: 24(int) CompositeExtract 1696 0 - Store 1697 1698 - 1699: 64(ptr) AccessChain 31(data) 1689 63 189 - 1700: 24(int) CompositeExtract 1696 1 - Store 1699 1700 - 1701: 64(ptr) AccessChain 31(data) 1689 63 202 - 1702: 24(int) CompositeExtract 1696 2 - Store 1701 1702 - 1703: 6(int) Load 8(invocation) - 1704: 71(ptr) AccessChain 31(data) 63 63 - 1705: 25(ivec4) Load 1704 - 1706: 169(bvec4) SLessThan 1705 830 - 1707: 17(ivec4) Load 19(ballot) - 1708: 169(bvec4) GroupNonUniformLogicalAnd 178 PartitionedInclusiveScanNV 1706 1707 - 1709: 25(ivec4) Select 1708 834 830 - 1710: 71(ptr) AccessChain 31(data) 1703 63 - Store 1710 1709 - 1711: 6(int) Load 8(invocation) - 1712: 64(ptr) AccessChain 31(data) 34 63 35 - 1713: 24(int) Load 1712 - 1714: 17(ivec4) Load 19(ballot) - 1715: 24(int) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1713 1714 - 1716: 64(ptr) AccessChain 31(data) 1711 63 35 - Store 1716 1715 - 1717: 6(int) Load 8(invocation) - 1718: 71(ptr) AccessChain 31(data) 63 63 - 1719: 25(ivec4) Load 1718 - 1720: 70(ivec2) VectorShuffle 1719 1719 0 1 - 1721: 17(ivec4) Load 19(ballot) - 1722: 70(ivec2) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1720 1721 - 1723: 64(ptr) AccessChain 31(data) 1717 63 35 - 1724: 24(int) CompositeExtract 1722 0 - Store 1723 1724 - 1725: 64(ptr) AccessChain 31(data) 1717 63 189 - 1726: 24(int) CompositeExtract 1722 1 - Store 1725 1726 - 1727: 6(int) Load 8(invocation) - 1728: 71(ptr) AccessChain 31(data) 33 63 - 1729: 25(ivec4) Load 1728 - 1730: 78(ivec3) VectorShuffle 1729 1729 0 1 2 - 1731: 17(ivec4) Load 19(ballot) - 1732: 78(ivec3) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1730 1731 - 1733: 64(ptr) AccessChain 31(data) 1727 63 35 - 1734: 24(int) CompositeExtract 1732 0 - Store 1733 1734 - 1735: 64(ptr) AccessChain 31(data) 1727 63 189 - 1736: 24(int) CompositeExtract 1732 1 - Store 1735 1736 - 1737: 64(ptr) AccessChain 31(data) 1727 63 202 - 1738: 24(int) CompositeExtract 1732 2 - Store 1737 1738 - 1739: 6(int) Load 8(invocation) - 1740: 71(ptr) AccessChain 31(data) 115 63 - 1741: 25(ivec4) Load 1740 - 1742: 17(ivec4) Load 19(ballot) - 1743: 25(ivec4) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1741 1742 - 1744: 71(ptr) AccessChain 31(data) 1739 63 - Store 1744 1743 - 1745: 6(int) Load 8(invocation) - 1746: 90(ptr) AccessChain 31(data) 34 33 35 - 1747: 6(int) Load 1746 - 1748: 17(ivec4) Load 19(ballot) - 1749: 6(int) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1747 1748 - 1750: 90(ptr) AccessChain 31(data) 1745 33 35 - Store 1750 1749 - 1751: 6(int) Load 8(invocation) - 1752: 40(ptr) AccessChain 31(data) 63 33 - 1753: 17(ivec4) Load 1752 - 1754: 96(ivec2) VectorShuffle 1753 1753 0 1 - 1755: 17(ivec4) Load 19(ballot) - 1756: 96(ivec2) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1754 1755 - 1757: 90(ptr) AccessChain 31(data) 1751 33 35 - 1758: 6(int) CompositeExtract 1756 0 - Store 1757 1758 - 1759: 90(ptr) AccessChain 31(data) 1751 33 189 - 1760: 6(int) CompositeExtract 1756 1 - Store 1759 1760 - 1761: 6(int) Load 8(invocation) - 1762: 40(ptr) AccessChain 31(data) 33 33 - 1763: 17(ivec4) Load 1762 - 1764: 103(ivec3) VectorShuffle 1763 1763 0 1 2 - 1765: 17(ivec4) Load 19(ballot) - 1766: 103(ivec3) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1764 1765 - 1767: 90(ptr) AccessChain 31(data) 1761 33 35 - 1768: 6(int) CompositeExtract 1766 0 - Store 1767 1768 - 1769: 90(ptr) AccessChain 31(data) 1761 33 189 - 1770: 6(int) CompositeExtract 1766 1 - Store 1769 1770 - 1771: 90(ptr) AccessChain 31(data) 1761 33 202 - 1772: 6(int) CompositeExtract 1766 2 - Store 1771 1772 - 1773: 6(int) Load 8(invocation) - 1774: 40(ptr) AccessChain 31(data) 115 33 - 1775: 17(ivec4) Load 1774 - 1776: 17(ivec4) Load 19(ballot) - 1777: 17(ivec4) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1775 1776 - 1778: 40(ptr) AccessChain 31(data) 1773 33 - Store 1778 1777 - 1779: 6(int) Load 8(invocation) - 1780: 64(ptr) AccessChain 31(data) 34 63 35 - 1781: 24(int) Load 1780 - 1782: 144(bool) SLessThan 1781 34 - 1783: 17(ivec4) Load 19(ballot) - 1784: 144(bool) GroupNonUniformLogicalOr 178 PartitionedInclusiveScanNV 1782 1783 - 1785: 24(int) Select 1784 63 34 - 1786: 64(ptr) AccessChain 31(data) 1779 63 35 - Store 1786 1785 - 1787: 6(int) Load 8(invocation) - 1788: 71(ptr) AccessChain 31(data) 63 63 - 1789: 25(ivec4) Load 1788 - 1790: 70(ivec2) VectorShuffle 1789 1789 0 1 - 1791: 152(bvec2) SLessThan 1790 801 - 1792: 17(ivec4) Load 19(ballot) - 1793: 152(bvec2) GroupNonUniformLogicalOr 178 PartitionedInclusiveScanNV 1791 1792 - 1794: 70(ivec2) Select 1793 805 801 - 1795: 64(ptr) AccessChain 31(data) 1787 63 35 - 1796: 24(int) CompositeExtract 1794 0 - Store 1795 1796 - 1797: 64(ptr) AccessChain 31(data) 1787 63 189 - 1798: 24(int) CompositeExtract 1794 1 - Store 1797 1798 - 1799: 6(int) Load 8(invocation) - 1800: 71(ptr) AccessChain 31(data) 63 63 - 1801: 25(ivec4) Load 1800 - 1802: 78(ivec3) VectorShuffle 1801 1801 0 1 2 - 1803: 161(bvec3) SLessThan 1802 815 - 1804: 17(ivec4) Load 19(ballot) - 1805: 161(bvec3) GroupNonUniformLogicalOr 178 PartitionedInclusiveScanNV 1803 1804 - 1806: 78(ivec3) Select 1805 819 815 - 1807: 64(ptr) AccessChain 31(data) 1799 63 35 - 1808: 24(int) CompositeExtract 1806 0 - Store 1807 1808 - 1809: 64(ptr) AccessChain 31(data) 1799 63 189 - 1810: 24(int) CompositeExtract 1806 1 - Store 1809 1810 - 1811: 64(ptr) AccessChain 31(data) 1799 63 202 - 1812: 24(int) CompositeExtract 1806 2 - Store 1811 1812 - 1813: 6(int) Load 8(invocation) - 1814: 71(ptr) AccessChain 31(data) 63 63 - 1815: 25(ivec4) Load 1814 - 1816: 169(bvec4) SLessThan 1815 830 - 1817: 17(ivec4) Load 19(ballot) - 1818: 169(bvec4) GroupNonUniformLogicalOr 178 PartitionedInclusiveScanNV 1816 1817 - 1819: 25(ivec4) Select 1818 834 830 - 1820: 71(ptr) AccessChain 31(data) 1813 63 - Store 1820 1819 - 1821: 6(int) Load 8(invocation) - 1822: 64(ptr) AccessChain 31(data) 34 63 35 - 1823: 24(int) Load 1822 - 1824: 17(ivec4) Load 19(ballot) - 1825: 24(int) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1823 1824 - 1826: 64(ptr) AccessChain 31(data) 1821 63 35 - Store 1826 1825 - 1827: 6(int) Load 8(invocation) - 1828: 71(ptr) AccessChain 31(data) 63 63 - 1829: 25(ivec4) Load 1828 - 1830: 70(ivec2) VectorShuffle 1829 1829 0 1 - 1831: 17(ivec4) Load 19(ballot) - 1832: 70(ivec2) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1830 1831 - 1833: 64(ptr) AccessChain 31(data) 1827 63 35 - 1834: 24(int) CompositeExtract 1832 0 - Store 1833 1834 - 1835: 64(ptr) AccessChain 31(data) 1827 63 189 - 1836: 24(int) CompositeExtract 1832 1 - Store 1835 1836 - 1837: 6(int) Load 8(invocation) - 1838: 71(ptr) AccessChain 31(data) 33 63 - 1839: 25(ivec4) Load 1838 - 1840: 78(ivec3) VectorShuffle 1839 1839 0 1 2 - 1841: 17(ivec4) Load 19(ballot) - 1842: 78(ivec3) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1840 1841 - 1843: 64(ptr) AccessChain 31(data) 1837 63 35 - 1844: 24(int) CompositeExtract 1842 0 - Store 1843 1844 - 1845: 64(ptr) AccessChain 31(data) 1837 63 189 - 1846: 24(int) CompositeExtract 1842 1 - Store 1845 1846 - 1847: 64(ptr) AccessChain 31(data) 1837 63 202 - 1848: 24(int) CompositeExtract 1842 2 - Store 1847 1848 - 1849: 6(int) Load 8(invocation) - 1850: 71(ptr) AccessChain 31(data) 115 63 - 1851: 25(ivec4) Load 1850 - 1852: 17(ivec4) Load 19(ballot) - 1853: 25(ivec4) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1851 1852 - 1854: 71(ptr) AccessChain 31(data) 1849 63 - Store 1854 1853 - 1855: 6(int) Load 8(invocation) - 1856: 90(ptr) AccessChain 31(data) 34 33 35 - 1857: 6(int) Load 1856 - 1858: 17(ivec4) Load 19(ballot) - 1859: 6(int) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1857 1858 - 1860: 90(ptr) AccessChain 31(data) 1855 33 35 - Store 1860 1859 - 1861: 6(int) Load 8(invocation) - 1862: 40(ptr) AccessChain 31(data) 63 33 - 1863: 17(ivec4) Load 1862 - 1864: 96(ivec2) VectorShuffle 1863 1863 0 1 - 1865: 17(ivec4) Load 19(ballot) - 1866: 96(ivec2) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1864 1865 - 1867: 90(ptr) AccessChain 31(data) 1861 33 35 - 1868: 6(int) CompositeExtract 1866 0 - Store 1867 1868 - 1869: 90(ptr) AccessChain 31(data) 1861 33 189 - 1870: 6(int) CompositeExtract 1866 1 - Store 1869 1870 - 1871: 6(int) Load 8(invocation) - 1872: 40(ptr) AccessChain 31(data) 33 33 - 1873: 17(ivec4) Load 1872 - 1874: 103(ivec3) VectorShuffle 1873 1873 0 1 2 - 1875: 17(ivec4) Load 19(ballot) - 1876: 103(ivec3) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1874 1875 - 1877: 90(ptr) AccessChain 31(data) 1871 33 35 - 1878: 6(int) CompositeExtract 1876 0 - Store 1877 1878 - 1879: 90(ptr) AccessChain 31(data) 1871 33 189 - 1880: 6(int) CompositeExtract 1876 1 - Store 1879 1880 - 1881: 90(ptr) AccessChain 31(data) 1871 33 202 - 1882: 6(int) CompositeExtract 1876 2 - Store 1881 1882 - 1883: 6(int) Load 8(invocation) - 1884: 40(ptr) AccessChain 31(data) 115 33 - 1885: 17(ivec4) Load 1884 - 1886: 17(ivec4) Load 19(ballot) - 1887: 17(ivec4) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1885 1886 - 1888: 40(ptr) AccessChain 31(data) 1883 33 - Store 1888 1887 - 1889: 6(int) Load 8(invocation) - 1890: 64(ptr) AccessChain 31(data) 34 63 35 - 1891: 24(int) Load 1890 - 1892: 144(bool) SLessThan 1891 34 - 1893: 17(ivec4) Load 19(ballot) - 1894: 144(bool) GroupNonUniformLogicalXor 178 PartitionedInclusiveScanNV 1892 1893 - 1895: 24(int) Select 1894 63 34 - 1896: 64(ptr) AccessChain 31(data) 1889 63 35 - Store 1896 1895 - 1897: 6(int) Load 8(invocation) - 1898: 71(ptr) AccessChain 31(data) 63 63 - 1899: 25(ivec4) Load 1898 - 1900: 70(ivec2) VectorShuffle 1899 1899 0 1 - 1901: 152(bvec2) SLessThan 1900 801 - 1902: 17(ivec4) Load 19(ballot) - 1903: 152(bvec2) GroupNonUniformLogicalXor 178 PartitionedInclusiveScanNV 1901 1902 - 1904: 70(ivec2) Select 1903 805 801 - 1905: 64(ptr) AccessChain 31(data) 1897 63 35 - 1906: 24(int) CompositeExtract 1904 0 - Store 1905 1906 - 1907: 64(ptr) AccessChain 31(data) 1897 63 189 - 1908: 24(int) CompositeExtract 1904 1 - Store 1907 1908 - 1909: 6(int) Load 8(invocation) - 1910: 71(ptr) AccessChain 31(data) 63 63 - 1911: 25(ivec4) Load 1910 - 1912: 78(ivec3) VectorShuffle 1911 1911 0 1 2 - 1913: 161(bvec3) SLessThan 1912 815 - 1914: 17(ivec4) Load 19(ballot) - 1915: 161(bvec3) GroupNonUniformLogicalXor 178 PartitionedInclusiveScanNV 1913 1914 - 1916: 78(ivec3) Select 1915 819 815 - 1917: 64(ptr) AccessChain 31(data) 1909 63 35 - 1918: 24(int) CompositeExtract 1916 0 - Store 1917 1918 - 1919: 64(ptr) AccessChain 31(data) 1909 63 189 - 1920: 24(int) CompositeExtract 1916 1 - Store 1919 1920 - 1921: 64(ptr) AccessChain 31(data) 1909 63 202 - 1922: 24(int) CompositeExtract 1916 2 - Store 1921 1922 - 1923: 6(int) Load 8(invocation) - 1924: 71(ptr) AccessChain 31(data) 63 63 - 1925: 25(ivec4) Load 1924 - 1926: 169(bvec4) SLessThan 1925 830 - 1927: 17(ivec4) Load 19(ballot) - 1928: 169(bvec4) GroupNonUniformLogicalXor 178 PartitionedInclusiveScanNV 1926 1927 - 1929: 25(ivec4) Select 1928 834 830 - 1930: 71(ptr) AccessChain 31(data) 1923 63 - Store 1930 1929 - 1931: 6(int) Load 8(invocation) - 1932: 36(ptr) AccessChain 31(data) 34 34 35 - 1933: 22(float) Load 1932 - 1934: 17(ivec4) Load 19(ballot) - 1935: 22(float) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 1933 1934 - 1936: 36(ptr) AccessChain 31(data) 1931 34 35 - Store 1936 1935 - 1937: 6(int) Load 8(invocation) - 1938: 44(ptr) AccessChain 31(data) 63 34 - 1939: 23(fvec4) Load 1938 - 1940: 43(fvec2) VectorShuffle 1939 1939 0 1 - 1941: 17(ivec4) Load 19(ballot) - 1942: 43(fvec2) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 1940 1941 - 1943: 36(ptr) AccessChain 31(data) 1937 34 35 - 1944: 22(float) CompositeExtract 1942 0 - Store 1943 1944 - 1945: 36(ptr) AccessChain 31(data) 1937 34 189 - 1946: 22(float) CompositeExtract 1942 1 - Store 1945 1946 - 1947: 6(int) Load 8(invocation) - 1948: 44(ptr) AccessChain 31(data) 33 34 - 1949: 23(fvec4) Load 1948 - 1950: 51(fvec3) VectorShuffle 1949 1949 0 1 2 - 1951: 17(ivec4) Load 19(ballot) - 1952: 51(fvec3) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 1950 1951 - 1953: 36(ptr) AccessChain 31(data) 1947 34 35 - 1954: 22(float) CompositeExtract 1952 0 - Store 1953 1954 - 1955: 36(ptr) AccessChain 31(data) 1947 34 189 - 1956: 22(float) CompositeExtract 1952 1 - Store 1955 1956 - 1957: 36(ptr) AccessChain 31(data) 1947 34 202 - 1958: 22(float) CompositeExtract 1952 2 - Store 1957 1958 - 1959: 6(int) Load 8(invocation) - 1960: 44(ptr) AccessChain 31(data) 115 34 - 1961: 23(fvec4) Load 1960 - 1962: 17(ivec4) Load 19(ballot) - 1963: 23(fvec4) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 1961 1962 - 1964: 44(ptr) AccessChain 31(data) 1959 34 - Store 1964 1963 - 1965: 6(int) Load 8(invocation) - 1966: 64(ptr) AccessChain 31(data) 34 63 35 - 1967: 24(int) Load 1966 - 1968: 17(ivec4) Load 19(ballot) - 1969: 24(int) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 1967 1968 - 1970: 64(ptr) AccessChain 31(data) 1965 63 35 - Store 1970 1969 - 1971: 6(int) Load 8(invocation) - 1972: 71(ptr) AccessChain 31(data) 63 63 - 1973: 25(ivec4) Load 1972 - 1974: 70(ivec2) VectorShuffle 1973 1973 0 1 - 1975: 17(ivec4) Load 19(ballot) - 1976: 70(ivec2) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 1974 1975 - 1977: 64(ptr) AccessChain 31(data) 1971 63 35 - 1978: 24(int) CompositeExtract 1976 0 - Store 1977 1978 - 1979: 64(ptr) AccessChain 31(data) 1971 63 189 - 1980: 24(int) CompositeExtract 1976 1 - Store 1979 1980 - 1981: 6(int) Load 8(invocation) - 1982: 71(ptr) AccessChain 31(data) 33 63 - 1983: 25(ivec4) Load 1982 - 1984: 78(ivec3) VectorShuffle 1983 1983 0 1 2 - 1985: 17(ivec4) Load 19(ballot) - 1986: 78(ivec3) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 1984 1985 - 1987: 64(ptr) AccessChain 31(data) 1981 63 35 - 1988: 24(int) CompositeExtract 1986 0 - Store 1987 1988 - 1989: 64(ptr) AccessChain 31(data) 1981 63 189 - 1990: 24(int) CompositeExtract 1986 1 - Store 1989 1990 - 1991: 64(ptr) AccessChain 31(data) 1981 63 202 - 1992: 24(int) CompositeExtract 1986 2 - Store 1991 1992 - 1993: 6(int) Load 8(invocation) - 1994: 71(ptr) AccessChain 31(data) 115 63 - 1995: 25(ivec4) Load 1994 - 1996: 17(ivec4) Load 19(ballot) - 1997: 25(ivec4) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 1995 1996 - 1998: 71(ptr) AccessChain 31(data) 1993 63 - Store 1998 1997 - 1999: 6(int) Load 8(invocation) - 2000: 90(ptr) AccessChain 31(data) 34 33 35 - 2001: 6(int) Load 2000 - 2002: 17(ivec4) Load 19(ballot) - 2003: 6(int) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 2001 2002 - 2004: 90(ptr) AccessChain 31(data) 1999 33 35 - Store 2004 2003 - 2005: 6(int) Load 8(invocation) - 2006: 40(ptr) AccessChain 31(data) 63 33 - 2007: 17(ivec4) Load 2006 - 2008: 96(ivec2) VectorShuffle 2007 2007 0 1 - 2009: 17(ivec4) Load 19(ballot) - 2010: 96(ivec2) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 2008 2009 - 2011: 90(ptr) AccessChain 31(data) 2005 33 35 - 2012: 6(int) CompositeExtract 2010 0 - Store 2011 2012 - 2013: 90(ptr) AccessChain 31(data) 2005 33 189 - 2014: 6(int) CompositeExtract 2010 1 - Store 2013 2014 - 2015: 6(int) Load 8(invocation) - 2016: 40(ptr) AccessChain 31(data) 33 33 - 2017: 17(ivec4) Load 2016 - 2018: 103(ivec3) VectorShuffle 2017 2017 0 1 2 - 2019: 17(ivec4) Load 19(ballot) - 2020: 103(ivec3) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 2018 2019 - 2021: 90(ptr) AccessChain 31(data) 2015 33 35 - 2022: 6(int) CompositeExtract 2020 0 - Store 2021 2022 - 2023: 90(ptr) AccessChain 31(data) 2015 33 189 - 2024: 6(int) CompositeExtract 2020 1 - Store 2023 2024 - 2025: 90(ptr) AccessChain 31(data) 2015 33 202 - 2026: 6(int) CompositeExtract 2020 2 - Store 2025 2026 - 2027: 6(int) Load 8(invocation) - 2028: 40(ptr) AccessChain 31(data) 115 33 - 2029: 17(ivec4) Load 2028 - 2030: 17(ivec4) Load 19(ballot) - 2031: 17(ivec4) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 2029 2030 - 2032: 40(ptr) AccessChain 31(data) 2027 33 - Store 2032 2031 - 2033: 6(int) Load 8(invocation) - 2034: 116(ptr) AccessChain 31(data) 34 115 35 - 2035:26(float64_t) Load 2034 - 2036: 17(ivec4) Load 19(ballot) - 2037:26(float64_t) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 2035 2036 - 2038: 116(ptr) AccessChain 31(data) 2033 115 35 - Store 2038 2037 - 2039: 6(int) Load 8(invocation) - 2040: 123(ptr) AccessChain 31(data) 63 115 - 2041: 27(f64vec4) Load 2040 - 2042:122(f64vec2) VectorShuffle 2041 2041 0 1 - 2043: 17(ivec4) Load 19(ballot) - 2044:122(f64vec2) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 2042 2043 - 2045: 116(ptr) AccessChain 31(data) 2039 115 35 - 2046:26(float64_t) CompositeExtract 2044 0 - Store 2045 2046 - 2047: 116(ptr) AccessChain 31(data) 2039 115 189 - 2048:26(float64_t) CompositeExtract 2044 1 - Store 2047 2048 - 2049: 6(int) Load 8(invocation) - 2050: 123(ptr) AccessChain 31(data) 33 115 - 2051: 27(f64vec4) Load 2050 - 2052:130(f64vec3) VectorShuffle 2051 2051 0 1 2 - 2053: 17(ivec4) Load 19(ballot) - 2054:130(f64vec3) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 2052 2053 - 2055: 116(ptr) AccessChain 31(data) 2049 115 35 - 2056:26(float64_t) CompositeExtract 2054 0 - Store 2055 2056 - 2057: 116(ptr) AccessChain 31(data) 2049 115 189 - 2058:26(float64_t) CompositeExtract 2054 1 - Store 2057 2058 - 2059: 116(ptr) AccessChain 31(data) 2049 115 202 - 2060:26(float64_t) CompositeExtract 2054 2 - Store 2059 2060 - 2061: 6(int) Load 8(invocation) - 2062: 123(ptr) AccessChain 31(data) 115 115 - 2063: 27(f64vec4) Load 2062 - 2064: 17(ivec4) Load 19(ballot) - 2065: 27(f64vec4) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 2063 2064 - 2066: 123(ptr) AccessChain 31(data) 2061 115 - Store 2066 2065 - 2067: 6(int) Load 8(invocation) - 2068: 36(ptr) AccessChain 31(data) 34 34 35 - 2069: 22(float) Load 2068 - 2070: 17(ivec4) Load 19(ballot) - 2071: 22(float) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 2069 2070 - 2072: 36(ptr) AccessChain 31(data) 2067 34 35 - Store 2072 2071 - 2073: 6(int) Load 8(invocation) - 2074: 44(ptr) AccessChain 31(data) 63 34 - 2075: 23(fvec4) Load 2074 - 2076: 43(fvec2) VectorShuffle 2075 2075 0 1 - 2077: 17(ivec4) Load 19(ballot) - 2078: 43(fvec2) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 2076 2077 - 2079: 36(ptr) AccessChain 31(data) 2073 34 35 - 2080: 22(float) CompositeExtract 2078 0 - Store 2079 2080 - 2081: 36(ptr) AccessChain 31(data) 2073 34 189 - 2082: 22(float) CompositeExtract 2078 1 - Store 2081 2082 - 2083: 6(int) Load 8(invocation) - 2084: 44(ptr) AccessChain 31(data) 33 34 - 2085: 23(fvec4) Load 2084 - 2086: 51(fvec3) VectorShuffle 2085 2085 0 1 2 - 2087: 17(ivec4) Load 19(ballot) - 2088: 51(fvec3) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 2086 2087 - 2089: 36(ptr) AccessChain 31(data) 2083 34 35 - 2090: 22(float) CompositeExtract 2088 0 - Store 2089 2090 - 2091: 36(ptr) AccessChain 31(data) 2083 34 189 - 2092: 22(float) CompositeExtract 2088 1 - Store 2091 2092 - 2093: 36(ptr) AccessChain 31(data) 2083 34 202 - 2094: 22(float) CompositeExtract 2088 2 - Store 2093 2094 - 2095: 6(int) Load 8(invocation) - 2096: 44(ptr) AccessChain 31(data) 115 34 - 2097: 23(fvec4) Load 2096 - 2098: 17(ivec4) Load 19(ballot) - 2099: 23(fvec4) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 2097 2098 - 2100: 44(ptr) AccessChain 31(data) 2095 34 - Store 2100 2099 - 2101: 6(int) Load 8(invocation) - 2102: 64(ptr) AccessChain 31(data) 34 63 35 - 2103: 24(int) Load 2102 - 2104: 17(ivec4) Load 19(ballot) - 2105: 24(int) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 2103 2104 - 2106: 64(ptr) AccessChain 31(data) 2101 63 35 - Store 2106 2105 - 2107: 6(int) Load 8(invocation) - 2108: 71(ptr) AccessChain 31(data) 63 63 - 2109: 25(ivec4) Load 2108 - 2110: 70(ivec2) VectorShuffle 2109 2109 0 1 - 2111: 17(ivec4) Load 19(ballot) - 2112: 70(ivec2) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 2110 2111 - 2113: 64(ptr) AccessChain 31(data) 2107 63 35 - 2114: 24(int) CompositeExtract 2112 0 - Store 2113 2114 - 2115: 64(ptr) AccessChain 31(data) 2107 63 189 - 2116: 24(int) CompositeExtract 2112 1 - Store 2115 2116 - 2117: 6(int) Load 8(invocation) - 2118: 71(ptr) AccessChain 31(data) 33 63 - 2119: 25(ivec4) Load 2118 - 2120: 78(ivec3) VectorShuffle 2119 2119 0 1 2 - 2121: 17(ivec4) Load 19(ballot) - 2122: 78(ivec3) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 2120 2121 - 2123: 64(ptr) AccessChain 31(data) 2117 63 35 - 2124: 24(int) CompositeExtract 2122 0 - Store 2123 2124 - 2125: 64(ptr) AccessChain 31(data) 2117 63 189 - 2126: 24(int) CompositeExtract 2122 1 - Store 2125 2126 - 2127: 64(ptr) AccessChain 31(data) 2117 63 202 - 2128: 24(int) CompositeExtract 2122 2 - Store 2127 2128 - 2129: 6(int) Load 8(invocation) - 2130: 71(ptr) AccessChain 31(data) 115 63 - 2131: 25(ivec4) Load 2130 - 2132: 17(ivec4) Load 19(ballot) - 2133: 25(ivec4) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 2131 2132 - 2134: 71(ptr) AccessChain 31(data) 2129 63 - Store 2134 2133 - 2135: 6(int) Load 8(invocation) - 2136: 90(ptr) AccessChain 31(data) 34 33 35 - 2137: 6(int) Load 2136 - 2138: 17(ivec4) Load 19(ballot) - 2139: 6(int) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 2137 2138 - 2140: 90(ptr) AccessChain 31(data) 2135 33 35 - Store 2140 2139 - 2141: 6(int) Load 8(invocation) - 2142: 40(ptr) AccessChain 31(data) 63 33 - 2143: 17(ivec4) Load 2142 - 2144: 96(ivec2) VectorShuffle 2143 2143 0 1 - 2145: 17(ivec4) Load 19(ballot) - 2146: 96(ivec2) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 2144 2145 - 2147: 90(ptr) AccessChain 31(data) 2141 33 35 - 2148: 6(int) CompositeExtract 2146 0 - Store 2147 2148 - 2149: 90(ptr) AccessChain 31(data) 2141 33 189 - 2150: 6(int) CompositeExtract 2146 1 - Store 2149 2150 - 2151: 6(int) Load 8(invocation) - 2152: 40(ptr) AccessChain 31(data) 33 33 - 2153: 17(ivec4) Load 2152 - 2154: 103(ivec3) VectorShuffle 2153 2153 0 1 2 - 2155: 17(ivec4) Load 19(ballot) - 2156: 103(ivec3) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 2154 2155 - 2157: 90(ptr) AccessChain 31(data) 2151 33 35 - 2158: 6(int) CompositeExtract 2156 0 - Store 2157 2158 - 2159: 90(ptr) AccessChain 31(data) 2151 33 189 - 2160: 6(int) CompositeExtract 2156 1 - Store 2159 2160 - 2161: 90(ptr) AccessChain 31(data) 2151 33 202 - 2162: 6(int) CompositeExtract 2156 2 - Store 2161 2162 - 2163: 6(int) Load 8(invocation) - 2164: 40(ptr) AccessChain 31(data) 115 33 - 2165: 17(ivec4) Load 2164 - 2166: 17(ivec4) Load 19(ballot) - 2167: 17(ivec4) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 2165 2166 - 2168: 40(ptr) AccessChain 31(data) 2163 33 - Store 2168 2167 - 2169: 6(int) Load 8(invocation) - 2170: 116(ptr) AccessChain 31(data) 34 115 35 - 2171:26(float64_t) Load 2170 - 2172: 17(ivec4) Load 19(ballot) - 2173:26(float64_t) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 2171 2172 - 2174: 116(ptr) AccessChain 31(data) 2169 115 35 - Store 2174 2173 - 2175: 6(int) Load 8(invocation) - 2176: 123(ptr) AccessChain 31(data) 63 115 - 2177: 27(f64vec4) Load 2176 - 2178:122(f64vec2) VectorShuffle 2177 2177 0 1 - 2179: 17(ivec4) Load 19(ballot) - 2180:122(f64vec2) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 2178 2179 - 2181: 116(ptr) AccessChain 31(data) 2175 115 35 - 2182:26(float64_t) CompositeExtract 2180 0 - Store 2181 2182 - 2183: 116(ptr) AccessChain 31(data) 2175 115 189 - 2184:26(float64_t) CompositeExtract 2180 1 - Store 2183 2184 - 2185: 6(int) Load 8(invocation) - 2186: 123(ptr) AccessChain 31(data) 33 115 - 2187: 27(f64vec4) Load 2186 - 2188:130(f64vec3) VectorShuffle 2187 2187 0 1 2 - 2189: 17(ivec4) Load 19(ballot) - 2190:130(f64vec3) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 2188 2189 - 2191: 116(ptr) AccessChain 31(data) 2185 115 35 - 2192:26(float64_t) CompositeExtract 2190 0 - Store 2191 2192 - 2193: 116(ptr) AccessChain 31(data) 2185 115 189 - 2194:26(float64_t) CompositeExtract 2190 1 - Store 2193 2194 - 2195: 116(ptr) AccessChain 31(data) 2185 115 202 - 2196:26(float64_t) CompositeExtract 2190 2 - Store 2195 2196 - 2197: 6(int) Load 8(invocation) - 2198: 123(ptr) AccessChain 31(data) 115 115 - 2199: 27(f64vec4) Load 2198 - 2200: 17(ivec4) Load 19(ballot) - 2201: 27(f64vec4) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 2199 2200 - 2202: 123(ptr) AccessChain 31(data) 2197 115 - Store 2202 2201 - 2203: 6(int) Load 8(invocation) - 2204: 36(ptr) AccessChain 31(data) 34 34 35 - 2205: 22(float) Load 2204 - 2206: 17(ivec4) Load 19(ballot) - 2207: 22(float) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 2205 2206 - 2208: 36(ptr) AccessChain 31(data) 2203 34 35 - Store 2208 2207 - 2209: 6(int) Load 8(invocation) - 2210: 44(ptr) AccessChain 31(data) 63 34 - 2211: 23(fvec4) Load 2210 - 2212: 43(fvec2) VectorShuffle 2211 2211 0 1 - 2213: 17(ivec4) Load 19(ballot) - 2214: 43(fvec2) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 2212 2213 - 2215: 36(ptr) AccessChain 31(data) 2209 34 35 - 2216: 22(float) CompositeExtract 2214 0 - Store 2215 2216 - 2217: 36(ptr) AccessChain 31(data) 2209 34 189 - 2218: 22(float) CompositeExtract 2214 1 - Store 2217 2218 - 2219: 6(int) Load 8(invocation) - 2220: 44(ptr) AccessChain 31(data) 33 34 - 2221: 23(fvec4) Load 2220 - 2222: 51(fvec3) VectorShuffle 2221 2221 0 1 2 - 2223: 17(ivec4) Load 19(ballot) - 2224: 51(fvec3) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 2222 2223 - 2225: 36(ptr) AccessChain 31(data) 2219 34 35 - 2226: 22(float) CompositeExtract 2224 0 - Store 2225 2226 - 2227: 36(ptr) AccessChain 31(data) 2219 34 189 - 2228: 22(float) CompositeExtract 2224 1 - Store 2227 2228 - 2229: 36(ptr) AccessChain 31(data) 2219 34 202 - 2230: 22(float) CompositeExtract 2224 2 - Store 2229 2230 - 2231: 6(int) Load 8(invocation) - 2232: 44(ptr) AccessChain 31(data) 115 34 - 2233: 23(fvec4) Load 2232 - 2234: 17(ivec4) Load 19(ballot) - 2235: 23(fvec4) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 2233 2234 - 2236: 44(ptr) AccessChain 31(data) 2231 34 - Store 2236 2235 - 2237: 6(int) Load 8(invocation) - 2238: 64(ptr) AccessChain 31(data) 34 63 35 - 2239: 24(int) Load 2238 - 2240: 17(ivec4) Load 19(ballot) - 2241: 24(int) GroupNonUniformSMin 178 PartitionedExclusiveScanNV 2239 2240 - 2242: 64(ptr) AccessChain 31(data) 2237 63 35 - Store 2242 2241 - 2243: 6(int) Load 8(invocation) - 2244: 71(ptr) AccessChain 31(data) 63 63 - 2245: 25(ivec4) Load 2244 - 2246: 70(ivec2) VectorShuffle 2245 2245 0 1 - 2247: 17(ivec4) Load 19(ballot) - 2248: 70(ivec2) GroupNonUniformSMin 178 PartitionedExclusiveScanNV 2246 2247 - 2249: 64(ptr) AccessChain 31(data) 2243 63 35 - 2250: 24(int) CompositeExtract 2248 0 - Store 2249 2250 - 2251: 64(ptr) AccessChain 31(data) 2243 63 189 - 2252: 24(int) CompositeExtract 2248 1 - Store 2251 2252 - 2253: 6(int) Load 8(invocation) - 2254: 71(ptr) AccessChain 31(data) 33 63 - 2255: 25(ivec4) Load 2254 - 2256: 78(ivec3) VectorShuffle 2255 2255 0 1 2 - 2257: 17(ivec4) Load 19(ballot) - 2258: 78(ivec3) GroupNonUniformSMin 178 PartitionedExclusiveScanNV 2256 2257 - 2259: 64(ptr) AccessChain 31(data) 2253 63 35 - 2260: 24(int) CompositeExtract 2258 0 - Store 2259 2260 - 2261: 64(ptr) AccessChain 31(data) 2253 63 189 - 2262: 24(int) CompositeExtract 2258 1 - Store 2261 2262 - 2263: 64(ptr) AccessChain 31(data) 2253 63 202 - 2264: 24(int) CompositeExtract 2258 2 - Store 2263 2264 - 2265: 6(int) Load 8(invocation) - 2266: 71(ptr) AccessChain 31(data) 115 63 - 2267: 25(ivec4) Load 2266 - 2268: 17(ivec4) Load 19(ballot) - 2269: 25(ivec4) GroupNonUniformSMin 178 PartitionedExclusiveScanNV 2267 2268 - 2270: 71(ptr) AccessChain 31(data) 2265 63 - Store 2270 2269 - 2271: 6(int) Load 8(invocation) - 2272: 90(ptr) AccessChain 31(data) 34 33 35 - 2273: 6(int) Load 2272 - 2274: 17(ivec4) Load 19(ballot) - 2275: 6(int) GroupNonUniformUMin 178 PartitionedExclusiveScanNV 2273 2274 - 2276: 90(ptr) AccessChain 31(data) 2271 33 35 - Store 2276 2275 - 2277: 6(int) Load 8(invocation) - 2278: 40(ptr) AccessChain 31(data) 63 33 - 2279: 17(ivec4) Load 2278 - 2280: 96(ivec2) VectorShuffle 2279 2279 0 1 - 2281: 17(ivec4) Load 19(ballot) - 2282: 96(ivec2) GroupNonUniformUMin 178 PartitionedExclusiveScanNV 2280 2281 - 2283: 90(ptr) AccessChain 31(data) 2277 33 35 - 2284: 6(int) CompositeExtract 2282 0 - Store 2283 2284 - 2285: 90(ptr) AccessChain 31(data) 2277 33 189 - 2286: 6(int) CompositeExtract 2282 1 - Store 2285 2286 - 2287: 6(int) Load 8(invocation) - 2288: 40(ptr) AccessChain 31(data) 33 33 - 2289: 17(ivec4) Load 2288 - 2290: 103(ivec3) VectorShuffle 2289 2289 0 1 2 - 2291: 17(ivec4) Load 19(ballot) - 2292: 103(ivec3) GroupNonUniformUMin 178 PartitionedExclusiveScanNV 2290 2291 - 2293: 90(ptr) AccessChain 31(data) 2287 33 35 - 2294: 6(int) CompositeExtract 2292 0 - Store 2293 2294 - 2295: 90(ptr) AccessChain 31(data) 2287 33 189 - 2296: 6(int) CompositeExtract 2292 1 - Store 2295 2296 - 2297: 90(ptr) AccessChain 31(data) 2287 33 202 - 2298: 6(int) CompositeExtract 2292 2 - Store 2297 2298 - 2299: 6(int) Load 8(invocation) - 2300: 40(ptr) AccessChain 31(data) 115 33 - 2301: 17(ivec4) Load 2300 - 2302: 17(ivec4) Load 19(ballot) - 2303: 17(ivec4) GroupNonUniformUMin 178 PartitionedExclusiveScanNV 2301 2302 - 2304: 40(ptr) AccessChain 31(data) 2299 33 - Store 2304 2303 - 2305: 6(int) Load 8(invocation) - 2306: 116(ptr) AccessChain 31(data) 34 115 35 - 2307:26(float64_t) Load 2306 - 2308: 17(ivec4) Load 19(ballot) - 2309:26(float64_t) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 2307 2308 - 2310: 116(ptr) AccessChain 31(data) 2305 115 35 - Store 2310 2309 - 2311: 6(int) Load 8(invocation) - 2312: 123(ptr) AccessChain 31(data) 63 115 - 2313: 27(f64vec4) Load 2312 - 2314:122(f64vec2) VectorShuffle 2313 2313 0 1 - 2315: 17(ivec4) Load 19(ballot) - 2316:122(f64vec2) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 2314 2315 - 2317: 116(ptr) AccessChain 31(data) 2311 115 35 - 2318:26(float64_t) CompositeExtract 2316 0 - Store 2317 2318 - 2319: 116(ptr) AccessChain 31(data) 2311 115 189 - 2320:26(float64_t) CompositeExtract 2316 1 - Store 2319 2320 - 2321: 6(int) Load 8(invocation) - 2322: 123(ptr) AccessChain 31(data) 33 115 - 2323: 27(f64vec4) Load 2322 - 2324:130(f64vec3) VectorShuffle 2323 2323 0 1 2 - 2325: 17(ivec4) Load 19(ballot) - 2326:130(f64vec3) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 2324 2325 - 2327: 116(ptr) AccessChain 31(data) 2321 115 35 - 2328:26(float64_t) CompositeExtract 2326 0 - Store 2327 2328 - 2329: 116(ptr) AccessChain 31(data) 2321 115 189 - 2330:26(float64_t) CompositeExtract 2326 1 - Store 2329 2330 - 2331: 116(ptr) AccessChain 31(data) 2321 115 202 - 2332:26(float64_t) CompositeExtract 2326 2 - Store 2331 2332 - 2333: 6(int) Load 8(invocation) - 2334: 123(ptr) AccessChain 31(data) 115 115 - 2335: 27(f64vec4) Load 2334 - 2336: 17(ivec4) Load 19(ballot) - 2337: 27(f64vec4) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 2335 2336 - 2338: 123(ptr) AccessChain 31(data) 2333 115 - Store 2338 2337 - 2339: 6(int) Load 8(invocation) - 2340: 36(ptr) AccessChain 31(data) 34 34 35 - 2341: 22(float) Load 2340 - 2342: 17(ivec4) Load 19(ballot) - 2343: 22(float) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2341 2342 - 2344: 36(ptr) AccessChain 31(data) 2339 34 35 - Store 2344 2343 - 2345: 6(int) Load 8(invocation) - 2346: 44(ptr) AccessChain 31(data) 63 34 - 2347: 23(fvec4) Load 2346 - 2348: 43(fvec2) VectorShuffle 2347 2347 0 1 - 2349: 17(ivec4) Load 19(ballot) - 2350: 43(fvec2) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2348 2349 - 2351: 36(ptr) AccessChain 31(data) 2345 34 35 - 2352: 22(float) CompositeExtract 2350 0 - Store 2351 2352 - 2353: 36(ptr) AccessChain 31(data) 2345 34 189 - 2354: 22(float) CompositeExtract 2350 1 - Store 2353 2354 - 2355: 6(int) Load 8(invocation) - 2356: 44(ptr) AccessChain 31(data) 33 34 - 2357: 23(fvec4) Load 2356 - 2358: 51(fvec3) VectorShuffle 2357 2357 0 1 2 - 2359: 17(ivec4) Load 19(ballot) - 2360: 51(fvec3) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2358 2359 - 2361: 36(ptr) AccessChain 31(data) 2355 34 35 - 2362: 22(float) CompositeExtract 2360 0 - Store 2361 2362 - 2363: 36(ptr) AccessChain 31(data) 2355 34 189 - 2364: 22(float) CompositeExtract 2360 1 - Store 2363 2364 - 2365: 36(ptr) AccessChain 31(data) 2355 34 202 - 2366: 22(float) CompositeExtract 2360 2 - Store 2365 2366 - 2367: 6(int) Load 8(invocation) - 2368: 44(ptr) AccessChain 31(data) 115 34 - 2369: 23(fvec4) Load 2368 - 2370: 17(ivec4) Load 19(ballot) - 2371: 23(fvec4) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2369 2370 - 2372: 44(ptr) AccessChain 31(data) 2367 34 - Store 2372 2371 - 2373: 6(int) Load 8(invocation) - 2374: 64(ptr) AccessChain 31(data) 34 63 35 - 2375: 24(int) Load 2374 - 2376: 17(ivec4) Load 19(ballot) - 2377: 24(int) GroupNonUniformSMax 178 PartitionedExclusiveScanNV 2375 2376 - 2378: 64(ptr) AccessChain 31(data) 2373 63 35 - Store 2378 2377 - 2379: 6(int) Load 8(invocation) - 2380: 71(ptr) AccessChain 31(data) 63 63 - 2381: 25(ivec4) Load 2380 - 2382: 70(ivec2) VectorShuffle 2381 2381 0 1 - 2383: 17(ivec4) Load 19(ballot) - 2384: 70(ivec2) GroupNonUniformSMax 178 PartitionedExclusiveScanNV 2382 2383 - 2385: 64(ptr) AccessChain 31(data) 2379 63 35 - 2386: 24(int) CompositeExtract 2384 0 - Store 2385 2386 - 2387: 64(ptr) AccessChain 31(data) 2379 63 189 - 2388: 24(int) CompositeExtract 2384 1 - Store 2387 2388 - 2389: 6(int) Load 8(invocation) - 2390: 71(ptr) AccessChain 31(data) 33 63 - 2391: 25(ivec4) Load 2390 - 2392: 78(ivec3) VectorShuffle 2391 2391 0 1 2 - 2393: 17(ivec4) Load 19(ballot) - 2394: 78(ivec3) GroupNonUniformSMax 178 PartitionedExclusiveScanNV 2392 2393 - 2395: 64(ptr) AccessChain 31(data) 2389 63 35 - 2396: 24(int) CompositeExtract 2394 0 - Store 2395 2396 - 2397: 64(ptr) AccessChain 31(data) 2389 63 189 - 2398: 24(int) CompositeExtract 2394 1 - Store 2397 2398 - 2399: 64(ptr) AccessChain 31(data) 2389 63 202 - 2400: 24(int) CompositeExtract 2394 2 - Store 2399 2400 - 2401: 6(int) Load 8(invocation) - 2402: 71(ptr) AccessChain 31(data) 115 63 - 2403: 25(ivec4) Load 2402 - 2404: 17(ivec4) Load 19(ballot) - 2405: 25(ivec4) GroupNonUniformSMax 178 PartitionedExclusiveScanNV 2403 2404 - 2406: 71(ptr) AccessChain 31(data) 2401 63 - Store 2406 2405 - 2407: 6(int) Load 8(invocation) - 2408: 90(ptr) AccessChain 31(data) 34 33 35 - 2409: 6(int) Load 2408 - 2410: 17(ivec4) Load 19(ballot) - 2411: 6(int) GroupNonUniformUMax 178 PartitionedExclusiveScanNV 2409 2410 - 2412: 90(ptr) AccessChain 31(data) 2407 33 35 - Store 2412 2411 - 2413: 6(int) Load 8(invocation) - 2414: 40(ptr) AccessChain 31(data) 63 33 - 2415: 17(ivec4) Load 2414 - 2416: 96(ivec2) VectorShuffle 2415 2415 0 1 - 2417: 17(ivec4) Load 19(ballot) - 2418: 96(ivec2) GroupNonUniformUMax 178 PartitionedExclusiveScanNV 2416 2417 - 2419: 90(ptr) AccessChain 31(data) 2413 33 35 - 2420: 6(int) CompositeExtract 2418 0 - Store 2419 2420 - 2421: 90(ptr) AccessChain 31(data) 2413 33 189 - 2422: 6(int) CompositeExtract 2418 1 - Store 2421 2422 - 2423: 6(int) Load 8(invocation) - 2424: 40(ptr) AccessChain 31(data) 33 33 - 2425: 17(ivec4) Load 2424 - 2426: 103(ivec3) VectorShuffle 2425 2425 0 1 2 - 2427: 17(ivec4) Load 19(ballot) - 2428: 103(ivec3) GroupNonUniformUMax 178 PartitionedExclusiveScanNV 2426 2427 - 2429: 90(ptr) AccessChain 31(data) 2423 33 35 - 2430: 6(int) CompositeExtract 2428 0 - Store 2429 2430 - 2431: 90(ptr) AccessChain 31(data) 2423 33 189 - 2432: 6(int) CompositeExtract 2428 1 - Store 2431 2432 - 2433: 90(ptr) AccessChain 31(data) 2423 33 202 - 2434: 6(int) CompositeExtract 2428 2 - Store 2433 2434 - 2435: 6(int) Load 8(invocation) - 2436: 40(ptr) AccessChain 31(data) 115 33 - 2437: 17(ivec4) Load 2436 - 2438: 17(ivec4) Load 19(ballot) - 2439: 17(ivec4) GroupNonUniformUMax 178 PartitionedExclusiveScanNV 2437 2438 - 2440: 40(ptr) AccessChain 31(data) 2435 33 - Store 2440 2439 - 2441: 6(int) Load 8(invocation) - 2442: 116(ptr) AccessChain 31(data) 34 115 35 - 2443:26(float64_t) Load 2442 - 2444: 17(ivec4) Load 19(ballot) - 2445:26(float64_t) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2443 2444 - 2446: 116(ptr) AccessChain 31(data) 2441 115 35 - Store 2446 2445 - 2447: 6(int) Load 8(invocation) - 2448: 123(ptr) AccessChain 31(data) 63 115 - 2449: 27(f64vec4) Load 2448 - 2450:122(f64vec2) VectorShuffle 2449 2449 0 1 - 2451: 17(ivec4) Load 19(ballot) - 2452:122(f64vec2) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2450 2451 - 2453: 116(ptr) AccessChain 31(data) 2447 115 35 - 2454:26(float64_t) CompositeExtract 2452 0 - Store 2453 2454 - 2455: 116(ptr) AccessChain 31(data) 2447 115 189 - 2456:26(float64_t) CompositeExtract 2452 1 - Store 2455 2456 - 2457: 6(int) Load 8(invocation) - 2458: 123(ptr) AccessChain 31(data) 33 115 - 2459: 27(f64vec4) Load 2458 - 2460:130(f64vec3) VectorShuffle 2459 2459 0 1 2 - 2461: 17(ivec4) Load 19(ballot) - 2462:130(f64vec3) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2460 2461 - 2463: 116(ptr) AccessChain 31(data) 2457 115 35 - 2464:26(float64_t) CompositeExtract 2462 0 - Store 2463 2464 - 2465: 116(ptr) AccessChain 31(data) 2457 115 189 - 2466:26(float64_t) CompositeExtract 2462 1 - Store 2465 2466 - 2467: 116(ptr) AccessChain 31(data) 2457 115 202 - 2468:26(float64_t) CompositeExtract 2462 2 - Store 2467 2468 - 2469: 6(int) Load 8(invocation) - 2470: 123(ptr) AccessChain 31(data) 115 115 - 2471: 27(f64vec4) Load 2470 - 2472: 17(ivec4) Load 19(ballot) - 2473: 27(f64vec4) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2471 2472 - 2474: 123(ptr) AccessChain 31(data) 2469 115 - Store 2474 2473 - 2475: 6(int) Load 8(invocation) - 2476: 64(ptr) AccessChain 31(data) 34 63 35 - 2477: 24(int) Load 2476 - 2478: 17(ivec4) Load 19(ballot) - 2479: 24(int) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2477 2478 - 2480: 64(ptr) AccessChain 31(data) 2475 63 35 - Store 2480 2479 - 2481: 6(int) Load 8(invocation) - 2482: 71(ptr) AccessChain 31(data) 63 63 - 2483: 25(ivec4) Load 2482 - 2484: 70(ivec2) VectorShuffle 2483 2483 0 1 - 2485: 17(ivec4) Load 19(ballot) - 2486: 70(ivec2) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2484 2485 - 2487: 64(ptr) AccessChain 31(data) 2481 63 35 - 2488: 24(int) CompositeExtract 2486 0 - Store 2487 2488 - 2489: 64(ptr) AccessChain 31(data) 2481 63 189 - 2490: 24(int) CompositeExtract 2486 1 - Store 2489 2490 - 2491: 6(int) Load 8(invocation) - 2492: 71(ptr) AccessChain 31(data) 33 63 - 2493: 25(ivec4) Load 2492 - 2494: 78(ivec3) VectorShuffle 2493 2493 0 1 2 - 2495: 17(ivec4) Load 19(ballot) - 2496: 78(ivec3) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2494 2495 - 2497: 64(ptr) AccessChain 31(data) 2491 63 35 - 2498: 24(int) CompositeExtract 2496 0 - Store 2497 2498 - 2499: 64(ptr) AccessChain 31(data) 2491 63 189 - 2500: 24(int) CompositeExtract 2496 1 - Store 2499 2500 - 2501: 64(ptr) AccessChain 31(data) 2491 63 202 - 2502: 24(int) CompositeExtract 2496 2 - Store 2501 2502 - 2503: 6(int) Load 8(invocation) - 2504: 71(ptr) AccessChain 31(data) 115 63 - 2505: 25(ivec4) Load 2504 - 2506: 17(ivec4) Load 19(ballot) - 2507: 25(ivec4) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2505 2506 - 2508: 71(ptr) AccessChain 31(data) 2503 63 - Store 2508 2507 - 2509: 6(int) Load 8(invocation) - 2510: 90(ptr) AccessChain 31(data) 34 33 35 - 2511: 6(int) Load 2510 - 2512: 17(ivec4) Load 19(ballot) - 2513: 6(int) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2511 2512 - 2514: 90(ptr) AccessChain 31(data) 2509 33 35 - Store 2514 2513 - 2515: 6(int) Load 8(invocation) - 2516: 40(ptr) AccessChain 31(data) 63 33 - 2517: 17(ivec4) Load 2516 - 2518: 96(ivec2) VectorShuffle 2517 2517 0 1 - 2519: 17(ivec4) Load 19(ballot) - 2520: 96(ivec2) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2518 2519 - 2521: 90(ptr) AccessChain 31(data) 2515 33 35 - 2522: 6(int) CompositeExtract 2520 0 - Store 2521 2522 - 2523: 90(ptr) AccessChain 31(data) 2515 33 189 - 2524: 6(int) CompositeExtract 2520 1 - Store 2523 2524 - 2525: 6(int) Load 8(invocation) - 2526: 40(ptr) AccessChain 31(data) 33 33 - 2527: 17(ivec4) Load 2526 - 2528: 103(ivec3) VectorShuffle 2527 2527 0 1 2 - 2529: 17(ivec4) Load 19(ballot) - 2530: 103(ivec3) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2528 2529 - 2531: 90(ptr) AccessChain 31(data) 2525 33 35 - 2532: 6(int) CompositeExtract 2530 0 - Store 2531 2532 - 2533: 90(ptr) AccessChain 31(data) 2525 33 189 - 2534: 6(int) CompositeExtract 2530 1 - Store 2533 2534 - 2535: 90(ptr) AccessChain 31(data) 2525 33 202 - 2536: 6(int) CompositeExtract 2530 2 - Store 2535 2536 - 2537: 6(int) Load 8(invocation) - 2538: 40(ptr) AccessChain 31(data) 115 33 - 2539: 17(ivec4) Load 2538 - 2540: 17(ivec4) Load 19(ballot) - 2541: 17(ivec4) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2539 2540 - 2542: 40(ptr) AccessChain 31(data) 2537 33 - Store 2542 2541 - 2543: 6(int) Load 8(invocation) - 2544: 64(ptr) AccessChain 31(data) 34 63 35 - 2545: 24(int) Load 2544 - 2546: 144(bool) SLessThan 2545 34 - 2547: 17(ivec4) Load 19(ballot) - 2548: 144(bool) GroupNonUniformLogicalAnd 178 PartitionedExclusiveScanNV 2546 2547 - 2549: 24(int) Select 2548 63 34 - 2550: 64(ptr) AccessChain 31(data) 2543 63 35 - Store 2550 2549 - 2551: 6(int) Load 8(invocation) - 2552: 71(ptr) AccessChain 31(data) 63 63 - 2553: 25(ivec4) Load 2552 - 2554: 70(ivec2) VectorShuffle 2553 2553 0 1 - 2555: 152(bvec2) SLessThan 2554 801 - 2556: 17(ivec4) Load 19(ballot) - 2557: 152(bvec2) GroupNonUniformLogicalAnd 178 PartitionedExclusiveScanNV 2555 2556 - 2558: 70(ivec2) Select 2557 805 801 - 2559: 64(ptr) AccessChain 31(data) 2551 63 35 - 2560: 24(int) CompositeExtract 2558 0 - Store 2559 2560 - 2561: 64(ptr) AccessChain 31(data) 2551 63 189 - 2562: 24(int) CompositeExtract 2558 1 - Store 2561 2562 - 2563: 6(int) Load 8(invocation) - 2564: 71(ptr) AccessChain 31(data) 63 63 - 2565: 25(ivec4) Load 2564 - 2566: 78(ivec3) VectorShuffle 2565 2565 0 1 2 - 2567: 161(bvec3) SLessThan 2566 815 - 2568: 17(ivec4) Load 19(ballot) - 2569: 161(bvec3) GroupNonUniformLogicalAnd 178 PartitionedExclusiveScanNV 2567 2568 - 2570: 78(ivec3) Select 2569 819 815 - 2571: 64(ptr) AccessChain 31(data) 2563 63 35 - 2572: 24(int) CompositeExtract 2570 0 - Store 2571 2572 - 2573: 64(ptr) AccessChain 31(data) 2563 63 189 - 2574: 24(int) CompositeExtract 2570 1 - Store 2573 2574 - 2575: 64(ptr) AccessChain 31(data) 2563 63 202 - 2576: 24(int) CompositeExtract 2570 2 - Store 2575 2576 - 2577: 6(int) Load 8(invocation) - 2578: 71(ptr) AccessChain 31(data) 63 63 - 2579: 25(ivec4) Load 2578 - 2580: 169(bvec4) SLessThan 2579 830 - 2581: 17(ivec4) Load 19(ballot) - 2582: 169(bvec4) GroupNonUniformLogicalAnd 178 PartitionedExclusiveScanNV 2580 2581 - 2583: 25(ivec4) Select 2582 834 830 - 2584: 71(ptr) AccessChain 31(data) 2577 63 - Store 2584 2583 - 2585: 6(int) Load 8(invocation) - 2586: 64(ptr) AccessChain 31(data) 34 63 35 - 2587: 24(int) Load 2586 - 2588: 17(ivec4) Load 19(ballot) - 2589: 24(int) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2587 2588 - 2590: 64(ptr) AccessChain 31(data) 2585 63 35 - Store 2590 2589 - 2591: 6(int) Load 8(invocation) - 2592: 71(ptr) AccessChain 31(data) 63 63 - 2593: 25(ivec4) Load 2592 - 2594: 70(ivec2) VectorShuffle 2593 2593 0 1 - 2595: 17(ivec4) Load 19(ballot) - 2596: 70(ivec2) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2594 2595 - 2597: 64(ptr) AccessChain 31(data) 2591 63 35 - 2598: 24(int) CompositeExtract 2596 0 - Store 2597 2598 - 2599: 64(ptr) AccessChain 31(data) 2591 63 189 - 2600: 24(int) CompositeExtract 2596 1 - Store 2599 2600 - 2601: 6(int) Load 8(invocation) - 2602: 71(ptr) AccessChain 31(data) 33 63 - 2603: 25(ivec4) Load 2602 - 2604: 78(ivec3) VectorShuffle 2603 2603 0 1 2 - 2605: 17(ivec4) Load 19(ballot) - 2606: 78(ivec3) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2604 2605 - 2607: 64(ptr) AccessChain 31(data) 2601 63 35 - 2608: 24(int) CompositeExtract 2606 0 - Store 2607 2608 - 2609: 64(ptr) AccessChain 31(data) 2601 63 189 - 2610: 24(int) CompositeExtract 2606 1 - Store 2609 2610 - 2611: 64(ptr) AccessChain 31(data) 2601 63 202 - 2612: 24(int) CompositeExtract 2606 2 - Store 2611 2612 - 2613: 6(int) Load 8(invocation) - 2614: 71(ptr) AccessChain 31(data) 115 63 - 2615: 25(ivec4) Load 2614 - 2616: 17(ivec4) Load 19(ballot) - 2617: 25(ivec4) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2615 2616 - 2618: 71(ptr) AccessChain 31(data) 2613 63 - Store 2618 2617 - 2619: 6(int) Load 8(invocation) - 2620: 90(ptr) AccessChain 31(data) 34 33 35 - 2621: 6(int) Load 2620 - 2622: 17(ivec4) Load 19(ballot) - 2623: 6(int) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2621 2622 - 2624: 90(ptr) AccessChain 31(data) 2619 33 35 - Store 2624 2623 - 2625: 6(int) Load 8(invocation) - 2626: 40(ptr) AccessChain 31(data) 63 33 - 2627: 17(ivec4) Load 2626 - 2628: 96(ivec2) VectorShuffle 2627 2627 0 1 - 2629: 17(ivec4) Load 19(ballot) - 2630: 96(ivec2) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2628 2629 - 2631: 90(ptr) AccessChain 31(data) 2625 33 35 - 2632: 6(int) CompositeExtract 2630 0 - Store 2631 2632 - 2633: 90(ptr) AccessChain 31(data) 2625 33 189 - 2634: 6(int) CompositeExtract 2630 1 - Store 2633 2634 - 2635: 6(int) Load 8(invocation) - 2636: 40(ptr) AccessChain 31(data) 33 33 - 2637: 17(ivec4) Load 2636 - 2638: 103(ivec3) VectorShuffle 2637 2637 0 1 2 - 2639: 17(ivec4) Load 19(ballot) - 2640: 103(ivec3) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2638 2639 - 2641: 90(ptr) AccessChain 31(data) 2635 33 35 - 2642: 6(int) CompositeExtract 2640 0 - Store 2641 2642 - 2643: 90(ptr) AccessChain 31(data) 2635 33 189 - 2644: 6(int) CompositeExtract 2640 1 - Store 2643 2644 - 2645: 90(ptr) AccessChain 31(data) 2635 33 202 - 2646: 6(int) CompositeExtract 2640 2 - Store 2645 2646 - 2647: 6(int) Load 8(invocation) - 2648: 40(ptr) AccessChain 31(data) 115 33 - 2649: 17(ivec4) Load 2648 - 2650: 17(ivec4) Load 19(ballot) - 2651: 17(ivec4) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2649 2650 - 2652: 40(ptr) AccessChain 31(data) 2647 33 - Store 2652 2651 - 2653: 6(int) Load 8(invocation) - 2654: 64(ptr) AccessChain 31(data) 34 63 35 - 2655: 24(int) Load 2654 - 2656: 144(bool) SLessThan 2655 34 - 2657: 17(ivec4) Load 19(ballot) - 2658: 144(bool) GroupNonUniformLogicalOr 178 PartitionedExclusiveScanNV 2656 2657 - 2659: 24(int) Select 2658 63 34 - 2660: 64(ptr) AccessChain 31(data) 2653 63 35 - Store 2660 2659 - 2661: 6(int) Load 8(invocation) - 2662: 71(ptr) AccessChain 31(data) 63 63 - 2663: 25(ivec4) Load 2662 - 2664: 70(ivec2) VectorShuffle 2663 2663 0 1 - 2665: 152(bvec2) SLessThan 2664 801 - 2666: 17(ivec4) Load 19(ballot) - 2667: 152(bvec2) GroupNonUniformLogicalOr 178 PartitionedExclusiveScanNV 2665 2666 - 2668: 70(ivec2) Select 2667 805 801 - 2669: 64(ptr) AccessChain 31(data) 2661 63 35 - 2670: 24(int) CompositeExtract 2668 0 - Store 2669 2670 - 2671: 64(ptr) AccessChain 31(data) 2661 63 189 - 2672: 24(int) CompositeExtract 2668 1 - Store 2671 2672 - 2673: 6(int) Load 8(invocation) - 2674: 71(ptr) AccessChain 31(data) 63 63 - 2675: 25(ivec4) Load 2674 - 2676: 78(ivec3) VectorShuffle 2675 2675 0 1 2 - 2677: 161(bvec3) SLessThan 2676 815 - 2678: 17(ivec4) Load 19(ballot) - 2679: 161(bvec3) GroupNonUniformLogicalOr 178 PartitionedExclusiveScanNV 2677 2678 - 2680: 78(ivec3) Select 2679 819 815 - 2681: 64(ptr) AccessChain 31(data) 2673 63 35 - 2682: 24(int) CompositeExtract 2680 0 - Store 2681 2682 - 2683: 64(ptr) AccessChain 31(data) 2673 63 189 - 2684: 24(int) CompositeExtract 2680 1 - Store 2683 2684 - 2685: 64(ptr) AccessChain 31(data) 2673 63 202 - 2686: 24(int) CompositeExtract 2680 2 - Store 2685 2686 - 2687: 6(int) Load 8(invocation) - 2688: 71(ptr) AccessChain 31(data) 63 63 - 2689: 25(ivec4) Load 2688 - 2690: 169(bvec4) SLessThan 2689 830 - 2691: 17(ivec4) Load 19(ballot) - 2692: 169(bvec4) GroupNonUniformLogicalOr 178 PartitionedExclusiveScanNV 2690 2691 - 2693: 25(ivec4) Select 2692 834 830 - 2694: 71(ptr) AccessChain 31(data) 2687 63 - Store 2694 2693 - 2695: 6(int) Load 8(invocation) - 2696: 64(ptr) AccessChain 31(data) 34 63 35 - 2697: 24(int) Load 2696 - 2698: 17(ivec4) Load 19(ballot) - 2699: 24(int) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2697 2698 - 2700: 64(ptr) AccessChain 31(data) 2695 63 35 - Store 2700 2699 - 2701: 6(int) Load 8(invocation) - 2702: 71(ptr) AccessChain 31(data) 63 63 - 2703: 25(ivec4) Load 2702 - 2704: 70(ivec2) VectorShuffle 2703 2703 0 1 - 2705: 17(ivec4) Load 19(ballot) - 2706: 70(ivec2) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2704 2705 - 2707: 64(ptr) AccessChain 31(data) 2701 63 35 - 2708: 24(int) CompositeExtract 2706 0 - Store 2707 2708 - 2709: 64(ptr) AccessChain 31(data) 2701 63 189 - 2710: 24(int) CompositeExtract 2706 1 - Store 2709 2710 - 2711: 6(int) Load 8(invocation) - 2712: 71(ptr) AccessChain 31(data) 33 63 - 2713: 25(ivec4) Load 2712 - 2714: 78(ivec3) VectorShuffle 2713 2713 0 1 2 - 2715: 17(ivec4) Load 19(ballot) - 2716: 78(ivec3) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2714 2715 - 2717: 64(ptr) AccessChain 31(data) 2711 63 35 - 2718: 24(int) CompositeExtract 2716 0 - Store 2717 2718 - 2719: 64(ptr) AccessChain 31(data) 2711 63 189 - 2720: 24(int) CompositeExtract 2716 1 - Store 2719 2720 - 2721: 64(ptr) AccessChain 31(data) 2711 63 202 - 2722: 24(int) CompositeExtract 2716 2 - Store 2721 2722 - 2723: 6(int) Load 8(invocation) - 2724: 71(ptr) AccessChain 31(data) 115 63 - 2725: 25(ivec4) Load 2724 - 2726: 17(ivec4) Load 19(ballot) - 2727: 25(ivec4) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2725 2726 - 2728: 71(ptr) AccessChain 31(data) 2723 63 - Store 2728 2727 - 2729: 6(int) Load 8(invocation) - 2730: 90(ptr) AccessChain 31(data) 34 33 35 - 2731: 6(int) Load 2730 - 2732: 17(ivec4) Load 19(ballot) - 2733: 6(int) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2731 2732 - 2734: 90(ptr) AccessChain 31(data) 2729 33 35 - Store 2734 2733 - 2735: 6(int) Load 8(invocation) - 2736: 40(ptr) AccessChain 31(data) 63 33 - 2737: 17(ivec4) Load 2736 - 2738: 96(ivec2) VectorShuffle 2737 2737 0 1 - 2739: 17(ivec4) Load 19(ballot) - 2740: 96(ivec2) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2738 2739 - 2741: 90(ptr) AccessChain 31(data) 2735 33 35 - 2742: 6(int) CompositeExtract 2740 0 - Store 2741 2742 - 2743: 90(ptr) AccessChain 31(data) 2735 33 189 - 2744: 6(int) CompositeExtract 2740 1 - Store 2743 2744 - 2745: 6(int) Load 8(invocation) - 2746: 40(ptr) AccessChain 31(data) 33 33 - 2747: 17(ivec4) Load 2746 - 2748: 103(ivec3) VectorShuffle 2747 2747 0 1 2 - 2749: 17(ivec4) Load 19(ballot) - 2750: 103(ivec3) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2748 2749 - 2751: 90(ptr) AccessChain 31(data) 2745 33 35 - 2752: 6(int) CompositeExtract 2750 0 - Store 2751 2752 - 2753: 90(ptr) AccessChain 31(data) 2745 33 189 - 2754: 6(int) CompositeExtract 2750 1 - Store 2753 2754 - 2755: 90(ptr) AccessChain 31(data) 2745 33 202 - 2756: 6(int) CompositeExtract 2750 2 - Store 2755 2756 - 2757: 6(int) Load 8(invocation) - 2758: 40(ptr) AccessChain 31(data) 115 33 - 2759: 17(ivec4) Load 2758 - 2760: 17(ivec4) Load 19(ballot) - 2761: 17(ivec4) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2759 2760 - 2762: 40(ptr) AccessChain 31(data) 2757 33 - Store 2762 2761 - 2763: 6(int) Load 8(invocation) - 2764: 64(ptr) AccessChain 31(data) 34 63 35 - 2765: 24(int) Load 2764 - 2766: 144(bool) SLessThan 2765 34 - 2767: 17(ivec4) Load 19(ballot) - 2768: 144(bool) GroupNonUniformLogicalXor 178 PartitionedExclusiveScanNV 2766 2767 - 2769: 24(int) Select 2768 63 34 - 2770: 64(ptr) AccessChain 31(data) 2763 63 35 - Store 2770 2769 - 2771: 6(int) Load 8(invocation) - 2772: 71(ptr) AccessChain 31(data) 63 63 - 2773: 25(ivec4) Load 2772 - 2774: 70(ivec2) VectorShuffle 2773 2773 0 1 - 2775: 152(bvec2) SLessThan 2774 801 - 2776: 17(ivec4) Load 19(ballot) - 2777: 152(bvec2) GroupNonUniformLogicalXor 178 PartitionedExclusiveScanNV 2775 2776 - 2778: 70(ivec2) Select 2777 805 801 - 2779: 64(ptr) AccessChain 31(data) 2771 63 35 - 2780: 24(int) CompositeExtract 2778 0 - Store 2779 2780 - 2781: 64(ptr) AccessChain 31(data) 2771 63 189 - 2782: 24(int) CompositeExtract 2778 1 - Store 2781 2782 - 2783: 6(int) Load 8(invocation) - 2784: 71(ptr) AccessChain 31(data) 63 63 - 2785: 25(ivec4) Load 2784 - 2786: 78(ivec3) VectorShuffle 2785 2785 0 1 2 - 2787: 161(bvec3) SLessThan 2786 815 - 2788: 17(ivec4) Load 19(ballot) - 2789: 161(bvec3) GroupNonUniformLogicalXor 178 PartitionedExclusiveScanNV 2787 2788 - 2790: 78(ivec3) Select 2789 819 815 - 2791: 64(ptr) AccessChain 31(data) 2783 63 35 - 2792: 24(int) CompositeExtract 2790 0 - Store 2791 2792 - 2793: 64(ptr) AccessChain 31(data) 2783 63 189 - 2794: 24(int) CompositeExtract 2790 1 - Store 2793 2794 - 2795: 64(ptr) AccessChain 31(data) 2783 63 202 - 2796: 24(int) CompositeExtract 2790 2 - Store 2795 2796 - 2797: 6(int) Load 8(invocation) - 2798: 71(ptr) AccessChain 31(data) 63 63 - 2799: 25(ivec4) Load 2798 - 2800: 169(bvec4) SLessThan 2799 830 - 2801: 17(ivec4) Load 19(ballot) - 2802: 169(bvec4) GroupNonUniformLogicalXor 178 PartitionedExclusiveScanNV 2800 2801 - 2803: 25(ivec4) Select 2802 834 830 - 2804: 71(ptr) AccessChain 31(data) 2797 63 - Store 2804 2803 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.subgroupQuad.comp.out b/deps/glslang/Test/baseResults/spv.subgroupQuad.comp.out deleted file mode 100644 index 143d01d7..00000000 --- a/deps/glslang/Test/baseResults/spv.subgroupQuad.comp.out +++ /dev/null @@ -1,879 +0,0 @@ -spv.subgroupQuad.comp -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 696 - - Capability Shader - Capability Float64 - Capability GroupNonUniform - Capability GroupNonUniformQuad - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 10 12 - ExecutionMode 4 LocalSize 8 1 1 - Source GLSL 450 - SourceExtension "GL_KHR_shader_subgroup_basic" - SourceExtension "GL_KHR_shader_subgroup_quad" - Name 4 "main" - Name 8 "invocation" - Name 10 "gl_SubgroupInvocationID" - Name 12 "gl_SubgroupSize" - Name 24 "Buffers" - MemberName 24(Buffers) 0 "f4" - MemberName 24(Buffers) 1 "i4" - MemberName 24(Buffers) 2 "u4" - MemberName 24(Buffers) 3 "d4" - Name 27 "data" - Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision - Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId - Decorate 11 RelaxedPrecision - Decorate 12(gl_SubgroupSize) RelaxedPrecision - Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize - Decorate 13 RelaxedPrecision - Decorate 14 RelaxedPrecision - Decorate 16 RelaxedPrecision - MemberDecorate 24(Buffers) 0 Offset 0 - MemberDecorate 24(Buffers) 1 Offset 16 - MemberDecorate 24(Buffers) 2 Offset 32 - MemberDecorate 24(Buffers) 3 Offset 64 - Decorate 24(Buffers) Block - Decorate 27(data) DescriptorSet 0 - Decorate 27(data) Binding 0 - Decorate 695 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypePointer Input 6(int) -10(gl_SubgroupInvocationID): 9(ptr) Variable Input -12(gl_SubgroupSize): 9(ptr) Variable Input - 15: 6(int) Constant 4 - 17: TypeFloat 32 - 18: TypeVector 17(float) 4 - 19: TypeInt 32 1 - 20: TypeVector 19(int) 4 - 21: TypeVector 6(int) 4 - 22: TypeFloat 64 - 23: TypeVector 22(float64_t) 4 - 24(Buffers): TypeStruct 18(fvec4) 20(ivec4) 21(ivec4) 23(f64vec4) - 25: TypeArray 24(Buffers) 15 - 26: TypePointer StorageBuffer 25 - 27(data): 26(ptr) Variable StorageBuffer - 29: 19(int) Constant 0 - 30: 6(int) Constant 0 - 31: TypePointer StorageBuffer 17(float) - 34: 6(int) Constant 1 - 35: 6(int) Constant 3 - 39: 19(int) Constant 1 - 40: TypeVector 17(float) 2 - 41: TypePointer StorageBuffer 18(fvec4) - 51: 19(int) Constant 2 - 52: TypeVector 17(float) 3 - 61: 6(int) Constant 2 - 65: 19(int) Constant 3 - 71: TypePointer StorageBuffer 19(int) - 77: TypeVector 19(int) 2 - 78: TypePointer StorageBuffer 20(ivec4) - 88: TypeVector 19(int) 3 - 105: TypePointer StorageBuffer 6(int) - 111: TypeVector 6(int) 2 - 112: TypePointer StorageBuffer 21(ivec4) - 122: TypeVector 6(int) 3 - 139: TypePointer StorageBuffer 22(float64_t) - 145: TypeVector 22(float64_t) 2 - 146: TypePointer StorageBuffer 23(f64vec4) - 156: TypeVector 22(float64_t) 3 - 175: TypeBool - 184: 77(ivec2) ConstantComposite 29 29 - 185: TypeVector 175(bool) 2 - 188: 77(ivec2) ConstantComposite 39 39 - 198: 88(ivec3) ConstantComposite 29 29 29 - 199: TypeVector 175(bool) 3 - 202: 88(ivec3) ConstantComposite 39 39 39 - 213: 20(ivec4) ConstantComposite 29 29 29 29 - 214: TypeVector 175(bool) 4 - 217: 20(ivec4) ConstantComposite 39 39 39 39 - 694: 6(int) Constant 8 - 695: 122(ivec3) ConstantComposite 694 34 34 - 4(main): 2 Function None 3 - 5: Label - 8(invocation): 7(ptr) Variable Function - 11: 6(int) Load 10(gl_SubgroupInvocationID) - 13: 6(int) Load 12(gl_SubgroupSize) - 14: 6(int) IAdd 11 13 - 16: 6(int) UMod 14 15 - Store 8(invocation) 16 - 28: 6(int) Load 8(invocation) - 32: 31(ptr) AccessChain 27(data) 29 29 30 - 33: 17(float) Load 32 - 36: 17(float) GroupNonUniformQuadBroadcast 35 33 34 - 37: 31(ptr) AccessChain 27(data) 28 29 30 - Store 37 36 - 38: 6(int) Load 8(invocation) - 42: 41(ptr) AccessChain 27(data) 39 29 - 43: 18(fvec4) Load 42 - 44: 40(fvec2) VectorShuffle 43 43 0 1 - 45: 40(fvec2) GroupNonUniformQuadBroadcast 35 44 34 - 46: 31(ptr) AccessChain 27(data) 38 29 30 - 47: 17(float) CompositeExtract 45 0 - Store 46 47 - 48: 31(ptr) AccessChain 27(data) 38 29 34 - 49: 17(float) CompositeExtract 45 1 - Store 48 49 - 50: 6(int) Load 8(invocation) - 53: 41(ptr) AccessChain 27(data) 51 29 - 54: 18(fvec4) Load 53 - 55: 52(fvec3) VectorShuffle 54 54 0 1 2 - 56: 52(fvec3) GroupNonUniformQuadBroadcast 35 55 34 - 57: 31(ptr) AccessChain 27(data) 50 29 30 - 58: 17(float) CompositeExtract 56 0 - Store 57 58 - 59: 31(ptr) AccessChain 27(data) 50 29 34 - 60: 17(float) CompositeExtract 56 1 - Store 59 60 - 62: 31(ptr) AccessChain 27(data) 50 29 61 - 63: 17(float) CompositeExtract 56 2 - Store 62 63 - 64: 6(int) Load 8(invocation) - 66: 41(ptr) AccessChain 27(data) 65 29 - 67: 18(fvec4) Load 66 - 68: 18(fvec4) GroupNonUniformQuadBroadcast 35 67 34 - 69: 41(ptr) AccessChain 27(data) 64 29 - Store 69 68 - 70: 6(int) Load 8(invocation) - 72: 71(ptr) AccessChain 27(data) 29 39 30 - 73: 19(int) Load 72 - 74: 19(int) GroupNonUniformQuadBroadcast 35 73 34 - 75: 71(ptr) AccessChain 27(data) 70 39 30 - Store 75 74 - 76: 6(int) Load 8(invocation) - 79: 78(ptr) AccessChain 27(data) 39 39 - 80: 20(ivec4) Load 79 - 81: 77(ivec2) VectorShuffle 80 80 0 1 - 82: 77(ivec2) GroupNonUniformQuadBroadcast 35 81 34 - 83: 71(ptr) AccessChain 27(data) 76 39 30 - 84: 19(int) CompositeExtract 82 0 - Store 83 84 - 85: 71(ptr) AccessChain 27(data) 76 39 34 - 86: 19(int) CompositeExtract 82 1 - Store 85 86 - 87: 6(int) Load 8(invocation) - 89: 78(ptr) AccessChain 27(data) 51 39 - 90: 20(ivec4) Load 89 - 91: 88(ivec3) VectorShuffle 90 90 0 1 2 - 92: 88(ivec3) GroupNonUniformQuadBroadcast 35 91 34 - 93: 71(ptr) AccessChain 27(data) 87 39 30 - 94: 19(int) CompositeExtract 92 0 - Store 93 94 - 95: 71(ptr) AccessChain 27(data) 87 39 34 - 96: 19(int) CompositeExtract 92 1 - Store 95 96 - 97: 71(ptr) AccessChain 27(data) 87 39 61 - 98: 19(int) CompositeExtract 92 2 - Store 97 98 - 99: 6(int) Load 8(invocation) - 100: 78(ptr) AccessChain 27(data) 65 39 - 101: 20(ivec4) Load 100 - 102: 20(ivec4) GroupNonUniformQuadBroadcast 35 101 34 - 103: 78(ptr) AccessChain 27(data) 99 39 - Store 103 102 - 104: 6(int) Load 8(invocation) - 106: 105(ptr) AccessChain 27(data) 29 51 30 - 107: 6(int) Load 106 - 108: 6(int) GroupNonUniformQuadBroadcast 35 107 34 - 109: 105(ptr) AccessChain 27(data) 104 51 30 - Store 109 108 - 110: 6(int) Load 8(invocation) - 113: 112(ptr) AccessChain 27(data) 39 51 - 114: 21(ivec4) Load 113 - 115: 111(ivec2) VectorShuffle 114 114 0 1 - 116: 111(ivec2) GroupNonUniformQuadBroadcast 35 115 34 - 117: 105(ptr) AccessChain 27(data) 110 51 30 - 118: 6(int) CompositeExtract 116 0 - Store 117 118 - 119: 105(ptr) AccessChain 27(data) 110 51 34 - 120: 6(int) CompositeExtract 116 1 - Store 119 120 - 121: 6(int) Load 8(invocation) - 123: 112(ptr) AccessChain 27(data) 51 51 - 124: 21(ivec4) Load 123 - 125: 122(ivec3) VectorShuffle 124 124 0 1 2 - 126: 122(ivec3) GroupNonUniformQuadBroadcast 35 125 34 - 127: 105(ptr) AccessChain 27(data) 121 51 30 - 128: 6(int) CompositeExtract 126 0 - Store 127 128 - 129: 105(ptr) AccessChain 27(data) 121 51 34 - 130: 6(int) CompositeExtract 126 1 - Store 129 130 - 131: 105(ptr) AccessChain 27(data) 121 51 61 - 132: 6(int) CompositeExtract 126 2 - Store 131 132 - 133: 6(int) Load 8(invocation) - 134: 112(ptr) AccessChain 27(data) 65 51 - 135: 21(ivec4) Load 134 - 136: 21(ivec4) GroupNonUniformQuadBroadcast 35 135 34 - 137: 112(ptr) AccessChain 27(data) 133 51 - Store 137 136 - 138: 6(int) Load 8(invocation) - 140: 139(ptr) AccessChain 27(data) 29 65 30 - 141:22(float64_t) Load 140 - 142:22(float64_t) GroupNonUniformQuadBroadcast 35 141 34 - 143: 139(ptr) AccessChain 27(data) 138 65 30 - Store 143 142 - 144: 6(int) Load 8(invocation) - 147: 146(ptr) AccessChain 27(data) 39 65 - 148: 23(f64vec4) Load 147 - 149:145(f64vec2) VectorShuffle 148 148 0 1 - 150:145(f64vec2) GroupNonUniformQuadBroadcast 35 149 34 - 151: 139(ptr) AccessChain 27(data) 144 65 30 - 152:22(float64_t) CompositeExtract 150 0 - Store 151 152 - 153: 139(ptr) AccessChain 27(data) 144 65 34 - 154:22(float64_t) CompositeExtract 150 1 - Store 153 154 - 155: 6(int) Load 8(invocation) - 157: 146(ptr) AccessChain 27(data) 51 65 - 158: 23(f64vec4) Load 157 - 159:156(f64vec3) VectorShuffle 158 158 0 1 2 - 160:156(f64vec3) GroupNonUniformQuadBroadcast 35 159 34 - 161: 139(ptr) AccessChain 27(data) 155 65 30 - 162:22(float64_t) CompositeExtract 160 0 - Store 161 162 - 163: 139(ptr) AccessChain 27(data) 155 65 34 - 164:22(float64_t) CompositeExtract 160 1 - Store 163 164 - 165: 139(ptr) AccessChain 27(data) 155 65 61 - 166:22(float64_t) CompositeExtract 160 2 - Store 165 166 - 167: 6(int) Load 8(invocation) - 168: 146(ptr) AccessChain 27(data) 65 65 - 169: 23(f64vec4) Load 168 - 170: 23(f64vec4) GroupNonUniformQuadBroadcast 35 169 34 - 171: 146(ptr) AccessChain 27(data) 167 65 - Store 171 170 - 172: 6(int) Load 8(invocation) - 173: 71(ptr) AccessChain 27(data) 29 39 30 - 174: 19(int) Load 173 - 176: 175(bool) SLessThan 174 29 - 177: 175(bool) GroupNonUniformQuadBroadcast 35 176 34 - 178: 19(int) Select 177 39 29 - 179: 71(ptr) AccessChain 27(data) 172 39 30 - Store 179 178 - 180: 6(int) Load 8(invocation) - 181: 78(ptr) AccessChain 27(data) 39 39 - 182: 20(ivec4) Load 181 - 183: 77(ivec2) VectorShuffle 182 182 0 1 - 186: 185(bvec2) SLessThan 183 184 - 187: 185(bvec2) GroupNonUniformQuadBroadcast 35 186 34 - 189: 77(ivec2) Select 187 188 184 - 190: 71(ptr) AccessChain 27(data) 180 39 30 - 191: 19(int) CompositeExtract 189 0 - Store 190 191 - 192: 71(ptr) AccessChain 27(data) 180 39 34 - 193: 19(int) CompositeExtract 189 1 - Store 192 193 - 194: 6(int) Load 8(invocation) - 195: 78(ptr) AccessChain 27(data) 39 39 - 196: 20(ivec4) Load 195 - 197: 88(ivec3) VectorShuffle 196 196 0 1 2 - 200: 199(bvec3) SLessThan 197 198 - 201: 199(bvec3) GroupNonUniformQuadBroadcast 35 200 34 - 203: 88(ivec3) Select 201 202 198 - 204: 71(ptr) AccessChain 27(data) 194 39 30 - 205: 19(int) CompositeExtract 203 0 - Store 204 205 - 206: 71(ptr) AccessChain 27(data) 194 39 34 - 207: 19(int) CompositeExtract 203 1 - Store 206 207 - 208: 71(ptr) AccessChain 27(data) 194 39 61 - 209: 19(int) CompositeExtract 203 2 - Store 208 209 - 210: 6(int) Load 8(invocation) - 211: 78(ptr) AccessChain 27(data) 39 39 - 212: 20(ivec4) Load 211 - 215: 214(bvec4) SLessThan 212 213 - 216: 214(bvec4) GroupNonUniformQuadBroadcast 35 215 34 - 218: 20(ivec4) Select 216 217 213 - 219: 78(ptr) AccessChain 27(data) 210 39 - Store 219 218 - 220: 6(int) Load 8(invocation) - 221: 31(ptr) AccessChain 27(data) 29 29 30 - 222: 17(float) Load 221 - 223: 17(float) GroupNonUniformQuadSwap 35 222 30 - 224: 31(ptr) AccessChain 27(data) 220 29 30 - Store 224 223 - 225: 6(int) Load 8(invocation) - 226: 41(ptr) AccessChain 27(data) 39 29 - 227: 18(fvec4) Load 226 - 228: 40(fvec2) VectorShuffle 227 227 0 1 - 229: 40(fvec2) GroupNonUniformQuadSwap 35 228 30 - 230: 31(ptr) AccessChain 27(data) 225 29 30 - 231: 17(float) CompositeExtract 229 0 - Store 230 231 - 232: 31(ptr) AccessChain 27(data) 225 29 34 - 233: 17(float) CompositeExtract 229 1 - Store 232 233 - 234: 6(int) Load 8(invocation) - 235: 41(ptr) AccessChain 27(data) 51 29 - 236: 18(fvec4) Load 235 - 237: 52(fvec3) VectorShuffle 236 236 0 1 2 - 238: 52(fvec3) GroupNonUniformQuadSwap 35 237 30 - 239: 31(ptr) AccessChain 27(data) 234 29 30 - 240: 17(float) CompositeExtract 238 0 - Store 239 240 - 241: 31(ptr) AccessChain 27(data) 234 29 34 - 242: 17(float) CompositeExtract 238 1 - Store 241 242 - 243: 31(ptr) AccessChain 27(data) 234 29 61 - 244: 17(float) CompositeExtract 238 2 - Store 243 244 - 245: 6(int) Load 8(invocation) - 246: 41(ptr) AccessChain 27(data) 65 29 - 247: 18(fvec4) Load 246 - 248: 18(fvec4) GroupNonUniformQuadSwap 35 247 30 - 249: 41(ptr) AccessChain 27(data) 245 29 - Store 249 248 - 250: 6(int) Load 8(invocation) - 251: 71(ptr) AccessChain 27(data) 29 39 30 - 252: 19(int) Load 251 - 253: 19(int) GroupNonUniformQuadSwap 35 252 30 - 254: 71(ptr) AccessChain 27(data) 250 39 30 - Store 254 253 - 255: 6(int) Load 8(invocation) - 256: 78(ptr) AccessChain 27(data) 39 39 - 257: 20(ivec4) Load 256 - 258: 77(ivec2) VectorShuffle 257 257 0 1 - 259: 77(ivec2) GroupNonUniformQuadSwap 35 258 30 - 260: 71(ptr) AccessChain 27(data) 255 39 30 - 261: 19(int) CompositeExtract 259 0 - Store 260 261 - 262: 71(ptr) AccessChain 27(data) 255 39 34 - 263: 19(int) CompositeExtract 259 1 - Store 262 263 - 264: 6(int) Load 8(invocation) - 265: 78(ptr) AccessChain 27(data) 51 39 - 266: 20(ivec4) Load 265 - 267: 88(ivec3) VectorShuffle 266 266 0 1 2 - 268: 88(ivec3) GroupNonUniformQuadSwap 35 267 30 - 269: 71(ptr) AccessChain 27(data) 264 39 30 - 270: 19(int) CompositeExtract 268 0 - Store 269 270 - 271: 71(ptr) AccessChain 27(data) 264 39 34 - 272: 19(int) CompositeExtract 268 1 - Store 271 272 - 273: 71(ptr) AccessChain 27(data) 264 39 61 - 274: 19(int) CompositeExtract 268 2 - Store 273 274 - 275: 6(int) Load 8(invocation) - 276: 78(ptr) AccessChain 27(data) 65 39 - 277: 20(ivec4) Load 276 - 278: 20(ivec4) GroupNonUniformQuadSwap 35 277 30 - 279: 78(ptr) AccessChain 27(data) 275 39 - Store 279 278 - 280: 6(int) Load 8(invocation) - 281: 105(ptr) AccessChain 27(data) 29 51 30 - 282: 6(int) Load 281 - 283: 6(int) GroupNonUniformQuadSwap 35 282 30 - 284: 105(ptr) AccessChain 27(data) 280 51 30 - Store 284 283 - 285: 6(int) Load 8(invocation) - 286: 112(ptr) AccessChain 27(data) 39 51 - 287: 21(ivec4) Load 286 - 288: 111(ivec2) VectorShuffle 287 287 0 1 - 289: 111(ivec2) GroupNonUniformQuadSwap 35 288 30 - 290: 105(ptr) AccessChain 27(data) 285 51 30 - 291: 6(int) CompositeExtract 289 0 - Store 290 291 - 292: 105(ptr) AccessChain 27(data) 285 51 34 - 293: 6(int) CompositeExtract 289 1 - Store 292 293 - 294: 6(int) Load 8(invocation) - 295: 112(ptr) AccessChain 27(data) 51 51 - 296: 21(ivec4) Load 295 - 297: 122(ivec3) VectorShuffle 296 296 0 1 2 - 298: 122(ivec3) GroupNonUniformQuadSwap 35 297 30 - 299: 105(ptr) AccessChain 27(data) 294 51 30 - 300: 6(int) CompositeExtract 298 0 - Store 299 300 - 301: 105(ptr) AccessChain 27(data) 294 51 34 - 302: 6(int) CompositeExtract 298 1 - Store 301 302 - 303: 105(ptr) AccessChain 27(data) 294 51 61 - 304: 6(int) CompositeExtract 298 2 - Store 303 304 - 305: 6(int) Load 8(invocation) - 306: 112(ptr) AccessChain 27(data) 65 51 - 307: 21(ivec4) Load 306 - 308: 21(ivec4) GroupNonUniformQuadSwap 35 307 30 - 309: 112(ptr) AccessChain 27(data) 305 51 - Store 309 308 - 310: 6(int) Load 8(invocation) - 311: 139(ptr) AccessChain 27(data) 29 65 30 - 312:22(float64_t) Load 311 - 313:22(float64_t) GroupNonUniformQuadSwap 35 312 30 - 314: 139(ptr) AccessChain 27(data) 310 65 30 - Store 314 313 - 315: 6(int) Load 8(invocation) - 316: 146(ptr) AccessChain 27(data) 39 65 - 317: 23(f64vec4) Load 316 - 318:145(f64vec2) VectorShuffle 317 317 0 1 - 319:145(f64vec2) GroupNonUniformQuadSwap 35 318 30 - 320: 139(ptr) AccessChain 27(data) 315 65 30 - 321:22(float64_t) CompositeExtract 319 0 - Store 320 321 - 322: 139(ptr) AccessChain 27(data) 315 65 34 - 323:22(float64_t) CompositeExtract 319 1 - Store 322 323 - 324: 6(int) Load 8(invocation) - 325: 146(ptr) AccessChain 27(data) 51 65 - 326: 23(f64vec4) Load 325 - 327:156(f64vec3) VectorShuffle 326 326 0 1 2 - 328:156(f64vec3) GroupNonUniformQuadSwap 35 327 30 - 329: 139(ptr) AccessChain 27(data) 324 65 30 - 330:22(float64_t) CompositeExtract 328 0 - Store 329 330 - 331: 139(ptr) AccessChain 27(data) 324 65 34 - 332:22(float64_t) CompositeExtract 328 1 - Store 331 332 - 333: 139(ptr) AccessChain 27(data) 324 65 61 - 334:22(float64_t) CompositeExtract 328 2 - Store 333 334 - 335: 6(int) Load 8(invocation) - 336: 146(ptr) AccessChain 27(data) 65 65 - 337: 23(f64vec4) Load 336 - 338: 23(f64vec4) GroupNonUniformQuadSwap 35 337 30 - 339: 146(ptr) AccessChain 27(data) 335 65 - Store 339 338 - 340: 6(int) Load 8(invocation) - 341: 71(ptr) AccessChain 27(data) 29 39 30 - 342: 19(int) Load 341 - 343: 175(bool) SLessThan 342 29 - 344: 175(bool) GroupNonUniformQuadSwap 35 343 30 - 345: 19(int) Select 344 39 29 - 346: 71(ptr) AccessChain 27(data) 340 39 30 - Store 346 345 - 347: 6(int) Load 8(invocation) - 348: 78(ptr) AccessChain 27(data) 39 39 - 349: 20(ivec4) Load 348 - 350: 77(ivec2) VectorShuffle 349 349 0 1 - 351: 185(bvec2) SLessThan 350 184 - 352: 185(bvec2) GroupNonUniformQuadSwap 35 351 30 - 353: 77(ivec2) Select 352 188 184 - 354: 71(ptr) AccessChain 27(data) 347 39 30 - 355: 19(int) CompositeExtract 353 0 - Store 354 355 - 356: 71(ptr) AccessChain 27(data) 347 39 34 - 357: 19(int) CompositeExtract 353 1 - Store 356 357 - 358: 6(int) Load 8(invocation) - 359: 78(ptr) AccessChain 27(data) 39 39 - 360: 20(ivec4) Load 359 - 361: 88(ivec3) VectorShuffle 360 360 0 1 2 - 362: 199(bvec3) SLessThan 361 198 - 363: 199(bvec3) GroupNonUniformQuadSwap 35 362 30 - 364: 88(ivec3) Select 363 202 198 - 365: 71(ptr) AccessChain 27(data) 358 39 30 - 366: 19(int) CompositeExtract 364 0 - Store 365 366 - 367: 71(ptr) AccessChain 27(data) 358 39 34 - 368: 19(int) CompositeExtract 364 1 - Store 367 368 - 369: 71(ptr) AccessChain 27(data) 358 39 61 - 370: 19(int) CompositeExtract 364 2 - Store 369 370 - 371: 6(int) Load 8(invocation) - 372: 78(ptr) AccessChain 27(data) 39 39 - 373: 20(ivec4) Load 372 - 374: 214(bvec4) SLessThan 373 213 - 375: 214(bvec4) GroupNonUniformQuadSwap 35 374 30 - 376: 20(ivec4) Select 375 217 213 - 377: 78(ptr) AccessChain 27(data) 371 39 - Store 377 376 - 378: 6(int) Load 8(invocation) - 379: 31(ptr) AccessChain 27(data) 29 29 30 - 380: 17(float) Load 379 - 381: 17(float) GroupNonUniformQuadSwap 35 380 34 - 382: 31(ptr) AccessChain 27(data) 378 29 30 - Store 382 381 - 383: 6(int) Load 8(invocation) - 384: 41(ptr) AccessChain 27(data) 39 29 - 385: 18(fvec4) Load 384 - 386: 40(fvec2) VectorShuffle 385 385 0 1 - 387: 40(fvec2) GroupNonUniformQuadSwap 35 386 34 - 388: 31(ptr) AccessChain 27(data) 383 29 30 - 389: 17(float) CompositeExtract 387 0 - Store 388 389 - 390: 31(ptr) AccessChain 27(data) 383 29 34 - 391: 17(float) CompositeExtract 387 1 - Store 390 391 - 392: 6(int) Load 8(invocation) - 393: 41(ptr) AccessChain 27(data) 51 29 - 394: 18(fvec4) Load 393 - 395: 52(fvec3) VectorShuffle 394 394 0 1 2 - 396: 52(fvec3) GroupNonUniformQuadSwap 35 395 34 - 397: 31(ptr) AccessChain 27(data) 392 29 30 - 398: 17(float) CompositeExtract 396 0 - Store 397 398 - 399: 31(ptr) AccessChain 27(data) 392 29 34 - 400: 17(float) CompositeExtract 396 1 - Store 399 400 - 401: 31(ptr) AccessChain 27(data) 392 29 61 - 402: 17(float) CompositeExtract 396 2 - Store 401 402 - 403: 6(int) Load 8(invocation) - 404: 41(ptr) AccessChain 27(data) 65 29 - 405: 18(fvec4) Load 404 - 406: 18(fvec4) GroupNonUniformQuadSwap 35 405 34 - 407: 41(ptr) AccessChain 27(data) 403 29 - Store 407 406 - 408: 6(int) Load 8(invocation) - 409: 71(ptr) AccessChain 27(data) 29 39 30 - 410: 19(int) Load 409 - 411: 19(int) GroupNonUniformQuadSwap 35 410 34 - 412: 71(ptr) AccessChain 27(data) 408 39 30 - Store 412 411 - 413: 6(int) Load 8(invocation) - 414: 78(ptr) AccessChain 27(data) 39 39 - 415: 20(ivec4) Load 414 - 416: 77(ivec2) VectorShuffle 415 415 0 1 - 417: 77(ivec2) GroupNonUniformQuadSwap 35 416 34 - 418: 71(ptr) AccessChain 27(data) 413 39 30 - 419: 19(int) CompositeExtract 417 0 - Store 418 419 - 420: 71(ptr) AccessChain 27(data) 413 39 34 - 421: 19(int) CompositeExtract 417 1 - Store 420 421 - 422: 6(int) Load 8(invocation) - 423: 78(ptr) AccessChain 27(data) 51 39 - 424: 20(ivec4) Load 423 - 425: 88(ivec3) VectorShuffle 424 424 0 1 2 - 426: 88(ivec3) GroupNonUniformQuadSwap 35 425 34 - 427: 71(ptr) AccessChain 27(data) 422 39 30 - 428: 19(int) CompositeExtract 426 0 - Store 427 428 - 429: 71(ptr) AccessChain 27(data) 422 39 34 - 430: 19(int) CompositeExtract 426 1 - Store 429 430 - 431: 71(ptr) AccessChain 27(data) 422 39 61 - 432: 19(int) CompositeExtract 426 2 - Store 431 432 - 433: 6(int) Load 8(invocation) - 434: 78(ptr) AccessChain 27(data) 65 39 - 435: 20(ivec4) Load 434 - 436: 20(ivec4) GroupNonUniformQuadSwap 35 435 34 - 437: 78(ptr) AccessChain 27(data) 433 39 - Store 437 436 - 438: 6(int) Load 8(invocation) - 439: 105(ptr) AccessChain 27(data) 29 51 30 - 440: 6(int) Load 439 - 441: 6(int) GroupNonUniformQuadSwap 35 440 34 - 442: 105(ptr) AccessChain 27(data) 438 51 30 - Store 442 441 - 443: 6(int) Load 8(invocation) - 444: 112(ptr) AccessChain 27(data) 39 51 - 445: 21(ivec4) Load 444 - 446: 111(ivec2) VectorShuffle 445 445 0 1 - 447: 111(ivec2) GroupNonUniformQuadSwap 35 446 34 - 448: 105(ptr) AccessChain 27(data) 443 51 30 - 449: 6(int) CompositeExtract 447 0 - Store 448 449 - 450: 105(ptr) AccessChain 27(data) 443 51 34 - 451: 6(int) CompositeExtract 447 1 - Store 450 451 - 452: 6(int) Load 8(invocation) - 453: 112(ptr) AccessChain 27(data) 51 51 - 454: 21(ivec4) Load 453 - 455: 122(ivec3) VectorShuffle 454 454 0 1 2 - 456: 122(ivec3) GroupNonUniformQuadSwap 35 455 34 - 457: 105(ptr) AccessChain 27(data) 452 51 30 - 458: 6(int) CompositeExtract 456 0 - Store 457 458 - 459: 105(ptr) AccessChain 27(data) 452 51 34 - 460: 6(int) CompositeExtract 456 1 - Store 459 460 - 461: 105(ptr) AccessChain 27(data) 452 51 61 - 462: 6(int) CompositeExtract 456 2 - Store 461 462 - 463: 6(int) Load 8(invocation) - 464: 112(ptr) AccessChain 27(data) 65 51 - 465: 21(ivec4) Load 464 - 466: 21(ivec4) GroupNonUniformQuadSwap 35 465 34 - 467: 112(ptr) AccessChain 27(data) 463 51 - Store 467 466 - 468: 6(int) Load 8(invocation) - 469: 139(ptr) AccessChain 27(data) 29 65 30 - 470:22(float64_t) Load 469 - 471:22(float64_t) GroupNonUniformQuadSwap 35 470 34 - 472: 139(ptr) AccessChain 27(data) 468 65 30 - Store 472 471 - 473: 6(int) Load 8(invocation) - 474: 146(ptr) AccessChain 27(data) 39 65 - 475: 23(f64vec4) Load 474 - 476:145(f64vec2) VectorShuffle 475 475 0 1 - 477:145(f64vec2) GroupNonUniformQuadSwap 35 476 34 - 478: 139(ptr) AccessChain 27(data) 473 65 30 - 479:22(float64_t) CompositeExtract 477 0 - Store 478 479 - 480: 139(ptr) AccessChain 27(data) 473 65 34 - 481:22(float64_t) CompositeExtract 477 1 - Store 480 481 - 482: 6(int) Load 8(invocation) - 483: 146(ptr) AccessChain 27(data) 51 65 - 484: 23(f64vec4) Load 483 - 485:156(f64vec3) VectorShuffle 484 484 0 1 2 - 486:156(f64vec3) GroupNonUniformQuadSwap 35 485 34 - 487: 139(ptr) AccessChain 27(data) 482 65 30 - 488:22(float64_t) CompositeExtract 486 0 - Store 487 488 - 489: 139(ptr) AccessChain 27(data) 482 65 34 - 490:22(float64_t) CompositeExtract 486 1 - Store 489 490 - 491: 139(ptr) AccessChain 27(data) 482 65 61 - 492:22(float64_t) CompositeExtract 486 2 - Store 491 492 - 493: 6(int) Load 8(invocation) - 494: 146(ptr) AccessChain 27(data) 65 65 - 495: 23(f64vec4) Load 494 - 496: 23(f64vec4) GroupNonUniformQuadSwap 35 495 34 - 497: 146(ptr) AccessChain 27(data) 493 65 - Store 497 496 - 498: 6(int) Load 8(invocation) - 499: 71(ptr) AccessChain 27(data) 29 39 30 - 500: 19(int) Load 499 - 501: 175(bool) SLessThan 500 29 - 502: 175(bool) GroupNonUniformQuadSwap 35 501 34 - 503: 19(int) Select 502 39 29 - 504: 71(ptr) AccessChain 27(data) 498 39 30 - Store 504 503 - 505: 6(int) Load 8(invocation) - 506: 78(ptr) AccessChain 27(data) 39 39 - 507: 20(ivec4) Load 506 - 508: 77(ivec2) VectorShuffle 507 507 0 1 - 509: 185(bvec2) SLessThan 508 184 - 510: 185(bvec2) GroupNonUniformQuadSwap 35 509 34 - 511: 77(ivec2) Select 510 188 184 - 512: 71(ptr) AccessChain 27(data) 505 39 30 - 513: 19(int) CompositeExtract 511 0 - Store 512 513 - 514: 71(ptr) AccessChain 27(data) 505 39 34 - 515: 19(int) CompositeExtract 511 1 - Store 514 515 - 516: 6(int) Load 8(invocation) - 517: 78(ptr) AccessChain 27(data) 39 39 - 518: 20(ivec4) Load 517 - 519: 88(ivec3) VectorShuffle 518 518 0 1 2 - 520: 199(bvec3) SLessThan 519 198 - 521: 199(bvec3) GroupNonUniformQuadSwap 35 520 34 - 522: 88(ivec3) Select 521 202 198 - 523: 71(ptr) AccessChain 27(data) 516 39 30 - 524: 19(int) CompositeExtract 522 0 - Store 523 524 - 525: 71(ptr) AccessChain 27(data) 516 39 34 - 526: 19(int) CompositeExtract 522 1 - Store 525 526 - 527: 71(ptr) AccessChain 27(data) 516 39 61 - 528: 19(int) CompositeExtract 522 2 - Store 527 528 - 529: 6(int) Load 8(invocation) - 530: 78(ptr) AccessChain 27(data) 39 39 - 531: 20(ivec4) Load 530 - 532: 214(bvec4) SLessThan 531 213 - 533: 214(bvec4) GroupNonUniformQuadSwap 35 532 34 - 534: 20(ivec4) Select 533 217 213 - 535: 78(ptr) AccessChain 27(data) 529 39 - Store 535 534 - 536: 6(int) Load 8(invocation) - 537: 31(ptr) AccessChain 27(data) 29 29 30 - 538: 17(float) Load 537 - 539: 17(float) GroupNonUniformQuadSwap 35 538 61 - 540: 31(ptr) AccessChain 27(data) 536 29 30 - Store 540 539 - 541: 6(int) Load 8(invocation) - 542: 41(ptr) AccessChain 27(data) 39 29 - 543: 18(fvec4) Load 542 - 544: 40(fvec2) VectorShuffle 543 543 0 1 - 545: 40(fvec2) GroupNonUniformQuadSwap 35 544 61 - 546: 31(ptr) AccessChain 27(data) 541 29 30 - 547: 17(float) CompositeExtract 545 0 - Store 546 547 - 548: 31(ptr) AccessChain 27(data) 541 29 34 - 549: 17(float) CompositeExtract 545 1 - Store 548 549 - 550: 6(int) Load 8(invocation) - 551: 41(ptr) AccessChain 27(data) 51 29 - 552: 18(fvec4) Load 551 - 553: 52(fvec3) VectorShuffle 552 552 0 1 2 - 554: 52(fvec3) GroupNonUniformQuadSwap 35 553 61 - 555: 31(ptr) AccessChain 27(data) 550 29 30 - 556: 17(float) CompositeExtract 554 0 - Store 555 556 - 557: 31(ptr) AccessChain 27(data) 550 29 34 - 558: 17(float) CompositeExtract 554 1 - Store 557 558 - 559: 31(ptr) AccessChain 27(data) 550 29 61 - 560: 17(float) CompositeExtract 554 2 - Store 559 560 - 561: 6(int) Load 8(invocation) - 562: 41(ptr) AccessChain 27(data) 65 29 - 563: 18(fvec4) Load 562 - 564: 18(fvec4) GroupNonUniformQuadSwap 35 563 61 - 565: 41(ptr) AccessChain 27(data) 561 29 - Store 565 564 - 566: 6(int) Load 8(invocation) - 567: 71(ptr) AccessChain 27(data) 29 39 30 - 568: 19(int) Load 567 - 569: 19(int) GroupNonUniformQuadSwap 35 568 61 - 570: 71(ptr) AccessChain 27(data) 566 39 30 - Store 570 569 - 571: 6(int) Load 8(invocation) - 572: 78(ptr) AccessChain 27(data) 39 39 - 573: 20(ivec4) Load 572 - 574: 77(ivec2) VectorShuffle 573 573 0 1 - 575: 77(ivec2) GroupNonUniformQuadSwap 35 574 61 - 576: 71(ptr) AccessChain 27(data) 571 39 30 - 577: 19(int) CompositeExtract 575 0 - Store 576 577 - 578: 71(ptr) AccessChain 27(data) 571 39 34 - 579: 19(int) CompositeExtract 575 1 - Store 578 579 - 580: 6(int) Load 8(invocation) - 581: 78(ptr) AccessChain 27(data) 51 39 - 582: 20(ivec4) Load 581 - 583: 88(ivec3) VectorShuffle 582 582 0 1 2 - 584: 88(ivec3) GroupNonUniformQuadSwap 35 583 61 - 585: 71(ptr) AccessChain 27(data) 580 39 30 - 586: 19(int) CompositeExtract 584 0 - Store 585 586 - 587: 71(ptr) AccessChain 27(data) 580 39 34 - 588: 19(int) CompositeExtract 584 1 - Store 587 588 - 589: 71(ptr) AccessChain 27(data) 580 39 61 - 590: 19(int) CompositeExtract 584 2 - Store 589 590 - 591: 6(int) Load 8(invocation) - 592: 78(ptr) AccessChain 27(data) 65 39 - 593: 20(ivec4) Load 592 - 594: 20(ivec4) GroupNonUniformQuadSwap 35 593 61 - 595: 78(ptr) AccessChain 27(data) 591 39 - Store 595 594 - 596: 6(int) Load 8(invocation) - 597: 105(ptr) AccessChain 27(data) 29 51 30 - 598: 6(int) Load 597 - 599: 6(int) GroupNonUniformQuadSwap 35 598 61 - 600: 105(ptr) AccessChain 27(data) 596 51 30 - Store 600 599 - 601: 6(int) Load 8(invocation) - 602: 112(ptr) AccessChain 27(data) 39 51 - 603: 21(ivec4) Load 602 - 604: 111(ivec2) VectorShuffle 603 603 0 1 - 605: 111(ivec2) GroupNonUniformQuadSwap 35 604 61 - 606: 105(ptr) AccessChain 27(data) 601 51 30 - 607: 6(int) CompositeExtract 605 0 - Store 606 607 - 608: 105(ptr) AccessChain 27(data) 601 51 34 - 609: 6(int) CompositeExtract 605 1 - Store 608 609 - 610: 6(int) Load 8(invocation) - 611: 112(ptr) AccessChain 27(data) 51 51 - 612: 21(ivec4) Load 611 - 613: 122(ivec3) VectorShuffle 612 612 0 1 2 - 614: 122(ivec3) GroupNonUniformQuadSwap 35 613 61 - 615: 105(ptr) AccessChain 27(data) 610 51 30 - 616: 6(int) CompositeExtract 614 0 - Store 615 616 - 617: 105(ptr) AccessChain 27(data) 610 51 34 - 618: 6(int) CompositeExtract 614 1 - Store 617 618 - 619: 105(ptr) AccessChain 27(data) 610 51 61 - 620: 6(int) CompositeExtract 614 2 - Store 619 620 - 621: 6(int) Load 8(invocation) - 622: 112(ptr) AccessChain 27(data) 65 51 - 623: 21(ivec4) Load 622 - 624: 21(ivec4) GroupNonUniformQuadSwap 35 623 61 - 625: 112(ptr) AccessChain 27(data) 621 51 - Store 625 624 - 626: 6(int) Load 8(invocation) - 627: 139(ptr) AccessChain 27(data) 29 65 30 - 628:22(float64_t) Load 627 - 629:22(float64_t) GroupNonUniformQuadSwap 35 628 61 - 630: 139(ptr) AccessChain 27(data) 626 65 30 - Store 630 629 - 631: 6(int) Load 8(invocation) - 632: 146(ptr) AccessChain 27(data) 39 65 - 633: 23(f64vec4) Load 632 - 634:145(f64vec2) VectorShuffle 633 633 0 1 - 635:145(f64vec2) GroupNonUniformQuadSwap 35 634 61 - 636: 139(ptr) AccessChain 27(data) 631 65 30 - 637:22(float64_t) CompositeExtract 635 0 - Store 636 637 - 638: 139(ptr) AccessChain 27(data) 631 65 34 - 639:22(float64_t) CompositeExtract 635 1 - Store 638 639 - 640: 6(int) Load 8(invocation) - 641: 146(ptr) AccessChain 27(data) 51 65 - 642: 23(f64vec4) Load 641 - 643:156(f64vec3) VectorShuffle 642 642 0 1 2 - 644:156(f64vec3) GroupNonUniformQuadSwap 35 643 61 - 645: 139(ptr) AccessChain 27(data) 640 65 30 - 646:22(float64_t) CompositeExtract 644 0 - Store 645 646 - 647: 139(ptr) AccessChain 27(data) 640 65 34 - 648:22(float64_t) CompositeExtract 644 1 - Store 647 648 - 649: 139(ptr) AccessChain 27(data) 640 65 61 - 650:22(float64_t) CompositeExtract 644 2 - Store 649 650 - 651: 6(int) Load 8(invocation) - 652: 146(ptr) AccessChain 27(data) 65 65 - 653: 23(f64vec4) Load 652 - 654: 23(f64vec4) GroupNonUniformQuadSwap 35 653 61 - 655: 146(ptr) AccessChain 27(data) 651 65 - Store 655 654 - 656: 6(int) Load 8(invocation) - 657: 71(ptr) AccessChain 27(data) 29 39 30 - 658: 19(int) Load 657 - 659: 175(bool) SLessThan 658 29 - 660: 175(bool) GroupNonUniformQuadSwap 35 659 61 - 661: 19(int) Select 660 39 29 - 662: 71(ptr) AccessChain 27(data) 656 39 30 - Store 662 661 - 663: 6(int) Load 8(invocation) - 664: 78(ptr) AccessChain 27(data) 39 39 - 665: 20(ivec4) Load 664 - 666: 77(ivec2) VectorShuffle 665 665 0 1 - 667: 185(bvec2) SLessThan 666 184 - 668: 185(bvec2) GroupNonUniformQuadSwap 35 667 61 - 669: 77(ivec2) Select 668 188 184 - 670: 71(ptr) AccessChain 27(data) 663 39 30 - 671: 19(int) CompositeExtract 669 0 - Store 670 671 - 672: 71(ptr) AccessChain 27(data) 663 39 34 - 673: 19(int) CompositeExtract 669 1 - Store 672 673 - 674: 6(int) Load 8(invocation) - 675: 78(ptr) AccessChain 27(data) 39 39 - 676: 20(ivec4) Load 675 - 677: 88(ivec3) VectorShuffle 676 676 0 1 2 - 678: 199(bvec3) SLessThan 677 198 - 679: 199(bvec3) GroupNonUniformQuadSwap 35 678 61 - 680: 88(ivec3) Select 679 202 198 - 681: 71(ptr) AccessChain 27(data) 674 39 30 - 682: 19(int) CompositeExtract 680 0 - Store 681 682 - 683: 71(ptr) AccessChain 27(data) 674 39 34 - 684: 19(int) CompositeExtract 680 1 - Store 683 684 - 685: 71(ptr) AccessChain 27(data) 674 39 61 - 686: 19(int) CompositeExtract 680 2 - Store 685 686 - 687: 6(int) Load 8(invocation) - 688: 78(ptr) AccessChain 27(data) 39 39 - 689: 20(ivec4) Load 688 - 690: 214(bvec4) SLessThan 689 213 - 691: 214(bvec4) GroupNonUniformQuadSwap 35 690 61 - 692: 20(ivec4) Select 691 217 213 - 693: 78(ptr) AccessChain 27(data) 687 39 - Store 693 692 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.subgroupShuffle.comp.out b/deps/glslang/Test/baseResults/spv.subgroupShuffle.comp.out deleted file mode 100644 index 02cf89f8..00000000 --- a/deps/glslang/Test/baseResults/spv.subgroupShuffle.comp.out +++ /dev/null @@ -1,533 +0,0 @@ -spv.subgroupShuffle.comp -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 420 - - Capability Shader - Capability Float64 - Capability GroupNonUniform - Capability GroupNonUniformShuffle - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 10 12 - ExecutionMode 4 LocalSize 8 8 1 - Source GLSL 450 - SourceExtension "GL_KHR_shader_subgroup_basic" - SourceExtension "GL_KHR_shader_subgroup_shuffle" - Name 4 "main" - Name 8 "invocation" - Name 10 "gl_SubgroupInvocationID" - Name 12 "gl_SubgroupSize" - Name 24 "Buffers" - MemberName 24(Buffers) 0 "f4" - MemberName 24(Buffers) 1 "i4" - MemberName 24(Buffers) 2 "u4" - MemberName 24(Buffers) 3 "d4" - Name 27 "data" - Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision - Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId - Decorate 11 RelaxedPrecision - Decorate 12(gl_SubgroupSize) RelaxedPrecision - Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize - Decorate 13 RelaxedPrecision - Decorate 14 RelaxedPrecision - Decorate 16 RelaxedPrecision - MemberDecorate 24(Buffers) 0 Offset 0 - MemberDecorate 24(Buffers) 1 Offset 16 - MemberDecorate 24(Buffers) 2 Offset 32 - MemberDecorate 24(Buffers) 3 Offset 64 - Decorate 24(Buffers) Block - Decorate 27(data) DescriptorSet 0 - Decorate 27(data) Binding 0 - Decorate 419 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypePointer Input 6(int) -10(gl_SubgroupInvocationID): 9(ptr) Variable Input -12(gl_SubgroupSize): 9(ptr) Variable Input - 15: 6(int) Constant 4 - 17: TypeFloat 32 - 18: TypeVector 17(float) 4 - 19: TypeInt 32 1 - 20: TypeVector 19(int) 4 - 21: TypeVector 6(int) 4 - 22: TypeFloat 64 - 23: TypeVector 22(float64_t) 4 - 24(Buffers): TypeStruct 18(fvec4) 20(ivec4) 21(ivec4) 23(f64vec4) - 25: TypeArray 24(Buffers) 15 - 26: TypePointer StorageBuffer 25 - 27(data): 26(ptr) Variable StorageBuffer - 29: 19(int) Constant 0 - 30: 6(int) Constant 0 - 31: TypePointer StorageBuffer 17(float) - 35: 6(int) Constant 3 - 39: 19(int) Constant 1 - 40: TypeVector 17(float) 2 - 41: TypePointer StorageBuffer 18(fvec4) - 49: 6(int) Constant 1 - 53: 19(int) Constant 2 - 54: TypeVector 17(float) 3 - 64: 6(int) Constant 2 - 68: 19(int) Constant 3 - 75: TypePointer StorageBuffer 19(int) - 82: TypeVector 19(int) 2 - 83: TypePointer StorageBuffer 20(ivec4) - 94: TypeVector 19(int) 3 - 113: TypePointer StorageBuffer 6(int) - 120: TypeVector 6(int) 2 - 121: TypePointer StorageBuffer 21(ivec4) - 132: TypeVector 6(int) 3 - 151: TypePointer StorageBuffer 22(float64_t) - 158: TypeVector 22(float64_t) 2 - 159: TypePointer StorageBuffer 23(f64vec4) - 170: TypeVector 22(float64_t) 3 - 191: TypeBool - 201: 82(ivec2) ConstantComposite 29 29 - 202: TypeVector 191(bool) 2 - 206: 82(ivec2) ConstantComposite 39 39 - 216: 94(ivec3) ConstantComposite 29 29 29 - 217: TypeVector 191(bool) 3 - 221: 94(ivec3) ConstantComposite 39 39 39 - 232: 20(ivec4) ConstantComposite 29 29 29 29 - 233: TypeVector 191(bool) 4 - 237: 20(ivec4) ConstantComposite 39 39 39 39 - 418: 6(int) Constant 8 - 419: 132(ivec3) ConstantComposite 418 418 49 - 4(main): 2 Function None 3 - 5: Label - 8(invocation): 7(ptr) Variable Function - 11: 6(int) Load 10(gl_SubgroupInvocationID) - 13: 6(int) Load 12(gl_SubgroupSize) - 14: 6(int) IAdd 11 13 - 16: 6(int) UMod 14 15 - Store 8(invocation) 16 - 28: 6(int) Load 8(invocation) - 32: 31(ptr) AccessChain 27(data) 29 29 30 - 33: 17(float) Load 32 - 34: 6(int) Load 8(invocation) - 36: 17(float) GroupNonUniformShuffle 35 33 34 - 37: 31(ptr) AccessChain 27(data) 28 29 30 - Store 37 36 - 38: 6(int) Load 8(invocation) - 42: 41(ptr) AccessChain 27(data) 39 29 - 43: 18(fvec4) Load 42 - 44: 40(fvec2) VectorShuffle 43 43 0 1 - 45: 6(int) Load 8(invocation) - 46: 40(fvec2) GroupNonUniformShuffle 35 44 45 - 47: 31(ptr) AccessChain 27(data) 38 29 30 - 48: 17(float) CompositeExtract 46 0 - Store 47 48 - 50: 31(ptr) AccessChain 27(data) 38 29 49 - 51: 17(float) CompositeExtract 46 1 - Store 50 51 - 52: 6(int) Load 8(invocation) - 55: 41(ptr) AccessChain 27(data) 53 29 - 56: 18(fvec4) Load 55 - 57: 54(fvec3) VectorShuffle 56 56 0 1 2 - 58: 6(int) Load 8(invocation) - 59: 54(fvec3) GroupNonUniformShuffle 35 57 58 - 60: 31(ptr) AccessChain 27(data) 52 29 30 - 61: 17(float) CompositeExtract 59 0 - Store 60 61 - 62: 31(ptr) AccessChain 27(data) 52 29 49 - 63: 17(float) CompositeExtract 59 1 - Store 62 63 - 65: 31(ptr) AccessChain 27(data) 52 29 64 - 66: 17(float) CompositeExtract 59 2 - Store 65 66 - 67: 6(int) Load 8(invocation) - 69: 41(ptr) AccessChain 27(data) 68 29 - 70: 18(fvec4) Load 69 - 71: 6(int) Load 8(invocation) - 72: 18(fvec4) GroupNonUniformShuffle 35 70 71 - 73: 41(ptr) AccessChain 27(data) 67 29 - Store 73 72 - 74: 6(int) Load 8(invocation) - 76: 75(ptr) AccessChain 27(data) 29 39 30 - 77: 19(int) Load 76 - 78: 6(int) Load 8(invocation) - 79: 19(int) GroupNonUniformShuffle 35 77 78 - 80: 75(ptr) AccessChain 27(data) 74 39 30 - Store 80 79 - 81: 6(int) Load 8(invocation) - 84: 83(ptr) AccessChain 27(data) 39 39 - 85: 20(ivec4) Load 84 - 86: 82(ivec2) VectorShuffle 85 85 0 1 - 87: 6(int) Load 8(invocation) - 88: 82(ivec2) GroupNonUniformShuffle 35 86 87 - 89: 75(ptr) AccessChain 27(data) 81 39 30 - 90: 19(int) CompositeExtract 88 0 - Store 89 90 - 91: 75(ptr) AccessChain 27(data) 81 39 49 - 92: 19(int) CompositeExtract 88 1 - Store 91 92 - 93: 6(int) Load 8(invocation) - 95: 83(ptr) AccessChain 27(data) 53 39 - 96: 20(ivec4) Load 95 - 97: 94(ivec3) VectorShuffle 96 96 0 1 2 - 98: 6(int) Load 8(invocation) - 99: 94(ivec3) GroupNonUniformShuffle 35 97 98 - 100: 75(ptr) AccessChain 27(data) 93 39 30 - 101: 19(int) CompositeExtract 99 0 - Store 100 101 - 102: 75(ptr) AccessChain 27(data) 93 39 49 - 103: 19(int) CompositeExtract 99 1 - Store 102 103 - 104: 75(ptr) AccessChain 27(data) 93 39 64 - 105: 19(int) CompositeExtract 99 2 - Store 104 105 - 106: 6(int) Load 8(invocation) - 107: 83(ptr) AccessChain 27(data) 68 39 - 108: 20(ivec4) Load 107 - 109: 6(int) Load 8(invocation) - 110: 20(ivec4) GroupNonUniformShuffle 35 108 109 - 111: 83(ptr) AccessChain 27(data) 106 39 - Store 111 110 - 112: 6(int) Load 8(invocation) - 114: 113(ptr) AccessChain 27(data) 29 53 30 - 115: 6(int) Load 114 - 116: 6(int) Load 8(invocation) - 117: 6(int) GroupNonUniformShuffle 35 115 116 - 118: 113(ptr) AccessChain 27(data) 112 53 30 - Store 118 117 - 119: 6(int) Load 8(invocation) - 122: 121(ptr) AccessChain 27(data) 39 53 - 123: 21(ivec4) Load 122 - 124: 120(ivec2) VectorShuffle 123 123 0 1 - 125: 6(int) Load 8(invocation) - 126: 120(ivec2) GroupNonUniformShuffle 35 124 125 - 127: 113(ptr) AccessChain 27(data) 119 53 30 - 128: 6(int) CompositeExtract 126 0 - Store 127 128 - 129: 113(ptr) AccessChain 27(data) 119 53 49 - 130: 6(int) CompositeExtract 126 1 - Store 129 130 - 131: 6(int) Load 8(invocation) - 133: 121(ptr) AccessChain 27(data) 53 53 - 134: 21(ivec4) Load 133 - 135: 132(ivec3) VectorShuffle 134 134 0 1 2 - 136: 6(int) Load 8(invocation) - 137: 132(ivec3) GroupNonUniformShuffle 35 135 136 - 138: 113(ptr) AccessChain 27(data) 131 53 30 - 139: 6(int) CompositeExtract 137 0 - Store 138 139 - 140: 113(ptr) AccessChain 27(data) 131 53 49 - 141: 6(int) CompositeExtract 137 1 - Store 140 141 - 142: 113(ptr) AccessChain 27(data) 131 53 64 - 143: 6(int) CompositeExtract 137 2 - Store 142 143 - 144: 6(int) Load 8(invocation) - 145: 121(ptr) AccessChain 27(data) 68 53 - 146: 21(ivec4) Load 145 - 147: 6(int) Load 8(invocation) - 148: 21(ivec4) GroupNonUniformShuffle 35 146 147 - 149: 121(ptr) AccessChain 27(data) 144 53 - Store 149 148 - 150: 6(int) Load 8(invocation) - 152: 151(ptr) AccessChain 27(data) 29 68 30 - 153:22(float64_t) Load 152 - 154: 6(int) Load 8(invocation) - 155:22(float64_t) GroupNonUniformShuffle 35 153 154 - 156: 151(ptr) AccessChain 27(data) 150 68 30 - Store 156 155 - 157: 6(int) Load 8(invocation) - 160: 159(ptr) AccessChain 27(data) 39 68 - 161: 23(f64vec4) Load 160 - 162:158(f64vec2) VectorShuffle 161 161 0 1 - 163: 6(int) Load 8(invocation) - 164:158(f64vec2) GroupNonUniformShuffle 35 162 163 - 165: 151(ptr) AccessChain 27(data) 157 68 30 - 166:22(float64_t) CompositeExtract 164 0 - Store 165 166 - 167: 151(ptr) AccessChain 27(data) 157 68 49 - 168:22(float64_t) CompositeExtract 164 1 - Store 167 168 - 169: 6(int) Load 8(invocation) - 171: 159(ptr) AccessChain 27(data) 53 68 - 172: 23(f64vec4) Load 171 - 173:170(f64vec3) VectorShuffle 172 172 0 1 2 - 174: 6(int) Load 8(invocation) - 175:170(f64vec3) GroupNonUniformShuffle 35 173 174 - 176: 151(ptr) AccessChain 27(data) 169 68 30 - 177:22(float64_t) CompositeExtract 175 0 - Store 176 177 - 178: 151(ptr) AccessChain 27(data) 169 68 49 - 179:22(float64_t) CompositeExtract 175 1 - Store 178 179 - 180: 151(ptr) AccessChain 27(data) 169 68 64 - 181:22(float64_t) CompositeExtract 175 2 - Store 180 181 - 182: 6(int) Load 8(invocation) - 183: 159(ptr) AccessChain 27(data) 68 68 - 184: 23(f64vec4) Load 183 - 185: 6(int) Load 8(invocation) - 186: 23(f64vec4) GroupNonUniformShuffle 35 184 185 - 187: 159(ptr) AccessChain 27(data) 182 68 - Store 187 186 - 188: 6(int) Load 8(invocation) - 189: 75(ptr) AccessChain 27(data) 29 39 30 - 190: 19(int) Load 189 - 192: 191(bool) SLessThan 190 29 - 193: 6(int) Load 8(invocation) - 194: 191(bool) GroupNonUniformShuffle 35 192 193 - 195: 19(int) Select 194 39 29 - 196: 75(ptr) AccessChain 27(data) 188 39 30 - Store 196 195 - 197: 6(int) Load 8(invocation) - 198: 83(ptr) AccessChain 27(data) 39 39 - 199: 20(ivec4) Load 198 - 200: 82(ivec2) VectorShuffle 199 199 0 1 - 203: 202(bvec2) SLessThan 200 201 - 204: 6(int) Load 8(invocation) - 205: 202(bvec2) GroupNonUniformShuffle 35 203 204 - 207: 82(ivec2) Select 205 206 201 - 208: 75(ptr) AccessChain 27(data) 197 39 30 - 209: 19(int) CompositeExtract 207 0 - Store 208 209 - 210: 75(ptr) AccessChain 27(data) 197 39 49 - 211: 19(int) CompositeExtract 207 1 - Store 210 211 - 212: 6(int) Load 8(invocation) - 213: 83(ptr) AccessChain 27(data) 39 39 - 214: 20(ivec4) Load 213 - 215: 94(ivec3) VectorShuffle 214 214 0 1 2 - 218: 217(bvec3) SLessThan 215 216 - 219: 6(int) Load 8(invocation) - 220: 217(bvec3) GroupNonUniformShuffle 35 218 219 - 222: 94(ivec3) Select 220 221 216 - 223: 75(ptr) AccessChain 27(data) 212 39 30 - 224: 19(int) CompositeExtract 222 0 - Store 223 224 - 225: 75(ptr) AccessChain 27(data) 212 39 49 - 226: 19(int) CompositeExtract 222 1 - Store 225 226 - 227: 75(ptr) AccessChain 27(data) 212 39 64 - 228: 19(int) CompositeExtract 222 2 - Store 227 228 - 229: 6(int) Load 8(invocation) - 230: 83(ptr) AccessChain 27(data) 39 39 - 231: 20(ivec4) Load 230 - 234: 233(bvec4) SLessThan 231 232 - 235: 6(int) Load 8(invocation) - 236: 233(bvec4) GroupNonUniformShuffle 35 234 235 - 238: 20(ivec4) Select 236 237 232 - 239: 83(ptr) AccessChain 27(data) 229 39 - Store 239 238 - 240: 6(int) Load 8(invocation) - 241: 31(ptr) AccessChain 27(data) 29 29 30 - 242: 17(float) Load 241 - 243: 6(int) Load 8(invocation) - 244: 17(float) GroupNonUniformShuffleXor 35 242 243 - 245: 31(ptr) AccessChain 27(data) 240 29 30 - Store 245 244 - 246: 6(int) Load 8(invocation) - 247: 41(ptr) AccessChain 27(data) 39 29 - 248: 18(fvec4) Load 247 - 249: 40(fvec2) VectorShuffle 248 248 0 1 - 250: 6(int) Load 8(invocation) - 251: 40(fvec2) GroupNonUniformShuffleXor 35 249 250 - 252: 31(ptr) AccessChain 27(data) 246 29 30 - 253: 17(float) CompositeExtract 251 0 - Store 252 253 - 254: 31(ptr) AccessChain 27(data) 246 29 49 - 255: 17(float) CompositeExtract 251 1 - Store 254 255 - 256: 6(int) Load 8(invocation) - 257: 41(ptr) AccessChain 27(data) 53 29 - 258: 18(fvec4) Load 257 - 259: 54(fvec3) VectorShuffle 258 258 0 1 2 - 260: 6(int) Load 8(invocation) - 261: 54(fvec3) GroupNonUniformShuffleXor 35 259 260 - 262: 31(ptr) AccessChain 27(data) 256 29 30 - 263: 17(float) CompositeExtract 261 0 - Store 262 263 - 264: 31(ptr) AccessChain 27(data) 256 29 49 - 265: 17(float) CompositeExtract 261 1 - Store 264 265 - 266: 31(ptr) AccessChain 27(data) 256 29 64 - 267: 17(float) CompositeExtract 261 2 - Store 266 267 - 268: 6(int) Load 8(invocation) - 269: 41(ptr) AccessChain 27(data) 68 29 - 270: 18(fvec4) Load 269 - 271: 6(int) Load 8(invocation) - 272: 18(fvec4) GroupNonUniformShuffleXor 35 270 271 - 273: 41(ptr) AccessChain 27(data) 268 29 - Store 273 272 - 274: 6(int) Load 8(invocation) - 275: 75(ptr) AccessChain 27(data) 29 39 30 - 276: 19(int) Load 275 - 277: 6(int) Load 8(invocation) - 278: 19(int) GroupNonUniformShuffleXor 35 276 277 - 279: 75(ptr) AccessChain 27(data) 274 39 30 - Store 279 278 - 280: 6(int) Load 8(invocation) - 281: 83(ptr) AccessChain 27(data) 39 39 - 282: 20(ivec4) Load 281 - 283: 82(ivec2) VectorShuffle 282 282 0 1 - 284: 6(int) Load 8(invocation) - 285: 82(ivec2) GroupNonUniformShuffleXor 35 283 284 - 286: 75(ptr) AccessChain 27(data) 280 39 30 - 287: 19(int) CompositeExtract 285 0 - Store 286 287 - 288: 75(ptr) AccessChain 27(data) 280 39 49 - 289: 19(int) CompositeExtract 285 1 - Store 288 289 - 290: 6(int) Load 8(invocation) - 291: 83(ptr) AccessChain 27(data) 53 39 - 292: 20(ivec4) Load 291 - 293: 94(ivec3) VectorShuffle 292 292 0 1 2 - 294: 6(int) Load 8(invocation) - 295: 94(ivec3) GroupNonUniformShuffleXor 35 293 294 - 296: 75(ptr) AccessChain 27(data) 290 39 30 - 297: 19(int) CompositeExtract 295 0 - Store 296 297 - 298: 75(ptr) AccessChain 27(data) 290 39 49 - 299: 19(int) CompositeExtract 295 1 - Store 298 299 - 300: 75(ptr) AccessChain 27(data) 290 39 64 - 301: 19(int) CompositeExtract 295 2 - Store 300 301 - 302: 6(int) Load 8(invocation) - 303: 83(ptr) AccessChain 27(data) 68 39 - 304: 20(ivec4) Load 303 - 305: 6(int) Load 8(invocation) - 306: 20(ivec4) GroupNonUniformShuffleXor 35 304 305 - 307: 83(ptr) AccessChain 27(data) 302 39 - Store 307 306 - 308: 6(int) Load 8(invocation) - 309: 113(ptr) AccessChain 27(data) 29 53 30 - 310: 6(int) Load 309 - 311: 6(int) Load 8(invocation) - 312: 6(int) GroupNonUniformShuffleXor 35 310 311 - 313: 113(ptr) AccessChain 27(data) 308 53 30 - Store 313 312 - 314: 6(int) Load 8(invocation) - 315: 121(ptr) AccessChain 27(data) 39 53 - 316: 21(ivec4) Load 315 - 317: 120(ivec2) VectorShuffle 316 316 0 1 - 318: 6(int) Load 8(invocation) - 319: 120(ivec2) GroupNonUniformShuffleXor 35 317 318 - 320: 113(ptr) AccessChain 27(data) 314 53 30 - 321: 6(int) CompositeExtract 319 0 - Store 320 321 - 322: 113(ptr) AccessChain 27(data) 314 53 49 - 323: 6(int) CompositeExtract 319 1 - Store 322 323 - 324: 6(int) Load 8(invocation) - 325: 121(ptr) AccessChain 27(data) 53 53 - 326: 21(ivec4) Load 325 - 327: 132(ivec3) VectorShuffle 326 326 0 1 2 - 328: 6(int) Load 8(invocation) - 329: 132(ivec3) GroupNonUniformShuffleXor 35 327 328 - 330: 113(ptr) AccessChain 27(data) 324 53 30 - 331: 6(int) CompositeExtract 329 0 - Store 330 331 - 332: 113(ptr) AccessChain 27(data) 324 53 49 - 333: 6(int) CompositeExtract 329 1 - Store 332 333 - 334: 113(ptr) AccessChain 27(data) 324 53 64 - 335: 6(int) CompositeExtract 329 2 - Store 334 335 - 336: 6(int) Load 8(invocation) - 337: 121(ptr) AccessChain 27(data) 68 53 - 338: 21(ivec4) Load 337 - 339: 6(int) Load 8(invocation) - 340: 21(ivec4) GroupNonUniformShuffleXor 35 338 339 - 341: 121(ptr) AccessChain 27(data) 336 53 - Store 341 340 - 342: 6(int) Load 8(invocation) - 343: 151(ptr) AccessChain 27(data) 29 68 30 - 344:22(float64_t) Load 343 - 345: 6(int) Load 8(invocation) - 346:22(float64_t) GroupNonUniformShuffleXor 35 344 345 - 347: 151(ptr) AccessChain 27(data) 342 68 30 - Store 347 346 - 348: 6(int) Load 8(invocation) - 349: 159(ptr) AccessChain 27(data) 39 68 - 350: 23(f64vec4) Load 349 - 351:158(f64vec2) VectorShuffle 350 350 0 1 - 352: 6(int) Load 8(invocation) - 353:158(f64vec2) GroupNonUniformShuffleXor 35 351 352 - 354: 151(ptr) AccessChain 27(data) 348 68 30 - 355:22(float64_t) CompositeExtract 353 0 - Store 354 355 - 356: 151(ptr) AccessChain 27(data) 348 68 49 - 357:22(float64_t) CompositeExtract 353 1 - Store 356 357 - 358: 6(int) Load 8(invocation) - 359: 159(ptr) AccessChain 27(data) 53 68 - 360: 23(f64vec4) Load 359 - 361:170(f64vec3) VectorShuffle 360 360 0 1 2 - 362: 6(int) Load 8(invocation) - 363:170(f64vec3) GroupNonUniformShuffleXor 35 361 362 - 364: 151(ptr) AccessChain 27(data) 358 68 30 - 365:22(float64_t) CompositeExtract 363 0 - Store 364 365 - 366: 151(ptr) AccessChain 27(data) 358 68 49 - 367:22(float64_t) CompositeExtract 363 1 - Store 366 367 - 368: 151(ptr) AccessChain 27(data) 358 68 64 - 369:22(float64_t) CompositeExtract 363 2 - Store 368 369 - 370: 6(int) Load 8(invocation) - 371: 159(ptr) AccessChain 27(data) 68 68 - 372: 23(f64vec4) Load 371 - 373: 6(int) Load 8(invocation) - 374: 23(f64vec4) GroupNonUniformShuffleXor 35 372 373 - 375: 159(ptr) AccessChain 27(data) 370 68 - Store 375 374 - 376: 6(int) Load 8(invocation) - 377: 75(ptr) AccessChain 27(data) 29 39 30 - 378: 19(int) Load 377 - 379: 191(bool) SLessThan 378 29 - 380: 6(int) Load 8(invocation) - 381: 191(bool) GroupNonUniformShuffleXor 35 379 380 - 382: 19(int) Select 381 39 29 - 383: 75(ptr) AccessChain 27(data) 376 39 30 - Store 383 382 - 384: 6(int) Load 8(invocation) - 385: 83(ptr) AccessChain 27(data) 39 39 - 386: 20(ivec4) Load 385 - 387: 82(ivec2) VectorShuffle 386 386 0 1 - 388: 202(bvec2) SLessThan 387 201 - 389: 6(int) Load 8(invocation) - 390: 202(bvec2) GroupNonUniformShuffleXor 35 388 389 - 391: 82(ivec2) Select 390 206 201 - 392: 75(ptr) AccessChain 27(data) 384 39 30 - 393: 19(int) CompositeExtract 391 0 - Store 392 393 - 394: 75(ptr) AccessChain 27(data) 384 39 49 - 395: 19(int) CompositeExtract 391 1 - Store 394 395 - 396: 6(int) Load 8(invocation) - 397: 83(ptr) AccessChain 27(data) 39 39 - 398: 20(ivec4) Load 397 - 399: 94(ivec3) VectorShuffle 398 398 0 1 2 - 400: 217(bvec3) SLessThan 399 216 - 401: 6(int) Load 8(invocation) - 402: 217(bvec3) GroupNonUniformShuffleXor 35 400 401 - 403: 94(ivec3) Select 402 221 216 - 404: 75(ptr) AccessChain 27(data) 396 39 30 - 405: 19(int) CompositeExtract 403 0 - Store 404 405 - 406: 75(ptr) AccessChain 27(data) 396 39 49 - 407: 19(int) CompositeExtract 403 1 - Store 406 407 - 408: 75(ptr) AccessChain 27(data) 396 39 64 - 409: 19(int) CompositeExtract 403 2 - Store 408 409 - 410: 6(int) Load 8(invocation) - 411: 83(ptr) AccessChain 27(data) 39 39 - 412: 20(ivec4) Load 411 - 413: 233(bvec4) SLessThan 412 232 - 414: 6(int) Load 8(invocation) - 415: 233(bvec4) GroupNonUniformShuffleXor 35 413 414 - 416: 20(ivec4) Select 415 237 232 - 417: 83(ptr) AccessChain 27(data) 410 39 - Store 417 416 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.subgroupShuffleRelative.comp.out b/deps/glslang/Test/baseResults/spv.subgroupShuffleRelative.comp.out deleted file mode 100644 index e8486b66..00000000 --- a/deps/glslang/Test/baseResults/spv.subgroupShuffleRelative.comp.out +++ /dev/null @@ -1,533 +0,0 @@ -spv.subgroupShuffleRelative.comp -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 420 - - Capability Shader - Capability Float64 - Capability GroupNonUniform - Capability GroupNonUniformShuffleRelative - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 10 12 - ExecutionMode 4 LocalSize 8 8 1 - Source GLSL 450 - SourceExtension "GL_KHR_shader_subgroup_basic" - SourceExtension "GL_KHR_shader_subgroup_shuffle_relative" - Name 4 "main" - Name 8 "invocation" - Name 10 "gl_SubgroupInvocationID" - Name 12 "gl_SubgroupSize" - Name 24 "Buffers" - MemberName 24(Buffers) 0 "f4" - MemberName 24(Buffers) 1 "i4" - MemberName 24(Buffers) 2 "u4" - MemberName 24(Buffers) 3 "d4" - Name 27 "data" - Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision - Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId - Decorate 11 RelaxedPrecision - Decorate 12(gl_SubgroupSize) RelaxedPrecision - Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize - Decorate 13 RelaxedPrecision - Decorate 14 RelaxedPrecision - Decorate 16 RelaxedPrecision - MemberDecorate 24(Buffers) 0 Offset 0 - MemberDecorate 24(Buffers) 1 Offset 16 - MemberDecorate 24(Buffers) 2 Offset 32 - MemberDecorate 24(Buffers) 3 Offset 64 - Decorate 24(Buffers) Block - Decorate 27(data) DescriptorSet 0 - Decorate 27(data) Binding 0 - Decorate 419 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypePointer Input 6(int) -10(gl_SubgroupInvocationID): 9(ptr) Variable Input -12(gl_SubgroupSize): 9(ptr) Variable Input - 15: 6(int) Constant 4 - 17: TypeFloat 32 - 18: TypeVector 17(float) 4 - 19: TypeInt 32 1 - 20: TypeVector 19(int) 4 - 21: TypeVector 6(int) 4 - 22: TypeFloat 64 - 23: TypeVector 22(float64_t) 4 - 24(Buffers): TypeStruct 18(fvec4) 20(ivec4) 21(ivec4) 23(f64vec4) - 25: TypeArray 24(Buffers) 15 - 26: TypePointer StorageBuffer 25 - 27(data): 26(ptr) Variable StorageBuffer - 29: 19(int) Constant 0 - 30: 6(int) Constant 0 - 31: TypePointer StorageBuffer 17(float) - 35: 6(int) Constant 3 - 39: 19(int) Constant 1 - 40: TypeVector 17(float) 2 - 41: TypePointer StorageBuffer 18(fvec4) - 49: 6(int) Constant 1 - 53: 19(int) Constant 2 - 54: TypeVector 17(float) 3 - 64: 6(int) Constant 2 - 68: 19(int) Constant 3 - 75: TypePointer StorageBuffer 19(int) - 82: TypeVector 19(int) 2 - 83: TypePointer StorageBuffer 20(ivec4) - 94: TypeVector 19(int) 3 - 113: TypePointer StorageBuffer 6(int) - 120: TypeVector 6(int) 2 - 121: TypePointer StorageBuffer 21(ivec4) - 132: TypeVector 6(int) 3 - 151: TypePointer StorageBuffer 22(float64_t) - 158: TypeVector 22(float64_t) 2 - 159: TypePointer StorageBuffer 23(f64vec4) - 170: TypeVector 22(float64_t) 3 - 191: TypeBool - 201: 82(ivec2) ConstantComposite 29 29 - 202: TypeVector 191(bool) 2 - 206: 82(ivec2) ConstantComposite 39 39 - 216: 94(ivec3) ConstantComposite 29 29 29 - 217: TypeVector 191(bool) 3 - 221: 94(ivec3) ConstantComposite 39 39 39 - 232: 20(ivec4) ConstantComposite 29 29 29 29 - 233: TypeVector 191(bool) 4 - 237: 20(ivec4) ConstantComposite 39 39 39 39 - 418: 6(int) Constant 8 - 419: 132(ivec3) ConstantComposite 418 418 49 - 4(main): 2 Function None 3 - 5: Label - 8(invocation): 7(ptr) Variable Function - 11: 6(int) Load 10(gl_SubgroupInvocationID) - 13: 6(int) Load 12(gl_SubgroupSize) - 14: 6(int) IAdd 11 13 - 16: 6(int) UMod 14 15 - Store 8(invocation) 16 - 28: 6(int) Load 8(invocation) - 32: 31(ptr) AccessChain 27(data) 29 29 30 - 33: 17(float) Load 32 - 34: 6(int) Load 8(invocation) - 36: 17(float) GroupNonUniformShuffleUp 35 33 34 - 37: 31(ptr) AccessChain 27(data) 28 29 30 - Store 37 36 - 38: 6(int) Load 8(invocation) - 42: 41(ptr) AccessChain 27(data) 39 29 - 43: 18(fvec4) Load 42 - 44: 40(fvec2) VectorShuffle 43 43 0 1 - 45: 6(int) Load 8(invocation) - 46: 40(fvec2) GroupNonUniformShuffleUp 35 44 45 - 47: 31(ptr) AccessChain 27(data) 38 29 30 - 48: 17(float) CompositeExtract 46 0 - Store 47 48 - 50: 31(ptr) AccessChain 27(data) 38 29 49 - 51: 17(float) CompositeExtract 46 1 - Store 50 51 - 52: 6(int) Load 8(invocation) - 55: 41(ptr) AccessChain 27(data) 53 29 - 56: 18(fvec4) Load 55 - 57: 54(fvec3) VectorShuffle 56 56 0 1 2 - 58: 6(int) Load 8(invocation) - 59: 54(fvec3) GroupNonUniformShuffleUp 35 57 58 - 60: 31(ptr) AccessChain 27(data) 52 29 30 - 61: 17(float) CompositeExtract 59 0 - Store 60 61 - 62: 31(ptr) AccessChain 27(data) 52 29 49 - 63: 17(float) CompositeExtract 59 1 - Store 62 63 - 65: 31(ptr) AccessChain 27(data) 52 29 64 - 66: 17(float) CompositeExtract 59 2 - Store 65 66 - 67: 6(int) Load 8(invocation) - 69: 41(ptr) AccessChain 27(data) 68 29 - 70: 18(fvec4) Load 69 - 71: 6(int) Load 8(invocation) - 72: 18(fvec4) GroupNonUniformShuffleUp 35 70 71 - 73: 41(ptr) AccessChain 27(data) 67 29 - Store 73 72 - 74: 6(int) Load 8(invocation) - 76: 75(ptr) AccessChain 27(data) 29 39 30 - 77: 19(int) Load 76 - 78: 6(int) Load 8(invocation) - 79: 19(int) GroupNonUniformShuffleUp 35 77 78 - 80: 75(ptr) AccessChain 27(data) 74 39 30 - Store 80 79 - 81: 6(int) Load 8(invocation) - 84: 83(ptr) AccessChain 27(data) 39 39 - 85: 20(ivec4) Load 84 - 86: 82(ivec2) VectorShuffle 85 85 0 1 - 87: 6(int) Load 8(invocation) - 88: 82(ivec2) GroupNonUniformShuffleUp 35 86 87 - 89: 75(ptr) AccessChain 27(data) 81 39 30 - 90: 19(int) CompositeExtract 88 0 - Store 89 90 - 91: 75(ptr) AccessChain 27(data) 81 39 49 - 92: 19(int) CompositeExtract 88 1 - Store 91 92 - 93: 6(int) Load 8(invocation) - 95: 83(ptr) AccessChain 27(data) 53 39 - 96: 20(ivec4) Load 95 - 97: 94(ivec3) VectorShuffle 96 96 0 1 2 - 98: 6(int) Load 8(invocation) - 99: 94(ivec3) GroupNonUniformShuffleUp 35 97 98 - 100: 75(ptr) AccessChain 27(data) 93 39 30 - 101: 19(int) CompositeExtract 99 0 - Store 100 101 - 102: 75(ptr) AccessChain 27(data) 93 39 49 - 103: 19(int) CompositeExtract 99 1 - Store 102 103 - 104: 75(ptr) AccessChain 27(data) 93 39 64 - 105: 19(int) CompositeExtract 99 2 - Store 104 105 - 106: 6(int) Load 8(invocation) - 107: 83(ptr) AccessChain 27(data) 68 39 - 108: 20(ivec4) Load 107 - 109: 6(int) Load 8(invocation) - 110: 20(ivec4) GroupNonUniformShuffleUp 35 108 109 - 111: 83(ptr) AccessChain 27(data) 106 39 - Store 111 110 - 112: 6(int) Load 8(invocation) - 114: 113(ptr) AccessChain 27(data) 29 53 30 - 115: 6(int) Load 114 - 116: 6(int) Load 8(invocation) - 117: 6(int) GroupNonUniformShuffleUp 35 115 116 - 118: 113(ptr) AccessChain 27(data) 112 53 30 - Store 118 117 - 119: 6(int) Load 8(invocation) - 122: 121(ptr) AccessChain 27(data) 39 53 - 123: 21(ivec4) Load 122 - 124: 120(ivec2) VectorShuffle 123 123 0 1 - 125: 6(int) Load 8(invocation) - 126: 120(ivec2) GroupNonUniformShuffleUp 35 124 125 - 127: 113(ptr) AccessChain 27(data) 119 53 30 - 128: 6(int) CompositeExtract 126 0 - Store 127 128 - 129: 113(ptr) AccessChain 27(data) 119 53 49 - 130: 6(int) CompositeExtract 126 1 - Store 129 130 - 131: 6(int) Load 8(invocation) - 133: 121(ptr) AccessChain 27(data) 53 53 - 134: 21(ivec4) Load 133 - 135: 132(ivec3) VectorShuffle 134 134 0 1 2 - 136: 6(int) Load 8(invocation) - 137: 132(ivec3) GroupNonUniformShuffleUp 35 135 136 - 138: 113(ptr) AccessChain 27(data) 131 53 30 - 139: 6(int) CompositeExtract 137 0 - Store 138 139 - 140: 113(ptr) AccessChain 27(data) 131 53 49 - 141: 6(int) CompositeExtract 137 1 - Store 140 141 - 142: 113(ptr) AccessChain 27(data) 131 53 64 - 143: 6(int) CompositeExtract 137 2 - Store 142 143 - 144: 6(int) Load 8(invocation) - 145: 121(ptr) AccessChain 27(data) 68 53 - 146: 21(ivec4) Load 145 - 147: 6(int) Load 8(invocation) - 148: 21(ivec4) GroupNonUniformShuffleUp 35 146 147 - 149: 121(ptr) AccessChain 27(data) 144 53 - Store 149 148 - 150: 6(int) Load 8(invocation) - 152: 151(ptr) AccessChain 27(data) 29 68 30 - 153:22(float64_t) Load 152 - 154: 6(int) Load 8(invocation) - 155:22(float64_t) GroupNonUniformShuffleUp 35 153 154 - 156: 151(ptr) AccessChain 27(data) 150 68 30 - Store 156 155 - 157: 6(int) Load 8(invocation) - 160: 159(ptr) AccessChain 27(data) 39 68 - 161: 23(f64vec4) Load 160 - 162:158(f64vec2) VectorShuffle 161 161 0 1 - 163: 6(int) Load 8(invocation) - 164:158(f64vec2) GroupNonUniformShuffleUp 35 162 163 - 165: 151(ptr) AccessChain 27(data) 157 68 30 - 166:22(float64_t) CompositeExtract 164 0 - Store 165 166 - 167: 151(ptr) AccessChain 27(data) 157 68 49 - 168:22(float64_t) CompositeExtract 164 1 - Store 167 168 - 169: 6(int) Load 8(invocation) - 171: 159(ptr) AccessChain 27(data) 53 68 - 172: 23(f64vec4) Load 171 - 173:170(f64vec3) VectorShuffle 172 172 0 1 2 - 174: 6(int) Load 8(invocation) - 175:170(f64vec3) GroupNonUniformShuffleUp 35 173 174 - 176: 151(ptr) AccessChain 27(data) 169 68 30 - 177:22(float64_t) CompositeExtract 175 0 - Store 176 177 - 178: 151(ptr) AccessChain 27(data) 169 68 49 - 179:22(float64_t) CompositeExtract 175 1 - Store 178 179 - 180: 151(ptr) AccessChain 27(data) 169 68 64 - 181:22(float64_t) CompositeExtract 175 2 - Store 180 181 - 182: 6(int) Load 8(invocation) - 183: 159(ptr) AccessChain 27(data) 68 68 - 184: 23(f64vec4) Load 183 - 185: 6(int) Load 8(invocation) - 186: 23(f64vec4) GroupNonUniformShuffleUp 35 184 185 - 187: 159(ptr) AccessChain 27(data) 182 68 - Store 187 186 - 188: 6(int) Load 8(invocation) - 189: 75(ptr) AccessChain 27(data) 29 39 30 - 190: 19(int) Load 189 - 192: 191(bool) SLessThan 190 29 - 193: 6(int) Load 8(invocation) - 194: 191(bool) GroupNonUniformShuffleUp 35 192 193 - 195: 19(int) Select 194 39 29 - 196: 75(ptr) AccessChain 27(data) 188 39 30 - Store 196 195 - 197: 6(int) Load 8(invocation) - 198: 83(ptr) AccessChain 27(data) 39 39 - 199: 20(ivec4) Load 198 - 200: 82(ivec2) VectorShuffle 199 199 0 1 - 203: 202(bvec2) SLessThan 200 201 - 204: 6(int) Load 8(invocation) - 205: 202(bvec2) GroupNonUniformShuffleUp 35 203 204 - 207: 82(ivec2) Select 205 206 201 - 208: 75(ptr) AccessChain 27(data) 197 39 30 - 209: 19(int) CompositeExtract 207 0 - Store 208 209 - 210: 75(ptr) AccessChain 27(data) 197 39 49 - 211: 19(int) CompositeExtract 207 1 - Store 210 211 - 212: 6(int) Load 8(invocation) - 213: 83(ptr) AccessChain 27(data) 39 39 - 214: 20(ivec4) Load 213 - 215: 94(ivec3) VectorShuffle 214 214 0 1 2 - 218: 217(bvec3) SLessThan 215 216 - 219: 6(int) Load 8(invocation) - 220: 217(bvec3) GroupNonUniformShuffleUp 35 218 219 - 222: 94(ivec3) Select 220 221 216 - 223: 75(ptr) AccessChain 27(data) 212 39 30 - 224: 19(int) CompositeExtract 222 0 - Store 223 224 - 225: 75(ptr) AccessChain 27(data) 212 39 49 - 226: 19(int) CompositeExtract 222 1 - Store 225 226 - 227: 75(ptr) AccessChain 27(data) 212 39 64 - 228: 19(int) CompositeExtract 222 2 - Store 227 228 - 229: 6(int) Load 8(invocation) - 230: 83(ptr) AccessChain 27(data) 39 39 - 231: 20(ivec4) Load 230 - 234: 233(bvec4) SLessThan 231 232 - 235: 6(int) Load 8(invocation) - 236: 233(bvec4) GroupNonUniformShuffleUp 35 234 235 - 238: 20(ivec4) Select 236 237 232 - 239: 83(ptr) AccessChain 27(data) 229 39 - Store 239 238 - 240: 6(int) Load 8(invocation) - 241: 31(ptr) AccessChain 27(data) 29 29 30 - 242: 17(float) Load 241 - 243: 6(int) Load 8(invocation) - 244: 17(float) GroupNonUniformShuffleDown 35 242 243 - 245: 31(ptr) AccessChain 27(data) 240 29 30 - Store 245 244 - 246: 6(int) Load 8(invocation) - 247: 41(ptr) AccessChain 27(data) 39 29 - 248: 18(fvec4) Load 247 - 249: 40(fvec2) VectorShuffle 248 248 0 1 - 250: 6(int) Load 8(invocation) - 251: 40(fvec2) GroupNonUniformShuffleDown 35 249 250 - 252: 31(ptr) AccessChain 27(data) 246 29 30 - 253: 17(float) CompositeExtract 251 0 - Store 252 253 - 254: 31(ptr) AccessChain 27(data) 246 29 49 - 255: 17(float) CompositeExtract 251 1 - Store 254 255 - 256: 6(int) Load 8(invocation) - 257: 41(ptr) AccessChain 27(data) 53 29 - 258: 18(fvec4) Load 257 - 259: 54(fvec3) VectorShuffle 258 258 0 1 2 - 260: 6(int) Load 8(invocation) - 261: 54(fvec3) GroupNonUniformShuffleDown 35 259 260 - 262: 31(ptr) AccessChain 27(data) 256 29 30 - 263: 17(float) CompositeExtract 261 0 - Store 262 263 - 264: 31(ptr) AccessChain 27(data) 256 29 49 - 265: 17(float) CompositeExtract 261 1 - Store 264 265 - 266: 31(ptr) AccessChain 27(data) 256 29 64 - 267: 17(float) CompositeExtract 261 2 - Store 266 267 - 268: 6(int) Load 8(invocation) - 269: 41(ptr) AccessChain 27(data) 68 29 - 270: 18(fvec4) Load 269 - 271: 6(int) Load 8(invocation) - 272: 18(fvec4) GroupNonUniformShuffleDown 35 270 271 - 273: 41(ptr) AccessChain 27(data) 268 29 - Store 273 272 - 274: 6(int) Load 8(invocation) - 275: 75(ptr) AccessChain 27(data) 29 39 30 - 276: 19(int) Load 275 - 277: 6(int) Load 8(invocation) - 278: 19(int) GroupNonUniformShuffleDown 35 276 277 - 279: 75(ptr) AccessChain 27(data) 274 39 30 - Store 279 278 - 280: 6(int) Load 8(invocation) - 281: 83(ptr) AccessChain 27(data) 39 39 - 282: 20(ivec4) Load 281 - 283: 82(ivec2) VectorShuffle 282 282 0 1 - 284: 6(int) Load 8(invocation) - 285: 82(ivec2) GroupNonUniformShuffleDown 35 283 284 - 286: 75(ptr) AccessChain 27(data) 280 39 30 - 287: 19(int) CompositeExtract 285 0 - Store 286 287 - 288: 75(ptr) AccessChain 27(data) 280 39 49 - 289: 19(int) CompositeExtract 285 1 - Store 288 289 - 290: 6(int) Load 8(invocation) - 291: 83(ptr) AccessChain 27(data) 53 39 - 292: 20(ivec4) Load 291 - 293: 94(ivec3) VectorShuffle 292 292 0 1 2 - 294: 6(int) Load 8(invocation) - 295: 94(ivec3) GroupNonUniformShuffleDown 35 293 294 - 296: 75(ptr) AccessChain 27(data) 290 39 30 - 297: 19(int) CompositeExtract 295 0 - Store 296 297 - 298: 75(ptr) AccessChain 27(data) 290 39 49 - 299: 19(int) CompositeExtract 295 1 - Store 298 299 - 300: 75(ptr) AccessChain 27(data) 290 39 64 - 301: 19(int) CompositeExtract 295 2 - Store 300 301 - 302: 6(int) Load 8(invocation) - 303: 83(ptr) AccessChain 27(data) 68 39 - 304: 20(ivec4) Load 303 - 305: 6(int) Load 8(invocation) - 306: 20(ivec4) GroupNonUniformShuffleDown 35 304 305 - 307: 83(ptr) AccessChain 27(data) 302 39 - Store 307 306 - 308: 6(int) Load 8(invocation) - 309: 113(ptr) AccessChain 27(data) 29 53 30 - 310: 6(int) Load 309 - 311: 6(int) Load 8(invocation) - 312: 6(int) GroupNonUniformShuffleDown 35 310 311 - 313: 113(ptr) AccessChain 27(data) 308 53 30 - Store 313 312 - 314: 6(int) Load 8(invocation) - 315: 121(ptr) AccessChain 27(data) 39 53 - 316: 21(ivec4) Load 315 - 317: 120(ivec2) VectorShuffle 316 316 0 1 - 318: 6(int) Load 8(invocation) - 319: 120(ivec2) GroupNonUniformShuffleDown 35 317 318 - 320: 113(ptr) AccessChain 27(data) 314 53 30 - 321: 6(int) CompositeExtract 319 0 - Store 320 321 - 322: 113(ptr) AccessChain 27(data) 314 53 49 - 323: 6(int) CompositeExtract 319 1 - Store 322 323 - 324: 6(int) Load 8(invocation) - 325: 121(ptr) AccessChain 27(data) 53 53 - 326: 21(ivec4) Load 325 - 327: 132(ivec3) VectorShuffle 326 326 0 1 2 - 328: 6(int) Load 8(invocation) - 329: 132(ivec3) GroupNonUniformShuffleDown 35 327 328 - 330: 113(ptr) AccessChain 27(data) 324 53 30 - 331: 6(int) CompositeExtract 329 0 - Store 330 331 - 332: 113(ptr) AccessChain 27(data) 324 53 49 - 333: 6(int) CompositeExtract 329 1 - Store 332 333 - 334: 113(ptr) AccessChain 27(data) 324 53 64 - 335: 6(int) CompositeExtract 329 2 - Store 334 335 - 336: 6(int) Load 8(invocation) - 337: 121(ptr) AccessChain 27(data) 68 53 - 338: 21(ivec4) Load 337 - 339: 6(int) Load 8(invocation) - 340: 21(ivec4) GroupNonUniformShuffleDown 35 338 339 - 341: 121(ptr) AccessChain 27(data) 336 53 - Store 341 340 - 342: 6(int) Load 8(invocation) - 343: 151(ptr) AccessChain 27(data) 29 68 30 - 344:22(float64_t) Load 343 - 345: 6(int) Load 8(invocation) - 346:22(float64_t) GroupNonUniformShuffleDown 35 344 345 - 347: 151(ptr) AccessChain 27(data) 342 68 30 - Store 347 346 - 348: 6(int) Load 8(invocation) - 349: 159(ptr) AccessChain 27(data) 39 68 - 350: 23(f64vec4) Load 349 - 351:158(f64vec2) VectorShuffle 350 350 0 1 - 352: 6(int) Load 8(invocation) - 353:158(f64vec2) GroupNonUniformShuffleDown 35 351 352 - 354: 151(ptr) AccessChain 27(data) 348 68 30 - 355:22(float64_t) CompositeExtract 353 0 - Store 354 355 - 356: 151(ptr) AccessChain 27(data) 348 68 49 - 357:22(float64_t) CompositeExtract 353 1 - Store 356 357 - 358: 6(int) Load 8(invocation) - 359: 159(ptr) AccessChain 27(data) 53 68 - 360: 23(f64vec4) Load 359 - 361:170(f64vec3) VectorShuffle 360 360 0 1 2 - 362: 6(int) Load 8(invocation) - 363:170(f64vec3) GroupNonUniformShuffleDown 35 361 362 - 364: 151(ptr) AccessChain 27(data) 358 68 30 - 365:22(float64_t) CompositeExtract 363 0 - Store 364 365 - 366: 151(ptr) AccessChain 27(data) 358 68 49 - 367:22(float64_t) CompositeExtract 363 1 - Store 366 367 - 368: 151(ptr) AccessChain 27(data) 358 68 64 - 369:22(float64_t) CompositeExtract 363 2 - Store 368 369 - 370: 6(int) Load 8(invocation) - 371: 159(ptr) AccessChain 27(data) 68 68 - 372: 23(f64vec4) Load 371 - 373: 6(int) Load 8(invocation) - 374: 23(f64vec4) GroupNonUniformShuffleDown 35 372 373 - 375: 159(ptr) AccessChain 27(data) 370 68 - Store 375 374 - 376: 6(int) Load 8(invocation) - 377: 75(ptr) AccessChain 27(data) 29 39 30 - 378: 19(int) Load 377 - 379: 191(bool) SLessThan 378 29 - 380: 6(int) Load 8(invocation) - 381: 191(bool) GroupNonUniformShuffleDown 35 379 380 - 382: 19(int) Select 381 39 29 - 383: 75(ptr) AccessChain 27(data) 376 39 30 - Store 383 382 - 384: 6(int) Load 8(invocation) - 385: 83(ptr) AccessChain 27(data) 39 39 - 386: 20(ivec4) Load 385 - 387: 82(ivec2) VectorShuffle 386 386 0 1 - 388: 202(bvec2) SLessThan 387 201 - 389: 6(int) Load 8(invocation) - 390: 202(bvec2) GroupNonUniformShuffleDown 35 388 389 - 391: 82(ivec2) Select 390 206 201 - 392: 75(ptr) AccessChain 27(data) 384 39 30 - 393: 19(int) CompositeExtract 391 0 - Store 392 393 - 394: 75(ptr) AccessChain 27(data) 384 39 49 - 395: 19(int) CompositeExtract 391 1 - Store 394 395 - 396: 6(int) Load 8(invocation) - 397: 83(ptr) AccessChain 27(data) 39 39 - 398: 20(ivec4) Load 397 - 399: 94(ivec3) VectorShuffle 398 398 0 1 2 - 400: 217(bvec3) SLessThan 399 216 - 401: 6(int) Load 8(invocation) - 402: 217(bvec3) GroupNonUniformShuffleDown 35 400 401 - 403: 94(ivec3) Select 402 221 216 - 404: 75(ptr) AccessChain 27(data) 396 39 30 - 405: 19(int) CompositeExtract 403 0 - Store 404 405 - 406: 75(ptr) AccessChain 27(data) 396 39 49 - 407: 19(int) CompositeExtract 403 1 - Store 406 407 - 408: 75(ptr) AccessChain 27(data) 396 39 64 - 409: 19(int) CompositeExtract 403 2 - Store 408 409 - 410: 6(int) Load 8(invocation) - 411: 83(ptr) AccessChain 27(data) 39 39 - 412: 20(ivec4) Load 411 - 413: 233(bvec4) SLessThan 412 232 - 414: 6(int) Load 8(invocation) - 415: 233(bvec4) GroupNonUniformShuffleDown 35 413 414 - 416: 20(ivec4) Select 415 237 232 - 417: 83(ptr) AccessChain 27(data) 410 39 - Store 417 416 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.subgroupUniformControlFlow.vert.out b/deps/glslang/Test/baseResults/spv.subgroupUniformControlFlow.vert.out deleted file mode 100644 index b7fce5a3..00000000 --- a/deps/glslang/Test/baseResults/spv.subgroupUniformControlFlow.vert.out +++ /dev/null @@ -1,22 +0,0 @@ -spv.subgroupUniformControlFlow.vert -WARNING: 0:7: '' : attribute with arguments not recognized, skipping - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 6 - - Capability Shader - Extension "SPV_KHR_subgroup_uniform_control_flow" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" - ExecutionMode 4 SubgroupUniformControlFlow - Source GLSL 460 - SourceExtension "GL_EXT_subgroup_uniform_control_flow" - Name 4 "main" - 2: TypeVoid - 3: TypeFunction 2 - 4(main): 2 Function None 3 - 5: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.subgroupVote.comp.out b/deps/glslang/Test/baseResults/spv.subgroupVote.comp.out deleted file mode 100644 index ad8ffaaa..00000000 --- a/deps/glslang/Test/baseResults/spv.subgroupVote.comp.out +++ /dev/null @@ -1,288 +0,0 @@ -spv.subgroupVote.comp -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 216 - - Capability Shader - Capability Float64 - Capability GroupNonUniform - Capability GroupNonUniformVote - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 10 12 - ExecutionMode 4 LocalSize 8 8 1 - Source GLSL 450 - SourceExtension "GL_KHR_shader_subgroup_basic" - SourceExtension "GL_KHR_shader_subgroup_vote" - Name 4 "main" - Name 8 "invocation" - Name 10 "gl_SubgroupInvocationID" - Name 12 "gl_SubgroupSize" - Name 24 "Buffers" - MemberName 24(Buffers) 0 "f4" - MemberName 24(Buffers) 1 "i4" - MemberName 24(Buffers) 2 "u4" - MemberName 24(Buffers) 3 "d4" - MemberName 24(Buffers) 4 "r" - Name 27 "data" - Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision - Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId - Decorate 11 RelaxedPrecision - Decorate 12(gl_SubgroupSize) RelaxedPrecision - Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize - Decorate 13 RelaxedPrecision - Decorate 14 RelaxedPrecision - Decorate 16 RelaxedPrecision - MemberDecorate 24(Buffers) 0 Offset 0 - MemberDecorate 24(Buffers) 1 Offset 16 - MemberDecorate 24(Buffers) 2 Offset 32 - MemberDecorate 24(Buffers) 3 Offset 64 - MemberDecorate 24(Buffers) 4 Offset 96 - Decorate 24(Buffers) Block - Decorate 27(data) DescriptorSet 0 - Decorate 27(data) Binding 0 - Decorate 215 BuiltIn WorkgroupSize - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypePointer Input 6(int) -10(gl_SubgroupInvocationID): 9(ptr) Variable Input -12(gl_SubgroupSize): 9(ptr) Variable Input - 15: 6(int) Constant 4 - 17: TypeFloat 32 - 18: TypeVector 17(float) 4 - 19: TypeInt 32 1 - 20: TypeVector 19(int) 4 - 21: TypeVector 6(int) 4 - 22: TypeFloat 64 - 23: TypeVector 22(float64_t) 4 - 24(Buffers): TypeStruct 18(fvec4) 20(ivec4) 21(ivec4) 23(f64vec4) 19(int) - 25: TypeArray 24(Buffers) 15 - 26: TypePointer StorageBuffer 25 - 27(data): 26(ptr) Variable StorageBuffer - 29: 19(int) Constant 4 - 30: TypePointer StorageBuffer 19(int) - 33: 19(int) Constant 0 - 34: TypeBool - 36: 6(int) Constant 3 - 41: 6(int) Constant 0 - 42: TypePointer StorageBuffer 17(float) - 46: 19(int) Constant 1 - 50: TypeVector 17(float) 2 - 51: TypePointer StorageBuffer 18(fvec4) - 59: 19(int) Constant 2 - 60: TypeVector 17(float) 3 - 68: 19(int) Constant 3 - 81: TypeVector 19(int) 2 - 82: TypePointer StorageBuffer 20(ivec4) - 90: TypeVector 19(int) 3 - 104: TypePointer StorageBuffer 6(int) - 111: TypeVector 6(int) 2 - 112: TypePointer StorageBuffer 21(ivec4) - 120: TypeVector 6(int) 3 - 142: TypePointer StorageBuffer 22(float64_t) - 149: TypeVector 22(float64_t) 2 - 150: TypePointer StorageBuffer 23(f64vec4) - 158: TypeVector 22(float64_t) 3 - 182: 81(ivec2) ConstantComposite 33 33 - 183: TypeVector 34(bool) 2 - 194: 90(ivec3) ConstantComposite 33 33 33 - 195: TypeVector 34(bool) 3 - 205: 20(ivec4) ConstantComposite 33 33 33 33 - 206: TypeVector 34(bool) 4 - 213: 6(int) Constant 8 - 214: 6(int) Constant 1 - 215: 120(ivec3) ConstantComposite 213 213 214 - 4(main): 2 Function None 3 - 5: Label - 8(invocation): 7(ptr) Variable Function - 11: 6(int) Load 10(gl_SubgroupInvocationID) - 13: 6(int) Load 12(gl_SubgroupSize) - 14: 6(int) IAdd 11 13 - 16: 6(int) UMod 14 15 - Store 8(invocation) 16 - 28: 6(int) Load 8(invocation) - 31: 30(ptr) AccessChain 27(data) 28 29 - 32: 19(int) Load 31 - 35: 34(bool) SLessThan 32 33 - 37: 34(bool) GroupNonUniformAll 36 35 - SelectionMerge 39 None - BranchConditional 37 38 133 - 38: Label - 40: 6(int) Load 8(invocation) - 43: 42(ptr) AccessChain 27(data) 33 33 41 - 44: 17(float) Load 43 - 45: 34(bool) GroupNonUniformAllEqual 36 44 - 47: 19(int) Select 45 46 33 - 48: 30(ptr) AccessChain 27(data) 40 29 - Store 48 47 - 49: 6(int) Load 8(invocation) - 52: 51(ptr) AccessChain 27(data) 46 33 - 53: 18(fvec4) Load 52 - 54: 50(fvec2) VectorShuffle 53 53 0 1 - 55: 34(bool) GroupNonUniformAllEqual 36 54 - 56: 19(int) Select 55 46 33 - 57: 30(ptr) AccessChain 27(data) 49 29 - Store 57 56 - 58: 6(int) Load 8(invocation) - 61: 51(ptr) AccessChain 27(data) 59 33 - 62: 18(fvec4) Load 61 - 63: 60(fvec3) VectorShuffle 62 62 0 1 2 - 64: 34(bool) GroupNonUniformAllEqual 36 63 - 65: 19(int) Select 64 46 33 - 66: 30(ptr) AccessChain 27(data) 58 29 - Store 66 65 - 67: 6(int) Load 8(invocation) - 69: 51(ptr) AccessChain 27(data) 68 33 - 70: 18(fvec4) Load 69 - 71: 34(bool) GroupNonUniformAllEqual 36 70 - 72: 19(int) Select 71 46 33 - 73: 30(ptr) AccessChain 27(data) 67 29 - Store 73 72 - 74: 6(int) Load 8(invocation) - 75: 30(ptr) AccessChain 27(data) 33 46 41 - 76: 19(int) Load 75 - 77: 34(bool) GroupNonUniformAllEqual 36 76 - 78: 19(int) Select 77 46 33 - 79: 30(ptr) AccessChain 27(data) 74 29 - Store 79 78 - 80: 6(int) Load 8(invocation) - 83: 82(ptr) AccessChain 27(data) 46 46 - 84: 20(ivec4) Load 83 - 85: 81(ivec2) VectorShuffle 84 84 0 1 - 86: 34(bool) GroupNonUniformAllEqual 36 85 - 87: 19(int) Select 86 46 33 - 88: 30(ptr) AccessChain 27(data) 80 29 - Store 88 87 - 89: 6(int) Load 8(invocation) - 91: 82(ptr) AccessChain 27(data) 59 46 - 92: 20(ivec4) Load 91 - 93: 90(ivec3) VectorShuffle 92 92 0 1 2 - 94: 34(bool) GroupNonUniformAllEqual 36 93 - 95: 19(int) Select 94 46 33 - 96: 30(ptr) AccessChain 27(data) 89 29 - Store 96 95 - 97: 6(int) Load 8(invocation) - 98: 82(ptr) AccessChain 27(data) 68 46 - 99: 20(ivec4) Load 98 - 100: 34(bool) GroupNonUniformAllEqual 36 99 - 101: 19(int) Select 100 46 33 - 102: 30(ptr) AccessChain 27(data) 97 29 - Store 102 101 - 103: 6(int) Load 8(invocation) - 105: 104(ptr) AccessChain 27(data) 33 59 41 - 106: 6(int) Load 105 - 107: 34(bool) GroupNonUniformAllEqual 36 106 - 108: 19(int) Select 107 46 33 - 109: 30(ptr) AccessChain 27(data) 103 29 - Store 109 108 - 110: 6(int) Load 8(invocation) - 113: 112(ptr) AccessChain 27(data) 46 59 - 114: 21(ivec4) Load 113 - 115: 111(ivec2) VectorShuffle 114 114 0 1 - 116: 34(bool) GroupNonUniformAllEqual 36 115 - 117: 19(int) Select 116 46 33 - 118: 30(ptr) AccessChain 27(data) 110 29 - Store 118 117 - 119: 6(int) Load 8(invocation) - 121: 112(ptr) AccessChain 27(data) 59 59 - 122: 21(ivec4) Load 121 - 123: 120(ivec3) VectorShuffle 122 122 0 1 2 - 124: 34(bool) GroupNonUniformAllEqual 36 123 - 125: 19(int) Select 124 46 33 - 126: 30(ptr) AccessChain 27(data) 119 29 - Store 126 125 - 127: 6(int) Load 8(invocation) - 128: 112(ptr) AccessChain 27(data) 68 59 - 129: 21(ivec4) Load 128 - 130: 34(bool) GroupNonUniformAllEqual 36 129 - 131: 19(int) Select 130 46 33 - 132: 30(ptr) AccessChain 27(data) 127 29 - Store 132 131 - Branch 39 - 133: Label - 134: 6(int) Load 8(invocation) - 135: 30(ptr) AccessChain 27(data) 134 29 - 136: 19(int) Load 135 - 137: 34(bool) SLessThan 136 33 - 138: 34(bool) GroupNonUniformAny 36 137 - SelectionMerge 140 None - BranchConditional 138 139 140 - 139: Label - 141: 6(int) Load 8(invocation) - 143: 142(ptr) AccessChain 27(data) 33 68 41 - 144:22(float64_t) Load 143 - 145: 34(bool) GroupNonUniformAllEqual 36 144 - 146: 19(int) Select 145 46 33 - 147: 30(ptr) AccessChain 27(data) 141 29 - Store 147 146 - 148: 6(int) Load 8(invocation) - 151: 150(ptr) AccessChain 27(data) 46 68 - 152: 23(f64vec4) Load 151 - 153:149(f64vec2) VectorShuffle 152 152 0 1 - 154: 34(bool) GroupNonUniformAllEqual 36 153 - 155: 19(int) Select 154 46 33 - 156: 30(ptr) AccessChain 27(data) 148 29 - Store 156 155 - 157: 6(int) Load 8(invocation) - 159: 150(ptr) AccessChain 27(data) 59 68 - 160: 23(f64vec4) Load 159 - 161:158(f64vec3) VectorShuffle 160 160 0 1 2 - 162: 34(bool) GroupNonUniformAllEqual 36 161 - 163: 19(int) Select 162 46 33 - 164: 30(ptr) AccessChain 27(data) 157 29 - Store 164 163 - 165: 6(int) Load 8(invocation) - 166: 150(ptr) AccessChain 27(data) 68 68 - 167: 23(f64vec4) Load 166 - 168: 34(bool) GroupNonUniformAllEqual 36 167 - 169: 19(int) Select 168 46 33 - 170: 30(ptr) AccessChain 27(data) 165 29 - Store 170 169 - 171: 6(int) Load 8(invocation) - 172: 30(ptr) AccessChain 27(data) 33 46 41 - 173: 19(int) Load 172 - 174: 34(bool) SLessThan 173 33 - 175: 34(bool) GroupNonUniformAllEqual 36 174 - 176: 19(int) Select 175 46 33 - 177: 30(ptr) AccessChain 27(data) 171 29 - Store 177 176 - 178: 6(int) Load 8(invocation) - 179: 82(ptr) AccessChain 27(data) 46 46 - 180: 20(ivec4) Load 179 - 181: 81(ivec2) VectorShuffle 180 180 0 1 - 184: 183(bvec2) SLessThan 181 182 - 185: 34(bool) GroupNonUniformAllEqual 36 184 - 186: 19(int) Select 185 46 33 - 187: 81(ivec2) CompositeConstruct 186 186 - 188: 19(int) CompositeExtract 187 0 - 189: 30(ptr) AccessChain 27(data) 178 29 - Store 189 188 - 190: 6(int) Load 8(invocation) - 191: 82(ptr) AccessChain 27(data) 46 46 - 192: 20(ivec4) Load 191 - 193: 90(ivec3) VectorShuffle 192 192 0 1 2 - 196: 195(bvec3) SLessThan 193 194 - 197: 34(bool) GroupNonUniformAllEqual 36 196 - 198: 19(int) Select 197 46 33 - 199: 90(ivec3) CompositeConstruct 198 198 198 - 200: 19(int) CompositeExtract 199 0 - 201: 30(ptr) AccessChain 27(data) 190 29 - Store 201 200 - 202: 6(int) Load 8(invocation) - 203: 82(ptr) AccessChain 27(data) 46 46 - 204: 20(ivec4) Load 203 - 207: 206(bvec4) SLessThan 204 205 - 208: 34(bool) GroupNonUniformAllEqual 36 207 - 209: 19(int) Select 208 46 33 - 210: 20(ivec4) CompositeConstruct 209 209 209 209 - 211: 19(int) CompositeExtract 210 0 - 212: 30(ptr) AccessChain 27(data) 202 29 - Store 212 211 - Branch 140 - 140: Label - Branch 39 - 39: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.subpass.frag.out b/deps/glslang/Test/baseResults/spv.subpass.frag.out deleted file mode 100644 index 6b534a6a..00000000 --- a/deps/glslang/Test/baseResults/spv.subpass.frag.out +++ /dev/null @@ -1,121 +0,0 @@ -spv.subpass.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 67 - - Capability Shader - Capability InputAttachment - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 15 27 53 - ExecutionMode 4 OriginUpperLeft - Source GLSL 400 - Name 4 "main" - Name 11 "foo(iIPM1;" - Name 10 "sb" - Name 15 "icolor" - Name 27 "color" - Name 30 "sub" - Name 35 "subMS" - Name 42 "isub" - Name 45 "isubMS" - Name 53 "ucolor" - Name 56 "usub" - Name 61 "usubMS" - Decorate 15(icolor) Location 1 - Decorate 27(color) Location 0 - Decorate 30(sub) DescriptorSet 0 - Decorate 30(sub) Binding 0 - Decorate 30(sub) InputAttachmentIndex 1 - Decorate 35(subMS) DescriptorSet 0 - Decorate 35(subMS) Binding 1 - Decorate 35(subMS) InputAttachmentIndex 2 - Decorate 42(isub) DescriptorSet 0 - Decorate 42(isub) Binding 2 - Decorate 42(isub) InputAttachmentIndex 3 - Decorate 45(isubMS) DescriptorSet 0 - Decorate 45(isubMS) Binding 3 - Decorate 45(isubMS) InputAttachmentIndex 4 - Decorate 53(ucolor) Location 2 - Decorate 56(usub) DescriptorSet 0 - Decorate 56(usub) Binding 4 - Decorate 56(usub) InputAttachmentIndex 5 - Decorate 61(usubMS) DescriptorSet 0 - Decorate 61(usubMS) Binding 5 - Decorate 61(usubMS) InputAttachmentIndex 6 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypeImage 6(int) SubpassData multi-sampled nonsampled format:Unknown - 8: TypePointer UniformConstant 7 - 9: TypeFunction 2 8(ptr) - 13: TypeVector 6(int) 4 - 14: TypePointer Output 13(ivec4) - 15(icolor): 14(ptr) Variable Output - 17: 6(int) Constant 3 - 18: 6(int) Constant 0 - 19: TypeVector 6(int) 2 - 20: 19(ivec2) ConstantComposite 18 18 - 24: TypeFloat 32 - 25: TypeVector 24(float) 4 - 26: TypePointer Output 25(fvec4) - 27(color): 26(ptr) Variable Output - 28: TypeImage 24(float) SubpassData nonsampled format:Unknown - 29: TypePointer UniformConstant 28 - 30(sub): 29(ptr) Variable UniformConstant - 33: TypeImage 24(float) SubpassData multi-sampled nonsampled format:Unknown - 34: TypePointer UniformConstant 33 - 35(subMS): 34(ptr) Variable UniformConstant - 40: TypeImage 6(int) SubpassData nonsampled format:Unknown - 41: TypePointer UniformConstant 40 - 42(isub): 41(ptr) Variable UniformConstant - 45(isubMS): 8(ptr) Variable UniformConstant - 50: TypeInt 32 0 - 51: TypeVector 50(int) 4 - 52: TypePointer Output 51(ivec4) - 53(ucolor): 52(ptr) Variable Output - 54: TypeImage 50(int) SubpassData nonsampled format:Unknown - 55: TypePointer UniformConstant 54 - 56(usub): 55(ptr) Variable UniformConstant - 59: TypeImage 50(int) SubpassData multi-sampled nonsampled format:Unknown - 60: TypePointer UniformConstant 59 - 61(usubMS): 60(ptr) Variable UniformConstant - 4(main): 2 Function None 3 - 5: Label - 31: 28 Load 30(sub) - 32: 25(fvec4) ImageRead 31 20 - Store 27(color) 32 - 36: 33 Load 35(subMS) - 37: 25(fvec4) ImageRead 36 20 Sample 17 - 38: 25(fvec4) Load 27(color) - 39: 25(fvec4) FAdd 38 37 - Store 27(color) 39 - 43: 40 Load 42(isub) - 44: 13(ivec4) ImageRead 43 20 - Store 15(icolor) 44 - 46: 7 Load 45(isubMS) - 47: 13(ivec4) ImageRead 46 20 Sample 17 - 48: 13(ivec4) Load 15(icolor) - 49: 13(ivec4) IAdd 48 47 - Store 15(icolor) 49 - 57: 54 Load 56(usub) - 58: 51(ivec4) ImageRead 57 20 - Store 53(ucolor) 58 - 62: 59 Load 61(usubMS) - 63: 51(ivec4) ImageRead 62 20 Sample 17 - 64: 51(ivec4) Load 53(ucolor) - 65: 51(ivec4) IAdd 64 63 - Store 53(ucolor) 65 - 66: 2 FunctionCall 11(foo(iIPM1;) 45(isubMS) - Return - FunctionEnd - 11(foo(iIPM1;): 2 Function None 9 - 10(sb): 8(ptr) FunctionParameter - 12: Label - 16: 7 Load 10(sb) - 21: 13(ivec4) ImageRead 16 20 Sample 17 - 22: 13(ivec4) Load 15(icolor) - 23: 13(ivec4) IAdd 22 21 - Store 15(icolor) 23 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.switch.frag.out b/deps/glslang/Test/baseResults/spv.switch.frag.out deleted file mode 100644 index 9c68657f..00000000 --- a/deps/glslang/Test/baseResults/spv.switch.frag.out +++ /dev/null @@ -1,538 +0,0 @@ -spv.switch.frag -WARNING: 0:121: 'switch' : last case/default label not followed by statements -WARNING: 0:134: 'switch' : last case/default label not followed by statements -WARNING: 0:139: 'switch' : last case/default label not followed by statements - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 269 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 62 75 129 227 233 - ExecutionMode 4 OriginUpperLeft - Source ESSL 310 - Name 4 "main" - Name 15 "foo1(vf4;vf4;i1;" - Name 12 "v1" - Name 13 "v2" - Name 14 "i1" - Name 20 "foo2(vf4;vf4;i1;" - Name 17 "v1" - Name 18 "v2" - Name 19 "i1" - Name 60 "local" - Name 62 "c" - Name 73 "f" - Name 75 "x" - Name 129 "d" - Name 155 "i" - Name 175 "j" - Name 227 "color" - Name 233 "v" - Name 234 "param" - Name 236 "param" - Name 238 "param" - Name 246 "param" - Name 248 "param" - Name 250 "param" - Decorate 15(foo1(vf4;vf4;i1;) RelaxedPrecision - Decorate 12(v1) RelaxedPrecision - Decorate 13(v2) RelaxedPrecision - Decorate 14(i1) RelaxedPrecision - Decorate 20(foo2(vf4;vf4;i1;) RelaxedPrecision - Decorate 17(v1) RelaxedPrecision - Decorate 18(v2) RelaxedPrecision - Decorate 19(i1) RelaxedPrecision - Decorate 22 RelaxedPrecision - Decorate 27 RelaxedPrecision - Decorate 29 RelaxedPrecision - Decorate 31 RelaxedPrecision - Decorate 32 RelaxedPrecision - Decorate 33 RelaxedPrecision - Decorate 40 RelaxedPrecision - Decorate 46 RelaxedPrecision - Decorate 51 RelaxedPrecision - Decorate 53 RelaxedPrecision - Decorate 54 RelaxedPrecision - Decorate 55 RelaxedPrecision - Decorate 60(local) RelaxedPrecision - Decorate 62(c) RelaxedPrecision - Decorate 62(c) Flat - Decorate 62(c) Location 0 - Decorate 63 RelaxedPrecision - Decorate 64 RelaxedPrecision - Decorate 66 RelaxedPrecision - Decorate 67 RelaxedPrecision - Decorate 73(f) RelaxedPrecision - Decorate 75(x) RelaxedPrecision - Decorate 75(x) Location 2 - Decorate 76 RelaxedPrecision - Decorate 77 RelaxedPrecision - Decorate 79 RelaxedPrecision - Decorate 80 RelaxedPrecision - Decorate 82 RelaxedPrecision - Decorate 83 RelaxedPrecision - Decorate 85 RelaxedPrecision - Decorate 90 RelaxedPrecision - Decorate 91 RelaxedPrecision - Decorate 92 RelaxedPrecision - Decorate 93 RelaxedPrecision - Decorate 94 RelaxedPrecision - Decorate 95 RelaxedPrecision - Decorate 96 RelaxedPrecision - Decorate 97 RelaxedPrecision - Decorate 99 RelaxedPrecision - Decorate 100 RelaxedPrecision - Decorate 101 RelaxedPrecision - Decorate 102 RelaxedPrecision - Decorate 104 RelaxedPrecision - Decorate 108 RelaxedPrecision - Decorate 109 RelaxedPrecision - Decorate 110 RelaxedPrecision - Decorate 111 RelaxedPrecision - Decorate 113 RelaxedPrecision - Decorate 114 RelaxedPrecision - Decorate 115 RelaxedPrecision - Decorate 116 RelaxedPrecision - Decorate 119 RelaxedPrecision - Decorate 124 RelaxedPrecision - Decorate 125 RelaxedPrecision - Decorate 126 RelaxedPrecision - Decorate 127 RelaxedPrecision - Decorate 129(d) RelaxedPrecision - Decorate 129(d) Flat - Decorate 129(d) Location 1 - Decorate 130 RelaxedPrecision - Decorate 134 RelaxedPrecision - Decorate 135 RelaxedPrecision - Decorate 136 RelaxedPrecision - Decorate 137 RelaxedPrecision - Decorate 138 RelaxedPrecision - Decorate 139 RelaxedPrecision - Decorate 140 RelaxedPrecision - Decorate 142 RelaxedPrecision - Decorate 143 RelaxedPrecision - Decorate 144 RelaxedPrecision - Decorate 145 RelaxedPrecision - Decorate 146 RelaxedPrecision - Decorate 150 RelaxedPrecision - Decorate 151 RelaxedPrecision - Decorate 152 RelaxedPrecision - Decorate 153 RelaxedPrecision - Decorate 155(i) RelaxedPrecision - Decorate 162 RelaxedPrecision - Decorate 166 RelaxedPrecision - Decorate 171 RelaxedPrecision - Decorate 172 RelaxedPrecision - Decorate 173 RelaxedPrecision - Decorate 174 RelaxedPrecision - Decorate 175(j) RelaxedPrecision - Decorate 182 RelaxedPrecision - Decorate 185 RelaxedPrecision - Decorate 186 RelaxedPrecision - Decorate 187 RelaxedPrecision - Decorate 193 RelaxedPrecision - Decorate 194 RelaxedPrecision - Decorate 196 RelaxedPrecision - Decorate 197 RelaxedPrecision - Decorate 198 RelaxedPrecision - Decorate 199 RelaxedPrecision - Decorate 202 RelaxedPrecision - Decorate 203 RelaxedPrecision - Decorate 204 RelaxedPrecision - Decorate 205 RelaxedPrecision - Decorate 207 RelaxedPrecision - Decorate 213 RelaxedPrecision - Decorate 214 RelaxedPrecision - Decorate 215 RelaxedPrecision - Decorate 219 RelaxedPrecision - Decorate 220 RelaxedPrecision - Decorate 221 RelaxedPrecision - Decorate 222 RelaxedPrecision - Decorate 227(color) RelaxedPrecision - Decorate 227(color) Location 0 - Decorate 228 RelaxedPrecision - Decorate 229 RelaxedPrecision - Decorate 230 RelaxedPrecision - Decorate 231 RelaxedPrecision - Decorate 233(v) RelaxedPrecision - Decorate 233(v) Location 3 - Decorate 234(param) RelaxedPrecision - Decorate 235 RelaxedPrecision - Decorate 236(param) RelaxedPrecision - Decorate 237 RelaxedPrecision - Decorate 238(param) RelaxedPrecision - Decorate 239 RelaxedPrecision - Decorate 240 RelaxedPrecision - Decorate 243 RelaxedPrecision - Decorate 244 RelaxedPrecision - Decorate 245 RelaxedPrecision - Decorate 246(param) RelaxedPrecision - Decorate 247 RelaxedPrecision - Decorate 248(param) RelaxedPrecision - Decorate 249 RelaxedPrecision - Decorate 250(param) RelaxedPrecision - Decorate 251 RelaxedPrecision - Decorate 252 RelaxedPrecision - Decorate 254 RelaxedPrecision - Decorate 255 RelaxedPrecision - Decorate 256 RelaxedPrecision - Decorate 257 RelaxedPrecision - Decorate 264 RelaxedPrecision - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 9: TypeInt 32 1 - 10: TypePointer Function 9(int) - 11: TypeFunction 7(fvec4) 8(ptr) 8(ptr) 10(ptr) - 36: 6(float) Constant 0 - 37: 7(fvec4) ConstantComposite 36 36 36 36 - 48: 6(float) Constant 1065353216 - 49: 7(fvec4) ConstantComposite 48 48 48 48 - 61: TypePointer Input 9(int) - 62(c): 61(ptr) Variable Input - 65: 9(int) Constant 1 - 72: TypePointer Function 6(float) - 74: TypePointer Input 6(float) - 75(x): 74(ptr) Variable Input - 129(d): 61(ptr) Variable Input - 156: 9(int) Constant 0 - 163: 9(int) Constant 10 - 164: TypeBool - 176: 9(int) Constant 20 - 183: 9(int) Constant 30 - 188: 6(float) Constant 1120429670 - 208: 6(float) Constant 1079739679 - 226: TypePointer Output 6(float) - 227(color): 226(ptr) Variable Output - 232: TypePointer Input 7(fvec4) - 233(v): 232(ptr) Variable Input - 241: TypeInt 32 0 - 242: 241(int) Constant 1 - 253: 241(int) Constant 2 - 4(main): 2 Function None 3 - 5: Label - 60(local): 10(ptr) Variable Function - 73(f): 72(ptr) Variable Function - 155(i): 10(ptr) Variable Function - 175(j): 10(ptr) Variable Function - 234(param): 8(ptr) Variable Function - 236(param): 8(ptr) Variable Function - 238(param): 10(ptr) Variable Function - 246(param): 8(ptr) Variable Function - 248(param): 8(ptr) Variable Function - 250(param): 10(ptr) Variable Function - 63: 9(int) Load 62(c) - Store 60(local) 63 - 64: 9(int) Load 60(local) - 66: 9(int) IAdd 64 65 - Store 60(local) 66 - 67: 9(int) Load 62(c) - SelectionMerge 71 None - Switch 67 70 - case 1: 68 - case 2: 69 - 70: Label - 82: 6(float) Load 75(x) - 83: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 82 - Store 73(f) 83 - Branch 71 - 68: Label - 76: 6(float) Load 75(x) - 77: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 76 - Store 73(f) 77 - Branch 71 - 69: Label - 79: 6(float) Load 75(x) - 80: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 79 - Store 73(f) 80 - Branch 71 - 71: Label - 85: 9(int) Load 62(c) - SelectionMerge 89 None - Switch 85 88 - case 1: 86 - case 2: 87 - 88: Label - 99: 6(float) Load 75(x) - 100: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 99 - 101: 6(float) Load 73(f) - 102: 6(float) FAdd 101 100 - Store 73(f) 102 - Branch 89 - 86: Label - 90: 6(float) Load 75(x) - 91: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 90 - 92: 6(float) Load 73(f) - 93: 6(float) FAdd 92 91 - Store 73(f) 93 - Branch 87 - 87: Label - 94: 6(float) Load 75(x) - 95: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 94 - 96: 6(float) Load 73(f) - 97: 6(float) FAdd 96 95 - Store 73(f) 97 - Branch 89 - 89: Label - 104: 9(int) Load 62(c) - SelectionMerge 107 None - Switch 104 107 - case 1: 105 - case 2: 106 - 105: Label - 108: 6(float) Load 75(x) - 109: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 108 - 110: 6(float) Load 73(f) - 111: 6(float) FAdd 110 109 - Store 73(f) 111 - Branch 107 - 106: Label - 113: 6(float) Load 75(x) - 114: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 113 - 115: 6(float) Load 73(f) - 116: 6(float) FAdd 115 114 - Store 73(f) 116 - Branch 107 - 107: Label - 119: 9(int) Load 62(c) - SelectionMerge 123 None - Switch 119 122 - case 1: 120 - case 2: 121 - 122: Label - 150: 6(float) Load 75(x) - 151: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 150 - 152: 6(float) Load 73(f) - 153: 6(float) FAdd 152 151 - Store 73(f) 153 - Branch 123 - 120: Label - 124: 6(float) Load 75(x) - 125: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 124 - 126: 6(float) Load 73(f) - 127: 6(float) FAdd 126 125 - Store 73(f) 127 - Branch 123 - 121: Label - 130: 9(int) Load 129(d) - SelectionMerge 133 None - Switch 130 133 - case 1: 131 - case 2: 132 - 131: Label - 134: 6(float) Load 75(x) - 135: 6(float) Load 75(x) - 136: 6(float) FMul 134 135 - 137: 6(float) Load 75(x) - 138: 6(float) FMul 136 137 - 139: 6(float) Load 73(f) - 140: 6(float) FAdd 139 138 - Store 73(f) 140 - Branch 133 - 132: Label - 142: 6(float) Load 75(x) - 143: 6(float) Load 75(x) - 144: 6(float) FMul 142 143 - 145: 6(float) Load 73(f) - 146: 6(float) FAdd 145 144 - Store 73(f) 146 - Branch 133 - 133: Label - Branch 123 - 123: Label - Store 155(i) 156 - Branch 157 - 157: Label - LoopMerge 159 160 None - Branch 161 - 161: Label - 162: 9(int) Load 155(i) - 165: 164(bool) SLessThan 162 163 - BranchConditional 165 158 159 - 158: Label - 166: 9(int) Load 62(c) - SelectionMerge 170 None - Switch 166 169 - case 1: 167 - case 2: 168 - 169: Label - 202: 6(float) Load 75(x) - 203: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 202 - 204: 6(float) Load 73(f) - 205: 6(float) FAdd 204 203 - Store 73(f) 205 - Branch 170 - 167: Label - 171: 6(float) Load 75(x) - 172: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 171 - 173: 6(float) Load 73(f) - 174: 6(float) FAdd 173 172 - Store 73(f) 174 - Store 175(j) 176 - Branch 177 - 177: Label - LoopMerge 179 180 None - Branch 181 - 181: Label - 182: 9(int) Load 175(j) - 184: 164(bool) SLessThan 182 183 - BranchConditional 184 178 179 - 178: Label - 185: 6(float) Load 73(f) - 186: 6(float) FAdd 185 48 - Store 73(f) 186 - 187: 6(float) Load 73(f) - 189: 164(bool) FOrdLessThan 187 188 - SelectionMerge 191 None - BranchConditional 189 190 191 - 190: Label - Branch 179 - 191: Label - Branch 180 - 180: Label - 193: 9(int) Load 175(j) - 194: 9(int) IAdd 193 65 - Store 175(j) 194 - Branch 177 - 179: Label - Branch 170 - 168: Label - 196: 6(float) Load 75(x) - 197: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 196 - 198: 6(float) Load 73(f) - 199: 6(float) FAdd 198 197 - Store 73(f) 199 - Branch 170 - 170: Label - 207: 6(float) Load 73(f) - 209: 164(bool) FOrdLessThan 207 208 - SelectionMerge 211 None - BranchConditional 209 210 211 - 210: Label - Branch 159 - 211: Label - Branch 160 - 160: Label - 213: 9(int) Load 155(i) - 214: 9(int) IAdd 213 65 - Store 155(i) 214 - Branch 157 - 159: Label - 215: 9(int) Load 62(c) - SelectionMerge 218 None - Switch 215 218 - case 1: 216 - case 2: 217 - 216: Label - 219: 6(float) Load 75(x) - 220: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 219 - 221: 6(float) Load 73(f) - 222: 6(float) FAdd 221 220 - Store 73(f) 222 - Branch 218 - 217: Label - Branch 218 - 218: Label - 228: 6(float) Load 73(f) - 229: 9(int) Load 60(local) - 230: 6(float) ConvertSToF 229 - 231: 6(float) FAdd 228 230 - Store 227(color) 231 - 235: 7(fvec4) Load 233(v) - Store 234(param) 235 - 237: 7(fvec4) Load 233(v) - Store 236(param) 237 - 239: 9(int) Load 62(c) - Store 238(param) 239 - 240: 7(fvec4) FunctionCall 15(foo1(vf4;vf4;i1;) 234(param) 236(param) 238(param) - 243: 6(float) CompositeExtract 240 1 - 244: 6(float) Load 227(color) - 245: 6(float) FAdd 244 243 - Store 227(color) 245 - 247: 7(fvec4) Load 233(v) - Store 246(param) 247 - 249: 7(fvec4) Load 233(v) - Store 248(param) 249 - 251: 9(int) Load 62(c) - Store 250(param) 251 - 252: 7(fvec4) FunctionCall 20(foo2(vf4;vf4;i1;) 246(param) 248(param) 250(param) - 254: 6(float) CompositeExtract 252 2 - 255: 6(float) Load 227(color) - 256: 6(float) FAdd 255 254 - Store 227(color) 256 - 257: 9(int) Load 62(c) - SelectionMerge 260 None - Switch 257 259 - case 0: 258 - 259: Label - Branch 260 - 258: Label - Branch 260 - 260: Label - 264: 9(int) Load 62(c) - SelectionMerge 266 None - Switch 264 265 - 265: Label - Branch 266 - 266: Label - Return - FunctionEnd -15(foo1(vf4;vf4;i1;): 7(fvec4) Function None 11 - 12(v1): 8(ptr) FunctionParameter - 13(v2): 8(ptr) FunctionParameter - 14(i1): 10(ptr) FunctionParameter - 16: Label - 22: 9(int) Load 14(i1) - SelectionMerge 26 None - Switch 22 26 - case 0: 23 - case 2: 24 - case 1: 24 - case 3: 25 - 23: Label - 27: 7(fvec4) Load 12(v1) - ReturnValue 27 - 24: Label - 29: 7(fvec4) Load 13(v2) - ReturnValue 29 - 25: Label - 31: 7(fvec4) Load 12(v1) - 32: 7(fvec4) Load 13(v2) - 33: 7(fvec4) FMul 31 32 - ReturnValue 33 - 26: Label - ReturnValue 37 - FunctionEnd -20(foo2(vf4;vf4;i1;): 7(fvec4) Function None 11 - 17(v1): 8(ptr) FunctionParameter - 18(v2): 8(ptr) FunctionParameter - 19(i1): 10(ptr) FunctionParameter - 21: Label - 40: 9(int) Load 19(i1) - SelectionMerge 45 None - Switch 40 45 - case 0: 41 - case 2: 42 - case 1: 43 - case 3: 44 - 41: Label - 46: 7(fvec4) Load 17(v1) - ReturnValue 46 - 42: Label - ReturnValue 49 - 43: Label - 51: 7(fvec4) Load 18(v2) - ReturnValue 51 - 44: Label - 53: 7(fvec4) Load 17(v1) - 54: 7(fvec4) Load 18(v2) - 55: 7(fvec4) FMul 53 54 - ReturnValue 55 - 45: Label - ReturnValue 37 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.swizzle.frag.out b/deps/glslang/Test/baseResults/spv.swizzle.frag.out deleted file mode 100644 index 2aa31e8c..00000000 --- a/deps/glslang/Test/baseResults/spv.swizzle.frag.out +++ /dev/null @@ -1,183 +0,0 @@ -spv.swizzle.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 117 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 14 30 78 116 - ExecutionMode 4 OriginUpperLeft - Source GLSL 140 - Name 4 "main" - Name 8 "blendscale" - Name 12 "w" - Name 14 "u" - Name 16 "w_dep" - Name 18 "w_reorder" - Name 20 "w2" - Name 22 "w_flow" - Name 30 "t" - Name 56 "w_undef" - Name 65 "p" - Name 78 "gl_FragColor" - Name 90 "c" - Name 92 "rep" - Name 116 "blend" - Decorate 14(u) Location 1 - Decorate 30(t) Location 2 - Decorate 78(gl_FragColor) Location 0 - Decorate 116(blend) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypePointer Function 6(float) - 9: 6(float) Constant 1071971828 - 10: TypeVector 6(float) 4 - 11: TypePointer Function 10(fvec4) - 13: TypePointer Input 10(fvec4) - 14(u): 13(ptr) Variable Input - 25: TypeInt 32 0 - 26: 25(int) Constant 2 - 28: TypeVector 6(float) 2 - 29: TypePointer Input 28(fvec2) - 30(t): 29(ptr) Variable Input - 32: 25(int) Constant 3 - 35: 25(int) Constant 1 - 39: 25(int) Constant 0 - 63: TypeBool - 64: TypePointer Private 63(bool) - 65(p): 64(ptr) Variable Private - 69: TypePointer Input 6(float) - 77: TypePointer Output 10(fvec4) -78(gl_FragColor): 77(ptr) Variable Output - 89: TypePointer Function 28(fvec2) - 93: 6(float) Constant 0 - 94: 6(float) Constant 1065353216 - 95: 10(fvec4) ConstantComposite 93 93 93 94 - 101: 6(float) Constant 3212836864 - 111: 6(float) Constant 1079613850 - 116(blend): 69(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 8(blendscale): 7(ptr) Variable Function - 12(w): 11(ptr) Variable Function - 16(w_dep): 11(ptr) Variable Function - 18(w_reorder): 11(ptr) Variable Function - 20(w2): 11(ptr) Variable Function - 22(w_flow): 11(ptr) Variable Function - 56(w_undef): 11(ptr) Variable Function - 90(c): 89(ptr) Variable Function - 92(rep): 11(ptr) Variable Function - Store 8(blendscale) 9 - 15: 10(fvec4) Load 14(u) - Store 12(w) 15 - 17: 10(fvec4) Load 14(u) - Store 16(w_dep) 17 - 19: 10(fvec4) Load 14(u) - Store 18(w_reorder) 19 - 21: 10(fvec4) Load 14(u) - Store 20(w2) 21 - 23: 10(fvec4) Load 14(u) - Store 22(w_flow) 23 - 24: 6(float) Load 8(blendscale) - 27: 7(ptr) AccessChain 18(w_reorder) 26 - Store 27 24 - 31: 28(fvec2) Load 30(t) - 33: 7(ptr) AccessChain 12(w) 32 - 34: 6(float) CompositeExtract 31 0 - Store 33 34 - 36: 7(ptr) AccessChain 12(w) 35 - 37: 6(float) CompositeExtract 31 1 - Store 36 37 - 38: 6(float) Load 8(blendscale) - 40: 7(ptr) AccessChain 18(w_reorder) 39 - Store 40 38 - 41: 10(fvec4) Load 14(u) - 42: 10(fvec4) VectorShuffle 41 41 2 3 0 1 - Store 20(w2) 42 - 43: 6(float) Load 8(blendscale) - 44: 7(ptr) AccessChain 18(w_reorder) 35 - Store 44 43 - 45: 10(fvec4) Load 20(w2) - 46: 28(fvec2) VectorShuffle 45 45 0 2 - 47: 7(ptr) AccessChain 16(w_dep) 39 - 48: 6(float) CompositeExtract 46 0 - Store 47 48 - 49: 7(ptr) AccessChain 16(w_dep) 35 - 50: 6(float) CompositeExtract 46 1 - Store 49 50 - 51: 28(fvec2) Load 30(t) - 52: 7(ptr) AccessChain 16(w_dep) 26 - 53: 6(float) CompositeExtract 51 0 - Store 52 53 - 54: 7(ptr) AccessChain 16(w_dep) 32 - 55: 6(float) CompositeExtract 51 1 - Store 54 55 - 57: 10(fvec4) Load 14(u) - 58: 28(fvec2) VectorShuffle 57 57 2 3 - 59: 7(ptr) AccessChain 56(w_undef) 39 - 60: 6(float) CompositeExtract 58 0 - Store 59 60 - 61: 7(ptr) AccessChain 56(w_undef) 35 - 62: 6(float) CompositeExtract 58 1 - Store 61 62 - 66: 63(bool) Load 65(p) - SelectionMerge 68 None - BranchConditional 66 67 73 - 67: Label - 70: 69(ptr) AccessChain 30(t) 39 - 71: 6(float) Load 70 - 72: 7(ptr) AccessChain 22(w_flow) 39 - Store 72 71 - Branch 68 - 73: Label - 74: 69(ptr) AccessChain 30(t) 35 - 75: 6(float) Load 74 - 76: 7(ptr) AccessChain 22(w_flow) 39 - Store 76 75 - Branch 68 - 68: Label - 79: 10(fvec4) Load 18(w_reorder) - 80: 10(fvec4) Load 56(w_undef) - 81: 10(fvec4) Load 12(w) - 82: 10(fvec4) Load 20(w2) - 83: 10(fvec4) FMul 81 82 - 84: 10(fvec4) Load 16(w_dep) - 85: 10(fvec4) FMul 83 84 - 86: 10(fvec4) Load 22(w_flow) - 87: 10(fvec4) FMul 85 86 - 88: 10(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 79 80 87 - Store 78(gl_FragColor) 88 - 91: 28(fvec2) Load 30(t) - Store 90(c) 91 - Store 92(rep) 95 - 96: 7(ptr) AccessChain 90(c) 39 - 97: 6(float) Load 96 - 98: 63(bool) FOrdLessThan 97 93 - SelectionMerge 100 None - BranchConditional 98 99 100 - 99: Label - 102: 7(ptr) AccessChain 90(c) 39 - 103: 6(float) Load 102 - 104: 6(float) FMul 103 101 - 105: 7(ptr) AccessChain 90(c) 39 - Store 105 104 - Branch 100 - 100: Label - 106: 7(ptr) AccessChain 90(c) 39 - 107: 6(float) Load 106 - 108: 63(bool) FOrdLessThanEqual 107 94 - SelectionMerge 110 None - BranchConditional 108 109 110 - 109: Label - 112: 7(ptr) AccessChain 92(rep) 39 - Store 112 111 - Branch 110 - 110: Label - 113: 10(fvec4) Load 92(rep) - 114: 10(fvec4) Load 78(gl_FragColor) - 115: 10(fvec4) FAdd 114 113 - Store 78(gl_FragColor) 115 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.swizzleInversion.frag.out b/deps/glslang/Test/baseResults/spv.swizzleInversion.frag.out deleted file mode 100644 index 8d099346..00000000 --- a/deps/glslang/Test/baseResults/spv.swizzleInversion.frag.out +++ /dev/null @@ -1,77 +0,0 @@ -spv.swizzleInversion.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 46 - - Capability Shader - Capability InterpolationFunction - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 12 37 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - Name 4 "main" - Name 9 "v43" - Name 12 "in4" - Name 17 "v42" - Name 23 "v44" - Name 29 "v41" - Name 35 "v33" - Name 37 "in3" - Name 40 "v32" - Name 43 "v31" - Decorate 12(in4) Location 0 - Decorate 37(in3) Location 1 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 3 - 8: TypePointer Function 7(fvec3) - 10: TypeVector 6(float) 4 - 11: TypePointer Input 10(fvec4) - 12(in4): 11(ptr) Variable Input - 15: TypeVector 6(float) 2 - 16: TypePointer Function 15(fvec2) - 18: TypeInt 32 1 - 19: 18(int) Constant 1 - 22: TypePointer Function 10(fvec4) - 24: 6(float) Constant 1073741824 - 25: 15(fvec2) ConstantComposite 24 24 - 28: TypePointer Function 6(float) - 30: TypeInt 32 0 - 31: 30(int) Constant 1 - 32: TypePointer Input 6(float) - 36: TypePointer Input 7(fvec3) - 37(in3): 36(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 9(v43): 8(ptr) Variable Function - 17(v42): 16(ptr) Variable Function - 23(v44): 22(ptr) Variable Function - 29(v41): 28(ptr) Variable Function - 35(v33): 8(ptr) Variable Function - 40(v32): 16(ptr) Variable Function - 43(v31): 28(ptr) Variable Function - 13: 10(fvec4) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 12(in4) - 14: 7(fvec3) VectorShuffle 13 13 3 2 0 - Store 9(v43) 14 - 20: 10(fvec4) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 12(in4) 19 - 21: 15(fvec2) VectorShuffle 20 20 2 0 - Store 17(v42) 21 - 26: 10(fvec4) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 12(in4) 25 - 27: 10(fvec4) VectorShuffle 26 26 2 1 0 3 - Store 23(v44) 27 - 33: 32(ptr) AccessChain 12(in4) 31 - 34: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 33 25 - Store 29(v41) 34 - 38: 7(fvec3) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 37(in3) - 39: 7(fvec3) VectorShuffle 38 38 1 2 0 - Store 35(v33) 39 - 41: 7(fvec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 37(in3) 19 - 42: 15(fvec2) VectorShuffle 41 41 2 0 - Store 40(v32) 42 - 44: 32(ptr) AccessChain 12(in4) 31 - 45: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 44 25 - Store 43(v31) 45 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.terminate.frag.out b/deps/glslang/Test/baseResults/spv.terminate.frag.out deleted file mode 100644 index 39cb151f..00000000 --- a/deps/glslang/Test/baseResults/spv.terminate.frag.out +++ /dev/null @@ -1,20 +0,0 @@ -spv.terminate.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 7 - - Capability Shader - Extension "SPV_KHR_terminate_invocation" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source GLSL 400 - SourceExtension "GL_EXT_terminate_invocation" - Name 4 "main" - 2: TypeVoid - 3: TypeFunction 2 - 4(main): 2 Function None 3 - 5: Label - TerminateInvocation - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.test.frag.out b/deps/glslang/Test/baseResults/spv.test.frag.out deleted file mode 100644 index fddcdb84..00000000 --- a/deps/glslang/Test/baseResults/spv.test.frag.out +++ /dev/null @@ -1,92 +0,0 @@ -spv.test.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 55 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 20 22 37 43 46 49 - ExecutionMode 4 OriginUpperLeft - Source GLSL 400 - Name 4 "main" - Name 8 "blendscale" - Name 12 "v" - Name 16 "texSampler2D" - Name 20 "t" - Name 22 "scale" - Name 29 "w" - Name 33 "texSampler3D" - Name 37 "coords" - Name 43 "gl_FragColor" - Name 46 "u" - Name 49 "blend" - Decorate 16(texSampler2D) DescriptorSet 0 - Decorate 16(texSampler2D) Binding 0 - Decorate 20(t) Location 3 - Decorate 22(scale) Location 1 - Decorate 33(texSampler3D) DescriptorSet 0 - Decorate 33(texSampler3D) Binding 1 - Decorate 37(coords) Location 4 - Decorate 43(gl_FragColor) Location 0 - Decorate 46(u) Location 2 - Decorate 49(blend) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypePointer Function 6(float) - 9: 6(float) Constant 1071971828 - 10: TypeVector 6(float) 4 - 11: TypePointer Function 10(fvec4) - 13: TypeImage 6(float) 2D sampled format:Unknown - 14: TypeSampledImage 13 - 15: TypePointer UniformConstant 14 -16(texSampler2D): 15(ptr) Variable UniformConstant - 18: TypeVector 6(float) 2 - 19: TypePointer Input 18(fvec2) - 20(t): 19(ptr) Variable Input - 22(scale): 19(ptr) Variable Input - 30: TypeImage 6(float) 3D sampled format:Unknown - 31: TypeSampledImage 30 - 32: TypePointer UniformConstant 31 -33(texSampler3D): 32(ptr) Variable UniformConstant - 35: TypeVector 6(float) 3 - 36: TypePointer Input 35(fvec3) - 37(coords): 36(ptr) Variable Input - 42: TypePointer Output 10(fvec4) -43(gl_FragColor): 42(ptr) Variable Output - 45: TypePointer Input 10(fvec4) - 46(u): 45(ptr) Variable Input - 48: TypePointer Input 6(float) - 49(blend): 48(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 8(blendscale): 7(ptr) Variable Function - 12(v): 11(ptr) Variable Function - 29(w): 11(ptr) Variable Function - Store 8(blendscale) 9 - 17: 14 Load 16(texSampler2D) - 21: 18(fvec2) Load 20(t) - 23: 18(fvec2) Load 22(scale) - 24: 18(fvec2) FAdd 21 23 - 25: 18(fvec2) Load 22(scale) - 26: 18(fvec2) FDiv 24 25 - 27: 10(fvec4) ImageSampleImplicitLod 17 26 - 28: 10(fvec4) VectorShuffle 27 27 3 2 1 0 - Store 12(v) 28 - 34: 31 Load 33(texSampler3D) - 38: 35(fvec3) Load 37(coords) - 39: 10(fvec4) ImageSampleImplicitLod 34 38 - 40: 10(fvec4) Load 12(v) - 41: 10(fvec4) FAdd 39 40 - Store 29(w) 41 - 44: 10(fvec4) Load 29(w) - 47: 10(fvec4) Load 46(u) - 50: 6(float) Load 49(blend) - 51: 6(float) Load 8(blendscale) - 52: 6(float) FMul 50 51 - 53: 10(fvec4) CompositeConstruct 52 52 52 52 - 54: 10(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 44 47 53 - Store 43(gl_FragColor) 54 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.test.vert.out b/deps/glslang/Test/baseResults/spv.test.vert.out deleted file mode 100644 index 3eb64358..00000000 --- a/deps/glslang/Test/baseResults/spv.test.vert.out +++ /dev/null @@ -1,49 +0,0 @@ -spv.test.vert -WARNING: 0:5: attribute deprecated in version 130; may be removed in future release - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 24 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 9 11 15 18 21 - Source GLSL 140 - Name 4 "main" - Name 9 "uv" - Name 11 "uv_in" - Name 15 "gl_Position" - Name 18 "transform" - Name 21 "position" - Decorate 9(uv) Location 0 - Decorate 11(uv_in) Location 5 - Decorate 15(gl_Position) BuiltIn Position - Decorate 18(transform) Location 0 - Decorate 21(position) Location 4 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 2 - 8: TypePointer Output 7(fvec2) - 9(uv): 8(ptr) Variable Output - 10: TypePointer Input 7(fvec2) - 11(uv_in): 10(ptr) Variable Input - 13: TypeVector 6(float) 4 - 14: TypePointer Output 13(fvec4) - 15(gl_Position): 14(ptr) Variable Output - 16: TypeMatrix 13(fvec4) 4 - 17: TypePointer Input 16 - 18(transform): 17(ptr) Variable Input - 20: TypePointer Input 13(fvec4) - 21(position): 20(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 12: 7(fvec2) Load 11(uv_in) - Store 9(uv) 12 - 19: 16 Load 18(transform) - 22: 13(fvec4) Load 21(position) - 23: 13(fvec4) MatrixTimesVector 19 22 - Store 15(gl_Position) 23 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.texture.frag.out b/deps/glslang/Test/baseResults/spv.texture.frag.out deleted file mode 100644 index 841bbd3a..00000000 --- a/deps/glslang/Test/baseResults/spv.texture.frag.out +++ /dev/null @@ -1,407 +0,0 @@ -spv.texture.frag -WARNING: 0:10: varying deprecated in version 130; may be removed in future release -WARNING: 0:11: varying deprecated in version 130; may be removed in future release -WARNING: 0:12: varying deprecated in version 130; may be removed in future release - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 305 - - Capability Shader - Capability Sampled1D - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 47 291 294 297 303 304 - ExecutionMode 4 OriginUpperLeft - Source GLSL 140 - Name 4 "main" - Name 8 "blendscale" - Name 10 "bias" - Name 12 "lod" - Name 14 "proj" - Name 15 "coords1D" - Name 18 "coords3D" - Name 24 "coords4D" - Name 26 "color" - Name 32 "texSampler1D" - Name 47 "coords2D" - Name 76 "texSampler2D" - Name 104 "texSampler3D" - Name 130 "texSamplerCube" - Name 145 "shadowSampler1D" - Name 164 "shadowSampler2D" - Name 221 "iCoords2D" - Name 226 "iLod" - Name 236 "gradX" - Name 239 "gradY" - Name 291 "gl_FragColor" - Name 294 "u" - Name 297 "blend" - Name 303 "scale" - Name 304 "t" - Decorate 32(texSampler1D) DescriptorSet 0 - Decorate 32(texSampler1D) Binding 0 - Decorate 47(coords2D) Location 4 - Decorate 76(texSampler2D) DescriptorSet 0 - Decorate 76(texSampler2D) Binding 1 - Decorate 104(texSampler3D) DescriptorSet 0 - Decorate 104(texSampler3D) Binding 2 - Decorate 130(texSamplerCube) DescriptorSet 0 - Decorate 130(texSamplerCube) Binding 3 - Decorate 145(shadowSampler1D) DescriptorSet 0 - Decorate 145(shadowSampler1D) Binding 4 - Decorate 164(shadowSampler2D) DescriptorSet 0 - Decorate 164(shadowSampler2D) Binding 5 - Decorate 291(gl_FragColor) Location 0 - Decorate 294(u) Location 2 - Decorate 297(blend) Location 0 - Decorate 303(scale) Location 1 - Decorate 304(t) Location 3 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypePointer Function 6(float) - 9: 6(float) Constant 1071971828 - 11: 6(float) Constant 1073741824 - 13: 6(float) Constant 1077936128 - 16: TypeVector 6(float) 3 - 17: TypePointer Function 16(fvec3) - 19: 6(float) Constant 1076753334 - 20: 6(float) Constant 1079836148 - 21: 16(fvec3) ConstantComposite 9 19 20 - 22: TypeVector 6(float) 4 - 23: TypePointer Function 22(fvec4) - 25: 22(fvec4) ConstantComposite 9 19 20 11 - 27: 6(float) Constant 0 - 28: 22(fvec4) ConstantComposite 27 27 27 27 - 29: TypeImage 6(float) 1D sampled format:Unknown - 30: TypeSampledImage 29 - 31: TypePointer UniformConstant 30 -32(texSampler1D): 31(ptr) Variable UniformConstant - 45: TypeVector 6(float) 2 - 46: TypePointer Input 45(fvec2) - 47(coords2D): 46(ptr) Variable Input - 73: TypeImage 6(float) 2D sampled format:Unknown - 74: TypeSampledImage 73 - 75: TypePointer UniformConstant 74 -76(texSampler2D): 75(ptr) Variable UniformConstant - 101: TypeImage 6(float) 3D sampled format:Unknown - 102: TypeSampledImage 101 - 103: TypePointer UniformConstant 102 -104(texSampler3D): 103(ptr) Variable UniformConstant - 127: TypeImage 6(float) Cube sampled format:Unknown - 128: TypeSampledImage 127 - 129: TypePointer UniformConstant 128 -130(texSamplerCube): 129(ptr) Variable UniformConstant - 142: TypeImage 6(float) 1D depth sampled format:Unknown - 143: TypeSampledImage 142 - 144: TypePointer UniformConstant 143 -145(shadowSampler1D): 144(ptr) Variable UniformConstant - 161: TypeImage 6(float) 2D depth sampled format:Unknown - 162: TypeSampledImage 161 - 163: TypePointer UniformConstant 162 -164(shadowSampler2D): 163(ptr) Variable UniformConstant - 218: TypeInt 32 1 - 219: TypeVector 218(int) 2 - 220: TypePointer Function 219(ivec2) - 222: 218(int) Constant 0 - 223: 218(int) Constant 5 - 224: 219(ivec2) ConstantComposite 222 223 - 225: TypePointer Function 218(int) - 227: 218(int) Constant 1 - 235: TypePointer Function 45(fvec2) - 264: 218(int) Constant 3 - 265: 218(int) Constant 4294967289 - 266: 219(ivec2) ConstantComposite 264 265 - 290: TypePointer Output 22(fvec4) -291(gl_FragColor): 290(ptr) Variable Output - 293: TypePointer Input 22(fvec4) - 294(u): 293(ptr) Variable Input - 296: TypePointer Input 6(float) - 297(blend): 296(ptr) Variable Input - 303(scale): 46(ptr) Variable Input - 304(t): 46(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 8(blendscale): 7(ptr) Variable Function - 10(bias): 7(ptr) Variable Function - 12(lod): 7(ptr) Variable Function - 14(proj): 7(ptr) Variable Function - 15(coords1D): 7(ptr) Variable Function - 18(coords3D): 17(ptr) Variable Function - 24(coords4D): 23(ptr) Variable Function - 26(color): 23(ptr) Variable Function - 221(iCoords2D): 220(ptr) Variable Function - 226(iLod): 225(ptr) Variable Function - 236(gradX): 235(ptr) Variable Function - 239(gradY): 235(ptr) Variable Function - Store 8(blendscale) 9 - Store 10(bias) 11 - Store 12(lod) 13 - Store 14(proj) 11 - Store 15(coords1D) 9 - Store 18(coords3D) 21 - Store 24(coords4D) 25 - Store 26(color) 28 - 33: 30 Load 32(texSampler1D) - 34: 6(float) Load 15(coords1D) - 35: 22(fvec4) ImageSampleImplicitLod 33 34 - 36: 22(fvec4) Load 26(color) - 37: 22(fvec4) FAdd 36 35 - Store 26(color) 37 - 38: 30 Load 32(texSampler1D) - 39: 6(float) Load 15(coords1D) - 40: 6(float) Load 10(bias) - 41: 22(fvec4) ImageSampleImplicitLod 38 39 Bias 40 - 42: 22(fvec4) Load 26(color) - 43: 22(fvec4) FAdd 42 41 - Store 26(color) 43 - 44: 30 Load 32(texSampler1D) - 48: 45(fvec2) Load 47(coords2D) - 49: 22(fvec4) ImageSampleProjImplicitLod 44 48 - 50: 22(fvec4) Load 26(color) - 51: 22(fvec4) FAdd 50 49 - Store 26(color) 51 - 52: 30 Load 32(texSampler1D) - 53: 22(fvec4) Load 24(coords4D) - 54: 6(float) CompositeExtract 53 3 - 55: 22(fvec4) CompositeInsert 54 53 1 - 56: 22(fvec4) ImageSampleProjImplicitLod 52 55 - 57: 22(fvec4) Load 26(color) - 58: 22(fvec4) FAdd 57 56 - Store 26(color) 58 - 59: 30 Load 32(texSampler1D) - 60: 45(fvec2) Load 47(coords2D) - 61: 6(float) Load 10(bias) - 62: 22(fvec4) ImageSampleProjImplicitLod 59 60 Bias 61 - 63: 22(fvec4) Load 26(color) - 64: 22(fvec4) FAdd 63 62 - Store 26(color) 64 - 65: 30 Load 32(texSampler1D) - 66: 22(fvec4) Load 24(coords4D) - 67: 6(float) Load 10(bias) - 68: 6(float) CompositeExtract 66 3 - 69: 22(fvec4) CompositeInsert 68 66 1 - 70: 22(fvec4) ImageSampleProjImplicitLod 65 69 Bias 67 - 71: 22(fvec4) Load 26(color) - 72: 22(fvec4) FAdd 71 70 - Store 26(color) 72 - 77: 74 Load 76(texSampler2D) - 78: 45(fvec2) Load 47(coords2D) - 79: 22(fvec4) ImageSampleImplicitLod 77 78 - 80: 22(fvec4) Load 26(color) - 81: 22(fvec4) FAdd 80 79 - Store 26(color) 81 - 82: 74 Load 76(texSampler2D) - 83: 45(fvec2) Load 47(coords2D) - 84: 6(float) Load 10(bias) - 85: 22(fvec4) ImageSampleImplicitLod 82 83 Bias 84 - 86: 22(fvec4) Load 26(color) - 87: 22(fvec4) FAdd 86 85 - Store 26(color) 87 - 88: 74 Load 76(texSampler2D) - 89: 16(fvec3) Load 18(coords3D) - 90: 22(fvec4) ImageSampleProjImplicitLod 88 89 - 91: 22(fvec4) Load 26(color) - 92: 22(fvec4) FAdd 91 90 - Store 26(color) 92 - 93: 74 Load 76(texSampler2D) - 94: 22(fvec4) Load 24(coords4D) - 95: 6(float) Load 10(bias) - 96: 6(float) CompositeExtract 94 3 - 97: 22(fvec4) CompositeInsert 96 94 2 - 98: 22(fvec4) ImageSampleProjImplicitLod 93 97 Bias 95 - 99: 22(fvec4) Load 26(color) - 100: 22(fvec4) FAdd 99 98 - Store 26(color) 100 - 105: 102 Load 104(texSampler3D) - 106: 16(fvec3) Load 18(coords3D) - 107: 22(fvec4) ImageSampleImplicitLod 105 106 - 108: 22(fvec4) Load 26(color) - 109: 22(fvec4) FAdd 108 107 - Store 26(color) 109 - 110: 102 Load 104(texSampler3D) - 111: 16(fvec3) Load 18(coords3D) - 112: 6(float) Load 10(bias) - 113: 22(fvec4) ImageSampleImplicitLod 110 111 Bias 112 - 114: 22(fvec4) Load 26(color) - 115: 22(fvec4) FAdd 114 113 - Store 26(color) 115 - 116: 102 Load 104(texSampler3D) - 117: 22(fvec4) Load 24(coords4D) - 118: 22(fvec4) ImageSampleProjImplicitLod 116 117 - 119: 22(fvec4) Load 26(color) - 120: 22(fvec4) FAdd 119 118 - Store 26(color) 120 - 121: 102 Load 104(texSampler3D) - 122: 22(fvec4) Load 24(coords4D) - 123: 6(float) Load 10(bias) - 124: 22(fvec4) ImageSampleProjImplicitLod 121 122 Bias 123 - 125: 22(fvec4) Load 26(color) - 126: 22(fvec4) FAdd 125 124 - Store 26(color) 126 - 131: 128 Load 130(texSamplerCube) - 132: 16(fvec3) Load 18(coords3D) - 133: 22(fvec4) ImageSampleImplicitLod 131 132 - 134: 22(fvec4) Load 26(color) - 135: 22(fvec4) FAdd 134 133 - Store 26(color) 135 - 136: 128 Load 130(texSamplerCube) - 137: 16(fvec3) Load 18(coords3D) - 138: 6(float) Load 10(bias) - 139: 22(fvec4) ImageSampleImplicitLod 136 137 Bias 138 - 140: 22(fvec4) Load 26(color) - 141: 22(fvec4) FAdd 140 139 - Store 26(color) 141 - 146: 143 Load 145(shadowSampler1D) - 147: 16(fvec3) Load 18(coords3D) - 148: 6(float) CompositeExtract 147 2 - 149: 6(float) ImageSampleDrefImplicitLod 146 147 148 - 150: 22(fvec4) Load 26(color) - 151: 22(fvec4) CompositeConstruct 149 149 149 149 - 152: 22(fvec4) FAdd 150 151 - Store 26(color) 152 - 153: 143 Load 145(shadowSampler1D) - 154: 16(fvec3) Load 18(coords3D) - 155: 6(float) Load 10(bias) - 156: 6(float) CompositeExtract 154 2 - 157: 6(float) ImageSampleDrefImplicitLod 153 154 156 Bias 155 - 158: 22(fvec4) Load 26(color) - 159: 22(fvec4) CompositeConstruct 157 157 157 157 - 160: 22(fvec4) FAdd 158 159 - Store 26(color) 160 - 165: 162 Load 164(shadowSampler2D) - 166: 16(fvec3) Load 18(coords3D) - 167: 6(float) CompositeExtract 166 2 - 168: 6(float) ImageSampleDrefImplicitLod 165 166 167 - 169: 22(fvec4) Load 26(color) - 170: 22(fvec4) CompositeConstruct 168 168 168 168 - 171: 22(fvec4) FAdd 169 170 - Store 26(color) 171 - 172: 162 Load 164(shadowSampler2D) - 173: 16(fvec3) Load 18(coords3D) - 174: 6(float) Load 10(bias) - 175: 6(float) CompositeExtract 173 2 - 176: 6(float) ImageSampleDrefImplicitLod 172 173 175 Bias 174 - 177: 22(fvec4) Load 26(color) - 178: 22(fvec4) CompositeConstruct 176 176 176 176 - 179: 22(fvec4) FAdd 177 178 - Store 26(color) 179 - 180: 143 Load 145(shadowSampler1D) - 181: 22(fvec4) Load 24(coords4D) - 182: 6(float) CompositeExtract 181 2 - 183: 6(float) CompositeExtract 181 3 - 184: 22(fvec4) CompositeInsert 183 181 1 - 185: 6(float) ImageSampleProjDrefImplicitLod 180 184 182 - 186: 22(fvec4) Load 26(color) - 187: 22(fvec4) CompositeConstruct 185 185 185 185 - 188: 22(fvec4) FAdd 186 187 - Store 26(color) 188 - 189: 143 Load 145(shadowSampler1D) - 190: 22(fvec4) Load 24(coords4D) - 191: 6(float) Load 10(bias) - 192: 6(float) CompositeExtract 190 2 - 193: 6(float) CompositeExtract 190 3 - 194: 22(fvec4) CompositeInsert 193 190 1 - 195: 6(float) ImageSampleProjDrefImplicitLod 189 194 192 Bias 191 - 196: 22(fvec4) Load 26(color) - 197: 22(fvec4) CompositeConstruct 195 195 195 195 - 198: 22(fvec4) FAdd 196 197 - Store 26(color) 198 - 199: 162 Load 164(shadowSampler2D) - 200: 22(fvec4) Load 24(coords4D) - 201: 6(float) CompositeExtract 200 2 - 202: 6(float) CompositeExtract 200 3 - 203: 22(fvec4) CompositeInsert 202 200 2 - 204: 6(float) ImageSampleProjDrefImplicitLod 199 203 201 - 205: 22(fvec4) Load 26(color) - 206: 22(fvec4) CompositeConstruct 204 204 204 204 - 207: 22(fvec4) FAdd 205 206 - Store 26(color) 207 - 208: 162 Load 164(shadowSampler2D) - 209: 22(fvec4) Load 24(coords4D) - 210: 6(float) Load 10(bias) - 211: 6(float) CompositeExtract 209 2 - 212: 6(float) CompositeExtract 209 3 - 213: 22(fvec4) CompositeInsert 212 209 2 - 214: 6(float) ImageSampleProjDrefImplicitLod 208 213 211 Bias 210 - 215: 22(fvec4) Load 26(color) - 216: 22(fvec4) CompositeConstruct 214 214 214 214 - 217: 22(fvec4) FAdd 215 216 - Store 26(color) 217 - Store 221(iCoords2D) 224 - Store 226(iLod) 227 - 228: 74 Load 76(texSampler2D) - 229: 219(ivec2) Load 221(iCoords2D) - 230: 218(int) Load 226(iLod) - 231: 73 Image 228 - 232: 22(fvec4) ImageFetch 231 229 Lod 230 - 233: 22(fvec4) Load 26(color) - 234: 22(fvec4) FAdd 233 232 - Store 26(color) 234 - 237: 45(fvec2) Load 47(coords2D) - 238: 45(fvec2) DPdx 237 - Store 236(gradX) 238 - 240: 45(fvec2) Load 47(coords2D) - 241: 45(fvec2) DPdy 240 - Store 239(gradY) 241 - 242: 74 Load 76(texSampler2D) - 243: 45(fvec2) Load 47(coords2D) - 244: 45(fvec2) Load 236(gradX) - 245: 45(fvec2) Load 239(gradY) - 246: 22(fvec4) ImageSampleExplicitLod 242 243 Grad 244 245 - 247: 22(fvec4) Load 26(color) - 248: 22(fvec4) FAdd 247 246 - Store 26(color) 248 - 249: 74 Load 76(texSampler2D) - 250: 45(fvec2) Load 47(coords2D) - 251: 6(float) Load 14(proj) - 252: 6(float) CompositeExtract 250 0 - 253: 6(float) CompositeExtract 250 1 - 254: 16(fvec3) CompositeConstruct 252 253 251 - 255: 45(fvec2) Load 236(gradX) - 256: 45(fvec2) Load 239(gradY) - 257: 22(fvec4) ImageSampleProjExplicitLod 249 254 Grad 255 256 - 258: 22(fvec4) Load 26(color) - 259: 22(fvec4) FAdd 258 257 - Store 26(color) 259 - 260: 74 Load 76(texSampler2D) - 261: 45(fvec2) Load 47(coords2D) - 262: 45(fvec2) Load 236(gradX) - 263: 45(fvec2) Load 239(gradY) - 267: 22(fvec4) ImageSampleExplicitLod 260 261 Grad ConstOffset 262 263 266 - 268: 22(fvec4) Load 26(color) - 269: 22(fvec4) FAdd 268 267 - Store 26(color) 269 - 270: 74 Load 76(texSampler2D) - 271: 16(fvec3) Load 18(coords3D) - 272: 45(fvec2) Load 236(gradX) - 273: 45(fvec2) Load 239(gradY) - 274: 22(fvec4) ImageSampleProjExplicitLod 270 271 Grad ConstOffset 272 273 266 - 275: 22(fvec4) Load 26(color) - 276: 22(fvec4) FAdd 275 274 - Store 26(color) 276 - 277: 162 Load 164(shadowSampler2D) - 278: 45(fvec2) Load 47(coords2D) - 279: 6(float) Load 12(lod) - 280: 6(float) CompositeExtract 278 0 - 281: 6(float) CompositeExtract 278 1 - 282: 16(fvec3) CompositeConstruct 280 281 279 - 283: 45(fvec2) Load 236(gradX) - 284: 45(fvec2) Load 239(gradY) - 285: 6(float) CompositeExtract 282 2 - 286: 6(float) ImageSampleDrefExplicitLod 277 282 285 Grad 283 284 - 287: 22(fvec4) Load 26(color) - 288: 22(fvec4) CompositeConstruct 286 286 286 286 - 289: 22(fvec4) FAdd 287 288 - Store 26(color) 289 - 292: 22(fvec4) Load 26(color) - 295: 22(fvec4) Load 294(u) - 298: 6(float) Load 297(blend) - 299: 6(float) Load 8(blendscale) - 300: 6(float) FMul 298 299 - 301: 22(fvec4) CompositeConstruct 300 300 300 300 - 302: 22(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 292 295 301 - Store 291(gl_FragColor) 302 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.texture.sampler.transform.frag.out b/deps/glslang/Test/baseResults/spv.texture.sampler.transform.frag.out deleted file mode 100644 index a297ea78..00000000 --- a/deps/glslang/Test/baseResults/spv.texture.sampler.transform.frag.out +++ /dev/null @@ -1,40 +0,0 @@ -spv.texture.sampler.transform.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 20 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 9 17 - ExecutionMode 4 OriginUpperLeft - Source GLSL 440 - Name 4 "main" - Name 9 "color" - Name 13 "tex" - Name 17 "coord" - Decorate 9(color) Location 0 - Decorate 13(tex) DescriptorSet 0 - Decorate 13(tex) Binding 0 - Decorate 17(coord) 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: TypeSampledImage 10 - 12: TypePointer UniformConstant 11 - 13(tex): 12(ptr) Variable UniformConstant - 15: TypeVector 6(float) 2 - 16: TypePointer Input 15(fvec2) - 17(coord): 16(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 14: 11 Load 13(tex) - 18: 15(fvec2) Load 17(coord) - 19: 7(fvec4) ImageSampleImplicitLod 14 18 - Store 9(color) 19 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.texture.vert.out b/deps/glslang/Test/baseResults/spv.texture.vert.out deleted file mode 100644 index 544a0f31..00000000 --- a/deps/glslang/Test/baseResults/spv.texture.vert.out +++ /dev/null @@ -1,208 +0,0 @@ -spv.texture.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 150 - - Capability Shader - Capability Sampled1D - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 39 148 - Source GLSL 140 - Name 4 "main" - Name 8 "lod" - Name 10 "coords1D" - Name 14 "coords3D" - Name 20 "coords4D" - Name 23 "color" - Name 29 "texSampler1D" - Name 39 "coords2D" - Name 56 "texSampler2D" - Name 80 "texSampler3D" - Name 96 "texSamplerCube" - Name 106 "shadowSampler1D" - Name 118 "shadowSampler2D" - Name 148 "gl_Position" - Decorate 29(texSampler1D) DescriptorSet 0 - Decorate 29(texSampler1D) Binding 0 - Decorate 39(coords2D) Location 0 - Decorate 56(texSampler2D) DescriptorSet 0 - Decorate 56(texSampler2D) Binding 1 - Decorate 80(texSampler3D) DescriptorSet 0 - Decorate 80(texSampler3D) Binding 2 - Decorate 96(texSamplerCube) DescriptorSet 0 - Decorate 96(texSamplerCube) Binding 3 - Decorate 106(shadowSampler1D) DescriptorSet 0 - Decorate 106(shadowSampler1D) Binding 4 - Decorate 118(shadowSampler2D) DescriptorSet 0 - Decorate 118(shadowSampler2D) Binding 5 - Decorate 148(gl_Position) BuiltIn Position - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypePointer Function 6(float) - 9: 6(float) Constant 1077936128 - 11: 6(float) Constant 1071971828 - 12: TypeVector 6(float) 3 - 13: TypePointer Function 12(fvec3) - 15: 6(float) Constant 1076753334 - 16: 6(float) Constant 1079836148 - 17: 12(fvec3) ConstantComposite 11 15 16 - 18: TypeVector 6(float) 4 - 19: TypePointer Function 18(fvec4) - 21: 6(float) Constant 1073741824 - 22: 18(fvec4) ConstantComposite 11 15 16 21 - 24: 6(float) Constant 0 - 25: 18(fvec4) ConstantComposite 24 24 24 24 - 26: TypeImage 6(float) 1D sampled format:Unknown - 27: TypeSampledImage 26 - 28: TypePointer UniformConstant 27 -29(texSampler1D): 28(ptr) Variable UniformConstant - 37: TypeVector 6(float) 2 - 38: TypePointer Input 37(fvec2) - 39(coords2D): 38(ptr) Variable Input - 53: TypeImage 6(float) 2D sampled format:Unknown - 54: TypeSampledImage 53 - 55: TypePointer UniformConstant 54 -56(texSampler2D): 55(ptr) Variable UniformConstant - 77: TypeImage 6(float) 3D sampled format:Unknown - 78: TypeSampledImage 77 - 79: TypePointer UniformConstant 78 -80(texSampler3D): 79(ptr) Variable UniformConstant - 93: TypeImage 6(float) Cube sampled format:Unknown - 94: TypeSampledImage 93 - 95: TypePointer UniformConstant 94 -96(texSamplerCube): 95(ptr) Variable UniformConstant - 103: TypeImage 6(float) 1D depth sampled format:Unknown - 104: TypeSampledImage 103 - 105: TypePointer UniformConstant 104 -106(shadowSampler1D): 105(ptr) Variable UniformConstant - 115: TypeImage 6(float) 2D depth sampled format:Unknown - 116: TypeSampledImage 115 - 117: TypePointer UniformConstant 116 -118(shadowSampler2D): 117(ptr) Variable UniformConstant - 147: TypePointer Output 18(fvec4) -148(gl_Position): 147(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 8(lod): 7(ptr) Variable Function - 10(coords1D): 7(ptr) Variable Function - 14(coords3D): 13(ptr) Variable Function - 20(coords4D): 19(ptr) Variable Function - 23(color): 19(ptr) Variable Function - Store 8(lod) 9 - Store 10(coords1D) 11 - Store 14(coords3D) 17 - Store 20(coords4D) 22 - Store 23(color) 25 - 30: 27 Load 29(texSampler1D) - 31: 6(float) Load 10(coords1D) - 32: 6(float) Load 8(lod) - 33: 18(fvec4) ImageSampleExplicitLod 30 31 Lod 32 - 34: 18(fvec4) Load 23(color) - 35: 18(fvec4) FAdd 34 33 - Store 23(color) 35 - 36: 27 Load 29(texSampler1D) - 40: 37(fvec2) Load 39(coords2D) - 41: 6(float) Load 8(lod) - 42: 18(fvec4) ImageSampleProjExplicitLod 36 40 Lod 41 - 43: 18(fvec4) Load 23(color) - 44: 18(fvec4) FAdd 43 42 - Store 23(color) 44 - 45: 27 Load 29(texSampler1D) - 46: 18(fvec4) Load 20(coords4D) - 47: 6(float) Load 8(lod) - 48: 6(float) CompositeExtract 46 3 - 49: 18(fvec4) CompositeInsert 48 46 1 - 50: 18(fvec4) ImageSampleProjExplicitLod 45 49 Lod 47 - 51: 18(fvec4) Load 23(color) - 52: 18(fvec4) FAdd 51 50 - Store 23(color) 52 - 57: 54 Load 56(texSampler2D) - 58: 37(fvec2) Load 39(coords2D) - 59: 6(float) Load 8(lod) - 60: 18(fvec4) ImageSampleExplicitLod 57 58 Lod 59 - 61: 18(fvec4) Load 23(color) - 62: 18(fvec4) FAdd 61 60 - Store 23(color) 62 - 63: 54 Load 56(texSampler2D) - 64: 12(fvec3) Load 14(coords3D) - 65: 6(float) Load 8(lod) - 66: 18(fvec4) ImageSampleProjExplicitLod 63 64 Lod 65 - 67: 18(fvec4) Load 23(color) - 68: 18(fvec4) FAdd 67 66 - Store 23(color) 68 - 69: 54 Load 56(texSampler2D) - 70: 18(fvec4) Load 20(coords4D) - 71: 6(float) Load 8(lod) - 72: 6(float) CompositeExtract 70 3 - 73: 18(fvec4) CompositeInsert 72 70 2 - 74: 18(fvec4) ImageSampleProjExplicitLod 69 73 Lod 71 - 75: 18(fvec4) Load 23(color) - 76: 18(fvec4) FAdd 75 74 - Store 23(color) 76 - 81: 78 Load 80(texSampler3D) - 82: 12(fvec3) Load 14(coords3D) - 83: 6(float) Load 8(lod) - 84: 18(fvec4) ImageSampleExplicitLod 81 82 Lod 83 - 85: 18(fvec4) Load 23(color) - 86: 18(fvec4) FAdd 85 84 - Store 23(color) 86 - 87: 78 Load 80(texSampler3D) - 88: 18(fvec4) Load 20(coords4D) - 89: 6(float) Load 8(lod) - 90: 18(fvec4) ImageSampleProjExplicitLod 87 88 Lod 89 - 91: 18(fvec4) Load 23(color) - 92: 18(fvec4) FAdd 91 90 - Store 23(color) 92 - 97: 94 Load 96(texSamplerCube) - 98: 12(fvec3) Load 14(coords3D) - 99: 6(float) Load 8(lod) - 100: 18(fvec4) ImageSampleExplicitLod 97 98 Lod 99 - 101: 18(fvec4) Load 23(color) - 102: 18(fvec4) FAdd 101 100 - Store 23(color) 102 - 107: 104 Load 106(shadowSampler1D) - 108: 12(fvec3) Load 14(coords3D) - 109: 6(float) Load 8(lod) - 110: 6(float) CompositeExtract 108 2 - 111: 6(float) ImageSampleDrefExplicitLod 107 108 110 Lod 109 - 112: 18(fvec4) Load 23(color) - 113: 18(fvec4) CompositeConstruct 111 111 111 111 - 114: 18(fvec4) FAdd 112 113 - Store 23(color) 114 - 119: 116 Load 118(shadowSampler2D) - 120: 12(fvec3) Load 14(coords3D) - 121: 6(float) Load 8(lod) - 122: 6(float) CompositeExtract 120 2 - 123: 6(float) ImageSampleDrefExplicitLod 119 120 122 Lod 121 - 124: 18(fvec4) Load 23(color) - 125: 18(fvec4) CompositeConstruct 123 123 123 123 - 126: 18(fvec4) FAdd 124 125 - Store 23(color) 126 - 127: 104 Load 106(shadowSampler1D) - 128: 18(fvec4) Load 20(coords4D) - 129: 6(float) Load 8(lod) - 130: 6(float) CompositeExtract 128 2 - 131: 6(float) CompositeExtract 128 3 - 132: 18(fvec4) CompositeInsert 131 128 1 - 133: 6(float) ImageSampleProjDrefExplicitLod 127 132 130 Lod 129 - 134: 18(fvec4) Load 23(color) - 135: 18(fvec4) CompositeConstruct 133 133 133 133 - 136: 18(fvec4) FAdd 134 135 - Store 23(color) 136 - 137: 116 Load 118(shadowSampler2D) - 138: 18(fvec4) Load 20(coords4D) - 139: 6(float) Load 8(lod) - 140: 6(float) CompositeExtract 138 2 - 141: 6(float) CompositeExtract 138 3 - 142: 18(fvec4) CompositeInsert 141 138 2 - 143: 6(float) ImageSampleProjDrefExplicitLod 137 142 140 Lod 139 - 144: 18(fvec4) Load 23(color) - 145: 18(fvec4) CompositeConstruct 143 143 143 143 - 146: 18(fvec4) FAdd 144 145 - Store 23(color) 146 - 149: 18(fvec4) Load 23(color) - Store 148(gl_Position) 149 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.textureBuffer.vert.out b/deps/glslang/Test/baseResults/spv.textureBuffer.vert.out deleted file mode 100644 index d18c6561..00000000 --- a/deps/glslang/Test/baseResults/spv.textureBuffer.vert.out +++ /dev/null @@ -1,69 +0,0 @@ -spv.textureBuffer.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 42 - - Capability Shader - Capability SampledBuffer - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" - Source GLSL 450 - Name 4 "main" - Name 9 "tBuf" - Name 13 "s" - Name 23 "sBuf" - Name 32 "utBuf" - Name 38 "itBuf" - Decorate 9(tBuf) DescriptorSet 0 - Decorate 9(tBuf) Binding 0 - Decorate 13(s) DescriptorSet 0 - Decorate 13(s) Binding 1 - Decorate 23(sBuf) DescriptorSet 0 - Decorate 23(sBuf) Binding 2 - Decorate 32(utBuf) DescriptorSet 0 - Decorate 32(utBuf) Binding 3 - Decorate 38(itBuf) DescriptorSet 0 - Decorate 38(itBuf) Binding 4 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeImage 6(float) Buffer sampled format:Unknown - 8: TypePointer UniformConstant 7 - 9(tBuf): 8(ptr) Variable UniformConstant - 11: TypeSampler - 12: TypePointer UniformConstant 11 - 13(s): 12(ptr) Variable UniformConstant - 15: TypeSampledImage 7 - 17: TypeInt 32 1 - 18: 17(int) Constant 13 - 20: TypeVector 6(float) 4 - 22: TypePointer UniformConstant 15 - 23(sBuf): 22(ptr) Variable UniformConstant - 29: TypeInt 32 0 - 30: TypeImage 29(int) Buffer sampled format:Unknown - 31: TypePointer UniformConstant 30 - 32(utBuf): 31(ptr) Variable UniformConstant - 34: TypeVector 29(int) 4 - 36: TypeImage 17(int) Buffer sampled format:Unknown - 37: TypePointer UniformConstant 36 - 38(itBuf): 37(ptr) Variable UniformConstant - 40: TypeVector 17(int) 4 - 4(main): 2 Function None 3 - 5: Label - 10: 7 Load 9(tBuf) - 14: 11 Load 13(s) - 16: 15 SampledImage 10 14 - 19: 7 Image 16 - 21: 20(fvec4) ImageFetch 19 18 - 24: 15 Load 23(sBuf) - 25: 7 Image 24 - 26: 20(fvec4) ImageFetch 25 18 - 27: 7 Load 9(tBuf) - 28: 20(fvec4) ImageFetch 27 18 - 33: 30 Load 32(utBuf) - 35: 34(ivec4) ImageFetch 33 18 - 39: 36 Load 38(itBuf) - 41: 40(ivec4) ImageFetch 39 18 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.textureError.frag.out b/deps/glslang/Test/baseResults/spv.textureError.frag.out deleted file mode 100644 index d5ef59ce..00000000 --- a/deps/glslang/Test/baseResults/spv.textureError.frag.out +++ /dev/null @@ -1,6 +0,0 @@ -spv.textureError.frag -ERROR: spv.textureError.frag:8: 'texture*D*' : function not supported in this version; use texture() instead -ERROR: 1 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.textureGatherBiasLod.frag.out b/deps/glslang/Test/baseResults/spv.textureGatherBiasLod.frag.out deleted file mode 100644 index 3a9bb802..00000000 --- a/deps/glslang/Test/baseResults/spv.textureGatherBiasLod.frag.out +++ /dev/null @@ -1,395 +0,0 @@ -spv.textureGatherBiasLod.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 298 - - Capability Shader - Capability ImageGatherExtended - Capability SparseResidency - Capability SampledCubeArray - Capability ImageGatherBiasLodAMD - Extension "SPV_AMD_texture_gather_bias_lod" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 20 25 37 61 176 296 - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_AMD_texture_gather_bias_lod" - SourceExtension "GL_ARB_sparse_texture2" - Name 4 "main" - Name 9 "texel" - Name 12 "result" - Name 16 "s2D" - Name 20 "c2" - Name 25 "bias" - Name 33 "s2DArray" - Name 37 "c3" - Name 47 "sCube" - Name 58 "sCubeArray" - Name 61 "c4" - Name 104 "ResType" - Name 176 "lod" - Name 296 "fragColor" - Decorate 16(s2D) DescriptorSet 0 - Decorate 16(s2D) Binding 0 - Decorate 20(c2) Location 0 - Decorate 25(bias) Location 4 - Decorate 33(s2DArray) DescriptorSet 0 - Decorate 33(s2DArray) Binding 1 - Decorate 37(c3) Location 1 - Decorate 47(sCube) DescriptorSet 0 - Decorate 47(sCube) Binding 2 - Decorate 58(sCubeArray) DescriptorSet 0 - Decorate 58(sCubeArray) Binding 3 - Decorate 61(c4) Location 2 - Decorate 176(lod) Location 3 - Decorate 296(fragColor) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: 6(float) Constant 0 - 11: 7(fvec4) ConstantComposite 10 10 10 10 - 13: TypeImage 6(float) 2D sampled format:Unknown - 14: TypeSampledImage 13 - 15: TypePointer UniformConstant 14 - 16(s2D): 15(ptr) Variable UniformConstant - 18: TypeVector 6(float) 2 - 19: TypePointer Input 18(fvec2) - 20(c2): 19(ptr) Variable Input - 22: TypeInt 32 1 - 23: 22(int) Constant 0 - 24: TypePointer Input 6(float) - 25(bias): 24(ptr) Variable Input - 30: TypeImage 6(float) 2D array sampled format:Unknown - 31: TypeSampledImage 30 - 32: TypePointer UniformConstant 31 - 33(s2DArray): 32(ptr) Variable UniformConstant - 35: TypeVector 6(float) 3 - 36: TypePointer Input 35(fvec3) - 37(c3): 36(ptr) Variable Input - 39: 22(int) Constant 1 - 44: TypeImage 6(float) Cube sampled format:Unknown - 45: TypeSampledImage 44 - 46: TypePointer UniformConstant 45 - 47(sCube): 46(ptr) Variable UniformConstant - 50: 22(int) Constant 2 - 55: TypeImage 6(float) Cube array sampled format:Unknown - 56: TypeSampledImage 55 - 57: TypePointer UniformConstant 56 - 58(sCubeArray): 57(ptr) Variable UniformConstant - 60: TypePointer Input 7(fvec4) - 61(c4): 60(ptr) Variable Input - 63: 22(int) Constant 3 - 70: TypeVector 22(int) 2 - 71: 70(ivec2) ConstantComposite 23 23 - 78: 70(ivec2) ConstantComposite 23 39 - 85: TypeInt 32 0 - 86: 85(int) Constant 4 - 87: TypeArray 70(ivec2) 86 - 88: 70(ivec2) ConstantComposite 39 23 - 89: 70(ivec2) ConstantComposite 39 39 - 90: 87 ConstantComposite 71 78 88 89 - 104(ResType): TypeStruct 22(int) 7(fvec4) - 176(lod): 24(ptr) Variable Input - 295: TypePointer Output 7(fvec4) - 296(fragColor): 295(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 9(texel): 8(ptr) Variable Function - 12(result): 8(ptr) Variable Function - Store 9(texel) 11 - Store 12(result) 11 - 17: 14 Load 16(s2D) - 21: 18(fvec2) Load 20(c2) - 26: 6(float) Load 25(bias) - 27: 7(fvec4) ImageGather 17 21 23 Bias 26 - 28: 7(fvec4) Load 9(texel) - 29: 7(fvec4) FAdd 28 27 - Store 9(texel) 29 - 34: 31 Load 33(s2DArray) - 38: 35(fvec3) Load 37(c3) - 40: 6(float) Load 25(bias) - 41: 7(fvec4) ImageGather 34 38 39 Bias 40 - 42: 7(fvec4) Load 9(texel) - 43: 7(fvec4) FAdd 42 41 - Store 9(texel) 43 - 48: 45 Load 47(sCube) - 49: 35(fvec3) Load 37(c3) - 51: 6(float) Load 25(bias) - 52: 7(fvec4) ImageGather 48 49 50 Bias 51 - 53: 7(fvec4) Load 9(texel) - 54: 7(fvec4) FAdd 53 52 - Store 9(texel) 54 - 59: 56 Load 58(sCubeArray) - 62: 7(fvec4) Load 61(c4) - 64: 6(float) Load 25(bias) - 65: 7(fvec4) ImageGather 59 62 63 Bias 64 - 66: 7(fvec4) Load 9(texel) - 67: 7(fvec4) FAdd 66 65 - Store 9(texel) 67 - 68: 14 Load 16(s2D) - 69: 18(fvec2) Load 20(c2) - 72: 6(float) Load 25(bias) - 73: 7(fvec4) ImageGather 68 69 23 Bias ConstOffset 72 71 - 74: 7(fvec4) Load 9(texel) - 75: 7(fvec4) FAdd 74 73 - Store 9(texel) 75 - 76: 31 Load 33(s2DArray) - 77: 35(fvec3) Load 37(c3) - 79: 6(float) Load 25(bias) - 80: 7(fvec4) ImageGather 76 77 39 Bias ConstOffset 79 78 - 81: 7(fvec4) Load 9(texel) - 82: 7(fvec4) FAdd 81 80 - Store 9(texel) 82 - 83: 14 Load 16(s2D) - 84: 18(fvec2) Load 20(c2) - 91: 6(float) Load 25(bias) - 92: 7(fvec4) ImageGather 83 84 23 Bias ConstOffsets 91 90 - 93: 7(fvec4) Load 9(texel) - 94: 7(fvec4) FAdd 93 92 - Store 9(texel) 94 - 95: 31 Load 33(s2DArray) - 96: 35(fvec3) Load 37(c3) - 97: 6(float) Load 25(bias) - 98: 7(fvec4) ImageGather 95 96 39 Bias ConstOffsets 97 90 - 99: 7(fvec4) Load 9(texel) - 100: 7(fvec4) FAdd 99 98 - Store 9(texel) 100 - 101: 14 Load 16(s2D) - 102: 18(fvec2) Load 20(c2) - 103: 6(float) Load 25(bias) - 105:104(ResType) ImageSparseGather 101 102 23 Bias 103 - 106: 7(fvec4) CompositeExtract 105 1 - Store 12(result) 106 - 107: 22(int) CompositeExtract 105 0 - 108: 7(fvec4) Load 12(result) - 109: 7(fvec4) Load 9(texel) - 110: 7(fvec4) FAdd 109 108 - Store 9(texel) 110 - 111: 31 Load 33(s2DArray) - 112: 35(fvec3) Load 37(c3) - 113: 6(float) Load 25(bias) - 114:104(ResType) ImageSparseGather 111 112 39 Bias 113 - 115: 7(fvec4) CompositeExtract 114 1 - Store 12(result) 115 - 116: 22(int) CompositeExtract 114 0 - 117: 7(fvec4) Load 12(result) - 118: 7(fvec4) Load 9(texel) - 119: 7(fvec4) FAdd 118 117 - Store 9(texel) 119 - 120: 45 Load 47(sCube) - 121: 35(fvec3) Load 37(c3) - 122: 6(float) Load 25(bias) - 123:104(ResType) ImageSparseGather 120 121 50 Bias 122 - 124: 7(fvec4) CompositeExtract 123 1 - Store 12(result) 124 - 125: 22(int) CompositeExtract 123 0 - 126: 7(fvec4) Load 12(result) - 127: 7(fvec4) Load 9(texel) - 128: 7(fvec4) FAdd 127 126 - Store 9(texel) 128 - 129: 56 Load 58(sCubeArray) - 130: 7(fvec4) Load 61(c4) - 131: 6(float) Load 25(bias) - 132:104(ResType) ImageSparseGather 129 130 50 Bias 131 - 133: 7(fvec4) CompositeExtract 132 1 - Store 12(result) 133 - 134: 22(int) CompositeExtract 132 0 - 135: 7(fvec4) Load 12(result) - 136: 7(fvec4) Load 9(texel) - 137: 7(fvec4) FAdd 136 135 - Store 9(texel) 137 - 138: 14 Load 16(s2D) - 139: 18(fvec2) Load 20(c2) - 140: 6(float) Load 25(bias) - 141:104(ResType) ImageSparseGather 138 139 23 Bias ConstOffset 140 71 - 142: 7(fvec4) CompositeExtract 141 1 - Store 12(result) 142 - 143: 22(int) CompositeExtract 141 0 - 144: 7(fvec4) Load 12(result) - 145: 7(fvec4) Load 9(texel) - 146: 7(fvec4) FAdd 145 144 - Store 9(texel) 146 - 147: 31 Load 33(s2DArray) - 148: 35(fvec3) Load 37(c3) - 149: 6(float) Load 25(bias) - 150:104(ResType) ImageSparseGather 147 148 39 Bias ConstOffset 149 78 - 151: 7(fvec4) CompositeExtract 150 1 - Store 12(result) 151 - 152: 22(int) CompositeExtract 150 0 - 153: 7(fvec4) Load 12(result) - 154: 7(fvec4) Load 9(texel) - 155: 7(fvec4) FAdd 154 153 - Store 9(texel) 155 - 156: 14 Load 16(s2D) - 157: 18(fvec2) Load 20(c2) - 158: 6(float) Load 25(bias) - 159:104(ResType) ImageSparseGather 156 157 23 Bias ConstOffsets 158 90 - 160: 7(fvec4) CompositeExtract 159 1 - Store 12(result) 160 - 161: 22(int) CompositeExtract 159 0 - 162: 7(fvec4) Load 12(result) - 163: 7(fvec4) Load 9(texel) - 164: 7(fvec4) FAdd 163 162 - Store 9(texel) 164 - 165: 31 Load 33(s2DArray) - 166: 35(fvec3) Load 37(c3) - 167: 6(float) Load 25(bias) - 168:104(ResType) ImageSparseGather 165 166 39 Bias ConstOffsets 167 90 - 169: 7(fvec4) CompositeExtract 168 1 - Store 12(result) 169 - 170: 22(int) CompositeExtract 168 0 - 171: 7(fvec4) Load 12(result) - 172: 7(fvec4) Load 9(texel) - 173: 7(fvec4) FAdd 172 171 - Store 9(texel) 173 - 174: 14 Load 16(s2D) - 175: 18(fvec2) Load 20(c2) - 177: 6(float) Load 176(lod) - 178: 7(fvec4) ImageGather 174 175 23 Lod 177 - 179: 7(fvec4) Load 9(texel) - 180: 7(fvec4) FAdd 179 178 - Store 9(texel) 180 - 181: 31 Load 33(s2DArray) - 182: 35(fvec3) Load 37(c3) - 183: 6(float) Load 176(lod) - 184: 7(fvec4) ImageGather 181 182 39 Lod 183 - 185: 7(fvec4) Load 9(texel) - 186: 7(fvec4) FAdd 185 184 - Store 9(texel) 186 - 187: 45 Load 47(sCube) - 188: 35(fvec3) Load 37(c3) - 189: 6(float) Load 176(lod) - 190: 7(fvec4) ImageGather 187 188 50 Lod 189 - 191: 7(fvec4) Load 9(texel) - 192: 7(fvec4) FAdd 191 190 - Store 9(texel) 192 - 193: 56 Load 58(sCubeArray) - 194: 7(fvec4) Load 61(c4) - 195: 6(float) Load 176(lod) - 196: 7(fvec4) ImageGather 193 194 63 Lod 195 - 197: 7(fvec4) Load 9(texel) - 198: 7(fvec4) FAdd 197 196 - Store 9(texel) 198 - 199: 14 Load 16(s2D) - 200: 18(fvec2) Load 20(c2) - 201: 6(float) Load 176(lod) - 202: 7(fvec4) ImageGather 199 200 23 Lod ConstOffset 201 71 - 203: 7(fvec4) Load 9(texel) - 204: 7(fvec4) FAdd 203 202 - Store 9(texel) 204 - 205: 31 Load 33(s2DArray) - 206: 35(fvec3) Load 37(c3) - 207: 6(float) Load 176(lod) - 208: 7(fvec4) ImageGather 205 206 39 Lod ConstOffset 207 78 - 209: 7(fvec4) Load 9(texel) - 210: 7(fvec4) FAdd 209 208 - Store 9(texel) 210 - 211: 14 Load 16(s2D) - 212: 18(fvec2) Load 20(c2) - 213: 6(float) Load 176(lod) - 214: 7(fvec4) ImageGather 211 212 23 Lod ConstOffsets 213 90 - 215: 7(fvec4) Load 9(texel) - 216: 7(fvec4) FAdd 215 214 - Store 9(texel) 216 - 217: 31 Load 33(s2DArray) - 218: 35(fvec3) Load 37(c3) - 219: 6(float) Load 176(lod) - 220: 7(fvec4) ImageGather 217 218 39 Lod ConstOffsets 219 90 - 221: 7(fvec4) Load 9(texel) - 222: 7(fvec4) FAdd 221 220 - Store 9(texel) 222 - 223: 14 Load 16(s2D) - 224: 18(fvec2) Load 20(c2) - 225: 6(float) Load 176(lod) - 226:104(ResType) ImageSparseGather 223 224 23 Lod 225 - 227: 7(fvec4) CompositeExtract 226 1 - Store 12(result) 227 - 228: 22(int) CompositeExtract 226 0 - 229: 7(fvec4) Load 12(result) - 230: 7(fvec4) Load 9(texel) - 231: 7(fvec4) FAdd 230 229 - Store 9(texel) 231 - 232: 31 Load 33(s2DArray) - 233: 35(fvec3) Load 37(c3) - 234: 6(float) Load 176(lod) - 235:104(ResType) ImageSparseGather 232 233 39 Lod 234 - 236: 7(fvec4) CompositeExtract 235 1 - Store 12(result) 236 - 237: 22(int) CompositeExtract 235 0 - 238: 7(fvec4) Load 12(result) - 239: 7(fvec4) Load 9(texel) - 240: 7(fvec4) FAdd 239 238 - Store 9(texel) 240 - 241: 45 Load 47(sCube) - 242: 35(fvec3) Load 37(c3) - 243: 6(float) Load 176(lod) - 244:104(ResType) ImageSparseGather 241 242 50 Lod 243 - 245: 7(fvec4) CompositeExtract 244 1 - Store 12(result) 245 - 246: 22(int) CompositeExtract 244 0 - 247: 7(fvec4) Load 12(result) - 248: 7(fvec4) Load 9(texel) - 249: 7(fvec4) FAdd 248 247 - Store 9(texel) 249 - 250: 56 Load 58(sCubeArray) - 251: 7(fvec4) Load 61(c4) - 252: 6(float) Load 176(lod) - 253:104(ResType) ImageSparseGather 250 251 50 Lod 252 - 254: 7(fvec4) CompositeExtract 253 1 - Store 12(result) 254 - 255: 22(int) CompositeExtract 253 0 - 256: 7(fvec4) Load 12(result) - 257: 7(fvec4) Load 9(texel) - 258: 7(fvec4) FAdd 257 256 - Store 9(texel) 258 - 259: 14 Load 16(s2D) - 260: 18(fvec2) Load 20(c2) - 261: 6(float) Load 176(lod) - 262:104(ResType) ImageSparseGather 259 260 23 Lod ConstOffset 261 71 - 263: 7(fvec4) CompositeExtract 262 1 - Store 12(result) 263 - 264: 22(int) CompositeExtract 262 0 - 265: 7(fvec4) Load 12(result) - 266: 7(fvec4) Load 9(texel) - 267: 7(fvec4) FAdd 266 265 - Store 9(texel) 267 - 268: 31 Load 33(s2DArray) - 269: 35(fvec3) Load 37(c3) - 270: 6(float) Load 176(lod) - 271:104(ResType) ImageSparseGather 268 269 39 Lod ConstOffset 270 78 - 272: 7(fvec4) CompositeExtract 271 1 - Store 12(result) 272 - 273: 22(int) CompositeExtract 271 0 - 274: 7(fvec4) Load 12(result) - 275: 7(fvec4) Load 9(texel) - 276: 7(fvec4) FAdd 275 274 - Store 9(texel) 276 - 277: 14 Load 16(s2D) - 278: 18(fvec2) Load 20(c2) - 279: 6(float) Load 176(lod) - 280:104(ResType) ImageSparseGather 277 278 23 Lod ConstOffsets 279 90 - 281: 7(fvec4) CompositeExtract 280 1 - Store 12(result) 281 - 282: 22(int) CompositeExtract 280 0 - 283: 7(fvec4) Load 12(result) - 284: 7(fvec4) Load 9(texel) - 285: 7(fvec4) FAdd 284 283 - Store 9(texel) 285 - 286: 31 Load 33(s2DArray) - 287: 35(fvec3) Load 37(c3) - 288: 6(float) Load 176(lod) - 289:104(ResType) ImageSparseGather 286 287 39 Lod ConstOffsets 288 90 - 290: 7(fvec4) CompositeExtract 289 1 - Store 12(result) 290 - 291: 22(int) CompositeExtract 289 0 - 292: 7(fvec4) Load 12(result) - 293: 7(fvec4) Load 9(texel) - 294: 7(fvec4) FAdd 293 292 - Store 9(texel) 294 - 297: 7(fvec4) Load 9(texel) - Store 296(fragColor) 297 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.types.frag.out b/deps/glslang/Test/baseResults/spv.types.frag.out deleted file mode 100644 index 3e35da27..00000000 --- a/deps/glslang/Test/baseResults/spv.types.frag.out +++ /dev/null @@ -1,353 +0,0 @@ -spv.types.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// 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 96(u_i) Location 0 - Decorate 98(i_i) Flat - Decorate 98(i_i) Location 8 - Decorate 105(u_i2) Flat - Decorate 105(u_i2) Location 1 - Decorate 107(i_i2) Flat - Decorate 107(i_i2) Location 9 - Decorate 114(u_i3) Flat - Decorate 114(u_i3) Location 2 - Decorate 116(i_i3) Flat - Decorate 116(i_i3) Location 10 - Decorate 123(u_i4) Flat - Decorate 123(u_i4) Location 3 - Decorate 125(i_i4) Flat - Decorate 125(i_i4) Location 11 - Decorate 132(u_f) Location 4 - Decorate 134(i_f) Location 12 - Decorate 141(u_f2) Location 5 - Decorate 143(i_f2) Location 13 - Decorate 150(u_f3) Location 6 - Decorate 152(i_f3) Location 14 - Decorate 159(u_f4) Location 7 - Decorate 161(i_f4) Location 15 - 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/Test/baseResults/spv.uint.frag.out b/deps/glslang/Test/baseResults/spv.uint.frag.out deleted file mode 100644 index 7dbc3b37..00000000 --- a/deps/glslang/Test/baseResults/spv.uint.frag.out +++ /dev/null @@ -1,449 +0,0 @@ -spv.uint.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 213 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 15 68 77 206 208 210 - ExecutionMode 4 OriginUpperLeft - Source ESSL 310 - Name 4 "main" - Name 8 "count" - Name 12 "u" - Name 15 "t" - Name 55 "shiftedii" - Name 57 "shiftedui" - Name 59 "shiftediu" - Name 60 "shifteduu" - Name 68 "c" - Name 72 "usampler" - Name 77 "tc" - Name 111 "af" - Name 115 "ab" - Name 118 "ai" - Name 152 "mask1" - Name 154 "mask2" - Name 156 "mask3" - Name 160 "mask4" - Name 206 "f" - Name 208 "v" - Name 210 "i" - Name 212 "b" - Decorate 8(count) RelaxedPrecision - Decorate 12(u) RelaxedPrecision - Decorate 15(t) RelaxedPrecision - Decorate 15(t) Flat - Decorate 15(t) Location 0 - Decorate 19 RelaxedPrecision - Decorate 21 RelaxedPrecision - Decorate 27 RelaxedPrecision - Decorate 28 RelaxedPrecision - Decorate 32 RelaxedPrecision - Decorate 33 RelaxedPrecision - Decorate 38 RelaxedPrecision - Decorate 39 RelaxedPrecision - Decorate 43 RelaxedPrecision - Decorate 44 RelaxedPrecision - Decorate 48 RelaxedPrecision - Decorate 49 RelaxedPrecision - Decorate 53 RelaxedPrecision - Decorate 54 RelaxedPrecision - Decorate 55(shiftedii) RelaxedPrecision - Decorate 57(shiftedui) RelaxedPrecision - Decorate 59(shiftediu) RelaxedPrecision - Decorate 60(shifteduu) RelaxedPrecision - Decorate 61 RelaxedPrecision - Decorate 62 RelaxedPrecision - Decorate 68(c) RelaxedPrecision - Decorate 68(c) Location 0 - Decorate 72(usampler) RelaxedPrecision - Decorate 72(usampler) DescriptorSet 0 - Decorate 72(usampler) Binding 0 - Decorate 73 RelaxedPrecision - Decorate 77(tc) RelaxedPrecision - Decorate 77(tc) Location 2 - Decorate 78 RelaxedPrecision - Decorate 79 RelaxedPrecision - Decorate 80 RelaxedPrecision - Decorate 81 RelaxedPrecision - Decorate 85 RelaxedPrecision - Decorate 86 RelaxedPrecision - Decorate 88 RelaxedPrecision - Decorate 89 RelaxedPrecision - Decorate 90 RelaxedPrecision - Decorate 91 RelaxedPrecision - Decorate 92 RelaxedPrecision - Decorate 93 RelaxedPrecision - Decorate 97 RelaxedPrecision - Decorate 98 RelaxedPrecision - Decorate 101 RelaxedPrecision - Decorate 102 RelaxedPrecision - Decorate 105 RelaxedPrecision - Decorate 111(af) RelaxedPrecision - Decorate 112 RelaxedPrecision - Decorate 113 RelaxedPrecision - Decorate 116 RelaxedPrecision - Decorate 118(ai) RelaxedPrecision - Decorate 119 RelaxedPrecision - Decorate 120 RelaxedPrecision - Decorate 121 RelaxedPrecision - Decorate 122 RelaxedPrecision - Decorate 124 RelaxedPrecision - Decorate 125 RelaxedPrecision - Decorate 126 RelaxedPrecision - Decorate 127 RelaxedPrecision - Decorate 128 RelaxedPrecision - Decorate 129 RelaxedPrecision - Decorate 130 RelaxedPrecision - Decorate 131 RelaxedPrecision - Decorate 135 RelaxedPrecision - Decorate 136 RelaxedPrecision - Decorate 140 RelaxedPrecision - Decorate 141 RelaxedPrecision - Decorate 145 RelaxedPrecision - Decorate 146 RelaxedPrecision - Decorate 150 RelaxedPrecision - Decorate 151 RelaxedPrecision - Decorate 152(mask1) RelaxedPrecision - Decorate 154(mask2) RelaxedPrecision - Decorate 156(mask3) RelaxedPrecision - Decorate 157 RelaxedPrecision - Decorate 159 RelaxedPrecision - Decorate 160(mask4) RelaxedPrecision - Decorate 162 RelaxedPrecision - Decorate 163 RelaxedPrecision - Decorate 167 RelaxedPrecision - Decorate 168 RelaxedPrecision - Decorate 169 RelaxedPrecision - Decorate 170 RelaxedPrecision - Decorate 171 RelaxedPrecision - Decorate 175 RelaxedPrecision - Decorate 176 RelaxedPrecision - Decorate 177 RelaxedPrecision - Decorate 178 RelaxedPrecision - Decorate 179 RelaxedPrecision - Decorate 180 RelaxedPrecision - Decorate 184 RelaxedPrecision - Decorate 185 RelaxedPrecision - Decorate 186 RelaxedPrecision - Decorate 187 RelaxedPrecision - Decorate 188 RelaxedPrecision - Decorate 192 RelaxedPrecision - Decorate 193 RelaxedPrecision - Decorate 194 RelaxedPrecision - Decorate 195 RelaxedPrecision - Decorate 196 RelaxedPrecision - Decorate 197 RelaxedPrecision - Decorate 198 RelaxedPrecision - Decorate 202 RelaxedPrecision - Decorate 203 RelaxedPrecision - Decorate 206(f) RelaxedPrecision - Decorate 206(f) Location 1 - Decorate 208(v) RelaxedPrecision - Decorate 208(v) Flat - Decorate 208(v) Location 3 - Decorate 210(i) RelaxedPrecision - Decorate 210(i) Flat - Decorate 210(i) Location 4 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Function 6(int) - 9: 6(int) Constant 1 - 10: TypeInt 32 0 - 11: TypePointer Function 10(int) - 13: TypeVector 10(int) 2 - 14: TypePointer Input 13(ivec2) - 15(t): 14(ptr) Variable Input - 16: 10(int) Constant 1 - 17: TypePointer Input 10(int) - 20: 10(int) Constant 3 - 22: TypeBool - 23: 22(bool) ConstantTrue - 26: 6(int) Constant 2 - 31: 6(int) Constant 3 - 34: 22(bool) ConstantFalse - 37: 6(int) Constant 5 - 42: 6(int) Constant 7 - 47: 6(int) Constant 11 - 52: 6(int) Constant 13 - 56: 6(int) Constant 4294967295 - 58: 10(int) Constant 4194303 - 66: TypeVector 10(int) 4 - 67: TypePointer Output 66(ivec4) - 68(c): 67(ptr) Variable Output - 69: TypeImage 10(int) 2D sampled format:Unknown - 70: TypeSampledImage 69 - 71: TypePointer UniformConstant 70 - 72(usampler): 71(ptr) Variable UniformConstant - 74: TypeFloat 32 - 75: TypeVector 74(float) 2 - 76: TypePointer Input 75(fvec2) - 77(tc): 76(ptr) Variable Input - 87: 74(float) Constant 1065353216 - 99: 74(float) Constant 1073741824 - 100: 75(fvec2) ConstantComposite 99 99 - 103: 10(int) Constant 0 - 106: 10(int) Constant 4 - 110: TypePointer Function 74(float) - 114: TypePointer Function 22(bool) - 134: 6(int) Constant 17 - 139: 6(int) Constant 19 - 144: 6(int) Constant 23 - 149: 6(int) Constant 27 - 153: 10(int) Constant 161 - 155: 10(int) Constant 2576 - 158: 6(int) Constant 4 - 161: 10(int) Constant 2737 - 199: 10(int) Constant 4294967295 - 200: TypePointer Output 10(int) - 205: TypePointer Input 74(float) - 206(f): 205(ptr) Variable Input - 207: TypePointer Input 66(ivec4) - 208(v): 207(ptr) Variable Input - 209: TypePointer Input 6(int) - 210(i): 209(ptr) Variable Input - 211: TypePointer Private 22(bool) - 212(b): 211(ptr) Variable Private - 4(main): 2 Function None 3 - 5: Label - 8(count): 7(ptr) Variable Function - 12(u): 11(ptr) Variable Function - 55(shiftedii): 7(ptr) Variable Function - 57(shiftedui): 11(ptr) Variable Function - 59(shiftediu): 7(ptr) Variable Function - 60(shifteduu): 11(ptr) Variable Function - 111(af): 110(ptr) Variable Function - 115(ab): 114(ptr) Variable Function - 118(ai): 7(ptr) Variable Function - 152(mask1): 11(ptr) Variable Function - 154(mask2): 11(ptr) Variable Function - 156(mask3): 11(ptr) Variable Function - 160(mask4): 11(ptr) Variable Function - Store 8(count) 9 - 18: 17(ptr) AccessChain 15(t) 16 - 19: 10(int) Load 18 - 21: 10(int) IAdd 19 20 - Store 12(u) 21 - SelectionMerge 25 None - BranchConditional 23 24 25 - 24: Label - 27: 6(int) Load 8(count) - 28: 6(int) IMul 27 26 - Store 8(count) 28 - Branch 25 - 25: Label - SelectionMerge 30 None - BranchConditional 23 29 30 - 29: Label - 32: 6(int) Load 8(count) - 33: 6(int) IMul 32 31 - Store 8(count) 33 - Branch 30 - 30: Label - SelectionMerge 36 None - BranchConditional 34 35 36 - 35: Label - 38: 6(int) Load 8(count) - 39: 6(int) IMul 38 37 - Store 8(count) 39 - Branch 36 - 36: Label - SelectionMerge 41 None - BranchConditional 23 40 41 - 40: Label - 43: 6(int) Load 8(count) - 44: 6(int) IMul 43 42 - Store 8(count) 44 - Branch 41 - 41: Label - SelectionMerge 46 None - BranchConditional 23 45 46 - 45: Label - 48: 6(int) Load 8(count) - 49: 6(int) IMul 48 47 - Store 8(count) 49 - Branch 46 - 46: Label - SelectionMerge 51 None - BranchConditional 34 50 51 - 50: Label - 53: 6(int) Load 8(count) - 54: 6(int) IMul 53 52 - Store 8(count) 54 - Branch 51 - 51: Label - Store 55(shiftedii) 56 - Store 57(shiftedui) 58 - Store 59(shiftediu) 56 - Store 60(shifteduu) 58 - 61: 6(int) Load 55(shiftedii) - 62: 6(int) Load 59(shiftediu) - 63: 22(bool) IEqual 61 62 - SelectionMerge 65 None - BranchConditional 63 64 65 - 64: Label - 73: 70 Load 72(usampler) - 78: 75(fvec2) Load 77(tc) - 79: 66(ivec4) ImageSampleImplicitLod 73 78 - Store 68(c) 79 - Branch 65 - 65: Label - 80: 10(int) Load 57(shiftedui) - 81: 10(int) Load 60(shifteduu) - 82: 22(bool) IEqual 80 81 - SelectionMerge 84 None - BranchConditional 82 83 84 - 83: Label - 85: 70 Load 72(usampler) - 86: 75(fvec2) Load 77(tc) - 88: 75(fvec2) CompositeConstruct 87 87 - 89: 75(fvec2) FAdd 86 88 - 90: 66(ivec4) ImageSampleImplicitLod 85 89 - Store 68(c) 90 - Branch 84 - 84: Label - 91: 6(int) Load 55(shiftedii) - 92: 10(int) Load 57(shiftedui) - 93: 6(int) Bitcast 92 - 94: 22(bool) IEqual 91 93 - SelectionMerge 96 None - BranchConditional 94 95 96 - 95: Label - 97: 70 Load 72(usampler) - 98: 75(fvec2) Load 77(tc) - 101: 75(fvec2) FSub 98 100 - 102: 66(ivec4) ImageSampleImplicitLod 97 101 - Store 68(c) 102 - Branch 96 - 96: Label - 104: 17(ptr) AccessChain 15(t) 103 - 105: 10(int) Load 104 - 107: 22(bool) UGreaterThan 105 106 - SelectionMerge 109 None - BranchConditional 107 108 109 - 108: Label - 112: 10(int) Load 12(u) - 113: 74(float) ConvertUToF 112 - Store 111(af) 113 - 116: 10(int) Load 12(u) - 117: 22(bool) INotEqual 116 103 - Store 115(ab) 117 - 119: 10(int) Load 12(u) - 120: 6(int) Bitcast 119 - Store 118(ai) 120 - 121: 74(float) Load 111(af) - 122: 10(int) ConvertFToU 121 - 123: 22(bool) Load 115(ab) - 124: 10(int) Select 123 16 103 - 125: 6(int) Load 118(ai) - 126: 10(int) Bitcast 125 - 127: 6(int) Load 8(count) - 128: 10(int) Bitcast 127 - 129: 66(ivec4) CompositeConstruct 122 124 126 128 - 130: 66(ivec4) Load 68(c) - 131: 66(ivec4) IAdd 130 129 - Store 68(c) 131 - Branch 109 - 109: Label - SelectionMerge 133 None - BranchConditional 23 132 133 - 132: Label - 135: 6(int) Load 8(count) - 136: 6(int) IMul 135 134 - Store 8(count) 136 - Branch 133 - 133: Label - SelectionMerge 138 None - BranchConditional 34 137 138 - 137: Label - 140: 6(int) Load 8(count) - 141: 6(int) IMul 140 139 - Store 8(count) 141 - Branch 138 - 138: Label - SelectionMerge 143 None - BranchConditional 23 142 143 - 142: Label - 145: 6(int) Load 8(count) - 146: 6(int) IMul 145 144 - Store 8(count) 146 - Branch 143 - 143: Label - SelectionMerge 148 None - BranchConditional 23 147 148 - 147: Label - 150: 6(int) Load 8(count) - 151: 6(int) IMul 150 149 - Store 8(count) 151 - Branch 148 - 148: Label - Store 152(mask1) 153 - Store 154(mask2) 155 - 157: 10(int) Load 152(mask1) - 159: 10(int) ShiftLeftLogical 157 158 - Store 156(mask3) 159 - Store 160(mask4) 161 - 162: 10(int) Load 156(mask3) - 163: 10(int) Load 154(mask2) - 164: 22(bool) IEqual 162 163 - SelectionMerge 166 None - BranchConditional 164 165 166 - 165: Label - 167: 6(int) Load 8(count) - 168: 6(int) IMul 167 26 - Store 8(count) 168 - Branch 166 - 166: Label - 169: 10(int) Load 156(mask3) - 170: 10(int) Load 152(mask1) - 171: 10(int) BitwiseAnd 169 170 - 172: 22(bool) INotEqual 171 103 - SelectionMerge 174 None - BranchConditional 172 173 174 - 173: Label - 175: 6(int) Load 8(count) - 176: 6(int) IMul 175 31 - Store 8(count) 176 - Branch 174 - 174: Label - 177: 10(int) Load 152(mask1) - 178: 10(int) Load 156(mask3) - 179: 10(int) BitwiseOr 177 178 - 180: 10(int) Load 160(mask4) - 181: 22(bool) IEqual 179 180 - SelectionMerge 183 None - BranchConditional 181 182 183 - 182: Label - 184: 6(int) Load 8(count) - 185: 6(int) IMul 184 37 - Store 8(count) 185 - Branch 183 - 183: Label - 186: 10(int) Load 152(mask1) - 187: 10(int) Load 160(mask4) - 188: 10(int) BitwiseXor 186 187 - 189: 22(bool) IEqual 188 155 - SelectionMerge 191 None - BranchConditional 189 190 191 - 190: Label - 192: 6(int) Load 8(count) - 193: 6(int) IMul 192 42 - Store 8(count) 193 - Branch 191 - 191: Label - 194: 6(int) Load 8(count) - 195: 10(int) Bitcast 194 - 196: 66(ivec4) CompositeConstruct 195 195 195 195 - 197: 66(ivec4) Load 68(c) - 198: 66(ivec4) IAdd 197 196 - Store 68(c) 198 - 201: 200(ptr) AccessChain 68(c) 103 - 202: 10(int) Load 201 - 203: 10(int) IAdd 202 199 - 204: 200(ptr) AccessChain 68(c) 103 - Store 204 203 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.uniformArray.frag.out b/deps/glslang/Test/baseResults/spv.uniformArray.frag.out deleted file mode 100644 index fa66f2bb..00000000 --- a/deps/glslang/Test/baseResults/spv.uniformArray.frag.out +++ /dev/null @@ -1,90 +0,0 @@ -spv.uniformArray.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 60 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 14 25 43 54 - ExecutionMode 4 OriginUpperLeft - Source GLSL 140 - Name 4 "main" - Name 9 "texColor" - Name 14 "color" - Name 25 "inColor" - Name 43 "alpha" - Name 54 "gl_FragColor" - Name 59 "texSampler2D" - Decorate 14(color) Location 1 - Decorate 25(inColor) Location 0 - Decorate 43(alpha) Location 7 - Decorate 54(gl_FragColor) Location 0 - Decorate 59(texSampler2D) DescriptorSet 0 - Decorate 59(texSampler2D) Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: TypeInt 32 0 - 11: 10(int) Constant 6 - 12: TypeArray 7(fvec4) 11 - 13: TypePointer Input 12 - 14(color): 13(ptr) Variable Input - 15: TypeInt 32 1 - 16: 15(int) Constant 1 - 17: TypePointer Input 7(fvec4) - 23: TypeVector 6(float) 3 - 24: TypePointer Input 23(fvec3) - 25(inColor): 24(ptr) Variable Input - 30: 10(int) Constant 0 - 31: TypePointer Function 6(float) - 34: 10(int) Constant 1 - 37: 10(int) Constant 2 - 40: 10(int) Constant 16 - 41: TypeArray 6(float) 40 - 42: TypePointer Input 41 - 43(alpha): 42(ptr) Variable Input - 44: 15(int) Constant 12 - 45: TypePointer Input 6(float) - 48: 10(int) Constant 3 - 53: TypePointer Output 7(fvec4) -54(gl_FragColor): 53(ptr) Variable Output - 56: TypeImage 6(float) 2D sampled format:Unknown - 57: TypeSampledImage 56 - 58: TypePointer UniformConstant 57 -59(texSampler2D): 58(ptr) Variable UniformConstant - 4(main): 2 Function None 3 - 5: Label - 9(texColor): 8(ptr) Variable Function - 18: 17(ptr) AccessChain 14(color) 16 - 19: 7(fvec4) Load 18 - 20: 17(ptr) AccessChain 14(color) 16 - 21: 7(fvec4) Load 20 - 22: 7(fvec4) FAdd 19 21 - Store 9(texColor) 22 - 26: 23(fvec3) Load 25(inColor) - 27: 7(fvec4) Load 9(texColor) - 28: 23(fvec3) VectorShuffle 27 27 0 1 2 - 29: 23(fvec3) FAdd 28 26 - 32: 31(ptr) AccessChain 9(texColor) 30 - 33: 6(float) CompositeExtract 29 0 - Store 32 33 - 35: 31(ptr) AccessChain 9(texColor) 34 - 36: 6(float) CompositeExtract 29 1 - Store 35 36 - 38: 31(ptr) AccessChain 9(texColor) 37 - 39: 6(float) CompositeExtract 29 2 - Store 38 39 - 46: 45(ptr) AccessChain 43(alpha) 44 - 47: 6(float) Load 46 - 49: 31(ptr) AccessChain 9(texColor) 48 - 50: 6(float) Load 49 - 51: 6(float) FAdd 50 47 - 52: 31(ptr) AccessChain 9(texColor) 48 - Store 52 51 - 55: 7(fvec4) Load 9(texColor) - Store 54(gl_FragColor) 55 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.uniformInitializer.frag.out b/deps/glslang/Test/baseResults/spv.uniformInitializer.frag.out deleted file mode 100644 index 63595aee..00000000 --- a/deps/glslang/Test/baseResults/spv.uniformInitializer.frag.out +++ /dev/null @@ -1,35 +0,0 @@ -spv.uniformInitializer.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 16 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 9 - ExecutionMode 4 OriginLowerLeft - Source GLSL 450 - Name 4 "main" - Name 9 "color" - Name 14 "in_color" - Decorate 9(color) Location 0 - Decorate 14(in_color) Location 0 - Decorate 14(in_color) DescriptorSet 0 - Decorate 14(in_color) Binding 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: 6(float) Constant 0 - 11: 6(float) Constant 1065353216 - 12: 7(fvec4) ConstantComposite 10 11 10 11 - 13: TypePointer UniformConstant 7(fvec4) - 14(in_color): 13(ptr) Variable UniformConstant 12 - 4(main): 2 Function None 3 - 5: Label - 15: 7(fvec4) Load 14(in_color) - Store 9(color) 15 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.uniformInitializerSpecConstant.frag.out b/deps/glslang/Test/baseResults/spv.uniformInitializerSpecConstant.frag.out deleted file mode 100644 index 1cd053c1..00000000 --- a/deps/glslang/Test/baseResults/spv.uniformInitializerSpecConstant.frag.out +++ /dev/null @@ -1,6 +0,0 @@ -spv.uniformInitializerSpecConstant.frag -ERROR: 0:9: '=' : uniform initializers must be constant 'layout( location=4) uniform float' -ERROR: 1 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.uniformInitializerStruct.frag.out b/deps/glslang/Test/baseResults/spv.uniformInitializerStruct.frag.out deleted file mode 100644 index 5ce854dc..00000000 --- a/deps/glslang/Test/baseResults/spv.uniformInitializerStruct.frag.out +++ /dev/null @@ -1,98 +0,0 @@ -spv.uniformInitializerStruct.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 63 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 9 - ExecutionMode 4 OriginLowerLeft - Source GLSL 450 - Name 4 "main" - Name 9 "color" - Name 15 "i" - Name 26 "" - MemberName 26 0 "r" - MemberName 26 1 "g" - MemberName 26 2 "b" - Name 34 "parts" - Decorate 9(color) Location 0 - Decorate 34(parts) Location 0 - Decorate 34(parts) DescriptorSet 0 - Decorate 34(parts) Binding 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: 6(float) Constant 0 - 11: 6(float) Constant 1065353216 - 12: 7(fvec4) ConstantComposite 10 10 10 11 - 13: TypeInt 32 1 - 14: TypePointer Function 13(int) - 16: 13(int) Constant 0 - 23: 13(int) Constant 2 - 24: TypeBool - 26: TypeStruct 6(float) 6(float) 6(float) - 27: TypeInt 32 0 - 28: 27(int) Constant 2 - 29: TypeArray 26(struct) 28 - 30: 26(struct) ConstantComposite 11 11 11 - 31: 26(struct) ConstantComposite 10 11 10 - 32: 29 ConstantComposite 30 31 - 33: TypePointer UniformConstant 29 - 34(parts): 33(ptr) Variable UniformConstant 32 - 36: TypePointer UniformConstant 6(float) - 39: 27(int) Constant 0 - 40: TypePointer Output 6(float) - 46: 13(int) Constant 1 - 49: 27(int) Constant 1 - 4(main): 2 Function None 3 - 5: Label - 15(i): 14(ptr) Variable Function - Store 9(color) 12 - Store 15(i) 16 - Branch 17 - 17: Label - LoopMerge 19 20 None - Branch 21 - 21: Label - 22: 13(int) Load 15(i) - 25: 24(bool) SLessThan 22 23 - BranchConditional 25 18 19 - 18: Label - 35: 13(int) Load 15(i) - 37: 36(ptr) AccessChain 34(parts) 35 16 - 38: 6(float) Load 37 - 41: 40(ptr) AccessChain 9(color) 39 - 42: 6(float) Load 41 - 43: 6(float) FAdd 42 38 - 44: 40(ptr) AccessChain 9(color) 39 - Store 44 43 - 45: 13(int) Load 15(i) - 47: 36(ptr) AccessChain 34(parts) 45 46 - 48: 6(float) Load 47 - 50: 40(ptr) AccessChain 9(color) 49 - 51: 6(float) Load 50 - 52: 6(float) FAdd 51 48 - 53: 40(ptr) AccessChain 9(color) 49 - Store 53 52 - 54: 13(int) Load 15(i) - 55: 36(ptr) AccessChain 34(parts) 54 23 - 56: 6(float) Load 55 - 57: 40(ptr) AccessChain 9(color) 28 - 58: 6(float) Load 57 - 59: 6(float) FAdd 58 56 - 60: 40(ptr) AccessChain 9(color) 28 - Store 60 59 - Branch 20 - 20: Label - 61: 13(int) Load 15(i) - 62: 13(int) IAdd 61 46 - Store 15(i) 62 - Branch 17 - 19: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.unit1.frag.out b/deps/glslang/Test/baseResults/spv.unit1.frag.out deleted file mode 100644 index 02ddfece..00000000 --- a/deps/glslang/Test/baseResults/spv.unit1.frag.out +++ /dev/null @@ -1,300 +0,0 @@ -spv.unit1.frag -Shader version: 460 -gl_FragCoord origin is upper left -0:? Sequence -0:10 Function Definition: main( ( global void) -0:10 Function Parameters: -0:12 Sequence -0:12 move second child to first child ( temp highp float) -0:12 'f' ( global highp float) -0:12 Constant: -0:12 10.000000 -0:13 Sequence -0:13 move second child to first child ( temp highp float) -0:13 'g' ( temp highp float) -0:13 Function Call: foo( ( global highp float) -0:14 add second child into first child ( temp highp float) -0:14 'f' ( global highp float) -0:14 'g' ( temp highp float) -0:15 add second child into first child ( temp highp float) -0:15 'f' ( global highp float) -0:15 direct index ( temp highp float) -0:15 'gl_FragCoord' ( gl_FragCoord highp 4-component vector of float FragCoord) -0:15 Constant: -0:15 1 (const int) -0:? Linker Objects -0:? 'f' ( global highp float) -0:? 'a1' ( global highp float) -0:? 'cout' ( out highp float) - -spv.unit2.frag -Shader version: 410 -gl_FragCoord origin is upper left -0:? Sequence -0:12 Function Definition: foo( ( global highp float) -0:12 Function Parameters: -0:14 Sequence -0:14 Sequence -0:14 move second child to first child ( temp highp float) -0:14 'h2' ( temp highp float) -0:14 add ( temp highp float) -0:14 component-wise multiply ( temp highp float) -0:14 Constant: -0:14 2.000000 -0:14 'f' ( global highp float) -0:14 'cin' ( smooth in highp float) -0:15 Sequence -0:15 move second child to first child ( temp highp float) -0:15 'g2' ( temp highp float) -0:15 Function Call: bar( ( global highp float) -0:16 Branch: Return with expression -0:16 add ( temp highp float) -0:16 add ( temp highp float) -0:16 'h2' ( temp highp float) -0:16 'g2' ( temp highp float) -0:16 direct index ( temp highp float) -0:16 'gl_FragCoord' ( gl_FragCoord highp 4-component vector of float FragCoord) -0:16 Constant: -0:16 1 (const int) -0:? Linker Objects -0:? 'a2' ( global highp float) -0:? 'f' ( global highp float) -0:? 'cout' ( out highp float) -0:? 'cin' ( smooth in highp float) - -spv.unit3.frag -Shader version: 460 -gl_FragCoord origin is upper left -0:? Sequence -0:4 Sequence -0:4 move second child to first child ( temp highp float) -0:4 'h3' ( global highp float) -0:4 Constant: -0:4 3.000000 -0:9 Function Definition: bar( ( global highp float) -0:9 Function Parameters: -0:11 Sequence -0:11 multiply second child into first child ( temp highp float) -0:11 'h3' ( global highp float) -0:11 'f' ( global highp float) -0:12 Sequence -0:12 move second child to first child ( temp highp float) -0:12 'g3' ( temp highp float) -0:12 component-wise multiply ( temp highp float) -0:12 Constant: -0:12 2.000000 -0:12 'h3' ( global highp float) -0:13 move second child to first child ( temp highp float) -0:13 'cout' ( out highp float) -0:13 'g3' ( temp highp float) -0:14 Branch: Return with expression -0:14 add ( temp highp float) -0:14 add ( temp highp float) -0:14 'h3' ( global highp float) -0:14 'g3' ( temp highp float) -0:14 direct index ( temp highp float) -0:14 'gl_FragCoord' ( gl_FragCoord highp 4-component vector of float FragCoord) -0:14 Constant: -0:14 1 (const int) -0:? Linker Objects -0:? 'f' ( global highp float) -0:? 'h3' ( global highp float) -0:? 'cout' ( out highp float) -0:? 'cin' ( smooth in highp float) - - -Linked fragment stage: - - -Shader version: 460 -gl_FragCoord origin is upper left -0:? Sequence -0:10 Function Definition: main( ( global void) -0:10 Function Parameters: -0:12 Sequence -0:12 move second child to first child ( temp highp float) -0:12 'f' ( global highp float) -0:12 Constant: -0:12 10.000000 -0:13 Sequence -0:13 move second child to first child ( temp highp float) -0:13 'g' ( temp highp float) -0:13 Function Call: foo( ( global highp float) -0:14 add second child into first child ( temp highp float) -0:14 'f' ( global highp float) -0:14 'g' ( temp highp float) -0:15 add second child into first child ( temp highp float) -0:15 'f' ( global highp float) -0:15 direct index ( temp highp float) -0:15 'gl_FragCoord' ( gl_FragCoord highp 4-component vector of float FragCoord) -0:15 Constant: -0:15 1 (const int) -0:12 Function Definition: foo( ( global highp float) -0:12 Function Parameters: -0:14 Sequence -0:14 Sequence -0:14 move second child to first child ( temp highp float) -0:14 'h2' ( temp highp float) -0:14 add ( temp highp float) -0:14 component-wise multiply ( temp highp float) -0:14 Constant: -0:14 2.000000 -0:14 'f' ( global highp float) -0:14 'cin' ( smooth in highp float) -0:15 Sequence -0:15 move second child to first child ( temp highp float) -0:15 'g2' ( temp highp float) -0:15 Function Call: bar( ( global highp float) -0:16 Branch: Return with expression -0:16 add ( temp highp float) -0:16 add ( temp highp float) -0:16 'h2' ( temp highp float) -0:16 'g2' ( temp highp float) -0:16 direct index ( temp highp float) -0:16 'gl_FragCoord' ( gl_FragCoord highp 4-component vector of float FragCoord) -0:16 Constant: -0:16 1 (const int) -0:4 Sequence -0:4 move second child to first child ( temp highp float) -0:4 'h3' ( global highp float) -0:4 Constant: -0:4 3.000000 -0:9 Function Definition: bar( ( global highp float) -0:9 Function Parameters: -0:11 Sequence -0:11 multiply second child into first child ( temp highp float) -0:11 'h3' ( global highp float) -0:11 'f' ( global highp float) -0:12 Sequence -0:12 move second child to first child ( temp highp float) -0:12 'g3' ( temp highp float) -0:12 component-wise multiply ( temp highp float) -0:12 Constant: -0:12 2.000000 -0:12 'h3' ( global highp float) -0:13 move second child to first child ( temp highp float) -0:13 'cout' ( out highp float) -0:13 'g3' ( temp highp float) -0:14 Branch: Return with expression -0:14 add ( temp highp float) -0:14 add ( temp highp float) -0:14 'h3' ( global highp float) -0:14 'g3' ( temp highp float) -0:14 direct index ( temp highp float) -0:14 'gl_FragCoord' ( gl_FragCoord highp 4-component vector of float FragCoord) -0:14 Constant: -0:14 1 (const int) -0:? Linker Objects -0:? 'f' ( global highp float) -0:? 'a1' ( global highp float) -0:? 'cout' ( out highp float) -0:? 'a2' ( global highp float) -0:? 'cin' ( smooth in highp float) -0:? 'h3' ( global highp float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 69 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 25 37 57 - ExecutionMode 4 OriginUpperLeft - Source GLSL 460 - Name 4 "main" - Name 8 "foo(" - Name 10 "bar(" - Name 13 "h3" - Name 15 "f" - Name 18 "g" - Name 25 "gl_FragCoord" - Name 33 "h2" - Name 37 "cin" - Name 40 "g2" - Name 53 "g3" - Name 57 "cout" - Name 67 "a1" - Name 68 "a2" - Decorate 25(gl_FragCoord) BuiltIn FragCoord - Decorate 37(cin) Location 0 - Decorate 57(cout) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeFunction 6(float) - 12: TypePointer Private 6(float) - 13(h3): 12(ptr) Variable Private - 14: 6(float) Constant 1077936128 - 15(f): 12(ptr) Variable Private - 16: 6(float) Constant 1092616192 - 17: TypePointer Function 6(float) - 23: TypeVector 6(float) 4 - 24: TypePointer Input 23(fvec4) -25(gl_FragCoord): 24(ptr) Variable Input - 26: TypeInt 32 0 - 27: 26(int) Constant 1 - 28: TypePointer Input 6(float) - 34: 6(float) Constant 1073741824 - 37(cin): 28(ptr) Variable Input - 56: TypePointer Output 6(float) - 57(cout): 56(ptr) Variable Output - 67(a1): 12(ptr) Variable Private - 68(a2): 12(ptr) Variable Private - 4(main): 2 Function None 3 - 5: Label - 18(g): 17(ptr) Variable Function - Store 13(h3) 14 - Store 15(f) 16 - 19: 6(float) FunctionCall 8(foo() - Store 18(g) 19 - 20: 6(float) Load 18(g) - 21: 6(float) Load 15(f) - 22: 6(float) FAdd 21 20 - Store 15(f) 22 - 29: 28(ptr) AccessChain 25(gl_FragCoord) 27 - 30: 6(float) Load 29 - 31: 6(float) Load 15(f) - 32: 6(float) FAdd 31 30 - Store 15(f) 32 - Return - FunctionEnd - 8(foo(): 6(float) Function None 7 - 9: Label - 33(h2): 17(ptr) Variable Function - 40(g2): 17(ptr) Variable Function - 35: 6(float) Load 15(f) - 36: 6(float) FMul 34 35 - 38: 6(float) Load 37(cin) - 39: 6(float) FAdd 36 38 - Store 33(h2) 39 - 41: 6(float) FunctionCall 10(bar() - Store 40(g2) 41 - 42: 6(float) Load 33(h2) - 43: 6(float) Load 40(g2) - 44: 6(float) FAdd 42 43 - 45: 28(ptr) AccessChain 25(gl_FragCoord) 27 - 46: 6(float) Load 45 - 47: 6(float) FAdd 44 46 - ReturnValue 47 - FunctionEnd - 10(bar(): 6(float) Function None 7 - 11: Label - 53(g3): 17(ptr) Variable Function - 50: 6(float) Load 15(f) - 51: 6(float) Load 13(h3) - 52: 6(float) FMul 51 50 - Store 13(h3) 52 - 54: 6(float) Load 13(h3) - 55: 6(float) FMul 34 54 - Store 53(g3) 55 - 58: 6(float) Load 53(g3) - Store 57(cout) 58 - 59: 6(float) Load 13(h3) - 60: 6(float) Load 53(g3) - 61: 6(float) FAdd 59 60 - 62: 28(ptr) AccessChain 25(gl_FragCoord) 27 - 63: 6(float) Load 62 - 64: 6(float) FAdd 61 63 - ReturnValue 64 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.variableArrayIndex.frag.out b/deps/glslang/Test/baseResults/spv.variableArrayIndex.frag.out deleted file mode 100644 index ee57d43d..00000000 --- a/deps/glslang/Test/baseResults/spv.variableArrayIndex.frag.out +++ /dev/null @@ -1,150 +0,0 @@ -spv.variableArrayIndex.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 93 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 10 20 34 36 54 63 - ExecutionMode 4 OriginUpperLeft - Source GLSL 400 - Name 4 "main" - Name 8 "iLocal" - Name 10 "Count" - Name 13 "lunarStruct1" - MemberName 13(lunarStruct1) 0 "i" - MemberName 13(lunarStruct1) 1 "f" - Name 14 "lunarStruct2" - MemberName 14(lunarStruct2) 0 "i" - MemberName 14(lunarStruct2) 1 "f" - MemberName 14(lunarStruct2) 2 "s1_1" - Name 18 "lunarStruct3" - MemberName 18(lunarStruct3) 0 "s2_1" - MemberName 18(lunarStruct3) 1 "i" - MemberName 18(lunarStruct3) 2 "f" - MemberName 18(lunarStruct3) 3 "s1_1" - Name 20 "foo3" - Name 30 "scale" - Name 34 "foo2" - Name 36 "foo" - Name 54 "gl_FragColor" - Name 59 "samp2D" - Name 63 "coord" - Name 69 "constructed" - Decorate 10(Count) Flat - Decorate 10(Count) Location 39 - Decorate 20(foo3) Flat - Decorate 20(foo3) Location 23 - Decorate 34(foo2) Flat - Decorate 34(foo2) Location 3 - Decorate 36(foo) Flat - Decorate 36(foo) Location 1 - Decorate 54(gl_FragColor) Location 0 - Decorate 59(samp2D) DescriptorSet 0 - Decorate 59(samp2D) Binding 0 - Decorate 63(coord) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Function 6(int) - 9: TypePointer Input 6(int) - 10(Count): 9(ptr) Variable Input - 12: TypeFloat 32 -13(lunarStruct1): TypeStruct 6(int) 12(float) -14(lunarStruct2): TypeStruct 6(int) 12(float) 13(lunarStruct1) - 15: TypeInt 32 0 - 16: 15(int) Constant 3 - 17: TypeArray 14(lunarStruct2) 16 -18(lunarStruct3): TypeStruct 17 6(int) 12(float) 13(lunarStruct1) - 19: TypePointer Input 18(lunarStruct3) - 20(foo3): 19(ptr) Variable Input - 21: 6(int) Constant 0 - 22: 6(int) Constant 1 - 25: TypeBool - 29: TypePointer Function 12(float) - 31: 15(int) Constant 5 - 32: TypeArray 14(lunarStruct2) 31 - 33: TypePointer Input 32 - 34(foo2): 33(ptr) Variable Input - 35: TypePointer Input 13(lunarStruct1) - 36(foo): 35(ptr) Variable Input - 41: 6(int) Constant 2 - 46: TypePointer Input 12(float) - 52: TypeVector 12(float) 4 - 53: TypePointer Output 52(fvec4) -54(gl_FragColor): 53(ptr) Variable Output - 56: TypeImage 12(float) 2D sampled format:Unknown - 57: TypeSampledImage 56 - 58: TypePointer UniformConstant 57 - 59(samp2D): 58(ptr) Variable UniformConstant - 61: TypeVector 12(float) 2 - 62: TypePointer Input 61(fvec2) - 63(coord): 62(ptr) Variable Input - 67: TypeArray 61(fvec2) 16 - 68: TypePointer Function 67 - 73: 12(float) Constant 1065353216 - 74: 12(float) Constant 1073741824 - 75: 61(fvec2) ConstantComposite 73 74 - 79: TypePointer Function 61(fvec2) - 4(main): 2 Function None 3 - 5: Label - 8(iLocal): 7(ptr) Variable Function - 30(scale): 29(ptr) Variable Function - 69(constructed): 68(ptr) Variable Function - 11: 6(int) Load 10(Count) - Store 8(iLocal) 11 - 23: 9(ptr) AccessChain 20(foo3) 21 22 21 - 24: 6(int) Load 23 - 26: 25(bool) SGreaterThan 24 21 - SelectionMerge 28 None - BranchConditional 26 27 49 - 27: Label - 37: 9(ptr) AccessChain 36(foo) 21 - 38: 6(int) Load 37 - 39: 9(ptr) AccessChain 20(foo3) 21 38 21 - 40: 6(int) Load 39 - 42: 6(int) IAdd 40 41 - 43: 6(int) Load 8(iLocal) - 44: 6(int) IAdd 43 22 - Store 8(iLocal) 44 - 45: 6(int) IAdd 42 44 - 47: 46(ptr) AccessChain 34(foo2) 45 41 22 - 48: 12(float) Load 47 - Store 30(scale) 48 - Branch 28 - 49: Label - 50: 46(ptr) AccessChain 20(foo3) 21 21 41 22 - 51: 12(float) Load 50 - Store 30(scale) 51 - Branch 28 - 28: Label - 55: 12(float) Load 30(scale) - 60: 57 Load 59(samp2D) - 64: 61(fvec2) Load 63(coord) - 65: 52(fvec4) ImageSampleImplicitLod 60 64 - 66: 52(fvec4) VectorTimesScalar 65 55 - Store 54(gl_FragColor) 66 - 70: 61(fvec2) Load 63(coord) - 71: 12(float) Load 30(scale) - 72: 61(fvec2) CompositeConstruct 71 71 - 76: 67 CompositeConstruct 70 72 75 - Store 69(constructed) 76 - 77: 9(ptr) AccessChain 36(foo) 21 - 78: 6(int) Load 77 - 80: 79(ptr) AccessChain 69(constructed) 78 - 81: 61(fvec2) Load 80 - 82: 9(ptr) AccessChain 36(foo) 21 - 83: 6(int) Load 82 - 84: 79(ptr) AccessChain 69(constructed) 83 - 85: 61(fvec2) Load 84 - 86: 12(float) CompositeExtract 81 0 - 87: 12(float) CompositeExtract 81 1 - 88: 12(float) CompositeExtract 85 0 - 89: 12(float) CompositeExtract 85 1 - 90: 52(fvec4) CompositeConstruct 86 87 88 89 - 91: 52(fvec4) Load 54(gl_FragColor) - 92: 52(fvec4) FAdd 91 90 - Store 54(gl_FragColor) 92 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.varyingArray.frag.out b/deps/glslang/Test/baseResults/spv.varyingArray.frag.out deleted file mode 100644 index 1e6334ad..00000000 --- a/deps/glslang/Test/baseResults/spv.varyingArray.frag.out +++ /dev/null @@ -1,91 +0,0 @@ -spv.varyingArray.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 61 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 19 34 39 45 48 - ExecutionMode 4 OriginUpperLeft - Source GLSL 140 - Name 4 "main" - Name 9 "texColor" - Name 13 "texSampler2D" - Name 19 "TexCoord" - Name 34 "color" - Name 39 "alpha" - Name 45 "gl_FragColor" - Name 48 "foo" - Decorate 13(texSampler2D) DescriptorSet 0 - Decorate 13(texSampler2D) Binding 0 - Decorate 19(TexCoord) Location 2 - Decorate 34(color) Location 0 - Decorate 39(alpha) Location 1 - Decorate 45(gl_FragColor) Location 0 - Decorate 48(foo) Location 8 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: TypeImage 6(float) 2D sampled format:Unknown - 11: TypeSampledImage 10 - 12: TypePointer UniformConstant 11 -13(texSampler2D): 12(ptr) Variable UniformConstant - 15: TypeInt 32 0 - 16: 15(int) Constant 6 - 17: TypeArray 7(fvec4) 16 - 18: TypePointer Input 17 - 19(TexCoord): 18(ptr) Variable Input - 20: TypeInt 32 1 - 21: 20(int) Constant 4 - 22: TypePointer Input 7(fvec4) - 25: 20(int) Constant 5 - 29: TypeVector 6(float) 2 - 34(color): 22(ptr) Variable Input - 38: TypePointer Input 6(float) - 39(alpha): 38(ptr) Variable Input - 41: 15(int) Constant 3 - 42: TypePointer Function 6(float) - 44: TypePointer Output 7(fvec4) -45(gl_FragColor): 44(ptr) Variable Output - 46: TypeArray 7(fvec4) 41 - 47: TypePointer Input 46 - 48(foo): 47(ptr) Variable Input - 49: 20(int) Constant 1 - 52: 20(int) Constant 0 - 4(main): 2 Function None 3 - 5: Label - 9(texColor): 8(ptr) Variable Function - 14: 11 Load 13(texSampler2D) - 23: 22(ptr) AccessChain 19(TexCoord) 21 - 24: 7(fvec4) Load 23 - 26: 22(ptr) AccessChain 19(TexCoord) 25 - 27: 7(fvec4) Load 26 - 28: 7(fvec4) FAdd 24 27 - 30: 6(float) CompositeExtract 28 0 - 31: 6(float) CompositeExtract 28 1 - 32: 29(fvec2) CompositeConstruct 30 31 - 33: 7(fvec4) ImageSampleImplicitLod 14 32 - Store 9(texColor) 33 - 35: 7(fvec4) Load 34(color) - 36: 7(fvec4) Load 9(texColor) - 37: 7(fvec4) FAdd 36 35 - Store 9(texColor) 37 - 40: 6(float) Load 39(alpha) - 43: 42(ptr) AccessChain 9(texColor) 41 - Store 43 40 - 50: 22(ptr) AccessChain 48(foo) 49 - 51: 7(fvec4) Load 50 - 53: 22(ptr) AccessChain 19(TexCoord) 52 - 54: 7(fvec4) Load 53 - 55: 7(fvec4) FAdd 51 54 - 56: 22(ptr) AccessChain 19(TexCoord) 21 - 57: 7(fvec4) Load 56 - 58: 7(fvec4) FAdd 55 57 - 59: 7(fvec4) Load 9(texColor) - 60: 7(fvec4) FAdd 58 59 - Store 45(gl_FragColor) 60 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.varyingArrayIndirect.frag.out b/deps/glslang/Test/baseResults/spv.varyingArrayIndirect.frag.out deleted file mode 100644 index ac9d192b..00000000 --- a/deps/glslang/Test/baseResults/spv.varyingArrayIndirect.frag.out +++ /dev/null @@ -1,106 +0,0 @@ -spv.varyingArrayIndirect.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 70 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 19 22 30 31 45 50 56 - ExecutionMode 4 OriginUpperLeft - Source GLSL 140 - Name 4 "main" - Name 9 "texColor" - Name 13 "texSampler2D" - Name 19 "userIn" - Name 22 "b" - Name 30 "TexCoord" - Name 31 "a" - Name 45 "color" - Name 50 "alpha" - Name 56 "gl_FragColor" - Decorate 13(texSampler2D) DescriptorSet 0 - Decorate 13(texSampler2D) Binding 0 - Decorate 19(userIn) Location 8 - Decorate 22(b) Flat - Decorate 22(b) Location 11 - Decorate 30(TexCoord) Location 2 - Decorate 31(a) Flat - Decorate 31(a) Location 10 - Decorate 45(color) Location 0 - Decorate 50(alpha) Location 1 - Decorate 56(gl_FragColor) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: TypeImage 6(float) 2D sampled format:Unknown - 11: TypeSampledImage 10 - 12: TypePointer UniformConstant 11 -13(texSampler2D): 12(ptr) Variable UniformConstant - 15: TypeInt 32 0 - 16: 15(int) Constant 2 - 17: TypeArray 7(fvec4) 16 - 18: TypePointer Input 17 - 19(userIn): 18(ptr) Variable Input - 20: TypeInt 32 1 - 21: TypePointer Input 20(int) - 22(b): 21(ptr) Variable Input - 24: TypePointer Input 7(fvec4) - 27: 15(int) Constant 6 - 28: TypeArray 7(fvec4) 27 - 29: TypePointer Input 28 - 30(TexCoord): 29(ptr) Variable Input - 31(a): 21(ptr) Variable Input - 36: 20(int) Constant 5 - 40: TypeVector 6(float) 2 - 45(color): 24(ptr) Variable Input - 49: TypePointer Input 6(float) - 50(alpha): 49(ptr) Variable Input - 52: 15(int) Constant 3 - 53: TypePointer Function 6(float) - 55: TypePointer Output 7(fvec4) -56(gl_FragColor): 55(ptr) Variable Output - 57: 20(int) Constant 0 - 4(main): 2 Function None 3 - 5: Label - 9(texColor): 8(ptr) Variable Function - 14: 11 Load 13(texSampler2D) - 23: 20(int) Load 22(b) - 25: 24(ptr) AccessChain 19(userIn) 23 - 26: 7(fvec4) Load 25 - 32: 20(int) Load 31(a) - 33: 24(ptr) AccessChain 30(TexCoord) 32 - 34: 7(fvec4) Load 33 - 35: 7(fvec4) FAdd 26 34 - 37: 24(ptr) AccessChain 30(TexCoord) 36 - 38: 7(fvec4) Load 37 - 39: 7(fvec4) FAdd 35 38 - 41: 6(float) CompositeExtract 39 0 - 42: 6(float) CompositeExtract 39 1 - 43: 40(fvec2) CompositeConstruct 41 42 - 44: 7(fvec4) ImageSampleImplicitLod 14 43 - Store 9(texColor) 44 - 46: 7(fvec4) Load 45(color) - 47: 7(fvec4) Load 9(texColor) - 48: 7(fvec4) FAdd 47 46 - Store 9(texColor) 48 - 51: 6(float) Load 50(alpha) - 54: 53(ptr) AccessChain 9(texColor) 52 - Store 54 51 - 58: 24(ptr) AccessChain 30(TexCoord) 57 - 59: 7(fvec4) Load 58 - 60: 20(int) Load 22(b) - 61: 24(ptr) AccessChain 30(TexCoord) 60 - 62: 7(fvec4) Load 61 - 63: 7(fvec4) FAdd 59 62 - 64: 7(fvec4) Load 9(texColor) - 65: 7(fvec4) FAdd 63 64 - 66: 20(int) Load 31(a) - 67: 24(ptr) AccessChain 19(userIn) 66 - 68: 7(fvec4) Load 67 - 69: 7(fvec4) FAdd 65 68 - Store 56(gl_FragColor) 69 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.vecMatConstruct.frag.out b/deps/glslang/Test/baseResults/spv.vecMatConstruct.frag.out deleted file mode 100644 index bfe5ae76..00000000 --- a/deps/glslang/Test/baseResults/spv.vecMatConstruct.frag.out +++ /dev/null @@ -1,87 +0,0 @@ -spv.vecMatConstruct.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 62 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - Name 4 "main" - Name 9 "v2" - Name 13 "m" - Name 19 "v3" - Name 27 "v4" - Name 37 "iv2" - Name 45 "iv3" - Name 54 "iv4" - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 2 - 8: TypePointer Function 7(fvec2) - 10: TypeVector 6(float) 3 - 11: TypeMatrix 10(fvec3) 4 - 12: TypePointer Function 11 - 18: TypePointer Function 10(fvec3) - 25: TypeVector 6(float) 4 - 26: TypePointer Function 25(fvec4) - 34: TypeInt 32 1 - 35: TypeVector 34(int) 2 - 36: TypePointer Function 35(ivec2) - 43: TypeVector 34(int) 3 - 44: TypePointer Function 43(ivec3) - 52: TypeVector 34(int) 4 - 53: TypePointer Function 52(ivec4) - 4(main): 2 Function None 3 - 5: Label - 9(v2): 8(ptr) Variable Function - 13(m): 12(ptr) Variable Function - 19(v3): 18(ptr) Variable Function - 27(v4): 26(ptr) Variable Function - 37(iv2): 36(ptr) Variable Function - 45(iv3): 44(ptr) Variable Function - 54(iv4): 53(ptr) Variable Function - 14: 11 Load 13(m) - 15: 6(float) CompositeExtract 14 0 0 - 16: 6(float) CompositeExtract 14 0 1 - 17: 7(fvec2) CompositeConstruct 15 16 - Store 9(v2) 17 - 20: 11 Load 13(m) - 21: 6(float) CompositeExtract 20 0 0 - 22: 6(float) CompositeExtract 20 0 1 - 23: 6(float) CompositeExtract 20 0 2 - 24: 10(fvec3) CompositeConstruct 21 22 23 - Store 19(v3) 24 - 28: 11 Load 13(m) - 29: 6(float) CompositeExtract 28 0 0 - 30: 6(float) CompositeExtract 28 0 1 - 31: 6(float) CompositeExtract 28 0 2 - 32: 6(float) CompositeExtract 28 1 0 - 33: 25(fvec4) CompositeConstruct 29 30 31 32 - Store 27(v4) 33 - 38: 11 Load 13(m) - 39: 6(float) CompositeExtract 38 0 0 - 40: 6(float) CompositeExtract 38 0 1 - 41: 7(fvec2) CompositeConstruct 39 40 - 42: 35(ivec2) ConvertFToS 41 - Store 37(iv2) 42 - 46: 11 Load 13(m) - 47: 6(float) CompositeExtract 46 0 0 - 48: 6(float) CompositeExtract 46 0 1 - 49: 6(float) CompositeExtract 46 0 2 - 50: 10(fvec3) CompositeConstruct 47 48 49 - 51: 43(ivec3) ConvertFToS 50 - Store 45(iv3) 51 - 55: 11 Load 13(m) - 56: 6(float) CompositeExtract 55 0 0 - 57: 6(float) CompositeExtract 55 0 1 - 58: 6(float) CompositeExtract 55 0 2 - 59: 6(float) CompositeExtract 55 1 0 - 60: 25(fvec4) CompositeConstruct 56 57 58 59 - 61: 52(ivec4) ConvertFToS 60 - Store 54(iv4) 61 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.viewportArray2.tesc.out b/deps/glslang/Test/baseResults/spv.viewportArray2.tesc.out deleted file mode 100644 index e95ada49..00000000 --- a/deps/glslang/Test/baseResults/spv.viewportArray2.tesc.out +++ /dev/null @@ -1,51 +0,0 @@ -spv.viewportArray2.tesc -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 23 - - Capability Tessellation - Capability ShaderViewportIndexLayerNV - Capability ShaderViewportMaskNV - Extension "SPV_EXT_shader_viewport_index_layer" - Extension "SPV_NV_viewport_array2" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint TessellationControl 4 "main" 14 16 22 - ExecutionMode 4 OutputVertices 4 - Source GLSL 430 - SourceExtension "GL_NV_viewport_array2" - Name 4 "main" - Name 10 "gl_PerVertex" - MemberName 10(gl_PerVertex) 0 "gl_ViewportMask" - Name 14 "gl_out" - Name 16 "gl_InvocationID" - Name 22 "gl_Layer" - MemberDecorate 10(gl_PerVertex) 0 BuiltIn ViewportMaskNV - Decorate 10(gl_PerVertex) Block - Decorate 16(gl_InvocationID) BuiltIn InvocationId - Decorate 22(gl_Layer) BuiltIn Layer - Decorate 22(gl_Layer) ViewportRelativeNV - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypeInt 32 0 - 8: 7(int) Constant 2 - 9: TypeArray 6(int) 8 -10(gl_PerVertex): TypeStruct 9 - 11: 7(int) Constant 4 - 12: TypeArray 10(gl_PerVertex) 11 - 13: TypePointer Output 12 - 14(gl_out): 13(ptr) Variable Output - 15: TypePointer Input 6(int) -16(gl_InvocationID): 15(ptr) Variable Input - 18: 6(int) Constant 0 - 19: 6(int) Constant 1 - 20: TypePointer Output 6(int) - 22(gl_Layer): 20(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 17: 6(int) Load 16(gl_InvocationID) - 21: 20(ptr) AccessChain 14(gl_out) 17 18 18 - Store 21 19 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.viewportArray2.vert.out b/deps/glslang/Test/baseResults/spv.viewportArray2.vert.out deleted file mode 100644 index cf29cd79..00000000 --- a/deps/glslang/Test/baseResults/spv.viewportArray2.vert.out +++ /dev/null @@ -1,45 +0,0 @@ -spv.viewportArray2.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 19 - - Capability Shader - Capability ShaderViewportIndexLayerNV - Capability ShaderViewportMaskNV - Extension "SPV_EXT_shader_viewport_index_layer" - Extension "SPV_NV_viewport_array2" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 11 16 18 - Source GLSL 450 - SourceExtension "GL_ARB_shader_viewport_layer_array" - SourceExtension "GL_NV_viewport_array2" - Name 4 "main" - Name 11 "gl_ViewportMask" - Name 16 "gl_ViewportIndex" - Name 18 "gl_Layer" - Decorate 11(gl_ViewportMask) BuiltIn ViewportMaskNV - Decorate 16(gl_ViewportIndex) BuiltIn ViewportIndex - Decorate 18(gl_Layer) BuiltIn Layer - Decorate 18(gl_Layer) ViewportRelativeNV - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypeInt 32 0 - 8: 7(int) Constant 1 - 9: TypeArray 6(int) 8 - 10: TypePointer Output 9 -11(gl_ViewportMask): 10(ptr) Variable Output - 12: 6(int) Constant 0 - 13: 6(int) Constant 1 - 14: TypePointer Output 6(int) -16(gl_ViewportIndex): 14(ptr) Variable Output - 17: 6(int) Constant 2 - 18(gl_Layer): 14(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 15: 14(ptr) AccessChain 11(gl_ViewportMask) 12 - Store 15 13 - Store 16(gl_ViewportIndex) 17 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.viewportindex.tese.out b/deps/glslang/Test/baseResults/spv.viewportindex.tese.out deleted file mode 100644 index 12a30cf4..00000000 --- a/deps/glslang/Test/baseResults/spv.viewportindex.tese.out +++ /dev/null @@ -1,30 +0,0 @@ -spv.viewportindex.tese -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 10 - - Capability Tessellation - Capability ShaderViewportIndexLayerNV - Extension "SPV_EXT_shader_viewport_index_layer" - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint TessellationEvaluation 4 "main" 8 - ExecutionMode 4 Triangles - ExecutionMode 4 SpacingEqual - ExecutionMode 4 VertexOrderCcw - Source GLSL 450 - SourceExtension "GL_ARB_shader_viewport_layer_array" - Name 4 "main" - Name 8 "gl_ViewportIndex" - Decorate 8(gl_ViewportIndex) BuiltIn ViewportIndex - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Output 6(int) -8(gl_ViewportIndex): 7(ptr) Variable Output - 9: 6(int) Constant 1 - 4(main): 2 Function None 3 - 5: Label - Store 8(gl_ViewportIndex) 9 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.voidFunction.frag.out b/deps/glslang/Test/baseResults/spv.voidFunction.frag.out deleted file mode 100644 index c77285b1..00000000 --- a/deps/glslang/Test/baseResults/spv.voidFunction.frag.out +++ /dev/null @@ -1,75 +0,0 @@ -spv.voidFunction.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 43 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 24 37 40 42 - ExecutionMode 4 OriginUpperLeft - Source GLSL 400 - Name 4 "main" - Name 6 "foo(" - Name 8 "foo2(" - Name 12 "bar" - Name 22 "outColor" - Name 24 "bigColor" - Name 37 "gl_FragColor" - Name 40 "BaseColor" - Name 42 "d" - Decorate 24(bigColor) Location 0 - Decorate 37(gl_FragColor) Location 0 - Decorate 40(BaseColor) Location 1 - Decorate 42(d) Location 2 - 2: TypeVoid - 3: TypeFunction 2 - 10: TypeFloat 32 - 11: TypePointer Private 10(float) - 12(bar): 11(ptr) Variable Private - 13: 10(float) Constant 1073741824 - 15: 10(float) Constant 1065353216 - 20: TypeVector 10(float) 4 - 21: TypePointer Function 20(fvec4) - 23: TypePointer Input 20(fvec4) - 24(bigColor): 23(ptr) Variable Input - 29: TypeInt 32 0 - 30: 29(int) Constant 0 - 31: TypePointer Function 10(float) - 36: TypePointer Output 20(fvec4) -37(gl_FragColor): 36(ptr) Variable Output - 40(BaseColor): 23(ptr) Variable Input - 41: TypePointer Input 10(float) - 42(d): 41(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 22(outColor): 21(ptr) Variable Function - Store 12(bar) 13 - 25: 20(fvec4) Load 24(bigColor) - Store 22(outColor) 25 - 26: 2 FunctionCall 6(foo() - 27: 2 FunctionCall 8(foo2() - 28: 10(float) Load 12(bar) - 32: 31(ptr) AccessChain 22(outColor) 30 - 33: 10(float) Load 32 - 34: 10(float) FAdd 33 28 - 35: 31(ptr) AccessChain 22(outColor) 30 - Store 35 34 - 38: 20(fvec4) Load 22(outColor) - Store 37(gl_FragColor) 38 - Return - FunctionEnd - 6(foo(): 2 Function None 3 - 7: Label - 14: 10(float) Load 12(bar) - 16: 10(float) FAdd 14 15 - Store 12(bar) 16 - Return - FunctionEnd - 8(foo2(): 2 Function None 3 - 9: Label - 18: 10(float) Load 12(bar) - 19: 10(float) FAdd 18 15 - Store 12(bar) 19 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.volatileAtomic.comp.out b/deps/glslang/Test/baseResults/spv.volatileAtomic.comp.out deleted file mode 100644 index 0364d907..00000000 --- a/deps/glslang/Test/baseResults/spv.volatileAtomic.comp.out +++ /dev/null @@ -1,40 +0,0 @@ -spv.volatileAtomic.comp -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 18 - - 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 8 "D" - MemberName 8(D) 0 "d" - Name 10 "d" - Decorate 7 ArrayStride 4 - MemberDecorate 8(D) 0 Volatile - MemberDecorate 8(D) 0 Coherent - MemberDecorate 8(D) 0 Offset 0 - Decorate 8(D) BufferBlock - Decorate 10(d) DescriptorSet 0 - Decorate 10(d) Binding 3 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeRuntimeArray 6(int) - 8(D): TypeStruct 7 - 9: TypePointer Uniform 8(D) - 10(d): 9(ptr) Variable Uniform - 11: TypeInt 32 1 - 12: 11(int) Constant 0 - 13: TypePointer Uniform 6(int) - 15: 6(int) Constant 0 - 16: 6(int) Constant 1 - 4(main): 2 Function None 3 - 5: Label - 14: 13(ptr) AccessChain 10(d) 12 12 - 17: 6(int) AtomicExchange 14 16 15 15 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.vulkan100.subgroupArithmetic.comp.out b/deps/glslang/Test/baseResults/spv.vulkan100.subgroupArithmetic.comp.out deleted file mode 100644 index 9955053d..00000000 --- a/deps/glslang/Test/baseResults/spv.vulkan100.subgroupArithmetic.comp.out +++ /dev/null @@ -1,305 +0,0 @@ -spv.vulkan100.subgroupArithmetic.comp -ERROR: 0:19: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:20: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:21: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:22: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:24: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:25: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:26: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:27: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:29: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:30: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:31: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:32: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:34: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:35: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:36: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:37: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:39: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:40: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:41: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:42: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:44: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:45: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:46: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:47: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:49: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:50: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:51: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:52: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:54: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:55: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:56: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:57: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:59: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:60: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:61: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:62: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:64: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:65: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:66: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:67: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:69: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:70: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:71: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:72: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:74: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:75: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:76: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:77: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:79: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:80: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:81: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:82: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:84: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:85: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:86: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:87: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:89: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:90: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:91: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:92: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:94: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:95: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:96: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:97: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:99: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:100: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:101: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:102: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:104: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:105: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:106: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:107: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:109: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:110: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:111: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:112: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:114: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:115: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:116: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:117: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:119: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:120: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:121: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:122: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:124: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:125: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:126: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:127: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:129: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:130: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:131: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:132: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:134: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:135: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:136: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:137: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:139: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:140: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:141: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:142: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:144: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:145: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:146: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:147: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:149: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:150: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:151: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:152: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:154: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:155: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:156: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:157: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:159: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:160: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:161: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:162: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:164: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:165: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:166: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:167: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:169: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:170: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:171: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:172: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:174: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:175: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:176: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:177: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:179: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:180: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:181: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:182: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:184: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:185: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:186: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:187: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:189: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:190: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:191: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:192: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:194: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:195: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:196: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:197: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:199: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:200: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:201: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:202: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:204: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:205: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:206: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:207: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:209: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:210: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:211: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:212: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:214: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:215: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:216: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:217: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:219: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:220: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:221: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:222: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:224: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:225: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:226: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:227: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:229: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:230: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:231: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:232: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:234: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:235: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:236: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:237: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:239: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:240: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:241: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:242: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:244: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:245: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:246: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:247: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:249: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:250: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:251: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:252: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:254: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:255: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:256: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:257: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:259: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:260: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:261: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:262: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:264: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:265: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:266: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:267: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:269: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:270: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:271: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:272: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:274: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:275: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:276: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:277: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:279: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:280: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:281: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:282: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:284: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:285: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:286: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:287: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:289: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:290: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:291: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:292: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:294: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:295: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:296: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:297: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:299: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:300: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:301: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:302: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:304: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:305: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:306: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:307: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:309: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:310: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:311: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:312: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:314: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:315: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:316: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:317: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:319: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:320: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:321: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:322: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:324: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:325: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:326: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:327: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:329: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:330: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:331: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:332: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:334: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:335: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:336: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:337: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:339: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:340: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:341: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:342: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:344: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:345: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:346: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:347: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:349: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:350: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:351: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:352: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:354: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:355: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:356: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:357: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:359: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:360: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:361: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:362: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:364: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:365: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:366: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:367: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:369: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:370: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:371: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:372: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:374: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:375: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:376: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:377: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:379: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:380: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:381: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:382: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:384: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:385: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:386: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:387: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:389: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:390: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:391: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:392: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 300 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.vulkan100.subgroupPartitioned.comp.out b/deps/glslang/Test/baseResults/spv.vulkan100.subgroupPartitioned.comp.out deleted file mode 100644 index 3116ac11..00000000 --- a/deps/glslang/Test/baseResults/spv.vulkan100.subgroupPartitioned.comp.out +++ /dev/null @@ -1,326 +0,0 @@ -spv.vulkan100.subgroupPartitioned.comp -ERROR: 0:19: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:21: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:22: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:23: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:24: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:26: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:27: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:28: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:29: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:31: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:32: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:33: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:34: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:36: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:37: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:38: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:39: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:41: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:42: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:43: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:44: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:46: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:47: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:48: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:49: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:51: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:52: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:53: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:54: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:56: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:57: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:58: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:59: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:61: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:62: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:63: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:64: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:66: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:67: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:68: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:69: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:71: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:72: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:73: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:74: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:76: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:77: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:78: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:79: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:81: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:82: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:83: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:84: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:86: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:87: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:88: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:89: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:91: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:92: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:93: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:94: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:96: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:97: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:98: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:99: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:101: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:102: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:103: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:104: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:106: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:107: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:108: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:109: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:111: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:112: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:113: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:114: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:116: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:117: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:118: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:119: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:121: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:122: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:123: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:124: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:126: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:127: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:128: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:129: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:131: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:132: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:133: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:134: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:136: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:137: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:138: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:139: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:141: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:142: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:143: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:144: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:146: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:147: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:148: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:149: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:151: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:152: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:153: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:154: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:156: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:157: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:158: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:159: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:161: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:162: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:163: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:164: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:166: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:167: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:168: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:169: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:171: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:172: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:173: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:174: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:176: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:177: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:178: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:179: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:181: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:182: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:183: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:184: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:186: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:187: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:188: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:189: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:191: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:192: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:193: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:194: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:196: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:197: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:198: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:199: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:201: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:202: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:203: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:204: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:206: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:207: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:208: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:209: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:211: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:212: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:213: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:214: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:216: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:217: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:218: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:219: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:221: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:222: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:223: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:224: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:226: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:227: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:228: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:229: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:231: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:232: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:233: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:234: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:236: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:237: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:238: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:239: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:241: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:242: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:243: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:244: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:246: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:247: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:248: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:249: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:251: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:252: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:253: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:254: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:256: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:257: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:258: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:259: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:261: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:262: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:263: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:264: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:266: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:267: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:268: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:269: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:271: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:272: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:273: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:274: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:276: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:277: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:278: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:279: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:281: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:282: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:283: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:284: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:286: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:287: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:288: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:289: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:291: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:292: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:293: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:294: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:296: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:297: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:298: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:299: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:301: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:302: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:303: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:304: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:306: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:307: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:308: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:309: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:311: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:312: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:313: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:314: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:316: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:317: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:318: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:319: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:321: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:322: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:323: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:324: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:326: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:327: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:328: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:329: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:331: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:332: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:333: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:334: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:336: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:337: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:338: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:339: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:341: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:342: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:343: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:344: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:346: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:347: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:348: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:349: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:351: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:352: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:353: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:354: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:356: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:357: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:358: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:359: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:361: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:362: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:363: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:364: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:366: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:367: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:368: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:369: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:371: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:372: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:373: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:374: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:376: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:377: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:378: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:379: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:381: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:382: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:383: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:384: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:386: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:387: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:388: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:389: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:391: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:392: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:393: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:394: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:396: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:397: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:398: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:399: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:401: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:402: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:403: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:404: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:406: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:407: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:408: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:409: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:411: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:412: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:413: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:414: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:416: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:417: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:418: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 0:419: 'subgroup op' : requires SPIR-V 1.3 -ERROR: 321 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/spv.vulkan110.int16.frag.out b/deps/glslang/Test/baseResults/spv.vulkan110.int16.frag.out deleted file mode 100644 index 47388a2b..00000000 --- a/deps/glslang/Test/baseResults/spv.vulkan110.int16.frag.out +++ /dev/null @@ -1,759 +0,0 @@ -spv.vulkan110.int16.frag -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 535 - - Capability Shader - Capability Float16 - Capability Float64 - Capability Int64 - Capability Int16 - Capability Int8 - Capability StorageUniform16 - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" - ExecutionMode 4 OriginUpperLeft - Source GLSL 450 - SourceExtension "GL_EXT_shader_explicit_arithmetic_types" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float32" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float64" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int16" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int32" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int64" - SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int8" - Name 4 "main" - Name 6 "literal(" - Name 8 "typeCast16(" - Name 10 "operators(" - Name 12 "builtinFuncs(" - Name 16 "i16" - Name 24 "Uniforms" - MemberName 24(Uniforms) 0 "index" - Name 26 "" - Name 33 "indexable" - Name 38 "u16" - Name 46 "indexable" - Name 51 "i32v" - Name 54 "i16v" - Name 59 "u16v" - Name 67 "u32v" - Name 74 "i64v" - Name 80 "u64v" - Name 94 "f16v" - Name 100 "f32v" - Name 106 "f64v" - Name 154 "i8v" - Name 163 "u8v" - Name 176 "bv" - Name 195 "u16v" - Name 200 "i16" - Name 220 "i" - Name 227 "uv" - Name 243 "i64" - Name 281 "b" - Name 343 "i16v" - Name 346 "i16" - Name 356 "u16v" - Name 358 "u16" - Name 428 "i32" - Name 431 "i64" - Name 434 "i16v4" - Name 437 "u32" - Name 438 "u16v2" - Name 442 "u64" - Name 445 "u16v4" - Name 457 "bv" - Name 530 "Block" - MemberName 530(Block) 0 "i16" - MemberName 530(Block) 1 "i16v2" - MemberName 530(Block) 2 "i16v3" - MemberName 530(Block) 3 "i16v4" - MemberName 530(Block) 4 "u16" - MemberName 530(Block) 5 "u16v2" - MemberName 530(Block) 6 "u16v3" - MemberName 530(Block) 7 "u16v4" - Name 532 "block" - Name 533 "si16" - Name 534 "su16" - MemberDecorate 24(Uniforms) 0 Offset 0 - Decorate 24(Uniforms) Block - Decorate 26 DescriptorSet 0 - Decorate 26 Binding 0 - MemberDecorate 530(Block) 0 Offset 0 - MemberDecorate 530(Block) 1 Offset 4 - MemberDecorate 530(Block) 2 Offset 8 - MemberDecorate 530(Block) 3 Offset 16 - MemberDecorate 530(Block) 4 Offset 24 - MemberDecorate 530(Block) 5 Offset 28 - MemberDecorate 530(Block) 6 Offset 32 - MemberDecorate 530(Block) 7 Offset 40 - Decorate 530(Block) Block - Decorate 532(block) DescriptorSet 0 - Decorate 532(block) Binding 1 - Decorate 533(si16) SpecId 100 - Decorate 534(su16) SpecId 101 - 2: TypeVoid - 3: TypeFunction 2 - 14: TypeInt 16 1 - 15: TypePointer Function 14(int16_t) - 17: TypeInt 32 0 - 18: 17(int) Constant 3 - 19: TypeArray 14(int16_t) 18 - 20: 14(int16_t) Constant 4294962927 - 21: 14(int16_t) Constant 4294967295 - 22: 14(int16_t) Constant 16384 - 23: 19 ConstantComposite 20 21 22 - 24(Uniforms): TypeStruct 17(int) - 25: TypePointer Uniform 24(Uniforms) - 26: 25(ptr) Variable Uniform - 27: TypeInt 32 1 - 28: 27(int) Constant 0 - 29: TypePointer Uniform 17(int) - 32: TypePointer Function 19 - 36: TypeInt 16 0 - 37: TypePointer Function 36(int16_t) - 39: TypeArray 36(int16_t) 18 - 40: 36(int16_t) Constant 65535 - 41: 36(int16_t) Constant 32767 - 42: 39 ConstantComposite 40 40 41 - 45: TypePointer Function 39 - 49: TypeVector 27(int) 2 - 50: TypePointer Function 49(ivec2) - 52: TypeVector 14(int16_t) 2 - 53: TypePointer Function 52(i16vec2) - 57: TypeVector 36(int16_t) 2 - 58: TypePointer Function 57(i16vec2) - 61: TypeVector 17(int) 2 - 66: TypePointer Function 61(ivec2) - 71: TypeInt 64 1 - 72: TypeVector 71(int64_t) 2 - 73: TypePointer Function 72(i64vec2) - 77: TypeInt 64 0 - 78: TypeVector 77(int64_t) 2 - 79: TypePointer Function 78(i64vec2) - 91: TypeFloat 16 - 92: TypeVector 91(float16_t) 2 - 93: TypePointer Function 92(f16vec2) - 97: TypeFloat 32 - 98: TypeVector 97(float) 2 - 99: TypePointer Function 98(fvec2) - 103: TypeFloat 64 - 104: TypeVector 103(float64_t) 2 - 105: TypePointer Function 104(f64vec2) - 151: TypeInt 8 1 - 152: TypeVector 151(int8_t) 2 - 153: TypePointer Function 152(i8vec2) - 158: TypeInt 8 0 - 159: TypeVector 158(int8_t) 2 - 162: TypePointer Function 159(i8vec2) - 173: TypeBool - 174: TypeVector 173(bool) 2 - 175: TypePointer Function 174(bvec2) - 178: 14(int16_t) Constant 0 - 179: 14(int16_t) Constant 1 - 180: 52(i16vec2) ConstantComposite 178 178 - 181: 52(i16vec2) ConstantComposite 179 179 - 184: 36(int16_t) Constant 0 - 185: 36(int16_t) Constant 1 - 186: 57(i16vec2) ConstantComposite 184 184 - 187: 57(i16vec2) ConstantComposite 185 185 - 193: TypeVector 36(int16_t) 3 - 194: TypePointer Function 193(i16vec3) - 197: TypeVector 14(int16_t) 3 - 219: TypePointer Function 27(int) - 225: TypeVector 17(int) 3 - 226: TypePointer Function 225(ivec3) - 242: TypePointer Function 71(int64_t) - 264: 17(int) Constant 1 - 270: 17(int) Constant 2 - 276: TypeVector 27(int) 3 - 280: TypePointer Function 173(bool) - 282: 17(int) Constant 0 - 296: TypePointer Function 17(int) - 354: 52(i16vec2) ConstantComposite 21 21 - 363:193(i16vec3) ConstantComposite 184 184 184 - 405: 173(bool) ConstantTrue - 412: 173(bool) ConstantFalse - 413: 174(bvec2) ConstantComposite 412 412 - 425: TypeVector 173(bool) 3 - 426: 425(bvec3) ConstantComposite 412 412 412 - 432: TypeVector 14(int16_t) 4 - 433: TypePointer Function 432(i16vec4) - 441: TypePointer Function 77(int64_t) - 443: TypeVector 36(int16_t) 4 - 444: TypePointer Function 443(i16vec4) - 456: TypePointer Function 425(bvec3) - 530(Block): TypeStruct 14(int16_t) 52(i16vec2) 197(i16vec3) 432(i16vec4) 36(int16_t) 57(i16vec2) 193(i16vec3) 443(i16vec4) - 531: TypePointer Uniform 530(Block) - 532(block): 531(ptr) Variable Uniform - 533(si16): 14(int16_t) SpecConstant 4294967286 - 534(su16): 36(int16_t) SpecConstant 20 - 4(main): 2 Function None 3 - 5: Label - Return - FunctionEnd - 6(literal(): 2 Function None 3 - 7: Label - 16(i16): 15(ptr) Variable Function - 33(indexable): 32(ptr) Variable Function - 38(u16): 37(ptr) Variable Function - 46(indexable): 45(ptr) Variable Function - 30: 29(ptr) AccessChain 26 28 - 31: 17(int) Load 30 - Store 33(indexable) 23 - 34: 15(ptr) AccessChain 33(indexable) 31 - 35: 14(int16_t) Load 34 - Store 16(i16) 35 - 43: 29(ptr) AccessChain 26 28 - 44: 17(int) Load 43 - Store 46(indexable) 42 - 47: 37(ptr) AccessChain 46(indexable) 44 - 48: 36(int16_t) Load 47 - Store 38(u16) 48 - Return - FunctionEnd - 8(typeCast16(): 2 Function None 3 - 9: Label - 51(i32v): 50(ptr) Variable Function - 54(i16v): 53(ptr) Variable Function - 59(u16v): 58(ptr) Variable Function - 67(u32v): 66(ptr) Variable Function - 74(i64v): 73(ptr) Variable Function - 80(u64v): 79(ptr) Variable Function - 94(f16v): 93(ptr) Variable Function - 100(f32v): 99(ptr) Variable Function - 106(f64v): 105(ptr) Variable Function - 154(i8v): 153(ptr) Variable Function - 163(u8v): 162(ptr) Variable Function - 176(bv): 175(ptr) Variable Function - 55: 52(i16vec2) Load 54(i16v) - 56: 49(ivec2) SConvert 55 - Store 51(i32v) 56 - 60: 57(i16vec2) Load 59(u16v) - 62: 61(ivec2) UConvert 60 - 63: 49(ivec2) Bitcast 62 - Store 51(i32v) 63 - 64: 52(i16vec2) Load 54(i16v) - 65: 57(i16vec2) Bitcast 64 - Store 59(u16v) 65 - 68: 52(i16vec2) Load 54(i16v) - 69: 49(ivec2) SConvert 68 - 70: 61(ivec2) Bitcast 69 - Store 67(u32v) 70 - 75: 52(i16vec2) Load 54(i16v) - 76: 72(i64vec2) SConvert 75 - Store 74(i64v) 76 - 81: 52(i16vec2) Load 54(i16v) - 82: 72(i64vec2) SConvert 81 - 83: 78(i64vec2) Bitcast 82 - Store 80(u64v) 83 - 84: 57(i16vec2) Load 59(u16v) - 85: 61(ivec2) UConvert 84 - Store 67(u32v) 85 - 86: 57(i16vec2) Load 59(u16v) - 87: 78(i64vec2) UConvert 86 - 88: 72(i64vec2) Bitcast 87 - Store 74(i64v) 88 - 89: 57(i16vec2) Load 59(u16v) - 90: 78(i64vec2) UConvert 89 - Store 80(u64v) 90 - 95: 52(i16vec2) Load 54(i16v) - 96: 92(f16vec2) ConvertSToF 95 - Store 94(f16v) 96 - 101: 52(i16vec2) Load 54(i16v) - 102: 98(fvec2) ConvertSToF 101 - Store 100(f32v) 102 - 107: 52(i16vec2) Load 54(i16v) - 108:104(f64vec2) ConvertSToF 107 - Store 106(f64v) 108 - 109: 57(i16vec2) Load 59(u16v) - 110: 92(f16vec2) ConvertUToF 109 - Store 94(f16v) 110 - 111: 57(i16vec2) Load 59(u16v) - 112: 98(fvec2) ConvertUToF 111 - Store 100(f32v) 112 - 113: 57(i16vec2) Load 59(u16v) - 114:104(f64vec2) ConvertUToF 113 - Store 106(f64v) 114 - 115: 52(i16vec2) Load 54(i16v) - 116: 49(ivec2) SConvert 115 - Store 51(i32v) 116 - 117: 57(i16vec2) Load 59(u16v) - 118: 61(ivec2) UConvert 117 - 119: 49(ivec2) Bitcast 118 - Store 51(i32v) 119 - 120: 52(i16vec2) Load 54(i16v) - 121: 57(i16vec2) Bitcast 120 - Store 59(u16v) 121 - 122: 52(i16vec2) Load 54(i16v) - 123: 49(ivec2) SConvert 122 - 124: 61(ivec2) Bitcast 123 - Store 67(u32v) 124 - 125: 52(i16vec2) Load 54(i16v) - 126: 72(i64vec2) SConvert 125 - Store 74(i64v) 126 - 127: 52(i16vec2) Load 54(i16v) - 128: 72(i64vec2) SConvert 127 - 129: 78(i64vec2) Bitcast 128 - Store 80(u64v) 129 - 130: 57(i16vec2) Load 59(u16v) - 131: 61(ivec2) UConvert 130 - Store 67(u32v) 131 - 132: 57(i16vec2) Load 59(u16v) - 133: 78(i64vec2) UConvert 132 - 134: 72(i64vec2) Bitcast 133 - Store 74(i64v) 134 - 135: 57(i16vec2) Load 59(u16v) - 136: 78(i64vec2) UConvert 135 - 137: 72(i64vec2) Bitcast 136 - 138: 78(i64vec2) Bitcast 137 - Store 80(u64v) 138 - 139: 52(i16vec2) Load 54(i16v) - 140: 92(f16vec2) ConvertSToF 139 - Store 94(f16v) 140 - 141: 52(i16vec2) Load 54(i16v) - 142: 98(fvec2) ConvertSToF 141 - Store 100(f32v) 142 - 143: 52(i16vec2) Load 54(i16v) - 144:104(f64vec2) ConvertSToF 143 - Store 106(f64v) 144 - 145: 57(i16vec2) Load 59(u16v) - 146: 92(f16vec2) ConvertUToF 145 - Store 94(f16v) 146 - 147: 57(i16vec2) Load 59(u16v) - 148: 98(fvec2) ConvertUToF 147 - Store 100(f32v) 148 - 149: 57(i16vec2) Load 59(u16v) - 150:104(f64vec2) ConvertUToF 149 - Store 106(f64v) 150 - 155: 52(i16vec2) Load 54(i16v) - 156: 152(i8vec2) SConvert 155 - Store 154(i8v) 156 - 157: 57(i16vec2) Load 59(u16v) - 160: 159(i8vec2) UConvert 157 - 161: 152(i8vec2) Bitcast 160 - Store 154(i8v) 161 - 164: 52(i16vec2) Load 54(i16v) - 165: 152(i8vec2) SConvert 164 - 166: 159(i8vec2) Bitcast 165 - Store 163(u8v) 166 - 167: 57(i16vec2) Load 59(u16v) - 168: 159(i8vec2) UConvert 167 - Store 163(u8v) 168 - 169: 57(i16vec2) Load 59(u16v) - 170: 159(i8vec2) UConvert 169 - 171: 57(i16vec2) UConvert 170 - 172: 52(i16vec2) Bitcast 171 - Store 54(i16v) 172 - 177: 174(bvec2) Load 176(bv) - 182: 52(i16vec2) Select 177 181 180 - Store 54(i16v) 182 - 183: 174(bvec2) Load 176(bv) - 188: 57(i16vec2) Select 183 187 186 - Store 59(u16v) 188 - 189: 52(i16vec2) Load 54(i16v) - 190: 174(bvec2) INotEqual 189 186 - Store 176(bv) 190 - 191: 57(i16vec2) Load 59(u16v) - 192: 174(bvec2) INotEqual 191 186 - Store 176(bv) 192 - Return - FunctionEnd - 10(operators(): 2 Function None 3 - 11: Label - 195(u16v): 194(ptr) Variable Function - 200(i16): 15(ptr) Variable Function - 220(i): 219(ptr) Variable Function - 227(uv): 226(ptr) Variable Function - 243(i64): 242(ptr) Variable Function - 281(b): 280(ptr) Variable Function - 196:193(i16vec3) Load 195(u16v) - 198:197(i16vec3) CompositeConstruct 179 179 179 - 199:193(i16vec3) IAdd 196 198 - Store 195(u16v) 199 - 201: 14(int16_t) Load 200(i16) - 202: 14(int16_t) ISub 201 179 - Store 200(i16) 202 - 203: 14(int16_t) Load 200(i16) - 204: 14(int16_t) IAdd 203 179 - Store 200(i16) 204 - 205:193(i16vec3) Load 195(u16v) - 206:197(i16vec3) CompositeConstruct 179 179 179 - 207:193(i16vec3) ISub 205 206 - Store 195(u16v) 207 - 208:193(i16vec3) Load 195(u16v) - 209:193(i16vec3) Not 208 - Store 195(u16v) 209 - 210: 14(int16_t) Load 200(i16) - Store 200(i16) 210 - 211:193(i16vec3) Load 195(u16v) - 212:193(i16vec3) SNegate 211 - Store 195(u16v) 212 - 213: 14(int16_t) Load 200(i16) - 214: 14(int16_t) Load 200(i16) - 215: 14(int16_t) IAdd 214 213 - Store 200(i16) 215 - 216:193(i16vec3) Load 195(u16v) - 217:193(i16vec3) Load 195(u16v) - 218:193(i16vec3) ISub 217 216 - Store 195(u16v) 218 - 221: 14(int16_t) Load 200(i16) - 222: 27(int) SConvert 221 - 223: 27(int) Load 220(i) - 224: 27(int) IMul 223 222 - Store 220(i) 224 - 228:193(i16vec3) Load 195(u16v) - 229: 225(ivec3) UConvert 228 - 230: 225(ivec3) Load 227(uv) - 231: 225(ivec3) UDiv 230 229 - Store 227(uv) 231 - 232: 14(int16_t) Load 200(i16) - 233: 27(int) SConvert 232 - 234: 17(int) Bitcast 233 - 235: 225(ivec3) Load 227(uv) - 236: 225(ivec3) CompositeConstruct 234 234 234 - 237: 225(ivec3) UMod 235 236 - Store 227(uv) 237 - 238:193(i16vec3) Load 195(u16v) - 239: 225(ivec3) UConvert 238 - 240: 225(ivec3) Load 227(uv) - 241: 225(ivec3) IAdd 239 240 - Store 227(uv) 241 - 244: 14(int16_t) Load 200(i16) - 245: 71(int64_t) SConvert 244 - 246: 71(int64_t) Load 243(i64) - 247: 71(int64_t) ISub 245 246 - Store 243(i64) 247 - 248:193(i16vec3) Load 195(u16v) - 249: 225(ivec3) UConvert 248 - 250: 225(ivec3) Load 227(uv) - 251: 225(ivec3) IMul 249 250 - Store 227(uv) 251 - 252: 14(int16_t) Load 200(i16) - 253: 71(int64_t) SConvert 252 - 254: 71(int64_t) Load 243(i64) - 255: 71(int64_t) IMul 253 254 - Store 243(i64) 255 - 256: 14(int16_t) Load 200(i16) - 257: 27(int) SConvert 256 - 258: 27(int) Load 220(i) - 259: 27(int) SMod 257 258 - Store 220(i) 259 - 260: 14(int16_t) Load 200(i16) - 261:193(i16vec3) Load 195(u16v) - 262:197(i16vec3) CompositeConstruct 260 260 260 - 263:193(i16vec3) ShiftLeftLogical 261 262 - Store 195(u16v) 263 - 265: 37(ptr) AccessChain 195(u16v) 264 - 266: 36(int16_t) Load 265 - 267: 14(int16_t) Load 200(i16) - 268: 14(int16_t) ShiftRightArithmetic 267 266 - Store 200(i16) 268 - 269: 14(int16_t) Load 200(i16) - 271: 37(ptr) AccessChain 195(u16v) 270 - 272: 36(int16_t) Load 271 - 273: 14(int16_t) ShiftLeftLogical 269 272 - Store 200(i16) 273 - 274:193(i16vec3) Load 195(u16v) - 275: 27(int) Load 220(i) - 277: 276(ivec3) CompositeConstruct 275 275 275 - 278:193(i16vec3) ShiftLeftLogical 274 277 - 279: 225(ivec3) UConvert 278 - Store 227(uv) 279 - 283: 37(ptr) AccessChain 195(u16v) 282 - 284: 36(int16_t) Load 283 - 285: 14(int16_t) Load 200(i16) - 286: 36(int16_t) Bitcast 285 - 287: 173(bool) INotEqual 284 286 - Store 281(b) 287 - 288: 14(int16_t) Load 200(i16) - 289: 36(int16_t) Bitcast 288 - 290: 37(ptr) AccessChain 195(u16v) 282 - 291: 36(int16_t) Load 290 - 292: 173(bool) IEqual 289 291 - Store 281(b) 292 - 293: 37(ptr) AccessChain 195(u16v) 282 - 294: 36(int16_t) Load 293 - 295: 17(int) UConvert 294 - 297: 296(ptr) AccessChain 227(uv) 264 - 298: 17(int) Load 297 - 299: 173(bool) UGreaterThan 295 298 - Store 281(b) 299 - 300: 14(int16_t) Load 200(i16) - 301: 27(int) SConvert 300 - 302: 27(int) Load 220(i) - 303: 173(bool) SLessThan 301 302 - Store 281(b) 303 - 304: 37(ptr) AccessChain 195(u16v) 264 - 305: 36(int16_t) Load 304 - 306: 17(int) UConvert 305 - 307: 296(ptr) AccessChain 227(uv) 282 - 308: 17(int) Load 307 - 309: 173(bool) UGreaterThanEqual 306 308 - Store 281(b) 309 - 310: 14(int16_t) Load 200(i16) - 311: 27(int) SConvert 310 - 312: 27(int) Load 220(i) - 313: 173(bool) SLessThanEqual 311 312 - Store 281(b) 313 - 314: 14(int16_t) Load 200(i16) - 315: 27(int) SConvert 314 - 316: 17(int) Bitcast 315 - 317: 225(ivec3) Load 227(uv) - 318: 225(ivec3) CompositeConstruct 316 316 316 - 319: 225(ivec3) BitwiseOr 317 318 - Store 227(uv) 319 - 320: 14(int16_t) Load 200(i16) - 321: 27(int) SConvert 320 - 322: 27(int) Load 220(i) - 323: 27(int) BitwiseOr 321 322 - Store 220(i) 323 - 324: 14(int16_t) Load 200(i16) - 325: 71(int64_t) SConvert 324 - 326: 71(int64_t) Load 243(i64) - 327: 71(int64_t) BitwiseAnd 326 325 - Store 243(i64) 327 - 328:193(i16vec3) Load 195(u16v) - 329: 225(ivec3) UConvert 328 - 330: 225(ivec3) Load 227(uv) - 331: 225(ivec3) BitwiseAnd 329 330 - Store 227(uv) 331 - 332: 14(int16_t) Load 200(i16) - 333: 27(int) SConvert 332 - 334: 17(int) Bitcast 333 - 335: 225(ivec3) Load 227(uv) - 336: 225(ivec3) CompositeConstruct 334 334 334 - 337: 225(ivec3) BitwiseXor 335 336 - Store 227(uv) 337 - 338:193(i16vec3) Load 195(u16v) - 339: 14(int16_t) Load 200(i16) - 340: 36(int16_t) Bitcast 339 - 341:193(i16vec3) CompositeConstruct 340 340 340 - 342:193(i16vec3) BitwiseXor 338 341 - Store 195(u16v) 342 - Return - FunctionEnd -12(builtinFuncs(): 2 Function None 3 - 13: Label - 343(i16v): 53(ptr) Variable Function - 346(i16): 15(ptr) Variable Function - 356(u16v): 194(ptr) Variable Function - 358(u16): 37(ptr) Variable Function - 428(i32): 219(ptr) Variable Function - 431(i64): 242(ptr) Variable Function - 434(i16v4): 433(ptr) Variable Function - 437(u32): 296(ptr) Variable Function - 438(u16v2): 58(ptr) Variable Function - 442(u64): 441(ptr) Variable Function - 445(u16v4): 444(ptr) Variable Function - 457(bv): 456(ptr) Variable Function - 344: 52(i16vec2) Load 343(i16v) - 345: 52(i16vec2) ExtInst 1(GLSL.std.450) 5(SAbs) 344 - Store 343(i16v) 345 - 347: 14(int16_t) Load 346(i16) - 348: 14(int16_t) ExtInst 1(GLSL.std.450) 7(SSign) 347 - Store 346(i16) 348 - 349: 52(i16vec2) Load 343(i16v) - 350: 14(int16_t) Load 346(i16) - 351: 52(i16vec2) CompositeConstruct 350 350 - 352: 52(i16vec2) ExtInst 1(GLSL.std.450) 39(SMin) 349 351 - Store 343(i16v) 352 - 353: 52(i16vec2) Load 343(i16v) - 355: 52(i16vec2) ExtInst 1(GLSL.std.450) 39(SMin) 353 354 - Store 343(i16v) 355 - 357:193(i16vec3) Load 356(u16v) - 359: 36(int16_t) Load 358(u16) - 360:193(i16vec3) CompositeConstruct 359 359 359 - 361:193(i16vec3) ExtInst 1(GLSL.std.450) 38(UMin) 357 360 - Store 356(u16v) 361 - 362:193(i16vec3) Load 356(u16v) - 364:193(i16vec3) ExtInst 1(GLSL.std.450) 38(UMin) 362 363 - Store 356(u16v) 364 - 365: 52(i16vec2) Load 343(i16v) - 366: 14(int16_t) Load 346(i16) - 367: 52(i16vec2) CompositeConstruct 366 366 - 368: 52(i16vec2) ExtInst 1(GLSL.std.450) 42(SMax) 365 367 - Store 343(i16v) 368 - 369: 52(i16vec2) Load 343(i16v) - 370: 52(i16vec2) ExtInst 1(GLSL.std.450) 42(SMax) 369 354 - Store 343(i16v) 370 - 371:193(i16vec3) Load 356(u16v) - 372: 36(int16_t) Load 358(u16) - 373:193(i16vec3) CompositeConstruct 372 372 372 - 374:193(i16vec3) ExtInst 1(GLSL.std.450) 41(UMax) 371 373 - Store 356(u16v) 374 - 375:193(i16vec3) Load 356(u16v) - 376:193(i16vec3) ExtInst 1(GLSL.std.450) 41(UMax) 375 363 - Store 356(u16v) 376 - 377: 52(i16vec2) Load 343(i16v) - 378: 14(int16_t) Load 346(i16) - 379: 14(int16_t) SNegate 378 - 380: 14(int16_t) Load 346(i16) - 381: 52(i16vec2) CompositeConstruct 379 379 - 382: 52(i16vec2) CompositeConstruct 380 380 - 383: 52(i16vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 377 381 382 - Store 343(i16v) 383 - 384: 52(i16vec2) Load 343(i16v) - 385: 52(i16vec2) Load 343(i16v) - 386: 52(i16vec2) SNegate 385 - 387: 52(i16vec2) Load 343(i16v) - 388: 52(i16vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 384 386 387 - Store 343(i16v) 388 - 389:193(i16vec3) Load 356(u16v) - 390: 36(int16_t) Load 358(u16) - 391: 36(int16_t) SNegate 390 - 392: 36(int16_t) Load 358(u16) - 393:193(i16vec3) CompositeConstruct 391 391 391 - 394:193(i16vec3) CompositeConstruct 392 392 392 - 395:193(i16vec3) ExtInst 1(GLSL.std.450) 44(UClamp) 389 393 394 - Store 356(u16v) 395 - 396:193(i16vec3) Load 356(u16v) - 397:193(i16vec3) Load 356(u16v) - 398:193(i16vec3) SNegate 397 - 399:193(i16vec3) Load 356(u16v) - 400:193(i16vec3) ExtInst 1(GLSL.std.450) 44(UClamp) 396 398 399 - Store 356(u16v) 400 - 401: 15(ptr) AccessChain 343(i16v) 282 - 402: 14(int16_t) Load 401 - 403: 15(ptr) AccessChain 343(i16v) 264 - 404: 14(int16_t) Load 403 - 406: 14(int16_t) Select 405 404 402 - Store 346(i16) 406 - 407: 14(int16_t) Load 346(i16) - 408: 52(i16vec2) CompositeConstruct 407 407 - 409: 14(int16_t) Load 346(i16) - 410: 14(int16_t) SNegate 409 - 411: 52(i16vec2) CompositeConstruct 410 410 - 414: 52(i16vec2) Select 413 411 408 - Store 343(i16v) 414 - 415: 37(ptr) AccessChain 356(u16v) 282 - 416: 36(int16_t) Load 415 - 417: 37(ptr) AccessChain 356(u16v) 264 - 418: 36(int16_t) Load 417 - 419: 36(int16_t) Select 405 418 416 - Store 358(u16) 419 - 420: 36(int16_t) Load 358(u16) - 421:193(i16vec3) CompositeConstruct 420 420 420 - 422: 36(int16_t) Load 358(u16) - 423: 36(int16_t) SNegate 422 - 424:193(i16vec3) CompositeConstruct 423 423 423 - 427:193(i16vec3) Select 426 424 421 - Store 356(u16v) 427 - 429: 52(i16vec2) Load 343(i16v) - 430: 27(int) Bitcast 429 - Store 428(i32) 430 - 435:432(i16vec4) Load 434(i16v4) - 436: 71(int64_t) Bitcast 435 - Store 431(i64) 436 - 439: 57(i16vec2) Load 438(u16v2) - 440: 17(int) Bitcast 439 - Store 437(u32) 440 - 446:443(i16vec4) Load 445(u16v4) - 447: 77(int64_t) Bitcast 446 - Store 442(u64) 447 - 448: 27(int) Load 428(i32) - 449: 52(i16vec2) Bitcast 448 - Store 343(i16v) 449 - 450: 71(int64_t) Load 431(i64) - 451:432(i16vec4) Bitcast 450 - Store 434(i16v4) 451 - 452: 17(int) Load 437(u32) - 453: 57(i16vec2) Bitcast 452 - Store 438(u16v2) 453 - 454: 77(int64_t) Load 442(u64) - 455:443(i16vec4) Bitcast 454 - Store 445(u16v4) 455 - 458:193(i16vec3) Load 356(u16v) - 459: 36(int16_t) Load 358(u16) - 460:193(i16vec3) CompositeConstruct 459 459 459 - 461: 425(bvec3) ULessThan 458 460 - Store 457(bv) 461 - 462: 52(i16vec2) Load 343(i16v) - 463: 14(int16_t) Load 346(i16) - 464: 52(i16vec2) CompositeConstruct 463 463 - 465: 174(bvec2) SLessThan 462 464 - 466: 280(ptr) AccessChain 457(bv) 282 - 467: 173(bool) CompositeExtract 465 0 - Store 466 467 - 468: 280(ptr) AccessChain 457(bv) 264 - 469: 173(bool) CompositeExtract 465 1 - Store 468 469 - 470:193(i16vec3) Load 356(u16v) - 471: 36(int16_t) Load 358(u16) - 472:193(i16vec3) CompositeConstruct 471 471 471 - 473: 425(bvec3) ULessThanEqual 470 472 - Store 457(bv) 473 - 474: 52(i16vec2) Load 343(i16v) - 475: 14(int16_t) Load 346(i16) - 476: 52(i16vec2) CompositeConstruct 475 475 - 477: 174(bvec2) SLessThanEqual 474 476 - 478: 280(ptr) AccessChain 457(bv) 282 - 479: 173(bool) CompositeExtract 477 0 - Store 478 479 - 480: 280(ptr) AccessChain 457(bv) 264 - 481: 173(bool) CompositeExtract 477 1 - Store 480 481 - 482:193(i16vec3) Load 356(u16v) - 483: 36(int16_t) Load 358(u16) - 484:193(i16vec3) CompositeConstruct 483 483 483 - 485: 425(bvec3) UGreaterThan 482 484 - Store 457(bv) 485 - 486: 52(i16vec2) Load 343(i16v) - 487: 14(int16_t) Load 346(i16) - 488: 52(i16vec2) CompositeConstruct 487 487 - 489: 174(bvec2) SGreaterThan 486 488 - 490: 280(ptr) AccessChain 457(bv) 282 - 491: 173(bool) CompositeExtract 489 0 - Store 490 491 - 492: 280(ptr) AccessChain 457(bv) 264 - 493: 173(bool) CompositeExtract 489 1 - Store 492 493 - 494:193(i16vec3) Load 356(u16v) - 495: 36(int16_t) Load 358(u16) - 496:193(i16vec3) CompositeConstruct 495 495 495 - 497: 425(bvec3) UGreaterThanEqual 494 496 - Store 457(bv) 497 - 498: 52(i16vec2) Load 343(i16v) - 499: 14(int16_t) Load 346(i16) - 500: 52(i16vec2) CompositeConstruct 499 499 - 501: 174(bvec2) SGreaterThanEqual 498 500 - 502: 280(ptr) AccessChain 457(bv) 282 - 503: 173(bool) CompositeExtract 501 0 - Store 502 503 - 504: 280(ptr) AccessChain 457(bv) 264 - 505: 173(bool) CompositeExtract 501 1 - Store 504 505 - 506:193(i16vec3) Load 356(u16v) - 507: 36(int16_t) Load 358(u16) - 508:193(i16vec3) CompositeConstruct 507 507 507 - 509: 425(bvec3) IEqual 506 508 - Store 457(bv) 509 - 510: 52(i16vec2) Load 343(i16v) - 511: 14(int16_t) Load 346(i16) - 512: 52(i16vec2) CompositeConstruct 511 511 - 513: 174(bvec2) IEqual 510 512 - 514: 280(ptr) AccessChain 457(bv) 282 - 515: 173(bool) CompositeExtract 513 0 - Store 514 515 - 516: 280(ptr) AccessChain 457(bv) 264 - 517: 173(bool) CompositeExtract 513 1 - Store 516 517 - 518:193(i16vec3) Load 356(u16v) - 519: 36(int16_t) Load 358(u16) - 520:193(i16vec3) CompositeConstruct 519 519 519 - 521: 425(bvec3) INotEqual 518 520 - Store 457(bv) 521 - 522: 52(i16vec2) Load 343(i16v) - 523: 14(int16_t) Load 346(i16) - 524: 52(i16vec2) CompositeConstruct 523 523 - 525: 174(bvec2) INotEqual 522 524 - 526: 280(ptr) AccessChain 457(bv) 282 - 527: 173(bool) CompositeExtract 525 0 - Store 526 527 - 528: 280(ptr) AccessChain 457(bv) 264 - 529: 173(bool) CompositeExtract 525 1 - Store 528 529 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.vulkan110.storageBuffer.vert.out b/deps/glslang/Test/baseResults/spv.vulkan110.storageBuffer.vert.out deleted file mode 100644 index 0774960a..00000000 --- a/deps/glslang/Test/baseResults/spv.vulkan110.storageBuffer.vert.out +++ /dev/null @@ -1,68 +0,0 @@ -spv.vulkan110.storageBuffer.vert -// Module Version 10300 -// Generated by (magic number): 8000a -// Id's are bound by 31 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 13 - Source GLSL 450 - Name 4 "main" - Name 11 "gl_PerVertex" - MemberName 11(gl_PerVertex) 0 "gl_Position" - MemberName 11(gl_PerVertex) 1 "gl_PointSize" - MemberName 11(gl_PerVertex) 2 "gl_ClipDistance" - MemberName 11(gl_PerVertex) 3 "gl_CullDistance" - Name 13 "" - Name 16 "ub" - MemberName 16(ub) 0 "a" - Name 18 "ubi" - Name 22 "bb" - MemberName 22(bb) 0 "b" - Name 24 "bbi" - MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 11(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 11(gl_PerVertex) 2 BuiltIn ClipDistance - MemberDecorate 11(gl_PerVertex) 3 BuiltIn CullDistance - Decorate 11(gl_PerVertex) Block - MemberDecorate 16(ub) 0 Offset 0 - Decorate 16(ub) Block - Decorate 18(ubi) DescriptorSet 0 - Decorate 18(ubi) Binding 0 - MemberDecorate 22(bb) 0 Offset 0 - Decorate 22(bb) Block - Decorate 24(bbi) DescriptorSet 0 - Decorate 24(bbi) Binding 1 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeInt 32 0 - 9: 8(int) Constant 1 - 10: TypeArray 6(float) 9 -11(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 10 10 - 12: TypePointer Output 11(gl_PerVertex) - 13: 12(ptr) Variable Output - 14: TypeInt 32 1 - 15: 14(int) Constant 0 - 16(ub): TypeStruct 7(fvec4) - 17: TypePointer Uniform 16(ub) - 18(ubi): 17(ptr) Variable Uniform - 19: TypePointer Uniform 7(fvec4) - 22(bb): TypeStruct 7(fvec4) - 23: TypePointer StorageBuffer 22(bb) - 24(bbi): 23(ptr) Variable StorageBuffer - 25: TypePointer StorageBuffer 7(fvec4) - 29: TypePointer Output 7(fvec4) - 4(main): 2 Function None 3 - 5: Label - 20: 19(ptr) AccessChain 18(ubi) 15 - 21: 7(fvec4) Load 20 - 26: 25(ptr) AccessChain 24(bbi) 15 - 27: 7(fvec4) Load 26 - 28: 7(fvec4) FAdd 21 27 - 30: 29(ptr) AccessChain 13 15 - Store 30 28 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.while-continue-break.vert.out b/deps/glslang/Test/baseResults/spv.while-continue-break.vert.out deleted file mode 100644 index 246e5fd4..00000000 --- a/deps/glslang/Test/baseResults/spv.while-continue-break.vert.out +++ /dev/null @@ -1,73 +0,0 @@ -spv.while-continue-break.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 41 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" - Source ESSL 310 - Name 4 "main" - Name 8 "i" - Name 19 "A" - Name 27 "B" - Name 29 "C" - Name 39 "D" - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Function 6(int) - 9: 6(int) Constant 0 - 16: 6(int) Constant 10 - 17: TypeBool - 20: 6(int) Constant 1 - 22: 6(int) Constant 2 - 31: 6(int) Constant 5 - 40: 6(int) Constant 3 - 4(main): 2 Function None 3 - 5: Label - 8(i): 7(ptr) Variable Function - 19(A): 7(ptr) Variable Function - 27(B): 7(ptr) Variable Function - 29(C): 7(ptr) Variable Function - 39(D): 7(ptr) Variable Function - Store 8(i) 9 - Branch 10 - 10: Label - LoopMerge 12 13 None - Branch 14 - 14: Label - 15: 6(int) Load 8(i) - 18: 17(bool) SLessThan 15 16 - BranchConditional 18 11 12 - 11: Label - Store 19(A) 20 - 21: 6(int) Load 8(i) - 23: 6(int) SMod 21 22 - 24: 17(bool) IEqual 23 9 - SelectionMerge 26 None - BranchConditional 24 25 26 - 25: Label - Store 27(B) 22 - Branch 13 - 26: Label - 30: 6(int) Load 8(i) - 32: 6(int) SMod 30 31 - 33: 17(bool) IEqual 32 9 - SelectionMerge 35 None - BranchConditional 33 34 35 - 34: Label - Store 27(B) 22 - Branch 12 - 35: Label - 37: 6(int) Load 8(i) - 38: 6(int) IAdd 37 20 - Store 8(i) 38 - Branch 13 - 13: Label - Branch 10 - 12: Label - Store 39(D) 40 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.while-simple.vert.out b/deps/glslang/Test/baseResults/spv.while-simple.vert.out deleted file mode 100644 index 894dea1d..00000000 --- a/deps/glslang/Test/baseResults/spv.while-simple.vert.out +++ /dev/null @@ -1,42 +0,0 @@ -spv.while-simple.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 22 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" - Source ESSL 310 - Name 4 "main" - Name 8 "i" - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Function 6(int) - 9: 6(int) Constant 0 - 16: 6(int) Constant 10 - 17: TypeBool - 20: 6(int) Constant 1 - 4(main): 2 Function None 3 - 5: Label - 8(i): 7(ptr) Variable Function - Store 8(i) 9 - Branch 10 - 10: Label - LoopMerge 12 13 None - Branch 14 - 14: Label - 15: 6(int) Load 8(i) - 18: 17(bool) SLessThan 15 16 - BranchConditional 18 11 12 - 11: Label - 19: 6(int) Load 8(i) - 21: 6(int) IAdd 19 20 - Store 8(i) 21 - Branch 13 - 13: Label - Branch 10 - 12: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.whileLoop.frag.out b/deps/glslang/Test/baseResults/spv.whileLoop.frag.out deleted file mode 100644 index 6155f7bd..00000000 --- a/deps/glslang/Test/baseResults/spv.whileLoop.frag.out +++ /dev/null @@ -1,65 +0,0 @@ -spv.whileLoop.frag -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 35 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 11 24 28 33 - ExecutionMode 4 OriginUpperLeft - Source GLSL 140 - Name 4 "main" - Name 9 "color" - Name 11 "BaseColor" - Name 24 "d" - Name 28 "bigColor" - Name 33 "gl_FragColor" - Decorate 11(BaseColor) Location 1 - Decorate 24(d) Location 2 - Decorate 28(bigColor) Location 0 - Decorate 33(gl_FragColor) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: TypePointer Input 7(fvec4) - 11(BaseColor): 10(ptr) Variable Input - 18: TypeInt 32 0 - 19: 18(int) Constant 0 - 20: TypePointer Function 6(float) - 23: TypePointer Input 6(float) - 24(d): 23(ptr) Variable Input - 26: TypeBool - 28(bigColor): 10(ptr) Variable Input - 32: TypePointer Output 7(fvec4) -33(gl_FragColor): 32(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 9(color): 8(ptr) Variable Function - 12: 7(fvec4) Load 11(BaseColor) - Store 9(color) 12 - Branch 13 - 13: Label - LoopMerge 15 16 None - Branch 17 - 17: Label - 21: 20(ptr) AccessChain 9(color) 19 - 22: 6(float) Load 21 - 25: 6(float) Load 24(d) - 27: 26(bool) FOrdLessThan 22 25 - BranchConditional 27 14 15 - 14: Label - 29: 7(fvec4) Load 28(bigColor) - 30: 7(fvec4) Load 9(color) - 31: 7(fvec4) FAdd 30 29 - Store 9(color) 31 - Branch 16 - 16: Label - Branch 13 - 15: Label - 34: 7(fvec4) Load 9(color) - Store 33(gl_FragColor) 34 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.xfb.vert.out b/deps/glslang/Test/baseResults/spv.xfb.vert.out deleted file mode 100644 index 3fdc60b2..00000000 --- a/deps/glslang/Test/baseResults/spv.xfb.vert.out +++ /dev/null @@ -1,55 +0,0 @@ -spv.xfb.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 16 - - Capability Shader - Capability TransformFeedback - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 8 11 14 15 - ExecutionMode 4 Xfb - Source GLSL 450 - Name 4 "main" - Name 8 "out1" - Name 9 "outXfb" - MemberName 9(outXfb) 0 "out2" - Name 11 "" - Name 12 "outXfb2" - MemberName 12(outXfb2) 0 "out3" - Name 14 "" - Name 15 "out4" - Decorate 8(out1) Location 0 - Decorate 8(out1) XfbBuffer 3 - Decorate 8(out1) XfbStride 48 - Decorate 8(out1) Offset 12 - MemberDecorate 9(outXfb) 0 Offset 8 - Decorate 9(outXfb) Block - Decorate 11 Location 1 - Decorate 11 XfbBuffer 2 - Decorate 11 XfbStride 32 - MemberDecorate 12(outXfb2) 0 Offset 60 - Decorate 12(outXfb2) Block - Decorate 14 Location 3 - Decorate 14 XfbBuffer 1 - Decorate 14 XfbStride 64 - Decorate 15(out4) Location 4 - Decorate 15(out4) XfbBuffer 0 - Decorate 15(out4) XfbStride 8 - Decorate 15(out4) Offset 4 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypePointer Output 6(float) - 8(out1): 7(ptr) Variable Output - 9(outXfb): TypeStruct 6(float) - 10: TypePointer Output 9(outXfb) - 11: 10(ptr) Variable Output - 12(outXfb2): TypeStruct 6(float) - 13: TypePointer Output 12(outXfb2) - 14: 13(ptr) Variable Output - 15(out4): 7(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.xfb2.vert.out b/deps/glslang/Test/baseResults/spv.xfb2.vert.out deleted file mode 100644 index cbb8fc63..00000000 --- a/deps/glslang/Test/baseResults/spv.xfb2.vert.out +++ /dev/null @@ -1,68 +0,0 @@ -spv.xfb2.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 35 - - Capability Shader - Capability TransformFeedback - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 10 14 - ExecutionMode 4 Xfb - Source GLSL 450 - Name 4 "main" - Name 8 "gl_PerVertex" - MemberName 8(gl_PerVertex) 0 "gl_Position" - Name 10 "" - Name 14 "position" - Name 17 "ComponentsBlock" - MemberName 17(ComponentsBlock) 0 "c1" - MemberName 17(ComponentsBlock) 1 "c2" - Name 19 "components" - MemberDecorate 8(gl_PerVertex) 0 Offset 16 - MemberDecorate 8(gl_PerVertex) 0 BuiltIn Position - Decorate 8(gl_PerVertex) Block - Decorate 10 XfbBuffer 3 - Decorate 10 XfbStride 32 - Decorate 14(position) Location 0 - MemberDecorate 17(ComponentsBlock) 0 Offset 0 - MemberDecorate 17(ComponentsBlock) 1 Offset 16 - Decorate 17(ComponentsBlock) Block - Decorate 19(components) DescriptorSet 0 - Decorate 19(components) Binding 5 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8(gl_PerVertex): TypeStruct 7(fvec4) - 9: TypePointer Output 8(gl_PerVertex) - 10: 9(ptr) Variable Output - 11: TypeInt 32 1 - 12: 11(int) Constant 0 - 13: TypePointer Input 7(fvec4) - 14(position): 13(ptr) Variable Input - 16: TypeVector 6(float) 2 -17(ComponentsBlock): TypeStruct 7(fvec4) 16(fvec2) - 18: TypePointer Uniform 17(ComponentsBlock) - 19(components): 18(ptr) Variable Uniform - 20: TypePointer Uniform 7(fvec4) - 24: 11(int) Constant 1 - 25: TypePointer Uniform 16(fvec2) - 28: 6(float) Constant 0 - 33: TypePointer Output 7(fvec4) - 4(main): 2 Function None 3 - 5: Label - 15: 7(fvec4) Load 14(position) - 21: 20(ptr) AccessChain 19(components) 12 - 22: 7(fvec4) Load 21 - 23: 7(fvec4) FAdd 15 22 - 26: 25(ptr) AccessChain 19(components) 24 - 27: 16(fvec2) Load 26 - 29: 6(float) CompositeExtract 27 0 - 30: 6(float) CompositeExtract 27 1 - 31: 7(fvec4) CompositeConstruct 29 30 28 28 - 32: 7(fvec4) FAdd 23 31 - 34: 33(ptr) AccessChain 10 12 - Store 34 32 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.xfb3.vert.out b/deps/glslang/Test/baseResults/spv.xfb3.vert.out deleted file mode 100644 index ef53b9aa..00000000 --- a/deps/glslang/Test/baseResults/spv.xfb3.vert.out +++ /dev/null @@ -1,68 +0,0 @@ -spv.xfb3.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 35 - - Capability Shader - Capability TransformFeedback - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 10 14 - ExecutionMode 4 Xfb - Source GLSL 450 - Name 4 "main" - Name 8 "gl_PerVertex" - MemberName 8(gl_PerVertex) 0 "gl_Position" - Name 10 "" - Name 14 "position" - Name 17 "ComponentsBlock" - MemberName 17(ComponentsBlock) 0 "c1" - MemberName 17(ComponentsBlock) 1 "c2" - Name 19 "components" - MemberDecorate 8(gl_PerVertex) 0 Offset 16 - MemberDecorate 8(gl_PerVertex) 0 BuiltIn Position - Decorate 8(gl_PerVertex) Block - Decorate 10 XfbBuffer 3 - Decorate 10 XfbStride 80 - Decorate 14(position) Location 0 - MemberDecorate 17(ComponentsBlock) 0 Offset 0 - MemberDecorate 17(ComponentsBlock) 1 Offset 16 - Decorate 17(ComponentsBlock) Block - Decorate 19(components) DescriptorSet 0 - Decorate 19(components) Binding 5 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8(gl_PerVertex): TypeStruct 7(fvec4) - 9: TypePointer Output 8(gl_PerVertex) - 10: 9(ptr) Variable Output - 11: TypeInt 32 1 - 12: 11(int) Constant 0 - 13: TypePointer Input 7(fvec4) - 14(position): 13(ptr) Variable Input - 16: TypeVector 6(float) 2 -17(ComponentsBlock): TypeStruct 7(fvec4) 16(fvec2) - 18: TypePointer Uniform 17(ComponentsBlock) - 19(components): 18(ptr) Variable Uniform - 20: TypePointer Uniform 7(fvec4) - 24: 11(int) Constant 1 - 25: TypePointer Uniform 16(fvec2) - 28: 6(float) Constant 0 - 33: TypePointer Output 7(fvec4) - 4(main): 2 Function None 3 - 5: Label - 15: 7(fvec4) Load 14(position) - 21: 20(ptr) AccessChain 19(components) 12 - 22: 7(fvec4) Load 21 - 23: 7(fvec4) FAdd 15 22 - 26: 25(ptr) AccessChain 19(components) 24 - 27: 16(fvec2) Load 26 - 29: 6(float) CompositeExtract 27 0 - 30: 6(float) CompositeExtract 27 1 - 31: 7(fvec4) CompositeConstruct 29 30 28 28 - 32: 7(fvec4) FAdd 23 31 - 34: 33(ptr) AccessChain 10 12 - Store 34 32 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.xfbOffsetOnBlockMembersAssignment.vert.out b/deps/glslang/Test/baseResults/spv.xfbOffsetOnBlockMembersAssignment.vert.out deleted file mode 100644 index e2c6093b..00000000 --- a/deps/glslang/Test/baseResults/spv.xfbOffsetOnBlockMembersAssignment.vert.out +++ /dev/null @@ -1,76 +0,0 @@ -spv.xfbOffsetOnBlockMembersAssignment.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 33 - - Capability Shader - Capability TransformFeedback - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 10 27 31 32 - ExecutionMode 4 Xfb - Source GLSL 450 - Name 4 "main" - Name 8 "block2" - MemberName 8(block2) 0 "y1_out" - MemberName 8(block2) 1 "y2_out" - Name 10 "" - Name 25 "gl_PerVertex" - MemberName 25(gl_PerVertex) 0 "gl_Position" - MemberName 25(gl_PerVertex) 1 "gl_PointSize" - MemberName 25(gl_PerVertex) 2 "gl_ClipDistance" - MemberName 25(gl_PerVertex) 3 "gl_CullDistance" - Name 27 "" - Name 31 "gl_VertexID" - Name 32 "gl_InstanceID" - MemberDecorate 8(block2) 0 Offset 0 - MemberDecorate 8(block2) 1 Offset 4 - Decorate 8(block2) Block - Decorate 10 Location 5 - Decorate 10 XfbBuffer 2 - Decorate 10 XfbStride 20 - MemberDecorate 25(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 25(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 25(gl_PerVertex) 2 BuiltIn ClipDistance - MemberDecorate 25(gl_PerVertex) 3 BuiltIn CullDistance - Decorate 25(gl_PerVertex) Block - Decorate 27 XfbBuffer 0 - Decorate 27 XfbStride 0 - Decorate 31(gl_VertexID) BuiltIn VertexId - Decorate 32(gl_InstanceID) BuiltIn InstanceId - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8(block2): TypeStruct 6(float) 7(fvec4) - 9: TypePointer Output 8(block2) - 10: 9(ptr) Variable Output - 11: TypeInt 32 1 - 12: 11(int) Constant 0 - 13: 6(float) Constant 1088421888 - 14: TypePointer Output 6(float) - 16: 11(int) Constant 1 - 17: 6(float) Constant 1065353216 - 18: 6(float) Constant 0 - 19: 7(fvec4) ConstantComposite 17 18 18 17 - 20: TypePointer Output 7(fvec4) - 22: TypeInt 32 0 - 23: 22(int) Constant 1 - 24: TypeArray 6(float) 23 -25(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 24 24 - 26: TypePointer Output 25(gl_PerVertex) - 27: 26(ptr) Variable Output - 28: 7(fvec4) ConstantComposite 18 18 18 18 - 30: TypePointer Input 11(int) - 31(gl_VertexID): 30(ptr) Variable Input -32(gl_InstanceID): 30(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 15: 14(ptr) AccessChain 10 12 - Store 15 13 - 21: 20(ptr) AccessChain 10 16 - Store 21 19 - 29: 20(ptr) AccessChain 27 12 - Store 29 28 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.xfbOffsetOnStructMembersAssignment.vert.out b/deps/glslang/Test/baseResults/spv.xfbOffsetOnStructMembersAssignment.vert.out deleted file mode 100644 index 499ac8c1..00000000 --- a/deps/glslang/Test/baseResults/spv.xfbOffsetOnStructMembersAssignment.vert.out +++ /dev/null @@ -1,91 +0,0 @@ -spv.xfbOffsetOnStructMembersAssignment.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 40 - - Capability Shader - Capability TransformFeedback - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 9 21 34 38 39 - ExecutionMode 4 Xfb - Source GLSL 450 - Name 4 "main" - Name 7 "S" - MemberName 7(S) 0 "x1_out" - MemberName 7(S) 1 "x2_out" - Name 9 "s1" - Name 19 "S2" - MemberName 19(S2) 0 "y1_out" - MemberName 19(S2) 1 "y2_out" - Name 21 "s2" - Name 32 "gl_PerVertex" - MemberName 32(gl_PerVertex) 0 "gl_Position" - MemberName 32(gl_PerVertex) 1 "gl_PointSize" - MemberName 32(gl_PerVertex) 2 "gl_ClipDistance" - MemberName 32(gl_PerVertex) 3 "gl_CullDistance" - Name 34 "" - Name 38 "gl_VertexID" - Name 39 "gl_InstanceID" - Decorate 9(s1) Location 0 - Decorate 9(s1) XfbBuffer 2 - Decorate 9(s1) XfbStride 24 - Decorate 9(s1) Offset 16 - Decorate 21(s2) Location 5 - Decorate 21(s2) XfbBuffer 1 - Decorate 21(s2) XfbStride 28 - Decorate 21(s2) Offset 8 - MemberDecorate 32(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 32(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 32(gl_PerVertex) 2 BuiltIn ClipDistance - MemberDecorate 32(gl_PerVertex) 3 BuiltIn CullDistance - Decorate 32(gl_PerVertex) Block - Decorate 34 XfbBuffer 0 - Decorate 34 XfbStride 0 - Decorate 38(gl_VertexID) BuiltIn VertexId - Decorate 39(gl_InstanceID) BuiltIn InstanceId - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7(S): TypeStruct 6(float) 6(float) - 8: TypePointer Output 7(S) - 9(s1): 8(ptr) Variable Output - 10: TypeInt 32 1 - 11: 10(int) Constant 0 - 12: 6(float) Constant 1084227584 - 13: TypePointer Output 6(float) - 15: 10(int) Constant 1 - 16: 6(float) Constant 1086324736 - 18: TypeVector 6(float) 4 - 19(S2): TypeStruct 6(float) 18(fvec4) - 20: TypePointer Output 19(S2) - 21(s2): 20(ptr) Variable Output - 22: 6(float) Constant 1088421888 - 24: 6(float) Constant 1065353216 - 25: 6(float) Constant 0 - 26: 18(fvec4) ConstantComposite 24 25 25 24 - 27: TypePointer Output 18(fvec4) - 29: TypeInt 32 0 - 30: 29(int) Constant 1 - 31: TypeArray 6(float) 30 -32(gl_PerVertex): TypeStruct 18(fvec4) 6(float) 31 31 - 33: TypePointer Output 32(gl_PerVertex) - 34: 33(ptr) Variable Output - 35: 18(fvec4) ConstantComposite 25 25 25 25 - 37: TypePointer Input 10(int) - 38(gl_VertexID): 37(ptr) Variable Input -39(gl_InstanceID): 37(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 14: 13(ptr) AccessChain 9(s1) 11 - Store 14 12 - 17: 13(ptr) AccessChain 9(s1) 15 - Store 17 16 - 23: 13(ptr) AccessChain 21(s2) 11 - Store 23 22 - 28: 27(ptr) AccessChain 21(s2) 15 - Store 28 26 - 36: 27(ptr) AccessChain 34 11 - Store 36 35 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.xfbOverlapOffsetCheckWithBlockAndMember.vert.out b/deps/glslang/Test/baseResults/spv.xfbOverlapOffsetCheckWithBlockAndMember.vert.out deleted file mode 100644 index f7476c7b..00000000 --- a/deps/glslang/Test/baseResults/spv.xfbOverlapOffsetCheckWithBlockAndMember.vert.out +++ /dev/null @@ -1,88 +0,0 @@ -spv.xfbOverlapOffsetCheckWithBlockAndMember.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 39 - - Capability Shader - Capability TransformFeedback - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 10 33 37 38 - ExecutionMode 4 Xfb - Source GLSL 450 - Name 4 "main" - Name 8 "block2" - MemberName 8(block2) 0 "v" - MemberName 8(block2) 1 "u" - MemberName 8(block2) 2 "w" - MemberName 8(block2) 3 "x" - Name 10 "" - Name 31 "gl_PerVertex" - MemberName 31(gl_PerVertex) 0 "gl_Position" - MemberName 31(gl_PerVertex) 1 "gl_PointSize" - MemberName 31(gl_PerVertex) 2 "gl_ClipDistance" - MemberName 31(gl_PerVertex) 3 "gl_CullDistance" - Name 33 "" - Name 37 "gl_VertexID" - Name 38 "gl_InstanceID" - MemberDecorate 8(block2) 0 Offset 12 - MemberDecorate 8(block2) 1 Offset 28 - MemberDecorate 8(block2) 2 Offset 40 - MemberDecorate 8(block2) 3 Offset 56 - Decorate 8(block2) Block - Decorate 10 Location 5 - Decorate 10 XfbBuffer 3 - Decorate 10 XfbStride 72 - MemberDecorate 31(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 31(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 31(gl_PerVertex) 2 BuiltIn ClipDistance - MemberDecorate 31(gl_PerVertex) 3 BuiltIn CullDistance - Decorate 31(gl_PerVertex) Block - Decorate 33 XfbBuffer 0 - Decorate 33 XfbStride 0 - Decorate 37(gl_VertexID) BuiltIn VertexId - Decorate 38(gl_InstanceID) BuiltIn InstanceId - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8(block2): TypeStruct 7(fvec4) 6(float) 7(fvec4) 7(fvec4) - 9: TypePointer Output 8(block2) - 10: 9(ptr) Variable Output - 11: TypeInt 32 1 - 12: 11(int) Constant 0 - 13: 6(float) Constant 1065353216 - 14: 6(float) Constant 0 - 15: 7(fvec4) ConstantComposite 13 14 13 14 - 16: TypePointer Output 7(fvec4) - 18: 11(int) Constant 1 - 19: 6(float) Constant 1084227584 - 20: TypePointer Output 6(float) - 22: 11(int) Constant 2 - 23: 7(fvec4) ConstantComposite 13 14 14 13 - 25: 11(int) Constant 3 - 26: 7(fvec4) ConstantComposite 19 14 14 14 - 28: TypeInt 32 0 - 29: 28(int) Constant 1 - 30: TypeArray 6(float) 29 -31(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 30 30 - 32: TypePointer Output 31(gl_PerVertex) - 33: 32(ptr) Variable Output - 34: 7(fvec4) ConstantComposite 14 14 14 14 - 36: TypePointer Input 11(int) - 37(gl_VertexID): 36(ptr) Variable Input -38(gl_InstanceID): 36(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 17: 16(ptr) AccessChain 10 12 - Store 17 15 - 21: 20(ptr) AccessChain 10 18 - Store 21 19 - 24: 16(ptr) AccessChain 10 22 - Store 24 23 - 27: 16(ptr) AccessChain 10 25 - Store 27 26 - 35: 16(ptr) AccessChain 33 12 - Store 35 34 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/spv.xfbStrideJustOnce.vert.out b/deps/glslang/Test/baseResults/spv.xfbStrideJustOnce.vert.out deleted file mode 100644 index bbd7768d..00000000 --- a/deps/glslang/Test/baseResults/spv.xfbStrideJustOnce.vert.out +++ /dev/null @@ -1,74 +0,0 @@ -spv.xfbStrideJustOnce.vert -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 33 - - Capability Shader - Capability TransformFeedback - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 10 27 31 32 - ExecutionMode 4 Xfb - Source GLSL 450 - Name 4 "main" - Name 8 "block" - MemberName 8(block) 0 "y1_out" - MemberName 8(block) 1 "y2_out" - Name 10 "" - Name 25 "gl_PerVertex" - MemberName 25(gl_PerVertex) 0 "gl_Position" - MemberName 25(gl_PerVertex) 1 "gl_PointSize" - MemberName 25(gl_PerVertex) 2 "gl_ClipDistance" - MemberName 25(gl_PerVertex) 3 "gl_CullDistance" - Name 27 "" - Name 31 "gl_VertexID" - Name 32 "gl_InstanceID" - Decorate 8(block) Block - Decorate 10 Location 5 - Decorate 10 XfbBuffer 2 - Decorate 10 XfbStride 20 - MemberDecorate 25(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 25(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 25(gl_PerVertex) 2 BuiltIn ClipDistance - MemberDecorate 25(gl_PerVertex) 3 BuiltIn CullDistance - Decorate 25(gl_PerVertex) Block - Decorate 27 XfbBuffer 0 - Decorate 27 XfbStride 0 - Decorate 31(gl_VertexID) BuiltIn VertexId - Decorate 32(gl_InstanceID) BuiltIn InstanceId - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8(block): TypeStruct 6(float) 7(fvec4) - 9: TypePointer Output 8(block) - 10: 9(ptr) Variable Output - 11: TypeInt 32 1 - 12: 11(int) Constant 0 - 13: 6(float) Constant 1088421888 - 14: TypePointer Output 6(float) - 16: 11(int) Constant 1 - 17: 6(float) Constant 1065353216 - 18: 6(float) Constant 0 - 19: 7(fvec4) ConstantComposite 17 18 18 17 - 20: TypePointer Output 7(fvec4) - 22: TypeInt 32 0 - 23: 22(int) Constant 1 - 24: TypeArray 6(float) 23 -25(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 24 24 - 26: TypePointer Output 25(gl_PerVertex) - 27: 26(ptr) Variable Output - 28: 7(fvec4) ConstantComposite 18 18 18 18 - 30: TypePointer Input 11(int) - 31(gl_VertexID): 30(ptr) Variable Input -32(gl_InstanceID): 30(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 15: 14(ptr) AccessChain 10 12 - Store 15 13 - 21: 20(ptr) AccessChain 10 16 - Store 21 19 - 29: 20(ptr) AccessChain 27 12 - Store 29 28 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/stringToDouble.vert.out b/deps/glslang/Test/baseResults/stringToDouble.vert.out deleted file mode 100644 index 3829c703..00000000 --- a/deps/glslang/Test/baseResults/stringToDouble.vert.out +++ /dev/null @@ -1,1045 +0,0 @@ -stringToDouble.vert -Shader version: 460 -Requested GL_EXT_shader_explicit_arithmetic_types_float16 -0:? Sequence -0:3 Function Definition: main( ( global void) -0:3 Function Parameters: -0:5 Sequence -0:5 Sequence -0:5 move second child to first child ( temp float) -0:5 'w1' ( temp float) -0:5 Constant: -0:5 0.000000 -0:6 Sequence -0:6 move second child to first child ( temp float) -0:6 'w2' ( temp float) -0:6 Constant: -0:6 1.000000 -0:7 Sequence -0:7 move second child to first child ( temp float) -0:7 'w3' ( temp float) -0:7 Constant: -0:7 7.000000 -0:8 Sequence -0:8 move second child to first child ( temp float) -0:8 'w4' ( temp float) -0:8 Constant: -0:8 130000.000000 -0:9 Sequence -0:9 move second child to first child ( temp float) -0:9 'w5' ( temp float) -0:9 Constant: -0:9 123456789.000000 -0:10 Sequence -0:10 move second child to first child ( temp double) -0:10 'w6' ( temp double) -0:10 Constant: -0:10 1.2345678901235e+15 -0:11 Sequence -0:11 move second child to first child ( temp double) -0:11 'w7' ( temp double) -0:11 Constant: -0:11 1.2345678901235e+16 -0:12 Sequence -0:12 move second child to first child ( temp double) -0:12 'w8' ( temp double) -0:12 Constant: -0:12 1.2345678901235e+17 -0:13 Sequence -0:13 move second child to first child ( temp double) -0:13 'w9' ( temp double) -0:13 Constant: -0:13 1.2345678901235e+19 -0:14 Sequence -0:14 move second child to first child ( temp double) -0:14 'w10' ( temp double) -0:14 Constant: -0:14 1.2345678901235e+24 -0:16 Sequence -0:16 move second child to first child ( temp float) -0:16 'e1' ( temp float) -0:16 Constant: -0:16 0.000000 -0:17 Sequence -0:17 move second child to first child ( temp float) -0:17 'e2' ( temp float) -0:17 Constant: -0:17 1.000000 -0:18 Sequence -0:18 move second child to first child ( temp float) -0:18 'e3' ( temp float) -0:18 Constant: -0:18 0.000000 -0:19 Sequence -0:19 move second child to first child ( temp float) -0:19 'e4' ( temp float) -0:19 Constant: -0:19 1.0000000000000e+15 -0:20 Sequence -0:20 move second child to first child ( temp float) -0:20 'e5' ( temp float) -0:20 Constant: -0:20 1.0000000000000e+16 -0:21 Sequence -0:21 move second child to first child ( temp float) -0:21 'e6' ( temp float) -0:21 Constant: -0:21 0.000000 -0:22 Sequence -0:22 move second child to first child ( temp float) -0:22 'e7' ( temp float) -0:22 Constant: -0:22 1.0000000000000e-15 -0:23 Sequence -0:23 move second child to first child ( temp float) -0:23 'e8' ( temp float) -0:23 Constant: -0:23 1.0000000000000e-16 -0:24 Sequence -0:24 move second child to first child ( temp double) -0:24 'e9' ( temp double) -0:24 Constant: -0:24 1.0000000000000e+100 -0:25 Sequence -0:25 move second child to first child ( temp double) -0:25 'e10' ( temp double) -0:25 Constant: -0:25 1.0000000000000e+308 -0:26 Sequence -0:26 move second child to first child ( temp double) -0:26 'e11' ( temp double) -0:26 Constant: -0:26 1.0000000000000e-307 -0:27 Sequence -0:27 move second child to first child ( temp double) -0:27 'e12' ( temp double) -0:27 Constant: -0:27 +1.#INF -0:28 Sequence -0:28 move second child to first child ( temp double) -0:28 'e13' ( temp double) -0:28 Constant: -0:28 0.000000 -0:29 Sequence -0:29 move second child to first child ( temp double) -0:29 'e24' ( temp double) -0:29 Constant: -0:29 +1.#INF -0:30 Sequence -0:30 move second child to first child ( temp double) -0:30 'e25' ( temp double) -0:30 Constant: -0:30 0.000000 -0:32 Sequence -0:32 move second child to first child ( temp double) -0:32 'f1' ( temp double) -0:32 Constant: -0:32 0.500000 -0:33 Sequence -0:33 move second child to first child ( temp double) -0:33 'f2' ( temp double) -0:33 Constant: -0:33 0.125000 -0:34 Sequence -0:34 move second child to first child ( temp double) -0:34 'f31' ( temp double) -0:34 Constant: -0:34 0.100000 -0:35 Sequence -0:35 move second child to first child ( temp double) -0:35 'f32' ( temp double) -0:35 Constant: -0:35 0.200000 -0:36 Sequence -0:36 move second child to first child ( temp double) -0:36 'f33' ( temp double) -0:36 Constant: -0:36 0.300000 -0:37 Sequence -0:37 move second child to first child ( temp double) -0:37 'f34' ( temp double) -0:37 Constant: -0:37 0.400000 -0:38 Sequence -0:38 move second child to first child ( temp double) -0:38 'f35' ( temp double) -0:38 Constant: -0:38 0.500000 -0:39 Sequence -0:39 move second child to first child ( temp double) -0:39 'f36' ( temp double) -0:39 Constant: -0:39 0.600000 -0:40 Sequence -0:40 move second child to first child ( temp double) -0:40 'f37' ( temp double) -0:40 Constant: -0:40 0.700000 -0:41 Sequence -0:41 move second child to first child ( temp double) -0:41 'f38' ( temp double) -0:41 Constant: -0:41 0.800000 -0:42 Sequence -0:42 move second child to first child ( temp double) -0:42 'f39' ( temp double) -0:42 Constant: -0:42 0.900000 -0:43 Sequence -0:43 move second child to first child ( temp double) -0:43 'f4' ( temp double) -0:43 Constant: -0:43 0.333333 -0:44 Sequence -0:44 move second child to first child ( temp double) -0:44 'f51' ( temp double) -0:44 Constant: -0:44 7.8347500000000e-37 -0:45 Sequence -0:45 move second child to first child ( temp double) -0:45 'f52' ( temp double) -0:45 Constant: -0:45 7.8347500000000e-37 -0:46 Sequence -0:46 move second child to first child ( temp double) -0:46 'f53' ( temp double) -0:46 Constant: -0:46 7.8347500000000e-37 -0:47 Sequence -0:47 move second child to first child ( temp double) -0:47 'f54' ( temp double) -0:47 Constant: -0:47 7.8347500000000e-37 -0:48 Sequence -0:48 move second child to first child ( temp double) -0:48 'f61' ( temp double) -0:48 Constant: -0:48 4.000000 -0:49 Sequence -0:49 move second child to first child ( temp double) -0:49 'f62' ( temp double) -0:49 Constant: -0:49 40.000000 -0:50 Sequence -0:50 move second child to first child ( temp double) -0:50 'f63' ( temp double) -0:50 Constant: -0:50 0.000000 -0:51 Sequence -0:51 move second child to first child ( temp double) -0:51 'f64' ( temp double) -0:51 Constant: -0:51 4.000000 -0:52 Sequence -0:52 move second child to first child ( temp double) -0:52 'f65' ( temp double) -0:52 Constant: -0:52 0.000000 -0:53 Sequence -0:53 move second child to first child ( temp double) -0:53 'f66' ( temp double) -0:53 Constant: -0:53 0.004000 -0:54 Sequence -0:54 move second child to first child ( temp double) -0:54 'f67' ( temp double) -0:54 Constant: -0:54 0.400000 -0:55 Sequence -0:55 move second child to first child ( temp double) -0:55 'f68' ( temp double) -0:55 Constant: -0:55 0.040000 -0:57 Sequence -0:57 move second child to first child ( temp double) -0:57 'c1' ( temp double) -0:57 Constant: -0:57 0.000810 -0:58 Sequence -0:58 move second child to first child ( temp double) -0:58 'c2' ( temp double) -0:58 Constant: -0:58 7.300000 -0:59 Sequence -0:59 move second child to first child ( temp double) -0:59 'c3' ( temp double) -0:59 Constant: -0:59 3.450000 -0:60 Sequence -0:60 move second child to first child ( temp double) -0:60 'c4' ( temp double) -0:60 Constant: -0:60 0.003570 -0:61 Sequence -0:61 move second child to first child ( temp double) -0:61 'c5' ( temp double) -0:61 Constant: -0:61 439.000000 -0:62 Sequence -0:62 move second child to first child ( temp double) -0:62 'c6' ( temp double) -0:62 Constant: -0:62 522000.000000 -0:63 Sequence -0:63 move second child to first child ( temp double) -0:63 'c7' ( temp double) -0:63 Constant: -0:63 61000000.000000 -0:64 Sequence -0:64 move second child to first child ( temp double) -0:64 'c8' ( temp double) -0:64 Constant: -0:64 0.610000 -0:65 Sequence -0:65 move second child to first child ( temp double) -0:65 'c9' ( temp double) -0:65 Constant: -0:65 1.2345678901235e+18 -0:66 Sequence -0:66 move second child to first child ( temp double) -0:66 'c10' ( temp double) -0:66 Constant: -0:66 1.0000000000000e+21 -0:67 Sequence -0:67 move second child to first child ( temp double) -0:67 'c11' ( temp double) -0:67 Constant: -0:67 1230000.004560 -0:68 Sequence -0:68 move second child to first child ( temp double) -0:68 'c12' ( temp double) -0:68 Constant: -0:68 1230.000004 -0:69 Sequence -0:69 move second child to first child ( temp double) -0:69 'c13' ( temp double) -0:69 Constant: -0:69 123.000000 -0:70 Sequence -0:70 move second child to first child ( temp double) -0:70 'c14' ( temp double) -0:70 Constant: -0:70 102.300000 -0:71 Sequence -0:71 move second child to first child ( temp double) -0:71 'c15' ( temp double) -0:71 Constant: -0:71 1.2003000000456e+12 -0:72 Sequence -0:72 move second child to first child ( temp double) -0:72 'c16' ( temp double) -0:72 Constant: -0:72 123000000456.000000 -0:73 Sequence -0:73 move second child to first child ( temp double) -0:73 'c17' ( temp double) -0:73 Constant: -0:73 1.2300000045600e+12 -0:74 Sequence -0:74 move second child to first child ( temp double) -0:74 'c18' ( temp double) -0:74 Constant: -0:74 1.2300000045601e+12 -0:76 Sequence -0:76 move second child to first child ( temp double) -0:76 'b11' ( temp double) -0:76 Constant: -0:76 7.2057594037928e+16 -0:77 Sequence -0:77 move second child to first child ( temp double) -0:77 'b12' ( temp double) -0:77 Constant: -0:77 7.2057594037928e+16 -0:78 Sequence -0:78 move second child to first child ( temp double) -0:78 'b13' ( temp double) -0:78 Constant: -0:78 7.2057594037928e+16 -0:79 Sequence -0:79 move second child to first child ( temp double) -0:79 'b14' ( temp double) -0:79 Constant: -0:79 7.2057594037928e+16 -0:80 Sequence -0:80 move second child to first child ( temp double) -0:80 'b15' ( temp double) -0:80 Constant: -0:80 7.2057594037928e+16 -0:81 Sequence -0:81 move second child to first child ( temp double) -0:81 'b21' ( temp double) -0:81 Constant: -0:81 9.2233720368548e+18 -0:82 Sequence -0:82 move second child to first child ( temp double) -0:82 'b22' ( temp double) -0:82 Constant: -0:82 9.2233720368548e+18 -0:83 Sequence -0:83 move second child to first child ( temp double) -0:83 'b23' ( temp double) -0:83 Constant: -0:83 9.2233720368548e+18 -0:84 Sequence -0:84 move second child to first child ( temp double) -0:84 'b24' ( temp double) -0:84 Constant: -0:84 9.2233720368548e+18 -0:85 Sequence -0:85 move second child to first child ( temp double) -0:85 'b25' ( temp double) -0:85 Constant: -0:85 9.2233720368548e+18 -0:86 Sequence -0:86 move second child to first child ( temp double) -0:86 'b31' ( temp double) -0:86 Constant: -0:86 1.0141204801826e+31 -0:87 Sequence -0:87 move second child to first child ( temp double) -0:87 'b32' ( temp double) -0:87 Constant: -0:87 1.0141204801826e+31 -0:88 Sequence -0:88 move second child to first child ( temp double) -0:88 'b33' ( temp double) -0:88 Constant: -0:88 1.0141204801826e+31 -0:89 Sequence -0:89 move second child to first child ( temp double) -0:89 'b34' ( temp double) -0:89 Constant: -0:89 1.0141204801826e+31 -0:90 Sequence -0:90 move second child to first child ( temp double) -0:90 'b35' ( temp double) -0:90 Constant: -0:90 1.0141204801826e+31 -0:91 Sequence -0:91 move second child to first child ( temp double) -0:91 'b41' ( temp double) -0:91 Constant: -0:91 5.7089907708238e+45 -0:92 Sequence -0:92 move second child to first child ( temp double) -0:92 'b42' ( temp double) -0:92 Constant: -0:92 5.7089907708238e+45 -0:93 Sequence -0:93 move second child to first child ( temp double) -0:93 'b43' ( temp double) -0:93 Constant: -0:93 5.7089907708238e+45 -0:94 Sequence -0:94 move second child to first child ( temp double) -0:94 'b44' ( temp double) -0:94 Constant: -0:94 5.7089907708238e+45 -0:95 Sequence -0:95 move second child to first child ( temp double) -0:95 'b45' ( temp double) -0:95 Constant: -0:95 5.7089907708238e+45 -0:97 Sequence -0:97 move second child to first child ( temp float) -0:97 'pi1' ( temp float) -0:97 Constant: -0:97 3.141593 -0:98 Sequence -0:98 move second child to first child ( temp float) -0:98 'pi2' ( temp float) -0:98 Constant: -0:98 3.141593 -0:99 Sequence -0:99 move second child to first child ( temp float) -0:99 'pi3' ( temp float) -0:99 Constant: -0:99 3.141593 -0:101 Sequence -0:101 move second child to first child ( temp double) -0:101 'dpi1' ( temp double) -0:101 Constant: -0:101 3.141593 -0:102 Sequence -0:102 move second child to first child ( temp double) -0:102 'dpi2' ( temp double) -0:102 Constant: -0:102 3.141593 -0:103 Sequence -0:103 move second child to first child ( temp double) -0:103 'dpi3' ( temp double) -0:103 Constant: -0:103 3.141593 -0:105 Sequence -0:105 move second child to first child ( temp float) -0:105 'dfpi1' ( temp float) -0:105 Constant: -0:105 3.141593 -0:106 Sequence -0:106 move second child to first child ( temp float) -0:106 'dfpi2' ( temp float) -0:106 Constant: -0:106 3.141593 -0:107 Sequence -0:107 move second child to first child ( temp float) -0:107 'dfpi3' ( temp float) -0:107 Constant: -0:107 3.141593 -0:109 Sequence -0:109 move second child to first child ( temp double) -0:109 'lfpi1' ( temp double) -0:109 Constant: -0:109 3.141593 -0:110 Sequence -0:110 move second child to first child ( temp double) -0:110 'lfpi2' ( temp double) -0:110 Constant: -0:110 3.141593 -0:111 Sequence -0:111 move second child to first child ( temp double) -0:111 'lfpi3' ( temp double) -0:111 Constant: -0:111 3.141593 -0:113 Sequence -0:113 move second child to first child ( temp double) -0:113 'hfpi1' ( temp double) -0:113 Constant: -0:113 3.141593 -0:114 Sequence -0:114 move second child to first child ( temp double) -0:114 'hfpi2' ( temp double) -0:114 Constant: -0:114 3.141593 -0:115 Sequence -0:115 move second child to first child ( temp double) -0:115 'hfpi3' ( temp double) -0:115 Constant: -0:115 3.141593 -0:? Linker Objects -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - - -Linked vertex stage: - - -Shader version: 460 -Requested GL_EXT_shader_explicit_arithmetic_types_float16 -0:? Sequence -0:3 Function Definition: main( ( global void) -0:3 Function Parameters: -0:5 Sequence -0:5 Sequence -0:5 move second child to first child ( temp float) -0:5 'w1' ( temp float) -0:5 Constant: -0:5 0.000000 -0:6 Sequence -0:6 move second child to first child ( temp float) -0:6 'w2' ( temp float) -0:6 Constant: -0:6 1.000000 -0:7 Sequence -0:7 move second child to first child ( temp float) -0:7 'w3' ( temp float) -0:7 Constant: -0:7 7.000000 -0:8 Sequence -0:8 move second child to first child ( temp float) -0:8 'w4' ( temp float) -0:8 Constant: -0:8 130000.000000 -0:9 Sequence -0:9 move second child to first child ( temp float) -0:9 'w5' ( temp float) -0:9 Constant: -0:9 123456789.000000 -0:10 Sequence -0:10 move second child to first child ( temp double) -0:10 'w6' ( temp double) -0:10 Constant: -0:10 1.2345678901235e+15 -0:11 Sequence -0:11 move second child to first child ( temp double) -0:11 'w7' ( temp double) -0:11 Constant: -0:11 1.2345678901235e+16 -0:12 Sequence -0:12 move second child to first child ( temp double) -0:12 'w8' ( temp double) -0:12 Constant: -0:12 1.2345678901235e+17 -0:13 Sequence -0:13 move second child to first child ( temp double) -0:13 'w9' ( temp double) -0:13 Constant: -0:13 1.2345678901235e+19 -0:14 Sequence -0:14 move second child to first child ( temp double) -0:14 'w10' ( temp double) -0:14 Constant: -0:14 1.2345678901235e+24 -0:16 Sequence -0:16 move second child to first child ( temp float) -0:16 'e1' ( temp float) -0:16 Constant: -0:16 0.000000 -0:17 Sequence -0:17 move second child to first child ( temp float) -0:17 'e2' ( temp float) -0:17 Constant: -0:17 1.000000 -0:18 Sequence -0:18 move second child to first child ( temp float) -0:18 'e3' ( temp float) -0:18 Constant: -0:18 0.000000 -0:19 Sequence -0:19 move second child to first child ( temp float) -0:19 'e4' ( temp float) -0:19 Constant: -0:19 1.0000000000000e+15 -0:20 Sequence -0:20 move second child to first child ( temp float) -0:20 'e5' ( temp float) -0:20 Constant: -0:20 1.0000000000000e+16 -0:21 Sequence -0:21 move second child to first child ( temp float) -0:21 'e6' ( temp float) -0:21 Constant: -0:21 0.000000 -0:22 Sequence -0:22 move second child to first child ( temp float) -0:22 'e7' ( temp float) -0:22 Constant: -0:22 1.0000000000000e-15 -0:23 Sequence -0:23 move second child to first child ( temp float) -0:23 'e8' ( temp float) -0:23 Constant: -0:23 1.0000000000000e-16 -0:24 Sequence -0:24 move second child to first child ( temp double) -0:24 'e9' ( temp double) -0:24 Constant: -0:24 1.0000000000000e+100 -0:25 Sequence -0:25 move second child to first child ( temp double) -0:25 'e10' ( temp double) -0:25 Constant: -0:25 1.0000000000000e+308 -0:26 Sequence -0:26 move second child to first child ( temp double) -0:26 'e11' ( temp double) -0:26 Constant: -0:26 1.0000000000000e-307 -0:27 Sequence -0:27 move second child to first child ( temp double) -0:27 'e12' ( temp double) -0:27 Constant: -0:27 +1.#INF -0:28 Sequence -0:28 move second child to first child ( temp double) -0:28 'e13' ( temp double) -0:28 Constant: -0:28 0.000000 -0:29 Sequence -0:29 move second child to first child ( temp double) -0:29 'e24' ( temp double) -0:29 Constant: -0:29 +1.#INF -0:30 Sequence -0:30 move second child to first child ( temp double) -0:30 'e25' ( temp double) -0:30 Constant: -0:30 0.000000 -0:32 Sequence -0:32 move second child to first child ( temp double) -0:32 'f1' ( temp double) -0:32 Constant: -0:32 0.500000 -0:33 Sequence -0:33 move second child to first child ( temp double) -0:33 'f2' ( temp double) -0:33 Constant: -0:33 0.125000 -0:34 Sequence -0:34 move second child to first child ( temp double) -0:34 'f31' ( temp double) -0:34 Constant: -0:34 0.100000 -0:35 Sequence -0:35 move second child to first child ( temp double) -0:35 'f32' ( temp double) -0:35 Constant: -0:35 0.200000 -0:36 Sequence -0:36 move second child to first child ( temp double) -0:36 'f33' ( temp double) -0:36 Constant: -0:36 0.300000 -0:37 Sequence -0:37 move second child to first child ( temp double) -0:37 'f34' ( temp double) -0:37 Constant: -0:37 0.400000 -0:38 Sequence -0:38 move second child to first child ( temp double) -0:38 'f35' ( temp double) -0:38 Constant: -0:38 0.500000 -0:39 Sequence -0:39 move second child to first child ( temp double) -0:39 'f36' ( temp double) -0:39 Constant: -0:39 0.600000 -0:40 Sequence -0:40 move second child to first child ( temp double) -0:40 'f37' ( temp double) -0:40 Constant: -0:40 0.700000 -0:41 Sequence -0:41 move second child to first child ( temp double) -0:41 'f38' ( temp double) -0:41 Constant: -0:41 0.800000 -0:42 Sequence -0:42 move second child to first child ( temp double) -0:42 'f39' ( temp double) -0:42 Constant: -0:42 0.900000 -0:43 Sequence -0:43 move second child to first child ( temp double) -0:43 'f4' ( temp double) -0:43 Constant: -0:43 0.333333 -0:44 Sequence -0:44 move second child to first child ( temp double) -0:44 'f51' ( temp double) -0:44 Constant: -0:44 7.8347500000000e-37 -0:45 Sequence -0:45 move second child to first child ( temp double) -0:45 'f52' ( temp double) -0:45 Constant: -0:45 7.8347500000000e-37 -0:46 Sequence -0:46 move second child to first child ( temp double) -0:46 'f53' ( temp double) -0:46 Constant: -0:46 7.8347500000000e-37 -0:47 Sequence -0:47 move second child to first child ( temp double) -0:47 'f54' ( temp double) -0:47 Constant: -0:47 7.8347500000000e-37 -0:48 Sequence -0:48 move second child to first child ( temp double) -0:48 'f61' ( temp double) -0:48 Constant: -0:48 4.000000 -0:49 Sequence -0:49 move second child to first child ( temp double) -0:49 'f62' ( temp double) -0:49 Constant: -0:49 40.000000 -0:50 Sequence -0:50 move second child to first child ( temp double) -0:50 'f63' ( temp double) -0:50 Constant: -0:50 0.000000 -0:51 Sequence -0:51 move second child to first child ( temp double) -0:51 'f64' ( temp double) -0:51 Constant: -0:51 4.000000 -0:52 Sequence -0:52 move second child to first child ( temp double) -0:52 'f65' ( temp double) -0:52 Constant: -0:52 0.000000 -0:53 Sequence -0:53 move second child to first child ( temp double) -0:53 'f66' ( temp double) -0:53 Constant: -0:53 0.004000 -0:54 Sequence -0:54 move second child to first child ( temp double) -0:54 'f67' ( temp double) -0:54 Constant: -0:54 0.400000 -0:55 Sequence -0:55 move second child to first child ( temp double) -0:55 'f68' ( temp double) -0:55 Constant: -0:55 0.040000 -0:57 Sequence -0:57 move second child to first child ( temp double) -0:57 'c1' ( temp double) -0:57 Constant: -0:57 0.000810 -0:58 Sequence -0:58 move second child to first child ( temp double) -0:58 'c2' ( temp double) -0:58 Constant: -0:58 7.300000 -0:59 Sequence -0:59 move second child to first child ( temp double) -0:59 'c3' ( temp double) -0:59 Constant: -0:59 3.450000 -0:60 Sequence -0:60 move second child to first child ( temp double) -0:60 'c4' ( temp double) -0:60 Constant: -0:60 0.003570 -0:61 Sequence -0:61 move second child to first child ( temp double) -0:61 'c5' ( temp double) -0:61 Constant: -0:61 439.000000 -0:62 Sequence -0:62 move second child to first child ( temp double) -0:62 'c6' ( temp double) -0:62 Constant: -0:62 522000.000000 -0:63 Sequence -0:63 move second child to first child ( temp double) -0:63 'c7' ( temp double) -0:63 Constant: -0:63 61000000.000000 -0:64 Sequence -0:64 move second child to first child ( temp double) -0:64 'c8' ( temp double) -0:64 Constant: -0:64 0.610000 -0:65 Sequence -0:65 move second child to first child ( temp double) -0:65 'c9' ( temp double) -0:65 Constant: -0:65 1.2345678901235e+18 -0:66 Sequence -0:66 move second child to first child ( temp double) -0:66 'c10' ( temp double) -0:66 Constant: -0:66 1.0000000000000e+21 -0:67 Sequence -0:67 move second child to first child ( temp double) -0:67 'c11' ( temp double) -0:67 Constant: -0:67 1230000.004560 -0:68 Sequence -0:68 move second child to first child ( temp double) -0:68 'c12' ( temp double) -0:68 Constant: -0:68 1230.000004 -0:69 Sequence -0:69 move second child to first child ( temp double) -0:69 'c13' ( temp double) -0:69 Constant: -0:69 123.000000 -0:70 Sequence -0:70 move second child to first child ( temp double) -0:70 'c14' ( temp double) -0:70 Constant: -0:70 102.300000 -0:71 Sequence -0:71 move second child to first child ( temp double) -0:71 'c15' ( temp double) -0:71 Constant: -0:71 1.2003000000456e+12 -0:72 Sequence -0:72 move second child to first child ( temp double) -0:72 'c16' ( temp double) -0:72 Constant: -0:72 123000000456.000000 -0:73 Sequence -0:73 move second child to first child ( temp double) -0:73 'c17' ( temp double) -0:73 Constant: -0:73 1.2300000045600e+12 -0:74 Sequence -0:74 move second child to first child ( temp double) -0:74 'c18' ( temp double) -0:74 Constant: -0:74 1.2300000045601e+12 -0:76 Sequence -0:76 move second child to first child ( temp double) -0:76 'b11' ( temp double) -0:76 Constant: -0:76 7.2057594037928e+16 -0:77 Sequence -0:77 move second child to first child ( temp double) -0:77 'b12' ( temp double) -0:77 Constant: -0:77 7.2057594037928e+16 -0:78 Sequence -0:78 move second child to first child ( temp double) -0:78 'b13' ( temp double) -0:78 Constant: -0:78 7.2057594037928e+16 -0:79 Sequence -0:79 move second child to first child ( temp double) -0:79 'b14' ( temp double) -0:79 Constant: -0:79 7.2057594037928e+16 -0:80 Sequence -0:80 move second child to first child ( temp double) -0:80 'b15' ( temp double) -0:80 Constant: -0:80 7.2057594037928e+16 -0:81 Sequence -0:81 move second child to first child ( temp double) -0:81 'b21' ( temp double) -0:81 Constant: -0:81 9.2233720368548e+18 -0:82 Sequence -0:82 move second child to first child ( temp double) -0:82 'b22' ( temp double) -0:82 Constant: -0:82 9.2233720368548e+18 -0:83 Sequence -0:83 move second child to first child ( temp double) -0:83 'b23' ( temp double) -0:83 Constant: -0:83 9.2233720368548e+18 -0:84 Sequence -0:84 move second child to first child ( temp double) -0:84 'b24' ( temp double) -0:84 Constant: -0:84 9.2233720368548e+18 -0:85 Sequence -0:85 move second child to first child ( temp double) -0:85 'b25' ( temp double) -0:85 Constant: -0:85 9.2233720368548e+18 -0:86 Sequence -0:86 move second child to first child ( temp double) -0:86 'b31' ( temp double) -0:86 Constant: -0:86 1.0141204801826e+31 -0:87 Sequence -0:87 move second child to first child ( temp double) -0:87 'b32' ( temp double) -0:87 Constant: -0:87 1.0141204801826e+31 -0:88 Sequence -0:88 move second child to first child ( temp double) -0:88 'b33' ( temp double) -0:88 Constant: -0:88 1.0141204801826e+31 -0:89 Sequence -0:89 move second child to first child ( temp double) -0:89 'b34' ( temp double) -0:89 Constant: -0:89 1.0141204801826e+31 -0:90 Sequence -0:90 move second child to first child ( temp double) -0:90 'b35' ( temp double) -0:90 Constant: -0:90 1.0141204801826e+31 -0:91 Sequence -0:91 move second child to first child ( temp double) -0:91 'b41' ( temp double) -0:91 Constant: -0:91 5.7089907708238e+45 -0:92 Sequence -0:92 move second child to first child ( temp double) -0:92 'b42' ( temp double) -0:92 Constant: -0:92 5.7089907708238e+45 -0:93 Sequence -0:93 move second child to first child ( temp double) -0:93 'b43' ( temp double) -0:93 Constant: -0:93 5.7089907708238e+45 -0:94 Sequence -0:94 move second child to first child ( temp double) -0:94 'b44' ( temp double) -0:94 Constant: -0:94 5.7089907708238e+45 -0:95 Sequence -0:95 move second child to first child ( temp double) -0:95 'b45' ( temp double) -0:95 Constant: -0:95 5.7089907708238e+45 -0:97 Sequence -0:97 move second child to first child ( temp float) -0:97 'pi1' ( temp float) -0:97 Constant: -0:97 3.141593 -0:98 Sequence -0:98 move second child to first child ( temp float) -0:98 'pi2' ( temp float) -0:98 Constant: -0:98 3.141593 -0:99 Sequence -0:99 move second child to first child ( temp float) -0:99 'pi3' ( temp float) -0:99 Constant: -0:99 3.141593 -0:101 Sequence -0:101 move second child to first child ( temp double) -0:101 'dpi1' ( temp double) -0:101 Constant: -0:101 3.141593 -0:102 Sequence -0:102 move second child to first child ( temp double) -0:102 'dpi2' ( temp double) -0:102 Constant: -0:102 3.141593 -0:103 Sequence -0:103 move second child to first child ( temp double) -0:103 'dpi3' ( temp double) -0:103 Constant: -0:103 3.141593 -0:105 Sequence -0:105 move second child to first child ( temp float) -0:105 'dfpi1' ( temp float) -0:105 Constant: -0:105 3.141593 -0:106 Sequence -0:106 move second child to first child ( temp float) -0:106 'dfpi2' ( temp float) -0:106 Constant: -0:106 3.141593 -0:107 Sequence -0:107 move second child to first child ( temp float) -0:107 'dfpi3' ( temp float) -0:107 Constant: -0:107 3.141593 -0:109 Sequence -0:109 move second child to first child ( temp double) -0:109 'lfpi1' ( temp double) -0:109 Constant: -0:109 3.141593 -0:110 Sequence -0:110 move second child to first child ( temp double) -0:110 'lfpi2' ( temp double) -0:110 Constant: -0:110 3.141593 -0:111 Sequence -0:111 move second child to first child ( temp double) -0:111 'lfpi3' ( temp double) -0:111 Constant: -0:111 3.141593 -0:113 Sequence -0:113 move second child to first child ( temp double) -0:113 'hfpi1' ( temp double) -0:113 Constant: -0:113 3.141593 -0:114 Sequence -0:114 move second child to first child ( temp double) -0:114 'hfpi2' ( temp double) -0:114 Constant: -0:114 3.141593 -0:115 Sequence -0:115 move second child to first child ( temp double) -0:115 'hfpi3' ( temp double) -0:115 Constant: -0:115 3.141593 -0:? Linker Objects -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - diff --git a/deps/glslang/Test/baseResults/structAssignment.frag.out b/deps/glslang/Test/baseResults/structAssignment.frag.out deleted file mode 100644 index 5bd2ca89..00000000 --- a/deps/glslang/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/Test/baseResults/structDeref.frag.out b/deps/glslang/Test/baseResults/structDeref.frag.out deleted file mode 100644 index c3f964c7..00000000 --- a/deps/glslang/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/Test/baseResults/structure.frag.out b/deps/glslang/Test/baseResults/structure.frag.out deleted file mode 100644 index d12dceb4..00000000 --- a/deps/glslang/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/Test/baseResults/switch.frag.out b/deps/glslang/Test/baseResults/switch.frag.out deleted file mode 100644 index 9649c9bb..00000000 --- a/deps/glslang/Test/baseResults/switch.frag.out +++ /dev/null @@ -1,691 +0,0 @@ -switch.frag -ERROR: 0:11: 'switch' : condition must be a scalar integer expression -ERROR: 0:14: 'switch' : condition must be a scalar integer expression -ERROR: 0:21: 'switch' : last case/default label not followed by statements -ERROR: 0:28: 'switch' : cannot have statements before first case/default label -ERROR: 0:43: 'default' : duplicate label -ERROR: 0:63: 'case' : duplicated value -ERROR: 0:65: 'case' : scalar integer expression required -ERROR: 0:67: 'case' : constant expression required -ERROR: 0:89: '' : break statement only allowed in switch and loops -ERROR: 0:99: 'case' : cannot be nested inside control flow -ERROR: 0:104: 'case' : cannot be nested inside control flow -ERROR: 0:108: 'case' : cannot be nested inside control flow -ERROR: 0:115: 'default' : cannot be nested inside control flow -ERROR: 0:119: 'case' : cannot appear outside switch statement -ERROR: 0:120: 'default' : cannot appear outside switch statement -ERROR: 0:126: 'onlyInSwitch' : undeclared identifier -ERROR: 0:128: 'switch' : last case/default label not followed by statements -ERROR: 0:140: 'nestedX' : undeclared identifier -ERROR: 0:157: 'nestedZ' : undeclared identifier -ERROR: 19 compilation errors. No code generated. - - -Shader version: 300 -ERROR: node is still EOpNull! -0:6 Function Definition: main( ( global void) -0:6 Function Parameters: -0:? Sequence -0:11 'f' ( temp highp float) -0:14 'a' ( temp 2-element array of mediump int) -0:17 'c' ( uniform mediump int) -0:21 switch -0:21 condition -0:21 'c' ( uniform mediump int) -0:21 body -0:21 Sequence -0:23 case: with expression -0:23 Constant: -0:23 2 (const int) -0:21 Sequence -0:21 Branch: Break -0:26 switch -0:26 condition -0:26 'c' ( uniform mediump int) -0:26 body -0:26 Sequence -0:28 Sequence -0:28 move second child to first child ( temp highp float) -0:28 'f' ( temp highp float) -0:28 sine ( global highp float) -0:28 'x' ( smooth in highp float) -0:29 case: with expression -0:29 Constant: -0:29 2 (const int) -0:? Sequence -0:30 move second child to first child ( temp highp float) -0:30 'f' ( temp highp float) -0:30 cosine ( global highp float) -0:30 'x' ( smooth in highp float) -0:31 Branch: Break -0:34 switch -0:34 condition -0:34 'c' ( uniform mediump int) -0:34 body -0:34 Sequence -0:35 default: -0:? Sequence -0:36 Branch: Break -0:37 case: with expression -0:37 Constant: -0:37 1 (const int) -0:? Sequence -0:38 move second child to first child ( temp highp float) -0:38 'f' ( temp highp float) -0:38 sine ( global highp float) -0:38 'x' ( smooth in highp float) -0:39 Branch: Break -0:40 case: with expression -0:40 Constant: -0:40 2 (const int) -0:? Sequence -0:41 move second child to first child ( temp highp float) -0:41 'f' ( temp highp float) -0:41 cosine ( global highp float) -0:41 'x' ( smooth in highp float) -0:42 Branch: Break -0:43 default: -0:? Sequence -0:44 move second child to first child ( temp highp float) -0:44 'f' ( temp highp float) -0:44 tangent ( global highp float) -0:44 'x' ( smooth in highp float) -0:47 switch -0:47 condition -0:47 'c' ( uniform mediump int) -0:47 body -0:47 Sequence -0:48 case: with expression -0:48 Constant: -0:48 1 (const int) -0:? Sequence -0:49 move second child to first child ( temp highp float) -0:49 'f' ( temp highp float) -0:49 sine ( global highp float) -0:49 'x' ( smooth in highp float) -0:50 Branch: Break -0:51 case: with expression -0:51 Constant: -0:51 2 (const int) -0:? Sequence -0:52 switch -0:52 condition -0:52 'd' ( uniform mediump int) -0:52 body -0:52 Sequence -0:53 case: with expression -0:53 Constant: -0:53 1 (const int) -0:? Sequence -0:54 move second child to first child ( temp highp float) -0:54 'f' ( temp highp float) -0:54 component-wise multiply ( temp highp float) -0:54 component-wise multiply ( temp highp float) -0:54 'x' ( smooth in highp float) -0:54 'x' ( smooth in highp float) -0:54 'x' ( smooth in highp float) -0:55 Branch: Break -0:56 case: with expression -0:56 Constant: -0:56 2 (const int) -0:? Sequence -0:57 move second child to first child ( temp highp float) -0:57 'f' ( temp highp float) -0:57 component-wise multiply ( temp highp float) -0:57 'x' ( smooth in highp float) -0:57 'x' ( smooth in highp float) -0:58 Branch: Break -0:60 Branch: Break -0:61 default: -0:? Sequence -0:62 move second child to first child ( temp highp float) -0:62 'f' ( temp highp float) -0:62 tangent ( global highp float) -0:62 'x' ( smooth in highp float) -0:63 case: with expression -0:63 Constant: -0:63 1 (const int) -0:? Sequence -0:64 Branch: Break -0:65 case: with expression -0:65 Constant: -0:65 3.800000 -0:? Sequence -0:66 Branch: Break -0:67 case: with expression -0:67 'c' ( uniform mediump int) -0:? Sequence -0:68 Branch: Break -0:71 switch -0:71 condition -0:71 'c' ( uniform mediump int) -0:71 body -0:71 Sequence -0:72 case: with expression -0:72 Constant: -0:72 1 (const int) -0:? Sequence -0:73 move second child to first child ( temp highp float) -0:73 'f' ( temp highp float) -0:73 sine ( global highp float) -0:73 'x' ( smooth in highp float) -0:74 Branch: Break -0:75 case: with expression -0:75 Constant: -0:75 2 (const int) -0:? Sequence -0:76 switch -0:76 condition -0:76 'd' ( uniform mediump int) -0:76 body -0:76 Sequence -0:77 case: with expression -0:77 Constant: -0:77 1 (const int) -0:? Sequence -0:78 move second child to first child ( temp highp float) -0:78 'f' ( temp highp float) -0:78 component-wise multiply ( temp highp float) -0:78 component-wise multiply ( temp highp float) -0:78 'x' ( smooth in highp float) -0:78 'x' ( smooth in highp float) -0:78 'x' ( smooth in highp float) -0:79 Branch: Break -0:80 case: with expression -0:80 Constant: -0:80 2 (const int) -0:? Sequence -0:81 move second child to first child ( temp highp float) -0:81 'f' ( temp highp float) -0:81 component-wise multiply ( temp highp float) -0:81 'x' ( smooth in highp float) -0:81 'x' ( smooth in highp float) -0:82 Branch: Break -0:84 Branch: Break -0:85 default: -0:? Sequence -0:86 move second child to first child ( temp highp float) -0:86 'f' ( temp highp float) -0:86 tangent ( global highp float) -0:86 'x' ( smooth in highp float) -0:89 Branch: Break -0:91 switch -0:91 condition -0:91 'c' ( uniform mediump int) -0:91 body -0:91 Sequence -0:92 case: with expression -0:92 Constant: -0:92 1 (const int) -0:? Sequence -0:93 move second child to first child ( temp highp float) -0:93 'f' ( temp highp float) -0:93 sine ( global highp float) -0:93 'x' ( smooth in highp float) -0:94 Branch: Break -0:95 case: with expression -0:95 Constant: -0:95 2 (const int) -0:? Sequence -0:96 switch -0:96 condition -0:96 'd' ( uniform mediump int) -0:96 body -0:96 Sequence -0:97 case: with expression -0:97 Constant: -0:97 1 (const int) -0:? Sequence -0:? Sequence -0:100 Branch: Break -0:102 move second child to first child ( temp highp float) -0:102 'f' ( temp highp float) -0:102 component-wise multiply ( temp highp float) -0:102 component-wise multiply ( temp highp float) -0:102 'x' ( smooth in highp float) -0:102 'x' ( smooth in highp float) -0:102 'x' ( smooth in highp float) -0:103 Test condition and select ( temp void) -0:103 Condition -0:103 Compare Less Than ( temp bool) -0:103 'c' ( uniform mediump int) -0:103 'd' ( uniform mediump int) -0:103 true case -0:? Sequence -0:105 move second child to first child ( temp highp float) -0:105 'f' ( temp highp float) -0:105 component-wise multiply ( temp highp float) -0:105 'x' ( smooth in highp float) -0:105 'x' ( smooth in highp float) -0:107 Test condition and select ( temp void) -0:107 Condition -0:107 Compare Less Than ( temp bool) -0:107 'd' ( uniform mediump int) -0:107 'c' ( uniform mediump int) -0:107 true case is null -0:109 Branch: Break -0:111 Branch: Break -0:112 case: with expression -0:112 Constant: -0:112 4 (const int) -0:? Sequence -0:113 move second child to first child ( temp highp float) -0:113 'f' ( temp highp float) -0:113 tangent ( global highp float) -0:113 'x' ( smooth in highp float) -0:114 Test condition and select ( temp void) -0:114 Condition -0:114 Compare Less Than ( temp bool) -0:114 'f' ( temp highp float) -0:114 Constant: -0:114 0.000000 -0:114 true case is null -0:116 Branch: Break -0:122 switch -0:122 condition -0:122 Constant: -0:122 0 (const int) -0:122 body -0:122 Sequence -0:123 default: -0:? Sequence -0:124 Sequence -0:124 move second child to first child ( temp mediump int) -0:124 'onlyInSwitch' ( temp mediump int) -0:124 Constant: -0:124 0 (const int) -0:126 'onlyInSwitch' ( temp float) -0:128 switch -0:128 condition -0:128 Constant: -0:128 0 (const int) -0:128 body -0:128 Sequence -0:129 default: -0:128 Sequence -0:128 Branch: Break -0:133 switch -0:133 condition -0:133 'c' ( uniform mediump int) -0:133 body -0:133 Sequence -0:134 case: with expression -0:134 Constant: -0:134 1 (const int) -0:? Sequence -0:? Sequence -0:137 Branch: Break -0:139 case: with expression -0:139 Constant: -0:139 2 (const int) -0:? Sequence -0:140 'nestedX' ( temp float) -0:143 Branch: Break -0:144 case: with expression -0:144 Constant: -0:144 3 (const int) -0:? Sequence -0:146 Branch: Break -0:147 Branch: Break -0:148 case: with expression -0:148 Constant: -0:148 4 (const int) -0:? Sequence -0:149 Sequence -0:149 move second child to first child ( temp mediump int) -0:149 'linearY' ( temp mediump int) -0:149 'linearZ' ( temp mediump int) -0:150 Branch: Break -0:151 case: with expression -0:151 Constant: -0:151 5 (const int) -0:? Sequence -0:153 Branch: Break -0:154 case: with expression -0:154 Constant: -0:154 6 (const int) -0:? Sequence -0:155 Constant: -0:155 4 (const int) -0:157 'nestedZ' ( temp float) -0:? Linker Objects -0:? 'c' ( uniform mediump int) -0:? 'd' ( uniform mediump int) -0:? 'x' ( smooth in highp float) - - -Linked fragment stage: - - -Shader version: 300 -ERROR: node is still EOpNull! -0:6 Function Definition: main( ( global void) -0:6 Function Parameters: -0:? Sequence -0:11 'f' ( temp highp float) -0:14 'a' ( temp 2-element array of mediump int) -0:17 'c' ( uniform mediump int) -0:21 switch -0:21 condition -0:21 'c' ( uniform mediump int) -0:21 body -0:21 Sequence -0:23 case: with expression -0:23 Constant: -0:23 2 (const int) -0:21 Sequence -0:21 Branch: Break -0:26 switch -0:26 condition -0:26 'c' ( uniform mediump int) -0:26 body -0:26 Sequence -0:28 Sequence -0:28 move second child to first child ( temp highp float) -0:28 'f' ( temp highp float) -0:28 sine ( global highp float) -0:28 'x' ( smooth in highp float) -0:29 case: with expression -0:29 Constant: -0:29 2 (const int) -0:? Sequence -0:30 move second child to first child ( temp highp float) -0:30 'f' ( temp highp float) -0:30 cosine ( global highp float) -0:30 'x' ( smooth in highp float) -0:31 Branch: Break -0:34 switch -0:34 condition -0:34 'c' ( uniform mediump int) -0:34 body -0:34 Sequence -0:35 default: -0:? Sequence -0:36 Branch: Break -0:37 case: with expression -0:37 Constant: -0:37 1 (const int) -0:? Sequence -0:38 move second child to first child ( temp highp float) -0:38 'f' ( temp highp float) -0:38 sine ( global highp float) -0:38 'x' ( smooth in highp float) -0:39 Branch: Break -0:40 case: with expression -0:40 Constant: -0:40 2 (const int) -0:? Sequence -0:41 move second child to first child ( temp highp float) -0:41 'f' ( temp highp float) -0:41 cosine ( global highp float) -0:41 'x' ( smooth in highp float) -0:42 Branch: Break -0:43 default: -0:? Sequence -0:44 move second child to first child ( temp highp float) -0:44 'f' ( temp highp float) -0:44 tangent ( global highp float) -0:44 'x' ( smooth in highp float) -0:47 switch -0:47 condition -0:47 'c' ( uniform mediump int) -0:47 body -0:47 Sequence -0:48 case: with expression -0:48 Constant: -0:48 1 (const int) -0:? Sequence -0:49 move second child to first child ( temp highp float) -0:49 'f' ( temp highp float) -0:49 sine ( global highp float) -0:49 'x' ( smooth in highp float) -0:50 Branch: Break -0:51 case: with expression -0:51 Constant: -0:51 2 (const int) -0:? Sequence -0:52 switch -0:52 condition -0:52 'd' ( uniform mediump int) -0:52 body -0:52 Sequence -0:53 case: with expression -0:53 Constant: -0:53 1 (const int) -0:? Sequence -0:54 move second child to first child ( temp highp float) -0:54 'f' ( temp highp float) -0:54 component-wise multiply ( temp highp float) -0:54 component-wise multiply ( temp highp float) -0:54 'x' ( smooth in highp float) -0:54 'x' ( smooth in highp float) -0:54 'x' ( smooth in highp float) -0:55 Branch: Break -0:56 case: with expression -0:56 Constant: -0:56 2 (const int) -0:? Sequence -0:57 move second child to first child ( temp highp float) -0:57 'f' ( temp highp float) -0:57 component-wise multiply ( temp highp float) -0:57 'x' ( smooth in highp float) -0:57 'x' ( smooth in highp float) -0:58 Branch: Break -0:60 Branch: Break -0:61 default: -0:? Sequence -0:62 move second child to first child ( temp highp float) -0:62 'f' ( temp highp float) -0:62 tangent ( global highp float) -0:62 'x' ( smooth in highp float) -0:63 case: with expression -0:63 Constant: -0:63 1 (const int) -0:? Sequence -0:64 Branch: Break -0:65 case: with expression -0:65 Constant: -0:65 3.800000 -0:? Sequence -0:66 Branch: Break -0:67 case: with expression -0:67 'c' ( uniform mediump int) -0:? Sequence -0:68 Branch: Break -0:71 switch -0:71 condition -0:71 'c' ( uniform mediump int) -0:71 body -0:71 Sequence -0:72 case: with expression -0:72 Constant: -0:72 1 (const int) -0:? Sequence -0:73 move second child to first child ( temp highp float) -0:73 'f' ( temp highp float) -0:73 sine ( global highp float) -0:73 'x' ( smooth in highp float) -0:74 Branch: Break -0:75 case: with expression -0:75 Constant: -0:75 2 (const int) -0:? Sequence -0:76 switch -0:76 condition -0:76 'd' ( uniform mediump int) -0:76 body -0:76 Sequence -0:77 case: with expression -0:77 Constant: -0:77 1 (const int) -0:? Sequence -0:78 move second child to first child ( temp highp float) -0:78 'f' ( temp highp float) -0:78 component-wise multiply ( temp highp float) -0:78 component-wise multiply ( temp highp float) -0:78 'x' ( smooth in highp float) -0:78 'x' ( smooth in highp float) -0:78 'x' ( smooth in highp float) -0:79 Branch: Break -0:80 case: with expression -0:80 Constant: -0:80 2 (const int) -0:? Sequence -0:81 move second child to first child ( temp highp float) -0:81 'f' ( temp highp float) -0:81 component-wise multiply ( temp highp float) -0:81 'x' ( smooth in highp float) -0:81 'x' ( smooth in highp float) -0:82 Branch: Break -0:84 Branch: Break -0:85 default: -0:? Sequence -0:86 move second child to first child ( temp highp float) -0:86 'f' ( temp highp float) -0:86 tangent ( global highp float) -0:86 'x' ( smooth in highp float) -0:89 Branch: Break -0:91 switch -0:91 condition -0:91 'c' ( uniform mediump int) -0:91 body -0:91 Sequence -0:92 case: with expression -0:92 Constant: -0:92 1 (const int) -0:? Sequence -0:93 move second child to first child ( temp highp float) -0:93 'f' ( temp highp float) -0:93 sine ( global highp float) -0:93 'x' ( smooth in highp float) -0:94 Branch: Break -0:95 case: with expression -0:95 Constant: -0:95 2 (const int) -0:? Sequence -0:96 switch -0:96 condition -0:96 'd' ( uniform mediump int) -0:96 body -0:96 Sequence -0:97 case: with expression -0:97 Constant: -0:97 1 (const int) -0:? Sequence -0:? Sequence -0:100 Branch: Break -0:102 move second child to first child ( temp highp float) -0:102 'f' ( temp highp float) -0:102 component-wise multiply ( temp highp float) -0:102 component-wise multiply ( temp highp float) -0:102 'x' ( smooth in highp float) -0:102 'x' ( smooth in highp float) -0:102 'x' ( smooth in highp float) -0:103 Test condition and select ( temp void) -0:103 Condition -0:103 Compare Less Than ( temp bool) -0:103 'c' ( uniform mediump int) -0:103 'd' ( uniform mediump int) -0:103 true case -0:? Sequence -0:105 move second child to first child ( temp highp float) -0:105 'f' ( temp highp float) -0:105 component-wise multiply ( temp highp float) -0:105 'x' ( smooth in highp float) -0:105 'x' ( smooth in highp float) -0:107 Test condition and select ( temp void) -0:107 Condition -0:107 Compare Less Than ( temp bool) -0:107 'd' ( uniform mediump int) -0:107 'c' ( uniform mediump int) -0:107 true case is null -0:109 Branch: Break -0:111 Branch: Break -0:112 case: with expression -0:112 Constant: -0:112 4 (const int) -0:? Sequence -0:113 move second child to first child ( temp highp float) -0:113 'f' ( temp highp float) -0:113 tangent ( global highp float) -0:113 'x' ( smooth in highp float) -0:114 Test condition and select ( temp void) -0:114 Condition -0:114 Compare Less Than ( temp bool) -0:114 'f' ( temp highp float) -0:114 Constant: -0:114 0.000000 -0:114 true case is null -0:116 Branch: Break -0:122 switch -0:122 condition -0:122 Constant: -0:122 0 (const int) -0:122 body -0:122 Sequence -0:123 default: -0:? Sequence -0:124 Sequence -0:124 move second child to first child ( temp mediump int) -0:124 'onlyInSwitch' ( temp mediump int) -0:124 Constant: -0:124 0 (const int) -0:126 'onlyInSwitch' ( temp float) -0:128 switch -0:128 condition -0:128 Constant: -0:128 0 (const int) -0:128 body -0:128 Sequence -0:129 default: -0:128 Sequence -0:128 Branch: Break -0:133 switch -0:133 condition -0:133 'c' ( uniform mediump int) -0:133 body -0:133 Sequence -0:134 case: with expression -0:134 Constant: -0:134 1 (const int) -0:? Sequence -0:? Sequence -0:137 Branch: Break -0:139 case: with expression -0:139 Constant: -0:139 2 (const int) -0:? Sequence -0:140 'nestedX' ( temp float) -0:143 Branch: Break -0:144 case: with expression -0:144 Constant: -0:144 3 (const int) -0:? Sequence -0:146 Branch: Break -0:147 Branch: Break -0:148 case: with expression -0:148 Constant: -0:148 4 (const int) -0:? Sequence -0:149 Sequence -0:149 move second child to first child ( temp mediump int) -0:149 'linearY' ( temp mediump int) -0:149 'linearZ' ( temp mediump int) -0:150 Branch: Break -0:151 case: with expression -0:151 Constant: -0:151 5 (const int) -0:? Sequence -0:153 Branch: Break -0:154 case: with expression -0:154 Constant: -0:154 6 (const int) -0:? Sequence -0:155 Constant: -0:155 4 (const int) -0:157 'nestedZ' ( temp float) -0:? Linker Objects -0:? 'c' ( uniform mediump int) -0:? 'd' ( uniform mediump int) -0:? 'x' ( smooth in highp float) - diff --git a/deps/glslang/Test/baseResults/swizzle.frag.out b/deps/glslang/Test/baseResults/swizzle.frag.out deleted file mode 100644 index b66a945d..00000000 --- a/deps/glslang/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/Test/baseResults/syntaxError.frag.out b/deps/glslang/Test/baseResults/syntaxError.frag.out deleted file mode 100644 index b6ebea3e..00000000 --- a/deps/glslang/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/Test/baseResults/terminate.frag.out b/deps/glslang/Test/baseResults/terminate.frag.out deleted file mode 100644 index 4f72c9b3..00000000 --- a/deps/glslang/Test/baseResults/terminate.frag.out +++ /dev/null @@ -1,24 +0,0 @@ -terminate.frag -ERROR: 0:3: 'terminateInvocation' : undeclared identifier -ERROR: 0:9: '' : syntax error, unexpected TERMINATE_INVOCATION, expecting COMMA or SEMICOLON -ERROR: 2 compilation errors. No code generated. - - -Shader version: 400 -Requested GL_EXT_terminate_invocation -ERROR: node is still EOpNull! -0:3 Function Definition: foo( ( global void) -0:3 Function Parameters: -0:3 Sequence -0:3 'terminateInvocation' ( temp float) -0:? Linker Objects - - -Linked fragment stage: - - -Shader version: 400 -Requested GL_EXT_terminate_invocation -ERROR: node is still EOpNull! -0:? Linker Objects - diff --git a/deps/glslang/Test/baseResults/terminate.vert.out b/deps/glslang/Test/baseResults/terminate.vert.out deleted file mode 100644 index cd984afb..00000000 --- a/deps/glslang/Test/baseResults/terminate.vert.out +++ /dev/null @@ -1,36 +0,0 @@ -terminate.vert -ERROR: 0:3: 'terminateInvocation' : undeclared identifier -ERROR: 0:9: 'terminateInvocation' : not supported in this stage: vertex -ERROR: 2 compilation errors. No code generated. - - -Shader version: 400 -Requested GL_EXT_terminate_invocation -ERROR: node is still EOpNull! -0:3 Function Definition: foo( ( global void) -0:3 Function Parameters: -0:3 Sequence -0:3 'terminateInvocation' ( temp float) -0:7 Function Definition: main( ( global void) -0:7 Function Parameters: -0:9 Sequence -0:9 Branch: TerminateInvocation -0:? Linker Objects -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - - -Linked vertex stage: - - -Shader version: 400 -Requested GL_EXT_terminate_invocation -ERROR: node is still EOpNull! -0:7 Function Definition: main( ( global void) -0:7 Function Parameters: -0:9 Sequence -0:9 Branch: TerminateInvocation -0:? Linker Objects -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - diff --git a/deps/glslang/Test/baseResults/test.conf b/deps/glslang/Test/baseResults/test.conf deleted file mode 100644 index 98b2a841..00000000 --- a/deps/glslang/Test/baseResults/test.conf +++ /dev/null @@ -1,102 +0,0 @@ -MaxLights 32 -MaxClipPlanes 6 -MaxTextureUnits 32 -MaxTextureCoords 32 -MaxVertexAttribs 64 -MaxVertexUniformComponents 4096 -MaxVaryingFloats 64 -MaxVertexTextureImageUnits 32 -MaxCombinedTextureImageUnits 80 -MaxTextureImageUnits 32 -MaxFragmentUniformComponents 4096 -MaxDrawBuffers 32 -MaxVertexUniformVectors 128 -MaxVaryingVectors 8 -MaxFragmentUniformVectors 16 -MaxVertexOutputVectors 16 -MaxFragmentInputVectors 15 -MinProgramTexelOffset -8 -MaxProgramTexelOffset 7 -MaxClipDistances 8 -MaxComputeWorkGroupCountX 65535 -MaxComputeWorkGroupCountY 65535 -MaxComputeWorkGroupCountZ 65535 -MaxComputeWorkGroupSizeX 1024 -MaxComputeWorkGroupSizeY 1024 -MaxComputeWorkGroupSizeZ 64 -MaxComputeUniformComponents 1024 -MaxComputeTextureImageUnits 16 -MaxComputeImageUniforms 8 -MaxComputeAtomicCounters 8 -MaxComputeAtomicCounterBuffers 1 -MaxVaryingComponents 60 -MaxVertexOutputComponents 64 -MaxGeometryInputComponents 64 -MaxGeometryOutputComponents 128 -MaxFragmentInputComponents 128 -MaxImageUnits 8 -MaxCombinedImageUnitsAndFragmentOutputs 8 -MaxCombinedShaderOutputResources 8 -MaxImageSamples 0 -MaxVertexImageUniforms 0 -MaxTessControlImageUniforms 0 -MaxTessEvaluationImageUniforms 0 -MaxGeometryImageUniforms 0 -MaxFragmentImageUniforms 8 -MaxCombinedImageUniforms 8 -MaxGeometryTextureImageUnits 16 -MaxGeometryOutputVertices 256 -MaxGeometryTotalOutputComponents 1024 -MaxGeometryUniformComponents 1024 -MaxGeometryVaryingComponents 64 -MaxTessControlInputComponents 128 -MaxTessControlOutputComponents 128 -MaxTessControlTextureImageUnits 16 -MaxTessControlUniformComponents 1024 -MaxTessControlTotalOutputComponents 4096 -MaxTessEvaluationInputComponents 128 -MaxTessEvaluationOutputComponents 128 -MaxTessEvaluationTextureImageUnits 16 -MaxTessEvaluationUniformComponents 1024 -MaxTessPatchComponents 120 -MaxPatchVertices 32 -MaxTessGenLevel 64 -MaxViewports 16 -MaxVertexAtomicCounters 0 -MaxTessControlAtomicCounters 0 -MaxTessEvaluationAtomicCounters 0 -MaxGeometryAtomicCounters 0 -MaxFragmentAtomicCounters 8 -MaxCombinedAtomicCounters 8 -MaxAtomicCounterBindings 1 -MaxVertexAtomicCounterBuffers 0 -MaxTessControlAtomicCounterBuffers 0 -MaxTessEvaluationAtomicCounterBuffers 0 -MaxGeometryAtomicCounterBuffers 0 -MaxFragmentAtomicCounterBuffers 1 -MaxCombinedAtomicCounterBuffers 1 -MaxAtomicCounterBufferSize 16384 -MaxTransformFeedbackBuffers 4 -MaxTransformFeedbackInterleavedComponents 64 -MaxCullDistances 8 -MaxCombinedClipAndCullDistances 8 -MaxSamples 4 -MaxMeshOutputVerticesNV 256 -MaxMeshOutputPrimitivesNV 512 -MaxMeshWorkGroupSizeX_NV 32 -MaxMeshWorkGroupSizeY_NV 1 -MaxMeshWorkGroupSizeZ_NV 1 -MaxTaskWorkGroupSizeX_NV 32 -MaxTaskWorkGroupSizeY_NV 1 -MaxTaskWorkGroupSizeZ_NV 1 -MaxMeshViewCountNV 4 -MaxDualSourceDrawBuffersEXT 1 -nonInductiveForLoops 1 -whileLoops 1 -doWhileLoops 1 -generalUniformIndexing 1 -generalAttributeMatrixVectorIndexing 1 -generalVaryingIndexing 1 -generalSamplerIndexing 1 -generalVariableIndexing 1 -generalConstantMatrixVectorIndexing 1 diff --git a/deps/glslang/Test/baseResults/test.frag.out b/deps/glslang/Test/baseResults/test.frag.out deleted file mode 100644 index 4f6faaf9..00000000 --- a/deps/glslang/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/Test/baseResults/texture.frag.out b/deps/glslang/Test/baseResults/texture.frag.out deleted file mode 100644 index 8e9a7105..00000000 --- a/deps/glslang/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/Test/baseResults/textureQueryLOD.frag.out b/deps/glslang/Test/baseResults/textureQueryLOD.frag.out deleted file mode 100644 index b565a005..00000000 --- a/deps/glslang/Test/baseResults/textureQueryLOD.frag.out +++ /dev/null @@ -1,115 +0,0 @@ -textureQueryLOD.frag -WARNING: 0:7: '#extension' : extension is only partially supported: GL_ARB_gpu_shader5 - -Shader version: 150 -Requested GL_ARB_gpu_shader5 -Requested GL_ARB_texture_query_lod -0:? Sequence -0:24 Function Definition: main( ( global void) -0:24 Function Parameters: -0:26 Sequence -0:26 switch -0:26 condition -0:26 'funct' ( uniform int) -0:26 body -0:26 Sequence -0:28 case: with expression -0:28 Constant: -0:28 0 (const int) -0:? Sequence -0:29 Sequence -0:29 move second child to first child ( temp 2-component vector of int) -0:29 'iv2' ( temp 2-component vector of int) -0:29 textureSize ( global 2-component vector of int) -0:29 'sampler' ( uniform sampler2DShadow) -0:29 Constant: -0:29 0 (const int) -0:31 Sequence -0:31 move second child to first child ( temp 2-component vector of float) -0:31 'fv2' ( temp 2-component vector of float) -0:31 textureQueryLod ( global 2-component vector of float) -0:31 'sampler' ( uniform sampler2DShadow) -0:31 Constant: -0:31 0.000000 -0:31 0.000000 -0:33 move second child to first child ( temp 4-component vector of float) -0:33 'color' ( out 4-component vector of float) -0:33 Construct vec4 ( temp 4-component vector of float) -0:33 Convert int to float ( temp 2-component vector of float) -0:33 'iv2' ( temp 2-component vector of int) -0:33 'fv2' ( temp 2-component vector of float) -0:34 Branch: Break -0:35 default: -0:? Sequence -0:36 move second child to first child ( temp 4-component vector of float) -0:36 'color' ( out 4-component vector of float) -0:36 Constant: -0:36 1.000000 -0:36 1.000000 -0:36 1.000000 -0:36 1.000000 -0:37 Branch: Break -0:? Linker Objects -0:? 'vUV' ( smooth in 2-component vector of float) -0:? 'color' ( out 4-component vector of float) -0:? 'sampler' ( uniform sampler2DShadow) -0:? 'funct' ( uniform int) - - -Linked fragment stage: - - -Shader version: 150 -Requested GL_ARB_gpu_shader5 -Requested GL_ARB_texture_query_lod -0:? Sequence -0:24 Function Definition: main( ( global void) -0:24 Function Parameters: -0:26 Sequence -0:26 switch -0:26 condition -0:26 'funct' ( uniform int) -0:26 body -0:26 Sequence -0:28 case: with expression -0:28 Constant: -0:28 0 (const int) -0:? Sequence -0:29 Sequence -0:29 move second child to first child ( temp 2-component vector of int) -0:29 'iv2' ( temp 2-component vector of int) -0:29 textureSize ( global 2-component vector of int) -0:29 'sampler' ( uniform sampler2DShadow) -0:29 Constant: -0:29 0 (const int) -0:31 Sequence -0:31 move second child to first child ( temp 2-component vector of float) -0:31 'fv2' ( temp 2-component vector of float) -0:31 textureQueryLod ( global 2-component vector of float) -0:31 'sampler' ( uniform sampler2DShadow) -0:31 Constant: -0:31 0.000000 -0:31 0.000000 -0:33 move second child to first child ( temp 4-component vector of float) -0:33 'color' ( out 4-component vector of float) -0:33 Construct vec4 ( temp 4-component vector of float) -0:33 Convert int to float ( temp 2-component vector of float) -0:33 'iv2' ( temp 2-component vector of int) -0:33 'fv2' ( temp 2-component vector of float) -0:34 Branch: Break -0:35 default: -0:? Sequence -0:36 move second child to first child ( temp 4-component vector of float) -0:36 'color' ( out 4-component vector of float) -0:36 Constant: -0:36 1.000000 -0:36 1.000000 -0:36 1.000000 -0:36 1.000000 -0:37 Branch: Break -0:? Linker Objects -0:? 'vUV' ( smooth in 2-component vector of float) -0:? 'color' ( out 4-component vector of float) -0:? 'sampler' ( uniform sampler2DShadow) -0:? 'funct' ( uniform int) - diff --git a/deps/glslang/Test/baseResults/textureoffset_sampler2darrayshadow.vert.out b/deps/glslang/Test/baseResults/textureoffset_sampler2darrayshadow.vert.out deleted file mode 100644 index 44d8e975..00000000 --- a/deps/glslang/Test/baseResults/textureoffset_sampler2darrayshadow.vert.out +++ /dev/null @@ -1,63 +0,0 @@ -textureoffset_sampler2darrayshadow.vert -ERROR: 0:9: 'sampler' : TextureOffset does not support sampler2DArrayShadow : ES Profile -ERROR: 1 compilation errors. No code generated. - - -Shader version: 300 -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 highp 4-component vector of float) -0:9 'gl_Position' ( gl_Position highp 4-component vector of float Position) -0:9 Construct vec4 ( temp highp 4-component vector of float) -0:9 textureOffset ( global mediump float) -0:9 's' ( uniform mediump sampler2DArrayShadow) -0:9 Constant: -0:9 0.000000 -0:9 0.000000 -0:9 0.000000 -0:9 0.000000 -0:9 Constant: -0:9 0 (const int) -0:9 0 (const int) -0:10 move second child to first child ( temp highp 4-component vector of float) -0:10 'gl_Position' ( gl_Position highp 4-component vector of float Position) -0:10 'dEQP_Position' ( in highp 4-component vector of float) -0:? Linker Objects -0:? 'dEQP_Position' ( in highp 4-component vector of float) -0:? 's' ( uniform mediump sampler2DArrayShadow) -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:7 Function Definition: main( ( global void) -0:7 Function Parameters: -0:9 Sequence -0:9 move second child to first child ( temp highp 4-component vector of float) -0:9 'gl_Position' ( gl_Position highp 4-component vector of float Position) -0:9 Construct vec4 ( temp highp 4-component vector of float) -0:9 textureOffset ( global mediump float) -0:9 's' ( uniform mediump sampler2DArrayShadow) -0:9 Constant: -0:9 0.000000 -0:9 0.000000 -0:9 0.000000 -0:9 0.000000 -0:9 Constant: -0:9 0 (const int) -0:9 0 (const int) -0:10 move second child to first child ( temp highp 4-component vector of float) -0:10 'gl_Position' ( gl_Position highp 4-component vector of float Position) -0:10 'dEQP_Position' ( in highp 4-component vector of float) -0:? Linker Objects -0:? 'dEQP_Position' ( in highp 4-component vector of float) -0:? 's' ( uniform mediump sampler2DArrayShadow) -0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) - diff --git a/deps/glslang/Test/baseResults/tokenLength.vert.out b/deps/glslang/Test/baseResults/tokenLength.vert.out deleted file mode 100644 index 8c31da92..00000000 --- a/deps/glslang/Test/baseResults/tokenLength.vert.out +++ /dev/null @@ -1,220 +0,0 @@ -tokenLength.vert -ERROR: 0:9: '' : numeric literal too big -ERROR: 0:10: '' : numeric literal too big -ERROR: 0:13: '' : octal literal too big -ERROR: 0:14: '' : hexadecimal literal too big -ERROR: 0:23: '' : float literal too long -ERROR: 0:32: '' : name too long -ERROR: 0:33: '' : hexadecimal literal too big -ERROR: 0:34: '' : numeric literal too long -ERROR: 0:34: '' : octal literal too big -ERROR: 0:35: '' : numeric literal too long -ERROR: 0:35: '' : numeric literal too big -ERROR: 0:36: '' : float literal too long -WARNING: 0:39: '#extension' : extension not supported: a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhooooooooooooooooooooooooooooooohhhhhhhhhhhhhhhhh01234 -ERROR: 0:40: '' : name too long -WARNING: 0:40: '#extension' : extension not supported: a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhooooooooooooooooooooooooooooooohhhhhhhhhhhhhhhhh01234 -ERROR: 0:43: '' : name too long -ERROR: 0:44: '#extension' : ':' missing after extension name -ERROR: 0:47: '#error' : in long non - zero # if -ERROR: 0:50: '#error' : in long zero # if -ERROR: 0:52: '' : numeric literal too long -ERROR: 0:53: '#error' : in too long # if -ERROR: 0:56: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 -ERROR: 0:59: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -ERROR: 0:62: '' : name too long -ERROR: 0:62: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -ERROR: 0:67: '' : numeric literal too long -ERROR: 0:70: '' : name too long -ERROR: 0:70: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -ERROR: 26 compilation errors. No code generated. - - -Shader version: 300 -ERROR: node is still EOpNull! -0:9 Sequence -0:9 move second child to first child ( temp highp int) -0:9 'E1' ( global highp int) -0:9 Constant: -0:9 -1 (const int) -0:10 Sequence -0:10 move second child to first child ( temp highp int) -0:10 'E2' ( global highp int) -0:10 Constant: -0:10 -1 (const int) -0:11 Sequence -0:11 move second child to first child ( temp highp int) -0:11 'B' ( global highp int) -0:11 Constant: -0:11 -1 (const int) -0:13 Sequence -0:13 move second child to first child ( temp highp int) -0:13 'OE' ( global highp int) -0:13 Constant: -0:13 -1 (const int) -0:14 Sequence -0:14 move second child to first child ( temp highp int) -0:14 'HE' ( global highp int) -0:14 Constant: -0:14 -1 (const int) -0:17 Sequence -0:17 move second child to first child ( temp highp float) -0:17 'F' ( global highp float) -0:17 Constant: -0:17 1.012346 -0:20 Sequence -0:20 move second child to first child ( temp highp float) -0:20 'G' ( global highp float) -0:20 Constant: -0:20 1.012346 -0:23 Sequence -0:23 move second child to first child ( temp highp float) -0:23 'E3' ( global highp float) -0:23 Constant: -0:23 1.012346 -0:25 Function Definition: main( ( global void) -0:25 Function Parameters: -0:27 Sequence -0:27 move second child to first child ( temp highp 4-component vector of float) -0:27 'gl_Position' ( gl_Position highp 4-component vector of float Position) -0:28 Construct vec4 ( temp highp 4-component vector of float) -0:27 'ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789' ( in highp float) -0:28 Convert int to float ( temp highp float) -0:28 'B' ( global highp int) -0:28 'F' ( global highp float) -0:28 'G' ( global highp float) -0:33 Sequence -0:33 move second child to first child ( temp highp int) -0:33 'superH' ( global highp int) -0:33 Constant: -0:33 -1 (const int) -0:34 Sequence -0:34 move second child to first child ( temp highp int) -0:34 'superO' ( global highp int) -0:34 Constant: -0:34 -1 (const int) -0:35 Sequence -0:35 move second child to first child ( temp highp int) -0:35 'superI' ( global highp int) -0:35 Constant: -0:35 -1 (const int) -0:36 Sequence -0:36 move second child to first child ( temp highp float) -0:36 'superF' ( global highp float) -0:36 Constant: -0:36 1.012346 -0:? Linker Objects -0:? 'BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789' ( in highp float) -0:? 'ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789' ( in highp float) -0:? 'E1' ( global highp int) -0:? 'E2' ( global highp int) -0:? 'B' ( global highp int) -0:? 'OE' ( global highp int) -0:? 'HE' ( global highp int) -0:? 'F' ( global highp float) -0:? 'G' ( global highp float) -0:? 'E3' ( global highp float) -0:? 'BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789B' ( global highp float) -0:? 'superH' ( global highp int) -0:? 'superO' ( global highp int) -0:? 'superI' ( global highp int) -0:? 'superF' ( global highp float) -0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) - - -Linked vertex stage: - - -Shader version: 300 -ERROR: node is still EOpNull! -0:9 Sequence -0:9 move second child to first child ( temp highp int) -0:9 'E1' ( global highp int) -0:9 Constant: -0:9 -1 (const int) -0:10 Sequence -0:10 move second child to first child ( temp highp int) -0:10 'E2' ( global highp int) -0:10 Constant: -0:10 -1 (const int) -0:11 Sequence -0:11 move second child to first child ( temp highp int) -0:11 'B' ( global highp int) -0:11 Constant: -0:11 -1 (const int) -0:13 Sequence -0:13 move second child to first child ( temp highp int) -0:13 'OE' ( global highp int) -0:13 Constant: -0:13 -1 (const int) -0:14 Sequence -0:14 move second child to first child ( temp highp int) -0:14 'HE' ( global highp int) -0:14 Constant: -0:14 -1 (const int) -0:17 Sequence -0:17 move second child to first child ( temp highp float) -0:17 'F' ( global highp float) -0:17 Constant: -0:17 1.012346 -0:20 Sequence -0:20 move second child to first child ( temp highp float) -0:20 'G' ( global highp float) -0:20 Constant: -0:20 1.012346 -0:23 Sequence -0:23 move second child to first child ( temp highp float) -0:23 'E3' ( global highp float) -0:23 Constant: -0:23 1.012346 -0:25 Function Definition: main( ( global void) -0:25 Function Parameters: -0:27 Sequence -0:27 move second child to first child ( temp highp 4-component vector of float) -0:27 'gl_Position' ( gl_Position highp 4-component vector of float Position) -0:28 Construct vec4 ( temp highp 4-component vector of float) -0:27 'ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789' ( in highp float) -0:28 Convert int to float ( temp highp float) -0:28 'B' ( global highp int) -0:28 'F' ( global highp float) -0:28 'G' ( global highp float) -0:33 Sequence -0:33 move second child to first child ( temp highp int) -0:33 'superH' ( global highp int) -0:33 Constant: -0:33 -1 (const int) -0:34 Sequence -0:34 move second child to first child ( temp highp int) -0:34 'superO' ( global highp int) -0:34 Constant: -0:34 -1 (const int) -0:35 Sequence -0:35 move second child to first child ( temp highp int) -0:35 'superI' ( global highp int) -0:35 Constant: -0:35 -1 (const int) -0:36 Sequence -0:36 move second child to first child ( temp highp float) -0:36 'superF' ( global highp float) -0:36 Constant: -0:36 1.012346 -0:? Linker Objects -0:? 'BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789' ( in highp float) -0:? 'ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789' ( in highp float) -0:? 'E1' ( global highp int) -0:? 'E2' ( global highp int) -0:? 'B' ( global highp int) -0:? 'OE' ( global highp int) -0:? 'HE' ( global highp int) -0:? 'F' ( global highp float) -0:? 'G' ( global highp float) -0:? 'E3' ( global highp float) -0:? 'BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789B' ( global highp float) -0:? 'superH' ( global highp int) -0:? 'superO' ( global highp int) -0:? 'superI' ( global highp int) -0:? 'superF' ( global highp float) -0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) - diff --git a/deps/glslang/Test/baseResults/tokenPaste.vert.out b/deps/glslang/Test/baseResults/tokenPaste.vert.out deleted file mode 100644 index 5ae1f751..00000000 --- a/deps/glslang/Test/baseResults/tokenPaste.vert.out +++ /dev/null @@ -1,123 +0,0 @@ -tokenPaste.vert -ERROR: 0:38: '##' : unexpected location -ERROR: 0:40: '##' : unexpected location; end of replacement list -ERROR: 0:49: '##' : combined tokens are too long -ERROR: 0:52: '##' : not supported for these tokens -ERROR: 0:81: '##' : combined token is invalid -ERROR: 0:94: 'macro expansion' : Too few args in Macro rec -ERROR: 0:94: '##' : unexpected location -ERROR: 0:94: '##' : unexpected location -ERROR: 0:98: '##' : unexpected location; end of argument -ERROR: 9 compilation errors. No code generated. - - -Shader version: 450 -ERROR: node is still EOpNull! -0:52 Sequence -0:52 move second child to first child ( temp int) -0:52 'a' ( global int) -0:52 Constant: -0:52 11 (const int) -0:70 Sequence -0:70 move second child to first child ( temp int) -0:70 'cop' ( global int) -0:70 Constant: -0:70 160 (const int) -0:71 Sequence -0:71 move second child to first child ( temp bool) -0:71 'dop' ( global bool) -0:71 Constant: -0:71 true (const bool) -0:75 Function Definition: ShouldntExpandToThis( ( global void) -0:75 Function Parameters: -0:77 Sequence -0:77 Sequence -0:77 move second child to first child ( temp int) -0:77 'e' ( temp int) -0:77 Constant: -0:77 16 (const int) -0:78 right shift second child into first child ( temp int) -0:78 'e' ( temp int) -0:78 Constant: -0:78 2 (const int) -0:81 Sequence -0:81 move second child to first child ( temp bool) -0:81 'f' ( temp bool) -0:81 Compare Greater Than ( temp bool) -0:81 'e' ( temp int) -0:81 Constant: -0:81 5 (const int) -0:? Linker Objects -0:? 'SecondExpansion' ( global int) -0:? 'PostPasteExpansion' ( global int) -0:? 'foo27' ( global float) -0:? 'foo155' ( uniform float) -0:? 'foo719' ( global float) -0:? 'barfoo' ( uniform float) -0:? 'argless' ( global float) -0:? 'dc1' ( global float) -0:? 'dc2' ( global float) -0:? 'foo875' ( uniform float) -0:? 'ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF012345' ( global float) -0:? 'a' ( global int) -0:? 'seahorse_var' ( uniform float) -0:? 'sealion_var' ( uniform float) -0:? 'aop' ( const int) -0:? 10 (const int) -0:? 'bop' ( const int) -0:? 4 (const int) -0:? 'cop' ( global int) -0:? 'dop' ( global bool) -0:? 'argPaste2' ( uniform int) -0:? 'argPaste20suff' ( uniform int) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - - -Linked vertex stage: - -ERROR: Linking vertex stage: Missing entry point: Each stage requires one entry point - -Shader version: 450 -ERROR: node is still EOpNull! -0:52 Sequence -0:52 move second child to first child ( temp int) -0:52 'a' ( global int) -0:52 Constant: -0:52 11 (const int) -0:70 Sequence -0:70 move second child to first child ( temp int) -0:70 'cop' ( global int) -0:70 Constant: -0:70 160 (const int) -0:71 Sequence -0:71 move second child to first child ( temp bool) -0:71 'dop' ( global bool) -0:71 Constant: -0:71 true (const bool) -0:? Linker Objects -0:? 'SecondExpansion' ( global int) -0:? 'PostPasteExpansion' ( global int) -0:? 'foo27' ( global float) -0:? 'foo155' ( uniform float) -0:? 'foo719' ( global float) -0:? 'barfoo' ( uniform float) -0:? 'argless' ( global float) -0:? 'dc1' ( global float) -0:? 'dc2' ( global float) -0:? 'foo875' ( uniform float) -0:? 'ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF012345' ( global float) -0:? 'a' ( global int) -0:? 'seahorse_var' ( uniform float) -0:? 'sealion_var' ( uniform float) -0:? 'aop' ( const int) -0:? 10 (const int) -0:? 'bop' ( const int) -0:? 4 (const int) -0:? 'cop' ( global int) -0:? 'dop' ( global bool) -0:? 'argPaste2' ( uniform int) -0:? 'argPaste20suff' ( uniform int) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - diff --git a/deps/glslang/Test/baseResults/types.frag.out b/deps/glslang/Test/baseResults/types.frag.out deleted file mode 100644 index 94815b66..00000000 --- a/deps/glslang/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/Test/baseResults/uint.frag.out b/deps/glslang/Test/baseResults/uint.frag.out deleted file mode 100644 index ce6d02d3..00000000 --- a/deps/glslang/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 mediump 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 mediump 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/Test/baseResults/uniformArray.frag.out b/deps/glslang/Test/baseResults/uniformArray.frag.out deleted file mode 100644 index 51b9ff03..00000000 --- a/deps/glslang/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/Test/baseResults/variableArrayIndex.frag.out b/deps/glslang/Test/baseResults/variableArrayIndex.frag.out deleted file mode 100644 index ddfb25bf..00000000 --- a/deps/glslang/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/Test/baseResults/varyingArray.frag.out b/deps/glslang/Test/baseResults/varyingArray.frag.out deleted file mode 100644 index a7b9d23d..00000000 --- a/deps/glslang/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/Test/baseResults/varyingArrayIndirect.frag.out b/deps/glslang/Test/baseResults/varyingArrayIndirect.frag.out deleted file mode 100644 index 23872b41..00000000 --- a/deps/glslang/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/Test/baseResults/versionsClean.frag.out b/deps/glslang/Test/baseResults/versionsClean.frag.out deleted file mode 100644 index 721d73c0..00000000 --- a/deps/glslang/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/Test/baseResults/versionsClean.vert.out b/deps/glslang/Test/baseResults/versionsClean.vert.out deleted file mode 100644 index 4b098be7..00000000 --- a/deps/glslang/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/Test/baseResults/versionsErrors.frag.out b/deps/glslang/Test/baseResults/versionsErrors.frag.out deleted file mode 100644 index dbeb941a..00000000 --- a/deps/glslang/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/Test/baseResults/versionsErrors.vert.out b/deps/glslang/Test/baseResults/versionsErrors.vert.out deleted file mode 100644 index a7a59ea9..00000000 --- a/deps/glslang/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}) -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}) -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}) -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}) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - diff --git a/deps/glslang/Test/baseResults/vk.relaxed.changeSet.vert.out b/deps/glslang/Test/baseResults/vk.relaxed.changeSet.vert.out deleted file mode 100644 index d2beff93..00000000 --- a/deps/glslang/Test/baseResults/vk.relaxed.changeSet.vert.out +++ /dev/null @@ -1,281 +0,0 @@ -vk.relaxed.changeSet.vert -Shader version: 460 -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 highp 4-component vector of float) -0:13 'Color' ( smooth out highp 4-component vector of float) -0:13 'aColor' ( in highp 4-component vector of float) -0:14 move second child to first child ( temp highp 2-component vector of float) -0:14 'UV' ( smooth out highp 2-component vector of float) -0:14 'aUV' ( in highp 2-component vector of float) -0:15 move second child to first child ( temp highp 4-component vector of float) -0:15 gl_Position: direct index for structure ( gl_Position highp 4-component vector of float Position) -0:15 'anon@1' ( 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, out unsized 1-element array of float CullDistance gl_CullDistance}) -0:15 Constant: -0:15 0 (const uint) -0:15 matrix-times-vector ( temp highp 4-component vector of float) -0:15 projectionMatrix: direct index for structure ( uniform highp 4X4 matrix of float) -0:15 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4X4 matrix of float projectionMatrix}) -0:15 Constant: -0:15 0 (const uint) -0:15 Construct vec4 ( temp highp 4-component vector of float) -0:15 'aPos' ( in highp 2-component vector of float) -0:15 Constant: -0:15 0.000000 -0:15 Constant: -0:15 1.000000 -0:? Linker Objects -0:? 'aPos' ( in highp 2-component vector of float) -0:? 'aUV' ( in highp 2-component vector of float) -0:? 'aColor' ( in highp 4-component vector of float) -0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4X4 matrix of float projectionMatrix}) -0:? 'Color' ( smooth out highp 4-component vector of float) -0:? 'UV' ( smooth out highp 2-component vector of float) -0:? 'anon@1' ( 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, out unsized 1-element array of float CullDistance gl_CullDistance}) -0:? 'gl_VertexIndex' ( in int VertexIndex) -0:? 'gl_InstanceIndex' ( in int InstanceIndex) - -vk.relaxed.changeSet.frag -Shader version: 460 -gl_FragCoord origin is upper left -0:? Sequence -0:10 Function Definition: main( ( global void) -0:10 Function Parameters: -0:12 Sequence -0:12 move second child to first child ( temp highp 4-component vector of float) -0:12 'fragColor' (layout( location=0) out highp 4-component vector of float) -0:12 vector-scale ( temp highp 4-component vector of float) -0:12 'Color' ( smooth in highp 4-component vector of float) -0:12 direct index ( temp highp float) -0:12 texture ( global highp 4-component vector of float) -0:12 'sTexture' ( uniform highp sampler2D) -0:12 vector swizzle ( temp highp 2-component vector of float) -0:12 'UV' ( smooth in highp 2-component vector of float) -0:12 Sequence -0:12 Constant: -0:12 0 (const int) -0:12 Constant: -0:12 1 (const int) -0:12 Constant: -0:12 0 (const int) -0:? Linker Objects -0:? 'fragColor' (layout( location=0) out highp 4-component vector of float) -0:? 'sTexture' ( uniform highp sampler2D) -0:? 'Color' ( smooth in highp 4-component vector of float) -0:? 'UV' ( smooth in highp 2-component vector of float) - - -Linked vertex stage: - - -Linked fragment stage: - - -Shader version: 460 -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 highp 4-component vector of float) -0:13 'Color' ( smooth out highp 4-component vector of float) -0:13 'aColor' ( in highp 4-component vector of float) -0:14 move second child to first child ( temp highp 2-component vector of float) -0:14 'UV' ( smooth out highp 2-component vector of float) -0:14 'aUV' ( in highp 2-component vector of float) -0:15 move second child to first child ( temp highp 4-component vector of float) -0:15 gl_Position: direct index for structure ( gl_Position highp 4-component vector of float Position) -0:15 'anon@1' ( 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, out 1-element array of float CullDistance gl_CullDistance}) -0:15 Constant: -0:15 0 (const uint) -0:15 matrix-times-vector ( temp highp 4-component vector of float) -0:15 projectionMatrix: direct index for structure ( uniform highp 4X4 matrix of float) -0:15 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4X4 matrix of float projectionMatrix}) -0:15 Constant: -0:15 0 (const uint) -0:15 Construct vec4 ( temp highp 4-component vector of float) -0:15 'aPos' ( in highp 2-component vector of float) -0:15 Constant: -0:15 0.000000 -0:15 Constant: -0:15 1.000000 -0:? Linker Objects -0:? 'aPos' ( in highp 2-component vector of float) -0:? 'aUV' ( in highp 2-component vector of float) -0:? 'aColor' ( in highp 4-component vector of float) -0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4X4 matrix of float projectionMatrix}) -0:? 'Color' ( smooth out highp 4-component vector of float) -0:? 'UV' ( smooth out highp 2-component vector of float) -0:? 'anon@1' ( 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, out 1-element array of float CullDistance gl_CullDistance}) -0:? 'gl_VertexIndex' ( in int VertexIndex) -0:? 'gl_InstanceIndex' ( in int InstanceIndex) -Shader version: 460 -gl_FragCoord origin is upper left -0:? Sequence -0:10 Function Definition: main( ( global void) -0:10 Function Parameters: -0:12 Sequence -0:12 move second child to first child ( temp highp 4-component vector of float) -0:12 'fragColor' (layout( location=0) out highp 4-component vector of float) -0:12 vector-scale ( temp highp 4-component vector of float) -0:12 'Color' ( smooth in highp 4-component vector of float) -0:12 direct index ( temp highp float) -0:12 texture ( global highp 4-component vector of float) -0:12 'sTexture' ( uniform highp sampler2D) -0:12 vector swizzle ( temp highp 2-component vector of float) -0:12 'UV' ( smooth in highp 2-component vector of float) -0:12 Sequence -0:12 Constant: -0:12 0 (const int) -0:12 Constant: -0:12 1 (const int) -0:12 Constant: -0:12 0 (const int) -0:? Linker Objects -0:? 'fragColor' (layout( location=0) out highp 4-component vector of float) -0:? 'sTexture' ( uniform highp sampler2D) -0:? 'Color' ( smooth in highp 4-component vector of float) -0:? 'UV' ( smooth in highp 2-component vector of float) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 46 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 9 11 15 17 24 34 44 45 - Source GLSL 460 - Name 4 "main" - Name 9 "Color" - Name 11 "aColor" - Name 15 "UV" - Name 17 "aUV" - Name 22 "gl_PerVertex" - MemberName 22(gl_PerVertex) 0 "gl_Position" - MemberName 22(gl_PerVertex) 1 "gl_PointSize" - MemberName 22(gl_PerVertex) 2 "gl_ClipDistance" - MemberName 22(gl_PerVertex) 3 "gl_CullDistance" - Name 24 "" - Name 28 "gl_DefaultUniformBlock" - MemberName 28(gl_DefaultUniformBlock) 0 "projectionMatrix" - Name 30 "" - Name 34 "aPos" - Name 44 "gl_VertexIndex" - Name 45 "gl_InstanceIndex" - Decorate 9(Color) Location 0 - Decorate 11(aColor) Location 2 - Decorate 15(UV) Location 1 - Decorate 17(aUV) Location 1 - 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 28(gl_DefaultUniformBlock) 0 ColMajor - MemberDecorate 28(gl_DefaultUniformBlock) 0 Offset 0 - MemberDecorate 28(gl_DefaultUniformBlock) 0 MatrixStride 16 - Decorate 28(gl_DefaultUniformBlock) Block - Decorate 30 DescriptorSet 0 - Decorate 30 Binding 0 - Decorate 34(aPos) Location 0 - Decorate 44(gl_VertexIndex) BuiltIn VertexIndex - Decorate 45(gl_InstanceIndex) BuiltIn InstanceIndex - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) - 9(Color): 8(ptr) Variable Output - 10: TypePointer Input 7(fvec4) - 11(aColor): 10(ptr) Variable Input - 13: TypeVector 6(float) 2 - 14: TypePointer Output 13(fvec2) - 15(UV): 14(ptr) Variable Output - 16: TypePointer Input 13(fvec2) - 17(aUV): 16(ptr) Variable Input - 19: TypeInt 32 0 - 20: 19(int) Constant 1 - 21: TypeArray 6(float) 20 -22(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 21 21 - 23: TypePointer Output 22(gl_PerVertex) - 24: 23(ptr) Variable Output - 25: TypeInt 32 1 - 26: 25(int) Constant 0 - 27: TypeMatrix 7(fvec4) 4 -28(gl_DefaultUniformBlock): TypeStruct 27 - 29: TypePointer Uniform 28(gl_DefaultUniformBlock) - 30: 29(ptr) Variable Uniform - 31: TypePointer Uniform 27 - 34(aPos): 16(ptr) Variable Input - 36: 6(float) Constant 0 - 37: 6(float) Constant 1065353216 - 43: TypePointer Input 25(int) -44(gl_VertexIndex): 43(ptr) Variable Input -45(gl_InstanceIndex): 43(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 12: 7(fvec4) Load 11(aColor) - Store 9(Color) 12 - 18: 13(fvec2) Load 17(aUV) - Store 15(UV) 18 - 32: 31(ptr) AccessChain 30 26 - 33: 27 Load 32 - 35: 13(fvec2) Load 34(aPos) - 38: 6(float) CompositeExtract 35 0 - 39: 6(float) CompositeExtract 35 1 - 40: 7(fvec4) CompositeConstruct 38 39 36 37 - 41: 7(fvec4) MatrixTimesVector 33 40 - 42: 8(ptr) AccessChain 24 26 - Store 42 41 - Return - FunctionEnd -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 27 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 9 11 20 - ExecutionMode 4 OriginUpperLeft - Source GLSL 460 - Name 4 "main" - Name 9 "fragColor" - Name 11 "Color" - Name 16 "sTexture" - Name 20 "UV" - Decorate 9(fragColor) Location 0 - Decorate 11(Color) Location 0 - Decorate 16(sTexture) DescriptorSet 1 - Decorate 16(sTexture) Binding 0 - Decorate 20(UV) Location 1 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) - 9(fragColor): 8(ptr) Variable Output - 10: TypePointer Input 7(fvec4) - 11(Color): 10(ptr) Variable Input - 13: TypeImage 6(float) 2D sampled format:Unknown - 14: TypeSampledImage 13 - 15: TypePointer UniformConstant 14 - 16(sTexture): 15(ptr) Variable UniformConstant - 18: TypeVector 6(float) 2 - 19: TypePointer Input 18(fvec2) - 20(UV): 19(ptr) Variable Input - 23: TypeInt 32 0 - 24: 23(int) Constant 0 - 4(main): 2 Function None 3 - 5: Label - 12: 7(fvec4) Load 11(Color) - 17: 14 Load 16(sTexture) - 21: 18(fvec2) Load 20(UV) - 22: 7(fvec4) ImageSampleImplicitLod 17 21 - 25: 6(float) CompositeExtract 22 0 - 26: 7(fvec4) VectorTimesScalar 12 25 - Store 9(fragColor) 26 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/vk.relaxed.errorcheck.vert.out b/deps/glslang/Test/baseResults/vk.relaxed.errorcheck.vert.out deleted file mode 100644 index 5c6ecf92..00000000 --- a/deps/glslang/Test/baseResults/vk.relaxed.errorcheck.vert.out +++ /dev/null @@ -1,124 +0,0 @@ -vk.relaxed.errorcheck.vert -Shader version: 460 -0:? Sequence -0:9 Function Definition: foo( ( global highp 4-component vector of float) -0:9 Function Parameters: -0:10 Sequence -0:10 Branch: Return with expression -0:10 vector swizzle ( temp highp 4-component vector of float) -0:10 a: direct index for structure ( uniform highp 2-component vector of float) -0:10 'anon@0' (layout( column_major std140) uniform block{ uniform highp 2-component vector of float a}) -0:10 Constant: -0:10 0 (const uint) -0:10 Sequence -0:10 Constant: -0:10 0 (const int) -0:10 Constant: -0:10 1 (const int) -0:10 Constant: -0:10 0 (const int) -0:10 Constant: -0:10 1 (const int) -0:13 Function Definition: main( ( global void) -0:13 Function Parameters: -0:14 Sequence -0:14 move second child to first child ( temp highp 4-component vector of float) -0:14 'io' (layout( location=0) smooth out highp 4-component vector of float) -0:14 Function Call: foo( ( global highp 4-component vector of float) -0:? Linker Objects -0:? 'io' (layout( location=0) smooth out highp 4-component vector of float) -0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp 2-component vector of float a}) -0:? 'gl_VertexIndex' ( in int VertexIndex) -0:? 'gl_InstanceIndex' ( in int InstanceIndex) - -vk.relaxed.errorcheck.frag -Shader version: 460 -gl_FragCoord origin is upper left -0:? Sequence -0:10 Function Definition: foo( ( global highp 4-component vector of float) -0:10 Function Parameters: -0:11 Sequence -0:11 Branch: Return with expression -0:11 a: direct index for structure ( uniform highp 4-component vector of float) -0:11 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a}) -0:11 Constant: -0:11 0 (const uint) -0:14 Function Definition: main( ( global void) -0:14 Function Parameters: -0:15 Sequence -0:15 move second child to first child ( temp highp 4-component vector of float) -0:15 'o' ( out highp 4-component vector of float) -0:15 add ( temp highp 4-component vector of float) -0:15 'io' (layout( location=0) smooth in highp 4-component vector of float) -0:15 Function Call: foo( ( global highp 4-component vector of float) -0:? Linker Objects -0:? 'io' (layout( location=0) smooth in highp 4-component vector of float) -0:? 'o' ( out highp 4-component vector of float) -0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a}) - - -Linked vertex stage: - - -Linked fragment stage: - -ERROR: Linking unknown stage stage: Types must match: - a: " uniform highp 2-component vector of float" versus " uniform highp 4-component vector of float" - -Shader version: 460 -0:? Sequence -0:9 Function Definition: foo( ( global highp 4-component vector of float) -0:9 Function Parameters: -0:10 Sequence -0:10 Branch: Return with expression -0:10 vector swizzle ( temp highp 4-component vector of float) -0:10 a: direct index for structure ( uniform highp 2-component vector of float) -0:10 'anon@0' (layout( column_major std140) uniform block{ uniform highp 2-component vector of float a}) -0:10 Constant: -0:10 0 (const uint) -0:10 Sequence -0:10 Constant: -0:10 0 (const int) -0:10 Constant: -0:10 1 (const int) -0:10 Constant: -0:10 0 (const int) -0:10 Constant: -0:10 1 (const int) -0:13 Function Definition: main( ( global void) -0:13 Function Parameters: -0:14 Sequence -0:14 move second child to first child ( temp highp 4-component vector of float) -0:14 'io' (layout( location=0) smooth out highp 4-component vector of float) -0:14 Function Call: foo( ( global highp 4-component vector of float) -0:? Linker Objects -0:? 'io' (layout( location=0) smooth out highp 4-component vector of float) -0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp 2-component vector of float a}) -0:? 'gl_VertexIndex' ( in int VertexIndex) -0:? 'gl_InstanceIndex' ( in int InstanceIndex) -Shader version: 460 -gl_FragCoord origin is upper left -0:? Sequence -0:10 Function Definition: foo( ( global highp 4-component vector of float) -0:10 Function Parameters: -0:11 Sequence -0:11 Branch: Return with expression -0:11 a: direct index for structure ( uniform highp 4-component vector of float) -0:11 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a}) -0:11 Constant: -0:11 0 (const uint) -0:14 Function Definition: main( ( global void) -0:14 Function Parameters: -0:15 Sequence -0:15 move second child to first child ( temp highp 4-component vector of float) -0:15 'o' ( out highp 4-component vector of float) -0:15 add ( temp highp 4-component vector of float) -0:15 'io' (layout( location=0) smooth in highp 4-component vector of float) -0:15 Function Call: foo( ( global highp 4-component vector of float) -0:? Linker Objects -0:? 'io' (layout( location=0) smooth in highp 4-component vector of float) -0:? 'o' ( out highp 4-component vector of float) -0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a}) - -Validation failed -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/vk.relaxed.frag.out b/deps/glslang/Test/baseResults/vk.relaxed.frag.out deleted file mode 100644 index d98910e6..00000000 --- a/deps/glslang/Test/baseResults/vk.relaxed.frag.out +++ /dev/null @@ -1,826 +0,0 @@ -vk.relaxed.frag -WARNING: 0:7: 'b' : Ignoring initializer for uniform -WARNING: 0:8: 'c' : ignoring layout qualifier for uniform location - -Shader version: 460 -gl_FragCoord origin is upper left -0:? Sequence -0:36 Function Definition: bar( ( global highp uint) -0:36 Function Parameters: -0:37 Sequence -0:37 Sequence -0:37 move second child to first child ( temp highp uint) -0:37 'j' ( temp highp uint) -0:37 Constant: -0:37 0 (const uint) -0:38 move second child to first child ( temp highp uint) -0:38 'j' ( temp highp uint) -0:38 AtomicAdd ( global highp uint) -0:38 counter1: direct index for structure ( coherent volatile buffer highp uint) -0:38 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) -0:38 Constant: -0:38 0 (const uint) -0:38 Constant: -0:38 1 (const uint) -0:39 move second child to first child ( temp highp uint) -0:39 'j' ( temp highp uint) -0:39 subtract ( temp highp uint) -0:39 AtomicAdd ( global highp uint) -0:39 counter1: direct index for structure ( coherent volatile buffer highp uint) -0:39 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) -0:39 Constant: -0:39 0 (const uint) -0:39 Constant: -0:39 4294967295 (const uint) -0:39 Constant: -0:39 1 (const uint) -0:40 move second child to first child ( temp highp uint) -0:40 'j' ( temp highp uint) -0:40 counter1: direct index for structure ( coherent volatile buffer highp uint) -0:40 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) -0:40 Constant: -0:40 0 (const uint) -0:42 move second child to first child ( temp highp uint) -0:42 'j' ( temp highp uint) -0:42 AtomicAdd ( global highp uint) -0:42 counter1: direct index for structure ( coherent volatile buffer highp uint) -0:42 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) -0:42 Constant: -0:42 0 (const uint) -0:42 Constant: -0:42 1 (const uint) -0:43 move second child to first child ( temp highp uint) -0:43 'j' ( temp highp uint) -0:43 AtomicAdd ( global highp uint) -0:43 counter1: direct index for structure ( coherent volatile buffer highp uint) -0:43 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) -0:43 Constant: -0:43 0 (const uint) -0:43 Constant: -0:43 4294967295 (const uint) -0:44 move second child to first child ( temp highp uint) -0:44 'j' ( temp highp uint) -0:44 AtomicSubtract ( global highp uint) -0:44 counter1: direct index for structure ( coherent volatile buffer highp uint) -0:44 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) -0:44 Constant: -0:44 0 (const uint) -0:44 Constant: -0:44 1 (const uint) -0:46 move second child to first child ( temp highp uint) -0:46 'j' ( temp highp uint) -0:46 AtomicMin ( global highp uint) -0:46 counter1: direct index for structure ( coherent volatile buffer highp uint) -0:46 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) -0:46 Constant: -0:46 0 (const uint) -0:46 'j' ( temp highp uint) -0:47 move second child to first child ( temp highp uint) -0:47 'j' ( temp highp uint) -0:47 AtomicMax ( global highp uint) -0:47 counter1: direct index for structure ( coherent volatile buffer highp uint) -0:47 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) -0:47 Constant: -0:47 0 (const uint) -0:47 'j' ( temp highp uint) -0:48 move second child to first child ( temp highp uint) -0:48 'j' ( temp highp uint) -0:48 AtomicAnd ( global highp uint) -0:48 counter1: direct index for structure ( coherent volatile buffer highp uint) -0:48 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) -0:48 Constant: -0:48 0 (const uint) -0:48 'j' ( temp highp uint) -0:50 move second child to first child ( temp highp uint) -0:50 'j' ( temp highp uint) -0:50 AtomicOr ( global highp uint) -0:50 counter1: direct index for structure ( coherent volatile buffer highp uint) -0:50 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) -0:50 Constant: -0:50 0 (const uint) -0:50 'j' ( temp highp uint) -0:51 move second child to first child ( temp highp uint) -0:51 'j' ( temp highp uint) -0:51 AtomicXor ( global highp uint) -0:51 counter1: direct index for structure ( coherent volatile buffer highp uint) -0:51 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) -0:51 Constant: -0:51 0 (const uint) -0:51 'j' ( temp highp uint) -0:53 move second child to first child ( temp highp uint) -0:53 'j' ( temp highp uint) -0:53 AtomicExchange ( global highp uint) -0:53 counter1: direct index for structure ( coherent volatile buffer highp uint) -0:53 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) -0:53 Constant: -0:53 0 (const uint) -0:53 'j' ( temp highp uint) -0:54 move second child to first child ( temp highp uint) -0:54 'j' ( temp highp uint) -0:54 AtomicCompSwap ( global highp uint) -0:54 counter1: direct index for structure ( coherent volatile buffer highp uint) -0:54 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) -0:54 Constant: -0:54 0 (const uint) -0:54 Constant: -0:54 0 (const uint) -0:54 'j' ( temp highp uint) -0:56 AtomicAdd ( global highp uint) -0:56 counter2: direct index for structure ( coherent volatile buffer highp uint) -0:56 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) -0:56 Constant: -0:56 1 (const uint) -0:56 Constant: -0:56 1 (const uint) -0:57 AtomicAdd ( global highp uint) -0:57 counter3: direct index for structure ( coherent volatile buffer highp uint) -0:57 'anon@3' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3}) -0:57 Constant: -0:57 0 (const uint) -0:57 Constant: -0:57 1 (const uint) -0:59 MemoryBarrierBuffer ( global void) -0:61 Branch: Return with expression -0:61 'j' ( temp highp uint) -0:64 Function Definition: foo( ( global highp 4-component vector of float) -0:64 Function Parameters: -0:65 Sequence -0:65 Sequence -0:65 move second child to first child ( temp highp float) -0:65 'f' ( temp highp float) -0:65 add ( temp highp float) -0:65 add ( temp highp float) -0:65 add ( temp highp float) -0:65 j: direct index for structure (layout( column_major std140) uniform highp float) -0:65 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp float j, layout( column_major std140) uniform highp 4-component vector of float k}) -0:65 Constant: -0:65 0 (const uint) -0:65 j: direct index for structure (layout( column_major std430) buffer highp float) -0:65 'bufferInstance' (layout( column_major std430) buffer block{layout( column_major std430) buffer highp float j, layout( column_major std430) buffer highp 4-component vector of float k}) -0:65 Constant: -0:65 0 (const int) -0:65 y: direct index for structure ( global highp float) -0:65 structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z}) -0:65 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform}) -0:65 Constant: -0:65 4 (const uint) -0:65 Constant: -0:65 1 (const int) -0:65 Convert uint to float ( temp highp float) -0:65 z: direct index for structure ( global highp uint) -0:65 structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z}) -0:65 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform}) -0:65 Constant: -0:65 4 (const uint) -0:65 Constant: -0:65 2 (const int) -0:66 Sequence -0:66 move second child to first child ( temp highp 2-component vector of float) -0:66 'v2' ( temp highp 2-component vector of float) -0:66 add ( temp highp 2-component vector of float) -0:66 add ( temp highp 2-component vector of float) -0:66 b: direct index for structure ( uniform highp 2-component vector of float) -0:66 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform}) -0:66 Constant: -0:66 1 (const uint) -0:66 c: direct index for structure ( uniform highp 2-component vector of float) -0:66 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform}) -0:66 Constant: -0:66 2 (const uint) -0:66 x: direct index for structure ( global highp 2-component vector of float) -0:66 structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z}) -0:66 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform}) -0:66 Constant: -0:66 4 (const uint) -0:66 Constant: -0:66 0 (const int) -0:67 Sequence -0:67 move second child to first child ( temp highp 4-component vector of float) -0:67 'v4' ( temp highp 4-component vector of float) -0:67 add ( temp highp 4-component vector of float) -0:67 add ( temp highp 4-component vector of float) -0:67 add ( temp highp 4-component vector of float) -0:67 add ( temp highp 4-component vector of float) -0:67 add ( temp highp 4-component vector of float) -0:67 add ( temp highp 4-component vector of float) -0:67 a: direct index for structure ( uniform highp 4-component vector of float) -0:67 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform}) -0:67 Constant: -0:67 0 (const uint) -0:67 direct index ( temp highp 4-component vector of float) -0:67 d: direct index for structure ( uniform 10-element array of highp 4-component vector of float) -0:67 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform}) -0:67 Constant: -0:67 3 (const uint) -0:67 Constant: -0:67 0 (const int) -0:67 direct index ( temp highp 4-component vector of float) -0:67 d: direct index for structure ( uniform 10-element array of highp 4-component vector of float) -0:67 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform}) -0:67 Constant: -0:67 3 (const uint) -0:67 Constant: -0:67 1 (const int) -0:67 direct index ( temp highp 4-component vector of float) -0:67 d: direct index for structure ( uniform 10-element array of highp 4-component vector of float) -0:67 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform}) -0:67 Constant: -0:67 3 (const uint) -0:67 Constant: -0:67 2 (const int) -0:67 k: direct index for structure (layout( column_major std140) uniform highp 4-component vector of float) -0:67 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp float j, layout( column_major std140) uniform highp 4-component vector of float k}) -0:67 Constant: -0:67 1 (const uint) -0:67 k: direct index for structure (layout( column_major std430) buffer highp 4-component vector of float) -0:67 'bufferInstance' (layout( column_major std430) buffer block{layout( column_major std430) buffer highp float j, layout( column_major std430) buffer highp 4-component vector of float k}) -0:67 Constant: -0:67 1 (const int) -0:67 texture ( global highp 4-component vector of float) -0:67 't1' ( uniform highp sampler2D) -0:67 Constant: -0:67 0.000000 -0:67 0.000000 -0:68 Branch: Return with expression -0:68 component-wise multiply ( temp highp 4-component vector of float) -0:68 component-wise multiply ( temp highp 4-component vector of float) -0:68 Construct vec4 ( temp highp 4-component vector of float) -0:68 'f' ( temp highp float) -0:68 Construct vec4 ( temp highp 4-component vector of float) -0:68 'v2' ( temp highp 2-component vector of float) -0:68 Constant: -0:68 1.000000 -0:68 Constant: -0:68 1.000000 -0:68 'v4' ( temp highp 4-component vector of float) -0:71 Function Definition: main( ( global void) -0:71 Function Parameters: -0:72 Sequence -0:72 Sequence -0:72 move second child to first child ( temp highp float) -0:72 'j' ( temp highp float) -0:72 Convert uint to float ( temp highp float) -0:72 Function Call: bar( ( global highp uint) -0:73 move second child to first child ( temp highp 4-component vector of float) -0:73 'o' ( out highp 4-component vector of float) -0:73 vector-scale ( temp highp 4-component vector of float) -0:73 'j' ( temp highp float) -0:73 Function Call: foo( ( global highp 4-component vector of float) -0:? Linker Objects -0:? 'o' ( out highp 4-component vector of float) -0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform}) -0:? 't1' ( uniform highp sampler2D) -0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp float j, layout( column_major std140) uniform highp 4-component vector of float k}) -0:? 'bufferInstance' (layout( column_major std430) buffer block{layout( column_major std430) buffer highp float j, layout( column_major std430) buffer highp 4-component vector of float k}) -0:? 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) -0:? 'anon@3' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3}) - - -Linked fragment stage: - - -Shader version: 460 -gl_FragCoord origin is upper left -0:? Sequence -0:36 Function Definition: bar( ( global highp uint) -0:36 Function Parameters: -0:37 Sequence -0:37 Sequence -0:37 move second child to first child ( temp highp uint) -0:37 'j' ( temp highp uint) -0:37 Constant: -0:37 0 (const uint) -0:38 move second child to first child ( temp highp uint) -0:38 'j' ( temp highp uint) -0:38 AtomicAdd ( global highp uint) -0:38 counter1: direct index for structure ( coherent volatile buffer highp uint) -0:38 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) -0:38 Constant: -0:38 0 (const uint) -0:38 Constant: -0:38 1 (const uint) -0:39 move second child to first child ( temp highp uint) -0:39 'j' ( temp highp uint) -0:39 subtract ( temp highp uint) -0:39 AtomicAdd ( global highp uint) -0:39 counter1: direct index for structure ( coherent volatile buffer highp uint) -0:39 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) -0:39 Constant: -0:39 0 (const uint) -0:39 Constant: -0:39 4294967295 (const uint) -0:39 Constant: -0:39 1 (const uint) -0:40 move second child to first child ( temp highp uint) -0:40 'j' ( temp highp uint) -0:40 counter1: direct index for structure ( coherent volatile buffer highp uint) -0:40 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) -0:40 Constant: -0:40 0 (const uint) -0:42 move second child to first child ( temp highp uint) -0:42 'j' ( temp highp uint) -0:42 AtomicAdd ( global highp uint) -0:42 counter1: direct index for structure ( coherent volatile buffer highp uint) -0:42 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) -0:42 Constant: -0:42 0 (const uint) -0:42 Constant: -0:42 1 (const uint) -0:43 move second child to first child ( temp highp uint) -0:43 'j' ( temp highp uint) -0:43 AtomicAdd ( global highp uint) -0:43 counter1: direct index for structure ( coherent volatile buffer highp uint) -0:43 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) -0:43 Constant: -0:43 0 (const uint) -0:43 Constant: -0:43 4294967295 (const uint) -0:44 move second child to first child ( temp highp uint) -0:44 'j' ( temp highp uint) -0:44 AtomicSubtract ( global highp uint) -0:44 counter1: direct index for structure ( coherent volatile buffer highp uint) -0:44 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) -0:44 Constant: -0:44 0 (const uint) -0:44 Constant: -0:44 1 (const uint) -0:46 move second child to first child ( temp highp uint) -0:46 'j' ( temp highp uint) -0:46 AtomicMin ( global highp uint) -0:46 counter1: direct index for structure ( coherent volatile buffer highp uint) -0:46 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) -0:46 Constant: -0:46 0 (const uint) -0:46 'j' ( temp highp uint) -0:47 move second child to first child ( temp highp uint) -0:47 'j' ( temp highp uint) -0:47 AtomicMax ( global highp uint) -0:47 counter1: direct index for structure ( coherent volatile buffer highp uint) -0:47 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) -0:47 Constant: -0:47 0 (const uint) -0:47 'j' ( temp highp uint) -0:48 move second child to first child ( temp highp uint) -0:48 'j' ( temp highp uint) -0:48 AtomicAnd ( global highp uint) -0:48 counter1: direct index for structure ( coherent volatile buffer highp uint) -0:48 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) -0:48 Constant: -0:48 0 (const uint) -0:48 'j' ( temp highp uint) -0:50 move second child to first child ( temp highp uint) -0:50 'j' ( temp highp uint) -0:50 AtomicOr ( global highp uint) -0:50 counter1: direct index for structure ( coherent volatile buffer highp uint) -0:50 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) -0:50 Constant: -0:50 0 (const uint) -0:50 'j' ( temp highp uint) -0:51 move second child to first child ( temp highp uint) -0:51 'j' ( temp highp uint) -0:51 AtomicXor ( global highp uint) -0:51 counter1: direct index for structure ( coherent volatile buffer highp uint) -0:51 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) -0:51 Constant: -0:51 0 (const uint) -0:51 'j' ( temp highp uint) -0:53 move second child to first child ( temp highp uint) -0:53 'j' ( temp highp uint) -0:53 AtomicExchange ( global highp uint) -0:53 counter1: direct index for structure ( coherent volatile buffer highp uint) -0:53 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) -0:53 Constant: -0:53 0 (const uint) -0:53 'j' ( temp highp uint) -0:54 move second child to first child ( temp highp uint) -0:54 'j' ( temp highp uint) -0:54 AtomicCompSwap ( global highp uint) -0:54 counter1: direct index for structure ( coherent volatile buffer highp uint) -0:54 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) -0:54 Constant: -0:54 0 (const uint) -0:54 Constant: -0:54 0 (const uint) -0:54 'j' ( temp highp uint) -0:56 AtomicAdd ( global highp uint) -0:56 counter2: direct index for structure ( coherent volatile buffer highp uint) -0:56 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) -0:56 Constant: -0:56 1 (const uint) -0:56 Constant: -0:56 1 (const uint) -0:57 AtomicAdd ( global highp uint) -0:57 counter3: direct index for structure ( coherent volatile buffer highp uint) -0:57 'anon@3' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3}) -0:57 Constant: -0:57 0 (const uint) -0:57 Constant: -0:57 1 (const uint) -0:59 MemoryBarrierBuffer ( global void) -0:61 Branch: Return with expression -0:61 'j' ( temp highp uint) -0:64 Function Definition: foo( ( global highp 4-component vector of float) -0:64 Function Parameters: -0:65 Sequence -0:65 Sequence -0:65 move second child to first child ( temp highp float) -0:65 'f' ( temp highp float) -0:65 add ( temp highp float) -0:65 add ( temp highp float) -0:65 add ( temp highp float) -0:65 j: direct index for structure (layout( column_major std140) uniform highp float) -0:65 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp float j, layout( column_major std140) uniform highp 4-component vector of float k}) -0:65 Constant: -0:65 0 (const uint) -0:65 j: direct index for structure (layout( column_major std430) buffer highp float) -0:65 'bufferInstance' (layout( column_major std430) buffer block{layout( column_major std430) buffer highp float j, layout( column_major std430) buffer highp 4-component vector of float k}) -0:65 Constant: -0:65 0 (const int) -0:65 y: direct index for structure ( global highp float) -0:65 structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z}) -0:65 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform}) -0:65 Constant: -0:65 4 (const uint) -0:65 Constant: -0:65 1 (const int) -0:65 Convert uint to float ( temp highp float) -0:65 z: direct index for structure ( global highp uint) -0:65 structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z}) -0:65 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform}) -0:65 Constant: -0:65 4 (const uint) -0:65 Constant: -0:65 2 (const int) -0:66 Sequence -0:66 move second child to first child ( temp highp 2-component vector of float) -0:66 'v2' ( temp highp 2-component vector of float) -0:66 add ( temp highp 2-component vector of float) -0:66 add ( temp highp 2-component vector of float) -0:66 b: direct index for structure ( uniform highp 2-component vector of float) -0:66 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform}) -0:66 Constant: -0:66 1 (const uint) -0:66 c: direct index for structure ( uniform highp 2-component vector of float) -0:66 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform}) -0:66 Constant: -0:66 2 (const uint) -0:66 x: direct index for structure ( global highp 2-component vector of float) -0:66 structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z}) -0:66 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform}) -0:66 Constant: -0:66 4 (const uint) -0:66 Constant: -0:66 0 (const int) -0:67 Sequence -0:67 move second child to first child ( temp highp 4-component vector of float) -0:67 'v4' ( temp highp 4-component vector of float) -0:67 add ( temp highp 4-component vector of float) -0:67 add ( temp highp 4-component vector of float) -0:67 add ( temp highp 4-component vector of float) -0:67 add ( temp highp 4-component vector of float) -0:67 add ( temp highp 4-component vector of float) -0:67 add ( temp highp 4-component vector of float) -0:67 a: direct index for structure ( uniform highp 4-component vector of float) -0:67 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform}) -0:67 Constant: -0:67 0 (const uint) -0:67 direct index ( temp highp 4-component vector of float) -0:67 d: direct index for structure ( uniform 10-element array of highp 4-component vector of float) -0:67 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform}) -0:67 Constant: -0:67 3 (const uint) -0:67 Constant: -0:67 0 (const int) -0:67 direct index ( temp highp 4-component vector of float) -0:67 d: direct index for structure ( uniform 10-element array of highp 4-component vector of float) -0:67 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform}) -0:67 Constant: -0:67 3 (const uint) -0:67 Constant: -0:67 1 (const int) -0:67 direct index ( temp highp 4-component vector of float) -0:67 d: direct index for structure ( uniform 10-element array of highp 4-component vector of float) -0:67 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform}) -0:67 Constant: -0:67 3 (const uint) -0:67 Constant: -0:67 2 (const int) -0:67 k: direct index for structure (layout( column_major std140) uniform highp 4-component vector of float) -0:67 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp float j, layout( column_major std140) uniform highp 4-component vector of float k}) -0:67 Constant: -0:67 1 (const uint) -0:67 k: direct index for structure (layout( column_major std430) buffer highp 4-component vector of float) -0:67 'bufferInstance' (layout( column_major std430) buffer block{layout( column_major std430) buffer highp float j, layout( column_major std430) buffer highp 4-component vector of float k}) -0:67 Constant: -0:67 1 (const int) -0:67 texture ( global highp 4-component vector of float) -0:67 't1' ( uniform highp sampler2D) -0:67 Constant: -0:67 0.000000 -0:67 0.000000 -0:68 Branch: Return with expression -0:68 component-wise multiply ( temp highp 4-component vector of float) -0:68 component-wise multiply ( temp highp 4-component vector of float) -0:68 Construct vec4 ( temp highp 4-component vector of float) -0:68 'f' ( temp highp float) -0:68 Construct vec4 ( temp highp 4-component vector of float) -0:68 'v2' ( temp highp 2-component vector of float) -0:68 Constant: -0:68 1.000000 -0:68 Constant: -0:68 1.000000 -0:68 'v4' ( temp highp 4-component vector of float) -0:71 Function Definition: main( ( global void) -0:71 Function Parameters: -0:72 Sequence -0:72 Sequence -0:72 move second child to first child ( temp highp float) -0:72 'j' ( temp highp float) -0:72 Convert uint to float ( temp highp float) -0:72 Function Call: bar( ( global highp uint) -0:73 move second child to first child ( temp highp 4-component vector of float) -0:73 'o' ( out highp 4-component vector of float) -0:73 vector-scale ( temp highp 4-component vector of float) -0:73 'j' ( temp highp float) -0:73 Function Call: foo( ( global highp 4-component vector of float) -0:? Linker Objects -0:? 'o' ( out highp 4-component vector of float) -0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform}) -0:? 't1' ( uniform highp sampler2D) -0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp float j, layout( column_major std140) uniform highp 4-component vector of float k}) -0:? 'bufferInstance' (layout( column_major std430) buffer block{layout( column_major std430) buffer highp float j, layout( column_major std430) buffer highp 4-component vector of float k}) -0:? 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) -0:? 'anon@3' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3}) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 163 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 159 - ExecutionMode 4 OriginUpperLeft - Source GLSL 460 - Name 4 "main" - Name 8 "bar(" - Name 13 "foo(" - Name 16 "j" - Name 18 "gl_AtomicCounterBlock_0" - MemberName 18(gl_AtomicCounterBlock_0) 0 "counter1" - MemberName 18(gl_AtomicCounterBlock_0) 1 "counter2" - Name 20 "" - Name 63 "gl_AtomicCounterBlock_1" - MemberName 63(gl_AtomicCounterBlock_1) 0 "counter3" - Name 65 "" - Name 73 "f" - Name 74 "UniformBlock" - MemberName 74(UniformBlock) 0 "j" - MemberName 74(UniformBlock) 1 "k" - Name 76 "" - Name 80 "BufferBlock" - MemberName 80(BufferBlock) 0 "j" - MemberName 80(BufferBlock) 1 "k" - Name 82 "bufferInstance" - Name 89 "e" - MemberName 89(e) 0 "x" - MemberName 89(e) 1 "y" - MemberName 89(e) 2 "z" - Name 90 "gl_DefaultUniformBlock" - MemberName 90(gl_DefaultUniformBlock) 0 "a" - MemberName 90(gl_DefaultUniformBlock) 1 "b" - MemberName 90(gl_DefaultUniformBlock) 2 "c" - MemberName 90(gl_DefaultUniformBlock) 3 "d" - MemberName 90(gl_DefaultUniformBlock) 4 "structUniform" - Name 92 "" - Name 103 "v2" - Name 114 "v4" - Name 137 "t1" - Name 155 "j" - Name 159 "o" - MemberDecorate 18(gl_AtomicCounterBlock_0) 0 Coherent - MemberDecorate 18(gl_AtomicCounterBlock_0) 0 Volatile - MemberDecorate 18(gl_AtomicCounterBlock_0) 0 Coherent - MemberDecorate 18(gl_AtomicCounterBlock_0) 0 Offset 0 - MemberDecorate 18(gl_AtomicCounterBlock_0) 1 Coherent - MemberDecorate 18(gl_AtomicCounterBlock_0) 1 Volatile - MemberDecorate 18(gl_AtomicCounterBlock_0) 1 Coherent - MemberDecorate 18(gl_AtomicCounterBlock_0) 1 Offset 4 - Decorate 18(gl_AtomicCounterBlock_0) BufferBlock - Decorate 20 DescriptorSet 0 - Decorate 20 Binding 4 - MemberDecorate 63(gl_AtomicCounterBlock_1) 0 Coherent - MemberDecorate 63(gl_AtomicCounterBlock_1) 0 Volatile - MemberDecorate 63(gl_AtomicCounterBlock_1) 0 Coherent - MemberDecorate 63(gl_AtomicCounterBlock_1) 0 Offset 0 - Decorate 63(gl_AtomicCounterBlock_1) BufferBlock - Decorate 65 DescriptorSet 0 - Decorate 65 Binding 5 - MemberDecorate 74(UniformBlock) 0 Offset 0 - MemberDecorate 74(UniformBlock) 1 Offset 16 - Decorate 74(UniformBlock) Block - Decorate 76 DescriptorSet 0 - Decorate 76 Binding 2 - MemberDecorate 80(BufferBlock) 0 Offset 0 - MemberDecorate 80(BufferBlock) 1 Offset 16 - Decorate 80(BufferBlock) BufferBlock - Decorate 82(bufferInstance) DescriptorSet 0 - Decorate 82(bufferInstance) Binding 3 - Decorate 88 ArrayStride 16 - MemberDecorate 89(e) 0 Offset 0 - MemberDecorate 89(e) 1 Offset 8 - MemberDecorate 89(e) 2 Offset 12 - MemberDecorate 90(gl_DefaultUniformBlock) 0 Offset 0 - MemberDecorate 90(gl_DefaultUniformBlock) 1 Offset 16 - MemberDecorate 90(gl_DefaultUniformBlock) 2 Offset 24 - MemberDecorate 90(gl_DefaultUniformBlock) 3 Offset 32 - MemberDecorate 90(gl_DefaultUniformBlock) 4 Offset 192 - Decorate 90(gl_DefaultUniformBlock) Block - Decorate 92 DescriptorSet 0 - Decorate 92 Binding 0 - Decorate 137(t1) DescriptorSet 0 - Decorate 137(t1) Binding 1 - Decorate 159(o) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: TypeFunction 6(int) - 10: TypeFloat 32 - 11: TypeVector 10(float) 4 - 12: TypeFunction 11(fvec4) - 15: TypePointer Function 6(int) - 17: 6(int) Constant 0 -18(gl_AtomicCounterBlock_0): TypeStruct 6(int) 6(int) - 19: TypePointer Uniform 18(gl_AtomicCounterBlock_0) - 20: 19(ptr) Variable Uniform - 21: TypeInt 32 1 - 22: 21(int) Constant 0 - 23: TypePointer Uniform 6(int) - 25: 6(int) Constant 1 - 28: 6(int) Constant 4294967295 - 60: 21(int) Constant 1 -63(gl_AtomicCounterBlock_1): TypeStruct 6(int) - 64: TypePointer Uniform 63(gl_AtomicCounterBlock_1) - 65: 64(ptr) Variable Uniform - 68: 6(int) Constant 72 - 72: TypePointer Function 10(float) -74(UniformBlock): TypeStruct 10(float) 11(fvec4) - 75: TypePointer Uniform 74(UniformBlock) - 76: 75(ptr) Variable Uniform - 77: TypePointer Uniform 10(float) - 80(BufferBlock): TypeStruct 10(float) 11(fvec4) - 81: TypePointer Uniform 80(BufferBlock) -82(bufferInstance): 81(ptr) Variable Uniform - 86: TypeVector 10(float) 2 - 87: 6(int) Constant 10 - 88: TypeArray 11(fvec4) 87 - 89(e): TypeStruct 86(fvec2) 10(float) 6(int) -90(gl_DefaultUniformBlock): TypeStruct 11(fvec4) 86(fvec2) 86(fvec2) 88 89(e) - 91: TypePointer Uniform 90(gl_DefaultUniformBlock) - 92: 91(ptr) Variable Uniform - 93: 21(int) Constant 4 - 97: 21(int) Constant 2 - 102: TypePointer Function 86(fvec2) - 104: TypePointer Uniform 86(fvec2) - 113: TypePointer Function 11(fvec4) - 115: TypePointer Uniform 11(fvec4) - 118: 21(int) Constant 3 - 134: TypeImage 10(float) 2D sampled format:Unknown - 135: TypeSampledImage 134 - 136: TypePointer UniformConstant 135 - 137(t1): 136(ptr) Variable UniformConstant - 139: 10(float) Constant 0 - 140: 86(fvec2) ConstantComposite 139 139 - 146: 10(float) Constant 1065353216 - 158: TypePointer Output 11(fvec4) - 159(o): 158(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 155(j): 72(ptr) Variable Function - 156: 6(int) FunctionCall 8(bar() - 157: 10(float) ConvertUToF 156 - Store 155(j) 157 - 160: 10(float) Load 155(j) - 161: 11(fvec4) FunctionCall 13(foo() - 162: 11(fvec4) VectorTimesScalar 161 160 - Store 159(o) 162 - Return - FunctionEnd - 8(bar(): 6(int) Function None 7 - 9: Label - 16(j): 15(ptr) Variable Function - Store 16(j) 17 - 24: 23(ptr) AccessChain 20 22 - 26: 6(int) AtomicIAdd 24 25 17 25 - Store 16(j) 26 - 27: 23(ptr) AccessChain 20 22 - 29: 6(int) AtomicIAdd 27 25 17 28 - 30: 6(int) ISub 29 25 - Store 16(j) 30 - 31: 23(ptr) AccessChain 20 22 - 32: 6(int) Load 31 - Store 16(j) 32 - 33: 23(ptr) AccessChain 20 22 - 34: 6(int) AtomicIAdd 33 25 17 25 - Store 16(j) 34 - 35: 23(ptr) AccessChain 20 22 - 36: 6(int) AtomicIAdd 35 25 17 28 - Store 16(j) 36 - 37: 23(ptr) AccessChain 20 22 - 38: 6(int) AtomicISub 37 25 17 25 - Store 16(j) 38 - 39: 23(ptr) AccessChain 20 22 - 40: 6(int) Load 16(j) - 41: 6(int) AtomicUMin 39 25 17 40 - Store 16(j) 41 - 42: 23(ptr) AccessChain 20 22 - 43: 6(int) Load 16(j) - 44: 6(int) AtomicUMax 42 25 17 43 - Store 16(j) 44 - 45: 23(ptr) AccessChain 20 22 - 46: 6(int) Load 16(j) - 47: 6(int) AtomicAnd 45 25 17 46 - Store 16(j) 47 - 48: 23(ptr) AccessChain 20 22 - 49: 6(int) Load 16(j) - 50: 6(int) AtomicOr 48 25 17 49 - Store 16(j) 50 - 51: 23(ptr) AccessChain 20 22 - 52: 6(int) Load 16(j) - 53: 6(int) AtomicXor 51 25 17 52 - Store 16(j) 53 - 54: 23(ptr) AccessChain 20 22 - 55: 6(int) Load 16(j) - 56: 6(int) AtomicExchange 54 25 17 55 - Store 16(j) 56 - 57: 23(ptr) AccessChain 20 22 - 58: 6(int) Load 16(j) - 59: 6(int) AtomicCompareExchange 57 25 17 17 58 17 - Store 16(j) 59 - 61: 23(ptr) AccessChain 20 60 - 62: 6(int) AtomicIAdd 61 25 17 25 - 66: 23(ptr) AccessChain 65 22 - 67: 6(int) AtomicIAdd 66 25 17 25 - MemoryBarrier 25 68 - 69: 6(int) Load 16(j) - ReturnValue 69 - FunctionEnd - 13(foo(): 11(fvec4) Function None 12 - 14: Label - 73(f): 72(ptr) Variable Function - 103(v2): 102(ptr) Variable Function - 114(v4): 113(ptr) Variable Function - 78: 77(ptr) AccessChain 76 22 - 79: 10(float) Load 78 - 83: 77(ptr) AccessChain 82(bufferInstance) 22 - 84: 10(float) Load 83 - 85: 10(float) FAdd 79 84 - 94: 77(ptr) AccessChain 92 93 60 - 95: 10(float) Load 94 - 96: 10(float) FAdd 85 95 - 98: 23(ptr) AccessChain 92 93 97 - 99: 6(int) Load 98 - 100: 10(float) ConvertUToF 99 - 101: 10(float) FAdd 96 100 - Store 73(f) 101 - 105: 104(ptr) AccessChain 92 60 - 106: 86(fvec2) Load 105 - 107: 104(ptr) AccessChain 92 97 - 108: 86(fvec2) Load 107 - 109: 86(fvec2) FAdd 106 108 - 110: 104(ptr) AccessChain 92 93 22 - 111: 86(fvec2) Load 110 - 112: 86(fvec2) FAdd 109 111 - Store 103(v2) 112 - 116: 115(ptr) AccessChain 92 22 - 117: 11(fvec4) Load 116 - 119: 115(ptr) AccessChain 92 118 22 - 120: 11(fvec4) Load 119 - 121: 11(fvec4) FAdd 117 120 - 122: 115(ptr) AccessChain 92 118 60 - 123: 11(fvec4) Load 122 - 124: 11(fvec4) FAdd 121 123 - 125: 115(ptr) AccessChain 92 118 97 - 126: 11(fvec4) Load 125 - 127: 11(fvec4) FAdd 124 126 - 128: 115(ptr) AccessChain 76 60 - 129: 11(fvec4) Load 128 - 130: 11(fvec4) FAdd 127 129 - 131: 115(ptr) AccessChain 82(bufferInstance) 60 - 132: 11(fvec4) Load 131 - 133: 11(fvec4) FAdd 130 132 - 138: 135 Load 137(t1) - 141: 11(fvec4) ImageSampleImplicitLod 138 140 - 142: 11(fvec4) FAdd 133 141 - Store 114(v4) 142 - 143: 10(float) Load 73(f) - 144: 11(fvec4) CompositeConstruct 143 143 143 143 - 145: 86(fvec2) Load 103(v2) - 147: 10(float) CompositeExtract 145 0 - 148: 10(float) CompositeExtract 145 1 - 149: 11(fvec4) CompositeConstruct 147 148 146 146 - 150: 11(fvec4) FMul 144 149 - 151: 11(fvec4) Load 114(v4) - 152: 11(fvec4) FMul 150 151 - ReturnValue 152 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/vk.relaxed.link1.frag.out b/deps/glslang/Test/baseResults/vk.relaxed.link1.frag.out deleted file mode 100644 index 9dac4c64..00000000 --- a/deps/glslang/Test/baseResults/vk.relaxed.link1.frag.out +++ /dev/null @@ -1,515 +0,0 @@ -vk.relaxed.link1.frag -Shader version: 460 -gl_FragCoord origin is upper left -0:? Sequence -0:19 Function Definition: bar( ( global highp 4-component vector of float) -0:19 Function Parameters: -0:20 Sequence -0:20 Sequence -0:20 move second child to first child ( temp highp uint) -0:20 'j' ( temp highp uint) -0:20 add ( temp highp uint) -0:20 AtomicAdd ( global highp uint) -0:20 counter1: direct index for structure ( coherent volatile buffer highp uint) -0:20 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) -0:20 Constant: -0:20 0 (const uint) -0:20 Constant: -0:20 1 (const uint) -0:20 subtract ( temp highp uint) -0:20 AtomicAdd ( global highp uint) -0:20 counter2: direct index for structure ( coherent volatile buffer highp uint) -0:20 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) -0:20 Constant: -0:20 1 (const uint) -0:20 Constant: -0:20 4294967295 (const uint) -0:20 Constant: -0:20 1 (const uint) -0:21 Sequence -0:21 move second child to first child ( temp highp 4-component vector of float) -0:21 'v' ( temp highp 4-component vector of float) -0:21 add ( temp highp 4-component vector of float) -0:21 add ( temp highp 4-component vector of float) -0:21 add ( temp highp 4-component vector of float) -0:21 a: direct index for structure ( uniform highp 4-component vector of float) -0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d}) -0:21 Constant: -0:21 0 (const uint) -0:21 Construct vec4 ( temp highp 4-component vector of float) -0:21 direct index ( temp highp float) -0:21 b1: direct index for structure ( uniform highp 2-component vector of float) -0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d}) -0:21 Constant: -0:21 1 (const uint) -0:21 Constant: -0:21 0 (const int) -0:21 direct index ( temp highp float) -0:21 b1: direct index for structure ( uniform highp 2-component vector of float) -0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d}) -0:21 Constant: -0:21 1 (const uint) -0:21 Constant: -0:21 1 (const int) -0:21 direct index ( temp highp float) -0:21 b2: direct index for structure ( uniform highp 2-component vector of float) -0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d}) -0:21 Constant: -0:21 2 (const uint) -0:21 Constant: -0:21 0 (const int) -0:21 direct index ( temp highp float) -0:21 b2: direct index for structure ( uniform highp 2-component vector of float) -0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d}) -0:21 Constant: -0:21 2 (const uint) -0:21 Constant: -0:21 1 (const int) -0:21 c1: direct index for structure ( uniform highp 4-component vector of float) -0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d}) -0:21 Constant: -0:21 3 (const uint) -0:21 d: direct index for structure ( uniform highp 4-component vector of float) -0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d}) -0:21 Constant: -0:21 4 (const uint) -0:23 Branch: Return with expression -0:23 vector-scale ( temp highp 4-component vector of float) -0:23 Convert uint to float ( temp highp float) -0:23 'j' ( temp highp uint) -0:23 'v' ( temp highp 4-component vector of float) -0:26 Function Definition: main( ( global void) -0:26 Function Parameters: -0:27 Sequence -0:27 move second child to first child ( temp highp 4-component vector of float) -0:27 'o' ( out highp 4-component vector of float) -0:27 add ( temp highp 4-component vector of float) -0:27 Function Call: foo( ( global highp 4-component vector of float) -0:27 Function Call: bar( ( global highp 4-component vector of float) -0:? Linker Objects -0:? 'o' ( out highp 4-component vector of float) -0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d}) -0:? 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) - -vk.relaxed.link2.frag -Shader version: 460 -gl_FragCoord origin is upper left -0:? Sequence -0:14 Function Definition: foo( ( global highp 4-component vector of float) -0:14 Function Parameters: -0:15 Sequence -0:15 Sequence -0:15 move second child to first child ( temp highp uint) -0:15 'j' ( temp highp uint) -0:15 add ( temp highp uint) -0:15 AtomicAdd ( global highp uint) -0:15 counter2: direct index for structure ( coherent volatile buffer highp uint) -0:15 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3, coherent volatile buffer highp uint counter2}) -0:15 Constant: -0:15 1 (const uint) -0:15 Constant: -0:15 1 (const uint) -0:15 subtract ( temp highp uint) -0:15 AtomicAdd ( global highp uint) -0:15 counter3: direct index for structure ( coherent volatile buffer highp uint) -0:15 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3, coherent volatile buffer highp uint counter2}) -0:15 Constant: -0:15 0 (const uint) -0:15 Constant: -0:15 4294967295 (const uint) -0:15 Constant: -0:15 1 (const uint) -0:16 Sequence -0:16 move second child to first child ( temp highp 4-component vector of float) -0:16 'v' ( temp highp 4-component vector of float) -0:16 add ( temp highp 4-component vector of float) -0:16 add ( temp highp 4-component vector of float) -0:16 add ( temp highp 4-component vector of float) -0:16 a: direct index for structure ( uniform highp 4-component vector of float) -0:16 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d}) -0:16 Constant: -0:16 0 (const uint) -0:16 Construct vec4 ( temp highp 4-component vector of float) -0:16 direct index ( temp highp float) -0:16 b1: direct index for structure ( uniform highp 2-component vector of float) -0:16 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d}) -0:16 Constant: -0:16 2 (const uint) -0:16 Constant: -0:16 0 (const int) -0:16 direct index ( temp highp float) -0:16 b1: direct index for structure ( uniform highp 2-component vector of float) -0:16 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d}) -0:16 Constant: -0:16 2 (const uint) -0:16 Constant: -0:16 1 (const int) -0:16 direct index ( temp highp float) -0:16 b2: direct index for structure ( uniform highp 2-component vector of float) -0:16 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d}) -0:16 Constant: -0:16 1 (const uint) -0:16 Constant: -0:16 0 (const int) -0:16 direct index ( temp highp float) -0:16 b2: direct index for structure ( uniform highp 2-component vector of float) -0:16 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d}) -0:16 Constant: -0:16 1 (const uint) -0:16 Constant: -0:16 1 (const int) -0:16 c2: direct index for structure ( uniform highp 4-component vector of float) -0:16 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d}) -0:16 Constant: -0:16 3 (const uint) -0:16 d: direct index for structure ( uniform highp 4-component vector of float) -0:16 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d}) -0:16 Constant: -0:16 4 (const uint) -0:18 Branch: Return with expression -0:18 vector-scale ( temp highp 4-component vector of float) -0:18 Convert uint to float ( temp highp float) -0:18 'j' ( temp highp uint) -0:18 'v' ( temp highp 4-component vector of float) -0:? Linker Objects -0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d}) -0:? 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3, coherent volatile buffer highp uint counter2}) - - -Linked fragment stage: - - -Shader version: 460 -gl_FragCoord origin is upper left -0:? Sequence -0:19 Function Definition: bar( ( global highp 4-component vector of float) -0:19 Function Parameters: -0:20 Sequence -0:20 Sequence -0:20 move second child to first child ( temp highp uint) -0:20 'j' ( temp highp uint) -0:20 add ( temp highp uint) -0:20 AtomicAdd ( global highp uint) -0:20 counter1: direct index for structure ( coherent volatile buffer highp uint) -0:20 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2, coherent volatile buffer highp uint counter3}) -0:20 Constant: -0:20 0 (const uint) -0:20 Constant: -0:20 1 (const uint) -0:20 subtract ( temp highp uint) -0:20 AtomicAdd ( global highp uint) -0:20 counter2: direct index for structure ( coherent volatile buffer highp uint) -0:20 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2, coherent volatile buffer highp uint counter3}) -0:20 Constant: -0:20 1 (const uint) -0:20 Constant: -0:20 4294967295 (const uint) -0:20 Constant: -0:20 1 (const uint) -0:21 Sequence -0:21 move second child to first child ( temp highp 4-component vector of float) -0:21 'v' ( temp highp 4-component vector of float) -0:21 add ( temp highp 4-component vector of float) -0:21 add ( temp highp 4-component vector of float) -0:21 add ( temp highp 4-component vector of float) -0:21 a: direct index for structure ( uniform highp 4-component vector of float) -0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d, uniform highp 4-component vector of float c2}) -0:21 Constant: -0:21 0 (const uint) -0:21 Construct vec4 ( temp highp 4-component vector of float) -0:21 direct index ( temp highp float) -0:21 b1: direct index for structure ( uniform highp 2-component vector of float) -0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d, uniform highp 4-component vector of float c2}) -0:21 Constant: -0:21 1 (const uint) -0:21 Constant: -0:21 0 (const int) -0:21 direct index ( temp highp float) -0:21 b1: direct index for structure ( uniform highp 2-component vector of float) -0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d, uniform highp 4-component vector of float c2}) -0:21 Constant: -0:21 1 (const uint) -0:21 Constant: -0:21 1 (const int) -0:21 direct index ( temp highp float) -0:21 b2: direct index for structure ( uniform highp 2-component vector of float) -0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d, uniform highp 4-component vector of float c2}) -0:21 Constant: -0:21 2 (const uint) -0:21 Constant: -0:21 0 (const int) -0:21 direct index ( temp highp float) -0:21 b2: direct index for structure ( uniform highp 2-component vector of float) -0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d, uniform highp 4-component vector of float c2}) -0:21 Constant: -0:21 2 (const uint) -0:21 Constant: -0:21 1 (const int) -0:21 c1: direct index for structure ( uniform highp 4-component vector of float) -0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d, uniform highp 4-component vector of float c2}) -0:21 Constant: -0:21 3 (const uint) -0:21 d: direct index for structure ( uniform highp 4-component vector of float) -0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d, uniform highp 4-component vector of float c2}) -0:21 Constant: -0:21 4 (const uint) -0:23 Branch: Return with expression -0:23 vector-scale ( temp highp 4-component vector of float) -0:23 Convert uint to float ( temp highp float) -0:23 'j' ( temp highp uint) -0:23 'v' ( temp highp 4-component vector of float) -0:26 Function Definition: main( ( global void) -0:26 Function Parameters: -0:27 Sequence -0:27 move second child to first child ( temp highp 4-component vector of float) -0:27 'o' ( out highp 4-component vector of float) -0:27 add ( temp highp 4-component vector of float) -0:27 Function Call: foo( ( global highp 4-component vector of float) -0:27 Function Call: bar( ( global highp 4-component vector of float) -0:14 Function Definition: foo( ( global highp 4-component vector of float) -0:14 Function Parameters: -0:15 Sequence -0:15 Sequence -0:15 move second child to first child ( temp highp uint) -0:15 'j' ( temp highp uint) -0:15 add ( temp highp uint) -0:15 AtomicAdd ( global highp uint) -0:15 counter2: direct index for structure ( coherent volatile buffer highp uint) -0:15 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2, coherent volatile buffer highp uint counter3}) -0:15 Constant: -0:15 1 (const uint) -0:15 Constant: -0:15 1 (const uint) -0:15 subtract ( temp highp uint) -0:15 AtomicAdd ( global highp uint) -0:15 counter3: direct index for structure ( coherent volatile buffer highp uint) -0:15 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2, coherent volatile buffer highp uint counter3}) -0:15 Constant: -0:15 2 (const uint) -0:15 Constant: -0:15 4294967295 (const uint) -0:15 Constant: -0:15 1 (const uint) -0:16 Sequence -0:16 move second child to first child ( temp highp 4-component vector of float) -0:16 'v' ( temp highp 4-component vector of float) -0:16 add ( temp highp 4-component vector of float) -0:16 add ( temp highp 4-component vector of float) -0:16 add ( temp highp 4-component vector of float) -0:16 a: direct index for structure ( uniform highp 4-component vector of float) -0:16 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d, uniform highp 4-component vector of float c2}) -0:16 Constant: -0:16 0 (const uint) -0:16 Construct vec4 ( temp highp 4-component vector of float) -0:16 direct index ( temp highp float) -0:16 b1: direct index for structure ( uniform highp 2-component vector of float) -0:16 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d, uniform highp 4-component vector of float c2}) -0:16 Constant: -0:16 1 (const uint) -0:16 Constant: -0:16 0 (const int) -0:16 direct index ( temp highp float) -0:16 b1: direct index for structure ( uniform highp 2-component vector of float) -0:16 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d, uniform highp 4-component vector of float c2}) -0:16 Constant: -0:16 1 (const uint) -0:16 Constant: -0:16 1 (const int) -0:16 direct index ( temp highp float) -0:16 b2: direct index for structure ( uniform highp 2-component vector of float) -0:16 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d, uniform highp 4-component vector of float c2}) -0:16 Constant: -0:16 2 (const uint) -0:16 Constant: -0:16 0 (const int) -0:16 direct index ( temp highp float) -0:16 b2: direct index for structure ( uniform highp 2-component vector of float) -0:16 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d, uniform highp 4-component vector of float c2}) -0:16 Constant: -0:16 2 (const uint) -0:16 Constant: -0:16 1 (const int) -0:16 c2: direct index for structure ( uniform highp 4-component vector of float) -0:16 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d, uniform highp 4-component vector of float c2}) -0:16 Constant: -0:16 5 (const uint) -0:16 d: direct index for structure ( uniform highp 4-component vector of float) -0:16 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d, uniform highp 4-component vector of float c2}) -0:16 Constant: -0:16 4 (const uint) -0:18 Branch: Return with expression -0:18 vector-scale ( temp highp 4-component vector of float) -0:18 Convert uint to float ( temp highp float) -0:18 'j' ( temp highp uint) -0:18 'v' ( temp highp 4-component vector of float) -0:? Linker Objects -0:? 'o' ( out highp 4-component vector of float) -0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d, uniform highp 4-component vector of float c2}) -0:? 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2, coherent volatile buffer highp uint counter3}) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 105 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 68 - ExecutionMode 4 OriginUpperLeft - Source GLSL 460 - Name 4 "main" - Name 9 "bar(" - Name 11 "foo(" - Name 15 "j" - Name 16 "gl_AtomicCounterBlock_0" - MemberName 16(gl_AtomicCounterBlock_0) 0 "counter1" - MemberName 16(gl_AtomicCounterBlock_0) 1 "counter2" - MemberName 16(gl_AtomicCounterBlock_0) 2 "counter3" - Name 18 "" - Name 33 "v" - Name 35 "gl_DefaultUniformBlock" - MemberName 35(gl_DefaultUniformBlock) 0 "a" - MemberName 35(gl_DefaultUniformBlock) 1 "b1" - MemberName 35(gl_DefaultUniformBlock) 2 "b2" - MemberName 35(gl_DefaultUniformBlock) 3 "c1" - MemberName 35(gl_DefaultUniformBlock) 4 "d" - MemberName 35(gl_DefaultUniformBlock) 5 "c2" - Name 37 "" - Name 68 "o" - Name 72 "j" - Name 79 "v" - MemberDecorate 16(gl_AtomicCounterBlock_0) 0 Coherent - MemberDecorate 16(gl_AtomicCounterBlock_0) 0 Volatile - MemberDecorate 16(gl_AtomicCounterBlock_0) 0 Coherent - MemberDecorate 16(gl_AtomicCounterBlock_0) 0 Offset 0 - MemberDecorate 16(gl_AtomicCounterBlock_0) 1 Coherent - MemberDecorate 16(gl_AtomicCounterBlock_0) 1 Volatile - MemberDecorate 16(gl_AtomicCounterBlock_0) 1 Coherent - MemberDecorate 16(gl_AtomicCounterBlock_0) 1 Offset 4 - MemberDecorate 16(gl_AtomicCounterBlock_0) 2 Coherent - MemberDecorate 16(gl_AtomicCounterBlock_0) 2 Volatile - MemberDecorate 16(gl_AtomicCounterBlock_0) 2 Coherent - MemberDecorate 16(gl_AtomicCounterBlock_0) 2 Offset 8 - Decorate 16(gl_AtomicCounterBlock_0) BufferBlock - Decorate 18 DescriptorSet 0 - Decorate 18 Binding 1 - MemberDecorate 35(gl_DefaultUniformBlock) 0 Offset 0 - MemberDecorate 35(gl_DefaultUniformBlock) 1 Offset 16 - MemberDecorate 35(gl_DefaultUniformBlock) 2 Offset 24 - MemberDecorate 35(gl_DefaultUniformBlock) 3 Offset 32 - MemberDecorate 35(gl_DefaultUniformBlock) 4 Offset 48 - MemberDecorate 35(gl_DefaultUniformBlock) 5 Offset 64 - Decorate 35(gl_DefaultUniformBlock) Block - Decorate 37 DescriptorSet 0 - Decorate 37 Binding 0 - Decorate 68(o) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 13: TypeInt 32 0 - 14: TypePointer Function 13(int) -16(gl_AtomicCounterBlock_0): TypeStruct 13(int) 13(int) 13(int) - 17: TypePointer Uniform 16(gl_AtomicCounterBlock_0) - 18: 17(ptr) Variable Uniform - 19: TypeInt 32 1 - 20: 19(int) Constant 0 - 21: TypePointer Uniform 13(int) - 23: 13(int) Constant 1 - 24: 13(int) Constant 0 - 26: 19(int) Constant 1 - 28: 13(int) Constant 4294967295 - 32: TypePointer Function 7(fvec4) - 34: TypeVector 6(float) 2 -35(gl_DefaultUniformBlock): TypeStruct 7(fvec4) 34(fvec2) 34(fvec2) 7(fvec4) 7(fvec4) 7(fvec4) - 36: TypePointer Uniform 35(gl_DefaultUniformBlock) - 37: 36(ptr) Variable Uniform - 38: TypePointer Uniform 7(fvec4) - 41: TypePointer Uniform 6(float) - 46: 19(int) Constant 2 - 53: 19(int) Constant 3 - 57: 19(int) Constant 4 - 67: TypePointer Output 7(fvec4) - 68(o): 67(ptr) Variable Output - 92: 19(int) Constant 5 - 4(main): 2 Function None 3 - 5: Label - 69: 7(fvec4) FunctionCall 11(foo() - 70: 7(fvec4) FunctionCall 9(bar() - 71: 7(fvec4) FAdd 69 70 - Store 68(o) 71 - Return - FunctionEnd - 9(bar(): 7(fvec4) Function None 8 - 10: Label - 15(j): 14(ptr) Variable Function - 33(v): 32(ptr) Variable Function - 22: 21(ptr) AccessChain 18 20 - 25: 13(int) AtomicIAdd 22 23 24 23 - 27: 21(ptr) AccessChain 18 26 - 29: 13(int) AtomicIAdd 27 23 24 28 - 30: 13(int) ISub 29 23 - 31: 13(int) IAdd 25 30 - Store 15(j) 31 - 39: 38(ptr) AccessChain 37 20 - 40: 7(fvec4) Load 39 - 42: 41(ptr) AccessChain 37 26 24 - 43: 6(float) Load 42 - 44: 41(ptr) AccessChain 37 26 23 - 45: 6(float) Load 44 - 47: 41(ptr) AccessChain 37 46 24 - 48: 6(float) Load 47 - 49: 41(ptr) AccessChain 37 46 23 - 50: 6(float) Load 49 - 51: 7(fvec4) CompositeConstruct 43 45 48 50 - 52: 7(fvec4) FAdd 40 51 - 54: 38(ptr) AccessChain 37 53 - 55: 7(fvec4) Load 54 - 56: 7(fvec4) FAdd 52 55 - 58: 38(ptr) AccessChain 37 57 - 59: 7(fvec4) Load 58 - 60: 7(fvec4) FAdd 56 59 - Store 33(v) 60 - 61: 13(int) Load 15(j) - 62: 6(float) ConvertUToF 61 - 63: 7(fvec4) Load 33(v) - 64: 7(fvec4) VectorTimesScalar 63 62 - ReturnValue 64 - FunctionEnd - 11(foo(): 7(fvec4) Function None 8 - 12: Label - 72(j): 14(ptr) Variable Function - 79(v): 32(ptr) Variable Function - 73: 21(ptr) AccessChain 18 26 - 74: 13(int) AtomicIAdd 73 23 24 23 - 75: 21(ptr) AccessChain 18 46 - 76: 13(int) AtomicIAdd 75 23 24 28 - 77: 13(int) ISub 76 23 - 78: 13(int) IAdd 74 77 - Store 72(j) 78 - 80: 38(ptr) AccessChain 37 20 - 81: 7(fvec4) Load 80 - 82: 41(ptr) AccessChain 37 26 24 - 83: 6(float) Load 82 - 84: 41(ptr) AccessChain 37 26 23 - 85: 6(float) Load 84 - 86: 41(ptr) AccessChain 37 46 24 - 87: 6(float) Load 86 - 88: 41(ptr) AccessChain 37 46 23 - 89: 6(float) Load 88 - 90: 7(fvec4) CompositeConstruct 83 85 87 89 - 91: 7(fvec4) FAdd 81 90 - 93: 38(ptr) AccessChain 37 92 - 94: 7(fvec4) Load 93 - 95: 7(fvec4) FAdd 91 94 - 96: 38(ptr) AccessChain 37 57 - 97: 7(fvec4) Load 96 - 98: 7(fvec4) FAdd 95 97 - Store 79(v) 98 - 99: 13(int) Load 72(j) - 100: 6(float) ConvertUToF 99 - 101: 7(fvec4) Load 79(v) - 102: 7(fvec4) VectorTimesScalar 101 100 - ReturnValue 102 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/vk.relaxed.stagelink.0.0.vert.out b/deps/glslang/Test/baseResults/vk.relaxed.stagelink.0.0.vert.out deleted file mode 100644 index bcd4e2af..00000000 --- a/deps/glslang/Test/baseResults/vk.relaxed.stagelink.0.0.vert.out +++ /dev/null @@ -1,10697 +0,0 @@ -vk.relaxed.stagelink.0.0.vert -Shader version: 460 -0:? Sequence -0:11 Function Definition: main( ( global void) -0:11 Function Parameters: -0:15 Sequence -0:15 Sequence -0:15 Sequence -0:15 move second child to first child ( temp highp 3-component vector of float) -0:15 'texcoord' ( temp highp 3-component vector of float) -0:15 Function Call: TDInstanceTexCoord(vf3; ( global highp 3-component vector of float) -0:15 direct index (layout( location=3) temp highp 3-component vector of float) -0:15 'uv' (layout( location=3) in 8-element array of highp 3-component vector of float) -0:15 Constant: -0:15 0 (const int) -0:16 move second child to first child ( temp highp 3-component vector of float) -0:16 vector swizzle ( temp highp 3-component vector of float) -0:16 texCoord0: direct index for structure ( out highp 3-component vector of float) -0:16 'oVert' ( out block{ out highp 4-component vector of float color, out highp 3-component vector of float worldSpacePos, out highp 3-component vector of float texCoord0, flat out highp int cameraIndex, flat out highp int instance}) -0:16 Constant: -0:16 2 (const int) -0:16 Sequence -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 1 (const int) -0:16 Constant: -0:16 2 (const int) -0:16 vector swizzle ( temp highp 3-component vector of float) -0:16 'texcoord' ( temp highp 3-component vector of float) -0:16 Sequence -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 1 (const int) -0:16 Constant: -0:16 2 (const int) -0:20 move second child to first child ( temp highp int) -0:20 instance: direct index for structure ( flat out highp int) -0:20 'oVert' ( out block{ out highp 4-component vector of float color, out highp 3-component vector of float worldSpacePos, out highp 3-component vector of float texCoord0, flat out highp int cameraIndex, flat out highp int instance}) -0:20 Constant: -0:20 4 (const int) -0:20 Function Call: TDInstanceID( ( global highp int) -0:21 Sequence -0:21 move second child to first child ( temp highp 4-component vector of float) -0:21 'worldSpacePos' ( temp highp 4-component vector of float) -0:21 Function Call: TDDeform(vf3; ( global highp 4-component vector of float) -0:21 'P' (layout( location=0) in highp 3-component vector of float) -0:22 Sequence -0:22 move second child to first child ( temp highp 3-component vector of float) -0:22 'uvUnwrapCoord' ( temp highp 3-component vector of float) -0:22 Function Call: TDInstanceTexCoord(vf3; ( global highp 3-component vector of float) -0:22 Function Call: TDUVUnwrapCoord( ( global highp 3-component vector of float) -0:23 move second child to first child ( temp highp 4-component vector of float) -0:23 gl_Position: direct index for structure ( gl_Position highp 4-component vector of float Position) -0:23 'anon@4' ( 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, out unsized 1-element array of float CullDistance gl_CullDistance}) -0:23 Constant: -0:23 0 (const uint) -0:23 Function Call: TDWorldToProj(vf4;vf3; ( global highp 4-component vector of float) -0:23 'worldSpacePos' ( temp highp 4-component vector of float) -0:23 'uvUnwrapCoord' ( temp highp 3-component vector of float) -0:32 Sequence -0:32 move second child to first child ( temp highp int) -0:32 'cameraIndex' ( temp highp int) -0:32 Function Call: TDCameraIndex( ( global highp int) -0:33 move second child to first child ( temp highp int) -0:33 cameraIndex: direct index for structure ( flat out highp int) -0:33 'oVert' ( out block{ out highp 4-component vector of float color, out highp 3-component vector of float worldSpacePos, out highp 3-component vector of float texCoord0, flat out highp int cameraIndex, flat out highp int instance}) -0:33 Constant: -0:33 3 (const int) -0:33 'cameraIndex' ( temp highp int) -0:34 move second child to first child ( temp highp 3-component vector of float) -0:34 vector swizzle ( temp highp 3-component vector of float) -0:34 worldSpacePos: direct index for structure ( out highp 3-component vector of float) -0:34 'oVert' ( out block{ out highp 4-component vector of float color, out highp 3-component vector of float worldSpacePos, out highp 3-component vector of float texCoord0, flat out highp int cameraIndex, flat out highp int instance}) -0:34 Constant: -0:34 1 (const int) -0:34 Sequence -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 Constant: -0:34 2 (const int) -0:34 vector swizzle ( temp highp 3-component vector of float) -0:34 'worldSpacePos' ( temp highp 4-component vector of float) -0:34 Sequence -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 Constant: -0:34 2 (const int) -0:35 move second child to first child ( temp highp 4-component vector of float) -0:35 color: direct index for structure ( out highp 4-component vector of float) -0:35 'oVert' ( out block{ out highp 4-component vector of float color, out highp 3-component vector of float worldSpacePos, out highp 3-component vector of float texCoord0, flat out highp int cameraIndex, flat out highp int instance}) -0:35 Constant: -0:35 0 (const int) -0:35 Function Call: TDInstanceColor(vf4; ( global highp 4-component vector of float) -0:35 'Cd' (layout( location=2) in highp 4-component vector of float) -0:? Linker Objects -0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal}) -0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 1-element array of structure{layout( column_major std140) global highp 4X4 matrix of float world, layout( column_major std140) global highp 4X4 matrix of float worldInverse, layout( column_major std140) global highp 4X4 matrix of float worldCam, layout( column_major std140) global highp 4X4 matrix of float worldCamInverse, layout( column_major std140) global highp 4X4 matrix of float cam, layout( column_major std140) global highp 4X4 matrix of float camInverse, layout( column_major std140) global highp 4X4 matrix of float camProj, layout( column_major std140) global highp 4X4 matrix of float camProjInverse, layout( column_major std140) global highp 4X4 matrix of float proj, layout( column_major std140) global highp 4X4 matrix of float projInverse, layout( column_major std140) global highp 4X4 matrix of float worldCamProj, layout( column_major std140) global highp 4X4 matrix of float worldCamProjInverse, layout( column_major std140) global highp 4X4 matrix of float quadReproject, layout( column_major std140) global highp 3X3 matrix of float worldForNormals, layout( column_major std140) global highp 3X3 matrix of float camForNormals, layout( column_major std140) global highp 3X3 matrix of float worldCamForNormals} uTDMats}) -0:? 'anon@2' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 1-element array of structure{ global highp 4-component vector of float nearFar, global highp 4-component vector of float fog, global highp 4-component vector of float fogColor, global highp int renderTOPCameraIndex} uTDCamInfos}) -0:? 'anon@3' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform structure{ global highp 4-component vector of float ambientColor, global highp 4-component vector of float nearFar, global highp 4-component vector of float viewport, global highp 4-component vector of float viewportRes, global highp 4-component vector of float fog, global highp 4-component vector of float fogColor} uTDGeneral}) -0:? 'P' (layout( location=0) in highp 3-component vector of float) -0:? 'N' (layout( location=1) in highp 3-component vector of float) -0:? 'Cd' (layout( location=2) in highp 4-component vector of float) -0:? 'uv' (layout( location=3) in 8-element array of highp 3-component vector of float) -0:? 'oVert' ( out block{ out highp 4-component vector of float color, out highp 3-component vector of float worldSpacePos, out highp 3-component vector of float texCoord0, flat out highp int cameraIndex, flat out highp int instance}) -0:? 'anon@4' ( 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, out unsized 1-element array of float CullDistance gl_CullDistance}) -0:? 'gl_VertexIndex' ( in int VertexIndex) -0:? 'gl_InstanceIndex' ( in int InstanceIndex) - -vk.relaxed.stagelink.0.1.vert -Shader version: 460 -0:? Sequence -0:176 Function Definition: iTDCamToProj(vf4;vf3;i1;b1; ( global highp 4-component vector of float) -0:176 Function Parameters: -0:176 'v' ( in highp 4-component vector of float) -0:176 'uv' ( in highp 3-component vector of float) -0:176 'cameraIndex' ( in highp int) -0:176 'applyPickMod' ( in bool) -0:178 Sequence -0:178 Test condition and select ( temp void) -0:178 Condition -0:178 Negate conditional ( temp bool) -0:178 Function Call: TDInstanceActive( ( global bool) -0:178 true case -0:179 Branch: Return with expression -0:179 Constant: -0:179 2.000000 -0:179 2.000000 -0:179 2.000000 -0:179 0.000000 -0:180 move second child to first child ( temp highp 4-component vector of float) -0:180 'v' ( in highp 4-component vector of float) -0:180 matrix-times-vector ( temp highp 4-component vector of float) -0:180 proj: direct index for structure (layout( column_major std140) global highp 4X4 matrix of float) -0:180 direct index (layout( column_major std140 offset=0) temp structure{layout( column_major std140) global highp 4X4 matrix of float world, layout( column_major std140) global highp 4X4 matrix of float worldInverse, layout( column_major std140) global highp 4X4 matrix of float worldCam, layout( column_major std140) global highp 4X4 matrix of float worldCamInverse, layout( column_major std140) global highp 4X4 matrix of float cam, layout( column_major std140) global highp 4X4 matrix of float camInverse, layout( column_major std140) global highp 4X4 matrix of float camProj, layout( column_major std140) global highp 4X4 matrix of float camProjInverse, layout( column_major std140) global highp 4X4 matrix of float proj, layout( column_major std140) global highp 4X4 matrix of float projInverse, layout( column_major std140) global highp 4X4 matrix of float worldCamProj, layout( column_major std140) global highp 4X4 matrix of float worldCamProjInverse, layout( column_major std140) global highp 4X4 matrix of float quadReproject, layout( column_major std140) global highp 3X3 matrix of float worldForNormals, layout( column_major std140) global highp 3X3 matrix of float camForNormals, layout( column_major std140) global highp 3X3 matrix of float worldCamForNormals}) -0:180 uTDMats: direct index for structure (layout( column_major std140 offset=0) uniform 1-element array of structure{layout( column_major std140) global highp 4X4 matrix of float world, layout( column_major std140) global highp 4X4 matrix of float worldInverse, layout( column_major std140) global highp 4X4 matrix of float worldCam, layout( column_major std140) global highp 4X4 matrix of float worldCamInverse, layout( column_major std140) global highp 4X4 matrix of float cam, layout( column_major std140) global highp 4X4 matrix of float camInverse, layout( column_major std140) global highp 4X4 matrix of float camProj, layout( column_major std140) global highp 4X4 matrix of float camProjInverse, layout( column_major std140) global highp 4X4 matrix of float proj, layout( column_major std140) global highp 4X4 matrix of float projInverse, layout( column_major std140) global highp 4X4 matrix of float worldCamProj, layout( column_major std140) global highp 4X4 matrix of float worldCamProjInverse, layout( column_major std140) global highp 4X4 matrix of float quadReproject, layout( column_major std140) global highp 3X3 matrix of float worldForNormals, layout( column_major std140) global highp 3X3 matrix of float camForNormals, layout( column_major std140) global highp 3X3 matrix of float worldCamForNormals}) -0:180 'anon@3' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 1-element array of structure{layout( column_major std140) global highp 4X4 matrix of float world, layout( column_major std140) global highp 4X4 matrix of float worldInverse, layout( column_major std140) global highp 4X4 matrix of float worldCam, layout( column_major std140) global highp 4X4 matrix of float worldCamInverse, layout( column_major std140) global highp 4X4 matrix of float cam, layout( column_major std140) global highp 4X4 matrix of float camInverse, layout( column_major std140) global highp 4X4 matrix of float camProj, layout( column_major std140) global highp 4X4 matrix of float camProjInverse, layout( column_major std140) global highp 4X4 matrix of float proj, layout( column_major std140) global highp 4X4 matrix of float projInverse, layout( column_major std140) global highp 4X4 matrix of float worldCamProj, layout( column_major std140) global highp 4X4 matrix of float worldCamProjInverse, layout( column_major std140) global highp 4X4 matrix of float quadReproject, layout( column_major std140) global highp 3X3 matrix of float worldForNormals, layout( column_major std140) global highp 3X3 matrix of float camForNormals, layout( column_major std140) global highp 3X3 matrix of float worldCamForNormals} uTDMats}) -0:180 Constant: -0:180 0 (const uint) -0:180 Constant: -0:180 0 (const int) -0:180 Constant: -0:180 8 (const int) -0:180 'v' ( in highp 4-component vector of float) -0:181 Branch: Return with expression -0:181 'v' ( in highp 4-component vector of float) -0:183 Function Definition: iTDWorldToProj(vf4;vf3;i1;b1; ( global highp 4-component vector of float) -0:183 Function Parameters: -0:183 'v' ( in highp 4-component vector of float) -0:183 'uv' ( in highp 3-component vector of float) -0:183 'cameraIndex' ( in highp int) -0:183 'applyPickMod' ( in bool) -0:184 Sequence -0:184 Test condition and select ( temp void) -0:184 Condition -0:184 Negate conditional ( temp bool) -0:184 Function Call: TDInstanceActive( ( global bool) -0:184 true case -0:185 Branch: Return with expression -0:185 Constant: -0:185 2.000000 -0:185 2.000000 -0:185 2.000000 -0:185 0.000000 -0:186 move second child to first child ( temp highp 4-component vector of float) -0:186 'v' ( in highp 4-component vector of float) -0:186 matrix-times-vector ( temp highp 4-component vector of float) -0:186 camProj: direct index for structure (layout( column_major std140) global highp 4X4 matrix of float) -0:186 direct index (layout( column_major std140 offset=0) temp structure{layout( column_major std140) global highp 4X4 matrix of float world, layout( column_major std140) global highp 4X4 matrix of float worldInverse, layout( column_major std140) global highp 4X4 matrix of float worldCam, layout( column_major std140) global highp 4X4 matrix of float worldCamInverse, layout( column_major std140) global highp 4X4 matrix of float cam, layout( column_major std140) global highp 4X4 matrix of float camInverse, layout( column_major std140) global highp 4X4 matrix of float camProj, layout( column_major std140) global highp 4X4 matrix of float camProjInverse, layout( column_major std140) global highp 4X4 matrix of float proj, layout( column_major std140) global highp 4X4 matrix of float projInverse, layout( column_major std140) global highp 4X4 matrix of float worldCamProj, layout( column_major std140) global highp 4X4 matrix of float worldCamProjInverse, layout( column_major std140) global highp 4X4 matrix of float quadReproject, layout( column_major std140) global highp 3X3 matrix of float worldForNormals, layout( column_major std140) global highp 3X3 matrix of float camForNormals, layout( column_major std140) global highp 3X3 matrix of float worldCamForNormals}) -0:186 uTDMats: direct index for structure (layout( column_major std140 offset=0) uniform 1-element array of structure{layout( column_major std140) global highp 4X4 matrix of float world, layout( column_major std140) global highp 4X4 matrix of float worldInverse, layout( column_major std140) global highp 4X4 matrix of float worldCam, layout( column_major std140) global highp 4X4 matrix of float worldCamInverse, layout( column_major std140) global highp 4X4 matrix of float cam, layout( column_major std140) global highp 4X4 matrix of float camInverse, layout( column_major std140) global highp 4X4 matrix of float camProj, layout( column_major std140) global highp 4X4 matrix of float camProjInverse, layout( column_major std140) global highp 4X4 matrix of float proj, layout( column_major std140) global highp 4X4 matrix of float projInverse, layout( column_major std140) global highp 4X4 matrix of float worldCamProj, layout( column_major std140) global highp 4X4 matrix of float worldCamProjInverse, layout( column_major std140) global highp 4X4 matrix of float quadReproject, layout( column_major std140) global highp 3X3 matrix of float worldForNormals, layout( column_major std140) global highp 3X3 matrix of float camForNormals, layout( column_major std140) global highp 3X3 matrix of float worldCamForNormals}) -0:186 'anon@3' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 1-element array of structure{layout( column_major std140) global highp 4X4 matrix of float world, layout( column_major std140) global highp 4X4 matrix of float worldInverse, layout( column_major std140) global highp 4X4 matrix of float worldCam, layout( column_major std140) global highp 4X4 matrix of float worldCamInverse, layout( column_major std140) global highp 4X4 matrix of float cam, layout( column_major std140) global highp 4X4 matrix of float camInverse, layout( column_major std140) global highp 4X4 matrix of float camProj, layout( column_major std140) global highp 4X4 matrix of float camProjInverse, layout( column_major std140) global highp 4X4 matrix of float proj, layout( column_major std140) global highp 4X4 matrix of float projInverse, layout( column_major std140) global highp 4X4 matrix of float worldCamProj, layout( column_major std140) global highp 4X4 matrix of float worldCamProjInverse, layout( column_major std140) global highp 4X4 matrix of float quadReproject, layout( column_major std140) global highp 3X3 matrix of float worldForNormals, layout( column_major std140) global highp 3X3 matrix of float camForNormals, layout( column_major std140) global highp 3X3 matrix of float worldCamForNormals} uTDMats}) -0:186 Constant: -0:186 0 (const uint) -0:186 Constant: -0:186 0 (const int) -0:186 Constant: -0:186 6 (const int) -0:186 'v' ( in highp 4-component vector of float) -0:187 Branch: Return with expression -0:187 'v' ( in highp 4-component vector of float) -0:193 Function Definition: TDInstanceID( ( global highp int) -0:193 Function Parameters: -0:194 Sequence -0:194 Branch: Return with expression -0:194 add ( temp highp int) -0:194 'gl_InstanceIndex' ( in highp int InstanceIndex) -0:194 uTDInstanceIDOffset: direct index for structure ( uniform highp int) -0:194 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal}) -0:194 Constant: -0:194 0 (const uint) -0:196 Function Definition: TDCameraIndex( ( global highp int) -0:196 Function Parameters: -0:197 Sequence -0:197 Branch: Return with expression -0:197 Constant: -0:197 0 (const int) -0:199 Function Definition: TDUVUnwrapCoord( ( global highp 3-component vector of float) -0:199 Function Parameters: -0:200 Sequence -0:200 Branch: Return with expression -0:200 direct index (layout( location=3) temp highp 3-component vector of float) -0:200 'uv' (layout( location=3) in 8-element array of highp 3-component vector of float) -0:200 Constant: -0:200 0 (const int) -0:205 Function Definition: TDPickID( ( global highp int) -0:205 Function Parameters: -0:209 Sequence -0:209 Branch: Return with expression -0:209 Constant: -0:209 0 (const int) -0:212 Function Definition: iTDConvertPickId(i1; ( global highp float) -0:212 Function Parameters: -0:212 'id' ( in highp int) -0:213 Sequence -0:213 or second child into first child ( temp highp int) -0:213 'id' ( in highp int) -0:213 Constant: -0:213 1073741824 (const int) -0:214 Branch: Return with expression -0:214 intBitsToFloat ( global highp float) -0:214 'id' ( in highp int) -0:217 Function Definition: TDWritePickingValues( ( global void) -0:217 Function Parameters: -0:224 Function Definition: TDWorldToProj(vf4;vf3; ( global highp 4-component vector of float) -0:224 Function Parameters: -0:224 'v' ( in highp 4-component vector of float) -0:224 'uv' ( in highp 3-component vector of float) -0:226 Sequence -0:226 Branch: Return with expression -0:226 Function Call: iTDWorldToProj(vf4;vf3;i1;b1; ( global highp 4-component vector of float) -0:226 'v' ( in highp 4-component vector of float) -0:226 'uv' ( in highp 3-component vector of float) -0:226 Function Call: TDCameraIndex( ( global highp int) -0:226 Constant: -0:226 true (const bool) -0:228 Function Definition: TDWorldToProj(vf3;vf3; ( global highp 4-component vector of float) -0:228 Function Parameters: -0:228 'v' ( in highp 3-component vector of float) -0:228 'uv' ( in highp 3-component vector of float) -0:230 Sequence -0:230 Branch: Return with expression -0:230 Function Call: TDWorldToProj(vf4;vf3; ( global highp 4-component vector of float) -0:230 Construct vec4 ( temp highp 4-component vector of float) -0:230 'v' ( in highp 3-component vector of float) -0:230 Constant: -0:230 1.000000 -0:230 'uv' ( in highp 3-component vector of float) -0:232 Function Definition: TDWorldToProj(vf4; ( global highp 4-component vector of float) -0:232 Function Parameters: -0:232 'v' ( in highp 4-component vector of float) -0:234 Sequence -0:234 Branch: Return with expression -0:234 Function Call: TDWorldToProj(vf4;vf3; ( global highp 4-component vector of float) -0:234 'v' ( in highp 4-component vector of float) -0:234 Constant: -0:234 0.000000 -0:234 0.000000 -0:234 0.000000 -0:236 Function Definition: TDWorldToProj(vf3; ( global highp 4-component vector of float) -0:236 Function Parameters: -0:236 'v' ( in highp 3-component vector of float) -0:238 Sequence -0:238 Branch: Return with expression -0:238 Function Call: TDWorldToProj(vf4; ( global highp 4-component vector of float) -0:238 Construct vec4 ( temp highp 4-component vector of float) -0:238 'v' ( in highp 3-component vector of float) -0:238 Constant: -0:238 1.000000 -0:240 Function Definition: TDPointColor( ( global highp 4-component vector of float) -0:240 Function Parameters: -0:241 Sequence -0:241 Branch: Return with expression -0:241 'Cd' (layout( location=2) in highp 4-component vector of float) -0:? Linker Objects -0:? 'P' (layout( location=0) in highp 3-component vector of float) -0:? 'N' (layout( location=1) in highp 3-component vector of float) -0:? 'Cd' (layout( location=2) in highp 4-component vector of float) -0:? 'uv' (layout( location=3) in 8-element array of highp 3-component vector of float) -0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal}) -0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 1-element array of structure{ global highp 4-component vector of float position, global highp 3-component vector of float direction, global highp 3-component vector of float diffuse, global highp 4-component vector of float nearFar, global highp 4-component vector of float lightSize, global highp 4-component vector of float misc, global highp 4-component vector of float coneLookupScaleBias, global highp 4-component vector of float attenScaleBiasRoll, layout( column_major std140) global highp 4X4 matrix of float shadowMapMatrix, layout( column_major std140) global highp 4X4 matrix of float shadowMapCamMatrix, global highp 4-component vector of float shadowMapRes, layout( column_major std140) global highp 4X4 matrix of float projMapMatrix} uTDLights}) -0:? 'anon@2' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 1-element array of structure{ global highp 3-component vector of float color, layout( column_major std140) global highp 3X3 matrix of float rotate} uTDEnvLights}) -0:? 'uTDEnvLightBuffers' (layout( column_major std430) restrict readonly buffer 1-element array of block{layout( column_major std430 offset=0) restrict readonly buffer 9-element array of highp 3-component vector of float shCoeffs}) -0:? 'anon@3' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 1-element array of structure{layout( column_major std140) global highp 4X4 matrix of float world, layout( column_major std140) global highp 4X4 matrix of float worldInverse, layout( column_major std140) global highp 4X4 matrix of float worldCam, layout( column_major std140) global highp 4X4 matrix of float worldCamInverse, layout( column_major std140) global highp 4X4 matrix of float cam, layout( column_major std140) global highp 4X4 matrix of float camInverse, layout( column_major std140) global highp 4X4 matrix of float camProj, layout( column_major std140) global highp 4X4 matrix of float camProjInverse, layout( column_major std140) global highp 4X4 matrix of float proj, layout( column_major std140) global highp 4X4 matrix of float projInverse, layout( column_major std140) global highp 4X4 matrix of float worldCamProj, layout( column_major std140) global highp 4X4 matrix of float worldCamProjInverse, layout( column_major std140) global highp 4X4 matrix of float quadReproject, layout( column_major std140) global highp 3X3 matrix of float worldForNormals, layout( column_major std140) global highp 3X3 matrix of float camForNormals, layout( column_major std140) global highp 3X3 matrix of float worldCamForNormals} uTDMats}) -0:? 'anon@4' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 1-element array of structure{ global highp 4-component vector of float nearFar, global highp 4-component vector of float fog, global highp 4-component vector of float fogColor, global highp int renderTOPCameraIndex} uTDCamInfos}) -0:? 'anon@5' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform structure{ global highp 4-component vector of float ambientColor, global highp 4-component vector of float nearFar, global highp 4-component vector of float viewport, global highp 4-component vector of float viewportRes, global highp 4-component vector of float fog, global highp 4-component vector of float fogColor} uTDGeneral}) -0:? 'mTD2DImageOutputs' (layout( rgba8) uniform 1-element array of highp image2D) -0:? 'mTD2DArrayImageOutputs' (layout( rgba8) uniform 1-element array of highp image2DArray) -0:? 'mTD3DImageOutputs' (layout( rgba8) uniform 1-element array of highp image3D) -0:? 'mTDCubeImageOutputs' (layout( rgba8) uniform 1-element array of highp imageCube) -0:? 'gl_VertexIndex' ( in int VertexIndex) -0:? 'gl_InstanceIndex' ( in int InstanceIndex) - -vk.relaxed.stagelink.0.2.vert -Shader version: 460 -0:? Sequence -0:114 Function Definition: TDInstanceTexCoord(i1;vf3; ( global highp 3-component vector of float) -0:114 Function Parameters: -0:114 'index' ( in highp int) -0:114 't' ( in highp 3-component vector of float) -0:? Sequence -0:116 Sequence -0:116 move second child to first child ( temp highp int) -0:116 'coord' ( temp highp int) -0:116 'index' ( in highp int) -0:117 Sequence -0:117 move second child to first child ( temp highp 4-component vector of float) -0:117 'samp' ( temp highp 4-component vector of float) -0:117 textureFetch ( global highp 4-component vector of float) -0:117 'sTDInstanceTexCoord' (layout( binding=16) uniform highp samplerBuffer) -0:117 'coord' ( temp highp int) -0:118 move second child to first child ( temp highp float) -0:118 direct index ( temp highp float) -0:118 'v' ( temp highp 3-component vector of float) -0:118 Constant: -0:118 0 (const int) -0:118 direct index ( temp highp float) -0:118 't' ( in highp 3-component vector of float) -0:118 Constant: -0:118 0 (const int) -0:119 move second child to first child ( temp highp float) -0:119 direct index ( temp highp float) -0:119 'v' ( temp highp 3-component vector of float) -0:119 Constant: -0:119 1 (const int) -0:119 direct index ( temp highp float) -0:119 't' ( in highp 3-component vector of float) -0:119 Constant: -0:119 1 (const int) -0:120 move second child to first child ( temp highp float) -0:120 direct index ( temp highp float) -0:120 'v' ( temp highp 3-component vector of float) -0:120 Constant: -0:120 2 (const int) -0:120 direct index ( temp highp float) -0:120 'samp' ( temp highp 4-component vector of float) -0:120 Constant: -0:120 0 (const int) -0:121 move second child to first child ( temp highp 3-component vector of float) -0:121 vector swizzle ( temp highp 3-component vector of float) -0:121 't' ( in highp 3-component vector of float) -0:121 Sequence -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 1 (const int) -0:121 Constant: -0:121 2 (const int) -0:121 vector swizzle ( temp highp 3-component vector of float) -0:121 'v' ( temp highp 3-component vector of float) -0:121 Sequence -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 1 (const int) -0:121 Constant: -0:121 2 (const int) -0:122 Branch: Return with expression -0:122 't' ( in highp 3-component vector of float) -0:124 Function Definition: TDInstanceActive(i1; ( global bool) -0:124 Function Parameters: -0:124 'index' ( in highp int) -0:125 Sequence -0:125 subtract second child into first child ( temp highp int) -0:125 'index' ( in highp int) -0:125 uTDInstanceIDOffset: direct index for structure ( uniform highp int) -0:125 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal}) -0:125 Constant: -0:125 0 (const uint) -0:127 Sequence -0:127 move second child to first child ( temp highp int) -0:127 'coord' ( temp highp int) -0:127 'index' ( in highp int) -0:128 Sequence -0:128 move second child to first child ( temp highp 4-component vector of float) -0:128 'samp' ( temp highp 4-component vector of float) -0:128 textureFetch ( global highp 4-component vector of float) -0:128 'sTDInstanceT' (layout( binding=15) uniform highp samplerBuffer) -0:128 'coord' ( temp highp int) -0:129 move second child to first child ( temp highp float) -0:129 'v' ( temp highp float) -0:129 direct index ( temp highp float) -0:129 'samp' ( temp highp 4-component vector of float) -0:129 Constant: -0:129 0 (const int) -0:130 Branch: Return with expression -0:130 Compare Not Equal ( temp bool) -0:130 'v' ( temp highp float) -0:130 Constant: -0:130 0.000000 -0:132 Function Definition: iTDInstanceTranslate(i1;b1; ( global highp 3-component vector of float) -0:132 Function Parameters: -0:132 'index' ( in highp int) -0:132 'instanceActive' ( out bool) -0:133 Sequence -0:133 Sequence -0:133 move second child to first child ( temp highp int) -0:133 'origIndex' ( temp highp int) -0:133 'index' ( in highp int) -0:134 subtract second child into first child ( temp highp int) -0:134 'index' ( in highp int) -0:134 uTDInstanceIDOffset: direct index for structure ( uniform highp int) -0:134 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal}) -0:134 Constant: -0:134 0 (const uint) -0:136 Sequence -0:136 move second child to first child ( temp highp int) -0:136 'coord' ( temp highp int) -0:136 'index' ( in highp int) -0:137 Sequence -0:137 move second child to first child ( temp highp 4-component vector of float) -0:137 'samp' ( temp highp 4-component vector of float) -0:137 textureFetch ( global highp 4-component vector of float) -0:137 'sTDInstanceT' (layout( binding=15) uniform highp samplerBuffer) -0:137 'coord' ( temp highp int) -0:138 move second child to first child ( temp highp float) -0:138 direct index ( temp highp float) -0:138 'v' ( temp highp 3-component vector of float) -0:138 Constant: -0:138 0 (const int) -0:138 direct index ( temp highp float) -0:138 'samp' ( temp highp 4-component vector of float) -0:138 Constant: -0:138 1 (const int) -0:139 move second child to first child ( temp highp float) -0:139 direct index ( temp highp float) -0:139 'v' ( temp highp 3-component vector of float) -0:139 Constant: -0:139 1 (const int) -0:139 direct index ( temp highp float) -0:139 'samp' ( temp highp 4-component vector of float) -0:139 Constant: -0:139 2 (const int) -0:140 move second child to first child ( temp highp float) -0:140 direct index ( temp highp float) -0:140 'v' ( temp highp 3-component vector of float) -0:140 Constant: -0:140 2 (const int) -0:140 direct index ( temp highp float) -0:140 'samp' ( temp highp 4-component vector of float) -0:140 Constant: -0:140 3 (const int) -0:141 move second child to first child ( temp bool) -0:141 'instanceActive' ( out bool) -0:141 Compare Not Equal ( temp bool) -0:141 direct index ( temp highp float) -0:141 'samp' ( temp highp 4-component vector of float) -0:141 Constant: -0:141 0 (const int) -0:141 Constant: -0:141 0.000000 -0:142 Branch: Return with expression -0:142 'v' ( temp highp 3-component vector of float) -0:144 Function Definition: TDInstanceTranslate(i1; ( global highp 3-component vector of float) -0:144 Function Parameters: -0:144 'index' ( in highp int) -0:145 Sequence -0:145 subtract second child into first child ( temp highp int) -0:145 'index' ( in highp int) -0:145 uTDInstanceIDOffset: direct index for structure ( uniform highp int) -0:145 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal}) -0:145 Constant: -0:145 0 (const uint) -0:147 Sequence -0:147 move second child to first child ( temp highp int) -0:147 'coord' ( temp highp int) -0:147 'index' ( in highp int) -0:148 Sequence -0:148 move second child to first child ( temp highp 4-component vector of float) -0:148 'samp' ( temp highp 4-component vector of float) -0:148 textureFetch ( global highp 4-component vector of float) -0:148 'sTDInstanceT' (layout( binding=15) uniform highp samplerBuffer) -0:148 'coord' ( temp highp int) -0:149 move second child to first child ( temp highp float) -0:149 direct index ( temp highp float) -0:149 'v' ( temp highp 3-component vector of float) -0:149 Constant: -0:149 0 (const int) -0:149 direct index ( temp highp float) -0:149 'samp' ( temp highp 4-component vector of float) -0:149 Constant: -0:149 1 (const int) -0:150 move second child to first child ( temp highp float) -0:150 direct index ( temp highp float) -0:150 'v' ( temp highp 3-component vector of float) -0:150 Constant: -0:150 1 (const int) -0:150 direct index ( temp highp float) -0:150 'samp' ( temp highp 4-component vector of float) -0:150 Constant: -0:150 2 (const int) -0:151 move second child to first child ( temp highp float) -0:151 direct index ( temp highp float) -0:151 'v' ( temp highp 3-component vector of float) -0:151 Constant: -0:151 2 (const int) -0:151 direct index ( temp highp float) -0:151 'samp' ( temp highp 4-component vector of float) -0:151 Constant: -0:151 3 (const int) -0:152 Branch: Return with expression -0:152 'v' ( temp highp 3-component vector of float) -0:154 Function Definition: TDInstanceRotateMat(i1; ( global highp 3X3 matrix of float) -0:154 Function Parameters: -0:154 'index' ( in highp int) -0:155 Sequence -0:155 subtract second child into first child ( temp highp int) -0:155 'index' ( in highp int) -0:155 uTDInstanceIDOffset: direct index for structure ( uniform highp int) -0:155 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal}) -0:155 Constant: -0:155 0 (const uint) -0:156 Sequence -0:156 move second child to first child ( temp highp 3-component vector of float) -0:156 'v' ( temp highp 3-component vector of float) -0:156 Constant: -0:156 0.000000 -0:156 0.000000 -0:156 0.000000 -0:157 Sequence -0:157 move second child to first child ( temp highp 3X3 matrix of float) -0:157 'm' ( temp highp 3X3 matrix of float) -0:157 Constant: -0:157 1.000000 -0:157 0.000000 -0:157 0.000000 -0:157 0.000000 -0:157 1.000000 -0:157 0.000000 -0:157 0.000000 -0:157 0.000000 -0:157 1.000000 -0:161 Branch: Return with expression -0:161 'm' ( temp highp 3X3 matrix of float) -0:163 Function Definition: TDInstanceScale(i1; ( global highp 3-component vector of float) -0:163 Function Parameters: -0:163 'index' ( in highp int) -0:164 Sequence -0:164 subtract second child into first child ( temp highp int) -0:164 'index' ( in highp int) -0:164 uTDInstanceIDOffset: direct index for structure ( uniform highp int) -0:164 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal}) -0:164 Constant: -0:164 0 (const uint) -0:165 Sequence -0:165 move second child to first child ( temp highp 3-component vector of float) -0:165 'v' ( temp highp 3-component vector of float) -0:165 Constant: -0:165 1.000000 -0:165 1.000000 -0:165 1.000000 -0:166 Branch: Return with expression -0:166 'v' ( temp highp 3-component vector of float) -0:168 Function Definition: TDInstancePivot(i1; ( global highp 3-component vector of float) -0:168 Function Parameters: -0:168 'index' ( in highp int) -0:169 Sequence -0:169 subtract second child into first child ( temp highp int) -0:169 'index' ( in highp int) -0:169 uTDInstanceIDOffset: direct index for structure ( uniform highp int) -0:169 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal}) -0:169 Constant: -0:169 0 (const uint) -0:170 Sequence -0:170 move second child to first child ( temp highp 3-component vector of float) -0:170 'v' ( temp highp 3-component vector of float) -0:170 Constant: -0:170 0.000000 -0:170 0.000000 -0:170 0.000000 -0:171 Branch: Return with expression -0:171 'v' ( temp highp 3-component vector of float) -0:173 Function Definition: TDInstanceRotTo(i1; ( global highp 3-component vector of float) -0:173 Function Parameters: -0:173 'index' ( in highp int) -0:174 Sequence -0:174 subtract second child into first child ( temp highp int) -0:174 'index' ( in highp int) -0:174 uTDInstanceIDOffset: direct index for structure ( uniform highp int) -0:174 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal}) -0:174 Constant: -0:174 0 (const uint) -0:175 Sequence -0:175 move second child to first child ( temp highp 3-component vector of float) -0:175 'v' ( temp highp 3-component vector of float) -0:175 Constant: -0:175 0.000000 -0:175 0.000000 -0:175 1.000000 -0:176 Branch: Return with expression -0:176 'v' ( temp highp 3-component vector of float) -0:178 Function Definition: TDInstanceRotUp(i1; ( global highp 3-component vector of float) -0:178 Function Parameters: -0:178 'index' ( in highp int) -0:179 Sequence -0:179 subtract second child into first child ( temp highp int) -0:179 'index' ( in highp int) -0:179 uTDInstanceIDOffset: direct index for structure ( uniform highp int) -0:179 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal}) -0:179 Constant: -0:179 0 (const uint) -0:180 Sequence -0:180 move second child to first child ( temp highp 3-component vector of float) -0:180 'v' ( temp highp 3-component vector of float) -0:180 Constant: -0:180 0.000000 -0:180 1.000000 -0:180 0.000000 -0:181 Branch: Return with expression -0:181 'v' ( temp highp 3-component vector of float) -0:183 Function Definition: TDInstanceMat(i1; ( global highp 4X4 matrix of float) -0:183 Function Parameters: -0:183 'id' ( in highp int) -0:184 Sequence -0:184 Sequence -0:184 move second child to first child ( temp bool) -0:184 'instanceActive' ( temp bool) -0:184 Constant: -0:184 true (const bool) -0:185 Sequence -0:185 move second child to first child ( temp highp 3-component vector of float) -0:185 't' ( temp highp 3-component vector of float) -0:185 Function Call: iTDInstanceTranslate(i1;b1; ( global highp 3-component vector of float) -0:185 'id' ( in highp int) -0:185 'instanceActive' ( temp bool) -0:186 Test condition and select ( temp void) -0:186 Condition -0:186 Negate conditional ( temp bool) -0:186 'instanceActive' ( temp bool) -0:186 true case -0:188 Sequence -0:188 Branch: Return with expression -0:188 Constant: -0:188 0.000000 -0:188 0.000000 -0:188 0.000000 -0:188 0.000000 -0:188 0.000000 -0:188 0.000000 -0:188 0.000000 -0:188 0.000000 -0:188 0.000000 -0:188 0.000000 -0:188 0.000000 -0:188 0.000000 -0:188 0.000000 -0:188 0.000000 -0:188 0.000000 -0:188 0.000000 -0:190 Sequence -0:190 move second child to first child ( temp highp 4X4 matrix of float) -0:190 'm' ( temp highp 4X4 matrix of float) -0:190 Constant: -0:190 1.000000 -0:190 0.000000 -0:190 0.000000 -0:190 0.000000 -0:190 0.000000 -0:190 1.000000 -0:190 0.000000 -0:190 0.000000 -0:190 0.000000 -0:190 0.000000 -0:190 1.000000 -0:190 0.000000 -0:190 0.000000 -0:190 0.000000 -0:190 0.000000 -0:190 1.000000 -0:192 Sequence -0:192 Sequence -0:192 move second child to first child ( temp highp 3-component vector of float) -0:192 'tt' ( temp highp 3-component vector of float) -0:192 't' ( temp highp 3-component vector of float) -0:193 add second child into first child ( temp highp float) -0:193 direct index ( temp highp float) -0:193 direct index ( temp highp 4-component vector of float) -0:193 'm' ( temp highp 4X4 matrix of float) -0:193 Constant: -0:193 3 (const int) -0:193 Constant: -0:193 0 (const int) -0:193 component-wise multiply ( temp highp float) -0:193 direct index ( temp highp float) -0:193 direct index ( temp highp 4-component vector of float) -0:193 'm' ( temp highp 4X4 matrix of float) -0:193 Constant: -0:193 0 (const int) -0:193 Constant: -0:193 0 (const int) -0:193 direct index ( temp highp float) -0:193 'tt' ( temp highp 3-component vector of float) -0:193 Constant: -0:193 0 (const int) -0:194 add second child into first child ( temp highp float) -0:194 direct index ( temp highp float) -0:194 direct index ( temp highp 4-component vector of float) -0:194 'm' ( temp highp 4X4 matrix of float) -0:194 Constant: -0:194 3 (const int) -0:194 Constant: -0:194 1 (const int) -0:194 component-wise multiply ( temp highp float) -0:194 direct index ( temp highp float) -0:194 direct index ( temp highp 4-component vector of float) -0:194 'm' ( temp highp 4X4 matrix of float) -0:194 Constant: -0:194 0 (const int) -0:194 Constant: -0:194 1 (const int) -0:194 direct index ( temp highp float) -0:194 'tt' ( temp highp 3-component vector of float) -0:194 Constant: -0:194 0 (const int) -0:195 add second child into first child ( temp highp float) -0:195 direct index ( temp highp float) -0:195 direct index ( temp highp 4-component vector of float) -0:195 'm' ( temp highp 4X4 matrix of float) -0:195 Constant: -0:195 3 (const int) -0:195 Constant: -0:195 2 (const int) -0:195 component-wise multiply ( temp highp float) -0:195 direct index ( temp highp float) -0:195 direct index ( temp highp 4-component vector of float) -0:195 'm' ( temp highp 4X4 matrix of float) -0:195 Constant: -0:195 0 (const int) -0:195 Constant: -0:195 2 (const int) -0:195 direct index ( temp highp float) -0:195 'tt' ( temp highp 3-component vector of float) -0:195 Constant: -0:195 0 (const int) -0:196 add second child into first child ( temp highp float) -0:196 direct index ( temp highp float) -0:196 direct index ( temp highp 4-component vector of float) -0:196 'm' ( temp highp 4X4 matrix of float) -0:196 Constant: -0:196 3 (const int) -0:196 Constant: -0:196 3 (const int) -0:196 component-wise multiply ( temp highp float) -0:196 direct index ( temp highp float) -0:196 direct index ( temp highp 4-component vector of float) -0:196 'm' ( temp highp 4X4 matrix of float) -0:196 Constant: -0:196 0 (const int) -0:196 Constant: -0:196 3 (const int) -0:196 direct index ( temp highp float) -0:196 'tt' ( temp highp 3-component vector of float) -0:196 Constant: -0:196 0 (const int) -0:197 add second child into first child ( temp highp float) -0:197 direct index ( temp highp float) -0:197 direct index ( temp highp 4-component vector of float) -0:197 'm' ( temp highp 4X4 matrix of float) -0:197 Constant: -0:197 3 (const int) -0:197 Constant: -0:197 0 (const int) -0:197 component-wise multiply ( temp highp float) -0:197 direct index ( temp highp float) -0:197 direct index ( temp highp 4-component vector of float) -0:197 'm' ( temp highp 4X4 matrix of float) -0:197 Constant: -0:197 1 (const int) -0:197 Constant: -0:197 0 (const int) -0:197 direct index ( temp highp float) -0:197 'tt' ( temp highp 3-component vector of float) -0:197 Constant: -0:197 1 (const int) -0:198 add second child into first child ( temp highp float) -0:198 direct index ( temp highp float) -0:198 direct index ( temp highp 4-component vector of float) -0:198 'm' ( temp highp 4X4 matrix of float) -0:198 Constant: -0:198 3 (const int) -0:198 Constant: -0:198 1 (const int) -0:198 component-wise multiply ( temp highp float) -0:198 direct index ( temp highp float) -0:198 direct index ( temp highp 4-component vector of float) -0:198 'm' ( temp highp 4X4 matrix of float) -0:198 Constant: -0:198 1 (const int) -0:198 Constant: -0:198 1 (const int) -0:198 direct index ( temp highp float) -0:198 'tt' ( temp highp 3-component vector of float) -0:198 Constant: -0:198 1 (const int) -0:199 add second child into first child ( temp highp float) -0:199 direct index ( temp highp float) -0:199 direct index ( temp highp 4-component vector of float) -0:199 'm' ( temp highp 4X4 matrix of float) -0:199 Constant: -0:199 3 (const int) -0:199 Constant: -0:199 2 (const int) -0:199 component-wise multiply ( temp highp float) -0:199 direct index ( temp highp float) -0:199 direct index ( temp highp 4-component vector of float) -0:199 'm' ( temp highp 4X4 matrix of float) -0:199 Constant: -0:199 1 (const int) -0:199 Constant: -0:199 2 (const int) -0:199 direct index ( temp highp float) -0:199 'tt' ( temp highp 3-component vector of float) -0:199 Constant: -0:199 1 (const int) -0:200 add second child into first child ( temp highp float) -0:200 direct index ( temp highp float) -0:200 direct index ( temp highp 4-component vector of float) -0:200 'm' ( temp highp 4X4 matrix of float) -0:200 Constant: -0:200 3 (const int) -0:200 Constant: -0:200 3 (const int) -0:200 component-wise multiply ( temp highp float) -0:200 direct index ( temp highp float) -0:200 direct index ( temp highp 4-component vector of float) -0:200 'm' ( temp highp 4X4 matrix of float) -0:200 Constant: -0:200 1 (const int) -0:200 Constant: -0:200 3 (const int) -0:200 direct index ( temp highp float) -0:200 'tt' ( temp highp 3-component vector of float) -0:200 Constant: -0:200 1 (const int) -0:201 add second child into first child ( temp highp float) -0:201 direct index ( temp highp float) -0:201 direct index ( temp highp 4-component vector of float) -0:201 'm' ( temp highp 4X4 matrix of float) -0:201 Constant: -0:201 3 (const int) -0:201 Constant: -0:201 0 (const int) -0:201 component-wise multiply ( temp highp float) -0:201 direct index ( temp highp float) -0:201 direct index ( temp highp 4-component vector of float) -0:201 'm' ( temp highp 4X4 matrix of float) -0:201 Constant: -0:201 2 (const int) -0:201 Constant: -0:201 0 (const int) -0:201 direct index ( temp highp float) -0:201 'tt' ( temp highp 3-component vector of float) -0:201 Constant: -0:201 2 (const int) -0:202 add second child into first child ( temp highp float) -0:202 direct index ( temp highp float) -0:202 direct index ( temp highp 4-component vector of float) -0:202 'm' ( temp highp 4X4 matrix of float) -0:202 Constant: -0:202 3 (const int) -0:202 Constant: -0:202 1 (const int) -0:202 component-wise multiply ( temp highp float) -0:202 direct index ( temp highp float) -0:202 direct index ( temp highp 4-component vector of float) -0:202 'm' ( temp highp 4X4 matrix of float) -0:202 Constant: -0:202 2 (const int) -0:202 Constant: -0:202 1 (const int) -0:202 direct index ( temp highp float) -0:202 'tt' ( temp highp 3-component vector of float) -0:202 Constant: -0:202 2 (const int) -0:203 add second child into first child ( temp highp float) -0:203 direct index ( temp highp float) -0:203 direct index ( temp highp 4-component vector of float) -0:203 'm' ( temp highp 4X4 matrix of float) -0:203 Constant: -0:203 3 (const int) -0:203 Constant: -0:203 2 (const int) -0:203 component-wise multiply ( temp highp float) -0:203 direct index ( temp highp float) -0:203 direct index ( temp highp 4-component vector of float) -0:203 'm' ( temp highp 4X4 matrix of float) -0:203 Constant: -0:203 2 (const int) -0:203 Constant: -0:203 2 (const int) -0:203 direct index ( temp highp float) -0:203 'tt' ( temp highp 3-component vector of float) -0:203 Constant: -0:203 2 (const int) -0:204 add second child into first child ( temp highp float) -0:204 direct index ( temp highp float) -0:204 direct index ( temp highp 4-component vector of float) -0:204 'm' ( temp highp 4X4 matrix of float) -0:204 Constant: -0:204 3 (const int) -0:204 Constant: -0:204 3 (const int) -0:204 component-wise multiply ( temp highp float) -0:204 direct index ( temp highp float) -0:204 direct index ( temp highp 4-component vector of float) -0:204 'm' ( temp highp 4X4 matrix of float) -0:204 Constant: -0:204 2 (const int) -0:204 Constant: -0:204 3 (const int) -0:204 direct index ( temp highp float) -0:204 'tt' ( temp highp 3-component vector of float) -0:204 Constant: -0:204 2 (const int) -0:206 Branch: Return with expression -0:206 'm' ( temp highp 4X4 matrix of float) -0:208 Function Definition: TDInstanceMat3(i1; ( global highp 3X3 matrix of float) -0:208 Function Parameters: -0:208 'id' ( in highp int) -0:209 Sequence -0:209 Sequence -0:209 move second child to first child ( temp highp 3X3 matrix of float) -0:209 'm' ( temp highp 3X3 matrix of float) -0:209 Constant: -0:209 1.000000 -0:209 0.000000 -0:209 0.000000 -0:209 0.000000 -0:209 1.000000 -0:209 0.000000 -0:209 0.000000 -0:209 0.000000 -0:209 1.000000 -0:210 Branch: Return with expression -0:210 'm' ( temp highp 3X3 matrix of float) -0:212 Function Definition: TDInstanceMat3ForNorm(i1; ( global highp 3X3 matrix of float) -0:212 Function Parameters: -0:212 'id' ( in highp int) -0:213 Sequence -0:213 Sequence -0:213 move second child to first child ( temp highp 3X3 matrix of float) -0:213 'm' ( temp highp 3X3 matrix of float) -0:213 Function Call: TDInstanceMat3(i1; ( global highp 3X3 matrix of float) -0:213 'id' ( in highp int) -0:214 Branch: Return with expression -0:214 'm' ( temp highp 3X3 matrix of float) -0:216 Function Definition: TDInstanceColor(i1;vf4; ( global highp 4-component vector of float) -0:216 Function Parameters: -0:216 'index' ( in highp int) -0:216 'curColor' ( in highp 4-component vector of float) -0:217 Sequence -0:217 subtract second child into first child ( temp highp int) -0:217 'index' ( in highp int) -0:217 uTDInstanceIDOffset: direct index for structure ( uniform highp int) -0:217 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal}) -0:217 Constant: -0:217 0 (const uint) -0:219 Sequence -0:219 move second child to first child ( temp highp int) -0:219 'coord' ( temp highp int) -0:219 'index' ( in highp int) -0:220 Sequence -0:220 move second child to first child ( temp highp 4-component vector of float) -0:220 'samp' ( temp highp 4-component vector of float) -0:220 textureFetch ( global highp 4-component vector of float) -0:220 'sTDInstanceColor' (layout( binding=17) uniform highp samplerBuffer) -0:220 'coord' ( temp highp int) -0:221 move second child to first child ( temp highp float) -0:221 direct index ( temp highp float) -0:221 'v' ( temp highp 4-component vector of float) -0:221 Constant: -0:221 0 (const int) -0:221 direct index ( temp highp float) -0:221 'samp' ( temp highp 4-component vector of float) -0:221 Constant: -0:221 0 (const int) -0:222 move second child to first child ( temp highp float) -0:222 direct index ( temp highp float) -0:222 'v' ( temp highp 4-component vector of float) -0:222 Constant: -0:222 1 (const int) -0:222 direct index ( temp highp float) -0:222 'samp' ( temp highp 4-component vector of float) -0:222 Constant: -0:222 1 (const int) -0:223 move second child to first child ( temp highp float) -0:223 direct index ( temp highp float) -0:223 'v' ( temp highp 4-component vector of float) -0:223 Constant: -0:223 2 (const int) -0:223 direct index ( temp highp float) -0:223 'samp' ( temp highp 4-component vector of float) -0:223 Constant: -0:223 2 (const int) -0:224 move second child to first child ( temp highp float) -0:224 direct index ( temp highp float) -0:224 'v' ( temp highp 4-component vector of float) -0:224 Constant: -0:224 3 (const int) -0:224 Constant: -0:224 1.000000 -0:225 move second child to first child ( temp highp float) -0:225 direct index ( temp highp float) -0:225 'curColor' ( in highp 4-component vector of float) -0:225 Constant: -0:225 0 (const int) -0:225 direct index ( temp highp float) -0:225 'v' ( temp highp 4-component vector of float) -0:225 Constant: -0:225 0 (const int) -0:227 move second child to first child ( temp highp float) -0:227 direct index ( temp highp float) -0:227 'curColor' ( in highp 4-component vector of float) -0:227 Constant: -0:227 1 (const int) -0:227 direct index ( temp highp float) -0:227 'v' ( temp highp 4-component vector of float) -0:227 Constant: -0:227 1 (const int) -0:229 move second child to first child ( temp highp float) -0:229 direct index ( temp highp float) -0:229 'curColor' ( in highp 4-component vector of float) -0:229 Constant: -0:229 2 (const int) -0:229 direct index ( temp highp float) -0:229 'v' ( temp highp 4-component vector of float) -0:229 Constant: -0:229 2 (const int) -0:231 Branch: Return with expression -0:231 'curColor' ( in highp 4-component vector of float) -0:233 Function Definition: TDInstanceDeform(i1;vf4; ( global highp 4-component vector of float) -0:233 Function Parameters: -0:233 'id' ( in highp int) -0:233 'pos' ( in highp 4-component vector of float) -0:234 Sequence -0:234 move second child to first child ( temp highp 4-component vector of float) -0:234 'pos' ( in highp 4-component vector of float) -0:234 matrix-times-vector ( temp highp 4-component vector of float) -0:234 Function Call: TDInstanceMat(i1; ( global highp 4X4 matrix of float) -0:234 'id' ( in highp int) -0:234 'pos' ( in highp 4-component vector of float) -0:235 Branch: Return with expression -0:235 matrix-times-vector ( temp highp 4-component vector of float) -0:235 world: direct index for structure (layout( column_major std140) global highp 4X4 matrix of float) -0:235 indirect index (layout( column_major std140 offset=0) temp structure{layout( column_major std140) global highp 4X4 matrix of float world, layout( column_major std140) global highp 4X4 matrix of float worldInverse, layout( column_major std140) global highp 4X4 matrix of float worldCam, layout( column_major std140) global highp 4X4 matrix of float worldCamInverse, layout( column_major std140) global highp 4X4 matrix of float cam, layout( column_major std140) global highp 4X4 matrix of float camInverse, layout( column_major std140) global highp 4X4 matrix of float camProj, layout( column_major std140) global highp 4X4 matrix of float camProjInverse, layout( column_major std140) global highp 4X4 matrix of float proj, layout( column_major std140) global highp 4X4 matrix of float projInverse, layout( column_major std140) global highp 4X4 matrix of float worldCamProj, layout( column_major std140) global highp 4X4 matrix of float worldCamProjInverse, layout( column_major std140) global highp 4X4 matrix of float quadReproject, layout( column_major std140) global highp 3X3 matrix of float worldForNormals, layout( column_major std140) global highp 3X3 matrix of float camForNormals, layout( column_major std140) global highp 3X3 matrix of float worldCamForNormals}) -0:235 uTDMats: direct index for structure (layout( column_major std140 offset=0) uniform 1-element array of structure{layout( column_major std140) global highp 4X4 matrix of float world, layout( column_major std140) global highp 4X4 matrix of float worldInverse, layout( column_major std140) global highp 4X4 matrix of float worldCam, layout( column_major std140) global highp 4X4 matrix of float worldCamInverse, layout( column_major std140) global highp 4X4 matrix of float cam, layout( column_major std140) global highp 4X4 matrix of float camInverse, layout( column_major std140) global highp 4X4 matrix of float camProj, layout( column_major std140) global highp 4X4 matrix of float camProjInverse, layout( column_major std140) global highp 4X4 matrix of float proj, layout( column_major std140) global highp 4X4 matrix of float projInverse, layout( column_major std140) global highp 4X4 matrix of float worldCamProj, layout( column_major std140) global highp 4X4 matrix of float worldCamProjInverse, layout( column_major std140) global highp 4X4 matrix of float quadReproject, layout( column_major std140) global highp 3X3 matrix of float worldForNormals, layout( column_major std140) global highp 3X3 matrix of float camForNormals, layout( column_major std140) global highp 3X3 matrix of float worldCamForNormals}) -0:235 'anon@3' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 1-element array of structure{layout( column_major std140) global highp 4X4 matrix of float world, layout( column_major std140) global highp 4X4 matrix of float worldInverse, layout( column_major std140) global highp 4X4 matrix of float worldCam, layout( column_major std140) global highp 4X4 matrix of float worldCamInverse, layout( column_major std140) global highp 4X4 matrix of float cam, layout( column_major std140) global highp 4X4 matrix of float camInverse, layout( column_major std140) global highp 4X4 matrix of float camProj, layout( column_major std140) global highp 4X4 matrix of float camProjInverse, layout( column_major std140) global highp 4X4 matrix of float proj, layout( column_major std140) global highp 4X4 matrix of float projInverse, layout( column_major std140) global highp 4X4 matrix of float worldCamProj, layout( column_major std140) global highp 4X4 matrix of float worldCamProjInverse, layout( column_major std140) global highp 4X4 matrix of float quadReproject, layout( column_major std140) global highp 3X3 matrix of float worldForNormals, layout( column_major std140) global highp 3X3 matrix of float camForNormals, layout( column_major std140) global highp 3X3 matrix of float worldCamForNormals} uTDMats}) -0:235 Constant: -0:235 0 (const uint) -0:235 Function Call: TDCameraIndex( ( global highp int) -0:235 Constant: -0:235 0 (const int) -0:235 'pos' ( in highp 4-component vector of float) -0:238 Function Definition: TDInstanceDeformVec(i1;vf3; ( global highp 3-component vector of float) -0:238 Function Parameters: -0:238 'id' ( in highp int) -0:238 'vec' ( in highp 3-component vector of float) -0:240 Sequence -0:240 Sequence -0:240 move second child to first child ( temp highp 3X3 matrix of float) -0:240 'm' ( temp highp 3X3 matrix of float) -0:240 Function Call: TDInstanceMat3(i1; ( global highp 3X3 matrix of float) -0:240 'id' ( in highp int) -0:241 Branch: Return with expression -0:241 matrix-times-vector ( temp highp 3-component vector of float) -0:241 Construct mat3 ( temp highp 3X3 matrix of float) -0:241 world: direct index for structure (layout( column_major std140) global highp 4X4 matrix of float) -0:241 indirect index (layout( column_major std140 offset=0) temp structure{layout( column_major std140) global highp 4X4 matrix of float world, layout( column_major std140) global highp 4X4 matrix of float worldInverse, layout( column_major std140) global highp 4X4 matrix of float worldCam, layout( column_major std140) global highp 4X4 matrix of float worldCamInverse, layout( column_major std140) global highp 4X4 matrix of float cam, layout( column_major std140) global highp 4X4 matrix of float camInverse, layout( column_major std140) global highp 4X4 matrix of float camProj, layout( column_major std140) global highp 4X4 matrix of float camProjInverse, layout( column_major std140) global highp 4X4 matrix of float proj, layout( column_major std140) global highp 4X4 matrix of float projInverse, layout( column_major std140) global highp 4X4 matrix of float worldCamProj, layout( column_major std140) global highp 4X4 matrix of float worldCamProjInverse, layout( column_major std140) global highp 4X4 matrix of float quadReproject, layout( column_major std140) global highp 3X3 matrix of float worldForNormals, layout( column_major std140) global highp 3X3 matrix of float camForNormals, layout( column_major std140) global highp 3X3 matrix of float worldCamForNormals}) -0:241 uTDMats: direct index for structure (layout( column_major std140 offset=0) uniform 1-element array of structure{layout( column_major std140) global highp 4X4 matrix of float world, layout( column_major std140) global highp 4X4 matrix of float worldInverse, layout( column_major std140) global highp 4X4 matrix of float worldCam, layout( column_major std140) global highp 4X4 matrix of float worldCamInverse, layout( column_major std140) global highp 4X4 matrix of float cam, layout( column_major std140) global highp 4X4 matrix of float camInverse, layout( column_major std140) global highp 4X4 matrix of float camProj, layout( column_major std140) global highp 4X4 matrix of float camProjInverse, layout( column_major std140) global highp 4X4 matrix of float proj, layout( column_major std140) global highp 4X4 matrix of float projInverse, layout( column_major std140) global highp 4X4 matrix of float worldCamProj, layout( column_major std140) global highp 4X4 matrix of float worldCamProjInverse, layout( column_major std140) global highp 4X4 matrix of float quadReproject, layout( column_major std140) global highp 3X3 matrix of float worldForNormals, layout( column_major std140) global highp 3X3 matrix of float camForNormals, layout( column_major std140) global highp 3X3 matrix of float worldCamForNormals}) -0:241 'anon@3' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 1-element array of structure{layout( column_major std140) global highp 4X4 matrix of float world, layout( column_major std140) global highp 4X4 matrix of float worldInverse, layout( column_major std140) global highp 4X4 matrix of float worldCam, layout( column_major std140) global highp 4X4 matrix of float worldCamInverse, layout( column_major std140) global highp 4X4 matrix of float cam, layout( column_major std140) global highp 4X4 matrix of float camInverse, layout( column_major std140) global highp 4X4 matrix of float camProj, layout( column_major std140) global highp 4X4 matrix of float camProjInverse, layout( column_major std140) global highp 4X4 matrix of float proj, layout( column_major std140) global highp 4X4 matrix of float projInverse, layout( column_major std140) global highp 4X4 matrix of float worldCamProj, layout( column_major std140) global highp 4X4 matrix of float worldCamProjInverse, layout( column_major std140) global highp 4X4 matrix of float quadReproject, layout( column_major std140) global highp 3X3 matrix of float worldForNormals, layout( column_major std140) global highp 3X3 matrix of float camForNormals, layout( column_major std140) global highp 3X3 matrix of float worldCamForNormals} uTDMats}) -0:241 Constant: -0:241 0 (const uint) -0:241 Function Call: TDCameraIndex( ( global highp int) -0:241 Constant: -0:241 0 (const int) -0:241 matrix-times-vector ( temp highp 3-component vector of float) -0:241 'm' ( temp highp 3X3 matrix of float) -0:241 'vec' ( in highp 3-component vector of float) -0:243 Function Definition: TDInstanceDeformNorm(i1;vf3; ( global highp 3-component vector of float) -0:243 Function Parameters: -0:243 'id' ( in highp int) -0:243 'vec' ( in highp 3-component vector of float) -0:245 Sequence -0:245 Sequence -0:245 move second child to first child ( temp highp 3X3 matrix of float) -0:245 'm' ( temp highp 3X3 matrix of float) -0:245 Function Call: TDInstanceMat3ForNorm(i1; ( global highp 3X3 matrix of float) -0:245 'id' ( in highp int) -0:246 Branch: Return with expression -0:246 matrix-times-vector ( temp highp 3-component vector of float) -0:246 Construct mat3 ( temp highp 3X3 matrix of float) -0:246 worldForNormals: direct index for structure (layout( column_major std140) global highp 3X3 matrix of float) -0:246 indirect index (layout( column_major std140 offset=0) temp structure{layout( column_major std140) global highp 4X4 matrix of float world, layout( column_major std140) global highp 4X4 matrix of float worldInverse, layout( column_major std140) global highp 4X4 matrix of float worldCam, layout( column_major std140) global highp 4X4 matrix of float worldCamInverse, layout( column_major std140) global highp 4X4 matrix of float cam, layout( column_major std140) global highp 4X4 matrix of float camInverse, layout( column_major std140) global highp 4X4 matrix of float camProj, layout( column_major std140) global highp 4X4 matrix of float camProjInverse, layout( column_major std140) global highp 4X4 matrix of float proj, layout( column_major std140) global highp 4X4 matrix of float projInverse, layout( column_major std140) global highp 4X4 matrix of float worldCamProj, layout( column_major std140) global highp 4X4 matrix of float worldCamProjInverse, layout( column_major std140) global highp 4X4 matrix of float quadReproject, layout( column_major std140) global highp 3X3 matrix of float worldForNormals, layout( column_major std140) global highp 3X3 matrix of float camForNormals, layout( column_major std140) global highp 3X3 matrix of float worldCamForNormals}) -0:246 uTDMats: direct index for structure (layout( column_major std140 offset=0) uniform 1-element array of structure{layout( column_major std140) global highp 4X4 matrix of float world, layout( column_major std140) global highp 4X4 matrix of float worldInverse, layout( column_major std140) global highp 4X4 matrix of float worldCam, layout( column_major std140) global highp 4X4 matrix of float worldCamInverse, layout( column_major std140) global highp 4X4 matrix of float cam, layout( column_major std140) global highp 4X4 matrix of float camInverse, layout( column_major std140) global highp 4X4 matrix of float camProj, layout( column_major std140) global highp 4X4 matrix of float camProjInverse, layout( column_major std140) global highp 4X4 matrix of float proj, layout( column_major std140) global highp 4X4 matrix of float projInverse, layout( column_major std140) global highp 4X4 matrix of float worldCamProj, layout( column_major std140) global highp 4X4 matrix of float worldCamProjInverse, layout( column_major std140) global highp 4X4 matrix of float quadReproject, layout( column_major std140) global highp 3X3 matrix of float worldForNormals, layout( column_major std140) global highp 3X3 matrix of float camForNormals, layout( column_major std140) global highp 3X3 matrix of float worldCamForNormals}) -0:246 'anon@3' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 1-element array of structure{layout( column_major std140) global highp 4X4 matrix of float world, layout( column_major std140) global highp 4X4 matrix of float worldInverse, layout( column_major std140) global highp 4X4 matrix of float worldCam, layout( column_major std140) global highp 4X4 matrix of float worldCamInverse, layout( column_major std140) global highp 4X4 matrix of float cam, layout( column_major std140) global highp 4X4 matrix of float camInverse, layout( column_major std140) global highp 4X4 matrix of float camProj, layout( column_major std140) global highp 4X4 matrix of float camProjInverse, layout( column_major std140) global highp 4X4 matrix of float proj, layout( column_major std140) global highp 4X4 matrix of float projInverse, layout( column_major std140) global highp 4X4 matrix of float worldCamProj, layout( column_major std140) global highp 4X4 matrix of float worldCamProjInverse, layout( column_major std140) global highp 4X4 matrix of float quadReproject, layout( column_major std140) global highp 3X3 matrix of float worldForNormals, layout( column_major std140) global highp 3X3 matrix of float camForNormals, layout( column_major std140) global highp 3X3 matrix of float worldCamForNormals} uTDMats}) -0:246 Constant: -0:246 0 (const uint) -0:246 Function Call: TDCameraIndex( ( global highp int) -0:246 Constant: -0:246 13 (const int) -0:246 matrix-times-vector ( temp highp 3-component vector of float) -0:246 'm' ( temp highp 3X3 matrix of float) -0:246 'vec' ( in highp 3-component vector of float) -0:248 Function Definition: TDInstanceDeform(vf4; ( global highp 4-component vector of float) -0:248 Function Parameters: -0:248 'pos' ( in highp 4-component vector of float) -0:249 Sequence -0:249 Branch: Return with expression -0:249 Function Call: TDInstanceDeform(i1;vf4; ( global highp 4-component vector of float) -0:249 Function Call: TDInstanceID( ( global highp int) -0:249 'pos' ( in highp 4-component vector of float) -0:251 Function Definition: TDInstanceDeformVec(vf3; ( global highp 3-component vector of float) -0:251 Function Parameters: -0:251 'vec' ( in highp 3-component vector of float) -0:252 Sequence -0:252 Branch: Return with expression -0:252 Function Call: TDInstanceDeformVec(i1;vf3; ( global highp 3-component vector of float) -0:252 Function Call: TDInstanceID( ( global highp int) -0:252 'vec' ( in highp 3-component vector of float) -0:254 Function Definition: TDInstanceDeformNorm(vf3; ( global highp 3-component vector of float) -0:254 Function Parameters: -0:254 'vec' ( in highp 3-component vector of float) -0:255 Sequence -0:255 Branch: Return with expression -0:255 Function Call: TDInstanceDeformNorm(i1;vf3; ( global highp 3-component vector of float) -0:255 Function Call: TDInstanceID( ( global highp int) -0:255 'vec' ( in highp 3-component vector of float) -0:257 Function Definition: TDInstanceActive( ( global bool) -0:257 Function Parameters: -0:257 Sequence -0:257 Branch: Return with expression -0:257 Function Call: TDInstanceActive(i1; ( global bool) -0:257 Function Call: TDInstanceID( ( global highp int) -0:258 Function Definition: TDInstanceTranslate( ( global highp 3-component vector of float) -0:258 Function Parameters: -0:258 Sequence -0:258 Branch: Return with expression -0:258 Function Call: TDInstanceTranslate(i1; ( global highp 3-component vector of float) -0:258 Function Call: TDInstanceID( ( global highp int) -0:259 Function Definition: TDInstanceRotateMat( ( global highp 3X3 matrix of float) -0:259 Function Parameters: -0:259 Sequence -0:259 Branch: Return with expression -0:259 Function Call: TDInstanceRotateMat(i1; ( global highp 3X3 matrix of float) -0:259 Function Call: TDInstanceID( ( global highp int) -0:260 Function Definition: TDInstanceScale( ( global highp 3-component vector of float) -0:260 Function Parameters: -0:260 Sequence -0:260 Branch: Return with expression -0:260 Function Call: TDInstanceScale(i1; ( global highp 3-component vector of float) -0:260 Function Call: TDInstanceID( ( global highp int) -0:261 Function Definition: TDInstanceMat( ( global highp 4X4 matrix of float) -0:261 Function Parameters: -0:261 Sequence -0:261 Branch: Return with expression -0:261 Function Call: TDInstanceMat(i1; ( global highp 4X4 matrix of float) -0:261 Function Call: TDInstanceID( ( global highp int) -0:263 Function Definition: TDInstanceMat3( ( global highp 3X3 matrix of float) -0:263 Function Parameters: -0:263 Sequence -0:263 Branch: Return with expression -0:263 Function Call: TDInstanceMat3(i1; ( global highp 3X3 matrix of float) -0:263 Function Call: TDInstanceID( ( global highp int) -0:265 Function Definition: TDInstanceTexCoord(vf3; ( global highp 3-component vector of float) -0:265 Function Parameters: -0:265 't' ( in highp 3-component vector of float) -0:266 Sequence -0:266 Branch: Return with expression -0:266 Function Call: TDInstanceTexCoord(i1;vf3; ( global highp 3-component vector of float) -0:266 Function Call: TDInstanceID( ( global highp int) -0:266 't' ( in highp 3-component vector of float) -0:268 Function Definition: TDInstanceColor(vf4; ( global highp 4-component vector of float) -0:268 Function Parameters: -0:268 'curColor' ( in highp 4-component vector of float) -0:269 Sequence -0:269 Branch: Return with expression -0:269 Function Call: TDInstanceColor(i1;vf4; ( global highp 4-component vector of float) -0:269 Function Call: TDInstanceID( ( global highp int) -0:269 'curColor' ( in highp 4-component vector of float) -0:271 Function Definition: TDSkinnedDeform(vf4; ( global highp 4-component vector of float) -0:271 Function Parameters: -0:271 'pos' ( in highp 4-component vector of float) -0:271 Sequence -0:271 Branch: Return with expression -0:271 'pos' ( in highp 4-component vector of float) -0:273 Function Definition: TDSkinnedDeformVec(vf3; ( global highp 3-component vector of float) -0:273 Function Parameters: -0:273 'vec' ( in highp 3-component vector of float) -0:273 Sequence -0:273 Branch: Return with expression -0:273 'vec' ( in highp 3-component vector of float) -0:275 Function Definition: TDFastDeformTangent(vf3;vf4;vf3; ( global highp 3-component vector of float) -0:275 Function Parameters: -0:275 'oldNorm' ( in highp 3-component vector of float) -0:275 'oldTangent' ( in highp 4-component vector of float) -0:275 'deformedNorm' ( in highp 3-component vector of float) -0:276 Sequence -0:276 Branch: Return with expression -0:276 vector swizzle ( temp highp 3-component vector of float) -0:276 'oldTangent' ( in highp 4-component vector of float) -0:276 Sequence -0:276 Constant: -0:276 0 (const int) -0:276 Constant: -0:276 1 (const int) -0:276 Constant: -0:276 2 (const int) -0:277 Function Definition: TDBoneMat(i1; ( global highp 4X4 matrix of float) -0:277 Function Parameters: -0:277 'index' ( in highp int) -0:278 Sequence -0:278 Branch: Return with expression -0:278 Constant: -0:278 1.000000 -0:278 0.000000 -0:278 0.000000 -0:278 0.000000 -0:278 0.000000 -0:278 1.000000 -0:278 0.000000 -0:278 0.000000 -0:278 0.000000 -0:278 0.000000 -0:278 1.000000 -0:278 0.000000 -0:278 0.000000 -0:278 0.000000 -0:278 0.000000 -0:278 1.000000 -0:280 Function Definition: TDDeform(vf4; ( global highp 4-component vector of float) -0:280 Function Parameters: -0:280 'pos' ( in highp 4-component vector of float) -0:281 Sequence -0:281 move second child to first child ( temp highp 4-component vector of float) -0:281 'pos' ( in highp 4-component vector of float) -0:281 Function Call: TDSkinnedDeform(vf4; ( global highp 4-component vector of float) -0:281 'pos' ( in highp 4-component vector of float) -0:282 move second child to first child ( temp highp 4-component vector of float) -0:282 'pos' ( in highp 4-component vector of float) -0:282 Function Call: TDInstanceDeform(vf4; ( global highp 4-component vector of float) -0:282 'pos' ( in highp 4-component vector of float) -0:283 Branch: Return with expression -0:283 'pos' ( in highp 4-component vector of float) -0:286 Function Definition: TDDeform(i1;vf3; ( global highp 4-component vector of float) -0:286 Function Parameters: -0:286 'instanceID' ( in highp int) -0:286 'p' ( in highp 3-component vector of float) -0:287 Sequence -0:287 Sequence -0:287 move second child to first child ( temp highp 4-component vector of float) -0:287 'pos' ( temp highp 4-component vector of float) -0:287 Construct vec4 ( temp highp 4-component vector of float) -0:287 'p' ( in highp 3-component vector of float) -0:287 Constant: -0:287 1.000000 -0:288 move second child to first child ( temp highp 4-component vector of float) -0:288 'pos' ( temp highp 4-component vector of float) -0:288 Function Call: TDSkinnedDeform(vf4; ( global highp 4-component vector of float) -0:288 'pos' ( temp highp 4-component vector of float) -0:289 move second child to first child ( temp highp 4-component vector of float) -0:289 'pos' ( temp highp 4-component vector of float) -0:289 Function Call: TDInstanceDeform(i1;vf4; ( global highp 4-component vector of float) -0:289 'instanceID' ( in highp int) -0:289 'pos' ( temp highp 4-component vector of float) -0:290 Branch: Return with expression -0:290 'pos' ( temp highp 4-component vector of float) -0:293 Function Definition: TDDeform(vf3; ( global highp 4-component vector of float) -0:293 Function Parameters: -0:293 'pos' ( in highp 3-component vector of float) -0:294 Sequence -0:294 Branch: Return with expression -0:294 Function Call: TDDeform(i1;vf3; ( global highp 4-component vector of float) -0:294 Function Call: TDInstanceID( ( global highp int) -0:294 'pos' ( in highp 3-component vector of float) -0:297 Function Definition: TDDeformVec(i1;vf3; ( global highp 3-component vector of float) -0:297 Function Parameters: -0:297 'instanceID' ( in highp int) -0:297 'vec' ( in highp 3-component vector of float) -0:298 Sequence -0:298 move second child to first child ( temp highp 3-component vector of float) -0:298 'vec' ( in highp 3-component vector of float) -0:298 Function Call: TDSkinnedDeformVec(vf3; ( global highp 3-component vector of float) -0:298 'vec' ( in highp 3-component vector of float) -0:299 move second child to first child ( temp highp 3-component vector of float) -0:299 'vec' ( in highp 3-component vector of float) -0:299 Function Call: TDInstanceDeformVec(i1;vf3; ( global highp 3-component vector of float) -0:299 'instanceID' ( in highp int) -0:299 'vec' ( in highp 3-component vector of float) -0:300 Branch: Return with expression -0:300 'vec' ( in highp 3-component vector of float) -0:303 Function Definition: TDDeformVec(vf3; ( global highp 3-component vector of float) -0:303 Function Parameters: -0:303 'vec' ( in highp 3-component vector of float) -0:304 Sequence -0:304 Branch: Return with expression -0:304 Function Call: TDDeformVec(i1;vf3; ( global highp 3-component vector of float) -0:304 Function Call: TDInstanceID( ( global highp int) -0:304 'vec' ( in highp 3-component vector of float) -0:307 Function Definition: TDDeformNorm(i1;vf3; ( global highp 3-component vector of float) -0:307 Function Parameters: -0:307 'instanceID' ( in highp int) -0:307 'vec' ( in highp 3-component vector of float) -0:308 Sequence -0:308 move second child to first child ( temp highp 3-component vector of float) -0:308 'vec' ( in highp 3-component vector of float) -0:308 Function Call: TDSkinnedDeformVec(vf3; ( global highp 3-component vector of float) -0:308 'vec' ( in highp 3-component vector of float) -0:309 move second child to first child ( temp highp 3-component vector of float) -0:309 'vec' ( in highp 3-component vector of float) -0:309 Function Call: TDInstanceDeformNorm(i1;vf3; ( global highp 3-component vector of float) -0:309 'instanceID' ( in highp int) -0:309 'vec' ( in highp 3-component vector of float) -0:310 Branch: Return with expression -0:310 'vec' ( in highp 3-component vector of float) -0:313 Function Definition: TDDeformNorm(vf3; ( global highp 3-component vector of float) -0:313 Function Parameters: -0:313 'vec' ( in highp 3-component vector of float) -0:314 Sequence -0:314 Branch: Return with expression -0:314 Function Call: TDDeformNorm(i1;vf3; ( global highp 3-component vector of float) -0:314 Function Call: TDInstanceID( ( global highp int) -0:314 'vec' ( in highp 3-component vector of float) -0:317 Function Definition: TDSkinnedDeformNorm(vf3; ( global highp 3-component vector of float) -0:317 Function Parameters: -0:317 'vec' ( in highp 3-component vector of float) -0:318 Sequence -0:318 move second child to first child ( temp highp 3-component vector of float) -0:318 'vec' ( in highp 3-component vector of float) -0:318 Function Call: TDSkinnedDeformVec(vf3; ( global highp 3-component vector of float) -0:318 'vec' ( in highp 3-component vector of float) -0:319 Branch: Return with expression -0:319 'vec' ( in highp 3-component vector of float) -0:? Linker Objects -0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal}) -0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 1-element array of structure{ global highp 4-component vector of float position, global highp 3-component vector of float direction, global highp 3-component vector of float diffuse, global highp 4-component vector of float nearFar, global highp 4-component vector of float lightSize, global highp 4-component vector of float misc, global highp 4-component vector of float coneLookupScaleBias, global highp 4-component vector of float attenScaleBiasRoll, layout( column_major std140) global highp 4X4 matrix of float shadowMapMatrix, layout( column_major std140) global highp 4X4 matrix of float shadowMapCamMatrix, global highp 4-component vector of float shadowMapRes, layout( column_major std140) global highp 4X4 matrix of float projMapMatrix} uTDLights}) -0:? 'anon@2' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 1-element array of structure{ global highp 3-component vector of float color, layout( column_major std140) global highp 3X3 matrix of float rotate} uTDEnvLights}) -0:? 'uTDEnvLightBuffers' (layout( column_major std430) restrict readonly buffer 1-element array of block{layout( column_major std430 offset=0) restrict readonly buffer 9-element array of highp 3-component vector of float shCoeffs}) -0:? 'anon@3' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 1-element array of structure{layout( column_major std140) global highp 4X4 matrix of float world, layout( column_major std140) global highp 4X4 matrix of float worldInverse, layout( column_major std140) global highp 4X4 matrix of float worldCam, layout( column_major std140) global highp 4X4 matrix of float worldCamInverse, layout( column_major std140) global highp 4X4 matrix of float cam, layout( column_major std140) global highp 4X4 matrix of float camInverse, layout( column_major std140) global highp 4X4 matrix of float camProj, layout( column_major std140) global highp 4X4 matrix of float camProjInverse, layout( column_major std140) global highp 4X4 matrix of float proj, layout( column_major std140) global highp 4X4 matrix of float projInverse, layout( column_major std140) global highp 4X4 matrix of float worldCamProj, layout( column_major std140) global highp 4X4 matrix of float worldCamProjInverse, layout( column_major std140) global highp 4X4 matrix of float quadReproject, layout( column_major std140) global highp 3X3 matrix of float worldForNormals, layout( column_major std140) global highp 3X3 matrix of float camForNormals, layout( column_major std140) global highp 3X3 matrix of float worldCamForNormals} uTDMats}) -0:? 'anon@4' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 1-element array of structure{ global highp 4-component vector of float nearFar, global highp 4-component vector of float fog, global highp 4-component vector of float fogColor, global highp int renderTOPCameraIndex} uTDCamInfos}) -0:? 'anon@5' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform structure{ global highp 4-component vector of float ambientColor, global highp 4-component vector of float nearFar, global highp 4-component vector of float viewport, global highp 4-component vector of float viewportRes, global highp 4-component vector of float fog, global highp 4-component vector of float fogColor} uTDGeneral}) -0:? 'sTDInstanceT' (layout( binding=15) uniform highp samplerBuffer) -0:? 'sTDInstanceTexCoord' (layout( binding=16) uniform highp samplerBuffer) -0:? 'sTDInstanceColor' (layout( binding=17) uniform highp samplerBuffer) -0:? 'gl_VertexIndex' ( in int VertexIndex) -0:? 'gl_InstanceIndex' ( in int InstanceIndex) - -vk.relaxed.stagelink.0.0.frag -Shader version: 460 -gl_FragCoord origin is upper left -0:? Sequence -0:95 Function Definition: main( ( global void) -0:95 Function Parameters: -0:99 Sequence -0:99 Function Call: TDCheckDiscard( ( global void) -0:101 Sequence -0:101 move second child to first child ( temp highp 4-component vector of float) -0:101 'outcol' ( temp highp 4-component vector of float) -0:101 Constant: -0:101 0.000000 -0:101 0.000000 -0:101 0.000000 -0:101 0.000000 -0:103 Sequence -0:103 move second child to first child ( temp highp 3-component vector of float) -0:103 'texCoord0' ( temp highp 3-component vector of float) -0:103 vector swizzle ( temp highp 3-component vector of float) -0:103 texCoord0: direct index for structure ( in highp 3-component vector of float) -0:103 'iVert' ( in block{ in highp 4-component vector of float color, in highp 3-component vector of float worldSpacePos, in highp 3-component vector of float texCoord0, flat in highp int cameraIndex, flat in highp int instance}) -0:103 Constant: -0:103 2 (const int) -0:103 Sequence -0:103 Constant: -0:103 0 (const int) -0:103 Constant: -0:103 1 (const int) -0:103 Constant: -0:103 2 (const int) -0:104 Sequence -0:104 move second child to first child ( temp highp float) -0:104 'actualTexZ' ( temp highp float) -0:104 mod ( global highp float) -0:104 Convert int to float ( temp highp float) -0:104 Convert float to int ( temp highp int) -0:104 direct index ( temp highp float) -0:104 'texCoord0' ( temp highp 3-component vector of float) -0:104 Constant: -0:104 2 (const int) -0:104 Constant: -0:104 2048.000000 -0:105 Sequence -0:105 move second child to first child ( temp highp float) -0:105 'instanceLoop' ( temp highp float) -0:105 Floor ( global highp float) -0:105 Convert int to float ( temp highp float) -0:105 divide ( temp highp int) -0:105 Convert float to int ( temp highp int) -0:105 direct index ( temp highp float) -0:105 'texCoord0' ( temp highp 3-component vector of float) -0:105 Constant: -0:105 2 (const int) -0:105 Constant: -0:105 2048 (const int) -0:106 move second child to first child ( temp highp float) -0:106 direct index ( temp highp float) -0:106 'texCoord0' ( temp highp 3-component vector of float) -0:106 Constant: -0:106 2 (const int) -0:106 'actualTexZ' ( temp highp float) -0:107 Sequence -0:107 move second child to first child ( temp highp 4-component vector of float) -0:107 'colorMapColor' ( temp highp 4-component vector of float) -0:107 texture ( global highp 4-component vector of float) -0:107 'sColorMap' ( uniform highp sampler2DArray) -0:107 vector swizzle ( temp highp 3-component vector of float) -0:107 'texCoord0' ( temp highp 3-component vector of float) -0:107 Sequence -0:107 Constant: -0:107 0 (const int) -0:107 Constant: -0:107 1 (const int) -0:107 Constant: -0:107 2 (const int) -0:109 Sequence -0:109 move second child to first child ( temp highp float) -0:109 'red' ( temp highp float) -0:109 indirect index ( temp highp float) -0:109 'colorMapColor' ( temp highp 4-component vector of float) -0:109 Convert float to int ( temp highp int) -0:109 'instanceLoop' ( temp highp float) -0:110 move second child to first child ( temp highp 4-component vector of float) -0:110 'colorMapColor' ( temp highp 4-component vector of float) -0:110 Construct vec4 ( temp highp 4-component vector of float) -0:110 'red' ( temp highp float) -0:112 add second child into first child ( temp highp 3-component vector of float) -0:112 vector swizzle ( temp highp 3-component vector of float) -0:112 'outcol' ( temp highp 4-component vector of float) -0:112 Sequence -0:112 Constant: -0:112 0 (const int) -0:112 Constant: -0:112 1 (const int) -0:112 Constant: -0:112 2 (const int) -0:112 component-wise multiply ( temp highp 3-component vector of float) -0:112 uConstant: direct index for structure ( uniform highp 3-component vector of float) -0:112 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal, uniform highp 3-component vector of float uConstant, uniform highp float uShadowStrength, uniform highp 3-component vector of float uShadowColor, uniform highp 4-component vector of float uDiffuseColor, uniform highp 4-component vector of float uAmbientColor}) -0:112 Constant: -0:112 3 (const uint) -0:112 vector swizzle ( temp highp 3-component vector of float) -0:112 color: direct index for structure ( in highp 4-component vector of float) -0:112 'iVert' ( in block{ in highp 4-component vector of float color, in highp 3-component vector of float worldSpacePos, in highp 3-component vector of float texCoord0, flat in highp int cameraIndex, flat in highp int instance}) -0:112 Constant: -0:112 0 (const int) -0:112 Sequence -0:112 Constant: -0:112 0 (const int) -0:112 Constant: -0:112 1 (const int) -0:112 Constant: -0:112 2 (const int) -0:114 multiply second child into first child ( temp highp 4-component vector of float) -0:114 'outcol' ( temp highp 4-component vector of float) -0:114 'colorMapColor' ( temp highp 4-component vector of float) -0:117 Sequence -0:117 move second child to first child ( temp highp float) -0:117 'alpha' ( temp highp float) -0:117 component-wise multiply ( temp highp float) -0:117 direct index ( temp highp float) -0:117 color: direct index for structure ( in highp 4-component vector of float) -0:117 'iVert' ( in block{ in highp 4-component vector of float color, in highp 3-component vector of float worldSpacePos, in highp 3-component vector of float texCoord0, flat in highp int cameraIndex, flat in highp int instance}) -0:117 Constant: -0:117 0 (const int) -0:117 Constant: -0:117 3 (const int) -0:117 direct index ( temp highp float) -0:117 'colorMapColor' ( temp highp 4-component vector of float) -0:117 Constant: -0:117 3 (const int) -0:120 move second child to first child ( temp highp 4-component vector of float) -0:120 'outcol' ( temp highp 4-component vector of float) -0:120 Function Call: TDDither(vf4; ( global highp 4-component vector of float) -0:120 'outcol' ( temp highp 4-component vector of float) -0:122 vector scale second child into first child ( temp highp 3-component vector of float) -0:122 vector swizzle ( temp highp 3-component vector of float) -0:122 'outcol' ( temp highp 4-component vector of float) -0:122 Sequence -0:122 Constant: -0:122 0 (const int) -0:122 Constant: -0:122 1 (const int) -0:122 Constant: -0:122 2 (const int) -0:122 'alpha' ( temp highp float) -0:126 Function Call: TDAlphaTest(f1; ( global void) -0:126 'alpha' ( temp highp float) -0:128 move second child to first child ( temp highp float) -0:128 direct index ( temp highp float) -0:128 'outcol' ( temp highp 4-component vector of float) -0:128 Constant: -0:128 3 (const int) -0:128 'alpha' ( temp highp float) -0:129 move second child to first child ( temp highp 4-component vector of float) -0:129 direct index (layout( location=0) temp highp 4-component vector of float) -0:129 'oFragColor' (layout( location=0) out 1-element array of highp 4-component vector of float) -0:129 Constant: -0:129 0 (const int) -0:129 Function Call: TDOutputSwizzle(vf4; ( global highp 4-component vector of float) -0:129 'outcol' ( temp highp 4-component vector of float) -0:135 Sequence -0:135 Sequence -0:135 move second child to first child ( temp highp int) -0:135 'i' ( temp highp int) -0:135 Constant: -0:135 1 (const int) -0:135 Loop with condition tested first -0:135 Loop Condition -0:135 Compare Less Than ( temp bool) -0:135 'i' ( temp highp int) -0:135 Constant: -0:135 1 (const int) -0:135 Loop Body -0:137 Sequence -0:137 move second child to first child ( temp highp 4-component vector of float) -0:137 indirect index (layout( location=0) temp highp 4-component vector of float) -0:137 'oFragColor' (layout( location=0) out 1-element array of highp 4-component vector of float) -0:137 'i' ( temp highp int) -0:137 Constant: -0:137 0.000000 -0:137 0.000000 -0:137 0.000000 -0:137 0.000000 -0:135 Loop Terminal Expression -0:135 Post-Increment ( temp highp int) -0:135 'i' ( temp highp int) -0:? Linker Objects -0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal, uniform highp 3-component vector of float uConstant, uniform highp float uShadowStrength, uniform highp 3-component vector of float uShadowColor, uniform highp 4-component vector of float uDiffuseColor, uniform highp 4-component vector of float uAmbientColor}) -0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 1-element array of structure{layout( column_major std140) global highp 4X4 matrix of float world, layout( column_major std140) global highp 4X4 matrix of float worldInverse, layout( column_major std140) global highp 4X4 matrix of float worldCam, layout( column_major std140) global highp 4X4 matrix of float worldCamInverse, layout( column_major std140) global highp 4X4 matrix of float cam, layout( column_major std140) global highp 4X4 matrix of float camInverse, layout( column_major std140) global highp 4X4 matrix of float camProj, layout( column_major std140) global highp 4X4 matrix of float camProjInverse, layout( column_major std140) global highp 4X4 matrix of float proj, layout( column_major std140) global highp 4X4 matrix of float projInverse, layout( column_major std140) global highp 4X4 matrix of float worldCamProj, layout( column_major std140) global highp 4X4 matrix of float worldCamProjInverse, layout( column_major std140) global highp 4X4 matrix of float quadReproject, layout( column_major std140) global highp 3X3 matrix of float worldForNormals, layout( column_major std140) global highp 3X3 matrix of float camForNormals, layout( column_major std140) global highp 3X3 matrix of float worldCamForNormals} uTDMats}) -0:? 'anon@2' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 1-element array of structure{ global highp 4-component vector of float nearFar, global highp 4-component vector of float fog, global highp 4-component vector of float fogColor, global highp int renderTOPCameraIndex} uTDCamInfos}) -0:? 'anon@3' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform structure{ global highp 4-component vector of float ambientColor, global highp 4-component vector of float nearFar, global highp 4-component vector of float viewport, global highp 4-component vector of float viewportRes, global highp 4-component vector of float fog, global highp 4-component vector of float fogColor} uTDGeneral}) -0:? 'sColorMap' ( uniform highp sampler2DArray) -0:? 'iVert' ( in block{ in highp 4-component vector of float color, in highp 3-component vector of float worldSpacePos, in highp 3-component vector of float texCoord0, flat in highp int cameraIndex, flat in highp int instance}) -0:? 'oFragColor' (layout( location=0) out 1-element array of highp 4-component vector of float) - -vk.relaxed.stagelink.0.1.frag -Shader version: 460 -gl_FragCoord origin is upper left -0:? Sequence -0:116 Function Definition: TDColor(vf4; ( global highp 4-component vector of float) -0:116 Function Parameters: -0:116 'color' ( in highp 4-component vector of float) -0:116 Sequence -0:116 Branch: Return with expression -0:116 'color' ( in highp 4-component vector of float) -0:117 Function Definition: TDCheckOrderIndTrans( ( global void) -0:117 Function Parameters: -0:119 Function Definition: TDCheckDiscard( ( global void) -0:119 Function Parameters: -0:120 Sequence -0:120 Function Call: TDCheckOrderIndTrans( ( global void) -0:122 Function Definition: TDDither(vf4; ( global highp 4-component vector of float) -0:122 Function Parameters: -0:122 'color' ( in highp 4-component vector of float) -0:124 Sequence -0:124 Sequence -0:124 move second child to first child ( temp highp float) -0:124 'd' ( temp highp float) -0:125 direct index ( temp highp float) -0:125 texture ( global highp 4-component vector of float) -0:124 'sTDNoiseMap' ( uniform highp sampler2D) -0:125 divide ( temp highp 2-component vector of float) -0:125 vector swizzle ( temp highp 2-component vector of float) -0:125 'gl_FragCoord' ( gl_FragCoord highp 4-component vector of float FragCoord) -0:125 Sequence -0:125 Constant: -0:125 0 (const int) -0:125 Constant: -0:125 1 (const int) -0:125 Constant: -0:125 256.000000 -0:125 Constant: -0:125 0 (const int) -0:126 subtract second child into first child ( temp highp float) -0:126 'd' ( temp highp float) -0:126 Constant: -0:126 0.500000 -0:127 divide second child into first child ( temp highp float) -0:127 'd' ( temp highp float) -0:127 Constant: -0:127 256.000000 -0:128 Branch: Return with expression -0:128 Construct vec4 ( temp highp 4-component vector of float) -0:128 add ( temp highp 3-component vector of float) -0:128 vector swizzle ( temp highp 3-component vector of float) -0:128 'color' ( in highp 4-component vector of float) -0:128 Sequence -0:128 Constant: -0:128 0 (const int) -0:128 Constant: -0:128 1 (const int) -0:128 Constant: -0:128 2 (const int) -0:128 'd' ( temp highp float) -0:128 direct index ( temp highp float) -0:128 'color' ( in highp 4-component vector of float) -0:128 Constant: -0:128 3 (const int) -0:130 Function Definition: TDFrontFacing(vf3;vf3; ( global bool) -0:130 Function Parameters: -0:130 'pos' ( in highp 3-component vector of float) -0:130 'normal' ( in highp 3-component vector of float) -0:132 Sequence -0:132 Branch: Return with expression -0:132 'gl_FrontFacing' ( gl_FrontFacing bool Face) -0:134 Function Definition: TDAttenuateLight(i1;f1; ( global highp float) -0:134 Function Parameters: -0:134 'index' ( in highp int) -0:134 'lightDist' ( in highp float) -0:136 Sequence -0:136 Branch: Return with expression -0:136 Constant: -0:136 1.000000 -0:138 Function Definition: TDAlphaTest(f1; ( global void) -0:138 Function Parameters: -0:138 'alpha' ( in highp float) -0:140 Function Definition: TDHardShadow(i1;vf3; ( global highp float) -0:140 Function Parameters: -0:140 'lightIndex' ( in highp int) -0:140 'worldSpacePos' ( in highp 3-component vector of float) -0:141 Sequence -0:141 Branch: Return with expression -0:141 Constant: -0:141 0.000000 -0:142 Function Definition: TDSoftShadow(i1;vf3;i1;i1; ( global highp float) -0:142 Function Parameters: -0:142 'lightIndex' ( in highp int) -0:142 'worldSpacePos' ( in highp 3-component vector of float) -0:142 'samples' ( in highp int) -0:142 'steps' ( in highp int) -0:143 Sequence -0:143 Branch: Return with expression -0:143 Constant: -0:143 0.000000 -0:144 Function Definition: TDSoftShadow(i1;vf3; ( global highp float) -0:144 Function Parameters: -0:144 'lightIndex' ( in highp int) -0:144 'worldSpacePos' ( in highp 3-component vector of float) -0:145 Sequence -0:145 Branch: Return with expression -0:145 Constant: -0:145 0.000000 -0:146 Function Definition: TDShadow(i1;vf3; ( global highp float) -0:146 Function Parameters: -0:146 'lightIndex' ( in highp int) -0:146 'worldSpacePos' ( in highp 3-component vector of float) -0:147 Sequence -0:147 Branch: Return with expression -0:147 Constant: -0:147 0.000000 -0:152 Function Definition: iTDRadicalInverse_VdC(u1; ( global highp float) -0:152 Function Parameters: -0:152 'bits' ( in highp uint) -0:154 Sequence -0:154 move second child to first child ( temp highp uint) -0:154 'bits' ( in highp uint) -0:154 inclusive-or ( temp highp uint) -0:154 left-shift ( temp highp uint) -0:154 'bits' ( in highp uint) -0:154 Constant: -0:154 16 (const uint) -0:154 right-shift ( temp highp uint) -0:154 'bits' ( in highp uint) -0:154 Constant: -0:154 16 (const uint) -0:155 move second child to first child ( temp highp uint) -0:155 'bits' ( in highp uint) -0:155 inclusive-or ( temp highp uint) -0:155 left-shift ( temp highp uint) -0:155 bitwise and ( temp highp uint) -0:155 'bits' ( in highp uint) -0:155 Constant: -0:155 1431655765 (const uint) -0:155 Constant: -0:155 1 (const uint) -0:155 right-shift ( temp highp uint) -0:155 bitwise and ( temp highp uint) -0:155 'bits' ( in highp uint) -0:155 Constant: -0:155 2863311530 (const uint) -0:155 Constant: -0:155 1 (const uint) -0:156 move second child to first child ( temp highp uint) -0:156 'bits' ( in highp uint) -0:156 inclusive-or ( temp highp uint) -0:156 left-shift ( temp highp uint) -0:156 bitwise and ( temp highp uint) -0:156 'bits' ( in highp uint) -0:156 Constant: -0:156 858993459 (const uint) -0:156 Constant: -0:156 2 (const uint) -0:156 right-shift ( temp highp uint) -0:156 bitwise and ( temp highp uint) -0:156 'bits' ( in highp uint) -0:156 Constant: -0:156 3435973836 (const uint) -0:156 Constant: -0:156 2 (const uint) -0:157 move second child to first child ( temp highp uint) -0:157 'bits' ( in highp uint) -0:157 inclusive-or ( temp highp uint) -0:157 left-shift ( temp highp uint) -0:157 bitwise and ( temp highp uint) -0:157 'bits' ( in highp uint) -0:157 Constant: -0:157 252645135 (const uint) -0:157 Constant: -0:157 4 (const uint) -0:157 right-shift ( temp highp uint) -0:157 bitwise and ( temp highp uint) -0:157 'bits' ( in highp uint) -0:157 Constant: -0:157 4042322160 (const uint) -0:157 Constant: -0:157 4 (const uint) -0:158 move second child to first child ( temp highp uint) -0:158 'bits' ( in highp uint) -0:158 inclusive-or ( temp highp uint) -0:158 left-shift ( temp highp uint) -0:158 bitwise and ( temp highp uint) -0:158 'bits' ( in highp uint) -0:158 Constant: -0:158 16711935 (const uint) -0:158 Constant: -0:158 8 (const uint) -0:158 right-shift ( temp highp uint) -0:158 bitwise and ( temp highp uint) -0:158 'bits' ( in highp uint) -0:158 Constant: -0:158 4278255360 (const uint) -0:158 Constant: -0:158 8 (const uint) -0:159 Branch: Return with expression -0:159 component-wise multiply ( temp highp float) -0:159 Convert uint to float ( temp highp float) -0:159 'bits' ( in highp uint) -0:159 Constant: -0:159 2.3283064365387e-10 -0:161 Function Definition: iTDHammersley(u1;u1; ( global highp 2-component vector of float) -0:161 Function Parameters: -0:161 'i' ( in highp uint) -0:161 'N' ( in highp uint) -0:163 Sequence -0:163 Branch: Return with expression -0:163 Construct vec2 ( temp highp 2-component vector of float) -0:163 divide ( temp highp float) -0:163 Convert uint to float ( temp highp float) -0:163 'i' ( in highp uint) -0:163 Convert uint to float ( temp highp float) -0:163 'N' ( in highp uint) -0:163 Function Call: iTDRadicalInverse_VdC(u1; ( global highp float) -0:163 'i' ( in highp uint) -0:165 Function Definition: iTDImportanceSampleGGX(vf2;f1;vf3; ( global highp 3-component vector of float) -0:165 Function Parameters: -0:165 'Xi' ( in highp 2-component vector of float) -0:165 'roughness2' ( in highp float) -0:165 'N' ( in highp 3-component vector of float) -0:167 Sequence -0:167 Sequence -0:167 move second child to first child ( temp highp float) -0:167 'a' ( temp highp float) -0:167 'roughness2' ( in highp float) -0:168 Sequence -0:168 move second child to first child ( temp highp float) -0:168 'phi' ( temp highp float) -0:168 component-wise multiply ( temp highp float) -0:168 Constant: -0:168 6.283185 -0:168 direct index ( temp highp float) -0:168 'Xi' ( in highp 2-component vector of float) -0:168 Constant: -0:168 0 (const int) -0:169 Sequence -0:169 move second child to first child ( temp highp float) -0:169 'cosTheta' ( temp highp float) -0:169 sqrt ( global highp float) -0:169 divide ( temp highp float) -0:169 subtract ( temp highp float) -0:169 Constant: -0:169 1.000000 -0:169 direct index ( temp highp float) -0:169 'Xi' ( in highp 2-component vector of float) -0:169 Constant: -0:169 1 (const int) -0:169 add ( temp highp float) -0:169 Constant: -0:169 1.000000 -0:169 component-wise multiply ( temp highp float) -0:169 subtract ( temp highp float) -0:169 component-wise multiply ( temp highp float) -0:169 'a' ( temp highp float) -0:169 'a' ( temp highp float) -0:169 Constant: -0:169 1.000000 -0:169 direct index ( temp highp float) -0:169 'Xi' ( in highp 2-component vector of float) -0:169 Constant: -0:169 1 (const int) -0:170 Sequence -0:170 move second child to first child ( temp highp float) -0:170 'sinTheta' ( temp highp float) -0:170 sqrt ( global highp float) -0:170 subtract ( temp highp float) -0:170 Constant: -0:170 1.000000 -0:170 component-wise multiply ( temp highp float) -0:170 'cosTheta' ( temp highp float) -0:170 'cosTheta' ( temp highp float) -0:173 move second child to first child ( temp highp float) -0:173 direct index ( temp highp float) -0:173 'H' ( temp highp 3-component vector of float) -0:173 Constant: -0:173 0 (const int) -0:173 component-wise multiply ( temp highp float) -0:173 'sinTheta' ( temp highp float) -0:173 cosine ( global highp float) -0:173 'phi' ( temp highp float) -0:174 move second child to first child ( temp highp float) -0:174 direct index ( temp highp float) -0:174 'H' ( temp highp 3-component vector of float) -0:174 Constant: -0:174 1 (const int) -0:174 component-wise multiply ( temp highp float) -0:174 'sinTheta' ( temp highp float) -0:174 sine ( global highp float) -0:174 'phi' ( temp highp float) -0:175 move second child to first child ( temp highp float) -0:175 direct index ( temp highp float) -0:175 'H' ( temp highp 3-component vector of float) -0:175 Constant: -0:175 2 (const int) -0:175 'cosTheta' ( temp highp float) -0:177 Sequence -0:177 move second child to first child ( temp highp 3-component vector of float) -0:177 'upVector' ( temp highp 3-component vector of float) -0:177 Test condition and select ( temp highp 3-component vector of float) -0:177 Condition -0:177 Compare Less Than ( temp bool) -0:177 Absolute value ( global highp float) -0:177 direct index ( temp highp float) -0:177 'N' ( in highp 3-component vector of float) -0:177 Constant: -0:177 2 (const int) -0:177 Constant: -0:177 0.999000 -0:177 true case -0:177 Constant: -0:177 0.000000 -0:177 0.000000 -0:177 1.000000 -0:177 false case -0:177 Constant: -0:177 1.000000 -0:177 0.000000 -0:177 0.000000 -0:178 Sequence -0:178 move second child to first child ( temp highp 3-component vector of float) -0:178 'tangentX' ( temp highp 3-component vector of float) -0:178 normalize ( global highp 3-component vector of float) -0:178 cross-product ( global highp 3-component vector of float) -0:178 'upVector' ( temp highp 3-component vector of float) -0:178 'N' ( in highp 3-component vector of float) -0:179 Sequence -0:179 move second child to first child ( temp highp 3-component vector of float) -0:179 'tangentY' ( temp highp 3-component vector of float) -0:179 cross-product ( global highp 3-component vector of float) -0:179 'N' ( in highp 3-component vector of float) -0:179 'tangentX' ( temp highp 3-component vector of float) -0:182 Sequence -0:182 move second child to first child ( temp highp 3-component vector of float) -0:182 'worldResult' ( temp highp 3-component vector of float) -0:182 add ( temp highp 3-component vector of float) -0:182 add ( temp highp 3-component vector of float) -0:182 vector-scale ( temp highp 3-component vector of float) -0:182 'tangentX' ( temp highp 3-component vector of float) -0:182 direct index ( temp highp float) -0:182 'H' ( temp highp 3-component vector of float) -0:182 Constant: -0:182 0 (const int) -0:182 vector-scale ( temp highp 3-component vector of float) -0:182 'tangentY' ( temp highp 3-component vector of float) -0:182 direct index ( temp highp float) -0:182 'H' ( temp highp 3-component vector of float) -0:182 Constant: -0:182 1 (const int) -0:182 vector-scale ( temp highp 3-component vector of float) -0:182 'N' ( in highp 3-component vector of float) -0:182 direct index ( temp highp float) -0:182 'H' ( temp highp 3-component vector of float) -0:182 Constant: -0:182 2 (const int) -0:183 Branch: Return with expression -0:183 'worldResult' ( temp highp 3-component vector of float) -0:185 Function Definition: iTDDistributionGGX(vf3;vf3;f1; ( global highp float) -0:185 Function Parameters: -0:185 'normal' ( in highp 3-component vector of float) -0:185 'half_vector' ( in highp 3-component vector of float) -0:185 'roughness2' ( in highp float) -0:? Sequence -0:189 Sequence -0:189 move second child to first child ( temp highp float) -0:189 'NdotH' ( temp highp float) -0:189 clamp ( global highp float) -0:189 dot-product ( global highp float) -0:189 'normal' ( in highp 3-component vector of float) -0:189 'half_vector' ( in highp 3-component vector of float) -0:189 Constant: -0:189 1.0000000000000e-06 -0:189 Constant: -0:189 1.000000 -0:191 Sequence -0:191 move second child to first child ( temp highp float) -0:191 'alpha2' ( temp highp float) -0:191 component-wise multiply ( temp highp float) -0:191 'roughness2' ( in highp float) -0:191 'roughness2' ( in highp float) -0:193 Sequence -0:193 move second child to first child ( temp highp float) -0:193 'denom' ( temp highp float) -0:193 add ( temp highp float) -0:193 component-wise multiply ( temp highp float) -0:193 component-wise multiply ( temp highp float) -0:193 'NdotH' ( temp highp float) -0:193 'NdotH' ( temp highp float) -0:193 subtract ( temp highp float) -0:193 'alpha2' ( temp highp float) -0:193 Constant: -0:193 1.000000 -0:193 Constant: -0:193 1.000000 -0:194 move second child to first child ( temp highp float) -0:194 'denom' ( temp highp float) -0:194 max ( global highp float) -0:194 Constant: -0:194 1.0000000000000e-08 -0:194 'denom' ( temp highp float) -0:195 Branch: Return with expression -0:195 divide ( temp highp float) -0:195 'alpha2' ( temp highp float) -0:195 component-wise multiply ( temp highp float) -0:195 component-wise multiply ( temp highp float) -0:195 Constant: -0:195 3.141593 -0:195 'denom' ( temp highp float) -0:195 'denom' ( temp highp float) -0:197 Function Definition: iTDCalcF(vf3;f1; ( global highp 3-component vector of float) -0:197 Function Parameters: -0:197 'F0' ( in highp 3-component vector of float) -0:197 'VdotH' ( in highp float) -0:198 Sequence -0:198 Branch: Return with expression -0:198 add ( temp highp 3-component vector of float) -0:198 'F0' ( in highp 3-component vector of float) -0:198 vector-scale ( temp highp 3-component vector of float) -0:198 subtract ( temp highp 3-component vector of float) -0:198 Constant: -0:198 1.000000 -0:198 1.000000 -0:198 1.000000 -0:198 'F0' ( in highp 3-component vector of float) -0:198 pow ( global highp float) -0:198 Constant: -0:198 2.000000 -0:198 component-wise multiply ( temp highp float) -0:198 subtract ( temp highp float) -0:198 component-wise multiply ( temp highp float) -0:198 Constant: -0:198 -5.554730 -0:198 'VdotH' ( in highp float) -0:198 Constant: -0:198 6.983160 -0:198 'VdotH' ( in highp float) -0:201 Function Definition: iTDCalcG(f1;f1;f1; ( global highp float) -0:201 Function Parameters: -0:201 'NdotL' ( in highp float) -0:201 'NdotV' ( in highp float) -0:201 'k' ( in highp float) -0:202 Sequence -0:202 Sequence -0:202 move second child to first child ( temp highp float) -0:202 'Gl' ( temp highp float) -0:202 divide ( temp highp float) -0:202 Constant: -0:202 1.000000 -0:202 add ( temp highp float) -0:202 component-wise multiply ( temp highp float) -0:202 'NdotL' ( in highp float) -0:202 subtract ( temp highp float) -0:202 Constant: -0:202 1.000000 -0:202 'k' ( in highp float) -0:202 'k' ( in highp float) -0:203 Sequence -0:203 move second child to first child ( temp highp float) -0:203 'Gv' ( temp highp float) -0:203 divide ( temp highp float) -0:203 Constant: -0:203 1.000000 -0:203 add ( temp highp float) -0:203 component-wise multiply ( temp highp float) -0:203 'NdotV' ( in highp float) -0:203 subtract ( temp highp float) -0:203 Constant: -0:203 1.000000 -0:203 'k' ( in highp float) -0:203 'k' ( in highp float) -0:204 Branch: Return with expression -0:204 component-wise multiply ( temp highp float) -0:204 'Gl' ( temp highp float) -0:204 'Gv' ( temp highp float) -0:207 Function Definition: TDLightingPBR(i1;vf3;vf3;vf3;vf3;f1;vf3;vf3;f1; ( global structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:207 Function Parameters: -0:207 'index' ( in highp int) -0:207 'diffuseColor' ( in highp 3-component vector of float) -0:207 'specularColor' ( in highp 3-component vector of float) -0:207 'worldSpacePos' ( in highp 3-component vector of float) -0:207 'normal' ( in highp 3-component vector of float) -0:207 'shadowStrength' ( in highp float) -0:207 'shadowColor' ( in highp 3-component vector of float) -0:207 'camVector' ( in highp 3-component vector of float) -0:207 'roughness' ( in highp float) -0:? Sequence -0:210 Branch: Return with expression -0:210 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:213 Function Definition: TDLightingPBR(vf3;vf3;f1;i1;vf3;vf3;vf3;vf3;f1;vf3;vf3;f1; ( global void) -0:213 Function Parameters: -0:213 'diffuseContrib' ( inout highp 3-component vector of float) -0:213 'specularContrib' ( inout highp 3-component vector of float) -0:213 'shadowStrengthOut' ( inout highp float) -0:213 'index' ( in highp int) -0:213 'diffuseColor' ( in highp 3-component vector of float) -0:213 'specularColor' ( in highp 3-component vector of float) -0:213 'worldSpacePos' ( in highp 3-component vector of float) -0:213 'normal' ( in highp 3-component vector of float) -0:213 'shadowStrength' ( in highp float) -0:213 'shadowColor' ( in highp 3-component vector of float) -0:213 'camVector' ( in highp 3-component vector of float) -0:213 'roughness' ( in highp float) -0:215 Sequence -0:215 Sequence -0:215 move second child to first child ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:215 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:215 Function Call: TDLightingPBR(i1;vf3;vf3;vf3;vf3;f1;vf3;vf3;f1; ( global structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:215 'index' ( in highp int) -0:215 'diffuseColor' ( in highp 3-component vector of float) -0:215 'specularColor' ( in highp 3-component vector of float) -0:215 'worldSpacePos' ( in highp 3-component vector of float) -0:215 'normal' ( in highp 3-component vector of float) -0:215 'shadowStrength' ( in highp float) -0:215 'shadowColor' ( in highp 3-component vector of float) -0:215 'camVector' ( in highp 3-component vector of float) -0:215 'roughness' ( in highp float) -0:215 move second child to first child ( temp highp 3-component vector of float) -0:215 'diffuseContrib' ( inout highp 3-component vector of float) -0:215 diffuse: direct index for structure ( global highp 3-component vector of float) -0:215 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:215 Constant: -0:215 0 (const int) -0:216 move second child to first child ( temp highp 3-component vector of float) -0:216 'specularContrib' ( inout highp 3-component vector of float) -0:216 specular: direct index for structure ( global highp 3-component vector of float) -0:216 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:216 Constant: -0:216 1 (const int) -0:217 move second child to first child ( temp highp float) -0:217 'shadowStrengthOut' ( inout highp float) -0:217 shadowStrength: direct index for structure ( global highp float) -0:217 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:217 Constant: -0:217 2 (const int) -0:220 Function Definition: TDLightingPBR(vf3;vf3;i1;vf3;vf3;vf3;vf3;f1;vf3;vf3;f1; ( global void) -0:220 Function Parameters: -0:220 'diffuseContrib' ( inout highp 3-component vector of float) -0:220 'specularContrib' ( inout highp 3-component vector of float) -0:220 'index' ( in highp int) -0:220 'diffuseColor' ( in highp 3-component vector of float) -0:220 'specularColor' ( in highp 3-component vector of float) -0:220 'worldSpacePos' ( in highp 3-component vector of float) -0:220 'normal' ( in highp 3-component vector of float) -0:220 'shadowStrength' ( in highp float) -0:220 'shadowColor' ( in highp 3-component vector of float) -0:220 'camVector' ( in highp 3-component vector of float) -0:220 'roughness' ( in highp float) -0:222 Sequence -0:222 Sequence -0:222 move second child to first child ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:222 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:222 Function Call: TDLightingPBR(i1;vf3;vf3;vf3;vf3;f1;vf3;vf3;f1; ( global structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:222 'index' ( in highp int) -0:222 'diffuseColor' ( in highp 3-component vector of float) -0:222 'specularColor' ( in highp 3-component vector of float) -0:222 'worldSpacePos' ( in highp 3-component vector of float) -0:222 'normal' ( in highp 3-component vector of float) -0:222 'shadowStrength' ( in highp float) -0:222 'shadowColor' ( in highp 3-component vector of float) -0:222 'camVector' ( in highp 3-component vector of float) -0:222 'roughness' ( in highp float) -0:222 move second child to first child ( temp highp 3-component vector of float) -0:222 'diffuseContrib' ( inout highp 3-component vector of float) -0:222 diffuse: direct index for structure ( global highp 3-component vector of float) -0:222 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:222 Constant: -0:222 0 (const int) -0:223 move second child to first child ( temp highp 3-component vector of float) -0:223 'specularContrib' ( inout highp 3-component vector of float) -0:223 specular: direct index for structure ( global highp 3-component vector of float) -0:223 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:223 Constant: -0:223 1 (const int) -0:226 Function Definition: TDEnvLightingPBR(i1;vf3;vf3;vf3;vf3;f1;f1; ( global structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:226 Function Parameters: -0:226 'index' ( in highp int) -0:226 'diffuseColor' ( in highp 3-component vector of float) -0:226 'specularColor' ( in highp 3-component vector of float) -0:226 'normal' ( in highp 3-component vector of float) -0:226 'camVector' ( in highp 3-component vector of float) -0:226 'roughness' ( in highp float) -0:226 'ambientOcclusion' ( in highp float) -0:? Sequence -0:229 Branch: Return with expression -0:229 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:232 Function Definition: TDEnvLightingPBR(vf3;vf3;i1;vf3;vf3;vf3;vf3;f1;f1; ( global void) -0:232 Function Parameters: -0:232 'diffuseContrib' ( inout highp 3-component vector of float) -0:232 'specularContrib' ( inout highp 3-component vector of float) -0:232 'index' ( in highp int) -0:232 'diffuseColor' ( in highp 3-component vector of float) -0:232 'specularColor' ( in highp 3-component vector of float) -0:232 'normal' ( in highp 3-component vector of float) -0:232 'camVector' ( in highp 3-component vector of float) -0:232 'roughness' ( in highp float) -0:232 'ambientOcclusion' ( in highp float) -0:234 Sequence -0:234 Sequence -0:234 move second child to first child ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:234 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:234 Function Call: TDEnvLightingPBR(i1;vf3;vf3;vf3;vf3;f1;f1; ( global structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:234 'index' ( in highp int) -0:234 'diffuseColor' ( in highp 3-component vector of float) -0:234 'specularColor' ( in highp 3-component vector of float) -0:234 'normal' ( in highp 3-component vector of float) -0:234 'camVector' ( in highp 3-component vector of float) -0:234 'roughness' ( in highp float) -0:234 'ambientOcclusion' ( in highp float) -0:235 move second child to first child ( temp highp 3-component vector of float) -0:235 'diffuseContrib' ( inout highp 3-component vector of float) -0:235 diffuse: direct index for structure ( global highp 3-component vector of float) -0:235 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:235 Constant: -0:235 0 (const int) -0:236 move second child to first child ( temp highp 3-component vector of float) -0:236 'specularContrib' ( inout highp 3-component vector of float) -0:236 specular: direct index for structure ( global highp 3-component vector of float) -0:236 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:236 Constant: -0:236 1 (const int) -0:239 Function Definition: TDLighting(i1;vf3;vf3;f1;vf3;vf3;f1;f1; ( global structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:239 Function Parameters: -0:239 'index' ( in highp int) -0:239 'worldSpacePos' ( in highp 3-component vector of float) -0:239 'normal' ( in highp 3-component vector of float) -0:239 'shadowStrength' ( in highp float) -0:239 'shadowColor' ( in highp 3-component vector of float) -0:239 'camVector' ( in highp 3-component vector of float) -0:239 'shininess' ( in highp float) -0:239 'shininess2' ( in highp float) -0:? Sequence -0:242 switch -0:242 condition -0:242 'index' ( in highp int) -0:242 body -0:242 Sequence -0:244 default: -0:? Sequence -0:245 move second child to first child ( temp highp 3-component vector of float) -0:245 diffuse: direct index for structure ( global highp 3-component vector of float) -0:245 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:245 Constant: -0:245 0 (const int) -0:245 Constant: -0:245 0.000000 -0:245 0.000000 -0:245 0.000000 -0:246 move second child to first child ( temp highp 3-component vector of float) -0:246 specular: direct index for structure ( global highp 3-component vector of float) -0:246 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:246 Constant: -0:246 1 (const int) -0:246 Constant: -0:246 0.000000 -0:246 0.000000 -0:246 0.000000 -0:247 move second child to first child ( temp highp 3-component vector of float) -0:247 specular2: direct index for structure ( global highp 3-component vector of float) -0:247 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:247 Constant: -0:247 2 (const int) -0:247 Constant: -0:247 0.000000 -0:247 0.000000 -0:247 0.000000 -0:248 move second child to first child ( temp highp float) -0:248 shadowStrength: direct index for structure ( global highp float) -0:248 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:248 Constant: -0:248 3 (const int) -0:248 Constant: -0:248 0.000000 -0:249 Branch: Break -0:251 Branch: Return with expression -0:251 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:254 Function Definition: TDLighting(vf3;vf3;vf3;f1;i1;vf3;vf3;f1;vf3;vf3;f1;f1; ( global void) -0:254 Function Parameters: -0:254 'diffuseContrib' ( inout highp 3-component vector of float) -0:254 'specularContrib' ( inout highp 3-component vector of float) -0:254 'specularContrib2' ( inout highp 3-component vector of float) -0:254 'shadowStrengthOut' ( inout highp float) -0:254 'index' ( in highp int) -0:254 'worldSpacePos' ( in highp 3-component vector of float) -0:254 'normal' ( in highp 3-component vector of float) -0:254 'shadowStrength' ( in highp float) -0:254 'shadowColor' ( in highp 3-component vector of float) -0:254 'camVector' ( in highp 3-component vector of float) -0:254 'shininess' ( in highp float) -0:254 'shininess2' ( in highp float) -0:? Sequence -0:257 switch -0:257 condition -0:257 'index' ( in highp int) -0:257 body -0:257 Sequence -0:259 default: -0:? Sequence -0:260 move second child to first child ( temp highp 3-component vector of float) -0:260 diffuse: direct index for structure ( global highp 3-component vector of float) -0:260 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:260 Constant: -0:260 0 (const int) -0:260 Constant: -0:260 0.000000 -0:260 0.000000 -0:260 0.000000 -0:261 move second child to first child ( temp highp 3-component vector of float) -0:261 specular: direct index for structure ( global highp 3-component vector of float) -0:261 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:261 Constant: -0:261 1 (const int) -0:261 Constant: -0:261 0.000000 -0:261 0.000000 -0:261 0.000000 -0:262 move second child to first child ( temp highp 3-component vector of float) -0:262 specular2: direct index for structure ( global highp 3-component vector of float) -0:262 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:262 Constant: -0:262 2 (const int) -0:262 Constant: -0:262 0.000000 -0:262 0.000000 -0:262 0.000000 -0:263 move second child to first child ( temp highp float) -0:263 shadowStrength: direct index for structure ( global highp float) -0:263 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:263 Constant: -0:263 3 (const int) -0:263 Constant: -0:263 0.000000 -0:264 Branch: Break -0:266 move second child to first child ( temp highp 3-component vector of float) -0:266 'diffuseContrib' ( inout highp 3-component vector of float) -0:266 diffuse: direct index for structure ( global highp 3-component vector of float) -0:266 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:266 Constant: -0:266 0 (const int) -0:267 move second child to first child ( temp highp 3-component vector of float) -0:267 'specularContrib' ( inout highp 3-component vector of float) -0:267 specular: direct index for structure ( global highp 3-component vector of float) -0:267 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:267 Constant: -0:267 1 (const int) -0:268 move second child to first child ( temp highp 3-component vector of float) -0:268 'specularContrib2' ( inout highp 3-component vector of float) -0:268 specular2: direct index for structure ( global highp 3-component vector of float) -0:268 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:268 Constant: -0:268 2 (const int) -0:269 move second child to first child ( temp highp float) -0:269 'shadowStrengthOut' ( inout highp float) -0:269 shadowStrength: direct index for structure ( global highp float) -0:269 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:269 Constant: -0:269 3 (const int) -0:272 Function Definition: TDLighting(vf3;vf3;vf3;i1;vf3;vf3;f1;vf3;vf3;f1;f1; ( global void) -0:272 Function Parameters: -0:272 'diffuseContrib' ( inout highp 3-component vector of float) -0:272 'specularContrib' ( inout highp 3-component vector of float) -0:272 'specularContrib2' ( inout highp 3-component vector of float) -0:272 'index' ( in highp int) -0:272 'worldSpacePos' ( in highp 3-component vector of float) -0:272 'normal' ( in highp 3-component vector of float) -0:272 'shadowStrength' ( in highp float) -0:272 'shadowColor' ( in highp 3-component vector of float) -0:272 'camVector' ( in highp 3-component vector of float) -0:272 'shininess' ( in highp float) -0:272 'shininess2' ( in highp float) -0:? Sequence -0:275 switch -0:275 condition -0:275 'index' ( in highp int) -0:275 body -0:275 Sequence -0:277 default: -0:? Sequence -0:278 move second child to first child ( temp highp 3-component vector of float) -0:278 diffuse: direct index for structure ( global highp 3-component vector of float) -0:278 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:278 Constant: -0:278 0 (const int) -0:278 Constant: -0:278 0.000000 -0:278 0.000000 -0:278 0.000000 -0:279 move second child to first child ( temp highp 3-component vector of float) -0:279 specular: direct index for structure ( global highp 3-component vector of float) -0:279 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:279 Constant: -0:279 1 (const int) -0:279 Constant: -0:279 0.000000 -0:279 0.000000 -0:279 0.000000 -0:280 move second child to first child ( temp highp 3-component vector of float) -0:280 specular2: direct index for structure ( global highp 3-component vector of float) -0:280 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:280 Constant: -0:280 2 (const int) -0:280 Constant: -0:280 0.000000 -0:280 0.000000 -0:280 0.000000 -0:281 move second child to first child ( temp highp float) -0:281 shadowStrength: direct index for structure ( global highp float) -0:281 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:281 Constant: -0:281 3 (const int) -0:281 Constant: -0:281 0.000000 -0:282 Branch: Break -0:284 move second child to first child ( temp highp 3-component vector of float) -0:284 'diffuseContrib' ( inout highp 3-component vector of float) -0:284 diffuse: direct index for structure ( global highp 3-component vector of float) -0:284 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:284 Constant: -0:284 0 (const int) -0:285 move second child to first child ( temp highp 3-component vector of float) -0:285 'specularContrib' ( inout highp 3-component vector of float) -0:285 specular: direct index for structure ( global highp 3-component vector of float) -0:285 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:285 Constant: -0:285 1 (const int) -0:286 move second child to first child ( temp highp 3-component vector of float) -0:286 'specularContrib2' ( inout highp 3-component vector of float) -0:286 specular2: direct index for structure ( global highp 3-component vector of float) -0:286 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:286 Constant: -0:286 2 (const int) -0:289 Function Definition: TDLighting(vf3;vf3;i1;vf3;vf3;f1;vf3;vf3;f1; ( global void) -0:289 Function Parameters: -0:289 'diffuseContrib' ( inout highp 3-component vector of float) -0:289 'specularContrib' ( inout highp 3-component vector of float) -0:289 'index' ( in highp int) -0:289 'worldSpacePos' ( in highp 3-component vector of float) -0:289 'normal' ( in highp 3-component vector of float) -0:289 'shadowStrength' ( in highp float) -0:289 'shadowColor' ( in highp 3-component vector of float) -0:289 'camVector' ( in highp 3-component vector of float) -0:289 'shininess' ( in highp float) -0:? Sequence -0:292 switch -0:292 condition -0:292 'index' ( in highp int) -0:292 body -0:292 Sequence -0:294 default: -0:? Sequence -0:295 move second child to first child ( temp highp 3-component vector of float) -0:295 diffuse: direct index for structure ( global highp 3-component vector of float) -0:295 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:295 Constant: -0:295 0 (const int) -0:295 Constant: -0:295 0.000000 -0:295 0.000000 -0:295 0.000000 -0:296 move second child to first child ( temp highp 3-component vector of float) -0:296 specular: direct index for structure ( global highp 3-component vector of float) -0:296 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:296 Constant: -0:296 1 (const int) -0:296 Constant: -0:296 0.000000 -0:296 0.000000 -0:296 0.000000 -0:297 move second child to first child ( temp highp 3-component vector of float) -0:297 specular2: direct index for structure ( global highp 3-component vector of float) -0:297 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:297 Constant: -0:297 2 (const int) -0:297 Constant: -0:297 0.000000 -0:297 0.000000 -0:297 0.000000 -0:298 move second child to first child ( temp highp float) -0:298 shadowStrength: direct index for structure ( global highp float) -0:298 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:298 Constant: -0:298 3 (const int) -0:298 Constant: -0:298 0.000000 -0:299 Branch: Break -0:301 move second child to first child ( temp highp 3-component vector of float) -0:301 'diffuseContrib' ( inout highp 3-component vector of float) -0:301 diffuse: direct index for structure ( global highp 3-component vector of float) -0:301 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:301 Constant: -0:301 0 (const int) -0:302 move second child to first child ( temp highp 3-component vector of float) -0:302 'specularContrib' ( inout highp 3-component vector of float) -0:302 specular: direct index for structure ( global highp 3-component vector of float) -0:302 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:302 Constant: -0:302 1 (const int) -0:305 Function Definition: TDLighting(vf3;vf3;vf3;i1;vf3;vf3;vf3;f1;f1; ( global void) -0:305 Function Parameters: -0:305 'diffuseContrib' ( inout highp 3-component vector of float) -0:305 'specularContrib' ( inout highp 3-component vector of float) -0:305 'specularContrib2' ( inout highp 3-component vector of float) -0:305 'index' ( in highp int) -0:305 'worldSpacePos' ( in highp 3-component vector of float) -0:305 'normal' ( in highp 3-component vector of float) -0:305 'camVector' ( in highp 3-component vector of float) -0:305 'shininess' ( in highp float) -0:305 'shininess2' ( in highp float) -0:? Sequence -0:308 switch -0:308 condition -0:308 'index' ( in highp int) -0:308 body -0:308 Sequence -0:310 default: -0:? Sequence -0:311 move second child to first child ( temp highp 3-component vector of float) -0:311 diffuse: direct index for structure ( global highp 3-component vector of float) -0:311 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:311 Constant: -0:311 0 (const int) -0:311 Constant: -0:311 0.000000 -0:311 0.000000 -0:311 0.000000 -0:312 move second child to first child ( temp highp 3-component vector of float) -0:312 specular: direct index for structure ( global highp 3-component vector of float) -0:312 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:312 Constant: -0:312 1 (const int) -0:312 Constant: -0:312 0.000000 -0:312 0.000000 -0:312 0.000000 -0:313 move second child to first child ( temp highp 3-component vector of float) -0:313 specular2: direct index for structure ( global highp 3-component vector of float) -0:313 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:313 Constant: -0:313 2 (const int) -0:313 Constant: -0:313 0.000000 -0:313 0.000000 -0:313 0.000000 -0:314 move second child to first child ( temp highp float) -0:314 shadowStrength: direct index for structure ( global highp float) -0:314 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:314 Constant: -0:314 3 (const int) -0:314 Constant: -0:314 0.000000 -0:315 Branch: Break -0:317 move second child to first child ( temp highp 3-component vector of float) -0:317 'diffuseContrib' ( inout highp 3-component vector of float) -0:317 diffuse: direct index for structure ( global highp 3-component vector of float) -0:317 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:317 Constant: -0:317 0 (const int) -0:318 move second child to first child ( temp highp 3-component vector of float) -0:318 'specularContrib' ( inout highp 3-component vector of float) -0:318 specular: direct index for structure ( global highp 3-component vector of float) -0:318 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:318 Constant: -0:318 1 (const int) -0:319 move second child to first child ( temp highp 3-component vector of float) -0:319 'specularContrib2' ( inout highp 3-component vector of float) -0:319 specular2: direct index for structure ( global highp 3-component vector of float) -0:319 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:319 Constant: -0:319 2 (const int) -0:322 Function Definition: TDLighting(vf3;vf3;i1;vf3;vf3;vf3;f1; ( global void) -0:322 Function Parameters: -0:322 'diffuseContrib' ( inout highp 3-component vector of float) -0:322 'specularContrib' ( inout highp 3-component vector of float) -0:322 'index' ( in highp int) -0:322 'worldSpacePos' ( in highp 3-component vector of float) -0:322 'normal' ( in highp 3-component vector of float) -0:322 'camVector' ( in highp 3-component vector of float) -0:322 'shininess' ( in highp float) -0:? Sequence -0:325 switch -0:325 condition -0:325 'index' ( in highp int) -0:325 body -0:325 Sequence -0:327 default: -0:? Sequence -0:328 move second child to first child ( temp highp 3-component vector of float) -0:328 diffuse: direct index for structure ( global highp 3-component vector of float) -0:328 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:328 Constant: -0:328 0 (const int) -0:328 Constant: -0:328 0.000000 -0:328 0.000000 -0:328 0.000000 -0:329 move second child to first child ( temp highp 3-component vector of float) -0:329 specular: direct index for structure ( global highp 3-component vector of float) -0:329 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:329 Constant: -0:329 1 (const int) -0:329 Constant: -0:329 0.000000 -0:329 0.000000 -0:329 0.000000 -0:330 move second child to first child ( temp highp 3-component vector of float) -0:330 specular2: direct index for structure ( global highp 3-component vector of float) -0:330 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:330 Constant: -0:330 2 (const int) -0:330 Constant: -0:330 0.000000 -0:330 0.000000 -0:330 0.000000 -0:331 move second child to first child ( temp highp float) -0:331 shadowStrength: direct index for structure ( global highp float) -0:331 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:331 Constant: -0:331 3 (const int) -0:331 Constant: -0:331 0.000000 -0:332 Branch: Break -0:334 move second child to first child ( temp highp 3-component vector of float) -0:334 'diffuseContrib' ( inout highp 3-component vector of float) -0:334 diffuse: direct index for structure ( global highp 3-component vector of float) -0:334 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:334 Constant: -0:334 0 (const int) -0:335 move second child to first child ( temp highp 3-component vector of float) -0:335 'specularContrib' ( inout highp 3-component vector of float) -0:335 specular: direct index for structure ( global highp 3-component vector of float) -0:335 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:335 Constant: -0:335 1 (const int) -0:338 Function Definition: TDLighting(vf3;i1;vf3;vf3; ( global void) -0:338 Function Parameters: -0:338 'diffuseContrib' ( inout highp 3-component vector of float) -0:338 'index' ( in highp int) -0:338 'worldSpacePos' ( in highp 3-component vector of float) -0:338 'normal' ( in highp 3-component vector of float) -0:? Sequence -0:341 switch -0:341 condition -0:341 'index' ( in highp int) -0:341 body -0:341 Sequence -0:343 default: -0:? Sequence -0:344 move second child to first child ( temp highp 3-component vector of float) -0:344 diffuse: direct index for structure ( global highp 3-component vector of float) -0:344 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:344 Constant: -0:344 0 (const int) -0:344 Constant: -0:344 0.000000 -0:344 0.000000 -0:344 0.000000 -0:345 move second child to first child ( temp highp 3-component vector of float) -0:345 specular: direct index for structure ( global highp 3-component vector of float) -0:345 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:345 Constant: -0:345 1 (const int) -0:345 Constant: -0:345 0.000000 -0:345 0.000000 -0:345 0.000000 -0:346 move second child to first child ( temp highp 3-component vector of float) -0:346 specular2: direct index for structure ( global highp 3-component vector of float) -0:346 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:346 Constant: -0:346 2 (const int) -0:346 Constant: -0:346 0.000000 -0:346 0.000000 -0:346 0.000000 -0:347 move second child to first child ( temp highp float) -0:347 shadowStrength: direct index for structure ( global highp float) -0:347 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:347 Constant: -0:347 3 (const int) -0:347 Constant: -0:347 0.000000 -0:348 Branch: Break -0:350 move second child to first child ( temp highp 3-component vector of float) -0:350 'diffuseContrib' ( inout highp 3-component vector of float) -0:350 diffuse: direct index for structure ( global highp 3-component vector of float) -0:350 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:350 Constant: -0:350 0 (const int) -0:353 Function Definition: TDLighting(vf3;i1;vf3;vf3;f1;vf3; ( global void) -0:353 Function Parameters: -0:353 'diffuseContrib' ( inout highp 3-component vector of float) -0:353 'index' ( in highp int) -0:353 'worldSpacePos' ( in highp 3-component vector of float) -0:353 'normal' ( in highp 3-component vector of float) -0:353 'shadowStrength' ( in highp float) -0:353 'shadowColor' ( in highp 3-component vector of float) -0:? Sequence -0:356 switch -0:356 condition -0:356 'index' ( in highp int) -0:356 body -0:356 Sequence -0:358 default: -0:? Sequence -0:359 move second child to first child ( temp highp 3-component vector of float) -0:359 diffuse: direct index for structure ( global highp 3-component vector of float) -0:359 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:359 Constant: -0:359 0 (const int) -0:359 Constant: -0:359 0.000000 -0:359 0.000000 -0:359 0.000000 -0:360 move second child to first child ( temp highp 3-component vector of float) -0:360 specular: direct index for structure ( global highp 3-component vector of float) -0:360 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:360 Constant: -0:360 1 (const int) -0:360 Constant: -0:360 0.000000 -0:360 0.000000 -0:360 0.000000 -0:361 move second child to first child ( temp highp 3-component vector of float) -0:361 specular2: direct index for structure ( global highp 3-component vector of float) -0:361 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:361 Constant: -0:361 2 (const int) -0:361 Constant: -0:361 0.000000 -0:361 0.000000 -0:361 0.000000 -0:362 move second child to first child ( temp highp float) -0:362 shadowStrength: direct index for structure ( global highp float) -0:362 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:362 Constant: -0:362 3 (const int) -0:362 Constant: -0:362 0.000000 -0:363 Branch: Break -0:365 move second child to first child ( temp highp 3-component vector of float) -0:365 'diffuseContrib' ( inout highp 3-component vector of float) -0:365 diffuse: direct index for structure ( global highp 3-component vector of float) -0:365 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:365 Constant: -0:365 0 (const int) -0:367 Function Definition: TDProjMap(i1;vf3;vf4; ( global highp 4-component vector of float) -0:367 Function Parameters: -0:367 'index' ( in highp int) -0:367 'worldSpacePos' ( in highp 3-component vector of float) -0:367 'defaultColor' ( in highp 4-component vector of float) -0:368 Sequence -0:368 switch -0:368 condition -0:368 'index' ( in highp int) -0:368 body -0:368 Sequence -0:370 default: -0:? Sequence -0:370 Branch: Return with expression -0:370 'defaultColor' ( in highp 4-component vector of float) -0:373 Function Definition: TDFog(vf4;vf3;i1; ( global highp 4-component vector of float) -0:373 Function Parameters: -0:373 'color' ( in highp 4-component vector of float) -0:373 'lightingSpacePosition' ( in highp 3-component vector of float) -0:373 'cameraIndex' ( in highp int) -0:374 Sequence -0:374 switch -0:374 condition -0:374 'cameraIndex' ( in highp int) -0:374 body -0:374 Sequence -0:375 default: -0:376 case: with expression -0:376 Constant: -0:376 0 (const int) -0:? Sequence -0:378 Sequence -0:378 Branch: Return with expression -0:378 'color' ( in highp 4-component vector of float) -0:382 Function Definition: TDFog(vf4;vf3; ( global highp 4-component vector of float) -0:382 Function Parameters: -0:382 'color' ( in highp 4-component vector of float) -0:382 'lightingSpacePosition' ( in highp 3-component vector of float) -0:384 Sequence -0:384 Branch: Return with expression -0:384 Function Call: TDFog(vf4;vf3;i1; ( global highp 4-component vector of float) -0:384 'color' ( in highp 4-component vector of float) -0:384 'lightingSpacePosition' ( in highp 3-component vector of float) -0:384 Constant: -0:384 0 (const int) -0:386 Function Definition: TDInstanceTexCoord(i1;vf3; ( global highp 3-component vector of float) -0:386 Function Parameters: -0:386 'index' ( in highp int) -0:386 't' ( in highp 3-component vector of float) -0:? Sequence -0:388 Sequence -0:388 move second child to first child ( temp highp int) -0:388 'coord' ( temp highp int) -0:388 'index' ( in highp int) -0:389 Sequence -0:389 move second child to first child ( temp highp 4-component vector of float) -0:389 'samp' ( temp highp 4-component vector of float) -0:389 textureFetch ( global highp 4-component vector of float) -0:389 'sTDInstanceTexCoord' (layout( binding=16) uniform highp samplerBuffer) -0:389 'coord' ( temp highp int) -0:390 move second child to first child ( temp highp float) -0:390 direct index ( temp highp float) -0:390 'v' ( temp highp 3-component vector of float) -0:390 Constant: -0:390 0 (const int) -0:390 direct index ( temp highp float) -0:390 't' ( in highp 3-component vector of float) -0:390 Constant: -0:390 0 (const int) -0:391 move second child to first child ( temp highp float) -0:391 direct index ( temp highp float) -0:391 'v' ( temp highp 3-component vector of float) -0:391 Constant: -0:391 1 (const int) -0:391 direct index ( temp highp float) -0:391 't' ( in highp 3-component vector of float) -0:391 Constant: -0:391 1 (const int) -0:392 move second child to first child ( temp highp float) -0:392 direct index ( temp highp float) -0:392 'v' ( temp highp 3-component vector of float) -0:392 Constant: -0:392 2 (const int) -0:392 direct index ( temp highp float) -0:392 'samp' ( temp highp 4-component vector of float) -0:392 Constant: -0:392 0 (const int) -0:393 move second child to first child ( temp highp 3-component vector of float) -0:393 vector swizzle ( temp highp 3-component vector of float) -0:393 't' ( in highp 3-component vector of float) -0:393 Sequence -0:393 Constant: -0:393 0 (const int) -0:393 Constant: -0:393 1 (const int) -0:393 Constant: -0:393 2 (const int) -0:393 vector swizzle ( temp highp 3-component vector of float) -0:393 'v' ( temp highp 3-component vector of float) -0:393 Sequence -0:393 Constant: -0:393 0 (const int) -0:393 Constant: -0:393 1 (const int) -0:393 Constant: -0:393 2 (const int) -0:394 Branch: Return with expression -0:394 't' ( in highp 3-component vector of float) -0:396 Function Definition: TDInstanceActive(i1; ( global bool) -0:396 Function Parameters: -0:396 'index' ( in highp int) -0:397 Sequence -0:397 subtract second child into first child ( temp highp int) -0:397 'index' ( in highp int) -0:397 uTDInstanceIDOffset: direct index for structure ( uniform highp int) -0:397 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal}) -0:397 Constant: -0:397 0 (const uint) -0:399 Sequence -0:399 move second child to first child ( temp highp int) -0:399 'coord' ( temp highp int) -0:399 'index' ( in highp int) -0:400 Sequence -0:400 move second child to first child ( temp highp 4-component vector of float) -0:400 'samp' ( temp highp 4-component vector of float) -0:400 textureFetch ( global highp 4-component vector of float) -0:400 'sTDInstanceT' (layout( binding=15) uniform highp samplerBuffer) -0:400 'coord' ( temp highp int) -0:401 move second child to first child ( temp highp float) -0:401 'v' ( temp highp float) -0:401 direct index ( temp highp float) -0:401 'samp' ( temp highp 4-component vector of float) -0:401 Constant: -0:401 0 (const int) -0:402 Branch: Return with expression -0:402 Compare Not Equal ( temp bool) -0:402 'v' ( temp highp float) -0:402 Constant: -0:402 0.000000 -0:404 Function Definition: iTDInstanceTranslate(i1;b1; ( global highp 3-component vector of float) -0:404 Function Parameters: -0:404 'index' ( in highp int) -0:404 'instanceActive' ( out bool) -0:405 Sequence -0:405 Sequence -0:405 move second child to first child ( temp highp int) -0:405 'origIndex' ( temp highp int) -0:405 'index' ( in highp int) -0:406 subtract second child into first child ( temp highp int) -0:406 'index' ( in highp int) -0:406 uTDInstanceIDOffset: direct index for structure ( uniform highp int) -0:406 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal}) -0:406 Constant: -0:406 0 (const uint) -0:408 Sequence -0:408 move second child to first child ( temp highp int) -0:408 'coord' ( temp highp int) -0:408 'index' ( in highp int) -0:409 Sequence -0:409 move second child to first child ( temp highp 4-component vector of float) -0:409 'samp' ( temp highp 4-component vector of float) -0:409 textureFetch ( global highp 4-component vector of float) -0:409 'sTDInstanceT' (layout( binding=15) uniform highp samplerBuffer) -0:409 'coord' ( temp highp int) -0:410 move second child to first child ( temp highp float) -0:410 direct index ( temp highp float) -0:410 'v' ( temp highp 3-component vector of float) -0:410 Constant: -0:410 0 (const int) -0:410 direct index ( temp highp float) -0:410 'samp' ( temp highp 4-component vector of float) -0:410 Constant: -0:410 1 (const int) -0:411 move second child to first child ( temp highp float) -0:411 direct index ( temp highp float) -0:411 'v' ( temp highp 3-component vector of float) -0:411 Constant: -0:411 1 (const int) -0:411 direct index ( temp highp float) -0:411 'samp' ( temp highp 4-component vector of float) -0:411 Constant: -0:411 2 (const int) -0:412 move second child to first child ( temp highp float) -0:412 direct index ( temp highp float) -0:412 'v' ( temp highp 3-component vector of float) -0:412 Constant: -0:412 2 (const int) -0:412 direct index ( temp highp float) -0:412 'samp' ( temp highp 4-component vector of float) -0:412 Constant: -0:412 3 (const int) -0:413 move second child to first child ( temp bool) -0:413 'instanceActive' ( out bool) -0:413 Compare Not Equal ( temp bool) -0:413 direct index ( temp highp float) -0:413 'samp' ( temp highp 4-component vector of float) -0:413 Constant: -0:413 0 (const int) -0:413 Constant: -0:413 0.000000 -0:414 Branch: Return with expression -0:414 'v' ( temp highp 3-component vector of float) -0:416 Function Definition: TDInstanceTranslate(i1; ( global highp 3-component vector of float) -0:416 Function Parameters: -0:416 'index' ( in highp int) -0:417 Sequence -0:417 subtract second child into first child ( temp highp int) -0:417 'index' ( in highp int) -0:417 uTDInstanceIDOffset: direct index for structure ( uniform highp int) -0:417 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal}) -0:417 Constant: -0:417 0 (const uint) -0:419 Sequence -0:419 move second child to first child ( temp highp int) -0:419 'coord' ( temp highp int) -0:419 'index' ( in highp int) -0:420 Sequence -0:420 move second child to first child ( temp highp 4-component vector of float) -0:420 'samp' ( temp highp 4-component vector of float) -0:420 textureFetch ( global highp 4-component vector of float) -0:420 'sTDInstanceT' (layout( binding=15) uniform highp samplerBuffer) -0:420 'coord' ( temp highp int) -0:421 move second child to first child ( temp highp float) -0:421 direct index ( temp highp float) -0:421 'v' ( temp highp 3-component vector of float) -0:421 Constant: -0:421 0 (const int) -0:421 direct index ( temp highp float) -0:421 'samp' ( temp highp 4-component vector of float) -0:421 Constant: -0:421 1 (const int) -0:422 move second child to first child ( temp highp float) -0:422 direct index ( temp highp float) -0:422 'v' ( temp highp 3-component vector of float) -0:422 Constant: -0:422 1 (const int) -0:422 direct index ( temp highp float) -0:422 'samp' ( temp highp 4-component vector of float) -0:422 Constant: -0:422 2 (const int) -0:423 move second child to first child ( temp highp float) -0:423 direct index ( temp highp float) -0:423 'v' ( temp highp 3-component vector of float) -0:423 Constant: -0:423 2 (const int) -0:423 direct index ( temp highp float) -0:423 'samp' ( temp highp 4-component vector of float) -0:423 Constant: -0:423 3 (const int) -0:424 Branch: Return with expression -0:424 'v' ( temp highp 3-component vector of float) -0:426 Function Definition: TDInstanceRotateMat(i1; ( global highp 3X3 matrix of float) -0:426 Function Parameters: -0:426 'index' ( in highp int) -0:427 Sequence -0:427 subtract second child into first child ( temp highp int) -0:427 'index' ( in highp int) -0:427 uTDInstanceIDOffset: direct index for structure ( uniform highp int) -0:427 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal}) -0:427 Constant: -0:427 0 (const uint) -0:428 Sequence -0:428 move second child to first child ( temp highp 3-component vector of float) -0:428 'v' ( temp highp 3-component vector of float) -0:428 Constant: -0:428 0.000000 -0:428 0.000000 -0:428 0.000000 -0:429 Sequence -0:429 move second child to first child ( temp highp 3X3 matrix of float) -0:429 'm' ( temp highp 3X3 matrix of float) -0:429 Constant: -0:429 1.000000 -0:429 0.000000 -0:429 0.000000 -0:429 0.000000 -0:429 1.000000 -0:429 0.000000 -0:429 0.000000 -0:429 0.000000 -0:429 1.000000 -0:433 Branch: Return with expression -0:433 'm' ( temp highp 3X3 matrix of float) -0:435 Function Definition: TDInstanceScale(i1; ( global highp 3-component vector of float) -0:435 Function Parameters: -0:435 'index' ( in highp int) -0:436 Sequence -0:436 subtract second child into first child ( temp highp int) -0:436 'index' ( in highp int) -0:436 uTDInstanceIDOffset: direct index for structure ( uniform highp int) -0:436 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal}) -0:436 Constant: -0:436 0 (const uint) -0:437 Sequence -0:437 move second child to first child ( temp highp 3-component vector of float) -0:437 'v' ( temp highp 3-component vector of float) -0:437 Constant: -0:437 1.000000 -0:437 1.000000 -0:437 1.000000 -0:438 Branch: Return with expression -0:438 'v' ( temp highp 3-component vector of float) -0:440 Function Definition: TDInstancePivot(i1; ( global highp 3-component vector of float) -0:440 Function Parameters: -0:440 'index' ( in highp int) -0:441 Sequence -0:441 subtract second child into first child ( temp highp int) -0:441 'index' ( in highp int) -0:441 uTDInstanceIDOffset: direct index for structure ( uniform highp int) -0:441 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal}) -0:441 Constant: -0:441 0 (const uint) -0:442 Sequence -0:442 move second child to first child ( temp highp 3-component vector of float) -0:442 'v' ( temp highp 3-component vector of float) -0:442 Constant: -0:442 0.000000 -0:442 0.000000 -0:442 0.000000 -0:443 Branch: Return with expression -0:443 'v' ( temp highp 3-component vector of float) -0:445 Function Definition: TDInstanceRotTo(i1; ( global highp 3-component vector of float) -0:445 Function Parameters: -0:445 'index' ( in highp int) -0:446 Sequence -0:446 subtract second child into first child ( temp highp int) -0:446 'index' ( in highp int) -0:446 uTDInstanceIDOffset: direct index for structure ( uniform highp int) -0:446 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal}) -0:446 Constant: -0:446 0 (const uint) -0:447 Sequence -0:447 move second child to first child ( temp highp 3-component vector of float) -0:447 'v' ( temp highp 3-component vector of float) -0:447 Constant: -0:447 0.000000 -0:447 0.000000 -0:447 1.000000 -0:448 Branch: Return with expression -0:448 'v' ( temp highp 3-component vector of float) -0:450 Function Definition: TDInstanceRotUp(i1; ( global highp 3-component vector of float) -0:450 Function Parameters: -0:450 'index' ( in highp int) -0:451 Sequence -0:451 subtract second child into first child ( temp highp int) -0:451 'index' ( in highp int) -0:451 uTDInstanceIDOffset: direct index for structure ( uniform highp int) -0:451 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal}) -0:451 Constant: -0:451 0 (const uint) -0:452 Sequence -0:452 move second child to first child ( temp highp 3-component vector of float) -0:452 'v' ( temp highp 3-component vector of float) -0:452 Constant: -0:452 0.000000 -0:452 1.000000 -0:452 0.000000 -0:453 Branch: Return with expression -0:453 'v' ( temp highp 3-component vector of float) -0:455 Function Definition: TDInstanceMat(i1; ( global highp 4X4 matrix of float) -0:455 Function Parameters: -0:455 'id' ( in highp int) -0:456 Sequence -0:456 Sequence -0:456 move second child to first child ( temp bool) -0:456 'instanceActive' ( temp bool) -0:456 Constant: -0:456 true (const bool) -0:457 Sequence -0:457 move second child to first child ( temp highp 3-component vector of float) -0:457 't' ( temp highp 3-component vector of float) -0:457 Function Call: iTDInstanceTranslate(i1;b1; ( global highp 3-component vector of float) -0:457 'id' ( in highp int) -0:457 'instanceActive' ( temp bool) -0:458 Test condition and select ( temp void) -0:458 Condition -0:458 Negate conditional ( temp bool) -0:458 'instanceActive' ( temp bool) -0:458 true case -0:460 Sequence -0:460 Branch: Return with expression -0:460 Constant: -0:460 0.000000 -0:460 0.000000 -0:460 0.000000 -0:460 0.000000 -0:460 0.000000 -0:460 0.000000 -0:460 0.000000 -0:460 0.000000 -0:460 0.000000 -0:460 0.000000 -0:460 0.000000 -0:460 0.000000 -0:460 0.000000 -0:460 0.000000 -0:460 0.000000 -0:460 0.000000 -0:462 Sequence -0:462 move second child to first child ( temp highp 4X4 matrix of float) -0:462 'm' ( temp highp 4X4 matrix of float) -0:462 Constant: -0:462 1.000000 -0:462 0.000000 -0:462 0.000000 -0:462 0.000000 -0:462 0.000000 -0:462 1.000000 -0:462 0.000000 -0:462 0.000000 -0:462 0.000000 -0:462 0.000000 -0:462 1.000000 -0:462 0.000000 -0:462 0.000000 -0:462 0.000000 -0:462 0.000000 -0:462 1.000000 -0:464 Sequence -0:464 Sequence -0:464 move second child to first child ( temp highp 3-component vector of float) -0:464 'tt' ( temp highp 3-component vector of float) -0:464 't' ( temp highp 3-component vector of float) -0:465 add second child into first child ( temp highp float) -0:465 direct index ( temp highp float) -0:465 direct index ( temp highp 4-component vector of float) -0:465 'm' ( temp highp 4X4 matrix of float) -0:465 Constant: -0:465 3 (const int) -0:465 Constant: -0:465 0 (const int) -0:465 component-wise multiply ( temp highp float) -0:465 direct index ( temp highp float) -0:465 direct index ( temp highp 4-component vector of float) -0:465 'm' ( temp highp 4X4 matrix of float) -0:465 Constant: -0:465 0 (const int) -0:465 Constant: -0:465 0 (const int) -0:465 direct index ( temp highp float) -0:465 'tt' ( temp highp 3-component vector of float) -0:465 Constant: -0:465 0 (const int) -0:466 add second child into first child ( temp highp float) -0:466 direct index ( temp highp float) -0:466 direct index ( temp highp 4-component vector of float) -0:466 'm' ( temp highp 4X4 matrix of float) -0:466 Constant: -0:466 3 (const int) -0:466 Constant: -0:466 1 (const int) -0:466 component-wise multiply ( temp highp float) -0:466 direct index ( temp highp float) -0:466 direct index ( temp highp 4-component vector of float) -0:466 'm' ( temp highp 4X4 matrix of float) -0:466 Constant: -0:466 0 (const int) -0:466 Constant: -0:466 1 (const int) -0:466 direct index ( temp highp float) -0:466 'tt' ( temp highp 3-component vector of float) -0:466 Constant: -0:466 0 (const int) -0:467 add second child into first child ( temp highp float) -0:467 direct index ( temp highp float) -0:467 direct index ( temp highp 4-component vector of float) -0:467 'm' ( temp highp 4X4 matrix of float) -0:467 Constant: -0:467 3 (const int) -0:467 Constant: -0:467 2 (const int) -0:467 component-wise multiply ( temp highp float) -0:467 direct index ( temp highp float) -0:467 direct index ( temp highp 4-component vector of float) -0:467 'm' ( temp highp 4X4 matrix of float) -0:467 Constant: -0:467 0 (const int) -0:467 Constant: -0:467 2 (const int) -0:467 direct index ( temp highp float) -0:467 'tt' ( temp highp 3-component vector of float) -0:467 Constant: -0:467 0 (const int) -0:468 add second child into first child ( temp highp float) -0:468 direct index ( temp highp float) -0:468 direct index ( temp highp 4-component vector of float) -0:468 'm' ( temp highp 4X4 matrix of float) -0:468 Constant: -0:468 3 (const int) -0:468 Constant: -0:468 3 (const int) -0:468 component-wise multiply ( temp highp float) -0:468 direct index ( temp highp float) -0:468 direct index ( temp highp 4-component vector of float) -0:468 'm' ( temp highp 4X4 matrix of float) -0:468 Constant: -0:468 0 (const int) -0:468 Constant: -0:468 3 (const int) -0:468 direct index ( temp highp float) -0:468 'tt' ( temp highp 3-component vector of float) -0:468 Constant: -0:468 0 (const int) -0:469 add second child into first child ( temp highp float) -0:469 direct index ( temp highp float) -0:469 direct index ( temp highp 4-component vector of float) -0:469 'm' ( temp highp 4X4 matrix of float) -0:469 Constant: -0:469 3 (const int) -0:469 Constant: -0:469 0 (const int) -0:469 component-wise multiply ( temp highp float) -0:469 direct index ( temp highp float) -0:469 direct index ( temp highp 4-component vector of float) -0:469 'm' ( temp highp 4X4 matrix of float) -0:469 Constant: -0:469 1 (const int) -0:469 Constant: -0:469 0 (const int) -0:469 direct index ( temp highp float) -0:469 'tt' ( temp highp 3-component vector of float) -0:469 Constant: -0:469 1 (const int) -0:470 add second child into first child ( temp highp float) -0:470 direct index ( temp highp float) -0:470 direct index ( temp highp 4-component vector of float) -0:470 'm' ( temp highp 4X4 matrix of float) -0:470 Constant: -0:470 3 (const int) -0:470 Constant: -0:470 1 (const int) -0:470 component-wise multiply ( temp highp float) -0:470 direct index ( temp highp float) -0:470 direct index ( temp highp 4-component vector of float) -0:470 'm' ( temp highp 4X4 matrix of float) -0:470 Constant: -0:470 1 (const int) -0:470 Constant: -0:470 1 (const int) -0:470 direct index ( temp highp float) -0:470 'tt' ( temp highp 3-component vector of float) -0:470 Constant: -0:470 1 (const int) -0:471 add second child into first child ( temp highp float) -0:471 direct index ( temp highp float) -0:471 direct index ( temp highp 4-component vector of float) -0:471 'm' ( temp highp 4X4 matrix of float) -0:471 Constant: -0:471 3 (const int) -0:471 Constant: -0:471 2 (const int) -0:471 component-wise multiply ( temp highp float) -0:471 direct index ( temp highp float) -0:471 direct index ( temp highp 4-component vector of float) -0:471 'm' ( temp highp 4X4 matrix of float) -0:471 Constant: -0:471 1 (const int) -0:471 Constant: -0:471 2 (const int) -0:471 direct index ( temp highp float) -0:471 'tt' ( temp highp 3-component vector of float) -0:471 Constant: -0:471 1 (const int) -0:472 add second child into first child ( temp highp float) -0:472 direct index ( temp highp float) -0:472 direct index ( temp highp 4-component vector of float) -0:472 'm' ( temp highp 4X4 matrix of float) -0:472 Constant: -0:472 3 (const int) -0:472 Constant: -0:472 3 (const int) -0:472 component-wise multiply ( temp highp float) -0:472 direct index ( temp highp float) -0:472 direct index ( temp highp 4-component vector of float) -0:472 'm' ( temp highp 4X4 matrix of float) -0:472 Constant: -0:472 1 (const int) -0:472 Constant: -0:472 3 (const int) -0:472 direct index ( temp highp float) -0:472 'tt' ( temp highp 3-component vector of float) -0:472 Constant: -0:472 1 (const int) -0:473 add second child into first child ( temp highp float) -0:473 direct index ( temp highp float) -0:473 direct index ( temp highp 4-component vector of float) -0:473 'm' ( temp highp 4X4 matrix of float) -0:473 Constant: -0:473 3 (const int) -0:473 Constant: -0:473 0 (const int) -0:473 component-wise multiply ( temp highp float) -0:473 direct index ( temp highp float) -0:473 direct index ( temp highp 4-component vector of float) -0:473 'm' ( temp highp 4X4 matrix of float) -0:473 Constant: -0:473 2 (const int) -0:473 Constant: -0:473 0 (const int) -0:473 direct index ( temp highp float) -0:473 'tt' ( temp highp 3-component vector of float) -0:473 Constant: -0:473 2 (const int) -0:474 add second child into first child ( temp highp float) -0:474 direct index ( temp highp float) -0:474 direct index ( temp highp 4-component vector of float) -0:474 'm' ( temp highp 4X4 matrix of float) -0:474 Constant: -0:474 3 (const int) -0:474 Constant: -0:474 1 (const int) -0:474 component-wise multiply ( temp highp float) -0:474 direct index ( temp highp float) -0:474 direct index ( temp highp 4-component vector of float) -0:474 'm' ( temp highp 4X4 matrix of float) -0:474 Constant: -0:474 2 (const int) -0:474 Constant: -0:474 1 (const int) -0:474 direct index ( temp highp float) -0:474 'tt' ( temp highp 3-component vector of float) -0:474 Constant: -0:474 2 (const int) -0:475 add second child into first child ( temp highp float) -0:475 direct index ( temp highp float) -0:475 direct index ( temp highp 4-component vector of float) -0:475 'm' ( temp highp 4X4 matrix of float) -0:475 Constant: -0:475 3 (const int) -0:475 Constant: -0:475 2 (const int) -0:475 component-wise multiply ( temp highp float) -0:475 direct index ( temp highp float) -0:475 direct index ( temp highp 4-component vector of float) -0:475 'm' ( temp highp 4X4 matrix of float) -0:475 Constant: -0:475 2 (const int) -0:475 Constant: -0:475 2 (const int) -0:475 direct index ( temp highp float) -0:475 'tt' ( temp highp 3-component vector of float) -0:475 Constant: -0:475 2 (const int) -0:476 add second child into first child ( temp highp float) -0:476 direct index ( temp highp float) -0:476 direct index ( temp highp 4-component vector of float) -0:476 'm' ( temp highp 4X4 matrix of float) -0:476 Constant: -0:476 3 (const int) -0:476 Constant: -0:476 3 (const int) -0:476 component-wise multiply ( temp highp float) -0:476 direct index ( temp highp float) -0:476 direct index ( temp highp 4-component vector of float) -0:476 'm' ( temp highp 4X4 matrix of float) -0:476 Constant: -0:476 2 (const int) -0:476 Constant: -0:476 3 (const int) -0:476 direct index ( temp highp float) -0:476 'tt' ( temp highp 3-component vector of float) -0:476 Constant: -0:476 2 (const int) -0:478 Branch: Return with expression -0:478 'm' ( temp highp 4X4 matrix of float) -0:480 Function Definition: TDInstanceMat3(i1; ( global highp 3X3 matrix of float) -0:480 Function Parameters: -0:480 'id' ( in highp int) -0:481 Sequence -0:481 Sequence -0:481 move second child to first child ( temp highp 3X3 matrix of float) -0:481 'm' ( temp highp 3X3 matrix of float) -0:481 Constant: -0:481 1.000000 -0:481 0.000000 -0:481 0.000000 -0:481 0.000000 -0:481 1.000000 -0:481 0.000000 -0:481 0.000000 -0:481 0.000000 -0:481 1.000000 -0:482 Branch: Return with expression -0:482 'm' ( temp highp 3X3 matrix of float) -0:484 Function Definition: TDInstanceMat3ForNorm(i1; ( global highp 3X3 matrix of float) -0:484 Function Parameters: -0:484 'id' ( in highp int) -0:485 Sequence -0:485 Sequence -0:485 move second child to first child ( temp highp 3X3 matrix of float) -0:485 'm' ( temp highp 3X3 matrix of float) -0:485 Function Call: TDInstanceMat3(i1; ( global highp 3X3 matrix of float) -0:485 'id' ( in highp int) -0:486 Branch: Return with expression -0:486 'm' ( temp highp 3X3 matrix of float) -0:488 Function Definition: TDInstanceColor(i1;vf4; ( global highp 4-component vector of float) -0:488 Function Parameters: -0:488 'index' ( in highp int) -0:488 'curColor' ( in highp 4-component vector of float) -0:489 Sequence -0:489 subtract second child into first child ( temp highp int) -0:489 'index' ( in highp int) -0:489 uTDInstanceIDOffset: direct index for structure ( uniform highp int) -0:489 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal}) -0:489 Constant: -0:489 0 (const uint) -0:491 Sequence -0:491 move second child to first child ( temp highp int) -0:491 'coord' ( temp highp int) -0:491 'index' ( in highp int) -0:492 Sequence -0:492 move second child to first child ( temp highp 4-component vector of float) -0:492 'samp' ( temp highp 4-component vector of float) -0:492 textureFetch ( global highp 4-component vector of float) -0:492 'sTDInstanceColor' (layout( binding=17) uniform highp samplerBuffer) -0:492 'coord' ( temp highp int) -0:493 move second child to first child ( temp highp float) -0:493 direct index ( temp highp float) -0:493 'v' ( temp highp 4-component vector of float) -0:493 Constant: -0:493 0 (const int) -0:493 direct index ( temp highp float) -0:493 'samp' ( temp highp 4-component vector of float) -0:493 Constant: -0:493 0 (const int) -0:494 move second child to first child ( temp highp float) -0:494 direct index ( temp highp float) -0:494 'v' ( temp highp 4-component vector of float) -0:494 Constant: -0:494 1 (const int) -0:494 direct index ( temp highp float) -0:494 'samp' ( temp highp 4-component vector of float) -0:494 Constant: -0:494 1 (const int) -0:495 move second child to first child ( temp highp float) -0:495 direct index ( temp highp float) -0:495 'v' ( temp highp 4-component vector of float) -0:495 Constant: -0:495 2 (const int) -0:495 direct index ( temp highp float) -0:495 'samp' ( temp highp 4-component vector of float) -0:495 Constant: -0:495 2 (const int) -0:496 move second child to first child ( temp highp float) -0:496 direct index ( temp highp float) -0:496 'v' ( temp highp 4-component vector of float) -0:496 Constant: -0:496 3 (const int) -0:496 Constant: -0:496 1.000000 -0:497 move second child to first child ( temp highp float) -0:497 direct index ( temp highp float) -0:497 'curColor' ( in highp 4-component vector of float) -0:497 Constant: -0:497 0 (const int) -0:497 direct index ( temp highp float) -0:497 'v' ( temp highp 4-component vector of float) -0:497 Constant: -0:497 0 (const int) -0:499 move second child to first child ( temp highp float) -0:499 direct index ( temp highp float) -0:499 'curColor' ( in highp 4-component vector of float) -0:499 Constant: -0:499 1 (const int) -0:499 direct index ( temp highp float) -0:499 'v' ( temp highp 4-component vector of float) -0:499 Constant: -0:499 1 (const int) -0:501 move second child to first child ( temp highp float) -0:501 direct index ( temp highp float) -0:501 'curColor' ( in highp 4-component vector of float) -0:501 Constant: -0:501 2 (const int) -0:501 direct index ( temp highp float) -0:501 'v' ( temp highp 4-component vector of float) -0:501 Constant: -0:501 2 (const int) -0:503 Branch: Return with expression -0:503 'curColor' ( in highp 4-component vector of float) -0:? Linker Objects -0:? 'sTDNoiseMap' ( uniform highp sampler2D) -0:? 'sTDSineLookup' ( uniform highp sampler1D) -0:? 'sTDWhite2D' ( uniform highp sampler2D) -0:? 'sTDWhite3D' ( uniform highp sampler3D) -0:? 'sTDWhite2DArray' ( uniform highp sampler2DArray) -0:? 'sTDWhiteCube' ( uniform highp samplerCube) -0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal}) -0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 1-element array of structure{ global highp 4-component vector of float position, global highp 3-component vector of float direction, global highp 3-component vector of float diffuse, global highp 4-component vector of float nearFar, global highp 4-component vector of float lightSize, global highp 4-component vector of float misc, global highp 4-component vector of float coneLookupScaleBias, global highp 4-component vector of float attenScaleBiasRoll, layout( column_major std140) global highp 4X4 matrix of float shadowMapMatrix, layout( column_major std140) global highp 4X4 matrix of float shadowMapCamMatrix, global highp 4-component vector of float shadowMapRes, layout( column_major std140) global highp 4X4 matrix of float projMapMatrix} uTDLights}) -0:? 'anon@2' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 1-element array of structure{ global highp 3-component vector of float color, layout( column_major std140) global highp 3X3 matrix of float rotate} uTDEnvLights}) -0:? 'uTDEnvLightBuffers' (layout( column_major std430) restrict readonly buffer 1-element array of block{layout( column_major std430 offset=0) restrict readonly buffer 9-element array of highp 3-component vector of float shCoeffs}) -0:? 'anon@3' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 1-element array of structure{layout( column_major std140) global highp 4X4 matrix of float world, layout( column_major std140) global highp 4X4 matrix of float worldInverse, layout( column_major std140) global highp 4X4 matrix of float worldCam, layout( column_major std140) global highp 4X4 matrix of float worldCamInverse, layout( column_major std140) global highp 4X4 matrix of float cam, layout( column_major std140) global highp 4X4 matrix of float camInverse, layout( column_major std140) global highp 4X4 matrix of float camProj, layout( column_major std140) global highp 4X4 matrix of float camProjInverse, layout( column_major std140) global highp 4X4 matrix of float proj, layout( column_major std140) global highp 4X4 matrix of float projInverse, layout( column_major std140) global highp 4X4 matrix of float worldCamProj, layout( column_major std140) global highp 4X4 matrix of float worldCamProjInverse, layout( column_major std140) global highp 4X4 matrix of float quadReproject, layout( column_major std140) global highp 3X3 matrix of float worldForNormals, layout( column_major std140) global highp 3X3 matrix of float camForNormals, layout( column_major std140) global highp 3X3 matrix of float worldCamForNormals} uTDMats}) -0:? 'anon@4' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 1-element array of structure{ global highp 4-component vector of float nearFar, global highp 4-component vector of float fog, global highp 4-component vector of float fogColor, global highp int renderTOPCameraIndex} uTDCamInfos}) -0:? 'anon@5' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform structure{ global highp 4-component vector of float ambientColor, global highp 4-component vector of float nearFar, global highp 4-component vector of float viewport, global highp 4-component vector of float viewportRes, global highp 4-component vector of float fog, global highp 4-component vector of float fogColor} uTDGeneral}) -0:? 'sTDInstanceT' (layout( binding=15) uniform highp samplerBuffer) -0:? 'sTDInstanceTexCoord' (layout( binding=16) uniform highp samplerBuffer) -0:? 'sTDInstanceColor' (layout( binding=17) uniform highp samplerBuffer) - -vk.relaxed.stagelink.0.2.frag -Shader version: 460 -gl_FragCoord origin is upper left -0:? Sequence -0:2 Function Definition: TDOutputSwizzle(vf4; ( global highp 4-component vector of float) -0:2 Function Parameters: -0:2 'c' ( in highp 4-component vector of float) -0:4 Sequence -0:4 Branch: Return with expression -0:4 vector swizzle ( temp highp 4-component vector of float) -0:4 'c' ( in highp 4-component vector of float) -0:4 Sequence -0:4 Constant: -0:4 0 (const int) -0:4 Constant: -0:4 1 (const int) -0:4 Constant: -0:4 2 (const int) -0:4 Constant: -0:4 3 (const int) -0:6 Function Definition: TDOutputSwizzle(vu4; ( global highp 4-component vector of uint) -0:6 Function Parameters: -0:6 'c' ( in highp 4-component vector of uint) -0:8 Sequence -0:8 Branch: Return with expression -0:8 vector swizzle ( temp highp 4-component vector of uint) -0:8 'c' ( in highp 4-component vector of uint) -0:8 Sequence -0:8 Constant: -0:8 0 (const int) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 3 (const int) -0:? Linker Objects - - -Linked vertex stage: - - -Linked fragment stage: - - -Shader version: 460 -0:? Sequence -0:11 Function Definition: main( ( global void) -0:11 Function Parameters: -0:15 Sequence -0:15 Sequence -0:15 Sequence -0:15 move second child to first child ( temp highp 3-component vector of float) -0:15 'texcoord' ( temp highp 3-component vector of float) -0:15 Function Call: TDInstanceTexCoord(vf3; ( global highp 3-component vector of float) -0:15 direct index (layout( location=3) temp highp 3-component vector of float) -0:15 'uv' (layout( location=3) in 8-element array of highp 3-component vector of float) -0:15 Constant: -0:15 0 (const int) -0:16 move second child to first child ( temp highp 3-component vector of float) -0:16 vector swizzle ( temp highp 3-component vector of float) -0:16 texCoord0: direct index for structure ( out highp 3-component vector of float) -0:16 'oVert' ( out block{ out highp 4-component vector of float color, out highp 3-component vector of float worldSpacePos, out highp 3-component vector of float texCoord0, flat out highp int cameraIndex, flat out highp int instance}) -0:16 Constant: -0:16 2 (const int) -0:16 Sequence -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 1 (const int) -0:16 Constant: -0:16 2 (const int) -0:16 vector swizzle ( temp highp 3-component vector of float) -0:16 'texcoord' ( temp highp 3-component vector of float) -0:16 Sequence -0:16 Constant: -0:16 0 (const int) -0:16 Constant: -0:16 1 (const int) -0:16 Constant: -0:16 2 (const int) -0:20 move second child to first child ( temp highp int) -0:20 instance: direct index for structure ( flat out highp int) -0:20 'oVert' ( out block{ out highp 4-component vector of float color, out highp 3-component vector of float worldSpacePos, out highp 3-component vector of float texCoord0, flat out highp int cameraIndex, flat out highp int instance}) -0:20 Constant: -0:20 4 (const int) -0:20 Function Call: TDInstanceID( ( global highp int) -0:21 Sequence -0:21 move second child to first child ( temp highp 4-component vector of float) -0:21 'worldSpacePos' ( temp highp 4-component vector of float) -0:21 Function Call: TDDeform(vf3; ( global highp 4-component vector of float) -0:21 'P' (layout( location=0) in highp 3-component vector of float) -0:22 Sequence -0:22 move second child to first child ( temp highp 3-component vector of float) -0:22 'uvUnwrapCoord' ( temp highp 3-component vector of float) -0:22 Function Call: TDInstanceTexCoord(vf3; ( global highp 3-component vector of float) -0:22 Function Call: TDUVUnwrapCoord( ( global highp 3-component vector of float) -0:23 move second child to first child ( temp highp 4-component vector of float) -0:23 gl_Position: direct index for structure ( gl_Position highp 4-component vector of float Position) -0:23 'anon@4' ( 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, out 1-element array of float CullDistance gl_CullDistance}) -0:23 Constant: -0:23 0 (const uint) -0:23 Function Call: TDWorldToProj(vf4;vf3; ( global highp 4-component vector of float) -0:23 'worldSpacePos' ( temp highp 4-component vector of float) -0:23 'uvUnwrapCoord' ( temp highp 3-component vector of float) -0:32 Sequence -0:32 move second child to first child ( temp highp int) -0:32 'cameraIndex' ( temp highp int) -0:32 Function Call: TDCameraIndex( ( global highp int) -0:33 move second child to first child ( temp highp int) -0:33 cameraIndex: direct index for structure ( flat out highp int) -0:33 'oVert' ( out block{ out highp 4-component vector of float color, out highp 3-component vector of float worldSpacePos, out highp 3-component vector of float texCoord0, flat out highp int cameraIndex, flat out highp int instance}) -0:33 Constant: -0:33 3 (const int) -0:33 'cameraIndex' ( temp highp int) -0:34 move second child to first child ( temp highp 3-component vector of float) -0:34 vector swizzle ( temp highp 3-component vector of float) -0:34 worldSpacePos: direct index for structure ( out highp 3-component vector of float) -0:34 'oVert' ( out block{ out highp 4-component vector of float color, out highp 3-component vector of float worldSpacePos, out highp 3-component vector of float texCoord0, flat out highp int cameraIndex, flat out highp int instance}) -0:34 Constant: -0:34 1 (const int) -0:34 Sequence -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 Constant: -0:34 2 (const int) -0:34 vector swizzle ( temp highp 3-component vector of float) -0:34 'worldSpacePos' ( temp highp 4-component vector of float) -0:34 Sequence -0:34 Constant: -0:34 0 (const int) -0:34 Constant: -0:34 1 (const int) -0:34 Constant: -0:34 2 (const int) -0:35 move second child to first child ( temp highp 4-component vector of float) -0:35 color: direct index for structure ( out highp 4-component vector of float) -0:35 'oVert' ( out block{ out highp 4-component vector of float color, out highp 3-component vector of float worldSpacePos, out highp 3-component vector of float texCoord0, flat out highp int cameraIndex, flat out highp int instance}) -0:35 Constant: -0:35 0 (const int) -0:35 Function Call: TDInstanceColor(vf4; ( global highp 4-component vector of float) -0:35 'Cd' (layout( location=2) in highp 4-component vector of float) -0:176 Function Definition: iTDCamToProj(vf4;vf3;i1;b1; ( global highp 4-component vector of float) -0:176 Function Parameters: -0:176 'v' ( in highp 4-component vector of float) -0:176 'uv' ( in highp 3-component vector of float) -0:176 'cameraIndex' ( in highp int) -0:176 'applyPickMod' ( in bool) -0:178 Sequence -0:178 Test condition and select ( temp void) -0:178 Condition -0:178 Negate conditional ( temp bool) -0:178 Function Call: TDInstanceActive( ( global bool) -0:178 true case -0:179 Branch: Return with expression -0:179 Constant: -0:179 2.000000 -0:179 2.000000 -0:179 2.000000 -0:179 0.000000 -0:180 move second child to first child ( temp highp 4-component vector of float) -0:180 'v' ( in highp 4-component vector of float) -0:180 matrix-times-vector ( temp highp 4-component vector of float) -0:180 proj: direct index for structure (layout( column_major std140) global highp 4X4 matrix of float) -0:180 direct index (layout( column_major std140 offset=0) temp structure{layout( column_major std140) global highp 4X4 matrix of float world, layout( column_major std140) global highp 4X4 matrix of float worldInverse, layout( column_major std140) global highp 4X4 matrix of float worldCam, layout( column_major std140) global highp 4X4 matrix of float worldCamInverse, layout( column_major std140) global highp 4X4 matrix of float cam, layout( column_major std140) global highp 4X4 matrix of float camInverse, layout( column_major std140) global highp 4X4 matrix of float camProj, layout( column_major std140) global highp 4X4 matrix of float camProjInverse, layout( column_major std140) global highp 4X4 matrix of float proj, layout( column_major std140) global highp 4X4 matrix of float projInverse, layout( column_major std140) global highp 4X4 matrix of float worldCamProj, layout( column_major std140) global highp 4X4 matrix of float worldCamProjInverse, layout( column_major std140) global highp 4X4 matrix of float quadReproject, layout( column_major std140) global highp 3X3 matrix of float worldForNormals, layout( column_major std140) global highp 3X3 matrix of float camForNormals, layout( column_major std140) global highp 3X3 matrix of float worldCamForNormals}) -0:180 uTDMats: direct index for structure (layout( column_major std140 offset=0) uniform 1-element array of structure{layout( column_major std140) global highp 4X4 matrix of float world, layout( column_major std140) global highp 4X4 matrix of float worldInverse, layout( column_major std140) global highp 4X4 matrix of float worldCam, layout( column_major std140) global highp 4X4 matrix of float worldCamInverse, layout( column_major std140) global highp 4X4 matrix of float cam, layout( column_major std140) global highp 4X4 matrix of float camInverse, layout( column_major std140) global highp 4X4 matrix of float camProj, layout( column_major std140) global highp 4X4 matrix of float camProjInverse, layout( column_major std140) global highp 4X4 matrix of float proj, layout( column_major std140) global highp 4X4 matrix of float projInverse, layout( column_major std140) global highp 4X4 matrix of float worldCamProj, layout( column_major std140) global highp 4X4 matrix of float worldCamProjInverse, layout( column_major std140) global highp 4X4 matrix of float quadReproject, layout( column_major std140) global highp 3X3 matrix of float worldForNormals, layout( column_major std140) global highp 3X3 matrix of float camForNormals, layout( column_major std140) global highp 3X3 matrix of float worldCamForNormals}) -0:180 'anon@3' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 1-element array of structure{layout( column_major std140) global highp 4X4 matrix of float world, layout( column_major std140) global highp 4X4 matrix of float worldInverse, layout( column_major std140) global highp 4X4 matrix of float worldCam, layout( column_major std140) global highp 4X4 matrix of float worldCamInverse, layout( column_major std140) global highp 4X4 matrix of float cam, layout( column_major std140) global highp 4X4 matrix of float camInverse, layout( column_major std140) global highp 4X4 matrix of float camProj, layout( column_major std140) global highp 4X4 matrix of float camProjInverse, layout( column_major std140) global highp 4X4 matrix of float proj, layout( column_major std140) global highp 4X4 matrix of float projInverse, layout( column_major std140) global highp 4X4 matrix of float worldCamProj, layout( column_major std140) global highp 4X4 matrix of float worldCamProjInverse, layout( column_major std140) global highp 4X4 matrix of float quadReproject, layout( column_major std140) global highp 3X3 matrix of float worldForNormals, layout( column_major std140) global highp 3X3 matrix of float camForNormals, layout( column_major std140) global highp 3X3 matrix of float worldCamForNormals} uTDMats}) -0:180 Constant: -0:180 0 (const uint) -0:180 Constant: -0:180 0 (const int) -0:180 Constant: -0:180 8 (const int) -0:180 'v' ( in highp 4-component vector of float) -0:181 Branch: Return with expression -0:181 'v' ( in highp 4-component vector of float) -0:183 Function Definition: iTDWorldToProj(vf4;vf3;i1;b1; ( global highp 4-component vector of float) -0:183 Function Parameters: -0:183 'v' ( in highp 4-component vector of float) -0:183 'uv' ( in highp 3-component vector of float) -0:183 'cameraIndex' ( in highp int) -0:183 'applyPickMod' ( in bool) -0:184 Sequence -0:184 Test condition and select ( temp void) -0:184 Condition -0:184 Negate conditional ( temp bool) -0:184 Function Call: TDInstanceActive( ( global bool) -0:184 true case -0:185 Branch: Return with expression -0:185 Constant: -0:185 2.000000 -0:185 2.000000 -0:185 2.000000 -0:185 0.000000 -0:186 move second child to first child ( temp highp 4-component vector of float) -0:186 'v' ( in highp 4-component vector of float) -0:186 matrix-times-vector ( temp highp 4-component vector of float) -0:186 camProj: direct index for structure (layout( column_major std140) global highp 4X4 matrix of float) -0:186 direct index (layout( column_major std140 offset=0) temp structure{layout( column_major std140) global highp 4X4 matrix of float world, layout( column_major std140) global highp 4X4 matrix of float worldInverse, layout( column_major std140) global highp 4X4 matrix of float worldCam, layout( column_major std140) global highp 4X4 matrix of float worldCamInverse, layout( column_major std140) global highp 4X4 matrix of float cam, layout( column_major std140) global highp 4X4 matrix of float camInverse, layout( column_major std140) global highp 4X4 matrix of float camProj, layout( column_major std140) global highp 4X4 matrix of float camProjInverse, layout( column_major std140) global highp 4X4 matrix of float proj, layout( column_major std140) global highp 4X4 matrix of float projInverse, layout( column_major std140) global highp 4X4 matrix of float worldCamProj, layout( column_major std140) global highp 4X4 matrix of float worldCamProjInverse, layout( column_major std140) global highp 4X4 matrix of float quadReproject, layout( column_major std140) global highp 3X3 matrix of float worldForNormals, layout( column_major std140) global highp 3X3 matrix of float camForNormals, layout( column_major std140) global highp 3X3 matrix of float worldCamForNormals}) -0:186 uTDMats: direct index for structure (layout( column_major std140 offset=0) uniform 1-element array of structure{layout( column_major std140) global highp 4X4 matrix of float world, layout( column_major std140) global highp 4X4 matrix of float worldInverse, layout( column_major std140) global highp 4X4 matrix of float worldCam, layout( column_major std140) global highp 4X4 matrix of float worldCamInverse, layout( column_major std140) global highp 4X4 matrix of float cam, layout( column_major std140) global highp 4X4 matrix of float camInverse, layout( column_major std140) global highp 4X4 matrix of float camProj, layout( column_major std140) global highp 4X4 matrix of float camProjInverse, layout( column_major std140) global highp 4X4 matrix of float proj, layout( column_major std140) global highp 4X4 matrix of float projInverse, layout( column_major std140) global highp 4X4 matrix of float worldCamProj, layout( column_major std140) global highp 4X4 matrix of float worldCamProjInverse, layout( column_major std140) global highp 4X4 matrix of float quadReproject, layout( column_major std140) global highp 3X3 matrix of float worldForNormals, layout( column_major std140) global highp 3X3 matrix of float camForNormals, layout( column_major std140) global highp 3X3 matrix of float worldCamForNormals}) -0:186 'anon@3' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 1-element array of structure{layout( column_major std140) global highp 4X4 matrix of float world, layout( column_major std140) global highp 4X4 matrix of float worldInverse, layout( column_major std140) global highp 4X4 matrix of float worldCam, layout( column_major std140) global highp 4X4 matrix of float worldCamInverse, layout( column_major std140) global highp 4X4 matrix of float cam, layout( column_major std140) global highp 4X4 matrix of float camInverse, layout( column_major std140) global highp 4X4 matrix of float camProj, layout( column_major std140) global highp 4X4 matrix of float camProjInverse, layout( column_major std140) global highp 4X4 matrix of float proj, layout( column_major std140) global highp 4X4 matrix of float projInverse, layout( column_major std140) global highp 4X4 matrix of float worldCamProj, layout( column_major std140) global highp 4X4 matrix of float worldCamProjInverse, layout( column_major std140) global highp 4X4 matrix of float quadReproject, layout( column_major std140) global highp 3X3 matrix of float worldForNormals, layout( column_major std140) global highp 3X3 matrix of float camForNormals, layout( column_major std140) global highp 3X3 matrix of float worldCamForNormals} uTDMats}) -0:186 Constant: -0:186 0 (const uint) -0:186 Constant: -0:186 0 (const int) -0:186 Constant: -0:186 6 (const int) -0:186 'v' ( in highp 4-component vector of float) -0:187 Branch: Return with expression -0:187 'v' ( in highp 4-component vector of float) -0:193 Function Definition: TDInstanceID( ( global highp int) -0:193 Function Parameters: -0:194 Sequence -0:194 Branch: Return with expression -0:194 add ( temp highp int) -0:194 'gl_InstanceIndex' ( in highp int InstanceIndex) -0:194 uTDInstanceIDOffset: direct index for structure ( uniform highp int) -0:194 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal}) -0:194 Constant: -0:194 0 (const uint) -0:196 Function Definition: TDCameraIndex( ( global highp int) -0:196 Function Parameters: -0:197 Sequence -0:197 Branch: Return with expression -0:197 Constant: -0:197 0 (const int) -0:199 Function Definition: TDUVUnwrapCoord( ( global highp 3-component vector of float) -0:199 Function Parameters: -0:200 Sequence -0:200 Branch: Return with expression -0:200 direct index (layout( location=3) temp highp 3-component vector of float) -0:200 'uv' (layout( location=3) in 8-element array of highp 3-component vector of float) -0:200 Constant: -0:200 0 (const int) -0:205 Function Definition: TDPickID( ( global highp int) -0:205 Function Parameters: -0:209 Sequence -0:209 Branch: Return with expression -0:209 Constant: -0:209 0 (const int) -0:212 Function Definition: iTDConvertPickId(i1; ( global highp float) -0:212 Function Parameters: -0:212 'id' ( in highp int) -0:213 Sequence -0:213 or second child into first child ( temp highp int) -0:213 'id' ( in highp int) -0:213 Constant: -0:213 1073741824 (const int) -0:214 Branch: Return with expression -0:214 intBitsToFloat ( global highp float) -0:214 'id' ( in highp int) -0:217 Function Definition: TDWritePickingValues( ( global void) -0:217 Function Parameters: -0:224 Function Definition: TDWorldToProj(vf4;vf3; ( global highp 4-component vector of float) -0:224 Function Parameters: -0:224 'v' ( in highp 4-component vector of float) -0:224 'uv' ( in highp 3-component vector of float) -0:226 Sequence -0:226 Branch: Return with expression -0:226 Function Call: iTDWorldToProj(vf4;vf3;i1;b1; ( global highp 4-component vector of float) -0:226 'v' ( in highp 4-component vector of float) -0:226 'uv' ( in highp 3-component vector of float) -0:226 Function Call: TDCameraIndex( ( global highp int) -0:226 Constant: -0:226 true (const bool) -0:228 Function Definition: TDWorldToProj(vf3;vf3; ( global highp 4-component vector of float) -0:228 Function Parameters: -0:228 'v' ( in highp 3-component vector of float) -0:228 'uv' ( in highp 3-component vector of float) -0:230 Sequence -0:230 Branch: Return with expression -0:230 Function Call: TDWorldToProj(vf4;vf3; ( global highp 4-component vector of float) -0:230 Construct vec4 ( temp highp 4-component vector of float) -0:230 'v' ( in highp 3-component vector of float) -0:230 Constant: -0:230 1.000000 -0:230 'uv' ( in highp 3-component vector of float) -0:232 Function Definition: TDWorldToProj(vf4; ( global highp 4-component vector of float) -0:232 Function Parameters: -0:232 'v' ( in highp 4-component vector of float) -0:234 Sequence -0:234 Branch: Return with expression -0:234 Function Call: TDWorldToProj(vf4;vf3; ( global highp 4-component vector of float) -0:234 'v' ( in highp 4-component vector of float) -0:234 Constant: -0:234 0.000000 -0:234 0.000000 -0:234 0.000000 -0:236 Function Definition: TDWorldToProj(vf3; ( global highp 4-component vector of float) -0:236 Function Parameters: -0:236 'v' ( in highp 3-component vector of float) -0:238 Sequence -0:238 Branch: Return with expression -0:238 Function Call: TDWorldToProj(vf4; ( global highp 4-component vector of float) -0:238 Construct vec4 ( temp highp 4-component vector of float) -0:238 'v' ( in highp 3-component vector of float) -0:238 Constant: -0:238 1.000000 -0:240 Function Definition: TDPointColor( ( global highp 4-component vector of float) -0:240 Function Parameters: -0:241 Sequence -0:241 Branch: Return with expression -0:241 'Cd' (layout( location=2) in highp 4-component vector of float) -0:114 Function Definition: TDInstanceTexCoord(i1;vf3; ( global highp 3-component vector of float) -0:114 Function Parameters: -0:114 'index' ( in highp int) -0:114 't' ( in highp 3-component vector of float) -0:? Sequence -0:116 Sequence -0:116 move second child to first child ( temp highp int) -0:116 'coord' ( temp highp int) -0:116 'index' ( in highp int) -0:117 Sequence -0:117 move second child to first child ( temp highp 4-component vector of float) -0:117 'samp' ( temp highp 4-component vector of float) -0:117 textureFetch ( global highp 4-component vector of float) -0:117 'sTDInstanceTexCoord' (layout( binding=16) uniform highp samplerBuffer) -0:117 'coord' ( temp highp int) -0:118 move second child to first child ( temp highp float) -0:118 direct index ( temp highp float) -0:118 'v' ( temp highp 3-component vector of float) -0:118 Constant: -0:118 0 (const int) -0:118 direct index ( temp highp float) -0:118 't' ( in highp 3-component vector of float) -0:118 Constant: -0:118 0 (const int) -0:119 move second child to first child ( temp highp float) -0:119 direct index ( temp highp float) -0:119 'v' ( temp highp 3-component vector of float) -0:119 Constant: -0:119 1 (const int) -0:119 direct index ( temp highp float) -0:119 't' ( in highp 3-component vector of float) -0:119 Constant: -0:119 1 (const int) -0:120 move second child to first child ( temp highp float) -0:120 direct index ( temp highp float) -0:120 'v' ( temp highp 3-component vector of float) -0:120 Constant: -0:120 2 (const int) -0:120 direct index ( temp highp float) -0:120 'samp' ( temp highp 4-component vector of float) -0:120 Constant: -0:120 0 (const int) -0:121 move second child to first child ( temp highp 3-component vector of float) -0:121 vector swizzle ( temp highp 3-component vector of float) -0:121 't' ( in highp 3-component vector of float) -0:121 Sequence -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 1 (const int) -0:121 Constant: -0:121 2 (const int) -0:121 vector swizzle ( temp highp 3-component vector of float) -0:121 'v' ( temp highp 3-component vector of float) -0:121 Sequence -0:121 Constant: -0:121 0 (const int) -0:121 Constant: -0:121 1 (const int) -0:121 Constant: -0:121 2 (const int) -0:122 Branch: Return with expression -0:122 't' ( in highp 3-component vector of float) -0:124 Function Definition: TDInstanceActive(i1; ( global bool) -0:124 Function Parameters: -0:124 'index' ( in highp int) -0:125 Sequence -0:125 subtract second child into first child ( temp highp int) -0:125 'index' ( in highp int) -0:125 uTDInstanceIDOffset: direct index for structure ( uniform highp int) -0:125 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal}) -0:125 Constant: -0:125 0 (const uint) -0:127 Sequence -0:127 move second child to first child ( temp highp int) -0:127 'coord' ( temp highp int) -0:127 'index' ( in highp int) -0:128 Sequence -0:128 move second child to first child ( temp highp 4-component vector of float) -0:128 'samp' ( temp highp 4-component vector of float) -0:128 textureFetch ( global highp 4-component vector of float) -0:128 'sTDInstanceT' (layout( binding=15) uniform highp samplerBuffer) -0:128 'coord' ( temp highp int) -0:129 move second child to first child ( temp highp float) -0:129 'v' ( temp highp float) -0:129 direct index ( temp highp float) -0:129 'samp' ( temp highp 4-component vector of float) -0:129 Constant: -0:129 0 (const int) -0:130 Branch: Return with expression -0:130 Compare Not Equal ( temp bool) -0:130 'v' ( temp highp float) -0:130 Constant: -0:130 0.000000 -0:132 Function Definition: iTDInstanceTranslate(i1;b1; ( global highp 3-component vector of float) -0:132 Function Parameters: -0:132 'index' ( in highp int) -0:132 'instanceActive' ( out bool) -0:133 Sequence -0:133 Sequence -0:133 move second child to first child ( temp highp int) -0:133 'origIndex' ( temp highp int) -0:133 'index' ( in highp int) -0:134 subtract second child into first child ( temp highp int) -0:134 'index' ( in highp int) -0:134 uTDInstanceIDOffset: direct index for structure ( uniform highp int) -0:134 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal}) -0:134 Constant: -0:134 0 (const uint) -0:136 Sequence -0:136 move second child to first child ( temp highp int) -0:136 'coord' ( temp highp int) -0:136 'index' ( in highp int) -0:137 Sequence -0:137 move second child to first child ( temp highp 4-component vector of float) -0:137 'samp' ( temp highp 4-component vector of float) -0:137 textureFetch ( global highp 4-component vector of float) -0:137 'sTDInstanceT' (layout( binding=15) uniform highp samplerBuffer) -0:137 'coord' ( temp highp int) -0:138 move second child to first child ( temp highp float) -0:138 direct index ( temp highp float) -0:138 'v' ( temp highp 3-component vector of float) -0:138 Constant: -0:138 0 (const int) -0:138 direct index ( temp highp float) -0:138 'samp' ( temp highp 4-component vector of float) -0:138 Constant: -0:138 1 (const int) -0:139 move second child to first child ( temp highp float) -0:139 direct index ( temp highp float) -0:139 'v' ( temp highp 3-component vector of float) -0:139 Constant: -0:139 1 (const int) -0:139 direct index ( temp highp float) -0:139 'samp' ( temp highp 4-component vector of float) -0:139 Constant: -0:139 2 (const int) -0:140 move second child to first child ( temp highp float) -0:140 direct index ( temp highp float) -0:140 'v' ( temp highp 3-component vector of float) -0:140 Constant: -0:140 2 (const int) -0:140 direct index ( temp highp float) -0:140 'samp' ( temp highp 4-component vector of float) -0:140 Constant: -0:140 3 (const int) -0:141 move second child to first child ( temp bool) -0:141 'instanceActive' ( out bool) -0:141 Compare Not Equal ( temp bool) -0:141 direct index ( temp highp float) -0:141 'samp' ( temp highp 4-component vector of float) -0:141 Constant: -0:141 0 (const int) -0:141 Constant: -0:141 0.000000 -0:142 Branch: Return with expression -0:142 'v' ( temp highp 3-component vector of float) -0:144 Function Definition: TDInstanceTranslate(i1; ( global highp 3-component vector of float) -0:144 Function Parameters: -0:144 'index' ( in highp int) -0:145 Sequence -0:145 subtract second child into first child ( temp highp int) -0:145 'index' ( in highp int) -0:145 uTDInstanceIDOffset: direct index for structure ( uniform highp int) -0:145 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal}) -0:145 Constant: -0:145 0 (const uint) -0:147 Sequence -0:147 move second child to first child ( temp highp int) -0:147 'coord' ( temp highp int) -0:147 'index' ( in highp int) -0:148 Sequence -0:148 move second child to first child ( temp highp 4-component vector of float) -0:148 'samp' ( temp highp 4-component vector of float) -0:148 textureFetch ( global highp 4-component vector of float) -0:148 'sTDInstanceT' (layout( binding=15) uniform highp samplerBuffer) -0:148 'coord' ( temp highp int) -0:149 move second child to first child ( temp highp float) -0:149 direct index ( temp highp float) -0:149 'v' ( temp highp 3-component vector of float) -0:149 Constant: -0:149 0 (const int) -0:149 direct index ( temp highp float) -0:149 'samp' ( temp highp 4-component vector of float) -0:149 Constant: -0:149 1 (const int) -0:150 move second child to first child ( temp highp float) -0:150 direct index ( temp highp float) -0:150 'v' ( temp highp 3-component vector of float) -0:150 Constant: -0:150 1 (const int) -0:150 direct index ( temp highp float) -0:150 'samp' ( temp highp 4-component vector of float) -0:150 Constant: -0:150 2 (const int) -0:151 move second child to first child ( temp highp float) -0:151 direct index ( temp highp float) -0:151 'v' ( temp highp 3-component vector of float) -0:151 Constant: -0:151 2 (const int) -0:151 direct index ( temp highp float) -0:151 'samp' ( temp highp 4-component vector of float) -0:151 Constant: -0:151 3 (const int) -0:152 Branch: Return with expression -0:152 'v' ( temp highp 3-component vector of float) -0:154 Function Definition: TDInstanceRotateMat(i1; ( global highp 3X3 matrix of float) -0:154 Function Parameters: -0:154 'index' ( in highp int) -0:155 Sequence -0:155 subtract second child into first child ( temp highp int) -0:155 'index' ( in highp int) -0:155 uTDInstanceIDOffset: direct index for structure ( uniform highp int) -0:155 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal}) -0:155 Constant: -0:155 0 (const uint) -0:156 Sequence -0:156 move second child to first child ( temp highp 3-component vector of float) -0:156 'v' ( temp highp 3-component vector of float) -0:156 Constant: -0:156 0.000000 -0:156 0.000000 -0:156 0.000000 -0:157 Sequence -0:157 move second child to first child ( temp highp 3X3 matrix of float) -0:157 'm' ( temp highp 3X3 matrix of float) -0:157 Constant: -0:157 1.000000 -0:157 0.000000 -0:157 0.000000 -0:157 0.000000 -0:157 1.000000 -0:157 0.000000 -0:157 0.000000 -0:157 0.000000 -0:157 1.000000 -0:161 Branch: Return with expression -0:161 'm' ( temp highp 3X3 matrix of float) -0:163 Function Definition: TDInstanceScale(i1; ( global highp 3-component vector of float) -0:163 Function Parameters: -0:163 'index' ( in highp int) -0:164 Sequence -0:164 subtract second child into first child ( temp highp int) -0:164 'index' ( in highp int) -0:164 uTDInstanceIDOffset: direct index for structure ( uniform highp int) -0:164 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal}) -0:164 Constant: -0:164 0 (const uint) -0:165 Sequence -0:165 move second child to first child ( temp highp 3-component vector of float) -0:165 'v' ( temp highp 3-component vector of float) -0:165 Constant: -0:165 1.000000 -0:165 1.000000 -0:165 1.000000 -0:166 Branch: Return with expression -0:166 'v' ( temp highp 3-component vector of float) -0:168 Function Definition: TDInstancePivot(i1; ( global highp 3-component vector of float) -0:168 Function Parameters: -0:168 'index' ( in highp int) -0:169 Sequence -0:169 subtract second child into first child ( temp highp int) -0:169 'index' ( in highp int) -0:169 uTDInstanceIDOffset: direct index for structure ( uniform highp int) -0:169 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal}) -0:169 Constant: -0:169 0 (const uint) -0:170 Sequence -0:170 move second child to first child ( temp highp 3-component vector of float) -0:170 'v' ( temp highp 3-component vector of float) -0:170 Constant: -0:170 0.000000 -0:170 0.000000 -0:170 0.000000 -0:171 Branch: Return with expression -0:171 'v' ( temp highp 3-component vector of float) -0:173 Function Definition: TDInstanceRotTo(i1; ( global highp 3-component vector of float) -0:173 Function Parameters: -0:173 'index' ( in highp int) -0:174 Sequence -0:174 subtract second child into first child ( temp highp int) -0:174 'index' ( in highp int) -0:174 uTDInstanceIDOffset: direct index for structure ( uniform highp int) -0:174 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal}) -0:174 Constant: -0:174 0 (const uint) -0:175 Sequence -0:175 move second child to first child ( temp highp 3-component vector of float) -0:175 'v' ( temp highp 3-component vector of float) -0:175 Constant: -0:175 0.000000 -0:175 0.000000 -0:175 1.000000 -0:176 Branch: Return with expression -0:176 'v' ( temp highp 3-component vector of float) -0:178 Function Definition: TDInstanceRotUp(i1; ( global highp 3-component vector of float) -0:178 Function Parameters: -0:178 'index' ( in highp int) -0:179 Sequence -0:179 subtract second child into first child ( temp highp int) -0:179 'index' ( in highp int) -0:179 uTDInstanceIDOffset: direct index for structure ( uniform highp int) -0:179 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal}) -0:179 Constant: -0:179 0 (const uint) -0:180 Sequence -0:180 move second child to first child ( temp highp 3-component vector of float) -0:180 'v' ( temp highp 3-component vector of float) -0:180 Constant: -0:180 0.000000 -0:180 1.000000 -0:180 0.000000 -0:181 Branch: Return with expression -0:181 'v' ( temp highp 3-component vector of float) -0:183 Function Definition: TDInstanceMat(i1; ( global highp 4X4 matrix of float) -0:183 Function Parameters: -0:183 'id' ( in highp int) -0:184 Sequence -0:184 Sequence -0:184 move second child to first child ( temp bool) -0:184 'instanceActive' ( temp bool) -0:184 Constant: -0:184 true (const bool) -0:185 Sequence -0:185 move second child to first child ( temp highp 3-component vector of float) -0:185 't' ( temp highp 3-component vector of float) -0:185 Function Call: iTDInstanceTranslate(i1;b1; ( global highp 3-component vector of float) -0:185 'id' ( in highp int) -0:185 'instanceActive' ( temp bool) -0:186 Test condition and select ( temp void) -0:186 Condition -0:186 Negate conditional ( temp bool) -0:186 'instanceActive' ( temp bool) -0:186 true case -0:188 Sequence -0:188 Branch: Return with expression -0:188 Constant: -0:188 0.000000 -0:188 0.000000 -0:188 0.000000 -0:188 0.000000 -0:188 0.000000 -0:188 0.000000 -0:188 0.000000 -0:188 0.000000 -0:188 0.000000 -0:188 0.000000 -0:188 0.000000 -0:188 0.000000 -0:188 0.000000 -0:188 0.000000 -0:188 0.000000 -0:188 0.000000 -0:190 Sequence -0:190 move second child to first child ( temp highp 4X4 matrix of float) -0:190 'm' ( temp highp 4X4 matrix of float) -0:190 Constant: -0:190 1.000000 -0:190 0.000000 -0:190 0.000000 -0:190 0.000000 -0:190 0.000000 -0:190 1.000000 -0:190 0.000000 -0:190 0.000000 -0:190 0.000000 -0:190 0.000000 -0:190 1.000000 -0:190 0.000000 -0:190 0.000000 -0:190 0.000000 -0:190 0.000000 -0:190 1.000000 -0:192 Sequence -0:192 Sequence -0:192 move second child to first child ( temp highp 3-component vector of float) -0:192 'tt' ( temp highp 3-component vector of float) -0:192 't' ( temp highp 3-component vector of float) -0:193 add second child into first child ( temp highp float) -0:193 direct index ( temp highp float) -0:193 direct index ( temp highp 4-component vector of float) -0:193 'm' ( temp highp 4X4 matrix of float) -0:193 Constant: -0:193 3 (const int) -0:193 Constant: -0:193 0 (const int) -0:193 component-wise multiply ( temp highp float) -0:193 direct index ( temp highp float) -0:193 direct index ( temp highp 4-component vector of float) -0:193 'm' ( temp highp 4X4 matrix of float) -0:193 Constant: -0:193 0 (const int) -0:193 Constant: -0:193 0 (const int) -0:193 direct index ( temp highp float) -0:193 'tt' ( temp highp 3-component vector of float) -0:193 Constant: -0:193 0 (const int) -0:194 add second child into first child ( temp highp float) -0:194 direct index ( temp highp float) -0:194 direct index ( temp highp 4-component vector of float) -0:194 'm' ( temp highp 4X4 matrix of float) -0:194 Constant: -0:194 3 (const int) -0:194 Constant: -0:194 1 (const int) -0:194 component-wise multiply ( temp highp float) -0:194 direct index ( temp highp float) -0:194 direct index ( temp highp 4-component vector of float) -0:194 'm' ( temp highp 4X4 matrix of float) -0:194 Constant: -0:194 0 (const int) -0:194 Constant: -0:194 1 (const int) -0:194 direct index ( temp highp float) -0:194 'tt' ( temp highp 3-component vector of float) -0:194 Constant: -0:194 0 (const int) -0:195 add second child into first child ( temp highp float) -0:195 direct index ( temp highp float) -0:195 direct index ( temp highp 4-component vector of float) -0:195 'm' ( temp highp 4X4 matrix of float) -0:195 Constant: -0:195 3 (const int) -0:195 Constant: -0:195 2 (const int) -0:195 component-wise multiply ( temp highp float) -0:195 direct index ( temp highp float) -0:195 direct index ( temp highp 4-component vector of float) -0:195 'm' ( temp highp 4X4 matrix of float) -0:195 Constant: -0:195 0 (const int) -0:195 Constant: -0:195 2 (const int) -0:195 direct index ( temp highp float) -0:195 'tt' ( temp highp 3-component vector of float) -0:195 Constant: -0:195 0 (const int) -0:196 add second child into first child ( temp highp float) -0:196 direct index ( temp highp float) -0:196 direct index ( temp highp 4-component vector of float) -0:196 'm' ( temp highp 4X4 matrix of float) -0:196 Constant: -0:196 3 (const int) -0:196 Constant: -0:196 3 (const int) -0:196 component-wise multiply ( temp highp float) -0:196 direct index ( temp highp float) -0:196 direct index ( temp highp 4-component vector of float) -0:196 'm' ( temp highp 4X4 matrix of float) -0:196 Constant: -0:196 0 (const int) -0:196 Constant: -0:196 3 (const int) -0:196 direct index ( temp highp float) -0:196 'tt' ( temp highp 3-component vector of float) -0:196 Constant: -0:196 0 (const int) -0:197 add second child into first child ( temp highp float) -0:197 direct index ( temp highp float) -0:197 direct index ( temp highp 4-component vector of float) -0:197 'm' ( temp highp 4X4 matrix of float) -0:197 Constant: -0:197 3 (const int) -0:197 Constant: -0:197 0 (const int) -0:197 component-wise multiply ( temp highp float) -0:197 direct index ( temp highp float) -0:197 direct index ( temp highp 4-component vector of float) -0:197 'm' ( temp highp 4X4 matrix of float) -0:197 Constant: -0:197 1 (const int) -0:197 Constant: -0:197 0 (const int) -0:197 direct index ( temp highp float) -0:197 'tt' ( temp highp 3-component vector of float) -0:197 Constant: -0:197 1 (const int) -0:198 add second child into first child ( temp highp float) -0:198 direct index ( temp highp float) -0:198 direct index ( temp highp 4-component vector of float) -0:198 'm' ( temp highp 4X4 matrix of float) -0:198 Constant: -0:198 3 (const int) -0:198 Constant: -0:198 1 (const int) -0:198 component-wise multiply ( temp highp float) -0:198 direct index ( temp highp float) -0:198 direct index ( temp highp 4-component vector of float) -0:198 'm' ( temp highp 4X4 matrix of float) -0:198 Constant: -0:198 1 (const int) -0:198 Constant: -0:198 1 (const int) -0:198 direct index ( temp highp float) -0:198 'tt' ( temp highp 3-component vector of float) -0:198 Constant: -0:198 1 (const int) -0:199 add second child into first child ( temp highp float) -0:199 direct index ( temp highp float) -0:199 direct index ( temp highp 4-component vector of float) -0:199 'm' ( temp highp 4X4 matrix of float) -0:199 Constant: -0:199 3 (const int) -0:199 Constant: -0:199 2 (const int) -0:199 component-wise multiply ( temp highp float) -0:199 direct index ( temp highp float) -0:199 direct index ( temp highp 4-component vector of float) -0:199 'm' ( temp highp 4X4 matrix of float) -0:199 Constant: -0:199 1 (const int) -0:199 Constant: -0:199 2 (const int) -0:199 direct index ( temp highp float) -0:199 'tt' ( temp highp 3-component vector of float) -0:199 Constant: -0:199 1 (const int) -0:200 add second child into first child ( temp highp float) -0:200 direct index ( temp highp float) -0:200 direct index ( temp highp 4-component vector of float) -0:200 'm' ( temp highp 4X4 matrix of float) -0:200 Constant: -0:200 3 (const int) -0:200 Constant: -0:200 3 (const int) -0:200 component-wise multiply ( temp highp float) -0:200 direct index ( temp highp float) -0:200 direct index ( temp highp 4-component vector of float) -0:200 'm' ( temp highp 4X4 matrix of float) -0:200 Constant: -0:200 1 (const int) -0:200 Constant: -0:200 3 (const int) -0:200 direct index ( temp highp float) -0:200 'tt' ( temp highp 3-component vector of float) -0:200 Constant: -0:200 1 (const int) -0:201 add second child into first child ( temp highp float) -0:201 direct index ( temp highp float) -0:201 direct index ( temp highp 4-component vector of float) -0:201 'm' ( temp highp 4X4 matrix of float) -0:201 Constant: -0:201 3 (const int) -0:201 Constant: -0:201 0 (const int) -0:201 component-wise multiply ( temp highp float) -0:201 direct index ( temp highp float) -0:201 direct index ( temp highp 4-component vector of float) -0:201 'm' ( temp highp 4X4 matrix of float) -0:201 Constant: -0:201 2 (const int) -0:201 Constant: -0:201 0 (const int) -0:201 direct index ( temp highp float) -0:201 'tt' ( temp highp 3-component vector of float) -0:201 Constant: -0:201 2 (const int) -0:202 add second child into first child ( temp highp float) -0:202 direct index ( temp highp float) -0:202 direct index ( temp highp 4-component vector of float) -0:202 'm' ( temp highp 4X4 matrix of float) -0:202 Constant: -0:202 3 (const int) -0:202 Constant: -0:202 1 (const int) -0:202 component-wise multiply ( temp highp float) -0:202 direct index ( temp highp float) -0:202 direct index ( temp highp 4-component vector of float) -0:202 'm' ( temp highp 4X4 matrix of float) -0:202 Constant: -0:202 2 (const int) -0:202 Constant: -0:202 1 (const int) -0:202 direct index ( temp highp float) -0:202 'tt' ( temp highp 3-component vector of float) -0:202 Constant: -0:202 2 (const int) -0:203 add second child into first child ( temp highp float) -0:203 direct index ( temp highp float) -0:203 direct index ( temp highp 4-component vector of float) -0:203 'm' ( temp highp 4X4 matrix of float) -0:203 Constant: -0:203 3 (const int) -0:203 Constant: -0:203 2 (const int) -0:203 component-wise multiply ( temp highp float) -0:203 direct index ( temp highp float) -0:203 direct index ( temp highp 4-component vector of float) -0:203 'm' ( temp highp 4X4 matrix of float) -0:203 Constant: -0:203 2 (const int) -0:203 Constant: -0:203 2 (const int) -0:203 direct index ( temp highp float) -0:203 'tt' ( temp highp 3-component vector of float) -0:203 Constant: -0:203 2 (const int) -0:204 add second child into first child ( temp highp float) -0:204 direct index ( temp highp float) -0:204 direct index ( temp highp 4-component vector of float) -0:204 'm' ( temp highp 4X4 matrix of float) -0:204 Constant: -0:204 3 (const int) -0:204 Constant: -0:204 3 (const int) -0:204 component-wise multiply ( temp highp float) -0:204 direct index ( temp highp float) -0:204 direct index ( temp highp 4-component vector of float) -0:204 'm' ( temp highp 4X4 matrix of float) -0:204 Constant: -0:204 2 (const int) -0:204 Constant: -0:204 3 (const int) -0:204 direct index ( temp highp float) -0:204 'tt' ( temp highp 3-component vector of float) -0:204 Constant: -0:204 2 (const int) -0:206 Branch: Return with expression -0:206 'm' ( temp highp 4X4 matrix of float) -0:208 Function Definition: TDInstanceMat3(i1; ( global highp 3X3 matrix of float) -0:208 Function Parameters: -0:208 'id' ( in highp int) -0:209 Sequence -0:209 Sequence -0:209 move second child to first child ( temp highp 3X3 matrix of float) -0:209 'm' ( temp highp 3X3 matrix of float) -0:209 Constant: -0:209 1.000000 -0:209 0.000000 -0:209 0.000000 -0:209 0.000000 -0:209 1.000000 -0:209 0.000000 -0:209 0.000000 -0:209 0.000000 -0:209 1.000000 -0:210 Branch: Return with expression -0:210 'm' ( temp highp 3X3 matrix of float) -0:212 Function Definition: TDInstanceMat3ForNorm(i1; ( global highp 3X3 matrix of float) -0:212 Function Parameters: -0:212 'id' ( in highp int) -0:213 Sequence -0:213 Sequence -0:213 move second child to first child ( temp highp 3X3 matrix of float) -0:213 'm' ( temp highp 3X3 matrix of float) -0:213 Function Call: TDInstanceMat3(i1; ( global highp 3X3 matrix of float) -0:213 'id' ( in highp int) -0:214 Branch: Return with expression -0:214 'm' ( temp highp 3X3 matrix of float) -0:216 Function Definition: TDInstanceColor(i1;vf4; ( global highp 4-component vector of float) -0:216 Function Parameters: -0:216 'index' ( in highp int) -0:216 'curColor' ( in highp 4-component vector of float) -0:217 Sequence -0:217 subtract second child into first child ( temp highp int) -0:217 'index' ( in highp int) -0:217 uTDInstanceIDOffset: direct index for structure ( uniform highp int) -0:217 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal}) -0:217 Constant: -0:217 0 (const uint) -0:219 Sequence -0:219 move second child to first child ( temp highp int) -0:219 'coord' ( temp highp int) -0:219 'index' ( in highp int) -0:220 Sequence -0:220 move second child to first child ( temp highp 4-component vector of float) -0:220 'samp' ( temp highp 4-component vector of float) -0:220 textureFetch ( global highp 4-component vector of float) -0:220 'sTDInstanceColor' (layout( binding=17) uniform highp samplerBuffer) -0:220 'coord' ( temp highp int) -0:221 move second child to first child ( temp highp float) -0:221 direct index ( temp highp float) -0:221 'v' ( temp highp 4-component vector of float) -0:221 Constant: -0:221 0 (const int) -0:221 direct index ( temp highp float) -0:221 'samp' ( temp highp 4-component vector of float) -0:221 Constant: -0:221 0 (const int) -0:222 move second child to first child ( temp highp float) -0:222 direct index ( temp highp float) -0:222 'v' ( temp highp 4-component vector of float) -0:222 Constant: -0:222 1 (const int) -0:222 direct index ( temp highp float) -0:222 'samp' ( temp highp 4-component vector of float) -0:222 Constant: -0:222 1 (const int) -0:223 move second child to first child ( temp highp float) -0:223 direct index ( temp highp float) -0:223 'v' ( temp highp 4-component vector of float) -0:223 Constant: -0:223 2 (const int) -0:223 direct index ( temp highp float) -0:223 'samp' ( temp highp 4-component vector of float) -0:223 Constant: -0:223 2 (const int) -0:224 move second child to first child ( temp highp float) -0:224 direct index ( temp highp float) -0:224 'v' ( temp highp 4-component vector of float) -0:224 Constant: -0:224 3 (const int) -0:224 Constant: -0:224 1.000000 -0:225 move second child to first child ( temp highp float) -0:225 direct index ( temp highp float) -0:225 'curColor' ( in highp 4-component vector of float) -0:225 Constant: -0:225 0 (const int) -0:225 direct index ( temp highp float) -0:225 'v' ( temp highp 4-component vector of float) -0:225 Constant: -0:225 0 (const int) -0:227 move second child to first child ( temp highp float) -0:227 direct index ( temp highp float) -0:227 'curColor' ( in highp 4-component vector of float) -0:227 Constant: -0:227 1 (const int) -0:227 direct index ( temp highp float) -0:227 'v' ( temp highp 4-component vector of float) -0:227 Constant: -0:227 1 (const int) -0:229 move second child to first child ( temp highp float) -0:229 direct index ( temp highp float) -0:229 'curColor' ( in highp 4-component vector of float) -0:229 Constant: -0:229 2 (const int) -0:229 direct index ( temp highp float) -0:229 'v' ( temp highp 4-component vector of float) -0:229 Constant: -0:229 2 (const int) -0:231 Branch: Return with expression -0:231 'curColor' ( in highp 4-component vector of float) -0:233 Function Definition: TDInstanceDeform(i1;vf4; ( global highp 4-component vector of float) -0:233 Function Parameters: -0:233 'id' ( in highp int) -0:233 'pos' ( in highp 4-component vector of float) -0:234 Sequence -0:234 move second child to first child ( temp highp 4-component vector of float) -0:234 'pos' ( in highp 4-component vector of float) -0:234 matrix-times-vector ( temp highp 4-component vector of float) -0:234 Function Call: TDInstanceMat(i1; ( global highp 4X4 matrix of float) -0:234 'id' ( in highp int) -0:234 'pos' ( in highp 4-component vector of float) -0:235 Branch: Return with expression -0:235 matrix-times-vector ( temp highp 4-component vector of float) -0:235 world: direct index for structure (layout( column_major std140) global highp 4X4 matrix of float) -0:235 indirect index (layout( column_major std140 offset=0) temp structure{layout( column_major std140) global highp 4X4 matrix of float world, layout( column_major std140) global highp 4X4 matrix of float worldInverse, layout( column_major std140) global highp 4X4 matrix of float worldCam, layout( column_major std140) global highp 4X4 matrix of float worldCamInverse, layout( column_major std140) global highp 4X4 matrix of float cam, layout( column_major std140) global highp 4X4 matrix of float camInverse, layout( column_major std140) global highp 4X4 matrix of float camProj, layout( column_major std140) global highp 4X4 matrix of float camProjInverse, layout( column_major std140) global highp 4X4 matrix of float proj, layout( column_major std140) global highp 4X4 matrix of float projInverse, layout( column_major std140) global highp 4X4 matrix of float worldCamProj, layout( column_major std140) global highp 4X4 matrix of float worldCamProjInverse, layout( column_major std140) global highp 4X4 matrix of float quadReproject, layout( column_major std140) global highp 3X3 matrix of float worldForNormals, layout( column_major std140) global highp 3X3 matrix of float camForNormals, layout( column_major std140) global highp 3X3 matrix of float worldCamForNormals}) -0:235 uTDMats: direct index for structure (layout( column_major std140 offset=0) uniform 1-element array of structure{layout( column_major std140) global highp 4X4 matrix of float world, layout( column_major std140) global highp 4X4 matrix of float worldInverse, layout( column_major std140) global highp 4X4 matrix of float worldCam, layout( column_major std140) global highp 4X4 matrix of float worldCamInverse, layout( column_major std140) global highp 4X4 matrix of float cam, layout( column_major std140) global highp 4X4 matrix of float camInverse, layout( column_major std140) global highp 4X4 matrix of float camProj, layout( column_major std140) global highp 4X4 matrix of float camProjInverse, layout( column_major std140) global highp 4X4 matrix of float proj, layout( column_major std140) global highp 4X4 matrix of float projInverse, layout( column_major std140) global highp 4X4 matrix of float worldCamProj, layout( column_major std140) global highp 4X4 matrix of float worldCamProjInverse, layout( column_major std140) global highp 4X4 matrix of float quadReproject, layout( column_major std140) global highp 3X3 matrix of float worldForNormals, layout( column_major std140) global highp 3X3 matrix of float camForNormals, layout( column_major std140) global highp 3X3 matrix of float worldCamForNormals}) -0:235 'anon@3' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 1-element array of structure{layout( column_major std140) global highp 4X4 matrix of float world, layout( column_major std140) global highp 4X4 matrix of float worldInverse, layout( column_major std140) global highp 4X4 matrix of float worldCam, layout( column_major std140) global highp 4X4 matrix of float worldCamInverse, layout( column_major std140) global highp 4X4 matrix of float cam, layout( column_major std140) global highp 4X4 matrix of float camInverse, layout( column_major std140) global highp 4X4 matrix of float camProj, layout( column_major std140) global highp 4X4 matrix of float camProjInverse, layout( column_major std140) global highp 4X4 matrix of float proj, layout( column_major std140) global highp 4X4 matrix of float projInverse, layout( column_major std140) global highp 4X4 matrix of float worldCamProj, layout( column_major std140) global highp 4X4 matrix of float worldCamProjInverse, layout( column_major std140) global highp 4X4 matrix of float quadReproject, layout( column_major std140) global highp 3X3 matrix of float worldForNormals, layout( column_major std140) global highp 3X3 matrix of float camForNormals, layout( column_major std140) global highp 3X3 matrix of float worldCamForNormals} uTDMats}) -0:235 Constant: -0:235 0 (const uint) -0:235 Function Call: TDCameraIndex( ( global highp int) -0:235 Constant: -0:235 0 (const int) -0:235 'pos' ( in highp 4-component vector of float) -0:238 Function Definition: TDInstanceDeformVec(i1;vf3; ( global highp 3-component vector of float) -0:238 Function Parameters: -0:238 'id' ( in highp int) -0:238 'vec' ( in highp 3-component vector of float) -0:240 Sequence -0:240 Sequence -0:240 move second child to first child ( temp highp 3X3 matrix of float) -0:240 'm' ( temp highp 3X3 matrix of float) -0:240 Function Call: TDInstanceMat3(i1; ( global highp 3X3 matrix of float) -0:240 'id' ( in highp int) -0:241 Branch: Return with expression -0:241 matrix-times-vector ( temp highp 3-component vector of float) -0:241 Construct mat3 ( temp highp 3X3 matrix of float) -0:241 world: direct index for structure (layout( column_major std140) global highp 4X4 matrix of float) -0:241 indirect index (layout( column_major std140 offset=0) temp structure{layout( column_major std140) global highp 4X4 matrix of float world, layout( column_major std140) global highp 4X4 matrix of float worldInverse, layout( column_major std140) global highp 4X4 matrix of float worldCam, layout( column_major std140) global highp 4X4 matrix of float worldCamInverse, layout( column_major std140) global highp 4X4 matrix of float cam, layout( column_major std140) global highp 4X4 matrix of float camInverse, layout( column_major std140) global highp 4X4 matrix of float camProj, layout( column_major std140) global highp 4X4 matrix of float camProjInverse, layout( column_major std140) global highp 4X4 matrix of float proj, layout( column_major std140) global highp 4X4 matrix of float projInverse, layout( column_major std140) global highp 4X4 matrix of float worldCamProj, layout( column_major std140) global highp 4X4 matrix of float worldCamProjInverse, layout( column_major std140) global highp 4X4 matrix of float quadReproject, layout( column_major std140) global highp 3X3 matrix of float worldForNormals, layout( column_major std140) global highp 3X3 matrix of float camForNormals, layout( column_major std140) global highp 3X3 matrix of float worldCamForNormals}) -0:241 uTDMats: direct index for structure (layout( column_major std140 offset=0) uniform 1-element array of structure{layout( column_major std140) global highp 4X4 matrix of float world, layout( column_major std140) global highp 4X4 matrix of float worldInverse, layout( column_major std140) global highp 4X4 matrix of float worldCam, layout( column_major std140) global highp 4X4 matrix of float worldCamInverse, layout( column_major std140) global highp 4X4 matrix of float cam, layout( column_major std140) global highp 4X4 matrix of float camInverse, layout( column_major std140) global highp 4X4 matrix of float camProj, layout( column_major std140) global highp 4X4 matrix of float camProjInverse, layout( column_major std140) global highp 4X4 matrix of float proj, layout( column_major std140) global highp 4X4 matrix of float projInverse, layout( column_major std140) global highp 4X4 matrix of float worldCamProj, layout( column_major std140) global highp 4X4 matrix of float worldCamProjInverse, layout( column_major std140) global highp 4X4 matrix of float quadReproject, layout( column_major std140) global highp 3X3 matrix of float worldForNormals, layout( column_major std140) global highp 3X3 matrix of float camForNormals, layout( column_major std140) global highp 3X3 matrix of float worldCamForNormals}) -0:241 'anon@3' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 1-element array of structure{layout( column_major std140) global highp 4X4 matrix of float world, layout( column_major std140) global highp 4X4 matrix of float worldInverse, layout( column_major std140) global highp 4X4 matrix of float worldCam, layout( column_major std140) global highp 4X4 matrix of float worldCamInverse, layout( column_major std140) global highp 4X4 matrix of float cam, layout( column_major std140) global highp 4X4 matrix of float camInverse, layout( column_major std140) global highp 4X4 matrix of float camProj, layout( column_major std140) global highp 4X4 matrix of float camProjInverse, layout( column_major std140) global highp 4X4 matrix of float proj, layout( column_major std140) global highp 4X4 matrix of float projInverse, layout( column_major std140) global highp 4X4 matrix of float worldCamProj, layout( column_major std140) global highp 4X4 matrix of float worldCamProjInverse, layout( column_major std140) global highp 4X4 matrix of float quadReproject, layout( column_major std140) global highp 3X3 matrix of float worldForNormals, layout( column_major std140) global highp 3X3 matrix of float camForNormals, layout( column_major std140) global highp 3X3 matrix of float worldCamForNormals} uTDMats}) -0:241 Constant: -0:241 0 (const uint) -0:241 Function Call: TDCameraIndex( ( global highp int) -0:241 Constant: -0:241 0 (const int) -0:241 matrix-times-vector ( temp highp 3-component vector of float) -0:241 'm' ( temp highp 3X3 matrix of float) -0:241 'vec' ( in highp 3-component vector of float) -0:243 Function Definition: TDInstanceDeformNorm(i1;vf3; ( global highp 3-component vector of float) -0:243 Function Parameters: -0:243 'id' ( in highp int) -0:243 'vec' ( in highp 3-component vector of float) -0:245 Sequence -0:245 Sequence -0:245 move second child to first child ( temp highp 3X3 matrix of float) -0:245 'm' ( temp highp 3X3 matrix of float) -0:245 Function Call: TDInstanceMat3ForNorm(i1; ( global highp 3X3 matrix of float) -0:245 'id' ( in highp int) -0:246 Branch: Return with expression -0:246 matrix-times-vector ( temp highp 3-component vector of float) -0:246 Construct mat3 ( temp highp 3X3 matrix of float) -0:246 worldForNormals: direct index for structure (layout( column_major std140) global highp 3X3 matrix of float) -0:246 indirect index (layout( column_major std140 offset=0) temp structure{layout( column_major std140) global highp 4X4 matrix of float world, layout( column_major std140) global highp 4X4 matrix of float worldInverse, layout( column_major std140) global highp 4X4 matrix of float worldCam, layout( column_major std140) global highp 4X4 matrix of float worldCamInverse, layout( column_major std140) global highp 4X4 matrix of float cam, layout( column_major std140) global highp 4X4 matrix of float camInverse, layout( column_major std140) global highp 4X4 matrix of float camProj, layout( column_major std140) global highp 4X4 matrix of float camProjInverse, layout( column_major std140) global highp 4X4 matrix of float proj, layout( column_major std140) global highp 4X4 matrix of float projInverse, layout( column_major std140) global highp 4X4 matrix of float worldCamProj, layout( column_major std140) global highp 4X4 matrix of float worldCamProjInverse, layout( column_major std140) global highp 4X4 matrix of float quadReproject, layout( column_major std140) global highp 3X3 matrix of float worldForNormals, layout( column_major std140) global highp 3X3 matrix of float camForNormals, layout( column_major std140) global highp 3X3 matrix of float worldCamForNormals}) -0:246 uTDMats: direct index for structure (layout( column_major std140 offset=0) uniform 1-element array of structure{layout( column_major std140) global highp 4X4 matrix of float world, layout( column_major std140) global highp 4X4 matrix of float worldInverse, layout( column_major std140) global highp 4X4 matrix of float worldCam, layout( column_major std140) global highp 4X4 matrix of float worldCamInverse, layout( column_major std140) global highp 4X4 matrix of float cam, layout( column_major std140) global highp 4X4 matrix of float camInverse, layout( column_major std140) global highp 4X4 matrix of float camProj, layout( column_major std140) global highp 4X4 matrix of float camProjInverse, layout( column_major std140) global highp 4X4 matrix of float proj, layout( column_major std140) global highp 4X4 matrix of float projInverse, layout( column_major std140) global highp 4X4 matrix of float worldCamProj, layout( column_major std140) global highp 4X4 matrix of float worldCamProjInverse, layout( column_major std140) global highp 4X4 matrix of float quadReproject, layout( column_major std140) global highp 3X3 matrix of float worldForNormals, layout( column_major std140) global highp 3X3 matrix of float camForNormals, layout( column_major std140) global highp 3X3 matrix of float worldCamForNormals}) -0:246 'anon@3' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 1-element array of structure{layout( column_major std140) global highp 4X4 matrix of float world, layout( column_major std140) global highp 4X4 matrix of float worldInverse, layout( column_major std140) global highp 4X4 matrix of float worldCam, layout( column_major std140) global highp 4X4 matrix of float worldCamInverse, layout( column_major std140) global highp 4X4 matrix of float cam, layout( column_major std140) global highp 4X4 matrix of float camInverse, layout( column_major std140) global highp 4X4 matrix of float camProj, layout( column_major std140) global highp 4X4 matrix of float camProjInverse, layout( column_major std140) global highp 4X4 matrix of float proj, layout( column_major std140) global highp 4X4 matrix of float projInverse, layout( column_major std140) global highp 4X4 matrix of float worldCamProj, layout( column_major std140) global highp 4X4 matrix of float worldCamProjInverse, layout( column_major std140) global highp 4X4 matrix of float quadReproject, layout( column_major std140) global highp 3X3 matrix of float worldForNormals, layout( column_major std140) global highp 3X3 matrix of float camForNormals, layout( column_major std140) global highp 3X3 matrix of float worldCamForNormals} uTDMats}) -0:246 Constant: -0:246 0 (const uint) -0:246 Function Call: TDCameraIndex( ( global highp int) -0:246 Constant: -0:246 13 (const int) -0:246 matrix-times-vector ( temp highp 3-component vector of float) -0:246 'm' ( temp highp 3X3 matrix of float) -0:246 'vec' ( in highp 3-component vector of float) -0:248 Function Definition: TDInstanceDeform(vf4; ( global highp 4-component vector of float) -0:248 Function Parameters: -0:248 'pos' ( in highp 4-component vector of float) -0:249 Sequence -0:249 Branch: Return with expression -0:249 Function Call: TDInstanceDeform(i1;vf4; ( global highp 4-component vector of float) -0:249 Function Call: TDInstanceID( ( global highp int) -0:249 'pos' ( in highp 4-component vector of float) -0:251 Function Definition: TDInstanceDeformVec(vf3; ( global highp 3-component vector of float) -0:251 Function Parameters: -0:251 'vec' ( in highp 3-component vector of float) -0:252 Sequence -0:252 Branch: Return with expression -0:252 Function Call: TDInstanceDeformVec(i1;vf3; ( global highp 3-component vector of float) -0:252 Function Call: TDInstanceID( ( global highp int) -0:252 'vec' ( in highp 3-component vector of float) -0:254 Function Definition: TDInstanceDeformNorm(vf3; ( global highp 3-component vector of float) -0:254 Function Parameters: -0:254 'vec' ( in highp 3-component vector of float) -0:255 Sequence -0:255 Branch: Return with expression -0:255 Function Call: TDInstanceDeformNorm(i1;vf3; ( global highp 3-component vector of float) -0:255 Function Call: TDInstanceID( ( global highp int) -0:255 'vec' ( in highp 3-component vector of float) -0:257 Function Definition: TDInstanceActive( ( global bool) -0:257 Function Parameters: -0:257 Sequence -0:257 Branch: Return with expression -0:257 Function Call: TDInstanceActive(i1; ( global bool) -0:257 Function Call: TDInstanceID( ( global highp int) -0:258 Function Definition: TDInstanceTranslate( ( global highp 3-component vector of float) -0:258 Function Parameters: -0:258 Sequence -0:258 Branch: Return with expression -0:258 Function Call: TDInstanceTranslate(i1; ( global highp 3-component vector of float) -0:258 Function Call: TDInstanceID( ( global highp int) -0:259 Function Definition: TDInstanceRotateMat( ( global highp 3X3 matrix of float) -0:259 Function Parameters: -0:259 Sequence -0:259 Branch: Return with expression -0:259 Function Call: TDInstanceRotateMat(i1; ( global highp 3X3 matrix of float) -0:259 Function Call: TDInstanceID( ( global highp int) -0:260 Function Definition: TDInstanceScale( ( global highp 3-component vector of float) -0:260 Function Parameters: -0:260 Sequence -0:260 Branch: Return with expression -0:260 Function Call: TDInstanceScale(i1; ( global highp 3-component vector of float) -0:260 Function Call: TDInstanceID( ( global highp int) -0:261 Function Definition: TDInstanceMat( ( global highp 4X4 matrix of float) -0:261 Function Parameters: -0:261 Sequence -0:261 Branch: Return with expression -0:261 Function Call: TDInstanceMat(i1; ( global highp 4X4 matrix of float) -0:261 Function Call: TDInstanceID( ( global highp int) -0:263 Function Definition: TDInstanceMat3( ( global highp 3X3 matrix of float) -0:263 Function Parameters: -0:263 Sequence -0:263 Branch: Return with expression -0:263 Function Call: TDInstanceMat3(i1; ( global highp 3X3 matrix of float) -0:263 Function Call: TDInstanceID( ( global highp int) -0:265 Function Definition: TDInstanceTexCoord(vf3; ( global highp 3-component vector of float) -0:265 Function Parameters: -0:265 't' ( in highp 3-component vector of float) -0:266 Sequence -0:266 Branch: Return with expression -0:266 Function Call: TDInstanceTexCoord(i1;vf3; ( global highp 3-component vector of float) -0:266 Function Call: TDInstanceID( ( global highp int) -0:266 't' ( in highp 3-component vector of float) -0:268 Function Definition: TDInstanceColor(vf4; ( global highp 4-component vector of float) -0:268 Function Parameters: -0:268 'curColor' ( in highp 4-component vector of float) -0:269 Sequence -0:269 Branch: Return with expression -0:269 Function Call: TDInstanceColor(i1;vf4; ( global highp 4-component vector of float) -0:269 Function Call: TDInstanceID( ( global highp int) -0:269 'curColor' ( in highp 4-component vector of float) -0:271 Function Definition: TDSkinnedDeform(vf4; ( global highp 4-component vector of float) -0:271 Function Parameters: -0:271 'pos' ( in highp 4-component vector of float) -0:271 Sequence -0:271 Branch: Return with expression -0:271 'pos' ( in highp 4-component vector of float) -0:273 Function Definition: TDSkinnedDeformVec(vf3; ( global highp 3-component vector of float) -0:273 Function Parameters: -0:273 'vec' ( in highp 3-component vector of float) -0:273 Sequence -0:273 Branch: Return with expression -0:273 'vec' ( in highp 3-component vector of float) -0:275 Function Definition: TDFastDeformTangent(vf3;vf4;vf3; ( global highp 3-component vector of float) -0:275 Function Parameters: -0:275 'oldNorm' ( in highp 3-component vector of float) -0:275 'oldTangent' ( in highp 4-component vector of float) -0:275 'deformedNorm' ( in highp 3-component vector of float) -0:276 Sequence -0:276 Branch: Return with expression -0:276 vector swizzle ( temp highp 3-component vector of float) -0:276 'oldTangent' ( in highp 4-component vector of float) -0:276 Sequence -0:276 Constant: -0:276 0 (const int) -0:276 Constant: -0:276 1 (const int) -0:276 Constant: -0:276 2 (const int) -0:277 Function Definition: TDBoneMat(i1; ( global highp 4X4 matrix of float) -0:277 Function Parameters: -0:277 'index' ( in highp int) -0:278 Sequence -0:278 Branch: Return with expression -0:278 Constant: -0:278 1.000000 -0:278 0.000000 -0:278 0.000000 -0:278 0.000000 -0:278 0.000000 -0:278 1.000000 -0:278 0.000000 -0:278 0.000000 -0:278 0.000000 -0:278 0.000000 -0:278 1.000000 -0:278 0.000000 -0:278 0.000000 -0:278 0.000000 -0:278 0.000000 -0:278 1.000000 -0:280 Function Definition: TDDeform(vf4; ( global highp 4-component vector of float) -0:280 Function Parameters: -0:280 'pos' ( in highp 4-component vector of float) -0:281 Sequence -0:281 move second child to first child ( temp highp 4-component vector of float) -0:281 'pos' ( in highp 4-component vector of float) -0:281 Function Call: TDSkinnedDeform(vf4; ( global highp 4-component vector of float) -0:281 'pos' ( in highp 4-component vector of float) -0:282 move second child to first child ( temp highp 4-component vector of float) -0:282 'pos' ( in highp 4-component vector of float) -0:282 Function Call: TDInstanceDeform(vf4; ( global highp 4-component vector of float) -0:282 'pos' ( in highp 4-component vector of float) -0:283 Branch: Return with expression -0:283 'pos' ( in highp 4-component vector of float) -0:286 Function Definition: TDDeform(i1;vf3; ( global highp 4-component vector of float) -0:286 Function Parameters: -0:286 'instanceID' ( in highp int) -0:286 'p' ( in highp 3-component vector of float) -0:287 Sequence -0:287 Sequence -0:287 move second child to first child ( temp highp 4-component vector of float) -0:287 'pos' ( temp highp 4-component vector of float) -0:287 Construct vec4 ( temp highp 4-component vector of float) -0:287 'p' ( in highp 3-component vector of float) -0:287 Constant: -0:287 1.000000 -0:288 move second child to first child ( temp highp 4-component vector of float) -0:288 'pos' ( temp highp 4-component vector of float) -0:288 Function Call: TDSkinnedDeform(vf4; ( global highp 4-component vector of float) -0:288 'pos' ( temp highp 4-component vector of float) -0:289 move second child to first child ( temp highp 4-component vector of float) -0:289 'pos' ( temp highp 4-component vector of float) -0:289 Function Call: TDInstanceDeform(i1;vf4; ( global highp 4-component vector of float) -0:289 'instanceID' ( in highp int) -0:289 'pos' ( temp highp 4-component vector of float) -0:290 Branch: Return with expression -0:290 'pos' ( temp highp 4-component vector of float) -0:293 Function Definition: TDDeform(vf3; ( global highp 4-component vector of float) -0:293 Function Parameters: -0:293 'pos' ( in highp 3-component vector of float) -0:294 Sequence -0:294 Branch: Return with expression -0:294 Function Call: TDDeform(i1;vf3; ( global highp 4-component vector of float) -0:294 Function Call: TDInstanceID( ( global highp int) -0:294 'pos' ( in highp 3-component vector of float) -0:297 Function Definition: TDDeformVec(i1;vf3; ( global highp 3-component vector of float) -0:297 Function Parameters: -0:297 'instanceID' ( in highp int) -0:297 'vec' ( in highp 3-component vector of float) -0:298 Sequence -0:298 move second child to first child ( temp highp 3-component vector of float) -0:298 'vec' ( in highp 3-component vector of float) -0:298 Function Call: TDSkinnedDeformVec(vf3; ( global highp 3-component vector of float) -0:298 'vec' ( in highp 3-component vector of float) -0:299 move second child to first child ( temp highp 3-component vector of float) -0:299 'vec' ( in highp 3-component vector of float) -0:299 Function Call: TDInstanceDeformVec(i1;vf3; ( global highp 3-component vector of float) -0:299 'instanceID' ( in highp int) -0:299 'vec' ( in highp 3-component vector of float) -0:300 Branch: Return with expression -0:300 'vec' ( in highp 3-component vector of float) -0:303 Function Definition: TDDeformVec(vf3; ( global highp 3-component vector of float) -0:303 Function Parameters: -0:303 'vec' ( in highp 3-component vector of float) -0:304 Sequence -0:304 Branch: Return with expression -0:304 Function Call: TDDeformVec(i1;vf3; ( global highp 3-component vector of float) -0:304 Function Call: TDInstanceID( ( global highp int) -0:304 'vec' ( in highp 3-component vector of float) -0:307 Function Definition: TDDeformNorm(i1;vf3; ( global highp 3-component vector of float) -0:307 Function Parameters: -0:307 'instanceID' ( in highp int) -0:307 'vec' ( in highp 3-component vector of float) -0:308 Sequence -0:308 move second child to first child ( temp highp 3-component vector of float) -0:308 'vec' ( in highp 3-component vector of float) -0:308 Function Call: TDSkinnedDeformVec(vf3; ( global highp 3-component vector of float) -0:308 'vec' ( in highp 3-component vector of float) -0:309 move second child to first child ( temp highp 3-component vector of float) -0:309 'vec' ( in highp 3-component vector of float) -0:309 Function Call: TDInstanceDeformNorm(i1;vf3; ( global highp 3-component vector of float) -0:309 'instanceID' ( in highp int) -0:309 'vec' ( in highp 3-component vector of float) -0:310 Branch: Return with expression -0:310 'vec' ( in highp 3-component vector of float) -0:313 Function Definition: TDDeformNorm(vf3; ( global highp 3-component vector of float) -0:313 Function Parameters: -0:313 'vec' ( in highp 3-component vector of float) -0:314 Sequence -0:314 Branch: Return with expression -0:314 Function Call: TDDeformNorm(i1;vf3; ( global highp 3-component vector of float) -0:314 Function Call: TDInstanceID( ( global highp int) -0:314 'vec' ( in highp 3-component vector of float) -0:317 Function Definition: TDSkinnedDeformNorm(vf3; ( global highp 3-component vector of float) -0:317 Function Parameters: -0:317 'vec' ( in highp 3-component vector of float) -0:318 Sequence -0:318 move second child to first child ( temp highp 3-component vector of float) -0:318 'vec' ( in highp 3-component vector of float) -0:318 Function Call: TDSkinnedDeformVec(vf3; ( global highp 3-component vector of float) -0:318 'vec' ( in highp 3-component vector of float) -0:319 Branch: Return with expression -0:319 'vec' ( in highp 3-component vector of float) -0:? Linker Objects -0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal}) -0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 1-element array of structure{layout( column_major std140) global highp 4X4 matrix of float world, layout( column_major std140) global highp 4X4 matrix of float worldInverse, layout( column_major std140) global highp 4X4 matrix of float worldCam, layout( column_major std140) global highp 4X4 matrix of float worldCamInverse, layout( column_major std140) global highp 4X4 matrix of float cam, layout( column_major std140) global highp 4X4 matrix of float camInverse, layout( column_major std140) global highp 4X4 matrix of float camProj, layout( column_major std140) global highp 4X4 matrix of float camProjInverse, layout( column_major std140) global highp 4X4 matrix of float proj, layout( column_major std140) global highp 4X4 matrix of float projInverse, layout( column_major std140) global highp 4X4 matrix of float worldCamProj, layout( column_major std140) global highp 4X4 matrix of float worldCamProjInverse, layout( column_major std140) global highp 4X4 matrix of float quadReproject, layout( column_major std140) global highp 3X3 matrix of float worldForNormals, layout( column_major std140) global highp 3X3 matrix of float camForNormals, layout( column_major std140) global highp 3X3 matrix of float worldCamForNormals} uTDMats}) -0:? 'anon@2' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 1-element array of structure{ global highp 4-component vector of float nearFar, global highp 4-component vector of float fog, global highp 4-component vector of float fogColor, global highp int renderTOPCameraIndex} uTDCamInfos}) -0:? 'anon@3' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform structure{ global highp 4-component vector of float ambientColor, global highp 4-component vector of float nearFar, global highp 4-component vector of float viewport, global highp 4-component vector of float viewportRes, global highp 4-component vector of float fog, global highp 4-component vector of float fogColor} uTDGeneral}) -0:? 'P' (layout( location=0) in highp 3-component vector of float) -0:? 'N' (layout( location=1) in highp 3-component vector of float) -0:? 'Cd' (layout( location=2) in highp 4-component vector of float) -0:? 'uv' (layout( location=3) in 8-element array of highp 3-component vector of float) -0:? 'oVert' ( out block{ out highp 4-component vector of float color, out highp 3-component vector of float worldSpacePos, out highp 3-component vector of float texCoord0, flat out highp int cameraIndex, flat out highp int instance}) -0:? 'anon@4' ( 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, out 1-element array of float CullDistance gl_CullDistance}) -0:? 'gl_VertexIndex' ( in int VertexIndex) -0:? 'gl_InstanceIndex' ( in int InstanceIndex) -0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 1-element array of structure{ global highp 4-component vector of float position, global highp 3-component vector of float direction, global highp 3-component vector of float diffuse, global highp 4-component vector of float nearFar, global highp 4-component vector of float lightSize, global highp 4-component vector of float misc, global highp 4-component vector of float coneLookupScaleBias, global highp 4-component vector of float attenScaleBiasRoll, layout( column_major std140) global highp 4X4 matrix of float shadowMapMatrix, layout( column_major std140) global highp 4X4 matrix of float shadowMapCamMatrix, global highp 4-component vector of float shadowMapRes, layout( column_major std140) global highp 4X4 matrix of float projMapMatrix} uTDLights}) -0:? 'anon@2' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 1-element array of structure{ global highp 3-component vector of float color, layout( column_major std140) global highp 3X3 matrix of float rotate} uTDEnvLights}) -0:? 'uTDEnvLightBuffers' (layout( column_major std430) restrict readonly buffer 1-element array of block{layout( column_major std430 offset=0) restrict readonly buffer 9-element array of highp 3-component vector of float shCoeffs}) -0:? 'mTD2DImageOutputs' (layout( rgba8) uniform 1-element array of highp image2D) -0:? 'mTD2DArrayImageOutputs' (layout( rgba8) uniform 1-element array of highp image2DArray) -0:? 'mTD3DImageOutputs' (layout( rgba8) uniform 1-element array of highp image3D) -0:? 'mTDCubeImageOutputs' (layout( rgba8) uniform 1-element array of highp imageCube) -0:? 'sTDInstanceT' (layout( binding=15) uniform highp samplerBuffer) -0:? 'sTDInstanceTexCoord' (layout( binding=16) uniform highp samplerBuffer) -0:? 'sTDInstanceColor' (layout( binding=17) uniform highp samplerBuffer) -Shader version: 460 -gl_FragCoord origin is upper left -0:? Sequence -0:95 Function Definition: main( ( global void) -0:95 Function Parameters: -0:99 Sequence -0:99 Function Call: TDCheckDiscard( ( global void) -0:101 Sequence -0:101 move second child to first child ( temp highp 4-component vector of float) -0:101 'outcol' ( temp highp 4-component vector of float) -0:101 Constant: -0:101 0.000000 -0:101 0.000000 -0:101 0.000000 -0:101 0.000000 -0:103 Sequence -0:103 move second child to first child ( temp highp 3-component vector of float) -0:103 'texCoord0' ( temp highp 3-component vector of float) -0:103 vector swizzle ( temp highp 3-component vector of float) -0:103 texCoord0: direct index for structure ( in highp 3-component vector of float) -0:103 'iVert' ( in block{ in highp 4-component vector of float color, in highp 3-component vector of float worldSpacePos, in highp 3-component vector of float texCoord0, flat in highp int cameraIndex, flat in highp int instance}) -0:103 Constant: -0:103 2 (const int) -0:103 Sequence -0:103 Constant: -0:103 0 (const int) -0:103 Constant: -0:103 1 (const int) -0:103 Constant: -0:103 2 (const int) -0:104 Sequence -0:104 move second child to first child ( temp highp float) -0:104 'actualTexZ' ( temp highp float) -0:104 mod ( global highp float) -0:104 Convert int to float ( temp highp float) -0:104 Convert float to int ( temp highp int) -0:104 direct index ( temp highp float) -0:104 'texCoord0' ( temp highp 3-component vector of float) -0:104 Constant: -0:104 2 (const int) -0:104 Constant: -0:104 2048.000000 -0:105 Sequence -0:105 move second child to first child ( temp highp float) -0:105 'instanceLoop' ( temp highp float) -0:105 Floor ( global highp float) -0:105 Convert int to float ( temp highp float) -0:105 divide ( temp highp int) -0:105 Convert float to int ( temp highp int) -0:105 direct index ( temp highp float) -0:105 'texCoord0' ( temp highp 3-component vector of float) -0:105 Constant: -0:105 2 (const int) -0:105 Constant: -0:105 2048 (const int) -0:106 move second child to first child ( temp highp float) -0:106 direct index ( temp highp float) -0:106 'texCoord0' ( temp highp 3-component vector of float) -0:106 Constant: -0:106 2 (const int) -0:106 'actualTexZ' ( temp highp float) -0:107 Sequence -0:107 move second child to first child ( temp highp 4-component vector of float) -0:107 'colorMapColor' ( temp highp 4-component vector of float) -0:107 texture ( global highp 4-component vector of float) -0:107 'sColorMap' ( uniform highp sampler2DArray) -0:107 vector swizzle ( temp highp 3-component vector of float) -0:107 'texCoord0' ( temp highp 3-component vector of float) -0:107 Sequence -0:107 Constant: -0:107 0 (const int) -0:107 Constant: -0:107 1 (const int) -0:107 Constant: -0:107 2 (const int) -0:109 Sequence -0:109 move second child to first child ( temp highp float) -0:109 'red' ( temp highp float) -0:109 indirect index ( temp highp float) -0:109 'colorMapColor' ( temp highp 4-component vector of float) -0:109 Convert float to int ( temp highp int) -0:109 'instanceLoop' ( temp highp float) -0:110 move second child to first child ( temp highp 4-component vector of float) -0:110 'colorMapColor' ( temp highp 4-component vector of float) -0:110 Construct vec4 ( temp highp 4-component vector of float) -0:110 'red' ( temp highp float) -0:112 add second child into first child ( temp highp 3-component vector of float) -0:112 vector swizzle ( temp highp 3-component vector of float) -0:112 'outcol' ( temp highp 4-component vector of float) -0:112 Sequence -0:112 Constant: -0:112 0 (const int) -0:112 Constant: -0:112 1 (const int) -0:112 Constant: -0:112 2 (const int) -0:112 component-wise multiply ( temp highp 3-component vector of float) -0:112 uConstant: direct index for structure ( uniform highp 3-component vector of float) -0:112 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal, uniform highp 3-component vector of float uConstant, uniform highp float uShadowStrength, uniform highp 3-component vector of float uShadowColor, uniform highp 4-component vector of float uDiffuseColor, uniform highp 4-component vector of float uAmbientColor}) -0:112 Constant: -0:112 3 (const uint) -0:112 vector swizzle ( temp highp 3-component vector of float) -0:112 color: direct index for structure ( in highp 4-component vector of float) -0:112 'iVert' ( in block{ in highp 4-component vector of float color, in highp 3-component vector of float worldSpacePos, in highp 3-component vector of float texCoord0, flat in highp int cameraIndex, flat in highp int instance}) -0:112 Constant: -0:112 0 (const int) -0:112 Sequence -0:112 Constant: -0:112 0 (const int) -0:112 Constant: -0:112 1 (const int) -0:112 Constant: -0:112 2 (const int) -0:114 multiply second child into first child ( temp highp 4-component vector of float) -0:114 'outcol' ( temp highp 4-component vector of float) -0:114 'colorMapColor' ( temp highp 4-component vector of float) -0:117 Sequence -0:117 move second child to first child ( temp highp float) -0:117 'alpha' ( temp highp float) -0:117 component-wise multiply ( temp highp float) -0:117 direct index ( temp highp float) -0:117 color: direct index for structure ( in highp 4-component vector of float) -0:117 'iVert' ( in block{ in highp 4-component vector of float color, in highp 3-component vector of float worldSpacePos, in highp 3-component vector of float texCoord0, flat in highp int cameraIndex, flat in highp int instance}) -0:117 Constant: -0:117 0 (const int) -0:117 Constant: -0:117 3 (const int) -0:117 direct index ( temp highp float) -0:117 'colorMapColor' ( temp highp 4-component vector of float) -0:117 Constant: -0:117 3 (const int) -0:120 move second child to first child ( temp highp 4-component vector of float) -0:120 'outcol' ( temp highp 4-component vector of float) -0:120 Function Call: TDDither(vf4; ( global highp 4-component vector of float) -0:120 'outcol' ( temp highp 4-component vector of float) -0:122 vector scale second child into first child ( temp highp 3-component vector of float) -0:122 vector swizzle ( temp highp 3-component vector of float) -0:122 'outcol' ( temp highp 4-component vector of float) -0:122 Sequence -0:122 Constant: -0:122 0 (const int) -0:122 Constant: -0:122 1 (const int) -0:122 Constant: -0:122 2 (const int) -0:122 'alpha' ( temp highp float) -0:126 Function Call: TDAlphaTest(f1; ( global void) -0:126 'alpha' ( temp highp float) -0:128 move second child to first child ( temp highp float) -0:128 direct index ( temp highp float) -0:128 'outcol' ( temp highp 4-component vector of float) -0:128 Constant: -0:128 3 (const int) -0:128 'alpha' ( temp highp float) -0:129 move second child to first child ( temp highp 4-component vector of float) -0:129 direct index (layout( location=0) temp highp 4-component vector of float) -0:129 'oFragColor' (layout( location=0) out 1-element array of highp 4-component vector of float) -0:129 Constant: -0:129 0 (const int) -0:129 Function Call: TDOutputSwizzle(vf4; ( global highp 4-component vector of float) -0:129 'outcol' ( temp highp 4-component vector of float) -0:135 Sequence -0:135 Sequence -0:135 move second child to first child ( temp highp int) -0:135 'i' ( temp highp int) -0:135 Constant: -0:135 1 (const int) -0:135 Loop with condition tested first -0:135 Loop Condition -0:135 Compare Less Than ( temp bool) -0:135 'i' ( temp highp int) -0:135 Constant: -0:135 1 (const int) -0:135 Loop Body -0:137 Sequence -0:137 move second child to first child ( temp highp 4-component vector of float) -0:137 indirect index (layout( location=0) temp highp 4-component vector of float) -0:137 'oFragColor' (layout( location=0) out 1-element array of highp 4-component vector of float) -0:137 'i' ( temp highp int) -0:137 Constant: -0:137 0.000000 -0:137 0.000000 -0:137 0.000000 -0:137 0.000000 -0:135 Loop Terminal Expression -0:135 Post-Increment ( temp highp int) -0:135 'i' ( temp highp int) -0:116 Function Definition: TDColor(vf4; ( global highp 4-component vector of float) -0:116 Function Parameters: -0:116 'color' ( in highp 4-component vector of float) -0:116 Sequence -0:116 Branch: Return with expression -0:116 'color' ( in highp 4-component vector of float) -0:117 Function Definition: TDCheckOrderIndTrans( ( global void) -0:117 Function Parameters: -0:119 Function Definition: TDCheckDiscard( ( global void) -0:119 Function Parameters: -0:120 Sequence -0:120 Function Call: TDCheckOrderIndTrans( ( global void) -0:122 Function Definition: TDDither(vf4; ( global highp 4-component vector of float) -0:122 Function Parameters: -0:122 'color' ( in highp 4-component vector of float) -0:124 Sequence -0:124 Sequence -0:124 move second child to first child ( temp highp float) -0:124 'd' ( temp highp float) -0:125 direct index ( temp highp float) -0:125 texture ( global highp 4-component vector of float) -0:124 'sTDNoiseMap' ( uniform highp sampler2D) -0:125 divide ( temp highp 2-component vector of float) -0:125 vector swizzle ( temp highp 2-component vector of float) -0:125 'gl_FragCoord' ( gl_FragCoord highp 4-component vector of float FragCoord) -0:125 Sequence -0:125 Constant: -0:125 0 (const int) -0:125 Constant: -0:125 1 (const int) -0:125 Constant: -0:125 256.000000 -0:125 Constant: -0:125 0 (const int) -0:126 subtract second child into first child ( temp highp float) -0:126 'd' ( temp highp float) -0:126 Constant: -0:126 0.500000 -0:127 divide second child into first child ( temp highp float) -0:127 'd' ( temp highp float) -0:127 Constant: -0:127 256.000000 -0:128 Branch: Return with expression -0:128 Construct vec4 ( temp highp 4-component vector of float) -0:128 add ( temp highp 3-component vector of float) -0:128 vector swizzle ( temp highp 3-component vector of float) -0:128 'color' ( in highp 4-component vector of float) -0:128 Sequence -0:128 Constant: -0:128 0 (const int) -0:128 Constant: -0:128 1 (const int) -0:128 Constant: -0:128 2 (const int) -0:128 'd' ( temp highp float) -0:128 direct index ( temp highp float) -0:128 'color' ( in highp 4-component vector of float) -0:128 Constant: -0:128 3 (const int) -0:130 Function Definition: TDFrontFacing(vf3;vf3; ( global bool) -0:130 Function Parameters: -0:130 'pos' ( in highp 3-component vector of float) -0:130 'normal' ( in highp 3-component vector of float) -0:132 Sequence -0:132 Branch: Return with expression -0:132 'gl_FrontFacing' ( gl_FrontFacing bool Face) -0:134 Function Definition: TDAttenuateLight(i1;f1; ( global highp float) -0:134 Function Parameters: -0:134 'index' ( in highp int) -0:134 'lightDist' ( in highp float) -0:136 Sequence -0:136 Branch: Return with expression -0:136 Constant: -0:136 1.000000 -0:138 Function Definition: TDAlphaTest(f1; ( global void) -0:138 Function Parameters: -0:138 'alpha' ( in highp float) -0:140 Function Definition: TDHardShadow(i1;vf3; ( global highp float) -0:140 Function Parameters: -0:140 'lightIndex' ( in highp int) -0:140 'worldSpacePos' ( in highp 3-component vector of float) -0:141 Sequence -0:141 Branch: Return with expression -0:141 Constant: -0:141 0.000000 -0:142 Function Definition: TDSoftShadow(i1;vf3;i1;i1; ( global highp float) -0:142 Function Parameters: -0:142 'lightIndex' ( in highp int) -0:142 'worldSpacePos' ( in highp 3-component vector of float) -0:142 'samples' ( in highp int) -0:142 'steps' ( in highp int) -0:143 Sequence -0:143 Branch: Return with expression -0:143 Constant: -0:143 0.000000 -0:144 Function Definition: TDSoftShadow(i1;vf3; ( global highp float) -0:144 Function Parameters: -0:144 'lightIndex' ( in highp int) -0:144 'worldSpacePos' ( in highp 3-component vector of float) -0:145 Sequence -0:145 Branch: Return with expression -0:145 Constant: -0:145 0.000000 -0:146 Function Definition: TDShadow(i1;vf3; ( global highp float) -0:146 Function Parameters: -0:146 'lightIndex' ( in highp int) -0:146 'worldSpacePos' ( in highp 3-component vector of float) -0:147 Sequence -0:147 Branch: Return with expression -0:147 Constant: -0:147 0.000000 -0:152 Function Definition: iTDRadicalInverse_VdC(u1; ( global highp float) -0:152 Function Parameters: -0:152 'bits' ( in highp uint) -0:154 Sequence -0:154 move second child to first child ( temp highp uint) -0:154 'bits' ( in highp uint) -0:154 inclusive-or ( temp highp uint) -0:154 left-shift ( temp highp uint) -0:154 'bits' ( in highp uint) -0:154 Constant: -0:154 16 (const uint) -0:154 right-shift ( temp highp uint) -0:154 'bits' ( in highp uint) -0:154 Constant: -0:154 16 (const uint) -0:155 move second child to first child ( temp highp uint) -0:155 'bits' ( in highp uint) -0:155 inclusive-or ( temp highp uint) -0:155 left-shift ( temp highp uint) -0:155 bitwise and ( temp highp uint) -0:155 'bits' ( in highp uint) -0:155 Constant: -0:155 1431655765 (const uint) -0:155 Constant: -0:155 1 (const uint) -0:155 right-shift ( temp highp uint) -0:155 bitwise and ( temp highp uint) -0:155 'bits' ( in highp uint) -0:155 Constant: -0:155 2863311530 (const uint) -0:155 Constant: -0:155 1 (const uint) -0:156 move second child to first child ( temp highp uint) -0:156 'bits' ( in highp uint) -0:156 inclusive-or ( temp highp uint) -0:156 left-shift ( temp highp uint) -0:156 bitwise and ( temp highp uint) -0:156 'bits' ( in highp uint) -0:156 Constant: -0:156 858993459 (const uint) -0:156 Constant: -0:156 2 (const uint) -0:156 right-shift ( temp highp uint) -0:156 bitwise and ( temp highp uint) -0:156 'bits' ( in highp uint) -0:156 Constant: -0:156 3435973836 (const uint) -0:156 Constant: -0:156 2 (const uint) -0:157 move second child to first child ( temp highp uint) -0:157 'bits' ( in highp uint) -0:157 inclusive-or ( temp highp uint) -0:157 left-shift ( temp highp uint) -0:157 bitwise and ( temp highp uint) -0:157 'bits' ( in highp uint) -0:157 Constant: -0:157 252645135 (const uint) -0:157 Constant: -0:157 4 (const uint) -0:157 right-shift ( temp highp uint) -0:157 bitwise and ( temp highp uint) -0:157 'bits' ( in highp uint) -0:157 Constant: -0:157 4042322160 (const uint) -0:157 Constant: -0:157 4 (const uint) -0:158 move second child to first child ( temp highp uint) -0:158 'bits' ( in highp uint) -0:158 inclusive-or ( temp highp uint) -0:158 left-shift ( temp highp uint) -0:158 bitwise and ( temp highp uint) -0:158 'bits' ( in highp uint) -0:158 Constant: -0:158 16711935 (const uint) -0:158 Constant: -0:158 8 (const uint) -0:158 right-shift ( temp highp uint) -0:158 bitwise and ( temp highp uint) -0:158 'bits' ( in highp uint) -0:158 Constant: -0:158 4278255360 (const uint) -0:158 Constant: -0:158 8 (const uint) -0:159 Branch: Return with expression -0:159 component-wise multiply ( temp highp float) -0:159 Convert uint to float ( temp highp float) -0:159 'bits' ( in highp uint) -0:159 Constant: -0:159 2.3283064365387e-10 -0:161 Function Definition: iTDHammersley(u1;u1; ( global highp 2-component vector of float) -0:161 Function Parameters: -0:161 'i' ( in highp uint) -0:161 'N' ( in highp uint) -0:163 Sequence -0:163 Branch: Return with expression -0:163 Construct vec2 ( temp highp 2-component vector of float) -0:163 divide ( temp highp float) -0:163 Convert uint to float ( temp highp float) -0:163 'i' ( in highp uint) -0:163 Convert uint to float ( temp highp float) -0:163 'N' ( in highp uint) -0:163 Function Call: iTDRadicalInverse_VdC(u1; ( global highp float) -0:163 'i' ( in highp uint) -0:165 Function Definition: iTDImportanceSampleGGX(vf2;f1;vf3; ( global highp 3-component vector of float) -0:165 Function Parameters: -0:165 'Xi' ( in highp 2-component vector of float) -0:165 'roughness2' ( in highp float) -0:165 'N' ( in highp 3-component vector of float) -0:167 Sequence -0:167 Sequence -0:167 move second child to first child ( temp highp float) -0:167 'a' ( temp highp float) -0:167 'roughness2' ( in highp float) -0:168 Sequence -0:168 move second child to first child ( temp highp float) -0:168 'phi' ( temp highp float) -0:168 component-wise multiply ( temp highp float) -0:168 Constant: -0:168 6.283185 -0:168 direct index ( temp highp float) -0:168 'Xi' ( in highp 2-component vector of float) -0:168 Constant: -0:168 0 (const int) -0:169 Sequence -0:169 move second child to first child ( temp highp float) -0:169 'cosTheta' ( temp highp float) -0:169 sqrt ( global highp float) -0:169 divide ( temp highp float) -0:169 subtract ( temp highp float) -0:169 Constant: -0:169 1.000000 -0:169 direct index ( temp highp float) -0:169 'Xi' ( in highp 2-component vector of float) -0:169 Constant: -0:169 1 (const int) -0:169 add ( temp highp float) -0:169 Constant: -0:169 1.000000 -0:169 component-wise multiply ( temp highp float) -0:169 subtract ( temp highp float) -0:169 component-wise multiply ( temp highp float) -0:169 'a' ( temp highp float) -0:169 'a' ( temp highp float) -0:169 Constant: -0:169 1.000000 -0:169 direct index ( temp highp float) -0:169 'Xi' ( in highp 2-component vector of float) -0:169 Constant: -0:169 1 (const int) -0:170 Sequence -0:170 move second child to first child ( temp highp float) -0:170 'sinTheta' ( temp highp float) -0:170 sqrt ( global highp float) -0:170 subtract ( temp highp float) -0:170 Constant: -0:170 1.000000 -0:170 component-wise multiply ( temp highp float) -0:170 'cosTheta' ( temp highp float) -0:170 'cosTheta' ( temp highp float) -0:173 move second child to first child ( temp highp float) -0:173 direct index ( temp highp float) -0:173 'H' ( temp highp 3-component vector of float) -0:173 Constant: -0:173 0 (const int) -0:173 component-wise multiply ( temp highp float) -0:173 'sinTheta' ( temp highp float) -0:173 cosine ( global highp float) -0:173 'phi' ( temp highp float) -0:174 move second child to first child ( temp highp float) -0:174 direct index ( temp highp float) -0:174 'H' ( temp highp 3-component vector of float) -0:174 Constant: -0:174 1 (const int) -0:174 component-wise multiply ( temp highp float) -0:174 'sinTheta' ( temp highp float) -0:174 sine ( global highp float) -0:174 'phi' ( temp highp float) -0:175 move second child to first child ( temp highp float) -0:175 direct index ( temp highp float) -0:175 'H' ( temp highp 3-component vector of float) -0:175 Constant: -0:175 2 (const int) -0:175 'cosTheta' ( temp highp float) -0:177 Sequence -0:177 move second child to first child ( temp highp 3-component vector of float) -0:177 'upVector' ( temp highp 3-component vector of float) -0:177 Test condition and select ( temp highp 3-component vector of float) -0:177 Condition -0:177 Compare Less Than ( temp bool) -0:177 Absolute value ( global highp float) -0:177 direct index ( temp highp float) -0:177 'N' ( in highp 3-component vector of float) -0:177 Constant: -0:177 2 (const int) -0:177 Constant: -0:177 0.999000 -0:177 true case -0:177 Constant: -0:177 0.000000 -0:177 0.000000 -0:177 1.000000 -0:177 false case -0:177 Constant: -0:177 1.000000 -0:177 0.000000 -0:177 0.000000 -0:178 Sequence -0:178 move second child to first child ( temp highp 3-component vector of float) -0:178 'tangentX' ( temp highp 3-component vector of float) -0:178 normalize ( global highp 3-component vector of float) -0:178 cross-product ( global highp 3-component vector of float) -0:178 'upVector' ( temp highp 3-component vector of float) -0:178 'N' ( in highp 3-component vector of float) -0:179 Sequence -0:179 move second child to first child ( temp highp 3-component vector of float) -0:179 'tangentY' ( temp highp 3-component vector of float) -0:179 cross-product ( global highp 3-component vector of float) -0:179 'N' ( in highp 3-component vector of float) -0:179 'tangentX' ( temp highp 3-component vector of float) -0:182 Sequence -0:182 move second child to first child ( temp highp 3-component vector of float) -0:182 'worldResult' ( temp highp 3-component vector of float) -0:182 add ( temp highp 3-component vector of float) -0:182 add ( temp highp 3-component vector of float) -0:182 vector-scale ( temp highp 3-component vector of float) -0:182 'tangentX' ( temp highp 3-component vector of float) -0:182 direct index ( temp highp float) -0:182 'H' ( temp highp 3-component vector of float) -0:182 Constant: -0:182 0 (const int) -0:182 vector-scale ( temp highp 3-component vector of float) -0:182 'tangentY' ( temp highp 3-component vector of float) -0:182 direct index ( temp highp float) -0:182 'H' ( temp highp 3-component vector of float) -0:182 Constant: -0:182 1 (const int) -0:182 vector-scale ( temp highp 3-component vector of float) -0:182 'N' ( in highp 3-component vector of float) -0:182 direct index ( temp highp float) -0:182 'H' ( temp highp 3-component vector of float) -0:182 Constant: -0:182 2 (const int) -0:183 Branch: Return with expression -0:183 'worldResult' ( temp highp 3-component vector of float) -0:185 Function Definition: iTDDistributionGGX(vf3;vf3;f1; ( global highp float) -0:185 Function Parameters: -0:185 'normal' ( in highp 3-component vector of float) -0:185 'half_vector' ( in highp 3-component vector of float) -0:185 'roughness2' ( in highp float) -0:? Sequence -0:189 Sequence -0:189 move second child to first child ( temp highp float) -0:189 'NdotH' ( temp highp float) -0:189 clamp ( global highp float) -0:189 dot-product ( global highp float) -0:189 'normal' ( in highp 3-component vector of float) -0:189 'half_vector' ( in highp 3-component vector of float) -0:189 Constant: -0:189 1.0000000000000e-06 -0:189 Constant: -0:189 1.000000 -0:191 Sequence -0:191 move second child to first child ( temp highp float) -0:191 'alpha2' ( temp highp float) -0:191 component-wise multiply ( temp highp float) -0:191 'roughness2' ( in highp float) -0:191 'roughness2' ( in highp float) -0:193 Sequence -0:193 move second child to first child ( temp highp float) -0:193 'denom' ( temp highp float) -0:193 add ( temp highp float) -0:193 component-wise multiply ( temp highp float) -0:193 component-wise multiply ( temp highp float) -0:193 'NdotH' ( temp highp float) -0:193 'NdotH' ( temp highp float) -0:193 subtract ( temp highp float) -0:193 'alpha2' ( temp highp float) -0:193 Constant: -0:193 1.000000 -0:193 Constant: -0:193 1.000000 -0:194 move second child to first child ( temp highp float) -0:194 'denom' ( temp highp float) -0:194 max ( global highp float) -0:194 Constant: -0:194 1.0000000000000e-08 -0:194 'denom' ( temp highp float) -0:195 Branch: Return with expression -0:195 divide ( temp highp float) -0:195 'alpha2' ( temp highp float) -0:195 component-wise multiply ( temp highp float) -0:195 component-wise multiply ( temp highp float) -0:195 Constant: -0:195 3.141593 -0:195 'denom' ( temp highp float) -0:195 'denom' ( temp highp float) -0:197 Function Definition: iTDCalcF(vf3;f1; ( global highp 3-component vector of float) -0:197 Function Parameters: -0:197 'F0' ( in highp 3-component vector of float) -0:197 'VdotH' ( in highp float) -0:198 Sequence -0:198 Branch: Return with expression -0:198 add ( temp highp 3-component vector of float) -0:198 'F0' ( in highp 3-component vector of float) -0:198 vector-scale ( temp highp 3-component vector of float) -0:198 subtract ( temp highp 3-component vector of float) -0:198 Constant: -0:198 1.000000 -0:198 1.000000 -0:198 1.000000 -0:198 'F0' ( in highp 3-component vector of float) -0:198 pow ( global highp float) -0:198 Constant: -0:198 2.000000 -0:198 component-wise multiply ( temp highp float) -0:198 subtract ( temp highp float) -0:198 component-wise multiply ( temp highp float) -0:198 Constant: -0:198 -5.554730 -0:198 'VdotH' ( in highp float) -0:198 Constant: -0:198 6.983160 -0:198 'VdotH' ( in highp float) -0:201 Function Definition: iTDCalcG(f1;f1;f1; ( global highp float) -0:201 Function Parameters: -0:201 'NdotL' ( in highp float) -0:201 'NdotV' ( in highp float) -0:201 'k' ( in highp float) -0:202 Sequence -0:202 Sequence -0:202 move second child to first child ( temp highp float) -0:202 'Gl' ( temp highp float) -0:202 divide ( temp highp float) -0:202 Constant: -0:202 1.000000 -0:202 add ( temp highp float) -0:202 component-wise multiply ( temp highp float) -0:202 'NdotL' ( in highp float) -0:202 subtract ( temp highp float) -0:202 Constant: -0:202 1.000000 -0:202 'k' ( in highp float) -0:202 'k' ( in highp float) -0:203 Sequence -0:203 move second child to first child ( temp highp float) -0:203 'Gv' ( temp highp float) -0:203 divide ( temp highp float) -0:203 Constant: -0:203 1.000000 -0:203 add ( temp highp float) -0:203 component-wise multiply ( temp highp float) -0:203 'NdotV' ( in highp float) -0:203 subtract ( temp highp float) -0:203 Constant: -0:203 1.000000 -0:203 'k' ( in highp float) -0:203 'k' ( in highp float) -0:204 Branch: Return with expression -0:204 component-wise multiply ( temp highp float) -0:204 'Gl' ( temp highp float) -0:204 'Gv' ( temp highp float) -0:207 Function Definition: TDLightingPBR(i1;vf3;vf3;vf3;vf3;f1;vf3;vf3;f1; ( global structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:207 Function Parameters: -0:207 'index' ( in highp int) -0:207 'diffuseColor' ( in highp 3-component vector of float) -0:207 'specularColor' ( in highp 3-component vector of float) -0:207 'worldSpacePos' ( in highp 3-component vector of float) -0:207 'normal' ( in highp 3-component vector of float) -0:207 'shadowStrength' ( in highp float) -0:207 'shadowColor' ( in highp 3-component vector of float) -0:207 'camVector' ( in highp 3-component vector of float) -0:207 'roughness' ( in highp float) -0:? Sequence -0:210 Branch: Return with expression -0:210 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:213 Function Definition: TDLightingPBR(vf3;vf3;f1;i1;vf3;vf3;vf3;vf3;f1;vf3;vf3;f1; ( global void) -0:213 Function Parameters: -0:213 'diffuseContrib' ( inout highp 3-component vector of float) -0:213 'specularContrib' ( inout highp 3-component vector of float) -0:213 'shadowStrengthOut' ( inout highp float) -0:213 'index' ( in highp int) -0:213 'diffuseColor' ( in highp 3-component vector of float) -0:213 'specularColor' ( in highp 3-component vector of float) -0:213 'worldSpacePos' ( in highp 3-component vector of float) -0:213 'normal' ( in highp 3-component vector of float) -0:213 'shadowStrength' ( in highp float) -0:213 'shadowColor' ( in highp 3-component vector of float) -0:213 'camVector' ( in highp 3-component vector of float) -0:213 'roughness' ( in highp float) -0:215 Sequence -0:215 Sequence -0:215 move second child to first child ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:215 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:215 Function Call: TDLightingPBR(i1;vf3;vf3;vf3;vf3;f1;vf3;vf3;f1; ( global structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:215 'index' ( in highp int) -0:215 'diffuseColor' ( in highp 3-component vector of float) -0:215 'specularColor' ( in highp 3-component vector of float) -0:215 'worldSpacePos' ( in highp 3-component vector of float) -0:215 'normal' ( in highp 3-component vector of float) -0:215 'shadowStrength' ( in highp float) -0:215 'shadowColor' ( in highp 3-component vector of float) -0:215 'camVector' ( in highp 3-component vector of float) -0:215 'roughness' ( in highp float) -0:215 move second child to first child ( temp highp 3-component vector of float) -0:215 'diffuseContrib' ( inout highp 3-component vector of float) -0:215 diffuse: direct index for structure ( global highp 3-component vector of float) -0:215 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:215 Constant: -0:215 0 (const int) -0:216 move second child to first child ( temp highp 3-component vector of float) -0:216 'specularContrib' ( inout highp 3-component vector of float) -0:216 specular: direct index for structure ( global highp 3-component vector of float) -0:216 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:216 Constant: -0:216 1 (const int) -0:217 move second child to first child ( temp highp float) -0:217 'shadowStrengthOut' ( inout highp float) -0:217 shadowStrength: direct index for structure ( global highp float) -0:217 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:217 Constant: -0:217 2 (const int) -0:220 Function Definition: TDLightingPBR(vf3;vf3;i1;vf3;vf3;vf3;vf3;f1;vf3;vf3;f1; ( global void) -0:220 Function Parameters: -0:220 'diffuseContrib' ( inout highp 3-component vector of float) -0:220 'specularContrib' ( inout highp 3-component vector of float) -0:220 'index' ( in highp int) -0:220 'diffuseColor' ( in highp 3-component vector of float) -0:220 'specularColor' ( in highp 3-component vector of float) -0:220 'worldSpacePos' ( in highp 3-component vector of float) -0:220 'normal' ( in highp 3-component vector of float) -0:220 'shadowStrength' ( in highp float) -0:220 'shadowColor' ( in highp 3-component vector of float) -0:220 'camVector' ( in highp 3-component vector of float) -0:220 'roughness' ( in highp float) -0:222 Sequence -0:222 Sequence -0:222 move second child to first child ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:222 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:222 Function Call: TDLightingPBR(i1;vf3;vf3;vf3;vf3;f1;vf3;vf3;f1; ( global structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:222 'index' ( in highp int) -0:222 'diffuseColor' ( in highp 3-component vector of float) -0:222 'specularColor' ( in highp 3-component vector of float) -0:222 'worldSpacePos' ( in highp 3-component vector of float) -0:222 'normal' ( in highp 3-component vector of float) -0:222 'shadowStrength' ( in highp float) -0:222 'shadowColor' ( in highp 3-component vector of float) -0:222 'camVector' ( in highp 3-component vector of float) -0:222 'roughness' ( in highp float) -0:222 move second child to first child ( temp highp 3-component vector of float) -0:222 'diffuseContrib' ( inout highp 3-component vector of float) -0:222 diffuse: direct index for structure ( global highp 3-component vector of float) -0:222 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:222 Constant: -0:222 0 (const int) -0:223 move second child to first child ( temp highp 3-component vector of float) -0:223 'specularContrib' ( inout highp 3-component vector of float) -0:223 specular: direct index for structure ( global highp 3-component vector of float) -0:223 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:223 Constant: -0:223 1 (const int) -0:226 Function Definition: TDEnvLightingPBR(i1;vf3;vf3;vf3;vf3;f1;f1; ( global structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:226 Function Parameters: -0:226 'index' ( in highp int) -0:226 'diffuseColor' ( in highp 3-component vector of float) -0:226 'specularColor' ( in highp 3-component vector of float) -0:226 'normal' ( in highp 3-component vector of float) -0:226 'camVector' ( in highp 3-component vector of float) -0:226 'roughness' ( in highp float) -0:226 'ambientOcclusion' ( in highp float) -0:? Sequence -0:229 Branch: Return with expression -0:229 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:232 Function Definition: TDEnvLightingPBR(vf3;vf3;i1;vf3;vf3;vf3;vf3;f1;f1; ( global void) -0:232 Function Parameters: -0:232 'diffuseContrib' ( inout highp 3-component vector of float) -0:232 'specularContrib' ( inout highp 3-component vector of float) -0:232 'index' ( in highp int) -0:232 'diffuseColor' ( in highp 3-component vector of float) -0:232 'specularColor' ( in highp 3-component vector of float) -0:232 'normal' ( in highp 3-component vector of float) -0:232 'camVector' ( in highp 3-component vector of float) -0:232 'roughness' ( in highp float) -0:232 'ambientOcclusion' ( in highp float) -0:234 Sequence -0:234 Sequence -0:234 move second child to first child ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:234 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:234 Function Call: TDEnvLightingPBR(i1;vf3;vf3;vf3;vf3;f1;f1; ( global structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:234 'index' ( in highp int) -0:234 'diffuseColor' ( in highp 3-component vector of float) -0:234 'specularColor' ( in highp 3-component vector of float) -0:234 'normal' ( in highp 3-component vector of float) -0:234 'camVector' ( in highp 3-component vector of float) -0:234 'roughness' ( in highp float) -0:234 'ambientOcclusion' ( in highp float) -0:235 move second child to first child ( temp highp 3-component vector of float) -0:235 'diffuseContrib' ( inout highp 3-component vector of float) -0:235 diffuse: direct index for structure ( global highp 3-component vector of float) -0:235 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:235 Constant: -0:235 0 (const int) -0:236 move second child to first child ( temp highp 3-component vector of float) -0:236 'specularContrib' ( inout highp 3-component vector of float) -0:236 specular: direct index for structure ( global highp 3-component vector of float) -0:236 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp float shadowStrength}) -0:236 Constant: -0:236 1 (const int) -0:239 Function Definition: TDLighting(i1;vf3;vf3;f1;vf3;vf3;f1;f1; ( global structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:239 Function Parameters: -0:239 'index' ( in highp int) -0:239 'worldSpacePos' ( in highp 3-component vector of float) -0:239 'normal' ( in highp 3-component vector of float) -0:239 'shadowStrength' ( in highp float) -0:239 'shadowColor' ( in highp 3-component vector of float) -0:239 'camVector' ( in highp 3-component vector of float) -0:239 'shininess' ( in highp float) -0:239 'shininess2' ( in highp float) -0:? Sequence -0:242 switch -0:242 condition -0:242 'index' ( in highp int) -0:242 body -0:242 Sequence -0:244 default: -0:? Sequence -0:245 move second child to first child ( temp highp 3-component vector of float) -0:245 diffuse: direct index for structure ( global highp 3-component vector of float) -0:245 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:245 Constant: -0:245 0 (const int) -0:245 Constant: -0:245 0.000000 -0:245 0.000000 -0:245 0.000000 -0:246 move second child to first child ( temp highp 3-component vector of float) -0:246 specular: direct index for structure ( global highp 3-component vector of float) -0:246 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:246 Constant: -0:246 1 (const int) -0:246 Constant: -0:246 0.000000 -0:246 0.000000 -0:246 0.000000 -0:247 move second child to first child ( temp highp 3-component vector of float) -0:247 specular2: direct index for structure ( global highp 3-component vector of float) -0:247 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:247 Constant: -0:247 2 (const int) -0:247 Constant: -0:247 0.000000 -0:247 0.000000 -0:247 0.000000 -0:248 move second child to first child ( temp highp float) -0:248 shadowStrength: direct index for structure ( global highp float) -0:248 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:248 Constant: -0:248 3 (const int) -0:248 Constant: -0:248 0.000000 -0:249 Branch: Break -0:251 Branch: Return with expression -0:251 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:254 Function Definition: TDLighting(vf3;vf3;vf3;f1;i1;vf3;vf3;f1;vf3;vf3;f1;f1; ( global void) -0:254 Function Parameters: -0:254 'diffuseContrib' ( inout highp 3-component vector of float) -0:254 'specularContrib' ( inout highp 3-component vector of float) -0:254 'specularContrib2' ( inout highp 3-component vector of float) -0:254 'shadowStrengthOut' ( inout highp float) -0:254 'index' ( in highp int) -0:254 'worldSpacePos' ( in highp 3-component vector of float) -0:254 'normal' ( in highp 3-component vector of float) -0:254 'shadowStrength' ( in highp float) -0:254 'shadowColor' ( in highp 3-component vector of float) -0:254 'camVector' ( in highp 3-component vector of float) -0:254 'shininess' ( in highp float) -0:254 'shininess2' ( in highp float) -0:? Sequence -0:257 switch -0:257 condition -0:257 'index' ( in highp int) -0:257 body -0:257 Sequence -0:259 default: -0:? Sequence -0:260 move second child to first child ( temp highp 3-component vector of float) -0:260 diffuse: direct index for structure ( global highp 3-component vector of float) -0:260 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:260 Constant: -0:260 0 (const int) -0:260 Constant: -0:260 0.000000 -0:260 0.000000 -0:260 0.000000 -0:261 move second child to first child ( temp highp 3-component vector of float) -0:261 specular: direct index for structure ( global highp 3-component vector of float) -0:261 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:261 Constant: -0:261 1 (const int) -0:261 Constant: -0:261 0.000000 -0:261 0.000000 -0:261 0.000000 -0:262 move second child to first child ( temp highp 3-component vector of float) -0:262 specular2: direct index for structure ( global highp 3-component vector of float) -0:262 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:262 Constant: -0:262 2 (const int) -0:262 Constant: -0:262 0.000000 -0:262 0.000000 -0:262 0.000000 -0:263 move second child to first child ( temp highp float) -0:263 shadowStrength: direct index for structure ( global highp float) -0:263 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:263 Constant: -0:263 3 (const int) -0:263 Constant: -0:263 0.000000 -0:264 Branch: Break -0:266 move second child to first child ( temp highp 3-component vector of float) -0:266 'diffuseContrib' ( inout highp 3-component vector of float) -0:266 diffuse: direct index for structure ( global highp 3-component vector of float) -0:266 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:266 Constant: -0:266 0 (const int) -0:267 move second child to first child ( temp highp 3-component vector of float) -0:267 'specularContrib' ( inout highp 3-component vector of float) -0:267 specular: direct index for structure ( global highp 3-component vector of float) -0:267 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:267 Constant: -0:267 1 (const int) -0:268 move second child to first child ( temp highp 3-component vector of float) -0:268 'specularContrib2' ( inout highp 3-component vector of float) -0:268 specular2: direct index for structure ( global highp 3-component vector of float) -0:268 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:268 Constant: -0:268 2 (const int) -0:269 move second child to first child ( temp highp float) -0:269 'shadowStrengthOut' ( inout highp float) -0:269 shadowStrength: direct index for structure ( global highp float) -0:269 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:269 Constant: -0:269 3 (const int) -0:272 Function Definition: TDLighting(vf3;vf3;vf3;i1;vf3;vf3;f1;vf3;vf3;f1;f1; ( global void) -0:272 Function Parameters: -0:272 'diffuseContrib' ( inout highp 3-component vector of float) -0:272 'specularContrib' ( inout highp 3-component vector of float) -0:272 'specularContrib2' ( inout highp 3-component vector of float) -0:272 'index' ( in highp int) -0:272 'worldSpacePos' ( in highp 3-component vector of float) -0:272 'normal' ( in highp 3-component vector of float) -0:272 'shadowStrength' ( in highp float) -0:272 'shadowColor' ( in highp 3-component vector of float) -0:272 'camVector' ( in highp 3-component vector of float) -0:272 'shininess' ( in highp float) -0:272 'shininess2' ( in highp float) -0:? Sequence -0:275 switch -0:275 condition -0:275 'index' ( in highp int) -0:275 body -0:275 Sequence -0:277 default: -0:? Sequence -0:278 move second child to first child ( temp highp 3-component vector of float) -0:278 diffuse: direct index for structure ( global highp 3-component vector of float) -0:278 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:278 Constant: -0:278 0 (const int) -0:278 Constant: -0:278 0.000000 -0:278 0.000000 -0:278 0.000000 -0:279 move second child to first child ( temp highp 3-component vector of float) -0:279 specular: direct index for structure ( global highp 3-component vector of float) -0:279 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:279 Constant: -0:279 1 (const int) -0:279 Constant: -0:279 0.000000 -0:279 0.000000 -0:279 0.000000 -0:280 move second child to first child ( temp highp 3-component vector of float) -0:280 specular2: direct index for structure ( global highp 3-component vector of float) -0:280 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:280 Constant: -0:280 2 (const int) -0:280 Constant: -0:280 0.000000 -0:280 0.000000 -0:280 0.000000 -0:281 move second child to first child ( temp highp float) -0:281 shadowStrength: direct index for structure ( global highp float) -0:281 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:281 Constant: -0:281 3 (const int) -0:281 Constant: -0:281 0.000000 -0:282 Branch: Break -0:284 move second child to first child ( temp highp 3-component vector of float) -0:284 'diffuseContrib' ( inout highp 3-component vector of float) -0:284 diffuse: direct index for structure ( global highp 3-component vector of float) -0:284 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:284 Constant: -0:284 0 (const int) -0:285 move second child to first child ( temp highp 3-component vector of float) -0:285 'specularContrib' ( inout highp 3-component vector of float) -0:285 specular: direct index for structure ( global highp 3-component vector of float) -0:285 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:285 Constant: -0:285 1 (const int) -0:286 move second child to first child ( temp highp 3-component vector of float) -0:286 'specularContrib2' ( inout highp 3-component vector of float) -0:286 specular2: direct index for structure ( global highp 3-component vector of float) -0:286 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:286 Constant: -0:286 2 (const int) -0:289 Function Definition: TDLighting(vf3;vf3;i1;vf3;vf3;f1;vf3;vf3;f1; ( global void) -0:289 Function Parameters: -0:289 'diffuseContrib' ( inout highp 3-component vector of float) -0:289 'specularContrib' ( inout highp 3-component vector of float) -0:289 'index' ( in highp int) -0:289 'worldSpacePos' ( in highp 3-component vector of float) -0:289 'normal' ( in highp 3-component vector of float) -0:289 'shadowStrength' ( in highp float) -0:289 'shadowColor' ( in highp 3-component vector of float) -0:289 'camVector' ( in highp 3-component vector of float) -0:289 'shininess' ( in highp float) -0:? Sequence -0:292 switch -0:292 condition -0:292 'index' ( in highp int) -0:292 body -0:292 Sequence -0:294 default: -0:? Sequence -0:295 move second child to first child ( temp highp 3-component vector of float) -0:295 diffuse: direct index for structure ( global highp 3-component vector of float) -0:295 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:295 Constant: -0:295 0 (const int) -0:295 Constant: -0:295 0.000000 -0:295 0.000000 -0:295 0.000000 -0:296 move second child to first child ( temp highp 3-component vector of float) -0:296 specular: direct index for structure ( global highp 3-component vector of float) -0:296 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:296 Constant: -0:296 1 (const int) -0:296 Constant: -0:296 0.000000 -0:296 0.000000 -0:296 0.000000 -0:297 move second child to first child ( temp highp 3-component vector of float) -0:297 specular2: direct index for structure ( global highp 3-component vector of float) -0:297 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:297 Constant: -0:297 2 (const int) -0:297 Constant: -0:297 0.000000 -0:297 0.000000 -0:297 0.000000 -0:298 move second child to first child ( temp highp float) -0:298 shadowStrength: direct index for structure ( global highp float) -0:298 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:298 Constant: -0:298 3 (const int) -0:298 Constant: -0:298 0.000000 -0:299 Branch: Break -0:301 move second child to first child ( temp highp 3-component vector of float) -0:301 'diffuseContrib' ( inout highp 3-component vector of float) -0:301 diffuse: direct index for structure ( global highp 3-component vector of float) -0:301 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:301 Constant: -0:301 0 (const int) -0:302 move second child to first child ( temp highp 3-component vector of float) -0:302 'specularContrib' ( inout highp 3-component vector of float) -0:302 specular: direct index for structure ( global highp 3-component vector of float) -0:302 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:302 Constant: -0:302 1 (const int) -0:305 Function Definition: TDLighting(vf3;vf3;vf3;i1;vf3;vf3;vf3;f1;f1; ( global void) -0:305 Function Parameters: -0:305 'diffuseContrib' ( inout highp 3-component vector of float) -0:305 'specularContrib' ( inout highp 3-component vector of float) -0:305 'specularContrib2' ( inout highp 3-component vector of float) -0:305 'index' ( in highp int) -0:305 'worldSpacePos' ( in highp 3-component vector of float) -0:305 'normal' ( in highp 3-component vector of float) -0:305 'camVector' ( in highp 3-component vector of float) -0:305 'shininess' ( in highp float) -0:305 'shininess2' ( in highp float) -0:? Sequence -0:308 switch -0:308 condition -0:308 'index' ( in highp int) -0:308 body -0:308 Sequence -0:310 default: -0:? Sequence -0:311 move second child to first child ( temp highp 3-component vector of float) -0:311 diffuse: direct index for structure ( global highp 3-component vector of float) -0:311 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:311 Constant: -0:311 0 (const int) -0:311 Constant: -0:311 0.000000 -0:311 0.000000 -0:311 0.000000 -0:312 move second child to first child ( temp highp 3-component vector of float) -0:312 specular: direct index for structure ( global highp 3-component vector of float) -0:312 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:312 Constant: -0:312 1 (const int) -0:312 Constant: -0:312 0.000000 -0:312 0.000000 -0:312 0.000000 -0:313 move second child to first child ( temp highp 3-component vector of float) -0:313 specular2: direct index for structure ( global highp 3-component vector of float) -0:313 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:313 Constant: -0:313 2 (const int) -0:313 Constant: -0:313 0.000000 -0:313 0.000000 -0:313 0.000000 -0:314 move second child to first child ( temp highp float) -0:314 shadowStrength: direct index for structure ( global highp float) -0:314 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:314 Constant: -0:314 3 (const int) -0:314 Constant: -0:314 0.000000 -0:315 Branch: Break -0:317 move second child to first child ( temp highp 3-component vector of float) -0:317 'diffuseContrib' ( inout highp 3-component vector of float) -0:317 diffuse: direct index for structure ( global highp 3-component vector of float) -0:317 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:317 Constant: -0:317 0 (const int) -0:318 move second child to first child ( temp highp 3-component vector of float) -0:318 'specularContrib' ( inout highp 3-component vector of float) -0:318 specular: direct index for structure ( global highp 3-component vector of float) -0:318 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:318 Constant: -0:318 1 (const int) -0:319 move second child to first child ( temp highp 3-component vector of float) -0:319 'specularContrib2' ( inout highp 3-component vector of float) -0:319 specular2: direct index for structure ( global highp 3-component vector of float) -0:319 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:319 Constant: -0:319 2 (const int) -0:322 Function Definition: TDLighting(vf3;vf3;i1;vf3;vf3;vf3;f1; ( global void) -0:322 Function Parameters: -0:322 'diffuseContrib' ( inout highp 3-component vector of float) -0:322 'specularContrib' ( inout highp 3-component vector of float) -0:322 'index' ( in highp int) -0:322 'worldSpacePos' ( in highp 3-component vector of float) -0:322 'normal' ( in highp 3-component vector of float) -0:322 'camVector' ( in highp 3-component vector of float) -0:322 'shininess' ( in highp float) -0:? Sequence -0:325 switch -0:325 condition -0:325 'index' ( in highp int) -0:325 body -0:325 Sequence -0:327 default: -0:? Sequence -0:328 move second child to first child ( temp highp 3-component vector of float) -0:328 diffuse: direct index for structure ( global highp 3-component vector of float) -0:328 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:328 Constant: -0:328 0 (const int) -0:328 Constant: -0:328 0.000000 -0:328 0.000000 -0:328 0.000000 -0:329 move second child to first child ( temp highp 3-component vector of float) -0:329 specular: direct index for structure ( global highp 3-component vector of float) -0:329 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:329 Constant: -0:329 1 (const int) -0:329 Constant: -0:329 0.000000 -0:329 0.000000 -0:329 0.000000 -0:330 move second child to first child ( temp highp 3-component vector of float) -0:330 specular2: direct index for structure ( global highp 3-component vector of float) -0:330 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:330 Constant: -0:330 2 (const int) -0:330 Constant: -0:330 0.000000 -0:330 0.000000 -0:330 0.000000 -0:331 move second child to first child ( temp highp float) -0:331 shadowStrength: direct index for structure ( global highp float) -0:331 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:331 Constant: -0:331 3 (const int) -0:331 Constant: -0:331 0.000000 -0:332 Branch: Break -0:334 move second child to first child ( temp highp 3-component vector of float) -0:334 'diffuseContrib' ( inout highp 3-component vector of float) -0:334 diffuse: direct index for structure ( global highp 3-component vector of float) -0:334 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:334 Constant: -0:334 0 (const int) -0:335 move second child to first child ( temp highp 3-component vector of float) -0:335 'specularContrib' ( inout highp 3-component vector of float) -0:335 specular: direct index for structure ( global highp 3-component vector of float) -0:335 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:335 Constant: -0:335 1 (const int) -0:338 Function Definition: TDLighting(vf3;i1;vf3;vf3; ( global void) -0:338 Function Parameters: -0:338 'diffuseContrib' ( inout highp 3-component vector of float) -0:338 'index' ( in highp int) -0:338 'worldSpacePos' ( in highp 3-component vector of float) -0:338 'normal' ( in highp 3-component vector of float) -0:? Sequence -0:341 switch -0:341 condition -0:341 'index' ( in highp int) -0:341 body -0:341 Sequence -0:343 default: -0:? Sequence -0:344 move second child to first child ( temp highp 3-component vector of float) -0:344 diffuse: direct index for structure ( global highp 3-component vector of float) -0:344 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:344 Constant: -0:344 0 (const int) -0:344 Constant: -0:344 0.000000 -0:344 0.000000 -0:344 0.000000 -0:345 move second child to first child ( temp highp 3-component vector of float) -0:345 specular: direct index for structure ( global highp 3-component vector of float) -0:345 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:345 Constant: -0:345 1 (const int) -0:345 Constant: -0:345 0.000000 -0:345 0.000000 -0:345 0.000000 -0:346 move second child to first child ( temp highp 3-component vector of float) -0:346 specular2: direct index for structure ( global highp 3-component vector of float) -0:346 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:346 Constant: -0:346 2 (const int) -0:346 Constant: -0:346 0.000000 -0:346 0.000000 -0:346 0.000000 -0:347 move second child to first child ( temp highp float) -0:347 shadowStrength: direct index for structure ( global highp float) -0:347 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:347 Constant: -0:347 3 (const int) -0:347 Constant: -0:347 0.000000 -0:348 Branch: Break -0:350 move second child to first child ( temp highp 3-component vector of float) -0:350 'diffuseContrib' ( inout highp 3-component vector of float) -0:350 diffuse: direct index for structure ( global highp 3-component vector of float) -0:350 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:350 Constant: -0:350 0 (const int) -0:353 Function Definition: TDLighting(vf3;i1;vf3;vf3;f1;vf3; ( global void) -0:353 Function Parameters: -0:353 'diffuseContrib' ( inout highp 3-component vector of float) -0:353 'index' ( in highp int) -0:353 'worldSpacePos' ( in highp 3-component vector of float) -0:353 'normal' ( in highp 3-component vector of float) -0:353 'shadowStrength' ( in highp float) -0:353 'shadowColor' ( in highp 3-component vector of float) -0:? Sequence -0:356 switch -0:356 condition -0:356 'index' ( in highp int) -0:356 body -0:356 Sequence -0:358 default: -0:? Sequence -0:359 move second child to first child ( temp highp 3-component vector of float) -0:359 diffuse: direct index for structure ( global highp 3-component vector of float) -0:359 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:359 Constant: -0:359 0 (const int) -0:359 Constant: -0:359 0.000000 -0:359 0.000000 -0:359 0.000000 -0:360 move second child to first child ( temp highp 3-component vector of float) -0:360 specular: direct index for structure ( global highp 3-component vector of float) -0:360 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:360 Constant: -0:360 1 (const int) -0:360 Constant: -0:360 0.000000 -0:360 0.000000 -0:360 0.000000 -0:361 move second child to first child ( temp highp 3-component vector of float) -0:361 specular2: direct index for structure ( global highp 3-component vector of float) -0:361 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:361 Constant: -0:361 2 (const int) -0:361 Constant: -0:361 0.000000 -0:361 0.000000 -0:361 0.000000 -0:362 move second child to first child ( temp highp float) -0:362 shadowStrength: direct index for structure ( global highp float) -0:362 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:362 Constant: -0:362 3 (const int) -0:362 Constant: -0:362 0.000000 -0:363 Branch: Break -0:365 move second child to first child ( temp highp 3-component vector of float) -0:365 'diffuseContrib' ( inout highp 3-component vector of float) -0:365 diffuse: direct index for structure ( global highp 3-component vector of float) -0:365 'res' ( temp structure{ global highp 3-component vector of float diffuse, global highp 3-component vector of float specular, global highp 3-component vector of float specular2, global highp float shadowStrength}) -0:365 Constant: -0:365 0 (const int) -0:367 Function Definition: TDProjMap(i1;vf3;vf4; ( global highp 4-component vector of float) -0:367 Function Parameters: -0:367 'index' ( in highp int) -0:367 'worldSpacePos' ( in highp 3-component vector of float) -0:367 'defaultColor' ( in highp 4-component vector of float) -0:368 Sequence -0:368 switch -0:368 condition -0:368 'index' ( in highp int) -0:368 body -0:368 Sequence -0:370 default: -0:? Sequence -0:370 Branch: Return with expression -0:370 'defaultColor' ( in highp 4-component vector of float) -0:373 Function Definition: TDFog(vf4;vf3;i1; ( global highp 4-component vector of float) -0:373 Function Parameters: -0:373 'color' ( in highp 4-component vector of float) -0:373 'lightingSpacePosition' ( in highp 3-component vector of float) -0:373 'cameraIndex' ( in highp int) -0:374 Sequence -0:374 switch -0:374 condition -0:374 'cameraIndex' ( in highp int) -0:374 body -0:374 Sequence -0:375 default: -0:376 case: with expression -0:376 Constant: -0:376 0 (const int) -0:? Sequence -0:378 Sequence -0:378 Branch: Return with expression -0:378 'color' ( in highp 4-component vector of float) -0:382 Function Definition: TDFog(vf4;vf3; ( global highp 4-component vector of float) -0:382 Function Parameters: -0:382 'color' ( in highp 4-component vector of float) -0:382 'lightingSpacePosition' ( in highp 3-component vector of float) -0:384 Sequence -0:384 Branch: Return with expression -0:384 Function Call: TDFog(vf4;vf3;i1; ( global highp 4-component vector of float) -0:384 'color' ( in highp 4-component vector of float) -0:384 'lightingSpacePosition' ( in highp 3-component vector of float) -0:384 Constant: -0:384 0 (const int) -0:386 Function Definition: TDInstanceTexCoord(i1;vf3; ( global highp 3-component vector of float) -0:386 Function Parameters: -0:386 'index' ( in highp int) -0:386 't' ( in highp 3-component vector of float) -0:? Sequence -0:388 Sequence -0:388 move second child to first child ( temp highp int) -0:388 'coord' ( temp highp int) -0:388 'index' ( in highp int) -0:389 Sequence -0:389 move second child to first child ( temp highp 4-component vector of float) -0:389 'samp' ( temp highp 4-component vector of float) -0:389 textureFetch ( global highp 4-component vector of float) -0:389 'sTDInstanceTexCoord' (layout( binding=16) uniform highp samplerBuffer) -0:389 'coord' ( temp highp int) -0:390 move second child to first child ( temp highp float) -0:390 direct index ( temp highp float) -0:390 'v' ( temp highp 3-component vector of float) -0:390 Constant: -0:390 0 (const int) -0:390 direct index ( temp highp float) -0:390 't' ( in highp 3-component vector of float) -0:390 Constant: -0:390 0 (const int) -0:391 move second child to first child ( temp highp float) -0:391 direct index ( temp highp float) -0:391 'v' ( temp highp 3-component vector of float) -0:391 Constant: -0:391 1 (const int) -0:391 direct index ( temp highp float) -0:391 't' ( in highp 3-component vector of float) -0:391 Constant: -0:391 1 (const int) -0:392 move second child to first child ( temp highp float) -0:392 direct index ( temp highp float) -0:392 'v' ( temp highp 3-component vector of float) -0:392 Constant: -0:392 2 (const int) -0:392 direct index ( temp highp float) -0:392 'samp' ( temp highp 4-component vector of float) -0:392 Constant: -0:392 0 (const int) -0:393 move second child to first child ( temp highp 3-component vector of float) -0:393 vector swizzle ( temp highp 3-component vector of float) -0:393 't' ( in highp 3-component vector of float) -0:393 Sequence -0:393 Constant: -0:393 0 (const int) -0:393 Constant: -0:393 1 (const int) -0:393 Constant: -0:393 2 (const int) -0:393 vector swizzle ( temp highp 3-component vector of float) -0:393 'v' ( temp highp 3-component vector of float) -0:393 Sequence -0:393 Constant: -0:393 0 (const int) -0:393 Constant: -0:393 1 (const int) -0:393 Constant: -0:393 2 (const int) -0:394 Branch: Return with expression -0:394 't' ( in highp 3-component vector of float) -0:396 Function Definition: TDInstanceActive(i1; ( global bool) -0:396 Function Parameters: -0:396 'index' ( in highp int) -0:397 Sequence -0:397 subtract second child into first child ( temp highp int) -0:397 'index' ( in highp int) -0:397 uTDInstanceIDOffset: direct index for structure ( uniform highp int) -0:397 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal, uniform highp 3-component vector of float uConstant, uniform highp float uShadowStrength, uniform highp 3-component vector of float uShadowColor, uniform highp 4-component vector of float uDiffuseColor, uniform highp 4-component vector of float uAmbientColor}) -0:397 Constant: -0:397 0 (const uint) -0:399 Sequence -0:399 move second child to first child ( temp highp int) -0:399 'coord' ( temp highp int) -0:399 'index' ( in highp int) -0:400 Sequence -0:400 move second child to first child ( temp highp 4-component vector of float) -0:400 'samp' ( temp highp 4-component vector of float) -0:400 textureFetch ( global highp 4-component vector of float) -0:400 'sTDInstanceT' (layout( binding=15) uniform highp samplerBuffer) -0:400 'coord' ( temp highp int) -0:401 move second child to first child ( temp highp float) -0:401 'v' ( temp highp float) -0:401 direct index ( temp highp float) -0:401 'samp' ( temp highp 4-component vector of float) -0:401 Constant: -0:401 0 (const int) -0:402 Branch: Return with expression -0:402 Compare Not Equal ( temp bool) -0:402 'v' ( temp highp float) -0:402 Constant: -0:402 0.000000 -0:404 Function Definition: iTDInstanceTranslate(i1;b1; ( global highp 3-component vector of float) -0:404 Function Parameters: -0:404 'index' ( in highp int) -0:404 'instanceActive' ( out bool) -0:405 Sequence -0:405 Sequence -0:405 move second child to first child ( temp highp int) -0:405 'origIndex' ( temp highp int) -0:405 'index' ( in highp int) -0:406 subtract second child into first child ( temp highp int) -0:406 'index' ( in highp int) -0:406 uTDInstanceIDOffset: direct index for structure ( uniform highp int) -0:406 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal, uniform highp 3-component vector of float uConstant, uniform highp float uShadowStrength, uniform highp 3-component vector of float uShadowColor, uniform highp 4-component vector of float uDiffuseColor, uniform highp 4-component vector of float uAmbientColor}) -0:406 Constant: -0:406 0 (const uint) -0:408 Sequence -0:408 move second child to first child ( temp highp int) -0:408 'coord' ( temp highp int) -0:408 'index' ( in highp int) -0:409 Sequence -0:409 move second child to first child ( temp highp 4-component vector of float) -0:409 'samp' ( temp highp 4-component vector of float) -0:409 textureFetch ( global highp 4-component vector of float) -0:409 'sTDInstanceT' (layout( binding=15) uniform highp samplerBuffer) -0:409 'coord' ( temp highp int) -0:410 move second child to first child ( temp highp float) -0:410 direct index ( temp highp float) -0:410 'v' ( temp highp 3-component vector of float) -0:410 Constant: -0:410 0 (const int) -0:410 direct index ( temp highp float) -0:410 'samp' ( temp highp 4-component vector of float) -0:410 Constant: -0:410 1 (const int) -0:411 move second child to first child ( temp highp float) -0:411 direct index ( temp highp float) -0:411 'v' ( temp highp 3-component vector of float) -0:411 Constant: -0:411 1 (const int) -0:411 direct index ( temp highp float) -0:411 'samp' ( temp highp 4-component vector of float) -0:411 Constant: -0:411 2 (const int) -0:412 move second child to first child ( temp highp float) -0:412 direct index ( temp highp float) -0:412 'v' ( temp highp 3-component vector of float) -0:412 Constant: -0:412 2 (const int) -0:412 direct index ( temp highp float) -0:412 'samp' ( temp highp 4-component vector of float) -0:412 Constant: -0:412 3 (const int) -0:413 move second child to first child ( temp bool) -0:413 'instanceActive' ( out bool) -0:413 Compare Not Equal ( temp bool) -0:413 direct index ( temp highp float) -0:413 'samp' ( temp highp 4-component vector of float) -0:413 Constant: -0:413 0 (const int) -0:413 Constant: -0:413 0.000000 -0:414 Branch: Return with expression -0:414 'v' ( temp highp 3-component vector of float) -0:416 Function Definition: TDInstanceTranslate(i1; ( global highp 3-component vector of float) -0:416 Function Parameters: -0:416 'index' ( in highp int) -0:417 Sequence -0:417 subtract second child into first child ( temp highp int) -0:417 'index' ( in highp int) -0:417 uTDInstanceIDOffset: direct index for structure ( uniform highp int) -0:417 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal, uniform highp 3-component vector of float uConstant, uniform highp float uShadowStrength, uniform highp 3-component vector of float uShadowColor, uniform highp 4-component vector of float uDiffuseColor, uniform highp 4-component vector of float uAmbientColor}) -0:417 Constant: -0:417 0 (const uint) -0:419 Sequence -0:419 move second child to first child ( temp highp int) -0:419 'coord' ( temp highp int) -0:419 'index' ( in highp int) -0:420 Sequence -0:420 move second child to first child ( temp highp 4-component vector of float) -0:420 'samp' ( temp highp 4-component vector of float) -0:420 textureFetch ( global highp 4-component vector of float) -0:420 'sTDInstanceT' (layout( binding=15) uniform highp samplerBuffer) -0:420 'coord' ( temp highp int) -0:421 move second child to first child ( temp highp float) -0:421 direct index ( temp highp float) -0:421 'v' ( temp highp 3-component vector of float) -0:421 Constant: -0:421 0 (const int) -0:421 direct index ( temp highp float) -0:421 'samp' ( temp highp 4-component vector of float) -0:421 Constant: -0:421 1 (const int) -0:422 move second child to first child ( temp highp float) -0:422 direct index ( temp highp float) -0:422 'v' ( temp highp 3-component vector of float) -0:422 Constant: -0:422 1 (const int) -0:422 direct index ( temp highp float) -0:422 'samp' ( temp highp 4-component vector of float) -0:422 Constant: -0:422 2 (const int) -0:423 move second child to first child ( temp highp float) -0:423 direct index ( temp highp float) -0:423 'v' ( temp highp 3-component vector of float) -0:423 Constant: -0:423 2 (const int) -0:423 direct index ( temp highp float) -0:423 'samp' ( temp highp 4-component vector of float) -0:423 Constant: -0:423 3 (const int) -0:424 Branch: Return with expression -0:424 'v' ( temp highp 3-component vector of float) -0:426 Function Definition: TDInstanceRotateMat(i1; ( global highp 3X3 matrix of float) -0:426 Function Parameters: -0:426 'index' ( in highp int) -0:427 Sequence -0:427 subtract second child into first child ( temp highp int) -0:427 'index' ( in highp int) -0:427 uTDInstanceIDOffset: direct index for structure ( uniform highp int) -0:427 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal, uniform highp 3-component vector of float uConstant, uniform highp float uShadowStrength, uniform highp 3-component vector of float uShadowColor, uniform highp 4-component vector of float uDiffuseColor, uniform highp 4-component vector of float uAmbientColor}) -0:427 Constant: -0:427 0 (const uint) -0:428 Sequence -0:428 move second child to first child ( temp highp 3-component vector of float) -0:428 'v' ( temp highp 3-component vector of float) -0:428 Constant: -0:428 0.000000 -0:428 0.000000 -0:428 0.000000 -0:429 Sequence -0:429 move second child to first child ( temp highp 3X3 matrix of float) -0:429 'm' ( temp highp 3X3 matrix of float) -0:429 Constant: -0:429 1.000000 -0:429 0.000000 -0:429 0.000000 -0:429 0.000000 -0:429 1.000000 -0:429 0.000000 -0:429 0.000000 -0:429 0.000000 -0:429 1.000000 -0:433 Branch: Return with expression -0:433 'm' ( temp highp 3X3 matrix of float) -0:435 Function Definition: TDInstanceScale(i1; ( global highp 3-component vector of float) -0:435 Function Parameters: -0:435 'index' ( in highp int) -0:436 Sequence -0:436 subtract second child into first child ( temp highp int) -0:436 'index' ( in highp int) -0:436 uTDInstanceIDOffset: direct index for structure ( uniform highp int) -0:436 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal, uniform highp 3-component vector of float uConstant, uniform highp float uShadowStrength, uniform highp 3-component vector of float uShadowColor, uniform highp 4-component vector of float uDiffuseColor, uniform highp 4-component vector of float uAmbientColor}) -0:436 Constant: -0:436 0 (const uint) -0:437 Sequence -0:437 move second child to first child ( temp highp 3-component vector of float) -0:437 'v' ( temp highp 3-component vector of float) -0:437 Constant: -0:437 1.000000 -0:437 1.000000 -0:437 1.000000 -0:438 Branch: Return with expression -0:438 'v' ( temp highp 3-component vector of float) -0:440 Function Definition: TDInstancePivot(i1; ( global highp 3-component vector of float) -0:440 Function Parameters: -0:440 'index' ( in highp int) -0:441 Sequence -0:441 subtract second child into first child ( temp highp int) -0:441 'index' ( in highp int) -0:441 uTDInstanceIDOffset: direct index for structure ( uniform highp int) -0:441 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal, uniform highp 3-component vector of float uConstant, uniform highp float uShadowStrength, uniform highp 3-component vector of float uShadowColor, uniform highp 4-component vector of float uDiffuseColor, uniform highp 4-component vector of float uAmbientColor}) -0:441 Constant: -0:441 0 (const uint) -0:442 Sequence -0:442 move second child to first child ( temp highp 3-component vector of float) -0:442 'v' ( temp highp 3-component vector of float) -0:442 Constant: -0:442 0.000000 -0:442 0.000000 -0:442 0.000000 -0:443 Branch: Return with expression -0:443 'v' ( temp highp 3-component vector of float) -0:445 Function Definition: TDInstanceRotTo(i1; ( global highp 3-component vector of float) -0:445 Function Parameters: -0:445 'index' ( in highp int) -0:446 Sequence -0:446 subtract second child into first child ( temp highp int) -0:446 'index' ( in highp int) -0:446 uTDInstanceIDOffset: direct index for structure ( uniform highp int) -0:446 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal, uniform highp 3-component vector of float uConstant, uniform highp float uShadowStrength, uniform highp 3-component vector of float uShadowColor, uniform highp 4-component vector of float uDiffuseColor, uniform highp 4-component vector of float uAmbientColor}) -0:446 Constant: -0:446 0 (const uint) -0:447 Sequence -0:447 move second child to first child ( temp highp 3-component vector of float) -0:447 'v' ( temp highp 3-component vector of float) -0:447 Constant: -0:447 0.000000 -0:447 0.000000 -0:447 1.000000 -0:448 Branch: Return with expression -0:448 'v' ( temp highp 3-component vector of float) -0:450 Function Definition: TDInstanceRotUp(i1; ( global highp 3-component vector of float) -0:450 Function Parameters: -0:450 'index' ( in highp int) -0:451 Sequence -0:451 subtract second child into first child ( temp highp int) -0:451 'index' ( in highp int) -0:451 uTDInstanceIDOffset: direct index for structure ( uniform highp int) -0:451 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal, uniform highp 3-component vector of float uConstant, uniform highp float uShadowStrength, uniform highp 3-component vector of float uShadowColor, uniform highp 4-component vector of float uDiffuseColor, uniform highp 4-component vector of float uAmbientColor}) -0:451 Constant: -0:451 0 (const uint) -0:452 Sequence -0:452 move second child to first child ( temp highp 3-component vector of float) -0:452 'v' ( temp highp 3-component vector of float) -0:452 Constant: -0:452 0.000000 -0:452 1.000000 -0:452 0.000000 -0:453 Branch: Return with expression -0:453 'v' ( temp highp 3-component vector of float) -0:455 Function Definition: TDInstanceMat(i1; ( global highp 4X4 matrix of float) -0:455 Function Parameters: -0:455 'id' ( in highp int) -0:456 Sequence -0:456 Sequence -0:456 move second child to first child ( temp bool) -0:456 'instanceActive' ( temp bool) -0:456 Constant: -0:456 true (const bool) -0:457 Sequence -0:457 move second child to first child ( temp highp 3-component vector of float) -0:457 't' ( temp highp 3-component vector of float) -0:457 Function Call: iTDInstanceTranslate(i1;b1; ( global highp 3-component vector of float) -0:457 'id' ( in highp int) -0:457 'instanceActive' ( temp bool) -0:458 Test condition and select ( temp void) -0:458 Condition -0:458 Negate conditional ( temp bool) -0:458 'instanceActive' ( temp bool) -0:458 true case -0:460 Sequence -0:460 Branch: Return with expression -0:460 Constant: -0:460 0.000000 -0:460 0.000000 -0:460 0.000000 -0:460 0.000000 -0:460 0.000000 -0:460 0.000000 -0:460 0.000000 -0:460 0.000000 -0:460 0.000000 -0:460 0.000000 -0:460 0.000000 -0:460 0.000000 -0:460 0.000000 -0:460 0.000000 -0:460 0.000000 -0:460 0.000000 -0:462 Sequence -0:462 move second child to first child ( temp highp 4X4 matrix of float) -0:462 'm' ( temp highp 4X4 matrix of float) -0:462 Constant: -0:462 1.000000 -0:462 0.000000 -0:462 0.000000 -0:462 0.000000 -0:462 0.000000 -0:462 1.000000 -0:462 0.000000 -0:462 0.000000 -0:462 0.000000 -0:462 0.000000 -0:462 1.000000 -0:462 0.000000 -0:462 0.000000 -0:462 0.000000 -0:462 0.000000 -0:462 1.000000 -0:464 Sequence -0:464 Sequence -0:464 move second child to first child ( temp highp 3-component vector of float) -0:464 'tt' ( temp highp 3-component vector of float) -0:464 't' ( temp highp 3-component vector of float) -0:465 add second child into first child ( temp highp float) -0:465 direct index ( temp highp float) -0:465 direct index ( temp highp 4-component vector of float) -0:465 'm' ( temp highp 4X4 matrix of float) -0:465 Constant: -0:465 3 (const int) -0:465 Constant: -0:465 0 (const int) -0:465 component-wise multiply ( temp highp float) -0:465 direct index ( temp highp float) -0:465 direct index ( temp highp 4-component vector of float) -0:465 'm' ( temp highp 4X4 matrix of float) -0:465 Constant: -0:465 0 (const int) -0:465 Constant: -0:465 0 (const int) -0:465 direct index ( temp highp float) -0:465 'tt' ( temp highp 3-component vector of float) -0:465 Constant: -0:465 0 (const int) -0:466 add second child into first child ( temp highp float) -0:466 direct index ( temp highp float) -0:466 direct index ( temp highp 4-component vector of float) -0:466 'm' ( temp highp 4X4 matrix of float) -0:466 Constant: -0:466 3 (const int) -0:466 Constant: -0:466 1 (const int) -0:466 component-wise multiply ( temp highp float) -0:466 direct index ( temp highp float) -0:466 direct index ( temp highp 4-component vector of float) -0:466 'm' ( temp highp 4X4 matrix of float) -0:466 Constant: -0:466 0 (const int) -0:466 Constant: -0:466 1 (const int) -0:466 direct index ( temp highp float) -0:466 'tt' ( temp highp 3-component vector of float) -0:466 Constant: -0:466 0 (const int) -0:467 add second child into first child ( temp highp float) -0:467 direct index ( temp highp float) -0:467 direct index ( temp highp 4-component vector of float) -0:467 'm' ( temp highp 4X4 matrix of float) -0:467 Constant: -0:467 3 (const int) -0:467 Constant: -0:467 2 (const int) -0:467 component-wise multiply ( temp highp float) -0:467 direct index ( temp highp float) -0:467 direct index ( temp highp 4-component vector of float) -0:467 'm' ( temp highp 4X4 matrix of float) -0:467 Constant: -0:467 0 (const int) -0:467 Constant: -0:467 2 (const int) -0:467 direct index ( temp highp float) -0:467 'tt' ( temp highp 3-component vector of float) -0:467 Constant: -0:467 0 (const int) -0:468 add second child into first child ( temp highp float) -0:468 direct index ( temp highp float) -0:468 direct index ( temp highp 4-component vector of float) -0:468 'm' ( temp highp 4X4 matrix of float) -0:468 Constant: -0:468 3 (const int) -0:468 Constant: -0:468 3 (const int) -0:468 component-wise multiply ( temp highp float) -0:468 direct index ( temp highp float) -0:468 direct index ( temp highp 4-component vector of float) -0:468 'm' ( temp highp 4X4 matrix of float) -0:468 Constant: -0:468 0 (const int) -0:468 Constant: -0:468 3 (const int) -0:468 direct index ( temp highp float) -0:468 'tt' ( temp highp 3-component vector of float) -0:468 Constant: -0:468 0 (const int) -0:469 add second child into first child ( temp highp float) -0:469 direct index ( temp highp float) -0:469 direct index ( temp highp 4-component vector of float) -0:469 'm' ( temp highp 4X4 matrix of float) -0:469 Constant: -0:469 3 (const int) -0:469 Constant: -0:469 0 (const int) -0:469 component-wise multiply ( temp highp float) -0:469 direct index ( temp highp float) -0:469 direct index ( temp highp 4-component vector of float) -0:469 'm' ( temp highp 4X4 matrix of float) -0:469 Constant: -0:469 1 (const int) -0:469 Constant: -0:469 0 (const int) -0:469 direct index ( temp highp float) -0:469 'tt' ( temp highp 3-component vector of float) -0:469 Constant: -0:469 1 (const int) -0:470 add second child into first child ( temp highp float) -0:470 direct index ( temp highp float) -0:470 direct index ( temp highp 4-component vector of float) -0:470 'm' ( temp highp 4X4 matrix of float) -0:470 Constant: -0:470 3 (const int) -0:470 Constant: -0:470 1 (const int) -0:470 component-wise multiply ( temp highp float) -0:470 direct index ( temp highp float) -0:470 direct index ( temp highp 4-component vector of float) -0:470 'm' ( temp highp 4X4 matrix of float) -0:470 Constant: -0:470 1 (const int) -0:470 Constant: -0:470 1 (const int) -0:470 direct index ( temp highp float) -0:470 'tt' ( temp highp 3-component vector of float) -0:470 Constant: -0:470 1 (const int) -0:471 add second child into first child ( temp highp float) -0:471 direct index ( temp highp float) -0:471 direct index ( temp highp 4-component vector of float) -0:471 'm' ( temp highp 4X4 matrix of float) -0:471 Constant: -0:471 3 (const int) -0:471 Constant: -0:471 2 (const int) -0:471 component-wise multiply ( temp highp float) -0:471 direct index ( temp highp float) -0:471 direct index ( temp highp 4-component vector of float) -0:471 'm' ( temp highp 4X4 matrix of float) -0:471 Constant: -0:471 1 (const int) -0:471 Constant: -0:471 2 (const int) -0:471 direct index ( temp highp float) -0:471 'tt' ( temp highp 3-component vector of float) -0:471 Constant: -0:471 1 (const int) -0:472 add second child into first child ( temp highp float) -0:472 direct index ( temp highp float) -0:472 direct index ( temp highp 4-component vector of float) -0:472 'm' ( temp highp 4X4 matrix of float) -0:472 Constant: -0:472 3 (const int) -0:472 Constant: -0:472 3 (const int) -0:472 component-wise multiply ( temp highp float) -0:472 direct index ( temp highp float) -0:472 direct index ( temp highp 4-component vector of float) -0:472 'm' ( temp highp 4X4 matrix of float) -0:472 Constant: -0:472 1 (const int) -0:472 Constant: -0:472 3 (const int) -0:472 direct index ( temp highp float) -0:472 'tt' ( temp highp 3-component vector of float) -0:472 Constant: -0:472 1 (const int) -0:473 add second child into first child ( temp highp float) -0:473 direct index ( temp highp float) -0:473 direct index ( temp highp 4-component vector of float) -0:473 'm' ( temp highp 4X4 matrix of float) -0:473 Constant: -0:473 3 (const int) -0:473 Constant: -0:473 0 (const int) -0:473 component-wise multiply ( temp highp float) -0:473 direct index ( temp highp float) -0:473 direct index ( temp highp 4-component vector of float) -0:473 'm' ( temp highp 4X4 matrix of float) -0:473 Constant: -0:473 2 (const int) -0:473 Constant: -0:473 0 (const int) -0:473 direct index ( temp highp float) -0:473 'tt' ( temp highp 3-component vector of float) -0:473 Constant: -0:473 2 (const int) -0:474 add second child into first child ( temp highp float) -0:474 direct index ( temp highp float) -0:474 direct index ( temp highp 4-component vector of float) -0:474 'm' ( temp highp 4X4 matrix of float) -0:474 Constant: -0:474 3 (const int) -0:474 Constant: -0:474 1 (const int) -0:474 component-wise multiply ( temp highp float) -0:474 direct index ( temp highp float) -0:474 direct index ( temp highp 4-component vector of float) -0:474 'm' ( temp highp 4X4 matrix of float) -0:474 Constant: -0:474 2 (const int) -0:474 Constant: -0:474 1 (const int) -0:474 direct index ( temp highp float) -0:474 'tt' ( temp highp 3-component vector of float) -0:474 Constant: -0:474 2 (const int) -0:475 add second child into first child ( temp highp float) -0:475 direct index ( temp highp float) -0:475 direct index ( temp highp 4-component vector of float) -0:475 'm' ( temp highp 4X4 matrix of float) -0:475 Constant: -0:475 3 (const int) -0:475 Constant: -0:475 2 (const int) -0:475 component-wise multiply ( temp highp float) -0:475 direct index ( temp highp float) -0:475 direct index ( temp highp 4-component vector of float) -0:475 'm' ( temp highp 4X4 matrix of float) -0:475 Constant: -0:475 2 (const int) -0:475 Constant: -0:475 2 (const int) -0:475 direct index ( temp highp float) -0:475 'tt' ( temp highp 3-component vector of float) -0:475 Constant: -0:475 2 (const int) -0:476 add second child into first child ( temp highp float) -0:476 direct index ( temp highp float) -0:476 direct index ( temp highp 4-component vector of float) -0:476 'm' ( temp highp 4X4 matrix of float) -0:476 Constant: -0:476 3 (const int) -0:476 Constant: -0:476 3 (const int) -0:476 component-wise multiply ( temp highp float) -0:476 direct index ( temp highp float) -0:476 direct index ( temp highp 4-component vector of float) -0:476 'm' ( temp highp 4X4 matrix of float) -0:476 Constant: -0:476 2 (const int) -0:476 Constant: -0:476 3 (const int) -0:476 direct index ( temp highp float) -0:476 'tt' ( temp highp 3-component vector of float) -0:476 Constant: -0:476 2 (const int) -0:478 Branch: Return with expression -0:478 'm' ( temp highp 4X4 matrix of float) -0:480 Function Definition: TDInstanceMat3(i1; ( global highp 3X3 matrix of float) -0:480 Function Parameters: -0:480 'id' ( in highp int) -0:481 Sequence -0:481 Sequence -0:481 move second child to first child ( temp highp 3X3 matrix of float) -0:481 'm' ( temp highp 3X3 matrix of float) -0:481 Constant: -0:481 1.000000 -0:481 0.000000 -0:481 0.000000 -0:481 0.000000 -0:481 1.000000 -0:481 0.000000 -0:481 0.000000 -0:481 0.000000 -0:481 1.000000 -0:482 Branch: Return with expression -0:482 'm' ( temp highp 3X3 matrix of float) -0:484 Function Definition: TDInstanceMat3ForNorm(i1; ( global highp 3X3 matrix of float) -0:484 Function Parameters: -0:484 'id' ( in highp int) -0:485 Sequence -0:485 Sequence -0:485 move second child to first child ( temp highp 3X3 matrix of float) -0:485 'm' ( temp highp 3X3 matrix of float) -0:485 Function Call: TDInstanceMat3(i1; ( global highp 3X3 matrix of float) -0:485 'id' ( in highp int) -0:486 Branch: Return with expression -0:486 'm' ( temp highp 3X3 matrix of float) -0:488 Function Definition: TDInstanceColor(i1;vf4; ( global highp 4-component vector of float) -0:488 Function Parameters: -0:488 'index' ( in highp int) -0:488 'curColor' ( in highp 4-component vector of float) -0:489 Sequence -0:489 subtract second child into first child ( temp highp int) -0:489 'index' ( in highp int) -0:489 uTDInstanceIDOffset: direct index for structure ( uniform highp int) -0:489 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal, uniform highp 3-component vector of float uConstant, uniform highp float uShadowStrength, uniform highp 3-component vector of float uShadowColor, uniform highp 4-component vector of float uDiffuseColor, uniform highp 4-component vector of float uAmbientColor}) -0:489 Constant: -0:489 0 (const uint) -0:491 Sequence -0:491 move second child to first child ( temp highp int) -0:491 'coord' ( temp highp int) -0:491 'index' ( in highp int) -0:492 Sequence -0:492 move second child to first child ( temp highp 4-component vector of float) -0:492 'samp' ( temp highp 4-component vector of float) -0:492 textureFetch ( global highp 4-component vector of float) -0:492 'sTDInstanceColor' (layout( binding=17) uniform highp samplerBuffer) -0:492 'coord' ( temp highp int) -0:493 move second child to first child ( temp highp float) -0:493 direct index ( temp highp float) -0:493 'v' ( temp highp 4-component vector of float) -0:493 Constant: -0:493 0 (const int) -0:493 direct index ( temp highp float) -0:493 'samp' ( temp highp 4-component vector of float) -0:493 Constant: -0:493 0 (const int) -0:494 move second child to first child ( temp highp float) -0:494 direct index ( temp highp float) -0:494 'v' ( temp highp 4-component vector of float) -0:494 Constant: -0:494 1 (const int) -0:494 direct index ( temp highp float) -0:494 'samp' ( temp highp 4-component vector of float) -0:494 Constant: -0:494 1 (const int) -0:495 move second child to first child ( temp highp float) -0:495 direct index ( temp highp float) -0:495 'v' ( temp highp 4-component vector of float) -0:495 Constant: -0:495 2 (const int) -0:495 direct index ( temp highp float) -0:495 'samp' ( temp highp 4-component vector of float) -0:495 Constant: -0:495 2 (const int) -0:496 move second child to first child ( temp highp float) -0:496 direct index ( temp highp float) -0:496 'v' ( temp highp 4-component vector of float) -0:496 Constant: -0:496 3 (const int) -0:496 Constant: -0:496 1.000000 -0:497 move second child to first child ( temp highp float) -0:497 direct index ( temp highp float) -0:497 'curColor' ( in highp 4-component vector of float) -0:497 Constant: -0:497 0 (const int) -0:497 direct index ( temp highp float) -0:497 'v' ( temp highp 4-component vector of float) -0:497 Constant: -0:497 0 (const int) -0:499 move second child to first child ( temp highp float) -0:499 direct index ( temp highp float) -0:499 'curColor' ( in highp 4-component vector of float) -0:499 Constant: -0:499 1 (const int) -0:499 direct index ( temp highp float) -0:499 'v' ( temp highp 4-component vector of float) -0:499 Constant: -0:499 1 (const int) -0:501 move second child to first child ( temp highp float) -0:501 direct index ( temp highp float) -0:501 'curColor' ( in highp 4-component vector of float) -0:501 Constant: -0:501 2 (const int) -0:501 direct index ( temp highp float) -0:501 'v' ( temp highp 4-component vector of float) -0:501 Constant: -0:501 2 (const int) -0:503 Branch: Return with expression -0:503 'curColor' ( in highp 4-component vector of float) -0:2 Function Definition: TDOutputSwizzle(vf4; ( global highp 4-component vector of float) -0:2 Function Parameters: -0:2 'c' ( in highp 4-component vector of float) -0:4 Sequence -0:4 Branch: Return with expression -0:4 vector swizzle ( temp highp 4-component vector of float) -0:4 'c' ( in highp 4-component vector of float) -0:4 Sequence -0:4 Constant: -0:4 0 (const int) -0:4 Constant: -0:4 1 (const int) -0:4 Constant: -0:4 2 (const int) -0:4 Constant: -0:4 3 (const int) -0:6 Function Definition: TDOutputSwizzle(vu4; ( global highp 4-component vector of uint) -0:6 Function Parameters: -0:6 'c' ( in highp 4-component vector of uint) -0:8 Sequence -0:8 Branch: Return with expression -0:8 vector swizzle ( temp highp 4-component vector of uint) -0:8 'c' ( in highp 4-component vector of uint) -0:8 Sequence -0:8 Constant: -0:8 0 (const int) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 2 (const int) -0:8 Constant: -0:8 3 (const int) -0:? Linker Objects -0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp int uTDInstanceIDOffset, uniform highp int uTDNumInstances, uniform highp float uTDAlphaTestVal, uniform highp 3-component vector of float uConstant, uniform highp float uShadowStrength, uniform highp 3-component vector of float uShadowColor, uniform highp 4-component vector of float uDiffuseColor, uniform highp 4-component vector of float uAmbientColor}) -0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 1-element array of structure{layout( column_major std140) global highp 4X4 matrix of float world, layout( column_major std140) global highp 4X4 matrix of float worldInverse, layout( column_major std140) global highp 4X4 matrix of float worldCam, layout( column_major std140) global highp 4X4 matrix of float worldCamInverse, layout( column_major std140) global highp 4X4 matrix of float cam, layout( column_major std140) global highp 4X4 matrix of float camInverse, layout( column_major std140) global highp 4X4 matrix of float camProj, layout( column_major std140) global highp 4X4 matrix of float camProjInverse, layout( column_major std140) global highp 4X4 matrix of float proj, layout( column_major std140) global highp 4X4 matrix of float projInverse, layout( column_major std140) global highp 4X4 matrix of float worldCamProj, layout( column_major std140) global highp 4X4 matrix of float worldCamProjInverse, layout( column_major std140) global highp 4X4 matrix of float quadReproject, layout( column_major std140) global highp 3X3 matrix of float worldForNormals, layout( column_major std140) global highp 3X3 matrix of float camForNormals, layout( column_major std140) global highp 3X3 matrix of float worldCamForNormals} uTDMats}) -0:? 'anon@2' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 1-element array of structure{ global highp 4-component vector of float nearFar, global highp 4-component vector of float fog, global highp 4-component vector of float fogColor, global highp int renderTOPCameraIndex} uTDCamInfos}) -0:? 'anon@3' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform structure{ global highp 4-component vector of float ambientColor, global highp 4-component vector of float nearFar, global highp 4-component vector of float viewport, global highp 4-component vector of float viewportRes, global highp 4-component vector of float fog, global highp 4-component vector of float fogColor} uTDGeneral}) -0:? 'sColorMap' ( uniform highp sampler2DArray) -0:? 'iVert' ( in block{ in highp 4-component vector of float color, in highp 3-component vector of float worldSpacePos, in highp 3-component vector of float texCoord0, flat in highp int cameraIndex, flat in highp int instance}) -0:? 'oFragColor' (layout( location=0) out 1-element array of highp 4-component vector of float) -0:? 'sTDNoiseMap' ( uniform highp sampler2D) -0:? 'sTDSineLookup' ( uniform highp sampler1D) -0:? 'sTDWhite2D' ( uniform highp sampler2D) -0:? 'sTDWhite3D' ( uniform highp sampler3D) -0:? 'sTDWhite2DArray' ( uniform highp sampler2DArray) -0:? 'sTDWhiteCube' ( uniform highp samplerCube) -0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 1-element array of structure{ global highp 4-component vector of float position, global highp 3-component vector of float direction, global highp 3-component vector of float diffuse, global highp 4-component vector of float nearFar, global highp 4-component vector of float lightSize, global highp 4-component vector of float misc, global highp 4-component vector of float coneLookupScaleBias, global highp 4-component vector of float attenScaleBiasRoll, layout( column_major std140) global highp 4X4 matrix of float shadowMapMatrix, layout( column_major std140) global highp 4X4 matrix of float shadowMapCamMatrix, global highp 4-component vector of float shadowMapRes, layout( column_major std140) global highp 4X4 matrix of float projMapMatrix} uTDLights}) -0:? 'anon@2' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 1-element array of structure{ global highp 3-component vector of float color, layout( column_major std140) global highp 3X3 matrix of float rotate} uTDEnvLights}) -0:? 'uTDEnvLightBuffers' (layout( column_major std430) restrict readonly buffer 1-element array of block{layout( column_major std430 offset=0) restrict readonly buffer 9-element array of highp 3-component vector of float shCoeffs}) -0:? 'sTDInstanceT' (layout( binding=15) uniform highp samplerBuffer) -0:? 'sTDInstanceTexCoord' (layout( binding=16) uniform highp samplerBuffer) -0:? 'sTDInstanceColor' (layout( binding=17) uniform highp samplerBuffer) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 939 - - Capability Shader - Capability SampledBuffer - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 207 216 226 238 256 297 905 906 - Source GLSL 460 - Name 4 "main" - Name 20 "iTDCamToProj(vf4;vf3;i1;b1;" - Name 16 "v" - Name 17 "uv" - Name 18 "cameraIndex" - Name 19 "applyPickMod" - Name 26 "iTDWorldToProj(vf4;vf3;i1;b1;" - Name 22 "v" - Name 23 "uv" - Name 24 "cameraIndex" - Name 25 "applyPickMod" - Name 29 "TDInstanceID(" - Name 31 "TDCameraIndex(" - Name 34 "TDUVUnwrapCoord(" - Name 36 "TDPickID(" - Name 40 "iTDConvertPickId(i1;" - Name 39 "id" - Name 42 "TDWritePickingValues(" - Name 47 "TDWorldToProj(vf4;vf3;" - Name 45 "v" - Name 46 "uv" - Name 52 "TDWorldToProj(vf3;vf3;" - Name 50 "v" - Name 51 "uv" - Name 56 "TDWorldToProj(vf4;" - Name 55 "v" - Name 60 "TDWorldToProj(vf3;" - Name 59 "v" - Name 63 "TDPointColor(" - Name 68 "TDInstanceTexCoord(i1;vf3;" - Name 66 "index" - Name 67 "t" - Name 72 "TDInstanceActive(i1;" - Name 71 "index" - Name 77 "iTDInstanceTranslate(i1;b1;" - Name 75 "index" - Name 76 "instanceActive" - Name 81 "TDInstanceTranslate(i1;" - Name 80 "index" - Name 86 "TDInstanceRotateMat(i1;" - Name 85 "index" - Name 89 "TDInstanceScale(i1;" - Name 88 "index" - Name 92 "TDInstancePivot(i1;" - Name 91 "index" - Name 95 "TDInstanceRotTo(i1;" - Name 94 "index" - Name 98 "TDInstanceRotUp(i1;" - Name 97 "index" - Name 103 "TDInstanceMat(i1;" - Name 102 "id" - Name 106 "TDInstanceMat3(i1;" - Name 105 "id" - Name 109 "TDInstanceMat3ForNorm(i1;" - Name 108 "id" - Name 114 "TDInstanceColor(i1;vf4;" - Name 112 "index" - Name 113 "curColor" - Name 118 "TDInstanceDeform(i1;vf4;" - Name 116 "id" - Name 117 "pos" - Name 122 "TDInstanceDeformVec(i1;vf3;" - Name 120 "id" - Name 121 "vec" - Name 126 "TDInstanceDeformNorm(i1;vf3;" - Name 124 "id" - Name 125 "vec" - Name 129 "TDInstanceDeform(vf4;" - Name 128 "pos" - Name 133 "TDInstanceDeformVec(vf3;" - Name 132 "vec" - Name 136 "TDInstanceDeformNorm(vf3;" - Name 135 "vec" - Name 139 "TDInstanceActive(" - Name 141 "TDInstanceTranslate(" - Name 144 "TDInstanceRotateMat(" - Name 146 "TDInstanceScale(" - Name 149 "TDInstanceMat(" - Name 151 "TDInstanceMat3(" - Name 154 "TDInstanceTexCoord(vf3;" - Name 153 "t" - Name 157 "TDInstanceColor(vf4;" - Name 156 "curColor" - Name 160 "TDSkinnedDeform(vf4;" - Name 159 "pos" - Name 163 "TDSkinnedDeformVec(vf3;" - Name 162 "vec" - Name 169 "TDFastDeformTangent(vf3;vf4;vf3;" - Name 166 "oldNorm" - Name 167 "oldTangent" - Name 168 "deformedNorm" - Name 172 "TDBoneMat(i1;" - Name 171 "index" - Name 175 "TDDeform(vf4;" - Name 174 "pos" - Name 180 "TDDeform(i1;vf3;" - Name 178 "instanceID" - Name 179 "p" - Name 183 "TDDeform(vf3;" - Name 182 "pos" - Name 187 "TDDeformVec(i1;vf3;" - Name 185 "instanceID" - Name 186 "vec" - Name 190 "TDDeformVec(vf3;" - Name 189 "vec" - Name 194 "TDDeformNorm(i1;vf3;" - Name 192 "instanceID" - Name 193 "vec" - Name 197 "TDDeformNorm(vf3;" - Name 196 "vec" - Name 200 "TDSkinnedDeformNorm(vf3;" - Name 199 "vec" - Name 202 "texcoord" - Name 207 "uv" - Name 209 "param" - Name 214 "Vertex" - MemberName 214(Vertex) 0 "color" - MemberName 214(Vertex) 1 "worldSpacePos" - MemberName 214(Vertex) 2 "texCoord0" - MemberName 214(Vertex) 3 "cameraIndex" - MemberName 214(Vertex) 4 "instance" - Name 216 "oVert" - Name 225 "worldSpacePos" - Name 226 "P" - Name 227 "param" - Name 230 "uvUnwrapCoord" - Name 232 "param" - Name 236 "gl_PerVertex" - MemberName 236(gl_PerVertex) 0 "gl_Position" - MemberName 236(gl_PerVertex) 1 "gl_PointSize" - MemberName 236(gl_PerVertex) 2 "gl_ClipDistance" - MemberName 236(gl_PerVertex) 3 "gl_CullDistance" - Name 238 "" - Name 239 "param" - Name 241 "param" - Name 246 "cameraIndex" - Name 256 "Cd" - Name 257 "param" - Name 269 "TDMatrix" - MemberName 269(TDMatrix) 0 "world" - MemberName 269(TDMatrix) 1 "worldInverse" - MemberName 269(TDMatrix) 2 "worldCam" - MemberName 269(TDMatrix) 3 "worldCamInverse" - MemberName 269(TDMatrix) 4 "cam" - MemberName 269(TDMatrix) 5 "camInverse" - MemberName 269(TDMatrix) 6 "camProj" - MemberName 269(TDMatrix) 7 "camProjInverse" - MemberName 269(TDMatrix) 8 "proj" - MemberName 269(TDMatrix) 9 "projInverse" - MemberName 269(TDMatrix) 10 "worldCamProj" - MemberName 269(TDMatrix) 11 "worldCamProjInverse" - MemberName 269(TDMatrix) 12 "quadReproject" - MemberName 269(TDMatrix) 13 "worldForNormals" - MemberName 269(TDMatrix) 14 "camForNormals" - MemberName 269(TDMatrix) 15 "worldCamForNormals" - Name 271 "TDMatricesBlock" - MemberName 271(TDMatricesBlock) 0 "uTDMats" - Name 273 "" - Name 297 "gl_InstanceIndex" - Name 299 "gl_DefaultUniformBlock" - MemberName 299(gl_DefaultUniformBlock) 0 "uTDInstanceIDOffset" - MemberName 299(gl_DefaultUniformBlock) 1 "uTDNumInstances" - MemberName 299(gl_DefaultUniformBlock) 2 "uTDAlphaTestVal" - MemberName 299(gl_DefaultUniformBlock) 3 "uConstant" - MemberName 299(gl_DefaultUniformBlock) 4 "uShadowStrength" - MemberName 299(gl_DefaultUniformBlock) 5 "uShadowColor" - MemberName 299(gl_DefaultUniformBlock) 6 "uDiffuseColor" - MemberName 299(gl_DefaultUniformBlock) 7 "uAmbientColor" - Name 301 "" - Name 325 "param" - Name 327 "param" - Name 329 "param" - Name 330 "param" - Name 340 "param" - Name 341 "param" - Name 347 "param" - Name 349 "param" - Name 358 "param" - Name 365 "coord" - Name 367 "samp" - Name 371 "sTDInstanceTexCoord" - Name 376 "v" - Name 397 "coord" - Name 399 "samp" - Name 400 "sTDInstanceT" - Name 405 "v" - Name 412 "origIndex" - Name 418 "coord" - Name 420 "samp" - Name 425 "v" - Name 446 "coord" - Name 448 "samp" - Name 453 "v" - Name 470 "v" - Name 472 "m" - Name 484 "v" - Name 493 "v" - Name 501 "v" - Name 509 "v" - Name 513 "instanceActive" - Name 514 "t" - Name 515 "param" - Name 517 "param" - Name 528 "m" - Name 534 "tt" - Name 647 "m" - Name 651 "m" - Name 652 "param" - Name 662 "coord" - Name 664 "samp" - Name 665 "sTDInstanceColor" - Name 670 "v" - Name 693 "param" - Name 705 "m" - Name 706 "param" - Name 725 "m" - Name 726 "param" - Name 745 "param" - Name 746 "param" - Name 752 "param" - Name 753 "param" - Name 759 "param" - Name 760 "param" - Name 766 "param" - Name 771 "param" - Name 776 "param" - Name 781 "param" - Name 786 "param" - Name 791 "param" - Name 796 "param" - Name 797 "param" - Name 803 "param" - Name 804 "param" - Name 821 "param" - Name 824 "param" - Name 830 "pos" - Name 836 "param" - Name 839 "param" - Name 841 "param" - Name 848 "param" - Name 849 "param" - Name 854 "param" - Name 857 "param" - Name 859 "param" - Name 866 "param" - Name 867 "param" - Name 872 "param" - Name 875 "param" - Name 877 "param" - Name 884 "param" - Name 885 "param" - Name 890 "param" - Name 896 "TDCameraInfo" - MemberName 896(TDCameraInfo) 0 "nearFar" - MemberName 896(TDCameraInfo) 1 "fog" - MemberName 896(TDCameraInfo) 2 "fogColor" - MemberName 896(TDCameraInfo) 3 "renderTOPCameraIndex" - Name 898 "TDCameraInfoBlock" - MemberName 898(TDCameraInfoBlock) 0 "uTDCamInfos" - Name 900 "" - Name 901 "TDGeneral" - MemberName 901(TDGeneral) 0 "ambientColor" - MemberName 901(TDGeneral) 1 "nearFar" - MemberName 901(TDGeneral) 2 "viewport" - MemberName 901(TDGeneral) 3 "viewportRes" - MemberName 901(TDGeneral) 4 "fog" - MemberName 901(TDGeneral) 5 "fogColor" - Name 902 "TDGeneralBlock" - MemberName 902(TDGeneralBlock) 0 "uTDGeneral" - Name 904 "" - Name 905 "N" - Name 906 "gl_VertexIndex" - Name 907 "TDLight" - MemberName 907(TDLight) 0 "position" - MemberName 907(TDLight) 1 "direction" - MemberName 907(TDLight) 2 "diffuse" - MemberName 907(TDLight) 3 "nearFar" - MemberName 907(TDLight) 4 "lightSize" - MemberName 907(TDLight) 5 "misc" - MemberName 907(TDLight) 6 "coneLookupScaleBias" - MemberName 907(TDLight) 7 "attenScaleBiasRoll" - MemberName 907(TDLight) 8 "shadowMapMatrix" - MemberName 907(TDLight) 9 "shadowMapCamMatrix" - MemberName 907(TDLight) 10 "shadowMapRes" - MemberName 907(TDLight) 11 "projMapMatrix" - Name 909 "TDLightBlock" - MemberName 909(TDLightBlock) 0 "uTDLights" - Name 911 "" - Name 912 "TDEnvLight" - MemberName 912(TDEnvLight) 0 "color" - MemberName 912(TDEnvLight) 1 "rotate" - Name 914 "TDEnvLightBlock" - MemberName 914(TDEnvLightBlock) 0 "uTDEnvLights" - Name 916 "" - Name 919 "TDEnvLightBuffer" - MemberName 919(TDEnvLightBuffer) 0 "shCoeffs" - Name 922 "uTDEnvLightBuffers" - Name 926 "mTD2DImageOutputs" - Name 930 "mTD2DArrayImageOutputs" - Name 934 "mTD3DImageOutputs" - Name 938 "mTDCubeImageOutputs" - Decorate 207(uv) Location 3 - MemberDecorate 214(Vertex) 3 Flat - MemberDecorate 214(Vertex) 4 Flat - Decorate 214(Vertex) Block - Decorate 216(oVert) Location 0 - Decorate 226(P) Location 0 - MemberDecorate 236(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 236(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 236(gl_PerVertex) 2 BuiltIn ClipDistance - MemberDecorate 236(gl_PerVertex) 3 BuiltIn CullDistance - Decorate 236(gl_PerVertex) Block - Decorate 256(Cd) Location 2 - MemberDecorate 269(TDMatrix) 0 ColMajor - MemberDecorate 269(TDMatrix) 0 Offset 0 - MemberDecorate 269(TDMatrix) 0 MatrixStride 16 - MemberDecorate 269(TDMatrix) 1 ColMajor - MemberDecorate 269(TDMatrix) 1 Offset 64 - MemberDecorate 269(TDMatrix) 1 MatrixStride 16 - MemberDecorate 269(TDMatrix) 2 ColMajor - MemberDecorate 269(TDMatrix) 2 Offset 128 - MemberDecorate 269(TDMatrix) 2 MatrixStride 16 - MemberDecorate 269(TDMatrix) 3 ColMajor - MemberDecorate 269(TDMatrix) 3 Offset 192 - MemberDecorate 269(TDMatrix) 3 MatrixStride 16 - MemberDecorate 269(TDMatrix) 4 ColMajor - MemberDecorate 269(TDMatrix) 4 Offset 256 - MemberDecorate 269(TDMatrix) 4 MatrixStride 16 - MemberDecorate 269(TDMatrix) 5 ColMajor - MemberDecorate 269(TDMatrix) 5 Offset 320 - MemberDecorate 269(TDMatrix) 5 MatrixStride 16 - MemberDecorate 269(TDMatrix) 6 ColMajor - MemberDecorate 269(TDMatrix) 6 Offset 384 - MemberDecorate 269(TDMatrix) 6 MatrixStride 16 - MemberDecorate 269(TDMatrix) 7 ColMajor - MemberDecorate 269(TDMatrix) 7 Offset 448 - MemberDecorate 269(TDMatrix) 7 MatrixStride 16 - MemberDecorate 269(TDMatrix) 8 ColMajor - MemberDecorate 269(TDMatrix) 8 Offset 512 - MemberDecorate 269(TDMatrix) 8 MatrixStride 16 - MemberDecorate 269(TDMatrix) 9 ColMajor - MemberDecorate 269(TDMatrix) 9 Offset 576 - MemberDecorate 269(TDMatrix) 9 MatrixStride 16 - MemberDecorate 269(TDMatrix) 10 ColMajor - MemberDecorate 269(TDMatrix) 10 Offset 640 - MemberDecorate 269(TDMatrix) 10 MatrixStride 16 - MemberDecorate 269(TDMatrix) 11 ColMajor - MemberDecorate 269(TDMatrix) 11 Offset 704 - MemberDecorate 269(TDMatrix) 11 MatrixStride 16 - MemberDecorate 269(TDMatrix) 12 ColMajor - MemberDecorate 269(TDMatrix) 12 Offset 768 - MemberDecorate 269(TDMatrix) 12 MatrixStride 16 - MemberDecorate 269(TDMatrix) 13 ColMajor - MemberDecorate 269(TDMatrix) 13 Offset 832 - MemberDecorate 269(TDMatrix) 13 MatrixStride 16 - MemberDecorate 269(TDMatrix) 14 ColMajor - MemberDecorate 269(TDMatrix) 14 Offset 880 - MemberDecorate 269(TDMatrix) 14 MatrixStride 16 - MemberDecorate 269(TDMatrix) 15 ColMajor - MemberDecorate 269(TDMatrix) 15 Offset 928 - MemberDecorate 269(TDMatrix) 15 MatrixStride 16 - Decorate 270 ArrayStride 976 - MemberDecorate 271(TDMatricesBlock) 0 Offset 0 - Decorate 271(TDMatricesBlock) Block - Decorate 273 DescriptorSet 0 - Decorate 273 Binding 1 - Decorate 297(gl_InstanceIndex) BuiltIn InstanceIndex - MemberDecorate 299(gl_DefaultUniformBlock) 0 Offset 0 - MemberDecorate 299(gl_DefaultUniformBlock) 1 Offset 4 - MemberDecorate 299(gl_DefaultUniformBlock) 2 Offset 8 - MemberDecorate 299(gl_DefaultUniformBlock) 3 Offset 16 - MemberDecorate 299(gl_DefaultUniformBlock) 4 Offset 28 - MemberDecorate 299(gl_DefaultUniformBlock) 5 Offset 32 - MemberDecorate 299(gl_DefaultUniformBlock) 6 Offset 48 - MemberDecorate 299(gl_DefaultUniformBlock) 7 Offset 64 - Decorate 299(gl_DefaultUniformBlock) Block - Decorate 301 DescriptorSet 0 - Decorate 301 Binding 0 - Decorate 371(sTDInstanceTexCoord) DescriptorSet 0 - Decorate 371(sTDInstanceTexCoord) Binding 16 - Decorate 400(sTDInstanceT) DescriptorSet 0 - Decorate 400(sTDInstanceT) Binding 15 - Decorate 665(sTDInstanceColor) DescriptorSet 0 - Decorate 665(sTDInstanceColor) Binding 17 - MemberDecorate 896(TDCameraInfo) 0 Offset 0 - MemberDecorate 896(TDCameraInfo) 1 Offset 16 - MemberDecorate 896(TDCameraInfo) 2 Offset 32 - MemberDecorate 896(TDCameraInfo) 3 Offset 48 - Decorate 897 ArrayStride 64 - MemberDecorate 898(TDCameraInfoBlock) 0 Offset 0 - Decorate 898(TDCameraInfoBlock) Block - Decorate 900 DescriptorSet 0 - Decorate 900 Binding 0 - MemberDecorate 901(TDGeneral) 0 Offset 0 - MemberDecorate 901(TDGeneral) 1 Offset 16 - MemberDecorate 901(TDGeneral) 2 Offset 32 - MemberDecorate 901(TDGeneral) 3 Offset 48 - MemberDecorate 901(TDGeneral) 4 Offset 64 - MemberDecorate 901(TDGeneral) 5 Offset 80 - MemberDecorate 902(TDGeneralBlock) 0 Offset 0 - Decorate 902(TDGeneralBlock) Block - Decorate 904 DescriptorSet 0 - Decorate 904 Binding 0 - Decorate 905(N) Location 1 - Decorate 906(gl_VertexIndex) BuiltIn VertexIndex - MemberDecorate 907(TDLight) 0 Offset 0 - MemberDecorate 907(TDLight) 1 Offset 16 - MemberDecorate 907(TDLight) 2 Offset 32 - MemberDecorate 907(TDLight) 3 Offset 48 - MemberDecorate 907(TDLight) 4 Offset 64 - MemberDecorate 907(TDLight) 5 Offset 80 - MemberDecorate 907(TDLight) 6 Offset 96 - MemberDecorate 907(TDLight) 7 Offset 112 - MemberDecorate 907(TDLight) 8 ColMajor - MemberDecorate 907(TDLight) 8 Offset 128 - MemberDecorate 907(TDLight) 8 MatrixStride 16 - MemberDecorate 907(TDLight) 9 ColMajor - MemberDecorate 907(TDLight) 9 Offset 192 - MemberDecorate 907(TDLight) 9 MatrixStride 16 - MemberDecorate 907(TDLight) 10 Offset 256 - MemberDecorate 907(TDLight) 11 ColMajor - MemberDecorate 907(TDLight) 11 Offset 272 - MemberDecorate 907(TDLight) 11 MatrixStride 16 - Decorate 908 ArrayStride 336 - MemberDecorate 909(TDLightBlock) 0 Offset 0 - Decorate 909(TDLightBlock) Block - Decorate 911 DescriptorSet 0 - Decorate 911 Binding 0 - MemberDecorate 912(TDEnvLight) 0 Offset 0 - MemberDecorate 912(TDEnvLight) 1 ColMajor - MemberDecorate 912(TDEnvLight) 1 Offset 16 - MemberDecorate 912(TDEnvLight) 1 MatrixStride 16 - Decorate 913 ArrayStride 64 - MemberDecorate 914(TDEnvLightBlock) 0 Offset 0 - Decorate 914(TDEnvLightBlock) Block - Decorate 916 DescriptorSet 0 - Decorate 916 Binding 0 - Decorate 918 ArrayStride 16 - MemberDecorate 919(TDEnvLightBuffer) 0 Restrict - MemberDecorate 919(TDEnvLightBuffer) 0 NonWritable - MemberDecorate 919(TDEnvLightBuffer) 0 Offset 0 - Decorate 919(TDEnvLightBuffer) BufferBlock - Decorate 922(uTDEnvLightBuffers) DescriptorSet 0 - Decorate 922(uTDEnvLightBuffers) Binding 0 - Decorate 926(mTD2DImageOutputs) DescriptorSet 0 - Decorate 926(mTD2DImageOutputs) Binding 0 - Decorate 930(mTD2DArrayImageOutputs) DescriptorSet 0 - Decorate 930(mTD2DArrayImageOutputs) Binding 0 - Decorate 934(mTD3DImageOutputs) DescriptorSet 0 - Decorate 934(mTD3DImageOutputs) Binding 0 - Decorate 938(mTDCubeImageOutputs) DescriptorSet 0 - Decorate 938(mTDCubeImageOutputs) Binding 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 9: TypeVector 6(float) 3 - 10: TypePointer Function 9(fvec3) - 11: TypeInt 32 1 - 12: TypePointer Function 11(int) - 13: TypeBool - 14: TypePointer Function 13(bool) - 15: TypeFunction 7(fvec4) 8(ptr) 10(ptr) 12(ptr) 14(ptr) - 28: TypeFunction 11(int) - 33: TypeFunction 9(fvec3) - 38: TypeFunction 6(float) 12(ptr) - 44: TypeFunction 7(fvec4) 8(ptr) 10(ptr) - 49: TypeFunction 7(fvec4) 10(ptr) 10(ptr) - 54: TypeFunction 7(fvec4) 8(ptr) - 58: TypeFunction 7(fvec4) 10(ptr) - 62: TypeFunction 7(fvec4) - 65: TypeFunction 9(fvec3) 12(ptr) 10(ptr) - 70: TypeFunction 13(bool) 12(ptr) - 74: TypeFunction 9(fvec3) 12(ptr) 14(ptr) - 79: TypeFunction 9(fvec3) 12(ptr) - 83: TypeMatrix 9(fvec3) 3 - 84: TypeFunction 83 12(ptr) - 100: TypeMatrix 7(fvec4) 4 - 101: TypeFunction 100 12(ptr) - 111: TypeFunction 7(fvec4) 12(ptr) 8(ptr) - 131: TypeFunction 9(fvec3) 10(ptr) - 138: TypeFunction 13(bool) - 143: TypeFunction 83 - 148: TypeFunction 100 - 165: TypeFunction 9(fvec3) 10(ptr) 8(ptr) 10(ptr) - 177: TypeFunction 7(fvec4) 12(ptr) 10(ptr) - 203: TypeInt 32 0 - 204: 203(int) Constant 8 - 205: TypeArray 9(fvec3) 204 - 206: TypePointer Input 205 - 207(uv): 206(ptr) Variable Input - 208: 11(int) Constant 0 - 210: TypePointer Input 9(fvec3) - 214(Vertex): TypeStruct 7(fvec4) 9(fvec3) 9(fvec3) 11(int) 11(int) - 215: TypePointer Output 214(Vertex) - 216(oVert): 215(ptr) Variable Output - 217: 11(int) Constant 2 - 219: TypePointer Output 9(fvec3) - 221: 11(int) Constant 4 - 223: TypePointer Output 11(int) - 226(P): 210(ptr) Variable Input - 234: 203(int) Constant 1 - 235: TypeArray 6(float) 234 -236(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 235 235 - 237: TypePointer Output 236(gl_PerVertex) - 238: 237(ptr) Variable Output - 244: TypePointer Output 7(fvec4) - 248: 11(int) Constant 3 - 251: 11(int) Constant 1 - 255: TypePointer Input 7(fvec4) - 256(Cd): 255(ptr) Variable Input - 265: 6(float) Constant 1073741824 - 266: 6(float) Constant 0 - 267: 7(fvec4) ConstantComposite 265 265 265 266 - 269(TDMatrix): TypeStruct 100 100 100 100 100 100 100 100 100 100 100 100 100 83 83 83 - 270: TypeArray 269(TDMatrix) 234 -271(TDMatricesBlock): TypeStruct 270 - 272: TypePointer Uniform 271(TDMatricesBlock) - 273: 272(ptr) Variable Uniform - 274: 11(int) Constant 8 - 275: TypePointer Uniform 100 - 288: 11(int) Constant 6 - 296: TypePointer Input 11(int) -297(gl_InstanceIndex): 296(ptr) Variable Input -299(gl_DefaultUniformBlock): TypeStruct 11(int) 11(int) 6(float) 9(fvec3) 6(float) 9(fvec3) 7(fvec4) 7(fvec4) - 300: TypePointer Uniform 299(gl_DefaultUniformBlock) - 301: 300(ptr) Variable Uniform - 302: TypePointer Uniform 11(int) - 316: 11(int) Constant 1073741824 - 324: 13(bool) ConstantTrue - 335: 6(float) Constant 1065353216 - 346: 9(fvec3) ConstantComposite 266 266 266 - 368: TypeImage 6(float) Buffer sampled format:Unknown - 369: TypeSampledImage 368 - 370: TypePointer UniformConstant 369 -371(sTDInstanceTexCoord): 370(ptr) Variable UniformConstant - 377: 203(int) Constant 0 - 378: TypePointer Function 6(float) - 387: 203(int) Constant 2 -400(sTDInstanceT): 370(ptr) Variable UniformConstant - 432: 203(int) Constant 3 - 471: TypePointer Function 83 - 473: 9(fvec3) ConstantComposite 335 266 266 - 474: 9(fvec3) ConstantComposite 266 335 266 - 475: 9(fvec3) ConstantComposite 266 266 335 - 476: 83 ConstantComposite 473 474 475 - 485: 9(fvec3) ConstantComposite 335 335 335 - 524: 7(fvec4) ConstantComposite 266 266 266 266 - 525: 100 ConstantComposite 524 524 524 524 - 527: TypePointer Function 100 - 529: 7(fvec4) ConstantComposite 335 266 266 266 - 530: 7(fvec4) ConstantComposite 266 335 266 266 - 531: 7(fvec4) ConstantComposite 266 266 335 266 - 532: 7(fvec4) ConstantComposite 266 266 266 335 - 533: 100 ConstantComposite 529 530 531 532 -665(sTDInstanceColor): 370(ptr) Variable UniformConstant - 730: 11(int) Constant 13 - 731: TypePointer Uniform 83 -896(TDCameraInfo): TypeStruct 7(fvec4) 7(fvec4) 7(fvec4) 11(int) - 897: TypeArray 896(TDCameraInfo) 234 -898(TDCameraInfoBlock): TypeStruct 897 - 899: TypePointer Uniform 898(TDCameraInfoBlock) - 900: 899(ptr) Variable Uniform - 901(TDGeneral): TypeStruct 7(fvec4) 7(fvec4) 7(fvec4) 7(fvec4) 7(fvec4) 7(fvec4) -902(TDGeneralBlock): TypeStruct 901(TDGeneral) - 903: TypePointer Uniform 902(TDGeneralBlock) - 904: 903(ptr) Variable Uniform - 905(N): 210(ptr) Variable Input -906(gl_VertexIndex): 296(ptr) Variable Input - 907(TDLight): TypeStruct 7(fvec4) 9(fvec3) 9(fvec3) 7(fvec4) 7(fvec4) 7(fvec4) 7(fvec4) 7(fvec4) 100 100 7(fvec4) 100 - 908: TypeArray 907(TDLight) 234 -909(TDLightBlock): TypeStruct 908 - 910: TypePointer Uniform 909(TDLightBlock) - 911: 910(ptr) Variable Uniform - 912(TDEnvLight): TypeStruct 9(fvec3) 83 - 913: TypeArray 912(TDEnvLight) 234 -914(TDEnvLightBlock): TypeStruct 913 - 915: TypePointer Uniform 914(TDEnvLightBlock) - 916: 915(ptr) Variable Uniform - 917: 203(int) Constant 9 - 918: TypeArray 9(fvec3) 917 -919(TDEnvLightBuffer): TypeStruct 918 - 920: TypeArray 919(TDEnvLightBuffer) 234 - 921: TypePointer Uniform 920 -922(uTDEnvLightBuffers): 921(ptr) Variable Uniform - 923: TypeImage 6(float) 2D nonsampled format:Rgba8 - 924: TypeArray 923 234 - 925: TypePointer UniformConstant 924 -926(mTD2DImageOutputs): 925(ptr) Variable UniformConstant - 927: TypeImage 6(float) 2D array nonsampled format:Rgba8 - 928: TypeArray 927 234 - 929: TypePointer UniformConstant 928 -930(mTD2DArrayImageOutputs): 929(ptr) Variable UniformConstant - 931: TypeImage 6(float) 3D nonsampled format:Rgba8 - 932: TypeArray 931 234 - 933: TypePointer UniformConstant 932 -934(mTD3DImageOutputs): 933(ptr) Variable UniformConstant - 935: TypeImage 6(float) Cube nonsampled format:Rgba8 - 936: TypeArray 935 234 - 937: TypePointer UniformConstant 936 -938(mTDCubeImageOutputs): 937(ptr) Variable UniformConstant - 4(main): 2 Function None 3 - 5: Label - 202(texcoord): 10(ptr) Variable Function - 209(param): 10(ptr) Variable Function -225(worldSpacePos): 8(ptr) Variable Function - 227(param): 10(ptr) Variable Function -230(uvUnwrapCoord): 10(ptr) Variable Function - 232(param): 10(ptr) Variable Function - 239(param): 8(ptr) Variable Function - 241(param): 10(ptr) Variable Function -246(cameraIndex): 12(ptr) Variable Function - 257(param): 8(ptr) Variable Function - 211: 210(ptr) AccessChain 207(uv) 208 - 212: 9(fvec3) Load 211 - Store 209(param) 212 - 213: 9(fvec3) FunctionCall 154(TDInstanceTexCoord(vf3;) 209(param) - Store 202(texcoord) 213 - 218: 9(fvec3) Load 202(texcoord) - 220: 219(ptr) AccessChain 216(oVert) 217 - Store 220 218 - 222: 11(int) FunctionCall 29(TDInstanceID() - 224: 223(ptr) AccessChain 216(oVert) 221 - Store 224 222 - 228: 9(fvec3) Load 226(P) - Store 227(param) 228 - 229: 7(fvec4) FunctionCall 183(TDDeform(vf3;) 227(param) - Store 225(worldSpacePos) 229 - 231: 9(fvec3) FunctionCall 34(TDUVUnwrapCoord() - Store 232(param) 231 - 233: 9(fvec3) FunctionCall 154(TDInstanceTexCoord(vf3;) 232(param) - Store 230(uvUnwrapCoord) 233 - 240: 7(fvec4) Load 225(worldSpacePos) - Store 239(param) 240 - 242: 9(fvec3) Load 230(uvUnwrapCoord) - Store 241(param) 242 - 243: 7(fvec4) FunctionCall 47(TDWorldToProj(vf4;vf3;) 239(param) 241(param) - 245: 244(ptr) AccessChain 238 208 - Store 245 243 - 247: 11(int) FunctionCall 31(TDCameraIndex() - Store 246(cameraIndex) 247 - 249: 11(int) Load 246(cameraIndex) - 250: 223(ptr) AccessChain 216(oVert) 248 - Store 250 249 - 252: 7(fvec4) Load 225(worldSpacePos) - 253: 9(fvec3) VectorShuffle 252 252 0 1 2 - 254: 219(ptr) AccessChain 216(oVert) 251 - Store 254 253 - 258: 7(fvec4) Load 256(Cd) - Store 257(param) 258 - 259: 7(fvec4) FunctionCall 157(TDInstanceColor(vf4;) 257(param) - 260: 244(ptr) AccessChain 216(oVert) 208 - Store 260 259 - Return - FunctionEnd -20(iTDCamToProj(vf4;vf3;i1;b1;): 7(fvec4) Function None 15 - 16(v): 8(ptr) FunctionParameter - 17(uv): 10(ptr) FunctionParameter - 18(cameraIndex): 12(ptr) FunctionParameter -19(applyPickMod): 14(ptr) FunctionParameter - 21: Label - 261: 13(bool) FunctionCall 139(TDInstanceActive() - 262: 13(bool) LogicalNot 261 - SelectionMerge 264 None - BranchConditional 262 263 264 - 263: Label - ReturnValue 267 - 264: Label - 276: 275(ptr) AccessChain 273 208 208 274 - 277: 100 Load 276 - 278: 7(fvec4) Load 16(v) - 279: 7(fvec4) MatrixTimesVector 277 278 - Store 16(v) 279 - 280: 7(fvec4) Load 16(v) - ReturnValue 280 - FunctionEnd -26(iTDWorldToProj(vf4;vf3;i1;b1;): 7(fvec4) Function None 15 - 22(v): 8(ptr) FunctionParameter - 23(uv): 10(ptr) FunctionParameter - 24(cameraIndex): 12(ptr) FunctionParameter -25(applyPickMod): 14(ptr) FunctionParameter - 27: Label - 283: 13(bool) FunctionCall 139(TDInstanceActive() - 284: 13(bool) LogicalNot 283 - SelectionMerge 286 None - BranchConditional 284 285 286 - 285: Label - ReturnValue 267 - 286: Label - 289: 275(ptr) AccessChain 273 208 208 288 - 290: 100 Load 289 - 291: 7(fvec4) Load 22(v) - 292: 7(fvec4) MatrixTimesVector 290 291 - Store 22(v) 292 - 293: 7(fvec4) Load 22(v) - ReturnValue 293 - FunctionEnd -29(TDInstanceID(): 11(int) Function None 28 - 30: Label - 298: 11(int) Load 297(gl_InstanceIndex) - 303: 302(ptr) AccessChain 301 208 - 304: 11(int) Load 303 - 305: 11(int) IAdd 298 304 - ReturnValue 305 - FunctionEnd -31(TDCameraIndex(): 11(int) Function None 28 - 32: Label - ReturnValue 208 - FunctionEnd -34(TDUVUnwrapCoord(): 9(fvec3) Function None 33 - 35: Label - 310: 210(ptr) AccessChain 207(uv) 208 - 311: 9(fvec3) Load 310 - ReturnValue 311 - FunctionEnd - 36(TDPickID(): 11(int) Function None 28 - 37: Label - ReturnValue 208 - FunctionEnd -40(iTDConvertPickId(i1;): 6(float) Function None 38 - 39(id): 12(ptr) FunctionParameter - 41: Label - 317: 11(int) Load 39(id) - 318: 11(int) BitwiseOr 317 316 - Store 39(id) 318 - 319: 11(int) Load 39(id) - 320: 6(float) Bitcast 319 - ReturnValue 320 - FunctionEnd -42(TDWritePickingValues(): 2 Function None 3 - 43: Label - Return - FunctionEnd -47(TDWorldToProj(vf4;vf3;): 7(fvec4) Function None 44 - 45(v): 8(ptr) FunctionParameter - 46(uv): 10(ptr) FunctionParameter - 48: Label - 325(param): 8(ptr) Variable Function - 327(param): 10(ptr) Variable Function - 329(param): 12(ptr) Variable Function - 330(param): 14(ptr) Variable Function - 323: 11(int) FunctionCall 31(TDCameraIndex() - 326: 7(fvec4) Load 45(v) - Store 325(param) 326 - 328: 9(fvec3) Load 46(uv) - Store 327(param) 328 - Store 329(param) 323 - Store 330(param) 324 - 331: 7(fvec4) FunctionCall 26(iTDWorldToProj(vf4;vf3;i1;b1;) 325(param) 327(param) 329(param) 330(param) - ReturnValue 331 - FunctionEnd -52(TDWorldToProj(vf3;vf3;): 7(fvec4) Function None 49 - 50(v): 10(ptr) FunctionParameter - 51(uv): 10(ptr) FunctionParameter - 53: Label - 340(param): 8(ptr) Variable Function - 341(param): 10(ptr) Variable Function - 334: 9(fvec3) Load 50(v) - 336: 6(float) CompositeExtract 334 0 - 337: 6(float) CompositeExtract 334 1 - 338: 6(float) CompositeExtract 334 2 - 339: 7(fvec4) CompositeConstruct 336 337 338 335 - Store 340(param) 339 - 342: 9(fvec3) Load 51(uv) - Store 341(param) 342 - 343: 7(fvec4) FunctionCall 47(TDWorldToProj(vf4;vf3;) 340(param) 341(param) - ReturnValue 343 - FunctionEnd -56(TDWorldToProj(vf4;): 7(fvec4) Function None 54 - 55(v): 8(ptr) FunctionParameter - 57: Label - 347(param): 8(ptr) Variable Function - 349(param): 10(ptr) Variable Function - 348: 7(fvec4) Load 55(v) - Store 347(param) 348 - Store 349(param) 346 - 350: 7(fvec4) FunctionCall 47(TDWorldToProj(vf4;vf3;) 347(param) 349(param) - ReturnValue 350 - FunctionEnd -60(TDWorldToProj(vf3;): 7(fvec4) Function None 58 - 59(v): 10(ptr) FunctionParameter - 61: Label - 358(param): 8(ptr) Variable Function - 353: 9(fvec3) Load 59(v) - 354: 6(float) CompositeExtract 353 0 - 355: 6(float) CompositeExtract 353 1 - 356: 6(float) CompositeExtract 353 2 - 357: 7(fvec4) CompositeConstruct 354 355 356 335 - Store 358(param) 357 - 359: 7(fvec4) FunctionCall 56(TDWorldToProj(vf4;) 358(param) - ReturnValue 359 - FunctionEnd -63(TDPointColor(): 7(fvec4) Function None 62 - 64: Label - 362: 7(fvec4) Load 256(Cd) - ReturnValue 362 - FunctionEnd -68(TDInstanceTexCoord(i1;vf3;): 9(fvec3) Function None 65 - 66(index): 12(ptr) FunctionParameter - 67(t): 10(ptr) FunctionParameter - 69: Label - 365(coord): 12(ptr) Variable Function - 367(samp): 8(ptr) Variable Function - 376(v): 10(ptr) Variable Function - 366: 11(int) Load 66(index) - Store 365(coord) 366 - 372: 369 Load 371(sTDInstanceTexCoord) - 373: 11(int) Load 365(coord) - 374: 368 Image 372 - 375: 7(fvec4) ImageFetch 374 373 - Store 367(samp) 375 - 379: 378(ptr) AccessChain 67(t) 377 - 380: 6(float) Load 379 - 381: 378(ptr) AccessChain 376(v) 377 - Store 381 380 - 382: 378(ptr) AccessChain 67(t) 234 - 383: 6(float) Load 382 - 384: 378(ptr) AccessChain 376(v) 234 - Store 384 383 - 385: 378(ptr) AccessChain 367(samp) 377 - 386: 6(float) Load 385 - 388: 378(ptr) AccessChain 376(v) 387 - Store 388 386 - 389: 9(fvec3) Load 376(v) - Store 67(t) 389 - 390: 9(fvec3) Load 67(t) - ReturnValue 390 - FunctionEnd -72(TDInstanceActive(i1;): 13(bool) Function None 70 - 71(index): 12(ptr) FunctionParameter - 73: Label - 397(coord): 12(ptr) Variable Function - 399(samp): 8(ptr) Variable Function - 405(v): 378(ptr) Variable Function - 393: 302(ptr) AccessChain 301 208 - 394: 11(int) Load 393 - 395: 11(int) Load 71(index) - 396: 11(int) ISub 395 394 - Store 71(index) 396 - 398: 11(int) Load 71(index) - Store 397(coord) 398 - 401: 369 Load 400(sTDInstanceT) - 402: 11(int) Load 397(coord) - 403: 368 Image 401 - 404: 7(fvec4) ImageFetch 403 402 - Store 399(samp) 404 - 406: 378(ptr) AccessChain 399(samp) 377 - 407: 6(float) Load 406 - Store 405(v) 407 - 408: 6(float) Load 405(v) - 409: 13(bool) FUnordNotEqual 408 266 - ReturnValue 409 - FunctionEnd -77(iTDInstanceTranslate(i1;b1;): 9(fvec3) Function None 74 - 75(index): 12(ptr) FunctionParameter -76(instanceActive): 14(ptr) FunctionParameter - 78: Label - 412(origIndex): 12(ptr) Variable Function - 418(coord): 12(ptr) Variable Function - 420(samp): 8(ptr) Variable Function - 425(v): 10(ptr) Variable Function - 413: 11(int) Load 75(index) - Store 412(origIndex) 413 - 414: 302(ptr) AccessChain 301 208 - 415: 11(int) Load 414 - 416: 11(int) Load 75(index) - 417: 11(int) ISub 416 415 - Store 75(index) 417 - 419: 11(int) Load 75(index) - Store 418(coord) 419 - 421: 369 Load 400(sTDInstanceT) - 422: 11(int) Load 418(coord) - 423: 368 Image 421 - 424: 7(fvec4) ImageFetch 423 422 - Store 420(samp) 424 - 426: 378(ptr) AccessChain 420(samp) 234 - 427: 6(float) Load 426 - 428: 378(ptr) AccessChain 425(v) 377 - Store 428 427 - 429: 378(ptr) AccessChain 420(samp) 387 - 430: 6(float) Load 429 - 431: 378(ptr) AccessChain 425(v) 234 - Store 431 430 - 433: 378(ptr) AccessChain 420(samp) 432 - 434: 6(float) Load 433 - 435: 378(ptr) AccessChain 425(v) 387 - Store 435 434 - 436: 378(ptr) AccessChain 420(samp) 377 - 437: 6(float) Load 436 - 438: 13(bool) FUnordNotEqual 437 266 - Store 76(instanceActive) 438 - 439: 9(fvec3) Load 425(v) - ReturnValue 439 - FunctionEnd -81(TDInstanceTranslate(i1;): 9(fvec3) Function None 79 - 80(index): 12(ptr) FunctionParameter - 82: Label - 446(coord): 12(ptr) Variable Function - 448(samp): 8(ptr) Variable Function - 453(v): 10(ptr) Variable Function - 442: 302(ptr) AccessChain 301 208 - 443: 11(int) Load 442 - 444: 11(int) Load 80(index) - 445: 11(int) ISub 444 443 - Store 80(index) 445 - 447: 11(int) Load 80(index) - Store 446(coord) 447 - 449: 369 Load 400(sTDInstanceT) - 450: 11(int) Load 446(coord) - 451: 368 Image 449 - 452: 7(fvec4) ImageFetch 451 450 - Store 448(samp) 452 - 454: 378(ptr) AccessChain 448(samp) 234 - 455: 6(float) Load 454 - 456: 378(ptr) AccessChain 453(v) 377 - Store 456 455 - 457: 378(ptr) AccessChain 448(samp) 387 - 458: 6(float) Load 457 - 459: 378(ptr) AccessChain 453(v) 234 - Store 459 458 - 460: 378(ptr) AccessChain 448(samp) 432 - 461: 6(float) Load 460 - 462: 378(ptr) AccessChain 453(v) 387 - Store 462 461 - 463: 9(fvec3) Load 453(v) - ReturnValue 463 - FunctionEnd -86(TDInstanceRotateMat(i1;): 83 Function None 84 - 85(index): 12(ptr) FunctionParameter - 87: Label - 470(v): 10(ptr) Variable Function - 472(m): 471(ptr) Variable Function - 466: 302(ptr) AccessChain 301 208 - 467: 11(int) Load 466 - 468: 11(int) Load 85(index) - 469: 11(int) ISub 468 467 - Store 85(index) 469 - Store 470(v) 346 - Store 472(m) 476 - 477: 83 Load 472(m) - ReturnValue 477 - FunctionEnd -89(TDInstanceScale(i1;): 9(fvec3) Function None 79 - 88(index): 12(ptr) FunctionParameter - 90: Label - 484(v): 10(ptr) Variable Function - 480: 302(ptr) AccessChain 301 208 - 481: 11(int) Load 480 - 482: 11(int) Load 88(index) - 483: 11(int) ISub 482 481 - Store 88(index) 483 - Store 484(v) 485 - 486: 9(fvec3) Load 484(v) - ReturnValue 486 - FunctionEnd -92(TDInstancePivot(i1;): 9(fvec3) Function None 79 - 91(index): 12(ptr) FunctionParameter - 93: Label - 493(v): 10(ptr) Variable Function - 489: 302(ptr) AccessChain 301 208 - 490: 11(int) Load 489 - 491: 11(int) Load 91(index) - 492: 11(int) ISub 491 490 - Store 91(index) 492 - Store 493(v) 346 - 494: 9(fvec3) Load 493(v) - ReturnValue 494 - FunctionEnd -95(TDInstanceRotTo(i1;): 9(fvec3) Function None 79 - 94(index): 12(ptr) FunctionParameter - 96: Label - 501(v): 10(ptr) Variable Function - 497: 302(ptr) AccessChain 301 208 - 498: 11(int) Load 497 - 499: 11(int) Load 94(index) - 500: 11(int) ISub 499 498 - Store 94(index) 500 - Store 501(v) 475 - 502: 9(fvec3) Load 501(v) - ReturnValue 502 - FunctionEnd -98(TDInstanceRotUp(i1;): 9(fvec3) Function None 79 - 97(index): 12(ptr) FunctionParameter - 99: Label - 509(v): 10(ptr) Variable Function - 505: 302(ptr) AccessChain 301 208 - 506: 11(int) Load 505 - 507: 11(int) Load 97(index) - 508: 11(int) ISub 507 506 - Store 97(index) 508 - Store 509(v) 474 - 510: 9(fvec3) Load 509(v) - ReturnValue 510 - FunctionEnd -103(TDInstanceMat(i1;): 100 Function None 101 - 102(id): 12(ptr) FunctionParameter - 104: Label -513(instanceActive): 14(ptr) Variable Function - 514(t): 10(ptr) Variable Function - 515(param): 12(ptr) Variable Function - 517(param): 14(ptr) Variable Function - 528(m): 527(ptr) Variable Function - 534(tt): 10(ptr) Variable Function - Store 513(instanceActive) 324 - 516: 11(int) Load 102(id) - Store 515(param) 516 - 518: 9(fvec3) FunctionCall 77(iTDInstanceTranslate(i1;b1;) 515(param) 517(param) - 519: 13(bool) Load 517(param) - Store 513(instanceActive) 519 - Store 514(t) 518 - 520: 13(bool) Load 513(instanceActive) - 521: 13(bool) LogicalNot 520 - SelectionMerge 523 None - BranchConditional 521 522 523 - 522: Label - ReturnValue 525 - 523: Label - Store 528(m) 533 - 535: 9(fvec3) Load 514(t) - Store 534(tt) 535 - 536: 378(ptr) AccessChain 528(m) 208 377 - 537: 6(float) Load 536 - 538: 378(ptr) AccessChain 534(tt) 377 - 539: 6(float) Load 538 - 540: 6(float) FMul 537 539 - 541: 378(ptr) AccessChain 528(m) 248 377 - 542: 6(float) Load 541 - 543: 6(float) FAdd 542 540 - 544: 378(ptr) AccessChain 528(m) 248 377 - Store 544 543 - 545: 378(ptr) AccessChain 528(m) 208 234 - 546: 6(float) Load 545 - 547: 378(ptr) AccessChain 534(tt) 377 - 548: 6(float) Load 547 - 549: 6(float) FMul 546 548 - 550: 378(ptr) AccessChain 528(m) 248 234 - 551: 6(float) Load 550 - 552: 6(float) FAdd 551 549 - 553: 378(ptr) AccessChain 528(m) 248 234 - Store 553 552 - 554: 378(ptr) AccessChain 528(m) 208 387 - 555: 6(float) Load 554 - 556: 378(ptr) AccessChain 534(tt) 377 - 557: 6(float) Load 556 - 558: 6(float) FMul 555 557 - 559: 378(ptr) AccessChain 528(m) 248 387 - 560: 6(float) Load 559 - 561: 6(float) FAdd 560 558 - 562: 378(ptr) AccessChain 528(m) 248 387 - Store 562 561 - 563: 378(ptr) AccessChain 528(m) 208 432 - 564: 6(float) Load 563 - 565: 378(ptr) AccessChain 534(tt) 377 - 566: 6(float) Load 565 - 567: 6(float) FMul 564 566 - 568: 378(ptr) AccessChain 528(m) 248 432 - 569: 6(float) Load 568 - 570: 6(float) FAdd 569 567 - 571: 378(ptr) AccessChain 528(m) 248 432 - Store 571 570 - 572: 378(ptr) AccessChain 528(m) 251 377 - 573: 6(float) Load 572 - 574: 378(ptr) AccessChain 534(tt) 234 - 575: 6(float) Load 574 - 576: 6(float) FMul 573 575 - 577: 378(ptr) AccessChain 528(m) 248 377 - 578: 6(float) Load 577 - 579: 6(float) FAdd 578 576 - 580: 378(ptr) AccessChain 528(m) 248 377 - Store 580 579 - 581: 378(ptr) AccessChain 528(m) 251 234 - 582: 6(float) Load 581 - 583: 378(ptr) AccessChain 534(tt) 234 - 584: 6(float) Load 583 - 585: 6(float) FMul 582 584 - 586: 378(ptr) AccessChain 528(m) 248 234 - 587: 6(float) Load 586 - 588: 6(float) FAdd 587 585 - 589: 378(ptr) AccessChain 528(m) 248 234 - Store 589 588 - 590: 378(ptr) AccessChain 528(m) 251 387 - 591: 6(float) Load 590 - 592: 378(ptr) AccessChain 534(tt) 234 - 593: 6(float) Load 592 - 594: 6(float) FMul 591 593 - 595: 378(ptr) AccessChain 528(m) 248 387 - 596: 6(float) Load 595 - 597: 6(float) FAdd 596 594 - 598: 378(ptr) AccessChain 528(m) 248 387 - Store 598 597 - 599: 378(ptr) AccessChain 528(m) 251 432 - 600: 6(float) Load 599 - 601: 378(ptr) AccessChain 534(tt) 234 - 602: 6(float) Load 601 - 603: 6(float) FMul 600 602 - 604: 378(ptr) AccessChain 528(m) 248 432 - 605: 6(float) Load 604 - 606: 6(float) FAdd 605 603 - 607: 378(ptr) AccessChain 528(m) 248 432 - Store 607 606 - 608: 378(ptr) AccessChain 528(m) 217 377 - 609: 6(float) Load 608 - 610: 378(ptr) AccessChain 534(tt) 387 - 611: 6(float) Load 610 - 612: 6(float) FMul 609 611 - 613: 378(ptr) AccessChain 528(m) 248 377 - 614: 6(float) Load 613 - 615: 6(float) FAdd 614 612 - 616: 378(ptr) AccessChain 528(m) 248 377 - Store 616 615 - 617: 378(ptr) AccessChain 528(m) 217 234 - 618: 6(float) Load 617 - 619: 378(ptr) AccessChain 534(tt) 387 - 620: 6(float) Load 619 - 621: 6(float) FMul 618 620 - 622: 378(ptr) AccessChain 528(m) 248 234 - 623: 6(float) Load 622 - 624: 6(float) FAdd 623 621 - 625: 378(ptr) AccessChain 528(m) 248 234 - Store 625 624 - 626: 378(ptr) AccessChain 528(m) 217 387 - 627: 6(float) Load 626 - 628: 378(ptr) AccessChain 534(tt) 387 - 629: 6(float) Load 628 - 630: 6(float) FMul 627 629 - 631: 378(ptr) AccessChain 528(m) 248 387 - 632: 6(float) Load 631 - 633: 6(float) FAdd 632 630 - 634: 378(ptr) AccessChain 528(m) 248 387 - Store 634 633 - 635: 378(ptr) AccessChain 528(m) 217 432 - 636: 6(float) Load 635 - 637: 378(ptr) AccessChain 534(tt) 387 - 638: 6(float) Load 637 - 639: 6(float) FMul 636 638 - 640: 378(ptr) AccessChain 528(m) 248 432 - 641: 6(float) Load 640 - 642: 6(float) FAdd 641 639 - 643: 378(ptr) AccessChain 528(m) 248 432 - Store 643 642 - 644: 100 Load 528(m) - ReturnValue 644 - FunctionEnd -106(TDInstanceMat3(i1;): 83 Function None 84 - 105(id): 12(ptr) FunctionParameter - 107: Label - 647(m): 471(ptr) Variable Function - Store 647(m) 476 - 648: 83 Load 647(m) - ReturnValue 648 - FunctionEnd -109(TDInstanceMat3ForNorm(i1;): 83 Function None 84 - 108(id): 12(ptr) FunctionParameter - 110: Label - 651(m): 471(ptr) Variable Function - 652(param): 12(ptr) Variable Function - 653: 11(int) Load 108(id) - Store 652(param) 653 - 654: 83 FunctionCall 106(TDInstanceMat3(i1;) 652(param) - Store 651(m) 654 - 655: 83 Load 651(m) - ReturnValue 655 - FunctionEnd -114(TDInstanceColor(i1;vf4;): 7(fvec4) Function None 111 - 112(index): 12(ptr) FunctionParameter - 113(curColor): 8(ptr) FunctionParameter - 115: Label - 662(coord): 12(ptr) Variable Function - 664(samp): 8(ptr) Variable Function - 670(v): 8(ptr) Variable Function - 658: 302(ptr) AccessChain 301 208 - 659: 11(int) Load 658 - 660: 11(int) Load 112(index) - 661: 11(int) ISub 660 659 - Store 112(index) 661 - 663: 11(int) Load 112(index) - Store 662(coord) 663 - 666: 369 Load 665(sTDInstanceColor) - 667: 11(int) Load 662(coord) - 668: 368 Image 666 - 669: 7(fvec4) ImageFetch 668 667 - Store 664(samp) 669 - 671: 378(ptr) AccessChain 664(samp) 377 - 672: 6(float) Load 671 - 673: 378(ptr) AccessChain 670(v) 377 - Store 673 672 - 674: 378(ptr) AccessChain 664(samp) 234 - 675: 6(float) Load 674 - 676: 378(ptr) AccessChain 670(v) 234 - Store 676 675 - 677: 378(ptr) AccessChain 664(samp) 387 - 678: 6(float) Load 677 - 679: 378(ptr) AccessChain 670(v) 387 - Store 679 678 - 680: 378(ptr) AccessChain 670(v) 432 - Store 680 335 - 681: 378(ptr) AccessChain 670(v) 377 - 682: 6(float) Load 681 - 683: 378(ptr) AccessChain 113(curColor) 377 - Store 683 682 - 684: 378(ptr) AccessChain 670(v) 234 - 685: 6(float) Load 684 - 686: 378(ptr) AccessChain 113(curColor) 234 - Store 686 685 - 687: 378(ptr) AccessChain 670(v) 387 - 688: 6(float) Load 687 - 689: 378(ptr) AccessChain 113(curColor) 387 - Store 689 688 - 690: 7(fvec4) Load 113(curColor) - ReturnValue 690 - FunctionEnd -118(TDInstanceDeform(i1;vf4;): 7(fvec4) Function None 111 - 116(id): 12(ptr) FunctionParameter - 117(pos): 8(ptr) FunctionParameter - 119: Label - 693(param): 12(ptr) Variable Function - 694: 11(int) Load 116(id) - Store 693(param) 694 - 695: 100 FunctionCall 103(TDInstanceMat(i1;) 693(param) - 696: 7(fvec4) Load 117(pos) - 697: 7(fvec4) MatrixTimesVector 695 696 - Store 117(pos) 697 - 698: 11(int) FunctionCall 31(TDCameraIndex() - 699: 275(ptr) AccessChain 273 208 698 208 - 700: 100 Load 699 - 701: 7(fvec4) Load 117(pos) - 702: 7(fvec4) MatrixTimesVector 700 701 - ReturnValue 702 - FunctionEnd -122(TDInstanceDeformVec(i1;vf3;): 9(fvec3) Function None 65 - 120(id): 12(ptr) FunctionParameter - 121(vec): 10(ptr) FunctionParameter - 123: Label - 705(m): 471(ptr) Variable Function - 706(param): 12(ptr) Variable Function - 707: 11(int) Load 120(id) - Store 706(param) 707 - 708: 83 FunctionCall 106(TDInstanceMat3(i1;) 706(param) - Store 705(m) 708 - 709: 11(int) FunctionCall 31(TDCameraIndex() - 710: 275(ptr) AccessChain 273 208 709 208 - 711: 100 Load 710 - 712: 7(fvec4) CompositeExtract 711 0 - 713: 9(fvec3) VectorShuffle 712 712 0 1 2 - 714: 7(fvec4) CompositeExtract 711 1 - 715: 9(fvec3) VectorShuffle 714 714 0 1 2 - 716: 7(fvec4) CompositeExtract 711 2 - 717: 9(fvec3) VectorShuffle 716 716 0 1 2 - 718: 83 CompositeConstruct 713 715 717 - 719: 83 Load 705(m) - 720: 9(fvec3) Load 121(vec) - 721: 9(fvec3) MatrixTimesVector 719 720 - 722: 9(fvec3) MatrixTimesVector 718 721 - ReturnValue 722 - FunctionEnd -126(TDInstanceDeformNorm(i1;vf3;): 9(fvec3) Function None 65 - 124(id): 12(ptr) FunctionParameter - 125(vec): 10(ptr) FunctionParameter - 127: Label - 725(m): 471(ptr) Variable Function - 726(param): 12(ptr) Variable Function - 727: 11(int) Load 124(id) - Store 726(param) 727 - 728: 83 FunctionCall 109(TDInstanceMat3ForNorm(i1;) 726(param) - Store 725(m) 728 - 729: 11(int) FunctionCall 31(TDCameraIndex() - 732: 731(ptr) AccessChain 273 208 729 730 - 733: 83 Load 732 - 734: 9(fvec3) CompositeExtract 733 0 - 735: 9(fvec3) CompositeExtract 733 1 - 736: 9(fvec3) CompositeExtract 733 2 - 737: 83 CompositeConstruct 734 735 736 - 738: 83 Load 725(m) - 739: 9(fvec3) Load 125(vec) - 740: 9(fvec3) MatrixTimesVector 738 739 - 741: 9(fvec3) MatrixTimesVector 737 740 - ReturnValue 741 - FunctionEnd -129(TDInstanceDeform(vf4;): 7(fvec4) Function None 54 - 128(pos): 8(ptr) FunctionParameter - 130: Label - 745(param): 12(ptr) Variable Function - 746(param): 8(ptr) Variable Function - 744: 11(int) FunctionCall 29(TDInstanceID() - Store 745(param) 744 - 747: 7(fvec4) Load 128(pos) - Store 746(param) 747 - 748: 7(fvec4) FunctionCall 118(TDInstanceDeform(i1;vf4;) 745(param) 746(param) - ReturnValue 748 - FunctionEnd -133(TDInstanceDeformVec(vf3;): 9(fvec3) Function None 131 - 132(vec): 10(ptr) FunctionParameter - 134: Label - 752(param): 12(ptr) Variable Function - 753(param): 10(ptr) Variable Function - 751: 11(int) FunctionCall 29(TDInstanceID() - Store 752(param) 751 - 754: 9(fvec3) Load 132(vec) - Store 753(param) 754 - 755: 9(fvec3) FunctionCall 122(TDInstanceDeformVec(i1;vf3;) 752(param) 753(param) - ReturnValue 755 - FunctionEnd -136(TDInstanceDeformNorm(vf3;): 9(fvec3) Function None 131 - 135(vec): 10(ptr) FunctionParameter - 137: Label - 759(param): 12(ptr) Variable Function - 760(param): 10(ptr) Variable Function - 758: 11(int) FunctionCall 29(TDInstanceID() - Store 759(param) 758 - 761: 9(fvec3) Load 135(vec) - Store 760(param) 761 - 762: 9(fvec3) FunctionCall 126(TDInstanceDeformNorm(i1;vf3;) 759(param) 760(param) - ReturnValue 762 - FunctionEnd -139(TDInstanceActive(): 13(bool) Function None 138 - 140: Label - 766(param): 12(ptr) Variable Function - 765: 11(int) FunctionCall 29(TDInstanceID() - Store 766(param) 765 - 767: 13(bool) FunctionCall 72(TDInstanceActive(i1;) 766(param) - ReturnValue 767 - FunctionEnd -141(TDInstanceTranslate(): 9(fvec3) Function None 33 - 142: Label - 771(param): 12(ptr) Variable Function - 770: 11(int) FunctionCall 29(TDInstanceID() - Store 771(param) 770 - 772: 9(fvec3) FunctionCall 81(TDInstanceTranslate(i1;) 771(param) - ReturnValue 772 - FunctionEnd -144(TDInstanceRotateMat(): 83 Function None 143 - 145: Label - 776(param): 12(ptr) Variable Function - 775: 11(int) FunctionCall 29(TDInstanceID() - Store 776(param) 775 - 777: 83 FunctionCall 86(TDInstanceRotateMat(i1;) 776(param) - ReturnValue 777 - FunctionEnd -146(TDInstanceScale(): 9(fvec3) Function None 33 - 147: Label - 781(param): 12(ptr) Variable Function - 780: 11(int) FunctionCall 29(TDInstanceID() - Store 781(param) 780 - 782: 9(fvec3) FunctionCall 89(TDInstanceScale(i1;) 781(param) - ReturnValue 782 - FunctionEnd -149(TDInstanceMat(): 100 Function None 148 - 150: Label - 786(param): 12(ptr) Variable Function - 785: 11(int) FunctionCall 29(TDInstanceID() - Store 786(param) 785 - 787: 100 FunctionCall 103(TDInstanceMat(i1;) 786(param) - ReturnValue 787 - FunctionEnd -151(TDInstanceMat3(): 83 Function None 143 - 152: Label - 791(param): 12(ptr) Variable Function - 790: 11(int) FunctionCall 29(TDInstanceID() - Store 791(param) 790 - 792: 83 FunctionCall 106(TDInstanceMat3(i1;) 791(param) - ReturnValue 792 - FunctionEnd -154(TDInstanceTexCoord(vf3;): 9(fvec3) Function None 131 - 153(t): 10(ptr) FunctionParameter - 155: Label - 796(param): 12(ptr) Variable Function - 797(param): 10(ptr) Variable Function - 795: 11(int) FunctionCall 29(TDInstanceID() - Store 796(param) 795 - 798: 9(fvec3) Load 153(t) - Store 797(param) 798 - 799: 9(fvec3) FunctionCall 68(TDInstanceTexCoord(i1;vf3;) 796(param) 797(param) - ReturnValue 799 - FunctionEnd -157(TDInstanceColor(vf4;): 7(fvec4) Function None 54 - 156(curColor): 8(ptr) FunctionParameter - 158: Label - 803(param): 12(ptr) Variable Function - 804(param): 8(ptr) Variable Function - 802: 11(int) FunctionCall 29(TDInstanceID() - Store 803(param) 802 - 805: 7(fvec4) Load 156(curColor) - Store 804(param) 805 - 806: 7(fvec4) FunctionCall 114(TDInstanceColor(i1;vf4;) 803(param) 804(param) - ReturnValue 806 - FunctionEnd -160(TDSkinnedDeform(vf4;): 7(fvec4) Function None 54 - 159(pos): 8(ptr) FunctionParameter - 161: Label - 809: 7(fvec4) Load 159(pos) - ReturnValue 809 - FunctionEnd -163(TDSkinnedDeformVec(vf3;): 9(fvec3) Function None 131 - 162(vec): 10(ptr) FunctionParameter - 164: Label - 812: 9(fvec3) Load 162(vec) - ReturnValue 812 - FunctionEnd -169(TDFastDeformTangent(vf3;vf4;vf3;): 9(fvec3) Function None 165 - 166(oldNorm): 10(ptr) FunctionParameter - 167(oldTangent): 8(ptr) FunctionParameter -168(deformedNorm): 10(ptr) FunctionParameter - 170: Label - 815: 7(fvec4) Load 167(oldTangent) - 816: 9(fvec3) VectorShuffle 815 815 0 1 2 - ReturnValue 816 - FunctionEnd -172(TDBoneMat(i1;): 100 Function None 101 - 171(index): 12(ptr) FunctionParameter - 173: Label - ReturnValue 533 - FunctionEnd -175(TDDeform(vf4;): 7(fvec4) Function None 54 - 174(pos): 8(ptr) FunctionParameter - 176: Label - 821(param): 8(ptr) Variable Function - 824(param): 8(ptr) Variable Function - 822: 7(fvec4) Load 174(pos) - Store 821(param) 822 - 823: 7(fvec4) FunctionCall 160(TDSkinnedDeform(vf4;) 821(param) - Store 174(pos) 823 - 825: 7(fvec4) Load 174(pos) - Store 824(param) 825 - 826: 7(fvec4) FunctionCall 129(TDInstanceDeform(vf4;) 824(param) - Store 174(pos) 826 - 827: 7(fvec4) Load 174(pos) - ReturnValue 827 - FunctionEnd -180(TDDeform(i1;vf3;): 7(fvec4) Function None 177 - 178(instanceID): 12(ptr) FunctionParameter - 179(p): 10(ptr) FunctionParameter - 181: Label - 830(pos): 8(ptr) Variable Function - 836(param): 8(ptr) Variable Function - 839(param): 12(ptr) Variable Function - 841(param): 8(ptr) Variable Function - 831: 9(fvec3) Load 179(p) - 832: 6(float) CompositeExtract 831 0 - 833: 6(float) CompositeExtract 831 1 - 834: 6(float) CompositeExtract 831 2 - 835: 7(fvec4) CompositeConstruct 832 833 834 335 - Store 830(pos) 835 - 837: 7(fvec4) Load 830(pos) - Store 836(param) 837 - 838: 7(fvec4) FunctionCall 160(TDSkinnedDeform(vf4;) 836(param) - Store 830(pos) 838 - 840: 11(int) Load 178(instanceID) - Store 839(param) 840 - 842: 7(fvec4) Load 830(pos) - Store 841(param) 842 - 843: 7(fvec4) FunctionCall 118(TDInstanceDeform(i1;vf4;) 839(param) 841(param) - Store 830(pos) 843 - 844: 7(fvec4) Load 830(pos) - ReturnValue 844 - FunctionEnd -183(TDDeform(vf3;): 7(fvec4) Function None 58 - 182(pos): 10(ptr) FunctionParameter - 184: Label - 848(param): 12(ptr) Variable Function - 849(param): 10(ptr) Variable Function - 847: 11(int) FunctionCall 29(TDInstanceID() - Store 848(param) 847 - 850: 9(fvec3) Load 182(pos) - Store 849(param) 850 - 851: 7(fvec4) FunctionCall 180(TDDeform(i1;vf3;) 848(param) 849(param) - ReturnValue 851 - FunctionEnd -187(TDDeformVec(i1;vf3;): 9(fvec3) Function None 65 - 185(instanceID): 12(ptr) FunctionParameter - 186(vec): 10(ptr) FunctionParameter - 188: Label - 854(param): 10(ptr) Variable Function - 857(param): 12(ptr) Variable Function - 859(param): 10(ptr) Variable Function - 855: 9(fvec3) Load 186(vec) - Store 854(param) 855 - 856: 9(fvec3) FunctionCall 163(TDSkinnedDeformVec(vf3;) 854(param) - Store 186(vec) 856 - 858: 11(int) Load 185(instanceID) - Store 857(param) 858 - 860: 9(fvec3) Load 186(vec) - Store 859(param) 860 - 861: 9(fvec3) FunctionCall 122(TDInstanceDeformVec(i1;vf3;) 857(param) 859(param) - Store 186(vec) 861 - 862: 9(fvec3) Load 186(vec) - ReturnValue 862 - FunctionEnd -190(TDDeformVec(vf3;): 9(fvec3) Function None 131 - 189(vec): 10(ptr) FunctionParameter - 191: Label - 866(param): 12(ptr) Variable Function - 867(param): 10(ptr) Variable Function - 865: 11(int) FunctionCall 29(TDInstanceID() - Store 866(param) 865 - 868: 9(fvec3) Load 189(vec) - Store 867(param) 868 - 869: 9(fvec3) FunctionCall 187(TDDeformVec(i1;vf3;) 866(param) 867(param) - ReturnValue 869 - FunctionEnd -194(TDDeformNorm(i1;vf3;): 9(fvec3) Function None 65 - 192(instanceID): 12(ptr) FunctionParameter - 193(vec): 10(ptr) FunctionParameter - 195: Label - 872(param): 10(ptr) Variable Function - 875(param): 12(ptr) Variable Function - 877(param): 10(ptr) Variable Function - 873: 9(fvec3) Load 193(vec) - Store 872(param) 873 - 874: 9(fvec3) FunctionCall 163(TDSkinnedDeformVec(vf3;) 872(param) - Store 193(vec) 874 - 876: 11(int) Load 192(instanceID) - Store 875(param) 876 - 878: 9(fvec3) Load 193(vec) - Store 877(param) 878 - 879: 9(fvec3) FunctionCall 126(TDInstanceDeformNorm(i1;vf3;) 875(param) 877(param) - Store 193(vec) 879 - 880: 9(fvec3) Load 193(vec) - ReturnValue 880 - FunctionEnd -197(TDDeformNorm(vf3;): 9(fvec3) Function None 131 - 196(vec): 10(ptr) FunctionParameter - 198: Label - 884(param): 12(ptr) Variable Function - 885(param): 10(ptr) Variable Function - 883: 11(int) FunctionCall 29(TDInstanceID() - Store 884(param) 883 - 886: 9(fvec3) Load 196(vec) - Store 885(param) 886 - 887: 9(fvec3) FunctionCall 194(TDDeformNorm(i1;vf3;) 884(param) 885(param) - ReturnValue 887 - FunctionEnd -200(TDSkinnedDeformNorm(vf3;): 9(fvec3) Function None 131 - 199(vec): 10(ptr) FunctionParameter - 201: Label - 890(param): 10(ptr) Variable Function - 891: 9(fvec3) Load 199(vec) - Store 890(param) 891 - 892: 9(fvec3) FunctionCall 163(TDSkinnedDeformVec(vf3;) 890(param) - Store 199(vec) 892 - 893: 9(fvec3) Load 199(vec) - ReturnValue 893 - FunctionEnd -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 1297 - - Capability Shader - Capability Sampled1D - Capability SampledBuffer - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 336 429 458 485 - ExecutionMode 4 OriginUpperLeft - Source GLSL 460 - Name 4 "main" - Name 11 "TDColor(vf4;" - Name 10 "color" - Name 13 "TDCheckOrderIndTrans(" - Name 15 "TDCheckDiscard(" - Name 18 "TDDither(vf4;" - Name 17 "color" - Name 26 "TDFrontFacing(vf3;vf3;" - Name 24 "pos" - Name 25 "normal" - Name 34 "TDAttenuateLight(i1;f1;" - Name 32 "index" - Name 33 "lightDist" - Name 38 "TDAlphaTest(f1;" - Name 37 "alpha" - Name 43 "TDHardShadow(i1;vf3;" - Name 41 "lightIndex" - Name 42 "worldSpacePos" - Name 50 "TDSoftShadow(i1;vf3;i1;i1;" - Name 46 "lightIndex" - Name 47 "worldSpacePos" - Name 48 "samples" - Name 49 "steps" - Name 54 "TDSoftShadow(i1;vf3;" - Name 52 "lightIndex" - Name 53 "worldSpacePos" - Name 58 "TDShadow(i1;vf3;" - Name 56 "lightIndex" - Name 57 "worldSpacePos" - Name 64 "iTDRadicalInverse_VdC(u1;" - Name 63 "bits" - Name 70 "iTDHammersley(u1;u1;" - Name 68 "i" - Name 69 "N" - Name 77 "iTDImportanceSampleGGX(vf2;f1;vf3;" - Name 74 "Xi" - Name 75 "roughness2" - Name 76 "N" - Name 83 "iTDDistributionGGX(vf3;vf3;f1;" - Name 80 "normal" - Name 81 "half_vector" - Name 82 "roughness2" - Name 88 "iTDCalcF(vf3;f1;" - Name 86 "F0" - Name 87 "VdotH" - Name 94 "iTDCalcG(f1;f1;f1;" - Name 91 "NdotL" - Name 92 "NdotV" - Name 93 "k" - Name 96 "TDPBRResult" - MemberName 96(TDPBRResult) 0 "diffuse" - MemberName 96(TDPBRResult) 1 "specular" - MemberName 96(TDPBRResult) 2 "shadowStrength" - Name 107 "TDLightingPBR(i1;vf3;vf3;vf3;vf3;f1;vf3;vf3;f1;" - Name 98 "index" - Name 99 "diffuseColor" - Name 100 "specularColor" - Name 101 "worldSpacePos" - Name 102 "normal" - Name 103 "shadowStrength" - Name 104 "shadowColor" - Name 105 "camVector" - Name 106 "roughness" - Name 122 "TDLightingPBR(vf3;vf3;f1;i1;vf3;vf3;vf3;vf3;f1;vf3;vf3;f1;" - Name 110 "diffuseContrib" - Name 111 "specularContrib" - Name 112 "shadowStrengthOut" - Name 113 "index" - Name 114 "diffuseColor" - Name 115 "specularColor" - Name 116 "worldSpacePos" - Name 117 "normal" - Name 118 "shadowStrength" - Name 119 "shadowColor" - Name 120 "camVector" - Name 121 "roughness" - Name 136 "TDLightingPBR(vf3;vf3;i1;vf3;vf3;vf3;vf3;f1;vf3;vf3;f1;" - Name 125 "diffuseContrib" - Name 126 "specularContrib" - Name 127 "index" - Name 128 "diffuseColor" - Name 129 "specularColor" - Name 130 "worldSpacePos" - Name 131 "normal" - Name 132 "shadowStrength" - Name 133 "shadowColor" - Name 134 "camVector" - Name 135 "roughness" - Name 146 "TDEnvLightingPBR(i1;vf3;vf3;vf3;vf3;f1;f1;" - Name 139 "index" - Name 140 "diffuseColor" - Name 141 "specularColor" - Name 142 "normal" - Name 143 "camVector" - Name 144 "roughness" - Name 145 "ambientOcclusion" - Name 158 "TDEnvLightingPBR(vf3;vf3;i1;vf3;vf3;vf3;vf3;f1;f1;" - Name 149 "diffuseContrib" - Name 150 "specularContrib" - Name 151 "index" - Name 152 "diffuseColor" - Name 153 "specularColor" - Name 154 "normal" - Name 155 "camVector" - Name 156 "roughness" - Name 157 "ambientOcclusion" - Name 160 "TDPhongResult" - MemberName 160(TDPhongResult) 0 "diffuse" - MemberName 160(TDPhongResult) 1 "specular" - MemberName 160(TDPhongResult) 2 "specular2" - MemberName 160(TDPhongResult) 3 "shadowStrength" - Name 170 "TDLighting(i1;vf3;vf3;f1;vf3;vf3;f1;f1;" - Name 162 "index" - Name 163 "worldSpacePos" - Name 164 "normal" - Name 165 "shadowStrength" - Name 166 "shadowColor" - Name 167 "camVector" - Name 168 "shininess" - Name 169 "shininess2" - Name 185 "TDLighting(vf3;vf3;vf3;f1;i1;vf3;vf3;f1;vf3;vf3;f1;f1;" - Name 173 "diffuseContrib" - Name 174 "specularContrib" - Name 175 "specularContrib2" - Name 176 "shadowStrengthOut" - Name 177 "index" - Name 178 "worldSpacePos" - Name 179 "normal" - Name 180 "shadowStrength" - Name 181 "shadowColor" - Name 182 "camVector" - Name 183 "shininess" - Name 184 "shininess2" - Name 199 "TDLighting(vf3;vf3;vf3;i1;vf3;vf3;f1;vf3;vf3;f1;f1;" - Name 188 "diffuseContrib" - Name 189 "specularContrib" - Name 190 "specularContrib2" - Name 191 "index" - Name 192 "worldSpacePos" - Name 193 "normal" - Name 194 "shadowStrength" - Name 195 "shadowColor" - Name 196 "camVector" - Name 197 "shininess" - Name 198 "shininess2" - Name 211 "TDLighting(vf3;vf3;i1;vf3;vf3;f1;vf3;vf3;f1;" - Name 202 "diffuseContrib" - Name 203 "specularContrib" - Name 204 "index" - Name 205 "worldSpacePos" - Name 206 "normal" - Name 207 "shadowStrength" - Name 208 "shadowColor" - Name 209 "camVector" - Name 210 "shininess" - Name 223 "TDLighting(vf3;vf3;vf3;i1;vf3;vf3;vf3;f1;f1;" - Name 214 "diffuseContrib" - Name 215 "specularContrib" - Name 216 "specularContrib2" - Name 217 "index" - Name 218 "worldSpacePos" - Name 219 "normal" - Name 220 "camVector" - Name 221 "shininess" - Name 222 "shininess2" - Name 233 "TDLighting(vf3;vf3;i1;vf3;vf3;vf3;f1;" - Name 226 "diffuseContrib" - Name 227 "specularContrib" - Name 228 "index" - Name 229 "worldSpacePos" - Name 230 "normal" - Name 231 "camVector" - Name 232 "shininess" - Name 240 "TDLighting(vf3;i1;vf3;vf3;" - Name 236 "diffuseContrib" - Name 237 "index" - Name 238 "worldSpacePos" - Name 239 "normal" - Name 249 "TDLighting(vf3;i1;vf3;vf3;f1;vf3;" - Name 243 "diffuseContrib" - Name 244 "index" - Name 245 "worldSpacePos" - Name 246 "normal" - Name 247 "shadowStrength" - Name 248 "shadowColor" - Name 255 "TDProjMap(i1;vf3;vf4;" - Name 252 "index" - Name 253 "worldSpacePos" - Name 254 "defaultColor" - Name 261 "TDFog(vf4;vf3;i1;" - Name 258 "color" - Name 259 "lightingSpacePosition" - Name 260 "cameraIndex" - Name 266 "TDFog(vf4;vf3;" - Name 264 "color" - Name 265 "lightingSpacePosition" - Name 271 "TDInstanceTexCoord(i1;vf3;" - Name 269 "index" - Name 270 "t" - Name 275 "TDInstanceActive(i1;" - Name 274 "index" - Name 281 "iTDInstanceTranslate(i1;b1;" - Name 279 "index" - Name 280 "instanceActive" - Name 285 "TDInstanceTranslate(i1;" - Name 284 "index" - Name 290 "TDInstanceRotateMat(i1;" - Name 289 "index" - Name 293 "TDInstanceScale(i1;" - Name 292 "index" - Name 296 "TDInstancePivot(i1;" - Name 295 "index" - Name 299 "TDInstanceRotTo(i1;" - Name 298 "index" - Name 302 "TDInstanceRotUp(i1;" - Name 301 "index" - Name 307 "TDInstanceMat(i1;" - Name 306 "id" - Name 310 "TDInstanceMat3(i1;" - Name 309 "id" - Name 313 "TDInstanceMat3ForNorm(i1;" - Name 312 "id" - Name 318 "TDInstanceColor(i1;vf4;" - Name 316 "index" - Name 317 "curColor" - Name 321 "TDOutputSwizzle(vf4;" - Name 320 "c" - Name 327 "TDOutputSwizzle(vu4;" - Name 326 "c" - Name 330 "outcol" - Name 333 "texCoord0" - Name 334 "Vertex" - MemberName 334(Vertex) 0 "color" - MemberName 334(Vertex) 1 "worldSpacePos" - MemberName 334(Vertex) 2 "texCoord0" - MemberName 334(Vertex) 3 "cameraIndex" - MemberName 334(Vertex) 4 "instance" - Name 336 "iVert" - Name 341 "actualTexZ" - Name 349 "instanceLoop" - Name 359 "colorMapColor" - Name 363 "sColorMap" - Name 367 "red" - Name 374 "gl_DefaultUniformBlock" - MemberName 374(gl_DefaultUniformBlock) 0 "uTDInstanceIDOffset" - MemberName 374(gl_DefaultUniformBlock) 1 "uTDNumInstances" - MemberName 374(gl_DefaultUniformBlock) 2 "uTDAlphaTestVal" - MemberName 374(gl_DefaultUniformBlock) 3 "uConstant" - MemberName 374(gl_DefaultUniformBlock) 4 "uShadowStrength" - MemberName 374(gl_DefaultUniformBlock) 5 "uShadowColor" - MemberName 374(gl_DefaultUniformBlock) 6 "uDiffuseColor" - MemberName 374(gl_DefaultUniformBlock) 7 "uAmbientColor" - Name 376 "" - Name 401 "alpha" - Name 409 "param" - Name 422 "param" - Name 429 "oFragColor" - Name 430 "param" - Name 435 "i" - Name 452 "d" - Name 456 "sTDNoiseMap" - Name 458 "gl_FragCoord" - Name 485 "gl_FrontFacing" - Name 555 "param" - Name 561 "a" - Name 563 "phi" - Name 568 "cosTheta" - Name 582 "sinTheta" - Name 588 "H" - Name 601 "upVector" - Name 612 "tangentX" - Name 617 "tangentY" - Name 621 "worldResult" - Name 639 "NdotH" - Name 645 "alpha2" - Name 649 "denom" - Name 686 "Gl" - Name 694 "Gv" - Name 708 "res" - Name 712 "res" - Name 713 "param" - Name 715 "param" - Name 717 "param" - Name 719 "param" - Name 721 "param" - Name 723 "param" - Name 725 "param" - Name 727 "param" - Name 729 "param" - Name 738 "res" - Name 739 "param" - Name 741 "param" - Name 743 "param" - Name 745 "param" - Name 747 "param" - Name 749 "param" - Name 751 "param" - Name 753 "param" - Name 755 "param" - Name 762 "res" - Name 766 "res" - Name 767 "param" - Name 769 "param" - Name 771 "param" - Name 773 "param" - Name 775 "param" - Name 777 "param" - Name 779 "param" - Name 790 "res" - Name 804 "res" - Name 822 "res" - Name 838 "res" - Name 852 "res" - Name 868 "res" - Name 882 "res" - Name 894 "res" - Name 917 "param" - Name 919 "param" - Name 921 "param" - Name 925 "coord" - Name 927 "samp" - Name 931 "sTDInstanceTexCoord" - Name 936 "v" - Name 955 "coord" - Name 957 "samp" - Name 958 "sTDInstanceT" - Name 963 "v" - Name 970 "origIndex" - Name 976 "coord" - Name 978 "samp" - Name 983 "v" - Name 1003 "coord" - Name 1005 "samp" - Name 1010 "v" - Name 1027 "v" - Name 1029 "m" - Name 1039 "v" - Name 1047 "v" - Name 1055 "v" - Name 1063 "v" - Name 1067 "instanceActive" - Name 1069 "t" - Name 1070 "param" - Name 1072 "param" - Name 1082 "m" - Name 1088 "tt" - Name 1201 "m" - Name 1205 "m" - Name 1206 "param" - Name 1216 "coord" - Name 1218 "samp" - Name 1219 "sTDInstanceColor" - Name 1224 "v" - Name 1253 "TDMatrix" - MemberName 1253(TDMatrix) 0 "world" - MemberName 1253(TDMatrix) 1 "worldInverse" - MemberName 1253(TDMatrix) 2 "worldCam" - MemberName 1253(TDMatrix) 3 "worldCamInverse" - MemberName 1253(TDMatrix) 4 "cam" - MemberName 1253(TDMatrix) 5 "camInverse" - MemberName 1253(TDMatrix) 6 "camProj" - MemberName 1253(TDMatrix) 7 "camProjInverse" - MemberName 1253(TDMatrix) 8 "proj" - MemberName 1253(TDMatrix) 9 "projInverse" - MemberName 1253(TDMatrix) 10 "worldCamProj" - MemberName 1253(TDMatrix) 11 "worldCamProjInverse" - MemberName 1253(TDMatrix) 12 "quadReproject" - MemberName 1253(TDMatrix) 13 "worldForNormals" - MemberName 1253(TDMatrix) 14 "camForNormals" - MemberName 1253(TDMatrix) 15 "worldCamForNormals" - Name 1255 "TDMatricesBlock" - MemberName 1255(TDMatricesBlock) 0 "uTDMats" - Name 1257 "" - Name 1258 "TDCameraInfo" - MemberName 1258(TDCameraInfo) 0 "nearFar" - MemberName 1258(TDCameraInfo) 1 "fog" - MemberName 1258(TDCameraInfo) 2 "fogColor" - MemberName 1258(TDCameraInfo) 3 "renderTOPCameraIndex" - Name 1260 "TDCameraInfoBlock" - MemberName 1260(TDCameraInfoBlock) 0 "uTDCamInfos" - Name 1262 "" - Name 1263 "TDGeneral" - MemberName 1263(TDGeneral) 0 "ambientColor" - MemberName 1263(TDGeneral) 1 "nearFar" - MemberName 1263(TDGeneral) 2 "viewport" - MemberName 1263(TDGeneral) 3 "viewportRes" - MemberName 1263(TDGeneral) 4 "fog" - MemberName 1263(TDGeneral) 5 "fogColor" - Name 1264 "TDGeneralBlock" - MemberName 1264(TDGeneralBlock) 0 "uTDGeneral" - Name 1266 "" - Name 1270 "sTDSineLookup" - Name 1271 "sTDWhite2D" - Name 1275 "sTDWhite3D" - Name 1276 "sTDWhite2DArray" - Name 1280 "sTDWhiteCube" - Name 1281 "TDLight" - MemberName 1281(TDLight) 0 "position" - MemberName 1281(TDLight) 1 "direction" - MemberName 1281(TDLight) 2 "diffuse" - MemberName 1281(TDLight) 3 "nearFar" - MemberName 1281(TDLight) 4 "lightSize" - MemberName 1281(TDLight) 5 "misc" - MemberName 1281(TDLight) 6 "coneLookupScaleBias" - MemberName 1281(TDLight) 7 "attenScaleBiasRoll" - MemberName 1281(TDLight) 8 "shadowMapMatrix" - MemberName 1281(TDLight) 9 "shadowMapCamMatrix" - MemberName 1281(TDLight) 10 "shadowMapRes" - MemberName 1281(TDLight) 11 "projMapMatrix" - Name 1283 "TDLightBlock" - MemberName 1283(TDLightBlock) 0 "uTDLights" - Name 1285 "" - Name 1286 "TDEnvLight" - MemberName 1286(TDEnvLight) 0 "color" - MemberName 1286(TDEnvLight) 1 "rotate" - Name 1288 "TDEnvLightBlock" - MemberName 1288(TDEnvLightBlock) 0 "uTDEnvLights" - Name 1290 "" - Name 1293 "TDEnvLightBuffer" - MemberName 1293(TDEnvLightBuffer) 0 "shCoeffs" - Name 1296 "uTDEnvLightBuffers" - MemberDecorate 334(Vertex) 3 Flat - MemberDecorate 334(Vertex) 4 Flat - Decorate 334(Vertex) Block - Decorate 336(iVert) Location 0 - Decorate 363(sColorMap) DescriptorSet 0 - Decorate 363(sColorMap) Binding 2 - MemberDecorate 374(gl_DefaultUniformBlock) 0 Offset 0 - MemberDecorate 374(gl_DefaultUniformBlock) 1 Offset 4 - MemberDecorate 374(gl_DefaultUniformBlock) 2 Offset 8 - MemberDecorate 374(gl_DefaultUniformBlock) 3 Offset 16 - MemberDecorate 374(gl_DefaultUniformBlock) 4 Offset 28 - MemberDecorate 374(gl_DefaultUniformBlock) 5 Offset 32 - MemberDecorate 374(gl_DefaultUniformBlock) 6 Offset 48 - MemberDecorate 374(gl_DefaultUniformBlock) 7 Offset 64 - Decorate 374(gl_DefaultUniformBlock) Block - Decorate 376 DescriptorSet 0 - Decorate 376 Binding 0 - Decorate 429(oFragColor) Location 0 - Decorate 456(sTDNoiseMap) DescriptorSet 0 - Decorate 456(sTDNoiseMap) Binding 3 - Decorate 458(gl_FragCoord) BuiltIn FragCoord - Decorate 485(gl_FrontFacing) BuiltIn FrontFacing - Decorate 931(sTDInstanceTexCoord) DescriptorSet 0 - Decorate 931(sTDInstanceTexCoord) Binding 16 - Decorate 958(sTDInstanceT) DescriptorSet 0 - Decorate 958(sTDInstanceT) Binding 15 - Decorate 1219(sTDInstanceColor) DescriptorSet 0 - Decorate 1219(sTDInstanceColor) Binding 17 - MemberDecorate 1253(TDMatrix) 0 ColMajor - MemberDecorate 1253(TDMatrix) 0 Offset 0 - MemberDecorate 1253(TDMatrix) 0 MatrixStride 16 - MemberDecorate 1253(TDMatrix) 1 ColMajor - MemberDecorate 1253(TDMatrix) 1 Offset 64 - MemberDecorate 1253(TDMatrix) 1 MatrixStride 16 - MemberDecorate 1253(TDMatrix) 2 ColMajor - MemberDecorate 1253(TDMatrix) 2 Offset 128 - MemberDecorate 1253(TDMatrix) 2 MatrixStride 16 - MemberDecorate 1253(TDMatrix) 3 ColMajor - MemberDecorate 1253(TDMatrix) 3 Offset 192 - MemberDecorate 1253(TDMatrix) 3 MatrixStride 16 - MemberDecorate 1253(TDMatrix) 4 ColMajor - MemberDecorate 1253(TDMatrix) 4 Offset 256 - MemberDecorate 1253(TDMatrix) 4 MatrixStride 16 - MemberDecorate 1253(TDMatrix) 5 ColMajor - MemberDecorate 1253(TDMatrix) 5 Offset 320 - MemberDecorate 1253(TDMatrix) 5 MatrixStride 16 - MemberDecorate 1253(TDMatrix) 6 ColMajor - MemberDecorate 1253(TDMatrix) 6 Offset 384 - MemberDecorate 1253(TDMatrix) 6 MatrixStride 16 - MemberDecorate 1253(TDMatrix) 7 ColMajor - MemberDecorate 1253(TDMatrix) 7 Offset 448 - MemberDecorate 1253(TDMatrix) 7 MatrixStride 16 - MemberDecorate 1253(TDMatrix) 8 ColMajor - MemberDecorate 1253(TDMatrix) 8 Offset 512 - MemberDecorate 1253(TDMatrix) 8 MatrixStride 16 - MemberDecorate 1253(TDMatrix) 9 ColMajor - MemberDecorate 1253(TDMatrix) 9 Offset 576 - MemberDecorate 1253(TDMatrix) 9 MatrixStride 16 - MemberDecorate 1253(TDMatrix) 10 ColMajor - MemberDecorate 1253(TDMatrix) 10 Offset 640 - MemberDecorate 1253(TDMatrix) 10 MatrixStride 16 - MemberDecorate 1253(TDMatrix) 11 ColMajor - MemberDecorate 1253(TDMatrix) 11 Offset 704 - MemberDecorate 1253(TDMatrix) 11 MatrixStride 16 - MemberDecorate 1253(TDMatrix) 12 ColMajor - MemberDecorate 1253(TDMatrix) 12 Offset 768 - MemberDecorate 1253(TDMatrix) 12 MatrixStride 16 - MemberDecorate 1253(TDMatrix) 13 ColMajor - MemberDecorate 1253(TDMatrix) 13 Offset 832 - MemberDecorate 1253(TDMatrix) 13 MatrixStride 16 - MemberDecorate 1253(TDMatrix) 14 ColMajor - MemberDecorate 1253(TDMatrix) 14 Offset 880 - MemberDecorate 1253(TDMatrix) 14 MatrixStride 16 - MemberDecorate 1253(TDMatrix) 15 ColMajor - MemberDecorate 1253(TDMatrix) 15 Offset 928 - MemberDecorate 1253(TDMatrix) 15 MatrixStride 16 - Decorate 1254 ArrayStride 976 - MemberDecorate 1255(TDMatricesBlock) 0 Offset 0 - Decorate 1255(TDMatricesBlock) Block - Decorate 1257 DescriptorSet 0 - Decorate 1257 Binding 1 - MemberDecorate 1258(TDCameraInfo) 0 Offset 0 - MemberDecorate 1258(TDCameraInfo) 1 Offset 16 - MemberDecorate 1258(TDCameraInfo) 2 Offset 32 - MemberDecorate 1258(TDCameraInfo) 3 Offset 48 - Decorate 1259 ArrayStride 64 - MemberDecorate 1260(TDCameraInfoBlock) 0 Offset 0 - Decorate 1260(TDCameraInfoBlock) Block - Decorate 1262 DescriptorSet 0 - Decorate 1262 Binding 0 - MemberDecorate 1263(TDGeneral) 0 Offset 0 - MemberDecorate 1263(TDGeneral) 1 Offset 16 - MemberDecorate 1263(TDGeneral) 2 Offset 32 - MemberDecorate 1263(TDGeneral) 3 Offset 48 - MemberDecorate 1263(TDGeneral) 4 Offset 64 - MemberDecorate 1263(TDGeneral) 5 Offset 80 - MemberDecorate 1264(TDGeneralBlock) 0 Offset 0 - Decorate 1264(TDGeneralBlock) Block - Decorate 1266 DescriptorSet 0 - Decorate 1266 Binding 0 - Decorate 1270(sTDSineLookup) DescriptorSet 0 - Decorate 1270(sTDSineLookup) Binding 0 - Decorate 1271(sTDWhite2D) DescriptorSet 0 - Decorate 1271(sTDWhite2D) Binding 0 - Decorate 1275(sTDWhite3D) DescriptorSet 0 - Decorate 1275(sTDWhite3D) Binding 0 - Decorate 1276(sTDWhite2DArray) DescriptorSet 0 - Decorate 1276(sTDWhite2DArray) Binding 0 - Decorate 1280(sTDWhiteCube) DescriptorSet 0 - Decorate 1280(sTDWhiteCube) Binding 0 - MemberDecorate 1281(TDLight) 0 Offset 0 - MemberDecorate 1281(TDLight) 1 Offset 16 - MemberDecorate 1281(TDLight) 2 Offset 32 - MemberDecorate 1281(TDLight) 3 Offset 48 - MemberDecorate 1281(TDLight) 4 Offset 64 - MemberDecorate 1281(TDLight) 5 Offset 80 - MemberDecorate 1281(TDLight) 6 Offset 96 - MemberDecorate 1281(TDLight) 7 Offset 112 - MemberDecorate 1281(TDLight) 8 ColMajor - MemberDecorate 1281(TDLight) 8 Offset 128 - MemberDecorate 1281(TDLight) 8 MatrixStride 16 - MemberDecorate 1281(TDLight) 9 ColMajor - MemberDecorate 1281(TDLight) 9 Offset 192 - MemberDecorate 1281(TDLight) 9 MatrixStride 16 - MemberDecorate 1281(TDLight) 10 Offset 256 - MemberDecorate 1281(TDLight) 11 ColMajor - MemberDecorate 1281(TDLight) 11 Offset 272 - MemberDecorate 1281(TDLight) 11 MatrixStride 16 - Decorate 1282 ArrayStride 336 - MemberDecorate 1283(TDLightBlock) 0 Offset 0 - Decorate 1283(TDLightBlock) Block - Decorate 1285 DescriptorSet 0 - Decorate 1285 Binding 0 - MemberDecorate 1286(TDEnvLight) 0 Offset 0 - MemberDecorate 1286(TDEnvLight) 1 ColMajor - MemberDecorate 1286(TDEnvLight) 1 Offset 16 - MemberDecorate 1286(TDEnvLight) 1 MatrixStride 16 - Decorate 1287 ArrayStride 64 - MemberDecorate 1288(TDEnvLightBlock) 0 Offset 0 - Decorate 1288(TDEnvLightBlock) Block - Decorate 1290 DescriptorSet 0 - Decorate 1290 Binding 0 - Decorate 1292 ArrayStride 16 - MemberDecorate 1293(TDEnvLightBuffer) 0 Restrict - MemberDecorate 1293(TDEnvLightBuffer) 0 NonWritable - MemberDecorate 1293(TDEnvLightBuffer) 0 Offset 0 - Decorate 1293(TDEnvLightBuffer) BufferBlock - Decorate 1296(uTDEnvLightBuffers) DescriptorSet 0 - Decorate 1296(uTDEnvLightBuffers) Binding 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: TypeVector 6(float) 3 - 21: TypePointer Function 20(fvec3) - 22: TypeBool - 23: TypeFunction 22(bool) 21(ptr) 21(ptr) - 28: TypeInt 32 1 - 29: TypePointer Function 28(int) - 30: TypePointer Function 6(float) - 31: TypeFunction 6(float) 29(ptr) 30(ptr) - 36: TypeFunction 2 30(ptr) - 40: TypeFunction 6(float) 29(ptr) 21(ptr) - 45: TypeFunction 6(float) 29(ptr) 21(ptr) 29(ptr) 29(ptr) - 60: TypeInt 32 0 - 61: TypePointer Function 60(int) - 62: TypeFunction 6(float) 61(ptr) - 66: TypeVector 6(float) 2 - 67: TypeFunction 66(fvec2) 61(ptr) 61(ptr) - 72: TypePointer Function 66(fvec2) - 73: TypeFunction 20(fvec3) 72(ptr) 30(ptr) 21(ptr) - 79: TypeFunction 6(float) 21(ptr) 21(ptr) 30(ptr) - 85: TypeFunction 20(fvec3) 21(ptr) 30(ptr) - 90: TypeFunction 6(float) 30(ptr) 30(ptr) 30(ptr) - 96(TDPBRResult): TypeStruct 20(fvec3) 20(fvec3) 6(float) - 97: TypeFunction 96(TDPBRResult) 29(ptr) 21(ptr) 21(ptr) 21(ptr) 21(ptr) 30(ptr) 21(ptr) 21(ptr) 30(ptr) - 109: TypeFunction 2 21(ptr) 21(ptr) 30(ptr) 29(ptr) 21(ptr) 21(ptr) 21(ptr) 21(ptr) 30(ptr) 21(ptr) 21(ptr) 30(ptr) - 124: TypeFunction 2 21(ptr) 21(ptr) 29(ptr) 21(ptr) 21(ptr) 21(ptr) 21(ptr) 30(ptr) 21(ptr) 21(ptr) 30(ptr) - 138: TypeFunction 96(TDPBRResult) 29(ptr) 21(ptr) 21(ptr) 21(ptr) 21(ptr) 30(ptr) 30(ptr) - 148: TypeFunction 2 21(ptr) 21(ptr) 29(ptr) 21(ptr) 21(ptr) 21(ptr) 21(ptr) 30(ptr) 30(ptr) -160(TDPhongResult): TypeStruct 20(fvec3) 20(fvec3) 20(fvec3) 6(float) - 161: TypeFunction 160(TDPhongResult) 29(ptr) 21(ptr) 21(ptr) 30(ptr) 21(ptr) 21(ptr) 30(ptr) 30(ptr) - 172: TypeFunction 2 21(ptr) 21(ptr) 21(ptr) 30(ptr) 29(ptr) 21(ptr) 21(ptr) 30(ptr) 21(ptr) 21(ptr) 30(ptr) 30(ptr) - 187: TypeFunction 2 21(ptr) 21(ptr) 21(ptr) 29(ptr) 21(ptr) 21(ptr) 30(ptr) 21(ptr) 21(ptr) 30(ptr) 30(ptr) - 201: TypeFunction 2 21(ptr) 21(ptr) 29(ptr) 21(ptr) 21(ptr) 30(ptr) 21(ptr) 21(ptr) 30(ptr) - 213: TypeFunction 2 21(ptr) 21(ptr) 21(ptr) 29(ptr) 21(ptr) 21(ptr) 21(ptr) 30(ptr) 30(ptr) - 225: TypeFunction 2 21(ptr) 21(ptr) 29(ptr) 21(ptr) 21(ptr) 21(ptr) 30(ptr) - 235: TypeFunction 2 21(ptr) 29(ptr) 21(ptr) 21(ptr) - 242: TypeFunction 2 21(ptr) 29(ptr) 21(ptr) 21(ptr) 30(ptr) 21(ptr) - 251: TypeFunction 7(fvec4) 29(ptr) 21(ptr) 8(ptr) - 257: TypeFunction 7(fvec4) 8(ptr) 21(ptr) 29(ptr) - 263: TypeFunction 7(fvec4) 8(ptr) 21(ptr) - 268: TypeFunction 20(fvec3) 29(ptr) 21(ptr) - 273: TypeFunction 22(bool) 29(ptr) - 277: TypePointer Function 22(bool) - 278: TypeFunction 20(fvec3) 29(ptr) 277(ptr) - 283: TypeFunction 20(fvec3) 29(ptr) - 287: TypeMatrix 20(fvec3) 3 - 288: TypeFunction 287 29(ptr) - 304: TypeMatrix 7(fvec4) 4 - 305: TypeFunction 304 29(ptr) - 315: TypeFunction 7(fvec4) 29(ptr) 8(ptr) - 323: TypeVector 60(int) 4 - 324: TypePointer Function 323(ivec4) - 325: TypeFunction 323(ivec4) 324(ptr) - 331: 6(float) Constant 0 - 332: 7(fvec4) ConstantComposite 331 331 331 331 - 334(Vertex): TypeStruct 7(fvec4) 20(fvec3) 20(fvec3) 28(int) 28(int) - 335: TypePointer Input 334(Vertex) - 336(iVert): 335(ptr) Variable Input - 337: 28(int) Constant 2 - 338: TypePointer Input 20(fvec3) - 342: 60(int) Constant 2 - 347: 6(float) Constant 1157627904 - 353: 28(int) Constant 2048 - 360: TypeImage 6(float) 2D array sampled format:Unknown - 361: TypeSampledImage 360 - 362: TypePointer UniformConstant 361 - 363(sColorMap): 362(ptr) Variable UniformConstant -374(gl_DefaultUniformBlock): TypeStruct 28(int) 28(int) 6(float) 20(fvec3) 6(float) 20(fvec3) 7(fvec4) 7(fvec4) - 375: TypePointer Uniform 374(gl_DefaultUniformBlock) - 376: 375(ptr) Variable Uniform - 377: 28(int) Constant 3 - 378: TypePointer Uniform 20(fvec3) - 381: 28(int) Constant 0 - 382: TypePointer Input 7(fvec4) - 390: 60(int) Constant 0 - 393: 60(int) Constant 1 - 402: 60(int) Constant 3 - 403: TypePointer Input 6(float) - 427: TypeArray 7(fvec4) 393 - 428: TypePointer Output 427 - 429(oFragColor): 428(ptr) Variable Output - 433: TypePointer Output 7(fvec4) - 436: 28(int) Constant 1 - 453: TypeImage 6(float) 2D sampled format:Unknown - 454: TypeSampledImage 453 - 455: TypePointer UniformConstant 454 -456(sTDNoiseMap): 455(ptr) Variable UniformConstant -458(gl_FragCoord): 382(ptr) Variable Input - 461: 6(float) Constant 1132462080 - 466: 6(float) Constant 1056964608 - 484: TypePointer Input 22(bool) -485(gl_FrontFacing): 484(ptr) Variable Input - 489: 6(float) Constant 1065353216 - 501: 60(int) Constant 16 - 507: 60(int) Constant 1431655765 - 511: 60(int) Constant 2863311530 - 516: 60(int) Constant 858993459 - 520: 60(int) Constant 3435973836 - 525: 60(int) Constant 252645135 - 527: 60(int) Constant 4 - 530: 60(int) Constant 4042322160 - 535: 60(int) Constant 16711935 - 537: 60(int) Constant 8 - 540: 60(int) Constant 4278255360 - 546: 6(float) Constant 796917760 - 564: 6(float) Constant 1086918619 - 605: 6(float) Constant 1065336439 - 607: 20(fvec3) ConstantComposite 331 331 489 - 608: 20(fvec3) ConstantComposite 489 331 331 - 609: TypeVector 22(bool) 3 - 643: 6(float) Constant 897988541 - 657: 6(float) Constant 841731191 - 661: 6(float) Constant 1078530011 - 670: 20(fvec3) ConstantComposite 489 489 489 - 673: 6(float) Constant 1073741824 - 674: 6(float) Constant 3232874585 - 677: 6(float) Constant 1088386572 - 707: TypePointer Function 96(TDPBRResult) - 789: TypePointer Function 160(TDPhongResult) - 791: 20(fvec3) ConstantComposite 331 331 331 - 928: TypeImage 6(float) Buffer sampled format:Unknown - 929: TypeSampledImage 928 - 930: TypePointer UniformConstant 929 -931(sTDInstanceTexCoord): 930(ptr) Variable UniformConstant - 950: TypePointer Uniform 28(int) -958(sTDInstanceT): 930(ptr) Variable UniformConstant - 1028: TypePointer Function 287 - 1030: 20(fvec3) ConstantComposite 331 489 331 - 1031: 287 ConstantComposite 608 1030 607 - 1068: 22(bool) ConstantTrue - 1079: 304 ConstantComposite 332 332 332 332 - 1081: TypePointer Function 304 - 1083: 7(fvec4) ConstantComposite 489 331 331 331 - 1084: 7(fvec4) ConstantComposite 331 489 331 331 - 1085: 7(fvec4) ConstantComposite 331 331 489 331 - 1086: 7(fvec4) ConstantComposite 331 331 331 489 - 1087: 304 ConstantComposite 1083 1084 1085 1086 -1219(sTDInstanceColor): 930(ptr) Variable UniformConstant - 1253(TDMatrix): TypeStruct 304 304 304 304 304 304 304 304 304 304 304 304 304 287 287 287 - 1254: TypeArray 1253(TDMatrix) 393 -1255(TDMatricesBlock): TypeStruct 1254 - 1256: TypePointer Uniform 1255(TDMatricesBlock) - 1257: 1256(ptr) Variable Uniform -1258(TDCameraInfo): TypeStruct 7(fvec4) 7(fvec4) 7(fvec4) 28(int) - 1259: TypeArray 1258(TDCameraInfo) 393 -1260(TDCameraInfoBlock): TypeStruct 1259 - 1261: TypePointer Uniform 1260(TDCameraInfoBlock) - 1262: 1261(ptr) Variable Uniform - 1263(TDGeneral): TypeStruct 7(fvec4) 7(fvec4) 7(fvec4) 7(fvec4) 7(fvec4) 7(fvec4) -1264(TDGeneralBlock): TypeStruct 1263(TDGeneral) - 1265: TypePointer Uniform 1264(TDGeneralBlock) - 1266: 1265(ptr) Variable Uniform - 1267: TypeImage 6(float) 1D sampled format:Unknown - 1268: TypeSampledImage 1267 - 1269: TypePointer UniformConstant 1268 -1270(sTDSineLookup): 1269(ptr) Variable UniformConstant -1271(sTDWhite2D): 455(ptr) Variable UniformConstant - 1272: TypeImage 6(float) 3D sampled format:Unknown - 1273: TypeSampledImage 1272 - 1274: TypePointer UniformConstant 1273 -1275(sTDWhite3D): 1274(ptr) Variable UniformConstant -1276(sTDWhite2DArray): 362(ptr) Variable UniformConstant - 1277: TypeImage 6(float) Cube sampled format:Unknown - 1278: TypeSampledImage 1277 - 1279: TypePointer UniformConstant 1278 -1280(sTDWhiteCube): 1279(ptr) Variable UniformConstant - 1281(TDLight): TypeStruct 7(fvec4) 20(fvec3) 20(fvec3) 7(fvec4) 7(fvec4) 7(fvec4) 7(fvec4) 7(fvec4) 304 304 7(fvec4) 304 - 1282: TypeArray 1281(TDLight) 393 -1283(TDLightBlock): TypeStruct 1282 - 1284: TypePointer Uniform 1283(TDLightBlock) - 1285: 1284(ptr) Variable Uniform -1286(TDEnvLight): TypeStruct 20(fvec3) 287 - 1287: TypeArray 1286(TDEnvLight) 393 -1288(TDEnvLightBlock): TypeStruct 1287 - 1289: TypePointer Uniform 1288(TDEnvLightBlock) - 1290: 1289(ptr) Variable Uniform - 1291: 60(int) Constant 9 - 1292: TypeArray 20(fvec3) 1291 -1293(TDEnvLightBuffer): TypeStruct 1292 - 1294: TypeArray 1293(TDEnvLightBuffer) 393 - 1295: TypePointer Uniform 1294 -1296(uTDEnvLightBuffers): 1295(ptr) Variable Uniform - 4(main): 2 Function None 3 - 5: Label - 330(outcol): 8(ptr) Variable Function - 333(texCoord0): 21(ptr) Variable Function - 341(actualTexZ): 30(ptr) Variable Function -349(instanceLoop): 30(ptr) Variable Function -359(colorMapColor): 8(ptr) Variable Function - 367(red): 30(ptr) Variable Function - 401(alpha): 30(ptr) Variable Function - 409(param): 8(ptr) Variable Function - 422(param): 30(ptr) Variable Function - 430(param): 8(ptr) Variable Function - 435(i): 29(ptr) Variable Function - 329: 2 FunctionCall 15(TDCheckDiscard() - Store 330(outcol) 332 - 339: 338(ptr) AccessChain 336(iVert) 337 - 340: 20(fvec3) Load 339 - Store 333(texCoord0) 340 - 343: 30(ptr) AccessChain 333(texCoord0) 342 - 344: 6(float) Load 343 - 345: 28(int) ConvertFToS 344 - 346: 6(float) ConvertSToF 345 - 348: 6(float) FMod 346 347 - Store 341(actualTexZ) 348 - 350: 30(ptr) AccessChain 333(texCoord0) 342 - 351: 6(float) Load 350 - 352: 28(int) ConvertFToS 351 - 354: 28(int) SDiv 352 353 - 355: 6(float) ConvertSToF 354 - 356: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 355 - Store 349(instanceLoop) 356 - 357: 6(float) Load 341(actualTexZ) - 358: 30(ptr) AccessChain 333(texCoord0) 342 - Store 358 357 - 364: 361 Load 363(sColorMap) - 365: 20(fvec3) Load 333(texCoord0) - 366: 7(fvec4) ImageSampleImplicitLod 364 365 - Store 359(colorMapColor) 366 - 368: 6(float) Load 349(instanceLoop) - 369: 28(int) ConvertFToS 368 - 370: 30(ptr) AccessChain 359(colorMapColor) 369 - 371: 6(float) Load 370 - Store 367(red) 371 - 372: 6(float) Load 367(red) - 373: 7(fvec4) CompositeConstruct 372 372 372 372 - Store 359(colorMapColor) 373 - 379: 378(ptr) AccessChain 376 377 - 380: 20(fvec3) Load 379 - 383: 382(ptr) AccessChain 336(iVert) 381 - 384: 7(fvec4) Load 383 - 385: 20(fvec3) VectorShuffle 384 384 0 1 2 - 386: 20(fvec3) FMul 380 385 - 387: 7(fvec4) Load 330(outcol) - 388: 20(fvec3) VectorShuffle 387 387 0 1 2 - 389: 20(fvec3) FAdd 388 386 - 391: 30(ptr) AccessChain 330(outcol) 390 - 392: 6(float) CompositeExtract 389 0 - Store 391 392 - 394: 30(ptr) AccessChain 330(outcol) 393 - 395: 6(float) CompositeExtract 389 1 - Store 394 395 - 396: 30(ptr) AccessChain 330(outcol) 342 - 397: 6(float) CompositeExtract 389 2 - Store 396 397 - 398: 7(fvec4) Load 359(colorMapColor) - 399: 7(fvec4) Load 330(outcol) - 400: 7(fvec4) FMul 399 398 - Store 330(outcol) 400 - 404: 403(ptr) AccessChain 336(iVert) 381 402 - 405: 6(float) Load 404 - 406: 30(ptr) AccessChain 359(colorMapColor) 402 - 407: 6(float) Load 406 - 408: 6(float) FMul 405 407 - Store 401(alpha) 408 - 410: 7(fvec4) Load 330(outcol) - Store 409(param) 410 - 411: 7(fvec4) FunctionCall 18(TDDither(vf4;) 409(param) - Store 330(outcol) 411 - 412: 6(float) Load 401(alpha) - 413: 7(fvec4) Load 330(outcol) - 414: 20(fvec3) VectorShuffle 413 413 0 1 2 - 415: 20(fvec3) VectorTimesScalar 414 412 - 416: 30(ptr) AccessChain 330(outcol) 390 - 417: 6(float) CompositeExtract 415 0 - Store 416 417 - 418: 30(ptr) AccessChain 330(outcol) 393 - 419: 6(float) CompositeExtract 415 1 - Store 418 419 - 420: 30(ptr) AccessChain 330(outcol) 342 - 421: 6(float) CompositeExtract 415 2 - Store 420 421 - 423: 6(float) Load 401(alpha) - Store 422(param) 423 - 424: 2 FunctionCall 38(TDAlphaTest(f1;) 422(param) - 425: 6(float) Load 401(alpha) - 426: 30(ptr) AccessChain 330(outcol) 402 - Store 426 425 - 431: 7(fvec4) Load 330(outcol) - Store 430(param) 431 - 432: 7(fvec4) FunctionCall 321(TDOutputSwizzle(vf4;) 430(param) - 434: 433(ptr) AccessChain 429(oFragColor) 381 - Store 434 432 - Store 435(i) 436 - Branch 437 - 437: Label - LoopMerge 439 440 None - Branch 441 - 441: Label - 442: 28(int) Load 435(i) - 443: 22(bool) SLessThan 442 436 - BranchConditional 443 438 439 - 438: Label - 444: 28(int) Load 435(i) - 445: 433(ptr) AccessChain 429(oFragColor) 444 - Store 445 332 - Branch 440 - 440: Label - 446: 28(int) Load 435(i) - 447: 28(int) IAdd 446 436 - Store 435(i) 447 - Branch 437 - 439: Label - Return - FunctionEnd -11(TDColor(vf4;): 7(fvec4) Function None 9 - 10(color): 8(ptr) FunctionParameter - 12: Label - 448: 7(fvec4) Load 10(color) - ReturnValue 448 - FunctionEnd -13(TDCheckOrderIndTrans(): 2 Function None 3 - 14: Label - Return - FunctionEnd -15(TDCheckDiscard(): 2 Function None 3 - 16: Label - 451: 2 FunctionCall 13(TDCheckOrderIndTrans() - Return - FunctionEnd -18(TDDither(vf4;): 7(fvec4) Function None 9 - 17(color): 8(ptr) FunctionParameter - 19: Label - 452(d): 30(ptr) Variable Function - 457: 454 Load 456(sTDNoiseMap) - 459: 7(fvec4) Load 458(gl_FragCoord) - 460: 66(fvec2) VectorShuffle 459 459 0 1 - 462: 66(fvec2) CompositeConstruct 461 461 - 463: 66(fvec2) FDiv 460 462 - 464: 7(fvec4) ImageSampleImplicitLod 457 463 - 465: 6(float) CompositeExtract 464 0 - Store 452(d) 465 - 467: 6(float) Load 452(d) - 468: 6(float) FSub 467 466 - Store 452(d) 468 - 469: 6(float) Load 452(d) - 470: 6(float) FDiv 469 461 - Store 452(d) 470 - 471: 7(fvec4) Load 17(color) - 472: 20(fvec3) VectorShuffle 471 471 0 1 2 - 473: 6(float) Load 452(d) - 474: 20(fvec3) CompositeConstruct 473 473 473 - 475: 20(fvec3) FAdd 472 474 - 476: 30(ptr) AccessChain 17(color) 402 - 477: 6(float) Load 476 - 478: 6(float) CompositeExtract 475 0 - 479: 6(float) CompositeExtract 475 1 - 480: 6(float) CompositeExtract 475 2 - 481: 7(fvec4) CompositeConstruct 478 479 480 477 - ReturnValue 481 - FunctionEnd -26(TDFrontFacing(vf3;vf3;): 22(bool) Function None 23 - 24(pos): 21(ptr) FunctionParameter - 25(normal): 21(ptr) FunctionParameter - 27: Label - 486: 22(bool) Load 485(gl_FrontFacing) - ReturnValue 486 - FunctionEnd -34(TDAttenuateLight(i1;f1;): 6(float) Function None 31 - 32(index): 29(ptr) FunctionParameter - 33(lightDist): 30(ptr) FunctionParameter - 35: Label - ReturnValue 489 - FunctionEnd -38(TDAlphaTest(f1;): 2 Function None 36 - 37(alpha): 30(ptr) FunctionParameter - 39: Label - Return - FunctionEnd -43(TDHardShadow(i1;vf3;): 6(float) Function None 40 - 41(lightIndex): 29(ptr) FunctionParameter -42(worldSpacePos): 21(ptr) FunctionParameter - 44: Label - ReturnValue 331 - FunctionEnd -50(TDSoftShadow(i1;vf3;i1;i1;): 6(float) Function None 45 - 46(lightIndex): 29(ptr) FunctionParameter -47(worldSpacePos): 21(ptr) FunctionParameter - 48(samples): 29(ptr) FunctionParameter - 49(steps): 29(ptr) FunctionParameter - 51: Label - ReturnValue 331 - FunctionEnd -54(TDSoftShadow(i1;vf3;): 6(float) Function None 40 - 52(lightIndex): 29(ptr) FunctionParameter -53(worldSpacePos): 21(ptr) FunctionParameter - 55: Label - ReturnValue 331 - FunctionEnd -58(TDShadow(i1;vf3;): 6(float) Function None 40 - 56(lightIndex): 29(ptr) FunctionParameter -57(worldSpacePos): 21(ptr) FunctionParameter - 59: Label - ReturnValue 331 - FunctionEnd -64(iTDRadicalInverse_VdC(u1;): 6(float) Function None 62 - 63(bits): 61(ptr) FunctionParameter - 65: Label - 500: 60(int) Load 63(bits) - 502: 60(int) ShiftLeftLogical 500 501 - 503: 60(int) Load 63(bits) - 504: 60(int) ShiftRightLogical 503 501 - 505: 60(int) BitwiseOr 502 504 - Store 63(bits) 505 - 506: 60(int) Load 63(bits) - 508: 60(int) BitwiseAnd 506 507 - 509: 60(int) ShiftLeftLogical 508 393 - 510: 60(int) Load 63(bits) - 512: 60(int) BitwiseAnd 510 511 - 513: 60(int) ShiftRightLogical 512 393 - 514: 60(int) BitwiseOr 509 513 - Store 63(bits) 514 - 515: 60(int) Load 63(bits) - 517: 60(int) BitwiseAnd 515 516 - 518: 60(int) ShiftLeftLogical 517 342 - 519: 60(int) Load 63(bits) - 521: 60(int) BitwiseAnd 519 520 - 522: 60(int) ShiftRightLogical 521 342 - 523: 60(int) BitwiseOr 518 522 - Store 63(bits) 523 - 524: 60(int) Load 63(bits) - 526: 60(int) BitwiseAnd 524 525 - 528: 60(int) ShiftLeftLogical 526 527 - 529: 60(int) Load 63(bits) - 531: 60(int) BitwiseAnd 529 530 - 532: 60(int) ShiftRightLogical 531 527 - 533: 60(int) BitwiseOr 528 532 - Store 63(bits) 533 - 534: 60(int) Load 63(bits) - 536: 60(int) BitwiseAnd 534 535 - 538: 60(int) ShiftLeftLogical 536 537 - 539: 60(int) Load 63(bits) - 541: 60(int) BitwiseAnd 539 540 - 542: 60(int) ShiftRightLogical 541 537 - 543: 60(int) BitwiseOr 538 542 - Store 63(bits) 543 - 544: 60(int) Load 63(bits) - 545: 6(float) ConvertUToF 544 - 547: 6(float) FMul 545 546 - ReturnValue 547 - FunctionEnd -70(iTDHammersley(u1;u1;): 66(fvec2) Function None 67 - 68(i): 61(ptr) FunctionParameter - 69(N): 61(ptr) FunctionParameter - 71: Label - 555(param): 61(ptr) Variable Function - 550: 60(int) Load 68(i) - 551: 6(float) ConvertUToF 550 - 552: 60(int) Load 69(N) - 553: 6(float) ConvertUToF 552 - 554: 6(float) FDiv 551 553 - 556: 60(int) Load 68(i) - Store 555(param) 556 - 557: 6(float) FunctionCall 64(iTDRadicalInverse_VdC(u1;) 555(param) - 558: 66(fvec2) CompositeConstruct 554 557 - ReturnValue 558 - FunctionEnd -77(iTDImportanceSampleGGX(vf2;f1;vf3;): 20(fvec3) Function None 73 - 74(Xi): 72(ptr) FunctionParameter - 75(roughness2): 30(ptr) FunctionParameter - 76(N): 21(ptr) FunctionParameter - 78: Label - 561(a): 30(ptr) Variable Function - 563(phi): 30(ptr) Variable Function - 568(cosTheta): 30(ptr) Variable Function - 582(sinTheta): 30(ptr) Variable Function - 588(H): 21(ptr) Variable Function - 601(upVector): 21(ptr) Variable Function - 612(tangentX): 21(ptr) Variable Function - 617(tangentY): 21(ptr) Variable Function -621(worldResult): 21(ptr) Variable Function - 562: 6(float) Load 75(roughness2) - Store 561(a) 562 - 565: 30(ptr) AccessChain 74(Xi) 390 - 566: 6(float) Load 565 - 567: 6(float) FMul 564 566 - Store 563(phi) 567 - 569: 30(ptr) AccessChain 74(Xi) 393 - 570: 6(float) Load 569 - 571: 6(float) FSub 489 570 - 572: 6(float) Load 561(a) - 573: 6(float) Load 561(a) - 574: 6(float) FMul 572 573 - 575: 6(float) FSub 574 489 - 576: 30(ptr) AccessChain 74(Xi) 393 - 577: 6(float) Load 576 - 578: 6(float) FMul 575 577 - 579: 6(float) FAdd 489 578 - 580: 6(float) FDiv 571 579 - 581: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 580 - Store 568(cosTheta) 581 - 583: 6(float) Load 568(cosTheta) - 584: 6(float) Load 568(cosTheta) - 585: 6(float) FMul 583 584 - 586: 6(float) FSub 489 585 - 587: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 586 - Store 582(sinTheta) 587 - 589: 6(float) Load 582(sinTheta) - 590: 6(float) Load 563(phi) - 591: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 590 - 592: 6(float) FMul 589 591 - 593: 30(ptr) AccessChain 588(H) 390 - Store 593 592 - 594: 6(float) Load 582(sinTheta) - 595: 6(float) Load 563(phi) - 596: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 595 - 597: 6(float) FMul 594 596 - 598: 30(ptr) AccessChain 588(H) 393 - Store 598 597 - 599: 6(float) Load 568(cosTheta) - 600: 30(ptr) AccessChain 588(H) 342 - Store 600 599 - 602: 30(ptr) AccessChain 76(N) 342 - 603: 6(float) Load 602 - 604: 6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 603 - 606: 22(bool) FOrdLessThan 604 605 - 610: 609(bvec3) CompositeConstruct 606 606 606 - 611: 20(fvec3) Select 610 607 608 - Store 601(upVector) 611 - 613: 20(fvec3) Load 601(upVector) - 614: 20(fvec3) Load 76(N) - 615: 20(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 613 614 - 616: 20(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 615 - Store 612(tangentX) 616 - 618: 20(fvec3) Load 76(N) - 619: 20(fvec3) Load 612(tangentX) - 620: 20(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 618 619 - Store 617(tangentY) 620 - 622: 20(fvec3) Load 612(tangentX) - 623: 30(ptr) AccessChain 588(H) 390 - 624: 6(float) Load 623 - 625: 20(fvec3) VectorTimesScalar 622 624 - 626: 20(fvec3) Load 617(tangentY) - 627: 30(ptr) AccessChain 588(H) 393 - 628: 6(float) Load 627 - 629: 20(fvec3) VectorTimesScalar 626 628 - 630: 20(fvec3) FAdd 625 629 - 631: 20(fvec3) Load 76(N) - 632: 30(ptr) AccessChain 588(H) 342 - 633: 6(float) Load 632 - 634: 20(fvec3) VectorTimesScalar 631 633 - 635: 20(fvec3) FAdd 630 634 - Store 621(worldResult) 635 - 636: 20(fvec3) Load 621(worldResult) - ReturnValue 636 - FunctionEnd -83(iTDDistributionGGX(vf3;vf3;f1;): 6(float) Function None 79 - 80(normal): 21(ptr) FunctionParameter - 81(half_vector): 21(ptr) FunctionParameter - 82(roughness2): 30(ptr) FunctionParameter - 84: Label - 639(NdotH): 30(ptr) Variable Function - 645(alpha2): 30(ptr) Variable Function - 649(denom): 30(ptr) Variable Function - 640: 20(fvec3) Load 80(normal) - 641: 20(fvec3) Load 81(half_vector) - 642: 6(float) Dot 640 641 - 644: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 642 643 489 - Store 639(NdotH) 644 - 646: 6(float) Load 82(roughness2) - 647: 6(float) Load 82(roughness2) - 648: 6(float) FMul 646 647 - Store 645(alpha2) 648 - 650: 6(float) Load 639(NdotH) - 651: 6(float) Load 639(NdotH) - 652: 6(float) FMul 650 651 - 653: 6(float) Load 645(alpha2) - 654: 6(float) FSub 653 489 - 655: 6(float) FMul 652 654 - 656: 6(float) FAdd 655 489 - Store 649(denom) 656 - 658: 6(float) Load 649(denom) - 659: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 657 658 - Store 649(denom) 659 - 660: 6(float) Load 645(alpha2) - 662: 6(float) Load 649(denom) - 663: 6(float) FMul 661 662 - 664: 6(float) Load 649(denom) - 665: 6(float) FMul 663 664 - 666: 6(float) FDiv 660 665 - ReturnValue 666 - FunctionEnd -88(iTDCalcF(vf3;f1;): 20(fvec3) Function None 85 - 86(F0): 21(ptr) FunctionParameter - 87(VdotH): 30(ptr) FunctionParameter - 89: Label - 669: 20(fvec3) Load 86(F0) - 671: 20(fvec3) Load 86(F0) - 672: 20(fvec3) FSub 670 671 - 675: 6(float) Load 87(VdotH) - 676: 6(float) FMul 674 675 - 678: 6(float) FSub 676 677 - 679: 6(float) Load 87(VdotH) - 680: 6(float) FMul 678 679 - 681: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 673 680 - 682: 20(fvec3) VectorTimesScalar 672 681 - 683: 20(fvec3) FAdd 669 682 - ReturnValue 683 - FunctionEnd -94(iTDCalcG(f1;f1;f1;): 6(float) Function None 90 - 91(NdotL): 30(ptr) FunctionParameter - 92(NdotV): 30(ptr) FunctionParameter - 93(k): 30(ptr) FunctionParameter - 95: Label - 686(Gl): 30(ptr) Variable Function - 694(Gv): 30(ptr) Variable Function - 687: 6(float) Load 91(NdotL) - 688: 6(float) Load 93(k) - 689: 6(float) FSub 489 688 - 690: 6(float) FMul 687 689 - 691: 6(float) Load 93(k) - 692: 6(float) FAdd 690 691 - 693: 6(float) FDiv 489 692 - Store 686(Gl) 693 - 695: 6(float) Load 92(NdotV) - 696: 6(float) Load 93(k) - 697: 6(float) FSub 489 696 - 698: 6(float) FMul 695 697 - 699: 6(float) Load 93(k) - 700: 6(float) FAdd 698 699 - 701: 6(float) FDiv 489 700 - Store 694(Gv) 701 - 702: 6(float) Load 686(Gl) - 703: 6(float) Load 694(Gv) - 704: 6(float) FMul 702 703 - ReturnValue 704 - FunctionEnd -107(TDLightingPBR(i1;vf3;vf3;vf3;vf3;f1;vf3;vf3;f1;):96(TDPBRResult) Function None 97 - 98(index): 29(ptr) FunctionParameter -99(diffuseColor): 21(ptr) FunctionParameter -100(specularColor): 21(ptr) FunctionParameter -101(worldSpacePos): 21(ptr) FunctionParameter - 102(normal): 21(ptr) FunctionParameter -103(shadowStrength): 30(ptr) FunctionParameter -104(shadowColor): 21(ptr) FunctionParameter - 105(camVector): 21(ptr) FunctionParameter - 106(roughness): 30(ptr) FunctionParameter - 108: Label - 708(res): 707(ptr) Variable Function - 709:96(TDPBRResult) Load 708(res) - ReturnValue 709 - FunctionEnd -122(TDLightingPBR(vf3;vf3;f1;i1;vf3;vf3;vf3;vf3;f1;vf3;vf3;f1;): 2 Function None 109 -110(diffuseContrib): 21(ptr) FunctionParameter -111(specularContrib): 21(ptr) FunctionParameter -112(shadowStrengthOut): 30(ptr) FunctionParameter - 113(index): 29(ptr) FunctionParameter -114(diffuseColor): 21(ptr) FunctionParameter -115(specularColor): 21(ptr) FunctionParameter -116(worldSpacePos): 21(ptr) FunctionParameter - 117(normal): 21(ptr) FunctionParameter -118(shadowStrength): 30(ptr) FunctionParameter -119(shadowColor): 21(ptr) FunctionParameter - 120(camVector): 21(ptr) FunctionParameter - 121(roughness): 30(ptr) FunctionParameter - 123: Label - 712(res): 707(ptr) Variable Function - 713(param): 29(ptr) Variable Function - 715(param): 21(ptr) Variable Function - 717(param): 21(ptr) Variable Function - 719(param): 21(ptr) Variable Function - 721(param): 21(ptr) Variable Function - 723(param): 30(ptr) Variable Function - 725(param): 21(ptr) Variable Function - 727(param): 21(ptr) Variable Function - 729(param): 30(ptr) Variable Function - 714: 28(int) Load 113(index) - Store 713(param) 714 - 716: 20(fvec3) Load 114(diffuseColor) - Store 715(param) 716 - 718: 20(fvec3) Load 115(specularColor) - Store 717(param) 718 - 720: 20(fvec3) Load 116(worldSpacePos) - Store 719(param) 720 - 722: 20(fvec3) Load 117(normal) - Store 721(param) 722 - 724: 6(float) Load 118(shadowStrength) - Store 723(param) 724 - 726: 20(fvec3) Load 119(shadowColor) - Store 725(param) 726 - 728: 20(fvec3) Load 120(camVector) - Store 727(param) 728 - 730: 6(float) Load 121(roughness) - Store 729(param) 730 - 731:96(TDPBRResult) FunctionCall 107(TDLightingPBR(i1;vf3;vf3;vf3;vf3;f1;vf3;vf3;f1;) 713(param) 715(param) 717(param) 719(param) 721(param) 723(param) 725(param) 727(param) 729(param) - Store 712(res) 731 - 732: 21(ptr) AccessChain 712(res) 381 - 733: 20(fvec3) Load 732 - Store 110(diffuseContrib) 733 - 734: 21(ptr) AccessChain 712(res) 436 - 735: 20(fvec3) Load 734 - Store 111(specularContrib) 735 - 736: 30(ptr) AccessChain 712(res) 337 - 737: 6(float) Load 736 - Store 112(shadowStrengthOut) 737 - Return - FunctionEnd -136(TDLightingPBR(vf3;vf3;i1;vf3;vf3;vf3;vf3;f1;vf3;vf3;f1;): 2 Function None 124 -125(diffuseContrib): 21(ptr) FunctionParameter -126(specularContrib): 21(ptr) FunctionParameter - 127(index): 29(ptr) FunctionParameter -128(diffuseColor): 21(ptr) FunctionParameter -129(specularColor): 21(ptr) FunctionParameter -130(worldSpacePos): 21(ptr) FunctionParameter - 131(normal): 21(ptr) FunctionParameter -132(shadowStrength): 30(ptr) FunctionParameter -133(shadowColor): 21(ptr) FunctionParameter - 134(camVector): 21(ptr) FunctionParameter - 135(roughness): 30(ptr) FunctionParameter - 137: Label - 738(res): 707(ptr) Variable Function - 739(param): 29(ptr) Variable Function - 741(param): 21(ptr) Variable Function - 743(param): 21(ptr) Variable Function - 745(param): 21(ptr) Variable Function - 747(param): 21(ptr) Variable Function - 749(param): 30(ptr) Variable Function - 751(param): 21(ptr) Variable Function - 753(param): 21(ptr) Variable Function - 755(param): 30(ptr) Variable Function - 740: 28(int) Load 127(index) - Store 739(param) 740 - 742: 20(fvec3) Load 128(diffuseColor) - Store 741(param) 742 - 744: 20(fvec3) Load 129(specularColor) - Store 743(param) 744 - 746: 20(fvec3) Load 130(worldSpacePos) - Store 745(param) 746 - 748: 20(fvec3) Load 131(normal) - Store 747(param) 748 - 750: 6(float) Load 132(shadowStrength) - Store 749(param) 750 - 752: 20(fvec3) Load 133(shadowColor) - Store 751(param) 752 - 754: 20(fvec3) Load 134(camVector) - Store 753(param) 754 - 756: 6(float) Load 135(roughness) - Store 755(param) 756 - 757:96(TDPBRResult) FunctionCall 107(TDLightingPBR(i1;vf3;vf3;vf3;vf3;f1;vf3;vf3;f1;) 739(param) 741(param) 743(param) 745(param) 747(param) 749(param) 751(param) 753(param) 755(param) - Store 738(res) 757 - 758: 21(ptr) AccessChain 738(res) 381 - 759: 20(fvec3) Load 758 - Store 125(diffuseContrib) 759 - 760: 21(ptr) AccessChain 738(res) 436 - 761: 20(fvec3) Load 760 - Store 126(specularContrib) 761 - Return - FunctionEnd -146(TDEnvLightingPBR(i1;vf3;vf3;vf3;vf3;f1;f1;):96(TDPBRResult) Function None 138 - 139(index): 29(ptr) FunctionParameter -140(diffuseColor): 21(ptr) FunctionParameter -141(specularColor): 21(ptr) FunctionParameter - 142(normal): 21(ptr) FunctionParameter - 143(camVector): 21(ptr) FunctionParameter - 144(roughness): 30(ptr) FunctionParameter -145(ambientOcclusion): 30(ptr) FunctionParameter - 147: Label - 762(res): 707(ptr) Variable Function - 763:96(TDPBRResult) Load 762(res) - ReturnValue 763 - FunctionEnd -158(TDEnvLightingPBR(vf3;vf3;i1;vf3;vf3;vf3;vf3;f1;f1;): 2 Function None 148 -149(diffuseContrib): 21(ptr) FunctionParameter -150(specularContrib): 21(ptr) FunctionParameter - 151(index): 29(ptr) FunctionParameter -152(diffuseColor): 21(ptr) FunctionParameter -153(specularColor): 21(ptr) FunctionParameter - 154(normal): 21(ptr) FunctionParameter - 155(camVector): 21(ptr) FunctionParameter - 156(roughness): 30(ptr) FunctionParameter -157(ambientOcclusion): 30(ptr) FunctionParameter - 159: Label - 766(res): 707(ptr) Variable Function - 767(param): 29(ptr) Variable Function - 769(param): 21(ptr) Variable Function - 771(param): 21(ptr) Variable Function - 773(param): 21(ptr) Variable Function - 775(param): 21(ptr) Variable Function - 777(param): 30(ptr) Variable Function - 779(param): 30(ptr) Variable Function - 768: 28(int) Load 151(index) - Store 767(param) 768 - 770: 20(fvec3) Load 152(diffuseColor) - Store 769(param) 770 - 772: 20(fvec3) Load 153(specularColor) - Store 771(param) 772 - 774: 20(fvec3) Load 154(normal) - Store 773(param) 774 - 776: 20(fvec3) Load 155(camVector) - Store 775(param) 776 - 778: 6(float) Load 156(roughness) - Store 777(param) 778 - 780: 6(float) Load 157(ambientOcclusion) - Store 779(param) 780 - 781:96(TDPBRResult) FunctionCall 146(TDEnvLightingPBR(i1;vf3;vf3;vf3;vf3;f1;f1;) 767(param) 769(param) 771(param) 773(param) 775(param) 777(param) 779(param) - Store 766(res) 781 - 782: 21(ptr) AccessChain 766(res) 381 - 783: 20(fvec3) Load 782 - Store 149(diffuseContrib) 783 - 784: 21(ptr) AccessChain 766(res) 436 - 785: 20(fvec3) Load 784 - Store 150(specularContrib) 785 - Return - FunctionEnd -170(TDLighting(i1;vf3;vf3;f1;vf3;vf3;f1;f1;):160(TDPhongResult) Function None 161 - 162(index): 29(ptr) FunctionParameter -163(worldSpacePos): 21(ptr) FunctionParameter - 164(normal): 21(ptr) FunctionParameter -165(shadowStrength): 30(ptr) FunctionParameter -166(shadowColor): 21(ptr) FunctionParameter - 167(camVector): 21(ptr) FunctionParameter - 168(shininess): 30(ptr) FunctionParameter - 169(shininess2): 30(ptr) FunctionParameter - 171: Label - 790(res): 789(ptr) Variable Function - 786: 28(int) Load 162(index) - SelectionMerge 788 None - Switch 786 787 - 787: Label - 792: 21(ptr) AccessChain 790(res) 381 - Store 792 791 - 793: 21(ptr) AccessChain 790(res) 436 - Store 793 791 - 794: 21(ptr) AccessChain 790(res) 337 - Store 794 791 - 795: 30(ptr) AccessChain 790(res) 377 - Store 795 331 - Branch 788 - 788: Label - 798:160(TDPhongResult) Load 790(res) - ReturnValue 798 - FunctionEnd -185(TDLighting(vf3;vf3;vf3;f1;i1;vf3;vf3;f1;vf3;vf3;f1;f1;): 2 Function None 172 -173(diffuseContrib): 21(ptr) FunctionParameter -174(specularContrib): 21(ptr) FunctionParameter -175(specularContrib2): 21(ptr) FunctionParameter -176(shadowStrengthOut): 30(ptr) FunctionParameter - 177(index): 29(ptr) FunctionParameter -178(worldSpacePos): 21(ptr) FunctionParameter - 179(normal): 21(ptr) FunctionParameter -180(shadowStrength): 30(ptr) FunctionParameter -181(shadowColor): 21(ptr) FunctionParameter - 182(camVector): 21(ptr) FunctionParameter - 183(shininess): 30(ptr) FunctionParameter - 184(shininess2): 30(ptr) FunctionParameter - 186: Label - 804(res): 789(ptr) Variable Function - 801: 28(int) Load 177(index) - SelectionMerge 803 None - Switch 801 802 - 802: Label - 805: 21(ptr) AccessChain 804(res) 381 - Store 805 791 - 806: 21(ptr) AccessChain 804(res) 436 - Store 806 791 - 807: 21(ptr) AccessChain 804(res) 337 - Store 807 791 - 808: 30(ptr) AccessChain 804(res) 377 - Store 808 331 - Branch 803 - 803: Label - 811: 21(ptr) AccessChain 804(res) 381 - 812: 20(fvec3) Load 811 - Store 173(diffuseContrib) 812 - 813: 21(ptr) AccessChain 804(res) 436 - 814: 20(fvec3) Load 813 - Store 174(specularContrib) 814 - 815: 21(ptr) AccessChain 804(res) 337 - 816: 20(fvec3) Load 815 - Store 175(specularContrib2) 816 - 817: 30(ptr) AccessChain 804(res) 377 - 818: 6(float) Load 817 - Store 176(shadowStrengthOut) 818 - Return - FunctionEnd -199(TDLighting(vf3;vf3;vf3;i1;vf3;vf3;f1;vf3;vf3;f1;f1;): 2 Function None 187 -188(diffuseContrib): 21(ptr) FunctionParameter -189(specularContrib): 21(ptr) FunctionParameter -190(specularContrib2): 21(ptr) FunctionParameter - 191(index): 29(ptr) FunctionParameter -192(worldSpacePos): 21(ptr) FunctionParameter - 193(normal): 21(ptr) FunctionParameter -194(shadowStrength): 30(ptr) FunctionParameter -195(shadowColor): 21(ptr) FunctionParameter - 196(camVector): 21(ptr) FunctionParameter - 197(shininess): 30(ptr) FunctionParameter - 198(shininess2): 30(ptr) FunctionParameter - 200: Label - 822(res): 789(ptr) Variable Function - 819: 28(int) Load 191(index) - SelectionMerge 821 None - Switch 819 820 - 820: Label - 823: 21(ptr) AccessChain 822(res) 381 - Store 823 791 - 824: 21(ptr) AccessChain 822(res) 436 - Store 824 791 - 825: 21(ptr) AccessChain 822(res) 337 - Store 825 791 - 826: 30(ptr) AccessChain 822(res) 377 - Store 826 331 - Branch 821 - 821: Label - 829: 21(ptr) AccessChain 822(res) 381 - 830: 20(fvec3) Load 829 - Store 188(diffuseContrib) 830 - 831: 21(ptr) AccessChain 822(res) 436 - 832: 20(fvec3) Load 831 - Store 189(specularContrib) 832 - 833: 21(ptr) AccessChain 822(res) 337 - 834: 20(fvec3) Load 833 - Store 190(specularContrib2) 834 - Return - FunctionEnd -211(TDLighting(vf3;vf3;i1;vf3;vf3;f1;vf3;vf3;f1;): 2 Function None 201 -202(diffuseContrib): 21(ptr) FunctionParameter -203(specularContrib): 21(ptr) FunctionParameter - 204(index): 29(ptr) FunctionParameter -205(worldSpacePos): 21(ptr) FunctionParameter - 206(normal): 21(ptr) FunctionParameter -207(shadowStrength): 30(ptr) FunctionParameter -208(shadowColor): 21(ptr) FunctionParameter - 209(camVector): 21(ptr) FunctionParameter - 210(shininess): 30(ptr) FunctionParameter - 212: Label - 838(res): 789(ptr) Variable Function - 835: 28(int) Load 204(index) - SelectionMerge 837 None - Switch 835 836 - 836: Label - 839: 21(ptr) AccessChain 838(res) 381 - Store 839 791 - 840: 21(ptr) AccessChain 838(res) 436 - Store 840 791 - 841: 21(ptr) AccessChain 838(res) 337 - Store 841 791 - 842: 30(ptr) AccessChain 838(res) 377 - Store 842 331 - Branch 837 - 837: Label - 845: 21(ptr) AccessChain 838(res) 381 - 846: 20(fvec3) Load 845 - Store 202(diffuseContrib) 846 - 847: 21(ptr) AccessChain 838(res) 436 - 848: 20(fvec3) Load 847 - Store 203(specularContrib) 848 - Return - FunctionEnd -223(TDLighting(vf3;vf3;vf3;i1;vf3;vf3;vf3;f1;f1;): 2 Function None 213 -214(diffuseContrib): 21(ptr) FunctionParameter -215(specularContrib): 21(ptr) FunctionParameter -216(specularContrib2): 21(ptr) FunctionParameter - 217(index): 29(ptr) FunctionParameter -218(worldSpacePos): 21(ptr) FunctionParameter - 219(normal): 21(ptr) FunctionParameter - 220(camVector): 21(ptr) FunctionParameter - 221(shininess): 30(ptr) FunctionParameter - 222(shininess2): 30(ptr) FunctionParameter - 224: Label - 852(res): 789(ptr) Variable Function - 849: 28(int) Load 217(index) - SelectionMerge 851 None - Switch 849 850 - 850: Label - 853: 21(ptr) AccessChain 852(res) 381 - Store 853 791 - 854: 21(ptr) AccessChain 852(res) 436 - Store 854 791 - 855: 21(ptr) AccessChain 852(res) 337 - Store 855 791 - 856: 30(ptr) AccessChain 852(res) 377 - Store 856 331 - Branch 851 - 851: Label - 859: 21(ptr) AccessChain 852(res) 381 - 860: 20(fvec3) Load 859 - Store 214(diffuseContrib) 860 - 861: 21(ptr) AccessChain 852(res) 436 - 862: 20(fvec3) Load 861 - Store 215(specularContrib) 862 - 863: 21(ptr) AccessChain 852(res) 337 - 864: 20(fvec3) Load 863 - Store 216(specularContrib2) 864 - Return - FunctionEnd -233(TDLighting(vf3;vf3;i1;vf3;vf3;vf3;f1;): 2 Function None 225 -226(diffuseContrib): 21(ptr) FunctionParameter -227(specularContrib): 21(ptr) FunctionParameter - 228(index): 29(ptr) FunctionParameter -229(worldSpacePos): 21(ptr) FunctionParameter - 230(normal): 21(ptr) FunctionParameter - 231(camVector): 21(ptr) FunctionParameter - 232(shininess): 30(ptr) FunctionParameter - 234: Label - 868(res): 789(ptr) Variable Function - 865: 28(int) Load 228(index) - SelectionMerge 867 None - Switch 865 866 - 866: Label - 869: 21(ptr) AccessChain 868(res) 381 - Store 869 791 - 870: 21(ptr) AccessChain 868(res) 436 - Store 870 791 - 871: 21(ptr) AccessChain 868(res) 337 - Store 871 791 - 872: 30(ptr) AccessChain 868(res) 377 - Store 872 331 - Branch 867 - 867: Label - 875: 21(ptr) AccessChain 868(res) 381 - 876: 20(fvec3) Load 875 - Store 226(diffuseContrib) 876 - 877: 21(ptr) AccessChain 868(res) 436 - 878: 20(fvec3) Load 877 - Store 227(specularContrib) 878 - Return - FunctionEnd -240(TDLighting(vf3;i1;vf3;vf3;): 2 Function None 235 -236(diffuseContrib): 21(ptr) FunctionParameter - 237(index): 29(ptr) FunctionParameter -238(worldSpacePos): 21(ptr) FunctionParameter - 239(normal): 21(ptr) FunctionParameter - 241: Label - 882(res): 789(ptr) Variable Function - 879: 28(int) Load 237(index) - SelectionMerge 881 None - Switch 879 880 - 880: Label - 883: 21(ptr) AccessChain 882(res) 381 - Store 883 791 - 884: 21(ptr) AccessChain 882(res) 436 - Store 884 791 - 885: 21(ptr) AccessChain 882(res) 337 - Store 885 791 - 886: 30(ptr) AccessChain 882(res) 377 - Store 886 331 - Branch 881 - 881: Label - 889: 21(ptr) AccessChain 882(res) 381 - 890: 20(fvec3) Load 889 - Store 236(diffuseContrib) 890 - Return - FunctionEnd -249(TDLighting(vf3;i1;vf3;vf3;f1;vf3;): 2 Function None 242 -243(diffuseContrib): 21(ptr) FunctionParameter - 244(index): 29(ptr) FunctionParameter -245(worldSpacePos): 21(ptr) FunctionParameter - 246(normal): 21(ptr) FunctionParameter -247(shadowStrength): 30(ptr) FunctionParameter -248(shadowColor): 21(ptr) FunctionParameter - 250: Label - 894(res): 789(ptr) Variable Function - 891: 28(int) Load 244(index) - SelectionMerge 893 None - Switch 891 892 - 892: Label - 895: 21(ptr) AccessChain 894(res) 381 - Store 895 791 - 896: 21(ptr) AccessChain 894(res) 436 - Store 896 791 - 897: 21(ptr) AccessChain 894(res) 337 - Store 897 791 - 898: 30(ptr) AccessChain 894(res) 377 - Store 898 331 - Branch 893 - 893: Label - 901: 21(ptr) AccessChain 894(res) 381 - 902: 20(fvec3) Load 901 - Store 243(diffuseContrib) 902 - Return - FunctionEnd -255(TDProjMap(i1;vf3;vf4;): 7(fvec4) Function None 251 - 252(index): 29(ptr) FunctionParameter -253(worldSpacePos): 21(ptr) FunctionParameter -254(defaultColor): 8(ptr) FunctionParameter - 256: Label - 903: 28(int) Load 252(index) - SelectionMerge 905 None - Switch 903 904 - 904: Label - 906: 7(fvec4) Load 254(defaultColor) - ReturnValue 906 - 905: Label - Unreachable - FunctionEnd -261(TDFog(vf4;vf3;i1;): 7(fvec4) Function None 257 - 258(color): 8(ptr) FunctionParameter -259(lightingSpacePosition): 21(ptr) FunctionParameter -260(cameraIndex): 29(ptr) FunctionParameter - 262: Label - 910: 28(int) Load 260(cameraIndex) - SelectionMerge 912 None - Switch 910 911 - case 0: 911 - 911: Label - 913: 7(fvec4) Load 258(color) - ReturnValue 913 - 912: Label - Unreachable - FunctionEnd -266(TDFog(vf4;vf3;): 7(fvec4) Function None 263 - 264(color): 8(ptr) FunctionParameter -265(lightingSpacePosition): 21(ptr) FunctionParameter - 267: Label - 917(param): 8(ptr) Variable Function - 919(param): 21(ptr) Variable Function - 921(param): 29(ptr) Variable Function - 918: 7(fvec4) Load 264(color) - Store 917(param) 918 - 920: 20(fvec3) Load 265(lightingSpacePosition) - Store 919(param) 920 - Store 921(param) 381 - 922: 7(fvec4) FunctionCall 261(TDFog(vf4;vf3;i1;) 917(param) 919(param) 921(param) - ReturnValue 922 - FunctionEnd -271(TDInstanceTexCoord(i1;vf3;): 20(fvec3) Function None 268 - 269(index): 29(ptr) FunctionParameter - 270(t): 21(ptr) FunctionParameter - 272: Label - 925(coord): 29(ptr) Variable Function - 927(samp): 8(ptr) Variable Function - 936(v): 21(ptr) Variable Function - 926: 28(int) Load 269(index) - Store 925(coord) 926 - 932: 929 Load 931(sTDInstanceTexCoord) - 933: 28(int) Load 925(coord) - 934: 928 Image 932 - 935: 7(fvec4) ImageFetch 934 933 - Store 927(samp) 935 - 937: 30(ptr) AccessChain 270(t) 390 - 938: 6(float) Load 937 - 939: 30(ptr) AccessChain 936(v) 390 - Store 939 938 - 940: 30(ptr) AccessChain 270(t) 393 - 941: 6(float) Load 940 - 942: 30(ptr) AccessChain 936(v) 393 - Store 942 941 - 943: 30(ptr) AccessChain 927(samp) 390 - 944: 6(float) Load 943 - 945: 30(ptr) AccessChain 936(v) 342 - Store 945 944 - 946: 20(fvec3) Load 936(v) - Store 270(t) 946 - 947: 20(fvec3) Load 270(t) - ReturnValue 947 - FunctionEnd -275(TDInstanceActive(i1;): 22(bool) Function None 273 - 274(index): 29(ptr) FunctionParameter - 276: Label - 955(coord): 29(ptr) Variable Function - 957(samp): 8(ptr) Variable Function - 963(v): 30(ptr) Variable Function - 951: 950(ptr) AccessChain 376 381 - 952: 28(int) Load 951 - 953: 28(int) Load 274(index) - 954: 28(int) ISub 953 952 - Store 274(index) 954 - 956: 28(int) Load 274(index) - Store 955(coord) 956 - 959: 929 Load 958(sTDInstanceT) - 960: 28(int) Load 955(coord) - 961: 928 Image 959 - 962: 7(fvec4) ImageFetch 961 960 - Store 957(samp) 962 - 964: 30(ptr) AccessChain 957(samp) 390 - 965: 6(float) Load 964 - Store 963(v) 965 - 966: 6(float) Load 963(v) - 967: 22(bool) FUnordNotEqual 966 331 - ReturnValue 967 - FunctionEnd -281(iTDInstanceTranslate(i1;b1;): 20(fvec3) Function None 278 - 279(index): 29(ptr) FunctionParameter -280(instanceActive): 277(ptr) FunctionParameter - 282: Label - 970(origIndex): 29(ptr) Variable Function - 976(coord): 29(ptr) Variable Function - 978(samp): 8(ptr) Variable Function - 983(v): 21(ptr) Variable Function - 971: 28(int) Load 279(index) - Store 970(origIndex) 971 - 972: 950(ptr) AccessChain 376 381 - 973: 28(int) Load 972 - 974: 28(int) Load 279(index) - 975: 28(int) ISub 974 973 - Store 279(index) 975 - 977: 28(int) Load 279(index) - Store 976(coord) 977 - 979: 929 Load 958(sTDInstanceT) - 980: 28(int) Load 976(coord) - 981: 928 Image 979 - 982: 7(fvec4) ImageFetch 981 980 - Store 978(samp) 982 - 984: 30(ptr) AccessChain 978(samp) 393 - 985: 6(float) Load 984 - 986: 30(ptr) AccessChain 983(v) 390 - Store 986 985 - 987: 30(ptr) AccessChain 978(samp) 342 - 988: 6(float) Load 987 - 989: 30(ptr) AccessChain 983(v) 393 - Store 989 988 - 990: 30(ptr) AccessChain 978(samp) 402 - 991: 6(float) Load 990 - 992: 30(ptr) AccessChain 983(v) 342 - Store 992 991 - 993: 30(ptr) AccessChain 978(samp) 390 - 994: 6(float) Load 993 - 995: 22(bool) FUnordNotEqual 994 331 - Store 280(instanceActive) 995 - 996: 20(fvec3) Load 983(v) - ReturnValue 996 - FunctionEnd -285(TDInstanceTranslate(i1;): 20(fvec3) Function None 283 - 284(index): 29(ptr) FunctionParameter - 286: Label - 1003(coord): 29(ptr) Variable Function - 1005(samp): 8(ptr) Variable Function - 1010(v): 21(ptr) Variable Function - 999: 950(ptr) AccessChain 376 381 - 1000: 28(int) Load 999 - 1001: 28(int) Load 284(index) - 1002: 28(int) ISub 1001 1000 - Store 284(index) 1002 - 1004: 28(int) Load 284(index) - Store 1003(coord) 1004 - 1006: 929 Load 958(sTDInstanceT) - 1007: 28(int) Load 1003(coord) - 1008: 928 Image 1006 - 1009: 7(fvec4) ImageFetch 1008 1007 - Store 1005(samp) 1009 - 1011: 30(ptr) AccessChain 1005(samp) 393 - 1012: 6(float) Load 1011 - 1013: 30(ptr) AccessChain 1010(v) 390 - Store 1013 1012 - 1014: 30(ptr) AccessChain 1005(samp) 342 - 1015: 6(float) Load 1014 - 1016: 30(ptr) AccessChain 1010(v) 393 - Store 1016 1015 - 1017: 30(ptr) AccessChain 1005(samp) 402 - 1018: 6(float) Load 1017 - 1019: 30(ptr) AccessChain 1010(v) 342 - Store 1019 1018 - 1020: 20(fvec3) Load 1010(v) - ReturnValue 1020 - FunctionEnd -290(TDInstanceRotateMat(i1;): 287 Function None 288 - 289(index): 29(ptr) FunctionParameter - 291: Label - 1027(v): 21(ptr) Variable Function - 1029(m): 1028(ptr) Variable Function - 1023: 950(ptr) AccessChain 376 381 - 1024: 28(int) Load 1023 - 1025: 28(int) Load 289(index) - 1026: 28(int) ISub 1025 1024 - Store 289(index) 1026 - Store 1027(v) 791 - Store 1029(m) 1031 - 1032: 287 Load 1029(m) - ReturnValue 1032 - FunctionEnd -293(TDInstanceScale(i1;): 20(fvec3) Function None 283 - 292(index): 29(ptr) FunctionParameter - 294: Label - 1039(v): 21(ptr) Variable Function - 1035: 950(ptr) AccessChain 376 381 - 1036: 28(int) Load 1035 - 1037: 28(int) Load 292(index) - 1038: 28(int) ISub 1037 1036 - Store 292(index) 1038 - Store 1039(v) 670 - 1040: 20(fvec3) Load 1039(v) - ReturnValue 1040 - FunctionEnd -296(TDInstancePivot(i1;): 20(fvec3) Function None 283 - 295(index): 29(ptr) FunctionParameter - 297: Label - 1047(v): 21(ptr) Variable Function - 1043: 950(ptr) AccessChain 376 381 - 1044: 28(int) Load 1043 - 1045: 28(int) Load 295(index) - 1046: 28(int) ISub 1045 1044 - Store 295(index) 1046 - Store 1047(v) 791 - 1048: 20(fvec3) Load 1047(v) - ReturnValue 1048 - FunctionEnd -299(TDInstanceRotTo(i1;): 20(fvec3) Function None 283 - 298(index): 29(ptr) FunctionParameter - 300: Label - 1055(v): 21(ptr) Variable Function - 1051: 950(ptr) AccessChain 376 381 - 1052: 28(int) Load 1051 - 1053: 28(int) Load 298(index) - 1054: 28(int) ISub 1053 1052 - Store 298(index) 1054 - Store 1055(v) 607 - 1056: 20(fvec3) Load 1055(v) - ReturnValue 1056 - FunctionEnd -302(TDInstanceRotUp(i1;): 20(fvec3) Function None 283 - 301(index): 29(ptr) FunctionParameter - 303: Label - 1063(v): 21(ptr) Variable Function - 1059: 950(ptr) AccessChain 376 381 - 1060: 28(int) Load 1059 - 1061: 28(int) Load 301(index) - 1062: 28(int) ISub 1061 1060 - Store 301(index) 1062 - Store 1063(v) 1030 - 1064: 20(fvec3) Load 1063(v) - ReturnValue 1064 - FunctionEnd -307(TDInstanceMat(i1;): 304 Function None 305 - 306(id): 29(ptr) FunctionParameter - 308: Label -1067(instanceActive): 277(ptr) Variable Function - 1069(t): 21(ptr) Variable Function - 1070(param): 29(ptr) Variable Function - 1072(param): 277(ptr) Variable Function - 1082(m): 1081(ptr) Variable Function - 1088(tt): 21(ptr) Variable Function - Store 1067(instanceActive) 1068 - 1071: 28(int) Load 306(id) - Store 1070(param) 1071 - 1073: 20(fvec3) FunctionCall 281(iTDInstanceTranslate(i1;b1;) 1070(param) 1072(param) - 1074: 22(bool) Load 1072(param) - Store 1067(instanceActive) 1074 - Store 1069(t) 1073 - 1075: 22(bool) Load 1067(instanceActive) - 1076: 22(bool) LogicalNot 1075 - SelectionMerge 1078 None - BranchConditional 1076 1077 1078 - 1077: Label - ReturnValue 1079 - 1078: Label - Store 1082(m) 1087 - 1089: 20(fvec3) Load 1069(t) - Store 1088(tt) 1089 - 1090: 30(ptr) AccessChain 1082(m) 381 390 - 1091: 6(float) Load 1090 - 1092: 30(ptr) AccessChain 1088(tt) 390 - 1093: 6(float) Load 1092 - 1094: 6(float) FMul 1091 1093 - 1095: 30(ptr) AccessChain 1082(m) 377 390 - 1096: 6(float) Load 1095 - 1097: 6(float) FAdd 1096 1094 - 1098: 30(ptr) AccessChain 1082(m) 377 390 - Store 1098 1097 - 1099: 30(ptr) AccessChain 1082(m) 381 393 - 1100: 6(float) Load 1099 - 1101: 30(ptr) AccessChain 1088(tt) 390 - 1102: 6(float) Load 1101 - 1103: 6(float) FMul 1100 1102 - 1104: 30(ptr) AccessChain 1082(m) 377 393 - 1105: 6(float) Load 1104 - 1106: 6(float) FAdd 1105 1103 - 1107: 30(ptr) AccessChain 1082(m) 377 393 - Store 1107 1106 - 1108: 30(ptr) AccessChain 1082(m) 381 342 - 1109: 6(float) Load 1108 - 1110: 30(ptr) AccessChain 1088(tt) 390 - 1111: 6(float) Load 1110 - 1112: 6(float) FMul 1109 1111 - 1113: 30(ptr) AccessChain 1082(m) 377 342 - 1114: 6(float) Load 1113 - 1115: 6(float) FAdd 1114 1112 - 1116: 30(ptr) AccessChain 1082(m) 377 342 - Store 1116 1115 - 1117: 30(ptr) AccessChain 1082(m) 381 402 - 1118: 6(float) Load 1117 - 1119: 30(ptr) AccessChain 1088(tt) 390 - 1120: 6(float) Load 1119 - 1121: 6(float) FMul 1118 1120 - 1122: 30(ptr) AccessChain 1082(m) 377 402 - 1123: 6(float) Load 1122 - 1124: 6(float) FAdd 1123 1121 - 1125: 30(ptr) AccessChain 1082(m) 377 402 - Store 1125 1124 - 1126: 30(ptr) AccessChain 1082(m) 436 390 - 1127: 6(float) Load 1126 - 1128: 30(ptr) AccessChain 1088(tt) 393 - 1129: 6(float) Load 1128 - 1130: 6(float) FMul 1127 1129 - 1131: 30(ptr) AccessChain 1082(m) 377 390 - 1132: 6(float) Load 1131 - 1133: 6(float) FAdd 1132 1130 - 1134: 30(ptr) AccessChain 1082(m) 377 390 - Store 1134 1133 - 1135: 30(ptr) AccessChain 1082(m) 436 393 - 1136: 6(float) Load 1135 - 1137: 30(ptr) AccessChain 1088(tt) 393 - 1138: 6(float) Load 1137 - 1139: 6(float) FMul 1136 1138 - 1140: 30(ptr) AccessChain 1082(m) 377 393 - 1141: 6(float) Load 1140 - 1142: 6(float) FAdd 1141 1139 - 1143: 30(ptr) AccessChain 1082(m) 377 393 - Store 1143 1142 - 1144: 30(ptr) AccessChain 1082(m) 436 342 - 1145: 6(float) Load 1144 - 1146: 30(ptr) AccessChain 1088(tt) 393 - 1147: 6(float) Load 1146 - 1148: 6(float) FMul 1145 1147 - 1149: 30(ptr) AccessChain 1082(m) 377 342 - 1150: 6(float) Load 1149 - 1151: 6(float) FAdd 1150 1148 - 1152: 30(ptr) AccessChain 1082(m) 377 342 - Store 1152 1151 - 1153: 30(ptr) AccessChain 1082(m) 436 402 - 1154: 6(float) Load 1153 - 1155: 30(ptr) AccessChain 1088(tt) 393 - 1156: 6(float) Load 1155 - 1157: 6(float) FMul 1154 1156 - 1158: 30(ptr) AccessChain 1082(m) 377 402 - 1159: 6(float) Load 1158 - 1160: 6(float) FAdd 1159 1157 - 1161: 30(ptr) AccessChain 1082(m) 377 402 - Store 1161 1160 - 1162: 30(ptr) AccessChain 1082(m) 337 390 - 1163: 6(float) Load 1162 - 1164: 30(ptr) AccessChain 1088(tt) 342 - 1165: 6(float) Load 1164 - 1166: 6(float) FMul 1163 1165 - 1167: 30(ptr) AccessChain 1082(m) 377 390 - 1168: 6(float) Load 1167 - 1169: 6(float) FAdd 1168 1166 - 1170: 30(ptr) AccessChain 1082(m) 377 390 - Store 1170 1169 - 1171: 30(ptr) AccessChain 1082(m) 337 393 - 1172: 6(float) Load 1171 - 1173: 30(ptr) AccessChain 1088(tt) 342 - 1174: 6(float) Load 1173 - 1175: 6(float) FMul 1172 1174 - 1176: 30(ptr) AccessChain 1082(m) 377 393 - 1177: 6(float) Load 1176 - 1178: 6(float) FAdd 1177 1175 - 1179: 30(ptr) AccessChain 1082(m) 377 393 - Store 1179 1178 - 1180: 30(ptr) AccessChain 1082(m) 337 342 - 1181: 6(float) Load 1180 - 1182: 30(ptr) AccessChain 1088(tt) 342 - 1183: 6(float) Load 1182 - 1184: 6(float) FMul 1181 1183 - 1185: 30(ptr) AccessChain 1082(m) 377 342 - 1186: 6(float) Load 1185 - 1187: 6(float) FAdd 1186 1184 - 1188: 30(ptr) AccessChain 1082(m) 377 342 - Store 1188 1187 - 1189: 30(ptr) AccessChain 1082(m) 337 402 - 1190: 6(float) Load 1189 - 1191: 30(ptr) AccessChain 1088(tt) 342 - 1192: 6(float) Load 1191 - 1193: 6(float) FMul 1190 1192 - 1194: 30(ptr) AccessChain 1082(m) 377 402 - 1195: 6(float) Load 1194 - 1196: 6(float) FAdd 1195 1193 - 1197: 30(ptr) AccessChain 1082(m) 377 402 - Store 1197 1196 - 1198: 304 Load 1082(m) - ReturnValue 1198 - FunctionEnd -310(TDInstanceMat3(i1;): 287 Function None 288 - 309(id): 29(ptr) FunctionParameter - 311: Label - 1201(m): 1028(ptr) Variable Function - Store 1201(m) 1031 - 1202: 287 Load 1201(m) - ReturnValue 1202 - FunctionEnd -313(TDInstanceMat3ForNorm(i1;): 287 Function None 288 - 312(id): 29(ptr) FunctionParameter - 314: Label - 1205(m): 1028(ptr) Variable Function - 1206(param): 29(ptr) Variable Function - 1207: 28(int) Load 312(id) - Store 1206(param) 1207 - 1208: 287 FunctionCall 310(TDInstanceMat3(i1;) 1206(param) - Store 1205(m) 1208 - 1209: 287 Load 1205(m) - ReturnValue 1209 - FunctionEnd -318(TDInstanceColor(i1;vf4;): 7(fvec4) Function None 315 - 316(index): 29(ptr) FunctionParameter - 317(curColor): 8(ptr) FunctionParameter - 319: Label - 1216(coord): 29(ptr) Variable Function - 1218(samp): 8(ptr) Variable Function - 1224(v): 8(ptr) Variable Function - 1212: 950(ptr) AccessChain 376 381 - 1213: 28(int) Load 1212 - 1214: 28(int) Load 316(index) - 1215: 28(int) ISub 1214 1213 - Store 316(index) 1215 - 1217: 28(int) Load 316(index) - Store 1216(coord) 1217 - 1220: 929 Load 1219(sTDInstanceColor) - 1221: 28(int) Load 1216(coord) - 1222: 928 Image 1220 - 1223: 7(fvec4) ImageFetch 1222 1221 - Store 1218(samp) 1223 - 1225: 30(ptr) AccessChain 1218(samp) 390 - 1226: 6(float) Load 1225 - 1227: 30(ptr) AccessChain 1224(v) 390 - Store 1227 1226 - 1228: 30(ptr) AccessChain 1218(samp) 393 - 1229: 6(float) Load 1228 - 1230: 30(ptr) AccessChain 1224(v) 393 - Store 1230 1229 - 1231: 30(ptr) AccessChain 1218(samp) 342 - 1232: 6(float) Load 1231 - 1233: 30(ptr) AccessChain 1224(v) 342 - Store 1233 1232 - 1234: 30(ptr) AccessChain 1224(v) 402 - Store 1234 489 - 1235: 30(ptr) AccessChain 1224(v) 390 - 1236: 6(float) Load 1235 - 1237: 30(ptr) AccessChain 317(curColor) 390 - Store 1237 1236 - 1238: 30(ptr) AccessChain 1224(v) 393 - 1239: 6(float) Load 1238 - 1240: 30(ptr) AccessChain 317(curColor) 393 - Store 1240 1239 - 1241: 30(ptr) AccessChain 1224(v) 342 - 1242: 6(float) Load 1241 - 1243: 30(ptr) AccessChain 317(curColor) 342 - Store 1243 1242 - 1244: 7(fvec4) Load 317(curColor) - ReturnValue 1244 - FunctionEnd -321(TDOutputSwizzle(vf4;): 7(fvec4) Function None 9 - 320(c): 8(ptr) FunctionParameter - 322: Label - 1247: 7(fvec4) Load 320(c) - ReturnValue 1247 - FunctionEnd -327(TDOutputSwizzle(vu4;): 323(ivec4) Function None 325 - 326(c): 324(ptr) FunctionParameter - 328: Label - 1250: 323(ivec4) Load 326(c) - ReturnValue 1250 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/vk.relaxed.stagelink.vert.out b/deps/glslang/Test/baseResults/vk.relaxed.stagelink.vert.out deleted file mode 100644 index b9173f24..00000000 --- a/deps/glslang/Test/baseResults/vk.relaxed.stagelink.vert.out +++ /dev/null @@ -1,729 +0,0 @@ -vk.relaxed.stagelink.vert -Shader version: 460 -0:? Sequence -0:18 Function Definition: foo( ( global highp 4-component vector of float) -0:18 Function Parameters: -0:19 Sequence -0:19 Sequence -0:19 move second child to first child ( temp highp uint) -0:19 'j' ( temp highp uint) -0:19 add ( temp highp uint) -0:19 AtomicAdd ( global highp uint) -0:19 counter2: direct index for structure ( coherent volatile buffer highp uint) -0:19 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3, coherent volatile buffer highp uint counter2}) -0:19 Constant: -0:19 1 (const uint) -0:19 Constant: -0:19 1 (const uint) -0:19 subtract ( temp highp uint) -0:19 AtomicAdd ( global highp uint) -0:19 counter3: direct index for structure ( coherent volatile buffer highp uint) -0:19 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3, coherent volatile buffer highp uint counter2}) -0:19 Constant: -0:19 0 (const uint) -0:19 Constant: -0:19 4294967295 (const uint) -0:19 Constant: -0:19 1 (const uint) -0:20 Sequence -0:20 move second child to first child ( temp highp 4-component vector of float) -0:20 'v' ( temp highp 4-component vector of float) -0:20 add ( temp highp 4-component vector of float) -0:20 add ( temp highp 4-component vector of float) -0:20 add ( temp highp 4-component vector of float) -0:20 a: direct index for structure ( uniform highp 4-component vector of float) -0:20 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s}) -0:20 Constant: -0:20 0 (const uint) -0:20 Construct vec4 ( temp highp 4-component vector of float) -0:20 direct index ( temp highp float) -0:20 b1: direct index for structure ( uniform highp 2-component vector of float) -0:20 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s}) -0:20 Constant: -0:20 2 (const uint) -0:20 Constant: -0:20 0 (const int) -0:20 direct index ( temp highp float) -0:20 b1: direct index for structure ( uniform highp 2-component vector of float) -0:20 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s}) -0:20 Constant: -0:20 2 (const uint) -0:20 Constant: -0:20 1 (const int) -0:20 direct index ( temp highp float) -0:20 b2: direct index for structure ( uniform highp 2-component vector of float) -0:20 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s}) -0:20 Constant: -0:20 1 (const uint) -0:20 Constant: -0:20 0 (const int) -0:20 direct index ( temp highp float) -0:20 b2: direct index for structure ( uniform highp 2-component vector of float) -0:20 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s}) -0:20 Constant: -0:20 1 (const uint) -0:20 Constant: -0:20 1 (const int) -0:20 c2: direct index for structure ( uniform highp 4-component vector of float) -0:20 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s}) -0:20 Constant: -0:20 3 (const uint) -0:20 d: direct index for structure ( uniform highp 4-component vector of float) -0:20 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s}) -0:20 Constant: -0:20 4 (const uint) -0:22 Branch: Return with expression -0:22 vector-scale ( temp highp 4-component vector of float) -0:22 Convert uint to float ( temp highp float) -0:22 'j' ( temp highp uint) -0:22 'v' ( temp highp 4-component vector of float) -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 4-component vector of float) -0:27 'v' ( temp highp 4-component vector of float) -0:27 Function Call: foo( ( global highp 4-component vector of float) -0:28 move second child to first child ( temp highp 4-component vector of float) -0:28 'v' ( temp highp 4-component vector of float) -0:28 add ( temp highp 4-component vector of float) -0:28 'v' ( temp highp 4-component vector of float) -0:28 indirect index ( temp highp 4-component vector of float) -0:28 s: direct index for structure ( uniform 4-element array of highp 4-component vector of float) -0:28 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s}) -0:28 Constant: -0:28 5 (const uint) -0:28 subtract ( temp int) -0:28 'gl_VertexIndex' ( in int VertexIndex) -0:28 'gl_VertexIndex' ( in int VertexIndex) -0:29 move second child to first child ( temp highp float) -0:29 direct index ( temp highp float) -0:29 'v' ( temp highp 4-component vector of float) -0:29 Constant: -0:29 0 (const int) -0:29 subtract ( temp highp float) -0:29 direct index ( temp highp float) -0:29 'v' ( temp highp 4-component vector of float) -0:29 Constant: -0:29 0 (const int) -0:29 Convert int to float ( temp highp float) -0:29 subtract ( temp highp int) -0:29 'gl_InstanceIndex' ( in highp int InstanceIndex) -0:29 'gl_InstanceIndex' ( in highp int InstanceIndex) -0:30 move second child to first child ( temp highp 4-component vector of float) -0:30 'io' (layout( location=0) smooth out highp 4-component vector of float) -0:30 'v' ( temp highp 4-component vector of float) -0:? Linker Objects -0:? 'io' (layout( location=0) smooth out highp 4-component vector of float) -0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s}) -0:? 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3, coherent volatile buffer highp uint counter2}) -0:? 'gl_VertexIndex' ( in int VertexIndex) -0:? 'gl_InstanceIndex' ( in int InstanceIndex) - -vk.relaxed.stagelink.frag -Shader version: 460 -gl_FragCoord origin is upper left -0:? Sequence -0:19 Function Definition: foo( ( global highp 4-component vector of float) -0:19 Function Parameters: -0:20 Sequence -0:20 Sequence -0:20 move second child to first child ( temp highp uint) -0:20 'j' ( temp highp uint) -0:20 add ( temp highp uint) -0:20 AtomicAdd ( global highp uint) -0:20 counter1: direct index for structure ( coherent volatile buffer highp uint) -0:20 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) -0:20 Constant: -0:20 0 (const uint) -0:20 Constant: -0:20 1 (const uint) -0:20 subtract ( temp highp uint) -0:20 AtomicAdd ( global highp uint) -0:20 counter2: direct index for structure ( coherent volatile buffer highp uint) -0:20 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) -0:20 Constant: -0:20 1 (const uint) -0:20 Constant: -0:20 4294967295 (const uint) -0:20 Constant: -0:20 1 (const uint) -0:21 Sequence -0:21 move second child to first child ( temp highp 4-component vector of float) -0:21 'v' ( temp highp 4-component vector of float) -0:21 add ( temp highp 4-component vector of float) -0:21 add ( temp highp 4-component vector of float) -0:21 add ( temp highp 4-component vector of float) -0:21 a: direct index for structure ( uniform highp 4-component vector of float) -0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d}) -0:21 Constant: -0:21 0 (const uint) -0:21 Construct vec4 ( temp highp 4-component vector of float) -0:21 direct index ( temp highp float) -0:21 b1: direct index for structure ( uniform highp 2-component vector of float) -0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d}) -0:21 Constant: -0:21 1 (const uint) -0:21 Constant: -0:21 0 (const int) -0:21 direct index ( temp highp float) -0:21 b1: direct index for structure ( uniform highp 2-component vector of float) -0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d}) -0:21 Constant: -0:21 1 (const uint) -0:21 Constant: -0:21 1 (const int) -0:21 direct index ( temp highp float) -0:21 b2: direct index for structure ( uniform highp 2-component vector of float) -0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d}) -0:21 Constant: -0:21 2 (const uint) -0:21 Constant: -0:21 0 (const int) -0:21 direct index ( temp highp float) -0:21 b2: direct index for structure ( uniform highp 2-component vector of float) -0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d}) -0:21 Constant: -0:21 2 (const uint) -0:21 Constant: -0:21 1 (const int) -0:21 c1: direct index for structure ( uniform highp 4-component vector of float) -0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d}) -0:21 Constant: -0:21 3 (const uint) -0:21 d: direct index for structure ( uniform highp 4-component vector of float) -0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d}) -0:21 Constant: -0:21 4 (const uint) -0:23 Branch: Return with expression -0:23 vector-scale ( temp highp 4-component vector of float) -0:23 Convert uint to float ( temp highp float) -0:23 'j' ( temp highp uint) -0:23 'v' ( temp highp 4-component vector of float) -0:26 Function Definition: main( ( global void) -0:26 Function Parameters: -0:27 Sequence -0:27 move second child to first child ( temp highp 4-component vector of float) -0:27 'o' ( out highp 4-component vector of float) -0:27 add ( temp highp 4-component vector of float) -0:27 'io' (layout( location=0) smooth in highp 4-component vector of float) -0:27 Function Call: foo( ( global highp 4-component vector of float) -0:? Linker Objects -0:? 'io' (layout( location=0) smooth in highp 4-component vector of float) -0:? 'o' ( out highp 4-component vector of float) -0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d}) -0:? 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) - - -Linked vertex stage: - - -Linked fragment stage: - - -Shader version: 460 -0:? Sequence -0:18 Function Definition: foo( ( global highp 4-component vector of float) -0:18 Function Parameters: -0:19 Sequence -0:19 Sequence -0:19 move second child to first child ( temp highp uint) -0:19 'j' ( temp highp uint) -0:19 add ( temp highp uint) -0:19 AtomicAdd ( global highp uint) -0:19 counter2: direct index for structure ( coherent volatile buffer highp uint) -0:19 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3, coherent volatile buffer highp uint counter2}) -0:19 Constant: -0:19 1 (const uint) -0:19 Constant: -0:19 1 (const uint) -0:19 subtract ( temp highp uint) -0:19 AtomicAdd ( global highp uint) -0:19 counter3: direct index for structure ( coherent volatile buffer highp uint) -0:19 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3, coherent volatile buffer highp uint counter2}) -0:19 Constant: -0:19 0 (const uint) -0:19 Constant: -0:19 4294967295 (const uint) -0:19 Constant: -0:19 1 (const uint) -0:20 Sequence -0:20 move second child to first child ( temp highp 4-component vector of float) -0:20 'v' ( temp highp 4-component vector of float) -0:20 add ( temp highp 4-component vector of float) -0:20 add ( temp highp 4-component vector of float) -0:20 add ( temp highp 4-component vector of float) -0:20 a: direct index for structure ( uniform highp 4-component vector of float) -0:20 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s}) -0:20 Constant: -0:20 0 (const uint) -0:20 Construct vec4 ( temp highp 4-component vector of float) -0:20 direct index ( temp highp float) -0:20 b1: direct index for structure ( uniform highp 2-component vector of float) -0:20 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s}) -0:20 Constant: -0:20 2 (const uint) -0:20 Constant: -0:20 0 (const int) -0:20 direct index ( temp highp float) -0:20 b1: direct index for structure ( uniform highp 2-component vector of float) -0:20 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s}) -0:20 Constant: -0:20 2 (const uint) -0:20 Constant: -0:20 1 (const int) -0:20 direct index ( temp highp float) -0:20 b2: direct index for structure ( uniform highp 2-component vector of float) -0:20 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s}) -0:20 Constant: -0:20 1 (const uint) -0:20 Constant: -0:20 0 (const int) -0:20 direct index ( temp highp float) -0:20 b2: direct index for structure ( uniform highp 2-component vector of float) -0:20 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s}) -0:20 Constant: -0:20 1 (const uint) -0:20 Constant: -0:20 1 (const int) -0:20 c2: direct index for structure ( uniform highp 4-component vector of float) -0:20 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s}) -0:20 Constant: -0:20 3 (const uint) -0:20 d: direct index for structure ( uniform highp 4-component vector of float) -0:20 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s}) -0:20 Constant: -0:20 4 (const uint) -0:22 Branch: Return with expression -0:22 vector-scale ( temp highp 4-component vector of float) -0:22 Convert uint to float ( temp highp float) -0:22 'j' ( temp highp uint) -0:22 'v' ( temp highp 4-component vector of float) -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 4-component vector of float) -0:27 'v' ( temp highp 4-component vector of float) -0:27 Function Call: foo( ( global highp 4-component vector of float) -0:28 move second child to first child ( temp highp 4-component vector of float) -0:28 'v' ( temp highp 4-component vector of float) -0:28 add ( temp highp 4-component vector of float) -0:28 'v' ( temp highp 4-component vector of float) -0:28 indirect index ( temp highp 4-component vector of float) -0:28 s: direct index for structure ( uniform 4-element array of highp 4-component vector of float) -0:28 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s}) -0:28 Constant: -0:28 5 (const uint) -0:28 subtract ( temp int) -0:28 'gl_VertexIndex' ( in int VertexIndex) -0:28 'gl_VertexIndex' ( in int VertexIndex) -0:29 move second child to first child ( temp highp float) -0:29 direct index ( temp highp float) -0:29 'v' ( temp highp 4-component vector of float) -0:29 Constant: -0:29 0 (const int) -0:29 subtract ( temp highp float) -0:29 direct index ( temp highp float) -0:29 'v' ( temp highp 4-component vector of float) -0:29 Constant: -0:29 0 (const int) -0:29 Convert int to float ( temp highp float) -0:29 subtract ( temp highp int) -0:29 'gl_InstanceIndex' ( in highp int InstanceIndex) -0:29 'gl_InstanceIndex' ( in highp int InstanceIndex) -0:30 move second child to first child ( temp highp 4-component vector of float) -0:30 'io' (layout( location=0) smooth out highp 4-component vector of float) -0:30 'v' ( temp highp 4-component vector of float) -0:? Linker Objects -0:? 'io' (layout( location=0) smooth out highp 4-component vector of float) -0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s}) -0:? 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3, coherent volatile buffer highp uint counter2}) -0:? 'gl_VertexIndex' ( in int VertexIndex) -0:? 'gl_InstanceIndex' ( in int InstanceIndex) -Shader version: 460 -gl_FragCoord origin is upper left -0:? Sequence -0:19 Function Definition: foo( ( global highp 4-component vector of float) -0:19 Function Parameters: -0:20 Sequence -0:20 Sequence -0:20 move second child to first child ( temp highp uint) -0:20 'j' ( temp highp uint) -0:20 add ( temp highp uint) -0:20 AtomicAdd ( global highp uint) -0:20 counter1: direct index for structure ( coherent volatile buffer highp uint) -0:20 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) -0:20 Constant: -0:20 0 (const uint) -0:20 Constant: -0:20 1 (const uint) -0:20 subtract ( temp highp uint) -0:20 AtomicAdd ( global highp uint) -0:20 counter2: direct index for structure ( coherent volatile buffer highp uint) -0:20 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) -0:20 Constant: -0:20 1 (const uint) -0:20 Constant: -0:20 4294967295 (const uint) -0:20 Constant: -0:20 1 (const uint) -0:21 Sequence -0:21 move second child to first child ( temp highp 4-component vector of float) -0:21 'v' ( temp highp 4-component vector of float) -0:21 add ( temp highp 4-component vector of float) -0:21 add ( temp highp 4-component vector of float) -0:21 add ( temp highp 4-component vector of float) -0:21 a: direct index for structure ( uniform highp 4-component vector of float) -0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d}) -0:21 Constant: -0:21 0 (const uint) -0:21 Construct vec4 ( temp highp 4-component vector of float) -0:21 direct index ( temp highp float) -0:21 b1: direct index for structure ( uniform highp 2-component vector of float) -0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d}) -0:21 Constant: -0:21 1 (const uint) -0:21 Constant: -0:21 0 (const int) -0:21 direct index ( temp highp float) -0:21 b1: direct index for structure ( uniform highp 2-component vector of float) -0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d}) -0:21 Constant: -0:21 1 (const uint) -0:21 Constant: -0:21 1 (const int) -0:21 direct index ( temp highp float) -0:21 b2: direct index for structure ( uniform highp 2-component vector of float) -0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d}) -0:21 Constant: -0:21 2 (const uint) -0:21 Constant: -0:21 0 (const int) -0:21 direct index ( temp highp float) -0:21 b2: direct index for structure ( uniform highp 2-component vector of float) -0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d}) -0:21 Constant: -0:21 2 (const uint) -0:21 Constant: -0:21 1 (const int) -0:21 c1: direct index for structure ( uniform highp 4-component vector of float) -0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d}) -0:21 Constant: -0:21 3 (const uint) -0:21 d: direct index for structure ( uniform highp 4-component vector of float) -0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d}) -0:21 Constant: -0:21 4 (const uint) -0:23 Branch: Return with expression -0:23 vector-scale ( temp highp 4-component vector of float) -0:23 Convert uint to float ( temp highp float) -0:23 'j' ( temp highp uint) -0:23 'v' ( temp highp 4-component vector of float) -0:26 Function Definition: main( ( global void) -0:26 Function Parameters: -0:27 Sequence -0:27 move second child to first child ( temp highp 4-component vector of float) -0:27 'o' ( out highp 4-component vector of float) -0:27 add ( temp highp 4-component vector of float) -0:27 'io' (layout( location=0) smooth in highp 4-component vector of float) -0:27 Function Call: foo( ( global highp 4-component vector of float) -0:? Linker Objects -0:? 'io' (layout( location=0) smooth in highp 4-component vector of float) -0:? 'o' ( out highp 4-component vector of float) -0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d}) -0:? 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2}) - -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 92 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 72 82 90 - Source GLSL 460 - Name 4 "main" - Name 9 "foo(" - Name 13 "j" - Name 14 "gl_AtomicCounterBlock_0" - MemberName 14(gl_AtomicCounterBlock_0) 0 "counter3" - MemberName 14(gl_AtomicCounterBlock_0) 1 "counter2" - MemberName 14(gl_AtomicCounterBlock_0) 2 "counter1" - Name 16 "" - Name 31 "v" - Name 35 "gl_DefaultUniformBlock" - MemberName 35(gl_DefaultUniformBlock) 0 "a" - MemberName 35(gl_DefaultUniformBlock) 1 "b2" - MemberName 35(gl_DefaultUniformBlock) 2 "b1" - MemberName 35(gl_DefaultUniformBlock) 3 "c2" - MemberName 35(gl_DefaultUniformBlock) 4 "d" - MemberName 35(gl_DefaultUniformBlock) 5 "s" - MemberName 35(gl_DefaultUniformBlock) 6 "c1" - Name 37 "" - Name 67 "v" - Name 72 "gl_VertexIndex" - Name 82 "gl_InstanceIndex" - Name 90 "io" - MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Coherent - MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Volatile - MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Coherent - MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Offset 0 - MemberDecorate 14(gl_AtomicCounterBlock_0) 1 Coherent - MemberDecorate 14(gl_AtomicCounterBlock_0) 1 Volatile - MemberDecorate 14(gl_AtomicCounterBlock_0) 1 Coherent - MemberDecorate 14(gl_AtomicCounterBlock_0) 1 Offset 4 - MemberDecorate 14(gl_AtomicCounterBlock_0) 2 Coherent - MemberDecorate 14(gl_AtomicCounterBlock_0) 2 Volatile - MemberDecorate 14(gl_AtomicCounterBlock_0) 2 Coherent - MemberDecorate 14(gl_AtomicCounterBlock_0) 2 Offset 8 - Decorate 14(gl_AtomicCounterBlock_0) BufferBlock - Decorate 16 DescriptorSet 0 - Decorate 16 Binding 1 - Decorate 34 ArrayStride 16 - MemberDecorate 35(gl_DefaultUniformBlock) 0 Offset 0 - MemberDecorate 35(gl_DefaultUniformBlock) 1 Offset 16 - MemberDecorate 35(gl_DefaultUniformBlock) 2 Offset 24 - MemberDecorate 35(gl_DefaultUniformBlock) 3 Offset 32 - MemberDecorate 35(gl_DefaultUniformBlock) 4 Offset 48 - MemberDecorate 35(gl_DefaultUniformBlock) 5 Offset 64 - MemberDecorate 35(gl_DefaultUniformBlock) 6 Offset 128 - Decorate 35(gl_DefaultUniformBlock) Block - Decorate 37 DescriptorSet 0 - Decorate 37 Binding 0 - Decorate 72(gl_VertexIndex) BuiltIn VertexIndex - Decorate 82(gl_InstanceIndex) BuiltIn InstanceIndex - Decorate 90(io) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 11: TypeInt 32 0 - 12: TypePointer Function 11(int) -14(gl_AtomicCounterBlock_0): TypeStruct 11(int) 11(int) 11(int) - 15: TypePointer Uniform 14(gl_AtomicCounterBlock_0) - 16: 15(ptr) Variable Uniform - 17: TypeInt 32 1 - 18: 17(int) Constant 1 - 19: TypePointer Uniform 11(int) - 21: 11(int) Constant 1 - 22: 11(int) Constant 0 - 24: 17(int) Constant 0 - 26: 11(int) Constant 4294967295 - 30: TypePointer Function 7(fvec4) - 32: TypeVector 6(float) 2 - 33: 11(int) Constant 4 - 34: TypeArray 7(fvec4) 33 -35(gl_DefaultUniformBlock): TypeStruct 7(fvec4) 32(fvec2) 32(fvec2) 7(fvec4) 7(fvec4) 34 7(fvec4) - 36: TypePointer Uniform 35(gl_DefaultUniformBlock) - 37: 36(ptr) Variable Uniform - 38: TypePointer Uniform 7(fvec4) - 41: 17(int) Constant 2 - 42: TypePointer Uniform 6(float) - 53: 17(int) Constant 3 - 57: 17(int) Constant 4 - 70: 17(int) Constant 5 - 71: TypePointer Input 17(int) -72(gl_VertexIndex): 71(ptr) Variable Input - 79: TypePointer Function 6(float) -82(gl_InstanceIndex): 71(ptr) Variable Input - 89: TypePointer Output 7(fvec4) - 90(io): 89(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 67(v): 30(ptr) Variable Function - 68: 7(fvec4) FunctionCall 9(foo() - Store 67(v) 68 - 69: 7(fvec4) Load 67(v) - 73: 17(int) Load 72(gl_VertexIndex) - 74: 17(int) Load 72(gl_VertexIndex) - 75: 17(int) ISub 73 74 - 76: 38(ptr) AccessChain 37 70 75 - 77: 7(fvec4) Load 76 - 78: 7(fvec4) FAdd 69 77 - Store 67(v) 78 - 80: 79(ptr) AccessChain 67(v) 22 - 81: 6(float) Load 80 - 83: 17(int) Load 82(gl_InstanceIndex) - 84: 17(int) Load 82(gl_InstanceIndex) - 85: 17(int) ISub 83 84 - 86: 6(float) ConvertSToF 85 - 87: 6(float) FSub 81 86 - 88: 79(ptr) AccessChain 67(v) 22 - Store 88 87 - 91: 7(fvec4) Load 67(v) - Store 90(io) 91 - Return - FunctionEnd - 9(foo(): 7(fvec4) Function None 8 - 10: Label - 13(j): 12(ptr) Variable Function - 31(v): 30(ptr) Variable Function - 20: 19(ptr) AccessChain 16 18 - 23: 11(int) AtomicIAdd 20 21 22 21 - 25: 19(ptr) AccessChain 16 24 - 27: 11(int) AtomicIAdd 25 21 22 26 - 28: 11(int) ISub 27 21 - 29: 11(int) IAdd 23 28 - Store 13(j) 29 - 39: 38(ptr) AccessChain 37 24 - 40: 7(fvec4) Load 39 - 43: 42(ptr) AccessChain 37 41 22 - 44: 6(float) Load 43 - 45: 42(ptr) AccessChain 37 41 21 - 46: 6(float) Load 45 - 47: 42(ptr) AccessChain 37 18 22 - 48: 6(float) Load 47 - 49: 42(ptr) AccessChain 37 18 21 - 50: 6(float) Load 49 - 51: 7(fvec4) CompositeConstruct 44 46 48 50 - 52: 7(fvec4) FAdd 40 51 - 54: 38(ptr) AccessChain 37 53 - 55: 7(fvec4) Load 54 - 56: 7(fvec4) FAdd 52 55 - 58: 38(ptr) AccessChain 37 57 - 59: 7(fvec4) Load 58 - 60: 7(fvec4) FAdd 56 59 - Store 31(v) 60 - 61: 11(int) Load 13(j) - 62: 6(float) ConvertUToF 61 - 63: 7(fvec4) Load 31(v) - 64: 7(fvec4) VectorTimesScalar 63 62 - ReturnValue 64 - FunctionEnd -// Module Version 10000 -// Generated by (magic number): 8000a -// Id's are bound by 74 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 68 70 - ExecutionMode 4 OriginUpperLeft - Source GLSL 460 - Name 4 "main" - Name 9 "foo(" - Name 13 "j" - Name 14 "gl_AtomicCounterBlock_0" - MemberName 14(gl_AtomicCounterBlock_0) 0 "counter3" - MemberName 14(gl_AtomicCounterBlock_0) 1 "counter2" - MemberName 14(gl_AtomicCounterBlock_0) 2 "counter1" - Name 16 "" - Name 31 "v" - Name 35 "gl_DefaultUniformBlock" - MemberName 35(gl_DefaultUniformBlock) 0 "a" - MemberName 35(gl_DefaultUniformBlock) 1 "b2" - MemberName 35(gl_DefaultUniformBlock) 2 "b1" - MemberName 35(gl_DefaultUniformBlock) 3 "c2" - MemberName 35(gl_DefaultUniformBlock) 4 "d" - MemberName 35(gl_DefaultUniformBlock) 5 "s" - MemberName 35(gl_DefaultUniformBlock) 6 "c1" - Name 37 "" - Name 68 "o" - Name 70 "io" - MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Coherent - MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Volatile - MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Coherent - MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Offset 0 - MemberDecorate 14(gl_AtomicCounterBlock_0) 1 Coherent - MemberDecorate 14(gl_AtomicCounterBlock_0) 1 Volatile - MemberDecorate 14(gl_AtomicCounterBlock_0) 1 Coherent - MemberDecorate 14(gl_AtomicCounterBlock_0) 1 Offset 4 - MemberDecorate 14(gl_AtomicCounterBlock_0) 2 Coherent - MemberDecorate 14(gl_AtomicCounterBlock_0) 2 Volatile - MemberDecorate 14(gl_AtomicCounterBlock_0) 2 Coherent - MemberDecorate 14(gl_AtomicCounterBlock_0) 2 Offset 8 - Decorate 14(gl_AtomicCounterBlock_0) BufferBlock - Decorate 16 DescriptorSet 0 - Decorate 16 Binding 1 - Decorate 34 ArrayStride 16 - MemberDecorate 35(gl_DefaultUniformBlock) 0 Offset 0 - MemberDecorate 35(gl_DefaultUniformBlock) 1 Offset 16 - MemberDecorate 35(gl_DefaultUniformBlock) 2 Offset 24 - MemberDecorate 35(gl_DefaultUniformBlock) 3 Offset 32 - MemberDecorate 35(gl_DefaultUniformBlock) 4 Offset 48 - MemberDecorate 35(gl_DefaultUniformBlock) 5 Offset 64 - MemberDecorate 35(gl_DefaultUniformBlock) 6 Offset 128 - Decorate 35(gl_DefaultUniformBlock) Block - Decorate 37 DescriptorSet 0 - Decorate 37 Binding 0 - Decorate 68(o) Location 0 - Decorate 70(io) Location 0 - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 11: TypeInt 32 0 - 12: TypePointer Function 11(int) -14(gl_AtomicCounterBlock_0): TypeStruct 11(int) 11(int) 11(int) - 15: TypePointer Uniform 14(gl_AtomicCounterBlock_0) - 16: 15(ptr) Variable Uniform - 17: TypeInt 32 1 - 18: 17(int) Constant 2 - 19: TypePointer Uniform 11(int) - 21: 11(int) Constant 1 - 22: 11(int) Constant 0 - 24: 17(int) Constant 1 - 26: 11(int) Constant 4294967295 - 30: TypePointer Function 7(fvec4) - 32: TypeVector 6(float) 2 - 33: 11(int) Constant 4 - 34: TypeArray 7(fvec4) 33 -35(gl_DefaultUniformBlock): TypeStruct 7(fvec4) 32(fvec2) 32(fvec2) 7(fvec4) 7(fvec4) 34 7(fvec4) - 36: TypePointer Uniform 35(gl_DefaultUniformBlock) - 37: 36(ptr) Variable Uniform - 38: 17(int) Constant 0 - 39: TypePointer Uniform 7(fvec4) - 42: TypePointer Uniform 6(float) - 53: 17(int) Constant 6 - 57: 17(int) Constant 4 - 67: TypePointer Output 7(fvec4) - 68(o): 67(ptr) Variable Output - 69: TypePointer Input 7(fvec4) - 70(io): 69(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 71: 7(fvec4) Load 70(io) - 72: 7(fvec4) FunctionCall 9(foo() - 73: 7(fvec4) FAdd 71 72 - Store 68(o) 73 - Return - FunctionEnd - 9(foo(): 7(fvec4) Function None 8 - 10: Label - 13(j): 12(ptr) Variable Function - 31(v): 30(ptr) Variable Function - 20: 19(ptr) AccessChain 16 18 - 23: 11(int) AtomicIAdd 20 21 22 21 - 25: 19(ptr) AccessChain 16 24 - 27: 11(int) AtomicIAdd 25 21 22 26 - 28: 11(int) ISub 27 21 - 29: 11(int) IAdd 23 28 - Store 13(j) 29 - 40: 39(ptr) AccessChain 37 38 - 41: 7(fvec4) Load 40 - 43: 42(ptr) AccessChain 37 18 22 - 44: 6(float) Load 43 - 45: 42(ptr) AccessChain 37 18 21 - 46: 6(float) Load 45 - 47: 42(ptr) AccessChain 37 24 22 - 48: 6(float) Load 47 - 49: 42(ptr) AccessChain 37 24 21 - 50: 6(float) Load 49 - 51: 7(fvec4) CompositeConstruct 44 46 48 50 - 52: 7(fvec4) FAdd 41 51 - 54: 39(ptr) AccessChain 37 53 - 55: 7(fvec4) Load 54 - 56: 7(fvec4) FAdd 52 55 - 58: 39(ptr) AccessChain 37 57 - 59: 7(fvec4) Load 58 - 60: 7(fvec4) FAdd 56 59 - Store 31(v) 60 - 61: 11(int) Load 13(j) - 62: 6(float) ConvertUToF 61 - 63: 7(fvec4) Load 31(v) - 64: 7(fvec4) VectorTimesScalar 63 62 - ReturnValue 64 - FunctionEnd diff --git a/deps/glslang/Test/baseResults/voidFunction.frag.out b/deps/glslang/Test/baseResults/voidFunction.frag.out deleted file mode 100644 index a38509f8..00000000 --- a/deps/glslang/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/Test/baseResults/vulkan.ast.vert.out b/deps/glslang/Test/baseResults/vulkan.ast.vert.out deleted file mode 100644 index 68e892b4..00000000 --- a/deps/glslang/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 highp float) -0:15 'sci2' ( specialization-constant const highp int) -0:15 2 (const int) -0:17 Convert float to int ( temp highp 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 highp 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 highp 2-component vector of int) -0:38 Construct ivec2 ( specialization-constant const highp 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 highp 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 ( specialization-constant const highp 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 highp 2-component vector of float) -0:41 Construct vec2 ( specialization-constant const highp 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 ( specialization-constant const highp 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 highp float) -0:15 'sci2' ( specialization-constant const highp int) -0:15 2 (const int) -0:17 Convert float to int ( temp highp 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 highp 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 highp 2-component vector of int) -0:38 Construct ivec2 ( specialization-constant const highp 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 highp 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 ( specialization-constant const highp 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 highp 2-component vector of float) -0:41 Construct vec2 ( specialization-constant const highp 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 ( specialization-constant const highp 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): 8000a -// 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 - 45: 44(fvec2) SpecConstantComposite 7(scf1) 7(scf1) - 46: 44(fvec2) SpecConstantComposite 7(scf1) 7(scf1) - 47: 44(fvec2) SpecConstantComposite 7(scf1) 7(scf1) - 48: TypeArray 44(fvec2) 41 - 4(main): 2 Function None 3 - 5: Label - 10: 8(bool) FUnordNotEqual 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) FUnordNotEqual 7(scf1) 7(scf1) - 43: 42 CompositeConstruct 39 40 - 49: 48 CompositeConstruct 46 47 - Return - FunctionEnd diff --git a/deps/glslang/Test/baseResults/vulkan.comp.out b/deps/glslang/Test/baseResults/vulkan.comp.out deleted file mode 100644 index 3edb619d..00000000 --- a/deps/glslang/Test/baseResults/vulkan.comp.out +++ /dev/null @@ -1,17 +0,0 @@ -vulkan.comp -ERROR: 0:5: 'local_size' : cannot change previously set size -ERROR: 0:10: 'empty { } initializer' : not supported for this version or the enabled extensions -ERROR: 0:15: 'empty { } initializer' : not supported for this version or the enabled extensions -ERROR: 0:15: 'initialization with shared qualifier' : not supported for this version or the enabled extensions -ERROR: 0:16: 'empty { } initializer' : not supported for this version or the enabled extensions -ERROR: 0:26: '{}' : null initializers can't size unsized arrays -ERROR: 0:31: 'structure' : non-uniform struct contains a sampler or image: sampVar -ERROR: 0:31: '{}' : null initializers can't be used on opaque values -ERROR: 0:33: 'atomic counter types' : not allowed when using GLSL for Vulkan -ERROR: 0:33: 'atomic_uint' : atomic_uints can only be used in uniform variables or function parameters: a -ERROR: 0:33: '{}' : null initializers can't be used on opaque values -ERROR: 0:33: 'atomic_uint' : layout(binding=X) is required -ERROR: 12 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/vulkan.frag.out b/deps/glslang/Test/baseResults/vulkan.frag.out deleted file mode 100644 index 78aea821..00000000 --- a/deps/glslang/Test/baseResults/vulkan.frag.out +++ /dev/null @@ -1,64 +0,0 @@ -vulkan.frag -ERROR: 0:3: 'binding' : sampler/texture/image requires layout(binding=X) -ERROR: 0:4: 'binding' : sampler/texture/image requires layout(binding=X) -ERROR: 0:5: 'binding' : sampler/texture/image requires layout(binding=X) -ERROR: 0:6: 'binding' : sampler/texture/image requires layout(binding=X) -ERROR: 0:8: 'binding' : sampler/texture/image requires layout(binding=X) -ERROR: 0:9: 'binding' : sampler/texture/image requires layout(binding=X) -ERROR: 0:10: 'binding' : sampler/texture/image requires layout(binding=X) -ERROR: 0:14: 'sampler2D' : sampler-constructor requires two arguments -ERROR: 0:15: 'sampler2D' : sampler-constructor first argument must be a scalar *texture* type -ERROR: 0:16: 'sampler2D' : sampler-constructor first argument must be a scalar *texture* type -ERROR: 0:17: 'sampler2D' : sampler-constructor second argument must be a scalar sampler or samplerShadow -ERROR: 0:18: 'sampler2D' : sampler-constructor second argument must be a scalar sampler or samplerShadow -ERROR: 0:19: 'sampler2D' : sampler-constructor second argument must be a scalar sampler or samplerShadow -ERROR: 0:21: 'sampler3D' : sampler-constructor cannot make an array of samplers -ERROR: 0:22: 'sampler2D' : sampler-constructor first argument must be a scalar *texture* type -ERROR: 0:23: 'sampler2D' : sampler-constructor first argument must be a *texture* type matching the dimensionality and sampled type of the constructor -ERROR: 0:28: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: s2D -ERROR: 0:29: 'sampler3D' : sampler-constructor cannot make an array of samplers -ERROR: 0:29: 'sampler3D' : sampler/image types can only be used in uniform variables or function parameters: s3d -ERROR: 0:29: '=' : cannot convert from ' const float' to ' global 4-element array of highp sampler3D' -ERROR: 0:31: 'location' : SPIR-V requires location for user input/output -ERROR: 0:39: 'push_constant' : can only be used with a uniform -ERROR: 0:43: 'non-opaque uniforms outside a block' : not allowed when using GLSL for Vulkan -ERROR: 0:43: 'push_constant' : can only be used with a block -ERROR: 0:45: 'push_constant' : cannot declare a default, can only be used on a block -ERROR: 0:46: 'binding' : cannot be used with push_constant -ERROR: 0:49: 'push_constant' : Push constants blocks can't be an array -ERROR: 0:57: 'binding' : sampler/texture/image requires layout(binding=X) -ERROR: 0:58: 'binding' : sampler/texture/image requires layout(binding=X) -ERROR: 0:58: 'input_attachment_index' : can only be used with a subpass -ERROR: 0:59: 'binding' : sampler/texture/image requires layout(binding=X) -ERROR: 0:59: 'input_attachment_index' : can only be used with a subpass -ERROR: 0:60: 'binding' : sampler/texture/image requires layout(binding=X) -ERROR: 0:60: 'subpass' : requires an input_attachment_index layout qualifier -ERROR: 0:61: 'binding' : sampler/texture/image requires layout(binding=X) -ERROR: 0:66: 'subpassLoadMS' : no matching overloaded function found -ERROR: 0:67: 'subpassLoad' : no matching overloaded function found -ERROR: 0:69: 'subpassLoadMS' : no matching overloaded function found -ERROR: 0:72: 'subroutine' : not allowed when generating SPIR-V -ERROR: 0:72: 'subroutine' : feature not yet implemented -ERROR: 0:73: 'subroutine' : not allowed when generating SPIR-V -ERROR: 0:73: 'subroutine' : feature not yet implemented -ERROR: 0:75: 'non-opaque uniforms outside a block' : not allowed when using GLSL for Vulkan -ERROR: 0:79: 'texture' : no matching overloaded function found -ERROR: 0:80: 'imageStore' : no matching overloaded function found -WARNING: 0:88: '' : all default precisions are highp; use precision statements to quiet warning, e.g.: - "precision mediump int; precision highp float;" -ERROR: 0:97: 'call argument' : sampler constructor must appear at point of use -ERROR: 0:98: 'call argument' : sampler constructor must appear at point of use -ERROR: 0:99: ',' : sampler constructor must appear at point of use -ERROR: 0:100: ':' : 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:100: 'call argument' : sampler constructor must appear at point of use -ERROR: 0:102: 'gl_NumSamples' : undeclared identifier -ERROR: 0:107: 'noise1' : no matching overloaded function found -ERROR: 0:108: 'noise2' : no matching overloaded function found -ERROR: 0:109: 'noise3' : no matching overloaded function found -ERROR: 0:110: 'noise4' : no matching overloaded function found -ERROR: 55 compilation errors. No code generated. - - -ERROR: Linking fragment stage: Only one push_constant block is allowed per stage - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/vulkan.vert.out b/deps/glslang/Test/baseResults/vulkan.vert.out deleted file mode 100644 index 7ee611a0..00000000 --- a/deps/glslang/Test/baseResults/vulkan.vert.out +++ /dev/null @@ -1,59 +0,0 @@ -vulkan.vert -ERROR: 0:3: 'subpass input' : not supported in this stage: vertex -ERROR: 0:3: 'binding' : sampler/texture/image requires layout(binding=X) -ERROR: 0:4: 'subpass input' : not supported in this stage: vertex -ERROR: 0:4: 'binding' : sampler/texture/image requires layout(binding=X) -ERROR: 0:5: 'subpass input' : not supported in this stage: vertex -ERROR: 0:5: 'binding' : sampler/texture/image requires layout(binding=X) -ERROR: 0:6: 'subpass input' : not supported in this stage: vertex -ERROR: 0:6: 'binding' : sampler/texture/image requires layout(binding=X) -ERROR: 0:7: 'subpass input' : not supported in this stage: vertex -ERROR: 0:7: 'binding' : sampler/texture/image requires layout(binding=X) -ERROR: 0:8: 'subpass input' : not supported in this stage: vertex -ERROR: 0:8: 'binding' : sampler/texture/image requires layout(binding=X) -ERROR: 0:10: 'location' : SPIR-V requires location for user input/output -ERROR: 0:12: 'constant_id' : can only be applied to a scalar -ERROR: 0:13: 'constant_id' : specialization-constant id already used -ERROR: 0:13: 'binding' : sampler/texture/image requires layout(binding=X) -ERROR: 0:13: 'constant_id' : can only be applied to 'const'-qualified scalar -ERROR: 0:13: 'constant_id' : cannot be applied to this type -ERROR: 0:14: 'constant_id' : specialization-constant id is too large -ERROR: 0:15: 'constant_id' : can only be applied to a scalar -ERROR: 0:16: 'constant_id' : specialization-constant id already used -ERROR: 0:16: 'constant_id' : cannot declare a default, can only be used on a scalar -ERROR: 0:20: 'subpassLoad' : no matching overloaded function found -ERROR: 0:20: 'assign' : cannot convert from ' const float' to ' smooth out highp 4-component vector of float' -ERROR: 0:23: 'atomic counter types' : not allowed when using GLSL for Vulkan -ERROR: 0:24: 'shared' : not allowed when generating SPIR-V -ERROR: 0:25: 'packed' : not allowed when generating SPIR-V -ERROR: 0:32: 'initializer' : can't use with types containing arrays sized with a specialization constant -ERROR: 0:34: '=' : can't use with types containing arrays sized with a specialization constant -ERROR: 0:35: '==' : can't use with types containing arrays sized with a specialization constant -ERROR: 0:39: 'set' : cannot be used with push_constant -ERROR: 0: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: 0:68: 'location' : needs a literal integer -ERROR: 0:68: 'component' : needs a literal integer -ERROR: 0:69: 'binding' : needs a literal integer -ERROR: 0:69: 'set' : needs a literal integer -ERROR: 0:70: 'offset' : needs a literal integer -ERROR: 0:71: 'align' : must be a power of 2 -ERROR: 0:71: 'align' : needs a literal integer -ERROR: 0:72: 'xfb_offset' : needs a literal integer -ERROR: 0:73: 'xfb_buffer' : needs a literal integer -ERROR: 0:74: 'xfb_stride' : needs a literal integer -ERROR: 0:73: 'xfb_buffer' : member cannot contradict block (or what block inherited from global) -ERROR: 0:72: 'xfb layout qualifier' : can only be used on an output -ERROR: 0:73: 'xfb layout qualifier' : can only be used on an output -ERROR: 0:74: 'xfb layout qualifier' : can only be used on an output -ERROR: 0:76: 'input_attachment_index' : needs a literal integer -ERROR: 0:76: 'input_attachment_index' : can only be used with a subpass -ERROR: 0:77: 'constant_id' : needs a literal integer -ERROR: 0:77: 'constant_id' : can only be applied to 'const'-qualified scalar -ERROR: 0:77: 'constant_id' : can only be applied to a scalar -ERROR: 54 compilation errors. No code generated. - - -SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/Test/baseResults/web.array.frag.out b/deps/glslang/Test/baseResults/web.array.frag.out deleted file mode 100644 index 61c9db99..00000000 --- a/deps/glslang/Test/baseResults/web.array.frag.out +++ /dev/null @@ -1,102 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 74 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %colorOut - OpExecutionMode %main OriginUpperLeft - OpSource ESSL 310 - OpName %main "main" - OpName %foo_f1_5__ "foo(f1[5];" - OpName %a "a" - OpName %g4 "g4" - OpName %g5 "g5" - OpName %param "param" - OpName %u "u" - OpName %param_0 "param" - OpName %colorOut "colorOut" - OpDecorate %colorOut Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %uint = OpTypeInt 32 0 - %uint_5 = OpConstant %uint 5 -%_arr_float_uint_5 = OpTypeArray %float %uint_5 -%_ptr_Function__arr_float_uint_5 = OpTypePointer Function %_arr_float_uint_5 - %uint_4 = OpConstant %uint 4 -%_arr_float_uint_4 = OpTypeArray %float %uint_4 - %13 = OpTypeFunction %_arr_float_uint_4 %_ptr_Function__arr_float_uint_5 - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_Function_float = OpTypePointer Function %float - %int_1 = OpConstant %int 1 - %int_2 = OpConstant %int 2 - %int_3 = OpConstant %int 3 -%_ptr_Private__arr_float_uint_4 = OpTypePointer Private %_arr_float_uint_4 - %g4 = OpVariable %_ptr_Private__arr_float_uint_4 Private -%_ptr_Private__arr_float_uint_5 = OpTypePointer Private %_arr_float_uint_5 - %g5 = OpVariable %_ptr_Private__arr_float_uint_5 Private - %float_1 = OpConstant %float 1 - %float_2 = OpConstant %float 2 - %float_3 = OpConstant %float 3 - %float_4 = OpConstant %float 4 - %45 = OpConstantComposite %_arr_float_uint_4 %float_1 %float_2 %float_3 %float_4 - %bool = OpTypeBool - %v2float = OpTypeVector %float 2 -%_ptr_Output_v2float = OpTypePointer Output %v2float - %colorOut = OpVariable %_ptr_Output_v2float Output - %float_5 = OpConstant %float 5 - %73 = OpConstantComposite %v2float %float_4 %float_5 - %main = OpFunction %void None %3 - %5 = OpLabel - %param = OpVariable %_ptr_Function__arr_float_uint_5 Function - %u = OpVariable %_ptr_Function__arr_float_uint_5 Function - %param_0 = OpVariable %_ptr_Function__arr_float_uint_5 Function - %39 = OpLoad %_arr_float_uint_5 %g5 - OpStore %param %39 - %40 = OpFunctionCall %_arr_float_uint_4 %foo_f1_5__ %param - OpStore %g4 %40 - %46 = OpLoad %_arr_float_uint_4 %g4 - %48 = OpCompositeExtract %float %45 0 - %49 = OpCompositeExtract %float %46 0 - %50 = OpFOrdEqual %bool %48 %49 - %51 = OpCompositeExtract %float %45 1 - %52 = OpCompositeExtract %float %46 1 - %53 = OpFOrdEqual %bool %51 %52 - %54 = OpLogicalAnd %bool %50 %53 - %55 = OpCompositeExtract %float %45 2 - %56 = OpCompositeExtract %float %46 2 - %57 = OpFOrdEqual %bool %55 %56 - %58 = OpLogicalAnd %bool %54 %57 - %59 = OpCompositeExtract %float %45 3 - %60 = OpCompositeExtract %float %46 3 - %61 = OpFOrdEqual %bool %59 %60 - %62 = OpLogicalAnd %bool %58 %61 - OpSelectionMerge %64 None - OpBranchConditional %62 %63 %64 - %63 = OpLabel - OpBranch %64 - %64 = OpLabel - %67 = OpLoad %_arr_float_uint_5 %u - OpStore %param_0 %67 - %68 = OpFunctionCall %_arr_float_uint_4 %foo_f1_5__ %param_0 - OpStore %colorOut %73 - OpReturn - OpFunctionEnd - %foo_f1_5__ = OpFunction %_arr_float_uint_4 None %13 - %a = OpFunctionParameter %_ptr_Function__arr_float_uint_5 - %16 = OpLabel - %20 = OpAccessChain %_ptr_Function_float %a %int_0 - %21 = OpLoad %float %20 - %23 = OpAccessChain %_ptr_Function_float %a %int_1 - %24 = OpLoad %float %23 - %26 = OpAccessChain %_ptr_Function_float %a %int_2 - %27 = OpLoad %float %26 - %29 = OpAccessChain %_ptr_Function_float %a %int_3 - %30 = OpLoad %float %29 - %31 = OpCompositeConstruct %_arr_float_uint_4 %21 %24 %27 %30 - OpReturnValue %31 - OpFunctionEnd diff --git a/deps/glslang/Test/baseResults/web.basic.vert.out b/deps/glslang/Test/baseResults/web.basic.vert.out deleted file mode 100644 index 46c147fa..00000000 --- a/deps/glslang/Test/baseResults/web.basic.vert.out +++ /dev/null @@ -1,65 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 38 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %main "main" %outv4 %inv4 - OpSource ESSL 310 - OpName %main "main" - OpName %outv4 "outv4" - OpName %inv4 "inv4" - OpName %uBlock "uBlock" - OpMemberName %uBlock 0 "a" - OpMemberName %uBlock 1 "b" - OpMemberName %uBlock 2 "c" - OpName %uInst "uInst" - OpDecorate %outv4 Location 1 - OpDecorate %inv4 Location 2 - OpMemberDecorate %uBlock 0 Offset 0 - OpMemberDecorate %uBlock 1 Offset 16 - OpMemberDecorate %uBlock 2 Offset 32 - OpDecorate %uBlock Block - OpDecorate %uInst DescriptorSet 0 - OpDecorate %uInst Binding 3 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %outv4 = OpVariable %_ptr_Output_v4float Output -%_ptr_Input_v4float = OpTypePointer Input %v4float - %inv4 = OpVariable %_ptr_Input_v4float Input - %int = OpTypeInt 32 1 - %v4int = OpTypeVector %int 4 - %uint = OpTypeInt 32 0 - %v4uint = OpTypeVector %uint 4 - %uBlock = OpTypeStruct %v4float %v4int %v4uint -%_ptr_Uniform_uBlock = OpTypePointer Uniform %uBlock - %uInst = OpVariable %_ptr_Uniform_uBlock Uniform - %int_0 = OpConstant %int 0 -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float - %int_1 = OpConstant %int 1 -%_ptr_Uniform_v4int = OpTypePointer Uniform %v4int - %int_2 = OpConstant %int 2 -%_ptr_Uniform_v4uint = OpTypePointer Uniform %v4uint - %main = OpFunction %void None %3 - %5 = OpLabel - %12 = OpLoad %v4float %inv4 - %13 = OpExtInst %v4float %1 Normalize %12 - %23 = OpAccessChain %_ptr_Uniform_v4float %uInst %int_0 - %24 = OpLoad %v4float %23 - %25 = OpFMul %v4float %13 %24 - %28 = OpAccessChain %_ptr_Uniform_v4int %uInst %int_1 - %29 = OpLoad %v4int %28 - %30 = OpConvertSToF %v4float %29 - %31 = OpFMul %v4float %25 %30 - %34 = OpAccessChain %_ptr_Uniform_v4uint %uInst %int_2 - %35 = OpLoad %v4uint %34 - %36 = OpConvertUToF %v4float %35 - %37 = OpFMul %v4float %31 %36 - OpStore %outv4 %37 - OpReturn - OpFunctionEnd diff --git a/deps/glslang/Test/baseResults/web.builtins.frag.out b/deps/glslang/Test/baseResults/web.builtins.frag.out deleted file mode 100644 index ecf03047..00000000 --- a/deps/glslang/Test/baseResults/web.builtins.frag.out +++ /dev/null @@ -1,149 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 69 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %gl_FragCoord %gl_FragDepth %sc %s2 %sf %c1D %c2D %c4D %c3D %ic1D %ic3D %ic4D - OpExecutionMode %main OriginUpperLeft - OpExecutionMode %main DepthReplacing - OpSource ESSL 310 - OpName %main "main" - OpName %f "f" - OpName %gl_FragCoord "gl_FragCoord" - OpName %gl_FragDepth "gl_FragDepth" - OpName %sc "sc" - OpName %S2 "S2" - OpMemberName %S2 0 "c" - OpMemberName %S2 1 "f" - OpName %s2 "s2" - OpName %sf "sf" - OpName %c1D "c1D" - OpName %c2D "c2D" - OpName %c4D "c4D" - OpName %c3D "c3D" - OpName %ic1D "ic1D" - OpName %ic3D "ic3D" - OpName %ic4D "ic4D" - OpDecorate %f RelaxedPrecision - OpDecorate %gl_FragCoord BuiltIn FragCoord - OpDecorate %gl_FragDepth BuiltIn FragDepth - OpDecorate %19 RelaxedPrecision - OpDecorate %sc RelaxedPrecision - OpDecorate %sc Location 0 - OpMemberDecorate %S2 0 RelaxedPrecision - OpMemberDecorate %S2 1 RelaxedPrecision - OpDecorate %s2 Location 8 - OpDecorate %30 RelaxedPrecision - OpDecorate %sf RelaxedPrecision - OpDecorate %sf Location 1 - OpDecorate %34 RelaxedPrecision - OpDecorate %c1D RelaxedPrecision - OpDecorate %c1D Location 4 - OpDecorate %36 RelaxedPrecision - OpDecorate %37 RelaxedPrecision - OpDecorate %38 RelaxedPrecision - OpDecorate %39 RelaxedPrecision - OpDecorate %c2D RelaxedPrecision - OpDecorate %c2D Location 5 - OpDecorate %43 RelaxedPrecision - OpDecorate %44 RelaxedPrecision - OpDecorate %45 RelaxedPrecision - OpDecorate %46 RelaxedPrecision - OpDecorate %47 RelaxedPrecision - OpDecorate %c4D RelaxedPrecision - OpDecorate %c4D Location 7 - OpDecorate %49 RelaxedPrecision - OpDecorate %50 RelaxedPrecision - OpDecorate %51 RelaxedPrecision - OpDecorate %52 RelaxedPrecision - OpDecorate %53 RelaxedPrecision - OpDecorate %c3D RelaxedPrecision - OpDecorate %c3D Location 6 - OpDecorate %55 RelaxedPrecision - OpDecorate %56 RelaxedPrecision - OpDecorate %ic1D RelaxedPrecision - OpDecorate %ic1D Flat - OpDecorate %ic1D Location 1 - OpDecorate %ic3D RelaxedPrecision - OpDecorate %ic3D Flat - OpDecorate %ic3D Location 2 - OpDecorate %ic4D RelaxedPrecision - OpDecorate %ic4D Flat - OpDecorate %ic4D Location 3 - OpDecorate %68 RelaxedPrecision - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 -%_ptr_Function_float = OpTypePointer Function %float - %v4float = OpTypeVector %float 4 -%_ptr_Input_v4float = OpTypePointer Input %v4float -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input - %uint = OpTypeInt 32 0 - %uint_1 = OpConstant %uint 1 -%_ptr_Input_float = OpTypePointer Input %float -%_ptr_Output_float = OpTypePointer Output %float -%gl_FragDepth = OpVariable %_ptr_Output_float Output - %v3float = OpTypeVector %float 3 -%_ptr_Output_v3float = OpTypePointer Output %v3float - %sc = OpVariable %_ptr_Output_v3float Output - %S2 = OpTypeStruct %v3float %float -%_ptr_Input_S2 = OpTypePointer Input %S2 - %s2 = OpVariable %_ptr_Input_S2 Input - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_Input_v3float = OpTypePointer Input %v3float - %sf = OpVariable %_ptr_Output_float Output - %int_1 = OpConstant %int 1 - %c1D = OpVariable %_ptr_Input_float Input - %v2float = OpTypeVector %float 2 -%_ptr_Input_v2float = OpTypePointer Input %v2float - %c2D = OpVariable %_ptr_Input_v2float Input - %c4D = OpVariable %_ptr_Input_v4float Input - %c3D = OpVariable %_ptr_Input_v3float Input -%_ptr_Input_int = OpTypePointer Input %int - %ic1D = OpVariable %_ptr_Input_int Input - %v3int = OpTypeVector %int 3 -%_ptr_Input_v3int = OpTypePointer Input %v3int - %ic3D = OpVariable %_ptr_Input_v3int Input - %v4int = OpTypeVector %int 4 -%_ptr_Input_v4int = OpTypePointer Input %v4int - %ic4D = OpVariable %_ptr_Input_v4int Input - %v2int = OpTypeVector %int 2 - %int_2 = OpConstant %int 2 - %int_3 = OpConstant %int 3 - %68 = OpConstantComposite %v2int %int_2 %int_3 - %main = OpFunction %void None %3 - %5 = OpLabel - %f = OpVariable %_ptr_Function_float Function - %15 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_1 - %16 = OpLoad %float %15 - OpStore %f %16 - %19 = OpLoad %float %f - OpStore %gl_FragDepth %19 - %29 = OpAccessChain %_ptr_Input_v3float %s2 %int_0 - %30 = OpLoad %v3float %29 - OpStore %sc %30 - %33 = OpAccessChain %_ptr_Input_float %s2 %int_1 - %34 = OpLoad %float %33 - OpStore %sf %34 - %36 = OpLoad %float %c1D - %37 = OpExtInst %float %1 Sinh %36 - %38 = OpLoad %float %c1D - %39 = OpExtInst %float %1 Cosh %38 - %43 = OpLoad %v2float %c2D - %44 = OpExtInst %v2float %1 Tanh %43 - %45 = OpVectorTimesScalar %v2float %44 %39 - %46 = OpCompositeConstruct %v2float %37 %37 - %47 = OpFAdd %v2float %46 %45 - %49 = OpLoad %v4float %c4D - %50 = OpExtInst %v4float %1 Asinh %49 - %51 = OpLoad %v4float %c4D - %52 = OpExtInst %v4float %1 Acosh %51 - %53 = OpFAdd %v4float %50 %52 - %55 = OpLoad %v3float %c3D - %56 = OpExtInst %v3float %1 Atanh %55 - OpReturn - OpFunctionEnd diff --git a/deps/glslang/Test/baseResults/web.builtins.vert.out b/deps/glslang/Test/baseResults/web.builtins.vert.out deleted file mode 100644 index 597e7310..00000000 --- a/deps/glslang/Test/baseResults/web.builtins.vert.out +++ /dev/null @@ -1,62 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 33 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %main "main" %gl_Position %ps %gl_VertexIndex %gl_PointSize %gl_InstanceIndex - OpSource ESSL 310 - OpName %main "main" - OpName %gl_Position "gl_Position" - OpName %ps "ps" - OpName %gl_VertexIndex "gl_VertexIndex" - OpName %gl_PointSize "gl_PointSize" - OpName %gl_InstanceIndex "gl_InstanceIndex" - OpDecorate %gl_Position Invariant - OpDecorate %gl_Position BuiltIn Position - OpDecorate %ps RelaxedPrecision - OpDecorate %ps Location 0 - OpDecorate %12 RelaxedPrecision - OpDecorate %gl_VertexIndex BuiltIn VertexIndex - OpDecorate %gl_PointSize BuiltIn PointSize - OpDecorate %25 RelaxedPrecision - OpDecorate %gl_InstanceIndex BuiltIn InstanceIndex - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float -%gl_Position = OpVariable %_ptr_Output_v4float Output -%_ptr_Input_float = OpTypePointer Input %float - %ps = OpVariable %_ptr_Input_float Input - %int = OpTypeInt 32 1 - %int_4 = OpConstant %int 4 -%_ptr_Input_int = OpTypePointer Input %int -%gl_VertexIndex = OpVariable %_ptr_Input_int Input -%_ptr_Output_float = OpTypePointer Output %float -%gl_PointSize = OpVariable %_ptr_Output_float Output - %int_5 = OpConstant %int 5 -%gl_InstanceIndex = OpVariable %_ptr_Input_int Input - %main = OpFunction %void None %3 - %5 = OpLabel - %12 = OpLoad %float %ps - %13 = OpCompositeConstruct %v4float %12 %12 %12 %12 - OpStore %gl_Position %13 - %18 = OpLoad %int %gl_VertexIndex - %19 = OpISub %int %int_4 %18 - %20 = OpConvertSToF %float %19 - %21 = OpLoad %v4float %gl_Position - %22 = OpVectorTimesScalar %v4float %21 %20 - OpStore %gl_Position %22 - %25 = OpLoad %float %ps - OpStore %gl_PointSize %25 - %28 = OpLoad %int %gl_InstanceIndex - %29 = OpISub %int %int_5 %28 - %30 = OpConvertSToF %float %29 - %31 = OpLoad %float %gl_PointSize - %32 = OpFMul %float %31 %30 - OpStore %gl_PointSize %32 - OpReturn - OpFunctionEnd diff --git a/deps/glslang/Test/baseResults/web.comp.out b/deps/glslang/Test/baseResults/web.comp.out deleted file mode 100644 index d0a911e2..00000000 --- a/deps/glslang/Test/baseResults/web.comp.out +++ /dev/null @@ -1,157 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 108 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %gl_NumWorkGroups %gl_WorkGroupID %gl_LocalInvocationID %gl_GlobalInvocationID %gl_LocalInvocationIndex - OpExecutionMode %main LocalSize 2 5 7 - OpSource ESSL 310 - OpName %main "main" - OpName %bName "bName" - OpMemberName %bName 0 "size" - OpMemberName %bName 1 "count" - OpMemberName %bName 2 "data" - OpName %bInst "bInst" - OpName %s "s" - OpName %arrX "arrX" - OpName %arrY "arrY" - OpName %arrZ "arrZ" - OpName %gl_NumWorkGroups "gl_NumWorkGroups" - OpName %gl_WorkGroupID "gl_WorkGroupID" - OpName %gl_LocalInvocationID "gl_LocalInvocationID" - OpName %gl_GlobalInvocationID "gl_GlobalInvocationID" - OpName %gl_LocalInvocationIndex "gl_LocalInvocationIndex" - OpDecorate %_runtimearr_v4float ArrayStride 16 - OpMemberDecorate %bName 0 Offset 0 - OpMemberDecorate %bName 1 Offset 16 - OpMemberDecorate %bName 2 Offset 32 - OpDecorate %bName BufferBlock - OpDecorate %bInst DescriptorSet 0 - OpDecorate %bInst Binding 0 - OpDecorate %39 SpecId 18 - OpDecorate %41 SpecId 19 - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %gl_NumWorkGroups BuiltIn NumWorkgroups - OpDecorate %gl_WorkGroupID BuiltIn WorkgroupId - OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId - OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId - OpDecorate %gl_LocalInvocationIndex BuiltIn LocalInvocationIndex - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 - %uint_264 = OpConstant %uint 264 - %int = OpTypeInt 32 1 - %v3uint = OpTypeVector %uint 3 - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_runtimearr_v4float = OpTypeRuntimeArray %v4float - %bName = OpTypeStruct %int %v3uint %_runtimearr_v4float -%_ptr_Uniform_bName = OpTypePointer Uniform %bName - %bInst = OpVariable %_ptr_Uniform_bName Uniform - %int_2 = OpConstant %int 2 - %int_0 = OpConstant %int 0 -%_ptr_Uniform_int = OpTypePointer Uniform %int - %float_7 = OpConstant %float 7 - %24 = OpConstantComposite %v4float %float_7 %float_7 %float_7 %float_7 -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float - %uint_1 = OpConstant %uint 1 - %uint_3400 = OpConstant %uint 3400 - %uint_72 = OpConstant %uint 72 -%uint_197645 = OpConstant %uint 197645 -%_arr_v4float_uint_197645 = OpTypeArray %v4float %uint_197645 -%_ptr_Workgroup__arr_v4float_uint_197645 = OpTypePointer Workgroup %_arr_v4float_uint_197645 - %s = OpVariable %_ptr_Workgroup__arr_v4float_uint_197645 Workgroup - %int_3 = OpConstant %int 3 - %float_0 = OpConstant %float 0 - %39 = OpSpecConstant %uint 2 - %uint_5 = OpConstant %uint 5 - %41 = OpSpecConstant %uint 7 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %39 %uint_5 %41 - %uint_0 = OpConstant %uint 0 -%_arr_int_44 = OpTypeArray %int %44 -%_ptr_Private__arr_int_44 = OpTypePointer Private %_arr_int_44 - %arrX = OpVariable %_ptr_Private__arr_int_44 Private -%_ptr_Private_int = OpTypePointer Private %int -%_arr_int_52 = OpTypeArray %int %52 -%_ptr_Private__arr_int_52 = OpTypePointer Private %_arr_int_52 - %arrY = OpVariable %_ptr_Private__arr_int_52 Private -%_arr_int_59 = OpTypeArray %int %59 -%_ptr_Private__arr_int_59 = OpTypePointer Private %_arr_int_59 - %arrZ = OpVariable %_ptr_Private__arr_int_59 Private -%_ptr_Workgroup_v4float = OpTypePointer Workgroup %v4float - %int_1 = OpConstant %int 1 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%gl_NumWorkGroups = OpVariable %_ptr_Input_v3uint Input -%gl_WorkGroupID = OpVariable %_ptr_Input_v3uint Input -%gl_LocalInvocationID = OpVariable %_ptr_Input_v3uint Input -%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input -%_ptr_Input_uint = OpTypePointer Input %uint -%gl_LocalInvocationIndex = OpVariable %_ptr_Input_uint Input -%_ptr_Uniform_v3uint = OpTypePointer Uniform %v3uint - %int_5 = OpConstant %int 5 - %int_197645 = OpConstant %int 197645 - %main = OpFunction %void None %3 - %5 = OpLabel - OpControlBarrier %uint_2 %uint_2 %uint_264 - %20 = OpAccessChain %_ptr_Uniform_int %bInst %int_0 - %21 = OpLoad %int %20 - %22 = OpSDiv %int %21 %int_2 - %26 = OpAccessChain %_ptr_Uniform_v4float %bInst %int_2 %22 - %27 = OpLoad %v4float %26 - %28 = OpFMul %v4float %27 %24 - %29 = OpAccessChain %_ptr_Uniform_v4float %bInst %int_2 %22 - OpStore %29 %28 - OpMemoryBarrier %uint_1 %uint_3400 - OpMemoryBarrier %uint_2 %uint_3400 - OpMemoryBarrier %uint_1 %uint_264 - OpMemoryBarrier %uint_1 %uint_72 - %44 = OpCompositeExtract %uint %gl_WorkGroupSize 0 - %49 = OpAccessChain %_ptr_Private_int %arrX %int_0 - %50 = OpLoad %int %49 - %51 = OpConvertSToF %float %50 - %52 = OpCompositeExtract %uint %gl_WorkGroupSize 1 - %56 = OpAccessChain %_ptr_Private_int %arrY %int_0 - %57 = OpLoad %int %56 - %58 = OpConvertSToF %float %57 - %59 = OpCompositeExtract %uint %gl_WorkGroupSize 2 - %63 = OpAccessChain %_ptr_Private_int %arrZ %int_0 - %64 = OpLoad %int %63 - %65 = OpConvertSToF %float %64 - %66 = OpCompositeConstruct %v4float %float_0 %51 %58 %65 - %68 = OpAccessChain %_ptr_Workgroup_v4float %s %int_3 - OpStore %68 %66 - %72 = OpLoad %v3uint %gl_NumWorkGroups - %73 = OpIAdd %v3uint %72 %gl_WorkGroupSize - %75 = OpLoad %v3uint %gl_WorkGroupID - %76 = OpIAdd %v3uint %73 %75 - %78 = OpLoad %v3uint %gl_LocalInvocationID - %79 = OpIAdd %v3uint %76 %78 - %81 = OpLoad %v3uint %gl_GlobalInvocationID - %84 = OpLoad %uint %gl_LocalInvocationIndex - %85 = OpCompositeConstruct %v3uint %84 %84 %84 - %86 = OpIMul %v3uint %81 %85 - %87 = OpIAdd %v3uint %79 %86 - %89 = OpAccessChain %_ptr_Uniform_v3uint %bInst %int_1 - OpStore %89 %87 - %90 = OpAccessChain %_ptr_Uniform_int %bInst %int_0 - %91 = OpAtomicIAdd %int %90 %uint_1 %uint_0 %int_2 - %92 = OpAccessChain %_ptr_Uniform_int %bInst %int_0 - %93 = OpAtomicSMin %int %92 %uint_1 %uint_0 %int_2 - %94 = OpAccessChain %_ptr_Uniform_int %bInst %int_0 - %95 = OpAtomicSMax %int %94 %uint_1 %uint_0 %int_2 - %96 = OpAccessChain %_ptr_Uniform_int %bInst %int_0 - %97 = OpAtomicAnd %int %96 %uint_1 %uint_0 %int_2 - %98 = OpAccessChain %_ptr_Uniform_int %bInst %int_0 - %99 = OpAtomicOr %int %98 %uint_1 %uint_0 %int_2 - %100 = OpAccessChain %_ptr_Uniform_int %bInst %int_0 - %101 = OpAtomicXor %int %100 %uint_1 %uint_0 %int_2 - %102 = OpAccessChain %_ptr_Uniform_int %bInst %int_0 - %103 = OpAtomicExchange %int %102 %uint_1 %uint_0 %int_2 - %104 = OpAccessChain %_ptr_Uniform_int %bInst %int_0 - %106 = OpAtomicCompareExchange %int %104 %uint_1 %uint_0 %uint_0 %int_2 %int_5 - OpReturn - OpFunctionEnd diff --git a/deps/glslang/Test/baseResults/web.controlFlow.frag.out b/deps/glslang/Test/baseResults/web.controlFlow.frag.out deleted file mode 100644 index 57199898..00000000 --- a/deps/glslang/Test/baseResults/web.controlFlow.frag.out +++ /dev/null @@ -1,347 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 193 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %x %BaseColor %Count %bigColor %outColor %v4 %f_0 - OpExecutionMode %main OriginUpperLeft - OpSource ESSL 310 - OpName %main "main" - OpName %c "c" - OpName %f "f" - OpName %x "x" - OpName %d "d" - OpName %color "color" - OpName %BaseColor "BaseColor" - OpName %i "i" - OpName %Count "Count" - OpName %bigColor "bigColor" - OpName %outColor "outColor" - OpName %sum "sum" - OpName %i_0 "i" - OpName %v4 "v4" - OpName %i_1 "i" - OpName %tv4 "tv4" - OpName %r "r" - OpName %i_2 "i" - OpName %i_3 "i" - OpName %i_4 "i" - OpName %A "A" - OpName %B "B" - OpName %C "C" - OpName %D "D" - OpName %f_0 "f" - OpDecorate %f RelaxedPrecision - OpDecorate %x Location 0 - OpDecorate %color RelaxedPrecision - OpDecorate %BaseColor RelaxedPrecision - OpDecorate %BaseColor Location 2 - OpDecorate %47 RelaxedPrecision - OpDecorate %Count Flat - OpDecorate %Count Location 4 - OpDecorate %bigColor RelaxedPrecision - OpDecorate %bigColor Location 1 - OpDecorate %63 RelaxedPrecision - OpDecorate %64 RelaxedPrecision - OpDecorate %65 RelaxedPrecision - OpDecorate %outColor RelaxedPrecision - OpDecorate %outColor Location 0 - OpDecorate %71 RelaxedPrecision - OpDecorate %sum RelaxedPrecision - OpDecorate %v4 Flat - OpDecorate %v4 Location 5 - OpDecorate %91 RelaxedPrecision - OpDecorate %92 RelaxedPrecision - OpDecorate %93 RelaxedPrecision - OpDecorate %tv4 RelaxedPrecision - OpDecorate %111 RelaxedPrecision - OpDecorate %115 RelaxedPrecision - OpDecorate %116 RelaxedPrecision - OpDecorate %117 RelaxedPrecision - OpDecorate %118 RelaxedPrecision - OpDecorate %119 RelaxedPrecision - OpDecorate %120 RelaxedPrecision - OpDecorate %r RelaxedPrecision - OpDecorate %123 RelaxedPrecision - OpDecorate %124 RelaxedPrecision - OpDecorate %136 RelaxedPrecision - OpDecorate %141 RelaxedPrecision - OpDecorate %142 RelaxedPrecision - OpDecorate %143 RelaxedPrecision - OpDecorate %144 RelaxedPrecision - OpDecorate %145 RelaxedPrecision - OpDecorate %157 RelaxedPrecision - OpDecorate %158 RelaxedPrecision - OpDecorate %159 RelaxedPrecision - OpDecorate %f_0 RelaxedPrecision - OpDecorate %f_0 Location 3 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 -%_ptr_Private_int = OpTypePointer Private %int - %c = OpVariable %_ptr_Private_int Private - %float = OpTypeFloat 32 -%_ptr_Function_float = OpTypePointer Function %float -%_ptr_Input_float = OpTypePointer Input %float - %x = OpVariable %_ptr_Input_float Input - %d = OpVariable %_ptr_Private_int Private - %v4float = OpTypeVector %float 4 -%_ptr_Function_v4float = OpTypePointer Function %v4float -%_ptr_Input_v4float = OpTypePointer Input %v4float - %BaseColor = OpVariable %_ptr_Input_v4float Input -%_ptr_Function_int = OpTypePointer Function %int - %int_0 = OpConstant %int 0 -%_ptr_Input_int = OpTypePointer Input %int - %Count = OpVariable %_ptr_Input_int Input - %bool = OpTypeBool - %bigColor = OpVariable %_ptr_Input_v4float Input - %int_1 = OpConstant %int 1 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %outColor = OpVariable %_ptr_Output_v4float Output - %float_0 = OpConstant %float 0 - %int_4 = OpConstant %int 4 - %uint = OpTypeInt 32 0 - %v4uint = OpTypeVector %uint 4 -%_ptr_Input_v4uint = OpTypePointer Input %v4uint - %v4 = OpVariable %_ptr_Input_v4uint Input -%_ptr_Input_uint = OpTypePointer Input %uint - %uint_4 = OpConstant %uint 4 - %v3float = OpTypeVector %float 3 - %uint_3 = OpConstant %uint 3 - %int_16 = OpConstant %int 16 - %int_10 = OpConstant %int 10 - %int_2 = OpConstant %int 2 - %int_5 = OpConstant %int 5 - %int_3 = OpConstant %int 3 - %f_0 = OpVariable %_ptr_Input_float Input - %main = OpFunction %void None %3 - %5 = OpLabel - %f = OpVariable %_ptr_Function_float Function - %color = OpVariable %_ptr_Function_v4float Function - %i = OpVariable %_ptr_Function_int Function - %sum = OpVariable %_ptr_Function_float Function - %i_0 = OpVariable %_ptr_Function_int Function - %i_1 = OpVariable %_ptr_Function_int Function - %tv4 = OpVariable %_ptr_Function_v4float Function - %r = OpVariable %_ptr_Function_v4float Function - %i_2 = OpVariable %_ptr_Function_int Function - %i_3 = OpVariable %_ptr_Function_int Function - %i_4 = OpVariable %_ptr_Function_int Function - %A = OpVariable %_ptr_Function_int Function - %B = OpVariable %_ptr_Function_int Function - %C = OpVariable %_ptr_Function_int Function - %D = OpVariable %_ptr_Function_int Function - %9 = OpLoad %int %c - OpSelectionMerge %13 None - OpSwitch %9 %12 1 %10 2 %11 - %12 = OpLabel - %39 = OpLoad %float %x - %40 = OpExtInst %float %1 Tan %39 - OpStore %f %40 - OpBranch %13 - %10 = OpLabel - %19 = OpLoad %float %x - %20 = OpExtInst %float %1 Sin %19 - OpStore %f %20 - OpBranch %13 - %11 = OpLabel - %23 = OpLoad %int %d - OpSelectionMerge %26 None - OpSwitch %23 %26 1 %24 2 %25 - %24 = OpLabel - %27 = OpLoad %float %x - %28 = OpLoad %float %x - %29 = OpFMul %float %27 %28 - %30 = OpLoad %float %x - %31 = OpFMul %float %29 %30 - OpStore %f %31 - OpBranch %26 - %25 = OpLabel - %33 = OpLoad %float %x - %34 = OpLoad %float %x - %35 = OpFMul %float %33 %34 - OpStore %f %35 - OpBranch %26 - %26 = OpLabel - OpBranch %13 - %13 = OpLabel - %47 = OpLoad %v4float %BaseColor - OpStore %color %47 - OpStore %i %int_0 - OpBranch %51 - %51 = OpLabel - OpLoopMerge %53 %54 None - OpBranch %55 - %55 = OpLabel - %56 = OpLoad %int %i - %59 = OpLoad %int %Count - %61 = OpSLessThan %bool %56 %59 - OpBranchConditional %61 %52 %53 - %52 = OpLabel - %63 = OpLoad %v4float %bigColor - %64 = OpLoad %v4float %color - %65 = OpFAdd %v4float %64 %63 - OpStore %color %65 - OpBranch %54 - %54 = OpLabel - %66 = OpLoad %int %i - %68 = OpIAdd %int %66 %int_1 - OpStore %i %68 - OpBranch %51 - %53 = OpLabel - %71 = OpLoad %v4float %color - OpStore %outColor %71 - OpStore %sum %float_0 - OpStore %i_0 %int_0 - OpBranch %75 - %75 = OpLabel - OpLoopMerge %77 %78 None - OpBranch %79 - %79 = OpLabel - %80 = OpLoad %int %i_0 - %82 = OpSLessThan %bool %80 %int_4 - OpBranchConditional %82 %76 %77 - %76 = OpLabel - %87 = OpLoad %int %i_0 - %89 = OpAccessChain %_ptr_Input_uint %v4 %87 - %90 = OpLoad %uint %89 - %91 = OpConvertUToF %float %90 - %92 = OpLoad %float %sum - %93 = OpFAdd %float %92 %91 - OpStore %sum %93 - OpBranch %78 - %78 = OpLabel - %94 = OpLoad %int %i_0 - %95 = OpIAdd %int %94 %int_1 - OpStore %i_0 %95 - OpBranch %75 - %77 = OpLabel - OpStore %i_1 %int_0 - OpBranch %97 - %97 = OpLabel - OpLoopMerge %99 %100 None - OpBranch %101 - %101 = OpLabel - %102 = OpLoad %int %i_1 - %103 = OpSLessThan %bool %102 %int_4 - OpBranchConditional %103 %98 %99 - %98 = OpLabel - %105 = OpLoad %int %i_1 - %106 = OpLoad %int %i_1 - %107 = OpAccessChain %_ptr_Input_uint %v4 %106 - %108 = OpLoad %uint %107 - %110 = OpIMul %uint %108 %uint_4 - %111 = OpConvertUToF %float %110 - %112 = OpAccessChain %_ptr_Function_float %tv4 %105 - OpStore %112 %111 - OpBranch %100 - %100 = OpLabel - %113 = OpLoad %int %i_1 - %114 = OpIAdd %int %113 %int_1 - OpStore %i_1 %114 - OpBranch %97 - %99 = OpLabel - %115 = OpLoad %float %sum - %116 = OpCompositeConstruct %v4float %115 %115 %115 %115 - %117 = OpLoad %v4float %tv4 - %118 = OpFAdd %v4float %116 %117 - %119 = OpLoad %v4float %outColor - %120 = OpFAdd %v4float %119 %118 - OpStore %outColor %120 - %123 = OpLoad %v4float %BaseColor - %124 = OpVectorShuffle %v3float %123 %123 0 1 2 - %125 = OpLoad %v4float %r - %126 = OpVectorShuffle %v4float %125 %124 4 5 6 3 - OpStore %r %126 - OpStore %i_2 %int_0 - OpBranch %128 - %128 = OpLabel - OpLoopMerge %130 %131 None - OpBranch %132 - %132 = OpLabel - %133 = OpLoad %int %i_2 - %134 = OpLoad %int %Count - %135 = OpSLessThan %bool %133 %134 - OpBranchConditional %135 %129 %130 - %129 = OpLabel - %136 = OpLoad %float %f - %138 = OpAccessChain %_ptr_Function_float %r %uint_3 - OpStore %138 %136 - OpBranch %131 - %131 = OpLabel - %139 = OpLoad %int %i_2 - %140 = OpIAdd %int %139 %int_1 - OpStore %i_2 %140 - OpBranch %128 - %130 = OpLabel - %141 = OpLoad %v4float %r - %142 = OpVectorShuffle %v3float %141 %141 0 1 2 - %143 = OpLoad %v4float %outColor - %144 = OpVectorShuffle %v3float %143 %143 0 1 2 - %145 = OpFAdd %v3float %144 %142 - %146 = OpLoad %v4float %outColor - %147 = OpVectorShuffle %v4float %146 %145 4 5 6 3 - OpStore %outColor %147 - OpStore %i_3 %int_0 - OpBranch %149 - %149 = OpLabel - OpLoopMerge %151 %152 None - OpBranch %153 - %153 = OpLabel - %154 = OpLoad %int %i_3 - %156 = OpSLessThan %bool %154 %int_16 - OpBranchConditional %156 %150 %151 - %150 = OpLabel - %157 = OpLoad %float %f - %158 = OpLoad %v4float %outColor - %159 = OpVectorTimesScalar %v4float %158 %157 - OpStore %outColor %159 - OpBranch %152 - %152 = OpLabel - %160 = OpLoad %int %i_3 - %161 = OpIAdd %int %160 %int_4 - OpStore %i_3 %161 - OpBranch %149 - %151 = OpLabel - OpStore %i_4 %int_0 - OpBranch %163 - %163 = OpLabel - OpLoopMerge %165 %166 None - OpBranch %167 - %167 = OpLabel - %168 = OpLoad %int %i_4 - %170 = OpSLessThan %bool %168 %int_10 - OpBranchConditional %170 %164 %165 - %164 = OpLabel - OpStore %A %int_1 - %172 = OpLoad %int %i_4 - %174 = OpSMod %int %172 %int_2 - %175 = OpIEqual %bool %174 %int_0 - OpSelectionMerge %177 None - OpBranchConditional %175 %176 %177 - %176 = OpLabel - OpStore %B %int_2 - OpBranch %166 - %177 = OpLabel - %181 = OpLoad %int %i_4 - %183 = OpSMod %int %181 %int_5 - %184 = OpIEqual %bool %183 %int_0 - OpSelectionMerge %186 None - OpBranchConditional %184 %185 %186 - %185 = OpLabel - OpStore %B %int_2 - OpBranch %165 - %186 = OpLabel - %188 = OpLoad %int %i_4 - %189 = OpIAdd %int %188 %int_1 - OpStore %i_4 %189 - OpBranch %166 - %166 = OpLabel - OpBranch %163 - %165 = OpLabel - OpStore %D %int_3 - OpReturn - OpFunctionEnd diff --git a/deps/glslang/Test/baseResults/web.operations.frag.out b/deps/glslang/Test/baseResults/web.operations.frag.out deleted file mode 100644 index b08480fb..00000000 --- a/deps/glslang/Test/baseResults/web.operations.frag.out +++ /dev/null @@ -1,321 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 207 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" - OpExecutionMode %main OriginUpperLeft - OpSource ESSL 310 - OpName %main "main" - OpName %f "f" - OpName %v4 "v4" - OpName %u "u" - OpName %uv4 "uv4" - OpName %iv3 "iv3" - OpName %i "i" - OpName %uv3 "uv3" - OpName %m2 "m2" - OpName %iv4 "iv4" - OpName %m4 "m4" - OpName %a "a" - OpName %S "S" - OpMemberName %S 0 "i" - OpName %s "s" - OpName %b "b" - OpName %arr "arr" - OpName %arr2 "arr2" - OpName %block "block" - OpMemberName %block 0 "f" - OpName %instanceName "instanceName" - OpDecorate %u RelaxedPrecision - OpDecorate %18 RelaxedPrecision - OpDecorate %19 RelaxedPrecision - OpDecorate %20 RelaxedPrecision - OpDecorate %uv4 RelaxedPrecision - OpDecorate %24 RelaxedPrecision - OpDecorate %25 RelaxedPrecision - OpDecorate %26 RelaxedPrecision - OpDecorate %27 RelaxedPrecision - OpDecorate %iv3 RelaxedPrecision - OpDecorate %32 RelaxedPrecision - OpDecorate %33 RelaxedPrecision - OpDecorate %34 RelaxedPrecision - OpDecorate %i RelaxedPrecision - OpDecorate %38 RelaxedPrecision - OpDecorate %39 RelaxedPrecision - OpDecorate %uv3 RelaxedPrecision - OpDecorate %43 RelaxedPrecision - OpDecorate %45 RelaxedPrecision - OpDecorate %46 RelaxedPrecision - OpDecorate %iv4 RelaxedPrecision - OpDecorate %62 RelaxedPrecision - OpDecorate %64 RelaxedPrecision - OpDecorate %65 RelaxedPrecision - OpDecorate %104 RelaxedPrecision - OpDecorate %105 RelaxedPrecision - OpMemberDecorate %S 0 RelaxedPrecision - OpDecorate %153 RelaxedPrecision - OpDecorate %154 RelaxedPrecision - OpDecorate %155 RelaxedPrecision - OpDecorate %156 RelaxedPrecision - OpDecorate %157 RelaxedPrecision - OpDecorate %158 RelaxedPrecision - OpDecorate %159 RelaxedPrecision - OpDecorate %160 RelaxedPrecision - OpDecorate %161 RelaxedPrecision - OpDecorate %162 RelaxedPrecision - OpDecorate %163 RelaxedPrecision - OpDecorate %164 RelaxedPrecision - OpDecorate %165 RelaxedPrecision - OpDecorate %166 RelaxedPrecision - OpDecorate %167 RelaxedPrecision - OpDecorate %168 RelaxedPrecision - OpDecorate %169 RelaxedPrecision - OpDecorate %170 RelaxedPrecision - OpDecorate %171 RelaxedPrecision - OpDecorate %172 RelaxedPrecision - OpDecorate %173 RelaxedPrecision - OpDecorate %174 RelaxedPrecision - OpDecorate %175 RelaxedPrecision - OpDecorate %176 RelaxedPrecision - OpDecorate %177 RelaxedPrecision - OpDecorate %178 RelaxedPrecision - OpDecorate %179 RelaxedPrecision - OpDecorate %180 RelaxedPrecision - OpDecorate %181 RelaxedPrecision - OpDecorate %182 RelaxedPrecision - OpDecorate %183 RelaxedPrecision - OpDecorate %184 RelaxedPrecision - OpDecorate %185 RelaxedPrecision - OpDecorate %186 RelaxedPrecision - OpDecorate %187 RelaxedPrecision - OpDecorate %188 RelaxedPrecision - OpDecorate %189 RelaxedPrecision - OpDecorate %190 RelaxedPrecision - OpDecorate %191 RelaxedPrecision - OpDecorate %192 RelaxedPrecision - OpDecorate %193 RelaxedPrecision - OpDecorate %194 RelaxedPrecision - OpDecorate %arr RelaxedPrecision - OpDecorate %arr2 RelaxedPrecision - OpMemberDecorate %block 0 RelaxedPrecision - OpMemberDecorate %block 0 Offset 0 - OpDecorate %block Block - OpDecorate %instanceName DescriptorSet 0 - OpDecorate %instanceName Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 -%_ptr_Function_float = OpTypePointer Function %float - %v4float = OpTypeVector %float 4 -%_ptr_Function_v4float = OpTypePointer Function %v4float - %uint = OpTypeInt 32 0 -%_ptr_Function_uint = OpTypePointer Function %uint - %v4uint = OpTypeVector %uint 4 -%_ptr_Function_v4uint = OpTypePointer Function %v4uint - %int = OpTypeInt 32 1 - %v3int = OpTypeVector %int 3 -%_ptr_Function_v3int = OpTypePointer Function %v3int -%_ptr_Function_int = OpTypePointer Function %int - %int_3 = OpConstant %int 3 - %v3uint = OpTypeVector %uint 3 -%_ptr_Function_v3uint = OpTypePointer Function %v3uint - %uint_4 = OpConstant %uint 4 - %v2float = OpTypeVector %float 2 -%mat2v2float = OpTypeMatrix %v2float 2 -%_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float - %float_1 = OpConstant %float 1 - %v4int = OpTypeVector %int 4 -%_ptr_Function_v4int = OpTypePointer Function %v4int - %int_1 = OpConstant %int 1 -%mat4v4float = OpTypeMatrix %v4float 4 -%_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float - %bool = OpTypeBool - %v4bool = OpTypeVector %bool 4 - %v2bool = OpTypeVector %bool 2 - %uint_5 = OpConstant %uint 5 -%_arr_float_uint_5 = OpTypeArray %float %uint_5 -%_ptr_Private__arr_float_uint_5 = OpTypePointer Private %_arr_float_uint_5 - %a = OpVariable %_ptr_Private__arr_float_uint_5 Private - %S = OpTypeStruct %int -%_ptr_Private_S = OpTypePointer Private %S - %s = OpVariable %_ptr_Private_S Private -%_ptr_Function_bool = OpTypePointer Function %bool - %uint_2 = OpConstant %uint 2 -%_arr_int_uint_2 = OpTypeArray %int %uint_2 -%_ptr_Function__arr_int_uint_2 = OpTypePointer Function %_arr_int_uint_2 - %uint_3 = OpConstant %uint 3 -%_arr_int_uint_3 = OpTypeArray %int %uint_3 -%_ptr_Function__arr_int_uint_3 = OpTypePointer Function %_arr_int_uint_3 - %int_2 = OpConstant %int 2 - %block = OpTypeStruct %float -%_ptr_Uniform_block = OpTypePointer Uniform %block -%instanceName = OpVariable %_ptr_Uniform_block Uniform - %main = OpFunction %void None %3 - %5 = OpLabel - %f = OpVariable %_ptr_Function_float Function - %v4 = OpVariable %_ptr_Function_v4float Function - %u = OpVariable %_ptr_Function_uint Function - %uv4 = OpVariable %_ptr_Function_v4uint Function - %iv3 = OpVariable %_ptr_Function_v3int Function - %i = OpVariable %_ptr_Function_int Function - %uv3 = OpVariable %_ptr_Function_v3uint Function - %m2 = OpVariable %_ptr_Function_mat2v2float Function - %iv4 = OpVariable %_ptr_Function_v4int Function - %m4 = OpVariable %_ptr_Function_mat4v4float Function - %b = OpVariable %_ptr_Function_bool Function - %arr = OpVariable %_ptr_Function__arr_int_uint_2 Function - %arr2 = OpVariable %_ptr_Function__arr_int_uint_3 Function - %9 = OpLoad %float %f - %13 = OpLoad %v4float %v4 - %14 = OpVectorTimesScalar %v4float %13 %9 - %18 = OpLoad %uint %u - %19 = OpLoad %uint %u - %20 = OpIAdd %uint %18 %19 - %24 = OpLoad %v4uint %uv4 - %25 = OpLoad %uint %u - %26 = OpCompositeConstruct %v4uint %25 %25 %25 %25 - %27 = OpUDiv %v4uint %24 %26 - %32 = OpLoad %v3int %iv3 - %33 = OpLoad %v3int %iv3 - %34 = OpISub %v3int %33 %32 - OpStore %iv3 %34 - %38 = OpLoad %int %i - %39 = OpSMod %int %38 %int_3 - OpStore %i %39 - %43 = OpLoad %v3uint %uv3 - %45 = OpCompositeConstruct %v3uint %uint_4 %uint_4 %uint_4 - %46 = OpUMod %v3uint %43 %45 - %51 = OpLoad %mat2v2float %m2 - %53 = OpCompositeConstruct %v2float %float_1 %float_1 - %54 = OpCompositeExtract %v2float %51 0 - %55 = OpFSub %v2float %54 %53 - %56 = OpCompositeExtract %v2float %51 1 - %57 = OpFSub %v2float %56 %53 - %58 = OpCompositeConstruct %mat2v2float %55 %57 - OpStore %m2 %58 - %62 = OpLoad %v4int %iv4 - %64 = OpCompositeConstruct %v4int %int_1 %int_1 %int_1 %int_1 - %65 = OpIAdd %v4int %62 %64 - OpStore %iv4 %65 - %69 = OpLoad %mat4v4float %m4 - %70 = OpLoad %mat4v4float %m4 - %72 = OpCompositeExtract %v4float %69 0 - %73 = OpCompositeExtract %v4float %70 0 - %75 = OpFUnordNotEqual %v4bool %72 %73 - %76 = OpAny %bool %75 - %77 = OpCompositeExtract %v4float %69 1 - %78 = OpCompositeExtract %v4float %70 1 - %79 = OpFUnordNotEqual %v4bool %77 %78 - %80 = OpAny %bool %79 - %81 = OpLogicalOr %bool %76 %80 - %82 = OpCompositeExtract %v4float %69 2 - %83 = OpCompositeExtract %v4float %70 2 - %84 = OpFUnordNotEqual %v4bool %82 %83 - %85 = OpAny %bool %84 - %86 = OpLogicalOr %bool %81 %85 - %87 = OpCompositeExtract %v4float %69 3 - %88 = OpCompositeExtract %v4float %70 3 - %89 = OpFUnordNotEqual %v4bool %87 %88 - %90 = OpAny %bool %89 - %91 = OpLogicalOr %bool %86 %90 - %92 = OpLoad %mat2v2float %m2 - %93 = OpLoad %mat2v2float %m2 - %94 = OpCompositeExtract %v2float %92 0 - %95 = OpCompositeExtract %v2float %93 0 - %97 = OpFOrdEqual %v2bool %94 %95 - %98 = OpAll %bool %97 - %99 = OpCompositeExtract %v2float %92 1 - %100 = OpCompositeExtract %v2float %93 1 - %101 = OpFOrdEqual %v2bool %99 %100 - %102 = OpAll %bool %101 - %103 = OpLogicalAnd %bool %98 %102 - %104 = OpLoad %int %i - %105 = OpLoad %int %i - %106 = OpSLessThanEqual %bool %104 %105 - %111 = OpLoad %_arr_float_uint_5 %a - %112 = OpLoad %_arr_float_uint_5 %a - %113 = OpCompositeExtract %float %111 0 - %114 = OpCompositeExtract %float %112 0 - %115 = OpFOrdEqual %bool %113 %114 - %116 = OpCompositeExtract %float %111 1 - %117 = OpCompositeExtract %float %112 1 - %118 = OpFOrdEqual %bool %116 %117 - %119 = OpLogicalAnd %bool %115 %118 - %120 = OpCompositeExtract %float %111 2 - %121 = OpCompositeExtract %float %112 2 - %122 = OpFOrdEqual %bool %120 %121 - %123 = OpLogicalAnd %bool %119 %122 - %124 = OpCompositeExtract %float %111 3 - %125 = OpCompositeExtract %float %112 3 - %126 = OpFOrdEqual %bool %124 %125 - %127 = OpLogicalAnd %bool %123 %126 - %128 = OpCompositeExtract %float %111 4 - %129 = OpCompositeExtract %float %112 4 - %130 = OpFOrdEqual %bool %128 %129 - %131 = OpLogicalAnd %bool %127 %130 - %135 = OpLoad %S %s - %136 = OpLoad %S %s - %137 = OpCompositeExtract %int %135 0 - %138 = OpCompositeExtract %int %136 0 - %139 = OpINotEqual %bool %137 %138 - %142 = OpLoad %bool %b - %143 = OpLoad %bool %b - %144 = OpLogicalAnd %bool %142 %143 - %145 = OpLoad %bool %b - %146 = OpLoad %bool %b - %147 = OpLogicalOr %bool %145 %146 - %148 = OpLoad %bool %b - %149 = OpLoad %bool %b - %150 = OpLogicalNotEqual %bool %148 %149 - %151 = OpLoad %bool %b - %152 = OpLogicalNot %bool %151 - %153 = OpLoad %int %i - %154 = OpNot %int %153 - %155 = OpLoad %uint %u - %156 = OpNot %uint %155 - %157 = OpLoad %v3uint %uv3 - %158 = OpNot %v3uint %157 - %159 = OpLoad %v3int %iv3 - %160 = OpNot %v3int %159 - %161 = OpLoad %int %i - %162 = OpLoad %v3uint %uv3 - %163 = OpCompositeConstruct %v3int %161 %161 %161 - %164 = OpShiftLeftLogical %v3uint %162 %163 - OpStore %uv3 %164 - %165 = OpLoad %int %i - %166 = OpLoad %int %i - %167 = OpShiftRightArithmetic %int %165 %166 - %168 = OpLoad %uint %u - %169 = OpLoad %uint %u - %170 = OpShiftLeftLogical %uint %168 %169 - %171 = OpLoad %v3int %iv3 - %172 = OpLoad %v3int %iv3 - %173 = OpShiftRightArithmetic %v3int %171 %172 - %174 = OpLoad %int %i - %175 = OpLoad %int %i - %176 = OpBitwiseAnd %int %174 %175 - %177 = OpLoad %uint %u - %178 = OpLoad %uint %u - %179 = OpBitwiseOr %uint %177 %178 - %180 = OpLoad %v3int %iv3 - %181 = OpLoad %v3int %iv3 - %182 = OpBitwiseXor %v3int %180 %181 - %183 = OpLoad %uint %u - %184 = OpLoad %v3uint %uv3 - %185 = OpCompositeConstruct %v3uint %183 %183 %183 - %186 = OpBitwiseAnd %v3uint %185 %184 - %187 = OpLoad %v3uint %uv3 - %188 = OpLoad %uint %u - %189 = OpCompositeConstruct %v3uint %188 %188 %188 - %190 = OpBitwiseOr %v3uint %187 %189 - %191 = OpLoad %uint %u - %192 = OpLoad %v3uint %uv3 - %193 = OpCompositeConstruct %v3uint %191 %191 %191 - %194 = OpBitwiseAnd %v3uint %192 %193 - OpStore %uv3 %194 - OpReturn - OpFunctionEnd diff --git a/deps/glslang/Test/baseResults/web.separate.frag.out b/deps/glslang/Test/baseResults/web.separate.frag.out deleted file mode 100644 index 5a99298e..00000000 --- a/deps/glslang/Test/baseResults/web.separate.frag.out +++ /dev/null @@ -1,178 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 99 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %color %i - OpExecutionMode %main OriginUpperLeft - OpSource ESSL 310 - OpName %main "main" - OpName %color "color" - OpName %t2d "t2d" - OpName %s "s" - OpName %t3d "t3d" - OpName %sA "sA" - OpName %sShadow "sShadow" - OpName %i "i" - OpName %tex2D "tex2D" - OpName %texCube "texCube" - OpName %tex2DArray "tex2DArray" - OpName %itex2D "itex2D" - OpName %itex3D "itex3D" - OpName %itexCube "itexCube" - OpName %itex2DArray "itex2DArray" - OpName %utex2D "utex2D" - OpName %utex3D "utex3D" - OpName %utexCube "utexCube" - OpName %utex2DArray "utex2DArray" - OpName %tex3D "tex3D" - OpDecorate %color Location 0 - OpDecorate %t2d RelaxedPrecision - OpDecorate %t2d DescriptorSet 0 - OpDecorate %t2d Binding 3 - OpDecorate %14 RelaxedPrecision - OpDecorate %s DescriptorSet 0 - OpDecorate %s Binding 0 - OpDecorate %23 RelaxedPrecision - OpDecorate %t3d DescriptorSet 0 - OpDecorate %t3d Binding 4 - OpDecorate %sA DescriptorSet 0 - OpDecorate %sA Binding 2 - OpDecorate %48 RelaxedPrecision - OpDecorate %51 RelaxedPrecision - OpDecorate %sShadow DescriptorSet 0 - OpDecorate %sShadow Binding 1 - OpDecorate %i RelaxedPrecision - OpDecorate %i Flat - OpDecorate %i Location 0 - OpDecorate %tex2D RelaxedPrecision - OpDecorate %tex2D DescriptorSet 0 - OpDecorate %tex2D Binding 5 - OpDecorate %texCube RelaxedPrecision - OpDecorate %texCube DescriptorSet 0 - OpDecorate %texCube Binding 6 - OpDecorate %tex2DArray DescriptorSet 0 - OpDecorate %tex2DArray Binding 15 - OpDecorate %itex2D DescriptorSet 0 - OpDecorate %itex2D Binding 16 - OpDecorate %itex3D DescriptorSet 0 - OpDecorate %itex3D Binding 17 - OpDecorate %itexCube DescriptorSet 0 - OpDecorate %itexCube Binding 18 - OpDecorate %itex2DArray DescriptorSet 0 - OpDecorate %itex2DArray Binding 19 - OpDecorate %utex2D DescriptorSet 0 - OpDecorate %utex2D Binding 20 - OpDecorate %utex3D DescriptorSet 0 - OpDecorate %utex3D Binding 21 - OpDecorate %utexCube DescriptorSet 0 - OpDecorate %utexCube Binding 22 - OpDecorate %utex2DArray DescriptorSet 0 - OpDecorate %utex2DArray Binding 23 - OpDecorate %tex3D DescriptorSet 0 - OpDecorate %tex3D Binding 36 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %color = OpVariable %_ptr_Output_v4float Output - %10 = OpTypeImage %float 2D 0 0 0 1 Unknown - %11 = OpTypeSampledImage %10 -%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11 - %t2d = OpVariable %_ptr_UniformConstant_11 UniformConstant - %15 = OpTypeSampler -%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15 - %s = OpVariable %_ptr_UniformConstant_15 UniformConstant - %v2float = OpTypeVector %float 2 - %float_0_5 = OpConstant %float 0.5 - %22 = OpConstantComposite %v2float %float_0_5 %float_0_5 - %24 = OpTypeImage %float 3D 0 0 0 1 Unknown - %25 = OpTypeSampledImage %24 - %uint = OpTypeInt 32 0 - %uint_4 = OpConstant %uint 4 -%_arr_25_uint_4 = OpTypeArray %25 %uint_4 -%_ptr_UniformConstant__arr_25_uint_4 = OpTypePointer UniformConstant %_arr_25_uint_4 - %t3d = OpVariable %_ptr_UniformConstant__arr_25_uint_4 UniformConstant - %int = OpTypeInt 32 1 - %int_1 = OpConstant %int 1 -%_ptr_UniformConstant_25 = OpTypePointer UniformConstant %25 -%_arr_15_uint_4 = OpTypeArray %15 %uint_4 -%_ptr_UniformConstant__arr_15_uint_4 = OpTypePointer UniformConstant %_arr_15_uint_4 - %sA = OpVariable %_ptr_UniformConstant__arr_15_uint_4 UniformConstant - %int_2 = OpConstant %int 2 - %v3float = OpTypeVector %float 3 - %44 = OpConstantComposite %v3float %float_0_5 %float_0_5 %float_0_5 - %sShadow = OpVariable %_ptr_UniformConstant_15 UniformConstant -%_ptr_Input_int = OpTypePointer Input %int - %i = OpVariable %_ptr_Input_int Input - %tex2D = OpVariable %_ptr_UniformConstant_11 UniformConstant - %58 = OpTypeImage %float Cube 0 0 0 1 Unknown - %59 = OpTypeSampledImage %58 -%_ptr_UniformConstant_59 = OpTypePointer UniformConstant %59 - %texCube = OpVariable %_ptr_UniformConstant_59 UniformConstant - %62 = OpTypeImage %float 2D 0 1 0 1 Unknown - %63 = OpTypeSampledImage %62 -%_ptr_UniformConstant_63 = OpTypePointer UniformConstant %63 - %tex2DArray = OpVariable %_ptr_UniformConstant_63 UniformConstant - %66 = OpTypeImage %int 2D 0 0 0 1 Unknown - %67 = OpTypeSampledImage %66 -%_ptr_UniformConstant_67 = OpTypePointer UniformConstant %67 - %itex2D = OpVariable %_ptr_UniformConstant_67 UniformConstant - %70 = OpTypeImage %int 3D 0 0 0 1 Unknown - %71 = OpTypeSampledImage %70 -%_ptr_UniformConstant_71 = OpTypePointer UniformConstant %71 - %itex3D = OpVariable %_ptr_UniformConstant_71 UniformConstant - %74 = OpTypeImage %int Cube 0 0 0 1 Unknown - %75 = OpTypeSampledImage %74 -%_ptr_UniformConstant_75 = OpTypePointer UniformConstant %75 - %itexCube = OpVariable %_ptr_UniformConstant_75 UniformConstant - %78 = OpTypeImage %int 2D 0 1 0 1 Unknown - %79 = OpTypeSampledImage %78 -%_ptr_UniformConstant_79 = OpTypePointer UniformConstant %79 -%itex2DArray = OpVariable %_ptr_UniformConstant_79 UniformConstant - %82 = OpTypeImage %uint 2D 0 0 0 1 Unknown - %83 = OpTypeSampledImage %82 -%_ptr_UniformConstant_83 = OpTypePointer UniformConstant %83 - %utex2D = OpVariable %_ptr_UniformConstant_83 UniformConstant - %86 = OpTypeImage %uint 3D 0 0 0 1 Unknown - %87 = OpTypeSampledImage %86 -%_ptr_UniformConstant_87 = OpTypePointer UniformConstant %87 - %utex3D = OpVariable %_ptr_UniformConstant_87 UniformConstant - %90 = OpTypeImage %uint Cube 0 0 0 1 Unknown - %91 = OpTypeSampledImage %90 -%_ptr_UniformConstant_91 = OpTypePointer UniformConstant %91 - %utexCube = OpVariable %_ptr_UniformConstant_91 UniformConstant - %94 = OpTypeImage %uint 2D 0 1 0 1 Unknown - %95 = OpTypeSampledImage %94 -%_ptr_UniformConstant_95 = OpTypePointer UniformConstant %95 -%utex2DArray = OpVariable %_ptr_UniformConstant_95 UniformConstant - %tex3D = OpVariable %_ptr_UniformConstant_25 UniformConstant - %main = OpFunction %void None %3 - %5 = OpLabel - %14 = OpLoad %11 %t2d - %18 = OpLoad %15 %s - %19 = OpSampledImage %11 %14 %18 - %23 = OpImageSampleImplicitLod %v4float %19 %22 - OpStore %color %23 - %34 = OpAccessChain %_ptr_UniformConstant_25 %t3d %int_1 - %35 = OpLoad %25 %34 - %40 = OpAccessChain %_ptr_UniformConstant_15 %sA %int_2 - %41 = OpLoad %15 %40 - %42 = OpSampledImage %25 %35 %41 - %45 = OpImageSampleImplicitLod %v4float %42 %44 - %46 = OpLoad %v4float %color - %47 = OpFAdd %v4float %46 %45 - OpStore %color %47 - %48 = OpLoad %11 %t2d - %49 = OpLoad %15 %s - %50 = OpSampledImage %11 %48 %49 - %51 = OpImageSampleImplicitLod %v4float %50 %22 - %52 = OpLoad %v4float %color - %53 = OpFAdd %v4float %52 %51 - OpStore %color %53 - OpReturn - OpFunctionEnd diff --git a/deps/glslang/Test/baseResults/web.texture.frag.out b/deps/glslang/Test/baseResults/web.texture.frag.out deleted file mode 100644 index baad5644..00000000 --- a/deps/glslang/Test/baseResults/web.texture.frag.out +++ /dev/null @@ -1,396 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 189 -; Schema: 0 - OpCapability Shader - OpCapability ImageQuery - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %c2D %c4D %c3D %ic3D %ic1D %c1D %ic4D %s2 %sc %sf - OpExecutionMode %main OriginUpperLeft - OpSource ESSL 310 - OpName %main "main" - OpName %v "v" - OpName %s2D "s2D" - OpName %c2D "c2D" - OpName %s3D "s3D" - OpName %c4D "c4D" - OpName %s2DArray "s2DArray" - OpName %c3D "c3D" - OpName %ic3D "ic3D" - OpName %ic1D "ic1D" - OpName %f "f" - OpName %s2DShadow "s2DShadow" - OpName %c1D "c1D" - OpName %sCube "sCube" - OpName %s2DArrayShadow "s2DArrayShadow" - OpName %iv "iv" - OpName %is2D "is2D" - OpName %is3D "is3D" - OpName %isCube "isCube" - OpName %is2DArray "is2DArray" - OpName %sCubeShadow "sCubeShadow" - OpName %us2D "us2D" - OpName %us3D "us3D" - OpName %usCube "usCube" - OpName %us2DArray "us2DArray" - OpName %ic4D "ic4D" - OpName %S2 "S2" - OpMemberName %S2 0 "c" - OpMemberName %S2 1 "f" - OpName %s2 "s2" - OpName %sc "sc" - OpName %sf "sf" - OpName %arrayedSampler "arrayedSampler" - OpDecorate %v RelaxedPrecision - OpDecorate %s2D RelaxedPrecision - OpDecorate %s2D DescriptorSet 0 - OpDecorate %s2D Binding 1 - OpDecorate %14 RelaxedPrecision - OpDecorate %c2D RelaxedPrecision - OpDecorate %c2D Location 5 - OpDecorate %18 RelaxedPrecision - OpDecorate %19 RelaxedPrecision - OpDecorate %s3D RelaxedPrecision - OpDecorate %s3D DescriptorSet 0 - OpDecorate %s3D Binding 2 - OpDecorate %24 RelaxedPrecision - OpDecorate %c4D RelaxedPrecision - OpDecorate %c4D Location 7 - OpDecorate %27 RelaxedPrecision - OpDecorate %28 RelaxedPrecision - OpDecorate %s2DArray RelaxedPrecision - OpDecorate %s2DArray DescriptorSet 0 - OpDecorate %s2DArray Binding 6 - OpDecorate %33 RelaxedPrecision - OpDecorate %c3D RelaxedPrecision - OpDecorate %c3D Location 6 - OpDecorate %37 RelaxedPrecision - OpDecorate %39 RelaxedPrecision - OpDecorate %40 RelaxedPrecision - OpDecorate %ic3D RelaxedPrecision - OpDecorate %ic3D Flat - OpDecorate %ic3D Location 2 - OpDecorate %45 RelaxedPrecision - OpDecorate %ic1D RelaxedPrecision - OpDecorate %ic1D Flat - OpDecorate %ic1D Location 1 - OpDecorate %48 RelaxedPrecision - OpDecorate %50 RelaxedPrecision - OpDecorate %f RelaxedPrecision - OpDecorate %s2DShadow RelaxedPrecision - OpDecorate %s2DShadow DescriptorSet 0 - OpDecorate %s2DShadow Binding 5 - OpDecorate %57 RelaxedPrecision - OpDecorate %58 RelaxedPrecision - OpDecorate %c1D RelaxedPrecision - OpDecorate %c1D Location 4 - OpDecorate %61 RelaxedPrecision - OpDecorate %67 RelaxedPrecision - OpDecorate %68 RelaxedPrecision - OpDecorate %69 RelaxedPrecision - OpDecorate %70 RelaxedPrecision - OpDecorate %71 RelaxedPrecision - OpDecorate %sCube RelaxedPrecision - OpDecorate %sCube DescriptorSet 0 - OpDecorate %sCube Binding 3 - OpDecorate %76 RelaxedPrecision - OpDecorate %77 RelaxedPrecision - OpDecorate %78 RelaxedPrecision - OpDecorate %79 RelaxedPrecision - OpDecorate %80 RelaxedPrecision - OpDecorate %s2DArrayShadow RelaxedPrecision - OpDecorate %s2DArrayShadow DescriptorSet 0 - OpDecorate %s2DArrayShadow Binding 7 - OpDecorate %85 RelaxedPrecision - OpDecorate %86 RelaxedPrecision - OpDecorate %87 RelaxedPrecision - OpDecorate %88 RelaxedPrecision - OpDecorate %90 RelaxedPrecision - OpDecorate %91 RelaxedPrecision - OpDecorate %92 RelaxedPrecision - OpDecorate %93 RelaxedPrecision - OpDecorate %94 RelaxedPrecision - OpDecorate %95 RelaxedPrecision - OpDecorate %96 RelaxedPrecision - OpDecorate %97 RelaxedPrecision - OpDecorate %98 RelaxedPrecision - OpDecorate %99 RelaxedPrecision - OpDecorate %100 RelaxedPrecision - OpDecorate %iv RelaxedPrecision - OpDecorate %is2D RelaxedPrecision - OpDecorate %is2D DescriptorSet 0 - OpDecorate %is2D Binding 8 - OpDecorate %108 RelaxedPrecision - OpDecorate %109 RelaxedPrecision - OpDecorate %110 RelaxedPrecision - OpDecorate %111 RelaxedPrecision - OpDecorate %112 RelaxedPrecision - OpDecorate %115 RelaxedPrecision - OpDecorate %116 RelaxedPrecision - OpDecorate %117 RelaxedPrecision - OpDecorate %118 RelaxedPrecision - OpDecorate %119 RelaxedPrecision - OpDecorate %120 RelaxedPrecision - OpDecorate %121 RelaxedPrecision - OpDecorate %122 RelaxedPrecision - OpDecorate %123 RelaxedPrecision - OpDecorate %124 RelaxedPrecision - OpDecorate %is3D RelaxedPrecision - OpDecorate %is3D DescriptorSet 0 - OpDecorate %is3D Binding 9 - OpDecorate %129 RelaxedPrecision - OpDecorate %130 RelaxedPrecision - OpDecorate %132 RelaxedPrecision - OpDecorate %isCube RelaxedPrecision - OpDecorate %isCube DescriptorSet 0 - OpDecorate %isCube Binding 10 - OpDecorate %137 RelaxedPrecision - OpDecorate %138 RelaxedPrecision - OpDecorate %139 RelaxedPrecision - OpDecorate %140 RelaxedPrecision - OpDecorate %is2DArray RelaxedPrecision - OpDecorate %is2DArray DescriptorSet 0 - OpDecorate %is2DArray Binding 11 - OpDecorate %145 RelaxedPrecision - OpDecorate %146 RelaxedPrecision - OpDecorate %147 RelaxedPrecision - OpDecorate %149 RelaxedPrecision - OpDecorate %sCubeShadow RelaxedPrecision - OpDecorate %sCubeShadow DescriptorSet 0 - OpDecorate %sCubeShadow Binding 4 - OpDecorate %154 RelaxedPrecision - OpDecorate %us2D RelaxedPrecision - OpDecorate %us2D DescriptorSet 0 - OpDecorate %us2D Binding 12 - OpDecorate %us3D RelaxedPrecision - OpDecorate %us3D DescriptorSet 0 - OpDecorate %us3D Binding 13 - OpDecorate %usCube RelaxedPrecision - OpDecorate %usCube DescriptorSet 0 - OpDecorate %usCube Binding 14 - OpDecorate %us2DArray RelaxedPrecision - OpDecorate %us2DArray DescriptorSet 0 - OpDecorate %us2DArray Binding 15 - OpDecorate %ic4D RelaxedPrecision - OpDecorate %ic4D Flat - OpDecorate %ic4D Location 3 - OpDecorate %65 RelaxedPrecision - OpMemberDecorate %S2 0 RelaxedPrecision - OpMemberDecorate %S2 1 RelaxedPrecision - OpDecorate %s2 Location 8 - OpDecorate %sc RelaxedPrecision - OpDecorate %sc Location 0 - OpDecorate %sf RelaxedPrecision - OpDecorate %sf Location 1 - OpDecorate %arrayedSampler RelaxedPrecision - OpDecorate %arrayedSampler DescriptorSet 0 - OpDecorate %arrayedSampler Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Function_v4float = OpTypePointer Function %v4float - %10 = OpTypeImage %float 2D 0 0 0 1 Unknown - %11 = OpTypeSampledImage %10 -%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11 - %s2D = OpVariable %_ptr_UniformConstant_11 UniformConstant - %v2float = OpTypeVector %float 2 -%_ptr_Input_v2float = OpTypePointer Input %v2float - %c2D = OpVariable %_ptr_Input_v2float Input - %20 = OpTypeImage %float 3D 0 0 0 1 Unknown - %21 = OpTypeSampledImage %20 -%_ptr_UniformConstant_21 = OpTypePointer UniformConstant %21 - %s3D = OpVariable %_ptr_UniformConstant_21 UniformConstant -%_ptr_Input_v4float = OpTypePointer Input %v4float - %c4D = OpVariable %_ptr_Input_v4float Input - %29 = OpTypeImage %float 2D 0 1 0 1 Unknown - %30 = OpTypeSampledImage %29 -%_ptr_UniformConstant_30 = OpTypePointer UniformConstant %30 - %s2DArray = OpVariable %_ptr_UniformConstant_30 UniformConstant - %v3float = OpTypeVector %float 3 -%_ptr_Input_v3float = OpTypePointer Input %v3float - %c3D = OpVariable %_ptr_Input_v3float Input -%float_1_20000005 = OpConstant %float 1.20000005 - %int = OpTypeInt 32 1 - %v3int = OpTypeVector %int 3 -%_ptr_Input_v3int = OpTypePointer Input %v3int - %ic3D = OpVariable %_ptr_Input_v3int Input -%_ptr_Input_int = OpTypePointer Input %int - %ic1D = OpVariable %_ptr_Input_int Input -%_ptr_Function_float = OpTypePointer Function %float - %53 = OpTypeImage %float 2D 1 0 0 1 Unknown - %54 = OpTypeSampledImage %53 -%_ptr_UniformConstant_54 = OpTypePointer UniformConstant %54 - %s2DShadow = OpVariable %_ptr_UniformConstant_54 UniformConstant -%_ptr_Input_float = OpTypePointer Input %float - %c1D = OpVariable %_ptr_Input_float Input - %v2int = OpTypeVector %int 2 - %int_2 = OpConstant %int 2 - %int_3 = OpConstant %int 3 - %65 = OpConstantComposite %v2int %int_2 %int_3 - %72 = OpTypeImage %float Cube 0 0 0 1 Unknown - %73 = OpTypeSampledImage %72 -%_ptr_UniformConstant_73 = OpTypePointer UniformConstant %73 - %sCube = OpVariable %_ptr_UniformConstant_73 UniformConstant - %81 = OpTypeImage %float 2D 1 1 0 1 Unknown - %82 = OpTypeSampledImage %81 -%_ptr_UniformConstant_82 = OpTypePointer UniformConstant %82 -%s2DArrayShadow = OpVariable %_ptr_UniformConstant_82 UniformConstant - %v4int = OpTypeVector %int 4 -%_ptr_Function_v4int = OpTypePointer Function %v4int - %104 = OpTypeImage %int 2D 0 0 0 1 Unknown - %105 = OpTypeSampledImage %104 -%_ptr_UniformConstant_105 = OpTypePointer UniformConstant %105 - %is2D = OpVariable %_ptr_UniformConstant_105 UniformConstant - %125 = OpTypeImage %int 3D 0 0 0 1 Unknown - %126 = OpTypeSampledImage %125 -%_ptr_UniformConstant_126 = OpTypePointer UniformConstant %126 - %is3D = OpVariable %_ptr_UniformConstant_126 UniformConstant -%float_4_19999981 = OpConstant %float 4.19999981 - %133 = OpTypeImage %int Cube 0 0 0 1 Unknown - %134 = OpTypeSampledImage %133 -%_ptr_UniformConstant_134 = OpTypePointer UniformConstant %134 - %isCube = OpVariable %_ptr_UniformConstant_134 UniformConstant - %141 = OpTypeImage %int 2D 0 1 0 1 Unknown - %142 = OpTypeSampledImage %141 -%_ptr_UniformConstant_142 = OpTypePointer UniformConstant %142 - %is2DArray = OpVariable %_ptr_UniformConstant_142 UniformConstant - %150 = OpTypeImage %float Cube 1 0 0 1 Unknown - %151 = OpTypeSampledImage %150 -%_ptr_UniformConstant_151 = OpTypePointer UniformConstant %151 -%sCubeShadow = OpVariable %_ptr_UniformConstant_151 UniformConstant - %uint = OpTypeInt 32 0 - %160 = OpTypeImage %uint 2D 0 0 0 1 Unknown - %161 = OpTypeSampledImage %160 -%_ptr_UniformConstant_161 = OpTypePointer UniformConstant %161 - %us2D = OpVariable %_ptr_UniformConstant_161 UniformConstant - %164 = OpTypeImage %uint 3D 0 0 0 1 Unknown - %165 = OpTypeSampledImage %164 -%_ptr_UniformConstant_165 = OpTypePointer UniformConstant %165 - %us3D = OpVariable %_ptr_UniformConstant_165 UniformConstant - %168 = OpTypeImage %uint Cube 0 0 0 1 Unknown - %169 = OpTypeSampledImage %168 -%_ptr_UniformConstant_169 = OpTypePointer UniformConstant %169 - %usCube = OpVariable %_ptr_UniformConstant_169 UniformConstant - %172 = OpTypeImage %uint 2D 0 1 0 1 Unknown - %173 = OpTypeSampledImage %172 -%_ptr_UniformConstant_173 = OpTypePointer UniformConstant %173 - %us2DArray = OpVariable %_ptr_UniformConstant_173 UniformConstant -%_ptr_Input_v4int = OpTypePointer Input %v4int - %ic4D = OpVariable %_ptr_Input_v4int Input - %S2 = OpTypeStruct %v3float %float -%_ptr_Input_S2 = OpTypePointer Input %S2 - %s2 = OpVariable %_ptr_Input_S2 Input -%_ptr_Output_v3float = OpTypePointer Output %v3float - %sc = OpVariable %_ptr_Output_v3float Output -%_ptr_Output_float = OpTypePointer Output %float - %sf = OpVariable %_ptr_Output_float Output - %uint_5 = OpConstant %uint 5 -%_arr_11_uint_5 = OpTypeArray %11 %uint_5 -%_ptr_UniformConstant__arr_11_uint_5 = OpTypePointer UniformConstant %_arr_11_uint_5 -%arrayedSampler = OpVariable %_ptr_UniformConstant__arr_11_uint_5 UniformConstant - %main = OpFunction %void None %3 - %5 = OpLabel - %v = OpVariable %_ptr_Function_v4float Function - %f = OpVariable %_ptr_Function_float Function - %iv = OpVariable %_ptr_Function_v4int Function - %14 = OpLoad %11 %s2D - %18 = OpLoad %v2float %c2D - %19 = OpImageSampleImplicitLod %v4float %14 %18 - OpStore %v %19 - %24 = OpLoad %21 %s3D - %27 = OpLoad %v4float %c4D - %28 = OpImageSampleProjImplicitLod %v4float %24 %27 - OpStore %v %28 - %33 = OpLoad %30 %s2DArray - %37 = OpLoad %v3float %c3D - %39 = OpImageSampleExplicitLod %v4float %33 %37 Lod %float_1_20000005 - OpStore %v %39 - %40 = OpLoad %21 %s3D - %45 = OpLoad %v3int %ic3D - %48 = OpLoad %int %ic1D - %49 = OpImage %20 %40 - %50 = OpImageFetch %v4float %49 %45 Lod %48 - OpStore %v %50 - %57 = OpLoad %54 %s2DShadow - %58 = OpLoad %v3float %c3D - %61 = OpLoad %float %c1D - %66 = OpCompositeExtract %float %58 2 - %67 = OpImageSampleDrefExplicitLod %float %57 %58 %66 Lod|ConstOffset %61 %65 - OpStore %f %67 - %68 = OpLoad %11 %s2D - %69 = OpLoad %v3float %c3D - %70 = OpLoad %float %c1D - %71 = OpImageSampleProjExplicitLod %v4float %68 %69 Lod|ConstOffset %70 %65 - OpStore %v %71 - %76 = OpLoad %73 %sCube - %77 = OpLoad %v3float %c3D - %78 = OpLoad %v3float %c3D - %79 = OpLoad %v3float %c3D - %80 = OpImageSampleExplicitLod %v4float %76 %77 Grad %78 %79 - OpStore %v %80 - %85 = OpLoad %82 %s2DArrayShadow - %86 = OpLoad %v4float %c4D - %87 = OpLoad %v2float %c2D - %88 = OpLoad %v2float %c2D - %89 = OpCompositeExtract %float %86 3 - %90 = OpImageSampleDrefExplicitLod %float %85 %86 %89 Grad|ConstOffset %87 %88 %65 - OpStore %f %90 - %91 = OpLoad %21 %s3D - %92 = OpLoad %v4float %c4D - %93 = OpLoad %v3float %c3D - %94 = OpLoad %v3float %c3D - %95 = OpImageSampleProjExplicitLod %v4float %91 %92 Grad %93 %94 - OpStore %v %95 - %96 = OpLoad %11 %s2D - %97 = OpLoad %v3float %c3D - %98 = OpLoad %v2float %c2D - %99 = OpLoad %v2float %c2D - %100 = OpImageSampleProjExplicitLod %v4float %96 %97 Grad|ConstOffset %98 %99 %65 - OpStore %v %100 - %108 = OpLoad %105 %is2D - %109 = OpLoad %v2float %c2D - %110 = OpImageSampleImplicitLod %v4int %108 %109 - OpStore %iv %110 - %111 = OpLoad %105 %is2D - %112 = OpLoad %v4float %c4D - %113 = OpCompositeExtract %float %112 3 - %114 = OpCompositeInsert %v4float %113 %112 2 - %115 = OpImageSampleProjImplicitLod %v4int %111 %114 ConstOffset %65 - OpStore %iv %115 - %116 = OpLoad %105 %is2D - %117 = OpLoad %v3float %c3D - %118 = OpLoad %float %c1D - %119 = OpImageSampleProjExplicitLod %v4int %116 %117 Lod %118 - OpStore %iv %119 - %120 = OpLoad %105 %is2D - %121 = OpLoad %v3float %c3D - %122 = OpLoad %v2float %c2D - %123 = OpLoad %v2float %c2D - %124 = OpImageSampleProjExplicitLod %v4int %120 %121 Grad %122 %123 - OpStore %iv %124 - %129 = OpLoad %126 %is3D - %130 = OpLoad %v3float %c3D - %132 = OpImageSampleImplicitLod %v4int %129 %130 Bias %float_4_19999981 - OpStore %iv %132 - %137 = OpLoad %134 %isCube - %138 = OpLoad %v3float %c3D - %139 = OpLoad %float %c1D - %140 = OpImageSampleExplicitLod %v4int %137 %138 Lod %139 - OpStore %iv %140 - %145 = OpLoad %142 %is2DArray - %146 = OpLoad %v3int %ic3D - %147 = OpLoad %int %ic1D - %148 = OpImage %141 %145 - %149 = OpImageFetch %v4int %148 %146 Lod %147 - OpStore %iv %149 - %154 = OpLoad %151 %sCubeShadow - %155 = OpImage %150 %154 - %156 = OpImageQuerySizeLod %v2int %155 %int_2 - %157 = OpLoad %v4int %iv - %158 = OpVectorShuffle %v4int %157 %156 4 5 2 3 - OpStore %iv %158 - OpReturn - OpFunctionEnd diff --git a/deps/glslang/Test/baseResults/whileLoop.frag.out b/deps/glslang/Test/baseResults/whileLoop.frag.out deleted file mode 100644 index cfe972da..00000000 --- a/deps/glslang/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/Test/baseResults/xfbUnsizedArray.error.tese.out b/deps/glslang/Test/baseResults/xfbUnsizedArray.error.tese.out deleted file mode 100644 index df3495f1..00000000 --- a/deps/glslang/Test/baseResults/xfbUnsizedArray.error.tese.out +++ /dev/null @@ -1,35 +0,0 @@ -xfbUnsizedArray.error.tese -ERROR: 0:4: 'xfb_offset' : unsized array in buffer 0 -ERROR: 1 compilation errors. No code generated. - - -Shader version: 430 -Requested GL_ARB_enhanced_layouts -in xfb mode -input primitive = isolines -vertex spacing = none -triangle order = none -using point mode -ERROR: node is still EOpNull! -0:6 Function Definition: main( ( global void) -0:6 Function Parameters: -0:? Linker Objects -0:? 'unsized' (layout( xfb_buffer=0 xfb_offset=0) out unsized 1-element array of 4-component vector of float) - - -Linked tessellation evaluation stage: - - -Shader version: 430 -Requested GL_ARB_enhanced_layouts -in xfb mode -input primitive = isolines -vertex spacing = equal_spacing -triangle order = ccw -using point mode -ERROR: node is still EOpNull! -0:6 Function Definition: main( ( global void) -0:6 Function Parameters: -0:? Linker Objects -0:? 'unsized' (layout( xfb_buffer=0 xfb_offset=0) out 1-element array of 4-component vector of float) - diff --git a/deps/glslang/Test/baseResults/xfbUnsizedArray.error.vert.out b/deps/glslang/Test/baseResults/xfbUnsizedArray.error.vert.out deleted file mode 100644 index 36041413..00000000 --- a/deps/glslang/Test/baseResults/xfbUnsizedArray.error.vert.out +++ /dev/null @@ -1,69 +0,0 @@ -xfbUnsizedArray.error.vert -ERROR: 0:4: 'xfb_offset' : unsized array in buffer 0 -ERROR: 1 compilation errors. No code generated. - - -Shader version: 430 -Requested GL_ARB_enhanced_layouts -in xfb mode -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 'result' ( temp 4-component vector of float) -0:11 'in_vs' ( in 4-component vector of float) -0:13 move second child to first child ( temp 4-component vector of float) -0:13 direct index (layout( xfb_buffer=0 xfb_offset=0) smooth temp 4-component vector of float) -0:13 'xfb_buffer' (layout( xfb_buffer=0 xfb_offset=0) smooth out unsized 1-element array of 4-component vector of float) -0:13 Constant: -0:13 0 (const int) -0:13 divide ( temp 4-component vector of float) -0:13 'result' ( temp 4-component vector of float) -0:13 Constant: -0:13 2.000000 -0:15 move second child to first child ( temp 4-component vector of float) -0:15 'out_vs' ( smooth out 4-component vector of float) -0:15 'result' ( temp 4-component vector of float) -0:? Linker Objects -0:? 'xfb_buffer' (layout( xfb_buffer=0 xfb_offset=0) smooth out unsized 1-element array of 4-component vector of float) -0:? 'in_vs' ( in 4-component vector of float) -0:? 'out_vs' ( smooth out 4-component vector of float) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - - -Linked vertex stage: - - -Shader version: 430 -Requested GL_ARB_enhanced_layouts -in xfb mode -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 'result' ( temp 4-component vector of float) -0:11 'in_vs' ( in 4-component vector of float) -0:13 move second child to first child ( temp 4-component vector of float) -0:13 direct index (layout( xfb_buffer=0 xfb_offset=0) smooth temp 4-component vector of float) -0:13 'xfb_buffer' (layout( xfb_buffer=0 xfb_offset=0) smooth out 1-element array of 4-component vector of float) -0:13 Constant: -0:13 0 (const int) -0:13 divide ( temp 4-component vector of float) -0:13 'result' ( temp 4-component vector of float) -0:13 Constant: -0:13 2.000000 -0:15 move second child to first child ( temp 4-component vector of float) -0:15 'out_vs' ( smooth out 4-component vector of float) -0:15 'result' ( temp 4-component vector of float) -0:? Linker Objects -0:? 'xfb_buffer' (layout( xfb_buffer=0 xfb_offset=0) smooth out 1-element array of 4-component vector of float) -0:? 'in_vs' ( in 4-component vector of float) -0:? 'out_vs' ( smooth out 4-component vector of float) -0:? 'gl_VertexID' ( gl_VertexId int VertexId) -0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) - diff --git a/deps/glslang/Test/bump b/deps/glslang/Test/bump deleted file mode 100644 index 03df6327..00000000 --- a/deps/glslang/Test/bump +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env bash -cp localResults/* baseResults/ - diff --git a/deps/glslang/Test/comment.frag b/deps/glslang/Test/comment.frag deleted file mode 100644 index f5c565c2..00000000 --- a/deps/glslang/Test/comment.frag +++ /dev/null @@ -1,19 +0,0 @@ - - // -/* anotehn t* ontuh * / tnoahnt /* oo */ -/* multi line... - -ao */ -/* no escape \ -oanot */ -// escape nothing \o oeu -// escape newline \ -still in a comment -// escape newline \ - -// a different comment -#version 430 core -in vec4 v; -void main() {} - - diff --git a/deps/glslang/Test/compoundsuffix.frag.hlsl b/deps/glslang/Test/compoundsuffix.frag.hlsl deleted file mode 100644 index 59322acd..00000000 --- a/deps/glslang/Test/compoundsuffix.frag.hlsl +++ /dev/null @@ -1,6 +0,0 @@ -void main(out float4 fragColor : SV_TARGET0) -{ - fragColor = 1; -} - - diff --git a/deps/glslang/Test/compoundsuffix.vert.glsl b/deps/glslang/Test/compoundsuffix.vert.glsl deleted file mode 100644 index 26862fff..00000000 --- a/deps/glslang/Test/compoundsuffix.vert.glsl +++ /dev/null @@ -1,4 +0,0 @@ -void main() -{ - gl_Position = vec4(1.0); -} \ No newline at end of file diff --git a/deps/glslang/Test/conditionalDiscard.frag b/deps/glslang/Test/conditionalDiscard.frag deleted file mode 100644 index 58e6fa5d..00000000 --- a/deps/glslang/Test/conditionalDiscard.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 110 - -uniform sampler2D tex; -varying vec2 coord; - -void main (void) -{ - vec4 v = texture2D(tex, coord); - - if (v == vec4(0.1,0.2,0.3,0.4)) - discard; - - gl_FragColor = v; -} diff --git a/deps/glslang/Test/constErrors.frag b/deps/glslang/Test/constErrors.frag deleted file mode 100644 index 0067af11..00000000 --- a/deps/glslang/Test/constErrors.frag +++ /dev/null @@ -1,35 +0,0 @@ -#version 330 - -in vec4 inVar; -out vec4 outVar; - -const int constInt = 3; - -uniform int uniformInt; - -void main() -{ - const int a1 = 2; // okay - const int a2 = constInt; // okay - const int a3 = uniformInt; // error - - vec4 c[constInt]; // okay - vec4 d[uniformInt]; // error - vec4 e[constInt + uniformInt]; // error - vec4 f[uniformInt + constInt]; // error - - vec4 g[int(sin(0.3)) + 1]; // okay -} - -const struct S { - vec3 v3; - ivec2 iv2; -} s = S(vec3(3.0), ivec2(3, constInt + uniformInt)); // ERROR, non-const y componenent - -const struct S2 { - vec3 v3; - ivec2 iv2; - mat2x4 m; -} s2 = S2(vec3(3.0), ivec2(3, constInt), mat2x4(1.0, 2.0, 3.0, inVar.x, 5.0, 6.0, 7.0, 8.0)); // ERROR, non-constant matrix - -const float f = 3; // okay, type conversion diff --git a/deps/glslang/Test/constFold.frag b/deps/glslang/Test/constFold.frag deleted file mode 100644 index 49373e6c..00000000 --- a/deps/glslang/Test/constFold.frag +++ /dev/null @@ -1,151 +0,0 @@ -#version 430 - -const int a = 1; -const int b = 2; -const int c = a + b; // 3 -const int d = c - a; // 2 -const float e = float(d); // 2.0 -const float f = e * float(c); // 6.0 -const float g = f / float(d); // 3.0 - -const vec2 pytho = vec2(3.0, 4.0); - -in vec4 inv; -out vec4 FragColor; -out vec2 out2; -out vec4 out3; -out vec4 out4; -out ivec4 out5; -out vec3 out6; -out vec4 out7; -out vec4 out8; -out vec4 out9; -out vec4 out10; -out vec4 out11; -out ivec2 out12; -out uvec3 out13; - -void main() -{ - vec4 dx = dFdx(inv); - const ivec4 v = ivec4(a, b, c, d); - vec4 array2[v.y]; // 2 - const ivec4 u = ~v; - - const float h = degrees(g); // 171.88 - - FragColor = vec4(e, f, g, h); // 2, 6, 3, 171.88 - - vec4 array3[c]; // 3 - vec4 arrayMax[int(max(float(array2.length()), float(array3.length())))]; - vec4 arrayMin[int(min(float(array2.length()), float(array3.length())))]; - FragColor = vec4(arrayMax.length(), arrayMin.length(), sin(3.14), cos(3.14)); // 3, 2, .00159, -.999 - out2 = length(pytho) + normalize(pytho) + dFdx(pytho) + dFdy(pytho) + fwidth(pytho); // 5+3/5, 5+4/5 - out3 = vec4(exp(3.0), log(10.0), exp2(4.0), log2(256.0)); // 20.08, 2.3, 16, 8 - out4 = vec4(sqrt(100.0), inversesqrt(100.0), abs(-4.7), abs(10.9)); // 10, .1, 4.7, 10.9 - out5 = ivec4(abs(-8) + sign(0), abs(17), sign(-12), sign(9)); // 8, 17, -1, 1 - out6 = vec3(sign(-8.8), sign(18.0), sign(0.0)); // -1.0, 1.0, 0.0 - out7 = vec4(floor(4.2), ceil(-4.1), trunc(5.9), trunc(-5.9)); // 4, -4, 5, -5 - out8 = vec4(round(4.4), round(4.6), roundEven(4.5), roundEven(-5.5)); // 4, 5, 4, -6 - out9 = vec4(roundEven(7.5), roundEven(-4.5), fract(2.345), fract(-2.6)); // 8, -4, .345, 0.4 - out10 = vec4(isinf(4.0/0.0), isinf(-3.0/0.0), isinf(0.0/0.0), isinf(-93048593405938405938405.0)); // true, true, false, false -> 1.0, 1.0, 0.0, 0.0 - out11 = vec4(isnan(4.0/0.0), isnan(-3.0/0.0), isnan(0.0/0.0), isnan(-93048593405938405938405.0)); // false, false, true, false -> 0.0, 1.0, 0.0, 0.0 - out11 = vec4(tan(0.8), atan(1.029), atan(8.0, 10.0), atan(10000.0)); // 1.029, 0.8, 0.6747, 1.57 - out11 = vec4(asin(0.0), asin(0.5), acos(0.0), acos(0.5)); // 0.0, .523599, 1.57, 1.047 - - const vec4 v1 = vec4(1.0, 0.0, 0.5, -0.2); - const vec4 v2 = vec4(0.2, 0.3, 0.4, 0.5); - out11 = atan(v1, v2); // 1.373401, 0.0, 0.896055, -0.380506 - - const ivec2 v3 = ivec2(15.0, 17.0); - const ivec2 v4 = ivec2(17.0, 15.0); - out12 = min(v3, 16); // 15, 16 - out12 = max(v3, v4); // 17, 17 - out2 = pow(vec2(v3), vec2(2.5, 3.0)); // 871.4, 4913 - out13 = clamp(uvec3(1, 20, 50), 10u, 30u); // 10, 20, 30 - out2 = mix(vec2(3.0, 4.0), vec2(5.0, 6.0), bvec2(false, true)); // 3.0, 6.0 - out2 = mix(vec2(3.0, 4.0), vec2(5.0, 6.0), 0.25); // 3.5, 4.5 - out2 = step(0.5, vec2(0.2, 0.6)); // 0.0, 1.0 - out11 = smoothstep(50.0, 60.0, vec4(40.0, 51.0, 55.0, 70.0)); // 0.0, 0.028, 0.5, 1.0 -} - -const struct S { - vec3 v3; - ivec2 iv2; - mat2x4 m; -} s = S(vec3(3.0), ivec2(3, a + b), mat2x4(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0)); - -void foo() -{ - float a[s.iv2.y]; // 3 element array - a[0] = s.m[1].z; // 7.0 - b % 0; // int - b / 0; - e / 0; -e / 0; 0.0 / 0.0; - const uint ua = 5; - const uvec2 ub = uvec2(6, 7); - const uint uc = 8; - ub % 4u; - 0u % uc; - ub % 0u; -} - -const mat2 m2 = mat2(2, 3, 4, 5); -const mat3 m3 = mat3(m2); -const int mc = int(m3[2][2]); -float a1[mc]; -float a2[int(m3[2][1]) + 2]; // size 2 -float a3[int(m3[1][0])]; // size 4 -const vec2 v2 = vec2(1, 2); -const vec3 v3 = vec3(3, 4, 5); -float a4[uint(mat3(v2, v3, v2, v2)[2][2])]; // size 2 - -void foo2() -{ - a1[0]; // array size 1 - a2[0]; // array size 2 - a3[0]; // array size 4 - a4[0]; // array size 2 - v2[-1]; // ERROR - v3[4]; // ERROR - m3[0][-2]; // ERROR - m2[-1][1]; // ERROR - m3[1][3]; // ERROR - m3[3][1]; // ERROR - int p; - p = -2147483647 / -1; - p = -2147483648 / -1; - p = 2147483647 / -1; - float f = vec4(7.8 < 2.4 ? -1.333 : 1.444).a; - f = vec4(inv.x < 2.4 ? -1.0 : 1.0).a; // not folded, ensuring no propagation -} - -const mat2 mm2 = mat2(1.0, 2.0, 3.0, 4.0); -const mat3x2 mm32 = mat3x2(10.0, 11.0, 12.0, 13.0, 14.0, 15.0); -const mat2 m22 = mat2(vec4(1.0, 2.0, 3.0, 4.0)); -const mat3x4 mm34 = mat3x4(7.0); -const vec4 mv4 = vec4(m22); - -void foo3() -{ - mat3x2 r32 = mm2 * mm32; -} - -struct cag { - int i; - float f; - bool b; -}; -const cag a0[3] = cag[3](cag(3, 2.0, true), cag(1, 5.0, true), cag(1, 9.0, false)); - -void foo4() -{ - int a = int(a0[2].f); -} - -const bool cval1 = all(bvec4(true, true, true, true)); -const bool cval2 = all(bvec4(false, false, false, false)); -const bool cval3 = all(bvec4(true, true, false, true)); -const bool cval4 = any(bvec4(true, true, true, true)); -const bool cval5 = any(bvec4(false, false, false, false)); -const bool cval6 = any(bvec4(false, true, false, false)); diff --git a/deps/glslang/Test/constFoldIntMin.frag b/deps/glslang/Test/constFoldIntMin.frag deleted file mode 100644 index 68618326..00000000 --- a/deps/glslang/Test/constFoldIntMin.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 460 core -#extension GL_AMD_gpu_shader_int16 : enable -#extension GL_ARB_gpu_shader_int64 : enable - -void a(){ - int16_t u = -32768S / -1S; // SHRT_MIN - int v = -2147483648 / -1; // INT_MIN - int64_t w = -9223372036854775808L / -1L; // LLONG_MIN - int16_t x = -32768S % -1S; // SHRT_MIN - int y = -2147483648 % -1; // INT_MIN - int64_t z = -9223372036854775808L % -1L; // LLONG_MIN -} \ No newline at end of file diff --git a/deps/glslang/Test/constantUnaryConversion.comp b/deps/glslang/Test/constantUnaryConversion.comp deleted file mode 100644 index f0710cd0..00000000 --- a/deps/glslang/Test/constantUnaryConversion.comp +++ /dev/null @@ -1,69 +0,0 @@ -#version 450 - -#extension GL_EXT_shader_explicit_arithmetic_types : require - -const bool bool_init = true; -const int8_t int8_t_init = int8_t(-1); -const int16_t int16_t_init = int16_t(-2); -const int32_t int32_t_init = int32_t(-3); -const int64_t int64_t_init = int64_t(-4); -const uint8_t uint8_t_init = uint8_t(1); -const uint16_t uint16_t_init = uint16_t(2); -const uint32_t uint32_t_init = uint32_t(3); -const uint64_t uint64_t_init = uint64_t(4); -const float16_t float16_t_init = float16_t(42.0); -const float32_t float32_t_init = float32_t(13.0); -const float64_t float64_t_init = float64_t(4.0); - -const float16_t neg_float16_t_init = float16_t(-42.0); -const float32_t neg_float32_t_init = float32_t(-13.0); -const float64_t neg_float64_t_init = float64_t(-4.0); - -#define TYPE_TO_TYPE(x, y) \ - const x y##_to_##x = x(y##_init) - -#define TYPE_TO_TYPE_PREFIX(prefix, x, y) \ - const x prefix##_##y##_to_##x = x(prefix##_##y##_init) - -#define TYPE_TO(x) \ - TYPE_TO_TYPE(x, bool); \ - TYPE_TO_TYPE(x, int8_t); \ - TYPE_TO_TYPE(x, int16_t); \ - TYPE_TO_TYPE(x, int32_t); \ - TYPE_TO_TYPE(x, int64_t); \ - TYPE_TO_TYPE(x, uint8_t); \ - TYPE_TO_TYPE(x, uint16_t); \ - TYPE_TO_TYPE(x, uint32_t); \ - TYPE_TO_TYPE(x, uint64_t); \ - TYPE_TO_TYPE(x, float16_t); \ - TYPE_TO_TYPE(x, float32_t); \ - TYPE_TO_TYPE(x, float64_t) - -TYPE_TO(bool); -TYPE_TO(int8_t); -TYPE_TO(int16_t); -TYPE_TO(int32_t); -TYPE_TO(int64_t); -TYPE_TO(uint8_t); -TYPE_TO(uint16_t); -TYPE_TO(uint32_t); -TYPE_TO(uint64_t); -TYPE_TO(float16_t); -TYPE_TO(float32_t); -TYPE_TO(float64_t); - -#define NEG_FLOAT_TO(x) \ - TYPE_TO_TYPE_PREFIX(neg, x, float16_t); \ - TYPE_TO_TYPE_PREFIX(neg, x, float32_t); \ - TYPE_TO_TYPE_PREFIX(neg, x, float64_t) - -NEG_FLOAT_TO(bool); -NEG_FLOAT_TO(int8_t); -NEG_FLOAT_TO(int16_t); -NEG_FLOAT_TO(int32_t); -NEG_FLOAT_TO(int64_t); -NEG_FLOAT_TO(float16_t); -NEG_FLOAT_TO(float32_t); -NEG_FLOAT_TO(float64_t); - -void main() {} diff --git a/deps/glslang/Test/contradict_0.geom b/deps/glslang/Test/contradict_0.geom deleted file mode 100644 index 04f9fd5b..00000000 --- a/deps/glslang/Test/contradict_0.geom +++ /dev/null @@ -1,13 +0,0 @@ -#version 330 - -layout(points) in; -layout(triangle_strip, max_vertices = 4) out; - -float getV(); - -void main (void) -{ - float v = getV(); - EndPrimitive(); - EndPrimitive(); -} diff --git a/deps/glslang/Test/contradict_1.geom b/deps/glslang/Test/contradict_1.geom deleted file mode 100644 index 4cc89195..00000000 --- a/deps/glslang/Test/contradict_1.geom +++ /dev/null @@ -1,9 +0,0 @@ -#version 330 - -layout(lines) in; -layout(line_strip, max_vertices = 6) out; - -float getV() -{ - return 1.0; -} diff --git a/deps/glslang/Test/conversion.frag b/deps/glslang/Test/conversion.frag deleted file mode 100644 index f17293b8..00000000 --- a/deps/glslang/Test/conversion.frag +++ /dev/null @@ -1,112 +0,0 @@ -#version 130 - -uniform bool u_b; -uniform bvec2 u_b2; -uniform bvec3 u_b3; -uniform bvec4 u_b4; - -uniform int u_i; -uniform ivec2 u_i2; -uniform ivec3 u_i3; -uniform ivec4 u_i4; - -uniform float u_f; -uniform vec2 u_f2; -uniform vec3 u_f3; -uniform vec4 u_f4; - -uniform bool i_b; -uniform bvec2 i_b2; -uniform bvec3 i_b3; -uniform bvec4 i_b4; - -flat in int i_i; -flat in ivec2 i_i2; -flat in ivec3 i_i3; -flat in ivec4 i_i4; - -in float i_f; -in vec2 i_f2; -in vec3 i_f3; -in vec4 i_f4; - -void main() -{ - bool b = bool(u_i) ^^ bool(u_f); - bvec2 b2 = bvec2(u_i, u_f); - bvec3 b3 = bvec3(u_i, u_f, i_i); - bvec4 b4 = bvec4(u_i, u_f, i_i, i_f); - - int i = int(u_f) + int(b); - ivec2 i2 = ivec2(u_f2) + ivec2(b2); - ivec3 i3 = ivec3(u_f3) + ivec3(b3); - ivec4 i4 = ivec4(u_f4) + ivec4(b4); - - float f = i; - vec2 f2 = i2; - vec3 f3 = i3; - vec4 f4 = i4; - - f += (float(i) + float(b)); - f2 -= vec2(i2) + vec2(b2); - f3 /= vec3(i3) + vec3(b3); - f4 += vec4(i4) + vec4(b4); - - f4 += vec4(bvec4(i_i4)); - f4 += vec4(bvec4(u_f4)); - - f += f - i; - f2 += vec2(f, i) + i2; - f3 += i3 + vec3(f, i, f); - f4 += vec4(b, i, f, i) + i4; - - f2 += vec2(f, i) * i; - f3 += vec3(f, i, f) + i; - f4 += i - vec4(b, i, f, i); - - i2 += ivec2(f, i); - i3 += ivec3(f, i, f); - i4 += ivec4(b, i, f, i); - - if (f < i || i < f || - f2 == i2 || - i3 != f3) - f = (b ? i : f2.x) + (b2.x ? f3.x : i2.y); - - gl_FragColor = - b || - b2.x || - b2.y || - b3.x || - b3.y || - b3.z || - b4.x || - b4.y || - b4.z || - b4.w ? vec4( - i + - i2.x + - i2.y + - i3.x + - i3.y + - i3.z + - i4.x + - i4.y + - i4.z + - i4.w + - f + - f2.x + - f2.y + - f3.x + - f3.y + - f3.z + - f4.x + - f4.y + - f4.z + - f4.w) : vec4(1.0); - - // with constants... - ivec4 cv2 = ivec4(1.0); - bvec4 cv5 = bvec4(cv2); - gl_FragColor += float(cv5); -} diff --git a/deps/glslang/Test/coord_conventions.frag b/deps/glslang/Test/coord_conventions.frag deleted file mode 100644 index 4ae6060e..00000000 --- a/deps/glslang/Test/coord_conventions.frag +++ /dev/null @@ -1,36 +0,0 @@ -#version 140 - -#extension GL_ARB_fragment_coord_conventions: require -#extension GL_ARB_explicit_attrib_location : enable - -#ifdef GL_ES -precision mediump float; -#endif - -in vec4 i; - -layout (origin_upper_left,pixel_center_integer) in vec4 gl_FragCoord; -layout (location = 0) out vec4 myColor; - -const float eps=0.001; - -void main() -{ - myColor = vec4(0.2); - if (gl_FragCoord.y >= 10) { - myColor.b = 0.8; - } - if (gl_FragCoord.y == trunc(gl_FragCoord.y)) { - myColor.g = 0.8; - } - if (gl_FragCoord.x == trunc(gl_FragCoord.x)) { - myColor.r = 0.8; - } - - vec4 diff = gl_FragCoord - i; - if (abs(diff.z)>eps) - myColor.b = 0.5; - if (abs(diff.w)>eps) - myColor.a = 0.5; - -} \ No newline at end of file diff --git a/deps/glslang/Test/cppBad.vert b/deps/glslang/Test/cppBad.vert deleted file mode 100644 index c1548c83..00000000 --- a/deps/glslang/Test/cppBad.vert +++ /dev/null @@ -1,6 +0,0 @@ -#define n#0# -#define m #0# -#if m -#endif -#define n() -int n" \ No newline at end of file diff --git a/deps/glslang/Test/cppBad2.vert b/deps/glslang/Test/cppBad2.vert deleted file mode 100644 index 5e61b49e..00000000 --- a/deps/glslang/Test/cppBad2.vert +++ /dev/null @@ -1,3 +0,0 @@ -#define a b( -#define b(x) -b(a) \ No newline at end of file diff --git a/deps/glslang/Test/cppBad3.vert b/deps/glslang/Test/cppBad3.vert deleted file mode 100644 index 95343db8..00000000 --- a/deps/glslang/Test/cppBad3.vert +++ /dev/null @@ -1,3 +0,0 @@ -#define f =y(. -#define y(m) -y(f) \ No newline at end of file diff --git a/deps/glslang/Test/cppBad4.vert b/deps/glslang/Test/cppBad4.vert deleted file mode 100644 index ca438411..00000000 --- a/deps/glslang/Test/cppBad4.vert +++ /dev/null @@ -1,4 +0,0 @@ -int,i= -#define f g(#g(y -#define g(m) -g(f) diff --git a/deps/glslang/Test/cppBad5.vert b/deps/glslang/Test/cppBad5.vert deleted file mode 100644 index 9ae5056b..00000000 --- a/deps/glslang/Test/cppBad5.vert +++ /dev/null @@ -1,4 +0,0 @@ -int,i= -#define f g($g(y -#define g(m) -g(f) diff --git a/deps/glslang/Test/cppComplexExpr.vert b/deps/glslang/Test/cppComplexExpr.vert deleted file mode 100644 index bce5ffa3..00000000 --- a/deps/glslang/Test/cppComplexExpr.vert +++ /dev/null @@ -1,183 +0,0 @@ -#version 300 es -#define ON1 -#define ON2 -float sum = 0.0; - -void main() -{ -#if defined(ON1) && (defined(OFF) || defined(ON2)) -//yes - sum += 1.0; -#endif - -#if !defined(ON1) || (defined(OFF) || (!defined(OFF2) && defined(ON2))) -//yes - sum += 20.0; -#endif - -#if defined(ON1) && (defined(OFF) || !defined(ON2)) -//no - sum += 0.1; -#endif - -#if !defined(ON1) || (defined(OFF) || !defined(OFF2) && !defined(ON2)) -//no - sum += 0.2; -#endif - -#if !defined(ON1) || !defined(OFF) || defined(ON2) && defined(OFF2) -//yes - sum += 300.0; -#endif - -#if (!defined(ON1) || !defined(OFF) || defined(ON2)) && defined(OFF2) -//no - sum += 0.4; -#endif - -// sum should be 321.0 - gl_Position = vec4(sum); -} - -#define ADD(a, b) a + b + ((a) + ((b))); - -float foo() -{ - return ADD(gl_Position.xyxwx, 3.0) // ERROR, should be this line number - return ADD(gl_Position.y, 3.0) -} - -#define BIG aonetuhanoethuanoenaoethu snaoetuhs onethausoentuas hnoethaueohnatuoeh santuoehsantouhe snathoensuta hsnoethuasntoe hsnuathoesnuathoenstuh nsoethantseuh toae ua \ - antoeh uantheount oentahoent uahnsoethasnutoehansteuo santhu sneoathu snoethasnut oesanthoesna thusenotha nsthasunoeth ausntehsunathoensuathoesnta uhnsoetha usntoeh uanhs unosethu \ - antoehunatoehu natoehua oentha neotuhan toehu natoehu ntahoe nutah eu natoheunathoen uasoenuasoent asntoehsan tuosnthnu aohenuath eontha untoh eunth unth anth unth nth nth nt \ - a ntoehanu tunth nsont uhansoethausn oehsanthnt heauo eanthuo sh nahnoethansu tohe sanuthoe snathuoesntha snuothe anthusonehtasuntoeh asnuthonsa teauhntoeha onetuha nth \ - anoethuan toentauh noethauntohe anuthoe nathu noethaun oethanuthoe nathuoe ntahu enotha unetha ntuhenaothu enotahun eotha ntoehu aoehuntha enotuh aonethau noethu anoethuna toheua \ - ontehanutoe hnuathoena aoteha aonetuha - -// identical -#define BIG aonetuhanoethuanoenaoethu snaoetuhs onethausoentuas hnoethaueohnatuoeh santuoehsantouhe snathoensuta hsnoethuasntoe hsnuathoesnuathoenstuh nsoethantseuh toae ua \ - antoeh uantheount oentahoent uahnsoethasnutoehansteuo santhu sneoathu snoethasnut oesanthoesna thusenotha nsthasunoeth ausntehsunathoensuathoesnta uhnsoetha usntoeh uanhs unosethu \ - antoehunatoehu natoehua oentha neotuhan toehu natoehu ntahoe nutah eu natoheunathoen uasoenuasoent asntoehsan tuosnthnu aohenuath eontha untoh eunth unth anth unth nth nth nt \ - a ntoehanu tunth nsont uhansoethausn oehsanthnt heauo eanthuo sh nahnoethansu tohe sanuthoe snathuoesntha snuothe anthusonehtasuntoeh asnuthonsa teauhntoeha onetuha nth \ - anoethuan toentauh noethauntohe anuthoe nathu noethaun oethanuthoe nathuoe ntahu enotha unetha ntuhenaothu enotahun eotha ntoehu aoehuntha enotuh aonethau noethu anoethuna toheua \ - ontehanutoe hnuathoena aoteha aonetuha - -// ERROR, one character different -#define BIG aonetuhanoethuanoenaoethu snaoetuhs onethausoentuas hnoethaueohnatuoeh santuoehsantouhe snathoensuta hsnoethuasntoe hsnuathoesnuathoenstuh nsoethantseuh toae ua \ - antoeh uantheount oentahoent uahnsoethasnutoehansteuo santhu sneoathu snoethasnut oesanthoesna thusenotha nsthasunoeth ausntehsunathoensuathoesnta uhnsoetha usntoeh uanhs unosethu \ - antoehunatoehu natoehua oentha neotuhan toehu natoehu ntahoe nutah eu natoheunathoen uasoenuasoent asntoehsan tuosnthnu aohenuath eontha untoh eunth unth anth unth nth nth nt \ - a ntoehanu tunth nsont uhansoethasn oehsanthnt heauo eanthuo sh nahnoethansu tohe sanuthoe snathuoesntha snuothe anthusonehtasuntoeh asnuthonsa teauhntoeha onetuha nth \ - anoethuan toentauh noethauntohe anuthoe nathu noethaun oethanuthoe nathuoe ntahu enotha unetha ntuhenaothu enotahun eotha ntoehu aoehuntha enotuh aonethau noethu anoethuna toheua \ - ontehanutoe hnuathoena aoteha aonetuha - -#define BIGARGS1(aonthanotehu, bonthanotehu, conthanotehu, donthanotehu, eonthanotehu, fonthanotehu, gonthanotehu, honthanotehu, ionthanotehu, jonthanotehu, konthanotehu) jonthanotehu -#define BIGARGS2(aonthanotehu, bonthanotehu, conthanotehu, donthanotehu, eonthanotehu, fonthanotehu, gonthanotehu, honthanotehu, ionthanotehu, jonthanotehu, konthanotehu) jonthanotehu -#define BIGARGS3(aonthanotehu, bonthanotehu, conthanotehu, donthanotehu, eonthanotehu, fonthanotehu, gonthanotehu, honthanotehu, ionthanotehu, jonthanotehu, konthanotehu) jonthanotehu -#define BIGARGS4(aonthanotehu, bonthanotehu, conthanotehu, donthanotehu, eonthanotehu, fonthanotehu, gonthanotehu, honthanotehu, ionthanotehu, jonthanotehu, konthanotehu) jonthanotehu - - -#define foobar(a, b) a + b - -#if foobar(1.1, 2.2) -#error good macro -#else -#error bad macro -#endif - -#if foobar(1 -; -# -# -#endif -#if foobar(1, -; -# -# -#endif -float c = foobar(1.1, 2.2 - ); -#if foobar(1.1, 2.2 -) -#if foobar(1.1, 2.2 -#endif -#endif - -#define VAL0 0 -#define VAL1 1 - -#if UNDEF -#error bad 0 -#else -#error good 0 -#endif - -#if VAL1 || UNDEF -#error good 1 -#else -#error bad 1 -#endif - -#if VAL1 && UNDEF // UNDEF ERROR -#endif - -#if VAL0 || UNDEF // UNDEF ERROR -#endif - -#if VAL0 && UNDEF -#error bad 2 -#else -#error good 1 -#endif - -#if VAL1 || (VAL1 && UNDEF) -#error good 3 -#else -#error bad 3 -#endif - -#if VAL1 && (VAL1 || UNDEF) -#error good 4 -#else -#error bad 4 -#endif - -#if VAL1 < VAL1 || VAL1 > VAL1 || UNDEF // UNDEF ERROR -#endif - -#if VAL1 < VAL1 || VAL1 > VAL1 && UNDEF -#endif - -#if VAL1 || UNDEF && UNDEF2 -#endif - -#if VAL0 || UNDEF && UNDEF2 // UNDEF ERROR -#endif - -#if (VAL1 || UNDEF) && UNDEF2 // UNDEF2 ERROR -#endif - -#if (VAL0 && UNDEF) || UNDEF2 // UNDEF2 ERROR -#endif - -#line 3000 -#error line of this error should be 3000 - -#define __LINE__ 30 -#define __FILE__ -#define __VERSION__ -#define GL_SOME_EXTENSION -#undef __LINE__ -#undef __FILE__ -#undef __VERSION__ -#undef GL_SOME_EXTENSION - -#line 4000 -#line 200 % 0 // ERROR, div by 0 -#if __LINE__ / 0 // ERROR, div by 0 -#endif - -#if 7% // ERROR incomplete expression - -#line 10000 -#if 0 -// ERROR, EOF \ No newline at end of file diff --git a/deps/glslang/Test/cppDeepNest.frag b/deps/glslang/Test/cppDeepNest.frag deleted file mode 100644 index 51c436e4..00000000 --- a/deps/glslang/Test/cppDeepNest.frag +++ /dev/null @@ -1,117 +0,0 @@ -#ifdef O -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#if -#endif diff --git a/deps/glslang/Test/cppIndent.vert b/deps/glslang/Test/cppIndent.vert deleted file mode 100644 index 41bb12e4..00000000 --- a/deps/glslang/Test/cppIndent.vert +++ /dev/null @@ -1,61 +0,0 @@ -#version 110 - -#define ON - -float sum = 0.0; - -void main() -{ - -#ifdef ON -//yes -sum += 1.0; -#endif - -#ifdef OFF - //no - sum += 20.0; -#endif - - #if defined(ON) - //yes - sum += 300.0; - #endif - - #if defined(OFF) - //no - sum += 4000.0; - #endif - - #if !defined(ON) - //no - sum += 50000.0; - #endif - - #if !defined(OFF) - //yes - sum += 600000.0; - #endif - - #if defined (ON) && defined (OFF) -//no -sum += 7000000.0; - #endif - -#if defined ( ON ) && ! defined(OFF) -//yes -sum += 80000000.0; -#endif - -#if defined(OFF) || defined(ON) -//yes -sum += 900000000.0; -#endif - -// sum should be 980600301.0 - gl_Position = vec4(sum); -} - -#define FUNC(a,b) a+b -// needs to be last test in file due to syntax error -void foo986(){ FUNC( (((2)))), 4); } // ERROR, too few arguments ) diff --git a/deps/glslang/Test/cppIntMinOverNegativeOne.frag b/deps/glslang/Test/cppIntMinOverNegativeOne.frag deleted file mode 100644 index b7e0a953..00000000 --- a/deps/glslang/Test/cppIntMinOverNegativeOne.frag +++ /dev/null @@ -1,6 +0,0 @@ -#if (-2147483648 / -1) != 0 -#error INT_MIN / -1 should yield 0, something went wrong. -#endif -#if (-2147483648 % -1) != 0 -#error INT_MIN % -1 should yield 0, something went wrong. -#endif \ No newline at end of file diff --git a/deps/glslang/Test/cppMerge.frag b/deps/glslang/Test/cppMerge.frag deleted file mode 100644 index a499f84f..00000000 --- a/deps/glslang/Test/cppMerge.frag +++ /dev/null @@ -1,24 +0,0 @@ -#version 450 core - -#define PASTER2(type, suffix) type##suffix -#define PASTER3(type, suffix) type## suffix -#define MAKE_TYPE1 image1D dest ## 1; -#define MAKE_TYPE2(type, suffix) PASTER2(type, suffix) -#define MAKE_TYPE3(type, suffix) PASTER3(type, suffix) - -#define PREFIX image -#define PREFIX3 imag -#define SUFFIX2 1D -#define SUFFIX3 e1 D - -#define RESOURCE_TYPE1 MAKE_TYPE1 -#define RESOURCE_TYPE2 MAKE_TYPE2(PREFIX, SUFFIX2) -#define RESOURCE_TYPE3 MAKE_TYPE3(PREFIX3, SUFFIX3) - -layout (set = 0, binding = 0) uniform writeonly RESOURCE_TYPE1 -layout (set = 0, binding = 0) uniform writeonly RESOURCE_TYPE2 dest2; -layout (set = 0, binding = 0) uniform writeonly RESOURCE_TYPE3 dest3; - -void main() -{ -} \ No newline at end of file diff --git a/deps/glslang/Test/cppNest.vert b/deps/glslang/Test/cppNest.vert deleted file mode 100644 index 26038ea9..00000000 --- a/deps/glslang/Test/cppNest.vert +++ /dev/null @@ -1,177 +0,0 @@ -#version 110 - -#define ON - -float sum = 0.0; - -void main() -{ - -#ifdef ON -//yes -sum += 1.0; - - #ifdef OFF - //no - sum += 20.0; - #endif - - #if defined(ON) - //yes - sum += 300.0; - #endif - -#endif - - -#if defined(OFF) -//no -sum += 4000.0; - -#if !defined(ON) -//no -sum += 50000.0; -#endif - - //no - sum += 0.1; - #ifdef ON - //no - sum += 0.2; - #endif - - //no - sum += 0.01; - #ifdef ON - //no - sum += 0.02; - #else - //no - sum += 0.03; - #endif - -//no - sum + 0.3; - -#endif - - -#if !defined(OFF) -//yes -sum += 600000.0; - - #if defined(ON) && !defined(OFF) - //yes - sum += 80000000.0; - - #if defined(OFF) || defined(ON) - //yes - sum += 900000000.0; - - #if defined(ON) && defined(OFF) - //no - sum += 0.7; - #elif !defined(OFF) - //yes - sum += 7000000.0; - #endif - - #endif - - #endif - -#endif - -// sum should be 987600301.0 - gl_Position = vec4(sum); -} - -#define A 1 -#define C 0 -#define E 0 -#define F 1 -#if A - #if C - #if E - int selected4 = 1; - #elif F - int selected4 = 2; - #else - int selected4 = 3; - #endif - #endif - int selected4 = 4; -#endif - -#define ZA 1 -#define ZC 1 -#define ZE 0 -#define ZF 1 -#if ZA - #if ZC - #if ZE - int selected2 = 1; - #elif ZF - int selected2 = 2; - #else - int selected2 = 3; - #endif - #endif -#endif - -#define AZA 1 -#define AZC 1 -#define AZE 0 -#define AZF 0 -#if AZA - #if AZC - #if AZE - int selected3 = 1; - #elif AZF - int selected3 = 2; - #else - int selected3 = 3; - #endif - #endif -#endif - -// ERROR cases... - -#if 0 -int; -#else -int; -#elif 1 -int; -#endif - -#if 0 -int; -#else -int; -#else -int; -#endif - -#if 0 - #if 0 - int; - #else - int; - #elif 1 - int; - #endif - - #if 0 - int; - #else - int; - #else - int; - #endif -#endif - -#define FUNC(a,b) a+b -void foo985(){ FUNC( (((2))), ((3),4)); } -// needs to be last test in file -void foo987(){ FUNC(((); } // ERROR, EOF in argument diff --git a/deps/glslang/Test/cppPassMacroName.frag b/deps/glslang/Test/cppPassMacroName.frag deleted file mode 100644 index 046629f2..00000000 --- a/deps/glslang/Test/cppPassMacroName.frag +++ /dev/null @@ -1,30 +0,0 @@ -#define f1(i) ((i)*(i)) -#define I2(f, n) f(n) + f(n+1) -#define I3(f, n) I2(f, n) + f(n+2) - -#define FL_f1(i) ((i)*(i)) -#define FL_I2(f, n) f(n) + f(n+0.2) -#define FL_I3(f, n) FL_I2(f, n) + f(n+0.5) - -void main() -{ - int f1 = 4; - int f2 = f1; - int f3 = f1(3); - int f4 = I2(f1, 0); - int f5 = I3(f1, 0); - - highp float fl_f5 = FL_I3(FL_f1, 0.1); -} - -// f5 = I3(f1, 0) -// = I2(f1, 0) + f1(0 + 2) -// = f1(0) + f1(0+1) + f1(0+2) -// = 0*0 + 1*1 + 2*2 -// = 5 - -// fl_f5 = FL_I3(FL_f1, 0.1) -// = FL_I2(FL_f1, 0.1) + FL_f1(0.1 + 0.5) -// = FL_f1(0.1) + FL_f1(0.1 + 0.2) + FL_f1(0.1 + 0.5) -// = 0.1*0.1 + 0.3*0.3 + 0.6*0.6 -// = 0.46 diff --git a/deps/glslang/Test/cppRelaxSkipTokensErrors.vert b/deps/glslang/Test/cppRelaxSkipTokensErrors.vert deleted file mode 100644 index b30af0c9..00000000 --- a/deps/glslang/Test/cppRelaxSkipTokensErrors.vert +++ /dev/null @@ -1,14 +0,0 @@ -#version 110 - -#if 0 -3.5L -3.5h -2034h -1.#INF -0x1234567812345L -12323394203923879234L -0123s; -123s; -0123456712345671234L -"string" -#endif diff --git a/deps/glslang/Test/cppSimple.vert b/deps/glslang/Test/cppSimple.vert deleted file mode 100644 index 2f7de30f..00000000 --- a/deps/glslang/Test/cppSimple.vert +++ /dev/null @@ -1,353 +0,0 @@ -#version 400 - -#define ON - -float sum = 0.0; - -void main() -{ - -#ifdef ON -//yes -sum += 1.0; -#endif - -#ifdef OFF -//no -sum += 20.0; -#endif - -#if defined(ON) -//yes -sum += 300.0; -#endif - -#if defined(OFF) -//no -sum += 4000.0; -#endif - -#if !defined(ON) -//no -sum += 50000.0; -#endif - -#ifndef OFF -//yes -sum += 600000.0; -#else -//no -sum += 0.6; -#endif - -#if defined(ON) && defined(OFF) -//no -sum += 0.7; -#elif !defined(OFF) -//yes -sum += 7000000.0; -#endif - -#if defined(ON) && !defined(OFF) -//yes -sum += 80000000.0; -#endif - -#if defined(OFF) || defined(ON) -//yes -sum += 900000000.0; -#endif - -#if NEVER_DEFINED -//no -sum += 0.04; -#else -sum += 0.05; -#endif - -// sum should be 987600301.7 - gl_Position = vec4(sum); -} - -#define A 0 -# define B 0 - # define C 0 - -#if (A == B) || (A == C) -#error good1 -#endif - -#if A == B || (A == C) -#error good2 -#endif - -#if (A == B || (A == C)) -#error good3 -#endif - -#if (AA == BB) || (AA == CC) -#error good4 -#endif - -#if AA == BB || (AA == CC) -#error good5 -#endif - -#if ((AA == BB || (AA == CC))) -#error good6 -#endif - -#if (A == B || (A == C) -#error bad1 -#endif - -#if A == B || A == C) -#error bad2 -#endif - -#if (A == B || (A == C) -#error bad3 -#endif - -#if AA == BB) || (AA == CC) -#error bad4 -#endif - -#if AA == BB || (AA == CC -#error bad5 -#endif - -#if ((AA == BB || (AA == CC)))) -#error bad6 -#endif extra tokens - -int linenumber = __LINE__; -int filenumber = __FILE__; -int version = __VERSION__; - -#define PI (3.14) -#define TWOPI (2.0 * PI) -float twoPi = TWOPI; - -//#define PASTE(a,b) a ## b -//float PASTE(tod, ay) = 17; - -"boo" // ERROR -int a = length("aoenatuh"); // ERROR -#define QUOTE "abcd" // okay -'int'; // ERROR -#define SINGLE 'a' // okay -// ERROR: all the following are reserved -#define GL_ -#define GL_Macro 1 -#define __M -#define M__ -#define ABC__DE abc - -#if 4 -#else extra -#elif -// ERROR elif after else -#endif - -#if blah - #if 0 - #else extra - #ifdef M - #else - #else - // ERROR else after else - #endif extra - #endif -#endif - -#define m1(a,a) // ERROR -#define m2(a,b) - -// okay -#define m3 (a) -#define m3 (a) - -// ERROR -#define m4(b) -#define m4 - -// ERROR -#define m5 (b) -#define m5(b) - -// ERROR -#define m6(a) -#define m6(a,b) - -// ERROR (whitespace) -#define m7 (a) -#define m7 ( a) - -#define m80(a,b) is + exactly m3 the same -#define m80(a,b) is + exactly m3 the same - -// ERROR -#define m8(a,b) almost + exactly m3 the same -#define m8(a,b) almost + exactly m3 thee same - -// ERROR -#define m9(a,b,c) aoe -#define m9(a,d,c) aoe - -#define n1 0xf -int n = n1; - -#define f1 .08e-2Lf -double f = f1; - -#undef __VERSION__ -#undef GL_ARB_texture_rectangle - -# - # - # -## -# # -# 0x25 -#### -####ff -#########ff fg 0x25 -#pragma -#pragma(aoent) - # pragma -#pragma STDGL -#pragma optimize( on) -#pragma optimize(off) -#pragma debug( on) -#pragma debug(off ) -#pragma optimize( on) anoteun -#pragma optimize(off -#pragma debug( on) ( -#pragma debug(off aoeua) -#pragma optimize( on) -#pragma optimize(off,) -#pragma debug( on, aoeu) -#pragma debugoff ) -#pragma aontheu natoeh uantheo uasotea noeahuonea uonethau onethuanoeth aunotehau noeth anthoeua anoethuantoeh uantoehu natoehu naoteh unotaehu noethua onetuh aou -# \ - -# \ - error good continuation - -#flizbit - -#define directive error - -#directive directive was expanded - -#line 12000 -#error line should be 12000 -#line 13000 7 -#error line should be 13000, string 7 -#define L1 14000 -#define L2 13 -#define F1 5 -#define F2 7 -#line L1 + L2 -#error line should be 14013, string 7 -#line L1 + L2 F1 + F2 // antoeuh sat comment -#error line should be 14013, string 12 -#line L1 + L2 + F1 + F2 -#error line should be 14025, string 12 -#line 1234 F1 + F2 extra -#define empty_extra -#line 1235 F1 + F2 empty_extra -#define moreEmpty empty_extra -#line 1236 F1 + F2 moreEmpty empty_extra // okay, lots of nothin -#line 1237 F1 + F2 moreEmpty empty_extra extra // ERROR, 'extra' -#line 1238 F1 + F2 moreEmpty empty_extra -#line 1239 empty_extra F1 empty_extra + empty_extra F2 empty_extra moreEmpty empty_extra -#line (20000) -#error line should be 20000 -#line (20000+10) -#error line should be 20010 -#line +20020 -#error line should be 20020 - -#define VAL1 1.0 -#define VAL2 2.0 - -#define RES2 /* test a multiline - comment in a macro definition */ (RES1 * VAL2) -#define RES1 (VAL2 / VAL1) -#define RES2 /* comment */(RES1 * VAL2) -#define /* */SUM_VALUES (RES2 + RES1) - -void foo234() -{ - gl_Position = vec4(SUM_VALUES); -} - -// more whitespace recording tests -#define SPACE_AT_END(a,b) spaceAtEndIsOkay -#define SPACE_AT_END(a,b) spaceAtEndIsOkay // space at end - -#define SPACE_AT_BEGIN(a,b)spaceAtBeginIsOkay -#define SPACE_AT_BEGIN(a,b) spaceAtBeginIsOkay - -// space in middle is an error -#define SPACE_IN_MIDDLE(a,b) space +in middle -#define SPACE_IN_MIDDLE(a,b) space + in middle - -#define FIRSTPART 17 -#define SECONDPART + 5 - -#if FIRSTPART SECONDPART == 22 -#error good evaluation 1 -#endif - -#if moreEmpty FIRSTPART moreEmpty SECONDPART moreEmpty == moreEmpty 22 moreEmpty -#error good evaluation 2 -#endif - -// ERRORS... -#line 9000 -#if defined(OUNH -#endif -#if defined OUNH) -#endif - -// recursion (okay) -#define RECURSE RECURSE -int RECURSE; -#define R2 R1 -#define R1 R2 -#undef RECURSE -int R1 = RECURSE; - -#define FOOOM(a,b) a + b -int aoeua = FOOOM; -#if FOOOM -#endif - -#line 9500 -#if\376 -#endif -#if \376 -#endif -#if \377 -#endif -#error\377 -#error \ 376 -#error \377 - -// ERROR for macro expansion to yield 'defined' -#line 9600 -#define DEF_MAC -#define DEF_DEFINED defined -#if DEF_DEFINED DEF_MAC -#error DEF_DEFINED then -#else -#error DEF_DEFINED else -#endif - -#line 10000 -#if 1 -#else -// ERROR, missing #endif \ No newline at end of file diff --git a/deps/glslang/Test/dataOut.frag b/deps/glslang/Test/dataOut.frag deleted file mode 100644 index 258f534e..00000000 --- a/deps/glslang/Test/dataOut.frag +++ /dev/null @@ -1,8 +0,0 @@ -#version 130 - -varying vec4 Color; - -void main() -{ - gl_FragData[1] = Color; -} diff --git a/deps/glslang/Test/dataOutIndirect.frag b/deps/glslang/Test/dataOutIndirect.frag deleted file mode 100644 index d6b8667d..00000000 --- a/deps/glslang/Test/dataOutIndirect.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 130 - -varying vec4 Color; - -uniform int i; - -void main() -{ - gl_FragData[i] = Color; -} diff --git a/deps/glslang/Test/dce.frag b/deps/glslang/Test/dce.frag deleted file mode 100644 index 119a98dd..00000000 --- a/deps/glslang/Test/dce.frag +++ /dev/null @@ -1,56 +0,0 @@ -#version 400 - -const bool flag = false; - -int c = 0; - -void bar() -{ - if (flag) - ++c; // should still show up in AST - else - ++c; - - flag ? ++c : ++c; // both should still show up in AST - - switch (c) { - case 1: - ++c; - break; - ++c; // should still show up in AST - case 2: - break; - ++c; // should still show up in AST - default: - break; - } - - for (int i = 0; i < 0; ++i) - ++c; // should still show up in AST - - for (int i = 0; i < 10; ++i) { - if (c < 3) { - break; - ++c; // should still show up in AST - } else { - continue; - ++c; // should still show up in AST - } - } - - return; - - ++c; // should still show up in AST -} - -int foo() // not called, but should still show up in AST -{ - if (c > 4) { - return 4; - ++c; // should still show up in AST - } - - return 5; - - ++c; // should still show up in AST -} diff --git a/deps/glslang/Test/decls.frag b/deps/glslang/Test/decls.frag deleted file mode 100644 index 486e7963..00000000 --- a/deps/glslang/Test/decls.frag +++ /dev/null @@ -1,49 +0,0 @@ -#version 120 - -int a; -int b, c; -int d1 = 1; -int e2 = 2, f; -int g, h3 = 3; - -int i4[4]; -int j, k5[5]; -int m6[6], m7[7]; -int n8[8], p; - -int ii4[4] = int[](1, 2, 3, 4); -int ij, ik5[5] = int[](5, 6, 7, 8, 9); -int im2[2] = int[](10, 11), im3[3] = int[](12, 13, 14); -int in8[4] = int[](21, 22, 23, 24), ip; - -void vi4[4] = int[](1, 2, 3, 4); -void vj, vk5[5] = int[](5, 6, 7, 8, 9); -void vm2[2] = int[](10, 11), vm3[3] = int[](12, 13, 14); -void vn8[4] = int[](21, 22, 23, 24), vp; - -const int cii4[4] = int[](1, 2, 3, 4); -const int cij, cik5[5] = int[](5, 6, 7, 8, 9); -const int cim2[2] = int[](10, 11), cim3[3] = int[](12, 13, 14); -const int cin8[4] = int[](21, 22, 23, 24), cip; - -uniform int uii4[4] = int[](1, 2, 3, 4); -uniform int uij, uik5[5] = int[](5, 6, 7, 8, 9); -uniform int uim2[2] = int[](10, 11), uim3[3] = int[](12, 13, 14); -uniform int uin8[4] = int[](21, 22, 23, 24), uip; - -int gl_vi4[4] = int[](1, 2, 3, 4); -int gl_vj, gl_vk5[5] = int[](5, 6, 7, 8, 9); -int gl_vm2[2] = int[](10, 11), gl_vm3[3] = int[](12, 13, 14); -int gl_vn8[4] = int[](21, 22, 23, 24), gl_vp; - -void main() -{ - while (bool cond = b < c); - while (int icond = b); - while (bool gl_cond = b < c); -} - -int foob__vi4[4] = int[](1, 2, 3, 4); -int foob__vj, foob__vk5[5] = int[](5, 6, 7, 8, 9); -int __foobvm2[2] = int[](10, 11), __foobvm3[3] = int[](12, 13, 14); -int foob__vn8[4] = int[](21, 22, 23, 24), foob__vp; diff --git a/deps/glslang/Test/deepRvalue.frag b/deps/glslang/Test/deepRvalue.frag deleted file mode 100644 index 4d880866..00000000 --- a/deps/glslang/Test/deepRvalue.frag +++ /dev/null @@ -1,36 +0,0 @@ -#version 120 - -uniform sampler2D sampler; - -vec4 v1 = vec4(2.0, 3.0, 5.0, 7.0); -vec4 v2 = vec4(11.0, 13.0, 17.0, 19.0); -vec4 v3 = vec4(23.0, 29.0, 31.0, 37.0); -vec4 v4 = vec4(41.0, 43.0, 47.0, 53.0); - -struct str { - int a; - vec2 b[3]; - bool c; -}; - -void main() -{ - mat4 m = mat4(v1, v2, v3, v4); - - mat4 mm = matrixCompMult(m, m); - float f = mm[1].w; // should be 19 * 19 = 361 - - // do a deep access to a spontaneous r-value - float g = matrixCompMult(m, m)[2].y; // should be 29 * 29 = 841 - - float h = str(1, vec2[3](vec2(2.0, 3.0), vec2(4.0, 5.0), vec2(6.0, 7.0)), true).b[1][1]; // should be 5.0 - - float i = texture2D(sampler, vec2(0.5,0.5)).y; - - i += (i > 0.1 ? v1 : v2)[3]; - - str t; - i += (t = str(1, vec2[3](vec2(2.0, 3.0), vec2(4.0, 5.0), vec2(6.0, 7.0)), true)).b[2].y; // should be 7.0 - - gl_FragColor = vec4(f, g, h, i); -} diff --git a/deps/glslang/Test/depthOut.frag b/deps/glslang/Test/depthOut.frag deleted file mode 100644 index 5a892710..00000000 --- a/deps/glslang/Test/depthOut.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 130 - -varying vec4 Color; -varying float Depth; - -void main() -{ - gl_FragDepth = Depth; - gl_FragColor = Color; -} diff --git a/deps/glslang/Test/discard-dce.frag b/deps/glslang/Test/discard-dce.frag deleted file mode 100644 index f2fef4d1..00000000 --- a/deps/glslang/Test/discard-dce.frag +++ /dev/null @@ -1,35 +0,0 @@ -#version 110 -varying vec2 tex_coord; - -void main (void) -{ - vec4 white = vec4(1.0); - vec4 black = vec4(0.2); - vec4 color = white; - - // First, cut out our circle - float x = tex_coord.x*2.0 - 1.0; - float y = tex_coord.y*2.0 - 1.0; - - float radius = sqrt(x*x + y*y); - if (radius > 1.0) { - if (radius > 1.1) { - ++color; - } - - gl_FragColor = color; - - if (radius > 1.2) { - ++color; - } - - discard; - } - - // If we're near an edge, darken us a tiny bit - if (radius >= 0.75) - color -= abs(pow(radius, 16.0)/2.0); - - gl_FragColor = color; - -} diff --git a/deps/glslang/Test/doWhileLoop.frag b/deps/glslang/Test/doWhileLoop.frag deleted file mode 100644 index 3d6f93c5..00000000 --- a/deps/glslang/Test/doWhileLoop.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 110 - -uniform vec4 bigColor; -varying vec4 BaseColor; -uniform float d; - -void main() -{ - vec4 color = BaseColor; - - do { - color += bigColor; - } while (color.x < d); - - gl_FragColor = color; -} diff --git a/deps/glslang/Test/earlyReturnDiscard.frag b/deps/glslang/Test/earlyReturnDiscard.frag deleted file mode 100644 index 718ea72f..00000000 --- a/deps/glslang/Test/earlyReturnDiscard.frag +++ /dev/null @@ -1,102 +0,0 @@ -#version 110 - -uniform float d; -uniform vec4 bigColor, smallColor; -uniform vec4 otherColor; - -varying float c; - -uniform float threshhold; -uniform float threshhold2; -uniform float threshhold3; - -uniform float minimum; - -varying vec4 BaseColor; - -uniform bool b; - -void main() -{ - vec4 color = BaseColor; - vec4 color2; - - color2 = otherColor; - - if (c > d) - color += bigColor; - else - color += smallColor; - - if (color.z < minimum) - return; - - color.z++; - - if (color.z > threshhold) - discard; - - color++; - - // Two path, different rest - if (color.w > threshhold2) { - if (color.z > threshhold2) - return; - else if (b) - color.z++; - else { - if (color.x < minimum) { - discard; - } else { - color++; - } - } - } else { - if (b) - discard; - else - return; - } - - - // // Two path, shared rest - // if (color.w > threshhold2) { - // if (color.z > threshhold2) - // return; - // else if (b) - // color++; - // else { - // if (color.x < minimum) { - // discard; - // } else { - // color++; - // } - // } - // } else { - // if (b) - // discard; - // else - // return; - // } - - - // // One path - // if (color.w > threshhold2) { - // if (color.z > threshhold2) - // return; - // else { - // if (color.x < minimum) { - // discard; - // } else { - // color++; - // } - // } - // } else { - // if (b) - // discard; - // else - // return; - // } - - gl_FragColor = color * color2; -} diff --git a/deps/glslang/Test/empty.frag b/deps/glslang/Test/empty.frag deleted file mode 100644 index e69de29b..00000000 diff --git a/deps/glslang/Test/empty2.frag b/deps/glslang/Test/empty2.frag deleted file mode 100644 index 8b137891..00000000 --- a/deps/glslang/Test/empty2.frag +++ /dev/null @@ -1 +0,0 @@ - diff --git a/deps/glslang/Test/empty3.frag b/deps/glslang/Test/empty3.frag deleted file mode 100644 index 14cd83d7..00000000 --- a/deps/glslang/Test/empty3.frag +++ /dev/null @@ -1 +0,0 @@ -#version 110 diff --git a/deps/glslang/Test/enhanced.0.frag b/deps/glslang/Test/enhanced.0.frag deleted file mode 100644 index 7a42c053..00000000 --- a/deps/glslang/Test/enhanced.0.frag +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 - -in vec3 v; - -void main() -{ - vec4 color = vec4(v); -} - diff --git a/deps/glslang/Test/enhanced.1.frag b/deps/glslang/Test/enhanced.1.frag deleted file mode 100644 index 9aab34d7..00000000 --- a/deps/glslang/Test/enhanced.1.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 - -in Vertex { - vec4 v; -} vVert; - -void main() -{ - vec4 color = vec4(vVert.v2.rgb, 1.0); -} - diff --git a/deps/glslang/Test/enhanced.2.frag b/deps/glslang/Test/enhanced.2.frag deleted file mode 100644 index c3c194ce..00000000 --- a/deps/glslang/Test/enhanced.2.frag +++ /dev/null @@ -1,7 +0,0 @@ -#version 450 - -void main() -{ - vec3 color = vec3(0.0,0.0,0.0,1.0); -} - diff --git a/deps/glslang/Test/enhanced.3.frag b/deps/glslang/Test/enhanced.3.frag deleted file mode 100644 index 1de9f4b2..00000000 --- a/deps/glslang/Test/enhanced.3.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 core - -layout (location = 0) out vec4 FragColor; - -layout (location = 0) in VS_OUT -{ - vec2 foobar; -} fs_in; - -layout (binding = 1) uniform sampler2D t0; - -void main() -{ - FragColor = texture(t0, fs_in.foobar); -} - diff --git a/deps/glslang/Test/enhanced.3.vert b/deps/glslang/Test/enhanced.3.vert deleted file mode 100644 index 043ee246..00000000 --- a/deps/glslang/Test/enhanced.3.vert +++ /dev/null @@ -1,22 +0,0 @@ -#version 450 core - -layout (location = 0) in vec3 aPos; -layout (location = 1) in vec2 aTexCoords; - -layout (binding = 0) uniform anonblock { - mat4 model; - mat4 view; - mat4 projection; -} ; - -layout (location = 0) out VS_OUT -{ - vec2 TexCoords; -} vs_out; - -void main() -{ - gl_Position = projection * view * model * vec4(aPos, 1.0); - vs_out.TexCoords = aTexCoords; -} - diff --git a/deps/glslang/Test/enhanced.4.frag b/deps/glslang/Test/enhanced.4.frag deleted file mode 100644 index 9c16606d..00000000 --- a/deps/glslang/Test/enhanced.4.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 core - -layout (location = 0) out vec4 FragColor; - -layout (location = 1) in VS_OUT -{ - vec2 TexCoords; -} fs_in; - -layout (binding = 1) uniform sampler2D t0; - -void main() -{ - FragColor = texture(t0, fs_in.TexCoords); -} - diff --git a/deps/glslang/Test/enhanced.4.vert b/deps/glslang/Test/enhanced.4.vert deleted file mode 100644 index 043ee246..00000000 --- a/deps/glslang/Test/enhanced.4.vert +++ /dev/null @@ -1,22 +0,0 @@ -#version 450 core - -layout (location = 0) in vec3 aPos; -layout (location = 1) in vec2 aTexCoords; - -layout (binding = 0) uniform anonblock { - mat4 model; - mat4 view; - mat4 projection; -} ; - -layout (location = 0) out VS_OUT -{ - vec2 TexCoords; -} vs_out; - -void main() -{ - gl_Position = projection * view * model * vec4(aPos, 1.0); - vs_out.TexCoords = aTexCoords; -} - diff --git a/deps/glslang/Test/enhanced.5.frag b/deps/glslang/Test/enhanced.5.frag deleted file mode 100644 index b2a51e26..00000000 --- a/deps/glslang/Test/enhanced.5.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 core - -layout (location = 0) out vec4 FragColor; - -layout (location = 0) in VS_OUT -{ - vec3 TexCoords; -} fs_in; - -layout (binding = 1) uniform sampler2D t0; - -void main() -{ - FragColor = texture(t0, fs_in.TexCoords.xy); -} - diff --git a/deps/glslang/Test/enhanced.5.vert b/deps/glslang/Test/enhanced.5.vert deleted file mode 100644 index 043ee246..00000000 --- a/deps/glslang/Test/enhanced.5.vert +++ /dev/null @@ -1,22 +0,0 @@ -#version 450 core - -layout (location = 0) in vec3 aPos; -layout (location = 1) in vec2 aTexCoords; - -layout (binding = 0) uniform anonblock { - mat4 model; - mat4 view; - mat4 projection; -} ; - -layout (location = 0) out VS_OUT -{ - vec2 TexCoords; -} vs_out; - -void main() -{ - gl_Position = projection * view * model * vec4(aPos, 1.0); - vs_out.TexCoords = aTexCoords; -} - diff --git a/deps/glslang/Test/enhanced.6.frag b/deps/glslang/Test/enhanced.6.frag deleted file mode 100644 index e1cf6857..00000000 --- a/deps/glslang/Test/enhanced.6.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 core - -layout (location = 0) out vec4 FragColor; - -layout (location = 0) in VS_OUT -{ - vec2 TexCoords; -} fs_in[1]; - -layout (binding = 1) uniform sampler2D t0; - -void main() -{ - FragColor = texture(t0, fs_in[0].TexCoords); -} - diff --git a/deps/glslang/Test/enhanced.6.vert b/deps/glslang/Test/enhanced.6.vert deleted file mode 100644 index 876a903e..00000000 --- a/deps/glslang/Test/enhanced.6.vert +++ /dev/null @@ -1,22 +0,0 @@ -#version 450 core - -layout (location = 0) in vec3 aPos; -layout (location = 1) in vec2 aTexCoords; - -layout (binding = 0) uniform anonblock { - mat4 model; - mat4 view; - mat4 projection; -} ; - -layout (location = 0) out VS_OUT -{ - vec2 TexCoords; -} vs_out[2]; - -void main() -{ - gl_Position = projection * view * model * vec4(aPos, 1.0); - vs_out[0].TexCoords = aTexCoords; -} - diff --git a/deps/glslang/Test/enhanced.7.frag b/deps/glslang/Test/enhanced.7.frag deleted file mode 100644 index f6e5279d..00000000 --- a/deps/glslang/Test/enhanced.7.frag +++ /dev/null @@ -1,20 +0,0 @@ -#version 450 core - -layout (location = 0) out vec4 FragColor; - -layout (location = 0) in Vertex -{ - vec4 color; - vec3 worldSpacePos; - vec3 worldSpaceNorm; - vec2 texCoord1; - flat int cameraIndex; -} fs_in; - -layout (binding = 1) uniform sampler2D t0; - -void main() -{ - FragColor = texture(t0, fs_in.texCoord1); -} - diff --git a/deps/glslang/Test/enhanced.7.vert b/deps/glslang/Test/enhanced.7.vert deleted file mode 100644 index 4e70a617..00000000 --- a/deps/glslang/Test/enhanced.7.vert +++ /dev/null @@ -1,27 +0,0 @@ -#version 450 core - -layout (location = 0) in vec3 aPos; -layout (location = 1) in vec2 aTexCoords; - -layout (binding = 0) uniform anonblock { - mat4 model; - mat4 view; - mat4 projection; -} ; - -layout (location = 0) out Vertex -{ - vec4 color; - vec3 worldSpacePos; - vec3 worldSpaceNorm; - vec2 texCoord1; - flat int cameraIndex; - float ii; -} vs_out; - -void main() -{ - gl_Position = projection * view * model * vec4(aPos, 1.0); - vs_out.texCoord1 = aTexCoords; -} - diff --git a/deps/glslang/Test/errors.frag b/deps/glslang/Test/errors.frag deleted file mode 100644 index 99cf2b93..00000000 --- a/deps/glslang/Test/errors.frag +++ /dev/null @@ -1,4 +0,0 @@ -int main(int foo) -{ - return 1; -} diff --git a/deps/glslang/Test/es-link1.frag b/deps/glslang/Test/es-link1.frag deleted file mode 100644 index fe4da41d..00000000 --- a/deps/glslang/Test/es-link1.frag +++ /dev/null @@ -1,8 +0,0 @@ -#version 100 - -mediump vec4 calculateColor(); - -void main() -{ - gl_FragColor = calculateColor(); -} diff --git a/deps/glslang/Test/es-link2.frag b/deps/glslang/Test/es-link2.frag deleted file mode 100644 index e7b5a477..00000000 --- a/deps/glslang/Test/es-link2.frag +++ /dev/null @@ -1,8 +0,0 @@ -#version 100 - -varying mediump vec4 varyingColor; - -mediump vec4 calculateColor() -{ - return varyingColor * 0.5; -} diff --git a/deps/glslang/Test/findFunction.frag b/deps/glslang/Test/findFunction.frag deleted file mode 100644 index 41c09154..00000000 --- a/deps/glslang/Test/findFunction.frag +++ /dev/null @@ -1,46 +0,0 @@ -#version 450 - -#extension GL_EXT_shader_explicit_arithmetic_types: enable - -int64_t func(int8_t a, int16_t b, int16_t c) -{ - return int64_t(a | b + c); -} - -int64_t func(int8_t a, int16_t b, int32_t c) -{ - return int64_t(a | b - c); -} - -int64_t func(int32_t a, int32_t b, int32_t c) -{ - return int64_t(a / b + c); -} - -int64_t func(float16_t a, float16_t b, float32_t c) -{ - return int64_t(a - b * c); -} - -int64_t func(float16_t a, int16_t b, float32_t c) -{ - return int64_t(a - b * c); -} - -void main() -{ - int8_t x; - int16_t y; - int32_t z; - int64_t w; - float16_t f16; - float64_t f64; - int64_t b1 = func(x, y, z); - int64_t b2 = func(y, y, z); // tie - int64_t b3 = func(y, y, w); // No match - int64_t b4 = func(y, z, f16); // No match - int64_t b5 = func(y, y, f16); - int64_t b7 = func(f16, f16, y); - int64_t b8 = func(f16, f16, f64); // No match - int64_t b9 = func(f16, x, f16); // tie -} diff --git a/deps/glslang/Test/floatBitsToInt.vert b/deps/glslang/Test/floatBitsToInt.vert deleted file mode 100644 index a6bb18a6..00000000 --- a/deps/glslang/Test/floatBitsToInt.vert +++ /dev/null @@ -1,18 +0,0 @@ -#version 150 -#extension GL_ARB_gpu_shader5 : require -uniform int expected_value; -uniform float value; -out vec4 result; -void main() -{ - result = vec4(1.0, 1.0, 1.0, 1.0); - int ret_val = floatBitsToInt(value); - if (expected_value != ret_val){ result = vec4(0.0, 0.0, 0.0, 0.0); } - - switch (gl_VertexID) { - case 0: gl_Position = vec4(-1.0, 1.0, 0.0, 1.0); break; - case 1: gl_Position = vec4( 1.0, 1.0, 0.0, 1.0); break; - case 2: gl_Position = vec4(-1.0,-1.0, 0.0, 1.0); break; - case 3: gl_Position = vec4( 1.0,-1.0, 0.0, 1.0); break; - } -} \ No newline at end of file diff --git a/deps/glslang/Test/flowControl.frag b/deps/glslang/Test/flowControl.frag deleted file mode 100644 index eaa6fb1d..00000000 --- a/deps/glslang/Test/flowControl.frag +++ /dev/null @@ -1,23 +0,0 @@ -#version 120 - -uniform float d; -uniform vec4 bigColor, smallColor; -uniform vec4 otherColor; - -varying float c; -varying vec4 BaseColor; - -void main() -{ - vec4 color = BaseColor; - vec4 color2; - - color2 = otherColor; - - if (c > d) - color += bigColor; - else - color += smallColor; - - gl_FragColor = color * color2; -} diff --git a/deps/glslang/Test/foo.h b/deps/glslang/Test/foo.h deleted file mode 100644 index 236277c3..00000000 --- a/deps/glslang/Test/foo.h +++ /dev/null @@ -1 +0,0 @@ -#error should not be included diff --git a/deps/glslang/Test/forLoop.frag b/deps/glslang/Test/forLoop.frag deleted file mode 100644 index 117ecad1..00000000 --- a/deps/glslang/Test/forLoop.frag +++ /dev/null @@ -1,41 +0,0 @@ -#version 130 - -uniform vec4 bigColor; -in vec4 BaseColor; -in float f; - -uniform int Count; -uniform uvec4 v4; - -void main() -{ - vec4 color = BaseColor; - - for (int i = 0; i < Count; ++i) { - color += bigColor; - } - - gl_FragColor = color; - - float sum = 0.0; - for (int i = 0; i < 4; ++i) - sum += v4[i]; - - vec4 tv4; - - for (int i = 0; i < 4; ++i) - tv4[i] = v4[i] * 4u; - - gl_FragColor += vec4(sum) + tv4; - - vec4 r; - r.xyz = BaseColor.xyz; - - for (int i = 0; i < Count; ++i) - r.w = f; - - gl_FragColor.xyz += r.xyz; - - for (int i = 0; i < 16; i += 4) - gl_FragColor *= f; -} diff --git a/deps/glslang/Test/forwardRef.frag b/deps/glslang/Test/forwardRef.frag deleted file mode 100644 index 49f3504e..00000000 --- a/deps/glslang/Test/forwardRef.frag +++ /dev/null @@ -1,37 +0,0 @@ -#version 110 - -uniform vec4 bigColor; -varying vec4 BaseColor; -uniform float d; - -void bar(); -float foo(vec4); -float unreachableReturn(); - -void main() -{ - vec4 color = vec4(foo(BaseColor)); - - bar(); - float f = unreachableReturn(); - - gl_FragColor = color * f; -} - -void bar() -{ -} - -float unreachableReturn() -{ - bar(); - if (d < 4.2) - return 1.2; - else - return 4.5; -} - -float foo(vec4 bar) -{ - return bar.x + bar.y; -} diff --git a/deps/glslang/Test/functionCall.frag b/deps/glslang/Test/functionCall.frag deleted file mode 100644 index e1fc0e07..00000000 --- a/deps/glslang/Test/functionCall.frag +++ /dev/null @@ -1,44 +0,0 @@ -#version 130 - -uniform vec4 bigColor; -varying vec4 BaseColor; -uniform float d; - -float h = 0.0; - -float foo(vec4 bar) -{ - return bar.x + bar.y; -} - -void bar() -{ -} - -float unreachableReturn() -{ - if (d < 4.2) - return 1.2; - else - return 4.5; - // might be another return inserted here by builders, has to be correct type -} - -float missingReturn() -{ - if (d < 4.5) { - h = d; - return 3.9; - } -} - -void main() -{ - vec4 color = vec4(foo(BaseColor)); - - bar(); - float f = unreachableReturn(); - float g = missingReturn(); - - gl_FragColor = color * f * h; -} diff --git a/deps/glslang/Test/functionSemantics.frag b/deps/glslang/Test/functionSemantics.frag deleted file mode 100644 index e5c3ed00..00000000 --- a/deps/glslang/Test/functionSemantics.frag +++ /dev/null @@ -1,75 +0,0 @@ -#version 400 - -uniform float u; - -int foo(int a, const int b, in int c, const in int d, out int e, inout int f) -{ - int sum = a + b + c + d + f; // no e, it is out only - // sum should be 47 now - - a *= 64; - // no b, it is read only - c *= 64; - // no d, it is read only - e = 64 * 16; // e starts undefined - f *= 64; - - sum += a + 64 * b + c + 64 * d + e + f; // everything has a value now, totaling of 64(1+2+4+8+16+32) = 64*63 = 4032 - // sum should be 4032 + 47 = 4079 - - return sum; -} - -int foo2(float a, vec3 b, out int r) -{ - r = int(3.0 * a); - return int(5.0 * b.y); -} - -int foo3() -{ - if (u > 3.2) { - discard; - return 1000000; - } - - return 2000000; -} - -void main() -{ - int e; - int t = 2; - struct s { - ivec4 t; - } f; - f.t.y = 32; - - // test the different qualifers - int color = foo(1, 2, t+t, 8, e, f.t.y); - - color += 128 * (e + f.t.y); // right side should be 128(64(16 + 32)) = 393216 - // sum should be 4079 + 393216 = 397295 - - // test conversions - float arg; - float ret; - ret = foo2(4, ivec3(1,2,3), arg); // ret = 10, param = 12.0 - color += int(ret + arg); // adds 22, for total of 397317 - - color += foo3(); // theoretically, add 2000000, for total of 2397317 - - gl_FragColor = vec4(color); -} - -vec3 m(vec2); -void aggCall() -{ - float F; - m(ivec2(F)); // test input conversion of single argument that's an aggregate; other function tests in 120.vert -} - -vec4 badConv() -{ - return u; // ERROR, can change scalar to vector -} \ No newline at end of file diff --git a/deps/glslang/Test/gl_FragCoord.frag b/deps/glslang/Test/gl_FragCoord.frag deleted file mode 100644 index 7bb17920..00000000 --- a/deps/glslang/Test/gl_FragCoord.frag +++ /dev/null @@ -1,31 +0,0 @@ -#version 150 core -#extension GL_ARB_explicit_attrib_location : enable - -#ifdef GL_ES -precision mediump float; -#endif - -layout (origin_upper_left,pixel_center_integer) in vec4 gl_FragCoord; -float myGlobalVar = gl_FragCoord.x; -layout (origin_upper_left,pixel_center_integer) in vec4 gl_FragCoord; - -in vec4 i; -layout (location = 0) out vec4 myColor; -const float eps=0.001; - -void main() { - myColor = vec4(0.2); - if (gl_FragCoord.y >= 10) { - myColor.b = 0.8; - } - if (gl_FragCoord.y == trunc(gl_FragCoord.y)) { - myColor.g = 0.8; - } - if (gl_FragCoord.x == trunc(gl_FragCoord.x)) { - myColor.r = 0.8; - } - - vec4 diff = gl_FragCoord - i; - if (abs(diff.z)>eps) myColor.b = 0.5; - if (abs(diff.w)>eps) myColor.a = 0.5; -} diff --git a/deps/glslang/Test/glsl.-D-U.frag b/deps/glslang/Test/glsl.-D-U.frag deleted file mode 100644 index 4d2325f1..00000000 --- a/deps/glslang/Test/glsl.-D-U.frag +++ /dev/null @@ -1,32 +0,0 @@ -#version 450 - -#define IN_SHADER - -layout(location=0) out vec4 color; - -void main() -{ -#if FOO==200 - color = vec4(1.0); -#else - #error expected FOO 200 -#endif - -#ifdef IN_SHADER - color++; -#else - #error IN_SHADER was undef -#endif - -#ifdef UNDEFED - #error UNDEFED defined -#else - color *= 3.0; -#endif - -#if MUL == 400 - color *= MUL; -#else - #error bad MUL -#endif -} diff --git a/deps/glslang/Test/glsl.140.layoutOffset.error.vert b/deps/glslang/Test/glsl.140.layoutOffset.error.vert deleted file mode 100644 index c57b5bc4..00000000 --- a/deps/glslang/Test/glsl.140.layoutOffset.error.vert +++ /dev/null @@ -1,14 +0,0 @@ -#version 140 - -layout (std140) uniform UBO // offset can't use under version 140 -{ - layout(offset = 0) vec4 a; -}; - -in vec4 in_vs; -out vec4 out_vs; - -void main() -{ - out_vs = in_vs + a; -} diff --git a/deps/glslang/Test/glsl.430.layoutOffset.error.vert b/deps/glslang/Test/glsl.430.layoutOffset.error.vert deleted file mode 100644 index 831d0022..00000000 --- a/deps/glslang/Test/glsl.430.layoutOffset.error.vert +++ /dev/null @@ -1,14 +0,0 @@ -#version 430 core - -layout (std140) uniform UBO // offset can't use on 430 core with out extension require -{ - layout(offset = 0) vec4 a; -}; - -in vec4 in_vs; -out vec4 out_vs; - -void main() -{ - out_vs = in_vs + a; -} diff --git a/deps/glslang/Test/glsl.450.subgroup.frag b/deps/glslang/Test/glsl.450.subgroup.frag deleted file mode 100644 index d0b95737..00000000 --- a/deps/glslang/Test/glsl.450.subgroup.frag +++ /dev/null @@ -1,252 +0,0 @@ -#version 450 - -vec4 undeclared_errors(vec4 f4) -{ - vec4 result; - gl_SubgroupSize; // ERROR, extension not enabled (basic) - gl_SubgroupInvocationID; // ERROR, extension not enabled (basic) - subgroupBarrier(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrier(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrierBuffer(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrierImage(); // ERROR, extension not enabled (basic) - subgroupElect(); // ERROR, extension not enabled (basic) - gl_NumSubgroups; // ERROR, only defined in compute - gl_SubgroupID; // ERROR, only defined in compute - subgroupMemoryBarrierShared(); // ERROR, only defined in compute - - subgroupAll(true); // ERROR extension not enabled (vote) - subgroupAny(false); // ERROR extension not enabled (vote) - subgroupAllEqual(f4); // ERROR extension not enabled (vote) - - gl_SubgroupEqMask; // ERROR extension not enabled (ballot) - gl_SubgroupGeMask; // ERROR extension not enabled (ballot) - gl_SubgroupGtMask; // ERROR extension not enabled (ballot) - gl_SubgroupLeMask; // ERROR extension not enabled (ballot) - gl_SubgroupLtMask; // ERROR extension not enabled (ballot) - subgroupBroadcast(f4, 0); // ERROR extension not enabled (ballot) - subgroupBroadcastFirst(f4); // ERROR extension not enabled (ballot) - uvec4 ballot = subgroupBallot(false); // ERROR extension not enabled (ballot) - subgroupInverseBallot(uvec4(0x1)); // ERROR extension not enabled (ballot) - subgroupBallotBitExtract(ballot, 0); // ERROR extension not enabled (ballot) - subgroupBallotBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotInclusiveBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotExclusiveBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotFindLSB(ballot); // ERROR extension not enabled (ballot) - subgroupBallotFindMSB(ballot); // ERROR extension not enabled (ballot) - - subgroupShuffle(f4, 0); // ERROR extension not enabled (shuffle) - subgroupShuffleXor(f4, 0x1); // ERROR extension not enabled (shuffle) - subgroupShuffleUp(f4, 1); // ERROR extension not enabled (shuffle_relative) - subgroupShuffleDown(f4, 1); // ERROR extension not enabled (shuffle_relative) - - result = subgroupAdd(f4); // ERROR, extension not enabled (arith) - subgroupMul(f4); // ERROR, extension not enabled (arith) - subgroupMin(f4); // ERROR, extension not enabled (arith) - subgroupMax(f4); // ERROR, extension not enabled (arith) - subgroupAnd(ballot); // ERROR, extension not enabled (arith) - subgroupOr(ballot); // ERROR, extension not enabled (arith) - subgroupXor(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveAdd(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMul(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMin(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMax(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveAnd(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveOr(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveXor(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveAdd(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMul(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMin(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMax(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveAnd(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveOr(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveXor(ballot); // ERROR, extension not enabled (arith) - - subgroupClusteredAdd(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMul(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMin(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMax(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredAnd(ballot, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredOr(ballot, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredXor(ballot, 2); // ERROR, extension not enabled (clustered) - - subgroupQuadBroadcast(f4, 0); // ERROR, extension not enabled (quad) - subgroupQuadSwapHorizontal(f4); // ERROR, extension not enabled (quad) - subgroupQuadSwapVertical(f4); // ERROR, extension not enabled (quad) - subgroupQuadSwapDiagonal(f4); // ERROR, extension not enabled (quad) - - uvec4 parti = subgroupPartitionNV(f4); // ERROR, extension not enabled (partitioned) - subgroupPartitionedAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - - return result; -} - -#extension GL_KHR_shader_subgroup_basic: enable -layout(location = 0) out uvec4 data; -void main (void) -{ - data = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0); - subgroupBarrier(); - subgroupMemoryBarrier(); - subgroupMemoryBarrierBuffer(); - subgroupMemoryBarrierImage(); - subgroupElect(); -} - -#extension GL_KHR_shader_subgroup_ballot: enable -void ballot_works(vec4 f4) { - int i; - gl_SubgroupEqMask; - gl_SubgroupGeMask; - gl_SubgroupGtMask; - gl_SubgroupLeMask; - gl_SubgroupLtMask; - subgroupBroadcast(f4, 0); - subgroupBroadcast(f4, i); - subgroupBroadcastFirst(f4); - uvec4 ballot = subgroupBallot(false); - subgroupInverseBallot(uvec4(0x1)); - subgroupBallotBitExtract(ballot, 0); - subgroupBallotBitCount(ballot); - subgroupBallotInclusiveBitCount(ballot); - subgroupBallotExclusiveBitCount(ballot); - subgroupBallotFindLSB(ballot); - subgroupBallotFindMSB(ballot); -} - -#extension GL_KHR_shader_subgroup_vote: enable -void vote_works(vec4 f4) -{ - subgroupAll(true); - subgroupAny(false); - subgroupAllEqual(f4); -} - -#extension GL_KHR_shader_subgroup_shuffle: enable -#extension GL_KHR_shader_subgroup_shuffle_relative: enable -void shuffle_works(vec4 f4) -{ - subgroupShuffle(f4, 0); - subgroupShuffleXor(f4, 0x1); - subgroupShuffleUp(f4, 1); - subgroupShuffleDown(f4, 1); -} - -#extension GL_KHR_shader_subgroup_arithmetic: enable -void arith_works(vec4 f4) -{ - uvec4 ballot; - subgroupAdd(f4); - subgroupMul(f4); - subgroupMin(f4); - subgroupMax(f4); - subgroupAnd(ballot); - subgroupOr(ballot); - subgroupXor(ballot); - subgroupInclusiveAdd(f4); - subgroupInclusiveMul(f4); - subgroupInclusiveMin(f4); - subgroupInclusiveMax(f4); - subgroupInclusiveAnd(ballot); - subgroupInclusiveOr(ballot); - subgroupInclusiveXor(ballot); - subgroupExclusiveAdd(f4); - subgroupExclusiveMul(f4); - subgroupExclusiveMin(f4); - subgroupExclusiveMax(f4); - subgroupExclusiveAnd(ballot); - subgroupExclusiveOr(ballot); - subgroupExclusiveXor(ballot); -} - -#extension GL_KHR_shader_subgroup_clustered: enable -void clustered_works(vec4 f4) -{ - uvec4 ballot = uvec4(0x55,0,0,0); - subgroupClusteredAdd(f4, 2); - subgroupClusteredMul(f4, 2); - subgroupClusteredMin(f4, 2); - subgroupClusteredMax(f4, 2); - subgroupClusteredAnd(ballot, 2); - subgroupClusteredOr(ballot, 2); - subgroupClusteredXor(ballot, 2); -} - -#extension GL_KHR_shader_subgroup_quad: enable -void quad_works(vec4 f4) -{ - int i; - subgroupQuadBroadcast(f4, 0); - subgroupQuadBroadcast(f4, i); - subgroupQuadSwapHorizontal(f4); - subgroupQuadSwapVertical(f4); - subgroupQuadSwapDiagonal(f4); -} - -#extension GL_NV_shader_subgroup_partitioned: enable -void partitioned_works(vec4 f4) -{ - uvec4 parti = subgroupPartitionNV(f4); - uvec4 ballot = uvec4(0x55,0,0,0); - subgroupPartitionedAddNV(f4, parti); - subgroupPartitionedMulNV(f4, parti); - subgroupPartitionedMinNV(f4, parti); - subgroupPartitionedMaxNV(f4, parti); - subgroupPartitionedAndNV(ballot, parti); - subgroupPartitionedOrNV(ballot, parti); - subgroupPartitionedXorNV(ballot, parti); - subgroupPartitionedInclusiveAddNV(f4, parti); - subgroupPartitionedInclusiveMulNV(f4, parti); - subgroupPartitionedInclusiveMinNV(f4, parti); - subgroupPartitionedInclusiveMaxNV(f4, parti); - subgroupPartitionedInclusiveAndNV(ballot, parti); - subgroupPartitionedInclusiveOrNV(ballot, parti); - subgroupPartitionedInclusiveXorNV(ballot, parti); - subgroupPartitionedExclusiveAddNV(f4, parti); - subgroupPartitionedExclusiveMulNV(f4, parti); - subgroupPartitionedExclusiveMinNV(f4, parti); - subgroupPartitionedExclusiveMaxNV(f4, parti); - subgroupPartitionedExclusiveAndNV(ballot, parti); - subgroupPartitionedExclusiveOrNV(ballot, parti); - subgroupPartitionedExclusiveXorNV(ballot, parti); -} - -// tests for NV_shader_sm_builtins -void sm_builtins_err() -{ - gl_WarpsPerSMNV; // ERROR, no extension - gl_SMCountNV; // ERROR, no extension - gl_WarpIDNV; // ERROR, no extension - gl_SMIDNV; // ERROR, no extension -} - -#ifdef GL_NV_shader_sm_builtins -#extension GL_NV_shader_sm_builtins : enable -#endif - -void sm_builtins() -{ - gl_WarpsPerSMNV; - gl_SMCountNV; - gl_WarpIDNV; - gl_SMIDNV; -} diff --git a/deps/glslang/Test/glsl.450.subgroup.geom b/deps/glslang/Test/glsl.450.subgroup.geom deleted file mode 100644 index d5d2f25f..00000000 --- a/deps/glslang/Test/glsl.450.subgroup.geom +++ /dev/null @@ -1,254 +0,0 @@ -#version 450 - -vec4 undeclared_errors(vec4 f4) -{ - vec4 result; - gl_SubgroupSize; // ERROR, extension not enabled (basic) - gl_SubgroupInvocationID; // ERROR, extension not enabled (basic) - subgroupBarrier(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrier(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrierBuffer(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrierImage(); // ERROR, extension not enabled (basic) - subgroupElect(); // ERROR, extension not enabled (basic) - gl_NumSubgroups; // ERROR, only defined in compute - gl_SubgroupID; // ERROR, only defined in compute - subgroupMemoryBarrierShared(); // ERROR, only defined in compute - - subgroupAll(true); // ERROR extension not enabled (vote) - subgroupAny(false); // ERROR extension not enabled (vote) - subgroupAllEqual(f4); // ERROR extension not enabled (vote) - - gl_SubgroupEqMask; // ERROR extension not enabled (ballot) - gl_SubgroupGeMask; // ERROR extension not enabled (ballot) - gl_SubgroupGtMask; // ERROR extension not enabled (ballot) - gl_SubgroupLeMask; // ERROR extension not enabled (ballot) - gl_SubgroupLtMask; // ERROR extension not enabled (ballot) - subgroupBroadcast(f4, 0); // ERROR extension not enabled (ballot) - subgroupBroadcastFirst(f4); // ERROR extension not enabled (ballot) - uvec4 ballot = subgroupBallot(false); // ERROR extension not enabled (ballot) - subgroupInverseBallot(uvec4(0x1)); // ERROR extension not enabled (ballot) - subgroupBallotBitExtract(ballot, 0); // ERROR extension not enabled (ballot) - subgroupBallotBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotInclusiveBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotExclusiveBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotFindLSB(ballot); // ERROR extension not enabled (ballot) - subgroupBallotFindMSB(ballot); // ERROR extension not enabled (ballot) - - subgroupShuffle(f4, 0); // ERROR extension not enabled (shuffle) - subgroupShuffleXor(f4, 0x1); // ERROR extension not enabled (shuffle) - subgroupShuffleUp(f4, 1); // ERROR extension not enabled (shuffle_relative) - subgroupShuffleDown(f4, 1); // ERROR extension not enabled (shuffle_relative) - - result = subgroupAdd(f4); // ERROR, extension not enabled (arith) - subgroupMul(f4); // ERROR, extension not enabled (arith) - subgroupMin(f4); // ERROR, extension not enabled (arith) - subgroupMax(f4); // ERROR, extension not enabled (arith) - subgroupAnd(ballot); // ERROR, extension not enabled (arith) - subgroupOr(ballot); // ERROR, extension not enabled (arith) - subgroupXor(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveAdd(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMul(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMin(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMax(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveAnd(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveOr(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveXor(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveAdd(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMul(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMin(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMax(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveAnd(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveOr(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveXor(ballot); // ERROR, extension not enabled (arith) - - subgroupClusteredAdd(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMul(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMin(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMax(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredAnd(ballot, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredOr(ballot, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredXor(ballot, 2); // ERROR, extension not enabled (clustered) - - subgroupQuadBroadcast(f4, 0); // ERROR, extension not enabled (quad) - subgroupQuadSwapHorizontal(f4); // ERROR, extension not enabled (quad) - subgroupQuadSwapVertical(f4); // ERROR, extension not enabled (quad) - subgroupQuadSwapDiagonal(f4); // ERROR, extension not enabled (quad) - - uvec4 parti = subgroupPartitionNV(f4); // ERROR, extension not enabled (partitioned) - subgroupPartitionedAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - - return result; -} - -#extension GL_KHR_shader_subgroup_basic: enable -layout(points) in; -layout(points, max_vertices = 1) out; -layout(set = 0, binding = 0, std430) buffer Output -{ - uvec4 result[]; -}; - -void main (void) -{ - result[gl_PrimitiveIDIn] = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0); - subgroupBarrier(); - subgroupMemoryBarrier(); - subgroupMemoryBarrierBuffer(); - subgroupMemoryBarrierImage(); - subgroupElect(); -} - -#extension GL_KHR_shader_subgroup_ballot: enable -void ballot_works(vec4 f4) { - gl_SubgroupEqMask; - gl_SubgroupGeMask; - gl_SubgroupGtMask; - gl_SubgroupLeMask; - gl_SubgroupLtMask; - subgroupBroadcast(f4, 0); - subgroupBroadcastFirst(f4); - uvec4 ballot = subgroupBallot(false); - subgroupInverseBallot(uvec4(0x1)); - subgroupBallotBitExtract(ballot, 0); - subgroupBallotBitCount(ballot); - subgroupBallotInclusiveBitCount(ballot); - subgroupBallotExclusiveBitCount(ballot); - subgroupBallotFindLSB(ballot); - subgroupBallotFindMSB(ballot); -} - -#extension GL_KHR_shader_subgroup_vote: enable -void vote_works(vec4 f4) -{ - subgroupAll(true); - subgroupAny(false); - subgroupAllEqual(f4); -} - -#extension GL_KHR_shader_subgroup_shuffle: enable -#extension GL_KHR_shader_subgroup_shuffle_relative: enable -void shuffle_works(vec4 f4) -{ - subgroupShuffle(f4, 0); - subgroupShuffleXor(f4, 0x1); - subgroupShuffleUp(f4, 1); - subgroupShuffleDown(f4, 1); -} - -#extension GL_KHR_shader_subgroup_arithmetic: enable -void arith_works(vec4 f4) -{ - uvec4 ballot; - subgroupAdd(f4); - subgroupMul(f4); - subgroupMin(f4); - subgroupMax(f4); - subgroupAnd(ballot); - subgroupOr(ballot); - subgroupXor(ballot); - subgroupInclusiveAdd(f4); - subgroupInclusiveMul(f4); - subgroupInclusiveMin(f4); - subgroupInclusiveMax(f4); - subgroupInclusiveAnd(ballot); - subgroupInclusiveOr(ballot); - subgroupInclusiveXor(ballot); - subgroupExclusiveAdd(f4); - subgroupExclusiveMul(f4); - subgroupExclusiveMin(f4); - subgroupExclusiveMax(f4); - subgroupExclusiveAnd(ballot); - subgroupExclusiveOr(ballot); - subgroupExclusiveXor(ballot); -} - -#extension GL_KHR_shader_subgroup_clustered: enable -void clustered_works(vec4 f4) -{ - uvec4 ballot = uvec4(0x55,0,0,0); - subgroupClusteredAdd(f4, 2); - subgroupClusteredMul(f4, 2); - subgroupClusteredMin(f4, 2); - subgroupClusteredMax(f4, 2); - subgroupClusteredAnd(ballot, 2); - subgroupClusteredOr(ballot, 2); - subgroupClusteredXor(ballot, 2); -} - -#extension GL_KHR_shader_subgroup_quad: enable -void quad_works(vec4 f4) -{ - subgroupQuadBroadcast(f4, 0); - subgroupQuadSwapHorizontal(f4); - subgroupQuadSwapVertical(f4); - subgroupQuadSwapDiagonal(f4); -} - -#extension GL_NV_shader_subgroup_partitioned: enable -void partitioned_works(vec4 f4) -{ - uvec4 parti = subgroupPartitionNV(f4); - uvec4 ballot = uvec4(0x55,0,0,0); - subgroupPartitionedAddNV(f4, parti); - subgroupPartitionedMulNV(f4, parti); - subgroupPartitionedMinNV(f4, parti); - subgroupPartitionedMaxNV(f4, parti); - subgroupPartitionedAndNV(ballot, parti); - subgroupPartitionedOrNV(ballot, parti); - subgroupPartitionedXorNV(ballot, parti); - subgroupPartitionedInclusiveAddNV(f4, parti); - subgroupPartitionedInclusiveMulNV(f4, parti); - subgroupPartitionedInclusiveMinNV(f4, parti); - subgroupPartitionedInclusiveMaxNV(f4, parti); - subgroupPartitionedInclusiveAndNV(ballot, parti); - subgroupPartitionedInclusiveOrNV(ballot, parti); - subgroupPartitionedInclusiveXorNV(ballot, parti); - subgroupPartitionedExclusiveAddNV(f4, parti); - subgroupPartitionedExclusiveMulNV(f4, parti); - subgroupPartitionedExclusiveMinNV(f4, parti); - subgroupPartitionedExclusiveMaxNV(f4, parti); - subgroupPartitionedExclusiveAndNV(ballot, parti); - subgroupPartitionedExclusiveOrNV(ballot, parti); - subgroupPartitionedExclusiveXorNV(ballot, parti); -} - -// tests for NV_shader_sm_builtins -void sm_builtins_err() -{ - gl_WarpsPerSMNV; // ERROR, no extension - gl_SMCountNV; // ERROR, no extension - gl_WarpIDNV; // ERROR, no extension - gl_SMIDNV; // ERROR, no extension -} - -#ifdef GL_NV_shader_sm_builtins -#extension GL_NV_shader_sm_builtins : enable -#endif - -void sm_builtins() -{ - gl_WarpsPerSMNV; - gl_SMCountNV; - gl_WarpIDNV; - gl_SMIDNV; -} diff --git a/deps/glslang/Test/glsl.450.subgroup.tesc b/deps/glslang/Test/glsl.450.subgroup.tesc deleted file mode 100644 index 92cb1aef..00000000 --- a/deps/glslang/Test/glsl.450.subgroup.tesc +++ /dev/null @@ -1,253 +0,0 @@ -#version 450 - -vec4 undeclared_errors(vec4 f4) -{ - vec4 result; - gl_SubgroupSize; // ERROR, extension not enabled (basic) - gl_SubgroupInvocationID; // ERROR, extension not enabled (basic) - subgroupBarrier(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrier(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrierBuffer(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrierImage(); // ERROR, extension not enabled (basic) - subgroupElect(); // ERROR, extension not enabled (basic) - gl_NumSubgroups; // ERROR, only defined in compute - gl_SubgroupID; // ERROR, only defined in compute - subgroupMemoryBarrierShared(); // ERROR, only defined in compute - - subgroupAll(true); // ERROR extension not enabled (vote) - subgroupAny(false); // ERROR extension not enabled (vote) - subgroupAllEqual(f4); // ERROR extension not enabled (vote) - - gl_SubgroupEqMask; // ERROR extension not enabled (ballot) - gl_SubgroupGeMask; // ERROR extension not enabled (ballot) - gl_SubgroupGtMask; // ERROR extension not enabled (ballot) - gl_SubgroupLeMask; // ERROR extension not enabled (ballot) - gl_SubgroupLtMask; // ERROR extension not enabled (ballot) - subgroupBroadcast(f4, 0); // ERROR extension not enabled (ballot) - subgroupBroadcastFirst(f4); // ERROR extension not enabled (ballot) - uvec4 ballot = subgroupBallot(false); // ERROR extension not enabled (ballot) - subgroupInverseBallot(uvec4(0x1)); // ERROR extension not enabled (ballot) - subgroupBallotBitExtract(ballot, 0); // ERROR extension not enabled (ballot) - subgroupBallotBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotInclusiveBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotExclusiveBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotFindLSB(ballot); // ERROR extension not enabled (ballot) - subgroupBallotFindMSB(ballot); // ERROR extension not enabled (ballot) - - subgroupShuffle(f4, 0); // ERROR extension not enabled (shuffle) - subgroupShuffleXor(f4, 0x1); // ERROR extension not enabled (shuffle) - subgroupShuffleUp(f4, 1); // ERROR extension not enabled (shuffle_relative) - subgroupShuffleDown(f4, 1); // ERROR extension not enabled (shuffle_relative) - - result = subgroupAdd(f4); // ERROR, extension not enabled (arith) - subgroupMul(f4); // ERROR, extension not enabled (arith) - subgroupMin(f4); // ERROR, extension not enabled (arith) - subgroupMax(f4); // ERROR, extension not enabled (arith) - subgroupAnd(ballot); // ERROR, extension not enabled (arith) - subgroupOr(ballot); // ERROR, extension not enabled (arith) - subgroupXor(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveAdd(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMul(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMin(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMax(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveAnd(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveOr(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveXor(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveAdd(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMul(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMin(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMax(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveAnd(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveOr(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveXor(ballot); // ERROR, extension not enabled (arith) - - subgroupClusteredAdd(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMul(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMin(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMax(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredAnd(ballot, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredOr(ballot, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredXor(ballot, 2); // ERROR, extension not enabled (clustered) - - subgroupQuadBroadcast(f4, 0); // ERROR, extension not enabled (quad) - subgroupQuadSwapHorizontal(f4); // ERROR, extension not enabled (quad) - subgroupQuadSwapVertical(f4); // ERROR, extension not enabled (quad) - subgroupQuadSwapDiagonal(f4); // ERROR, extension not enabled (quad) - - uvec4 parti = subgroupPartitionNV(f4); // ERROR, extension not enabled (partitioned) - subgroupPartitionedAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - - return result; -} - -#extension GL_KHR_shader_subgroup_basic: enable -layout(vertices=1) out; -layout(set = 0, binding = 0, std430) buffer Output -{ - uvec4 result[]; -}; - -void main (void) -{ - result[gl_PrimitiveID] = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0); - subgroupBarrier(); - subgroupMemoryBarrier(); - subgroupMemoryBarrierBuffer(); - subgroupMemoryBarrierImage(); - subgroupElect(); -} - -#extension GL_KHR_shader_subgroup_ballot: enable -void ballot_works(vec4 f4) { - gl_SubgroupEqMask; - gl_SubgroupGeMask; - gl_SubgroupGtMask; - gl_SubgroupLeMask; - gl_SubgroupLtMask; - subgroupBroadcast(f4, 0); - subgroupBroadcastFirst(f4); - uvec4 ballot = subgroupBallot(false); - subgroupInverseBallot(uvec4(0x1)); - subgroupBallotBitExtract(ballot, 0); - subgroupBallotBitCount(ballot); - subgroupBallotInclusiveBitCount(ballot); - subgroupBallotExclusiveBitCount(ballot); - subgroupBallotFindLSB(ballot); - subgroupBallotFindMSB(ballot); -} - -#extension GL_KHR_shader_subgroup_vote: enable -void vote_works(vec4 f4) -{ - subgroupAll(true); - subgroupAny(false); - subgroupAllEqual(f4); -} - -#extension GL_KHR_shader_subgroup_shuffle: enable -#extension GL_KHR_shader_subgroup_shuffle_relative: enable -void shuffle_works(vec4 f4) -{ - subgroupShuffle(f4, 0); - subgroupShuffleXor(f4, 0x1); - subgroupShuffleUp(f4, 1); - subgroupShuffleDown(f4, 1); -} - -#extension GL_KHR_shader_subgroup_arithmetic: enable -void arith_works(vec4 f4) -{ - uvec4 ballot; - subgroupAdd(f4); - subgroupMul(f4); - subgroupMin(f4); - subgroupMax(f4); - subgroupAnd(ballot); - subgroupOr(ballot); - subgroupXor(ballot); - subgroupInclusiveAdd(f4); - subgroupInclusiveMul(f4); - subgroupInclusiveMin(f4); - subgroupInclusiveMax(f4); - subgroupInclusiveAnd(ballot); - subgroupInclusiveOr(ballot); - subgroupInclusiveXor(ballot); - subgroupExclusiveAdd(f4); - subgroupExclusiveMul(f4); - subgroupExclusiveMin(f4); - subgroupExclusiveMax(f4); - subgroupExclusiveAnd(ballot); - subgroupExclusiveOr(ballot); - subgroupExclusiveXor(ballot); -} - -#extension GL_KHR_shader_subgroup_clustered: enable -void clustered_works(vec4 f4) -{ - uvec4 ballot = uvec4(0x55,0,0,0); - subgroupClusteredAdd(f4, 2); - subgroupClusteredMul(f4, 2); - subgroupClusteredMin(f4, 2); - subgroupClusteredMax(f4, 2); - subgroupClusteredAnd(ballot, 2); - subgroupClusteredOr(ballot, 2); - subgroupClusteredXor(ballot, 2); -} - -#extension GL_KHR_shader_subgroup_quad: enable -void quad_works(vec4 f4) -{ - subgroupQuadBroadcast(f4, 0); - subgroupQuadSwapHorizontal(f4); - subgroupQuadSwapVertical(f4); - subgroupQuadSwapDiagonal(f4); -} - -#extension GL_NV_shader_subgroup_partitioned: enable -void partitioned_works(vec4 f4) -{ - uvec4 parti = subgroupPartitionNV(f4); - uvec4 ballot = uvec4(0x55,0,0,0); - subgroupPartitionedAddNV(f4, parti); - subgroupPartitionedMulNV(f4, parti); - subgroupPartitionedMinNV(f4, parti); - subgroupPartitionedMaxNV(f4, parti); - subgroupPartitionedAndNV(ballot, parti); - subgroupPartitionedOrNV(ballot, parti); - subgroupPartitionedXorNV(ballot, parti); - subgroupPartitionedInclusiveAddNV(f4, parti); - subgroupPartitionedInclusiveMulNV(f4, parti); - subgroupPartitionedInclusiveMinNV(f4, parti); - subgroupPartitionedInclusiveMaxNV(f4, parti); - subgroupPartitionedInclusiveAndNV(ballot, parti); - subgroupPartitionedInclusiveOrNV(ballot, parti); - subgroupPartitionedInclusiveXorNV(ballot, parti); - subgroupPartitionedExclusiveAddNV(f4, parti); - subgroupPartitionedExclusiveMulNV(f4, parti); - subgroupPartitionedExclusiveMinNV(f4, parti); - subgroupPartitionedExclusiveMaxNV(f4, parti); - subgroupPartitionedExclusiveAndNV(ballot, parti); - subgroupPartitionedExclusiveOrNV(ballot, parti); - subgroupPartitionedExclusiveXorNV(ballot, parti); -} - -// tests for NV_shader_sm_builtins -void sm_builtins_err() -{ - gl_WarpsPerSMNV; // ERROR, no extension - gl_SMCountNV; // ERROR, no extension - gl_WarpIDNV; // ERROR, no extension - gl_SMIDNV; // ERROR, no extension -} - -#ifdef GL_NV_shader_sm_builtins -#extension GL_NV_shader_sm_builtins : enable -#endif - -void sm_builtins() -{ - gl_WarpsPerSMNV; - gl_SMCountNV; - gl_WarpIDNV; - gl_SMIDNV; -} diff --git a/deps/glslang/Test/glsl.450.subgroup.tese b/deps/glslang/Test/glsl.450.subgroup.tese deleted file mode 100644 index bfb2b72f..00000000 --- a/deps/glslang/Test/glsl.450.subgroup.tese +++ /dev/null @@ -1,253 +0,0 @@ -#version 450 - -vec4 undeclared_errors(vec4 f4) -{ - vec4 result; - gl_SubgroupSize; // ERROR, extension not enabled (basic) - gl_SubgroupInvocationID; // ERROR, extension not enabled (basic) - subgroupBarrier(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrier(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrierBuffer(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrierImage(); // ERROR, extension not enabled (basic) - subgroupElect(); // ERROR, extension not enabled (basic) - gl_NumSubgroups; // ERROR, only defined in compute - gl_SubgroupID; // ERROR, only defined in compute - subgroupMemoryBarrierShared(); // ERROR, only defined in compute - - subgroupAll(true); // ERROR extension not enabled (vote) - subgroupAny(false); // ERROR extension not enabled (vote) - subgroupAllEqual(f4); // ERROR extension not enabled (vote) - - gl_SubgroupEqMask; // ERROR extension not enabled (ballot) - gl_SubgroupGeMask; // ERROR extension not enabled (ballot) - gl_SubgroupGtMask; // ERROR extension not enabled (ballot) - gl_SubgroupLeMask; // ERROR extension not enabled (ballot) - gl_SubgroupLtMask; // ERROR extension not enabled (ballot) - subgroupBroadcast(f4, 0); // ERROR extension not enabled (ballot) - subgroupBroadcastFirst(f4); // ERROR extension not enabled (ballot) - uvec4 ballot = subgroupBallot(false); // ERROR extension not enabled (ballot) - subgroupInverseBallot(uvec4(0x1)); // ERROR extension not enabled (ballot) - subgroupBallotBitExtract(ballot, 0); // ERROR extension not enabled (ballot) - subgroupBallotBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotInclusiveBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotExclusiveBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotFindLSB(ballot); // ERROR extension not enabled (ballot) - subgroupBallotFindMSB(ballot); // ERROR extension not enabled (ballot) - - subgroupShuffle(f4, 0); // ERROR extension not enabled (shuffle) - subgroupShuffleXor(f4, 0x1); // ERROR extension not enabled (shuffle) - subgroupShuffleUp(f4, 1); // ERROR extension not enabled (shuffle_relative) - subgroupShuffleDown(f4, 1); // ERROR extension not enabled (shuffle_relative) - - result = subgroupAdd(f4); // ERROR, extension not enabled (arith) - subgroupMul(f4); // ERROR, extension not enabled (arith) - subgroupMin(f4); // ERROR, extension not enabled (arith) - subgroupMax(f4); // ERROR, extension not enabled (arith) - subgroupAnd(ballot); // ERROR, extension not enabled (arith) - subgroupOr(ballot); // ERROR, extension not enabled (arith) - subgroupXor(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveAdd(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMul(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMin(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMax(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveAnd(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveOr(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveXor(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveAdd(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMul(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMin(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMax(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveAnd(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveOr(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveXor(ballot); // ERROR, extension not enabled (arith) - - subgroupClusteredAdd(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMul(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMin(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMax(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredAnd(ballot, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredOr(ballot, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredXor(ballot, 2); // ERROR, extension not enabled (clustered) - - subgroupQuadBroadcast(f4, 0); // ERROR, extension not enabled (quad) - subgroupQuadSwapHorizontal(f4); // ERROR, extension not enabled (quad) - subgroupQuadSwapVertical(f4); // ERROR, extension not enabled (quad) - subgroupQuadSwapDiagonal(f4); // ERROR, extension not enabled (quad) - - uvec4 parti = subgroupPartitionNV(f4); // ERROR, extension not enabled (partitioned) - subgroupPartitionedAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - - return result; -} - -#extension GL_KHR_shader_subgroup_basic: enable -layout(isolines) in; -layout(set = 0, binding = 0, std430) buffer Output -{ - uvec4 result[]; -}; - -void main (void) -{ - result[gl_PrimitiveID] = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0); - subgroupBarrier(); - subgroupMemoryBarrier(); - subgroupMemoryBarrierBuffer(); - subgroupMemoryBarrierImage(); - subgroupElect(); -} - -#extension GL_KHR_shader_subgroup_ballot: enable -void ballot_works(vec4 f4) { - gl_SubgroupEqMask; - gl_SubgroupGeMask; - gl_SubgroupGtMask; - gl_SubgroupLeMask; - gl_SubgroupLtMask; - subgroupBroadcast(f4, 0); - subgroupBroadcastFirst(f4); - uvec4 ballot = subgroupBallot(false); - subgroupInverseBallot(uvec4(0x1)); - subgroupBallotBitExtract(ballot, 0); - subgroupBallotBitCount(ballot); - subgroupBallotInclusiveBitCount(ballot); - subgroupBallotExclusiveBitCount(ballot); - subgroupBallotFindLSB(ballot); - subgroupBallotFindMSB(ballot); -} - -#extension GL_KHR_shader_subgroup_vote: enable -void vote_works(vec4 f4) -{ - subgroupAll(true); - subgroupAny(false); - subgroupAllEqual(f4); -} - -#extension GL_KHR_shader_subgroup_shuffle: enable -#extension GL_KHR_shader_subgroup_shuffle_relative: enable -void shuffle_works(vec4 f4) -{ - subgroupShuffle(f4, 0); - subgroupShuffleXor(f4, 0x1); - subgroupShuffleUp(f4, 1); - subgroupShuffleDown(f4, 1); -} - -#extension GL_KHR_shader_subgroup_arithmetic: enable -void arith_works(vec4 f4) -{ - uvec4 ballot; - subgroupAdd(f4); - subgroupMul(f4); - subgroupMin(f4); - subgroupMax(f4); - subgroupAnd(ballot); - subgroupOr(ballot); - subgroupXor(ballot); - subgroupInclusiveAdd(f4); - subgroupInclusiveMul(f4); - subgroupInclusiveMin(f4); - subgroupInclusiveMax(f4); - subgroupInclusiveAnd(ballot); - subgroupInclusiveOr(ballot); - subgroupInclusiveXor(ballot); - subgroupExclusiveAdd(f4); - subgroupExclusiveMul(f4); - subgroupExclusiveMin(f4); - subgroupExclusiveMax(f4); - subgroupExclusiveAnd(ballot); - subgroupExclusiveOr(ballot); - subgroupExclusiveXor(ballot); -} - -#extension GL_KHR_shader_subgroup_clustered: enable -void clustered_works(vec4 f4) -{ - uvec4 ballot = uvec4(0x55,0,0,0); - subgroupClusteredAdd(f4, 2); - subgroupClusteredMul(f4, 2); - subgroupClusteredMin(f4, 2); - subgroupClusteredMax(f4, 2); - subgroupClusteredAnd(ballot, 2); - subgroupClusteredOr(ballot, 2); - subgroupClusteredXor(ballot, 2); -} - -#extension GL_KHR_shader_subgroup_quad: enable -void quad_works(vec4 f4) -{ - subgroupQuadBroadcast(f4, 0); - subgroupQuadSwapHorizontal(f4); - subgroupQuadSwapVertical(f4); - subgroupQuadSwapDiagonal(f4); -} - -#extension GL_NV_shader_subgroup_partitioned: enable -void partitioned_works(vec4 f4) -{ - uvec4 parti = subgroupPartitionNV(f4); - uvec4 ballot = uvec4(0x55,0,0,0); - subgroupPartitionedAddNV(f4, parti); - subgroupPartitionedMulNV(f4, parti); - subgroupPartitionedMinNV(f4, parti); - subgroupPartitionedMaxNV(f4, parti); - subgroupPartitionedAndNV(ballot, parti); - subgroupPartitionedOrNV(ballot, parti); - subgroupPartitionedXorNV(ballot, parti); - subgroupPartitionedInclusiveAddNV(f4, parti); - subgroupPartitionedInclusiveMulNV(f4, parti); - subgroupPartitionedInclusiveMinNV(f4, parti); - subgroupPartitionedInclusiveMaxNV(f4, parti); - subgroupPartitionedInclusiveAndNV(ballot, parti); - subgroupPartitionedInclusiveOrNV(ballot, parti); - subgroupPartitionedInclusiveXorNV(ballot, parti); - subgroupPartitionedExclusiveAddNV(f4, parti); - subgroupPartitionedExclusiveMulNV(f4, parti); - subgroupPartitionedExclusiveMinNV(f4, parti); - subgroupPartitionedExclusiveMaxNV(f4, parti); - subgroupPartitionedExclusiveAndNV(ballot, parti); - subgroupPartitionedExclusiveOrNV(ballot, parti); - subgroupPartitionedExclusiveXorNV(ballot, parti); -} - -// tests for NV_shader_sm_builtins -void sm_builtins_err() -{ - gl_WarpsPerSMNV; // ERROR, no extension - gl_SMCountNV; // ERROR, no extension - gl_WarpIDNV; // ERROR, no extension - gl_SMIDNV; // ERROR, no extension -} - -#ifdef GL_NV_shader_sm_builtins -#extension GL_NV_shader_sm_builtins : enable -#endif - -void sm_builtins() -{ - gl_WarpsPerSMNV; - gl_SMCountNV; - gl_WarpIDNV; - gl_SMIDNV; -} diff --git a/deps/glslang/Test/glsl.450.subgroup.vert b/deps/glslang/Test/glsl.450.subgroup.vert deleted file mode 100644 index 110b1d0d..00000000 --- a/deps/glslang/Test/glsl.450.subgroup.vert +++ /dev/null @@ -1,253 +0,0 @@ -#version 450 - -vec4 undeclared_errors(vec4 f4) -{ - vec4 result; - gl_SubgroupSize; // ERROR, extension not enabled (basic) - gl_SubgroupInvocationID; // ERROR, extension not enabled (basic) - subgroupBarrier(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrier(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrierBuffer(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrierImage(); // ERROR, extension not enabled (basic) - subgroupElect(); // ERROR, extension not enabled (basic) - gl_NumSubgroups; // ERROR, only defined in compute - gl_SubgroupID; // ERROR, only defined in compute - subgroupMemoryBarrierShared(); // ERROR, only defined in compute - - subgroupAll(true); // ERROR extension not enabled (vote) - subgroupAny(false); // ERROR extension not enabled (vote) - subgroupAllEqual(f4); // ERROR extension not enabled (vote) - - gl_SubgroupEqMask; // ERROR extension not enabled (ballot) - gl_SubgroupGeMask; // ERROR extension not enabled (ballot) - gl_SubgroupGtMask; // ERROR extension not enabled (ballot) - gl_SubgroupLeMask; // ERROR extension not enabled (ballot) - gl_SubgroupLtMask; // ERROR extension not enabled (ballot) - subgroupBroadcast(f4, 0); // ERROR extension not enabled (ballot) - subgroupBroadcastFirst(f4); // ERROR extension not enabled (ballot) - uvec4 ballot = subgroupBallot(false); // ERROR extension not enabled (ballot) - subgroupInverseBallot(uvec4(0x1)); // ERROR extension not enabled (ballot) - subgroupBallotBitExtract(ballot, 0); // ERROR extension not enabled (ballot) - subgroupBallotBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotInclusiveBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotExclusiveBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotFindLSB(ballot); // ERROR extension not enabled (ballot) - subgroupBallotFindMSB(ballot); // ERROR extension not enabled (ballot) - - subgroupShuffle(f4, 0); // ERROR extension not enabled (shuffle) - subgroupShuffleXor(f4, 0x1); // ERROR extension not enabled (shuffle) - subgroupShuffleUp(f4, 1); // ERROR extension not enabled (shuffle_relative) - subgroupShuffleDown(f4, 1); // ERROR extension not enabled (shuffle_relative) - - result = subgroupAdd(f4); // ERROR, extension not enabled (arith) - subgroupMul(f4); // ERROR, extension not enabled (arith) - subgroupMin(f4); // ERROR, extension not enabled (arith) - subgroupMax(f4); // ERROR, extension not enabled (arith) - subgroupAnd(ballot); // ERROR, extension not enabled (arith) - subgroupOr(ballot); // ERROR, extension not enabled (arith) - subgroupXor(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveAdd(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMul(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMin(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMax(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveAnd(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveOr(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveXor(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveAdd(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMul(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMin(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMax(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveAnd(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveOr(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveXor(ballot); // ERROR, extension not enabled (arith) - - subgroupClusteredAdd(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMul(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMin(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMax(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredAnd(ballot, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredOr(ballot, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredXor(ballot, 2); // ERROR, extension not enabled (clustered) - - subgroupQuadBroadcast(f4, 0); // ERROR, extension not enabled (quad) - subgroupQuadSwapHorizontal(f4); // ERROR, extension not enabled (quad) - subgroupQuadSwapVertical(f4); // ERROR, extension not enabled (quad) - subgroupQuadSwapDiagonal(f4); // ERROR, extension not enabled (quad) - - uvec4 parti = subgroupPartitionNV(f4); // ERROR, extension not enabled (partitioned) - subgroupPartitionedAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - - return result; -} - -#extension GL_KHR_shader_subgroup_basic: enable -layout(set = 0, binding = 0, std430) buffer Output -{ - uvec4 result[]; -}; - -void main (void) -{ - result[gl_VertexID] = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0); - subgroupBarrier(); - subgroupMemoryBarrier(); - subgroupMemoryBarrierBuffer(); - subgroupMemoryBarrierImage(); - subgroupElect(); -} - -#extension GL_KHR_shader_subgroup_ballot: enable -void ballot_works(vec4 f4) { - gl_SubgroupEqMask; - gl_SubgroupGeMask; - gl_SubgroupGtMask; - gl_SubgroupLeMask; - gl_SubgroupLtMask; - subgroupBroadcast(f4, 0); - subgroupBroadcastFirst(f4); - uvec4 ballot = subgroupBallot(false); - subgroupInverseBallot(uvec4(0x1)); - subgroupBallotBitExtract(ballot, 0); - subgroupBallotBitCount(ballot); - subgroupBallotInclusiveBitCount(ballot); - subgroupBallotExclusiveBitCount(ballot); - subgroupBallotFindLSB(ballot); - subgroupBallotFindMSB(ballot); -} - -#extension GL_KHR_shader_subgroup_vote: enable -void vote_works(vec4 f4) -{ - subgroupAll(true); - subgroupAny(false); - subgroupAllEqual(f4); -} - -#extension GL_KHR_shader_subgroup_shuffle: enable -#extension GL_KHR_shader_subgroup_shuffle_relative: enable -void shuffle_works(vec4 f4) -{ - subgroupShuffle(f4, 0); - subgroupShuffleXor(f4, 0x1); - subgroupShuffleUp(f4, 1); - subgroupShuffleDown(f4, 1); -} - -#extension GL_KHR_shader_subgroup_arithmetic: enable -void arith_works(vec4 f4) -{ - uvec4 ballot; - subgroupAdd(f4); - subgroupMul(f4); - subgroupMin(f4); - subgroupMax(f4); - subgroupAnd(ballot); - subgroupOr(ballot); - subgroupXor(ballot); - subgroupInclusiveAdd(f4); - subgroupInclusiveMul(f4); - subgroupInclusiveMin(f4); - subgroupInclusiveMax(f4); - subgroupInclusiveAnd(ballot); - subgroupInclusiveOr(ballot); - subgroupInclusiveXor(ballot); - subgroupExclusiveAdd(f4); - subgroupExclusiveMul(f4); - subgroupExclusiveMin(f4); - subgroupExclusiveMax(f4); - subgroupExclusiveAnd(ballot); - subgroupExclusiveOr(ballot); - subgroupExclusiveXor(ballot); -} - -#extension GL_KHR_shader_subgroup_clustered: enable -void clustered_works(vec4 f4) -{ - uvec4 ballot = uvec4(0x55,0,0,0); - subgroupClusteredAdd(f4, 2); - subgroupClusteredMul(f4, 2); - subgroupClusteredMin(f4, 2); - subgroupClusteredMax(f4, 2); - subgroupClusteredAnd(ballot, 2); - subgroupClusteredOr(ballot, 2); - subgroupClusteredXor(ballot, 2); -} - -#extension GL_KHR_shader_subgroup_quad: enable -void quad_works(vec4 f4) -{ - subgroupQuadBroadcast(f4, 0); - subgroupQuadSwapHorizontal(f4); - subgroupQuadSwapVertical(f4); - subgroupQuadSwapDiagonal(f4); -} - -#extension GL_NV_shader_subgroup_partitioned: enable -void partitioned_works(vec4 f4) -{ - uvec4 parti = subgroupPartitionNV(f4); - uvec4 ballot = uvec4(0x55,0,0,0); - subgroupPartitionedAddNV(f4, parti); - subgroupPartitionedMulNV(f4, parti); - subgroupPartitionedMinNV(f4, parti); - subgroupPartitionedMaxNV(f4, parti); - subgroupPartitionedAndNV(ballot, parti); - subgroupPartitionedOrNV(ballot, parti); - subgroupPartitionedXorNV(ballot, parti); - subgroupPartitionedInclusiveAddNV(f4, parti); - subgroupPartitionedInclusiveMulNV(f4, parti); - subgroupPartitionedInclusiveMinNV(f4, parti); - subgroupPartitionedInclusiveMaxNV(f4, parti); - subgroupPartitionedInclusiveAndNV(ballot, parti); - subgroupPartitionedInclusiveOrNV(ballot, parti); - subgroupPartitionedInclusiveXorNV(ballot, parti); - subgroupPartitionedExclusiveAddNV(f4, parti); - subgroupPartitionedExclusiveMulNV(f4, parti); - subgroupPartitionedExclusiveMinNV(f4, parti); - subgroupPartitionedExclusiveMaxNV(f4, parti); - subgroupPartitionedExclusiveAndNV(ballot, parti); - subgroupPartitionedExclusiveOrNV(ballot, parti); - subgroupPartitionedExclusiveXorNV(ballot, parti); -} - -// tests for NV_shader_sm_builtins -void sm_builtins_err() -{ - gl_WarpsPerSMNV; // ERROR, no extension - gl_SMCountNV; // ERROR, no extension - gl_WarpIDNV; // ERROR, no extension - gl_SMIDNV; // ERROR, no extension -} - -#ifdef GL_NV_shader_sm_builtins -#extension GL_NV_shader_sm_builtins : enable -#endif - -void sm_builtins() -{ - gl_WarpsPerSMNV; - gl_SMCountNV; - gl_WarpIDNV; - gl_SMIDNV; -} - diff --git a/deps/glslang/Test/glsl.450.subgroupArithmetic.comp b/deps/glslang/Test/glsl.450.subgroupArithmetic.comp deleted file mode 100644 index 6cc9337b..00000000 --- a/deps/glslang/Test/glsl.450.subgroupArithmetic.comp +++ /dev/null @@ -1,393 +0,0 @@ -#version 450 - -#extension GL_KHR_shader_subgroup_arithmetic: enable - -layout (local_size_x = 8) in; - -layout(binding = 0) buffer Buffers -{ - vec4 f4; - ivec4 i4; - uvec4 u4; - dvec4 d4; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; - - data[invocation].f4.x = subgroupAdd(data[0].f4.x); - data[invocation].f4.xy = subgroupAdd(data[1].f4.xy); - data[invocation].f4.xyz = subgroupAdd(data[2].f4.xyz); - data[invocation].f4 = subgroupAdd(data[3].f4); - - data[invocation].i4.x = subgroupAdd(data[0].i4.x); - data[invocation].i4.xy = subgroupAdd(data[1].i4.xy); - data[invocation].i4.xyz = subgroupAdd(data[2].i4.xyz); - data[invocation].i4 = subgroupAdd(data[3].i4); - - data[invocation].u4.x = subgroupAdd(data[0].u4.x); - data[invocation].u4.xy = subgroupAdd(data[1].u4.xy); - data[invocation].u4.xyz = subgroupAdd(data[2].u4.xyz); - data[invocation].u4 = subgroupAdd(data[3].u4); - - data[invocation].d4.x = subgroupAdd(data[0].d4.x); - data[invocation].d4.xy = subgroupAdd(data[1].d4.xy); - data[invocation].d4.xyz = subgroupAdd(data[2].d4.xyz); - data[invocation].d4 = subgroupAdd(data[3].d4); - - data[invocation].f4.x = subgroupMul(data[0].f4.x); - data[invocation].f4.xy = subgroupMul(data[1].f4.xy); - data[invocation].f4.xyz = subgroupMul(data[2].f4.xyz); - data[invocation].f4 = subgroupMul(data[3].f4); - - data[invocation].i4.x = subgroupMul(data[0].i4.x); - data[invocation].i4.xy = subgroupMul(data[1].i4.xy); - data[invocation].i4.xyz = subgroupMul(data[2].i4.xyz); - data[invocation].i4 = subgroupMul(data[3].i4); - - data[invocation].u4.x = subgroupMul(data[0].u4.x); - data[invocation].u4.xy = subgroupMul(data[1].u4.xy); - data[invocation].u4.xyz = subgroupMul(data[2].u4.xyz); - data[invocation].u4 = subgroupMul(data[3].u4); - - data[invocation].d4.x = subgroupMul(data[0].d4.x); - data[invocation].d4.xy = subgroupMul(data[1].d4.xy); - data[invocation].d4.xyz = subgroupMul(data[2].d4.xyz); - data[invocation].d4 = subgroupMul(data[3].d4); - - data[invocation].f4.x = subgroupMin(data[0].f4.x); - data[invocation].f4.xy = subgroupMin(data[1].f4.xy); - data[invocation].f4.xyz = subgroupMin(data[2].f4.xyz); - data[invocation].f4 = subgroupMin(data[3].f4); - - data[invocation].i4.x = subgroupMin(data[0].i4.x); - data[invocation].i4.xy = subgroupMin(data[1].i4.xy); - data[invocation].i4.xyz = subgroupMin(data[2].i4.xyz); - data[invocation].i4 = subgroupMin(data[3].i4); - - data[invocation].u4.x = subgroupMin(data[0].u4.x); - data[invocation].u4.xy = subgroupMin(data[1].u4.xy); - data[invocation].u4.xyz = subgroupMin(data[2].u4.xyz); - data[invocation].u4 = subgroupMin(data[3].u4); - - data[invocation].d4.x = subgroupMin(data[0].d4.x); - data[invocation].d4.xy = subgroupMin(data[1].d4.xy); - data[invocation].d4.xyz = subgroupMin(data[2].d4.xyz); - data[invocation].d4 = subgroupMin(data[3].d4); - - data[invocation].f4.x = subgroupMax(data[0].f4.x); - data[invocation].f4.xy = subgroupMax(data[1].f4.xy); - data[invocation].f4.xyz = subgroupMax(data[2].f4.xyz); - data[invocation].f4 = subgroupMax(data[3].f4); - - data[invocation].i4.x = subgroupMax(data[0].i4.x); - data[invocation].i4.xy = subgroupMax(data[1].i4.xy); - data[invocation].i4.xyz = subgroupMax(data[2].i4.xyz); - data[invocation].i4 = subgroupMax(data[3].i4); - - data[invocation].u4.x = subgroupMax(data[0].u4.x); - data[invocation].u4.xy = subgroupMax(data[1].u4.xy); - data[invocation].u4.xyz = subgroupMax(data[2].u4.xyz); - data[invocation].u4 = subgroupMax(data[3].u4); - - data[invocation].d4.x = subgroupMax(data[0].d4.x); - data[invocation].d4.xy = subgroupMax(data[1].d4.xy); - data[invocation].d4.xyz = subgroupMax(data[2].d4.xyz); - data[invocation].d4 = subgroupMax(data[3].d4); - - data[invocation].i4.x = subgroupAnd(data[0].i4.x); - data[invocation].i4.xy = subgroupAnd(data[1].i4.xy); - data[invocation].i4.xyz = subgroupAnd(data[2].i4.xyz); - data[invocation].i4 = subgroupAnd(data[3].i4); - - data[invocation].u4.x = subgroupAnd(data[0].u4.x); - data[invocation].u4.xy = subgroupAnd(data[1].u4.xy); - data[invocation].u4.xyz = subgroupAnd(data[2].u4.xyz); - data[invocation].u4 = subgroupAnd(data[3].u4); - - data[invocation].i4.x = int(subgroupAnd(data[0].i4.x < 0)); - data[invocation].i4.xy = ivec2(subgroupAnd(lessThan(data[1].i4.xy, ivec2(0)))); - data[invocation].i4.xyz = ivec3(subgroupAnd(lessThan(data[1].i4.xyz, ivec3(0)))); - data[invocation].i4 = ivec4(subgroupAnd(lessThan(data[1].i4, ivec4(0)))); - - data[invocation].i4.x = subgroupOr(data[0].i4.x); - data[invocation].i4.xy = subgroupOr(data[1].i4.xy); - data[invocation].i4.xyz = subgroupOr(data[2].i4.xyz); - data[invocation].i4 = subgroupOr(data[3].i4); - - data[invocation].u4.x = subgroupOr(data[0].u4.x); - data[invocation].u4.xy = subgroupOr(data[1].u4.xy); - data[invocation].u4.xyz = subgroupOr(data[2].u4.xyz); - data[invocation].u4 = subgroupOr(data[3].u4); - - data[invocation].i4.x = int(subgroupOr(data[0].i4.x < 0)); - data[invocation].i4.xy = ivec2(subgroupOr(lessThan(data[1].i4.xy, ivec2(0)))); - data[invocation].i4.xyz = ivec3(subgroupOr(lessThan(data[1].i4.xyz, ivec3(0)))); - data[invocation].i4 = ivec4(subgroupOr(lessThan(data[1].i4, ivec4(0)))); - - data[invocation].i4.x = subgroupXor(data[0].i4.x); - data[invocation].i4.xy = subgroupXor(data[1].i4.xy); - data[invocation].i4.xyz = subgroupXor(data[2].i4.xyz); - data[invocation].i4 = subgroupXor(data[3].i4); - - data[invocation].u4.x = subgroupXor(data[0].u4.x); - data[invocation].u4.xy = subgroupXor(data[1].u4.xy); - data[invocation].u4.xyz = subgroupXor(data[2].u4.xyz); - data[invocation].u4 = subgroupXor(data[3].u4); - - data[invocation].i4.x = int(subgroupXor(data[0].i4.x < 0)); - data[invocation].i4.xy = ivec2(subgroupXor(lessThan(data[1].i4.xy, ivec2(0)))); - data[invocation].i4.xyz = ivec3(subgroupXor(lessThan(data[1].i4.xyz, ivec3(0)))); - data[invocation].i4 = ivec4(subgroupXor(lessThan(data[1].i4, ivec4(0)))); - - data[invocation].f4.x = subgroupInclusiveAdd(data[0].f4.x); - data[invocation].f4.xy = subgroupInclusiveAdd(data[1].f4.xy); - data[invocation].f4.xyz = subgroupInclusiveAdd(data[2].f4.xyz); - data[invocation].f4 = subgroupInclusiveAdd(data[3].f4); - - data[invocation].i4.x = subgroupInclusiveAdd(data[0].i4.x); - data[invocation].i4.xy = subgroupInclusiveAdd(data[1].i4.xy); - data[invocation].i4.xyz = subgroupInclusiveAdd(data[2].i4.xyz); - data[invocation].i4 = subgroupInclusiveAdd(data[3].i4); - - data[invocation].u4.x = subgroupInclusiveAdd(data[0].u4.x); - data[invocation].u4.xy = subgroupInclusiveAdd(data[1].u4.xy); - data[invocation].u4.xyz = subgroupInclusiveAdd(data[2].u4.xyz); - data[invocation].u4 = subgroupInclusiveAdd(data[3].u4); - - data[invocation].d4.x = subgroupInclusiveAdd(data[0].d4.x); - data[invocation].d4.xy = subgroupInclusiveAdd(data[1].d4.xy); - data[invocation].d4.xyz = subgroupInclusiveAdd(data[2].d4.xyz); - data[invocation].d4 = subgroupInclusiveAdd(data[3].d4); - - data[invocation].f4.x = subgroupInclusiveMul(data[0].f4.x); - data[invocation].f4.xy = subgroupInclusiveMul(data[1].f4.xy); - data[invocation].f4.xyz = subgroupInclusiveMul(data[2].f4.xyz); - data[invocation].f4 = subgroupInclusiveMul(data[3].f4); - - data[invocation].i4.x = subgroupInclusiveMul(data[0].i4.x); - data[invocation].i4.xy = subgroupInclusiveMul(data[1].i4.xy); - data[invocation].i4.xyz = subgroupInclusiveMul(data[2].i4.xyz); - data[invocation].i4 = subgroupInclusiveMul(data[3].i4); - - data[invocation].u4.x = subgroupInclusiveMul(data[0].u4.x); - data[invocation].u4.xy = subgroupInclusiveMul(data[1].u4.xy); - data[invocation].u4.xyz = subgroupInclusiveMul(data[2].u4.xyz); - data[invocation].u4 = subgroupInclusiveMul(data[3].u4); - - data[invocation].d4.x = subgroupInclusiveMul(data[0].d4.x); - data[invocation].d4.xy = subgroupInclusiveMul(data[1].d4.xy); - data[invocation].d4.xyz = subgroupInclusiveMul(data[2].d4.xyz); - data[invocation].d4 = subgroupInclusiveMul(data[3].d4); - - data[invocation].f4.x = subgroupInclusiveMin(data[0].f4.x); - data[invocation].f4.xy = subgroupInclusiveMin(data[1].f4.xy); - data[invocation].f4.xyz = subgroupInclusiveMin(data[2].f4.xyz); - data[invocation].f4 = subgroupInclusiveMin(data[3].f4); - - data[invocation].i4.x = subgroupInclusiveMin(data[0].i4.x); - data[invocation].i4.xy = subgroupInclusiveMin(data[1].i4.xy); - data[invocation].i4.xyz = subgroupInclusiveMin(data[2].i4.xyz); - data[invocation].i4 = subgroupInclusiveMin(data[3].i4); - - data[invocation].u4.x = subgroupInclusiveMin(data[0].u4.x); - data[invocation].u4.xy = subgroupInclusiveMin(data[1].u4.xy); - data[invocation].u4.xyz = subgroupInclusiveMin(data[2].u4.xyz); - data[invocation].u4 = subgroupInclusiveMin(data[3].u4); - - data[invocation].d4.x = subgroupInclusiveMin(data[0].d4.x); - data[invocation].d4.xy = subgroupInclusiveMin(data[1].d4.xy); - data[invocation].d4.xyz = subgroupInclusiveMin(data[2].d4.xyz); - data[invocation].d4 = subgroupInclusiveMin(data[3].d4); - - data[invocation].f4.x = subgroupInclusiveMax(data[0].f4.x); - data[invocation].f4.xy = subgroupInclusiveMax(data[1].f4.xy); - data[invocation].f4.xyz = subgroupInclusiveMax(data[2].f4.xyz); - data[invocation].f4 = subgroupInclusiveMax(data[3].f4); - - data[invocation].i4.x = subgroupInclusiveMax(data[0].i4.x); - data[invocation].i4.xy = subgroupInclusiveMax(data[1].i4.xy); - data[invocation].i4.xyz = subgroupInclusiveMax(data[2].i4.xyz); - data[invocation].i4 = subgroupInclusiveMax(data[3].i4); - - data[invocation].u4.x = subgroupInclusiveMax(data[0].u4.x); - data[invocation].u4.xy = subgroupInclusiveMax(data[1].u4.xy); - data[invocation].u4.xyz = subgroupInclusiveMax(data[2].u4.xyz); - data[invocation].u4 = subgroupInclusiveMax(data[3].u4); - - data[invocation].d4.x = subgroupInclusiveMax(data[0].d4.x); - data[invocation].d4.xy = subgroupInclusiveMax(data[1].d4.xy); - data[invocation].d4.xyz = subgroupInclusiveMax(data[2].d4.xyz); - data[invocation].d4 = subgroupInclusiveMax(data[3].d4); - - data[invocation].i4.x = subgroupInclusiveAnd(data[0].i4.x); - data[invocation].i4.xy = subgroupInclusiveAnd(data[1].i4.xy); - data[invocation].i4.xyz = subgroupInclusiveAnd(data[2].i4.xyz); - data[invocation].i4 = subgroupInclusiveAnd(data[3].i4); - - data[invocation].u4.x = subgroupInclusiveAnd(data[0].u4.x); - data[invocation].u4.xy = subgroupInclusiveAnd(data[1].u4.xy); - data[invocation].u4.xyz = subgroupInclusiveAnd(data[2].u4.xyz); - data[invocation].u4 = subgroupInclusiveAnd(data[3].u4); - - data[invocation].i4.x = int(subgroupInclusiveAnd(data[0].i4.x < 0)); - data[invocation].i4.xy = ivec2(subgroupInclusiveAnd(lessThan(data[1].i4.xy, ivec2(0)))); - data[invocation].i4.xyz = ivec3(subgroupInclusiveAnd(lessThan(data[1].i4.xyz, ivec3(0)))); - data[invocation].i4 = ivec4(subgroupInclusiveAnd(lessThan(data[1].i4, ivec4(0)))); - - data[invocation].i4.x = subgroupInclusiveOr(data[0].i4.x); - data[invocation].i4.xy = subgroupInclusiveOr(data[1].i4.xy); - data[invocation].i4.xyz = subgroupInclusiveOr(data[2].i4.xyz); - data[invocation].i4 = subgroupInclusiveOr(data[3].i4); - - data[invocation].u4.x = subgroupInclusiveOr(data[0].u4.x); - data[invocation].u4.xy = subgroupInclusiveOr(data[1].u4.xy); - data[invocation].u4.xyz = subgroupInclusiveOr(data[2].u4.xyz); - data[invocation].u4 = subgroupInclusiveOr(data[3].u4); - - data[invocation].i4.x = int(subgroupInclusiveOr(data[0].i4.x < 0)); - data[invocation].i4.xy = ivec2(subgroupInclusiveOr(lessThan(data[1].i4.xy, ivec2(0)))); - data[invocation].i4.xyz = ivec3(subgroupInclusiveOr(lessThan(data[1].i4.xyz, ivec3(0)))); - data[invocation].i4 = ivec4(subgroupInclusiveOr(lessThan(data[1].i4, ivec4(0)))); - - data[invocation].i4.x = subgroupInclusiveXor(data[0].i4.x); - data[invocation].i4.xy = subgroupInclusiveXor(data[1].i4.xy); - data[invocation].i4.xyz = subgroupInclusiveXor(data[2].i4.xyz); - data[invocation].i4 = subgroupInclusiveXor(data[3].i4); - - data[invocation].u4.x = subgroupInclusiveXor(data[0].u4.x); - data[invocation].u4.xy = subgroupInclusiveXor(data[1].u4.xy); - data[invocation].u4.xyz = subgroupInclusiveXor(data[2].u4.xyz); - data[invocation].u4 = subgroupInclusiveXor(data[3].u4); - - data[invocation].i4.x = int(subgroupInclusiveXor(data[0].i4.x < 0)); - data[invocation].i4.xy = ivec2(subgroupInclusiveXor(lessThan(data[1].i4.xy, ivec2(0)))); - data[invocation].i4.xyz = ivec3(subgroupInclusiveXor(lessThan(data[1].i4.xyz, ivec3(0)))); - data[invocation].i4 = ivec4(subgroupInclusiveXor(lessThan(data[1].i4, ivec4(0)))); - - data[invocation].f4.x = subgroupExclusiveAdd(data[0].f4.x); - data[invocation].f4.xy = subgroupExclusiveAdd(data[1].f4.xy); - data[invocation].f4.xyz = subgroupExclusiveAdd(data[2].f4.xyz); - data[invocation].f4 = subgroupExclusiveAdd(data[3].f4); - - data[invocation].i4.x = subgroupExclusiveAdd(data[0].i4.x); - data[invocation].i4.xy = subgroupExclusiveAdd(data[1].i4.xy); - data[invocation].i4.xyz = subgroupExclusiveAdd(data[2].i4.xyz); - data[invocation].i4 = subgroupExclusiveAdd(data[3].i4); - - data[invocation].u4.x = subgroupExclusiveAdd(data[0].u4.x); - data[invocation].u4.xy = subgroupExclusiveAdd(data[1].u4.xy); - data[invocation].u4.xyz = subgroupExclusiveAdd(data[2].u4.xyz); - data[invocation].u4 = subgroupExclusiveAdd(data[3].u4); - - data[invocation].d4.x = subgroupExclusiveAdd(data[0].d4.x); - data[invocation].d4.xy = subgroupExclusiveAdd(data[1].d4.xy); - data[invocation].d4.xyz = subgroupExclusiveAdd(data[2].d4.xyz); - data[invocation].d4 = subgroupExclusiveAdd(data[3].d4); - - data[invocation].f4.x = subgroupExclusiveMul(data[0].f4.x); - data[invocation].f4.xy = subgroupExclusiveMul(data[1].f4.xy); - data[invocation].f4.xyz = subgroupExclusiveMul(data[2].f4.xyz); - data[invocation].f4 = subgroupExclusiveMul(data[3].f4); - - data[invocation].i4.x = subgroupExclusiveMul(data[0].i4.x); - data[invocation].i4.xy = subgroupExclusiveMul(data[1].i4.xy); - data[invocation].i4.xyz = subgroupExclusiveMul(data[2].i4.xyz); - data[invocation].i4 = subgroupExclusiveMul(data[3].i4); - - data[invocation].u4.x = subgroupExclusiveMul(data[0].u4.x); - data[invocation].u4.xy = subgroupExclusiveMul(data[1].u4.xy); - data[invocation].u4.xyz = subgroupExclusiveMul(data[2].u4.xyz); - data[invocation].u4 = subgroupExclusiveMul(data[3].u4); - - data[invocation].d4.x = subgroupExclusiveMul(data[0].d4.x); - data[invocation].d4.xy = subgroupExclusiveMul(data[1].d4.xy); - data[invocation].d4.xyz = subgroupExclusiveMul(data[2].d4.xyz); - data[invocation].d4 = subgroupExclusiveMul(data[3].d4); - - data[invocation].f4.x = subgroupExclusiveMin(data[0].f4.x); - data[invocation].f4.xy = subgroupExclusiveMin(data[1].f4.xy); - data[invocation].f4.xyz = subgroupExclusiveMin(data[2].f4.xyz); - data[invocation].f4 = subgroupExclusiveMin(data[3].f4); - - data[invocation].i4.x = subgroupExclusiveMin(data[0].i4.x); - data[invocation].i4.xy = subgroupExclusiveMin(data[1].i4.xy); - data[invocation].i4.xyz = subgroupExclusiveMin(data[2].i4.xyz); - data[invocation].i4 = subgroupExclusiveMin(data[3].i4); - - data[invocation].u4.x = subgroupExclusiveMin(data[0].u4.x); - data[invocation].u4.xy = subgroupExclusiveMin(data[1].u4.xy); - data[invocation].u4.xyz = subgroupExclusiveMin(data[2].u4.xyz); - data[invocation].u4 = subgroupExclusiveMin(data[3].u4); - - data[invocation].d4.x = subgroupExclusiveMin(data[0].d4.x); - data[invocation].d4.xy = subgroupExclusiveMin(data[1].d4.xy); - data[invocation].d4.xyz = subgroupExclusiveMin(data[2].d4.xyz); - data[invocation].d4 = subgroupExclusiveMin(data[3].d4); - - data[invocation].f4.x = subgroupExclusiveMax(data[0].f4.x); - data[invocation].f4.xy = subgroupExclusiveMax(data[1].f4.xy); - data[invocation].f4.xyz = subgroupExclusiveMax(data[2].f4.xyz); - data[invocation].f4 = subgroupExclusiveMax(data[3].f4); - - data[invocation].i4.x = subgroupExclusiveMax(data[0].i4.x); - data[invocation].i4.xy = subgroupExclusiveMax(data[1].i4.xy); - data[invocation].i4.xyz = subgroupExclusiveMax(data[2].i4.xyz); - data[invocation].i4 = subgroupExclusiveMax(data[3].i4); - - data[invocation].u4.x = subgroupExclusiveMax(data[0].u4.x); - data[invocation].u4.xy = subgroupExclusiveMax(data[1].u4.xy); - data[invocation].u4.xyz = subgroupExclusiveMax(data[2].u4.xyz); - data[invocation].u4 = subgroupExclusiveMax(data[3].u4); - - data[invocation].d4.x = subgroupExclusiveMax(data[0].d4.x); - data[invocation].d4.xy = subgroupExclusiveMax(data[1].d4.xy); - data[invocation].d4.xyz = subgroupExclusiveMax(data[2].d4.xyz); - data[invocation].d4 = subgroupExclusiveMax(data[3].d4); - - data[invocation].i4.x = subgroupExclusiveAnd(data[0].i4.x); - data[invocation].i4.xy = subgroupExclusiveAnd(data[1].i4.xy); - data[invocation].i4.xyz = subgroupExclusiveAnd(data[2].i4.xyz); - data[invocation].i4 = subgroupExclusiveAnd(data[3].i4); - - data[invocation].u4.x = subgroupExclusiveAnd(data[0].u4.x); - data[invocation].u4.xy = subgroupExclusiveAnd(data[1].u4.xy); - data[invocation].u4.xyz = subgroupExclusiveAnd(data[2].u4.xyz); - data[invocation].u4 = subgroupExclusiveAnd(data[3].u4); - - data[invocation].i4.x = int(subgroupExclusiveAnd(data[0].i4.x < 0)); - data[invocation].i4.xy = ivec2(subgroupExclusiveAnd(lessThan(data[1].i4.xy, ivec2(0)))); - data[invocation].i4.xyz = ivec3(subgroupExclusiveAnd(lessThan(data[1].i4.xyz, ivec3(0)))); - data[invocation].i4 = ivec4(subgroupExclusiveAnd(lessThan(data[1].i4, ivec4(0)))); - - data[invocation].i4.x = subgroupExclusiveOr(data[0].i4.x); - data[invocation].i4.xy = subgroupExclusiveOr(data[1].i4.xy); - data[invocation].i4.xyz = subgroupExclusiveOr(data[2].i4.xyz); - data[invocation].i4 = subgroupExclusiveOr(data[3].i4); - - data[invocation].u4.x = subgroupExclusiveOr(data[0].u4.x); - data[invocation].u4.xy = subgroupExclusiveOr(data[1].u4.xy); - data[invocation].u4.xyz = subgroupExclusiveOr(data[2].u4.xyz); - data[invocation].u4 = subgroupExclusiveOr(data[3].u4); - - data[invocation].i4.x = int(subgroupExclusiveOr(data[0].i4.x < 0)); - data[invocation].i4.xy = ivec2(subgroupExclusiveOr(lessThan(data[1].i4.xy, ivec2(0)))); - data[invocation].i4.xyz = ivec3(subgroupExclusiveOr(lessThan(data[1].i4.xyz, ivec3(0)))); - data[invocation].i4 = ivec4(subgroupExclusiveOr(lessThan(data[1].i4, ivec4(0)))); - - data[invocation].i4.x = subgroupExclusiveXor(data[0].i4.x); - data[invocation].i4.xy = subgroupExclusiveXor(data[1].i4.xy); - data[invocation].i4.xyz = subgroupExclusiveXor(data[2].i4.xyz); - data[invocation].i4 = subgroupExclusiveXor(data[3].i4); - - data[invocation].u4.x = subgroupExclusiveXor(data[0].u4.x); - data[invocation].u4.xy = subgroupExclusiveXor(data[1].u4.xy); - data[invocation].u4.xyz = subgroupExclusiveXor(data[2].u4.xyz); - data[invocation].u4 = subgroupExclusiveXor(data[3].u4); - - data[invocation].i4.x = int(subgroupExclusiveXor(data[0].i4.x < 0)); - data[invocation].i4.xy = ivec2(subgroupExclusiveXor(lessThan(data[1].i4.xy, ivec2(0)))); - data[invocation].i4.xyz = ivec3(subgroupExclusiveXor(lessThan(data[1].i4.xyz, ivec3(0)))); - data[invocation].i4 = ivec4(subgroupExclusiveXor(lessThan(data[1].i4, ivec4(0)))); -} diff --git a/deps/glslang/Test/glsl.450.subgroupBallot.comp b/deps/glslang/Test/glsl.450.subgroupBallot.comp deleted file mode 100644 index bb9dc3e4..00000000 --- a/deps/glslang/Test/glsl.450.subgroupBallot.comp +++ /dev/null @@ -1,86 +0,0 @@ -#version 450 - -#extension GL_KHR_shader_subgroup_ballot: enable - -layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in; - -layout(binding = 0) buffer Buffers -{ - vec4 f4; - ivec4 i4; - uvec4 u4; - dvec4 d4; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; - - uvec4 relMask = gl_SubgroupEqMask + - gl_SubgroupGeMask + - gl_SubgroupGtMask + - gl_SubgroupLeMask + - gl_SubgroupLtMask; - - uvec4 result = subgroupBallot(true); - - data[invocation].u4.x = subgroupBallotBitCount(result); - data[invocation].u4.y = subgroupBallotBitExtract(result, 0) ? 1 : 0; - data[invocation].u4.z = subgroupBallotInclusiveBitCount(result) + subgroupBallotExclusiveBitCount(result); - data[invocation].u4.w = subgroupBallotFindLSB(result) + subgroupBallotFindMSB(result); - - if ((relMask == result) && subgroupInverseBallot(data[0].u4)) - { - data[invocation].f4.x = subgroupBroadcast(data[0].f4.x, 3); - data[invocation].f4.xy = subgroupBroadcast(data[1].f4.xy, 3); - data[invocation].f4.xyz = subgroupBroadcast(data[2].f4.xyz, 3); - data[invocation].f4 = subgroupBroadcast(data[3].f4, 3); - - data[invocation].i4.x = subgroupBroadcast(data[0].i4.x, 2); - data[invocation].i4.xy = subgroupBroadcast(data[1].i4.xy, 2); - data[invocation].i4.xyz = subgroupBroadcast(data[2].i4.xyz, 2); - data[invocation].i4 = subgroupBroadcast(data[3].i4, 2); - - data[invocation].u4.x = subgroupBroadcast(data[0].u4.x, 1); - data[invocation].u4.xy = subgroupBroadcast(data[1].u4.xy, 1); - data[invocation].u4.xyz = subgroupBroadcast(data[2].u4.xyz, 1); - data[invocation].u4 = subgroupBroadcast(data[3].u4, 1); - - data[invocation].d4.x = subgroupBroadcast(data[0].d4.x, 0); - data[invocation].d4.xy = subgroupBroadcast(data[1].d4.xy, 0); - data[invocation].d4.xyz = subgroupBroadcast(data[2].d4.xyz, 0); - data[invocation].d4 = subgroupBroadcast(data[3].d4, 0); - - data[invocation].i4.x = int(subgroupBroadcast(data[0].i4.x < 0, 1)); - data[invocation].i4.xy = ivec2(subgroupBroadcast(lessThan(data[1].i4.xy, ivec2(0)), 1)); - data[invocation].i4.xyz = ivec3(subgroupBroadcast(lessThan(data[1].i4.xyz, ivec3(0)), 1)); - data[invocation].i4 = ivec4(subgroupBroadcast(lessThan(data[1].i4, ivec4(0)), 1)); - } - else - { - data[invocation].f4.x = subgroupBroadcastFirst(data[0].f4.x); - data[invocation].f4.xy = subgroupBroadcastFirst(data[1].f4.xy); - data[invocation].f4.xyz = subgroupBroadcastFirst(data[2].f4.xyz); - data[invocation].f4 = subgroupBroadcastFirst(data[3].f4); - - data[invocation].i4.x = subgroupBroadcastFirst(data[0].i4.x); - data[invocation].i4.xy = subgroupBroadcastFirst(data[1].i4.xy); - data[invocation].i4.xyz = subgroupBroadcastFirst(data[2].i4.xyz); - data[invocation].i4 = subgroupBroadcastFirst(data[3].i4); - - data[invocation].u4.x = subgroupBroadcastFirst(data[0].u4.x); - data[invocation].u4.xy = subgroupBroadcastFirst(data[1].u4.xy); - data[invocation].u4.xyz = subgroupBroadcastFirst(data[2].u4.xyz); - data[invocation].u4 = subgroupBroadcastFirst(data[3].u4); - - data[invocation].d4.x = subgroupBroadcastFirst(data[0].d4.x); - data[invocation].d4.xy = subgroupBroadcastFirst(data[1].d4.xy); - data[invocation].d4.xyz = subgroupBroadcastFirst(data[2].d4.xyz); - data[invocation].d4 = subgroupBroadcastFirst(data[3].d4); - - data[invocation].i4.x = int(subgroupBroadcastFirst(data[0].i4.x < 0)); - data[invocation].i4.xy = ivec2(subgroupBroadcastFirst(lessThan(data[1].i4.xy, ivec2(0)))); - data[invocation].i4.xyz = ivec3(subgroupBroadcastFirst(lessThan(data[1].i4.xyz, ivec3(0)))); - data[invocation].i4 = ivec4(subgroupBroadcastFirst(lessThan(data[1].i4, ivec4(0)))); - } -} diff --git a/deps/glslang/Test/glsl.450.subgroupBallotNeg.comp b/deps/glslang/Test/glsl.450.subgroupBallotNeg.comp deleted file mode 100644 index 4020adf1..00000000 --- a/deps/glslang/Test/glsl.450.subgroupBallotNeg.comp +++ /dev/null @@ -1,33 +0,0 @@ -#version 450 - -#extension GL_KHR_shader_subgroup_ballot: enable - -layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in; - -layout(binding = 0) buffer Buffers -{ - vec4 f4; - ivec4 i4; - uvec4 u4; - dvec4 d4; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; - - uvec4 relMask = gl_SubgroupEqMask + - gl_SubgroupGeMask + - gl_SubgroupGtMask + - gl_SubgroupLeMask + - gl_SubgroupLtMask; - - uvec4 result = subgroupBallot(true); - - data[invocation].u4.x = subgroupBallotBitCount(result); - data[invocation].u4.y = subgroupBallotBitExtract(result, 0) ? 1 : 0; - data[invocation].u4.z = subgroupBallotInclusiveBitCount(result) + subgroupBallotExclusiveBitCount(result); - data[invocation].u4.w = subgroupBallotFindLSB(result) + subgroupBallotFindMSB(result); - - data[invocation].f4.x = subgroupBroadcast(data[0].f4.x, invocation); // ERROR: not constant -} diff --git a/deps/glslang/Test/glsl.450.subgroupBasic.comp b/deps/glslang/Test/glsl.450.subgroupBasic.comp deleted file mode 100644 index 7b428789..00000000 --- a/deps/glslang/Test/glsl.450.subgroupBasic.comp +++ /dev/null @@ -1,258 +0,0 @@ -#version 450 - -vec4 undeclared_errors(vec4 f4) -{ - vec4 result; - gl_SubgroupSize; // ERROR, extension not enabled (basic) - gl_SubgroupInvocationID; // ERROR, extension not enabled (basic) - subgroupBarrier(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrier(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrierBuffer(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrierImage(); // ERROR, extension not enabled (basic) - subgroupElect(); // ERROR, extension not enabled (basic) - gl_NumSubgroups; // ERROR, extension not enabled (basic) - gl_SubgroupID; // ERROR, extension not enabled (basic) - subgroupMemoryBarrierShared(); // ERROR, extension not enabled (basic) - - subgroupAll(true); // ERROR extension not enabled (vote) - subgroupAny(false); // ERROR extension not enabled (vote) - subgroupAllEqual(f4); // ERROR extension not enabled (vote) - - gl_SubgroupEqMask; // ERROR extension not enabled (ballot) - gl_SubgroupGeMask; // ERROR extension not enabled (ballot) - gl_SubgroupGtMask; // ERROR extension not enabled (ballot) - gl_SubgroupLeMask; // ERROR extension not enabled (ballot) - gl_SubgroupLtMask; // ERROR extension not enabled (ballot) - subgroupBroadcast(f4, 0); // ERROR extension not enabled (ballot) - subgroupBroadcastFirst(f4); // ERROR extension not enabled (ballot) - uvec4 ballot = subgroupBallot(false); // ERROR extension not enabled (ballot) - subgroupInverseBallot(uvec4(0x1)); // ERROR extension not enabled (ballot) - subgroupBallotBitExtract(ballot, 0); // ERROR extension not enabled (ballot) - subgroupBallotBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotInclusiveBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotExclusiveBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotFindLSB(ballot); // ERROR extension not enabled (ballot) - subgroupBallotFindMSB(ballot); // ERROR extension not enabled (ballot) - - subgroupShuffle(f4, 0); // ERROR extension not enabled (shuffle) - subgroupShuffleXor(f4, 0x1); // ERROR extension not enabled (shuffle) - subgroupShuffleUp(f4, 1); // ERROR extension not enabled (shuffle_relative) - subgroupShuffleDown(f4, 1); // ERROR extension not enabled (shuffle_relative) - - result = subgroupAdd(f4); // ERROR, extension not enabled (arith) - subgroupMul(f4); // ERROR, extension not enabled (arith) - subgroupMin(f4); // ERROR, extension not enabled (arith) - subgroupMax(f4); // ERROR, extension not enabled (arith) - subgroupAnd(ballot); // ERROR, extension not enabled (arith) - subgroupOr(ballot); // ERROR, extension not enabled (arith) - subgroupXor(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveAdd(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMul(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMin(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMax(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveAnd(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveOr(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveXor(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveAdd(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMul(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMin(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMax(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveAnd(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveOr(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveXor(ballot); // ERROR, extension not enabled (arith) - - subgroupClusteredAdd(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMul(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMin(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMax(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredAnd(ballot, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredOr(ballot, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredXor(ballot, 2); // ERROR, extension not enabled (clustered) - - subgroupQuadBroadcast(f4, 0); // ERROR, extension not enabled (quad) - subgroupQuadSwapHorizontal(f4); // ERROR, extension not enabled (quad) - subgroupQuadSwapVertical(f4); // ERROR, extension not enabled (quad) - subgroupQuadSwapDiagonal(f4); // ERROR, extension not enabled (quad) - - uvec4 parti = subgroupPartitionNV(f4); // ERROR, extension not enabled (partitioned) - subgroupPartitionedAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - - return result; -} - -#extension GL_KHR_shader_subgroup_basic: enable - -layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in; - -layout(binding = 0) buffer Buffer -{ - int a[]; -} data; - -void main() -{ - data.a[gl_SubgroupSize] = 1; - data.a[gl_SubgroupInvocationID] = 1; - data.a[gl_NumSubgroups] = 1; - data.a[gl_SubgroupID] = (subgroupElect()) ? 1 : 0; - subgroupBarrier(); - subgroupMemoryBarrier(); - subgroupMemoryBarrierBuffer(); - subgroupMemoryBarrierShared(); - subgroupMemoryBarrierImage(); -} - -#extension GL_KHR_shader_subgroup_ballot: enable -void ballot_works(vec4 f4) { - gl_SubgroupEqMask; - gl_SubgroupGeMask; - gl_SubgroupGtMask; - gl_SubgroupLeMask; - gl_SubgroupLtMask; - subgroupBroadcast(f4, 0); - subgroupBroadcastFirst(f4); - uvec4 ballot = subgroupBallot(false); - subgroupInverseBallot(uvec4(0x1)); - subgroupBallotBitExtract(ballot, 0); - subgroupBallotBitCount(ballot); - subgroupBallotInclusiveBitCount(ballot); - subgroupBallotExclusiveBitCount(ballot); - subgroupBallotFindLSB(ballot); - subgroupBallotFindMSB(ballot); -} - -#extension GL_KHR_shader_subgroup_vote: enable -void vote_works(vec4 f4) -{ - subgroupAll(true); - subgroupAny(false); - subgroupAllEqual(f4); -} - -#extension GL_KHR_shader_subgroup_shuffle: enable -#extension GL_KHR_shader_subgroup_shuffle_relative: enable -void shuffle_works(vec4 f4) -{ - subgroupShuffle(f4, 0); - subgroupShuffleXor(f4, 0x1); - subgroupShuffleUp(f4, 1); - subgroupShuffleDown(f4, 1); -} - -#extension GL_KHR_shader_subgroup_arithmetic: enable -void arith_works(vec4 f4) -{ - uvec4 ballot; - subgroupAdd(f4); - subgroupMul(f4); - subgroupMin(f4); - subgroupMax(f4); - subgroupAnd(ballot); - subgroupOr(ballot); - subgroupXor(ballot); - subgroupInclusiveAdd(f4); - subgroupInclusiveMul(f4); - subgroupInclusiveMin(f4); - subgroupInclusiveMax(f4); - subgroupInclusiveAnd(ballot); - subgroupInclusiveOr(ballot); - subgroupInclusiveXor(ballot); - subgroupExclusiveAdd(f4); - subgroupExclusiveMul(f4); - subgroupExclusiveMin(f4); - subgroupExclusiveMax(f4); - subgroupExclusiveAnd(ballot); - subgroupExclusiveOr(ballot); - subgroupExclusiveXor(ballot); -} - -#extension GL_KHR_shader_subgroup_clustered: enable -void clustered_works(vec4 f4) -{ - uvec4 ballot = uvec4(0x55,0,0,0); - subgroupClusteredAdd(f4, 2); - subgroupClusteredMul(f4, 2); - subgroupClusteredMin(f4, 2); - subgroupClusteredMax(f4, 2); - subgroupClusteredAnd(ballot, 2); - subgroupClusteredOr(ballot, 2); - subgroupClusteredXor(ballot, 2); -} - -#extension GL_KHR_shader_subgroup_quad: enable -void quad_works(vec4 f4) -{ - subgroupQuadBroadcast(f4, 0); - subgroupQuadSwapHorizontal(f4); - subgroupQuadSwapVertical(f4); - subgroupQuadSwapDiagonal(f4); -} - -#extension GL_NV_shader_subgroup_partitioned: enable -void partitioned_works(vec4 f4) -{ - uvec4 parti = subgroupPartitionNV(f4); - uvec4 ballot = uvec4(0x55,0,0,0); - subgroupPartitionedAddNV(f4, parti); - subgroupPartitionedMulNV(f4, parti); - subgroupPartitionedMinNV(f4, parti); - subgroupPartitionedMaxNV(f4, parti); - subgroupPartitionedAndNV(ballot, parti); - subgroupPartitionedOrNV(ballot, parti); - subgroupPartitionedXorNV(ballot, parti); - subgroupPartitionedInclusiveAddNV(f4, parti); - subgroupPartitionedInclusiveMulNV(f4, parti); - subgroupPartitionedInclusiveMinNV(f4, parti); - subgroupPartitionedInclusiveMaxNV(f4, parti); - subgroupPartitionedInclusiveAndNV(ballot, parti); - subgroupPartitionedInclusiveOrNV(ballot, parti); - subgroupPartitionedInclusiveXorNV(ballot, parti); - subgroupPartitionedExclusiveAddNV(f4, parti); - subgroupPartitionedExclusiveMulNV(f4, parti); - subgroupPartitionedExclusiveMinNV(f4, parti); - subgroupPartitionedExclusiveMaxNV(f4, parti); - subgroupPartitionedExclusiveAndNV(ballot, parti); - subgroupPartitionedExclusiveOrNV(ballot, parti); - subgroupPartitionedExclusiveXorNV(ballot, parti); -} - -// tests for NV_shader_sm_builtins -void sm_builtins_err() -{ - gl_WarpsPerSMNV; // ERROR, no extension - gl_SMCountNV; // ERROR, no extension - gl_WarpIDNV; // ERROR, no extension - gl_SMIDNV; // ERROR, no extension -} - -#ifdef GL_NV_shader_sm_builtins -#extension GL_NV_shader_sm_builtins : enable -#endif - -void sm_builtins() -{ - gl_WarpsPerSMNV; - gl_SMCountNV; - gl_WarpIDNV; - gl_SMIDNV; -} diff --git a/deps/glslang/Test/glsl.450.subgroupClustered.comp b/deps/glslang/Test/glsl.450.subgroupClustered.comp deleted file mode 100644 index 128a24c8..00000000 --- a/deps/glslang/Test/glsl.450.subgroupClustered.comp +++ /dev/null @@ -1,143 +0,0 @@ -#version 450 - -#extension GL_KHR_shader_subgroup_clustered: enable - -layout (local_size_x = 8) in; - -layout(binding = 0) buffer Buffers -{ - vec4 f4; - ivec4 i4; - uvec4 u4; - dvec4 d4; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; - - data[invocation].f4.x = subgroupClusteredAdd(data[0].f4.x, 1); - data[invocation].f4.xy = subgroupClusteredAdd(data[1].f4.xy, 1); - data[invocation].f4.xyz = subgroupClusteredAdd(data[2].f4.xyz, 1); - data[invocation].f4 = subgroupClusteredAdd(data[3].f4, 1); - - data[invocation].i4.x = subgroupClusteredAdd(data[0].i4.x, 1); - data[invocation].i4.xy = subgroupClusteredAdd(data[1].i4.xy, 1); - data[invocation].i4.xyz = subgroupClusteredAdd(data[2].i4.xyz, 1); - data[invocation].i4 = subgroupClusteredAdd(data[3].i4, 1); - - data[invocation].u4.x = subgroupClusteredAdd(data[0].u4.x, 1); - data[invocation].u4.xy = subgroupClusteredAdd(data[1].u4.xy, 1); - data[invocation].u4.xyz = subgroupClusteredAdd(data[2].u4.xyz, 1); - data[invocation].u4 = subgroupClusteredAdd(data[3].u4, 1); - - data[invocation].d4.x = subgroupClusteredAdd(data[0].d4.x, 1); - data[invocation].d4.xy = subgroupClusteredAdd(data[1].d4.xy, 1); - data[invocation].d4.xyz = subgroupClusteredAdd(data[2].d4.xyz, 1); - data[invocation].d4 = subgroupClusteredAdd(data[3].d4, 1); - - data[invocation].f4.x = subgroupClusteredMul(data[0].f4.x, 1); - data[invocation].f4.xy = subgroupClusteredMul(data[1].f4.xy, 1); - data[invocation].f4.xyz = subgroupClusteredMul(data[2].f4.xyz, 1); - data[invocation].f4 = subgroupClusteredMul(data[3].f4, 1); - - data[invocation].i4.x = subgroupClusteredMul(data[0].i4.x, 1); - data[invocation].i4.xy = subgroupClusteredMul(data[1].i4.xy, 1); - data[invocation].i4.xyz = subgroupClusteredMul(data[2].i4.xyz, 1); - data[invocation].i4 = subgroupClusteredMul(data[3].i4, 1); - - data[invocation].u4.x = subgroupClusteredMul(data[0].u4.x, 1); - data[invocation].u4.xy = subgroupClusteredMul(data[1].u4.xy, 1); - data[invocation].u4.xyz = subgroupClusteredMul(data[2].u4.xyz, 1); - data[invocation].u4 = subgroupClusteredMul(data[3].u4, 1); - - data[invocation].d4.x = subgroupClusteredMul(data[0].d4.x, 1); - data[invocation].d4.xy = subgroupClusteredMul(data[1].d4.xy, 1); - data[invocation].d4.xyz = subgroupClusteredMul(data[2].d4.xyz, 1); - data[invocation].d4 = subgroupClusteredMul(data[3].d4, 1); - - data[invocation].f4.x = subgroupClusteredMin(data[0].f4.x, 1); - data[invocation].f4.xy = subgroupClusteredMin(data[1].f4.xy, 1); - data[invocation].f4.xyz = subgroupClusteredMin(data[2].f4.xyz, 1); - data[invocation].f4 = subgroupClusteredMin(data[3].f4, 1); - - data[invocation].i4.x = subgroupClusteredMin(data[0].i4.x, 1); - data[invocation].i4.xy = subgroupClusteredMin(data[1].i4.xy, 1); - data[invocation].i4.xyz = subgroupClusteredMin(data[2].i4.xyz, 1); - data[invocation].i4 = subgroupClusteredMin(data[3].i4, 1); - - data[invocation].u4.x = subgroupClusteredMin(data[0].u4.x, 1); - data[invocation].u4.xy = subgroupClusteredMin(data[1].u4.xy, 1); - data[invocation].u4.xyz = subgroupClusteredMin(data[2].u4.xyz, 1); - data[invocation].u4 = subgroupClusteredMin(data[3].u4, 1); - - data[invocation].d4.x = subgroupClusteredMin(data[0].d4.x, 1); - data[invocation].d4.xy = subgroupClusteredMin(data[1].d4.xy, 1); - data[invocation].d4.xyz = subgroupClusteredMin(data[2].d4.xyz, 1); - data[invocation].d4 = subgroupClusteredMin(data[3].d4, 1); - - data[invocation].f4.x = subgroupClusteredMax(data[0].f4.x, 1); - data[invocation].f4.xy = subgroupClusteredMax(data[1].f4.xy, 1); - data[invocation].f4.xyz = subgroupClusteredMax(data[2].f4.xyz, 1); - data[invocation].f4 = subgroupClusteredMax(data[3].f4, 1); - - data[invocation].i4.x = subgroupClusteredMax(data[0].i4.x, 1); - data[invocation].i4.xy = subgroupClusteredMax(data[1].i4.xy, 1); - data[invocation].i4.xyz = subgroupClusteredMax(data[2].i4.xyz, 1); - data[invocation].i4 = subgroupClusteredMax(data[3].i4, 1); - - data[invocation].u4.x = subgroupClusteredMax(data[0].u4.x, 1); - data[invocation].u4.xy = subgroupClusteredMax(data[1].u4.xy, 1); - data[invocation].u4.xyz = subgroupClusteredMax(data[2].u4.xyz, 1); - data[invocation].u4 = subgroupClusteredMax(data[3].u4, 1); - - data[invocation].d4.x = subgroupClusteredMax(data[0].d4.x, 1); - data[invocation].d4.xy = subgroupClusteredMax(data[1].d4.xy, 1); - data[invocation].d4.xyz = subgroupClusteredMax(data[2].d4.xyz, 1); - data[invocation].d4 = subgroupClusteredMax(data[3].d4, 1); - - data[invocation].i4.x = subgroupClusteredAnd(data[0].i4.x, 1); - data[invocation].i4.xy = subgroupClusteredAnd(data[1].i4.xy, 1); - data[invocation].i4.xyz = subgroupClusteredAnd(data[2].i4.xyz, 1); - data[invocation].i4 = subgroupClusteredAnd(data[3].i4, 1); - - data[invocation].u4.x = subgroupClusteredAnd(data[0].u4.x, 1); - data[invocation].u4.xy = subgroupClusteredAnd(data[1].u4.xy, 1); - data[invocation].u4.xyz = subgroupClusteredAnd(data[2].u4.xyz, 1); - data[invocation].u4 = subgroupClusteredAnd(data[3].u4, 1); - - data[invocation].i4.x = int(subgroupClusteredAnd(data[0].i4.x < 0, 1)); - data[invocation].i4.xy = ivec2(subgroupClusteredAnd(lessThan(data[1].i4.xy, ivec2(0)), 1)); - data[invocation].i4.xyz = ivec3(subgroupClusteredAnd(lessThan(data[1].i4.xyz, ivec3(0)), 1)); - data[invocation].i4 = ivec4(subgroupClusteredAnd(lessThan(data[1].i4, ivec4(0)), 1)); - - data[invocation].i4.x = subgroupClusteredOr(data[0].i4.x, 1); - data[invocation].i4.xy = subgroupClusteredOr(data[1].i4.xy, 1); - data[invocation].i4.xyz = subgroupClusteredOr(data[2].i4.xyz, 1); - data[invocation].i4 = subgroupClusteredOr(data[3].i4, 1); - - data[invocation].u4.x = subgroupClusteredOr(data[0].u4.x, 1); - data[invocation].u4.xy = subgroupClusteredOr(data[1].u4.xy, 1); - data[invocation].u4.xyz = subgroupClusteredOr(data[2].u4.xyz, 1); - data[invocation].u4 = subgroupClusteredOr(data[3].u4, 1); - - data[invocation].i4.x = int(subgroupClusteredOr(data[0].i4.x < 0, 1)); - data[invocation].i4.xy = ivec2(subgroupClusteredOr(lessThan(data[1].i4.xy, ivec2(0)), 1)); - data[invocation].i4.xyz = ivec3(subgroupClusteredOr(lessThan(data[1].i4.xyz, ivec3(0)), 1)); - data[invocation].i4 = ivec4(subgroupClusteredOr(lessThan(data[1].i4, ivec4(0)), 1)); - - data[invocation].i4.x = subgroupClusteredXor(data[0].i4.x, 1); - data[invocation].i4.xy = subgroupClusteredXor(data[1].i4.xy, 1); - data[invocation].i4.xyz = subgroupClusteredXor(data[2].i4.xyz, 1); - data[invocation].i4 = subgroupClusteredXor(data[3].i4, 1); - - data[invocation].u4.x = subgroupClusteredXor(data[0].u4.x, 1); - data[invocation].u4.xy = subgroupClusteredXor(data[1].u4.xy, 1); - data[invocation].u4.xyz = subgroupClusteredXor(data[2].u4.xyz, 1); - data[invocation].u4 = subgroupClusteredXor(data[3].u4, 1); - - data[invocation].i4.x = int(subgroupClusteredXor(data[0].i4.x < 0, 1)); - data[invocation].i4.xy = ivec2(subgroupClusteredXor(lessThan(data[1].i4.xy, ivec2(0)), 1)); - data[invocation].i4.xyz = ivec3(subgroupClusteredXor(lessThan(data[1].i4.xyz, ivec3(0)), 1)); - data[invocation].i4 = ivec4(subgroupClusteredXor(lessThan(data[1].i4, ivec4(0)), 1)); -} diff --git a/deps/glslang/Test/glsl.450.subgroupClusteredNeg.comp b/deps/glslang/Test/glsl.450.subgroupClusteredNeg.comp deleted file mode 100644 index ec15413e..00000000 --- a/deps/glslang/Test/glsl.450.subgroupClusteredNeg.comp +++ /dev/null @@ -1,39 +0,0 @@ -#version 450 - -#extension GL_KHR_shader_subgroup_clustered: enable - -layout (local_size_x = 8) in; - -layout(binding = 0) buffer Buffers -{ - vec4 f4; - ivec4 i4; - uvec4 u4; - dvec4 d4; -} data[4]; - -void main() -{ - int a = 1; - const int aConst = 1; - - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; - - data[invocation].f4.xy = subgroupClusteredAdd(data[1].f4.xy, 0); // ERROR, less than 1 - - data[invocation].f4.x = subgroupClusteredMul(data[0].f4.x, 3); // ERROR, not a power of 2 - - data[invocation].i4.xy = subgroupClusteredMin(data[1].i4.xy, 8); - data[invocation].i4.xyz = subgroupClusteredMin(data[2].i4.xyz, 6); // ERROR, not a power of 2 - - data[invocation].f4.x = subgroupClusteredMax(data[0].f4.x, -1); // ERROR, less than 1 - - data[invocation].i4 = subgroupClusteredAnd(data[3].i4, -3); // ERROR, less than 1 - - data[invocation].i4.x = subgroupClusteredOr(data[0].i4.x, a); // ERROR, not constant - data[invocation].i4.xy = subgroupClusteredOr(data[1].i4.xy, aConst); - - data[invocation].i4.x = subgroupClusteredXor(data[0].i4.x, 1 + a); // ERROR, not constant - data[invocation].i4.xy = subgroupClusteredXor(data[1].i4.xy, aConst + a); // ERROR, not constant - data[invocation].i4.xyz = subgroupClusteredXor(data[2].i4.xyz, 1 + aConst); -} diff --git a/deps/glslang/Test/glsl.450.subgroupPartitioned.comp b/deps/glslang/Test/glsl.450.subgroupPartitioned.comp deleted file mode 100644 index 604833e0..00000000 --- a/deps/glslang/Test/glsl.450.subgroupPartitioned.comp +++ /dev/null @@ -1,420 +0,0 @@ -#version 450 - -#extension GL_NV_shader_subgroup_partitioned: enable - -layout (local_size_x = 8) in; - -layout(binding = 0) buffer Buffers -{ - vec4 f4; - ivec4 i4; - uvec4 u4; - dvec4 d4; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; - - uvec4 ballot = subgroupPartitionNV(invocation); - - data[invocation].u4 = subgroupPartitionNV(data[0].f4.x); - data[invocation].u4 = subgroupPartitionNV(data[0].f4.xy); - data[invocation].u4 = subgroupPartitionNV(data[0].f4.xyz); - data[invocation].u4 = subgroupPartitionNV(data[0].f4); - - data[invocation].u4 = subgroupPartitionNV(data[0].i4.x); - data[invocation].u4 = subgroupPartitionNV(data[0].i4.xy); - data[invocation].u4 = subgroupPartitionNV(data[0].i4.xyz); - data[invocation].u4 = subgroupPartitionNV(data[0].i4); - - data[invocation].u4 = subgroupPartitionNV(data[0].u4.x); - data[invocation].u4 = subgroupPartitionNV(data[0].u4.xy); - data[invocation].u4 = subgroupPartitionNV(data[0].u4.xyz); - data[invocation].u4 = subgroupPartitionNV(data[0].u4); - - data[invocation].u4 = subgroupPartitionNV(data[0].d4.x); - data[invocation].u4 = subgroupPartitionNV(data[0].d4.xy); - data[invocation].u4 = subgroupPartitionNV(data[0].d4.xyz); - data[invocation].u4 = subgroupPartitionNV(data[0].d4); - - data[invocation].u4 = subgroupPartitionNV(bool(data[0].i4.x)); - data[invocation].u4 = subgroupPartitionNV(bvec2(data[0].i4.xy)); - data[invocation].u4 = subgroupPartitionNV(bvec3(data[0].i4.xyz)); - data[invocation].u4 = subgroupPartitionNV(bvec4(data[0].i4)); - - data[invocation].f4.x = subgroupPartitionedAddNV(data[0].f4.x, ballot); - data[invocation].f4.xy = subgroupPartitionedAddNV(data[1].f4.xy, ballot); - data[invocation].f4.xyz = subgroupPartitionedAddNV(data[2].f4.xyz, ballot); - data[invocation].f4 = subgroupPartitionedAddNV(data[3].f4, ballot); - - data[invocation].i4.x = subgroupPartitionedAddNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedAddNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedAddNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedAddNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedAddNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedAddNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedAddNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedAddNV(data[3].u4, ballot); - - data[invocation].d4.x = subgroupPartitionedAddNV(data[0].d4.x, ballot); - data[invocation].d4.xy = subgroupPartitionedAddNV(data[1].d4.xy, ballot); - data[invocation].d4.xyz = subgroupPartitionedAddNV(data[2].d4.xyz, ballot); - data[invocation].d4 = subgroupPartitionedAddNV(data[3].d4, ballot); - - data[invocation].f4.x = subgroupPartitionedMulNV(data[0].f4.x, ballot); - data[invocation].f4.xy = subgroupPartitionedMulNV(data[1].f4.xy, ballot); - data[invocation].f4.xyz = subgroupPartitionedMulNV(data[2].f4.xyz, ballot); - data[invocation].f4 = subgroupPartitionedMulNV(data[3].f4, ballot); - - data[invocation].i4.x = subgroupPartitionedMulNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedMulNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedMulNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedMulNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedMulNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedMulNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedMulNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedMulNV(data[3].u4, ballot); - - data[invocation].d4.x = subgroupPartitionedMulNV(data[0].d4.x, ballot); - data[invocation].d4.xy = subgroupPartitionedMulNV(data[1].d4.xy, ballot); - data[invocation].d4.xyz = subgroupPartitionedMulNV(data[2].d4.xyz, ballot); - data[invocation].d4 = subgroupPartitionedMulNV(data[3].d4, ballot); - - data[invocation].f4.x = subgroupPartitionedMinNV(data[0].f4.x, ballot); - data[invocation].f4.xy = subgroupPartitionedMinNV(data[1].f4.xy, ballot); - data[invocation].f4.xyz = subgroupPartitionedMinNV(data[2].f4.xyz, ballot); - data[invocation].f4 = subgroupPartitionedMinNV(data[3].f4, ballot); - - data[invocation].i4.x = subgroupPartitionedMinNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedMinNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedMinNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedMinNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedMinNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedMinNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedMinNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedMinNV(data[3].u4, ballot); - - data[invocation].d4.x = subgroupPartitionedMinNV(data[0].d4.x, ballot); - data[invocation].d4.xy = subgroupPartitionedMinNV(data[1].d4.xy, ballot); - data[invocation].d4.xyz = subgroupPartitionedMinNV(data[2].d4.xyz, ballot); - data[invocation].d4 = subgroupPartitionedMinNV(data[3].d4, ballot); - - data[invocation].f4.x = subgroupPartitionedMaxNV(data[0].f4.x, ballot); - data[invocation].f4.xy = subgroupPartitionedMaxNV(data[1].f4.xy, ballot); - data[invocation].f4.xyz = subgroupPartitionedMaxNV(data[2].f4.xyz, ballot); - data[invocation].f4 = subgroupPartitionedMaxNV(data[3].f4, ballot); - - data[invocation].i4.x = subgroupPartitionedMaxNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedMaxNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedMaxNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedMaxNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedMaxNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedMaxNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedMaxNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedMaxNV(data[3].u4, ballot); - - data[invocation].d4.x = subgroupPartitionedMaxNV(data[0].d4.x, ballot); - data[invocation].d4.xy = subgroupPartitionedMaxNV(data[1].d4.xy, ballot); - data[invocation].d4.xyz = subgroupPartitionedMaxNV(data[2].d4.xyz, ballot); - data[invocation].d4 = subgroupPartitionedMaxNV(data[3].d4, ballot); - - data[invocation].i4.x = subgroupPartitionedAndNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedAndNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedAndNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedAndNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedAndNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedAndNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedAndNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedAndNV(data[3].u4, ballot); - - data[invocation].i4.x = int(subgroupPartitionedAndNV(data[0].i4.x < 0, ballot)); - data[invocation].i4.xy = ivec2(subgroupPartitionedAndNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); - data[invocation].i4.xyz = ivec3(subgroupPartitionedAndNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); - data[invocation].i4 = ivec4(subgroupPartitionedAndNV(lessThan(data[1].i4, ivec4(0)), ballot)); - - data[invocation].i4.x = subgroupPartitionedOrNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedOrNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedOrNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedOrNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedOrNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedOrNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedOrNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedOrNV(data[3].u4, ballot); - - data[invocation].i4.x = int(subgroupPartitionedOrNV(data[0].i4.x < 0, ballot)); - data[invocation].i4.xy = ivec2(subgroupPartitionedOrNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); - data[invocation].i4.xyz = ivec3(subgroupPartitionedOrNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); - data[invocation].i4 = ivec4(subgroupPartitionedOrNV(lessThan(data[1].i4, ivec4(0)), ballot)); - - data[invocation].i4.x = subgroupPartitionedXorNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedXorNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedXorNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedXorNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedXorNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedXorNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedXorNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedXorNV(data[3].u4, ballot); - - data[invocation].i4.x = int(subgroupPartitionedXorNV(data[0].i4.x < 0, ballot)); - data[invocation].i4.xy = ivec2(subgroupPartitionedXorNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); - data[invocation].i4.xyz = ivec3(subgroupPartitionedXorNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); - data[invocation].i4 = ivec4(subgroupPartitionedXorNV(lessThan(data[1].i4, ivec4(0)), ballot)); - - data[invocation].f4.x = subgroupPartitionedInclusiveAddNV(data[0].f4.x, ballot); - data[invocation].f4.xy = subgroupPartitionedInclusiveAddNV(data[1].f4.xy, ballot); - data[invocation].f4.xyz = subgroupPartitionedInclusiveAddNV(data[2].f4.xyz, ballot); - data[invocation].f4 = subgroupPartitionedInclusiveAddNV(data[3].f4, ballot); - - data[invocation].i4.x = subgroupPartitionedInclusiveAddNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedInclusiveAddNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedInclusiveAddNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedInclusiveAddNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedInclusiveAddNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedInclusiveAddNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedInclusiveAddNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedInclusiveAddNV(data[3].u4, ballot); - - data[invocation].d4.x = subgroupPartitionedInclusiveAddNV(data[0].d4.x, ballot); - data[invocation].d4.xy = subgroupPartitionedInclusiveAddNV(data[1].d4.xy, ballot); - data[invocation].d4.xyz = subgroupPartitionedInclusiveAddNV(data[2].d4.xyz, ballot); - data[invocation].d4 = subgroupPartitionedInclusiveAddNV(data[3].d4, ballot); - - data[invocation].f4.x = subgroupPartitionedInclusiveMulNV(data[0].f4.x, ballot); - data[invocation].f4.xy = subgroupPartitionedInclusiveMulNV(data[1].f4.xy, ballot); - data[invocation].f4.xyz = subgroupPartitionedInclusiveMulNV(data[2].f4.xyz, ballot); - data[invocation].f4 = subgroupPartitionedInclusiveMulNV(data[3].f4, ballot); - - data[invocation].i4.x = subgroupPartitionedInclusiveMulNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedInclusiveMulNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedInclusiveMulNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedInclusiveMulNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedInclusiveMulNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedInclusiveMulNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedInclusiveMulNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedInclusiveMulNV(data[3].u4, ballot); - - data[invocation].d4.x = subgroupPartitionedInclusiveMulNV(data[0].d4.x, ballot); - data[invocation].d4.xy = subgroupPartitionedInclusiveMulNV(data[1].d4.xy, ballot); - data[invocation].d4.xyz = subgroupPartitionedInclusiveMulNV(data[2].d4.xyz, ballot); - data[invocation].d4 = subgroupPartitionedInclusiveMulNV(data[3].d4, ballot); - - data[invocation].f4.x = subgroupPartitionedInclusiveMinNV(data[0].f4.x, ballot); - data[invocation].f4.xy = subgroupPartitionedInclusiveMinNV(data[1].f4.xy, ballot); - data[invocation].f4.xyz = subgroupPartitionedInclusiveMinNV(data[2].f4.xyz, ballot); - data[invocation].f4 = subgroupPartitionedInclusiveMinNV(data[3].f4, ballot); - - data[invocation].i4.x = subgroupPartitionedInclusiveMinNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedInclusiveMinNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedInclusiveMinNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedInclusiveMinNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedInclusiveMinNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedInclusiveMinNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedInclusiveMinNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedInclusiveMinNV(data[3].u4, ballot); - - data[invocation].d4.x = subgroupPartitionedInclusiveMinNV(data[0].d4.x, ballot); - data[invocation].d4.xy = subgroupPartitionedInclusiveMinNV(data[1].d4.xy, ballot); - data[invocation].d4.xyz = subgroupPartitionedInclusiveMinNV(data[2].d4.xyz, ballot); - data[invocation].d4 = subgroupPartitionedInclusiveMinNV(data[3].d4, ballot); - - data[invocation].f4.x = subgroupPartitionedInclusiveMaxNV(data[0].f4.x, ballot); - data[invocation].f4.xy = subgroupPartitionedInclusiveMaxNV(data[1].f4.xy, ballot); - data[invocation].f4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].f4.xyz, ballot); - data[invocation].f4 = subgroupPartitionedInclusiveMaxNV(data[3].f4, ballot); - - data[invocation].i4.x = subgroupPartitionedInclusiveMaxNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedInclusiveMaxNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedInclusiveMaxNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedInclusiveMaxNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedInclusiveMaxNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedInclusiveMaxNV(data[3].u4, ballot); - - data[invocation].d4.x = subgroupPartitionedInclusiveMaxNV(data[0].d4.x, ballot); - data[invocation].d4.xy = subgroupPartitionedInclusiveMaxNV(data[1].d4.xy, ballot); - data[invocation].d4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].d4.xyz, ballot); - data[invocation].d4 = subgroupPartitionedInclusiveMaxNV(data[3].d4, ballot); - - data[invocation].i4.x = subgroupPartitionedInclusiveAndNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedInclusiveAndNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedInclusiveAndNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedInclusiveAndNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedInclusiveAndNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedInclusiveAndNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedInclusiveAndNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedInclusiveAndNV(data[3].u4, ballot); - - data[invocation].i4.x = int(subgroupPartitionedInclusiveAndNV(data[0].i4.x < 0, ballot)); - data[invocation].i4.xy = ivec2(subgroupPartitionedInclusiveAndNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); - data[invocation].i4.xyz = ivec3(subgroupPartitionedInclusiveAndNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); - data[invocation].i4 = ivec4(subgroupPartitionedInclusiveAndNV(lessThan(data[1].i4, ivec4(0)), ballot)); - - data[invocation].i4.x = subgroupPartitionedInclusiveOrNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedInclusiveOrNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedInclusiveOrNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedInclusiveOrNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedInclusiveOrNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedInclusiveOrNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedInclusiveOrNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedInclusiveOrNV(data[3].u4, ballot); - - data[invocation].i4.x = int(subgroupPartitionedInclusiveOrNV(data[0].i4.x < 0, ballot)); - data[invocation].i4.xy = ivec2(subgroupPartitionedInclusiveOrNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); - data[invocation].i4.xyz = ivec3(subgroupPartitionedInclusiveOrNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); - data[invocation].i4 = ivec4(subgroupPartitionedInclusiveOrNV(lessThan(data[1].i4, ivec4(0)), ballot)); - - data[invocation].i4.x = subgroupPartitionedInclusiveXorNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedInclusiveXorNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedInclusiveXorNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedInclusiveXorNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedInclusiveXorNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedInclusiveXorNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedInclusiveXorNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedInclusiveXorNV(data[3].u4, ballot); - - data[invocation].i4.x = int(subgroupPartitionedInclusiveXorNV(data[0].i4.x < 0, ballot)); - data[invocation].i4.xy = ivec2(subgroupPartitionedInclusiveXorNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); - data[invocation].i4.xyz = ivec3(subgroupPartitionedInclusiveXorNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); - data[invocation].i4 = ivec4(subgroupPartitionedInclusiveXorNV(lessThan(data[1].i4, ivec4(0)), ballot)); - - data[invocation].f4.x = subgroupPartitionedExclusiveAddNV(data[0].f4.x, ballot); - data[invocation].f4.xy = subgroupPartitionedExclusiveAddNV(data[1].f4.xy, ballot); - data[invocation].f4.xyz = subgroupPartitionedExclusiveAddNV(data[2].f4.xyz, ballot); - data[invocation].f4 = subgroupPartitionedExclusiveAddNV(data[3].f4, ballot); - - data[invocation].i4.x = subgroupPartitionedExclusiveAddNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedExclusiveAddNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedExclusiveAddNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedExclusiveAddNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedExclusiveAddNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedExclusiveAddNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedExclusiveAddNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedExclusiveAddNV(data[3].u4, ballot); - - data[invocation].d4.x = subgroupPartitionedExclusiveAddNV(data[0].d4.x, ballot); - data[invocation].d4.xy = subgroupPartitionedExclusiveAddNV(data[1].d4.xy, ballot); - data[invocation].d4.xyz = subgroupPartitionedExclusiveAddNV(data[2].d4.xyz, ballot); - data[invocation].d4 = subgroupPartitionedExclusiveAddNV(data[3].d4, ballot); - - data[invocation].f4.x = subgroupPartitionedExclusiveMulNV(data[0].f4.x, ballot); - data[invocation].f4.xy = subgroupPartitionedExclusiveMulNV(data[1].f4.xy, ballot); - data[invocation].f4.xyz = subgroupPartitionedExclusiveMulNV(data[2].f4.xyz, ballot); - data[invocation].f4 = subgroupPartitionedExclusiveMulNV(data[3].f4, ballot); - - data[invocation].i4.x = subgroupPartitionedExclusiveMulNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedExclusiveMulNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedExclusiveMulNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedExclusiveMulNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedExclusiveMulNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedExclusiveMulNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedExclusiveMulNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedExclusiveMulNV(data[3].u4, ballot); - - data[invocation].d4.x = subgroupPartitionedExclusiveMulNV(data[0].d4.x, ballot); - data[invocation].d4.xy = subgroupPartitionedExclusiveMulNV(data[1].d4.xy, ballot); - data[invocation].d4.xyz = subgroupPartitionedExclusiveMulNV(data[2].d4.xyz, ballot); - data[invocation].d4 = subgroupPartitionedExclusiveMulNV(data[3].d4, ballot); - - data[invocation].f4.x = subgroupPartitionedExclusiveMinNV(data[0].f4.x, ballot); - data[invocation].f4.xy = subgroupPartitionedExclusiveMinNV(data[1].f4.xy, ballot); - data[invocation].f4.xyz = subgroupPartitionedExclusiveMinNV(data[2].f4.xyz, ballot); - data[invocation].f4 = subgroupPartitionedExclusiveMinNV(data[3].f4, ballot); - - data[invocation].i4.x = subgroupPartitionedExclusiveMinNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedExclusiveMinNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedExclusiveMinNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedExclusiveMinNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedExclusiveMinNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedExclusiveMinNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedExclusiveMinNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedExclusiveMinNV(data[3].u4, ballot); - - data[invocation].d4.x = subgroupPartitionedExclusiveMinNV(data[0].d4.x, ballot); - data[invocation].d4.xy = subgroupPartitionedExclusiveMinNV(data[1].d4.xy, ballot); - data[invocation].d4.xyz = subgroupPartitionedExclusiveMinNV(data[2].d4.xyz, ballot); - data[invocation].d4 = subgroupPartitionedExclusiveMinNV(data[3].d4, ballot); - - data[invocation].f4.x = subgroupPartitionedExclusiveMaxNV(data[0].f4.x, ballot); - data[invocation].f4.xy = subgroupPartitionedExclusiveMaxNV(data[1].f4.xy, ballot); - data[invocation].f4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].f4.xyz, ballot); - data[invocation].f4 = subgroupPartitionedExclusiveMaxNV(data[3].f4, ballot); - - data[invocation].i4.x = subgroupPartitionedExclusiveMaxNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedExclusiveMaxNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedExclusiveMaxNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedExclusiveMaxNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedExclusiveMaxNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedExclusiveMaxNV(data[3].u4, ballot); - - data[invocation].d4.x = subgroupPartitionedExclusiveMaxNV(data[0].d4.x, ballot); - data[invocation].d4.xy = subgroupPartitionedExclusiveMaxNV(data[1].d4.xy, ballot); - data[invocation].d4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].d4.xyz, ballot); - data[invocation].d4 = subgroupPartitionedExclusiveMaxNV(data[3].d4, ballot); - - data[invocation].i4.x = subgroupPartitionedExclusiveAndNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedExclusiveAndNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedExclusiveAndNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedExclusiveAndNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedExclusiveAndNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedExclusiveAndNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedExclusiveAndNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedExclusiveAndNV(data[3].u4, ballot); - - data[invocation].i4.x = int(subgroupPartitionedExclusiveAndNV(data[0].i4.x < 0, ballot)); - data[invocation].i4.xy = ivec2(subgroupPartitionedExclusiveAndNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); - data[invocation].i4.xyz = ivec3(subgroupPartitionedExclusiveAndNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); - data[invocation].i4 = ivec4(subgroupPartitionedExclusiveAndNV(lessThan(data[1].i4, ivec4(0)), ballot)); - - data[invocation].i4.x = subgroupPartitionedExclusiveOrNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedExclusiveOrNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedExclusiveOrNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedExclusiveOrNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedExclusiveOrNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedExclusiveOrNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedExclusiveOrNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedExclusiveOrNV(data[3].u4, ballot); - - data[invocation].i4.x = int(subgroupPartitionedExclusiveOrNV(data[0].i4.x < 0, ballot)); - data[invocation].i4.xy = ivec2(subgroupPartitionedExclusiveOrNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); - data[invocation].i4.xyz = ivec3(subgroupPartitionedExclusiveOrNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); - data[invocation].i4 = ivec4(subgroupPartitionedExclusiveOrNV(lessThan(data[1].i4, ivec4(0)), ballot)); - - data[invocation].i4.x = subgroupPartitionedExclusiveXorNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedExclusiveXorNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedExclusiveXorNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedExclusiveXorNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedExclusiveXorNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedExclusiveXorNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedExclusiveXorNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedExclusiveXorNV(data[3].u4, ballot); - - data[invocation].i4.x = int(subgroupPartitionedExclusiveXorNV(data[0].i4.x < 0, ballot)); - data[invocation].i4.xy = ivec2(subgroupPartitionedExclusiveXorNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); - data[invocation].i4.xyz = ivec3(subgroupPartitionedExclusiveXorNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); - data[invocation].i4 = ivec4(subgroupPartitionedExclusiveXorNV(lessThan(data[1].i4, ivec4(0)), ballot)); -} diff --git a/deps/glslang/Test/glsl.450.subgroupQuad.comp b/deps/glslang/Test/glsl.450.subgroupQuad.comp deleted file mode 100644 index 223a7cda..00000000 --- a/deps/glslang/Test/glsl.450.subgroupQuad.comp +++ /dev/null @@ -1,118 +0,0 @@ -#version 450 - -#extension GL_KHR_shader_subgroup_quad: enable - -layout (local_size_x = 8) in; - -layout(binding = 0) buffer Buffers -{ - vec4 f4; - ivec4 i4; - uvec4 u4; - dvec4 d4; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; - - data[invocation].f4.x = subgroupQuadBroadcast(data[0].f4.x, 1); - data[invocation].f4.xy = subgroupQuadBroadcast(data[1].f4.xy, 1); - data[invocation].f4.xyz = subgroupQuadBroadcast(data[2].f4.xyz, 1); - data[invocation].f4 = subgroupQuadBroadcast(data[3].f4, 1); - - data[invocation].i4.x = subgroupQuadBroadcast(data[0].i4.x, 1); - data[invocation].i4.xy = subgroupQuadBroadcast(data[1].i4.xy, 1); - data[invocation].i4.xyz = subgroupQuadBroadcast(data[2].i4.xyz, 1); - data[invocation].i4 = subgroupQuadBroadcast(data[3].i4, 1); - - data[invocation].u4.x = subgroupQuadBroadcast(data[0].u4.x, 1); - data[invocation].u4.xy = subgroupQuadBroadcast(data[1].u4.xy, 1); - data[invocation].u4.xyz = subgroupQuadBroadcast(data[2].u4.xyz, 1); - data[invocation].u4 = subgroupQuadBroadcast(data[3].u4, 1); - - data[invocation].d4.x = subgroupQuadBroadcast(data[0].d4.x, 1); - data[invocation].d4.xy = subgroupQuadBroadcast(data[1].d4.xy, 1); - data[invocation].d4.xyz = subgroupQuadBroadcast(data[2].d4.xyz, 1); - data[invocation].d4 = subgroupQuadBroadcast(data[3].d4, 1); - - data[invocation].i4.x = int(subgroupQuadBroadcast(data[0].i4.x < 0, 1)); - data[invocation].i4.xy = ivec2(subgroupQuadBroadcast(lessThan(data[1].i4.xy, ivec2(0)), 1)); - data[invocation].i4.xyz = ivec3(subgroupQuadBroadcast(lessThan(data[1].i4.xyz, ivec3(0)), 1)); - data[invocation].i4 = ivec4(subgroupQuadBroadcast(lessThan(data[1].i4, ivec4(0)), 1)); - - data[invocation].f4.x = subgroupQuadSwapHorizontal(data[0].f4.x); - data[invocation].f4.xy = subgroupQuadSwapHorizontal(data[1].f4.xy); - data[invocation].f4.xyz = subgroupQuadSwapHorizontal(data[2].f4.xyz); - data[invocation].f4 = subgroupQuadSwapHorizontal(data[3].f4); - - data[invocation].i4.x = subgroupQuadSwapHorizontal(data[0].i4.x); - data[invocation].i4.xy = subgroupQuadSwapHorizontal(data[1].i4.xy); - data[invocation].i4.xyz = subgroupQuadSwapHorizontal(data[2].i4.xyz); - data[invocation].i4 = subgroupQuadSwapHorizontal(data[3].i4); - - data[invocation].u4.x = subgroupQuadSwapHorizontal(data[0].u4.x); - data[invocation].u4.xy = subgroupQuadSwapHorizontal(data[1].u4.xy); - data[invocation].u4.xyz = subgroupQuadSwapHorizontal(data[2].u4.xyz); - data[invocation].u4 = subgroupQuadSwapHorizontal(data[3].u4); - - data[invocation].d4.x = subgroupQuadSwapHorizontal(data[0].d4.x); - data[invocation].d4.xy = subgroupQuadSwapHorizontal(data[1].d4.xy); - data[invocation].d4.xyz = subgroupQuadSwapHorizontal(data[2].d4.xyz); - data[invocation].d4 = subgroupQuadSwapHorizontal(data[3].d4); - - data[invocation].i4.x = int(subgroupQuadSwapHorizontal(data[0].i4.x < 0)); - data[invocation].i4.xy = ivec2(subgroupQuadSwapHorizontal(lessThan(data[1].i4.xy, ivec2(0)))); - data[invocation].i4.xyz = ivec3(subgroupQuadSwapHorizontal(lessThan(data[1].i4.xyz, ivec3(0)))); - data[invocation].i4 = ivec4(subgroupQuadSwapHorizontal(lessThan(data[1].i4, ivec4(0)))); - - data[invocation].f4.x = subgroupQuadSwapVertical(data[0].f4.x); - data[invocation].f4.xy = subgroupQuadSwapVertical(data[1].f4.xy); - data[invocation].f4.xyz = subgroupQuadSwapVertical(data[2].f4.xyz); - data[invocation].f4 = subgroupQuadSwapVertical(data[3].f4); - - data[invocation].i4.x = subgroupQuadSwapVertical(data[0].i4.x); - data[invocation].i4.xy = subgroupQuadSwapVertical(data[1].i4.xy); - data[invocation].i4.xyz = subgroupQuadSwapVertical(data[2].i4.xyz); - data[invocation].i4 = subgroupQuadSwapVertical(data[3].i4); - - data[invocation].u4.x = subgroupQuadSwapVertical(data[0].u4.x); - data[invocation].u4.xy = subgroupQuadSwapVertical(data[1].u4.xy); - data[invocation].u4.xyz = subgroupQuadSwapVertical(data[2].u4.xyz); - data[invocation].u4 = subgroupQuadSwapVertical(data[3].u4); - - data[invocation].d4.x = subgroupQuadSwapVertical(data[0].d4.x); - data[invocation].d4.xy = subgroupQuadSwapVertical(data[1].d4.xy); - data[invocation].d4.xyz = subgroupQuadSwapVertical(data[2].d4.xyz); - data[invocation].d4 = subgroupQuadSwapVertical(data[3].d4); - - data[invocation].i4.x = int(subgroupQuadSwapVertical(data[0].i4.x < 0)); - data[invocation].i4.xy = ivec2(subgroupQuadSwapVertical(lessThan(data[1].i4.xy, ivec2(0)))); - data[invocation].i4.xyz = ivec3(subgroupQuadSwapVertical(lessThan(data[1].i4.xyz, ivec3(0)))); - data[invocation].i4 = ivec4(subgroupQuadSwapVertical(lessThan(data[1].i4, ivec4(0)))); - - data[invocation].f4.x = subgroupQuadSwapDiagonal(data[0].f4.x); - data[invocation].f4.xy = subgroupQuadSwapDiagonal(data[1].f4.xy); - data[invocation].f4.xyz = subgroupQuadSwapDiagonal(data[2].f4.xyz); - data[invocation].f4 = subgroupQuadSwapDiagonal(data[3].f4); - - data[invocation].i4.x = subgroupQuadSwapDiagonal(data[0].i4.x); - data[invocation].i4.xy = subgroupQuadSwapDiagonal(data[1].i4.xy); - data[invocation].i4.xyz = subgroupQuadSwapDiagonal(data[2].i4.xyz); - data[invocation].i4 = subgroupQuadSwapDiagonal(data[3].i4); - - data[invocation].u4.x = subgroupQuadSwapDiagonal(data[0].u4.x); - data[invocation].u4.xy = subgroupQuadSwapDiagonal(data[1].u4.xy); - data[invocation].u4.xyz = subgroupQuadSwapDiagonal(data[2].u4.xyz); - data[invocation].u4 = subgroupQuadSwapDiagonal(data[3].u4); - - data[invocation].d4.x = subgroupQuadSwapDiagonal(data[0].d4.x); - data[invocation].d4.xy = subgroupQuadSwapDiagonal(data[1].d4.xy); - data[invocation].d4.xyz = subgroupQuadSwapDiagonal(data[2].d4.xyz); - data[invocation].d4 = subgroupQuadSwapDiagonal(data[3].d4); - - data[invocation].i4.x = int(subgroupQuadSwapDiagonal(data[0].i4.x < 0)); - data[invocation].i4.xy = ivec2(subgroupQuadSwapDiagonal(lessThan(data[1].i4.xy, ivec2(0)))); - data[invocation].i4.xyz = ivec3(subgroupQuadSwapDiagonal(lessThan(data[1].i4.xyz, ivec3(0)))); - data[invocation].i4 = ivec4(subgroupQuadSwapDiagonal(lessThan(data[1].i4, ivec4(0)))); -} diff --git a/deps/glslang/Test/glsl.450.subgroupShuffle.comp b/deps/glslang/Test/glsl.450.subgroupShuffle.comp deleted file mode 100644 index 6d264882..00000000 --- a/deps/glslang/Test/glsl.450.subgroupShuffle.comp +++ /dev/null @@ -1,68 +0,0 @@ -#version 450 - -#extension GL_KHR_shader_subgroup_shuffle: enable - -layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in; - -layout(binding = 0) buffer Buffers -{ - vec4 f4; - ivec4 i4; - uvec4 u4; - dvec4 d4; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; - - data[invocation].f4.x = subgroupShuffle(data[0].f4.x, invocation); - data[invocation].f4.xy = subgroupShuffle(data[1].f4.xy, invocation); - data[invocation].f4.xyz = subgroupShuffle(data[2].f4.xyz, invocation); - data[invocation].f4 = subgroupShuffle(data[3].f4, invocation); - - data[invocation].i4.x = subgroupShuffle(data[0].i4.x, invocation); - data[invocation].i4.xy = subgroupShuffle(data[1].i4.xy, invocation); - data[invocation].i4.xyz = subgroupShuffle(data[2].i4.xyz, invocation); - data[invocation].i4 = subgroupShuffle(data[3].i4, invocation); - - data[invocation].u4.x = subgroupShuffle(data[0].u4.x, invocation); - data[invocation].u4.xy = subgroupShuffle(data[1].u4.xy, invocation); - data[invocation].u4.xyz = subgroupShuffle(data[2].u4.xyz, invocation); - data[invocation].u4 = subgroupShuffle(data[3].u4, invocation); - - data[invocation].d4.x = subgroupShuffle(data[0].d4.x, invocation); - data[invocation].d4.xy = subgroupShuffle(data[1].d4.xy, invocation); - data[invocation].d4.xyz = subgroupShuffle(data[2].d4.xyz, invocation); - data[invocation].d4 = subgroupShuffle(data[3].d4, invocation); - - data[invocation].i4.x = int(subgroupShuffle(data[0].i4.x < 0, invocation)); - data[invocation].i4.xy = ivec2(subgroupShuffle(lessThan(data[1].i4.xy, ivec2(0)), invocation)); - data[invocation].i4.xyz = ivec3(subgroupShuffle(lessThan(data[1].i4.xyz, ivec3(0)), invocation)); - data[invocation].i4 = ivec4(subgroupShuffle(lessThan(data[1].i4, ivec4(0)), invocation)); - - data[invocation].f4.x = subgroupShuffleXor(data[0].f4.x, invocation); - data[invocation].f4.xy = subgroupShuffleXor(data[1].f4.xy, invocation); - data[invocation].f4.xyz = subgroupShuffleXor(data[2].f4.xyz, invocation); - data[invocation].f4 = subgroupShuffleXor(data[3].f4, invocation); - - data[invocation].i4.x = subgroupShuffleXor(data[0].i4.x, invocation); - data[invocation].i4.xy = subgroupShuffleXor(data[1].i4.xy, invocation); - data[invocation].i4.xyz = subgroupShuffleXor(data[2].i4.xyz, invocation); - data[invocation].i4 = subgroupShuffleXor(data[3].i4, invocation); - - data[invocation].u4.x = subgroupShuffleXor(data[0].u4.x, invocation); - data[invocation].u4.xy = subgroupShuffleXor(data[1].u4.xy, invocation); - data[invocation].u4.xyz = subgroupShuffleXor(data[2].u4.xyz, invocation); - data[invocation].u4 = subgroupShuffleXor(data[3].u4, invocation); - - data[invocation].d4.x = subgroupShuffleXor(data[0].d4.x, invocation); - data[invocation].d4.xy = subgroupShuffleXor(data[1].d4.xy, invocation); - data[invocation].d4.xyz = subgroupShuffleXor(data[2].d4.xyz, invocation); - data[invocation].d4 = subgroupShuffleXor(data[3].d4, invocation); - - data[invocation].i4.x = int(subgroupShuffleXor(data[0].i4.x < 0, invocation)); - data[invocation].i4.xy = ivec2(subgroupShuffleXor(lessThan(data[1].i4.xy, ivec2(0)), invocation)); - data[invocation].i4.xyz = ivec3(subgroupShuffleXor(lessThan(data[1].i4.xyz, ivec3(0)), invocation)); - data[invocation].i4 = ivec4(subgroupShuffleXor(lessThan(data[1].i4, ivec4(0)), invocation)); -} diff --git a/deps/glslang/Test/glsl.450.subgroupShuffleRelative.comp b/deps/glslang/Test/glsl.450.subgroupShuffleRelative.comp deleted file mode 100644 index 1864de10..00000000 --- a/deps/glslang/Test/glsl.450.subgroupShuffleRelative.comp +++ /dev/null @@ -1,68 +0,0 @@ -#version 450 - -#extension GL_KHR_shader_subgroup_shuffle_relative: enable - -layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in; - -layout(binding = 0) buffer Buffers -{ - vec4 f4; - ivec4 i4; - uvec4 u4; - dvec4 d4; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; - - data[invocation].f4.x = subgroupShuffleUp(data[0].f4.x, invocation); - data[invocation].f4.xy = subgroupShuffleUp(data[1].f4.xy, invocation); - data[invocation].f4.xyz = subgroupShuffleUp(data[2].f4.xyz, invocation); - data[invocation].f4 = subgroupShuffleUp(data[3].f4, invocation); - - data[invocation].i4.x = subgroupShuffleUp(data[0].i4.x, invocation); - data[invocation].i4.xy = subgroupShuffleUp(data[1].i4.xy, invocation); - data[invocation].i4.xyz = subgroupShuffleUp(data[2].i4.xyz, invocation); - data[invocation].i4 = subgroupShuffleUp(data[3].i4, invocation); - - data[invocation].u4.x = subgroupShuffleUp(data[0].u4.x, invocation); - data[invocation].u4.xy = subgroupShuffleUp(data[1].u4.xy, invocation); - data[invocation].u4.xyz = subgroupShuffleUp(data[2].u4.xyz, invocation); - data[invocation].u4 = subgroupShuffleUp(data[3].u4, invocation); - - data[invocation].d4.x = subgroupShuffleUp(data[0].d4.x, invocation); - data[invocation].d4.xy = subgroupShuffleUp(data[1].d4.xy, invocation); - data[invocation].d4.xyz = subgroupShuffleUp(data[2].d4.xyz, invocation); - data[invocation].d4 = subgroupShuffleUp(data[3].d4, invocation); - - data[invocation].i4.x = int(subgroupShuffleUp(data[0].i4.x < 0, invocation)); - data[invocation].i4.xy = ivec2(subgroupShuffleUp(lessThan(data[1].i4.xy, ivec2(0)), invocation)); - data[invocation].i4.xyz = ivec3(subgroupShuffleUp(lessThan(data[1].i4.xyz, ivec3(0)), invocation)); - data[invocation].i4 = ivec4(subgroupShuffleUp(lessThan(data[1].i4, ivec4(0)), invocation)); - - data[invocation].f4.x = subgroupShuffleDown(data[0].f4.x, invocation); - data[invocation].f4.xy = subgroupShuffleDown(data[1].f4.xy, invocation); - data[invocation].f4.xyz = subgroupShuffleDown(data[2].f4.xyz, invocation); - data[invocation].f4 = subgroupShuffleDown(data[3].f4, invocation); - - data[invocation].i4.x = subgroupShuffleDown(data[0].i4.x, invocation); - data[invocation].i4.xy = subgroupShuffleDown(data[1].i4.xy, invocation); - data[invocation].i4.xyz = subgroupShuffleDown(data[2].i4.xyz, invocation); - data[invocation].i4 = subgroupShuffleDown(data[3].i4, invocation); - - data[invocation].u4.x = subgroupShuffleDown(data[0].u4.x, invocation); - data[invocation].u4.xy = subgroupShuffleDown(data[1].u4.xy, invocation); - data[invocation].u4.xyz = subgroupShuffleDown(data[2].u4.xyz, invocation); - data[invocation].u4 = subgroupShuffleDown(data[3].u4, invocation); - - data[invocation].d4.x = subgroupShuffleDown(data[0].d4.x, invocation); - data[invocation].d4.xy = subgroupShuffleDown(data[1].d4.xy, invocation); - data[invocation].d4.xyz = subgroupShuffleDown(data[2].d4.xyz, invocation); - data[invocation].d4 = subgroupShuffleDown(data[3].d4, invocation); - - data[invocation].i4.x = int(subgroupShuffleDown(data[0].i4.x < 0, invocation)); - data[invocation].i4.xy = ivec2(subgroupShuffleDown(lessThan(data[1].i4.xy, ivec2(0)), invocation)); - data[invocation].i4.xyz = ivec3(subgroupShuffleDown(lessThan(data[1].i4.xyz, ivec3(0)), invocation)); - data[invocation].i4 = ivec4(subgroupShuffleDown(lessThan(data[1].i4, ivec4(0)), invocation)); -} diff --git a/deps/glslang/Test/glsl.450.subgroupVote.comp b/deps/glslang/Test/glsl.450.subgroupVote.comp deleted file mode 100644 index c1c877af..00000000 --- a/deps/glslang/Test/glsl.450.subgroupVote.comp +++ /dev/null @@ -1,49 +0,0 @@ -#version 450 - -#extension GL_KHR_shader_subgroup_vote: enable - -layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in; - -layout(binding = 0) buffer Buffers -{ - vec4 f4; - ivec4 i4; - uvec4 u4; - dvec4 d4; - int r; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; - - if (subgroupAll(data[invocation].r < 0)) - { - data[invocation].r = int(subgroupAllEqual(data[0].f4.x)); - data[invocation].r = int(subgroupAllEqual(data[1].f4.xy)); - data[invocation].r = int(subgroupAllEqual(data[2].f4.xyz)); - data[invocation].r = int(subgroupAllEqual(data[3].f4)); - - data[invocation].r = int(subgroupAllEqual(data[0].i4.x)); - data[invocation].r = int(subgroupAllEqual(data[1].i4.xy)); - data[invocation].r = int(subgroupAllEqual(data[2].i4.xyz)); - data[invocation].r = int(subgroupAllEqual(data[3].i4)); - - data[invocation].r = int(subgroupAllEqual(data[0].u4.x)); - data[invocation].r = int(subgroupAllEqual(data[1].u4.xy)); - data[invocation].r = int(subgroupAllEqual(data[2].u4.xyz)); - data[invocation].r = int(subgroupAllEqual(data[3].u4)); - } - else if (subgroupAny(data[invocation].r < 0)) - { - data[invocation].r = int(subgroupAllEqual(data[0].d4.x)); - data[invocation].r = int(subgroupAllEqual(data[1].d4.xy)); - data[invocation].r = int(subgroupAllEqual(data[2].d4.xyz)); - data[invocation].r = int(subgroupAllEqual(data[3].d4)); - - data[invocation].r = int(int(subgroupAllEqual(data[0].i4.x < 0))); - data[invocation].r = int(ivec2(subgroupAllEqual(lessThan(data[1].i4.xy, ivec2(0))))); - data[invocation].r = int(ivec3(subgroupAllEqual(lessThan(data[1].i4.xyz, ivec3(0))))); - data[invocation].r = int(ivec4(subgroupAllEqual(lessThan(data[1].i4, ivec4(0))))); - } -} diff --git a/deps/glslang/Test/glsl.460.subgroup.mesh b/deps/glslang/Test/glsl.460.subgroup.mesh deleted file mode 100644 index 1071cac8..00000000 --- a/deps/glslang/Test/glsl.460.subgroup.mesh +++ /dev/null @@ -1,314 +0,0 @@ -#version 460 - -vec4 undeclared_errors(vec4 f4) -{ - vec4 result; - gl_SubgroupSize; // ERROR, extension not enabled (basic) - gl_SubgroupInvocationID; // ERROR, extension not enabled (basic) - subgroupBarrier(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrier(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrierBuffer(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrierImage(); // ERROR, extension not enabled (basic) - subgroupElect(); // ERROR, extension not enabled (basic) - gl_NumSubgroups; // ERROR, extension not enabled (basic) - gl_SubgroupID; // ERROR, extension not enabled (basic) - subgroupMemoryBarrierShared(); // ERROR, extension not enabled (basic) - - subgroupAll(true); // ERROR extension not enabled (vote) - subgroupAny(false); // ERROR extension not enabled (vote) - subgroupAllEqual(f4); // ERROR extension not enabled (vote) - - gl_SubgroupEqMask; // ERROR extension not enabled (ballot) - gl_SubgroupGeMask; // ERROR extension not enabled (ballot) - gl_SubgroupGtMask; // ERROR extension not enabled (ballot) - gl_SubgroupLeMask; // ERROR extension not enabled (ballot) - gl_SubgroupLtMask; // ERROR extension not enabled (ballot) - subgroupBroadcast(f4, 0); // ERROR extension not enabled (ballot) - subgroupBroadcastFirst(f4); // ERROR extension not enabled (ballot) - uvec4 ballot = subgroupBallot(false); // ERROR extension not enabled (ballot) - subgroupInverseBallot(uvec4(0x1)); // ERROR extension not enabled (ballot) - subgroupBallotBitExtract(ballot, 0); // ERROR extension not enabled (ballot) - subgroupBallotBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotInclusiveBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotExclusiveBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotFindLSB(ballot); // ERROR extension not enabled (ballot) - subgroupBallotFindMSB(ballot); // ERROR extension not enabled (ballot) - - subgroupShuffle(f4, 0); // ERROR extension not enabled (shuffle) - subgroupShuffleXor(f4, 0x1); // ERROR extension not enabled (shuffle) - subgroupShuffleUp(f4, 1); // ERROR extension not enabled (shuffle_relative) - subgroupShuffleDown(f4, 1); // ERROR extension not enabled (shuffle_relative) - - result = subgroupAdd(f4); // ERROR, extension not enabled (arith) - subgroupMul(f4); // ERROR, extension not enabled (arith) - subgroupMin(f4); // ERROR, extension not enabled (arith) - subgroupMax(f4); // ERROR, extension not enabled (arith) - subgroupAnd(ballot); // ERROR, extension not enabled (arith) - subgroupOr(ballot); // ERROR, extension not enabled (arith) - subgroupXor(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveAdd(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMul(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMin(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMax(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveAnd(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveOr(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveXor(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveAdd(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMul(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMin(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMax(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveAnd(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveOr(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveXor(ballot); // ERROR, extension not enabled (arith) - - subgroupClusteredAdd(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMul(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMin(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMax(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredAnd(ballot, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredOr(ballot, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredXor(ballot, 2); // ERROR, extension not enabled (clustered) - - subgroupQuadBroadcast(f4, 0); // ERROR, extension not enabled (quad) - subgroupQuadSwapHorizontal(f4); // ERROR, extension not enabled (quad) - subgroupQuadSwapVertical(f4); // ERROR, extension not enabled (quad) - subgroupQuadSwapDiagonal(f4); // ERROR, extension not enabled (quad) - - uvec4 parti = subgroupPartitionNV(f4); // ERROR, extension not enabled (partitioned) - subgroupPartitionedAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - - return result; -} - -#define MAX_VER 81 -#define MAX_PRIM 32 - -#define BARRIER() \ - memoryBarrierShared(); \ - barrier(); - -#extension GL_NV_mesh_shader : enable - -layout(local_size_x = 32) in; - -layout(max_vertices=MAX_VER) out; -layout(max_primitives=MAX_PRIM) out; -layout(triangles) out; - -// test use of builtins in mesh shaders: - -void main() -{ - uint iid = gl_LocalInvocationID.x; - uint gid = gl_WorkGroupID.x; - - gl_MeshVerticesNV[iid].gl_Position = vec4(1.0); - gl_MeshVerticesNV[iid].gl_PointSize = 2.0; - gl_MeshVerticesNV[iid].gl_ClipDistance[3] = 3.0; - gl_MeshVerticesNV[iid].gl_CullDistance[2] = 4.0; - - BARRIER(); - - gl_MeshVerticesNV[iid+1].gl_Position = gl_MeshVerticesNV[iid].gl_Position; - gl_MeshVerticesNV[iid+1].gl_PointSize = gl_MeshVerticesNV[iid].gl_PointSize; - gl_MeshVerticesNV[iid+1].gl_ClipDistance[3] = gl_MeshVerticesNV[iid].gl_ClipDistance[3]; - gl_MeshVerticesNV[iid+1].gl_CullDistance[2] = gl_MeshVerticesNV[iid].gl_CullDistance[2]; - - BARRIER(); - - gl_MeshPrimitivesNV[iid].gl_PrimitiveID = 6; - gl_MeshPrimitivesNV[iid].gl_Layer = 7; - gl_MeshPrimitivesNV[iid].gl_ViewportIndex = 8; - gl_MeshPrimitivesNV[iid].gl_ViewportMask[0] = 9; - - BARRIER(); - - gl_MeshPrimitivesNV[iid+1].gl_PrimitiveID = gl_MeshPrimitivesNV[iid].gl_PrimitiveID; - gl_MeshPrimitivesNV[iid+1].gl_Layer = gl_MeshPrimitivesNV[iid].gl_Layer; - gl_MeshPrimitivesNV[iid+1].gl_ViewportIndex = gl_MeshPrimitivesNV[iid].gl_ViewportIndex; - gl_MeshPrimitivesNV[iid+1].gl_ViewportMask[0] = gl_MeshPrimitivesNV[iid].gl_ViewportMask[0]; - - BARRIER(); - - // check bound limits - gl_PrimitiveIndicesNV[0] = 257; // should truncate 257 -> 1 - gl_PrimitiveIndicesNV[(MAX_PRIM * 3) - 1] = 2; - gl_PrimitiveIndicesNV[gid] = gl_PrimitiveIndicesNV[gid-1]; - - // writes 4 indices at offset gl_DrawID - writePackedPrimitiveIndices4x8NV(gl_DrawID, 0x01020304); - - gl_PrimitiveCountNV = MAX_PRIM * 3; - - BARRIER(); -} - -#extension GL_KHR_shader_subgroup_basic: enable -void basic_works (void) -{ - gl_SubgroupSize; - gl_SubgroupInvocationID; - subgroupBarrier(); - subgroupMemoryBarrier(); - subgroupMemoryBarrierBuffer(); - subgroupMemoryBarrierImage(); - subgroupElect(); - gl_NumSubgroups; // allowed in mesh - gl_SubgroupID; // allowed in mesh - subgroupMemoryBarrierShared(); // allowed in mesh -} - -#extension GL_KHR_shader_subgroup_ballot: enable -void ballot_works(vec4 f4) { - gl_SubgroupEqMask; - gl_SubgroupGeMask; - gl_SubgroupGtMask; - gl_SubgroupLeMask; - gl_SubgroupLtMask; - subgroupBroadcast(f4, 0); - subgroupBroadcastFirst(f4); - uvec4 ballot = subgroupBallot(false); - subgroupInverseBallot(uvec4(0x1)); - subgroupBallotBitExtract(ballot, 0); - subgroupBallotBitCount(ballot); - subgroupBallotInclusiveBitCount(ballot); - subgroupBallotExclusiveBitCount(ballot); - subgroupBallotFindLSB(ballot); - subgroupBallotFindMSB(ballot); -} - -#extension GL_KHR_shader_subgroup_vote: enable -void vote_works(vec4 f4) -{ - subgroupAll(true); - subgroupAny(false); - subgroupAllEqual(f4); -} - -#extension GL_KHR_shader_subgroup_shuffle: enable -#extension GL_KHR_shader_subgroup_shuffle_relative: enable -void shuffle_works(vec4 f4) -{ - subgroupShuffle(f4, 0); - subgroupShuffleXor(f4, 0x1); - subgroupShuffleUp(f4, 1); - subgroupShuffleDown(f4, 1); -} - -#extension GL_KHR_shader_subgroup_arithmetic: enable -void arith_works(vec4 f4) -{ - uvec4 ballot; - subgroupAdd(f4); - subgroupMul(f4); - subgroupMin(f4); - subgroupMax(f4); - subgroupAnd(ballot); - subgroupOr(ballot); - subgroupXor(ballot); - subgroupInclusiveAdd(f4); - subgroupInclusiveMul(f4); - subgroupInclusiveMin(f4); - subgroupInclusiveMax(f4); - subgroupInclusiveAnd(ballot); - subgroupInclusiveOr(ballot); - subgroupInclusiveXor(ballot); - subgroupExclusiveAdd(f4); - subgroupExclusiveMul(f4); - subgroupExclusiveMin(f4); - subgroupExclusiveMax(f4); - subgroupExclusiveAnd(ballot); - subgroupExclusiveOr(ballot); - subgroupExclusiveXor(ballot); -} - -#extension GL_KHR_shader_subgroup_clustered: enable -void clustered_works(vec4 f4) -{ - uvec4 ballot = uvec4(0x55,0,0,0); - subgroupClusteredAdd(f4, 2); - subgroupClusteredMul(f4, 2); - subgroupClusteredMin(f4, 2); - subgroupClusteredMax(f4, 2); - subgroupClusteredAnd(ballot, 2); - subgroupClusteredOr(ballot, 2); - subgroupClusteredXor(ballot, 2); -} - -#extension GL_KHR_shader_subgroup_quad: enable -void quad_works(vec4 f4) -{ - subgroupQuadBroadcast(f4, 0); - subgroupQuadSwapHorizontal(f4); - subgroupQuadSwapVertical(f4); - subgroupQuadSwapDiagonal(f4); -} - -#extension GL_NV_shader_subgroup_partitioned: enable -void partitioned_works(vec4 f4) -{ - uvec4 parti = subgroupPartitionNV(f4); - uvec4 ballot = uvec4(0x55,0,0,0); - subgroupPartitionedAddNV(f4, parti); - subgroupPartitionedMulNV(f4, parti); - subgroupPartitionedMinNV(f4, parti); - subgroupPartitionedMaxNV(f4, parti); - subgroupPartitionedAndNV(ballot, parti); - subgroupPartitionedOrNV(ballot, parti); - subgroupPartitionedXorNV(ballot, parti); - subgroupPartitionedInclusiveAddNV(f4, parti); - subgroupPartitionedInclusiveMulNV(f4, parti); - subgroupPartitionedInclusiveMinNV(f4, parti); - subgroupPartitionedInclusiveMaxNV(f4, parti); - subgroupPartitionedInclusiveAndNV(ballot, parti); - subgroupPartitionedInclusiveOrNV(ballot, parti); - subgroupPartitionedInclusiveXorNV(ballot, parti); - subgroupPartitionedExclusiveAddNV(f4, parti); - subgroupPartitionedExclusiveMulNV(f4, parti); - subgroupPartitionedExclusiveMinNV(f4, parti); - subgroupPartitionedExclusiveMaxNV(f4, parti); - subgroupPartitionedExclusiveAndNV(ballot, parti); - subgroupPartitionedExclusiveOrNV(ballot, parti); - subgroupPartitionedExclusiveXorNV(ballot, parti); -} - -// tests for NV_shader_sm_builtins -void sm_builtins_err() -{ - gl_WarpsPerSMNV; // ERROR, no extension - gl_SMCountNV; // ERROR, no extension - gl_WarpIDNV; // ERROR, no extension - gl_SMIDNV; // ERROR, no extension -} - -#ifdef GL_NV_shader_sm_builtins -#extension GL_NV_shader_sm_builtins : enable -#endif - -void sm_builtins() -{ - gl_WarpsPerSMNV; - gl_SMCountNV; - gl_WarpIDNV; - gl_SMIDNV; -} diff --git a/deps/glslang/Test/glsl.460.subgroup.rahit b/deps/glslang/Test/glsl.460.subgroup.rahit deleted file mode 100644 index a1bce287..00000000 --- a/deps/glslang/Test/glsl.460.subgroup.rahit +++ /dev/null @@ -1,275 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : enable - -vec4 undeclared_errors(vec4 f4) -{ - vec4 result; - gl_SubgroupSize; // ERROR, extension not enabled (basic) - gl_SubgroupInvocationID; // ERROR, extension not enabled (basic) - subgroupBarrier(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrier(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrierBuffer(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrierImage(); // ERROR, extension not enabled (basic) - subgroupElect(); // ERROR, extension not enabled (basic) - gl_NumSubgroups; // ERROR, only defined in compute - gl_SubgroupID; // ERROR, only defined in compute - subgroupMemoryBarrierShared(); // ERROR, only defined in compute - - subgroupAll(true); // ERROR extension not enabled (vote) - subgroupAny(false); // ERROR extension not enabled (vote) - subgroupAllEqual(f4); // ERROR extension not enabled (vote) - - gl_SubgroupEqMask; // ERROR extension not enabled (ballot) - gl_SubgroupGeMask; // ERROR extension not enabled (ballot) - gl_SubgroupGtMask; // ERROR extension not enabled (ballot) - gl_SubgroupLeMask; // ERROR extension not enabled (ballot) - gl_SubgroupLtMask; // ERROR extension not enabled (ballot) - subgroupBroadcast(f4, 0); // ERROR extension not enabled (ballot) - subgroupBroadcastFirst(f4); // ERROR extension not enabled (ballot) - uvec4 ballot = subgroupBallot(false); // ERROR extension not enabled (ballot) - subgroupInverseBallot(uvec4(0x1)); // ERROR extension not enabled (ballot) - subgroupBallotBitExtract(ballot, 0); // ERROR extension not enabled (ballot) - subgroupBallotBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotInclusiveBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotExclusiveBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotFindLSB(ballot); // ERROR extension not enabled (ballot) - subgroupBallotFindMSB(ballot); // ERROR extension not enabled (ballot) - - subgroupShuffle(f4, 0); // ERROR extension not enabled (shuffle) - subgroupShuffleXor(f4, 0x1); // ERROR extension not enabled (shuffle) - subgroupShuffleUp(f4, 1); // ERROR extension not enabled (shuffle_relative) - subgroupShuffleDown(f4, 1); // ERROR extension not enabled (shuffle_relative) - - result = subgroupAdd(f4); // ERROR, extension not enabled (arith) - subgroupMul(f4); // ERROR, extension not enabled (arith) - subgroupMin(f4); // ERROR, extension not enabled (arith) - subgroupMax(f4); // ERROR, extension not enabled (arith) - subgroupAnd(ballot); // ERROR, extension not enabled (arith) - subgroupOr(ballot); // ERROR, extension not enabled (arith) - subgroupXor(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveAdd(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMul(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMin(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMax(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveAnd(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveOr(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveXor(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveAdd(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMul(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMin(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMax(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveAnd(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveOr(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveXor(ballot); // ERROR, extension not enabled (arith) - - subgroupClusteredAdd(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMul(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMin(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMax(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredAnd(ballot, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredOr(ballot, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredXor(ballot, 2); // ERROR, extension not enabled (clustered) - - subgroupQuadBroadcast(f4, 0); // ERROR, extension not enabled (quad) - subgroupQuadSwapHorizontal(f4); // ERROR, extension not enabled (quad) - subgroupQuadSwapVertical(f4); // ERROR, extension not enabled (quad) - subgroupQuadSwapDiagonal(f4); // ERROR, extension not enabled (quad) - - uvec4 parti = subgroupPartitionNV(f4); // ERROR, extension not enabled (partitioned) - subgroupPartitionedAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - - return result; -} - - -layout(location = 1) rayPayloadInNV vec4 incomingPayload; -void main() -{ - uvec3 v0 = gl_LaunchIDNV; - uvec3 v1 = gl_LaunchSizeNV; - int v2 = gl_PrimitiveID; - int v3 = gl_InstanceID; - int v4 = gl_InstanceCustomIndexNV; - vec3 v5 = gl_WorldRayOriginNV; - vec3 v6 = gl_WorldRayDirectionNV; - vec3 v7 = gl_ObjectRayOriginNV; - vec3 v8 = gl_ObjectRayDirectionNV; - float v9 = gl_RayTminNV; - float v10 = gl_RayTmaxNV; - float v11 = gl_HitTNV; - uint v12 = gl_HitKindNV; - mat4x3 v13 = gl_ObjectToWorldNV; - mat4x3 v14 = gl_WorldToObjectNV; - incomingPayload = vec4(0.5f); - if (v2 == 1) - ignoreIntersectionNV(); - else - terminateRayNV(); -} - -#extension GL_KHR_shader_subgroup_basic: enable -void basic_works (void) -{ - gl_SubgroupSize; - gl_SubgroupInvocationID; - subgroupBarrier(); - subgroupMemoryBarrier(); - subgroupMemoryBarrierBuffer(); - subgroupMemoryBarrierImage(); - subgroupElect(); -} - -#extension GL_KHR_shader_subgroup_ballot: enable -void ballot_works(vec4 f4) { - gl_SubgroupEqMask; - gl_SubgroupGeMask; - gl_SubgroupGtMask; - gl_SubgroupLeMask; - gl_SubgroupLtMask; - subgroupBroadcast(f4, 0); - subgroupBroadcastFirst(f4); - uvec4 ballot = subgroupBallot(false); - subgroupInverseBallot(uvec4(0x1)); - subgroupBallotBitExtract(ballot, 0); - subgroupBallotBitCount(ballot); - subgroupBallotInclusiveBitCount(ballot); - subgroupBallotExclusiveBitCount(ballot); - subgroupBallotFindLSB(ballot); - subgroupBallotFindMSB(ballot); -} - -#extension GL_KHR_shader_subgroup_vote: enable -void vote_works(vec4 f4) -{ - subgroupAll(true); - subgroupAny(false); - subgroupAllEqual(f4); -} - -#extension GL_KHR_shader_subgroup_shuffle: enable -#extension GL_KHR_shader_subgroup_shuffle_relative: enable -void shuffle_works(vec4 f4) -{ - subgroupShuffle(f4, 0); - subgroupShuffleXor(f4, 0x1); - subgroupShuffleUp(f4, 1); - subgroupShuffleDown(f4, 1); -} - -#extension GL_KHR_shader_subgroup_arithmetic: enable -void arith_works(vec4 f4) -{ - uvec4 ballot; - subgroupAdd(f4); - subgroupMul(f4); - subgroupMin(f4); - subgroupMax(f4); - subgroupAnd(ballot); - subgroupOr(ballot); - subgroupXor(ballot); - subgroupInclusiveAdd(f4); - subgroupInclusiveMul(f4); - subgroupInclusiveMin(f4); - subgroupInclusiveMax(f4); - subgroupInclusiveAnd(ballot); - subgroupInclusiveOr(ballot); - subgroupInclusiveXor(ballot); - subgroupExclusiveAdd(f4); - subgroupExclusiveMul(f4); - subgroupExclusiveMin(f4); - subgroupExclusiveMax(f4); - subgroupExclusiveAnd(ballot); - subgroupExclusiveOr(ballot); - subgroupExclusiveXor(ballot); -} - -#extension GL_KHR_shader_subgroup_clustered: enable -void clustered_works(vec4 f4) -{ - uvec4 ballot = uvec4(0x55,0,0,0); - subgroupClusteredAdd(f4, 2); - subgroupClusteredMul(f4, 2); - subgroupClusteredMin(f4, 2); - subgroupClusteredMax(f4, 2); - subgroupClusteredAnd(ballot, 2); - subgroupClusteredOr(ballot, 2); - subgroupClusteredXor(ballot, 2); -} - -#extension GL_KHR_shader_subgroup_quad: enable -void quad_works(vec4 f4) -{ - subgroupQuadBroadcast(f4, 0); - subgroupQuadSwapHorizontal(f4); - subgroupQuadSwapVertical(f4); - subgroupQuadSwapDiagonal(f4); -} - -#extension GL_NV_shader_subgroup_partitioned: enable -void partitioned_works(vec4 f4) -{ - uvec4 parti = subgroupPartitionNV(f4); - uvec4 ballot = uvec4(0x55,0,0,0); - subgroupPartitionedAddNV(f4, parti); - subgroupPartitionedMulNV(f4, parti); - subgroupPartitionedMinNV(f4, parti); - subgroupPartitionedMaxNV(f4, parti); - subgroupPartitionedAndNV(ballot, parti); - subgroupPartitionedOrNV(ballot, parti); - subgroupPartitionedXorNV(ballot, parti); - subgroupPartitionedInclusiveAddNV(f4, parti); - subgroupPartitionedInclusiveMulNV(f4, parti); - subgroupPartitionedInclusiveMinNV(f4, parti); - subgroupPartitionedInclusiveMaxNV(f4, parti); - subgroupPartitionedInclusiveAndNV(ballot, parti); - subgroupPartitionedInclusiveOrNV(ballot, parti); - subgroupPartitionedInclusiveXorNV(ballot, parti); - subgroupPartitionedExclusiveAddNV(f4, parti); - subgroupPartitionedExclusiveMulNV(f4, parti); - subgroupPartitionedExclusiveMinNV(f4, parti); - subgroupPartitionedExclusiveMaxNV(f4, parti); - subgroupPartitionedExclusiveAndNV(ballot, parti); - subgroupPartitionedExclusiveOrNV(ballot, parti); - subgroupPartitionedExclusiveXorNV(ballot, parti); -} - -// tests for NV_shader_sm_builtins -void sm_builtins_err() -{ - gl_WarpsPerSMNV; // ERROR, no extension - gl_SMCountNV; // ERROR, no extension - gl_WarpIDNV; // ERROR, no extension - gl_SMIDNV; // ERROR, no extension -} - -#ifdef GL_NV_shader_sm_builtins -#extension GL_NV_shader_sm_builtins : enable -#endif - -void sm_builtins() -{ - gl_WarpsPerSMNV; - gl_SMCountNV; - gl_WarpIDNV; - gl_SMIDNV; -} diff --git a/deps/glslang/Test/glsl.460.subgroup.rcall b/deps/glslang/Test/glsl.460.subgroup.rcall deleted file mode 100644 index 9c2ede88..00000000 --- a/deps/glslang/Test/glsl.460.subgroup.rcall +++ /dev/null @@ -1,263 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : enable - -vec4 undeclared_errors(vec4 f4) -{ - vec4 result; - gl_SubgroupSize; // ERROR, extension not enabled (basic) - gl_SubgroupInvocationID; // ERROR, extension not enabled (basic) - subgroupBarrier(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrier(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrierBuffer(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrierImage(); // ERROR, extension not enabled (basic) - subgroupElect(); // ERROR, extension not enabled (basic) - gl_NumSubgroups; // ERROR, only defined in compute - gl_SubgroupID; // ERROR, only defined in compute - subgroupMemoryBarrierShared(); // ERROR, only defined in compute - - subgroupAll(true); // ERROR extension not enabled (vote) - subgroupAny(false); // ERROR extension not enabled (vote) - subgroupAllEqual(f4); // ERROR extension not enabled (vote) - - gl_SubgroupEqMask; // ERROR extension not enabled (ballot) - gl_SubgroupGeMask; // ERROR extension not enabled (ballot) - gl_SubgroupGtMask; // ERROR extension not enabled (ballot) - gl_SubgroupLeMask; // ERROR extension not enabled (ballot) - gl_SubgroupLtMask; // ERROR extension not enabled (ballot) - subgroupBroadcast(f4, 0); // ERROR extension not enabled (ballot) - subgroupBroadcastFirst(f4); // ERROR extension not enabled (ballot) - uvec4 ballot = subgroupBallot(false); // ERROR extension not enabled (ballot) - subgroupInverseBallot(uvec4(0x1)); // ERROR extension not enabled (ballot) - subgroupBallotBitExtract(ballot, 0); // ERROR extension not enabled (ballot) - subgroupBallotBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotInclusiveBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotExclusiveBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotFindLSB(ballot); // ERROR extension not enabled (ballot) - subgroupBallotFindMSB(ballot); // ERROR extension not enabled (ballot) - - subgroupShuffle(f4, 0); // ERROR extension not enabled (shuffle) - subgroupShuffleXor(f4, 0x1); // ERROR extension not enabled (shuffle) - subgroupShuffleUp(f4, 1); // ERROR extension not enabled (shuffle_relative) - subgroupShuffleDown(f4, 1); // ERROR extension not enabled (shuffle_relative) - - result = subgroupAdd(f4); // ERROR, extension not enabled (arith) - subgroupMul(f4); // ERROR, extension not enabled (arith) - subgroupMin(f4); // ERROR, extension not enabled (arith) - subgroupMax(f4); // ERROR, extension not enabled (arith) - subgroupAnd(ballot); // ERROR, extension not enabled (arith) - subgroupOr(ballot); // ERROR, extension not enabled (arith) - subgroupXor(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveAdd(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMul(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMin(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMax(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveAnd(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveOr(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveXor(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveAdd(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMul(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMin(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMax(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveAnd(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveOr(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveXor(ballot); // ERROR, extension not enabled (arith) - - subgroupClusteredAdd(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMul(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMin(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMax(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredAnd(ballot, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredOr(ballot, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredXor(ballot, 2); // ERROR, extension not enabled (clustered) - - subgroupQuadBroadcast(f4, 0); // ERROR, extension not enabled (quad) - subgroupQuadSwapHorizontal(f4); // ERROR, extension not enabled (quad) - subgroupQuadSwapVertical(f4); // ERROR, extension not enabled (quad) - subgroupQuadSwapDiagonal(f4); // ERROR, extension not enabled (quad) - - uvec4 parti = subgroupPartitionNV(f4); // ERROR, extension not enabled (partitioned) - subgroupPartitionedAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - - return result; -} - - -layout(location = 0) callableDataNV vec4 data0; -layout(location = 1) callableDataInNV dataBlock { - uint data1; -}; -void main() -{ - uvec3 id = gl_LaunchIDNV; - uvec3 size = gl_LaunchSizeNV; - data1 = 256U; - executeCallableNV(2,1); -} - - -#extension GL_KHR_shader_subgroup_basic: enable -void basic_works (void) -{ - gl_SubgroupSize; - gl_SubgroupInvocationID; - subgroupBarrier(); - subgroupMemoryBarrier(); - subgroupMemoryBarrierBuffer(); - subgroupMemoryBarrierImage(); - subgroupElect(); -} - -#extension GL_KHR_shader_subgroup_ballot: enable -void ballot_works(vec4 f4) { - gl_SubgroupEqMask; - gl_SubgroupGeMask; - gl_SubgroupGtMask; - gl_SubgroupLeMask; - gl_SubgroupLtMask; - subgroupBroadcast(f4, 0); - subgroupBroadcastFirst(f4); - uvec4 ballot = subgroupBallot(false); - subgroupInverseBallot(uvec4(0x1)); - subgroupBallotBitExtract(ballot, 0); - subgroupBallotBitCount(ballot); - subgroupBallotInclusiveBitCount(ballot); - subgroupBallotExclusiveBitCount(ballot); - subgroupBallotFindLSB(ballot); - subgroupBallotFindMSB(ballot); -} - -#extension GL_KHR_shader_subgroup_vote: enable -void vote_works(vec4 f4) -{ - subgroupAll(true); - subgroupAny(false); - subgroupAllEqual(f4); -} - -#extension GL_KHR_shader_subgroup_shuffle: enable -#extension GL_KHR_shader_subgroup_shuffle_relative: enable -void shuffle_works(vec4 f4) -{ - subgroupShuffle(f4, 0); - subgroupShuffleXor(f4, 0x1); - subgroupShuffleUp(f4, 1); - subgroupShuffleDown(f4, 1); -} - -#extension GL_KHR_shader_subgroup_arithmetic: enable -void arith_works(vec4 f4) -{ - uvec4 ballot; - subgroupAdd(f4); - subgroupMul(f4); - subgroupMin(f4); - subgroupMax(f4); - subgroupAnd(ballot); - subgroupOr(ballot); - subgroupXor(ballot); - subgroupInclusiveAdd(f4); - subgroupInclusiveMul(f4); - subgroupInclusiveMin(f4); - subgroupInclusiveMax(f4); - subgroupInclusiveAnd(ballot); - subgroupInclusiveOr(ballot); - subgroupInclusiveXor(ballot); - subgroupExclusiveAdd(f4); - subgroupExclusiveMul(f4); - subgroupExclusiveMin(f4); - subgroupExclusiveMax(f4); - subgroupExclusiveAnd(ballot); - subgroupExclusiveOr(ballot); - subgroupExclusiveXor(ballot); -} - -#extension GL_KHR_shader_subgroup_clustered: enable -void clustered_works(vec4 f4) -{ - uvec4 ballot = uvec4(0x55,0,0,0); - subgroupClusteredAdd(f4, 2); - subgroupClusteredMul(f4, 2); - subgroupClusteredMin(f4, 2); - subgroupClusteredMax(f4, 2); - subgroupClusteredAnd(ballot, 2); - subgroupClusteredOr(ballot, 2); - subgroupClusteredXor(ballot, 2); -} - -#extension GL_KHR_shader_subgroup_quad: enable -void quad_works(vec4 f4) -{ - subgroupQuadBroadcast(f4, 0); - subgroupQuadSwapHorizontal(f4); - subgroupQuadSwapVertical(f4); - subgroupQuadSwapDiagonal(f4); -} - -#extension GL_NV_shader_subgroup_partitioned: enable -void partitioned_works(vec4 f4) -{ - uvec4 parti = subgroupPartitionNV(f4); - uvec4 ballot = uvec4(0x55,0,0,0); - subgroupPartitionedAddNV(f4, parti); - subgroupPartitionedMulNV(f4, parti); - subgroupPartitionedMinNV(f4, parti); - subgroupPartitionedMaxNV(f4, parti); - subgroupPartitionedAndNV(ballot, parti); - subgroupPartitionedOrNV(ballot, parti); - subgroupPartitionedXorNV(ballot, parti); - subgroupPartitionedInclusiveAddNV(f4, parti); - subgroupPartitionedInclusiveMulNV(f4, parti); - subgroupPartitionedInclusiveMinNV(f4, parti); - subgroupPartitionedInclusiveMaxNV(f4, parti); - subgroupPartitionedInclusiveAndNV(ballot, parti); - subgroupPartitionedInclusiveOrNV(ballot, parti); - subgroupPartitionedInclusiveXorNV(ballot, parti); - subgroupPartitionedExclusiveAddNV(f4, parti); - subgroupPartitionedExclusiveMulNV(f4, parti); - subgroupPartitionedExclusiveMinNV(f4, parti); - subgroupPartitionedExclusiveMaxNV(f4, parti); - subgroupPartitionedExclusiveAndNV(ballot, parti); - subgroupPartitionedExclusiveOrNV(ballot, parti); - subgroupPartitionedExclusiveXorNV(ballot, parti); -} - -// tests for NV_shader_sm_builtins -void sm_builtins_err() -{ - gl_WarpsPerSMNV; // ERROR, no extension - gl_SMCountNV; // ERROR, no extension - gl_WarpIDNV; // ERROR, no extension - gl_SMIDNV; // ERROR, no extension -} - -#ifdef GL_NV_shader_sm_builtins -#extension GL_NV_shader_sm_builtins : enable -#endif - -void sm_builtins() -{ - gl_WarpsPerSMNV; - gl_SMCountNV; - gl_WarpIDNV; - gl_SMIDNV; -} diff --git a/deps/glslang/Test/glsl.460.subgroup.rchit b/deps/glslang/Test/glsl.460.subgroup.rchit deleted file mode 100644 index aae5b541..00000000 --- a/deps/glslang/Test/glsl.460.subgroup.rchit +++ /dev/null @@ -1,273 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : enable - -vec4 undeclared_errors(vec4 f4) -{ - vec4 result; - gl_SubgroupSize; // ERROR, extension not enabled (basic) - gl_SubgroupInvocationID; // ERROR, extension not enabled (basic) - subgroupBarrier(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrier(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrierBuffer(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrierImage(); // ERROR, extension not enabled (basic) - subgroupElect(); // ERROR, extension not enabled (basic) - gl_NumSubgroups; // ERROR, only defined in compute - gl_SubgroupID; // ERROR, only defined in compute - subgroupMemoryBarrierShared(); // ERROR, only defined in compute - - subgroupAll(true); // ERROR extension not enabled (vote) - subgroupAny(false); // ERROR extension not enabled (vote) - subgroupAllEqual(f4); // ERROR extension not enabled (vote) - - gl_SubgroupEqMask; // ERROR extension not enabled (ballot) - gl_SubgroupGeMask; // ERROR extension not enabled (ballot) - gl_SubgroupGtMask; // ERROR extension not enabled (ballot) - gl_SubgroupLeMask; // ERROR extension not enabled (ballot) - gl_SubgroupLtMask; // ERROR extension not enabled (ballot) - subgroupBroadcast(f4, 0); // ERROR extension not enabled (ballot) - subgroupBroadcastFirst(f4); // ERROR extension not enabled (ballot) - uvec4 ballot = subgroupBallot(false); // ERROR extension not enabled (ballot) - subgroupInverseBallot(uvec4(0x1)); // ERROR extension not enabled (ballot) - subgroupBallotBitExtract(ballot, 0); // ERROR extension not enabled (ballot) - subgroupBallotBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotInclusiveBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotExclusiveBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotFindLSB(ballot); // ERROR extension not enabled (ballot) - subgroupBallotFindMSB(ballot); // ERROR extension not enabled (ballot) - - subgroupShuffle(f4, 0); // ERROR extension not enabled (shuffle) - subgroupShuffleXor(f4, 0x1); // ERROR extension not enabled (shuffle) - subgroupShuffleUp(f4, 1); // ERROR extension not enabled (shuffle_relative) - subgroupShuffleDown(f4, 1); // ERROR extension not enabled (shuffle_relative) - - result = subgroupAdd(f4); // ERROR, extension not enabled (arith) - subgroupMul(f4); // ERROR, extension not enabled (arith) - subgroupMin(f4); // ERROR, extension not enabled (arith) - subgroupMax(f4); // ERROR, extension not enabled (arith) - subgroupAnd(ballot); // ERROR, extension not enabled (arith) - subgroupOr(ballot); // ERROR, extension not enabled (arith) - subgroupXor(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveAdd(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMul(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMin(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMax(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveAnd(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveOr(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveXor(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveAdd(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMul(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMin(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMax(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveAnd(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveOr(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveXor(ballot); // ERROR, extension not enabled (arith) - - subgroupClusteredAdd(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMul(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMin(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMax(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredAnd(ballot, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredOr(ballot, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredXor(ballot, 2); // ERROR, extension not enabled (clustered) - - subgroupQuadBroadcast(f4, 0); // ERROR, extension not enabled (quad) - subgroupQuadSwapHorizontal(f4); // ERROR, extension not enabled (quad) - subgroupQuadSwapVertical(f4); // ERROR, extension not enabled (quad) - subgroupQuadSwapDiagonal(f4); // ERROR, extension not enabled (quad) - - uvec4 parti = subgroupPartitionNV(f4); // ERROR, extension not enabled (partitioned) - subgroupPartitionedAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - - return result; -} - - -layout(binding = 0, set = 0) uniform accelerationStructureNV accNV; -layout(location = 0) rayPayloadNV vec4 localPayload; -layout(location = 1) rayPayloadInNV vec4 incomingPayload; -void main() -{ - uvec3 v0 = gl_LaunchIDNV; - uvec3 v1 = gl_LaunchSizeNV; - int v2 = gl_PrimitiveID; - int v3 = gl_InstanceID; - int v4 = gl_InstanceCustomIndexNV; - vec3 v5 = gl_WorldRayOriginNV; - vec3 v6 = gl_WorldRayDirectionNV; - vec3 v7 = gl_ObjectRayOriginNV; - vec3 v8 = gl_ObjectRayDirectionNV; - float v9 = gl_RayTminNV; - float v10 = gl_RayTmaxNV; - float v11 = gl_HitTNV; - uint v12 = gl_HitKindNV; - mat4x3 v13 = gl_ObjectToWorldNV; - mat4x3 v14 = gl_WorldToObjectNV; - traceNV(accNV, 0u, 1u, 2u, 3u, 0u, vec3(0.5f), 0.5f, vec3(1.0f), 0.75f, 1); -} - -#extension GL_KHR_shader_subgroup_basic: enable -void basic_works (void) -{ - gl_SubgroupSize; - gl_SubgroupInvocationID; - subgroupBarrier(); - subgroupMemoryBarrier(); - subgroupMemoryBarrierBuffer(); - subgroupMemoryBarrierImage(); - subgroupElect(); -} - -#extension GL_KHR_shader_subgroup_ballot: enable -void ballot_works(vec4 f4) { - gl_SubgroupEqMask; - gl_SubgroupGeMask; - gl_SubgroupGtMask; - gl_SubgroupLeMask; - gl_SubgroupLtMask; - subgroupBroadcast(f4, 0); - subgroupBroadcastFirst(f4); - uvec4 ballot = subgroupBallot(false); - subgroupInverseBallot(uvec4(0x1)); - subgroupBallotBitExtract(ballot, 0); - subgroupBallotBitCount(ballot); - subgroupBallotInclusiveBitCount(ballot); - subgroupBallotExclusiveBitCount(ballot); - subgroupBallotFindLSB(ballot); - subgroupBallotFindMSB(ballot); -} - -#extension GL_KHR_shader_subgroup_vote: enable -void vote_works(vec4 f4) -{ - subgroupAll(true); - subgroupAny(false); - subgroupAllEqual(f4); -} - -#extension GL_KHR_shader_subgroup_shuffle: enable -#extension GL_KHR_shader_subgroup_shuffle_relative: enable -void shuffle_works(vec4 f4) -{ - subgroupShuffle(f4, 0); - subgroupShuffleXor(f4, 0x1); - subgroupShuffleUp(f4, 1); - subgroupShuffleDown(f4, 1); -} - -#extension GL_KHR_shader_subgroup_arithmetic: enable -void arith_works(vec4 f4) -{ - uvec4 ballot; - subgroupAdd(f4); - subgroupMul(f4); - subgroupMin(f4); - subgroupMax(f4); - subgroupAnd(ballot); - subgroupOr(ballot); - subgroupXor(ballot); - subgroupInclusiveAdd(f4); - subgroupInclusiveMul(f4); - subgroupInclusiveMin(f4); - subgroupInclusiveMax(f4); - subgroupInclusiveAnd(ballot); - subgroupInclusiveOr(ballot); - subgroupInclusiveXor(ballot); - subgroupExclusiveAdd(f4); - subgroupExclusiveMul(f4); - subgroupExclusiveMin(f4); - subgroupExclusiveMax(f4); - subgroupExclusiveAnd(ballot); - subgroupExclusiveOr(ballot); - subgroupExclusiveXor(ballot); -} - -#extension GL_KHR_shader_subgroup_clustered: enable -void clustered_works(vec4 f4) -{ - uvec4 ballot = uvec4(0x55,0,0,0); - subgroupClusteredAdd(f4, 2); - subgroupClusteredMul(f4, 2); - subgroupClusteredMin(f4, 2); - subgroupClusteredMax(f4, 2); - subgroupClusteredAnd(ballot, 2); - subgroupClusteredOr(ballot, 2); - subgroupClusteredXor(ballot, 2); -} - -#extension GL_KHR_shader_subgroup_quad: enable -void quad_works(vec4 f4) -{ - subgroupQuadBroadcast(f4, 0); - subgroupQuadSwapHorizontal(f4); - subgroupQuadSwapVertical(f4); - subgroupQuadSwapDiagonal(f4); -} - -#extension GL_NV_shader_subgroup_partitioned: enable -void partitioned_works(vec4 f4) -{ - uvec4 parti = subgroupPartitionNV(f4); - uvec4 ballot = uvec4(0x55,0,0,0); - subgroupPartitionedAddNV(f4, parti); - subgroupPartitionedMulNV(f4, parti); - subgroupPartitionedMinNV(f4, parti); - subgroupPartitionedMaxNV(f4, parti); - subgroupPartitionedAndNV(ballot, parti); - subgroupPartitionedOrNV(ballot, parti); - subgroupPartitionedXorNV(ballot, parti); - subgroupPartitionedInclusiveAddNV(f4, parti); - subgroupPartitionedInclusiveMulNV(f4, parti); - subgroupPartitionedInclusiveMinNV(f4, parti); - subgroupPartitionedInclusiveMaxNV(f4, parti); - subgroupPartitionedInclusiveAndNV(ballot, parti); - subgroupPartitionedInclusiveOrNV(ballot, parti); - subgroupPartitionedInclusiveXorNV(ballot, parti); - subgroupPartitionedExclusiveAddNV(f4, parti); - subgroupPartitionedExclusiveMulNV(f4, parti); - subgroupPartitionedExclusiveMinNV(f4, parti); - subgroupPartitionedExclusiveMaxNV(f4, parti); - subgroupPartitionedExclusiveAndNV(ballot, parti); - subgroupPartitionedExclusiveOrNV(ballot, parti); - subgroupPartitionedExclusiveXorNV(ballot, parti); -} - -// tests for NV_shader_sm_builtins -void sm_builtins_err() -{ - gl_WarpsPerSMNV; // ERROR, no extension - gl_SMCountNV; // ERROR, no extension - gl_WarpIDNV; // ERROR, no extension - gl_SMIDNV; // ERROR, no extension -} - -#ifdef GL_NV_shader_sm_builtins -#extension GL_NV_shader_sm_builtins : enable -#endif - -void sm_builtins() -{ - gl_WarpsPerSMNV; - gl_SMCountNV; - gl_WarpIDNV; - gl_SMIDNV; -} diff --git a/deps/glslang/Test/glsl.460.subgroup.rgen b/deps/glslang/Test/glsl.460.subgroup.rgen deleted file mode 100644 index a3c78c95..00000000 --- a/deps/glslang/Test/glsl.460.subgroup.rgen +++ /dev/null @@ -1,267 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : enable - -vec4 undeclared_errors(vec4 f4) -{ - vec4 result; - gl_SubgroupSize; // ERROR, extension not enabled (basic) - gl_SubgroupInvocationID; // ERROR, extension not enabled (basic) - subgroupBarrier(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrier(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrierBuffer(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrierImage(); // ERROR, extension not enabled (basic) - subgroupElect(); // ERROR, extension not enabled (basic) - gl_NumSubgroups; // ERROR, only defined in compute - gl_SubgroupID; // ERROR, only defined in compute - subgroupMemoryBarrierShared(); // ERROR, only defined in compute - - subgroupAll(true); // ERROR extension not enabled (vote) - subgroupAny(false); // ERROR extension not enabled (vote) - subgroupAllEqual(f4); // ERROR extension not enabled (vote) - - gl_SubgroupEqMask; // ERROR extension not enabled (ballot) - gl_SubgroupGeMask; // ERROR extension not enabled (ballot) - gl_SubgroupGtMask; // ERROR extension not enabled (ballot) - gl_SubgroupLeMask; // ERROR extension not enabled (ballot) - gl_SubgroupLtMask; // ERROR extension not enabled (ballot) - subgroupBroadcast(f4, 0); // ERROR extension not enabled (ballot) - subgroupBroadcastFirst(f4); // ERROR extension not enabled (ballot) - uvec4 ballot = subgroupBallot(false); // ERROR extension not enabled (ballot) - subgroupInverseBallot(uvec4(0x1)); // ERROR extension not enabled (ballot) - subgroupBallotBitExtract(ballot, 0); // ERROR extension not enabled (ballot) - subgroupBallotBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotInclusiveBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotExclusiveBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotFindLSB(ballot); // ERROR extension not enabled (ballot) - subgroupBallotFindMSB(ballot); // ERROR extension not enabled (ballot) - - subgroupShuffle(f4, 0); // ERROR extension not enabled (shuffle) - subgroupShuffleXor(f4, 0x1); // ERROR extension not enabled (shuffle) - subgroupShuffleUp(f4, 1); // ERROR extension not enabled (shuffle_relative) - subgroupShuffleDown(f4, 1); // ERROR extension not enabled (shuffle_relative) - - result = subgroupAdd(f4); // ERROR, extension not enabled (arith) - subgroupMul(f4); // ERROR, extension not enabled (arith) - subgroupMin(f4); // ERROR, extension not enabled (arith) - subgroupMax(f4); // ERROR, extension not enabled (arith) - subgroupAnd(ballot); // ERROR, extension not enabled (arith) - subgroupOr(ballot); // ERROR, extension not enabled (arith) - subgroupXor(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveAdd(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMul(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMin(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMax(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveAnd(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveOr(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveXor(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveAdd(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMul(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMin(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMax(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveAnd(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveOr(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveXor(ballot); // ERROR, extension not enabled (arith) - - subgroupClusteredAdd(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMul(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMin(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMax(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredAnd(ballot, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredOr(ballot, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredXor(ballot, 2); // ERROR, extension not enabled (clustered) - - subgroupQuadBroadcast(f4, 0); // ERROR, extension not enabled (quad) - subgroupQuadSwapHorizontal(f4); // ERROR, extension not enabled (quad) - subgroupQuadSwapVertical(f4); // ERROR, extension not enabled (quad) - subgroupQuadSwapDiagonal(f4); // ERROR, extension not enabled (quad) - - uvec4 parti = subgroupPartitionNV(f4); // ERROR, extension not enabled (partitioned) - subgroupPartitionedAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - - return result; -} - -layout(binding = 0, set = 0) uniform accelerationStructureNV accNV0; -layout(binding = 1, set = 0) uniform accelerationStructureNV accNV1; // Unused -layout(location = 0) rayPayloadNV vec4 payload; -layout(shaderRecordNV) buffer block -{ - vec3 dir; - vec3 origin; - -}; -void main() -{ - uint lx = gl_LaunchIDNV.x; - uint ly = gl_LaunchIDNV.y; - uint sx = gl_LaunchSizeNV.x; - uint sy = gl_LaunchSizeNV.y; - traceNV(accNV0, lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1); -} - -#extension GL_KHR_shader_subgroup_basic: enable -void basic_works (void) -{ - gl_SubgroupSize; - gl_SubgroupInvocationID; - subgroupBarrier(); - subgroupMemoryBarrier(); - subgroupMemoryBarrierBuffer(); - subgroupMemoryBarrierImage(); - subgroupElect(); -} - -#extension GL_KHR_shader_subgroup_ballot: enable -void ballot_works(vec4 f4) { - gl_SubgroupEqMask; - gl_SubgroupGeMask; - gl_SubgroupGtMask; - gl_SubgroupLeMask; - gl_SubgroupLtMask; - subgroupBroadcast(f4, 0); - subgroupBroadcastFirst(f4); - uvec4 ballot = subgroupBallot(false); - subgroupInverseBallot(uvec4(0x1)); - subgroupBallotBitExtract(ballot, 0); - subgroupBallotBitCount(ballot); - subgroupBallotInclusiveBitCount(ballot); - subgroupBallotExclusiveBitCount(ballot); - subgroupBallotFindLSB(ballot); - subgroupBallotFindMSB(ballot); -} - -#extension GL_KHR_shader_subgroup_vote: enable -void vote_works(vec4 f4) -{ - subgroupAll(true); - subgroupAny(false); - subgroupAllEqual(f4); -} - -#extension GL_KHR_shader_subgroup_shuffle: enable -#extension GL_KHR_shader_subgroup_shuffle_relative: enable -void shuffle_works(vec4 f4) -{ - subgroupShuffle(f4, 0); - subgroupShuffleXor(f4, 0x1); - subgroupShuffleUp(f4, 1); - subgroupShuffleDown(f4, 1); -} - -#extension GL_KHR_shader_subgroup_arithmetic: enable -void arith_works(vec4 f4) -{ - uvec4 ballot; - subgroupAdd(f4); - subgroupMul(f4); - subgroupMin(f4); - subgroupMax(f4); - subgroupAnd(ballot); - subgroupOr(ballot); - subgroupXor(ballot); - subgroupInclusiveAdd(f4); - subgroupInclusiveMul(f4); - subgroupInclusiveMin(f4); - subgroupInclusiveMax(f4); - subgroupInclusiveAnd(ballot); - subgroupInclusiveOr(ballot); - subgroupInclusiveXor(ballot); - subgroupExclusiveAdd(f4); - subgroupExclusiveMul(f4); - subgroupExclusiveMin(f4); - subgroupExclusiveMax(f4); - subgroupExclusiveAnd(ballot); - subgroupExclusiveOr(ballot); - subgroupExclusiveXor(ballot); -} - -#extension GL_KHR_shader_subgroup_clustered: enable -void clustered_works(vec4 f4) -{ - uvec4 ballot = uvec4(0x55,0,0,0); - subgroupClusteredAdd(f4, 2); - subgroupClusteredMul(f4, 2); - subgroupClusteredMin(f4, 2); - subgroupClusteredMax(f4, 2); - subgroupClusteredAnd(ballot, 2); - subgroupClusteredOr(ballot, 2); - subgroupClusteredXor(ballot, 2); -} - -#extension GL_KHR_shader_subgroup_quad: enable -void quad_works(vec4 f4) -{ - subgroupQuadBroadcast(f4, 0); - subgroupQuadSwapHorizontal(f4); - subgroupQuadSwapVertical(f4); - subgroupQuadSwapDiagonal(f4); -} - -#extension GL_NV_shader_subgroup_partitioned: enable -void partitioned_works(vec4 f4) -{ - uvec4 parti = subgroupPartitionNV(f4); - uvec4 ballot = uvec4(0x55,0,0,0); - subgroupPartitionedAddNV(f4, parti); - subgroupPartitionedMulNV(f4, parti); - subgroupPartitionedMinNV(f4, parti); - subgroupPartitionedMaxNV(f4, parti); - subgroupPartitionedAndNV(ballot, parti); - subgroupPartitionedOrNV(ballot, parti); - subgroupPartitionedXorNV(ballot, parti); - subgroupPartitionedInclusiveAddNV(f4, parti); - subgroupPartitionedInclusiveMulNV(f4, parti); - subgroupPartitionedInclusiveMinNV(f4, parti); - subgroupPartitionedInclusiveMaxNV(f4, parti); - subgroupPartitionedInclusiveAndNV(ballot, parti); - subgroupPartitionedInclusiveOrNV(ballot, parti); - subgroupPartitionedInclusiveXorNV(ballot, parti); - subgroupPartitionedExclusiveAddNV(f4, parti); - subgroupPartitionedExclusiveMulNV(f4, parti); - subgroupPartitionedExclusiveMinNV(f4, parti); - subgroupPartitionedExclusiveMaxNV(f4, parti); - subgroupPartitionedExclusiveAndNV(ballot, parti); - subgroupPartitionedExclusiveOrNV(ballot, parti); - subgroupPartitionedExclusiveXorNV(ballot, parti); -} - -// tests for NV_shader_sm_builtins -void sm_builtins_err() -{ - gl_WarpsPerSMNV; // ERROR, no extension - gl_SMCountNV; // ERROR, no extension - gl_WarpIDNV; // ERROR, no extension - gl_SMIDNV; // ERROR, no extension -} - -#ifdef GL_NV_shader_sm_builtins -#extension GL_NV_shader_sm_builtins : enable -#endif - -void sm_builtins() -{ - gl_WarpsPerSMNV; - gl_SMCountNV; - gl_WarpIDNV; - gl_SMIDNV; -} diff --git a/deps/glslang/Test/glsl.460.subgroup.rint b/deps/glslang/Test/glsl.460.subgroup.rint deleted file mode 100644 index 1909c5af..00000000 --- a/deps/glslang/Test/glsl.460.subgroup.rint +++ /dev/null @@ -1,273 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : enable - - -vec4 undeclared_errors(vec4 f4) -{ - vec4 result; - gl_SubgroupSize; // ERROR, extension not enabled (basic) - gl_SubgroupInvocationID; // ERROR, extension not enabled (basic) - subgroupBarrier(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrier(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrierBuffer(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrierImage(); // ERROR, extension not enabled (basic) - subgroupElect(); // ERROR, extension not enabled (basic) - gl_NumSubgroups; // ERROR, only defined in compute - gl_SubgroupID; // ERROR, only defined in compute - subgroupMemoryBarrierShared(); // ERROR, only defined in compute - - subgroupAll(true); // ERROR extension not enabled (vote) - subgroupAny(false); // ERROR extension not enabled (vote) - subgroupAllEqual(f4); // ERROR extension not enabled (vote) - - gl_SubgroupEqMask; // ERROR extension not enabled (ballot) - gl_SubgroupGeMask; // ERROR extension not enabled (ballot) - gl_SubgroupGtMask; // ERROR extension not enabled (ballot) - gl_SubgroupLeMask; // ERROR extension not enabled (ballot) - gl_SubgroupLtMask; // ERROR extension not enabled (ballot) - subgroupBroadcast(f4, 0); // ERROR extension not enabled (ballot) - subgroupBroadcastFirst(f4); // ERROR extension not enabled (ballot) - uvec4 ballot = subgroupBallot(false); // ERROR extension not enabled (ballot) - subgroupInverseBallot(uvec4(0x1)); // ERROR extension not enabled (ballot) - subgroupBallotBitExtract(ballot, 0); // ERROR extension not enabled (ballot) - subgroupBallotBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotInclusiveBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotExclusiveBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotFindLSB(ballot); // ERROR extension not enabled (ballot) - subgroupBallotFindMSB(ballot); // ERROR extension not enabled (ballot) - - subgroupShuffle(f4, 0); // ERROR extension not enabled (shuffle) - subgroupShuffleXor(f4, 0x1); // ERROR extension not enabled (shuffle) - subgroupShuffleUp(f4, 1); // ERROR extension not enabled (shuffle_relative) - subgroupShuffleDown(f4, 1); // ERROR extension not enabled (shuffle_relative) - - result = subgroupAdd(f4); // ERROR, extension not enabled (arith) - subgroupMul(f4); // ERROR, extension not enabled (arith) - subgroupMin(f4); // ERROR, extension not enabled (arith) - subgroupMax(f4); // ERROR, extension not enabled (arith) - subgroupAnd(ballot); // ERROR, extension not enabled (arith) - subgroupOr(ballot); // ERROR, extension not enabled (arith) - subgroupXor(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveAdd(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMul(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMin(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMax(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveAnd(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveOr(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveXor(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveAdd(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMul(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMin(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMax(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveAnd(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveOr(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveXor(ballot); // ERROR, extension not enabled (arith) - - subgroupClusteredAdd(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMul(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMin(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMax(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredAnd(ballot, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredOr(ballot, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredXor(ballot, 2); // ERROR, extension not enabled (clustered) - - subgroupQuadBroadcast(f4, 0); // ERROR, extension not enabled (quad) - subgroupQuadSwapHorizontal(f4); // ERROR, extension not enabled (quad) - subgroupQuadSwapVertical(f4); // ERROR, extension not enabled (quad) - subgroupQuadSwapDiagonal(f4); // ERROR, extension not enabled (quad) - - uvec4 parti = subgroupPartitionNV(f4); // ERROR, extension not enabled (partitioned) - subgroupPartitionedAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - - return result; -} - - - -hitAttributeNV vec4 iAttr; -void main() -{ - uvec3 v0 = gl_LaunchIDNV; - uvec3 v1 = gl_LaunchSizeNV; - int v2 = gl_PrimitiveID; - int v3 = gl_InstanceID; - int v4 = gl_InstanceCustomIndexNV; - vec3 v5 = gl_WorldRayOriginNV; - vec3 v6 = gl_WorldRayDirectionNV; - vec3 v7 = gl_ObjectRayOriginNV; - vec3 v8 = gl_ObjectRayDirectionNV; - float v9 = gl_RayTminNV; - float v10 = gl_RayTmaxNV; - mat4x3 v11 = gl_ObjectToWorldNV; - mat4x3 v12 = gl_WorldToObjectNV; - iAttr = vec4(0.5f,0.5f,0.0f,1.0f); - reportIntersectionNV(0.5, 1U); -} - - -#extension GL_KHR_shader_subgroup_basic: enable -void basic_works (void) -{ - gl_SubgroupSize; - gl_SubgroupInvocationID; - subgroupBarrier(); - subgroupMemoryBarrier(); - subgroupMemoryBarrierBuffer(); - subgroupMemoryBarrierImage(); - subgroupElect(); -} - -#extension GL_KHR_shader_subgroup_ballot: enable -void ballot_works(vec4 f4) { - gl_SubgroupEqMask; - gl_SubgroupGeMask; - gl_SubgroupGtMask; - gl_SubgroupLeMask; - gl_SubgroupLtMask; - subgroupBroadcast(f4, 0); - subgroupBroadcastFirst(f4); - uvec4 ballot = subgroupBallot(false); - subgroupInverseBallot(uvec4(0x1)); - subgroupBallotBitExtract(ballot, 0); - subgroupBallotBitCount(ballot); - subgroupBallotInclusiveBitCount(ballot); - subgroupBallotExclusiveBitCount(ballot); - subgroupBallotFindLSB(ballot); - subgroupBallotFindMSB(ballot); -} - -#extension GL_KHR_shader_subgroup_vote: enable -void vote_works(vec4 f4) -{ - subgroupAll(true); - subgroupAny(false); - subgroupAllEqual(f4); -} - -#extension GL_KHR_shader_subgroup_shuffle: enable -#extension GL_KHR_shader_subgroup_shuffle_relative: enable -void shuffle_works(vec4 f4) -{ - subgroupShuffle(f4, 0); - subgroupShuffleXor(f4, 0x1); - subgroupShuffleUp(f4, 1); - subgroupShuffleDown(f4, 1); -} - -#extension GL_KHR_shader_subgroup_arithmetic: enable -void arith_works(vec4 f4) -{ - uvec4 ballot; - subgroupAdd(f4); - subgroupMul(f4); - subgroupMin(f4); - subgroupMax(f4); - subgroupAnd(ballot); - subgroupOr(ballot); - subgroupXor(ballot); - subgroupInclusiveAdd(f4); - subgroupInclusiveMul(f4); - subgroupInclusiveMin(f4); - subgroupInclusiveMax(f4); - subgroupInclusiveAnd(ballot); - subgroupInclusiveOr(ballot); - subgroupInclusiveXor(ballot); - subgroupExclusiveAdd(f4); - subgroupExclusiveMul(f4); - subgroupExclusiveMin(f4); - subgroupExclusiveMax(f4); - subgroupExclusiveAnd(ballot); - subgroupExclusiveOr(ballot); - subgroupExclusiveXor(ballot); -} - -#extension GL_KHR_shader_subgroup_clustered: enable -void clustered_works(vec4 f4) -{ - uvec4 ballot = uvec4(0x55,0,0,0); - subgroupClusteredAdd(f4, 2); - subgroupClusteredMul(f4, 2); - subgroupClusteredMin(f4, 2); - subgroupClusteredMax(f4, 2); - subgroupClusteredAnd(ballot, 2); - subgroupClusteredOr(ballot, 2); - subgroupClusteredXor(ballot, 2); -} - -#extension GL_KHR_shader_subgroup_quad: enable -void quad_works(vec4 f4) -{ - subgroupQuadBroadcast(f4, 0); - subgroupQuadSwapHorizontal(f4); - subgroupQuadSwapVertical(f4); - subgroupQuadSwapDiagonal(f4); -} - -#extension GL_NV_shader_subgroup_partitioned: enable -void partitioned_works(vec4 f4) -{ - uvec4 parti = subgroupPartitionNV(f4); - uvec4 ballot = uvec4(0x55,0,0,0); - subgroupPartitionedAddNV(f4, parti); - subgroupPartitionedMulNV(f4, parti); - subgroupPartitionedMinNV(f4, parti); - subgroupPartitionedMaxNV(f4, parti); - subgroupPartitionedAndNV(ballot, parti); - subgroupPartitionedOrNV(ballot, parti); - subgroupPartitionedXorNV(ballot, parti); - subgroupPartitionedInclusiveAddNV(f4, parti); - subgroupPartitionedInclusiveMulNV(f4, parti); - subgroupPartitionedInclusiveMinNV(f4, parti); - subgroupPartitionedInclusiveMaxNV(f4, parti); - subgroupPartitionedInclusiveAndNV(ballot, parti); - subgroupPartitionedInclusiveOrNV(ballot, parti); - subgroupPartitionedInclusiveXorNV(ballot, parti); - subgroupPartitionedExclusiveAddNV(f4, parti); - subgroupPartitionedExclusiveMulNV(f4, parti); - subgroupPartitionedExclusiveMinNV(f4, parti); - subgroupPartitionedExclusiveMaxNV(f4, parti); - subgroupPartitionedExclusiveAndNV(ballot, parti); - subgroupPartitionedExclusiveOrNV(ballot, parti); - subgroupPartitionedExclusiveXorNV(ballot, parti); -} - -// tests for NV_shader_sm_builtins -void sm_builtins_err() -{ - gl_WarpsPerSMNV; // ERROR, no extension - gl_SMCountNV; // ERROR, no extension - gl_WarpIDNV; // ERROR, no extension - gl_SMIDNV; // ERROR, no extension -} - -#ifdef GL_NV_shader_sm_builtins -#extension GL_NV_shader_sm_builtins : enable -#endif - -void sm_builtins() -{ - gl_WarpsPerSMNV; - gl_SMCountNV; - gl_WarpIDNV; - gl_SMIDNV; -} diff --git a/deps/glslang/Test/glsl.460.subgroup.rmiss b/deps/glslang/Test/glsl.460.subgroup.rmiss deleted file mode 100644 index 96c44119..00000000 --- a/deps/glslang/Test/glsl.460.subgroup.rmiss +++ /dev/null @@ -1,267 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : enable - - -vec4 undeclared_errors(vec4 f4) -{ - vec4 result; - gl_SubgroupSize; // ERROR, extension not enabled (basic) - gl_SubgroupInvocationID; // ERROR, extension not enabled (basic) - subgroupBarrier(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrier(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrierBuffer(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrierImage(); // ERROR, extension not enabled (basic) - subgroupElect(); // ERROR, extension not enabled (basic) - gl_NumSubgroups; // ERROR, only defined in compute - gl_SubgroupID; // ERROR, only defined in compute - subgroupMemoryBarrierShared(); // ERROR, only defined in compute - - subgroupAll(true); // ERROR extension not enabled (vote) - subgroupAny(false); // ERROR extension not enabled (vote) - subgroupAllEqual(f4); // ERROR extension not enabled (vote) - - gl_SubgroupEqMask; // ERROR extension not enabled (ballot) - gl_SubgroupGeMask; // ERROR extension not enabled (ballot) - gl_SubgroupGtMask; // ERROR extension not enabled (ballot) - gl_SubgroupLeMask; // ERROR extension not enabled (ballot) - gl_SubgroupLtMask; // ERROR extension not enabled (ballot) - subgroupBroadcast(f4, 0); // ERROR extension not enabled (ballot) - subgroupBroadcastFirst(f4); // ERROR extension not enabled (ballot) - uvec4 ballot = subgroupBallot(false); // ERROR extension not enabled (ballot) - subgroupInverseBallot(uvec4(0x1)); // ERROR extension not enabled (ballot) - subgroupBallotBitExtract(ballot, 0); // ERROR extension not enabled (ballot) - subgroupBallotBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotInclusiveBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotExclusiveBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotFindLSB(ballot); // ERROR extension not enabled (ballot) - subgroupBallotFindMSB(ballot); // ERROR extension not enabled (ballot) - - subgroupShuffle(f4, 0); // ERROR extension not enabled (shuffle) - subgroupShuffleXor(f4, 0x1); // ERROR extension not enabled (shuffle) - subgroupShuffleUp(f4, 1); // ERROR extension not enabled (shuffle_relative) - subgroupShuffleDown(f4, 1); // ERROR extension not enabled (shuffle_relative) - - result = subgroupAdd(f4); // ERROR, extension not enabled (arith) - subgroupMul(f4); // ERROR, extension not enabled (arith) - subgroupMin(f4); // ERROR, extension not enabled (arith) - subgroupMax(f4); // ERROR, extension not enabled (arith) - subgroupAnd(ballot); // ERROR, extension not enabled (arith) - subgroupOr(ballot); // ERROR, extension not enabled (arith) - subgroupXor(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveAdd(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMul(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMin(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMax(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveAnd(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveOr(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveXor(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveAdd(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMul(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMin(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMax(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveAnd(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveOr(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveXor(ballot); // ERROR, extension not enabled (arith) - - subgroupClusteredAdd(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMul(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMin(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMax(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredAnd(ballot, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredOr(ballot, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredXor(ballot, 2); // ERROR, extension not enabled (clustered) - - subgroupQuadBroadcast(f4, 0); // ERROR, extension not enabled (quad) - subgroupQuadSwapHorizontal(f4); // ERROR, extension not enabled (quad) - subgroupQuadSwapVertical(f4); // ERROR, extension not enabled (quad) - subgroupQuadSwapDiagonal(f4); // ERROR, extension not enabled (quad) - - uvec4 parti = subgroupPartitionNV(f4); // ERROR, extension not enabled (partitioned) - subgroupPartitionedAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - - return result; -} - - -layout(binding = 0, set = 0) uniform accelerationStructureNV accNV; -layout(location = 0) rayPayloadNV vec4 localPayload; -layout(location = 1) rayPayloadInNV vec4 incomingPayload; -void main() -{ - uvec3 v0 = gl_LaunchIDNV; - uvec3 v1 = gl_LaunchSizeNV; - vec3 v2 = gl_WorldRayOriginNV; - vec3 v3 = gl_WorldRayDirectionNV; - vec3 v4 = gl_ObjectRayOriginNV; - vec3 v5 = gl_ObjectRayDirectionNV; - float v6 = gl_RayTminNV; - float v7 = gl_RayTmaxNV; - traceNV(accNV, 0u, 1u, 2u, 3u, 0u, vec3(0.5f), 0.5f, vec3(1.0f), 0.75f, 1); -} - -#extension GL_KHR_shader_subgroup_basic: enable -void basic_works (void) -{ - gl_SubgroupSize; - gl_SubgroupInvocationID; - subgroupBarrier(); - subgroupMemoryBarrier(); - subgroupMemoryBarrierBuffer(); - subgroupMemoryBarrierImage(); - subgroupElect(); -} - -#extension GL_KHR_shader_subgroup_ballot: enable -void ballot_works(vec4 f4) { - gl_SubgroupEqMask; - gl_SubgroupGeMask; - gl_SubgroupGtMask; - gl_SubgroupLeMask; - gl_SubgroupLtMask; - subgroupBroadcast(f4, 0); - subgroupBroadcastFirst(f4); - uvec4 ballot = subgroupBallot(false); - subgroupInverseBallot(uvec4(0x1)); - subgroupBallotBitExtract(ballot, 0); - subgroupBallotBitCount(ballot); - subgroupBallotInclusiveBitCount(ballot); - subgroupBallotExclusiveBitCount(ballot); - subgroupBallotFindLSB(ballot); - subgroupBallotFindMSB(ballot); -} - -#extension GL_KHR_shader_subgroup_vote: enable -void vote_works(vec4 f4) -{ - subgroupAll(true); - subgroupAny(false); - subgroupAllEqual(f4); -} - -#extension GL_KHR_shader_subgroup_shuffle: enable -#extension GL_KHR_shader_subgroup_shuffle_relative: enable -void shuffle_works(vec4 f4) -{ - subgroupShuffle(f4, 0); - subgroupShuffleXor(f4, 0x1); - subgroupShuffleUp(f4, 1); - subgroupShuffleDown(f4, 1); -} - -#extension GL_KHR_shader_subgroup_arithmetic: enable -void arith_works(vec4 f4) -{ - uvec4 ballot; - subgroupAdd(f4); - subgroupMul(f4); - subgroupMin(f4); - subgroupMax(f4); - subgroupAnd(ballot); - subgroupOr(ballot); - subgroupXor(ballot); - subgroupInclusiveAdd(f4); - subgroupInclusiveMul(f4); - subgroupInclusiveMin(f4); - subgroupInclusiveMax(f4); - subgroupInclusiveAnd(ballot); - subgroupInclusiveOr(ballot); - subgroupInclusiveXor(ballot); - subgroupExclusiveAdd(f4); - subgroupExclusiveMul(f4); - subgroupExclusiveMin(f4); - subgroupExclusiveMax(f4); - subgroupExclusiveAnd(ballot); - subgroupExclusiveOr(ballot); - subgroupExclusiveXor(ballot); -} - -#extension GL_KHR_shader_subgroup_clustered: enable -void clustered_works(vec4 f4) -{ - uvec4 ballot = uvec4(0x55,0,0,0); - subgroupClusteredAdd(f4, 2); - subgroupClusteredMul(f4, 2); - subgroupClusteredMin(f4, 2); - subgroupClusteredMax(f4, 2); - subgroupClusteredAnd(ballot, 2); - subgroupClusteredOr(ballot, 2); - subgroupClusteredXor(ballot, 2); -} - -#extension GL_KHR_shader_subgroup_quad: enable -void quad_works(vec4 f4) -{ - subgroupQuadBroadcast(f4, 0); - subgroupQuadSwapHorizontal(f4); - subgroupQuadSwapVertical(f4); - subgroupQuadSwapDiagonal(f4); -} - -#extension GL_NV_shader_subgroup_partitioned: enable -void partitioned_works(vec4 f4) -{ - uvec4 parti = subgroupPartitionNV(f4); - uvec4 ballot = uvec4(0x55,0,0,0); - subgroupPartitionedAddNV(f4, parti); - subgroupPartitionedMulNV(f4, parti); - subgroupPartitionedMinNV(f4, parti); - subgroupPartitionedMaxNV(f4, parti); - subgroupPartitionedAndNV(ballot, parti); - subgroupPartitionedOrNV(ballot, parti); - subgroupPartitionedXorNV(ballot, parti); - subgroupPartitionedInclusiveAddNV(f4, parti); - subgroupPartitionedInclusiveMulNV(f4, parti); - subgroupPartitionedInclusiveMinNV(f4, parti); - subgroupPartitionedInclusiveMaxNV(f4, parti); - subgroupPartitionedInclusiveAndNV(ballot, parti); - subgroupPartitionedInclusiveOrNV(ballot, parti); - subgroupPartitionedInclusiveXorNV(ballot, parti); - subgroupPartitionedExclusiveAddNV(f4, parti); - subgroupPartitionedExclusiveMulNV(f4, parti); - subgroupPartitionedExclusiveMinNV(f4, parti); - subgroupPartitionedExclusiveMaxNV(f4, parti); - subgroupPartitionedExclusiveAndNV(ballot, parti); - subgroupPartitionedExclusiveOrNV(ballot, parti); - subgroupPartitionedExclusiveXorNV(ballot, parti); -} - -// tests for NV_shader_sm_builtins -void sm_builtins_err() -{ - gl_WarpsPerSMNV; // ERROR, no extension - gl_SMCountNV; // ERROR, no extension - gl_WarpIDNV; // ERROR, no extension - gl_SMIDNV; // ERROR, no extension -} - -#ifdef GL_NV_shader_sm_builtins -#extension GL_NV_shader_sm_builtins : enable -#endif - -void sm_builtins() -{ - gl_WarpsPerSMNV; - gl_SMCountNV; - gl_WarpIDNV; - gl_SMIDNV; -} diff --git a/deps/glslang/Test/glsl.460.subgroup.task b/deps/glslang/Test/glsl.460.subgroup.task deleted file mode 100644 index 9b147f80..00000000 --- a/deps/glslang/Test/glsl.460.subgroup.task +++ /dev/null @@ -1,304 +0,0 @@ -#version 460 - -vec4 undeclared_errors(vec4 f4) -{ - vec4 result; - gl_SubgroupSize; // ERROR, extension not enabled (basic) - gl_SubgroupInvocationID; // ERROR, extension not enabled (basic) - subgroupBarrier(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrier(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrierBuffer(); // ERROR, extension not enabled (basic) - subgroupMemoryBarrierImage(); // ERROR, extension not enabled (basic) - subgroupElect(); // ERROR, extension not enabled (basic) - gl_NumSubgroups; // ERROR, extension not enabled (basic) - gl_SubgroupID; // ERROR, extension not enabled (basic) - subgroupMemoryBarrierShared(); // ERROR, extension not enabled (basic) - - subgroupAll(true); // ERROR extension not enabled (vote) - subgroupAny(false); // ERROR extension not enabled (vote) - subgroupAllEqual(f4); // ERROR extension not enabled (vote) - - gl_SubgroupEqMask; // ERROR extension not enabled (ballot) - gl_SubgroupGeMask; // ERROR extension not enabled (ballot) - gl_SubgroupGtMask; // ERROR extension not enabled (ballot) - gl_SubgroupLeMask; // ERROR extension not enabled (ballot) - gl_SubgroupLtMask; // ERROR extension not enabled (ballot) - subgroupBroadcast(f4, 0); // ERROR extension not enabled (ballot) - subgroupBroadcastFirst(f4); // ERROR extension not enabled (ballot) - uvec4 ballot = subgroupBallot(false); // ERROR extension not enabled (ballot) - subgroupInverseBallot(uvec4(0x1)); // ERROR extension not enabled (ballot) - subgroupBallotBitExtract(ballot, 0); // ERROR extension not enabled (ballot) - subgroupBallotBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotInclusiveBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotExclusiveBitCount(ballot); // ERROR extension not enabled (ballot) - subgroupBallotFindLSB(ballot); // ERROR extension not enabled (ballot) - subgroupBallotFindMSB(ballot); // ERROR extension not enabled (ballot) - - subgroupShuffle(f4, 0); // ERROR extension not enabled (shuffle) - subgroupShuffleXor(f4, 0x1); // ERROR extension not enabled (shuffle) - subgroupShuffleUp(f4, 1); // ERROR extension not enabled (shuffle_relative) - subgroupShuffleDown(f4, 1); // ERROR extension not enabled (shuffle_relative) - - result = subgroupAdd(f4); // ERROR, extension not enabled (arith) - subgroupMul(f4); // ERROR, extension not enabled (arith) - subgroupMin(f4); // ERROR, extension not enabled (arith) - subgroupMax(f4); // ERROR, extension not enabled (arith) - subgroupAnd(ballot); // ERROR, extension not enabled (arith) - subgroupOr(ballot); // ERROR, extension not enabled (arith) - subgroupXor(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveAdd(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMul(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMin(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveMax(f4); // ERROR, extension not enabled (arith) - subgroupInclusiveAnd(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveOr(ballot); // ERROR, extension not enabled (arith) - subgroupInclusiveXor(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveAdd(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMul(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMin(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveMax(f4); // ERROR, extension not enabled (arith) - subgroupExclusiveAnd(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveOr(ballot); // ERROR, extension not enabled (arith) - subgroupExclusiveXor(ballot); // ERROR, extension not enabled (arith) - - subgroupClusteredAdd(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMul(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMin(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredMax(f4, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredAnd(ballot, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredOr(ballot, 2); // ERROR, extension not enabled (clustered) - subgroupClusteredXor(ballot, 2); // ERROR, extension not enabled (clustered) - - subgroupQuadBroadcast(f4, 0); // ERROR, extension not enabled (quad) - subgroupQuadSwapHorizontal(f4); // ERROR, extension not enabled (quad) - subgroupQuadSwapVertical(f4); // ERROR, extension not enabled (quad) - subgroupQuadSwapDiagonal(f4); // ERROR, extension not enabled (quad) - - uvec4 parti = subgroupPartitionNV(f4); // ERROR, extension not enabled (partitioned) - subgroupPartitionedAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedInclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned) - subgroupPartitionedExclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned) - - return result; -} - -#define MAX_VIEWS gl_MaxMeshViewCountNV - -#define BARRIER() \ - memoryBarrierShared(); \ - barrier(); - -#extension GL_NV_mesh_shader : enable - -layout(local_size_x = 32) in; - -// test use of shared memory in task shaders: -layout(binding=0) writeonly uniform image2D uni_image; -uniform block0 { - uint uni_value; -}; -shared vec4 mem[10]; - -// test use of task memory in task shaders: -taskNV out Task { - vec2 dummy; - vec2 submesh[3]; - uint viewID; -} mytask; - -void main() -{ - uint iid = gl_LocalInvocationID.x; - uint gid = gl_WorkGroupID.x; - uint viewID = gl_MeshViewIndicesNV[gl_MeshViewCountNV%MAX_VIEWS]; - - // 1. shared memory load and stores - for (uint i = 0; i < 10; ++i) { - mem[i] = vec4(i + uni_value); - } - imageStore(uni_image, ivec2(iid), mem[gid]); - imageStore(uni_image, ivec2(iid), mem[gid+1]); - - BARRIER(); - - // 2. task memory stores - - mytask.dummy = vec2(30.0, 31.0); - mytask.submesh[0] = vec2(32.0, 33.0); - mytask.submesh[1] = vec2(34.0, 35.0); - mytask.submesh[2] = mytask.submesh[gid%2]; - mytask.viewID = viewID; - - BARRIER(); - - // 3. set task count - gl_TaskCountNV = 3; -} - -#extension GL_KHR_shader_subgroup_basic: enable -void basic_works (void) -{ - gl_SubgroupSize; - gl_SubgroupInvocationID; - subgroupBarrier(); - subgroupMemoryBarrier(); - subgroupMemoryBarrierBuffer(); - subgroupMemoryBarrierImage(); - subgroupElect(); - gl_NumSubgroups; // allowed in task - gl_SubgroupID; // allowed in task - subgroupMemoryBarrierShared(); // allowed in task -} - -#extension GL_KHR_shader_subgroup_ballot: enable -void ballot_works(vec4 f4) { - gl_SubgroupEqMask; - gl_SubgroupGeMask; - gl_SubgroupGtMask; - gl_SubgroupLeMask; - gl_SubgroupLtMask; - subgroupBroadcast(f4, 0); - subgroupBroadcastFirst(f4); - uvec4 ballot = subgroupBallot(false); - subgroupInverseBallot(uvec4(0x1)); - subgroupBallotBitExtract(ballot, 0); - subgroupBallotBitCount(ballot); - subgroupBallotInclusiveBitCount(ballot); - subgroupBallotExclusiveBitCount(ballot); - subgroupBallotFindLSB(ballot); - subgroupBallotFindMSB(ballot); -} - -#extension GL_KHR_shader_subgroup_vote: enable -void vote_works(vec4 f4) -{ - subgroupAll(true); - subgroupAny(false); - subgroupAllEqual(f4); -} - -#extension GL_KHR_shader_subgroup_shuffle: enable -#extension GL_KHR_shader_subgroup_shuffle_relative: enable -void shuffle_works(vec4 f4) -{ - subgroupShuffle(f4, 0); - subgroupShuffleXor(f4, 0x1); - subgroupShuffleUp(f4, 1); - subgroupShuffleDown(f4, 1); -} - -#extension GL_KHR_shader_subgroup_arithmetic: enable -void arith_works(vec4 f4) -{ - uvec4 ballot; - subgroupAdd(f4); - subgroupMul(f4); - subgroupMin(f4); - subgroupMax(f4); - subgroupAnd(ballot); - subgroupOr(ballot); - subgroupXor(ballot); - subgroupInclusiveAdd(f4); - subgroupInclusiveMul(f4); - subgroupInclusiveMin(f4); - subgroupInclusiveMax(f4); - subgroupInclusiveAnd(ballot); - subgroupInclusiveOr(ballot); - subgroupInclusiveXor(ballot); - subgroupExclusiveAdd(f4); - subgroupExclusiveMul(f4); - subgroupExclusiveMin(f4); - subgroupExclusiveMax(f4); - subgroupExclusiveAnd(ballot); - subgroupExclusiveOr(ballot); - subgroupExclusiveXor(ballot); -} - -#extension GL_KHR_shader_subgroup_clustered: enable -void clustered_works(vec4 f4) -{ - uvec4 ballot = uvec4(0x55,0,0,0); - subgroupClusteredAdd(f4, 2); - subgroupClusteredMul(f4, 2); - subgroupClusteredMin(f4, 2); - subgroupClusteredMax(f4, 2); - subgroupClusteredAnd(ballot, 2); - subgroupClusteredOr(ballot, 2); - subgroupClusteredXor(ballot, 2); -} - -#extension GL_KHR_shader_subgroup_quad: enable -void quad_works(vec4 f4) -{ - subgroupQuadBroadcast(f4, 0); - subgroupQuadSwapHorizontal(f4); - subgroupQuadSwapVertical(f4); - subgroupQuadSwapDiagonal(f4); -} - -#extension GL_NV_shader_subgroup_partitioned: enable -void partitioned_works(vec4 f4) -{ - uvec4 parti = subgroupPartitionNV(f4); - uvec4 ballot = uvec4(0x55,0,0,0); - subgroupPartitionedAddNV(f4, parti); - subgroupPartitionedMulNV(f4, parti); - subgroupPartitionedMinNV(f4, parti); - subgroupPartitionedMaxNV(f4, parti); - subgroupPartitionedAndNV(ballot, parti); - subgroupPartitionedOrNV(ballot, parti); - subgroupPartitionedXorNV(ballot, parti); - subgroupPartitionedInclusiveAddNV(f4, parti); - subgroupPartitionedInclusiveMulNV(f4, parti); - subgroupPartitionedInclusiveMinNV(f4, parti); - subgroupPartitionedInclusiveMaxNV(f4, parti); - subgroupPartitionedInclusiveAndNV(ballot, parti); - subgroupPartitionedInclusiveOrNV(ballot, parti); - subgroupPartitionedInclusiveXorNV(ballot, parti); - subgroupPartitionedExclusiveAddNV(f4, parti); - subgroupPartitionedExclusiveMulNV(f4, parti); - subgroupPartitionedExclusiveMinNV(f4, parti); - subgroupPartitionedExclusiveMaxNV(f4, parti); - subgroupPartitionedExclusiveAndNV(ballot, parti); - subgroupPartitionedExclusiveOrNV(ballot, parti); - subgroupPartitionedExclusiveXorNV(ballot, parti); -} - -// tests for NV_shader_sm_builtins -void sm_builtins_err() -{ - gl_WarpsPerSMNV; // ERROR, no extension - gl_SMCountNV; // ERROR, no extension - gl_WarpIDNV; // ERROR, no extension - gl_SMIDNV; // ERROR, no extension -} - -#ifdef GL_NV_shader_sm_builtins -#extension GL_NV_shader_sm_builtins : enable -#endif - -void sm_builtins() -{ - gl_WarpsPerSMNV; - gl_SMCountNV; - gl_WarpIDNV; - gl_SMIDNV; -} diff --git a/deps/glslang/Test/glsl.autosampledtextures.frag b/deps/glslang/Test/glsl.autosampledtextures.frag deleted file mode 100644 index db4e68e3..00000000 --- a/deps/glslang/Test/glsl.autosampledtextures.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 460 - -layout (location = 0) in vec2 in_UV; - -layout (set=0, binding=0) uniform texture2D u_Tex; -layout (set=0, binding=0) uniform sampler u_Sampler; - -layout (location = 0) out vec4 out_Color; - -void main() { - vec4 color = texture(sampler2D(u_Tex, u_Sampler), in_UV); - out_Color = color; -} diff --git a/deps/glslang/Test/glsl.entryPointRename.vert b/deps/glslang/Test/glsl.entryPointRename.vert deleted file mode 100644 index 7fc6b7a1..00000000 --- a/deps/glslang/Test/glsl.entryPointRename.vert +++ /dev/null @@ -1,11 +0,0 @@ -#version 460 - -void bar() -{ - gl_Position = vec4(1); -} - -void main() -{ - gl_Position = vec4(1); -} diff --git a/deps/glslang/Test/glsl.entryPointRename2.vert b/deps/glslang/Test/glsl.entryPointRename2.vert deleted file mode 100644 index 0473e9bc..00000000 --- a/deps/glslang/Test/glsl.entryPointRename2.vert +++ /dev/null @@ -1,6 +0,0 @@ -#version 460 - -void bar() -{ - gl_Position = vec4(1); -} diff --git a/deps/glslang/Test/glsl.es300.layoutOffset.error.vert b/deps/glslang/Test/glsl.es300.layoutOffset.error.vert deleted file mode 100644 index c966f94b..00000000 --- a/deps/glslang/Test/glsl.es300.layoutOffset.error.vert +++ /dev/null @@ -1,14 +0,0 @@ -#version 300 es - -layout (binding = 0, offset = 0) uniform UBO // offset can't use on under version es 300 -{ - vec4 a; -}; - -in vec4 in_vs; -out vec4 out_vs; - -void main() -{ - out_vs = in_vs + a; -} diff --git a/deps/glslang/Test/glsl.es320.subgroup.frag b/deps/glslang/Test/glsl.es320.subgroup.frag deleted file mode 100644 index baf59fb1..00000000 --- a/deps/glslang/Test/glsl.es320.subgroup.frag +++ /dev/null @@ -1,7 +0,0 @@ -#version 320 es -#extension GL_KHR_shader_subgroup_basic: enable -layout(location = 0) out uvec4 data; -void main (void) -{ - data = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0); -} diff --git a/deps/glslang/Test/glsl.es320.subgroup.geom b/deps/glslang/Test/glsl.es320.subgroup.geom deleted file mode 100644 index d0715100..00000000 --- a/deps/glslang/Test/glsl.es320.subgroup.geom +++ /dev/null @@ -1,13 +0,0 @@ -#version 320 es -#extension GL_KHR_shader_subgroup_basic: enable -layout(points) in; -layout(points, max_vertices = 1) out; -layout(set = 0, binding = 0, std430) buffer Output -{ - uvec4 result[]; -}; - -void main (void) -{ - result[gl_PrimitiveIDIn] = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0); -} diff --git a/deps/glslang/Test/glsl.es320.subgroup.tesc b/deps/glslang/Test/glsl.es320.subgroup.tesc deleted file mode 100644 index c356d7ff..00000000 --- a/deps/glslang/Test/glsl.es320.subgroup.tesc +++ /dev/null @@ -1,12 +0,0 @@ -#version 320 es -#extension GL_KHR_shader_subgroup_basic: enable -layout(vertices=1) out; -layout(set = 0, binding = 0, std430) buffer Output -{ - uvec4 result[]; -}; - -void main (void) -{ - result[gl_PrimitiveID] = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0); -} diff --git a/deps/glslang/Test/glsl.es320.subgroup.tese b/deps/glslang/Test/glsl.es320.subgroup.tese deleted file mode 100644 index 29a9748b..00000000 --- a/deps/glslang/Test/glsl.es320.subgroup.tese +++ /dev/null @@ -1,12 +0,0 @@ -#version 320 es -#extension GL_KHR_shader_subgroup_basic: enable -layout(isolines) in; -layout(set = 0, binding = 0, std430) buffer Output -{ - uvec4 result[]; -}; - -void main (void) -{ - result[gl_PrimitiveID] = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0); -} diff --git a/deps/glslang/Test/glsl.es320.subgroup.vert b/deps/glslang/Test/glsl.es320.subgroup.vert deleted file mode 100644 index 3d8bd9a8..00000000 --- a/deps/glslang/Test/glsl.es320.subgroup.vert +++ /dev/null @@ -1,11 +0,0 @@ -#version 320 es -#extension GL_KHR_shader_subgroup_basic: enable -layout(set = 0, binding = 0, std430) buffer Output -{ - uvec4 result[]; -}; - -void main (void) -{ - result[gl_VertexID] = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0); -} diff --git a/deps/glslang/Test/glsl.es320.subgroupArithmetic.comp b/deps/glslang/Test/glsl.es320.subgroupArithmetic.comp deleted file mode 100644 index 4db7db35..00000000 --- a/deps/glslang/Test/glsl.es320.subgroupArithmetic.comp +++ /dev/null @@ -1,332 +0,0 @@ -#version 320 es - -#extension GL_KHR_shader_subgroup_arithmetic: enable - -layout (local_size_x = 8) in; - -layout(binding = 0) buffer Buffers -{ - vec4 f4; - ivec4 i4; - uvec4 u4; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4u; - - data[0].f4.x = subgroupAdd(data[0].f4.x); - data[0].f4.xy = subgroupAdd(data[1].f4.xy); - data[0].f4.xyz = subgroupAdd(data[2].f4.xyz); - data[0].f4 = subgroupAdd(data[3].f4); - - data[1].i4.x = subgroupAdd(data[0].i4.x); - data[1].i4.xy = subgroupAdd(data[1].i4.xy); - data[1].i4.xyz = subgroupAdd(data[2].i4.xyz); - data[1].i4 = subgroupAdd(data[3].i4); - - data[2].u4.x = subgroupAdd(data[0].u4.x); - data[2].u4.xy = subgroupAdd(data[1].u4.xy); - data[2].u4.xyz = subgroupAdd(data[2].u4.xyz); - data[2].u4 = subgroupAdd(data[3].u4); - - data[3].f4.x = subgroupMul(data[0].f4.x); - data[3].f4.xy = subgroupMul(data[1].f4.xy); - data[3].f4.xyz = subgroupMul(data[2].f4.xyz); - data[3].f4 = subgroupMul(data[3].f4); - - data[0].i4.x = subgroupMul(data[0].i4.x); - data[0].i4.xy = subgroupMul(data[1].i4.xy); - data[0].i4.xyz = subgroupMul(data[2].i4.xyz); - data[0].i4 = subgroupMul(data[3].i4); - - data[1].u4.x = subgroupMul(data[0].u4.x); - data[1].u4.xy = subgroupMul(data[1].u4.xy); - data[1].u4.xyz = subgroupMul(data[2].u4.xyz); - data[1].u4 = subgroupMul(data[3].u4); - - data[2].f4.x = subgroupMin(data[0].f4.x); - data[2].f4.xy = subgroupMin(data[1].f4.xy); - data[2].f4.xyz = subgroupMin(data[2].f4.xyz); - data[2].f4 = subgroupMin(data[3].f4); - - data[3].i4.x = subgroupMin(data[0].i4.x); - data[3].i4.xy = subgroupMin(data[1].i4.xy); - data[3].i4.xyz = subgroupMin(data[2].i4.xyz); - data[3].i4 = subgroupMin(data[3].i4); - - data[0].u4.x = subgroupMin(data[0].u4.x); - data[0].u4.xy = subgroupMin(data[1].u4.xy); - data[0].u4.xyz = subgroupMin(data[2].u4.xyz); - data[0].u4 = subgroupMin(data[3].u4); - - data[1].f4.x = subgroupMax(data[0].f4.x); - data[1].f4.xy = subgroupMax(data[1].f4.xy); - data[1].f4.xyz = subgroupMax(data[2].f4.xyz); - data[1].f4 = subgroupMax(data[3].f4); - - data[2].i4.x = subgroupMax(data[0].i4.x); - data[2].i4.xy = subgroupMax(data[1].i4.xy); - data[2].i4.xyz = subgroupMax(data[2].i4.xyz); - data[2].i4 = subgroupMax(data[3].i4); - - data[3].u4.x = subgroupMax(data[0].u4.x); - data[3].u4.xy = subgroupMax(data[1].u4.xy); - data[3].u4.xyz = subgroupMax(data[2].u4.xyz); - data[3].u4 = subgroupMax(data[3].u4); - - data[0].i4.x = subgroupAnd(data[0].i4.x); - data[0].i4.xy = subgroupAnd(data[1].i4.xy); - data[0].i4.xyz = subgroupAnd(data[2].i4.xyz); - data[0].i4 = subgroupAnd(data[3].i4); - - data[1].u4.x = subgroupAnd(data[0].u4.x); - data[1].u4.xy = subgroupAnd(data[1].u4.xy); - data[1].u4.xyz = subgroupAnd(data[2].u4.xyz); - data[1].u4 = subgroupAnd(data[3].u4); - - data[2].i4.x = int(subgroupAnd(data[0].i4.x < 0)); - data[2].i4.xy = ivec2(subgroupAnd(lessThan(data[1].i4.xy, ivec2(0)))); - data[2].i4.xyz = ivec3(subgroupAnd(lessThan(data[1].i4.xyz, ivec3(0)))); - data[2].i4 = ivec4(subgroupAnd(lessThan(data[1].i4, ivec4(0)))); - - data[3].i4.x = subgroupOr(data[0].i4.x); - data[3].i4.xy = subgroupOr(data[1].i4.xy); - data[3].i4.xyz = subgroupOr(data[2].i4.xyz); - data[3].i4 = subgroupOr(data[3].i4); - - data[0].u4.x = subgroupOr(data[0].u4.x); - data[0].u4.xy = subgroupOr(data[1].u4.xy); - data[0].u4.xyz = subgroupOr(data[2].u4.xyz); - data[0].u4 = subgroupOr(data[3].u4); - - data[1].i4.x = int(subgroupOr(data[0].i4.x < 0)); - data[1].i4.xy = ivec2(subgroupOr(lessThan(data[1].i4.xy, ivec2(0)))); - data[1].i4.xyz = ivec3(subgroupOr(lessThan(data[1].i4.xyz, ivec3(0)))); - data[1].i4 = ivec4(subgroupOr(lessThan(data[1].i4, ivec4(0)))); - - data[2].i4.x = subgroupXor(data[0].i4.x); - data[2].i4.xy = subgroupXor(data[1].i4.xy); - data[2].i4.xyz = subgroupXor(data[2].i4.xyz); - data[2].i4 = subgroupXor(data[3].i4); - - data[3].u4.x = subgroupXor(data[0].u4.x); - data[3].u4.xy = subgroupXor(data[1].u4.xy); - data[3].u4.xyz = subgroupXor(data[2].u4.xyz); - data[3].u4 = subgroupXor(data[3].u4); - - data[0].i4.x = int(subgroupXor(data[0].i4.x < 0)); - data[0].i4.xy = ivec2(subgroupXor(lessThan(data[1].i4.xy, ivec2(0)))); - data[0].i4.xyz = ivec3(subgroupXor(lessThan(data[1].i4.xyz, ivec3(0)))); - data[0].i4 = ivec4(subgroupXor(lessThan(data[1].i4, ivec4(0)))); - - data[1].f4.x = subgroupInclusiveAdd(data[0].f4.x); - data[1].f4.xy = subgroupInclusiveAdd(data[1].f4.xy); - data[1].f4.xyz = subgroupInclusiveAdd(data[2].f4.xyz); - data[1].f4 = subgroupInclusiveAdd(data[3].f4); - - data[2].i4.x = subgroupInclusiveAdd(data[0].i4.x); - data[2].i4.xy = subgroupInclusiveAdd(data[1].i4.xy); - data[2].i4.xyz = subgroupInclusiveAdd(data[2].i4.xyz); - data[2].i4 = subgroupInclusiveAdd(data[3].i4); - - data[3].u4.x = subgroupInclusiveAdd(data[0].u4.x); - data[3].u4.xy = subgroupInclusiveAdd(data[1].u4.xy); - data[3].u4.xyz = subgroupInclusiveAdd(data[2].u4.xyz); - data[3].u4 = subgroupInclusiveAdd(data[3].u4); - - data[0].f4.x = subgroupInclusiveMul(data[0].f4.x); - data[0].f4.xy = subgroupInclusiveMul(data[1].f4.xy); - data[0].f4.xyz = subgroupInclusiveMul(data[2].f4.xyz); - data[0].f4 = subgroupInclusiveMul(data[3].f4); - - data[1].i4.x = subgroupInclusiveMul(data[0].i4.x); - data[1].i4.xy = subgroupInclusiveMul(data[1].i4.xy); - data[1].i4.xyz = subgroupInclusiveMul(data[2].i4.xyz); - data[1].i4 = subgroupInclusiveMul(data[3].i4); - - data[2].u4.x = subgroupInclusiveMul(data[0].u4.x); - data[2].u4.xy = subgroupInclusiveMul(data[1].u4.xy); - data[2].u4.xyz = subgroupInclusiveMul(data[2].u4.xyz); - data[2].u4 = subgroupInclusiveMul(data[3].u4); - - data[3].f4.x = subgroupInclusiveMin(data[0].f4.x); - data[3].f4.xy = subgroupInclusiveMin(data[1].f4.xy); - data[3].f4.xyz = subgroupInclusiveMin(data[2].f4.xyz); - data[3].f4 = subgroupInclusiveMin(data[3].f4); - - data[0].i4.x = subgroupInclusiveMin(data[0].i4.x); - data[0].i4.xy = subgroupInclusiveMin(data[1].i4.xy); - data[0].i4.xyz = subgroupInclusiveMin(data[2].i4.xyz); - data[0].i4 = subgroupInclusiveMin(data[3].i4); - - data[1].u4.x = subgroupInclusiveMin(data[0].u4.x); - data[1].u4.xy = subgroupInclusiveMin(data[1].u4.xy); - data[1].u4.xyz = subgroupInclusiveMin(data[2].u4.xyz); - data[1].u4 = subgroupInclusiveMin(data[3].u4); - - data[2].f4.x = subgroupInclusiveMax(data[0].f4.x); - data[2].f4.xy = subgroupInclusiveMax(data[1].f4.xy); - data[2].f4.xyz = subgroupInclusiveMax(data[2].f4.xyz); - data[2].f4 = subgroupInclusiveMax(data[3].f4); - - data[3].i4.x = subgroupInclusiveMax(data[0].i4.x); - data[3].i4.xy = subgroupInclusiveMax(data[1].i4.xy); - data[3].i4.xyz = subgroupInclusiveMax(data[2].i4.xyz); - data[3].i4 = subgroupInclusiveMax(data[3].i4); - - data[0].u4.x = subgroupInclusiveMax(data[0].u4.x); - data[0].u4.xy = subgroupInclusiveMax(data[1].u4.xy); - data[0].u4.xyz = subgroupInclusiveMax(data[2].u4.xyz); - data[0].u4 = subgroupInclusiveMax(data[3].u4); - - data[1].i4.x = subgroupInclusiveAnd(data[0].i4.x); - data[1].i4.xy = subgroupInclusiveAnd(data[1].i4.xy); - data[1].i4.xyz = subgroupInclusiveAnd(data[2].i4.xyz); - data[1].i4 = subgroupInclusiveAnd(data[3].i4); - - data[2].u4.x = subgroupInclusiveAnd(data[0].u4.x); - data[2].u4.xy = subgroupInclusiveAnd(data[1].u4.xy); - data[2].u4.xyz = subgroupInclusiveAnd(data[2].u4.xyz); - data[2].u4 = subgroupInclusiveAnd(data[3].u4); - - data[3].i4.x = int(subgroupInclusiveAnd(data[0].i4.x < 0)); - data[3].i4.xy = ivec2(subgroupInclusiveAnd(lessThan(data[1].i4.xy, ivec2(0)))); - data[3].i4.xyz = ivec3(subgroupInclusiveAnd(lessThan(data[1].i4.xyz, ivec3(0)))); - data[3].i4 = ivec4(subgroupInclusiveAnd(lessThan(data[1].i4, ivec4(0)))); - - data[0].i4.x = subgroupInclusiveOr(data[0].i4.x); - data[0].i4.xy = subgroupInclusiveOr(data[1].i4.xy); - data[0].i4.xyz = subgroupInclusiveOr(data[2].i4.xyz); - data[0].i4 = subgroupInclusiveOr(data[3].i4); - - data[1].u4.x = subgroupInclusiveOr(data[0].u4.x); - data[1].u4.xy = subgroupInclusiveOr(data[1].u4.xy); - data[1].u4.xyz = subgroupInclusiveOr(data[2].u4.xyz); - data[1].u4 = subgroupInclusiveOr(data[3].u4); - - data[2].i4.x = int(subgroupInclusiveOr(data[0].i4.x < 0)); - data[2].i4.xy = ivec2(subgroupInclusiveOr(lessThan(data[1].i4.xy, ivec2(0)))); - data[2].i4.xyz = ivec3(subgroupInclusiveOr(lessThan(data[1].i4.xyz, ivec3(0)))); - data[2].i4 = ivec4(subgroupInclusiveOr(lessThan(data[1].i4, ivec4(0)))); - - data[3].i4.x = subgroupInclusiveXor(data[0].i4.x); - data[3].i4.xy = subgroupInclusiveXor(data[1].i4.xy); - data[3].i4.xyz = subgroupInclusiveXor(data[2].i4.xyz); - data[3].i4 = subgroupInclusiveXor(data[3].i4); - - data[0].u4.x = subgroupInclusiveXor(data[0].u4.x); - data[0].u4.xy = subgroupInclusiveXor(data[1].u4.xy); - data[0].u4.xyz = subgroupInclusiveXor(data[2].u4.xyz); - data[0].u4 = subgroupInclusiveXor(data[3].u4); - - data[1].i4.x = int(subgroupInclusiveXor(data[0].i4.x < 0)); - data[1].i4.xy = ivec2(subgroupInclusiveXor(lessThan(data[1].i4.xy, ivec2(0)))); - data[1].i4.xyz = ivec3(subgroupInclusiveXor(lessThan(data[1].i4.xyz, ivec3(0)))); - data[1].i4 = ivec4(subgroupInclusiveXor(lessThan(data[1].i4, ivec4(0)))); - - data[2].f4.x = subgroupExclusiveAdd(data[0].f4.x); - data[2].f4.xy = subgroupExclusiveAdd(data[1].f4.xy); - data[2].f4.xyz = subgroupExclusiveAdd(data[2].f4.xyz); - data[2].f4 = subgroupExclusiveAdd(data[3].f4); - - data[3].i4.x = subgroupExclusiveAdd(data[0].i4.x); - data[3].i4.xy = subgroupExclusiveAdd(data[1].i4.xy); - data[3].i4.xyz = subgroupExclusiveAdd(data[2].i4.xyz); - data[3].i4 = subgroupExclusiveAdd(data[3].i4); - - data[0].u4.x = subgroupExclusiveAdd(data[0].u4.x); - data[0].u4.xy = subgroupExclusiveAdd(data[1].u4.xy); - data[0].u4.xyz = subgroupExclusiveAdd(data[2].u4.xyz); - data[0].u4 = subgroupExclusiveAdd(data[3].u4); - - data[1].f4.x = subgroupExclusiveMul(data[0].f4.x); - data[1].f4.xy = subgroupExclusiveMul(data[1].f4.xy); - data[1].f4.xyz = subgroupExclusiveMul(data[2].f4.xyz); - data[1].f4 = subgroupExclusiveMul(data[3].f4); - - data[2].i4.x = subgroupExclusiveMul(data[0].i4.x); - data[2].i4.xy = subgroupExclusiveMul(data[1].i4.xy); - data[2].i4.xyz = subgroupExclusiveMul(data[2].i4.xyz); - data[2].i4 = subgroupExclusiveMul(data[3].i4); - - data[3].u4.x = subgroupExclusiveMul(data[0].u4.x); - data[3].u4.xy = subgroupExclusiveMul(data[1].u4.xy); - data[3].u4.xyz = subgroupExclusiveMul(data[2].u4.xyz); - data[3].u4 = subgroupExclusiveMul(data[3].u4); - - data[0].f4.x = subgroupExclusiveMin(data[0].f4.x); - data[0].f4.xy = subgroupExclusiveMin(data[1].f4.xy); - data[0].f4.xyz = subgroupExclusiveMin(data[2].f4.xyz); - data[0].f4 = subgroupExclusiveMin(data[3].f4); - - data[1].i4.x = subgroupExclusiveMin(data[0].i4.x); - data[1].i4.xy = subgroupExclusiveMin(data[1].i4.xy); - data[1].i4.xyz = subgroupExclusiveMin(data[2].i4.xyz); - data[1].i4 = subgroupExclusiveMin(data[3].i4); - - data[2].u4.x = subgroupExclusiveMin(data[0].u4.x); - data[2].u4.xy = subgroupExclusiveMin(data[1].u4.xy); - data[2].u4.xyz = subgroupExclusiveMin(data[2].u4.xyz); - data[2].u4 = subgroupExclusiveMin(data[3].u4); - - data[3].f4.x = subgroupExclusiveMax(data[0].f4.x); - data[3].f4.xy = subgroupExclusiveMax(data[1].f4.xy); - data[3].f4.xyz = subgroupExclusiveMax(data[2].f4.xyz); - data[3].f4 = subgroupExclusiveMax(data[3].f4); - - data[0].i4.x = subgroupExclusiveMax(data[0].i4.x); - data[0].i4.xy = subgroupExclusiveMax(data[1].i4.xy); - data[0].i4.xyz = subgroupExclusiveMax(data[2].i4.xyz); - data[0].i4 = subgroupExclusiveMax(data[3].i4); - - data[1].u4.x = subgroupExclusiveMax(data[0].u4.x); - data[1].u4.xy = subgroupExclusiveMax(data[1].u4.xy); - data[1].u4.xyz = subgroupExclusiveMax(data[2].u4.xyz); - data[1].u4 = subgroupExclusiveMax(data[3].u4); - - data[2].i4.x = subgroupExclusiveAnd(data[0].i4.x); - data[2].i4.xy = subgroupExclusiveAnd(data[1].i4.xy); - data[2].i4.xyz = subgroupExclusiveAnd(data[2].i4.xyz); - data[2].i4 = subgroupExclusiveAnd(data[3].i4); - - data[3].u4.x = subgroupExclusiveAnd(data[0].u4.x); - data[3].u4.xy = subgroupExclusiveAnd(data[1].u4.xy); - data[3].u4.xyz = subgroupExclusiveAnd(data[2].u4.xyz); - data[3].u4 = subgroupExclusiveAnd(data[3].u4); - - data[0].i4.x = int(subgroupExclusiveAnd(data[0].i4.x < 0)); - data[0].i4.xy = ivec2(subgroupExclusiveAnd(lessThan(data[1].i4.xy, ivec2(0)))); - data[0].i4.xyz = ivec3(subgroupExclusiveAnd(lessThan(data[1].i4.xyz, ivec3(0)))); - data[0].i4 = ivec4(subgroupExclusiveAnd(lessThan(data[1].i4, ivec4(0)))); - - data[1].i4.x = subgroupExclusiveOr(data[0].i4.x); - data[1].i4.xy = subgroupExclusiveOr(data[1].i4.xy); - data[1].i4.xyz = subgroupExclusiveOr(data[2].i4.xyz); - data[1].i4 = subgroupExclusiveOr(data[3].i4); - - data[2].u4.x = subgroupExclusiveOr(data[0].u4.x); - data[2].u4.xy = subgroupExclusiveOr(data[1].u4.xy); - data[2].u4.xyz = subgroupExclusiveOr(data[2].u4.xyz); - data[2].u4 = subgroupExclusiveOr(data[3].u4); - - data[3].i4.x = int(subgroupExclusiveOr(data[0].i4.x < 0)); - data[3].i4.xy = ivec2(subgroupExclusiveOr(lessThan(data[1].i4.xy, ivec2(0)))); - data[3].i4.xyz = ivec3(subgroupExclusiveOr(lessThan(data[1].i4.xyz, ivec3(0)))); - data[3].i4 = ivec4(subgroupExclusiveOr(lessThan(data[1].i4, ivec4(0)))); - - data[0].i4.x = subgroupExclusiveXor(data[0].i4.x); - data[0].i4.xy = subgroupExclusiveXor(data[1].i4.xy); - data[0].i4.xyz = subgroupExclusiveXor(data[2].i4.xyz); - data[0].i4 = subgroupExclusiveXor(data[3].i4); - - data[1].u4.x = subgroupExclusiveXor(data[0].u4.x); - data[1].u4.xy = subgroupExclusiveXor(data[1].u4.xy); - data[1].u4.xyz = subgroupExclusiveXor(data[2].u4.xyz); - data[1].u4 = subgroupExclusiveXor(data[3].u4); - - data[2].i4.x = int(subgroupExclusiveXor(data[0].i4.x < 0)); - data[2].i4.xy = ivec2(subgroupExclusiveXor(lessThan(data[1].i4.xy, ivec2(0)))); - data[2].i4.xyz = ivec3(subgroupExclusiveXor(lessThan(data[1].i4.xyz, ivec3(0)))); - data[2].i4 = ivec4(subgroupExclusiveXor(lessThan(data[1].i4, ivec4(0)))); -} diff --git a/deps/glslang/Test/glsl.es320.subgroupBallot.comp b/deps/glslang/Test/glsl.es320.subgroupBallot.comp deleted file mode 100644 index 1764c235..00000000 --- a/deps/glslang/Test/glsl.es320.subgroupBallot.comp +++ /dev/null @@ -1,75 +0,0 @@ -#version 320 es - -#extension GL_KHR_shader_subgroup_ballot: enable - -layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in; - -layout(binding = 0) buffer Buffers -{ - vec4 f4; - ivec4 i4; - uvec4 u4; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4u; - - uvec4 relMask = gl_SubgroupEqMask + - gl_SubgroupGeMask + - gl_SubgroupGtMask + - gl_SubgroupLeMask + - gl_SubgroupLtMask; - - uvec4 result = subgroupBallot(true); - - data[0].u4.x = subgroupBallotBitCount(result); - data[0].u4.y = subgroupBallotBitExtract(result, 0u) ? 1u : 0u; - data[0].u4.z = subgroupBallotInclusiveBitCount(result) + subgroupBallotExclusiveBitCount(result); - data[0].u4.w = subgroupBallotFindLSB(result) + subgroupBallotFindMSB(result); - - if ((relMask == result) && subgroupInverseBallot(data[0].u4)) - { - data[1].f4.x = subgroupBroadcast(data[0].f4.x, 3u); - data[1].f4.xy = subgroupBroadcast(data[1].f4.xy, 3u); - data[1].f4.xyz = subgroupBroadcast(data[2].f4.xyz, 3u); - data[1].f4 = subgroupBroadcast(data[3].f4, 3u); - - data[2].i4.x = subgroupBroadcast(data[0].i4.x, 2u); - data[2].i4.xy = subgroupBroadcast(data[1].i4.xy, 2u); - data[2].i4.xyz = subgroupBroadcast(data[2].i4.xyz, 2u); - data[2].i4 = subgroupBroadcast(data[3].i4, 2u); - - data[3].u4.x = subgroupBroadcast(data[0].u4.x, 1u); - data[3].u4.xy = subgroupBroadcast(data[1].u4.xy, 1u); - data[3].u4.xyz = subgroupBroadcast(data[2].u4.xyz, 1u); - data[3].u4 = subgroupBroadcast(data[3].u4, 1u); - - data[0].i4.x = int(subgroupBroadcast(data[0].i4.x < 0, 1u)); - data[0].i4.xy = ivec2(subgroupBroadcast(lessThan(data[1].i4.xy, ivec2(0)), 1u)); - data[0].i4.xyz = ivec3(subgroupBroadcast(lessThan(data[1].i4.xyz, ivec3(0)), 1u)); - data[0].i4 = ivec4(subgroupBroadcast(lessThan(data[1].i4, ivec4(0)), 1u)); - } - else - { - data[1].f4.x = subgroupBroadcastFirst(data[0].f4.x); - data[1].f4.xy = subgroupBroadcastFirst(data[1].f4.xy); - data[1].f4.xyz = subgroupBroadcastFirst(data[2].f4.xyz); - data[1].f4 = subgroupBroadcastFirst(data[3].f4); - - data[2].i4.x = subgroupBroadcastFirst(data[0].i4.x); - data[2].i4.xy = subgroupBroadcastFirst(data[1].i4.xy); - data[2].i4.xyz = subgroupBroadcastFirst(data[2].i4.xyz); - data[2].i4 = subgroupBroadcastFirst(data[3].i4); - - data[3].u4.x = subgroupBroadcastFirst(data[0].u4.x); - data[3].u4.xy = subgroupBroadcastFirst(data[1].u4.xy); - data[3].u4.xyz = subgroupBroadcastFirst(data[2].u4.xyz); - data[3].u4 = subgroupBroadcastFirst(data[3].u4); - - data[0].i4.x = int(subgroupBroadcastFirst(data[0].i4.x < 0)); - data[0].i4.xy = ivec2(subgroupBroadcastFirst(lessThan(data[1].i4.xy, ivec2(0)))); - data[0].i4.xyz = ivec3(subgroupBroadcastFirst(lessThan(data[1].i4.xyz, ivec3(0)))); - data[0].i4 = ivec4(subgroupBroadcastFirst(lessThan(data[1].i4, ivec4(0)))); - } -} diff --git a/deps/glslang/Test/glsl.es320.subgroupBallotNeg.comp b/deps/glslang/Test/glsl.es320.subgroupBallotNeg.comp deleted file mode 100644 index 80ee6f81..00000000 --- a/deps/glslang/Test/glsl.es320.subgroupBallotNeg.comp +++ /dev/null @@ -1,32 +0,0 @@ -#version 450 - -#extension GL_KHR_shader_subgroup_ballot: enable - -layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in; - -layout(binding = 0) buffer Buffers -{ - vec4 f4; - ivec4 i4; - uvec4 u4; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4u; - - uvec4 relMask = gl_SubgroupEqMask + - gl_SubgroupGeMask + - gl_SubgroupGtMask + - gl_SubgroupLeMask + - gl_SubgroupLtMask; - - uvec4 result = subgroupBallot(true); - - data[0].u4.x = subgroupBallotBitCount(result); - data[0].u4.y = subgroupBallotBitExtract(result, 0) ? 1u : 0u; - data[0].u4.z = subgroupBallotInclusiveBitCount(result) + subgroupBallotExclusiveBitCount(result); - data[0].u4.w = subgroupBallotFindLSB(result) + subgroupBallotFindMSB(result); - - data[1].f4.x = subgroupBroadcast(data[0].f4.x, invocation); // ERROR: not constant -} diff --git a/deps/glslang/Test/glsl.es320.subgroupBasic.comp b/deps/glslang/Test/glsl.es320.subgroupBasic.comp deleted file mode 100644 index 7dc7458c..00000000 --- a/deps/glslang/Test/glsl.es320.subgroupBasic.comp +++ /dev/null @@ -1,23 +0,0 @@ -#version 320 es - -#extension GL_KHR_shader_subgroup_basic: enable - -layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in; - -layout(binding = 0) buffer Buffer -{ - int a[]; -} data; - -void main() -{ - data.a[gl_SubgroupSize] = 1; - data.a[gl_SubgroupInvocationID] = 1; - data.a[gl_NumSubgroups] = 1; - data.a[gl_SubgroupID] = (subgroupElect()) ? 1 : 0; - subgroupBarrier(); - subgroupMemoryBarrier(); - subgroupMemoryBarrierBuffer(); - subgroupMemoryBarrierShared(); - subgroupMemoryBarrierImage(); -} diff --git a/deps/glslang/Test/glsl.es320.subgroupClustered.comp b/deps/glslang/Test/glsl.es320.subgroupClustered.comp deleted file mode 100644 index 61764e56..00000000 --- a/deps/glslang/Test/glsl.es320.subgroupClustered.comp +++ /dev/null @@ -1,122 +0,0 @@ -#version 320 es - -#extension GL_KHR_shader_subgroup_clustered: enable - -layout (local_size_x = 8) in; - -layout(binding = 0) buffer Buffers -{ - vec4 f4; - ivec4 i4; - uvec4 u4; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4u; - - data[0].f4.x = subgroupClusteredAdd(data[0].f4.x, 1u); - data[0].f4.xy = subgroupClusteredAdd(data[1].f4.xy, 1u); - data[0].f4.xyz = subgroupClusteredAdd(data[2].f4.xyz, 1u); - data[0].f4 = subgroupClusteredAdd(data[3].f4, 1u); - - data[1].i4.x = subgroupClusteredAdd(data[0].i4.x, 1u); - data[1].i4.xy = subgroupClusteredAdd(data[1].i4.xy, 1u); - data[1].i4.xyz = subgroupClusteredAdd(data[2].i4.xyz, 1u); - data[1].i4 = subgroupClusteredAdd(data[3].i4, 1u); - - data[2].u4.x = subgroupClusteredAdd(data[0].u4.x, 1u); - data[2].u4.xy = subgroupClusteredAdd(data[1].u4.xy, 1u); - data[2].u4.xyz = subgroupClusteredAdd(data[2].u4.xyz, 1u); - data[2].u4 = subgroupClusteredAdd(data[3].u4, 1u); - - data[3].f4.x = subgroupClusteredMul(data[0].f4.x, 1u); - data[3].f4.xy = subgroupClusteredMul(data[1].f4.xy, 1u); - data[3].f4.xyz = subgroupClusteredMul(data[2].f4.xyz, 1u); - data[3].f4 = subgroupClusteredMul(data[3].f4, 1u); - - data[0].i4.x = subgroupClusteredMul(data[0].i4.x, 1u); - data[0].i4.xy = subgroupClusteredMul(data[1].i4.xy, 1u); - data[0].i4.xyz = subgroupClusteredMul(data[2].i4.xyz, 1u); - data[0].i4 = subgroupClusteredMul(data[3].i4, 1u); - - data[1].u4.x = subgroupClusteredMul(data[0].u4.x, 1u); - data[1].u4.xy = subgroupClusteredMul(data[1].u4.xy, 1u); - data[1].u4.xyz = subgroupClusteredMul(data[2].u4.xyz, 1u); - data[1].u4 = subgroupClusteredMul(data[3].u4, 1u); - - data[2].f4.x = subgroupClusteredMin(data[0].f4.x, 1u); - data[2].f4.xy = subgroupClusteredMin(data[1].f4.xy, 1u); - data[2].f4.xyz = subgroupClusteredMin(data[2].f4.xyz, 1u); - data[2].f4 = subgroupClusteredMin(data[3].f4, 1u); - - data[3].i4.x = subgroupClusteredMin(data[0].i4.x, 1u); - data[3].i4.xy = subgroupClusteredMin(data[1].i4.xy, 1u); - data[3].i4.xyz = subgroupClusteredMin(data[2].i4.xyz, 1u); - data[3].i4 = subgroupClusteredMin(data[3].i4, 1u); - - data[0].u4.x = subgroupClusteredMin(data[0].u4.x, 1u); - data[0].u4.xy = subgroupClusteredMin(data[1].u4.xy, 1u); - data[0].u4.xyz = subgroupClusteredMin(data[2].u4.xyz, 1u); - data[0].u4 = subgroupClusteredMin(data[3].u4, 1u); - - data[1].f4.x = subgroupClusteredMax(data[0].f4.x, 1u); - data[1].f4.xy = subgroupClusteredMax(data[1].f4.xy, 1u); - data[1].f4.xyz = subgroupClusteredMax(data[2].f4.xyz, 1u); - data[1].f4 = subgroupClusteredMax(data[3].f4, 1u); - - data[2].i4.x = subgroupClusteredMax(data[0].i4.x, 1u); - data[2].i4.xy = subgroupClusteredMax(data[1].i4.xy, 1u); - data[2].i4.xyz = subgroupClusteredMax(data[2].i4.xyz, 1u); - data[2].i4 = subgroupClusteredMax(data[3].i4, 1u); - - data[3].u4.x = subgroupClusteredMax(data[0].u4.x, 1u); - data[3].u4.xy = subgroupClusteredMax(data[1].u4.xy, 1u); - data[3].u4.xyz = subgroupClusteredMax(data[2].u4.xyz, 1u); - data[3].u4 = subgroupClusteredMax(data[3].u4, 1u); - - data[0].i4.x = subgroupClusteredAnd(data[0].i4.x, 1u); - data[0].i4.xy = subgroupClusteredAnd(data[1].i4.xy, 1u); - data[0].i4.xyz = subgroupClusteredAnd(data[2].i4.xyz, 1u); - data[0].i4 = subgroupClusteredAnd(data[3].i4, 1u); - - data[1].u4.x = subgroupClusteredAnd(data[0].u4.x, 1u); - data[1].u4.xy = subgroupClusteredAnd(data[1].u4.xy, 1u); - data[1].u4.xyz = subgroupClusteredAnd(data[2].u4.xyz, 1u); - data[1].u4 = subgroupClusteredAnd(data[3].u4, 1u); - - data[2].i4.x = int(subgroupClusteredAnd(data[0].i4.x < 0, 1u)); - data[2].i4.xy = ivec2(subgroupClusteredAnd(lessThan(data[1].i4.xy, ivec2(0)), 1u)); - data[2].i4.xyz = ivec3(subgroupClusteredAnd(lessThan(data[1].i4.xyz, ivec3(0)), 1u)); - data[2].i4 = ivec4(subgroupClusteredAnd(lessThan(data[1].i4, ivec4(0)), 1u)); - - data[3].i4.x = subgroupClusteredOr(data[0].i4.x, 1u); - data[3].i4.xy = subgroupClusteredOr(data[1].i4.xy, 1u); - data[3].i4.xyz = subgroupClusteredOr(data[2].i4.xyz, 1u); - data[3].i4 = subgroupClusteredOr(data[3].i4, 1u); - - data[0].u4.x = subgroupClusteredOr(data[0].u4.x, 1u); - data[0].u4.xy = subgroupClusteredOr(data[1].u4.xy, 1u); - data[0].u4.xyz = subgroupClusteredOr(data[2].u4.xyz, 1u); - data[0].u4 = subgroupClusteredOr(data[3].u4, 1u); - - data[1].i4.x = int(subgroupClusteredOr(data[0].i4.x < 0, 1u)); - data[1].i4.xy = ivec2(subgroupClusteredOr(lessThan(data[1].i4.xy, ivec2(0)), 1u)); - data[1].i4.xyz = ivec3(subgroupClusteredOr(lessThan(data[1].i4.xyz, ivec3(0)), 1u)); - data[1].i4 = ivec4(subgroupClusteredOr(lessThan(data[1].i4, ivec4(0)), 1u)); - - data[2].i4.x = subgroupClusteredXor(data[0].i4.x, 1u); - data[2].i4.xy = subgroupClusteredXor(data[1].i4.xy, 1u); - data[2].i4.xyz = subgroupClusteredXor(data[2].i4.xyz, 1u); - data[2].i4 = subgroupClusteredXor(data[3].i4, 1u); - - data[3].u4.x = subgroupClusteredXor(data[0].u4.x, 1u); - data[3].u4.xy = subgroupClusteredXor(data[1].u4.xy, 1u); - data[3].u4.xyz = subgroupClusteredXor(data[2].u4.xyz, 1u); - data[3].u4 = subgroupClusteredXor(data[3].u4, 1u); - - data[0].i4.x = int(subgroupClusteredXor(data[0].i4.x < 0, 1u)); - data[0].i4.xy = ivec2(subgroupClusteredXor(lessThan(data[1].i4.xy, ivec2(0)), 1u)); - data[0].i4.xyz = ivec3(subgroupClusteredXor(lessThan(data[1].i4.xyz, ivec3(0)), 1u)); - data[0].i4 = ivec4(subgroupClusteredXor(lessThan(data[1].i4, ivec4(0)), 1u)); -} diff --git a/deps/glslang/Test/glsl.es320.subgroupClusteredNeg.comp b/deps/glslang/Test/glsl.es320.subgroupClusteredNeg.comp deleted file mode 100644 index 0eb50d82..00000000 --- a/deps/glslang/Test/glsl.es320.subgroupClusteredNeg.comp +++ /dev/null @@ -1,34 +0,0 @@ -#version 320 es - -#extension GL_KHR_shader_subgroup_clustered: enable - -layout (local_size_x = 8) in; - -layout(binding = 0) buffer Buffers -{ - vec4 f4; - ivec4 i4; - uvec4 u4; -} data[4]; - -void main() -{ - int a = 1; - const int aConst = 1; - - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4u; - - data[0].f4.xy = subgroupClusteredAdd(data[1].f4.xy, 0u); // ERROR, less than 1 - - data[0].f4.x = subgroupClusteredMul(data[0].f4.x, 3u); // ERROR, not a power of 2 - - data[1].i4.xy = subgroupClusteredMin(data[1].i4.xy, 8u); - data[1].i4.xyz = subgroupClusteredMin(data[2].i4.xyz, 6u); // ERROR, not a power of 2 - - data[3].i4.x = subgroupClusteredOr(data[0].i4.x, uint(a)); // ERROR, not constant - data[3].i4.xy = subgroupClusteredOr(data[1].i4.xy, uint(aConst)); - - data[0].i4.x = subgroupClusteredXor(data[0].i4.x, uint(1 + a)); // ERROR, not constant - data[0].i4.xy = subgroupClusteredXor(data[1].i4.xy, uint(aConst + a)); // ERROR, not constant - data[0].i4.xyz = subgroupClusteredXor(data[2].i4.xyz, uint(1 + aConst)); -} diff --git a/deps/glslang/Test/glsl.es320.subgroupPartitioned.comp b/deps/glslang/Test/glsl.es320.subgroupPartitioned.comp deleted file mode 100644 index 15f13a0e..00000000 --- a/deps/glslang/Test/glsl.es320.subgroupPartitioned.comp +++ /dev/null @@ -1,354 +0,0 @@ -#version 320 es - -#extension GL_NV_shader_subgroup_partitioned: enable - -layout (local_size_x = 8) in; - -layout(binding = 0) buffer Buffers -{ - vec4 f4; - ivec4 i4; - uvec4 u4; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4u; - - uvec4 ballot = subgroupPartitionNV(invocation); - - data[0].u4 = subgroupPartitionNV(data[0].f4.x); - data[0].u4 = subgroupPartitionNV(data[0].f4.xy); - data[0].u4 = subgroupPartitionNV(data[0].f4.xyz); - data[0].u4 = subgroupPartitionNV(data[0].f4); - - data[0].u4 = subgroupPartitionNV(data[0].i4.x); - data[0].u4 = subgroupPartitionNV(data[0].i4.xy); - data[0].u4 = subgroupPartitionNV(data[0].i4.xyz); - data[0].u4 = subgroupPartitionNV(data[0].i4); - - data[0].u4 = subgroupPartitionNV(data[0].u4.x); - data[0].u4 = subgroupPartitionNV(data[0].u4.xy); - data[0].u4 = subgroupPartitionNV(data[0].u4.xyz); - data[0].u4 = subgroupPartitionNV(data[0].u4); - - data[1].u4 = subgroupPartitionNV(bool(data[0].i4.x)); - data[1].u4 = subgroupPartitionNV(bvec2(data[0].i4.xy)); - data[1].u4 = subgroupPartitionNV(bvec3(data[0].i4.xyz)); - data[1].u4 = subgroupPartitionNV(bvec4(data[0].i4)); - - data[1].f4.x = subgroupPartitionedAddNV(data[0].f4.x, ballot); - data[1].f4.xy = subgroupPartitionedAddNV(data[1].f4.xy, ballot); - data[1].f4.xyz = subgroupPartitionedAddNV(data[2].f4.xyz, ballot); - data[1].f4 = subgroupPartitionedAddNV(data[3].f4, ballot); - - data[1].i4.x = subgroupPartitionedAddNV(data[0].i4.x, ballot); - data[1].i4.xy = subgroupPartitionedAddNV(data[1].i4.xy, ballot); - data[1].i4.xyz = subgroupPartitionedAddNV(data[2].i4.xyz, ballot); - data[1].i4 = subgroupPartitionedAddNV(data[3].i4, ballot); - - data[1].u4.x = subgroupPartitionedAddNV(data[0].u4.x, ballot); - data[1].u4.xy = subgroupPartitionedAddNV(data[1].u4.xy, ballot); - data[1].u4.xyz = subgroupPartitionedAddNV(data[2].u4.xyz, ballot); - data[1].u4 = subgroupPartitionedAddNV(data[3].u4, ballot); - - data[2].f4.x = subgroupPartitionedMulNV(data[0].f4.x, ballot); - data[2].f4.xy = subgroupPartitionedMulNV(data[1].f4.xy, ballot); - data[2].f4.xyz = subgroupPartitionedMulNV(data[2].f4.xyz, ballot); - data[2].f4 = subgroupPartitionedMulNV(data[3].f4, ballot); - - data[2].i4.x = subgroupPartitionedMulNV(data[0].i4.x, ballot); - data[2].i4.xy = subgroupPartitionedMulNV(data[1].i4.xy, ballot); - data[2].i4.xyz = subgroupPartitionedMulNV(data[2].i4.xyz, ballot); - data[2].i4 = subgroupPartitionedMulNV(data[3].i4, ballot); - - data[2].u4.x = subgroupPartitionedMulNV(data[0].u4.x, ballot); - data[2].u4.xy = subgroupPartitionedMulNV(data[1].u4.xy, ballot); - data[2].u4.xyz = subgroupPartitionedMulNV(data[2].u4.xyz, ballot); - data[2].u4 = subgroupPartitionedMulNV(data[3].u4, ballot); - - data[2].f4.x = subgroupPartitionedMinNV(data[0].f4.x, ballot); - data[2].f4.xy = subgroupPartitionedMinNV(data[1].f4.xy, ballot); - data[2].f4.xyz = subgroupPartitionedMinNV(data[2].f4.xyz, ballot); - data[2].f4 = subgroupPartitionedMinNV(data[3].f4, ballot); - - data[3].i4.x = subgroupPartitionedMinNV(data[0].i4.x, ballot); - data[3].i4.xy = subgroupPartitionedMinNV(data[1].i4.xy, ballot); - data[3].i4.xyz = subgroupPartitionedMinNV(data[2].i4.xyz, ballot); - data[3].i4 = subgroupPartitionedMinNV(data[3].i4, ballot); - - data[3].u4.x = subgroupPartitionedMinNV(data[0].u4.x, ballot); - data[3].u4.xy = subgroupPartitionedMinNV(data[1].u4.xy, ballot); - data[3].u4.xyz = subgroupPartitionedMinNV(data[2].u4.xyz, ballot); - data[3].u4 = subgroupPartitionedMinNV(data[3].u4, ballot); - - data[3].f4.x = subgroupPartitionedMaxNV(data[0].f4.x, ballot); - data[3].f4.xy = subgroupPartitionedMaxNV(data[1].f4.xy, ballot); - data[3].f4.xyz = subgroupPartitionedMaxNV(data[2].f4.xyz, ballot); - data[3].f4 = subgroupPartitionedMaxNV(data[3].f4, ballot); - - data[0].i4.x = subgroupPartitionedMaxNV(data[0].i4.x, ballot); - data[0].i4.xy = subgroupPartitionedMaxNV(data[1].i4.xy, ballot); - data[0].i4.xyz = subgroupPartitionedMaxNV(data[2].i4.xyz, ballot); - data[0].i4 = subgroupPartitionedMaxNV(data[3].i4, ballot); - - data[0].u4.x = subgroupPartitionedMaxNV(data[0].u4.x, ballot); - data[0].u4.xy = subgroupPartitionedMaxNV(data[1].u4.xy, ballot); - data[0].u4.xyz = subgroupPartitionedMaxNV(data[2].u4.xyz, ballot); - data[0].u4 = subgroupPartitionedMaxNV(data[3].u4, ballot); - - data[0].i4.x = subgroupPartitionedAndNV(data[0].i4.x, ballot); - data[0].i4.xy = subgroupPartitionedAndNV(data[1].i4.xy, ballot); - data[0].i4.xyz = subgroupPartitionedAndNV(data[2].i4.xyz, ballot); - data[0].i4 = subgroupPartitionedAndNV(data[3].i4, ballot); - - data[1].u4.x = subgroupPartitionedAndNV(data[0].u4.x, ballot); - data[1].u4.xy = subgroupPartitionedAndNV(data[1].u4.xy, ballot); - data[1].u4.xyz = subgroupPartitionedAndNV(data[2].u4.xyz, ballot); - data[1].u4 = subgroupPartitionedAndNV(data[3].u4, ballot); - - data[1].i4.x = int(subgroupPartitionedAndNV(data[0].i4.x < 0, ballot)); - data[1].i4.xy = ivec2(subgroupPartitionedAndNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); - data[1].i4.xyz = ivec3(subgroupPartitionedAndNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); - data[1].i4 = ivec4(subgroupPartitionedAndNV(lessThan(data[1].i4, ivec4(0)), ballot)); - - data[1].i4.x = subgroupPartitionedOrNV(data[0].i4.x, ballot); - data[1].i4.xy = subgroupPartitionedOrNV(data[1].i4.xy, ballot); - data[1].i4.xyz = subgroupPartitionedOrNV(data[2].i4.xyz, ballot); - data[1].i4 = subgroupPartitionedOrNV(data[3].i4, ballot); - - data[2].u4.x = subgroupPartitionedOrNV(data[0].u4.x, ballot); - data[2].u4.xy = subgroupPartitionedOrNV(data[1].u4.xy, ballot); - data[2].u4.xyz = subgroupPartitionedOrNV(data[2].u4.xyz, ballot); - data[2].u4 = subgroupPartitionedOrNV(data[3].u4, ballot); - - data[2].i4.x = int(subgroupPartitionedOrNV(data[0].i4.x < 0, ballot)); - data[2].i4.xy = ivec2(subgroupPartitionedOrNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); - data[2].i4.xyz = ivec3(subgroupPartitionedOrNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); - data[2].i4 = ivec4(subgroupPartitionedOrNV(lessThan(data[1].i4, ivec4(0)), ballot)); - - data[2].i4.x = subgroupPartitionedXorNV(data[0].i4.x, ballot); - data[2].i4.xy = subgroupPartitionedXorNV(data[1].i4.xy, ballot); - data[2].i4.xyz = subgroupPartitionedXorNV(data[2].i4.xyz, ballot); - data[2].i4 = subgroupPartitionedXorNV(data[3].i4, ballot); - - data[2].u4.x = subgroupPartitionedXorNV(data[0].u4.x, ballot); - data[2].u4.xy = subgroupPartitionedXorNV(data[1].u4.xy, ballot); - data[2].u4.xyz = subgroupPartitionedXorNV(data[2].u4.xyz, ballot); - data[2].u4 = subgroupPartitionedXorNV(data[3].u4, ballot); - - data[3].i4.x = int(subgroupPartitionedXorNV(data[0].i4.x < 0, ballot)); - data[3].i4.xy = ivec2(subgroupPartitionedXorNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); - data[3].i4.xyz = ivec3(subgroupPartitionedXorNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); - data[3].i4 = ivec4(subgroupPartitionedXorNV(lessThan(data[1].i4, ivec4(0)), ballot)); - - data[3].f4.x = subgroupPartitionedInclusiveAddNV(data[0].f4.x, ballot); - data[3].f4.xy = subgroupPartitionedInclusiveAddNV(data[1].f4.xy, ballot); - data[3].f4.xyz = subgroupPartitionedInclusiveAddNV(data[2].f4.xyz, ballot); - data[3].f4 = subgroupPartitionedInclusiveAddNV(data[3].f4, ballot); - - data[3].i4.x = subgroupPartitionedInclusiveAddNV(data[0].i4.x, ballot); - data[3].i4.xy = subgroupPartitionedInclusiveAddNV(data[1].i4.xy, ballot); - data[3].i4.xyz = subgroupPartitionedInclusiveAddNV(data[2].i4.xyz, ballot); - data[3].i4 = subgroupPartitionedInclusiveAddNV(data[3].i4, ballot); - - data[3].u4.x = subgroupPartitionedInclusiveAddNV(data[0].u4.x, ballot); - data[3].u4.xy = subgroupPartitionedInclusiveAddNV(data[1].u4.xy, ballot); - data[3].u4.xyz = subgroupPartitionedInclusiveAddNV(data[2].u4.xyz, ballot); - data[3].u4 = subgroupPartitionedInclusiveAddNV(data[3].u4, ballot); - - data[3].f4.x = subgroupPartitionedInclusiveMulNV(data[0].f4.x, ballot); - data[3].f4.xy = subgroupPartitionedInclusiveMulNV(data[1].f4.xy, ballot); - data[3].f4.xyz = subgroupPartitionedInclusiveMulNV(data[2].f4.xyz, ballot); - data[3].f4 = subgroupPartitionedInclusiveMulNV(data[3].f4, ballot); - - data[3].i4.x = subgroupPartitionedInclusiveMulNV(data[0].i4.x, ballot); - data[3].i4.xy = subgroupPartitionedInclusiveMulNV(data[1].i4.xy, ballot); - data[3].i4.xyz = subgroupPartitionedInclusiveMulNV(data[2].i4.xyz, ballot); - data[3].i4 = subgroupPartitionedInclusiveMulNV(data[3].i4, ballot); - - data[0].u4.x = subgroupPartitionedInclusiveMulNV(data[0].u4.x, ballot); - data[0].u4.xy = subgroupPartitionedInclusiveMulNV(data[1].u4.xy, ballot); - data[0].u4.xyz = subgroupPartitionedInclusiveMulNV(data[2].u4.xyz, ballot); - data[0].u4 = subgroupPartitionedInclusiveMulNV(data[3].u4, ballot); - - data[0].f4.x = subgroupPartitionedInclusiveMinNV(data[0].f4.x, ballot); - data[0].f4.xy = subgroupPartitionedInclusiveMinNV(data[1].f4.xy, ballot); - data[0].f4.xyz = subgroupPartitionedInclusiveMinNV(data[2].f4.xyz, ballot); - data[0].f4 = subgroupPartitionedInclusiveMinNV(data[3].f4, ballot); - - data[0].i4.x = subgroupPartitionedInclusiveMinNV(data[0].i4.x, ballot); - data[0].i4.xy = subgroupPartitionedInclusiveMinNV(data[1].i4.xy, ballot); - data[0].i4.xyz = subgroupPartitionedInclusiveMinNV(data[2].i4.xyz, ballot); - data[0].i4 = subgroupPartitionedInclusiveMinNV(data[3].i4, ballot); - - data[0].u4.x = subgroupPartitionedInclusiveMinNV(data[0].u4.x, ballot); - data[0].u4.xy = subgroupPartitionedInclusiveMinNV(data[1].u4.xy, ballot); - data[0].u4.xyz = subgroupPartitionedInclusiveMinNV(data[2].u4.xyz, ballot); - data[0].u4 = subgroupPartitionedInclusiveMinNV(data[3].u4, ballot); - - data[1].f4.x = subgroupPartitionedInclusiveMaxNV(data[0].f4.x, ballot); - data[1].f4.xy = subgroupPartitionedInclusiveMaxNV(data[1].f4.xy, ballot); - data[1].f4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].f4.xyz, ballot); - data[1].f4 = subgroupPartitionedInclusiveMaxNV(data[3].f4, ballot); - - data[1].i4.x = subgroupPartitionedInclusiveMaxNV(data[0].i4.x, ballot); - data[1].i4.xy = subgroupPartitionedInclusiveMaxNV(data[1].i4.xy, ballot); - data[1].i4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].i4.xyz, ballot); - data[1].i4 = subgroupPartitionedInclusiveMaxNV(data[3].i4, ballot); - - data[1].u4.x = subgroupPartitionedInclusiveMaxNV(data[0].u4.x, ballot); - data[1].u4.xy = subgroupPartitionedInclusiveMaxNV(data[1].u4.xy, ballot); - data[1].u4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].u4.xyz, ballot); - data[1].u4 = subgroupPartitionedInclusiveMaxNV(data[3].u4, ballot); - - data[1].i4.x = subgroupPartitionedInclusiveAndNV(data[0].i4.x, ballot); - data[1].i4.xy = subgroupPartitionedInclusiveAndNV(data[1].i4.xy, ballot); - data[1].i4.xyz = subgroupPartitionedInclusiveAndNV(data[2].i4.xyz, ballot); - data[1].i4 = subgroupPartitionedInclusiveAndNV(data[3].i4, ballot); - - data[2].u4.x = subgroupPartitionedInclusiveAndNV(data[0].u4.x, ballot); - data[2].u4.xy = subgroupPartitionedInclusiveAndNV(data[1].u4.xy, ballot); - data[2].u4.xyz = subgroupPartitionedInclusiveAndNV(data[2].u4.xyz, ballot); - data[2].u4 = subgroupPartitionedInclusiveAndNV(data[3].u4, ballot); - - data[2].i4.x = int(subgroupPartitionedInclusiveAndNV(data[0].i4.x < 0, ballot)); - data[2].i4.xy = ivec2(subgroupPartitionedInclusiveAndNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); - data[2].i4.xyz = ivec3(subgroupPartitionedInclusiveAndNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); - data[2].i4 = ivec4(subgroupPartitionedInclusiveAndNV(lessThan(data[1].i4, ivec4(0)), ballot)); - - data[2].i4.x = subgroupPartitionedInclusiveOrNV(data[0].i4.x, ballot); - data[2].i4.xy = subgroupPartitionedInclusiveOrNV(data[1].i4.xy, ballot); - data[2].i4.xyz = subgroupPartitionedInclusiveOrNV(data[2].i4.xyz, ballot); - data[2].i4 = subgroupPartitionedInclusiveOrNV(data[3].i4, ballot); - - data[2].u4.x = subgroupPartitionedInclusiveOrNV(data[0].u4.x, ballot); - data[2].u4.xy = subgroupPartitionedInclusiveOrNV(data[1].u4.xy, ballot); - data[2].u4.xyz = subgroupPartitionedInclusiveOrNV(data[2].u4.xyz, ballot); - data[2].u4 = subgroupPartitionedInclusiveOrNV(data[3].u4, ballot); - - data[3].i4.x = int(subgroupPartitionedInclusiveOrNV(data[0].i4.x < 0, ballot)); - data[3].i4.xy = ivec2(subgroupPartitionedInclusiveOrNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); - data[3].i4.xyz = ivec3(subgroupPartitionedInclusiveOrNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); - data[3].i4 = ivec4(subgroupPartitionedInclusiveOrNV(lessThan(data[1].i4, ivec4(0)), ballot)); - - data[3].i4.x = subgroupPartitionedInclusiveXorNV(data[0].i4.x, ballot); - data[3].i4.xy = subgroupPartitionedInclusiveXorNV(data[1].i4.xy, ballot); - data[3].i4.xyz = subgroupPartitionedInclusiveXorNV(data[2].i4.xyz, ballot); - data[3].i4 = subgroupPartitionedInclusiveXorNV(data[3].i4, ballot); - - data[3].u4.x = subgroupPartitionedInclusiveXorNV(data[0].u4.x, ballot); - data[3].u4.xy = subgroupPartitionedInclusiveXorNV(data[1].u4.xy, ballot); - data[3].u4.xyz = subgroupPartitionedInclusiveXorNV(data[2].u4.xyz, ballot); - data[3].u4 = subgroupPartitionedInclusiveXorNV(data[3].u4, ballot); - - data[3].i4.x = int(subgroupPartitionedInclusiveXorNV(data[0].i4.x < 0, ballot)); - data[3].i4.xy = ivec2(subgroupPartitionedInclusiveXorNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); - data[3].i4.xyz = ivec3(subgroupPartitionedInclusiveXorNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); - data[3].i4 = ivec4(subgroupPartitionedInclusiveXorNV(lessThan(data[1].i4, ivec4(0)), ballot)); - - data[0].f4.x = subgroupPartitionedExclusiveAddNV(data[0].f4.x, ballot); - data[0].f4.xy = subgroupPartitionedExclusiveAddNV(data[1].f4.xy, ballot); - data[0].f4.xyz = subgroupPartitionedExclusiveAddNV(data[2].f4.xyz, ballot); - data[0].f4 = subgroupPartitionedExclusiveAddNV(data[3].f4, ballot); - - data[0].i4.x = subgroupPartitionedExclusiveAddNV(data[0].i4.x, ballot); - data[0].i4.xy = subgroupPartitionedExclusiveAddNV(data[1].i4.xy, ballot); - data[0].i4.xyz = subgroupPartitionedExclusiveAddNV(data[2].i4.xyz, ballot); - data[0].i4 = subgroupPartitionedExclusiveAddNV(data[3].i4, ballot); - - data[0].u4.x = subgroupPartitionedExclusiveAddNV(data[0].u4.x, ballot); - data[0].u4.xy = subgroupPartitionedExclusiveAddNV(data[1].u4.xy, ballot); - data[0].u4.xyz = subgroupPartitionedExclusiveAddNV(data[2].u4.xyz, ballot); - data[0].u4 = subgroupPartitionedExclusiveAddNV(data[3].u4, ballot); - - data[0].f4.x = subgroupPartitionedExclusiveMulNV(data[0].f4.x, ballot); - data[0].f4.xy = subgroupPartitionedExclusiveMulNV(data[1].f4.xy, ballot); - data[0].f4.xyz = subgroupPartitionedExclusiveMulNV(data[2].f4.xyz, ballot); - data[0].f4 = subgroupPartitionedExclusiveMulNV(data[3].f4, ballot); - - data[1].i4.x = subgroupPartitionedExclusiveMulNV(data[0].i4.x, ballot); - data[1].i4.xy = subgroupPartitionedExclusiveMulNV(data[1].i4.xy, ballot); - data[1].i4.xyz = subgroupPartitionedExclusiveMulNV(data[2].i4.xyz, ballot); - data[1].i4 = subgroupPartitionedExclusiveMulNV(data[3].i4, ballot); - - data[1].u4.x = subgroupPartitionedExclusiveMulNV(data[0].u4.x, ballot); - data[1].u4.xy = subgroupPartitionedExclusiveMulNV(data[1].u4.xy, ballot); - data[1].u4.xyz = subgroupPartitionedExclusiveMulNV(data[2].u4.xyz, ballot); - data[1].u4 = subgroupPartitionedExclusiveMulNV(data[3].u4, ballot); - - data[1].f4.x = subgroupPartitionedExclusiveMinNV(data[0].f4.x, ballot); - data[1].f4.xy = subgroupPartitionedExclusiveMinNV(data[1].f4.xy, ballot); - data[1].f4.xyz = subgroupPartitionedExclusiveMinNV(data[2].f4.xyz, ballot); - data[1].f4 = subgroupPartitionedExclusiveMinNV(data[3].f4, ballot); - - data[1].i4.x = subgroupPartitionedExclusiveMinNV(data[0].i4.x, ballot); - data[1].i4.xy = subgroupPartitionedExclusiveMinNV(data[1].i4.xy, ballot); - data[1].i4.xyz = subgroupPartitionedExclusiveMinNV(data[2].i4.xyz, ballot); - data[1].i4 = subgroupPartitionedExclusiveMinNV(data[3].i4, ballot); - - data[2].u4.x = subgroupPartitionedExclusiveMinNV(data[0].u4.x, ballot); - data[2].u4.xy = subgroupPartitionedExclusiveMinNV(data[1].u4.xy, ballot); - data[2].u4.xyz = subgroupPartitionedExclusiveMinNV(data[2].u4.xyz, ballot); - data[2].u4 = subgroupPartitionedExclusiveMinNV(data[3].u4, ballot); - - data[2].f4.x = subgroupPartitionedExclusiveMaxNV(data[0].f4.x, ballot); - data[2].f4.xy = subgroupPartitionedExclusiveMaxNV(data[1].f4.xy, ballot); - data[2].f4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].f4.xyz, ballot); - data[2].f4 = subgroupPartitionedExclusiveMaxNV(data[3].f4, ballot); - - data[2].i4.x = subgroupPartitionedExclusiveMaxNV(data[0].i4.x, ballot); - data[2].i4.xy = subgroupPartitionedExclusiveMaxNV(data[1].i4.xy, ballot); - data[2].i4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].i4.xyz, ballot); - data[2].i4 = subgroupPartitionedExclusiveMaxNV(data[3].i4, ballot); - - data[2].u4.x = subgroupPartitionedExclusiveMaxNV(data[0].u4.x, ballot); - data[2].u4.xy = subgroupPartitionedExclusiveMaxNV(data[1].u4.xy, ballot); - data[2].u4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].u4.xyz, ballot); - data[2].u4 = subgroupPartitionedExclusiveMaxNV(data[3].u4, ballot); - - data[2].i4.x = subgroupPartitionedExclusiveAndNV(data[0].i4.x, ballot); - data[2].i4.xy = subgroupPartitionedExclusiveAndNV(data[1].i4.xy, ballot); - data[2].i4.xyz = subgroupPartitionedExclusiveAndNV(data[2].i4.xyz, ballot); - data[2].i4 = subgroupPartitionedExclusiveAndNV(data[3].i4, ballot); - - data[2].u4.x = subgroupPartitionedExclusiveAndNV(data[0].u4.x, ballot); - data[2].u4.xy = subgroupPartitionedExclusiveAndNV(data[1].u4.xy, ballot); - data[2].u4.xyz = subgroupPartitionedExclusiveAndNV(data[2].u4.xyz, ballot); - data[2].u4 = subgroupPartitionedExclusiveAndNV(data[3].u4, ballot); - - data[3].i4.x = int(subgroupPartitionedExclusiveAndNV(data[0].i4.x < 0, ballot)); - data[3].i4.xy = ivec2(subgroupPartitionedExclusiveAndNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); - data[3].i4.xyz = ivec3(subgroupPartitionedExclusiveAndNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); - data[3].i4 = ivec4(subgroupPartitionedExclusiveAndNV(lessThan(data[1].i4, ivec4(0)), ballot)); - - data[3].i4.x = subgroupPartitionedExclusiveOrNV(data[0].i4.x, ballot); - data[3].i4.xy = subgroupPartitionedExclusiveOrNV(data[1].i4.xy, ballot); - data[3].i4.xyz = subgroupPartitionedExclusiveOrNV(data[2].i4.xyz, ballot); - data[3].i4 = subgroupPartitionedExclusiveOrNV(data[3].i4, ballot); - - data[3].u4.x = subgroupPartitionedExclusiveOrNV(data[0].u4.x, ballot); - data[3].u4.xy = subgroupPartitionedExclusiveOrNV(data[1].u4.xy, ballot); - data[3].u4.xyz = subgroupPartitionedExclusiveOrNV(data[2].u4.xyz, ballot); - data[3].u4 = subgroupPartitionedExclusiveOrNV(data[3].u4, ballot); - - data[3].i4.x = int(subgroupPartitionedExclusiveOrNV(data[0].i4.x < 0, ballot)); - data[3].i4.xy = ivec2(subgroupPartitionedExclusiveOrNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); - data[3].i4.xyz = ivec3(subgroupPartitionedExclusiveOrNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); - data[3].i4 = ivec4(subgroupPartitionedExclusiveOrNV(lessThan(data[1].i4, ivec4(0)), ballot)); - - data[3].i4.x = subgroupPartitionedExclusiveXorNV(data[0].i4.x, ballot); - data[3].i4.xy = subgroupPartitionedExclusiveXorNV(data[1].i4.xy, ballot); - data[3].i4.xyz = subgroupPartitionedExclusiveXorNV(data[2].i4.xyz, ballot); - data[3].i4 = subgroupPartitionedExclusiveXorNV(data[3].i4, ballot); - - data[0].u4.x = subgroupPartitionedExclusiveXorNV(data[0].u4.x, ballot); - data[0].u4.xy = subgroupPartitionedExclusiveXorNV(data[1].u4.xy, ballot); - data[0].u4.xyz = subgroupPartitionedExclusiveXorNV(data[2].u4.xyz, ballot); - data[0].u4 = subgroupPartitionedExclusiveXorNV(data[3].u4, ballot); - - data[0].i4.x = int(subgroupPartitionedExclusiveXorNV(data[0].i4.x < 0, ballot)); - data[0].i4.xy = ivec2(subgroupPartitionedExclusiveXorNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); - data[0].i4.xyz = ivec3(subgroupPartitionedExclusiveXorNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); - data[0].i4 = ivec4(subgroupPartitionedExclusiveXorNV(lessThan(data[1].i4, ivec4(0)), ballot)); -} diff --git a/deps/glslang/Test/glsl.es320.subgroupQuad.comp b/deps/glslang/Test/glsl.es320.subgroupQuad.comp deleted file mode 100644 index 5394999e..00000000 --- a/deps/glslang/Test/glsl.es320.subgroupQuad.comp +++ /dev/null @@ -1,97 +0,0 @@ -#version 320 es - -#extension GL_KHR_shader_subgroup_quad: enable - -layout (local_size_x = 8) in; - -layout(binding = 0) buffer Buffers -{ - vec4 f4; - ivec4 i4; - uvec4 u4; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4u; - - data[0].f4.x = subgroupQuadBroadcast(data[0].f4.x, 1u); - data[0].f4.xy = subgroupQuadBroadcast(data[1].f4.xy, 1u); - data[0].f4.xyz = subgroupQuadBroadcast(data[2].f4.xyz, 1u); - data[0].f4 = subgroupQuadBroadcast(data[3].f4, 1u); - - data[0].i4.x = subgroupQuadBroadcast(data[0].i4.x, 1u); - data[0].i4.xy = subgroupQuadBroadcast(data[1].i4.xy, 1u); - data[0].i4.xyz = subgroupQuadBroadcast(data[2].i4.xyz, 1u); - data[0].i4 = subgroupQuadBroadcast(data[3].i4, 1u); - - data[0].u4.x = subgroupQuadBroadcast(data[0].u4.x, 1u); - data[0].u4.xy = subgroupQuadBroadcast(data[1].u4.xy, 1u); - data[0].u4.xyz = subgroupQuadBroadcast(data[2].u4.xyz, 1u); - data[0].u4 = subgroupQuadBroadcast(data[3].u4, 1u); - - data[1].i4.x = int(subgroupQuadBroadcast(data[0].i4.x < 0, 1u)); - data[1].i4.xy = ivec2(subgroupQuadBroadcast(lessThan(data[1].i4.xy, ivec2(0)), 1u)); - data[1].i4.xyz = ivec3(subgroupQuadBroadcast(lessThan(data[1].i4.xyz, ivec3(0)), 1u)); - data[1].i4 = ivec4(subgroupQuadBroadcast(lessThan(data[1].i4, ivec4(0)), 1u)); - - data[1].f4.x = subgroupQuadSwapHorizontal(data[0].f4.x); - data[1].f4.xy = subgroupQuadSwapHorizontal(data[1].f4.xy); - data[1].f4.xyz = subgroupQuadSwapHorizontal(data[2].f4.xyz); - data[1].f4 = subgroupQuadSwapHorizontal(data[3].f4); - - data[1].i4.x = subgroupQuadSwapHorizontal(data[0].i4.x); - data[1].i4.xy = subgroupQuadSwapHorizontal(data[1].i4.xy); - data[1].i4.xyz = subgroupQuadSwapHorizontal(data[2].i4.xyz); - data[1].i4 = subgroupQuadSwapHorizontal(data[3].i4); - - data[1].u4.x = subgroupQuadSwapHorizontal(data[0].u4.x); - data[1].u4.xy = subgroupQuadSwapHorizontal(data[1].u4.xy); - data[1].u4.xyz = subgroupQuadSwapHorizontal(data[2].u4.xyz); - data[1].u4 = subgroupQuadSwapHorizontal(data[3].u4); - - data[2].i4.x = int(subgroupQuadSwapHorizontal(data[0].i4.x < 0)); - data[2].i4.xy = ivec2(subgroupQuadSwapHorizontal(lessThan(data[1].i4.xy, ivec2(0)))); - data[2].i4.xyz = ivec3(subgroupQuadSwapHorizontal(lessThan(data[1].i4.xyz, ivec3(0)))); - data[2].i4 = ivec4(subgroupQuadSwapHorizontal(lessThan(data[1].i4, ivec4(0)))); - - data[2].f4.x = subgroupQuadSwapVertical(data[0].f4.x); - data[2].f4.xy = subgroupQuadSwapVertical(data[1].f4.xy); - data[2].f4.xyz = subgroupQuadSwapVertical(data[2].f4.xyz); - data[2].f4 = subgroupQuadSwapVertical(data[3].f4); - - data[2].i4.x = subgroupQuadSwapVertical(data[0].i4.x); - data[2].i4.xy = subgroupQuadSwapVertical(data[1].i4.xy); - data[2].i4.xyz = subgroupQuadSwapVertical(data[2].i4.xyz); - data[2].i4 = subgroupQuadSwapVertical(data[3].i4); - - data[2].u4.x = subgroupQuadSwapVertical(data[0].u4.x); - data[2].u4.xy = subgroupQuadSwapVertical(data[1].u4.xy); - data[2].u4.xyz = subgroupQuadSwapVertical(data[2].u4.xyz); - data[2].u4 = subgroupQuadSwapVertical(data[3].u4); - - data[3].i4.x = int(subgroupQuadSwapVertical(data[0].i4.x < 0)); - data[3].i4.xy = ivec2(subgroupQuadSwapVertical(lessThan(data[1].i4.xy, ivec2(0)))); - data[3].i4.xyz = ivec3(subgroupQuadSwapVertical(lessThan(data[1].i4.xyz, ivec3(0)))); - data[3].i4 = ivec4(subgroupQuadSwapVertical(lessThan(data[1].i4, ivec4(0)))); - - data[3].f4.x = subgroupQuadSwapDiagonal(data[0].f4.x); - data[3].f4.xy = subgroupQuadSwapDiagonal(data[1].f4.xy); - data[3].f4.xyz = subgroupQuadSwapDiagonal(data[2].f4.xyz); - data[3].f4 = subgroupQuadSwapDiagonal(data[3].f4); - - data[3].i4.x = subgroupQuadSwapDiagonal(data[0].i4.x); - data[3].i4.xy = subgroupQuadSwapDiagonal(data[1].i4.xy); - data[3].i4.xyz = subgroupQuadSwapDiagonal(data[2].i4.xyz); - data[3].i4 = subgroupQuadSwapDiagonal(data[3].i4); - - data[3].u4.x = subgroupQuadSwapDiagonal(data[0].u4.x); - data[3].u4.xy = subgroupQuadSwapDiagonal(data[1].u4.xy); - data[3].u4.xyz = subgroupQuadSwapDiagonal(data[2].u4.xyz); - data[3].u4 = subgroupQuadSwapDiagonal(data[3].u4); - - data[3].i4.x = int(subgroupQuadSwapDiagonal(data[0].i4.x < 0)); - data[3].i4.xy = ivec2(subgroupQuadSwapDiagonal(lessThan(data[1].i4.xy, ivec2(0)))); - data[3].i4.xyz = ivec3(subgroupQuadSwapDiagonal(lessThan(data[1].i4.xyz, ivec3(0)))); - data[3].i4 = ivec4(subgroupQuadSwapDiagonal(lessThan(data[1].i4, ivec4(0)))); -} diff --git a/deps/glslang/Test/glsl.es320.subgroupShuffle.comp b/deps/glslang/Test/glsl.es320.subgroupShuffle.comp deleted file mode 100644 index 1ad480d6..00000000 --- a/deps/glslang/Test/glsl.es320.subgroupShuffle.comp +++ /dev/null @@ -1,57 +0,0 @@ -#version 320 es - -#extension GL_KHR_shader_subgroup_shuffle: enable - -layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in; - -layout(binding = 0) buffer Buffers -{ - vec4 f4; - ivec4 i4; - uvec4 u4; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4u; - - data[0].f4.x = subgroupShuffle(data[0].f4.x, invocation); - data[0].f4.xy = subgroupShuffle(data[1].f4.xy, invocation); - data[0].f4.xyz = subgroupShuffle(data[2].f4.xyz, invocation); - data[0].f4 = subgroupShuffle(data[3].f4, invocation); - - data[0].i4.x = subgroupShuffle(data[0].i4.x, invocation); - data[0].i4.xy = subgroupShuffle(data[1].i4.xy, invocation); - data[0].i4.xyz = subgroupShuffle(data[2].i4.xyz, invocation); - data[0].i4 = subgroupShuffle(data[3].i4, invocation); - - data[1].u4.x = subgroupShuffle(data[0].u4.x, invocation); - data[1].u4.xy = subgroupShuffle(data[1].u4.xy, invocation); - data[1].u4.xyz = subgroupShuffle(data[2].u4.xyz, invocation); - data[1].u4 = subgroupShuffle(data[3].u4, invocation); - - data[1].i4.x = int(subgroupShuffle(data[0].i4.x < 0, invocation)); - data[1].i4.xy = ivec2(subgroupShuffle(lessThan(data[1].i4.xy, ivec2(0)), invocation)); - data[1].i4.xyz = ivec3(subgroupShuffle(lessThan(data[1].i4.xyz, ivec3(0)), invocation)); - data[1].i4 = ivec4(subgroupShuffle(lessThan(data[1].i4, ivec4(0)), invocation)); - - data[2].f4.x = subgroupShuffleXor(data[0].f4.x, invocation); - data[2].f4.xy = subgroupShuffleXor(data[1].f4.xy, invocation); - data[2].f4.xyz = subgroupShuffleXor(data[2].f4.xyz, invocation); - data[2].f4 = subgroupShuffleXor(data[3].f4, invocation); - - data[2].i4.x = subgroupShuffleXor(data[0].i4.x, invocation); - data[2].i4.xy = subgroupShuffleXor(data[1].i4.xy, invocation); - data[2].i4.xyz = subgroupShuffleXor(data[2].i4.xyz, invocation); - data[2].i4 = subgroupShuffleXor(data[3].i4, invocation); - - data[3].u4.x = subgroupShuffleXor(data[0].u4.x, invocation); - data[3].u4.xy = subgroupShuffleXor(data[1].u4.xy, invocation); - data[3].u4.xyz = subgroupShuffleXor(data[2].u4.xyz, invocation); - data[3].u4 = subgroupShuffleXor(data[3].u4, invocation); - - data[3].i4.x = int(subgroupShuffleXor(data[0].i4.x < 0, invocation)); - data[3].i4.xy = ivec2(subgroupShuffleXor(lessThan(data[1].i4.xy, ivec2(0)), invocation)); - data[3].i4.xyz = ivec3(subgroupShuffleXor(lessThan(data[1].i4.xyz, ivec3(0)), invocation)); - data[3].i4 = ivec4(subgroupShuffleXor(lessThan(data[1].i4, ivec4(0)), invocation)); -} diff --git a/deps/glslang/Test/glsl.es320.subgroupShuffleRelative.comp b/deps/glslang/Test/glsl.es320.subgroupShuffleRelative.comp deleted file mode 100644 index 7c94ec7f..00000000 --- a/deps/glslang/Test/glsl.es320.subgroupShuffleRelative.comp +++ /dev/null @@ -1,57 +0,0 @@ -#version 320 es - -#extension GL_KHR_shader_subgroup_shuffle_relative: enable - -layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in; - -layout(binding = 0) buffer Buffers -{ - vec4 f4; - ivec4 i4; - uvec4 u4; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4u; - - data[0].f4.x = subgroupShuffleUp(data[0].f4.x, invocation); - data[0].f4.xy = subgroupShuffleUp(data[1].f4.xy, invocation); - data[0].f4.xyz = subgroupShuffleUp(data[2].f4.xyz, invocation); - data[0].f4 = subgroupShuffleUp(data[3].f4, invocation); - - data[0].i4.x = subgroupShuffleUp(data[0].i4.x, invocation); - data[0].i4.xy = subgroupShuffleUp(data[1].i4.xy, invocation); - data[0].i4.xyz = subgroupShuffleUp(data[2].i4.xyz, invocation); - data[0].i4 = subgroupShuffleUp(data[3].i4, invocation); - - data[1].u4.x = subgroupShuffleUp(data[0].u4.x, invocation); - data[1].u4.xy = subgroupShuffleUp(data[1].u4.xy, invocation); - data[1].u4.xyz = subgroupShuffleUp(data[2].u4.xyz, invocation); - data[1].u4 = subgroupShuffleUp(data[3].u4, invocation); - - data[1].i4.x = int(subgroupShuffleUp(data[0].i4.x < 0, invocation)); - data[1].i4.xy = ivec2(subgroupShuffleUp(lessThan(data[1].i4.xy, ivec2(0)), invocation)); - data[1].i4.xyz = ivec3(subgroupShuffleUp(lessThan(data[1].i4.xyz, ivec3(0)), invocation)); - data[1].i4 = ivec4(subgroupShuffleUp(lessThan(data[1].i4, ivec4(0)), invocation)); - - data[2].f4.x = subgroupShuffleDown(data[0].f4.x, invocation); - data[2].f4.xy = subgroupShuffleDown(data[1].f4.xy, invocation); - data[2].f4.xyz = subgroupShuffleDown(data[2].f4.xyz, invocation); - data[2].f4 = subgroupShuffleDown(data[3].f4, invocation); - - data[2].i4.x = subgroupShuffleDown(data[0].i4.x, invocation); - data[2].i4.xy = subgroupShuffleDown(data[1].i4.xy, invocation); - data[2].i4.xyz = subgroupShuffleDown(data[2].i4.xyz, invocation); - data[2].i4 = subgroupShuffleDown(data[3].i4, invocation); - - data[3].u4.x = subgroupShuffleDown(data[0].u4.x, invocation); - data[3].u4.xy = subgroupShuffleDown(data[1].u4.xy, invocation); - data[3].u4.xyz = subgroupShuffleDown(data[2].u4.xyz, invocation); - data[3].u4 = subgroupShuffleDown(data[3].u4, invocation); - - data[3].i4.x = int(subgroupShuffleDown(data[0].i4.x < 0, invocation)); - data[3].i4.xy = ivec2(subgroupShuffleDown(lessThan(data[1].i4.xy, ivec2(0)), invocation)); - data[3].i4.xyz = ivec3(subgroupShuffleDown(lessThan(data[1].i4.xyz, ivec3(0)), invocation)); - data[3].i4 = ivec4(subgroupShuffleDown(lessThan(data[1].i4, ivec4(0)), invocation)); -} diff --git a/deps/glslang/Test/glsl.es320.subgroupVote.comp b/deps/glslang/Test/glsl.es320.subgroupVote.comp deleted file mode 100644 index 3c44ba46..00000000 --- a/deps/glslang/Test/glsl.es320.subgroupVote.comp +++ /dev/null @@ -1,43 +0,0 @@ -#version 320 es - -#extension GL_KHR_shader_subgroup_vote: enable - -layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in; - -layout(binding = 0) buffer Buffers -{ - vec4 f4; - ivec4 i4; - uvec4 u4; - int r; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4u; - - if (subgroupAll(data[0].r < 0)) - { - data[0].r = int(subgroupAllEqual(data[0].f4.x)); - data[0].r = int(subgroupAllEqual(data[1].f4.xy)); - data[0].r = int(subgroupAllEqual(data[2].f4.xyz)); - data[0].r = int(subgroupAllEqual(data[3].f4)); - - data[0].r = int(subgroupAllEqual(data[0].i4.x)); - data[0].r = int(subgroupAllEqual(data[1].i4.xy)); - data[0].r = int(subgroupAllEqual(data[2].i4.xyz)); - data[0].r = int(subgroupAllEqual(data[3].i4)); - - data[0].r = int(subgroupAllEqual(data[0].u4.x)); - data[0].r = int(subgroupAllEqual(data[1].u4.xy)); - data[0].r = int(subgroupAllEqual(data[2].u4.xyz)); - data[0].r = int(subgroupAllEqual(data[3].u4)); - } - else if (subgroupAny(data[1].r < 0)) - { - data[1].r = int(int(subgroupAllEqual(data[0].i4.x < 0))); - data[1].r = int(ivec2(subgroupAllEqual(lessThan(data[1].i4.xy, ivec2(0))))); - data[1].r = int(ivec3(subgroupAllEqual(lessThan(data[1].i4.xyz, ivec3(0))))); - data[1].r = int(ivec4(subgroupAllEqual(lessThan(data[1].i4, ivec4(0))))); - } -} diff --git a/deps/glslang/Test/glsl.versionOverride.comp b/deps/glslang/Test/glsl.versionOverride.comp deleted file mode 100644 index f72663e3..00000000 --- a/deps/glslang/Test/glsl.versionOverride.comp +++ /dev/null @@ -1,11 +0,0 @@ -/* - -glslangValidator.exe --glsl-version 460 -V -S comp -o glsl.versionOverride.comp.out glsl.versionOverride.comp - -*/ - -#version 110 - -void main() -{ -} diff --git a/deps/glslang/Test/glsl.versionOverride.frag b/deps/glslang/Test/glsl.versionOverride.frag deleted file mode 100644 index 12679940..00000000 --- a/deps/glslang/Test/glsl.versionOverride.frag +++ /dev/null @@ -1,11 +0,0 @@ -/* - -glslangValidator.exe --glsl-version 420 -V -S frag -o glsl.versionOverride.frag.out glsl.versionOverride.frag - -*/ - -#version 110 - -void main() -{ -} diff --git a/deps/glslang/Test/glsl.versionOverride.geom b/deps/glslang/Test/glsl.versionOverride.geom deleted file mode 100644 index bcfc2f22..00000000 --- a/deps/glslang/Test/glsl.versionOverride.geom +++ /dev/null @@ -1,16 +0,0 @@ -/* - -glslangValidator.exe --glsl-version 430 -V -S geom -o glsl.versionOverride.geom.out glsl.versionOverride.geom - -*/ - -#version 110 - -layout (points) in; -layout (line_strip, max_vertices = 2) out; - -void main() { - EmitVertex(); - EmitVertex(); - EndPrimitive(); -} diff --git a/deps/glslang/Test/glsl.versionOverride.tesc b/deps/glslang/Test/glsl.versionOverride.tesc deleted file mode 100644 index 3b7b1e3c..00000000 --- a/deps/glslang/Test/glsl.versionOverride.tesc +++ /dev/null @@ -1,13 +0,0 @@ -/* - -glslangValidator.exe --glsl-version 440 -V -S tesc -o glsl.versionOverride.tesc.out glsl.versionOverride.tesc - -*/ - -#version 110 - -layout(vertices = 3) out; - -void main() -{ -} diff --git a/deps/glslang/Test/glsl.versionOverride.tese b/deps/glslang/Test/glsl.versionOverride.tese deleted file mode 100644 index e92d5a98..00000000 --- a/deps/glslang/Test/glsl.versionOverride.tese +++ /dev/null @@ -1,13 +0,0 @@ -/* - -glslangValidator.exe --glsl-version 450 -V -S tese -o glsl.versionOverride.tese.out glsl.versionOverride.tese - -*/ - -#version 110 - -layout(triangles) in; - -void main() -{ -} diff --git a/deps/glslang/Test/glsl.versionOverride.vert b/deps/glslang/Test/glsl.versionOverride.vert deleted file mode 100644 index 2d5effcd..00000000 --- a/deps/glslang/Test/glsl.versionOverride.vert +++ /dev/null @@ -1,11 +0,0 @@ -/* - -glslangValidator.exe --glsl-version 410 -V -S vert -o glsl.versionOverride.vert.out glsl.versionOverride.vert - -*/ - -#version 110 - -void main() -{ -} diff --git a/deps/glslang/Test/glslangValidator b/deps/glslang/Test/glslangValidator deleted file mode 100644 index 856aa1a9..00000000 --- a/deps/glslang/Test/glslangValidator +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env bash -../build/install/bin/glslangValidator $* diff --git a/deps/glslang/Test/glspv.esversion.vert b/deps/glslang/Test/glspv.esversion.vert deleted file mode 100644 index 23501bf6..00000000 --- a/deps/glslang/Test/glspv.esversion.vert +++ /dev/null @@ -1,5 +0,0 @@ -#version 310 es - -void main() -{ -} diff --git a/deps/glslang/Test/glspv.frag b/deps/glslang/Test/glspv.frag deleted file mode 100644 index 7a73cb8d..00000000 --- a/deps/glslang/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/Test/glspv.version.frag b/deps/glslang/Test/glspv.version.frag deleted file mode 100644 index c9c6779e..00000000 --- a/deps/glslang/Test/glspv.version.frag +++ /dev/null @@ -1,5 +0,0 @@ -#version 330 compatibility - -void main() -{ -} diff --git a/deps/glslang/Test/glspv.version.vert b/deps/glslang/Test/glspv.version.vert deleted file mode 100644 index c8573b7b..00000000 --- a/deps/glslang/Test/glspv.version.vert +++ /dev/null @@ -1,5 +0,0 @@ -#version 150 - -void main() -{ -} diff --git a/deps/glslang/Test/glspv.vert b/deps/glslang/Test/glspv.vert deleted file mode 100644 index b4481465..00000000 --- a/deps/glslang/Test/glspv.vert +++ /dev/null @@ -1,20 +0,0 @@ -#version 450 - -layout(push_constant) uniform Material { int a; } mat; // ERROR, can't use push_constant - -layout(set = 0, binding = 0, std140) uniform Bt1 { int a; } bt1; -layout(set = 1, binding = 0, std140) uniform Bt2 { int a; } bt2; // ERROR, set has to be 0 - -layout(shared) uniform Bt3 { int a; } bt3; // ERROR, no shared, no binding -layout(packed) uniform Bt4 { int a; } bt4; // ERROR, no shared, no binding - -void main() -{ - gl_VertexIndex; // ERROR, not preset - gl_InstanceIndex; // ERROR, not present - gl_VertexID; - gl_InstanceID; - gl_DepthRangeParameters; // ERROR, not present -} - -uniform sampler s; // ERROR, no sampler diff --git a/deps/glslang/Test/hlsl.-D-U.frag b/deps/glslang/Test/hlsl.-D-U.frag deleted file mode 100644 index 0a022220..00000000 --- a/deps/glslang/Test/hlsl.-D-U.frag +++ /dev/null @@ -1,31 +0,0 @@ - -#define IN_SHADER - -static float4 color; - -void main() -{ -#if FOO==200 - color = 1.0; -#else - #error expected FOO 200 -#endif - -#ifdef FOO - color -= 5.0; -#else - #error expected FOO 200 -#endif - -#ifdef IN_SHADER - color++; -#else - #error IN_SHADER was undef -#endif - -#ifdef UNDEFED - #error UNDEFED defined -#else - color *= 3.0; -#endif -} diff --git a/deps/glslang/Test/hlsl.PointSize.geom b/deps/glslang/Test/hlsl.PointSize.geom deleted file mode 100644 index ef66fc89..00000000 --- a/deps/glslang/Test/hlsl.PointSize.geom +++ /dev/null @@ -1,11 +0,0 @@ -struct S { - [[vk::builtin("PointSize")]] float ps : PSIZE; -}; - -[maxvertexcount(4)] -void main([[vk::builtin("PointSize")]] triangle in uint ps[3], - inout LineStream OutputStream) -{ - S s; - OutputStream.Append(s); -} diff --git a/deps/glslang/Test/hlsl.PointSize.vert b/deps/glslang/Test/hlsl.PointSize.vert deleted file mode 100644 index 4b357e07..00000000 --- a/deps/glslang/Test/hlsl.PointSize.vert +++ /dev/null @@ -1,4 +0,0 @@ -[[vk::builtin("PointSize")]] float main() -{ - return 2.3; -} \ No newline at end of file diff --git a/deps/glslang/Test/hlsl.aliasOpaque.frag b/deps/glslang/Test/hlsl.aliasOpaque.frag deleted file mode 100644 index 8b1cceff..00000000 --- a/deps/glslang/Test/hlsl.aliasOpaque.frag +++ /dev/null @@ -1,29 +0,0 @@ -struct OS { - SamplerState ss; - float a; - Texture2D tex; -}; - -SamplerState gss; -SamplerState gss2; -Texture2D gtex; - -float4 osCall(OS s) -{ - return s.a * s.tex.Sample(s.ss, float2(0.2, 0.3)); -} - -float4 main() : SV_TARGET0 -{ - OS os; - os.ss = gss2; - os.ss = gss; - os.tex = gtex; - os.a = 3.0; - - // this should give an error - //SamplerState localss; - //localss = gss2; - - return osCall(os); -} diff --git a/deps/glslang/Test/hlsl.amend.frag b/deps/glslang/Test/hlsl.amend.frag deleted file mode 100644 index 7c182739..00000000 --- a/deps/glslang/Test/hlsl.amend.frag +++ /dev/null @@ -1,28 +0,0 @@ -float4 a; -float b; -static float4 m = a * b; -void f1() -{ - a * b; -} - -float3 c; - -void f2() -{ - a.x + b + c.x; -} - -void f3() -{ - c; -} - -int d; - -void f4() -{ - d * a; -} - -int e; \ No newline at end of file diff --git a/deps/glslang/Test/hlsl.array.flatten.frag b/deps/glslang/Test/hlsl.array.flatten.frag deleted file mode 100644 index 987ce1bf..00000000 --- a/deps/glslang/Test/hlsl.array.flatten.frag +++ /dev/null @@ -1,38 +0,0 @@ - -// uniform Texture1D g_tex3[3][2]; // TODO: legal in HLSL, but we don't handle it yet. - -uniform Texture1D g_tex[3]; -uniform Texture1D g_tex_explicit[3] : register(t1); - -SamplerState g_samp[3]; -SamplerState g_samp_explicit[3] : register(s5); - -uniform float3x3 g_mats[4]; -uniform float3x3 g_mats_explicit[4] : register(b10); -uniform float g_floats[4]; - -// uniform float g_floats[4] = { 10, 11, 12, 13 }; // TODO: ... add when initializer lists can be flattened. - -float4 TestFn1() -{ - return g_tex[1].Sample(g_samp[1], 0.2); -} - -float4 TestFn2(Texture1D l_tex[3], SamplerState l_samp[3]) -{ - return l_tex[2].Sample(l_samp[2], 0.2); -} - -static int not_flattened_a[5] = { 1, 2, 3, 4, 5 }; - -struct PS_OUTPUT { float4 color : SV_Target0; }; - -void main(out PS_OUTPUT ps_output) -{ - // test flattening for local assignment initialization - SamplerState local_sampler_array[3] = g_samp; - Texture1D local_texture_array[3] = g_tex; - float local_float_array[4] = g_floats; - - ps_output.color = TestFn1() + TestFn2(g_tex, g_samp); -} diff --git a/deps/glslang/Test/hlsl.array.frag b/deps/glslang/Test/hlsl.array.frag deleted file mode 100644 index ff0004fd..00000000 --- a/deps/glslang/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/Test/hlsl.array.implicit-size.frag b/deps/glslang/Test/hlsl.array.implicit-size.frag deleted file mode 100644 index e7a54f46..00000000 --- a/deps/glslang/Test/hlsl.array.implicit-size.frag +++ /dev/null @@ -1,32 +0,0 @@ - -// array size from initializer -static float g_array [ ] = { 1, 2, 3, 4, 5 }; - -// Unused: array size from initializer -static float g_array_unused [ ] = { 1, 2, 3, 4, 5, 6, 7 }; - -// Test initializer sizing for arrayed structs -static struct mystruct { - int i; - float f; -} g_mystruct[] = { - { 1, 2.0 }, - { 3, 4.0 }, -}; - -struct PS_OUTPUT { float4 color : SV_Target0; }; - -// INVALID: implicit size requires an initializer expression. -// uniform float bad[]; - -// INVALID: function parameters cannot be implicitly sized -// void BadFunction(int a[]) { } - -void main(out PS_OUTPUT ps_output) -{ - // local array sized from initializers - float l_array[] = { 1, 2, 3 }; - int idx; - - ps_output.color = g_array[0] + g_array[4] + l_array[1] + g_mystruct[0].f + g_array[idx]; -} diff --git a/deps/glslang/Test/hlsl.array.multidim.frag b/deps/glslang/Test/hlsl.array.multidim.frag deleted file mode 100644 index 524a8896..00000000 --- a/deps/glslang/Test/hlsl.array.multidim.frag +++ /dev/null @@ -1,20 +0,0 @@ - -float float_array[5][4][3]; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; -}; - -PS_OUTPUT main() -{ - float4 float4_array_1[2][3]; - float4 float4_array_2[5][3]; - - float4_array_1[1][2] = float_array[2][3][1]; - float4_array_2[1] = float4_array_1[0]; - - PS_OUTPUT psout; - psout.Color = float4_array_1[1][2]; - return psout; -} diff --git a/deps/glslang/Test/hlsl.assoc.frag b/deps/glslang/Test/hlsl.assoc.frag deleted file mode 100644 index 8ce1050c..00000000 --- a/deps/glslang/Test/hlsl.assoc.frag +++ /dev/null @@ -1,11 +0,0 @@ -float4 PixelShaderFunction( - float4 a1, - float4 a2, - float4 a3, - float4 a4, - float4 a5 - ) : COLOR0 -{ - a1 = a2 = a3 = a4 = a5; - return a1 + a2 + a3 + a4 + a5; -} diff --git a/deps/glslang/Test/hlsl.attribute.expression.comp b/deps/glslang/Test/hlsl.attribute.expression.comp deleted file mode 100644 index 23489fa7..00000000 --- a/deps/glslang/Test/hlsl.attribute.expression.comp +++ /dev/null @@ -1,13 +0,0 @@ - -uniform int bound; - -#define FOO 3 -#define BAR 2 - -[numthreads(2+2, 2*3, (1+FOO)*BAR)] -void main() -{ - [unroll(5*2 + 1) ] - for (int x=0; x buffer1; - -[[vk::binding(3, 2)]] -StructuredBuffer buffer3; - -[[vk::input_attachment_index(4)]] -Texture2D attach; - -[[vk::constant_id(13)]] const int ci = 11; - -[[vk::push_constant]] cbuffer pcBuf { int a; }; - -[[vk::location(7)]] float4 -main([[vk::location(8)]] float4 input: A) : B -{ - return input + attach.Load(float2(0.5));// * a; -} diff --git a/deps/glslang/Test/hlsl.attributeGlobalBuffer.frag b/deps/glslang/Test/hlsl.attributeGlobalBuffer.frag deleted file mode 100644 index a1177dab..00000000 --- a/deps/glslang/Test/hlsl.attributeGlobalBuffer.frag +++ /dev/null @@ -1,8 +0,0 @@ -[[vk::global_cbuffer_binding(5, 2)]] -float4 u1; -float4 u2; - -float4 main() : SV_Target0 -{ - return u1 + u2; -} \ No newline at end of file diff --git a/deps/glslang/Test/hlsl.automap.frag b/deps/glslang/Test/hlsl.automap.frag deleted file mode 100644 index da1e885f..00000000 --- a/deps/glslang/Test/hlsl.automap.frag +++ /dev/null @@ -1,57 +0,0 @@ -// Test register class offsets for different resource types - -SamplerState s1 : register(s1); -SamplerComparisonState s2 : register(s2); - -Texture1D t1 : register(t1); -Texture2D t2 : register(t2); -Texture3D t3 : register(t3); -StructuredBuffer t4 : register(t4); -ByteAddressBuffer t5 : register(t5); -Buffer t6 : register(t6); - -RWTexture1D u1 : register(u1); -RWTexture2D u2 : register(u2); -RWTexture3D u3 : register(u3); - -RWBuffer u4 : register(u4); -RWByteAddressBuffer u5 : register(u5); -RWStructuredBuffer u6 : register(u6); -AppendStructuredBuffer u7 : register(u7); -ConsumeStructuredBuffer u8 : register(u8); - -cbuffer cb : register(b1) { - int cb1; -}; - -tbuffer tb : register(t7) { - int tb1; -}; - -float4 main() : SV_Target0 -{ - t1; - t2; - t3; - t4[0]; - t5.Load(0); - t6; - - s1; - s2; - - u1; - u2; - u3; - - u4[0]; - u5.Load(0); - u6[0]; - u7; - u8; - - cb1; - tb1; - - return 0; -} diff --git a/deps/glslang/Test/hlsl.autosampledtextures.frag b/deps/glslang/Test/hlsl.autosampledtextures.frag deleted file mode 100644 index 7c72becd..00000000 --- a/deps/glslang/Test/hlsl.autosampledtextures.frag +++ /dev/null @@ -1,21 +0,0 @@ -Texture2D g_tColor; - -SamplerState g_sAniso; - -struct PS_INPUT -{ - float2 vTextureCoords : TEXCOORD2 ; -} ; - -struct PS_OUTPUT -{ - float4 vColor : SV_Target0 ; -} ; - -PS_OUTPUT MainPs ( PS_INPUT i ) -{ - PS_OUTPUT ps_output ; - - ps_output . vColor = g_tColor . Sample ( g_sAniso , i . vTextureCoords . xy ) ; - return ps_output ; -} \ No newline at end of file diff --git a/deps/glslang/Test/hlsl.basic.comp b/deps/glslang/Test/hlsl.basic.comp deleted file mode 100644 index 1d95239e..00000000 --- a/deps/glslang/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/Test/hlsl.basic.geom b/deps/glslang/Test/hlsl.basic.geom deleted file mode 100644 index 79b061ee..00000000 --- a/deps/glslang/Test/hlsl.basic.geom +++ /dev/null @@ -1,25 +0,0 @@ -struct PSInput -{ - float myfloat : SOME_SEMANTIC; - int something : ANOTHER_SEMANTIC; -}; - -struct nametest { - int Append; // these are valid names even though they are also method names. - int RestartStrip; // ... -}; - -[maxvertexcount(4)] -void main(triangle in uint VertexID[3] : VertexID, - triangle uint test[3] : FOO, - inout LineStream OutputStream) -{ - PSInput Vert; - - Vert.myfloat = test[0] + test[1] + test[2]; - Vert.something = VertexID[0]; - - OutputStream.Append(Vert); - OutputStream.Append(Vert); - OutputStream.RestartStrip(); -} diff --git a/deps/glslang/Test/hlsl.boolConv.vert b/deps/glslang/Test/hlsl.boolConv.vert deleted file mode 100644 index 6182b296..00000000 --- a/deps/glslang/Test/hlsl.boolConv.vert +++ /dev/null @@ -1,20 +0,0 @@ -static bool a, b = true; -float4 main() : SV_Position -{ - int r = 0; - - r += a + b; - r += a - b; - r += a * b; - r += a / b; - r += a % b; - - r += a & b; - r += a | b; - r += a ^ b; - - r += a << b; - r += a >> b; - - return r; -} diff --git a/deps/glslang/Test/hlsl.buffer.frag b/deps/glslang/Test/hlsl.buffer.frag deleted file mode 100644 index 73f42e8f..00000000 --- a/deps/glslang/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/Test/hlsl.calculatelod.dx10.frag b/deps/glslang/Test/hlsl.calculatelod.dx10.frag deleted file mode 100644 index 0fb76072..00000000 --- a/deps/glslang/Test/hlsl.calculatelod.dx10.frag +++ /dev/null @@ -1,44 +0,0 @@ -SamplerState g_sSamp : register(s0); - -Texture1DArray g_tTex1df4a : register(t1); - -uniform Texture1DArray g_tTex1df4 : register(t0); -Texture1DArray g_tTex1di4a; -Texture1DArray g_tTex1du4a; - -Texture2DArray g_tTex2df4a; -Texture2DArray g_tTex2di4a; -Texture2DArray g_tTex2du4a; - -TextureCubeArray g_tTexcdf4a; -TextureCubeArray g_tTexcdi4a; -TextureCubeArray g_tTexcdu4a; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - // LOD queries do not pass array level in coordinate. - float txval10 = g_tTex1df4a . CalculateLevelOfDetail(g_sSamp, 0.1); - float txval11 = g_tTex1di4a . CalculateLevelOfDetail(g_sSamp, 0.2); - float txval12 = g_tTex1du4a . CalculateLevelOfDetail(g_sSamp, 0.3); - - float txval20 = g_tTex2df4a . CalculateLevelOfDetail(g_sSamp, float2(0.1, 0.2)); - float txval21 = g_tTex2di4a . CalculateLevelOfDetail(g_sSamp, float2(0.3, 0.4)); - float txval22 = g_tTex2du4a . CalculateLevelOfDetail(g_sSamp, float2(0.5, 0.6)); - - float txval40 = g_tTexcdf4a . CalculateLevelOfDetail(g_sSamp, float3(0.1, 0.2, 0.3)); - float txval41 = g_tTexcdi4a . CalculateLevelOfDetail(g_sSamp, float3(0.4, 0.5, 0.6)); - float txval42 = g_tTexcdu4a . CalculateLevelOfDetail(g_sSamp, float3(0.7, 0.8, 0.9)); - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.calculatelodunclamped.dx10.frag b/deps/glslang/Test/hlsl.calculatelodunclamped.dx10.frag deleted file mode 100644 index 4c79aed8..00000000 --- a/deps/glslang/Test/hlsl.calculatelodunclamped.dx10.frag +++ /dev/null @@ -1,44 +0,0 @@ -SamplerState g_sSamp : register(s0); - -Texture1DArray g_tTex1df4a : register(t1); - -uniform Texture1DArray g_tTex1df4 : register(t0); -Texture1DArray g_tTex1di4a; -Texture1DArray g_tTex1du4a; - -Texture2DArray g_tTex2df4a; -Texture2DArray g_tTex2di4a; -Texture2DArray g_tTex2du4a; - -TextureCubeArray g_tTexcdf4a; -TextureCubeArray g_tTexcdi4a; -TextureCubeArray g_tTexcdu4a; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - // LOD queries do not pass array level in coordinate. - float txval10 = g_tTex1df4a . CalculateLevelOfDetailUnclamped(g_sSamp, 0.1); - float txval11 = g_tTex1di4a . CalculateLevelOfDetailUnclamped(g_sSamp, 0.2); - float txval12 = g_tTex1du4a . CalculateLevelOfDetailUnclamped(g_sSamp, 0.3); - - float txval20 = g_tTex2df4a . CalculateLevelOfDetailUnclamped(g_sSamp, float2(0.1, 0.2)); - float txval21 = g_tTex2di4a . CalculateLevelOfDetailUnclamped(g_sSamp, float2(0.3, 0.4)); - float txval22 = g_tTex2du4a . CalculateLevelOfDetailUnclamped(g_sSamp, float2(0.5, 0.6)); - - float txval40 = g_tTexcdf4a . CalculateLevelOfDetailUnclamped(g_sSamp, float3(0.1, 0.2, 0.3)); - float txval41 = g_tTexcdi4a . CalculateLevelOfDetailUnclamped(g_sSamp, float3(0.4, 0.5, 0.6)); - float txval42 = g_tTexcdu4a . CalculateLevelOfDetailUnclamped(g_sSamp, float3(0.7, 0.8, 0.9)); - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.cast.frag b/deps/glslang/Test/hlsl.cast.frag deleted file mode 100644 index c8dc8212..00000000 --- a/deps/glslang/Test/hlsl.cast.frag +++ /dev/null @@ -1,4 +0,0 @@ -float4 PixelShaderFunction(float4 input) : COLOR0 -{ - return (float4)input + (int4)input + (float4)1.198; -} diff --git a/deps/glslang/Test/hlsl.cbuffer-identifier.vert b/deps/glslang/Test/hlsl.cbuffer-identifier.vert deleted file mode 100644 index 8362f5ca..00000000 --- a/deps/glslang/Test/hlsl.cbuffer-identifier.vert +++ /dev/null @@ -1,32 +0,0 @@ - -cbuffer ConstantBuffer : register( b0 ) -{ - matrix World; - matrix View; - matrix Projection; -}; - -struct VS_INPUT -{ - float4 Pos : POSITION; - float3 Norm : NORMAL; -}; - -struct PS_INPUT -{ - float4 Pos : SV_POSITION; - float3 Norm : TEXCOORD0; -}; - -PS_INPUT main( VS_INPUT input ) -{ - int ConstantBuffer = 42; // test ConstantBuffer as an identifier - - PS_INPUT output = (PS_INPUT)0; - output.Pos = mul( input.Pos, World ); - output.Pos = mul( output.Pos, View ); - output.Pos = mul( output.Pos, Projection ); - output.Norm = mul( input.Norm, World ); // Work when output.Norm = mul( input.Norm, (float3x3)World ); - - return output; -} diff --git a/deps/glslang/Test/hlsl.charLit.vert b/deps/glslang/Test/hlsl.charLit.vert deleted file mode 100644 index 36c4a1e5..00000000 --- a/deps/glslang/Test/hlsl.charLit.vert +++ /dev/null @@ -1,17 +0,0 @@ -float4 main() : SV_Position -{ - uint a1 = 'A'; - int a2 = '0'; - - int a3 = '\a'; - a3 += '\b'; - a3 += '\t'; - a3 += '\n'; - a3 += '\v'; - a3 += '\f'; - a3 += '\r'; - - int a10 = '\c'; - - return a1 + a2 + a3 + a10; -} diff --git a/deps/glslang/Test/hlsl.clip.frag b/deps/glslang/Test/hlsl.clip.frag deleted file mode 100644 index a44c9e95..00000000 --- a/deps/glslang/Test/hlsl.clip.frag +++ /dev/null @@ -1,12 +0,0 @@ - -float GetEntitySelectClip() -{ - return 1.0f; -} - -float4 main() : SV_TARGET -{ - clip(GetEntitySelectClip()); - - return 0; -} diff --git a/deps/glslang/Test/hlsl.clipdistance-1.frag b/deps/glslang/Test/hlsl.clipdistance-1.frag deleted file mode 100644 index 10813b30..00000000 --- a/deps/glslang/Test/hlsl.clipdistance-1.frag +++ /dev/null @@ -1,6 +0,0 @@ -float4 main(in float4 pos : SV_Position, - in float clip : SV_ClipDistance, - in float cull : SV_CullDistance) : SV_Target0 -{ - return pos + clip + cull; -} diff --git a/deps/glslang/Test/hlsl.clipdistance-1.geom b/deps/glslang/Test/hlsl.clipdistance-1.geom deleted file mode 100644 index 76c34b35..00000000 --- a/deps/glslang/Test/hlsl.clipdistance-1.geom +++ /dev/null @@ -1,19 +0,0 @@ -struct S { - float4 pos : SV_Position; - float2 clip : SV_ClipDistance0; -}; - -[maxvertexcount(3)] -void main(triangle in float4 pos[3] : SV_Position, - triangle in uint VertexID[3] : VertexID, - inout LineStream OutputStream, - triangle in float4 clip[3] : SV_ClipDistance) // externally: an array 3 of array 4 (not vec4!) of float. -{ - S s; - - s.pos = pos[0]; - s.clip = clip[0].xy; - - OutputStream.Append(s); -} - diff --git a/deps/glslang/Test/hlsl.clipdistance-1.vert b/deps/glslang/Test/hlsl.clipdistance-1.vert deleted file mode 100644 index bcebafc3..00000000 --- a/deps/glslang/Test/hlsl.clipdistance-1.vert +++ /dev/null @@ -1,8 +0,0 @@ -void main(out float4 pos : SV_Position, - out float clip : SV_ClipDistance, // scalar float - out float cull : SV_CullDistance) // scalar float -{ - pos = 1.0f.xxxx; - clip = 0.5f; - cull = 0.51f; -} diff --git a/deps/glslang/Test/hlsl.clipdistance-2.frag b/deps/glslang/Test/hlsl.clipdistance-2.frag deleted file mode 100644 index b6f88d56..00000000 --- a/deps/glslang/Test/hlsl.clipdistance-2.frag +++ /dev/null @@ -1,7 +0,0 @@ -float4 main(in float4 pos : SV_Position, - in float2 clip[2] : SV_ClipDistance, // array of vector float - in float2 cull[2] : SV_CullDistance) : SV_Target0 // array of vector float -{ - - return pos + clip[0][0] + cull[0][0]; -} diff --git a/deps/glslang/Test/hlsl.clipdistance-2.geom b/deps/glslang/Test/hlsl.clipdistance-2.geom deleted file mode 100644 index 90f047fe..00000000 --- a/deps/glslang/Test/hlsl.clipdistance-2.geom +++ /dev/null @@ -1,19 +0,0 @@ -struct S { - float4 pos : SV_Position; - float2 clip[2] : SV_ClipDistance0; -}; - -[maxvertexcount(3)] -void main(triangle in float4 pos[3] : SV_Position, - triangle in uint VertexID[3] : VertexID, - inout LineStream OutputStream, - triangle in float2 clip[3][2] : SV_ClipDistance) // externally: an array 3 of array 4 of float. -{ - S s; - - s.pos = pos[0]; - s.clip[0] = clip[0][0]; - s.clip[1] = clip[0][1]; - - OutputStream.Append(s); -} diff --git a/deps/glslang/Test/hlsl.clipdistance-2.vert b/deps/glslang/Test/hlsl.clipdistance-2.vert deleted file mode 100644 index bf8c0ee0..00000000 --- a/deps/glslang/Test/hlsl.clipdistance-2.vert +++ /dev/null @@ -1,15 +0,0 @@ -void main(out float4 pos : SV_Position, - out float2 clip[2] : SV_ClipDistance, // array of vector float - out float2 cull[2] : SV_CullDistance) // array of vector float -{ - pos = 1.0f.xxxx; - clip[0].x = 0.5f; - clip[0].y = 0.6f; - clip[1].x = 0.7f; - clip[1].y = 0.8f; - - cull[0].x = 0.525f; - cull[0].y = 0.625f; - cull[1].x = 0.725f; - cull[1].y = 0.825f; -} diff --git a/deps/glslang/Test/hlsl.clipdistance-3.frag b/deps/glslang/Test/hlsl.clipdistance-3.frag deleted file mode 100644 index e2b6b862..00000000 --- a/deps/glslang/Test/hlsl.clipdistance-3.frag +++ /dev/null @@ -1,6 +0,0 @@ -float4 main(in float4 pos : SV_Position, - in float clip[2] : SV_ClipDistance, // array of scalar float - in float cull[2] : SV_CullDistance) : SV_Target0 // array of scalar float -{ - return pos + clip[0] + cull[0]; -} diff --git a/deps/glslang/Test/hlsl.clipdistance-3.geom b/deps/glslang/Test/hlsl.clipdistance-3.geom deleted file mode 100644 index 2aa4cd46..00000000 --- a/deps/glslang/Test/hlsl.clipdistance-3.geom +++ /dev/null @@ -1,20 +0,0 @@ -struct S { - float4 pos : SV_Position; - float2 clip0 : SV_ClipDistance0; // clip0 and clip1 form an array of float[4] externally. - float2 clip1 : SV_ClipDistance1; -}; - -[maxvertexcount(3)] -void main(triangle in float4 pos[3] : SV_Position, - triangle in uint VertexID[3] : VertexID, - inout LineStream OutputStream, - triangle in float4 clip[3] : SV_ClipDistance) // externally: an array 3 of array 4 (not vec4!) of float. -{ - S s; - - s.pos = pos[0]; - s.clip0 = clip[0].xy; - s.clip1 = clip[0].zw; - - OutputStream.Append(s); -} diff --git a/deps/glslang/Test/hlsl.clipdistance-3.vert b/deps/glslang/Test/hlsl.clipdistance-3.vert deleted file mode 100644 index a759a9cc..00000000 --- a/deps/glslang/Test/hlsl.clipdistance-3.vert +++ /dev/null @@ -1,13 +0,0 @@ -void main(out float4 pos : SV_Position, - out float clip[2] : SV_ClipDistance, // array of scalar float - out float cull[2] : SV_CullDistance) // array of scalar float -{ - pos = 1.0f.xxxx; - clip[0] = 0.5f; - clip[1] = 0.6f; - - cull[0] = 0.525f; - cull[1] = 0.625f; -} - - diff --git a/deps/glslang/Test/hlsl.clipdistance-4.frag b/deps/glslang/Test/hlsl.clipdistance-4.frag deleted file mode 100644 index 61441604..00000000 --- a/deps/glslang/Test/hlsl.clipdistance-4.frag +++ /dev/null @@ -1,9 +0,0 @@ -struct VS_OUTPUT { - float4 Position : SV_Position; - float4 ClipRect : SV_ClipDistance0; // vector in split struct -}; - -float4 main(const VS_OUTPUT v) : SV_Target0 -{ - return v.Position + v.ClipRect; -} diff --git a/deps/glslang/Test/hlsl.clipdistance-4.geom b/deps/glslang/Test/hlsl.clipdistance-4.geom deleted file mode 100644 index ff296a88..00000000 --- a/deps/glslang/Test/hlsl.clipdistance-4.geom +++ /dev/null @@ -1,21 +0,0 @@ -struct S { - float4 pos : SV_Position; - float2 clip0 : SV_ClipDistance0; // clip0 and clip1 form an array of float[4] externally. - float2 clip1 : SV_ClipDistance1; -}; - -[maxvertexcount(3)] -void main(triangle in float4 pos[3] : SV_Position, - triangle in uint VertexID[3] : VertexID, - inout LineStream OutputStream, - triangle in float2 clip0[3] : SV_ClipDistance0, // test input arrayed semantic vars - triangle in float2 clip1[3] : SV_ClipDistance1) -{ - S s; - - s.pos = pos[0]; - s.clip0 = clip0[0]; - s.clip1 = clip1[0]; - - OutputStream.Append(s); -} diff --git a/deps/glslang/Test/hlsl.clipdistance-4.vert b/deps/glslang/Test/hlsl.clipdistance-4.vert deleted file mode 100644 index 5e0d082f..00000000 --- a/deps/glslang/Test/hlsl.clipdistance-4.vert +++ /dev/null @@ -1,21 +0,0 @@ -struct VS_INPUT { - float4 Position : POSITION; -}; - -struct VS_OUTPUT { - float4 Position : SV_Position; - float4 ClipRect : SV_ClipDistance0; // vector in split struct -}; - -VS_OUTPUT main(const VS_INPUT v) -{ - VS_OUTPUT Output; - Output.Position = 0; - - Output.ClipRect.x = 1; - Output.ClipRect.y = 2; - Output.ClipRect.z = 3; - Output.ClipRect.w = 4; - - return Output; -} diff --git a/deps/glslang/Test/hlsl.clipdistance-5.frag b/deps/glslang/Test/hlsl.clipdistance-5.frag deleted file mode 100644 index 47229994..00000000 --- a/deps/glslang/Test/hlsl.clipdistance-5.frag +++ /dev/null @@ -1,9 +0,0 @@ -struct VS_OUTPUT { - float4 Position : SV_Position; - float2 ClipRect[2] : SV_ClipDistance0; // array of float2 in split struct -}; - -float4 main(const VS_OUTPUT v) : SV_Target0 -{ - return v.Position + v.ClipRect[0].x + v.ClipRect[1].x; -} diff --git a/deps/glslang/Test/hlsl.clipdistance-5.vert b/deps/glslang/Test/hlsl.clipdistance-5.vert deleted file mode 100644 index 02fb8627..00000000 --- a/deps/glslang/Test/hlsl.clipdistance-5.vert +++ /dev/null @@ -1,21 +0,0 @@ -struct VS_INPUT { - float4 Position : POSITION; -}; - -struct VS_OUTPUT { - float4 Position : SV_Position; - float2 ClipRect[2] : SV_ClipDistance0; // array of float2 in split struct -}; - -VS_OUTPUT main(const VS_INPUT v) -{ - VS_OUTPUT Output; - Output.Position = 0; - - Output.ClipRect[0].x = 1; - Output.ClipRect[0].y = 2; - Output.ClipRect[1].x = 3; - Output.ClipRect[1].y = 4; - - return Output; -} diff --git a/deps/glslang/Test/hlsl.clipdistance-6.frag b/deps/glslang/Test/hlsl.clipdistance-6.frag deleted file mode 100644 index 646197be..00000000 --- a/deps/glslang/Test/hlsl.clipdistance-6.frag +++ /dev/null @@ -1,10 +0,0 @@ -struct VS_OUTPUT { - float4 Position : SV_Position; - float4 clip0 : SV_ClipDistance0; // multiple semantic IDs, two vec4s (no extra packing) - float4 clip1 : SV_ClipDistance1; // ... -}; - -float4 main(VS_OUTPUT v) : SV_Target0 -{ - return v.Position + v.clip0 + v.clip1; -} diff --git a/deps/glslang/Test/hlsl.clipdistance-6.vert b/deps/glslang/Test/hlsl.clipdistance-6.vert deleted file mode 100644 index d68c2254..00000000 --- a/deps/glslang/Test/hlsl.clipdistance-6.vert +++ /dev/null @@ -1,23 +0,0 @@ -struct VS_OUTPUT { - float4 Position : SV_Position; - float4 clip0 : SV_ClipDistance0; // multiple semantic IDs, two vec4s (no extra packing) - float4 clip1 : SV_ClipDistance1; // ... -}; - -VS_OUTPUT main() -{ - VS_OUTPUT Output; - Output.Position = 0; - - Output.clip0.x = 0; - Output.clip0.y = 1; - Output.clip0.z = 2; - Output.clip0.w = 3; - - Output.clip1.x = 4; - Output.clip1.y = 5; - Output.clip1.z = 6; - Output.clip1.w = 7; - - return Output; -} diff --git a/deps/glslang/Test/hlsl.clipdistance-7.frag b/deps/glslang/Test/hlsl.clipdistance-7.frag deleted file mode 100644 index 1a26df8a..00000000 --- a/deps/glslang/Test/hlsl.clipdistance-7.frag +++ /dev/null @@ -1,10 +0,0 @@ -struct VS_OUTPUT { - float4 Position : SV_Position; - float3 clip0 : SV_ClipDistance0; // multiple semantic IDs, vec3+vec4 (skip) - float4 clip1 : SV_ClipDistance1; // ... -}; - -float4 main(VS_OUTPUT v) : SV_Target0 -{ - return v.Position + v.clip0.x + v.clip1.x; -} diff --git a/deps/glslang/Test/hlsl.clipdistance-7.vert b/deps/glslang/Test/hlsl.clipdistance-7.vert deleted file mode 100644 index c615d1f8..00000000 --- a/deps/glslang/Test/hlsl.clipdistance-7.vert +++ /dev/null @@ -1,23 +0,0 @@ -struct VS_OUTPUT { - float4 Position : SV_Position; - float3 clip0 : SV_ClipDistance0; // multiple semantic IDs, vec3+vec4 (skip) - float4 clip1 : SV_ClipDistance1; // ... -}; - -VS_OUTPUT main() -{ - VS_OUTPUT Output; - Output.Position = 0; - - Output.clip0.x = 0; - Output.clip0.y = 1; - Output.clip0.z = 2; - // Position 3 is skipped - - Output.clip1.x = 4; - Output.clip1.y = 5; - Output.clip1.z = 6; - Output.clip1.w = 7; - - return Output; -} diff --git a/deps/glslang/Test/hlsl.clipdistance-8.frag b/deps/glslang/Test/hlsl.clipdistance-8.frag deleted file mode 100644 index 2edf1948..00000000 --- a/deps/glslang/Test/hlsl.clipdistance-8.frag +++ /dev/null @@ -1,10 +0,0 @@ -struct VS_OUTPUT { - float4 Position : SV_Position; - float3 clip0 : SV_ClipDistance0; // multiple semantic IDs, vec3+float (pack) - float clip1 : SV_ClipDistance1; // ... -}; - -float4 main(VS_OUTPUT v) : SV_Target0 -{ - return v.Position + v.clip0.x + v.clip1; -} diff --git a/deps/glslang/Test/hlsl.clipdistance-8.vert b/deps/glslang/Test/hlsl.clipdistance-8.vert deleted file mode 100644 index c6377d2d..00000000 --- a/deps/glslang/Test/hlsl.clipdistance-8.vert +++ /dev/null @@ -1,20 +0,0 @@ -struct VS_OUTPUT { - float4 Position : SV_Position; - float3 clip0 : SV_ClipDistance0; // multiple semantic IDs, vec3+float (pack) - float clip1 : SV_ClipDistance1; // ... -}; - -VS_OUTPUT main() -{ - VS_OUTPUT Output; - Output.Position = 0; - - Output.clip0.x = 0; - Output.clip0.y = 1; - Output.clip0.z = 2; - - // Position 3 is packed from clip1's float - Output.clip1 = 3; - - return Output; -} diff --git a/deps/glslang/Test/hlsl.clipdistance-9.frag b/deps/glslang/Test/hlsl.clipdistance-9.frag deleted file mode 100644 index cbe940af..00000000 --- a/deps/glslang/Test/hlsl.clipdistance-9.frag +++ /dev/null @@ -1,8 +0,0 @@ - -// Test packing 0 and 1 semantics into single array[4], from in fn params. -float4 main(in float4 Position : SV_Position, - in float3 clip0 : SV_ClipDistance0, - in float clip1 : SV_ClipDistance1) : SV_Target0 -{ - return Position + clip0.x + clip1; -} diff --git a/deps/glslang/Test/hlsl.clipdistance-9.vert b/deps/glslang/Test/hlsl.clipdistance-9.vert deleted file mode 100644 index d4883070..00000000 --- a/deps/glslang/Test/hlsl.clipdistance-9.vert +++ /dev/null @@ -1,19 +0,0 @@ -struct VS_OUTPUT { - float4 Position : SV_Position; -}; - -// Test packing 0 and 1 semantics into single array[4] output, from out fn params. -VS_OUTPUT main(out float3 clip0 : SV_ClipDistance0, out float clip1 : SV_ClipDistance1) -{ - VS_OUTPUT Output; - Output.Position = 0; - - clip0.x = 0; - clip0.y = 1; - clip0.z = 2; - - // Position 3 is packed from clip1's float - clip1 = 3; - - return Output; -} diff --git a/deps/glslang/Test/hlsl.color.hull.tesc b/deps/glslang/Test/hlsl.color.hull.tesc deleted file mode 100644 index 73d9ad03..00000000 --- a/deps/glslang/Test/hlsl.color.hull.tesc +++ /dev/null @@ -1,74 +0,0 @@ -///////////// -// GLOBALS // -///////////// -cbuffer TessellationBuffer : register(b0) -{ - float tessellationAmount; - float3 padding; -}; - - -////////////// -// TYPEDEFS // -////////////// -struct HullInputType -{ - float3 position : POSITION; - float4 color : COLOR; -}; - -struct ConstantOutputType -{ - float edges[3] : SV_TessFactor; - float inside : SV_InsideTessFactor; -}; - -struct HullOutputType -{ - float3 position : POSITION; - float4 color : COLOR; -}; - - -//////////////////////////////////////////////////////////////////////////////// -// Patch Constant Function -//////////////////////////////////////////////////////////////////////////////// -ConstantOutputType ColorPatchConstantFunction(InputPatch inputPatch, uint patchId : SV_PrimitiveID) -{ - ConstantOutputType output; - - - // Set the tessellation factors for the three edges of the triangle. - output.edges[0] = tessellationAmount; - output.edges[1] = tessellationAmount; - output.edges[2] = tessellationAmount; - - // Set the tessellation factor for tessallating inside the triangle. - output.inside = tessellationAmount; - - return output; -} - - -//////////////////////////////////////////////////////////////////////////////// -// Hull Shader -//////////////////////////////////////////////////////////////////////////////// -[domain("tri")] -[partitioning("integer")] -[outputtopology("triangle_cw")] -[outputcontrolpoints(3)] -[patchconstantfunc("ColorPatchConstantFunction")] - -HullOutputType main(InputPatch patch, uint pointId : SV_OutputControlPointID, uint patchId : SV_PrimitiveID) -{ - HullOutputType output; - - // Set the position for this control point as the output position. - output.position = patch[pointId].position; - - // Set the input color as the output color. - output.color = patch[pointId].color; - - return output; -} - diff --git a/deps/glslang/Test/hlsl.comparison.vec.frag b/deps/glslang/Test/hlsl.comparison.vec.frag deleted file mode 100644 index b8f93c9f..00000000 --- a/deps/glslang/Test/hlsl.comparison.vec.frag +++ /dev/null @@ -1,34 +0,0 @@ -uniform float4 uf4; - -void Bug1( float4 a ) -{ - float4 v04 = float4( 0.0, 0.0, 0.0, 0.0 ); - float v01 = 0.0; - - bool4 r00 = a == v04; - bool4 r01 = a != v04; - bool4 r02 = a < v04; - bool4 r03 = a > v04; - - bool4 r10 = a == v01; - bool4 r11 = a != v01; - bool4 r12 = a < v01; - bool4 r13 = a > v01; - - bool4 r20 = v01 == a; - bool4 r21 = v01 != a; - bool4 r22 = v01 < a; - bool4 r23 = v01 > a; -} - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - psout.Color = 0; - return psout; -} diff --git a/deps/glslang/Test/hlsl.conditional.frag b/deps/glslang/Test/hlsl.conditional.frag deleted file mode 100644 index 91f75eec..00000000 --- a/deps/glslang/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/Test/hlsl.constantbuffer.frag b/deps/glslang/Test/hlsl.constantbuffer.frag deleted file mode 100644 index c2b3a00c..00000000 --- a/deps/glslang/Test/hlsl.constantbuffer.frag +++ /dev/null @@ -1,26 +0,0 @@ - -struct c1_t { - float4 x; -}; - -struct c2_t { - bool x; - float y; -}; - -ConstantBuffer cb1 : register(b12); -ConstantBuffer cb2[3]; -ConstantBuffer cb3[2][4]; - -cbuffer cbuff { - int c1; -}; - -float4 main() : SV_Target0 -{ - if (cb3[1][2].x) - return cb1.x + cb2[1].y + c1; - else - return cb3[1][3].y; -} - diff --git a/deps/glslang/Test/hlsl.constructArray.vert b/deps/glslang/Test/hlsl.constructArray.vert deleted file mode 100644 index 52c4b6f0..00000000 --- a/deps/glslang/Test/hlsl.constructArray.vert +++ /dev/null @@ -1,10 +0,0 @@ -float4 main() : SV_POSITION -{ - int4 int4_array[3]; - float4 float4_array_times[2] = (float4[2])int4_array; - float2 float2_array_times2[4] = (float2[4])int4_array; - int4 int4_array2[2] = (int4[2])int4_array; - int int1_array[2] = (int[2])int4_array; - - return (float4)0.0; -} diff --git a/deps/glslang/Test/hlsl.constructexpr.frag b/deps/glslang/Test/hlsl.constructexpr.frag deleted file mode 100644 index 7048f62c..00000000 --- a/deps/glslang/Test/hlsl.constructexpr.frag +++ /dev/null @@ -1,17 +0,0 @@ -struct PS_OUTPUT { float4 color : SV_Target0; }; - -PS_OUTPUT main() -{ - // Evaluates to a sequence: 3, 4, 5, 6, 7, 8, and a float2(9,10), float2(11,12) sequence - (int(3)); - (int(3) + int(1)); - (int(3) + int(1) + int(1)); - (((int(6)))); - (int(7.0)); - ((int((2)) ? 8 : 8)); - (float2(9, 10), float2(11, 12)); - - PS_OUTPUT ps_output; - ps_output.color = 1.0; - return ps_output; -} diff --git a/deps/glslang/Test/hlsl.constructimat.frag b/deps/glslang/Test/hlsl.constructimat.frag deleted file mode 100644 index f320ba15..00000000 --- a/deps/glslang/Test/hlsl.constructimat.frag +++ /dev/null @@ -1,52 +0,0 @@ -int main() : SV_TARGET -{ - // integer mat constructors - const int4x4 var441 = { 0,1,0,0, 1,1,0,0, 1,0,0,0, 0,0,0,0 }; - const int4x4 var442 = int4x4( 0,1,0,0, 1,1,0,0, 1,0,0,0, 0,0,0,0 ); - int4x4 var443 = { 0,1,0,0, 1,1,0,0, 1,0,0,0, 0,0,0,0 }; - int4x4 var444 = int4x4( 0,1,0,0, 1,1,0,0, 1,0,0,0, 0,0,0,0 ); - - const int4x2 var421 = { 0,1, 1,1, 1,0, 0,0 }; - const int4x2 var422 = int4x2( 0,1, 1,1, 1,0, 0,0 ); - int4x2 var423 = { 0,1, 1,1, 1,0, 0,0 }; - int4x2 var424 = int4x2( 0,1, 1,1, 1,0, 0,0 ); - - const int3x2 var321 = { 0,1, 1,1, 1,0 }; - const int3x2 var322 = int3x2( 0,1, 1,1, 1,0 ); - int3x2 var323 = { 0,1, 1,1, 1,0 }; - int3x2 var234 = int3x2( 0,1, 1,1, 1,0); - - // unsigned integer mat constructors - const uint4x4 uvar441 = { 0,1,0,0, 1,1,0,0, 1,0,0,0, 0,0,0,0 }; - const uint4x4 uvar442 = uint4x4( 0,1,0,0, 1,1,0,0, 1,0,0,0, 0,0,0,0 ); - uint4x4 uvar443 = { 0,1,0,0, 1,1,0,0, 1,0,0,0, 0,0,0,0 }; - uint4x4 uvar444 = uint4x4( 0,1,0,0, 1,1,0,0, 1,0,0,0, 0,0,0,0 ); - - const uint4x2 uvar421 = { 0,1, 1,1, 1,0, 0,0 }; - const uint4x2 uvar422 = uint4x2( 0,1, 1,1, 1,0, 0,0 ); - uint4x2 uvar423 = { 0,1, 1,1, 1,0, 0,0 }; - uint4x2 uvar424 = uint4x2( 0,1, 1,1, 1,0, 0,0 ); - - const uint3x2 uvar321 = { 0,1, 1,1, 1,0 }; - const uint3x2 uvar322 = uint3x2( 0,1, 1,1, 1,0 ); - uint3x2 uvar323 = { 0,1, 1,1, 1,0 }; - uint3x2 uvar234 = uint3x2( 0,1, 1,1, 1,0); - - // boolean mat constructors - const bool4x4 bvar441 = { 0,1,0,0, 1,1,0,0, 1,0,0,0, 0,0,0,0 }; - const bool4x4 bvar442 = bool4x4( 0,1,0,0, 1,1,0,0, 1,0,0,0, 0,0,0,0 ); - bool4x4 bvar443 = { 0,1,0,0, 1,1,0,0, 1,0,0,0, 0,0,0,0 }; - bool4x4 bvar444 = bool4x4( 0,1,0,0, 1,1,0,0, 1,0,0,0, 0,0,0,0 ); - - const bool4x2 bvar421 = { 0,1, 1,1, 1,0, 0,0 }; - const bool4x2 bvar422 = bool4x2( 0,1, 1,1, 1,0, 0,0 ); - bool4x2 bvar423 = { 0,1, 1,1, 1,0, 0,0 }; - bool4x2 bvar424 = bool4x2( 0,1, 1,1, 1,0, 0,0 ); - - const bool3x2 bvar321 = { 0,1, 1,1, 1,0 }; - const bool3x2 bvar322 = bool3x2( 0,1, 1,1, 1,0 ); - bool3x2 bvar323 = { 0,1, 1,1, 1,0 }; - bool3x2 bvar234 = bool3x2( 0,1, 1,1, 1,0); - - return 0; -} diff --git a/deps/glslang/Test/hlsl.coverage.frag b/deps/glslang/Test/hlsl.coverage.frag deleted file mode 100644 index c6cd0194..00000000 --- a/deps/glslang/Test/hlsl.coverage.frag +++ /dev/null @@ -1,20 +0,0 @@ - -// Verify that coverage mask is an array, as required by SPIR-V. - -struct PS_INPUT -{ -}; - -struct PS_OUTPUT -{ - float4 vColor : SV_Target0; - uint nCoverageMask : SV_Coverage; -}; - -PS_OUTPUT main( PS_INPUT i ) -{ - PS_OUTPUT o; - o.vColor = float4(1.0, 0.0, 0.0, 1.0); - o.nCoverageMask = 0; - return o; -} diff --git a/deps/glslang/Test/hlsl.dashI.vert b/deps/glslang/Test/hlsl.dashI.vert deleted file mode 100644 index a432be51..00000000 --- a/deps/glslang/Test/hlsl.dashI.vert +++ /dev/null @@ -1,13 +0,0 @@ -// For -Iinc1/path1 -Iinc1/path2 -// bar.h from local directory will define i1, while the ones from inc1/path1 and inc1/path2 will not. -// notHere.h is only in inc1/path1 and inc2/path2, and only inc1/path1 defines p1, p2, and p3 -// parent.h is local again, and defines i4 - -#include "bar.h" -#include "notHere.h" -#include "parent.h" - -float4 main() : SV_Position -{ - return i1 + i4 + p1 + p2 + p3; -} diff --git a/deps/glslang/Test/hlsl.deadFunctionMissingBody.vert b/deps/glslang/Test/hlsl.deadFunctionMissingBody.vert deleted file mode 100644 index a5f965ab..00000000 --- a/deps/glslang/Test/hlsl.deadFunctionMissingBody.vert +++ /dev/null @@ -1,8 +0,0 @@ -float4 main(): SV_Target0 { return 0; } -struct Surface { float3 albedo; }; -Surface surfaceShader(float fade); -Surface surfaceShaderExec() -{ - float fade = 0; - return surfaceShader(0); -} diff --git a/deps/glslang/Test/hlsl.depthGreater.frag b/deps/glslang/Test/hlsl.depthGreater.frag deleted file mode 100644 index ca41f089..00000000 --- a/deps/glslang/Test/hlsl.depthGreater.frag +++ /dev/null @@ -1,4 +0,0 @@ -void PixelShaderFunction(out float depth : SV_DepthGreaterEqual) -{ - depth = 0.2; -} diff --git a/deps/glslang/Test/hlsl.depthLess.frag b/deps/glslang/Test/hlsl.depthLess.frag deleted file mode 100644 index aca7dbb8..00000000 --- a/deps/glslang/Test/hlsl.depthLess.frag +++ /dev/null @@ -1,4 +0,0 @@ -float PixelShaderFunction() : SV_DepthLessEqual -{ - return 0.2; -} diff --git a/deps/glslang/Test/hlsl.discard.frag b/deps/glslang/Test/hlsl.discard.frag deleted file mode 100644 index 7d9271c9..00000000 --- a/deps/glslang/Test/hlsl.discard.frag +++ /dev/null @@ -1,14 +0,0 @@ -void foo(float f) -{ - if (f < 1.0) - discard; -} - -void PixelShaderFunction(float4 input) : COLOR0 -{ - foo(input.z); - if (input.x) - discard; - float f = input.x; - discard; -} diff --git a/deps/glslang/Test/hlsl.doLoop.frag b/deps/glslang/Test/hlsl.doLoop.frag deleted file mode 100644 index 8f4bfdce..00000000 --- a/deps/glslang/Test/hlsl.doLoop.frag +++ /dev/null @@ -1,29 +0,0 @@ -void f0() { - [unroll] do {} while (false); -} - -void f1() { - [unroll] do {;} while (false); -} - -float f2(float input) { - do { return (float4)input; } while (input > 2.0); -} - -void f3(float input) { - do ++input; while (input < 10.0); -} - -void f4(float input) { - do while (++input < 10.0); while (++input < 10.0); // nest while inside do-while -} - -float4 PixelShaderFunction(float input) : COLOR0 -{ - f0(); - f1(); - f2(input); - f3(input); - f4(input); - return (float4)input; -} diff --git a/deps/glslang/Test/hlsl.domain.1.tese b/deps/glslang/Test/hlsl.domain.1.tese deleted file mode 100644 index 7366e9bc..00000000 --- a/deps/glslang/Test/hlsl.domain.1.tese +++ /dev/null @@ -1,32 +0,0 @@ - -struct ds_in_t -{ - float4 pos : POSITION; - float3 norm : TEXCOORD0; -}; - -struct pcf_in_t -{ - float flTessFactor [3] : SV_TessFactor; - float flInsideTessFactor : SV_InsideTessFactor; -}; - -struct gs_in_t -{ - float4 pos : POSITION; - float3 norm : TEXCOORD0; -}; - -[domain ( "tri" )] -gs_in_t main (const OutputPatch i, float f : msem, float3 tesscoord : SV_DomainLocation, pcf_in_t pcf_data ) -{ - gs_in_t o; - - o.pos = i[0].pos + tesscoord.x * f; - o.norm = i[0].norm + tesscoord.y; - - tesscoord.z; - - return o; -} - diff --git a/deps/glslang/Test/hlsl.domain.2.tese b/deps/glslang/Test/hlsl.domain.2.tese deleted file mode 100644 index ffb53f1f..00000000 --- a/deps/glslang/Test/hlsl.domain.2.tese +++ /dev/null @@ -1,35 +0,0 @@ -// This will test having the PCF input to the domain shader not be given at the end of -// the argument list. We must move it to the end of the linkage in this case. - -struct ds_in_t -{ - float4 pos : POSITION; - float3 norm : TEXCOORD0; -}; - -struct pcf_in_t -{ - float flTessFactor [3] : SV_TessFactor; - float flInsideTessFactor : SV_InsideTessFactor; - float foo : PCF_FOO; -}; - -struct gs_in_t -{ - float4 pos : POSITION; - float3 norm : TEXCOORD0; -}; - -[domain ( "tri" )] -gs_in_t main (pcf_in_t pcf_data, const OutputPatch i, float3 tesscoord : SV_DomainLocation) -{ - gs_in_t o; - - o.pos = i[0].pos + tesscoord.x; - o.norm = i[0].norm + tesscoord.y; - - tesscoord.z; - - return o; -} - diff --git a/deps/glslang/Test/hlsl.domain.3.tese b/deps/glslang/Test/hlsl.domain.3.tese deleted file mode 100644 index aeceedac..00000000 --- a/deps/glslang/Test/hlsl.domain.3.tese +++ /dev/null @@ -1,31 +0,0 @@ -// Test vec2 tessellation coordinate: the IO form should be a vec3, copied to a vec2 -// at the entry point boundary. - -struct ds_in_t -{ - float4 pos : POSITION; - float3 norm : TEXCOORD0; -}; - -struct pcf_in_t -{ - float flTessFactor [3] : SV_TessFactor; - float flInsideTessFactor : SV_InsideTessFactor; -}; - -struct gs_in_t -{ - float4 pos : POSITION; - float3 norm : TEXCOORD0; -}; - -[domain ( "isoline" )] -gs_in_t main (const OutputPatch i, float2 tesscoord : SV_DomainLocation, pcf_in_t pcf_data ) -{ - gs_in_t o; - - o.pos = i[0].pos + tesscoord.x; - o.norm = i[0].norm + tesscoord.y; - - return o; -} diff --git a/deps/glslang/Test/hlsl.earlydepthstencil.frag b/deps/glslang/Test/hlsl.earlydepthstencil.frag deleted file mode 100644 index 268baaec..00000000 --- a/deps/glslang/Test/hlsl.earlydepthstencil.frag +++ /dev/null @@ -1,12 +0,0 @@ -RWTexture2D Values; - -struct InputStruct { - float4 Position : SV_POSITION; -}; - -[earlydepthstencil] -uint main(InputStruct input) : SV_Target { - uint oldVal; - InterlockedExchange(Values[uint2(input.Position.x, input.Position.y)], 1.0, oldVal); - return oldVal; -} diff --git a/deps/glslang/Test/hlsl.emptystruct.init.vert b/deps/glslang/Test/hlsl.emptystruct.init.vert deleted file mode 100644 index 02050f8b..00000000 --- a/deps/glslang/Test/hlsl.emptystruct.init.vert +++ /dev/null @@ -1,8 +0,0 @@ -struct Test { }; - -static const Test Test_Empty; - -float4 main(in uint vertexIndex : VERTEXID) : VS_OUT_POSITION -{ - return 0; -} diff --git a/deps/glslang/Test/hlsl.emptystructreturn.frag b/deps/glslang/Test/hlsl.emptystructreturn.frag deleted file mode 100644 index f6a772a3..00000000 --- a/deps/glslang/Test/hlsl.emptystructreturn.frag +++ /dev/null @@ -1,13 +0,0 @@ -struct ps_in -{ -}; - -struct ps_out -{ -}; - -ps_out main (ps_in i) -{ - ps_out o; - return o; -} diff --git a/deps/glslang/Test/hlsl.emptystructreturn.vert b/deps/glslang/Test/hlsl.emptystructreturn.vert deleted file mode 100644 index 8ac6578e..00000000 --- a/deps/glslang/Test/hlsl.emptystructreturn.vert +++ /dev/null @@ -1,13 +0,0 @@ -struct vs_in -{ -}; - -struct vs_out -{ -}; - -vs_out main (vs_in i) -{ - vs_out o; - return o; -} diff --git a/deps/glslang/Test/hlsl.entry-in.frag b/deps/glslang/Test/hlsl.entry-in.frag deleted file mode 100644 index e15955dd..00000000 --- a/deps/glslang/Test/hlsl.entry-in.frag +++ /dev/null @@ -1,20 +0,0 @@ -struct InParam { - float2 v; - float4 fragCoord : SV_POSITION; - int2 i2; -}; - -float fun(InParam p) -{ - return p.v.y + p.fragCoord.x; -} - -float4 PixelShaderFunction(InParam i) : COLOR0 -{ - InParam local; - local = i; - float ret1 = fun(local); - float ret2 = fun(i); - - return local.fragCoord * ret1 * ret2; -} diff --git a/deps/glslang/Test/hlsl.entry-out.frag b/deps/glslang/Test/hlsl.entry-out.frag deleted file mode 100644 index 27b4dd64..00000000 --- a/deps/glslang/Test/hlsl.entry-out.frag +++ /dev/null @@ -1,23 +0,0 @@ -struct OutParam { - float2 v; - int2 i; -}; - -void fun(out OutParam op) -{ - op.v = float2(0.4); - op.i = int2(7); -} - -float4 PixelShaderFunction(float4 input, out float4 out1, out OutParam out2, out OutParam out3) : COLOR0 -{ - out1 = input; - out2.v = 2.0; - out2.i = 3; - OutParam local; - local.v = 12.0; - local.i = 13; - fun(out3); - - return out1; -} diff --git a/deps/glslang/Test/hlsl.entry.rename.frag b/deps/glslang/Test/hlsl.entry.rename.frag deleted file mode 100644 index 188dfc58..00000000 --- a/deps/glslang/Test/hlsl.entry.rename.frag +++ /dev/null @@ -1,15 +0,0 @@ - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; -}; - -void not_the_entry_point() { } -int also_not_the_entry_point; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - psout.Color = 0; - return psout; -} diff --git a/deps/glslang/Test/hlsl.explicitDescriptorSet.frag b/deps/glslang/Test/hlsl.explicitDescriptorSet.frag deleted file mode 100644 index 1cff8d30..00000000 --- a/deps/glslang/Test/hlsl.explicitDescriptorSet.frag +++ /dev/null @@ -1,15 +0,0 @@ -SamplerState g_sSamp : register(s1); - -Texture1D g_tTex1df4 : register(t0); - -SamplerState g_sSamp2_amb; -uniform float floatval_amb; - -Buffer floatbuff; - -float4 main() : SV_Target0 -{ - g_sSamp2_amb; - - return 0; -} diff --git a/deps/glslang/Test/hlsl.flatten.return.frag b/deps/glslang/Test/hlsl.flatten.return.frag deleted file mode 100644 index 4aa3f501..00000000 --- a/deps/glslang/Test/hlsl.flatten.return.frag +++ /dev/null @@ -1,18 +0,0 @@ - -struct PS_OUTPUT -{ - float4 color : SV_Target0; - float other_struct_member1; - float other_struct_member2; - float other_struct_member3; -}; - -PS_OUTPUT Func1() -{ - return PS_OUTPUT(float4(1,1,1,1), 2, 3, 4); -} - -PS_OUTPUT main() -{ - return Func1(); -} diff --git a/deps/glslang/Test/hlsl.flattenOpaque.frag b/deps/glslang/Test/hlsl.flattenOpaque.frag deleted file mode 100644 index 279be8a0..00000000 --- a/deps/glslang/Test/hlsl.flattenOpaque.frag +++ /dev/null @@ -1,40 +0,0 @@ -struct os { - sampler2D s2D; -}; - -struct os2 { - sampler2D s2D; - Texture2D tex; -}; - -Texture2D tex; -os s; -os2 s2; - -float4 osCall1(os s) -{ - return tex.Sample(s.s2D, float2(0.2, 0.3)); -} - -float4 osCall2(os s, float2 f2) -{ - return tex.Sample(s.s2D, f2); -} - -float4 os2Call1(os2 s) -{ - return s.tex.Sample(s.s2D, float2(0.2, 0.3)); -} - -float4 os2Call2(os2 s, float2 f2) -{ - return s.tex.Sample(s.s2D, f2); -} - -float4 main() : SV_TARGET0 -{ - return osCall1(s) + - osCall2(s, float2(0.2, 0.3)) + - os2Call1(s2) + - os2Call2(s2, float2(0.2, 0.3)); -} diff --git a/deps/glslang/Test/hlsl.flattenOpaqueInit.vert b/deps/glslang/Test/hlsl.flattenOpaqueInit.vert deleted file mode 100644 index 9ed8bc7a..00000000 --- a/deps/glslang/Test/hlsl.flattenOpaqueInit.vert +++ /dev/null @@ -1,27 +0,0 @@ -struct FxaaTex { SamplerState smpl; Texture2D tex; }; -SamplerState g_tInputTexture_sampler; Texture2D g_tInputTexture; - -float4 lookUp(FxaaTex tex) -{ - return tex.tex.Sample(tex.smpl, float2(0.3, 0.4)); -} - -FxaaTex fillOpaque() -{ - FxaaTex t; - t.smpl = g_tInputTexture_sampler; - t.tex = g_tInputTexture; - return t; -} - -float4 main() : SV_TARGET0 -{ - FxaaTex tex1 = { g_tInputTexture_sampler, g_tInputTexture }; - float4 res = lookUp(tex1); - FxaaTex tex2 = fillOpaque(); - res += lookUp(tex2); - FxaaTex tex3 = tex1; - res += lookUp(tex3); - - return res; -} diff --git a/deps/glslang/Test/hlsl.flattenOpaqueInitMix.vert b/deps/glslang/Test/hlsl.flattenOpaqueInitMix.vert deleted file mode 100644 index 2e712ee5..00000000 --- a/deps/glslang/Test/hlsl.flattenOpaqueInitMix.vert +++ /dev/null @@ -1,13 +0,0 @@ -struct FxaaTex { SamplerState smpl; Texture2D tex; float f; }; -SamplerState g_tInputTexture_sampler; Texture2D g_tInputTexture; - -float4 lookUp(FxaaTex tex) -{ - return tex.tex.Sample(tex.smpl, float2(tex.f, tex.f)); -} - -float4 main() : SV_TARGET0 -{ - FxaaTex tex = { g_tInputTexture_sampler, g_tInputTexture, 0.5 }; - return lookUp(tex); -} \ No newline at end of file diff --git a/deps/glslang/Test/hlsl.flattenSubset.frag b/deps/glslang/Test/hlsl.flattenSubset.frag deleted file mode 100644 index c80e093c..00000000 --- a/deps/glslang/Test/hlsl.flattenSubset.frag +++ /dev/null @@ -1,36 +0,0 @@ -struct S0 -{ - int x; - int y; - SamplerState ss; -}; - -struct S1 -{ - float b; - SamplerState samplerState; - S0 s0; - int a; -}; - -struct S2 -{ - int a1; - int a2; - int a3; - int a4; - int a5; - S1 resources; -}; - -SamplerState samp; -Texture2D tex; - -float4 main(float4 vpos : VPOS) : COLOR0 -{ - S1 s1; - S2 s2; - s1.s0.ss = samp; - s2.resources = s1; - return tex.Sample(s2.resources.s0.ss, float2(0.5)); -} diff --git a/deps/glslang/Test/hlsl.flattenSubset2.frag b/deps/glslang/Test/hlsl.flattenSubset2.frag deleted file mode 100644 index 753475dc..00000000 --- a/deps/glslang/Test/hlsl.flattenSubset2.frag +++ /dev/null @@ -1,24 +0,0 @@ -struct Nested { float y; Texture2D texNested; }; -struct A { Nested n; float x; }; -struct B { Nested n; Texture2D tex; }; - -Texture2D someTex; - -float4 main(float4 vpos : VPOS) : COLOR0 -{ - A a1, a2; - B b; - - // Assignment of nested structs to nested structs - a1.n = a2.n; - b .n = a1.n; - - // Assignment of nested struct to standalone - Nested n = b.n; - - // Assignment to nestested struct members - a2.n.texNested = someTex; - a1.n.y = 1.0; - - return float4(0,0,0,0); -} diff --git a/deps/glslang/Test/hlsl.float1.frag b/deps/glslang/Test/hlsl.float1.frag deleted file mode 100644 index f9c0a6e0..00000000 --- a/deps/glslang/Test/hlsl.float1.frag +++ /dev/null @@ -1,7 +0,0 @@ -static float1 f1 = float1(1.0); -static float scalar = 2.0; - -float1 ShaderFunction(float1 inFloat1 : COLOR, float inScalar) : COLOR0 -{ - return f1 * scalar + inFloat1 * inScalar; -} diff --git a/deps/glslang/Test/hlsl.float4.frag b/deps/glslang/Test/hlsl.float4.frag deleted file mode 100644 index b541f5d3..00000000 --- a/deps/glslang/Test/hlsl.float4.frag +++ /dev/null @@ -1,11 +0,0 @@ -float4 AmbientColor = float4(1, 0.5, 0, 1); - -bool ff1 : SV_IsFrontFace; -float ff2 : packoffset(c1.y); -float4 ff3 : packoffset(c2) : register(ps_5_0, s0) ; -float4 ff4 : VPOS : packoffset(c3) : register(ps_5_0, s1) ; - -float4 ShaderFunction(float4 input) : COLOR0 -{ - return input * AmbientColor; -} diff --git a/deps/glslang/Test/hlsl.forLoop.frag b/deps/glslang/Test/hlsl.forLoop.frag deleted file mode 100644 index c0783dbd..00000000 --- a/deps/glslang/Test/hlsl.forLoop.frag +++ /dev/null @@ -1,59 +0,0 @@ -void f0() { - for (;;) ; -} - -void f1(float4 input) { - for (++input; ; ) ; -} - -void f2(float4 input) { - [unroll] for (; any(input != input); ) {} -} - -float f3(float4 input) { - for (; any(input != input); ) { return -input; } -} - -float f4(float4 input) { - for (--input; any(input != input); input += 2) { return -input; } -} - -void f5(float4 input) { - for (;;) if (input.x > 2.0) break; -} - -void f6(float4 input) { - for (;;) if (input.x > 2.0) continue; -} - -void f99() { - for (int first = 0, second = 1; ;) first + second; -} - -void f100(float ii) { - for (--ii, --ii, --ii;;) ii; -} - -float4 PixelShaderFunction(float4 input) : COLOR0 -{ - f0(); - f1(input); - f2(input); - f3(input); - f4(input); - f5(input); - f6(input); - - float ii; - for (int ii = -1; ii < 3; ++ii) if (ii == 2) continue; - --ii; - - f99(); - - 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; - - f100(ii); - - return input; -} diff --git a/deps/glslang/Test/hlsl.format.rwtexture.frag b/deps/glslang/Test/hlsl.format.rwtexture.frag deleted file mode 100644 index 87ee7de7..00000000 --- a/deps/glslang/Test/hlsl.format.rwtexture.frag +++ /dev/null @@ -1,63 +0,0 @@ -SamplerState g_sSamp : register(s0); - -[[spv::format_rgba32f]] RWTexture1D g_tTex1df4 : register(t0); -[[spv::format_rg32f]] RWTexture1D g_tTex1di4; -[[spv::format_rgba8snorm]] RWTexture1D g_tTex1du4; - -[[spv::format_rgba8i]] RWTexture2D g_tTex2df4; -[[spv::format_r11fg11fb10f]] RWTexture2D g_tTex2di4; -[[spv::format_r8snorm]] RWTexture2D g_tTex2du4; - -[[spv::format_rg8]] [[spv::nonwritable]] RWTexture3D g_tTex3df4; -[[spv::format_rgba16i]] [[spv::nonreadable]] RWTexture3D g_tTex3di4; -[[spv::format_r8i]] [[spv::nonwritable]] [[spv::nonreadable]] RWTexture3D g_tTex3du4; - -[[spv::format_rgba8ui]] RWTexture1DArray g_tTex1df4a; -[[spv::format_rg32ui]] RWTexture1DArray g_tTex1di4a; -[[spv::format_r16ui]] RWTexture1DArray g_tTex1du4a; - -[[spv::format_rgb10a2ui]] RWTexture2DArray g_tTex2df4a; -[[spv::format_r8ui]] RWTexture2DArray g_tTex2di4a; -[[spv::format_rgba16f]] RWTexture2DArray g_tTex2du4a; - -[[spv::format_rgba8 ]] RWTexture2DArray g_tTex01; -[[spv::format_rg16f ]] RWTexture2DArray g_tTex02; -[[spv::format_r16f ]] RWTexture2DArray g_tTex03; -[[spv::format_rgb10a2 ]] RWTexture2DArray g_tTex04; -[[spv::format_rg16 ]] RWTexture2DArray g_tTex05; -[[spv::format_r32f ]] RWTexture2DArray g_tTex06; -[[spv::format_rgba16 ]] RWTexture2DArray g_tTex07; -[[spv::format_r16 ]] RWTexture2DArray g_tTex08; -[[spv::format_r8 ]] RWTexture2DArray g_tTex09; -[[spv::format_rgba16snorm ]] RWTexture2DArray g_tTex10; -[[spv::format_rg16snorm ]] RWTexture2DArray g_tTex11; -[[spv::format_r16snorm ]] RWTexture2DArray g_tTex12; -[[spv::format_r8snorm ]] RWTexture2DArray g_tTex13; -[[spv::format_rgba32i ]] RWTexture2DArray g_tTex14; -[[spv::format_r32i ]] RWTexture2DArray g_tTex15; -[[spv::format_r32ui ]] RWTexture2DArray g_tTex16; -[[spv::format_rg16i ]] RWTexture2DArray g_tTex17; -[[spv::format_r16i ]] RWTexture2DArray g_tTex18; -[[spv::format_rg32i ]] RWTexture2DArray g_tTex19; -[[spv::format_rg8i ]] RWTexture2DArray g_tTex20; -[[spv::format_rg8ui ]] RWTexture2DArray g_tTex21; -[[spv::format_rgba32ui ]] RWTexture2DArray g_tTex22; -[[spv::format_rgba16ui ]] RWTexture2DArray g_tTex23; -[[spv::format_rg32ui ]] RWTexture2DArray g_tTex24; -[[spv::format_rg16ui ]] RWTexture2DArray g_tTex25; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.frag b/deps/glslang/Test/hlsl.frag deleted file mode 100644 index 1620ed58..00000000 --- a/deps/glslang/Test/hlsl.frag +++ /dev/null @@ -1,12 +0,0 @@ -float4 AmbientColor = float4(1, 0.5, 0, 1); -float AmbientIntensity = 0.1; - -float4 PixelShaderFunction(float4 input) : COLOR0 -{ - return input * AmbientIntensity + AmbientColor; - return input * input + input * input; - return input + input * input + input; - return ++input * -+-+--input; - return input++ + ++input; - return sin(input); -} diff --git a/deps/glslang/Test/hlsl.fraggeom.frag b/deps/glslang/Test/hlsl.fraggeom.frag deleted file mode 100644 index 5592e857..00000000 --- a/deps/glslang/Test/hlsl.fraggeom.frag +++ /dev/null @@ -1,17 +0,0 @@ -// test geometry shader in fragment shader. GS attributes should be successfully ignored. - -struct myVertex { - float4 pos : SV_Position; -}; - -[maxvertexcount(1)] -void GS_Draw(point myVertex IN, inout PointStream OutputStream) -{ - OutputStream.Append(IN); - OutputStream.RestartStrip(); -} - -float4 main() : SV_TARGET -{ - return 0; -} diff --git a/deps/glslang/Test/hlsl.function.frag b/deps/glslang/Test/hlsl.function.frag deleted file mode 100644 index 5834b319..00000000 --- a/deps/glslang/Test/hlsl.function.frag +++ /dev/null @@ -1,25 +0,0 @@ -float4 fun0() -{ - return 1.0f; -} - -uint fun2(float4 col) -{ - return 7; -} - -float4 fun4(uint id1, uniform uint id2) -{ - return id1 * id2; -} - -float4 fun1(int index) -{ - uint entityId = fun2(fun0()); - return fun4(entityId, entityId); -} - -int main() : SV_TARGET -{ - return fun1; -} \ No newline at end of file diff --git a/deps/glslang/Test/hlsl.gather.array.dx10.frag b/deps/glslang/Test/hlsl.gather.array.dx10.frag deleted file mode 100644 index 788c333b..00000000 --- a/deps/glslang/Test/hlsl.gather.array.dx10.frag +++ /dev/null @@ -1,43 +0,0 @@ -SamplerState g_sSamp : register(s0); - -Texture1DArray g_tTex1df4a : register(t1); - -uniform Texture1DArray g_tTex1df4 : register(t0); -Texture1DArray g_tTex1di4a; -Texture1DArray g_tTex1du4a; - -Texture2DArray g_tTex2df4a; -Texture2DArray g_tTex2di4a; -Texture2DArray g_tTex2du4a; - -TextureCubeArray g_tTexcdf4a; -TextureCubeArray g_tTexcdi4a; -TextureCubeArray g_tTexcdu4a; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - // No 1D gathers - - float4 txval20 = g_tTex2df4a . Gather(g_sSamp, float3(0.1, 0.2, 0.3)); - int4 txval21 = g_tTex2di4a . Gather(g_sSamp, float3(0.3, 0.4, 0.5)); - uint4 txval22 = g_tTex2du4a . Gather(g_sSamp, float3(0.5, 0.6, 0.7)); - - // no 3D gathers - - float4 txval40 = g_tTexcdf4a . Gather(g_sSamp, float4(0.1, 0.2, 0.3, 0.4)); - int4 txval41 = g_tTexcdi4a . Gather(g_sSamp, float4(0.4, 0.5, 0.6, 0.7)); - uint4 txval42 = g_tTexcdu4a . Gather(g_sSamp, float4(0.7, 0.8, 0.9, 1.0)); - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.gather.basic.dx10.frag b/deps/glslang/Test/hlsl.gather.basic.dx10.frag deleted file mode 100644 index be0cd31f..00000000 --- a/deps/glslang/Test/hlsl.gather.basic.dx10.frag +++ /dev/null @@ -1,48 +0,0 @@ -SamplerState g_sSamp : register(s0); -uniform sampler2D g_sSamp2d; - -Texture1D g_tTex1df4a : register(t1); - -uniform Texture1D g_tTex1df4 : register(t0); -Texture1D g_tTex1di4; -Texture1D g_tTex1du4; - -Texture2D g_tTex2df4; -Texture2D g_tTex2di4; -Texture2D g_tTex2du4; - -Texture3D g_tTex3df4; -Texture3D g_tTex3di4; -Texture3D g_tTex3du4; - -TextureCube g_tTexcdf4; -TextureCube g_tTexcdi4; -TextureCube g_tTexcdu4; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - // no 1D gathers - - float4 txval20 = g_tTex2df4 . Gather(g_sSamp, float2(0.1, 0.2)); - int4 txval21 = g_tTex2di4 . Gather(g_sSamp, float2(0.3, 0.4)); - uint4 txval22 = g_tTex2du4 . Gather(g_sSamp, float2(0.5, 0.6)); - - // no 3D gathers - - float4 txval40 = g_tTexcdf4 . Gather(g_sSamp, float3(0.1, 0.2, 0.3)); - int4 txval41 = g_tTexcdi4 . Gather(g_sSamp, float3(0.4, 0.5, 0.6)); - uint4 txval42 = g_tTexcdu4 . Gather(g_sSamp, float3(0.7, 0.8, 0.9)); - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.gather.basic.dx10.vert b/deps/glslang/Test/hlsl.gather.basic.dx10.vert deleted file mode 100644 index 4996f18c..00000000 --- a/deps/glslang/Test/hlsl.gather.basic.dx10.vert +++ /dev/null @@ -1,46 +0,0 @@ -SamplerState g_sSamp : register(s0); -uniform sampler2D g_sSamp2d; - -Texture1D g_tTex1df4a : register(t1); - -uniform Texture1D g_tTex1df4 : register(t0); -Texture1D g_tTex1di4; -Texture1D g_tTex1du4; - -Texture2D g_tTex2df4; -Texture2D g_tTex2di4; -Texture2D g_tTex2du4; - -Texture3D g_tTex3df4; -Texture3D g_tTex3di4; -Texture3D g_tTex3du4; - -TextureCube g_tTexcdf4; -TextureCube g_tTexcdi4; -TextureCube g_tTexcdu4; - -struct VS_OUTPUT -{ - float4 Pos : SV_Position; -}; - -VS_OUTPUT main() -{ - VS_OUTPUT vsout; - - // no 1D gathers - - float4 txval20 = g_tTex2df4 . Gather(g_sSamp, float2(0.1, 0.2)); - int4 txval21 = g_tTex2di4 . Gather(g_sSamp, float2(0.3, 0.4)); - uint4 txval22 = g_tTex2du4 . Gather(g_sSamp, float2(0.5, 0.6)); - - // no 3D gathers - - float4 txval40 = g_tTexcdf4 . Gather(g_sSamp, float3(0.1, 0.2, 0.3)); - int4 txval41 = g_tTexcdi4 . Gather(g_sSamp, float3(0.4, 0.5, 0.6)); - uint4 txval42 = g_tTexcdu4 . Gather(g_sSamp, float3(0.7, 0.8, 0.9)); - - vsout.Pos = float4(0,0,0,0); - - return vsout; -} diff --git a/deps/glslang/Test/hlsl.gather.offset.dx10.frag b/deps/glslang/Test/hlsl.gather.offset.dx10.frag deleted file mode 100644 index 4d095c0e..00000000 --- a/deps/glslang/Test/hlsl.gather.offset.dx10.frag +++ /dev/null @@ -1,44 +0,0 @@ -SamplerState g_sSamp : register(s0); - -Texture1D g_tTex1df4a : register(t1); - -uniform Texture1D g_tTex1df4 : register(t0); -Texture1D g_tTex1di4; -Texture1D g_tTex1du4; - -Texture2D g_tTex2df4; -Texture2D g_tTex2di4; -Texture2D g_tTex2du4; - -Texture3D g_tTex3df4; -Texture3D g_tTex3di4; -Texture3D g_tTex3du4; - -TextureCube g_tTexcdf4; -TextureCube g_tTexcdi4; -TextureCube g_tTexcdu4; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - // no 1D Gathers - - float4 txval20 = g_tTex2df4 . Gather(g_sSamp, float2(0.1, 0.2), int2(1,0)); - int4 txval21 = g_tTex2di4 . Gather(g_sSamp, float2(0.3, 0.4), int2(1,1)); - uint4 txval22 = g_tTex2du4 . Gather(g_sSamp, float2(0.5, 0.6), int2(1,-1)); - - // no 3D gathers - // No Cube offset gathers - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.gather.offsetarray.dx10.frag b/deps/glslang/Test/hlsl.gather.offsetarray.dx10.frag deleted file mode 100644 index 5cc92525..00000000 --- a/deps/glslang/Test/hlsl.gather.offsetarray.dx10.frag +++ /dev/null @@ -1,36 +0,0 @@ -SamplerState g_sSamp : register(s0); - -Texture1DArray g_tTex1df4a : register(t1); - -uniform Texture1DArray g_tTex1df4 : register(t0); -Texture1DArray g_tTex1di4; -Texture1DArray g_tTex1du4; - -Texture2DArray g_tTex2df4; -Texture2DArray g_tTex2di4; -Texture2DArray g_tTex2du4; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - // No 1D gathers - - float4 txval20 = g_tTex2df4 . Gather(g_sSamp, float3(0.1, 0.2, 0.3), int2(1,0)); - int4 txval21 = g_tTex2di4 . Gather(g_sSamp, float3(0.3, 0.4, 0.4), int2(1,1)); - uint4 txval22 = g_tTex2du4 . Gather(g_sSamp, float3(0.5, 0.6, 0.7), int2(1,-1)); - - // No 3D gathers - // No Cube offset gathers - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.gatherRGBA.array.dx10.frag b/deps/glslang/Test/hlsl.gatherRGBA.array.dx10.frag deleted file mode 100644 index 279b6d60..00000000 --- a/deps/glslang/Test/hlsl.gatherRGBA.array.dx10.frag +++ /dev/null @@ -1,71 +0,0 @@ -SamplerState g_sSamp : register(s0); -uniform sampler2D g_sSamp2d; - -uniform Texture1DArray g_tTex1df4a : register(t0); -Texture1DArray g_tTex1di4a; -Texture1DArray g_tTex1du4a; - -Texture2DArray g_tTex2df4a; -Texture2DArray g_tTex2di4a; -Texture2DArray g_tTex2du4a; - -TextureCubeArray g_tTexcdf4a; -TextureCubeArray g_tTexcdi4a; -TextureCubeArray g_tTexcdu4a; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -uniform float c1; -uniform float2 c2; -uniform float3 c3; -uniform float4 c4; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - // no 1D gathers - - float4 txval00 = g_tTex2df4a . GatherRed(g_sSamp, c3); - int4 txval01 = g_tTex2di4a . GatherRed(g_sSamp, c3); - uint4 txval02 = g_tTex2du4a . GatherRed(g_sSamp, c3); - - float4 txval10 = g_tTex2df4a . GatherGreen(g_sSamp, c3); - int4 txval11 = g_tTex2di4a . GatherGreen(g_sSamp, c3); - uint4 txval12 = g_tTex2du4a . GatherGreen(g_sSamp, c3); - - float4 txval20 = g_tTex2df4a . GatherBlue(g_sSamp, c3); - int4 txval21 = g_tTex2di4a . GatherBlue(g_sSamp, c3); - uint4 txval22 = g_tTex2du4a . GatherBlue(g_sSamp, c3); - - float4 txval30 = g_tTex2df4a . GatherAlpha(g_sSamp, c3); - int4 txval31 = g_tTex2di4a . GatherAlpha(g_sSamp, c3); - uint4 txval32 = g_tTex2du4a . GatherAlpha(g_sSamp, c3); - - // no 3D gathers - - float4 txval40 = g_tTexcdf4a . GatherRed(g_sSamp, c4); - int4 txval41 = g_tTexcdi4a . GatherRed(g_sSamp, c4); - uint4 txval42 = g_tTexcdu4a . GatherRed(g_sSamp, c4); - - float4 txval50 = g_tTexcdf4a . GatherGreen(g_sSamp, c4); - int4 txval51 = g_tTexcdi4a . GatherGreen(g_sSamp, c4); - uint4 txval52 = g_tTexcdu4a . GatherGreen(g_sSamp, c4); - - float4 txval60 = g_tTexcdf4a . GatherBlue(g_sSamp, c4); - int4 txval61 = g_tTexcdi4a . GatherBlue(g_sSamp, c4); - uint4 txval62 = g_tTexcdu4a . GatherBlue(g_sSamp, c4); - - float4 txval70 = g_tTexcdf4a . GatherAlpha(g_sSamp, c4); - int4 txval71 = g_tTexcdi4a . GatherAlpha(g_sSamp, c4); - uint4 txval72 = g_tTexcdu4a . GatherAlpha(g_sSamp, c4); - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.gatherRGBA.basic.dx10.frag b/deps/glslang/Test/hlsl.gatherRGBA.basic.dx10.frag deleted file mode 100644 index 17fae193..00000000 --- a/deps/glslang/Test/hlsl.gatherRGBA.basic.dx10.frag +++ /dev/null @@ -1,77 +0,0 @@ -SamplerState g_sSamp : register(s0); -uniform sampler2D g_sSamp2d; - -Texture1D g_tTex1df4a : register(t1); - -uniform Texture1D g_tTex1df4 : register(t0); -Texture1D g_tTex1di4; -Texture1D g_tTex1du4; - -Texture2D g_tTex2df4; -Texture2D g_tTex2di4; -Texture2D g_tTex2du4; - -Texture3D g_tTex3df4; -Texture3D g_tTex3di4; -Texture3D g_tTex3du4; - -TextureCube g_tTexcdf4; -TextureCube g_tTexcdi4; -TextureCube g_tTexcdu4; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -uniform float c1; -uniform float2 c2; -uniform float3 c3; -uniform float4 c4; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - // no 1D gathers - - float4 txval00 = g_tTex2df4 . GatherRed(g_sSamp, c2); - int4 txval01 = g_tTex2di4 . GatherRed(g_sSamp, c2); - uint4 txval02 = g_tTex2du4 . GatherRed(g_sSamp, c2); - - float4 txval10 = g_tTex2df4 . GatherGreen(g_sSamp, c2); - int4 txval11 = g_tTex2di4 . GatherGreen(g_sSamp, c2); - uint4 txval12 = g_tTex2du4 . GatherGreen(g_sSamp, c2); - - float4 txval20 = g_tTex2df4 . GatherBlue(g_sSamp, c2); - int4 txval21 = g_tTex2di4 . GatherBlue(g_sSamp, c2); - uint4 txval22 = g_tTex2du4 . GatherBlue(g_sSamp, c2); - - float4 txval30 = g_tTex2df4 . GatherAlpha(g_sSamp, c2); - int4 txval31 = g_tTex2di4 . GatherAlpha(g_sSamp, c2); - uint4 txval32 = g_tTex2du4 . GatherAlpha(g_sSamp, c2); - - // no 3D gathers - - float4 txval40 = g_tTexcdf4 . GatherRed(g_sSamp, c3); - int4 txval41 = g_tTexcdi4 . GatherRed(g_sSamp, c3); - uint4 txval42 = g_tTexcdu4 . GatherRed(g_sSamp, c3); - - float4 txval50 = g_tTexcdf4 . GatherGreen(g_sSamp, c3); - int4 txval51 = g_tTexcdi4 . GatherGreen(g_sSamp, c3); - uint4 txval52 = g_tTexcdu4 . GatherGreen(g_sSamp, c3); - - float4 txval60 = g_tTexcdf4 . GatherBlue(g_sSamp, c3); - int4 txval61 = g_tTexcdi4 . GatherBlue(g_sSamp, c3); - uint4 txval62 = g_tTexcdu4 . GatherBlue(g_sSamp, c3); - - float4 txval70 = g_tTexcdf4 . GatherAlpha(g_sSamp, c3); - int4 txval71 = g_tTexcdi4 . GatherAlpha(g_sSamp, c3); - uint4 txval72 = g_tTexcdu4 . GatherAlpha(g_sSamp, c3); - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.gatherRGBA.offset.dx10.frag b/deps/glslang/Test/hlsl.gatherRGBA.offset.dx10.frag deleted file mode 100644 index a8909b4a..00000000 --- a/deps/glslang/Test/hlsl.gatherRGBA.offset.dx10.frag +++ /dev/null @@ -1,116 +0,0 @@ -SamplerState g_sSamp : register(s0); -uniform sampler2D g_sSamp2d; - -Texture1D g_tTex1df4a : register(t1); - -uniform Texture1D g_tTex1df4 : register(t0); -Texture1D g_tTex1di4; -Texture1D g_tTex1du4; - -Texture2D g_tTex2df4; -Texture2D g_tTex2di4; -Texture2D g_tTex2du4; - -Texture3D g_tTex3df4; -Texture3D g_tTex3di4; -Texture3D g_tTex3du4; - -TextureCube g_tTexcdf4; -TextureCube g_tTexcdi4; -TextureCube g_tTexcdu4; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -uniform float c1; -uniform float2 c2; -uniform float3 c3; -uniform float4 c4; - -uniform int o1; -uniform int2 o2; -uniform int3 o3; -uniform int4 o4; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - uint status; - - // no 1D gathers - - float4 txval001 = g_tTex2df4 . GatherRed(g_sSamp, c2, o2); - int4 txval011 = g_tTex2di4 . GatherRed(g_sSamp, c2, o2); - uint4 txval021 = g_tTex2du4 . GatherRed(g_sSamp, c2, o2); - - float4 txval004 = g_tTex2df4 . GatherRed(g_sSamp, c2, o2, o2, o2, o2); - int4 txval014 = g_tTex2di4 . GatherRed(g_sSamp, c2, o2, o2, o2, o2); - uint4 txval024 = g_tTex2du4 . GatherRed(g_sSamp, c2, o2, o2, o2, o2); - - // float4 txval00s = g_tTex2df4 . GatherRed(g_sSamp, c2, o2, status); - // int4 txval01s = g_tTex2di4 . GatherRed(g_sSamp, c2, o2, status); - // uint4 txval02s = g_tTex2du4 . GatherRed(g_sSamp, c2, o2, status); - - // float4 txval004s = g_tTex2df4 . GatherRed(g_sSamp, c2, o2, o2, o2, o2, status); - // int4 txval014s = g_tTex2di4 . GatherRed(g_sSamp, c2, o2, o2, o2, o2, status); - // uint4 txval024s = g_tTex2du4 . GatherRed(g_sSamp, c2, o2, o2, o2, o2, status); - - float4 txval101 = g_tTex2df4 . GatherGreen(g_sSamp, c2, o2); - int4 txval111 = g_tTex2di4 . GatherGreen(g_sSamp, c2, o2); - uint4 txval121 = g_tTex2du4 . GatherGreen(g_sSamp, c2, o2); - - float4 txval104 = g_tTex2df4 . GatherGreen(g_sSamp, c2, o2, o2, o2, o2); - int4 txval114 = g_tTex2di4 . GatherGreen(g_sSamp, c2, o2, o2, o2, o2); - uint4 txval124 = g_tTex2du4 . GatherGreen(g_sSamp, c2, o2, o2, o2, o2); - - // float4 txval10s = g_tTex2df4 . GatherGreen(g_sSamp, c2, o2, status); - // int4 txval11s = g_tTex2di4 . GatherGreen(g_sSamp, c2, o2, status); - // uint4 txval12s = g_tTex2du4 . GatherGreen(g_sSamp, c2, o2, status); - - // float4 txval104 = g_tTex2df4 . GatherGreen(g_sSamp, c2, o2, o2, o2, o2, status); - // int4 txval114 = g_tTex2di4 . GatherGreen(g_sSamp, c2, o2, o2, o2, o2, status); - // uint4 txval124 = g_tTex2du4 . GatherGreen(g_sSamp, c2, o2, o2, o2, o2, status); - - float4 txval201 = g_tTex2df4 . GatherBlue(g_sSamp, c2, o2); - int4 txval211 = g_tTex2di4 . GatherBlue(g_sSamp, c2, o2); - uint4 txval221 = g_tTex2du4 . GatherBlue(g_sSamp, c2, o2); - - float4 txval204 = g_tTex2df4 . GatherBlue(g_sSamp, c2, o2, o2, o2, o2); - int4 txval214 = g_tTex2di4 . GatherBlue(g_sSamp, c2, o2, o2, o2, o2); - uint4 txval224 = g_tTex2du4 . GatherBlue(g_sSamp, c2, o2, o2, o2, o2); - - // float4 txval204s = g_tTex2df4 . GatherBlue(g_sSamp, c2, o2, o2, o2, o2, status); - // int4 txval214s = g_tTex2di4 . GatherBlue(g_sSamp, c2, o2, o2, o2, o2, status); - // uint4 txval224s = g_tTex2du4 . GatherBlue(g_sSamp, c2, o2, o2, o2, o2, status); - - // float4 txval20s = g_tTex2df4 . GatherBlue(g_sSamp, c2, o2, status); - // int4 txval21s = g_tTex2di4 . GatherBlue(g_sSamp, c2, o2, status); - // uint4 txval22s = g_tTex2du4 . GatherBlue(g_sSamp, c2, o2, status); - - float4 txval301 = g_tTex2df4 . GatherAlpha(g_sSamp, c2, o2); - int4 txval311 = g_tTex2di4 . GatherAlpha(g_sSamp, c2, o2); - uint4 txval321 = g_tTex2du4 . GatherAlpha(g_sSamp, c2, o2); - - float4 txval304 = g_tTex2df4 . GatherAlpha(g_sSamp, c2, o2, o2, o2, o2); - int4 txval314 = g_tTex2di4 . GatherAlpha(g_sSamp, c2, o2, o2, o2, o2); - uint4 txval324 = g_tTex2du4 . GatherAlpha(g_sSamp, c2, o2, o2, o2, o2); - - // float4 txval304s = g_tTex2df4 . GatherAlpha(g_sSamp, c2, o2, o2, o2, o2, status); - // int4 txval314s = g_tTex2di4 . GatherAlpha(g_sSamp, c2, o2, o2, o2, o2, status); - // uint4 txval324s = g_tTex2du4 . GatherAlpha(g_sSamp, c2, o2, o2, o2, o2, status); - - // float4 txval30s = g_tTex2df4 . GatherAlpha(g_sSamp, c2, o2, status); - // int4 txval31s = g_tTex2di4 . GatherAlpha(g_sSamp, c2, o2, status); - // uint4 txval32s = g_tTex2du4 . GatherAlpha(g_sSamp, c2, o2, status); - - // no 3D gathers with offset - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.gatherRGBA.offsetarray.dx10.frag b/deps/glslang/Test/hlsl.gatherRGBA.offsetarray.dx10.frag deleted file mode 100644 index ca32f56b..00000000 --- a/deps/glslang/Test/hlsl.gatherRGBA.offsetarray.dx10.frag +++ /dev/null @@ -1,110 +0,0 @@ -SamplerState g_sSamp : register(s0); -uniform sampler2D g_sSamp2d; - -uniform Texture1DArray g_tTex1df4a : register(t0); -Texture1DArray g_tTex1di4a; -Texture1DArray g_tTex1du4a; - -Texture2DArray g_tTex2df4a; -Texture2DArray g_tTex2di4a; -Texture2DArray g_tTex2du4a; - -TextureCubeArray g_tTexcdf4a; -TextureCubeArray g_tTexcdi4a; -TextureCubeArray g_tTexcdu4a; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -uniform float c1; -uniform float2 c2; -uniform float3 c3; -uniform float4 c4; - -uniform int o1; -uniform int2 o2; -uniform int3 o3; -uniform int4 o4; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - uint status; - - // no 1D gathers - - float4 txval001 = g_tTex2df4a . GatherRed(g_sSamp, c3, o2); - int4 txval011 = g_tTex2di4a . GatherRed(g_sSamp, c3, o2); - uint4 txval021 = g_tTex2du4a . GatherRed(g_sSamp, c3, o2); - - float4 txval004 = g_tTex2df4a . GatherRed(g_sSamp, c3, o2, o2, o2, o2); - int4 txval014 = g_tTex2di4a . GatherRed(g_sSamp, c3, o2, o2, o2, o2); - uint4 txval024 = g_tTex2du4a . GatherRed(g_sSamp, c3, o2, o2, o2, o2); - - // float4 txval00s = g_tTex2df4a . GatherRed(g_sSamp, c3, o2, status); - // int4 txval01s = g_tTex2di4a . GatherRed(g_sSamp, c3, o2, status); - // uint4 txval02s = g_tTex2du4a . GatherRed(g_sSamp, c3, o2, status); - - // float4 txval004s = g_tTex2df4a . GatherRed(g_sSamp, c3, o2, o2, o2, o2, status); - // int4 txval014s = g_tTex2di4a . GatherRed(g_sSamp, c3, o2, o2, o2, o2, status); - // uint4 txval024s = g_tTex2du4a . GatherRed(g_sSamp, c3, o2, o2, o2, o2, status); - - float4 txval101 = g_tTex2df4a . GatherGreen(g_sSamp, c3, o2); - int4 txval111 = g_tTex2di4a . GatherGreen(g_sSamp, c3, o2); - uint4 txval121 = g_tTex2du4a . GatherGreen(g_sSamp, c3, o2); - - float4 txval104 = g_tTex2df4a . GatherGreen(g_sSamp, c3, o2, o2, o2, o2); - int4 txval114 = g_tTex2di4a . GatherGreen(g_sSamp, c3, o2, o2, o2, o2); - uint4 txval124 = g_tTex2du4a . GatherGreen(g_sSamp, c3, o2, o2, o2, o2); - - // float4 txval10s = g_tTex2df4a . GatherGreen(g_sSamp, c3, o2, status); - // int4 txval11s = g_tTex2di4a . GatherGreen(g_sSamp, c3, o2, status); - // uint4 txval12s = g_tTex2du4a . GatherGreen(g_sSamp, c3, o2, status); - - // float4 txval104 = g_tTex2df4a . GatherGreen(g_sSamp, c3, o2, o2, o2, o2, status); - // int4 txval114 = g_tTex2di4a . GatherGreen(g_sSamp, c3, o2, o2, o2, o2, status); - // uint4 txval124 = g_tTex2du4a . GatherGreen(g_sSamp, c3, o2, o2, o2, o2, status); - - float4 txval201 = g_tTex2df4a . GatherBlue(g_sSamp, c3, o2); - int4 txval211 = g_tTex2di4a . GatherBlue(g_sSamp, c3, o2); - uint4 txval221 = g_tTex2du4a . GatherBlue(g_sSamp, c3, o2); - - float4 txval204 = g_tTex2df4a . GatherBlue(g_sSamp, c3, o2, o2, o2, o2); - int4 txval214 = g_tTex2di4a . GatherBlue(g_sSamp, c3, o2, o2, o2, o2); - uint4 txval224 = g_tTex2du4a . GatherBlue(g_sSamp, c3, o2, o2, o2, o2); - - // float4 txval204s = g_tTex2df4a . GatherBlue(g_sSamp, c3, o2, o2, o2, o2, status); - // int4 txval214s = g_tTex2di4a . GatherBlue(g_sSamp, c3, o2, o2, o2, o2, status); - // uint4 txval224s = g_tTex2du4a . GatherBlue(g_sSamp, c3, o2, o2, o2, o2, status); - - // float4 txval20s = g_tTex2df4a . GatherBlue(g_sSamp, c3, o2, status); - // int4 txval21s = g_tTex2di4a . GatherBlue(g_sSamp, c3, o2, status); - // uint4 txval22s = g_tTex2du4a . GatherBlue(g_sSamp, c3, o2, status); - - float4 txval301 = g_tTex2df4a . GatherAlpha(g_sSamp, c3, o2); - int4 txval311 = g_tTex2di4a . GatherAlpha(g_sSamp, c3, o2); - uint4 txval321 = g_tTex2du4a . GatherAlpha(g_sSamp, c3, o2); - - float4 txval304 = g_tTex2df4a . GatherAlpha(g_sSamp, c3, o2, o2, o2, o2); - int4 txval314 = g_tTex2di4a . GatherAlpha(g_sSamp, c3, o2, o2, o2, o2); - uint4 txval324 = g_tTex2du4a . GatherAlpha(g_sSamp, c3, o2, o2, o2, o2); - - // float4 txval304s = g_tTex2df4a . GatherAlpha(g_sSamp, c3, o2, o2, o2, o2, status); - // int4 txval314s = g_tTex2di4a . GatherAlpha(g_sSamp, c3, o2, o2, o2, o2, status); - // uint4 txval324s = g_tTex2du4a . GatherAlpha(g_sSamp, c3, o2, o2, o2, o2, status); - - // float4 txval30s = g_tTex2df4a . GatherAlpha(g_sSamp, c3, o2, status); - // int4 txval31s = g_tTex2di4a . GatherAlpha(g_sSamp, c3, o2, status); - // uint4 txval32s = g_tTex2du4a . GatherAlpha(g_sSamp, c3, o2, status); - - // no 3D gathers with offset - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.gathercmpRGBA.array.dx10.frag b/deps/glslang/Test/hlsl.gathercmpRGBA.array.dx10.frag deleted file mode 100644 index b6310acb..00000000 --- a/deps/glslang/Test/hlsl.gathercmpRGBA.array.dx10.frag +++ /dev/null @@ -1,74 +0,0 @@ -SamplerComparisonState g_sSampCmp : register(s0); - -uniform Texture1DArray g_tTex1df4a : register(t0); -Texture1DArray g_tTex1di4a; -Texture1DArray g_tTex1du4a; - -Texture2DArray g_tTex2df4a; -Texture2DArray g_tTex2di4a; -Texture2DArray g_tTex2du4a; - -TextureCubeArray g_tTexcdf4a; -TextureCubeArray g_tTexcdi4a; -TextureCubeArray g_tTexcdu4a; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -uniform float c1; -uniform float2 c2; -uniform float3 c3; -uniform float4 c4; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - // no 1D gathers - - float4 txval80 = g_tTex2df4a . GatherCmp(g_sSampCmp, c3, .75); - int4 txval81 = g_tTex2di4a . GatherCmp(g_sSampCmp, c3, .75); - uint4 txval82 = g_tTex2du4a . GatherCmp(g_sSampCmp, c3, .75); - - float4 txval00 = g_tTex2df4a . GatherCmpRed(g_sSampCmp, c3, .75); - int4 txval01 = g_tTex2di4a . GatherCmpRed(g_sSampCmp, c3, .75); - uint4 txval02 = g_tTex2du4a . GatherCmpRed(g_sSampCmp, c3, .75); - - float4 txval10 = g_tTex2df4a . GatherCmpGreen(g_sSampCmp, c3, .75); - int4 txval11 = g_tTex2di4a . GatherCmpGreen(g_sSampCmp, c3, .75); - uint4 txval12 = g_tTex2du4a . GatherCmpGreen(g_sSampCmp, c3, .75); - - float4 txval20 = g_tTex2df4a . GatherCmpBlue(g_sSampCmp, c3, .75); - int4 txval21 = g_tTex2di4a . GatherCmpBlue(g_sSampCmp, c3, .75); - uint4 txval22 = g_tTex2du4a . GatherCmpBlue(g_sSampCmp, c3, .75); - - float4 txval30 = g_tTex2df4a . GatherCmpAlpha(g_sSampCmp, c3, .75); - int4 txval31 = g_tTex2di4a . GatherCmpAlpha(g_sSampCmp, c3, .75); - uint4 txval32 = g_tTex2du4a . GatherCmpAlpha(g_sSampCmp, c3, .75); - - // no 3D gathers - - float4 txval40 = g_tTexcdf4a . GatherCmpRed(g_sSampCmp, c4, .75); - int4 txval41 = g_tTexcdi4a . GatherCmpRed(g_sSampCmp, c4, .75); - uint4 txval42 = g_tTexcdu4a . GatherCmpRed(g_sSampCmp, c4, .75); - - float4 txval50 = g_tTexcdf4a . GatherCmpGreen(g_sSampCmp, c4, .75); - int4 txval51 = g_tTexcdi4a . GatherCmpGreen(g_sSampCmp, c4, .75); - uint4 txval52 = g_tTexcdu4a . GatherCmpGreen(g_sSampCmp, c4, .75); - - float4 txval60 = g_tTexcdf4a . GatherCmpBlue(g_sSampCmp, c4, .75); - int4 txval61 = g_tTexcdi4a . GatherCmpBlue(g_sSampCmp, c4, .75); - uint4 txval62 = g_tTexcdu4a . GatherCmpBlue(g_sSampCmp, c4, .75); - - float4 txval70 = g_tTexcdf4a . GatherCmpAlpha(g_sSampCmp, c4, .75); - int4 txval71 = g_tTexcdi4a . GatherCmpAlpha(g_sSampCmp, c4, .75); - uint4 txval72 = g_tTexcdu4a . GatherCmpAlpha(g_sSampCmp, c4, .75); - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.gathercmpRGBA.basic.dx10.frag b/deps/glslang/Test/hlsl.gathercmpRGBA.basic.dx10.frag deleted file mode 100644 index 94ef576d..00000000 --- a/deps/glslang/Test/hlsl.gathercmpRGBA.basic.dx10.frag +++ /dev/null @@ -1,84 +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; - - // no 1D gathers - - float4 txval00 = g_tTex2df4 . GatherCmpRed(g_sSampCmp, c2, 0.75); - int4 txval01 = g_tTex2di4 . GatherCmpRed(g_sSampCmp, c2, 0.75); - uint4 txval02 = g_tTex2du4 . GatherCmpRed(g_sSampCmp, c2, 0.75); - - float4 txval10 = g_tTex2df4 . GatherCmpGreen(g_sSampCmp, c2, 0.75); - int4 txval11 = g_tTex2di4 . GatherCmpGreen(g_sSampCmp, c2, 0.75); - uint4 txval12 = g_tTex2du4 . GatherCmpGreen(g_sSampCmp, c2, 0.75); - - float4 txval20 = g_tTex2df4 . GatherCmpBlue(g_sSampCmp, c2, 0.75); - int4 txval21 = g_tTex2di4 . GatherCmpBlue(g_sSampCmp, c2, 0.75); - uint4 txval22 = g_tTex2du4 . GatherCmpBlue(g_sSampCmp, c2, 0.75); - - float4 txval30 = g_tTex2df4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75); - int4 txval31 = g_tTex2di4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75); - uint4 txval32 = g_tTex2du4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75); - - float4 txval80 = g_tTex2df4 . GatherCmp(g_sSampCmp, c2, 0.75); - int4 txval81 = g_tTex2di4 . GatherCmp(g_sSampCmp, c2, 0.75); - uint4 txval82 = g_tTex2du4 . GatherCmp(g_sSampCmp, c2, 0.75); - - // no 3D gathers - - float4 txval40 = g_tTexcdf4 . GatherCmpRed(g_sSampCmp, c3, 0.75); - int4 txval41 = g_tTexcdi4 . GatherCmpRed(g_sSampCmp, c3, 0.75); - uint4 txval42 = g_tTexcdu4 . GatherCmpRed(g_sSampCmp, c3, 0.75); - - float4 txval50 = g_tTexcdf4 . GatherCmpGreen(g_sSampCmp, c3, 0.75); - int4 txval51 = g_tTexcdi4 . GatherCmpGreen(g_sSampCmp, c3, 0.75); - uint4 txval52 = g_tTexcdu4 . GatherCmpGreen(g_sSampCmp, c3, 0.75); - - float4 txval60 = g_tTexcdf4 . GatherCmpBlue(g_sSampCmp, c3, 0.75); - int4 txval61 = g_tTexcdi4 . GatherCmpBlue(g_sSampCmp, c3, 0.75); - uint4 txval62 = g_tTexcdu4 . GatherCmpBlue(g_sSampCmp, c3, 0.75); - - float4 txval70 = g_tTexcdf4 . GatherCmpAlpha(g_sSampCmp, c3, 0.75); - int4 txval71 = g_tTexcdi4 . GatherCmpAlpha(g_sSampCmp, c3, 0.75); - uint4 txval72 = g_tTexcdu4 . GatherCmpAlpha(g_sSampCmp, c3, 0.75); - - float4 txval90 = g_tTexcdf4 . GatherCmp(g_sSampCmp, c3, 0.75); - int4 txval91 = g_tTexcdi4 . GatherCmp(g_sSampCmp, c3, 0.75); - uint4 txval92 = g_tTexcdu4 . GatherCmp(g_sSampCmp, c3, 0.75); - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.gathercmpRGBA.offset.dx10.frag b/deps/glslang/Test/hlsl.gathercmpRGBA.offset.dx10.frag deleted file mode 100644 index 7287fe48..00000000 --- a/deps/glslang/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/Test/hlsl.gathercmpRGBA.offsetarray.dx10.frag b/deps/glslang/Test/hlsl.gathercmpRGBA.offsetarray.dx10.frag deleted file mode 100644 index 7f381bb1..00000000 --- a/deps/glslang/Test/hlsl.gathercmpRGBA.offsetarray.dx10.frag +++ /dev/null @@ -1,113 +0,0 @@ -SamplerComparisonState g_sSampCmp : register(s0); - -uniform Texture1DArray g_tTex1df4a : register(t0); -Texture1DArray g_tTex1di4a; -Texture1DArray g_tTex1du4a; - -Texture2DArray g_tTex2df4a; -Texture2DArray g_tTex2di4a; -Texture2DArray g_tTex2du4a; - -TextureCubeArray g_tTexcdf4a; -TextureCubeArray g_tTexcdi4a; -TextureCubeArray g_tTexcdu4a; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -uniform float c1; -uniform float2 c2; -uniform float3 c3; -uniform float4 c4; - -uniform int o1; -uniform int2 o2; -uniform int3 o3; -uniform int4 o4; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - uint status; - - // no 1D gathers - - float4 txval401 = g_tTex2df4a . GatherCmp(g_sSampCmp, c3, 0.75, o2); - int4 txval411 = g_tTex2di4a . GatherCmp(g_sSampCmp, c3, 0.75, o2); - uint4 txval421 = g_tTex2du4a . GatherCmp(g_sSampCmp, c3, 0.75, o2); - - float4 txval001 = g_tTex2df4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2); - int4 txval011 = g_tTex2di4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2); - uint4 txval021 = g_tTex2du4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2); - - float4 txval004 = g_tTex2df4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, o2, o2, o2); - int4 txval014 = g_tTex2di4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, o2, o2, o2); - uint4 txval024 = g_tTex2du4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, o2, o2, o2); - - // float4 txval00s = g_tTex2df4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, status); - // int4 txval01s = g_tTex2di4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, status); - // uint4 txval02s = g_tTex2du4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, status); - - // float4 txval004s = g_tTex2df4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status); - // int4 txval014s = g_tTex2di4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status); - // uint4 txval024s = g_tTex2du4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status); - - float4 txval101 = g_tTex2df4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2); - int4 txval111 = g_tTex2di4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2); - uint4 txval121 = g_tTex2du4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2); - - float4 txval104 = g_tTex2df4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, o2, o2, o2); - int4 txval114 = g_tTex2di4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, o2, o2, o2); - uint4 txval124 = g_tTex2du4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, o2, o2, o2); - - // float4 txval10s = g_tTex2df4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, status); - // int4 txval11s = g_tTex2di4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, status); - // uint4 txval12s = g_tTex2du4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, status); - - // float4 txval104 = g_tTex2df4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status); - // int4 txval114 = g_tTex2di4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status); - // uint4 txval124 = g_tTex2du4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status); - - float4 txval201 = g_tTex2df4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2); - int4 txval211 = g_tTex2di4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2); - uint4 txval221 = g_tTex2du4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2); - - float4 txval204 = g_tTex2df4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, o2, o2, o2); - int4 txval214 = g_tTex2di4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, o2, o2, o2); - uint4 txval224 = g_tTex2du4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, o2, o2, o2); - - // float4 txval204s = g_tTex2df4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status); - // int4 txval214s = g_tTex2di4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status); - // uint4 txval224s = g_tTex2du4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status); - - // float4 txval20s = g_tTex2df4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, status); - // int4 txval21s = g_tTex2di4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, status); - // uint4 txval22s = g_tTex2du4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, status); - - float4 txval301 = g_tTex2df4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2); - int4 txval311 = g_tTex2di4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2); - uint4 txval321 = g_tTex2du4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2); - - float4 txval304 = g_tTex2df4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, o2, o2, o2); - int4 txval314 = g_tTex2di4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, o2, o2, o2); - uint4 txval324 = g_tTex2du4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, o2, o2, o2); - - // float4 txval304s = g_tTex2df4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status); - // int4 txval314s = g_tTex2di4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status); - // uint4 txval324s = g_tTex2du4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status); - - // float4 txval30s = g_tTex2df4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, status); - // int4 txval31s = g_tTex2di4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, status); - // uint4 txval32s = g_tTex2du4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, status); - - // no 3D gathers with offset - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.getdimensions.dx10.frag b/deps/glslang/Test/hlsl.getdimensions.dx10.frag deleted file mode 100644 index bd9cc3b9..00000000 --- a/deps/glslang/Test/hlsl.getdimensions.dx10.frag +++ /dev/null @@ -1,280 +0,0 @@ -SamplerState g_sSamp : register(s0); - -uniform Texture1D g_tTex1df4 : register(t0); -Texture1D g_tTex1di4; -Texture1D g_tTex1du4; - -Texture2D g_tTex2df4; -Texture2D g_tTex2di4; -Texture2D g_tTex2du4; - -Texture3D g_tTex3df4; -Texture3D g_tTex3di4; -Texture3D g_tTex3du4; - -TextureCube g_tTexcdf4; -TextureCube g_tTexcdi4; -TextureCube g_tTexcdu4; - -Texture1DArray g_tTex1df4a; -Texture1DArray g_tTex1di4a; -Texture1DArray g_tTex1du4a; - -Texture2DArray g_tTex2df4a; -Texture2DArray g_tTex2di4a; -Texture2DArray g_tTex2du4a; - -TextureCubeArray g_tTexcdf4a; -TextureCubeArray g_tTexcdi4a; -TextureCubeArray g_tTexcdu4a; - -Texture2DMS g_tTex2dmsf4; -Texture2DMS g_tTex2dmsi4; -Texture2DMS g_tTex2dmsu4; - -Texture2DMSArray g_tTex2dmsf4a; -Texture2DMSArray g_tTex2dmsi4a; -Texture2DMSArray g_tTex2dmsu4a; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - uint MipLevel; - uint WidthU; - uint HeightU; - uint ElementsU; - uint DepthU; - uint NumberOfLevelsU; - uint NumberOfSamplesU; - - float WidthF; - float HeightF; - float ElementsF; - float DepthF; - float NumberOfLevelsF; - float NumberOfSamplesF; - - // 1D, float tx, uint params - g_tTex1df4 . GetDimensions(WidthU); - g_tTex1df4 . GetDimensions(6, WidthU, NumberOfLevelsU); - - // 1D, int, uint params - g_tTex1di4 . GetDimensions(WidthU); - g_tTex1di4 . GetDimensions(6, WidthU, NumberOfLevelsU); - - // 1D, uint, uint params - g_tTex1du4 . GetDimensions(WidthU); - g_tTex1du4 . GetDimensions(6, WidthU, NumberOfLevelsU); - - // 1DArray, float tx, uint params - g_tTex1df4a . GetDimensions(WidthU, ElementsU); - g_tTex1df4a . GetDimensions(6, WidthU, ElementsU, NumberOfLevelsU); - - // 1DArray, int, uint params - g_tTex1di4a . GetDimensions(WidthU, ElementsU); - g_tTex1di4a . GetDimensions(6, WidthU, ElementsU, NumberOfLevelsU); - - // 1DArray, uint, uint params - g_tTex1du4a . GetDimensions(WidthU, ElementsU); - g_tTex1du4a . GetDimensions(6, WidthU, ElementsU, NumberOfLevelsU); - - // 2D, float tx, uint params - g_tTex2df4 . GetDimensions(WidthU, HeightU); - g_tTex2df4 . GetDimensions(6, WidthU, HeightU, NumberOfLevelsU); - - // 2D, int, uint params - g_tTex2di4 . GetDimensions(WidthU, HeightU); - g_tTex2di4 . GetDimensions(6, WidthU, HeightU, NumberOfLevelsU); - - // 2D, uint, uint params - g_tTex2du4 . GetDimensions(WidthU, HeightU); - g_tTex2du4 . GetDimensions(6, WidthU, HeightU, NumberOfLevelsU); - - // 2Darray, float tx, uint params - g_tTex2df4a . GetDimensions(WidthU, HeightU, ElementsU); - g_tTex2df4a . GetDimensions(6, WidthU, HeightU, ElementsU, NumberOfLevelsU); - - // 2Darray, int, uint params - g_tTex2di4a . GetDimensions(WidthU, HeightU, ElementsU); - g_tTex2di4a . GetDimensions(6, WidthU, HeightU, ElementsU, NumberOfLevelsU); - - // 2Darray, uint, uint params - g_tTex2du4a . GetDimensions(WidthU, HeightU, ElementsU); - g_tTex2du4a . GetDimensions(6, WidthU, HeightU, ElementsU, NumberOfLevelsU); - - // 3D, float tx, uint params - g_tTex3df4 . GetDimensions(WidthU, HeightU, DepthU); - g_tTex3df4 . GetDimensions(6, WidthU, HeightU, DepthU, NumberOfLevelsU); - - // 3D, int, uint params - g_tTex3di4 . GetDimensions(WidthU, HeightU, DepthU); - g_tTex3di4 . GetDimensions(6, WidthU, HeightU, DepthU, NumberOfLevelsU); - - // 3D, uint, uint params - g_tTex3du4 . GetDimensions(WidthU, HeightU, DepthU); - g_tTex3du4 . GetDimensions(6, WidthU, HeightU, DepthU, NumberOfLevelsU); - - // Cube, float tx, uint params - g_tTexcdf4 . GetDimensions(WidthU, HeightU); - g_tTexcdf4 . GetDimensions(6, WidthU, HeightU, NumberOfLevelsU); - - // Cube, int, uint params - g_tTexcdi4 . GetDimensions(WidthU, HeightU); - g_tTexcdi4 . GetDimensions(6, WidthU, HeightU, NumberOfLevelsU); - - // Cube, uint, uint params - g_tTexcdu4 . GetDimensions(WidthU, HeightU); - g_tTexcdu4 . GetDimensions(6, WidthU, HeightU, NumberOfLevelsU); - - // Cubearray, float tx, uint params - g_tTexcdf4a . GetDimensions(WidthU, HeightU, ElementsU); - g_tTexcdf4a . GetDimensions(6, WidthU, HeightU, ElementsU, NumberOfLevelsU); - - // Cubearray, int, uint params - g_tTexcdi4a . GetDimensions(WidthU, HeightU, ElementsU); - g_tTexcdi4a . GetDimensions(6, WidthU, HeightU, ElementsU, NumberOfLevelsU); - - // Cubearray, uint, uint params - g_tTexcdu4a . GetDimensions(WidthU, HeightU, ElementsU); - g_tTexcdu4a . GetDimensions(6, WidthU, HeightU, ElementsU, NumberOfLevelsU); - - // 2DMS, float tx, uint params - g_tTex2dmsf4 . GetDimensions(WidthU, HeightU, NumberOfSamplesU); - - // 2DMS, int tx, uint params - g_tTex2dmsi4 . GetDimensions(WidthU, HeightU, NumberOfSamplesU); - - // 2DMS, uint tx, uint params - g_tTex2dmsu4 . GetDimensions(WidthU, HeightU, NumberOfSamplesU); - - // 2DMSArray, float tx, uint params - g_tTex2dmsf4a . GetDimensions(WidthU, HeightU, ElementsU, NumberOfSamplesU); - - // 2DMSArray, int tx, uint params - g_tTex2dmsi4a . GetDimensions(WidthU, HeightU, ElementsU, NumberOfSamplesU); - - // 2DMSArray, uint tx, uint params - g_tTex2dmsu4a . GetDimensions(WidthU, HeightU, ElementsU, NumberOfSamplesU); - - // TODO: *************************************************** - // Change this to 1 to enable float overloads when the HLSL - // function overload resolution is fixed. -#define OVERLOAD_FIX 0 - - // TODO: enable when function overload resolution rules are fixed -#if OVERLOAD_FIX - // 1D, float tx, float params - g_tTex1df4 . GetDimensions(WidthF); - g_tTex1df4 . GetDimensions(6, WidthF, NumberOfLevelsF); - - // 1D, int, float params - g_tTex1di4 . GetDimensions(WidthF); - g_tTex1di4 . GetDimensions(6, WidthF, NumberOfLevelsF); - - // 1D, uint, float params - g_tTex1du4 . GetDimensions(WidthF); - g_tTex1du4 . GetDimensions(6, WidthF, NumberOfLevelsF); - - // 1DArray, float tx, float params - g_tTex1df4a . GetDimensions(WidthF, ElementsF); - g_tTex1df4a . GetDimensions(6, WidthF, ElementsF, NumberOfLevelsF); - - // 1DArray, int, float params - g_tTex1di4a . GetDimensions(WidthF, ElementsF); - g_tTex1di4a . GetDimensions(6, WidthF, ElementsF, NumberOfLevelsF); - - // 1DArray, uint, float params - g_tTex1du4a . GetDimensions(WidthF, ElementsF); - g_tTex1du4a . GetDimensions(6, WidthF, ElementsF, NumberOfLevelsF); - - // 2D, float tx, float params - g_tTex2df4 . GetDimensions(WidthF, HeightF); - g_tTex2df4 . GetDimensions(6, WidthF, HeightF, NumberOfLevelsF); - - // 2D, int, float params - g_tTex2di4 . GetDimensions(WidthF, HeightF); - g_tTex2di4 . GetDimensions(6, WidthF, HeightF, NumberOfLevelsF); - - // 2D, uint, float params - g_tTex2du4 . GetDimensions(WidthF, HeightF); - g_tTex2du4 . GetDimensions(6, WidthF, HeightF, NumberOfLevelsF); - - // 2Darray, float tx, float params - g_tTex2df4a . GetDimensions(WidthF, HeightF, ElementsF); - g_tTex2df4a . GetDimensions(6, WidthF, HeightF, ElementsF, NumberOfLevelsF); - - // 2Darray, int, float params - g_tTex2di4a . GetDimensions(WidthF, HeightF, ElementsF); - g_tTex2di4a . GetDimensions(6, WidthF, HeightF, ElementsF, NumberOfLevelsF); - - // 2Darray, uint, float params - g_tTex2du4a . GetDimensions(WidthF, HeightF, ElementsF); - g_tTex2du4a . GetDimensions(6, WidthF, HeightF, ElementsF, NumberOfLevelsF); - - // 3D, float tx, float params - g_tTex3df4 . GetDimensions(WidthF, HeightF, DepthF); - g_tTex3df4 . GetDimensions(6, WidthF, HeightF, DepthF, NumberOfLevelsF); - - // 3D, int, float params - g_tTex3di4 . GetDimensions(WidthF, HeightF, DepthF); - g_tTex3di4 . GetDimensions(6, WidthF, HeightF, DepthF, NumberOfLevelsF); - - // 3D, uint, float params - g_tTex3du4 . GetDimensions(WidthF, HeightF, DepthF); - g_tTex3du4 . GetDimensions(6, WidthF, HeightF, DepthF, NumberOfLevelsF); - - // Cube, float tx, float params - g_tTexcdf4 . GetDimensions(WidthF, HeightF); - g_tTexcdf4 . GetDimensions(6, WidthF, HeightF, NumberOfLevelsF); - - // Cube, int, float params - g_tTexcdi4 . GetDimensions(WidthF, HeightF); - g_tTexcdi4 . GetDimensions(6, WidthF, HeightF, NumberOfLevelsF); - - // Cube, uint, float params - g_tTexcdu4 . GetDimensions(WidthF, HeightF); - g_tTexcdu4 . GetDimensions(6, WidthF, HeightF, NumberOfLevelsF); - - // Cubearray, float tx, float params - g_tTexcdf4a . GetDimensions(WidthF, HeightF, ElementsF); - g_tTexcdf4a . GetDimensions(6, WidthF, HeightF, ElementsF, NumberOfLevelsF); - - // Cubearray, int, float params - g_tTexcdi4a . GetDimensions(WidthF, HeightF, ElementsF); - g_tTexcdi4a . GetDimensions(6, WidthF, HeightF, ElementsF, NumberOfLevelsF); - - // Cubearray, uint, float params - g_tTexcdu4a . GetDimensions(WidthF, HeightF, ElementsF); - g_tTexcdu4a . GetDimensions(6, WidthF, HeightF, ElementsF, NumberOfLevelsF); - - // 2DMS, float tx, uint params - g_tTex2dmsf4 . GetDimensions(WidthF, HeightF, NumberOfSamplesF); - - // 2DMS, int tx, uint params - g_tTex2dmsi4 . GetDimensions(WidthF, HeightF, NumberOfSamplesF); - - // 2DMS, uint tx, uint params - g_tTex2dmsu4 . GetDimensions(WidthF, HeightF, NumberOfSamplesF); - - // 2DMSArray, float tx, uint params - g_tTex2dmsf4a . GetDimensions(WidthF, HeightF, ElementsF, NumberOfSamplesF); - - // 2DMSArray, int tx, uint params - g_tTex2dmsi4a . GetDimensions(WidthF, HeightF, ElementsF, NumberOfSamplesF); - - // 2DMSArray, uint tx, uint params - g_tTex2dmsu4a . GetDimensions(WidthF, HeightF, ElementsF, NumberOfSamplesF); -#endif // OVERLOAD_FIX - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.getdimensions.dx10.vert b/deps/glslang/Test/hlsl.getdimensions.dx10.vert deleted file mode 100644 index 0249b1c2..00000000 --- a/deps/glslang/Test/hlsl.getdimensions.dx10.vert +++ /dev/null @@ -1,27 +0,0 @@ -SamplerState g_sSamp : register(s0); - -uniform Texture1D g_tTex1df4 : register(t0); - -struct VS_OUTPUT -{ - float4 Pos : SV_Position; -}; - -VS_OUTPUT main() -{ - VS_OUTPUT vsout; - - uint WidthU; - uint NumberOfLevelsU; - - // Most of the tests are in the hlsl.getdimensions.dx10.frag on the fragment side. - // This is just to establish that GetDimensions appears in the vertex stage. - - // 1D, float tx, uint params - g_tTex1df4 . GetDimensions(WidthU); - g_tTex1df4 . GetDimensions(6, WidthU, NumberOfLevelsU); - - vsout.Pos = float4(0,0,0,0); - - return vsout; -} diff --git a/deps/glslang/Test/hlsl.getdimensions.rw.dx10.frag b/deps/glslang/Test/hlsl.getdimensions.rw.dx10.frag deleted file mode 100644 index 957a8082..00000000 --- a/deps/glslang/Test/hlsl.getdimensions.rw.dx10.frag +++ /dev/null @@ -1,96 +0,0 @@ -SamplerState g_sSamp : register(s0); - -RWTexture1D g_tTex1df4 : register(t0); -RWTexture1D g_tTex1di4; -RWTexture1D g_tTex1du4; - -RWTexture2D g_tTex2df4; -RWTexture2D g_tTex2di4; -RWTexture2D g_tTex2du4; - -RWTexture3D g_tTex3df4; -RWTexture3D g_tTex3di4; -RWTexture3D g_tTex3du4; - -RWTexture1DArray g_tTex1df4a; -RWTexture1DArray g_tTex1di4a; -RWTexture1DArray g_tTex1du4a; - -RWTexture2DArray g_tTex2df4a; -RWTexture2DArray g_tTex2di4a; -RWTexture2DArray g_tTex2du4a; - -RWBuffer g_tBuffF; -RWBuffer g_tBuffI; -RWBuffer g_tBuffU; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -uniform int c1; -uniform int2 c2; -uniform int3 c3; -uniform int4 c4; - -uniform int o1; -uniform int2 o2; -uniform int3 o3; -uniform int4 o4; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - uint MipLevel; - uint WidthU; - uint HeightU; - uint ElementsU; - uint DepthU; - uint NumberOfLevelsU; - uint NumberOfSamplesU; - - float WidthF; - float HeightF; - float ElementsF; - float DepthF; - float NumberOfLevelsF; - float NumberOfSamplesF; - - // 1D, float/int/uint, uint params - g_tTex1df4.GetDimensions(WidthU); - g_tTex1di4.GetDimensions(WidthU); - g_tTex1du4.GetDimensions(WidthU); - - // buffer, float/int/uint, uint params - g_tBuffF.GetDimensions(WidthU); - g_tBuffI.GetDimensions(WidthU); - g_tBuffU.GetDimensions(WidthU); - - // 1DArray, float/int/uint, uint params - g_tTex1df4a.GetDimensions(WidthU, ElementsU); - g_tTex1di4a.GetDimensions(WidthU, ElementsU); - g_tTex1du4a.GetDimensions(WidthU, ElementsU); - - // 2D, float/int/uint, uint params - g_tTex2df4.GetDimensions(WidthU, HeightU); - g_tTex2di4.GetDimensions(WidthU, HeightU); - g_tTex2du4.GetDimensions(WidthU, HeightU); - - // 2DArray, float/int/uint, uint params - g_tTex2df4a.GetDimensions(WidthU, HeightU, ElementsU); - g_tTex2di4a.GetDimensions(WidthU, HeightU, ElementsU); - g_tTex2du4a.GetDimensions(WidthU, HeightU, ElementsU); - - // 3D, float/int/uint, uint params - g_tTex3df4.GetDimensions(WidthU, HeightU, DepthU); - g_tTex3di4.GetDimensions(WidthU, HeightU, DepthU); - g_tTex3du4.GetDimensions(WidthU, HeightU, DepthU); - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.getsampleposition.dx10.frag b/deps/glslang/Test/hlsl.getsampleposition.dx10.frag deleted file mode 100644 index a1182fb6..00000000 --- a/deps/glslang/Test/hlsl.getsampleposition.dx10.frag +++ /dev/null @@ -1,23 +0,0 @@ -SamplerState g_sSamp : register(s0); - -Texture2DMS g_tTex2dmsf4; -Texture2DMSArray g_tTex2dmsf4a; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -PS_OUTPUT main(int sample : SAMPLE) -{ - PS_OUTPUT psout; - - float2 r00 = g_tTex2dmsf4.GetSamplePosition(sample); - float2 r01 = g_tTex2dmsf4a.GetSamplePosition(sample); - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.global-const-init.frag b/deps/glslang/Test/hlsl.global-const-init.frag deleted file mode 100644 index d8f36c96..00000000 --- a/deps/glslang/Test/hlsl.global-const-init.frag +++ /dev/null @@ -1,14 +0,0 @@ - -cbuffer CB { - float4 foo; -}; - -static const float4 bar = foo; // test const (in the immutable sense) initializer from non-const. - -static const float2 a1[2] = { { 1, 2 }, { foo.x, 4 } }; // not entirely constant -static const float2 a2[2] = { { 5, 6 }, { 7, 8 } }; // entirely constant - -float4 main() : SV_Target0 -{ - return bar; -} diff --git a/deps/glslang/Test/hlsl.groupid.comp b/deps/glslang/Test/hlsl.groupid.comp deleted file mode 100644 index e5b0de42..00000000 --- a/deps/glslang/Test/hlsl.groupid.comp +++ /dev/null @@ -1,9 +0,0 @@ -RWTexture2D < float4 > OutputTexture; - -// Test conversion between SPIR-V required uint3 group id, and sub-vec3 shader declaration. - -[ numthreads ( 8 , 8 , 1 ) ] -void main ( uint2 vGroupId : SV_GroupID ) -{ - OutputTexture[ vGroupId . xy ] = float4(1.0, 0.0, 0.0, 1.0); -} diff --git a/deps/glslang/Test/hlsl.gs-hs-mix.tesc b/deps/glslang/Test/hlsl.gs-hs-mix.tesc deleted file mode 100644 index 45196961..00000000 --- a/deps/glslang/Test/hlsl.gs-hs-mix.tesc +++ /dev/null @@ -1,119 +0,0 @@ -cbuffer UniformBlock0 : register(b0) -{ - float4x4 model_view_matrix; - float4x4 proj_matrix; - float4x4 model_view_proj_matrix; - float3x3 normal_matrix; - float3 color; - float3 view_dir; - float3 tess_factor; -}; - -// ============================================================================= -// Hull Shader -// ============================================================================= -struct HSInput { - float3 PositionWS : POSITION; - float3 NormalWS : NORMAL; -}; - -struct HSOutput { - float3 PositionWS : POSITION; -}; - -struct HSTrianglePatchConstant { - float EdgeTessFactor[3] : SV_TessFactor; - float InsideTessFactor : SV_InsideTessFactor; - float3 NormalWS[3] : NORMAL; -}; - -HSTrianglePatchConstant HSPatchConstant(InputPatch patch) -{ - float3 roundedEdgeTessFactor = tess_factor; - float roundedInsideTessFactor = 3; - float insideTessFactor = 1; - - HSTrianglePatchConstant result; - - // Edge and inside tessellation factors - result.EdgeTessFactor[0] = roundedEdgeTessFactor.x; - result.EdgeTessFactor[1] = roundedEdgeTessFactor.y; - result.EdgeTessFactor[2] = roundedEdgeTessFactor.z; - result.InsideTessFactor = roundedInsideTessFactor; - - // Constant data - result.NormalWS[0] = patch[0].NormalWS; - result.NormalWS[1] = patch[1].NormalWS; - result.NormalWS[2] = patch[2].NormalWS; - - return result; -} - -[domain("tri")] -[partitioning("fractional_odd")] -[outputtopology("triangle_ccw")] -[outputcontrolpoints(3)] -[patchconstantfunc("HSPatchConstant")] -HSOutput HSMain( - InputPatch patch, - uint id : SV_OutputControlPointID -) -{ - HSOutput output; - output.PositionWS = patch[id].PositionWS; - return output; -} - -// ============================================================================= -// Geometry Shader -// ============================================================================= -struct GSVertexInput { - float3 PositionWS : POSITION; - float3 NormalWS : NORMAL; -}; - -struct GSVertexOutput { - float4 PositionCS : SV_POSITION; -}; - -[maxvertexcount(6)] -void GSMain( - triangle GSVertexInput input[3], - inout LineStream output -) -{ - - float3 P0 = input[0].PositionWS.xyz; - float3 P1 = input[1].PositionWS.xyz; - float3 P2 = input[2].PositionWS.xyz; - - GSVertexOutput vertex; - // Totally hacky... - P0.z += 0.001; - P1.z += 0.001; - P2.z += 0.001; - float4 Q0 = mul(proj_matrix, float4(P0, 1.0)); - float4 Q1 = mul(proj_matrix, float4(P1, 1.0)); - float4 Q2 = mul(proj_matrix, float4(P2, 1.0)); - - // Edge 0 - vertex.PositionCS = Q0; - output.Append(vertex); - vertex.PositionCS = Q1; - output.Append(vertex); - output.RestartStrip(); - - // Edge 1 - vertex.PositionCS = Q1; - output.Append(vertex); - vertex.PositionCS = Q2; - output.Append(vertex); - output.RestartStrip(); - - // Edge 2 - vertex.PositionCS = Q2; - output.Append(vertex); - vertex.PositionCS = Q0; - output.Append(vertex); - output.RestartStrip(); -} diff --git a/deps/glslang/Test/hlsl.hlslOffset.vert b/deps/glslang/Test/hlsl.hlslOffset.vert deleted file mode 100644 index aa95f6a3..00000000 --- a/deps/glslang/Test/hlsl.hlslOffset.vert +++ /dev/null @@ -1,20 +0,0 @@ -cbuffer b { - float m0; - float3 m4; - ////// - float m16; - float3 m20 : packoffset(c1.y); - ///// - float3 m36 : packoffset(c2.y); - ///// - float2 m56 : packoffset(c3.z); - ///// - float m64; - float2 m68; - float m76; - ////// - float m80; - float2 m96[1]; -}; - -void main() {} diff --git a/deps/glslang/Test/hlsl.hull.1.tesc b/deps/glslang/Test/hlsl.hull.1.tesc deleted file mode 100644 index 4959b453..00000000 --- a/deps/glslang/Test/hlsl.hull.1.tesc +++ /dev/null @@ -1,39 +0,0 @@ -// *** -// invocation ID coming from input to entry point -// *** - -struct VS_OUT -{ - float3 cpoint : CPOINT; -}; - -struct HS_CONSTANT_OUT -{ - float edges[2] : SV_TessFactor; -}; - -struct HS_OUT -{ - float3 cpoint : CPOINT; -}; - -[domain("isoline")] -[partitioning("integer")] -[outputtopology("line")] -[outputcontrolpoints(4)] -[patchconstantfunc("PCF")] -HS_OUT main(InputPatch ip, uint m_cpid : SV_OutputControlPointID) -{ - HS_OUT output; - output.cpoint = ip[0].cpoint; - return output; -} - -HS_CONSTANT_OUT PCF(uint pid : SV_PrimitiveId) -{ - HS_CONSTANT_OUT output; - - output.edges[0] = 2.0f; - output.edges[1] = 8.0f; - return output; -} diff --git a/deps/glslang/Test/hlsl.hull.2.tesc b/deps/glslang/Test/hlsl.hull.2.tesc deleted file mode 100644 index 3c0afcc5..00000000 --- a/deps/glslang/Test/hlsl.hull.2.tesc +++ /dev/null @@ -1,39 +0,0 @@ -// *** -// invocation ID coming from synthesized variable -// *** - -struct VS_OUT -{ - float3 cpoint : CPOINT; -}; - -struct HS_CONSTANT_OUT -{ - float edges[2] : SV_TessFactor; -}; - -struct HS_OUT -{ - float3 cpoint : CPOINT; -}; - -[domain("isoline")] -[partitioning("integer")] -[outputtopology("line")] -[outputcontrolpoints(4)] -[patchconstantfunc("PCF")] -HS_OUT main(InputPatch ip) -{ - HS_OUT output; - output.cpoint = ip[0].cpoint; - return output; -} - -HS_CONSTANT_OUT PCF(uint pid : SV_PrimitiveId, float4 pos : SV_Position) -{ - HS_CONSTANT_OUT output; - - output.edges[0] = 2.0f; - output.edges[1] = 8.0f; - return output; -} diff --git a/deps/glslang/Test/hlsl.hull.3.tesc b/deps/glslang/Test/hlsl.hull.3.tesc deleted file mode 100644 index 8509dca1..00000000 --- a/deps/glslang/Test/hlsl.hull.3.tesc +++ /dev/null @@ -1,39 +0,0 @@ -// *** -// invocation ID coming from synthesized variable -// *** - -struct VS_OUT -{ - float3 cpoint : CPOINT; -}; - -struct HS_CONSTANT_OUT -{ - float edges[2] : SV_TessFactor; -}; - -struct HS_OUT -{ - float3 cpoint : CPOINT; -}; - -[domain("tri")] -[partitioning("integer")] -[outputtopology("point")] -[outputcontrolpoints(4)] -[patchconstantfunc("PCF")] -HS_OUT main(InputPatch ip) -{ - HS_OUT output; - output.cpoint = ip[0].cpoint; - return output; -} - -HS_CONSTANT_OUT PCF(uint pid : SV_PrimitiveId, float4 pos : SV_Position) -{ - HS_CONSTANT_OUT output; - - output.edges[0] = 2.0f; - output.edges[1] = 8.0f; - return output; -} diff --git a/deps/glslang/Test/hlsl.hull.4.tesc b/deps/glslang/Test/hlsl.hull.4.tesc deleted file mode 100644 index cd2b0944..00000000 --- a/deps/glslang/Test/hlsl.hull.4.tesc +++ /dev/null @@ -1,43 +0,0 @@ - -// Test mixed InputPatch structure: user and builtin members. Hull shaders involve extra -// logic in this case due to patch constant function call synthesis. - -// This example tests the main EP and the PCF EP both having an input patch. - -struct HS_Main_Output -{ - float4 m_Position : SV_POSITION ; -}; - -struct HS_Output -{ - float fTessFactor [ 3 ] : SV_TessFactor ; - float fInsideTessFactor : SV_InsideTessFactor ; -}; - -struct HS_Input -{ - float4 m_Position : SV_POSITION; - float4 m_Normal : TEXCOORD2; -}; - -HS_Output HS_ConstFunc ( InputPatch < HS_Input , 3 > I ) -{ - HS_Output O = (HS_Output)0; - - O.fInsideTessFactor = I [ 0 ].m_Position.w + I [ 0 ].m_Normal.w; - - return O; -} - -[ domain ( "tri" ) ] -[ partitioning ( "fractional_odd" ) ] -[ outputtopology ( "triangle_cw" ) ] -[ patchconstantfunc ( "HS_ConstFunc" ) ] -[ outputcontrolpoints ( 3 ) ] -HS_Main_Output main( InputPatch < HS_Input , 3 > I , uint cpid : SV_OutputControlPointID ) -{ - HS_Main_Output output = ( HS_Main_Output ) 0 ; - output.m_Position = 0; - return output ; -} diff --git a/deps/glslang/Test/hlsl.hull.5.tesc b/deps/glslang/Test/hlsl.hull.5.tesc deleted file mode 100644 index c9e511eb..00000000 --- a/deps/glslang/Test/hlsl.hull.5.tesc +++ /dev/null @@ -1,43 +0,0 @@ - -// Test mixed InputPatch structure: user and builtin members. Hull shaders involve extra -// logic in this case due to patch constant function call synthesis. - -// This example tests the PCF EP having an InputPatch, but the main EP does not. - -struct HS_Main_Output -{ - float4 m_Position : SV_POSITION ; -}; - -struct HS_Output -{ - float fTessFactor [ 3 ] : SV_TessFactor ; - float fInsideTessFactor : SV_InsideTessFactor ; -}; - -struct HS_Input -{ - float4 m_Position : SV_POSITION; - float4 m_Normal : TEXCOORD2; -}; - -HS_Output HS_ConstFunc ( InputPatch < HS_Input , 3 > I ) -{ - HS_Output O = (HS_Output)0; - - O.fInsideTessFactor = I [ 0 ].m_Position.w + I [ 0 ].m_Normal.w; - - return O; -} - -[ domain ( "tri" ) ] -[ partitioning ( "fractional_odd" ) ] -[ outputtopology ( "triangle_cw" ) ] -[ patchconstantfunc ( "HS_ConstFunc" ) ] -[ outputcontrolpoints ( 3 ) ] -HS_Main_Output main( uint cpid : SV_OutputControlPointID ) -{ - HS_Main_Output output = ( HS_Main_Output ) 0 ; - output.m_Position = 0; - return output ; -} diff --git a/deps/glslang/Test/hlsl.hull.6.tesc b/deps/glslang/Test/hlsl.hull.6.tesc deleted file mode 100644 index 13edfa85..00000000 --- a/deps/glslang/Test/hlsl.hull.6.tesc +++ /dev/null @@ -1,48 +0,0 @@ -// Test tesselation factor output as PCF arg - -struct VSOutput -{ - float4 f4Position : SV_Position; - float3 f3Color : COLOR; -}; - -struct HS_CONSTANT_DATA_OUTPUT -{ - float Edges[4] : SV_TessFactor; -}; - -HS_CONSTANT_DATA_OUTPUT ConstantHS(InputPatch p, - uint BlockID : SV_PrimitiveID, - out float Inside[2] : SV_InsideTessFactor) -{ - HS_CONSTANT_DATA_OUTPUT Factors; - Factors.Edges[0] = 2.5; - Factors.Edges[1] = 4.25; - Factors.Edges[2] = 5.75; - Factors.Edges[3] = 7.5; - - Inside[0] = 6.75; - Inside[1] = 7.25; - - return Factors; -} - -struct HSOutput -{ - float4 Position : POS; - float3 Color : COL; -}; - -[domain("quad")] -[partitioning("fractional_even")] -[outputtopology("triangle_ccw")] -[outputcontrolpoints(1)] -[patchconstantfunc("ConstantHS")] -HSOutput main(InputPatch inputPatch, uint uCPID : SV_OutputControlPointID) -{ - HSOutput Out; - Out.Position = inputPatch[uCPID].f4Position; - Out.Color = inputPatch[uCPID].f3Color; - return Out; -} - diff --git a/deps/glslang/Test/hlsl.hull.ctrlpt-1.tesc b/deps/glslang/Test/hlsl.hull.ctrlpt-1.tesc deleted file mode 100644 index 3e329f25..00000000 --- a/deps/glslang/Test/hlsl.hull.ctrlpt-1.tesc +++ /dev/null @@ -1,43 +0,0 @@ -// *** -// per-control-point invocation of PCF from entry point return value -// *** - -struct hs_in_t -{ - float3 val : TEXCOORD0; -}; - -struct hs_pcf_t -{ - float tfactor[3] : SV_TessFactor; // must turn into a size 4 array in SPIR-V - float flInFactor : SV_InsideTessFactor; // must turn into a size 2 array in SPIR-V -}; - -struct hs_out_t -{ - float3 val : TEXCOORD0; -}; - -[ domain ("tri") ] -[ partitioning ("fractional_odd") ] -[ outputtopology ("triangle_cw") ] -[ outputcontrolpoints (3) ] -[ patchconstantfunc ( "PCF" ) ] -hs_out_t main (InputPatch i , uint cpid : SV_OutputControlPointID) -{ - hs_out_t o; - o.val = cpid; - return o; -} - -hs_pcf_t PCF( const OutputPatch pcf_out) -{ - hs_pcf_t o; - - o.tfactor[0] = pcf_out[0].val.x; - o.tfactor[1] = pcf_out[1].val.x; - o.tfactor[2] = pcf_out[2].val.x; - o.flInFactor = 4; - - return o; -} diff --git a/deps/glslang/Test/hlsl.hull.ctrlpt-2.tesc b/deps/glslang/Test/hlsl.hull.ctrlpt-2.tesc deleted file mode 100644 index 1f65ce4b..00000000 --- a/deps/glslang/Test/hlsl.hull.ctrlpt-2.tesc +++ /dev/null @@ -1,47 +0,0 @@ -// *** -// per-control-point invocation of PCF from entry point return value with -// both OutputPatch and InputPatch given to PCF. -// *** - -struct hs_in_t -{ - float3 val : TEXCOORD0; -}; - -struct hs_pcf_t -{ - float tfactor[3] : SV_TessFactor; // must turn into a size 4 array in SPIR-V - float flInFactor : SV_InsideTessFactor; // must turn into a size 2 array in SPIR-V -}; - -struct hs_out_t -{ - float3 val : TEXCOORD0; -}; - -[ domain ("tri") ] -[ partitioning ("fractional_odd") ] -[ outputtopology ("triangle_cw") ] -[ outputcontrolpoints (3) ] -[ patchconstantfunc ( "PCF" ) ] -hs_out_t main (InputPatch i , uint cpid : SV_OutputControlPointID) -{ - i[0].val; - - hs_out_t o; - o.val = cpid; - return o; -} - -hs_pcf_t PCF( const OutputPatch pcf_out, - const InputPatch pcf_in) -{ - hs_pcf_t o; - - o.tfactor[0] = pcf_out[0].val.x; - o.tfactor[1] = pcf_out[1].val.x; - o.tfactor[2] = pcf_out[2].val.x; - o.flInFactor = 4; - - return o; -} diff --git a/deps/glslang/Test/hlsl.hull.void.tesc b/deps/glslang/Test/hlsl.hull.void.tesc deleted file mode 100644 index c96ecb43..00000000 --- a/deps/glslang/Test/hlsl.hull.void.tesc +++ /dev/null @@ -1,34 +0,0 @@ -// *** -// void patchconstantfunction input and return -// *** - -struct VS_OUT -{ - float3 cpoint : CPOINT; -}; - -struct HS_CONSTANT_OUT -{ - float edges[2] : SV_TessFactor; -}; - -struct HS_OUT -{ - float3 cpoint : CPOINT; -}; - -[domain("tri")] -[partitioning("fractional_even")] -[outputtopology("triangle_ccw")] -[outputcontrolpoints(3)] -[patchconstantfunc("PCF")] -HS_OUT main(InputPatch ip) -{ - HS_OUT output; - output.cpoint = ip[0].cpoint; - return output; -} - -void PCF() -{ -} diff --git a/deps/glslang/Test/hlsl.identifier.sample.frag b/deps/glslang/Test/hlsl.identifier.sample.frag deleted file mode 100644 index d3f82427..00000000 --- a/deps/glslang/Test/hlsl.identifier.sample.frag +++ /dev/null @@ -1,18 +0,0 @@ - -struct MyStruct { - sample float a; - noperspective float b; - linear float c; - centroid float d; -}; - -int sample(int x) { return x; } // HLSL allows this as an identifier as well. - -float4 main() : SV_Target0 -{ - // HLSL allows this as an identifier as well. - // However, this is not true of other qualifier keywords such as "linear". - float4 sample = float4(3,4,5,6); - - return sample.rgba; // 'sample' can participate in an expression. -} diff --git a/deps/glslang/Test/hlsl.if.frag b/deps/glslang/Test/hlsl.if.frag deleted file mode 100644 index a2e47f6a..00000000 --- a/deps/glslang/Test/hlsl.if.frag +++ /dev/null @@ -1,43 +0,0 @@ -float4 f0(float4 input) { - if (all(input == input)) - return input; - else - return -input; -} - -float4 f1(float4 input) { - if (all(input == input)) { - return input; - } else { - return -input; - } -} - -float4 PixelShaderFunction(float4 input) : COLOR0 -{ - if (all(input == input)) - return input; - - f0(input); - - if (all(input == input)) - ; - - if (all(input == input)) - ; - else - ; - - [flatten] if (all(input == input)) { - return input; - } - - f1(input); - - int ii; - if (float ii = input.z) - ++ii; - ++ii; - if (float(ii) == 1.0) - ++ii; -} diff --git a/deps/glslang/Test/hlsl.imagefetch-subvec4.comp b/deps/glslang/Test/hlsl.imagefetch-subvec4.comp deleted file mode 100644 index a5d70c2c..00000000 --- a/deps/glslang/Test/hlsl.imagefetch-subvec4.comp +++ /dev/null @@ -1,41 +0,0 @@ -Texture1D i1D: register(t0); -Texture2D i2D: register(t1); -Texture3D i3D: register(t2); -Texture1DArray i1DArray: register(t3); -Texture2DArray i2DArray: register(t4); -Texture2DMS i2DMS: register(t5); -Texture2DMSArray i2DMSArray: register(t6); - -Texture1D ii1D: register(t7); -Texture2D ii2D: register(t8); -Texture3D ii3D: register(t9); -Texture1DArray ii1DArray: register(t10); -Texture2DArray ii2DArray: register(t11); -Texture2DMS ii2DMS: register(t12); -Texture2DMSArray ii2DMSArray: register(t13); - -RWTexture3D OUT: register(u0); - -[numthreads(8,8,8)] -void main(uint3 tid: SV_DispatchThreadID) -{ - float f = 0.0; - f += i1D[tid.x]; - f += i2D[tid.xy]; - f += i3D[tid]; - f += i1DArray[tid.xy]; - f += i2DArray[tid]; - f += i2DMS.Load(tid.xy, 1); - f += i2DMSArray.Load(tid, 3); - - int i = 0.0; - i += ii1D[tid.x]; - i += ii2D[tid.xy]; - i += ii3D[tid]; - i += ii1DArray[tid.xy]; - i += ii2DArray[tid]; - i += ii2DMS.Load(tid.xy, 1); - i += ii2DMSArray.Load(tid, 3); - - OUT[tid] = f + float(i); -} diff --git a/deps/glslang/Test/hlsl.imageload-subvec4.comp b/deps/glslang/Test/hlsl.imageload-subvec4.comp deleted file mode 100644 index b465cdbd..00000000 --- a/deps/glslang/Test/hlsl.imageload-subvec4.comp +++ /dev/null @@ -1,33 +0,0 @@ -RWTexture1D i1D: register(u0); -RWTexture2D i2D: register(u1); -RWTexture3D i3D: register(u2); -RWTexture1DArray i1DArray: register(u3); -RWTexture2DArray i2DArray: register(u4); - -RWTexture1D ii1D: register(u5); -RWTexture2D ii2D: register(u6); -RWTexture3D ii3D: register(u7); -RWTexture1DArray ii1DArray: register(u8); -RWTexture2DArray ii2DArray: register(u9); - -RWTexture3D OUT: register(u10); - -[numthreads(8,8,8)] -void main(uint3 tid: SV_DispatchThreadID) -{ - float f = 0.0; - f += i1D[tid.x]; - f += i2D[tid.xy]; - f += i3D[tid]; - f += i1DArray[tid.xy]; - f += i2DArray[tid]; - - int i = 0.0; - i += ii1D[tid.x]; - i += ii2D[tid.xy]; - i += ii3D[tid]; - i += ii1DArray[tid.xy]; - i += ii2DArray[tid]; - - OUT[tid] = f + float(i); -} diff --git a/deps/glslang/Test/hlsl.implicitBool.frag b/deps/glslang/Test/hlsl.implicitBool.frag deleted file mode 100644 index c6aea9d1..00000000 --- a/deps/glslang/Test/hlsl.implicitBool.frag +++ /dev/null @@ -1,32 +0,0 @@ -float condf; -int condi; -float1 condf1; -int1 condi1; - -float4 main() : SV_Target0 -{ - float4 a = float4(2.0, 2.0, 2.0, 2.0); - if (condi) - return a + 1.0; - if (condf) - return a + 2.0; - if (condf1) - return a + 3.0; - if (condi1) - return a + 4.0; - if (condi && condf || condf1) - return a + 5.0; - - float f = condf; - while (f) { --f; } - - int i = condi; - do { --i; } while (i); - - for (; i; ) { --i; } - - float g = condf ? 7.0 : 8.0; - a += g; - - return a - 1.0; -} \ No newline at end of file diff --git a/deps/glslang/Test/hlsl.include.vert b/deps/glslang/Test/hlsl.include.vert deleted file mode 100644 index 683398e5..00000000 --- a/deps/glslang/Test/hlsl.include.vert +++ /dev/null @@ -1,8 +0,0 @@ -#include "bar.h" -#include "./inc1/bar.h" -#include "inc2\bar.h" - -float4 main() : SV_Position -{ - return i1 + i2 + i3 + i4 + i5 + i6; -} diff --git a/deps/glslang/Test/hlsl.includeNegative.vert b/deps/glslang/Test/hlsl.includeNegative.vert deleted file mode 100644 index 64d31fab..00000000 --- a/deps/glslang/Test/hlsl.includeNegative.vert +++ /dev/null @@ -1,8 +0,0 @@ -#include "foo.h" -#include "inc2/../foo.h" -#include "inc1/badInc.h" - -float4 main() : SV_Position -{ -#error in main -} diff --git a/deps/glslang/Test/hlsl.inf.vert b/deps/glslang/Test/hlsl.inf.vert deleted file mode 100644 index d57b8379..00000000 --- a/deps/glslang/Test/hlsl.inf.vert +++ /dev/null @@ -1,11 +0,0 @@ -float4 main() : SV_Position -{ - float f1 = -1.#INF; - float f2 = 1.#INF; - float f3 = +1.#INF; - float f4 = f2 * 1.#INF + 1.#INF; - const float f5 = -1.#INF; - const float f6 = f5 * 0.0f; - - return (float4)(f1 + f2 + f3 + f4 + f5 + f6); -} \ No newline at end of file diff --git a/deps/glslang/Test/hlsl.init.frag b/deps/glslang/Test/hlsl.init.frag deleted file mode 100644 index 8caf3c7d..00000000 --- a/deps/glslang/Test/hlsl.init.frag +++ /dev/null @@ -1,41 +0,0 @@ -static float4 a1 = float4(1, 0.5, 0, 1), b1 = float4(2.0, 2.5, 2.1, 2.2); -static float4 a1i = {1, 0.5, 0, 1}, b1i = {2.0, 2.5, 2.1, 2.2}; -static float a2 = 0.2, b2; -static float a3, b3 = 0.3; -static float a4, b4 = 0.4, c4; -static float a5 = 0.5, b5, c5 = 1.5; - -struct Single1 { int f; }; -static Single1 single1 = { 10 }; - -struct Single2 { uint2 v; }; -static Single2 single2 = { { 1, 2 } }; - -struct Single3 { Single1 s1; }; -static Single3 single3 = { { 3 } }; - -struct Single4 { Single2 s1; }; -static Single4 single4 = { { { 4u, 5u } } }; - -float4 ShaderFunction(float4 input) : COLOR0 -{ - float4 a2 = float4(0.2, 0.3, 0.4, 0.5); - struct S1 { - float f; - int i; - }; - struct S2 { - int j; - float g; - S1 s1; - }; - S2 s2i = { 9, a5, { (a3,a4), 12} }, s2 = S2(9, a5, S1((a3,a4), 12)); - float a8 = (a2, b2), a9 = a5; - - return input * a1; -} - -cbuffer Constants -{ - float a = 1.0f, b, c = 2.0f; -}; diff --git a/deps/glslang/Test/hlsl.init2.frag b/deps/glslang/Test/hlsl.init2.frag deleted file mode 100644 index 2b9b7e68..00000000 --- a/deps/glslang/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/Test/hlsl.inoutquals.frag b/deps/glslang/Test/hlsl.inoutquals.frag deleted file mode 100644 index 6a124f8d..00000000 --- a/deps/glslang/Test/hlsl.inoutquals.frag +++ /dev/null @@ -1,26 +0,0 @@ -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -inline void MyFunc(in float x, out float y, inout float z, in out float w) -{ - y = x; - z = y; - x = -1; // no effect since x = in param - w *= 1; -} - -PS_OUTPUT main(noperspective in float4 inpos : SV_Position, out int sampleMask : SV_Coverage) -{ - PS_OUTPUT psout; - - float x = 7, y, z = 3; - MyFunc(x, y, z, inpos.w); - - psout.Color = float4(x, y, z, 1); - psout.Depth = inpos.w; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.inoutquals.negative.frag b/deps/glslang/Test/hlsl.inoutquals.negative.frag deleted file mode 100644 index 380dc2c9..00000000 --- a/deps/glslang/Test/hlsl.inoutquals.negative.frag +++ /dev/null @@ -1,7 +0,0 @@ -in float invalid1; -in out float invalid2; -inout float invalid3; -out float invalid4; - -void main() { -} diff --git a/deps/glslang/Test/hlsl.int.dot.frag b/deps/glslang/Test/hlsl.int.dot.frag deleted file mode 100644 index c293dc14..00000000 --- a/deps/glslang/Test/hlsl.int.dot.frag +++ /dev/null @@ -1,14 +0,0 @@ -float4 main() : SV_Target { - int i = 1; - int1 i2 = 2; - int2 i3 = 3; - int3 i4 = 4; - int4 i5 = 5; - - i = dot(i, i); - i2 = dot(i2, i2); - i3 = dot(i3, i3); - i4 = dot(i4, i4); - i5 = dot(i5, i5); - return i + i2.xxxx + i3.xyxy + i4.xyzx + i5; -} \ No newline at end of file diff --git a/deps/glslang/Test/hlsl.intrinsic.frexp.frag b/deps/glslang/Test/hlsl.intrinsic.frexp.frag deleted file mode 100644 index fde87c9d..00000000 --- a/deps/glslang/Test/hlsl.intrinsic.frexp.frag +++ /dev/null @@ -1,37 +0,0 @@ - -float PixelShaderFunctionS(float inF0, float inF1) -{ - float r000 = frexp(inF0, inF1); - return 0.0; -} - -float2 PixelShaderFunction2(float2 inF0, float2 inF1) -{ - float2 r000 = frexp(inF0, inF1); - return float2(1,2); -} - -float3 PixelShaderFunction3(float3 inF0, float3 inF1) -{ - float3 r000 = frexp(inF0, inF1); - return float3(1,2,3); -} - -float4 PixelShaderFunction(float4 inF0, float4 inF1) -{ - float4 r000 = frexp(inF0, inF1); - return float4(1,2,3,4); -} - -// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. -#define MATFNS(MT) \ - MT r000 = frexp(inF0, inF1); - -struct PS_OUTPUT { float4 color : SV_Target0; }; - -PS_OUTPUT main() -{ - PS_OUTPUT ps_output; - ps_output.color = 1.0; - return ps_output; -}; diff --git a/deps/glslang/Test/hlsl.intrinsic.frexp.vert b/deps/glslang/Test/hlsl.intrinsic.frexp.vert deleted file mode 100644 index f0fd5e00..00000000 --- a/deps/glslang/Test/hlsl.intrinsic.frexp.vert +++ /dev/null @@ -1,28 +0,0 @@ -float VertexShaderFunctionS(float inF0, float inF1) -{ - frexp(inF0, inF1); - return 0.0; -} - -float2 VertexShaderFunction2(float2 inF0, float2 inF1) -{ - frexp(inF0, inF1); - return float2(1,2); -} - -float3 VertexShaderFunction3(float3 inF0, float3 inF1) -{ - frexp(inF0, inF1); - return float3(1,2,3); -} - -float4 VertexShaderFunction4(float4 inF0, float4 inF1) -{ - frexp(inF0, inF1); - return float4(1,2,3,4); -} - -// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. -#define MATFNS() \ - frexp(inF0, inF1); - diff --git a/deps/glslang/Test/hlsl.intrinsics.barriers.comp b/deps/glslang/Test/hlsl.intrinsics.barriers.comp deleted file mode 100644 index c9768f63..00000000 --- a/deps/glslang/Test/hlsl.intrinsics.barriers.comp +++ /dev/null @@ -1,11 +0,0 @@ - -void ComputeShaderFunction() -{ - AllMemoryBarrier(); - AllMemoryBarrierWithGroupSync(); - DeviceMemoryBarrier(); - DeviceMemoryBarrierWithGroupSync(); - GroupMemoryBarrier(); - GroupMemoryBarrierWithGroupSync(); -} - diff --git a/deps/glslang/Test/hlsl.intrinsics.comp b/deps/glslang/Test/hlsl.intrinsics.comp deleted file mode 100644 index bce2d27d..00000000 --- a/deps/glslang/Test/hlsl.intrinsics.comp +++ /dev/null @@ -1,129 +0,0 @@ - - -groupshared uint gs_ua; -groupshared uint gs_ub; -groupshared uint gs_uc; -groupshared uint2 gs_ua2; -groupshared uint2 gs_ub2; -groupshared uint2 gs_uc2; -groupshared uint3 gs_ua3; -groupshared uint3 gs_ub3; -groupshared uint3 gs_uc3; -groupshared uint4 gs_ua4; -groupshared uint4 gs_ub4; -groupshared uint4 gs_uc4; - -float ComputeShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, uint inU1) -{ - uint out_u1; - - // Don't repeat all the pixel/vertex fns - just one for sanity. - all(inF0); - - // Test atomics - InterlockedAdd(gs_ua, gs_ub); - InterlockedAdd(gs_ua, gs_ub, out_u1); - InterlockedAnd(gs_ua, gs_ub); - InterlockedAnd(gs_ua, gs_ub, out_u1); - InterlockedCompareExchange(gs_ua, gs_ub, gs_uc, out_u1); - InterlockedExchange(gs_ua, gs_ub, out_u1); - InterlockedMax(gs_ua, gs_ub); - InterlockedMax(gs_ua, gs_ub, out_u1); - InterlockedMin(gs_ua, gs_ub); - InterlockedMin(gs_ua, gs_ub, out_u1); - InterlockedOr(gs_ua, gs_ub); - InterlockedOr(gs_ua, gs_ub, out_u1); - InterlockedXor(gs_ua, gs_ub); - InterlockedXor(gs_ua, gs_ub, out_u1); - - // CheckAccessFullyMapped(3); // TODO: ... - - return 0.0; -} - -float1 ComputeShaderFunction1(float1 inF0, float1 inF1, float1 inF2) -{ - // TODO: ... add when float1 prototypes are generated - return 0.0; -} - -float2 ComputeShaderFunction2(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, uint2 inU1) -{ - uint2 out_u2; - - // Don't repeat all the pixel/vertex fns - just one for sanity. - all(inF0); - - // Test atomics - InterlockedAdd(gs_ua2, gs_ub2); - InterlockedAdd(gs_ua2, gs_ub2, out_u2); - InterlockedAnd(gs_ua2, gs_ub2); - InterlockedAnd(gs_ua2, gs_ub2, out_u2); - InterlockedCompareExchange(gs_ua2, gs_ub2, gs_uc2, out_u2); - InterlockedExchange(gs_ua2, gs_ub2, out_u2); - InterlockedMax(gs_ua2, gs_ub2); - InterlockedMax(gs_ua2, gs_ub2, out_u2); - InterlockedMin(gs_ua2, gs_ub2); - InterlockedMin(gs_ua2, gs_ub2, out_u2); - InterlockedOr(gs_ua2, gs_ub2); - InterlockedOr(gs_ua2, gs_ub2, out_u2); - InterlockedXor(gs_ua2, gs_ub2); - InterlockedXor(gs_ua2, gs_ub2, out_u2); - - // TODO: ... add when float1 prototypes are generated - return float2(1,2); -} - -float3 ComputeShaderFunction3(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, uint3 inU1) -{ - uint3 out_u3; - - // Don't repeat all the pixel/vertex fns - just one for sanity. - all(inF0); - - // Test atomics - InterlockedAdd(gs_ua3, gs_ub3); - InterlockedAdd(gs_ua3, gs_ub3, out_u3); - InterlockedAnd(gs_ua3, gs_ub3); - InterlockedAnd(gs_ua3, gs_ub3, out_u3); - InterlockedCompareExchange(gs_ua3, gs_ub3, gs_uc3, out_u3); - InterlockedExchange(gs_ua3, gs_ub3, out_u3); - InterlockedMax(gs_ua3, gs_ub3); - InterlockedMax(gs_ua3, gs_ub3, out_u3); - InterlockedMin(gs_ua3, gs_ub3); - InterlockedMin(gs_ua3, gs_ub3, out_u3); - InterlockedOr(gs_ua3, gs_ub3); - InterlockedOr(gs_ua3, gs_ub3, out_u3); - InterlockedXor(gs_ua3, gs_ub3); - InterlockedXor(gs_ua3, gs_ub3, out_u3); - - // TODO: ... add when float1 prototypes are generated - return float3(1,2,3); -} - -float4 ComputeShaderFunction(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, uint4 inU1) -{ - uint4 out_u4; - - // Don't repeat all the pixel/vertex fns - just one for sanity. - all(inF0); - - // Test atomics - InterlockedAdd(gs_ua4, gs_ub4); - InterlockedAdd(gs_ua4, gs_ub4, out_u4); - InterlockedAnd(gs_ua4, gs_ub4); - InterlockedAnd(gs_ua4, gs_ub4, out_u4); - InterlockedCompareExchange(gs_ua4, gs_ub4, gs_uc4, out_u4); - InterlockedExchange(gs_ua4, gs_ub4, out_u4); - InterlockedMax(gs_ua4, gs_ub4); - InterlockedMax(gs_ua4, gs_ub4, out_u4); - InterlockedMin(gs_ua4, gs_ub4); - InterlockedMin(gs_ua4, gs_ub4, out_u4); - InterlockedOr(gs_ua4, gs_ub4); - InterlockedOr(gs_ua4, gs_ub4, out_u4); - InterlockedXor(gs_ua4, gs_ub4); - InterlockedXor(gs_ua4, gs_ub4, out_u4); - - // TODO: ... add when float1 prototypes are generated - return float4(1,2,3,4); -} diff --git a/deps/glslang/Test/hlsl.intrinsics.d3dcolortoubyte4.frag b/deps/glslang/Test/hlsl.intrinsics.d3dcolortoubyte4.frag deleted file mode 100644 index 295374fb..00000000 --- a/deps/glslang/Test/hlsl.intrinsics.d3dcolortoubyte4.frag +++ /dev/null @@ -1,7 +0,0 @@ - -uniform float4 col4; - -int4 main() : SV_Target0 -{ - return D3DCOLORtoUBYTE4(col4); -} diff --git a/deps/glslang/Test/hlsl.intrinsics.double.frag b/deps/glslang/Test/hlsl.intrinsics.double.frag deleted file mode 100644 index 013422a8..00000000 --- a/deps/glslang/Test/hlsl.intrinsics.double.frag +++ /dev/null @@ -1,11 +0,0 @@ - -float PixelShaderFunction(double inDV1a, double inDV1b, double inDV1c, - double2 inDV2, double3 inDV3, double4 inDV4, - uint inU1a, uint inU1b) -{ - double r00 = fma(inDV1a, inDV1b, inDV1c); - double r01 = asdouble(inU1a, inU1b); - - return 0.0; -} - diff --git a/deps/glslang/Test/hlsl.intrinsics.evalfns.frag b/deps/glslang/Test/hlsl.intrinsics.evalfns.frag deleted file mode 100644 index 7b7509d8..00000000 --- a/deps/glslang/Test/hlsl.intrinsics.evalfns.frag +++ /dev/null @@ -1,33 +0,0 @@ -struct PS_INPUT -{ - float2 vPos: TEXCOORD0; -}; - -float4 main(float inF1, float2 inF2, float3 inF3, float4 inF4, int2 inI2, PS_INPUT i) : COLOR -{ - float oF1 = EvaluateAttributeSnapped(inF1, int2(8,15)); - float2 oF2 = EvaluateAttributeSnapped(inF2, int2(0,1)); - float3 oF3 = EvaluateAttributeSnapped(inF3, int2(3,10)); - float4 oF4 = EvaluateAttributeSnapped(inF4, int2(7,8)); - - oF1 += EvaluateAttributeSnapped(inF1, inI2); - - oF1 += EvaluateAttributeAtSample(inF1, 3); - oF2 += EvaluateAttributeAtSample(inF2, 3); - oF3 += EvaluateAttributeAtSample(inF3, 3); - oF4 += EvaluateAttributeAtSample(inF4, 3); - - oF1 += EvaluateAttributeAtSample(inF1, inI2.x); - - oF1 += EvaluateAttributeAtCentroid(inF1); - oF2 += EvaluateAttributeAtCentroid(inF2); - oF3 += EvaluateAttributeAtCentroid(inF3); - oF4 += EvaluateAttributeAtCentroid(inF4); - - oF2 += EvaluateAttributeSnapped(i.vPos, int2(0,1)); - oF2 += EvaluateAttributeAtSample(i.vPos, 3); - oF2 += EvaluateAttributeAtCentroid(i.vPos); - - float4 color = float4(oF1, oF2.y, oF3.z, oF4.w); - return color; -} diff --git a/deps/glslang/Test/hlsl.intrinsics.f1632.frag b/deps/glslang/Test/hlsl.intrinsics.f1632.frag deleted file mode 100644 index f406860e..00000000 --- a/deps/glslang/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/Test/hlsl.intrinsics.f3216.frag b/deps/glslang/Test/hlsl.intrinsics.f3216.frag deleted file mode 100644 index f31136d9..00000000 --- a/deps/glslang/Test/hlsl.intrinsics.f3216.frag +++ /dev/null @@ -1,29 +0,0 @@ -uint PixelShaderFunctionS(float inF0) -{ - return f32tof16(inF0); -} - -uint1 PixelShaderFunction1(float1 inF0) -{ - return f32tof16(inF0); -} - -uint2 PixelShaderFunction2(float2 inF0) -{ - return f32tof16(inF0); -} - -uint3 PixelShaderFunction3(float3 inF0) -{ - return f32tof16(inF0); -} - -uint4 PixelShaderFunction(float4 inF0) -{ - return f32tof16(inF0); -} - -float4 main() : SV_Target0 -{ - return 0; -} diff --git a/deps/glslang/Test/hlsl.intrinsics.frag b/deps/glslang/Test/hlsl.intrinsics.frag deleted file mode 100644 index 280e2312..00000000 --- a/deps/glslang/Test/hlsl.intrinsics.frag +++ /dev/null @@ -1,494 +0,0 @@ - - -groupshared uint gs_ua; -groupshared uint gs_ub; -groupshared uint gs_uc; -groupshared uint2 gs_ua2; -groupshared uint2 gs_ub2; -groupshared uint2 gs_uc2; -groupshared uint3 gs_ua3; -groupshared uint3 gs_ub3; -groupshared uint3 gs_uc3; -groupshared uint4 gs_ua4; -groupshared uint4 gs_ub4; -groupshared uint4 gs_uc4; - -float PixelShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, int inU1) -{ - uint out_u1; - - bool r000 = all(inF0); - float r001 = abs(inF0); - float r002 = acos(inF0); - bool r003 = any(inF0); - float r004 = asin(inF0); - int r005 = asint(inF0); - uint r006 = asuint(inU1); - float r007 = asfloat(inU0); - // asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics - float r009 = atan(inF0); - float r010 = atan2(inF0, inF1); - float r011 = ceil(inF0); - float r012 = clamp(inF0, inF1, inF2); - clip(inF0); - clip(r005); - float r014 = cos(inF0); - float r015 = cosh(inF0); - int r016 = countbits(7); - float r017 = ddx(inF0); - float r018 = ddx_coarse(inF0); - float r019 = ddx_fine(inF0); - float r020 = ddy(inF0); - float r021 = ddy_coarse(inF0); - float r022 = ddy_fine(inF0); - float r023 = degrees(inF0); - float r024 = distance(inF0, inF1); - // EvaluateAttributeAtCentroid(inF0); - // EvaluateAttributeAtSample(inF0, 0); - // TODO: EvaluateAttributeSnapped(inF0, int2(1,2)); - float r027 = exp(inF0); - float r028 = exp2(inF0); - uint r029 = firstbithigh(7); - uint r030 = firstbitlow(7); - float r031 = floor(inF0); - // TODO: fma(inD0, inD1, inD2); - float r033 = fmod(inF0, inF1); - float r033i = fmod(inF0, 2); - float r034 = frac(inF0); - float r036 = fwidth(inF0); - bool r037 = isinf(inF0); - bool r038 = isnan(inF0); - float r039 = ldexp(inF0, inF1); - float r039a = lerp(inF0, inF1, inF2); - float r040 = log(inF0); - float r041 = log10(inF0); - float r042 = log2(inF0); - float r043 = max(inF0, inF1); - float r044 = min(inF0, inF1); - float r045 = pow(inF0, inF1); - float r046 = radians(inF0); - float r047 = rcp(inF0); - uint r048 = reversebits(2); - float r049 = round(inF0); - float r050 = rsqrt(inF0); - float r051 = saturate(inF0); - float r052 = sign(inF0); - float r053 = sin(inF0); - sincos(inF0, inF1, inF2); - float r055 = sinh(inF0); - float r056 = smoothstep(inF0, inF1, inF2); - float r057 = sqrt(inF0); - float r058 = step(inF0, inF1); - float r059 = tan(inF0); - float r060 = tanh(inF0); - // TODO: sampler intrinsics, when we can declare the types. - float r061 = trunc(inF0); - - return 0.0; -} - -float1 PixelShaderFunction1(float1 inF0, float1 inF1, float1 inF2) -{ - // TODO: ... add when float1 prototypes are generated - return 0.0; -} - -float2 PixelShaderFunction2(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, uint2 inU1) -{ - uint2 out_u2; - - bool r000 = all(inF0); - float2 r001 = abs(inF0); - float2 r002 = acos(inF0); - bool r003 = any(inF0); - float2 r004 = asin(inF0); - int2 r005 = asint(inF0); - uint2 r006 = asuint(inF0); - float2 r007 = asfloat(inU0); - // asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics - float2 r009 = atan(inF0); - float2 r010 = atan2(inF0, inF1); - float2 r011 = ceil(inF0); - float2 r012 = clamp(inF0, inF1, inF2); - clip(inF0); - clip(inU0); - float2 r013 = cos(inF0); - float2 r015 = cosh(inF0); - int2 r016 = countbits(int2(7,3)); - float2 r017 = ddx(inF0); - float2 r018 = ddx_coarse(inF0); - float2 r019 = ddx_fine(inF0); - float2 r020 = ddy(inF0); - float2 r021 = ddy_coarse(inF0); - float2 r022 = ddy_fine(inF0); - float2 r023 = degrees(inF0); - // EvaluateAttributeAtCentroid(inF0); - // EvaluateAttributeAtSample(inF0, 0); - // TODO: EvaluateAttributeSnapped(inF0, int2(1,2)); - float r026 = distance(inF0, inF1); - float r027 = dot(inF0, inF1); - // EvaluateAttributeAtCentroid(inF0); - // EvaluateAttributeAtSample(inF0, 0); - // TODO: EvaluateAttributeSnapped(inF0, int2(1,2)); - float2 r028 = exp(inF0); - float2 r029 = exp2(inF0); - float2 r030 = faceforward(inF0, inF1, inF2); - uint2 r031 = firstbithigh(uint2(7,8)); - uint2 r032 = firstbitlow(uint2(7,8)); - float2 r033 = floor(inF0); - // TODO: fma(inD0, inD1, inD2); - float2 r035 = fmod(inF0, inF1); - float2 r036 = frac(inF0); - float2 r038 = fwidth(inF0); - bool2 r039 = isinf(inF0); - bool2 r040 = isnan(inF0); - float2 r041 = ldexp(inF0, inF1); - float2 r039a = lerp(inF0, inF1, inF2); - float r042 = length(inF0); - float2 r043 = log(inF0); - float2 r044 = log10(inF0); - float2 r045 = log2(inF0); - float2 r046 = max(inF0, inF1); - float2 r047 = min(inF0, inF1); - float2 r048 = normalize(inF0); - float2 r049 = pow(inF0, inF1); - float2 r050 = radians(inF0); - float2 r051 = rcp(inF0); - float2 r052 = reflect(inF0, inF1); - float2 r053 = refract(inF0, inF1, 2.0); - uint2 r054 = reversebits(uint2(1,2)); - float2 r055 = round(inF0); - float2 r056 = rsqrt(inF0); - float2 r057 = saturate(inF0); - float2 r058 = sign(inF0); - float2 r059 = sin(inF0); - sincos(inF0, inF1, inF2); - float2 r060 = sinh(inF0); - float2 r061 = smoothstep(inF0, inF1, inF2); - float2 r062 = sqrt(inF0); - float2 r063 = step(inF0, inF1); - float2 r064 = tan(inF0); - float2 r065 = tanh(inF0); - // TODO: sampler intrinsics, when we can declare the types. - float2 r066 = trunc(inF0); - - // TODO: ... add when float1 prototypes are generated - return float2(1,2); -} - -float3 PixelShaderFunction3(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, uint3 inU1) -{ - uint3 out_u3; - - bool r000 = all(inF0); - float3 r001 = abs(inF0); - float3 r002 = acos(inF0); - bool r003 = any(inF0); - float3 r004 = asin(inF0); - int3 r005 = asint(inF0); - uint3 r006 = asuint(inF0); - float3 r007 = asfloat(inU0); - // asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics - float3 r009 = atan(inF0); - float3 r010 = atan2(inF0, inF1); - float3 r011 = ceil(inF0); - float3 r012 = clamp(inF0, inF1, inF2); - clip(inF0); - clip(inU0); - float3 r013 = cos(inF0); - float3 r014 = cosh(inF0); - uint3 r015 = countbits(uint3(7,3,5)); - float3 r016 = cross(inF0, inF1); - float3 r017 = ddx(inF0); - float3 r018 = ddx_coarse(inF0); - float3 r019 = ddx_fine(inF0); - float3 r020 = ddy(inF0); - float3 r021 = ddy_coarse(inF0); - float3 r022 = ddy_fine(inF0); - float3 r023 = degrees(inF0); - float r024 = distance(inF0, inF1); - float r025 = dot(inF0, inF1); - // EvaluateAttributeAtCentroid(inF0); - // EvaluateAttributeAtSample(inF0, 0); - // TODO: EvaluateAttributeSnapped(inF0, int2(1,2)); - float3 r029 = exp(inF0); - float3 r030 = exp2(inF0); - float3 r031 = faceforward(inF0, inF1, inF2); - uint3 r032 = firstbithigh(uint3(2,3,4)); - uint3 r033 = firstbitlow(uint3(2,3,4)); - float3 r034 = floor(inF0); - // TODO: fma(inD0, inD1, inD2); - float3 r036 = fmod(inF0, inF1); - float3 r037 = frac(inF0); - float3 r039 = fwidth(inF0); - bool3 r040 = isinf(inF0); - bool3 r041 = isnan(inF0); - float3 r042 = ldexp(inF0, inF1); - float3 r039a = lerp(inF0, inF1, inF2); - float3 r039b = lerp(inF0, inF1, 0.3); // test vec,vec,scalar lerp - float r043 = length(inF0); - float3 r044 = log(inF0); - float3 r045 = log10(inF0); - float3 r046 = log2(inF0); - float3 r047 = max(inF0, inF1); - float3 r048 = min(inF0, inF1); - float3 r049 = normalize(inF0); - float3 r050 = pow(inF0, inF1); - float3 r051 = radians(inF0); - float3 r052 = rcp(inF0); - float3 r053 = reflect(inF0, inF1); - float3 r054 = refract(inF0, inF1, 2.0); - uint3 r055 = reversebits(uint3(1,2,3)); - float3 r056 = round(inF0); - float3 r057 = rsqrt(inF0); - float3 r058 = saturate(inF0); - float3 r059 = sign(inF0); - float3 r060 = sin(inF0); - sincos(inF0, inF1, inF2); - float3 r061 = sinh(inF0); - float3 r062 = smoothstep(inF0, inF1, inF2); - float3 r063 = sqrt(inF0); - float3 r064 = step(inF0, inF1); - float3 r065 = tan(inF0); - float3 r066 = tanh(inF0); - // TODO: sampler intrinsics, when we can declare the types. - float3 r067 = trunc(inF0); - - // TODO: ... add when float1 prototypes are generated - return float3(1,2,3); -} - -float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, uint4 inU1) -{ - uint4 out_u4; - - bool r000 = all(inF0); - float4 r001 = abs(inF0); - float4 r002 = acos(inF0); - bool r003 = any(inF0); - float4 r004 = asin(inF0); - int4 r005 = asint(inF0); - uint4 r006 = asuint(inF0); - float4 r007 = asfloat(inU0); - // asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics - float4 r009 = atan(inF0); - float4 r010 = atan2(inF0, inF1); - float4 r011 = ceil(inF0); - float4 r012 = clamp(inF0, inF1, inF2); - clip(inF0); - clip(inU0); - float4 r013 = cos(inF0); - float4 r014 = cosh(inF0); - uint4 r015 = countbits(uint4(7,3,5,2)); - float4 r016 = ddx(inF0); - float4 r017 = ddx_coarse(inF0); - float4 r018 = ddx_fine(inF0); - float4 r019 = ddy(inF0); - float4 r020 = ddy_coarse(inF0); - float4 r021 = ddy_fine(inF0); - float4 r022 = degrees(inF0); - float r023 = distance(inF0, inF1); - float r024 = dot(inF0, inF1); - float4 r025 = dst(inF0, inF1); - // EvaluateAttributeAtCentroid(inF0); - // EvaluateAttributeAtSample(inF0, 0); - // TODO: EvaluateAttributeSnapped(inF0, int2(1,2)); - float4 r029 = exp(inF0); - float4 r030 = exp2(inF0); - float4 r031 = faceforward(inF0, inF1, inF2); - uint4 r032 = firstbithigh(uint4(7,8,9,10)); - uint4 r033 = firstbitlow(uint4(7,8,9,10)); - float4 r034 = floor(inF0); - // TODO: fma(inD0, inD1, inD2); - float4 r036 = fmod(inF0, inF1); - float4 r037 = frac(inF0); - float4 r039 = fwidth(inF0); - bool4 r040 = isinf(inF0); - bool4 r041 = isnan(inF0); - float4 r042 = ldexp(inF0, inF1); - float4 r039a = lerp(inF0, inF1, inF2); - float r043 = length(inF0); - float4 r044 = log(inF0); - float4 r045 = log10(inF0); - float4 r046 = log2(inF0); - float4 r047 = max(inF0, inF1); - float4 r048 = min(inF0, inF1); - float4 r049 = normalize(inF0); - float4 r050 = pow(inF0, inF1); - float4 r051 = radians(inF0); - float4 r052 = rcp(inF0); - float4 r053 = reflect(inF0, inF1); - float4 r054 = refract(inF0, inF1, 2.0); - uint4 r055 = reversebits(uint4(1,2,3,4)); - float4 r056 = round(inF0); - float4 r057 = rsqrt(inF0); - float4 r058 = saturate(inF0); - float4 r059 = sign(inF0); - float4 r060 = sin(inF0); - sincos(inF0, inF1, inF2); - float4 r061 = sinh(inF0); - float4 r062 = smoothstep(inF0, inF1, inF2); - float4 r063 = sqrt(inF0); - float4 r064 = step(inF0, inF1); - float4 r065 = tan(inF0); - float4 r066 = tanh(inF0); - // TODO: sampler intrinsics, when we can declare the types. - float4 r067 = trunc(inF0); - - // TODO: ... add when float1 prototypes are generated - return float4(1,2,3,4); -} - -// TODO: for mats: -// asfloat(inU0); \ -// asint(inF0); \ -// asuint(inF0); \ - -// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. -#define MATFNS(MT) \ - bool r000 = all(inF0); \ - MT r001 = abs(inF0); \ - acos(inF0); \ - bool r003 = any(inF0); \ - MT r004 = asin(inF0); \ - MT r005 = atan(inF0); \ - MT r006 = atan2(inF0, inF1); \ - MT r007 = ceil(inF0); \ - clip(inF0); \ - MT r008 = clamp(inF0, inF1, inF2); \ - MT r009 = cos(inF0); \ - MT r010 = cosh(inF0); \ - MT r011 = ddx(inF0); \ - MT r012 = ddx_coarse(inF0); \ - MT r013 = ddx_fine(inF0); \ - MT r014 = ddy(inF0); \ - MT r015 = ddy_coarse(inF0); \ - MT r016 = ddy_fine(inF0); \ - MT r017 = degrees(inF0); \ - float r018 = determinant(inF0); \ - MT r019 = exp(inF0); \ - MT R020 = exp2(inF0); \ - MT r021 = floor(inF0); \ - MT r022 = fmod(inF0, inF1); \ - MT r023 = frac(inF0); \ - MT r025 = fwidth(inF0); \ - MT r026 = ldexp(inF0, inF1); \ - MT r026a = lerp(inF0, inF1, inF2); \ - MT r027 = log(inF0); \ - MT r028 = log10(inF0); \ - MT r029 = log2(inF0); \ - MT r030 = max(inF0, inF1); \ - MT r031 = min(inF0, inF1); \ - MT r032 = pow(inF0, inF1); \ - MT r033 = radians(inF0); \ - MT r034 = round(inF0); \ - MT r035 = rsqrt(inF0); \ - MT r036 = saturate(inF0); \ - MT r037 = sign(inF0); \ - MT r038 = sin(inF0); \ - sincos(inF0, inF1, inF2); \ - MT r039 = sinh(inF0); \ - MT r049 = smoothstep(inF0, inF1, inF2); \ - MT r041 = sqrt(inF0); \ - MT r042 = step(inF0, inF1); \ - MT r043 = tan(inF0); \ - MT r044 = tanh(inF0); \ - transpose(inF0); \ - MT r046 = trunc(inF0); - -// TODO: turn on non-square matrix tests when protos are available. - -float2x2 PixelShaderFunction2x2(float2x2 inF0, float2x2 inF1, float2x2 inF2) -{ - // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. - MATFNS(float2x2); - - // TODO: ... add when float1 prototypes are generated - return float2x2(2,2,2,2); -} - -float3x3 PixelShaderFunction3x3(float3x3 inF0, float3x3 inF1, float3x3 inF2) -{ - // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. - MATFNS(float3x3); - - // TODO: ... add when float1 prototypes are generated - return float3x3(3,3,3,3,3,3,3,3,3); -} - -float4x4 PixelShaderFunction4x4(float4x4 inF0, float4x4 inF1, float4x4 inF2) -{ - // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. - MATFNS(float4x4); - - // TODO: ... add when float1 prototypes are generated - return float4x4(4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4); -} - -#define TESTGENMUL(ST, VT, MT) \ - ST r0 = mul(inF0, inF1); \ - VT r1 = mul(inFV0, inF0); \ - VT r2 = mul(inF0, inFV0); \ - ST r3 = mul(inFV0, inFV1); \ - VT r4 = mul(inFM0, inFV0); \ - VT r5 = mul(inFV0, inFM0); \ - MT r6 = mul(inFM0, inF0); \ - MT r7 = mul(inF0, inFM0); \ - MT r8 = mul(inFM0, inFM1); - - -void TestGenMul2(float inF0, float inF1, - float2 inFV0, float2 inFV1, - float2x2 inFM0, float2x2 inFM1) -{ - TESTGENMUL(float, float2, float2x2); -} - -void TestGenMul3(float inF0, float inF1, - float3 inFV0, float3 inFV1, - float3x3 inFM0, float3x3 inFM1) -{ - TESTGENMUL(float, float3, float3x3); -} - -void TestGenMul4(float inF0, float inF1, - float4 inFV0, float4 inFV1, - float4x4 inFM0, float4x4 inFM1) -{ - TESTGENMUL(float, float4, float4x4); -} - -// Test some non-square mats -void TestGenMulNxM(float inF0, float inF1, - float2 inFV2, float3 inFV3, - float2x3 inFM2x3, float3x2 inFM3x2, - float3x3 inFM3x3, float3x4 inFM3x4, - float2x4 inFM2x4) -{ - float r00 = mul(inF0, inF1); // S=S*S - float2 r01 = mul(inFV2, inF0); // V=V*S - float3 r02 = mul(inFV3, inF0); // V=V*S - float2 r03 = mul(inF0, inFV2); // V=S*V - float3 r04 = mul(inF0, inFV3); // V=S*V - float r05 = mul(inFV2, inFV2); // S=V*V - float r06 = mul(inFV3, inFV3); // S=V*V - float3 r07 = mul(inFV2, inFM2x3); // V=V*M (return V dim is Mcols) - float2 r08 = mul(inFV3, inFM3x2); // V=V*M (return V dim is Mcols) - float2 r09 = mul(inFM2x3, inFV3); // V=M*V (return V dim is Mrows) - float3 r10 = mul(inFM3x2, inFV2); // V=M*V (return V dim is Mrows) - float2x3 r11 = mul(inFM2x3, inF0); - float3x2 r12 = mul(inFM3x2, inF0); - float2x2 r13 = mul(inFM2x3, inFM3x2); - float2x3 r14 = mul(inFM2x3, inFM3x3); - float2x4 r15 = mul(inFM2x3, inFM3x4); - float3x4 r16 = mul(inFM3x2, inFM2x4); -} - -struct PS_OUTPUT { float4 color : SV_Target0; }; - -PS_OUTPUT main() -{ - PS_OUTPUT ps_output; - ps_output.color = 1.0; - return ps_output; -}; diff --git a/deps/glslang/Test/hlsl.intrinsics.lit.frag b/deps/glslang/Test/hlsl.intrinsics.lit.frag deleted file mode 100644 index bf4069a8..00000000 --- a/deps/glslang/Test/hlsl.intrinsics.lit.frag +++ /dev/null @@ -1,4 +0,0 @@ -void PixelShaderFunction(float n_dot_l, float n_dot_h, float m) -{ - float4 r0 = lit(n_dot_l, n_dot_h, m); -} diff --git a/deps/glslang/Test/hlsl.intrinsics.negative.comp b/deps/glslang/Test/hlsl.intrinsics.negative.comp deleted file mode 100644 index 44e885e1..00000000 --- a/deps/glslang/Test/hlsl.intrinsics.negative.comp +++ /dev/null @@ -1,191 +0,0 @@ -void ComputeShaderFunctionS(float inF0, float inF1, float inF2, int inI0) -{ - uint out_u1; - - // AllMemoryBarrier(); // invalid in fragment stage TODO: parser currently crashes on empty arg list - // AllMemoryBarrierWithGroupSync(); // invalid in fragment stage TODO: parser currently crashes on empty arg list - // asdouble(inF0, inF1); // expected error: only integer inputs - // CheckAccessFullyMapped(3.0); // expected error: only valid on integers - // clip(inF0); // expected error: only valid in pixel stage - // countbits(inF0); // expected error: only integer inputs - // cross(inF0, inF1); // expected error: only on float3 inputs - // D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs - // ddx(inF0); // expected error: only valid in pixel stage - // ddx_coarse(inF0); // expected error: only valid in pixel stage - // ddx_fine(inF0); // expected error: only valid in pixel stage - // ddy(inF0); // expected error: only valid in pixel stage - // ddy_coarse(inF0); // expected error: only valid in pixel stage - // ddy_fine(inF0); // expected error: only valid in pixel stage - // determinant(inF0); // expected error: only valid on mats - // EvaluateAttributeAtCentroid(inF0); // expected error: only interpolant - // EvaluateAttributeAtSample(inF0, 2); // expected error: only interpolant - // EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only interpolant - // f16tof32(inF0); // expected error: only integer inputs - // firstbithigh(inF0); // expected error: only integer inputs - // firstbitlow(inF0); // expected error: only integer inputs - // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC - // fwidth(inF0); // expected error: only valid in pixel stage - // InterlockedAdd(gs_ua, gs_ub); // expected error: only valid in pixel stage - // InterlockedAdd(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage - // InterlockedAnd(gs_ua, gs_ub); // expected error: only valid in pixel stage - // InterlockedAnd(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage - // InterlockedCompareExchange(gs_ua, gs_ub, gs_uc, out_u1); // expected error: only valid in pixel stage - // InterlockedExchange(gs_ua, gs_ub, out_u1);// expected error: only valid in pixel stage - // InterlockedMax(gs_ua, gs_ub); // expected error: only valid in pixel stage - // InterlockedMax(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage - // InterlockedMin(gs_ua, gs_ub); // expected error: only valid in pixel stage - // InterlockedMin(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage - // InterlockedOr(gs_ua, gs_ub); // expected error: only valid in pixel stage - // InterlockedOr(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage - // InterlockedXor(gs_ua, gs_ub); // expected error: only valid in pixel stage - // InterlockedXor(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage - // length(inF0); // expect error: invalid on scalars - // msad4(inF0, float2(0), float4(0)); // expected error: only integer inputs - // normalize(inF0); // expect error: invalid on scalars - // reflect(inF0, inF1); // expect error: invalid on scalars - // refract(inF0, inF1, inF2); // expect error: invalid on scalars - // refract(float2(0), float2(0), float2(0)); // expected error: last parameter only scalar - // reversebits(inF0); // expected error: only integer inputs - // transpose(inF0); // expect error: only valid on mats - - // TODO: texture intrinsics, when we can declare samplers. -} - -void ComputeShaderFunction1(float1 inF0, float1 inF1, float1 inF2, int1 inI0) -{ - // TODO: ... add when float1 prototypes are generated - - // GetRenderTargetSamplePosition(inF0); // expected error: only integer inputs -} - -void ComputeShaderFunction2(float2 inF0, float2 inF1, float2 inF2, int2 inI0) -{ - uint2 out_u2; - - // asdouble(inF0, inF1); // expected error: only integer inputs - // CheckAccessFullyMapped(inF0); // expect error: only valid on scalars - // countbits(inF0); // expected error: only integer inputs - // cross(inF0, inF1); // expected error: only on float3 inputs - // D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs - // ddx(inF0); // only valid in pixel stage - // ddx_coarse(inF0); // only valid in pixel stage - // ddx_fine(inF0); // only valid in pixel stage - // ddy(inF0); // only valid in pixel stage - // ddy_coarse(inF0); // only valid in pixel stage - // ddy_fine(inF0); // only valid in pixel stage - // determinant(inF0); // expect error: only valid on mats - // EvaluateAttributeAtCentroid(inF0); // expected error: only interpolant - // EvaluateAttributeAtSample(inF0, 2); // expected error: only interpolant - // EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only interpolant - // f16tof32(inF0); // expected error: only integer inputs - // firstbithigh(inF0); // expected error: only integer inputs - // firstbitlow(inF0); // expected error: only integer inputs - // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC - // fwidth(inF0); // expected error: only valid in pixel stage - // InterlockedAdd(gs_ua2, gs_ub2); // expected error: only valid in pixel stage - // InterlockedAdd(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage - // InterlockedAnd(gs_ua2, gs_ub2); // expected error: only valid in pixel stage - // InterlockedAnd(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage - // InterlockedCompareExchange(gs_ua2, gs_ub2, gs_uc2, out_u2); // expected error: only valid in pixel stage - // InterlockedExchange(gs_ua2, gs_ub2, out_u2);// expected error: only valid in pixel stage - // InterlockedMax(gs_ua2, gs_ub2); // expected error: only valid in pixel stage - // InterlockedMax(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage - // InterlockedMin(gs_ua2, gs_ub2); // expected error: only valid in pixel stage - // InterlockedMin(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage - // InterlockedOr(gs_ua2, gs_ub2); // expected error: only valid in pixel stage - // InterlockedOr(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage - // InterlockedXor(gs_ua2, gs_ub2); // expected error: only valid in pixel stage - // InterlockedXor(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage - // noise(inF0); // expected error: only valid in pixel stage - // reversebits(inF0); // expected error: only integer inputs - // transpose(inF0); // expect error: only valid on mats - - // TODO: texture intrinsics, when we can declare samplers. -} - -void ComputeShaderFunction3(float3 inF0, float3 inF1, float3 inF2, int3 inI0) -{ - uint3 out_u3; - - // CheckAccessFullyMapped(inF0); // expect error: only valid on scalars - // countbits(inF0); // expected error: only integer inputs - // ddx(inF0); // only valid in pixel stage - // ddx_coarse(inF0); // only valid in pixel stage - // ddx_fine(inF0); // only valid in pixel stage - // ddy(inF0); // only valid in pixel stage - // ddy_coarse(inF0); // only valid in pixel stage - // ddy_fine(inF0); // only valid in pixel stage - // D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs - // determinant(inF0); // expect error: only valid on mats - // EvaluateAttributeAtCentroid(inF0); // expected error: only interpolant - // EvaluateAttributeAtSample(inF0, 2); // expected error: only interpolant - // EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only interpolant - // f16tof32(inF0); // expected error: only integer inputs - // firstbithigh(inF0); // expected error: only integer inputs - // firstbitlow(inF0); // expected error: only integer inputs - // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC - // fwidth(inF0); // expected error: only valid in pixel stage - // InterlockedAdd(gs_ua3, gs_ub3); // expected error: only valid in pixel stage - // InterlockedAdd(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage - // InterlockedAnd(gs_ua3, gs_ub3); // expected error: only valid in pixel stage - // InterlockedAnd(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage - // InterlockedCompareExchange(gs_ua3, gs_ub3, gs_uc3, out_u3); // expected error: only valid in pixel stage - // InterlockedExchange(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage - // InterlockedMax(gs_ua3, gs_ub3); // expected error: only valid in pixel stage - // InterlockedMax(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage - // InterlockedMin(gs_ua3, gs_ub3); // expected error: only valid in pixel stage - // InterlockedMin(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage - // InterlockedOr(gs_ua3, gs_ub3); // expected error: only valid in pixel stage - // InterlockedOr(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage - // InterlockedXor(gs_ua3, gs_ub3); // expected error: only valid in pixel stage - // InterlockedXor(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage - // noise(inF0); // expected error: only valid in pixel stage - // reversebits(inF0); // expected error: only integer inputs - // transpose(inF0); // expect error: only valid on mats - - // TODO: texture intrinsics, when we can declare samplers. -} - -void ComputeShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0) -{ - uint4 out_u4; - - // CheckAccessFullyMapped(inF0); // expect error: only valid on scalars - // countbits(inF0); // expected error: only integer inputs - // cross(inF0, inF1); // expected error: only on float3 inputs - // determinant(inF0); // expect error: only valid on mats - // ddx(inF0); // only valid in pixel stage - // ddx_coarse(inF0); // only valid in pixel stage - // ddx_fine(inF0); // only valid in pixel stage - // ddy(inF0); // only valid in pixel stage - // ddy_coarse(inF0); // only valid in pixel stage - // ddy_fine(inF0); // only valid in pixel stage - // EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage - // EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage - // EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage - // f16tof32(inF0); // expected error: only integer inputs - // firstbithigh(inF0); // expected error: only integer inputs - // firstbitlow(inF0); // expected error: only integer inputs - // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC - // fwidth(inF0); // expected error: only valid in pixel stage - // InterlockedAdd(gs_ua4, gs_ub4); // expected error: only valid in pixel stage - // InterlockedAdd(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage - // InterlockedAnd(gs_ua4, gs_ub4); // expected error: only valid in pixel stage - // InterlockedAnd(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage - // InterlockedCompareExchange(gs_ua4, gs_ub4, gs_uc4, out_u4); // expected error: only valid in pixel stage - // InterlockedExchange(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage - // InterlockedMax(gs_ua4, gs_ub4); // expected error: only valid in pixel stage - // InterlockedMax(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage - // InterlockedMin(gs_ua4, gs_ub4); // expected error: only valid in pixel stage - // InterlockedMin(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage - // InterlockedOr(gs_ua4, gs_ub4); // expected error: only valid in pixel stage - // InterlockedOr(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage - // InterlockedXor(gs_ua4, gs_ub4); // expected error: only valid in pixel stage - // InterlockedXor(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage - // noise(inF0); // expected error: only valid in pixel stage - // reversebits(inF0); // expected error: only integer inputs - // transpose(inF0); // expect error: only valid on mats - - // TODO: texture intrinsics, when we can declare samplers. -} - diff --git a/deps/glslang/Test/hlsl.intrinsics.negative.frag b/deps/glslang/Test/hlsl.intrinsics.negative.frag deleted file mode 100644 index 8afaf877..00000000 --- a/deps/glslang/Test/hlsl.intrinsics.negative.frag +++ /dev/null @@ -1,136 +0,0 @@ -float PixelShaderFunctionS(float inF0, float inF1, float inF2, int inI0) -{ - // AllMemoryBarrier(); // TODO: expected error: invalid in fragment stage - // AllMemoryBarrierWithGroupSync(); // TODO: expected error: invalid in fragment stage - asdouble(inF0, inF1); // expected error: only integer inputs - CheckAccessFullyMapped(3.0); // expected error: only valid on integers - countbits(inF0); // expected error: only integer inputs - cross(inF0, inF1); // expected error: only on float3 inputs - D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs - determinant(inF0); // expected error: only valid on mats - // DeviceMemoryBarrierWithGroupSync(); // TODO: expected error: only valid in compute stage - f16tof32(inF0); // expected error: only integer inputs - firstbithigh(inF0); // expected error: only integer inputs - firstbitlow(inF0); // expected error: only integer inputs - // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC - // InterlockedAdd(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator - // InterlockedAnd(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out i // InterlockedMax(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator - // InterlockedMin(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator - // InterlockedOor(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator - // InterlockedXor(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator - // GroupMemoryBarrier(); // TODO: expected error: invalid in fragment stage - // GroupMemoryBarrierWithGroupSync(); // TODO: expected error: invalid in fragment stage - length(inF0); // expected error: invalid on scalars - msad4(inF0, float2(0), float4(0)); // expected error: only integer inputs - normalize(inF0); // expected error: invalid on scalars - reflect(inF0, inF1); // expected error: invalid on scalars - refract(inF0, inF1, inF2); // expected error: invalid on scalars - refract(float2(0), float2(0), float2(0)); // expected error: last parameter only scalar - reversebits(inF0); // expected error: only integer inputs - transpose(inF0); // expected error: only valid on mats - - return 0.0; -} - -float1 PixelShaderFunction1(float1 inF0, float1 inF1, float1 inF2, int1 inI0) -{ - // TODO: ... add when float1 prototypes are generated - - GetRenderTargetSamplePosition(inF0); // expected error: only integer inputs - - return 0.0; -} - -float2 PixelShaderFunction2(float2 inF0, float2 inF1, float2 inF2, int2 inI0) -{ - asdouble(inF0, inF1); // expected error: only integer inputs - CheckAccessFullyMapped(inF0); // expected error: only valid on scalars - countbits(inF0); // expected error: only integer inputs - cross(inF0, inF1); // expected error: only on float3 inputs - D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs - determinant(inF0); // expected error: only valid on mats - f16tof32(inF0); // expected error: only integer inputs - firstbithigh(inF0); // expected error: only integer inputs - firstbitlow(inF0); // expected error: only integer inputs - // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC - reversebits(inF0); // expected error: only integer inputs - transpose(inF0); // expected error: only valid on mats - - return float2(1,2); -} - -float3 PixelShaderFunction3(float3 inF0, float3 inF1, float3 inF2, int3 inI0) -{ - CheckAccessFullyMapped(inF0); // expected error: only valid on scalars - countbits(inF0); // expected error: only integer inputs - D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs - determinant(inF0); // expected error: only valid on mats - f16tof32(inF0); // expected error: only integer inputs - firstbithigh(inF0); // expected error: only integer inputs - firstbitlow(inF0); // expected error: only integer inputs - // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC - reversebits(inF0); // expected error: only integer inputs - transpose(inF0); // expected error: only valid on mats - - - return float3(1,2,3); -} - -float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0) -{ - CheckAccessFullyMapped(inF0); // expected error: only valid on scalars - countbits(inF0); // expected error: only integer inputs - cross(inF0, inF1); // expected error: only on float3 inputs - determinant(inF0); // expected error: only valid on mats - f16tof32(inF0); // expected error: only integer inputs - firstbithigh(inF0); // expected error: only integer inputs - firstbitlow(inF0); // expected error: only integer inputs - // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC - reversebits(inF0); // expected error: only integer inputs - transpose(inF0); // expected error: only valid on mats - - return float4(1,2,3,4); -} - -// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. -#define MATFNS() \ - countbits(inF0); \ - D3DCOLORtoUBYTE4(inF0); \ - cross(inF0, inF1); \ - f16tof32(inF0); \ - firstbithigh(inF0); \ - firstbitlow(inF0); \ - reversebits(inF0); \ - length(inF0); \ - noise(inF0); \ - normalize(inF0); \ - reflect(inF0, inF1); \ - refract(inF0, inF1, 1.0); \ - reversebits(inF0); \ - - -// TODO: turn on non-square matrix tests when protos are available. - -float2x2 PixelShaderFunction2x2(float2x2 inF0, float2x2 inF1, float2x2 inF2) -{ - // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. - MATFNS() - - return float2x2(2,2,2,2); -} - -float3x3 PixelShaderFunction3x3(float3x3 inF0, float3x3 inF1, float3x3 inF2) -{ - // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. - MATFNS() - - return float3x3(3,3,3,3,3,3,3,3,3); -} - -float4x4 PixelShaderFunction4x4(float4x4 inF0, float4x4 inF1, float4x4 inF2) -{ - // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. - MATFNS() - - return float4x4(4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4); -} diff --git a/deps/glslang/Test/hlsl.intrinsics.negative.vert b/deps/glslang/Test/hlsl.intrinsics.negative.vert deleted file mode 100644 index 6224b25e..00000000 --- a/deps/glslang/Test/hlsl.intrinsics.negative.vert +++ /dev/null @@ -1,247 +0,0 @@ -static uint gs_ua; -static uint gs_ub; -static uint gs_uc; -static uint2 gs_ua2; -static uint2 gs_ub2; -static uint2 gs_uc2; -static uint3 gs_ua3; -static uint3 gs_ub3; -static uint3 gs_uc3; -static uint4 gs_ua4; -static uint4 gs_ub4; -static uint4 gs_uc4; - -float VertexShaderFunctionS(float inF0, float inF1, float inF2, int inI0) -{ - uint out_u1; - - // AllMemoryBarrier(); // expected error: only valid in compute stage - // AllMemoryBarrierWithGroupSync(); // expected error: only valid in compute stage - // asdouble(inF0, inF1); // expected error: only integer inputs - // CheckAccessFullyMapped(3.0); // expected error: only valid on integers - // CheckAccessFullyMapped(3); // expected error: only valid in pixel & compute stages - // clip(inF0); // expected error: only valid in pixel stage - // countbits(inF0); // expected error: only integer inputs - // cross(inF0, inF1); // expected error: only on float3 inputs - // D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs - // DeviceMemoryBarrier(); // expected error: only valid in pixel & compute stages - // DeviceMemoryBarrierWithGroupSync(); // expected error: only valid in compute stage - // ddx(inF0); // expected error: only valid in pixel stage - // ddx_coarse(inF0); // expected error: only valid in pixel stage - // ddx_fine(inF0); // expected error: only valid in pixel stage - // ddy(inF0); // expected error: only valid in pixel stage - // ddy_coarse(inF0); // expected error: only valid in pixel stage - // ddy_fine(inF0); // expected error: only valid in pixel stage - // determinant(inF0); // expected error: only valid on mats - // EvaluateAttributeAtCentroid(inF0); // expected error: only interpolant - // EvaluateAttributeAtSample(inF0, 2); // expected error: only interpolant - // EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only interpolant - // f16tof32(inF0); // expected error: only integer inputs - // firstbithigh(inF0); // expected error: only integer inputs - // firstbitlow(inF0); // expected error: only integer inputs - // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC - // fwidth(inF0); // expected error: only valid in pixel stage - // InterlockedAdd(gs_ua, gs_ub); // expected error: only valid in pixel stage - // InterlockedAdd(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage - // InterlockedAnd(gs_ua, gs_ub); // expected error: only valid in pixel stage - // InterlockedAnd(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage - // InterlockedCompareExchange(gs_ua, gs_ub, gs_uc, out_u1); // expected error: only valid in pixel stage - // InterlockedExchange(gs_ua, gs_ub, out_u1);// expected error: only valid in pixel stage - // InterlockedMax(gs_ua, gs_ub); // expected error: only valid in pixel stage - // InterlockedMax(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage - // InterlockedMin(gs_ua, gs_ub); // expected error: only valid in pixel stage - // InterlockedMin(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage - // InterlockedOr(gs_ua, gs_ub); // expected error: only valid in pixel stage - // InterlockedOr(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage - // InterlockedXor(gs_ua, gs_ub); // expected error: only valid in pixel stage - // InterlockedXor(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage - // GroupMemoryBarrier(); // expected error: only valid in compute stage - // GroupMemoryBarrierWithGroupSync(); // expected error: only valid in compute stage - // length(inF0); // expect error: invalid on scalars - // msad4(inF0, float2(0), float4(0)); // expected error: only integer inputs - // normalize(inF0); // expect error: invalid on scalars - // reflect(inF0, inF1); // expect error: invalid on scalars - // refract(inF0, inF1, inF2); // expect error: invalid on scalars - // refract(float2(0), float2(0), float2(0)); // expected error: last parameter only scalar - // reversebits(inF0); // expected error: only integer inputs - // transpose(inF0); // expect error: only valid on mats - - // TODO: texture intrinsics, when we can declare samplers. - - return 0.0; -} - -float1 VertexShaderFunction1(float1 inF0, float1 inF1, float1 inF2, int1 inI0) -{ - // TODO: ... add when float1 prototypes are generated - - // GetRenderTargetSamplePosition(inF0); // expected error: only integer inputs - - return 0.0; -} - -float2 VertexShaderFunction2(float2 inF0, float2 inF1, float2 inF2, int2 inI0) -{ - uint2 out_u2; - - // asdouble(inF0, inF1); // expected error: only integer inputs - // CheckAccessFullyMapped(inF0); // expect error: only valid on scalars - // countbits(inF0); // expected error: only integer inputs - // cross(inF0, inF1); // expected error: only on float3 inputs - // D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs - // ddx(inF0); // only valid in pixel stage - // ddx_coarse(inF0); // only valid in pixel stage - // ddx_fine(inF0); // only valid in pixel stage - // ddy(inF0); // only valid in pixel stage - // ddy_coarse(inF0); // only valid in pixel stage - // ddy_fine(inF0); // only valid in pixel stage - // determinant(inF0); // expect error: only valid on mats - // EvaluateAttributeAtCentroid(inF0); // expected error: only interpolant - // EvaluateAttributeAtSample(inF0, 2); // expected error: only interpolant - // EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only interpolant - // f16tof32(inF0); // expected error: only integer inputs - // firstbithigh(inF0); // expected error: only integer inputs - // firstbitlow(inF0); // expected error: only integer inputs - // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC - // fwidth(inF0); // expected error: only valid in pixel stage - // InterlockedAdd(gs_ua2, gs_ub2); // expected error: only valid in pixel stage - // InterlockedAdd(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage - // InterlockedAnd(gs_ua2, gs_ub2); // expected error: only valid in pixel stage - // InterlockedAnd(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage - // InterlockedCompareExchange(gs_ua2, gs_ub2, gs_uc2, out_u2); // expected error: only valid in pixel stage - // InterlockedExchange(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage - // InterlockedMax(gs_ua2, gs_ub2); // expected error: only valid in pixel stage - // InterlockedMax(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage - // InterlockedMin(gs_ua2, gs_ub2); // expected error: only valid in pixel stage - // InterlockedMin(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage - // InterlockedOr(gs_ua2, gs_ub2); // expected error: only valid in pixel stage - // InterlockedOr(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage - // InterlockedXor(gs_ua2, gs_ub2); // expected error: only valid in pixel stage - // InterlockedXor(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage - // noise(inF0); // expected error: only valid in pixel stage - // reversebits(inF0); // expected error: only integer inputs - // transpose(inF0); // expect error: only valid on mats - - // TODO: texture intrinsics, when we can declare samplers. - - return float2(1,2); -} - -float3 VertexShaderFunction3(float3 inF0, float3 inF1, float3 inF2, int3 inI0) -{ - uint3 out_u3; - - // CheckAccessFullyMapped(inF0); // expect error: only valid on scalars - // countbits(inF0); // expected error: only integer inputs - // ddx(inF0); // only valid in pixel stage - // ddx_coarse(inF0); // only valid in pixel stage - // ddx_fine(inF0); // only valid in pixel stage - // ddy(inF0); // only valid in pixel stage - // ddy_coarse(inF0); // only valid in pixel stage - // ddy_fine(inF0); // only valid in pixel stage - // D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs - // determinant(inF0); // expect error: only valid on mats - // EvaluateAttributeAtCentroid(inF0); // expected error: only interpolant - // EvaluateAttributeAtSample(inF0, 2); // expected error: only interpolant - // EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only interpolant - // f16tof32(inF0); // expected error: only integer inputs - // firstbithigh(inF0); // expected error: only integer inputs - // firstbitlow(inF0); // expected error: only integer inputs - // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC - // fwidth(inF0); // expected error: only valid in pixel stage - // InterlockedAdd(gs_ua3, gs_ub3); // expected error: only valid in pixel stage - // InterlockedAdd(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage - // InterlockedAnd(gs_ua3, gs_ub3); // expected error: only valid in pixel stage - // InterlockedAnd(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage - // InterlockedCompareExchange(gs_ua3, gs_ub3, gs_uc3, out_u3); // expected error: only valid in pixel stage - // InterlockedExchange(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage - // InterlockedMax(gs_ua3, gs_ub3); // expected error: only valid in pixel stage - // InterlockedMax(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage - // InterlockedMin(gs_ua3, gs_ub3); // expected error: only valid in pixel stage - // InterlockedMin(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage - // InterlockedOr(gs_ua3, gs_ub3); // expected error: only valid in pixel stage - // InterlockedOr(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage - // InterlockedXor(gs_ua3, gs_ub3); // expected error: only valid in pixel stage - // InterlockedXor(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage - // noise(inF0); // expected error: only valid in pixel stage - // reversebits(inF0); // expected error: only integer inputs - // transpose(inF0); // expect error: only valid on mats - - // TODO: texture intrinsics, when we can declare samplers. - - return float3(1,2,3); -} - -float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0) -{ - uint4 out_u4; - - // CheckAccessFullyMapped(inF0); // expect error: only valid on scalars - // countbits(inF0); // expected error: only integer inputs - // cross(inF0, inF1); // expected error: only on float3 inputs - // determinant(inF0); // expect error: only valid on mats - // ddx(inF0); // only valid in pixel stage - // ddx_coarse(inF0); // only valid in pixel stage - // ddx_fine(inF0); // only valid in pixel stage - // ddy(inF0); // only valid in pixel stage - // ddy_coarse(inF0); // only valid in pixel stage - // ddy_fine(inF0); // only valid in pixel stage - // EvaluateAttributeAtCentroid(inF0); // expected error: only interpolant - // EvaluateAttributeAtSample(inF0, 2); // expected error: only interpolant - // EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only interpolant - // f16tof32(inF0); // expected error: only integer inputs - // firstbithigh(inF0); // expected error: only integer inputs - // firstbitlow(inF0); // expected error: only integer inputs - // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC - // fwidth(inF0); // expected error: only valid in pixel stage - // InterlockedAdd(gs_ua4, gs_ub4); // expected error: only valid in pixel stage - // InterlockedAdd(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage - // InterlockedAnd(gs_ua4, gs_ub4); // expected error: only valid in pixel stage - // InterlockedAnd(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage - // InterlockedCompareExchange(gs_ua4, gs_ub4, gs_uc4, out_u4); // expected error: only valid in pixel stage - // InterlockedExchange(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage - // InterlockedMax(gs_ua4, gs_ub4); // expected error: only valid in pixel stage - // InterlockedMax(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage - // InterlockedMin(gs_ua4, gs_ub4); // expected error: only valid in pixel stage - // InterlockedMin(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage - // InterlockedOr(gs_ua4, gs_ub4); // expected error: only valid in pixel stage - // InterlockedOr(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage - // InterlockedXor(gs_ua4, gs_ub4); // expected error: only valid in pixel stage - // InterlockedXor(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage - // noise(inF0); // expected error: only valid in pixel stage - // reversebits(inF0); // expected error: only integer inputs - // transpose(inF0); // expect error: only valid on mats - - // TODO: texture intrinsics, when we can declare samplers. - - return float4(1,2,3,4); -} - -// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. -#define MATFNS() - -// TODO: turn on non-square matrix tests when protos are available. - -float2x2 VertexShaderFunction2x2(float2x2 inF0, float2x2 inF1, float2x2 inF2) -{ - // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. - MATFNS() - - return float2x2(2,2,2,2); -} - -float3x3 VertexShaderFunction3x3(float3x3 inF0, float3x3 inF1, float3x3 inF2) -{ - // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. - MATFNS() - - return float3x3(3,3,3,3,3,3,3,3,3); -} - -float4x4 VertexShaderFunction4x4(float4x4 inF0, float4x4 inF1, float4x4 inF2) -{ - // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. - MATFNS() - - return float4x4(4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4); -} diff --git a/deps/glslang/Test/hlsl.intrinsics.promote.down.frag b/deps/glslang/Test/hlsl.intrinsics.promote.down.frag deleted file mode 100644 index 5f4882b2..00000000 --- a/deps/glslang/Test/hlsl.intrinsics.promote.down.frag +++ /dev/null @@ -1,22 +0,0 @@ - -struct PS_OUTPUT { float4 color : SV_Target0; }; - -int i; -uint u; -float f; -bool b; - -int2 i2; -uint2 u2; -float2 f2; -bool2 b2; - -PS_OUTPUT main() -{ - uint r00 = countbits(f); - uint2 r01 = reversebits(f2); - - PS_OUTPUT ps_output; - ps_output.color = float4(0,0,0,0); - return ps_output; -}; diff --git a/deps/glslang/Test/hlsl.intrinsics.promote.frag b/deps/glslang/Test/hlsl.intrinsics.promote.frag deleted file mode 100644 index 89d3e680..00000000 --- a/deps/glslang/Test/hlsl.intrinsics.promote.frag +++ /dev/null @@ -1,79 +0,0 @@ - -struct PS_OUTPUT { float4 color : SV_Target0; }; - -int i; -uint u; -float f; -bool b; - -int2 i2; -uint2 u2; -float2 f2; -bool2 b2; - -Buffer g_tTexbfs; -Texture1D g_tTex1df4; -uint upos; -float fpos; - -PS_OUTPUT main() -{ - // Same shapes: - - float r00 = max(b, f); - uint r01 = max(b, u); - int r02 = max(b, i); - float r03 = max(i, f); - float r04 = max(u, f); - - float2 r10 = max(b2, f2); - uint2 r11 = max(b2, u2); - int2 r12 = max(b2, i2); - float2 r13 = max(i2, f2); - float2 r14 = max(u2, f2); - - float2 r20 = clamp(i2, u2, f2); // 3 args, converts all to best type. - uint2 r21 = clamp(b2, u2, b2); - float2 r22 = clamp(b2, f2, b2); - - // Mixed shapes: - float2 r30 = max(b, f2); - uint2 r31 = max(b, u2); - int2 r32 = max(b, i2); - float2 r33 = max(i, f2); - float2 r34 = max(u, f2); - - float2 r40 = clamp(i, u2, f2); // 3 args, converts all to best type. - uint2 r41 = clamp(b2, u, b2); - float2 r42 = clamp(b2, f, b); - int2 r43 = clamp(i, i2, u2); - - float r50 = g_tTexbfs.Load(upos); - float r51 = g_tTexbfs.Load(fpos); - - int MipLevel; - - uint WidthU; - uint HeightU; - uint ElementsU; - uint DepthU; - uint NumberOfLevelsU; - uint NumberOfSamplesU; - - int WidthI; - int HeightI; - int ElementsI; - int DepthI; - int NumberOfLevelsI; - int NumberOfSamplesI; - - g_tTex1df4 . GetDimensions(WidthI); - g_tTex1df4 . GetDimensions(6, WidthI, NumberOfLevelsU); - g_tTex1df4 . GetDimensions(6, WidthU, NumberOfLevelsI); - g_tTex1df4 . GetDimensions(6, WidthI, NumberOfLevelsI); - - // max(i2, f2); - PS_OUTPUT ps_output; - ps_output.color = r00; - return ps_output; -}; diff --git a/deps/glslang/Test/hlsl.intrinsics.promote.outputs.frag b/deps/glslang/Test/hlsl.intrinsics.promote.outputs.frag deleted file mode 100644 index 42fa3e80..00000000 --- a/deps/glslang/Test/hlsl.intrinsics.promote.outputs.frag +++ /dev/null @@ -1,49 +0,0 @@ - -struct PS_OUTPUT { float4 color : SV_Target0; }; - -int i; -uint u; -float f; -bool b; - -int2 i2; -uint2 u2; -float2 f2; -bool2 b2; - -Buffer g_tTexbfs; -Texture1D g_tTex1df4; -uint upos; -float fpos; - -PS_OUTPUT main() -{ - int MipLevel; - - uint WidthU; - uint HeightU; - uint ElementsU; - uint DepthU; - uint NumberOfLevelsU; - uint NumberOfSamplesU; - - int WidthI; - int HeightI; - int ElementsI; - int DepthI; - int NumberOfLevelsI; - int NumberOfSamplesI; - - saturate(fpos); - - // Test output promotions - g_tTex1df4 . GetDimensions(WidthI); - g_tTex1df4 . GetDimensions(6, WidthI, NumberOfLevelsU); - g_tTex1df4 . GetDimensions(6, WidthU, NumberOfLevelsI); - g_tTex1df4 . GetDimensions(6, WidthI, NumberOfLevelsI); - - // max(i2, f2); - PS_OUTPUT ps_output; - ps_output.color = 0; - return ps_output; -}; diff --git a/deps/glslang/Test/hlsl.intrinsics.vert b/deps/glslang/Test/hlsl.intrinsics.vert deleted file mode 100644 index c442f16a..00000000 --- a/deps/glslang/Test/hlsl.intrinsics.vert +++ /dev/null @@ -1,414 +0,0 @@ -float VertexShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, uint inU1) -{ - all(inF0); - abs(inF0); - acos(inF0); - any(inF0); - asin(inF0); - asint(inF0); - asuint(inF0); - asfloat(inU0); - // asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics - atan(inF0); - atan2(inF0, inF1); - ceil(inF0); - clamp(inF0, inF1, inF2); - cos(inF0); - cosh(inF0); - countbits(7); - degrees(inF0); - // EvaluateAttributeAtCentroid(inF0); - // EvaluateAttributeAtSample(inF0, 0); - // TODO: EvaluateAttributeSnapped(inF0, int2(1,2)); - exp(inF0); - exp2(inF0); - firstbithigh(7); - firstbitlow(7); - floor(inF0); - // TODO: fma(inD0, inD1, inD2); - fmod(inF0, inF1); - frac(inF0); - isinf(inF0); - isnan(inF0); - ldexp(inF0, inF1); - lerp(inF0, inF1, inF2); - log(inF0); - log10(inF0); - log2(inF0); - max(inF0, inF1); - min(inF0, inF1); - // TODO: mul(inF0, inF1); - pow(inF0, inF1); - radians(inF0); - reversebits(2); - round(inF0); - rsqrt(inF0); - saturate(inF0); - sign(inF0); - sin(inF0); - sincos(inF0, inF1, inF2); - sinh(inF0); - smoothstep(inF0, inF1, inF2); - sqrt(inF0); - step(inF0, inF1); - tan(inF0); - tanh(inF0); - // TODO: sampler intrinsics, when we can declare the types. - trunc(inF0); - - return 0.0; -} - -float1 VertexShaderFunction1(float1 inF0, float1 inF1, float1 inF2) -{ - // TODO: ... add when float1 prototypes are generated - return 0.0; -} - -float2 VertexShaderFunction2(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, uint2 inU1) -{ - all(inF0); - abs(inF0); - acos(inF0); - any(inF0); - asin(inF0); - asint(inF0); - asuint(inF0); - asfloat(inU0); - // asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics - atan(inF0); - atan2(inF0, inF1); - ceil(inF0); - clamp(inF0, inF1, inF2); - cos(inF0); - cosh(inF0); - countbits(int2(7,3)); - degrees(inF0); - distance(inF0, inF1); - dot(inF0, inF1); - // EvaluateAttributeAtCentroid(inF0); - // EvaluateAttributeAtSample(inF0, 0); - // TODO: EvaluateAttributeSnapped(inF0, int2(1,2)); - exp(inF0); - exp2(inF0); - faceforward(inF0, inF1, inF2); - firstbithigh(7); - firstbitlow(7); - floor(inF0); - // TODO: fma(inD0, inD1, inD2); - fmod(inF0, inF1); - frac(inF0); - isinf(inF0); - isnan(inF0); - ldexp(inF0, inF1); - lerp(inF0, inF1, inF2); - length(inF0); - log(inF0); - log10(inF0); - log2(inF0); - max(inF0, inF1); - min(inF0, inF1); - // TODO: mul(inF0, inF1); - normalize(inF0); - pow(inF0, inF1); - radians(inF0); - reflect(inF0, inF1); - refract(inF0, inF1, 2.0); - reversebits(int2(1,2)); - round(inF0); - rsqrt(inF0); - saturate(inF0); - sign(inF0); - sin(inF0); - sincos(inF0, inF1, inF2); - sinh(inF0); - smoothstep(inF0, inF1, inF2); - sqrt(inF0); - step(inF0, inF1); - tan(inF0); - tanh(inF0); - // TODO: sampler intrinsics, when we can declare the types. - trunc(inF0); - - // TODO: ... add when float1 prototypes are generated - return float2(1,2); -} - -float3 VertexShaderFunction3(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, uint3 inU1) -{ - all(inF0); - abs(inF0); - acos(inF0); - any(inF0); - asin(inF0); - asint(inF0); - asuint(inF0); - asfloat(inU0); - // asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics - atan(inF0); - atan2(inF0, inF1); - ceil(inF0); - clamp(inF0, inF1, inF2); - cos(inF0); - cosh(inF0); - countbits(int3(7,3,5)); - cross(inF0, inF1); - degrees(inF0); - distance(inF0, inF1); - dot(inF0, inF1); - // EvaluateAttributeAtCentroid(inF0); - // EvaluateAttributeAtSample(inF0, 0); - // TODO: EvaluateAttributeSnapped(inF0, int2(1,2)); - exp(inF0); - exp2(inF0); - faceforward(inF0, inF1, inF2); - firstbithigh(7); - firstbitlow(7); - floor(inF0); - // TODO: fma(inD0, inD1, inD2); - fmod(inF0, inF1); - frac(inF0); - isinf(inF0); - isnan(inF0); - ldexp(inF0, inF1); - lerp(inF0, inF1, inF2); - length(inF0); - log(inF0); - log10(inF0); - log2(inF0); - max(inF0, inF1); - min(inF0, inF1); - // TODO: mul(inF0, inF1); - normalize(inF0); - pow(inF0, inF1); - radians(inF0); - reflect(inF0, inF1); - refract(inF0, inF1, 2.0); - reversebits(int3(1,2,3)); - round(inF0); - rsqrt(inF0); - saturate(inF0); - sign(inF0); - sin(inF0); - sincos(inF0, inF1, inF2); - sinh(inF0); - smoothstep(inF0, inF1, inF2); - sqrt(inF0); - step(inF0, inF1); - tan(inF0); - tanh(inF0); - // TODO: sampler intrinsics, when we can declare the types. - trunc(inF0); - - // TODO: ... add when float1 prototypes are generated - return float3(1,2,3); -} - -float4 VertexShaderFunction4(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, uint4 inU1) -{ - all(inF0); - abs(inF0); - acos(inF0); - any(inF0); - asin(inF0); - asint(inF0); - asuint(inF0); - asfloat(inU0); - // asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics - atan(inF0); - atan2(inF0, inF1); - ceil(inF0); - clamp(inF0, inF1, inF2); - cos(inF0); - cosh(inF0); - countbits(int4(7,3,5,2)); - degrees(inF0); - distance(inF0, inF1); - dot(inF0, inF1); - dst(inF0, inF1); - // EvaluateAttributeAtCentroid(inF0); - // EvaluateAttributeAtSample(inF0, 0); - // TODO: EvaluateAttributeSnapped(inF0, int2(1,2)); - exp(inF0); - exp2(inF0); - faceforward(inF0, inF1, inF2); - firstbithigh(7); - firstbitlow(7); - floor(inF0); - // TODO: fma(inD0, inD1, inD2); - fmod(inF0, inF1); - frac(inF0); - isinf(inF0); - isnan(inF0); - ldexp(inF0, inF1); - lerp(inF0, inF1, inF2); - length(inF0); - log(inF0); - log10(inF0); - log2(inF0); - max(inF0, inF1); - min(inF0, inF1); - // TODO: mul(inF0, inF1); - normalize(inF0); - pow(inF0, inF1); - radians(inF0); - reflect(inF0, inF1); - refract(inF0, inF1, 2.0); - reversebits(int4(1,2,3,4)); - round(inF0); - rsqrt(inF0); - saturate(inF0); - sign(inF0); - sin(inF0); - sincos(inF0, inF1, inF2); - sinh(inF0); - smoothstep(inF0, inF1, inF2); - sqrt(inF0); - step(inF0, inF1); - tan(inF0); - tanh(inF0); - // TODO: sampler intrinsics, when we can declare the types. - trunc(inF0); - - // TODO: ... add when float1 prototypes are generated - return float4(1,2,3,4); -} - -// TODO: for mats: -// asfloat(inU0); \ -// asint(inF0); \ -// asuint(inF0); \ - -// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. -#define MATFNS() \ - all(inF0); \ - abs(inF0); \ - acos(inF0); \ - any(inF0); \ - asin(inF0); \ - atan(inF0); \ - atan2(inF0, inF1); \ - ceil(inF0); \ - clamp(inF0, inF1, inF2); \ - cos(inF0); \ - cosh(inF0); \ - degrees(inF0); \ - determinant(inF0); \ - exp(inF0); \ - exp2(inF0); \ - firstbithigh(7); \ - firstbitlow(7); \ - floor(inF0); \ - fmod(inF0, inF1); \ - frac(inF0); \ - ldexp(inF0, inF1); \ - lerp(inF0, inF1, inF2); \ - log(inF0); \ - log10(inF0); \ - log2(inF0); \ - max(inF0, inF1); \ - min(inF0, inF1); \ - pow(inF0, inF1); \ - radians(inF0); \ - round(inF0); \ - rsqrt(inF0); \ - saturate(inF0); \ - sign(inF0); \ - sin(inF0); \ - sincos(inF0, inF1, inF2); \ - sinh(inF0); \ - smoothstep(inF0, inF1, inF2); \ - sqrt(inF0); \ - step(inF0, inF1); \ - tan(inF0); \ - tanh(inF0); \ - transpose(inF0); \ - trunc(inF0); - -// TODO: turn on non-square matrix tests when protos are available. - -float2x2 VertexShaderFunction2x2(float2x2 inF0, float2x2 inF1, float2x2 inF2) -{ - // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. - MATFNS(); - - // TODO: ... add when float1 prototypes are generated - return float2x2(2,2,2,2); -} - -float3x3 VertexShaderFunction3x3(float3x3 inF0, float3x3 inF1, float3x3 inF2) -{ - // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. - MATFNS(); - - // TODO: ... add when float1 prototypes are generated - return float3x3(3,3,3,3,3,3,3,3,3); -} - -float4x4 VertexShaderFunction4x4(float4x4 inF0, float4x4 inF1, float4x4 inF2) -{ - // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. - MATFNS(); - - // TODO: ... add when float1 prototypes are generated - return float4x4(4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4); -} - -#define TESTGENMUL(ST, VT, MT) \ - ST r0 = mul(inF0, inF1); \ - VT r1 = mul(inFV0, inF0); \ - VT r2 = mul(inF0, inFV0); \ - ST r3 = mul(inFV0, inFV1); \ - VT r4 = mul(inFM0, inFV0); \ - VT r5 = mul(inFV0, inFM0); \ - MT r6 = mul(inFM0, inF0); \ - MT r7 = mul(inF0, inFM0); \ - MT r8 = mul(inFM0, inFM1); - - -void TestGenMul2(float inF0, float inF1, - float2 inFV0, float2 inFV1, - float2x2 inFM0, float2x2 inFM1) -{ - TESTGENMUL(float, float2, float2x2); -} - -void TestGenMul3(float inF0, float inF1, - float3 inFV0, float3 inFV1, - float3x3 inFM0, float3x3 inFM1) -{ - TESTGENMUL(float, float3, float3x3); -} - -void TestGenMul4(float inF0, float inF1, - float4 inFV0, float4 inFV1, - float4x4 inFM0, float4x4 inFM1) -{ - TESTGENMUL(float, float4, float4x4); -} - -// Test some non-square mats -void TestGenMulNxM(float inF0, float inF1, - float2 inFV2, float3 inFV3, - float2x3 inFM2x3, float3x2 inFM3x2, - float3x3 inFM3x3, float3x4 inFM3x4, - float2x4 inFM2x4) -{ - float r00 = mul(inF0, inF1); // S=S*S - float2 r01 = mul(inFV2, inF0); // V=V*S - float3 r02 = mul(inFV3, inF0); // V=V*S - float2 r03 = mul(inF0, inFV2); // V=S*V - float3 r04 = mul(inF0, inFV3); // V=S*V - float r05 = mul(inFV2, inFV2); // S=V*V - float r06 = mul(inFV3, inFV3); // S=V*V - float3 r07 = mul(inFV2, inFM2x3); // V=V*M (return V dim is Mcols) - float2 r08 = mul(inFV3, inFM3x2); // V=V*M (return V dim is Mcols) - float2 r09 = mul(inFM2x3, inFV3); // V=M*V (return V dim is Mrows) - float3 r10 = mul(inFM3x2, inFV2); // V=M*V (return V dim is Mrows) - float2x3 r11 = mul(inFM2x3, inF0); - float3x2 r12 = mul(inFM3x2, inF0); - float2x2 r13 = mul(inFM2x3, inFM3x2); - float2x3 r14 = mul(inFM2x3, inFM3x3); - float2x4 r15 = mul(inFM2x3, inFM3x4); - float3x4 r16 = mul(inFM3x2, inFM2x4); -} diff --git a/deps/glslang/Test/hlsl.isfinite.frag b/deps/glslang/Test/hlsl.isfinite.frag deleted file mode 100644 index 6e40f6a8..00000000 --- a/deps/glslang/Test/hlsl.isfinite.frag +++ /dev/null @@ -1,18 +0,0 @@ - -uniform float f; -uniform float2 f2; -uniform float3 f3; - -bool test1(float v) -{ - return !isnan(v) && isfinite(v); -} - -float4 main() : SV_Target0 -{ - isfinite(f); - isfinite(f2); - isfinite(f3); - - return 0; -} diff --git a/deps/glslang/Test/hlsl.layout.frag b/deps/glslang/Test/hlsl.layout.frag deleted file mode 100644 index a4fa5af2..00000000 --- a/deps/glslang/Test/hlsl.layout.frag +++ /dev/null @@ -1,19 +0,0 @@ -layout(set=3,binding=5) tbuffer tbufName { - layout(offset = 16) float4 v1; -}; - -layout(push_constant) tbuffer tbufName2 { - float4 v5; -}; - -layout(constant_id=17) const int specConst = 10; - -tbuffer tbufName2 : layout(set=4,binding=7) { - layout(offset = 16) float4 v1PostLayout; -}; - -float4 PixelShaderFunction(float4 input) : COLOR0 -{ - float4 layout = 2.0; - return input + v1 + v5 + v1PostLayout * layout; -} diff --git a/deps/glslang/Test/hlsl.layoutOverride.vert b/deps/glslang/Test/hlsl.layoutOverride.vert deleted file mode 100644 index 4c006018..00000000 --- a/deps/glslang/Test/hlsl.layoutOverride.vert +++ /dev/null @@ -1,7 +0,0 @@ -layout(set=2,binding=0) Texture2D tex : register(t16); -SamplerState samp; - -float4 main() : SV_Position -{ - return tex.Sample(samp, float2(0.2, 0.3)); -} \ No newline at end of file diff --git a/deps/glslang/Test/hlsl.load.2dms.dx10.frag b/deps/glslang/Test/hlsl.load.2dms.dx10.frag deleted file mode 100644 index bc1525b0..00000000 --- a/deps/glslang/Test/hlsl.load.2dms.dx10.frag +++ /dev/null @@ -1,56 +0,0 @@ -SamplerState g_sSamp : register(s0); - -Texture2DMS g_tTex2dmsf4; -Texture2DMS g_tTex2dmsi4; -Texture2DMS g_tTex2dmsu4; - -Texture2DMSArray g_tTex2dmsf4a; -Texture2DMSArray g_tTex2dmsi4a; -Texture2DMSArray g_tTex2dmsu4a; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -uniform int c1; -uniform int2 c2; -uniform int3 c3; -uniform int4 c4; - -int2 getOffset() -{ - return int2(1, 1); -} - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - // 2DMS, no offset - g_tTex2dmsf4.Load(c2, 3); - g_tTex2dmsi4.Load(c2, 3); - g_tTex2dmsu4.Load(c2, 3); - - // 2DMS, offset - g_tTex2dmsf4.Load(c2, 3, getOffset()); - g_tTex2dmsi4.Load(c2, 3, getOffset()); - g_tTex2dmsu4.Load(c2, 3, getOffset()); - - // 2DMSArray, no offset - g_tTex2dmsf4a.Load(c3, 3); - g_tTex2dmsi4a.Load(c3, 3); - g_tTex2dmsu4a.Load(c3, 3); - - // 2DMSArray, offset - g_tTex2dmsf4a.Load(c3, 3, getOffset()); - g_tTex2dmsi4a.Load(c3, 3, getOffset()); - g_tTex2dmsu4a.Load(c3, 3, getOffset()); - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} - diff --git a/deps/glslang/Test/hlsl.load.array.dx10.frag b/deps/glslang/Test/hlsl.load.array.dx10.frag deleted file mode 100644 index 253de3e2..00000000 --- a/deps/glslang/Test/hlsl.load.array.dx10.frag +++ /dev/null @@ -1,71 +0,0 @@ -SamplerState g_sSamp : register(s0); - -uniform Texture1D g_tTex1df4 : register(t0); -Texture1D g_tTex1di4; -Texture1D g_tTex1du4; - -Texture2D g_tTex2df4; -Texture2D g_tTex2di4; -Texture2D g_tTex2du4; - -Texture3D g_tTex3df4; -Texture3D g_tTex3di4; -Texture3D g_tTex3du4; - -TextureCube g_tTexcdf4; -TextureCube g_tTexcdi4; -TextureCube g_tTexcdu4; - -Texture1DArray g_tTex1df4a; -Texture1DArray g_tTex1di4a; -Texture1DArray g_tTex1du4a; - -Texture2DArray g_tTex2df4a; -Texture2DArray g_tTex2di4a; -Texture2DArray g_tTex2du4a; - -TextureCubeArray g_tTexcdf4a; -TextureCubeArray g_tTexcdi4a; -TextureCubeArray g_tTexcdu4a; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -uniform int c1; -uniform int2 c2; -uniform int3 c3; -uniform int4 c4; - -uniform int o1; -uniform int2 o2; -uniform int3 o3; -uniform int4 o4; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - // 1DArray - g_tTex1df4a.Load(c3); - g_tTex1di4a.Load(c3); - g_tTex1du4a.Load(c3); - - // 2DArray - g_tTex2df4a.Load(c4); - g_tTex2di4a.Load(c4); - g_tTex2du4a.Load(c4); - - // Offset has no Cube or CubeArray forms - - // TODO: - // Load, SampleIndex - // Load, SampleIndex, Offset - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.load.basic.dx10.frag b/deps/glslang/Test/hlsl.load.basic.dx10.frag deleted file mode 100644 index abb594e3..00000000 --- a/deps/glslang/Test/hlsl.load.basic.dx10.frag +++ /dev/null @@ -1,76 +0,0 @@ -SamplerState g_sSamp : register(s0); - -uniform Texture1D g_tTex1df4 : register(t0); -Texture1D g_tTex1di4; -Texture1D g_tTex1du4; - -Texture2D g_tTex2df4; -Texture2D g_tTex2di4; -Texture2D g_tTex2du4; - -Texture3D g_tTex3df4; -Texture3D g_tTex3di4; -Texture3D g_tTex3du4; - -TextureCube g_tTexcdf4; -TextureCube g_tTexcdi4; -TextureCube g_tTexcdu4; - -Texture1DArray g_tTex1df4a; -Texture1DArray g_tTex1di4a; -Texture1DArray g_tTex1du4a; - -Texture2DArray g_tTex2df4a; -Texture2DArray g_tTex2di4a; -Texture2DArray g_tTex2du4a; - -TextureCubeArray g_tTexcdf4a; -TextureCubeArray g_tTexcdi4a; -TextureCubeArray g_tTexcdu4a; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -uniform int c1; -uniform int2 c2; -uniform int3 c3; -uniform int4 c4; - -uniform int o1; -uniform int2 o2; -uniform int3 o3; -uniform int4 o4; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - // 1D - g_tTex1df4.Load(c2); - g_tTex1di4.Load(c2); - g_tTex1du4.Load(c2); - - // 2D - g_tTex2df4.Load(c3); - g_tTex2di4.Load(c3); - g_tTex2du4.Load(c3); - - // 3D - g_tTex3df4.Load(c4); - g_tTex3di4.Load(c4); - g_tTex3du4.Load(c4); - - // Offset has no Cube or CubeArray forms - - // TODO: - // Load, SampleIndex - // Load, SampleIndex, Offset - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.load.basic.dx10.vert b/deps/glslang/Test/hlsl.load.basic.dx10.vert deleted file mode 100644 index 750b9840..00000000 --- a/deps/glslang/Test/hlsl.load.basic.dx10.vert +++ /dev/null @@ -1,70 +0,0 @@ -SamplerState g_sSamp : register(s0); - -uniform Texture1D g_tTex1df4 : register(t0); -Texture1D g_tTex1di4; -Texture1D g_tTex1du4; - -Texture2D g_tTex2df4; -Texture2D g_tTex2di4; -Texture2D g_tTex2du4; - -Texture3D g_tTex3df4; -Texture3D g_tTex3di4; -Texture3D g_tTex3du4; - -TextureCube g_tTexcdf4; -TextureCube g_tTexcdi4; -TextureCube g_tTexcdu4; - -Texture1DArray g_tTex1df4a; -Texture1DArray g_tTex1di4a; -Texture1DArray g_tTex1du4a; - -Texture2DArray g_tTex2df4a; -Texture2DArray g_tTex2di4a; -Texture2DArray g_tTex2du4a; - -TextureCubeArray g_tTexcdf4a; -TextureCubeArray g_tTexcdi4a; -TextureCubeArray g_tTexcdu4a; - -struct VS_OUTPUT -{ - float4 Pos : SV_Position; -}; - -uniform int c1; -uniform int2 c2; -uniform int3 c3; -uniform int4 c4; - -uniform int o1; -uniform int2 o2; -uniform int3 o3; -uniform int4 o4; - -VS_OUTPUT main() -{ - VS_OUTPUT vsout; - - // 1D - g_tTex1df4.Load(c2); - g_tTex1di4.Load(c2); - g_tTex1du4.Load(c2); - - // 2D - g_tTex2df4.Load(c3); - g_tTex2di4.Load(c3); - g_tTex2du4.Load(c3); - - // 3D - g_tTex3df4.Load(c4); - g_tTex3di4.Load(c4); - g_tTex3du4.Load(c4); - - // Offset has no Cube or CubeArray forms - - vsout.Pos = float4(0,0,0,0); - - return vsout; -} diff --git a/deps/glslang/Test/hlsl.load.buffer.dx10.frag b/deps/glslang/Test/hlsl.load.buffer.dx10.frag deleted file mode 100644 index 60a61df6..00000000 --- a/deps/glslang/Test/hlsl.load.buffer.dx10.frag +++ /dev/null @@ -1,38 +0,0 @@ -uniform Buffer g_tTexbf4_test : register(t0); - -Buffer g_tTexbf4; // default is float4 -Buffer g_tTexbi4; -Buffer g_tTexbu4; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -uniform int c1; -uniform int2 c2; -uniform int3 c3; -uniform int4 c4; - -uniform int o1; -uniform int2 o2; -uniform int3 o3; -uniform int4 o4; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - // Buffer - float4 r00 = g_tTexbf4.Load(c1); - int4 r01 = g_tTexbi4.Load(c1); - uint4 r02 = g_tTexbu4.Load(c1); - - // TODO: other types that can be put in sampler buffers, like float2x2, and float3. - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.load.buffer.float.dx10.frag b/deps/glslang/Test/hlsl.load.buffer.float.dx10.frag deleted file mode 100644 index eeea9a63..00000000 --- a/deps/glslang/Test/hlsl.load.buffer.float.dx10.frag +++ /dev/null @@ -1,38 +0,0 @@ -uniform Buffer g_tTexbfs_test : register(t0); - -Buffer g_tTexbfs; -Buffer g_tTexbis; -Buffer g_tTexbus; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -uniform int c1; -uniform int2 c2; -uniform int3 c3; -uniform int4 c4; - -uniform int o1; -uniform int2 o2; -uniform int3 o3; -uniform int4 o4; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - // Buffer - float r00 = g_tTexbfs.Load(c1); - int r01 = g_tTexbis.Load(c1); - uint r02 = g_tTexbus.Load(c1); - - // TODO: other types that can be put in sampler buffers, like float2x2, and float3. - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.load.offset.dx10.frag b/deps/glslang/Test/hlsl.load.offset.dx10.frag deleted file mode 100644 index 926406f9..00000000 --- a/deps/glslang/Test/hlsl.load.offset.dx10.frag +++ /dev/null @@ -1,86 +0,0 @@ -SamplerState g_sSamp : register(s0); - -uniform Texture1D g_tTex1df4 : register(t0); -Texture1D g_tTex1di4; -Texture1D g_tTex1du4; - -Texture2D g_tTex2df4; -Texture2D g_tTex2di4; -Texture2D g_tTex2du4; - -Texture3D g_tTex3df4; -Texture3D g_tTex3di4; -Texture3D g_tTex3du4; - -TextureCube g_tTexcdf4; -TextureCube g_tTexcdi4; -TextureCube g_tTexcdu4; - -Texture1DArray g_tTex1df4a; -Texture1DArray g_tTex1di4a; -Texture1DArray g_tTex1du4a; - -Texture2DArray g_tTex2df4a; -Texture2DArray g_tTex2di4a; -Texture2DArray g_tTex2du4a; - -TextureCubeArray g_tTexcdf4a; -TextureCubeArray g_tTexcdi4a; -TextureCubeArray g_tTexcdu4a; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -uniform int c1; -uniform int2 c2; -uniform int3 c3; -uniform int4 c4; - -int getOffset1() -{ - return 1; -} - -int2 getOffset2() -{ - return int2(1, 1); -} - -int3 getOffset3() -{ - return int3(1, 1, 1); -} - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - // 1D - g_tTex1df4.Load(c2, getOffset1()); - g_tTex1di4.Load(c2, getOffset1()); - g_tTex1du4.Load(c2, getOffset1()); - - // 2D - g_tTex2df4.Load(c3, getOffset2()); - g_tTex2di4.Load(c3, getOffset2()); - g_tTex2du4.Load(c3, getOffset2()); - - // 3D - g_tTex3df4.Load(c4, getOffset3()); - g_tTex3di4.Load(c4, getOffset3()); - g_tTex3du4.Load(c4, getOffset3()); - - // Offset has no Cube or CubeArray forms - - // TODO: - // Load, SampleIndex - // Load, SampleIndex, Offset - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.load.offsetarray.dx10.frag b/deps/glslang/Test/hlsl.load.offsetarray.dx10.frag deleted file mode 100644 index d911d316..00000000 --- a/deps/glslang/Test/hlsl.load.offsetarray.dx10.frag +++ /dev/null @@ -1,74 +0,0 @@ -SamplerState g_sSamp : register(s0); - -uniform Texture1D g_tTex1df4 : register(t0); -Texture1D g_tTex1di4; -Texture1D g_tTex1du4; - -Texture2D g_tTex2df4; -Texture2D g_tTex2di4; -Texture2D g_tTex2du4; - -Texture3D g_tTex3df4; -Texture3D g_tTex3di4; -Texture3D g_tTex3du4; - -TextureCube g_tTexcdf4; -TextureCube g_tTexcdi4; -TextureCube g_tTexcdu4; - -Texture1DArray g_tTex1df4a; -Texture1DArray g_tTex1di4a; -Texture1DArray g_tTex1du4a; - -Texture2DArray g_tTex2df4a; -Texture2DArray g_tTex2di4a; -Texture2DArray g_tTex2du4a; - -TextureCubeArray g_tTexcdf4a; -TextureCubeArray g_tTexcdi4a; -TextureCubeArray g_tTexcdu4a; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -uniform int c1; -uniform int2 c2; -uniform int3 c3; -uniform int4 c4; - -int getOffset1() -{ - return 1; -} - -int2 getOffset2() -{ - return int2(1, 1); -} - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - // 1DArray - g_tTex1df4a.Load(c3, getOffset1()); - g_tTex1di4a.Load(c3, getOffset1()); - g_tTex1du4a.Load(c3, getOffset1()); - - // 2DArray - g_tTex2df4a.Load(c4, getOffset2()); - g_tTex2di4a.Load(c4, getOffset2()); - g_tTex2du4a.Load(c4, getOffset2()); - - // TODO: - // Load, SampleIndex - // Load, SampleIndex, Offset - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.load.rwbuffer.dx10.frag b/deps/glslang/Test/hlsl.load.rwbuffer.dx10.frag deleted file mode 100644 index accd5f0c..00000000 --- a/deps/glslang/Test/hlsl.load.rwbuffer.dx10.frag +++ /dev/null @@ -1,32 +0,0 @@ - -RWBuffer g_tBuffF; -RWBuffer g_tBuffI; -RWBuffer g_tBuffU; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; -}; - -uniform int c1; -uniform int2 c2; -uniform int3 c3; -uniform int4 c4; - -uniform int o1; -uniform int2 o2; -uniform int3 o3; -uniform int4 o4; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - g_tBuffF.Load(c1); - g_tBuffU.Load(c1); - g_tBuffI.Load(c1); - - psout.Color = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.load.rwtexture.array.dx10.frag b/deps/glslang/Test/hlsl.load.rwtexture.array.dx10.frag deleted file mode 100644 index 38e29096..00000000 --- a/deps/glslang/Test/hlsl.load.rwtexture.array.dx10.frag +++ /dev/null @@ -1,57 +0,0 @@ -SamplerState g_sSamp : register(s0); - -RWTexture1D g_tTex1df4 : register(t0); -RWTexture1D g_tTex1di4; -RWTexture1D g_tTex1du4; - -RWTexture2D g_tTex2df4; -RWTexture2D g_tTex2di4; -RWTexture2D g_tTex2du4; - -RWTexture3D g_tTex3df4; -RWTexture3D g_tTex3di4; -RWTexture3D g_tTex3du4; - -RWTexture1DArray g_tTex1df4a; -RWTexture1DArray g_tTex1di4a; -RWTexture1DArray g_tTex1du4a; - -RWTexture2DArray g_tTex2df4a; -RWTexture2DArray g_tTex2di4a; -RWTexture2DArray g_tTex2du4a; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -uniform int c1; -uniform int2 c2; -uniform int3 c3; -uniform int4 c4; - -uniform int o1; -uniform int2 o2; -uniform int3 o3; -uniform int4 o4; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - // 1D - g_tTex1df4a.Load(c2); - g_tTex1di4a.Load(c2); - g_tTex1du4a.Load(c2); - - // 2D - g_tTex2df4a.Load(c3); - g_tTex2di4a.Load(c3); - g_tTex2du4a.Load(c3); - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.load.rwtexture.dx10.frag b/deps/glslang/Test/hlsl.load.rwtexture.dx10.frag deleted file mode 100644 index c0950776..00000000 --- a/deps/glslang/Test/hlsl.load.rwtexture.dx10.frag +++ /dev/null @@ -1,62 +0,0 @@ -SamplerState g_sSamp : register(s0); - -RWTexture1D g_tTex1df4 : register(t0); -RWTexture1D g_tTex1di4; -RWTexture1D g_tTex1du4; - -RWTexture2D g_tTex2df4; -RWTexture2D g_tTex2di4; -RWTexture2D g_tTex2du4; - -RWTexture3D g_tTex3df4; -RWTexture3D g_tTex3di4; -RWTexture3D g_tTex3du4; - -RWTexture1DArray g_tTex1df4a; -RWTexture1DArray g_tTex1di4a; -RWTexture1DArray g_tTex1du4a; - -RWTexture2DArray g_tTex2df4a; -RWTexture2DArray g_tTex2di4a; -RWTexture2DArray g_tTex2du4a; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -uniform int c1; -uniform int2 c2; -uniform int3 c3; -uniform int4 c4; - -uniform int o1; -uniform int2 o2; -uniform int3 o3; -uniform int4 o4; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - // 1D - g_tTex1df4.Load(c1); - g_tTex1di4.Load(c1); - g_tTex1du4.Load(c1); - - // 2D - g_tTex2df4.Load(c2); - g_tTex2di4.Load(c2); - g_tTex2du4.Load(c2); - - // 3D - g_tTex3df4.Load(c3); - g_tTex3di4.Load(c3); - g_tTex3du4.Load(c3); - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.localStructuredBuffer.comp b/deps/glslang/Test/hlsl.localStructuredBuffer.comp deleted file mode 100644 index 34e06e00..00000000 --- a/deps/glslang/Test/hlsl.localStructuredBuffer.comp +++ /dev/null @@ -1,4 +0,0 @@ -RWStructuredBuffer srt0; -void main() { - RWStructuredBuffer srt0Local = srt0; -} \ No newline at end of file diff --git a/deps/glslang/Test/hlsl.logical.binary.frag b/deps/glslang/Test/hlsl.logical.binary.frag deleted file mode 100644 index 06bc9f2f..00000000 --- a/deps/glslang/Test/hlsl.logical.binary.frag +++ /dev/null @@ -1,21 +0,0 @@ -struct PS_OUTPUT -{ - float4 Color : SV_Target0; -}; - -uniform int ival; -uniform int4 ival4; -uniform float fval; -uniform float4 fval4; - -PS_OUTPUT main() -{ - if (ival && fval); - if (ival || fval); - - PS_OUTPUT psout; - psout.Color = 1.0; - return psout; -} - - diff --git a/deps/glslang/Test/hlsl.logical.binary.vec.frag b/deps/glslang/Test/hlsl.logical.binary.vec.frag deleted file mode 100644 index e94c8f5b..00000000 --- a/deps/glslang/Test/hlsl.logical.binary.vec.frag +++ /dev/null @@ -1,24 +0,0 @@ -struct PS_OUTPUT -{ - float4 Color : SV_Target0; -}; - -uniform bool4 b4a, b4b; -uniform bool b1a, b1b; - -PS_OUTPUT main() -{ - bool4 r00 = !b4a; - bool4 r01 = b4a && b4b; // vec, vec - bool4 r02 = b4a || b4b; // vec, vec - - bool4 r10 = b1a && b4b; // scalar, vec - bool4 r11 = b1a || b4b; // scalar, vec - - bool4 r20 = b4a && b1b; // vec, scalar - bool4 r21 = b4a || b1b; // vec, scalar - - PS_OUTPUT psout; - psout.Color = r00 || r01 || r02 || r10 || r11 || r20 || r21; - return psout; -} diff --git a/deps/glslang/Test/hlsl.logical.unary.frag b/deps/glslang/Test/hlsl.logical.unary.frag deleted file mode 100644 index cbcb3bfc..00000000 --- a/deps/glslang/Test/hlsl.logical.unary.frag +++ /dev/null @@ -1,29 +0,0 @@ -struct PS_OUTPUT -{ - float4 Color : SV_Target0; -}; - -uniform int ival; -uniform int4 ival4; -uniform float fval; -uniform float4 fval4; - -PS_OUTPUT main() -{ - !ival; // scalar int - !ival4; // vector int - - !fval; // scalar float - !fval4; // vector float - - if (ival); - if (fval); - if (!ival); - if (!fval); - - PS_OUTPUT psout; - psout.Color = 1.0; - return psout; -} - - diff --git a/deps/glslang/Test/hlsl.logicalConvert.frag b/deps/glslang/Test/hlsl.logicalConvert.frag deleted file mode 100644 index b353eb1e..00000000 --- a/deps/glslang/Test/hlsl.logicalConvert.frag +++ /dev/null @@ -1,23 +0,0 @@ -float4 main() : SV_TARGET -{ - if (!(0) && (0) || (!1)) - return 0.0.xxxx; - if (0) - return 0.0.xxxx; - if (!(bool)0) - return 0.0.xxxx; - if (!0) - return 0.0.xxxx; - if (!(bool)1) - return 0.0.xxxx; - if (!1) - return 0.0.xxxx; - if (0 || 1) - return 0.0.xxxx; - if (1 && 0) - return 0.0.xxxx; - if (1 || false) - return 0.0.xxxx; - if (true && 1) - return 0.0.xxxx; -} \ No newline at end of file diff --git a/deps/glslang/Test/hlsl.loopattr.frag b/deps/glslang/Test/hlsl.loopattr.frag deleted file mode 100644 index 5b4d374f..00000000 --- a/deps/glslang/Test/hlsl.loopattr.frag +++ /dev/null @@ -1,14 +0,0 @@ - -float4 main() : SV_Target0 -{ - // Unroll hint - [unroll(5) ] for (int x=0; x<5; ++x); - - // Don't unroll hint - [loop] for (int y=0; y<5; ++y); - - // No hint - for (int z=0; z<5; ++z); - - return 0; -} diff --git a/deps/glslang/Test/hlsl.matNx1.frag b/deps/glslang/Test/hlsl.matNx1.frag deleted file mode 100644 index 515bd470..00000000 --- a/deps/glslang/Test/hlsl.matNx1.frag +++ /dev/null @@ -1,31 +0,0 @@ - -void TestMatNx1() -{ - float1x1 f1x1; - float2x1 f2x1; - float3x1 f3x1; - float4x1 f4x1; - - float1x2 f1x2; - float1x3 f1x3; - float1x4 f1x4; - - float1x1 r00 = transpose(f1x1); - float1x2 r01 = transpose(f2x1); - float1x3 r02 = transpose(f3x1); - float1x4 r03 = transpose(f4x1); - - float1x1 r10 = transpose(f1x1); - float2x1 r11 = transpose(f1x2); - float3x1 r12 = transpose(f1x3); - float4x1 r13 = transpose(f1x4); -} - -struct PS_OUTPUT { float4 color : SV_Target0; }; - -PS_OUTPUT main() -{ - PS_OUTPUT ps_output; - ps_output.color = 1.0; - return ps_output; -}; diff --git a/deps/glslang/Test/hlsl.matType.bool.frag b/deps/glslang/Test/hlsl.matType.bool.frag deleted file mode 100644 index e4a62e36..00000000 --- a/deps/glslang/Test/hlsl.matType.bool.frag +++ /dev/null @@ -1,53 +0,0 @@ - -void TestBoolMatTypes() -{ - bool1x1 b1x1; - bool2x1 b2x1; - bool3x1 b3x1; - bool4x1 b4x1; - - bool1x2 b1x2; - bool2x2 b2x2; - bool3x2 b3x2; - bool4x2 b4x2; - - bool1x3 b1x3; - bool2x3 b2x3; - bool3x3 b3x3; - bool4x3 b4x3; - - bool1x4 b1x4; - bool2x4 b2x4; - bool3x4 b3x4; - bool4x4 b4x4; - - // TODO: Currently SPIR-V disallows Nx1 or 1xN mats. - bool1x1 r00 = transpose(b1x1); - bool1x2 r01 = transpose(b2x1); - bool1x3 r02 = transpose(b3x1); - bool1x4 r03 = transpose(b4x1); - - bool2x1 r10 = transpose(b1x2); - bool2x2 r11 = transpose(b2x2); - bool2x3 r12 = transpose(b3x2); - bool2x4 r13 = transpose(b4x2); - - bool3x1 r20 = transpose(b1x3); - bool3x2 r21 = transpose(b2x3); - bool3x3 r22 = transpose(b3x3); - bool3x4 r23 = transpose(b4x3); - - bool4x1 r30 = transpose(b1x4); - bool4x2 r31 = transpose(b2x4); - bool4x3 r32 = transpose(b3x4); - bool4x4 r33 = transpose(b4x4); -} - -struct PS_OUTPUT { float4 color : SV_Target0; }; - -PS_OUTPUT main() -{ - PS_OUTPUT ps_output; - ps_output.color = float4(0,0,0,0); - return ps_output; -}; diff --git a/deps/glslang/Test/hlsl.matType.frag b/deps/glslang/Test/hlsl.matType.frag deleted file mode 100644 index ee7c0476..00000000 --- a/deps/glslang/Test/hlsl.matType.frag +++ /dev/null @@ -1,11 +0,0 @@ -float1 f1 = float1(1.0); -float1x1 fmat11; -float4x1 fmat41; -float1x2 fmat12; -double2x3 dmat23; -int4x4 int44; - -float1 ShaderFunction(float1 inFloat1, float inScalar) : COLOR0 -{ - return inFloat1; -} diff --git a/deps/glslang/Test/hlsl.matType.int.frag b/deps/glslang/Test/hlsl.matType.int.frag deleted file mode 100644 index 09e9f2ad..00000000 --- a/deps/glslang/Test/hlsl.matType.int.frag +++ /dev/null @@ -1,97 +0,0 @@ - -void TestIntMatTypes() -{ - int1x1 i1x1; - int2x1 i2x1; - int3x1 i3x1; - int4x1 i4x1; - - int1x2 i1x2; - int2x2 i2x2; - int3x2 i3x2; - int4x2 i4x2; - - int1x3 i1x3; - int2x3 i2x3; - int3x3 i3x3; - int4x3 i4x3; - - int1x4 i1x4; - int2x4 i2x4; - int3x4 i3x4; - int4x4 i4x4; - - // TODO: Currently SPIR-V disallows Nx1 or 1xN mats. - int1x1 r00 = transpose(i1x1); - int1x2 r01 = transpose(i2x1); - int1x3 r02 = transpose(i3x1); - int1x4 r03 = transpose(i4x1); - - int2x1 r10 = transpose(i1x2); - int2x2 r11 = transpose(i2x2); - int2x3 r12 = transpose(i3x2); - int2x4 r13 = transpose(i4x2); - - int3x1 r20 = transpose(i1x3); - int3x2 r21 = transpose(i2x3); - int3x3 r22 = transpose(i3x3); - int3x4 r23 = transpose(i4x3); - - int4x1 r30 = transpose(i1x4); - int4x2 r31 = transpose(i2x4); - int4x3 r32 = transpose(i3x4); - int4x4 r33 = transpose(i4x4); -} - -void TestUintMatTypes() -{ - uint1x1 u1x1; - uint2x1 u2x1; - uint3x1 u3x1; - uint4x1 u4x1; - - uint1x2 u1x2; - uint2x2 u2x2; - uint3x2 u3x2; - uint4x2 u4x2; - - uint1x3 u1x3; - uint2x3 u2x3; - uint3x3 u3x3; - uint4x3 u4x3; - - uint1x4 u1x4; - uint2x4 u2x4; - uint3x4 u3x4; - uint4x4 u4x4; - - // TODO: Currently SPIR-V disallows Nx1 or 1xN mats. - uint1x1 r00 = transpose(u1x1); - uint1x2 r01 = transpose(u2x1); - uint1x3 r02 = transpose(u3x1); - uint1x4 r03 = transpose(u4x1); - - uint2x1 r10 = transpose(u1x2); - uint2x2 r11 = transpose(u2x2); - uint2x3 r12 = transpose(u3x2); - uint2x4 r13 = transpose(u4x2); - - uint3x1 r20 = transpose(u1x3); - uint3x2 r21 = transpose(u2x3); - uint3x3 r22 = transpose(u3x3); - uint3x4 r23 = transpose(u4x3); - - uint4x1 r30 = transpose(u1x4); - uint4x2 r31 = transpose(u2x4); - uint4x3 r32 = transpose(u3x4); - uint4x4 r33 = transpose(u4x4); -} - -struct PS_OUTPUT { float4 color : SV_Target0; }; - -PS_OUTPUT main() -{ - PS_OUTPUT ps_output; - ps_output.color = float4(0,0,0,0); - return ps_output; -}; diff --git a/deps/glslang/Test/hlsl.matpack-1.frag b/deps/glslang/Test/hlsl.matpack-1.frag deleted file mode 100644 index 5d02a3e4..00000000 --- a/deps/glslang/Test/hlsl.matpack-1.frag +++ /dev/null @@ -1,27 +0,0 @@ -struct MyBuffer1 -{ - column_major float4x4 mat1; - row_major float4x4 mat2; - float4 vec1; - float foo; -}; - -struct MyBuffer2 -{ - row_major float4x4 mat1; - float4 vec1; -}; - -cbuffer Example -{ - MyBuffer1 g_MyBuffer1; - MyBuffer2 g_MyBuffer2; - column_major float4x4 mat1a; -}; - -float4 main() : SV_Target0 -{ - return mul(g_MyBuffer1.mat1, g_MyBuffer1.vec1) + - mul(g_MyBuffer2.mat1, g_MyBuffer2.vec1); -} - diff --git a/deps/glslang/Test/hlsl.matpack-pragma-global.frag b/deps/glslang/Test/hlsl.matpack-pragma-global.frag deleted file mode 100644 index 2a0ff45f..00000000 --- a/deps/glslang/Test/hlsl.matpack-pragma-global.frag +++ /dev/null @@ -1,8 +0,0 @@ -#pragma pack_matrix(row_major) - -float4x4 g_GlobalMat1; - -float4 main() : SV_Target0 -{ - return g_GlobalMat1[0]; -} diff --git a/deps/glslang/Test/hlsl.matpack-pragma.frag b/deps/glslang/Test/hlsl.matpack-pragma.frag deleted file mode 100644 index a9a28335..00000000 --- a/deps/glslang/Test/hlsl.matpack-pragma.frag +++ /dev/null @@ -1,33 +0,0 @@ -#pragma pack_matrix(row_major) - -struct MyBuffer1 -{ - column_major float4x4 mat1; - row_major float4x4 mat2; - /*floating*/ float4x4 mat3; -}; - -#pragma pack_matrix(column_major) - -struct MyBuffer2 -{ - column_major float4x4 mat1; - row_major float4x4 mat2; - /*floating*/ float4x4 mat3; -}; - -#pragma pack_matrix(random_string_foo) - -cbuffer Example -{ - MyBuffer1 g_MyBuffer1; - MyBuffer2 g_MyBuffer2; - column_major float4x4 mat1a; -}; - -float4 main() : SV_Target0 -{ - return - g_MyBuffer1.mat1[0] + g_MyBuffer1.mat2[0] + g_MyBuffer1.mat3[0] + - g_MyBuffer2.mat1[0] + g_MyBuffer2.mat2[0] + g_MyBuffer2.mat3[0]; -} diff --git a/deps/glslang/Test/hlsl.matrixSwizzle.vert b/deps/glslang/Test/hlsl.matrixSwizzle.vert deleted file mode 100644 index c06996b3..00000000 --- a/deps/glslang/Test/hlsl.matrixSwizzle.vert +++ /dev/null @@ -1,33 +0,0 @@ -void ShaderFunction(float inf) : COLOR0 -{ - float3x4 m; - - // tests that convert to non-matrix swizzles - - m._34 = 1.0; // AST should have a normal component select - m._m23 = 2.0; // same code - m[2][3] = 2.0; // same code - - m._11_12_13_14 = float4(3.0); // AST should have normal column selection (first row) - m._m10_m11_m12_m13 = float4(3.0); // AST should have normal column selection (second row) - m[1] = float4(3.0); // same code - - // tests that stay as matrix swizzles - - float3 f3; - m._11_22_23 = f3; - m._21_12_31 = float3(5.0); - m._11_12_21 = 2 * f3; - - // r-value - f3 = m._21_12_31; -} - -float3x3 createMat3x3(float3 a, float3 b, float3 c) -{ - float3x3 m; - m._11_21_31 = a; - m._12_22_32 = b; - m._13_23_33 = c; - return m; -} diff --git a/deps/glslang/Test/hlsl.matrixindex.frag b/deps/glslang/Test/hlsl.matrixindex.frag deleted file mode 100644 index f352c0e5..00000000 --- a/deps/glslang/Test/hlsl.matrixindex.frag +++ /dev/null @@ -1,49 +0,0 @@ -uniform int idx; -uniform float3x2 um; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; -}; - -PS_OUTPUT main() -{ - // matrices of 3 rows, 2 columns (regardless of row vs col major storage) - const float3x2 m1 = { { 10, 11 }, // row-wise initialization - { 12, 13 }, - { 14, 15 } }; - - const float3x2 m2 = { 20, 21, 22, 23, 24, 25 }; // component-wise matrix initialization is allowed - const float3x2 m3 = { 30, 31, 33, 33, 34, 35 }; // component-wise matrix initialization is allowed - - // These can be observed in the AST post-const folding to ensure we obtain the right value, - // as given in comments to the right of each line. Note that the first indirection into a - // matrix returns a row vector. - float e1_00 = m1[0][0]; // 10 - float e1_01 = m1[0][1]; // 11 - float e1_10 = m1[1][0]; // 12 - float e1_11 = m1[1][1]; // 13 - float e1_20 = m1[2][0]; // 14 - float e1_21 = m1[2][1]; // 15 - - float e2_00 = m2[0][0]; // 20 - float e2_01 = m2[0][1]; // 21 - float e2_10 = m2[1][0]; // 22 - float e2_11 = m2[1][1]; // 23 - float e2_20 = m2[2][0]; // 24 - float e2_21 = m2[2][1]; // 25 - - // float e3a_00 = m3._m00; // TODO... also as an lvalue for a non-const matrix - // float e3b_00 = m3._11; // TODO... also as an lvalue for a non-const matrix - - float2 r0a = m1[0]; // row0: 10,11: types must match: constant index into constant - float2 r1a = m1[1]; // row1: 12,13: ... - float2 r2a = m1[2]; // row2: 14,15: ... - - float2 r0b = m2[idx]; // types should match: variable index into constant - float2 r0c = um[idx]; // types should match: variable index into variable - - PS_OUTPUT psout; - psout.Color = e2_11; // 23 - return psout; -} diff --git a/deps/glslang/Test/hlsl.max.frag b/deps/glslang/Test/hlsl.max.frag deleted file mode 100644 index 6d1ea0b1..00000000 --- a/deps/glslang/Test/hlsl.max.frag +++ /dev/null @@ -1,4 +0,0 @@ -float4 PixelShaderFunction(float4 input1, float4 input2) : COLOR0 -{ - return max(input1, input2); -} diff --git a/deps/glslang/Test/hlsl.memberFunCall.frag b/deps/glslang/Test/hlsl.memberFunCall.frag deleted file mode 100644 index 27d3f6e0..00000000 --- a/deps/glslang/Test/hlsl.memberFunCall.frag +++ /dev/null @@ -1,16 +0,0 @@ -float method3(float a) { return 1.0; } - -struct myContext { - float method1() { return method2(); } - float method2() { return method3(1.0); } - float method3(float a) { return method4(a, a); } - float method4(float a, float b) { return a + b + f; } - float f; -}; - -float4 main() : SV_TARGET0 -{ - myContext context; - context.f = 3.0; - return (float4)context.method1(); -} diff --git a/deps/glslang/Test/hlsl.mintypes.frag b/deps/glslang/Test/hlsl.mintypes.frag deleted file mode 100644 index ad47e68e..00000000 --- a/deps/glslang/Test/hlsl.mintypes.frag +++ /dev/null @@ -1,49 +0,0 @@ -struct PS_OUTPUT -{ - float4 Color : SV_Target0; -}; - -uniform min16float b1a, b1b; - -PS_OUTPUT main() -{ - min16float mf16; - min16float1 mf16_1; - min16float2 mf16_2; - min16float3 mf16_3; - min16float4 mf16_4; - - min10float mf10; - min10float1 mf10_1; - min10float2 mf10_2; - min10float3 mf10_3; - min10float4 mf12_4; - - min16int mi16; - min16int1 mi16_1; - min16int2 mi16_2; - min16int3 mi16_3; - min16int4 mi16_4; - - min12int mi12; - min12int1 mi12_1; - min12int2 mi12_2; - min12int3 mi12_3; - min12int4 mi12_4; - - min16uint mu16; - min16uint1 mu16_1; - min16uint2 mu16_2; - min16uint3 mu16_3; - min16uint4 mu16_4; - - mf16_2 + mf16; - mf10_2 + mf10; - mi16_2 + mi16; - mi12_2 + mi12; - mu16_2 + mu16; - - PS_OUTPUT psout; - psout.Color = 0; - return psout; -} diff --git a/deps/glslang/Test/hlsl.mip.negative.frag b/deps/glslang/Test/hlsl.mip.negative.frag deleted file mode 100644 index 900d3850..00000000 --- a/deps/glslang/Test/hlsl.mip.negative.frag +++ /dev/null @@ -1,9 +0,0 @@ -Texture2D g_tTex2df4; - -float4 main() : SV_Target0 -{ - g_tTex2df4.mips.mips[2][uint2(3, 4)]; // error to chain like this - - return 0; -} - diff --git a/deps/glslang/Test/hlsl.mip.negative2.frag b/deps/glslang/Test/hlsl.mip.negative2.frag deleted file mode 100644 index c07179eb..00000000 --- a/deps/glslang/Test/hlsl.mip.negative2.frag +++ /dev/null @@ -1,9 +0,0 @@ -Texture2D g_tTex2df4; - -float4 main() : SV_Target0 -{ - g_tTex2df4.r[2][uint2(3, 4)]; // '.r' not valid on texture object - - return 0; -} - diff --git a/deps/glslang/Test/hlsl.mip.operator.frag b/deps/glslang/Test/hlsl.mip.operator.frag deleted file mode 100644 index af4f1501..00000000 --- a/deps/glslang/Test/hlsl.mip.operator.frag +++ /dev/null @@ -1,14 +0,0 @@ -Texture2DArray g_tTex2df4a; -Texture2D g_tTex2df4; - -float4 main() : SV_Target0 -{ - return g_tTex2df4.mips[2][uint2(3, 4)] + - - // test float->uint cast on the mip arg - g_tTex2df4a.mips[5.2][uint3(6, 7, 8)] + - - // Test nesting involving .mips operators: - // ....outer operator mip level...... .....outer operator coordinate.... - g_tTex2df4.mips[ g_tTex2df4.mips[9][uint2(10,11)][0] ][ g_tTex2df4.mips[13][uint2(14,15)].xy ]; -} diff --git a/deps/glslang/Test/hlsl.mul-truncate.frag b/deps/glslang/Test/hlsl.mul-truncate.frag deleted file mode 100644 index 7ce2c22d..00000000 --- a/deps/glslang/Test/hlsl.mul-truncate.frag +++ /dev/null @@ -1,38 +0,0 @@ - -// Test v*v, v*m, m*v, and m*m argument clamping. - -cbuffer Matrix -{ - float4x4 m44; - float4x3 m43; - float3x4 m34; - float3x3 m33; - float2x4 m24; - float4x2 m42; - float4 v4; - float3 v3; - float2 v2; -} - -float4 main() : SV_Target0 -{ - // v*v: - float r00 = mul(v2, v3); // float = float2*float3; // clamp to float2 dot product - float r01 = mul(v4, v2); // float = float4*float2; // clamp to float2 dot product - - // v*m - float4 r10 = mul(v3, m44); // float4 = float3 * float4x4; // clamp mat to float3x4; - float4 r11 = mul(v4, m34); // truncate vector to vec3 - - // m*v - float4 r20 = mul(m44, v3); // float4 = float4x4 * float3; // clamp mat to float4x3; - float4 r21 = mul(m43, v4); // truncate vector to vec3 - - // m*m - float2x3 r30 = mul(m24, m33); // float2x3 = float2x4 * float3x3; - float3x4 r31 = mul(m33, m24); // float3x4 = float3x3 * float2x4; - float3x2 r32 = mul(m33, m42); // float3x2 = float3x3 * float4x2; - float4x3 r33 = mul(m42, m33); // float4x3 = float4x2 * float3x3; - - return r10 + r11 + r20 + r21 + r00 + r01 + r30[0].x + r31[0] + r32[0].x + transpose(r33)[0]; -} diff --git a/deps/glslang/Test/hlsl.multiDescriptorSet.frag b/deps/glslang/Test/hlsl.multiDescriptorSet.frag deleted file mode 100644 index 6c4be21e..00000000 --- a/deps/glslang/Test/hlsl.multiDescriptorSet.frag +++ /dev/null @@ -1,45 +0,0 @@ -Texture2D txDiffuseA : register( t0 ); -Texture2D txDiffuseB : register( t1 ); - -SamplerState samLinearA : register( s0 ); -SamplerState samLinearB : register( s1 ); - -cbuffer cbNeverChanges : register( b0 ) -{ - matrix View; -}; - -cbuffer cbChangeOnResize : register( b1 ) -{ - matrix Projection; -}; - -cbuffer cbChangesEveryFrame : register( b2 ) -{ - matrix World; - float4 vMeshColor; -}; - - -struct VS_INPUT -{ - float4 Pos : POSITION; - float2 Tex : TEXCOORD0; -}; - -struct PS_INPUT -{ - float4 Pos : SV_POSITION; - float2 Tex : TEXCOORD0; -}; - - -float4 main( PS_INPUT input) : SV_Target -{ - PS_INPUT output = (PS_INPUT)0; - output.Pos = mul( input.Pos, World ); - output.Pos = mul( output.Pos, View ); - output.Pos = mul( output.Pos, Projection ); - output.Tex = input.Tex; - return txDiffuseA.Sample( samLinearA, output.Tex ) * vMeshColor; -} diff --git a/deps/glslang/Test/hlsl.multiEntry.vert b/deps/glslang/Test/hlsl.multiEntry.vert deleted file mode 100644 index d155c26d..00000000 --- a/deps/glslang/Test/hlsl.multiEntry.vert +++ /dev/null @@ -1,11 +0,0 @@ -Buffer Position; - -float4 FakeEntrypoint(uint Index : SV_VERTEXID) : SV_POSITION -{ - return Position.Load(Index); -} - -float4 RealEntrypoint(uint Index : SV_VERTEXID) : SV_POSITION -{ - return FakeEntrypoint(Index); -} \ No newline at end of file diff --git a/deps/glslang/Test/hlsl.multiReturn.frag b/deps/glslang/Test/hlsl.multiReturn.frag deleted file mode 100644 index fdab7721..00000000 --- a/deps/glslang/Test/hlsl.multiReturn.frag +++ /dev/null @@ -1,19 +0,0 @@ -struct S { - float f; - float3 v; - float3x3 m; -}; - -cbuffer bufName { - S s; -}; - -S foo() -{ - return s; -} - -void main() -{ - foo(); -} diff --git a/deps/glslang/Test/hlsl.namespace.frag b/deps/glslang/Test/hlsl.namespace.frag deleted file mode 100644 index d2b04458..00000000 --- a/deps/glslang/Test/hlsl.namespace.frag +++ /dev/null @@ -1,23 +0,0 @@ -static float4 v1; -static float4 v2; - -namespace N1 { - float4 getVec() { return v1; } -} - -namespace N2 { - static float gf; - float4 getVec() { return v2; } - namespace N3 { - float4 getVec() { return v2; } - - class C1 { - static float4 getVec() { return v2; } - }; - } -} - -float4 main() : SV_Target0 -{ - return N1::getVec() + N2::getVec() + N2::N3::getVec() + N2::N3::C1::getVec() * N2::gf; -} diff --git a/deps/glslang/Test/hlsl.noSemantic.functionality1.comp b/deps/glslang/Test/hlsl.noSemantic.functionality1.comp deleted file mode 100644 index ac9a7a93..00000000 --- a/deps/glslang/Test/hlsl.noSemantic.functionality1.comp +++ /dev/null @@ -1,7 +0,0 @@ -AppendStructuredBuffer Buf : register(u0); - -[numthreads(1, 1, 1)] -void main() -{ - Buf.Append(1.0f.xxxx); -} \ No newline at end of file diff --git a/deps/glslang/Test/hlsl.nonint-index.frag b/deps/glslang/Test/hlsl.nonint-index.frag deleted file mode 100644 index c7a751e3..00000000 --- a/deps/glslang/Test/hlsl.nonint-index.frag +++ /dev/null @@ -1,9 +0,0 @@ -static const float array[3] = { 1, 2, 3 }; - -float main(float input : IN) : SV_Target0 -{ - // non-integer indexes get converted to uints: - // uint(input) 3.0 2.0 1.0 - return array[input] + array[2.0] + array[true] + array[false]; -} - diff --git a/deps/glslang/Test/hlsl.nonstaticMemberFunction.frag b/deps/glslang/Test/hlsl.nonstaticMemberFunction.frag deleted file mode 100644 index 3655ed0f..00000000 --- a/deps/glslang/Test/hlsl.nonstaticMemberFunction.frag +++ /dev/null @@ -1,35 +0,0 @@ -static float2 i = float2(1.0, 2.0); - -struct type1 -{ - void setmem(float4 m) { memVar = m; } - void seti(int si) { i = si; } - float4 memVar; - float4 memFun(float4 a) : SV_Position - { - return i * a + memVar; - } - int memFun(int a) : SV_Position - { - return i + a - memVar.z; - } - int i; -}; - -static float2 j = i; - -struct type2 -{ - float2 memFun() { return i; } -}; - -float4 main() : SV_Target0 -{ - type1 test; - test.setmem(float4(2.0,2.0,2.0,2.0)); - test.seti(17); - float4 f4 = float4(1.0,1.0,1.0,1.0); - f4 += test.memFun(float4(5.0f,5.0f,5.0f,5.0f)); - f4 += test.memFun(7); - return f4; -} diff --git a/deps/glslang/Test/hlsl.numericsuffixes.frag b/deps/glslang/Test/hlsl.numericsuffixes.frag deleted file mode 100644 index bccb786d..00000000 --- a/deps/glslang/Test/hlsl.numericsuffixes.frag +++ /dev/null @@ -1,24 +0,0 @@ - -struct PS_OUTPUT { float4 color : SV_Target0; }; - -PS_OUTPUT main() -{ - // Test numeric suffixes - float r00 = 1.0f; // float - uint r01 = 1u; // lower uint - uint r02 = 2U; // upper uint - uint r03 = 0xabcu; // lower hex uint - uint r04 = 0xABCU; // upper hex uint (upper 0X is not accepted) - int r05 = 5l; // lower long int - int r06 = 6L; // upper long int - int r07 = 071; // octal - uint r08 = 072u; // unsigned octal - float r09 = 1.h; // half - float r10 = 1.H; // half - float r11 = 1.1h; // half - float r12 = 1.1H; // half - - PS_OUTPUT ps_output; - ps_output.color = r07; // gets 71 octal = 57 decimal - return ps_output; -} diff --git a/deps/glslang/Test/hlsl.numthreads.comp b/deps/glslang/Test/hlsl.numthreads.comp deleted file mode 100644 index 0871d3f7..00000000 --- a/deps/glslang/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/Test/hlsl.opaque-type-bug.frag b/deps/glslang/Test/hlsl.opaque-type-bug.frag deleted file mode 100644 index f4ccaea2..00000000 --- a/deps/glslang/Test/hlsl.opaque-type-bug.frag +++ /dev/null @@ -1,16 +0,0 @@ - -Texture2D MyTexture : register(t0); - -//---------------------------------------------------------------------------------------- -void TexFunc(in const Texture2D t2D, out float3 RGB) -{ - RGB = 0; -} - -//----------------------------------------------------------------------------------- -void main() -{ - float3 final_RGB; - - TexFunc(MyTexture, final_RGB); -} diff --git a/deps/glslang/Test/hlsl.overload.frag b/deps/glslang/Test/hlsl.overload.frag deleted file mode 100644 index b5ddf493..00000000 --- a/deps/glslang/Test/hlsl.overload.frag +++ /dev/null @@ -1,142 +0,0 @@ -// function selection under type conversion -void foo1(double a, bool b) {} -void foo1(double a, uint b) {} -void foo1(double a, int b) {} -void foo1(double a, float b) {} -void foo1(double a, double b){} - -// uint -> int -void foo2(int a, bool b) {} -void foo2(int a, uint b) {} -void foo2(int a, int b) {} -void foo2(int a, float b) {} -void foo2(int a, double b){} - -// everything can promote -void foo3(bool b) {} -void foo4(uint b) {} -void foo5(int b) {} -void foo6(float b) {} -void foo7(double b){} - -// shorter forward chain better than longer or backward chain -void foo8(float) {} -void foo8(double) {} -void foo9(int) {} -void foo9(uint) {} -void foo10(bool) {} -void foo10(int) {} - -// shape change is worse -void foo11(float3) {} -void foo11(double) {} -void foo11(int3) {} -void foo11(uint) {} -void foo12(float1) {} -void foo12(double3) {} -void foo16(uint) {} -void foo16(uint2) {} - -// shape change -void foo13(float3) {} -void foo14(int1) {} -void foo15(bool1) {} - -float4 PixelShaderFunction(float4 input) : COLOR0 -{ - bool b; - double d; - uint u; - int i; - float f; - - foo1(d, b); - foo1(d, d); - foo1(d, u); - foo1(d, i); - foo1(d, f); - - foo1(f, b); - foo1(f, d); - foo1(f, u); - foo1(f, i); - foo1(f, f); - - foo1(u, b); - foo1(u, d); - foo1(u, u); - foo1(u, i); - foo1(u, f); - - foo1(i, b); - foo1(i, d); - foo1(i, u); - foo1(i, i); - foo1(i, f); - - foo2(u, b); - foo2(u, d); - foo2(u, u); - foo2(u, i); - foo2(u, f); - - foo2(i, b); - foo2(i, d); - foo2(i, u); - foo2(i, i); - foo2(i, f); - - foo3(b); - foo3(d); - foo3(u); - foo3(i); - foo3(f); - - foo4(b); - foo4(d); - foo4(u); - foo4(i); - foo4(f); - - foo5(b); - foo5(d); - foo5(u); - foo5(i); - foo5(f); - - foo6(b); - foo6(d); - foo6(u); - foo6(i); - foo6(f); - - foo7(b); - foo7(d); - foo7(u); - foo7(i); - foo7(f); - - foo8(b); - foo8(u); - foo8(i); - - foo9(b); - foo9(f); - foo9(d); - - foo10(u); - foo10(f); - foo10(d); - - foo11(b); - foo11(f); - foo12(float3(f)); - foo16(int2(i,i)); - - foo13(f); - foo14(int4(i)); - foo15(b); - foo15(bool3(b)); - - return input; -} diff --git a/deps/glslang/Test/hlsl.params.default.frag b/deps/glslang/Test/hlsl.params.default.frag deleted file mode 100644 index 42ad84f8..00000000 --- a/deps/glslang/Test/hlsl.params.default.frag +++ /dev/null @@ -1,51 +0,0 @@ -uniform int4 ui4; - -static const int cia = -4; -static const int cib = -42; - -// ERROR: Ambiguous with fn1 below. -// int4 fn1(int4 p0) { return int4(1,2,3,4); } - -int4 fn1(int4 p0, bool b1, bool b2 = false) { - return p0; -} - -int4 fn1(int4 p0, - int4 p1 : FOO = int4(-1,-2,-3, cia), - int p2[2] : BAR = { int(1), 2 }, - int p3 = abs(cib) ) -{ - return p0 + p1 + p2[0] + p3; -} - -// These should not be ambiguous if given either an int or a float explicit second parameter. -int4 fn2(int4 p0, int x = 3) -{ - return int4(10,11,12,13); -} - -int4 fn2(int4 p0, float x = sin(3.3)) // OK to have a const expression as a default value -{ - return p0 + int4(20,21,22,23); -} - -void fn3(int p0 = 3) { } - - -int4 main() : SV_Target0 -{ - int myarray[2] = {30,31}; - - fn3(); - fn3(5); - - return fn1(100) + - fn1(101, ui4) + - fn1(102, ui4, myarray) + - fn1(103, ui4, myarray, 99) + - fn1(104, false) + - fn1(105, false, true) + - - fn2(110, 11.11) + // calls int4, float form - fn2(111, 12); // calls int4, int form -} diff --git a/deps/glslang/Test/hlsl.params.default.negative.frag b/deps/glslang/Test/hlsl.params.default.negative.frag deleted file mode 100644 index c9ff330b..00000000 --- a/deps/glslang/Test/hlsl.params.default.negative.frag +++ /dev/null @@ -1,50 +0,0 @@ -uniform int4 ui4; -uniform float ufvar; - -static const int cia = -4; -static const int cib = -42; - -int4 fn1(int4 p0) { return int4(1,2,3,4); } - -int4 fn1(int4 p0, bool b1, bool b2 = false) { - return p0; -} - -int4 fn1(int4 p0, - int4 p1 : FOO = int4(-1,-2,-3, cia), - int p2[2] : BAR = { int(1), 2 }, - int p3 = abs(cib) ) -{ - return p0 + p1 + p2[0] + p3; -} - -// These should not be ambiguous if given either an int or a float explicit second parameter. -int4 fn2(int4 p0, int x = 3) -{ - return int4(10,11,12,13); -} - -int4 fn2(int4 p0, float x = ufvar) // ERROR: non-const expression -{ - return p0 + int4(20,21,22,23); -} - -void fn3(int p0 = 5, int p1) // ERROR no-default param after default param -{ -} - -int4 main() : SV_Target0 -{ - int myarray[2] = {30,31}; - - return fn1(100) + // ERROR: ambiguous - fn1(101, ui4) + - fn1(102, ui4, myarray) + - fn1(103, ui4, myarray, 99) + - fn1(104, false) + - fn1(105, false, true) + - - fn2(112) + // ERROR: ambiguous - fn2(110, 11.11) + // calls int4, float form - fn2(111, 12); // calls int4, int form -} diff --git a/deps/glslang/Test/hlsl.partialFlattenLocal.vert b/deps/glslang/Test/hlsl.partialFlattenLocal.vert deleted file mode 100644 index 9d6cdc90..00000000 --- a/deps/glslang/Test/hlsl.partialFlattenLocal.vert +++ /dev/null @@ -1,27 +0,0 @@ -Texture2D tex; - -struct Packed { - Texture2D tex; - float3 pos[3]; - float2 uv[2]; - float x; - int n; -}; - -float4 main(float4 pos : POSITION) : SV_POSITION -{ - Packed packed; - packed.tex = tex; - packed.pos[0] = float3(0, 0, 0); - packed.uv[0] = float2(0, 1); - packed.x = 1.0; - packed.n = 3; - - for (int i = 0; i < 1; ++i) { - packed.pos[i].xy += packed.uv[i]; - } - - Packed packed2 = packed; - - return pos + float4(packed2.pos[0], 0); -} \ No newline at end of file diff --git a/deps/glslang/Test/hlsl.partialFlattenMixed.vert b/deps/glslang/Test/hlsl.partialFlattenMixed.vert deleted file mode 100644 index 3fc9d68e..00000000 --- a/deps/glslang/Test/hlsl.partialFlattenMixed.vert +++ /dev/null @@ -1,16 +0,0 @@ -Texture2D tex[2]; - -struct Packed { - int a; - Texture2D membTex[2]; - int b; -}; - -float4 main(float4 pos : POSITION) : SV_POSITION -{ - Packed packed; - - packed.membTex = tex; - - return pos; -} \ No newline at end of file diff --git a/deps/glslang/Test/hlsl.partialInit.frag b/deps/glslang/Test/hlsl.partialInit.frag deleted file mode 100644 index 01aee8e6..00000000 --- a/deps/glslang/Test/hlsl.partialInit.frag +++ /dev/null @@ -1,36 +0,0 @@ -struct outs { - int a; - float b; - bool c; - float4 v; -}; - -static float4 gv = {0,0,1}; -static float gfa[3] = {0,0}; - -struct Nest { - float4x3 m; - outs os; - bool b; -}; - -outs PixelShaderFunction(float4 input) : COLOR0 -{ - outs o2 = { 3 }; - outs o4; - o4.v = gv * gfa[2]; - outs o1 = { }; - outs o3 = (outs)0; - o4 = (outs)0; - o4.c = o1.c; - Nest nest = (Nest)0; - - float2 gf2a[4] = { }; - int cgi = { }; - o4.b = gf2a[2].y * cgi; - - return o4; -} - -static const float2 cgf2a[3]; -static const int ci; diff --git a/deps/glslang/Test/hlsl.pp.expand.frag b/deps/glslang/Test/hlsl.pp.expand.frag deleted file mode 100644 index d5318a02..00000000 --- a/deps/glslang/Test/hlsl.pp.expand.frag +++ /dev/null @@ -1,18 +0,0 @@ -#define EMP1(a) -#define EMP2(a, b) - -#define EXP1(a) = a -#define EXP2(a, b) = a, b - -struct A -{ - float4 a EMP1({1,2,3,4}); // No PP arg errors - float4 b EMP2({({{(({1,2,3,4}))}})}, {{1,2,3,4}}); // No PP arg errors - float4 c EXP1({1,2,3,4}); // ERROR: No PP arg errors, but init error - float4 d EXP2({({{(({1,2,3,4}))}})}, {{1,2,3,4}}); // ERROR: No PP arg errors, but init error -}; - -void main() -{ - "a string" -} diff --git a/deps/glslang/Test/hlsl.pp.line.frag b/deps/glslang/Test/hlsl.pp.line.frag deleted file mode 100644 index 6f0273dc..00000000 --- a/deps/glslang/Test/hlsl.pp.line.frag +++ /dev/null @@ -1,24 +0,0 @@ - -#line 1 - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -#line 2 - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - -#line 123 "SomeFile.frag" - - int thisLineIs = __LINE__; // gets 124 - - psout.Color = float4(thisLineIs, 0, 0, 1); - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.pp.line2.frag b/deps/glslang/Test/hlsl.pp.line2.frag deleted file mode 100644 index 2d16db21..00000000 --- a/deps/glslang/Test/hlsl.pp.line2.frag +++ /dev/null @@ -1,40 +0,0 @@ -#line 1 "foo.frag" -Texture2D g_tColor[ 128 ] ; - -layout (push_constant) cbuffer PerViewConstantBuffer_t -{ - uint g_nDataIdx; - uint g_nDataIdx2; - bool g_B; -} ; - -SamplerState g_sAniso; - -struct PS_INPUT -{ - float2 vTextureCoords : TEXCOORD2 ; -} ; - -struct PS_OUTPUT -{ - float4 vColor : SV_Target0 ; -} ; - -PS_OUTPUT MainPs ( PS_INPUT i ) -{ - PS_OUTPUT ps_output ; - - uint u; -#line 47 - if (g_B) -#line 3 "foo.h" - u = g_nDataIdx; - else -#line 67 - u = g_nDataIdx2; -#line 7 "foo2.h" - ps_output . vColor = g_tColor [ u ] . Sample ( g_sAniso , i . vTextureCoords . xy ); -#line 105 - return ps_output ; -} - diff --git a/deps/glslang/Test/hlsl.pp.line3.frag b/deps/glslang/Test/hlsl.pp.line3.frag deleted file mode 100644 index 7d85630f..00000000 --- a/deps/glslang/Test/hlsl.pp.line3.frag +++ /dev/null @@ -1,34 +0,0 @@ -Texture2D g_tColor[ 128 ] ; - -layout (push_constant) cbuffer PerViewConstantBuffer_t -{ - uint g_nDataIdx; - uint g_nDataIdx2; - bool g_B; -} ; - -SamplerState g_sAniso; - -struct PS_INPUT -{ - float2 vTextureCoords : TEXCOORD2 ; -} ; - -struct PS_OUTPUT -{ - float4 vColor : SV_Target0 ; -} ; - -PS_OUTPUT MainPs ( PS_INPUT i ) -{ - PS_OUTPUT ps_output ; - - uint u; - if (g_B) -#include "i1.h" - else - u = g_nDataIdx2; - ps_output . vColor = g_tColor [ u ] . Sample ( g_sAniso , i . vTextureCoords . xy ); - return ps_output ; -} - diff --git a/deps/glslang/Test/hlsl.pp.line4.frag b/deps/glslang/Test/hlsl.pp.line4.frag deleted file mode 100644 index c64879f0..00000000 --- a/deps/glslang/Test/hlsl.pp.line4.frag +++ /dev/null @@ -1,42 +0,0 @@ -#line 1 "C:\\Users\\Greg\\shaders\\line\\foo4.frag" -Texture2D g_tColor [ 128 ] ; - -layout ( push_constant ) cbuffer PerViewConstantBuffer_t -{ - uint g_nDataIdx ; - uint g_nDataIdx2 ; - bool g_B ; -} ; - -#line 12 -SamplerState g_sAniso ; - -struct PS_INPUT -{ - float2 vTextureCoords : TEXCOORD2 ; -} ; - -struct PS_OUTPUT -{ - float4 vColor : SV_Target0 ; -} ; - -PS_OUTPUT MainPs ( PS_INPUT i ) -{ - PS_OUTPUT ps_output ; - - uint u ; - if ( g_B ) - - -#line 1 "C:\\Users\\Greg\\shaders\\line\\u1.h" - u = g_nDataIdx ; - - -#line 31 "C:\\Users\\Greg\\shaders\\line\\foo4.frag" - else - u = g_nDataIdx2 ; - ps_output . vColor = g_tColor [ u ] . Sample ( g_sAniso , i . vTextureCoords . xy ) ; - return ps_output ; -} - diff --git a/deps/glslang/Test/hlsl.pp.tokenpasting.frag b/deps/glslang/Test/hlsl.pp.tokenpasting.frag deleted file mode 100644 index 5415670f..00000000 --- a/deps/glslang/Test/hlsl.pp.tokenpasting.frag +++ /dev/null @@ -1,18 +0,0 @@ - -#define foobarblee zzzz - -#define ar qqqq - -#define MACRO1(x,y) foo##x##y -// #define MACRO2 abc##def - -// #define SPACE_IN_MACRO int var1 - -float4 main() : SV_Target0 -{ - // float MACRO2 = 10; - float MACRO1(b##ar,blee) = 3; - - return float4(foobarblee,0,0,0); -} - diff --git a/deps/glslang/Test/hlsl.pp.vert b/deps/glslang/Test/hlsl.pp.vert deleted file mode 100644 index 4b0a4512..00000000 --- a/deps/glslang/Test/hlsl.pp.vert +++ /dev/null @@ -1,17 +0,0 @@ -#define A defined(B) - -#if A -int badGlobal1; -#else -int goodGlobal1; -#endif - -#define B - -#if A -int goodGlobal2; -#else -int badGlobal2; -#endif - -void main() {} diff --git a/deps/glslang/Test/hlsl.precedence.frag b/deps/glslang/Test/hlsl.precedence.frag deleted file mode 100644 index 6ed71739..00000000 --- a/deps/glslang/Test/hlsl.precedence.frag +++ /dev/null @@ -1,9 +0,0 @@ -float4 PixelShaderFunction( - float4 a1, - float4 a2, - float4 a3, - float4 a4 - ) : COLOR0 -{ - return a1 + a2 * a3 + a4 + float4(a1.rgb * a2.rgb, a3.a); -} diff --git a/deps/glslang/Test/hlsl.precedence2.frag b/deps/glslang/Test/hlsl.precedence2.frag deleted file mode 100644 index 0d3f583a..00000000 --- a/deps/glslang/Test/hlsl.precedence2.frag +++ /dev/null @@ -1,9 +0,0 @@ -int PixelShaderFunction( - int a1, - int a2, - int a3, - int a4 - ) : COLOR0 -{ - return (a1 * a2 + a3 << a4) + (a1 << a2 + a3 * a4); -} diff --git a/deps/glslang/Test/hlsl.precise.frag b/deps/glslang/Test/hlsl.precise.frag deleted file mode 100644 index 77454e07..00000000 --- a/deps/glslang/Test/hlsl.precise.frag +++ /dev/null @@ -1,14 +0,0 @@ - -struct PS_OUTPUT { precise float4 color : SV_Target0; }; - -static precise float precisefloat; - -void MyFunction(in precise float myfloat, out precise float3 myfloat3) { } - -PS_OUTPUT main() -{ - PS_OUTPUT ps_output; - ps_output.color = 1.0; - return ps_output; -} - diff --git a/deps/glslang/Test/hlsl.preprocessor.frag b/deps/glslang/Test/hlsl.preprocessor.frag deleted file mode 100644 index dba341ef..00000000 --- a/deps/glslang/Test/hlsl.preprocessor.frag +++ /dev/null @@ -1,13 +0,0 @@ -#define DEFINE_TEXTURE(name) Texture2D name; SamplerState name##_ss; -#define SAMPLE_TEXTURE(name, uv) name.Sample(name##_ss, (uv).xy) - -#define test_texture2 test_texture - -DEFINE_TEXTURE(test_texture) - -float4 main(float4 input : TEXCOORD0) : SV_TARGET -{ - float4 tex = SAMPLE_TEXTURE(test_texture2, input.xy); - return tex; -} - diff --git a/deps/glslang/Test/hlsl.printf.comp b/deps/glslang/Test/hlsl.printf.comp deleted file mode 100644 index d117299a..00000000 --- a/deps/glslang/Test/hlsl.printf.comp +++ /dev/null @@ -1,11 +0,0 @@ -const string first = "first string"; - -[numthreads(1,1,1)] -void main() { - printf(first); - printf("please print this message."); - printf("Variables are: %d %d %.2f", 1u, 2u, 1.5f); - printf("Integers are: %d %d %d", 1, 2, 3); - printf("More: %d %d %d %d %d %d %d %d %d %d", 1, 2, 3, 4, 5, 6, 7, 8, 9, 10); -} - diff --git a/deps/glslang/Test/hlsl.promote.atomic.frag b/deps/glslang/Test/hlsl.promote.atomic.frag deleted file mode 100644 index 2b46225b..00000000 --- a/deps/glslang/Test/hlsl.promote.atomic.frag +++ /dev/null @@ -1,17 +0,0 @@ - -RWBuffer s_uintbuff; // UINT RWBuffer ... - -float4 main() : SV_Target -{ - int Loc; // ... with INT variables - int Inc; - int Orig; - - // This must select the uint flavor of SPIR-V atomic op, and promote - // the other arguments as required. The output value from the - // imageAtomicAdd AST will be converted to an int for 'Orig'. - InterlockedAdd(s_uintbuff[Loc], Inc, Orig); - - return float4(0,0,0,0); -} - diff --git a/deps/glslang/Test/hlsl.promote.binary.frag b/deps/glslang/Test/hlsl.promote.binary.frag deleted file mode 100644 index 0203bed9..00000000 --- a/deps/glslang/Test/hlsl.promote.binary.frag +++ /dev/null @@ -1,28 +0,0 @@ -struct PS_OUTPUT -{ - float4 Color : SV_Target0; -}; - -uniform bool bval; -uniform bool4 bval4; -uniform int ival; -uniform int4 ival4; -uniform float fval; -uniform float4 fval4; - -PS_OUTPUT main() -{ - ival % fval; - ival4 % fval4; - - bval % fval; - bval4 % fval4; - - int l_int = 1; - l_int %= fval; - - PS_OUTPUT psout; - psout.Color = 0; - return psout; -} - diff --git a/deps/glslang/Test/hlsl.promote.vec1.frag b/deps/glslang/Test/hlsl.promote.vec1.frag deleted file mode 100644 index a674ccba..00000000 --- a/deps/glslang/Test/hlsl.promote.vec1.frag +++ /dev/null @@ -1,16 +0,0 @@ - -float4 main() : SV_Target -{ - float f1a; - float1 f1b; - - f1a = f1b; // convert float1 to float - f1b = f1a; // convert float to float1 - - float3 f3; - step(0.0, f3); - - sin(f1b); // test 1-vectors in intrinsics - - return float4(0,0,0,0); -} diff --git a/deps/glslang/Test/hlsl.promotions.frag b/deps/glslang/Test/hlsl.promotions.frag deleted file mode 100644 index 647096d4..00000000 --- a/deps/glslang/Test/hlsl.promotions.frag +++ /dev/null @@ -1,201 +0,0 @@ - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; -}; - -uniform int3 i3; -uniform bool3 b3; -uniform float3 f3; -uniform uint3 u3; -uniform double3 d3; - -uniform int is; -uniform bool bs; -uniform float fs; -uniform uint us; -uniform double ds; - -void Fn_F3(float3 x) { } -void Fn_I3(int3 x) { } -void Fn_U3(uint3 x) { } -void Fn_B3(bool3 x) { } -void Fn_D3(double3 x) { } - -// ----------- Test implicit conversions on function returns ----------- -float3 Fn_R_F3I(out float3 p) { p = i3; return i3; } -float3 Fn_R_F3U(out float3 p) { p = u3; return u3; } -float3 Fn_R_F3B(out float3 p) { p = b3; return b3; } -float3 Fn_R_F3D(out float3 p) { p = d3; return d3; } // valid, but loss of precision on downconversion. - -int3 Fn_R_I3U(out int3 p) { p = u3; return u3; } -int3 Fn_R_I3B(out int3 p) { p = b3; return b3; } -int3 Fn_R_I3F(out int3 p) { p = f3; return f3; } -int3 Fn_R_I3D(out int3 p) { p = d3; return d3; } // valid, but loss of precision on downconversion. - -uint3 Fn_R_U3I(out uint3 p) { p = i3; return i3; } -uint3 Fn_R_U3F(out uint3 p) { p = f3; return f3; } -uint3 Fn_R_U3B(out uint3 p) { p = b3; return b3; } -uint3 Fn_R_U3D(out uint3 p) { p = d3; return d3; } // valid, but loss of precision on downconversion. - -bool3 Fn_R_B3I(out bool3 p) { p = i3; return i3; } -bool3 Fn_R_B3U(out bool3 p) { p = u3; return u3; } -bool3 Fn_R_B3F(out bool3 p) { p = f3; return f3; } -bool3 Fn_R_B3D(out bool3 p) { p = d3; return d3; } - -double3 Fn_R_D3I(out double3 p) { p = i3; return i3; } -double3 Fn_R_D3U(out double3 p) { p = u3; return u3; } -double3 Fn_R_D3B(out double3 p) { p = b3; return b3; } -double3 Fn_R_D3F(out double3 p) { p = f3; return f3; } - -PS_OUTPUT main() -{ - // ----------- assignment conversions ----------- - float3 r00 = i3; - float3 r01 = b3; - float3 r02 = u3; - float3 r03 = d3; // valid, but loss of precision on downconversion. - - int3 r10 = b3; - int3 r11 = u3; - int3 r12 = f3; - int3 r13 = d3; // valid, but loss of precision on downconversion. - - uint3 r20 = b3; - uint3 r21 = i3; - uint3 r22 = f3; - uint3 r23 = d3; // valid, but loss of precision on downconversion. - - bool3 r30 = i3; - bool3 r31 = u3; - bool3 r32 = f3; - bool3 r33 = d3; - - double3 r40 = i3; - double3 r41 = u3; - double3 r42 = f3; - double3 r43 = b3; - - // ----------- assign ops: vector times vector ----------- - r00 *= i3; - r01 *= b3; - r02 *= u3; - r03 *= d3; // valid, but loss of precision on downconversion. - - r10 *= b3; - r11 *= u3; - r12 *= f3; - r13 *= d3; // valid, but loss of precision on downconversion. - - r20 *= b3; - r21 *= i3; - r22 *= f3; - r23 *= d3; // valid, but loss of precision on downconversion. - - // No mul operator for bools - - r40 *= i3; - r41 *= u3; - r42 *= f3; - r43 *= b3; - - // ----------- assign ops: vector times scalar ----------- - r00 *= is; - r01 *= bs; - r02 *= us; - r03 *= ds; // valid, but loss of precision on downconversion. - - r10 *= bs; - r11 *= us; - r12 *= fs; - r13 *= ds; // valid, but loss of precision on downconversion. - - r20 *= bs; - r21 *= is; - r22 *= fs; - r23 *= ds; // valid, but loss of precision on downconversion. - - // No mul operator for bools - - r40 *= is; - r41 *= us; - r42 *= fs; - r43 *= bs; - - -#define FN_OVERLOADS 0 // change to 1 when overloads under promotions are in place - -#if FN_OVERLOADS - Fn_F3(i3); - Fn_F3(u3); - Fn_F3(f3); - Fn_F3(b3); - Fn_F3(d3); // valid, but loss of precision on downconversion. - - Fn_I3(i3); - Fn_I3(u3); - Fn_I3(f3); - Fn_I3(b3); - Fn_I3(d3); // valid, but loss of precision on downconversion. - - Fn_U3(i3); - Fn_U3(u3); - Fn_U3(f3); - Fn_U3(b3); - Fn_U3(d3); // valid, but loss of precision on downconversion. - - Fn_B3(i3); - Fn_B3(u3); - Fn_B3(f3); - Fn_B3(b3); - Fn_B3(d3); - - Fn_D3(i3); - Fn_D3(u3); - Fn_D3(f3); - Fn_D3(b3); - Fn_D3(d3); - - Fn_F3(i3.x); - Fn_F3(u3.x); - Fn_F3(f3.x); - Fn_F3(b3.x); - Fn_F3(d3.x); // valid, but loss of precision on downconversion. - - Fn_I3(i3.x); - Fn_I3(u3.x); - Fn_I3(f3.x); - Fn_I3(b3.x); - Fn_I3(d3.x); // valid, but loss of precision on downconversion. - - Fn_U3(i3.x); - Fn_U3(u3.x); - Fn_U3(f3.x); - Fn_U3(b3.x); - Fn_U3(d3.x); // valid, but loss of precision on downconversion. - - Fn_B3(i3.x); - Fn_B3(u3.x); - Fn_B3(f3.x); - Fn_B3(b3.x); - Fn_B3(d3.x); - - Fn_D3(i3.x); - Fn_D3(u3.x); - Fn_D3(f3.x); - Fn_D3(b3.x); - Fn_D3(d3.x); -#endif - - const int si = 3; - const float sf = 1.2; - - int c1 = si * sf; // 3.6 (not 3!) - int c2 = sf * si; // 3.6 (not 3!) - - float4 outval = float4(si * sf, sf*si, c1, c2); - - PS_OUTPUT psout; - psout.Color = outval; - return psout; -} diff --git a/deps/glslang/Test/hlsl.reflection.binding.frag b/deps/glslang/Test/hlsl.reflection.binding.frag deleted file mode 100644 index 25b22c97..00000000 --- a/deps/glslang/Test/hlsl.reflection.binding.frag +++ /dev/null @@ -1,34 +0,0 @@ - -uniform float u1 : register(b2); - -uniform SamplerState s1 : register(s5); -uniform SamplerState s1a[3] : register(s6); - -uniform Texture1D t1 : register(t15); -uniform Texture1D t1a[3] : register(t16); - -cbuffer cbuff1 : register(b2) { - float4 c1_a; - int c1_b; - float c1_c; -}; - -cbuffer cbuff2 : register(b3) { - float4 c2_a; - int c2_b; - float c2_c; -}; - -struct PS_OUTPUT -{ - float4 Color : Sv_Target0; -}; - -void main(out PS_OUTPUT psout) -{ - psout.Color = - t1.Sample(s1, 0.3) + - t1a[0].Sample(s1a[0], 0.3) + - c1_a + c1_b + c1_c + - c2_a + c2_b + c2_c; -} diff --git a/deps/glslang/Test/hlsl.reflection.vert b/deps/glslang/Test/hlsl.reflection.vert deleted file mode 100644 index 06207c74..00000000 --- a/deps/glslang/Test/hlsl.reflection.vert +++ /dev/null @@ -1,138 +0,0 @@ - -cbuffer nameless { - float3 anonMember1; - float3x2 m23; - int scalarAfterm23; - float4 anonDeadMember2; - float4 anonMember3; - int scalarBeforeArray; - float floatArray[5]; - int scalarAfterArray; - float2x2 m22[9]; -}; - -cbuffer c_nameless { - float3 c_anonMember1; - float3x2 c_m23; - int c_scalarAfterm23; - float4 c_anonDeadMember2; - float4 c_anonMember3; -}; - -cbuffer namelessdead { - int a; -}; - -struct N1 { - float a; -}; - -struct N2 { - float b; - float c; - float d; -}; - -struct N3 { - N1 n1; - N2 n2; -}; - -cbuffer nested { - N3 foo; -} - -struct TS { - int a; - int dead; -}; - -uniform TS s; - -uniform float uf1; -uniform float uf2; -uniform float ufDead3; -uniform float ufDead4; - -uniform float2x2 dm22[10]; - -struct deep1 { - float2 va[3]; - bool b; -}; - -struct deep2 { - int i; - deep1 d1[4]; -}; - -struct deep3 { - float4 iv4; - deep2 d2; - int3 v3; -}; - -uniform deep3 deepA[2], deepB[2], deepC[3], deepD[2]; - -const bool control = true; - -void deadFunction() -{ - float4 v = anonDeadMember2; - float f = ufDead4; -} - -void liveFunction2() -{ - float3 v = anonMember1; - float f = uf1; -} - -tbuffer abl { - float foo1; -} - -tbuffer abl2 { - float foo2; -} - -void flizv(in float attributeFloat, in float2 attributeFloat2, in float3 attributeFloat3, in float4 attributeFloat4, in float4x4 attributeMat4) -{ - liveFunction2(); - - if (! control) - deadFunction(); - - float f; - int i; - if (control) { - liveFunction2(); - f = anonMember3.z; - f = s.a; - f = m23[1].y + scalarAfterm23; - f = c_m23[1].y + c_scalarAfterm23; - f += scalarBeforeArray; - f += floatArray[2]; - f += floatArray[4]; - f += scalarAfterArray; - f += m22[i][1][0]; - f += dm22[3][0][1]; - f += m22[2][1].y; - f += foo.n1.a + foo.n2.b + foo.n2.c + foo.n2.d; - f += deepA[i].d2.d1[2].va[1].x; - f += deepB[1].d2.d1[i].va[1].x; - f += deepB[i].d2.d1[i].va[1].x; - deep3 d = deepC[1]; - deep3 da[2] = deepD; - } else - f = ufDead3; - - f += foo1 + foo2; - f += foo2; - - f += attributeFloat; - f += attributeFloat2.x; - f += attributeFloat3.x; - f += attributeFloat4.x; - f += attributeMat4[0][1]; -} diff --git a/deps/glslang/Test/hlsl.round.dx10.frag b/deps/glslang/Test/hlsl.round.dx10.frag deleted file mode 100644 index cd88334c..00000000 --- a/deps/glslang/Test/hlsl.round.dx10.frag +++ /dev/null @@ -1,4 +0,0 @@ -float4 PixelShaderFunction(float4 input) : COLOR0 -{ - return round(input); -} diff --git a/deps/glslang/Test/hlsl.round.dx9.frag b/deps/glslang/Test/hlsl.round.dx9.frag deleted file mode 100644 index cd88334c..00000000 --- a/deps/glslang/Test/hlsl.round.dx9.frag +++ /dev/null @@ -1,4 +0,0 @@ -float4 PixelShaderFunction(float4 input) : COLOR0 -{ - return round(input); -} diff --git a/deps/glslang/Test/hlsl.rw.atomics.frag b/deps/glslang/Test/hlsl.rw.atomics.frag deleted file mode 100644 index 930d6501..00000000 --- a/deps/glslang/Test/hlsl.rw.atomics.frag +++ /dev/null @@ -1,244 +0,0 @@ -SamplerState g_sSamp; - -RWTexture1D g_tTex1df1; -RWTexture1D g_tTex1di1; -RWTexture1D g_tTex1du1; - -RWTexture2D g_tTex2df1; -RWTexture2D g_tTex2di1; -RWTexture2D g_tTex2du1; - -RWTexture3D g_tTex3df1; -RWTexture3D g_tTex3di1; -RWTexture3D g_tTex3du1; - -RWTexture1DArray g_tTex1df1a; -RWTexture1DArray g_tTex1di1a; -RWTexture1DArray g_tTex1du1a; - -RWTexture2DArray g_tTex2df1a; -RWTexture2DArray g_tTex2di1a; -RWTexture2DArray g_tTex2du1a; - -RWBuffer g_tBuffF; -RWBuffer g_tBuffI; -RWBuffer g_tBuffU; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; -}; - -uniform uint u1; -uniform uint2 u2; -uniform uint3 u3; -uniform uint u1b; -uniform uint u1c; - -uniform int i1; -uniform int2 i2; -uniform int3 i3; -uniform int i1b; -uniform int i1c; - -PS_OUTPUT main() -{ - uint out_u1; - int out_i1; - - // 1D int - InterlockedAdd(g_tTex1di1[i1], i1b); - InterlockedAdd(g_tTex1di1[i1], i1, out_i1); - InterlockedAnd(g_tTex1di1[i1], i1b); - InterlockedAnd(g_tTex1di1[i1], i1, out_i1); - InterlockedCompareExchange(g_tTex1di1[i1], i1b, i1c, out_i1); - InterlockedExchange(g_tTex1di1[i1], i1, out_i1); - InterlockedMax(g_tTex1di1[i1], i1b); - InterlockedMax(g_tTex1di1[i1], i1, out_i1); - InterlockedMin(g_tTex1di1[i1], i1b); - InterlockedMin(g_tTex1di1[i1], i1, out_i1); - InterlockedOr(g_tTex1di1[i1], i1b); - InterlockedOr(g_tTex1di1[i1], i1, out_i1); - InterlockedXor(g_tTex1di1[i1], i1b); - InterlockedXor(g_tTex1di1[i1], i1, out_i1); - - // 1D uint - InterlockedAdd(g_tTex1du1[u1], u1); - InterlockedAdd(g_tTex1du1[u1], u1, out_u1); - InterlockedAnd(g_tTex1du1[u1], u1); - InterlockedAnd(g_tTex1du1[u1], u1, out_u1); - InterlockedCompareExchange(g_tTex1du1[u1], u1b, u1c, out_u1); - InterlockedExchange(g_tTex1du1[u1], u1, out_u1); - InterlockedMax(g_tTex1du1[u1], u1); - InterlockedMax(g_tTex1du1[u1], u1, out_u1); - InterlockedMin(g_tTex1du1[u1], u1); - InterlockedMin(g_tTex1du1[u1], u1, out_u1); - InterlockedOr(g_tTex1du1[u1], u1); - InterlockedOr(g_tTex1du1[u1], u1, out_u1); - InterlockedXor(g_tTex1du1[u1], u1); - InterlockedXor(g_tTex1du1[u1], u1, out_u1); - - // 2D int - InterlockedAdd(g_tTex2di1[i2], i1b); - InterlockedAdd(g_tTex2di1[i2], i1, out_i1); - InterlockedAnd(g_tTex2di1[i2], i1b); - InterlockedAnd(g_tTex2di1[i2], i1, out_i1); - InterlockedCompareExchange(g_tTex2di1[i2], i1b, i1c, out_i1); - InterlockedExchange(g_tTex2di1[i2], i1, out_i1); - InterlockedMax(g_tTex2di1[i2], i1b); - InterlockedMax(g_tTex2di1[i2], i1, out_i1); - InterlockedMin(g_tTex2di1[i2], i1b); - InterlockedMin(g_tTex2di1[i2], i1, out_i1); - InterlockedOr(g_tTex2di1[i2], i1b); - InterlockedOr(g_tTex2di1[i2], i1, out_i1); - InterlockedXor(g_tTex2di1[i2], i1b); - InterlockedXor(g_tTex2di1[i2], i1, out_i1); - - // 2D uint - InterlockedAdd(g_tTex2du1[u2], u1); - InterlockedAdd(g_tTex2du1[u2], u1, out_u1); - InterlockedAnd(g_tTex2du1[u2], u1); - InterlockedAnd(g_tTex2du1[u2], u1, out_u1); - InterlockedCompareExchange(g_tTex2du1[u2], u1b, u1c, out_u1); - InterlockedExchange(g_tTex2du1[u2], u1, out_u1); - InterlockedMax(g_tTex2du1[u2], u1); - InterlockedMax(g_tTex2du1[u2], u1, out_u1); - InterlockedMin(g_tTex2du1[u2], u1); - InterlockedMin(g_tTex2du1[u2], u1, out_u1); - InterlockedOr(g_tTex2du1[u2], u1); - InterlockedOr(g_tTex2du1[u2], u1, out_u1); - InterlockedXor(g_tTex2du1[u2], u1); - InterlockedXor(g_tTex2du1[u2], u1, out_u1); - - // 3D int - InterlockedAdd(g_tTex3di1[i3], i1b); - InterlockedAdd(g_tTex3di1[i3], i1, out_i1); - InterlockedAnd(g_tTex3di1[i3], i1b); - InterlockedAnd(g_tTex3di1[i3], i1, out_i1); - InterlockedCompareExchange(g_tTex3di1[i3], i1b, i1c, out_i1); - InterlockedExchange(g_tTex3di1[i3], i1, out_i1); - InterlockedMax(g_tTex3di1[i3], i1b); - InterlockedMax(g_tTex3di1[i3], i1, out_i1); - InterlockedMin(g_tTex3di1[i3], i1b); - InterlockedMin(g_tTex3di1[i3], i1, out_i1); - InterlockedOr(g_tTex3di1[i3], i1b); - InterlockedOr(g_tTex3di1[i3], i1, out_i1); - InterlockedXor(g_tTex3di1[i3], i1b); - InterlockedXor(g_tTex3di1[i3], i1, out_i1); - - // 3D uint - InterlockedAdd(g_tTex3du1[u3], u1); - InterlockedAdd(g_tTex3du1[u3], u1, out_u1); - InterlockedAnd(g_tTex3du1[u3], u1); - InterlockedAnd(g_tTex3du1[u3], u1, out_u1); - InterlockedCompareExchange(g_tTex3du1[u3], u1b, u1c, out_u1); - InterlockedExchange(g_tTex3du1[u3], u1, out_u1); - InterlockedMax(g_tTex3du1[u3], u1); - InterlockedMax(g_tTex3du1[u3], u1, out_u1); - InterlockedMin(g_tTex3du1[u3], u1); - InterlockedMin(g_tTex3du1[u3], u1, out_u1); - InterlockedOr(g_tTex3du1[u3], u1); - InterlockedOr(g_tTex3du1[u3], u1, out_u1); - InterlockedXor(g_tTex3du1[u3], u1); - InterlockedXor(g_tTex3du1[u3], u1, out_u1); - - // 1D array int - InterlockedAdd(g_tTex1di1a[i2], i1b); - InterlockedAdd(g_tTex1di1a[i2], i1, out_i1); - InterlockedAnd(g_tTex1di1a[i2], i1b); - InterlockedAnd(g_tTex1di1a[i2], i1, out_i1); - InterlockedCompareExchange(g_tTex1di1a[i2], i1b, i1c, out_i1); - InterlockedExchange(g_tTex1di1a[i2], i1, out_i1); - InterlockedMax(g_tTex1di1a[i2], i1b); - InterlockedMax(g_tTex1di1a[i2], i1, out_i1); - InterlockedMin(g_tTex1di1a[i2], i1b); - InterlockedMin(g_tTex1di1a[i2], i1, out_i1); - InterlockedOr(g_tTex1di1a[i2], i1b); - InterlockedOr(g_tTex1di1a[i2], i1, out_i1); - InterlockedXor(g_tTex1di1a[i2], i1b); - InterlockedXor(g_tTex1di1a[i2], i1, out_i1); - - // 1D array uint - InterlockedAdd(g_tTex1du1a[u2], u1); - InterlockedAdd(g_tTex1du1a[u2], u1, out_u1); - InterlockedAnd(g_tTex1du1a[u2], u1); - InterlockedAnd(g_tTex1du1a[u2], u1, out_u1); - InterlockedCompareExchange(g_tTex1du1a[u2], u1b, u1c, out_u1); - InterlockedExchange(g_tTex1du1a[u2], u1, out_u1); - InterlockedMax(g_tTex1du1a[u2], u1); - InterlockedMax(g_tTex1du1a[u2], u1, out_u1); - InterlockedMin(g_tTex1du1a[u2], u1); - InterlockedMin(g_tTex1du1a[u2], u1, out_u1); - InterlockedOr(g_tTex1du1a[u2], u1); - InterlockedOr(g_tTex1du1a[u2], u1, out_u1); - InterlockedXor(g_tTex1du1a[u2], u1); - InterlockedXor(g_tTex1du1a[u2], u1, out_u1); - - // 2D array int - InterlockedAdd(g_tTex1di1a[i2], i1b); - InterlockedAdd(g_tTex1di1a[i2], i1, out_i1); - InterlockedAnd(g_tTex1di1a[i2], i1b); - InterlockedAnd(g_tTex1di1a[i2], i1, out_i1); - InterlockedCompareExchange(g_tTex1di1a[i2], i1b, i1c, out_i1); - InterlockedExchange(g_tTex1di1a[i2], i1, out_i1); - InterlockedMax(g_tTex1di1a[i2], i1b); - InterlockedMax(g_tTex1di1a[i2], i1, out_i1); - InterlockedMin(g_tTex1di1a[i2], i1b); - InterlockedMin(g_tTex1di1a[i2], i1, out_i1); - InterlockedOr(g_tTex1di1a[i2], i1b); - InterlockedOr(g_tTex1di1a[i2], i1, out_i1); - InterlockedXor(g_tTex1di1a[i2], i1b); - InterlockedXor(g_tTex1di1a[i2], i1, out_i1); - - // 2D array uint - InterlockedAdd(g_tTex1du1a[u2], u1); - InterlockedAdd(g_tTex1du1a[u2], u1, out_u1); - InterlockedAnd(g_tTex1du1a[u2], u1); - InterlockedAnd(g_tTex1du1a[u2], u1, out_u1); - InterlockedCompareExchange(g_tTex1du1a[u2], u1b, u1c, out_u1); - InterlockedExchange(g_tTex1du1a[u2], u1, out_u1); - InterlockedMax(g_tTex1du1a[u2], u1); - InterlockedMax(g_tTex1du1a[u2], u1, out_u1); - InterlockedMin(g_tTex1du1a[u2], u1); - InterlockedMin(g_tTex1du1a[u2], u1, out_u1); - InterlockedOr(g_tTex1du1a[u2], u1); - InterlockedOr(g_tTex1du1a[u2], u1, out_u1); - InterlockedXor(g_tTex1du1a[u2], u1); - InterlockedXor(g_tTex1du1a[u2], u1, out_u1); - - // buffer int - InterlockedAdd(g_tBuffI[i1], i1b); - InterlockedAdd(g_tBuffI[i1], i1, out_i1); - InterlockedAnd(g_tBuffI[i1], i1b); - InterlockedAnd(g_tBuffI[i1], i1, out_i1); - InterlockedCompareExchange(g_tBuffI[i1], i1b, i1c, out_i1); - InterlockedExchange(g_tBuffI[i1], i1, out_i1); - InterlockedMax(g_tBuffI[i1], i1b); - InterlockedMax(g_tBuffI[i1], i1, out_i1); - InterlockedMin(g_tBuffI[i1], i1b); - InterlockedMin(g_tBuffI[i1], i1, out_i1); - InterlockedOr(g_tBuffI[i1], i1b); - InterlockedOr(g_tBuffI[i1], i1, out_i1); - InterlockedXor(g_tBuffI[i1], i1b); - InterlockedXor(g_tBuffI[i1], i1, out_i1); - - // buffer uint - InterlockedAdd(g_tBuffU[u1], u1); - InterlockedAdd(g_tBuffU[u1], u1, out_u1); - InterlockedAnd(g_tBuffU[u1], u1); - InterlockedAnd(g_tBuffU[u1], u1, out_u1); - InterlockedCompareExchange(g_tBuffU[u1], u1b, u1c, out_u1); - InterlockedExchange(g_tBuffU[u1], u1, out_u1); - InterlockedMax(g_tBuffU[u1], u1); - InterlockedMax(g_tBuffU[u1], u1, out_u1); - InterlockedMin(g_tBuffU[u1], u1); - InterlockedMin(g_tBuffU[u1], u1, out_u1); - InterlockedOr(g_tBuffU[u1], u1); - InterlockedOr(g_tBuffU[u1], u1, out_u1); - InterlockedXor(g_tBuffU[u1], u1); - InterlockedXor(g_tBuffU[u1], u1, out_u1); - - PS_OUTPUT psout; - psout.Color = 1.0; - return psout; -} diff --git a/deps/glslang/Test/hlsl.rw.bracket.frag b/deps/glslang/Test/hlsl.rw.bracket.frag deleted file mode 100644 index 9390e8de..00000000 --- a/deps/glslang/Test/hlsl.rw.bracket.frag +++ /dev/null @@ -1,140 +0,0 @@ -SamplerState g_sSamp : register(s0); - -RWTexture1D g_tTex1df4 : register(t0); -RWTexture1D g_tTex1di4; -RWTexture1D g_tTex1du4; - -RWTexture2D g_tTex2df4; -RWTexture2D g_tTex2di4; -RWTexture2D g_tTex2du4; - -RWTexture3D g_tTex3df4; -RWTexture3D g_tTex3di4; -RWTexture3D g_tTex3du4; - -RWTexture1DArray g_tTex1df4a; -RWTexture1DArray g_tTex1di4a; -RWTexture1DArray g_tTex1du4a; - -RWTexture2DArray g_tTex2df4a; -RWTexture2DArray g_tTex2di4a; -RWTexture2DArray g_tTex2du4a; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; -}; - -uniform int c1; -uniform int2 c2; -uniform int3 c3; -uniform int4 c4; - -uniform int o1; -uniform int2 o2; -uniform int3 o3; -uniform int4 o4; - -uniform float4 uf4; -uniform int4 ui4; -uniform uint4 uu4; - -int4 Fn1(in int4 x) { return x; } -uint4 Fn1(in uint4 x) { return x; } -float4 Fn1(in float4 x) { return x; } - -void Fn2(out int4 x) { x = int4(0); } -void Fn2(out uint4 x) { x = uint4(0); } -void Fn2(out float4 x) { x = float4(0); } - -float4 SomeValue() { return c4; } - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - // 1D - g_tTex1df4[c1]; - - float4 r00 = g_tTex1df4[c1]; - int4 r01 = g_tTex1di4[c1]; - uint4 r02 = g_tTex1du4[c1]; - - // 2D - float4 r10 = g_tTex2df4[c2]; - int4 r11 = g_tTex2di4[c2]; - uint4 r12 = g_tTex2du4[c2]; - - // 3D - float4 r20 = g_tTex3df4[c3]; - int4 r21 = g_tTex3di4[c3]; - uint4 r22 = g_tTex3du4[c3]; - - float4 lf4 = uf4; - - // Test as L-values - // 1D - g_tTex1df4[c1] = SomeValue(); // complex R-value - g_tTex1df4[c1] = lf4; - g_tTex1di4[c1] = int4(2,2,3,4); - g_tTex1du4[c1] = uint4(3,2,3,4); - - // Test some operator= things, which need to do both a load and a store. - float4 val1 = (g_tTex1df4[c1] *= 2.0); - g_tTex1df4[c1] -= 3.0; - g_tTex1df4[c1] += 4.0; - - g_tTex1di4[c1] /= 2; - g_tTex1di4[c1] %= 2; - g_tTex1di4[c1] &= 0xffff; - g_tTex1di4[c1] |= 0xf0f0; - g_tTex1di4[c1] <<= 2; - g_tTex1di4[c1] >>= 2; - - // 2D - g_tTex2df4[c2] = SomeValue(); // complex L-value - g_tTex2df4[c2] = lf4; - g_tTex2di4[c2] = int4(5,2,3,4); - g_tTex2du4[c2] = uint4(6,2,3,4); - - // 3D - g_tTex3df4[c3] = SomeValue(); // complex L-value - g_tTex3df4[c3] = lf4; - g_tTex3di4[c3] = int4(8,6,7,8); - g_tTex3du4[c3] = uint4(9,2,3,4); - - // Test function calling - Fn1(g_tTex1df4[c1]); // in - Fn1(g_tTex1di4[c1]); // in - Fn1(g_tTex1du4[c1]); // in - - Fn2(g_tTex1df4[c1]); // out - Fn2(g_tTex1di4[c1]); // out - Fn2(g_tTex1du4[c1]); // out - - // Test increment operators - // pre-ops - ++g_tTex1df4[c1]; - ++g_tTex1di4[c1]; - ++g_tTex1du4[c1]; - - --g_tTex1df4[c1]; - --g_tTex1di4[c1]; - --g_tTex1du4[c1]; - - // post-ops - g_tTex1df4[c1]++; - g_tTex1du4[c1]--; - g_tTex1di4[c1]++; - - g_tTex1df4[c1]--; - g_tTex1di4[c1]++; - g_tTex1du4[c1]--; - - // read and write - g_tTex1df4[1] = g_tTex2df4[int2(2,3)]; - - psout.Color = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.rw.register.frag b/deps/glslang/Test/hlsl.rw.register.frag deleted file mode 100644 index e82e419a..00000000 --- a/deps/glslang/Test/hlsl.rw.register.frag +++ /dev/null @@ -1,18 +0,0 @@ - -RWTexture1D g_tTex1df1 : register(u2); -RWBuffer g_tBuf1du1 : register(U3); - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; -}; - -PS_OUTPUT main() -{ - float r00 = g_tTex1df1[0]; - uint r01 = g_tBuf1du1[0]; - - PS_OUTPUT psout; - psout.Color = 1.0; - return psout; -} diff --git a/deps/glslang/Test/hlsl.rw.scalar.bracket.frag b/deps/glslang/Test/hlsl.rw.scalar.bracket.frag deleted file mode 100644 index e185f05d..00000000 --- a/deps/glslang/Test/hlsl.rw.scalar.bracket.frag +++ /dev/null @@ -1,140 +0,0 @@ -SamplerState g_sSamp : register(s0); - -RWTexture1D g_tTex1df1; -RWTexture1D g_tTex1di1; -RWTexture1D g_tTex1du1; - -RWTexture2D g_tTex2df1; -RWTexture2D g_tTex2di1; -RWTexture2D g_tTex2du1; - -RWTexture3D g_tTex3df1; -RWTexture3D g_tTex3di1; -RWTexture3D g_tTex3du1; - -RWTexture1DArray g_tTex1df1a; -RWTexture1DArray g_tTex1di1a; -RWTexture1DArray g_tTex1du1a; - -RWTexture2DArray g_tTex2df1a; -RWTexture2DArray g_tTex2di1a; -RWTexture2DArray g_tTex2du1a; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; -}; - -uniform int c1; -uniform int2 c2; -uniform int3 c3; -uniform int4 c4; - -uniform int o1; -uniform int2 o2; -uniform int3 o3; -uniform int4 o4; - -uniform float uf1; -uniform int ui1; -uniform uint uu1; - -int Fn1(in int x) { return x; } -uint Fn1(in uint x) { return x; } -float Fn1(in float x) { return x; } - -void Fn2(out int x) { x = int(0); } -void Fn2(out uint x) { x = uint(0); } -void Fn2(out float x) { x = float(0); } - -float SomeValue() { return c1; } - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - // 1D - g_tTex1df1[c1]; - - float r00 = g_tTex1df1[c1]; - int r01 = g_tTex1di1[c1]; - uint r02 = g_tTex1du1[c1]; - - // 2D - float r10 = g_tTex2df1[c2]; - int r11 = g_tTex2di1[c2]; - uint r12 = g_tTex2du1[c2]; - - // 3D - float r20 = g_tTex3df1[c3]; - int r21 = g_tTex3di1[c3]; - uint r22 = g_tTex3du1[c3]; - - float lf1 = uf1; - - // Test as L-values - // 1D - g_tTex1df1[c1] = SomeValue(); // complex R-value - g_tTex1df1[c1] = lf1; - g_tTex1di1[c1] = int(2); - g_tTex1du1[c1] = uint(3); - - // Test some operator= things, which need to do both a load and a store. - float val1 = (g_tTex1df1[c1] *= 2.0); - g_tTex1df1[c1] -= 3.0; - g_tTex1df1[c1] += 4.0; - - g_tTex1di1[c1] /= 2; - g_tTex1di1[c1] %= 2; - g_tTex1di1[c1] &= 0xffff; - g_tTex1di1[c1] |= 0xf0f0; - g_tTex1di1[c1] <<= 2; - g_tTex1di1[c1] >>= 2; - - // 2D - g_tTex2df1[c2] = SomeValue(); // complex L-value - g_tTex2df1[c2] = lf1; - g_tTex2di1[c2] = int(5); - g_tTex2du1[c2] = uint(6); - - // 3D - g_tTex3df1[c3] = SomeValue(); // complex L-value - g_tTex3df1[c3] = lf1; - g_tTex3di1[c3] = int(8); - g_tTex3du1[c3] = uint(9); - - // Test function calling - Fn1(g_tTex1df1[c1]); // in - Fn1(g_tTex1di1[c1]); // in - Fn1(g_tTex1du1[c1]); // in - - Fn2(g_tTex1df1[c1]); // out - Fn2(g_tTex1di1[c1]); // out - Fn2(g_tTex1du1[c1]); // out - - // Test increment operators - // pre-ops - ++g_tTex1df1[c1]; - ++g_tTex1di1[c1]; - ++g_tTex1du1[c1]; - - --g_tTex1df1[c1]; - --g_tTex1di1[c1]; - --g_tTex1du1[c1]; - - // post-ops - g_tTex1df1[c1]++; - g_tTex1du1[c1]--; - g_tTex1di1[c1]++; - - g_tTex1df1[c1]--; - g_tTex1di1[c1]++; - g_tTex1du1[c1]--; - - // read and write - g_tTex1df1[1] = g_tTex2df1[int2(2, 3)]; - - psout.Color = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.rw.swizzle.frag b/deps/glslang/Test/hlsl.rw.swizzle.frag deleted file mode 100644 index 356ed73d..00000000 --- a/deps/glslang/Test/hlsl.rw.swizzle.frag +++ /dev/null @@ -1,28 +0,0 @@ -RWTexture2D rwtx; -RWBuffer buf; - -float3 SomeValue() { return float3(1,2,3); } - -float4 main() : SV_Target0 -{ - int2 tc2 = { 0, 0 }; - int tc = 0; - - // Test swizzles and partial updates of L-values when writing to buffers and writable textures. - rwtx[tc2].zyx = float3(1,2,3); // full swizzle, simple RHS - rwtx[tc2].zyx = SomeValue(); // full swizzle, complex RHS - rwtx[tc2].zyx = 2; // full swizzle, modify op - - // Partial updates not yet supported. - // Partial values, which will use swizzles. - // buf[tc].yz = 42; // partial swizzle, simple RHS - // buf[tc].yz = SomeValue().x; // partial swizzle, complex RHS - // buf[tc].yz += 43; // partial swizzle, modify op - - // // Partial values, which will use index. - // buf[tc].y = 44; // single index, simple RHS - // buf[tc].y = SomeValue().x; // single index, complex RHS - // buf[tc].y += 45; // single index, modify op - - return 0.0; -} diff --git a/deps/glslang/Test/hlsl.rw.vec2.bracket.frag b/deps/glslang/Test/hlsl.rw.vec2.bracket.frag deleted file mode 100644 index 7b4a10a8..00000000 --- a/deps/glslang/Test/hlsl.rw.vec2.bracket.frag +++ /dev/null @@ -1,140 +0,0 @@ -SamplerState g_sSamp : register(s0); - -RWTexture1D g_tTex1df2; -RWTexture1D g_tTex1di2; -RWTexture1D g_tTex1du2; - -RWTexture2D g_tTex2df2; -RWTexture2D g_tTex2di2; -RWTexture2D g_tTex2du2; - -RWTexture3D g_tTex3df2; -RWTexture3D g_tTex3di2; -RWTexture3D g_tTex3du2; - -RWTexture1DArray g_tTex1df2a; -RWTexture1DArray g_tTex1di2a; -RWTexture1DArray g_tTex1du2a; - -RWTexture2DArray g_tTex2df2a; -RWTexture2DArray g_tTex2di2a; -RWTexture2DArray g_tTex2du2a; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; -}; - -uniform int c1; -uniform int2 c2; -uniform int3 c3; -uniform int4 c4; - -uniform int o1; -uniform int2 o2; -uniform int3 o3; -uniform int4 o4; - -uniform float2 uf2; -uniform int2 ui2; -uniform uint2 uu2; - -int2 Fn1(in int2 x) { return x; } -uint2 Fn1(in uint2 x) { return x; } -float2 Fn1(in float2 x) { return x; } - -void Fn2(out int2 x) { x = int2(0,0); } -void Fn2(out uint2 x) { x = uint2(0,0); } -void Fn2(out float2 x) { x = float2(0,0); } - -float2 SomeValue() { return c2; } - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - // 1D - g_tTex1df2[c1]; - - float2 r00 = g_tTex1df2[c1]; - int2 r01 = g_tTex1di2[c1]; - uint2 r02 = g_tTex1du2[c1]; - - // 2D - float2 r10 = g_tTex2df2[c2]; - int2 r11 = g_tTex2di2[c2]; - uint2 r12 = g_tTex2du2[c2]; - - // 3D - float2 r20 = g_tTex3df2[c3]; - int2 r21 = g_tTex3di2[c3]; - uint2 r22 = g_tTex3du2[c3]; - - float2 lf2 = uf2; - - // Test as L-values - // 1D - g_tTex1df2[c1] = SomeValue(); // complex R-value - g_tTex1df2[c1] = lf2; - g_tTex1di2[c1] = int2(2,2); - g_tTex1du2[c1] = uint2(3,2); - - // Test some operator= things, which need to do both a load and a store. - float2 val1 = (g_tTex1df2[c1] *= 2.0); - g_tTex1df2[c1] -= 3.0; - g_tTex1df2[c1] += 4.0; - - g_tTex1di2[c1] /= 2; - g_tTex1di2[c1] %= 2; - g_tTex1di2[c1] &= 0xffff; - g_tTex1di2[c1] |= 0xf0f0; - g_tTex1di2[c1] <<= 2; - g_tTex1di2[c1] >>= 2; - - // 2D - g_tTex2df2[c2] = SomeValue(); // complex L-value - g_tTex2df2[c2] = lf2; - g_tTex2di2[c2] = int2(5,2); - g_tTex2du2[c2] = uint2(6,2); - - // 3D - g_tTex3df2[c3] = SomeValue(); // complex L-value - g_tTex3df2[c3] = lf2; - g_tTex3di2[c3] = int2(8,6); - g_tTex3du2[c3] = uint2(9,2); - - // Test function calling - Fn1(g_tTex1df2[c1]); // in - Fn1(g_tTex1di2[c1]); // in - Fn1(g_tTex1du2[c1]); // in - - Fn2(g_tTex1df2[c1]); // out - Fn2(g_tTex1di2[c1]); // out - Fn2(g_tTex1du2[c1]); // out - - // Test increment operators - // pre-ops - ++g_tTex1df2[c1]; - ++g_tTex1di2[c1]; - ++g_tTex1du2[c1]; - - --g_tTex1df2[c1]; - --g_tTex1di2[c1]; - --g_tTex1du2[c1]; - - // post-ops - g_tTex1df2[c1]++; - g_tTex1du2[c1]--; - g_tTex1di2[c1]++; - - g_tTex1df2[c1]--; - g_tTex1di2[c1]++; - g_tTex1du2[c1]--; - - // read and write - g_tTex1df2[1] = g_tTex2df2[int2(2,3)]; - - psout.Color = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.sample.array.dx10.frag b/deps/glslang/Test/hlsl.sample.array.dx10.frag deleted file mode 100644 index 2c680045..00000000 --- a/deps/glslang/Test/hlsl.sample.array.dx10.frag +++ /dev/null @@ -1,43 +0,0 @@ -SamplerState g_sSamp : register(s0); - -Texture1DArray g_tTex1df4a : register(t1); - -uniform Texture1DArray g_tTex1df4 : register(t0); -Texture1DArray g_tTex1di4; -Texture1DArray g_tTex1du4; - -Texture2DArray g_tTex2df4; -Texture2DArray g_tTex2di4; -Texture2DArray g_tTex2du4; - -TextureCubeArray g_tTexcdf4; -TextureCubeArray g_tTexcdi4; -TextureCubeArray g_tTexcdu4; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - float4 txval10 = g_tTex1df4 . Sample(g_sSamp, float2(0.1, 0.2)); - int4 txval11 = g_tTex1di4 . Sample(g_sSamp, float2(0.2, 0.3)); - uint4 txval12 = g_tTex1du4 . Sample(g_sSamp, float2(0.3, 0.4)); - - float4 txval20 = g_tTex2df4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3)); - int4 txval21 = g_tTex2di4 . Sample(g_sSamp, float3(0.3, 0.4, 0.5)); - uint4 txval22 = g_tTex2du4 . Sample(g_sSamp, float3(0.5, 0.6, 0.7)); - - float4 txval40 = g_tTexcdf4 . Sample(g_sSamp, float4(0.1, 0.2, 0.3, 0.4)); - int4 txval41 = g_tTexcdi4 . Sample(g_sSamp, float4(0.4, 0.5, 0.6, 0.7)); - uint4 txval42 = g_tTexcdu4 . Sample(g_sSamp, float4(0.7, 0.8, 0.9, 1.0)); - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.sample.basic.dx10.frag b/deps/glslang/Test/hlsl.sample.basic.dx10.frag deleted file mode 100644 index 03e83ef9..00000000 --- a/deps/glslang/Test/hlsl.sample.basic.dx10.frag +++ /dev/null @@ -1,90 +0,0 @@ -SamplerState g_sSamp : register(s0); -uniform sampler2D g_sSamp2d -{ - AddressU = MIRROR; - AddressV = WRAP; - MinLOD = 0; - MaxLOD = 10; - MaxAnisotropy = 2; - MipLodBias = 0.2; -}, g_sSamp2D_b; - -Texture1D g_tTex1df4a : register(t1); - -uniform Texture1D g_tTex1df4 : register(t0); -Texture1D g_tTex1di4; -Texture1D g_tTex1du4; - -Texture2D g_tTex2df4; -Texture2D g_tTex2di4; -Texture2D g_tTex2du4; - -Texture3D g_tTex3df4; -Texture3D g_tTex3di4; -Texture3D g_tTex3du4; - -TextureCube g_tTexcdf4; -TextureCube g_tTexcdi4; -TextureCube g_tTexcdu4; - -struct MemberTest -{ - int Sample; // in HLSL, method names are valid struct members. - int CalculateLevelOfDetail; // ... - int CalculateLevelOfDetailUnclamped; // ... - int Gather; // ... - int GetDimensions; // ... - int GetSamplePosition; // ... - int Load; // ... - int SampleBias; // ... - int SampleCmp; // ... - int SampleCmpLevelZero; // ... - int SampleGrad; // ... - int SampleLevel; // ... -}; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - MemberTest mtest; - mtest.CalculateLevelOfDetail = 1; // in HLSL, method names are valid struct members. - mtest.CalculateLevelOfDetailUnclamped = 1; // ... - mtest.Gather = 1; // ... - mtest.GetDimensions = 1; // ... - mtest.GetSamplePosition = 1; // ... - mtest.Load = 1; // ... - mtest.Sample = 1; // ... - mtest.SampleBias = 1; // ... - mtest.SampleCmp = 1; // ... - mtest.SampleCmpLevelZero = 1; // ... - mtest.SampleGrad = 1; // ... - mtest.SampleLevel = 1; // ... - - float4 txval10 = g_tTex1df4 . Sample(g_sSamp, 0.1); - int4 txval11 = g_tTex1di4 . Sample(g_sSamp, 0.2); - uint4 txval12 = g_tTex1du4 . Sample(g_sSamp, 0.3); - - float4 txval20 = g_tTex2df4 . Sample(g_sSamp, float2(0.1, 0.2)); - int4 txval21 = g_tTex2di4 . Sample(g_sSamp, float2(0.3, 0.4)); - uint4 txval22 = g_tTex2du4 . Sample(g_sSamp, float2(0.5, 0.6)); - - float4 txval30 = g_tTex3df4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3)); - int4 txval31 = g_tTex3di4 . Sample(g_sSamp, float3(0.4, 0.5, 0.6)); - uint4 txval32 = g_tTex3du4 . Sample(g_sSamp, float3(0.7, 0.8, 0.9)); - - float4 txval40 = g_tTexcdf4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3)); - int4 txval41 = g_tTexcdi4 . Sample(g_sSamp, float3(0.4, 0.5, 0.6)); - uint4 txval42 = g_tTexcdu4 . Sample(g_sSamp, float3(0.7, 0.8, 0.9)); - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.sample.dx9.frag b/deps/glslang/Test/hlsl.sample.dx9.frag deleted file mode 100644 index ed82c52a..00000000 --- a/deps/glslang/Test/hlsl.sample.dx9.frag +++ /dev/null @@ -1,36 +0,0 @@ - -sampler g_sam : register(t0); -sampler1D g_sam1D : register(t1); -sampler2D g_sam2D : register(t2); -sampler3D g_sam3D : register(t3); -samplerCUBE g_samCube : register(t4); - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - float4 ColorOut = float4(0,0,0,0); - - ColorOut += tex2D( g_sam , float2(0.4,0.3)); - ColorOut += tex1D( g_sam1D, 0.5); - ColorOut += tex2D( g_sam2D, float2(0.5,0.6)); - ColorOut += tex3D( g_sam3D, float3(0.5,0.6,0.4)); - ColorOut += texCUBE( g_samCube, float3(0.5,0.6,0.4)); - - ColorOut += tex2Dlod( g_sam , float4(0.4,0.3,0.0,0.0)); - ColorOut += tex1Dlod( g_sam1D, float4(0.5,0.0,0.0,0.0)); - ColorOut += tex2Dlod( g_sam2D, float4(0.5,0.6,0.0,0.0)); - ColorOut += tex3Dlod( g_sam3D, float4(0.5,0.6,0.4,0.0)); - ColorOut += texCUBElod( g_samCube, float4(0.5,0.6,0.4,0.0)); - - psout.Color = ColorOut / 10.0f; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.sample.dx9.vert b/deps/glslang/Test/hlsl.sample.dx9.vert deleted file mode 100644 index 82d52b16..00000000 --- a/deps/glslang/Test/hlsl.sample.dx9.vert +++ /dev/null @@ -1,22 +0,0 @@ - -sampler g_sam : register(t0); -sampler2D g_sam2D : register(t1); - -struct VS_OUTPUT -{ - float4 Pos : SV_Position; -}; - -VS_OUTPUT main() -{ - VS_OUTPUT vsout; - - float4 PosOut = float4(0,0,0,0); - - PosOut += tex2Dlod( g_sam , float4(0.3f, 0.4f, 0.0f, 1.0f)); - PosOut += tex2Dlod( g_sam2D, float4(0.5f, 0.6f, 0.0f, 1.0f)); - - vsout.Pos = PosOut / 2.0f; - - return vsout; -} diff --git a/deps/glslang/Test/hlsl.sample.offset.dx10.frag b/deps/glslang/Test/hlsl.sample.offset.dx10.frag deleted file mode 100644 index 65ce7e48..00000000 --- a/deps/glslang/Test/hlsl.sample.offset.dx10.frag +++ /dev/null @@ -1,49 +0,0 @@ -SamplerState g_sSamp : register(s0); - -Texture1D g_tTex1df4a : register(t1); - -uniform Texture1D g_tTex1df4 : register(t0); -Texture1D g_tTex1di4; -Texture1D g_tTex1du4; - -Texture2D g_tTex2df4; -Texture2D g_tTex2di4; -Texture2D g_tTex2du4; - -Texture3D g_tTex3df4; -Texture3D g_tTex3di4; -Texture3D g_tTex3du4; - -TextureCube g_tTexcdf4; -TextureCube g_tTexcdi4; -TextureCube g_tTexcdu4; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - float4 txval10 = g_tTex1df4 . Sample(g_sSamp, 0.1, 1); - int4 txval11 = g_tTex1di4 . Sample(g_sSamp, 0.2, 1); - uint4 txval12 = g_tTex1du4 . Sample(g_sSamp, 0.3, 1); - - float4 txval20 = g_tTex2df4 . Sample(g_sSamp, float2(0.1, 0.2), int2(1,0)); - int4 txval21 = g_tTex2di4 . Sample(g_sSamp, float2(0.3, 0.4), int2(1,1)); - uint4 txval22 = g_tTex2du4 . Sample(g_sSamp, float2(0.5, 0.6), int2(1,-1)); - - float4 txval30 = g_tTex3df4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3), int3(1,0,1)); - int4 txval31 = g_tTex3di4 . Sample(g_sSamp, float3(0.4, 0.5, 0.6), int3(1,1,1)); - uint4 txval32 = g_tTex3du4 . Sample(g_sSamp, float3(0.7, 0.8, 0.9), int3(1,0,-1)); - - // There are no offset forms of cube textures, so we do not test them. - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.sample.offsetarray.dx10.frag b/deps/glslang/Test/hlsl.sample.offsetarray.dx10.frag deleted file mode 100644 index 616c8ddd..00000000 --- a/deps/glslang/Test/hlsl.sample.offsetarray.dx10.frag +++ /dev/null @@ -1,37 +0,0 @@ -SamplerState g_sSamp : register(s0); - -Texture1DArray g_tTex1df4a : register(t1); - -uniform Texture1DArray g_tTex1df4 : register(t0); -Texture1DArray g_tTex1di4; -Texture1DArray g_tTex1du4; - -Texture2DArray g_tTex2df4; -Texture2DArray g_tTex2di4; -Texture2DArray g_tTex2du4; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - float4 txval10 = g_tTex1df4 . Sample(g_sSamp, float2(0.1, 0.2), 0); - int4 txval11 = g_tTex1di4 . Sample(g_sSamp, float2(0.2, 0.3), 1); - uint4 txval12 = g_tTex1du4 . Sample(g_sSamp, float2(0.3, 0.4), 2); - - float4 txval20 = g_tTex2df4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3), int2(0,0)); - int4 txval21 = g_tTex2di4 . Sample(g_sSamp, float3(0.3, 0.4, 0.5), int2(0,0)); - uint4 txval22 = g_tTex2du4 . Sample(g_sSamp, float3(0.5, 0.6, 0.7), int2(0,1)); - - // No offset array forms for 3D or cube - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.sample.sub-vec4.dx10.frag b/deps/glslang/Test/hlsl.sample.sub-vec4.dx10.frag deleted file mode 100644 index 991d976a..00000000 --- a/deps/glslang/Test/hlsl.sample.sub-vec4.dx10.frag +++ /dev/null @@ -1,24 +0,0 @@ -SamplerState g_sSamp : register(s0); - -Texture1D g_tTex1df1; -Texture1D g_tTex1df2; -Texture1D g_tTex1df3; -Texture1D g_tTex1df4; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - float txval10 = g_tTex1df1 . Sample(g_sSamp, 0.1); - float2 txval11 = g_tTex1df2 . Sample(g_sSamp, 0.2); - float3 txval12 = g_tTex1df3 . Sample(g_sSamp, 0.2); - float4 txval13 = g_tTex1df4 . Sample(g_sSamp, 0.2); - - psout.Color = 1.0; - return psout; -} diff --git a/deps/glslang/Test/hlsl.samplebias.array.dx10.frag b/deps/glslang/Test/hlsl.samplebias.array.dx10.frag deleted file mode 100644 index ba4e197f..00000000 --- a/deps/glslang/Test/hlsl.samplebias.array.dx10.frag +++ /dev/null @@ -1,43 +0,0 @@ -SamplerState g_sSamp : register(s0); - -Texture1DArray g_tTex1df4a : register(t1); - -uniform Texture1DArray g_tTex1df4 : register(t0); -Texture1DArray g_tTex1di4; -Texture1DArray g_tTex1du4; - -Texture2DArray g_tTex2df4; -Texture2DArray g_tTex2di4; -Texture2DArray g_tTex2du4; - -TextureCubeArray g_tTexcdf4; -TextureCubeArray g_tTexcdi4; -TextureCubeArray g_tTexcdu4; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - float4 txval10 = g_tTex1df4 . SampleBias(g_sSamp, float2(0.1, 0.2), 0.5); - int4 txval11 = g_tTex1di4 . SampleBias(g_sSamp, float2(0.2, 0.3), 0.5); - uint4 txval12 = g_tTex1du4 . SampleBias(g_sSamp, float2(0.3, 0.4), 0.5); - - float4 txval20 = g_tTex2df4 . SampleBias(g_sSamp, float3(0.1, 0.2, 0.3), 0.5); - int4 txval21 = g_tTex2di4 . SampleBias(g_sSamp, float3(0.3, 0.4, 0.5), 0.5); - uint4 txval22 = g_tTex2du4 . SampleBias(g_sSamp, float3(0.5, 0.6, 0.7), 0.5); - - float4 txval40 = g_tTexcdf4 . SampleBias(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.5); - int4 txval41 = g_tTexcdi4 . SampleBias(g_sSamp, float4(0.4, 0.5, 0.6, 0.7), 0.5); - uint4 txval42 = g_tTexcdu4 . SampleBias(g_sSamp, float4(0.7, 0.8, 0.9, 1.0), 0.5); - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.samplebias.basic.dx10.frag b/deps/glslang/Test/hlsl.samplebias.basic.dx10.frag deleted file mode 100644 index 09138616..00000000 --- a/deps/glslang/Test/hlsl.samplebias.basic.dx10.frag +++ /dev/null @@ -1,51 +0,0 @@ -SamplerState g_sSamp : register(s0); - -Texture1D g_tTex1df4a : register(t1); - -uniform Texture1D g_tTex1df4 : register(t0); -Texture1D g_tTex1di4; -Texture1D g_tTex1du4; - -Texture2D g_tTex2df4; -Texture2D g_tTex2di4; -Texture2D g_tTex2du4; - -Texture3D g_tTex3df4; -Texture3D g_tTex3di4; -Texture3D g_tTex3du4; - -TextureCube g_tTexcdf4; -TextureCube g_tTexcdi4; -TextureCube g_tTexcdu4; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - float4 txval10 = g_tTex1df4 . SampleBias(g_sSamp, 0.1, 0.5); - int4 txval11 = g_tTex1di4 . SampleBias(g_sSamp, 0.2, 0.5); - uint4 txval12 = g_tTex1du4 . SampleBias(g_sSamp, 0.3, 0.5); - - float4 txval20 = g_tTex2df4 . SampleBias(g_sSamp, float2(0.1, 0.2), 0.5); - int4 txval21 = g_tTex2di4 . SampleBias(g_sSamp, float2(0.3, 0.4), 0.5); - uint4 txval22 = g_tTex2du4 . SampleBias(g_sSamp, float2(0.5, 0.6), 0.5); - - float4 txval30 = g_tTex3df4 . SampleBias(g_sSamp, float3(0.1, 0.2, 0.3), 0.5); - int4 txval31 = g_tTex3di4 . SampleBias(g_sSamp, float3(0.4, 0.5, 0.6), 0.5); - uint4 txval32 = g_tTex3du4 . SampleBias(g_sSamp, float3(0.7, 0.8, 0.9), 0.5); - - float4 txval40 = g_tTexcdf4 . SampleBias(g_sSamp, float3(0.1, 0.2, 0.3), 0.5); - int4 txval41 = g_tTexcdi4 . SampleBias(g_sSamp, float3(0.4, 0.5, 0.6), 0.5); - uint4 txval42 = g_tTexcdu4 . SampleBias(g_sSamp, float3(0.7, 0.8, 0.9), 0.5); - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.samplebias.offset.dx10.frag b/deps/glslang/Test/hlsl.samplebias.offset.dx10.frag deleted file mode 100644 index 6f2f94c8..00000000 --- a/deps/glslang/Test/hlsl.samplebias.offset.dx10.frag +++ /dev/null @@ -1,49 +0,0 @@ -SamplerState g_sSamp : register(s0); - -Texture1D g_tTex1df4a : register(t1); - -uniform Texture1D g_tTex1df4 : register(t0); -Texture1D g_tTex1di4; -Texture1D g_tTex1du4; - -Texture2D g_tTex2df4; -Texture2D g_tTex2di4; -Texture2D g_tTex2du4; - -Texture3D g_tTex3df4; -Texture3D g_tTex3di4; -Texture3D g_tTex3du4; - -TextureCube g_tTexcdf4; -TextureCube g_tTexcdi4; -TextureCube g_tTexcdu4; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - float4 txval10 = g_tTex1df4 . SampleBias(g_sSamp, 0.1, 0.5, 1); - int4 txval11 = g_tTex1di4 . SampleBias(g_sSamp, 0.2, 0.5, 1); - uint4 txval12 = g_tTex1du4 . SampleBias(g_sSamp, 0.3, 0.5, 1); - - float4 txval20 = g_tTex2df4 . SampleBias(g_sSamp, float2(0.1, 0.2), 0.5, int2(1,0)); - int4 txval21 = g_tTex2di4 . SampleBias(g_sSamp, float2(0.3, 0.4), 0.5, int2(1,1)); - uint4 txval22 = g_tTex2du4 . SampleBias(g_sSamp, float2(0.5, 0.6), 0.5, int2(1,-1)); - - float4 txval30 = g_tTex3df4 . SampleBias(g_sSamp, float3(0.1, 0.2, 0.3), 0.5, int3(1,0,1)); - int4 txval31 = g_tTex3di4 . SampleBias(g_sSamp, float3(0.4, 0.5, 0.6), 0.5, int3(1,1,1)); - uint4 txval32 = g_tTex3du4 . SampleBias(g_sSamp, float3(0.7, 0.8, 0.9), 0.5, int3(1,0,-1)); - - // There are no offset forms of cube textures, so we do not test them. - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.samplebias.offsetarray.dx10.frag b/deps/glslang/Test/hlsl.samplebias.offsetarray.dx10.frag deleted file mode 100644 index b5f62968..00000000 --- a/deps/glslang/Test/hlsl.samplebias.offsetarray.dx10.frag +++ /dev/null @@ -1,37 +0,0 @@ -SamplerState g_sSamp : register(s0); - -Texture1DArray g_tTex1df4a : register(t1); - -uniform Texture1DArray g_tTex1df4 : register(t0); -Texture1DArray g_tTex1di4; -Texture1DArray g_tTex1du4; - -Texture2DArray g_tTex2df4; -Texture2DArray g_tTex2di4; -Texture2DArray g_tTex2du4; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - float4 txval10 = g_tTex1df4 . SampleBias(g_sSamp, float2(0.1, 0.2), 0.5, 0); - int4 txval11 = g_tTex1di4 . SampleBias(g_sSamp, float2(0.2, 0.3), 0.5, 1); - uint4 txval12 = g_tTex1du4 . SampleBias(g_sSamp, float2(0.3, 0.4), 0.5, 2); - - float4 txval20 = g_tTex2df4 . SampleBias(g_sSamp, float3(0.1, 0.2, 0.3), 0.5, int2(0,0)); - int4 txval21 = g_tTex2di4 . SampleBias(g_sSamp, float3(0.3, 0.4, 0.5), 0.5, int2(0,0)); - uint4 txval22 = g_tTex2du4 . SampleBias(g_sSamp, float3(0.5, 0.6, 0.7), 0.5, int2(0,1)); - - // No offset array forms for 3D or cube - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.samplecmp.array.dx10.frag b/deps/glslang/Test/hlsl.samplecmp.array.dx10.frag deleted file mode 100644 index f0e0a3dc..00000000 --- a/deps/glslang/Test/hlsl.samplecmp.array.dx10.frag +++ /dev/null @@ -1,60 +0,0 @@ -SamplerComparisonState g_sSamp : register(s0); - -uniform Texture1D g_tTex1df4 : register(t0); -Texture1D g_tTex1di4; -Texture1D g_tTex1du4; - -Texture2D g_tTex2df4; -Texture2D g_tTex2di4; -Texture2D g_tTex2du4; - -Texture3D g_tTex3df4; -Texture3D g_tTex3di4; -Texture3D g_tTex3du4; - -TextureCube g_tTexcdf4; -TextureCube g_tTexcdi4; -TextureCube g_tTexcdu4; - -Texture1DArray g_tTex1df4a; -Texture1DArray g_tTex1di4a; -Texture1DArray g_tTex1du4a; - -Texture2DArray g_tTex2df4a; -Texture2DArray g_tTex2di4a; -Texture2DArray g_tTex2du4a; - -TextureCubeArray g_tTexcdf4a; -TextureCubeArray g_tTexcdi4a; -TextureCubeArray g_tTexcdu4a; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - // 1DArray - float r10 = g_tTex1df4a . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75); - float r12 = g_tTex1di4a . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75); - float r14 = g_tTex1du4a . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75); - - // 2DArray - float r30 = g_tTex2df4a . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); - float r32 = g_tTex2di4a . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); - float r34 = g_tTex2du4a . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); - - // CubeArray - float r60 = g_tTexcdf4a . SampleCmp(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75); - float r62 = g_tTexcdi4a . SampleCmp(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75); - float r64 = g_tTexcdu4a . SampleCmp(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75); - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.samplecmp.basic.dx10.frag b/deps/glslang/Test/hlsl.samplecmp.basic.dx10.frag deleted file mode 100644 index cb73e14f..00000000 --- a/deps/glslang/Test/hlsl.samplecmp.basic.dx10.frag +++ /dev/null @@ -1,61 +0,0 @@ -SamplerComparisonState g_sSamp : register(s0); - -uniform Texture1D g_tTex1df4 : register(t0); -Texture1D g_tTex1di4; -Texture1D g_tTex1du4; - -Texture2D g_tTex2df4; -Texture2D g_tTex2di4; -Texture2D g_tTex2du4; - -Texture3D g_tTex3df4; -Texture3D g_tTex3di4; -Texture3D g_tTex3du4; - -TextureCube g_tTexcdf4; -TextureCube g_tTexcdi4; -TextureCube g_tTexcdu4; - -Texture1DArray g_tTex1df4a; -Texture1DArray g_tTex1di4a; -Texture1DArray g_tTex1du4a; - -Texture2DArray g_tTex2df4a; -Texture2DArray g_tTex2di4a; -Texture2DArray g_tTex2du4a; - -TextureCubeArray g_tTexcdf4a; -TextureCubeArray g_tTexcdi4a; -TextureCubeArray g_tTexcdu4a; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - // 1D - float r00 = g_tTex1df4 . SampleCmp(g_sSamp, 0.1, 0.75); - float r02 = g_tTex1di4 . SampleCmp(g_sSamp, 0.1, 0.75); - float r04 = g_tTex1du4 . SampleCmp(g_sSamp, 0.1, 0.75); - - // 2D - float r20 = g_tTex2df4 . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75); - float r22 = g_tTex2di4 . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75); - float r24 = g_tTex2du4 . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75); - - // *** There's no SampleCmp on 3D textures - - float r50 = g_tTexcdf4 . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); - float r52 = g_tTexcdi4 . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); - float r54 = g_tTexcdu4 . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.samplecmp.dualmode.frag b/deps/glslang/Test/hlsl.samplecmp.dualmode.frag deleted file mode 100644 index 5b600f3b..00000000 --- a/deps/glslang/Test/hlsl.samplecmp.dualmode.frag +++ /dev/null @@ -1,14 +0,0 @@ -SamplerState g_sSamp : register(s0); -SamplerComparisonState g_sSampCmp : register(s1); - -uniform Texture1D g_tTex : register(t3); - -float4 main() : SV_Target0 -{ - // This texture is used with both shadow modes. It will need post-compilation - // legalization. - g_tTex.SampleCmp(g_sSampCmp, 0.1, 0.75); - g_tTex.Sample(g_sSamp, 0.1); - - return 0; -} diff --git a/deps/glslang/Test/hlsl.samplecmp.negative.frag b/deps/glslang/Test/hlsl.samplecmp.negative.frag deleted file mode 100644 index 88519821..00000000 --- a/deps/glslang/Test/hlsl.samplecmp.negative.frag +++ /dev/null @@ -1,13 +0,0 @@ - -Texture2D g_nonShadowTex; -Texture2D g_shadowTex; -SamplerState g_shadowSampler; -SamplerComparisonState g_shadowSamplerComp; - -float4 main() : SV_Target0 -{ - g_shadowTex.SampleCmp(g_shadowSamplerComp, float2(0,0), 0); // OK - g_nonShadowTex.SampleCmp(g_shadowSampler, float2(0,0), 0); // ERROR (should be comparison sampler) - - return 0; -} diff --git a/deps/glslang/Test/hlsl.samplecmp.negative2.frag b/deps/glslang/Test/hlsl.samplecmp.negative2.frag deleted file mode 100644 index 33a2133a..00000000 --- a/deps/glslang/Test/hlsl.samplecmp.negative2.frag +++ /dev/null @@ -1,10 +0,0 @@ - -Texture2D g_shadowTex; -SamplerState g_shadowSampler; - -float4 main() : SV_Target0 -{ - g_shadowTex.GatherCmpRed(g_shadowSampler, float2(0,0), 0, int2(0,0)); // ERROR (should be comparison sampler) - - return 0; -} diff --git a/deps/glslang/Test/hlsl.samplecmp.offset.dx10.frag b/deps/glslang/Test/hlsl.samplecmp.offset.dx10.frag deleted file mode 100644 index 444dac8e..00000000 --- a/deps/glslang/Test/hlsl.samplecmp.offset.dx10.frag +++ /dev/null @@ -1,66 +0,0 @@ -SamplerComparisonState g_sSamp : register(s0); - -uniform Texture1D g_tTex1df4 : register(t0); -Texture1D g_tTex1di4; -Texture1D g_tTex1du4; - -Texture2D g_tTex2df4; -Texture2D g_tTex2di4; -Texture2D g_tTex2du4; - -Texture3D g_tTex3df4; -Texture3D g_tTex3di4; -Texture3D g_tTex3du4; - -TextureCube g_tTexcdf4; -TextureCube g_tTexcdi4; -TextureCube g_tTexcdu4; - -Texture1DArray g_tTex1df4a; -Texture1DArray g_tTex1di4a; -Texture1DArray g_tTex1du4a; - -Texture2DArray g_tTex2df4a; -Texture2DArray g_tTex2di4a; -Texture2DArray g_tTex2du4a; - -TextureCubeArray g_tTexcdf4a; -TextureCubeArray g_tTexcdi4a; -TextureCubeArray g_tTexcdu4a; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - // 1D - float r01 = g_tTex1df4 . SampleCmp(g_sSamp, 0.1, 0.75, 2); - float r03 = g_tTex1di4 . SampleCmp(g_sSamp, 0.1, 0.75, 2); - float r05 = g_tTex1du4 . SampleCmp(g_sSamp, 0.1, 0.75, 2); - - // 2D - float r21 = g_tTex2df4 . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75, int2(2,3)); - float r23 = g_tTex2di4 . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75, int2(2,3)); - float r25 = g_tTex2du4 . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75, int2(2,3)); - - // *** There's no SampleCmp on 3D textures - - // This page: https://msdn.microsoft.com/en-us/library/windows/desktop/bb509696(v=vs.85).aspx - // claims offset is supported for cube textures, but FXC does not accept it, and that does - // not match other methods, so it may be a documentation bug. Those lines are commented - // out below. - // Cube - // float r51 = g_tTexcdf4 . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int3(2,3,4)); - // float r53 = g_tTexcdi4 . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int3(2,3,4)); - // float r55 = g_tTexcdu4 . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int3(2,3,4)); - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.samplecmp.offsetarray.dx10.frag b/deps/glslang/Test/hlsl.samplecmp.offsetarray.dx10.frag deleted file mode 100644 index 319d5cdd..00000000 --- a/deps/glslang/Test/hlsl.samplecmp.offsetarray.dx10.frag +++ /dev/null @@ -1,67 +0,0 @@ -SamplerComparisonState g_sSamp : register(s0); - -uniform Texture1D g_tTex1df4 : register(t0); -Texture1D g_tTex1di4; -Texture1D g_tTex1du4; - -Texture2D g_tTex2df4; -Texture2D g_tTex2di4; -Texture2D g_tTex2du4; - -Texture3D g_tTex3df4; -Texture3D g_tTex3di4; -Texture3D g_tTex3du4; - -TextureCube g_tTexcdf4; -TextureCube g_tTexcdi4; -TextureCube g_tTexcdu4; - -Texture1DArray g_tTex1df4a; -Texture1DArray g_tTex1di4a; -Texture1DArray g_tTex1du4a; - -Texture2DArray g_tTex2df4a; -Texture2DArray g_tTex2di4a; -Texture2DArray g_tTex2du4a; - -TextureCubeArray g_tTexcdf4a; -TextureCubeArray g_tTexcdi4a; -TextureCubeArray g_tTexcdu4a; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - // 1DArray - float r11 = g_tTex1df4a . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75, 2); - float r13 = g_tTex1di4a . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75, 2); - float r15 = g_tTex1du4a . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75, 2); - - // 2DArray - float r31 = g_tTex2df4a . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3)); - float r33 = g_tTex2di4a . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3)); - float r35 = g_tTex2du4a . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3)); - - // *** There's no SampleCmp on 3D textures - - // This page: https://msdn.microsoft.com/en-us/library/windows/desktop/bb509696(v=vs.85).aspx - // claims offset is supported for cube textures, but FXC does not accept it, and that does - // not match other methods, so it may be a documentation bug. Those lines are commented - // out below. - - // CubeArray - // float r61 = g_tTexcdf4a . SampleCmp(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75, int3(2,3,4)); - // float r63 = g_tTexcdi4a . SampleCmp(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75, int3(2,3,4)); - // float r65 = g_tTexcdu4a . SampleCmp(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75, int3(2,3,4)); - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.samplecmplevelzero.array.dx10.frag b/deps/glslang/Test/hlsl.samplecmplevelzero.array.dx10.frag deleted file mode 100644 index 41b6a793..00000000 --- a/deps/glslang/Test/hlsl.samplecmplevelzero.array.dx10.frag +++ /dev/null @@ -1,60 +0,0 @@ -SamplerComparisonState g_sSamp : register(s0); - -uniform Texture1D g_tTex1df4 : register(t0); -Texture1D g_tTex1di4; -Texture1D g_tTex1du4; - -Texture2D g_tTex2df4; -Texture2D g_tTex2di4; -Texture2D g_tTex2du4; - -Texture3D g_tTex3df4; -Texture3D g_tTex3di4; -Texture3D g_tTex3du4; - -TextureCube g_tTexcdf4; -TextureCube g_tTexcdi4; -TextureCube g_tTexcdu4; - -Texture1DArray g_tTex1df4a; -Texture1DArray g_tTex1di4a; -Texture1DArray g_tTex1du4a; - -Texture2DArray g_tTex2df4a; -Texture2DArray g_tTex2di4a; -Texture2DArray g_tTex2du4a; - -TextureCubeArray g_tTexcdf4a; -TextureCubeArray g_tTexcdi4a; -TextureCubeArray g_tTexcdu4a; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - // 1DArray - float r10 = g_tTex1df4a . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75); - float r12 = g_tTex1di4a . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75); - float r14 = g_tTex1du4a . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75); - - // 2DArray - float r30 = g_tTex2df4a . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); - float r32 = g_tTex2di4a . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); - float r34 = g_tTex2du4a . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); - - // CubeArray - float r60 = g_tTexcdf4a . SampleCmpLevelZero(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75); - float r62 = g_tTexcdi4a . SampleCmpLevelZero(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75); - float r64 = g_tTexcdu4a . SampleCmpLevelZero(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75); - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.samplecmplevelzero.basic.dx10.frag b/deps/glslang/Test/hlsl.samplecmplevelzero.basic.dx10.frag deleted file mode 100644 index 841530a1..00000000 --- a/deps/glslang/Test/hlsl.samplecmplevelzero.basic.dx10.frag +++ /dev/null @@ -1,61 +0,0 @@ -SamplerComparisonState g_sSamp : register(s0); - -uniform Texture1D g_tTex1df4 : register(t0); -Texture1D g_tTex1di4; -Texture1D g_tTex1du4; - -Texture2D g_tTex2df4; -Texture2D g_tTex2di4; -Texture2D g_tTex2du4; - -Texture3D g_tTex3df4; -Texture3D g_tTex3di4; -Texture3D g_tTex3du4; - -TextureCube g_tTexcdf4; -TextureCube g_tTexcdi4; -TextureCube g_tTexcdu4; - -Texture1DArray g_tTex1df4a; -Texture1DArray g_tTex1di4a; -Texture1DArray g_tTex1du4a; - -Texture2DArray g_tTex2df4a; -Texture2DArray g_tTex2di4a; -Texture2DArray g_tTex2du4a; - -TextureCubeArray g_tTexcdf4a; -TextureCubeArray g_tTexcdi4a; -TextureCubeArray g_tTexcdu4a; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - // 1D - float r00 = g_tTex1df4 . SampleCmpLevelZero(g_sSamp, 0.1, 0.75); - float r02 = g_tTex1di4 . SampleCmpLevelZero(g_sSamp, 0.1, 0.75); - float r04 = g_tTex1du4 . SampleCmpLevelZero(g_sSamp, 0.1, 0.75); - - // 2D - float r20 = g_tTex2df4 . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75); - float r22 = g_tTex2di4 . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75); - float r24 = g_tTex2du4 . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75); - - // *** There's no SampleCmpLevelZero on 3D textures - - float r50 = g_tTexcdf4 . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); - float r52 = g_tTexcdi4 . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); - float r54 = g_tTexcdu4 . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.samplecmplevelzero.offset.dx10.frag b/deps/glslang/Test/hlsl.samplecmplevelzero.offset.dx10.frag deleted file mode 100644 index 290774e2..00000000 --- a/deps/glslang/Test/hlsl.samplecmplevelzero.offset.dx10.frag +++ /dev/null @@ -1,66 +0,0 @@ -SamplerComparisonState g_sSamp : register(s0); - -uniform Texture1D g_tTex1df4 : register(t0); -Texture1D g_tTex1di4; -Texture1D g_tTex1du4; - -Texture2D g_tTex2df4; -Texture2D g_tTex2di4; -Texture2D g_tTex2du4; - -Texture3D g_tTex3df4; -Texture3D g_tTex3di4; -Texture3D g_tTex3du4; - -TextureCube g_tTexcdf4; -TextureCube g_tTexcdi4; -TextureCube g_tTexcdu4; - -Texture1DArray g_tTex1df4a; -Texture1DArray g_tTex1di4a; -Texture1DArray g_tTex1du4a; - -Texture2DArray g_tTex2df4a; -Texture2DArray g_tTex2di4a; -Texture2DArray g_tTex2du4a; - -TextureCubeArray g_tTexcdf4a; -TextureCubeArray g_tTexcdi4a; -TextureCubeArray g_tTexcdu4a; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - // 1D - float r01 = g_tTex1df4 . SampleCmpLevelZero(g_sSamp, 0.1, 0.75, 2); - float r03 = g_tTex1di4 . SampleCmpLevelZero(g_sSamp, 0.1, 0.75, 2); - float r05 = g_tTex1du4 . SampleCmpLevelZero(g_sSamp, 0.1, 0.75, 2); - - // 2D - float r21 = g_tTex2df4 . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75, int2(2,3)); - float r23 = g_tTex2di4 . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75, int2(2,3)); - float r25 = g_tTex2du4 . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75, int2(2,3)); - - // *** There's no SampleCmpLevelZero on 3D textures - - // This page: https://msdn.microsoft.com/en-us/library/windows/desktop/bb509696(v=vs.85).aspx - // claims offset is supported for cube textures, but FXC does not accept it, and that does - // not match other methods, so it may be a documentation bug. Those lines are commented - // out below. - // Cube - // float r51 = g_tTexcdf4 . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3)); - // float r53 = g_tTexcdi4 . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3)); - // float r55 = g_tTexcdu4 . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3)); - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.samplecmplevelzero.offsetarray.dx10.frag b/deps/glslang/Test/hlsl.samplecmplevelzero.offsetarray.dx10.frag deleted file mode 100644 index b57502ea..00000000 --- a/deps/glslang/Test/hlsl.samplecmplevelzero.offsetarray.dx10.frag +++ /dev/null @@ -1,67 +0,0 @@ -SamplerComparisonState g_sSamp : register(s0); - -uniform Texture1D g_tTex1df4 : register(t0); -Texture1D g_tTex1di4; -Texture1D g_tTex1du4; - -Texture2D g_tTex2df4; -Texture2D g_tTex2di4; -Texture2D g_tTex2du4; - -Texture3D g_tTex3df4; -Texture3D g_tTex3di4; -Texture3D g_tTex3du4; - -TextureCube g_tTexcdf4; -TextureCube g_tTexcdi4; -TextureCube g_tTexcdu4; - -Texture1DArray g_tTex1df4a; -Texture1DArray g_tTex1di4a; -Texture1DArray g_tTex1du4a; - -Texture2DArray g_tTex2df4a; -Texture2DArray g_tTex2di4a; -Texture2DArray g_tTex2du4a; - -TextureCubeArray g_tTexcdf4a; -TextureCubeArray g_tTexcdi4a; -TextureCubeArray g_tTexcdu4a; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - // 1DArray - float r11 = g_tTex1df4a . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75, 2); - float r13 = g_tTex1di4a . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75, 2); - float r15 = g_tTex1du4a . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75, 2); - - // 2DArray - float r31 = g_tTex2df4a . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3)); - float r33 = g_tTex2di4a . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3)); - float r35 = g_tTex2du4a . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3)); - - // *** There's no SampleCmpLevelZero on 3D textures - - // This page: https://msdn.microsoft.com/en-us/library/windows/desktop/bb509696(v=vs.85).aspx - // claims offset is supported for cube textures, but FXC does not accept it, and that does - // not match other methods, so it may be a documentation bug. Those lines are commented - // out below. - - // CubeArray - // float r61 = g_tTexcdf4a . SampleCmpLevelZero(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75, int3(2,3,4)); - // float r63 = g_tTexcdi4a . SampleCmpLevelZero(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75, int3(2,3,4)); - // float r65 = g_tTexcdu4a . SampleCmpLevelZero(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75, int3(2,3,4)); - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.samplegrad.array.dx10.frag b/deps/glslang/Test/hlsl.samplegrad.array.dx10.frag deleted file mode 100644 index c442b7f8..00000000 --- a/deps/glslang/Test/hlsl.samplegrad.array.dx10.frag +++ /dev/null @@ -1,43 +0,0 @@ -SamplerState g_sSamp : register(s0); - -Texture1DArray g_tTex1df4a : register(t1); - -uniform Texture1DArray g_tTex1df4 : register(t0); -Texture1DArray g_tTex1di4; -Texture1DArray g_tTex1du4; - -Texture2DArray g_tTex2df4; -Texture2DArray g_tTex2di4; -Texture2DArray g_tTex2du4; - -TextureCubeArray g_tTexcdf4; -TextureCubeArray g_tTexcdi4; -TextureCubeArray g_tTexcdu4; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - float4 txval10 = g_tTex1df4 . SampleGrad(g_sSamp, float2(0.1, 0.2), 1.1, 1.2); - int4 txval11 = g_tTex1di4 . SampleGrad(g_sSamp, float2(0.1, 0.2), 1.1, 1.2); - uint4 txval12 = g_tTex1du4 . SampleGrad(g_sSamp, float2(0.1, 0.2), 1.1, 1.2); - - float4 txval20 = g_tTex2df4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float2(1.1, 1.2), float2(1.1, 1.2)); - int4 txval21 = g_tTex2di4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float2(1.1, 1.2), float2(1.1, 1.2)); - uint4 txval22 = g_tTex2du4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float2(1.1, 1.2), float2(1.1, 1.2)); - - float4 txval40 = g_tTexcdf4 . SampleGrad(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); - int4 txval41 = g_tTexcdi4 . SampleGrad(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); - uint4 txval42 = g_tTexcdu4 . SampleGrad(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.samplegrad.basic.dx10.frag b/deps/glslang/Test/hlsl.samplegrad.basic.dx10.frag deleted file mode 100644 index 84236f2a..00000000 --- a/deps/glslang/Test/hlsl.samplegrad.basic.dx10.frag +++ /dev/null @@ -1,51 +0,0 @@ -SamplerState g_sSamp : register(s0); - -Texture1D g_tTex1df4a : register(t1); - -uniform Texture1D g_tTex1df4 : register(t0); -Texture1D g_tTex1di4; -Texture1D g_tTex1du4; - -Texture2D g_tTex2df4; -Texture2D g_tTex2di4; -Texture2D g_tTex2du4; - -Texture3D g_tTex3df4; -Texture3D g_tTex3di4; -Texture3D g_tTex3du4; - -TextureCube g_tTexcdf4; -TextureCube g_tTexcdi4; -TextureCube g_tTexcdu4; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - float4 txval10 = g_tTex1df4 . SampleGrad(g_sSamp, 0.1, 1.1, 1.2); - int4 txval11 = g_tTex1di4 . SampleGrad(g_sSamp, 0.2, 1.1, 1.2); - uint4 txval12 = g_tTex1du4 . SampleGrad(g_sSamp, 0.3, 1.1, 1.2); - - float4 txval20 = g_tTex2df4 . SampleGrad(g_sSamp, float2(0.1, 0.2), float2(1.1, 1.2), float2(1.1, 1.2)); - int4 txval21 = g_tTex2di4 . SampleGrad(g_sSamp, float2(0.3, 0.4), float2(1.1, 1.2), float2(1.1, 1.2)); - uint4 txval22 = g_tTex2du4 . SampleGrad(g_sSamp, float2(0.5, 0.6), float2(1.1, 1.2), float2(1.1, 1.2)); - - float4 txval30 = g_tTex3df4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); - int4 txval31 = g_tTex3di4 . SampleGrad(g_sSamp, float3(0.4, 0.5, 0.6), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); - uint4 txval32 = g_tTex3du4 . SampleGrad(g_sSamp, float3(0.7, 0.8, 0.9), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); - - float4 txval40 = g_tTexcdf4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); - int4 txval41 = g_tTexcdi4 . SampleGrad(g_sSamp, float3(0.4, 0.5, 0.6), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); - uint4 txval42 = g_tTexcdu4 . SampleGrad(g_sSamp, float3(0.7, 0.8, 0.9), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.samplegrad.basic.dx10.vert b/deps/glslang/Test/hlsl.samplegrad.basic.dx10.vert deleted file mode 100644 index 43ec6213..00000000 --- a/deps/glslang/Test/hlsl.samplegrad.basic.dx10.vert +++ /dev/null @@ -1,49 +0,0 @@ -SamplerState g_sSamp : register(s0); - -Texture1D g_tTex1df4a : register(t1); - -uniform Texture1D g_tTex1df4 : register(t0); -Texture1D g_tTex1di4; -Texture1D g_tTex1du4; - -Texture2D g_tTex2df4; -Texture2D g_tTex2di4; -Texture2D g_tTex2du4; - -Texture3D g_tTex3df4; -Texture3D g_tTex3di4; -Texture3D g_tTex3du4; - -TextureCube g_tTexcdf4; -TextureCube g_tTexcdi4; -TextureCube g_tTexcdu4; - -struct VS_OUTPUT -{ - float4 Pos : SV_Position; -}; - -VS_OUTPUT main() -{ - VS_OUTPUT vsout; - - float4 txval10 = g_tTex1df4 . SampleGrad(g_sSamp, 0.1, 1.1, 1.2); - int4 txval11 = g_tTex1di4 . SampleGrad(g_sSamp, 0.2, 1.1, 1.2); - uint4 txval12 = g_tTex1du4 . SampleGrad(g_sSamp, 0.3, 1.1, 1.2); - - float4 txval20 = g_tTex2df4 . SampleGrad(g_sSamp, float2(0.1, 0.2), float2(1.1, 1.2), float2(1.1, 1.2)); - int4 txval21 = g_tTex2di4 . SampleGrad(g_sSamp, float2(0.3, 0.4), float2(1.1, 1.2), float2(1.1, 1.2)); - uint4 txval22 = g_tTex2du4 . SampleGrad(g_sSamp, float2(0.5, 0.6), float2(1.1, 1.2), float2(1.1, 1.2)); - - float4 txval30 = g_tTex3df4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); - int4 txval31 = g_tTex3di4 . SampleGrad(g_sSamp, float3(0.4, 0.5, 0.6), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); - uint4 txval32 = g_tTex3du4 . SampleGrad(g_sSamp, float3(0.7, 0.8, 0.9), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); - - float4 txval40 = g_tTexcdf4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); - int4 txval41 = g_tTexcdi4 . SampleGrad(g_sSamp, float3(0.4, 0.5, 0.6), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); - uint4 txval42 = g_tTexcdu4 . SampleGrad(g_sSamp, float3(0.7, 0.8, 0.9), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); - - vsout.Pos = float4(0,0,0,0); - - return vsout; -} diff --git a/deps/glslang/Test/hlsl.samplegrad.offset.dx10.frag b/deps/glslang/Test/hlsl.samplegrad.offset.dx10.frag deleted file mode 100644 index c643be25..00000000 --- a/deps/glslang/Test/hlsl.samplegrad.offset.dx10.frag +++ /dev/null @@ -1,49 +0,0 @@ -SamplerState g_sSamp : register(s0); - -Texture1D g_tTex1df4a : register(t1); - -uniform Texture1D g_tTex1df4 : register(t0); -Texture1D g_tTex1di4; -Texture1D g_tTex1du4; - -Texture2D g_tTex2df4; -Texture2D g_tTex2di4; -Texture2D g_tTex2du4; - -Texture3D g_tTex3df4; -Texture3D g_tTex3di4; -Texture3D g_tTex3du4; - -TextureCube g_tTexcdf4; -TextureCube g_tTexcdi4; -TextureCube g_tTexcdu4; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - float4 txval10 = g_tTex1df4 . SampleGrad(g_sSamp, 0.1, 1.1, 1.2, 1); - int4 txval11 = g_tTex1di4 . SampleGrad(g_sSamp, 0.2, 1.1, 1.2, 1); - uint4 txval12 = g_tTex1du4 . SampleGrad(g_sSamp, 0.3, 1.1, 1.2, 1); - - float4 txval20 = g_tTex2df4 . SampleGrad(g_sSamp, float2(0.1, 0.2), float2(0.1, 0.2), float2(1.1, 1.2), int2(1,0)); - int4 txval21 = g_tTex2di4 . SampleGrad(g_sSamp, float2(0.3, 0.4), float2(0.1, 0.2), float2(1.1, 1.2), int2(1,1)); - uint4 txval22 = g_tTex2du4 . SampleGrad(g_sSamp, float2(0.5, 0.6), float2(0.1, 0.2), float2(1.1, 1.2), int2(1,-1)); - - float4 txval30 = g_tTex3df4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3), int3(1,0,1)); - int4 txval31 = g_tTex3di4 . SampleGrad(g_sSamp, float3(0.4, 0.5, 0.6), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3), int3(1,1,1)); - uint4 txval32 = g_tTex3du4 . SampleGrad(g_sSamp, float3(0.7, 0.8, 0.9), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3), int3(1,0,-1)); - - // There are no offset forms of cube textures, so we do not test them. - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.samplegrad.offsetarray.dx10.frag b/deps/glslang/Test/hlsl.samplegrad.offsetarray.dx10.frag deleted file mode 100644 index 3adcd184..00000000 --- a/deps/glslang/Test/hlsl.samplegrad.offsetarray.dx10.frag +++ /dev/null @@ -1,39 +0,0 @@ -SamplerState g_sSamp : register(s0); - -Texture1DArray g_tTex1df4a : register(t1); - -uniform Texture1DArray g_tTex1df4 : register(t0); -Texture1DArray g_tTex1di4; -Texture1DArray g_tTex1du4; - -Texture2DArray g_tTex2df4; -Texture2DArray g_tTex2di4; -Texture2DArray g_tTex2du4; - -TextureCubeArray g_tTexcdf4; -TextureCubeArray g_tTexcdi4; -TextureCubeArray g_tTexcdu4; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - float4 txval10 = g_tTex1df4 . SampleGrad(g_sSamp, float2(0.1, 0.2), 1.1, 1.2, 1); - int4 txval11 = g_tTex1di4 . SampleGrad(g_sSamp, float2(0.1, 0.2), 1.1, 1.2, 1); - uint4 txval12 = g_tTex1du4 . SampleGrad(g_sSamp, float2(0.1, 0.2), 1.1, 1.2, 1); - - float4 txval20 = g_tTex2df4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float2(1.1, 1.2), float2(1.1, 1.2), int2(1,0)); - int4 txval21 = g_tTex2di4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float2(1.1, 1.2), float2(1.1, 1.2), int2(1,0)); - uint4 txval22 = g_tTex2du4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float2(1.1, 1.2), float2(1.1, 1.2), int2(1,0)); - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.samplelevel.array.dx10.frag b/deps/glslang/Test/hlsl.samplelevel.array.dx10.frag deleted file mode 100644 index c52aeb29..00000000 --- a/deps/glslang/Test/hlsl.samplelevel.array.dx10.frag +++ /dev/null @@ -1,43 +0,0 @@ -SamplerState g_sSamp : register(s0); - -Texture1DArray g_tTex1df4a : register(t1); - -uniform Texture1DArray g_tTex1df4 : register(t0); -Texture1DArray g_tTex1di4a; -Texture1DArray g_tTex1du4a; - -Texture2DArray g_tTex2df4a; -Texture2DArray g_tTex2di4a; -Texture2DArray g_tTex2du4a; - -TextureCubeArray g_tTexcdf4a; -TextureCubeArray g_tTexcdi4a; -TextureCubeArray g_tTexcdu4a; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - float4 txval10 = g_tTex1df4a . SampleLevel(g_sSamp, float2(0.1, 0.2), 0.75); - int4 txval11 = g_tTex1di4a . SampleLevel(g_sSamp, float2(0.2, 0.3), 0.75); - uint4 txval12 = g_tTex1du4a . SampleLevel(g_sSamp, float2(0.3, 0.4), 0.75); - - float4 txval20 = g_tTex2df4a . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); - int4 txval21 = g_tTex2di4a . SampleLevel(g_sSamp, float3(0.3, 0.4, 0.5), 0.75); - uint4 txval22 = g_tTex2du4a . SampleLevel(g_sSamp, float3(0.5, 0.6, 0.7), 0.75); - - float4 txval40 = g_tTexcdf4a . SampleLevel(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75); - int4 txval41 = g_tTexcdi4a . SampleLevel(g_sSamp, float4(0.4, 0.5, 0.6, 0.7), 0.75); - uint4 txval42 = g_tTexcdu4a . SampleLevel(g_sSamp, float4(0.7, 0.8, 0.9, 1.0), 0.75); - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.samplelevel.basic.dx10.frag b/deps/glslang/Test/hlsl.samplelevel.basic.dx10.frag deleted file mode 100644 index fb363ae8..00000000 --- a/deps/glslang/Test/hlsl.samplelevel.basic.dx10.frag +++ /dev/null @@ -1,52 +0,0 @@ -SamplerState g_sSamp : register(s0); -uniform sampler2D g_sSamp2d; - -Texture1D g_tTex1df4a : register(t1); - -uniform Texture1D g_tTex1df4 : register(t0); -Texture1D g_tTex1di4; -Texture1D g_tTex1du4; - -Texture2D g_tTex2df4; -Texture2D g_tTex2di4; -Texture2D g_tTex2du4; - -Texture3D g_tTex3df4; -Texture3D g_tTex3di4; -Texture3D g_tTex3du4; - -TextureCube g_tTexcdf4; -TextureCube g_tTexcdi4; -TextureCube g_tTexcdu4; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - float4 txval10 = g_tTex1df4 . SampleLevel(g_sSamp, 0.1, 0.75); - int4 txval11 = g_tTex1di4 . SampleLevel(g_sSamp, 0.2, 0.75); - uint4 txval12 = g_tTex1du4 . SampleLevel(g_sSamp, 0.3, 0.75); - - float4 txval20 = g_tTex2df4 . SampleLevel(g_sSamp, float2(0.1, 0.2), 0.75); - int4 txval21 = g_tTex2di4 . SampleLevel(g_sSamp, float2(0.3, 0.4), 0.75); - uint4 txval22 = g_tTex2du4 . SampleLevel(g_sSamp, float2(0.5, 0.6), 0.75); - - float4 txval30 = g_tTex3df4 . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); - int4 txval31 = g_tTex3di4 . SampleLevel(g_sSamp, float3(0.4, 0.5, 0.6), 0.75); - uint4 txval32 = g_tTex3du4 . SampleLevel(g_sSamp, float3(0.7, 0.8, 0.9), 0.75); - - float4 txval40 = g_tTexcdf4 . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); - int4 txval41 = g_tTexcdi4 . SampleLevel(g_sSamp, float3(0.4, 0.5, 0.6), 0.75); - uint4 txval42 = g_tTexcdu4 . SampleLevel(g_sSamp, float3(0.7, 0.8, 0.9), 0.75); - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.samplelevel.basic.dx10.vert b/deps/glslang/Test/hlsl.samplelevel.basic.dx10.vert deleted file mode 100644 index 03febcff..00000000 --- a/deps/glslang/Test/hlsl.samplelevel.basic.dx10.vert +++ /dev/null @@ -1,49 +0,0 @@ -SamplerState g_sSamp : register(s0); - -Texture1D g_tTex1df4a : register(t1); - -uniform Texture1D g_tTex1df4 : register(t0); -Texture1D g_tTex1di4; -Texture1D g_tTex1du4; - -Texture2D g_tTex2df4; -Texture2D g_tTex2di4; -Texture2D g_tTex2du4; - -Texture3D g_tTex3df4; -Texture3D g_tTex3di4; -Texture3D g_tTex3du4; - -TextureCube g_tTexcdf4; -TextureCube g_tTexcdi4; -TextureCube g_tTexcdu4; - -struct VS_OUTPUT -{ - float4 Pos : SV_Position; -}; - -VS_OUTPUT main() -{ - VS_OUTPUT vsout; - - float4 txval10 = g_tTex1df4 . SampleLevel(g_sSamp, 0.1, 0.75); - int4 txval11 = g_tTex1di4 . SampleLevel(g_sSamp, 0.2, 0.75); - uint4 txval12 = g_tTex1du4 . SampleLevel(g_sSamp, 0.3, 0.75); - - float4 txval20 = g_tTex2df4 . SampleLevel(g_sSamp, float2(0.1, 0.2), 0.75); - int4 txval21 = g_tTex2di4 . SampleLevel(g_sSamp, float2(0.3, 0.4), 0.75); - uint4 txval22 = g_tTex2du4 . SampleLevel(g_sSamp, float2(0.5, 0.6), 0.75); - - float4 txval30 = g_tTex3df4 . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); - int4 txval31 = g_tTex3di4 . SampleLevel(g_sSamp, float3(0.4, 0.5, 0.6), 0.75); - uint4 txval32 = g_tTex3du4 . SampleLevel(g_sSamp, float3(0.7, 0.8, 0.9), 0.75); - - float4 txval40 = g_tTexcdf4 . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); - int4 txval41 = g_tTexcdi4 . SampleLevel(g_sSamp, float3(0.4, 0.5, 0.6), 0.75); - uint4 txval42 = g_tTexcdu4 . SampleLevel(g_sSamp, float3(0.7, 0.8, 0.9), 0.75); - - vsout.Pos = float4(0,0,0,0); - - return vsout; -} diff --git a/deps/glslang/Test/hlsl.samplelevel.offset.dx10.frag b/deps/glslang/Test/hlsl.samplelevel.offset.dx10.frag deleted file mode 100644 index 14906116..00000000 --- a/deps/glslang/Test/hlsl.samplelevel.offset.dx10.frag +++ /dev/null @@ -1,49 +0,0 @@ -SamplerState g_sSamp : register(s0); - -Texture1D g_tTex1df4a : register(t1); - -uniform Texture1D g_tTex1df4 : register(t0); -Texture1D g_tTex1di4; -Texture1D g_tTex1du4; - -Texture2D g_tTex2df4; -Texture2D g_tTex2di4; -Texture2D g_tTex2du4; - -Texture3D g_tTex3df4; -Texture3D g_tTex3di4; -Texture3D g_tTex3du4; - -TextureCube g_tTexcdf4; -TextureCube g_tTexcdi4; -TextureCube g_tTexcdu4; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - float4 txval10 = g_tTex1df4 . SampleLevel(g_sSamp, 0.1, 0.75, 1); - int4 txval11 = g_tTex1di4 . SampleLevel(g_sSamp, 0.2, 0.75, 1); - uint4 txval12 = g_tTex1du4 . SampleLevel(g_sSamp, 0.3, 0.75, 1); - - float4 txval20 = g_tTex2df4 . SampleLevel(g_sSamp, float2(0.1, 0.2), 0.75, int2(1,0)); - int4 txval21 = g_tTex2di4 . SampleLevel(g_sSamp, float2(0.3, 0.4), 0.75, int2(1,1)); - uint4 txval22 = g_tTex2du4 . SampleLevel(g_sSamp, float2(0.5, 0.6), 0.75, int2(1,-1)); - - float4 txval30 = g_tTex3df4 . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int3(1,0,1)); - int4 txval31 = g_tTex3di4 . SampleLevel(g_sSamp, float3(0.4, 0.5, 0.6), 0.75, int3(1,1,1)); - uint4 txval32 = g_tTex3du4 . SampleLevel(g_sSamp, float3(0.7, 0.8, 0.9), 0.75, int3(1,0,-1)); - - // There are no offset forms of cube textures, so we do not test them. - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.samplelevel.offsetarray.dx10.frag b/deps/glslang/Test/hlsl.samplelevel.offsetarray.dx10.frag deleted file mode 100644 index 5c7bd71a..00000000 --- a/deps/glslang/Test/hlsl.samplelevel.offsetarray.dx10.frag +++ /dev/null @@ -1,37 +0,0 @@ -SamplerState g_sSamp : register(s0); - -Texture1DArray g_tTex1df4a : register(t1); - -uniform Texture1DArray g_tTex1df4 : register(t0); -Texture1DArray g_tTex1di4; -Texture1DArray g_tTex1du4; - -Texture2DArray g_tTex2df4; -Texture2DArray g_tTex2di4; -Texture2DArray g_tTex2du4; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - float4 txval10 = g_tTex1df4 . SampleLevel(g_sSamp, float2(0.1, 0.2), 0.75, 0); - int4 txval11 = g_tTex1di4 . SampleLevel(g_sSamp, float2(0.2, 0.3), 0.75, 1); - uint4 txval12 = g_tTex1du4 . SampleLevel(g_sSamp, float2(0.3, 0.4), 0.75, 2); - - float4 txval20 = g_tTex2df4 . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(0,0)); - int4 txval21 = g_tTex2di4 . SampleLevel(g_sSamp, float3(0.3, 0.4, 0.5), 0.75, int2(0,0)); - uint4 txval22 = g_tTex2du4 . SampleLevel(g_sSamp, float3(0.5, 0.6, 0.7), 0.75, int2(0,1)); - - // No offset array forms for 3D or cube - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.scalar-length.frag b/deps/glslang/Test/hlsl.scalar-length.frag deleted file mode 100644 index 2b7ebdb9..00000000 --- a/deps/glslang/Test/hlsl.scalar-length.frag +++ /dev/null @@ -1,6 +0,0 @@ -float4 main() : SV_Target0 -{ - float4 test = { 0, 1, 2, 3 }; - - return length(test.a); -} diff --git a/deps/glslang/Test/hlsl.scalar2matrix.frag b/deps/glslang/Test/hlsl.scalar2matrix.frag deleted file mode 100644 index 40688757..00000000 --- a/deps/glslang/Test/hlsl.scalar2matrix.frag +++ /dev/null @@ -1,28 +0,0 @@ - -void Fn1(float4x4 p) { } - -float4 main() : SV_TARGET -{ - const float4x4 mat1c = 0.20; - const float4x4 mat2c = {2, 2.1, 2.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - const float4x4 mat3c = (float4x4)float1(0.1); - - float4x4 mat1 = 0.25; - float4x4 mat2 = {3, 3.1, 3.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - float4x4 mat3 = (float4x4)0.375; - // float4x4 mat5 = (float4x4)Fn2(); // TODO: enable when compex rvalue handling is in place - - float4x4 mat4; - mat4 = 0.75; - mat4 = float4x4(4, 4.1, 4.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); - mat4 = (float4x4)0.5; - - mat4 *= 0.75; - mat4 += 0.75; - mat4 -= 0.5; - mat4 /= 2.0; - - Fn1(5.0); // test calling fn accepting matrix with scalar type - - return mat1c[0] + mat3c[0] + mat1[1] + mat4[2]; -} diff --git a/deps/glslang/Test/hlsl.scalarCast.vert b/deps/glslang/Test/hlsl.scalarCast.vert deleted file mode 100644 index 83bfd6eb..00000000 --- a/deps/glslang/Test/hlsl.scalarCast.vert +++ /dev/null @@ -1,37 +0,0 @@ -struct VertexOut { - float4 position : SV_Position; - float2 texCoord : TEXCOORD; -}; -VertexOut r0() { - const float f = 2.0; - return (VertexOut)f; -} -VertexOut r1() { - const float f = 2.0; - return (VertexOut)(f + 1.0); -} -VertexOut r2() { - const float f = 2.0; - return (VertexOut)(sin(f)); -} -VertexOut r3() { - float f = 2.0; - return (VertexOut)f; -} -VertexOut r4() { - float f = 2.0; - return (VertexOut)(f + 1.0); -} -VertexOut r5() { - float f = 2.0; - return (VertexOut)(sin(f)); -} -VertexOut main() { - VertexOut v0 = r0(); - VertexOut v1 = r1(); - VertexOut v2 = r2(); - VertexOut v3 = r3(); - VertexOut v4 = r4(); - VertexOut v5 = r5(); - return (VertexOut)1; -} diff --git a/deps/glslang/Test/hlsl.scope.frag b/deps/glslang/Test/hlsl.scope.frag deleted file mode 100644 index a5309ca2..00000000 --- a/deps/glslang/Test/hlsl.scope.frag +++ /dev/null @@ -1,30 +0,0 @@ -void PixelShaderFunction(float4 input) : COLOR0 -{ - int x; - x; - { - float x; - x; - { - bool x; - x; - { - float3 x; - x; - } - x; - } - x; - } - x; - - if (x > 0) - bool x; - - while (x > 0) - bool x; - - do { - bool x; - } while (x > 0); -} diff --git a/deps/glslang/Test/hlsl.self_cast.frag b/deps/glslang/Test/hlsl.self_cast.frag deleted file mode 100644 index 8ef40270..00000000 --- a/deps/glslang/Test/hlsl.self_cast.frag +++ /dev/null @@ -1,25 +0,0 @@ -struct Test0 {}; -struct Test1 { float f; }; - -void main() -{ - { - Test0 a; - Test0 b = (Test0)a; - } - - { - Test1 a; - Test1 b = (Test1)a; - } - - { - Test0 a[2]; - Test0 b[2] = (Test0[2])a; - } - - { - Test1 a[2]; - Test1 b[2] = (Test1[2])a; - } -} diff --git a/deps/glslang/Test/hlsl.semantic-1.vert b/deps/glslang/Test/hlsl.semantic-1.vert deleted file mode 100644 index ec92428c..00000000 --- a/deps/glslang/Test/hlsl.semantic-1.vert +++ /dev/null @@ -1,24 +0,0 @@ -#define DLAYER 3 - -#define DMACRO1 TEXCOORD1 -#define DMACRO(num) TEXCOORD##num - -struct S { - float4 pos : POSITION; - float2 UV0 : TEXCOORD0; - float2 UV1 : DMACRO1; - float2 UV2 : DMACRO(2); - float2 UV3 : DMACRO(DLAYER); -}; - - -S main(float4 v : POSITION) -{ - S s; - s.pos = v; - s.UV0 = float2(v.x,v.x); - s.UV1 = float2(v.y,v.y); - s.UV2 = float2(v.z,v.z); - s.UV3 = float2(v.w,v.w); - return s; -} diff --git a/deps/glslang/Test/hlsl.semantic.geom b/deps/glslang/Test/hlsl.semantic.geom deleted file mode 100644 index 9e0ed4ce..00000000 --- a/deps/glslang/Test/hlsl.semantic.geom +++ /dev/null @@ -1,24 +0,0 @@ -struct S { - float clip0 : SV_Position; - float clip0 : SV_ClipDistance0; - float cull0 : SV_CullDistance0; - uint vpai : SV_ViewportArrayIndex; - uint rtai : SV_RenderTargetArrayIndex; - int ii : SV_InstanceID; -}; - -[maxvertexcount(4)] -void main(triangle in uint VertexID[3] : VertexID, - inout LineStream OutputStream) -{ - S s; - OutputStream.Append(s); -} - -[maxvertexcount(4)] -void notmain(line in uint VertexID[2] : VertexID, - inout LineStream OutputStream) -{ - S s; - OutputStream.Append(s); -} diff --git a/deps/glslang/Test/hlsl.semantic.vert b/deps/glslang/Test/hlsl.semantic.vert deleted file mode 100644 index 1845dc3c..00000000 --- a/deps/glslang/Test/hlsl.semantic.vert +++ /dev/null @@ -1,13 +0,0 @@ -struct S { - float clip0 : SV_ClipDistance0; - float clip1 : SV_ClipDistance1; - float cull0 : SV_CullDistance0; - float cull1 : SV_CullDistance1; - int ii : SV_InstanceID; -}; - -S main(S ins) -{ - S s; - return s; -} diff --git a/deps/glslang/Test/hlsl.semicolons.frag b/deps/glslang/Test/hlsl.semicolons.frag deleted file mode 100644 index 28fdedd9..00000000 --- a/deps/glslang/Test/hlsl.semicolons.frag +++ /dev/null @@ -1,19 +0,0 @@ - -void MyFunc() { } - -;;; -; -; ; ; // HLSL allows stray global scope semicolons. - -void MyFunc2() {;;;}; - -struct PS_OUTPUT { float4 color : SV_Target0; };;;;; - -;PS_OUTPUT main() -{ - PS_OUTPUT ps_output;;; - ; - ps_output.color = 1.0; - return ps_output; -}; - diff --git a/deps/glslang/Test/hlsl.shapeConv.frag b/deps/glslang/Test/hlsl.shapeConv.frag deleted file mode 100644 index bc09d80a..00000000 --- a/deps/glslang/Test/hlsl.shapeConv.frag +++ /dev/null @@ -1,49 +0,0 @@ -float4 PixelShaderFunction(float4 input, float f) : COLOR0 -{ - float4 v; - v = 1; - v = 2.0; - v = f; - float3 u; - u = float(1); - u = float(2.0); - u = float(f); - float2 w = 2.0; - float V = 1; - float3 MyVal = V; - - float3 foo; - foo > 4.0; - foo >= 5.0; - 6.0 < foo; - 7.0 <= foo; - - all(v.x == v); - any(f != v); - - float1 f1; - - f1 == v; - v < f1; - f1.x; - f1.xxx; - - const float4 f4 = 3.0; - - uint ui; - uint3 ui3; - - ui >> ui3; - ui3 >> ui; - - v *= f1; - f1 *= v; - - float3 mixed = u * v; - f = u; - f1 = u; - float sf = v; - float1 sf1 = v; - - return input * f4; -} diff --git a/deps/glslang/Test/hlsl.shapeConvRet.frag b/deps/glslang/Test/hlsl.shapeConvRet.frag deleted file mode 100644 index 7d775582..00000000 --- a/deps/glslang/Test/hlsl.shapeConvRet.frag +++ /dev/null @@ -1,9 +0,0 @@ -int3 foo() -{ - return 13; -} - -float4 main(float f) -{ - return f; -} diff --git a/deps/glslang/Test/hlsl.shift.per-set.frag b/deps/glslang/Test/hlsl.shift.per-set.frag deleted file mode 100644 index d7c0243e..00000000 --- a/deps/glslang/Test/hlsl.shift.per-set.frag +++ /dev/null @@ -1,60 +0,0 @@ -// Test register class offsets for different resource types - -SamplerState s1 : register(s1, space1); -SamplerComparisonState s2 : register(s2, space2); - -Texture1D t1 : register(t1, space1); -Texture2D t2 : register(t2, space1); -Texture3D t3 : register(t1, space2); -Texture3D ts6 : register(t1, space6); -StructuredBuffer t4 : register(t1, space3); - -ByteAddressBuffer t5 : register(t2, space3); -Buffer t6 : register(t3, space3); - -RWTexture1D u1 : register(u1, space1); -RWTexture2D u2 : register(u2, space2); -RWTexture3D u3 : register(u3, space2); - -RWBuffer u4 : register(u4, space1); -RWByteAddressBuffer u5 : register(u4, space2); -RWStructuredBuffer u6 : register(u4, space3); -AppendStructuredBuffer u7 : register(u4, space4); -ConsumeStructuredBuffer u8 : register(u4, space5); - -cbuffer cb : register(b1, space6) { - int cb1; -}; - -tbuffer tb : register(t7) { - int tb1; -}; - -float4 main() : SV_Target0 -{ - t1; - t2; - t3; - t4[0]; - t5.Load(0); - t6; - - s1; - s2; - - u1; - u2; - u3; - - u4[0]; - u5.Load(0); - u6[0]; - u7; - u8; - - cb1; - tb1; - ts6; - - return 0; -} diff --git a/deps/glslang/Test/hlsl.sin.frag b/deps/glslang/Test/hlsl.sin.frag deleted file mode 100644 index edf087de..00000000 --- a/deps/glslang/Test/hlsl.sin.frag +++ /dev/null @@ -1,4 +0,0 @@ -float4 PixelShaderFunction(float4 input) : COLOR0 -{ - return sin(input); -} diff --git a/deps/glslang/Test/hlsl.singleArgIntPromo.vert b/deps/glslang/Test/hlsl.singleArgIntPromo.vert deleted file mode 100644 index 5c99a38c..00000000 --- a/deps/glslang/Test/hlsl.singleArgIntPromo.vert +++ /dev/null @@ -1,16 +0,0 @@ -float main(): SV_Target0 -{ - int d = 4; - int2 d2 = int2(5,d); - float f1 = log2(5); - float2 f2 = log(d2); - float3 f3 = log(int3(7,2,3)); - float2 f22 = log(int2(5,d)); // This case does not work yet, due to a different bug that turns this into 2 args. - - int a = 5; - min16float b = min16float(f16tof32(a)); - b *= b; - uint c = f32tof16(b); - - return f1 + f2.x + f3.z + f22.y + c; -} \ No newline at end of file diff --git a/deps/glslang/Test/hlsl.snorm.uav.comp b/deps/glslang/Test/hlsl.snorm.uav.comp deleted file mode 100644 index c6cafebe..00000000 --- a/deps/glslang/Test/hlsl.snorm.uav.comp +++ /dev/null @@ -1,15 +0,0 @@ - -unorm float4 uf4; - -Texture3D ResultInU: register(t0); -RWTexture3D ResultOutU: register(u0); - -Texture3D ResultInS: register(t1); -RWTexture3D ResultOutS: register(u1); - -[numthreads(16, 16, 1)] -void main(uint3 tid: SV_DispatchThreadID) -{ - ResultOutS[tid] = ResultInS[tid] + uf4; - ResultOutU[tid] = ResultInU[tid]; -} diff --git a/deps/glslang/Test/hlsl.specConstant.frag b/deps/glslang/Test/hlsl.specConstant.frag deleted file mode 100644 index ab2a815e..00000000 --- a/deps/glslang/Test/hlsl.specConstant.frag +++ /dev/null @@ -1,15 +0,0 @@ -[[vk::constant_id(0)]] const uint index = 2; - -static const uint array[] = { 10, 20, 30, 40 }; - -float4 main( ) : SV_TARGET -{ - float4 r; - for(uint i = 0; i < array[index]; i++) - r = i; - - r += index + index; - r += 2 * index; - - return r; -} diff --git a/deps/glslang/Test/hlsl.spv.1.6.discard.frag b/deps/glslang/Test/hlsl.spv.1.6.discard.frag deleted file mode 100644 index 7d9271c9..00000000 --- a/deps/glslang/Test/hlsl.spv.1.6.discard.frag +++ /dev/null @@ -1,14 +0,0 @@ -void foo(float f) -{ - if (f < 1.0) - discard; -} - -void PixelShaderFunction(float4 input) : COLOR0 -{ - foo(input.z); - if (input.x) - discard; - float f = input.x; - discard; -} diff --git a/deps/glslang/Test/hlsl.staticFuncInit.frag b/deps/glslang/Test/hlsl.staticFuncInit.frag deleted file mode 100644 index f61c5661..00000000 --- a/deps/glslang/Test/hlsl.staticFuncInit.frag +++ /dev/null @@ -1,20 +0,0 @@ -static float x = 1.0; - -float f1() -{ - static float x = 2.0; - x += 10.0; - return x; -} - -float f2(float p) -{ - static float x = 7.0; - x += p; - return x; -} - -float4 main() : SV_TARGET -{ - return x + f1() + f1() + f2(5.0) + f2(x); -} diff --git a/deps/glslang/Test/hlsl.staticMemberFunction.frag b/deps/glslang/Test/hlsl.staticMemberFunction.frag deleted file mode 100644 index 700aa82c..00000000 --- a/deps/glslang/Test/hlsl.staticMemberFunction.frag +++ /dev/null @@ -1,22 +0,0 @@ -struct Test -{ - float4 memVar; - static float4 staticMemFun(float4 a) : SV_Position - { - return 2 * a; - } - static int staticMemFun(int a) : SV_Position - { - return 2 + a; - } - int i; -}; - -float4 main() : SV_Target0 -{ - Test test; - float4 f4 = float4(1.0,1.0,1.0,1.0); - f4 += Test::staticMemFun(float4(5.0f,5.0f,5.0f,5.0f)); - f4 += Test::staticMemFun(7); - return f4; -} diff --git a/deps/glslang/Test/hlsl.store.rwbyteaddressbuffer.type.comp b/deps/glslang/Test/hlsl.store.rwbyteaddressbuffer.type.comp deleted file mode 100644 index 5400d81f..00000000 --- a/deps/glslang/Test/hlsl.store.rwbyteaddressbuffer.type.comp +++ /dev/null @@ -1,8 +0,0 @@ -RWByteAddressBuffer buffer; - -[numthreads(64, 1, 1)] -void main( uint3 dispatchThreadID : SV_DispatchThreadID) -{ - if(dispatchThreadID.x == 0) - buffer.Store(0, 2); -} \ No newline at end of file diff --git a/deps/glslang/Test/hlsl.string.frag b/deps/glslang/Test/hlsl.string.frag deleted file mode 100644 index 572e73b7..00000000 --- a/deps/glslang/Test/hlsl.string.frag +++ /dev/null @@ -1,12 +0,0 @@ -string s = "string1"; -string e = ""; -string bracket < string a = "nested" ; > ; -string brackets < string b = "nest1" ; string c = "nest2" ; float test [ 4 ] = { 1.0 , 1.0 , 1.0 , 1.0 } ; vector a = float3(2.0); > ; -string brackete1 < > ; -string brackete2 < ; > ; -string brackete3 < ; ; > ; - -float main(float f) -{ - return f; -} \ No newline at end of file diff --git a/deps/glslang/Test/hlsl.stringtoken.frag b/deps/glslang/Test/hlsl.stringtoken.frag deleted file mode 100644 index fe785e6d..00000000 --- a/deps/glslang/Test/hlsl.stringtoken.frag +++ /dev/null @@ -1,20 +0,0 @@ - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; -}; - -Texture2D TestTexture < - string TestAttribute1 = "TestAttribute"; - string TestAttribute2 = "false"; - int TestAttribute3 = 3; ->; - -uniform float4 TestUF ; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - psout.Color = float4(0,0,0,1); - return psout; -} diff --git a/deps/glslang/Test/hlsl.struct.frag b/deps/glslang/Test/hlsl.struct.frag deleted file mode 100644 index 33199e06..00000000 --- a/deps/glslang/Test/hlsl.struct.frag +++ /dev/null @@ -1,53 +0,0 @@ -struct { -}; - -struct { - bool b; -}; - -struct myS { - bool b, c; - float4 a, d; -}; - -myS s1; - -static class { - float4 i; -} s2; - -struct IN_S { - linear float4 a; - nointerpolation bool b; - noperspective centroid float1 c; - sample centroid float2 d; - bool ff1 : SV_IsFrontFace; - bool ff2 : packoffset(c0.y); - bool ff3 : packoffset(c0.y) : register(ps_5_0, s0) ; - float4 ff4 : VPOS : packoffset(c0.y) : register(ps_5_0, s0) ; -}; - -float ff5 : packoffset(c101.y) : register(ps_5_0, s[5]); -float ff6 : packoffset(c102.y) : register(s3[5]); - -struct empty {}; - -struct containEmpty { - empty e; -}; - -float4 PixelShaderFunction(float4 input, IN_S s) : COLOR0 -{ - class FS { - bool3 b3; - } s3; - - s3 == s3; - s2.i = s.ff4; - - containEmpty ce; - empty e; - e = ce.e; - - return input; -} diff --git a/deps/glslang/Test/hlsl.struct.split-1.vert b/deps/glslang/Test/hlsl.struct.split-1.vert deleted file mode 100644 index ce5f51f9..00000000 --- a/deps/glslang/Test/hlsl.struct.split-1.vert +++ /dev/null @@ -1,25 +0,0 @@ - -struct VS_INPUT -{ - int x0_in : foo0; - float4 Pos_in : SV_Position; - int x1_in : foo1; -}; - -struct VS_OUTPUT -{ - int x0_out : foo0; - float4 Pos_out : SV_Position; - int x1_out : foo1; -}; - -VS_OUTPUT main(VS_INPUT vsin, float4 Pos_loose : SV_Position) -{ - VS_OUTPUT vsout; - - vsout.x0_out = vsin.x0_in; - vsout.Pos_out = vsin.Pos_in + Pos_loose; - vsout.x1_out = vsin.x1_in; - - return vsout; -} diff --git a/deps/glslang/Test/hlsl.struct.split.array.geom b/deps/glslang/Test/hlsl.struct.split.array.geom deleted file mode 100644 index 9008df16..00000000 --- a/deps/glslang/Test/hlsl.struct.split.array.geom +++ /dev/null @@ -1,21 +0,0 @@ -struct PSInput -{ - float4 Pos : SV_POSITION; - float2 TexCoord : TEXCOORD; - float3 TerrainPos : TERRAINPOS; - uint VertexID : VertexID; -}; - -typedef PSInput foo_t[2][3]; - -[maxvertexcount(4)] -void main(point uint v[1] : VertexID, inout TriangleStream OutputStream) -{ - foo_t Verts; - - PSInput Out = (PSInput) 0; - - for (int x=0; x<2; ++x) - for (int y=0; y<2; ++y) - Verts[x][y] = Out; -} diff --git a/deps/glslang/Test/hlsl.struct.split.assign.frag b/deps/glslang/Test/hlsl.struct.split.assign.frag deleted file mode 100644 index d9921f30..00000000 --- a/deps/glslang/Test/hlsl.struct.split.assign.frag +++ /dev/null @@ -1,12 +0,0 @@ -struct S { - float f; - float4 pos : SV_Position; -}; - -float4 main(int i, S input[3]) : COLOR0 -{ - S a[3]; - input = a; - - return a[1].pos; -} diff --git a/deps/glslang/Test/hlsl.struct.split.call.vert b/deps/glslang/Test/hlsl.struct.split.call.vert deleted file mode 100644 index 543adebb..00000000 --- a/deps/glslang/Test/hlsl.struct.split.call.vert +++ /dev/null @@ -1,32 +0,0 @@ -// Test passing split structs to functions. - -struct VS_INPUT -{ - int x0_in : foo0; - float4 Pos_in : SV_Position; - int x1_in : foo1; -}; - -struct VS_OUTPUT -{ - int x0_out : foo0; - float4 Pos_out : SV_Position; - int x1_out : foo1; -}; - -void Fn1(VS_INPUT fn1_in, VS_OUTPUT fn1_out) { - fn1_in.Pos_in + fn1_out.Pos_out; -} - -VS_OUTPUT main(VS_INPUT vsin) -{ - VS_OUTPUT vsout; - - vsout.x0_out = vsin.x0_in; - vsout.Pos_out = vsin.Pos_in; - vsout.x1_out = vsin.x1_in; - - Fn1(vsin, vsout); - - return vsout; -} diff --git a/deps/glslang/Test/hlsl.struct.split.nested.geom b/deps/glslang/Test/hlsl.struct.split.nested.geom deleted file mode 100644 index 8bcc5b99..00000000 --- a/deps/glslang/Test/hlsl.struct.split.nested.geom +++ /dev/null @@ -1,34 +0,0 @@ - -struct STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO -{ - float m0_array[2] : mysemA; - int m1 : mysemB; -}; - -struct PS_IN -{ - float4 pos : SV_Position; - float2 tc : TEXCOORD0; - // float c : SV_ClipDistance0; -}; - -struct GS_OUT -{ - PS_IN psIn; - STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO contains_no_builtin_io; -}; - - -[maxvertexcount(3)] -void main(triangle PS_IN tin[3], inout TriangleStream ts ) -{ - GS_OUT o; - - o.psIn.pos = float4(1,2,3,4); - o.psIn.tc = float2(5,6); - o.contains_no_builtin_io.m0_array[0] = 2.3; - o.contains_no_builtin_io.m0_array[1] = 2.3; - o.contains_no_builtin_io.m1 = 2; - - ts.Append(o); -} diff --git a/deps/glslang/Test/hlsl.struct.split.trivial.geom b/deps/glslang/Test/hlsl.struct.split.trivial.geom deleted file mode 100644 index 343da38e..00000000 --- a/deps/glslang/Test/hlsl.struct.split.trivial.geom +++ /dev/null @@ -1,21 +0,0 @@ - -struct PS_IN -{ - float4 pos : SV_Position; -}; - -struct GS_OUT -{ - float4 pos : SV_Position; -}; - -[maxvertexcount(3)] -void main(triangle PS_IN i[3], inout TriangleStream ts) -{ - GS_OUT o; - - for (int x=0; x<3; ++x) { - o.pos = i[x].pos; - ts.Append(o); - } -} diff --git a/deps/glslang/Test/hlsl.struct.split.trivial.vert b/deps/glslang/Test/hlsl.struct.split.trivial.vert deleted file mode 100644 index 351e4182..00000000 --- a/deps/glslang/Test/hlsl.struct.split.trivial.vert +++ /dev/null @@ -1,22 +0,0 @@ - -// Test trivial case for structure splitting: the IN and OUT structs have ONLY an interstage IO. -// This should fall back to flattening, and not produce any empty structures. - -struct VS_INPUT -{ - float4 Pos_in : SV_Position; -}; - -struct VS_OUTPUT -{ - float4 Pos : SV_Position; -}; - -VS_OUTPUT main(VS_INPUT vsin, float4 Pos_loose : SV_Position) -{ - VS_OUTPUT vsout; - - vsout.Pos = vsin.Pos_in + Pos_loose; - - return vsout; -} diff --git a/deps/glslang/Test/hlsl.structIoFourWay.frag b/deps/glslang/Test/hlsl.structIoFourWay.frag deleted file mode 100644 index bca135e7..00000000 --- a/deps/glslang/Test/hlsl.structIoFourWay.frag +++ /dev/null @@ -1,18 +0,0 @@ -struct T { - float f : packoffset(c4.y); // artificial, but validates all different treatments: uniform offset - centroid float g; // interpolant input - float d: SV_DepthGreaterEqual; // fragment output - float4 normal; // non-IO -}; - -T s; // loose uniform - -cbuffer buff { - T t : packoffset(c5.z); -}; - -T main(T t : myInput) : SV_Target0 -{ - T local; - return local; -} diff --git a/deps/glslang/Test/hlsl.structStructName.frag b/deps/glslang/Test/hlsl.structStructName.frag deleted file mode 100644 index f8bf90c7..00000000 --- a/deps/glslang/Test/hlsl.structStructName.frag +++ /dev/null @@ -1,7 +0,0 @@ -struct S { int s; }; - -int main() -{ - struct S t; - return t.s; -} diff --git a/deps/glslang/Test/hlsl.structarray.flatten.frag b/deps/glslang/Test/hlsl.structarray.flatten.frag deleted file mode 100644 index eedb931d..00000000 --- a/deps/glslang/Test/hlsl.structarray.flatten.frag +++ /dev/null @@ -1,28 +0,0 @@ -SamplerState g_samp; -Texture1D g_tex; - -struct tex_t { - SamplerState samp; - Texture1D tex; - int nonopaque_thing; -}; - -struct tex_with_arrays_t { - SamplerState samp[2]; - Texture1D tex[2]; - int nonopaque_thing; -}; - -uniform tex_t g_texdata; -uniform tex_t g_texdata_array[3]; -uniform tex_with_arrays_t g_texdata_array2[3]; - -struct PS_OUTPUT { float4 color : SV_Target0; }; - -void main(out PS_OUTPUT ps_output) -{ - ps_output.color = - g_texdata.tex.Sample(g_texdata.samp, 0.5) + - g_texdata_array[1].tex.Sample(g_texdata_array[1].samp, 0.4) + - g_texdata_array2[1].tex[0].Sample(g_texdata_array2[1].samp[0], 0.3); -} diff --git a/deps/glslang/Test/hlsl.structarray.flatten.geom b/deps/glslang/Test/hlsl.structarray.flatten.geom deleted file mode 100644 index 990532d3..00000000 --- a/deps/glslang/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/Test/hlsl.structbuffer.append.fn.frag b/deps/glslang/Test/hlsl.structbuffer.append.fn.frag deleted file mode 100644 index 668bc1e8..00000000 --- a/deps/glslang/Test/hlsl.structbuffer.append.fn.frag +++ /dev/null @@ -1,23 +0,0 @@ - -// float4 Fn1(ConsumeStructuredBuffer arg_c) -// { -// return arg_c.Consume(); -// } - -float4 Fn2(AppendStructuredBuffer arg_a, ConsumeStructuredBuffer arg_c) -{ - arg_a.Append(float4(1,2,3,4)); - return arg_c.Consume(); -} - -AppendStructuredBuffer sbuf_a; -ConsumeStructuredBuffer sbuf_c; - -AppendStructuredBuffer sbuf_unused; - -float4 main(uint pos : FOO) : SV_Target0 -{ - // Fn1(sbuf_c); - - return Fn2(sbuf_a, sbuf_c); -} diff --git a/deps/glslang/Test/hlsl.structbuffer.append.frag b/deps/glslang/Test/hlsl.structbuffer.append.frag deleted file mode 100644 index 4c4bc3fc..00000000 --- a/deps/glslang/Test/hlsl.structbuffer.append.frag +++ /dev/null @@ -1,11 +0,0 @@ -AppendStructuredBuffer sbuf_a; -ConsumeStructuredBuffer sbuf_c; - -AppendStructuredBuffer sbuf_unused; - -float4 main(uint pos : FOO) : SV_Target0 -{ - sbuf_a.Append(float4(1,2,3,4)); - - return sbuf_c.Consume(); -} diff --git a/deps/glslang/Test/hlsl.structbuffer.atomics.frag b/deps/glslang/Test/hlsl.structbuffer.atomics.frag deleted file mode 100644 index f389e279..00000000 --- a/deps/glslang/Test/hlsl.structbuffer.atomics.frag +++ /dev/null @@ -1,25 +0,0 @@ - -RWByteAddressBuffer sbuf; - -float4 main(uint pos : FOO) : SV_Target0 -{ - uint u; - - sbuf.InterlockedAdd(8, 1); - sbuf.InterlockedAdd(8, 1, u); - sbuf.InterlockedAnd(8, 1); - sbuf.InterlockedAnd(8, 1, u); - sbuf.InterlockedCompareExchange(8, 1, 2, u); - // sbuf.InterlockedCompareStore(8, 1, 2); // TODO: ... - sbuf.InterlockedExchange(8, 1, u); - sbuf.InterlockedMax(8, 1); - sbuf.InterlockedMax(8, 1, u); - sbuf.InterlockedMin(8, 1); - sbuf.InterlockedMin(8, 1, u); - sbuf.InterlockedOr(8, 1); - sbuf.InterlockedOr(8, 1, u); - sbuf.InterlockedXor(8, 1); - sbuf.InterlockedXor(8, 1, u); - - return sbuf.Load(pos); -} diff --git a/deps/glslang/Test/hlsl.structbuffer.byte.frag b/deps/glslang/Test/hlsl.structbuffer.byte.frag deleted file mode 100644 index 2d504da1..00000000 --- a/deps/glslang/Test/hlsl.structbuffer.byte.frag +++ /dev/null @@ -1,13 +0,0 @@ - -ByteAddressBuffer sbuf; - -float4 main(uint pos : FOO) : SV_Target0 -{ - uint size; - sbuf.GetDimensions(size); - - return sbuf.Load(pos) + - float4(sbuf.Load2(pos+4), 0, 0) + - float4(sbuf.Load3(pos+8), 0) + - sbuf.Load4(pos+12); -} diff --git a/deps/glslang/Test/hlsl.structbuffer.coherent.frag b/deps/glslang/Test/hlsl.structbuffer.coherent.frag deleted file mode 100644 index 1c60ef5a..00000000 --- a/deps/glslang/Test/hlsl.structbuffer.coherent.frag +++ /dev/null @@ -1,23 +0,0 @@ -struct sb_t -{ - float3 color; - bool test; -}; - - -globallycoherent RWStructuredBuffer sbuf; -globallycoherent RWStructuredBuffer sbuf2; - -float4 main(uint pos : FOO) : SV_Target0 -{ - sbuf2[pos+1] = 42; - - uint size; - uint stride; - sbuf.GetDimensions(size, stride); - - if (sbuf[pos].test) - return float4(sbuf[pos].color + sbuf2[pos], 0); - else - return size + stride; -} diff --git a/deps/glslang/Test/hlsl.structbuffer.floatidx.comp b/deps/glslang/Test/hlsl.structbuffer.floatidx.comp deleted file mode 100644 index 0ddf0c21..00000000 --- a/deps/glslang/Test/hlsl.structbuffer.floatidx.comp +++ /dev/null @@ -1,19 +0,0 @@ -struct sb_t -{ - float4 color; - uint2 threadId; -}; - -RWTexture2D outtx; -ConsumeStructuredBuffer csb : register(u1); -RWStructuredBuffer rwsb; - -[numthreads(1, 1, 1)] -void main(uint3 nThreadId : SV_DispatchThreadID) -{ - sb_t data = csb.Consume(); - float2 coord = float2(data.threadId.xy); - outtx[coord] = data.color; - - rwsb[coord.x] = rwsb.Load(coord.y); -} diff --git a/deps/glslang/Test/hlsl.structbuffer.fn.frag b/deps/glslang/Test/hlsl.structbuffer.fn.frag deleted file mode 100644 index d043d3b5..00000000 --- a/deps/glslang/Test/hlsl.structbuffer.fn.frag +++ /dev/null @@ -1,24 +0,0 @@ - -StructuredBuffer sbuf : register(t10); - -uint4 get(in StructuredBuffer sb, uint bufferOffset) -{ - return sb[bufferOffset]; -} - -void set(in RWStructuredBuffer sb, uint bufferOffset, uint4 data) -{ - sb[bufferOffset] = data; -} - -RWStructuredBuffer sbuf2; - -// Not shared, because of type difference. -StructuredBuffer sbuf3 : register(t12); - -float4 main(uint pos : FOO) : SV_Target0 -{ - set(sbuf2, 2, get(sbuf, 3)); - - return 0; -} diff --git a/deps/glslang/Test/hlsl.structbuffer.fn2.comp b/deps/glslang/Test/hlsl.structbuffer.fn2.comp deleted file mode 100644 index e651e919..00000000 --- a/deps/glslang/Test/hlsl.structbuffer.fn2.comp +++ /dev/null @@ -1,15 +0,0 @@ -ByteAddressBuffer g_input: register(t0); -RWBuffer g_output : register(u1); - -uint2 testLoad(uint loc, ByteAddressBuffer buffer) -{ - uint2 result = buffer.Load2(loc); - return result; -} - -[numthreads(256, 1, 1)] -void main(uint dispatchId : SV_DispatchThreadID) -{ - uint2 result = testLoad(dispatchId, g_input); - g_output[dispatchId] = result; -} diff --git a/deps/glslang/Test/hlsl.structbuffer.frag b/deps/glslang/Test/hlsl.structbuffer.frag deleted file mode 100644 index dd522a69..00000000 --- a/deps/glslang/Test/hlsl.structbuffer.frag +++ /dev/null @@ -1,23 +0,0 @@ -struct sb_t -{ - float3 color; - bool test; - bool test2; -}; // stride = 20 - -StructuredBuffer sbuf : register(t10); -StructuredBuffer sbuf2; - -float4 main(uint pos : FOO) : SV_Target0 -{ - sb_t mydata = sbuf.Load(pos); - - uint size; - uint stride; - sbuf.GetDimensions(size, stride); - - if (sbuf[pos].test) - return float4(sbuf[pos].color + sbuf2[pos], 0); - else - return mydata.color.x + size + stride; -} diff --git a/deps/glslang/Test/hlsl.structbuffer.incdec.frag b/deps/glslang/Test/hlsl.structbuffer.incdec.frag deleted file mode 100644 index 108dcb61..00000000 --- a/deps/glslang/Test/hlsl.structbuffer.incdec.frag +++ /dev/null @@ -1,19 +0,0 @@ -RWStructuredBuffer sbuf_rw_i; -RWStructuredBuffer sbuf_rw_d; - -RWStructuredBuffer sbuf_rw_nocounter; // doesn't use inc or dec - -float4 main(uint pos : FOO) : SV_Target0 -{ - uint4 result = 0; - - sbuf_rw_i[7]; - sbuf_rw_d[7]; - - sbuf_rw_nocounter[5] = 2; - - uint c1 = sbuf_rw_i.IncrementCounter(); - uint c2 = sbuf_rw_d.DecrementCounter(); - - return float4(result.x, result.y, c1, c2); -} diff --git a/deps/glslang/Test/hlsl.structbuffer.rw.frag b/deps/glslang/Test/hlsl.structbuffer.rw.frag deleted file mode 100644 index 31104847..00000000 --- a/deps/glslang/Test/hlsl.structbuffer.rw.frag +++ /dev/null @@ -1,23 +0,0 @@ -struct sb_t -{ - float3 color; - bool test; -}; - - -RWStructuredBuffer sbuf; -RWStructuredBuffer sbuf2; - -float4 main(uint pos : FOO) : SV_Target0 -{ - sbuf2[pos+1] = 42; - - uint size; - uint stride; - sbuf.GetDimensions(size, stride); - - if (sbuf[pos].test) - return float4(sbuf[pos].color + sbuf2[pos], 0); - else - return size + stride; -} diff --git a/deps/glslang/Test/hlsl.structbuffer.rwbyte.frag b/deps/glslang/Test/hlsl.structbuffer.rwbyte.frag deleted file mode 100644 index d0b957d7..00000000 --- a/deps/glslang/Test/hlsl.structbuffer.rwbyte.frag +++ /dev/null @@ -1,15 +0,0 @@ - -RWByteAddressBuffer sbuf; - -float4 main(uint pos : FOO) : SV_Target0 -{ - uint size; - sbuf.GetDimensions(size); - - sbuf.Store(pos, sbuf.Load(pos)); - sbuf.Store2(pos, sbuf.Load2(pos)); - sbuf.Store3(pos, sbuf.Load3(pos)); - sbuf.Store4(pos, sbuf.Load4(pos)); - - return sbuf.Load(pos); -} diff --git a/deps/glslang/Test/hlsl.structbuffer.rwbyte2.comp b/deps/glslang/Test/hlsl.structbuffer.rwbyte2.comp deleted file mode 100644 index 42d61c00..00000000 --- a/deps/glslang/Test/hlsl.structbuffer.rwbyte2.comp +++ /dev/null @@ -1,10 +0,0 @@ -RWStructuredBuffer g_sbuf; -RWByteAddressBuffer g_bbuf; - - -void main() -{ - uint f = g_bbuf.Load(16); - g_sbuf[0] = f; -} - diff --git a/deps/glslang/Test/hlsl.structin.vert b/deps/glslang/Test/hlsl.structin.vert deleted file mode 100644 index 20a26dd9..00000000 --- a/deps/glslang/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/Test/hlsl.subpass.frag b/deps/glslang/Test/hlsl.subpass.frag deleted file mode 100644 index 20a717f8..00000000 --- a/deps/glslang/Test/hlsl.subpass.frag +++ /dev/null @@ -1,113 +0,0 @@ - -layout(input_attachment_index = 1) SubpassInput subpass_f4 : register(t1); -layout(input_attachment_index = 2) SubpassInput subpass_i4; -layout(input_attachment_index = 3) SubpassInput subpass_u4; - -layout(input_attachment_index = 4) SubpassInputMS subpass_ms_f4; -layout(input_attachment_index = 5) SubpassInputMS subpass_ms_i4; -layout(input_attachment_index = 6) SubpassInputMS subpass_ms_u4; - -layout(input_attachment_index = 1) SubpassInput subpass_f3; -layout(input_attachment_index = 2) SubpassInput subpass_i3; -layout(input_attachment_index = 3) SubpassInput subpass_u3; - -layout(input_attachment_index = 4) SubpassInputMS subpass_ms_f3; -layout(input_attachment_index = 5) SubpassInputMS subpass_ms_i3; -layout(input_attachment_index = 6) SubpassInputMS subpass_ms_u3; - -layout(input_attachment_index = 1) SubpassInput subpass_f2; -layout(input_attachment_index = 2) SubpassInput subpass_i2; -layout(input_attachment_index = 3) SubpassInput subpass_u2; - -layout(input_attachment_index = 4) SubpassInputMS subpass_ms_f2; -layout(input_attachment_index = 5) SubpassInputMS subpass_ms_i2; -layout(input_attachment_index = 6) SubpassInputMS subpass_ms_u2; - -layout(input_attachment_index = 1) SubpassInput subpass_f; -layout(input_attachment_index = 2) SubpassInput subpass_i; -layout(input_attachment_index = 3) SubpassInput subpass_u; - -layout(input_attachment_index = 4) SubpassInputMS subpass_ms_f; -layout(input_attachment_index = 5) SubpassInputMS subpass_ms_i; -layout(input_attachment_index = 6) SubpassInputMS subpass_ms_u; - -[[vk::input_attachment_index(7)]] SubpassInput subpass_2; - -struct mystruct_f_t -{ - float c0; - float2 c1; - float c2; -}; - -struct mystruct_i_t -{ - int c0; - int2 c1; - int c2; -}; - -struct mystruct_u_t -{ - uint c0; - uint2 c1; - uint c2; -}; - -// TODO: ... -// layout(input_attachment_index = 7) SubpassInput subpass_fs; -// layout(input_attachment_index = 8) SubpassInputMS subpass_ms_fs; - -// layout(input_attachment_index = 7) SubpassInput subpass_is; -// layout(input_attachment_index = 8) SubpassInputMS subpass_ms_is; - -// layout(input_attachment_index = 7) SubpassInput subpass_us; -// layout(input_attachment_index = 8) SubpassInputMS subpass_ms_us; - -float4 main() : SV_Target0 -{ - float4 result00 = subpass_f4.SubpassLoad(); - int4 result01 = subpass_i4.SubpassLoad(); - uint4 result02 = subpass_u4.SubpassLoad(); - - float4 result10 = subpass_ms_f4.SubpassLoad(3); - int4 result11 = subpass_ms_i4.SubpassLoad(3); - uint4 result12 = subpass_ms_u4.SubpassLoad(3); - - float3 result20 = subpass_f3.SubpassLoad(); - int3 result21 = subpass_i3.SubpassLoad(); - uint3 result22 = subpass_u3.SubpassLoad(); - - float3 result30 = subpass_ms_f3.SubpassLoad(3); - int3 result31 = subpass_ms_i3.SubpassLoad(3); - uint3 result32 = subpass_ms_u3.SubpassLoad(3); - - float2 result40 = subpass_f2.SubpassLoad(); - int2 result41 = subpass_i2.SubpassLoad(); - uint2 result42 = subpass_u2.SubpassLoad(); - - float2 result50 = subpass_ms_f2.SubpassLoad(2); - int2 result51 = subpass_ms_i2.SubpassLoad(2); - uint2 result52 = subpass_ms_u2.SubpassLoad(2); - - float result60 = subpass_f.SubpassLoad(); - int result61 = subpass_i.SubpassLoad(); - uint result62 = subpass_u.SubpassLoad(); - - float result70 = subpass_ms_f.SubpassLoad(2); - int result71 = subpass_ms_i.SubpassLoad(2); - uint result72 = subpass_ms_u.SubpassLoad(2); - - float4 result73 = subpass_2.SubpassLoad(); - - // TODO: - // mystruct_f_t result80 = subpass_fs.SubpassLoad(); - // mystruct_i_t result81 = subpass_is.SubpassLoad(); - // mystruct_u_t result82 = subpass_us.SubpassLoad(); - - // mystruct_f_t result90 = subpass_ms_sf.SubpassLoad(2); - // mystruct_i_t result91 = subpass_ms_if.SubpassLoad(2); - // mystruct_u_t result92 = subpass_ms_uf.SubpassLoad(2); - - return 0; -} diff --git a/deps/glslang/Test/hlsl.switch.frag b/deps/glslang/Test/hlsl.switch.frag deleted file mode 100644 index 78ebfef3..00000000 --- a/deps/glslang/Test/hlsl.switch.frag +++ /dev/null @@ -1,55 +0,0 @@ -float4 PixelShaderFunction(float4 input, int c, int d) : COLOR0 -{ - switch(c) - { - } - - switch(c) - { - default: - } - - switch (c) { - case 1: - ++input; - break; - case 2: - --input; - break; - } - - [branch] switch (c) { - case 1: - ++input; - break; - case 2: - switch (d) { - case 2: - input += 2.0; - break; - case 3: - input += 3.0; - break; - } - break; - default: - input += 4.0; - } - - switch (c) { - case 1: - } - - switch (c) { - case 1: - case 2: - case 3: - ++input; - break; - case 4: - case 5: - --input; - } - - return input; -} diff --git a/deps/glslang/Test/hlsl.swizzle.frag b/deps/glslang/Test/hlsl.swizzle.frag deleted file mode 100644 index 9e87c6d7..00000000 --- a/deps/glslang/Test/hlsl.swizzle.frag +++ /dev/null @@ -1,6 +0,0 @@ -static float4 AmbientColor = float4(1, 0.5, 0, 1); - -float4 ShaderFunction(float4 input) : COLOR0 -{ - return input.wwyx * float4(AmbientColor.z); -} diff --git a/deps/glslang/Test/hlsl.synthesizeInput.frag b/deps/glslang/Test/hlsl.synthesizeInput.frag deleted file mode 100644 index c4b2fa4c..00000000 --- a/deps/glslang/Test/hlsl.synthesizeInput.frag +++ /dev/null @@ -1,9 +0,0 @@ -struct PSInput { - float interp; - uint no_interp; -}; - -float4 main(PSInput input : INPUT) : SV_TARGET -{ - return float4(float(input.no_interp), input.interp, 0, 1); -} \ No newline at end of file diff --git a/deps/glslang/Test/hlsl.target.frag b/deps/glslang/Test/hlsl.target.frag deleted file mode 100644 index 5317236a..00000000 --- a/deps/glslang/Test/hlsl.target.frag +++ /dev/null @@ -1,10 +0,0 @@ -struct PSInput { - float interp; - uint no_interp; -}; - -void main(PSInput input : INPUT, out float4 out1 : SV_TARGET1, out float4 out2 : SV_TARGET3) -{ - out1 = 1; - out2 = 0; -} \ No newline at end of file diff --git a/deps/glslang/Test/hlsl.targetStruct1.frag b/deps/glslang/Test/hlsl.targetStruct1.frag deleted file mode 100644 index 7fcc0827..00000000 --- a/deps/glslang/Test/hlsl.targetStruct1.frag +++ /dev/null @@ -1,19 +0,0 @@ -struct PSInput { - float interp; - uint no_interp; -}; - -struct PSOutput { - float4 o1 : SV_TARGET2; - float4 o2 : SV_TARGET1; -}; - -PSOutput main(PSInput input : INPUT, out float4 po : SV_TARGET0) -{ - PSOutput pso; - pso.o1 = float4(float(input.no_interp), input.interp, 0, 1); - pso.o2 = 1; - po = 0; - - return pso; -} \ No newline at end of file diff --git a/deps/glslang/Test/hlsl.targetStruct2.frag b/deps/glslang/Test/hlsl.targetStruct2.frag deleted file mode 100644 index e62ba0f6..00000000 --- a/deps/glslang/Test/hlsl.targetStruct2.frag +++ /dev/null @@ -1,19 +0,0 @@ -struct PSInput { - float interp; - uint no_interp; -}; - -struct PSOutput { - float4 o1 : SV_TARGET1; - float4 o2 : SV_TARGET0; -}; - -PSOutput main(PSInput input : INPUT, out float4 po : SV_TARGET0) : SV_TARGET2 -{ - PSOutput pso; - pso.o1 = float4(float(input.no_interp), input.interp, 0, 1); - pso.o2 = 1; - po = 0; - - return pso; -} \ No newline at end of file diff --git a/deps/glslang/Test/hlsl.templatetypes.frag b/deps/glslang/Test/hlsl.templatetypes.frag deleted file mode 100644 index 379120d9..00000000 --- a/deps/glslang/Test/hlsl.templatetypes.frag +++ /dev/null @@ -1,47 +0,0 @@ - -float PixelShaderFunction() -{ - vector r00 = float4(1,2,3,4); // vector means float4 - float4 r01 = vector(2,3,4,5); // vector means float4 - - vector r12 = bool1(false); - vector r13 = int1(1); - vector r14 = float1(1); - vector r15 = double1(1); - vector r16 = uint1(1); - - vector r20 = bool2(false, true); - vector r21 = int2(1,2); - vector r22 = float2(1,2); - vector r23 = double2(1,2); - vector r24 = uint2(1,2); - - vector r30 = bool3(false, true, true); - vector r31 = int3(1,2,3); - vector r32 = float3(1,2,3); - vector r33 = double3(1,2,3); - vector r34 = uint3(1,2,3); - - vector r40 = bool4(false, true, true, false); - vector r41 = int4(1,2,3,4); - vector r42 = float4(1,2,3,4); - vector r43 = double4(1,2,3,4); - vector r44 = uint4(1,2,3,4); - - matrix r50 = float4x4(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); // matrix means float4x4 - float4x4 r51 = matrix(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); // matrix means float4x4 - - // matrix r60 = bool2x3(false, true, false, true, false, true); // TODO: - matrix r61 = float2x3(1,2,3,4,5,6); - matrix r62 = float3x2(1,2,3,4,5,6); - // matrix r63 = float4x1(1,2,3,4); // TODO: - // matrix r64 = float1x4(1,2,3,4); // TODO: - matrix r65 = float4x2(1,2,3,4,5,6,7,8); - matrix r66 = float4x3(1,2,3,4,5,6,7,8,9,10,11,12); - - // TODO: bool mats - // TODO: int mats - - return 0.0; -} - diff --git a/deps/glslang/Test/hlsl.templatetypes.negative.frag b/deps/glslang/Test/hlsl.templatetypes.negative.frag deleted file mode 100644 index aa54f3c6..00000000 --- a/deps/glslang/Test/hlsl.templatetypes.negative.frag +++ /dev/null @@ -1,23 +0,0 @@ - -float PixelShaderFunction() -{ - // TODO: All of the below should fail, although presently the first failure - // aborts compilation and the rest are skipped. Having a separate test for - // each would be cumbersome. - - vector r00; // cannot declare vectors of voids - matrix r01; // cannot declare matrices of voids - - vector r02; // too many parameters to vector - matrix r03; // not enough parameters to matrix - - int three = 3; - vector r04; // size must be a literal constant integer - matrix r05; // size must be a literal constant integer - - vector, 3> r06; // type must be a simple scalar - vector r07; // type must be a simple scalar - - return 0.0; -} - diff --git a/deps/glslang/Test/hlsl.texture.struct.frag b/deps/glslang/Test/hlsl.texture.struct.frag deleted file mode 100644 index 461469cd..00000000 --- a/deps/glslang/Test/hlsl.texture.struct.frag +++ /dev/null @@ -1,55 +0,0 @@ -struct s1_t { - float c0; - float2 c1; - float c2; -}; - -struct s2_t { - float c0; - float3 c1; -}; - -struct s3_t { - float2 c0; - float1 c1; -}; - -struct s4_t { - int c0; - int2 c1; - int c2; -}; - -struct s5_t { - uint c0; - uint c1; -}; - -SamplerState g_sSamp; -Texture2D g_tTex2s1; -Texture2D g_tTex2s2; -Texture2D g_tTex2s3; -Texture2D g_tTex2s4; -Texture2D g_tTex2s5; - -Texture2D g_tTex2s1a; // same type as g_tTex2s1, to test fn signature matching. - -// function overloading to test name mangling with textures templatized on structs -s1_t fn1(Texture2D t1) { return t1 . Sample(g_sSamp, float2(0.6, 0.61)); } -s2_t fn1(Texture2D t2) { return t2 . Sample(g_sSamp, float2(0.6, 0.61)); } - -float4 main() : SV_Target0 -{ - s1_t s1 = g_tTex2s1 . Sample(g_sSamp, float2(0.1, 0.11)); - s2_t s2 = g_tTex2s2 . Sample(g_sSamp, float2(0.2, 0.21)); - s3_t s3 = g_tTex2s3 . Sample(g_sSamp, float2(0.3, 0.31)); - s4_t s4 = g_tTex2s4 . Sample(g_sSamp, float2(0.4, 0.41)); - s5_t s5 = g_tTex2s5 . Sample(g_sSamp, float2(0.5, 0.51)); - - s1_t r0 = fn1(g_tTex2s1); - s2_t r1 = fn1(g_tTex2s2); - s1_t r2 = fn1(g_tTex2s1a); - - return 0; -} - diff --git a/deps/glslang/Test/hlsl.texture.subvec4.frag b/deps/glslang/Test/hlsl.texture.subvec4.frag deleted file mode 100644 index 56fd4106..00000000 --- a/deps/glslang/Test/hlsl.texture.subvec4.frag +++ /dev/null @@ -1,41 +0,0 @@ - -Texture2DMS g_tTex2dmsf1; -Texture2DMS g_tTex2dmsf2; -Texture2DMS g_tTex2dmsf3; -Texture2DMS g_tTex2dmsf4; - -Texture2D g_tTex2df1; -Texture2D g_tTex2df2; -Texture2D g_tTex2df3; -Texture2D g_tTex2df4; - -SamplerState g_sSamp; - -float4 main() : SV_Target0 -{ - uint MipLevel; - uint WidthU; - uint HeightU; - uint ElementsU; - uint DepthU; - uint NumberOfLevelsU; - uint NumberOfSamplesU; - - g_tTex2dmsf1 . GetDimensions(WidthU, HeightU, NumberOfSamplesU); - g_tTex2dmsf2 . GetDimensions(WidthU, HeightU, NumberOfSamplesU); - g_tTex2dmsf3 . GetDimensions(WidthU, HeightU, NumberOfSamplesU); - g_tTex2dmsf4 . GetDimensions(WidthU, HeightU, NumberOfSamplesU); - - g_tTex2dmsf1 . Load(int2(1,2), 3); - g_tTex2dmsf2 . Load(int2(1,2), 3); - g_tTex2dmsf3 . Load(int2(1,2), 3); - g_tTex2dmsf4 . Load(int2(1,2), 3); - - g_tTex2df1 . Sample(g_sSamp, float2(.1, .2)); - g_tTex2df2 . Sample(g_sSamp, float2(.1, .2)); - g_tTex2df3 . Sample(g_sSamp, float2(.1, .2)); - g_tTex2df4 . Sample(g_sSamp, float2(.1, .2)); - - return 0; -} - diff --git a/deps/glslang/Test/hlsl.texturebuffer.frag b/deps/glslang/Test/hlsl.texturebuffer.frag deleted file mode 100644 index d0697465..00000000 --- a/deps/glslang/Test/hlsl.texturebuffer.frag +++ /dev/null @@ -1,17 +0,0 @@ - -struct Data { - float4 f; - int4 i; -}; - -TextureBuffer TextureBuffer_var : register(t0); - -tbuffer tbuf2 { - float4 f2; - int4 i2; -}; - -float4 main(float4 pos : SV_POSITION) : SV_TARGET -{ - return TextureBuffer_var.f + f2; -} diff --git a/deps/glslang/Test/hlsl.this.frag b/deps/glslang/Test/hlsl.this.frag deleted file mode 100644 index 645fe513..00000000 --- a/deps/glslang/Test/hlsl.this.frag +++ /dev/null @@ -1,29 +0,0 @@ -static float2 var = float2(1.0, 2.0); - -struct type1 -{ - int memFun1(int3 var) - { - return var.z + this.var + var2; - } - int memFun2(int a) - { - int3 var = int3(1,2,3); - return var.z + (int)bar.y + this.var2; - } - float2 bar; - int var; - int var2; -}; - -float4 main() : SV_Target0 -{ - type1 T; - T.bar = var; - T.var = 7; - T.var2 = 9; - int i = T.memFun1(int3(10,11,12)); - i += T.memFun2(17); - - return float4(i,i,i,i); -} diff --git a/deps/glslang/Test/hlsl.tristream-append.geom b/deps/glslang/Test/hlsl.tristream-append.geom deleted file mode 100644 index 208607d3..00000000 --- a/deps/glslang/Test/hlsl.tristream-append.geom +++ /dev/null @@ -1,18 +0,0 @@ -struct GSPS_INPUT -{ -}; - -// Test Append() method appearing before declaration of entry point's stream output. - -void EmitVertex(in GSPS_INPUT output, inout TriangleStream TriStream) -{ - TriStream.Append( output ); -} - -[maxvertexcount(3)] -void main( triangle GSPS_INPUT input[3], inout TriangleStream TriStream ) -{ - EmitVertex(input[0], TriStream); - EmitVertex(input[1], TriStream); - EmitVertex(input[2], TriStream); -} diff --git a/deps/glslang/Test/hlsl.tx.bracket.frag b/deps/glslang/Test/hlsl.tx.bracket.frag deleted file mode 100644 index 0d3d81f8..00000000 --- a/deps/glslang/Test/hlsl.tx.bracket.frag +++ /dev/null @@ -1,73 +0,0 @@ -SamplerState g_sSamp : register(s0); - -Texture1D g_tTex1df4 : register(t0); -Texture1D g_tTex1di4; -Texture1D g_tTex1du4; - -Texture2D g_tTex2df4; -Texture2D g_tTex2di4; -Texture2D g_tTex2du4; - -Texture3D g_tTex3df4; -Texture3D g_tTex3di4; -Texture3D g_tTex3du4; - -Texture1DArray g_tTex1df4a; -Texture1DArray g_tTex1di4a; -Texture1DArray g_tTex1du4a; - -Texture2DArray g_tTex2df4a; -Texture2DArray g_tTex2di4a; -Texture2DArray g_tTex2du4a; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; -}; - -uniform int c1; -uniform int2 c2; -uniform int3 c3; -uniform int4 c4; - -uniform int o1; -uniform int2 o2; -uniform int3 o3; -uniform int4 o4; - -int4 Fn1(in int4 x) { return x; } -uint4 Fn1(in uint4 x) { return x; } -float4 Fn1(in float4 x) { return x; } - -float4 SomeValue() { return c4; } - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - // 1D - g_tTex1df4[c1]; - - float4 r00 = g_tTex1df4[c1]; - int4 r01 = g_tTex1di4[c1]; - uint4 r02 = g_tTex1du4[c1]; - - // 2D - float4 r10 = g_tTex2df4[c2]; - int4 r11 = g_tTex2di4[c2]; - uint4 r12 = g_tTex2du4[c2]; - - // 3D - float4 r20 = g_tTex3df4[c3]; - int4 r21 = g_tTex3di4[c3]; - uint4 r22 = g_tTex3du4[c3]; - - // Test function calling - Fn1(g_tTex1df4[c1]); // in - Fn1(g_tTex1di4[c1]); // in - Fn1(g_tTex1du4[c1]); // in - - psout.Color = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/hlsl.tx.overload.frag b/deps/glslang/Test/hlsl.tx.overload.frag deleted file mode 100644 index 8b83ddfc..00000000 --- a/deps/glslang/Test/hlsl.tx.overload.frag +++ /dev/null @@ -1,17 +0,0 @@ - -Texture2D tf1; -Texture2D tf4; - -RWTexture2D twf1; -RWTexture2D twf4; - -float Func(Texture2D DummyTex) { return 1.0f; } -float4 Func(Texture2D DummyTex) { return float4(0,0,0,0); } - -float Func(RWTexture2D DummyTex) { return 1.0f; } -float4 Func(RWTexture2D DummyTex) { return float4(0,0,0,0); } - -float4 main() : SV_TARGET -{ - return Func(tf1) + Func(tf4) + Func(twf1) + Func(twf4); -} diff --git a/deps/glslang/Test/hlsl.type.half.frag b/deps/glslang/Test/hlsl.type.half.frag deleted file mode 100644 index a78afabf..00000000 --- a/deps/glslang/Test/hlsl.type.half.frag +++ /dev/null @@ -1,28 +0,0 @@ - -float4 main() : SV_Target0 -{ - half h0 = 0; - half1 h1 = 1; - half2 h2 = 2; - half3 h3 = 3; - half4 h4 = 4; - - half1x1 h11; - half1x2 h12; - half1x3 h13; - half1x4 h14; - half2x1 h21; - half2x2 h22 = half2x2(1,2,3,4); - half2x3 h23 = (half2x3)4.9; - half2x4 h24; - half3x1 h31; - half3x2 h32; - half3x3 h33; - half3x4 h34; - half4x1 h41; - half4x2 h42; - half4x3 h43; - half4x4 h44; - - return h23._11 + h4.y + h0; -} diff --git a/deps/glslang/Test/hlsl.type.identifier.frag b/deps/glslang/Test/hlsl.type.identifier.frag deleted file mode 100644 index 4e53a82f..00000000 --- a/deps/glslang/Test/hlsl.type.identifier.frag +++ /dev/null @@ -1,31 +0,0 @@ - -struct foo_t { - float float; -}; - -float fn(float float) { return float; } - -float4 main() : SV_Target0 -{ - float float = 7; - bool bool[2] = { float, float }; - int int = bool[1]; - uint uint = float + int; - min16float min16float = uint; - min10float min10float = min16float; - half half = 0.5; - - { - foo_t float; - float.float = 42; - } - - bool[0] = bool[1]; - - float = float + int + uint + min16float + min10float + (bool[0] ? int : float) + fn(float); - - half2x3 half2x3; - half2x3._11 = (float) * float; - - return float + half2x3._11; -} diff --git a/deps/glslang/Test/hlsl.type.type.conversion.all.frag b/deps/glslang/Test/hlsl.type.type.conversion.all.frag deleted file mode 100644 index 1883b018..00000000 --- a/deps/glslang/Test/hlsl.type.type.conversion.all.frag +++ /dev/null @@ -1,190 +0,0 @@ -#define zeros 0 -#define zeros1 0 -#define zeros2 0, 0 -#define zeros3 0, 0, 0 -#define zeros4 0, 0, 0, 0 -#define zeros5 0, 0, 0, 0, 0 -#define zeros6 0, 0, 0, 0, 0, 0 -#define zeros7 0, 0, 0, 0, 0, 0, 0 -#define zeros8 0, 0, 0, 0, 0, 0, 0, 0 -#define zeros9 0, 0, 0, 0, 0, 0, 0, 0, 0 -#define zeros10 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -#define zeros11 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -#define zeros12 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -#define zeros13 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -#define zeros14 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -#define zeros15 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -#define zeros16 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -float4 main() : SV_Target { - float var0 = float(zeros1); - float2 var13 = float(zeros1); - float2 var14 = float2(zeros2); - float3 var26 = float(zeros1); - float3 var28 = float3(zeros3); - float4 var39 = float(zeros1); - float4 var42 = float4(zeros4); - float4 var43 = float2x2(zeros4); - float2x2 var52 = float(zeros1); - float2x2 var55 = float4(zeros4); - float2x2 var56 = float2x2(zeros4); - float2x3 var65 = float(zeros1); - float2x3 var70 = float2x3(zeros6); - float2x4 var78 = float(zeros1); - float2x4 var84 = float2x4(zeros8); - float3x2 var91 = float(zeros1); - float3x2 var98 = float3x2(zeros6); - float3x3 var104 = float(zeros1); - float3x3 var112 = float3x3(zeros9); - float3x4 var117 = float(zeros1); - float3x4 var126 = float3x4(zeros12); - float4x2 var130 = float(zeros1); - float4x2 var140 = float4x2(zeros8); - float4x3 var143 = float(zeros1); - float4x3 var154 = float4x3(zeros12); - float4x4 var156 = float(zeros1); - float4x4 var168 = float4x4(zeros16); - float var1 = float2(zeros2);// warning X3206: implicit truncation of vector type - float var2 = float3(zeros3);// warning X3206: implicit truncation of vector type - float var3 = float4(zeros4);// warning X3206: implicit truncation of vector type - float var4 = float2x2(zeros4);// warning X3206: implicit truncation of vector type - float var5 = float2x3(zeros6);// warning X3206: implicit truncation of vector type - float var6 = float2x4(zeros8);// warning X3206: implicit truncation of vector type - float var7 = float3x2(zeros6);// warning X3206: implicit truncation of vector type - float var8 = float3x3(zeros9);// warning X3206: implicit truncation of vector type - float var9 = float3x4(zeros12);// warning X3206: implicit truncation of vector type - float var10 = float4x2(zeros8);// warning X3206: implicit truncation of vector type - float var11 = float4x3(zeros12);// warning X3206: implicit truncation of vector type - float var12 = float4x4(zeros16);// warning X3206: implicit truncation of vector type - float2 var15 = float3(zeros3);// warning X3206: implicit truncation of vector type - float2 var16 = float4(zeros4);// warning X3206: implicit truncation of vector type - float3 var29 = float4(zeros4);// warning X3206: implicit truncation of vector type - float2x2 var57 = float2x3(zeros6);// warning X3206: implicit truncation of vector type - float2x2 var58 = float2x4(zeros8);// warning X3206: implicit truncation of vector type - float2x2 var59 = float3x2(zeros6);// warning X3206: implicit truncation of vector type - float2x2 var60 = float3x3(zeros9);// warning X3206: implicit truncation of vector type - float2x2 var61 = float3x4(zeros12);// warning X3206: implicit truncation of vector type - float2x2 var62 = float4x2(zeros8);// warning X3206: implicit truncation of vector type - float2x2 var63 = float4x3(zeros12);// warning X3206: implicit truncation of vector type - float2x2 var64 = float4x4(zeros16);// warning X3206: implicit truncation of vector type - float2x3 var71 = float2x4(zeros8);// warning X3206: implicit truncation of vector type - float2x3 var73 = float3x3(zeros9);// warning X3206: implicit truncation of vector type - float2x3 var74 = float3x4(zeros12);// warning X3206: implicit truncation of vector type - float2x3 var76 = float4x3(zeros12);// warning X3206: implicit truncation of vector type - float2x3 var77 = float4x4(zeros16);// warning X3206: implicit truncation of vector type - float2x4 var87 = float3x4(zeros12);// warning X3206: implicit truncation of vector type - float2x4 var90 = float4x4(zeros16);// warning X3206: implicit truncation of vector type - float3x2 var99 = float3x3(zeros9);// warning X3206: implicit truncation of vector type - float3x2 var100 = float3x4(zeros12);// warning X3206: implicit truncation of vector type - float3x2 var101 = float4x2(zeros8);// warning X3206: implicit truncation of vector type - float3x2 var102 = float4x3(zeros12);// warning X3206: implicit truncation of vector type - float3x2 var103 = float4x4(zeros16);// warning X3206: implicit truncation of vector type - float3x3 var113 = float3x4(zeros12);// warning X3206: implicit truncation of vector type - float3x3 var115 = float4x3(zeros12);// warning X3206: implicit truncation of vector type - float3x3 var116 = float4x4(zeros16);// warning X3206: implicit truncation of vector type - float3x4 var129 = float4x4(zeros16);// warning X3206: implicit truncation of vector type - float4x2 var141 = float4x3(zeros12);// warning X3206: implicit truncation of vector type - float4x2 var142 = float4x4(zeros16);// warning X3206: implicit truncation of vector type - float4x3 var155 = float4x4(zeros16);// warning X3206: implicit truncation of vector type - float2 var17 = float2x2(zeros4);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2x2' to 'float2' - float2 var18 = float2x3(zeros6);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2x3' to 'float2' - float2 var19 = float2x4(zeros8);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2x4' to 'float2' - float2 var20 = float3x2(zeros6);// Compilation failed because: error X3017: cannot implicitly convert from 'const float3x2' to 'float2' - float2 var21 = float3x3(zeros9);// Compilation failed because: error X3017: cannot implicitly convert from 'const float3x3' to 'float2' - float2 var22 = float3x4(zeros12);// Compilation failed because: error X3017: cannot implicitly convert from 'const float3x4' to 'float2' - float2 var23 = float4x2(zeros8);// Compilation failed because: error X3017: cannot implicitly convert from 'const float4x2' to 'float2' - float2 var24 = float4x3(zeros12);// Compilation failed because: error X3017: cannot implicitly convert from 'const float4x3' to 'float2' - float2 var25 = float4x4(zeros16);// Compilation failed because: error X3017: cannot implicitly convert from 'const float4x4' to 'float2' - float3 var27 = float2(zeros2);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2' to 'float3' - float3 var30 = float2x2(zeros4);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2x2' to 'float3' - float3 var31 = float2x3(zeros6);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2x3' to 'float3' - float3 var32 = float2x4(zeros8);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2x4' to 'float3' - float3 var33 = float3x2(zeros6);// Compilation failed because: error X3017: cannot implicitly convert from 'const float3x2' to 'float3' - float3 var34 = float3x3(zeros9);// Compilation failed because: error X3017: cannot implicitly convert from 'const float3x3' to 'float3' - float3 var35 = float3x4(zeros12);// Compilation failed because: error X3017: cannot implicitly convert from 'const float3x4' to 'float3' - float3 var36 = float4x2(zeros8);// Compilation failed because: error X3017: cannot implicitly convert from 'const float4x2' to 'float3' - float3 var37 = float4x3(zeros12);// Compilation failed because: error X3017: cannot implicitly convert from 'const float4x3' to 'float3' - float3 var38 = float4x4(zeros16);// Compilation failed because: error X3017: cannot implicitly convert from 'const float4x4' to 'float3' - float4 var40 = float2(zeros2);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2' to 'float4' - float4 var41 = float3(zeros3);// Compilation failed because: error X3017: cannot implicitly convert from 'const float3' to 'float4' - float4 var44 = float2x3(zeros6);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2x3' to 'float4' - float4 var45 = float2x4(zeros8);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2x4' to 'float4' - float4 var46 = float3x2(zeros6);// Compilation failed because: error X3017: cannot implicitly convert from 'const float3x2' to 'float4' - float4 var47 = float3x3(zeros9);// Compilation failed because: error X3017: cannot implicitly convert from 'const float3x3' to 'float4' - float4 var48 = float3x4(zeros12);// Compilation failed because: error X3017: cannot implicitly convert from 'const float3x4' to 'float4' - float4 var49 = float4x2(zeros8);// Compilation failed because: error X3017: cannot implicitly convert from 'const float4x2' to 'float4' - float4 var50 = float4x3(zeros12);// Compilation failed because: error X3017: cannot implicitly convert from 'const float4x3' to 'float4' - float4 var51 = float4x4(zeros16);// Compilation failed because: error X3017: cannot implicitly convert from 'const float4x4' to 'float4' - float2x2 var53 = float2(zeros2);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2' to 'float2x2' - float2x2 var54 = float3(zeros3);// Compilation failed because: error X3017: cannot implicitly convert from 'const float3' to 'float2x2' - float2x3 var66 = float2(zeros2);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2' to 'float2x3' - float2x3 var67 = float3(zeros3);// Compilation failed because: error X3017: cannot implicitly convert from 'const float3' to 'float2x3' - float2x3 var68 = float4(zeros4);// Compilation failed because: error X3017: cannot implicitly convert from 'const float4' to 'float2x3' - float2x3 var69 = float2x2(zeros4);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2x2' to 'float2x3' - float2x3 var72 = float3x2(zeros6);// Compilation failed because: error X3017: cannot implicitly convert from 'const float3x2' to 'float2x3' - float2x3 var75 = float4x2(zeros8);// Compilation failed because: error X3017: cannot implicitly convert from 'const float4x2' to 'float2x3' - float2x4 var79 = float2(zeros2);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2' to 'float2x4' - float2x4 var80 = float3(zeros3);// Compilation failed because: error X3017: cannot implicitly convert from 'const float3' to 'float2x4' - float2x4 var81 = float4(zeros4);// Compilation failed because: error X3017: cannot implicitly convert from 'const float4' to 'float2x4' - float2x4 var82 = float2x2(zeros4);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2x2' to 'float2x4' - float2x4 var83 = float2x3(zeros6);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2x3' to 'float2x4' - float2x4 var85 = float3x2(zeros6);// Compilation failed because: error X3017: cannot implicitly convert from 'const float3x2' to 'float2x4' - float2x4 var86 = float3x3(zeros9);// Compilation failed because: error X3017: cannot implicitly convert from 'const float3x3' to 'float2x4' - float2x4 var88 = float4x2(zeros8);// Compilation failed because: error X3017: cannot implicitly convert from 'const float4x2' to 'float2x4' - float2x4 var89 = float4x3(zeros12);// Compilation failed because: error X3017: cannot implicitly convert from 'const float4x3' to 'float2x4' - float3x2 var92 = float2(zeros2);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2' to 'float3x2' - float3x2 var93 = float3(zeros3);// Compilation failed because: error X3017: cannot implicitly convert from 'const float3' to 'float3x2' - float3x2 var94 = float4(zeros4);// Compilation failed because: error X3017: cannot implicitly convert from 'const float4' to 'float3x2' - float3x2 var95 = float2x2(zeros4);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2x2' to 'float3x2' - float3x2 var96 = float2x3(zeros6);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2x3' to 'float3x2' - float3x2 var97 = float2x4(zeros8);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2x4' to 'float3x2' - float3x3 var105 = float2(zeros2);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2' to 'float3x3' - float3x3 var106 = float3(zeros3);// Compilation failed because: error X3017: cannot implicitly convert from 'const float3' to 'float3x3' - float3x3 var107 = float4(zeros4);// Compilation failed because: error X3017: cannot implicitly convert from 'const float4' to 'float3x3' - float3x3 var108 = float2x2(zeros4);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2x2' to 'float3x3' - float3x3 var109 = float2x3(zeros6);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2x3' to 'float3x3' - float3x3 var110 = float2x4(zeros8);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2x4' to 'float3x3' - float3x3 var111 = float3x2(zeros6);// Compilation failed because: error X3017: cannot implicitly convert from 'const float3x2' to 'float3x3' - float3x3 var114 = float4x2(zeros8);// Compilation failed because: error X3017: cannot implicitly convert from 'const float4x2' to 'float3x3' - float3x4 var118 = float2(zeros2);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2' to 'float3x4' - float3x4 var119 = float3(zeros3);// Compilation failed because: error X3017: cannot implicitly convert from 'const float3' to 'float3x4' - float3x4 var120 = float4(zeros4);// Compilation failed because: error X3017: cannot implicitly convert from 'const float4' to 'float3x4' - float3x4 var121 = float2x2(zeros4);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2x2' to 'float3x4' - float3x4 var122 = float2x3(zeros6);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2x3' to 'float3x4' - float3x4 var123 = float2x4(zeros8);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2x4' to 'float3x4' - float3x4 var124 = float3x2(zeros6);// Compilation failed because: error X3017: cannot implicitly convert from 'const float3x2' to 'float3x4' - float3x4 var125 = float3x3(zeros9);// Compilation failed because: error X3017: cannot implicitly convert from 'const float3x3' to 'float3x4' - float3x4 var127 = float4x2(zeros8);// Compilation failed because: error X3017: cannot implicitly convert from 'const float4x2' to 'float3x4' - float3x4 var128 = float4x3(zeros12);// Compilation failed because: error X3017: cannot implicitly convert from 'const float4x3' to 'float3x4' - float4x2 var131 = float2(zeros2);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2' to 'float4x2' - float4x2 var132 = float3(zeros3);// Compilation failed because: error X3017: cannot implicitly convert from 'const float3' to 'float4x2' - float4x2 var133 = float4(zeros4);// Compilation failed because: error X3017: cannot implicitly convert from 'const float4' to 'float4x2' - float4x2 var134 = float2x2(zeros4);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2x2' to 'float4x2' - float4x2 var135 = float2x3(zeros6);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2x3' to 'float4x2' - float4x2 var136 = float2x4(zeros8);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2x4' to 'float4x2' - float4x2 var137 = float3x2(zeros6);// Compilation failed because: error X3017: cannot implicitly convert from 'const float3x2' to 'float4x2' - float4x2 var138 = float3x3(zeros9);// Compilation failed because: error X3017: cannot implicitly convert from 'const float3x3' to 'float4x2' - float4x2 var139 = float3x4(zeros12);// Compilation failed because: error X3017: cannot implicitly convert from 'const float3x4' to 'float4x2' - float4x3 var144 = float2(zeros2);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2' to 'float4x3' - float4x3 var145 = float3(zeros3);// Compilation failed because: error X3017: cannot implicitly convert from 'const float3' to 'float4x3' - float4x3 var146 = float4(zeros4);// Compilation failed because: error X3017: cannot implicitly convert from 'const float4' to 'float4x3' - float4x3 var147 = float2x2(zeros4);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2x2' to 'float4x3' - float4x3 var148 = float2x3(zeros6);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2x3' to 'float4x3' - float4x3 var149 = float2x4(zeros8);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2x4' to 'float4x3' - float4x3 var150 = float3x2(zeros6);// Compilation failed because: error X3017: cannot implicitly convert from 'const float3x2' to 'float4x3' - float4x3 var151 = float3x3(zeros9);// Compilation failed because: error X3017: cannot implicitly convert from 'const float3x3' to 'float4x3' - float4x3 var152 = float3x4(zeros12);// Compilation failed because: error X3017: cannot implicitly convert from 'const float3x4' to 'float4x3' - float4x3 var153 = float4x2(zeros8);// Compilation failed because: error X3017: cannot implicitly convert from 'const float4x2' to 'float4x3' - float4x4 var157 = float2(zeros2);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2' to 'float4x4' - float4x4 var158 = float3(zeros3);// Compilation failed because: error X3017: cannot implicitly convert from 'const float3' to 'float4x4' - float4x4 var159 = float4(zeros4);// Compilation failed because: error X3017: cannot implicitly convert from 'const float4' to 'float4x4' - float4x4 var160 = float2x2(zeros4);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2x2' to 'float4x4' - float4x4 var161 = float2x3(zeros6);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2x3' to 'float4x4' - float4x4 var162 = float2x4(zeros8);// Compilation failed because: error X3017: cannot implicitly convert from 'const float2x4' to 'float4x4' - float4x4 var163 = float3x2(zeros6);// Compilation failed because: error X3017: cannot implicitly convert from 'const float3x2' to 'float4x4' - float4x4 var164 = float3x3(zeros9);// Compilation failed because: error X3017: cannot implicitly convert from 'const float3x3' to 'float4x4' - float4x4 var165 = float3x4(zeros12);// Compilation failed because: error X3017: cannot implicitly convert from 'const float3x4' to 'float4x4' - float4x4 var166 = float4x2(zeros8);// Compilation failed because: error X3017: cannot implicitly convert from 'const float4x2' to 'float4x4' - float4x4 var167 = float4x3(zeros12);// Compilation failed because: error X3017: cannot implicitly convert from 'const float4x3' to 'float4x4' - return 0; -} - diff --git a/deps/glslang/Test/hlsl.type.type.conversion.valid.frag b/deps/glslang/Test/hlsl.type.type.conversion.valid.frag deleted file mode 100644 index 114edbcc..00000000 --- a/deps/glslang/Test/hlsl.type.type.conversion.valid.frag +++ /dev/null @@ -1,90 +0,0 @@ -#define zeros 0 -#define zeros1 0 -#define zeros2 0, 0 -#define zeros3 0, 0, 0 -#define zeros4 0, 0, 0, 0 -#define zeros5 0, 0, 0, 0, 0 -#define zeros6 0, 0, 0, 0, 0, 0 -#define zeros7 0, 0, 0, 0, 0, 0, 0 -#define zeros8 0, 0, 0, 0, 0, 0, 0, 0 -#define zeros9 0, 0, 0, 0, 0, 0, 0, 0, 0 -#define zeros10 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -#define zeros11 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -#define zeros12 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -#define zeros13 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -#define zeros14 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -#define zeros15 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -#define zeros16 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -float4 main() : SV_Target { - float var0 = float(zeros1); - float2 var13 = float(zeros1); - float2 var14 = float2(zeros2); - float3 var26 = float(zeros1); - float3 var28 = float3(zeros3); - float4 var39 = float(zeros1); - float4 var42 = float4(zeros4); - float4 var43 = float2x2(zeros4); - float2x2 var52 = float(zeros1); - float2x2 var55 = float4(zeros4); - float2x2 var56 = float2x2(zeros4); - float2x3 var65 = float(zeros1); - float2x3 var70 = float2x3(zeros6); - float2x4 var78 = float(zeros1); - float2x4 var84 = float2x4(zeros8); - float3x2 var91 = float(zeros1); - float3x2 var98 = float3x2(zeros6); - float3x3 var104 = float(zeros1); - float3x3 var112 = float3x3(zeros9); - float3x4 var117 = float(zeros1); - float3x4 var126 = float3x4(zeros12); - float4x2 var130 = float(zeros1); - float4x2 var140 = float4x2(zeros8); - float4x3 var143 = float(zeros1); - float4x3 var154 = float4x3(zeros12); - float4x4 var156 = float(zeros1); - float4x4 var168 = float4x4(zeros16); - float var1 = float2(zeros2);// warning X3206: implicit truncation of vector type - float var2 = float3(zeros3);// warning X3206: implicit truncation of vector type - float var3 = float4(zeros4);// warning X3206: implicit truncation of vector type - float var4 = float2x2(zeros4);// warning X3206: implicit truncation of vector type - float var5 = float2x3(zeros6);// warning X3206: implicit truncation of vector type - float var6 = float2x4(zeros8);// warning X3206: implicit truncation of vector type - float var7 = float3x2(zeros6);// warning X3206: implicit truncation of vector type - float var8 = float3x3(zeros9);// warning X3206: implicit truncation of vector type - float var9 = float3x4(zeros12);// warning X3206: implicit truncation of vector type - float var10 = float4x2(zeros8);// warning X3206: implicit truncation of vector type - float var11 = float4x3(zeros12);// warning X3206: implicit truncation of vector type - float var12 = float4x4(zeros16);// warning X3206: implicit truncation of vector type - float2 var15 = float3(zeros3);// warning X3206: implicit truncation of vector type - float2 var16 = float4(zeros4);// warning X3206: implicit truncation of vector type - float3 var29 = float4(zeros4);// warning X3206: implicit truncation of vector type - float2x2 var57 = float2x3(zeros6);// warning X3206: implicit truncation of vector type - float2x2 var58 = float2x4(zeros8);// warning X3206: implicit truncation of vector type - float2x2 var59 = float3x2(zeros6);// warning X3206: implicit truncation of vector type - float2x2 var60 = float3x3(zeros9);// warning X3206: implicit truncation of vector type - float2x2 var61 = float3x4(zeros12);// warning X3206: implicit truncation of vector type - float2x2 var62 = float4x2(zeros8);// warning X3206: implicit truncation of vector type - float2x2 var63 = float4x3(zeros12);// warning X3206: implicit truncation of vector type - float2x2 var64 = float4x4(zeros16);// warning X3206: implicit truncation of vector type - float2x3 var71 = float2x4(zeros8);// warning X3206: implicit truncation of vector type - float2x3 var73 = float3x3(zeros9);// warning X3206: implicit truncation of vector type - float2x3 var74 = float3x4(zeros12);// warning X3206: implicit truncation of vector type - float2x3 var76 = float4x3(zeros12);// warning X3206: implicit truncation of vector type - float2x3 var77 = float4x4(zeros16);// warning X3206: implicit truncation of vector type - float2x4 var87 = float3x4(zeros12);// warning X3206: implicit truncation of vector type - float2x4 var90 = float4x4(zeros16);// warning X3206: implicit truncation of vector type - float3x2 var99 = float3x3(zeros9);// warning X3206: implicit truncation of vector type - float3x2 var100 = float3x4(zeros12);// warning X3206: implicit truncation of vector type - float3x2 var101 = float4x2(zeros8);// warning X3206: implicit truncation of vector type - float3x2 var102 = float4x3(zeros12);// warning X3206: implicit truncation of vector type - float3x2 var103 = float4x4(zeros16);// warning X3206: implicit truncation of vector type - float3x3 var113 = float3x4(zeros12);// warning X3206: implicit truncation of vector type - float3x3 var115 = float4x3(zeros12);// warning X3206: implicit truncation of vector type - float3x3 var116 = float4x4(zeros16);// warning X3206: implicit truncation of vector type - float3x4 var129 = float4x4(zeros16);// warning X3206: implicit truncation of vector type - float4x2 var141 = float4x3(zeros12);// warning X3206: implicit truncation of vector type - float4x2 var142 = float4x4(zeros16);// warning X3206: implicit truncation of vector type - float4x3 var155 = float4x4(zeros16);// warning X3206: implicit truncation of vector type - return 0; -} - diff --git a/deps/glslang/Test/hlsl.typeGraphCopy.vert b/deps/glslang/Test/hlsl.typeGraphCopy.vert deleted file mode 100644 index a4677c10..00000000 --- a/deps/glslang/Test/hlsl.typeGraphCopy.vert +++ /dev/null @@ -1,24 +0,0 @@ -struct N1 { - int a; - float b; -}; - -struct N2 { - N1 s1; - N1 s2; -}; - -struct N3 { - N2 t1; - N1 t2; - N2 t3; -}; - -typedef N3 T3; - -T3 foo; - -float main() -{ - return foo.t3.s2.b; -} diff --git a/deps/glslang/Test/hlsl.typedef.frag b/deps/glslang/Test/hlsl.typedef.frag deleted file mode 100644 index b09785e6..00000000 --- a/deps/glslang/Test/hlsl.typedef.frag +++ /dev/null @@ -1,11 +0,0 @@ -typedef float4 myVec4; - -float4 ShaderFunction(float4 input, int ii) : COLOR0 -{ - typedef int myInt; - myVec4 a1 = myVec4(1.0); - myInt i = 2; - typedef myInt myInt2; - myInt2 j = ii; - return input * a1 + myVec4(i + j); -} diff --git a/deps/glslang/Test/hlsl.void.frag b/deps/glslang/Test/hlsl.void.frag deleted file mode 100644 index 950bbd75..00000000 --- a/deps/glslang/Test/hlsl.void.frag +++ /dev/null @@ -1,9 +0,0 @@ -void foo1() {} -void foo2(void) {} - -void PixelShaderFunction(float4 input) : COLOR0 -{ - foo1(); - foo2(); - return; -} \ No newline at end of file diff --git a/deps/glslang/Test/hlsl.w-recip.frag b/deps/glslang/Test/hlsl.w-recip.frag deleted file mode 100644 index 4812d269..00000000 --- a/deps/glslang/Test/hlsl.w-recip.frag +++ /dev/null @@ -1,12 +0,0 @@ -float4 AmbientColor = float4(1, 0.5, 0, 1); -float4 AmbientColor2 = float4(0.5, 1, 0, 0); - -float4 main(float4 vpos : SV_POSITION) : SV_TARGET -{ - float4 vpos_t = float4(vpos.xyz, 1 / vpos.w); - if (vpos_t.x < 400) - return AmbientColor; - else - return AmbientColor2; -} - diff --git a/deps/glslang/Test/hlsl.w-recip2.frag b/deps/glslang/Test/hlsl.w-recip2.frag deleted file mode 100644 index 8ef49c9e..00000000 --- a/deps/glslang/Test/hlsl.w-recip2.frag +++ /dev/null @@ -1,19 +0,0 @@ -struct VSOutput -{ - float4 PositionPS : SV_Position; - float3 PosInLightViewSpace : LIGHT_SPACE_POS; - float3 NormalWS : NORMALWS; - float2 TexCoord : TEXCOORD; -}; - -float4 AmbientColor = float4(1, 0.5, 0, 1); -float4 AmbientColor2 = float4(0.5, 1, 0, 0); - -float4 main(VSOutput VSOut) : SV_TARGET -{ - if (VSOut.PositionPS.x < 400) - return AmbientColor; - else - return AmbientColor2; -} - diff --git a/deps/glslang/Test/hlsl.wavebroadcast.comp b/deps/glslang/Test/hlsl.wavebroadcast.comp deleted file mode 100644 index 4498305c..00000000 --- a/deps/glslang/Test/hlsl.wavebroadcast.comp +++ /dev/null @@ -1,53 +0,0 @@ -struct Types -{ - uint4 u; - int4 i; - float4 f; - double4 d; -}; - -RWStructuredBuffer data; - -[numthreads(32, 16, 1)] -void CSMain(uint3 dti : SV_DispatchThreadID) -{ - data[dti.x].u = WaveReadLaneAt(data[dti.x].u, 13); - data[dti.x].u.x = WaveReadLaneAt(data[dti.x].u.x, 13); - data[dti.x].u.xy = WaveReadLaneAt(data[dti.x].u.xy, 13); - data[dti.x].u.xyz = WaveReadLaneAt(data[dti.x].u.xyz, 13); - - data[dti.x].i = WaveReadLaneAt(data[dti.x].i, 13); - data[dti.x].i.x = WaveReadLaneAt(data[dti.x].i.x, 13); - data[dti.x].i.xy = WaveReadLaneAt(data[dti.x].i.xy, 13); - data[dti.x].i.xyz = WaveReadLaneAt(data[dti.x].i.xyz, 13); - - data[dti.x].f = WaveReadLaneAt(data[dti.x].f, 13); - data[dti.x].f.x = WaveReadLaneAt(data[dti.x].f.x, 13); - data[dti.x].f.xy = WaveReadLaneAt(data[dti.x].f.xy, 13); - data[dti.x].f.xyz = WaveReadLaneAt(data[dti.x].f.xyz, 13); - - data[dti.x].d = WaveReadLaneFirst(data[dti.x].d); - data[dti.x].d.x = WaveReadLaneFirst(data[dti.x].d.x); - data[dti.x].d.xy = WaveReadLaneFirst(data[dti.x].d.xy); - data[dti.x].d.xyz = WaveReadLaneFirst(data[dti.x].d.xyz); - - data[dti.x].u = WaveReadLaneFirst(data[dti.x].u); - data[dti.x].u.x = WaveReadLaneFirst(data[dti.x].u.x); - data[dti.x].u.xy = WaveReadLaneFirst(data[dti.x].u.xy); - data[dti.x].u.xyz = WaveReadLaneFirst(data[dti.x].u.xyz); - - data[dti.x].i = WaveReadLaneFirst(data[dti.x].i); - data[dti.x].i.x = WaveReadLaneFirst(data[dti.x].i.x); - data[dti.x].i.xy = WaveReadLaneFirst(data[dti.x].i.xy); - data[dti.x].i.xyz = WaveReadLaneFirst(data[dti.x].i.xyz); - - data[dti.x].f = WaveReadLaneFirst(data[dti.x].f); - data[dti.x].f.x = WaveReadLaneFirst(data[dti.x].f.x); - data[dti.x].f.xy = WaveReadLaneFirst(data[dti.x].f.xy); - data[dti.x].f.xyz = WaveReadLaneFirst(data[dti.x].f.xyz); - - data[dti.x].d = WaveReadLaneFirst(data[dti.x].d); - data[dti.x].d.x = WaveReadLaneFirst(data[dti.x].d.x); - data[dti.x].d.xy = WaveReadLaneFirst(data[dti.x].d.xy); - data[dti.x].d.xyz = WaveReadLaneFirst(data[dti.x].d.xyz); -} diff --git a/deps/glslang/Test/hlsl.waveprefix.comp b/deps/glslang/Test/hlsl.waveprefix.comp deleted file mode 100644 index e4b4367d..00000000 --- a/deps/glslang/Test/hlsl.waveprefix.comp +++ /dev/null @@ -1,55 +0,0 @@ -struct Types -{ - uint4 u; - int4 i; - float4 f; - double4 d; -}; - -RWStructuredBuffer data; - -[numthreads(32, 16, 1)] -void CSMain(uint3 dti : SV_DispatchThreadID) -{ - data[dti.x].u = WavePrefixSum(data[dti.x].u); - data[dti.x].u.x = WavePrefixSum(data[dti.x].u.x); - data[dti.x].u.xy = WavePrefixSum(data[dti.x].u.xy); - data[dti.x].u.xyz = WavePrefixSum(data[dti.x].u.xyz); - - data[dti.x].i = WavePrefixSum(data[dti.x].i); - data[dti.x].i.x = WavePrefixSum(data[dti.x].i.x); - data[dti.x].i.xy = WavePrefixSum(data[dti.x].i.xy); - data[dti.x].i.xyz = WavePrefixSum(data[dti.x].i.xyz); - - data[dti.x].f = WavePrefixSum(data[dti.x].f); - data[dti.x].f.x = WavePrefixSum(data[dti.x].f.x); - data[dti.x].f.xy = WavePrefixSum(data[dti.x].f.xy); - data[dti.x].f.xyz = WavePrefixSum(data[dti.x].f.xyz); - - data[dti.x].d = WavePrefixSum(data[dti.x].d); - data[dti.x].d.x = WavePrefixSum(data[dti.x].d.x); - data[dti.x].d.xy = WavePrefixSum(data[dti.x].d.xy); - data[dti.x].d.xyz = WavePrefixSum(data[dti.x].d.xyz); - - data[dti.x].u = WavePrefixProduct(data[dti.x].u); - data[dti.x].u.x = WavePrefixProduct(data[dti.x].u.x); - data[dti.x].u.xy = WavePrefixProduct(data[dti.x].u.xy); - data[dti.x].u.xyz = WavePrefixProduct(data[dti.x].u.xyz); - - data[dti.x].i = WavePrefixProduct(data[dti.x].i); - data[dti.x].i.x = WavePrefixProduct(data[dti.x].i.x); - data[dti.x].i.xy = WavePrefixProduct(data[dti.x].i.xy); - data[dti.x].i.xyz = WavePrefixProduct(data[dti.x].i.xyz); - - data[dti.x].f = WavePrefixProduct(data[dti.x].f); - data[dti.x].f.x = WavePrefixProduct(data[dti.x].f.x); - data[dti.x].f.xy = WavePrefixProduct(data[dti.x].f.xy); - data[dti.x].f.xyz = WavePrefixProduct(data[dti.x].f.xyz); - - data[dti.x].d = WavePrefixProduct(data[dti.x].d); - data[dti.x].d.x = WavePrefixProduct(data[dti.x].d.x); - data[dti.x].d.xy = WavePrefixProduct(data[dti.x].d.xy); - data[dti.x].d.xyz = WavePrefixProduct(data[dti.x].d.xyz); - - data[dti.x].u.x = WavePrefixCountBits(data[dti.x].u.x == 0); -} diff --git a/deps/glslang/Test/hlsl.wavequad.comp b/deps/glslang/Test/hlsl.wavequad.comp deleted file mode 100644 index 34e8b782..00000000 --- a/deps/glslang/Test/hlsl.wavequad.comp +++ /dev/null @@ -1,153 +0,0 @@ -struct Types -{ - uint4 u; - int4 i; - float4 f; - double4 d; -}; - -RWStructuredBuffer data; - -[numthreads(32, 16, 1)] -void CSMain(uint3 dti : SV_DispatchThreadID) -{ - data[dti.x].u = QuadReadLaneAt(data[dti.x].u, 0); - data[dti.x].u.x = QuadReadLaneAt(data[dti.x].u.x, 0); - data[dti.x].u.xy = QuadReadLaneAt(data[dti.x].u.xy, 0); - data[dti.x].u.xyz = QuadReadLaneAt(data[dti.x].u.xyz, 0); - - data[dti.x].i = QuadReadLaneAt(data[dti.x].i, 0); - data[dti.x].i.x = QuadReadLaneAt(data[dti.x].i.x, 0); - data[dti.x].i.xy = QuadReadLaneAt(data[dti.x].i.xy, 0); - data[dti.x].i.xyz = QuadReadLaneAt(data[dti.x].i.xyz, 0); - - data[dti.x].f = QuadReadLaneAt(data[dti.x].f, 0); - data[dti.x].f.x = QuadReadLaneAt(data[dti.x].f.x, 0); - data[dti.x].f.xy = QuadReadLaneAt(data[dti.x].f.xy, 0); - data[dti.x].f.xyz = QuadReadLaneAt(data[dti.x].f.xyz, 0); - - data[dti.x].d = QuadReadLaneAt(data[dti.x].d, 0); - data[dti.x].d.x = QuadReadLaneAt(data[dti.x].d.x, 0); - data[dti.x].d.xy = QuadReadLaneAt(data[dti.x].d.xy, 0); - data[dti.x].d.xyz = QuadReadLaneAt(data[dti.x].d.xyz, 0); - - data[dti.x].u = QuadReadLaneAt(data[dti.x].u, 1); - data[dti.x].u.x = QuadReadLaneAt(data[dti.x].u.x, 1); - data[dti.x].u.xy = QuadReadLaneAt(data[dti.x].u.xy, 1); - data[dti.x].u.xyz = QuadReadLaneAt(data[dti.x].u.xyz, 1); - - data[dti.x].i = QuadReadLaneAt(data[dti.x].i, 1); - data[dti.x].i.x = QuadReadLaneAt(data[dti.x].i.x, 1); - data[dti.x].i.xy = QuadReadLaneAt(data[dti.x].i.xy, 1); - data[dti.x].i.xyz = QuadReadLaneAt(data[dti.x].i.xyz, 1); - - data[dti.x].f = QuadReadLaneAt(data[dti.x].f, 1); - data[dti.x].f.x = QuadReadLaneAt(data[dti.x].f.x, 1); - data[dti.x].f.xy = QuadReadLaneAt(data[dti.x].f.xy, 1); - data[dti.x].f.xyz = QuadReadLaneAt(data[dti.x].f.xyz, 1); - - data[dti.x].d = QuadReadLaneAt(data[dti.x].d, 1); - data[dti.x].d.x = QuadReadLaneAt(data[dti.x].d.x, 1); - data[dti.x].d.xy = QuadReadLaneAt(data[dti.x].d.xy, 1); - data[dti.x].d.xyz = QuadReadLaneAt(data[dti.x].d.xyz, 1); - - data[dti.x].u = QuadReadLaneAt(data[dti.x].u, 2); - data[dti.x].u.x = QuadReadLaneAt(data[dti.x].u.x, 2); - data[dti.x].u.xy = QuadReadLaneAt(data[dti.x].u.xy, 2); - data[dti.x].u.xyz = QuadReadLaneAt(data[dti.x].u.xyz, 2); - - data[dti.x].i = QuadReadLaneAt(data[dti.x].i, 2); - data[dti.x].i.x = QuadReadLaneAt(data[dti.x].i.x, 2); - data[dti.x].i.xy = QuadReadLaneAt(data[dti.x].i.xy, 2); - data[dti.x].i.xyz = QuadReadLaneAt(data[dti.x].i.xyz, 2); - - data[dti.x].f = QuadReadLaneAt(data[dti.x].f, 2); - data[dti.x].f.x = QuadReadLaneAt(data[dti.x].f.x, 2); - data[dti.x].f.xy = QuadReadLaneAt(data[dti.x].f.xy, 2); - data[dti.x].f.xyz = QuadReadLaneAt(data[dti.x].f.xyz, 2); - - data[dti.x].d = QuadReadLaneAt(data[dti.x].d, 2); - data[dti.x].d.x = QuadReadLaneAt(data[dti.x].d.x, 2); - data[dti.x].d.xy = QuadReadLaneAt(data[dti.x].d.xy, 2); - data[dti.x].d.xyz = QuadReadLaneAt(data[dti.x].d.xyz, 2); - - data[dti.x].u = QuadReadLaneAt(data[dti.x].u, 3); - data[dti.x].u.x = QuadReadLaneAt(data[dti.x].u.x, 3); - data[dti.x].u.xy = QuadReadLaneAt(data[dti.x].u.xy, 3); - data[dti.x].u.xyz = QuadReadLaneAt(data[dti.x].u.xyz, 3); - - data[dti.x].i = QuadReadLaneAt(data[dti.x].i, 3); - data[dti.x].i.x = QuadReadLaneAt(data[dti.x].i.x, 3); - data[dti.x].i.xy = QuadReadLaneAt(data[dti.x].i.xy, 3); - data[dti.x].i.xyz = QuadReadLaneAt(data[dti.x].i.xyz, 3); - - data[dti.x].f = QuadReadLaneAt(data[dti.x].f, 3); - data[dti.x].f.x = QuadReadLaneAt(data[dti.x].f.x, 3); - data[dti.x].f.xy = QuadReadLaneAt(data[dti.x].f.xy, 3); - data[dti.x].f.xyz = QuadReadLaneAt(data[dti.x].f.xyz, 3); - - data[dti.x].d = QuadReadLaneAt(data[dti.x].d, 3); - data[dti.x].d.x = QuadReadLaneAt(data[dti.x].d.x, 3); - data[dti.x].d.xy = QuadReadLaneAt(data[dti.x].d.xy, 3); - data[dti.x].d.xyz = QuadReadLaneAt(data[dti.x].d.xyz, 3); - - data[dti.x].u = QuadReadAcrossX(data[dti.x].u); - data[dti.x].u.x = QuadReadAcrossX(data[dti.x].u.x); - data[dti.x].u.xy = QuadReadAcrossX(data[dti.x].u.xy); - data[dti.x].u.xyz = QuadReadAcrossX(data[dti.x].u.xyz); - - data[dti.x].i = QuadReadAcrossX(data[dti.x].i); - data[dti.x].i.x = QuadReadAcrossX(data[dti.x].i.x); - data[dti.x].i.xy = QuadReadAcrossX(data[dti.x].i.xy); - data[dti.x].i.xyz = QuadReadAcrossX(data[dti.x].i.xyz); - - data[dti.x].f = QuadReadAcrossX(data[dti.x].f); - data[dti.x].f.x = QuadReadAcrossX(data[dti.x].f.x); - data[dti.x].f.xy = QuadReadAcrossX(data[dti.x].f.xy); - data[dti.x].f.xyz = QuadReadAcrossX(data[dti.x].f.xyz); - - data[dti.x].d = QuadReadAcrossX(data[dti.x].d); - data[dti.x].d.x = QuadReadAcrossX(data[dti.x].d.x); - data[dti.x].d.xy = QuadReadAcrossX(data[dti.x].d.xy); - data[dti.x].d.xyz = QuadReadAcrossX(data[dti.x].d.xyz); - - data[dti.x].u = QuadReadAcrossY(data[dti.x].u); - data[dti.x].u.x = QuadReadAcrossY(data[dti.x].u.x); - data[dti.x].u.xy = QuadReadAcrossY(data[dti.x].u.xy); - data[dti.x].u.xyz = QuadReadAcrossY(data[dti.x].u.xyz); - - data[dti.x].i = QuadReadAcrossY(data[dti.x].i); - data[dti.x].i.x = QuadReadAcrossY(data[dti.x].i.x); - data[dti.x].i.xy = QuadReadAcrossY(data[dti.x].i.xy); - data[dti.x].i.xyz = QuadReadAcrossY(data[dti.x].i.xyz); - - data[dti.x].f = QuadReadAcrossY(data[dti.x].f); - data[dti.x].f.x = QuadReadAcrossY(data[dti.x].f.x); - data[dti.x].f.xy = QuadReadAcrossY(data[dti.x].f.xy); - data[dti.x].f.xyz = QuadReadAcrossY(data[dti.x].f.xyz); - - data[dti.x].d = QuadReadAcrossY(data[dti.x].d); - data[dti.x].d.x = QuadReadAcrossY(data[dti.x].d.x); - data[dti.x].d.xy = QuadReadAcrossY(data[dti.x].d.xy); - data[dti.x].d.xyz = QuadReadAcrossY(data[dti.x].d.xyz); - - data[dti.x].u = QuadReadAcrossDiagonal(data[dti.x].u); - data[dti.x].u.x = QuadReadAcrossDiagonal(data[dti.x].u.x); - data[dti.x].u.xy = QuadReadAcrossDiagonal(data[dti.x].u.xy); - data[dti.x].u.xyz = QuadReadAcrossDiagonal(data[dti.x].u.xyz); - - data[dti.x].i = QuadReadAcrossDiagonal(data[dti.x].i); - data[dti.x].i.x = QuadReadAcrossDiagonal(data[dti.x].i.x); - data[dti.x].i.xy = QuadReadAcrossDiagonal(data[dti.x].i.xy); - data[dti.x].i.xyz = QuadReadAcrossDiagonal(data[dti.x].i.xyz); - - data[dti.x].f = QuadReadAcrossDiagonal(data[dti.x].f); - data[dti.x].f.x = QuadReadAcrossDiagonal(data[dti.x].f.x); - data[dti.x].f.xy = QuadReadAcrossDiagonal(data[dti.x].f.xy); - data[dti.x].f.xyz = QuadReadAcrossDiagonal(data[dti.x].f.xyz); - - data[dti.x].d = QuadReadAcrossDiagonal(data[dti.x].d); - data[dti.x].d.x = QuadReadAcrossDiagonal(data[dti.x].d.x); - data[dti.x].d.xy = QuadReadAcrossDiagonal(data[dti.x].d.xy); - data[dti.x].d.xyz = QuadReadAcrossDiagonal(data[dti.x].d.xyz); -} diff --git a/deps/glslang/Test/hlsl.wavequery.comp b/deps/glslang/Test/hlsl.wavequery.comp deleted file mode 100644 index a689e119..00000000 --- a/deps/glslang/Test/hlsl.wavequery.comp +++ /dev/null @@ -1,7 +0,0 @@ -RWStructuredBuffer data; - -[numthreads(32, 16, 1)] -void CSMain() -{ - data[WaveGetLaneIndex()] = (WaveIsFirstLane()) ? WaveGetLaneCount() : 0; -} diff --git a/deps/glslang/Test/hlsl.wavequery.frag b/deps/glslang/Test/hlsl.wavequery.frag deleted file mode 100644 index d1437f06..00000000 --- a/deps/glslang/Test/hlsl.wavequery.frag +++ /dev/null @@ -1,11 +0,0 @@ -float4 PixelShaderFunction() : COLOR0 -{ - if (WaveIsFirstLane()) - { - return float4(1, 2, 3, 4); - } - else - { - return float4(4, 3, 2, 1); - } -} diff --git a/deps/glslang/Test/hlsl.wavereduction.comp b/deps/glslang/Test/hlsl.wavereduction.comp deleted file mode 100644 index b7604ad9..00000000 --- a/deps/glslang/Test/hlsl.wavereduction.comp +++ /dev/null @@ -1,125 +0,0 @@ -struct Types -{ - uint4 u; - int4 i; - float4 f; - double4 d; -}; - -RWStructuredBuffer data; - -[numthreads(32, 16, 1)] -void CSMain(uint3 dti : SV_DispatchThreadID) -{ - data[dti.x].u = WaveActiveSum(data[dti.x].u); - data[dti.x].u.x = WaveActiveSum(data[dti.x].u.x); - data[dti.x].u.xy = WaveActiveSum(data[dti.x].u.xy); - data[dti.x].u.xyz = WaveActiveSum(data[dti.x].u.xyz); - - data[dti.x].i = WaveActiveSum(data[dti.x].i); - data[dti.x].i.x = WaveActiveSum(data[dti.x].i.x); - data[dti.x].i.xy = WaveActiveSum(data[dti.x].i.xy); - data[dti.x].i.xyz = WaveActiveSum(data[dti.x].i.xyz); - - data[dti.x].f = WaveActiveSum(data[dti.x].f); - data[dti.x].f.x = WaveActiveSum(data[dti.x].f.x); - data[dti.x].f.xy = WaveActiveSum(data[dti.x].f.xy); - data[dti.x].f.xyz = WaveActiveSum(data[dti.x].f.xyz); - - data[dti.x].d = WaveActiveSum(data[dti.x].d); - data[dti.x].d.x = WaveActiveSum(data[dti.x].d.x); - data[dti.x].d.xy = WaveActiveSum(data[dti.x].d.xy); - data[dti.x].d.xyz = WaveActiveSum(data[dti.x].d.xyz); - - data[dti.x].u = WaveActiveProduct(data[dti.x].u); - data[dti.x].u.x = WaveActiveProduct(data[dti.x].u.x); - data[dti.x].u.xy = WaveActiveProduct(data[dti.x].u.xy); - data[dti.x].u.xyz = WaveActiveProduct(data[dti.x].u.xyz); - - data[dti.x].i = WaveActiveProduct(data[dti.x].i); - data[dti.x].i.x = WaveActiveProduct(data[dti.x].i.x); - data[dti.x].i.xy = WaveActiveProduct(data[dti.x].i.xy); - data[dti.x].i.xyz = WaveActiveProduct(data[dti.x].i.xyz); - - data[dti.x].f = WaveActiveProduct(data[dti.x].f); - data[dti.x].f.x = WaveActiveProduct(data[dti.x].f.x); - data[dti.x].f.xy = WaveActiveProduct(data[dti.x].f.xy); - data[dti.x].f.xyz = WaveActiveProduct(data[dti.x].f.xyz); - - data[dti.x].d = WaveActiveProduct(data[dti.x].d); - data[dti.x].d.x = WaveActiveProduct(data[dti.x].d.x); - data[dti.x].d.xy = WaveActiveProduct(data[dti.x].d.xy); - data[dti.x].d.xyz = WaveActiveProduct(data[dti.x].d.xyz); - - data[dti.x].u = WaveActiveMin(data[dti.x].u); - data[dti.x].u.x = WaveActiveMin(data[dti.x].u.x); - data[dti.x].u.xy = WaveActiveMin(data[dti.x].u.xy); - data[dti.x].u.xyz = WaveActiveMin(data[dti.x].u.xyz); - - data[dti.x].i = WaveActiveMin(data[dti.x].i); - data[dti.x].i.x = WaveActiveMin(data[dti.x].i.x); - data[dti.x].i.xy = WaveActiveMin(data[dti.x].i.xy); - data[dti.x].i.xyz = WaveActiveMin(data[dti.x].i.xyz); - - data[dti.x].f = WaveActiveMin(data[dti.x].f); - data[dti.x].f.x = WaveActiveMin(data[dti.x].f.x); - data[dti.x].f.xy = WaveActiveMin(data[dti.x].f.xy); - data[dti.x].f.xyz = WaveActiveMin(data[dti.x].f.xyz); - - data[dti.x].d = WaveActiveMin(data[dti.x].d); - data[dti.x].d.x = WaveActiveMin(data[dti.x].d.x); - data[dti.x].d.xy = WaveActiveMin(data[dti.x].d.xy); - data[dti.x].d.xyz = WaveActiveMin(data[dti.x].d.xyz); - - data[dti.x].u = WaveActiveMax(data[dti.x].u); - data[dti.x].u.x = WaveActiveMax(data[dti.x].u.x); - data[dti.x].u.xy = WaveActiveMax(data[dti.x].u.xy); - data[dti.x].u.xyz = WaveActiveMax(data[dti.x].u.xyz); - - data[dti.x].i = WaveActiveMax(data[dti.x].i); - data[dti.x].i.x = WaveActiveMax(data[dti.x].i.x); - data[dti.x].i.xy = WaveActiveMax(data[dti.x].i.xy); - data[dti.x].i.xyz = WaveActiveMax(data[dti.x].i.xyz); - - data[dti.x].f = WaveActiveMax(data[dti.x].f); - data[dti.x].f.x = WaveActiveMax(data[dti.x].f.x); - data[dti.x].f.xy = WaveActiveMax(data[dti.x].f.xy); - data[dti.x].f.xyz = WaveActiveMax(data[dti.x].f.xyz); - - data[dti.x].d = WaveActiveMax(data[dti.x].d); - data[dti.x].d.x = WaveActiveMax(data[dti.x].d.x); - data[dti.x].d.xy = WaveActiveMax(data[dti.x].d.xy); - data[dti.x].d.xyz = WaveActiveMax(data[dti.x].d.xyz); - - data[dti.x].u = WaveActiveBitAnd(data[dti.x].u); - data[dti.x].u.x = WaveActiveBitAnd(data[dti.x].u.x); - data[dti.x].u.xy = WaveActiveBitAnd(data[dti.x].u.xy); - data[dti.x].u.xyz = WaveActiveBitAnd(data[dti.x].u.xyz); - - data[dti.x].i = WaveActiveBitAnd(data[dti.x].i); - data[dti.x].i.x = WaveActiveBitAnd(data[dti.x].i.x); - data[dti.x].i.xy = WaveActiveBitAnd(data[dti.x].i.xy); - data[dti.x].i.xyz = WaveActiveBitAnd(data[dti.x].i.xyz); - - data[dti.x].u = WaveActiveBitOr(data[dti.x].u); - data[dti.x].u.x = WaveActiveBitOr(data[dti.x].u.x); - data[dti.x].u.xy = WaveActiveBitOr(data[dti.x].u.xy); - data[dti.x].u.xyz = WaveActiveBitOr(data[dti.x].u.xyz); - - data[dti.x].i = WaveActiveBitOr(data[dti.x].i); - data[dti.x].i.x = WaveActiveBitOr(data[dti.x].i.x); - data[dti.x].i.xy = WaveActiveBitOr(data[dti.x].i.xy); - data[dti.x].i.xyz = WaveActiveBitOr(data[dti.x].i.xyz); - - data[dti.x].u = WaveActiveBitXor(data[dti.x].u); - data[dti.x].u.x = WaveActiveBitXor(data[dti.x].u.x); - data[dti.x].u.xy = WaveActiveBitXor(data[dti.x].u.xy); - data[dti.x].u.xyz = WaveActiveBitXor(data[dti.x].u.xyz); - - data[dti.x].i = WaveActiveBitXor(data[dti.x].i); - data[dti.x].i.x = WaveActiveBitXor(data[dti.x].i.x); - data[dti.x].i.xy = WaveActiveBitXor(data[dti.x].i.xy); - data[dti.x].i.xyz = WaveActiveBitXor(data[dti.x].i.xyz); - - data[dti.x].u.x = WaveActiveCountBits(data[dti.x].u.x == 0); -} diff --git a/deps/glslang/Test/hlsl.wavevote.comp b/deps/glslang/Test/hlsl.wavevote.comp deleted file mode 100644 index 0370e69b..00000000 --- a/deps/glslang/Test/hlsl.wavevote.comp +++ /dev/null @@ -1,10 +0,0 @@ -RWStructuredBuffer data; - -[numthreads(32, 16, 1)] -void CSMain(uint3 dti : SV_DispatchThreadID) -{ - data[dti.x] = WaveActiveBallot(WaveActiveAnyTrue(dti.x == 0)); - data[dti.y] = WaveActiveBallot(WaveActiveAllTrue(dti.y == 0)); - data[dti.z] = WaveActiveBallot(WaveActiveAllEqualBool(dti.z == 0)); - data[dti.z] = WaveActiveBallot(WaveActiveAllEqual(dti.z)); -} diff --git a/deps/glslang/Test/hlsl.whileLoop.frag b/deps/glslang/Test/hlsl.whileLoop.frag deleted file mode 100644 index e4084ae7..00000000 --- a/deps/glslang/Test/hlsl.whileLoop.frag +++ /dev/null @@ -1,7 +0,0 @@ -float4 PixelShaderFunction(float4 input) : COLOR0 -{ - while (any(input != input)) { return input; } - while (false) ; - [unroll] while (false) { } - while ((false)) { } -} diff --git a/deps/glslang/Test/hlsl.y-negate-1.vert b/deps/glslang/Test/hlsl.y-negate-1.vert deleted file mode 100644 index ee62ec24..00000000 --- a/deps/glslang/Test/hlsl.y-negate-1.vert +++ /dev/null @@ -1,9 +0,0 @@ - -// Test Y negation from entry point return - -float4 pos; - -float4 main() : SV_Position -{ - return pos; -} diff --git a/deps/glslang/Test/hlsl.y-negate-2.vert b/deps/glslang/Test/hlsl.y-negate-2.vert deleted file mode 100644 index 01fa6ce7..00000000 --- a/deps/glslang/Test/hlsl.y-negate-2.vert +++ /dev/null @@ -1,8 +0,0 @@ -// Test Y negation from entry point out parameter - -float4 pos; - -void main(out float4 position : SV_Position) -{ - position = pos; -} diff --git a/deps/glslang/Test/hlsl.y-negate-3.vert b/deps/glslang/Test/hlsl.y-negate-3.vert deleted file mode 100644 index a0c4a8d6..00000000 --- a/deps/glslang/Test/hlsl.y-negate-3.vert +++ /dev/null @@ -1,18 +0,0 @@ -// Test Y negation from entry point out parameter - -float4 position; - -struct VS_OUT { - float4 pos : SV_Position; - int somethingelse; -}; - -VS_OUT main() -{ - VS_OUT vsout; - - vsout.pos = position; - vsout.somethingelse = 42; - - return vsout; -} diff --git a/deps/glslang/Test/i1.h b/deps/glslang/Test/i1.h deleted file mode 100644 index e068ff70..00000000 --- a/deps/glslang/Test/i1.h +++ /dev/null @@ -1 +0,0 @@ - u = g_nDataIdx; diff --git a/deps/glslang/Test/implicitInnerAtomicUint.frag b/deps/glslang/Test/implicitInnerAtomicUint.frag deleted file mode 100644 index bb76516f..00000000 --- a/deps/glslang/Test/implicitInnerAtomicUint.frag +++ /dev/null @@ -1,2 +0,0 @@ -#version 460 -layout(binding = 0) uniform atomic_uint c[1][]; \ No newline at end of file diff --git a/deps/glslang/Test/inc1/badInc.h b/deps/glslang/Test/inc1/badInc.h deleted file mode 100644 index a7713553..00000000 --- a/deps/glslang/Test/inc1/badInc.h +++ /dev/null @@ -1 +0,0 @@ -#include "parentBad" diff --git a/deps/glslang/Test/inc1/bar.h b/deps/glslang/Test/inc1/bar.h deleted file mode 100644 index 1a650fb6..00000000 --- a/deps/glslang/Test/inc1/bar.h +++ /dev/null @@ -1,3 +0,0 @@ -float4 i2; - -#include "foo.h" diff --git a/deps/glslang/Test/inc1/foo.h b/deps/glslang/Test/inc1/foo.h deleted file mode 100644 index 1819034d..00000000 --- a/deps/glslang/Test/inc1/foo.h +++ /dev/null @@ -1,3 +0,0 @@ -#include "parent.h" - -float4 i3; diff --git a/deps/glslang/Test/inc1/path1/bar.h b/deps/glslang/Test/inc1/path1/bar.h deleted file mode 100644 index 46141dd1..00000000 --- a/deps/glslang/Test/inc1/path1/bar.h +++ /dev/null @@ -1 +0,0 @@ -float4 i9991; diff --git a/deps/glslang/Test/inc1/path1/local.h b/deps/glslang/Test/inc1/path1/local.h deleted file mode 100644 index b3aac8e3..00000000 --- a/deps/glslang/Test/inc1/path1/local.h +++ /dev/null @@ -1 +0,0 @@ -float4 p2; diff --git a/deps/glslang/Test/inc1/path1/notHere.h b/deps/glslang/Test/inc1/path1/notHere.h deleted file mode 100644 index 2e7d56a6..00000000 --- a/deps/glslang/Test/inc1/path1/notHere.h +++ /dev/null @@ -1,4 +0,0 @@ -float4 p1; - -#include "local.h" -#include "remote.h" diff --git a/deps/glslang/Test/inc1/path2/bar.h b/deps/glslang/Test/inc1/path2/bar.h deleted file mode 100644 index 46141dd1..00000000 --- a/deps/glslang/Test/inc1/path2/bar.h +++ /dev/null @@ -1 +0,0 @@ -float4 i9991; diff --git a/deps/glslang/Test/inc1/path2/notHere.h b/deps/glslang/Test/inc1/path2/notHere.h deleted file mode 100644 index 63f4ca47..00000000 --- a/deps/glslang/Test/inc1/path2/notHere.h +++ /dev/null @@ -1 +0,0 @@ -float4 paoeu1; diff --git a/deps/glslang/Test/inc1/path2/remote.h b/deps/glslang/Test/inc1/path2/remote.h deleted file mode 100644 index c925d27a..00000000 --- a/deps/glslang/Test/inc1/path2/remote.h +++ /dev/null @@ -1 +0,0 @@ -float4 p3; diff --git a/deps/glslang/Test/inc2/bar.h b/deps/glslang/Test/inc2/bar.h deleted file mode 100644 index 901c058e..00000000 --- a/deps/glslang/Test/inc2/bar.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "foo.h" -float4 i5; diff --git a/deps/glslang/Test/inc2/foo.h b/deps/glslang/Test/inc2/foo.h deleted file mode 100644 index ea1e5ba1..00000000 --- a/deps/glslang/Test/inc2/foo.h +++ /dev/null @@ -1 +0,0 @@ -float4 i6; diff --git a/deps/glslang/Test/include.vert b/deps/glslang/Test/include.vert deleted file mode 100644 index 192a4891..00000000 --- a/deps/glslang/Test/include.vert +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 - -#extension GL_GOOGLE_include_directive : enable - -#define float4 vec4 - -#include "bar.h" -#include "./inc1/bar.h" -#include "inc2\bar.h" - -out vec4 color; - -void main() -{ - color = i1 + i2 + i3 + i4 + i5 + i6; -} diff --git a/deps/glslang/Test/invalidSwizzle.vert b/deps/glslang/Test/invalidSwizzle.vert deleted file mode 100644 index 799ff872..00000000 --- a/deps/glslang/Test/invalidSwizzle.vert +++ /dev/null @@ -1,10 +0,0 @@ -#version 420 - -void f(); -uniform sampler2D s; - -void main() { - vec2 v = s.rr; // Swizzles do not apply to samplers - f().xx; // Scalar swizzle does not apply to void - f().xy; // Vector swizzle does not apply either -} \ No newline at end of file diff --git a/deps/glslang/Test/iomap.blockOutVariableIn.2.vert b/deps/glslang/Test/iomap.blockOutVariableIn.2.vert deleted file mode 100644 index 67f45c97..00000000 --- a/deps/glslang/Test/iomap.blockOutVariableIn.2.vert +++ /dev/null @@ -1,14 +0,0 @@ -#version 440 - -layout(location = 0) out Block -{ - vec4 a1; - vec2 a2; -}; - -void main() -{ - a1 = vec4(1.0); - a2 = vec2(0.5); - gl_Position = vec4(1.0); -} diff --git a/deps/glslang/Test/iomap.blockOutVariableIn.frag b/deps/glslang/Test/iomap.blockOutVariableIn.frag deleted file mode 100644 index f2cb26e7..00000000 --- a/deps/glslang/Test/iomap.blockOutVariableIn.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 440 - -layout(location = 0) in vec4 a1; -layout(location = 1) in vec2 a2; - -layout(location = 0) out vec4 color; - -void main() -{ - color = vec4(a1.xy, a2); -} diff --git a/deps/glslang/Test/iomap.blockOutVariableIn.geom b/deps/glslang/Test/iomap.blockOutVariableIn.geom deleted file mode 100644 index feefdd13..00000000 --- a/deps/glslang/Test/iomap.blockOutVariableIn.geom +++ /dev/null @@ -1,28 +0,0 @@ -#version 440 - -layout(triangles) in; -layout(triangle_strip, max_vertices=3) out; - -layout(location = 0) in vec4 in_a1[3]; -layout(location = 1) in vec2 in_a2[3]; - -layout(location = 0) out vec4 a1; -layout(location = 1) out vec2 a2; - -void main() -{ - a1 = in_a1[0]; - a2 = in_a2[0]; - gl_Position = vec4(1.0); - EmitVertex(); - - a1 = in_a1[1]; - a2 = in_a2[1]; - gl_Position = vec4(1.0); - EmitVertex(); - - a1 = in_a1[2]; - a2 = in_a2[2]; - gl_Position = vec4(1.0); - EmitVertex(); -} diff --git a/deps/glslang/Test/iomap.blockOutVariableIn.vert b/deps/glslang/Test/iomap.blockOutVariableIn.vert deleted file mode 100644 index 67f45c97..00000000 --- a/deps/glslang/Test/iomap.blockOutVariableIn.vert +++ /dev/null @@ -1,14 +0,0 @@ -#version 440 - -layout(location = 0) out Block -{ - vec4 a1; - vec2 a2; -}; - -void main() -{ - a1 = vec4(1.0); - a2 = vec2(0.5); - gl_Position = vec4(1.0); -} diff --git a/deps/glslang/Test/iomap.crossStage.2.frag b/deps/glslang/Test/iomap.crossStage.2.frag deleted file mode 100644 index 25756a6d..00000000 --- a/deps/glslang/Test/iomap.crossStage.2.frag +++ /dev/null @@ -1,42 +0,0 @@ -#version 460 - - -layout(location = 5) in outBlock { - vec4 o3; -}; - - -in vec4 gfo1; -in vec2 gfo2; - -out vec4 outColor; - -uniform vec2 u1; -uniform vec3 u2; // initializer present in vertex stage -uniform vec4 u3 = vec4(0); // initializer matches initializer in vertex stage - -uniform mat2 um2 = mat2(4.0); - -layout (location = 0, binding = 0) uniform sampler2D glass; - -uniform crossStageBlock1 { - uniform vec4 a; - vec4 b; -}; - -buffer fragOnlyBlock { - vec2 fb1; -}; - -uniform crossStageBlock2 { - uniform vec4 a; - vec2 b; -} blockName2 [2]; // instance name different from vert - - -void main() -{ - vec4 color = gfo1 * u1.rgrg * u2.rgbr * u3.rgba; // o1 is statically used - outColor = color; -} - diff --git a/deps/glslang/Test/iomap.crossStage.2.geom b/deps/glslang/Test/iomap.crossStage.2.geom deleted file mode 100644 index 91508ab5..00000000 --- a/deps/glslang/Test/iomap.crossStage.2.geom +++ /dev/null @@ -1,39 +0,0 @@ -#version 460 - -layout(points) in; -layout(triangle_strip, max_vertices=3) out; - -in vec4 vgo1[]; -in vec2 vgo2[]; - -layout(location = 5) in outBlock { - vec4 o3; -} inBlock[]; - -out vec4 gfo1; -out vec2 gfo2; - -layout(location = 5) out outBlock { - vec4 o3; -} gf_out; - -uniform vec2 u1; -uniform vec3 u2 = vec3(0); // initializer not present in fragment stage -uniform vec4 u3 = vec4(0); // initializer matches initializer in fragment stage - -uniform crossStageBlock2 { - uniform vec4 a; - vec2 b; -} blockName1 [2]; // instance name different from frag - -void main() -{ - for (int i = 0; i < 3; i++) { - gfo1 = vec4(0); - gfo2 = vec2(0); - gf_out.o3 = inBlock[i].o3; - EmitVertex(); - } - EndPrimitive(); -} - diff --git a/deps/glslang/Test/iomap.crossStage.2.vert b/deps/glslang/Test/iomap.crossStage.2.vert deleted file mode 100644 index ebb0d9d1..00000000 --- a/deps/glslang/Test/iomap.crossStage.2.vert +++ /dev/null @@ -1,38 +0,0 @@ -#version 460 - -out vec4 vgo1; // declaration order different than fragment shader -out vec2 vgo2; // declaration order different than fragment shader - -layout(location = 5) out outBlock { - vec4 o3; -}; - -uniform vec2 u1; -uniform vec3 u2 = vec3(0); // initializer not present in fragment stage -uniform vec4 u3 = vec4(0); // initializer matches initializer in fragment stage - -uniform mat2 um2 = mat2(4.0); - -layout (location = 0, binding = 0) uniform sampler2D glass; - -uniform crossStageBlock1 { - uniform vec4 a; - vec4 b; -}; - -buffer vertOnlyBlock { - vec2 vb1; -}; - -uniform crossStageBlock2 { - uniform vec4 a; - vec2 b; -} blockName1 [2]; // instance name different from frag - -void main() -{ - vgo1 = vec4(0); - vgo2 = vec2(0); - o3 = vec4(0); -} - diff --git a/deps/glslang/Test/iomap.crossStage.frag b/deps/glslang/Test/iomap.crossStage.frag deleted file mode 100644 index 16247032..00000000 --- a/deps/glslang/Test/iomap.crossStage.frag +++ /dev/null @@ -1,41 +0,0 @@ -#version 460 - - -layout(location = 5) in outBlock { - vec4 o3; -}; - -in vec2 o2; // declaration order different than vertex shader -in vec4 o1; // declaration order different than vertex shader - -out vec4 outColor; - -uniform vec2 u1; -uniform vec3 u2; // initializer present in vertex stage -uniform vec4 u3 = vec4(0); // initializer matches initializer in vertex stage - -uniform mat2 um2 = mat2(4.0); - -layout (location = 0, binding = 0) uniform sampler2D glass; - -uniform crossStageBlock1 { - uniform vec4 a; - vec4 b; -}; - -buffer fragOnlyBlock { - vec2 fb1; -}; - -uniform crossStageBlock2 { - uniform vec4 a; - vec2 b; -} blockName2 [2]; // instance name different from vert - - -void main() -{ - vec4 color = o1 * u1.rgrg * u2.rgbr * u3.rgba; // o1 is statically used - outColor = color; -} - diff --git a/deps/glslang/Test/iomap.crossStage.vert b/deps/glslang/Test/iomap.crossStage.vert deleted file mode 100644 index d05874ff..00000000 --- a/deps/glslang/Test/iomap.crossStage.vert +++ /dev/null @@ -1,38 +0,0 @@ -#version 460 - -out vec4 o1; // declaration order different than fragment shader -out vec2 o2; // declaration order different than fragment shader - -layout(location = 5) out outBlock { - vec4 o3; -}; - -uniform vec2 u1; -uniform vec3 u2 = vec3(0); // initializer not present in fragment stage -uniform vec4 u3 = vec4(0); // initializer matches initializer in fragment stage - -uniform mat2 um2 = mat2(4.0); - -layout (location = 0, binding = 0) uniform sampler2D glass; - -uniform crossStageBlock1 { - uniform vec4 a; - vec4 b; -}; - -buffer vertOnlyBlock { - vec2 vb1; -}; - -uniform crossStageBlock2 { - uniform vec4 a; - vec2 b; -} blockName1 [2]; // instance name different from frag - -void main() -{ - o1 = vec4(0); - o2 = vec2(0); - o3 = vec4(0); -} - diff --git a/deps/glslang/Test/iomap.crossStage.vk.frag b/deps/glslang/Test/iomap.crossStage.vk.frag deleted file mode 100644 index d09e6874..00000000 --- a/deps/glslang/Test/iomap.crossStage.vk.frag +++ /dev/null @@ -1,50 +0,0 @@ -#version 460 - - -layout(location = 5) in outBlock { - vec4 o3; -}; - - -in vec4 gfo1; -in vec2 gfo2; - -out vec4 outColor; - -layout (binding = 0) uniform sampler2D glass; - -uniform crossStageBlock1 { - uniform vec4 a; - vec4 b; -}; - -readonly buffer fragOnlyBlock { - vec2 fb1; -}; - -uniform crossStageBlock2 { - uniform vec4 a; - vec2 b; -} blockName2 [2]; // instance name different from vert - -vec2 Bar() { - return fb1 + - blockName2[0].b + - blockName2[1].b; -} - -vec4 Foo() { - return a + - b + - blockName2[0].a + - blockName2[1].a + - vec4(Bar(), 0.0, 0.0); -} - -void main() -{ - vec4 color = gfo1; // o1 is statically used - color = color + Foo(); - outColor = color; -} - diff --git a/deps/glslang/Test/iomap.crossStage.vk.geom b/deps/glslang/Test/iomap.crossStage.vk.geom deleted file mode 100644 index b9517373..00000000 --- a/deps/glslang/Test/iomap.crossStage.vk.geom +++ /dev/null @@ -1,35 +0,0 @@ -#version 460 - -layout(points) in; -layout(triangle_strip, max_vertices=3) out; - -in vec4 vgo1[]; -in vec2 vgo2[]; - -layout(location = 5) in outBlock { - vec4 o3; -} inBlock[]; - -out vec4 gfo1; -out vec2 gfo2; - -layout(location = 5) out outBlock { - vec4 o3; -} gf_out; - -uniform crossStageBlock2 { - uniform vec4 a; - vec2 b; -} blockName1 [2]; // instance name different from frag - -void main() -{ - for (int i = 0; i < 3; i++) { - gfo1 = vec4(0); - gfo2 = vec2(0); - gf_out.o3 = inBlock[i].o3; - EmitVertex(); - } - EndPrimitive(); -} - diff --git a/deps/glslang/Test/iomap.crossStage.vk.vert b/deps/glslang/Test/iomap.crossStage.vk.vert deleted file mode 100644 index e422131f..00000000 --- a/deps/glslang/Test/iomap.crossStage.vk.vert +++ /dev/null @@ -1,32 +0,0 @@ -#version 460 - -out vec4 vgo1; // declaration order different than fragment shader -out vec2 vgo2; // declaration order different than fragment shader - -layout(location = 5) out outBlock { - vec4 o3; -}; - -layout (binding = 0) uniform sampler2D glass; - -uniform crossStageBlock1 { - uniform vec4 a; - vec4 b; -}; - -readonly buffer vertOnlyBlock { - vec2 vb1; -}; - -uniform crossStageBlock2 { - uniform vec4 a; - vec2 b; -} blockName1 [2]; // instance name different from frag - -void main() -{ - vgo1 = vec4(0); - vgo2 = vec2(0); - o3 = vec4(0); -} - diff --git a/deps/glslang/Test/iomap.variableOutBlockIn.2.vert b/deps/glslang/Test/iomap.variableOutBlockIn.2.vert deleted file mode 100644 index f9b80b46..00000000 --- a/deps/glslang/Test/iomap.variableOutBlockIn.2.vert +++ /dev/null @@ -1,11 +0,0 @@ -#version 440 - -layout(location = 0) out vec4 a1; -layout(location = 1) out vec2 a2; - -void main() -{ - a1 = vec4(1.0); - a2 = vec2(0.5); - gl_Position = vec4(1.0); -} diff --git a/deps/glslang/Test/iomap.variableOutBlockIn.frag b/deps/glslang/Test/iomap.variableOutBlockIn.frag deleted file mode 100644 index 967d7698..00000000 --- a/deps/glslang/Test/iomap.variableOutBlockIn.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 440 - -layout(location = 0) in Inputs { - vec4 a1; - vec2 a2; -}; - -layout(location = 0) out vec4 color; - -void main() -{ - color = vec4(a1.xy, a2); -} diff --git a/deps/glslang/Test/iomap.variableOutBlockIn.geom b/deps/glslang/Test/iomap.variableOutBlockIn.geom deleted file mode 100644 index 637ddabb..00000000 --- a/deps/glslang/Test/iomap.variableOutBlockIn.geom +++ /dev/null @@ -1,19 +0,0 @@ -#version 440 - -layout(triangles) in; -layout(triangle_strip, max_vertices=3) out; - -layout(location = 0) in Inputs { - vec4 a1; - vec2 a2; -} gin[3]; - -layout(location = 0) out vec4 a1; -layout(location = 1) out vec2 a2; - -void main() -{ - a1 = vec4(1.0); - a2 = vec2(0.5); - gl_Position = vec4(1.0); -} diff --git a/deps/glslang/Test/iomap.variableOutBlockIn.vert b/deps/glslang/Test/iomap.variableOutBlockIn.vert deleted file mode 100644 index f9b80b46..00000000 --- a/deps/glslang/Test/iomap.variableOutBlockIn.vert +++ /dev/null @@ -1,11 +0,0 @@ -#version 440 - -layout(location = 0) out vec4 a1; -layout(location = 1) out vec2 a2; - -void main() -{ - a1 = vec4(1.0); - a2 = vec2(0.5); - gl_Position = vec4(1.0); -} diff --git a/deps/glslang/Test/length.frag b/deps/glslang/Test/length.frag deleted file mode 100644 index 74c286f3..00000000 --- a/deps/glslang/Test/length.frag +++ /dev/null @@ -1,18 +0,0 @@ -#version 120 - -uniform vec4 u[3]; - -#ifdef TEST_POST_110 -varying vec2 v[]; -#else -varying vec2 v[2]; -#endif - -void main() -{ - int a[5]; - - vec2 t = v[0] + v[1]; - - gl_FragColor = vec4(u.length() * v.length() * a.length()); -} diff --git a/deps/glslang/Test/lineContinuation.vert b/deps/glslang/Test/lineContinuation.vert deleted file mode 100644 index 471f3a34..00000000 --- a/deps/glslang/Test/lineContinuation.vert +++ /dev/null @@ -1,151 +0,0 @@ -#version 300 es - -// this file cont\ -ains no errors other than the #error which are there to see if line numbering for errors is correct - -#error e1 - -float f\ -oo; // same as 'float foo;' - -#error e2 - -#define MAIN void main() \ - { \ -gl_Position = vec4(foo); \ -} - -#error e3 - -MAIN - -vec4 foo2(vec4 a) -{ - vec4 b = a; \ - return b; -} - -// aoeuntheo unatehutna \ antaehnathe -// anteonuth $ natohe " ' -// anteonuth natohe - -#define FOO int /* \ -*/ goodDecl; - -FOO - -#define A int q1 = \ 1 -#define B int q2 = \1 -#define C int q3 = $ 1 -#define D int q4 = @ 1 - -const highp int a1 = \ 4; // ERROR -const highp int a2 = @ 3; // ERROR -const highp int a3 = $4; // ERROR -const highp int a4 = a2\; // ERROR - -A; -B; -C; -D; - -# \ - -# \ - error good continuation - -#define AA1 a \ b -#define AA2 a \\ b -#define AA3 a \\\ b -#define AA4 a \\\\ b - -// anoetuh nonaetu \\\\\\ -still in comment - -const int abdece = 10; -const int aoeuntaoehu = abd\ -\ -\ -\ -\ -\ -ece; - -float funkyf = \ -.\ -1\ -2\ -3\ -e\ -+\ -1\ -7\ -;\ -int funkyh\ -=\ -0\ -x\ -f\ -4\ -; -int funkyo =\ -0\ -4\ -2\ -; -int c = \ -11; -int d = 1\ -2; - -#define FOOM(a,b) a + b - -#if FO\ -OM(2\ -,\ -3) -int bar103 = 17; -#endif - -// ERROR -#if FOOM(2, -3) -int bar104 = 19; -#endif - -// ERROR -#if FOOM( -2,3) -int bar105 = 19; -#endif - -int bar106 = FOOM(5,7); -int bar107 = FOOM // okay - ( - 2 - , - 3 - ) - ; - -void foo203209409() -{ - bar107 \ -+= 37; - bar107 *\ -= 38; - bar107 /=\ -39; - bar107 +\ -41; -} - -#define QUOTE "ab\ -cd" - -void foo230920394() -{ - // syntax error - bar107 +\ - = 42; -} diff --git a/deps/glslang/Test/lineContinuation100.vert b/deps/glslang/Test/lineContinuation100.vert deleted file mode 100644 index e632023c..00000000 --- a/deps/glslang/Test/lineContinuation100.vert +++ /dev/null @@ -1,56 +0,0 @@ -#version 100 - -// non-line continuation comment \ -#error good error - - - -float f\ -oo; // same as 'float foo;' - -#error e2 - -#define MAIN void main() \ - { \ -gl_Position = vec4(foo); \ -} - -#error e3 - -MAIN - -vec4 foo2(vec4 a) -{ - vec4 b = a; \ - return b; -} - -// aoeuntheo unatehutna \ antaehnathe -// anteonuth $ natohe " ' -// anteonuth natohe -/*@*/ -/* *@/*/ -//@ - -#define A int q1 = \ 1 -#define B int q2 = \1 -#define C int q3 = $ 1 -#define D int q4 = @ 1 - -const highp int a1 = \ 4; // ERROR -const highp int a2 = @ 3; // ERROR -const highp int a3 = $4; // ERROR -const highp int a4 = a2\; // ERROR - -A; -B; -C; -D; - -# \ - -# \ - error bad continuation - -#define QUOTE "ab\ -cd" diff --git a/deps/glslang/Test/link.multiAnonBlocksInvalid.0.0.vert b/deps/glslang/Test/link.multiAnonBlocksInvalid.0.0.vert deleted file mode 100644 index 106dd250..00000000 --- a/deps/glslang/Test/link.multiAnonBlocksInvalid.0.0.vert +++ /dev/null @@ -1,52 +0,0 @@ -#version 430 - -// Error: Block has different members -layout (std140) uniform Block -{ - mat4 uProj; -}; - -// Error: BufferBlock has different members -buffer BufferBlock -{ - vec4 b; -}; - -// Error: Vertex has different members -out Vertex -{ - vec4 v1; -}; - -// Error: ColorBlock has different members -layout (std140) uniform ColorBlock -{ - vec4 color1; - vec4 color2; - // Error, redeclare varaible in another anonymous block - vec4 v1; -}; - -// Error: NamedBlock is anonymous in other compilation unit -layout (std140) uniform NamedBlock -{ - mat4 m; -} myName; - -vec4 getWorld(); -vec4 getColor2(); - -out vec4 oColor; - -// Error: redeclare varaibles that are in anonymous blocks -out vec4 v1; -uniform mat4 uProj; - -void -main() -{ - oColor = color1 * getColor2(); - v1 = color1; - - gl_Position = uProj * getWorld(); -} diff --git a/deps/glslang/Test/link.multiAnonBlocksInvalid.0.1.vert b/deps/glslang/Test/link.multiAnonBlocksInvalid.0.1.vert deleted file mode 100644 index 8b4c7f81..00000000 --- a/deps/glslang/Test/link.multiAnonBlocksInvalid.0.1.vert +++ /dev/null @@ -1,48 +0,0 @@ -#version 430 - -// Error: ColorBlock has different members -layout (std140) uniform ColorBlock -{ - vec4 color2; -}; - -// Error: Block has different members -layout (std140) uniform Block -{ - mat4 uProj; - mat4 uWorld; -}; - -// Error: Vertex has different members -out Vertex -{ - vec4 v1; - vec4 v2; -}; - -// Error BufferBlock has different members -buffer BufferBlock -{ - vec4 a; -}; - -// Error: NamedBlock is anonymous in other compilation unit -layout (std140) uniform NamedBlock -{ - mat4 m; -}; - - -in vec4 P; - -vec4 getColor2() -{ - return color2; -} - -vec4 getWorld() -{ - return uWorld * P; - v2 = vec4(1); -} - diff --git a/deps/glslang/Test/link.multiAnonBlocksValid.0.0.vert b/deps/glslang/Test/link.multiAnonBlocksValid.0.0.vert deleted file mode 100644 index 470d8154..00000000 --- a/deps/glslang/Test/link.multiAnonBlocksValid.0.0.vert +++ /dev/null @@ -1,38 +0,0 @@ -#version 430 - -// Verify that matching by block name is working, not -// instance name, which was at one point failing on this -// test due to E.g anon@1 being different blocks for -// different compilation units - -layout (std140) uniform Block -{ - mat4 uProj; - mat4 uWorld; -}; - -out Vertex -{ - vec4 v1; - vec4 v2; -}; - -layout (std140) uniform ColorBlock -{ - vec4 color1; - vec4 color2; -}; - -vec4 getWorld(); -vec4 getColor2(); - -out vec4 oColor; - -void -main() -{ - oColor = color1 * getColor2(); - v1 = color1; - - gl_Position = uProj * getWorld(); -} diff --git a/deps/glslang/Test/link.multiAnonBlocksValid.0.1.vert b/deps/glslang/Test/link.multiAnonBlocksValid.0.1.vert deleted file mode 100644 index e7dccbe4..00000000 --- a/deps/glslang/Test/link.multiAnonBlocksValid.0.1.vert +++ /dev/null @@ -1,34 +0,0 @@ -#version 430 - -layout (std140) uniform ColorBlock -{ - vec4 color1; - vec4 color2; -}; - -layout (std140) uniform Block -{ - mat4 uProj; - mat4 uWorld; -}; - -out Vertex -{ - vec4 v1; - vec4 v2; -}; - - -in vec4 P; - -vec4 getColor2() -{ - return color2; -} - -vec4 getWorld() -{ - return uWorld * P; - v2 = vec4(1); -} - diff --git a/deps/glslang/Test/link.multiBlocksInvalid.0.0.vert b/deps/glslang/Test/link.multiBlocksInvalid.0.0.vert deleted file mode 100644 index 19bc0498..00000000 --- a/deps/glslang/Test/link.multiBlocksInvalid.0.0.vert +++ /dev/null @@ -1,40 +0,0 @@ -#version 430 - -// Verify that blocks with different instance names -// are correctly detected as invalid non-matching blocks -// when they are matched up by block name -layout (std140) uniform Block -{ - mat4 uProj; -} uD; - -out Vertex -{ - vec4 v1; -} oV; - -layout (std140) uniform ColorBlock -{ - vec4 color1; -} uC; - -// Error, buffer blocks and uniform blocks share the -// same namespace for their block name -layout (std430) buffer ColorBlock -{ - vec4 color1; -} uBufC; - -vec4 getWorld(); -vec4 getColor2(); - -out vec4 oColor; - -void -main() -{ - oColor = uC.color1 * getColor2(); - oV.v1 = uC.color1 + uBufC.color1; - - gl_Position = uD.uProj * getWorld(); -} diff --git a/deps/glslang/Test/link.multiBlocksInvalid.0.1.vert b/deps/glslang/Test/link.multiBlocksInvalid.0.1.vert deleted file mode 100644 index 8b9ccd15..00000000 --- a/deps/glslang/Test/link.multiBlocksInvalid.0.1.vert +++ /dev/null @@ -1,31 +0,0 @@ -#version 430 - -layout (std140) uniform ColorBlock -{ - vec4 color2; -} uColorB; - -layout (std140) uniform Block -{ - mat4 uWorld; -} uDefaultB; - -out Vertex -{ - vec4 v2; -} oVert; - - -in vec4 P; - -vec4 getColor2() -{ - return uColorB.color2; -} - -vec4 getWorld() -{ - return uDefaultB.uWorld * P; - oVert.v2 = vec4(1); -} - diff --git a/deps/glslang/Test/link.multiBlocksValid.1.0.vert b/deps/glslang/Test/link.multiBlocksValid.1.0.vert deleted file mode 100644 index b21683b7..00000000 --- a/deps/glslang/Test/link.multiBlocksValid.1.0.vert +++ /dev/null @@ -1,32 +0,0 @@ -#version 430 -layout (std140) uniform Block -{ - mat4 uProj; - mat4 uWorld; -} a; - -out Vertex -{ - vec4 v1; - vec4 v2; -} b; - -layout (std140) uniform ColorBlock -{ - vec4 color1; - vec4 color2; -} c; - -vec4 getWorld(); -vec4 getColor2(); - -out vec4 oColor; - -void -main() -{ - oColor = c.color1 * getColor2(); - b.v1 = c.color1; - - gl_Position = a.uProj * getWorld(); -} diff --git a/deps/glslang/Test/link.multiBlocksValid.1.1.vert b/deps/glslang/Test/link.multiBlocksValid.1.1.vert deleted file mode 100644 index d86a0d10..00000000 --- a/deps/glslang/Test/link.multiBlocksValid.1.1.vert +++ /dev/null @@ -1,34 +0,0 @@ -#version 430 - -layout (std140) uniform ColorBlock -{ - vec4 color1; - vec4 color2; -} a; - -layout (std140) uniform Block -{ - mat4 uProj; - mat4 uWorld; -} b; - -out Vertex -{ - vec4 v1; - vec4 v2; -} c; - - -in vec4 P; - -vec4 getColor2() -{ - return a.color2; -} - -vec4 getWorld() -{ - return b.uWorld * P; - c.v2 = vec4(1); -} - diff --git a/deps/glslang/Test/link.redeclareBuiltin.geom b/deps/glslang/Test/link.redeclareBuiltin.geom deleted file mode 100644 index a2ceff68..00000000 --- a/deps/glslang/Test/link.redeclareBuiltin.geom +++ /dev/null @@ -1,23 +0,0 @@ -#version 410 - -layout(triangles) in; -layout(triangle_strip, max_vertices=3) out; - -in gl_PerVertex -{ - vec4 gl_Position; -} gl_in[]; - -void main() -{ - gl_Position = gl_in[0].gl_Position; - EmitVertex(); - - gl_Position = gl_in[1].gl_Position; - EmitVertex(); - - gl_Position = gl_in[2].gl_Position; - EmitVertex(); - - EndPrimitive(); -} \ No newline at end of file diff --git a/deps/glslang/Test/link.redeclareBuiltin.vert b/deps/glslang/Test/link.redeclareBuiltin.vert deleted file mode 100644 index 7cda45c4..00000000 --- a/deps/glslang/Test/link.redeclareBuiltin.vert +++ /dev/null @@ -1,11 +0,0 @@ -#version 410 - -out gl_PerVertex -{ - vec4 gl_Position; -}; - -void main() -{ - gl_Position = vec4(1.0); -} \ No newline at end of file diff --git a/deps/glslang/Test/link.tesselation.frag b/deps/glslang/Test/link.tesselation.frag deleted file mode 100644 index 420384db..00000000 --- a/deps/glslang/Test/link.tesselation.frag +++ /dev/null @@ -1,15 +0,0 @@ -#version 440 - -layout(location = 0) in Primitive -{ - vec2 texCoord; -} IN; - -layout(location = 0) out vec4 oColor; - -layout(binding = 0) uniform sampler2D mytex; - -void main() -{ - oColor = texture(mytex, IN.texCoord); -} diff --git a/deps/glslang/Test/link.tesselation.tesc b/deps/glslang/Test/link.tesselation.tesc deleted file mode 100644 index c47d2ad6..00000000 --- a/deps/glslang/Test/link.tesselation.tesc +++ /dev/null @@ -1,21 +0,0 @@ -#version 440 - -layout(location = 0) in Primitive -{ - vec2 texCoord; -} IN[]; - -layout(location = 0) out Primitive -{ - vec2 texCoord; -} OUT[]; - -layout(vertices = 3) out; -void main() -{ - OUT[gl_InvocationID].texCoord = IN[gl_InvocationID].texCoord; - - float tessLevel = 10.0; - gl_TessLevelOuter[gl_InvocationID] = tessLevel; - gl_TessLevelInner[0] = tessLevel; -} diff --git a/deps/glslang/Test/link.tesselation.tese b/deps/glslang/Test/link.tesselation.tese deleted file mode 100644 index e1112920..00000000 --- a/deps/glslang/Test/link.tesselation.tese +++ /dev/null @@ -1,26 +0,0 @@ -#version 440 - -layout(location = 0) in Primitive -{ - vec2 texCoord; -} IN[]; - -layout(location = 0) out Primitive -{ - vec2 texCoord; -} OUT; - -layout(triangles, fractional_odd_spacing) in; -layout(cw) in; -void main() -{ - float u = gl_TessCoord.x; - float v = gl_TessCoord.y; - float w = gl_TessCoord.z; - - vec2 newUv = vec2( u * IN[0].texCoord + v * IN[1].texCoord + w * IN[2].texCoord); - OUT.texCoord = newUv; - gl_Position = gl_in[gl_PatchVerticesIn].gl_Position; -} - - diff --git a/deps/glslang/Test/link.tesselation.vert b/deps/glslang/Test/link.tesselation.vert deleted file mode 100644 index daf35372..00000000 --- a/deps/glslang/Test/link.tesselation.vert +++ /dev/null @@ -1,16 +0,0 @@ -#version 440 - -layout(location = 0) in vec4 i_Pos; -layout(location = 1) in vec2 i_Tex; - -layout(location = 0) out Primitive -{ - vec2 texCoord; -} OUT; - -void main() -{ - gl_Position = i_Pos; - OUT.texCoord = i_Tex; -} - diff --git a/deps/glslang/Test/link.vk.differentPC.0.0.frag b/deps/glslang/Test/link.vk.differentPC.0.0.frag deleted file mode 100644 index f5ad4ceb..00000000 --- a/deps/glslang/Test/link.vk.differentPC.0.0.frag +++ /dev/null @@ -1,18 +0,0 @@ -#version 450 - -layout(location=0) out vec4 color; - -layout (push_constant) uniform PushConstantBlock -{ - vec4 color; - vec4 color2; - float scale; -} uPC; - -vec4 getColor2(); -float getScale(); - -void main() -{ - color = uPC.color + getColor2() * getScale(); -} diff --git a/deps/glslang/Test/link.vk.differentPC.0.1.frag b/deps/glslang/Test/link.vk.differentPC.0.1.frag deleted file mode 100644 index 972fc65e..00000000 --- a/deps/glslang/Test/link.vk.differentPC.0.1.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 - -layout (push_constant) uniform PushConstantBlock -{ - vec4 color; - vec4 color2; - float scale; -} uPC; - -vec4 -getColor2() -{ - return uPC.color2; -} diff --git a/deps/glslang/Test/link.vk.differentPC.0.2.frag b/deps/glslang/Test/link.vk.differentPC.0.2.frag deleted file mode 100644 index 287e4252..00000000 --- a/deps/glslang/Test/link.vk.differentPC.0.2.frag +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 - -layout (push_constant) uniform PushConstantBlock -{ - vec4 color; - vec4 color2; - float scale2; -} uPC; - -float -getScale() -{ - return uPC.scale2; -} - diff --git a/deps/glslang/Test/link.vk.differentPC.1.0.frag b/deps/glslang/Test/link.vk.differentPC.1.0.frag deleted file mode 100644 index e395bb85..00000000 --- a/deps/glslang/Test/link.vk.differentPC.1.0.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 - -layout (push_constant) uniform PushConstantBlock -{ - vec4 color; - vec4 color2; - float scale; - float scale2; -} uPC; - -float -getScale() -{ - return uPC.scale; -} - diff --git a/deps/glslang/Test/link.vk.differentPC.1.1.frag b/deps/glslang/Test/link.vk.differentPC.1.1.frag deleted file mode 100644 index 972fc65e..00000000 --- a/deps/glslang/Test/link.vk.differentPC.1.1.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 - -layout (push_constant) uniform PushConstantBlock -{ - vec4 color; - vec4 color2; - float scale; -} uPC; - -vec4 -getColor2() -{ - return uPC.color2; -} diff --git a/deps/glslang/Test/link.vk.differentPC.1.2.frag b/deps/glslang/Test/link.vk.differentPC.1.2.frag deleted file mode 100644 index f5ad4ceb..00000000 --- a/deps/glslang/Test/link.vk.differentPC.1.2.frag +++ /dev/null @@ -1,18 +0,0 @@ -#version 450 - -layout(location=0) out vec4 color; - -layout (push_constant) uniform PushConstantBlock -{ - vec4 color; - vec4 color2; - float scale; -} uPC; - -vec4 getColor2(); -float getScale(); - -void main() -{ - color = uPC.color + getColor2() * getScale(); -} diff --git a/deps/glslang/Test/link.vk.inconsistentGLPerVertex.0.geom b/deps/glslang/Test/link.vk.inconsistentGLPerVertex.0.geom deleted file mode 100644 index 4d192d67..00000000 --- a/deps/glslang/Test/link.vk.inconsistentGLPerVertex.0.geom +++ /dev/null @@ -1,27 +0,0 @@ -#version 460 core - -layout(lines_adjacency) in; -layout(triangle_strip, max_vertices = 50) out; - -in vs_output -{ - vec4 color; -} gs_in[]; - -out gs_output -{ - vec4 color; -} gs_out; - -void main() -{ - gl_Position = gl_in[0].gl_Position; - gs_out.color = gs_in[0].color; - EmitVertex(); - gs_out.color = gs_in[1].color; - gl_Position = gl_in[1].gl_Position; - EmitVertex(); - gs_out.color = gs_in[0].color; - gl_Position = gl_in[0].gl_Position; - EmitVertex(); -} diff --git a/deps/glslang/Test/link.vk.inconsistentGLPerVertex.0.vert b/deps/glslang/Test/link.vk.inconsistentGLPerVertex.0.vert deleted file mode 100644 index 7658c68c..00000000 --- a/deps/glslang/Test/link.vk.inconsistentGLPerVertex.0.vert +++ /dev/null @@ -1,20 +0,0 @@ -#version 460 core - -// This test is to test isInconsistentGLPerVertexMember() workarounds. -// Without that workaround this compile fails due to block declarations -// in gl_PerVertex not being consistent for: -// gl_SecondaryPositionNV -// gl_PositionPerViewNV - -out vs_output -{ - vec4 color; -} vs_out; - -in vec4 P; -void main() -{ - vs_out.color = vec4(1.); - gl_PointSize = 1.0; - gl_Position = P; -} diff --git a/deps/glslang/Test/link.vk.matchingPC.0.0.frag b/deps/glslang/Test/link.vk.matchingPC.0.0.frag deleted file mode 100644 index f5ad4ceb..00000000 --- a/deps/glslang/Test/link.vk.matchingPC.0.0.frag +++ /dev/null @@ -1,18 +0,0 @@ -#version 450 - -layout(location=0) out vec4 color; - -layout (push_constant) uniform PushConstantBlock -{ - vec4 color; - vec4 color2; - float scale; -} uPC; - -vec4 getColor2(); -float getScale(); - -void main() -{ - color = uPC.color + getColor2() * getScale(); -} diff --git a/deps/glslang/Test/link.vk.matchingPC.0.1.frag b/deps/glslang/Test/link.vk.matchingPC.0.1.frag deleted file mode 100644 index 972fc65e..00000000 --- a/deps/glslang/Test/link.vk.matchingPC.0.1.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 - -layout (push_constant) uniform PushConstantBlock -{ - vec4 color; - vec4 color2; - float scale; -} uPC; - -vec4 -getColor2() -{ - return uPC.color2; -} diff --git a/deps/glslang/Test/link.vk.matchingPC.0.2.frag b/deps/glslang/Test/link.vk.matchingPC.0.2.frag deleted file mode 100644 index 734358c4..00000000 --- a/deps/glslang/Test/link.vk.matchingPC.0.2.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 - -layout (push_constant) uniform PushConstantBlock -{ - vec4 color; - vec4 color2; - float scale; -} uPC; - -float -getScale() -{ - return uPC.scale; -} diff --git a/deps/glslang/Test/link.vk.multiBlocksValid.0.0.vert b/deps/glslang/Test/link.vk.multiBlocksValid.0.0.vert deleted file mode 100644 index 81747ec4..00000000 --- a/deps/glslang/Test/link.vk.multiBlocksValid.0.0.vert +++ /dev/null @@ -1,49 +0,0 @@ -#version 430 - -// OK: different instance names is allowed in other unit -layout (std140, binding = 0) uniform MatrixBlock -{ - mat4 uProj; - mat4 uWorld; -} uM; - -// OK: other unit has it as anonymous, but that is allowed -out Vertex -{ - vec4 v1; - vec4 v2; -} oV; - -// OK: different instance names is allowed in other unit -layout (std140, binding = 1) uniform ColorBlock -{ - vec4 color1; - bool b; - vec4 color2; - vec4 color3; -} uC; - -// OK: different instance names is allowed in other unit -layout (std430, binding = 1) buffer BufferBlock -{ - mat4 p; -} uBuf; - -layout (std430, binding = 0) buffer SecondaryColorBlock -{ - vec4 c; -} uColorBuf; - -vec4 getWorld(); -vec4 getColor2(); - -out vec4 oColor; - -void -main() -{ - oColor = uC.color1 * getColor2() * uColorBuf.c; - oV.v1 = uC.color1; - - gl_Position = uM.uProj * getWorld(); -} diff --git a/deps/glslang/Test/link.vk.multiBlocksValid.0.1.vert b/deps/glslang/Test/link.vk.multiBlocksValid.0.1.vert deleted file mode 100644 index 52677782..00000000 --- a/deps/glslang/Test/link.vk.multiBlocksValid.0.1.vert +++ /dev/null @@ -1,46 +0,0 @@ -#version 430 - -// OK: different instance names is allowed in other unit -layout (std140, binding = 1) uniform ColorBlock -{ - vec4 color1; - bool b; - vec4 color2; - vec4 color3; -} uColor; - -// OK: different instance names is allowed in other unit -layout (std430, binding = 1) buffer BufferBlock -{ - mat4 p; -} uBuffer; - -// OK: different instance names is allowed in other unit -layout (std140, binding = 0) uniform MatrixBlock -{ - mat4 uProj; - mat4 uWorld; -} uMatrix; - -// OK, it's allowed for input/output interfaces to -// be anonymous is one unit and not in another -out Vertex -{ - vec4 v1; - vec4 v2; -}; - - -in vec4 P; - -vec4 getColor2() -{ - return uColor.color2; -} - -vec4 getWorld() -{ - v1 = vec4(1); - return uMatrix.uWorld * P; -} - diff --git a/deps/glslang/Test/link.vk.multiBlocksValid.1.0.geom b/deps/glslang/Test/link.vk.multiBlocksValid.1.0.geom deleted file mode 100644 index 9811b086..00000000 --- a/deps/glslang/Test/link.vk.multiBlocksValid.1.0.geom +++ /dev/null @@ -1,62 +0,0 @@ -#version 430 - -layout (triangles) in; -layout (triangle_strip, max_vertices = 3) out; - -// OK: different instance names is allowed -layout (std140, binding = 0) uniform MatrixBlock -{ - mat4 uProj; - mat4 uWorld; -} uM; - -// Verify that in/out blocks with same block name work -in Vertex -{ - vec4 v1; - vec4 v2; -} iV[3]; - -out Vertex -{ - vec4 val1; -} oV; - -// OK: different instance names is allowed -layout (std140, binding = 1) uniform ColorBlock -{ - vec4 color1; - bool b; - vec4 color2; - vec4 color3; -} uC; - -// OK: different instance names is allowed -layout (std430, binding = 1) buffer BufferBlock -{ - mat4 p; -} uBuf; - -vec4 getWorld(int i); -vec4 getColor2(); - -out vec4 oColor; - -float globalF; - -void -main() -{ - oColor = uC.color1 * getColor2(); - - globalF = 1.0; - - for (int i = 0; i < 3; i++) - { - gl_Position = uM.uProj * getWorld(i); - oV.val1 = uC.color1 + iV[i].v2 * globalF; - EmitVertex(); - } - - EndPrimitive(); -} diff --git a/deps/glslang/Test/link.vk.multiBlocksValid.1.1.geom b/deps/glslang/Test/link.vk.multiBlocksValid.1.1.geom deleted file mode 100644 index f372343a..00000000 --- a/deps/glslang/Test/link.vk.multiBlocksValid.1.1.geom +++ /dev/null @@ -1,54 +0,0 @@ -#version 430 - -layout (triangles) in; -layout (triangle_strip, max_vertices = 3) out; - -// OK: different instance names is allowed -layout (std140, binding = 1) uniform ColorBlock -{ - vec4 color1; - bool b; - vec4 color2; - vec4 color3; -} uColor; - -// OK: different instance names is allowed -layout (std430, binding = 1) buffer BufferBlock -{ - mat4 p; -} uBuffer; - -// OK: different instance names is allowed -layout (std140, binding = 0) uniform MatrixBlock -{ - mat4 uProj; - mat4 uWorld; -} uMatrix; - -// OK, it's allowed for input/output interfaces to -// be anonymous is one unit and not in another -out Vertex -{ - vec4 val1; -}; - -in Vertex -{ - vec4 v1; - vec4 v2; -} iVV[]; - - -in vec4 P[3]; - -vec4 getColor2() -{ - return uColor.color2; -} - -vec4 getWorld(int i) -{ - val1 = vec4(1); - return uMatrix.uWorld * iVV[i].v1; -} - diff --git a/deps/glslang/Test/link.vk.pcNamingInvalid.0.0.vert b/deps/glslang/Test/link.vk.pcNamingInvalid.0.0.vert deleted file mode 100644 index 26a75862..00000000 --- a/deps/glslang/Test/link.vk.pcNamingInvalid.0.0.vert +++ /dev/null @@ -1,21 +0,0 @@ -#version 450 -layout (push_constant) uniform Block -{ - mat4 uWorld; - mat4 uProj; - vec4 color1; - vec4 color2; -} a; - -vec4 getWorld(); -vec4 getColor2(); - -out vec4 oColor; - -void -main() -{ - oColor = a.color1 * getColor2(); - - gl_Position = a.uProj * getWorld(); -} diff --git a/deps/glslang/Test/link.vk.pcNamingInvalid.0.1.vert b/deps/glslang/Test/link.vk.pcNamingInvalid.0.1.vert deleted file mode 100644 index 47d2314b..00000000 --- a/deps/glslang/Test/link.vk.pcNamingInvalid.0.1.vert +++ /dev/null @@ -1,22 +0,0 @@ -#version 450 - -layout (push_constant) uniform Block2 -{ - mat4 uWorld; - mat4 uProj; - vec4 color1; - vec4 color2; -} a; - -in vec4 P; - -vec4 getColor2() -{ - return a.color2; -} - -vec4 getWorld() -{ - return a.uWorld * P; -} - diff --git a/deps/glslang/Test/link.vk.pcNamingValid.0.0.vert b/deps/glslang/Test/link.vk.pcNamingValid.0.0.vert deleted file mode 100644 index 7df21901..00000000 --- a/deps/glslang/Test/link.vk.pcNamingValid.0.0.vert +++ /dev/null @@ -1,21 +0,0 @@ -#version 450 -layout (push_constant) uniform PCBlock -{ - mat4 uWorld; - mat4 uProj; - vec4 color1; - vec4 color2; -} a; - -vec4 getWorld(); -vec4 getColor2(); - -layout(location = 0) out vec4 oColor; - -void -main() -{ - oColor = a.color1 * getColor2(); - - gl_Position = a.uProj * getWorld(); -} diff --git a/deps/glslang/Test/link.vk.pcNamingValid.0.1.vert b/deps/glslang/Test/link.vk.pcNamingValid.0.1.vert deleted file mode 100644 index 9a4b41b3..00000000 --- a/deps/glslang/Test/link.vk.pcNamingValid.0.1.vert +++ /dev/null @@ -1,22 +0,0 @@ -#version 450 - -layout (push_constant) uniform PCBlock -{ - mat4 uWorld; - mat4 uProj; - vec4 color1; - vec4 color2; -} b; - -layout(location = 0) in vec4 P; - -vec4 getColor2() -{ - return b.color2; -} - -vec4 getWorld() -{ - return b.uWorld * P; -} - diff --git a/deps/glslang/Test/link1.frag b/deps/glslang/Test/link1.frag deleted file mode 100644 index 2b8d95a8..00000000 --- a/deps/glslang/Test/link1.frag +++ /dev/null @@ -1,38 +0,0 @@ -#version 130 - -uniform vec4 uv4; -uniform vec3 glass; - -const int ci = 8; - -vec4 a = ci * uv4; - -in vec3 iv3; -in vec4 cup; - -void main() -{ -} - -vec4 b = ci * a; - -ivec2 foo(mat2 m) -{ - return ivec2(m[0]); -} - -vec4 c = b * b; - -const vec3 cv3 = vec3(43.0, 0.34, 9.9); -const vec3 cv3n = vec3(43.0, 0.34, 9.9); -const vec3 cv3e = vec3(43.0, 0.34, 9.9); -uniform mat2 um2 = mat2(4.0); -uniform mat2 um2n = mat2(4.0); -uniform mat2 um2e = mat2(4.0); -struct S { - int a; - float b; -}; -uniform S s = S(82, 3.9); -uniform S sn; -uniform S se = S(82, 3.9); diff --git a/deps/glslang/Test/link1.vk.frag b/deps/glslang/Test/link1.vk.frag deleted file mode 100644 index c860f647..00000000 --- a/deps/glslang/Test/link1.vk.frag +++ /dev/null @@ -1,24 +0,0 @@ -#version 450 - -vec4 getColor(); - -layout(location=0) out vec4 color; - -int a1[]; // max size from link1 -int a2[]; // max size from link2 -int b[5]; -int c[]; -int i; - -layout (binding = 0) buffer bnameRuntime { float r[]; }; -layout (binding = 1) buffer bnameImplicit { float m[]; }; - -void main() -{ - color = getColor(); - - a1[8] = 1; - a2[1] = 1; - b[i] = 1; - c[3] = 1; -} diff --git a/deps/glslang/Test/link2.frag b/deps/glslang/Test/link2.frag deleted file mode 100644 index 7c698917..00000000 --- a/deps/glslang/Test/link2.frag +++ /dev/null @@ -1,36 +0,0 @@ -#version 130 - -uniform vec4 uv4; -uniform vec2 glass; - -const int ci = 8; - -vec4 d = ci * uv4; - -in vec3 iv3; -flat in vec4 cup; - -vec4 e = ci * d; - -ivec2 foo() -{ - return ivec2(2); -} - -vec4 f = e * e; - -const vec3 cv3 = vec3(43.0, 0.34, 9.9); -const vec3 cv3e = vec3(43.0, 0.34, 2.9); -uniform mat2 um2 = mat2(4.0); -uniform mat2 um2n; -uniform mat2 um2e = mat2(3.0); -struct S { - int a; - float b; -}; -uniform S s = S(82, 3.9); -uniform S sn = S(82, 3.9); -uniform S se = S(81, 3.9); - -#extension GL_OES_texture_3D : enable -#extension GL_OES_standard_derivatives : enable diff --git a/deps/glslang/Test/link2.vk.frag b/deps/glslang/Test/link2.vk.frag deleted file mode 100644 index b83f8694..00000000 --- a/deps/glslang/Test/link2.vk.frag +++ /dev/null @@ -1,23 +0,0 @@ -#version 450 - -layout(binding=1) uniform sampler2D s2D; - -int a1[]; // max size from link1 -int a2[]; // max size from link2 -int b[]; -int c[7]; -int i; - -layout (binding = 0) buffer bnameRuntime { float r[]; }; -layout (binding = 1) buffer bnameImplicit { float m[4]; }; - -vec4 getColor() -{ - a1[2] = 1; - a2[9] = 1; - b[2] = 1; - c[3] = 1; - c[i] = 1; - - return texture(s2D, vec2(0.5)); -} diff --git a/deps/glslang/Test/link3.frag b/deps/glslang/Test/link3.frag deleted file mode 100644 index f886b23f..00000000 --- a/deps/glslang/Test/link3.frag +++ /dev/null @@ -1,9 +0,0 @@ -#version 300 es - -precision highp float; - -in vec2 iv3; - -#extension GL_OES_standard_derivatives : enable -#extension GL_OES_EGL_image_external : require -#extension GL_OES_texture_3D : enable diff --git a/deps/glslang/Test/localAggregates.frag b/deps/glslang/Test/localAggregates.frag deleted file mode 100644 index d8a7fb18..00000000 --- a/deps/glslang/Test/localAggregates.frag +++ /dev/null @@ -1,72 +0,0 @@ -#version 130 - -uniform sampler2D sampler; -varying vec2 coord; -varying vec4 color; - -struct s1 { - int i; - float f; -}; - -struct s2 { - int i; - float f; - s1 s1_1; - vec4 bleh; -}; - -struct s3 { - s2 s2_1; - int i; - float f; - s1 s1_1; -}; - - -uniform s1 foo; -uniform s2 foo2; -uniform s3 foo3; - -uniform float[16] uFloatArray; -uniform int condition; - -void main() -{ - s2 locals2; - s3 locals3; - float localFArray[16]; - int localIArray[8]; - - locals2 = foo3.s2_1; - - if (foo3.s2_1.i > 0) { - locals2.s1_1.f = 1.0; - localFArray[4] = coord.x; - localIArray[2] = foo3.s2_1.i; - } else { - locals2.s1_1.f = coord.x; - localFArray[4] = 1.0; - localIArray[2] = 0; - } - - if (localIArray[2] == 0) - ++localFArray[4]; - - float localArray[16]; - int x = 5; - localArray[x] = coord.x; - - float[16] a; - - for (int i = 0; i < 16; i++) - a[i] = 0.0; - - if (condition == 1) - a = localArray; - - locals2.bleh = color; - locals2.bleh.z = coord.y; - - gl_FragColor = locals2.bleh * (localFArray[4] + locals2.s1_1.f + localArray[x] + a[x]) * texture2D(sampler, coord); -} diff --git a/deps/glslang/Test/loops.frag b/deps/glslang/Test/loops.frag deleted file mode 100644 index ce2d2a0b..00000000 --- a/deps/glslang/Test/loops.frag +++ /dev/null @@ -1,320 +0,0 @@ -#version 130 -uniform vec4 bigColor; -uniform vec4 bigColor1_1; -uniform vec4 bigColor1_2; -uniform vec4 bigColor1_3; -uniform vec4 bigColor2; -uniform vec4 bigColor3; -uniform vec4 bigColor4; -uniform vec4 bigColor5; -uniform vec4 bigColor6; -uniform vec4 bigColor7; -uniform vec4 bigColor8; - -varying vec4 BaseColor; - -uniform float d; -uniform float d2; -uniform float d3; -uniform float d4; -uniform float d5; -uniform float d6; -uniform float d7; -uniform float d8; -uniform float d9; -uniform float d10; -uniform float d11; -uniform float d12; -uniform float d13; -uniform float d14; -uniform float d15; -uniform float d16; -uniform float d17; -uniform float d18; -uniform float d19; -uniform float d20; -uniform float d21; -uniform float d22; -uniform float d23; -uniform float d24; -uniform float d25; -uniform float d26; -uniform float d27; -uniform float d28; -uniform float d29; -uniform float d30; -uniform float d31; -uniform float d32; -uniform float d33; -uniform float d34; - -uniform int Count; - -void main() -{ - vec4 color = BaseColor; - - // Not a real loop - while (true) { - if (color.x < 0.33) { - color += vec4(0.33); - break; - } - if (color.x < 0.66) { - color += vec4(0.66); - break; - } - - color += vec4(0.33); - break; - } - - // While - while (color.x < d) { - color += bigColor; - } - - // While (latchy) - while (color.z < d) { - color += bigColor1_1; - if (color.w < d) - continue; - - color += bigColor1_1; - } - - // While (constant) - while (color.x < 42.0) { - ++color; - } - - // While (complicated-conditional) - while (color.w < d2 && color.y < d3) { - color += bigColor1_2; - } - - // While (multi-exit) - while (color.z < d3) { - color += bigColor1_3; - if (color.y < d4) - break; - color += bigColor1_3; - } - - // For (dynamic) - for (int i = 0; i < Count; ++i) { - color += bigColor2; - } - - // Do while - do { - color += bigColor3; - } while (color.x < d2); - - // For (static) - for (int i = 0; i < 42; ++i) { - color.z += d3; - } - - // For (static) flow-control - for (int i = 0; i < 100; ++i) { - if (color.z < 20.0) - color.x++; - else - color.y++; - if (color.w < 20.0) - if (color.z > color.y) - 0; // do nothing - } - - // For (static) flow-control with latch merge - for (int i = 0; i < 120; ++i) { - if (color.z < 20.0) - color.x++; - else - color.y++; - } - - // For (static) latchy - for (int i = 0; i < 42; ++i) { - color.z += d3; - if (color.x < d4) - continue; - ++color.w; - } - - // For (static) multi-exit - for (int i = 0; i < 42; ++i) { - color.z += d3; - if (color.x < d4) - break; - ++color.w; - } - - // Latchy - do { - color += bigColor4; - if (color.x < d4) - continue; - if (color.y < d4) - color.y += d4; - else - color.x += d4; - } while (color.z < d4); - - // Do while flow control - do { - color += bigColor5; - if (color.y < d5) - color.y += d5; - } while (color.x < d5); - - // If then loop - if (color.x < d6) { - while (color.y < d6) - color += bigColor6; - } else { - while (color.z < d6) - color.z += bigColor6.z; - } - - // If then multi-exit - if (color.x < d6) { - while (color.y < d6) { - color += bigColor6; - if (d7 < 1.0) - break; - } - - } else { - while (color.z < d6) - color.z += bigColor6.z; - } - - - // Multi-exit - do { - if (d7 < 0.0) - break; - - color += bigColor7; - - if (d7 < 1.0) { - color.z++; - break; - } - - color += BaseColor; - - } while (true); - - - // Multi-exit2 - do { - // invariant conditional break at the top of the loop. This could be a - // situation where unswitching the loop has no real increases in code - // size. - if (d8 < 0.0) - break; - - color += bigColor7; - - if (d8 < 1.0) { - color.z++; - if (d8 < 2.0) { - color.y++; - } else { - color.x++; - } - break; - } - - color += BaseColor; - - } while (color.z < d8); - - // Deep exit - while (color.w < d9) { - if (d9 > d8) { - if (color.x <= d7) { - if (color.z == 5.0) - color.w++; - else - break; - } - } - - } - - // No end loop-back. - while (color.z < d10) { - color.y++; - if (color.y < d11) { - color.z++; - if (color.w < d12) - color.w++; - else - color.x++; - continue; - } - - color++; - break; - } - - // Multi-continue - while (color.x < 10.0) { - color += bigColor8; - - if (color.z < d8) - if (color.w < d6) - continue; - - color.y += bigColor8.x; - } - - color++; - gl_FragColor = color; - - // Early Return - while (color.x < d14) { - if (color.y < d15) { - return; - } - else - color++; - } - - color++; - - while (color.w < d16) { - color.w++; - } - - - // While (complicated-conditional) - while (color.w < d2 && color.y < d3) { - color += bigColor1_2; - if (color.z < d3) - return; - } - - - do { - if (color.y < d18) - return; - color++; - } while (color.x < d17); - - // Early Discard - while (color.y < d16) { - if (color.w < d16) { - discard; - } else - color++; - } - - color++; - - gl_FragColor = color; -} diff --git a/deps/glslang/Test/loopsArtificial.frag b/deps/glslang/Test/loopsArtificial.frag deleted file mode 100644 index 2f196af8..00000000 --- a/deps/glslang/Test/loopsArtificial.frag +++ /dev/null @@ -1,96 +0,0 @@ -#version 130 -uniform vec4 bigColor; -uniform vec4 bigColor1_1; -uniform vec4 bigColor1_2; -uniform vec4 bigColor1_3; -uniform vec4 bigColor2; -uniform vec4 bigColor3; -uniform vec4 bigColor4; -uniform vec4 bigColor5; -uniform vec4 bigColor6; -uniform vec4 bigColor7; -uniform vec4 bigColor8; - -varying vec4 BaseColor; - -uniform float d; -uniform float d2; -uniform float d3; -uniform float d4; -uniform float d5; -uniform float d6; -uniform float d7; -uniform float d8; -uniform float d9; -uniform float d10; -uniform float d11; -uniform float d12; -uniform float d13; -uniform float d14; -uniform float d15; -uniform float d16; -uniform float d17; -uniform float d18; -uniform float d19; -uniform float d20; -uniform float d21; -uniform float d22; -uniform float d23; -uniform float d24; -uniform float d25; -uniform float d26; -uniform float d27; -uniform float d28; -uniform float d29; -uniform float d30; -uniform float d31; -uniform float d32; -uniform float d33; -uniform float d34; - -uniform int Count; - -void main() -{ - vec4 color = BaseColor; - - // Latchy2 - do { - color += bigColor4; - if (color.x < d4) { - color.z += 2.0; - if (color.z < d4) { - color.x++; - continue; - } - } - if (color.y < d4) - color.y += d4; - else - color.x += d4; - } while (color.z < d4); - - // Immediate dominator - while (color.w < d13) { - if (color.z < d13) - color++; - else - color--; - // code from Latchy 2 - color += bigColor4; - if (color.x < d4) { - color.z += 2.0; - if (color.z < d4) { - color.x++; - continue; - } - } - if (color.y < d4) - color.y += d4; - else - color.x += d4; - } - - color++; - gl_FragColor = color; -} diff --git a/deps/glslang/Test/mains.frag b/deps/glslang/Test/mains.frag deleted file mode 100644 index 5756a3e1..00000000 --- a/deps/glslang/Test/mains.frag +++ /dev/null @@ -1,9 +0,0 @@ -#version 300 es - -void main() -{ -} - -void main() -{ -} diff --git a/deps/glslang/Test/mains1.frag b/deps/glslang/Test/mains1.frag deleted file mode 100644 index e0de2e1e..00000000 --- a/deps/glslang/Test/mains1.frag +++ /dev/null @@ -1,5 +0,0 @@ -#version 110 - -void main() -{ -} diff --git a/deps/glslang/Test/mains2.frag b/deps/glslang/Test/mains2.frag deleted file mode 100644 index e0de2e1e..00000000 --- a/deps/glslang/Test/mains2.frag +++ /dev/null @@ -1,5 +0,0 @@ -#version 110 - -void main() -{ -} diff --git a/deps/glslang/Test/makeDoc b/deps/glslang/Test/makeDoc deleted file mode 100644 index c9d598ec..00000000 --- a/deps/glslang/Test/makeDoc +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env bash -./glslangValidator -p > instDesc -asciidoc --backend=html5 instDesc diff --git a/deps/glslang/Test/matrix.frag b/deps/glslang/Test/matrix.frag deleted file mode 100644 index afafa349..00000000 --- a/deps/glslang/Test/matrix.frag +++ /dev/null @@ -1,60 +0,0 @@ -#version 130 - -//#define TEST_POST_110 - -uniform mat3 colorTransform; -varying vec3 Color; -uniform mat4 m, n; - -#ifdef TEST_POST_110 -uniform mat4x3 um43; -uniform mat3x4 un34; -#else -uniform mat4 um43; -uniform mat4 un34; -#endif - -varying vec4 v; - -#ifdef TEST_POST_110 -varying vec3 u; -#else -varying vec4 u; -#endif - -void main() -{ - gl_FragColor = vec4(un34[1]); - gl_FragColor += vec4(Color * colorTransform, 1.0); - - if (m != n) - gl_FragColor += v; - else { - gl_FragColor += m * v; - gl_FragColor += v * (m - n); - } - -#ifdef TEST_POST_110 - mat3x4 m34 = outerProduct(v, u); - m34 += mat4(v.x); - m34 += mat4(u, u.x, u, u.x, u, u.x, u.x); -#else - mat4 m34 = mat4(v.x*u.x, v.x*u.y, v.x*u.z, v.x*u.w, - v.y*u.x, v.y*u.y, v.y*u.z, v.y*u.w, - v.z*u.x, v.z*u.y, v.z*u.z, v.z*u.w, - v.w*u.x, v.w*u.y, v.w*u.z, v.w*u.w); - m34 += mat4(v.x); - m34 += mat4(u, u.x, u, u.x, u, u.x, u.x); - -#endif - - if (m34 == un34) - gl_FragColor += m34 * u; - else - gl_FragColor += (un34 * um43) * v; - - mat4x2 m42 = mat4x2(42); - if (m42 == mat4x2(42, 0, 0, 42, 0, 0, 0, 0)) { - gl_FragColor += v; - } -} diff --git a/deps/glslang/Test/matrix2.frag b/deps/glslang/Test/matrix2.frag deleted file mode 100644 index df658044..00000000 --- a/deps/glslang/Test/matrix2.frag +++ /dev/null @@ -1,51 +0,0 @@ -#version 150 - -uniform mat3 colorTransform; -varying vec3 Color; -uniform mat4 m, n; - -uniform mat4x3 um43; -uniform mat3x4 un34; -uniform mat2 um2; -uniform mat3 um3; -uniform mat4 um4; - -varying vec4 v; - -varying vec3 u; - -out vec4 FragColor; - -void main() -{ - mat3x4 m34 = outerProduct(v, u); - - m34 += mat3x4(4.3); - - FragColor = vec4(Color, 1.0); - FragColor *= vec4(FragColor * m34, 1.0); - - m34 *= v.x; - - mat4 m44 = mat4(un34); - - m44 += m34 * um43; - - FragColor += (-m44) * v; - - FragColor *= matrixCompMult(m44, m44); - - m34 = transpose(um43); - FragColor *= vec4(FragColor * m34, 1.0); - FragColor *= vec4(determinant(um4)); - mat2 inv = inverse(um2); - FragColor *= vec4(inv[0][0], inv[1][0], inv[0][1], inv[1][1]); - mat3 inv3 = inverse(um3); - FragColor *= vec4(inv3[2][1]); - - mat4 inv4 = inverse(um4); - FragColor *= inv4; - - FragColor = vec4(FragColor * matrixCompMult(un34, un34), FragColor.w); - m34 *= colorTransform; -} diff --git a/deps/glslang/Test/matrixError.vert b/deps/glslang/Test/matrixError.vert deleted file mode 100644 index 0ad145b2..00000000 --- a/deps/glslang/Test/matrixError.vert +++ /dev/null @@ -1,24 +0,0 @@ -#version 120 - -attribute vec3 v3; - -uniform mat3x2 m32; - -const mat2x4 m24 = mat2x4(1.0, 2.0, - 3.0, 4.0, - 3.0, 4.0, - 3.0, 4.0, 5.0); // ERROR, too many arguments - -void main() -{ - mat2x3 m23; - vec3 a, b; - - a = v3 * m23; // ERROR, type mismatch - b = m32 * v3; // ERROR, type mismatch - m23.xy; // ERROR, can't use . - - gl_Position = vec4(m23 * m32 * v3, m24[2][4]); // ERROR, 2 and 4 are out of range - m23 *= m23; // ERROR, right side needs to be square - m23 *= m32; // ERROR, left columns must match right rows -} diff --git a/deps/glslang/Test/maxClipDistances.vert b/deps/glslang/Test/maxClipDistances.vert deleted file mode 100644 index 62ddfeb9..00000000 --- a/deps/glslang/Test/maxClipDistances.vert +++ /dev/null @@ -1,7 +0,0 @@ -#version 130 - -out float gl_ClipDistance[8]; // OK, 8 is gl_MaxClipDistances - -void main() -{ -} diff --git a/deps/glslang/Test/max_vertices_0.geom b/deps/glslang/Test/max_vertices_0.geom deleted file mode 100644 index 4a420be1..00000000 --- a/deps/glslang/Test/max_vertices_0.geom +++ /dev/null @@ -1,12 +0,0 @@ -#version 330 - -layout(points) in; -layout(triangle_strip, max_vertices = 0) out; -in highp vec4 v_geom_FragColor[]; -out highp vec4 v_frag_FragColor; - -void main (void) -{ - EndPrimitive(); - EndPrimitive(); -} diff --git a/deps/glslang/Test/missingBodies.vert b/deps/glslang/Test/missingBodies.vert deleted file mode 100644 index 04b71815..00000000 --- a/deps/glslang/Test/missingBodies.vert +++ /dev/null @@ -1,24 +0,0 @@ -#version 450 - -void bar(); -void foo() { bar(); } - -void B(); -void C(int); -void C(int, int) { } -void C(bool); -void A() { B(); C(1); C(true); C(1, 2); } - -void main() -{ - foo(); - C(true); -} - -int ret1(); - -int f1 = ret1(); - -int ret2() { return 3; } - -int f2 = ret2(); diff --git a/deps/glslang/Test/mixedArrayDecls.frag b/deps/glslang/Test/mixedArrayDecls.frag deleted file mode 100644 index aff4f78a..00000000 --- a/deps/glslang/Test/mixedArrayDecls.frag +++ /dev/null @@ -1,30 +0,0 @@ -#version 450 - -struct S { - int[3] a[2], b[5]; -}; - -S s; - -int[5] c[4], d[8]; -int[9] e[], f[]; -int e[11][9]; -int f[13][9]; - -int[14] g[], h[]; - -int [14][15][6] foo(int[6] p[14][15]) { return p; } - -void main() -{ - g[3]; - h[2]; -} - -float[4][3][2] bar() { float[3][2] a[4]; return a; } - -in inbname { - float[7] f[8][9]; -} inbinst[4][5][6]; - -float[3][2] barm[4]() { float[3][2] a[4]; return a; } // ERROR diff --git a/deps/glslang/Test/negativeArraySize.comp b/deps/glslang/Test/negativeArraySize.comp deleted file mode 100644 index 20636c0a..00000000 --- a/deps/glslang/Test/negativeArraySize.comp +++ /dev/null @@ -1,10 +0,0 @@ -#version 310 es - -#ifdef GL_ES -precision mediump float; -#endif - -void main() -{ - float f[-2]; // cannot declare arrays with negative size -} diff --git a/deps/glslang/Test/negativeWorkGroupSize.comp b/deps/glslang/Test/negativeWorkGroupSize.comp deleted file mode 100644 index 1f007d0c..00000000 --- a/deps/glslang/Test/negativeWorkGroupSize.comp +++ /dev/null @@ -1,12 +0,0 @@ -#version 460 - -void fn(){ - uvec3 wgs = gl_WorkGroupSize; // error: fixed workgroup size has not been declared -} - -layout(local_size_x = 64) in; // declare workgroup size - -void main(){ - fn(); - uvec3 wgs = gl_WorkGroupSize; // valid -} diff --git a/deps/glslang/Test/newTexture.frag b/deps/glslang/Test/newTexture.frag deleted file mode 100644 index 30e77dce..00000000 --- a/deps/glslang/Test/newTexture.frag +++ /dev/null @@ -1,75 +0,0 @@ -#version 430 - -uniform samplerBuffer sb; -uniform sampler2DRect sr; -uniform sampler2D s2D; -uniform sampler3D s3D; -uniform samplerCube sCube; -uniform samplerCubeShadow sCubeShadow; -uniform sampler2DShadow s2DShadow; -uniform sampler2DArray s2DArray; -uniform sampler2DArrayShadow s2DArrayShadow; - -uniform isampler2D is2D; -uniform isampler3D is3D; -uniform isamplerCube isCube; -uniform isampler2DArray is2DArray; -uniform isampler2DMS is2Dms; - -uniform usampler2D us2D; -uniform usampler3D us3D; -uniform usamplerCube usCube; -uniform usampler2DArray us2DArray; - -in float c1D; -in vec2 c2D; -in vec3 c3D; -in vec4 c4D; - -flat in int ic1D; -flat in ivec2 ic2D; -flat in ivec3 ic3D; -flat in ivec4 ic4D; - -out vec4 FragData; - -void main() -{ - vec4 v = texture(s2D, c2D); - v += textureProj(s3D, c4D); - v += textureLod(s2DArray, c3D, 1.2); - v.y += textureOffset(s2DShadow, c3D, ivec2(3), c1D); - v += texelFetch(s3D, ic3D, ic1D); - v += texelFetchOffset(s2D, ic2D, 4, ivec2(3)); - v += texelFetchOffset(sr, ic2D, ivec2(4)); - v.y += textureLodOffset(s2DShadow, c3D, c1D, ivec2(3)); - v += textureProjLodOffset(s2D, c3D, c1D, ivec2(3)); - v += textureGrad(sCube, c3D, c3D, c3D); - v.x += textureGradOffset(s2DArrayShadow, c4D, c2D, c2D, ivec2(3)); - v += textureProjGrad(s3D, c4D, c3D, c3D); - v += textureProjGradOffset(s2D, c3D, c2D, c2D, ivec2(3)); - - ivec4 iv = texture(is2D, c2D); - v += vec4(iv); - iv = textureProjOffset(is2D, c4D, ivec2(3)); - v += vec4(iv); - iv = textureProjLod(is2D, c3D, c1D); - v += vec4(iv); - iv = textureProjGrad(is2D, c3D, c2D, c2D); - v += vec4(iv); - iv = texture(is3D, c3D, 4.2); - v += vec4(iv); - iv = textureLod(isCube, c3D, c1D); - v += vec4(iv); - iv = texelFetch(is2DArray, ic3D, ic1D); - v += vec4(iv); - iv += texelFetch(is2Dms, ic2D, ic1D); - v += vec4(iv); - v += texelFetch(sb, ic1D); - v += texelFetch(sr, ic2D); - - ivec2 iv2 = textureSize(sCubeShadow, 2); - // iv2 += textureSize(is2Dms); - - FragData = v + vec4(iv2, 0.0, 0.0); -} diff --git a/deps/glslang/Test/noMain.vert b/deps/glslang/Test/noMain.vert deleted file mode 100644 index e83be047..00000000 --- a/deps/glslang/Test/noMain.vert +++ /dev/null @@ -1,5 +0,0 @@ -#version 300 es - -void foo() -{ -} diff --git a/deps/glslang/Test/noMain1.geom b/deps/glslang/Test/noMain1.geom deleted file mode 100644 index ab0834f9..00000000 --- a/deps/glslang/Test/noMain1.geom +++ /dev/null @@ -1,7 +0,0 @@ -#version 110 - -void foo() -{ -} - -layout(points) out; \ No newline at end of file diff --git a/deps/glslang/Test/noMain2.geom b/deps/glslang/Test/noMain2.geom deleted file mode 100644 index 9fb5fd7d..00000000 --- a/deps/glslang/Test/noMain2.geom +++ /dev/null @@ -1,7 +0,0 @@ -#version 150 - -void bar() -{ -} - -layout(line_strip) out; diff --git a/deps/glslang/Test/noMatchingFunction.frag b/deps/glslang/Test/noMatchingFunction.frag deleted file mode 100644 index d0956452..00000000 --- a/deps/glslang/Test/noMatchingFunction.frag +++ /dev/null @@ -1,19 +0,0 @@ -#version 330 - -struct S -{ - float a; -}; - -float func(S s) -{ - return s.a; -} - -layout(location = 0) out vec4 o_color; - -void main() -{ - float c = func(1.0f); // ERROR: no matching function - o_color = vec4(c); -} diff --git a/deps/glslang/Test/nonSquare.vert b/deps/glslang/Test/nonSquare.vert deleted file mode 100644 index 09744259..00000000 --- a/deps/glslang/Test/nonSquare.vert +++ /dev/null @@ -1,25 +0,0 @@ -#version 120 - -attribute vec3 v3; -attribute vec4 v4; - -uniform mat3x2 m32; - -const vec2 cv2 = vec2(10.0, 20.0); -const mat2x4 m24 = mat2x4(3.0); -const mat4x2 m42 = mat4x2(1.0, 2.0, - 3.0, 4.0, - 5.0, 6.0, - 7.0, 8.0); - -void main() -{ - mat2x3 m23; - vec2 a, b; - - a = v3 * m23; - b = m32 * v3; - - gl_Position = vec4(m23 * m32 * v3, m24[1][3]) + - (m24 * m42) * v4 + cv2 * m42 + m24 * cv2 + vec4(cv2[1], cv2.x, m42[2][1], m42[2][0]); -} diff --git a/deps/glslang/Test/nonVulkan.frag b/deps/glslang/Test/nonVulkan.frag deleted file mode 100644 index 425e8402..00000000 --- a/deps/glslang/Test/nonVulkan.frag +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 - -layout(constant_id = 17) const int arraySize = 12; // ERROR -layout(input_attachment_index = 1) int foo; // ERROR -layout(push_constant) uniform ubn { int a; } ubi; // ERROR - -#ifdef VULKAN -#error VULKAN should not be defined -#endif diff --git a/deps/glslang/Test/nonuniform.frag b/deps/glslang/Test/nonuniform.frag deleted file mode 100644 index e98aacc3..00000000 --- a/deps/glslang/Test/nonuniform.frag +++ /dev/null @@ -1,33 +0,0 @@ -#version 450 - -int nonuniformEXT; - -#extension GL_EXT_nonuniform_qualifier : enable - -nonuniformEXT in vec4 nu_inv4; -nonuniformEXT float nu_gf; - -nonuniformEXT out vec4 nu_outv4; // ERROR, out -nonuniformEXT uniform vec4 nu_uv4; // ERROR, uniform -nonuniformEXT const float nu_constf = 1.0; // ERROR, const - -nonuniformEXT int foo(nonuniformEXT int nupi, nonuniformEXT out int f) -{ - return nupi; -} - -void main() -{ - nonuniformEXT int nu_li; - nonuniformEXT const int nu_ci = 2; // ERROR, const - - foo(nu_li, nu_li); - int table[5]; - int a; - nu_li = nonuniformEXT(a) + nonuniformEXT(a * 2); - nu_li = nonuniformEXT(a, a); // ERROR, too many arguments - nu_li = nonuniformEXT(); // ERROR, no arguments - nu_li = table[nonuniformEXT(3)]; -} -layout(location=1) in struct S { float a; nonuniformEXT float b; } ins; // ERROR, not on member -layout(location=3) in inbName { float a; nonuniformEXT float b; } inb; // ERROR, not on member diff --git a/deps/glslang/Test/nosuffix b/deps/glslang/Test/nosuffix deleted file mode 100644 index 26862fff..00000000 --- a/deps/glslang/Test/nosuffix +++ /dev/null @@ -1,4 +0,0 @@ -void main() -{ - gl_Position = vec4(1.0); -} \ No newline at end of file diff --git a/deps/glslang/Test/numeral.frag b/deps/glslang/Test/numeral.frag deleted file mode 100644 index 39814f4e..00000000 --- a/deps/glslang/Test/numeral.frag +++ /dev/null @@ -1,106 +0,0 @@ -#version 400 - -void main() -{ - int o00 = 00; - int o000 = 000; - int o0000 = 0000; - int o5 = 05; - int o05 = 005; - int o006 = 0006; - int o7 = 07; - int o58 = 072; - int omax = 037777777777; - int o8 = 08; // ERROR - int o08 = 008; // ERROR - int o009 = 0009; // ERROR - int obig = 07324327323472347234; // ERROR - int omax1 = 040000000000; // ERROR - - uint uo5 = 05u; - uint uo6 = 06u; - uint uo7 = 07u; - uint uo8 = 08u; // ERROR - uint uo9 = 09u; // ERROR - - int h0 = 0x0; - int h00 = 0x00; - int h000 = 0x000; - int h1 = 0x1; - int h2 = 0x00000002; - int h300 = 0x000300; - int hABCDEF = 0xAbCdEF; - int hFFFFFFFF = 0xFFFFFFFF; - int h12345678 = 0xBC614E; - int hToBeOrNotToBe = 0x2b | ~0x2B; - - uint uh0 = 0x0u; - uint uhg = (0xcu); - uint uh000 = 0x000u; - uint uh1 = 0x1u; - uint uh2 = 0x00000002u; - uint uh300 = 0x000300u; - uint uhABCDEF = 0xAbCdEFu; - uint uhFFFFFFFF = 0xFFFFFFFFu; - uint uh12345678 = 0xBC614Eu; - uint uhToBeOrNotToBe = 0x2bu | ~0x2BU; - - //int he1 = 0xG; // ERROR - int he2 = 0x; // ERROR - int hbig = 0xFFFFFFFF1; // ERROR - - float f1 = 1.0; - float f2 = 2.; - float f3 = 3e0; - float f4 = 40e-1; - float f5 = 05.; - float f6 = 006.; - float f7 = .7e1; - float f8 = 08e0; - float f9 = .9e+1; - float f10 = 10.0; - float f11 = .011e+3; - float f12 = .0012e4; - float f543 = 000000543.; - float f6789 = 00006789.; - float f88 = 0000088.; - - float g1 = 5.3876e4; - float g2 = 4000000000e-11; - float g3 = 1e+5; - float g4 = 7.321E-3; - float g5 = 3.2E+4; - float g6 = 0.5e-5; - float g7 = 0.45; - float g8 = 6.e10; - - double gf1 = 1.0lf; - double gf2 = 2.Lf; - double gf3 = .3e1lF; - double gf4 = .4e1LF; - float gf5 = 5.f; - float gf6 = 6.F; - - //float e1 = 1..; // ERROR - //float e2 = 2.l; // ERROR - //float e3 = ..3; // ERROR - //float e4 = 4ee1; // ERROR - float e5 = 5f; // ERROR -} - -layout (location = 2) out vec4 c2; -layout (location = 3u) out vec4 c3; -layout (location = 04) out vec4 c4; -layout (location = 005u) out vec4 c5; -layout (location = 0x6) out vec4 c6; -layout (location = 0x7u) out vec4 c7; - -uint g1 = 4294967296u; // ERROR, too big -uint g2 = 4294967295u; -uint g3 = 4294967294u; -int g4 = 4294967296; // ERROR, too big -int g5 = 4294967295; -int g6 = 4294967294; -float inf1 = -1.#INF; -float inf2 = 1.#INF; -float inf3 = +1.#INF; diff --git a/deps/glslang/Test/nvShaderNoperspectiveInterpolation.frag b/deps/glslang/Test/nvShaderNoperspectiveInterpolation.frag deleted file mode 100644 index 15c191d0..00000000 --- a/deps/glslang/Test/nvShaderNoperspectiveInterpolation.frag +++ /dev/null @@ -1,15 +0,0 @@ -#version 300 es - -precision mediump float; - -noperspective in vec4 bad; // ERROR - -#extension GL_NV_shader_noperspective_interpolation : enable - -noperspective in vec4 color; - -out vec4 fragColor; - -void main() { - fragColor = color; -} \ No newline at end of file diff --git a/deps/glslang/Test/overlongLiteral.frag b/deps/glslang/Test/overlongLiteral.frag deleted file mode 100644 index c351ed6b..00000000 --- a/deps/glslang/Test/overlongLiteral.frag +++ /dev/null @@ -1 +0,0 @@ -0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; diff --git a/deps/glslang/Test/parent.h b/deps/glslang/Test/parent.h deleted file mode 100644 index 9ef68e0b..00000000 --- a/deps/glslang/Test/parent.h +++ /dev/null @@ -1 +0,0 @@ -float4 i4; diff --git a/deps/glslang/Test/parentBad b/deps/glslang/Test/parentBad deleted file mode 100644 index e54c10d0..00000000 --- a/deps/glslang/Test/parentBad +++ /dev/null @@ -1,3 +0,0 @@ -int a; - -#error bad parent diff --git a/deps/glslang/Test/pointCoord.frag b/deps/glslang/Test/pointCoord.frag deleted file mode 100644 index 8dc9e746..00000000 --- a/deps/glslang/Test/pointCoord.frag +++ /dev/null @@ -1,15 +0,0 @@ -precision highp float; - -uniform sampler2D sampler; - -void main() -{ - vec4 color; - - if (length(gl_PointCoord) < 0.3) - color = texture2D(sampler, gl_PointCoord); - else - color = vec4(0.0); - - gl_FragColor = color; -} diff --git a/deps/glslang/Test/precise.tesc b/deps/glslang/Test/precise.tesc deleted file mode 100644 index c541540c..00000000 --- a/deps/glslang/Test/precise.tesc +++ /dev/null @@ -1,109 +0,0 @@ -#version 450 -#extension GL_EXT_tessellation_shader : require -#extension GL_EXT_gpu_shader5 : require - -float minimal() { - precise float result = 5.0; - float a = 10.0; - float b = 20.0; - float c = 30.0; - float d = 40.0; - result = a * b + c * d; // c * d, a * b and rvalue1 + rvalue2 should be 'noContraction'. - return result; -} - -void continuous_assignment() { - precise float result = 5.0; - float a = 10.0; - float b = 20.0; - result = a = b + 4; // b + 4 should be 'noContraction'. -} - -void convert() { - precise double result; - float a = 10.0; - float b = 20.0; - b = a + b; // a + b should be 'noContraction'. - result = double(b); // convert operation should not be 'noContraction'. -} - -float loop_for() { - precise float r1 = 5.0; - precise float r2 = 10.0; - int a = 10; - int b = 20; - int c = 30; - for (int i = 0; i < a; i++) { - r1 += 3.12 + b + i; // 'noContration', this make i++ also 'noContraction' - c += 1; // 'noContration' - } - a += 1; // a + 1 should not be 'noContraction'. - r2 = c; // The calculation of c should be 'noContration'. - return float(r1 + r2); // conversion should not be 'noContration'. -} - -void loop_array(void) { - precise float result; - - int x = 22; - int y = 33; - - float a0[3]; - result += float(x) + float(y); // x + y should be 'noContraction' also result + rvalue. - - for (int i = 0; i < 3; ++i) { - // a's dereference + 2 should be 'noContraction'. - result += a0[i] + 2; - // result + 1 and 3 - rvalue should be 'noContraction'. - a0[i] = 3 - result++; - } -} - -void loop_while() { - precise float result = 5.0; - int a = 10; - int b = 20; - while (result < 10) { - result += 3.12 + b; // result + 3.12 should be 'noContraction'. - } - result = a + b + 5; // b + 5 should not be 'noCtraction' because all operands are integers. - result = 11.1; -} - -float fma_not_decorated() { - precise float result; - float a = 1.0; - float b = 2.0; - float c = 3.0; - b = b + c; // b + c should be decorated with 'noContraction' - result = fma(a, b, c); // fma() should not be decorated with 'noContradtion' - return result; -} - -precise float precise_return_exp_func() { - float a = 1.0; - float b = 2.0; - return a + b; // the ADD operation should be 'noContraction' -} - -precise float precise_return_val_func() { - float a = 1.0; - float b = 2.0; - float result = a + b; // the ADD operation should be 'noContraction' - return result; -} - -float precise_func_parameter(float b, precise out float c) { - float a = 0.5; - c = a + b; // noContration - return a - b; // Not noContraction -} - -mat3 matrix (mat2x3 a, mat3x2 b) { - mat2x3 c = mat2x3(1.0, 2.0, 3.0, 4.0, 5.0, 6.0); - precise mat3 result; - result = (a + c) * b; // should be noContraction - return result; -} - -void main(){} diff --git a/deps/glslang/Test/precise_struct_block.vert b/deps/glslang/Test/precise_struct_block.vert deleted file mode 100644 index 279b4b09..00000000 --- a/deps/glslang/Test/precise_struct_block.vert +++ /dev/null @@ -1,89 +0,0 @@ -#version 450 - -struct T { - float f1; - float f2; -}; - -out B1 {precise T s; float x;} partial_precise_block; -precise out B2 {T s; float x;} all_precise_block; - -float struct_member() { - float a = 1.0; - float b = 2.0; - float c = 3.0; - float d = 4.0; - - precise float result; - - T S, S2, S3; - - S2.f1 = a + 0.2; // NoContraction - S2.f2 = b + 0.2; // NOT NoContraction - S3.f1 = a + b; // NOT NoContraction - S = S2; // "precise" propagated through parent object nodes - result = S.f1 + 0.1; // the ADD operation should be NoContraction - - return result; -} - -float complex_array_struct() { - precise float result; - struct T1 { - float t1_array[3]; - float t1_scalar; - }; - struct T2 { - T1 t1a[5]; - T1 t1b[6]; - T1 t1c[7]; - }; - struct T3 {float f; T2 t2; vec4 v; int p;}; - T3 t3[10]; - for(int i=0; i<10; i++) { - t3[i].f = i / 3.0; // Not NoContraction - t3[i].v = vec4(i * 1.5); // NoContraction - t3[i].p = i + 1; - for(int j=0; j<5; j++) { - for(int k = 0; k<3; k++) { - t3[i].t2.t1a[j].t1_array[k] = i * j + k; // Not NoContraction - } - t3[i].t2.t1a[j].t1_scalar = j * 2.0 / i; // Not NoContration - } - - for(int j=0; j<6; j++) { - for(int k = 0; k<3; k++) { - t3[i].t2.t1b[j].t1_array[k] = i * j + k; // Not NoContraction - } - t3[i].t2.t1b[j].t1_scalar = j * 2.0 / i; // NoContraction - } - - for(int j=0; j<6; j++) { - for(int k = 0; k<3; k++) { - t3[i].t2.t1c[j].t1_array[k] = i * j + k; // Not NoContraction because all operands are integers - } - t3[i].t2.t1c[j].t1_scalar = j * 2.0 / i; // Not NoContraction - } - } - int i = 2; - result = t3[5].t2.t1c[6].t1_array[1] - + t3[2].t2.t1b[1].t1_scalar - + t3[i - 1].v.xy.x; // NoContraction - return result; -} - -float out_block() { - float a = 0.1; - float b = 0.2; - partial_precise_block.s.f1 = a + b; // NoContraction - partial_precise_block.s.f2 = a - b; // NoContraction - partial_precise_block.x = a * b; // Not NoContraction - - all_precise_block.s.f1 = a + b + 1.0; // NoContraction - all_precise_block.s.f2 = a - b - 1.0; // NoContraction - all_precise_block.x = a * b * 2.0; // Also NoContraction - - return a + b; // Not NoContraction -} - -void main(){} diff --git a/deps/glslang/Test/precision.frag b/deps/glslang/Test/precision.frag deleted file mode 100644 index e24fa52c..00000000 --- a/deps/glslang/Test/precision.frag +++ /dev/null @@ -1,76 +0,0 @@ -#version 100 - -varying vec3 color; // ERRROR, there is no default qualifier for float - -lowp vec2 foo(mediump vec3 mv3) -{ - highp vec4 hv4; - return hv4.xy; -} - -int global_medium; - -uniform lowp sampler2D samplerLow; -uniform mediump sampler2D samplerMed; -uniform highp sampler2D samplerHigh; - -precision highp int; -precision highp ivec2; // ERROR -precision mediump int[2]; // ERROR -vec4 uint; // okay -precision mediump vec4; // ERROR - -int global_high; - -void main() -{ - lowp int sum = global_medium + global_high; - - gl_FragColor = vec4(color, 1.0); - - int level1_high; - sum += level1_high; - - precision lowp int; - int level1_low; - sum += level1_low; - - // test maxing precisions of args to get precision of builtin - lowp float arg1; - mediump float arg2; - lowp float d = distance(arg1, arg2); - - { - int level2_low; - sum += level2_low; - - precision highp int; - int level2_high; - sum += level2_high; - do { - if (true) { - precision mediump int; - int level4_medium; - sum += level4_medium; - } - int level3_high; - sum += level3_high; - } while (true); - int level2_high2; - sum += level2_high2; - } - int level1_low3; - sum += level1_low3; - - sum += 4 + ((ivec2(level1_low3) * ivec2(level1_high) + ivec2((/* comma operator */level1_low3, level1_high)))).x; - - texture2D(samplerLow, vec2(0.1, 0.2)); - texture2D(samplerMed, vec2(0.1, 0.2)); - texture2D(samplerHigh, vec2(0.1, 0.2)); -} - -precision mediump bool; // ERROR -//precision mediump struct { int a; } s; // ERROR -struct s {int a;}; -precision mediump s; // ERROR -mediump bvec2 b2; // ERROR diff --git a/deps/glslang/Test/precision.vert b/deps/glslang/Test/precision.vert deleted file mode 100644 index 5d073488..00000000 --- a/deps/glslang/Test/precision.vert +++ /dev/null @@ -1,25 +0,0 @@ -#version 300 es - -in vec4 pos; - -uniform sampler2D s2D; -uniform samplerCube sCube; -uniform isampler2DArray is2DAbad; // ERROR, no default precision -uniform sampler2DArrayShadow s2dASbad; // ERROR, no default precision - -precision highp sampler2D; -precision mediump sampler2DArrayShadow; - -uniform sampler2DArrayShadow s2dAS; -uniform isampler2DArray is2DAbad2; // ERROR, still no default precision - -uniform sampler2D s2Dhigh; - -void main() -{ - vec4 t = texture(s2D, vec2(0.1, 0.2)); - t += texture(s2Dhigh, vec2(0.1, 0.2)); - t += texture(s2dAS, vec4(0.5)); - - gl_Position = pos; -} diff --git a/deps/glslang/Test/prepost.frag b/deps/glslang/Test/prepost.frag deleted file mode 100644 index dfd45666..00000000 --- a/deps/glslang/Test/prepost.frag +++ /dev/null @@ -1,38 +0,0 @@ -#version 140 - -void main() -{ - struct s { - float y[5]; - } str; - - float t; - int index = 5; // all indexing is 4 - - str.y[4] = 2.0; // 2.0 - t = ++str.y[--index]; // 3.0 - str.y[4] += t; // 6.0 - t = str.y[4]--; // 5.0 (t = 6.0) - str.y[index++] += t; // 11.0 - --str.y[--index]; // 10.0 - - float x = str.y[4]; - ++x; - --x; - x++; - x--; - - // x is 10.0 - - float y = x * ++x; // 10 * 11 - float z = y * x--; // 110 * 11 - - // x is 10.0 - // z is 1210.0 - - vec4 v = vec4(1.0, 2.0, 3.0, 4.0); - v.y = v.z--; // (1,3,2,4) - v.x = --v.w; // (3,3,2,3) - - gl_FragColor = z * v;// (3630.0, 3630.0, 2420.0, 3630.0) -} diff --git a/deps/glslang/Test/preprocessor.bad_arg.vert b/deps/glslang/Test/preprocessor.bad_arg.vert deleted file mode 100644 index 344fc4b1..00000000 --- a/deps/glslang/Test/preprocessor.bad_arg.vert +++ /dev/null @@ -1,8 +0,0 @@ -#define M(a) a -int M(aou - = 2) // Okay, one argument, split across newline - ; - -// end of file during an argument -#define EXP2(a, b) -EXP2(((((1,2,3,4))), ); diff --git a/deps/glslang/Test/preprocessor.cpp_style___FILE__.vert b/deps/glslang/Test/preprocessor.cpp_style___FILE__.vert deleted file mode 100644 index 6d2bc1d8..00000000 --- a/deps/glslang/Test/preprocessor.cpp_style___FILE__.vert +++ /dev/null @@ -1,36 +0,0 @@ -#extension GL_GOOGLE_cpp_style_line_directive : enable - -__FILE__ - -#line 150 "a.h" -__FILE__ - -#line 24 -__FILE__ - -#line 42 -__FILE__ - -#line 30 "b.cc" -__FILE__ - -#line 10 3 -__FILE__ - -#line 48 -__FILE__ - -#line 4 -__FILE__ - -#line 55 100 -__FILE__ - -#line 1000 "c" -__FILE__ - -#line 42 1 -__FILE__ - -#line 42 "this-is-a-quite-long-name-maybe-i-should-shorten-it" -__FILE__ diff --git a/deps/glslang/Test/preprocessor.cpp_style_line_directive.vert b/deps/glslang/Test/preprocessor.cpp_style_line_directive.vert deleted file mode 100644 index 90fb2614..00000000 --- a/deps/glslang/Test/preprocessor.cpp_style_line_directive.vert +++ /dev/null @@ -1,36 +0,0 @@ -#extension GL_GOOGLE_cpp_style_line_directive : enable - -#error at "0:3" - -#line 150 "a.h" -#error at "a.h:150" - -#line 24 -#error at "a.h:24" - -#line 42 -#error at "a.h:42" - -#line 30 "b.cc" -#error at "b.cc:30" - -#line 10 3 -#error at "3:10" - -#line 48 -#error at "3:48" - -#line 4 -#error at "3:4" - -#line 55 100 -#error at "100:55" - -#line 1000 "c" -#error at "c:1000" - -#line 42 1 -#error at "1:42" - -#line 42 "this-is-a-quite-long-name-maybe-i-should-shorten-it" -#error at "this-is-a-quite-long-name-maybe-i-should-shorten-it:42" diff --git a/deps/glslang/Test/preprocessor.defined.vert b/deps/glslang/Test/preprocessor.defined.vert deleted file mode 100644 index 375e4d3d..00000000 --- a/deps/glslang/Test/preprocessor.defined.vert +++ /dev/null @@ -1,2 +0,0 @@ -#define defined_not_really -#define defined // ERROR: "defined" can't be (un)defined: diff --git a/deps/glslang/Test/preprocessor.edge_cases.vert b/deps/glslang/Test/preprocessor.edge_cases.vert deleted file mode 100644 index 95bfbb3a..00000000 --- a/deps/glslang/Test/preprocessor.edge_cases.vert +++ /dev/null @@ -1,15 +0,0 @@ -#version 310 es -#define X(Y) /* - */ Y + 2 - -#define Y(Z) 2 * Z// asdf - -#define Z(Y) /* - */ \ - 2 /* - */ + 3 \ - * Y - -void main() { - gl_Position = vec4(X(3) + Y(4) + Z(2)); -} diff --git a/deps/glslang/Test/preprocessor.eof_missing.vert b/deps/glslang/Test/preprocessor.eof_missing.vert deleted file mode 100644 index 91773148..00000000 --- a/deps/glslang/Test/preprocessor.eof_missing.vert +++ /dev/null @@ -1 +0,0 @@ -noEOF \ No newline at end of file diff --git a/deps/glslang/Test/preprocessor.errors.vert b/deps/glslang/Test/preprocessor.errors.vert deleted file mode 100644 index ca83848f..00000000 --- a/deps/glslang/Test/preprocessor.errors.vert +++ /dev/null @@ -1,20 +0,0 @@ -#version 310 es - -#define X 1 - -#if X - #ifdef Y - #error This should not show up in pp output. - #endif - #error This should show up in pp output. -#else - #error This should not show up in pp output. -#endif - -#def X -#if Y - -#extension a - -int main() { -} diff --git a/deps/glslang/Test/preprocessor.extensions.vert b/deps/glslang/Test/preprocessor.extensions.vert deleted file mode 100644 index 07455d54..00000000 --- a/deps/glslang/Test/preprocessor.extensions.vert +++ /dev/null @@ -1,12 +0,0 @@ -#version 310 es - -#extension GL_EXT_geometry_shader: enable -#extension GL_EXT_frag_depth: disable -#extension GL_EXT_gpu_shader5: require -#extension GL_EXT_shader_texture_image_samples: warn - -#extension unknown_extension: require - -int main() { -} - diff --git a/deps/glslang/Test/preprocessor.function_macro.vert b/deps/glslang/Test/preprocessor.function_macro.vert deleted file mode 100644 index 577ea7e3..00000000 --- a/deps/glslang/Test/preprocessor.function_macro.vert +++ /dev/null @@ -1,20 +0,0 @@ -#version 310 es - - -#define X(n) n + 1 -#define Y(n, z) n + z -#define Z(f) X(f) - -#define REALLY_LONG_MACRO_NAME_WITH_MANY_PARAMETERS(X1, X2, X3, X4, X5, X6, X7,\ - X8, X9, X10, X11, X12) X1+X2+X3+X4+X5+X6+X7+X8+X9+X10+X11+X12 - -#define A(\ - Y\ - )\ -4 + 3 + Y - -int main() { - gl_Position = vec4(X(3), Y(3, 4), Z(3)); - gl_Position = vec4(REALLY_LONG_MACRO_NAME_WITH_MANY_PARAMETERS(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)); - gl_Position = vec4(A(3)); -} diff --git a/deps/glslang/Test/preprocessor.include.disabled.vert b/deps/glslang/Test/preprocessor.include.disabled.vert deleted file mode 100644 index 865baa18..00000000 --- a/deps/glslang/Test/preprocessor.include.disabled.vert +++ /dev/null @@ -1,6 +0,0 @@ -#line 8000 -#include -#include 123 -#include "foo" -#include "foo" garbage -#include "no-eol" \ No newline at end of file diff --git a/deps/glslang/Test/preprocessor.include.enabled.vert b/deps/glslang/Test/preprocessor.include.enabled.vert deleted file mode 100644 index 985eae2c..00000000 --- a/deps/glslang/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/Test/preprocessor.line.frag b/deps/glslang/Test/preprocessor.line.frag deleted file mode 100644 index 0b7ac766..00000000 --- a/deps/glslang/Test/preprocessor.line.frag +++ /dev/null @@ -1,4 +0,0 @@ -#version 310 es -#line 1 2 -#pragma something -void main() {} diff --git a/deps/glslang/Test/preprocessor.line.vert b/deps/glslang/Test/preprocessor.line.vert deleted file mode 100644 index fed6bba2..00000000 --- a/deps/glslang/Test/preprocessor.line.vert +++ /dev/null @@ -1,39 +0,0 @@ -#line 300 - -#line 2 - - - - - -#line __LINE__ + 3 - - -#line __FILE__ + 2 - -#line __FILE__ * __LINE__ - - -#define X 4 - -#line X - -#undef X - -#define X(y) y + 3 + 2 - -#line X(3) - -void main() { - gl_Position = vec4(__LINE__); -} - -#line X(3) 4 - -#define Z(y, q) \ - y*q*2 q - -#line Z(2, 3) - -#line 1 - diff --git a/deps/glslang/Test/preprocessor.many.endif.vert b/deps/glslang/Test/preprocessor.many.endif.vert deleted file mode 100644 index 7b049629..00000000 --- a/deps/glslang/Test/preprocessor.many.endif.vert +++ /dev/null @@ -1,10 +0,0 @@ -#endif -#endif -#endif -#endif -#endif -#endif -#endif - -#if -#else diff --git a/deps/glslang/Test/preprocessor.pragma.vert b/deps/glslang/Test/preprocessor.pragma.vert deleted file mode 100644 index 0ae7ee21..00000000 --- a/deps/glslang/Test/preprocessor.pragma.vert +++ /dev/null @@ -1,13 +0,0 @@ -#version 310 es - -#pragma optimize(on) -#pragma optimize(off) -#pragma debug(on) -#pragma debug(off) - -#pragma undefined_pragma(x, 4) - -#pragma once - -int main() { -} diff --git a/deps/glslang/Test/preprocessor.simple.vert b/deps/glslang/Test/preprocessor.simple.vert deleted file mode 100644 index 788df76c..00000000 --- a/deps/glslang/Test/preprocessor.simple.vert +++ /dev/null @@ -1,65 +0,0 @@ -#version 310 es -#define X 1 -#define Y clamp -#define Z X - -#define F 1, 2 - -#define make_function \ - float fn ( float x ) \ - {\ - return x + 4.0; \ - } - -make_function - -int main() { - gl_Position = vec4(X); - gl_Position = Y(1, 2, 3); - gl_Position = vec4(Z); - gl_Position = vec4(F); - gl_Position = vec4(fn(3)); - [] . ++ -- - + - * % / - ! ~ - << >> < > <= >= - == != - & ^ | && ^^ || ? : - += -= *= /= %= <<= >>= &= |= ^= - 1.2 2E10 5u -5lf -} - -struct S { - int member1; - float member2; - vec4 member3; -}; - -#define xyz xxyz -#define yzy() yyz - -#define FUN_MAC() \ - vec3 a = vec3(0); \ - vec3 b = a.zxyz; \ - vec3 b = a.xyz; \ - vec3 b = a.yzy(); \ - vec3 b = a.xyz(); \ - vec3 b = a.yzy; \ - vec3 b = a.z; - -void foo() -{ - S s; - s.member2 + s.member1; - s.member3.zyx; - s.member2.xyz; - s.member2.yzy(); - s.member2.xyz(); - s.member2.yzy; - FUN_MAC() - yzy - - (); - yzy - - -} diff --git a/deps/glslang/Test/preprocessor.success_if_parse_would_fail.vert b/deps/glslang/Test/preprocessor.success_if_parse_would_fail.vert deleted file mode 100644 index ed1ad0c0..00000000 --- a/deps/glslang/Test/preprocessor.success_if_parse_would_fail.vert +++ /dev/null @@ -1,4 +0,0 @@ -int x() { - something that shouldnt compile; -} - diff --git a/deps/glslang/Test/rayQuery-allOps.Error.rgen b/deps/glslang/Test/rayQuery-allOps.Error.rgen deleted file mode 100644 index d25a183a..00000000 --- a/deps/glslang/Test/rayQuery-allOps.Error.rgen +++ /dev/null @@ -1,212 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : enable -#extension GL_EXT_ray_query : enable - -struct Ray -{ - vec3 pos; - float tmin; - vec3 dir; - float tmax; -}; - -layout(std430, set = 0, binding = 0) buffer Log -{ - uint x; - uint y; -}; - -layout(binding = 1, set = 0) uniform accelerationStructureEXT rtas; -layout(std430, set = 0, binding = 2) buffer Rays { Ray rays[]; }; - -void doSomething() -{ - x = 0; - y = 0; -} - -Ray makeRayDesc() -{ - Ray ray; - ray.pos= vec3(0,0,0); - ray.dir = vec3(1,0,0); - ray.tmin = 0.0f; - ray.tmax = 9999.0; - return ray; -} - -void main() -{ - Ray ray = makeRayDesc(); - rayQueryEXT rayQuery; - rayQueryInitializeEXT(rayQuery, rtas, gl_RayFlagsNoneEXT, 0xFF, ray.pos, ray.tmin, ray.dir, ray.tmax); - - mat4x3 _mat4x3; - mat3x4 _mat3x4; - - while (rayQueryProceedEXT(rayQuery) == 1) - { - int candidateType = rayQueryGetIntersectionTypeEXT(rayQuery, false); - switch(candidateType) - { - case gl_RayQueryCandidateIntersectionTriangleEXT: - - rayQueryTerminateEXT(rayQuery); - _mat4x3 = rayQueryGetIntersectionObjectToWorldEXT(rayQuery, false); - _mat3x4 = transpose(_mat4x3); - rayQueryConfirmIntersectionEXT(rayQuery); - - if (rayQueryGetIntersectionFrontFaceEXT(rayQuery, true) == 1) - { - doSomething(); - } - - if (rayQueryGetIntersectionBarycentricsEXT(rayQuery, true) == 0) - { - doSomething(); - } - - if (rayQueryGetIntersectionInstanceCustomIndexEXT(rayQuery, true)) - { - doSomething(); - } - - if (rayQueryGetIntersectionInstanceIdEXT(rayQuery, true)) - { - doSomething(); - } - - if (rayQueryGetIntersectionObjectRayDirectionEXT(rayQuery, true) > 0) - { - doSomething(); - } - - if (rayQueryGetIntersectionObjectRayOriginEXT(rayQuery, true) > 0) - { - doSomething(); - } - - if (rayQueryGetIntersectionPrimitiveIndexEXT(rayQuery, true)) - { - doSomething(); - } - - if (rayQueryGetIntersectionTEXT(rayQuery, true)) - { - doSomething(); - } - - if (rayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetEXT(rayQuery, true)) - { - doSomething(); - } - break; - - case gl_RayQueryCandidateIntersectionAABBEXT: - { - _mat4x3 = rayQueryGetIntersectionObjectToWorldEXT(rayQuery, false); - _mat3x4 = transpose(_mat4x3); - if (rayQueryGetIntersectionCandidateAABBOpaqueEXT(rayQuery)) - { - doSomething(); - } - - int t = 1; - rayQueryGenerateIntersectionEXT(rayQuery, t); - rayQueryTerminateEXT(rayQuery); - break; - } - } - } - - if(_mat3x4[0][0] == _mat4x3[0][0]) - { - doSomething(); - } - - int committedStatus = rayQueryGetIntersectionTypeEXT(rayQuery, true); - - switch(committedStatus) - { - case gl_RayQueryCommittedIntersectionNoneEXT : - _mat4x3 = rayQueryGetIntersectionWorldToObjectEXT(rayQuery, false); - _mat3x4 = transpose(_mat4x3); - break; - - case gl_RayQueryCommittedIntersectionTriangleEXT : - _mat4x3 = rayQueryGetIntersectionWorldToObjectEXT(rayQuery, true); - _mat3x4 = transpose(_mat4x3); - - if (rayQueryGetIntersectionFrontFaceEXT(rayQuery, true)) - { - doSomething(); - } - - if (rayQueryGetIntersectionBarycentricsEXT(rayQuery, true) == 0) - { - doSomething(); - } - break; - - case gl_RayQueryCommittedIntersectionGeneratedEXT : - - if(rayQueryGetIntersectionGeometryIndexEXT(rayQuery, true) > 0) - { - doSomething(); - } - - if(rayQueryGetIntersectionInstanceIdEXT(rayQuery, true)) - { - doSomething(); - } - - if(rayQueryGetIntersectionInstanceCustomIndexEXT(rayQuery, true)) - { - doSomething(); - } - - if(rayQueryGetIntersectionObjectRayDirectionEXT(rayQuery, true) > 0) - { - doSomething(); - } - - if(rayQueryGetIntersectionObjectRayOriginEXT(rayQuery, true) > 0) - { - doSomething(); - } - - if(rayQueryGetIntersectionPrimitiveIndexEXT(rayQuery, true)) - { - doSomething(); - } - - if(rayQueryGetIntersectionTEXT(rayQuery, true)) - { - doSomething(); - } - break; - } - - if (_mat3x4[0][0] == _mat4x3[0][0]) - { - doSomething(); - } - - if (rayQueryGetRayFlagsEXT(rayQuery)) - { - doSomething(); - } - - if (rayQueryGetRayTMinEXT(rayQuery)) - { - doSomething(); - } - - vec3 o = rayQueryGetWorldRayOriginEXT(rayQuery); - vec3 d = rayQueryGetWorldRayDirectionEXT(rayQuery); - - if (o.x == d.z) - { - doSomething(); - } -} diff --git a/deps/glslang/Test/rayQuery-allOps.comp b/deps/glslang/Test/rayQuery-allOps.comp deleted file mode 100644 index 3a2a8d0d..00000000 --- a/deps/glslang/Test/rayQuery-allOps.comp +++ /dev/null @@ -1,213 +0,0 @@ -#version 460 -#extension GL_EXT_ray_query : enable -#extension GL_EXT_ray_flags_primitive_culling : enable - -layout(primitive_culling); -struct Ray -{ - vec3 pos; - float tmin; - vec3 dir; - float tmax; -}; - -layout(std430, set = 0, binding = 0) buffer Log -{ - uint x; - uint y; -}; - -layout(binding = 1, set = 0) uniform accelerationStructureEXT rtas; -layout(std430, set = 0, binding = 2) buffer Rays { Ray rays[]; }; - -void doSomething() -{ - x = 0; - y = 0; -} - -Ray makeRayDesc() -{ - Ray ray; - ray.pos= vec3(0,0,0); - ray.dir = vec3(1,0,0); - ray.tmin = 0.0f; - ray.tmax = 9999.0; - return ray; -} - -void main() -{ - Ray ray = makeRayDesc(); - rayQueryEXT rayQuery; - rayQueryInitializeEXT(rayQuery, rtas, gl_RayFlagsNoneEXT, 0xFF, ray.pos, ray.tmin, ray.dir, ray.tmax); - - mat4x3 _mat4x3; - mat3x4 _mat3x4; - - while (rayQueryProceedEXT(rayQuery)) - { - uint candidateType = rayQueryGetIntersectionTypeEXT(rayQuery, false); - switch(candidateType) - { - case gl_RayQueryCandidateIntersectionTriangleEXT: - - rayQueryTerminateEXT(rayQuery); - _mat4x3 = rayQueryGetIntersectionObjectToWorldEXT(rayQuery, false); - _mat3x4 = transpose(_mat4x3); - rayQueryConfirmIntersectionEXT(rayQuery); - - if (rayQueryGetIntersectionFrontFaceEXT(rayQuery, true)) - { - doSomething(); - } - - if (rayQueryGetIntersectionBarycentricsEXT(rayQuery, true).x == 0) - { - doSomething(); - } - - if (rayQueryGetIntersectionInstanceCustomIndexEXT(rayQuery, true) > 0) - { - doSomething(); - } - - if (rayQueryGetIntersectionInstanceIdEXT(rayQuery, true) > 0) - { - doSomething(); - } - - if (rayQueryGetIntersectionObjectRayDirectionEXT(rayQuery, true).x > 0) - { - doSomething(); - } - - if (rayQueryGetIntersectionObjectRayOriginEXT(rayQuery, true).x > 0) - { - doSomething(); - } - - if (rayQueryGetIntersectionPrimitiveIndexEXT(rayQuery, true) > 0) - { - doSomething(); - } - - if (rayQueryGetIntersectionTEXT(rayQuery, true) > 0.f) - { - doSomething(); - } - - if (rayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetEXT(rayQuery, true) > 0) - { - doSomething(); - } - break; - - case gl_RayQueryCandidateIntersectionAABBEXT: - { - _mat4x3 = rayQueryGetIntersectionObjectToWorldEXT(rayQuery, false); - _mat3x4 = transpose(_mat4x3); - if (rayQueryGetIntersectionCandidateAABBOpaqueEXT(rayQuery)) - { - doSomething(); - } - - float t = 0.5; - rayQueryGenerateIntersectionEXT(rayQuery, t); - rayQueryTerminateEXT(rayQuery); - break; - } - } - } - - if(_mat3x4[0][0] == _mat4x3[0][0]) - { - doSomething(); - } - - uint committedStatus = rayQueryGetIntersectionTypeEXT(rayQuery, true); - - switch(committedStatus) - { - case gl_RayQueryCommittedIntersectionNoneEXT : - _mat4x3 = rayQueryGetIntersectionWorldToObjectEXT(rayQuery, false); - _mat3x4 = transpose(_mat4x3); - break; - - case gl_RayQueryCommittedIntersectionTriangleEXT : - _mat4x3 = rayQueryGetIntersectionWorldToObjectEXT(rayQuery, true); - _mat3x4 = transpose(_mat4x3); - - if (rayQueryGetIntersectionFrontFaceEXT(rayQuery, true)) - { - doSomething(); - } - - if (rayQueryGetIntersectionBarycentricsEXT(rayQuery, true).y == 0) - { - doSomething(); - } - break; - - case gl_RayQueryCommittedIntersectionGeneratedEXT : - - if(rayQueryGetIntersectionGeometryIndexEXT(rayQuery, true) > 0) - { - doSomething(); - } - - if(rayQueryGetIntersectionInstanceIdEXT(rayQuery, true) > 0) - { - doSomething(); - } - - if(rayQueryGetIntersectionInstanceCustomIndexEXT(rayQuery, true) > 0) - { - doSomething(); - } - - if(rayQueryGetIntersectionObjectRayDirectionEXT(rayQuery, true).z > 0) - { - doSomething(); - } - - if(rayQueryGetIntersectionObjectRayOriginEXT(rayQuery, true).x > 0) - { - doSomething(); - } - - if(rayQueryGetIntersectionPrimitiveIndexEXT(rayQuery, true) > 0) - { - doSomething(); - } - - if(rayQueryGetIntersectionTEXT(rayQuery, true) > 0.f) - { - doSomething(); - } - break; - } - - if (_mat3x4[0][0] == _mat4x3[0][0]) - { - doSomething(); - } - - if (rayQueryGetRayFlagsEXT(rayQuery) > gl_RayFlagsSkipTrianglesEXT) - { - doSomething(); - } - - if (rayQueryGetRayTMinEXT(rayQuery) > 0.0) - { - doSomething(); - } - - vec3 o = rayQueryGetWorldRayOriginEXT(rayQuery); - vec3 d = rayQueryGetWorldRayDirectionEXT(rayQuery); - - if (o.x == d.z) - { - doSomething(); - } -} diff --git a/deps/glslang/Test/rayQuery-allOps.frag b/deps/glslang/Test/rayQuery-allOps.frag deleted file mode 100644 index 9fdf0c06..00000000 --- a/deps/glslang/Test/rayQuery-allOps.frag +++ /dev/null @@ -1,212 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : enable -#extension GL_EXT_ray_query : enable - -struct Ray -{ - vec3 pos; - float tmin; - vec3 dir; - float tmax; -}; - -layout(std430, set = 0, binding = 0) buffer Log -{ - uint x; - uint y; -}; - -layout(binding = 1, set = 0) uniform accelerationStructureEXT rtas; -layout(std430, set = 0, binding = 2) buffer Rays { Ray rays[]; }; - -void doSomething() -{ - x = 0; - y = 0; -} - -Ray makeRayDesc() -{ - Ray ray; - ray.pos= vec3(0,0,0); - ray.dir = vec3(1,0,0); - ray.tmin = 0.0f; - ray.tmax = 9999.0; - return ray; -} - -void main() -{ - Ray ray = makeRayDesc(); - rayQueryEXT rayQuery; - rayQueryInitializeEXT(rayQuery, rtas, gl_RayFlagsNoneEXT, 0xFF, ray.pos, ray.tmin, ray.dir, ray.tmax); - - mat4x3 _mat4x3; - mat3x4 _mat3x4; - - while (rayQueryProceedEXT(rayQuery)) - { - uint candidateType = rayQueryGetIntersectionTypeEXT(rayQuery, false); - switch(candidateType) - { - case gl_RayQueryCandidateIntersectionTriangleEXT: - - rayQueryTerminateEXT(rayQuery); - _mat4x3 = rayQueryGetIntersectionObjectToWorldEXT(rayQuery, false); - _mat3x4 = transpose(_mat4x3); - rayQueryConfirmIntersectionEXT(rayQuery); - - if (rayQueryGetIntersectionFrontFaceEXT(rayQuery, true)) - { - doSomething(); - } - - if (rayQueryGetIntersectionBarycentricsEXT(rayQuery, true).x == 0) - { - doSomething(); - } - - if (rayQueryGetIntersectionInstanceCustomIndexEXT(rayQuery, true) > 0) - { - doSomething(); - } - - if (rayQueryGetIntersectionInstanceIdEXT(rayQuery, true) > 0) - { - doSomething(); - } - - if (rayQueryGetIntersectionObjectRayDirectionEXT(rayQuery, true).x > 0) - { - doSomething(); - } - - if (rayQueryGetIntersectionObjectRayOriginEXT(rayQuery, true).x > 0) - { - doSomething(); - } - - if (rayQueryGetIntersectionPrimitiveIndexEXT(rayQuery, true) > 0) - { - doSomething(); - } - - if (rayQueryGetIntersectionTEXT(rayQuery, true) > 0.f) - { - doSomething(); - } - - if (rayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetEXT(rayQuery, true) > 0) - { - doSomething(); - } - break; - - case gl_RayQueryCandidateIntersectionAABBEXT: - { - _mat4x3 = rayQueryGetIntersectionObjectToWorldEXT(rayQuery, false); - _mat3x4 = transpose(_mat4x3); - if (rayQueryGetIntersectionCandidateAABBOpaqueEXT(rayQuery)) - { - doSomething(); - } - - float t = 0.5; - rayQueryGenerateIntersectionEXT(rayQuery, t); - rayQueryTerminateEXT(rayQuery); - break; - } - } - } - - if(_mat3x4[0][0] == _mat4x3[0][0]) - { - doSomething(); - } - - uint committedStatus = rayQueryGetIntersectionTypeEXT(rayQuery, true); - - switch(committedStatus) - { - case gl_RayQueryCommittedIntersectionNoneEXT : - _mat4x3 = rayQueryGetIntersectionWorldToObjectEXT(rayQuery, false); - _mat3x4 = transpose(_mat4x3); - break; - - case gl_RayQueryCommittedIntersectionTriangleEXT : - _mat4x3 = rayQueryGetIntersectionWorldToObjectEXT(rayQuery, true); - _mat3x4 = transpose(_mat4x3); - - if (rayQueryGetIntersectionFrontFaceEXT(rayQuery, true)) - { - doSomething(); - } - - if (rayQueryGetIntersectionBarycentricsEXT(rayQuery, true).y == 0) - { - doSomething(); - } - break; - - case gl_RayQueryCommittedIntersectionGeneratedEXT : - - if(rayQueryGetIntersectionGeometryIndexEXT(rayQuery, true) > 0) - { - doSomething(); - } - - if(rayQueryGetIntersectionInstanceIdEXT(rayQuery, true) > 0) - { - doSomething(); - } - - if(rayQueryGetIntersectionInstanceCustomIndexEXT(rayQuery, true) > 0) - { - doSomething(); - } - - if(rayQueryGetIntersectionObjectRayDirectionEXT(rayQuery, true).z > 0) - { - doSomething(); - } - - if(rayQueryGetIntersectionObjectRayOriginEXT(rayQuery, true).x > 0) - { - doSomething(); - } - - if(rayQueryGetIntersectionPrimitiveIndexEXT(rayQuery, true) > 0) - { - doSomething(); - } - - if(rayQueryGetIntersectionTEXT(rayQuery, true) > 0.f) - { - doSomething(); - } - break; - } - - if (_mat3x4[0][0] == _mat4x3[0][0]) - { - doSomething(); - } - - if (rayQueryGetRayFlagsEXT(rayQuery) > 0) - { - doSomething(); - } - - if (rayQueryGetRayTMinEXT(rayQuery) > 0.0) - { - doSomething(); - } - - vec3 o = rayQueryGetWorldRayOriginEXT(rayQuery); - vec3 d = rayQueryGetWorldRayDirectionEXT(rayQuery); - - if (o.x == d.z) - { - doSomething(); - } -} diff --git a/deps/glslang/Test/rayQuery-allOps.rgen b/deps/glslang/Test/rayQuery-allOps.rgen deleted file mode 100644 index 9fdf0c06..00000000 --- a/deps/glslang/Test/rayQuery-allOps.rgen +++ /dev/null @@ -1,212 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : enable -#extension GL_EXT_ray_query : enable - -struct Ray -{ - vec3 pos; - float tmin; - vec3 dir; - float tmax; -}; - -layout(std430, set = 0, binding = 0) buffer Log -{ - uint x; - uint y; -}; - -layout(binding = 1, set = 0) uniform accelerationStructureEXT rtas; -layout(std430, set = 0, binding = 2) buffer Rays { Ray rays[]; }; - -void doSomething() -{ - x = 0; - y = 0; -} - -Ray makeRayDesc() -{ - Ray ray; - ray.pos= vec3(0,0,0); - ray.dir = vec3(1,0,0); - ray.tmin = 0.0f; - ray.tmax = 9999.0; - return ray; -} - -void main() -{ - Ray ray = makeRayDesc(); - rayQueryEXT rayQuery; - rayQueryInitializeEXT(rayQuery, rtas, gl_RayFlagsNoneEXT, 0xFF, ray.pos, ray.tmin, ray.dir, ray.tmax); - - mat4x3 _mat4x3; - mat3x4 _mat3x4; - - while (rayQueryProceedEXT(rayQuery)) - { - uint candidateType = rayQueryGetIntersectionTypeEXT(rayQuery, false); - switch(candidateType) - { - case gl_RayQueryCandidateIntersectionTriangleEXT: - - rayQueryTerminateEXT(rayQuery); - _mat4x3 = rayQueryGetIntersectionObjectToWorldEXT(rayQuery, false); - _mat3x4 = transpose(_mat4x3); - rayQueryConfirmIntersectionEXT(rayQuery); - - if (rayQueryGetIntersectionFrontFaceEXT(rayQuery, true)) - { - doSomething(); - } - - if (rayQueryGetIntersectionBarycentricsEXT(rayQuery, true).x == 0) - { - doSomething(); - } - - if (rayQueryGetIntersectionInstanceCustomIndexEXT(rayQuery, true) > 0) - { - doSomething(); - } - - if (rayQueryGetIntersectionInstanceIdEXT(rayQuery, true) > 0) - { - doSomething(); - } - - if (rayQueryGetIntersectionObjectRayDirectionEXT(rayQuery, true).x > 0) - { - doSomething(); - } - - if (rayQueryGetIntersectionObjectRayOriginEXT(rayQuery, true).x > 0) - { - doSomething(); - } - - if (rayQueryGetIntersectionPrimitiveIndexEXT(rayQuery, true) > 0) - { - doSomething(); - } - - if (rayQueryGetIntersectionTEXT(rayQuery, true) > 0.f) - { - doSomething(); - } - - if (rayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetEXT(rayQuery, true) > 0) - { - doSomething(); - } - break; - - case gl_RayQueryCandidateIntersectionAABBEXT: - { - _mat4x3 = rayQueryGetIntersectionObjectToWorldEXT(rayQuery, false); - _mat3x4 = transpose(_mat4x3); - if (rayQueryGetIntersectionCandidateAABBOpaqueEXT(rayQuery)) - { - doSomething(); - } - - float t = 0.5; - rayQueryGenerateIntersectionEXT(rayQuery, t); - rayQueryTerminateEXT(rayQuery); - break; - } - } - } - - if(_mat3x4[0][0] == _mat4x3[0][0]) - { - doSomething(); - } - - uint committedStatus = rayQueryGetIntersectionTypeEXT(rayQuery, true); - - switch(committedStatus) - { - case gl_RayQueryCommittedIntersectionNoneEXT : - _mat4x3 = rayQueryGetIntersectionWorldToObjectEXT(rayQuery, false); - _mat3x4 = transpose(_mat4x3); - break; - - case gl_RayQueryCommittedIntersectionTriangleEXT : - _mat4x3 = rayQueryGetIntersectionWorldToObjectEXT(rayQuery, true); - _mat3x4 = transpose(_mat4x3); - - if (rayQueryGetIntersectionFrontFaceEXT(rayQuery, true)) - { - doSomething(); - } - - if (rayQueryGetIntersectionBarycentricsEXT(rayQuery, true).y == 0) - { - doSomething(); - } - break; - - case gl_RayQueryCommittedIntersectionGeneratedEXT : - - if(rayQueryGetIntersectionGeometryIndexEXT(rayQuery, true) > 0) - { - doSomething(); - } - - if(rayQueryGetIntersectionInstanceIdEXT(rayQuery, true) > 0) - { - doSomething(); - } - - if(rayQueryGetIntersectionInstanceCustomIndexEXT(rayQuery, true) > 0) - { - doSomething(); - } - - if(rayQueryGetIntersectionObjectRayDirectionEXT(rayQuery, true).z > 0) - { - doSomething(); - } - - if(rayQueryGetIntersectionObjectRayOriginEXT(rayQuery, true).x > 0) - { - doSomething(); - } - - if(rayQueryGetIntersectionPrimitiveIndexEXT(rayQuery, true) > 0) - { - doSomething(); - } - - if(rayQueryGetIntersectionTEXT(rayQuery, true) > 0.f) - { - doSomething(); - } - break; - } - - if (_mat3x4[0][0] == _mat4x3[0][0]) - { - doSomething(); - } - - if (rayQueryGetRayFlagsEXT(rayQuery) > 0) - { - doSomething(); - } - - if (rayQueryGetRayTMinEXT(rayQuery) > 0.0) - { - doSomething(); - } - - vec3 o = rayQueryGetWorldRayOriginEXT(rayQuery); - vec3 d = rayQueryGetWorldRayDirectionEXT(rayQuery); - - if (o.x == d.z) - { - doSomething(); - } -} diff --git a/deps/glslang/Test/rayQuery-committed.Error.rgen b/deps/glslang/Test/rayQuery-committed.Error.rgen deleted file mode 100644 index aeb8ec06..00000000 --- a/deps/glslang/Test/rayQuery-committed.Error.rgen +++ /dev/null @@ -1,105 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : enable -#extension GL_EXT_ray_query : enable - -struct Ray -{ - vec3 pos; - float tmin; - vec3 dir; - float tmax; -}; - -layout(std430, set = 0, binding = 0) buffer Log -{ - uint x; - uint y; -}; - -layout(binding = 1, set = 0) uniform accelerationStructureEXT rtas; -layout(std430, set = 0, binding = 2) buffer Rays { Ray rays[]; }; - -void doSomething() -{ - x = 0; - y = 0; -} - -uint launchIndex() -{ - return gl_LaunchIDNV.z*gl_LaunchSizeNV.x*gl_LaunchSizeNV.y + gl_LaunchIDNV.y*gl_LaunchSizeNV.x + gl_LaunchIDNV.x; -} - -void main() -{ - uint index = launchIndex(); - Ray ray = rays[index]; - rayQueryEXT rayQuery; - - bool committed_true = true; - bool committed_false = false; - - rayQueryInitializeEXT(rayQuery, rtas, gl_RayFlagsOpaqueEXT, gl_RayFlagsCullBackFacingTrianglesEXT, ray.pos, ray.tmin, ray.dir, ray.tmax); - while (rayQueryProceedEXT(rayQuery)) - { - mat4x3 mat_o2w; - mat4x3 mat_w2o; - - uint candidateType = rayQueryGetIntersectionTypeEXT(rayQuery, committed_false); - if (candidateType == gl_RayQueryCandidateIntersectionTriangleEXT) - { - rayQueryTerminateEXT(rayQuery); - - mat_o2w = rayQueryGetIntersectionObjectToWorldEXT(rayQuery, committed_false); - mat_w2o = rayQueryGetIntersectionWorldToObjectEXT(rayQuery, committed_false); - - rayQueryConfirmIntersectionEXT(rayQuery); - - if (rayQueryGetIntersectionFrontFaceEXT(rayQuery, committed_true)) - { - doSomething(); - } - if (rayQueryGetIntersectionBarycentricsEXT(rayQuery, committed_true).x == 0) - { - doSomething(); - } - if (rayQueryGetIntersectionInstanceCustomIndexEXT(rayQuery, committed_true) > 0) - { - doSomething(); - } - if (rayQueryGetIntersectionInstanceIdEXT(rayQuery, committed_true) > 0) - { - doSomething(); - } - if (rayQueryGetIntersectionObjectRayDirectionEXT(rayQuery, committed_true).x > 0) - { - doSomething(); - } - if (rayQueryGetIntersectionObjectRayOriginEXT(rayQuery, committed_true).x > 0) - { - doSomething(); - } - if (rayQueryGetIntersectionPrimitiveIndexEXT(rayQuery, committed_true) > 0) - { - doSomething(); - } - if (rayQueryGetIntersectionTEXT(rayQuery, committed_true) > 0.f) - { - doSomething(); - } - if (rayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetEXT(rayQuery, committed_true) > 0) - { - doSomething(); - } - } - } - - uint committedStatus = rayQueryGetIntersectionTypeEXT(rayQuery, committed_true); - if (committedStatus == gl_RayQueryCommittedIntersectionGeneratedEXT) - { - if (rayQueryGetIntersectionGeometryIndexEXT(rayQuery, committed_true) > 0) - { - doSomething(); - } - } -} diff --git a/deps/glslang/Test/rayQuery-global.rgen b/deps/glslang/Test/rayQuery-global.rgen deleted file mode 100644 index 3a57e743..00000000 --- a/deps/glslang/Test/rayQuery-global.rgen +++ /dev/null @@ -1,31 +0,0 @@ -#version 460 -#extension GL_EXT_ray_query : enable -#extension GL_EXT_ray_flags_primitive_culling : enable - -layout(binding = 1, set = 0) uniform accelerationStructureEXT rtas; - -rayQueryEXT rqGlobal; - -void otherWrapper(rayQueryEXT rq) { - rayQueryProceedEXT(rq); - rayQueryProceedEXT(rqGlobal); -} - -void wrapper(rayQueryEXT rq) { - rayQueryEXT rq2; - rayQueryProceedEXT(rq); - rayQueryProceedEXT(rqGlobal); - otherWrapper(rq); - otherWrapper(rq2); - otherWrapper(rqGlobal); -} - -void main() { - rayQueryInitializeEXT(rqGlobal, rtas, gl_RayFlagsNoneEXT, 0xFF, vec3(0,0,0), 0.0, vec3(1,0,0), 1.0); - wrapper(rqGlobal); - otherWrapper(rqGlobal); - rayQueryEXT rq2; - rayQueryInitializeEXT(rq2, rtas, gl_RayFlagsNoneEXT, 0xFF, vec3(0,0,0), 0.0, vec3(1,0,0), 1.0); - wrapper(rq2); - otherWrapper(rq2); -} diff --git a/deps/glslang/Test/rayQuery-initialization.Error.comp b/deps/glslang/Test/rayQuery-initialization.Error.comp deleted file mode 100644 index 1c7757cf..00000000 --- a/deps/glslang/Test/rayQuery-initialization.Error.comp +++ /dev/null @@ -1,8 +0,0 @@ -#version 460 - -#extension GL_EXT_ray_query : enable - -void main () { - rayQueryEXT foo; - rayQueryEXT bar = foo; -} \ No newline at end of file diff --git a/deps/glslang/Test/rayQuery-initialize.rgen b/deps/glslang/Test/rayQuery-initialize.rgen deleted file mode 100644 index ff618006..00000000 --- a/deps/glslang/Test/rayQuery-initialize.rgen +++ /dev/null @@ -1,33 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : enable -#extension GL_EXT_ray_query : enable - -struct Ray -{ - vec3 pos; - float tmin; - vec3 dir; - float tmax; -}; - -layout(binding = 0, set = 0) uniform accelerationStructureEXT rtas; -layout(std430, set = 0, binding = 2) buffer Rays { Ray rays[]; }; - -uint launchIndex() -{ - return gl_LaunchIDNV.z*gl_LaunchSizeNV.x*gl_LaunchSizeNV.y + gl_LaunchIDNV.y*gl_LaunchSizeNV.x + gl_LaunchIDNV.x; -} - -void doInitialize(rayQueryEXT rayQuery, Ray ray) -{ - rayQueryInitializeEXT(rayQuery, rtas, gl_RayFlagsNoneEXT, gl_RayFlagsCullBackFacingTrianglesEXT, ray.pos, ray.tmin, ray.dir, ray.tmax); -} - -void main() -{ - uint index = launchIndex(); - Ray ray = rays[index]; - rayQueryEXT rayQuery; - doInitialize(rayQuery, ray); - rayQueryInitializeEXT(rayQuery, rtas, gl_RayFlagsOpaqueEXT, gl_RayFlagsCullFrontFacingTrianglesEXT, ray.pos, ray.tmin, ray.dir, ray.tmax); -} diff --git a/deps/glslang/Test/rayQuery-no-cse.rgen b/deps/glslang/Test/rayQuery-no-cse.rgen deleted file mode 100644 index ccec76f7..00000000 --- a/deps/glslang/Test/rayQuery-no-cse.rgen +++ /dev/null @@ -1,35 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : enable -#extension GL_EXT_ray_query : enable - -struct Ray -{ - vec3 pos; - float tmin; - vec3 dir; - float tmax; -}; - -layout(binding = 0, set = 0) uniform accelerationStructureEXT rtas; -layout(std430, set = 0, binding = 2) buffer Rays { Ray rays[]; }; - -uint launchIndex() -{ - return gl_LaunchIDNV.z*gl_LaunchSizeNV.x*gl_LaunchSizeNV.y + gl_LaunchIDNV.y*gl_LaunchSizeNV.x + gl_LaunchIDNV.x; -} - -void doInitialize(rayQueryEXT rayQuery, Ray ray) -{ - rayQueryInitializeEXT(rayQuery, rtas, gl_RayFlagsNoneEXT, gl_RayFlagsCullBackFacingTrianglesEXT, ray.pos, ray.tmin, ray.dir, ray.tmax); -} - -void main() -{ - uint index = launchIndex(); - Ray ray = rays[index]; - rayQueryEXT rayQuery1; - rayQueryEXT rayQuery2; - doInitialize(rayQuery1, ray); - rayQueryInitializeEXT(rayQuery1, rtas, gl_RayFlagsOpaqueEXT, gl_RayFlagsCullFrontFacingTrianglesEXT, ray.pos, ray.tmin, ray.dir, ray.tmax); - doInitialize(rayQuery2, ray); -} diff --git a/deps/glslang/Test/rayQuery-types.comp b/deps/glslang/Test/rayQuery-types.comp deleted file mode 100644 index c70a3fc4..00000000 --- a/deps/glslang/Test/rayQuery-types.comp +++ /dev/null @@ -1,45 +0,0 @@ -#version 460 -#extension GL_EXT_ray_query : require - -layout(local_size_x = 16, local_size_y = 8, local_size_z = 1) in; - -layout(binding = 0, set = 0) uniform accelerationStructureEXT tlas; - -void main() -{ - rayQueryEXT rayQuery; - rayQueryInitializeEXT(rayQuery, // Ray query - tlas, // Top-level acceleration structure - 0, // Ray flags - 0xFF, // 8-bit instance mask - vec3(0), // Ray origin - 0.0, // Minimum t-value - vec3(1, 0, 0), // Ray direction - 10000.0); // Maximum t-value - - // yes this is silly, just want to verify the return types - bool rq_proceed = rayQueryProceedEXT(rayQuery); - while(rq_proceed) - { - rq_proceed = rayQueryProceedEXT(rayQuery); - } - - const uint intersectionType = rayQueryGetIntersectionTypeEXT(rayQuery, true); - const float rayTMin = rayQueryGetRayTMinEXT(rayQuery); - const uint rayFlags = rayQueryGetRayFlagsEXT(rayQuery); - const vec3 worldRayOrigin = rayQueryGetWorldRayOriginEXT(rayQuery); - const vec3 worldDirection = rayQueryGetWorldRayDirectionEXT(rayQuery); - const float intersectionT = rayQueryGetIntersectionTEXT(rayQuery, true); - const int customIndex = rayQueryGetIntersectionInstanceCustomIndexEXT(rayQuery, true); - const int instanceId = rayQueryGetIntersectionInstanceIdEXT(rayQuery, true); - const uint sbtOffset = rayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetEXT(rayQuery, true); - const int geometryIndex = rayQueryGetIntersectionGeometryIndexEXT(rayQuery, true); - const int primitiveIndex = rayQueryGetIntersectionPrimitiveIndexEXT(rayQuery, true); - const vec2 barys = rayQueryGetIntersectionBarycentricsEXT(rayQuery, true); - const bool frontface = rayQueryGetIntersectionFrontFaceEXT(rayQuery, true); - const bool aabbOpaque = rayQueryGetIntersectionCandidateAABBOpaqueEXT(rayQuery); - const vec3 objRayDirection = rayQueryGetIntersectionObjectRayDirectionEXT(rayQuery, true); - const vec3 objRayOrigin = rayQueryGetIntersectionObjectRayOriginEXT(rayQuery, true); - const mat4x3 objToWorld = rayQueryGetIntersectionObjectToWorldEXT(rayQuery, true); - const mat4x3 worldToObj = rayQueryGetIntersectionWorldToObjectEXT(rayQuery, true); -} diff --git a/deps/glslang/Test/rayQuery.rgen b/deps/glslang/Test/rayQuery.rgen deleted file mode 100644 index 8d5638fd..00000000 --- a/deps/glslang/Test/rayQuery.rgen +++ /dev/null @@ -1,23 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : enable -#extension GL_EXT_ray_query : enable -layout(binding = 0, set = 0) uniform accelerationStructureEXT acc0; - -layout(shaderRecordNV) buffer block -{ - vec3 dir; - vec3 origin; -}; - -void main() -{ - rayQueryEXT localRayQuery; - uint rayFlags = gl_RayFlagsOpaqueEXT | gl_RayFlagsSkipClosestHitShaderEXT; - float tMin = 0.f; - float tMax = 1000.f; - rayQueryInitializeEXT(localRayQuery, acc0, rayFlags, 0xFF , origin, tMin, dir, tMax); - if (!rayQueryProceedEXT(localRayQuery)) - { - rayQueryTerminateEXT(localRayQuery); - } -} diff --git a/deps/glslang/Test/recurse1.frag b/deps/glslang/Test/recurse1.frag deleted file mode 100644 index 66b4c3fe..00000000 --- a/deps/glslang/Test/recurse1.frag +++ /dev/null @@ -1,48 +0,0 @@ -#version 330 core - -// cross-unit recursion - -void main() {} - -// two-level recursion - -float cbar(int); - -void cfoo(float) -{ - cbar(2); -} - -// four-level, out of order - -void CB(); -void CD(); -void CA() { CB(); } -void CC() { CD(); } - -// high degree - -void CBT(); -void CDT(); -void CAT() { CBT(); CBT(); CBT(); } -void CCT() { CDT(); CDT(); CBT(); } - -// not recursive - -void norA() {} -void norB() { norA(); } -void norC() { norA(); } -void norD() { norA(); } -void norE() { norB(); } -void norF() { norB(); } -void norG() { norE(); } -void norH() { norE(); } -void norI() { norE(); } - -// not recursive, but with a call leading into a cycle if ignoring direction - -void norcA() { } -void norcB() { norcA(); } -void norcC() { norcB(); } -void norcD() { norcC(); norcB(); } // head of cycle -void norcE() { norcD(); } // lead into cycle diff --git a/deps/glslang/Test/recurse1.vert b/deps/glslang/Test/recurse1.vert deleted file mode 100644 index e2dbce00..00000000 --- a/deps/glslang/Test/recurse1.vert +++ /dev/null @@ -1,44 +0,0 @@ -#version 330 core - -void main() {} - -float bar(int); - -// direct recursion - -void self() -{ - self(); -} - -// two-level recursion - -void foo(float) -{ - bar(2); -} - -float bar(int) -{ - foo(4.2); - - return 3.2; -} - -// four-level, out of order - -void B(); -void D(); -void A() { B(); } -void C() { D(); } -void B() { C(); } -void D() { A(); } - -// high degree - -void BT(); -void DT(); -void AT() { BT(); BT(); BT(); } -void CT() { DT(); AT(); DT(); BT(); } -void BT() { CT(); CT(); CT(); } -void DT() { AT(); } diff --git a/deps/glslang/Test/recurse2.frag b/deps/glslang/Test/recurse2.frag deleted file mode 100644 index d649fef6..00000000 --- a/deps/glslang/Test/recurse2.frag +++ /dev/null @@ -1,28 +0,0 @@ -#version 330 core - -// cross-unit recursion - -// two-level recursion - -void cfoo(float); - -float cbar(int) -{ - cfoo(4.2); - - return 3.2; -} - -// four-level, out of order - -void CA(); -void CC(); -void CB() { CC(); } -void CD() { CA(); } - -// high degree - -void CAT(); -void CCT(); -void CBT() { CCT(); CCT(); CCT(); } -void CDT() { CAT(); } diff --git a/deps/glslang/Test/reflection.frag b/deps/glslang/Test/reflection.frag deleted file mode 100644 index 92996531..00000000 --- a/deps/glslang/Test/reflection.frag +++ /dev/null @@ -1,8 +0,0 @@ -#version 440 core - -in float inval; - -void main() -{ - float f = inval; -} diff --git a/deps/glslang/Test/reflection.linked.frag b/deps/glslang/Test/reflection.linked.frag deleted file mode 100644 index 4a88ec49..00000000 --- a/deps/glslang/Test/reflection.linked.frag +++ /dev/null @@ -1,19 +0,0 @@ -#version 440 core - -layout(binding = 0, std140) uniform ubo_block { - float unused_uniform; - float shared_uniform; - float vsonly_uniform; - float fsonly_uniform; -} ubo; - -in float vertout; - -out float fragout; - -void main() -{ - fragout = vertout; - fragout += ubo.shared_uniform; - fragout += ubo.fsonly_uniform; -} diff --git a/deps/glslang/Test/reflection.linked.vert b/deps/glslang/Test/reflection.linked.vert deleted file mode 100644 index e28142de..00000000 --- a/deps/glslang/Test/reflection.linked.vert +++ /dev/null @@ -1,19 +0,0 @@ -#version 440 core - -layout(binding = 0, std140) uniform ubo_block { - float unused_uniform; - float shared_uniform; - float vsonly_uniform; - float fsonly_uniform; -} ubo; - -in float vertin; - -out float vertout; - -void main() -{ - vertout = vertin; - vertout += ubo.shared_uniform; - vertout += ubo.vsonly_uniform; -} diff --git a/deps/glslang/Test/reflection.options.geom b/deps/glslang/Test/reflection.options.geom deleted file mode 100644 index 76ba3c04..00000000 --- a/deps/glslang/Test/reflection.options.geom +++ /dev/null @@ -1,31 +0,0 @@ -#version 330 core - -precision highp float; - -layout(triangles) in; -layout(triangle_strip, max_vertices = 4) out; - -in block -{ - vec2 Color; - vec2 Texcoord; - flat ivec3 in_a; -} In[]; - -out block -{ - vec4 Color; - vec4 a; - vec2 b[3]; -} Out; - -void main() -{ - for(int i = 0; i < gl_in.length(); ++i) - { - gl_Position = gl_in[i].gl_Position; - Out.Color = vec4(In[i].Color, 0, 1); - EmitVertex(); - } - EndPrimitive(); -} diff --git a/deps/glslang/Test/reflection.options.vert b/deps/glslang/Test/reflection.options.vert deleted file mode 100644 index b88f8542..00000000 --- a/deps/glslang/Test/reflection.options.vert +++ /dev/null @@ -1,64 +0,0 @@ -#version 440 core - -struct VertexInfo { - float position[3]; - float normal[3]; -}; - -struct TriangleInfo { - VertexInfo v[3]; -}; - -buffer VertexCollection { - TriangleInfo t[5]; - uint padding[10]; -}; - -buffer MultipleArrays { - TriangleInfo tri[5]; - VertexInfo vert[5]; - float f[5]; -} multiarray; - -buffer ArrayedBind { - float a; - float b; -} buffers[3]; - -uniform UBO { - VertexInfo verts[2]; - float flt[8]; - uvec4 unused; - float uniform_multi[4][3][2]; -} ubo; - -uniform float uniform_multi[4][3][2]; - -struct OutputStruct { - float val; - vec3 a; - vec2 b[4]; - mat2x2 c; -}; - -out OutputStruct outval; -out float outarr[3]; - -void main() -{ - float f; - f += t[0].v[0].position[0]; - f += t[gl_InstanceID].v[gl_InstanceID].position[gl_InstanceID]; - f += t[gl_InstanceID].v[gl_InstanceID].normal[gl_InstanceID]; - f += multiarray.tri[gl_InstanceID].v[0].position[0]; - f += multiarray.vert[gl_InstanceID].position[0]; - f += multiarray.f[gl_InstanceID]; - f += ubo.verts[gl_InstanceID].position[0]; - f += ubo.flt[gl_InstanceID]; - f += ubo.uniform_multi[0][0][0]; - f += uniform_multi[gl_InstanceID][gl_InstanceID][gl_InstanceID]; - f += buffers[gl_InstanceID].b; - TriangleInfo tlocal[5] = t; - outval.val = f; - outarr[2] = f; -} diff --git a/deps/glslang/Test/reflection.vert b/deps/glslang/Test/reflection.vert deleted file mode 100644 index 7b9239b8..00000000 --- a/deps/glslang/Test/reflection.vert +++ /dev/null @@ -1,245 +0,0 @@ -#version 440 core - -layout(std140, row_major) uniform nameless { - vec3 anonMember1; - mat3x2 m23; - int scalarAfterm23; - vec4 anonDeadMember2; - vec4 anonMember3; - int scalarBeforeArray; - float floatArray[5]; - int scalarAfterArray; - mat2x2 m22[9]; -}; - -layout(std140, column_major) uniform c_nameless { - vec3 c_anonMember1; - mat3x2 c_m23; - int c_scalarAfterm23; - vec4 c_anonDeadMember2; - vec4 c_anonMember3; -}; - -layout(std140) uniform named { - vec3 deadMember1; - int scalar; - vec4 member2; - vec4 member3; - vec2 memvec2; - float memf1; - bool memf2; - int memf3; - vec2 memvec2a; - mat2x2 m22[7]; -} ablock; - -layout(std140) uniform namelessdead { - int a; -}; - -layout(std140) uniform namedDead { - int b; -} bblock; - -struct N1 { - float a; -}; - -struct N2 { - float b; - float c; - float d; -}; - -struct N3 { - N1 n1; - N2 n2; -}; - -layout(std140) uniform nested { - N3 foo; -} nest; - -layout(std140) uniform nested2 { - vec4 padding; // offset 0, size 16 - N3 a; // offset 16, size 32 - N1 b[4]; // offset 48, size 64 - N1 c[2]; // offset 112, size 32 - N1 d[4]; // offset 144, size 64 -} nest2; - -struct TS { - int a; - int dead; -}; - -uniform TS s; - -uniform float uf1; -uniform float uf2; -uniform float ufDead3; -uniform float ufDead4; - -uniform writeonly uimage2D image_ui2D; -uniform sampler2D sampler_2D; -uniform sampler2DMSArray sampler_2DMSArray; - -uniform mat2 dm22[10]; - -struct deep1 { - vec2 va[3]; - bool b; -}; - -struct deep2 { - int i; - deep1 d1[4]; -}; - -struct deep3 { - vec4 iv4; - deep2 d2; - ivec3 v3; -}; - -in float attributeFloat; -layout(location = 2) in vec2 attributeFloat2; -in vec3 attributeFloat3; -in vec4 attributeFloat4; -in mat4 attributeMat4; -in float attributeFloatArray[3]; - -uniform deep3 deepA[2], deepB[2], deepC[3], deepD[2]; - -const bool control = true; - -void deadFunction() -{ - vec3 v3 = ablock.deadMember1; - vec4 v = anonDeadMember2; - float f = ufDead4; -} - -void liveFunction2() -{ - vec3 v = anonMember1; - float f = uf1; -} - -void liveFunction1(writeonly uimage2D p_ui2D, sampler2D p_2D, sampler2DMSArray p_2DMSArray) - -{ - liveFunction2(); - float f = uf2; - vec4 v = ablock.member3; -} - -uniform abl { - float foo; -} arrBl[4]; - -uniform abl2 { - float foo; -} arrBl2[4]; - -buffer buf1 { - float scalar; - float runtimeArray[]; -} buf1i; - -buffer buf2 { - float scalar; - N2 runtimeArray[]; -} buf2i; - -buffer buf3 { - float scalar; - float runtimeArray[]; -} buf3i; - -buffer buf4 { - float scalar; - N2 runtimeArray[]; -} buf4i; - -struct VertexInfo { - float position[3]; - float normal[3]; -}; - -struct TriangleInfo { - VertexInfo v[3]; -}; - -buffer VertexCollection { - TriangleInfo t[5]; - uint padding[10]; -}; - -out float outval; - -void main() -{ - liveFunction1(image_ui2D, sampler_2D, sampler_2DMSArray); - liveFunction2(); - - if (! control) - deadFunction(); - - float f; - int i; - if (control) { - liveFunction2(); - f = anonMember3.z; - f = s.a; - f = ablock.scalar; - f = m23[1].y + scalarAfterm23; - f = c_m23[1].y + c_scalarAfterm23; - f += scalarBeforeArray; - f += floatArray[2]; - f += floatArray[4]; - f += scalarAfterArray; - f += ablock.memvec2.x; - f += ablock.memf1; - f += float(ablock.memf2); - f += ablock.memf3; - f += ablock.memvec2a.y; - f += ablock.m22[i][1][0]; - f += dm22[3][0][1]; - f += m22[2][1].y; - f += nest.foo.n1.a + nest.foo.n2.b + nest.foo.n2.c + nest.foo.n2.d; - f += deepA[i].d2.d1[2].va[1].x; - f += deepB[1].d2.d1[i].va[1].x; - f += deepB[i].d2.d1[i].va[1].x; - deep3 d = deepC[1]; - deep3 da[2] = deepD; - deep1 db = deepA[i].d2.d1[i]; - } else - f = ufDead3; - - f += arrBl[2].foo + arrBl[0].foo; - f += arrBl2[i].foo; - - f += attributeFloat; - f += attributeFloat2.x; - f += attributeFloat3.x; - f += attributeFloat4.x; - f += attributeMat4[0][1]; - f += attributeFloatArray[2]; - f += buf1i.runtimeArray[3]; - f += buf2i.runtimeArray[3].c; - f += buf3i.runtimeArray[gl_InstanceID]; - f += buf4i.runtimeArray[gl_InstanceID].c; - - N3 n = nest2.a; - N1 b[4] = nest2.b; - f += nest2.c[1].a; - f += nest2.d[gl_InstanceID].a; - - f += t[0].v[0].position[0]; - f += t[gl_InstanceID].v[gl_InstanceID].position[gl_InstanceID]; - f += t[gl_InstanceID].v[gl_InstanceID].normal[gl_InstanceID]; - TriangleInfo tlocal[5] = t; - - outval = f; -} diff --git a/deps/glslang/Test/remap.basic.dcefunc.frag b/deps/glslang/Test/remap.basic.dcefunc.frag deleted file mode 100644 index 714120ab..00000000 --- a/deps/glslang/Test/remap.basic.dcefunc.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 - -in float inf; -out vec4 outf4; - -vec3 dead_fn() { return vec3(0); } - -void main() -{ - outf4 = vec4(inf); -} diff --git a/deps/glslang/Test/remap.basic.everything.frag b/deps/glslang/Test/remap.basic.everything.frag deleted file mode 100644 index 714120ab..00000000 --- a/deps/glslang/Test/remap.basic.everything.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 - -in float inf; -out vec4 outf4; - -vec3 dead_fn() { return vec3(0); } - -void main() -{ - outf4 = vec4(inf); -} diff --git a/deps/glslang/Test/remap.basic.none.frag b/deps/glslang/Test/remap.basic.none.frag deleted file mode 100644 index 714120ab..00000000 --- a/deps/glslang/Test/remap.basic.none.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 - -in float inf; -out vec4 outf4; - -vec3 dead_fn() { return vec3(0); } - -void main() -{ - outf4 = vec4(inf); -} diff --git a/deps/glslang/Test/remap.basic.strip.frag b/deps/glslang/Test/remap.basic.strip.frag deleted file mode 100644 index 714120ab..00000000 --- a/deps/glslang/Test/remap.basic.strip.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 - -in float inf; -out vec4 outf4; - -vec3 dead_fn() { return vec3(0); } - -void main() -{ - outf4 = vec4(inf); -} diff --git a/deps/glslang/Test/remap.hlsl.sample.basic.everything.frag b/deps/glslang/Test/remap.hlsl.sample.basic.everything.frag deleted file mode 100644 index 03e83ef9..00000000 --- a/deps/glslang/Test/remap.hlsl.sample.basic.everything.frag +++ /dev/null @@ -1,90 +0,0 @@ -SamplerState g_sSamp : register(s0); -uniform sampler2D g_sSamp2d -{ - AddressU = MIRROR; - AddressV = WRAP; - MinLOD = 0; - MaxLOD = 10; - MaxAnisotropy = 2; - MipLodBias = 0.2; -}, g_sSamp2D_b; - -Texture1D g_tTex1df4a : register(t1); - -uniform Texture1D g_tTex1df4 : register(t0); -Texture1D g_tTex1di4; -Texture1D g_tTex1du4; - -Texture2D g_tTex2df4; -Texture2D g_tTex2di4; -Texture2D g_tTex2du4; - -Texture3D g_tTex3df4; -Texture3D g_tTex3di4; -Texture3D g_tTex3du4; - -TextureCube g_tTexcdf4; -TextureCube g_tTexcdi4; -TextureCube g_tTexcdu4; - -struct MemberTest -{ - int Sample; // in HLSL, method names are valid struct members. - int CalculateLevelOfDetail; // ... - int CalculateLevelOfDetailUnclamped; // ... - int Gather; // ... - int GetDimensions; // ... - int GetSamplePosition; // ... - int Load; // ... - int SampleBias; // ... - int SampleCmp; // ... - int SampleCmpLevelZero; // ... - int SampleGrad; // ... - int SampleLevel; // ... -}; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - MemberTest mtest; - mtest.CalculateLevelOfDetail = 1; // in HLSL, method names are valid struct members. - mtest.CalculateLevelOfDetailUnclamped = 1; // ... - mtest.Gather = 1; // ... - mtest.GetDimensions = 1; // ... - mtest.GetSamplePosition = 1; // ... - mtest.Load = 1; // ... - mtest.Sample = 1; // ... - mtest.SampleBias = 1; // ... - mtest.SampleCmp = 1; // ... - mtest.SampleCmpLevelZero = 1; // ... - mtest.SampleGrad = 1; // ... - mtest.SampleLevel = 1; // ... - - float4 txval10 = g_tTex1df4 . Sample(g_sSamp, 0.1); - int4 txval11 = g_tTex1di4 . Sample(g_sSamp, 0.2); - uint4 txval12 = g_tTex1du4 . Sample(g_sSamp, 0.3); - - float4 txval20 = g_tTex2df4 . Sample(g_sSamp, float2(0.1, 0.2)); - int4 txval21 = g_tTex2di4 . Sample(g_sSamp, float2(0.3, 0.4)); - uint4 txval22 = g_tTex2du4 . Sample(g_sSamp, float2(0.5, 0.6)); - - float4 txval30 = g_tTex3df4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3)); - int4 txval31 = g_tTex3di4 . Sample(g_sSamp, float3(0.4, 0.5, 0.6)); - uint4 txval32 = g_tTex3du4 . Sample(g_sSamp, float3(0.7, 0.8, 0.9)); - - float4 txval40 = g_tTexcdf4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3)); - int4 txval41 = g_tTexcdi4 . Sample(g_sSamp, float3(0.4, 0.5, 0.6)); - uint4 txval42 = g_tTexcdu4 . Sample(g_sSamp, float3(0.7, 0.8, 0.9)); - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/remap.hlsl.sample.basic.none.frag b/deps/glslang/Test/remap.hlsl.sample.basic.none.frag deleted file mode 100644 index 03e83ef9..00000000 --- a/deps/glslang/Test/remap.hlsl.sample.basic.none.frag +++ /dev/null @@ -1,90 +0,0 @@ -SamplerState g_sSamp : register(s0); -uniform sampler2D g_sSamp2d -{ - AddressU = MIRROR; - AddressV = WRAP; - MinLOD = 0; - MaxLOD = 10; - MaxAnisotropy = 2; - MipLodBias = 0.2; -}, g_sSamp2D_b; - -Texture1D g_tTex1df4a : register(t1); - -uniform Texture1D g_tTex1df4 : register(t0); -Texture1D g_tTex1di4; -Texture1D g_tTex1du4; - -Texture2D g_tTex2df4; -Texture2D g_tTex2di4; -Texture2D g_tTex2du4; - -Texture3D g_tTex3df4; -Texture3D g_tTex3di4; -Texture3D g_tTex3du4; - -TextureCube g_tTexcdf4; -TextureCube g_tTexcdi4; -TextureCube g_tTexcdu4; - -struct MemberTest -{ - int Sample; // in HLSL, method names are valid struct members. - int CalculateLevelOfDetail; // ... - int CalculateLevelOfDetailUnclamped; // ... - int Gather; // ... - int GetDimensions; // ... - int GetSamplePosition; // ... - int Load; // ... - int SampleBias; // ... - int SampleCmp; // ... - int SampleCmpLevelZero; // ... - int SampleGrad; // ... - int SampleLevel; // ... -}; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - MemberTest mtest; - mtest.CalculateLevelOfDetail = 1; // in HLSL, method names are valid struct members. - mtest.CalculateLevelOfDetailUnclamped = 1; // ... - mtest.Gather = 1; // ... - mtest.GetDimensions = 1; // ... - mtest.GetSamplePosition = 1; // ... - mtest.Load = 1; // ... - mtest.Sample = 1; // ... - mtest.SampleBias = 1; // ... - mtest.SampleCmp = 1; // ... - mtest.SampleCmpLevelZero = 1; // ... - mtest.SampleGrad = 1; // ... - mtest.SampleLevel = 1; // ... - - float4 txval10 = g_tTex1df4 . Sample(g_sSamp, 0.1); - int4 txval11 = g_tTex1di4 . Sample(g_sSamp, 0.2); - uint4 txval12 = g_tTex1du4 . Sample(g_sSamp, 0.3); - - float4 txval20 = g_tTex2df4 . Sample(g_sSamp, float2(0.1, 0.2)); - int4 txval21 = g_tTex2di4 . Sample(g_sSamp, float2(0.3, 0.4)); - uint4 txval22 = g_tTex2du4 . Sample(g_sSamp, float2(0.5, 0.6)); - - float4 txval30 = g_tTex3df4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3)); - int4 txval31 = g_tTex3di4 . Sample(g_sSamp, float3(0.4, 0.5, 0.6)); - uint4 txval32 = g_tTex3du4 . Sample(g_sSamp, float3(0.7, 0.8, 0.9)); - - float4 txval40 = g_tTexcdf4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3)); - int4 txval41 = g_tTexcdi4 . Sample(g_sSamp, float3(0.4, 0.5, 0.6)); - uint4 txval42 = g_tTexcdu4 . Sample(g_sSamp, float3(0.7, 0.8, 0.9)); - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/remap.hlsl.sample.basic.strip.frag b/deps/glslang/Test/remap.hlsl.sample.basic.strip.frag deleted file mode 100644 index 03e83ef9..00000000 --- a/deps/glslang/Test/remap.hlsl.sample.basic.strip.frag +++ /dev/null @@ -1,90 +0,0 @@ -SamplerState g_sSamp : register(s0); -uniform sampler2D g_sSamp2d -{ - AddressU = MIRROR; - AddressV = WRAP; - MinLOD = 0; - MaxLOD = 10; - MaxAnisotropy = 2; - MipLodBias = 0.2; -}, g_sSamp2D_b; - -Texture1D g_tTex1df4a : register(t1); - -uniform Texture1D g_tTex1df4 : register(t0); -Texture1D g_tTex1di4; -Texture1D g_tTex1du4; - -Texture2D g_tTex2df4; -Texture2D g_tTex2di4; -Texture2D g_tTex2du4; - -Texture3D g_tTex3df4; -Texture3D g_tTex3di4; -Texture3D g_tTex3du4; - -TextureCube g_tTexcdf4; -TextureCube g_tTexcdi4; -TextureCube g_tTexcdu4; - -struct MemberTest -{ - int Sample; // in HLSL, method names are valid struct members. - int CalculateLevelOfDetail; // ... - int CalculateLevelOfDetailUnclamped; // ... - int Gather; // ... - int GetDimensions; // ... - int GetSamplePosition; // ... - int Load; // ... - int SampleBias; // ... - int SampleCmp; // ... - int SampleCmpLevelZero; // ... - int SampleGrad; // ... - int SampleLevel; // ... -}; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - MemberTest mtest; - mtest.CalculateLevelOfDetail = 1; // in HLSL, method names are valid struct members. - mtest.CalculateLevelOfDetailUnclamped = 1; // ... - mtest.Gather = 1; // ... - mtest.GetDimensions = 1; // ... - mtest.GetSamplePosition = 1; // ... - mtest.Load = 1; // ... - mtest.Sample = 1; // ... - mtest.SampleBias = 1; // ... - mtest.SampleCmp = 1; // ... - mtest.SampleCmpLevelZero = 1; // ... - mtest.SampleGrad = 1; // ... - mtest.SampleLevel = 1; // ... - - float4 txval10 = g_tTex1df4 . Sample(g_sSamp, 0.1); - int4 txval11 = g_tTex1di4 . Sample(g_sSamp, 0.2); - uint4 txval12 = g_tTex1du4 . Sample(g_sSamp, 0.3); - - float4 txval20 = g_tTex2df4 . Sample(g_sSamp, float2(0.1, 0.2)); - int4 txval21 = g_tTex2di4 . Sample(g_sSamp, float2(0.3, 0.4)); - uint4 txval22 = g_tTex2du4 . Sample(g_sSamp, float2(0.5, 0.6)); - - float4 txval30 = g_tTex3df4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3)); - int4 txval31 = g_tTex3di4 . Sample(g_sSamp, float3(0.4, 0.5, 0.6)); - uint4 txval32 = g_tTex3du4 . Sample(g_sSamp, float3(0.7, 0.8, 0.9)); - - float4 txval40 = g_tTexcdf4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3)); - int4 txval41 = g_tTexcdi4 . Sample(g_sSamp, float3(0.4, 0.5, 0.6)); - uint4 txval42 = g_tTexcdu4 . Sample(g_sSamp, float3(0.7, 0.8, 0.9)); - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/deps/glslang/Test/remap.hlsl.templatetypes.everything.frag b/deps/glslang/Test/remap.hlsl.templatetypes.everything.frag deleted file mode 100644 index f48c98a7..00000000 --- a/deps/glslang/Test/remap.hlsl.templatetypes.everything.frag +++ /dev/null @@ -1,47 +0,0 @@ - -float main(float4 input) : COLOR0 -{ - vector r00 = float4(1,2,3,4); // vector means float4 - float4 r01 = vector(2,3,4,5); // vector means float4 - - vector r12 = bool1(false); - vector r13 = int1(1); - vector r14 = float1(1); - vector r15 = double1(1); - vector r16 = uint1(1); - - vector r20 = bool2(false, true); - vector r21 = int2(1,2); - vector r22 = float2(1,2); - vector r23 = double2(1,2); - vector r24 = uint2(1,2); - - vector r30 = bool3(false, true, true); - vector r31 = int3(1,2,3); - vector r32 = float3(1,2,3); - vector r33 = double3(1,2,3); - vector r34 = uint3(1,2,3); - - vector r40 = bool4(false, true, true, false); - vector r41 = int4(1,2,3,4); - vector r42 = float4(1,2,3,4); - vector r43 = double4(1,2,3,4); - vector r44 = uint4(1,2,3,4); - - matrix r50 = float4x4(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); // matrix means float4x4 - float4x4 r51 = matrix(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); // matrix means float4x4 - - // matrix r60 = bool2x3(false, true, false, true, false, true); // TODO: - matrix r61 = float2x3(1,2,3,4,5,6); - matrix r62 = float3x2(1,2,3,4,5,6); - // matrix r63 = float4x1(1,2,3,4); // TODO: - // matrix r64 = float1x4(1,2,3,4); // TODO: - matrix r65 = float4x2(1,2,3,4,5,6,7,8); - matrix r66 = float4x3(1,2,3,4,5,6,7,8,9,10,11,12); - - // TODO: bool mats - // TODO: int mats - - return 0.0; -} - diff --git a/deps/glslang/Test/remap.hlsl.templatetypes.none.frag b/deps/glslang/Test/remap.hlsl.templatetypes.none.frag deleted file mode 100644 index f48c98a7..00000000 --- a/deps/glslang/Test/remap.hlsl.templatetypes.none.frag +++ /dev/null @@ -1,47 +0,0 @@ - -float main(float4 input) : COLOR0 -{ - vector r00 = float4(1,2,3,4); // vector means float4 - float4 r01 = vector(2,3,4,5); // vector means float4 - - vector r12 = bool1(false); - vector r13 = int1(1); - vector r14 = float1(1); - vector r15 = double1(1); - vector r16 = uint1(1); - - vector r20 = bool2(false, true); - vector r21 = int2(1,2); - vector r22 = float2(1,2); - vector r23 = double2(1,2); - vector r24 = uint2(1,2); - - vector r30 = bool3(false, true, true); - vector r31 = int3(1,2,3); - vector r32 = float3(1,2,3); - vector r33 = double3(1,2,3); - vector r34 = uint3(1,2,3); - - vector r40 = bool4(false, true, true, false); - vector r41 = int4(1,2,3,4); - vector r42 = float4(1,2,3,4); - vector r43 = double4(1,2,3,4); - vector r44 = uint4(1,2,3,4); - - matrix r50 = float4x4(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); // matrix means float4x4 - float4x4 r51 = matrix(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); // matrix means float4x4 - - // matrix r60 = bool2x3(false, true, false, true, false, true); // TODO: - matrix r61 = float2x3(1,2,3,4,5,6); - matrix r62 = float3x2(1,2,3,4,5,6); - // matrix r63 = float4x1(1,2,3,4); // TODO: - // matrix r64 = float1x4(1,2,3,4); // TODO: - matrix r65 = float4x2(1,2,3,4,5,6,7,8); - matrix r66 = float4x3(1,2,3,4,5,6,7,8,9,10,11,12); - - // TODO: bool mats - // TODO: int mats - - return 0.0; -} - diff --git a/deps/glslang/Test/remap.if.everything.frag b/deps/glslang/Test/remap.if.everything.frag deleted file mode 100644 index 3fedfc43..00000000 --- a/deps/glslang/Test/remap.if.everything.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -in float inf; -out vec4 outf4; - -void main() -{ - if (inf > 2.0) - outf4 = vec4(inf); - else - outf4 = vec4(inf + -.5); -} diff --git a/deps/glslang/Test/remap.if.none.frag b/deps/glslang/Test/remap.if.none.frag deleted file mode 100644 index 3fedfc43..00000000 --- a/deps/glslang/Test/remap.if.none.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -in float inf; -out vec4 outf4; - -void main() -{ - if (inf > 2.0) - outf4 = vec4(inf); - else - outf4 = vec4(inf + -.5); -} diff --git a/deps/glslang/Test/remap.invalid-spirv-1.spv b/deps/glslang/Test/remap.invalid-spirv-1.spv deleted file mode 100644 index e5d59d4f..00000000 Binary files a/deps/glslang/Test/remap.invalid-spirv-1.spv and /dev/null differ diff --git a/deps/glslang/Test/remap.invalid-spirv-2.spv b/deps/glslang/Test/remap.invalid-spirv-2.spv deleted file mode 100644 index df8c96d8..00000000 Binary files a/deps/glslang/Test/remap.invalid-spirv-2.spv and /dev/null differ diff --git a/deps/glslang/Test/remap.literal64.everything.spv b/deps/glslang/Test/remap.literal64.everything.spv deleted file mode 100644 index 88103c49..00000000 Binary files a/deps/glslang/Test/remap.literal64.everything.spv and /dev/null differ diff --git a/deps/glslang/Test/remap.literal64.none.spv b/deps/glslang/Test/remap.literal64.none.spv deleted file mode 100644 index 88103c49..00000000 Binary files a/deps/glslang/Test/remap.literal64.none.spv and /dev/null differ diff --git a/deps/glslang/Test/remap.similar_1a.everything.frag b/deps/glslang/Test/remap.similar_1a.everything.frag deleted file mode 100644 index 6eddbc51..00000000 --- a/deps/glslang/Test/remap.similar_1a.everything.frag +++ /dev/null @@ -1,29 +0,0 @@ -#version 450 - -in float inf; -in flat ivec4 ini4; -out vec4 outf4; - -float Test1(int bound) -{ - float r = 0; - for (int x=0; x 2) - return Test1(bound); - else - return float(bound * 2 + - ini4.y * ini4.z + - ini4.x); -} - -void main() -{ - outf4 = vec4(Test1(int(inf)) + - Test2(int(inf))); -} diff --git a/deps/glslang/Test/remap.similar_1a.none.frag b/deps/glslang/Test/remap.similar_1a.none.frag deleted file mode 100644 index 6eddbc51..00000000 --- a/deps/glslang/Test/remap.similar_1a.none.frag +++ /dev/null @@ -1,29 +0,0 @@ -#version 450 - -in float inf; -in flat ivec4 ini4; -out vec4 outf4; - -float Test1(int bound) -{ - float r = 0; - for (int x=0; x 2) - return Test1(bound); - else - return float(bound * 2 + - ini4.y * ini4.z + - ini4.x); -} - -void main() -{ - outf4 = vec4(Test1(int(inf)) + - Test2(int(inf))); -} diff --git a/deps/glslang/Test/remap.similar_1b.everything.frag b/deps/glslang/Test/remap.similar_1b.everything.frag deleted file mode 100644 index 46009451..00000000 --- a/deps/glslang/Test/remap.similar_1b.everything.frag +++ /dev/null @@ -1,30 +0,0 @@ -#version 450 - -out vec4 outf4; -in flat ivec4 ini4; -in float inf; - -float Test1(int bound) -{ - float r = 0; - for (int x=0; x 2) { - return Test1(bound * 2); - } else - return float(bound * 4 + - ini4.y * ini4.z + - ini4.x); -} - -void main() -{ - outf4 = vec4(Test1(int(inf)) + - Test2(int(inf))); -} diff --git a/deps/glslang/Test/remap.similar_1b.none.frag b/deps/glslang/Test/remap.similar_1b.none.frag deleted file mode 100644 index 46009451..00000000 --- a/deps/glslang/Test/remap.similar_1b.none.frag +++ /dev/null @@ -1,30 +0,0 @@ -#version 450 - -out vec4 outf4; -in flat ivec4 ini4; -in float inf; - -float Test1(int bound) -{ - float r = 0; - for (int x=0; x 2) { - return Test1(bound * 2); - } else - return float(bound * 4 + - ini4.y * ini4.z + - ini4.x); -} - -void main() -{ - outf4 = vec4(Test1(int(inf)) + - Test2(int(inf))); -} diff --git a/deps/glslang/Test/remap.specconst.comp b/deps/glslang/Test/remap.specconst.comp deleted file mode 100644 index 52ac07aa..00000000 --- a/deps/glslang/Test/remap.specconst.comp +++ /dev/null @@ -1,7 +0,0 @@ -#version 450 - -layout (local_size_x_id = 0, local_size_y_id = 1, local_size_z_id = 2) in; - -shared int foo[gl_WorkGroupSize.x + gl_WorkGroupSize.y * gl_WorkGroupSize.z]; - -void main () {} diff --git a/deps/glslang/Test/remap.switch.everything.frag b/deps/glslang/Test/remap.switch.everything.frag deleted file mode 100644 index 140c0792..00000000 --- a/deps/glslang/Test/remap.switch.everything.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 - -precision highp float; - -layout(location = 0) out mediump vec4 FragColor; -layout(location = 0) in vec4 in0; - -void main() -{ - switch(int(in0.w)) { - case 0: FragColor = vec4(in0.x + 0); break; - case 1: FragColor = vec4(in0.y + 1); break; - case 2: FragColor = vec4(in0.z + 2); break; - default: FragColor = vec4(-1); - } -} diff --git a/deps/glslang/Test/remap.switch.none.frag b/deps/glslang/Test/remap.switch.none.frag deleted file mode 100644 index 140c0792..00000000 --- a/deps/glslang/Test/remap.switch.none.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 - -precision highp float; - -layout(location = 0) out mediump vec4 FragColor; -layout(location = 0) in vec4 in0; - -void main() -{ - switch(int(in0.w)) { - case 0: FragColor = vec4(in0.x + 0); break; - case 1: FragColor = vec4(in0.y + 1); break; - case 2: FragColor = vec4(in0.z + 2); break; - default: FragColor = vec4(-1); - } -} diff --git a/deps/glslang/Test/remap.uniformarray.everything.frag b/deps/glslang/Test/remap.uniformarray.everything.frag deleted file mode 100644 index 4f642e6e..00000000 --- a/deps/glslang/Test/remap.uniformarray.everything.frag +++ /dev/null @@ -1,17 +0,0 @@ -#version 140 - -uniform sampler2D texSampler2D; -in vec3 inColor; -in vec4 color[6]; -in float alpha[16]; - -void main() -{ - vec4 texColor = color[1] + color[1]; - - texColor.xyz += inColor; - - texColor.a += alpha[12]; - - gl_FragColor = texColor; -} diff --git a/deps/glslang/Test/remap.uniformarray.none.frag b/deps/glslang/Test/remap.uniformarray.none.frag deleted file mode 100644 index 4f642e6e..00000000 --- a/deps/glslang/Test/remap.uniformarray.none.frag +++ /dev/null @@ -1,17 +0,0 @@ -#version 140 - -uniform sampler2D texSampler2D; -in vec3 inColor; -in vec4 color[6]; -in float alpha[16]; - -void main() -{ - vec4 texColor = color[1] + color[1]; - - texColor.xyz += inColor; - - texColor.a += alpha[12]; - - gl_FragColor = texColor; -} diff --git a/deps/glslang/Test/runtests b/deps/glslang/Test/runtests deleted file mode 100644 index 2ee0db0d..00000000 --- a/deps/glslang/Test/runtests +++ /dev/null @@ -1,353 +0,0 @@ -#!/usr/bin/env bash - -# Arguments: -# 1- TargetDirectory, where to write test results and intermediary files -# 2- Path to glslangValidator -# 3- Path to spirv-remap - -TARGETDIR=${1:-localResults} -BASEDIR=baseResults -EXE=${2:-../build/install/bin/glslangValidator} -REMAPEXE=${3:-../build/install/bin/spirv-remap} -HASERROR=0 -mkdir -p $TARGETDIR - -LIBPATH="$(cd "$(dirname "$(dirname $EXE)")" && pwd)/lib" -if [ -d "${LIBPATH}" ]; then - export LD_LIBRARY_PATH="${LIBPATH}:${LD_LIBRARY_PATH}" -fi - -function run { - $EXE $@ - result=$? - case "$result" in - [0-6]) # Valid success and error codes - return - ;; - *) - echo "$EXE returned $result" - HASERROR=1 - esac -} - -if [ -a localtestlist ] - then - while read t; do - echo Running $t... - b=`basename $t` - run -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 -# - -run badMacroArgs.frag > $TARGETDIR/badMacroArgs.frag.out -diff -b $BASEDIR/badMacroArgs.frag.out $TARGETDIR/badMacroArgs.frag.out || HASERROR=1 - -# -# reflection tests -# -echo Running reflection... -run -l -q -C reflection.vert > $TARGETDIR/reflection.vert.out -diff -b $BASEDIR/reflection.vert.out $TARGETDIR/reflection.vert.out || HASERROR=1 -run -l -q -C --reflect-strict-array-suffix --reflect-basic-array-suffix --reflect-intermediate-io --reflect-separate-buffers --reflect-all-block-variables --reflect-unwrap-io-blocks --reflect-all-io-variables --reflect-shared-std140-ubo --reflect-shared-std140-ssbo reflection.options.vert > $TARGETDIR/reflection.options.vert.out -diff -b $BASEDIR/reflection.options.vert.out $TARGETDIR/reflection.options.vert.out || HASERROR=1 -run -l -q -C reflection.frag > $TARGETDIR/reflection.frag.out -diff -b $BASEDIR/reflection.frag.out $TARGETDIR/reflection.frag.out || HASERROR=1 -run -l -q -C --reflect-strict-array-suffix --reflect-basic-array-suffix --reflect-intermediate-io --reflect-separate-buffers --reflect-all-block-variables --reflect-unwrap-io-blocks --reflect-all-io-variables --reflect-shared-std140-ubo --reflect-shared-std140-ssbo reflection.frag > $TARGETDIR/reflection.options.frag.out -diff -b $BASEDIR/reflection.options.frag.out $TARGETDIR/reflection.options.frag.out || HASERROR=1 -run -l -q -C --reflect-strict-array-suffix --reflect-basic-array-suffix --reflect-intermediate-io --reflect-separate-buffers --reflect-all-block-variables --reflect-unwrap-io-blocks --reflect-all-io-variables --reflect-shared-std140-ubo --reflect-shared-std140-ssbo reflection.options.geom > $TARGETDIR/reflection.options.geom.out -diff -b $BASEDIR/reflection.options.geom.out $TARGETDIR/reflection.options.geom.out || HASERROR=1 -run -l -q -C reflection.linked.vert reflection.linked.frag > $TARGETDIR/reflection.linked.out -diff -b $BASEDIR/reflection.linked.out $TARGETDIR/reflection.linked.out || HASERROR=1 -run -l -q -C --reflect-strict-array-suffix --reflect-basic-array-suffix --reflect-intermediate-io --reflect-separate-buffers --reflect-all-block-variables --reflect-unwrap-io-blocks --reflect-all-io-variables --reflect-shared-std140-ubo --reflect-shared-std140-ssbo reflection.linked.vert reflection.linked.frag > $TARGETDIR/reflection.linked.options.out -diff -b $BASEDIR/reflection.linked.options.out $TARGETDIR/reflection.linked.options.out || HASERROR=1 -run -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 -run -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 -run -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... -run -i -C *.vert *.geom *.frag *.tesc *.tese *.comp > $TARGETDIR/singleThread.out -run -i -C *.vert *.geom *.frag *.tesc *.tese *.comp -t > $TARGETDIR/multiThread.out -diff $TARGETDIR/singleThread.out $TARGETDIR/multiThread.out || HASERROR=1 -if [ $HASERROR -eq 0 ] -then - rm $TARGETDIR/singleThread.out - rm $TARGETDIR/multiThread.out -fi - -# -# entry point renaming tests -# -echo Running entry-point renaming tests -run -i -H -V -D -Od --entry-point 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 -run -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 -run -Od -i -S vert nosuffix > $TARGETDIR/nosuffix.out -diff -b $BASEDIR/nosuffix.out $TARGETDIR/nosuffix.out || HASERROR=1 -run -Od -i compoundsuffix.vert.glsl > $TARGETDIR/compoundsuffix.vert.glsl -diff -b $BASEDIR/compoundsuffix.vert.glsl $TARGETDIR/compoundsuffix.vert.glsl || HASERROR=1 -run -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 -run -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 -run -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 -run -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 - -run -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 - -run -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' -run -e main --hlsl-iomap --ssb 10 1 15 2 --stb 20 --stb 25 2 --stb 70 6 --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 -run -V -C spv.noLocation.vert > $TARGETDIR/spv.noLocation.vert.out -diff -b $BASEDIR/spv.noLocation.vert.out $TARGETDIR/spv.noLocation.vert.out || HASERROR=1 -run -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 -run -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 -run -g --relaxed-errors --suppress-warnings --aml --amb --hlsl-offsets --nsf --spirv-val \ - -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 -run -g -Od --target-env vulkan1.1 --relaxed-errors --suppress-warnings --aml --amb --hlsl-offsets --nsf --spirv-val \ - -V -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 -run -g -D -Od -e newMain -g --amb --aml --fua --hlsl-iomap --nsf --spirv-val --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 -run -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 -run -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 -run -l -i include.vert > $TARGETDIR/include.vert.out -diff -b $BASEDIR/include.vert.out $TARGETDIR/include.vert.out || HASERROR=1 -run -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 -run -D -Od -e MainPs -H -Od -g hlsl.pp.line3.frag > $TARGETDIR/hlsl.pp.line3.frag.out -diff -b $BASEDIR/hlsl.pp.line3.frag.out $TARGETDIR/hlsl.pp.line3.frag.out || HASERROR=1 - -# -# Testing --depfile -# - -echo "Testing --depfile" -run -D -Od -e main -H --depfile $TARGETDIR/hlsl.include.vert.d.out -Od ../Test/hlsl.include.vert > $TARGETDIR/hlsl.include.vert.out -diff -b $BASEDIR/hlsl.include.vert.d.out $TARGETDIR/hlsl.include.vert.d.out || HASERROR=1 -run -D -Od -e main -H --depfile $TARGETDIR/hlsl.dashI.vert.d.out -Od -Iinc1/path1 -Iinc1/path2 hlsl.dashI.vert > $TARGETDIR/hlsl.dashI.vert.out -diff -b $BASEDIR/hlsl.dashI.vert.d.out $TARGETDIR/hlsl.dashI.vert.d.out || HASERROR=1 - -# -# Testing -D and -U -# -echo "Testing -D and -U" -run -DUNDEFED -UIN_SHADER -DFOO=200 -i -l --U UNDEFED --define-macro MUL=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 -run -D -Od -e main -V -i -DUNDEFED -UIN_SHADER --D FOO=200 --undef-macro UNDEFED -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" -run --client vulkan100 spv.targetVulkan.vert || HASERROR=1 -run --client opengl100 spv.targetOpenGL.vert || HASERROR=1 -run --target-env vulkan1.0 spv.targetVulkan.vert || HASERROR=1 -run --target-env vulkan1.1 spv.targetVulkan.vert || HASERROR=1 -run --target-env vulkan1.2 spv.targetVulkan.vert || HASERROR=1 -run --target-env opengl spv.targetOpenGL.vert || HASERROR=1 -run -V100 spv.targetVulkan.vert || HASERROR=1 -run -G100 spv.targetOpenGL.vert || HASERROR=1 -run --target-env spirv1.2 -V spv.targetVulkan.vert || HASERROR=1 - -# -# Testing GLSL entry point rename -# -echo "Testing GLSL entry point rename" -run -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 -run -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 -run -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" -run -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 -run -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 -run -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 position W reciprocal -# -echo "Testing position W reciprocal" -run -H -e main -V -D -Od -H -i --hlsl-dx-position-w hlsl.w-recip.frag > $TARGETDIR/hlsl.w-recip.frag.out -diff -b $BASEDIR/hlsl.w-recip.frag.out $TARGETDIR/hlsl.w-recip.frag.out || HASERROR=1 -run -H -e main -V -D -Od -H -i --hlsl-dx-position-w hlsl.w-recip2.frag > $TARGETDIR/hlsl.w-recip2.frag.out -diff -b $BASEDIR/hlsl.w-recip2.frag.out $TARGETDIR/hlsl.w-recip2.frag.out || HASERROR=1 - -# -# Testing hlsl_functionality1 -# -echo "Testing hlsl_functionality1" -run -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 -run -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 - -# -# Testing HLSL-specific PP feature expansion -# -echo "Testing HLSL-specific PP feature expansion" -run -D -E hlsl.pp.expand.frag > $TARGETDIR/hlsl.pp.expand.frag.out 2> $TARGETDIR/hlsl.pp.expand.frag.err -diff -b $BASEDIR/hlsl.pp.expand.frag.out $TARGETDIR/hlsl.pp.expand.frag.out || HASERROR=1 -diff -b $BASEDIR/hlsl.pp.expand.frag.err $TARGETDIR/hlsl.pp.expand.frag.err || HASERROR=1 - -# -# Test --nan-clamp -# -echo "Testing nan-clamp" -run --nan-clamp -H --aml --amb spv.400.frag > $TARGETDIR/spv.400.frag.nanclamp.out -diff -b $BASEDIR/spv.400.frag.nanclamp.out $TARGETDIR/spv.400.frag.nanclamp.out || HASERROR=1 - -# -# Test --auto-sampled-textures -# -echo "Testing auto-sampled-textures" -run --auto-sampled-textures -H -Od -e MainPs -D -S frag hlsl.autosampledtextures.frag > $TARGETDIR/hlsl.autosampledtextures.frag.out -diff -b $BASEDIR/hlsl.autosampledtextures.frag.out $TARGETDIR/hlsl.autosampledtextures.frag.out || HASERROR=1 -run --auto-sampled-textures -H -Od -S frag glsl.autosampledtextures.frag > $TARGETDIR/glsl.autosampledtextures.frag.out -diff -b $BASEDIR/glsl.autosampledtextures.frag.out $TARGETDIR/glsl.autosampledtextures.frag.out || HASERROR=1 - -# Test --glsl-version -# -echo "Testing --glsl-version" -run --glsl-version 410 -V -S vert glsl.versionOverride.vert > $TARGETDIR/glsl.versionOverride.vert.out -diff -b $BASEDIR/glsl.versionOverride.vert.out $TARGETDIR/glsl.versionOverride.vert.out || HASERROR=1 -run --glsl-version 420 -V -S frag glsl.versionOverride.frag > $TARGETDIR/glsl.versionOverride.frag.out -diff -b $BASEDIR/glsl.versionOverride.frag.out $TARGETDIR/glsl.versionOverride.frag.out || HASERROR=1 -run --glsl-version 430 -V -S geom glsl.versionOverride.geom > $TARGETDIR/glsl.versionOverride.geom.out -diff -b $BASEDIR/glsl.versionOverride.geom.out $TARGETDIR/glsl.versionOverride.geom.out || HASERROR=1 -run --glsl-version 440 -V -S tesc glsl.versionOverride.tesc > $TARGETDIR/glsl.versionOverride.tesc.out -diff -b $BASEDIR/glsl.versionOverride.tesc.out $TARGETDIR/glsl.versionOverride.tesc.out || HASERROR=1 -run --glsl-version 450 -V -S tese glsl.versionOverride.tese > $TARGETDIR/glsl.versionOverride.tese.out -diff -b $BASEDIR/glsl.versionOverride.tese.out $TARGETDIR/glsl.versionOverride.tese.out || HASERROR=1 -run --glsl-version 460 -V -S comp glsl.versionOverride.comp > $TARGETDIR/glsl.versionOverride.comp.out -diff -b $BASEDIR/glsl.versionOverride.comp.out $TARGETDIR/glsl.versionOverride.comp.out || HASERROR=1 - -# -# Test --enhanced-msgs -# - -echo "Testing enhanced-msgs" -run --enhanced-msgs -V --target-env vulkan1.2 --amb --aml enhanced.0.frag > $TARGETDIR/enhanced.0.frag.out -diff -b $BASEDIR/enhanced.0.frag.out $TARGETDIR/enhanced.0.frag.out || HASERROR=1 -run --enhanced-msgs -V --target-env vulkan1.2 --amb --aml enhanced.1.frag > $TARGETDIR/enhanced.1.frag.out -diff -b $BASEDIR/enhanced.1.frag.out $TARGETDIR/enhanced.1.frag.out || HASERROR=1 -run --enhanced-msgs -V --target-env vulkan1.2 --amb --aml enhanced.2.frag > $TARGETDIR/enhanced.2.frag.out -diff -b $BASEDIR/enhanced.2.frag.out $TARGETDIR/enhanced.2.frag.out || HASERROR=1 -run --enhanced-msgs -V --target-env vulkan1.2 --amb --aml enhanced.3.vert enhanced.3.frag > $TARGETDIR/enhanced.3.link.out -diff -b $BASEDIR/enhanced.3.link.out $TARGETDIR/enhanced.3.link.out || HASERROR=1 -run --enhanced-msgs -V --target-env vulkan1.2 --amb --aml enhanced.4.vert enhanced.4.frag > $TARGETDIR/enhanced.4.link.out -diff -b $BASEDIR/enhanced.4.link.out $TARGETDIR/enhanced.4.link.out || HASERROR=1 -run --enhanced-msgs -V --target-env vulkan1.2 --amb --aml enhanced.5.vert enhanced.5.frag > $TARGETDIR/enhanced.5.link.out -diff -b $BASEDIR/enhanced.5.link.out $TARGETDIR/enhanced.5.link.out || HASERROR=1 -run --enhanced-msgs -V --target-env vulkan1.2 --amb --aml enhanced.6.vert enhanced.6.frag > $TARGETDIR/enhanced.6.link.out -diff -b $BASEDIR/enhanced.6.link.out $TARGETDIR/enhanced.6.link.out || HASERROR=1 -run --enhanced-msgs -V --target-env vulkan1.2 --amb --aml enhanced.7.vert enhanced.7.frag > $TARGETDIR/enhanced.7.link.out -diff -b $BASEDIR/enhanced.7.link.out $TARGETDIR/enhanced.7.link.out || HASERROR=1 -run --enhanced-msgs -V --target-env vulkan1.2 --amb --aml spv.textureError.frag > $TARGETDIR/spv.textureError.frag.out -diff -b $BASEDIR/spv.textureError.frag.out $TARGETDIR/spv.textureError.frag.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/Test/runtimeArray.vert b/deps/glslang/Test/runtimeArray.vert deleted file mode 100644 index a5da4f41..00000000 --- a/deps/glslang/Test/runtimeArray.vert +++ /dev/null @@ -1,110 +0,0 @@ -#version 450 core - -buffer bn { - int a[]; - float b[]; -} buf; - -uniform un { - int a[]; - float b[]; -} ubuf; - -buffer bna { - int a[]; - float b[]; -} bufa[4]; - -uniform una { - int a[]; - float b[]; -} ubufa[4]; - -buffer abn { - int aba[]; - float abb[]; -}; - -uniform aun { - int aua[]; - float aub[]; -}; - -layout(binding=1) uniform samplerBuffer uniformTexelBufferDyn[]; -layout(binding=2, r32f) uniform imageBuffer storageTexelBufferDyn[]; -layout(binding=3) uniform uname { float a; } uniformBuffer[]; -layout(binding=4) buffer bname { float b; } storageBuffer[]; -layout(binding=5) uniform sampler2D sampledImage[]; -layout(binding=6, r32f) uniform image2D storageImage[]; -layout(binding=8) uniform samplerBuffer uniformTexelBuffer[]; -layout(binding=9, r32f) uniform imageBuffer storageTexelBuffer[]; - -int i; - -void main() -{ - ubuf.a[3]; - ubuf.b[3]; - buf.a[3]; - buf.b[3]; - - ubufa[3].a[3]; - ubufa[3].b[3]; - bufa[3].a[3]; - bufa[3].b[3]; - - aua[3]; - aub[3]; - aba[3]; - abb[3]; - - ubuf.a[i]; // ERROR - ubuf.b[i]; // ERROR - buf.a[i]; // ERROR - buf.b[i]; - - ubuf.a.length(); // ERROR - ubuf.b.length(); // ERROR - buf.a.length(); // ERROR - buf.b.length(); - - ubufa[1].a[i]; // ERROR - ubufa[1].b[i]; // ERROR - bufa[1].a[i]; // ERROR - bufa[1].b[i]; - - ubufa[1].a.length(); // ERROR - ubufa[1].b.length(); // ERROR - bufa[1].a.length(); // ERROR - bufa[1].b.length(); - - aua[i]; // ERROR - aub[i]; // ERROR - aba[i]; // ERROR - abb[i]; - - aua.length(); // ERROR - aub.length(); // ERROR - aba.length(); // ERROR - abb.length(); - - uniformTexelBufferDyn[1]; - storageTexelBufferDyn[1]; - uniformBuffer[1]; - storageBuffer[1]; - sampledImage[1]; - storageImage[1]; - uniformTexelBuffer[1]; - storageTexelBuffer[1]; - - uniformTexelBufferDyn[i]; // ERROR, need extension - storageTexelBufferDyn[i]; // ERROR, need extension - uniformBuffer[i]; // ERROR, need extension - storageBuffer[i]; // ERROR, need extension - sampledImage[i]; // ERROR, need extension - storageImage[i]; // ERROR, need extension - uniformTexelBuffer[i]; // ERROR, need extension - storageTexelBuffer[i]; // ERROR, need extension - - float local[] = ubuf.b; // ERROR, can initialize with runtime-sized array -} diff --git a/deps/glslang/Test/sample.frag b/deps/glslang/Test/sample.frag deleted file mode 100644 index d9b9f5cc..00000000 --- a/deps/glslang/Test/sample.frag +++ /dev/null @@ -1,41 +0,0 @@ -// -//Copyright (C) 2002-2004 3Dlabs Inc. Ltd. -//All rights reserved. -// -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: -// -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// Neither the name of 3Dlabs Inc. Ltd. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -//POSSIBILITY OF SUCH DAMAGE. -// -#version 110 - -varying vec3 color; - -void main() -{ - gl_FragColor = vec4(color, 1.0); -} diff --git a/deps/glslang/Test/sample.frag.out b/deps/glslang/Test/sample.frag.out deleted file mode 100644 index 8885dbac..00000000 --- a/deps/glslang/Test/sample.frag.out +++ /dev/null @@ -1,15 +0,0 @@ -#### BEGIN COMPILER 0 INFO LOG #### -0:? Sequence -0:37 Function Definition: main( (void) -0:37 Function Parameters: -0:39 Sequence -0:39 move second child to first child (4-component vector of float) -0:39 'gl_FragColor' (FragColor 4-component vector of float) -0:39 Construct vec4 (4-component vector of float) -0:39 'color' (varying in 3-component vector of float) -0:39 1.000000 (const float) - -#### END COMPILER 0 INFO LOG #### -#### BEGIN LINKER INFO LOG #### - -#### END LINKER INFO LOG #### diff --git a/deps/glslang/Test/sample.vert b/deps/glslang/Test/sample.vert deleted file mode 100644 index 8cda91f9..00000000 --- a/deps/glslang/Test/sample.vert +++ /dev/null @@ -1,43 +0,0 @@ -// -//Copyright (C) 2002-2004 3Dlabs Inc. Ltd. -//All rights reserved. -// -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: -// -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// Neither the name of 3Dlabs Inc. Ltd. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -//POSSIBILITY OF SUCH DAMAGE. -// -#version 110 - -varying vec3 color; - -void main() -{ - color = vec3(1.0, 1.0, 1.0); - - gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; -} diff --git a/deps/glslang/Test/sample.vert.out b/deps/glslang/Test/sample.vert.out deleted file mode 100644 index aef6bb14..00000000 --- a/deps/glslang/Test/sample.vert.out +++ /dev/null @@ -1,20 +0,0 @@ -#### BEGIN COMPILER 0 INFO LOG #### -0:? Sequence -0:37 Function Definition: main( (void) -0:37 Function Parameters: -0:39 Sequence -0:39 move second child to first child (3-component vector of float) -0:39 'color' (varying out 3-component vector of float) -0:39 1.000000 (const float) -0:39 1.000000 (const float) -0:39 1.000000 (const float) -0:41 move second child to first child (4-component vector of float) -0:41 'gl_Position' (Position 4-component vector of float) -0:41 matrix-times-vector (4-component vector of float) -0:41 'gl_ModelViewProjectionMatrix' (uniform 4X4 matrix of float) -0:41 'gl_Vertex' (attribute 4-component vector of float) - -#### END COMPILER 0 INFO LOG #### -#### BEGIN LINKER INFO LOG #### - -#### END LINKER INFO LOG #### diff --git a/deps/glslang/Test/samplerlessTextureFunctions.frag b/deps/glslang/Test/samplerlessTextureFunctions.frag deleted file mode 100644 index 09268503..00000000 --- a/deps/glslang/Test/samplerlessTextureFunctions.frag +++ /dev/null @@ -1,46 +0,0 @@ -#version 450 core - -layout(binding = 1) uniform texture2D tex2D; -layout(binding = 1) uniform texture2DMS texMS; -layout(binding = 0) uniform textureBuffer buf; - -void testBad() -{ - vec4 tex2DFetch = texelFetch(tex2D, ivec2(0, 0), 0); - vec4 texMSFetch = texelFetch(texMS, ivec2(0, 0), 0); - - // Allowed by KHR_vulkan_glsl without the extension. All others should - // error. - vec4 bufFetch = texelFetch(buf, 0); - - vec4 tex2DFetchOffset = texelFetchOffset(tex2D, ivec2(0, 0), 0, ivec2(0, 0)); - - ivec2 tex2DSize = textureSize(tex2D, 0); - ivec2 texMSSize = textureSize(texMS); - int bufSize = textureSize(buf); - - int tex2DLevels = textureQueryLevels(tex2D); - - int texMSSamples = textureSamples(texMS); -} - -#extension GL_EXT_samplerless_texture_functions : enable - -void main() -{ - // These should all succeed. - - vec4 tex2DFetch = texelFetch(tex2D, ivec2(0, 0), 0); - vec4 texMSFetch = texelFetch(texMS, ivec2(0, 0), 0); - vec4 bufFetch = texelFetch(buf, 0); - - vec4 tex2DFetchOffset = texelFetchOffset(tex2D, ivec2(0, 0), 0, ivec2(0, 0)); - - ivec2 tex2DSize = textureSize(tex2D, 0); - ivec2 texMSSize = textureSize(texMS); - int bufSize = textureSize(buf); - - int tex2DLevels = textureQueryLevels(tex2D); - - int texMSSamples = textureSamples(texMS); -} diff --git a/deps/glslang/Test/simpleFunctionCall.frag b/deps/glslang/Test/simpleFunctionCall.frag deleted file mode 100644 index 59f0ccd5..00000000 --- a/deps/glslang/Test/simpleFunctionCall.frag +++ /dev/null @@ -1,15 +0,0 @@ -#version 150 - -uniform vec4 bigColor; -varying vec4 BaseColor; -uniform float d; - -vec4 foo() -{ - return BaseColor; -} - -void main() -{ - gl_FragColor = foo(); -} diff --git a/deps/glslang/Test/specExamples.frag b/deps/glslang/Test/specExamples.frag deleted file mode 100644 index 7eec45e9..00000000 --- a/deps/glslang/Test/specExamples.frag +++ /dev/null @@ -1,237 +0,0 @@ -#version 430 - -#extension GL_3DL_array_objects : enable - -int a = 0xffffffff; // 32 bits, a gets the value -1 -int b = 0xffffffffU; // ERROR: can't convert uint to int -uint c = 0xffffffff; // 32 bits, c gets the value 0xFFFFFFFF -uint d = 0xffffffffU; // 32 bits, d gets the value 0xFFFFFFFF -int e = -1; // the literal is "1", then negation is performed, - // and the resulting non-literal 32-bit signed - // bit pattern of 0xFFFFFFFF is assigned, giving e - // the value of -1. -uint f = -1u; // the literal is "1u", then negation is performed, - // and the resulting non-literal 32-bit unsigned - // bit pattern of 0xFFFFFFFF is assigned, giving f - // the value of 0xFFFFFFFF. -int g = 3000000000; // a signed decimal literal taking 32 bits, - // setting the sign bit, g gets -1294967296 -int h = 0xA0000000; // okay, 32-bit signed hexadecimal -int i = 5000000000; // ERROR: needs more than 32 bits -int j = 0xFFFFFFFFF; // ERROR: needs more that 32 bits -int k = 0x80000000; // k gets -2147483648 == 0x80000000 -int l = 2147483648; // l gets -2147483648 (the literal set the sign bit) - -float fa, fb = 1.5; // single-precision floating-point -double fc, fd = 2.0LF; // double-precision floating-point - -vec2 texcoord1, texcoord2; -vec3 position; -vec4 myRGBA; -ivec2 textureLookup; -bvec3 less; - -mat2 mat2D; -mat3 optMatrix; -mat4 view, projection; -mat4x4 view; // an alternate way of declaring a mat4 -mat3x2 m; // a matrix with 3 columns and 2 rows -dmat4 highPrecisionMVP; -dmat2x4 dm; - -struct light { - float intensity; - vec3 position; -} lightVar; - -struct S { float f; }; - -struct T { - //S; // Error: anonymous structures disallowed - //struct { ... }; // Error: embedded structures disallowed - S s; // Okay: nested structures with name are allowed -}; - -float frequencies[3]; -uniform vec4 lightPosition[4]; -light lights[]; -const int numLights = 2; -light lights[numLights]; - -in vec3 normal; -centroid in vec2 TexCoord; -invariant centroid in vec4 Color; -noperspective in float temperature; -flat in vec3 myColor; -noperspective centroid in vec2 myTexCoord; - -uniform vec4 lightPosition; -uniform vec3 color = vec3(0.7, 0.7, 0.2); // value assigned at link time - -in Material { - smooth in vec4 Color1; // legal, input inside in block - smooth vec4 Color2; // legal, 'in' inherited from 'in Material' - vec2 TexCoordA; // legal, TexCoord is an input - uniform float Atten; // illegal, mismatched storage qualifier - -}; - -in Light { - vec4 LightPos; - vec3 LightColor; -}; -in ColoredTexture { - vec4 Color; - vec2 TexCoord; -} Materiala; // instance name -vec3 Color; // different Color than Material.Color - -in vec4 gl_FragCoord; // redeclaration that changes nothing is allowed - -// All the following are allowed redeclaration that change behavior -layout(origin_upper_left) in vec4 gl_FragCoord; -layout(pixel_center_integer) in vec4 gl_FragCoord; -layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord; - -layout(early_fragment_tests) in; - -// compute shader: -layout (local_size_x = 32, local_size_y = 32) in; -layout (local_size_x = 8) in; - -layout(location = 3) out vec4 color; -layout(location = 3, index = 1) out vec4 factor; -layout(location = 2) out vec4 colors[3]; - -layout (depth_greater) out float gl_FragDepth; - -// redeclaration that changes nothing is allowed -out float gl_FragDepth; - -// assume it may be modified in any way -layout (depth_any) out float gl_FragDepth; - -// assume it may be modified such that its value will only increase -layout (depth_greater) out float gl_FragDepth; - -// assume it may be modified such that its value will only decrease -layout (depth_less) out float gl_FragDepth; - -// assume it will not be modified -layout (depth_unchanged) out float gl_FragDepth; - -in vec4 gl_Color; // predeclared by the fragment language -flat in vec4 gl_Color; // redeclared by user to be flat - - -float[5] foo(float[5]) -{ - return float[5](3.4, 4.2, 5.0, 5.2, 1.1); -} - -precision highp float; -precision highp int; -precision mediump int; -precision highp float; - -void main() -{ - { - float a[5] = float[5](3.4, 4.2, 5.0, 5.2, 1.1); - } - { - float a[5] = float[](3.4, 4.2, 5.0, 5.2, 1.1); // same thing - } - { - vec4 a[3][2]; // size-3 array of size-2 array of vec4 - vec4[2] a1[3]; // size-3 array of size-2 array of vec4 - vec4[3][2] a2; // size-3 array of size-2 array of vec4 - vec4 b[2] = vec4[2](vec4(0.0), vec4(0.1)); - vec4[3][2] a3 = vec4[3][2](b, b, b); // constructor - void foo(vec4[3][2]); // prototype with unnamed parameter - vec4 a4[3][2] = {vec4[2](vec4(0.0), vec4(1.0)), - vec4[2](vec4(0.0), vec4(1.0)), - vec4[2](vec4(0.0), vec4(1.0)) }; - } - { - float a[5]; - { - float b[] = a; // b is explicitly size 5 - } - { - float b[5] = a; // means the same thing - } - { - float b[] = float[](1,2,3,4,5); // also explicitly sizes to 5 - } - a.length(); // returns 5 - } - { - vec4 a[3][2]; - a.length(); // this is 3 - a[x].length(); // this is 2 - } - // for an array b containing a member array a: - b[++x].a.length(); // b is never dereferenced, but “++x” is evaluated - - // for an array s of a shader storage object containing a member array a: - s[x].a.length(); // s is dereferenced; x needs to be a valid index - // - //All of the following declarations result in a compile-time error. - //float a[2] = { 3.4, 4.2, 5.0 }; // illegal - //vec2 b = { 1.0, 2.0, 3.0 }; // illegal - //mat3x3 c = { vec3(0.0), vec3(1.0), vec3(2.0), vec3(3.0) }; // illegal - //mat2x2 d = { 1.0, 0.0, 0.0, 1.0 }; // illegal, can't flatten nesting - //struct { - // float a; - // int b; - //} e = { 1.2, 2, 3 }; // illegal - - struct { - float a; - int b; - } e = { 1.2, 2 }; // legal, all types match - - struct { - float a; - int b; - } e = { 1, 3 }; // legal, first initializer is converted - - //All of the following declarations result in a compile-time error. - //int a = true; // illegal - //vec4 b[2] = { vec4(0.0), 1.0 }; // illegal - //mat4x2 c = { vec3(0.0), vec3(1.0) }; // illegal - - //struct S1 { - // vec4 a; - // vec4 b; - //}; - - //struct { - // float s; - // float t; - //} d[] = { S1(vec4(0.0), vec4(1.1)) }; // illegal - - { - float a[] = float[](3.4, 4.2, 5.0, 5.2, 1.1); - float b[] = { 3.4, 4.2, 5.0, 5.2, 1.1 }; - float c[] = a; // c is explicitly size 5 - float d[5] = b; // means the same thing - } - { - const vec3 zAxis = vec3 (0.0, 0.0, 1.0); - const float ceiling = a + b; // a and b not necessarily constants - } - { - in vec4 position; - in vec3 normal; - in vec2 texCoord[4]; - } - { - lowp float color; - out mediump vec2 P; - lowp ivec2 foo(lowp mat3); - highp mat4 m; - } - -} diff --git a/deps/glslang/Test/specExamples.vert b/deps/glslang/Test/specExamples.vert deleted file mode 100644 index 64ec7104..00000000 --- a/deps/glslang/Test/specExamples.vert +++ /dev/null @@ -1,196 +0,0 @@ -#version 430 - -#extension GL_3DL_array_objects : enable - -out Vertex { - vec4 Position; // API transform/feedback will use “Vertex.Position” - vec2 Texture; -} Coords; // shader will use “Coords.Position” - -out Vertex2 { - vec4 Color; // API will use “Color” -}; - -uniform Transform { // API uses “Transform[2]” to refer to instance 2 - mat4 ModelViewMatrix; - mat4 ModelViewProjectionMatrix; - vec4 a[]; // array will get implicitly sized - float Deformation; -} transforms[4]; - -layout(location = 3) in vec4 normal; -layout(location = 6) in vec4 colors[3]; -layout(location = 9) in mat4 transforms2[2]; - -layout(location = 3) struct S { - vec3 a1; - mat2 b; - vec4 c[2]; -} s; - -layout(triangles, invocations = 6) in; - -layout(lines) in; // legal for Color2, input size is 2, matching Color2 - -layout(triangle_strip, max_vertices = 60) out; // order does not matter -layout(max_vertices = 60) out; // redeclaration okay -layout(triangle_strip) out; // redeclaration okay -//layout(points) out; // error, contradicts triangle_strip -//layout(max_vertices = 30) out; // error, contradicts 60 - -layout(stream = 1) out; - -layout(stream=1) out; // default is now stream 1 -out vec4 var1; // var1 gets default stream (1) -layout(stream=2) out Block1 { // "Block1" belongs to stream 2 - layout(stream=2) vec4 var2; // redundant block member stream decl - layout(stream=3) vec2 var3; // ILLEGAL (must match block stream) - vec3 var4; // belongs to stream 2 -}; -layout(stream=0) out; // default is now stream 0 -out vec4 var5; // var5 gets default stream (0) -out Block2 { // "Block2" gets default stream (0) - vec4 var6; -}; -layout(stream=3) out vec4 var7; // var7 belongs to stream 3 - -layout(shared, column_major) uniform; -layout(shared, column_major) buffer; - -layout(row_major, column_major) - -layout(shared, row_major) uniform; // default is now shared and row_major - -layout(std140) uniform Transform2 { // layout of this block is std140 - mat4 M1; // row_major - layout(column_major) mat4 M2; // column major - mat3 N1; // row_major -}; - -layout(column_major) uniform T3 { // shared and column_major - mat4 M13; // column_major - layout(row_major) mat4 m14; // row major - mat3 N12; // column_major -}; - -// in one compilation unit... -layout(binding=3) uniform sampler2D s17; // s bound to unit 3 - -// in another compilation unit... -uniform sampler2D s17; // okay, s still bound at 3 - -// in another compilation unit... -//layout(binding=4) uniform sampler2D s; // ERROR: contradictory bindings - -layout (binding = 2, offset = 4) uniform atomic_uint a2; - -layout (binding = 2) uniform atomic_uint bar; - -layout (binding = 2, offset = 4) uniform atomic_uint; - -layout (binding = 2) uniform atomic_uint bar; // offset is 4 -layout (offset = 8) uniform atomic_uint bar23; // error, no default binding - -layout (binding=3, offset=4) uniform atomic_uint a2; // offset = 4 -layout (binding=2) uniform atomic_uint b2; // offset = 0 -layout (binding=3) uniform atomic_uint c2; // offset = 8 -layout (binding=2) uniform atomic_uint d2; // offset = 4 - -//layout (offset=4) // error, must include binding -//layout (binding=1, offset=0) a; // okay -//layout (binding=2, offset=0) b; // okay -//layout (binding=1, offset=0) c; // error, offsets must not be shared -// // between a and c -//layout (binding=1, offset=2) d; // error, overlaps offset 0 of a - -flat in vec4 gl_FrontColor; // input to geometry shader, no “gl_in[]” -flat out vec4 gl_FrontColor; // output from geometry shader - -invariant gl_Position; // make existing gl_Position be invariant - -out vec3 ColorInv; -invariant ColorIvn; // make existing Color be invariant - -invariant centroid out vec3 Color4; -precise out vec4 position; - -out vec3 Color5; -precise Color5; // make existing Color be precise -in vec4 a, b, c, d; -precise out vec4 v; - -coherent buffer Block { - readonly vec4 member1; - vec4 member2; -}; - -buffer Block2a { - coherent readonly vec4 member1A; - coherent vec4 member2A; -}; - -shared vec4 shv; - -vec4 funcA(restrict image2D a) { } - -vec4 funcB(image2D a) { } -layout(rgba32f) uniform image2D img1; -layout(rgba32f) coherent uniform image2D img2; - -float func(float e, float f, float g, float h) -{ - return (e*f) + (g*h); // no constraint on order or - // operator consistency -} - -float func2(float e, float f, float g, float h) -{ - precise float result = (e*f) + (g*h); // ensures same precision for - // the two multiplies - return result; -} - -float func3(float i, float j, precise out float k) -{ - k = i * i + j; // precise, due to declaration -} - -void main() -{ - vec3 r = vec3(a * b); // precise, used to compute v.xyz - vec3 s = vec3(c * d); // precise, used to compute v.xyz - v.xyz = r + s; // precise - v.w = (a.w * b.w) + (c.w * d.w); // precise - v.x = func(a.x, b.x, c.x, d.x); // values computed in func() - // are NOT precise - v.x = func2(a.x, b.x, c.x, d.x); // precise! - func3(a.x * b.x, c.x * d.x, v.x); // precise! - - funcA(img1); // OK, adding "restrict" is allowed, ERROR, changing formats - funcB(img2); // illegal, stripping "coherent" is not, ERROR, changing formats - - { - struct light { - float intensity; - vec3 position; - }; - - light lightVar = light(3.0, vec3(1.0, 2.0, 3.0)); - } - { - const float c[3] = float[3](5.0, 7.2, 1.1); - const float d[3] = float[](5.0, 7.2, 1.1); - - float g; - float a[5] = float[5](g, 1, g, 2.3, g); - float b[3]; - - b = float[3](g, g + 1.0, g + 2.0); - } - { - vec4 b[2] = { vec4(1.0), vec4(1.0) }; - vec4[3][2](b, b, b); // constructor - vec4[][2](b, b, b); // constructor, valid, size deduced - vec4[3][](b, b, b); // compile-time error, invalid type constructed - } -} diff --git a/deps/glslang/Test/spv.1.3.8bitstorage-ssbo.vert b/deps/glslang/Test/spv.1.3.8bitstorage-ssbo.vert deleted file mode 100644 index 61ba7bf1..00000000 --- a/deps/glslang/Test/spv.1.3.8bitstorage-ssbo.vert +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 - -#extension GL_EXT_shader_8bit_storage: require - -layout(binding = 0) readonly buffer Vertices -{ - uint8_t vertices[]; -}; - -layout(location = 0) out vec4 color; - -void main() -{ - color = vec4(int(vertices[gl_VertexIndex])); -} diff --git a/deps/glslang/Test/spv.1.3.8bitstorage-ubo.vert b/deps/glslang/Test/spv.1.3.8bitstorage-ubo.vert deleted file mode 100644 index 5c49a243..00000000 --- a/deps/glslang/Test/spv.1.3.8bitstorage-ubo.vert +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 - -#extension GL_EXT_shader_8bit_storage: require - -layout(binding = 0) readonly uniform Vertices -{ - uint8_t vertices[512]; -}; - -layout(location = 0) out vec4 color; - -void main() -{ - color = vec4(int(vertices[gl_VertexIndex])); -} diff --git a/deps/glslang/Test/spv.1.3.coopmat.comp b/deps/glslang/Test/spv.1.3.coopmat.comp deleted file mode 100644 index 23e0b781..00000000 --- a/deps/glslang/Test/spv.1.3.coopmat.comp +++ /dev/null @@ -1,28 +0,0 @@ -#version 450 core -#extension GL_KHR_memory_scope_semantics : enable -#extension GL_NV_cooperative_matrix : enable -#extension GL_EXT_shader_explicit_arithmetic_types_float16 : enable - -#pragma use_variable_pointers - -layout (local_size_x = 64, local_size_y = 1, local_size_z = 1) in; - -layout(set = 0, binding = 0) coherent buffer Block { - float y[1024*1024]; - float x[]; -} block; - - -void main() -{ - fcoopmatNV<32, gl_ScopeSubgroup, 16, 8> m = fcoopmatNV<32, gl_ScopeSubgroup, 16, 8>(0.0); - - m = m + m; - m = m - m; - m = -m; - m = 2.0*m; - m = m*2.0; - - coopMatLoadNV(m, block.x, 16, 128, false); - coopMatStoreNV(m, block.x, 16, 128, false); -} diff --git a/deps/glslang/Test/spv.1.4.LoopControl.frag b/deps/glslang/Test/spv.1.4.LoopControl.frag deleted file mode 100644 index 00392ae5..00000000 --- a/deps/glslang/Test/spv.1.4.LoopControl.frag +++ /dev/null @@ -1,19 +0,0 @@ -#version 450 - -#extension GL_EXT_control_flow_attributes : enable - -bool cond; - -void main() -{ - [[min_iterations(3), max_iterations(7)]] for (int i = 0; i < 8; ++i) { } - [[iteration_multiple(2)]] while(true) { } - [[peel_count(5)]] do { } while(true); - [[partial_count(4)]] for (int i = 0; i < 8; ++i) { } - - // warnings on all these - [[min_iterations, max_iterations]] for (int i = 0; i < 8; ++i) { } - //[[iteration_multiple(0)]] while(true) { } - //[[peel_count]] do { } while(true); - //[[partial_count]] for (int i = 0; i < 8; ++i) { } -} diff --git a/deps/glslang/Test/spv.1.4.NonWritable.frag b/deps/glslang/Test/spv.1.4.NonWritable.frag deleted file mode 100644 index 386b446d..00000000 --- a/deps/glslang/Test/spv.1.4.NonWritable.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 - -layout(location = 0) flat in int index; - -layout(location = 0) out float color; - -// lookup table -const float table[16] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 }; - -void main() -{ - color = table[index]; -} diff --git a/deps/glslang/Test/spv.1.4.OpCopyLogical.comp b/deps/glslang/Test/spv.1.4.OpCopyLogical.comp deleted file mode 100644 index fe95da75..00000000 --- a/deps/glslang/Test/spv.1.4.OpCopyLogical.comp +++ /dev/null @@ -1,48 +0,0 @@ -#version 450 core - -struct MyStruct -{ - vec2 foo[2]; - int sb; -}; - -layout(binding = 0, std430) buffer SSBO0 -{ - MyStruct a; -} inBuf; - -layout(binding = 1, std430) buffer SSBO1 -{ - MyStruct b; -} outBuf; - -layout(binding = 2, std140) uniform UBO -{ - MyStruct c; -} uBuf; - -struct Nested { - float f; - MyStruct S[2]; -}; - -layout(binding = 2, std140) uniform UBON -{ - Nested N1; -} uBufN; - -layout(binding = 1, std430) buffer SSBO1N -{ - Nested N2; -} outBufN; - -void main() -{ - MyStruct t = inBuf.a; - outBuf.b = t; - t = uBuf.c; - outBuf.b = t; - - Nested n = uBufN.N1; - outBufN.N2 = n; -} diff --git a/deps/glslang/Test/spv.1.4.OpCopyLogical.funcall.frag b/deps/glslang/Test/spv.1.4.OpCopyLogical.funcall.frag deleted file mode 100644 index 7f9968dc..00000000 --- a/deps/glslang/Test/spv.1.4.OpCopyLogical.funcall.frag +++ /dev/null @@ -1,21 +0,0 @@ -#version 450 - -struct S { mat4 m; }; -buffer blockName { S s1; }; // need an S with decoration -S s2; // no decorations on S - -void fooConst(const in S s) { } -void foo(in S s) { } -void fooOut(inout S s) { } - -void main() -{ - fooConst(s1); - fooConst(s2); - - foo(s1); - foo(s2); - - fooOut(s1); - fooOut(s2); -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.1.4.OpCopyLogicalBool.comp b/deps/glslang/Test/spv.1.4.OpCopyLogicalBool.comp deleted file mode 100644 index 303bdb8a..00000000 --- a/deps/glslang/Test/spv.1.4.OpCopyLogicalBool.comp +++ /dev/null @@ -1,48 +0,0 @@ -#version 450 core - -struct MyStruct -{ - vec2 foo[2]; - bool sb; -}; - -layout(binding = 0, std430) buffer SSBO0 -{ - MyStruct a; -} inBuf; - -layout(binding = 1, std430) buffer SSBO1 -{ - MyStruct b; -} outBuf; - -layout(binding = 2, std140) uniform UBO -{ - MyStruct c; -} uBuf; - -struct Nested { - bool b; - MyStruct S[2]; -}; - -layout(binding = 2, std140) uniform UBON -{ - Nested N1; -} uBufN; - -layout(binding = 1, std430) buffer SSBO1N -{ - Nested N2; -} outBufN; - -void main() -{ - MyStruct t = inBuf.a; - outBuf.b = t; - t = uBuf.c; - outBuf.b = t; - - Nested n = uBufN.N1; - outBufN.N2 = n; -} diff --git a/deps/glslang/Test/spv.1.4.OpEntryPoint.frag b/deps/glslang/Test/spv.1.4.OpEntryPoint.frag deleted file mode 100644 index a12b1b37..00000000 --- a/deps/glslang/Test/spv.1.4.OpEntryPoint.frag +++ /dev/null @@ -1,27 +0,0 @@ -#version 450 - -layout(location = 0) in vec4 inv; -layout(location = 0) out vec4 outv; - -vec4 globalv; - -layout(binding = 0) uniform ubt { - vec4 v; -} uniformv; - -layout(binding = 1) buffer bbt { - float f; -} bufferv; - -layout(push_constant) uniform pushB { - int a; -} pushv; - -void main() -{ - vec4 functionv; - functionv = inv; - globalv = inv; - outv = functionv + inv + globalv + uniformv.v * pushv.a * bufferv.f; - outv += functionv + inv + globalv + uniformv.v * pushv.a * bufferv.f; -} diff --git a/deps/glslang/Test/spv.1.4.OpEntryPoint.opaqueParams.vert b/deps/glslang/Test/spv.1.4.OpEntryPoint.opaqueParams.vert deleted file mode 100644 index 71c287db..00000000 --- a/deps/glslang/Test/spv.1.4.OpEntryPoint.opaqueParams.vert +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler2D s2D; -layout(binding = 1) uniform texture2D t2D; -layout(binding = 3) uniform sampler s; - -vec2 funOpaque(in sampler2D s2D, texture2D t2D, sampler s) -{ - return textureSize(s2D, 0) * texture(sampler2D(t2D, s), vec2(0.5)).xy; -} - -void main() -{ - vec2 size = funOpaque(s2D, t2D, s); -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.1.4.OpSelect.frag b/deps/glslang/Test/spv.1.4.OpSelect.frag deleted file mode 100644 index cfbf337a..00000000 --- a/deps/glslang/Test/spv.1.4.OpSelect.frag +++ /dev/null @@ -1,37 +0,0 @@ -#version 450 - -struct S1 { - float a; - int b; -}; - -layout(location = 0) flat in S1 in1; -layout(location = 2) flat in S1 in2; -layout(location = 4) flat in int cond; - -layout(location = 0) out float outv; - -void fun1(){} -void fun2(){} - -void main() -{ - // glslang will only make OpSelect for very trivial looking expressions - - float f1 = 1.0; - float f2 = 2.0; - outv = cond < 8 ? f1 : f2; // in all versions - - ivec4 iv1 = ivec4(f1); - ivec4 iv2 = ivec4(f2); - outv *= (cond > 0 ? iv1 : iv2).z; // in all versions, but in 1.4 as scalar condition, not smeared ala mix() - - mat3 m1 = mat3(1.0); - mat3 m2 = mat3(2.0); - outv *= (cond < 20 ? m1 : m2)[2][1]; // in 1.4, but not before - - S1 fv = cond > 5 ? in1 : in2; // in 1.4, but not before - outv *= fv.a; - - cond > 0 ? fun1() : fun2(); // not allowed by any version -} diff --git a/deps/glslang/Test/spv.1.4.constructComposite.comp b/deps/glslang/Test/spv.1.4.constructComposite.comp deleted file mode 100644 index 7f1c3707..00000000 --- a/deps/glslang/Test/spv.1.4.constructComposite.comp +++ /dev/null @@ -1,25 +0,0 @@ -#version 460 core - -layout(local_size_x=64) in; - -struct sA { - int x, y; -}; - -struct sB { - sA a; -}; - -layout(binding=0,set=0) uniform ubo { - sB b; -}; - -struct sC { - sA state; -} c = { - b.a, -}; - -void main() -{ -} diff --git a/deps/glslang/Test/spv.1.4.funcall.array.frag b/deps/glslang/Test/spv.1.4.funcall.array.frag deleted file mode 100644 index 4f9727ba..00000000 --- a/deps/glslang/Test/spv.1.4.funcall.array.frag +++ /dev/null @@ -1,17 +0,0 @@ -#version 450 core - -uniform ub { - vec4 u[9]; -}; - -vec4 f(const vec4 a[9], int ix) { - return a[ix]; -} - -out vec4 color; - -void main() -{ - color = f(u, 2); -} - diff --git a/deps/glslang/Test/spv.1.4.image.frag b/deps/glslang/Test/spv.1.4.image.frag deleted file mode 100644 index a835e3c9..00000000 --- a/deps/glslang/Test/spv.1.4.image.frag +++ /dev/null @@ -1,38 +0,0 @@ -#version 450 - -layout(rgba32f, binding = 1) uniform image2D i2D; -layout(r32i, binding = 12) uniform iimage2D ii2D; -layout(r32ui, binding = 12) uniform uimage2D ui2D; - -layout(rgba32f, binding = 9) uniform image2DMS i2DMS; -layout(r32i, binding = 13) uniform iimage2DMS ii2DMS; -layout(r32ui, binding = 13) uniform uimage2DMS ui2DMS; - -flat in ivec2 ic2D; -flat in uint value; - -out vec4 fragData; - -void main() -{ - vec4 v = vec4(0.0); - ivec4 iv = ivec4(0.0); - uvec4 uv = uvec4(0.0); - - v += imageLoad(i2D, ic2D); - imageStore(i2D, ic2D, v); - v += imageLoad(ii2D, ic2D); - imageStore(ii2D, ic2D, iv); - v += imageLoad(ui2D, ic2D); - imageStore(ui2D, ic2D, uv); - - v += imageLoad(i2DMS, ic2D, 1); - imageStore(i2DMS, ic2D, 2, v); - v += imageLoad(ii2DMS, ic2D, 1); - imageStore(ii2DMS, ic2D, 2, iv); - v += imageLoad(ui2DMS, ic2D, 1); - imageStore(ui2DMS, ic2D, 2, uv); - - fragData = v; -} - diff --git a/deps/glslang/Test/spv.1.4.load.bool.array.interface.block.frag b/deps/glslang/Test/spv.1.4.load.bool.array.interface.block.frag deleted file mode 100644 index 22037415..00000000 --- a/deps/glslang/Test/spv.1.4.load.bool.array.interface.block.frag +++ /dev/null @@ -1,17 +0,0 @@ -#version 450 core - -layout(std140, set=0, binding=0) uniform ub { - bool bi[2][3]; -}; -layout(std430, set=0, binding=1) buffer ssbo { - bool bo[2][3]; -}; - -layout(location=0) out vec4 color; - -void main() -{ - bo = bi; - color = vec4(0); -} - diff --git a/deps/glslang/Test/spv.1.4.sparseTexture.frag b/deps/glslang/Test/spv.1.4.sparseTexture.frag deleted file mode 100644 index fcddbeb0..00000000 --- a/deps/glslang/Test/spv.1.4.sparseTexture.frag +++ /dev/null @@ -1,47 +0,0 @@ -#version 450 -#extension GL_ARB_sparse_texture2: enable - -uniform sampler2D s2D; -uniform isampler2D is2D; -uniform usampler2D us2D; - -layout(rgba32f) uniform image2D i2D; -layout(rgba32i) uniform iimage2DMS ii2DMS; -layout(rgba32ui) uniform uimage3D ui3D; - -in vec2 c2; -in vec3 c3; -in vec4 c4; - -in flat ivec2 ic2; -in flat ivec3 ic3; - -in flat ivec2 offsets[4]; - -out vec4 outColor; - -void main() -{ - int resident = 0; - vec4 texel = vec4(0.0); - ivec4 itexel = ivec4(0); - uvec4 utexel = uvec4(0); - - resident |= sparseTextureARB(s2D, c2, texel); - resident |= sparseTextureARB(is2D, c2, texel); - resident |= sparseTextureARB(us2D, c2, texel); - - resident |= sparseTextureLodARB( s2D, c2, 2.0, texel); - resident |= sparseTextureLodARB(is2D, c2, 2.0, texel); - resident |= sparseTextureLodARB(us2D, c2, 2.0, texel); - - resident |= sparseTexelFetchARB( s2D, ivec2(c2), 2, texel); - resident |= sparseTexelFetchARB(is2D, ivec2(c2), 2, texel); - resident |= sparseTexelFetchARB(us2D, ivec2(c2), 2, texel); - - resident |= sparseImageLoadARB(i2D, ic2, texel); - resident |= sparseImageLoadARB(ii2DMS, ic2, 3, texel); - resident |= sparseImageLoadARB(ui3D, ic3, utexel); - - outColor = sparseTexelsResidentARB(resident) ? texel : vec4(itexel) + vec4(utexel); -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.1.4.texture.frag b/deps/glslang/Test/spv.1.4.texture.frag deleted file mode 100644 index cd98dd5f..00000000 --- a/deps/glslang/Test/spv.1.4.texture.frag +++ /dev/null @@ -1,26 +0,0 @@ -#version 450 - -uniform sampler2D texSampler2D; -uniform isampler2D itexSampler2D; -uniform usampler2D utexSampler2D; - -in vec2 t; -in vec2 coords2D; -flat in ivec2 iCoords2D; - -out vec4 color; - -flat in int iLod; - -void main() -{ - vec4 color = vec4(0.0, 0.0, 0.0, 0.0); - - color += texture( texSampler2D, coords2D); - color += texture(itexSampler2D, coords2D); - color += texture(utexSampler2D, coords2D); - - color += texelFetch( texSampler2D, iCoords2D, iLod); - color += texelFetch(itexSampler2D, iCoords2D, iLod); - color += texelFetch(utexSampler2D, iCoords2D, iLod); -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.1.6.conditionalDiscard.frag b/deps/glslang/Test/spv.1.6.conditionalDiscard.frag deleted file mode 100644 index ea803374..00000000 --- a/deps/glslang/Test/spv.1.6.conditionalDiscard.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 400 - -uniform sampler2D tex; -in vec2 coord; - -void main (void) -{ - vec4 v = texture(tex, coord); - - if (v == vec4(0.1,0.2,0.3,0.4)) - discard; - - gl_FragColor = v; -} diff --git a/deps/glslang/Test/spv.1.6.helperInvocation.frag b/deps/glslang/Test/spv.1.6.helperInvocation.frag deleted file mode 100644 index 4d306db2..00000000 --- a/deps/glslang/Test/spv.1.6.helperInvocation.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 310 es -precision highp float; - -out vec4 outp; -void main() -{ - if (gl_HelperInvocation) - ++outp; -} - diff --git a/deps/glslang/Test/spv.1.6.specConstant.comp b/deps/glslang/Test/spv.1.6.specConstant.comp deleted file mode 100644 index 6b47515b..00000000 --- a/deps/glslang/Test/spv.1.6.specConstant.comp +++ /dev/null @@ -1,18 +0,0 @@ -#version 450 - -layout(local_size_x_id = 18, local_size_z_id = 19) in; -layout(local_size_x = 32, local_size_y = 32) in; - -buffer bn { - uint a; -} bi; - -void foo(uvec3 wgs) -{ - bi.a = wgs.x * gl_WorkGroupSize.y * wgs.z; -} - -void main() -{ - foo(gl_WorkGroupSize); -} diff --git a/deps/glslang/Test/spv.100ops.frag b/deps/glslang/Test/spv.100ops.frag deleted file mode 100644 index 43452a1f..00000000 --- a/deps/glslang/Test/spv.100ops.frag +++ /dev/null @@ -1,27 +0,0 @@ -#version 310 es - -lowp float foo(); - -in lowp float low, high; - -lowp float face1 = 11.0; - -out lowp vec4 Color; - -void main() -{ - int z = 3; - - if (2.0 * low + 1.0 < high) - ++z; - - Color = face1 * vec4(z) + foo(); -} - -lowp float face2 = -2.0; - -lowp float foo() -{ - // testing if face2 initializer insert logic is correct in main - return face2; -} diff --git a/deps/glslang/Test/spv.130.frag b/deps/glslang/Test/spv.130.frag deleted file mode 100644 index e7fdd388..00000000 --- a/deps/glslang/Test/spv.130.frag +++ /dev/null @@ -1,93 +0,0 @@ -#version 140 -#extension GL_ARB_texture_gather : enable - -vec3 a; -float b; - -in vec4 i; -out vec4 o; -out ivec3 io; -out uvec4 uo; - -flat in float fflat; -smooth in float fsmooth; -noperspective in float fnop; - -uniform samplerCube sampC; - -#extension GL_ARB_texture_rectangle : enable - -uniform sampler2D samp2D; -uniform sampler2DShadow samp2DS; -uniform sampler2DRect samp2DR; -uniform sampler2DArray samp2DA; - -void bar3() -{ - o += textureGatherOffset(samp2D, vec2(0.3), ivec2(1)); - o += textureGatherOffset(samp2DA, vec3(0.3), ivec2(1)); -} - -#extension GL_ARB_gpu_shader5 : enable - -void bar4() -{ - o += textureGatherOffset(samp2DR, vec2(0.3), ivec2(1)); - o += textureGatherOffset(samp2DS, vec2(0.3), 1.3, ivec2(1)); - o += textureGatherOffset(samp2D, vec2(0.3), ivec2(1), 2); -} - -#extension GL_ARB_texture_cube_map_array : enable - -uniform samplerCubeArray Sca; -uniform isamplerCubeArray Isca; -uniform usamplerCubeArray Usca; -uniform samplerCubeArrayShadow Scas; - -void bar5() -{ - io = textureSize(Sca, 3); - o += texture(Sca, i); - io += texture(Isca, i, 0.7).xyz; - uo = texture(Usca, i); - - o += textureLod(Sca, i, 1.7); - a = textureSize(Scas, 3); - float f = texture(Scas, i, i.y); - ivec4 c = textureGrad(Isca, i, vec3(0.1), vec3(0.2)); - o += vec4(a, f + c); -} - -#extension GL_ARB_shading_language_420pack : enable - -const int ai[3] = { 10, 23, 32 }; -uniform layout(binding=0) sampler2D bounds; - -void bar6() -{ - mat4x3 m43; - float a1 = m43[3].y; - //int a2 = m43.length(); // ERROR until shading_language_420pack is fully implemented - const float b = 2 * a1; - //a.x = gl_MinProgramTexelOffset + gl_MaxProgramTexelOffset; // ERROR until shading_language_420pack is fully implemented -} - - -#extension GL_ARB_texture_rectangle : enable -#extension GL_ARB_shader_texture_lod : require - -uniform sampler2D s2D; -uniform sampler2DRect s2DR; -uniform sampler2DRectShadow s2DRS; -uniform sampler1D s1D; -uniform sampler2DShadow s2DS; - -void main() -{ - o = textureGather(sampC, vec3(0.2)); - o.y = gl_ClipDistance[3]; - bar3(); - bar4(); - bar5(); - bar6(); -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.140.frag b/deps/glslang/Test/spv.140.frag deleted file mode 100644 index 92923eb5..00000000 --- a/deps/glslang/Test/spv.140.frag +++ /dev/null @@ -1,47 +0,0 @@ -#version 140 -#extension GL_ARB_enhanced_layouts : require - -in vec4 k; -out vec4 o; - -in float gl_ClipDistance[5]; - -layout(row_major) uniform; - -uniform sampler2D samp2Da[3]; - -layout(std140) uniform bn { - layout(row_major) mat4 matra[4]; - layout(column_major) mat4 matca[4]; - layout(row_major) mat4 matr; - layout(column_major) mat4 matc; - layout(align=512, offset=1024) mat4 matrdef; -}; - -uniform sampler2DRect sampR; -uniform isamplerBuffer sampB; - -float foo(); - -void main() -{ - o.y = gl_ClipDistance[2]; - o.z = gl_ClipDistance[int(k)]; - o.w = float(textureSize(sampR) + textureSize(sampB)) / 100.0; - o.z = foo(); -} - -// Test extra-function initializers - -float i1 = gl_FrontFacing ? -2.0 : 2.0; -float i2 = 102; - -float foo() -{ - return i1 + i2; -} - -// test arrayed block -layout(std140) uniform bi { - vec3 v[2]; -} bname[4]; diff --git a/deps/glslang/Test/spv.150.geom b/deps/glslang/Test/spv.150.geom deleted file mode 100644 index 0419265d..00000000 --- a/deps/glslang/Test/spv.150.geom +++ /dev/null @@ -1,39 +0,0 @@ -#version 150 core - -layout(triangles_adjacency) in; -layout(max_vertices = 30) out; -layout(stream = 3, triangle_strip) out; - -in fromVertex { - in vec3 color; -} fromV[]; - -out toFragment { - out vec3 color; -} toF; - -out fromVertex { - vec3 color; -}; - -void main() -{ - color = fromV[0].color; - //?? gl_ClipDistance[3] = gl_in[1].gl_ClipDistance[2]; - gl_Position = gl_in[0].gl_Position; - gl_PointSize = gl_in[3].gl_PointSize; - gl_PrimitiveID = gl_PrimitiveIDIn; - gl_Layer = 2; - - EmitVertex(); - - color = 2 * fromV[0].color; - gl_Position = 2.0 * gl_in[0].gl_Position; - gl_PointSize = 2.0 * gl_in[3].gl_PointSize; - gl_PrimitiveID = gl_PrimitiveIDIn + 1; - gl_Layer = 3; - - EmitVertex(); - - EndPrimitive(); -} diff --git a/deps/glslang/Test/spv.150.vert b/deps/glslang/Test/spv.150.vert deleted file mode 100644 index 382e3c9b..00000000 --- a/deps/glslang/Test/spv.150.vert +++ /dev/null @@ -1,38 +0,0 @@ -#version 150 core - -in vec4 iv4; - -in float ps; -in int ui; -uniform sampler2D s2D; - -invariant gl_Position; - -struct s1 { - int a; - int a2; - vec4 b[3]; -}; - -struct s2 { - int c; - s1 d[4]; -}; - -out s2 s2out; - -void main() -{ - gl_Position = iv4; - gl_PointSize = ps; - gl_ClipDistance[2] = iv4.x; - int i; - s2out.d[i].b[2].w = ps; - - // test non-implicit lod - texture(s2D, vec2(0.5)); - textureProj(s2D, vec3(0.5)); - textureLod(s2D, vec2(0.5), 3.2); -} - -out float gl_ClipDistance[4]; diff --git a/deps/glslang/Test/spv.16bitstorage-int.frag b/deps/glslang/Test/spv.16bitstorage-int.frag deleted file mode 100644 index 57be67ee..00000000 --- a/deps/glslang/Test/spv.16bitstorage-int.frag +++ /dev/null @@ -1,90 +0,0 @@ -#version 450 core - -#extension GL_EXT_shader_16bit_storage : enable - -struct S -{ - int16_t x; - i16vec2 y; - i16vec3 z; -}; - -layout(column_major, std140) uniform B1 -{ - int16_t a; - i16vec2 b; - i16vec3 c; - int16_t d[2]; - S g; - S h[2]; - int j; -} b1; - -layout(row_major, std430) buffer B2 -{ - int16_t o; - i16vec2 p; - i16vec3 q; - int16_t r[2]; - S u; - S v[2]; - i16vec2 x[100]; - int16_t w[]; -} b2; - -layout(row_major, std140) uniform B5 -{ - int16_t o; - i16vec2 p; - i16vec3 q; - int16_t r[2]; - S u; - S v[2]; - i16vec2 x[100]; - int16_t w[100]; -} b5; - -struct S2 { - mat4x4 x; - int16_t y; - int z; -}; - -struct S3 { - S2 x; -}; - -layout(row_major, std430) buffer B3 -{ - S2 x; -} b3; - -layout(column_major, std430) buffer B4 -{ - S2 x; - S3 y; -} b4; - -void main() -{ - b2.o = b1.a; - b2.p = i16vec2(ivec3(b2.q).xy); - b2.p = i16vec2(ivec3(b5.q).xy); - b2.r[0] = b2.r[0]; - b2.r[1] = b5.r[1]; - b2.p = b2.p; - int x0 = int(b1.a); - ivec4 x1 = ivec4(b1.a, b2.p, 1); - b4.x.x = b3.x.x; - b2.o = int16_t(ivec2(b2.p).x); - b2.p = b2.v[1].y; - ivec3 v3 = ivec3(b2.w[b1.j], b2.w[b1.j+1], b2.w[b1.j+2]); - ivec3 u3 = ivec3(b5.w[b1.j], b5.w[b1.j+1], b5.w[b1.j+2]); - b2.x[0] = b2.x[0]; - b2.x[1] = b5.x[1]; - b2.p.x = b1.a; - b2.o = b2.p.x; - b2.p = i16vec2(ivec2(1, 2)); - b2.o = int16_t(3); -} - diff --git a/deps/glslang/Test/spv.16bitstorage-uint.frag b/deps/glslang/Test/spv.16bitstorage-uint.frag deleted file mode 100644 index aeecd041..00000000 --- a/deps/glslang/Test/spv.16bitstorage-uint.frag +++ /dev/null @@ -1,90 +0,0 @@ -#version 450 core - -#extension GL_EXT_shader_16bit_storage : enable - -struct S -{ - uint16_t x; - u16vec2 y; - u16vec3 z; -}; - -layout(column_major, std140) uniform B1 -{ - uint16_t a; - u16vec2 b; - u16vec3 c; - uint16_t d[2]; - S g; - S h[2]; - uint j; -} b1; - -layout(row_major, std430) buffer B2 -{ - uint16_t o; - u16vec2 p; - u16vec3 q; - uint16_t r[2]; - S u; - S v[2]; - u16vec2 x[100]; - uint16_t w[]; -} b2; - -layout(row_major, std140) uniform B5 -{ - uint16_t o; - u16vec2 p; - u16vec3 q; - uint16_t r[2]; - S u; - S v[2]; - u16vec2 x[100]; - uint16_t w[100]; -} b5; - -struct S2 { - mat4x4 x; - uint16_t y; - uint z; -}; - -struct S3 { - S2 x; -}; - -layout(row_major, std430) buffer B3 -{ - S2 x; -} b3; - -layout(column_major, std430) buffer B4 -{ - S2 x; - S3 y; -} b4; - -void main() -{ - b2.o = b1.a; - b2.p = u16vec2(uvec3(b2.q).xy); - b2.p = u16vec2(uvec3(b5.q).xy); - b2.r[0] = b2.r[0]; - b2.r[1] = b5.r[1]; - b2.p = b2.p; - uint x0 = uint(b1.a); - uvec4 x1 = uvec4(b1.a, b2.p, 1); - b4.x.x = b3.x.x; - b2.o = uint16_t(uvec2(b2.p).x); - b2.p = b2.v[1].y; - uvec3 v3 = uvec3(b2.w[b1.j], b2.w[b1.j+1], b2.w[b1.j+2]); - uvec3 u3 = uvec3(b5.w[b1.j], b5.w[b1.j+1], b5.w[b1.j+2]); - b2.x[0] = b2.x[0]; - b2.x[1] = b5.x[1]; - b2.p.x = b1.a; - b2.o = b2.p.x; - b2.p = u16vec2(uvec2(1, 2)); - b2.o = uint16_t(3u); -} - diff --git a/deps/glslang/Test/spv.16bitstorage.frag b/deps/glslang/Test/spv.16bitstorage.frag deleted file mode 100644 index b821be1e..00000000 --- a/deps/glslang/Test/spv.16bitstorage.frag +++ /dev/null @@ -1,90 +0,0 @@ -#version 450 core - -#extension GL_EXT_shader_16bit_storage : enable - -struct S -{ - float16_t x; - f16vec2 y; - f16vec3 z; -}; - -layout(column_major, std140) uniform B1 -{ - float16_t a; - f16vec2 b; - f16vec3 c; - float16_t d[2]; - S g; - S h[2]; - int j; -} b1; - -layout(row_major, std430) buffer B2 -{ - float16_t o; - f16vec2 p; - f16vec3 q; - float16_t r[2]; - S u; - S v[2]; - f16vec2 x[100]; - float16_t w[]; -} b2; - -layout(row_major, std140) uniform B5 -{ - float16_t o; - f16vec2 p; - f16vec3 q; - float16_t r[2]; - S u; - S v[2]; - f16vec2 x[100]; - float16_t w[100]; -} b5; - -struct S2 { - mat4x4 x; - float16_t y; - float z; -}; - -struct S3 { - S2 x; -}; - -layout(row_major, std430) buffer B3 -{ - S2 x; -} b3; - -layout(column_major, std430) buffer B4 -{ - S2 x; - S3 y; -} b4; - -void main() -{ - b2.o = b1.a; - b2.p = f16vec2(vec3(b2.q).xy); - b2.p = f16vec2(vec3(b5.q).xy); - b2.r[0] = b2.r[0]; - b2.r[1] = b5.r[1]; - b2.p = b2.p; - float x0 = float(b1.a); - vec4 x1 = vec4(b1.a, b2.p, 1.0); - b4.x.x = b3.x.x; - b2.o = float16_t(vec2(b2.p).x); - b2.p = b2.v[1].y; - vec3 v3 = vec3(b2.w[b1.j], b2.w[b1.j+1], b2.w[b1.j+2]); - vec3 u3 = vec3(b5.w[b1.j], b5.w[b1.j+1], b5.w[b1.j+2]); - b2.x[0] = b2.x[0]; - b2.x[1] = b5.x[1]; - b2.p.x = b1.a; - b2.o = b2.p.x; - b2.p = f16vec2(vec2(1.0, 2.0)); - b2.o = float16_t(3.0); -} - diff --git a/deps/glslang/Test/spv.16bitstorage_Error-int.frag b/deps/glslang/Test/spv.16bitstorage_Error-int.frag deleted file mode 100644 index 1897b026..00000000 --- a/deps/glslang/Test/spv.16bitstorage_Error-int.frag +++ /dev/null @@ -1,101 +0,0 @@ -#version 450 core - -#extension GL_EXT_shader_16bit_storage : enable - -struct S -{ - int16_t x; - i16vec2 y; - i16vec3 z; -}; - -layout(column_major, std140) uniform B1 -{ - int16_t a; - i16vec2 b; - i16vec3 c; - int16_t d[2]; - S g; - S h[2]; - int j; -} b1; - -layout(row_major, std430) buffer B2 -{ - int16_t o; - i16vec2 p; - i16vec3 q; - int16_t r[2]; - S u; - S v[2]; - int16_t w[]; -} b2; - -struct S2 { - mat4x4 x; - int16_t y; - int z; -}; - -struct S3 { - S2 x; -}; - -layout(row_major, std430) buffer B3 -{ - S2 x; -} b3; - -layout(column_major, std430) buffer B4 -{ - S2 x; -} b4; - -void func3(S2 x) { -} - -S2 func4() { - return b4.x; -} - -int func(int16_t a) { - return 0; -} - -struct S4 { - int x; - int16_t y; -}; - -int func2(int a) { return 0; } - -void main() -{ - b2.o = b2.q[1]; - b2.p = b2.q.xy; - b2.o = max(b1.a, b1.a); - bvec2 bv = lessThan(b2.p, b2.p); - b2.o = b1.a + b1.a; - b2.o = -b1.a; - b2.o = b1.a + 1; - b2.p = b2.p.yx; - b4.x = b3.x; - int16_t f0; - S2 f1; - S3 f2; - if (b1.a == b1.a) {} - b2.r = b2.r; - b2.p = i16vec2(3, 4); - i16vec2[2](i16vec2(ivec2(1,2)), i16vec2(ivec2(3,4))); - // NOT ERRORING YET - b3.x; - S4(0, int16_t(0)); - func2(b1.a); -} - - -layout(column_major, std140) uniform B6 -{ - i16mat2x3 e; -} b6; - diff --git a/deps/glslang/Test/spv.16bitstorage_Error-uint.frag b/deps/glslang/Test/spv.16bitstorage_Error-uint.frag deleted file mode 100644 index 5f32a3b7..00000000 --- a/deps/glslang/Test/spv.16bitstorage_Error-uint.frag +++ /dev/null @@ -1,101 +0,0 @@ -#version 450 core - -#extension GL_EXT_shader_16bit_storage : enable - -struct S -{ - uint16_t x; - u16vec2 y; - u16vec3 z; -}; - -layout(column_major, std140) uniform B1 -{ - uint16_t a; - u16vec2 b; - u16vec3 c; - uint16_t d[2]; - S g; - S h[2]; - uint j; -} b1; - -layout(row_major, std430) buffer B2 -{ - uint16_t o; - u16vec2 p; - u16vec3 q; - uint16_t r[2]; - S u; - S v[2]; - uint16_t w[]; -} b2; - -struct S2 { - mat4x4 x; - uint16_t y; - uint z; -}; - -struct S3 { - S2 x; -}; - -layout(row_major, std430) buffer B3 -{ - S2 x; -} b3; - -layout(column_major, std430) buffer B4 -{ - S2 x; -} b4; - -void func3(S2 x) { -} - -S2 func4() { - return b4.x; -} - -uint func(uint16_t a) { - return 0; -} - -struct S4 { - uint x; - uint16_t y; -}; - -uint func2(uint a) { return 0; } - -void main() -{ - b2.o = b2.q[1]; - b2.p = b2.q.xy; - b2.o = max(b1.a, b1.a); - bvec2 bv = lessThan(b2.p, b2.p); - b2.o = b1.a + b1.a; - b2.o = -b1.a; - b2.o = b1.a + 1; - b2.p = b2.p.yx; - b4.x = b3.x; - uint16_t f0; - S2 f1; - S3 f2; - if (b1.a == b1.a) {} - b2.r = b2.r; - b2.p = u16vec2(3, 4); - u16vec2[2](u16vec2(uvec2(1,2)), u16vec2(uvec2(3,4))); - // NOT ERRORING YET - b3.x; - S4(0u, uint16_t(0u)); - func2(b1.a); -} - - -layout(column_major, std140) uniform B6 -{ - u16mat2x3 e; -} b6; - diff --git a/deps/glslang/Test/spv.16bitstorage_Error.frag b/deps/glslang/Test/spv.16bitstorage_Error.frag deleted file mode 100644 index 7a61a97f..00000000 --- a/deps/glslang/Test/spv.16bitstorage_Error.frag +++ /dev/null @@ -1,102 +0,0 @@ -#version 450 core - -#extension GL_EXT_shader_16bit_storage : enable - -struct S -{ - float16_t x; - f16vec2 y; - f16vec3 z; -}; - -layout(column_major, std140) uniform B1 -{ - float16_t a; - f16vec2 b; - f16vec3 c; - float16_t d[2]; - S g; - S h[2]; - int j; -} b1; - -layout(row_major, std430) buffer B2 -{ - float16_t o; - f16vec2 p; - f16vec3 q; - float16_t r[2]; - S u; - S v[2]; - float16_t w[]; -} b2; - -struct S2 { - mat4x4 x; - float16_t y; - float z; -}; - -struct S3 { - S2 x; -}; - -layout(row_major, std430) buffer B3 -{ - S2 x; -} b3; - -layout(column_major, std430) buffer B4 -{ - S2 x; -} b4; - -void func3(S2 x) { -} - -S2 func4() { - return b4.x; -} - -float func(float16_t a) { - return 0.0; -} - -struct S4 { - float x; - float16_t y; -}; - -float func2(float a) { return 0.0; } - -void main() -{ - b2.o = b2.q[1]; - b2.p = b2.q.xy; - b2.o = max(b1.a, b1.a); - bvec2 bv = lessThan(b2.p, b2.p); - b2.o = b1.a + b1.a; - b2.o = -b1.a; - b2.o = b1.a + 1.0; - b2.p = b2.p.yx; - b4.x = b3.x; - float16_t f0; - S2 f1; - S3 f2; - if (b1.a == b1.a) {} - b2.r = b2.r; - b2.o = 1.0HF; - b2.p = f16vec2(3.0, 4.0); - f16vec2[2](f16vec2(vec2(1.0,2.0)), f16vec2(vec2(3.0,4.0))); - // NOT ERRORING YET - b3.x; - S4(0.0, float16_t(0.0)); - func2(b1.a); -} - - -layout(column_major, std140) uniform B6 -{ - f16mat2x3 e; -} b6; - diff --git a/deps/glslang/Test/spv.16bitxfb.vert b/deps/glslang/Test/spv.16bitxfb.vert deleted file mode 100644 index f9719436..00000000 --- a/deps/glslang/Test/spv.16bitxfb.vert +++ /dev/null @@ -1,33 +0,0 @@ -#version 450 core - -#extension GL_AMD_gpu_shader_half_float: enable -#extension GL_AMD_gpu_shader_int16: enable - -layout(location = 0) in f16vec4 if16v4; -layout(location = 1) in i16vec4 ii16v4; -layout(location = 2) in u16vec4 iu16v4; - -layout(location = 0, xfb_buffer = 0, xfb_stride = 6, xfb_offset = 0) out f16vec3 of16v3; -layout(location = 1, xfb_buffer = 1, xfb_stride = 6, xfb_offset = 0) out F16Out -{ - float16_t of16; - f16vec2 of16v2; -}; - -layout(location = 5, xfb_buffer = 2, xfb_stride = 6, xfb_offset = 0) out i16vec3 oi16v3; -layout(location = 6, xfb_buffer = 3, xfb_stride = 6, xfb_offset = 0) out I16Out -{ - uint16_t ou16; - u16vec2 ou16v2; -}; - -void main() -{ - of16v3 = if16v4.xyz; - of16 = if16v4.x; - of16v2 = if16v4.xy; - - oi16v3 = ii16v4.xyz; - ou16 = iu16v4.x; - ou16v2 = iu16v4.xy; -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.300BuiltIns.vert b/deps/glslang/Test/spv.300BuiltIns.vert deleted file mode 100644 index 46c3f0fe..00000000 --- a/deps/glslang/Test/spv.300BuiltIns.vert +++ /dev/null @@ -1,14 +0,0 @@ -#version 310 es - -in mediump float ps; - -invariant gl_Position; - -void main() -{ - gl_Position = vec4(ps); - gl_Position *= float(4 - gl_VertexIndex); - - gl_PointSize = ps; - gl_PointSize *= float(5 - gl_InstanceIndex); -} diff --git a/deps/glslang/Test/spv.300layout.frag b/deps/glslang/Test/spv.300layout.frag deleted file mode 100644 index 5b4c56c2..00000000 --- a/deps/glslang/Test/spv.300layout.frag +++ /dev/null @@ -1,22 +0,0 @@ -#version 310 es - -precision mediump float; - -in vec4 pos; -in vec3 color; - -layout(location = 7) out vec3 c; -layout(LocatioN = 3) out vec4 p[2]; - -struct S { - vec3 c; - float f; -}; - -in S s; - -void main() -{ - c = color + s.c; - p[1] = pos * s.f; -} diff --git a/deps/glslang/Test/spv.300layout.vert b/deps/glslang/Test/spv.300layout.vert deleted file mode 100644 index a32a95de..00000000 --- a/deps/glslang/Test/spv.300layout.vert +++ /dev/null @@ -1,49 +0,0 @@ -#version 310 es - -layout(location = 7) in vec3 c; -layout(LocatioN = 3) in vec4 p; -layout(location = 9) in ivec2 aiv2; -out vec4 pos; -out vec3 color; -flat out int iout; - -layout(row_major) uniform; // default is now row_major - -layout(std140) uniform Transform { // layout of this block is std140 - mat4 M1; // row_major - layout(column_major) mat4 M2; // column major - mat3 N1; // row_major - int iuin; -} tblock; - -uniform T2 { // layout of this block is shared - bool b; - mat4 t2m; -}; - -layout(column_major) uniform T3 { // shared and column_major - mat4 M3; // column_major - layout(row_major) mat4 M4; // row major - mat2x3 N2; // column_major - layout(align=16, offset=2048) uvec3 uv3a[4]; -}; - -in uint uiuin; - -struct S { - vec3 c; - float f; -}; - -out S s; - -void main() -{ - pos = p * (tblock.M1 + tblock.M2 + M4 + M3 + t2m); - color = c * tblock.N1; - iout = tblock.iuin + int(uiuin) + aiv2.y; - s.c = c; - s.f = p.x; - if (N2[1] != vec3(1.0) || uv3a[2] != uvec3(5)) - ++s.c; -} diff --git a/deps/glslang/Test/spv.300layoutp.vert b/deps/glslang/Test/spv.300layoutp.vert deleted file mode 100644 index d14aa1cd..00000000 --- a/deps/glslang/Test/spv.300layoutp.vert +++ /dev/null @@ -1,49 +0,0 @@ -#version 310 es - -layout(location = 7) in vec3 c; -layout(LocatioN = 3) in vec4 p; -layout(location = 9) in ivec2 aiv2; -out vec4 pos; -out vec3 color; -flat out int iout; - -layout(row_major) uniform; // default is now row_major - -layout(std140) uniform Transform { // layout of this block is std140 - mat4 M1; // row_major - layout(column_major) mat4 M2; // column major - mat3 N1; // row_major - int iuin; -} tblock; - -uniform T2 { // layout of this block is shared - bool b; - mat4 t2m; -}; - -layout(column_major) uniform T3 { // shared and column_major - mat4 M3; // column_major - layout(row_major) mat4 M4; // row major - mat2x3 N2; // column_major - uvec3 uv3a[4]; -}; - -uint uiuin; - -struct S { - vec3 c; - float f; -}; - -out S s; - -void main() -{ - pos = p * (tblock.M1 * tblock.M2 * M4 * M3 * t2m); - color = c * tblock.N1; - iout = tblock.iuin + int(uiuin) + aiv2.y; - s.c = c; - s.f = p.x; - if (N2[1] != vec3(1.0) || uv3a[2] != uvec3(5)) - ++s.c; -} diff --git a/deps/glslang/Test/spv.310.bitcast.frag b/deps/glslang/Test/spv.310.bitcast.frag deleted file mode 100644 index dbde52f8..00000000 --- a/deps/glslang/Test/spv.310.bitcast.frag +++ /dev/null @@ -1,41 +0,0 @@ -#version 310 es - -flat in mediump int i1; -flat in lowp ivec2 i2; -flat in mediump ivec3 i3; -flat in highp ivec4 i4; - -flat in mediump uint u1; -flat in lowp uvec2 u2; -flat in mediump uvec3 u3; -flat in highp uvec4 u4; - -mediump in float f1; -lowp in vec2 f2; -mediump in vec3 f3; -highp in vec4 f4; - -void main() -{ - highp ivec4 idata = ivec4(0); - idata.x += floatBitsToInt(f1); - idata.xy += floatBitsToInt(f2); - idata.xyz += floatBitsToInt(f3); - idata += floatBitsToInt(f4); - - highp uvec4 udata = uvec4(0); - udata.x += floatBitsToUint(f1); - udata.xy += floatBitsToUint(f2); - udata.xyz += floatBitsToUint(f3); - udata += floatBitsToUint(f4); - - highp vec4 fdata = vec4(0.0); - fdata.x += intBitsToFloat(i1); - fdata.xy += intBitsToFloat(i2); - fdata.xyz += intBitsToFloat(i3); - fdata += intBitsToFloat(i4); - fdata.x += uintBitsToFloat(u1); - fdata.xy += uintBitsToFloat(u2); - fdata.xyz += uintBitsToFloat(u3); - fdata += uintBitsToFloat(u4); -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.310.comp b/deps/glslang/Test/spv.310.comp deleted file mode 100644 index 53117dd9..00000000 --- a/deps/glslang/Test/spv.310.comp +++ /dev/null @@ -1,42 +0,0 @@ -#version 310 es - -precision highp float; - -layout (local_size_x = 16, local_size_y = 32, local_size_z = 4) in; - -shared float s; -shared int i; - -buffer outb { - float f; - float g; - float h; - vec3 uns[]; -} outbname; - -buffer outbna { - int k; - vec4 na; -} outbnamena; - -buffer outs { - int s; - vec4 va[]; -} outnames; - -#extension GL_EXT_device_group : enable - -void main() -{ - barrier(); - outbname.f = s; - outbnamena.na = vec4(s); - s = outbname.uns[18].x; - outbname.uns[17] = vec3(3.0); - outbname.uns[i] = vec3(s); - outnames.va[gl_LocalInvocationID.x] = vec4(s); - outnames.s = outbname.uns.length(); - gl_DeviceIndex; - memoryBarrierShared(); - groupMemoryBarrier(); -} diff --git a/deps/glslang/Test/spv.320.meshShaderUserDefined.mesh b/deps/glslang/Test/spv.320.meshShaderUserDefined.mesh deleted file mode 100644 index 60a14529..00000000 --- a/deps/glslang/Test/spv.320.meshShaderUserDefined.mesh +++ /dev/null @@ -1,59 +0,0 @@ -#version 320 es - -#define MAX_VER 81 -#define MAX_PRIM 32 - -#define BARRIER() \ - memoryBarrierShared(); \ - barrier(); - -#extension GL_NV_mesh_shader : enable - -layout(local_size_x = 32) in; - -layout(max_vertices=MAX_VER) out; -layout(max_primitives=MAX_PRIM) out; -layout(triangles) out; - -// test use of user defined interface out blocks: - -// per-primitive block -perprimitiveNV layout(location=0) out myblock { - float f; - float fArr[4]; - vec3 pos; - vec4 posArr[4]; - mat4 m; - mat3 mArr[2]; -} blk[]; - -// per-vertex block -layout(location=20) out myblock2 { - float f; - vec4 pos; - mat4 m; -} blk2[]; - -void main() -{ - int iid = int(gl_LocalInvocationID.x); - int gid = int(gl_WorkGroupID.x); - - blk[iid].f = 11.0; - blk[iid+1].fArr[gid] = blk[iid].f; - blk[iid/2].pos.yzx = vec3(14.0, 15.0, 13.0); - blk[iid*2].posArr[1].yzw = blk[iid/2].pos; - blk[iid/4].m[2].wzyx = vec4(13.0, 14.0, 15.0, 16.0); - blk[iid].mArr[0][1][1] = blk[iid/4].m[2].w; - blk[iid*4].mArr[1][gid] = vec3(17.0, 18.0, 19.0); - - BARRIER(); - - blk2[iid].f = blk2[iid-1].f + 20.0; - blk2[iid].pos = vec4(21.0, 22.0, 23.0, 24.0); - blk2[iid+1].m[gid] = blk2[iid].pos; - blk2[iid+1].m[gid][2] = 29.0; - blk2[iid+2].m[3] = blk2[iid+1].m[gid]; - - BARRIER(); -} diff --git a/deps/glslang/Test/spv.330.geom b/deps/glslang/Test/spv.330.geom deleted file mode 100644 index ebd4ac66..00000000 --- a/deps/glslang/Test/spv.330.geom +++ /dev/null @@ -1,26 +0,0 @@ -#version 330 core -#extension GL_ARB_separate_shader_objects : enable - -in gl_PerVertex -{ - float gl_ClipDistance[1]; - vec4 gl_Position; -} gl_in[]; - -out gl_PerVertex -{ - vec4 gl_Position; - float gl_ClipDistance[1]; -}; - -layout( triangles ) in; -layout( triangle_strip, max_vertices = 3 ) out; - -void main() -{ - vec4 v; - gl_Position = gl_in[1].gl_Position; - gl_ClipDistance[0] = gl_in[1].gl_ClipDistance[0]; - EmitVertex(); - EndPrimitive(); -} diff --git a/deps/glslang/Test/spv.400.frag b/deps/glslang/Test/spv.400.frag deleted file mode 100644 index d64c4700..00000000 --- a/deps/glslang/Test/spv.400.frag +++ /dev/null @@ -1,265 +0,0 @@ -#version 400 core - -in vec2 c2D; -flat in int i; -flat in uint u; -out uint uo; -out vec4 outp; -out ivec4 ioutp; -out uvec4 uoutp; -uniform sampler2D arrayedSampler[5]; -uniform usampler2DRect samp2dr; -uniform isampler2DArray isamp2DA; -uniform sampler2DRectShadow u2drs; - -#extension GL_ARB_separate_shader_objects : enable - -layout(location = 6) in vec4 vl2; - -void foo23() -{ - const ivec2[3] offsets = ivec2[3](ivec2(1,2), ivec2(3,4), ivec2(15,16)); - - outp.x += textureProjGradOffset(u2drs, outp, vec2(0.0), vec2(0.0), offsets[1]); -} - -void doubles() -{ - double doublev; - dvec2 dvec2v; - dvec3 dvec3v; - dvec4 dvec4v; - - bool boolv; - bvec2 bvec2v; - bvec3 bvec3v; - bvec4 bvec4v; - - doublev = sqrt(2.9); - dvec2v = sqrt(dvec2(2.7)); - dvec3v = sqrt(dvec3(2.0)); - dvec4v = sqrt(dvec4(doublev)); - - doublev += inversesqrt(doublev); - dvec2v += inversesqrt(dvec2v); - dvec3v += inversesqrt(dvec3v); - dvec4v += inversesqrt(dvec4v); - - doublev += abs(doublev); - dvec2v += abs(dvec2v); - dvec3v += abs(dvec3v); - dvec4v += abs(dvec4v); - - doublev += sign(doublev); - dvec2v += sign(dvec2v); - dvec3v += sign(dvec3v); - dvec4v += sign(dvec4v); - - doublev += floor(doublev); - dvec2v += floor(dvec2v); - dvec3v += floor(dvec3v); - dvec4v += floor(dvec4v); - - doublev += trunc(doublev); - dvec2v += trunc(dvec2v); - dvec3v += trunc(dvec3v); - dvec4v += trunc(dvec4v); - - doublev += round(doublev); - dvec2v += round(dvec2v); - dvec3v += round(dvec3v); - dvec4v += round(dvec4v); - - doublev += roundEven(doublev); - dvec2v += roundEven(dvec2v); - dvec3v += roundEven(dvec3v); - dvec4v += roundEven(dvec4v); - - doublev += ceil(doublev); - dvec2v += ceil(dvec2v); - dvec3v += ceil(dvec3v); - dvec4v += ceil(dvec4v); - - doublev += fract(doublev); - dvec2v += fract(dvec2v); - dvec3v += fract(dvec3v); - dvec4v += fract(dvec4v); - - doublev += mod(doublev, doublev); - dvec2v += mod(dvec2v, doublev); - dvec3v += mod(dvec3v, doublev); - dvec4v += mod(dvec4v, doublev); - dvec2v += mod(dvec2v, dvec2v); - dvec3v += mod(dvec3v, dvec3v); - dvec4v += mod(dvec4v, dvec4v); - - doublev += modf(doublev, doublev); - dvec2v += modf(dvec2v, dvec2v); - dvec3v += modf(dvec3v, dvec3v); - dvec4v += modf(dvec4v, dvec4v); - - doublev += min(doublev, doublev); - dvec2v += min(dvec2v, doublev); - dvec3v += min(dvec3v, doublev); - dvec4v += min(dvec4v, doublev); - dvec2v += min(dvec2v, dvec2v); - dvec3v += min(dvec3v, dvec3v); - dvec4v += min(dvec4v, dvec4v); - - doublev += max(doublev, doublev); - dvec2v += max(dvec2v, doublev); - dvec3v += max(dvec3v, doublev); - dvec4v += max(dvec4v, doublev); - dvec2v += max(dvec2v, dvec2v); - dvec3v += max(dvec3v, dvec3v); - dvec4v += max(dvec4v, dvec4v); - - doublev += clamp(doublev, doublev, doublev); - dvec2v += clamp(dvec2v, doublev, doublev); - dvec3v += clamp(dvec3v, doublev, doublev); - dvec4v += clamp(dvec4v, doublev, doublev); - dvec2v += clamp(dvec2v, dvec2v, dvec2v); - dvec3v += clamp(dvec3v, dvec3v, dvec3v); - dvec4v += clamp(dvec4v, dvec4v, dvec4v); - - doublev += mix(doublev, doublev, doublev); - dvec2v += mix(dvec2v, dvec2v, doublev); - dvec3v += mix(dvec3v, dvec3v, doublev); - dvec4v += mix(dvec4v, dvec4v, doublev); - dvec2v += mix(dvec2v, dvec2v, dvec2v); - dvec3v += mix(dvec3v, dvec3v, dvec3v); - dvec4v += mix(dvec4v, dvec4v, dvec4v); - doublev += mix(doublev, doublev, boolv); - dvec2v += mix(dvec2v, dvec2v, bvec2v); - dvec3v += mix(dvec3v, dvec3v, bvec3v); - dvec4v += mix(dvec4v, dvec4v, bvec4v); - - doublev += step(doublev, doublev); - dvec2v += step(dvec2v, dvec2v); - dvec3v += step(dvec3v, dvec3v); - dvec4v += step(dvec4v, dvec4v); - dvec2v += step(doublev, dvec2v); - dvec3v += step(doublev, dvec3v); - dvec4v += step(doublev, dvec4v); - - doublev += smoothstep(doublev, doublev, doublev); - dvec2v += smoothstep(dvec2v, dvec2v, dvec2v); - dvec3v += smoothstep(dvec3v, dvec3v, dvec3v); - dvec4v += smoothstep(dvec4v, dvec4v, dvec4v); - dvec2v += smoothstep(doublev, doublev, dvec2v); - dvec3v += smoothstep(doublev, doublev, dvec3v); - dvec4v += smoothstep(doublev, doublev, dvec4v); - - boolv = isnan(doublev); - bvec2v = isnan(dvec2v); - bvec3v = isnan(dvec3v); - bvec4v = isnan(dvec4v); - - boolv = boolv ? isinf(doublev) : false; - bvec2v = boolv ? isinf(dvec2v) : bvec2(false); - bvec3v = boolv ? isinf(dvec3v) : bvec3(false); - bvec4v = boolv ? isinf(dvec4v) : bvec4(false); - - doublev += length(doublev); - doublev += length(dvec2v); - doublev += length(dvec3v); - doublev += length(dvec4v); - - doublev += distance(doublev, doublev); - doublev += distance(dvec2v, dvec2v); - doublev += distance(dvec3v, dvec3v); - doublev += distance(dvec4v, dvec4v); - - doublev += dot(doublev, doublev); - doublev += dot(dvec2v, dvec2v); - doublev += dot(dvec3v, dvec3v); - doublev += dot(dvec4v, dvec4v); - - dvec3v += cross(dvec3v, dvec3v); - - doublev += normalize(doublev); - dvec2v += normalize(dvec2v); - dvec3v += normalize(dvec3v); - dvec4v += normalize(dvec4v); - - doublev += faceforward(doublev, doublev, doublev); - dvec2v += faceforward(dvec2v, dvec2v, dvec2v); - dvec3v += faceforward(dvec3v, dvec3v, dvec3v); - dvec4v += faceforward(dvec4v, dvec4v, dvec4v); - - doublev += reflect(doublev, doublev); - dvec2v += reflect(dvec2v, dvec2v); - dvec3v += reflect(dvec3v, dvec3v); - dvec4v += reflect(dvec4v, dvec4v); - - doublev += refract(doublev, doublev, doublev); - dvec2v += refract(dvec2v, dvec2v, doublev); - dvec3v += refract(dvec3v, dvec3v, doublev); - dvec4v += refract(dvec4v, dvec4v, doublev); - - dmat2 dmat2v = outerProduct(dvec2v, dvec2v); - dmat3 dmat3v = outerProduct(dvec3v, dvec3v); - dmat4 dmat4v = outerProduct(dvec4v, dvec4v); - dmat2x3 dmat2x3v = outerProduct(dvec3v, dvec2v); - dmat3x2 dmat3x2v = outerProduct(dvec2v, dvec3v); - dmat2x4 dmat2x4v = outerProduct(dvec4v, dvec2v); - dmat4x2 dmat4x2v = outerProduct(dvec2v, dvec4v); - dmat3x4 dmat3x4v = outerProduct(dvec4v, dvec3v); - dmat4x3 dmat4x3v = outerProduct(dvec3v, dvec4v); - - dmat2v *= matrixCompMult(dmat2v, dmat2v); - dmat3v *= matrixCompMult(dmat3v, dmat3v); - dmat4v *= matrixCompMult(dmat4v, dmat4v); - dmat2x3v = matrixCompMult(dmat2x3v, dmat2x3v); // For now, relying on no dead-code elimination - dmat2x4v = matrixCompMult(dmat2x4v, dmat2x4v); - dmat3x2v = matrixCompMult(dmat3x2v, dmat3x2v); - dmat3x4v = matrixCompMult(dmat3x4v, dmat3x4v); - dmat4x2v = matrixCompMult(dmat4x2v, dmat4x2v); - dmat4x3v = matrixCompMult(dmat4x3v, dmat4x3v); - - dmat2v *= transpose(dmat2v); - dmat3v *= transpose(dmat3v); - dmat4v *= transpose(dmat4v); - dmat2x3v = transpose(dmat3x2v); // For now, relying on no dead-code elimination - dmat3x2v = transpose(dmat2x3v); - dmat2x4v = transpose(dmat4x2v); - dmat4x2v = transpose(dmat2x4v); - dmat3x4v = transpose(dmat4x3v); - dmat4x3v = transpose(dmat3x4v); - - doublev += determinant(dmat2v); - doublev += determinant(dmat3v); - doublev += determinant(dmat4v); - - dmat2v *= inverse(dmat2v); - dmat3v *= inverse(dmat3v); - dmat4v *= inverse(dmat4v); - - outp *= float(doublev + dvec2v.y + dvec3v.z + dvec4v.w + - dmat2v[1][1] + dmat3v[2][2] + dmat4v[3][3] + dmat2x3v[1][1] + dmat3x2v[1][1] + dmat3x4v[2][2] + dmat4x3v[2][2] + dmat2x4v[1][1] + dmat4x2v[1][1] + - float(boolv) + float(bvec2v.x) + float(bvec3v.x) + float(bvec4v.x)); -} - -void main() -{ - vec4 v; - v = texture(arrayedSampler[i], c2D); - outp.x = gl_ClipDistance[1]; - outp.yzw = v.yzw; - - ivec2 offsets[4]; - const ivec2 constOffsets[4] = ivec2[4](ivec2(1,2), ivec2(3,4), ivec2(15,16), ivec2(-2,0)); - uoutp = textureGatherOffsets(samp2dr, c2D, constOffsets, 2); - outp += textureGather(arrayedSampler[0], c2D); - ioutp = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(1), 3); - ioutp += textureGatherOffset(isamp2DA, vec3(0.1), ivec2(1), 1+2); - ioutp += textureGatherOffset(isamp2DA, vec3(0.1), ivec2(i)); - - outp += gl_FragCoord + vl2; - uo = u % i; - foo23(); - doubles(); - - int id = gl_PrimitiveID; -} - diff --git a/deps/glslang/Test/spv.400.tesc b/deps/glslang/Test/spv.400.tesc deleted file mode 100644 index 1c926d08..00000000 --- a/deps/glslang/Test/spv.400.tesc +++ /dev/null @@ -1,43 +0,0 @@ -#version 400 core - -layout(vertices = 4) out; -int outa[gl_out.length()]; - -patch out vec4 patchOut; - -void main() -{ - barrier(); - - int a = gl_MaxTessControlInputComponents + - gl_MaxTessControlOutputComponents + - gl_MaxTessControlTextureImageUnits + - gl_MaxTessControlUniformComponents + - gl_MaxTessControlTotalOutputComponents; - - vec4 p = gl_in[1].gl_Position; - float ps = gl_in[1].gl_PointSize; - float cd = gl_in[1].gl_ClipDistance[2]; - - int pvi = gl_PatchVerticesIn; - int pid = gl_PrimitiveID; - int iid = gl_InvocationID; - - gl_out[gl_InvocationID].gl_Position = p; - gl_out[gl_InvocationID].gl_PointSize = ps; - gl_out[gl_InvocationID].gl_ClipDistance[1] = cd; - - gl_TessLevelOuter[3] = 3.2; - gl_TessLevelInner[1] = 1.3; -} - -in vec2 inb[]; -in vec2 ind[gl_MaxPatchVertices]; - -#extension GL_ARB_separate_shader_objects : enable - -layout(location = 3) in vec4 ivla[]; -layout(location = 4) in vec4 ivlb[]; - -layout(location = 3) out vec4 ovla[]; -layout(location = 4) out vec4 ovlb[]; diff --git a/deps/glslang/Test/spv.400.tese b/deps/glslang/Test/spv.400.tese deleted file mode 100644 index da33f41e..00000000 --- a/deps/glslang/Test/spv.400.tese +++ /dev/null @@ -1,52 +0,0 @@ -#version 400 core - -layout(triangles, ccw) in; - -layout(fractional_odd_spacing) in; - -layout(point_mode) in; - -patch in vec4 patchIn; - -void main() -{ - int a = gl_MaxTessEvaluationInputComponents + - gl_MaxTessEvaluationOutputComponents + - gl_MaxTessEvaluationTextureImageUnits + - gl_MaxTessEvaluationUniformComponents + - gl_MaxTessPatchComponents + - gl_MaxPatchVertices + - gl_MaxTessGenLevel; - - vec4 p = gl_in[1].gl_Position; - float ps = gl_in[1].gl_PointSize; - float cd = gl_in[1].gl_ClipDistance[2]; - - int pvi = gl_PatchVerticesIn; - int pid = gl_PrimitiveID; - vec3 tc = gl_TessCoord; - float tlo = gl_TessLevelOuter[3]; - float tli = gl_TessLevelInner[1]; - - gl_Position = p; - gl_PointSize = ps; - gl_ClipDistance[2] = cd; -} - -#extension GL_ARB_separate_shader_objects : enable - -in vec2 inb[]; -in vec2 ind[gl_MaxPatchVertices]; - -in testblb { - int f; -} blb[]; - -in testbld { - int f; -} bld[gl_MaxPatchVertices]; - -layout(location = 23) in vec4 ivla[]; -layout(location = 24) in vec4 ivlb[]; - -layout(location = 23) out vec4 ovla[2]; diff --git a/deps/glslang/Test/spv.420.geom b/deps/glslang/Test/spv.420.geom deleted file mode 100644 index 92186ae8..00000000 --- a/deps/glslang/Test/spv.420.geom +++ /dev/null @@ -1,43 +0,0 @@ -#version 420 core - -layout(triangles) in; - -in gl_PerVertex { - float gl_PointSize; -} gl_in[]; - -out gl_PerVertex { - float gl_PointSize; -}; - -layout(line_strip) out; -layout(max_vertices = 127) out; -layout(invocations = 4) in; - -uniform sampler2D s2D; -in vec2 coord[]; - -int i; - -void main() -{ - float p = gl_in[1].gl_PointSize; - gl_PointSize = p; - gl_ViewportIndex = 7; - - EmitStreamVertex(1); - EndStreamPrimitive(0); - EmitVertex(); - EndPrimitive(); - int id = gl_InvocationID; - - const ivec2 offsets[5] = - { - ivec2(0,1), - ivec2(1,-2), - ivec2(0,3), - ivec2(-3,0), - ivec2(2,1) - }; - vec4 v = textureGatherOffset(s2D, coord[0], offsets[i].xy); -} diff --git a/deps/glslang/Test/spv.430.frag b/deps/glslang/Test/spv.430.frag deleted file mode 100644 index e547f610..00000000 --- a/deps/glslang/Test/spv.430.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 430 core - -out vec4 color; - -void main() -{ - color = vec4(1.0); - color *= gl_Layer; - color *= gl_ViewportIndex; -} diff --git a/deps/glslang/Test/spv.430.vert b/deps/glslang/Test/spv.430.vert deleted file mode 100644 index f52ff4a6..00000000 --- a/deps/glslang/Test/spv.430.vert +++ /dev/null @@ -1,37 +0,0 @@ -#version 450 core - - - -out gl_PerVertex { - float gl_ClipDistance[]; -}; - -const float cx = 4.20; -const float dx = 4.20; -in vec4 bad[10]; -highp in vec4 badorder; -out invariant vec4 badorder2; -out flat vec4 badorder3; - -in float f; - -void main() -{ - gl_ClipDistance[2] = 3.7; - - if (bad[0].x == cx.x) - badorder3 = bad[0]; - - gl_ClipDistance[0] = f.x; -} - -layout(binding = 3) uniform boundblock { int aoeu; } boundInst; -layout(binding = 7) uniform anonblock { int aoeu; } ; -layout(binding = 4) uniform sampler2D sampb1; -layout(binding = 5) uniform sampler2D sampb2[10]; -layout(binding = 31) uniform sampler2D sampb4; - -struct S { mediump float a; highp uvec2 b; highp vec3 c; }; -struct SS { vec4 b; S s; vec4 c; }; -layout(location = 0) flat out SS var; -out MS { layout(location = 17) float f; } outMS; diff --git a/deps/glslang/Test/spv.450.geom b/deps/glslang/Test/spv.450.geom deleted file mode 100644 index 3489a888..00000000 --- a/deps/glslang/Test/spv.450.geom +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 core - -layout(triangles) in; - -layout(line_strip) out; -layout(max_vertices = 127) out; -layout(invocations = 4) in; - -void main() -{ - gl_PointSize = gl_in[1].gl_PointSize; - gl_Layer = 2; - gl_ViewportIndex = 3; -} diff --git a/deps/glslang/Test/spv.450.noRedecl.tesc b/deps/glslang/Test/spv.450.noRedecl.tesc deleted file mode 100644 index 85fe94b8..00000000 --- a/deps/glslang/Test/spv.450.noRedecl.tesc +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 core - -layout(vertices = 4) out; - -patch out vec4 patchOut; - -void main() -{ - gl_in[0].gl_PointSize; -} diff --git a/deps/glslang/Test/spv.450.tesc b/deps/glslang/Test/spv.450.tesc deleted file mode 100644 index 47b9a408..00000000 --- a/deps/glslang/Test/spv.450.tesc +++ /dev/null @@ -1,33 +0,0 @@ -#version 450 core - -layout(vertices = 4) out; - -layout(location=1) patch out vec4 patchOut; - -struct S { - float sMem1; // should not see a patch decoration - float sMem2; // should not see a patch decoration -}; - -layout(location = 12) patch out TheBlock { - highp float bMem1; // should not see a location decoration - highp float bMem2; - S s; // should see a patch decoration -} tcBlock[2]; - -void main() -{ - gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position; -} - -layout(location = 2) patch out SingleBlock { - highp float bMem1; // should not see a location decoration - highp float bMem2; - S s; // should see a patch decoration -} singleBlock; - -layout(location = 20) patch out bn { - vec4 v1; // location 20 - layout(location = 24) vec4 v2; // location 24 - vec4 v3; // location 25 -}; \ No newline at end of file diff --git a/deps/glslang/Test/spv.460.comp b/deps/glslang/Test/spv.460.comp deleted file mode 100644 index eb671a38..00000000 --- a/deps/glslang/Test/spv.460.comp +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 - -void main() -{ - bool b1; - b1 = anyInvocation(b1); - b1 = allInvocations(b1); - b1 = allInvocationsEqual(b1); -} diff --git a/deps/glslang/Test/spv.460.frag b/deps/glslang/Test/spv.460.frag deleted file mode 100644 index 9eb8bf46..00000000 --- a/deps/glslang/Test/spv.460.frag +++ /dev/null @@ -1,17 +0,0 @@ -#version 460 core - -layout(binding = 0) uniform atomic_uint aui; -uint ui; - -void main() -{ - atomicCounterAdd(aui, ui); - atomicCounterSubtract(aui, ui); - atomicCounterMin(aui, ui); - atomicCounterMax(aui, ui); - atomicCounterAnd(aui, ui); - atomicCounterOr(aui, ui); - atomicCounterXor(aui, ui); - atomicCounterExchange(aui, ui); - atomicCounterCompSwap(aui, ui, ui); -} diff --git a/deps/glslang/Test/spv.460.vert b/deps/glslang/Test/spv.460.vert deleted file mode 100644 index 72d4e775..00000000 --- a/deps/glslang/Test/spv.460.vert +++ /dev/null @@ -1,6 +0,0 @@ -#version 460 - -void main() -{ - int a = gl_BaseVertex + gl_BaseInstance + gl_DrawID; -} diff --git a/deps/glslang/Test/spv.8bit-16bit-construction.frag b/deps/glslang/Test/spv.8bit-16bit-construction.frag deleted file mode 100644 index 573fa548..00000000 --- a/deps/glslang/Test/spv.8bit-16bit-construction.frag +++ /dev/null @@ -1,22 +0,0 @@ -#version 450 core - -#extension GL_EXT_shader_8bit_storage : enable -#extension GL_EXT_shader_16bit_storage : enable - -buffer B -{ - int8_t i8_from_i16; - int16_t i16_from_i8; - uint8_t u8_from_u16; - uint16_t u16_from_u8; - float16_t f16_from_i8; -}; - -void main() -{ - i8_from_i16 = int8_t(int16_t(1)); - i16_from_i8 = int16_t(int8_t(1)); - u8_from_u16 = uint8_t(uint16_t(1)); - u16_from_u8 = uint16_t(uint8_t(1)); - f16_from_i8 = float16_t(int8_t(1)); -} diff --git a/deps/glslang/Test/spv.8bitstorage-int.frag b/deps/glslang/Test/spv.8bitstorage-int.frag deleted file mode 100644 index 93203c36..00000000 --- a/deps/glslang/Test/spv.8bitstorage-int.frag +++ /dev/null @@ -1,90 +0,0 @@ -#version 450 core - -#extension GL_EXT_shader_8bit_storage : enable - -struct S -{ - int8_t x; - i8vec2 y; - i8vec3 z; -}; - -layout(column_major, std140) uniform B1 -{ - int8_t a; - i8vec2 b; - i8vec3 c; - int8_t d[2]; - S g; - S h[2]; - int j; -} b1; - -layout(row_major, std430) buffer B2 -{ - int8_t o; - i8vec2 p; - i8vec3 q; - int8_t r[2]; - S u; - S v[2]; - i8vec2 x[100]; - int8_t w[]; -} b2; - -layout(row_major, std140) uniform B5 -{ - int8_t o; - i8vec2 p; - i8vec3 q; - int8_t r[2]; - S u; - S v[2]; - i8vec2 x[100]; - int8_t w[100]; -} b5; - -struct S2 { - mat4x4 x; - int8_t y; - int z; -}; - -struct S3 { - S2 x; -}; - -layout(row_major, std430) buffer B3 -{ - S2 x; -} b3; - -layout(column_major, std430) buffer B4 -{ - S2 x; - S3 y; -} b4; - -void main() -{ - b2.o = b1.a; - b2.p = i8vec2(ivec3(b2.q).xy); - b2.p = i8vec2(ivec3(b5.q).xy); - b2.r[0] = b2.r[0]; - b2.r[1] = b5.r[1]; - b2.p = b2.p; - int x0 = int(b1.a); - ivec4 x1 = ivec4(b1.a, b2.p, 1); - b4.x.x = b3.x.x; - b2.o = int8_t(ivec2(b2.p).x); - b2.p = b2.v[1].y; - ivec3 v3 = ivec3(b2.w[b1.j], b2.w[b1.j+1], b2.w[b1.j+2]); - ivec3 u3 = ivec3(b5.w[b1.j], b5.w[b1.j+1], b5.w[b1.j+2]); - b2.x[0] = b2.x[0]; - b2.x[1] = b5.x[1]; - b2.p.x = b1.a; - b2.o = b2.p.x; - b2.p = i8vec2(ivec2(1, 2)); - b2.o = int8_t(3); -} - diff --git a/deps/glslang/Test/spv.8bitstorage-ssbo.vert b/deps/glslang/Test/spv.8bitstorage-ssbo.vert deleted file mode 100644 index 61ba7bf1..00000000 --- a/deps/glslang/Test/spv.8bitstorage-ssbo.vert +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 - -#extension GL_EXT_shader_8bit_storage: require - -layout(binding = 0) readonly buffer Vertices -{ - uint8_t vertices[]; -}; - -layout(location = 0) out vec4 color; - -void main() -{ - color = vec4(int(vertices[gl_VertexIndex])); -} diff --git a/deps/glslang/Test/spv.8bitstorage-ubo.vert b/deps/glslang/Test/spv.8bitstorage-ubo.vert deleted file mode 100644 index 5c49a243..00000000 --- a/deps/glslang/Test/spv.8bitstorage-ubo.vert +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 - -#extension GL_EXT_shader_8bit_storage: require - -layout(binding = 0) readonly uniform Vertices -{ - uint8_t vertices[512]; -}; - -layout(location = 0) out vec4 color; - -void main() -{ - color = vec4(int(vertices[gl_VertexIndex])); -} diff --git a/deps/glslang/Test/spv.8bitstorage-uint.frag b/deps/glslang/Test/spv.8bitstorage-uint.frag deleted file mode 100644 index 574d088e..00000000 --- a/deps/glslang/Test/spv.8bitstorage-uint.frag +++ /dev/null @@ -1,90 +0,0 @@ -#version 450 core - -#extension GL_EXT_shader_8bit_storage : enable - -struct S -{ - uint8_t x; - u8vec2 y; - u8vec3 z; -}; - -layout(column_major, std140) uniform B1 -{ - uint8_t a; - u8vec2 b; - u8vec3 c; - uint8_t d[2]; - S g; - S h[2]; - uint j; -} b1; - -layout(row_major, std430) buffer B2 -{ - uint8_t o; - u8vec2 p; - u8vec3 q; - uint8_t r[2]; - S u; - S v[2]; - u8vec2 x[100]; - uint8_t w[]; -} b2; - -layout(row_major, std140) uniform B5 -{ - uint8_t o; - u8vec2 p; - u8vec3 q; - uint8_t r[2]; - S u; - S v[2]; - u8vec2 x[100]; - uint8_t w[100]; -} b5; - -struct S2 { - mat4x4 x; - uint8_t y; - uint z; -}; - -struct S3 { - S2 x; -}; - -layout(row_major, std430) buffer B3 -{ - S2 x; -} b3; - -layout(column_major, std430) buffer B4 -{ - S2 x; - S3 y; -} b4; - -void main() -{ - b2.o = b1.a; - b2.p = u8vec2(uvec3(b2.q).xy); - b2.p = u8vec2(uvec3(b5.q).xy); - b2.r[0] = b2.r[0]; - b2.r[1] = b5.r[1]; - b2.p = b2.p; - uint x0 = uint(b1.a); - uvec4 x1 = uvec4(b1.a, b2.p, 1); - b4.x.x = b3.x.x; - b2.o = uint8_t(uvec2(b2.p).x); - b2.p = b2.v[1].y; - uvec3 v3 = uvec3(b2.w[b1.j], b2.w[b1.j+1], b2.w[b1.j+2]); - uvec3 u3 = uvec3(b5.w[b1.j], b5.w[b1.j+1], b5.w[b1.j+2]); - b2.x[0] = b2.x[0]; - b2.x[1] = b5.x[1]; - b2.p.x = b1.a; - b2.o = b2.p.x; - b2.p = u8vec2(uvec2(1, 2)); - b2.o = uint8_t(3u); -} - diff --git a/deps/glslang/Test/spv.8bitstorage_Error-int.frag b/deps/glslang/Test/spv.8bitstorage_Error-int.frag deleted file mode 100644 index 35fe1826..00000000 --- a/deps/glslang/Test/spv.8bitstorage_Error-int.frag +++ /dev/null @@ -1,101 +0,0 @@ -#version 450 core - -#extension GL_EXT_shader_8bit_storage : enable - -struct S -{ - int8_t x; - i8vec2 y; - i8vec3 z; -}; - -layout(column_major, std140) uniform B1 -{ - int8_t a; - i8vec2 b; - i8vec3 c; - int8_t d[2]; - S g; - S h[2]; - int j; -} b1; - -layout(row_major, std430) buffer B2 -{ - int8_t o; - i8vec2 p; - i8vec3 q; - int8_t r[2]; - S u; - S v[2]; - int8_t w[]; -} b2; - -struct S2 { - mat4x4 x; - int8_t y; - int z; -}; - -struct S3 { - S2 x; -}; - -layout(row_major, std430) buffer B3 -{ - S2 x; -} b3; - -layout(column_major, std430) buffer B4 -{ - S2 x; -} b4; - -void func3(S2 x) { -} - -S2 func4() { - return b4.x; -} - -int func(int8_t a) { - return 0; -} - -struct S4 { - int x; - int8_t y; -}; - -int func2(int a) { return 0; } - -void main() -{ - b2.o = b2.q[1]; - b2.p = b2.q.xy; - b2.o = max(b1.a, b1.a); - bvec2 bv = lessThan(b2.p, b2.p); - b2.o = b1.a + b1.a; - b2.o = -b1.a; - b2.o = b1.a + 1; - b2.p = b2.p.yx; - b4.x = b3.x; - int8_t f0; - S2 f1; - S3 f2; - if (b1.a == b1.a) {} - b2.r = b2.r; - b2.p = i8vec2(3, 4); - i8vec2[2](i8vec2(ivec2(1,2)), i8vec2(ivec2(3,4))); - // NOT ERRORING YET - b3.x; - S4(0, int8_t(0)); - func2(b1.a); -} - - -layout(column_major, std140) uniform B6 -{ - i8mat2x3 e; -} b6; - diff --git a/deps/glslang/Test/spv.8bitstorage_Error-uint.frag b/deps/glslang/Test/spv.8bitstorage_Error-uint.frag deleted file mode 100644 index 5d0209f0..00000000 --- a/deps/glslang/Test/spv.8bitstorage_Error-uint.frag +++ /dev/null @@ -1,101 +0,0 @@ -#version 450 core - -#extension GL_EXT_shader_8bit_storage : enable - -struct S -{ - uint8_t x; - u8vec2 y; - u8vec3 z; -}; - -layout(column_major, std140) uniform B1 -{ - uint8_t a; - u8vec2 b; - u8vec3 c; - uint8_t d[2]; - S g; - S h[2]; - uint j; -} b1; - -layout(row_major, std430) buffer B2 -{ - uint8_t o; - u8vec2 p; - u8vec3 q; - uint8_t r[2]; - S u; - S v[2]; - uint8_t w[]; -} b2; - -struct S2 { - mat4x4 x; - uint8_t y; - uint z; -}; - -struct S3 { - S2 x; -}; - -layout(row_major, std430) buffer B3 -{ - S2 x; -} b3; - -layout(column_major, std430) buffer B4 -{ - S2 x; -} b4; - -void func3(S2 x) { -} - -S2 func4() { - return b4.x; -} - -uint func(uint8_t a) { - return 0; -} - -struct S4 { - uint x; - uint8_t y; -}; - -uint func2(uint a) { return 0; } - -void main() -{ - b2.o = b2.q[1]; - b2.p = b2.q.xy; - b2.o = max(b1.a, b1.a); - bvec2 bv = lessThan(b2.p, b2.p); - b2.o = b1.a + b1.a; - b2.o = -b1.a; - b2.o = b1.a + 1; - b2.p = b2.p.yx; - b4.x = b3.x; - uint8_t f0; - S2 f1; - S3 f2; - if (b1.a == b1.a) {} - b2.r = b2.r; - b2.p = u8vec2(3, 4); - u8vec2[2](u8vec2(uvec2(1,2)), u8vec2(uvec2(3,4))); - // NOT ERRORING YET - b3.x; - S4(0u, uint8_t(0u)); - func2(b1.a); -} - - -layout(column_major, std140) uniform B6 -{ - u8mat2x3 e; -} b6; - diff --git a/deps/glslang/Test/spv.AnyHitShader.rahit b/deps/glslang/Test/spv.AnyHitShader.rahit deleted file mode 100644 index c03cc2f7..00000000 --- a/deps/glslang/Test/spv.AnyHitShader.rahit +++ /dev/null @@ -1,26 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : enable -layout(location = 1) rayPayloadInNV vec4 incomingPayload; -void main() -{ - uvec3 v0 = gl_LaunchIDNV; - uvec3 v1 = gl_LaunchSizeNV; - int v2 = gl_PrimitiveID; - int v3 = gl_InstanceID; - int v4 = gl_InstanceCustomIndexNV; - vec3 v5 = gl_WorldRayOriginNV; - vec3 v6 = gl_WorldRayDirectionNV; - vec3 v7 = gl_ObjectRayOriginNV; - vec3 v8 = gl_ObjectRayDirectionNV; - float v9 = gl_RayTminNV; - float v10 = gl_RayTmaxNV; - float v11 = gl_HitTNV; - uint v12 = gl_HitKindNV; - mat4x3 v13 = gl_ObjectToWorldNV; - mat4x3 v14 = gl_WorldToObjectNV; - incomingPayload = vec4(0.5f); - if (v2 == 1) - ignoreIntersectionNV(); - else - terminateRayNV(); -} diff --git a/deps/glslang/Test/spv.AnyHitShaderMotion.rahit b/deps/glslang/Test/spv.AnyHitShaderMotion.rahit deleted file mode 100644 index 6972577a..00000000 --- a/deps/glslang/Test/spv.AnyHitShaderMotion.rahit +++ /dev/null @@ -1,6 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing_motion_blur : enable -void main() -{ - float time = gl_CurrentRayTimeNV + 0.5f; -} diff --git a/deps/glslang/Test/spv.AnyHitShader_Errors.rahit b/deps/glslang/Test/spv.AnyHitShader_Errors.rahit deleted file mode 100644 index 952461ee..00000000 --- a/deps/glslang/Test/spv.AnyHitShader_Errors.rahit +++ /dev/null @@ -1,11 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : enable -hitAttributeNV vec4 payload; -layout(binding = 0, set = 0) uniform accelerationStructureNV accNV; - -void main() -{ - payload.x = 1.0f; // ERROR, cannot write to hitattributeNV in stage - reportIntersectionNV(1.0, 1U); // ERROR, unsupported builtin in stage - traceNV(accNV, 0, 0, 1, 1, 0, vec3(0.0f), 0.5f, vec3(1.0f), 0.75f, 0); // ERROR, unsupported builtin in stage -} diff --git a/deps/glslang/Test/spv.AofA.frag b/deps/glslang/Test/spv.AofA.frag deleted file mode 100644 index 62847100..00000000 --- a/deps/glslang/Test/spv.AofA.frag +++ /dev/null @@ -1,43 +0,0 @@ -#version 430 - -in float infloat; -out float outfloat; - -uniform uAofA { - float f[2][4]; -} nameAofA[3][5]; - -float[4][5][6] many[1][2][3]; - -float g4[4][7]; -in float g5[5][7]; - -flat in int i, j, k; - -float[4][7] foo(float a[5][7]) -{ - float r[7]; - r = a[2]; - - return float[4][7](a[0], a[1], r, a[3]); -} - -void main() -{ - outfloat = 0.0; - - g4 = foo(g5); - -// if (foo(g5) == g4) -// ++outfloat; - - float u[][7]; - u[2][2] = 3.0; - float u[5][7]; - - foo(u); - - many[i][j][k][i][j][k] = infloat; - outfloat += many[j][j][j][j][j][j]; - outfloat += nameAofA[1][2].f[0][3]; -} diff --git a/deps/glslang/Test/spv.ClosestHitShader.rchit b/deps/glslang/Test/spv.ClosestHitShader.rchit deleted file mode 100644 index 7a09b804..00000000 --- a/deps/glslang/Test/spv.ClosestHitShader.rchit +++ /dev/null @@ -1,24 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : enable -layout(binding = 0, set = 0) uniform accelerationStructureNV accNV; -layout(location = 0) rayPayloadNV vec4 localPayload; -layout(location = 1) rayPayloadInNV vec4 incomingPayload; -void main() -{ - uvec3 v0 = gl_LaunchIDNV; - uvec3 v1 = gl_LaunchSizeNV; - int v2 = gl_PrimitiveID; - int v3 = gl_InstanceID; - int v4 = gl_InstanceCustomIndexNV; - vec3 v5 = gl_WorldRayOriginNV; - vec3 v6 = gl_WorldRayDirectionNV; - vec3 v7 = gl_ObjectRayOriginNV; - vec3 v8 = gl_ObjectRayDirectionNV; - float v9 = gl_RayTminNV; - float v10 = gl_RayTmaxNV; - float v11 = gl_HitTNV; - uint v12 = gl_HitKindNV; - mat4x3 v13 = gl_ObjectToWorldNV; - mat4x3 v14 = gl_WorldToObjectNV; - traceNV(accNV, 0u, 1u, 2u, 3u, 0u, vec3(0.5f), 0.5f, vec3(1.0f), 0.75f, 1); -} diff --git a/deps/glslang/Test/spv.ClosestHitShaderMotion.rchit b/deps/glslang/Test/spv.ClosestHitShaderMotion.rchit deleted file mode 100644 index 42a18382..00000000 --- a/deps/glslang/Test/spv.ClosestHitShaderMotion.rchit +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : enable -#extension GL_NV_ray_tracing_motion_blur : enable -layout(binding = 0, set = 0) uniform accelerationStructureEXT accEXT; -layout(location = 0) rayPayloadInEXT vec4 incomingPayloadEXT; -void main() -{ - float time = gl_CurrentRayTimeNV + 0.5f; - traceRayMotionNV(accEXT, 0u, 1u, 2u, 3u, 0u, vec3(0.5f), 0.5f, vec3(1.0f), 0.75f, 1.0, 0); -} diff --git a/deps/glslang/Test/spv.ClosestHitShader_Errors.rchit b/deps/glslang/Test/spv.ClosestHitShader_Errors.rchit deleted file mode 100644 index b7b421ec..00000000 --- a/deps/glslang/Test/spv.ClosestHitShader_Errors.rchit +++ /dev/null @@ -1,12 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : enable -hitAttributeNV vec4 payload; -layout(binding = 0, set = 0) uniform accelerationStructureNV accNV; - -void main() -{ - payload.x = 1.0f; // ERROR, cannot write to hitattributeNV in stage - reportIntersectionNV(1.0, 1U); // ERROR, unsupported builtin in stage - terminateRayNV(); - ignoreIntersectionNV(); -} diff --git a/deps/glslang/Test/spv.GeometryShaderPassthrough.geom b/deps/glslang/Test/spv.GeometryShaderPassthrough.geom deleted file mode 100644 index 9e6fe4ce..00000000 --- a/deps/glslang/Test/spv.GeometryShaderPassthrough.geom +++ /dev/null @@ -1,17 +0,0 @@ -#version 450 -#extension GL_NV_geometry_shader_passthrough : require - -layout(triangles) in; - -layout(passthrough) in gl_PerVertex { - vec4 gl_Position; -}; - -layout(passthrough) in Inputs { -vec2 texcoord; -vec4 baseColor; -}; - -void main() -{ -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.IntersectShader.rint b/deps/glslang/Test/spv.IntersectShader.rint deleted file mode 100644 index 85ec3199..00000000 --- a/deps/glslang/Test/spv.IntersectShader.rint +++ /dev/null @@ -1,21 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : enable -hitAttributeNV vec4 iAttr; -void main() -{ - uvec3 v0 = gl_LaunchIDNV; - uvec3 v1 = gl_LaunchSizeNV; - int v2 = gl_PrimitiveID; - int v3 = gl_InstanceID; - int v4 = gl_InstanceCustomIndexNV; - vec3 v5 = gl_WorldRayOriginNV; - vec3 v6 = gl_WorldRayDirectionNV; - vec3 v7 = gl_ObjectRayOriginNV; - vec3 v8 = gl_ObjectRayDirectionNV; - float v9 = gl_RayTminNV; - float v10 = gl_RayTmaxNV; - mat4x3 v11 = gl_ObjectToWorldNV; - mat4x3 v12 = gl_WorldToObjectNV; - iAttr = vec4(0.5f,0.5f,0.0f,1.0f); - reportIntersectionNV(0.5, 1U); -} diff --git a/deps/glslang/Test/spv.IntersectShaderMotion.rint b/deps/glslang/Test/spv.IntersectShaderMotion.rint deleted file mode 100644 index 6972577a..00000000 --- a/deps/glslang/Test/spv.IntersectShaderMotion.rint +++ /dev/null @@ -1,6 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing_motion_blur : enable -void main() -{ - float time = gl_CurrentRayTimeNV + 0.5f; -} diff --git a/deps/glslang/Test/spv.IntersectShader_Errors.rint b/deps/glslang/Test/spv.IntersectShader_Errors.rint deleted file mode 100644 index fbc68465..00000000 --- a/deps/glslang/Test/spv.IntersectShader_Errors.rint +++ /dev/null @@ -1,11 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : enable -rayPayloadInNV vec4 payloadIn; // ERROR, rayPayloadIn unsupported in this stage -rayPayloadNV vec4 payload; // ERROR, rayPayload unsuppoted in this stage -uniform accelerationStructureNV accNV; -void main() -{ - float e12 = gl_HitTNV; // ERROR, unsupported builtin in stage - float e13 = gl_HitKindNV; // ERROR, unsupported builtin in stage - traceNV(accNV, 0, 0, 1, 1, 0, vec3(0.0f), 0.5f, vec3(1.0f), 0.75f, 0); // ERROR, unsupported -} diff --git a/deps/glslang/Test/spv.MissShader.rmiss b/deps/glslang/Test/spv.MissShader.rmiss deleted file mode 100644 index 3c6b31c3..00000000 --- a/deps/glslang/Test/spv.MissShader.rmiss +++ /dev/null @@ -1,16 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : enable -layout(binding = 0, set = 0) uniform accelerationStructureNV accNV; -layout(location = 0) rayPayloadNV vec4 localPayload; -layout(location = 1) rayPayloadInNV vec4 incomingPayload; -void main() -{ - uvec3 v0 = gl_LaunchIDNV; - uvec3 v1 = gl_LaunchSizeNV; - vec3 v2 = gl_WorldRayOriginNV; - vec3 v3 = gl_WorldRayDirectionNV; - uint v4 = gl_IncomingRayFlagsNV; - float v6 = gl_RayTminNV; - float v7 = gl_RayTmaxNV; - traceNV(accNV, 0u, 1u, 2u, 3u, 0u, vec3(0.5f), 0.5f, vec3(1.0f), 0.75f, 1); -} diff --git a/deps/glslang/Test/spv.MissShaderMotion.rmiss b/deps/glslang/Test/spv.MissShaderMotion.rmiss deleted file mode 100644 index 3a3dcb16..00000000 --- a/deps/glslang/Test/spv.MissShaderMotion.rmiss +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : enable -#extension GL_NV_ray_tracing_motion_blur : enable -layout(binding = 0, set = 0) uniform accelerationStructureEXT accEXT; -layout(location = 0) rayPayloadEXT vec4 localPayloadEXT; -void main() -{ - float time = gl_CurrentRayTimeNV + 0.5f; - traceRayMotionNV(accEXT, 0u, 1u, 2u, 3u, 0u, vec3(0.5f), 0.5f, vec3(1.0f), 0.75f, 1.0f, 0); -} diff --git a/deps/glslang/Test/spv.MissShader_Errors.rmiss b/deps/glslang/Test/spv.MissShader_Errors.rmiss deleted file mode 100644 index a7f7c59c..00000000 --- a/deps/glslang/Test/spv.MissShader_Errors.rmiss +++ /dev/null @@ -1,16 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : enable -hitAttributeNV vec4 payload; // ERROR, hitattributeNV unsupported in this stage -void main() -{ - int e0 = gl_PrimitiveID; // ERROR, unsupported builtin in stage - int e1 = gl_InstanceID; // ERROR, unsupported builtin in stage - int e3 = gl_InstanceCustomIndexNV; // ERROR, unsupported builtin in stage - mat4x3 e10 = gl_ObjectToWorldNV; // ERROR, unsupported builtin in stage - mat4x3 e11 = gl_WorldToObjectNV; // ERROR, unsupported builtin in stage - float e12 = gl_HitTNV; // ERROR, unsupported builtin in stage - float e13 = gl_HitKindNV; // ERROR, unsupported builtin in stage - reportIntersectionNV(1.0, 1U); // ERROR, unsupported builtin in stage - ignoreIntersectionNV(); // ERROR, unsupported builtin in stage - terminateRayNV(); // ERROR, unsupported builtin in stage -} diff --git a/deps/glslang/Test/spv.OVR_multiview.vert b/deps/glslang/Test/spv.OVR_multiview.vert deleted file mode 100644 index c81a4d99..00000000 --- a/deps/glslang/Test/spv.OVR_multiview.vert +++ /dev/null @@ -1,9 +0,0 @@ -#version 330 - -#extension GL_OVR_multiview : enable - -layout(num_views = 2) in; - -void main() { - gl_Position = vec4(gl_ViewID_OVR, 0, 0, 0); -} diff --git a/deps/glslang/Test/spv.Operations.frag b/deps/glslang/Test/spv.Operations.frag deleted file mode 100644 index 3477a79a..00000000 --- a/deps/glslang/Test/spv.Operations.frag +++ /dev/null @@ -1,149 +0,0 @@ -#version 450 - -flat in ivec4 uiv4; -in vec4 uv4; -bool ub; -bvec4 ub41, ub42; -in float uf; -flat in int ui; -flat in uvec4 uuv4; -flat in uint uui; - -out vec4 FragColor; - -void main() -{ - vec4 v; - float f; - bool b; - bvec4 bv4; - int i; - uint u; - - // floating point - v = radians(uv4); - v += degrees(v); - v += (i = ui*ui, sin(v)); - v += cos(v); - v += tan(v); - v += asin(v); - v += acos(v); - - v += atan(v); - v += sinh(v); - v += cosh(v); - v += tanh(v); - v += asinh(v); - v += acosh(v); - v += atanh(v); - - v += pow(v, v); - v += exp(v); - v += log(v); - v += exp2(v); - v += log2(v); - v += sqrt(v); - v += inversesqrt(v); - v += abs(v); - v += sign(v); - v += floor(v); - - v += trunc(v); - v += round(v); - v += roundEven(v); - - v += ceil(v); - v += fract(v); - v += mod(v, v); - v += mod(v, v.x); - - v += modf(v, v); - v += modf(v, v.yzxw); - - v += min(v, uv4); - v += max(v, uv4); - v += clamp(v, uv4, uv4); - v += mix(v,v,v); - - v += mix(v,v,ub41); - v += mix(v,v,f); -//spv v += intBitsToFloat(ui); -// v += uintBitsToFloat(uui); -// i += floatBitsToInt(f); -// u += floatBitsToUint(f); - v += fma(v, uv4, v); - - v += step(v,v); - v += smoothstep(v,v,v); - v += step(uf,v); - v += smoothstep(uf,uf,v); - v += normalize(v); - v += faceforward(v, v, v); - v += reflect(v, v); - v += refract(v, v, uf); - v += dFdx(v); - v += dFdy(v); - v += fwidth(v); - - // signed integer - i += abs(ui); - i += sign(i); - i += min(i, ui); - i += max(i, ui); - i += clamp(i, ui, ui); - - // unsigned integer - u += min(u, uui); - u += max(u, uui); - u += clamp(u, uui, uui); - - // multiple out operands - uvec4 msb; - uvec4 lsb; - umulExtended(uuv4.xyz, uuv4.xyz, msb.xyz, lsb.xyz); - u += msb.x + msb.y + msb.z; - u += lsb.x + lsb.y + lsb.z; - - //// bool - b = isnan(uf); - b = isinf(f); - b = any(lessThan(v, uv4)); - b = (b && any(lessThanEqual(v, uv4))); - b = (b && any(greaterThan(v, uv4))); - b = (b && any(greaterThanEqual(v, uv4))); - b = (b && any(equal(ub41, ub42))); - b = (b && any(notEqual(ub41, ub42))); - b = (b && any(ub41)); - b = (b && all(ub41)); - b = (b && any(not(ub41))); - - i = ((i + ui) * i - ui) / i; - i = i % ui; - if (i == ui || i != ui && i == ui ^^ i != 2) - ++i; - - f = ((uf + uf) * uf - uf) / uf; - - f += length(v); - f += distance(v, v); - f += dot(v, v); - f += dot(f, uf); - f += cross(v.xyz, v.xyz).x; - - if (f == uf || f != uf && f != 2.0) - ++f; - - i &= ui; - i |= 0x42; - i ^= ui; - i %= 17; - i >>= 2; - i <<= ui; - i = ~i; - b = !b; - - FragColor = b ? vec4(i) + vec4(f) + v : v; - - mat4 m1 = mat4(1.0), m2 = mat4(0.0); - FragColor += (b ? m1 : m2)[1]; -} diff --git a/deps/glslang/Test/spv.RayCallable.rcall b/deps/glslang/Test/spv.RayCallable.rcall deleted file mode 100644 index 992cce65..00000000 --- a/deps/glslang/Test/spv.RayCallable.rcall +++ /dev/null @@ -1,13 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : enable -layout(location = 0) callableDataNV vec4 data0; -layout(location = 1) callableDataInNV dataBlock { - uint data1; -}; -void main() -{ - uvec3 id = gl_LaunchIDNV; - uvec3 size = gl_LaunchSizeNV; - data1 = 256U; - executeCallableNV(2,1); -} diff --git a/deps/glslang/Test/spv.RayCallable_Errors.rcall b/deps/glslang/Test/spv.RayCallable_Errors.rcall deleted file mode 100644 index f6126a6f..00000000 --- a/deps/glslang/Test/spv.RayCallable_Errors.rcall +++ /dev/null @@ -1,26 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : enable -hitAttributeNV vec4 hitattr; // ERROR, hitattributeNV unsupported in this stage -rayPayloadNV vec4 payload; // ERROR, rayPayloadNV unsupported in this stage -rayPayloadInNV vec4 payloadIn; // ERROR, rayPayloadInNV unsupported in this stage - -void main() -{ - int e0 = gl_PrimitiveID; // ERROR, unsupported builtin in stage - int e1 = gl_InstanceID; // ERROR, unsupported builtin in stage - int e3 = gl_InstanceCustomIndexNV; // ERROR, unsupported builtin in stage - vec3 e4 = gl_WorldRayOriginNV; // ERROR, unsupported builtin in stage - vec3 e5 = gl_WorldRayDirectionNV; // ERROR, unsupported builtin in stage - vec3 e6 = gl_ObjectRayOriginNV; // ERROR, unsupported builtin in stage - vec3 e7 = gl_ObjectRayDirectionNV; // ERROR, unsupported builtin in stage - float e8 = gl_RayTminNV; // ERROR, unsupported builtin in stage - float e9 = gl_RayTmaxNV; // ERROR, unsupported builtin in stage - mat4x3 e10 = gl_ObjectToWorldNV; // ERROR, unsupported builtin in stage - mat4x3 e11 = gl_WorldToObjectNV; // ERROR, unsupported builtin in stage - float e12 = gl_HitTNV; // ERROR, unsupported builtin in stage - float e13 = gl_HitKindNV; // ERROR, unsupported builtin in stage - uint curFlags = gl_IncomingRayFlagsNV; // ERROR, unsupported builtin in stage - reportIntersectionNV(1.0, 1U); // ERROR, unsupported builtin in stage - ignoreIntersectionNV(); // ERROR, unsupported builtin in stage - terminateRayNV(); // ERROR, unsupported builtin in stage -} diff --git a/deps/glslang/Test/spv.RayConstants.rgen b/deps/glslang/Test/spv.RayConstants.rgen deleted file mode 100644 index b8ff5d5f..00000000 --- a/deps/glslang/Test/spv.RayConstants.rgen +++ /dev/null @@ -1,15 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : enable -layout(binding = 0, set = 0) uniform accelerationStructureNV accNV; -layout(location = 0) rayPayloadNV vec4 payload; -void main() -{ - const uint rayFlags = gl_RayFlagsNoneNV | gl_RayFlagsOpaqueNV | - gl_RayFlagsNoOpaqueNV | gl_RayFlagsTerminateOnFirstHitNV | - gl_RayFlagsSkipClosestHitShaderNV | gl_RayFlagsCullBackFacingTrianglesNV | - gl_RayFlagsCullFrontFacingTrianglesNV | gl_RayFlagsCullOpaqueNV | - gl_RayFlagsCullNoOpaqueNV; - - const int payloadId = 1; - traceNV(accNV, rayFlags, 0, 1, 1, 0, vec3(0.0f), 0.5f, vec3(1.0f), 0.75f, payloadId); -} diff --git a/deps/glslang/Test/spv.RayGenShader.rgen b/deps/glslang/Test/spv.RayGenShader.rgen deleted file mode 100644 index a7143542..00000000 --- a/deps/glslang/Test/spv.RayGenShader.rgen +++ /dev/null @@ -1,19 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : enable -layout(binding = 0, set = 0) uniform accelerationStructureNV accNV0; -layout(binding = 1, set = 0) uniform accelerationStructureNV accNV1; // Unused -layout(location = 0) rayPayloadNV vec4 payload; -layout(shaderRecordNV) buffer block -{ - vec3 dir; - vec3 origin; - -}; -void main() -{ - uint lx = gl_LaunchIDNV.x; - uint ly = gl_LaunchIDNV.y; - uint sx = gl_LaunchSizeNV.x; - uint sy = gl_LaunchSizeNV.y; - traceNV(accNV0, lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1); -} diff --git a/deps/glslang/Test/spv.RayGenShader11.rgen b/deps/glslang/Test/spv.RayGenShader11.rgen deleted file mode 100644 index d010a87d..00000000 --- a/deps/glslang/Test/spv.RayGenShader11.rgen +++ /dev/null @@ -1,17 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : enable -layout(binding = 0, set = 0) uniform accelerationStructureNV accNV; -layout(location = 0) rayPayloadNV vec4 payload; -layout(shaderRecordNV) buffer block -{ - vec3 dir; - vec3 origin; -}; -void main() -{ - uint lx = gl_LaunchIDNV.x; - uint ly = gl_LaunchIDNV.y; - uint sx = gl_LaunchSizeNV.x; - uint sy = gl_LaunchSizeNV.y; - traceNV(accNV, lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1); -} diff --git a/deps/glslang/Test/spv.RayGenShaderArray.rgen b/deps/glslang/Test/spv.RayGenShaderArray.rgen deleted file mode 100644 index d7434583..00000000 --- a/deps/glslang/Test/spv.RayGenShaderArray.rgen +++ /dev/null @@ -1,22 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : enable -#extension GL_EXT_nonuniform_qualifier : enable -layout(binding = 0, set = 0) uniform accelerationStructureNV accNV0[]; -layout(binding = 1, set = 0) uniform accelerationStructureNV accNV1[2]; -layout(location = 0) rayPayloadNV vec4 payload; -layout(shaderRecordNV) buffer block -{ - vec3 dir; - vec3 origin; - int i; -}; -void main() -{ - uint lx = gl_LaunchIDNV.x; - uint ly = gl_LaunchIDNV.y; - uint sx = gl_LaunchSizeNV.x; - uint sy = gl_LaunchSizeNV.y; - traceNV(accNV0[i], lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1); - traceNV(accNV1[i], lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1); - traceNV(accNV0[nonuniformEXT(i)], lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1); -} diff --git a/deps/glslang/Test/spv.RayGenShaderMotion.rgen b/deps/glslang/Test/spv.RayGenShaderMotion.rgen deleted file mode 100644 index c38fffe5..00000000 --- a/deps/glslang/Test/spv.RayGenShaderMotion.rgen +++ /dev/null @@ -1,13 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : enable -#extension GL_NV_ray_tracing_motion_blur : enable -layout(binding = 0, set = 0) uniform accelerationStructureEXT accEXT; -layout(location = 0) rayPayloadEXT vec4 payloadEXT; -void main() -{ - uint lx = gl_LaunchIDEXT.x; - uint ly = gl_LaunchIDEXT.y; - uint sx = gl_LaunchSizeEXT.x; - uint sy = gl_LaunchSizeEXT.y; - traceRayMotionNV(accEXT, lx, ly, sx, sy, 0u, vec3(0.5), 0.5f, vec3(1.0), 0.75f, 0.5, 0); -} diff --git a/deps/glslang/Test/spv.RayGenShader_Errors.rgen b/deps/glslang/Test/spv.RayGenShader_Errors.rgen deleted file mode 100644 index 5a590c8a..00000000 --- a/deps/glslang/Test/spv.RayGenShader_Errors.rgen +++ /dev/null @@ -1,41 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : enable -hitAttributeNV vec4 payload; // ERROR, hitattributeNV unsupported in this stage -rayPayloadInNV vec4 payloadIn; // ERROR, rayPayloadIn unsupported in this stage -layout(shaderRecordNV) uniform ublock // ERROR, shaderRecordNV unsupported on uniform blocks -{ - float a; -}; -layout(binding = 0, shaderRecordNV) buffer bblock { // ERROR, binding unsupported on shaderRecordNV blocks - float b; -}; -layout(set = 0, shaderRecordNV) buffer bblock2 { // ERROR, set unsupported on shaderRecordNV blocks - float c; -}; -layout(shaderRecordNV) buffer bblock3 { - float d; -}; -layout(shaderRecordNV) buffer bblock4 { // ERROR, cannot have more than one shaderRecordNVX block - float e; -}; -void main() -{ - accelerationStructureNV a = 0; - int e0 = gl_PrimitiveID; // ERROR, unsupported builtin in stage - int e1 = gl_InstanceID; // ERROR, unsupported builtin in stage - int e3 = gl_InstanceCustomIndexNV; // ERROR, unsupported builtin in stage - vec3 e4 = gl_WorldRayOriginNV; // ERROR, unsupported builtin in stage - vec3 e5 = gl_WorldRayDirectionNV; // ERROR, unsupported builtin in stage - vec3 e6 = gl_ObjectRayOriginNV; // ERROR, unsupported builtin in stage - vec3 e7 = gl_ObjectRayDirectionNV; // ERROR, unsupported builtin in stage - float e8 = gl_RayTminNV; // ERROR, unsupported builtin in stage - float e9 = gl_RayTmaxNV; // ERROR, unsupported builtin in stage - mat4x3 e10 = gl_ObjectToWorldNV; // ERROR, unsupported builtin in stage - mat4x3 e11 = gl_WorldToObjectNV; // ERROR, unsupported builtin in stage - float e12 = gl_HitTNV; // ERROR, unsupported builtin in stage - float e13 = gl_HitKindNV; // ERROR, unsupported builtin in stage - reportIntersectionNV(1.0, 1U); // ERROR, unsupported builtin in stage - ignoreIntersectionNV(); // ERROR, unsupported builtin in stage - terminateRayNV(); // ERROR, unsupported builtin in stage - d = 1.0f; // ERROR, can't modify shaderRecordNV block -} diff --git a/deps/glslang/Test/spv.WorkgroupMemoryExplicitLayout.16BitAccess.comp b/deps/glslang/Test/spv.WorkgroupMemoryExplicitLayout.16BitAccess.comp deleted file mode 100644 index e06555e4..00000000 --- a/deps/glslang/Test/spv.WorkgroupMemoryExplicitLayout.16BitAccess.comp +++ /dev/null @@ -1,18 +0,0 @@ -#version 430 core - -#extension GL_EXT_shared_memory_block : enable -#extension GL_EXT_shader_explicit_arithmetic_types: enable - -layout(local_size_x = 2) in; - -shared first -{ - int16_t a; - float16_t f; -}; - -void main() -{ - a = int16_t(3); - f = float16_t(12.3); -} diff --git a/deps/glslang/Test/spv.WorkgroupMemoryExplicitLayout.8BitAccess.comp b/deps/glslang/Test/spv.WorkgroupMemoryExplicitLayout.8BitAccess.comp deleted file mode 100644 index aaa512c2..00000000 --- a/deps/glslang/Test/spv.WorkgroupMemoryExplicitLayout.8BitAccess.comp +++ /dev/null @@ -1,16 +0,0 @@ -#version 430 core - -#extension GL_EXT_shared_memory_block : enable -#extension GL_EXT_shader_explicit_arithmetic_types: enable - -layout(local_size_x = 2) in; - -shared first -{ - int8_t a; -}; - -void main() -{ - a = int8_t(2); -} diff --git a/deps/glslang/Test/spv.WorkgroupMemoryExplicitLayout.MixBlockNonBlock_Errors.comp b/deps/glslang/Test/spv.WorkgroupMemoryExplicitLayout.MixBlockNonBlock_Errors.comp deleted file mode 100644 index 573d0922..00000000 --- a/deps/glslang/Test/spv.WorkgroupMemoryExplicitLayout.MixBlockNonBlock_Errors.comp +++ /dev/null @@ -1,20 +0,0 @@ -#version 430 core - -#extension GL_EXT_shared_memory_block : enable - -layout(local_size_x = 8) in; - -shared first -{ - int a; -}; - -shared int b; - -// Cannot mix shared block and shared non-block, will fail at linking. - -void main() -{ - a = 2; - b = 3; -} diff --git a/deps/glslang/Test/spv.WorkgroupMemoryExplicitLayout.MultiBlock.comp b/deps/glslang/Test/spv.WorkgroupMemoryExplicitLayout.MultiBlock.comp deleted file mode 100644 index 675a4433..00000000 --- a/deps/glslang/Test/spv.WorkgroupMemoryExplicitLayout.MultiBlock.comp +++ /dev/null @@ -1,21 +0,0 @@ -#version 430 core - -#extension GL_EXT_shared_memory_block : enable - -layout(local_size_x = 8) in; - -shared first -{ - int a; -}; - -shared second -{ - int b; -}; - -void main() -{ - a = 2; - b = 3; -} diff --git a/deps/glslang/Test/spv.WorkgroupMemoryExplicitLayout.NonBlock.comp b/deps/glslang/Test/spv.WorkgroupMemoryExplicitLayout.NonBlock.comp deleted file mode 100644 index 38316a50..00000000 --- a/deps/glslang/Test/spv.WorkgroupMemoryExplicitLayout.NonBlock.comp +++ /dev/null @@ -1,14 +0,0 @@ -#version 430 core - -#extension GL_EXT_shared_memory_block : enable - -layout(local_size_x = 8) in; - -shared int a; -shared int b; - -void main() -{ - a = 2; - b = 3; -} diff --git a/deps/glslang/Test/spv.WorkgroupMemoryExplicitLayout.SingleBlock.comp b/deps/glslang/Test/spv.WorkgroupMemoryExplicitLayout.SingleBlock.comp deleted file mode 100644 index 2a17c61c..00000000 --- a/deps/glslang/Test/spv.WorkgroupMemoryExplicitLayout.SingleBlock.comp +++ /dev/null @@ -1,15 +0,0 @@ -#version 430 core - -#extension GL_EXT_shared_memory_block : enable - -layout(local_size_x = 8) in; - -shared first -{ - int a; -}; - -void main() -{ - a = 2; -} diff --git a/deps/glslang/Test/spv.WorkgroupMemoryExplicitLayout.scalar.comp b/deps/glslang/Test/spv.WorkgroupMemoryExplicitLayout.scalar.comp deleted file mode 100644 index 38085b4d..00000000 --- a/deps/glslang/Test/spv.WorkgroupMemoryExplicitLayout.scalar.comp +++ /dev/null @@ -1,39 +0,0 @@ -#version 430 core - -#extension GL_EXT_scalar_block_layout : enable -#extension GL_EXT_shared_memory_block : enable - -layout(local_size_x = 8) in; - -struct T -{ - float t[3]; -}; - -struct S -{ - float f; - vec2 v2; - vec3 v3; - vec4 v4; - T t; - - float f_array[6]; - vec2 v2_array[6]; - vec3 v3_array[6]; - vec4 v4_array[6]; - T t_array[6]; -}; - -// Use a default qualifier. -layout(scalar) shared; - -shared Block -{ - S s; - S s_array[6]; -}; - -void main() -{ -} diff --git a/deps/glslang/Test/spv.WorkgroupMemoryExplicitLayout.std140.comp b/deps/glslang/Test/spv.WorkgroupMemoryExplicitLayout.std140.comp deleted file mode 100644 index f4f2475a..00000000 --- a/deps/glslang/Test/spv.WorkgroupMemoryExplicitLayout.std140.comp +++ /dev/null @@ -1,35 +0,0 @@ -#version 430 core - -#extension GL_EXT_shared_memory_block : enable - -layout(local_size_x = 8) in; - -struct T -{ - float t[3]; -}; - -struct S -{ - float f; - vec2 v2; - vec3 v3; - vec4 v4; - T t; - - float f_array[6]; - vec2 v2_array[6]; - vec3 v3_array[6]; - vec4 v4_array[6]; - T t_array[6]; -}; - -layout(std140) shared Block -{ - S s; - S s_array[6]; -}; - -void main() -{ -} diff --git a/deps/glslang/Test/spv.WorkgroupMemoryExplicitLayout.std430.comp b/deps/glslang/Test/spv.WorkgroupMemoryExplicitLayout.std430.comp deleted file mode 100644 index 717593b6..00000000 --- a/deps/glslang/Test/spv.WorkgroupMemoryExplicitLayout.std430.comp +++ /dev/null @@ -1,35 +0,0 @@ -#version 430 core - -#extension GL_EXT_shared_memory_block : enable - -layout(local_size_x = 8) in; - -struct T -{ - float t[3]; -}; - -struct S -{ - float f; - vec2 v2; - vec3 v3; - vec4 v4; - T t; - - float f_array[6]; - vec2 v2_array[6]; - vec3 v3_array[6]; - vec4 v4_array[6]; - T t_array[6]; -}; - -layout(std430) shared Block -{ - S s; - S s_array[6]; -}; - -void main() -{ -} diff --git a/deps/glslang/Test/spv.accessChain.frag b/deps/glslang/Test/spv.accessChain.frag deleted file mode 100644 index 3f4929b6..00000000 --- a/deps/glslang/Test/spv.accessChain.frag +++ /dev/null @@ -1,100 +0,0 @@ -#version 420 - -struct S -{ - vec3 color; -}; - -layout(location = 0) out vec3 OutColor; - -flat in int u; - -void GetColor1(const S i) -{ - OutColor += i.color.x; -} - -void GetColor2(const S i, int comp) -{ - OutColor += i.color[comp]; -} - -void GetColor3(const S i, int comp) -{ - OutColor += i.color[comp].x; -} - -void GetColor4(const S i, int comp) -{ - OutColor += i.color[comp].x; -} - -void GetColor5(const S i, int comp) -{ - OutColor += i.color; -} - -void GetColor6(const S i, int comp) -{ - OutColor += i.color.yx[comp]; -} - -void GetColor7(const S i, int comp) -{ - OutColor.xy += i.color.yxz.yx; -} - -void GetColor8(const S i, int comp) -{ - OutColor += i.color.yzx.yx.x.x; -} - -void GetColor9(const S i, int comp) -{ - OutColor.zxy += i.color; -} - -void GetColor10(const S i, int comp) -{ - OutColor.zy += i.color.xy; -} - -void GetColor11(const S i, int comp) -{ - OutColor.zxy.yx += i.color.xy; -} - -void GetColor12(const S i, int comp) -{ - OutColor[comp] += i.color.x; -} - -void GetColor13(const S i, int comp) -{ - OutColor.zy[comp] += i.color.x; -} - -void GetColor14(const S i, int comp) -{ - OutColor.zyx[comp] = i.color.x; -} - -void main() -{ - S s; - OutColor = vec3(0.0); - GetColor1(s); - GetColor2(s, u); - GetColor3(s, u); - GetColor4(s, u); - GetColor5(s, u); - GetColor6(s, u); - GetColor7(s, u); - GetColor8(s, u); - GetColor9(s, u); - GetColor10(s, u); - GetColor11(s, u); - GetColor12(s, u); - GetColor13(s, u); - GetColor14(s, u); -} diff --git a/deps/glslang/Test/spv.aggOps.frag b/deps/glslang/Test/spv.aggOps.frag deleted file mode 100644 index bc34d7ac..00000000 --- a/deps/glslang/Test/spv.aggOps.frag +++ /dev/null @@ -1,51 +0,0 @@ -#version 450 - -uniform sampler2D samp2D; -in mediump vec2 coord; - -in vec4 u, w; -out vec4 color; - -struct s1 { - int i; - float f; -}; - -struct s2 { - int i; - float f; - s1 s1_1; -}; - -layout(std140) uniform ub1 { s2 foo2a; } uName1; -layout(std430) buffer ub2 { s2 foo2b; } uName2; - -void main() -{ - vec4 v; - s1 a[3], b[3]; - a = s1[3](s1(int(u.x), u.y), s1(int(u.z), u.w), s1(14, 14.0)); - b = s1[3](s1(17, 17.0), s1(int(w.x), w.y), s1(int(w.z), w.w)); - - if (uName1.foo2a == uName2.foo2b) - v = texture(samp2D, coord); - else - v = texture(samp2D, 2.0*coord); - - if (u == v) - v *= 3.0; - - if (u != v) - v *= 4.0; - - if (coord == v.yw) - v *= 5.0; - - if (a == b) - v *= 6.0; - - if (a != b) - v *= 7.0; - - color = v; -} diff --git a/deps/glslang/Test/spv.always-discard.frag b/deps/glslang/Test/spv.always-discard.frag deleted file mode 100644 index 6cd4d04f..00000000 --- a/deps/glslang/Test/spv.always-discard.frag +++ /dev/null @@ -1,36 +0,0 @@ -#version 140 -in vec2 tex_coord; - -void main (void) -{ - vec4 white = vec4(1.0); - vec4 black = vec4(0.2); - vec4 color = white; - - // First, cut out our circle - float x = tex_coord.x*2.0 - 1.0; - float y = tex_coord.y*2.0 - 1.0; - - float radius = sqrt(x*x + y*y); - if (radius > 1.0) { - if (radius > 1.1) { - ++color; - } - - gl_FragColor = color; - - if (radius > 1.2) { - ++color; - } - - } - - discard; - - // If we're near an edge, darken us a tiny bit - if (radius >= 0.75) - color -= abs(pow(radius, 16.0)/2.0); - - gl_FragColor = color; - -} diff --git a/deps/glslang/Test/spv.always-discard2.frag b/deps/glslang/Test/spv.always-discard2.frag deleted file mode 100644 index 2b125f32..00000000 --- a/deps/glslang/Test/spv.always-discard2.frag +++ /dev/null @@ -1,19 +0,0 @@ -#version 140 -in vec2 tex_coord; - -void main (void) -{ - vec4 white = vec4(1.0); - vec4 black = vec4(0.2); - vec4 color = white; - - // First, cut out our circle - float x = tex_coord.x*2.0 - 1.0; - float y = tex_coord.y*2.0 - 1.0; - - discard; - - - gl_FragColor = color; - -} diff --git a/deps/glslang/Test/spv.arbPostDepthCoverage.frag b/deps/glslang/Test/spv.arbPostDepthCoverage.frag deleted file mode 100644 index 03b61cb5..00000000 --- a/deps/glslang/Test/spv.arbPostDepthCoverage.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 - -#extension GL_ARB_post_depth_coverage : enable -#extension GL_EXT_post_depth_coverage : enable //according to ARB_post_depth_coverage, - //if both enabled, this one should be ignored -precision highp int; -layout(post_depth_coverage) in; - -layout (location = 0) out int readSampleMaskIn; - -void main () { - readSampleMaskIn = gl_SampleMaskIn[0]; -} diff --git a/deps/glslang/Test/spv.arbPostDepthCoverage_Error.frag b/deps/glslang/Test/spv.arbPostDepthCoverage_Error.frag deleted file mode 100644 index 652933b8..00000000 --- a/deps/glslang/Test/spv.arbPostDepthCoverage_Error.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 310 es - -#extension GL_ARB_post_depth_coverage : enable - -precision highp float; - -layout(post_depth_coverage, location = 0) in float a; // should fail since post_depth_coverage may only - // be declared on in only (not with variable declarations) - -void main () { - -} diff --git a/deps/glslang/Test/spv.atomic.comp b/deps/glslang/Test/spv.atomic.comp deleted file mode 100644 index 8ab846e4..00000000 --- a/deps/glslang/Test/spv.atomic.comp +++ /dev/null @@ -1,48 +0,0 @@ -#version 450 - - - -layout(binding = 0) uniform atomic_uint counter; - -layout(binding = 0, offset = 4) uniform atomic_uint countArr[4]; -shared uint value; - -int arrX[gl_WorkGroupSize.x]; -int arrY[gl_WorkGroupSize.y]; -int arrZ[gl_WorkGroupSize.z]; - -uint func(atomic_uint c) -{ - return atomicCounterIncrement(c); -} - -void main() -{ - memoryBarrierAtomicCounter(); - func(counter); - uint val = atomicCounter(countArr[2]); - atomicCounterDecrement(counter); - atomicCounterIncrement(counter); -} - -shared int atomi; -shared uint atomu; - -layout (std140, binding = 0) restrict buffer dataSSB -{ - float f; - ivec4 n_frames_rendered; -} result; - -void atoms() -{ - int origi = atomicAdd(atomi, 3); - uint origu = atomicAnd(atomu, value); - origu = atomicOr(atomu, 7u); - origu = atomicXor(atomu, 7u); - origu = atomicMin(atomu, value); - origi = atomicMax(atomi, 7); - origi = atomicExchange(atomi, origi); - origu = atomicCompSwap(atomu, 10u, value); - atomicAdd(result.n_frames_rendered.z, 1); -} diff --git a/deps/glslang/Test/spv.atomicAdd.bufferReference.comp b/deps/glslang/Test/spv.atomicAdd.bufferReference.comp deleted file mode 100644 index fdd031d0..00000000 --- a/deps/glslang/Test/spv.atomicAdd.bufferReference.comp +++ /dev/null @@ -1,50 +0,0 @@ -#version 450 core -#pragma use_vulkan_memory_model -#extension GL_KHR_shader_subgroup_basic : enable -#extension GL_KHR_shader_subgroup_shuffle : enable -#extension GL_KHR_shader_subgroup_ballot : enable -#extension GL_KHR_memory_scope_semantics : enable -#extension GL_ARB_gpu_shader_int64 : enable -#extension GL_EXT_buffer_reference : enable -// DIM/NUM_WORKGROUP_EACH_DIM overriden by spec constants -layout(constant_id = 0) const int DIM = 1; -layout(constant_id = 1) const int NUM_WORKGROUP_EACH_DIM = 1; -shared bool sharedSkip; -layout(local_size_x_id = 0, local_size_y_id = 0, local_size_z = 1) in; -layout(buffer_reference) buffer PayloadRef { uint x[]; }; -layout(buffer_reference) buffer GuardRef { uint x[]; }; -layout(set=0, binding=2) buffer Fail { uint x[]; } fail; -layout (push_constant, std430) uniform PC { - layout(offset = 0) PayloadRef payloadref; -layout(offset = 8) GuardRef guard; -}; -void main() -{ - bool pass = true; - bool skip = false; - sharedSkip = false; - nonprivate PayloadRef payload = payloadref; - ivec2 globalId = ivec2(gl_GlobalInvocationID.xy); - ivec2 partnerGlobalId = ivec2(DIM*NUM_WORKGROUP_EACH_DIM-1) - ivec2(gl_GlobalInvocationID.xy); - uint bufferCoord = globalId.y * DIM*NUM_WORKGROUP_EACH_DIM + globalId.x; - uint partnerBufferCoord = partnerGlobalId.y * DIM*NUM_WORKGROUP_EACH_DIM + partnerGlobalId.x; - ivec2 imageCoord = globalId; - ivec2 partnerImageCoord = partnerGlobalId; - ivec2 globalId00 = ivec2(DIM) * ivec2(gl_WorkGroupID.xy); - ivec2 partnerGlobalId00 = ivec2(DIM) * (ivec2(NUM_WORKGROUP_EACH_DIM-1) - ivec2(gl_WorkGroupID.xy)); - uint bufferCoord00 = globalId00.y * DIM*NUM_WORKGROUP_EACH_DIM + globalId00.x; - uint partnerBufferCoord00 = partnerGlobalId00.y * DIM*NUM_WORKGROUP_EACH_DIM + partnerGlobalId00.x; - ivec2 imageCoord00 = globalId00; - ivec2 partnerImageCoord00 = partnerGlobalId00; - payload.x[bufferCoord] = bufferCoord + (payload.x[partnerBufferCoord]>>31); - controlBarrier(gl_ScopeWorkgroup, gl_ScopeWorkgroup, gl_StorageSemanticsBuffer | gl_StorageSemanticsShared, gl_SemanticsAcquireRelease | gl_SemanticsMakeAvailable); - if (all(equal(gl_LocalInvocationID.xy, ivec2(0,0)))) { - atomicStore(guard.x[bufferCoord], uint(1u), gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsRelease | gl_SemanticsMakeAvailable); - skip = atomicLoad(guard.x[partnerBufferCoord00], gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsAcquire | gl_SemanticsMakeVisible) == 0; - sharedSkip = skip; - } - controlBarrier(gl_ScopeWorkgroup, gl_ScopeWorkgroup, gl_StorageSemanticsBuffer | gl_StorageSemanticsShared, gl_SemanticsAcquireRelease | gl_SemanticsMakeVisible); - skip = sharedSkip; - uint r = payload.x[partnerBufferCoord]; - if (!skip && r != uint(partnerBufferCoord)) { fail.x[bufferCoord] = 1; } -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.atomicCounter.comp b/deps/glslang/Test/spv.atomicCounter.comp deleted file mode 100644 index ecb23044..00000000 --- a/deps/glslang/Test/spv.atomicCounter.comp +++ /dev/null @@ -1,26 +0,0 @@ -#version 450 - - - -layout(binding = 0) uniform atomic_uint counter; - -layout(binding = 0, offset = 4) uniform atomic_uint countArr[4]; -shared uint value; - -int arrX[gl_WorkGroupSize.x]; -int arrY[gl_WorkGroupSize.y]; -int arrZ[gl_WorkGroupSize.z]; - -uint func(atomic_uint c) -{ - return atomicCounterIncrement(c); -} - -void main() -{ - memoryBarrierAtomicCounter(); - func(counter); - uint val = atomicCounter(countArr[2]); - atomicCounterDecrement(counter); - atomicCounterIncrement(counter); -} diff --git a/deps/glslang/Test/spv.atomicFloat.comp b/deps/glslang/Test/spv.atomicFloat.comp deleted file mode 100644 index 2022734c..00000000 --- a/deps/glslang/Test/spv.atomicFloat.comp +++ /dev/null @@ -1,197 +0,0 @@ -#version 450 core - -#extension GL_KHR_memory_scope_semantics : enable -#extension GL_EXT_shader_atomic_float: enable -#pragma use_vulkan_memory_model - -layout(local_size_x = 16, local_size_y = 16) in; - -layout(binding = 0) buffer Buffer -{ - float dataf; - double datad; -} buf; - -shared float atomf; -shared double atomd; - -layout(binding = 0, r32f) volatile coherent uniform image1D fimage1D; -layout(binding = 1, r32f) volatile coherent uniform image1DArray fimage1DArray; -layout(binding = 2, r32f) volatile coherent uniform image2D fimage2D; -layout(binding = 3, r32f) volatile coherent uniform image2DArray fimage2DArray; -layout(binding = 4, r32f) volatile coherent uniform image2DRect fimage2DRect; -layout(binding = 5, r32f) volatile coherent uniform imageCube fimageCube; -layout(binding = 6, r32f) volatile coherent uniform imageCubeArray fimageCubeArray; -layout(binding = 9, r32f) volatile coherent uniform image3D fimage3D; - -void main() -{ - //atomicAdd - float resultf = 0; - resultf = atomicAdd(atomf, 3.0); - resultf = atomicAdd(atomf, 4.5, gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsRelaxed); - resultf = atomicAdd(buf.dataf, 3.0); - resultf = atomicAdd(buf.dataf, 4.5, gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsRelaxed); - - double resultd = 0; - resultd = atomicAdd(atomd, 3.0); - resultd = atomicAdd(atomd, 4.5, gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsRelaxed); - resultd = atomicAdd(buf.datad, 3.0); - resultd = atomicAdd(buf.datad, 4.5, gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsRelaxed); - - //atomicExchange - resultf = atomicExchange(buf.dataf, resultf); - buf.dataf += resultf; - resultf = atomicExchange(buf.dataf, resultf, gl_ScopeDevice, gl_StorageSemanticsShared, gl_SemanticsRelaxed); - buf.dataf += resultf; - resultf = atomicExchange(atomf, resultf); - buf.dataf += resultf; - resultf = atomicExchange(atomf, resultf, gl_ScopeDevice, gl_StorageSemanticsShared, gl_SemanticsRelaxed); - buf.dataf += resultf; - - resultd = atomicExchange(buf.datad, resultd); - buf.datad += resultd; - resultd = atomicExchange(buf.datad, resultd, gl_ScopeDevice, gl_StorageSemanticsShared, gl_SemanticsRelaxed); - buf.datad += resultd; - resultd = atomicExchange(atomd, resultd); - buf.datad += resultd; - resultd = atomicExchange(atomd, resultd, gl_ScopeDevice, gl_StorageSemanticsShared, gl_SemanticsRelaxed); - buf.datad += resultd; - - //atomic load/store - resultf = atomicLoad(buf.dataf, gl_ScopeDevice, gl_StorageSemanticsShared, gl_SemanticsRelaxed); - atomicStore(buf.dataf, resultf, gl_ScopeDevice, gl_StorageSemanticsShared, gl_SemanticsRelaxed); - buf.dataf += resultf; - - resultf = atomicLoad(atomf, gl_ScopeDevice, gl_StorageSemanticsShared, gl_SemanticsRelaxed); - atomicStore(atomf, resultf, gl_ScopeDevice, gl_StorageSemanticsShared, gl_SemanticsRelaxed); - buf.dataf += resultf; - - resultd = atomicLoad(buf.datad, gl_ScopeDevice, gl_StorageSemanticsShared, gl_SemanticsRelaxed); - atomicStore(buf.datad, resultd, gl_ScopeDevice, gl_StorageSemanticsShared, gl_SemanticsRelaxed); - buf.datad += resultd; - - resultd = atomicLoad(atomd, gl_ScopeDevice, gl_StorageSemanticsShared, gl_SemanticsRelaxed); - atomicStore(atomd, resultd, gl_ScopeDevice, gl_StorageSemanticsShared, gl_SemanticsRelaxed); - buf.datad += resultd; - - // image atomics on 1D: - atomf = imageAtomicAdd(fimage1D, int(0), 2.0); - buf.dataf += atomf; - atomf = imageAtomicAdd(fimage1D, int(1), 3.0, gl_ScopeDevice, gl_StorageSemanticsImage , gl_SemanticsRelaxed); - buf.dataf += atomf; - - atomf = imageAtomicExchange(fimage1D, int(1), 4.0, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - buf.dataf += atomf; - - atomf = imageAtomicLoad(fimage1D, int(1), gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - buf.dataf += atomf; - - imageAtomicStore(fimage1D, int(2), atomf, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - buf.dataf += atomf; - - // image atomics on 1D Array: - atomf = imageAtomicAdd(fimage1DArray, ivec2(0,0), 2.0); - buf.dataf += atomf; - atomf = imageAtomicAdd(fimage1DArray, ivec2(1,1), 3.0, gl_ScopeDevice, gl_StorageSemanticsImage , gl_SemanticsRelaxed); - buf.dataf += atomf; - - atomf = imageAtomicExchange(fimage1DArray, ivec2(1,0), 4.0, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - buf.dataf += atomf; - - atomf = imageAtomicLoad(fimage1DArray, ivec2(1,1), gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - buf.dataf += atomf; - - imageAtomicStore(fimage1DArray, ivec2(2,2), atomf, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - buf.dataf += atomf; - - // image atomics on 2D: - atomf = imageAtomicAdd(fimage2D, ivec2(0,0), 2.0); - buf.dataf += atomf; - atomf = imageAtomicAdd(fimage2D, ivec2(1,1), 3.0, gl_ScopeDevice, gl_StorageSemanticsImage , gl_SemanticsRelaxed); - buf.dataf += atomf; - - atomf = imageAtomicExchange(fimage2D, ivec2(1,0), 4.0, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - buf.dataf += atomf; - - atomf = imageAtomicLoad(fimage2D, ivec2(1,1), gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - buf.dataf += atomf; - - imageAtomicStore(fimage2D, ivec2(2,2), atomf, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - buf.dataf += atomf; - - // image atomics on 2D Rect: - atomf = imageAtomicAdd(fimage2DRect, ivec2(0,0), 2.0); - buf.dataf += atomf; - atomf = imageAtomicAdd(fimage2DRect, ivec2(1,1), 3.0, gl_ScopeDevice, gl_StorageSemanticsImage , gl_SemanticsRelaxed); - buf.dataf += atomf; - - atomf = imageAtomicExchange(fimage2DRect, ivec2(1,0), 4.0, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - buf.dataf += atomf; - - atomf = imageAtomicLoad(fimage2DRect, ivec2(1,1), gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - buf.dataf += atomf; - - imageAtomicStore(fimage2DRect, ivec2(2,2), atomf, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - buf.dataf += atomf; - - // image atomics on 2D Array: - atomf = imageAtomicAdd(fimage2DArray, ivec3(0,0,0), 2.0); - buf.dataf += atomf; - atomf = imageAtomicAdd(fimage2DArray, ivec3(1,1,0), 3.0, gl_ScopeDevice, gl_StorageSemanticsImage , gl_SemanticsRelaxed); - buf.dataf += atomf; - - atomf = imageAtomicExchange(fimage2DArray, ivec3(1,0,1), 4.0, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - buf.dataf += atomf; - - atomf = imageAtomicLoad(fimage2DArray, ivec3(1,1,1), gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - buf.dataf += atomf; - - imageAtomicStore(fimage2DArray, ivec3(2,2,0), atomf, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - buf.dataf += atomf; - - // image atomics on Cube: - atomf = imageAtomicAdd(fimageCube, ivec3(0,0,0), 2.0); - buf.dataf += atomf; - atomf = imageAtomicAdd(fimageCube, ivec3(1,1,0), 3.0, gl_ScopeDevice, gl_StorageSemanticsImage , gl_SemanticsRelaxed); - buf.dataf += atomf; - - atomf = imageAtomicExchange(fimageCube, ivec3(1,0,0), 4.0, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - buf.dataf += atomf; - - atomf = imageAtomicLoad(fimageCube, ivec3(1,1,1), gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - buf.dataf += atomf; - - imageAtomicStore(fimageCube, ivec3(2,2,1), atomf, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - buf.dataf += atomf; - - // image atomics on Cube Array: - atomf = imageAtomicAdd(fimageCubeArray, ivec3(0,0,0), 2.0); - buf.dataf += atomf; - atomf = imageAtomicAdd(fimageCubeArray, ivec3(1,1,0), 3.0, gl_ScopeDevice, gl_StorageSemanticsImage , gl_SemanticsRelaxed); - buf.dataf += atomf; - - atomf = imageAtomicExchange(fimageCubeArray, ivec3(1,0,1), 4.0, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - buf.dataf += atomf; - - atomf = imageAtomicLoad(fimageCubeArray, ivec3(1,1,1), gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - buf.dataf += atomf; - - imageAtomicStore(fimageCubeArray, ivec3(2,2,0), atomf, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - buf.dataf += atomf; - - // image atomics on 3D: - atomf = imageAtomicAdd(fimage3D, ivec3(0,0,0), 2.0); - buf.dataf += atomf; - atomf = imageAtomicAdd(fimage3D, ivec3(1,1,0), 3.0, gl_ScopeDevice, gl_StorageSemanticsImage , gl_SemanticsRelaxed); - buf.dataf += atomf; - - atomf = imageAtomicExchange(fimage3D, ivec3(1,0,1), 4.0, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - buf.dataf += atomf; - - atomf = imageAtomicLoad(fimage3D, ivec3(1,1,1), gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - buf.dataf += atomf; - - imageAtomicStore(fimage3D, ivec3(2,2,0), atomf, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - buf.dataf += atomf; -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.atomicFloat2.comp b/deps/glslang/Test/spv.atomicFloat2.comp deleted file mode 100644 index 09235c5e..00000000 --- a/deps/glslang/Test/spv.atomicFloat2.comp +++ /dev/null @@ -1,179 +0,0 @@ -#version 450 core - -#extension GL_KHR_memory_scope_semantics : enable -#extension GL_EXT_shader_explicit_arithmetic_types_float16 : enable -#extension GL_EXT_shader_atomic_float2: enable -#pragma use_vulkan_memory_model - -layout(local_size_x = 16, local_size_y = 16) in; - -layout(binding = 0) buffer Buffer -{ - float16_t datah; - float dataf; - double datad; -} buf; - -shared float16_t atomh; -shared float atomf; -shared double atomd; - -layout(binding = 0, r32f) volatile coherent uniform image1D fimage1D; -layout(binding = 1, r32f) volatile coherent uniform image1DArray fimage1DArray; -layout(binding = 2, r32f) volatile coherent uniform image2D fimage2D; -layout(binding = 3, r32f) volatile coherent uniform image2DArray fimage2DArray; -layout(binding = 4, r32f) volatile coherent uniform image2DRect fimage2DRect; -layout(binding = 5, r32f) volatile coherent uniform imageCube fimageCube; -layout(binding = 6, r32f) volatile coherent uniform imageCubeArray fimageCubeArray; -layout(binding = 9, r32f) volatile coherent uniform image3D fimage3D; - -void main() -{ - //atomicAdd - float16_t resulth = float16_t(0.0); - resulth = atomicAdd(atomh, float16_t(3.0)); - resulth = atomicAdd(atomh, float16_t(4.5), gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsRelaxed); - resulth = atomicAdd(buf.datah, float16_t(3.0)); - resulth = atomicAdd(buf.datah, float16_t(4.5), gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsRelaxed); - - //atomicMin - resulth = atomicMin(atomh, float16_t(3.0)); - resulth = atomicMin(atomh, float16_t(4.5), gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsRelaxed); - resulth = atomicMin(buf.datah, float16_t(3.0)); - resulth = atomicMin(buf.datah, float16_t(4.5), gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsRelaxed); - - float resultf = 0.0; - resultf = atomicMin(atomf, 3.0); - resultf = atomicMin(atomf, 4.5, gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsRelaxed); - resultf = atomicMin(buf.dataf, 3.0); - resultf = atomicMin(buf.dataf, 4.5, gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsRelaxed); - - double resultd = 0.0; - resultd = atomicMin(atomd, 3.0); - resultd = atomicMin(atomd, 4.5, gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsRelaxed); - resultd = atomicMin(buf.datad, 3.0); - resultd = atomicMin(buf.datad, 4.5, gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsRelaxed); - - //atomicMax - resulth = atomicMax(atomh, float16_t(3.0)); - resulth = atomicMax(atomh, float16_t(4.5), gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsRelaxed); - resulth = atomicMax(buf.datah, float16_t(3.0)); - resulth = atomicMax(buf.datah, float16_t(4.5), gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsRelaxed); - - resultf = atomicMax(atomf, 3.0); - resultf = atomicMax(atomf, 4.5, gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsRelaxed); - resultf = atomicMax(buf.dataf, 3.0); - resultf = atomicMax(buf.dataf, 4.5, gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsRelaxed); - - resultd = atomicMax(atomd, 3.0); - resultd = atomicMax(atomd, 4.5, gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsRelaxed); - resultd = atomicMax(buf.datad, 3.0); - resultd = atomicMax(buf.datad, 4.5, gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsRelaxed); - - //atomicExchange - resulth = atomicExchange(buf.datah, resulth); - buf.datah += resulth; - resulth = atomicExchange(buf.datah, resulth, gl_ScopeDevice, gl_StorageSemanticsShared, gl_SemanticsRelaxed); - buf.datah += resulth; - resulth = atomicExchange(atomh, resulth); - buf.datah += resulth; - resulth = atomicExchange(atomh, resulth, gl_ScopeDevice, gl_StorageSemanticsShared, gl_SemanticsRelaxed); - buf.datah += resulth; - - //atomic load/store - resulth = atomicLoad(buf.datah, gl_ScopeDevice, gl_StorageSemanticsShared, gl_SemanticsRelaxed); - atomicStore(buf.datah, resulth, gl_ScopeDevice, gl_StorageSemanticsShared, gl_SemanticsRelaxed); - buf.datah += resulth; - - resulth = atomicLoad(atomh, gl_ScopeDevice, gl_StorageSemanticsShared, gl_SemanticsRelaxed); - atomicStore(atomh, resulth, gl_ScopeDevice, gl_StorageSemanticsShared, gl_SemanticsRelaxed); - buf.datah += resulth; - - // image atomics on 1D: - atomf = imageAtomicMin(fimage1D, int(0), 2.0); - buf.dataf += atomf; - atomf = imageAtomicMin(fimage1D, int(1), 3.0, gl_ScopeDevice, gl_StorageSemanticsImage , gl_SemanticsRelaxed); - buf.dataf += atomf; - - atomf = imageAtomicMax(fimage1D, int(0), 2.0); - buf.dataf += atomf; - atomf = imageAtomicMax(fimage1D, int(1), 3.0, gl_ScopeDevice, gl_StorageSemanticsImage , gl_SemanticsRelaxed); - buf.dataf += atomf; - - // image atomics on 1D Array: - atomf = imageAtomicMin(fimage1DArray, ivec2(0,0), 2.0); - buf.dataf += atomf; - atomf = imageAtomicMin(fimage1DArray, ivec2(1,1), 3.0, gl_ScopeDevice, gl_StorageSemanticsImage , gl_SemanticsRelaxed); - buf.dataf += atomf; - - atomf = imageAtomicMax(fimage1DArray, ivec2(0,0), 2.0); - buf.dataf += atomf; - atomf = imageAtomicMax(fimage1DArray, ivec2(1,1), 3.0, gl_ScopeDevice, gl_StorageSemanticsImage , gl_SemanticsRelaxed); - buf.dataf += atomf; - - // image atomics on 2D: - atomf = imageAtomicMin(fimage2D, ivec2(0,0), 2.0); - buf.dataf += atomf; - atomf = imageAtomicMin(fimage2D, ivec2(1,1), 3.0, gl_ScopeDevice, gl_StorageSemanticsImage , gl_SemanticsRelaxed); - buf.dataf += atomf; - - atomf = imageAtomicMax(fimage2D, ivec2(0,0), 2.0); - buf.dataf += atomf; - atomf = imageAtomicMax(fimage2D, ivec2(1,1), 3.0, gl_ScopeDevice, gl_StorageSemanticsImage , gl_SemanticsRelaxed); - buf.dataf += atomf; - - // image atomics on 2D Rect: - atomf = imageAtomicMin(fimage2DRect, ivec2(0,0), 2.0); - buf.dataf += atomf; - atomf = imageAtomicMin(fimage2DRect, ivec2(1,1), 3.0, gl_ScopeDevice, gl_StorageSemanticsImage , gl_SemanticsRelaxed); - buf.dataf += atomf; - - atomf = imageAtomicMax(fimage2DRect, ivec2(0,0), 2.0); - buf.dataf += atomf; - atomf = imageAtomicMax(fimage2DRect, ivec2(1,1), 3.0, gl_ScopeDevice, gl_StorageSemanticsImage , gl_SemanticsRelaxed); - buf.dataf += atomf; - - // image atomics on 2D Array: - atomf = imageAtomicMin(fimage2DArray, ivec3(0,0,0), 2.0); - buf.dataf += atomf; - atomf = imageAtomicMin(fimage2DArray, ivec3(1,1,0), 3.0, gl_ScopeDevice, gl_StorageSemanticsImage , gl_SemanticsRelaxed); - buf.dataf += atomf; - - atomf = imageAtomicMax(fimage2DArray, ivec3(0,0,0), 2.0); - buf.dataf += atomf; - atomf = imageAtomicMax(fimage2DArray, ivec3(1,1,0), 3.0, gl_ScopeDevice, gl_StorageSemanticsImage , gl_SemanticsRelaxed); - buf.dataf += atomf; - - // image atomics on Cube: - atomf = imageAtomicMin(fimageCube, ivec3(0,0,0), 2.0); - buf.dataf += atomf; - atomf = imageAtomicMin(fimageCube, ivec3(1,1,0), 3.0, gl_ScopeDevice, gl_StorageSemanticsImage , gl_SemanticsRelaxed); - buf.dataf += atomf; - - atomf = imageAtomicMax(fimageCube, ivec3(0,0,0), 2.0); - buf.dataf += atomf; - atomf = imageAtomicMax(fimageCube, ivec3(1,1,0), 3.0, gl_ScopeDevice, gl_StorageSemanticsImage , gl_SemanticsRelaxed); - buf.dataf += atomf; - - // image atomics on Cube Array: - atomf = imageAtomicMin(fimageCubeArray, ivec3(0,0,0), 2.0); - buf.dataf += atomf; - atomf = imageAtomicMin(fimageCubeArray, ivec3(1,1,0), 3.0, gl_ScopeDevice, gl_StorageSemanticsImage , gl_SemanticsRelaxed); - buf.dataf += atomf; - - atomf = imageAtomicMax(fimageCubeArray, ivec3(0,0,0), 2.0); - buf.dataf += atomf; - atomf = imageAtomicMax(fimageCubeArray, ivec3(1,1,0), 3.0, gl_ScopeDevice, gl_StorageSemanticsImage , gl_SemanticsRelaxed); - buf.dataf += atomf; - - // image atomics on 3D: - atomf = imageAtomicMin(fimage3D, ivec3(0,0,0), 2.0); - buf.dataf += atomf; - atomf = imageAtomicMin(fimage3D, ivec3(1,1,0), 3.0, gl_ScopeDevice, gl_StorageSemanticsImage , gl_SemanticsRelaxed); - buf.dataf += atomf; - - atomf = imageAtomicMax(fimage3D, ivec3(0,0,0), 2.0); - buf.dataf += atomf; - atomf = imageAtomicMax(fimage3D, ivec3(1,1,0), 3.0, gl_ScopeDevice, gl_StorageSemanticsImage , gl_SemanticsRelaxed); - buf.dataf += atomf; -} diff --git a/deps/glslang/Test/spv.atomicFloat_Error.comp b/deps/glslang/Test/spv.atomicFloat_Error.comp deleted file mode 100644 index b90b97f1..00000000 --- a/deps/glslang/Test/spv.atomicFloat_Error.comp +++ /dev/null @@ -1,112 +0,0 @@ -#version 450 core -#extension GL_KHR_memory_scope_semantics : enable -#pragma use_vulkan_memory_model - -layout(local_size_x = 16, local_size_y = 16) in; - -layout(binding = 0) buffer Buffer -{ - int datai; - float dataf; - double datad; -} buf; - -shared int atomi; -shared float atomf; -shared double atomd; - -layout(binding = 0, r32f) volatile coherent uniform image1D fimage1D; -layout(binding = 1, r32f) volatile coherent uniform image2D fimage2D; - -void undeclared_errors() -{ - //atomicAdd - float resultf = 0; - resultf = atomicAdd(atomf, 3.0); - resultf = atomicAdd(atomf, 4.5, gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsRelaxed); - resultf = atomicAdd(buf.dataf, 3.0); - resultf = atomicAdd(buf.dataf, 4.5, gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsRelaxed); - - double resultd = 0; - resultd = atomicAdd(atomd, 3.0); - resultd = atomicAdd(atomd, 4.5, gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsRelaxed); - resultd = atomicAdd(buf.datad, 3.0); - resultd = atomicAdd(buf.datad, 4.5, gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsRelaxed); - - //atomicExchange - resultf = atomicExchange(buf.dataf, resultf); - resultf = atomicExchange(buf.dataf, resultf, gl_ScopeDevice, gl_StorageSemanticsShared, gl_SemanticsRelaxed); - resultf = atomicExchange(atomf, resultf); - resultf = atomicExchange(atomf, resultf, gl_ScopeDevice, gl_StorageSemanticsShared, gl_SemanticsRelaxed); - buf.dataf += resultf; - - resultd = atomicExchange(buf.datad, resultd); - resultd = atomicExchange(buf.datad, resultd, gl_ScopeDevice, gl_StorageSemanticsShared, gl_SemanticsRelaxed); - resultd = atomicExchange(atomd, resultd); - resultd = atomicExchange(atomd, resultd, gl_ScopeDevice, gl_StorageSemanticsShared, gl_SemanticsRelaxed); - buf.datad += resultd; - - //atomic load/store - resultf = atomicLoad(buf.dataf, gl_ScopeDevice, gl_StorageSemanticsShared, gl_SemanticsRelaxed); - atomicStore(buf.dataf, resultf, gl_ScopeDevice, gl_StorageSemanticsShared, gl_SemanticsRelaxed); - resultf = atomicLoad(atomf, gl_ScopeDevice, gl_StorageSemanticsShared, gl_SemanticsRelaxed); - atomicStore(atomf, resultf, gl_ScopeDevice, gl_StorageSemanticsShared, gl_SemanticsRelaxed); - buf.dataf += resultf; - - resultd = atomicLoad(buf.datad, gl_ScopeDevice, gl_StorageSemanticsShared, gl_SemanticsRelaxed); - atomicStore(buf.datad, resultd, gl_ScopeDevice, gl_StorageSemanticsShared, gl_SemanticsRelaxed); - resultd = atomicLoad(atomd, gl_ScopeDevice, gl_StorageSemanticsShared, gl_SemanticsRelaxed); - atomicStore(atomd, resultd, gl_ScopeDevice, gl_StorageSemanticsShared, gl_SemanticsRelaxed); - buf.datad += resultd; - - // image atomics: - atomf = imageAtomicAdd(fimage2D, ivec2(0,0), 2.0); - atomf = imageAtomicAdd(fimage2D, ivec2(1,1), 3.0, gl_ScopeDevice, gl_StorageSemanticsImage , gl_SemanticsRelaxed); - atomf = imageAtomicExchange(fimage2D, ivec2(1,0), 4.0, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - atomf = imageAtomicLoad(fimage2D, ivec2(1,1), gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - imageAtomicStore(fimage2D, ivec2(2,2), atomf, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - buf.dataf += atomf; -} - -#extension GL_EXT_shader_atomic_float: enable - -void main() -{ - float resultf = 0; - double resultd = 0; - int resulti = 0; - - //atomicAdd - resultf = atomicAdd(atomi); - resultf = atomicAdd(atomi, 3.0); - resultf = atomicAdd(atomi, resultf, gl_StorageSemanticsBuffer, gl_SemanticsRelaxed); - resultf = atomicAdd(atomi, resultf, gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsRelaxed); - - //atomicExchange - resultf = atomicExchange(buf.datai); - resultf = atomicExchange(buf.datai, resultf); - resultf = atomicExchange(buf.datai, resultf, gl_StorageSemanticsShared, gl_SemanticsRelaxed); - resultf = atomicExchange(buf.datai, resultf, gl_ScopeDevice, gl_StorageSemanticsShared, gl_SemanticsRelaxed); - resultf = atomicExchange(atomi, resultf); - resultf = atomicExchange(atomi, resultf, gl_ScopeDevice, gl_StorageSemanticsShared, gl_SemanticsRelaxed); - buf.dataf += resultf; - - //atomic load/store - resultf = atomicLoad(buf.datai, gl_StorageSemanticsShared, gl_SemanticsRelaxed); - atomicStore(buf.datai, resulti, gl_StorageSemanticsShared, gl_SemanticsRelaxed); - - // image atomics: - atomf = imageAtomicAdd(fimage1D, ivec2(0,0), 2.0); - atomf = imageAtomicAdd(fimage2D, ivec3(0,0,0), 2.0); - atomf = imageAtomicAdd(fimage2D, 2.0); - atomf = imageAtomicExchange(fimage1D, ivec2(1,0), 4.0, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - atomf = imageAtomicExchange(fimage2D, 4.0, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - atomf = imageAtomicExchange(fimage2D, ivec3(1,0,1), 4.0, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - atomf = imageAtomicLoad(fimage1D, ivec2(1,1), gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - atomf = imageAtomicLoad(fimage2D, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - atomf = imageAtomicLoad(fimage2D, ivec3(1,1,1), gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - imageAtomicStore(fimage1D, ivec2(2,2), atomf, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - imageAtomicStore(fimage2D, atomf, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - imageAtomicStore(fimage2D, ivec3(2,2,1), atomf, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - buf.dataf += atomf; -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.atomicInt64.comp b/deps/glslang/Test/spv.atomicInt64.comp deleted file mode 100644 index baca4cef..00000000 --- a/deps/glslang/Test/spv.atomicInt64.comp +++ /dev/null @@ -1,79 +0,0 @@ -#version 450 core - -#extension GL_ARB_gpu_shader_int64: enable -#extension GL_NV_shader_atomic_int64: enable - -layout(local_size_x = 16, local_size_y = 16) in; - -layout(binding = 0) buffer Buffer -{ - int64_t i64; - uint64_t u64; -} buf; - -struct Struct -{ - int64_t i64; - uint64_t u64; -}; - -shared Struct s; - -void main() -{ - const int64_t i64c = -24; - const uint64_t u64c = 0xF00000000Ful; - - // Test shader storage block - int64_t i64 = 0; - uint64_t u64 = 0; - - i64 += atomicMin(buf.i64, i64c); - u64 += atomicMin(buf.u64, u64c); - - i64 += atomicMax(buf.i64, i64c); - u64 += atomicMax(buf.u64, u64c); - - i64 += atomicAnd(buf.i64, i64c); - u64 += atomicAnd(buf.u64, u64c); - - i64 += atomicOr(buf.i64, i64c); - u64 += atomicOr(buf.u64, u64c); - - i64 += atomicXor(buf.i64, i64c); - u64 += atomicXor(buf.u64, u64c); - - i64 += atomicAdd(buf.i64, i64c); - i64 += atomicExchange(buf.i64, i64c); - i64 += atomicCompSwap(buf.i64, i64c, i64); - - buf.i64 = i64; - buf.u64 = u64; - - // Test shared variable - i64 = 0; - u64 = 0; - - i64 += atomicMin(s.i64, i64c); - u64 += atomicMin(s.u64, u64c); - - i64 += atomicMax(s.i64, i64c); - u64 += atomicMax(s.u64, u64c); - - i64 += atomicAnd(s.i64, i64c); - u64 += atomicAnd(s.u64, u64c); - - i64 += atomicOr(s.i64, i64c); - u64 += atomicOr(s.u64, u64c); - - i64 += atomicXor(s.i64, i64c); - u64 += atomicXor(s.u64, u64c); - - i64 += atomicAdd(s.i64, i64c); - i64 += atomicExchange(s.i64, i64c); - i64 += atomicCompSwap(s.i64, i64c, i64); - - s.i64 = i64; - s.u64 = u64; -} - diff --git a/deps/glslang/Test/spv.atomicStoreInt64.comp b/deps/glslang/Test/spv.atomicStoreInt64.comp deleted file mode 100644 index 879c37a8..00000000 --- a/deps/glslang/Test/spv.atomicStoreInt64.comp +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 -#extension GL_EXT_shader_explicit_arithmetic_types_int64 : enable -#extension GL_EXT_shader_atomic_int64 : enable -#extension GL_KHR_memory_scope_semantics : enable - -layout(set = 0, binding = 0) buffer ssbo { uint64_t y; }; -layout(set = 0, binding = 1) uniform ubo { uint64_t z; }; - -void main() { - atomicStore(y, z, gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsRelaxed); -} diff --git a/deps/glslang/Test/spv.barrier.vert b/deps/glslang/Test/spv.barrier.vert deleted file mode 100644 index c7828ce7..00000000 --- a/deps/glslang/Test/spv.barrier.vert +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 - -layout(location=0) out vec4 c0; -layout(location=1) out vec4 c1; - -void main() -{ - c0 = vec4(1.0); - memoryBarrier(); - c1 = vec4(1.0); - memoryBarrierBuffer(); - ++c0; - memoryBarrierImage(); - ++c0; -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.bitCast.frag b/deps/glslang/Test/spv.bitCast.frag deleted file mode 100644 index 73c7e303..00000000 --- a/deps/glslang/Test/spv.bitCast.frag +++ /dev/null @@ -1,45 +0,0 @@ -#version 450 - -flat in int i1; -flat in ivec2 i2; -flat in ivec3 i3; -flat in ivec4 i4; - -flat in uint u1; -flat in uvec2 u2; -flat in uvec3 u3; -flat in uvec4 u4; - -in float f1; -in vec2 f2; -in vec3 f3; -in vec4 f4; - -out vec4 fragColor; - -void main() -{ - ivec4 idata = ivec4(0); - idata.x += floatBitsToInt(f1); - idata.xy += floatBitsToInt(f2); - idata.xyz += floatBitsToInt(f3); - idata += floatBitsToInt(f4); - - uvec4 udata = uvec4(0); - udata.x += floatBitsToUint(f1); - udata.xy += floatBitsToUint(f2); - udata.xyz += floatBitsToUint(f3); - udata += floatBitsToUint(f4); - - vec4 fdata = vec4(0.0); - fdata.x += intBitsToFloat(i1); - fdata.xy += intBitsToFloat(i2); - fdata.xyz += intBitsToFloat(i3); - fdata += intBitsToFloat(i4); - fdata.x += uintBitsToFloat(u1); - fdata.xy += uintBitsToFloat(u2); - fdata.xyz += uintBitsToFloat(u3); - fdata += uintBitsToFloat(u4); - - fragColor = (idata == udata) ? fdata : fdata + vec4(0.2); -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.bool.vert b/deps/glslang/Test/spv.bool.vert deleted file mode 100644 index f58bc55d..00000000 --- a/deps/glslang/Test/spv.bool.vert +++ /dev/null @@ -1,17 +0,0 @@ -#version 450 - -const bool condition = false; - -uniform ubname { - bool b; -} ubinst; - -bool foo(bool b) -{ - return b != condition; -} - -void main() -{ - gl_Position = foo(ubinst.b) ? vec4(0.0) : vec4(1.0); -} diff --git a/deps/glslang/Test/spv.boolInBlock.frag b/deps/glslang/Test/spv.boolInBlock.frag deleted file mode 100644 index a4f62fae..00000000 --- a/deps/glslang/Test/spv.boolInBlock.frag +++ /dev/null @@ -1,31 +0,0 @@ -#version 450 - -layout(binding = 0, std140) uniform Uniform -{ - bvec4 b4; -}; - -layout(binding = 1, std430) buffer Buffer -{ - bvec2 b2; -}; - -void foo(bvec4 paramb4, out bvec2 paramb2) -{ - bool b1 = paramb4.z; - paramb2 = bvec2(b1); -} - -layout(location = 0) out vec4 fragColor; - -void main() -{ - b2 = bvec2(0.0); - if (b4.z) - b2 = bvec2(b4.x); - if (b2.x) - foo(b4, b2); - - fragColor = vec4(b4.x && b4.y); - fragColor -= vec4(b4.x || b4.y); -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.branch-return.vert b/deps/glslang/Test/spv.branch-return.vert deleted file mode 100644 index 4b2f5d44..00000000 --- a/deps/glslang/Test/spv.branch-return.vert +++ /dev/null @@ -1,10 +0,0 @@ -#version 310 es -void main() { - switch (gl_InstanceIndex) { - case 0: return; - case 1: gl_Position = vec4(0.0); break; - case 2: return; - case 3: return; - } - gl_Position.x += 0.123; -} diff --git a/deps/glslang/Test/spv.buffer.autoassign.frag b/deps/glslang/Test/spv.buffer.autoassign.frag deleted file mode 100644 index 46442609..00000000 --- a/deps/glslang/Test/spv.buffer.autoassign.frag +++ /dev/null @@ -1,28 +0,0 @@ - -cbuffer MyUB1 : register(b5) // explicitly assigned & offsetted -{ - float g_a; - int g_b; -}; - -cbuffer MyUB2 // implicitly assigned -{ - float g_c; -}; - -cbuffer MyUB3 // implicitly assigned -{ - float g_d; -}; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - psout.Color = g_a + g_b + g_c + g_d; - return psout; -} diff --git a/deps/glslang/Test/spv.bufferhandle1.frag b/deps/glslang/Test/spv.bufferhandle1.frag deleted file mode 100644 index 14acac19..00000000 --- a/deps/glslang/Test/spv.bufferhandle1.frag +++ /dev/null @@ -1,28 +0,0 @@ -#version 450 - -#extension GL_EXT_buffer_reference : enable -#pragma use_vulkan_memory_model - -layout(buffer_reference, std430) buffer blockType { - layout(offset = 0) int a; - layout(offset = 4) int b; - layout(offset = 8) int c; - layout(offset = 12) int d; - layout(offset = 16) int e; - layout(offset = 32) int f[2]; - coherent layout(offset = 48) ivec4 g; -}; - -layout(std430) buffer t2 { - blockType f; - blockType g; -} t; - -void main() { - t.f.b = t.g.a; - - blockType j = t.f; - j.d = j.c; - j.d = j.f[1]; - j.d = j.g.y; -} diff --git a/deps/glslang/Test/spv.bufferhandle10.frag b/deps/glslang/Test/spv.bufferhandle10.frag deleted file mode 100644 index d7205632..00000000 --- a/deps/glslang/Test/spv.bufferhandle10.frag +++ /dev/null @@ -1,25 +0,0 @@ -#version 450 - -#extension GL_ARB_gpu_shader_int64 : enable -#extension GL_EXT_buffer_reference : enable - -layout(buffer_reference, std430) buffer blockType { - uint x[]; -}; - -layout(std430) buffer t2 { - blockType f; -} t; - -layout(location = 0) flat in uint i; - -void main() { - - atomicAdd(t.f.x[i], 1); - - coherent blockType b = t.f; - b.x[0] = 2; - - volatile blockType b2 = t.f; - b2.x[0] = 3; -} diff --git a/deps/glslang/Test/spv.bufferhandle11.frag b/deps/glslang/Test/spv.bufferhandle11.frag deleted file mode 100644 index 14d05dcc..00000000 --- a/deps/glslang/Test/spv.bufferhandle11.frag +++ /dev/null @@ -1,26 +0,0 @@ -#version 450 -#extension GL_EXT_shader_16bit_storage : enable -#extension GL_EXT_shader_8bit_storage : enable -#extension GL_EXT_buffer_reference : enable - -layout(std140, binding = 0) buffer AcBlock { highp uint ac_numPassed; }; - -layout(std140, buffer_reference) buffer Block -{ - uint8_t var; -}; -layout (push_constant, std430) uniform PC { - Block block; -}; - -bool compare_uint8_t (highp uint a, highp uint b) { return a == b; } - -void main (void) -{ - bool allOk = true; - allOk = allOk && compare_uint8_t(uint(block.var), 7u); - if (allOk) - ac_numPassed++; - - block.var = uint8_t(9u); -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.bufferhandle12.frag b/deps/glslang/Test/spv.bufferhandle12.frag deleted file mode 100644 index cb7ec6ad..00000000 --- a/deps/glslang/Test/spv.bufferhandle12.frag +++ /dev/null @@ -1,42 +0,0 @@ -#version 450 -#extension GL_EXT_shader_16bit_storage : enable -#extension GL_EXT_shader_8bit_storage : enable -#extension GL_EXT_buffer_reference : enable - -layout(std140, binding = 0) buffer AcBlock { highp uint ac_numPassed; }; - -layout(std430, column_major, buffer_reference) buffer BlockB -{ - float16_t a; - highp ivec2 b; -}; -layout(std430, buffer_reference) buffer BlockC -{ - mediump mat2x3 c; -}; -layout(std430, row_major, buffer_reference) buffer BlockD -{ - lowp uvec3 d; -}; -layout (push_constant, std430) uniform PC { - BlockB blockB; - BlockC blockC; - BlockD blockD; -}; - -bool compare_float (highp float a, highp float b) { return abs(a - b) < 0.05; } -bool compare_vec3 (highp vec3 a, highp vec3 b) { return compare_float(a.x, b.x)&&compare_float(a.y, b.y)&&compare_float(a.z, b.z); } -bool compare_mat2x3 (highp mat2x3 a, highp mat2x3 b){ return compare_vec3(a[0], b[0])&&compare_vec3(a[1], b[1]); } -bool compare_ivec2 (highp ivec2 a, highp ivec2 b) { return a == b; } -bool compare_uvec3 (highp uvec3 a, highp uvec3 b) { return a == b; } -bool compare_float16_t(highp float a, highp float b) { return abs(a - b) < 0.05; } - -void main (void) -{ - bool allOk = true; - allOk = allOk && compare_mat2x3(blockC.c, mat2x3(-5.0, 1.0, -7.0, 1.0, 2.0, 8.0)); - if (allOk) - ac_numPassed++; - - blockD.d = (uvec3(8u, 1u, 5u)); -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.bufferhandle13.frag b/deps/glslang/Test/spv.bufferhandle13.frag deleted file mode 100644 index 1538d90b..00000000 --- a/deps/glslang/Test/spv.bufferhandle13.frag +++ /dev/null @@ -1,30 +0,0 @@ -#version 450 - -#extension GL_EXT_buffer_reference : enable - -layout(set = 1, binding = 2, buffer_reference, std430) buffer t4 { - layout(offset = 0) int j; -}; - -layout(std430) buffer t5 { - t4 m; -} s5; - -t4 f1(const t4 y) { return y; } -t4 f2(t4 y) { return y; } -t4 f3(const restrict t4 y) { return y; } -t4 f4(restrict t4 y) { return y; } - -t4 g1; -restrict t4 g2; - -void main() -{ - t4 a = s5.m; - restrict t4 b = s5.m; - - f1(a); - f2(a); - f3(a); - f4(a); -} diff --git a/deps/glslang/Test/spv.bufferhandle14.frag b/deps/glslang/Test/spv.bufferhandle14.frag deleted file mode 100644 index 132af69f..00000000 --- a/deps/glslang/Test/spv.bufferhandle14.frag +++ /dev/null @@ -1,40 +0,0 @@ -#version 450 - -#extension GL_EXT_buffer_reference : enable - -layout(buffer_reference, std430, buffer_reference_align = 4) buffer T1 { - int i; - int j; - int k; -}; - -layout(buffer_reference, std430, buffer_reference_align = 8) buffer T2 { - int i; - int j; - int k; -}; - -layout(buffer_reference, std430) buffer T3 { - int i; - int j; - int k; -}; - -layout(buffer_reference, std430, buffer_reference_align = 32) buffer T4 { - int i; - int j; - int k; -}; - -void main() -{ - T1 t1; - T2 t2; - T3 t3; - T4 t4; - - t1.i = t1.k; - t2.i = t2.k; - t3.i = t3.k; - t4.i = t4.k; -} diff --git a/deps/glslang/Test/spv.bufferhandle15.frag b/deps/glslang/Test/spv.bufferhandle15.frag deleted file mode 100644 index ca645937..00000000 --- a/deps/glslang/Test/spv.bufferhandle15.frag +++ /dev/null @@ -1,38 +0,0 @@ -#version 450 - -#extension GL_EXT_buffer_reference : enable -#extension GL_EXT_scalar_block_layout : enable - -layout(buffer_reference, scalar) buffer T1 { - vec3 x[]; -}; - -layout(buffer_reference, scalar) buffer T2 { - vec3 x[][4][2]; -}; - -struct S -{ - highp ivec3 a; - mediump mat3 b[4]; - highp vec4 c; -}; - -layout(buffer_reference, scalar) buffer T3 { - S s; -}; -layout(std430) buffer T4 { - T1 t1; - T2 t2; - T3 t3; -} t4; - -layout(location = 0) flat in int i; - -void main() -{ - vec3 y; - y = t4.t1.x[i]; - y = t4.t2.x[i][i][i]; - mat3 z = t4.t3.s.b[0]; -} diff --git a/deps/glslang/Test/spv.bufferhandle16.frag b/deps/glslang/Test/spv.bufferhandle16.frag deleted file mode 100644 index 168148cc..00000000 --- a/deps/glslang/Test/spv.bufferhandle16.frag +++ /dev/null @@ -1,26 +0,0 @@ -#version 450 - -#extension GL_EXT_shader_explicit_arithmetic_types_int64 : enable -#extension GL_EXT_buffer_reference : enable -#extension GL_EXT_scalar_block_layout : enable - -layout(buffer_reference) buffer T1 { - int x; - bool y; -}; -layout(buffer_reference) buffer T2 { - int x; -}; - -const int s = int(uint64_t(T1(T2(uint64_t(3))))); -int x[s]; -const uint64_t t = uint64_t(true ? T2(uint64_t(10)) : T2(uint64_t(11))); - -void main() -{ - T1 a = T1(uint64_t(4)), b = T1(uint64_t(5)); - T1 c = true ? a : b; - T1 d = (a,b); - T1 e = true ? T1(uint64_t(6)) : T1(uint64_t(7)); - T1 f = a.y ? T1(uint64_t(8)) : T1(uint64_t(9)); -} diff --git a/deps/glslang/Test/spv.bufferhandle17_Errors.frag b/deps/glslang/Test/spv.bufferhandle17_Errors.frag deleted file mode 100644 index e9997d58..00000000 --- a/deps/glslang/Test/spv.bufferhandle17_Errors.frag +++ /dev/null @@ -1,20 +0,0 @@ -#version 450 - -#extension GL_EXT_shader_explicit_arithmetic_types_int64 : enable -#extension GL_EXT_buffer_reference : enable -#extension GL_EXT_scalar_block_layout : enable - -layout(buffer_reference) buffer T1 { - int x; -}; - -const T1 a = T1(uint64_t(2)); - -void main() -{ - T1 b, c; - const T1 d = b; - - b == c; - b != c; -} diff --git a/deps/glslang/Test/spv.bufferhandle18.frag b/deps/glslang/Test/spv.bufferhandle18.frag deleted file mode 100644 index 64517fe1..00000000 --- a/deps/glslang/Test/spv.bufferhandle18.frag +++ /dev/null @@ -1,59 +0,0 @@ -#version 450 - -#extension GL_EXT_shader_explicit_arithmetic_types_int64 : enable -#extension GL_EXT_buffer_reference2 : enable -#extension GL_EXT_scalar_block_layout : enable - -layout(buffer_reference, buffer_reference_align = 8) buffer T1 { - int x; - bool y; -}; -layout(buffer_reference, buffer_reference_align = 64) buffer T2 { - int x; -}; - -const int s = int(uint64_t(T1(T2(uint64_t(3))))); -int x[s]; -const uint64_t t = uint64_t(true ? T2(uint64_t(10)) : T2(uint64_t(11))); - - -#define sizeof(T) (uint64_t(T(uint64_t(0))+1)) - -const uint64_t s2 = sizeof(T1); -uint buf[int(s2)]; - - -void main() -{ - T1 a = T1(uint64_t(4)), b = T1(uint64_t(5)); - T1 c = true ? a : b; - T1 d = (a,b); - T1 e = true ? T1(uint64_t(6)) : T1(uint64_t(7)); - T1 f = a.y ? T1(uint64_t(8)) : T1(uint64_t(9)); - - f[3].x = 1; - (f+5).x = 1; - - T1 arr[2] = {a, f}; - arr[1][7].x = 1; - int i; - arr[i][i].x = 1; - // Since we don't distinguish between "pointer" and "reference" type, - // a reference type can have [] applied to it repeatedly and it has - // the effect of adding up the indices. - arr[i][i][i][i][i][i][i].x = 1; - - T1 j; - j = j+1; - j = j-2; - j += 3; - j -= 4; - j = 5+j; - T1 k = j + 6; - int64_t x = k - j; - uint64_t y = sizeof(T1); - k = k + (-1); - - T2 m; - m = m+1; -} diff --git a/deps/glslang/Test/spv.bufferhandle19_Errors.frag b/deps/glslang/Test/spv.bufferhandle19_Errors.frag deleted file mode 100644 index 75f53e6e..00000000 --- a/deps/glslang/Test/spv.bufferhandle19_Errors.frag +++ /dev/null @@ -1,32 +0,0 @@ -#version 450 - -#extension GL_EXT_shader_explicit_arithmetic_types_int64 : enable -#extension GL_EXT_buffer_reference2 : enable -#extension GL_EXT_scalar_block_layout : enable - -layout(buffer_reference) buffer T1 { - int x[]; -}; - -layout(buffer_reference) buffer T2 { - int x[2]; -}; - -void main() -{ - T1 a; - a+1; - a-1; - 1+a; - a-a; - a+=1; - a-=1; - a+=a; - a-=a; - - T2 b; - b+=b; - b-=b; - b+b; - 1-b; -} diff --git a/deps/glslang/Test/spv.bufferhandle2.frag b/deps/glslang/Test/spv.bufferhandle2.frag deleted file mode 100644 index 497e5509..00000000 --- a/deps/glslang/Test/spv.bufferhandle2.frag +++ /dev/null @@ -1,25 +0,0 @@ -#version 450 - -#extension GL_EXT_buffer_reference : enable - -layout(buffer_reference, std430) buffer blockType { - layout(offset = 0) int a; - layout(offset = 4) int b; - layout(offset = 8) int c; - layout(offset = 12) int d; - layout(offset = 16) int e; -}; - -layout(std430) buffer t2 { - blockType f; - blockType g; -} t; - -void main() { - - blockType b1[2] = blockType[2](t.f, t.g); - b1[0].a = b1[1].b; - blockType b2 = t.f; - blockType b3 = t.g; - b2.a = b3.b; -} diff --git a/deps/glslang/Test/spv.bufferhandle3.frag b/deps/glslang/Test/spv.bufferhandle3.frag deleted file mode 100644 index 6dddf20b..00000000 --- a/deps/glslang/Test/spv.bufferhandle3.frag +++ /dev/null @@ -1,25 +0,0 @@ -#version 450 - -#extension GL_EXT_buffer_reference : enable - -layout(buffer_reference, std430) buffer t3 { - int h; -}; - -layout(set = 1, binding = 2, buffer_reference, std430) buffer t4 { - layout(offset = 0) int j; - t3 k; -} x; - -layout(std430) buffer t5 { - t4 m; -} s5; - -flat in t4 k; - -t4 foo(t4 y) { return y; } - -void main() { - foo(s5.m).j = s5.m.k.h; - x.j = k.k.h; -} diff --git a/deps/glslang/Test/spv.bufferhandle4.frag b/deps/glslang/Test/spv.bufferhandle4.frag deleted file mode 100644 index 16a02cbf..00000000 --- a/deps/glslang/Test/spv.bufferhandle4.frag +++ /dev/null @@ -1,26 +0,0 @@ -#version 450 - -#extension GL_EXT_buffer_reference : enable - -layout(buffer_reference) buffer t4; - -layout(buffer_reference, std430) buffer t3 { - int h; - t4 i; -}; - -layout(set = 1, binding = 2, buffer_reference, std430) buffer t4 { - layout(offset = 0) int j; - t3 k; -} x; - -layout(std430) buffer t5 { - t4 m; -} s5; - -void main() { - x.k.h = s5.m.k.i.k.i.k.h; - - bool b = true; - s5.m = b ? s5.m : s5.m.k.i; -} diff --git a/deps/glslang/Test/spv.bufferhandle5.frag b/deps/glslang/Test/spv.bufferhandle5.frag deleted file mode 100644 index 6ad51881..00000000 --- a/deps/glslang/Test/spv.bufferhandle5.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 - -#extension GL_EXT_buffer_reference : enable - -layout(buffer_reference, std140) buffer t3 { - int h; -}; - -layout(set = 1, binding = 2, std140) uniform t4 { - layout(offset = 0) int j; - t3 k; -} x; - -void main() { - x.k.h = x.j; -} diff --git a/deps/glslang/Test/spv.bufferhandle6.frag b/deps/glslang/Test/spv.bufferhandle6.frag deleted file mode 100644 index dcc30d00..00000000 --- a/deps/glslang/Test/spv.bufferhandle6.frag +++ /dev/null @@ -1,30 +0,0 @@ -#version 450 core - -#extension GL_EXT_buffer_reference : enable -layout (push_constant, std430) uniform Block { int identity[32]; } pc; -layout(r32ui, set = 3, binding = 0) uniform uimage2D image0_0; -layout(buffer_reference) buffer T1; -layout(set = 3, binding = 1, buffer_reference) buffer T1 { - layout(offset = 0) int a[2]; // stride = 4 for std430, 16 for std140 - layout(offset = 32) int b; - layout(offset = 48) T1 c[2]; // stride = 8 for std430, 16 for std140 - layout(offset = 80) T1 d; -} x; -void main() -{ - int accum = 0, temp; - accum |= x.a[0] - 0; - accum |= x.a[pc.identity[1]] - 1; - accum |= x.b - 2; - accum |= x.c[0].a[0] - 3; - accum |= x.c[0].a[pc.identity[1]] - 4; - accum |= x.c[0].b - 5; - accum |= x.c[pc.identity[1]].a[0] - 6; - accum |= x.c[pc.identity[1]].a[pc.identity[1]] - 7; - accum |= x.c[pc.identity[1]].b - 8; - accum |= x.d.a[0] - 9; - accum |= x.d.a[pc.identity[1]] - 10; - accum |= x.d.b - 11; - uvec4 color = (accum != 0) ? uvec4(0,0,0,0) : uvec4(1,0,0,1); - imageStore(image0_0, ivec2(gl_FragCoord.x, gl_FragCoord.y), color); -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.bufferhandle7.frag b/deps/glslang/Test/spv.bufferhandle7.frag deleted file mode 100644 index dbc9b2f1..00000000 --- a/deps/glslang/Test/spv.bufferhandle7.frag +++ /dev/null @@ -1,24 +0,0 @@ -#version 450 - -#extension GL_EXT_buffer_reference : enable - -layout(buffer_reference, std430) buffer blockType { - layout(offset = 0) int a; - layout(offset = 4) int b; - layout(offset = 8) int c; - layout(offset = 12) int d; - layout(offset = 16) int e; -}; - -layout(std430, buffer_reference) buffer t2 { - blockType f; - blockType g; -} t; - -layout(std430) buffer t3 { - t2 f; -} u; - -void main() { - t.f = blockType(u.f); -} diff --git a/deps/glslang/Test/spv.bufferhandle8.frag b/deps/glslang/Test/spv.bufferhandle8.frag deleted file mode 100644 index 1bc13c3c..00000000 --- a/deps/glslang/Test/spv.bufferhandle8.frag +++ /dev/null @@ -1,32 +0,0 @@ -#version 450 - -#extension GL_EXT_buffer_reference : enable - -layout(buffer_reference, std430) buffer blockType { - layout(offset = 0) int a; - layout(offset = 4) int b; - layout(offset = 8) int c; - layout(offset = 12) int d; - layout(offset = 16) int e; -}; - -layout(std430) buffer t2 { - blockType f; - blockType g; -} t; - -layout(std430, buffer_reference) buffer T2 { int x; }; -layout(std430, buffer_reference) buffer T1 { int x; }; - -struct Blah { - T1 t1; - T2 t2; -}; - -layout(set=0, binding=0) buffer T3 { - Blah Bindings[]; -} t3; - -void main() { - t3.Bindings[0] = t3.Bindings[1]; -} diff --git a/deps/glslang/Test/spv.bufferhandle9.frag b/deps/glslang/Test/spv.bufferhandle9.frag deleted file mode 100644 index 7c9f6085..00000000 --- a/deps/glslang/Test/spv.bufferhandle9.frag +++ /dev/null @@ -1,30 +0,0 @@ -#version 450 - -#extension GL_ARB_gpu_shader_int64 : enable -#extension GL_EXT_buffer_reference : enable - -layout(buffer_reference, std430) buffer blockType { - layout(offset = 0) int a; - layout(offset = 4) int b; - layout(offset = 8) int c; - layout(offset = 12) int d; - layout(offset = 16) int e; -}; - -layout(std430) buffer t2 { - blockType f; - blockType g; -} t; - -flat in uint64_t h, i; - -void main() { - - blockType b1[2] = blockType[2](blockType(h), blockType(i)); - b1[0].a = b1[1].b; - blockType b2 = blockType(h); - blockType b3 = blockType(i); - b2.a = b3.b; - uint64_t j = uint64_t(b2); - b2 = blockType(j+256); -} diff --git a/deps/glslang/Test/spv.bufferhandleUvec2.frag b/deps/glslang/Test/spv.bufferhandleUvec2.frag deleted file mode 100644 index bc86822b..00000000 --- a/deps/glslang/Test/spv.bufferhandleUvec2.frag +++ /dev/null @@ -1,32 +0,0 @@ -#version 450 - -#extension GL_EXT_buffer_reference_uvec2 : enable - -layout(buffer_reference, std430) buffer blockType { - layout(offset = 0) int a; - layout(offset = 4) int b; - layout(offset = 8) int c; - layout(offset = 12) int d; - layout(offset = 16) int e; -}; - -layout(std430) buffer t2 { - blockType f; - blockType g; -} t; - -flat in uvec2 h, i; - -void main() { - - blockType b1[2] = blockType[2](blockType(h), blockType(i)); - b1[0].a = b1[1].b; - blockType b2 = blockType(h); - blockType b3 = blockType(i); - b2.a = b3.b; - uvec2 j = uvec2(b2); - uint carry; - j.x = uaddCarry(j.x, 256, carry); - j.y += carry; - b2 = blockType(j); -} diff --git a/deps/glslang/Test/spv.bufferhandle_Error.frag b/deps/glslang/Test/spv.bufferhandle_Error.frag deleted file mode 100644 index 034e0544..00000000 --- a/deps/glslang/Test/spv.bufferhandle_Error.frag +++ /dev/null @@ -1,46 +0,0 @@ -#version 450 - -#extension GL_EXT_buffer_reference : enable - -layout(buffer_reference) buffer bufType1 { int x; }; -layout(buffer_reference) buffer bufType2 { int x; }; -layout(buffer_reference) uniform bufType3 { int x; }; - -layout(buffer_reference) buffer; -layout(buffer_reference) uniform; -layout(buffer_reference) in; -layout(buffer_reference) out; -layout(buffer_reference) in badin { float x; } badin2; -layout(buffer_reference) out badout { float x; } badout2; - -layout(buffer_reference) buffer bufType5; - -layout(buffer_reference) buffer bufType6 { int x[]; }; - -buffer bufType4 { - bufType1 b1; - bufType2 b2; - bufType3 b3; - bufType6 b6; -} b4; - -void f() -{ - bufType6 b; - b.x.length(); - b4.b6.x.length(); - b[2]; // ERROR, can't index due to unsized array -} - -void main() { - bufType2 x1 = b4.b1; - bufType2 x2 = bufType2(b4.b1); - bufType2 x3 = bufType2(b4.b2); - bufType2 x4 = bufType2(b4.b3); - - b4.b1 = b4.b2; - b4.b1 = b4.b3; - b4.b3 = b4.b2; -} - -layout(buffer_reference) uniform bufType5 { int x; }; diff --git a/deps/glslang/Test/spv.builtInXFB.vert b/deps/glslang/Test/spv.builtInXFB.vert deleted file mode 100644 index 619bc1e2..00000000 --- a/deps/glslang/Test/spv.builtInXFB.vert +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 - -layout(xfb_buffer = 1, xfb_stride = 64) out; - -layout (xfb_buffer = 1, xfb_offset = 16) out gl_PerVertex -{ - float gl_PointSize; - vec4 gl_Position; -}; - -void main() -{ - gl_Position = vec4(1.0); - gl_PointSize = 2.0; -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.builtin.PrimitiveShadingRateEXT.vert b/deps/glslang/Test/spv.builtin.PrimitiveShadingRateEXT.vert deleted file mode 100644 index 6fd98c3e..00000000 --- a/deps/glslang/Test/spv.builtin.PrimitiveShadingRateEXT.vert +++ /dev/null @@ -1,28 +0,0 @@ -#version 450 - -#extension GL_EXT_fragment_shading_rate : enable - -layout(location = 0) in int id; - -void main() -{ - switch (id) - { - case 0: - // V2 | H2 => 5 - gl_PrimitiveShadingRateEXT = gl_ShadingRateFlag2VerticalPixelsEXT | gl_ShadingRateFlag2HorizontalPixelsEXT; - break; - case 1: - // V2 | H4 => 9 - gl_PrimitiveShadingRateEXT = gl_ShadingRateFlag2VerticalPixelsEXT | gl_ShadingRateFlag4HorizontalPixelsEXT; - break; - case 2: - // V4 | H2 => 6 - gl_PrimitiveShadingRateEXT = gl_ShadingRateFlag4VerticalPixelsEXT | gl_ShadingRateFlag2HorizontalPixelsEXT; - break; - case 3: - // V4 | H4 => 10 - gl_PrimitiveShadingRateEXT = gl_ShadingRateFlag4VerticalPixelsEXT | gl_ShadingRateFlag4HorizontalPixelsEXT; - break; - } -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.builtin.ShadingRateEXT.frag b/deps/glslang/Test/spv.builtin.ShadingRateEXT.frag deleted file mode 100644 index 616baec8..00000000 --- a/deps/glslang/Test/spv.builtin.ShadingRateEXT.frag +++ /dev/null @@ -1,8 +0,0 @@ -#version 450 - -#extension GL_EXT_fragment_shading_rate : enable - -out highp int val; -void main () { - val = gl_ShadingRateEXT; -} diff --git a/deps/glslang/Test/spv.computeShaderDerivatives.comp b/deps/glslang/Test/spv.computeShaderDerivatives.comp deleted file mode 100644 index 884f14d5..00000000 --- a/deps/glslang/Test/spv.computeShaderDerivatives.comp +++ /dev/null @@ -1,106 +0,0 @@ -#version 450 -#extension GL_NV_compute_shader_derivatives : require - -layout (local_size_x = 2, local_size_y = 4) in; -layout(derivative_group_quadsNV) in; - -buffer block { - float fDerivativeX; - float fDerivativeY; - float fDerivativeWidth; - float fCoarseDerivativeX; - float fCoarseDerivativeY; - float fCoarseDerivativeWidth; - float fFineDerivativeX; - float fFineDerivativeY; - float fFineDerivativeWidth; - - float fX; - float fY; - - - vec2 v2DerivativeX; - vec2 v2DerivativeY; - vec2 v2DerivativeWidth; - vec2 v2CoarseDerivativeX; - vec2 v2CoarseDerivativeY; - vec2 v2CoarseDerivativeWidth; - vec2 v2FineDerivativeX; - vec2 v2FineDerivativeY; - vec2 v2FineDerivativeWidth; - - vec2 v2X; - vec2 v2Y; - - - vec3 v3DerivativeX; - vec3 v3DerivativeY; - vec3 v3DerivativeWidth; - vec3 v3CoarseDerivativeX; - vec3 v3CoarseDerivativeY; - vec3 v3CoarseDerivativeWidth; - vec3 v3FineDerivativeX; - vec3 v3FineDerivativeY; - vec3 v3FineDerivativeWidth; - - vec3 v3X; - vec3 v3Y; - - - vec4 v4DerivativeX; - vec4 v4DerivativeY; - vec4 v4DerivativeWidth; - vec4 v4CoarseDerivativeX; - vec4 v4CoarseDerivativeY; - vec4 v4CoarseDerivativeWidth; - vec4 v4FineDerivativeX; - vec4 v4FineDerivativeY; - vec4 v4FineDerivativeWidth; - - vec4 v4X; - vec4 v4Y; -}; - -void main(){ - fDerivativeX = dFdx(fX); - fDerivativeY = dFdy(fY); - fDerivativeWidth = fwidth(fX); - fCoarseDerivativeX = dFdxCoarse(fX); - fCoarseDerivativeY = dFdyCoarse(fY); - fCoarseDerivativeWidth = fwidthCoarse(fX); - fFineDerivativeX = dFdxFine(fX); - fFineDerivativeY = dFdyFine(fY); - fFineDerivativeWidth = fwidthFine(fX); - - v2DerivativeX = dFdx(v2X); - v2DerivativeY = dFdy(v2Y); - v2DerivativeWidth = fwidth(v2X); - v2CoarseDerivativeX = dFdxCoarse(v2X); - v2CoarseDerivativeY = dFdyCoarse(v2Y); - v2CoarseDerivativeWidth = fwidthCoarse(v2X); - v2FineDerivativeX = dFdxFine(v2X); - v2FineDerivativeY = dFdyFine(v2Y); - v2FineDerivativeWidth = fwidthFine(v2X); - - - v3DerivativeX = dFdx(v3X); - v3DerivativeY = dFdy(v3Y); - v3DerivativeWidth = fwidth(v3X); - v3CoarseDerivativeX = dFdxCoarse(v3X); - v3CoarseDerivativeY = dFdyCoarse(v3Y); - v3CoarseDerivativeWidth = fwidthCoarse(v3X); - v3FineDerivativeX = dFdxFine(v3X); - v3FineDerivativeY = dFdyFine(v3Y); - v3FineDerivativeWidth = fwidthFine(v3X); - - - v4DerivativeX = dFdx(v4X); - v4DerivativeY = dFdy(v4Y); - v4DerivativeWidth = fwidth(v4X); - v4CoarseDerivativeX = dFdxCoarse(v4X); - v4CoarseDerivativeY = dFdyCoarse(v4Y); - v4CoarseDerivativeWidth = fwidthCoarse(v4X); - v4FineDerivativeX = dFdxFine(v4X); - v4FineDerivativeY = dFdyFine(v4Y); - v4FineDerivativeWidth = fwidthFine(v4X); -} diff --git a/deps/glslang/Test/spv.computeShaderDerivatives2.comp b/deps/glslang/Test/spv.computeShaderDerivatives2.comp deleted file mode 100644 index f964fdd1..00000000 --- a/deps/glslang/Test/spv.computeShaderDerivatives2.comp +++ /dev/null @@ -1,106 +0,0 @@ -#version 320 es -#extension GL_NV_compute_shader_derivatives : require - -layout (local_size_x = 2, local_size_y = 4) in; -layout(derivative_group_linearNV) in; - -buffer block { - float fDerivativeX; - float fDerivativeY; - float fDerivativeWidth; - float fCoarseDerivativeX; - float fCoarseDerivativeY; - float fCoarseDerivativeWidth; - float fFineDerivativeX; - float fFineDerivativeY; - float fFineDerivativeWidth; - - float fX; - float fY; - - - vec2 v2DerivativeX; - vec2 v2DerivativeY; - vec2 v2DerivativeWidth; - vec2 v2CoarseDerivativeX; - vec2 v2CoarseDerivativeY; - vec2 v2CoarseDerivativeWidth; - vec2 v2FineDerivativeX; - vec2 v2FineDerivativeY; - vec2 v2FineDerivativeWidth; - - vec2 v2X; - vec2 v2Y; - - - vec3 v3DerivativeX; - vec3 v3DerivativeY; - vec3 v3DerivativeWidth; - vec3 v3CoarseDerivativeX; - vec3 v3CoarseDerivativeY; - vec3 v3CoarseDerivativeWidth; - vec3 v3FineDerivativeX; - vec3 v3FineDerivativeY; - vec3 v3FineDerivativeWidth; - - vec3 v3X; - vec3 v3Y; - - - vec4 v4DerivativeX; - vec4 v4DerivativeY; - vec4 v4DerivativeWidth; - vec4 v4CoarseDerivativeX; - vec4 v4CoarseDerivativeY; - vec4 v4CoarseDerivativeWidth; - vec4 v4FineDerivativeX; - vec4 v4FineDerivativeY; - vec4 v4FineDerivativeWidth; - - vec4 v4X; - vec4 v4Y; -}; - -void main(){ - fDerivativeX = dFdx(fX); - fDerivativeY = dFdy(fY); - fDerivativeWidth = fwidth(fX); - fCoarseDerivativeX = dFdxCoarse(fX); - fCoarseDerivativeY = dFdyCoarse(fY); - fCoarseDerivativeWidth = fwidthCoarse(fX); - fFineDerivativeX = dFdxFine(fX); - fFineDerivativeY = dFdyFine(fY); - fFineDerivativeWidth = fwidthFine(fX); - - v2DerivativeX = dFdx(v2X); - v2DerivativeY = dFdy(v2Y); - v2DerivativeWidth = fwidth(v2X); - v2CoarseDerivativeX = dFdxCoarse(v2X); - v2CoarseDerivativeY = dFdyCoarse(v2Y); - v2CoarseDerivativeWidth = fwidthCoarse(v2X); - v2FineDerivativeX = dFdxFine(v2X); - v2FineDerivativeY = dFdyFine(v2Y); - v2FineDerivativeWidth = fwidthFine(v2X); - - - v3DerivativeX = dFdx(v3X); - v3DerivativeY = dFdy(v3Y); - v3DerivativeWidth = fwidth(v3X); - v3CoarseDerivativeX = dFdxCoarse(v3X); - v3CoarseDerivativeY = dFdyCoarse(v3Y); - v3CoarseDerivativeWidth = fwidthCoarse(v3X); - v3FineDerivativeX = dFdxFine(v3X); - v3FineDerivativeY = dFdyFine(v3Y); - v3FineDerivativeWidth = fwidthFine(v3X); - - - v4DerivativeX = dFdx(v4X); - v4DerivativeY = dFdy(v4Y); - v4DerivativeWidth = fwidth(v4X); - v4CoarseDerivativeX = dFdxCoarse(v4X); - v4CoarseDerivativeY = dFdyCoarse(v4Y); - v4CoarseDerivativeWidth = fwidthCoarse(v4X); - v4FineDerivativeX = dFdxFine(v4X); - v4FineDerivativeY = dFdyFine(v4Y); - v4FineDerivativeWidth = fwidthFine(v4X); -} diff --git a/deps/glslang/Test/spv.conditionalDemote.frag b/deps/glslang/Test/spv.conditionalDemote.frag deleted file mode 100644 index 1f9b238a..00000000 --- a/deps/glslang/Test/spv.conditionalDemote.frag +++ /dev/null @@ -1,18 +0,0 @@ -#version 460 core -#extension GL_EXT_demote_to_helper_invocation : enable - -layout(set = 0, binding = 0) uniform sampler2D tex; -layout(location = 0) in vec2 coord; -layout(location = 0) out vec4 o; - -void main (void) -{ - vec4 v = texture(tex, coord); - - if (v == vec4(0.1,0.2,0.3,0.4)) - demote; - - bool x = helperInvocationEXT(); - - o = v; -} diff --git a/deps/glslang/Test/spv.conditionalDiscard.frag b/deps/glslang/Test/spv.conditionalDiscard.frag deleted file mode 100644 index ea803374..00000000 --- a/deps/glslang/Test/spv.conditionalDiscard.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 400 - -uniform sampler2D tex; -in vec2 coord; - -void main (void) -{ - vec4 v = texture(tex, coord); - - if (v == vec4(0.1,0.2,0.3,0.4)) - discard; - - gl_FragColor = v; -} diff --git a/deps/glslang/Test/spv.constConstruct.vert b/deps/glslang/Test/spv.constConstruct.vert deleted file mode 100644 index 13d5e361..00000000 --- a/deps/glslang/Test/spv.constConstruct.vert +++ /dev/null @@ -1,158 +0,0 @@ -#version 450 -#extension GL_EXT_shader_explicit_arithmetic_types_float16 : enable -#extension GL_EXT_shader_explicit_arithmetic_types_float32 : enable -#extension GL_EXT_shader_explicit_arithmetic_types_float64 : enable -#extension GL_EXT_shader_explicit_arithmetic_types_int8 : enable -#extension GL_EXT_shader_explicit_arithmetic_types_int16 : enable -#extension GL_EXT_shader_explicit_arithmetic_types_int32 : enable -#extension GL_EXT_shader_explicit_arithmetic_types_int64 : enable - -precision highp float; - -void main() -{ - float16_t(float16_t(0x1)); - float16_t(float32_t(0x2)); - float16_t(float64_t(0x3)); - float16_t(int8_t (0x4)); - float16_t(int16_t (0x5)); - float16_t(int32_t (0x6)); - float16_t(int64_t (0x7)); - float16_t(uint8_t (0x8)); - float16_t(uint16_t (0x9)); - float16_t(uint32_t (0xA)); - float16_t(uint64_t (0xB)); - float16_t(bool (0xC)); - float32_t(float16_t(0x11)); - float32_t(float32_t(0x12)); - float32_t(float64_t(0x13)); - float32_t(int8_t (0x14)); - float32_t(int16_t (0x15)); - float32_t(int32_t (0x16)); - float32_t(int64_t (0x17)); - float32_t(uint8_t (0x18)); - float32_t(uint16_t (0x19)); - float32_t(uint32_t (0x1A)); - float32_t(uint64_t (0x1B)); - float32_t(bool (0x1C)); - float64_t(float16_t(0x21)); - float64_t(float32_t(0x22)); - float64_t(float64_t(0x23)); - float64_t(int8_t (0x24)); - float64_t(int16_t (0x25)); - float64_t(int32_t (0x26)); - float64_t(int64_t (0x27)); - float64_t(uint8_t (0x28)); - float64_t(uint16_t (0x29)); - float64_t(uint32_t (0x2A)); - float64_t(uint64_t (0x2B)); - float64_t(bool (0x2C)); - int8_t(float16_t(0x31)); - int8_t(float32_t(0x32)); - int8_t(float64_t(0x33)); - int8_t(int8_t (0x34)); - int8_t(int16_t (0x35)); - int8_t(int32_t (0x36)); - int8_t(int64_t (0x37)); - int8_t(uint8_t (0x38)); - int8_t(uint16_t (0x39)); - int8_t(uint32_t (0x3A)); - int8_t(uint64_t (0x3B)); - int8_t(bool (0x3C)); - int16_t(float16_t(0x41)); - int16_t(float32_t(0x42)); - int16_t(float64_t(0x43)); - int16_t(int8_t (0x44)); - int16_t(int16_t (0x45)); - int16_t(int32_t (0x46)); - int16_t(int64_t (0x47)); - int16_t(uint8_t (0x48)); - int16_t(uint16_t (0x49)); - int16_t(uint32_t (0x4A)); - int16_t(uint64_t (0x4B)); - int16_t(bool (0x4C)); - int32_t(float16_t(0x51)); - int32_t(float32_t(0x52)); - int32_t(float64_t(0x53)); - int32_t(int8_t (0x54)); - int32_t(int16_t (0x55)); - int32_t(int32_t (0x56)); - int32_t(int64_t (0x57)); - int32_t(uint8_t (0x58)); - int32_t(uint16_t (0x59)); - int32_t(uint32_t (0x5A)); - int32_t(uint64_t (0x5B)); - int32_t(bool (0x5C)); - int64_t(float16_t(0x61)); - int64_t(float32_t(0x62)); - int64_t(float64_t(0x63)); - int64_t(int8_t (0x64)); - int64_t(int16_t (0x65)); - int64_t(int32_t (0x66)); - int64_t(int64_t (0x67)); - int64_t(uint8_t (0x68)); - int64_t(uint16_t (0x69)); - int64_t(uint32_t (0x6A)); - int64_t(uint64_t (0x6B)); - int64_t(bool (0x6C)); - uint8_t(float16_t(0x71)); - uint8_t(float32_t(0x72)); - uint8_t(float64_t(0x73)); - uint8_t(int8_t (0x74)); - uint8_t(int16_t (0x75)); - uint8_t(int32_t (0x76)); - uint8_t(int64_t (0x77)); - uint8_t(uint8_t (0x78)); - uint8_t(uint16_t (0x79)); - uint8_t(uint32_t (0x7A)); - uint8_t(uint64_t (0x7B)); - uint8_t(bool (0x7C)); - uint16_t(float16_t(0x81)); - uint16_t(float32_t(0x82)); - uint16_t(float64_t(0x83)); - uint16_t(int8_t (0x84)); - uint16_t(int16_t (0x85)); - uint16_t(int32_t (0x86)); - uint16_t(int64_t (0x87)); - uint16_t(uint8_t (0x88)); - uint16_t(uint16_t (0x89)); - uint16_t(uint32_t (0x8A)); - uint16_t(uint64_t (0x8B)); - uint16_t(bool (0x8C)); - uint32_t(float16_t(0x91)); - uint32_t(float32_t(0x92)); - uint32_t(float64_t(0x93)); - uint32_t(int8_t (0x94)); - uint32_t(int16_t (0x95)); - uint32_t(int32_t (0x96)); - uint32_t(int64_t (0x97)); - uint32_t(uint8_t (0x98)); - uint32_t(uint16_t (0x99)); - uint32_t(uint32_t (0x9A)); - uint32_t(uint64_t (0x9B)); - uint32_t(bool (0x9C)); - uint64_t(float16_t(0xA1)); - uint64_t(float32_t(0xA2)); - uint64_t(float64_t(0xA3)); - uint64_t(int8_t (0xA4)); - uint64_t(int16_t (0xA5)); - uint64_t(int32_t (0xA6)); - uint64_t(int64_t (0xA7)); - uint64_t(uint8_t (0xA8)); - uint64_t(uint16_t (0xA9)); - uint64_t(uint32_t (0xAA)); - uint64_t(uint64_t (0xAB)); - uint64_t(bool (0xAC)); - bool(float16_t(0xB1)); - bool(float32_t(0xB2)); - bool(float64_t(0xB3)); - bool(int8_t (0xB4)); - bool(int16_t (0xB5)); - bool(int32_t (0xB6)); - bool(int64_t (0xB7)); - bool(uint8_t (0xB8)); - bool(uint16_t (0xB9)); - bool(uint32_t (0xBA)); - bool(uint64_t (0xBB)); - bool(bool (0xBC)); -} diff --git a/deps/glslang/Test/spv.constStruct.vert b/deps/glslang/Test/spv.constStruct.vert deleted file mode 100644 index d5dd8da9..00000000 --- a/deps/glslang/Test/spv.constStruct.vert +++ /dev/null @@ -1,22 +0,0 @@ -#version 450 - -precision highp float; - -struct U { - mat2 m; -}; - -struct T { - mat2 m; -}; - -struct S { - T t; - U u; -}; - -void main() -{ - S s1 = S(T(mat2(1.0)), U(mat2(1.0))); - S s2 = S(T(mat2(1.0)), U(mat2(1.0))); -} diff --git a/deps/glslang/Test/spv.constructComposite.comp b/deps/glslang/Test/spv.constructComposite.comp deleted file mode 100644 index 7f1c3707..00000000 --- a/deps/glslang/Test/spv.constructComposite.comp +++ /dev/null @@ -1,25 +0,0 @@ -#version 460 core - -layout(local_size_x=64) in; - -struct sA { - int x, y; -}; - -struct sB { - sA a; -}; - -layout(binding=0,set=0) uniform ubo { - sB b; -}; - -struct sC { - sA state; -} c = { - b.a, -}; - -void main() -{ -} diff --git a/deps/glslang/Test/spv.controlFlowAttributes.frag b/deps/glslang/Test/spv.controlFlowAttributes.frag deleted file mode 100644 index cedd6022..00000000 --- a/deps/glslang/Test/spv.controlFlowAttributes.frag +++ /dev/null @@ -1,46 +0,0 @@ -#version 450 - -#extension GL_EXT_control_flow_attributes : enable - -bool cond; - -void f0() { - [[loop]] for (;;) { } -} - -void f1() { - [[dont_unroll]] while(true) { } -} - -void main() -{ - [[unroll]] for (int i = 0; i < 8; ++i) { } - f0(); - [[dependency_infinite]] do { } while(true); - [[dependency_length(1+3)]] for (int i = 0; i < 8; ++i) { } - [[flatten]] if (cond) { } else { } - [[branch]] if (cond) cond = false; - [[dont_flatten]] switch(3) { } // dropped - [[dont_flatten]] switch(3) { case 3: break; } - - // warnings on all these - [[unroll(2)]] for (int i = 0; i < 8; ++i) { } - [[dont_unroll(-2)]] while(true) { } - [[dependency_infinite(3)]] do { } while(true); - [[dependency_length]] for (int i = 0; i < 8; ++i) { } - [[flatten(3)]] if (cond) { } else { } - [[branch(5.2)]] if (cond) cond = false; - [[dont_flatten(3 + 7)]] switch(3) { case 3: break; } - - // other valid uses - [[ unroll, dont_unroll, dependency_length(2) ]] while(cond) { } - [ [ dont_flatten , branch ] ] switch(3) { case 3: break; } - [ - // attribute - [ - // here - flatten - ] - ] if (cond) { } else { } - [[ dependency_length(2), dependency_infinite ]] while(cond) { } -} diff --git a/deps/glslang/Test/spv.conversion.frag b/deps/glslang/Test/spv.conversion.frag deleted file mode 100644 index 3b5e5123..00000000 --- a/deps/glslang/Test/spv.conversion.frag +++ /dev/null @@ -1,112 +0,0 @@ -#version 140 - -bool u_b; -bvec2 u_b2; -bvec3 u_b3; -bvec4 u_b4; - -int u_i; -ivec2 u_i2; -ivec3 u_i3; -ivec4 u_i4; - -float u_f; -vec2 u_f2; -vec3 u_f3; -vec4 u_f4; - -bool i_b; -bvec2 i_b2; -bvec3 i_b3; -bvec4 i_b4; - -flat in int i_i; -flat in ivec2 i_i2; -flat in ivec3 i_i3; -flat in ivec4 i_i4; - -in float i_f; -in vec2 i_f2; -in vec3 i_f3; -in vec4 i_f4; - -void main() -{ - bool b = bool(u_i) ^^ bool(u_f); - bvec2 b2 = bvec2(u_i, u_f); - bvec3 b3 = bvec3(u_i, u_f, i_i); - bvec4 b4 = bvec4(u_i, u_f, i_i, i_f); - - int i = int(u_f) + int(b); - ivec2 i2 = ivec2(u_f2) + ivec2(b2); - ivec3 i3 = ivec3(u_f3) + ivec3(b3); - ivec4 i4 = ivec4(u_f4) + ivec4(b4); - - float f = i; - vec2 f2 = i2; - vec3 f3 = i3; - vec4 f4 = i4; - - f += (float(i) + float(b)); - f2 -= vec2(i2) + vec2(b2); - f3 /= vec3(i3) + vec3(b3); - f4 += vec4(i4) + vec4(b4); - - f4 += vec4(bvec4(i_i4)); - f4 += vec4(bvec4(u_f4)); - - f += f - i; - f2 += vec2(f, i) + i2; - f3 += i3 + vec3(f, i, f); - f4 += vec4(b, i, f, i) + i4; - - f2 += vec2(f, i) * i; - f3 += vec3(f, i, f) + i; - f4 += i - vec4(b, i, f, i); - - i2 += ivec2(f, i); - i3 += ivec3(f, i, f); - i4 += ivec4(b, i, f, i); - - if (f < i || i < f || - f2 == i2 || - i3 != f3) - f = (b ? i : f2.x) + (b2.x ? f3.x : i2.y); - - gl_FragColor = - b || - b2.x || - b2.y || - b3.x || - b3.y || - b3.z || - b4.x || - b4.y || - b4.z || - b4.w ? vec4( - i + - i2.x + - i2.y + - i3.x + - i3.y + - i3.z + - i4.x + - i4.y + - i4.z + - i4.w + - f + - f2.x + - f2.y + - f3.x + - f3.y + - f3.z + - f4.x + - f4.y + - f4.z + - f4.w) : vec4(1.0); - - // with constants... - ivec4 cv2 = ivec4(1.0); - bvec4 cv5 = bvec4(cv2); - gl_FragColor += float(cv5); -} diff --git a/deps/glslang/Test/spv.coopmat.comp b/deps/glslang/Test/spv.coopmat.comp deleted file mode 100644 index ab4292fe..00000000 --- a/deps/glslang/Test/spv.coopmat.comp +++ /dev/null @@ -1,115 +0,0 @@ -#version 450 core -#extension GL_KHR_memory_scope_semantics : enable -#extension GL_NV_cooperative_matrix : enable -#extension GL_EXT_shader_explicit_arithmetic_types_float16 : enable -#extension GL_EXT_buffer_reference : enable - -layout (local_size_x = 64, local_size_y = 1, local_size_z = 1) in; - -const int X = 8; -layout(constant_id = 0) const int Y = 2; -const int Z = X*Y; - -fcoopmatNV<16, gl_ScopeSubgroup, Z, 8> mC; -fcoopmatNV<16, gl_ScopeSubgroup, Z, 8> mC2[3]; - -int arr[mC.length()]; -int arr2[mC2[1].length()]; - -layout(constant_id = 1) const float F = 3.0; - -const fcoopmatNV<32, gl_ScopeSubgroup, Z, 8> mD = fcoopmatNV<32, gl_ScopeSubgroup, Z, 8>(0.0); -const fcoopmatNV<16, gl_ScopeSubgroup, 8, 8> mD2 = fcoopmatNV<16, gl_ScopeSubgroup, 8, 8>(1); - -struct S { int a; int b; int c; }; - -const S s = S(12, 23, 34); - -layout(set = 0, binding = 0, buffer_reference) coherent buffer Block { - float y[1024*1024]; - float x[]; -} block; - -layout(set = 0, binding = 0) coherent buffer Block16 { - float16_t y[1024*1024]; - float16_t x[]; - - Block b; -} block16; - -fcoopmatNV<16, gl_ScopeSubgroup, 8, 8> f16(fcoopmatNV<16, gl_ScopeSubgroup, 8, 8> m) { return -m; } -fcoopmatNV<32, gl_ScopeSubgroup, 8, 8> f32(fcoopmatNV<32, gl_ScopeSubgroup, 8, 8> m) { return -m; } - -layout(constant_id = 2) const int SC = 1; -fcoopmatNV<16, gl_ScopeSubgroup, SC, SC> scm[SC][SC]; - -// sized for fcoopmatNV<16, gl_ScopeSubgroup, 16, 16> -shared uvec4 shmatrix[16*16*2/16]; - -void main() -{ - fcoopmatNV<32, gl_ScopeSubgroup, 16, (2>1?8:4)> m = fcoopmatNV<32, gl_ScopeSubgroup, 16, (2>1?8:4)>(0.0); - - m = m + m; - m = m - m; - m = -m; - m = 2.0*m; - m = m*2.0; - - fcoopmatNV<16, gl_ScopeSubgroup, 16, 8> m2 = fcoopmatNV<16, gl_ScopeSubgroup, 16, 8>(m); - - float x = m[1]; - m[0] = x; - - coopMatLoadNV(m, block.x, 16, 128, false); - coopMatStoreNV(m, block.x, 16, 128, false); - coopMatLoadNV(m2, block16.x, 16, 128, false); - coopMatStoreNV(m2, block16.x, 16, 128, false); - coopMatLoadNV(m, block16.b.x, 16, 128, false); - coopMatStoreNV(m, block16.b.x, 16, 128, false); - - fcoopmatNV<16, gl_ScopeSubgroup, 16, 8> A; - fcoopmatNV<16, gl_ScopeSubgroup, 8, 8> B; - fcoopmatNV<32, gl_ScopeSubgroup, 16, 8> C; - fcoopmatNV<32, gl_ScopeSubgroup, 16, 8> D; - D = coopMatMulAddNV(A, B, C); - - int l = D.length(); - - fcoopmatNV<16, gl_ScopeSubgroup, 8, 8> E; - - fcoopmatNV<16, gl_ScopeSubgroup, Z, Z> F = fcoopmatNV<16, gl_ScopeSubgroup, Z, Z>(0.0); - - fcoopmatNV<32, gl_ScopeSubgroup, 16, (2>1?8:4)> a[5]; - a[3][0] = 1.0; - - float md1 = mD[1]; - - md1 += (m += m)[1234]; - - mC2[1] = mC2[2]; - - coopMatLoadNV(m, block.y, 16, 128, false); - coopMatStoreNV(m, block.y, 16, 128, false); - coopMatLoadNV(m2, block16.y, 16, 128, false); - coopMatStoreNV(m2, block16.y, 16, 128, false); - - fcoopmatNV<16, gl_ScopeSubgroup, 8, 8> p1; - fcoopmatNV<32, gl_ScopeSubgroup, 8, 8> p2; - - p1 = f16(p1); - p2 = f32(p2); - - p1 = fcoopmatNV<16, gl_ScopeSubgroup, 8, 8>(0.0); - p2 = fcoopmatNV<32, gl_ScopeSubgroup, 8, 8>(0.0); - - p1 /= p1; - - p1 *= float16_t(2.0); - p2 *= 4.0; - - fcoopmatNV<16, gl_ScopeSubgroup, 16, 8> ms; - coopMatLoadNV(ms, shmatrix, 1, 2, false); - coopMatStoreNV(ms, shmatrix, 1, 2, false); - -} diff --git a/deps/glslang/Test/spv.coopmat_Error.comp b/deps/glslang/Test/spv.coopmat_Error.comp deleted file mode 100644 index 220aa980..00000000 --- a/deps/glslang/Test/spv.coopmat_Error.comp +++ /dev/null @@ -1,76 +0,0 @@ -#version 450 core -#extension GL_KHR_memory_scope_semantics : enable -#extension GL_NV_cooperative_matrix : enable -#extension GL_EXT_shader_explicit_arithmetic_types_float16 : enable - -layout (local_size_x = 64, local_size_y = 1, local_size_z = 1) in; - -float<16> ftemplate16; - -fcoopmatNV fnoparams; - -fcoopmatNV<8, gl_ScopeSubgroup, 8, 8> fbadbits; - -fcoopmatNV<16, gl_ScopeSubgroup, 8> fbadnumparams; - -int X = 8; - -fcoopmatNV<16, gl_ScopeSubgroup, 8, X> fbadparam; - -layout(constant_id = 0) int Y = 1; - -shared fcoopmatNV<16, gl_ScopeSubgroup, 16, 16> sharedmat; - -layout(set = 0, binding = 0) buffer InvBlock { - fcoopmatNV<16, gl_ScopeSubgroup, 16, 16> bufmat; -} invblock; - -void main() -{ - fcoopmatNV<32, gl_ScopeSubgroup, 16, 8> f32_16_8; - fcoopmatNV<16, gl_ScopeSubgroup, 16, 8> f16_16_8; - - // invalid implicit conversions - f32_16_8 = f16_16_8; - f32_16_8 = f16_16_8 + f16_16_8; - - fcoopmatNV<16, gl_ScopeSubgroup, 8, 8> f16_8_8; - - // mismatching dimensions - f16_16_8 = f16_8_8; - - fcoopmatNV<16, gl_ScopeSubgroup, 8, Y> f16_8_Y; - fcoopmatNV<16, gl_ScopeSubgroup, 8, (Y+1)> f16_8_Y1; - - // mismatching dimensions with specialization constants - f16_8_Y = f16_8_Y1; - - // wrong arguments for constructor - f16_8_8 = fcoopmatNV<16, gl_ScopeSubgroup, 8, 8>(1, 1); - - // can't construct from a builtin type - mat4 m4; - fcoopmatNV<32, gl_ScopeSubgroup, 4, 4> f32_4_4 = fcoopmatNV<32, gl_ScopeSubgroup, 4, 4>(m4); - - // only support a single array subscript - f16_16_8[0][0]; - - // don't support scalar component selection - f16_16_8.x; - - f16_16_8 * f16_16_8; - - f16_16_8 + 1.0; - f16_16_8 - 1.0; - f16_16_8 / 1.0; - f16_16_8 += 1.0; - f16_16_8 -= 1.0; - f16_16_8 /= 1.0; - - f16_16_8*2.0; - 2.0*f16_16_8; - f32_16_8*float16_t(2.0); - float16_t(2.0)*f32_16_8; - - transpose(f16_8_8); -} diff --git a/deps/glslang/Test/spv.dataOut.frag b/deps/glslang/Test/spv.dataOut.frag deleted file mode 100644 index 94c6db06..00000000 --- a/deps/glslang/Test/spv.dataOut.frag +++ /dev/null @@ -1,8 +0,0 @@ -#version 140 - -in vec4 Color; - -void main() -{ - gl_FragData[1] = Color; -} diff --git a/deps/glslang/Test/spv.dataOutIndirect.frag b/deps/glslang/Test/spv.dataOutIndirect.frag deleted file mode 100644 index 88a32d58..00000000 --- a/deps/glslang/Test/spv.dataOutIndirect.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 140 - -in vec4 Color; - -out vec4 fcolor[4]; - -uniform b { int i; } bName; - -void main() -{ - fcolor[bName.i] = Color; -} diff --git a/deps/glslang/Test/spv.dataOutIndirect.vert b/deps/glslang/Test/spv.dataOutIndirect.vert deleted file mode 100644 index cb6b7e0d..00000000 --- a/deps/glslang/Test/spv.dataOutIndirect.vert +++ /dev/null @@ -1,12 +0,0 @@ -#version 140 - -attribute vec4 color; -out vec4 colorOut[6]; - -void main() -{ - for (int i = 1; i < 5; ++i) - colorOut[i] = color; - - gl_Position = colorOut[2]; -} diff --git a/deps/glslang/Test/spv.dead-after-continue.vert b/deps/glslang/Test/spv.dead-after-continue.vert deleted file mode 100644 index 86e8eea8..00000000 --- a/deps/glslang/Test/spv.dead-after-continue.vert +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 - -layout(location =0 ) in int c; -layout(location =0 ) out int o; - -void main() { - int i; - for (i=0; i < 5; i++) { - o = 1; - continue; - o = 2; - } - o = 3; -} diff --git a/deps/glslang/Test/spv.dead-after-discard.frag b/deps/glslang/Test/spv.dead-after-discard.frag deleted file mode 100644 index 769592bd..00000000 --- a/deps/glslang/Test/spv.dead-after-discard.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 - -layout(location =0 ) in float c; -layout(location =0 ) out int o; - -void main() { - o = 1; - discard; - o = 3; -} diff --git a/deps/glslang/Test/spv.dead-after-loop-break.vert b/deps/glslang/Test/spv.dead-after-loop-break.vert deleted file mode 100644 index 5498497c..00000000 --- a/deps/glslang/Test/spv.dead-after-loop-break.vert +++ /dev/null @@ -1,19 +0,0 @@ -#version 450 - -layout(location =0 ) in int c; -layout(location =0 ) out int o; - -void main() { - int i; - o = 1; - for (i=0; i < 5; i++) { - o = 2; - if (i==c) { - o = 3; - break; - o = 4; - } - o = 5; - } - o = 6; -} diff --git a/deps/glslang/Test/spv.dead-after-return.vert b/deps/glslang/Test/spv.dead-after-return.vert deleted file mode 100644 index 71726963..00000000 --- a/deps/glslang/Test/spv.dead-after-return.vert +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 - -layout(location =0 ) in int c; -layout(location =0 ) out int o; - -void main() { - o = 1; - return; - o = 3; -} diff --git a/deps/glslang/Test/spv.dead-after-switch-break.vert b/deps/glslang/Test/spv.dead-after-switch-break.vert deleted file mode 100644 index b1483e8d..00000000 --- a/deps/glslang/Test/spv.dead-after-switch-break.vert +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 - -layout(location =0 ) in int c; -layout(location =0 ) out int o; - -void main() { - int i; - switch(c) { - case 0: o=1; - break; - o=2; - default: break; - } - o = 3; -} diff --git a/deps/glslang/Test/spv.dead-complex-continue-after-return.vert b/deps/glslang/Test/spv.dead-complex-continue-after-return.vert deleted file mode 100644 index 85932a36..00000000 --- a/deps/glslang/Test/spv.dead-complex-continue-after-return.vert +++ /dev/null @@ -1,19 +0,0 @@ -#version 450 - -layout(location =0 ) in int c; -layout(location =0 ) out int o; - -void main() { - int i = 0; - o = 1; - // This has non-trivial continue target. - for (i=0; i < 5; ++i, o=99) { - o = 2; - return; - o = 3; - } - // This is considered reachable since Glslang codegen will - // create a conditional branch in the header, and one arm - // of that branch reaches this merge block. - o = 4; -} diff --git a/deps/glslang/Test/spv.dead-complex-merge-after-return.vert b/deps/glslang/Test/spv.dead-complex-merge-after-return.vert deleted file mode 100644 index 2fff1a29..00000000 --- a/deps/glslang/Test/spv.dead-complex-merge-after-return.vert +++ /dev/null @@ -1,23 +0,0 @@ -#version 450 - -layout(location =0 ) in int c; -layout(location =0 ) out int o; - -void main() { - int i = 0; - o = 1; - do { - o = 2; - return; - o = 3; - } while(i++ < 5); - - // All this is a dead merge block. - o = 4; - if (c==4) { - o = 100; - } else { - o = 200; - } - o = 300; -} diff --git a/deps/glslang/Test/spv.debugInfo.frag b/deps/glslang/Test/spv.debugInfo.frag deleted file mode 100644 index 3b6cd27f..00000000 --- a/deps/glslang/Test/spv.debugInfo.frag +++ /dev/null @@ -1,52 +0,0 @@ -#version 450 - -struct S { - int a; -}; - -uniform ubuf { - S s; -}; - -uniform sampler2D s2d; - -layout(location = 0) in vec4 inv; -layout(location = 0) out vec4 outv; - -vec4 foo(S s) -{ - vec4 r = s.a * inv; - ++r; - if (r.x > 3.0) - --r; - else - r *= 2; - - return r; -} - -void main() -{ - outv = foo(s); - outv += texture(s2d, vec2(0.5)); - - switch (s.a) { - case 10: - ++outv; - break; - case 20: - outv = 2 * outv; - ++outv; - break; - default: - --outv; - break; - } - - for (int i = 0; i < 10; ++i) - outv *= 3.0; - - outv.x < 10.0 ? - outv = sin(outv) : - outv = cos(outv); -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.debugPrintf.frag b/deps/glslang/Test/spv.debugPrintf.frag deleted file mode 100644 index 3dff6298..00000000 --- a/deps/glslang/Test/spv.debugPrintf.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 -#extension GL_EXT_debug_printf : enable - -void main() -{ - debugPrintfEXT("ASDF \\ \? \x5C %d %d %d", 1, 2, 3); - - // ABA{backspace}Z - debugPrintfEXT("\x41\x000042\x41\x8Z"); - - // B#${bell, aka \a}B1Z - debugPrintfEXT("\102\043\44\7\1021Z"); -} diff --git a/deps/glslang/Test/spv.debugPrintf_Error.frag b/deps/glslang/Test/spv.debugPrintf_Error.frag deleted file mode 100644 index c1980a7f..00000000 --- a/deps/glslang/Test/spv.debugPrintf_Error.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 -#extension GL_EXT_debug_printf : enable - -void main() -{ - // invalid hex sequence - debugPrintfEXT("\xZ"); - - // not an octal sequence - debugPrintfEXT("\8"); -} diff --git a/deps/glslang/Test/spv.deepRvalue.frag b/deps/glslang/Test/spv.deepRvalue.frag deleted file mode 100644 index 2c88ca8a..00000000 --- a/deps/glslang/Test/spv.deepRvalue.frag +++ /dev/null @@ -1,36 +0,0 @@ -#version 330 - -uniform sampler2D samp2D; - -vec4 v1 = vec4(2.0, 3.0, 5.0, 7.0); -vec4 v2 = vec4(11.0, 13.0, 17.0, 19.0); -vec4 v3 = vec4(23.0, 29.0, 31.0, 37.0); -vec4 v4 = vec4(41.0, 43.0, 47.0, 53.0); - -struct str { - int a; - vec2 b[3]; - bool c; -}; - -void main() -{ - mat4 m = mat4(v1, v2, v3, v4); - - mat4 mm = matrixCompMult(m, m); - float f = mm[1].w; // should be 19 * 19 = 361 - - // do a deep access to a spontaneous r-value - float g = matrixCompMult(m, m)[2].y; // should be 29 * 29 = 841 - - float h = str(1, vec2[3](vec2(2.0, 3.0), vec2(4.0, 5.0), vec2(6.0, 7.0)), true).b[1][1]; // should be 5.0 - - float i = texture(samp2D, vec2(0.5,0.5)).y; - - i += (i > 0.1 ? v1 : v2)[3]; - - str t; - i += (t = str(1, vec2[3](vec2(2.0, 3.0), vec2(4.0, 5.0), vec2(6.0, 7.0)), true)).b[2].y; // should be 7.0 - - gl_FragColor = vec4(f, g, h, i); -} diff --git a/deps/glslang/Test/spv.demoteDisabled.frag b/deps/glslang/Test/spv.demoteDisabled.frag deleted file mode 100644 index fca702d6..00000000 --- a/deps/glslang/Test/spv.demoteDisabled.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 core - -void main (void) -{ - { - int demote = 0; - demote; - } - demote; -} diff --git a/deps/glslang/Test/spv.depthOut.frag b/deps/glslang/Test/spv.depthOut.frag deleted file mode 100644 index feb8a0d4..00000000 --- a/deps/glslang/Test/spv.depthOut.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 - -in vec4 Color; -in float Depth; - -layout(depth_greater) out float gl_FragDepth; - -void main() -{ - gl_FragDepth = Depth; -} diff --git a/deps/glslang/Test/spv.depthUnchanged.frag b/deps/glslang/Test/spv.depthUnchanged.frag deleted file mode 100644 index bbc5139d..00000000 --- a/deps/glslang/Test/spv.depthUnchanged.frag +++ /dev/null @@ -1,8 +0,0 @@ -#version 430 -layout(location = 0) out vec4 outColor; -layout(depth_unchanged) out float gl_FragDepth; -void main() { - outColor = vec4(1.0, 0.0, 0.0, 1.0); - gl_FragDepth = gl_FragCoord.y; -} - diff --git a/deps/glslang/Test/spv.deviceGroup.frag b/deps/glslang/Test/spv.deviceGroup.frag deleted file mode 100644 index 64964897..00000000 --- a/deps/glslang/Test/spv.deviceGroup.frag +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 - -#extension GL_EXT_device_group : enable - -out vec4 color; - -void main() { - color = vec4(gl_DeviceIndex, 0, 0, 0); -} diff --git a/deps/glslang/Test/spv.discard-dce.frag b/deps/glslang/Test/spv.discard-dce.frag deleted file mode 100644 index e824f76e..00000000 --- a/deps/glslang/Test/spv.discard-dce.frag +++ /dev/null @@ -1,35 +0,0 @@ -#version 140 -in vec2 tex_coord; - -void main (void) -{ - vec4 white = vec4(1.0); - vec4 black = vec4(0.2); - vec4 color = white; - - // First, cut out our circle - float x = tex_coord.x*2.0 - 1.0; - float y = tex_coord.y*2.0 - 1.0; - - float radius = sqrt(x*x + y*y); - if (radius > 1.0) { - if (radius > 1.1) { - ++color; - } - - gl_FragColor = color; - - if (radius > 1.2) { - ++color; - } - - discard; - } - - // If we're near an edge, darken us a tiny bit - if (radius >= 0.75) - color -= abs(pow(radius, 16.0)/2.0); - - gl_FragColor = color; - -} diff --git a/deps/glslang/Test/spv.do-simple.vert b/deps/glslang/Test/spv.do-simple.vert deleted file mode 100644 index 77677a6d..00000000 --- a/deps/glslang/Test/spv.do-simple.vert +++ /dev/null @@ -1,7 +0,0 @@ -#version 310 es -void main() { - int i = 0; - do { - i++; - } while(i<10); -} diff --git a/deps/glslang/Test/spv.do-while-continue-break.vert b/deps/glslang/Test/spv.do-while-continue-break.vert deleted file mode 100644 index c085551e..00000000 --- a/deps/glslang/Test/spv.do-while-continue-break.vert +++ /dev/null @@ -1,20 +0,0 @@ -#version 310 es -void main() { - int i = 0; - int A, B, C, D, E, F, G; - do { - A = 0; - if (i == 2) { - B = 1; - continue; - C = 2; - } - if (i == 5) { - D = 3; - break; - E = 42; - } - F = 99; - } while (++i < 19); - G = 12; -} diff --git a/deps/glslang/Test/spv.doWhileLoop.frag b/deps/glslang/Test/spv.doWhileLoop.frag deleted file mode 100644 index 5abdb61b..00000000 --- a/deps/glslang/Test/spv.doWhileLoop.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 140 - -in vec4 bigColor; -in vec4 BaseColor; -in float d; - -void main() -{ - vec4 color = BaseColor; - - do { - color += bigColor; - } while (color.x < d); - - gl_FragColor = color; -} diff --git a/deps/glslang/Test/spv.double.comp b/deps/glslang/Test/spv.double.comp deleted file mode 100644 index 6397e630..00000000 --- a/deps/glslang/Test/spv.double.comp +++ /dev/null @@ -1,25 +0,0 @@ -#version 430 - -const double d1 = 3.1415926535897932384626433832795LF; -const double d2 = 3.1415; -const double d3 = 3.1415926535897932384626433832795LF; -const double d4 = 3.1415926535897932384626433832795; - -buffer bufName { - float f; - double d; -} bufInst; - - -uniform writeonly image2D destTex; - -void main() -{ - bufInst.d = float(d1); - bufInst.f = float(d1 + d2 + d3 + d4); - - ivec2 storePos = ivec2(gl_GlobalInvocationID.xy); - double localCoef = length(vec2(ivec2(gl_LocalInvocationID.xy)-8)/8.0); - dvec4 aa = dvec4(0.4, 0.2, 0.3, 0.4); - double globalCoef = 1.0; -} diff --git a/deps/glslang/Test/spv.drawParams.vert b/deps/glslang/Test/spv.drawParams.vert deleted file mode 100644 index f2e3c1ef..00000000 --- a/deps/glslang/Test/spv.drawParams.vert +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 - -#extension GL_ARB_shader_draw_parameters : enable - -out vec3 pos; - -void main() -{ - int a = gl_BaseVertexARB; - int b = gl_BaseInstanceARB; - int c = gl_DrawIDARB; - pos = vec3(a, b, c); -} diff --git a/deps/glslang/Test/spv.earlyReturnDiscard.frag b/deps/glslang/Test/spv.earlyReturnDiscard.frag deleted file mode 100644 index bba4b76d..00000000 --- a/deps/glslang/Test/spv.earlyReturnDiscard.frag +++ /dev/null @@ -1,102 +0,0 @@ -#version 140 - -in float d; -in vec4 bigColor, smallColor; -in vec4 otherColor; - -in float c; - -in float threshhold; -in float threshhold2; -in float threshhold3; - -in float minimum; - -in vec4 BaseColor; - -bool b; - -void main() -{ - vec4 color = BaseColor; - vec4 color2; - - color2 = otherColor; - - if (c > d) - color += bigColor; - else - color += smallColor; - - if (color.z < minimum) - return; - - color.z++; - - if (color.z > threshhold) - discard; - - color++; - - // Two path, different rest - if (color.w > threshhold2) { - if (color.z > threshhold2) - return; - else if (b) - color.z++; - else { - if (color.x < minimum) { - discard; - } else { - color++; - } - } - } else { - if (b) - discard; - else - return; - } - - - // // Two path, shared rest - // if (color.w > threshhold2) { - // if (color.z > threshhold2) - // return; - // else if (b) - // color++; - // else { - // if (color.x < minimum) { - // discard; - // } else { - // color++; - // } - // } - // } else { - // if (b) - // discard; - // else - // return; - // } - - - // // One path - // if (color.w > threshhold2) { - // if (color.z > threshhold2) - // return; - // else { - // if (color.x < minimum) { - // discard; - // } else { - // color++; - // } - // } - // } else { - // if (b) - // discard; - // else - // return; - // } - - gl_FragColor = color * color2; -} diff --git a/deps/glslang/Test/spv.explicittypes.frag b/deps/glslang/Test/spv.explicittypes.frag deleted file mode 100644 index 9941ea08..00000000 --- a/deps/glslang/Test/spv.explicittypes.frag +++ /dev/null @@ -1,334 +0,0 @@ -#version 450 - -#extension GL_EXT_shader_explicit_arithmetic_types: enable -#extension GL_EXT_shader_explicit_arithmetic_types_int8: require -#extension GL_EXT_shader_explicit_arithmetic_types_int16: require -#extension GL_EXT_shader_explicit_arithmetic_types_int32: require -#extension GL_EXT_shader_explicit_arithmetic_types_int64: require -#extension GL_EXT_shader_explicit_arithmetic_types_float16: require -#extension GL_EXT_shader_explicit_arithmetic_types_float32: require -#extension GL_EXT_shader_explicit_arithmetic_types_float64: require - -layout(binding = 0) uniform Uniforms -{ - uint index; -}; - -layout(std140, binding = 1) uniform Block -{ - int16_t i16; - i16vec2 i16v2; - i16vec3 i16v3; - i16vec4 i16v4; - uint16_t u16; - u16vec2 u16v2; - u16vec3 u16v3; - u16vec4 u16v4; - - int32_t i32; - i32vec2 i32v2; - i32vec3 i32v3; - i32vec4 i32v4; - uint32_t u32; - u32vec2 u32v2; - u32vec3 u32v3; - u32vec4 u32v4; -} block; - -void main() -{ -} - -void literal() -{ - const int64_t i64Const[3] = - { - -0x1111111111111111l, // Hex - -1l, // Dec - 040000000000l, // Oct - }; - - int64_t i64 = i64Const[index]; - - const uint64_t u64Const[] = - { - 0xFFFFFFFFFFFFFFFFul, // Hex - 4294967296UL, // Dec - 077777777777ul, // Oct - }; - - uint64_t u64 = u64Const[index]; - - const int32_t i32Const[3] = - { - -0x11111111, // Hex - -1, // Dec - 04000000000, // Oct - }; - - int32_t i32 = i32Const[index]; - - const uint32_t u32Const[] = - { - 0xFFFFFFFF, // Hex - 4294967295, // Dec - 017777777777, // Oct - }; - - uint32_t u32 = u32Const[index]; - - const int16_t i16Const[3] = - { - int16_t(-0x1111), // Hex - int16_t(-1), // Dec - int16_t(040000), // Oct - }; - - int16_t i16 = i16Const[index]; - - const uint16_t u16Const[] = - { - uint16_t(0xFFFF), // Hex - uint16_t(65535), // Dec - uint16_t(077777), // Oct - }; - - uint16_t u16 = u16Const[index]; - - const int8_t i8Const[3] = - { - int8_t(-0x11), // Hex - int8_t(-1), // Dec - int8_t(0400), // Oct - }; - - int8_t i8 = i8Const[index]; - - const uint8_t u8Const[] = - { - uint8_t(0xFF), // Hex - uint8_t(255), // Dec - uint8_t(0177), // Oct - }; - - uint8_t u8 = u8Const[index]; -} - -void typeCast8() -{ - i8vec2 i8v; - u8vec2 u8v; - i16vec2 i16v; - u16vec2 u16v; - i32vec2 i32v; - u32vec2 u32v; - i64vec2 i64v; - u64vec2 u64v; - f16vec2 f16v; - f32vec2 f32v; - f64vec2 f64v; - bvec2 bv; - - u8v = i8v; // int8_t -> uint8_t - i16v = i8v; // int8_t -> int16_t - i16v = u8v; // uint8_t -> int16_t - i32v = i8v; // int8_t -> int32_t - i32v = u8v; // uint8_t -> int32_t - u32v = i8v; // int8_t -> uint32_t - i64v = i8v; // int8_t -> int64_t - u64v = i8v; // int8_t -> uint64_t - u32v = u8v; // uint8_t -> uint32_t - i64v = u8v; // uint8_t -> int64_t - u64v = u8v; // uint8_t -> uint64_t - f16v = i8v; // int8_t -> float16_t - f32v = i8v; // int8_t -> float32_t - f64v = i8v; // int8_t -> float64_t - f16v = u8v; // uint8_t -> float16_t - f32v = u8v; // uint8_t -> float32_t - f64v = u8v; // uint8_t -> float64_t - - i8v = i8vec2(u8v); // uint8_t -> int8_t - i16v = i16vec2(i8v); // int8_t -> int16_t - i16v = i16vec2(u8v); // uint8_t -> int16_t - i32v = i32vec2(i8v); // int8_t -> int32_t - i32v = i32vec2(u8v); // uint8_t -> int32_t - i64v = i64vec2(i8v); // int8_t -> int64_t - u64v = i64vec2(i8v); // int8_t -> uint64_t - u16v = u16vec2(i8v); // int8_t -> uint16_t - u16v = u16vec2(u8v); // uint8_t -> uint16_t - u32v = u32vec2(u8v); // uint8_t -> uint32_t - i64v = i64vec2(u8v); // uint8_t -> int64_t - u64v = i64vec2(u8v); // uint8_t -> uint64_t - f16v = f16vec2(i8v); // int8_t -> float16_t - f32v = f32vec2(i8v); // int8_t -> float32_t - f64v = f64vec2(i8v); // int8_t -> float64_t - f16v = f16vec2(u8v); // uint8_t -> float16_t - f32v = f32vec2(u8v); // uint8_t -> float32_t - f64v = f64vec2(u8v); // uint8_t -> float64_t - - i8v = i8vec2(bv); // bool -> int8 - u8v = u8vec2(bv); // bool -> uint8 - bv = bvec2(i8v); // int8 -> bool - bv = bvec2(u8v); // uint8 -> bool -} - -void typeCast16() -{ - i8vec2 i8v; - u8vec2 u8v; - i16vec2 i16v; - u16vec2 u16v; - i32vec2 i32v; - u32vec2 u32v; - i64vec2 i64v; - u64vec2 u64v; - f16vec2 f16v; - f32vec2 f32v; - f64vec2 f64v; - bvec2 bv; - - i32v = i16v; // int16_t -> int32_t - i32v = u16v; // uint16_t -> int32_t - u16v = i16v; // int16_t -> uint16_t - u32v = i16v; // int16_t -> uint32_t - i64v = i16v; // int16_t -> int64_t - u64v = i16v; // int16_t -> uint64_t - u32v = u16v; // uint16_t -> uint32_t - i64v = u16v; // uint16_t -> int64_t - u64v = u16v; // uint16_t -> uint64_t - f16v = i16v; // int16_t -> float16_t - f32v = i16v; // int16_t -> float32_t - f64v = i16v; // int16_t -> float64_t - f16v = u16v; // uint16_t -> float16_t - f32v = u16v; // uint16_t -> float32_t - f64v = u16v; // uint16_t -> float64_t - - i32v = i32vec2(i16v); // int16_t -> int32_t - i32v = i32vec2(u16v); // uint16_t -> int32_t - u16v = u16vec2(i16v); // int16_t -> uint16_t - u32v = u32vec2(i16v); // int16_t -> uint32_t - i64v = i64vec2(i16v); // int16_t -> int64_t - u64v = i64vec2(i16v); // int16_t -> uint64_t - u32v = u32vec2(u16v); // uint16_t -> uint32_t - i64v = i64vec2(u16v); // uint16_t -> int64_t - u64v = i64vec2(u16v); // uint16_t -> uint64_t - f16v = f16vec2(i16v); // int16_t -> float16_t - f32v = f32vec2(i16v); // int16_t -> float32_t - f64v = f64vec2(i16v); // int16_t -> float64_t - f16v = f16vec2(u16v); // uint16_t -> float16_t - f32v = f32vec2(u16v); // uint16_t -> float32_t - f64v = f64vec2(u16v); // uint16_t -> float64_t - - i8v = i8vec2(i16v); // int16_t -> int8_t - i8v = i8vec2(u16v); // uint16_t -> int8_t - u8v = u8vec2(i16v); // int16_t -> uint8_t - u8v = u8vec2(u16v); // uint16_t -> uint8_t - i16v = u8vec2(u16v); // uint16_t -> int16_t - i16v = i16vec2(bv); // bool -> int16 - u16v = u16vec2(bv); // bool -> uint16 - bv = bvec2(i16v); // int16 -> bool - bv = bvec2(u16v); // uint16 -> bool -} - -void typeCast32() -{ - i8vec2 i8v; - u8vec2 u8v; - i16vec2 i16v; - u16vec2 u16v; - i32vec2 i32v; - u32vec2 u32v; - i64vec2 i64v; - u64vec2 u64v; - f16vec2 f16v; - f32vec2 f32v; - f64vec2 f64v; - bvec2 bv; - - u32v = i32v; // int32_t -> uint32_t - i64v = i32v; // int32_t -> int64_t - u64v = i32v; // int32_t -> uint64_t - i64v = u32v; // uint32_t -> int64_t - u64v = u32v; // uint32_t -> uint64_t - f32v = i32v; // int32_t -> float32_t - f64v = i32v; // int32_t -> float64_t - f32v = u32v; // uint32_t -> float32_t - f64v = u32v; // uint32_t -> float64_t - - i8v = i8vec2(i32v); // int32_t -> int8_t - i8v = i8vec2(u32v); // uint32_t -> int8_t - i16v = i16vec2(i32v); // int32_t -> int16_t - i16v = i16vec2(u32v); // uint32_t -> int16_t - i32v = i32vec2(i32v); // int32_t -> int32_t - i32v = i32vec2(u32v); // uint32_t -> int32_t - i64v = i64vec2(i32v); // int32_t -> int64_t - i64v = i64vec2(u32v); // uint32_t -> int64_t - u8v = u8vec2(i32v); // int32_t -> uint8_t - u8v = u8vec2(u32v); // uint32_t -> uint8_t - u16v = u16vec2(i32v); // int32_t -> uint16_t - u16v = u16vec2(u32v); // uint32_t -> uint16_t - u32v = u32vec2(i32v); // int32_t -> uint32_t - u32v = u32vec2(u32v); // uint32_t -> uint32_t - u64v = u64vec2(i32v); // int32_t -> uint64_t - u64v = u64vec2(u32v); // uint32_t -> uint64_t - - f16v = f16vec2(i32v); // int32_t -> float16_t - f32v = f32vec2(i32v); // int32_t -> float32_t - f64v = f64vec2(i32v); // int32_t -> float64_t - f16v = f16vec2(u32v); // uint32_t -> float16_t - f32v = f32vec2(u32v); // uint32_t -> float32_t - f64v = f64vec2(u32v); // uint32_t -> float64_t - - i32v = i32vec2(bv); // bool -> int32 - u32v = u32vec2(bv); // bool -> uint32 - bv = bvec2(i32v); // int32 -> bool - bv = bvec2(u32v); // uint32 -> bool -} - -void typeCast64() -{ - i8vec2 i8v; - u8vec2 u8v; - i16vec2 i16v; - u16vec2 u16v; - i32vec2 i32v; - u32vec2 u32v; - i64vec2 i64v; - u64vec2 u64v; - f16vec2 f16v; - f32vec2 f32v; - f64vec2 f64v; - bvec2 bv; - - u64v = i64v; // int64_t -> uint64_t - f64v = i64v; // int64_t -> float64_t - f64v = u64v; // uint64_t -> float64_t - - i8v = i8vec2(i64v); // int64_t -> int8_t - i8v = i8vec2(u64v); // uint64_t -> int8_t - i16v = i16vec2(i64v); // int64_t -> int16_t - i16v = i16vec2(u64v); // uint64_t -> int16_t - i32v = i32vec2(i64v); // int64_t -> int32_t - i32v = i32vec2(u64v); // uint64_t -> int32_t - i64v = i64vec2(u64v); // uint64_t -> int64_t - u8v = u8vec2(i64v); // int64_t -> uint8_t - u8v = u8vec2(u64v); // uint64_t -> uint8_t - u16v = u16vec2(i64v); // int64_t -> uint16_t - u16v = u16vec2(u64v); // uint64_t -> uint16_t - u32v = u32vec2(i64v); // int64_t -> uint32_t - u32v = u32vec2(u64v); // uint64_t -> uint32_t - u64v = u64vec2(i64v); // int64_t -> uint64_t - u64v = u64vec2(u64v); // uint64_t -> uint64_t - - f16v = f16vec2(i64v); // int64_t -> float16_t - f32v = f32vec2(i64v); // int64_t -> float32_t - f64v = f64vec2(i64v); // int64_t -> float64_t - f16v = f16vec2(u64v); // uint64_t -> float16_t - f32v = f32vec2(u64v); // uint64_t -> float32_t - f64v = f64vec2(u64v); // uint64_t -> float64_t - - i64v = i64vec2(bv); // bool -> int64 - u64v = u64vec2(bv); // bool -> uint64 - bv = bvec2(i64v); // int64 -> bool - bv = bvec2(u64v); // uint64 -> bool -} diff --git a/deps/glslang/Test/spv.ext.AccelDecl.frag b/deps/glslang/Test/spv.ext.AccelDecl.frag deleted file mode 100644 index 4374bf39..00000000 --- a/deps/glslang/Test/spv.ext.AccelDecl.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 460 -#extension GL_ARB_separate_shader_objects : enable -#extension GL_EXT_nonuniform_qualifier : enable -#extension GL_GOOGLE_include_directive : enable -#extension GL_EXT_scalar_block_layout : enable -#extension GL_EXT_ray_query : enable - -layout(location = 0) out vec4 outColor; - -layout(binding = 1, set = 0) uniform accelerationStructureEXT topLevelAS; - -void main() { - outColor = vec4(0.0); -} diff --git a/deps/glslang/Test/spv.ext.AnyHitShader.rahit b/deps/glslang/Test/spv.ext.AnyHitShader.rahit deleted file mode 100644 index 871f8fea..00000000 --- a/deps/glslang/Test/spv.ext.AnyHitShader.rahit +++ /dev/null @@ -1,32 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : enable -#extension GL_KHR_shader_subgroup_basic : enable -layout(location = 1) rayPayloadInEXT vec4 incomingPayload; -void main() -{ - uvec3 v0 = gl_LaunchIDEXT; - uvec3 v1 = gl_LaunchSizeEXT; - int v2 = gl_PrimitiveID; - int v3 = gl_InstanceID; - int v4 = gl_InstanceCustomIndexEXT; - vec3 v5 = gl_WorldRayOriginEXT; - vec3 v6 = gl_WorldRayDirectionEXT; - vec3 v7 = gl_ObjectRayOriginEXT; - vec3 v8 = gl_ObjectRayDirectionEXT; - float v9 = gl_RayTminEXT; - float v10 = gl_RayTmaxEXT; - float v11 = gl_HitTEXT; - uint v12 = gl_HitKindEXT; - mat4x3 v13 = gl_ObjectToWorldEXT; - mat4x3 v14 = gl_WorldToObjectEXT; - int v15 = gl_GeometryIndexEXT; - mat3x4 v16 = gl_ObjectToWorld3x4EXT; - mat3x4 v17 = gl_WorldToObject3x4EXT; - incomingPayload = vec4(0.5f); - if (v2 == 1) { - ignoreIntersectionEXT; - v0.x++; - } - incomingPayload.x += float(gl_SubgroupSize); - terminateRayEXT; -} diff --git a/deps/glslang/Test/spv.ext.AnyHitShader_Errors.rahit b/deps/glslang/Test/spv.ext.AnyHitShader_Errors.rahit deleted file mode 100644 index f9fd730e..00000000 --- a/deps/glslang/Test/spv.ext.AnyHitShader_Errors.rahit +++ /dev/null @@ -1,11 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : enable -hitAttributeEXT vec4 payload; -layout(binding = 0, set = 0) uniform accelerationStructureEXT accEXT; - -void main() -{ - payload.x = 1.0f; // ERROR, cannot write to hitattributeEXT in stage - reportIntersectionEXT(1.0, 1U); // ERROR, unsupported builtin in stage - traceRayEXT(accEXT, 0, 0, 1, 1, 0, vec3(0.0f), 0.5f, vec3(1.0f), 0.75f, 0); // ERROR, unsupported builtin in stage -} diff --git a/deps/glslang/Test/spv.ext.ClosestHitShader.rchit b/deps/glslang/Test/spv.ext.ClosestHitShader.rchit deleted file mode 100644 index 3f9bbaa0..00000000 --- a/deps/glslang/Test/spv.ext.ClosestHitShader.rchit +++ /dev/null @@ -1,27 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : enable -layout(binding = 0, set = 0) uniform accelerationStructureEXT accEXT; -layout(location = 0) rayPayloadEXT vec4 localPayload; -layout(location = 1) rayPayloadInEXT vec4 incomingPayload; -void main() -{ - uvec3 v0 = gl_LaunchIDEXT; - uvec3 v1 = gl_LaunchSizeEXT; - int v2 = gl_PrimitiveID; - int v3 = gl_InstanceID; - int v4 = gl_InstanceCustomIndexEXT; - vec3 v5 = gl_WorldRayOriginEXT; - vec3 v6 = gl_WorldRayDirectionEXT; - vec3 v7 = gl_ObjectRayOriginEXT; - vec3 v8 = gl_ObjectRayDirectionEXT; - float v9 = gl_RayTminEXT; - float v10 = gl_RayTmaxEXT; - float v11 = gl_HitTEXT; - uint v12 = gl_HitKindEXT; - mat4x3 v13 = gl_ObjectToWorldEXT; - mat4x3 v14 = gl_WorldToObjectEXT; - int v15 = gl_GeometryIndexEXT; - mat3x4 v16 = gl_ObjectToWorld3x4EXT; - mat3x4 v17 = gl_WorldToObject3x4EXT; - traceRayEXT(accEXT, 0u, 1u, 2u, 3u, 0u, vec3(0.5f), 0.5f, vec3(1.0f), 0.75f, 1); -} diff --git a/deps/glslang/Test/spv.ext.ClosestHitShader_Errors.rchit b/deps/glslang/Test/spv.ext.ClosestHitShader_Errors.rchit deleted file mode 100644 index 6416f1ff..00000000 --- a/deps/glslang/Test/spv.ext.ClosestHitShader_Errors.rchit +++ /dev/null @@ -1,15 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : enable -hitAttributeEXT vec4 payload; -layout(binding = 0, set = 0) uniform accelerationStructureEXT accEXT; -layout(location = 2) rayPayloadEXT vec4 payload0; -layout(location = 2) rayPayloadInEXT block { vec4 data; }; // ERROR : location already used -void main() -{ - payload.x = 1.0f; // ERROR, cannot write to hitattributeEXT in stage - reportIntersectionEXT(1.0, 1U); // ERROR, unsupported builtin in stage - terminateRayEXT; - ignoreIntersectionEXT; - bool e1 = gl_IncomingRayFlagsEXT == gl_RayFlagsSkipAABBEXT; - traceRayEXT(accEXT, 0, 0, 0, 0, 0, vec3(0.0), 0.0, vec3(1.0), 1.0, 0); //ERROR no payload variable with location = 0 -} diff --git a/deps/glslang/Test/spv.ext.ClosestHitShader_Subgroup.rchit b/deps/glslang/Test/spv.ext.ClosestHitShader_Subgroup.rchit deleted file mode 100644 index ce2091a0..00000000 --- a/deps/glslang/Test/spv.ext.ClosestHitShader_Subgroup.rchit +++ /dev/null @@ -1,16 +0,0 @@ -#version 460 -#pragma use_vulkan_memory_model -#extension GL_EXT_ray_tracing : enable -#extension GL_NV_shader_sm_builtins : enable -#extension GL_KHR_shader_subgroup_ballot : enable -#extension GL_ARB_shader_ballot : enable -#extension GL_NV_shader_sm_builtins : enable -layout(binding = 0, set = 0) uniform accelerationStructureEXT accEXT; -layout(location = 1) rayPayloadInEXT vec4 incomingPayload; -void main() -{ - traceRayEXT(accEXT, 0u, 1u, 2u, 3u, 0u, vec3(0.5f), 0.5f, vec3(1.0f), 0.75f, 1); - incomingPayload.x = float(gl_SubgroupInvocationID) + float(gl_SubGroupGeMaskARB) + - float(gl_SubgroupGtMask) + float(gl_SubgroupLeMask) + - float(gl_SubGroupLtMaskARB) + float(gl_SMIDNV); -} diff --git a/deps/glslang/Test/spv.ext.IntersectShader.rint b/deps/glslang/Test/spv.ext.IntersectShader.rint deleted file mode 100644 index 4933ff5e..00000000 --- a/deps/glslang/Test/spv.ext.IntersectShader.rint +++ /dev/null @@ -1,23 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : enable -hitAttributeEXT vec4 iAttr; -void main() -{ - uvec3 v0 = gl_LaunchIDEXT; - uvec3 v1 = gl_LaunchSizeEXT; - int v2 = gl_PrimitiveID; - int v3 = gl_InstanceID; - int v4 = gl_InstanceCustomIndexEXT; - vec3 v5 = gl_WorldRayOriginEXT; - vec3 v6 = gl_WorldRayDirectionEXT; - vec3 v7 = gl_ObjectRayOriginEXT; - vec3 v8 = gl_ObjectRayDirectionEXT; - float v9 = gl_RayTminEXT; - float v10 = gl_RayTmaxEXT; - mat4x3 v11 = gl_ObjectToWorldEXT; - mat4x3 v12 = gl_WorldToObjectEXT; - mat3x4 v13 = gl_ObjectToWorld3x4EXT; - mat3x4 v14 = gl_WorldToObject3x4EXT; - iAttr = vec4(0.5f,0.5f,0.0f,1.0f); - reportIntersectionEXT(0.5, 1U); -} diff --git a/deps/glslang/Test/spv.ext.IntersectShader_Errors.rint b/deps/glslang/Test/spv.ext.IntersectShader_Errors.rint deleted file mode 100644 index e767ca36..00000000 --- a/deps/glslang/Test/spv.ext.IntersectShader_Errors.rint +++ /dev/null @@ -1,11 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : enable -rayPayloadInEXT vec4 payloadIn; // ERROR, rayPayloadIn unsupported in this stage -rayPayloadEXT vec4 payload; // ERROR, rayPayload unsuppoted in this stage -uniform accelerationStructureEXT accEXT; -void main() -{ - float e12 = gl_HitTEXT; // ERROR, unsupported builtin in stage - float e13 = gl_HitKindEXT; // ERROR, unsupported builtin in stage - traceRayEXT(accEXT, 0, 0, 1, 1, 0, vec3(0.0f), 0.5f, vec3(1.0f), 0.75f, 0); // ERROR, unsupported -} diff --git a/deps/glslang/Test/spv.ext.MissShader.rmiss b/deps/glslang/Test/spv.ext.MissShader.rmiss deleted file mode 100644 index 05311c9e..00000000 --- a/deps/glslang/Test/spv.ext.MissShader.rmiss +++ /dev/null @@ -1,28 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : enable -#extension GL_NV_shader_sm_builtins : enable -#extension GL_KHR_shader_subgroup_ballot : enable -#extension GL_ARB_shader_ballot : enable -#extension GL_NV_shader_sm_builtins : enable -#extension GL_ARB_sparse_texture_clamp: enable - -layout(binding = 0, set = 0) uniform accelerationStructureEXT accEXT; -layout(location = 0) rayPayloadEXT vec4 localPayload; -layout(location = 1) rayPayloadInEXT vec4 incomingPayload; - -layout(binding = 1, set = 0) uniform sampler2D s2D; -layout(location = 2) in vec2 c2; -layout(location = 3) in float lodClamp; - -void main() -{ - uvec3 v0 = gl_LaunchIDEXT; - uvec3 v1 = gl_LaunchSizeEXT; - vec3 v2 = gl_WorldRayOriginEXT; - vec3 v3 = gl_WorldRayDirectionEXT; - float v4 = gl_RayTminEXT; - float v5 = gl_RayTmaxEXT; - traceRayEXT(accEXT, 0u, 1u, 2u, 3u, 0u, vec3(0.5f), 0.5f, vec3(1.0f), 0.75f, 1); - incomingPayload.x = float(gl_SubGroupSizeARB) + float(gl_SubgroupEqMask) + float(gl_WarpIDNV); - vec4 texel = textureGradOffsetClampARB(s2D, c2, c2, c2, ivec2(5), lodClamp); -} diff --git a/deps/glslang/Test/spv.ext.MissShader_Errors.rmiss b/deps/glslang/Test/spv.ext.MissShader_Errors.rmiss deleted file mode 100644 index c921f231..00000000 --- a/deps/glslang/Test/spv.ext.MissShader_Errors.rmiss +++ /dev/null @@ -1,16 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : enable -hitAttributeEXT vec4 payload; // ERROR, hitattributeEXT unsupported in this stage -void main() -{ - int e0 = gl_PrimitiveID; // ERROR, unsupported builtin in stage - int e1 = gl_InstanceID; // ERROR, unsupported builtin in stage - int e3 = gl_InstanceCustomIndexEXT; // ERROR, unsupported builtin in stage - mat4x3 e10 = gl_ObjectToWorldEXT; // ERROR, unsupported builtin in stage - mat4x3 e11 = gl_WorldToObjectEXT; // ERROR, unsupported builtin in stage - float e12 = gl_HitTEXT; // ERROR, unsupported builtin in stage - float e13 = gl_HitKindEXT; // ERROR, unsupported builtin in stage - reportIntersectionEXT(1.0, 1U); // ERROR, unsupported builtin in stage - ignoreIntersectionEXT; // ERROR, unsupported in stage - terminateRayEXT; // ERROR, unsupported in stage -} diff --git a/deps/glslang/Test/spv.ext.RayCallable.rcall b/deps/glslang/Test/spv.ext.RayCallable.rcall deleted file mode 100644 index 9ec6820d..00000000 --- a/deps/glslang/Test/spv.ext.RayCallable.rcall +++ /dev/null @@ -1,13 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : enable -layout(location = 0) callableDataEXT vec4 data0; -layout(location = 1) callableDataInEXT dataBlock { - uint data1; -}; -void main() -{ - uvec3 id = gl_LaunchIDEXT; - uvec3 size = gl_LaunchSizeEXT; - data1 = 256U; - executeCallableEXT(2,1); -} diff --git a/deps/glslang/Test/spv.ext.RayCallable_Errors.rcall b/deps/glslang/Test/spv.ext.RayCallable_Errors.rcall deleted file mode 100644 index 660ea751..00000000 --- a/deps/glslang/Test/spv.ext.RayCallable_Errors.rcall +++ /dev/null @@ -1,28 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : enable -hitAttributeEXT vec4 hitattr; // ERROR, hitattributeEXT unsupported in this stage -rayPayloadEXT vec4 payload; // ERROR, rayPayloadEXT unsupported in this stage -rayPayloadInEXT vec4 payloadIn; // ERROR, rayPayloadInEXT unsupported in this stage -layout(location = 0) callableDataEXT vec4 cd0; -layout(location = 0) callableDataEXT float cd1; // ERROR, location already used -void main() -{ - int e0 = gl_PrimitiveID; // ERROR, unsupported builtin in stage - int e1 = gl_InstanceID; // ERROR, unsupported builtin in stage - int e3 = gl_InstanceCustomIndexEXT; // ERROR, unsupported builtin in stage - vec3 e4 = gl_WorldRayOriginEXT; // ERROR, unsupported builtin in stage - vec3 e5 = gl_WorldRayDirectionEXT; // ERROR, unsupported builtin in stage - vec3 e6 = gl_ObjectRayOriginEXT; // ERROR, unsupported builtin in stage - vec3 e7 = gl_ObjectRayDirectionEXT; // ERROR, unsupported builtin in stage - float e8 = gl_RayTminEXT; // ERROR, unsupported builtin in stage - float e9 = gl_RayTmaxEXT; // ERROR, unsupported builtin in stage - mat4x3 e10 = gl_ObjectToWorldEXT; // ERROR, unsupported builtin in stage - mat4x3 e11 = gl_WorldToObjectEXT; // ERROR, unsupported builtin in stage - float e12 = gl_HitTEXT; // ERROR, unsupported builtin in stage - float e13 = gl_HitKindEXT; // ERROR, unsupported builtin in stage - uint curFlags = gl_IncomingRayFlagsEXT; // ERROR, unsupported builtin in stage - reportIntersectionEXT(1.0, 1U); // ERROR, unsupported builtin in stage - ignoreIntersectionEXT; // ERROR, unsupported in stage - terminateRayEXT; // ERROR, unsupported in stage - executeCallableEXT(1,1); // ERROR, no callable data with location 1 -} diff --git a/deps/glslang/Test/spv.ext.RayConstants.rgen b/deps/glslang/Test/spv.ext.RayConstants.rgen deleted file mode 100644 index 8e681bac..00000000 --- a/deps/glslang/Test/spv.ext.RayConstants.rgen +++ /dev/null @@ -1,15 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : enable -layout(binding = 0, set = 0) uniform accelerationStructureEXT accEXT; -layout(location = 1) rayPayloadEXT vec4 payload; -void main() -{ - const uint rayFlags = gl_RayFlagsNoneEXT | gl_RayFlagsOpaqueEXT | - gl_RayFlagsNoOpaqueEXT | gl_RayFlagsTerminateOnFirstHitEXT | - gl_RayFlagsSkipClosestHitShaderEXT | gl_RayFlagsCullBackFacingTrianglesEXT | - gl_RayFlagsCullFrontFacingTrianglesEXT | gl_RayFlagsCullOpaqueEXT | - gl_RayFlagsCullNoOpaqueEXT; - - const int payloadId = 1; - traceRayEXT(accEXT, rayFlags, 0, 1, 1, 0, vec3(0.0f), 0.5f, vec3(1.0f), 0.75f, payloadId); -} diff --git a/deps/glslang/Test/spv.ext.RayGenSBTlayout.rgen b/deps/glslang/Test/spv.ext.RayGenSBTlayout.rgen deleted file mode 100644 index a5fa2b63..00000000 --- a/deps/glslang/Test/spv.ext.RayGenSBTlayout.rgen +++ /dev/null @@ -1,28 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : enable -#extension GL_ARB_gpu_shader_int64 : enable -layout(location = 1) rayPayloadEXT vec4 payload; -// should get std430 layout -layout(shaderRecordEXT) buffer block -{ - vec3 dir; - vec3 origin; - int i; - uvec2 aHandle32; - uint64_t aHandle64; - vec2 arr2[2]; - float a; - vec3 arr3[2]; - float packme; - vec2 b; - float c; -}; -void main() -{ - uint lx = gl_LaunchIDEXT.x; - uint ly = gl_LaunchIDEXT.y; - uint sx = gl_LaunchSizeEXT.x; - uint sy = gl_LaunchSizeEXT.y; - traceRayEXT(accelerationStructureEXT(aHandle32), lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1); - traceRayEXT(accelerationStructureEXT(aHandle64), lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1); -} diff --git a/deps/glslang/Test/spv.ext.RayGenSBTlayout140.rgen b/deps/glslang/Test/spv.ext.RayGenSBTlayout140.rgen deleted file mode 100644 index 7d673a82..00000000 --- a/deps/glslang/Test/spv.ext.RayGenSBTlayout140.rgen +++ /dev/null @@ -1,27 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : enable -#extension GL_ARB_gpu_shader_int64 : enable -layout(location = 1) rayPayloadEXT vec4 payload; -layout(shaderRecordEXT, std140) buffer block -{ - vec3 dir; - vec3 origin; - int i; - uvec2 aHandle32; - uint64_t aHandle64; - vec2 arr[2]; - float a; - vec3 arr3[2]; - float packme; - vec2 b; - float c; -}; -void main() -{ - uint lx = gl_LaunchIDEXT.x; - uint ly = gl_LaunchIDEXT.y; - uint sx = gl_LaunchSizeEXT.x; - uint sy = gl_LaunchSizeEXT.y; - traceRayEXT(accelerationStructureEXT(aHandle32), lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1); - traceRayEXT(accelerationStructureEXT(aHandle64), lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1); -} diff --git a/deps/glslang/Test/spv.ext.RayGenSBTlayout430.rgen b/deps/glslang/Test/spv.ext.RayGenSBTlayout430.rgen deleted file mode 100644 index bd308b45..00000000 --- a/deps/glslang/Test/spv.ext.RayGenSBTlayout430.rgen +++ /dev/null @@ -1,27 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : enable -#extension GL_ARB_gpu_shader_int64 : enable -layout(location = 1) rayPayloadEXT vec4 payload; -layout(shaderRecordEXT, std430) buffer block -{ - vec3 dir; - vec3 origin; - int i; - uvec2 aHandle32; - uint64_t aHandle64; - vec2 arr[2]; - float a; - vec3 arr3[2]; - float packme; - vec2 b; - float c; -}; -void main() -{ - uint lx = gl_LaunchIDEXT.x; - uint ly = gl_LaunchIDEXT.y; - uint sx = gl_LaunchSizeEXT.x; - uint sy = gl_LaunchSizeEXT.y; - traceRayEXT(accelerationStructureEXT(aHandle32), lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1); - traceRayEXT(accelerationStructureEXT(aHandle64), lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1); -} diff --git a/deps/glslang/Test/spv.ext.RayGenSBTlayoutscalar.rgen b/deps/glslang/Test/spv.ext.RayGenSBTlayoutscalar.rgen deleted file mode 100644 index 16bcb13e..00000000 --- a/deps/glslang/Test/spv.ext.RayGenSBTlayoutscalar.rgen +++ /dev/null @@ -1,28 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : enable -#extension GL_ARB_gpu_shader_int64 : enable -#extension GL_EXT_scalar_block_layout : enable -layout(location = 1) rayPayloadEXT vec4 payload; -layout(shaderRecordEXT, scalar) buffer block -{ - vec3 dir; - vec3 origin; - int i; - uvec2 aHandle32; - uint64_t aHandle64; - vec2 arr[2]; - float a; - vec3 arr3[2]; - float packme; - vec2 b; - float c; -}; -void main() -{ - uint lx = gl_LaunchIDEXT.x; - uint ly = gl_LaunchIDEXT.y; - uint sx = gl_LaunchSizeEXT.x; - uint sy = gl_LaunchSizeEXT.y; - traceRayEXT(accelerationStructureEXT(aHandle32), lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1); - traceRayEXT(accelerationStructureEXT(aHandle64), lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1); -} diff --git a/deps/glslang/Test/spv.ext.RayGenShader.rgen b/deps/glslang/Test/spv.ext.RayGenShader.rgen deleted file mode 100644 index e9eb2cbb..00000000 --- a/deps/glslang/Test/spv.ext.RayGenShader.rgen +++ /dev/null @@ -1,22 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : enable -#extension GL_EXT_ray_flags_primitive_culling : enable -layout(binding = 0) uniform accelerationStructureEXT accEXT0; -layout(binding = 1, set = 0) uniform accelerationStructureEXT accEXT1; // Unused -layout(binding = 2, r32ui) shadercallcoherent uniform uimage2D imageu; -layout(location = 1) rayPayloadEXT vec4 payload; -layout(shaderRecordEXT) buffer block -{ - vec3 dir; - vec3 origin; - -}; -layout(primitive_culling); -void main() -{ - uint lx = gl_LaunchIDEXT.x; - uint ly = gl_LaunchIDEXT.y; - uint sx = gl_LaunchSizeEXT.x; - uint sy = gl_LaunchSizeEXT.y; - traceRayEXT(accEXT0, lx, ly, sx, sy, gl_RayFlagsSkipTrianglesEXT | gl_RayFlagsSkipAABBEXT, origin, 0.5f, dir, 0.75f, 1); -} diff --git a/deps/glslang/Test/spv.ext.RayGenShader11.rgen b/deps/glslang/Test/spv.ext.RayGenShader11.rgen deleted file mode 100644 index 50853d49..00000000 --- a/deps/glslang/Test/spv.ext.RayGenShader11.rgen +++ /dev/null @@ -1,17 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : enable -layout(binding = 0, set = 0) uniform accelerationStructureEXT accEXT; -layout(location = 1) rayPayloadEXT vec4 payload; -layout(shaderRecordEXT) buffer block -{ - vec3 dir; - vec3 origin; -}; -void main() -{ - uint lx = gl_LaunchIDEXT.x; - uint ly = gl_LaunchIDEXT.y; - uint sx = gl_LaunchSizeEXT.x; - uint sy = gl_LaunchSizeEXT.y; - traceRayEXT(accEXT, lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1); -} diff --git a/deps/glslang/Test/spv.ext.RayGenShaderArray.rgen b/deps/glslang/Test/spv.ext.RayGenShaderArray.rgen deleted file mode 100644 index 66286d92..00000000 --- a/deps/glslang/Test/spv.ext.RayGenShaderArray.rgen +++ /dev/null @@ -1,27 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : enable -#extension GL_EXT_nonuniform_qualifier : enable -#extension GL_ARB_gpu_shader_int64 : enable -layout(binding = 0, set = 0) uniform accelerationStructureEXT accEXT0[]; -layout(binding = 1, set = 0) uniform accelerationStructureEXT accEXT1[2]; -layout(location = 1) rayPayloadEXT vec4 payload; -layout(shaderRecordEXT) buffer block -{ - vec3 dir; - vec3 origin; - int i; - uvec2 aHandle32; - uint64_t aHandle64; -}; -void main() -{ - uint lx = gl_LaunchIDEXT.x; - uint ly = gl_LaunchIDEXT.y; - uint sx = gl_LaunchSizeEXT.x; - uint sy = gl_LaunchSizeEXT.y; - traceRayEXT(accEXT0[i], lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1); - traceRayEXT(accEXT1[i], lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1); - traceRayEXT(accEXT0[nonuniformEXT(i)], lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1); - traceRayEXT(accelerationStructureEXT(aHandle32), lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1); - traceRayEXT(accelerationStructureEXT(aHandle64), lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1); -} diff --git a/deps/glslang/Test/spv.ext.RayGenShader_Errors.rgen b/deps/glslang/Test/spv.ext.RayGenShader_Errors.rgen deleted file mode 100644 index 107df0f4..00000000 --- a/deps/glslang/Test/spv.ext.RayGenShader_Errors.rgen +++ /dev/null @@ -1,42 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : enable -hitAttributeEXT vec4 payload; // ERROR, hitattributeEXT unsupported in this stage -rayPayloadInEXT vec4 payloadIn; // ERROR, rayPayloadIn unsupported in this stage -layout(shaderRecordEXT) uniform ublock // ERROR, shaderRecordEXT unsupported on uniform blocks -{ - float a; -}; -layout(binding = 0, shaderRecordEXT) buffer bblock { // ERROR, binding unsupported on shaderRecordEXT blocks - float b; -}; -layout(set = 0, shaderRecordEXT) buffer bblock2 { // ERROR, set unsupported on shaderRecordEXT blocks - float c; -}; -layout(shaderRecordEXT) buffer bblock3 { - float d; -}; -layout(shaderRecordEXT) buffer bblock4 { // ERROR, cannot have more than one shaderRecordEXTX block - float e; -}; -void main() -{ - accelerationStructureEXT a = accelerationStructureEXT(c); - int e0 = gl_PrimitiveID; // ERROR, unsupported builtin in stage - int e1 = gl_InstanceID; // ERROR, unsupported builtin in stage - int e3 = gl_InstanceCustomIndexEXT; // ERROR, unsupported builtin in stage - vec3 e4 = gl_WorldRayOriginEXT; // ERROR, unsupported builtin in stage - vec3 e5 = gl_WorldRayDirectionEXT; // ERROR, unsupported builtin in stage - vec3 e6 = gl_ObjectRayOriginEXT; // ERROR, unsupported builtin in stage - vec3 e7 = gl_ObjectRayDirectionEXT; // ERROR, unsupported builtin in stage - float e8 = gl_RayTminEXT; // ERROR, unsupported builtin in stage - float e9 = gl_RayTmaxEXT; // ERROR, unsupported builtin in stage - mat4x3 e10 = gl_ObjectToWorldEXT; // ERROR, unsupported builtin in stage - mat4x3 e11 = gl_WorldToObjectEXT; // ERROR, unsupported builtin in stage - float e12 = gl_HitTEXT; // ERROR, unsupported builtin in stage - float e13 = gl_HitKindEXT; // ERROR, unsupported builtin in stage - int e14 = gl_RayFlagsSkipAABBEXT; // ERROR, unsupported builtin in stage - reportIntersectionEXT(1.0, 1U); // ERROR, unsupported builtin in stage - ignoreIntersectionEXT; // ERROR, unsupported builtin in stage - terminateRayEXT; // ERROR, unsupported builtin in stage - d = 1.0f; // ERROR, can't modify shaderRecordEXT block -} diff --git a/deps/glslang/Test/spv.ext.RayPrimCull_Errors.rgen b/deps/glslang/Test/spv.ext.RayPrimCull_Errors.rgen deleted file mode 100644 index 0fceccff..00000000 --- a/deps/glslang/Test/spv.ext.RayPrimCull_Errors.rgen +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : enable -layout(primitive_culling); -#extension GL_EXT_ray_flags_primitive_culling : enable -layout(primitive_culling) uniform; -layout(primitive_culling, binding = 2) uniform accelerationStructureEXT as; -layout(std140, binding = 2, primitive_culling) buffer block { int x; }; -void main() -{ -} diff --git a/deps/glslang/Test/spv.ext.RayQueryDecl.frag b/deps/glslang/Test/spv.ext.RayQueryDecl.frag deleted file mode 100644 index 8a144d6b..00000000 --- a/deps/glslang/Test/spv.ext.RayQueryDecl.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 460 -#extension GL_ARB_separate_shader_objects : enable -#extension GL_EXT_nonuniform_qualifier : enable -#extension GL_GOOGLE_include_directive : enable -#extension GL_EXT_scalar_block_layout : enable -#extension GL_EXT_ray_query : enable - -layout(location = 0) out vec4 outColor; - -rayQueryEXT rq; - -void main() { - outColor = vec4(0.0); -} diff --git a/deps/glslang/Test/spv.ext.World3x4.rahit b/deps/glslang/Test/spv.ext.World3x4.rahit deleted file mode 100644 index 4f541f82..00000000 --- a/deps/glslang/Test/spv.ext.World3x4.rahit +++ /dev/null @@ -1,21 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : enable - -hitAttributeEXT vec3 attribs; -layout(location = 0) rayPayloadInEXT vec3 hitValue; -layout(set = 0, binding = 0, r32i) uniform iimage3D result; - -void main() -{ - float k = 1048576.0f; - int ndx = -1; - for (int col = 0; col < 3; col++) - for (int row = 0; row < 4; row++) - { - ndx++; - ivec3 p = ivec3(gl_LaunchIDEXT.xy, ndx); - float r = k * gl_WorldToObject3x4EXT[col][row]; - ivec4 c = ivec4(int(r),0,0,1); - imageStore(result, p, c); - } -} diff --git a/deps/glslang/Test/spv.extPostDepthCoverage.frag b/deps/glslang/Test/spv.extPostDepthCoverage.frag deleted file mode 100644 index 20aebc39..00000000 --- a/deps/glslang/Test/spv.extPostDepthCoverage.frag +++ /dev/null @@ -1,9 +0,0 @@ -#version 310 es - -#extension GL_EXT_post_depth_coverage : enable - -layout(post_depth_coverage) in; -layout(early_fragment_tests) in; - -void main () { -} diff --git a/deps/glslang/Test/spv.extPostDepthCoverage_Error.frag b/deps/glslang/Test/spv.extPostDepthCoverage_Error.frag deleted file mode 100644 index 25ce2e2e..00000000 --- a/deps/glslang/Test/spv.extPostDepthCoverage_Error.frag +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 - -#extension GL_EXT_post_depth_coverage : enable - -layout(post_depth_coverage) in; // should fail since for GL_EXT_post_depth_coverage - // explicit declaration of early_fragment_tests is required - -void main () { -} diff --git a/deps/glslang/Test/spv.float16.frag b/deps/glslang/Test/spv.float16.frag deleted file mode 100644 index 7c94a515..00000000 --- a/deps/glslang/Test/spv.float16.frag +++ /dev/null @@ -1,306 +0,0 @@ -#version 450 core - -#extension GL_AMD_gpu_shader_half_float: enable -#extension GL_ARB_gpu_shader_int64: enable - -void main() -{ -} - -// Half float literals -void literal() -{ - const float16_t f16c = 0.000001hf; - const f16vec2 f16cv = f16vec2(-0.25HF, 0.03HF); - - f16vec2 f16v; - f16v.x = f16c; - f16v += f16cv; -} - -// Block memory layout -struct S -{ - float16_t x; // rule 1: align = 2, takes offsets 0-1 - f16vec2 y; // rule 2: align = 4, takes offsets 4-7 - f16vec3 z; // rule 3: align = 8, takes offsets 8-13 -}; - -layout(column_major, std140) uniform B1 -{ - float16_t a; // rule 1: align = 2, takes offsets 0-1 - f16vec2 b; // rule 2: align = 4, takes offsets 4-7 - f16vec3 c; // rule 3: align = 8, takes offsets 8-15 - float16_t d[2]; // rule 4: align = 16, array stride = 16, - // takes offsets 16-47 - f16mat2x3 e; // rule 5: align = 16, matrix stride = 16, - // takes offsets 48-79 - f16mat2x3 f[2]; // rule 6: align = 16, matrix stride = 16, - // array stride = 32, f[0] takes - // offsets 80-111, f[1] takes offsets - // 112-143 - S g; // rule 9: align = 16, g.x takes offsets - // 144-145, g.y takes offsets 148-151, - // g.z takes offsets 152-159 - S h[2]; // rule 10: align = 16, array stride = 16, h[0] - // takes offsets 160-175, h[1] takes - // offsets 176-191 -}; - -layout(row_major, std430) buffer B2 -{ - float16_t o; // rule 1: align = 2, takes offsets 0-1 - f16vec2 p; // rule 2: align = 4, takes offsets 4-7 - f16vec3 q; // rule 3: align = 8, takes offsets 8-13 - float16_t r[2]; // rule 4: align = 2, array stride = 2, takes - // offsets 14-17 - f16mat2x3 s; // rule 7: align = 4, matrix stride = 4, takes - // offsets 20-31 - f16mat2x3 t[2]; // rule 8: align = 4, matrix stride = 4, array - // stride = 12, t[0] takes offsets - // 32-43, t[1] takes offsets 44-55 - S u; // rule 9: align = 8, u.x takes offsets - // 56-57, u.y takes offsets 60-63, u.z - // takes offsets 64-69 - S v[2]; // rule 10: align = 8, array stride = 16, v[0] - // takes offsets 72-87, v[1] takes - // offsets 88-103 -}; - -// Specialization constant -layout(constant_id = 100) const float16_t sf16 = 0.125hf; -layout(constant_id = 101) const float sf = 0.25; -layout(constant_id = 102) const double sd = 0.5lf; - -const float f16_to_f = float(sf16); -const double f16_to_d = float(sf16); - -const float16_t f_to_f16 = float16_t(sf); -const float16_t d_to_f16 = float16_t(sd); - -void operators() -{ - float16_t f16; - f16vec2 f16v; - f16mat2x2 f16m; - bool b; - - // Arithmetic - f16v += f16v; - f16v -= f16v; - f16v *= f16v; - f16v /= f16v; - f16v++; - f16v--; - ++f16m; - --f16m; - f16v = -f16v; - f16m = -f16m; - - f16 = f16v.x + f16v.y; - f16 = f16v.x - f16v.y; - f16 = f16v.x * f16v.y; - f16 = f16v.x / f16v.y; - - // Relational - b = (f16v.x != f16); - b = (f16v.y == f16); - b = (f16v.x > f16); - b = (f16v.y < f16); - b = (f16v.x >= f16); - b = (f16v.y <= f16); - - // Vector/matrix operations - f16v = f16v * f16; - f16m = f16m * f16; - f16v = f16m * f16v; - f16v = f16v * f16m; - f16m = f16m * f16m; -} - -void typeCast() -{ - bvec3 bv; - vec3 fv; - dvec3 dv; - ivec3 iv; - uvec3 uv; - i64vec3 i64v; - u64vec3 u64v; - - f16vec3 f16v; - - f16v = f16vec3(bv); // bool -> float16 - bv = bvec3(f16v); // float16 -> bool - - f16v = f16vec3(fv); // float -> float16 - fv = vec3(f16v); // float16 -> float - - f16v = f16vec3(dv); // double -> float16 - dv = dvec3(dv); // float16 -> double - - f16v = f16vec3(iv); // int -> float16 - iv = ivec3(f16v); // float16 -> int - - f16v = f16vec3(uv); // uint -> float16 - uv = uvec3(f16v); // float16 -> uint - - f16v = f16vec3(i64v); // int64 -> float16 - i64v = i64vec3(f16v); // float16 -> int64 - - f16v = f16vec3(u64v); // uint64 -> float16 - u64v = u64vec3(f16v); // float16 -> uint64 -} - -void builtinAngleTrigFuncs() -{ - f16vec4 f16v1, f16v2; - - f16v2 = radians(f16v1); - f16v2 = degrees(f16v1); - f16v2 = sin(f16v1); - f16v2 = cos(f16v1); - f16v2 = tan(f16v1); - f16v2 = asin(f16v1); - f16v2 = acos(f16v1); - f16v2 = atan(f16v1, f16v2); - f16v2 = atan(f16v1); - f16v2 = sinh(f16v1); - f16v2 = cosh(f16v1); - f16v2 = tanh(f16v1); - f16v2 = asinh(f16v1); - f16v2 = acosh(f16v1); - f16v2 = atanh(f16v1); -} - -void builtinExpFuncs() -{ - f16vec2 f16v1, f16v2; - - f16v2 = pow(f16v1, f16v2); - f16v2 = exp(f16v1); - f16v2 = log(f16v1); - f16v2 = exp2(f16v1); - f16v2 = log2(f16v1); - f16v2 = sqrt(f16v1); - f16v2 = inversesqrt(f16v1); -} - -void builtinCommonFuncs() -{ - f16vec3 f16v1, f16v2, f16v3; - float16_t f16; - bool b; - bvec3 bv; - ivec3 iv; - - f16v2 = abs(f16v1); - f16v2 = sign(f16v1); - f16v2 = floor(f16v1); - f16v2 = trunc(f16v1); - f16v2 = round(f16v1); - f16v2 = roundEven(f16v1); - f16v2 = ceil(f16v1); - f16v2 = fract(f16v1); - f16v2 = mod(f16v1, f16v2); - f16v2 = mod(f16v1, f16); - f16v3 = modf(f16v1, f16v2); - f16v3 = min(f16v1, f16v2); - f16v3 = min(f16v1, f16); - f16v3 = max(f16v1, f16v2); - f16v3 = max(f16v1, f16); - f16v3 = clamp(f16v1, f16, f16v2.x); - f16v3 = clamp(f16v1, f16v2, f16vec3(f16)); - f16v3 = mix(f16v1, f16v2, f16); - f16v3 = mix(f16v1, f16v2, f16v3); - f16v3 = mix(f16v1, f16v2, bv); - f16v3 = step(f16v1, f16v2); - f16v3 = step(f16, f16v3); - f16v3 = smoothstep(f16v1, f16v2, f16v3); - f16v3 = smoothstep(f16, f16v1.x, f16v2); - b = isnan(f16); - bv = isinf(f16v1); - f16v3 = fma(f16v1, f16v2, f16v3); - f16v2 = frexp(f16v1, iv); - f16v2 = ldexp(f16v1, iv); -} - -void builtinPackUnpackFuncs() -{ - uint u; - f16vec2 f16v; - - u = packFloat2x16(f16v); - f16v = unpackFloat2x16(u); -} - -void builtinGeometryFuncs() -{ - float16_t f16; - f16vec3 f16v1, f16v2, f16v3; - - f16 = length(f16v1); - f16 = distance(f16v1, f16v2); - f16 = dot(f16v1, f16v2); - f16v3 = cross(f16v1, f16v2); - f16v2 = normalize(f16v1); - f16v3 = faceforward(f16v1, f16v2, f16v3); - f16v3 = reflect(f16v1, f16v2); - f16v3 = refract(f16v1, f16v2, f16); -} - -void builtinMatrixFuncs() -{ - f16mat2x3 f16m1, f16m2, f16m3; - f16mat3x2 f16m4; - f16mat3 f16m5; - f16mat4 f16m6, f16m7; - - f16vec3 f16v1; - f16vec2 f16v2; - - float16_t f16; - - f16m3 = matrixCompMult(f16m1, f16m2); - f16m1 = outerProduct(f16v1, f16v2); - f16m4 = transpose(f16m1); - f16 = determinant(f16m5); - f16m6 = inverse(f16m7); -} - -void builtinVecRelFuncs() -{ - f16vec3 f16v1, f16v2; - bvec3 bv; - - bv = lessThan(f16v1, f16v2); - bv = lessThanEqual(f16v1, f16v2); - bv = greaterThan(f16v1, f16v2); - bv = greaterThanEqual(f16v1, f16v2); - bv = equal(f16v1, f16v2); - bv = notEqual(f16v1, f16v2); -} - -in f16vec3 if16v; - -void builtinFragProcFuncs() -{ - f16vec3 f16v; - - // Derivative - f16v.x = dFdx(if16v.x); - f16v.y = dFdy(if16v.y); - f16v.xy = dFdxFine(if16v.xy); - f16v.xy = dFdyFine(if16v.xy); - f16v = dFdxCoarse(if16v); - f16v = dFdxCoarse(if16v); - - f16v.x = fwidth(if16v.x); - f16v.xy = fwidthFine(if16v.xy); - f16v = fwidthCoarse(if16v); - - // Interpolation - f16v.x = interpolateAtCentroid(if16v.x); - f16v.xy = interpolateAtSample(if16v.xy, 1); - f16v = interpolateAtOffset(if16v, f16vec2(0.5hf)); -} diff --git a/deps/glslang/Test/spv.float16Fetch.frag b/deps/glslang/Test/spv.float16Fetch.frag deleted file mode 100644 index eeda1dd5..00000000 --- a/deps/glslang/Test/spv.float16Fetch.frag +++ /dev/null @@ -1,1274 +0,0 @@ -#version 450 core - -#extension GL_ARB_sparse_texture2: enable -#extension GL_ARB_sparse_texture_clamp: enable -#extension GL_AMD_gpu_shader_half_float: enable -#extension GL_AMD_gpu_shader_half_float_fetch: enable -#extension GL_AMD_texture_gather_bias_lod: enable - -layout(set = 0, binding = 0) uniform f16sampler1D s1D; -layout(set = 0, binding = 1) uniform f16sampler2D s2D; -layout(set = 0, binding = 2) uniform f16sampler3D s3D; -layout(set = 0, binding = 3) uniform f16sampler2DRect s2DRect; -layout(set = 0, binding = 4) uniform f16samplerCube sCube; -layout(set = 0, binding = 5) uniform f16samplerBuffer sBuffer; -layout(set = 0, binding = 6) uniform f16sampler2DMS s2DMS; -layout(set = 0, binding = 7) uniform f16sampler1DArray s1DArray; -layout(set = 0, binding = 8) uniform f16sampler2DArray s2DArray; -layout(set = 0, binding = 9) uniform f16samplerCubeArray sCubeArray; -layout(set = 0, binding = 10) uniform f16sampler2DMSArray s2DMSArray; - -layout(set = 0, binding = 11) uniform f16sampler1DShadow s1DShadow; -layout(set = 0, binding = 12) uniform f16sampler2DShadow s2DShadow; -layout(set = 0, binding = 13) uniform f16sampler2DRectShadow s2DRectShadow; -layout(set = 0, binding = 14) uniform f16samplerCubeShadow sCubeShadow; -layout(set = 0, binding = 15) uniform f16sampler1DArrayShadow s1DArrayShadow; -layout(set = 0, binding = 16) uniform f16sampler2DArrayShadow s2DArrayShadow; -layout(set = 0, binding = 17) uniform f16samplerCubeArrayShadow sCubeArrayShadow; - -layout(set = 1, binding = 0) layout(rgba16f) uniform f16image1D i1D; -layout(set = 1, binding = 1) layout(rgba16f) uniform f16image2D i2D; -layout(set = 1, binding = 2) layout(rgba16f) uniform f16image3D i3D; -layout(set = 1, binding = 3) layout(rgba16f) uniform f16image2DRect i2DRect; -layout(set = 1, binding = 4) layout(rgba16f) uniform f16imageCube iCube; -layout(set = 1, binding = 5) layout(rgba16f) uniform f16image1DArray i1DArray; -layout(set = 1, binding = 6) layout(rgba16f) uniform f16image2DArray i2DArray; -layout(set = 1, binding = 7) layout(rgba16f) uniform f16imageCubeArray iCubeArray; -layout(set = 1, binding = 8) layout(rgba16f) uniform f16imageBuffer iBuffer; -layout(set = 1, binding = 9) layout(rgba16f) uniform f16image2DMS i2DMS; -layout(set = 1, binding = 10) layout(rgba16f) uniform f16image2DMSArray i2DMSArray; - -layout(set = 2, binding = 0) uniform f16texture1D t1D; -layout(set = 2, binding = 1) uniform f16texture2D t2D; -layout(set = 2, binding = 2) uniform f16texture3D t3D; -layout(set = 2, binding = 3) uniform f16texture2DRect t2DRect; -layout(set = 2, binding = 4) uniform f16textureCube tCube; -layout(set = 2, binding = 5) uniform f16texture1DArray t1DArray; -layout(set = 2, binding = 6) uniform f16texture2DArray t2DArray; -layout(set = 2, binding = 7) uniform f16textureCubeArray tCubeArray; -layout(set = 2, binding = 8) uniform f16textureBuffer tBuffer; -layout(set = 2, binding = 9) uniform f16texture2DMS t2DMS; -layout(set = 2, binding = 10) uniform f16texture2DMSArray t2DMSArray; - -layout(set = 2, binding = 11) uniform sampler s; -layout(set = 2, binding = 12) uniform samplerShadow sShadow; - -layout(set = 3, binding = 0, input_attachment_index = 0) uniform f16subpassInput subpass; -layout(set = 3, binding = 1, input_attachment_index = 0) uniform f16subpassInputMS subpassMS; - -layout(location = 0) in float c1; -layout(location = 1) in vec2 c2; -layout(location = 2) in vec3 c3; -layout(location = 3) in vec4 c4; - -layout(location = 4) in float compare; -layout(location = 5) in float lod; -layout(location = 6) in float bias; -layout(location = 7) in float lodClamp; - -layout(location = 8) in float dPdxy1; -layout(location = 9) in vec2 dPdxy2; -layout(location = 10) in vec3 dPdxy3; - -layout(location = 11) in float16_t f16c1; -layout(location = 12) in f16vec2 f16c2; -layout(location = 13) in f16vec3 f16c3; -layout(location = 14) in f16vec4 f16c4; - -layout(location = 15) in float16_t f16lod; -layout(location = 16) in float16_t f16bias; -layout(location = 17) in float16_t f16lodClamp; - -layout(location = 18) in float16_t f16dPdxy1; -layout(location = 19) in f16vec2 f16dPdxy2; -layout(location = 20) in f16vec3 f16dPdxy3; - -const int offset1 = 1; -const ivec2 offset2 = ivec2(1); -const ivec3 offset3 = ivec3(1); -const ivec2 offsets[4] = { offset2, offset2, offset2, offset2 }; - -layout(location = 0) out vec4 fragColor; - -f16vec4 testTexture() -{ - f16vec4 texel = f16vec4(0.0hf); - - texel += texture(s1D, c1); - texel += texture(s1D, f16c1, f16bias); - texel += texture(s2D, c2); - texel += texture(s2D, f16c2, f16bias); - texel += texture(s3D, c3); - texel += texture(s3D, f16c3, f16bias); - texel += texture(sCube, c3); - texel += texture(sCube, f16c3, f16bias); - texel.x += texture(s1DShadow, c3); - texel.x += texture(s1DShadow, f16c2, compare, f16bias); - texel.x += texture(s2DShadow, c3); - texel.x += texture(s2DShadow, f16c2, compare, f16bias); - texel.x += texture(sCubeShadow, c4); - texel.x += texture(sCubeShadow, f16c3, compare, f16bias); - texel += texture(s1DArray, c2); - texel += texture(s1DArray, f16c2, f16bias); - texel += texture(s2DArray, c3); - texel += texture(s2DArray, f16c3, f16bias); - texel += texture(sCubeArray, c4); - texel += texture(sCubeArray, f16c4, f16bias); - texel.x += texture(s1DArrayShadow, c3); - texel.x += texture(s1DArrayShadow, f16c2, compare, f16bias); - texel.x += texture(s2DArrayShadow, c4); - texel.x += texture(s2DArrayShadow, f16c3, compare); - texel += texture(s2DRect, c2); - texel += texture(s2DRect, f16c2); - texel.x += texture(s2DRectShadow, c3); - texel.x += texture(s2DRectShadow, f16c2, compare); - texel.x += texture(sCubeArrayShadow, c4, compare); - texel.x += texture(sCubeArrayShadow, f16c4, compare); - - return texel; -} - -f16vec4 testTextureProj() -{ - f16vec4 texel = f16vec4(0.0hf); - - texel += textureProj(s1D, c2); - texel += textureProj(s1D, f16c2, f16bias); - texel += textureProj(s1D, c4); - texel += textureProj(s1D, f16c4, f16bias); - texel += textureProj(s2D, c3); - texel += textureProj(s2D, f16c3, f16bias); - texel += textureProj(s2D, c4); - texel += textureProj(s2D, f16c4, f16bias); - texel += textureProj(s3D, c4); - texel += textureProj(s3D, f16c4, f16bias); - texel.x += textureProj(s1DShadow, c4); - texel.x += textureProj(s1DShadow, f16c3, compare, f16bias); - texel.x += textureProj(s2DShadow, c4); - texel.x += textureProj(s2DShadow, f16c3, compare, f16bias); - texel += textureProj(s2DRect, c3); - texel += textureProj(s2DRect, f16c3); - texel += textureProj(s2DRect, c4); - texel += textureProj(s2DRect, f16c4); - texel.x += textureProj(s2DRectShadow, c4); - texel.x += textureProj(s2DRectShadow, f16c3, compare); - - return texel; -} - -f16vec4 testTextureLod() -{ - f16vec4 texel = f16vec4(0.0hf); - - texel += textureLod(s1D, c1, lod); - texel += textureLod(s1D, f16c1, f16lod); - texel += textureLod(s2D, c2, lod); - texel += textureLod(s2D, f16c2, f16lod); - texel += textureLod(s3D, c3, lod); - texel += textureLod(s3D, f16c3, f16lod); - texel += textureLod(sCube, c3, lod); - texel += textureLod(sCube, f16c3, f16lod); - texel.x += textureLod(s1DShadow, c3, lod); - texel.x += textureLod(s1DShadow, f16c2, compare, f16lod); - texel.x += textureLod(s2DShadow, c3, lod); - texel.x += textureLod(s2DShadow, f16c2, compare, f16lod); - texel += textureLod(s1DArray, c2, lod); - texel += textureLod(s1DArray, f16c2, f16lod); - texel += textureLod(s2DArray, c3, lod); - texel += textureLod(s2DArray, f16c3, f16lod); - texel.x += textureLod(s1DArrayShadow, c3, lod); - texel.x += textureLod(s1DArrayShadow, f16c2, compare, f16lod); - texel += textureLod(sCubeArray, c4, lod); - texel += textureLod(sCubeArray, f16c4, f16lod); - - return texel; -} - -f16vec4 testTextureOffset() -{ - f16vec4 texel = f16vec4(0.0hf); - - texel += textureOffset(s1D, c1, offset1); - texel += textureOffset(s1D, f16c1, offset1, f16bias); - texel += textureOffset(s2D, c2, offset2); - texel += textureOffset(s2D, f16c2, offset2, f16bias); - texel += textureOffset(s3D, c3, offset3); - texel += textureOffset(s3D, f16c3, offset3, f16bias); - texel += textureOffset(s2DRect, c2, offset2); - texel += textureOffset(s2DRect, f16c2, offset2); - texel.x += textureOffset(s2DRectShadow, c3, offset2); - texel.x += textureOffset(s2DRectShadow, f16c2, compare, offset2); - texel.x += textureOffset(s1DShadow, c3, offset1); - texel.x += textureOffset(s1DShadow, f16c2, compare, offset1, f16bias); - texel.x += textureOffset(s2DShadow, c3, offset2); - texel.x += textureOffset(s2DShadow, f16c2, compare, offset2, f16bias); - texel += textureOffset(s1DArray, c2, offset1); - texel += textureOffset(s1DArray, f16c2, offset1, f16bias); - texel += textureOffset(s2DArray, c3, offset2); - texel += textureOffset(s2DArray, f16c3, offset2, f16bias); - texel.x += textureOffset(s1DArrayShadow, c3, offset1); - texel.x += textureOffset(s1DArrayShadow, f16c2, compare, offset1, f16bias); - texel.x += textureOffset(s2DArrayShadow, c4, offset2); - texel.x += textureOffset(s2DArrayShadow, f16c3, compare, offset2); - - return texel; -} - -f16vec4 testTextureProjOffset() -{ - f16vec4 texel = f16vec4(0.0hf); - - texel += textureProjOffset(s1D, c2, offset1); - texel += textureProjOffset(s1D, f16c2, offset1, f16bias); - texel += textureProjOffset(s1D, c4, offset1); - texel += textureProjOffset(s1D, f16c4, offset1, f16bias); - texel += textureProjOffset(s2D, c3, offset2); - texel += textureProjOffset(s2D, f16c3, offset2, f16bias); - texel += textureProjOffset(s2D, c4, offset2); - texel += textureProjOffset(s2D, f16c4, offset2, f16bias); - texel += textureProjOffset(s3D, c4, offset3); - texel += textureProjOffset(s3D, f16c4, offset3, f16bias); - texel += textureProjOffset(s2DRect, c3, offset2); - texel += textureProjOffset(s2DRect, f16c3, offset2); - texel += textureProjOffset(s2DRect, c4, offset2); - texel += textureProjOffset(s2DRect, f16c4, offset2); - texel.x += textureProjOffset(s2DRectShadow, c4, offset2); - texel.x += textureProjOffset(s2DRectShadow, f16c3, compare, offset2); - texel.x += textureProjOffset(s1DShadow, c4, offset1); - texel.x += textureProjOffset(s1DShadow, f16c3, compare, offset1, f16bias); - texel.x += textureProjOffset(s2DShadow, c4, offset2); - texel.x += textureProjOffset(s2DShadow, f16c3, compare, offset2, f16bias); - - return texel; -} - -f16vec4 testTextureLodOffset() -{ - f16vec4 texel = f16vec4(0.0hf); - - texel += textureLodOffset(s1D, c1, lod, offset1); - texel += textureLodOffset(s1D, f16c1, f16lod, offset1); - texel += textureLodOffset(s2D, c2, lod, offset2); - texel += textureLodOffset(s2D, f16c2, f16lod, offset2); - texel += textureLodOffset(s3D, c3, lod, offset3); - texel += textureLodOffset(s3D, f16c3, f16lod, offset3); - texel.x += textureLodOffset(s1DShadow, c3, lod, offset1); - texel.x += textureLodOffset(s1DShadow, f16c2, compare, f16lod, offset1); - texel.x += textureLodOffset(s2DShadow, c3, lod, offset2); - texel.x += textureLodOffset(s2DShadow, f16c2, compare, f16lod, offset2); - texel += textureLodOffset(s1DArray, c2, lod, offset1); - texel += textureLodOffset(s1DArray, f16c2, f16lod, offset1); - texel += textureLodOffset(s2DArray, c3, lod, offset2); - texel += textureLodOffset(s2DArray, f16c3, f16lod, offset2); - texel.x += textureLodOffset(s1DArrayShadow, c3, lod, offset1); - texel.x += textureLodOffset(s1DArrayShadow, f16c2, compare, f16lod, offset1); - - return texel; -} - -f16vec4 testTextureProjLodOffset() -{ - f16vec4 texel = f16vec4(0.0hf); - - texel += textureProjLodOffset(s1D, c2, lod, offset1); - texel += textureProjLodOffset(s1D, f16c2, f16lod, offset1); - texel += textureProjLodOffset(s1D, c4, lod, offset1); - texel += textureProjLodOffset(s1D, f16c4, f16lod, offset1); - texel += textureProjLodOffset(s2D, c3, lod, offset2); - texel += textureProjLodOffset(s2D, f16c3, f16lod, offset2); - texel += textureProjLodOffset(s2D, c4, lod, offset2); - texel += textureProjLodOffset(s2D, f16c4, f16lod, offset2); - texel += textureProjLodOffset(s3D, c4, lod, offset3); - texel += textureProjLodOffset(s3D, f16c4, f16lod, offset3); - texel.x += textureProjLodOffset(s1DShadow, c4, lod, offset1); - texel.x += textureProjLodOffset(s1DShadow, f16c3, compare, f16lod, offset1); - texel.x += textureProjLodOffset(s2DShadow, c4, lod, offset2); - texel.x += textureProjLodOffset(s2DShadow, f16c3, compare, f16lod, offset2); - - return texel; -} - -f16vec4 testTexelFetch() -{ - f16vec4 texel = f16vec4(0.0hf); - - texel += texelFetch(s1D, int(c1), int(lod)); - texel += texelFetch(s2D, ivec2(c2), int(lod)); - texel += texelFetch(s3D, ivec3(c3), int(lod)); - texel += texelFetch(s2DRect, ivec2(c2)); - texel += texelFetch(s1DArray, ivec2(c2), int(lod)); - texel += texelFetch(s2DArray, ivec3(c3), int(lod)); - texel += texelFetch(sBuffer, int(c1)); - texel += texelFetch(s2DMS, ivec2(c2), 1); - texel += texelFetch(s2DMSArray, ivec3(c3), 2); - - return texel; -} - -f16vec4 testTexelFetchOffset() -{ - f16vec4 texel = f16vec4(0.0hf); - - texel += texelFetchOffset(s1D, int(c1), int(lod), offset1); - texel += texelFetchOffset(s2D, ivec2(c2), int(lod), offset2); - texel += texelFetchOffset(s3D, ivec3(c3), int(lod), offset3); - texel += texelFetchOffset(s2DRect, ivec2(c2), offset2); - texel += texelFetchOffset(s1DArray, ivec2(c2), int(lod), offset1); - texel += texelFetchOffset(s2DArray, ivec3(c3), int(lod), offset2); - - return texel; -} - -f16vec4 testTextureGrad() -{ - f16vec4 texel = f16vec4(0.0hf); - - texel += textureGrad(s1D, c1, dPdxy1, dPdxy1); - texel += textureGrad(s1D, f16c1, f16dPdxy1, f16dPdxy1); - texel += textureGrad(s2D, c2, dPdxy2, dPdxy2); - texel += textureGrad(s2D, f16c2, f16dPdxy2, f16dPdxy2); - texel += textureGrad(s3D, c3, dPdxy3, dPdxy3); - texel += textureGrad(s3D, f16c3, f16dPdxy3, f16dPdxy3); - texel += textureGrad(sCube, c3, dPdxy3, dPdxy3); - texel += textureGrad(sCube, f16c3, f16dPdxy3, f16dPdxy3); - texel += textureGrad(s2DRect, c2, dPdxy2, dPdxy2); - texel += textureGrad(s2DRect, f16c2, f16dPdxy2, f16dPdxy2); - texel.x += textureGrad(s2DRectShadow, c3, dPdxy2, dPdxy2); - texel.x += textureGrad(s2DRectShadow, f16c2, compare, f16dPdxy2, f16dPdxy2); - texel.x += textureGrad(s1DShadow, c3, dPdxy1, dPdxy1); - texel.x += textureGrad(s1DShadow, f16c2, compare, f16dPdxy1, f16dPdxy1); - texel.x += textureGrad(s2DShadow, c3, dPdxy2, dPdxy2); - texel.x += textureGrad(s2DShadow, f16c2, compare, f16dPdxy2, f16dPdxy2); - texel.x += textureGrad(sCubeShadow, c4, dPdxy3, dPdxy3); - texel.x += textureGrad(sCubeShadow, f16c3, compare, f16dPdxy3, f16dPdxy3); - texel += textureGrad(s1DArray, c2, dPdxy1, dPdxy1); - texel += textureGrad(s1DArray, f16c2, f16dPdxy1, f16dPdxy1); - texel += textureGrad(s2DArray, c3, dPdxy2, dPdxy2); - texel += textureGrad(s2DArray, f16c3, f16dPdxy2, f16dPdxy2); - texel.x += textureGrad(s1DArrayShadow, c3, dPdxy1, dPdxy1); - texel.x += textureGrad(s1DArrayShadow, f16c2, compare, f16dPdxy1, f16dPdxy1); - texel.x += textureGrad(s2DArrayShadow, c4, dPdxy2, dPdxy2); - texel.x += textureGrad(s2DArrayShadow, f16c3, compare, f16dPdxy2, f16dPdxy2); - texel += textureGrad(sCubeArray, c4, dPdxy3, dPdxy3); - texel += textureGrad(sCubeArray, f16c4, f16dPdxy3, f16dPdxy3); - - return texel; -} - -f16vec4 testTextureGradOffset() -{ - f16vec4 texel = f16vec4(0.0hf); - - texel += textureGradOffset(s1D, c1, dPdxy1, dPdxy1, offset1); - texel += textureGradOffset(s1D, f16c1, f16dPdxy1, f16dPdxy1, offset1); - texel += textureGradOffset(s2D, c2, dPdxy2, dPdxy2, offset2); - texel += textureGradOffset(s2D, f16c2, f16dPdxy2, f16dPdxy2, offset2); - texel += textureGradOffset(s3D, c3, dPdxy3, dPdxy3, offset3); - texel += textureGradOffset(s3D, f16c3, f16dPdxy3, f16dPdxy3, offset3); - texel += textureGradOffset(s2DRect, c2, dPdxy2, dPdxy2, offset2); - texel += textureGradOffset(s2DRect, f16c2, f16dPdxy2, f16dPdxy2, offset2); - texel.x += textureGradOffset(s2DRectShadow, c3, dPdxy2, dPdxy2, offset2); - texel.x += textureGradOffset(s2DRectShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, offset2); - texel.x += textureGradOffset(s1DShadow, c3, dPdxy1, dPdxy1, offset1); - texel.x += textureGradOffset(s1DShadow, f16c2, compare, f16dPdxy1, f16dPdxy1, offset1); - texel.x += textureGradOffset(s2DShadow, c3, dPdxy2, dPdxy2, offset2); - texel.x += textureGradOffset(s2DShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, offset2); - texel += textureGradOffset(s1DArray, c2, dPdxy1, dPdxy1, offset1); - texel += textureGradOffset(s1DArray, f16c2, f16dPdxy1, f16dPdxy1, offset1); - texel += textureGradOffset(s2DArray, c3, dPdxy2, dPdxy2, offset2); - texel += textureGradOffset(s2DArray, f16c3, f16dPdxy2, f16dPdxy2, offset2); - texel.x += textureGradOffset(s1DArrayShadow, c3, dPdxy1, dPdxy1, offset1); - texel.x += textureGradOffset(s1DArrayShadow, f16c2, compare, f16dPdxy1, f16dPdxy1, offset1); - texel.x += textureGradOffset(s2DArrayShadow, c4, dPdxy2, dPdxy2, offset2); - texel.x += textureGradOffset(s2DArrayShadow, f16c3, compare, f16dPdxy2, f16dPdxy2, offset2); - - return texel; -} - -f16vec4 testTextureProjGrad() -{ - f16vec4 texel = f16vec4(0.0hf); - - texel += textureProjGrad(s1D, c2, dPdxy1, dPdxy1); - texel += textureProjGrad(s1D, f16c2, f16dPdxy1, f16dPdxy1); - texel += textureProjGrad(s1D, c4, dPdxy1, dPdxy1); - texel += textureProjGrad(s1D, f16c4, f16dPdxy1, f16dPdxy1); - texel += textureProjGrad(s2D, c3, dPdxy2, dPdxy2); - texel += textureProjGrad(s2D, f16c3, f16dPdxy2, f16dPdxy2); - texel += textureProjGrad(s2D, c4, dPdxy2, dPdxy2); - texel += textureProjGrad(s2D, f16c4, f16dPdxy2, f16dPdxy2); - texel += textureProjGrad(s3D, c4, dPdxy3, dPdxy3); - texel += textureProjGrad(s3D, f16c4, f16dPdxy3, f16dPdxy3); - texel += textureProjGrad(s2DRect, c3, dPdxy2, dPdxy2); - texel += textureProjGrad(s2DRect, f16c3, f16dPdxy2, f16dPdxy2); - texel += textureProjGrad(s2DRect, c4, dPdxy2, dPdxy2); - texel += textureProjGrad(s2DRect, f16c4, f16dPdxy2, f16dPdxy2); - texel.x += textureProjGrad(s2DRectShadow, c4, dPdxy2, dPdxy2); - texel.x += textureProjGrad(s2DRectShadow, f16c3, compare, f16dPdxy2, f16dPdxy2); - texel.x += textureProjGrad(s1DShadow, c4, dPdxy1, dPdxy1); - texel.x += textureProjGrad(s1DShadow, f16c3, compare, f16dPdxy1, f16dPdxy1); - texel.x += textureProjGrad(s2DShadow, c4, dPdxy2, dPdxy2); - texel.x += textureProjGrad(s2DShadow, f16c3, compare, f16dPdxy2, f16dPdxy2); - - return texel; -} - -f16vec4 testTextureProjGradoffset() -{ - f16vec4 texel = f16vec4(0.0hf); - - texel += textureProjGradOffset(s1D, c2, dPdxy1, dPdxy1, offset1); - texel += textureProjGradOffset(s1D, f16c2, f16dPdxy1, f16dPdxy1, offset1); - texel += textureProjGradOffset(s1D, c4, dPdxy1, dPdxy1, offset1); - texel += textureProjGradOffset(s1D, f16c4, f16dPdxy1, f16dPdxy1, offset1); - texel += textureProjGradOffset(s2D, c3, dPdxy2, dPdxy2, offset2); - texel += textureProjGradOffset(s2D, f16c3, f16dPdxy2, f16dPdxy2, offset2); - texel += textureProjGradOffset(s2D, c4, dPdxy2, dPdxy2, offset2); - texel += textureProjGradOffset(s2D, f16c4, f16dPdxy2, f16dPdxy2, offset2); - texel += textureProjGradOffset(s2DRect, c3, dPdxy2, dPdxy2, offset2); - texel += textureProjGradOffset(s2DRect, f16c3, f16dPdxy2, f16dPdxy2, offset2); - texel += textureProjGradOffset(s2DRect, c4, dPdxy2, dPdxy2, offset2); - texel += textureProjGradOffset(s2DRect, f16c4, f16dPdxy2, f16dPdxy2, offset2); - texel.x += textureProjGradOffset(s2DRectShadow, c4, dPdxy2, dPdxy2, offset2); - texel.x += textureProjGradOffset(s2DRectShadow, f16c3, compare, f16dPdxy2, f16dPdxy2, offset2); - texel += textureProjGradOffset(s3D, c4, dPdxy3, dPdxy3, offset3); - texel += textureProjGradOffset(s3D, f16c4, f16dPdxy3, f16dPdxy3, offset3); - texel.x += textureProjGradOffset(s1DShadow, c4, dPdxy1, dPdxy1, offset1); - texel.x += textureProjGradOffset(s1DShadow, f16c3, compare, f16dPdxy1, f16dPdxy1, offset1); - texel.x += textureProjGradOffset(s2DShadow, c4, dPdxy2, dPdxy2, offset2); - texel.x += textureProjGradOffset(s2DShadow, f16c3, compare, f16dPdxy2, f16dPdxy2, offset2); - - return texel; -} - -f16vec4 testTextureGather() -{ - f16vec4 texel = f16vec4(0.0hf); - - texel += textureGather(s2D, c2, 0); - texel += textureGather(s2D, f16c2, 0, f16bias); - texel += textureGather(s2DArray, c3, 0); - texel += textureGather(s2DArray, f16c3, 0, f16bias); - texel += textureGather(sCube, c3, 0); - texel += textureGather(sCube, f16c3, 0, f16bias); - texel += textureGather(sCubeArray, c4, 0); - texel += textureGather(sCubeArray, f16c4, 0, f16bias); - texel += textureGather(s2DRect, c2, 0); - texel += textureGather(s2DRect, f16c2, 0); - texel += textureGather(s2DShadow, c2, compare); - texel += textureGather(s2DShadow, f16c2, compare); - texel += textureGather(s2DArrayShadow, c3, compare); - texel += textureGather(s2DArrayShadow, f16c3, compare); - texel += textureGather(sCubeShadow, c3, compare); - texel += textureGather(sCubeShadow, f16c3, compare); - texel += textureGather(sCubeArrayShadow, c4, compare); - texel += textureGather(sCubeArrayShadow, f16c4, compare); - texel += textureGather(s2DRectShadow, c2, compare); - texel += textureGather(s2DRectShadow, f16c2, compare); - - return texel; -} - -f16vec4 testTextureGatherOffset() -{ - f16vec4 texel = f16vec4(0.0hf); - - texel += textureGatherOffset(s2D, c2, offset2, 0); - texel += textureGatherOffset(s2D, f16c2, offset2, 0, f16bias); - texel += textureGatherOffset(s2DArray, c3, offset2, 0); - texel += textureGatherOffset(s2DArray, f16c3, offset2, 0, f16bias); - texel += textureGatherOffset(s2DRect, c2, offset2, 0); - texel += textureGatherOffset(s2DRect, f16c2, offset2, 0); - texel += textureGatherOffset(s2DShadow, c2, compare, offset2); - texel += textureGatherOffset(s2DShadow, f16c2, compare, offset2); - texel += textureGatherOffset(s2DArrayShadow, c3, compare, offset2); - texel += textureGatherOffset(s2DArrayShadow, f16c3, compare, offset2); - texel += textureGatherOffset(s2DRectShadow, c2, compare, offset2); - texel += textureGatherOffset(s2DRectShadow, f16c2, compare, offset2); - - return texel; -} - -f16vec4 testTextureGatherOffsets() -{ - f16vec4 texel = f16vec4(0.0hf); - - texel += textureGatherOffsets(s2D, c2, offsets, 0); - texel += textureGatherOffsets(s2D, f16c2, offsets, 0, f16bias); - texel += textureGatherOffsets(s2DArray, c3, offsets, 0); - texel += textureGatherOffsets(s2DArray, f16c3, offsets, 0, f16bias); - texel += textureGatherOffsets(s2DRect, c2, offsets, 0); - texel += textureGatherOffsets(s2DRect, f16c2, offsets, 0); - texel += textureGatherOffsets(s2DShadow, c2, compare, offsets); - texel += textureGatherOffsets(s2DShadow, f16c2, compare, offsets); - texel += textureGatherOffsets(s2DArrayShadow, c3, compare, offsets); - texel += textureGatherOffsets(s2DArrayShadow, f16c3, compare, offsets); - texel += textureGatherOffsets(s2DRectShadow, c2, compare, offsets); - texel += textureGatherOffsets(s2DRectShadow, f16c2, compare, offsets); - - return texel; -} - -f16vec4 testTextureGatherLod() -{ - f16vec4 texel = f16vec4(0.0hf); - - texel += textureGatherLodAMD(s2D, c2, lod, 0); - texel += textureGatherLodAMD(s2D, f16c2, f16lod, 0); - texel += textureGatherLodAMD(s2DArray, c3, lod, 0); - texel += textureGatherLodAMD(s2DArray, f16c3, f16lod, 0); - texel += textureGatherLodAMD(sCube, c3, lod, 0); - texel += textureGatherLodAMD(sCube, f16c3, f16lod, 0); - texel += textureGatherLodAMD(sCubeArray, c4, lod, 0); - texel += textureGatherLodAMD(sCubeArray, f16c4, f16lod, 0); - - return texel; -} - -f16vec4 testTextureGatherLodOffset() -{ - f16vec4 texel = f16vec4(0.0hf); - - texel += textureGatherLodOffsetAMD(s2D, c2, lod, offset2, 0); - texel += textureGatherLodOffsetAMD(s2D, f16c2, f16lod, offset2, 0); - texel += textureGatherLodOffsetAMD(s2DArray, c3, lod, offset2, 0); - texel += textureGatherLodOffsetAMD(s2DArray, f16c3, f16lod, offset2, 0); - - return texel; -} - -f16vec4 testTextureGatherLodOffsets() -{ - f16vec4 texel = f16vec4(0.0hf); - - texel += textureGatherLodOffsetsAMD(s2D, c2, lod, offsets, 0); - texel += textureGatherLodOffsetsAMD(s2D, f16c2, f16lod, offsets, 0); - texel += textureGatherLodOffsetsAMD(s2DArray, c3, lod, offsets, 0); - texel += textureGatherLodOffsetsAMD(s2DArray, f16c3, f16lod, offsets, 0); - - return texel; -} - -ivec4 testTextureSize() -{ - ivec4 size = ivec4(0); - - size.x += textureSize(s1D, int(lod)); - size.xy += textureSize(s2D, int(lod)); - size.xyz += textureSize(s3D, int(lod)); - size.xy += textureSize(sCube, int(lod)); - size.x += textureSize(s1DShadow, int(lod)); - size.xy += textureSize(s2DShadow, int(lod)); - size.xy += textureSize(sCubeShadow, int(lod)); - size.xyz += textureSize(sCubeArray, int(lod)); - size.xyz += textureSize(sCubeArrayShadow, int(lod)); - size.xy += textureSize(s2DRect); - size.xy += textureSize(s2DRectShadow); - size.xy += textureSize(s1DArray, int(lod)); - size.xyz += textureSize(s2DArray, int(lod)); - size.xy += textureSize(s1DArrayShadow, int(lod)); - size.xyz += textureSize(s2DArrayShadow, int(lod)); - size.x += textureSize(sBuffer); - size.xy += textureSize(s2DMS); - size.xyz += textureSize(s2DMSArray); - - return size; -} - -vec2 testTextureQueryLod() -{ - vec2 lod = vec2(0.0); - - lod += textureQueryLod(s1D, c1); - lod += textureQueryLod(s1D, f16c1); - lod += textureQueryLod(s2D, c2); - lod += textureQueryLod(s2D, f16c2); - lod += textureQueryLod(s3D, c3); - lod += textureQueryLod(s3D, f16c3); - lod += textureQueryLod(sCube, c3); - lod += textureQueryLod(sCube, f16c3); - lod += textureQueryLod(s1DArray, c1); - lod += textureQueryLod(s1DArray, f16c1); - lod += textureQueryLod(s2DArray, c2); - lod += textureQueryLod(s2DArray, f16c2); - lod += textureQueryLod(sCubeArray, c3); - lod += textureQueryLod(sCubeArray, f16c3); - lod += textureQueryLod(s1DShadow, c1); - lod += textureQueryLod(s1DShadow, f16c1); - lod += textureQueryLod(s2DShadow, c2); - lod += textureQueryLod(s2DShadow, f16c2); - lod += textureQueryLod(sCubeArrayShadow, c3); - lod += textureQueryLod(sCubeArrayShadow, f16c3); - lod += textureQueryLod(s1DArrayShadow, c1); - lod += textureQueryLod(s1DArrayShadow, f16c1); - lod += textureQueryLod(s2DArrayShadow, c2); - lod += textureQueryLod(s2DArrayShadow, f16c2); - lod += textureQueryLod(sCubeArrayShadow, c3); - lod += textureQueryLod(sCubeArrayShadow, f16c3); - - return lod; -} - -int testTextureQueryLevels() -{ - int levels = 0; - - levels += textureQueryLevels(s1D); - levels += textureQueryLevels(s2D); - levels += textureQueryLevels(s3D); - levels += textureQueryLevels(sCube); - levels += textureQueryLevels(s1DShadow); - levels += textureQueryLevels(s2DShadow); - levels += textureQueryLevels(sCubeShadow); - levels += textureQueryLevels(sCubeArray); - levels += textureQueryLevels(sCubeArrayShadow); - levels += textureQueryLevels(s1DArray); - levels += textureQueryLevels(s2DArray); - levels += textureQueryLevels(s1DArrayShadow); - levels += textureQueryLevels(s2DArrayShadow); - - return levels; -} - -int testTextureSamples() -{ - int samples = 0; - - samples += textureSamples(s2DMS); - samples += textureSamples(s2DMSArray); - - return samples; -} - -f16vec4 testImageLoad() -{ - f16vec4 texel = f16vec4(0.0hf); - - texel += imageLoad(i1D, int(c1)); - texel += imageLoad(i2D, ivec2(c2)); - texel += imageLoad(i3D, ivec3(c3)); - texel += imageLoad(i2DRect, ivec2(c2)); - texel += imageLoad(iCube, ivec3(c3)); - texel += imageLoad(iBuffer, int(c1)); - texel += imageLoad(i1DArray, ivec2(c2)); - texel += imageLoad(i2DArray, ivec3(c3)); - texel += imageLoad(iCubeArray, ivec3(c3)); - texel += imageLoad(i2DMS, ivec2(c2), 1); - texel += imageLoad(i2DMSArray, ivec3(c3), 1); - - return texel; -} - -void testImageStore(f16vec4 data) -{ - imageStore(i1D, int(c1), data); - imageStore(i2D, ivec2(c2), data); - imageStore(i3D, ivec3(c3), data); - imageStore(i2DRect, ivec2(c2), data); - imageStore(iCube, ivec3(c3), data); - imageStore(iBuffer, int(c1), data); - imageStore(i1DArray, ivec2(c2), data); - imageStore(i2DArray, ivec3(c3), data); - imageStore(iCubeArray, ivec3(c3), data); - imageStore(i2DMS, ivec2(c2), 1, data); - imageStore(i2DMSArray, ivec3(c3), 1, data); -} - -f16vec4 testSparseTexture() -{ - f16vec4 texel = f16vec4(0.0hf); - - sparseTextureARB(s2D, c2, texel); - sparseTextureARB(s2D, f16c2, texel, f16bias); - sparseTextureARB(s3D, c3, texel); - sparseTextureARB(s3D, f16c3, texel, f16bias); - sparseTextureARB(sCube, c3, texel); - sparseTextureARB(sCube, f16c3, texel, f16bias); - sparseTextureARB(s2DShadow, c3, texel.x); - sparseTextureARB(s2DShadow, f16c2, compare, texel.x, f16bias); - sparseTextureARB(sCubeShadow, c4, texel.x); - sparseTextureARB(sCubeShadow, f16c3, compare, texel.x, f16bias); - sparseTextureARB(s2DArray, c3, texel); - sparseTextureARB(s2DArray, f16c3, texel, f16bias); - sparseTextureARB(sCubeArray, c4, texel); - sparseTextureARB(sCubeArray, f16c4, texel, f16bias); - sparseTextureARB(s2DArrayShadow, c4, texel.x); - sparseTextureARB(s2DArrayShadow, f16c3, compare, texel.x); - sparseTextureARB(s2DRect, c2, texel); - sparseTextureARB(s2DRect, f16c2, texel); - sparseTextureARB(s2DRectShadow, c3, texel.x); - sparseTextureARB(s2DRectShadow, f16c2, compare, texel.x); - sparseTextureARB(sCubeArrayShadow, c4, compare, texel.x); - sparseTextureARB(sCubeArrayShadow, f16c4, compare, texel.x); - - return texel; -} - -f16vec4 testSparseTextureLod() -{ - f16vec4 texel = f16vec4(0.0hf); - - sparseTextureLodARB(s2D, c2, lod, texel); - sparseTextureLodARB(s2D, f16c2, f16lod, texel); - sparseTextureLodARB(s3D, c3, lod, texel); - sparseTextureLodARB(s3D, f16c3, f16lod, texel); - sparseTextureLodARB(sCube, c3, lod, texel); - sparseTextureLodARB(sCube, f16c3, f16lod, texel); - sparseTextureLodARB(s2DShadow, c3, lod, texel.x); - sparseTextureLodARB(s2DShadow, f16c2, compare, f16lod, texel.x); - sparseTextureLodARB(s2DArray, c3, lod, texel); - sparseTextureLodARB(s2DArray, f16c3, f16lod, texel); - sparseTextureLodARB(sCubeArray, c4, lod, texel); - sparseTextureLodARB(sCubeArray, f16c4, f16lod, texel); - - return texel; -} - -f16vec4 testSparseTextureOffset() -{ - f16vec4 texel = f16vec4(0.0hf); - - sparseTextureOffsetARB(s2D, c2, offset2, texel); - sparseTextureOffsetARB(s2D, f16c2, offset2, texel, f16bias); - sparseTextureOffsetARB(s3D, c3, offset3, texel); - sparseTextureOffsetARB(s3D, f16c3, offset3, texel, f16bias); - sparseTextureOffsetARB(s2DRect, c2, offset2, texel); - sparseTextureOffsetARB(s2DRect, f16c2, offset2, texel); - sparseTextureOffsetARB(s2DRectShadow, c3, offset2, texel.x); - sparseTextureOffsetARB(s2DRectShadow, f16c2, compare, offset2, texel.x); - sparseTextureOffsetARB(s2DShadow, c3, offset2, texel.x); - sparseTextureOffsetARB(s2DShadow, f16c2, compare, offset2, texel.x, f16bias); - sparseTextureOffsetARB(s2DArray, c3, offset2, texel); - sparseTextureOffsetARB(s2DArray, f16c3, offset2, texel, f16bias); - sparseTextureOffsetARB(s2DArrayShadow, c4, offset2, texel.x); - sparseTextureOffsetARB(s2DArrayShadow, f16c3, compare, offset2, texel.x); - - return texel; -} - -f16vec4 testSparseTextureLodOffset() -{ - f16vec4 texel = f16vec4(0.0hf); - - sparseTextureLodOffsetARB(s2D, c2, lod, offset2, texel); - sparseTextureLodOffsetARB(s2D, f16c2, f16lod, offset2, texel); - sparseTextureLodOffsetARB(s3D, c3, lod, offset3, texel); - sparseTextureLodOffsetARB(s3D, f16c3, f16lod, offset3, texel); - sparseTextureLodOffsetARB(s2DShadow, c3, lod, offset2, texel.x); - sparseTextureLodOffsetARB(s2DShadow, f16c2, compare, f16lod, offset2, texel.x); - sparseTextureLodOffsetARB(s2DArray, c3, lod, offset2, texel); - sparseTextureLodOffsetARB(s2DArray, f16c3, f16lod, offset2, texel); - - return texel; -} - -f16vec4 testSparseTextureGrad() -{ - f16vec4 texel = f16vec4(0.0hf); - - sparseTextureGradARB(s2D, c2, dPdxy2, dPdxy2, texel); - sparseTextureGradARB(s2D, f16c2, f16dPdxy2, f16dPdxy2, texel); - sparseTextureGradARB(s3D, c3, dPdxy3, dPdxy3, texel); - sparseTextureGradARB(s3D, f16c3, f16dPdxy3, f16dPdxy3, texel); - sparseTextureGradARB(sCube, c3, dPdxy3, dPdxy3, texel); - sparseTextureGradARB(sCube, f16c3, f16dPdxy3, f16dPdxy3, texel); - sparseTextureGradARB(s2DRect, c2, dPdxy2, dPdxy2, texel); - sparseTextureGradARB(s2DRect, f16c2, f16dPdxy2, f16dPdxy2, texel); - sparseTextureGradARB(s2DRectShadow, c3, dPdxy2, dPdxy2, texel.x); - sparseTextureGradARB(s2DRectShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, texel.x); - sparseTextureGradARB(s2DShadow, c3, dPdxy2, dPdxy2, texel.x); - sparseTextureGradARB(s2DShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, texel.x); - sparseTextureGradARB(sCubeShadow, c4, dPdxy3, dPdxy3, texel.x); - sparseTextureGradARB(sCubeShadow, f16c3, compare, f16dPdxy3, f16dPdxy3, texel.x); - sparseTextureGradARB(s2DArray, c3, dPdxy2, dPdxy2, texel); - sparseTextureGradARB(s2DArray, f16c3, f16dPdxy2, f16dPdxy2, texel); - sparseTextureGradARB(s2DArrayShadow, c4, dPdxy2, dPdxy2, texel.x); - sparseTextureGradARB(s2DArrayShadow, f16c3, compare, f16dPdxy2, f16dPdxy2, texel.x); - sparseTextureGradARB(sCubeArray, c4, dPdxy3, dPdxy3, texel); - sparseTextureGradARB(sCubeArray, f16c4, f16dPdxy3, f16dPdxy3, texel); - - return texel; -} - -f16vec4 testSparseTextureGradOffset() -{ - f16vec4 texel = f16vec4(0.0hf); - - sparseTextureGradOffsetARB(s2D, c2, dPdxy2, dPdxy2, offset2, texel); - sparseTextureGradOffsetARB(s2D, f16c2, f16dPdxy2, f16dPdxy2, offset2, texel); - sparseTextureGradOffsetARB(s3D, c3, dPdxy3, dPdxy3, offset3, texel); - sparseTextureGradOffsetARB(s3D, f16c3, f16dPdxy3, f16dPdxy3, offset3, texel); - sparseTextureGradOffsetARB(s2DRect, c2, dPdxy2, dPdxy2, offset2, texel); - sparseTextureGradOffsetARB(s2DRect, f16c2, f16dPdxy2, f16dPdxy2, offset2, texel); - sparseTextureGradOffsetARB(s2DRectShadow, c3, dPdxy2, dPdxy2, offset2, texel.x); - sparseTextureGradOffsetARB(s2DRectShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, offset2, texel.x); - sparseTextureGradOffsetARB(s2DShadow, c3, dPdxy2, dPdxy2, offset2, texel.x); - sparseTextureGradOffsetARB(s2DShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, offset2, texel.x); - sparseTextureGradOffsetARB(s2DArray, c3, dPdxy2, dPdxy2, offset2, texel); - sparseTextureGradOffsetARB(s2DArray, f16c3, f16dPdxy2, f16dPdxy2, offset2, texel); - sparseTextureGradOffsetARB(s2DArrayShadow, c4, dPdxy2, dPdxy2, offset2, texel.x); - sparseTextureGradOffsetARB(s2DArrayShadow, f16c3, compare, f16dPdxy2, f16dPdxy2, offset2, texel.x); - - return texel; -} - -f16vec4 testSparseTexelFetch() -{ - f16vec4 texel = f16vec4(0.0hf); - - sparseTexelFetchARB(s2D, ivec2(c2), int(lod), texel); - sparseTexelFetchARB(s3D, ivec3(c3), int(lod), texel); - sparseTexelFetchARB(s2DRect, ivec2(c2), texel); - sparseTexelFetchARB(s2DArray, ivec3(c3), int(lod), texel); - sparseTexelFetchARB(s2DMS, ivec2(c2), 1, texel); - sparseTexelFetchARB(s2DMSArray, ivec3(c3), 2, texel); - - return texel; -} - -f16vec4 testSparseTexelFetchOffset() -{ - f16vec4 texel = f16vec4(0.0hf); - - sparseTexelFetchOffsetARB(s2D, ivec2(c2), int(lod), offset2, texel); - sparseTexelFetchOffsetARB(s3D, ivec3(c3), int(lod), offset3, texel); - sparseTexelFetchOffsetARB(s2DRect, ivec2(c2), offset2, texel); - sparseTexelFetchOffsetARB(s2DArray, ivec3(c3), int(lod), offset2, texel); - - return texel; -} - -f16vec4 testSparseTextureGather() -{ - f16vec4 texel = f16vec4(0.0hf); - - sparseTextureGatherARB(s2D, c2, texel, 0); - sparseTextureGatherARB(s2D, f16c2, texel, 0, f16bias); - sparseTextureGatherARB(s2DArray, c3, texel, 0); - sparseTextureGatherARB(s2DArray, f16c3, texel, 0, f16bias); - sparseTextureGatherARB(sCube, c3, texel, 0); - sparseTextureGatherARB(sCube, f16c3, texel, 0, f16bias); - sparseTextureGatherARB(sCubeArray, c4, texel, 0); - sparseTextureGatherARB(sCubeArray, f16c4, texel, 0, f16bias); - sparseTextureGatherARB(s2DRect, c2, texel, 0); - sparseTextureGatherARB(s2DRect, f16c2, texel, 0); - sparseTextureGatherARB(s2DShadow, c2, compare, texel); - sparseTextureGatherARB(s2DShadow, f16c2, compare, texel); - sparseTextureGatherARB(s2DArrayShadow, c3, compare, texel); - sparseTextureGatherARB(s2DArrayShadow, f16c3, compare, texel); - sparseTextureGatherARB(sCubeShadow, c3, compare, texel); - sparseTextureGatherARB(sCubeShadow, f16c3, compare, texel); - sparseTextureGatherARB(sCubeArrayShadow, c4, compare, texel); - sparseTextureGatherARB(sCubeArrayShadow, f16c4, compare, texel); - sparseTextureGatherARB(s2DRectShadow, c2, compare, texel); - sparseTextureGatherARB(s2DRectShadow, f16c2, compare, texel); - - return texel; -} - -f16vec4 testSparseTextureGatherOffset() -{ - f16vec4 texel = f16vec4(0.0hf); - - sparseTextureGatherOffsetARB(s2D, c2, offset2, texel, 0); - sparseTextureGatherOffsetARB(s2D, f16c2, offset2, texel, 0, f16bias); - sparseTextureGatherOffsetARB(s2DArray, c3, offset2, texel, 0); - sparseTextureGatherOffsetARB(s2DArray, f16c3, offset2, texel, 0, f16bias); - sparseTextureGatherOffsetARB(s2DRect, c2, offset2, texel, 0); - sparseTextureGatherOffsetARB(s2DRect, f16c2, offset2, texel, 0); - sparseTextureGatherOffsetARB(s2DShadow, c2, compare, offset2, texel); - sparseTextureGatherOffsetARB(s2DShadow, f16c2, compare, offset2, texel); - sparseTextureGatherOffsetARB(s2DArrayShadow, c3, compare, offset2, texel); - sparseTextureGatherOffsetARB(s2DArrayShadow, f16c3, compare, offset2, texel); - sparseTextureGatherOffsetARB(s2DRectShadow, c2, compare, offset2, texel); - sparseTextureGatherOffsetARB(s2DRectShadow, f16c2, compare, offset2, texel); - - return texel; -} - -f16vec4 testSparseTextureGatherOffsets() -{ - f16vec4 texel = f16vec4(0.0hf); - const ivec2 constOffsets[4] = ivec2[4](ivec2(1,2), ivec2(3,4), ivec2(15,16), ivec2(-2,0)); - - sparseTextureGatherOffsetsARB(s2D, c2, constOffsets, texel, 0); - sparseTextureGatherOffsetsARB(s2D, f16c2, constOffsets, texel, 0, f16bias); - sparseTextureGatherOffsetsARB(s2DArray, c3, constOffsets, texel, 0); - sparseTextureGatherOffsetsARB(s2DArray, f16c3, constOffsets, texel, 0, f16bias); - sparseTextureGatherOffsetsARB(s2DRect, c2, constOffsets, texel, 0); - sparseTextureGatherOffsetsARB(s2DRect, f16c2, constOffsets, texel, 0); - sparseTextureGatherOffsetsARB(s2DShadow, c2, compare, constOffsets, texel); - sparseTextureGatherOffsetsARB(s2DShadow, f16c2, compare, constOffsets, texel); - sparseTextureGatherOffsetsARB(s2DArrayShadow, c3, compare, constOffsets, texel); - sparseTextureGatherOffsetsARB(s2DArrayShadow, f16c3, compare, constOffsets, texel); - sparseTextureGatherOffsetsARB(s2DRectShadow, c2, compare, constOffsets, texel); - sparseTextureGatherOffsetsARB(s2DRectShadow, f16c2, compare, constOffsets, texel); - - return texel; -} - -f16vec4 testSparseTextureGatherLod() -{ - f16vec4 texel = f16vec4(0.0hf); - - sparseTextureGatherLodAMD(s2D, c2, lod, texel, 0); - sparseTextureGatherLodAMD(s2D, f16c2, f16lod, texel, 0); - sparseTextureGatherLodAMD(s2DArray, c3, lod, texel, 0); - sparseTextureGatherLodAMD(s2DArray, f16c3, f16lod, texel, 0); - sparseTextureGatherLodAMD(sCube, c3, lod, texel, 0); - sparseTextureGatherLodAMD(sCube, f16c3, f16lod, texel, 0); - sparseTextureGatherLodAMD(sCubeArray, c4, lod, texel, 0); - sparseTextureGatherLodAMD(sCubeArray, f16c4, f16lod, texel, 0); - - return texel; -} - -f16vec4 testSparseTextureGatherLodOffset() -{ - f16vec4 texel = f16vec4(0.0hf); - - sparseTextureGatherLodOffsetAMD(s2D, c2, lod, offset2, texel, 0); - sparseTextureGatherLodOffsetAMD(s2D, f16c2, f16lod, offset2, texel, 0); - sparseTextureGatherLodOffsetAMD(s2DArray, c3, lod, offset2, texel, 0); - sparseTextureGatherLodOffsetAMD(s2DArray, f16c3, f16lod, offset2, texel, 0); - - return texel; -} - -f16vec4 testSparseTextureGatherLodOffsets() -{ - f16vec4 texel = f16vec4(0.0hf); - - sparseTextureGatherLodOffsetsAMD(s2D, c2, lod, offsets, texel, 0); - sparseTextureGatherLodOffsetsAMD(s2D, f16c2, f16lod, offsets, texel, 0); - sparseTextureGatherLodOffsetsAMD(s2DArray, c3, lod, offsets, texel, 0); - sparseTextureGatherLodOffsetsAMD(s2DArray, f16c3, f16lod, offsets, texel, 0); - - return texel; -} - -f16vec4 testSparseImageLoad() -{ - f16vec4 texel = f16vec4(0.0hf); - - sparseImageLoadARB(i2D, ivec2(c2), texel); - sparseImageLoadARB(i3D, ivec3(c3), texel); - sparseImageLoadARB(i2DRect, ivec2(c2), texel); - sparseImageLoadARB(iCube, ivec3(c3), texel); - sparseImageLoadARB(i2DArray, ivec3(c3), texel); - sparseImageLoadARB(iCubeArray, ivec3(c3), texel); - sparseImageLoadARB(i2DMS, ivec2(c2), 1, texel); - sparseImageLoadARB(i2DMSArray, ivec3(c3), 2, texel); - - return texel; -} - -f16vec4 testSparseTextureClamp() -{ - f16vec4 texel = f16vec4(0.0hf); - - sparseTextureClampARB(s2D, c2, lodClamp, texel); - sparseTextureClampARB(s2D, f16c2, f16lodClamp, texel, f16bias); - sparseTextureClampARB(s3D, c3, lodClamp, texel); - sparseTextureClampARB(s3D, f16c3, f16lodClamp, texel, f16bias); - sparseTextureClampARB(sCube, c3, lodClamp, texel); - sparseTextureClampARB(sCube, f16c3, f16lodClamp, texel, f16bias); - sparseTextureClampARB(s2DShadow, c3, lodClamp, texel.x); - sparseTextureClampARB(s2DShadow, f16c2, compare, f16lodClamp, texel.x, f16bias); - sparseTextureClampARB(sCubeShadow, c4, lodClamp, texel.x); - sparseTextureClampARB(sCubeShadow, f16c3, compare, f16lodClamp, texel.x, f16bias); - sparseTextureClampARB(s2DArray, c3, lodClamp, texel); - sparseTextureClampARB(s2DArray, f16c3, f16lodClamp, texel, f16bias); - sparseTextureClampARB(sCubeArray, c4, lodClamp, texel); - sparseTextureClampARB(sCubeArray, f16c4, f16lodClamp, texel, f16bias); - sparseTextureClampARB(s2DArrayShadow, c4, lodClamp, texel.x); - sparseTextureClampARB(s2DArrayShadow, f16c3, compare, f16lodClamp, texel.x); - sparseTextureClampARB(sCubeArrayShadow, c4, compare, lodClamp, texel.x); - sparseTextureClampARB(sCubeArrayShadow, f16c4, compare, f16lodClamp, texel.x); - - return texel; -} - -f16vec4 testTextureClamp() -{ - f16vec4 texel = f16vec4(0.0hf); - - texel += textureClampARB(s1D, c1, lodClamp); - texel += textureClampARB(s1D, f16c1, f16lodClamp, f16bias); - texel += textureClampARB(s2D, c2, lodClamp); - texel += textureClampARB(s2D, f16c2, f16lodClamp, f16bias); - texel += textureClampARB(s3D, c3, lodClamp); - texel += textureClampARB(s3D, f16c3, f16lodClamp, f16bias); - texel += textureClampARB(sCube, c3, lodClamp); - texel += textureClampARB(sCube, f16c3, f16lodClamp, f16bias); - texel.x += textureClampARB(s1DShadow, c3, lodClamp); - texel.x += textureClampARB(s1DShadow, f16c2, compare, f16lodClamp, f16bias); - texel.x += textureClampARB(s2DShadow, c3, lodClamp); - texel.x += textureClampARB(s2DShadow, f16c2, compare, f16lodClamp, f16bias); - texel.x += textureClampARB(sCubeShadow, c4, lodClamp); - texel.x += textureClampARB(sCubeShadow, f16c3, compare, f16lodClamp, f16bias); - texel += textureClampARB(s1DArray, c2, lodClamp); - texel += textureClampARB(s1DArray, f16c2, f16lodClamp, f16bias); - texel += textureClampARB(s2DArray, c3, lodClamp); - texel += textureClampARB(s2DArray, f16c3, f16lodClamp, f16bias); - texel += textureClampARB(sCubeArray, c4, lodClamp); - texel += textureClampARB(sCubeArray, f16c4, f16lodClamp, f16bias); - texel.x += textureClampARB(s1DArrayShadow, c3, lodClamp); - texel.x += textureClampARB(s1DArrayShadow, f16c2, compare, f16lodClamp, f16bias); - texel.x += textureClampARB(s2DArrayShadow, c4, lodClamp); - texel.x += textureClampARB(s2DArrayShadow, f16c3, compare, f16lodClamp); - texel.x += textureClampARB(sCubeArrayShadow, c4, compare, lodClamp); - texel.x += textureClampARB(sCubeArrayShadow, f16c4, compare, f16lodClamp); - - return texel; -} - -f16vec4 testSparseTextureOffsetClamp() -{ - f16vec4 texel = f16vec4(0.0hf); - - sparseTextureOffsetClampARB(s2D, c2, offset2, lodClamp, texel); - sparseTextureOffsetClampARB(s2D, f16c2, offset2, f16lodClamp, texel, f16bias); - sparseTextureOffsetClampARB(s3D, c3, offset3, lodClamp, texel); - sparseTextureOffsetClampARB(s3D, f16c3, offset3, f16lodClamp, texel, f16bias); - sparseTextureOffsetClampARB(s2DShadow, c3, offset2, lodClamp, texel.x); - sparseTextureOffsetClampARB(s2DShadow, f16c2, compare, offset2, f16lodClamp, texel.x, f16bias); - sparseTextureOffsetClampARB(s2DArray, c3, offset2, lodClamp, texel); - sparseTextureOffsetClampARB(s2DArray, f16c3, offset2, f16lodClamp, texel, f16bias); - sparseTextureOffsetClampARB(s2DArrayShadow, c4, offset2, lodClamp, texel.x); - sparseTextureOffsetClampARB(s2DArrayShadow, f16c3, compare, offset2, f16lodClamp, texel.x); - - return texel; -} - -f16vec4 testTextureOffsetClamp() -{ - f16vec4 texel = f16vec4(0.0hf); - - texel += textureOffsetClampARB(s1D, c1, offset1, lodClamp); - texel += textureOffsetClampARB(s1D, f16c1, offset1, f16lodClamp, f16bias); - texel += textureOffsetClampARB(s2D, c2, offset2, lodClamp); - texel += textureOffsetClampARB(s2D, f16c2, offset2, f16lodClamp, f16bias); - texel += textureOffsetClampARB(s3D, c3, offset3, lodClamp); - texel += textureOffsetClampARB(s3D, f16c3, offset3, f16lodClamp, f16bias); - texel.x += textureOffsetClampARB(s1DShadow, c3, offset1, lodClamp); - texel.x += textureOffsetClampARB(s1DShadow, f16c2, compare, offset1, f16lodClamp, f16bias); - texel.x += textureOffsetClampARB(s2DShadow, c3, offset2, lodClamp); - texel.x += textureOffsetClampARB(s2DShadow, f16c2, compare, offset2, f16lodClamp, f16bias); - texel += textureOffsetClampARB(s1DArray, c2, offset1, lodClamp); - texel += textureOffsetClampARB(s1DArray, f16c2, offset1, f16lodClamp, f16bias); - texel += textureOffsetClampARB(s2DArray, c3, offset2, lodClamp); - texel += textureOffsetClampARB(s2DArray, f16c3, offset2, f16lodClamp, f16bias); - texel.x += textureOffsetClampARB(s1DArrayShadow, c3, offset1, lodClamp); - texel.x += textureOffsetClampARB(s1DArrayShadow, f16c2, compare, offset1, f16lodClamp, f16bias); - texel.x += textureOffsetClampARB(s2DArrayShadow, c4, offset2, lodClamp); - texel.x += textureOffsetClampARB(s2DArrayShadow, f16c3, compare, offset2, f16lodClamp); - - return texel; -} - -f16vec4 testSparseTextureGradClamp() -{ - f16vec4 texel = f16vec4(0.0hf); - - sparseTextureGradClampARB(s2D, c2, dPdxy2, dPdxy2, lodClamp, texel); - sparseTextureGradClampARB(s2D, f16c2, f16dPdxy2, f16dPdxy2, f16lodClamp, texel); - sparseTextureGradClampARB(s3D, c3, dPdxy3, dPdxy3, lodClamp, texel); - sparseTextureGradClampARB(s3D, f16c3, f16dPdxy3, f16dPdxy3, f16lodClamp, texel); - sparseTextureGradClampARB(sCube, c3, dPdxy3, dPdxy3, lodClamp, texel); - sparseTextureGradClampARB(sCube, f16c3, f16dPdxy3, f16dPdxy3, f16lodClamp, texel); - sparseTextureGradClampARB(s2DShadow, c3, dPdxy2, dPdxy2, lodClamp, texel.x); - sparseTextureGradClampARB(s2DShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, f16lodClamp, texel.x); - sparseTextureGradClampARB(sCubeShadow, c4, dPdxy3, dPdxy3, lodClamp, texel.x); - sparseTextureGradClampARB(sCubeShadow, f16c3, compare, f16dPdxy3, f16dPdxy3, f16lodClamp, texel.x); - sparseTextureGradClampARB(s2DArray, c3, dPdxy2, dPdxy2, lodClamp, texel); - sparseTextureGradClampARB(s2DArray, f16c3, f16dPdxy2, f16dPdxy2, f16lodClamp, texel); - sparseTextureGradClampARB(s2DArrayShadow, c4, dPdxy2, dPdxy2, lodClamp, texel.x); - sparseTextureGradClampARB(s2DArrayShadow, f16c3, compare, f16dPdxy2, f16dPdxy2, f16lodClamp, texel.x); - sparseTextureGradClampARB(sCubeArray, c4, dPdxy3, dPdxy3, lodClamp, texel); - sparseTextureGradClampARB(sCubeArray, f16c4, f16dPdxy3, f16dPdxy3, f16lodClamp, texel); - - return texel; -} - -f16vec4 testTextureGradClamp() -{ - f16vec4 texel = f16vec4(0.0hf); - - texel += textureGradClampARB(s1D, c1, dPdxy1, dPdxy1, lodClamp); - texel += textureGradClampARB(s1D, f16c1, f16dPdxy1, f16dPdxy1, f16lodClamp); - texel += textureGradClampARB(s2D, c2, dPdxy2, dPdxy2, lodClamp); - texel += textureGradClampARB(s2D, f16c2, f16dPdxy2, f16dPdxy2, f16lodClamp); - texel += textureGradClampARB(s3D, c3, dPdxy3, dPdxy3, lodClamp); - texel += textureGradClampARB(s3D, f16c3, f16dPdxy3, f16dPdxy3, f16lodClamp); - texel += textureGradClampARB(sCube, c3, dPdxy3, dPdxy3, lodClamp); - texel += textureGradClampARB(sCube, f16c3, f16dPdxy3, f16dPdxy3, f16lodClamp); - texel.x += textureGradClampARB(s1DShadow, c3, dPdxy1, dPdxy1, lodClamp); - texel.x += textureGradClampARB(s1DShadow, f16c2, compare, f16dPdxy1, f16dPdxy1, f16lodClamp); - texel.x += textureGradClampARB(s2DShadow, c3, dPdxy2, dPdxy2, lodClamp); - texel.x += textureGradClampARB(s2DShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, f16lodClamp); - texel.x += textureGradClampARB(sCubeShadow, c4, dPdxy3, dPdxy3, lodClamp); - texel.x += textureGradClampARB(sCubeShadow, f16c3, compare, f16dPdxy3, f16dPdxy3, f16lodClamp); - texel += textureGradClampARB(s1DArray, c2, dPdxy1, dPdxy1, lodClamp); - texel += textureGradClampARB(s1DArray, f16c2, f16dPdxy1, f16dPdxy1, f16lodClamp); - texel += textureGradClampARB(s2DArray, c3, dPdxy2, dPdxy2, lodClamp); - texel += textureGradClampARB(s2DArray, f16c3, f16dPdxy2, f16dPdxy2, f16lodClamp); - texel.x += textureGradClampARB(s1DArrayShadow, c3, dPdxy1, dPdxy1, lodClamp); - texel.x += textureGradClampARB(s1DArrayShadow, f16c2, compare, f16dPdxy1, f16dPdxy1, f16lodClamp); - texel.x += textureGradClampARB(s2DArrayShadow, c4, dPdxy2, dPdxy2, lodClamp); - texel.x += textureGradClampARB(s2DArrayShadow, f16c3, compare, f16dPdxy2, f16dPdxy2, f16lodClamp); - texel += textureGradClampARB(sCubeArray, c4, dPdxy3, dPdxy3, lodClamp); - texel += textureGradClampARB(sCubeArray, f16c4, f16dPdxy3, f16dPdxy3, f16lodClamp); - - return texel; -} - -f16vec4 testSparseTextureGradOffsetClamp() -{ - f16vec4 texel = f16vec4(0.0hf); - - sparseTextureGradOffsetClampARB(s2D, c2, dPdxy2, dPdxy2, offset2, lodClamp, texel); - sparseTextureGradOffsetClampARB(s2D, f16c2, f16dPdxy2, f16dPdxy2, offset2, f16lodClamp, texel); - sparseTextureGradOffsetClampARB(s3D, c3, dPdxy3, dPdxy3, offset3, lodClamp, texel); - sparseTextureGradOffsetClampARB(s3D, f16c3, f16dPdxy3, f16dPdxy3, offset3, f16lodClamp, texel); - sparseTextureGradOffsetClampARB(s2DShadow, c3, dPdxy2, dPdxy2, offset2, lodClamp, texel.x); - sparseTextureGradOffsetClampARB(s2DShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, offset2, f16lodClamp, texel.x); - sparseTextureGradOffsetClampARB(s2DArray, c3, dPdxy2, dPdxy2, offset2, lodClamp, texel); - sparseTextureGradOffsetClampARB(s2DArray, f16c3, f16dPdxy2, f16dPdxy2, offset2, f16lodClamp, texel); - sparseTextureGradOffsetClampARB(s2DArrayShadow, c4, dPdxy2, dPdxy2, offset2, lodClamp, texel.x); - sparseTextureGradOffsetClampARB(s2DArrayShadow, f16c3, compare, f16dPdxy2, f16dPdxy2, offset2, f16lodClamp, texel.x); - - return texel; -} - -f16vec4 testTextureGradOffsetClamp() -{ - f16vec4 texel = f16vec4(0.0hf); - - texel += textureGradOffsetClampARB(s1D, c1, dPdxy1, dPdxy1, offset1, lodClamp); - texel += textureGradOffsetClampARB(s1D, f16c1, f16dPdxy1, f16dPdxy1, offset1, f16lodClamp); - texel += textureGradOffsetClampARB(s2D, c2, dPdxy2, dPdxy2, offset2, lodClamp); - texel += textureGradOffsetClampARB(s2D, f16c2, f16dPdxy2, f16dPdxy2, offset2, f16lodClamp); - texel += textureGradOffsetClampARB(s3D, c3, dPdxy3, dPdxy3, offset3, lodClamp); - texel += textureGradOffsetClampARB(s3D, f16c3, f16dPdxy3, f16dPdxy3, offset3, f16lodClamp); - texel.x += textureGradOffsetClampARB(s1DShadow, c3, dPdxy1, dPdxy1, offset1, lodClamp); - texel.x += textureGradOffsetClampARB(s1DShadow, f16c2, compare, f16dPdxy1, f16dPdxy1, offset1, f16lodClamp); - texel.x += textureGradOffsetClampARB(s2DShadow, c3, dPdxy2, dPdxy2, offset2, lodClamp); - texel.x += textureGradOffsetClampARB(s2DShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, offset2, f16lodClamp); - texel += textureGradOffsetClampARB(s1DArray, c2, dPdxy1, dPdxy1, offset1, lodClamp); - texel += textureGradOffsetClampARB(s1DArray, f16c2, f16dPdxy1, f16dPdxy1, offset1, f16lodClamp); - texel += textureGradOffsetClampARB(s2DArray, c3, dPdxy2, dPdxy2, offset2, lodClamp); - texel += textureGradOffsetClampARB(s2DArray, f16c3, f16dPdxy2, f16dPdxy2, offset2, f16lodClamp); - texel.x += textureGradOffsetClampARB(s1DArrayShadow, c3, dPdxy1, dPdxy1, offset1, lodClamp); - texel.x += textureGradOffsetClampARB(s1DArrayShadow, f16c2, compare, f16dPdxy1, f16dPdxy1, offset1, f16lodClamp); - texel.x += textureGradOffsetClampARB(s2DArrayShadow, c4, dPdxy2, dPdxy2, offset2, lodClamp); - texel.x += textureGradOffsetClampARB(s2DArrayShadow, f16c3, compare, f16dPdxy2, f16dPdxy2, offset2, f16lodClamp); - - return texel; -} - -f16vec4 testCombinedTextureSampler() -{ - f16vec4 texel = f16vec4(0.0hf); - - texel += texture(f16sampler1D(t1D, s), c1); - texel += texture(f16sampler1D(t1D, s), f16c1, f16bias); - texel += texture(f16sampler2D(t2D, s), c2); - texel += texture(f16sampler2D(t2D, s), f16c2, f16bias); - texel += texture(f16sampler3D(t3D, s), c3); - texel += texture(f16sampler3D(t3D, s), f16c3, f16bias); - texel += texture(f16samplerCube(tCube, s), c3); - texel += texture(f16samplerCube(tCube, s), f16c3, f16bias); - texel.x += texture(f16sampler1DShadow(t1D, sShadow), c3); - texel.x += texture(f16sampler1DShadow(t1D, sShadow), f16c2, compare, f16bias); - texel.x += texture(f16sampler2DShadow(t2D, sShadow), c3); - texel.x += texture(f16sampler2DShadow(t2D, sShadow), f16c2, compare, f16bias); - texel.x += texture(f16samplerCubeShadow(tCube, sShadow), c4); - texel.x += texture(f16samplerCubeShadow(tCube, sShadow), f16c3, compare, f16bias); - texel += texture(f16sampler1DArray(t1DArray, s), c2); - texel += texture(f16sampler1DArray(t1DArray, s), f16c2, f16bias); - texel += texture(f16sampler2DArray(t2DArray, s), c3); - texel += texture(f16sampler2DArray(t2DArray, s), f16c3, f16bias); - texel += texture(f16samplerCubeArray(tCubeArray, s), c4); - texel += texture(f16samplerCubeArray(tCubeArray, s), f16c4, f16bias); - texel.x += texture(f16sampler1DArrayShadow(t1DArray, sShadow), c3); - texel.x += texture(f16sampler1DArrayShadow(t1DArray, sShadow), f16c2, compare, f16bias); - texel.x += texture(f16sampler2DArrayShadow(t2DArray, sShadow), c4); - texel.x += texture(f16sampler2DArrayShadow(t2DArray, sShadow), f16c3, compare); - texel += texture(f16sampler2DRect(t2DRect, s), c2); - texel += texture(f16sampler2DRect(t2DRect, s), f16c2); - texel.x += texture(f16sampler2DRectShadow(t2DRect, sShadow), c3); - texel.x += texture(f16sampler2DRectShadow(t2DRect, sShadow), f16c2, compare); - texel.x += texture(f16samplerCubeArrayShadow(tCubeArray, sShadow), c4, compare); - texel.x += texture(f16samplerCubeArrayShadow(tCubeArray, sShadow), f16c4, compare); - - return texel; -} - -f16vec4 testSubpassLoad() -{ - return subpassLoad(subpass) + subpassLoad(subpassMS, 2); -} - -void main() -{ - f16vec4 result = f16vec4(0.0hf); - - result += testTexture(); - result += testTextureProj(); - result += testTextureLod(); - result += testTextureOffset(); - result += testTextureLodOffset(); - result += testTextureProjLodOffset(); - result += testTexelFetch(); - result += testTexelFetchOffset(); - result += testTextureGrad(); - result += testTextureGradOffset(); - result += testTextureProjGrad(); - result += testTextureProjGradoffset(); - result += testTextureGather(); - result += testTextureGatherOffset(); - result += testTextureGatherOffsets(); - result += testTextureGatherLod(); - result += testTextureGatherLodOffset(); - result += testTextureGatherLodOffsets(); - - result += f16vec4(testTextureSize()); - result.xy += f16vec2(testTextureQueryLod()); - result.x += float16_t(testTextureQueryLevels()); - result.x += float16_t(testTextureSamples()); - - result += testImageLoad(); - testImageStore(result); - - result += testSparseTexture(); - result += testSparseTextureLod(); - result += testSparseTextureOffset(); - result += testSparseTextureLodOffset(); - result += testSparseTextureGrad(); - result += testSparseTextureGradOffset(); - result += testSparseTexelFetch(); - result += testSparseTexelFetchOffset(); - result += testSparseTextureGather(); - result += testSparseTextureGatherOffset(); - result += testSparseTextureGatherOffsets(); - result += testSparseTextureGatherLod(); - result += testSparseTextureGatherLodOffset(); - result += testSparseTextureGatherLodOffsets(); - - result += testSparseImageLoad(); - - result += testSparseTextureClamp(); - result += testTextureClamp(); - result += testSparseTextureOffsetClamp(); - result += testTextureOffsetClamp(); - result += testSparseTextureGrad(); - result += testTextureGrad(); - result += testSparseTextureGradOffsetClamp(); - result += testTextureGradOffsetClamp(); - - result += testCombinedTextureSampler(); - result += testSubpassLoad(); - - fragColor = result; -} diff --git a/deps/glslang/Test/spv.float16NoRelaxed.vert b/deps/glslang/Test/spv.float16NoRelaxed.vert deleted file mode 100644 index d594a1d4..00000000 --- a/deps/glslang/Test/spv.float16NoRelaxed.vert +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 -#extension GL_KHR_shader_subgroup_vote: enable -#extension GL_EXT_shader_subgroup_extended_types_float16 : enable -layout(set = 0, binding = 0, std430) buffer Buffer1 -{ - uint result[]; -}; - -void main (void) -{ - uint tempRes; - float16_t valueNoEqual = float16_t(gl_SubgroupInvocationID); - tempRes = subgroupAllEqual(valueNoEqual) ? 0x0 : 0x10; - result[gl_VertexIndex] = tempRes; -} - diff --git a/deps/glslang/Test/spv.float16convertonlyarith.comp b/deps/glslang/Test/spv.float16convertonlyarith.comp deleted file mode 100644 index 9a2e3310..00000000 --- a/deps/glslang/Test/spv.float16convertonlyarith.comp +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 core - -#extension GL_EXT_shader_explicit_arithmetic_types_float16 : require - -layout(local_size_x = 16, local_size_y = 16, local_size_z = 1) in; - -void main() -{ - vec4 v = vec4(0.0); - vec4(f16vec4(v)); -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.float16convertonlystorage.comp b/deps/glslang/Test/spv.float16convertonlystorage.comp deleted file mode 100644 index 3f8e157e..00000000 --- a/deps/glslang/Test/spv.float16convertonlystorage.comp +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 core - -#extension GL_EXT_shader_16bit_storage : require - -layout(local_size_x = 16, local_size_y = 16, local_size_z = 1) in; - -void main() -{ - vec4 v = vec4(0.0); - vec4(f16vec4(v)); -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.float32.frag b/deps/glslang/Test/spv.float32.frag deleted file mode 100644 index f45dccd8..00000000 --- a/deps/glslang/Test/spv.float32.frag +++ /dev/null @@ -1,277 +0,0 @@ -#version 450 - -#extension GL_EXT_shader_explicit_arithmetic_types: enable -#extension GL_EXT_shader_explicit_arithmetic_types_int8: require -#extension GL_EXT_shader_explicit_arithmetic_types_int16: require -#extension GL_EXT_shader_explicit_arithmetic_types_int32: require -#extension GL_EXT_shader_explicit_arithmetic_types_int64: require -#extension GL_EXT_shader_explicit_arithmetic_types_float16: require -#extension GL_EXT_shader_explicit_arithmetic_types_float32: require -#extension GL_EXT_shader_explicit_arithmetic_types_float64: require - -void main() -{ -} - -// Single float literals -void literal() -{ - const float32_t f32c = 0.000001f; - const f32vec2 f32cv = f32vec2(-0.25F, 0.03f); - - f32vec2 f32v; - f32v.x = f32c; - f32v += f32cv; -} - -// Block memory layout -struct S -{ - float32_t x; - f32vec2 y; - f32vec3 z; -}; - -layout(column_major, std140) uniform B1 -{ - float32_t a; - f32vec2 b; - f32vec3 c; - float32_t d[2]; - f32mat2x3 e; - f32mat2x3 f[2]; - S g; - S h[2]; -}; - -// Specialization constant -layout(constant_id = 100) const float16_t sf16 = 0.125hf; -layout(constant_id = 101) const float32_t sf = 0.25; -layout(constant_id = 102) const float64_t sd = 0.5lf; - -const float f16_to_f = float(sf16); -const double f16_to_d = float(sf16); - -const float16_t f_to_f16 = float16_t(sf); -const float16_t d_to_f16 = float16_t(sd); - -void operators() -{ - float32_t f32; - f32vec2 f32v; - f32mat2x2 f32m; - bool b; - - // Arithmetic - f32v += f32v; - f32v -= f32v; - f32v *= f32v; - f32v /= f32v; - f32v++; - f32v--; - ++f32m; - --f32m; - f32v = -f32v; - f32m = -f32m; - - f32 = f32v.x + f32v.y; - f32 = f32v.x - f32v.y; - f32 = f32v.x * f32v.y; - f32 = f32v.x / f32v.y; - - // Relational - b = (f32v.x != f32); - b = (f32v.y == f32); - b = (f32v.x > f32); - b = (f32v.y < f32); - b = (f32v.x >= f32); - b = (f32v.y <= f32); - - // Vector/matrix operations - f32v = f32v * f32; - f32m = f32m * f32; - f32v = f32m * f32v; - f32v = f32v * f32m; - f32m = f32m * f32m; -} - -void typeCast() -{ - bvec3 bv; - f32vec3 f32v; - f64vec3 f64v; - i8vec3 i8v; - u8vec3 u8v; - i16vec3 i16v; - u16vec3 u16v; - i32vec3 i32v; - u32vec3 u32v; - i64vec3 i64v; - u64vec3 u64v; - f16vec3 f16v; - - f64v = f32v; // float32_t -> float64_t - - f32v = f32vec3(bv); // bool -> float32 - bv = bvec3(f32v); // float32 -> bool - - f32v = f32vec3(f64v); // double -> float32 - f64v = f64vec3(f32v); // float32 -> double - - f32v = f32vec3(f16v); // float16 -> float32 - f16v = f16vec3(f32v); // float32 -> float16 - - i8v = i8vec3(f32v); // float32 -> int8 - i16v = i16vec3(f32v); // float32 -> int16 - i32v = i32vec3(f32v); // float32 -> int32 - i64v = i64vec3(f32v); // float32 -> int64 - - u8v = u8vec3(f32v); // float32 -> uint8 - u16v = u16vec3(f32v); // float32 -> uint16 - u32v = u32vec3(f32v); // float32 -> uint32 - u64v = u64vec3(f32v); // float32 -> uint64 -} - -void builtinAngleTrigFuncs() -{ - f32vec4 f32v1, f32v2; - - f32v2 = radians(f32v1); - f32v2 = degrees(f32v1); - f32v2 = sin(f32v1); - f32v2 = cos(f32v1); - f32v2 = tan(f32v1); - f32v2 = asin(f32v1); - f32v2 = acos(f32v1); - f32v2 = atan(f32v1, f32v2); - f32v2 = atan(f32v1); - f32v2 = sinh(f32v1); - f32v2 = cosh(f32v1); - f32v2 = tanh(f32v1); - f32v2 = asinh(f32v1); - f32v2 = acosh(f32v1); - f32v2 = atanh(f32v1); -} - -void builtinExpFuncs() -{ - f32vec2 f32v1, f32v2; - - f32v2 = pow(f32v1, f32v2); - f32v2 = exp(f32v1); - f32v2 = log(f32v1); - f32v2 = exp2(f32v1); - f32v2 = log2(f32v1); - f32v2 = sqrt(f32v1); - f32v2 = inversesqrt(f32v1); -} - -void builtinCommonFuncs() -{ - f32vec3 f32v1, f32v2, f32v3; - float32_t f32; - bool b; - bvec3 bv; - ivec3 iv; - - f32v2 = abs(f32v1); - f32v2 = sign(f32v1); - f32v2 = floor(f32v1); - f32v2 = trunc(f32v1); - f32v2 = round(f32v1); - f32v2 = roundEven(f32v1); - f32v2 = ceil(f32v1); - f32v2 = fract(f32v1); - f32v2 = mod(f32v1, f32v2); - f32v2 = mod(f32v1, f32); - f32v3 = modf(f32v1, f32v2); - f32v3 = min(f32v1, f32v2); - f32v3 = min(f32v1, f32); - f32v3 = max(f32v1, f32v2); - f32v3 = max(f32v1, f32); - f32v3 = clamp(f32v1, f32, f32v2.x); - f32v3 = clamp(f32v1, f32v2, f32vec3(f32)); - f32v3 = mix(f32v1, f32v2, f32); - f32v3 = mix(f32v1, f32v2, f32v3); - f32v3 = mix(f32v1, f32v2, bv); - f32v3 = step(f32v1, f32v2); - f32v3 = step(f32, f32v3); - f32v3 = smoothstep(f32v1, f32v2, f32v3); - f32v3 = smoothstep(f32, f32v1.x, f32v2); - b = isnan(f32); - bv = isinf(f32v1); - f32v3 = fma(f32v1, f32v2, f32v3); - f32v2 = frexp(f32v1, iv); - f32v2 = ldexp(f32v1, iv); -} - -void builtinGeometryFuncs() -{ - float32_t f32; - f32vec3 f32v1, f32v2, f32v3; - - f32 = length(f32v1); - f32 = distance(f32v1, f32v2); - f32 = dot(f32v1, f32v2); - f32v3 = cross(f32v1, f32v2); - f32v2 = normalize(f32v1); - f32v3 = faceforward(f32v1, f32v2, f32v3); - f32v3 = reflect(f32v1, f32v2); - f32v3 = refract(f32v1, f32v2, f32); -} - -void builtinMatrixFuncs() -{ - f32mat2x3 f32m1, f32m2, f32m3; - f32mat3x2 f32m4; - f32mat3 f32m5; - f32mat4 f32m6, f32m7; - - f32vec3 f32v1; - f32vec2 f32v2; - - float32_t f32; - - f32m3 = matrixCompMult(f32m1, f32m2); - f32m1 = outerProduct(f32v1, f32v2); - f32m4 = transpose(f32m1); - f32 = determinant(f32m5); - f32m6 = inverse(f32m7); -} - -void builtinVecRelFuncs() -{ - f32vec3 f32v1, f32v2; - bvec3 bv; - - bv = lessThan(f32v1, f32v2); - bv = lessThanEqual(f32v1, f32v2); - bv = greaterThan(f32v1, f32v2); - bv = greaterThanEqual(f32v1, f32v2); - bv = equal(f32v1, f32v2); - bv = notEqual(f32v1, f32v2); -} - -in f32vec3 if32v; - -void builtinFragProcFuncs() -{ - f32vec3 f32v; - - // Derivative - f32v.x = dFdx(if32v.x); - f32v.y = dFdy(if32v.y); - f32v.xy = dFdxFine(if32v.xy); - f32v.xy = dFdyFine(if32v.xy); - f32v = dFdxCoarse(if32v); - f32v = dFdxCoarse(if32v); - - f32v.x = fwidth(if32v.x); - f32v.xy = fwidthFine(if32v.xy); - f32v = fwidthCoarse(if32v); - - // Interpolation - f32v.x = interpolateAtCentroid(if32v.x); - f32v.xy = interpolateAtSample(if32v.xy, 1); - f32v = interpolateAtOffset(if32v, f32vec2(0.5f)); -} diff --git a/deps/glslang/Test/spv.float64.frag b/deps/glslang/Test/spv.float64.frag deleted file mode 100644 index 6e9f22df..00000000 --- a/deps/glslang/Test/spv.float64.frag +++ /dev/null @@ -1,248 +0,0 @@ -#version 450 - -#extension GL_EXT_shader_explicit_arithmetic_types: enable -#extension GL_EXT_shader_explicit_arithmetic_types_int8: require -#extension GL_EXT_shader_explicit_arithmetic_types_int16: require -#extension GL_EXT_shader_explicit_arithmetic_types_int32: require -#extension GL_EXT_shader_explicit_arithmetic_types_int64: require -#extension GL_EXT_shader_explicit_arithmetic_types_float16: require -#extension GL_EXT_shader_explicit_arithmetic_types_float32: require -#extension GL_EXT_shader_explicit_arithmetic_types_float64: require - -void main() -{ -} - -// Single float literals -void literal() -{ - const float64_t f64c = 0.000001LF; - const f64vec2 f64cv = f64vec2(-0.25lF, 0.03Lf); - - f64vec2 f64v; - f64v.x = f64c; - f64v += f64cv; -} - -// Block memory layout -struct S -{ - float64_t x; - f64vec2 y; - f64vec3 z; -}; - -layout(column_major, std140) uniform B1 -{ - float64_t a; - f64vec2 b; - f64vec3 c; - float64_t d[2]; - f64mat2x3 e; - f64mat2x3 f[2]; - S g; - S h[2]; -}; - -// Specialization constant -layout(constant_id = 100) const float16_t sf16 = 0.125hf; -layout(constant_id = 101) const float32_t sf = 0.25; -layout(constant_id = 102) const float64_t sd = 0.5lf; - -const float f16_to_f = float(sf16); -const double f16_to_d = float(sf16); - -const float16_t f_to_f16 = float16_t(sf); -const float16_t d_to_f16 = float16_t(sd); - -void operators() -{ - float64_t f64; - f64vec2 f64v; - f64mat2x2 f64m; - bool b; - - // Arithmetic - f64v += f64v; - f64v -= f64v; - f64v *= f64v; - f64v /= f64v; - f64v++; - f64v--; - ++f64m; - --f64m; - f64v = -f64v; - f64m = -f64m; - - f64 = f64v.x + f64v.y; - f64 = f64v.x - f64v.y; - f64 = f64v.x * f64v.y; - f64 = f64v.x / f64v.y; - - // Relational - b = (f64v.x != f64); - b = (f64v.y == f64); - b = (f64v.x > f64); - b = (f64v.y < f64); - b = (f64v.x >= f64); - b = (f64v.y <= f64); - - // Vector/matrix operations - f64v = f64v * f64; - f64m = f64m * f64; - f64v = f64m * f64v; - f64v = f64v * f64m; - f64m = f64m * f64m; -} - -void typeCast() -{ - bvec3 bv; - f32vec3 f32v; - f64vec3 f64v; - i8vec3 i8v; - u8vec3 u8v; - i16vec3 i16v; - u16vec3 u16v; - i32vec3 i32v; - u32vec3 u32v; - i64vec3 i64v; - u64vec3 u64v; - f16vec3 f16v; - - f64v = f64vec3(bv); // bool -> float64 - bv = bvec3(f64v); // float64 -> bool - - f64v = f64vec3(f16v); // float16 -> float64 - f16v = f16vec3(f64v); // float64 -> float16 - - i8v = i8vec3(f64v); // float64 -> int8 - i16v = i16vec3(f64v); // float64 -> int16 - i32v = i32vec3(f64v); // float64 -> int32 - i64v = i64vec3(f64v); // float64 -> int64 - - u8v = u8vec3(f64v); // float64 -> uint8 - u16v = u16vec3(f64v); // float64 -> uint16 - u32v = u32vec3(f64v); // float64 -> uint32 - u64v = u64vec3(f64v); // float64 -> uint64 -} - -// Trig, pow, exp and log are not supported for f64 - -void builtinTranscendentalFuncs() -{ - f64vec2 f64v1, f64v2; - - f64v2 = sqrt(f64v1); - f64v2 = inversesqrt(f64v1); -} - -void builtinCommonFuncs() -{ - f64vec3 f64v1, f64v2, f64v3; - float64_t f64; - bool b; - bvec3 bv; - ivec3 iv; - - f64v2 = abs(f64v1); - f64v2 = sign(f64v1); - f64v2 = floor(f64v1); - f64v2 = trunc(f64v1); - f64v2 = round(f64v1); - f64v2 = roundEven(f64v1); - f64v2 = ceil(f64v1); - f64v2 = fract(f64v1); - f64v2 = mod(f64v1, f64v2); - f64v2 = mod(f64v1, f64); - f64v3 = modf(f64v1, f64v2); - f64v3 = min(f64v1, f64v2); - f64v3 = min(f64v1, f64); - f64v3 = max(f64v1, f64v2); - f64v3 = max(f64v1, f64); - f64v3 = clamp(f64v1, f64, f64v2.x); - f64v3 = clamp(f64v1, f64v2, f64vec3(f64)); - f64v3 = mix(f64v1, f64v2, f64); - f64v3 = mix(f64v1, f64v2, f64v3); - f64v3 = mix(f64v1, f64v2, bv); - f64v3 = step(f64v1, f64v2); - f64v3 = step(f64, f64v3); - f64v3 = smoothstep(f64v1, f64v2, f64v3); - f64v3 = smoothstep(f64, f64v1.x, f64v2); - b = isnan(f64); - bv = isinf(f64v1); - f64v3 = fma(f64v1, f64v2, f64v3); - f64v2 = frexp(f64v1, iv); - f64v2 = ldexp(f64v1, iv); -} - -void builtinGeometryFuncs() -{ - float64_t f64; - f64vec3 f64v1, f64v2, f64v3; - - f64 = length(f64v1); - f64 = distance(f64v1, f64v2); - f64 = dot(f64v1, f64v2); - f64v3 = cross(f64v1, f64v2); - f64v2 = normalize(f64v1); - f64v3 = faceforward(f64v1, f64v2, f64v3); - f64v3 = reflect(f64v1, f64v2); - f64v3 = refract(f64v1, f64v2, f64); -} - -void builtinMatrixFuncs() -{ - f64mat2x3 f64m1, f64m2, f64m3; - f64mat3x2 f64m4; - f64mat3 f64m5; - f64mat4 f64m6, f64m7; - - f64vec3 f64v1; - f64vec2 f64v2; - - float64_t f64; - - f64m3 = matrixCompMult(f64m1, f64m2); - f64m1 = outerProduct(f64v1, f64v2); - f64m4 = transpose(f64m1); - f64 = determinant(f64m5); - f64m6 = inverse(f64m7); -} - -void builtinVecRelFuncs() -{ - f64vec3 f64v1, f64v2; - bvec3 bv; - - bv = lessThan(f64v1, f64v2); - bv = lessThanEqual(f64v1, f64v2); - bv = greaterThan(f64v1, f64v2); - bv = greaterThanEqual(f64v1, f64v2); - bv = equal(f64v1, f64v2); - bv = notEqual(f64v1, f64v2); -} - -in flat f64vec3 if64v; - -void builtinFragProcFuncs() -{ - f64vec3 f64v; - - // Derivative - f64v.x = dFdx(if64v.x); - f64v.y = dFdy(if64v.y); - f64v.xy = dFdxFine(if64v.xy); - f64v.xy = dFdyFine(if64v.xy); - f64v = dFdxCoarse(if64v); - f64v = dFdxCoarse(if64v); - - f64v.x = fwidth(if64v.x); - f64v.xy = fwidthFine(if64v.xy); - f64v = fwidthCoarse(if64v); - - // Interpolation - f64v.x = interpolateAtCentroid(if64v.x); - f64v.xy = interpolateAtSample(if64v.xy, 1); - f64v = interpolateAtOffset(if64v, f64vec2(0.5f)); -} diff --git a/deps/glslang/Test/spv.flowControl.frag b/deps/glslang/Test/spv.flowControl.frag deleted file mode 100644 index f10c7673..00000000 --- a/deps/glslang/Test/spv.flowControl.frag +++ /dev/null @@ -1,23 +0,0 @@ -#version 140 - -in float d; -in vec4 bigColor, smallColor; -in vec4 otherColor; - -in float c; -in vec4 BaseColor; - -void main() -{ - vec4 color = BaseColor; - vec4 color2; - - color2 = otherColor; - - if (c > d) - color += bigColor; - else - color += smallColor; - - gl_FragColor = color * color2; -} diff --git a/deps/glslang/Test/spv.for-complex-condition.vert b/deps/glslang/Test/spv.for-complex-condition.vert deleted file mode 100644 index 81dd6489..00000000 --- a/deps/glslang/Test/spv.for-complex-condition.vert +++ /dev/null @@ -1,7 +0,0 @@ -#version 450 -layout(location=0) out highp int r; -layout(location=0) in lowp int flag; -void main() { - int i; - for (i=0; i < (flag==1 ? 10 : 15) ; i++) { r = i; } -} diff --git a/deps/glslang/Test/spv.for-continue-break.vert b/deps/glslang/Test/spv.for-continue-break.vert deleted file mode 100644 index afa31f2b..00000000 --- a/deps/glslang/Test/spv.for-continue-break.vert +++ /dev/null @@ -1,20 +0,0 @@ -#version 310 es -void main() { - int i; - int A, B, C, D, E, F, G; - for (i=0; i < 10 ; i++) { - A = 1; - if (i%2 ==0) { - B = 1; - continue; - C = 1; - } - if (i%3 == 0) { - D = 1; - break; - E = 1; - } - F = 12; - } - G = 99; -} diff --git a/deps/glslang/Test/spv.for-nobody.vert b/deps/glslang/Test/spv.for-nobody.vert deleted file mode 100644 index 99634761..00000000 --- a/deps/glslang/Test/spv.for-nobody.vert +++ /dev/null @@ -1,7 +0,0 @@ -#version 450 -layout(location=0) out highp int r; -void main() { - int i; - for (i=0; i<10; i++); - r = i; -} diff --git a/deps/glslang/Test/spv.for-notest.vert b/deps/glslang/Test/spv.for-notest.vert deleted file mode 100644 index f40e6664..00000000 --- a/deps/glslang/Test/spv.for-notest.vert +++ /dev/null @@ -1,6 +0,0 @@ -#version 450 -layout(location=0) out highp int r; -void main() { - int i; - for (i=0; ; i++) { r = i; } -} diff --git a/deps/glslang/Test/spv.for-simple.vert b/deps/glslang/Test/spv.for-simple.vert deleted file mode 100644 index a5be6db2..00000000 --- a/deps/glslang/Test/spv.for-simple.vert +++ /dev/null @@ -1,8 +0,0 @@ -#version 310 es -void main() { - int i; - int j; - for (i=0; i < 10 ; i++) { - j = 12; - } -} diff --git a/deps/glslang/Test/spv.forLoop.frag b/deps/glslang/Test/spv.forLoop.frag deleted file mode 100644 index dfa58ad4..00000000 --- a/deps/glslang/Test/spv.forLoop.frag +++ /dev/null @@ -1,41 +0,0 @@ -#version 140 - -in vec4 bigColor; -in vec4 BaseColor; -in float f; - -flat in int Count; -flat in uvec4 v4; - -void main() -{ - vec4 color = BaseColor; - - for (int i = 0; i < Count; ++i) { - color += bigColor; - } - - gl_FragColor = color; - - float sum = 0.0; - for (int i = 0; i < 4; ++i) - sum += v4[i]; - - vec4 tv4; - - for (int i = 0; i < 4; ++i) - tv4[i] = v4[i] * 4u; - - gl_FragColor += vec4(sum) + tv4; - - vec4 r; - r.xyz = BaseColor.xyz; - - for (int i = 0; i < Count; ++i) - r.w = f; - - gl_FragColor.xyz += r.xyz; - - for (int i = 0; i < 16; i += 4) - gl_FragColor *= f; -} diff --git a/deps/glslang/Test/spv.forwardFun.frag b/deps/glslang/Test/spv.forwardFun.frag deleted file mode 100644 index 0a71521e..00000000 --- a/deps/glslang/Test/spv.forwardFun.frag +++ /dev/null @@ -1,39 +0,0 @@ -#version 140 - -precision mediump float; - -in vec4 bigColor; -in vec4 BaseColor; -in float d; - -void bar(); -float foo(vec4); -float unreachableReturn(); - -void main() -{ - vec4 color = vec4(foo(BaseColor)); - - bar(); - float f = unreachableReturn(); - - gl_FragColor = color * f; -} - -void bar() -{ -} - -float unreachableReturn() -{ - bar(); - if (d < 4.2) - return 1.2; - else - return 4.5; -} - -float foo(vec4 bar) -{ - return bar.x + bar.y; -} diff --git a/deps/glslang/Test/spv.fragmentDensity-es.frag b/deps/glslang/Test/spv.fragmentDensity-es.frag deleted file mode 100644 index 35fb96e7..00000000 --- a/deps/glslang/Test/spv.fragmentDensity-es.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 310 es - -#extension GL_EXT_fragment_invocation_density : require - -layout (location = 0) out highp ivec2 FragSize; -layout (location = 2) out highp int FragInvocationCount; - -void main () { - FragSize = gl_FragSizeEXT; - FragInvocationCount = gl_FragInvocationCountEXT; -} diff --git a/deps/glslang/Test/spv.fragmentDensity-neg.frag b/deps/glslang/Test/spv.fragmentDensity-neg.frag deleted file mode 100644 index 68e736cd..00000000 --- a/deps/glslang/Test/spv.fragmentDensity-neg.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -//make sure the builtins don't exist if the extension isn't enabled. -//#extension GL_EXT_fragment_invocation_density : require - -layout (location = 0) out vec2 FragSize; -layout (location = 2) out int FragInvocationCount; - -void main () { - FragSize = gl_FragSizeEXT; - FragInvocationCount = gl_FragInvocationCountEXT; -} diff --git a/deps/glslang/Test/spv.fragmentDensity.frag b/deps/glslang/Test/spv.fragmentDensity.frag deleted file mode 100644 index 9b37ba4c..00000000 --- a/deps/glslang/Test/spv.fragmentDensity.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 - -#extension GL_EXT_fragment_invocation_density : require - -layout (location = 0) out vec2 FragSize; -layout (location = 2) out int FragInvocationCount; - -void main () { - FragSize = gl_FragSizeEXT; - FragInvocationCount = gl_FragInvocationCountEXT; -} diff --git a/deps/glslang/Test/spv.fragmentDensity.vert b/deps/glslang/Test/spv.fragmentDensity.vert deleted file mode 100644 index eaef72d7..00000000 --- a/deps/glslang/Test/spv.fragmentDensity.vert +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -// try using a fragment-only extension in a vertex shader -#extension GL_EXT_fragment_invocation_density : require - -layout (location = 0) out uvec2 FragSize; -layout (location = 2) out int FragInvocationCount; - -void main () { - FragSize = gl_FragSizeEXT; - FragInvocationCount = gl_FragInvocationCountEXT; -} diff --git a/deps/glslang/Test/spv.fragmentShaderBarycentric.frag b/deps/glslang/Test/spv.fragmentShaderBarycentric.frag deleted file mode 100644 index c923aca0..00000000 --- a/deps/glslang/Test/spv.fragmentShaderBarycentric.frag +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 -#extension GL_NV_fragment_shader_barycentric : require - -layout(location = 0) pervertexNV in vertices { - float attrib; - } v[]; - -layout(location = 1) out float value; - -void main () { - value = (gl_BaryCoordNV.x * v[0].attrib + - gl_BaryCoordNV.y * v[1].attrib + - gl_BaryCoordNV.z * v[2].attrib); - -} diff --git a/deps/glslang/Test/spv.fragmentShaderBarycentric2.frag b/deps/glslang/Test/spv.fragmentShaderBarycentric2.frag deleted file mode 100644 index 4682e4ef..00000000 --- a/deps/glslang/Test/spv.fragmentShaderBarycentric2.frag +++ /dev/null @@ -1,15 +0,0 @@ -#version 320 es -#extension GL_NV_fragment_shader_barycentric : require - -precision highp float; - -layout(location = 0) pervertexNV in float vertexIDs[3]; - -layout(location = 1) out float value; - -void main () { - value = (gl_BaryCoordNoPerspNV.x * vertexIDs[0] + - gl_BaryCoordNoPerspNV.y * vertexIDs[1] + - gl_BaryCoordNoPerspNV.z * vertexIDs[2]); - -} diff --git a/deps/glslang/Test/spv.fsi.frag b/deps/glslang/Test/spv.fsi.frag deleted file mode 100644 index 5e6fb5fe..00000000 --- a/deps/glslang/Test/spv.fsi.frag +++ /dev/null @@ -1,20 +0,0 @@ -#version 450 -#extension GL_ARB_fragment_shader_interlock : enable - -layout(set = 0, binding = 0) coherent buffer B1 { - layout(offset = 0) int x; -} b1; - -layout(set = 0, binding = 1, rgba32f) coherent uniform image2D im; - -layout(sample_interlock_ordered) in; - -void main() { - - beginInvocationInterlockARB(); - - b1.x = 1; - imageStore(im, ivec2(0,0), vec4(0)); - - endInvocationInterlockARB(); -} diff --git a/deps/glslang/Test/spv.fsi_Error.frag b/deps/glslang/Test/spv.fsi_Error.frag deleted file mode 100644 index adddf3e5..00000000 --- a/deps/glslang/Test/spv.fsi_Error.frag +++ /dev/null @@ -1,23 +0,0 @@ -#version 450 -#extension GL_ARB_fragment_shader_interlock : enable - -layout(pixel_interlock_ordered) out; - -layout(pixel_interlock_ordered) in; -layout(pixel_interlock_unordered) in; - -void foo() -{ - beginInvocationInterlockARB(); - endInvocationInterlockARB(); -} - -void main() { - - endInvocationInterlockARB(); - beginInvocationInterlockARB(); - - return; - - endInvocationInterlockARB(); -} diff --git a/deps/glslang/Test/spv.fullyCovered.frag b/deps/glslang/Test/spv.fullyCovered.frag deleted file mode 100644 index c7f30853..00000000 --- a/deps/glslang/Test/spv.fullyCovered.frag +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 - -#extension GL_NV_conservative_raster_underestimation : enable - -out vec4 color; - -void main() { - color = vec4(gl_FragFullyCoveredNV, 0, 0, 0); -} diff --git a/deps/glslang/Test/spv.funcall.array.frag b/deps/glslang/Test/spv.funcall.array.frag deleted file mode 100644 index 4f9727ba..00000000 --- a/deps/glslang/Test/spv.funcall.array.frag +++ /dev/null @@ -1,17 +0,0 @@ -#version 450 core - -uniform ub { - vec4 u[9]; -}; - -vec4 f(const vec4 a[9], int ix) { - return a[ix]; -} - -out vec4 color; - -void main() -{ - color = f(u, 2); -} - diff --git a/deps/glslang/Test/spv.functionCall.frag b/deps/glslang/Test/spv.functionCall.frag deleted file mode 100644 index 139638d2..00000000 --- a/deps/glslang/Test/spv.functionCall.frag +++ /dev/null @@ -1,44 +0,0 @@ -#version 140 - -varying vec4 bigColor; -varying vec4 BaseColor; -varying float d; - -float h = 0.0; - -float foo(vec4 bar) -{ - return bar.x + bar.y; -} - -void bar() -{ -} - -float unreachableReturn() -{ - if (d < 4.2) - return 1.2; - else - return 4.5; - // might be another return inserted here by builders, has to be correct type -} - -float missingReturn() -{ - if (d < 4.5) { - h = d; - return 3.9; - } -} - -void main() -{ - vec4 color = vec4(foo(BaseColor)); - - bar(); - float f = unreachableReturn(); - float g = missingReturn(); - - gl_FragColor = color * f * h; -} diff --git a/deps/glslang/Test/spv.functionNestedOpaque.vert b/deps/glslang/Test/spv.functionNestedOpaque.vert deleted file mode 100644 index 9e308b13..00000000 --- a/deps/glslang/Test/spv.functionNestedOpaque.vert +++ /dev/null @@ -1,26 +0,0 @@ -#version 450 - -uniform struct S { - sampler2D s; -} si; - -void foo(sampler2D t) -{ - texture(t, vec2(0.5)); -} - -void barc(const S p) -{ - foo(p.s); -} - -void bar(S p) -{ - foo(p.s); -} - -void main() -{ - barc(si); - bar(si); -} diff --git a/deps/glslang/Test/spv.functionParameterTypes.frag b/deps/glslang/Test/spv.functionParameterTypes.frag deleted file mode 100644 index 08c16875..00000000 --- a/deps/glslang/Test/spv.functionParameterTypes.frag +++ /dev/null @@ -1,20 +0,0 @@ -#version 460 core -#extension GL_EXT_shader_explicit_arithmetic_types_int64 : enable -#extension GL_EXT_shader_explicit_arithmetic_types_int8 : enable -#extension GL_EXT_shader_explicit_arithmetic_types_int16 : enable -#extension GL_EXT_shader_explicit_arithmetic_types_float16 : enable - -int f(int8_t i8, - uint8_t u8, - int16_t i16, - uint16_t u16, - int64_t i64, - uint64_t u64, - float16_t f16) -{ - return 0; -} - -void main() -{ -} diff --git a/deps/glslang/Test/spv.functionSemantics.frag b/deps/glslang/Test/spv.functionSemantics.frag deleted file mode 100644 index a9b59b76..00000000 --- a/deps/glslang/Test/spv.functionSemantics.frag +++ /dev/null @@ -1,63 +0,0 @@ -#version 400 - -in float u; - -int foo(int a, const int b, in int c, const in int d, out int e, inout int f) -{ - int sum = a + b + c + d + f; // no e, it is out only - // sum should be 47 now - - a *= 64; - // no b, it is read only - c *= 64; - // no d, it is read only - e = 64 * 16; // e starts undefined - f *= 64; - - sum += a + 64 * b + c + 64 * d + e + f; // everything has a value now, totaling of 64(1+2+4+8+16+32) = 64*63 = 4032 - // sum should be 4032 + 47 = 4079 - - return sum; -} - -int foo2(float a, vec3 b, out int r) -{ - r = int(3.0 * a); - return int(5.0 * b.y); -} - -int foo3() -{ - if (u > 3.2) { - discard; - return 1000000; - } - - return 2000000; -} - -void main() -{ - int e; - int t = 2; - struct s { - ivec4 t; - } f; - f.t.y = 32; - - // test the different qualifers - int color = foo(1, 2, t+t, 8, e, f.t.y); - - color += 128 * (e + f.t.y); // right side should be 128(64(16 + 32)) = 393216 - // sum should be 4079 + 393216 = 397295 - - // test conversions - float arg; - float ret; - ret = foo2(4, ivec3(1,2,3), arg); // ret = 10, param = 12.0 - color += int(ret + arg); // adds 22, for total of 397317 - - color += foo3(); // theoretically, add 2000000, for total of 2397317 - - gl_FragColor = vec4(color); -} diff --git a/deps/glslang/Test/spv.glFragColor.frag b/deps/glslang/Test/spv.glFragColor.frag deleted file mode 100644 index 12dbcb22..00000000 --- a/deps/glslang/Test/spv.glFragColor.frag +++ /dev/null @@ -1,6 +0,0 @@ -#version 330 - -void main() -{ - gl_FragColor = vec4(1.0); -} diff --git a/deps/glslang/Test/spv.glsl.register.autoassign.frag b/deps/glslang/Test/spv.glsl.register.autoassign.frag deleted file mode 100644 index f754d8aa..00000000 --- a/deps/glslang/Test/spv.glsl.register.autoassign.frag +++ /dev/null @@ -1,68 +0,0 @@ -#version 450 - -uniform layout(binding=0) sampler g_sSamp1; -uniform sampler g_sSamp2; -uniform layout(binding=2) sampler g_sSamp3[2]; -uniform sampler g_sSamp4[3]; -uniform sampler g_sSamp5; - -uniform sampler g_sSamp_unused1; -uniform sampler g_sSamp_unused2; - -uniform layout(binding=1) texture1D g_tTex1; -uniform texture1D g_tTex2; -uniform layout(binding=3) texture1D g_tTex3[2]; -uniform texture1D g_tTex4[3]; -uniform texture1D g_tTex5; - -uniform layout(binding=0) texture1D g_tTex_unused1; -uniform layout(binding=2) texture1D g_tTex_unused2; -uniform texture1D g_tTex_unused3; - -struct MyStruct_t { - int a; - float b; - vec3 c; -}; - -uniform layout(binding=4) myblock { - MyStruct_t mystruct; - vec4 myvec4_a; - vec4 myvec4_b; - ivec4 myint4_a; -}; - -vec4 Func1() -{ - return - texture(sampler1D(g_tTex1, g_sSamp1), 0.1) + - texture(sampler1D(g_tTex2, g_sSamp2), 0.2) + - texture(sampler1D(g_tTex3[0], g_sSamp3[0]), 0.3) + - texture(sampler1D(g_tTex3[1], g_sSamp3[1]), 0.3) + - texture(sampler1D(g_tTex4[1], g_sSamp4[1]), 0.4) + - texture(sampler1D(g_tTex4[2], g_sSamp4[2]), 0.4) + - texture(sampler1D(g_tTex5, g_sSamp5), 0.5) + - mystruct.c[1]; -} - -vec4 Func2() -{ - return - texture(sampler1D(g_tTex1, g_sSamp1), 0.1) + - texture(sampler1D(g_tTex3[1], g_sSamp3[1]), 0.3); -} - -// Not called from entry point: -vec4 Func2_unused() -{ - return - texture(sampler1D(g_tTex_unused1, g_sSamp_unused1), 1.1) + - texture(sampler1D(g_tTex_unused2, g_sSamp_unused2), 1.2); -} - -out vec4 FragColor; - -void main() -{ - FragColor = Func1() + Func2(); -} diff --git a/deps/glslang/Test/spv.glsl.register.noautoassign.frag b/deps/glslang/Test/spv.glsl.register.noautoassign.frag deleted file mode 100644 index c385fbb9..00000000 --- a/deps/glslang/Test/spv.glsl.register.noautoassign.frag +++ /dev/null @@ -1,68 +0,0 @@ -#version 450 - -uniform layout(binding=0) sampler g_sSamp1; -uniform layout(binding=1) sampler g_sSamp2; -uniform layout(binding=2) sampler g_sSamp3[2]; -uniform layout(binding=3) sampler g_sSamp4[3]; -uniform layout(binding=4) sampler g_sSamp5; - -uniform layout(binding=5) sampler g_sSamp_unused1; -uniform layout(binding=6) sampler g_sSamp_unused2; - -uniform layout(binding=7) texture1D g_tTex1; -uniform layout(binding=8) texture1D g_tTex2; -uniform layout(binding=9) texture1D g_tTex3[2]; -uniform layout(binding=10) texture1D g_tTex4[3]; -uniform layout(binding=11) texture1D g_tTex5; - -uniform layout(binding=12) texture1D g_tTex_unused1; -uniform layout(binding=13) texture1D g_tTex_unused2; -uniform layout(binding=14) texture1D g_tTex_unused3; - -struct MyStruct_t { - int a; - float b; - vec3 c; -}; - -uniform layout(binding=4) myblock { - MyStruct_t mystruct; - vec4 myvec4_a; - vec4 myvec4_b; - ivec4 myint4_a; -}; - -vec4 Func1() -{ - return - texture(sampler1D(g_tTex1, g_sSamp1), 0.1) + - texture(sampler1D(g_tTex2, g_sSamp2), 0.2) + - texture(sampler1D(g_tTex3[0], g_sSamp3[0]), 0.3) + - texture(sampler1D(g_tTex3[1], g_sSamp3[1]), 0.3) + - texture(sampler1D(g_tTex4[1], g_sSamp4[1]), 0.4) + - texture(sampler1D(g_tTex4[2], g_sSamp4[2]), 0.4) + - texture(sampler1D(g_tTex5, g_sSamp5), 0.5) + - mystruct.c[1]; -} - -vec4 Func2() -{ - return - texture(sampler1D(g_tTex1, g_sSamp1), 0.1) + - texture(sampler1D(g_tTex3[1], g_sSamp3[1]), 0.3); -} - -// Not called from entry point: -vec4 Func2_unused() -{ - return - texture(sampler1D(g_tTex_unused1, g_sSamp_unused1), 1.1) + - texture(sampler1D(g_tTex_unused2, g_sSamp_unused2), 1.2); -} - -out vec4 FragColor; - -void main() -{ - FragColor = Func1() + Func2(); -} diff --git a/deps/glslang/Test/spv.hlslDebugInfo.vert b/deps/glslang/Test/spv.hlslDebugInfo.vert deleted file mode 100644 index b2bc1877..00000000 --- a/deps/glslang/Test/spv.hlslDebugInfo.vert +++ /dev/null @@ -1,4 +0,0 @@ -float4 origMain() : SV_Position -{ - return (float4)0; -} diff --git a/deps/glslang/Test/spv.hlslOffsets.vert b/deps/glslang/Test/spv.hlslOffsets.vert deleted file mode 100644 index 26950d93..00000000 --- a/deps/glslang/Test/spv.hlslOffsets.vert +++ /dev/null @@ -1,27 +0,0 @@ -#version 450 - -layout(binding = 0) buffer block { - float m0; - vec3 m4; - ////// - float m16; - layout(offset=20) vec3 m20; - ///// - vec3 m32; - ///// - vec2 m48; - vec2 m56; - //// - float m64; - vec2 m68; - float m76; - ////// - float m80; - layout(offset=88) vec2 m88; - ////// - vec2 m96; - /////// - dvec2 m112; -}; - -void main() {} \ No newline at end of file diff --git a/deps/glslang/Test/spv.image.frag b/deps/glslang/Test/spv.image.frag deleted file mode 100644 index d9305ef2..00000000 --- a/deps/glslang/Test/spv.image.frag +++ /dev/null @@ -1,97 +0,0 @@ -#version 450 - -layout(rgba32f, binding = 0) uniform image1D i1D; -layout(rgba32f, binding = 1) uniform image2D i2D; -layout(rgba32f, binding = 2) uniform image3D i3D; -layout(rgba32f, binding = 3) uniform imageCube iCube; -layout(rgba32f, binding = 4) uniform imageCubeArray iCubeArray; -layout(rgba32f, binding = 5) uniform image2DRect i2DRect; -layout(rgba32f, binding = 6) uniform image1DArray i1DArray; -layout(rg16, binding = 7) uniform image2DArray i2DArray; -layout(rgba32f, binding = 8) uniform imageBuffer iBuffer; -layout(rgba32f, binding = 9) uniform image2DMS i2DMS; -layout(rgba32f, binding = 10) uniform image2DMSArray i2DMSArray; - -layout(r32i, binding = 11) uniform iimage1D ii1D; -layout(r32ui, binding = 12) uniform uimage2D ui2D; -layout(r32i, binding = 13) uniform iimage2DMS ii2DMS; -layout(r32ui, binding = 14) uniform uimage2DMSArray ui2DMSArray; - -flat in int ic1D; -flat in ivec2 ic2D; -flat in ivec3 ic3D; -flat in ivec4 ic4D; - -writeonly layout(binding = 1) uniform image2D wo2D; - -flat in uint value; - -out vec4 fragData; - -void main() -{ - ivec3 iv = ivec3(0); - iv.x += imageSize(i1D); - iv.xy += imageSize(i2D); - iv.xyz += imageSize(i3D); - iv.xy += imageSize(iCube); - iv.xyz += imageSize(iCubeArray); - iv.xy += imageSize(i2DRect); - iv.xy += imageSize(i1DArray); - iv.xyz += imageSize(i2DArray); - iv.x += imageSize(iBuffer); - iv.xy += imageSize(i2DMS); - iv.xyz += imageSize(i2DMSArray); - - iv.x += imageSamples(i2DMS); - iv.x += imageSamples(i2DMSArray); - - vec4 v = vec4(0.0); - v += imageLoad(i1D, ic1D); - imageStore(i1D, ic1D, v); - v += imageLoad(i2D, ic2D); - imageStore(i2D, ic2D, v); - v += imageLoad(i3D, ic3D); - imageStore(i3D, ic3D, v); - v += imageLoad(iCube, ic3D); - imageStore(iCube, ic3D, v); - v += imageLoad(iCubeArray, ic3D); - imageStore(iCubeArray, ic3D, v); - v += imageLoad(i2DRect, ic2D); - imageStore(i2DRect, ic2D, v); - v += imageLoad(i1DArray, ic2D); - imageStore(i1DArray, ic2D, v); - v += imageLoad(i2DArray, ic3D); - imageStore(i2DArray, ic3D, v); - v += imageLoad(iBuffer, ic1D); - imageStore(iBuffer, ic1D, v); - v += imageLoad(i2DMS, ic2D, 1); - imageStore(i2DMS, ic2D, 2, v); - v += imageLoad(i2DMSArray, ic3D, 3); - imageStore(i2DMSArray, ic3D, 4, v); - - uint ui = 0; - iv.x += imageAtomicAdd(ii1D, ic1D, 10); - ui += imageAtomicAdd(ui2D, ic2D, value); - iv.x += imageAtomicMin(ii1D, ic1D, 11); - ui += imageAtomicMin(ui2D, ic2D, value); - iv.x += imageAtomicMax(ii1D, ic1D, 12); - ui += imageAtomicMax(ui2D, ic2D, value); - iv.x += imageAtomicAnd(ii1D, ic1D, 13); - ui += imageAtomicAnd(ui2D, ic2D, value); - iv.x += imageAtomicOr(ii1D, ic1D, 14); - ui += imageAtomicOr(ui2D, ic2D, value); - iv.x += imageAtomicXor(ii1D, ic1D, 15); - ui += imageAtomicXor(ui2D, ic2D, value); - iv.x += imageAtomicExchange(ii1D, ic1D, 16); - ui += imageAtomicExchange(ui2D, ic2D, value); - iv.x += imageAtomicCompSwap(ii1D, ic1D, 18, 17); - ui += imageAtomicCompSwap(ui2D, ic2D, 19u, value); - iv.x += imageAtomicCompSwap(ii2DMS, ic2D, 2, 18, 17); - ui += imageAtomicCompSwap(ui2DMSArray, ic3D, 3, 19u, value); - - imageStore(wo2D, ic2D, v); - - fragData = ui != iv.y ? v : vec4(0.0); -} - diff --git a/deps/glslang/Test/spv.image.load-formatted.frag b/deps/glslang/Test/spv.image.load-formatted.frag deleted file mode 100644 index b0adc73b..00000000 --- a/deps/glslang/Test/spv.image.load-formatted.frag +++ /dev/null @@ -1,74 +0,0 @@ -#version 450 - -#extension GL_EXT_shader_image_load_formatted : require - -layout(binding = 0) uniform image1D i1D; -layout(binding = 1) uniform image2D i2D; -layout(binding = 2) uniform image3D i3D; -layout(binding = 3) uniform imageCube iCube; -layout(binding = 4) uniform imageCubeArray iCubeArray; -layout(binding = 5) uniform image2DRect i2DRect; -layout(binding = 6) uniform image1DArray i1DArray; -layout(binding = 7) uniform image2DArray i2DArray; -layout(binding = 8) uniform imageBuffer iBuffer; -layout(binding = 9) uniform image2DMS i2DMS; -layout(binding = 10) uniform image2DMSArray i2DMSArray; - -flat in int ic1D; -flat in ivec2 ic2D; -flat in ivec3 ic3D; -flat in ivec4 ic4D; - -writeonly layout(binding = 1) uniform image2D wo2D; - -flat in uint value; - -out vec4 fragData; - -void main() -{ - ivec3 iv = ivec3(0); - iv.x += imageSize(i1D); - iv.xy += imageSize(i2D); - iv.xyz += imageSize(i3D); - iv.xy += imageSize(iCube); - iv.xyz += imageSize(iCubeArray); - iv.xy += imageSize(i2DRect); - iv.xy += imageSize(i1DArray); - iv.xyz += imageSize(i2DArray); - iv.x += imageSize(iBuffer); - iv.xy += imageSize(i2DMS); - iv.xyz += imageSize(i2DMSArray); - - iv.x += imageSamples(i2DMS); - iv.x += imageSamples(i2DMSArray); - - vec4 v = vec4(0.0); - v += imageLoad(i1D, ic1D); - imageStore(i1D, ic1D, v); - v += imageLoad(i2D, ic2D); - imageStore(i2D, ic2D, v); - v += imageLoad(i3D, ic3D); - imageStore(i3D, ic3D, v); - v += imageLoad(iCube, ic3D); - imageStore(iCube, ic3D, v); - v += imageLoad(iCubeArray, ic3D); - imageStore(iCubeArray, ic3D, v); - v += imageLoad(i2DRect, ic2D); - imageStore(i2DRect, ic2D, v); - v += imageLoad(i1DArray, ic2D); - imageStore(i1DArray, ic2D, v); - v += imageLoad(i2DArray, ic3D); - imageStore(i2DArray, ic3D, v); - v += imageLoad(iBuffer, ic1D); - imageStore(iBuffer, ic1D, v); - v += imageLoad(i2DMS, ic2D, 1); - imageStore(i2DMS, ic2D, 2, v); - v += imageLoad(i2DMSArray, ic3D, 3); - imageStore(i2DMSArray, ic3D, 4, v); - - imageStore(wo2D, ic2D, v); - - fragData = v; -} - diff --git a/deps/glslang/Test/spv.imageAtomic64.frag b/deps/glslang/Test/spv.imageAtomic64.frag deleted file mode 100644 index bd671d98..00000000 --- a/deps/glslang/Test/spv.imageAtomic64.frag +++ /dev/null @@ -1,92 +0,0 @@ -#version 450 core - -#extension GL_ARB_gpu_shader_int64: enable -#extension GL_EXT_shader_image_int64: enable -#extension GL_KHR_memory_scope_semantics: enable -#extension GL_ARB_sparse_texture2: enable - -layout(binding = 0, r64i) uniform i64image1D i1D; -layout(binding = 1, r64ui) uniform u64image2D u2D; -layout(binding = 2, r64i) uniform i64image3D i3D; -layout(binding = 3, r64ui) uniform u64imageCube uCube; -layout(binding = 4, r64i) uniform i64imageBuffer iBuf; -layout(binding = 5, r64ui) uniform u64image1DArray u1DArray; -layout(binding = 6, r64i) uniform i64image2DArray i2DArray; -layout(binding = 7, r64ui) uniform u64imageCubeArray uCubeArray; -layout(binding = 8, r64i) uniform i64image2DRect i2DRect; -layout(binding = 9, r64ui) uniform u64image2DMS u2DMS; -layout(binding = 10, r64i) uniform i64image2DMSArray i2DMSArray; - -layout(binding = 11) buffer Buf -{ - int64_t i64; - uint64_t u64; - i64vec4 i64v4; - u64vec4 u64v4; - ivec4 i32v4; -}; - -void main() -{ - i64 = imageAtomicAdd(i1D, i32v4.x, i64); - i64 = imageAtomicMin(i3D, i32v4.xyz, i64); - i64 = imageAtomicMax(iBuf, i32v4.x, i64); - i64 = imageAtomicAnd(i2DArray, i32v4.xyz, i64); - i64 = imageAtomicOr(i2DRect, i32v4.xy, i64); - i64 = imageAtomicXor(i2DMSArray, i32v4.xyz, i32v4.w, i64); - i64 = imageAtomicExchange(i1D, i32v4.x, i64); - i64 = imageAtomicCompSwap(i3D, i32v4.xyz, i64, i64 + 1); - - i64 = imageAtomicAdd(i1D, i32v4.x, i64, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - i64 = imageAtomicMin(i3D, i32v4.xyz, i64, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - i64 = imageAtomicMax(iBuf, i32v4.x, i64, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - i64 = imageAtomicAnd(i2DArray, i32v4.xyz, i64, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - i64 = imageAtomicOr(i2DRect, i32v4.xy, i64, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - i64 = imageAtomicXor(i2DMSArray, i32v4.xyz, i32v4.w, i64, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - i64 = imageAtomicExchange(i1D, i32v4.x, i64, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - i64 = imageAtomicCompSwap(i3D, i32v4.xyz, i64, i64 + 1, gl_ScopeDevice, - gl_StorageSemanticsImage, gl_SemanticsRelaxed, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - i64 = imageAtomicLoad(iBuf, i32v4.x, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - imageAtomicStore(i2DArray, i32v4.xyz, i64, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - - u64 = imageAtomicAdd(u2D, i32v4.xy, u64); - u64 = imageAtomicMin(uCube, i32v4.xyz, u64); - u64 = imageAtomicMax(u1DArray, i32v4.xy, u64); - u64 = imageAtomicAnd(uCubeArray, i32v4.xyz, u64); - u64 = imageAtomicOr(u2DMS, i32v4.xy, i32v4.z, u64); - u64 = imageAtomicXor(u2D, i32v4.xy, u64); - u64 = imageAtomicExchange(uCube, i32v4.xyz, u64); - u64 = imageAtomicCompSwap(u1DArray, i32v4.xy, u64, u64 + 1); - - u64 = imageAtomicAdd(u2D, i32v4.xy, u64, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - u64 = imageAtomicMin(uCube, i32v4.xyz, u64, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - u64 = imageAtomicMax(u1DArray, i32v4.xy, u64, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - u64 = imageAtomicAnd(uCubeArray, i32v4.xyz, u64, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - u64 = imageAtomicOr(u2DMS, i32v4.xy, i32v4.z, u64, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - u64 = imageAtomicXor(u2D, i32v4.xy, u64, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - u64 = imageAtomicExchange(uCube, i32v4.xyz, u64, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - u64 = imageAtomicCompSwap(u1DArray, i32v4.xy, u64, u64 + 1, gl_ScopeDevice, - gl_StorageSemanticsImage, gl_SemanticsRelaxed, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - u64 = imageAtomicLoad(uCubeArray, i32v4.xyz, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - imageAtomicStore(u2DMS, i32v4.xy, i32v4.z, u64, gl_ScopeDevice, gl_StorageSemanticsImage, gl_SemanticsRelaxed); - - i64v4 += imageLoad(i1D, i32v4.x); - i64v4 += imageLoad(i3D, i32v4.xyz); - i64v4 += imageLoad(iBuf, i32v4.x); - i64v4 += imageLoad(i2DArray, i32v4.xyz); - i64v4 += imageLoad(i2DRect, i32v4.xy); - i64v4 += imageLoad(i2DMSArray, i32v4.xyz, i32v4.w); - - imageStore(u2D, i32v4.xy, u64v4); - imageStore(uCube, i32v4.xyz, u64v4); - imageStore(u1DArray, i32v4.xy, u64v4); - imageStore(uCubeArray, i32v4.xyz, u64v4); - imageStore(u2DMS, i32v4.xy, i32v4.z, u64v4); - - sparseImageLoadARB(i3D, i32v4.xyz, i64v4); - sparseImageLoadARB(i2DArray, i32v4.xyz, i64v4); - sparseImageLoadARB(i2DRect, i32v4.xy, i64v4); - sparseImageLoadARB(u2D, i32v4.xy, u64v4); - sparseImageLoadARB(uCube, i32v4.xyz, u64v4); - sparseImageLoadARB(uCubeArray, i32v4.xyz, u64v4); -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.imageLoadStoreLod.frag b/deps/glslang/Test/spv.imageLoadStoreLod.frag deleted file mode 100644 index ed3cad22..00000000 --- a/deps/glslang/Test/spv.imageLoadStoreLod.frag +++ /dev/null @@ -1,62 +0,0 @@ -#version 450 core - -#extension GL_AMD_shader_image_load_store_lod: enable -#extension GL_ARB_gpu_shader_int64: enable -#extension GL_EXT_shader_image_int64: enable - -layout(rgba32f, binding = 0) uniform image1D i1D; -layout(rgba32f, binding = 1) uniform image2D i2D; -layout(rgba32f, binding = 2) uniform image3D i3D; -layout(rgba32i, binding = 3) uniform iimageCube iiCube; -layout(rgba32i, binding = 4) uniform iimage1DArray ii1DArray; -layout(rgba32ui, binding = 5) uniform uimage2DArray ui2DArray; -layout(rgba32ui, binding = 6) uniform uimageCubeArray uiCubeArray; - -layout(location = 0) out vec4 fragColor; - -layout(r64i, binding = 7) uniform i64image1D i64i1D; -layout(r64i, binding = 8) uniform i64image2D i64i2D; -layout(r64i, binding = 9) uniform i64image3D i64i3D; -layout(r64ui, binding = 10) uniform u64imageCube u64iCube; -layout(r64ui, binding = 11) uniform u64image1DArray u64i1DArray; -layout(r64ui, binding = 12) uniform u64image2DArray u64i2DArray; -layout(r64ui, binding = 13) uniform u64imageCubeArray u64iCubeArray; - -layout(binding = 14) buffer Buf -{ - i64vec4 i64v4; - u64vec4 u64v4; -}; - -void main() -{ - const int c1 = 1; - const ivec2 c2 = ivec2(2, 3); - const ivec3 c3 = ivec3(4, 5, 6); - - const int lod = 3; - - vec4 f4 = vec4(0.0); - f4 += imageLoadLodAMD(i1D, c1, lod); - f4 += imageLoadLodAMD(i2D, c2, lod); - f4 += imageLoadLodAMD(i3D, c3, lod); - - imageStoreLodAMD(iiCube, c3, lod, ivec4(f4)); - imageStoreLodAMD(ii1DArray, c2, lod, ivec4(f4)); - - uvec4 u4; - sparseImageLoadLodAMD(ui2DArray, c3, lod, u4); - sparseImageLoadLodAMD(uiCubeArray, c3, lod, u4); - - fragColor = f4 + vec4(u4); - - i64v4 += imageLoadLodAMD(i64i1D, c1, lod); - i64v4 += imageLoadLodAMD(i64i2D, c2, lod); - i64v4 += imageLoadLodAMD(i64i3D, c3, lod); - - imageStoreLodAMD(u64iCube, c3, lod, u64v4); - imageStoreLodAMD(u64i1DArray, c2, lod, u64v4); - - sparseImageLoadLodAMD(u64i2DArray, c3, lod, u64v4); - sparseImageLoadLodAMD(u64iCubeArray, c3, lod, u64v4); -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.int16.amd.frag b/deps/glslang/Test/spv.int16.amd.frag deleted file mode 100644 index 818e6d83..00000000 --- a/deps/glslang/Test/spv.int16.amd.frag +++ /dev/null @@ -1,314 +0,0 @@ -#version 450 core - -#extension GL_ARB_gpu_shader_int64: enable -#extension GL_AMD_gpu_shader_half_float: enable -#extension GL_AMD_gpu_shader_int16: enable - -layout(binding = 0) uniform Uniforms -{ - uint i; -}; - -// int16/uint16 in block -layout(std140, binding = 1) uniform Block -{ - i16vec3 i16v; - uint16_t u16; -} block; - -// int16/uint16 for input -layout(location = 0) in flat u16vec3 iu16v; -layout(location = 1) in flat int16_t ii16; - -void literal() -{ - const int16_t i16c[3] = - { - 0x111S, // Hex - -2s, // Dec - 0400s, // Oct - }; - - const uint16_t u16c[] = - { - 0xFFFFus, // Hex - 65535US, // Dec - 0177777us, // Oct - }; - - uint16_t u16 = i16c[i] + u16c[i]; -} - -void operators() -{ - u16vec3 u16v; - int16_t i16; - uint16_t u16; - int i; - uint u; - bool b; - - // Unary - u16v++; - i16--; - ++i16; - --u16v; - - u16v = ~u16v; - - i16 = +i16; - u16v = -u16v; - - // Arithmetic - u16 += i16; - u16v -= u16v; - i16 *= i16; - u16v /= u16v; - u16v %= i16; - - u16v = u16v + u16v; - u16 = i16 - u16; - u16v = u16v * i16; - i16 = i16 * i16; - i16 = i16 % i16; - - // Shift - u16v <<= i16; - i16 >>= u16v.y; - - i16 = i16 << u16v.z; - u16v = u16v << i16; - - // Relational - b = (u16v.x != i16); - b = (i16 == u16v.x); - b = (u16v.x > u16v.y); - b = (i16 < u); - b = (u16v.y >= u16v.x); - b = (i16 <= i); - - // Bitwise - u16v |= i16; - u16 = i16 | u16; - i16 &= i16; - u16v = u16v & u16v; - u16v ^= i16; - u16v = u16v ^ i16; -} - -void typeCast() -{ - bvec2 bv; - ivec2 iv; - uvec2 uv; - vec2 fv; - dvec2 dv; - - f16vec2 f16v; - i64vec2 i64v; - u64vec2 u64v; - i16vec2 i16v; - u16vec2 u16v; - - i16v = i16vec2(bv); // bool -> int16 - u16v = u16vec2(bv); // bool -> uint16 - bv = bvec2(i16v); // int16 -> bool - bv = bvec2(u16v); // uint16 -> bool - - i16v = i16vec2(iv); // int -> int16 - u16v = u16vec2(iv); // int -> uint16 - iv = i16v; // int16 -> int - iv = ivec2(u16v); // uint16 -> int - - i16v = i16vec2(uv); // uint -> int16 - u16v = u16vec2(uv); // uint -> uint16 - uv = i16v; // int16 -> uint - uv = u16v; // uint16 -> uint - - i16v = i16vec2(fv); // float -> int16 - u16v = u16vec2(fv); // float -> uint16 - fv = i16v; // int16 -> float - fv = u16v; // uint16 -> float - - i16v = i16vec2(dv); // double -> int16 - u16v = u16vec2(dv); // double -> uint16 - dv = i16v; // int16 -> double - dv = u16v; // uint16 -> double - - i16v = i16vec2(f16v); // float16 -> int16 - u16v = u16vec2(f16v); // float16 -> uint16 - f16v = i16v; // int16 -> float16 - f16v = u16v; // uint16 -> float16 - - i16v = i16vec2(i64v); // int64 -> int16 - u16v = u16vec2(i64v); // int64 -> uint16 - i64v = i16v; // int16 -> int64 - i64v = i64vec2(u16v); // uint16 -> int64 - - i16v = i16vec2(u64v); // uint64 -> int16 - u16v = u16vec2(u64v); // uint64 -> uint16 - u64v = i16v; // int16 -> uint64 - u64v = u16v; // uint16 -> uint64 - - i16v = i16vec2(u16v); // uint16 -> int16 - u16v = i16v; // int16 -> uint16 -} - -void builtinFuncs() -{ - i16vec2 i16v; - u16vec3 u16v; - f16vec3 f16v; - bvec3 bv; - - int16_t i16; - uint16_t u16; - - // abs() - i16v = abs(i16v); - - // sign() - i16v = sign(i16v); - - // min() - i16v = min(i16v, i16); - i16v = min(i16v, i16vec2(-1s)); - u16v = min(u16v, u16); - u16v = min(u16v, u16vec3(0us)); - - // max() - i16v = max(i16v, i16); - i16v = max(i16v, i16vec2(-1s)); - u16v = max(u16v, u16); - u16v = max(u16v, u16vec3(0us)); - - // clamp() - i16v = clamp(i16v, -i16, i16); - i16v = clamp(i16v, -i16v, i16v); - u16v = clamp(u16v, -u16, u16); - u16v = clamp(u16v, -u16v, u16v); - - // mix() - i16 = mix(i16v.x, i16v.y, true); - i16v = mix(i16vec2(i16), i16vec2(-i16), bvec2(false)); - u16 = mix(u16v.x, u16v.y, true); - u16v = mix(u16vec3(u16), u16vec3(-u16), bvec3(false)); - - // frexp() - i16vec3 exp; - f16v = frexp(f16v, exp); - - // ldexp() - f16v = ldexp(f16v, exp); - - // float16BitsToInt16() - i16v = float16BitsToInt16(f16v.xy); - - // float16BitsToUint16() - u16v.x = float16BitsToUint16(f16v.z); - - // int16BitsToFloat16() - f16v.xy = int16BitsToFloat16(i16v); - - // uint16BitsToFloat16() - f16v = uint16BitsToFloat16(u16v); - - // packInt2x16() - int packi = packInt2x16(i16v); - - // unpackInt2x16() - i16v = unpackInt2x16(packi); - - // packUint2x16() - uint packu = packUint2x16(u16v.xy); - - // unpackUint2x16() - u16v.xy = unpackUint2x16(packu); - - // packInt4x16() - int64_t packi64 = packInt4x16(i16vec4(i16)); - - // unpackInt4x16() - i16v = unpackInt4x16(packi64).xy; - - // packUint4x16() - uint64_t packu64 = packUint4x16(u16vec4(u16)); - - // unpackUint4x16() - u16v = unpackUint4x16(packu64).xyz; - - // lessThan() - bv = lessThan(u16v, u16vec3(u16)); - bv.xy = lessThan(i16v, i16vec2(i16)); - - // lessThanEqual() - bv = lessThanEqual(u16v, u16vec3(u16)); - bv.xy = lessThanEqual(i16v, i16vec2(i16)); - - // greaterThan() - bv = greaterThan(u16v, u16vec3(u16)); - bv.xy = greaterThan(i16v, i16vec2(i16)); - - // greaterThanEqual() - bv = greaterThanEqual(u16v, u16vec3(u16)); - bv.xy = greaterThanEqual(i16v, i16vec2(i16)); - - // equal() - bv = equal(u16v, u16vec3(u16)); - bv.xy = equal(i16v, i16vec2(i16)); - - // notEqual() - bv = notEqual(u16v, u16vec3(u16)); - bv.xy = notEqual(i16v, i16vec2(i16)); -} - -// Type conversion for specialization constant -layout(constant_id = 100) const int64_t si64 = -10L; -layout(constant_id = 101) const uint64_t su64 = 20UL; -layout(constant_id = 102) const int si = -5; -layout(constant_id = 103) const uint su = 4; -layout(constant_id = 104) const bool sb = true; -layout(constant_id = 105) const int16_t si16 = -5S; -layout(constant_id = 106) const uint16_t su16 = 4US; - -// bool <-> int16/uint16 -const bool i16_to_b = bool(si16); -const bool u16_to_b = bool(su16); -const int16_t b_to_i16 = int16_t(sb); -const uint16_t b_to_u16 = uint16_t(sb); - -// int <-> int16/uint16 -const int i16_to_i = int(si16); -const int u16_to_i = int(su16); -const int16_t i_to_i16 = int16_t(si); -const uint16_t i_to_u16 = uint16_t(si); - -// uint <-> int16/uint16 -const uint i16_to_u = uint(si16); -const uint u16_to_u = uint(su16); -const int16_t u_to_i16 = int16_t(su); -const uint16_t u_to_u16 = uint16_t(su); - -// int64 <-> int16/uint16 -const int64_t i16_to_i64 = int64_t(si16); -const int64_t u16_to_i64 = int64_t(su16); -const int16_t i64_to_i16 = int16_t(si64); -const uint16_t i64_to_u16 = uint16_t(si64); - -// uint64 <-> int16/uint16 -const uint64_t i16_to_u64 = uint64_t(si16); -const uint64_t u16_to_u64 = uint64_t(su16); -const int16_t u64_to_i16 = int16_t(su64); -const uint16_t u64_to_u16 = uint16_t(su64); - -// int16 <-> uint16 -const uint16_t i16_to_u16 = uint16_t(si16); -const int16_t u16_to_i16 = int16_t(su16); - -void main() -{ - literal(); - operators(); - typeCast(); - builtinFuncs(); -} diff --git a/deps/glslang/Test/spv.int16.frag b/deps/glslang/Test/spv.int16.frag deleted file mode 100644 index 26a8c9bd..00000000 --- a/deps/glslang/Test/spv.int16.frag +++ /dev/null @@ -1,256 +0,0 @@ -#version 450 - -#extension GL_EXT_shader_explicit_arithmetic_types: enable -#extension GL_EXT_shader_explicit_arithmetic_types_int8: require -#extension GL_EXT_shader_explicit_arithmetic_types_int16: require -#extension GL_EXT_shader_explicit_arithmetic_types_int32: require -#extension GL_EXT_shader_explicit_arithmetic_types_int64: require -#extension GL_EXT_shader_explicit_arithmetic_types_float16: require -#extension GL_EXT_shader_explicit_arithmetic_types_float32: require -#extension GL_EXT_shader_explicit_arithmetic_types_float64: require - -layout(binding = 0) uniform Uniforms -{ - uint index; -}; - -layout(std140, binding = 1) uniform Block -{ - int16_t i16; - i16vec2 i16v2; - i16vec3 i16v3; - i16vec4 i16v4; - uint16_t u16; - u16vec2 u16v2; - u16vec3 u16v3; - u16vec4 u16v4; -} block; - -void main() -{ -} - -void literal() -{ - const int16_t i16Const[3] = - { - int16_t(-0x1111), // Hex - int16_t(-1), // Dec - int16_t(040000), // Oct - }; - - int16_t i16 = i16Const[index]; - - const uint16_t u16Const[] = - { - uint16_t(0xFFFF), // Hex - uint16_t(65535), // Dec - uint16_t(077777), // Oct - }; - - uint16_t u16 = u16Const[index]; -} - -void typeCast16() -{ - i8vec2 i8v; - u8vec2 u8v; - i16vec2 i16v; - u16vec2 u16v; - i32vec2 i32v; - u32vec2 u32v; - i64vec2 i64v; - u64vec2 u64v; - f16vec2 f16v; - f32vec2 f32v; - f64vec2 f64v; - bvec2 bv; - - i32v = i16v; // int16_t -> int32_t - i32v = u16v; // uint16_t -> int32_t - u16v = i16v; // int16_t -> uint16_t - u32v = i16v; // int16_t -> uint32_t - i64v = i16v; // int16_t -> int64_t - u64v = i16v; // int16_t -> uint64_t - u32v = u16v; // uint16_t -> uint32_t - i64v = u16v; // uint16_t -> int64_t - u64v = u16v; // uint16_t -> uint64_t - f16v = i16v; // int16_t -> float16_t - f32v = i16v; // int16_t -> float32_t - f64v = i16v; // int16_t -> float64_t - f16v = u16v; // uint16_t -> float16_t - f32v = u16v; // uint16_t -> float32_t - f64v = u16v; // uint16_t -> float64_t - - i32v = i32vec2(i16v); // int16_t -> int32_t - i32v = i32vec2(u16v); // uint16_t -> int32_t - u16v = u16vec2(i16v); // int16_t -> uint16_t - u32v = u32vec2(i16v); // int16_t -> uint32_t - i64v = i64vec2(i16v); // int16_t -> int64_t - u64v = i64vec2(i16v); // int16_t -> uint64_t - u32v = u32vec2(u16v); // uint16_t -> uint32_t - i64v = i64vec2(u16v); // uint16_t -> int64_t - u64v = i64vec2(u16v); // uint16_t -> uint64_t - f16v = f16vec2(i16v); // int16_t -> float16_t - f32v = f32vec2(i16v); // int16_t -> float32_t - f64v = f64vec2(i16v); // int16_t -> float64_t - f16v = f16vec2(u16v); // uint16_t -> float16_t - f32v = f32vec2(u16v); // uint16_t -> float32_t - f64v = f64vec2(u16v); // uint16_t -> float64_t - - i8v = i8vec2(i16v); // int16_t -> int8_t - i8v = i8vec2(u16v); // uint16_t -> int8_t - u8v = u8vec2(i16v); // int16_t -> uint8_t - u8v = u8vec2(u16v); // uint16_t -> uint8_t - i16v = u8vec2(u16v); // uint16_t -> int16_t - i16v = i16vec2(bv); // bool -> int16 - u16v = u16vec2(bv); // bool -> uint16 - bv = bvec2(i16v); // int16 -> bool - bv = bvec2(u16v); // uint16 -> bool -} -void operators() -{ - u16vec3 u16v; - int16_t i16; - uvec3 uv; - int32_t i; - int64_t i64; - bool b; - float f; - float arr[4] = {1.0, 2.0, 3.0, 4.0}; - - // Unary - u16v++; - i16--; - ++i16; - --u16v; - - u16v = ~u16v; - - i16 = +i16; - u16v = -u16v; - - // Arithmetic - i16 += i16; - u16v -= u16v; - i *= i16; - uv /= u16v; - uv %= i16; - - uv = u16v + uv; - i64 = i16 - i64; - uv = u16v * uv; - i64 = i16 * i64; - i = i16 % i; - - // Shift - u16v <<= i16; - i16 >>= u16v.y; - - i16 = i16 << u16v.z; - uv = u16v << i; - - // Relational - b = (u16v.x != i16); - b = (i16 == u16v.x); - b = (u16v.x > uv.y); - b = (i16 < i); - b = (u16v.y >= uv.x); - b = (i16 <= i); - - // Bitwise - uv |= i16; - i = i16 | i; - i64 &= i16; - uv = u16v & uv; - uv ^= i16; - u16v = u16v ^ i16; - - // Index - f = arr[i16]; -} - -void builtinFuncs() -{ - i16vec2 i16v; - i16vec4 i16v4; - u16vec3 u16v; - u16vec2 u16v2; - u16vec4 u16v4; - bvec3 bv; - int16_t i16; - uint16_t u16; - int32_t i32; - uint32_t u32; - int64_t i64; - uint64_t u64; - - // abs() - i16v = abs(i16v); - - // sign() - i16 = sign(i16); - - // min() - i16v = min(i16v, i16); - i16v = min(i16v, i16vec2(-1)); - u16v = min(u16v, u16); - u16v = min(u16v, u16vec3(0)); - - // max() - i16v = max(i16v, i16); - i16v = max(i16v, i16vec2(-1)); - u16v = max(u16v, u16); - u16v = max(u16v, u16vec3(0)); - - // clamp() - i16v = clamp(i16v, -i16, i16); - i16v = clamp(i16v, -i16v, i16v); - u16v = clamp(u16v, -u16, u16); - u16v = clamp(u16v, -u16v, u16v); - - // mix() - i16 = mix(i16v.x, i16v.y, true); - i16v = mix(i16vec2(i16), i16vec2(-i16), bvec2(false)); - u16 = mix(u16v.x, u16v.y, true); - u16v = mix(u16vec3(u16), u16vec3(-u16), bvec3(false)); - - //pack - i32 = pack32(i16v); - i64 = pack64(i16v4); - u32 = pack32(u16v2); - u64 = pack64(u16v4); - - i16v = unpack16(i32); - i16v4 = unpack16(i64); - u16v2 = unpack16(u32); - u16v4 = unpack16(u64); - - // lessThan() - bv = lessThan(u16v, u16vec3(u16)); - bv.xy = lessThan(i16v, i16vec2(i16)); - - // lessThanEqual() - bv = lessThanEqual(u16v, u16vec3(u16)); - bv.xy = lessThanEqual(i16v, i16vec2(i16)); - - // greaterThan() - bv = greaterThan(u16v, u16vec3(u16)); - bv.xy = greaterThan(i16v, i16vec2(i16)); - - // greaterThanEqual() - bv = greaterThanEqual(u16v, u16vec3(u16)); - bv.xy = greaterThanEqual(i16v, i16vec2(i16)); - - // equal() - bv = equal(u16v, u16vec3(u16)); - bv.xy = equal(i16v, i16vec2(i16)); - - // notEqual() - bv = notEqual(u16v, u16vec3(u16)); - bv.xy = notEqual(i16v, i16vec2(i16)); -} - -// Type conversion for specialization constant -layout(constant_id = 100) const int16_t si16 = int16_t(-10); -layout(constant_id = 101) const uint16_t su16 = uint16_t(20); diff --git a/deps/glslang/Test/spv.int32.frag b/deps/glslang/Test/spv.int32.frag deleted file mode 100644 index 0a39ecd4..00000000 --- a/deps/glslang/Test/spv.int32.frag +++ /dev/null @@ -1,256 +0,0 @@ -#version 450 - -#extension GL_EXT_shader_explicit_arithmetic_types: enable -#extension GL_EXT_shader_explicit_arithmetic_types_int8: require -#extension GL_EXT_shader_explicit_arithmetic_types_int16: require -#extension GL_EXT_shader_explicit_arithmetic_types_int32: require -#extension GL_EXT_shader_explicit_arithmetic_types_int64: require -#extension GL_EXT_shader_explicit_arithmetic_types_float16: require -#extension GL_EXT_shader_explicit_arithmetic_types_float32: require -#extension GL_EXT_shader_explicit_arithmetic_types_float64: require - -layout(binding = 0) uniform Uniforms -{ - uint index; -}; - -layout(std140, binding = 1) uniform Block -{ - int32_t i32; - i32vec2 i32v2; - i32vec3 i32v3; - i32vec4 i32v4; - uint32_t u32; - u32vec2 u32v2; - u32vec3 u32v3; - u32vec4 u32v4; -} block; - -void main() -{ -} - -void literal() -{ - - const int32_t i32Const[3] = - { - -0x11111111, // Hex - -1, // Dec - 04000000000, // Oct - }; - - int32_t i32 = i32Const[index]; - - const uint32_t u32Const[] = - { - 0xFFFFFFFF, // Hex - 4294967295, // Dec - 017777777777, // Oct - }; - - uint32_t u32 = u32Const[index]; -} - -void typeCast32() -{ - i8vec2 i8v; - u8vec2 u8v; - i16vec2 i16v; - u16vec2 u16v; - i32vec2 i32v; - u32vec2 u32v; - i64vec2 i64v; - u64vec2 u64v; - f16vec2 f16v; - f32vec2 f32v; - f64vec2 f64v; - bvec2 bv; - - u32v = i32v; // int32_t -> uint32_t - i64v = i32v; // int32_t -> int64_t - u64v = i32v; // int32_t -> uint64_t - i64v = u32v; // uint32_t -> int64_t - u64v = u32v; // uint32_t -> uint64_t - f32v = i32v; // int32_t -> float32_t - f64v = i32v; // int32_t -> float64_t - f32v = u32v; // uint32_t -> float32_t - f64v = u32v; // uint32_t -> float64_t - - i8v = i8vec2(i32v); // int32_t -> int8_t - i8v = i8vec2(u32v); // uint32_t -> int8_t - i16v = i16vec2(i32v); // int32_t -> int16_t - i16v = i16vec2(u32v); // uint32_t -> int16_t - i32v = i32vec2(i32v); // int32_t -> int32_t - i32v = i32vec2(u32v); // uint32_t -> int32_t - i64v = i64vec2(i32v); // int32_t -> int64_t - i64v = i64vec2(u32v); // uint32_t -> int64_t - u8v = u8vec2(i32v); // int32_t -> uint8_t - u8v = u8vec2(u32v); // uint32_t -> uint8_t - u16v = u16vec2(i32v); // int32_t -> uint16_t - u16v = u16vec2(u32v); // uint32_t -> uint16_t - u32v = u32vec2(i32v); // int32_t -> uint32_t - u32v = u32vec2(u32v); // uint32_t -> uint32_t - u64v = u64vec2(i32v); // int32_t -> uint64_t - u64v = u64vec2(u32v); // uint32_t -> uint64_t - - f16v = f16vec2(i32v); // int32_t -> float16_t - f32v = f32vec2(i32v); // int32_t -> float32_t - f64v = f64vec2(i32v); // int32_t -> float64_t - f16v = f16vec2(u32v); // uint32_t -> float16_t - f32v = f32vec2(u32v); // uint32_t -> float32_t - f64v = f64vec2(u32v); // uint32_t -> float64_t - - i32v = i32vec2(bv); // bool -> int32 - u32v = u32vec2(bv); // bool -> uint32 - bv = bvec2(i32v); // int32 -> bool - bv = bvec2(u32v); // uint32 -> bool -} - -void operators() -{ - u32vec3 u32v; - int32_t i32; - uvec3 uv; - int32_t i; - int64_t i64; - bool b; - - // Unary - u32v++; - i32--; - ++i32; - --u32v; - - u32v = ~u32v; - - i32 = +i32; - u32v = -u32v; - - // Arithmetic - i32 += i32; - u32v -= u32v; - i *= i32; - uv /= u32v; - uv %= i32; - - uv = u32v + uv; - i64 = i32 - i64; - uv = u32v * uv; - i64 = i32 * i64; - i = i32 % i; - - // Shift - u32v <<= i32; - i32 >>= u32v.y; - - i64 = i64 << u32v.z; - uv = u32v << i; - - // Relational - b = (u32v.x != i32); - b = (i32 == u32v.x); - b = (u32v.x > uv.y); - b = (i32 < i); - b = (u32v.y >= uv.x); - b = (i32 <= i); - - // Bitwise - uv |= i32; - i = i32 | i; - i64 &= i32; - uv = u32v & uv; - uv ^= i32; - u32v = u32v ^ i32; -} - -void builtinFuncs() -{ - i32vec2 i32v; - i32vec4 i32v4; - u32vec3 u32v; - u32vec2 u32v2; - u32vec4 u32v4; - bvec3 bv; - int32_t i32; - uint32_t u32; - int64_t i64; - uint64_t u64; - i8vec4 i8v4; - u8vec4 u8v4; - i16vec2 i16v2; - u16vec2 u16v2; - - // abs() - i32v = abs(i32v); - - // sign() - i32 = sign(i32); - - // min() - i32v = min(i32v, i32); - i32v = min(i32v, i32vec2(-1)); - u32v = min(u32v, u32); - u32v = min(u32v, u32vec3(0)); - - // max() - i32v = max(i32v, i32); - i32v = max(i32v, i32vec2(-1)); - u32v = max(u32v, u32); - u32v = max(u32v, u32vec3(0)); - - // clamp() - i32v = clamp(i32v, -i32, i32); - i32v = clamp(i32v, -i32v, i32v); - u32v = clamp(u32v, -u32, u32); - u32v = clamp(u32v, -u32v, u32v); - - // mix() - i32 = mix(i32v.x, i32v.y, true); - i32v = mix(i32vec2(i32), i32vec2(-i32), bvec2(false)); - u32 = mix(u32v.x, u32v.y, true); - u32v = mix(u32vec3(u32), u32vec3(-u32), bvec3(false)); - - //pack - i32 = pack32(i8v4); - i32 = pack32(i16v2); - u32 = pack32(u8v4); - u32 = pack32(u16v2); - - i32v = unpack32(i64); - u32v2 = unpack32(u64); - - // lessThan() - bv = lessThan(u32v, u32vec3(u32)); - bv.xy = lessThan(i32v, i32vec2(i32)); - - // lessThanEqual() - bv = lessThanEqual(u32v, u32vec3(u32)); - bv.xy = lessThanEqual(i32v, i32vec2(i32)); - - // greaterThan() - bv = greaterThan(u32v, u32vec3(u32)); - bv.xy = greaterThan(i32v, i32vec2(i32)); - - // greaterThanEqual() - bv = greaterThanEqual(u32v, u32vec3(u32)); - bv.xy = greaterThanEqual(i32v, i32vec2(i32)); - - // equal() - bv = equal(u32v, u32vec3(u32)); - bv.xy = equal(i32v, i32vec2(i32)); - - // notEqual() - bv = notEqual(u32v, u32vec3(u32)); - bv.xy = notEqual(i32v, i32vec2(i32)); -} - -// Type conversion for specialization constant -layout(constant_id = 100) const int32_t si32 = -10; -layout(constant_id = 101) const uint32_t su32 = 20U; -layout(constant_id = 102) const int si = -5; -layout(constant_id = 103) const uint su = 4; -layout(constant_id = 104) const bool sb = true; - -#define UINT32_MAX 4294967295u -uint32_t u32Max = UINT32_MAX; diff --git a/deps/glslang/Test/spv.int64.frag b/deps/glslang/Test/spv.int64.frag deleted file mode 100644 index 0f80d559..00000000 --- a/deps/glslang/Test/spv.int64.frag +++ /dev/null @@ -1,276 +0,0 @@ -#version 450 - -#extension GL_ARB_gpu_shader_int64: enable -#extension GL_EXT_shader_explicit_arithmetic_types_int64: require - -layout(binding = 0) uniform Uniforms -{ - uint index; -}; - -layout(std140, binding = 1) uniform Block -{ - i64vec3 i64v; - uint64_t u64; -} block; - -void main() -{ -} - -void literal() -{ - const int64_t i64Const[3] = - { - -0x1111111111111111l, // Hex - -1l, // Dec - 040000000000l, // Oct - }; - - int64_t i64 = i64Const[index]; - - const uint64_t u64Const[] = - { - 0xFFFFFFFFFFFFFFFFul, // Hex - 4294967296UL, // Dec - 077777777777ul, // Oct - }; - - uint64_t u64 = u64Const[index]; -} - -void typeCast() -{ - bvec2 bv; - ivec2 iv; - uvec2 uv; - vec2 fv; - dvec2 dv; - - i64vec2 i64v; - u64vec2 u64v; - - i64v = i64vec2(bv); // bool -> int64 - u64v = u64vec2(bv); // bool -> uint64 - - i64v = iv; // int -> int64 - iv = ivec2(i64v); // int64 -> int - - u64v = uv; // uint -> uint64 - uv = uvec2(u64v); // uint64 -> uint - - fv = vec2(i64v); // int64 -> float - dv = i64v; // int64 -> double - - fv = vec2(u64v); // uint64 -> float - dv = u64v; // uint64 -> double - - i64v = i64vec2(fv); // float -> int64 - i64v = i64vec2(dv); // double -> int64 - - u64v = u64vec2(fv); // float -> uint64 - u64v = u64vec2(dv); // double -> uint64 - - bv = bvec2(i64v); // int64 -> bool - bv = bvec2(u64v); // uint64 -> bool - - u64v = i64v; // int64 -> uint64 - i64v = i64vec2(u64v); // uint64 -> int64 - - uv = uvec2(i64v); // int64 -> uint - i64v = i64vec2(uv); // uint -> int64 - iv = ivec2(u64v); // uint64 -> int - u64v = iv; // int -> uint64 -} - -void operators() -{ - u64vec3 u64v; - int64_t i64; - uvec3 uv; - int i; - bool b; - - // Unary - u64v++; - i64--; - ++i64; - --u64v; - - u64v = ~u64v; - - i64 = +i64; - u64v = -u64v; - - // Arithmetic - i64 += i64; - u64v -= u64v; - i64 *= i; - u64v /= uv; - u64v %= i; - - u64v = u64v + uv; - i64 = i64 - i; - u64v = u64v * uv; - i64 = i64 * i; - i64 = i64 % i; - - // Shift - u64v = u64v << i; - i64 = i64 >> uv.y; - u64v <<= i; - i64 >>= uv.y; - - i64 = i64 << u64v.z; - u64v = u64v << i64; - - // Relational - b = (u64v.x != i64); - b = (i64 == u64v.x); - b = (u64v.x > uv.y); - b = (i64 < i); - b = (u64v.y >= uv.x); - b = (i64 <= i); - - // Bitwise - u64v |= i; - i64 = i64 | i; - i64 &= i; - u64v = u64v & uv; - u64v ^= i64; - u64v = u64v ^ i64; -} - -void builtinFuncs() -{ - i64vec2 i64v; - u64vec3 u64v; - dvec3 dv; - bvec3 bv; - - int64_t i64; - uint64_t u64; - - // abs() - i64v = abs(i64v); - - // sign() - i64 = sign(i64); - - // min() - i64v = min(i64v, i64); - i64v = min(i64v, i64vec2(-1)); - u64v = min(u64v, u64); - u64v = min(u64v, u64vec3(0)); - - // max() - i64v = max(i64v, i64); - i64v = max(i64v, i64vec2(-1)); - u64v = max(u64v, u64); - u64v = max(u64v, u64vec3(0)); - - // clamp() - i64v = clamp(i64v, -i64, i64); - i64v = clamp(i64v, -i64v, i64v); - u64v = clamp(u64v, -u64, u64); - u64v = clamp(u64v, -u64v, u64v); - - // mix() - i64 = mix(i64v.x, i64v.y, true); - i64v = mix(i64vec2(i64), i64vec2(-i64), bvec2(false)); - u64 = mix(u64v.x, u64v.y, true); - u64v = mix(u64vec3(u64), u64vec3(-u64), bvec3(false)); - - // doubleBitsToInt64() - i64v = doubleBitsToInt64(dv.xy); - - // doubleBitsToUint64() - u64v.x = doubleBitsToUint64(dv.z); - - // int64BitsToDouble() - dv.xy = int64BitsToDouble(i64v); - - // uint64BitsToDouble() - dv = uint64BitsToDouble(u64v); - - // packInt2x32() - i64 = packInt2x32(ivec2(1, 2)); - - // unpackInt2x32() - ivec2 iv = unpackInt2x32(i64); - - // packUint2x32() - u64 = packUint2x32(uvec2(2, 3)); - - // unpackUint2x32() - uvec2 uv = unpackUint2x32(u64); - - // lessThan() - bv = lessThan(u64v, u64vec3(u64)); - bv.xy = lessThan(i64v, i64vec2(i64)); - - // lessThanEqual() - bv = lessThanEqual(u64v, u64vec3(u64)); - bv.xy = lessThanEqual(i64v, i64vec2(i64)); - - // greaterThan() - bv = greaterThan(u64v, u64vec3(u64)); - bv.xy = greaterThan(i64v, i64vec2(i64)); - - // greaterThanEqual() - bv = greaterThanEqual(u64v, u64vec3(u64)); - bv.xy = greaterThanEqual(i64v, i64vec2(i64)); - - // equal() - bv = equal(u64v, u64vec3(u64)); - bv.xy = equal(i64v, i64vec2(i64)); - - // notEqual() - bv = notEqual(u64v, u64vec3(u64)); - bv.xy = notEqual(i64v, i64vec2(i64)); - - // findLSB() - i64 = findLSB(u64); - i64v = findLSB(u64vec2(u64)); - - // bitCount() - i64 = bitCount(u64); - i64v = bitCount(u64vec2(u64)); -} - -// Type conversion for specialization constant -layout(constant_id = 100) const int64_t si64 = -10L; -layout(constant_id = 101) const uint64_t su64 = 20UL; -layout(constant_id = 102) const int si = -5; -layout(constant_id = 103) const uint su = 4; -layout(constant_id = 104) const bool sb = true; -layout(constant_id = 105) const uint64_t su64inc = su64 + 1UL; - -// bool <-> int64/uint64 -const bool i64_to_b = bool(si64); -const bool u64_to_b = bool(su64); -const int64_t b_to_i64 = int64_t(sb); -const uint64_t b_to_u64 = uint64_t(sb); - -// int <-> int64 -const int i64_to_i = int(si64); -const int64_t i_to_i64 = int64_t(si); - -// uint <-> uint64 -const uint u64_to_u = uint(su64); -const uint64_t u_to_u64 = uint64_t(su); - -// int64 <-> uint64 -const int64_t u64_to_i64 = int64_t(su64); -const uint64_t i64_to_u64 = uint64_t(si64); - -// int <-> uint64 -const int u64_to_i = int(su64); -const uint64_t i_to_u64 = uint64_t(si); - -// uint <-> int64 -const uint i64_to_u = uint(si64); -const int64_t u_to_i64 = int64_t(su); - -#define UINT64_MAX 18446744073709551615ul -uint64_t u64Max = UINT64_MAX; diff --git a/deps/glslang/Test/spv.int8.frag b/deps/glslang/Test/spv.int8.frag deleted file mode 100644 index bd3de17a..00000000 --- a/deps/glslang/Test/spv.int8.frag +++ /dev/null @@ -1,258 +0,0 @@ -#version 450 - -#extension GL_EXT_shader_explicit_arithmetic_types: enable -#extension GL_EXT_shader_explicit_arithmetic_types_int8: require -#extension GL_EXT_shader_explicit_arithmetic_types_int16: require -#extension GL_EXT_shader_explicit_arithmetic_types_int32: require -#extension GL_EXT_shader_explicit_arithmetic_types_int64: require -#extension GL_EXT_shader_explicit_arithmetic_types_float16: require -#extension GL_EXT_shader_explicit_arithmetic_types_float32: require -#extension GL_EXT_shader_explicit_arithmetic_types_float64: require - -layout(binding = 0) uniform Uniforms -{ - uint index; -}; - -layout(std140, binding = 1) uniform Block -{ - int8_t i8; - i8vec2 i8v2; - i8vec3 i8v3; - i8vec4 i8v4; - uint8_t u8; - u8vec2 u8v2; - u8vec3 u8v3; - u8vec4 u8v4; -} block; - -void main() -{ -} - -void literal() -{ - const int8_t i8Const[3] = - { - int8_t(-0x11), // Hex - int8_t(-1), // Dec - int8_t(0400), // Oct - }; - - int8_t i8 = i8Const[index]; - - const uint8_t u8Const[] = - { - uint8_t(0xFF), // Hex - uint8_t(255), // Dec - uint8_t(0177), // Oct - }; - - uint8_t u8 = u8Const[index]; -} - -void typeCast8() -{ - i8vec2 i8v; - u8vec2 u8v; - i16vec2 i16v; - u16vec2 u16v; - i32vec2 i32v; - u32vec2 u32v; - i64vec2 i64v; - u64vec2 u64v; - f16vec2 f16v; - f32vec2 f32v; - f64vec2 f64v; - bvec2 bv; - - u8v = i8v; // int8_t -> uint8_t - i16v = i8v; // int8_t -> int16_t - i16v = u8v; // uint8_t -> int16_t - i32v = i8v; // int8_t -> int32_t - i32v = u8v; // uint8_t -> int32_t - u32v = i8v; // int8_t -> uint32_t - i64v = i8v; // int8_t -> int64_t - u64v = i8v; // int8_t -> uint64_t - u32v = u8v; // uint8_t -> uint32_t - i64v = u8v; // uint8_t -> int64_t - u64v = u8v; // uint8_t -> uint64_t - f16v = i8v; // int8_t -> float16_t - f32v = i8v; // int8_t -> float32_t - f64v = i8v; // int8_t -> float64_t - f16v = u8v; // uint8_t -> float16_t - f32v = u8v; // uint8_t -> float32_t - f64v = u8v; // uint8_t -> float64_t - - i8v = i8vec2(u8v); // uint8_t -> int8_t - i16v = i16vec2(i8v); // int8_t -> int16_t - i16v = i16vec2(u8v); // uint8_t -> int16_t - i32v = i32vec2(i8v); // int8_t -> int32_t - i32v = i32vec2(u8v); // uint8_t -> int32_t - i64v = i64vec2(i8v); // int8_t -> int64_t - u64v = i64vec2(i8v); // int8_t -> uint64_t - u16v = u16vec2(i8v); // int8_t -> uint16_t - u16v = u16vec2(u8v); // uint8_t -> uint16_t - u32v = u32vec2(u8v); // uint8_t -> uint32_t - i64v = i64vec2(u8v); // uint8_t -> int64_t - u64v = i64vec2(u8v); // uint8_t -> uint64_t - f16v = f16vec2(i8v); // int8_t -> float16_t - f32v = f32vec2(i8v); // int8_t -> float32_t - f64v = f64vec2(i8v); // int8_t -> float64_t - f16v = f16vec2(u8v); // uint8_t -> float16_t - f32v = f32vec2(u8v); // uint8_t -> float32_t - f64v = f64vec2(u8v); // uint8_t -> float64_t - - i8v = i8vec2(bv); // bool -> int8 - u8v = u8vec2(bv); // bool -> uint8 - bv = bvec2(i8v); // int8 -> bool - bv = bvec2(u8v); // uint8 -> bool -} - -void operators() -{ - u8vec3 u8v; - int8_t i8; - uvec3 uv; - int32_t i; - int16_t i16; - bool b; - float arr[4] = {1.0, 2.0, 3.0, 4.0}; - float f; - - // Unary - u8v++; - i8--; - ++i8; - --u8v; - - u8v = ~u8v; - - i8 = +i8; - u8v = -u8v; - - // Arithmetic - i8 += i8; - u8v -= u8v; - i *= i8; - uv /= u8v; - uv %= i8; - - uv = u8v + uv; - i16 = i8 - i16; - uv = u8v * uv; - i16 = i8 * i16; - i = i8 % i; - - // Shift - u8v <<= i8; - i8 >>= u8v.y; - - i8 = i8 << u8v.z; - u8v = u8v << i8; - - // Relational - b = (u8v.x != i8); - b = (i8 == u8v.x); - b = (u8v.x > uv.y); - b = (i8 < i); - b = (u8v.y >= uv.x); - b = (i8 <= i); - - // Bitwise - uv |= i8; - i = i8 | i; - i16 &= i8; - uv = u8v & uv; - uv ^= i8; - u8v = u8v ^ i8; - - // Index - f = arr[i8]; -} - -void builtinFuncs() -{ - i8vec2 i8v; - i8vec4 i8v4; - u8vec3 u8v; - u8vec2 u8v2; - u8vec4 u8v4; - bvec3 bv; - int16_t i16; - int32_t i32; - uint16_t u16; - uint32_t u32; - - int8_t i8; - uint8_t u8; - - // abs() - i8v = abs(i8v); - - // sign() - i8 = sign(i8); - - // min() - i8v = min(i8v, i8); - i8v = min(i8v, i8vec2(-1)); - u8v = min(u8v, u8); - u8v = min(u8v, u8vec3(0)); - - // max() - i8v = max(i8v, i8); - i8v = max(i8v, i8vec2(-1)); - u8v = max(u8v, u8); - u8v = max(u8v, u8vec3(0)); - - // clamp() - i8v = clamp(i8v, -i8, i8); - i8v = clamp(i8v, -i8v, i8v); - u8v = clamp(u8v, -u8, u8); - u8v = clamp(u8v, -u8v, u8v); - - // mix() - i8 = mix(i8v.x, i8v.y, true); - i8v = mix(i8vec2(i8), i8vec2(-i8), bvec2(false)); - u8 = mix(u8v.x, u8v.y, true); - u8v = mix(u8vec3(u8), u8vec3(-u8), bvec3(false)); - - //pack - i16 = pack16(i8v); - i32 = pack32(i8v4); - u16 = pack16(u8v2); - u32 = pack32(u8v4); - - i8v = unpack8(i16); - i8v4 = unpack8(i32); - u8v2 = unpack8(u16); - u8v4 = unpack8(u32); - - // lessThan() - bv = lessThan(u8v, u8vec3(u8)); - bv.xy = lessThan(i8v, i8vec2(i8)); - - // lessThanEqual() - bv = lessThanEqual(u8v, u8vec3(u8)); - bv.xy = lessThanEqual(i8v, i8vec2(i8)); - - // greaterThan() - bv = greaterThan(u8v, u8vec3(u8)); - bv.xy = greaterThan(i8v, i8vec2(i8)); - - // greaterThanEqual() - bv = greaterThanEqual(u8v, u8vec3(u8)); - bv.xy = greaterThanEqual(i8v, i8vec2(i8)); - - // equal() - bv = equal(u8v, u8vec3(u8)); - bv.xy = equal(i8v, i8vec2(i8)); - - // notEqual() - bv = notEqual(u8v, u8vec3(u8)); - bv.xy = notEqual(i8v, i8vec2(i8)); -} - -// Type conversion for specialization constant -layout(constant_id = 100) const int8_t si8 = int8_t(-10); -layout(constant_id = 101) const uint8_t su8 = uint8_t(20); diff --git a/deps/glslang/Test/spv.intOps.vert b/deps/glslang/Test/spv.intOps.vert deleted file mode 100644 index b7d749b4..00000000 --- a/deps/glslang/Test/spv.intOps.vert +++ /dev/null @@ -1,72 +0,0 @@ -#version 310 es - -in uint u1; -in uvec2 u2; -in uvec3 u3; -in uvec4 u4; - -in float v1; -in vec2 v2; -in vec3 v3; -in vec4 v4; - -in int i1; -in ivec2 i2; -in ivec3 i3; -in ivec4 i4; - -out uvec4 uout; -out ivec4 iout; -out vec4 fout; - -void main() -{ - iout = ivec4(0); - uout = uvec4(0); - fout = vec4(0.0); - - uvec2 u2out; - uout.xy += uaddCarry(u2, u2, u2out); - uout.xy += u2out; - - uint u1out; - uout.x += usubBorrow(u1, u1, u1out); - uout.x += u1out; - - uvec4 u4outHi, u4outLow; - umulExtended(u4, u4, u4outHi, u4outLow); - uout += u4outHi + u4outLow; - - ivec4 i4outHi, i4outLow; - imulExtended(i4, i4, i4outHi, i4outLow); - iout += i4outLow + i4outHi; - - ivec3 i3out; - fout.xyz += frexp(v3, i3out); - iout.xyz += i3out; - int i1out; - fout.x += frexp(v1, i1out); - iout.x += i1out; - - fout.xy += ldexp(v2, i2); - fout.x += ldexp(v1, i1); - - iout.x += bitfieldExtract(i1, 4, 5); - uout.xyz += bitfieldExtract(u3, 4, 5); - iout.xyz += bitfieldInsert(i3, i3, 4, 5); - uout.x += bitfieldInsert(u1, u1, 4, 5); - iout.xy += bitfieldReverse(i2); - uout += bitfieldReverse(u4); - iout.x += bitCount(i1); - iout.xyz += bitCount(u3); - - iout.xy += findLSB(i2); - iout += findLSB(u4); - iout.x += findMSB(i1); - iout.xy += findMSB(u2); - - uout.x += packUnorm4x8(v4); - uout.x += packSnorm4x8(v4); - fout += unpackUnorm4x8(u1); - fout += unpackSnorm4x8(u1); -} diff --git a/deps/glslang/Test/spv.intcoopmat.comp b/deps/glslang/Test/spv.intcoopmat.comp deleted file mode 100644 index 235aa16b..00000000 --- a/deps/glslang/Test/spv.intcoopmat.comp +++ /dev/null @@ -1,117 +0,0 @@ -#version 450 core -#extension GL_KHR_memory_scope_semantics : enable -#extension GL_NV_cooperative_matrix : enable -#extension GL_NV_integer_cooperative_matrix : enable -#extension GL_EXT_shader_explicit_arithmetic_types : enable -#extension GL_EXT_buffer_reference : enable - -layout (local_size_x = 64, local_size_y = 1, local_size_z = 1) in; - -const int X = 8; -layout(constant_id = 0) const int Y = 2; -const int Z = X*Y; - -icoopmatNV<8, gl_ScopeSubgroup, Z, 8> miC; -icoopmatNV<8, gl_ScopeSubgroup, Z, 8> miC2[3]; -ucoopmatNV<8, gl_ScopeSubgroup, Z, 8> muC; -ucoopmatNV<8, gl_ScopeSubgroup, Z, 8> muC2[3]; - -int iarr[miC.length()]; -int iarr2[miC2[1].length()]; -int uarr[muC.length()]; -int uarr2[muC2[1].length()]; - -const icoopmatNV<32, gl_ScopeSubgroup, Z, 8> mD = icoopmatNV<32, gl_ScopeSubgroup, Z, 8>(1); -const ucoopmatNV<8, gl_ScopeSubgroup, 8, 8> mD2 = ucoopmatNV<8, gl_ScopeSubgroup, 8, 8>(1); - -struct S { int a; int b; int c; }; - -const S s = S(12, 23, 34); - -layout(set = 0, binding = 0, buffer_reference) coherent buffer Block { - uint y[1024*1024]; - uint x[]; -} block; - -layout(set = 0, binding = 0) coherent buffer Block16 { - int8_t y[1024*1024]; - int8_t x[]; - - Block b; -} block8; - -icoopmatNV<8, gl_ScopeSubgroup, 8, 8> ineg(icoopmatNV<8, gl_ScopeSubgroup, 8, 8> m) { return -m; } -ucoopmatNV<8, gl_ScopeSubgroup, 8, 8> umul(ucoopmatNV<8, gl_ScopeSubgroup, 8, 8> m) { return m * uint8_t(2); } - -layout(constant_id = 2) const int SC = 1; -ucoopmatNV<32, gl_ScopeSubgroup, SC, SC> scm[SC][SC]; - -// sized for icoopmatNV<8, gl_ScopeSubgroup, 16, 16> -shared uvec4 shmatrix[16*16*2/16]; - -void main() -{ - ucoopmatNV<8, gl_ScopeSubgroup, 16, (2>1?8:4)> mu = ucoopmatNV<8, gl_ScopeSubgroup, 16, (2>1?8:4)>(2); - icoopmatNV<8, gl_ScopeSubgroup, 16, (2>1?8:4)> mi = icoopmatNV<8, gl_ScopeSubgroup, 16, (2>1?8:4)>(2); - - mu = mu + mu; - mu = mu - mu; - mi = -mi; - mi = mi * int8_t(2); - - fcoopmatNV<16, gl_ScopeSubgroup, 16, 8> mf16_0 = fcoopmatNV<16, gl_ScopeSubgroup, 16, 8>(mu); - fcoopmatNV<32, gl_ScopeSubgroup, 16, 8> mf32_0 = fcoopmatNV<32, gl_ScopeSubgroup, 16, 8>(mu); - fcoopmatNV<16, gl_ScopeSubgroup, 16, 8> mf16_1 = fcoopmatNV<16, gl_ScopeSubgroup, 16, 8>(mi); - fcoopmatNV<32, gl_ScopeSubgroup, 16, 8> mf32_1 = fcoopmatNV<32, gl_ScopeSubgroup, 16, 8>(mi); - - uint8_t x = mu[1]; - mi[0] = int8_t(x); - - coopMatLoadNV(mi, block.x, 16, 128, false); - coopMatStoreNV(mi, block.x, 16, 128, false); - coopMatLoadNV(mu, block8.x, 16, 128, false); - coopMatStoreNV(mu, block8.x, 16, 128, false); - coopMatLoadNV(mi, block8.b.x, 16, 128, false); - coopMatStoreNV(mi, block8.b.x, 16, 128, false); - - ucoopmatNV<8, gl_ScopeSubgroup, 16, 8> A; - ucoopmatNV<8, gl_ScopeSubgroup, 8, 8> B; - ucoopmatNV<8, gl_ScopeSubgroup, 16, 8> C; - ucoopmatNV<8, gl_ScopeSubgroup, 16, 8> D; - D = coopMatMulAddNV(A, B, C); - - int l = D.length(); - - - icoopmatNV<8, gl_ScopeSubgroup, 16, (2>1?8:4)> a[5]; - a[3][0] = int8_t(1); - - int md1 = mD[1]; - - md1 += (mi += mi)[1234]; - - muC2[0] = muC2[1]; - muC2[1][0] = (miC2[2][0]); - - coopMatLoadNV(mi, block.y, 16, 128, false); - coopMatStoreNV(mi, block.y, 16, 128, false); - coopMatLoadNV(mu, block8.y, 16, 128, false); - coopMatStoreNV(mu, block8.y, 16, 128, false); - - icoopmatNV<8, gl_ScopeSubgroup, 8, 8> p1; - ucoopmatNV<8, gl_ScopeSubgroup, 8, 8> p2; - - p1 = ineg(p1); - p2 = umul(p2); - - p1 /= p1; - p2 /= p2; - - p1 *= int8_t(2); - p2 *= uint8_t(4); - - icoopmatNV<8, gl_ScopeSubgroup, 16, 8> ms; - coopMatLoadNV(ms, shmatrix, 1, 2, false); - coopMatStoreNV(ms, shmatrix, 1, 2, false); - -} diff --git a/deps/glslang/Test/spv.interpOps.frag b/deps/glslang/Test/spv.interpOps.frag deleted file mode 100644 index afe28dc3..00000000 --- a/deps/glslang/Test/spv.interpOps.frag +++ /dev/null @@ -1,32 +0,0 @@ -#version 450 - -in float if1; -in vec2 if2; -in vec3 if3; -in vec4 if4; - -flat in int samp; -flat in vec2 offset; - -out vec4 fragColor; - -void main() -{ - vec4 f4 = vec4(0.0); - f4.x += interpolateAtCentroid(if1); - f4.xy += interpolateAtCentroid(if2); - f4.xyz += interpolateAtCentroid(if3); - f4 += interpolateAtCentroid(if4); - - f4.x += interpolateAtSample(if1, samp); - f4.xy += interpolateAtSample(if2, samp); - f4.xyz += interpolateAtSample(if3, samp); - f4 += interpolateAtSample(if4, samp); - - f4.x += interpolateAtOffset(if1, offset); - f4.xy += interpolateAtOffset(if2, offset); - f4.xyz += interpolateAtOffset(if3, offset); - f4 += interpolateAtOffset(if4, offset); - - fragColor = f4; -} diff --git a/deps/glslang/Test/spv.intrinsicsSpirvByReference.vert b/deps/glslang/Test/spv.intrinsicsSpirvByReference.vert deleted file mode 100644 index b02c5826..00000000 --- a/deps/glslang/Test/spv.intrinsicsSpirvByReference.vert +++ /dev/null @@ -1,21 +0,0 @@ -#version 450 core - -#extension GL_EXT_spirv_intrinsics: enable - -spirv_instruction (set = "GLSL.std.450", id = 35) // modf -float modf(float x, spirv_by_reference float i); - -layout(location = 0) in float floatIn; -layout(location = 0) out vec2 vec2Out; -layout(location = 1) out float floatOut; - -void func(spirv_by_reference float f) -{ - f = 0.5; -} - -void main() -{ - vec2Out.x = modf(floatIn, vec2Out.y); - func(floatOut); -} diff --git a/deps/glslang/Test/spv.intrinsicsSpirvDecorate.frag b/deps/glslang/Test/spv.intrinsicsSpirvDecorate.frag deleted file mode 100644 index 8b495cf7..00000000 --- a/deps/glslang/Test/spv.intrinsicsSpirvDecorate.frag +++ /dev/null @@ -1,37 +0,0 @@ -#version 450 core - -#extension GL_EXT_spirv_intrinsics: enable - -#define GL_AMD_shader_explicit_vertex_parameter 1 - -spirv_decorate (extensions = ["SPV_AMD_shader_explicit_vertex_parameter"], 11, 4992) -in vec2 gl_BaryCoordNoPerspAMD; -spirv_decorate (extensions = ["SPV_AMD_shader_explicit_vertex_parameter"], 11, 4993) -in vec2 gl_BaryCoordNoPerspCentroidAMD; -spirv_decorate (extensions = ["SPV_AMD_shader_explicit_vertex_parameter"], 11, 4994) -in vec2 gl_BaryCoordNoPerspSampleAMD; -spirv_decorate (extensions = ["SPV_AMD_shader_explicit_vertex_parameter"], 11, 4995) -in vec2 gl_BaryCoordSmoothAMD; -spirv_decorate (extensions = ["SPV_AMD_shader_explicit_vertex_parameter"], 11, 4996) -in vec2 gl_BaryCoordSmoothCentroidAMD; -spirv_decorate (extensions = ["SPV_AMD_shader_explicit_vertex_parameter"], 11, 4997) -in vec2 gl_BaryCoordSmoothSampleAMD; -spirv_decorate (extensions = ["SPV_AMD_shader_explicit_vertex_parameter"], 11, 4998) -in vec3 gl_BaryCoordPullModelAMD; - -#define __explicitInterpAMD spirv_decorate(extensions = ["SPV_AMD_shader_explicit_vertex_parameter"], 4999) - -spirv_instruction(extensions = ["SPV_AMD_shader_explicit_vertex_parameter"], set = "SPV_AMD_shader_explicit_vertex_parameter", id = 1) -float interpolateAtVertexAMD(float interpolant, uint vertexIdx); - -layout(location = 0) in __explicitInterpAMD float floatIn; -layout(location = 0) out float floatOut; -layout(location = 1) out vec2 vec2Out; - -void main() -{ - floatOut = interpolateAtVertexAMD(floatIn, 1); - vec2Out = gl_BaryCoordNoPerspAMD + gl_BaryCoordNoPerspCentroidAMD + gl_BaryCoordNoPerspSampleAMD + - gl_BaryCoordSmoothAMD + gl_BaryCoordSmoothCentroidAMD + gl_BaryCoordSmoothSampleAMD + - gl_BaryCoordPullModelAMD.xy; -} diff --git a/deps/glslang/Test/spv.intrinsicsSpirvExecutionMode.frag b/deps/glslang/Test/spv.intrinsicsSpirvExecutionMode.frag deleted file mode 100644 index 9213e746..00000000 --- a/deps/glslang/Test/spv.intrinsicsSpirvExecutionMode.frag +++ /dev/null @@ -1,17 +0,0 @@ -#version 450 core - -#extension GL_EXT_spirv_intrinsics: enable - -#define GL_ARB_shader_stencil_export 1 - -spirv_execution_mode(5027); // StencilRefReplacingEXT - -spirv_decorate(extensions = ["SPV_EXT_shader_stencil_export"], capabilities = [5013], 11, 5014) -out int gl_FragStencilRef; - -layout(location = 0) in flat int color; - -void main() -{ - gl_FragStencilRef = color; -} diff --git a/deps/glslang/Test/spv.intrinsicsSpirvInstruction.vert b/deps/glslang/Test/spv.intrinsicsSpirvInstruction.vert deleted file mode 100644 index 2cc1842b..00000000 --- a/deps/glslang/Test/spv.intrinsicsSpirvInstruction.vert +++ /dev/null @@ -1,26 +0,0 @@ -#version 450 core - -#extension GL_EXT_spirv_intrinsics: enable -#extension GL_ARB_gpu_shader_int64: enable - -spirv_instruction (extensions = ["SPV_KHR_shader_clock"], capabilities = [5055], id = 5056) -uvec2 clockRealtime2x32EXT(int); - -spirv_instruction (extensions = ["SPV_KHR_shader_clock"], capabilities = [5055], id = 5056) -uint64_t clockRealtimeEXT(int); - -spirv_instruction (extensions = ["SPV_AMD_shader_trinary_minmax"], set = "SPV_AMD_shader_trinary_minmax", id = 1) -vec2 min3(vec2 x, vec2 y, vec2 z); - -layout(location = 0) in vec3 vec3In; - -layout(location = 0) out uvec2 uvec2Out; -layout(location = 1) out uint64_t u64Out; -layout(location = 2) out vec2 vec2Out; - -void main() -{ - uvec2Out = clockRealtime2x32EXT(1); - u64Out = clockRealtimeEXT(1); - vec2Out = min3(vec3In.xy, vec3In.yz, vec3In.zx); -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.intrinsicsSpirvLiteral.vert b/deps/glslang/Test/spv.intrinsicsSpirvLiteral.vert deleted file mode 100644 index a6c012fe..00000000 --- a/deps/glslang/Test/spv.intrinsicsSpirvLiteral.vert +++ /dev/null @@ -1,17 +0,0 @@ -#version 450 core - -#extension GL_EXT_spirv_intrinsics: enable - -spirv_instruction(id = 61) -vec4 load(spirv_by_reference vec4 pointer, spirv_literal int memoryOperands); - -spirv_instruction(id = 62) -void store(spirv_by_reference vec4 pointer, vec4 object, spirv_literal int memoryOperands); - -layout(location = 0) in vec4 vec4In; -layout(location = 1) out vec4 vec4Out; - -void main() -{ - store(vec4Out, load(vec4In, /*None=*/0x0), /*Volatile=*/0x1); -} diff --git a/deps/glslang/Test/spv.intrinsicsSpirvStorageClass.rchit b/deps/glslang/Test/spv.intrinsicsSpirvStorageClass.rchit deleted file mode 100644 index 5d23d4f8..00000000 --- a/deps/glslang/Test/spv.intrinsicsSpirvStorageClass.rchit +++ /dev/null @@ -1,12 +0,0 @@ -#version 460 - -#extension GL_EXT_spirv_intrinsics: enable - -#define rayPayloadEXT spirv_storage_class(extensions = ["SPV_KHR_ray_tracing"], capabilities = [5353], 5338) - -layout(location = 1) rayPayloadEXT vec4 payload; - -void main() -{ - payload = vec4(0.0, 1.0, 0.0, 1.0); -} diff --git a/deps/glslang/Test/spv.intrinsicsSpirvType.rgen b/deps/glslang/Test/spv.intrinsicsSpirvType.rgen deleted file mode 100644 index bed07296..00000000 --- a/deps/glslang/Test/spv.intrinsicsSpirvType.rgen +++ /dev/null @@ -1,22 +0,0 @@ -#version 460 core - -#extension GL_EXT_spirv_intrinsics: enable - -#define rayQueryEXT spirv_type (extensions = ["SPV_KHR_ray_query"], capabilities = [4472], id = 4472) -#define accelerationStructureEXT spirv_type (extensions = ["SPV_KHR_ray_query"], capabilities = [4472], id = 5341) - -spirv_instruction (extensions = ["SPV_KHR_ray_query"], capabilities = [4472, 4478], id = 4473) -void rayQueryInitializeEXT(spirv_by_reference rayQueryEXT rayQuery, accelerationStructureEXT topLevel, uint rayFlags, uint cullMask, vec3 origin, float tMin, vec3 direction, float tMax); - -spirv_instruction (extensions = ["SPV_KHR_ray_query"], capabilities = [4478], id = 4474) -void rayQueryTerminateEXT(spirv_by_reference rayQueryEXT rayQuery); - -layout(binding = 0) uniform accelerationStructureEXT as; - -void main() -{ - rayQueryEXT rq; - - rayQueryInitializeEXT(rq, as, 0, 0, vec3(0.0), 0.0, vec3(1.0), 1.0); - rayQueryTerminateEXT(rq); -} diff --git a/deps/glslang/Test/spv.intrinsicsSpirvTypeLocalVar.vert b/deps/glslang/Test/spv.intrinsicsSpirvTypeLocalVar.vert deleted file mode 100644 index 203d9007..00000000 --- a/deps/glslang/Test/spv.intrinsicsSpirvTypeLocalVar.vert +++ /dev/null @@ -1,14 +0,0 @@ -#version 460 core - -#extension GL_EXT_spirv_intrinsics: enable - -layout(constant_id = 9) const int size = 9; - -#define EmptyStruct spirv_type(id = 30) -void func(EmptyStruct emptyStruct) {} - -void main() -{ - EmptyStruct dummy[size]; - func(dummy[1]); -} diff --git a/deps/glslang/Test/spv.invariantAll.vert b/deps/glslang/Test/spv.invariantAll.vert deleted file mode 100644 index e094aa07..00000000 --- a/deps/glslang/Test/spv.invariantAll.vert +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 core -#pragma STDGL invariant(all) - -layout(location=0) out highp float v; - -void main() -{ - gl_Position = vec4(v, v, 0, 1); -} - diff --git a/deps/glslang/Test/spv.layer.tese b/deps/glslang/Test/spv.layer.tese deleted file mode 100644 index b0ce079d..00000000 --- a/deps/glslang/Test/spv.layer.tese +++ /dev/null @@ -1,8 +0,0 @@ -#version 450 - -#extension GL_ARB_shader_viewport_layer_array : require - -layout(triangles) in; -void main() { - gl_Layer = 1; -} diff --git a/deps/glslang/Test/spv.layoutNested.vert b/deps/glslang/Test/spv.layoutNested.vert deleted file mode 100644 index f0dc3898..00000000 --- a/deps/glslang/Test/spv.layoutNested.vert +++ /dev/null @@ -1,76 +0,0 @@ -#version 450 - -// should get 3 SPV types for S: no layout, 140, and 430, plus extras for interpolation or invariant differences -struct S -{ - highp uvec3 a; - mediump mat2 b[4]; - lowp uint c; -}; - -layout(set = 0, binding = 0, std140) uniform Block140 -{ - mediump int u; - S s[2][3]; - mediump vec2 v; -} inst140; - -layout(set = 0, binding = 1, std430) buffer Block430 -{ - mediump int u; - S s[2][3]; - mediump vec2 v; -} inst430; - -S s; - -// should get 5 SPV types for T: no layout, 140/row, 140/col, 430/row, and 430/col -struct T { - mat2 m; - int a; -}; - -T t; - -struct Nestor { - T nestorT; -}; - -layout(set = 1, binding = 0, std140) uniform Bt1 -{ - layout(row_major) Nestor nt; -} Btn1; - -layout(set = 1, binding = 0, std140) uniform Bt2 -{ - layout(column_major) Nestor nt; -} Btn2; - -layout(row_major, set = 1, binding = 0, std140) uniform Bt3 -{ - layout(column_major) Nestor ntcol; - Nestor ntrow; // should be row major decoration version of Nestor -} Btn3; - -layout(set = 1, binding = 0, std430) buffer bBt1 -{ - layout(row_major) Nestor nt; -} bBtn1; - -layout(set = 1, binding = 0, std430) buffer bBt2 -{ - layout(column_major) Nestor nt; -} bBtn2; - -layout(set = 1, binding = 0, std430) buffer bBt3 -{ - layout(row_major) Nestor ntcol; - Nestor ntrow; // should be col major decoration version of Nestor -} bBtn3; - -void main() -{ -} - -flat out S sout; -invariant out S soutinv; diff --git a/deps/glslang/Test/spv.length.frag b/deps/glslang/Test/spv.length.frag deleted file mode 100644 index 3b3db0b4..00000000 --- a/deps/glslang/Test/spv.length.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 140 - -vec4 u[3]; - -in vec2 v[2]; - -void main() -{ - int a[5]; - - vec2 t = v[0] + v[1]; - - gl_FragColor = vec4(u.length() * v.length() * a.length()); -} diff --git a/deps/glslang/Test/spv.load.bool.array.interface.block.frag b/deps/glslang/Test/spv.load.bool.array.interface.block.frag deleted file mode 100644 index 22037415..00000000 --- a/deps/glslang/Test/spv.load.bool.array.interface.block.frag +++ /dev/null @@ -1,17 +0,0 @@ -#version 450 core - -layout(std140, set=0, binding=0) uniform ub { - bool bi[2][3]; -}; -layout(std430, set=0, binding=1) buffer ssbo { - bool bo[2][3]; -}; - -layout(location=0) out vec4 color; - -void main() -{ - bo = bi; - color = vec4(0); -} - diff --git a/deps/glslang/Test/spv.localAggregates.frag b/deps/glslang/Test/spv.localAggregates.frag deleted file mode 100644 index 9bdb11b7..00000000 --- a/deps/glslang/Test/spv.localAggregates.frag +++ /dev/null @@ -1,72 +0,0 @@ -#version 400 - -uniform sampler2D samp2D; -in vec2 coord; -in vec4 color; - -struct s1 { - int i; - float f; -}; - -struct s2 { - int i; - float f; - s1 s1_1; - vec4 bleh; -}; - -struct s3 { - s2 s2_1; - int i; - float f; - s1 s1_1; -}; - - -flat in s1 foo; -flat in s2 foo2; -flat in s3 foo3; - - -flat in int condition; - -void main() -{ - s2 locals2; - s3 locals3; - float localFArray[16]; - int localIArray[8]; - - locals2 = foo3.s2_1; - - if (foo3.s2_1.i > 0) { - locals2.s1_1.f = 1.0; - localFArray[4] = coord.x; - localIArray[2] = foo3.s2_1.i; - } else { - locals2.s1_1.f = coord.x; - localFArray[4] = 1.0; - localIArray[2] = 0; - } - - if (localIArray[2] == 0) - ++localFArray[4]; - - float localArray[16]; - int x = 5; - localArray[x] = coord.x; - - float[16] a; - - for (int i = 0; i < 16; i++) - a[i] = 0.0; - - if (condition == 1) - a = localArray; - - locals2.bleh = color; - locals2.bleh.z = coord.y; - - gl_FragColor = locals2.bleh * (localFArray[4] + locals2.s1_1.f + localArray[x] + a[x]) * texture(samp2D, coord); -} diff --git a/deps/glslang/Test/spv.loops.frag b/deps/glslang/Test/spv.loops.frag deleted file mode 100644 index b9ec0997..00000000 --- a/deps/glslang/Test/spv.loops.frag +++ /dev/null @@ -1,302 +0,0 @@ -#version 140 -in vec4 bigColor; -in vec4 bigColor1_1; -in vec4 bigColor1_2; -in vec4 bigColor1_3; -in vec4 bigColor2; -in vec4 bigColor3; -in vec4 bigColor4; -in vec4 bigColor5; -in vec4 bigColor6; -in vec4 bigColor7; -in vec4 bigColor8; - -in vec4 BaseColor; - -in float d; -in float d2; -in float d3; -in float d4; -in float d5; -in float d6; -in float d7; -in float d8; -in float d9; -in float d10; -in float d11; -in float d12; -in float d14; -in float d15; -in float d16; -in float d17; -in float d18; -flat in int Count; - -void main() -{ - vec4 color = BaseColor; - - // Not a real loop - while (true) { - if (color.x < 0.33) { - color += vec4(0.33); - break; - } - if (color.x < 0.66) { - color += vec4(0.66); - break; - } - - color += vec4(0.33); - break; - } - - // While - while (color.x < d) { - color += bigColor; - } - - // While (latchy) - while (color.z < d) { - color += bigColor1_1; - if (color.w < d) - continue; - - color += bigColor1_1; - } - - // While (constant) - while (color.x < 42.0) { - ++color; - } - - // While (complicated-conditional) - while (color.w < d2 && color.y < d3) { - color += bigColor1_2; - } - - // While (multi-exit) - while (color.z < d3) { - color += bigColor1_3; - if (color.y < d4) - break; - color += bigColor1_3; - } - - // For (dynamic) - for (int i = 0; i < Count; ++i) { - color += bigColor2; - } - - // Do while - do { - color += bigColor3; - } while (color.x < d2); - - // For (static) - for (int i = 0; i < 42; ++i) { - color.z += d3; - } - - // For (static) flow-control - for (int i = 0; i < 100; ++i) { - if (color.z < 20.0) - color.x++; - else - color.y++; - if (color.w < 20.0) - if (color.z > color.y) - 0; // do nothing - } - - // For (static) flow-control with latch merge - for (int i = 0; i < 120; ++i) { - if (color.z < 20.0) - color.x++; - else - color.y++; - } - - // For (static) latchy - for (int i = 0; i < 42; ++i) { - color.z += d3; - if (color.x < d4) - continue; - ++color.w; - } - - // For (static) multi-exit - for (int i = 0; i < 42; ++i) { - color.z += d3; - if (color.x < d4) - break; - ++color.w; - } - - // Latchy - do { - color += bigColor4; - if (color.x < d4) - continue; - if (color.y < d4) - color.y += d4; - else - color.x += d4; - } while (color.z < d4); - - // Do while flow control - do { - color += bigColor5; - if (color.y < d5) - color.y += d5; - } while (color.x < d5); - - // If then loop - if (color.x < d6) { - while (color.y < d6) - color += bigColor6; - } else { - while (color.z < d6) - color.z += bigColor6.z; - } - - // If then multi-exit - if (color.x < d6) { - while (color.y < d6) { - color += bigColor6; - if (d7 < 1.0) - break; - } - - } else { - while (color.z < d6) - color.z += bigColor6.z; - } - - - // Multi-exit - do { - if (d7 < 0.0) - break; - - color += bigColor7; - - if (d7 < 1.0) { - color.z++; - break; - } - - color += BaseColor; - - } while (true); - - - // Multi-exit2 - do { - // invariant conditional break at the top of the loop. This could be a - // situation where unswitching the loop has no real increases in code - // size. - if (d8 < 0.0) - break; - - color += bigColor7; - - if (d8 < 1.0) { - color.z++; - if (d8 < 2.0) { - color.y++; - } else { - color.x++; - } - break; - } - - color += BaseColor; - - } while (color.z < d8); - - // Deep exit - while (color.w < d9) { - if (d9 > d8) { - if (color.x <= d7) { - if (color.z == 5.0) - color.w++; - else - break; - } - } - - } - - // No end loop-back. - while (color.z < d10) { - color.y++; - if (color.y < d11) { - color.z++; - if (color.w < d12) - color.w++; - else - color.x++; - continue; - } - - color++; - break; - } - - // Multi-continue - while (color.x < 10.0) { - color += bigColor8; - - if (color.z < d8) - if (color.w < d6) - continue; - - color.y += bigColor8.x; - } - - color++; - gl_FragColor = color; - - // Early Return - while (color.x < d14) { - if (color.y < d15) { - return; - } - else - color++; - } - - color++; - - while (color.w < d16) { - color.w++; - } - - - // While (complicated-conditional) - while (color.w < d2 && color.y < d3) { - color += bigColor1_2; - if (color.z < d3) - return; - } - - - do { - if (color.y < d18) - return; - color++; - } while (color.x < d17); - - // Early Discard - while (color.y < d16) { - if (color.w < d16) { - discard; - } else - color++; - } - - color++; - - gl_FragColor = color; -} diff --git a/deps/glslang/Test/spv.loopsArtificial.frag b/deps/glslang/Test/spv.loopsArtificial.frag deleted file mode 100644 index ae380b94..00000000 --- a/deps/glslang/Test/spv.loopsArtificial.frag +++ /dev/null @@ -1,67 +0,0 @@ -#version 140 -in vec4 bigColor; -in vec4 bigColor1_1; -in vec4 bigColor1_2; -in vec4 bigColor1_3; -in vec4 bigColor2; -in vec4 bigColor3; -in vec4 bigColor4; -in vec4 bigColor5; -in vec4 bigColor6; -in vec4 bigColor7; -in vec4 bigColor8; - -in vec4 BaseColor; - -in float d; -in float d2; -in float d3; -in float d4; -in float d13; - -flat in int Count; - -void main() -{ - vec4 color = BaseColor; - - // Latchy2 - do { - color += bigColor4; - if (color.x < d4) { - color.z += 2.0; - if (color.z < d4) { - color.x++; - continue; - } - } - if (color.y < d4) - color.y += d4; - else - color.x += d4; - } while (color.z < d4); - - // Immediate dominator - while (color.w < d13) { - if (color.z < d13) - color++; - else - color--; - // code from Latchy 2 - color += bigColor4; - if (color.x < d4) { - color.z += 2.0; - if (color.z < d4) { - color.x++; - continue; - } - } - if (color.y < d4) - color.y += d4; - else - color.x += d4; - } - - color++; - gl_FragColor = color; -} diff --git a/deps/glslang/Test/spv.looseUniformNoLoc.vert b/deps/glslang/Test/spv.looseUniformNoLoc.vert deleted file mode 100644 index e8873594..00000000 --- a/deps/glslang/Test/spv.looseUniformNoLoc.vert +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 core - -layout(location = 0) -in vec4 foo; - -layout(location = 0) -out vec4 bar; - -uniform vec4 uv; - -void main() -{ - bar = foo; - gl_Position = foo; -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.matFun.vert b/deps/glslang/Test/spv.matFun.vert deleted file mode 100644 index 49e882f4..00000000 --- a/deps/glslang/Test/spv.matFun.vert +++ /dev/null @@ -1,28 +0,0 @@ -#version 400 - -uniform bl { - uniform mat4 m4; - uniform mat3 m3; -} bName; - -in vec3 v3; - -vec3 xf(mat3 m, vec3 v) -{ - return v * m; -} - -mat3 Mat3(mat4 m) -{ - return mat3(m[0].xyz, m[1].xyz, m[2].xyz); -} - -vec3 mxv(mat4 m4, vec3 v) -{ - return v * Mat3(m4); -} - -void main() -{ - gl_Position = vec4(mxv(bName.m4, v3) + xf(bName.m3, v3), 1.0); -} diff --git a/deps/glslang/Test/spv.matrix.frag b/deps/glslang/Test/spv.matrix.frag deleted file mode 100644 index 31571737..00000000 --- a/deps/glslang/Test/spv.matrix.frag +++ /dev/null @@ -1,49 +0,0 @@ -#version 420 - -in mat3x4 m1; -in mat3x4 m2; -in float f; -in vec3 v3; -in vec4 v4; - -out vec4 color; - -void main() -{ - mat3x4 sum34; - dmat3x4 dm; - vec3 sum3; - vec4 sum4; - - sum34 = m1 - m2; - sum34 += m1 * f; - sum34 += f * m1; - sum34 /= matrixCompMult(m1, m2); - sum34 += m1 / f; - sum34 += f / m1; - sum34 += f; - sum34 -= f; - dm = dmat3x4(sum34); - sum34 = mat3x4(dm); - - sum3 = v4 * m2; - sum4 = m2 * v3; - - mat4x3 m43 = transpose(sum34); - mat4 m4 = m1 * m43; - - sum4 = v4 * m4; - - color = sum4; - - ++sum34; - --sum34; - - sum34 += mat3x4(f); - sum34 += mat3x4(v3, f, v3, f, v3, f); - - color += sum3 * m43 + sum4; - - color += vec4(m43); - color += vec4(vec3(mat2(f)), 7.2); -} diff --git a/deps/glslang/Test/spv.matrix2.frag b/deps/glslang/Test/spv.matrix2.frag deleted file mode 100644 index 7fb6dd86..00000000 --- a/deps/glslang/Test/spv.matrix2.frag +++ /dev/null @@ -1,50 +0,0 @@ -#version 150 - -in mat3 colorTransform; -in vec3 Color; -in mat4 m, n; - -in mat4x3 um43; -in mat3x4 un34; -in mat2 um2; -in mat3 um3; -in mat4 um4; - -in vec4 v; - -in vec3 u; - -out vec4 FragColor; - -void main() -{ - mat3x4 m34 = outerProduct(v, u); - - m34 += mat3x4(4.3); - - FragColor = vec4(Color, 1.0); - FragColor *= vec4(FragColor * m34, 1.0); - - m34 *= v.x; - - mat4 m44 = mat4(un34); - - m44 += m34 * um43; - - FragColor += (-m44) * v; - - FragColor *= matrixCompMult(m44, m44); - - m34 = transpose(um43); - FragColor *= vec4(FragColor * m34, 1.0); - FragColor *= vec4(determinant(um4)); - mat2 inv = inverse(um2); - FragColor *= vec4(inv[0][0], inv[1][0], inv[0][1], inv[1][1]); - mat3 inv3 = inverse(um3); - FragColor *= vec4(inv3[2][1]); - - mat4 inv4 = inverse(um4); - FragColor *= inv4; - - FragColor = vec4(FragColor * matrixCompMult(un34, un34), FragColor.w); -} diff --git a/deps/glslang/Test/spv.memoryQualifier.frag b/deps/glslang/Test/spv.memoryQualifier.frag deleted file mode 100644 index 85e71478..00000000 --- a/deps/glslang/Test/spv.memoryQualifier.frag +++ /dev/null @@ -1,38 +0,0 @@ -#version 450 - -layout(binding = 0, r32f) uniform coherent image1D i1D; -layout(binding = 1, r32f) uniform volatile image2D i2D; -layout(binding = 2, r32f) uniform restrict image2DRect i2DRect; -layout(binding = 3, r32f) uniform readonly image3D i3D; -layout(binding = 3, r32f) uniform writeonly imageCube iCube; - -struct Data -{ - float f1; - vec2 f2; -}; - -coherent buffer Buffer -{ - volatile float f1; - restrict vec2 f2; - readonly vec3 f3; - writeonly vec4 f4; - int i1; - Data data; -}; - -void main() -{ - vec4 texel = imageLoad(i1D, 1); - texel += imageLoad(i2D, ivec2(1)); - texel += imageLoad(i2DRect, ivec2(1)); - texel += imageLoad(i3D, ivec3(1)); - imageStore(iCube, ivec3(1), texel); - - texel[i1] = f1; - texel.xy += f2; - texel.xyz -= f3; - texel.w += data.f1 + data.f2[1]; - f4 = texel; -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.memoryScopeSemantics.comp b/deps/glslang/Test/spv.memoryScopeSemantics.comp deleted file mode 100644 index 528a6396..00000000 --- a/deps/glslang/Test/spv.memoryScopeSemantics.comp +++ /dev/null @@ -1,74 +0,0 @@ -#version 450 -#extension GL_KHR_memory_scope_semantics : require -#extension GL_ARB_gpu_shader_int64 : require - -#pragma use_vulkan_memory_model - -shared uint value; -shared int atomi; -shared uint atomu; -layout(binding = 0, r32ui) workgroupcoherent uniform uimage2D imageu; -layout(binding = 1, r32i) volatile coherent uniform iimage2D imagei; -layout(binding = 5, r32i) nonprivate uniform iimage2D imagej[2]; -layout (binding = 2) buffer BufferU { workgroupcoherent uint x; } bufferu; -layout (binding = 3) coherent buffer BufferI { uint x; } bufferi; -struct A { uint x[2]; }; -layout (binding = 4) volatile buffer BufferJ { subgroupcoherent A a; } bufferj[2]; -layout (binding = 6) nonprivate uniform sampler2D samp[2]; -layout (binding = 7) nonprivate uniform BufferK { uint x; } bufferk; -shared uint64_t atomu64; -shared int64_t atomi64; -layout (binding = 8) volatile buffer BufferL { uint x; } bufferl; -layout (binding = 9) buffer BufferM { volatile uint x; } bufferm; -layout(binding = 10, r32i) volatile coherent uniform iimage2DMS imageMS; - - -void main() -{ - int origi = atomicAdd(atomi, 3, gl_ScopeDevice, gl_StorageSemanticsBuffer | gl_StorageSemanticsShared, gl_SemanticsRelease); - uint origu = atomicAnd(atomu, value); - origi = atomicLoad(atomi, gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsAcquire); - atomicStore(atomu, value, gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsRelease); - origi = imageAtomicLoad(imagei, ivec2(0,0), gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsAcquire); - origu = imageAtomicAdd(imageu, ivec2(0,0), 3u, gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsAcquire); - imageAtomicStore(imageu, ivec2(0,0), 4u, gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsRelease); - origu = atomicOr(atomu, 7u, gl_ScopeDevice, 0, 0); - origu = atomicXor(atomu, 7u, gl_ScopeDevice, 0, 0); - origu = atomicMin(atomu, value, gl_ScopeDevice, 0, 0); - origi = atomicMax(atomi, 7, gl_ScopeDevice, 0, 0); - origi = atomicExchange(atomi, origi, gl_ScopeDevice, 0, 0); - origu = atomicCompSwap(atomu, 10u, value, gl_ScopeDevice, gl_StorageSemanticsBuffer | gl_StorageSemanticsShared, gl_SemanticsAcquire, gl_StorageSemanticsBuffer | gl_StorageSemanticsShared, gl_SemanticsAcquire); - atomicAdd(bufferu.x, 1, gl_ScopeDevice, gl_StorageSemanticsBuffer | gl_StorageSemanticsShared, gl_SemanticsRelease); - memoryBarrier(gl_ScopeWorkgroup, gl_StorageSemanticsBuffer | gl_StorageSemanticsShared, gl_SemanticsRelease); - controlBarrier(gl_ScopeWorkgroup, gl_ScopeWorkgroup, gl_StorageSemanticsBuffer | gl_StorageSemanticsShared, gl_SemanticsAcquire); - controlBarrier(gl_ScopeWorkgroup, gl_ScopeWorkgroup, 0, 0); - - uint y; - y = bufferu.x; - bufferu.x = y; - y = bufferi.x; - y = bufferj[0].a.x[1]; - bufferi.x = y; - bufferj[0].a.x[1] = y; - bufferj[0].a = bufferj[1].a; - bufferi.x = bufferk.x; - - imageLoad(imagei, ivec2(0,0)); - imageLoad(imagej[0], ivec2(0,0)); - imageStore(imagej[1], ivec2(0,0), ivec4(0,0,0,0)); - texture(samp[0], vec2(0,0)); - - atomu64 = atomicMax(atomu64, uint64_t(7), gl_ScopeDevice, 0, 0); - atomicCompSwap(atomi64, int64_t(10), int64_t(atomu64), gl_ScopeDevice, gl_StorageSemanticsBuffer | gl_StorageSemanticsShared, gl_SemanticsAcquire, gl_StorageSemanticsBuffer | gl_StorageSemanticsShared, gl_SemanticsAcquire); - - y = bufferl.x; - atomicAdd(bufferl.x, 1); - atomicOr(bufferm.x, 2); - imageAtomicAdd(imagei, ivec2(0,0), 3); - atomicAdd(bufferu.x, 4u, gl_ScopeDevice, 0, 0); - atomicAdd(bufferu.x, 5u, gl_ScopeDevice, 0, gl_SemanticsVolatile); - - imageAtomicStore(imageMS, ivec2(0,0), 1, 4, gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsRelease); - imageAtomicStore(imagei, ivec2(0,0), -7, gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsRelease); -} - diff --git a/deps/glslang/Test/spv.memoryScopeSemantics_Error.comp b/deps/glslang/Test/spv.memoryScopeSemantics_Error.comp deleted file mode 100644 index 1b856717..00000000 --- a/deps/glslang/Test/spv.memoryScopeSemantics_Error.comp +++ /dev/null @@ -1,30 +0,0 @@ -#version 450 -#extension GL_KHR_memory_scope_semantics : require - - -shared uint value; -shared int atomi; -shared uint atomu; -layout(binding = 0, r32ui) workgroupcoherent uniform uimage2D imageu; -layout(binding = 1, r32i) coherent uniform iimage2D imagei; -layout (binding = 2) buffer BufferU { workgroupcoherent uint x; } bufferu; -layout (binding = 3) subgroupcoherent buffer BufferI { uint x; } bufferi; - -void main() -{ - atomicStore(atomu, value, gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsAcquire); - int origi = imageAtomicLoad(imagei, ivec2(0,0), gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsRelease); - atomicStore(atomu, value, gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsAcquireRelease); - atomicStore(atomu, value, gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_StorageSemanticsBuffer); - origi = imageAtomicLoad(imagei, ivec2(0,0), gl_ScopeDevice, gl_SemanticsAcquire, gl_SemanticsAcquire); - memoryBarrier(gl_ScopeWorkgroup, gl_StorageSemanticsBuffer | gl_StorageSemanticsShared, 0); - memoryBarrier(gl_ScopeWorkgroup, 0, gl_SemanticsRelease); - memoryBarrier(gl_ScopeWorkgroup, gl_StorageSemanticsBuffer | gl_StorageSemanticsShared, gl_SemanticsRelease | gl_SemanticsAcquire); - atomicAdd(atomu, value, gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsRelease | gl_SemanticsAcquire); - uint origu = atomicCompSwap(atomu, 10u, value, gl_ScopeDevice, gl_StorageSemanticsBuffer | gl_StorageSemanticsShared, gl_SemanticsAcquire, gl_StorageSemanticsBuffer | gl_StorageSemanticsShared, gl_SemanticsAcquireRelease); - memoryBarrier(gl_ScopeWorkgroup, gl_StorageSemanticsBuffer, gl_SemanticsRelease | gl_SemanticsMakeVisible); - memoryBarrier(gl_ScopeWorkgroup, gl_StorageSemanticsBuffer, gl_SemanticsAcquire | gl_SemanticsMakeAvailable); - memoryBarrier(gl_ScopeWorkgroup, gl_StorageSemanticsBuffer, gl_SemanticsRelease | gl_SemanticsVolatile); - atomicCompSwap(bufferi.x, 10u, 10u, gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsAcquire | gl_SemanticsVolatile, gl_StorageSemanticsBuffer, gl_SemanticsAcquire); -} - diff --git a/deps/glslang/Test/spv.merge-unreachable.frag b/deps/glslang/Test/spv.merge-unreachable.frag deleted file mode 100644 index a650cd1c..00000000 --- a/deps/glslang/Test/spv.merge-unreachable.frag +++ /dev/null @@ -1,8 +0,0 @@ -#version 450 -precision mediump int; precision highp float; -layout(location=1) in highp vec4 v; -void main (void) -{ - if (v == vec4(0.1,0.2,0.3,0.4)) discard; - else return; -} diff --git a/deps/glslang/Test/spv.meshShaderBuiltins.mesh b/deps/glslang/Test/spv.meshShaderBuiltins.mesh deleted file mode 100644 index 0240a173..00000000 --- a/deps/glslang/Test/spv.meshShaderBuiltins.mesh +++ /dev/null @@ -1,64 +0,0 @@ -#version 460 - -#define MAX_VER 81 -#define MAX_PRIM 32 - -#define BARRIER() \ - memoryBarrierShared(); \ - barrier(); - -#extension GL_NV_mesh_shader : enable - -layout(local_size_x = 32) in; - -layout(max_vertices=MAX_VER) out; -layout(max_primitives=MAX_PRIM) out; -layout(triangles) out; - -// test use of builtins in mesh shaders: - -void main() -{ - uint iid = gl_LocalInvocationID.x; - uint gid = gl_WorkGroupID.x; - - gl_MeshVerticesNV[iid].gl_Position = vec4(1.0); - gl_MeshVerticesNV[iid].gl_PointSize = 2.0; - gl_MeshVerticesNV[iid].gl_ClipDistance[3] = 3.0; - gl_MeshVerticesNV[iid].gl_CullDistance[2] = 4.0; - - BARRIER(); - - gl_MeshVerticesNV[iid+1].gl_Position = gl_MeshVerticesNV[iid].gl_Position; - gl_MeshVerticesNV[iid+1].gl_PointSize = gl_MeshVerticesNV[iid].gl_PointSize; - gl_MeshVerticesNV[iid+1].gl_ClipDistance[3] = gl_MeshVerticesNV[iid].gl_ClipDistance[3]; - gl_MeshVerticesNV[iid+1].gl_CullDistance[2] = gl_MeshVerticesNV[iid].gl_CullDistance[2]; - - BARRIER(); - - gl_MeshPrimitivesNV[iid].gl_PrimitiveID = 6; - gl_MeshPrimitivesNV[iid].gl_Layer = 7; - gl_MeshPrimitivesNV[iid].gl_ViewportIndex = 8; - gl_MeshPrimitivesNV[iid].gl_ViewportMask[0] = 9; - - BARRIER(); - - gl_MeshPrimitivesNV[iid+1].gl_PrimitiveID = gl_MeshPrimitivesNV[iid].gl_PrimitiveID; - gl_MeshPrimitivesNV[iid+1].gl_Layer = gl_MeshPrimitivesNV[iid].gl_Layer; - gl_MeshPrimitivesNV[iid+1].gl_ViewportIndex = gl_MeshPrimitivesNV[iid].gl_ViewportIndex; - gl_MeshPrimitivesNV[iid+1].gl_ViewportMask[0] = gl_MeshPrimitivesNV[iid].gl_ViewportMask[0]; - - BARRIER(); - - // check bound limits - gl_PrimitiveIndicesNV[0] = 257; // should truncate 257 -> 1 - gl_PrimitiveIndicesNV[(MAX_PRIM * 3) - 1] = 2; - gl_PrimitiveIndicesNV[gid] = gl_PrimitiveIndicesNV[gid-1]; - - // writes 4 indices at offset gl_DrawID - writePackedPrimitiveIndices4x8NV(gl_DrawID, 0x01020304); - - gl_PrimitiveCountNV = MAX_PRIM * 3; - - BARRIER(); -} diff --git a/deps/glslang/Test/spv.meshShaderPerViewBuiltins.mesh b/deps/glslang/Test/spv.meshShaderPerViewBuiltins.mesh deleted file mode 100644 index 54fb7440..00000000 --- a/deps/glslang/Test/spv.meshShaderPerViewBuiltins.mesh +++ /dev/null @@ -1,42 +0,0 @@ -#version 450 - -#define MAX_VER 81 -#define MAX_PRIM 32 -#define MAX_VIEWS gl_MaxMeshViewCountNV - -#define BARRIER() \ - memoryBarrierShared(); \ - barrier(); - -#extension GL_NV_mesh_shader : enable - -layout(local_size_x = 32) in; - -layout(max_vertices=MAX_VER) out; -layout(max_primitives=MAX_PRIM) out; -layout(triangles) out; - -// test use of per-view builtin attributes - -void main() -{ - uint iid = gl_LocalInvocationID.x; - uint viewID = gl_MeshViewIndicesNV[gl_MeshViewCountNV%MAX_VIEWS]; - - gl_MeshVerticesNV[iid].gl_PositionPerViewNV[viewID] = vec4(1.0, 2.0, 3.0, 4.0); - gl_MeshVerticesNV[iid].gl_ClipDistancePerViewNV[viewID][2] = 5.0; - gl_MeshVerticesNV[iid].gl_CullDistancePerViewNV[viewID][3] = 6.0; - gl_MeshPrimitivesNV[iid].gl_LayerPerViewNV[viewID] = 7; - gl_MeshPrimitivesNV[iid].gl_ViewportMaskPerViewNV[viewID][0] = 8; - - BARRIER(); - - gl_MeshVerticesNV[iid+1].gl_PositionPerViewNV[viewID] = gl_MeshVerticesNV[iid].gl_PositionPerViewNV[viewID]; - gl_MeshVerticesNV[iid+1].gl_ClipDistancePerViewNV[viewID][2] = gl_MeshVerticesNV[iid].gl_ClipDistancePerViewNV[viewID][2]; - gl_MeshVerticesNV[iid+1].gl_CullDistancePerViewNV[viewID][3] = gl_MeshVerticesNV[iid].gl_CullDistancePerViewNV[viewID][3]; - gl_MeshPrimitivesNV[iid+1].gl_LayerPerViewNV[viewID] = gl_MeshPrimitivesNV[iid].gl_LayerPerViewNV[viewID]; - gl_MeshPrimitivesNV[iid+1].gl_ViewportMaskPerViewNV[viewID][0] = gl_MeshPrimitivesNV[iid].gl_ViewportMaskPerViewNV[viewID][0]; - - BARRIER(); -} - diff --git a/deps/glslang/Test/spv.meshShaderPerViewUserDefined.mesh b/deps/glslang/Test/spv.meshShaderPerViewUserDefined.mesh deleted file mode 100644 index 262504dd..00000000 --- a/deps/glslang/Test/spv.meshShaderPerViewUserDefined.mesh +++ /dev/null @@ -1,68 +0,0 @@ -#version 450 - -#define MAX_VER 81 -#define MAX_PRIM 32 -#define MAX_VIEWS gl_MaxMeshViewCountNV - -#define BARRIER() \ - memoryBarrierShared(); \ - barrier(); - -#extension GL_NV_mesh_shader : enable - -layout(local_size_x = 32) in; - -layout(max_vertices=MAX_VER) out; -layout(max_primitives=MAX_PRIM) out; -layout(triangles) out; - -// test use of user-defined per-view attributes - -// mix of single-view and per-view attributes -layout(location=0) out block { - perprimitiveNV perviewNV vec4 color1[][3]; // Implicitly sized - perprimitiveNV vec4 color2[3]; - perviewNV vec4 color3[MAX_VIEWS][3]; // Explicitly sized - vec4 color4; -} b[]; - -// per-view block attributes -perviewNV layout(location=10) out perviewBlock { - perprimitiveNV vec4 color5[]; // Implicitly sized - perprimitiveNV vec4 color6[MAX_VIEWS][3]; // Explicitly sized - vec4 color7[][3]; // Implicitly sized - vec4 color8[MAX_VIEWS]; // Explicitly sized -} b2[]; - -// per-view non-block attributes -perviewNV layout(location=18) out vec4 nonBlk1[MAX_VER][MAX_VIEWS]; // Explicit+Explicit -perviewNV perprimitiveNV layout(location=19) out vec4 nonBlk2[MAX_PRIM][]; // Explicit+Implicit -perviewNV layout(location=20) out vec4 nonBlk3[][MAX_VIEWS]; // Implicit+Explicit -perviewNV perprimitiveNV layout(location=21) out vec4 nonBlk4[][]; // Implicit+Implicit - -// per-view non-block array attributes -perviewNV layout(location=22) out vec4 nonBlkArr1[MAX_VER][MAX_VIEWS][2]; // Explicit+Explicit -perviewNV perprimitiveNV layout(location=24) out vec4 nonBlkArr2[MAX_PRIM][][2]; // Explicit+Implicit -perviewNV layout(location=26) out vec4 nonBlkArr3[][MAX_VIEWS][2]; // Implicit+Explicit -perviewNV perprimitiveNV layout(location=28) out vec4 nonBlkArr4[][][2]; // Implicit+Implicit - -void main() -{ - uint iid = gl_LocalInvocationID.x; - uint viewID = gl_MeshViewIndicesNV[gl_MeshViewCountNV%MAX_VIEWS]; - - b[iid].color1[viewID][2] = vec4(1.0); - b[iid].color2[1] = vec4(2.0); - b[iid].color3[viewID][2] = vec4(3.0); - b[iid].color4 = vec4(4.0); - - BARRIER(); - - b2[iid].color5[viewID] = vec4(5.0); - b2[iid].color6[viewID][1] = vec4(6.0); - b2[iid].color7[viewID][2] = vec4(7.0); - b2[iid].color8[viewID] = vec4(8.0); - - BARRIER(); -} - diff --git a/deps/glslang/Test/spv.meshShaderPerView_Errors.mesh b/deps/glslang/Test/spv.meshShaderPerView_Errors.mesh deleted file mode 100644 index 77190ef0..00000000 --- a/deps/glslang/Test/spv.meshShaderPerView_Errors.mesh +++ /dev/null @@ -1,32 +0,0 @@ -#version 450 - -#define MAX_VER 81 -#define MAX_PRIM 32 -#define MAX_VIEWS gl_MaxMeshViewCountNV - -#extension GL_NV_mesh_shader : enable - -layout(local_size_x = 32) in; - -layout(max_vertices=MAX_VER) out; -layout(max_primitives=MAX_PRIM) out; -layout(triangles) out; - -// test error checks for use of incorrect per-view attributes - -// per-view block attributes -perviewNV layout(location=0) out perviewBlock { - vec4 missingInnermostDimSize1[][]; - vec4 incorrectViewDimSize1[MAX_VIEWS+1]; - vec4 missingViewDim1; -} b2[]; - -// per-view non-block attributes -perviewNV layout(location=10) out vec4 missingInnermostDimSize2[][][]; -perviewNV layout(location=11) out vec4 incorrectViewDimSize2[][MAX_VIEWS-1]; -perviewNV layout(location=12) out vec4 missingViewDim2[]; - -void main() -{ -} - diff --git a/deps/glslang/Test/spv.meshShaderRedeclBuiltins.mesh b/deps/glslang/Test/spv.meshShaderRedeclBuiltins.mesh deleted file mode 100644 index 1b19a751..00000000 --- a/deps/glslang/Test/spv.meshShaderRedeclBuiltins.mesh +++ /dev/null @@ -1,73 +0,0 @@ -#version 460 - -#define MAX_VER 81 -#define MAX_PRIM 32 - -#define BARRIER() \ - memoryBarrierShared(); \ - barrier(); - -#extension GL_NV_mesh_shader : enable - -layout(local_size_x = 32) in; - -layout(max_vertices=MAX_VER) out; -layout(max_primitives=MAX_PRIM) out; -layout(triangles) out; - -// test use of redeclared single-view builtins in mesh shaders: - -out gl_MeshPerVertexNV { - vec4 gl_Position; - float gl_PointSize; - float gl_ClipDistance[4]; - float gl_CullDistance[4]; -} gl_MeshVerticesNV[MAX_VER]; // explicitly sized to MAX_VER - -perprimitiveNV out gl_MeshPerPrimitiveNV { - int gl_PrimitiveID; - int gl_Layer; - int gl_ViewportIndex; - int gl_ViewportMask[]; -} gl_MeshPrimitivesNV[]; // implicitly sized to MAX_PRIM - -out uint gl_PrimitiveIndicesNV[MAX_PRIM*3]; // explicitly sized to MAX_PRIM * 3 - -void main() -{ - uint iid = gl_LocalInvocationID.x; - uint gid = gl_WorkGroupID.x; - - gl_MeshVerticesNV[iid].gl_Position = vec4(1.0); - gl_MeshVerticesNV[iid].gl_PointSize = 2.0; - gl_MeshVerticesNV[iid].gl_ClipDistance[3] = 3.0; - gl_MeshVerticesNV[iid].gl_CullDistance[2] = 4.0; - - BARRIER(); - - gl_MeshVerticesNV[iid+1].gl_Position = gl_MeshVerticesNV[iid].gl_Position; - gl_MeshVerticesNV[iid+1].gl_PointSize = gl_MeshVerticesNV[iid].gl_PointSize; - gl_MeshVerticesNV[iid+1].gl_ClipDistance[3] = gl_MeshVerticesNV[iid].gl_ClipDistance[3]; - gl_MeshVerticesNV[iid+1].gl_CullDistance[2] = gl_MeshVerticesNV[iid].gl_CullDistance[2]; - - BARRIER(); - - gl_MeshPrimitivesNV[iid].gl_PrimitiveID = 6; - gl_MeshPrimitivesNV[iid].gl_Layer = 7; - gl_MeshPrimitivesNV[iid].gl_ViewportIndex = 8; - gl_MeshPrimitivesNV[iid].gl_ViewportMask[0] = 9; - - BARRIER(); - - gl_MeshPrimitivesNV[iid+1].gl_PrimitiveID = gl_MeshPrimitivesNV[iid].gl_PrimitiveID; - gl_MeshPrimitivesNV[iid+1].gl_Layer = gl_MeshPrimitivesNV[iid].gl_Layer; - gl_MeshPrimitivesNV[iid+1].gl_ViewportIndex = gl_MeshPrimitivesNV[iid].gl_ViewportIndex; - gl_MeshPrimitivesNV[iid+1].gl_ViewportMask[0] = gl_MeshPrimitivesNV[iid].gl_ViewportMask[0]; - - BARRIER(); - - // check bound limits - gl_PrimitiveIndicesNV[0] = 1; - gl_PrimitiveIndicesNV[(MAX_PRIM * 3) - 1] = 2; - gl_PrimitiveCountNV = MAX_PRIM * 3; -} diff --git a/deps/glslang/Test/spv.meshShaderRedeclPerViewBuiltins.mesh b/deps/glslang/Test/spv.meshShaderRedeclPerViewBuiltins.mesh deleted file mode 100644 index 3b75b558..00000000 --- a/deps/glslang/Test/spv.meshShaderRedeclPerViewBuiltins.mesh +++ /dev/null @@ -1,53 +0,0 @@ -#version 450 - -#define MAX_VER 81 -#define MAX_PRIM 32 -#define MAX_VIEWS gl_MaxMeshViewCountNV - -#define BARRIER() \ - memoryBarrierShared(); \ - barrier(); - -#extension GL_NV_mesh_shader : enable - -layout(local_size_x = 32) in; - -layout(max_vertices=MAX_VER) out; -layout(max_primitives=MAX_PRIM) out; -layout(triangles) out; - -// test use of redeclared per-view builtin attributes - -out gl_MeshPerVertexNV { - perviewNV vec4 gl_PositionPerViewNV[MAX_VIEWS]; // explicitly sized view dim - perviewNV float gl_ClipDistancePerViewNV[MAX_VIEWS][4]; // explicitly sized view dim - perviewNV float gl_CullDistancePerViewNV[MAX_VIEWS][4]; // explicitly sized view dim -} gl_MeshVerticesNV[]; - -perprimitiveNV out gl_MeshPerPrimitiveNV { - perviewNV int gl_LayerPerViewNV[]; // implicitly sized view dim - perviewNV int gl_ViewportMaskPerViewNV[][1]; // implicitly sized view dim -} gl_MeshPrimitivesNV[]; - -void main() -{ - uint iid = gl_LocalInvocationID.x; - uint viewID = gl_MeshViewIndicesNV[gl_MeshViewCountNV%MAX_VIEWS]; - - gl_MeshVerticesNV[iid].gl_PositionPerViewNV[viewID] = vec4(1.0, 2.0, 3.0, 4.0); - gl_MeshVerticesNV[iid].gl_ClipDistancePerViewNV[viewID][2] = 5.0; - gl_MeshVerticesNV[iid].gl_CullDistancePerViewNV[viewID][3] = 6.0; - gl_MeshPrimitivesNV[iid].gl_LayerPerViewNV[viewID] = 7; - gl_MeshPrimitivesNV[iid].gl_ViewportMaskPerViewNV[viewID][0] = 8; - - BARRIER(); - - gl_MeshVerticesNV[iid+1].gl_PositionPerViewNV[viewID] = gl_MeshVerticesNV[iid].gl_PositionPerViewNV[viewID]; - gl_MeshVerticesNV[iid+1].gl_ClipDistancePerViewNV[viewID][2] = gl_MeshVerticesNV[iid].gl_ClipDistancePerViewNV[viewID][2]; - gl_MeshVerticesNV[iid+1].gl_CullDistancePerViewNV[viewID][3] = gl_MeshVerticesNV[iid].gl_CullDistancePerViewNV[viewID][3]; - gl_MeshPrimitivesNV[iid+1].gl_LayerPerViewNV[viewID] = gl_MeshPrimitivesNV[iid].gl_LayerPerViewNV[viewID]; - gl_MeshPrimitivesNV[iid+1].gl_ViewportMaskPerViewNV[viewID][0] = gl_MeshPrimitivesNV[iid].gl_ViewportMaskPerViewNV[viewID][0]; - - BARRIER(); -} - diff --git a/deps/glslang/Test/spv.meshShaderSharedMem.mesh b/deps/glslang/Test/spv.meshShaderSharedMem.mesh deleted file mode 100644 index b9d2f6d7..00000000 --- a/deps/glslang/Test/spv.meshShaderSharedMem.mesh +++ /dev/null @@ -1,39 +0,0 @@ -#version 450 - -#define MAX_VER 81 -#define MAX_PRIM 32 - -#define BARRIER() \ - memoryBarrierShared(); \ - barrier(); - -#extension GL_NV_mesh_shader : enable - -layout(local_size_x = 32) in; - -layout(max_vertices=MAX_VER) out; -layout(max_primitives=MAX_PRIM) out; -layout(triangles) out; - -// test use of shared memory in mesh shaders: - -writeonly uniform image2D uni_image; -uniform block0 { - uint uni_value; -}; - -shared vec4 mem[10]; - -void main() -{ - uint iid = gl_LocalInvocationID.x; - uint gid = gl_WorkGroupID.x; - - for (uint i = 0; i < 10; ++i) { - mem[i] = vec4(i+uni_value); - } - imageStore(uni_image, ivec2(iid), mem[gid]); - imageStore(uni_image, ivec2(iid), mem[gid+1]); - - BARRIER(); -} diff --git a/deps/glslang/Test/spv.meshShaderTaskMem.mesh b/deps/glslang/Test/spv.meshShaderTaskMem.mesh deleted file mode 100644 index 5ce5bedd..00000000 --- a/deps/glslang/Test/spv.meshShaderTaskMem.mesh +++ /dev/null @@ -1,41 +0,0 @@ -#version 450 - -#define MAX_VER 81 -#define MAX_PRIM 32 - -#define BARRIER() \ - memoryBarrierShared(); \ - barrier(); - -#extension GL_NV_mesh_shader : enable - -layout(local_size_x = 32) in; - -layout(max_vertices=MAX_VER) out; -layout(max_primitives=MAX_PRIM) out; -layout(triangles) out; - -// test use of task memory in mesh shaders: - -taskNV in taskBlock { - float gid1[2]; - vec4 gid2; -} mytask; - -buffer bufferBlock { - float gid3[2]; - vec4 gid4; -} mybuf; - -layout(location=0) out outBlock { - float gid5; - vec4 gid6; -} myblk[]; - -void main() -{ - uint iid = gl_LocalInvocationID.x; - - myblk[iid].gid5 = mytask.gid1[1] + mybuf.gid3[1]; - myblk[iid].gid6 = mytask.gid2 + mybuf.gid4; -} diff --git a/deps/glslang/Test/spv.meshShaderUserDefined.mesh b/deps/glslang/Test/spv.meshShaderUserDefined.mesh deleted file mode 100644 index 8b0937db..00000000 --- a/deps/glslang/Test/spv.meshShaderUserDefined.mesh +++ /dev/null @@ -1,59 +0,0 @@ -#version 450 - -#define MAX_VER 81 -#define MAX_PRIM 32 - -#define BARRIER() \ - memoryBarrierShared(); \ - barrier(); - -#extension GL_NV_mesh_shader : enable - -layout(local_size_x = 32) in; - -layout(max_vertices=MAX_VER) out; -layout(max_primitives=MAX_PRIM) out; -layout(triangles) out; - -// test use of user defined interface out blocks: - -// per-primitive block -perprimitiveNV layout(location=0) out myblock { - float f; - float fArr[4]; - vec3 pos; - vec4 posArr[4]; - mat4 m; - mat3 mArr[2]; -} blk[]; - -// per-vertex block -layout(location=20) out myblock2 { - float f; - vec4 pos; - mat4 m; -} blk2[]; - -void main() -{ - uint iid = gl_LocalInvocationID.x; - uint gid = gl_WorkGroupID.x; - - blk[iid].f = 11.0; - blk[iid+1].fArr[gid] = blk[iid].f; - blk[iid/2].pos.yzx = vec3(14.0, 15.0, 13.0); - blk[iid*2].posArr[1].yzw = blk[iid/2].pos; - blk[iid/4].m[2].wzyx = vec4(13.0, 14.0, 15.0, 16.0); - blk[iid].mArr[0][1][1] = blk[iid/4].m[2].w; - blk[iid*4].mArr[1][gid] = vec3(17.0, 18.0, 19.0); - - BARRIER(); - - blk2[iid].f = blk2[iid-1].f + 20.0; - blk2[iid].pos = vec4(21.0, 22.0, 23.0, 24.0); - blk2[iid+1].m[gid] = blk2[iid].pos; - blk2[iid+1].m[gid][2] = 29.0; - blk2[iid+2].m[3] = blk2[iid+1].m[gid]; - - BARRIER(); -} diff --git a/deps/glslang/Test/spv.meshTaskShader.task b/deps/glslang/Test/spv.meshTaskShader.task deleted file mode 100644 index ff94e6db..00000000 --- a/deps/glslang/Test/spv.meshTaskShader.task +++ /dev/null @@ -1,54 +0,0 @@ -#version 450 - -#define MAX_VIEWS gl_MaxMeshViewCountNV - -#define BARRIER() \ - memoryBarrierShared(); \ - barrier(); - -#extension GL_NV_mesh_shader : enable - -layout(local_size_x = 32) in; - -// test use of shared memory in task shaders: -layout(binding=0) writeonly uniform image2D uni_image; -uniform block0 { - uint uni_value; -}; -shared vec4 mem[10]; - -// test use of task memory in task shaders: -taskNV out Task { - vec2 dummy; - vec2 submesh[3]; - uint viewID; -} mytask; - -void main() -{ - uint iid = gl_LocalInvocationID.x; - uint gid = gl_WorkGroupID.x; - uint viewID = gl_MeshViewIndicesNV[gl_MeshViewCountNV%MAX_VIEWS]; - - // 1. shared memory load and stores - for (uint i = 0; i < 10; ++i) { - mem[i] = vec4(i + uni_value); - } - imageStore(uni_image, ivec2(iid), mem[gid]); - imageStore(uni_image, ivec2(iid), mem[gid+1]); - - BARRIER(); - - // 2. task memory stores - - mytask.dummy = vec2(30.0, 31.0); - mytask.submesh[0] = vec2(32.0, 33.0); - mytask.submesh[1] = vec2(34.0, 35.0); - mytask.submesh[2] = mytask.submesh[gid%2]; - mytask.viewID = viewID; - - BARRIER(); - - // 3. set task count - gl_TaskCountNV = 3; -} diff --git a/deps/glslang/Test/spv.multiStruct.comp b/deps/glslang/Test/spv.multiStruct.comp deleted file mode 100644 index 7462da43..00000000 --- a/deps/glslang/Test/spv.multiStruct.comp +++ /dev/null @@ -1,48 +0,0 @@ -#version 450 core - -struct MyStruct -{ - vec2 foo[2]; - bool sb; -}; - -layout(binding = 0, std430) buffer SSBO0 -{ - MyStruct a; -} inBuf; - -layout(binding = 1, std430) buffer SSBO1 -{ - MyStruct b; -} outBuf; - -layout(binding = 2, std140) uniform UBO -{ - MyStruct c; -} uBuf; - -struct Nested { - float f; - MyStruct S[2]; -}; - -layout(binding = 2, std140) uniform UBON -{ - Nested N1; -} uBufN; - -layout(binding = 1, std430) buffer SSBO1N -{ - Nested N2; -} outBufN; - -void main() -{ - MyStruct t = inBuf.a; - outBuf.b = t; - t = uBuf.c; - outBuf.b = t; - - Nested n = uBufN.N1; - outBufN.N2 = n; -} diff --git a/deps/glslang/Test/spv.multiStructFuncall.frag b/deps/glslang/Test/spv.multiStructFuncall.frag deleted file mode 100644 index 7f9968dc..00000000 --- a/deps/glslang/Test/spv.multiStructFuncall.frag +++ /dev/null @@ -1,21 +0,0 @@ -#version 450 - -struct S { mat4 m; }; -buffer blockName { S s1; }; // need an S with decoration -S s2; // no decorations on S - -void fooConst(const in S s) { } -void foo(in S s) { } -void fooOut(inout S s) { } - -void main() -{ - fooConst(s1); - fooConst(s2); - - foo(s1); - foo(s2); - - fooOut(s1); - fooOut(s2); -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.multiView.frag b/deps/glslang/Test/spv.multiView.frag deleted file mode 100644 index 47c2763a..00000000 --- a/deps/glslang/Test/spv.multiView.frag +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 - -#extension GL_EXT_multiview : enable - -out vec4 color; - -void main() { - color = vec4(gl_ViewIndex, 0, 0, 0); -} diff --git a/deps/glslang/Test/spv.multiviewPerViewAttributes.tesc b/deps/glslang/Test/spv.multiviewPerViewAttributes.tesc deleted file mode 100644 index 117a1ad4..00000000 --- a/deps/glslang/Test/spv.multiviewPerViewAttributes.tesc +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 - -#extension GL_NVX_multiview_per_view_attributes :require - -layout(vertices = 4) out; -out gl_PerVertex { - int gl_ViewportMaskPerViewNV[]; - vec4 gl_PositionPerViewNV[]; - } gl_out[]; -void main() -{ - gl_out[gl_InvocationID].gl_ViewportMaskPerViewNV[0] = 1; - gl_out[gl_InvocationID].gl_PositionPerViewNV[0] = gl_in[1].gl_Position + gl_in[1].gl_PositionPerViewNV[0]; -} diff --git a/deps/glslang/Test/spv.multiviewPerViewAttributes.vert b/deps/glslang/Test/spv.multiviewPerViewAttributes.vert deleted file mode 100644 index dd64a16c..00000000 --- a/deps/glslang/Test/spv.multiviewPerViewAttributes.vert +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 - -#extension GL_NVX_multiview_per_view_attributes :require - -void main() -{ - gl_ViewportMaskPerViewNV[0] = 1; - gl_PositionPerViewNV[0] = gl_Position; -} - diff --git a/deps/glslang/Test/spv.newTexture.frag b/deps/glslang/Test/spv.newTexture.frag deleted file mode 100644 index 6f5f67c0..00000000 --- a/deps/glslang/Test/spv.newTexture.frag +++ /dev/null @@ -1,72 +0,0 @@ -#version 430 - -uniform sampler2D s2D; -uniform sampler2DRect sr; -uniform sampler3D s3D; -uniform samplerCube sCube; -uniform samplerCubeShadow sCubeShadow; -uniform samplerCubeArrayShadow sCubeArrayShadow; -uniform sampler2DShadow s2DShadow; -uniform sampler2DArray s2DArray; -uniform sampler2DArrayShadow s2DArrayShadow; - -uniform isampler2D is2D; -uniform isampler3D is3D; -uniform isamplerCube isCube; -uniform isampler2DArray is2DArray; -uniform isampler2DMS is2Dms; - -uniform usampler2D us2D; -uniform usampler3D us3D; -uniform usamplerCube usCube; -uniform usampler2DArray us2DArray; - -in float c1D; -in vec2 c2D; -in vec3 c3D; -in vec4 c4D; - -flat in int ic1D; -flat in ivec2 ic2D; -flat in ivec3 ic3D; -flat in ivec4 ic4D; - -out vec4 FragData; - -void main() -{ - vec4 v = texture(s2D, c2D); - v.y += texture(sCubeArrayShadow, c4D, c1D); - v += textureProj(s3D, c4D); - v += textureLod(s2DArray, c3D, 1.2); - v.y += textureOffset(s2DShadow, c3D, ivec2(3), c1D); - v += texelFetch(s3D, ic3D, ic1D); - v += texelFetchOffset(s2D, ic2D, 4, ivec2(3)); - v += texelFetchOffset(sr, ic2D, ivec2(4)); - v.y += textureLodOffset(s2DShadow, c3D, c1D, ivec2(3)); - v += textureProjLodOffset(s2D, c3D, c1D, ivec2(3)); - v += textureGrad(sCube, c3D, c3D, c3D); - v.x += textureGradOffset(s2DArrayShadow, c4D, c2D, c2D, ivec2(3)); - v += textureProjGrad(s3D, c4D, c3D, c3D); - v += textureProjGradOffset(s2D, c3D, c2D, c2D, ivec2(3)); - - ivec4 iv = texture(is2D, c2D); - v += vec4(iv); - iv = textureProjOffset(is2D, c4D, ivec2(3)); - v += vec4(iv); - iv = textureProjLod(is2D, c3D, c1D); - v += vec4(iv); - iv = textureProjGrad(is2D, c3D, c2D, c2D); - v += vec4(iv); - iv = texture(is3D, c3D, 4.2); - v += vec4(iv); - iv = textureLod(isCube, c3D, c1D); - v += vec4(iv); - iv = texelFetch(is2DArray, ic3D, ic1D); - v += vec4(iv); - - ivec2 iv2 = textureSize(sCubeShadow, 2); - // iv2 += textureSize(is2Dms); - - FragData = v + vec4(iv2, 0.0, 0.0); -} diff --git a/deps/glslang/Test/spv.noBuiltInLoc.vert b/deps/glslang/Test/spv.noBuiltInLoc.vert deleted file mode 100644 index 4087ab36..00000000 --- a/deps/glslang/Test/spv.noBuiltInLoc.vert +++ /dev/null @@ -1,19 +0,0 @@ -#version 450 core - -layout(location = 0) -in vec4 foo; - -layout(location = 0) -out vec4 bar; - -uniform vec4 uv1; -uniform float uv2; -uniform vec3 uv3; - -layout(binding = 0) uniform atomic_uint a_uint; - -void main() -{ - bar = foo; - gl_Position = foo; -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.noDeadDecorations.vert b/deps/glslang/Test/spv.noDeadDecorations.vert deleted file mode 100644 index 88984970..00000000 --- a/deps/glslang/Test/spv.noDeadDecorations.vert +++ /dev/null @@ -1,13 +0,0 @@ -#version 310 es -precision mediump float; - -float func(float a) -{ - return -a; - a = a * -1.0; -} - -void main() -{ - gl_Position.x = func(0.0); -} diff --git a/deps/glslang/Test/spv.noLocation.vert b/deps/glslang/Test/spv.noLocation.vert deleted file mode 100644 index 43998525..00000000 --- a/deps/glslang/Test/spv.noLocation.vert +++ /dev/null @@ -1,39 +0,0 @@ -#version 450 - -layout(location = 1) in vec4 in1; -in vec4 in2; // ERROR -layout(location = 3) in vec4 in3; - -layout(location = 1) out vec4 out1; -out vec4 out2; // ERROR -layout(location = 3) out vec4 out3; - -layout(location = 10) out inb1 { - vec4 a; - vec4 b; -} inbi1; -out inb2 { - layout(location = 12) vec4 a; - layout(location = 13) vec4 b; -} inbi2; -out inb3 { // ERROR - vec4 a; - vec4 b; -} inbi3; - -layout(location = 14) out struct S1 { vec4 a; } s1; -out struct S2 { vec4 a; } s2; // ERROR - -struct SS { int a; }; -out layout(location = 15) SS ss1; -out SS ss2; // ERROR - -out gl_PerVertex { - vec4 gl_Position; - float gl_ClipDistance[2]; -}; - -void main() -{ - gl_ClipDistance[0] = 1.0; -} diff --git a/deps/glslang/Test/spv.noWorkgroup.comp b/deps/glslang/Test/spv.noWorkgroup.comp deleted file mode 100644 index 37df3887..00000000 --- a/deps/glslang/Test/spv.noWorkgroup.comp +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 - -layout(local_size_x_id = 18, local_size_y_id=10,local_size_z_id = 19) in; - -shared uint keys[gl_WorkGroupSize.z][gl_WorkGroupSize.x * gl_WorkGroupSize.y]; - -void main() -{ -} diff --git a/deps/glslang/Test/spv.nonSquare.vert b/deps/glslang/Test/spv.nonSquare.vert deleted file mode 100644 index 9f7125bd..00000000 --- a/deps/glslang/Test/spv.nonSquare.vert +++ /dev/null @@ -1,25 +0,0 @@ -#version 140 - -in vec3 v3; -in vec4 v4; - -out mat3x2 m32; - -const vec2 cv2 = vec2(10.0, 20.0); -const mat2x4 m24 = mat2x4(3.0); -const mat4x2 m42 = mat4x2(1.0, 2.0, - 3.0, 4.0, - 5.0, 6.0, - 7.0, 8.0); - -void main() -{ - mat2x3 m23; - vec2 a, b; - - a = v3 * m23; - b = m32 * v3; - - gl_Position = vec4(m23 * m32 * v3, m24[1][3]) + - (m24 * m42) * v4 + cv2 * m42 + m24 * cv2 + vec4(cv2[1], cv2.x, m42[2][1], m42[2][0]); -} diff --git a/deps/glslang/Test/spv.nonuniform.frag b/deps/glslang/Test/spv.nonuniform.frag deleted file mode 100644 index cf7ebedc..00000000 --- a/deps/glslang/Test/spv.nonuniform.frag +++ /dev/null @@ -1,72 +0,0 @@ -#version 450 - -#extension GL_EXT_nonuniform_qualifier : enable - -layout(location=0) nonuniformEXT in vec4 nu_inv4; -nonuniformEXT float nu_gf; -layout(location=1) in nonuniformEXT flat int nu_ii; -layout(location = 2) in vec2 inTexcoord; - -layout(binding=0, input_attachment_index = 0) uniform subpassInput inputAttachmentDyn[]; -layout(binding=1) uniform samplerBuffer uniformTexelBufferDyn[]; -layout(binding=2, r32f) uniform imageBuffer storageTexelBufferDyn[]; -layout(binding=3) uniform uname { float a; } uniformBuffer[]; -layout(binding=4) buffer bname { float b; } storageBuffer[]; -layout(binding=5) uniform sampler2D sampledImage[]; -layout(binding=6, r32f) uniform image2D storageImage[]; -layout(binding=7, input_attachment_index = 1) uniform subpassInput inputAttachment[]; -layout(binding=8) uniform samplerBuffer uniformTexelBuffer[]; -layout(binding=9, r32f) uniform imageBuffer storageTexelBuffer[]; -layout(binding = 10) uniform texture2D uniformTexArr[8]; -layout(binding = 11) uniform sampler uniformSampler; - -nonuniformEXT int foo(nonuniformEXT int nupi, nonuniformEXT out int f) -{ - return nupi; -} - -void main() -{ - nonuniformEXT int nu_li; - nonuniformEXT int nu_li2; - int dyn_i; - - int a = foo(nu_li, nu_li); - nu_li = nonuniformEXT(a) + nonuniformEXT(a * 2); - nu_li2 = a + nonuniformEXT(a * 2); - - float b; - b = nu_inv4.x * nu_gf; - b += subpassLoad(inputAttachmentDyn[dyn_i]).x; - b += texelFetch(uniformTexelBufferDyn[dyn_i], 1).x; - b += imageLoad(storageTexelBufferDyn[dyn_i], 1).x; - b += uniformBuffer[nu_ii].a; - b += storageBuffer[nu_ii].b; - b += texture(sampledImage[nu_ii], vec2(0.5)).x; - b += imageLoad(storageImage[nu_ii], ivec2(1)).x; - b += subpassLoad(inputAttachment[nu_ii]).x; - b += texelFetch(uniformTexelBuffer[nu_ii], 1).x; - b += imageLoad(storageTexelBuffer[nu_ii], 1).x; - b += texture(sampler2D(uniformTexArr[nu_ii], uniformSampler), inTexcoord.xy).x; - b += texture(nonuniformEXT(sampler2D(uniformTexArr[nu_ii], uniformSampler)), inTexcoord.xy).x; - - nonuniformEXT ivec4 v; - nonuniformEXT mat4 m; - nonuniformEXT struct S { int a; } s; - nonuniformEXT int arr[10]; - ivec4 uv; - mat4 um; - struct US { int a[10]; } us; - int uarr[10]; - b += uniformBuffer[v.y].a; - b += uniformBuffer[v[2]].a; - b += uniformBuffer[uv[nu_ii]].a; - b += uniformBuffer[int(m[2].z)].a; - b += uniformBuffer[s.a].a; - b += uniformBuffer[arr[2]].a; - b += uniformBuffer[int(um[nu_ii].z)].a; - b += uniformBuffer[us.a[nu_ii]].a; - b += uniformBuffer[uarr[nu_ii]].a; - - storageBuffer[nu_ii].b = b; -} diff --git a/deps/glslang/Test/spv.nonuniform2.frag b/deps/glslang/Test/spv.nonuniform2.frag deleted file mode 100644 index 9bb7eaa3..00000000 --- a/deps/glslang/Test/spv.nonuniform2.frag +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 -#extension GL_EXT_nonuniform_qualifier : require -layout(set=0,binding=4,rgba32f) uniform imageBuffer data[]; -layout(location = 0) out vec4 FragColor; -layout(location = 3) in flat int rIndex; -void main() -{ - FragColor = imageLoad(data[nonuniformEXT(rIndex)], 0); -} diff --git a/deps/glslang/Test/spv.nonuniform3.frag b/deps/glslang/Test/spv.nonuniform3.frag deleted file mode 100644 index e79865e3..00000000 --- a/deps/glslang/Test/spv.nonuniform3.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 -#extension GL_EXT_nonuniform_qualifier : require -layout(set = 0, binding = 0) uniform texture2D uTex[]; -layout(set = 1, binding = 0) uniform sampler uSamp; -layout(location = 0) flat in int Index; -layout(location = 0) out vec4 FragColor; -void main() -{ - FragColor = texture(nonuniformEXT(sampler2D(uTex[Index], uSamp)), vec2(0.5)); -} diff --git a/deps/glslang/Test/spv.nonuniform4.frag b/deps/glslang/Test/spv.nonuniform4.frag deleted file mode 100644 index 2eb98aa1..00000000 --- a/deps/glslang/Test/spv.nonuniform4.frag +++ /dev/null @@ -1,8 +0,0 @@ -#version 450 -#extension GL_EXT_nonuniform_qualifier : require -layout(set=0,binding=4,r32ui) uniform uimageBuffer data[]; -layout(location = 3) in flat int rIndex; -void main() -{ - imageAtomicAdd(data[nonuniformEXT(rIndex)], 0, 0); -} diff --git a/deps/glslang/Test/spv.nonuniform5.frag b/deps/glslang/Test/spv.nonuniform5.frag deleted file mode 100644 index ef707795..00000000 --- a/deps/glslang/Test/spv.nonuniform5.frag +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 -#extension GL_EXT_nonuniform_qualifier : require - -layout(location = 0) flat in int Index; -layout(location = 0) out vec4 FragColor; - -layout(set = 0, binding = 0) uniform UBO -{ - vec4 v; -} ubos[]; - -void main() -{ - FragColor = ubos[nonuniformEXT(Index)].v; -} diff --git a/deps/glslang/Test/spv.nullInit.comp b/deps/glslang/Test/spv.nullInit.comp deleted file mode 100644 index 256fd54a..00000000 --- a/deps/glslang/Test/spv.nullInit.comp +++ /dev/null @@ -1,32 +0,0 @@ -#version 460 - -#extension GL_EXT_null_initializer : enable - -#ifdef GL_EXT_null_initializer - -struct S { - vec3[4] v; - int a; -}; - -struct T { - int b; - S s; -}; - -shared float f = { }; -shared T t1 = { }; -shared T t2 = { }; -shared S s = { }; -shared float g = { }; -shared int i = { }; - -void main() -{ - S local = { }; - ++local.a; -} - -S global = { }; - -#endif diff --git a/deps/glslang/Test/spv.offsets.frag b/deps/glslang/Test/spv.offsets.frag deleted file mode 100644 index 0a1c008c..00000000 --- a/deps/glslang/Test/spv.offsets.frag +++ /dev/null @@ -1,17 +0,0 @@ -#version 450 - -layout(set = 0, binding = 0, std140) uniform n1 { - layout(offset = 8) int a; - layout(offset = 4) int b; - layout(offset = 0) int c; - layout(offset = 12) int d; -} i1; - -layout(set = 0, binding = 1, std430) buffer n2 { - layout(offset = 32) vec3 e; - vec3 f; - layout(offset = 16) vec3 g; - layout(offset = 0) vec3 h; -} i2; - -void main() {} \ No newline at end of file diff --git a/deps/glslang/Test/spv.paramMemory.420.frag b/deps/glslang/Test/spv.paramMemory.420.frag deleted file mode 100644 index 15f175a2..00000000 --- a/deps/glslang/Test/spv.paramMemory.420.frag +++ /dev/null @@ -1,33 +0,0 @@ -#version 420 - -// Need this extension to permit passing a formatless readonly image to a helper function. -#extension GL_EXT_shader_image_load_formatted : require - -readonly coherent uniform layout(set = 0, binding = 0) image2D image1; -readonly uniform layout(set = 0, binding = 2) image2D image2; -writeonly coherent uniform layout(set = 0, binding = 1, rgba32f) image2D image3; -writeonly uniform layout(set = 0, binding = 3, rgba16f) image2D image4; - -flat in layout(location = 0) ivec2 in_coords; -out layout(location = 0) vec4 out_color; - -vec4 image_load(readonly coherent image2D image, ivec2 coords) -{ - return imageLoad(image, in_coords); -} - -void image_store(writeonly coherent image2D image, ivec2 coords, vec4 data) -{ - imageStore(image, in_coords, data); -} - -void main() -{ - vec4 read1 = image_load(image1, in_coords); - vec4 read2 = image_load(image2, in_coords); - - image_store(image3, in_coords, read1*0.5); - image_store(image4, in_coords, read2*2.0); - - out_color = vec4(0.0); -} diff --git a/deps/glslang/Test/spv.paramMemory.frag b/deps/glslang/Test/spv.paramMemory.frag deleted file mode 100644 index 1d080814..00000000 --- a/deps/glslang/Test/spv.paramMemory.frag +++ /dev/null @@ -1,30 +0,0 @@ -#version 310 es - -// readonly coherent uniform layout(set = 0, binding = 0) highp image2D image1; -// readonly uniform layout(set = 0, binding = 2) highp image2D image2; -writeonly coherent uniform layout(set = 0, binding = 1, rgba32f) highp image2D image3; -writeonly uniform layout(set = 0, binding = 3, rgba16f) highp image2D image4; - -flat in layout(location = 0) highp ivec2 in_coords; -out layout(location = 0) highp vec4 out_color; - -highp vec4 image_load(readonly coherent highp image2D image, highp ivec2 coords) -{ - return imageLoad(image, in_coords); -} - -void image_store(writeonly coherent highp image2D image, highp ivec2 coords, highp vec4 data) -{ - imageStore(image, in_coords, data); -} - -void main() -{ - highp vec4 read1 = vec4(0.4); // = image_load(image1, in_coords); - highp vec4 read2 = vec4(0.5); // = image_load(image2, in_coords); - - image_store(image3, in_coords, read1*0.5); - image_store(image4, in_coords, read2*2.0); - - out_color = vec4(0.0); -} diff --git a/deps/glslang/Test/spv.perprimitiveNV.frag b/deps/glslang/Test/spv.perprimitiveNV.frag deleted file mode 100644 index 56e00f54..00000000 --- a/deps/glslang/Test/spv.perprimitiveNV.frag +++ /dev/null @@ -1,21 +0,0 @@ -#version 460 - -#extension GL_NV_mesh_shader: require - -layout(location=0) -in B { - perprimitiveNV float f; -}; - -layout(location=4) -in C { - flat centroid float h; -}; - -layout(location=8) -out float g; - -void main() -{ - g = f + h; -} diff --git a/deps/glslang/Test/spv.pp.line.frag b/deps/glslang/Test/spv.pp.line.frag deleted file mode 100644 index 464463c3..00000000 --- a/deps/glslang/Test/spv.pp.line.frag +++ /dev/null @@ -1,25 +0,0 @@ -#version 140 - -uniform sampler1D texSampler1D; -uniform sampler2D texSampler2D; - -varying float blend; -varying vec4 u; - -in vec2 coords2D; - -void main() -{ - float blendscale = 1.789; - float bias = 2.0; - float coords1D = 1.789; - vec4 color = vec4(0.0, 0.0, 0.0, 0.0); -#line 53 - color += texture (texSampler1D, coords1D); - color += texture (texSampler1D, coords1D, bias); -#line 102 - color += texture (texSampler2D, coords2D); - color += texture (texSampler2D, coords2D, bias); - - gl_FragColor = mix(color, u, blend * blendscale); -} diff --git a/deps/glslang/Test/spv.precise.tesc b/deps/glslang/Test/spv.precise.tesc deleted file mode 100644 index 35de26b8..00000000 --- a/deps/glslang/Test/spv.precise.tesc +++ /dev/null @@ -1,24 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require -#extension GL_EXT_gpu_shader5 : require - -layout(vertices = 3) out; - -layout(location = 0) in highp vec2 in_tc_position[]; -layout(location = 1) in highp float in_tc_tessParam[]; - -layout(location = 0) out highp vec2 in_te_position[]; - -precise gl_TessLevelOuter; - -void main (void) -{ - in_te_position[gl_InvocationID] = in_tc_position[gl_InvocationID]; - - gl_TessLevelInner[0] = 5.0; - gl_TessLevelInner[1] = 5.0; - - gl_TessLevelOuter[0] = 1.0 + 59.0 * 0.5 * (in_tc_tessParam[1] + in_tc_tessParam[2]); - gl_TessLevelOuter[1] = 1.0 + 59.0 * 0.5 * (in_tc_tessParam[2] + in_tc_tessParam[0]); - gl_TessLevelOuter[2] = 1.0 + 59.0 * 0.5 * (in_tc_tessParam[0] + in_tc_tessParam[1]); -} diff --git a/deps/glslang/Test/spv.precise.tese b/deps/glslang/Test/spv.precise.tese deleted file mode 100644 index 874ea840..00000000 --- a/deps/glslang/Test/spv.precise.tese +++ /dev/null @@ -1,36 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require -#extension GL_EXT_gpu_shader5 : require - -layout(triangles, equal_spacing) in; - -layout(location = 0) in highp vec2 in_te_position[]; - -layout(location = 0) out mediump vec4 in_f_color; - -precise gl_Position; - -void main(void) { - highp vec2 pos = gl_TessCoord.x * in_te_position[0] + - gl_TessCoord.y * in_te_position[1] + - gl_TessCoord.z * in_te_position[2]; - - highp float f = - sqrt(3.0 * min(gl_TessCoord.x, min(gl_TessCoord.y, gl_TessCoord.z))) * - 0.5 + - 0.5; - in_f_color = vec4(gl_TessCoord * f, 1.0); - - // Offset the position slightly, based on the parity of the bits in the float - // representation. - // This is done to detect possible small differences in edge vertex positions - // between patches. - uvec2 bits = floatBitsToUint(pos); - uint numBits = 0u; - for (uint i = 0u; i < 32u; i++) - numBits += - ((bits[0] << i) & 1u) + ((bits[1] << i) & 1u); - pos += float(numBits & 1u) * 0.04; - - gl_Position = vec4(pos, 0.0, 1.0); -} diff --git a/deps/glslang/Test/spv.precision.frag b/deps/glslang/Test/spv.precision.frag deleted file mode 100644 index d887ce94..00000000 --- a/deps/glslang/Test/spv.precision.frag +++ /dev/null @@ -1,64 +0,0 @@ -#version 310 es -#extension GL_OES_sample_variables : enable -precision mediump float; -in lowp float lowfin; -in mediump float mediumfin; -in highp vec4 highfin; - -highp int uniform_high; -mediump int uniform_medium; -lowp int uniform_low; -bvec2 ub2; - -out mediump vec4 mediumfout; - -highp float global_highp; - -lowp vec2 foo(mediump vec3 mv3) -{ - return highfin.xy; -} - -bool boolfun(bvec2 bv2) -{ - return bv2 == bvec2(false, true); -} - -struct S { - highp float a; - lowp float b; -}; - -in S s; - -void main() -{ - lowp int sum = uniform_medium + uniform_high; - - sum += uniform_high; - sum += uniform_low; - - // test maxing precisions of args to get precision of builtin - lowp float arg1 = 3.2; - mediump float arg2 = 1023908.2; - lowp float d = distance(lowfin, mediumfin); - - global_highp = length(highfin); - - highp vec4 local_highp = vec4(global_highp); - - mediumfout = vec4(sin(d)) + arg2 + local_highp; - - sum += 4 + ((ivec2(uniform_low) * ivec2(uniform_high) + ivec2((/* comma operator */uniform_low, uniform_high)))).x; - - mediumfout += vec4(sum); - - if (boolfun(ub2)) - ++mediumfout; - - mediumfout *= s.a; - mediumfout *= s.b; - - mediumfout = ((mediumfin * mediumfin > 4.2) ? 2.0 * mediumfout : 3.0 * mediumfout); - mediumfout = ((gl_SampleMaskIn[0] >> uniform_medium > 0) ? 2.0 * mediumfout : 3.0 * mediumfout); -} diff --git a/deps/glslang/Test/spv.precisionArgs.frag b/deps/glslang/Test/spv.precisionArgs.frag deleted file mode 100644 index 4a968cb1..00000000 --- a/deps/glslang/Test/spv.precisionArgs.frag +++ /dev/null @@ -1,27 +0,0 @@ -#version 310 es - -precision mediump float; - -void fooConst(const in float f, const in highp float g) { } - -void foo(in float f, in highp float g) { } - - float retM ( float x) { return x; } -highp float retH (highp float x) { return x; } - float retHM(highp float x) { return x; } -highp float retMH( float x) { return x; } - -void main() -{ - float aM, bM; - highp float aH, bH; - fooConst(aM, bM); // must copy bM - fooConst(aH, bH); // must copy aH - foo(aM, bM); - foo(aH, bH); - - retM(aM); - retH(aH); - retHM(aH); - retMH(aM); -} diff --git a/deps/glslang/Test/spv.precisionNonESSamp.frag b/deps/glslang/Test/spv.precisionNonESSamp.frag deleted file mode 100644 index 8abf839e..00000000 --- a/deps/glslang/Test/spv.precisionNonESSamp.frag +++ /dev/null @@ -1,24 +0,0 @@ -#version 450 - -precision lowp sampler2D; -precision lowp int; -precision lowp float; - -uniform lowp sampler2D s; -uniform highp sampler3D t; -layout(rgba32f) uniform lowp image2D i1; -layout(rgba32f) uniform highp image2D i2; - -layout(location = 0) in lowp vec2 v2; -layout(location = 1) in lowp vec3 v3; -layout(location = 3) flat in lowp ivec2 iv2; - -layout(location = 0) out lowp vec4 color; - -void main() -{ - color = texture(s, v2); - color = texture(t, v3); - lowp vec4 vi1 = imageLoad(i1, iv2); - lowp vec4 vi2 = imageLoad(i2, iv2); -} diff --git a/deps/glslang/Test/spv.precisionTexture.frag b/deps/glslang/Test/spv.precisionTexture.frag deleted file mode 100644 index 78688896..00000000 --- a/deps/glslang/Test/spv.precisionTexture.frag +++ /dev/null @@ -1,24 +0,0 @@ -#version 310 es -precision mediump float; -precision mediump int; -layout(binding = 0) uniform mediump sampler2D texM; -layout(binding = 1) uniform highp sampler2D texH; -layout(binding = 0, rgba32f) uniform readonly mediump image2D imageM; -layout(binding = 1, rgba32f) uniform readonly highp image2D imageH; - -layout(location = 0) in highp vec4 vertex; -layout(location = 1) flat in highp ivec2 coord; -layout(location = 0) out vec4 fragColor; - -void main() -{ - vec4 v; - v = texture(texM, vertex.xy); - v = texture(texH, vertex.xy); - v = textureLod(texM, vertex.xy, vertex.z); - v = textureLod(texH, vertex.xy, vertex.z); - v = textureProj(texM, vertex.xyz); - v = textureProj(texH, vertex.xyz); - v = imageLoad(imageM, coord); - v = imageLoad(imageH, coord); -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.prepost.frag b/deps/glslang/Test/spv.prepost.frag deleted file mode 100644 index dfd45666..00000000 --- a/deps/glslang/Test/spv.prepost.frag +++ /dev/null @@ -1,38 +0,0 @@ -#version 140 - -void main() -{ - struct s { - float y[5]; - } str; - - float t; - int index = 5; // all indexing is 4 - - str.y[4] = 2.0; // 2.0 - t = ++str.y[--index]; // 3.0 - str.y[4] += t; // 6.0 - t = str.y[4]--; // 5.0 (t = 6.0) - str.y[index++] += t; // 11.0 - --str.y[--index]; // 10.0 - - float x = str.y[4]; - ++x; - --x; - x++; - x--; - - // x is 10.0 - - float y = x * ++x; // 10 * 11 - float z = y * x--; // 110 * 11 - - // x is 10.0 - // z is 1210.0 - - vec4 v = vec4(1.0, 2.0, 3.0, 4.0); - v.y = v.z--; // (1,3,2,4) - v.x = --v.w; // (3,3,2,3) - - gl_FragColor = z * v;// (3630.0, 3630.0, 2420.0, 3630.0) -} diff --git a/deps/glslang/Test/spv.privateVariableTypes.frag b/deps/glslang/Test/spv.privateVariableTypes.frag deleted file mode 100644 index cb6981f7..00000000 --- a/deps/glslang/Test/spv.privateVariableTypes.frag +++ /dev/null @@ -1,17 +0,0 @@ -#version 460 core -#extension GL_EXT_shader_explicit_arithmetic_types_int64 : enable -#extension GL_EXT_shader_explicit_arithmetic_types_int8 : enable -#extension GL_EXT_shader_explicit_arithmetic_types_int16 : enable -#extension GL_EXT_shader_explicit_arithmetic_types_float16 : enable - -int8_t i8; -uint8_t u8; -int16_t i16; -uint16_t u16; -int64_t i64; -uint64_t u64; -float16_t f16; - -void main() -{ -} diff --git a/deps/glslang/Test/spv.pushConstant.vert b/deps/glslang/Test/spv.pushConstant.vert deleted file mode 100644 index b1721bc6..00000000 --- a/deps/glslang/Test/spv.pushConstant.vert +++ /dev/null @@ -1,17 +0,0 @@ -#version 400 - -layout(push_constant) uniform Material { - int kind; - float fa[3]; -} matInst; - -out vec4 color; - -void main() -{ - switch (matInst.kind) { - case 1: color = vec4(0.2); break; - case 2: color = vec4(0.5); break; - default: color = vec4(0.0); break; - } -} diff --git a/deps/glslang/Test/spv.pushConstantAnon.vert b/deps/glslang/Test/spv.pushConstantAnon.vert deleted file mode 100644 index c4438b7c..00000000 --- a/deps/glslang/Test/spv.pushConstantAnon.vert +++ /dev/null @@ -1,17 +0,0 @@ -#version 400 - -layout(push_constant) uniform Material { - int kind; - float fa[3]; -}; - -out vec4 color; - -void main() -{ - switch (kind) { - case 1: color = vec4(0.2); break; - case 2: color = vec4(0.5); break; - default: color = vec4(fa[1]); break; - } -} diff --git a/deps/glslang/Test/spv.qualifiers.vert b/deps/glslang/Test/spv.qualifiers.vert deleted file mode 100644 index 96eb17db..00000000 --- a/deps/glslang/Test/spv.qualifiers.vert +++ /dev/null @@ -1,19 +0,0 @@ -#version 430 core - -in vec4 inV; - -centroid out vec4 outVc; -smooth out vec4 outVs; -flat out vec4 outVf; -noperspective out vec4 outVn; - -centroid noperspective out vec4 outVcn; - -void main() -{ - outVc = inV; - outVs = inV; - outVf = inV; - outVn = inV; - outVcn = inV; -} diff --git a/deps/glslang/Test/spv.queryL.frag b/deps/glslang/Test/spv.queryL.frag deleted file mode 100644 index 6f4ad5c8..00000000 --- a/deps/glslang/Test/spv.queryL.frag +++ /dev/null @@ -1,64 +0,0 @@ -#version 430 core - -uniform sampler1D samp1D; -uniform isampler2D isamp2D; -uniform usampler2D usamp2D; -uniform isampler3D isamp3D; -uniform usampler3D usamp3D; -uniform samplerCube sampCube; -uniform isamplerCube isampCube; -uniform isampler1DArray isamp1DA; -uniform sampler2DArray samp2DA; -uniform usampler2DArray usamp2DA; -uniform isamplerCubeArray isampCubeA; -uniform usamplerCubeArray usampCubeA; - -uniform sampler1DShadow samp1Ds; -uniform sampler2DShadow samp2Ds; -uniform samplerCubeShadow sampCubes; -uniform sampler1DArrayShadow samp1DAs; -uniform sampler2DArrayShadow samp2DAs; -uniform samplerCubeArrayShadow sampCubeAs; - -uniform samplerBuffer sampBuf; -uniform sampler2DRect sampRect; - -void main() -{ - vec2 lod; - float pf; - vec2 pf2; - vec3 pf3; - - lod = textureQueryLod(samp1D, pf); - lod += textureQueryLod(isamp2D, pf2); - lod += textureQueryLod(usamp3D, pf3); - lod += textureQueryLod(sampCube, pf3); - lod += textureQueryLod(isamp1DA, pf); - lod += textureQueryLod(usamp2DA, pf2); - lod += textureQueryLod(isampCubeA, pf3); - - lod += textureQueryLod(samp1Ds, pf); - lod += textureQueryLod(samp2Ds, pf2); - lod += textureQueryLod(sampCubes, pf3); - lod += textureQueryLod(samp1DAs, pf); - lod += textureQueryLod(samp2DAs, pf2); - lod += textureQueryLod(sampCubeAs, pf3); - - int levels; - - levels = textureQueryLevels(samp1D); - levels += textureQueryLevels(usamp2D); - levels += textureQueryLevels(isamp3D); - levels += textureQueryLevels(isampCube); - levels += textureQueryLevels(isamp1DA); - levels += textureQueryLevels(samp2DA); - levels += textureQueryLevels(usampCubeA); - - levels = textureQueryLevels(samp1Ds); - levels += textureQueryLevels(samp2Ds); - levels += textureQueryLevels(sampCubes); - levels += textureQueryLevels(samp1DAs); - levels += textureQueryLevels(samp2DAs); - levels += textureQueryLevels(sampCubeAs); -} diff --git a/deps/glslang/Test/spv.queueFamilyScope.comp b/deps/glslang/Test/spv.queueFamilyScope.comp deleted file mode 100644 index 0d798508..00000000 --- a/deps/glslang/Test/spv.queueFamilyScope.comp +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 -#extension GL_KHR_memory_scope_semantics : require - -layout (binding = 0) buffer Buffer { uint a; } A; - -void main() -{ - atomicLoad(A.a, gl_ScopeQueueFamily, gl_StorageSemanticsBuffer, gl_SemanticsAcquire); -} - diff --git a/deps/glslang/Test/spv.rankShift.comp b/deps/glslang/Test/spv.rankShift.comp deleted file mode 100644 index 1761ad1f..00000000 --- a/deps/glslang/Test/spv.rankShift.comp +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 -#extension GL_ARB_gpu_shader_int64 : require - -layout(local_size_x = 54) in; - -layout(location=4) uniform int64_t arg0; -layout(location=5) uniform uint arg1; - -void main() -{ - uint64_t result = arg0 << arg1; - result = arg0 >> arg1; - result <<= arg1; - result >>= arg1; -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.register.autoassign-2.frag b/deps/glslang/Test/spv.register.autoassign-2.frag deleted file mode 100644 index 05c49250..00000000 --- a/deps/glslang/Test/spv.register.autoassign-2.frag +++ /dev/null @@ -1,15 +0,0 @@ - -SamplerState g_tSamp : register(s0); - -Texture2D g_tScene[2] : register(t0); - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; -}; - -void main(out PS_OUTPUT psout) -{ - psout.Color = g_tScene[0].Sample(g_tSamp, float2(0.3,0.4)) + - g_tScene[1].Sample(g_tSamp, float2(0.3,0.4)); -} diff --git a/deps/glslang/Test/spv.register.autoassign.frag b/deps/glslang/Test/spv.register.autoassign.frag deleted file mode 100644 index 0d6f0b2d..00000000 --- a/deps/glslang/Test/spv.register.autoassign.frag +++ /dev/null @@ -1,71 +0,0 @@ - -SamplerState g_sSamp1 : register(s0); -SamplerState g_sSamp2; -SamplerState g_sSamp3[2] : register(s2); -SamplerState g_sSamp4[3]; -SamplerState g_sSamp5; - -SamplerState g_sSamp_unused1; -SamplerState g_sSamp_unused2; - -Texture1D g_tTex1 : register(t1); -const uniform Texture1D g_tTex2; -Texture1D g_tTex3[2] : register(t3); -Texture1D g_tTex4[3]; -Texture1D g_tTex5; - -Texture1D g_tTex_unused1 : register(t0); -Texture1D g_tTex_unused2 : register(t2); -Texture1D g_tTex_unused3; - -struct MyStruct_t { - int a; - float b; - float3 c; -}; - -uniform MyStruct_t mystruct : register(b4); - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; -}; - -uniform float4 myfloat4_a; -uniform float4 myfloat4_b; -uniform int4 myint4_a; - -float4 Func1() -{ - return - g_tTex1 . Sample(g_sSamp1, 0.1) + - g_tTex2 . Sample(g_sSamp2, 0.2) + - g_tTex3[0] . Sample(g_sSamp3[0], 0.3) + - g_tTex3[1] . Sample(g_sSamp3[1], 0.3) + - g_tTex4[1] . Sample(g_sSamp4[1], 0.4) + - g_tTex4[2] . Sample(g_sSamp4[2], 0.4) + - g_tTex5 . Sample(g_sSamp5, 0.5) + - mystruct.c[1]; -} - -float4 Func2() -{ - return - g_tTex1 . Sample(g_sSamp1, 0.1) + - g_tTex3[1] . Sample(g_sSamp3[1], 0.3); -} - -// Not called from entry point: -float4 Func2_unused() -{ - return - g_tTex_unused1 . Sample(g_sSamp_unused1, 1.1) + - g_tTex_unused2 . Sample(g_sSamp_unused2, 1.2); -} - -PS_OUTPUT main_ep() -{ - PS_OUTPUT psout; - psout.Color = Func1() + Func2(); - return psout; -} diff --git a/deps/glslang/Test/spv.register.autoassign.rangetest.frag b/deps/glslang/Test/spv.register.autoassign.rangetest.frag deleted file mode 100644 index 314c8e96..00000000 --- a/deps/glslang/Test/spv.register.autoassign.rangetest.frag +++ /dev/null @@ -1,15 +0,0 @@ - -SamplerState g_tSamp : register(s5); - -Texture2D g_tScene[2] : register(t5); - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; -}; - -void main(out PS_OUTPUT psout) -{ - psout.Color = g_tScene[0].Sample(g_tSamp, float2(0.3, 0.3)) + - g_tScene[1].Sample(g_tSamp, float2(0.3, 0.3)); -} diff --git a/deps/glslang/Test/spv.register.noautoassign.frag b/deps/glslang/Test/spv.register.noautoassign.frag deleted file mode 100644 index 0d6f0b2d..00000000 --- a/deps/glslang/Test/spv.register.noautoassign.frag +++ /dev/null @@ -1,71 +0,0 @@ - -SamplerState g_sSamp1 : register(s0); -SamplerState g_sSamp2; -SamplerState g_sSamp3[2] : register(s2); -SamplerState g_sSamp4[3]; -SamplerState g_sSamp5; - -SamplerState g_sSamp_unused1; -SamplerState g_sSamp_unused2; - -Texture1D g_tTex1 : register(t1); -const uniform Texture1D g_tTex2; -Texture1D g_tTex3[2] : register(t3); -Texture1D g_tTex4[3]; -Texture1D g_tTex5; - -Texture1D g_tTex_unused1 : register(t0); -Texture1D g_tTex_unused2 : register(t2); -Texture1D g_tTex_unused3; - -struct MyStruct_t { - int a; - float b; - float3 c; -}; - -uniform MyStruct_t mystruct : register(b4); - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; -}; - -uniform float4 myfloat4_a; -uniform float4 myfloat4_b; -uniform int4 myint4_a; - -float4 Func1() -{ - return - g_tTex1 . Sample(g_sSamp1, 0.1) + - g_tTex2 . Sample(g_sSamp2, 0.2) + - g_tTex3[0] . Sample(g_sSamp3[0], 0.3) + - g_tTex3[1] . Sample(g_sSamp3[1], 0.3) + - g_tTex4[1] . Sample(g_sSamp4[1], 0.4) + - g_tTex4[2] . Sample(g_sSamp4[2], 0.4) + - g_tTex5 . Sample(g_sSamp5, 0.5) + - mystruct.c[1]; -} - -float4 Func2() -{ - return - g_tTex1 . Sample(g_sSamp1, 0.1) + - g_tTex3[1] . Sample(g_sSamp3[1], 0.3); -} - -// Not called from entry point: -float4 Func2_unused() -{ - return - g_tTex_unused1 . Sample(g_sSamp_unused1, 1.1) + - g_tTex_unused2 . Sample(g_sSamp_unused2, 1.2); -} - -PS_OUTPUT main_ep() -{ - PS_OUTPUT psout; - psout.Color = Func1() + Func2(); - return psout; -} diff --git a/deps/glslang/Test/spv.register.subpass.frag b/deps/glslang/Test/spv.register.subpass.frag deleted file mode 100644 index 281c2f70..00000000 --- a/deps/glslang/Test/spv.register.subpass.frag +++ /dev/null @@ -1,15 +0,0 @@ - -// Test binding autoassignment and offset for SubpassInput objects - -layout(input_attachment_index = 1) SubpassInput subpass_f4 : register(t1); -layout(input_attachment_index = 4) SubpassInputMS subpass_ms_f4; -[[vk::input_attachment_index(7)]] SubpassInput subpass_2; - -float4 main() : SV_Target0 -{ - float4 result00 = subpass_f4.SubpassLoad(); - float4 result10 = subpass_ms_f4.SubpassLoad(3); - float4 result73 = subpass_2.SubpassLoad(); - - return 0; -} diff --git a/deps/glslang/Test/spv.rw.autoassign.frag b/deps/glslang/Test/spv.rw.autoassign.frag deleted file mode 100644 index 5c7d0d3f..00000000 --- a/deps/glslang/Test/spv.rw.autoassign.frag +++ /dev/null @@ -1,18 +0,0 @@ - -RWTexture1D g_tTex1df1; -RWBuffer g_tBuf1du1; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; -}; - -PS_OUTPUT main() -{ - float r00 = g_tTex1df1[0]; - uint r01 = g_tBuf1du1[0]; - - PS_OUTPUT psout; - psout.Color = 0; - return psout; -} diff --git a/deps/glslang/Test/spv.sample.frag b/deps/glslang/Test/spv.sample.frag deleted file mode 100644 index b62afe27..00000000 --- a/deps/glslang/Test/spv.sample.frag +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 - -layout(location = 0) in sample vec4 samp; -layout(location = 0) out vec4 color; - -void main() -{ - color = samp; -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.sampleId.frag b/deps/glslang/Test/spv.sampleId.frag deleted file mode 100644 index d5473f79..00000000 --- a/deps/glslang/Test/spv.sampleId.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(location = 0) in vec4 samp; -layout(location = 0) out vec4 color; - -void main() -{ - if (gl_SampleID < 3) - color = samp; - else - color = 2 * samp; -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.sampleMaskOverrideCoverage.frag b/deps/glslang/Test/spv.sampleMaskOverrideCoverage.frag deleted file mode 100644 index dd840621..00000000 --- a/deps/glslang/Test/spv.sampleMaskOverrideCoverage.frag +++ /dev/null @@ -1,7 +0,0 @@ -#version 450 -#extension GL_NV_sample_mask_override_coverage : enable -in vec4 color; -layout(override_coverage) out int gl_SampleMask[]; -void main() { - gl_SampleMask[0] = int(0xFFFFFFFF); -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.samplePosition.frag b/deps/glslang/Test/spv.samplePosition.frag deleted file mode 100644 index b73dd61f..00000000 --- a/deps/glslang/Test/spv.samplePosition.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(location = 0) in vec4 samp; -layout(location = 0) out vec4 color; - -void main() -{ - if (gl_SamplePosition.y < 0.5) - color = samp; - else - color = 2 * samp; -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.samplerlessTextureFunctions.frag b/deps/glslang/Test/spv.samplerlessTextureFunctions.frag deleted file mode 100644 index 3043b39d..00000000 --- a/deps/glslang/Test/spv.samplerlessTextureFunctions.frag +++ /dev/null @@ -1,23 +0,0 @@ -#version 450 core -#extension GL_EXT_samplerless_texture_functions : enable - -layout(binding = 1) uniform texture2D tex2D; -layout(binding = 1) uniform texture2DMS texMS; -layout(binding = 0) uniform textureBuffer buf; - -void main() -{ - vec4 tex2DFetch = texelFetch(tex2D, ivec2(0, 0), 0); - vec4 texMSFetch = texelFetch(texMS, ivec2(0, 0), 0); - vec4 bufFetch = texelFetch(buf, 0); - - vec4 tex2DFetchOffset = texelFetchOffset(tex2D, ivec2(0, 0), 0, ivec2(0, 0)); - - ivec2 tex2DSize = textureSize(tex2D, 0); - ivec2 texMSSize = textureSize(texMS); - int bufSize = textureSize(buf); - - int tex2DLevels = textureQueryLevels(tex2D); - - int texMSSamples = textureSamples(texMS); -} diff --git a/deps/glslang/Test/spv.scalarlayout.frag b/deps/glslang/Test/spv.scalarlayout.frag deleted file mode 100644 index e0e1b18d..00000000 --- a/deps/glslang/Test/spv.scalarlayout.frag +++ /dev/null @@ -1,34 +0,0 @@ -#version 450 core - -#extension GL_EXT_scalar_block_layout : enable - -// Block memory layout -struct S -{ - float a; // offset 0 - vec2 b; // offset 4 - double c; // offset 16 - float d; // offset 24 - vec3 e; // offset 28 - float f; // offset 40 - // size = 44, align = 8 -}; - -layout(column_major, scalar) uniform B1 -{ - float a; // offset = 0 - vec2 b; // offset = 4 - vec3 c; // offset = 12 - float d[2]; // offset = 24 - mat2x3 e; // offset = 32, takes 24 bytes, matrixstride = 12 - mat2x3 f[2]; // offset = 56, takes 48 bytes, matrixstride = 12, arraystride = 24 - float g; // offset = 104 - S h; // offset = 112 (aligned to multiple of 8) - S i[2]; // offset = 160 (aligned to multiple of 8) stride = 48 -}; - -layout (std430) uniform; - -void main() -{ -} diff --git a/deps/glslang/Test/spv.scalarlayoutfloat16.frag b/deps/glslang/Test/spv.scalarlayoutfloat16.frag deleted file mode 100644 index ff870973..00000000 --- a/deps/glslang/Test/spv.scalarlayoutfloat16.frag +++ /dev/null @@ -1,31 +0,0 @@ -#version 450 core - -#extension GL_EXT_shader_16bit_storage: enable -#extension GL_EXT_scalar_block_layout : enable - -// Block memory layout -struct S -{ - float16_t a; // offset 0 - f16vec2 b; // offset 2 - double c; // offset 8 - float16_t d; // offset 16 - f16vec3 e; // offset 18 - float16_t f; // offset 24 - // size = 26, align = 8 -}; - -layout(column_major, scalar) uniform B1 -{ - float16_t a; // offset = 0 - f16vec2 b; // offset = 2 - f16vec3 c; // offset = 6 - float16_t d[2]; // offset = 12 stride = 2 - float16_t g; // offset = 16 - S h; // offset = 24 (aligned to multiple of 8) - S i[2]; // offset = 56 (aligned to multiple of 8) stride = 32 -}; - -void main() -{ -} diff --git a/deps/glslang/Test/spv.separate.frag b/deps/glslang/Test/spv.separate.frag deleted file mode 100644 index 21e5db33..00000000 --- a/deps/glslang/Test/spv.separate.frag +++ /dev/null @@ -1,95 +0,0 @@ -#version 400 - -uniform sampler s; -uniform samplerShadow sShadow; -uniform sampler sA[4]; -uniform texture2D t2d; -uniform texture3D t3d[4]; -flat in int i; - -out vec4 color; - -void main() -{ - color = texture(sampler2D(t2d, s), vec2(0.5)); - color += texture(sampler3D(t3d[i], sA[2]), vec3(0.5)); - color += texture(sampler2D(t2d, s), vec2(0.5)); -} - -uniform texture2D tex2D; -uniform textureCube texCube; -uniform textureCubeArray texCubeArray; -uniform itextureCubeArray itexCubeArray; -uniform utextureCubeArray utexCubeArray; -uniform itexture1DArray itex1DArray; -uniform utexture1D utex1D; -uniform itexture1D itex1D; -uniform utexture1DArray utex1DArray; -uniform textureBuffer texBuffer; -uniform texture2DArray tex2DArray; -uniform itexture2D itex2D; -uniform itexture3D itex3D; -uniform itextureCube itexCube; -uniform itexture2DArray itex2DArray; -uniform utexture2D utex2D; -uniform utexture3D utex3D; -uniform utextureCube utexCube; -uniform utexture2DArray utex2DArray; -uniform itexture2DRect itex2DRect; -uniform utexture2DRect utex2DRect; -uniform itextureBuffer itexBuffer; -uniform utextureBuffer utexBuffer; -uniform texture2DMS tex2DMS; -uniform itexture2DMS itex2DMS; -uniform utexture2DMS utex2DMS; -uniform texture2DMSArray tex2DMSArray; -uniform itexture2DMSArray itex2DMSArray; -uniform utexture2DMSArray utex2DMSArray; -uniform texture1D tex1D; -uniform texture3D tex3D; -uniform texture2DRect tex2DRect; -uniform texture1DArray tex1DArray; - -void foo() -{ - sampler2D (tex2D, s); - samplerCube (texCube, s); - samplerCubeArray (texCubeArray, s); - samplerCubeArrayShadow (texCubeArray, sShadow); - isamplerCubeArray (itexCubeArray, s); - usamplerCubeArray (utexCubeArray, s); - sampler1DArrayShadow (tex1DArray, sShadow); - isampler1DArray (itex1DArray, s); - usampler1D (utex1D, s); - isampler1D (itex1D, s); - usampler1DArray (utex1DArray, s); - samplerBuffer (texBuffer, s); - samplerCubeShadow (texCube, sShadow); - sampler2DArray (tex2DArray, s); - sampler2DArrayShadow (tex2DArray, sShadow); - isampler2D (itex2D, s); - isampler3D (itex3D, s); - isamplerCube (itexCube, s); - isampler2DArray (itex2DArray, s); - usampler2D (utex2D, s); - usampler3D (utex3D, s); - usamplerCube (utexCube, s); - usampler2DArray (utex2DArray, s); - isampler2DRect (itex2DRect, s); - usampler2DRect (utex2DRect, s); - isamplerBuffer (itexBuffer, s); - usamplerBuffer (utexBuffer, s); - sampler2DMS (tex2DMS, s); - isampler2DMS (itex2DMS, s); - usampler2DMS (utex2DMS, s); - sampler2DMSArray (tex2DMSArray, s); - isampler2DMSArray (itex2DMSArray, s); - usampler2DMSArray (utex2DMSArray, s); - sampler1D (tex1D, s); - sampler1DShadow (tex1D, sShadow); - sampler3D (tex3D, s); - sampler2DShadow (tex2D, sShadow); - sampler2DRect (tex2DRect, s); - sampler2DRectShadow (tex2DRect, sShadow); - sampler1DArray (tex1DArray, s); -} diff --git a/deps/glslang/Test/spv.set.vert b/deps/glslang/Test/spv.set.vert deleted file mode 100644 index d211ef11..00000000 --- a/deps/glslang/Test/spv.set.vert +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 - -layout(set = 4, binding = 7) uniform sampler2D samp2D; - -layout(set = 0, binding = 8) buffer setBuf { - vec4 color; -} setBufInst; - -out vec4 color; - -void main() -{ - color = setBufInst.color; -} diff --git a/deps/glslang/Test/spv.shaderBallot.comp b/deps/glslang/Test/spv.shaderBallot.comp deleted file mode 100644 index 20059b1c..00000000 --- a/deps/glslang/Test/spv.shaderBallot.comp +++ /dev/null @@ -1,59 +0,0 @@ -#version 450 - -#extension GL_ARB_gpu_shader_int64: enable -#extension GL_ARB_shader_ballot: enable - -layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in; - -layout(binding = 0) buffer Buffers -{ - vec4 f4; - ivec4 i4; - uvec4 u4; -} data[4]; - -void main() -{ - uint invocation = (gl_SubGroupInvocationARB + gl_SubGroupSizeARB) % 4; - - uint64_t relMask = gl_SubGroupEqMaskARB + - gl_SubGroupGeMaskARB + - gl_SubGroupGtMaskARB + - gl_SubGroupLeMaskARB + - gl_SubGroupLtMaskARB; - - if (relMask == ballotARB(true)) - { - data[invocation].f4.x = readInvocationARB(data[0].f4.x, invocation); - data[invocation].f4.xy = readInvocationARB(data[1].f4.xy, invocation); - data[invocation].f4.xyz = readInvocationARB(data[2].f4.xyz, invocation); - data[invocation].f4 = readInvocationARB(data[3].f4, invocation); - - data[invocation].i4.x = readInvocationARB(data[0].i4.x, invocation); - data[invocation].i4.xy = readInvocationARB(data[1].i4.xy, invocation); - data[invocation].i4.xyz = readInvocationARB(data[2].i4.xyz, invocation); - data[invocation].i4 = readInvocationARB(data[3].i4, invocation); - - data[invocation].u4.x = readInvocationARB(data[0].u4.x, invocation); - data[invocation].u4.xy = readInvocationARB(data[1].u4.xy, invocation); - data[invocation].u4.xyz = readInvocationARB(data[2].u4.xyz, invocation); - data[invocation].u4 = readInvocationARB(data[3].u4, invocation); - } - else - { - data[invocation].f4.x = readFirstInvocationARB(data[0].f4.x); - data[invocation].f4.xy = readFirstInvocationARB(data[1].f4.xy); - data[invocation].f4.xyz = readFirstInvocationARB(data[2].f4.xyz); - data[invocation].f4 = readFirstInvocationARB(data[3].f4); - - data[invocation].i4.x = readFirstInvocationARB(data[0].i4.x); - data[invocation].i4.xy = readFirstInvocationARB(data[1].i4.xy); - data[invocation].i4.xyz = readFirstInvocationARB(data[2].i4.xyz); - data[invocation].i4 = readFirstInvocationARB(data[3].i4); - - data[invocation].u4.x = readFirstInvocationARB(data[0].u4.x); - data[invocation].u4.xy = readFirstInvocationARB(data[1].u4.xy); - data[invocation].u4.xyz = readFirstInvocationARB(data[2].u4.xyz); - data[invocation].u4 = readFirstInvocationARB(data[3].u4); - } -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.shaderBallotAMD.comp b/deps/glslang/Test/spv.shaderBallotAMD.comp deleted file mode 100644 index 9cf9546e..00000000 --- a/deps/glslang/Test/spv.shaderBallotAMD.comp +++ /dev/null @@ -1,204 +0,0 @@ -#version 450 - -#extension GL_ARB_gpu_shader_int64: enable -#extension GL_AMD_gpu_shader_half_float: enable -#extension GL_AMD_gpu_shader_int16: enable -#extension GL_AMD_shader_ballot: enable - -layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in; - -layout(binding = 0) buffer Buffers -{ - int i; - uvec2 uv; - vec3 fv; - dvec4 dv; - int64_t i64; - u64vec2 u64v; - f16vec3 f16v; - i16vec4 i16v; - uint16_t u16; -}; - -void main() -{ - i = minInvocationsAMD(i); - uv = minInvocationsAMD(uv); - fv = minInvocationsAMD(fv); - dv = minInvocationsAMD(dv); - i64 = minInvocationsAMD(i64); - u64v = minInvocationsAMD(u64v); - f16v = minInvocationsAMD(f16v); - i16v = minInvocationsAMD(i16v); - u16 = minInvocationsAMD(u16); - - i = maxInvocationsAMD(i); - uv = maxInvocationsAMD(uv); - fv = maxInvocationsAMD(fv); - dv = maxInvocationsAMD(dv); - i64 = maxInvocationsAMD(i64); - u64v = maxInvocationsAMD(u64v); - f16v = maxInvocationsAMD(f16v); - i16v = maxInvocationsAMD(i16v); - u16 = maxInvocationsAMD(u16); - - i = addInvocationsAMD(i); - uv = addInvocationsAMD(uv); - fv = addInvocationsAMD(fv); - dv = addInvocationsAMD(dv); - i64 = addInvocationsAMD(i64); - u64v = addInvocationsAMD(u64v); - f16v = addInvocationsAMD(f16v); - i16v = addInvocationsAMD(i16v); - u16 = addInvocationsAMD(u16); - - i = minInvocationsNonUniformAMD(i); - uv = minInvocationsNonUniformAMD(uv); - fv = minInvocationsNonUniformAMD(fv); - dv = minInvocationsNonUniformAMD(dv); - i64 = minInvocationsNonUniformAMD(i64); - u64v = minInvocationsNonUniformAMD(u64v); - f16v = minInvocationsNonUniformAMD(f16v); - i16v = minInvocationsNonUniformAMD(i16v); - u16 = minInvocationsNonUniformAMD(u16); - - i = maxInvocationsNonUniformAMD(i); - uv = maxInvocationsNonUniformAMD(uv); - fv = maxInvocationsNonUniformAMD(fv); - dv = maxInvocationsNonUniformAMD(dv); - i64 = maxInvocationsNonUniformAMD(i64); - u64v = maxInvocationsNonUniformAMD(u64v); - f16v = maxInvocationsNonUniformAMD(f16v); - i16v = maxInvocationsNonUniformAMD(i16v); - u16 = maxInvocationsNonUniformAMD(u16); - - i = addInvocationsNonUniformAMD(i); - uv = addInvocationsNonUniformAMD(uv); - fv = addInvocationsNonUniformAMD(fv); - dv = addInvocationsNonUniformAMD(dv); - i64 = addInvocationsNonUniformAMD(i64); - u64v = addInvocationsNonUniformAMD(u64v); - f16v = addInvocationsNonUniformAMD(f16v); - i16v = addInvocationsNonUniformAMD(i16v); - u16 = addInvocationsNonUniformAMD(u16); - - i = minInvocationsInclusiveScanAMD(i); - uv = minInvocationsInclusiveScanAMD(uv); - fv = minInvocationsInclusiveScanAMD(fv); - dv = minInvocationsInclusiveScanAMD(dv); - i64 = minInvocationsInclusiveScanAMD(i64); - u64v = minInvocationsInclusiveScanAMD(u64v); - f16v = minInvocationsInclusiveScanAMD(f16v); - i16v = minInvocationsInclusiveScanAMD(i16v); - u16 = minInvocationsInclusiveScanAMD(u16); - - i = maxInvocationsInclusiveScanAMD(i); - uv = maxInvocationsInclusiveScanAMD(uv); - fv = maxInvocationsInclusiveScanAMD(fv); - dv = maxInvocationsInclusiveScanAMD(dv); - i64 = maxInvocationsInclusiveScanAMD(i64); - u64v = maxInvocationsInclusiveScanAMD(u64v); - f16v = maxInvocationsInclusiveScanAMD(f16v); - i16v = maxInvocationsInclusiveScanAMD(i16v); - u16 = maxInvocationsInclusiveScanAMD(u16); - - i = addInvocationsInclusiveScanAMD(i); - uv = addInvocationsInclusiveScanAMD(uv); - fv = addInvocationsInclusiveScanAMD(fv); - dv = addInvocationsInclusiveScanAMD(dv); - i64 = addInvocationsInclusiveScanAMD(i64); - u64v = addInvocationsInclusiveScanAMD(u64v); - f16v = addInvocationsInclusiveScanAMD(f16v); - i16v = addInvocationsInclusiveScanAMD(i16v); - u16 = addInvocationsInclusiveScanAMD(u16); - - i = minInvocationsExclusiveScanAMD(i); - uv = minInvocationsExclusiveScanAMD(uv); - fv = minInvocationsExclusiveScanAMD(fv); - dv = minInvocationsExclusiveScanAMD(dv); - i64 = minInvocationsExclusiveScanAMD(i64); - u64v = minInvocationsExclusiveScanAMD(u64v); - f16v = minInvocationsExclusiveScanAMD(f16v); - i16v = minInvocationsExclusiveScanAMD(i16v); - u16 = minInvocationsExclusiveScanAMD(u16); - - i = maxInvocationsExclusiveScanAMD(i); - uv = maxInvocationsExclusiveScanAMD(uv); - fv = maxInvocationsExclusiveScanAMD(fv); - dv = maxInvocationsExclusiveScanAMD(dv); - i64 = maxInvocationsExclusiveScanAMD(i64); - u64v = maxInvocationsExclusiveScanAMD(u64v); - f16v = maxInvocationsExclusiveScanAMD(f16v); - i16v = maxInvocationsExclusiveScanAMD(i16v); - u16 = maxInvocationsExclusiveScanAMD(u16); - - i = addInvocationsExclusiveScanAMD(i); - uv = addInvocationsExclusiveScanAMD(uv); - fv = addInvocationsExclusiveScanAMD(fv); - dv = addInvocationsExclusiveScanAMD(dv); - i64 = addInvocationsExclusiveScanAMD(i64); - u64v = addInvocationsExclusiveScanAMD(u64v); - f16v = addInvocationsExclusiveScanAMD(f16v); - i16v = addInvocationsExclusiveScanAMD(i16v); - u16 = addInvocationsExclusiveScanAMD(u16); - - i = minInvocationsInclusiveScanNonUniformAMD(i); - uv = minInvocationsInclusiveScanNonUniformAMD(uv); - fv = minInvocationsInclusiveScanNonUniformAMD(fv); - dv = minInvocationsInclusiveScanNonUniformAMD(dv); - i64 = minInvocationsInclusiveScanNonUniformAMD(i64); - u64v = minInvocationsInclusiveScanNonUniformAMD(u64v); - f16v = minInvocationsInclusiveScanNonUniformAMD(f16v); - i16v = minInvocationsInclusiveScanNonUniformAMD(i16v); - u16 = minInvocationsInclusiveScanNonUniformAMD(u16); - - i = maxInvocationsInclusiveScanNonUniformAMD(i); - uv = maxInvocationsInclusiveScanNonUniformAMD(uv); - fv = maxInvocationsInclusiveScanNonUniformAMD(fv); - dv = maxInvocationsInclusiveScanNonUniformAMD(dv); - i64 = maxInvocationsInclusiveScanNonUniformAMD(i64); - u64v = maxInvocationsInclusiveScanNonUniformAMD(u64v); - f16v = maxInvocationsInclusiveScanNonUniformAMD(f16v); - i16v = maxInvocationsInclusiveScanNonUniformAMD(i16v); - u16 = maxInvocationsInclusiveScanNonUniformAMD(u16); - - i = addInvocationsInclusiveScanNonUniformAMD(i); - uv = addInvocationsInclusiveScanNonUniformAMD(uv); - fv = addInvocationsInclusiveScanNonUniformAMD(fv); - dv = addInvocationsInclusiveScanNonUniformAMD(dv); - i64 = addInvocationsInclusiveScanNonUniformAMD(i64); - u64v = addInvocationsInclusiveScanNonUniformAMD(u64v); - f16v = addInvocationsInclusiveScanNonUniformAMD(f16v); - i16v = addInvocationsInclusiveScanNonUniformAMD(i16v); - u16 = addInvocationsInclusiveScanNonUniformAMD(u16); - - i = minInvocationsExclusiveScanNonUniformAMD(i); - uv = minInvocationsExclusiveScanNonUniformAMD(uv); - fv = minInvocationsExclusiveScanNonUniformAMD(fv); - dv = minInvocationsExclusiveScanNonUniformAMD(dv); - i64 = minInvocationsExclusiveScanNonUniformAMD(i64); - u64v = minInvocationsExclusiveScanNonUniformAMD(u64v); - f16v = minInvocationsExclusiveScanNonUniformAMD(f16v); - i16v = minInvocationsExclusiveScanNonUniformAMD(i16v); - u16 = minInvocationsExclusiveScanNonUniformAMD(u16); - - i = maxInvocationsExclusiveScanNonUniformAMD(i); - uv = maxInvocationsExclusiveScanNonUniformAMD(uv); - fv = maxInvocationsExclusiveScanNonUniformAMD(fv); - dv = maxInvocationsExclusiveScanNonUniformAMD(dv); - i64 = maxInvocationsExclusiveScanNonUniformAMD(i64); - u64v = maxInvocationsExclusiveScanNonUniformAMD(u64v); - f16v = maxInvocationsExclusiveScanNonUniformAMD(f16v); - i16v = maxInvocationsExclusiveScanNonUniformAMD(i16v); - u16 = maxInvocationsExclusiveScanNonUniformAMD(u16); - - i = addInvocationsExclusiveScanNonUniformAMD(i); - uv = addInvocationsExclusiveScanNonUniformAMD(uv); - fv = addInvocationsExclusiveScanNonUniformAMD(fv); - dv = addInvocationsExclusiveScanNonUniformAMD(dv); - i64 = addInvocationsExclusiveScanNonUniformAMD(i64); - u64v = addInvocationsExclusiveScanNonUniformAMD(u64v); - f16v = addInvocationsExclusiveScanNonUniformAMD(f16v); - i16v = addInvocationsExclusiveScanNonUniformAMD(i16v); - u16 = addInvocationsExclusiveScanNonUniformAMD(u16); -} diff --git a/deps/glslang/Test/spv.shaderDrawParams.vert b/deps/glslang/Test/spv.shaderDrawParams.vert deleted file mode 100644 index 15ae2953..00000000 --- a/deps/glslang/Test/spv.shaderDrawParams.vert +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 core - -#extension GL_ARB_shader_draw_parameters: enable - -layout(binding = 0) uniform Block -{ - vec4 pos[2][4]; -} block; - -void main() -{ - if ((gl_BaseVertexARB > 0) || (gl_BaseInstanceARB > 0)) - gl_Position = block.pos[0][gl_DrawIDARB % 4]; - else - gl_Position = block.pos[1][gl_DrawIDARB % 4]; -} diff --git a/deps/glslang/Test/spv.shaderFragMaskAMD.frag b/deps/glslang/Test/spv.shaderFragMaskAMD.frag deleted file mode 100644 index b9e8ab05..00000000 --- a/deps/glslang/Test/spv.shaderFragMaskAMD.frag +++ /dev/null @@ -1,29 +0,0 @@ -#version 450 core - -#extension GL_AMD_shader_fragment_mask: enable - -layout(binding = 0) uniform sampler2DMS s2DMS; -layout(binding = 1) uniform isampler2DMSArray is2DMSArray; - -layout(binding = 2, input_attachment_index = 0) uniform usubpassInputMS usubpassMS; - -layout(location = 0) out vec4 fragColor; - -void main() -{ - vec4 f4 = vec4(0.0); - - uint fragMask = fragmentMaskFetchAMD(s2DMS, ivec2(2, 3)); - uint fragIndex = (fragMask & 0xF0) >> 4; - f4 += fragmentFetchAMD(s2DMS, ivec2(2, 3), 1); - - fragMask = fragmentMaskFetchAMD(is2DMSArray, ivec3(2, 3, 1)); - fragIndex = (fragMask & 0xF0) >> 4; - f4 += fragmentFetchAMD(is2DMSArray, ivec3(2, 3, 1), fragIndex); - - fragMask = fragmentMaskFetchAMD(usubpassMS); - fragIndex = (fragMask & 0xF0) >> 4; - f4 += fragmentFetchAMD(usubpassMS, fragIndex); - - fragColor = f4; -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.shaderGroupVote.comp b/deps/glslang/Test/spv.shaderGroupVote.comp deleted file mode 100644 index c0b1fe72..00000000 --- a/deps/glslang/Test/spv.shaderGroupVote.comp +++ /dev/null @@ -1,21 +0,0 @@ -#version 450 - -#extension GL_ARB_shader_group_vote : enable - -layout(local_size_x = 4, local_size_y = 4) in; - -layout(std430, binding = 0) buffer Buffers -{ - bool b; -}; - -void main() -{ - bool b1 = b; - - b1 = anyInvocationARB(b1); - b1 = allInvocationsARB(b1); - b1 = allInvocationsEqualARB(b1); - - b = b1; -} diff --git a/deps/glslang/Test/spv.shaderImageFootprint.frag b/deps/glslang/Test/spv.shaderImageFootprint.frag deleted file mode 100644 index efde3704..00000000 --- a/deps/glslang/Test/spv.shaderImageFootprint.frag +++ /dev/null @@ -1,123 +0,0 @@ -#version 450 - -#extension GL_NV_shader_texture_footprint : require - - -layout (location = 0) in vec2 P2; -layout (location = 2) in vec3 P3; -layout (location = 3) in flat int granularity; -layout (location = 4) in float lodClamp; -layout (location = 5) in float lod; -layout (location = 6) in vec2 dx; -layout (location = 8) in vec2 dy; -layout (location = 9) in float bias; - -uniform sampler2D sample2D; -uniform sampler3D sample3D; - -buffer result2D { - bool ret2D; - uvec2 anchor2D; - uvec2 offset2D; - uvec2 mask2D; - uint lod2D; - uint granularity2D; -}; - -buffer result3D { - bool ret3D; - uvec3 anchor3D; - uvec3 offset3D; - uvec2 mask3D; - uint lod3D; - uint granularity3D; -}; - -void main() { - gl_TextureFootprint2DNV fp2D; - gl_TextureFootprint3DNV fp3D; - - ret2D = textureFootprintNV(sample2D, P2, granularity, true, fp2D); - anchor2D = fp2D.anchor; - offset2D = fp2D.offset; - mask2D = fp2D.mask; - lod2D = fp2D.lod; - granularity2D = fp2D.granularity; - - ret2D = textureFootprintNV(sample2D, P2, granularity, true, fp2D, bias); - anchor2D += fp2D.anchor; - offset2D += fp2D.offset; - mask2D += fp2D.mask; - lod2D += fp2D.lod; - granularity2D += fp2D.granularity; - - ret2D = textureFootprintClampNV(sample2D, P2, lodClamp, granularity, true, fp2D); - anchor2D += fp2D.anchor; - offset2D += fp2D.offset; - mask2D += fp2D.mask; - lod2D += fp2D.lod; - granularity2D += fp2D.granularity; - - ret2D = textureFootprintClampNV(sample2D, P2, lodClamp, granularity, true, fp2D, bias); - anchor2D += fp2D.anchor; - offset2D += fp2D.offset; - mask2D += fp2D.mask; - lod2D += fp2D.lod; - granularity2D += fp2D.granularity; - - ret2D = textureFootprintLodNV(sample2D, P2, lod, granularity, true, fp2D); - anchor2D += fp2D.anchor; - offset2D += fp2D.offset; - mask2D += fp2D.mask; - lod2D += fp2D.lod; - granularity2D += fp2D.granularity; - - ret2D = textureFootprintGradNV(sample2D, P2, dx, dy, granularity, true, fp2D); - anchor2D += fp2D.anchor; - offset2D += fp2D.offset; - mask2D += fp2D.mask; - lod2D += fp2D.lod; - granularity2D += fp2D.granularity; - - ret2D = textureFootprintGradClampNV(sample2D, P2, dx, dy, lodClamp, granularity, true, fp2D); - anchor2D += fp2D.anchor; - offset2D += fp2D.offset; - mask2D += fp2D.mask; - lod2D += fp2D.lod; - granularity2D += fp2D.granularity; - - ret3D = textureFootprintNV(sample3D, P3, granularity, true, fp3D); - anchor3D = fp3D.anchor; - offset3D = fp3D.offset; - mask3D = fp3D.mask; - lod3D = fp3D.lod; - granularity3D = fp3D.granularity; - - ret3D = textureFootprintNV(sample3D, P3, granularity, true, fp3D, bias); - anchor3D += fp3D.anchor; - offset3D += fp3D.offset; - mask3D += fp3D.mask; - lod3D += fp3D.lod; - granularity3D += fp3D.granularity; - - ret3D = textureFootprintClampNV(sample3D, P3, lodClamp, granularity, true, fp3D); - anchor3D += fp3D.anchor; - offset3D += fp3D.offset; - mask3D += fp3D.mask; - lod3D += fp3D.lod; - granularity3D += fp3D.granularity; - - ret3D = textureFootprintClampNV(sample3D, P3, lodClamp, granularity, true, fp3D, bias); - anchor3D += fp3D.anchor; - offset3D += fp3D.offset; - mask3D += fp3D.mask; - lod3D += fp3D.lod; - granularity3D += fp3D.granularity; - - ret3D = textureFootprintLodNV(sample3D, P3, lod, granularity, true, fp3D); - anchor3D += fp3D.anchor; - offset3D += fp3D.offset; - mask3D += fp3D.mask; - lod3D += fp3D.lod; - granularity3D += fp3D.granularity; -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.shaderStencilExport.frag b/deps/glslang/Test/spv.shaderStencilExport.frag deleted file mode 100644 index e3ad4d67..00000000 --- a/deps/glslang/Test/spv.shaderStencilExport.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 core - -#extension GL_ARB_shader_stencil_export: enable - -out int gl_FragStencilRefARB; - -void main() -{ - gl_FragStencilRefARB = 100; -} diff --git a/deps/glslang/Test/spv.shadingRate.frag b/deps/glslang/Test/spv.shadingRate.frag deleted file mode 100644 index 8fbd4baf..00000000 --- a/deps/glslang/Test/spv.shadingRate.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 - -#extension GL_NV_shading_rate_image : require - -layout (location = 0) out vec2 FragmentSize; -layout (location = 2) out int InvocationsPerPixel; - -void main () { - FragmentSize = gl_FragmentSizeNV; - InvocationsPerPixel = gl_InvocationsPerPixelNV; -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.shiftOps.frag b/deps/glslang/Test/spv.shiftOps.frag deleted file mode 100644 index 7fb937f4..00000000 --- a/deps/glslang/Test/spv.shiftOps.frag +++ /dev/null @@ -1,18 +0,0 @@ -#version 450 - -flat in int i1; -flat in uint u1; -flat in ivec3 i3; -flat in uvec3 u3; - -out ivec3 icolor; -out uvec3 ucolor; - -void main() -{ - icolor = i3 << u1; - icolor <<= 4u; - - ucolor = u3 >> i1; - ucolor >>= 5; -} diff --git a/deps/glslang/Test/spv.shortCircuit.frag b/deps/glslang/Test/spv.shortCircuit.frag deleted file mode 100644 index 4a626417..00000000 --- a/deps/glslang/Test/spv.shortCircuit.frag +++ /dev/null @@ -1,50 +0,0 @@ -#version 400 - -flat in ivec4 uiv4; -in vec4 uv4; -bool ub; -bool uba; -bvec4 ub41, ub42; -in float uf; -flat in int ui; - -out float of1; -out vec4 of4; - -bool foo() { ++of1; return of1 > 10.0; } - -void main() -{ - of1 = 0.0; - of4 = vec4(0.0); - - if (ub || ui > 2) // not worth short circuiting - ++of1; - - if (ub && !uba) // not worth short circuiting - ++of1; - - if (ub || foo()) // must short circuit - ++of1; - - if (ub && foo()) // must short circuit - ++of1; - - if (foo() || ub) // not worth short circuiting - ++of1; - - if (foo() && ub) // not worth short circuiting - ++of1; - - if (ub || ++of1 > 1.0) // must short circuit - ++of4; - - if (++of1 > 1.0 || ub) // not worth short circuiting - ++of4; - - if (ub || sin(uf) * 4.0 > of1) // worth short circuiting - ++of1; - - if (ub && sin(uf) * 4.0 > of1) // worth short circuiting - ++of1; -} diff --git a/deps/glslang/Test/spv.simpleFunctionCall.frag b/deps/glslang/Test/spv.simpleFunctionCall.frag deleted file mode 100644 index 496bb93d..00000000 --- a/deps/glslang/Test/spv.simpleFunctionCall.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 150 - -in vec4 BaseColor; - -vec4 foo() -{ - return BaseColor; -} - -void main() -{ - gl_FragColor = foo(); -} diff --git a/deps/glslang/Test/spv.simpleMat.vert b/deps/glslang/Test/spv.simpleMat.vert deleted file mode 100644 index 897a8986..00000000 --- a/deps/glslang/Test/spv.simpleMat.vert +++ /dev/null @@ -1,19 +0,0 @@ -#version 330 - -varying mat4 mvp; - -in vec4 v; -in mat3 am3; -in mat4 arraym[3]; - -out float f; -out vec4 glPos; -//out mat4 mout[2]; - -void main() -{ - //needs complex output blocks to work: gl_Position = mvp * v; - glPos = mvp * v; - f = am3[2][1] + arraym[1][2][3]; - //mout[1] = arraym[2]; -} diff --git a/deps/glslang/Test/spv.smBuiltins.frag b/deps/glslang/Test/spv.smBuiltins.frag deleted file mode 100644 index b676e604..00000000 --- a/deps/glslang/Test/spv.smBuiltins.frag +++ /dev/null @@ -1,7 +0,0 @@ -#version 450 -#extension GL_NV_shader_sm_builtins: enable -layout(location = 0) out uvec4 data; -void main (void) -{ - data = uvec4(gl_WarpsPerSMNV, gl_SMCountNV, gl_WarpIDNV, gl_SMIDNV); -} diff --git a/deps/glslang/Test/spv.smBuiltins.vert b/deps/glslang/Test/spv.smBuiltins.vert deleted file mode 100644 index 0b3db021..00000000 --- a/deps/glslang/Test/spv.smBuiltins.vert +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 -#extension GL_NV_shader_sm_builtins: enable -layout(set = 0, binding = 0, std430) buffer Output -{ - uvec4 result[]; -}; - -void main (void) -{ - result[gl_VertexIndex] = uvec4(gl_WarpsPerSMNV, gl_SMCountNV, gl_WarpIDNV, gl_SMIDNV); -} diff --git a/deps/glslang/Test/spv.sparseTexture.frag b/deps/glslang/Test/spv.sparseTexture.frag deleted file mode 100644 index 50ea2725..00000000 --- a/deps/glslang/Test/spv.sparseTexture.frag +++ /dev/null @@ -1,90 +0,0 @@ -#version 450 -#extension GL_ARB_sparse_texture2: enable - -uniform sampler2D s2D; -uniform sampler3D s3D; -uniform sampler2DShadow s2DShadow; -uniform samplerCubeShadow sCubeShadow; -uniform sampler2DArrayShadow s2DArrayShadow; -uniform sampler2DRectShadow s2DRectShadow; -uniform samplerCubeArrayShadow sCubeArrayShadow; -uniform sampler2DMS s2DMS; - -uniform isamplerCube isCube; -uniform isampler2DArray is2DArray; - -uniform usamplerCubeArray usCubeArray; -uniform usampler2DRect us2DRect; - -layout(rgba32f) uniform image2D i2D; -layout(rgba32i) uniform iimage3D ii3D; -layout(rgba32f) uniform image2DMS i2DMS; - -in vec2 c2; -in vec3 c3; -in vec4 c4; - -in flat ivec2 ic2; -in flat ivec3 ic3; - -out vec4 outColor; - -void main() -{ - int resident = 0; - vec4 texel = vec4(0.0); - ivec4 itexel = ivec4(0); - uvec4 utexel = uvec4(0); - - resident |= sparseTextureARB(s2D, c2, texel); - resident |= sparseTextureARB(s3D, c3, texel, 2.0); - resident |= sparseTextureARB(isCube, c3, itexel); - resident |= sparseTextureARB(s2DShadow, c3, texel.x); - resident |= sparseTextureARB(sCubeArrayShadow, c4, 1.0, texel.x); - - resident |= sparseTextureLodARB(s2D, c2, 2.0, texel); - resident |= sparseTextureLodARB(usCubeArray, c4, 1.0, utexel); - resident |= sparseTextureLodARB(s2DShadow, c3, 2.0, texel.y); - - resident |= sparseTextureOffsetARB(s3D, c3, ivec3(2), texel, 2.0); - resident |= sparseTextureOffsetARB(us2DRect, c2, ivec2(3), utexel); - resident |= sparseTextureOffsetARB(s2DArrayShadow, c4, ivec2(5), texel.z); - - resident |= sparseTexelFetchARB(s2D, ivec2(c2), 2, texel); - resident |= sparseTexelFetchARB(us2DRect, ivec2(c2), utexel); - resident |= sparseTexelFetchARB(s2DMS, ivec2(c2), 4, texel); - - resident |= sparseTexelFetchOffsetARB(s3D, ivec3(c3), 2, ivec3(4), texel); - resident |= sparseTexelFetchOffsetARB(us2DRect, ivec2(c2), ivec2(3), utexel); - - resident |= sparseTextureLodOffsetARB(s2D, c2, 2.0, ivec2(5), texel); - resident |= sparseTextureLodOffsetARB(is2DArray, c3, 2.0, ivec2(6), itexel); - resident |= sparseTextureLodOffsetARB(s2DShadow, c3, 2.0, ivec2(7), texel.z); - - resident |= sparseTextureGradARB(s3D, c3, c3, c3, texel); - resident |= sparseTextureGradARB(sCubeShadow, c4, c3, c3, texel.y); - resident |= sparseTextureGradARB(usCubeArray, c4, c3, c3, utexel); - - resident |= sparseTextureGradOffsetARB(s2D, c2, c2, c2, ivec2(5), texel); - resident |= sparseTextureGradOffsetARB(s2DRectShadow, c3, c2, c2, ivec2(6), texel.w); - resident |= sparseTextureGradOffsetARB(is2DArray, c3, c2, c2, ivec2(2), itexel); - - resident |= sparseTextureGatherARB(s2D, c2, texel); - resident |= sparseTextureGatherARB(is2DArray, c3, itexel, 2); - resident |= sparseTextureGatherARB(s2DArrayShadow, c3, 2.0, texel); - - resident |= sparseTextureGatherOffsetARB(s2D, c2, ivec2(4), texel); - resident |= sparseTextureGatherOffsetARB(is2DArray, c3, ivec2(5), itexel, 2); - resident |= sparseTextureGatherOffsetARB(s2DRectShadow, c2, 2.0, ivec2(7), texel); - - const ivec2 constOffsets[4] = ivec2[4](ivec2(1,2), ivec2(3,4), ivec2(15,16), ivec2(-2,0)); - resident |= sparseTextureGatherOffsetsARB(s2D, c2, constOffsets, texel); - resident |= sparseTextureGatherOffsetsARB(is2DArray, c3, constOffsets, itexel, 2); - resident |= sparseTextureGatherOffsetsARB(s2DRectShadow, c2, 2.0, constOffsets, texel); - - resident |= sparseImageLoadARB(i2D, ic2, texel); - resident |= sparseImageLoadARB(ii3D, ic3, itexel); - resident |= sparseImageLoadARB(i2DMS, ic2, 3, texel); - - outColor = sparseTexelsResidentARB(resident) ? texel : vec4(itexel) + vec4(utexel); -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.sparseTextureClamp.frag b/deps/glslang/Test/spv.sparseTextureClamp.frag deleted file mode 100644 index 97317938..00000000 --- a/deps/glslang/Test/spv.sparseTextureClamp.frag +++ /dev/null @@ -1,70 +0,0 @@ -#version 450 -#extension GL_ARB_sparse_texture_clamp: enable - -uniform sampler2D s2D; -uniform sampler3D s3D; -uniform sampler2DShadow s2DShadow; -uniform samplerCubeShadow sCubeShadow; -uniform sampler2DArrayShadow s2DArrayShadow; -uniform sampler2DRectShadow s2DRectShadow; -uniform samplerCubeArrayShadow sCubeArrayShadow; - -uniform isamplerCube isCube; -uniform isampler2DArray is2DArray; - -uniform usamplerCubeArray usCubeArray; -uniform usampler2DRect us2DRect; - -in vec2 c2; -in vec3 c3; -in vec4 c4; - -in float lodClamp; - -out vec4 outColor; - -void main() -{ - int resident = 0; - vec4 texel = vec4(0.0); - ivec4 itexel = ivec4(0); - uvec4 utexel = uvec4(0); - - resident |= sparseTextureClampARB(s2D, c2, lodClamp, texel); - resident |= sparseTextureClampARB(s3D, c3, lodClamp, texel, 2.0); - resident |= sparseTextureClampARB(isCube, c3, lodClamp, itexel); - resident |= sparseTextureClampARB(s2DShadow, c3, lodClamp, texel.x); - resident |= sparseTextureClampARB(sCubeArrayShadow, c4, 1.0, lodClamp, texel.x); - - texel += textureClampARB(s2D, c2, lodClamp); - texel += textureClampARB(s3D, c3, lodClamp, 2.0); - itexel += textureClampARB(isCube, c3, lodClamp); - texel.x += textureClampARB(s2DShadow, c3, lodClamp); - texel.x += textureClampARB(sCubeArrayShadow, c4, 1.0, lodClamp); - - resident |= sparseTextureOffsetClampARB(s3D, c3, ivec3(2), lodClamp, texel, 2.0); - resident |= sparseTextureOffsetClampARB(us2DRect, c2, ivec2(3), lodClamp, utexel); - resident |= sparseTextureOffsetClampARB(s2DArrayShadow, c4, ivec2(5), lodClamp, texel.z); - - texel += textureOffsetClampARB(s3D, c3, ivec3(2), lodClamp, 2.0); - utexel += textureOffsetClampARB(us2DRect, c2, ivec2(3), lodClamp); - texel.z += textureOffsetClampARB(s2DArrayShadow, c4, ivec2(5), lodClamp); - - resident |= sparseTextureGradClampARB(s3D, c3, c3, c3, lodClamp, texel); - resident |= sparseTextureGradClampARB(sCubeShadow, c4, c3, c3, lodClamp, texel.y); - resident |= sparseTextureGradClampARB(usCubeArray, c4, c3, c3, lodClamp, utexel); - - texel += textureGradClampARB(s3D, c3, c3, c3, lodClamp); - texel.y += textureGradClampARB(sCubeShadow, c4, c3, c3, lodClamp); - utexel += textureGradClampARB(usCubeArray, c4, c3, c3, lodClamp); - - resident |= sparseTextureGradOffsetClampARB(s2D, c2, c2, c2, ivec2(5), lodClamp, texel); - resident |= sparseTextureGradOffsetClampARB(s2DRectShadow, c3, c2, c2, ivec2(6), lodClamp, texel.w); - resident |= sparseTextureGradOffsetClampARB(is2DArray, c3, c2, c2, ivec2(2), lodClamp, itexel); - - texel += textureGradOffsetClampARB(s2D, c2, c2, c2, ivec2(5), lodClamp); - texel.w += textureGradOffsetClampARB(s2DRectShadow, c3, c2, c2, ivec2(6), lodClamp); - itexel += textureGradOffsetClampARB(is2DArray, c3, c2, c2, ivec2(2), lodClamp); - - outColor = sparseTexelsResidentARB(resident) ? texel : vec4(itexel) + vec4(utexel); -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.specConst.vert b/deps/glslang/Test/spv.specConst.vert deleted file mode 100644 index 3ea24980..00000000 --- a/deps/glslang/Test/spv.specConst.vert +++ /dev/null @@ -1,8 +0,0 @@ -#version 450 - -layout(constant_id = 11) const int a = 8; - -void main() -{ - gl_Position = vec4(1.0) / a; -} diff --git a/deps/glslang/Test/spv.specConstArrayCheck.vert b/deps/glslang/Test/spv.specConstArrayCheck.vert deleted file mode 100644 index 9f0dc0b0..00000000 --- a/deps/glslang/Test/spv.specConstArrayCheck.vert +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 - -layout(constant_id = 0) const uint a = 1; -layout(constant_id = 1) const uint b = 2; -layout(location = 0) out uint o; - -void main() { - uint arr1[a+a]; - uint arr2[b]; - o = arr1[1]; - o = arr2[1]; - o = arr1[6]; - o = arr2[6]; -} diff --git a/deps/glslang/Test/spv.specConstant.comp b/deps/glslang/Test/spv.specConstant.comp deleted file mode 100644 index ae8ae19d..00000000 --- a/deps/glslang/Test/spv.specConstant.comp +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 - -layout(local_size_x_id = 18, local_size_z_id = 19) in; -layout(local_size_x = 32, local_size_y = 32) in; - -buffer bn { - uint a; -} bi; - -void main() -{ - bi.a = gl_WorkGroupSize.x * gl_WorkGroupSize.y * gl_WorkGroupSize.z; -} diff --git a/deps/glslang/Test/spv.specConstant.float16.comp b/deps/glslang/Test/spv.specConstant.float16.comp deleted file mode 100644 index d729cb97..00000000 --- a/deps/glslang/Test/spv.specConstant.float16.comp +++ /dev/null @@ -1,18 +0,0 @@ -#version 450 -#extension GL_EXT_shader_explicit_arithmetic_types_float16 : require - -layout(constant_id = 1) const float16_t sc0 = 9.5hf; -layout(constant_id = 2) const float16_t sc1 = -14.25hf; - -layout (set = 0, binding = 0, std430) writeonly buffer Output { - float16_t r0; - float16_t r1; -} sb_out; - - -void main (void) -{ - sb_out.r0 = sc0; - sb_out.r1 = sc1; -} - diff --git a/deps/glslang/Test/spv.specConstant.int16.comp b/deps/glslang/Test/spv.specConstant.int16.comp deleted file mode 100644 index 80f63008..00000000 --- a/deps/glslang/Test/spv.specConstant.int16.comp +++ /dev/null @@ -1,18 +0,0 @@ -#version 450 -#extension GL_EXT_shader_explicit_arithmetic_types_int16 : require - -layout(constant_id = 1) const int16_t sc0 = 20000s; -layout(constant_id = 2) const int16_t sc1 = -20000s; - -layout (set = 0, binding = 0, std430) writeonly buffer Output { - int16_t r0; - int16_t r1; -} sb_out; - - -void main (void) -{ - sb_out.r0 = sc0; - sb_out.r1 = sc1; -} - diff --git a/deps/glslang/Test/spv.specConstant.int8.comp b/deps/glslang/Test/spv.specConstant.int8.comp deleted file mode 100644 index e2b63189..00000000 --- a/deps/glslang/Test/spv.specConstant.int8.comp +++ /dev/null @@ -1,18 +0,0 @@ -#version 450 -#extension GL_EXT_shader_explicit_arithmetic_types_int8 : require - -layout(constant_id = 1) const int8_t sc0 = int8_t(127); -layout(constant_id = 2) const int8_t sc1 = int8_t(-127); - -layout (set = 0, binding = 0, std430) writeonly buffer Output { - int8_t r0; - int8_t r1; -} sb_out; - - -void main (void) -{ - sb_out.r0 = sc0; - sb_out.r1 = sc1; -} - diff --git a/deps/glslang/Test/spv.specConstant.vert b/deps/glslang/Test/spv.specConstant.vert deleted file mode 100644 index 9813bf5f..00000000 --- a/deps/glslang/Test/spv.specConstant.vert +++ /dev/null @@ -1,51 +0,0 @@ -#version 400 - -layout(constant_id = 16) const int arraySize = 5; -in vec4 ucol[arraySize]; - -layout(constant_id = 17) const bool spBool = true; -layout(constant_id = 18) const float spFloat = 3.14; -layout(constant_id = 19) const double spDouble = 3.1415926535897932384626433832795; -layout(constant_id = 22) const uint scale = 2; - -layout(constant_id = 24) gl_MaxImageUnits; - -out vec4 color; -out int size; - -// parameter should be considered same type as ucol -void foo(vec4 p[arraySize]); - -void main() -{ - color = ucol[2]; - size = arraySize; - if (spBool) - color *= scale; - color += float(spDouble / spFloat); - - foo(ucol); -} - -layout(constant_id = 116) const int dupArraySize = 12; -in vec4 dupUcol[dupArraySize]; - -layout(constant_id = 117) const bool spDupBool = true; -layout(constant_id = 118) const float spDupFloat = 3.14; -layout(constant_id = 119) const double spDupDouble = 3.1415926535897932384626433832795; -layout(constant_id = 122) const uint dupScale = 2; - -void foo(vec4 p[arraySize]) -{ - color += dupUcol[2]; - size += dupArraySize; - if (spDupBool) - color *= dupScale; - color += float(spDupDouble / spDupFloat); -} - -int builtin_spec_constant() -{ - int result = gl_MaxImageUnits; - return result; -} diff --git a/deps/glslang/Test/spv.specConstantComposite.vert b/deps/glslang/Test/spv.specConstantComposite.vert deleted file mode 100644 index d9d07a3e..00000000 --- a/deps/glslang/Test/spv.specConstantComposite.vert +++ /dev/null @@ -1,98 +0,0 @@ -#version 450 - -// constant_id specified scalar spec constants -layout(constant_id = 200) const int spec_int = 3; -layout(constant_id = 201) const float spec_float = 3.14; -layout(constant_id = 202) const - double spec_double = 3.1415926535897932384626433832795; -layout(constant_id = 203) const bool spec_bool = true; - -// const float cast_spec_float = float(spec_float); - -// Flat struct -struct flat_struct { - int i; - float f; - double d; - bool b; -}; - -// Nesting struct -struct nesting_struct { - flat_struct nested; - vec4 v; - int i; -}; - -// Expect OpSpecConstantComposite -// Flat struct initializer -//const flat_struct spec_flat_struct_all_spec = {spec_int, spec_float, -// spec_double, spec_bool}; -//const flat_struct spec_flat_struct_partial_spec = {30, 30.14, spec_double, -// spec_bool}; - -// Nesting struct initializer -//const nesting_struct nesting_struct_ctor = { -// {spec_int, spec_float, spec_double, false}, -// vec4(0.1, 0.1, 0.1, 0.1), -// spec_int}; - -// Vector constructor -//const vec4 spec_vec4_all_spec = -// vec4(spec_float, spec_float, spec_float, spec_float); -//const vec4 spec_vec4_partial_spec = -// vec4(spec_float, spec_float, 300.14, 300.14); -//const vec4 spec_vec4_from_one_scalar = vec4(spec_float); - -// Matrix constructor -//const mat2x3 spec_mat2x3 = mat2x3(spec_float, spec_float, spec_float, 1.1, 2.2, 3.3); -//const mat2x3 spec_mat2x3_from_one_scalar = mat2x3(spec_float); - -// Struct nesting constructor -//const nesting_struct spec_nesting_struct_all_spec = { -// spec_flat_struct_all_spec, spec_vec4_all_spec, spec_int}; -//const nesting_struct spec_nesting_struct_partial_spec = { -// spec_flat_struct_partial_spec, spec_vec4_partial_spec, 3000}; - -//const float spec_float_array[5] = {spec_float, spec_float, 1.0, 2.0, 3.0}; -//const int spec_int_array[5] = {spec_int, spec_int, 1, 2, 30}; - -// global_vec4_array_with_spec_length is not a spec constant, but its array -// size is. When calling global_vec4_array_with_spec_length.length(), A -// TIntermSymbol Node should be returned, instead of a TIntermConstantUnion -// node which represents a known constant value. -in vec4 global_vec4_array_with_spec_length[spec_int]; - -out vec4 color; - -void refer_primary_spec_const() { - if (spec_bool) color *= spec_int; -} - -void refer_composite_spec_const() { - //color += spec_vec4_all_spec; - //color -= spec_vec4_partial_spec; -} - -void refer_copmosite_dot_dereference() { - //color *= spec_nesting_struct_all_spec.i; - //color += spec_vec4_all_spec.x; -} - -void refer_composite_bracket_dereference() { - //color -= spec_float_array[1]; - //color /= spec_int_array[spec_int_array[spec_int]]; -} - -int refer_spec_const_array_length() { - int len = global_vec4_array_with_spec_length.length(); - return len; -} - -void declare_spec_const_in_func() { - //const nesting_struct spec_const_declared_in_func = { - // spec_flat_struct_partial_spec, spec_vec4_partial_spec, 10}; - //color /= spec_const_declared_in_func.i; -} - -void main() {} diff --git a/deps/glslang/Test/spv.specConstantOperations.vert b/deps/glslang/Test/spv.specConstantOperations.vert deleted file mode 100644 index 93be12c5..00000000 --- a/deps/glslang/Test/spv.specConstantOperations.vert +++ /dev/null @@ -1,124 +0,0 @@ -#version 450 - -layout(constant_id = 200) const float sp_float = 3.1415926; -layout(constant_id = 201) const int sp_int = 10; -layout(constant_id = 202) const uint sp_uint = 100; -layout(constant_id = 203) const int sp_sint = -10; -layout(constant_id = 204) const double sp_double = 2.718281828459; - -// -// Scalars -// - -// float <-> double conversion -const float float_from_double = float(sp_double); -const double double_from_float = double(sp_float); - -// uint/int <-> bool conversion -const bool bool_from_int = bool(sp_int); -const bool bool_from_uint = bool(sp_uint); -const int int_from_bool = int(bool_from_int); -const uint uint_from_bool = uint(bool_from_int); - -// uint <-> int -const uint sp_uint_from_sint = uint(sp_sint); -const int sp_sint_from_uint = int(sp_uint); - -// Negate and Not -const int negate_int = -sp_int; -const int not_int = ~sp_int; - -// Add and Subtract -const int sp_int_add_two = sp_int + 2; -const int sp_int_add_two_sub_three = sp_int + 2 - 3; -const int sp_int_add_two_sub_four = sp_int_add_two - 4; - -// Mul, Div and Rem -const int sp_sint_mul_two = sp_sint * 2; -const uint sp_uint_mul_two = sp_uint * 2; -const int sp_sint_mul_two_div_five = sp_sint_mul_two / 5; -const uint sp_uint_mul_two_div_five = sp_uint_mul_two / 5; -const int sp_sint_rem_four = sp_sint % 4; -const uint sp_uint_rem_four = sp_uint % 4; -const int sp_sint_mul_three_div_five = sp_sint * 3 / 5; - -// Shift -const int sp_sint_shift_right_arithmetic = sp_sint >> 10; -const uint sp_uint_shift_right_arithmetic = sp_uint >> 20; -const int sp_sint_shift_left = sp_sint << 1; -const uint sp_uint_shift_left = sp_uint << 2; - -// Bitwise And, Or, Xor -const int sp_sint_or_256 = sp_sint | 0x100; -const uint sp_uint_xor_512 = sp_uint ^ 0x200; - -/* // Scalar comparison */ -const bool sp_int_lt_sp_sint = sp_int < sp_sint; -const bool sp_uint_equal_sp_uint = sp_uint == sp_uint; -const bool sp_int_gt_sp_sint = sp_int > sp_sint; - -// -// Vectors -// -const ivec4 iv = ivec4(20, 30, sp_int, sp_int); -const uvec4 uv = uvec4(sp_uint, sp_uint, -1, -2); -//const vec4 fv = vec4(sp_float, 1.25, sp_float, 1.25); - -// uint/int <-> bool conversion -const bvec4 bv_from_iv = bvec4(iv); -const bvec4 bv_from_uv = bvec4(uv); -const ivec4 iv_from_bv = ivec4(bv_from_iv); -const uvec4 uv_from_bv = uvec4(bv_from_iv); - -// uint <-> int -const uvec4 uv_from_iv = uvec4(iv); -const ivec4 iv_from_uv = ivec4(uv); - -// Negate and Not -const ivec4 not_iv = ~iv; -const ivec4 negate_iv = -iv; - -// Add and Subtract -const ivec4 iv_add_two = iv + 2; -const ivec4 iv_add_two_sub_three = iv + 2 - 3; -const ivec4 iv_add_two_sub_four = iv_add_two_sub_three - 4; - -// Mul, Div and Rem -const ivec4 iv_mul_two = iv * 2; -const ivec4 iv_mul_two_div_five = iv_mul_two / 5; -const ivec4 iv_rem_four = iv % 4; - -// Shift -const ivec4 iv_shift_right_arithmetic = iv >> 10; -const ivec4 iv_shift_left = iv << 2; - -// Bitwise And, Or, Xor -const ivec4 iv_or_1024 = iv | 0x400; -const uvec4 uv_xor_2048 = uv ^ 0x800; - -// Swizzles -const int iv_x = iv.x; -const ivec2 iv_yx = iv.yx; -const ivec3 iv_zyx = iv.zyx; -const ivec4 iv_yzxw = iv.yzxw; - -int non_const_array_size_from_spec_const() { - int array[sp_int + 2]; - for (int i = 0; i < sp_int + 2; i++) { - array[i] = 1023; - } - return array[sp_int + 1]; -} - -// ternary -layout(constant_id = 210) const int a = 4; -layout(constant_id = 211) const int b = 6; -layout(constant_id = 212) const bool c = true; -int ternayArray1[a > b ? a : b]; -const int t1 = c ? 13 : 17; -const int t2 = c ? a : 17; -const int t3 = true ? a : 17; -const int t4 = a > b ? 13 + a : 17 * b; -const vec2 v2 = !c ? vec2(1.0) : vec2(2.0); - -void main() {} diff --git a/deps/glslang/Test/spv.specTexture.frag b/deps/glslang/Test/spv.specTexture.frag deleted file mode 100644 index 7fd89f5e..00000000 --- a/deps/glslang/Test/spv.specTexture.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 - -layout(constant_id = 1) const int offs = 0; -layout(binding = 0) uniform sampler2D tex; -layout(location = 0) out vec4 color_out; - -void main(void) -{ - color_out = textureLodOffset(tex, vec2(0.0, 0.0), 0.0, ivec2(offs, offs)); -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.ssbo.autoassign.frag b/deps/glslang/Test/spv.ssbo.autoassign.frag deleted file mode 100644 index 073be453..00000000 --- a/deps/glslang/Test/spv.ssbo.autoassign.frag +++ /dev/null @@ -1,24 +0,0 @@ - -cbuffer TestCB -{ - uint W; - uint H; -}; - -struct BufType -{ - float4 va; - float4 vb; -}; - -StructuredBuffer < BufType > SB0; -RWStructuredBuffer < BufType > SB1; - -float4 main(float4 pos : POS) : SV_Target0 -{ - float4 vTmp = SB0[pos.y * W + pos.x].va + SB0[pos.y * W + pos.x].vb; - - vTmp += SB1[pos.y * W + pos.x].va + SB1[pos.y * W + pos.x].vb; - - return vTmp; -} diff --git a/deps/glslang/Test/spv.ssboAlias.frag b/deps/glslang/Test/spv.ssboAlias.frag deleted file mode 100644 index ed3d3e79..00000000 --- a/deps/glslang/Test/spv.ssboAlias.frag +++ /dev/null @@ -1,10 +0,0 @@ -AppendStructuredBuffer Buf1 : register(u1); -AppendStructuredBuffer Buf2 : register(u2); -AppendStructuredBuffer Buf3 : register(u1); - -float4 main() : SV_Target -{ - Buf1.Append(10u); - Buf2.Append(20u); - return float4(1.0, 3.0, 5.0, 1.0); -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.stereoViewRendering.tesc b/deps/glslang/Test/spv.stereoViewRendering.tesc deleted file mode 100644 index ec1076f8..00000000 --- a/deps/glslang/Test/spv.stereoViewRendering.tesc +++ /dev/null @@ -1,19 +0,0 @@ -#version 450 - -#extension GL_NV_viewport_array2 :require -#extension GL_NV_stereo_view_rendering : require - -layout(vertices = 4) out; - -out gl_PerVertex { - int gl_SecondaryViewportMaskNV[2]; - vec4 gl_SecondaryPositionNV; -} gl_out[4]; - -layout (viewport_relative, secondary_view_offset = 1) out highp int gl_Layer; - -void main() -{ - gl_out[gl_InvocationID].gl_SecondaryViewportMaskNV[0] = 1; - gl_out[gl_InvocationID].gl_SecondaryPositionNV = gl_in[1].gl_Position + gl_in[1].gl_SecondaryPositionNV; -} diff --git a/deps/glslang/Test/spv.stereoViewRendering.vert b/deps/glslang/Test/spv.stereoViewRendering.vert deleted file mode 100644 index fc7d52e2..00000000 --- a/deps/glslang/Test/spv.stereoViewRendering.vert +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -#extension GL_NV_viewport_array2 :require -#extension GL_NV_stereo_view_rendering : require - -layout (viewport_relative, secondary_view_offset = 2) out highp int gl_Layer; -void main() -{ - gl_SecondaryViewportMaskNV[0] = 1; - gl_SecondaryPositionNV = gl_Position; -} - diff --git a/deps/glslang/Test/spv.storageBuffer.vert b/deps/glslang/Test/spv.storageBuffer.vert deleted file mode 100644 index 6dd629e8..00000000 --- a/deps/glslang/Test/spv.storageBuffer.vert +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 - -#pragma use_storage_buffer - -uniform ub { - vec4 a; -} ubi; - -buffer bb { - vec4 b; -} bbi; - -void main() -{ - gl_Position = ubi.a + bbi.b; -} diff --git a/deps/glslang/Test/spv.structAssignment.frag b/deps/glslang/Test/spv.structAssignment.frag deleted file mode 100644 index ca95ec37..00000000 --- a/deps/glslang/Test/spv.structAssignment.frag +++ /dev/null @@ -1,41 +0,0 @@ -#version 140 - -precision mediump int; - -uniform sampler2D samp2D; -in mediump vec2 coord; - -struct lunarStruct1 { - int i; - float f; -}; - -struct lunarStruct2 { - int i; - float f; - lunarStruct1 s1_1; -}; - -struct lunarStruct3 { - lunarStruct2 s2_1; - int i; - float f; - lunarStruct1 s1_1; -}; - - -lunarStruct1 foo; -lunarStruct2 foo2; -lunarStruct3 foo3; - -void main() -{ - lunarStruct2 locals2; - - if (foo3.s2_1.i > 0) - locals2 = foo3.s2_1; - else - locals2 = foo2; - - gl_FragColor = locals2.s1_1.f * texture(samp2D, coord); -} diff --git a/deps/glslang/Test/spv.structDeref.frag b/deps/glslang/Test/spv.structDeref.frag deleted file mode 100644 index 11822cdc..00000000 --- a/deps/glslang/Test/spv.structDeref.frag +++ /dev/null @@ -1,71 +0,0 @@ -#version 140 - -uniform sampler2D samp2D; -in vec2 coord; - -struct s0 { - int i; -}; - -struct s00 { - s0 s0_0; -}; - -struct s1 { - int i; - float f; - s0 s0_1; -}; - -struct s2 { - int i; - float f; - s1 s1_1; -}; - -struct s3 { - s2[12] s2_1; - int i; - float f; - s1 s1_1; -}; - - -s0 foo0; -s1 foo1; -s2 foo2; -s3 foo3; - -s00 foo00; - -void main() -{ - s0 locals0; - s2 locals2; - s00 locals00; - - float[6] fArray; - - s1[10] locals1Array; - - if (foo3.s2_1[9].i > 0) { - locals2.f = 1.0; - locals2.s1_1 = s1(0, 1.0, s0(0)); - fArray = float[6]( 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); - locals1Array[6] = foo1; - locals0 = s0(0); - locals00 = s00(s0(0)); - } else { - locals2.f = coord.x; - locals2.s1_1 = s1(1, coord.y, foo0); - fArray = float[6]( 0.0, 1.0, 2.0, 3.0, 4.0, 5.0); - locals1Array[6] = locals2.s1_1; - locals0 = foo1.s0_1; - locals00 = foo00; - } - - if (locals0.i > 5) - locals0 = locals00.s0_0; - - gl_FragColor = (float(locals0.i) + locals1Array[6].f + fArray[3] + locals2.s1_1.f) * texture(samp2D, coord); -} diff --git a/deps/glslang/Test/spv.structure.frag b/deps/glslang/Test/spv.structure.frag deleted file mode 100644 index b81b9547..00000000 --- a/deps/glslang/Test/spv.structure.frag +++ /dev/null @@ -1,31 +0,0 @@ -#version 140 -uniform sampler2D samp2D; -in vec2 coord; - -struct lunarStruct1 { - int i; - float f[4]; - vec4 color[5]; -}; - -struct lunarStruct2 { - int i[5]; - float f; - lunarStruct1 s1_1[7]; -}; - -lunarStruct1 foo; -lunarStruct2 foo2[5]; - -void main() -{ - float scale = 0.0; - - if (foo2[3].i[4] > 0) - scale = foo2[3].s1_1[2].color[3].x; - else - scale = foo2[3].s1_1[2].f[3]; - - gl_FragColor = scale * texture(samp2D, coord); -} - diff --git a/deps/glslang/Test/spv.subgroup.frag b/deps/glslang/Test/spv.subgroup.frag deleted file mode 100644 index 520052fa..00000000 --- a/deps/glslang/Test/spv.subgroup.frag +++ /dev/null @@ -1,7 +0,0 @@ -#version 450 -#extension GL_KHR_shader_subgroup_basic: enable -layout(location = 0) out uvec4 data; -void main (void) -{ - data = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0); -} diff --git a/deps/glslang/Test/spv.subgroup.geom b/deps/glslang/Test/spv.subgroup.geom deleted file mode 100644 index 70e9dd48..00000000 --- a/deps/glslang/Test/spv.subgroup.geom +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 -#extension GL_KHR_shader_subgroup_basic: enable -layout(points) in; -layout(points, max_vertices = 1) out; -layout(set = 0, binding = 0, std430) buffer Output -{ - uvec4 result[]; -}; - -void main (void) -{ - result[gl_PrimitiveIDIn] = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0); -} diff --git a/deps/glslang/Test/spv.subgroup.tesc b/deps/glslang/Test/spv.subgroup.tesc deleted file mode 100644 index 63bf5e55..00000000 --- a/deps/glslang/Test/spv.subgroup.tesc +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 -#extension GL_KHR_shader_subgroup_basic: enable -layout(vertices=1) out; -layout(set = 0, binding = 0, std430) buffer Output -{ - uvec4 result[]; -}; - -void main (void) -{ - result[gl_PrimitiveID] = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0); -} diff --git a/deps/glslang/Test/spv.subgroup.tese b/deps/glslang/Test/spv.subgroup.tese deleted file mode 100644 index e504df79..00000000 --- a/deps/glslang/Test/spv.subgroup.tese +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 -#extension GL_KHR_shader_subgroup_basic: enable -layout(isolines) in; -layout(set = 0, binding = 0, std430) buffer Output -{ - uvec4 result[]; -}; - -void main (void) -{ - result[gl_PrimitiveID] = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0); -} diff --git a/deps/glslang/Test/spv.subgroup.vert b/deps/glslang/Test/spv.subgroup.vert deleted file mode 100644 index 779b7584..00000000 --- a/deps/glslang/Test/spv.subgroup.vert +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 -#extension GL_KHR_shader_subgroup_basic: enable -layout(set = 0, binding = 0, std430) buffer Output -{ - uvec4 result[]; -}; - -void main (void) -{ - result[gl_VertexIndex] = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0); -} diff --git a/deps/glslang/Test/spv.subgroupArithmetic.comp b/deps/glslang/Test/spv.subgroupArithmetic.comp deleted file mode 100644 index 6cc9337b..00000000 --- a/deps/glslang/Test/spv.subgroupArithmetic.comp +++ /dev/null @@ -1,393 +0,0 @@ -#version 450 - -#extension GL_KHR_shader_subgroup_arithmetic: enable - -layout (local_size_x = 8) in; - -layout(binding = 0) buffer Buffers -{ - vec4 f4; - ivec4 i4; - uvec4 u4; - dvec4 d4; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; - - data[invocation].f4.x = subgroupAdd(data[0].f4.x); - data[invocation].f4.xy = subgroupAdd(data[1].f4.xy); - data[invocation].f4.xyz = subgroupAdd(data[2].f4.xyz); - data[invocation].f4 = subgroupAdd(data[3].f4); - - data[invocation].i4.x = subgroupAdd(data[0].i4.x); - data[invocation].i4.xy = subgroupAdd(data[1].i4.xy); - data[invocation].i4.xyz = subgroupAdd(data[2].i4.xyz); - data[invocation].i4 = subgroupAdd(data[3].i4); - - data[invocation].u4.x = subgroupAdd(data[0].u4.x); - data[invocation].u4.xy = subgroupAdd(data[1].u4.xy); - data[invocation].u4.xyz = subgroupAdd(data[2].u4.xyz); - data[invocation].u4 = subgroupAdd(data[3].u4); - - data[invocation].d4.x = subgroupAdd(data[0].d4.x); - data[invocation].d4.xy = subgroupAdd(data[1].d4.xy); - data[invocation].d4.xyz = subgroupAdd(data[2].d4.xyz); - data[invocation].d4 = subgroupAdd(data[3].d4); - - data[invocation].f4.x = subgroupMul(data[0].f4.x); - data[invocation].f4.xy = subgroupMul(data[1].f4.xy); - data[invocation].f4.xyz = subgroupMul(data[2].f4.xyz); - data[invocation].f4 = subgroupMul(data[3].f4); - - data[invocation].i4.x = subgroupMul(data[0].i4.x); - data[invocation].i4.xy = subgroupMul(data[1].i4.xy); - data[invocation].i4.xyz = subgroupMul(data[2].i4.xyz); - data[invocation].i4 = subgroupMul(data[3].i4); - - data[invocation].u4.x = subgroupMul(data[0].u4.x); - data[invocation].u4.xy = subgroupMul(data[1].u4.xy); - data[invocation].u4.xyz = subgroupMul(data[2].u4.xyz); - data[invocation].u4 = subgroupMul(data[3].u4); - - data[invocation].d4.x = subgroupMul(data[0].d4.x); - data[invocation].d4.xy = subgroupMul(data[1].d4.xy); - data[invocation].d4.xyz = subgroupMul(data[2].d4.xyz); - data[invocation].d4 = subgroupMul(data[3].d4); - - data[invocation].f4.x = subgroupMin(data[0].f4.x); - data[invocation].f4.xy = subgroupMin(data[1].f4.xy); - data[invocation].f4.xyz = subgroupMin(data[2].f4.xyz); - data[invocation].f4 = subgroupMin(data[3].f4); - - data[invocation].i4.x = subgroupMin(data[0].i4.x); - data[invocation].i4.xy = subgroupMin(data[1].i4.xy); - data[invocation].i4.xyz = subgroupMin(data[2].i4.xyz); - data[invocation].i4 = subgroupMin(data[3].i4); - - data[invocation].u4.x = subgroupMin(data[0].u4.x); - data[invocation].u4.xy = subgroupMin(data[1].u4.xy); - data[invocation].u4.xyz = subgroupMin(data[2].u4.xyz); - data[invocation].u4 = subgroupMin(data[3].u4); - - data[invocation].d4.x = subgroupMin(data[0].d4.x); - data[invocation].d4.xy = subgroupMin(data[1].d4.xy); - data[invocation].d4.xyz = subgroupMin(data[2].d4.xyz); - data[invocation].d4 = subgroupMin(data[3].d4); - - data[invocation].f4.x = subgroupMax(data[0].f4.x); - data[invocation].f4.xy = subgroupMax(data[1].f4.xy); - data[invocation].f4.xyz = subgroupMax(data[2].f4.xyz); - data[invocation].f4 = subgroupMax(data[3].f4); - - data[invocation].i4.x = subgroupMax(data[0].i4.x); - data[invocation].i4.xy = subgroupMax(data[1].i4.xy); - data[invocation].i4.xyz = subgroupMax(data[2].i4.xyz); - data[invocation].i4 = subgroupMax(data[3].i4); - - data[invocation].u4.x = subgroupMax(data[0].u4.x); - data[invocation].u4.xy = subgroupMax(data[1].u4.xy); - data[invocation].u4.xyz = subgroupMax(data[2].u4.xyz); - data[invocation].u4 = subgroupMax(data[3].u4); - - data[invocation].d4.x = subgroupMax(data[0].d4.x); - data[invocation].d4.xy = subgroupMax(data[1].d4.xy); - data[invocation].d4.xyz = subgroupMax(data[2].d4.xyz); - data[invocation].d4 = subgroupMax(data[3].d4); - - data[invocation].i4.x = subgroupAnd(data[0].i4.x); - data[invocation].i4.xy = subgroupAnd(data[1].i4.xy); - data[invocation].i4.xyz = subgroupAnd(data[2].i4.xyz); - data[invocation].i4 = subgroupAnd(data[3].i4); - - data[invocation].u4.x = subgroupAnd(data[0].u4.x); - data[invocation].u4.xy = subgroupAnd(data[1].u4.xy); - data[invocation].u4.xyz = subgroupAnd(data[2].u4.xyz); - data[invocation].u4 = subgroupAnd(data[3].u4); - - data[invocation].i4.x = int(subgroupAnd(data[0].i4.x < 0)); - data[invocation].i4.xy = ivec2(subgroupAnd(lessThan(data[1].i4.xy, ivec2(0)))); - data[invocation].i4.xyz = ivec3(subgroupAnd(lessThan(data[1].i4.xyz, ivec3(0)))); - data[invocation].i4 = ivec4(subgroupAnd(lessThan(data[1].i4, ivec4(0)))); - - data[invocation].i4.x = subgroupOr(data[0].i4.x); - data[invocation].i4.xy = subgroupOr(data[1].i4.xy); - data[invocation].i4.xyz = subgroupOr(data[2].i4.xyz); - data[invocation].i4 = subgroupOr(data[3].i4); - - data[invocation].u4.x = subgroupOr(data[0].u4.x); - data[invocation].u4.xy = subgroupOr(data[1].u4.xy); - data[invocation].u4.xyz = subgroupOr(data[2].u4.xyz); - data[invocation].u4 = subgroupOr(data[3].u4); - - data[invocation].i4.x = int(subgroupOr(data[0].i4.x < 0)); - data[invocation].i4.xy = ivec2(subgroupOr(lessThan(data[1].i4.xy, ivec2(0)))); - data[invocation].i4.xyz = ivec3(subgroupOr(lessThan(data[1].i4.xyz, ivec3(0)))); - data[invocation].i4 = ivec4(subgroupOr(lessThan(data[1].i4, ivec4(0)))); - - data[invocation].i4.x = subgroupXor(data[0].i4.x); - data[invocation].i4.xy = subgroupXor(data[1].i4.xy); - data[invocation].i4.xyz = subgroupXor(data[2].i4.xyz); - data[invocation].i4 = subgroupXor(data[3].i4); - - data[invocation].u4.x = subgroupXor(data[0].u4.x); - data[invocation].u4.xy = subgroupXor(data[1].u4.xy); - data[invocation].u4.xyz = subgroupXor(data[2].u4.xyz); - data[invocation].u4 = subgroupXor(data[3].u4); - - data[invocation].i4.x = int(subgroupXor(data[0].i4.x < 0)); - data[invocation].i4.xy = ivec2(subgroupXor(lessThan(data[1].i4.xy, ivec2(0)))); - data[invocation].i4.xyz = ivec3(subgroupXor(lessThan(data[1].i4.xyz, ivec3(0)))); - data[invocation].i4 = ivec4(subgroupXor(lessThan(data[1].i4, ivec4(0)))); - - data[invocation].f4.x = subgroupInclusiveAdd(data[0].f4.x); - data[invocation].f4.xy = subgroupInclusiveAdd(data[1].f4.xy); - data[invocation].f4.xyz = subgroupInclusiveAdd(data[2].f4.xyz); - data[invocation].f4 = subgroupInclusiveAdd(data[3].f4); - - data[invocation].i4.x = subgroupInclusiveAdd(data[0].i4.x); - data[invocation].i4.xy = subgroupInclusiveAdd(data[1].i4.xy); - data[invocation].i4.xyz = subgroupInclusiveAdd(data[2].i4.xyz); - data[invocation].i4 = subgroupInclusiveAdd(data[3].i4); - - data[invocation].u4.x = subgroupInclusiveAdd(data[0].u4.x); - data[invocation].u4.xy = subgroupInclusiveAdd(data[1].u4.xy); - data[invocation].u4.xyz = subgroupInclusiveAdd(data[2].u4.xyz); - data[invocation].u4 = subgroupInclusiveAdd(data[3].u4); - - data[invocation].d4.x = subgroupInclusiveAdd(data[0].d4.x); - data[invocation].d4.xy = subgroupInclusiveAdd(data[1].d4.xy); - data[invocation].d4.xyz = subgroupInclusiveAdd(data[2].d4.xyz); - data[invocation].d4 = subgroupInclusiveAdd(data[3].d4); - - data[invocation].f4.x = subgroupInclusiveMul(data[0].f4.x); - data[invocation].f4.xy = subgroupInclusiveMul(data[1].f4.xy); - data[invocation].f4.xyz = subgroupInclusiveMul(data[2].f4.xyz); - data[invocation].f4 = subgroupInclusiveMul(data[3].f4); - - data[invocation].i4.x = subgroupInclusiveMul(data[0].i4.x); - data[invocation].i4.xy = subgroupInclusiveMul(data[1].i4.xy); - data[invocation].i4.xyz = subgroupInclusiveMul(data[2].i4.xyz); - data[invocation].i4 = subgroupInclusiveMul(data[3].i4); - - data[invocation].u4.x = subgroupInclusiveMul(data[0].u4.x); - data[invocation].u4.xy = subgroupInclusiveMul(data[1].u4.xy); - data[invocation].u4.xyz = subgroupInclusiveMul(data[2].u4.xyz); - data[invocation].u4 = subgroupInclusiveMul(data[3].u4); - - data[invocation].d4.x = subgroupInclusiveMul(data[0].d4.x); - data[invocation].d4.xy = subgroupInclusiveMul(data[1].d4.xy); - data[invocation].d4.xyz = subgroupInclusiveMul(data[2].d4.xyz); - data[invocation].d4 = subgroupInclusiveMul(data[3].d4); - - data[invocation].f4.x = subgroupInclusiveMin(data[0].f4.x); - data[invocation].f4.xy = subgroupInclusiveMin(data[1].f4.xy); - data[invocation].f4.xyz = subgroupInclusiveMin(data[2].f4.xyz); - data[invocation].f4 = subgroupInclusiveMin(data[3].f4); - - data[invocation].i4.x = subgroupInclusiveMin(data[0].i4.x); - data[invocation].i4.xy = subgroupInclusiveMin(data[1].i4.xy); - data[invocation].i4.xyz = subgroupInclusiveMin(data[2].i4.xyz); - data[invocation].i4 = subgroupInclusiveMin(data[3].i4); - - data[invocation].u4.x = subgroupInclusiveMin(data[0].u4.x); - data[invocation].u4.xy = subgroupInclusiveMin(data[1].u4.xy); - data[invocation].u4.xyz = subgroupInclusiveMin(data[2].u4.xyz); - data[invocation].u4 = subgroupInclusiveMin(data[3].u4); - - data[invocation].d4.x = subgroupInclusiveMin(data[0].d4.x); - data[invocation].d4.xy = subgroupInclusiveMin(data[1].d4.xy); - data[invocation].d4.xyz = subgroupInclusiveMin(data[2].d4.xyz); - data[invocation].d4 = subgroupInclusiveMin(data[3].d4); - - data[invocation].f4.x = subgroupInclusiveMax(data[0].f4.x); - data[invocation].f4.xy = subgroupInclusiveMax(data[1].f4.xy); - data[invocation].f4.xyz = subgroupInclusiveMax(data[2].f4.xyz); - data[invocation].f4 = subgroupInclusiveMax(data[3].f4); - - data[invocation].i4.x = subgroupInclusiveMax(data[0].i4.x); - data[invocation].i4.xy = subgroupInclusiveMax(data[1].i4.xy); - data[invocation].i4.xyz = subgroupInclusiveMax(data[2].i4.xyz); - data[invocation].i4 = subgroupInclusiveMax(data[3].i4); - - data[invocation].u4.x = subgroupInclusiveMax(data[0].u4.x); - data[invocation].u4.xy = subgroupInclusiveMax(data[1].u4.xy); - data[invocation].u4.xyz = subgroupInclusiveMax(data[2].u4.xyz); - data[invocation].u4 = subgroupInclusiveMax(data[3].u4); - - data[invocation].d4.x = subgroupInclusiveMax(data[0].d4.x); - data[invocation].d4.xy = subgroupInclusiveMax(data[1].d4.xy); - data[invocation].d4.xyz = subgroupInclusiveMax(data[2].d4.xyz); - data[invocation].d4 = subgroupInclusiveMax(data[3].d4); - - data[invocation].i4.x = subgroupInclusiveAnd(data[0].i4.x); - data[invocation].i4.xy = subgroupInclusiveAnd(data[1].i4.xy); - data[invocation].i4.xyz = subgroupInclusiveAnd(data[2].i4.xyz); - data[invocation].i4 = subgroupInclusiveAnd(data[3].i4); - - data[invocation].u4.x = subgroupInclusiveAnd(data[0].u4.x); - data[invocation].u4.xy = subgroupInclusiveAnd(data[1].u4.xy); - data[invocation].u4.xyz = subgroupInclusiveAnd(data[2].u4.xyz); - data[invocation].u4 = subgroupInclusiveAnd(data[3].u4); - - data[invocation].i4.x = int(subgroupInclusiveAnd(data[0].i4.x < 0)); - data[invocation].i4.xy = ivec2(subgroupInclusiveAnd(lessThan(data[1].i4.xy, ivec2(0)))); - data[invocation].i4.xyz = ivec3(subgroupInclusiveAnd(lessThan(data[1].i4.xyz, ivec3(0)))); - data[invocation].i4 = ivec4(subgroupInclusiveAnd(lessThan(data[1].i4, ivec4(0)))); - - data[invocation].i4.x = subgroupInclusiveOr(data[0].i4.x); - data[invocation].i4.xy = subgroupInclusiveOr(data[1].i4.xy); - data[invocation].i4.xyz = subgroupInclusiveOr(data[2].i4.xyz); - data[invocation].i4 = subgroupInclusiveOr(data[3].i4); - - data[invocation].u4.x = subgroupInclusiveOr(data[0].u4.x); - data[invocation].u4.xy = subgroupInclusiveOr(data[1].u4.xy); - data[invocation].u4.xyz = subgroupInclusiveOr(data[2].u4.xyz); - data[invocation].u4 = subgroupInclusiveOr(data[3].u4); - - data[invocation].i4.x = int(subgroupInclusiveOr(data[0].i4.x < 0)); - data[invocation].i4.xy = ivec2(subgroupInclusiveOr(lessThan(data[1].i4.xy, ivec2(0)))); - data[invocation].i4.xyz = ivec3(subgroupInclusiveOr(lessThan(data[1].i4.xyz, ivec3(0)))); - data[invocation].i4 = ivec4(subgroupInclusiveOr(lessThan(data[1].i4, ivec4(0)))); - - data[invocation].i4.x = subgroupInclusiveXor(data[0].i4.x); - data[invocation].i4.xy = subgroupInclusiveXor(data[1].i4.xy); - data[invocation].i4.xyz = subgroupInclusiveXor(data[2].i4.xyz); - data[invocation].i4 = subgroupInclusiveXor(data[3].i4); - - data[invocation].u4.x = subgroupInclusiveXor(data[0].u4.x); - data[invocation].u4.xy = subgroupInclusiveXor(data[1].u4.xy); - data[invocation].u4.xyz = subgroupInclusiveXor(data[2].u4.xyz); - data[invocation].u4 = subgroupInclusiveXor(data[3].u4); - - data[invocation].i4.x = int(subgroupInclusiveXor(data[0].i4.x < 0)); - data[invocation].i4.xy = ivec2(subgroupInclusiveXor(lessThan(data[1].i4.xy, ivec2(0)))); - data[invocation].i4.xyz = ivec3(subgroupInclusiveXor(lessThan(data[1].i4.xyz, ivec3(0)))); - data[invocation].i4 = ivec4(subgroupInclusiveXor(lessThan(data[1].i4, ivec4(0)))); - - data[invocation].f4.x = subgroupExclusiveAdd(data[0].f4.x); - data[invocation].f4.xy = subgroupExclusiveAdd(data[1].f4.xy); - data[invocation].f4.xyz = subgroupExclusiveAdd(data[2].f4.xyz); - data[invocation].f4 = subgroupExclusiveAdd(data[3].f4); - - data[invocation].i4.x = subgroupExclusiveAdd(data[0].i4.x); - data[invocation].i4.xy = subgroupExclusiveAdd(data[1].i4.xy); - data[invocation].i4.xyz = subgroupExclusiveAdd(data[2].i4.xyz); - data[invocation].i4 = subgroupExclusiveAdd(data[3].i4); - - data[invocation].u4.x = subgroupExclusiveAdd(data[0].u4.x); - data[invocation].u4.xy = subgroupExclusiveAdd(data[1].u4.xy); - data[invocation].u4.xyz = subgroupExclusiveAdd(data[2].u4.xyz); - data[invocation].u4 = subgroupExclusiveAdd(data[3].u4); - - data[invocation].d4.x = subgroupExclusiveAdd(data[0].d4.x); - data[invocation].d4.xy = subgroupExclusiveAdd(data[1].d4.xy); - data[invocation].d4.xyz = subgroupExclusiveAdd(data[2].d4.xyz); - data[invocation].d4 = subgroupExclusiveAdd(data[3].d4); - - data[invocation].f4.x = subgroupExclusiveMul(data[0].f4.x); - data[invocation].f4.xy = subgroupExclusiveMul(data[1].f4.xy); - data[invocation].f4.xyz = subgroupExclusiveMul(data[2].f4.xyz); - data[invocation].f4 = subgroupExclusiveMul(data[3].f4); - - data[invocation].i4.x = subgroupExclusiveMul(data[0].i4.x); - data[invocation].i4.xy = subgroupExclusiveMul(data[1].i4.xy); - data[invocation].i4.xyz = subgroupExclusiveMul(data[2].i4.xyz); - data[invocation].i4 = subgroupExclusiveMul(data[3].i4); - - data[invocation].u4.x = subgroupExclusiveMul(data[0].u4.x); - data[invocation].u4.xy = subgroupExclusiveMul(data[1].u4.xy); - data[invocation].u4.xyz = subgroupExclusiveMul(data[2].u4.xyz); - data[invocation].u4 = subgroupExclusiveMul(data[3].u4); - - data[invocation].d4.x = subgroupExclusiveMul(data[0].d4.x); - data[invocation].d4.xy = subgroupExclusiveMul(data[1].d4.xy); - data[invocation].d4.xyz = subgroupExclusiveMul(data[2].d4.xyz); - data[invocation].d4 = subgroupExclusiveMul(data[3].d4); - - data[invocation].f4.x = subgroupExclusiveMin(data[0].f4.x); - data[invocation].f4.xy = subgroupExclusiveMin(data[1].f4.xy); - data[invocation].f4.xyz = subgroupExclusiveMin(data[2].f4.xyz); - data[invocation].f4 = subgroupExclusiveMin(data[3].f4); - - data[invocation].i4.x = subgroupExclusiveMin(data[0].i4.x); - data[invocation].i4.xy = subgroupExclusiveMin(data[1].i4.xy); - data[invocation].i4.xyz = subgroupExclusiveMin(data[2].i4.xyz); - data[invocation].i4 = subgroupExclusiveMin(data[3].i4); - - data[invocation].u4.x = subgroupExclusiveMin(data[0].u4.x); - data[invocation].u4.xy = subgroupExclusiveMin(data[1].u4.xy); - data[invocation].u4.xyz = subgroupExclusiveMin(data[2].u4.xyz); - data[invocation].u4 = subgroupExclusiveMin(data[3].u4); - - data[invocation].d4.x = subgroupExclusiveMin(data[0].d4.x); - data[invocation].d4.xy = subgroupExclusiveMin(data[1].d4.xy); - data[invocation].d4.xyz = subgroupExclusiveMin(data[2].d4.xyz); - data[invocation].d4 = subgroupExclusiveMin(data[3].d4); - - data[invocation].f4.x = subgroupExclusiveMax(data[0].f4.x); - data[invocation].f4.xy = subgroupExclusiveMax(data[1].f4.xy); - data[invocation].f4.xyz = subgroupExclusiveMax(data[2].f4.xyz); - data[invocation].f4 = subgroupExclusiveMax(data[3].f4); - - data[invocation].i4.x = subgroupExclusiveMax(data[0].i4.x); - data[invocation].i4.xy = subgroupExclusiveMax(data[1].i4.xy); - data[invocation].i4.xyz = subgroupExclusiveMax(data[2].i4.xyz); - data[invocation].i4 = subgroupExclusiveMax(data[3].i4); - - data[invocation].u4.x = subgroupExclusiveMax(data[0].u4.x); - data[invocation].u4.xy = subgroupExclusiveMax(data[1].u4.xy); - data[invocation].u4.xyz = subgroupExclusiveMax(data[2].u4.xyz); - data[invocation].u4 = subgroupExclusiveMax(data[3].u4); - - data[invocation].d4.x = subgroupExclusiveMax(data[0].d4.x); - data[invocation].d4.xy = subgroupExclusiveMax(data[1].d4.xy); - data[invocation].d4.xyz = subgroupExclusiveMax(data[2].d4.xyz); - data[invocation].d4 = subgroupExclusiveMax(data[3].d4); - - data[invocation].i4.x = subgroupExclusiveAnd(data[0].i4.x); - data[invocation].i4.xy = subgroupExclusiveAnd(data[1].i4.xy); - data[invocation].i4.xyz = subgroupExclusiveAnd(data[2].i4.xyz); - data[invocation].i4 = subgroupExclusiveAnd(data[3].i4); - - data[invocation].u4.x = subgroupExclusiveAnd(data[0].u4.x); - data[invocation].u4.xy = subgroupExclusiveAnd(data[1].u4.xy); - data[invocation].u4.xyz = subgroupExclusiveAnd(data[2].u4.xyz); - data[invocation].u4 = subgroupExclusiveAnd(data[3].u4); - - data[invocation].i4.x = int(subgroupExclusiveAnd(data[0].i4.x < 0)); - data[invocation].i4.xy = ivec2(subgroupExclusiveAnd(lessThan(data[1].i4.xy, ivec2(0)))); - data[invocation].i4.xyz = ivec3(subgroupExclusiveAnd(lessThan(data[1].i4.xyz, ivec3(0)))); - data[invocation].i4 = ivec4(subgroupExclusiveAnd(lessThan(data[1].i4, ivec4(0)))); - - data[invocation].i4.x = subgroupExclusiveOr(data[0].i4.x); - data[invocation].i4.xy = subgroupExclusiveOr(data[1].i4.xy); - data[invocation].i4.xyz = subgroupExclusiveOr(data[2].i4.xyz); - data[invocation].i4 = subgroupExclusiveOr(data[3].i4); - - data[invocation].u4.x = subgroupExclusiveOr(data[0].u4.x); - data[invocation].u4.xy = subgroupExclusiveOr(data[1].u4.xy); - data[invocation].u4.xyz = subgroupExclusiveOr(data[2].u4.xyz); - data[invocation].u4 = subgroupExclusiveOr(data[3].u4); - - data[invocation].i4.x = int(subgroupExclusiveOr(data[0].i4.x < 0)); - data[invocation].i4.xy = ivec2(subgroupExclusiveOr(lessThan(data[1].i4.xy, ivec2(0)))); - data[invocation].i4.xyz = ivec3(subgroupExclusiveOr(lessThan(data[1].i4.xyz, ivec3(0)))); - data[invocation].i4 = ivec4(subgroupExclusiveOr(lessThan(data[1].i4, ivec4(0)))); - - data[invocation].i4.x = subgroupExclusiveXor(data[0].i4.x); - data[invocation].i4.xy = subgroupExclusiveXor(data[1].i4.xy); - data[invocation].i4.xyz = subgroupExclusiveXor(data[2].i4.xyz); - data[invocation].i4 = subgroupExclusiveXor(data[3].i4); - - data[invocation].u4.x = subgroupExclusiveXor(data[0].u4.x); - data[invocation].u4.xy = subgroupExclusiveXor(data[1].u4.xy); - data[invocation].u4.xyz = subgroupExclusiveXor(data[2].u4.xyz); - data[invocation].u4 = subgroupExclusiveXor(data[3].u4); - - data[invocation].i4.x = int(subgroupExclusiveXor(data[0].i4.x < 0)); - data[invocation].i4.xy = ivec2(subgroupExclusiveXor(lessThan(data[1].i4.xy, ivec2(0)))); - data[invocation].i4.xyz = ivec3(subgroupExclusiveXor(lessThan(data[1].i4.xyz, ivec3(0)))); - data[invocation].i4 = ivec4(subgroupExclusiveXor(lessThan(data[1].i4, ivec4(0)))); -} diff --git a/deps/glslang/Test/spv.subgroupBallot.comp b/deps/glslang/Test/spv.subgroupBallot.comp deleted file mode 100644 index bb9dc3e4..00000000 --- a/deps/glslang/Test/spv.subgroupBallot.comp +++ /dev/null @@ -1,86 +0,0 @@ -#version 450 - -#extension GL_KHR_shader_subgroup_ballot: enable - -layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in; - -layout(binding = 0) buffer Buffers -{ - vec4 f4; - ivec4 i4; - uvec4 u4; - dvec4 d4; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; - - uvec4 relMask = gl_SubgroupEqMask + - gl_SubgroupGeMask + - gl_SubgroupGtMask + - gl_SubgroupLeMask + - gl_SubgroupLtMask; - - uvec4 result = subgroupBallot(true); - - data[invocation].u4.x = subgroupBallotBitCount(result); - data[invocation].u4.y = subgroupBallotBitExtract(result, 0) ? 1 : 0; - data[invocation].u4.z = subgroupBallotInclusiveBitCount(result) + subgroupBallotExclusiveBitCount(result); - data[invocation].u4.w = subgroupBallotFindLSB(result) + subgroupBallotFindMSB(result); - - if ((relMask == result) && subgroupInverseBallot(data[0].u4)) - { - data[invocation].f4.x = subgroupBroadcast(data[0].f4.x, 3); - data[invocation].f4.xy = subgroupBroadcast(data[1].f4.xy, 3); - data[invocation].f4.xyz = subgroupBroadcast(data[2].f4.xyz, 3); - data[invocation].f4 = subgroupBroadcast(data[3].f4, 3); - - data[invocation].i4.x = subgroupBroadcast(data[0].i4.x, 2); - data[invocation].i4.xy = subgroupBroadcast(data[1].i4.xy, 2); - data[invocation].i4.xyz = subgroupBroadcast(data[2].i4.xyz, 2); - data[invocation].i4 = subgroupBroadcast(data[3].i4, 2); - - data[invocation].u4.x = subgroupBroadcast(data[0].u4.x, 1); - data[invocation].u4.xy = subgroupBroadcast(data[1].u4.xy, 1); - data[invocation].u4.xyz = subgroupBroadcast(data[2].u4.xyz, 1); - data[invocation].u4 = subgroupBroadcast(data[3].u4, 1); - - data[invocation].d4.x = subgroupBroadcast(data[0].d4.x, 0); - data[invocation].d4.xy = subgroupBroadcast(data[1].d4.xy, 0); - data[invocation].d4.xyz = subgroupBroadcast(data[2].d4.xyz, 0); - data[invocation].d4 = subgroupBroadcast(data[3].d4, 0); - - data[invocation].i4.x = int(subgroupBroadcast(data[0].i4.x < 0, 1)); - data[invocation].i4.xy = ivec2(subgroupBroadcast(lessThan(data[1].i4.xy, ivec2(0)), 1)); - data[invocation].i4.xyz = ivec3(subgroupBroadcast(lessThan(data[1].i4.xyz, ivec3(0)), 1)); - data[invocation].i4 = ivec4(subgroupBroadcast(lessThan(data[1].i4, ivec4(0)), 1)); - } - else - { - data[invocation].f4.x = subgroupBroadcastFirst(data[0].f4.x); - data[invocation].f4.xy = subgroupBroadcastFirst(data[1].f4.xy); - data[invocation].f4.xyz = subgroupBroadcastFirst(data[2].f4.xyz); - data[invocation].f4 = subgroupBroadcastFirst(data[3].f4); - - data[invocation].i4.x = subgroupBroadcastFirst(data[0].i4.x); - data[invocation].i4.xy = subgroupBroadcastFirst(data[1].i4.xy); - data[invocation].i4.xyz = subgroupBroadcastFirst(data[2].i4.xyz); - data[invocation].i4 = subgroupBroadcastFirst(data[3].i4); - - data[invocation].u4.x = subgroupBroadcastFirst(data[0].u4.x); - data[invocation].u4.xy = subgroupBroadcastFirst(data[1].u4.xy); - data[invocation].u4.xyz = subgroupBroadcastFirst(data[2].u4.xyz); - data[invocation].u4 = subgroupBroadcastFirst(data[3].u4); - - data[invocation].d4.x = subgroupBroadcastFirst(data[0].d4.x); - data[invocation].d4.xy = subgroupBroadcastFirst(data[1].d4.xy); - data[invocation].d4.xyz = subgroupBroadcastFirst(data[2].d4.xyz); - data[invocation].d4 = subgroupBroadcastFirst(data[3].d4); - - data[invocation].i4.x = int(subgroupBroadcastFirst(data[0].i4.x < 0)); - data[invocation].i4.xy = ivec2(subgroupBroadcastFirst(lessThan(data[1].i4.xy, ivec2(0)))); - data[invocation].i4.xyz = ivec3(subgroupBroadcastFirst(lessThan(data[1].i4.xyz, ivec3(0)))); - data[invocation].i4 = ivec4(subgroupBroadcastFirst(lessThan(data[1].i4, ivec4(0)))); - } -} diff --git a/deps/glslang/Test/spv.subgroupBallotNeg.comp b/deps/glslang/Test/spv.subgroupBallotNeg.comp deleted file mode 100644 index 4020adf1..00000000 --- a/deps/glslang/Test/spv.subgroupBallotNeg.comp +++ /dev/null @@ -1,33 +0,0 @@ -#version 450 - -#extension GL_KHR_shader_subgroup_ballot: enable - -layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in; - -layout(binding = 0) buffer Buffers -{ - vec4 f4; - ivec4 i4; - uvec4 u4; - dvec4 d4; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; - - uvec4 relMask = gl_SubgroupEqMask + - gl_SubgroupGeMask + - gl_SubgroupGtMask + - gl_SubgroupLeMask + - gl_SubgroupLtMask; - - uvec4 result = subgroupBallot(true); - - data[invocation].u4.x = subgroupBallotBitCount(result); - data[invocation].u4.y = subgroupBallotBitExtract(result, 0) ? 1 : 0; - data[invocation].u4.z = subgroupBallotInclusiveBitCount(result) + subgroupBallotExclusiveBitCount(result); - data[invocation].u4.w = subgroupBallotFindLSB(result) + subgroupBallotFindMSB(result); - - data[invocation].f4.x = subgroupBroadcast(data[0].f4.x, invocation); // ERROR: not constant -} diff --git a/deps/glslang/Test/spv.subgroupBasic.comp b/deps/glslang/Test/spv.subgroupBasic.comp deleted file mode 100644 index 4801c107..00000000 --- a/deps/glslang/Test/spv.subgroupBasic.comp +++ /dev/null @@ -1,23 +0,0 @@ -#version 450 - -#extension GL_KHR_shader_subgroup_basic: enable - -layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in; - -layout(binding = 0) buffer Buffer -{ - int a[]; -} data; - -void main() -{ - data.a[gl_SubgroupSize] = 1; - data.a[gl_SubgroupInvocationID] = 1; - data.a[gl_NumSubgroups] = 1; - data.a[gl_SubgroupID] = (subgroupElect()) ? 1 : 0; - subgroupBarrier(); - subgroupMemoryBarrier(); - subgroupMemoryBarrierBuffer(); - subgroupMemoryBarrierShared(); - subgroupMemoryBarrierImage(); -} diff --git a/deps/glslang/Test/spv.subgroupClustered.comp b/deps/glslang/Test/spv.subgroupClustered.comp deleted file mode 100644 index 128a24c8..00000000 --- a/deps/glslang/Test/spv.subgroupClustered.comp +++ /dev/null @@ -1,143 +0,0 @@ -#version 450 - -#extension GL_KHR_shader_subgroup_clustered: enable - -layout (local_size_x = 8) in; - -layout(binding = 0) buffer Buffers -{ - vec4 f4; - ivec4 i4; - uvec4 u4; - dvec4 d4; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; - - data[invocation].f4.x = subgroupClusteredAdd(data[0].f4.x, 1); - data[invocation].f4.xy = subgroupClusteredAdd(data[1].f4.xy, 1); - data[invocation].f4.xyz = subgroupClusteredAdd(data[2].f4.xyz, 1); - data[invocation].f4 = subgroupClusteredAdd(data[3].f4, 1); - - data[invocation].i4.x = subgroupClusteredAdd(data[0].i4.x, 1); - data[invocation].i4.xy = subgroupClusteredAdd(data[1].i4.xy, 1); - data[invocation].i4.xyz = subgroupClusteredAdd(data[2].i4.xyz, 1); - data[invocation].i4 = subgroupClusteredAdd(data[3].i4, 1); - - data[invocation].u4.x = subgroupClusteredAdd(data[0].u4.x, 1); - data[invocation].u4.xy = subgroupClusteredAdd(data[1].u4.xy, 1); - data[invocation].u4.xyz = subgroupClusteredAdd(data[2].u4.xyz, 1); - data[invocation].u4 = subgroupClusteredAdd(data[3].u4, 1); - - data[invocation].d4.x = subgroupClusteredAdd(data[0].d4.x, 1); - data[invocation].d4.xy = subgroupClusteredAdd(data[1].d4.xy, 1); - data[invocation].d4.xyz = subgroupClusteredAdd(data[2].d4.xyz, 1); - data[invocation].d4 = subgroupClusteredAdd(data[3].d4, 1); - - data[invocation].f4.x = subgroupClusteredMul(data[0].f4.x, 1); - data[invocation].f4.xy = subgroupClusteredMul(data[1].f4.xy, 1); - data[invocation].f4.xyz = subgroupClusteredMul(data[2].f4.xyz, 1); - data[invocation].f4 = subgroupClusteredMul(data[3].f4, 1); - - data[invocation].i4.x = subgroupClusteredMul(data[0].i4.x, 1); - data[invocation].i4.xy = subgroupClusteredMul(data[1].i4.xy, 1); - data[invocation].i4.xyz = subgroupClusteredMul(data[2].i4.xyz, 1); - data[invocation].i4 = subgroupClusteredMul(data[3].i4, 1); - - data[invocation].u4.x = subgroupClusteredMul(data[0].u4.x, 1); - data[invocation].u4.xy = subgroupClusteredMul(data[1].u4.xy, 1); - data[invocation].u4.xyz = subgroupClusteredMul(data[2].u4.xyz, 1); - data[invocation].u4 = subgroupClusteredMul(data[3].u4, 1); - - data[invocation].d4.x = subgroupClusteredMul(data[0].d4.x, 1); - data[invocation].d4.xy = subgroupClusteredMul(data[1].d4.xy, 1); - data[invocation].d4.xyz = subgroupClusteredMul(data[2].d4.xyz, 1); - data[invocation].d4 = subgroupClusteredMul(data[3].d4, 1); - - data[invocation].f4.x = subgroupClusteredMin(data[0].f4.x, 1); - data[invocation].f4.xy = subgroupClusteredMin(data[1].f4.xy, 1); - data[invocation].f4.xyz = subgroupClusteredMin(data[2].f4.xyz, 1); - data[invocation].f4 = subgroupClusteredMin(data[3].f4, 1); - - data[invocation].i4.x = subgroupClusteredMin(data[0].i4.x, 1); - data[invocation].i4.xy = subgroupClusteredMin(data[1].i4.xy, 1); - data[invocation].i4.xyz = subgroupClusteredMin(data[2].i4.xyz, 1); - data[invocation].i4 = subgroupClusteredMin(data[3].i4, 1); - - data[invocation].u4.x = subgroupClusteredMin(data[0].u4.x, 1); - data[invocation].u4.xy = subgroupClusteredMin(data[1].u4.xy, 1); - data[invocation].u4.xyz = subgroupClusteredMin(data[2].u4.xyz, 1); - data[invocation].u4 = subgroupClusteredMin(data[3].u4, 1); - - data[invocation].d4.x = subgroupClusteredMin(data[0].d4.x, 1); - data[invocation].d4.xy = subgroupClusteredMin(data[1].d4.xy, 1); - data[invocation].d4.xyz = subgroupClusteredMin(data[2].d4.xyz, 1); - data[invocation].d4 = subgroupClusteredMin(data[3].d4, 1); - - data[invocation].f4.x = subgroupClusteredMax(data[0].f4.x, 1); - data[invocation].f4.xy = subgroupClusteredMax(data[1].f4.xy, 1); - data[invocation].f4.xyz = subgroupClusteredMax(data[2].f4.xyz, 1); - data[invocation].f4 = subgroupClusteredMax(data[3].f4, 1); - - data[invocation].i4.x = subgroupClusteredMax(data[0].i4.x, 1); - data[invocation].i4.xy = subgroupClusteredMax(data[1].i4.xy, 1); - data[invocation].i4.xyz = subgroupClusteredMax(data[2].i4.xyz, 1); - data[invocation].i4 = subgroupClusteredMax(data[3].i4, 1); - - data[invocation].u4.x = subgroupClusteredMax(data[0].u4.x, 1); - data[invocation].u4.xy = subgroupClusteredMax(data[1].u4.xy, 1); - data[invocation].u4.xyz = subgroupClusteredMax(data[2].u4.xyz, 1); - data[invocation].u4 = subgroupClusteredMax(data[3].u4, 1); - - data[invocation].d4.x = subgroupClusteredMax(data[0].d4.x, 1); - data[invocation].d4.xy = subgroupClusteredMax(data[1].d4.xy, 1); - data[invocation].d4.xyz = subgroupClusteredMax(data[2].d4.xyz, 1); - data[invocation].d4 = subgroupClusteredMax(data[3].d4, 1); - - data[invocation].i4.x = subgroupClusteredAnd(data[0].i4.x, 1); - data[invocation].i4.xy = subgroupClusteredAnd(data[1].i4.xy, 1); - data[invocation].i4.xyz = subgroupClusteredAnd(data[2].i4.xyz, 1); - data[invocation].i4 = subgroupClusteredAnd(data[3].i4, 1); - - data[invocation].u4.x = subgroupClusteredAnd(data[0].u4.x, 1); - data[invocation].u4.xy = subgroupClusteredAnd(data[1].u4.xy, 1); - data[invocation].u4.xyz = subgroupClusteredAnd(data[2].u4.xyz, 1); - data[invocation].u4 = subgroupClusteredAnd(data[3].u4, 1); - - data[invocation].i4.x = int(subgroupClusteredAnd(data[0].i4.x < 0, 1)); - data[invocation].i4.xy = ivec2(subgroupClusteredAnd(lessThan(data[1].i4.xy, ivec2(0)), 1)); - data[invocation].i4.xyz = ivec3(subgroupClusteredAnd(lessThan(data[1].i4.xyz, ivec3(0)), 1)); - data[invocation].i4 = ivec4(subgroupClusteredAnd(lessThan(data[1].i4, ivec4(0)), 1)); - - data[invocation].i4.x = subgroupClusteredOr(data[0].i4.x, 1); - data[invocation].i4.xy = subgroupClusteredOr(data[1].i4.xy, 1); - data[invocation].i4.xyz = subgroupClusteredOr(data[2].i4.xyz, 1); - data[invocation].i4 = subgroupClusteredOr(data[3].i4, 1); - - data[invocation].u4.x = subgroupClusteredOr(data[0].u4.x, 1); - data[invocation].u4.xy = subgroupClusteredOr(data[1].u4.xy, 1); - data[invocation].u4.xyz = subgroupClusteredOr(data[2].u4.xyz, 1); - data[invocation].u4 = subgroupClusteredOr(data[3].u4, 1); - - data[invocation].i4.x = int(subgroupClusteredOr(data[0].i4.x < 0, 1)); - data[invocation].i4.xy = ivec2(subgroupClusteredOr(lessThan(data[1].i4.xy, ivec2(0)), 1)); - data[invocation].i4.xyz = ivec3(subgroupClusteredOr(lessThan(data[1].i4.xyz, ivec3(0)), 1)); - data[invocation].i4 = ivec4(subgroupClusteredOr(lessThan(data[1].i4, ivec4(0)), 1)); - - data[invocation].i4.x = subgroupClusteredXor(data[0].i4.x, 1); - data[invocation].i4.xy = subgroupClusteredXor(data[1].i4.xy, 1); - data[invocation].i4.xyz = subgroupClusteredXor(data[2].i4.xyz, 1); - data[invocation].i4 = subgroupClusteredXor(data[3].i4, 1); - - data[invocation].u4.x = subgroupClusteredXor(data[0].u4.x, 1); - data[invocation].u4.xy = subgroupClusteredXor(data[1].u4.xy, 1); - data[invocation].u4.xyz = subgroupClusteredXor(data[2].u4.xyz, 1); - data[invocation].u4 = subgroupClusteredXor(data[3].u4, 1); - - data[invocation].i4.x = int(subgroupClusteredXor(data[0].i4.x < 0, 1)); - data[invocation].i4.xy = ivec2(subgroupClusteredXor(lessThan(data[1].i4.xy, ivec2(0)), 1)); - data[invocation].i4.xyz = ivec3(subgroupClusteredXor(lessThan(data[1].i4.xyz, ivec3(0)), 1)); - data[invocation].i4 = ivec4(subgroupClusteredXor(lessThan(data[1].i4, ivec4(0)), 1)); -} diff --git a/deps/glslang/Test/spv.subgroupClusteredNeg.comp b/deps/glslang/Test/spv.subgroupClusteredNeg.comp deleted file mode 100644 index ec15413e..00000000 --- a/deps/glslang/Test/spv.subgroupClusteredNeg.comp +++ /dev/null @@ -1,39 +0,0 @@ -#version 450 - -#extension GL_KHR_shader_subgroup_clustered: enable - -layout (local_size_x = 8) in; - -layout(binding = 0) buffer Buffers -{ - vec4 f4; - ivec4 i4; - uvec4 u4; - dvec4 d4; -} data[4]; - -void main() -{ - int a = 1; - const int aConst = 1; - - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; - - data[invocation].f4.xy = subgroupClusteredAdd(data[1].f4.xy, 0); // ERROR, less than 1 - - data[invocation].f4.x = subgroupClusteredMul(data[0].f4.x, 3); // ERROR, not a power of 2 - - data[invocation].i4.xy = subgroupClusteredMin(data[1].i4.xy, 8); - data[invocation].i4.xyz = subgroupClusteredMin(data[2].i4.xyz, 6); // ERROR, not a power of 2 - - data[invocation].f4.x = subgroupClusteredMax(data[0].f4.x, -1); // ERROR, less than 1 - - data[invocation].i4 = subgroupClusteredAnd(data[3].i4, -3); // ERROR, less than 1 - - data[invocation].i4.x = subgroupClusteredOr(data[0].i4.x, a); // ERROR, not constant - data[invocation].i4.xy = subgroupClusteredOr(data[1].i4.xy, aConst); - - data[invocation].i4.x = subgroupClusteredXor(data[0].i4.x, 1 + a); // ERROR, not constant - data[invocation].i4.xy = subgroupClusteredXor(data[1].i4.xy, aConst + a); // ERROR, not constant - data[invocation].i4.xyz = subgroupClusteredXor(data[2].i4.xyz, 1 + aConst); -} diff --git a/deps/glslang/Test/spv.subgroupExtendedTypesArithmetic.comp b/deps/glslang/Test/spv.subgroupExtendedTypesArithmetic.comp deleted file mode 100644 index f58268f5..00000000 --- a/deps/glslang/Test/spv.subgroupExtendedTypesArithmetic.comp +++ /dev/null @@ -1,715 +0,0 @@ -#version 450 - -#extension GL_KHR_shader_subgroup_arithmetic: enable -#extension GL_EXT_shader_subgroup_extended_types_int8: enable -#extension GL_EXT_shader_subgroup_extended_types_int16: enable -#extension GL_EXT_shader_subgroup_extended_types_int64: enable -#extension GL_EXT_shader_subgroup_extended_types_float16: enable - -layout (local_size_x = 8) in; - -layout(binding = 0) buffer Buffers -{ - i8vec4 i8; - u8vec4 u8; - i16vec4 i16; - u16vec4 u16; - i64vec4 i64; - u64vec4 u64; - f16vec4 f16; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; - - data[invocation].i8.x = subgroupAdd(data[0].i8.x); - data[invocation].i8.xy = subgroupAdd(data[1].i8.xy); - data[invocation].i8.xyz = subgroupAdd(data[2].i8.xyz); - data[invocation].i8 = subgroupAdd(data[3].i8); - - data[invocation].i8.x = subgroupMul(data[0].i8.x); - data[invocation].i8.xy = subgroupMul(data[1].i8.xy); - data[invocation].i8.xyz = subgroupMul(data[2].i8.xyz); - data[invocation].i8 = subgroupMul(data[3].i8); - - data[invocation].i8.x = subgroupMin(data[0].i8.x); - data[invocation].i8.xy = subgroupMin(data[1].i8.xy); - data[invocation].i8.xyz = subgroupMin(data[2].i8.xyz); - data[invocation].i8 = subgroupMin(data[3].i8); - - data[invocation].i8.x = subgroupMax(data[0].i8.x); - data[invocation].i8.xy = subgroupMax(data[1].i8.xy); - data[invocation].i8.xyz = subgroupMax(data[2].i8.xyz); - data[invocation].i8 = subgroupMax(data[3].i8); - - data[invocation].i8.x = subgroupAnd(data[0].i8.x); - data[invocation].i8.xy = subgroupAnd(data[1].i8.xy); - data[invocation].i8.xyz = subgroupAnd(data[2].i8.xyz); - data[invocation].i8 = subgroupAnd(data[3].i8); - - data[invocation].i8.x = subgroupOr(data[0].i8.x); - data[invocation].i8.xy = subgroupOr(data[1].i8.xy); - data[invocation].i8.xyz = subgroupOr(data[2].i8.xyz); - data[invocation].i8 = subgroupOr(data[3].i8); - - data[invocation].i8.x = subgroupXor(data[0].i8.x); - data[invocation].i8.xy = subgroupXor(data[1].i8.xy); - data[invocation].i8.xyz = subgroupXor(data[2].i8.xyz); - data[invocation].i8 = subgroupXor(data[3].i8); - - data[invocation].i8.x = subgroupInclusiveAdd(data[0].i8.x); - data[invocation].i8.xy = subgroupInclusiveAdd(data[1].i8.xy); - data[invocation].i8.xyz = subgroupInclusiveAdd(data[2].i8.xyz); - data[invocation].i8 = subgroupInclusiveAdd(data[3].i8); - - data[invocation].i8.x = subgroupInclusiveMul(data[0].i8.x); - data[invocation].i8.xy = subgroupInclusiveMul(data[1].i8.xy); - data[invocation].i8.xyz = subgroupInclusiveMul(data[2].i8.xyz); - data[invocation].i8 = subgroupInclusiveMul(data[3].i8); - - data[invocation].i8.x = subgroupInclusiveMin(data[0].i8.x); - data[invocation].i8.xy = subgroupInclusiveMin(data[1].i8.xy); - data[invocation].i8.xyz = subgroupInclusiveMin(data[2].i8.xyz); - data[invocation].i8 = subgroupInclusiveMin(data[3].i8); - - data[invocation].i8.x = subgroupInclusiveMax(data[0].i8.x); - data[invocation].i8.xy = subgroupInclusiveMax(data[1].i8.xy); - data[invocation].i8.xyz = subgroupInclusiveMax(data[2].i8.xyz); - data[invocation].i8 = subgroupInclusiveMax(data[3].i8); - - data[invocation].i8.x = subgroupInclusiveAnd(data[0].i8.x); - data[invocation].i8.xy = subgroupInclusiveAnd(data[1].i8.xy); - data[invocation].i8.xyz = subgroupInclusiveAnd(data[2].i8.xyz); - data[invocation].i8 = subgroupInclusiveAnd(data[3].i8); - - data[invocation].i8.x = subgroupInclusiveOr(data[0].i8.x); - data[invocation].i8.xy = subgroupInclusiveOr(data[1].i8.xy); - data[invocation].i8.xyz = subgroupInclusiveOr(data[2].i8.xyz); - data[invocation].i8 = subgroupInclusiveOr(data[3].i8); - - data[invocation].i8.x = subgroupInclusiveXor(data[0].i8.x); - data[invocation].i8.xy = subgroupInclusiveXor(data[1].i8.xy); - data[invocation].i8.xyz = subgroupInclusiveXor(data[2].i8.xyz); - data[invocation].i8 = subgroupInclusiveXor(data[3].i8); - - data[invocation].i8.x = subgroupExclusiveAdd(data[0].i8.x); - data[invocation].i8.xy = subgroupExclusiveAdd(data[1].i8.xy); - data[invocation].i8.xyz = subgroupExclusiveAdd(data[2].i8.xyz); - data[invocation].i8 = subgroupExclusiveAdd(data[3].i8); - - data[invocation].i8.x = subgroupExclusiveMul(data[0].i8.x); - data[invocation].i8.xy = subgroupExclusiveMul(data[1].i8.xy); - data[invocation].i8.xyz = subgroupExclusiveMul(data[2].i8.xyz); - data[invocation].i8 = subgroupExclusiveMul(data[3].i8); - - data[invocation].i8.x = subgroupExclusiveMin(data[0].i8.x); - data[invocation].i8.xy = subgroupExclusiveMin(data[1].i8.xy); - data[invocation].i8.xyz = subgroupExclusiveMin(data[2].i8.xyz); - data[invocation].i8 = subgroupExclusiveMin(data[3].i8); - - data[invocation].i8.x = subgroupExclusiveMax(data[0].i8.x); - data[invocation].i8.xy = subgroupExclusiveMax(data[1].i8.xy); - data[invocation].i8.xyz = subgroupExclusiveMax(data[2].i8.xyz); - data[invocation].i8 = subgroupExclusiveMax(data[3].i8); - - data[invocation].i8.x = subgroupExclusiveAnd(data[0].i8.x); - data[invocation].i8.xy = subgroupExclusiveAnd(data[1].i8.xy); - data[invocation].i8.xyz = subgroupExclusiveAnd(data[2].i8.xyz); - data[invocation].i8 = subgroupExclusiveAnd(data[3].i8); - - data[invocation].i8.x = subgroupExclusiveOr(data[0].i8.x); - data[invocation].i8.xy = subgroupExclusiveOr(data[1].i8.xy); - data[invocation].i8.xyz = subgroupExclusiveOr(data[2].i8.xyz); - data[invocation].i8 = subgroupExclusiveOr(data[3].i8); - - data[invocation].i8.x = subgroupExclusiveXor(data[0].i8.x); - data[invocation].i8.xy = subgroupExclusiveXor(data[1].i8.xy); - data[invocation].i8.xyz = subgroupExclusiveXor(data[2].i8.xyz); - data[invocation].i8 = subgroupExclusiveXor(data[3].i8); - - data[invocation].u8.x = subgroupAdd(data[0].u8.x); - data[invocation].u8.xy = subgroupAdd(data[1].u8.xy); - data[invocation].u8.xyz = subgroupAdd(data[2].u8.xyz); - data[invocation].u8 = subgroupAdd(data[3].u8); - - data[invocation].u8.x = subgroupMul(data[0].u8.x); - data[invocation].u8.xy = subgroupMul(data[1].u8.xy); - data[invocation].u8.xyz = subgroupMul(data[2].u8.xyz); - data[invocation].u8 = subgroupMul(data[3].u8); - - data[invocation].u8.x = subgroupMin(data[0].u8.x); - data[invocation].u8.xy = subgroupMin(data[1].u8.xy); - data[invocation].u8.xyz = subgroupMin(data[2].u8.xyz); - data[invocation].u8 = subgroupMin(data[3].u8); - - data[invocation].u8.x = subgroupMax(data[0].u8.x); - data[invocation].u8.xy = subgroupMax(data[1].u8.xy); - data[invocation].u8.xyz = subgroupMax(data[2].u8.xyz); - data[invocation].u8 = subgroupMax(data[3].u8); - - data[invocation].u8.x = subgroupAnd(data[0].u8.x); - data[invocation].u8.xy = subgroupAnd(data[1].u8.xy); - data[invocation].u8.xyz = subgroupAnd(data[2].u8.xyz); - data[invocation].u8 = subgroupAnd(data[3].u8); - - data[invocation].u8.x = subgroupOr(data[0].u8.x); - data[invocation].u8.xy = subgroupOr(data[1].u8.xy); - data[invocation].u8.xyz = subgroupOr(data[2].u8.xyz); - data[invocation].u8 = subgroupOr(data[3].u8); - - data[invocation].u8.x = subgroupXor(data[0].u8.x); - data[invocation].u8.xy = subgroupXor(data[1].u8.xy); - data[invocation].u8.xyz = subgroupXor(data[2].u8.xyz); - data[invocation].u8 = subgroupXor(data[3].u8); - - data[invocation].u8.x = subgroupInclusiveAdd(data[0].u8.x); - data[invocation].u8.xy = subgroupInclusiveAdd(data[1].u8.xy); - data[invocation].u8.xyz = subgroupInclusiveAdd(data[2].u8.xyz); - data[invocation].u8 = subgroupInclusiveAdd(data[3].u8); - - data[invocation].u8.x = subgroupInclusiveMul(data[0].u8.x); - data[invocation].u8.xy = subgroupInclusiveMul(data[1].u8.xy); - data[invocation].u8.xyz = subgroupInclusiveMul(data[2].u8.xyz); - data[invocation].u8 = subgroupInclusiveMul(data[3].u8); - - data[invocation].u8.x = subgroupInclusiveMin(data[0].u8.x); - data[invocation].u8.xy = subgroupInclusiveMin(data[1].u8.xy); - data[invocation].u8.xyz = subgroupInclusiveMin(data[2].u8.xyz); - data[invocation].u8 = subgroupInclusiveMin(data[3].u8); - - data[invocation].u8.x = subgroupInclusiveMax(data[0].u8.x); - data[invocation].u8.xy = subgroupInclusiveMax(data[1].u8.xy); - data[invocation].u8.xyz = subgroupInclusiveMax(data[2].u8.xyz); - data[invocation].u8 = subgroupInclusiveMax(data[3].u8); - - data[invocation].u8.x = subgroupInclusiveAnd(data[0].u8.x); - data[invocation].u8.xy = subgroupInclusiveAnd(data[1].u8.xy); - data[invocation].u8.xyz = subgroupInclusiveAnd(data[2].u8.xyz); - data[invocation].u8 = subgroupInclusiveAnd(data[3].u8); - - data[invocation].u8.x = subgroupInclusiveOr(data[0].u8.x); - data[invocation].u8.xy = subgroupInclusiveOr(data[1].u8.xy); - data[invocation].u8.xyz = subgroupInclusiveOr(data[2].u8.xyz); - data[invocation].u8 = subgroupInclusiveOr(data[3].u8); - - data[invocation].u8.x = subgroupInclusiveXor(data[0].u8.x); - data[invocation].u8.xy = subgroupInclusiveXor(data[1].u8.xy); - data[invocation].u8.xyz = subgroupInclusiveXor(data[2].u8.xyz); - data[invocation].u8 = subgroupInclusiveXor(data[3].u8); - - data[invocation].u8.x = subgroupExclusiveAdd(data[0].u8.x); - data[invocation].u8.xy = subgroupExclusiveAdd(data[1].u8.xy); - data[invocation].u8.xyz = subgroupExclusiveAdd(data[2].u8.xyz); - data[invocation].u8 = subgroupExclusiveAdd(data[3].u8); - - data[invocation].u8.x = subgroupExclusiveMul(data[0].u8.x); - data[invocation].u8.xy = subgroupExclusiveMul(data[1].u8.xy); - data[invocation].u8.xyz = subgroupExclusiveMul(data[2].u8.xyz); - data[invocation].u8 = subgroupExclusiveMul(data[3].u8); - - data[invocation].u8.x = subgroupExclusiveMin(data[0].u8.x); - data[invocation].u8.xy = subgroupExclusiveMin(data[1].u8.xy); - data[invocation].u8.xyz = subgroupExclusiveMin(data[2].u8.xyz); - data[invocation].u8 = subgroupExclusiveMin(data[3].u8); - - data[invocation].u8.x = subgroupExclusiveMax(data[0].u8.x); - data[invocation].u8.xy = subgroupExclusiveMax(data[1].u8.xy); - data[invocation].u8.xyz = subgroupExclusiveMax(data[2].u8.xyz); - data[invocation].u8 = subgroupExclusiveMax(data[3].u8); - - data[invocation].u8.x = subgroupExclusiveAnd(data[0].u8.x); - data[invocation].u8.xy = subgroupExclusiveAnd(data[1].u8.xy); - data[invocation].u8.xyz = subgroupExclusiveAnd(data[2].u8.xyz); - data[invocation].u8 = subgroupExclusiveAnd(data[3].u8); - - data[invocation].u8.x = subgroupExclusiveOr(data[0].u8.x); - data[invocation].u8.xy = subgroupExclusiveOr(data[1].u8.xy); - data[invocation].u8.xyz = subgroupExclusiveOr(data[2].u8.xyz); - data[invocation].u8 = subgroupExclusiveOr(data[3].u8); - - data[invocation].u8.x = subgroupExclusiveXor(data[0].u8.x); - data[invocation].u8.xy = subgroupExclusiveXor(data[1].u8.xy); - data[invocation].u8.xyz = subgroupExclusiveXor(data[2].u8.xyz); - data[invocation].u8 = subgroupExclusiveXor(data[3].u8); - - data[invocation].i16.x = subgroupAdd(data[0].i16.x); - data[invocation].i16.xy = subgroupAdd(data[1].i16.xy); - data[invocation].i16.xyz = subgroupAdd(data[2].i16.xyz); - data[invocation].i16 = subgroupAdd(data[3].i16); - - data[invocation].i16.x = subgroupMul(data[0].i16.x); - data[invocation].i16.xy = subgroupMul(data[1].i16.xy); - data[invocation].i16.xyz = subgroupMul(data[2].i16.xyz); - data[invocation].i16 = subgroupMul(data[3].i16); - - data[invocation].i16.x = subgroupMin(data[0].i16.x); - data[invocation].i16.xy = subgroupMin(data[1].i16.xy); - data[invocation].i16.xyz = subgroupMin(data[2].i16.xyz); - data[invocation].i16 = subgroupMin(data[3].i16); - - data[invocation].i16.x = subgroupMax(data[0].i16.x); - data[invocation].i16.xy = subgroupMax(data[1].i16.xy); - data[invocation].i16.xyz = subgroupMax(data[2].i16.xyz); - data[invocation].i16 = subgroupMax(data[3].i16); - - data[invocation].i16.x = subgroupAnd(data[0].i16.x); - data[invocation].i16.xy = subgroupAnd(data[1].i16.xy); - data[invocation].i16.xyz = subgroupAnd(data[2].i16.xyz); - data[invocation].i16 = subgroupAnd(data[3].i16); - - data[invocation].i16.x = subgroupOr(data[0].i16.x); - data[invocation].i16.xy = subgroupOr(data[1].i16.xy); - data[invocation].i16.xyz = subgroupOr(data[2].i16.xyz); - data[invocation].i16 = subgroupOr(data[3].i16); - - data[invocation].i16.x = subgroupXor(data[0].i16.x); - data[invocation].i16.xy = subgroupXor(data[1].i16.xy); - data[invocation].i16.xyz = subgroupXor(data[2].i16.xyz); - data[invocation].i16 = subgroupXor(data[3].i16); - - data[invocation].i16.x = subgroupInclusiveAdd(data[0].i16.x); - data[invocation].i16.xy = subgroupInclusiveAdd(data[1].i16.xy); - data[invocation].i16.xyz = subgroupInclusiveAdd(data[2].i16.xyz); - data[invocation].i16 = subgroupInclusiveAdd(data[3].i16); - - data[invocation].i16.x = subgroupInclusiveMul(data[0].i16.x); - data[invocation].i16.xy = subgroupInclusiveMul(data[1].i16.xy); - data[invocation].i16.xyz = subgroupInclusiveMul(data[2].i16.xyz); - data[invocation].i16 = subgroupInclusiveMul(data[3].i16); - - data[invocation].i16.x = subgroupInclusiveMin(data[0].i16.x); - data[invocation].i16.xy = subgroupInclusiveMin(data[1].i16.xy); - data[invocation].i16.xyz = subgroupInclusiveMin(data[2].i16.xyz); - data[invocation].i16 = subgroupInclusiveMin(data[3].i16); - - data[invocation].i16.x = subgroupInclusiveMax(data[0].i16.x); - data[invocation].i16.xy = subgroupInclusiveMax(data[1].i16.xy); - data[invocation].i16.xyz = subgroupInclusiveMax(data[2].i16.xyz); - data[invocation].i16 = subgroupInclusiveMax(data[3].i16); - - data[invocation].i16.x = subgroupInclusiveAnd(data[0].i16.x); - data[invocation].i16.xy = subgroupInclusiveAnd(data[1].i16.xy); - data[invocation].i16.xyz = subgroupInclusiveAnd(data[2].i16.xyz); - data[invocation].i16 = subgroupInclusiveAnd(data[3].i16); - - data[invocation].i16.x = subgroupInclusiveOr(data[0].i16.x); - data[invocation].i16.xy = subgroupInclusiveOr(data[1].i16.xy); - data[invocation].i16.xyz = subgroupInclusiveOr(data[2].i16.xyz); - data[invocation].i16 = subgroupInclusiveOr(data[3].i16); - - data[invocation].i16.x = subgroupInclusiveXor(data[0].i16.x); - data[invocation].i16.xy = subgroupInclusiveXor(data[1].i16.xy); - data[invocation].i16.xyz = subgroupInclusiveXor(data[2].i16.xyz); - data[invocation].i16 = subgroupInclusiveXor(data[3].i16); - - data[invocation].i16.x = subgroupExclusiveAdd(data[0].i16.x); - data[invocation].i16.xy = subgroupExclusiveAdd(data[1].i16.xy); - data[invocation].i16.xyz = subgroupExclusiveAdd(data[2].i16.xyz); - data[invocation].i16 = subgroupExclusiveAdd(data[3].i16); - - data[invocation].i16.x = subgroupExclusiveMul(data[0].i16.x); - data[invocation].i16.xy = subgroupExclusiveMul(data[1].i16.xy); - data[invocation].i16.xyz = subgroupExclusiveMul(data[2].i16.xyz); - data[invocation].i16 = subgroupExclusiveMul(data[3].i16); - - data[invocation].i16.x = subgroupExclusiveMin(data[0].i16.x); - data[invocation].i16.xy = subgroupExclusiveMin(data[1].i16.xy); - data[invocation].i16.xyz = subgroupExclusiveMin(data[2].i16.xyz); - data[invocation].i16 = subgroupExclusiveMin(data[3].i16); - - data[invocation].i16.x = subgroupExclusiveMax(data[0].i16.x); - data[invocation].i16.xy = subgroupExclusiveMax(data[1].i16.xy); - data[invocation].i16.xyz = subgroupExclusiveMax(data[2].i16.xyz); - data[invocation].i16 = subgroupExclusiveMax(data[3].i16); - - data[invocation].i16.x = subgroupExclusiveAnd(data[0].i16.x); - data[invocation].i16.xy = subgroupExclusiveAnd(data[1].i16.xy); - data[invocation].i16.xyz = subgroupExclusiveAnd(data[2].i16.xyz); - data[invocation].i16 = subgroupExclusiveAnd(data[3].i16); - - data[invocation].i16.x = subgroupExclusiveOr(data[0].i16.x); - data[invocation].i16.xy = subgroupExclusiveOr(data[1].i16.xy); - data[invocation].i16.xyz = subgroupExclusiveOr(data[2].i16.xyz); - data[invocation].i16 = subgroupExclusiveOr(data[3].i16); - - data[invocation].i16.x = subgroupExclusiveXor(data[0].i16.x); - data[invocation].i16.xy = subgroupExclusiveXor(data[1].i16.xy); - data[invocation].i16.xyz = subgroupExclusiveXor(data[2].i16.xyz); - data[invocation].i16 = subgroupExclusiveXor(data[3].i16); - - data[invocation].u16.x = subgroupAdd(data[0].u16.x); - data[invocation].u16.xy = subgroupAdd(data[1].u16.xy); - data[invocation].u16.xyz = subgroupAdd(data[2].u16.xyz); - data[invocation].u16 = subgroupAdd(data[3].u16); - - data[invocation].u16.x = subgroupMul(data[0].u16.x); - data[invocation].u16.xy = subgroupMul(data[1].u16.xy); - data[invocation].u16.xyz = subgroupMul(data[2].u16.xyz); - data[invocation].u16 = subgroupMul(data[3].u16); - - data[invocation].u16.x = subgroupMin(data[0].u16.x); - data[invocation].u16.xy = subgroupMin(data[1].u16.xy); - data[invocation].u16.xyz = subgroupMin(data[2].u16.xyz); - data[invocation].u16 = subgroupMin(data[3].u16); - - data[invocation].u16.x = subgroupMax(data[0].u16.x); - data[invocation].u16.xy = subgroupMax(data[1].u16.xy); - data[invocation].u16.xyz = subgroupMax(data[2].u16.xyz); - data[invocation].u16 = subgroupMax(data[3].u16); - - data[invocation].u16.x = subgroupAnd(data[0].u16.x); - data[invocation].u16.xy = subgroupAnd(data[1].u16.xy); - data[invocation].u16.xyz = subgroupAnd(data[2].u16.xyz); - data[invocation].u16 = subgroupAnd(data[3].u16); - - data[invocation].u16.x = subgroupOr(data[0].u16.x); - data[invocation].u16.xy = subgroupOr(data[1].u16.xy); - data[invocation].u16.xyz = subgroupOr(data[2].u16.xyz); - data[invocation].u16 = subgroupOr(data[3].u16); - - data[invocation].u16.x = subgroupXor(data[0].u16.x); - data[invocation].u16.xy = subgroupXor(data[1].u16.xy); - data[invocation].u16.xyz = subgroupXor(data[2].u16.xyz); - data[invocation].u16 = subgroupXor(data[3].u16); - - data[invocation].u16.x = subgroupInclusiveAdd(data[0].u16.x); - data[invocation].u16.xy = subgroupInclusiveAdd(data[1].u16.xy); - data[invocation].u16.xyz = subgroupInclusiveAdd(data[2].u16.xyz); - data[invocation].u16 = subgroupInclusiveAdd(data[3].u16); - - data[invocation].u16.x = subgroupInclusiveMul(data[0].u16.x); - data[invocation].u16.xy = subgroupInclusiveMul(data[1].u16.xy); - data[invocation].u16.xyz = subgroupInclusiveMul(data[2].u16.xyz); - data[invocation].u16 = subgroupInclusiveMul(data[3].u16); - - data[invocation].u16.x = subgroupInclusiveMin(data[0].u16.x); - data[invocation].u16.xy = subgroupInclusiveMin(data[1].u16.xy); - data[invocation].u16.xyz = subgroupInclusiveMin(data[2].u16.xyz); - data[invocation].u16 = subgroupInclusiveMin(data[3].u16); - - data[invocation].u16.x = subgroupInclusiveMax(data[0].u16.x); - data[invocation].u16.xy = subgroupInclusiveMax(data[1].u16.xy); - data[invocation].u16.xyz = subgroupInclusiveMax(data[2].u16.xyz); - data[invocation].u16 = subgroupInclusiveMax(data[3].u16); - - data[invocation].u16.x = subgroupInclusiveAnd(data[0].u16.x); - data[invocation].u16.xy = subgroupInclusiveAnd(data[1].u16.xy); - data[invocation].u16.xyz = subgroupInclusiveAnd(data[2].u16.xyz); - data[invocation].u16 = subgroupInclusiveAnd(data[3].u16); - - data[invocation].u16.x = subgroupInclusiveOr(data[0].u16.x); - data[invocation].u16.xy = subgroupInclusiveOr(data[1].u16.xy); - data[invocation].u16.xyz = subgroupInclusiveOr(data[2].u16.xyz); - data[invocation].u16 = subgroupInclusiveOr(data[3].u16); - - data[invocation].u16.x = subgroupInclusiveXor(data[0].u16.x); - data[invocation].u16.xy = subgroupInclusiveXor(data[1].u16.xy); - data[invocation].u16.xyz = subgroupInclusiveXor(data[2].u16.xyz); - data[invocation].u16 = subgroupInclusiveXor(data[3].u16); - - data[invocation].u16.x = subgroupExclusiveAdd(data[0].u16.x); - data[invocation].u16.xy = subgroupExclusiveAdd(data[1].u16.xy); - data[invocation].u16.xyz = subgroupExclusiveAdd(data[2].u16.xyz); - data[invocation].u16 = subgroupExclusiveAdd(data[3].u16); - - data[invocation].u16.x = subgroupExclusiveMul(data[0].u16.x); - data[invocation].u16.xy = subgroupExclusiveMul(data[1].u16.xy); - data[invocation].u16.xyz = subgroupExclusiveMul(data[2].u16.xyz); - data[invocation].u16 = subgroupExclusiveMul(data[3].u16); - - data[invocation].u16.x = subgroupExclusiveMin(data[0].u16.x); - data[invocation].u16.xy = subgroupExclusiveMin(data[1].u16.xy); - data[invocation].u16.xyz = subgroupExclusiveMin(data[2].u16.xyz); - data[invocation].u16 = subgroupExclusiveMin(data[3].u16); - - data[invocation].u16.x = subgroupExclusiveMax(data[0].u16.x); - data[invocation].u16.xy = subgroupExclusiveMax(data[1].u16.xy); - data[invocation].u16.xyz = subgroupExclusiveMax(data[2].u16.xyz); - data[invocation].u16 = subgroupExclusiveMax(data[3].u16); - - data[invocation].u16.x = subgroupExclusiveAnd(data[0].u16.x); - data[invocation].u16.xy = subgroupExclusiveAnd(data[1].u16.xy); - data[invocation].u16.xyz = subgroupExclusiveAnd(data[2].u16.xyz); - data[invocation].u16 = subgroupExclusiveAnd(data[3].u16); - - data[invocation].u16.x = subgroupExclusiveOr(data[0].u16.x); - data[invocation].u16.xy = subgroupExclusiveOr(data[1].u16.xy); - data[invocation].u16.xyz = subgroupExclusiveOr(data[2].u16.xyz); - data[invocation].u16 = subgroupExclusiveOr(data[3].u16); - - data[invocation].u16.x = subgroupExclusiveXor(data[0].u16.x); - data[invocation].u16.xy = subgroupExclusiveXor(data[1].u16.xy); - data[invocation].u16.xyz = subgroupExclusiveXor(data[2].u16.xyz); - data[invocation].u16 = subgroupExclusiveXor(data[3].u16); - - data[invocation].i64.x = subgroupAdd(data[0].i64.x); - data[invocation].i64.xy = subgroupAdd(data[1].i64.xy); - data[invocation].i64.xyz = subgroupAdd(data[2].i64.xyz); - data[invocation].i64 = subgroupAdd(data[3].i64); - - data[invocation].i64.x = subgroupMul(data[0].i64.x); - data[invocation].i64.xy = subgroupMul(data[1].i64.xy); - data[invocation].i64.xyz = subgroupMul(data[2].i64.xyz); - data[invocation].i64 = subgroupMul(data[3].i64); - - data[invocation].i64.x = subgroupMin(data[0].i64.x); - data[invocation].i64.xy = subgroupMin(data[1].i64.xy); - data[invocation].i64.xyz = subgroupMin(data[2].i64.xyz); - data[invocation].i64 = subgroupMin(data[3].i64); - - data[invocation].i64.x = subgroupMax(data[0].i64.x); - data[invocation].i64.xy = subgroupMax(data[1].i64.xy); - data[invocation].i64.xyz = subgroupMax(data[2].i64.xyz); - data[invocation].i64 = subgroupMax(data[3].i64); - - data[invocation].i64.x = subgroupAnd(data[0].i64.x); - data[invocation].i64.xy = subgroupAnd(data[1].i64.xy); - data[invocation].i64.xyz = subgroupAnd(data[2].i64.xyz); - data[invocation].i64 = subgroupAnd(data[3].i64); - - data[invocation].i64.x = subgroupOr(data[0].i64.x); - data[invocation].i64.xy = subgroupOr(data[1].i64.xy); - data[invocation].i64.xyz = subgroupOr(data[2].i64.xyz); - data[invocation].i64 = subgroupOr(data[3].i64); - - data[invocation].i64.x = subgroupXor(data[0].i64.x); - data[invocation].i64.xy = subgroupXor(data[1].i64.xy); - data[invocation].i64.xyz = subgroupXor(data[2].i64.xyz); - data[invocation].i64 = subgroupXor(data[3].i64); - - data[invocation].i64.x = subgroupInclusiveAdd(data[0].i64.x); - data[invocation].i64.xy = subgroupInclusiveAdd(data[1].i64.xy); - data[invocation].i64.xyz = subgroupInclusiveAdd(data[2].i64.xyz); - data[invocation].i64 = subgroupInclusiveAdd(data[3].i64); - - data[invocation].i64.x = subgroupInclusiveMul(data[0].i64.x); - data[invocation].i64.xy = subgroupInclusiveMul(data[1].i64.xy); - data[invocation].i64.xyz = subgroupInclusiveMul(data[2].i64.xyz); - data[invocation].i64 = subgroupInclusiveMul(data[3].i64); - - data[invocation].i64.x = subgroupInclusiveMin(data[0].i64.x); - data[invocation].i64.xy = subgroupInclusiveMin(data[1].i64.xy); - data[invocation].i64.xyz = subgroupInclusiveMin(data[2].i64.xyz); - data[invocation].i64 = subgroupInclusiveMin(data[3].i64); - - data[invocation].i64.x = subgroupInclusiveMax(data[0].i64.x); - data[invocation].i64.xy = subgroupInclusiveMax(data[1].i64.xy); - data[invocation].i64.xyz = subgroupInclusiveMax(data[2].i64.xyz); - data[invocation].i64 = subgroupInclusiveMax(data[3].i64); - - data[invocation].i64.x = subgroupInclusiveAnd(data[0].i64.x); - data[invocation].i64.xy = subgroupInclusiveAnd(data[1].i64.xy); - data[invocation].i64.xyz = subgroupInclusiveAnd(data[2].i64.xyz); - data[invocation].i64 = subgroupInclusiveAnd(data[3].i64); - - data[invocation].i64.x = subgroupInclusiveOr(data[0].i64.x); - data[invocation].i64.xy = subgroupInclusiveOr(data[1].i64.xy); - data[invocation].i64.xyz = subgroupInclusiveOr(data[2].i64.xyz); - data[invocation].i64 = subgroupInclusiveOr(data[3].i64); - - data[invocation].i64.x = subgroupInclusiveXor(data[0].i64.x); - data[invocation].i64.xy = subgroupInclusiveXor(data[1].i64.xy); - data[invocation].i64.xyz = subgroupInclusiveXor(data[2].i64.xyz); - data[invocation].i64 = subgroupInclusiveXor(data[3].i64); - - data[invocation].i64.x = subgroupExclusiveAdd(data[0].i64.x); - data[invocation].i64.xy = subgroupExclusiveAdd(data[1].i64.xy); - data[invocation].i64.xyz = subgroupExclusiveAdd(data[2].i64.xyz); - data[invocation].i64 = subgroupExclusiveAdd(data[3].i64); - - data[invocation].i64.x = subgroupExclusiveMul(data[0].i64.x); - data[invocation].i64.xy = subgroupExclusiveMul(data[1].i64.xy); - data[invocation].i64.xyz = subgroupExclusiveMul(data[2].i64.xyz); - data[invocation].i64 = subgroupExclusiveMul(data[3].i64); - - data[invocation].i64.x = subgroupExclusiveMin(data[0].i64.x); - data[invocation].i64.xy = subgroupExclusiveMin(data[1].i64.xy); - data[invocation].i64.xyz = subgroupExclusiveMin(data[2].i64.xyz); - data[invocation].i64 = subgroupExclusiveMin(data[3].i64); - - data[invocation].i64.x = subgroupExclusiveMax(data[0].i64.x); - data[invocation].i64.xy = subgroupExclusiveMax(data[1].i64.xy); - data[invocation].i64.xyz = subgroupExclusiveMax(data[2].i64.xyz); - data[invocation].i64 = subgroupExclusiveMax(data[3].i64); - - data[invocation].i64.x = subgroupExclusiveAnd(data[0].i64.x); - data[invocation].i64.xy = subgroupExclusiveAnd(data[1].i64.xy); - data[invocation].i64.xyz = subgroupExclusiveAnd(data[2].i64.xyz); - data[invocation].i64 = subgroupExclusiveAnd(data[3].i64); - - data[invocation].i64.x = subgroupExclusiveOr(data[0].i64.x); - data[invocation].i64.xy = subgroupExclusiveOr(data[1].i64.xy); - data[invocation].i64.xyz = subgroupExclusiveOr(data[2].i64.xyz); - data[invocation].i64 = subgroupExclusiveOr(data[3].i64); - - data[invocation].i64.x = subgroupExclusiveXor(data[0].i64.x); - data[invocation].i64.xy = subgroupExclusiveXor(data[1].i64.xy); - data[invocation].i64.xyz = subgroupExclusiveXor(data[2].i64.xyz); - data[invocation].i64 = subgroupExclusiveXor(data[3].i64); - - data[invocation].u64.x = subgroupAdd(data[0].u64.x); - data[invocation].u64.xy = subgroupAdd(data[1].u64.xy); - data[invocation].u64.xyz = subgroupAdd(data[2].u64.xyz); - data[invocation].u64 = subgroupAdd(data[3].u64); - - data[invocation].u64.x = subgroupMul(data[0].u64.x); - data[invocation].u64.xy = subgroupMul(data[1].u64.xy); - data[invocation].u64.xyz = subgroupMul(data[2].u64.xyz); - data[invocation].u64 = subgroupMul(data[3].u64); - - data[invocation].u64.x = subgroupMin(data[0].u64.x); - data[invocation].u64.xy = subgroupMin(data[1].u64.xy); - data[invocation].u64.xyz = subgroupMin(data[2].u64.xyz); - data[invocation].u64 = subgroupMin(data[3].u64); - - data[invocation].u64.x = subgroupMax(data[0].u64.x); - data[invocation].u64.xy = subgroupMax(data[1].u64.xy); - data[invocation].u64.xyz = subgroupMax(data[2].u64.xyz); - data[invocation].u64 = subgroupMax(data[3].u64); - - data[invocation].u64.x = subgroupAnd(data[0].u64.x); - data[invocation].u64.xy = subgroupAnd(data[1].u64.xy); - data[invocation].u64.xyz = subgroupAnd(data[2].u64.xyz); - data[invocation].u64 = subgroupAnd(data[3].u64); - - data[invocation].u64.x = subgroupOr(data[0].u64.x); - data[invocation].u64.xy = subgroupOr(data[1].u64.xy); - data[invocation].u64.xyz = subgroupOr(data[2].u64.xyz); - data[invocation].u64 = subgroupOr(data[3].u64); - - data[invocation].u64.x = subgroupXor(data[0].u64.x); - data[invocation].u64.xy = subgroupXor(data[1].u64.xy); - data[invocation].u64.xyz = subgroupXor(data[2].u64.xyz); - data[invocation].u64 = subgroupXor(data[3].u64); - - data[invocation].u64.x = subgroupInclusiveAdd(data[0].u64.x); - data[invocation].u64.xy = subgroupInclusiveAdd(data[1].u64.xy); - data[invocation].u64.xyz = subgroupInclusiveAdd(data[2].u64.xyz); - data[invocation].u64 = subgroupInclusiveAdd(data[3].u64); - - data[invocation].u64.x = subgroupInclusiveMul(data[0].u64.x); - data[invocation].u64.xy = subgroupInclusiveMul(data[1].u64.xy); - data[invocation].u64.xyz = subgroupInclusiveMul(data[2].u64.xyz); - data[invocation].u64 = subgroupInclusiveMul(data[3].u64); - - data[invocation].u64.x = subgroupInclusiveMin(data[0].u64.x); - data[invocation].u64.xy = subgroupInclusiveMin(data[1].u64.xy); - data[invocation].u64.xyz = subgroupInclusiveMin(data[2].u64.xyz); - data[invocation].u64 = subgroupInclusiveMin(data[3].u64); - - data[invocation].u64.x = subgroupInclusiveMax(data[0].u64.x); - data[invocation].u64.xy = subgroupInclusiveMax(data[1].u64.xy); - data[invocation].u64.xyz = subgroupInclusiveMax(data[2].u64.xyz); - data[invocation].u64 = subgroupInclusiveMax(data[3].u64); - - data[invocation].u64.x = subgroupInclusiveAnd(data[0].u64.x); - data[invocation].u64.xy = subgroupInclusiveAnd(data[1].u64.xy); - data[invocation].u64.xyz = subgroupInclusiveAnd(data[2].u64.xyz); - data[invocation].u64 = subgroupInclusiveAnd(data[3].u64); - - data[invocation].u64.x = subgroupInclusiveOr(data[0].u64.x); - data[invocation].u64.xy = subgroupInclusiveOr(data[1].u64.xy); - data[invocation].u64.xyz = subgroupInclusiveOr(data[2].u64.xyz); - data[invocation].u64 = subgroupInclusiveOr(data[3].u64); - - data[invocation].u64.x = subgroupInclusiveXor(data[0].u64.x); - data[invocation].u64.xy = subgroupInclusiveXor(data[1].u64.xy); - data[invocation].u64.xyz = subgroupInclusiveXor(data[2].u64.xyz); - data[invocation].u64 = subgroupInclusiveXor(data[3].u64); - - data[invocation].u64.x = subgroupExclusiveAdd(data[0].u64.x); - data[invocation].u64.xy = subgroupExclusiveAdd(data[1].u64.xy); - data[invocation].u64.xyz = subgroupExclusiveAdd(data[2].u64.xyz); - data[invocation].u64 = subgroupExclusiveAdd(data[3].u64); - - data[invocation].u64.x = subgroupExclusiveMul(data[0].u64.x); - data[invocation].u64.xy = subgroupExclusiveMul(data[1].u64.xy); - data[invocation].u64.xyz = subgroupExclusiveMul(data[2].u64.xyz); - data[invocation].u64 = subgroupExclusiveMul(data[3].u64); - - data[invocation].u64.x = subgroupExclusiveMin(data[0].u64.x); - data[invocation].u64.xy = subgroupExclusiveMin(data[1].u64.xy); - data[invocation].u64.xyz = subgroupExclusiveMin(data[2].u64.xyz); - data[invocation].u64 = subgroupExclusiveMin(data[3].u64); - - data[invocation].u64.x = subgroupExclusiveMax(data[0].u64.x); - data[invocation].u64.xy = subgroupExclusiveMax(data[1].u64.xy); - data[invocation].u64.xyz = subgroupExclusiveMax(data[2].u64.xyz); - data[invocation].u64 = subgroupExclusiveMax(data[3].u64); - - data[invocation].u64.x = subgroupExclusiveAnd(data[0].u64.x); - data[invocation].u64.xy = subgroupExclusiveAnd(data[1].u64.xy); - data[invocation].u64.xyz = subgroupExclusiveAnd(data[2].u64.xyz); - data[invocation].u64 = subgroupExclusiveAnd(data[3].u64); - - data[invocation].u64.x = subgroupExclusiveOr(data[0].u64.x); - data[invocation].u64.xy = subgroupExclusiveOr(data[1].u64.xy); - data[invocation].u64.xyz = subgroupExclusiveOr(data[2].u64.xyz); - data[invocation].u64 = subgroupExclusiveOr(data[3].u64); - - data[invocation].u64.x = subgroupExclusiveXor(data[0].u64.x); - data[invocation].u64.xy = subgroupExclusiveXor(data[1].u64.xy); - data[invocation].u64.xyz = subgroupExclusiveXor(data[2].u64.xyz); - data[invocation].u64 = subgroupExclusiveXor(data[3].u64); - - data[invocation].f16.x = subgroupAdd(data[0].f16.x); - data[invocation].f16.xy = subgroupAdd(data[1].f16.xy); - data[invocation].f16.xyz = subgroupAdd(data[2].f16.xyz); - data[invocation].f16 = subgroupAdd(data[3].f16); - - data[invocation].f16.x = subgroupMul(data[0].f16.x); - data[invocation].f16.xy = subgroupMul(data[1].f16.xy); - data[invocation].f16.xyz = subgroupMul(data[2].f16.xyz); - data[invocation].f16 = subgroupMul(data[3].f16); - - data[invocation].f16.x = subgroupMin(data[0].f16.x); - data[invocation].f16.xy = subgroupMin(data[1].f16.xy); - data[invocation].f16.xyz = subgroupMin(data[2].f16.xyz); - data[invocation].f16 = subgroupMin(data[3].f16); - - data[invocation].f16.x = subgroupMax(data[0].f16.x); - data[invocation].f16.xy = subgroupMax(data[1].f16.xy); - data[invocation].f16.xyz = subgroupMax(data[2].f16.xyz); - data[invocation].f16 = subgroupMax(data[3].f16); - - data[invocation].f16.x = subgroupInclusiveAdd(data[0].f16.x); - data[invocation].f16.xy = subgroupInclusiveAdd(data[1].f16.xy); - data[invocation].f16.xyz = subgroupInclusiveAdd(data[2].f16.xyz); - data[invocation].f16 = subgroupInclusiveAdd(data[3].f16); - - data[invocation].f16.x = subgroupInclusiveMul(data[0].f16.x); - data[invocation].f16.xy = subgroupInclusiveMul(data[1].f16.xy); - data[invocation].f16.xyz = subgroupInclusiveMul(data[2].f16.xyz); - data[invocation].f16 = subgroupInclusiveMul(data[3].f16); - - data[invocation].f16.x = subgroupInclusiveMin(data[0].f16.x); - data[invocation].f16.xy = subgroupInclusiveMin(data[1].f16.xy); - data[invocation].f16.xyz = subgroupInclusiveMin(data[2].f16.xyz); - data[invocation].f16 = subgroupInclusiveMin(data[3].f16); - - data[invocation].f16.x = subgroupInclusiveMax(data[0].f16.x); - data[invocation].f16.xy = subgroupInclusiveMax(data[1].f16.xy); - data[invocation].f16.xyz = subgroupInclusiveMax(data[2].f16.xyz); - data[invocation].f16 = subgroupInclusiveMax(data[3].f16); - - data[invocation].f16.x = subgroupExclusiveAdd(data[0].f16.x); - data[invocation].f16.xy = subgroupExclusiveAdd(data[1].f16.xy); - data[invocation].f16.xyz = subgroupExclusiveAdd(data[2].f16.xyz); - data[invocation].f16 = subgroupExclusiveAdd(data[3].f16); - - data[invocation].f16.x = subgroupExclusiveMul(data[0].f16.x); - data[invocation].f16.xy = subgroupExclusiveMul(data[1].f16.xy); - data[invocation].f16.xyz = subgroupExclusiveMul(data[2].f16.xyz); - data[invocation].f16 = subgroupExclusiveMul(data[3].f16); - - data[invocation].f16.x = subgroupExclusiveMin(data[0].f16.x); - data[invocation].f16.xy = subgroupExclusiveMin(data[1].f16.xy); - data[invocation].f16.xyz = subgroupExclusiveMin(data[2].f16.xyz); - data[invocation].f16 = subgroupExclusiveMin(data[3].f16); - - data[invocation].f16.x = subgroupExclusiveMax(data[0].f16.x); - data[invocation].f16.xy = subgroupExclusiveMax(data[1].f16.xy); - data[invocation].f16.xyz = subgroupExclusiveMax(data[2].f16.xyz); - data[invocation].f16 = subgroupExclusiveMax(data[3].f16); -} diff --git a/deps/glslang/Test/spv.subgroupExtendedTypesArithmeticNeg.comp b/deps/glslang/Test/spv.subgroupExtendedTypesArithmeticNeg.comp deleted file mode 100644 index eb22cabf..00000000 --- a/deps/glslang/Test/spv.subgroupExtendedTypesArithmeticNeg.comp +++ /dev/null @@ -1,715 +0,0 @@ -#version 450 - -#extension GL_KHR_shader_subgroup_arithmetic: enable -#extension GL_EXT_shader_explicit_arithmetic_types_int8: enable -#extension GL_EXT_shader_explicit_arithmetic_types_int16: enable -#extension GL_EXT_shader_explicit_arithmetic_types_int64: enable -#extension GL_EXT_shader_explicit_arithmetic_types_float16: enable - -layout (local_size_x = 8) in; - -layout(binding = 0) buffer Buffers -{ - i8vec4 i8; - u8vec4 u8; - i16vec4 i16; - u16vec4 u16; - i64vec4 i64; - u64vec4 u64; - f16vec4 f16; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; - - data[invocation].i8.x = subgroupAdd(data[0].i8.x); - data[invocation].i8.xy = subgroupAdd(data[1].i8.xy); - data[invocation].i8.xyz = subgroupAdd(data[2].i8.xyz); - data[invocation].i8 = subgroupAdd(data[3].i8); - - data[invocation].i8.x = subgroupMul(data[0].i8.x); - data[invocation].i8.xy = subgroupMul(data[1].i8.xy); - data[invocation].i8.xyz = subgroupMul(data[2].i8.xyz); - data[invocation].i8 = subgroupMul(data[3].i8); - - data[invocation].i8.x = subgroupMin(data[0].i8.x); - data[invocation].i8.xy = subgroupMin(data[1].i8.xy); - data[invocation].i8.xyz = subgroupMin(data[2].i8.xyz); - data[invocation].i8 = subgroupMin(data[3].i8); - - data[invocation].i8.x = subgroupMax(data[0].i8.x); - data[invocation].i8.xy = subgroupMax(data[1].i8.xy); - data[invocation].i8.xyz = subgroupMax(data[2].i8.xyz); - data[invocation].i8 = subgroupMax(data[3].i8); - - data[invocation].i8.x = subgroupAnd(data[0].i8.x); - data[invocation].i8.xy = subgroupAnd(data[1].i8.xy); - data[invocation].i8.xyz = subgroupAnd(data[2].i8.xyz); - data[invocation].i8 = subgroupAnd(data[3].i8); - - data[invocation].i8.x = subgroupOr(data[0].i8.x); - data[invocation].i8.xy = subgroupOr(data[1].i8.xy); - data[invocation].i8.xyz = subgroupOr(data[2].i8.xyz); - data[invocation].i8 = subgroupOr(data[3].i8); - - data[invocation].i8.x = subgroupXor(data[0].i8.x); - data[invocation].i8.xy = subgroupXor(data[1].i8.xy); - data[invocation].i8.xyz = subgroupXor(data[2].i8.xyz); - data[invocation].i8 = subgroupXor(data[3].i8); - - data[invocation].i8.x = subgroupInclusiveAdd(data[0].i8.x); - data[invocation].i8.xy = subgroupInclusiveAdd(data[1].i8.xy); - data[invocation].i8.xyz = subgroupInclusiveAdd(data[2].i8.xyz); - data[invocation].i8 = subgroupInclusiveAdd(data[3].i8); - - data[invocation].i8.x = subgroupInclusiveMul(data[0].i8.x); - data[invocation].i8.xy = subgroupInclusiveMul(data[1].i8.xy); - data[invocation].i8.xyz = subgroupInclusiveMul(data[2].i8.xyz); - data[invocation].i8 = subgroupInclusiveMul(data[3].i8); - - data[invocation].i8.x = subgroupInclusiveMin(data[0].i8.x); - data[invocation].i8.xy = subgroupInclusiveMin(data[1].i8.xy); - data[invocation].i8.xyz = subgroupInclusiveMin(data[2].i8.xyz); - data[invocation].i8 = subgroupInclusiveMin(data[3].i8); - - data[invocation].i8.x = subgroupInclusiveMax(data[0].i8.x); - data[invocation].i8.xy = subgroupInclusiveMax(data[1].i8.xy); - data[invocation].i8.xyz = subgroupInclusiveMax(data[2].i8.xyz); - data[invocation].i8 = subgroupInclusiveMax(data[3].i8); - - data[invocation].i8.x = subgroupInclusiveAnd(data[0].i8.x); - data[invocation].i8.xy = subgroupInclusiveAnd(data[1].i8.xy); - data[invocation].i8.xyz = subgroupInclusiveAnd(data[2].i8.xyz); - data[invocation].i8 = subgroupInclusiveAnd(data[3].i8); - - data[invocation].i8.x = subgroupInclusiveOr(data[0].i8.x); - data[invocation].i8.xy = subgroupInclusiveOr(data[1].i8.xy); - data[invocation].i8.xyz = subgroupInclusiveOr(data[2].i8.xyz); - data[invocation].i8 = subgroupInclusiveOr(data[3].i8); - - data[invocation].i8.x = subgroupInclusiveXor(data[0].i8.x); - data[invocation].i8.xy = subgroupInclusiveXor(data[1].i8.xy); - data[invocation].i8.xyz = subgroupInclusiveXor(data[2].i8.xyz); - data[invocation].i8 = subgroupInclusiveXor(data[3].i8); - - data[invocation].i8.x = subgroupExclusiveAdd(data[0].i8.x); - data[invocation].i8.xy = subgroupExclusiveAdd(data[1].i8.xy); - data[invocation].i8.xyz = subgroupExclusiveAdd(data[2].i8.xyz); - data[invocation].i8 = subgroupExclusiveAdd(data[3].i8); - - data[invocation].i8.x = subgroupExclusiveMul(data[0].i8.x); - data[invocation].i8.xy = subgroupExclusiveMul(data[1].i8.xy); - data[invocation].i8.xyz = subgroupExclusiveMul(data[2].i8.xyz); - data[invocation].i8 = subgroupExclusiveMul(data[3].i8); - - data[invocation].i8.x = subgroupExclusiveMin(data[0].i8.x); - data[invocation].i8.xy = subgroupExclusiveMin(data[1].i8.xy); - data[invocation].i8.xyz = subgroupExclusiveMin(data[2].i8.xyz); - data[invocation].i8 = subgroupExclusiveMin(data[3].i8); - - data[invocation].i8.x = subgroupExclusiveMax(data[0].i8.x); - data[invocation].i8.xy = subgroupExclusiveMax(data[1].i8.xy); - data[invocation].i8.xyz = subgroupExclusiveMax(data[2].i8.xyz); - data[invocation].i8 = subgroupExclusiveMax(data[3].i8); - - data[invocation].i8.x = subgroupExclusiveAnd(data[0].i8.x); - data[invocation].i8.xy = subgroupExclusiveAnd(data[1].i8.xy); - data[invocation].i8.xyz = subgroupExclusiveAnd(data[2].i8.xyz); - data[invocation].i8 = subgroupExclusiveAnd(data[3].i8); - - data[invocation].i8.x = subgroupExclusiveOr(data[0].i8.x); - data[invocation].i8.xy = subgroupExclusiveOr(data[1].i8.xy); - data[invocation].i8.xyz = subgroupExclusiveOr(data[2].i8.xyz); - data[invocation].i8 = subgroupExclusiveOr(data[3].i8); - - data[invocation].i8.x = subgroupExclusiveXor(data[0].i8.x); - data[invocation].i8.xy = subgroupExclusiveXor(data[1].i8.xy); - data[invocation].i8.xyz = subgroupExclusiveXor(data[2].i8.xyz); - data[invocation].i8 = subgroupExclusiveXor(data[3].i8); - - data[invocation].u8.x = subgroupAdd(data[0].u8.x); - data[invocation].u8.xy = subgroupAdd(data[1].u8.xy); - data[invocation].u8.xyz = subgroupAdd(data[2].u8.xyz); - data[invocation].u8 = subgroupAdd(data[3].u8); - - data[invocation].u8.x = subgroupMul(data[0].u8.x); - data[invocation].u8.xy = subgroupMul(data[1].u8.xy); - data[invocation].u8.xyz = subgroupMul(data[2].u8.xyz); - data[invocation].u8 = subgroupMul(data[3].u8); - - data[invocation].u8.x = subgroupMin(data[0].u8.x); - data[invocation].u8.xy = subgroupMin(data[1].u8.xy); - data[invocation].u8.xyz = subgroupMin(data[2].u8.xyz); - data[invocation].u8 = subgroupMin(data[3].u8); - - data[invocation].u8.x = subgroupMax(data[0].u8.x); - data[invocation].u8.xy = subgroupMax(data[1].u8.xy); - data[invocation].u8.xyz = subgroupMax(data[2].u8.xyz); - data[invocation].u8 = subgroupMax(data[3].u8); - - data[invocation].u8.x = subgroupAnd(data[0].u8.x); - data[invocation].u8.xy = subgroupAnd(data[1].u8.xy); - data[invocation].u8.xyz = subgroupAnd(data[2].u8.xyz); - data[invocation].u8 = subgroupAnd(data[3].u8); - - data[invocation].u8.x = subgroupOr(data[0].u8.x); - data[invocation].u8.xy = subgroupOr(data[1].u8.xy); - data[invocation].u8.xyz = subgroupOr(data[2].u8.xyz); - data[invocation].u8 = subgroupOr(data[3].u8); - - data[invocation].u8.x = subgroupXor(data[0].u8.x); - data[invocation].u8.xy = subgroupXor(data[1].u8.xy); - data[invocation].u8.xyz = subgroupXor(data[2].u8.xyz); - data[invocation].u8 = subgroupXor(data[3].u8); - - data[invocation].u8.x = subgroupInclusiveAdd(data[0].u8.x); - data[invocation].u8.xy = subgroupInclusiveAdd(data[1].u8.xy); - data[invocation].u8.xyz = subgroupInclusiveAdd(data[2].u8.xyz); - data[invocation].u8 = subgroupInclusiveAdd(data[3].u8); - - data[invocation].u8.x = subgroupInclusiveMul(data[0].u8.x); - data[invocation].u8.xy = subgroupInclusiveMul(data[1].u8.xy); - data[invocation].u8.xyz = subgroupInclusiveMul(data[2].u8.xyz); - data[invocation].u8 = subgroupInclusiveMul(data[3].u8); - - data[invocation].u8.x = subgroupInclusiveMin(data[0].u8.x); - data[invocation].u8.xy = subgroupInclusiveMin(data[1].u8.xy); - data[invocation].u8.xyz = subgroupInclusiveMin(data[2].u8.xyz); - data[invocation].u8 = subgroupInclusiveMin(data[3].u8); - - data[invocation].u8.x = subgroupInclusiveMax(data[0].u8.x); - data[invocation].u8.xy = subgroupInclusiveMax(data[1].u8.xy); - data[invocation].u8.xyz = subgroupInclusiveMax(data[2].u8.xyz); - data[invocation].u8 = subgroupInclusiveMax(data[3].u8); - - data[invocation].u8.x = subgroupInclusiveAnd(data[0].u8.x); - data[invocation].u8.xy = subgroupInclusiveAnd(data[1].u8.xy); - data[invocation].u8.xyz = subgroupInclusiveAnd(data[2].u8.xyz); - data[invocation].u8 = subgroupInclusiveAnd(data[3].u8); - - data[invocation].u8.x = subgroupInclusiveOr(data[0].u8.x); - data[invocation].u8.xy = subgroupInclusiveOr(data[1].u8.xy); - data[invocation].u8.xyz = subgroupInclusiveOr(data[2].u8.xyz); - data[invocation].u8 = subgroupInclusiveOr(data[3].u8); - - data[invocation].u8.x = subgroupInclusiveXor(data[0].u8.x); - data[invocation].u8.xy = subgroupInclusiveXor(data[1].u8.xy); - data[invocation].u8.xyz = subgroupInclusiveXor(data[2].u8.xyz); - data[invocation].u8 = subgroupInclusiveXor(data[3].u8); - - data[invocation].u8.x = subgroupExclusiveAdd(data[0].u8.x); - data[invocation].u8.xy = subgroupExclusiveAdd(data[1].u8.xy); - data[invocation].u8.xyz = subgroupExclusiveAdd(data[2].u8.xyz); - data[invocation].u8 = subgroupExclusiveAdd(data[3].u8); - - data[invocation].u8.x = subgroupExclusiveMul(data[0].u8.x); - data[invocation].u8.xy = subgroupExclusiveMul(data[1].u8.xy); - data[invocation].u8.xyz = subgroupExclusiveMul(data[2].u8.xyz); - data[invocation].u8 = subgroupExclusiveMul(data[3].u8); - - data[invocation].u8.x = subgroupExclusiveMin(data[0].u8.x); - data[invocation].u8.xy = subgroupExclusiveMin(data[1].u8.xy); - data[invocation].u8.xyz = subgroupExclusiveMin(data[2].u8.xyz); - data[invocation].u8 = subgroupExclusiveMin(data[3].u8); - - data[invocation].u8.x = subgroupExclusiveMax(data[0].u8.x); - data[invocation].u8.xy = subgroupExclusiveMax(data[1].u8.xy); - data[invocation].u8.xyz = subgroupExclusiveMax(data[2].u8.xyz); - data[invocation].u8 = subgroupExclusiveMax(data[3].u8); - - data[invocation].u8.x = subgroupExclusiveAnd(data[0].u8.x); - data[invocation].u8.xy = subgroupExclusiveAnd(data[1].u8.xy); - data[invocation].u8.xyz = subgroupExclusiveAnd(data[2].u8.xyz); - data[invocation].u8 = subgroupExclusiveAnd(data[3].u8); - - data[invocation].u8.x = subgroupExclusiveOr(data[0].u8.x); - data[invocation].u8.xy = subgroupExclusiveOr(data[1].u8.xy); - data[invocation].u8.xyz = subgroupExclusiveOr(data[2].u8.xyz); - data[invocation].u8 = subgroupExclusiveOr(data[3].u8); - - data[invocation].u8.x = subgroupExclusiveXor(data[0].u8.x); - data[invocation].u8.xy = subgroupExclusiveXor(data[1].u8.xy); - data[invocation].u8.xyz = subgroupExclusiveXor(data[2].u8.xyz); - data[invocation].u8 = subgroupExclusiveXor(data[3].u8); - - data[invocation].i16.x = subgroupAdd(data[0].i16.x); - data[invocation].i16.xy = subgroupAdd(data[1].i16.xy); - data[invocation].i16.xyz = subgroupAdd(data[2].i16.xyz); - data[invocation].i16 = subgroupAdd(data[3].i16); - - data[invocation].i16.x = subgroupMul(data[0].i16.x); - data[invocation].i16.xy = subgroupMul(data[1].i16.xy); - data[invocation].i16.xyz = subgroupMul(data[2].i16.xyz); - data[invocation].i16 = subgroupMul(data[3].i16); - - data[invocation].i16.x = subgroupMin(data[0].i16.x); - data[invocation].i16.xy = subgroupMin(data[1].i16.xy); - data[invocation].i16.xyz = subgroupMin(data[2].i16.xyz); - data[invocation].i16 = subgroupMin(data[3].i16); - - data[invocation].i16.x = subgroupMax(data[0].i16.x); - data[invocation].i16.xy = subgroupMax(data[1].i16.xy); - data[invocation].i16.xyz = subgroupMax(data[2].i16.xyz); - data[invocation].i16 = subgroupMax(data[3].i16); - - data[invocation].i16.x = subgroupAnd(data[0].i16.x); - data[invocation].i16.xy = subgroupAnd(data[1].i16.xy); - data[invocation].i16.xyz = subgroupAnd(data[2].i16.xyz); - data[invocation].i16 = subgroupAnd(data[3].i16); - - data[invocation].i16.x = subgroupOr(data[0].i16.x); - data[invocation].i16.xy = subgroupOr(data[1].i16.xy); - data[invocation].i16.xyz = subgroupOr(data[2].i16.xyz); - data[invocation].i16 = subgroupOr(data[3].i16); - - data[invocation].i16.x = subgroupXor(data[0].i16.x); - data[invocation].i16.xy = subgroupXor(data[1].i16.xy); - data[invocation].i16.xyz = subgroupXor(data[2].i16.xyz); - data[invocation].i16 = subgroupXor(data[3].i16); - - data[invocation].i16.x = subgroupInclusiveAdd(data[0].i16.x); - data[invocation].i16.xy = subgroupInclusiveAdd(data[1].i16.xy); - data[invocation].i16.xyz = subgroupInclusiveAdd(data[2].i16.xyz); - data[invocation].i16 = subgroupInclusiveAdd(data[3].i16); - - data[invocation].i16.x = subgroupInclusiveMul(data[0].i16.x); - data[invocation].i16.xy = subgroupInclusiveMul(data[1].i16.xy); - data[invocation].i16.xyz = subgroupInclusiveMul(data[2].i16.xyz); - data[invocation].i16 = subgroupInclusiveMul(data[3].i16); - - data[invocation].i16.x = subgroupInclusiveMin(data[0].i16.x); - data[invocation].i16.xy = subgroupInclusiveMin(data[1].i16.xy); - data[invocation].i16.xyz = subgroupInclusiveMin(data[2].i16.xyz); - data[invocation].i16 = subgroupInclusiveMin(data[3].i16); - - data[invocation].i16.x = subgroupInclusiveMax(data[0].i16.x); - data[invocation].i16.xy = subgroupInclusiveMax(data[1].i16.xy); - data[invocation].i16.xyz = subgroupInclusiveMax(data[2].i16.xyz); - data[invocation].i16 = subgroupInclusiveMax(data[3].i16); - - data[invocation].i16.x = subgroupInclusiveAnd(data[0].i16.x); - data[invocation].i16.xy = subgroupInclusiveAnd(data[1].i16.xy); - data[invocation].i16.xyz = subgroupInclusiveAnd(data[2].i16.xyz); - data[invocation].i16 = subgroupInclusiveAnd(data[3].i16); - - data[invocation].i16.x = subgroupInclusiveOr(data[0].i16.x); - data[invocation].i16.xy = subgroupInclusiveOr(data[1].i16.xy); - data[invocation].i16.xyz = subgroupInclusiveOr(data[2].i16.xyz); - data[invocation].i16 = subgroupInclusiveOr(data[3].i16); - - data[invocation].i16.x = subgroupInclusiveXor(data[0].i16.x); - data[invocation].i16.xy = subgroupInclusiveXor(data[1].i16.xy); - data[invocation].i16.xyz = subgroupInclusiveXor(data[2].i16.xyz); - data[invocation].i16 = subgroupInclusiveXor(data[3].i16); - - data[invocation].i16.x = subgroupExclusiveAdd(data[0].i16.x); - data[invocation].i16.xy = subgroupExclusiveAdd(data[1].i16.xy); - data[invocation].i16.xyz = subgroupExclusiveAdd(data[2].i16.xyz); - data[invocation].i16 = subgroupExclusiveAdd(data[3].i16); - - data[invocation].i16.x = subgroupExclusiveMul(data[0].i16.x); - data[invocation].i16.xy = subgroupExclusiveMul(data[1].i16.xy); - data[invocation].i16.xyz = subgroupExclusiveMul(data[2].i16.xyz); - data[invocation].i16 = subgroupExclusiveMul(data[3].i16); - - data[invocation].i16.x = subgroupExclusiveMin(data[0].i16.x); - data[invocation].i16.xy = subgroupExclusiveMin(data[1].i16.xy); - data[invocation].i16.xyz = subgroupExclusiveMin(data[2].i16.xyz); - data[invocation].i16 = subgroupExclusiveMin(data[3].i16); - - data[invocation].i16.x = subgroupExclusiveMax(data[0].i16.x); - data[invocation].i16.xy = subgroupExclusiveMax(data[1].i16.xy); - data[invocation].i16.xyz = subgroupExclusiveMax(data[2].i16.xyz); - data[invocation].i16 = subgroupExclusiveMax(data[3].i16); - - data[invocation].i16.x = subgroupExclusiveAnd(data[0].i16.x); - data[invocation].i16.xy = subgroupExclusiveAnd(data[1].i16.xy); - data[invocation].i16.xyz = subgroupExclusiveAnd(data[2].i16.xyz); - data[invocation].i16 = subgroupExclusiveAnd(data[3].i16); - - data[invocation].i16.x = subgroupExclusiveOr(data[0].i16.x); - data[invocation].i16.xy = subgroupExclusiveOr(data[1].i16.xy); - data[invocation].i16.xyz = subgroupExclusiveOr(data[2].i16.xyz); - data[invocation].i16 = subgroupExclusiveOr(data[3].i16); - - data[invocation].i16.x = subgroupExclusiveXor(data[0].i16.x); - data[invocation].i16.xy = subgroupExclusiveXor(data[1].i16.xy); - data[invocation].i16.xyz = subgroupExclusiveXor(data[2].i16.xyz); - data[invocation].i16 = subgroupExclusiveXor(data[3].i16); - - data[invocation].u16.x = subgroupAdd(data[0].u16.x); - data[invocation].u16.xy = subgroupAdd(data[1].u16.xy); - data[invocation].u16.xyz = subgroupAdd(data[2].u16.xyz); - data[invocation].u16 = subgroupAdd(data[3].u16); - - data[invocation].u16.x = subgroupMul(data[0].u16.x); - data[invocation].u16.xy = subgroupMul(data[1].u16.xy); - data[invocation].u16.xyz = subgroupMul(data[2].u16.xyz); - data[invocation].u16 = subgroupMul(data[3].u16); - - data[invocation].u16.x = subgroupMin(data[0].u16.x); - data[invocation].u16.xy = subgroupMin(data[1].u16.xy); - data[invocation].u16.xyz = subgroupMin(data[2].u16.xyz); - data[invocation].u16 = subgroupMin(data[3].u16); - - data[invocation].u16.x = subgroupMax(data[0].u16.x); - data[invocation].u16.xy = subgroupMax(data[1].u16.xy); - data[invocation].u16.xyz = subgroupMax(data[2].u16.xyz); - data[invocation].u16 = subgroupMax(data[3].u16); - - data[invocation].u16.x = subgroupAnd(data[0].u16.x); - data[invocation].u16.xy = subgroupAnd(data[1].u16.xy); - data[invocation].u16.xyz = subgroupAnd(data[2].u16.xyz); - data[invocation].u16 = subgroupAnd(data[3].u16); - - data[invocation].u16.x = subgroupOr(data[0].u16.x); - data[invocation].u16.xy = subgroupOr(data[1].u16.xy); - data[invocation].u16.xyz = subgroupOr(data[2].u16.xyz); - data[invocation].u16 = subgroupOr(data[3].u16); - - data[invocation].u16.x = subgroupXor(data[0].u16.x); - data[invocation].u16.xy = subgroupXor(data[1].u16.xy); - data[invocation].u16.xyz = subgroupXor(data[2].u16.xyz); - data[invocation].u16 = subgroupXor(data[3].u16); - - data[invocation].u16.x = subgroupInclusiveAdd(data[0].u16.x); - data[invocation].u16.xy = subgroupInclusiveAdd(data[1].u16.xy); - data[invocation].u16.xyz = subgroupInclusiveAdd(data[2].u16.xyz); - data[invocation].u16 = subgroupInclusiveAdd(data[3].u16); - - data[invocation].u16.x = subgroupInclusiveMul(data[0].u16.x); - data[invocation].u16.xy = subgroupInclusiveMul(data[1].u16.xy); - data[invocation].u16.xyz = subgroupInclusiveMul(data[2].u16.xyz); - data[invocation].u16 = subgroupInclusiveMul(data[3].u16); - - data[invocation].u16.x = subgroupInclusiveMin(data[0].u16.x); - data[invocation].u16.xy = subgroupInclusiveMin(data[1].u16.xy); - data[invocation].u16.xyz = subgroupInclusiveMin(data[2].u16.xyz); - data[invocation].u16 = subgroupInclusiveMin(data[3].u16); - - data[invocation].u16.x = subgroupInclusiveMax(data[0].u16.x); - data[invocation].u16.xy = subgroupInclusiveMax(data[1].u16.xy); - data[invocation].u16.xyz = subgroupInclusiveMax(data[2].u16.xyz); - data[invocation].u16 = subgroupInclusiveMax(data[3].u16); - - data[invocation].u16.x = subgroupInclusiveAnd(data[0].u16.x); - data[invocation].u16.xy = subgroupInclusiveAnd(data[1].u16.xy); - data[invocation].u16.xyz = subgroupInclusiveAnd(data[2].u16.xyz); - data[invocation].u16 = subgroupInclusiveAnd(data[3].u16); - - data[invocation].u16.x = subgroupInclusiveOr(data[0].u16.x); - data[invocation].u16.xy = subgroupInclusiveOr(data[1].u16.xy); - data[invocation].u16.xyz = subgroupInclusiveOr(data[2].u16.xyz); - data[invocation].u16 = subgroupInclusiveOr(data[3].u16); - - data[invocation].u16.x = subgroupInclusiveXor(data[0].u16.x); - data[invocation].u16.xy = subgroupInclusiveXor(data[1].u16.xy); - data[invocation].u16.xyz = subgroupInclusiveXor(data[2].u16.xyz); - data[invocation].u16 = subgroupInclusiveXor(data[3].u16); - - data[invocation].u16.x = subgroupExclusiveAdd(data[0].u16.x); - data[invocation].u16.xy = subgroupExclusiveAdd(data[1].u16.xy); - data[invocation].u16.xyz = subgroupExclusiveAdd(data[2].u16.xyz); - data[invocation].u16 = subgroupExclusiveAdd(data[3].u16); - - data[invocation].u16.x = subgroupExclusiveMul(data[0].u16.x); - data[invocation].u16.xy = subgroupExclusiveMul(data[1].u16.xy); - data[invocation].u16.xyz = subgroupExclusiveMul(data[2].u16.xyz); - data[invocation].u16 = subgroupExclusiveMul(data[3].u16); - - data[invocation].u16.x = subgroupExclusiveMin(data[0].u16.x); - data[invocation].u16.xy = subgroupExclusiveMin(data[1].u16.xy); - data[invocation].u16.xyz = subgroupExclusiveMin(data[2].u16.xyz); - data[invocation].u16 = subgroupExclusiveMin(data[3].u16); - - data[invocation].u16.x = subgroupExclusiveMax(data[0].u16.x); - data[invocation].u16.xy = subgroupExclusiveMax(data[1].u16.xy); - data[invocation].u16.xyz = subgroupExclusiveMax(data[2].u16.xyz); - data[invocation].u16 = subgroupExclusiveMax(data[3].u16); - - data[invocation].u16.x = subgroupExclusiveAnd(data[0].u16.x); - data[invocation].u16.xy = subgroupExclusiveAnd(data[1].u16.xy); - data[invocation].u16.xyz = subgroupExclusiveAnd(data[2].u16.xyz); - data[invocation].u16 = subgroupExclusiveAnd(data[3].u16); - - data[invocation].u16.x = subgroupExclusiveOr(data[0].u16.x); - data[invocation].u16.xy = subgroupExclusiveOr(data[1].u16.xy); - data[invocation].u16.xyz = subgroupExclusiveOr(data[2].u16.xyz); - data[invocation].u16 = subgroupExclusiveOr(data[3].u16); - - data[invocation].u16.x = subgroupExclusiveXor(data[0].u16.x); - data[invocation].u16.xy = subgroupExclusiveXor(data[1].u16.xy); - data[invocation].u16.xyz = subgroupExclusiveXor(data[2].u16.xyz); - data[invocation].u16 = subgroupExclusiveXor(data[3].u16); - - data[invocation].i64.x = subgroupAdd(data[0].i64.x); - data[invocation].i64.xy = subgroupAdd(data[1].i64.xy); - data[invocation].i64.xyz = subgroupAdd(data[2].i64.xyz); - data[invocation].i64 = subgroupAdd(data[3].i64); - - data[invocation].i64.x = subgroupMul(data[0].i64.x); - data[invocation].i64.xy = subgroupMul(data[1].i64.xy); - data[invocation].i64.xyz = subgroupMul(data[2].i64.xyz); - data[invocation].i64 = subgroupMul(data[3].i64); - - data[invocation].i64.x = subgroupMin(data[0].i64.x); - data[invocation].i64.xy = subgroupMin(data[1].i64.xy); - data[invocation].i64.xyz = subgroupMin(data[2].i64.xyz); - data[invocation].i64 = subgroupMin(data[3].i64); - - data[invocation].i64.x = subgroupMax(data[0].i64.x); - data[invocation].i64.xy = subgroupMax(data[1].i64.xy); - data[invocation].i64.xyz = subgroupMax(data[2].i64.xyz); - data[invocation].i64 = subgroupMax(data[3].i64); - - data[invocation].i64.x = subgroupAnd(data[0].i64.x); - data[invocation].i64.xy = subgroupAnd(data[1].i64.xy); - data[invocation].i64.xyz = subgroupAnd(data[2].i64.xyz); - data[invocation].i64 = subgroupAnd(data[3].i64); - - data[invocation].i64.x = subgroupOr(data[0].i64.x); - data[invocation].i64.xy = subgroupOr(data[1].i64.xy); - data[invocation].i64.xyz = subgroupOr(data[2].i64.xyz); - data[invocation].i64 = subgroupOr(data[3].i64); - - data[invocation].i64.x = subgroupXor(data[0].i64.x); - data[invocation].i64.xy = subgroupXor(data[1].i64.xy); - data[invocation].i64.xyz = subgroupXor(data[2].i64.xyz); - data[invocation].i64 = subgroupXor(data[3].i64); - - data[invocation].i64.x = subgroupInclusiveAdd(data[0].i64.x); - data[invocation].i64.xy = subgroupInclusiveAdd(data[1].i64.xy); - data[invocation].i64.xyz = subgroupInclusiveAdd(data[2].i64.xyz); - data[invocation].i64 = subgroupInclusiveAdd(data[3].i64); - - data[invocation].i64.x = subgroupInclusiveMul(data[0].i64.x); - data[invocation].i64.xy = subgroupInclusiveMul(data[1].i64.xy); - data[invocation].i64.xyz = subgroupInclusiveMul(data[2].i64.xyz); - data[invocation].i64 = subgroupInclusiveMul(data[3].i64); - - data[invocation].i64.x = subgroupInclusiveMin(data[0].i64.x); - data[invocation].i64.xy = subgroupInclusiveMin(data[1].i64.xy); - data[invocation].i64.xyz = subgroupInclusiveMin(data[2].i64.xyz); - data[invocation].i64 = subgroupInclusiveMin(data[3].i64); - - data[invocation].i64.x = subgroupInclusiveMax(data[0].i64.x); - data[invocation].i64.xy = subgroupInclusiveMax(data[1].i64.xy); - data[invocation].i64.xyz = subgroupInclusiveMax(data[2].i64.xyz); - data[invocation].i64 = subgroupInclusiveMax(data[3].i64); - - data[invocation].i64.x = subgroupInclusiveAnd(data[0].i64.x); - data[invocation].i64.xy = subgroupInclusiveAnd(data[1].i64.xy); - data[invocation].i64.xyz = subgroupInclusiveAnd(data[2].i64.xyz); - data[invocation].i64 = subgroupInclusiveAnd(data[3].i64); - - data[invocation].i64.x = subgroupInclusiveOr(data[0].i64.x); - data[invocation].i64.xy = subgroupInclusiveOr(data[1].i64.xy); - data[invocation].i64.xyz = subgroupInclusiveOr(data[2].i64.xyz); - data[invocation].i64 = subgroupInclusiveOr(data[3].i64); - - data[invocation].i64.x = subgroupInclusiveXor(data[0].i64.x); - data[invocation].i64.xy = subgroupInclusiveXor(data[1].i64.xy); - data[invocation].i64.xyz = subgroupInclusiveXor(data[2].i64.xyz); - data[invocation].i64 = subgroupInclusiveXor(data[3].i64); - - data[invocation].i64.x = subgroupExclusiveAdd(data[0].i64.x); - data[invocation].i64.xy = subgroupExclusiveAdd(data[1].i64.xy); - data[invocation].i64.xyz = subgroupExclusiveAdd(data[2].i64.xyz); - data[invocation].i64 = subgroupExclusiveAdd(data[3].i64); - - data[invocation].i64.x = subgroupExclusiveMul(data[0].i64.x); - data[invocation].i64.xy = subgroupExclusiveMul(data[1].i64.xy); - data[invocation].i64.xyz = subgroupExclusiveMul(data[2].i64.xyz); - data[invocation].i64 = subgroupExclusiveMul(data[3].i64); - - data[invocation].i64.x = subgroupExclusiveMin(data[0].i64.x); - data[invocation].i64.xy = subgroupExclusiveMin(data[1].i64.xy); - data[invocation].i64.xyz = subgroupExclusiveMin(data[2].i64.xyz); - data[invocation].i64 = subgroupExclusiveMin(data[3].i64); - - data[invocation].i64.x = subgroupExclusiveMax(data[0].i64.x); - data[invocation].i64.xy = subgroupExclusiveMax(data[1].i64.xy); - data[invocation].i64.xyz = subgroupExclusiveMax(data[2].i64.xyz); - data[invocation].i64 = subgroupExclusiveMax(data[3].i64); - - data[invocation].i64.x = subgroupExclusiveAnd(data[0].i64.x); - data[invocation].i64.xy = subgroupExclusiveAnd(data[1].i64.xy); - data[invocation].i64.xyz = subgroupExclusiveAnd(data[2].i64.xyz); - data[invocation].i64 = subgroupExclusiveAnd(data[3].i64); - - data[invocation].i64.x = subgroupExclusiveOr(data[0].i64.x); - data[invocation].i64.xy = subgroupExclusiveOr(data[1].i64.xy); - data[invocation].i64.xyz = subgroupExclusiveOr(data[2].i64.xyz); - data[invocation].i64 = subgroupExclusiveOr(data[3].i64); - - data[invocation].i64.x = subgroupExclusiveXor(data[0].i64.x); - data[invocation].i64.xy = subgroupExclusiveXor(data[1].i64.xy); - data[invocation].i64.xyz = subgroupExclusiveXor(data[2].i64.xyz); - data[invocation].i64 = subgroupExclusiveXor(data[3].i64); - - data[invocation].u64.x = subgroupAdd(data[0].u64.x); - data[invocation].u64.xy = subgroupAdd(data[1].u64.xy); - data[invocation].u64.xyz = subgroupAdd(data[2].u64.xyz); - data[invocation].u64 = subgroupAdd(data[3].u64); - - data[invocation].u64.x = subgroupMul(data[0].u64.x); - data[invocation].u64.xy = subgroupMul(data[1].u64.xy); - data[invocation].u64.xyz = subgroupMul(data[2].u64.xyz); - data[invocation].u64 = subgroupMul(data[3].u64); - - data[invocation].u64.x = subgroupMin(data[0].u64.x); - data[invocation].u64.xy = subgroupMin(data[1].u64.xy); - data[invocation].u64.xyz = subgroupMin(data[2].u64.xyz); - data[invocation].u64 = subgroupMin(data[3].u64); - - data[invocation].u64.x = subgroupMax(data[0].u64.x); - data[invocation].u64.xy = subgroupMax(data[1].u64.xy); - data[invocation].u64.xyz = subgroupMax(data[2].u64.xyz); - data[invocation].u64 = subgroupMax(data[3].u64); - - data[invocation].u64.x = subgroupAnd(data[0].u64.x); - data[invocation].u64.xy = subgroupAnd(data[1].u64.xy); - data[invocation].u64.xyz = subgroupAnd(data[2].u64.xyz); - data[invocation].u64 = subgroupAnd(data[3].u64); - - data[invocation].u64.x = subgroupOr(data[0].u64.x); - data[invocation].u64.xy = subgroupOr(data[1].u64.xy); - data[invocation].u64.xyz = subgroupOr(data[2].u64.xyz); - data[invocation].u64 = subgroupOr(data[3].u64); - - data[invocation].u64.x = subgroupXor(data[0].u64.x); - data[invocation].u64.xy = subgroupXor(data[1].u64.xy); - data[invocation].u64.xyz = subgroupXor(data[2].u64.xyz); - data[invocation].u64 = subgroupXor(data[3].u64); - - data[invocation].u64.x = subgroupInclusiveAdd(data[0].u64.x); - data[invocation].u64.xy = subgroupInclusiveAdd(data[1].u64.xy); - data[invocation].u64.xyz = subgroupInclusiveAdd(data[2].u64.xyz); - data[invocation].u64 = subgroupInclusiveAdd(data[3].u64); - - data[invocation].u64.x = subgroupInclusiveMul(data[0].u64.x); - data[invocation].u64.xy = subgroupInclusiveMul(data[1].u64.xy); - data[invocation].u64.xyz = subgroupInclusiveMul(data[2].u64.xyz); - data[invocation].u64 = subgroupInclusiveMul(data[3].u64); - - data[invocation].u64.x = subgroupInclusiveMin(data[0].u64.x); - data[invocation].u64.xy = subgroupInclusiveMin(data[1].u64.xy); - data[invocation].u64.xyz = subgroupInclusiveMin(data[2].u64.xyz); - data[invocation].u64 = subgroupInclusiveMin(data[3].u64); - - data[invocation].u64.x = subgroupInclusiveMax(data[0].u64.x); - data[invocation].u64.xy = subgroupInclusiveMax(data[1].u64.xy); - data[invocation].u64.xyz = subgroupInclusiveMax(data[2].u64.xyz); - data[invocation].u64 = subgroupInclusiveMax(data[3].u64); - - data[invocation].u64.x = subgroupInclusiveAnd(data[0].u64.x); - data[invocation].u64.xy = subgroupInclusiveAnd(data[1].u64.xy); - data[invocation].u64.xyz = subgroupInclusiveAnd(data[2].u64.xyz); - data[invocation].u64 = subgroupInclusiveAnd(data[3].u64); - - data[invocation].u64.x = subgroupInclusiveOr(data[0].u64.x); - data[invocation].u64.xy = subgroupInclusiveOr(data[1].u64.xy); - data[invocation].u64.xyz = subgroupInclusiveOr(data[2].u64.xyz); - data[invocation].u64 = subgroupInclusiveOr(data[3].u64); - - data[invocation].u64.x = subgroupInclusiveXor(data[0].u64.x); - data[invocation].u64.xy = subgroupInclusiveXor(data[1].u64.xy); - data[invocation].u64.xyz = subgroupInclusiveXor(data[2].u64.xyz); - data[invocation].u64 = subgroupInclusiveXor(data[3].u64); - - data[invocation].u64.x = subgroupExclusiveAdd(data[0].u64.x); - data[invocation].u64.xy = subgroupExclusiveAdd(data[1].u64.xy); - data[invocation].u64.xyz = subgroupExclusiveAdd(data[2].u64.xyz); - data[invocation].u64 = subgroupExclusiveAdd(data[3].u64); - - data[invocation].u64.x = subgroupExclusiveMul(data[0].u64.x); - data[invocation].u64.xy = subgroupExclusiveMul(data[1].u64.xy); - data[invocation].u64.xyz = subgroupExclusiveMul(data[2].u64.xyz); - data[invocation].u64 = subgroupExclusiveMul(data[3].u64); - - data[invocation].u64.x = subgroupExclusiveMin(data[0].u64.x); - data[invocation].u64.xy = subgroupExclusiveMin(data[1].u64.xy); - data[invocation].u64.xyz = subgroupExclusiveMin(data[2].u64.xyz); - data[invocation].u64 = subgroupExclusiveMin(data[3].u64); - - data[invocation].u64.x = subgroupExclusiveMax(data[0].u64.x); - data[invocation].u64.xy = subgroupExclusiveMax(data[1].u64.xy); - data[invocation].u64.xyz = subgroupExclusiveMax(data[2].u64.xyz); - data[invocation].u64 = subgroupExclusiveMax(data[3].u64); - - data[invocation].u64.x = subgroupExclusiveAnd(data[0].u64.x); - data[invocation].u64.xy = subgroupExclusiveAnd(data[1].u64.xy); - data[invocation].u64.xyz = subgroupExclusiveAnd(data[2].u64.xyz); - data[invocation].u64 = subgroupExclusiveAnd(data[3].u64); - - data[invocation].u64.x = subgroupExclusiveOr(data[0].u64.x); - data[invocation].u64.xy = subgroupExclusiveOr(data[1].u64.xy); - data[invocation].u64.xyz = subgroupExclusiveOr(data[2].u64.xyz); - data[invocation].u64 = subgroupExclusiveOr(data[3].u64); - - data[invocation].u64.x = subgroupExclusiveXor(data[0].u64.x); - data[invocation].u64.xy = subgroupExclusiveXor(data[1].u64.xy); - data[invocation].u64.xyz = subgroupExclusiveXor(data[2].u64.xyz); - data[invocation].u64 = subgroupExclusiveXor(data[3].u64); - - data[invocation].f16.x = subgroupAdd(data[0].f16.x); - data[invocation].f16.xy = subgroupAdd(data[1].f16.xy); - data[invocation].f16.xyz = subgroupAdd(data[2].f16.xyz); - data[invocation].f16 = subgroupAdd(data[3].f16); - - data[invocation].f16.x = subgroupMul(data[0].f16.x); - data[invocation].f16.xy = subgroupMul(data[1].f16.xy); - data[invocation].f16.xyz = subgroupMul(data[2].f16.xyz); - data[invocation].f16 = subgroupMul(data[3].f16); - - data[invocation].f16.x = subgroupMin(data[0].f16.x); - data[invocation].f16.xy = subgroupMin(data[1].f16.xy); - data[invocation].f16.xyz = subgroupMin(data[2].f16.xyz); - data[invocation].f16 = subgroupMin(data[3].f16); - - data[invocation].f16.x = subgroupMax(data[0].f16.x); - data[invocation].f16.xy = subgroupMax(data[1].f16.xy); - data[invocation].f16.xyz = subgroupMax(data[2].f16.xyz); - data[invocation].f16 = subgroupMax(data[3].f16); - - data[invocation].f16.x = subgroupInclusiveAdd(data[0].f16.x); - data[invocation].f16.xy = subgroupInclusiveAdd(data[1].f16.xy); - data[invocation].f16.xyz = subgroupInclusiveAdd(data[2].f16.xyz); - data[invocation].f16 = subgroupInclusiveAdd(data[3].f16); - - data[invocation].f16.x = subgroupInclusiveMul(data[0].f16.x); - data[invocation].f16.xy = subgroupInclusiveMul(data[1].f16.xy); - data[invocation].f16.xyz = subgroupInclusiveMul(data[2].f16.xyz); - data[invocation].f16 = subgroupInclusiveMul(data[3].f16); - - data[invocation].f16.x = subgroupInclusiveMin(data[0].f16.x); - data[invocation].f16.xy = subgroupInclusiveMin(data[1].f16.xy); - data[invocation].f16.xyz = subgroupInclusiveMin(data[2].f16.xyz); - data[invocation].f16 = subgroupInclusiveMin(data[3].f16); - - data[invocation].f16.x = subgroupInclusiveMax(data[0].f16.x); - data[invocation].f16.xy = subgroupInclusiveMax(data[1].f16.xy); - data[invocation].f16.xyz = subgroupInclusiveMax(data[2].f16.xyz); - data[invocation].f16 = subgroupInclusiveMax(data[3].f16); - - data[invocation].f16.x = subgroupExclusiveAdd(data[0].f16.x); - data[invocation].f16.xy = subgroupExclusiveAdd(data[1].f16.xy); - data[invocation].f16.xyz = subgroupExclusiveAdd(data[2].f16.xyz); - data[invocation].f16 = subgroupExclusiveAdd(data[3].f16); - - data[invocation].f16.x = subgroupExclusiveMul(data[0].f16.x); - data[invocation].f16.xy = subgroupExclusiveMul(data[1].f16.xy); - data[invocation].f16.xyz = subgroupExclusiveMul(data[2].f16.xyz); - data[invocation].f16 = subgroupExclusiveMul(data[3].f16); - - data[invocation].f16.x = subgroupExclusiveMin(data[0].f16.x); - data[invocation].f16.xy = subgroupExclusiveMin(data[1].f16.xy); - data[invocation].f16.xyz = subgroupExclusiveMin(data[2].f16.xyz); - data[invocation].f16 = subgroupExclusiveMin(data[3].f16); - - data[invocation].f16.x = subgroupExclusiveMax(data[0].f16.x); - data[invocation].f16.xy = subgroupExclusiveMax(data[1].f16.xy); - data[invocation].f16.xyz = subgroupExclusiveMax(data[2].f16.xyz); - data[invocation].f16 = subgroupExclusiveMax(data[3].f16); -} diff --git a/deps/glslang/Test/spv.subgroupExtendedTypesBallot.comp b/deps/glslang/Test/spv.subgroupExtendedTypesBallot.comp deleted file mode 100644 index 22d29cb7..00000000 --- a/deps/glslang/Test/spv.subgroupExtendedTypesBallot.comp +++ /dev/null @@ -1,88 +0,0 @@ -#version 450 - -#extension GL_KHR_shader_subgroup_ballot: enable -#extension GL_EXT_shader_subgroup_extended_types_int8: enable -#extension GL_EXT_shader_subgroup_extended_types_int16: enable -#extension GL_EXT_shader_subgroup_extended_types_int64: enable -#extension GL_EXT_shader_subgroup_extended_types_float16: enable - -layout (local_size_x = 8) in; - -layout(binding = 0) buffer Buffers -{ - i8vec4 i8; - u8vec4 u8; - i16vec4 i16; - u16vec4 u16; - i64vec4 i64; - u64vec4 u64; - f16vec4 f16; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; - - data[invocation].i8.x = subgroupBroadcast(data[0].i8.x, 3); - data[invocation].i8.xy = subgroupBroadcast(data[1].i8.xy, 3); - data[invocation].i8.xyz = subgroupBroadcast(data[2].i8.xyz, 3); - data[invocation].i8 = subgroupBroadcast(data[3].i8, 3); - data[invocation].i8.x = subgroupBroadcastFirst(data[0].i8.x); - data[invocation].i8.xy = subgroupBroadcastFirst(data[1].i8.xy); - data[invocation].i8.xyz = subgroupBroadcastFirst(data[2].i8.xyz); - data[invocation].i8 = subgroupBroadcastFirst(data[3].i8); - - data[invocation].u8.x = subgroupBroadcast(data[0].u8.x, 3); - data[invocation].u8.xy = subgroupBroadcast(data[1].u8.xy, 3); - data[invocation].u8.xyz = subgroupBroadcast(data[2].u8.xyz, 3); - data[invocation].u8 = subgroupBroadcast(data[3].u8, 3); - data[invocation].u8.x = subgroupBroadcastFirst(data[0].u8.x); - data[invocation].u8.xy = subgroupBroadcastFirst(data[1].u8.xy); - data[invocation].u8.xyz = subgroupBroadcastFirst(data[2].u8.xyz); - data[invocation].u8 = subgroupBroadcastFirst(data[3].u8); - - data[invocation].i16.x = subgroupBroadcast(data[0].i16.x, 3); - data[invocation].i16.xy = subgroupBroadcast(data[1].i16.xy, 3); - data[invocation].i16.xyz = subgroupBroadcast(data[2].i16.xyz, 3); - data[invocation].i16 = subgroupBroadcast(data[3].i16, 3); - data[invocation].i16.x = subgroupBroadcastFirst(data[0].i16.x); - data[invocation].i16.xy = subgroupBroadcastFirst(data[1].i16.xy); - data[invocation].i16.xyz = subgroupBroadcastFirst(data[2].i16.xyz); - data[invocation].i16 = subgroupBroadcastFirst(data[3].i16); - - data[invocation].u16.x = subgroupBroadcast(data[0].u16.x, 3); - data[invocation].u16.xy = subgroupBroadcast(data[1].u16.xy, 3); - data[invocation].u16.xyz = subgroupBroadcast(data[2].u16.xyz, 3); - data[invocation].u16 = subgroupBroadcast(data[3].u16, 3); - data[invocation].u16.x = subgroupBroadcastFirst(data[0].u16.x); - data[invocation].u16.xy = subgroupBroadcastFirst(data[1].u16.xy); - data[invocation].u16.xyz = subgroupBroadcastFirst(data[2].u16.xyz); - data[invocation].u16 = subgroupBroadcastFirst(data[3].u16); - - data[invocation].i64.x = subgroupBroadcast(data[0].i64.x, 3); - data[invocation].i64.xy = subgroupBroadcast(data[1].i64.xy, 3); - data[invocation].i64.xyz = subgroupBroadcast(data[2].i64.xyz, 3); - data[invocation].i64 = subgroupBroadcast(data[3].i64, 3); - data[invocation].i64.x = subgroupBroadcastFirst(data[0].i64.x); - data[invocation].i64.xy = subgroupBroadcastFirst(data[1].i64.xy); - data[invocation].i64.xyz = subgroupBroadcastFirst(data[2].i64.xyz); - data[invocation].i64 = subgroupBroadcastFirst(data[3].i64); - - data[invocation].u64.x = subgroupBroadcast(data[0].u64.x, 3); - data[invocation].u64.xy = subgroupBroadcast(data[1].u64.xy, 3); - data[invocation].u64.xyz = subgroupBroadcast(data[2].u64.xyz, 3); - data[invocation].u64 = subgroupBroadcast(data[3].u64, 3); - data[invocation].u64.x = subgroupBroadcastFirst(data[0].u64.x); - data[invocation].u64.xy = subgroupBroadcastFirst(data[1].u64.xy); - data[invocation].u64.xyz = subgroupBroadcastFirst(data[2].u64.xyz); - data[invocation].u64 = subgroupBroadcastFirst(data[3].u64); - - data[invocation].f16.x = subgroupBroadcast(data[0].f16.x, 3); - data[invocation].f16.xy = subgroupBroadcast(data[1].f16.xy, 3); - data[invocation].f16.xyz = subgroupBroadcast(data[2].f16.xyz, 3); - data[invocation].f16 = subgroupBroadcast(data[3].f16, 3); - data[invocation].f16.x = subgroupBroadcastFirst(data[0].f16.x); - data[invocation].f16.xy = subgroupBroadcastFirst(data[1].f16.xy); - data[invocation].f16.xyz = subgroupBroadcastFirst(data[2].f16.xyz); - data[invocation].f16 = subgroupBroadcastFirst(data[3].f16); -} diff --git a/deps/glslang/Test/spv.subgroupExtendedTypesBallotNeg.comp b/deps/glslang/Test/spv.subgroupExtendedTypesBallotNeg.comp deleted file mode 100644 index 240ab593..00000000 --- a/deps/glslang/Test/spv.subgroupExtendedTypesBallotNeg.comp +++ /dev/null @@ -1,88 +0,0 @@ -#version 450 - -#extension GL_KHR_shader_subgroup_ballot: enable -#extension GL_EXT_shader_explicit_arithmetic_types_int8: enable -#extension GL_EXT_shader_explicit_arithmetic_types_int16: enable -#extension GL_EXT_shader_explicit_arithmetic_types_int64: enable -#extension GL_EXT_shader_explicit_arithmetic_types_float16: enable - -layout (local_size_x = 8) in; - -layout(binding = 0) buffer Buffers -{ - i8vec4 i8; - u8vec4 u8; - i16vec4 i16; - u16vec4 u16; - i64vec4 i64; - u64vec4 u64; - f16vec4 f16; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; - - data[invocation].i8.x = subgroupBroadcast(data[0].i8.x, 3); - data[invocation].i8.xy = subgroupBroadcast(data[1].i8.xy, 3); - data[invocation].i8.xyz = subgroupBroadcast(data[2].i8.xyz, 3); - data[invocation].i8 = subgroupBroadcast(data[3].i8, 3); - data[invocation].i8.x = subgroupBroadcastFirst(data[0].i8.x); - data[invocation].i8.xy = subgroupBroadcastFirst(data[1].i8.xy); - data[invocation].i8.xyz = subgroupBroadcastFirst(data[2].i8.xyz); - data[invocation].i8 = subgroupBroadcastFirst(data[3].i8); - - data[invocation].u8.x = subgroupBroadcast(data[0].u8.x, 3); - data[invocation].u8.xy = subgroupBroadcast(data[1].u8.xy, 3); - data[invocation].u8.xyz = subgroupBroadcast(data[2].u8.xyz, 3); - data[invocation].u8 = subgroupBroadcast(data[3].u8, 3); - data[invocation].u8.x = subgroupBroadcastFirst(data[0].u8.x); - data[invocation].u8.xy = subgroupBroadcastFirst(data[1].u8.xy); - data[invocation].u8.xyz = subgroupBroadcastFirst(data[2].u8.xyz); - data[invocation].u8 = subgroupBroadcastFirst(data[3].u8); - - data[invocation].i16.x = subgroupBroadcast(data[0].i16.x, 3); - data[invocation].i16.xy = subgroupBroadcast(data[1].i16.xy, 3); - data[invocation].i16.xyz = subgroupBroadcast(data[2].i16.xyz, 3); - data[invocation].i16 = subgroupBroadcast(data[3].i16, 3); - data[invocation].i16.x = subgroupBroadcastFirst(data[0].i16.x); - data[invocation].i16.xy = subgroupBroadcastFirst(data[1].i16.xy); - data[invocation].i16.xyz = subgroupBroadcastFirst(data[2].i16.xyz); - data[invocation].i16 = subgroupBroadcastFirst(data[3].i16); - - data[invocation].u16.x = subgroupBroadcast(data[0].u16.x, 3); - data[invocation].u16.xy = subgroupBroadcast(data[1].u16.xy, 3); - data[invocation].u16.xyz = subgroupBroadcast(data[2].u16.xyz, 3); - data[invocation].u16 = subgroupBroadcast(data[3].u16, 3); - data[invocation].u16.x = subgroupBroadcastFirst(data[0].u16.x); - data[invocation].u16.xy = subgroupBroadcastFirst(data[1].u16.xy); - data[invocation].u16.xyz = subgroupBroadcastFirst(data[2].u16.xyz); - data[invocation].u16 = subgroupBroadcastFirst(data[3].u16); - - data[invocation].i64.x = subgroupBroadcast(data[0].i64.x, 3); - data[invocation].i64.xy = subgroupBroadcast(data[1].i64.xy, 3); - data[invocation].i64.xyz = subgroupBroadcast(data[2].i64.xyz, 3); - data[invocation].i64 = subgroupBroadcast(data[3].i64, 3); - data[invocation].i64.x = subgroupBroadcastFirst(data[0].i64.x); - data[invocation].i64.xy = subgroupBroadcastFirst(data[1].i64.xy); - data[invocation].i64.xyz = subgroupBroadcastFirst(data[2].i64.xyz); - data[invocation].i64 = subgroupBroadcastFirst(data[3].i64); - - data[invocation].u64.x = subgroupBroadcast(data[0].u64.x, 3); - data[invocation].u64.xy = subgroupBroadcast(data[1].u64.xy, 3); - data[invocation].u64.xyz = subgroupBroadcast(data[2].u64.xyz, 3); - data[invocation].u64 = subgroupBroadcast(data[3].u64, 3); - data[invocation].u64.x = subgroupBroadcastFirst(data[0].u64.x); - data[invocation].u64.xy = subgroupBroadcastFirst(data[1].u64.xy); - data[invocation].u64.xyz = subgroupBroadcastFirst(data[2].u64.xyz); - data[invocation].u64 = subgroupBroadcastFirst(data[3].u64); - - data[invocation].f16.x = subgroupBroadcast(data[0].f16.x, 3); - data[invocation].f16.xy = subgroupBroadcast(data[1].f16.xy, 3); - data[invocation].f16.xyz = subgroupBroadcast(data[2].f16.xyz, 3); - data[invocation].f16 = subgroupBroadcast(data[3].f16, 3); - data[invocation].f16.x = subgroupBroadcastFirst(data[0].f16.x); - data[invocation].f16.xy = subgroupBroadcastFirst(data[1].f16.xy); - data[invocation].f16.xyz = subgroupBroadcastFirst(data[2].f16.xyz); - data[invocation].f16 = subgroupBroadcastFirst(data[3].f16); -} diff --git a/deps/glslang/Test/spv.subgroupExtendedTypesClustered.comp b/deps/glslang/Test/spv.subgroupExtendedTypesClustered.comp deleted file mode 100644 index a215cbf0..00000000 --- a/deps/glslang/Test/spv.subgroupExtendedTypesClustered.comp +++ /dev/null @@ -1,255 +0,0 @@ -#version 450 - -#extension GL_KHR_shader_subgroup_clustered: enable -#extension GL_EXT_shader_subgroup_extended_types_int8: enable -#extension GL_EXT_shader_subgroup_extended_types_int16: enable -#extension GL_EXT_shader_subgroup_extended_types_int64: enable -#extension GL_EXT_shader_subgroup_extended_types_float16: enable - -layout (local_size_x = 8) in; - -layout(binding = 0) buffer Buffers -{ - i8vec4 i8; - u8vec4 u8; - i16vec4 i16; - u16vec4 u16; - i64vec4 i64; - u64vec4 u64; - f16vec4 f16; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; - - data[invocation].i8.x = subgroupClusteredAdd(data[0].i8.x, 1); - data[invocation].i8.xy = subgroupClusteredAdd(data[1].i8.xy, 1); - data[invocation].i8.xyz = subgroupClusteredAdd(data[2].i8.xyz, 1); - data[invocation].i8 = subgroupClusteredAdd(data[3].i8, 1); - - data[invocation].i8.x = subgroupClusteredMul(data[0].i8.x, 1); - data[invocation].i8.xy = subgroupClusteredMul(data[1].i8.xy, 1); - data[invocation].i8.xyz = subgroupClusteredMul(data[2].i8.xyz, 1); - data[invocation].i8 = subgroupClusteredMul(data[3].i8, 1); - - data[invocation].i8.x = subgroupClusteredMin(data[0].i8.x, 1); - data[invocation].i8.xy = subgroupClusteredMin(data[1].i8.xy, 1); - data[invocation].i8.xyz = subgroupClusteredMin(data[2].i8.xyz, 1); - data[invocation].i8 = subgroupClusteredMin(data[3].i8, 1); - - data[invocation].i8.x = subgroupClusteredMax(data[0].i8.x, 1); - data[invocation].i8.xy = subgroupClusteredMax(data[1].i8.xy, 1); - data[invocation].i8.xyz = subgroupClusteredMax(data[2].i8.xyz, 1); - data[invocation].i8 = subgroupClusteredMax(data[3].i8, 1); - - data[invocation].i8.x = subgroupClusteredAnd(data[0].i8.x, 1); - data[invocation].i8.xy = subgroupClusteredAnd(data[1].i8.xy, 1); - data[invocation].i8.xyz = subgroupClusteredAnd(data[2].i8.xyz, 1); - data[invocation].i8 = subgroupClusteredAnd(data[3].i8, 1); - - data[invocation].i8.x = subgroupClusteredOr(data[0].i8.x, 1); - data[invocation].i8.xy = subgroupClusteredOr(data[1].i8.xy, 1); - data[invocation].i8.xyz = subgroupClusteredOr(data[2].i8.xyz, 1); - data[invocation].i8 = subgroupClusteredOr(data[3].i8, 1); - - data[invocation].i8.x = subgroupClusteredXor(data[0].i8.x, 1); - data[invocation].i8.xy = subgroupClusteredXor(data[1].i8.xy, 1); - data[invocation].i8.xyz = subgroupClusteredXor(data[2].i8.xyz, 1); - data[invocation].i8 = subgroupClusteredXor(data[3].i8, 1); - - data[invocation].u8.x = subgroupClusteredAdd(data[0].u8.x, 1); - data[invocation].u8.xy = subgroupClusteredAdd(data[1].u8.xy, 1); - data[invocation].u8.xyz = subgroupClusteredAdd(data[2].u8.xyz, 1); - data[invocation].u8 = subgroupClusteredAdd(data[3].u8, 1); - - data[invocation].u8.x = subgroupClusteredMul(data[0].u8.x, 1); - data[invocation].u8.xy = subgroupClusteredMul(data[1].u8.xy, 1); - data[invocation].u8.xyz = subgroupClusteredMul(data[2].u8.xyz, 1); - data[invocation].u8 = subgroupClusteredMul(data[3].u8, 1); - - data[invocation].u8.x = subgroupClusteredMin(data[0].u8.x, 1); - data[invocation].u8.xy = subgroupClusteredMin(data[1].u8.xy, 1); - data[invocation].u8.xyz = subgroupClusteredMin(data[2].u8.xyz, 1); - data[invocation].u8 = subgroupClusteredMin(data[3].u8, 1); - - data[invocation].u8.x = subgroupClusteredMax(data[0].u8.x, 1); - data[invocation].u8.xy = subgroupClusteredMax(data[1].u8.xy, 1); - data[invocation].u8.xyz = subgroupClusteredMax(data[2].u8.xyz, 1); - data[invocation].u8 = subgroupClusteredMax(data[3].u8, 1); - - data[invocation].u8.x = subgroupClusteredAnd(data[0].u8.x, 1); - data[invocation].u8.xy = subgroupClusteredAnd(data[1].u8.xy, 1); - data[invocation].u8.xyz = subgroupClusteredAnd(data[2].u8.xyz, 1); - data[invocation].u8 = subgroupClusteredAnd(data[3].u8, 1); - - data[invocation].u8.x = subgroupClusteredOr(data[0].u8.x, 1); - data[invocation].u8.xy = subgroupClusteredOr(data[1].u8.xy, 1); - data[invocation].u8.xyz = subgroupClusteredOr(data[2].u8.xyz, 1); - data[invocation].u8 = subgroupClusteredOr(data[3].u8, 1); - - data[invocation].u8.x = subgroupClusteredXor(data[0].u8.x, 1); - data[invocation].u8.xy = subgroupClusteredXor(data[1].u8.xy, 1); - data[invocation].u8.xyz = subgroupClusteredXor(data[2].u8.xyz, 1); - data[invocation].u8 = subgroupClusteredXor(data[3].u8, 1); - - data[invocation].i16.x = subgroupClusteredAdd(data[0].i16.x, 1); - data[invocation].i16.xy = subgroupClusteredAdd(data[1].i16.xy, 1); - data[invocation].i16.xyz = subgroupClusteredAdd(data[2].i16.xyz, 1); - data[invocation].i16 = subgroupClusteredAdd(data[3].i16, 1); - - data[invocation].i16.x = subgroupClusteredMul(data[0].i16.x, 1); - data[invocation].i16.xy = subgroupClusteredMul(data[1].i16.xy, 1); - data[invocation].i16.xyz = subgroupClusteredMul(data[2].i16.xyz, 1); - data[invocation].i16 = subgroupClusteredMul(data[3].i16, 1); - - data[invocation].i16.x = subgroupClusteredMin(data[0].i16.x, 1); - data[invocation].i16.xy = subgroupClusteredMin(data[1].i16.xy, 1); - data[invocation].i16.xyz = subgroupClusteredMin(data[2].i16.xyz, 1); - data[invocation].i16 = subgroupClusteredMin(data[3].i16, 1); - - data[invocation].i16.x = subgroupClusteredMax(data[0].i16.x, 1); - data[invocation].i16.xy = subgroupClusteredMax(data[1].i16.xy, 1); - data[invocation].i16.xyz = subgroupClusteredMax(data[2].i16.xyz, 1); - data[invocation].i16 = subgroupClusteredMax(data[3].i16, 1); - - data[invocation].i16.x = subgroupClusteredAnd(data[0].i16.x, 1); - data[invocation].i16.xy = subgroupClusteredAnd(data[1].i16.xy, 1); - data[invocation].i16.xyz = subgroupClusteredAnd(data[2].i16.xyz, 1); - data[invocation].i16 = subgroupClusteredAnd(data[3].i16, 1); - - data[invocation].i16.x = subgroupClusteredOr(data[0].i16.x, 1); - data[invocation].i16.xy = subgroupClusteredOr(data[1].i16.xy, 1); - data[invocation].i16.xyz = subgroupClusteredOr(data[2].i16.xyz, 1); - data[invocation].i16 = subgroupClusteredOr(data[3].i16, 1); - - data[invocation].i16.x = subgroupClusteredXor(data[0].i16.x, 1); - data[invocation].i16.xy = subgroupClusteredXor(data[1].i16.xy, 1); - data[invocation].i16.xyz = subgroupClusteredXor(data[2].i16.xyz, 1); - data[invocation].i16 = subgroupClusteredXor(data[3].i16, 1); - - data[invocation].u16.x = subgroupClusteredAdd(data[0].u16.x, 1); - data[invocation].u16.xy = subgroupClusteredAdd(data[1].u16.xy, 1); - data[invocation].u16.xyz = subgroupClusteredAdd(data[2].u16.xyz, 1); - data[invocation].u16 = subgroupClusteredAdd(data[3].u16, 1); - - data[invocation].u16.x = subgroupClusteredMul(data[0].u16.x, 1); - data[invocation].u16.xy = subgroupClusteredMul(data[1].u16.xy, 1); - data[invocation].u16.xyz = subgroupClusteredMul(data[2].u16.xyz, 1); - data[invocation].u16 = subgroupClusteredMul(data[3].u16, 1); - - data[invocation].u16.x = subgroupClusteredMin(data[0].u16.x, 1); - data[invocation].u16.xy = subgroupClusteredMin(data[1].u16.xy, 1); - data[invocation].u16.xyz = subgroupClusteredMin(data[2].u16.xyz, 1); - data[invocation].u16 = subgroupClusteredMin(data[3].u16, 1); - - data[invocation].u16.x = subgroupClusteredMax(data[0].u16.x, 1); - data[invocation].u16.xy = subgroupClusteredMax(data[1].u16.xy, 1); - data[invocation].u16.xyz = subgroupClusteredMax(data[2].u16.xyz, 1); - data[invocation].u16 = subgroupClusteredMax(data[3].u16, 1); - - data[invocation].u16.x = subgroupClusteredAnd(data[0].u16.x, 1); - data[invocation].u16.xy = subgroupClusteredAnd(data[1].u16.xy, 1); - data[invocation].u16.xyz = subgroupClusteredAnd(data[2].u16.xyz, 1); - data[invocation].u16 = subgroupClusteredAnd(data[3].u16, 1); - - data[invocation].u16.x = subgroupClusteredOr(data[0].u16.x, 1); - data[invocation].u16.xy = subgroupClusteredOr(data[1].u16.xy, 1); - data[invocation].u16.xyz = subgroupClusteredOr(data[2].u16.xyz, 1); - data[invocation].u16 = subgroupClusteredOr(data[3].u16, 1); - - data[invocation].u16.x = subgroupClusteredXor(data[0].u16.x, 1); - data[invocation].u16.xy = subgroupClusteredXor(data[1].u16.xy, 1); - data[invocation].u16.xyz = subgroupClusteredXor(data[2].u16.xyz, 1); - data[invocation].u16 = subgroupClusteredXor(data[3].u16, 1); - - data[invocation].i64.x = subgroupClusteredAdd(data[0].i64.x, 1); - data[invocation].i64.xy = subgroupClusteredAdd(data[1].i64.xy, 1); - data[invocation].i64.xyz = subgroupClusteredAdd(data[2].i64.xyz, 1); - data[invocation].i64 = subgroupClusteredAdd(data[3].i64, 1); - - data[invocation].i64.x = subgroupClusteredMul(data[0].i64.x, 1); - data[invocation].i64.xy = subgroupClusteredMul(data[1].i64.xy, 1); - data[invocation].i64.xyz = subgroupClusteredMul(data[2].i64.xyz, 1); - data[invocation].i64 = subgroupClusteredMul(data[3].i64, 1); - - data[invocation].i64.x = subgroupClusteredMin(data[0].i64.x, 1); - data[invocation].i64.xy = subgroupClusteredMin(data[1].i64.xy, 1); - data[invocation].i64.xyz = subgroupClusteredMin(data[2].i64.xyz, 1); - data[invocation].i64 = subgroupClusteredMin(data[3].i64, 1); - - data[invocation].i64.x = subgroupClusteredMax(data[0].i64.x, 1); - data[invocation].i64.xy = subgroupClusteredMax(data[1].i64.xy, 1); - data[invocation].i64.xyz = subgroupClusteredMax(data[2].i64.xyz, 1); - data[invocation].i64 = subgroupClusteredMax(data[3].i64, 1); - - data[invocation].i64.x = subgroupClusteredAnd(data[0].i64.x, 1); - data[invocation].i64.xy = subgroupClusteredAnd(data[1].i64.xy, 1); - data[invocation].i64.xyz = subgroupClusteredAnd(data[2].i64.xyz, 1); - data[invocation].i64 = subgroupClusteredAnd(data[3].i64, 1); - - data[invocation].i64.x = subgroupClusteredOr(data[0].i64.x, 1); - data[invocation].i64.xy = subgroupClusteredOr(data[1].i64.xy, 1); - data[invocation].i64.xyz = subgroupClusteredOr(data[2].i64.xyz, 1); - data[invocation].i64 = subgroupClusteredOr(data[3].i64, 1); - - data[invocation].i64.x = subgroupClusteredXor(data[0].i64.x, 1); - data[invocation].i64.xy = subgroupClusteredXor(data[1].i64.xy, 1); - data[invocation].i64.xyz = subgroupClusteredXor(data[2].i64.xyz, 1); - data[invocation].i64 = subgroupClusteredXor(data[3].i64, 1); - - data[invocation].u64.x = subgroupClusteredAdd(data[0].u64.x, 1); - data[invocation].u64.xy = subgroupClusteredAdd(data[1].u64.xy, 1); - data[invocation].u64.xyz = subgroupClusteredAdd(data[2].u64.xyz, 1); - data[invocation].u64 = subgroupClusteredAdd(data[3].u64, 1); - - data[invocation].u64.x = subgroupClusteredMul(data[0].u64.x, 1); - data[invocation].u64.xy = subgroupClusteredMul(data[1].u64.xy, 1); - data[invocation].u64.xyz = subgroupClusteredMul(data[2].u64.xyz, 1); - data[invocation].u64 = subgroupClusteredMul(data[3].u64, 1); - - data[invocation].u64.x = subgroupClusteredMin(data[0].u64.x, 1); - data[invocation].u64.xy = subgroupClusteredMin(data[1].u64.xy, 1); - data[invocation].u64.xyz = subgroupClusteredMin(data[2].u64.xyz, 1); - data[invocation].u64 = subgroupClusteredMin(data[3].u64, 1); - - data[invocation].u64.x = subgroupClusteredMax(data[0].u64.x, 1); - data[invocation].u64.xy = subgroupClusteredMax(data[1].u64.xy, 1); - data[invocation].u64.xyz = subgroupClusteredMax(data[2].u64.xyz, 1); - data[invocation].u64 = subgroupClusteredMax(data[3].u64, 1); - - data[invocation].u64.x = subgroupClusteredAnd(data[0].u64.x, 1); - data[invocation].u64.xy = subgroupClusteredAnd(data[1].u64.xy, 1); - data[invocation].u64.xyz = subgroupClusteredAnd(data[2].u64.xyz, 1); - data[invocation].u64 = subgroupClusteredAnd(data[3].u64, 1); - - data[invocation].u64.x = subgroupClusteredOr(data[0].u64.x, 1); - data[invocation].u64.xy = subgroupClusteredOr(data[1].u64.xy, 1); - data[invocation].u64.xyz = subgroupClusteredOr(data[2].u64.xyz, 1); - data[invocation].u64 = subgroupClusteredOr(data[3].u64, 1); - - data[invocation].u64.x = subgroupClusteredXor(data[0].u64.x, 1); - data[invocation].u64.xy = subgroupClusteredXor(data[1].u64.xy, 1); - data[invocation].u64.xyz = subgroupClusteredXor(data[2].u64.xyz, 1); - data[invocation].u64 = subgroupClusteredXor(data[3].u64, 1); - - data[invocation].f16.x = subgroupClusteredAdd(data[0].f16.x, 1); - data[invocation].f16.xy = subgroupClusteredAdd(data[1].f16.xy, 1); - data[invocation].f16.xyz = subgroupClusteredAdd(data[2].f16.xyz, 1); - data[invocation].f16 = subgroupClusteredAdd(data[3].f16, 1); - - data[invocation].f16.x = subgroupClusteredMul(data[0].f16.x, 1); - data[invocation].f16.xy = subgroupClusteredMul(data[1].f16.xy, 1); - data[invocation].f16.xyz = subgroupClusteredMul(data[2].f16.xyz, 1); - data[invocation].f16 = subgroupClusteredMul(data[3].f16, 1); - - data[invocation].f16.x = subgroupClusteredMin(data[0].f16.x, 1); - data[invocation].f16.xy = subgroupClusteredMin(data[1].f16.xy, 1); - data[invocation].f16.xyz = subgroupClusteredMin(data[2].f16.xyz, 1); - data[invocation].f16 = subgroupClusteredMin(data[3].f16, 1); - - data[invocation].f16.x = subgroupClusteredMax(data[0].f16.x, 1); - data[invocation].f16.xy = subgroupClusteredMax(data[1].f16.xy, 1); - data[invocation].f16.xyz = subgroupClusteredMax(data[2].f16.xyz, 1); - data[invocation].f16 = subgroupClusteredMax(data[3].f16, 1); -} diff --git a/deps/glslang/Test/spv.subgroupExtendedTypesClusteredNeg.comp b/deps/glslang/Test/spv.subgroupExtendedTypesClusteredNeg.comp deleted file mode 100644 index d5215115..00000000 --- a/deps/glslang/Test/spv.subgroupExtendedTypesClusteredNeg.comp +++ /dev/null @@ -1,255 +0,0 @@ -#version 450 - -#extension GL_KHR_shader_subgroup_clustered: enable -#extension GL_EXT_shader_explicit_arithmetic_types_int8: enable -#extension GL_EXT_shader_explicit_arithmetic_types_int16: enable -#extension GL_EXT_shader_explicit_arithmetic_types_int64: enable -#extension GL_EXT_shader_explicit_arithmetic_types_float16: enable - -layout (local_size_x = 8) in; - -layout(binding = 0) buffer Buffers -{ - i8vec4 i8; - u8vec4 u8; - i16vec4 i16; - u16vec4 u16; - i64vec4 i64; - u64vec4 u64; - f16vec4 f16; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; - - data[invocation].i8.x = subgroupClusteredAdd(data[0].i8.x, 1); - data[invocation].i8.xy = subgroupClusteredAdd(data[1].i8.xy, 1); - data[invocation].i8.xyz = subgroupClusteredAdd(data[2].i8.xyz, 1); - data[invocation].i8 = subgroupClusteredAdd(data[3].i8, 1); - - data[invocation].i8.x = subgroupClusteredMul(data[0].i8.x, 1); - data[invocation].i8.xy = subgroupClusteredMul(data[1].i8.xy, 1); - data[invocation].i8.xyz = subgroupClusteredMul(data[2].i8.xyz, 1); - data[invocation].i8 = subgroupClusteredMul(data[3].i8, 1); - - data[invocation].i8.x = subgroupClusteredMin(data[0].i8.x, 1); - data[invocation].i8.xy = subgroupClusteredMin(data[1].i8.xy, 1); - data[invocation].i8.xyz = subgroupClusteredMin(data[2].i8.xyz, 1); - data[invocation].i8 = subgroupClusteredMin(data[3].i8, 1); - - data[invocation].i8.x = subgroupClusteredMax(data[0].i8.x, 1); - data[invocation].i8.xy = subgroupClusteredMax(data[1].i8.xy, 1); - data[invocation].i8.xyz = subgroupClusteredMax(data[2].i8.xyz, 1); - data[invocation].i8 = subgroupClusteredMax(data[3].i8, 1); - - data[invocation].i8.x = subgroupClusteredAnd(data[0].i8.x, 1); - data[invocation].i8.xy = subgroupClusteredAnd(data[1].i8.xy, 1); - data[invocation].i8.xyz = subgroupClusteredAnd(data[2].i8.xyz, 1); - data[invocation].i8 = subgroupClusteredAnd(data[3].i8, 1); - - data[invocation].i8.x = subgroupClusteredOr(data[0].i8.x, 1); - data[invocation].i8.xy = subgroupClusteredOr(data[1].i8.xy, 1); - data[invocation].i8.xyz = subgroupClusteredOr(data[2].i8.xyz, 1); - data[invocation].i8 = subgroupClusteredOr(data[3].i8, 1); - - data[invocation].i8.x = subgroupClusteredXor(data[0].i8.x, 1); - data[invocation].i8.xy = subgroupClusteredXor(data[1].i8.xy, 1); - data[invocation].i8.xyz = subgroupClusteredXor(data[2].i8.xyz, 1); - data[invocation].i8 = subgroupClusteredXor(data[3].i8, 1); - - data[invocation].u8.x = subgroupClusteredAdd(data[0].u8.x, 1); - data[invocation].u8.xy = subgroupClusteredAdd(data[1].u8.xy, 1); - data[invocation].u8.xyz = subgroupClusteredAdd(data[2].u8.xyz, 1); - data[invocation].u8 = subgroupClusteredAdd(data[3].u8, 1); - - data[invocation].u8.x = subgroupClusteredMul(data[0].u8.x, 1); - data[invocation].u8.xy = subgroupClusteredMul(data[1].u8.xy, 1); - data[invocation].u8.xyz = subgroupClusteredMul(data[2].u8.xyz, 1); - data[invocation].u8 = subgroupClusteredMul(data[3].u8, 1); - - data[invocation].u8.x = subgroupClusteredMin(data[0].u8.x, 1); - data[invocation].u8.xy = subgroupClusteredMin(data[1].u8.xy, 1); - data[invocation].u8.xyz = subgroupClusteredMin(data[2].u8.xyz, 1); - data[invocation].u8 = subgroupClusteredMin(data[3].u8, 1); - - data[invocation].u8.x = subgroupClusteredMax(data[0].u8.x, 1); - data[invocation].u8.xy = subgroupClusteredMax(data[1].u8.xy, 1); - data[invocation].u8.xyz = subgroupClusteredMax(data[2].u8.xyz, 1); - data[invocation].u8 = subgroupClusteredMax(data[3].u8, 1); - - data[invocation].u8.x = subgroupClusteredAnd(data[0].u8.x, 1); - data[invocation].u8.xy = subgroupClusteredAnd(data[1].u8.xy, 1); - data[invocation].u8.xyz = subgroupClusteredAnd(data[2].u8.xyz, 1); - data[invocation].u8 = subgroupClusteredAnd(data[3].u8, 1); - - data[invocation].u8.x = subgroupClusteredOr(data[0].u8.x, 1); - data[invocation].u8.xy = subgroupClusteredOr(data[1].u8.xy, 1); - data[invocation].u8.xyz = subgroupClusteredOr(data[2].u8.xyz, 1); - data[invocation].u8 = subgroupClusteredOr(data[3].u8, 1); - - data[invocation].u8.x = subgroupClusteredXor(data[0].u8.x, 1); - data[invocation].u8.xy = subgroupClusteredXor(data[1].u8.xy, 1); - data[invocation].u8.xyz = subgroupClusteredXor(data[2].u8.xyz, 1); - data[invocation].u8 = subgroupClusteredXor(data[3].u8, 1); - - data[invocation].i16.x = subgroupClusteredAdd(data[0].i16.x, 1); - data[invocation].i16.xy = subgroupClusteredAdd(data[1].i16.xy, 1); - data[invocation].i16.xyz = subgroupClusteredAdd(data[2].i16.xyz, 1); - data[invocation].i16 = subgroupClusteredAdd(data[3].i16, 1); - - data[invocation].i16.x = subgroupClusteredMul(data[0].i16.x, 1); - data[invocation].i16.xy = subgroupClusteredMul(data[1].i16.xy, 1); - data[invocation].i16.xyz = subgroupClusteredMul(data[2].i16.xyz, 1); - data[invocation].i16 = subgroupClusteredMul(data[3].i16, 1); - - data[invocation].i16.x = subgroupClusteredMin(data[0].i16.x, 1); - data[invocation].i16.xy = subgroupClusteredMin(data[1].i16.xy, 1); - data[invocation].i16.xyz = subgroupClusteredMin(data[2].i16.xyz, 1); - data[invocation].i16 = subgroupClusteredMin(data[3].i16, 1); - - data[invocation].i16.x = subgroupClusteredMax(data[0].i16.x, 1); - data[invocation].i16.xy = subgroupClusteredMax(data[1].i16.xy, 1); - data[invocation].i16.xyz = subgroupClusteredMax(data[2].i16.xyz, 1); - data[invocation].i16 = subgroupClusteredMax(data[3].i16, 1); - - data[invocation].i16.x = subgroupClusteredAnd(data[0].i16.x, 1); - data[invocation].i16.xy = subgroupClusteredAnd(data[1].i16.xy, 1); - data[invocation].i16.xyz = subgroupClusteredAnd(data[2].i16.xyz, 1); - data[invocation].i16 = subgroupClusteredAnd(data[3].i16, 1); - - data[invocation].i16.x = subgroupClusteredOr(data[0].i16.x, 1); - data[invocation].i16.xy = subgroupClusteredOr(data[1].i16.xy, 1); - data[invocation].i16.xyz = subgroupClusteredOr(data[2].i16.xyz, 1); - data[invocation].i16 = subgroupClusteredOr(data[3].i16, 1); - - data[invocation].i16.x = subgroupClusteredXor(data[0].i16.x, 1); - data[invocation].i16.xy = subgroupClusteredXor(data[1].i16.xy, 1); - data[invocation].i16.xyz = subgroupClusteredXor(data[2].i16.xyz, 1); - data[invocation].i16 = subgroupClusteredXor(data[3].i16, 1); - - data[invocation].u16.x = subgroupClusteredAdd(data[0].u16.x, 1); - data[invocation].u16.xy = subgroupClusteredAdd(data[1].u16.xy, 1); - data[invocation].u16.xyz = subgroupClusteredAdd(data[2].u16.xyz, 1); - data[invocation].u16 = subgroupClusteredAdd(data[3].u16, 1); - - data[invocation].u16.x = subgroupClusteredMul(data[0].u16.x, 1); - data[invocation].u16.xy = subgroupClusteredMul(data[1].u16.xy, 1); - data[invocation].u16.xyz = subgroupClusteredMul(data[2].u16.xyz, 1); - data[invocation].u16 = subgroupClusteredMul(data[3].u16, 1); - - data[invocation].u16.x = subgroupClusteredMin(data[0].u16.x, 1); - data[invocation].u16.xy = subgroupClusteredMin(data[1].u16.xy, 1); - data[invocation].u16.xyz = subgroupClusteredMin(data[2].u16.xyz, 1); - data[invocation].u16 = subgroupClusteredMin(data[3].u16, 1); - - data[invocation].u16.x = subgroupClusteredMax(data[0].u16.x, 1); - data[invocation].u16.xy = subgroupClusteredMax(data[1].u16.xy, 1); - data[invocation].u16.xyz = subgroupClusteredMax(data[2].u16.xyz, 1); - data[invocation].u16 = subgroupClusteredMax(data[3].u16, 1); - - data[invocation].u16.x = subgroupClusteredAnd(data[0].u16.x, 1); - data[invocation].u16.xy = subgroupClusteredAnd(data[1].u16.xy, 1); - data[invocation].u16.xyz = subgroupClusteredAnd(data[2].u16.xyz, 1); - data[invocation].u16 = subgroupClusteredAnd(data[3].u16, 1); - - data[invocation].u16.x = subgroupClusteredOr(data[0].u16.x, 1); - data[invocation].u16.xy = subgroupClusteredOr(data[1].u16.xy, 1); - data[invocation].u16.xyz = subgroupClusteredOr(data[2].u16.xyz, 1); - data[invocation].u16 = subgroupClusteredOr(data[3].u16, 1); - - data[invocation].u16.x = subgroupClusteredXor(data[0].u16.x, 1); - data[invocation].u16.xy = subgroupClusteredXor(data[1].u16.xy, 1); - data[invocation].u16.xyz = subgroupClusteredXor(data[2].u16.xyz, 1); - data[invocation].u16 = subgroupClusteredXor(data[3].u16, 1); - - data[invocation].i64.x = subgroupClusteredAdd(data[0].i64.x, 1); - data[invocation].i64.xy = subgroupClusteredAdd(data[1].i64.xy, 1); - data[invocation].i64.xyz = subgroupClusteredAdd(data[2].i64.xyz, 1); - data[invocation].i64 = subgroupClusteredAdd(data[3].i64, 1); - - data[invocation].i64.x = subgroupClusteredMul(data[0].i64.x, 1); - data[invocation].i64.xy = subgroupClusteredMul(data[1].i64.xy, 1); - data[invocation].i64.xyz = subgroupClusteredMul(data[2].i64.xyz, 1); - data[invocation].i64 = subgroupClusteredMul(data[3].i64, 1); - - data[invocation].i64.x = subgroupClusteredMin(data[0].i64.x, 1); - data[invocation].i64.xy = subgroupClusteredMin(data[1].i64.xy, 1); - data[invocation].i64.xyz = subgroupClusteredMin(data[2].i64.xyz, 1); - data[invocation].i64 = subgroupClusteredMin(data[3].i64, 1); - - data[invocation].i64.x = subgroupClusteredMax(data[0].i64.x, 1); - data[invocation].i64.xy = subgroupClusteredMax(data[1].i64.xy, 1); - data[invocation].i64.xyz = subgroupClusteredMax(data[2].i64.xyz, 1); - data[invocation].i64 = subgroupClusteredMax(data[3].i64, 1); - - data[invocation].i64.x = subgroupClusteredAnd(data[0].i64.x, 1); - data[invocation].i64.xy = subgroupClusteredAnd(data[1].i64.xy, 1); - data[invocation].i64.xyz = subgroupClusteredAnd(data[2].i64.xyz, 1); - data[invocation].i64 = subgroupClusteredAnd(data[3].i64, 1); - - data[invocation].i64.x = subgroupClusteredOr(data[0].i64.x, 1); - data[invocation].i64.xy = subgroupClusteredOr(data[1].i64.xy, 1); - data[invocation].i64.xyz = subgroupClusteredOr(data[2].i64.xyz, 1); - data[invocation].i64 = subgroupClusteredOr(data[3].i64, 1); - - data[invocation].i64.x = subgroupClusteredXor(data[0].i64.x, 1); - data[invocation].i64.xy = subgroupClusteredXor(data[1].i64.xy, 1); - data[invocation].i64.xyz = subgroupClusteredXor(data[2].i64.xyz, 1); - data[invocation].i64 = subgroupClusteredXor(data[3].i64, 1); - - data[invocation].u64.x = subgroupClusteredAdd(data[0].u64.x, 1); - data[invocation].u64.xy = subgroupClusteredAdd(data[1].u64.xy, 1); - data[invocation].u64.xyz = subgroupClusteredAdd(data[2].u64.xyz, 1); - data[invocation].u64 = subgroupClusteredAdd(data[3].u64, 1); - - data[invocation].u64.x = subgroupClusteredMul(data[0].u64.x, 1); - data[invocation].u64.xy = subgroupClusteredMul(data[1].u64.xy, 1); - data[invocation].u64.xyz = subgroupClusteredMul(data[2].u64.xyz, 1); - data[invocation].u64 = subgroupClusteredMul(data[3].u64, 1); - - data[invocation].u64.x = subgroupClusteredMin(data[0].u64.x, 1); - data[invocation].u64.xy = subgroupClusteredMin(data[1].u64.xy, 1); - data[invocation].u64.xyz = subgroupClusteredMin(data[2].u64.xyz, 1); - data[invocation].u64 = subgroupClusteredMin(data[3].u64, 1); - - data[invocation].u64.x = subgroupClusteredMax(data[0].u64.x, 1); - data[invocation].u64.xy = subgroupClusteredMax(data[1].u64.xy, 1); - data[invocation].u64.xyz = subgroupClusteredMax(data[2].u64.xyz, 1); - data[invocation].u64 = subgroupClusteredMax(data[3].u64, 1); - - data[invocation].u64.x = subgroupClusteredAnd(data[0].u64.x, 1); - data[invocation].u64.xy = subgroupClusteredAnd(data[1].u64.xy, 1); - data[invocation].u64.xyz = subgroupClusteredAnd(data[2].u64.xyz, 1); - data[invocation].u64 = subgroupClusteredAnd(data[3].u64, 1); - - data[invocation].u64.x = subgroupClusteredOr(data[0].u64.x, 1); - data[invocation].u64.xy = subgroupClusteredOr(data[1].u64.xy, 1); - data[invocation].u64.xyz = subgroupClusteredOr(data[2].u64.xyz, 1); - data[invocation].u64 = subgroupClusteredOr(data[3].u64, 1); - - data[invocation].u64.x = subgroupClusteredXor(data[0].u64.x, 1); - data[invocation].u64.xy = subgroupClusteredXor(data[1].u64.xy, 1); - data[invocation].u64.xyz = subgroupClusteredXor(data[2].u64.xyz, 1); - data[invocation].u64 = subgroupClusteredXor(data[3].u64, 1); - - data[invocation].f16.x = subgroupClusteredAdd(data[0].f16.x, 1); - data[invocation].f16.xy = subgroupClusteredAdd(data[1].f16.xy, 1); - data[invocation].f16.xyz = subgroupClusteredAdd(data[2].f16.xyz, 1); - data[invocation].f16 = subgroupClusteredAdd(data[3].f16, 1); - - data[invocation].f16.x = subgroupClusteredMul(data[0].f16.x, 1); - data[invocation].f16.xy = subgroupClusteredMul(data[1].f16.xy, 1); - data[invocation].f16.xyz = subgroupClusteredMul(data[2].f16.xyz, 1); - data[invocation].f16 = subgroupClusteredMul(data[3].f16, 1); - - data[invocation].f16.x = subgroupClusteredMin(data[0].f16.x, 1); - data[invocation].f16.xy = subgroupClusteredMin(data[1].f16.xy, 1); - data[invocation].f16.xyz = subgroupClusteredMin(data[2].f16.xyz, 1); - data[invocation].f16 = subgroupClusteredMin(data[3].f16, 1); - - data[invocation].f16.x = subgroupClusteredMax(data[0].f16.x, 1); - data[invocation].f16.xy = subgroupClusteredMax(data[1].f16.xy, 1); - data[invocation].f16.xyz = subgroupClusteredMax(data[2].f16.xyz, 1); - data[invocation].f16 = subgroupClusteredMax(data[3].f16, 1); -} diff --git a/deps/glslang/Test/spv.subgroupExtendedTypesPartitioned.comp b/deps/glslang/Test/spv.subgroupExtendedTypesPartitioned.comp deleted file mode 100644 index 382a5b36..00000000 --- a/deps/glslang/Test/spv.subgroupExtendedTypesPartitioned.comp +++ /dev/null @@ -1,291 +0,0 @@ -#version 450 - -#extension GL_NV_shader_subgroup_partitioned: enable -#extension GL_EXT_shader_subgroup_extended_types_int8: enable -#extension GL_EXT_shader_subgroup_extended_types_int16: enable -#extension GL_EXT_shader_subgroup_extended_types_int64: enable -#extension GL_EXT_shader_subgroup_extended_types_float16: enable - -layout (local_size_x = 8) in; - -layout(binding = 0) buffer Buffers -{ - i8vec4 i8; - u8vec4 u8; - i16vec4 i16; - u16vec4 u16; - i64vec4 i64; - u64vec4 u64; - f16vec4 f16; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; - - uvec4 ballot; - ballot = subgroupPartitionNV(data[0].i8.x); - ballot = subgroupPartitionNV(data[1].i8.xy); - ballot = subgroupPartitionNV(data[2].i8.xyz); - ballot = subgroupPartitionNV(data[3].i8); - - ballot = subgroupPartitionNV(data[0].u8.x); - ballot = subgroupPartitionNV(data[1].u8.xy); - ballot = subgroupPartitionNV(data[2].u8.xyz); - ballot = subgroupPartitionNV(data[3].u8); - - ballot = subgroupPartitionNV(data[0].i16.x); - ballot = subgroupPartitionNV(data[1].i16.xy); - ballot = subgroupPartitionNV(data[2].i16.xyz); - ballot = subgroupPartitionNV(data[3].i16); - - ballot = subgroupPartitionNV(data[0].u16.x); - ballot = subgroupPartitionNV(data[1].u16.xy); - ballot = subgroupPartitionNV(data[2].u16.xyz); - ballot = subgroupPartitionNV(data[3].u16); - - ballot = subgroupPartitionNV(data[0].i64.x); - ballot = subgroupPartitionNV(data[1].i64.xy); - ballot = subgroupPartitionNV(data[2].i64.xyz); - ballot = subgroupPartitionNV(data[3].i64); - - ballot = subgroupPartitionNV(data[0].u64.x); - ballot = subgroupPartitionNV(data[1].u64.xy); - ballot = subgroupPartitionNV(data[2].u64.xyz); - ballot = subgroupPartitionNV(data[3].u64); - - ballot = subgroupPartitionNV(data[0].f16.x); - ballot = subgroupPartitionNV(data[1].f16.xy); - ballot = subgroupPartitionNV(data[2].f16.xyz); - ballot = subgroupPartitionNV(data[3].f16); - - data[invocation].i8.x = subgroupPartitionedAddNV(data[0].i8.x, ballot); - data[invocation].i8.xy = subgroupPartitionedAddNV(data[1].i8.xy, ballot); - data[invocation].i8.xyz = subgroupPartitionedAddNV(data[2].i8.xyz, ballot); - data[invocation].i8 = subgroupPartitionedAddNV(data[3].i8, ballot); - - data[invocation].i8.x = subgroupPartitionedMulNV(data[0].i8.x, ballot); - data[invocation].i8.xy = subgroupPartitionedMulNV(data[1].i8.xy, ballot); - data[invocation].i8.xyz = subgroupPartitionedMulNV(data[2].i8.xyz, ballot); - data[invocation].i8 = subgroupPartitionedMulNV(data[3].i8, ballot); - - data[invocation].i8.x = subgroupPartitionedMinNV(data[0].i8.x, ballot); - data[invocation].i8.xy = subgroupPartitionedMinNV(data[1].i8.xy, ballot); - data[invocation].i8.xyz = subgroupPartitionedMinNV(data[2].i8.xyz, ballot); - data[invocation].i8 = subgroupPartitionedMinNV(data[3].i8, ballot); - - data[invocation].i8.x = subgroupPartitionedMaxNV(data[0].i8.x, ballot); - data[invocation].i8.xy = subgroupPartitionedMaxNV(data[1].i8.xy, ballot); - data[invocation].i8.xyz = subgroupPartitionedMaxNV(data[2].i8.xyz, ballot); - data[invocation].i8 = subgroupPartitionedMaxNV(data[3].i8, ballot); - - data[invocation].i8.x = subgroupPartitionedAndNV(data[0].i8.x, ballot); - data[invocation].i8.xy = subgroupPartitionedAndNV(data[1].i8.xy, ballot); - data[invocation].i8.xyz = subgroupPartitionedAndNV(data[2].i8.xyz, ballot); - data[invocation].i8 = subgroupPartitionedAndNV(data[3].i8, ballot); - - data[invocation].i8.x = subgroupPartitionedOrNV(data[0].i8.x, ballot); - data[invocation].i8.xy = subgroupPartitionedOrNV(data[1].i8.xy, ballot); - data[invocation].i8.xyz = subgroupPartitionedOrNV(data[2].i8.xyz, ballot); - data[invocation].i8 = subgroupPartitionedOrNV(data[3].i8, ballot); - - data[invocation].i8.x = subgroupPartitionedXorNV(data[0].i8.x, ballot); - data[invocation].i8.xy = subgroupPartitionedXorNV(data[1].i8.xy, ballot); - data[invocation].i8.xyz = subgroupPartitionedXorNV(data[2].i8.xyz, ballot); - data[invocation].i8 = subgroupPartitionedXorNV(data[3].i8, ballot); - - data[invocation].u8.x = subgroupPartitionedAddNV(data[0].u8.x, ballot); - data[invocation].u8.xy = subgroupPartitionedAddNV(data[1].u8.xy, ballot); - data[invocation].u8.xyz = subgroupPartitionedAddNV(data[2].u8.xyz, ballot); - data[invocation].u8 = subgroupPartitionedAddNV(data[3].u8, ballot); - - data[invocation].u8.x = subgroupPartitionedMulNV(data[0].u8.x, ballot); - data[invocation].u8.xy = subgroupPartitionedMulNV(data[1].u8.xy, ballot); - data[invocation].u8.xyz = subgroupPartitionedMulNV(data[2].u8.xyz, ballot); - data[invocation].u8 = subgroupPartitionedMulNV(data[3].u8, ballot); - - data[invocation].u8.x = subgroupPartitionedMinNV(data[0].u8.x, ballot); - data[invocation].u8.xy = subgroupPartitionedMinNV(data[1].u8.xy, ballot); - data[invocation].u8.xyz = subgroupPartitionedMinNV(data[2].u8.xyz, ballot); - data[invocation].u8 = subgroupPartitionedMinNV(data[3].u8, ballot); - - data[invocation].u8.x = subgroupPartitionedMaxNV(data[0].u8.x, ballot); - data[invocation].u8.xy = subgroupPartitionedMaxNV(data[1].u8.xy, ballot); - data[invocation].u8.xyz = subgroupPartitionedMaxNV(data[2].u8.xyz, ballot); - data[invocation].u8 = subgroupPartitionedMaxNV(data[3].u8, ballot); - - data[invocation].u8.x = subgroupPartitionedAndNV(data[0].u8.x, ballot); - data[invocation].u8.xy = subgroupPartitionedAndNV(data[1].u8.xy, ballot); - data[invocation].u8.xyz = subgroupPartitionedAndNV(data[2].u8.xyz, ballot); - data[invocation].u8 = subgroupPartitionedAndNV(data[3].u8, ballot); - - data[invocation].u8.x = subgroupPartitionedOrNV(data[0].u8.x, ballot); - data[invocation].u8.xy = subgroupPartitionedOrNV(data[1].u8.xy, ballot); - data[invocation].u8.xyz = subgroupPartitionedOrNV(data[2].u8.xyz, ballot); - data[invocation].u8 = subgroupPartitionedOrNV(data[3].u8, ballot); - - data[invocation].u8.x = subgroupPartitionedXorNV(data[0].u8.x, ballot); - data[invocation].u8.xy = subgroupPartitionedXorNV(data[1].u8.xy, ballot); - data[invocation].u8.xyz = subgroupPartitionedXorNV(data[2].u8.xyz, ballot); - data[invocation].u8 = subgroupPartitionedXorNV(data[3].u8, ballot); - - data[invocation].i16.x = subgroupPartitionedAddNV(data[0].i16.x, ballot); - data[invocation].i16.xy = subgroupPartitionedAddNV(data[1].i16.xy, ballot); - data[invocation].i16.xyz = subgroupPartitionedAddNV(data[2].i16.xyz, ballot); - data[invocation].i16 = subgroupPartitionedAddNV(data[3].i16, ballot); - - data[invocation].i16.x = subgroupPartitionedMulNV(data[0].i16.x, ballot); - data[invocation].i16.xy = subgroupPartitionedMulNV(data[1].i16.xy, ballot); - data[invocation].i16.xyz = subgroupPartitionedMulNV(data[2].i16.xyz, ballot); - data[invocation].i16 = subgroupPartitionedMulNV(data[3].i16, ballot); - - data[invocation].i16.x = subgroupPartitionedMinNV(data[0].i16.x, ballot); - data[invocation].i16.xy = subgroupPartitionedMinNV(data[1].i16.xy, ballot); - data[invocation].i16.xyz = subgroupPartitionedMinNV(data[2].i16.xyz, ballot); - data[invocation].i16 = subgroupPartitionedMinNV(data[3].i16, ballot); - - data[invocation].i16.x = subgroupPartitionedMaxNV(data[0].i16.x, ballot); - data[invocation].i16.xy = subgroupPartitionedMaxNV(data[1].i16.xy, ballot); - data[invocation].i16.xyz = subgroupPartitionedMaxNV(data[2].i16.xyz, ballot); - data[invocation].i16 = subgroupPartitionedMaxNV(data[3].i16, ballot); - - data[invocation].i16.x = subgroupPartitionedAndNV(data[0].i16.x, ballot); - data[invocation].i16.xy = subgroupPartitionedAndNV(data[1].i16.xy, ballot); - data[invocation].i16.xyz = subgroupPartitionedAndNV(data[2].i16.xyz, ballot); - data[invocation].i16 = subgroupPartitionedAndNV(data[3].i16, ballot); - - data[invocation].i16.x = subgroupPartitionedOrNV(data[0].i16.x, ballot); - data[invocation].i16.xy = subgroupPartitionedOrNV(data[1].i16.xy, ballot); - data[invocation].i16.xyz = subgroupPartitionedOrNV(data[2].i16.xyz, ballot); - data[invocation].i16 = subgroupPartitionedOrNV(data[3].i16, ballot); - - data[invocation].i16.x = subgroupPartitionedXorNV(data[0].i16.x, ballot); - data[invocation].i16.xy = subgroupPartitionedXorNV(data[1].i16.xy, ballot); - data[invocation].i16.xyz = subgroupPartitionedXorNV(data[2].i16.xyz, ballot); - data[invocation].i16 = subgroupPartitionedXorNV(data[3].i16, ballot); - - data[invocation].u16.x = subgroupPartitionedAddNV(data[0].u16.x, ballot); - data[invocation].u16.xy = subgroupPartitionedAddNV(data[1].u16.xy, ballot); - data[invocation].u16.xyz = subgroupPartitionedAddNV(data[2].u16.xyz, ballot); - data[invocation].u16 = subgroupPartitionedAddNV(data[3].u16, ballot); - - data[invocation].u16.x = subgroupPartitionedMulNV(data[0].u16.x, ballot); - data[invocation].u16.xy = subgroupPartitionedMulNV(data[1].u16.xy, ballot); - data[invocation].u16.xyz = subgroupPartitionedMulNV(data[2].u16.xyz, ballot); - data[invocation].u16 = subgroupPartitionedMulNV(data[3].u16, ballot); - - data[invocation].u16.x = subgroupPartitionedMinNV(data[0].u16.x, ballot); - data[invocation].u16.xy = subgroupPartitionedMinNV(data[1].u16.xy, ballot); - data[invocation].u16.xyz = subgroupPartitionedMinNV(data[2].u16.xyz, ballot); - data[invocation].u16 = subgroupPartitionedMinNV(data[3].u16, ballot); - - data[invocation].u16.x = subgroupPartitionedMaxNV(data[0].u16.x, ballot); - data[invocation].u16.xy = subgroupPartitionedMaxNV(data[1].u16.xy, ballot); - data[invocation].u16.xyz = subgroupPartitionedMaxNV(data[2].u16.xyz, ballot); - data[invocation].u16 = subgroupPartitionedMaxNV(data[3].u16, ballot); - - data[invocation].u16.x = subgroupPartitionedAndNV(data[0].u16.x, ballot); - data[invocation].u16.xy = subgroupPartitionedAndNV(data[1].u16.xy, ballot); - data[invocation].u16.xyz = subgroupPartitionedAndNV(data[2].u16.xyz, ballot); - data[invocation].u16 = subgroupPartitionedAndNV(data[3].u16, ballot); - - data[invocation].u16.x = subgroupPartitionedOrNV(data[0].u16.x, ballot); - data[invocation].u16.xy = subgroupPartitionedOrNV(data[1].u16.xy, ballot); - data[invocation].u16.xyz = subgroupPartitionedOrNV(data[2].u16.xyz, ballot); - data[invocation].u16 = subgroupPartitionedOrNV(data[3].u16, ballot); - - data[invocation].u16.x = subgroupPartitionedXorNV(data[0].u16.x, ballot); - data[invocation].u16.xy = subgroupPartitionedXorNV(data[1].u16.xy, ballot); - data[invocation].u16.xyz = subgroupPartitionedXorNV(data[2].u16.xyz, ballot); - data[invocation].u16 = subgroupPartitionedXorNV(data[3].u16, ballot); - - data[invocation].i64.x = subgroupPartitionedAddNV(data[0].i64.x, ballot); - data[invocation].i64.xy = subgroupPartitionedAddNV(data[1].i64.xy, ballot); - data[invocation].i64.xyz = subgroupPartitionedAddNV(data[2].i64.xyz, ballot); - data[invocation].i64 = subgroupPartitionedAddNV(data[3].i64, ballot); - - data[invocation].i64.x = subgroupPartitionedMulNV(data[0].i64.x, ballot); - data[invocation].i64.xy = subgroupPartitionedMulNV(data[1].i64.xy, ballot); - data[invocation].i64.xyz = subgroupPartitionedMulNV(data[2].i64.xyz, ballot); - data[invocation].i64 = subgroupPartitionedMulNV(data[3].i64, ballot); - - data[invocation].i64.x = subgroupPartitionedMinNV(data[0].i64.x, ballot); - data[invocation].i64.xy = subgroupPartitionedMinNV(data[1].i64.xy, ballot); - data[invocation].i64.xyz = subgroupPartitionedMinNV(data[2].i64.xyz, ballot); - data[invocation].i64 = subgroupPartitionedMinNV(data[3].i64, ballot); - - data[invocation].i64.x = subgroupPartitionedMaxNV(data[0].i64.x, ballot); - data[invocation].i64.xy = subgroupPartitionedMaxNV(data[1].i64.xy, ballot); - data[invocation].i64.xyz = subgroupPartitionedMaxNV(data[2].i64.xyz, ballot); - data[invocation].i64 = subgroupPartitionedMaxNV(data[3].i64, ballot); - - data[invocation].i64.x = subgroupPartitionedAndNV(data[0].i64.x, ballot); - data[invocation].i64.xy = subgroupPartitionedAndNV(data[1].i64.xy, ballot); - data[invocation].i64.xyz = subgroupPartitionedAndNV(data[2].i64.xyz, ballot); - data[invocation].i64 = subgroupPartitionedAndNV(data[3].i64, ballot); - - data[invocation].i64.x = subgroupPartitionedOrNV(data[0].i64.x, ballot); - data[invocation].i64.xy = subgroupPartitionedOrNV(data[1].i64.xy, ballot); - data[invocation].i64.xyz = subgroupPartitionedOrNV(data[2].i64.xyz, ballot); - data[invocation].i64 = subgroupPartitionedOrNV(data[3].i64, ballot); - - data[invocation].i64.x = subgroupPartitionedXorNV(data[0].i64.x, ballot); - data[invocation].i64.xy = subgroupPartitionedXorNV(data[1].i64.xy, ballot); - data[invocation].i64.xyz = subgroupPartitionedXorNV(data[2].i64.xyz, ballot); - data[invocation].i64 = subgroupPartitionedXorNV(data[3].i64, ballot); - - data[invocation].u64.x = subgroupPartitionedAddNV(data[0].u64.x, ballot); - data[invocation].u64.xy = subgroupPartitionedAddNV(data[1].u64.xy, ballot); - data[invocation].u64.xyz = subgroupPartitionedAddNV(data[2].u64.xyz, ballot); - data[invocation].u64 = subgroupPartitionedAddNV(data[3].u64, ballot); - - data[invocation].u64.x = subgroupPartitionedMulNV(data[0].u64.x, ballot); - data[invocation].u64.xy = subgroupPartitionedMulNV(data[1].u64.xy, ballot); - data[invocation].u64.xyz = subgroupPartitionedMulNV(data[2].u64.xyz, ballot); - data[invocation].u64 = subgroupPartitionedMulNV(data[3].u64, ballot); - - data[invocation].u64.x = subgroupPartitionedMinNV(data[0].u64.x, ballot); - data[invocation].u64.xy = subgroupPartitionedMinNV(data[1].u64.xy, ballot); - data[invocation].u64.xyz = subgroupPartitionedMinNV(data[2].u64.xyz, ballot); - data[invocation].u64 = subgroupPartitionedMinNV(data[3].u64, ballot); - - data[invocation].u64.x = subgroupPartitionedMaxNV(data[0].u64.x, ballot); - data[invocation].u64.xy = subgroupPartitionedMaxNV(data[1].u64.xy, ballot); - data[invocation].u64.xyz = subgroupPartitionedMaxNV(data[2].u64.xyz, ballot); - data[invocation].u64 = subgroupPartitionedMaxNV(data[3].u64, ballot); - - data[invocation].u64.x = subgroupPartitionedAndNV(data[0].u64.x, ballot); - data[invocation].u64.xy = subgroupPartitionedAndNV(data[1].u64.xy, ballot); - data[invocation].u64.xyz = subgroupPartitionedAndNV(data[2].u64.xyz, ballot); - data[invocation].u64 = subgroupPartitionedAndNV(data[3].u64, ballot); - - data[invocation].u64.x = subgroupPartitionedOrNV(data[0].u64.x, ballot); - data[invocation].u64.xy = subgroupPartitionedOrNV(data[1].u64.xy, ballot); - data[invocation].u64.xyz = subgroupPartitionedOrNV(data[2].u64.xyz, ballot); - data[invocation].u64 = subgroupPartitionedOrNV(data[3].u64, ballot); - - data[invocation].u64.x = subgroupPartitionedXorNV(data[0].u64.x, ballot); - data[invocation].u64.xy = subgroupPartitionedXorNV(data[1].u64.xy, ballot); - data[invocation].u64.xyz = subgroupPartitionedXorNV(data[2].u64.xyz, ballot); - data[invocation].u64 = subgroupPartitionedXorNV(data[3].u64, ballot); - - data[invocation].f16.x = subgroupPartitionedAddNV(data[0].f16.x, ballot); - data[invocation].f16.xy = subgroupPartitionedAddNV(data[1].f16.xy, ballot); - data[invocation].f16.xyz = subgroupPartitionedAddNV(data[2].f16.xyz, ballot); - data[invocation].f16 = subgroupPartitionedAddNV(data[3].f16, ballot); - - data[invocation].f16.x = subgroupPartitionedMulNV(data[0].f16.x, ballot); - data[invocation].f16.xy = subgroupPartitionedMulNV(data[1].f16.xy, ballot); - data[invocation].f16.xyz = subgroupPartitionedMulNV(data[2].f16.xyz, ballot); - data[invocation].f16 = subgroupPartitionedMulNV(data[3].f16, ballot); - - data[invocation].f16.x = subgroupPartitionedMinNV(data[0].f16.x, ballot); - data[invocation].f16.xy = subgroupPartitionedMinNV(data[1].f16.xy, ballot); - data[invocation].f16.xyz = subgroupPartitionedMinNV(data[2].f16.xyz, ballot); - data[invocation].f16 = subgroupPartitionedMinNV(data[3].f16, ballot); - - data[invocation].f16.x = subgroupPartitionedMaxNV(data[0].f16.x, ballot); - data[invocation].f16.xy = subgroupPartitionedMaxNV(data[1].f16.xy, ballot); - data[invocation].f16.xyz = subgroupPartitionedMaxNV(data[2].f16.xyz, ballot); - data[invocation].f16 = subgroupPartitionedMaxNV(data[3].f16, ballot); -} diff --git a/deps/glslang/Test/spv.subgroupExtendedTypesPartitionedNeg.comp b/deps/glslang/Test/spv.subgroupExtendedTypesPartitionedNeg.comp deleted file mode 100644 index ad94e35d..00000000 --- a/deps/glslang/Test/spv.subgroupExtendedTypesPartitionedNeg.comp +++ /dev/null @@ -1,291 +0,0 @@ -#version 450 - -#extension GL_NV_shader_subgroup_partitioned: enable -#extension GL_EXT_shader_explicit_arithmetic_types_int8: enable -#extension GL_EXT_shader_explicit_arithmetic_types_int16: enable -#extension GL_EXT_shader_explicit_arithmetic_types_int64: enable -#extension GL_EXT_shader_explicit_arithmetic_types_float16: enable - -layout (local_size_x = 8) in; - -layout(binding = 0) buffer Buffers -{ - i8vec4 i8; - u8vec4 u8; - i16vec4 i16; - u16vec4 u16; - i64vec4 i64; - u64vec4 u64; - f16vec4 f16; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; - - uvec4 ballot; - ballot = subgroupPartitionNV(data[0].i8.x); - ballot = subgroupPartitionNV(data[1].i8.xy); - ballot = subgroupPartitionNV(data[2].i8.xyz); - ballot = subgroupPartitionNV(data[3].i8); - - ballot = subgroupPartitionNV(data[0].u8.x); - ballot = subgroupPartitionNV(data[1].u8.xy); - ballot = subgroupPartitionNV(data[2].u8.xyz); - ballot = subgroupPartitionNV(data[3].u8); - - ballot = subgroupPartitionNV(data[0].i16.x); - ballot = subgroupPartitionNV(data[1].i16.xy); - ballot = subgroupPartitionNV(data[2].i16.xyz); - ballot = subgroupPartitionNV(data[3].i16); - - ballot = subgroupPartitionNV(data[0].u16.x); - ballot = subgroupPartitionNV(data[1].u16.xy); - ballot = subgroupPartitionNV(data[2].u16.xyz); - ballot = subgroupPartitionNV(data[3].u16); - - ballot = subgroupPartitionNV(data[0].i64.x); - ballot = subgroupPartitionNV(data[1].i64.xy); - ballot = subgroupPartitionNV(data[2].i64.xyz); - ballot = subgroupPartitionNV(data[3].i64); - - ballot = subgroupPartitionNV(data[0].u64.x); - ballot = subgroupPartitionNV(data[1].u64.xy); - ballot = subgroupPartitionNV(data[2].u64.xyz); - ballot = subgroupPartitionNV(data[3].u64); - - ballot = subgroupPartitionNV(data[0].f16.x); - ballot = subgroupPartitionNV(data[1].f16.xy); - ballot = subgroupPartitionNV(data[2].f16.xyz); - ballot = subgroupPartitionNV(data[3].f16); - - data[invocation].i8.x = subgroupPartitionedAddNV(data[0].i8.x, ballot); - data[invocation].i8.xy = subgroupPartitionedAddNV(data[1].i8.xy, ballot); - data[invocation].i8.xyz = subgroupPartitionedAddNV(data[2].i8.xyz, ballot); - data[invocation].i8 = subgroupPartitionedAddNV(data[3].i8, ballot); - - data[invocation].i8.x = subgroupPartitionedMulNV(data[0].i8.x, ballot); - data[invocation].i8.xy = subgroupPartitionedMulNV(data[1].i8.xy, ballot); - data[invocation].i8.xyz = subgroupPartitionedMulNV(data[2].i8.xyz, ballot); - data[invocation].i8 = subgroupPartitionedMulNV(data[3].i8, ballot); - - data[invocation].i8.x = subgroupPartitionedMinNV(data[0].i8.x, ballot); - data[invocation].i8.xy = subgroupPartitionedMinNV(data[1].i8.xy, ballot); - data[invocation].i8.xyz = subgroupPartitionedMinNV(data[2].i8.xyz, ballot); - data[invocation].i8 = subgroupPartitionedMinNV(data[3].i8, ballot); - - data[invocation].i8.x = subgroupPartitionedMaxNV(data[0].i8.x, ballot); - data[invocation].i8.xy = subgroupPartitionedMaxNV(data[1].i8.xy, ballot); - data[invocation].i8.xyz = subgroupPartitionedMaxNV(data[2].i8.xyz, ballot); - data[invocation].i8 = subgroupPartitionedMaxNV(data[3].i8, ballot); - - data[invocation].i8.x = subgroupPartitionedAndNV(data[0].i8.x, ballot); - data[invocation].i8.xy = subgroupPartitionedAndNV(data[1].i8.xy, ballot); - data[invocation].i8.xyz = subgroupPartitionedAndNV(data[2].i8.xyz, ballot); - data[invocation].i8 = subgroupPartitionedAndNV(data[3].i8, ballot); - - data[invocation].i8.x = subgroupPartitionedOrNV(data[0].i8.x, ballot); - data[invocation].i8.xy = subgroupPartitionedOrNV(data[1].i8.xy, ballot); - data[invocation].i8.xyz = subgroupPartitionedOrNV(data[2].i8.xyz, ballot); - data[invocation].i8 = subgroupPartitionedOrNV(data[3].i8, ballot); - - data[invocation].i8.x = subgroupPartitionedXorNV(data[0].i8.x, ballot); - data[invocation].i8.xy = subgroupPartitionedXorNV(data[1].i8.xy, ballot); - data[invocation].i8.xyz = subgroupPartitionedXorNV(data[2].i8.xyz, ballot); - data[invocation].i8 = subgroupPartitionedXorNV(data[3].i8, ballot); - - data[invocation].u8.x = subgroupPartitionedAddNV(data[0].u8.x, ballot); - data[invocation].u8.xy = subgroupPartitionedAddNV(data[1].u8.xy, ballot); - data[invocation].u8.xyz = subgroupPartitionedAddNV(data[2].u8.xyz, ballot); - data[invocation].u8 = subgroupPartitionedAddNV(data[3].u8, ballot); - - data[invocation].u8.x = subgroupPartitionedMulNV(data[0].u8.x, ballot); - data[invocation].u8.xy = subgroupPartitionedMulNV(data[1].u8.xy, ballot); - data[invocation].u8.xyz = subgroupPartitionedMulNV(data[2].u8.xyz, ballot); - data[invocation].u8 = subgroupPartitionedMulNV(data[3].u8, ballot); - - data[invocation].u8.x = subgroupPartitionedMinNV(data[0].u8.x, ballot); - data[invocation].u8.xy = subgroupPartitionedMinNV(data[1].u8.xy, ballot); - data[invocation].u8.xyz = subgroupPartitionedMinNV(data[2].u8.xyz, ballot); - data[invocation].u8 = subgroupPartitionedMinNV(data[3].u8, ballot); - - data[invocation].u8.x = subgroupPartitionedMaxNV(data[0].u8.x, ballot); - data[invocation].u8.xy = subgroupPartitionedMaxNV(data[1].u8.xy, ballot); - data[invocation].u8.xyz = subgroupPartitionedMaxNV(data[2].u8.xyz, ballot); - data[invocation].u8 = subgroupPartitionedMaxNV(data[3].u8, ballot); - - data[invocation].u8.x = subgroupPartitionedAndNV(data[0].u8.x, ballot); - data[invocation].u8.xy = subgroupPartitionedAndNV(data[1].u8.xy, ballot); - data[invocation].u8.xyz = subgroupPartitionedAndNV(data[2].u8.xyz, ballot); - data[invocation].u8 = subgroupPartitionedAndNV(data[3].u8, ballot); - - data[invocation].u8.x = subgroupPartitionedOrNV(data[0].u8.x, ballot); - data[invocation].u8.xy = subgroupPartitionedOrNV(data[1].u8.xy, ballot); - data[invocation].u8.xyz = subgroupPartitionedOrNV(data[2].u8.xyz, ballot); - data[invocation].u8 = subgroupPartitionedOrNV(data[3].u8, ballot); - - data[invocation].u8.x = subgroupPartitionedXorNV(data[0].u8.x, ballot); - data[invocation].u8.xy = subgroupPartitionedXorNV(data[1].u8.xy, ballot); - data[invocation].u8.xyz = subgroupPartitionedXorNV(data[2].u8.xyz, ballot); - data[invocation].u8 = subgroupPartitionedXorNV(data[3].u8, ballot); - - data[invocation].i16.x = subgroupPartitionedAddNV(data[0].i16.x, ballot); - data[invocation].i16.xy = subgroupPartitionedAddNV(data[1].i16.xy, ballot); - data[invocation].i16.xyz = subgroupPartitionedAddNV(data[2].i16.xyz, ballot); - data[invocation].i16 = subgroupPartitionedAddNV(data[3].i16, ballot); - - data[invocation].i16.x = subgroupPartitionedMulNV(data[0].i16.x, ballot); - data[invocation].i16.xy = subgroupPartitionedMulNV(data[1].i16.xy, ballot); - data[invocation].i16.xyz = subgroupPartitionedMulNV(data[2].i16.xyz, ballot); - data[invocation].i16 = subgroupPartitionedMulNV(data[3].i16, ballot); - - data[invocation].i16.x = subgroupPartitionedMinNV(data[0].i16.x, ballot); - data[invocation].i16.xy = subgroupPartitionedMinNV(data[1].i16.xy, ballot); - data[invocation].i16.xyz = subgroupPartitionedMinNV(data[2].i16.xyz, ballot); - data[invocation].i16 = subgroupPartitionedMinNV(data[3].i16, ballot); - - data[invocation].i16.x = subgroupPartitionedMaxNV(data[0].i16.x, ballot); - data[invocation].i16.xy = subgroupPartitionedMaxNV(data[1].i16.xy, ballot); - data[invocation].i16.xyz = subgroupPartitionedMaxNV(data[2].i16.xyz, ballot); - data[invocation].i16 = subgroupPartitionedMaxNV(data[3].i16, ballot); - - data[invocation].i16.x = subgroupPartitionedAndNV(data[0].i16.x, ballot); - data[invocation].i16.xy = subgroupPartitionedAndNV(data[1].i16.xy, ballot); - data[invocation].i16.xyz = subgroupPartitionedAndNV(data[2].i16.xyz, ballot); - data[invocation].i16 = subgroupPartitionedAndNV(data[3].i16, ballot); - - data[invocation].i16.x = subgroupPartitionedOrNV(data[0].i16.x, ballot); - data[invocation].i16.xy = subgroupPartitionedOrNV(data[1].i16.xy, ballot); - data[invocation].i16.xyz = subgroupPartitionedOrNV(data[2].i16.xyz, ballot); - data[invocation].i16 = subgroupPartitionedOrNV(data[3].i16, ballot); - - data[invocation].i16.x = subgroupPartitionedXorNV(data[0].i16.x, ballot); - data[invocation].i16.xy = subgroupPartitionedXorNV(data[1].i16.xy, ballot); - data[invocation].i16.xyz = subgroupPartitionedXorNV(data[2].i16.xyz, ballot); - data[invocation].i16 = subgroupPartitionedXorNV(data[3].i16, ballot); - - data[invocation].u16.x = subgroupPartitionedAddNV(data[0].u16.x, ballot); - data[invocation].u16.xy = subgroupPartitionedAddNV(data[1].u16.xy, ballot); - data[invocation].u16.xyz = subgroupPartitionedAddNV(data[2].u16.xyz, ballot); - data[invocation].u16 = subgroupPartitionedAddNV(data[3].u16, ballot); - - data[invocation].u16.x = subgroupPartitionedMulNV(data[0].u16.x, ballot); - data[invocation].u16.xy = subgroupPartitionedMulNV(data[1].u16.xy, ballot); - data[invocation].u16.xyz = subgroupPartitionedMulNV(data[2].u16.xyz, ballot); - data[invocation].u16 = subgroupPartitionedMulNV(data[3].u16, ballot); - - data[invocation].u16.x = subgroupPartitionedMinNV(data[0].u16.x, ballot); - data[invocation].u16.xy = subgroupPartitionedMinNV(data[1].u16.xy, ballot); - data[invocation].u16.xyz = subgroupPartitionedMinNV(data[2].u16.xyz, ballot); - data[invocation].u16 = subgroupPartitionedMinNV(data[3].u16, ballot); - - data[invocation].u16.x = subgroupPartitionedMaxNV(data[0].u16.x, ballot); - data[invocation].u16.xy = subgroupPartitionedMaxNV(data[1].u16.xy, ballot); - data[invocation].u16.xyz = subgroupPartitionedMaxNV(data[2].u16.xyz, ballot); - data[invocation].u16 = subgroupPartitionedMaxNV(data[3].u16, ballot); - - data[invocation].u16.x = subgroupPartitionedAndNV(data[0].u16.x, ballot); - data[invocation].u16.xy = subgroupPartitionedAndNV(data[1].u16.xy, ballot); - data[invocation].u16.xyz = subgroupPartitionedAndNV(data[2].u16.xyz, ballot); - data[invocation].u16 = subgroupPartitionedAndNV(data[3].u16, ballot); - - data[invocation].u16.x = subgroupPartitionedOrNV(data[0].u16.x, ballot); - data[invocation].u16.xy = subgroupPartitionedOrNV(data[1].u16.xy, ballot); - data[invocation].u16.xyz = subgroupPartitionedOrNV(data[2].u16.xyz, ballot); - data[invocation].u16 = subgroupPartitionedOrNV(data[3].u16, ballot); - - data[invocation].u16.x = subgroupPartitionedXorNV(data[0].u16.x, ballot); - data[invocation].u16.xy = subgroupPartitionedXorNV(data[1].u16.xy, ballot); - data[invocation].u16.xyz = subgroupPartitionedXorNV(data[2].u16.xyz, ballot); - data[invocation].u16 = subgroupPartitionedXorNV(data[3].u16, ballot); - - data[invocation].i64.x = subgroupPartitionedAddNV(data[0].i64.x, ballot); - data[invocation].i64.xy = subgroupPartitionedAddNV(data[1].i64.xy, ballot); - data[invocation].i64.xyz = subgroupPartitionedAddNV(data[2].i64.xyz, ballot); - data[invocation].i64 = subgroupPartitionedAddNV(data[3].i64, ballot); - - data[invocation].i64.x = subgroupPartitionedMulNV(data[0].i64.x, ballot); - data[invocation].i64.xy = subgroupPartitionedMulNV(data[1].i64.xy, ballot); - data[invocation].i64.xyz = subgroupPartitionedMulNV(data[2].i64.xyz, ballot); - data[invocation].i64 = subgroupPartitionedMulNV(data[3].i64, ballot); - - data[invocation].i64.x = subgroupPartitionedMinNV(data[0].i64.x, ballot); - data[invocation].i64.xy = subgroupPartitionedMinNV(data[1].i64.xy, ballot); - data[invocation].i64.xyz = subgroupPartitionedMinNV(data[2].i64.xyz, ballot); - data[invocation].i64 = subgroupPartitionedMinNV(data[3].i64, ballot); - - data[invocation].i64.x = subgroupPartitionedMaxNV(data[0].i64.x, ballot); - data[invocation].i64.xy = subgroupPartitionedMaxNV(data[1].i64.xy, ballot); - data[invocation].i64.xyz = subgroupPartitionedMaxNV(data[2].i64.xyz, ballot); - data[invocation].i64 = subgroupPartitionedMaxNV(data[3].i64, ballot); - - data[invocation].i64.x = subgroupPartitionedAndNV(data[0].i64.x, ballot); - data[invocation].i64.xy = subgroupPartitionedAndNV(data[1].i64.xy, ballot); - data[invocation].i64.xyz = subgroupPartitionedAndNV(data[2].i64.xyz, ballot); - data[invocation].i64 = subgroupPartitionedAndNV(data[3].i64, ballot); - - data[invocation].i64.x = subgroupPartitionedOrNV(data[0].i64.x, ballot); - data[invocation].i64.xy = subgroupPartitionedOrNV(data[1].i64.xy, ballot); - data[invocation].i64.xyz = subgroupPartitionedOrNV(data[2].i64.xyz, ballot); - data[invocation].i64 = subgroupPartitionedOrNV(data[3].i64, ballot); - - data[invocation].i64.x = subgroupPartitionedXorNV(data[0].i64.x, ballot); - data[invocation].i64.xy = subgroupPartitionedXorNV(data[1].i64.xy, ballot); - data[invocation].i64.xyz = subgroupPartitionedXorNV(data[2].i64.xyz, ballot); - data[invocation].i64 = subgroupPartitionedXorNV(data[3].i64, ballot); - - data[invocation].u64.x = subgroupPartitionedAddNV(data[0].u64.x, ballot); - data[invocation].u64.xy = subgroupPartitionedAddNV(data[1].u64.xy, ballot); - data[invocation].u64.xyz = subgroupPartitionedAddNV(data[2].u64.xyz, ballot); - data[invocation].u64 = subgroupPartitionedAddNV(data[3].u64, ballot); - - data[invocation].u64.x = subgroupPartitionedMulNV(data[0].u64.x, ballot); - data[invocation].u64.xy = subgroupPartitionedMulNV(data[1].u64.xy, ballot); - data[invocation].u64.xyz = subgroupPartitionedMulNV(data[2].u64.xyz, ballot); - data[invocation].u64 = subgroupPartitionedMulNV(data[3].u64, ballot); - - data[invocation].u64.x = subgroupPartitionedMinNV(data[0].u64.x, ballot); - data[invocation].u64.xy = subgroupPartitionedMinNV(data[1].u64.xy, ballot); - data[invocation].u64.xyz = subgroupPartitionedMinNV(data[2].u64.xyz, ballot); - data[invocation].u64 = subgroupPartitionedMinNV(data[3].u64, ballot); - - data[invocation].u64.x = subgroupPartitionedMaxNV(data[0].u64.x, ballot); - data[invocation].u64.xy = subgroupPartitionedMaxNV(data[1].u64.xy, ballot); - data[invocation].u64.xyz = subgroupPartitionedMaxNV(data[2].u64.xyz, ballot); - data[invocation].u64 = subgroupPartitionedMaxNV(data[3].u64, ballot); - - data[invocation].u64.x = subgroupPartitionedAndNV(data[0].u64.x, ballot); - data[invocation].u64.xy = subgroupPartitionedAndNV(data[1].u64.xy, ballot); - data[invocation].u64.xyz = subgroupPartitionedAndNV(data[2].u64.xyz, ballot); - data[invocation].u64 = subgroupPartitionedAndNV(data[3].u64, ballot); - - data[invocation].u64.x = subgroupPartitionedOrNV(data[0].u64.x, ballot); - data[invocation].u64.xy = subgroupPartitionedOrNV(data[1].u64.xy, ballot); - data[invocation].u64.xyz = subgroupPartitionedOrNV(data[2].u64.xyz, ballot); - data[invocation].u64 = subgroupPartitionedOrNV(data[3].u64, ballot); - - data[invocation].u64.x = subgroupPartitionedXorNV(data[0].u64.x, ballot); - data[invocation].u64.xy = subgroupPartitionedXorNV(data[1].u64.xy, ballot); - data[invocation].u64.xyz = subgroupPartitionedXorNV(data[2].u64.xyz, ballot); - data[invocation].u64 = subgroupPartitionedXorNV(data[3].u64, ballot); - - data[invocation].f16.x = subgroupPartitionedAddNV(data[0].f16.x, ballot); - data[invocation].f16.xy = subgroupPartitionedAddNV(data[1].f16.xy, ballot); - data[invocation].f16.xyz = subgroupPartitionedAddNV(data[2].f16.xyz, ballot); - data[invocation].f16 = subgroupPartitionedAddNV(data[3].f16, ballot); - - data[invocation].f16.x = subgroupPartitionedMulNV(data[0].f16.x, ballot); - data[invocation].f16.xy = subgroupPartitionedMulNV(data[1].f16.xy, ballot); - data[invocation].f16.xyz = subgroupPartitionedMulNV(data[2].f16.xyz, ballot); - data[invocation].f16 = subgroupPartitionedMulNV(data[3].f16, ballot); - - data[invocation].f16.x = subgroupPartitionedMinNV(data[0].f16.x, ballot); - data[invocation].f16.xy = subgroupPartitionedMinNV(data[1].f16.xy, ballot); - data[invocation].f16.xyz = subgroupPartitionedMinNV(data[2].f16.xyz, ballot); - data[invocation].f16 = subgroupPartitionedMinNV(data[3].f16, ballot); - - data[invocation].f16.x = subgroupPartitionedMaxNV(data[0].f16.x, ballot); - data[invocation].f16.xy = subgroupPartitionedMaxNV(data[1].f16.xy, ballot); - data[invocation].f16.xyz = subgroupPartitionedMaxNV(data[2].f16.xyz, ballot); - data[invocation].f16 = subgroupPartitionedMaxNV(data[3].f16, ballot); -} diff --git a/deps/glslang/Test/spv.subgroupExtendedTypesQuad.comp b/deps/glslang/Test/spv.subgroupExtendedTypesQuad.comp deleted file mode 100644 index 1ef2ecf9..00000000 --- a/deps/glslang/Test/spv.subgroupExtendedTypesQuad.comp +++ /dev/null @@ -1,165 +0,0 @@ -#version 450 - -#extension GL_KHR_shader_subgroup_quad: enable -#extension GL_EXT_shader_subgroup_extended_types_int8: enable -#extension GL_EXT_shader_subgroup_extended_types_int16: enable -#extension GL_EXT_shader_subgroup_extended_types_int64: enable -#extension GL_EXT_shader_subgroup_extended_types_float16: enable - -layout (local_size_x = 8) in; - -layout(binding = 0) buffer Buffers -{ - i8vec4 i8; - u8vec4 u8; - i16vec4 i16; - u16vec4 u16; - i64vec4 i64; - u64vec4 u64; - f16vec4 f16; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; - - data[invocation].i8.x = subgroupQuadBroadcast(data[0].i8.x, 1); - data[invocation].i8.xy = subgroupQuadBroadcast(data[1].i8.xy, 1); - data[invocation].i8.xyz = subgroupQuadBroadcast(data[2].i8.xyz, 1); - data[invocation].i8 = subgroupQuadBroadcast(data[3].i8, 1); - - data[invocation].i8.x = subgroupQuadSwapHorizontal(data[0].i8.x); - data[invocation].i8.xy = subgroupQuadSwapHorizontal(data[1].i8.xy); - data[invocation].i8.xyz = subgroupQuadSwapHorizontal(data[2].i8.xyz); - data[invocation].i8 = subgroupQuadSwapHorizontal(data[3].i8); - - data[invocation].i8.x = subgroupQuadSwapVertical(data[0].i8.x); - data[invocation].i8.xy = subgroupQuadSwapVertical(data[1].i8.xy); - data[invocation].i8.xyz = subgroupQuadSwapVertical(data[2].i8.xyz); - data[invocation].i8 = subgroupQuadSwapVertical(data[3].i8); - - data[invocation].i8.x = subgroupQuadSwapDiagonal(data[0].i8.x); - data[invocation].i8.xy = subgroupQuadSwapDiagonal(data[1].i8.xy); - data[invocation].i8.xyz = subgroupQuadSwapDiagonal(data[2].i8.xyz); - data[invocation].i8 = subgroupQuadSwapDiagonal(data[3].i8); - - data[invocation].u8.x = subgroupQuadBroadcast(data[0].u8.x, 1); - data[invocation].u8.xy = subgroupQuadBroadcast(data[1].u8.xy, 1); - data[invocation].u8.xyz = subgroupQuadBroadcast(data[2].u8.xyz, 1); - data[invocation].u8 = subgroupQuadBroadcast(data[3].u8, 1); - - data[invocation].u8.x = subgroupQuadSwapHorizontal(data[0].u8.x); - data[invocation].u8.xy = subgroupQuadSwapHorizontal(data[1].u8.xy); - data[invocation].u8.xyz = subgroupQuadSwapHorizontal(data[2].u8.xyz); - data[invocation].u8 = subgroupQuadSwapHorizontal(data[3].u8); - - data[invocation].u8.x = subgroupQuadSwapVertical(data[0].u8.x); - data[invocation].u8.xy = subgroupQuadSwapVertical(data[1].u8.xy); - data[invocation].u8.xyz = subgroupQuadSwapVertical(data[2].u8.xyz); - data[invocation].u8 = subgroupQuadSwapVertical(data[3].u8); - - data[invocation].u8.x = subgroupQuadSwapDiagonal(data[0].u8.x); - data[invocation].u8.xy = subgroupQuadSwapDiagonal(data[1].u8.xy); - data[invocation].u8.xyz = subgroupQuadSwapDiagonal(data[2].u8.xyz); - data[invocation].u8 = subgroupQuadSwapDiagonal(data[3].u8); - - data[invocation].i16.x = subgroupQuadBroadcast(data[0].i16.x, 1); - data[invocation].i16.xy = subgroupQuadBroadcast(data[1].i16.xy, 1); - data[invocation].i16.xyz = subgroupQuadBroadcast(data[2].i16.xyz, 1); - data[invocation].i16 = subgroupQuadBroadcast(data[3].i16, 1); - - data[invocation].i16.x = subgroupQuadSwapHorizontal(data[0].i16.x); - data[invocation].i16.xy = subgroupQuadSwapHorizontal(data[1].i16.xy); - data[invocation].i16.xyz = subgroupQuadSwapHorizontal(data[2].i16.xyz); - data[invocation].i16 = subgroupQuadSwapHorizontal(data[3].i16); - - data[invocation].i16.x = subgroupQuadSwapVertical(data[0].i16.x); - data[invocation].i16.xy = subgroupQuadSwapVertical(data[1].i16.xy); - data[invocation].i16.xyz = subgroupQuadSwapVertical(data[2].i16.xyz); - data[invocation].i16 = subgroupQuadSwapVertical(data[3].i16); - - data[invocation].i16.x = subgroupQuadSwapDiagonal(data[0].i16.x); - data[invocation].i16.xy = subgroupQuadSwapDiagonal(data[1].i16.xy); - data[invocation].i16.xyz = subgroupQuadSwapDiagonal(data[2].i16.xyz); - data[invocation].i16 = subgroupQuadSwapDiagonal(data[3].i16); - - data[invocation].u16.x = subgroupQuadBroadcast(data[0].u16.x, 1); - data[invocation].u16.xy = subgroupQuadBroadcast(data[1].u16.xy, 1); - data[invocation].u16.xyz = subgroupQuadBroadcast(data[2].u16.xyz, 1); - data[invocation].u16 = subgroupQuadBroadcast(data[3].u16, 1); - - data[invocation].u16.x = subgroupQuadSwapHorizontal(data[0].u16.x); - data[invocation].u16.xy = subgroupQuadSwapHorizontal(data[1].u16.xy); - data[invocation].u16.xyz = subgroupQuadSwapHorizontal(data[2].u16.xyz); - data[invocation].u16 = subgroupQuadSwapHorizontal(data[3].u16); - - data[invocation].u16.x = subgroupQuadSwapVertical(data[0].u16.x); - data[invocation].u16.xy = subgroupQuadSwapVertical(data[1].u16.xy); - data[invocation].u16.xyz = subgroupQuadSwapVertical(data[2].u16.xyz); - data[invocation].u16 = subgroupQuadSwapVertical(data[3].u16); - - data[invocation].u16.x = subgroupQuadSwapDiagonal(data[0].u16.x); - data[invocation].u16.xy = subgroupQuadSwapDiagonal(data[1].u16.xy); - data[invocation].u16.xyz = subgroupQuadSwapDiagonal(data[2].u16.xyz); - data[invocation].u16 = subgroupQuadSwapDiagonal(data[3].u16); - - data[invocation].i64.x = subgroupQuadBroadcast(data[0].i64.x, 1); - data[invocation].i64.xy = subgroupQuadBroadcast(data[1].i64.xy, 1); - data[invocation].i64.xyz = subgroupQuadBroadcast(data[2].i64.xyz, 1); - data[invocation].i64 = subgroupQuadBroadcast(data[3].i64, 1); - - data[invocation].i64.x = subgroupQuadSwapHorizontal(data[0].i64.x); - data[invocation].i64.xy = subgroupQuadSwapHorizontal(data[1].i64.xy); - data[invocation].i64.xyz = subgroupQuadSwapHorizontal(data[2].i64.xyz); - data[invocation].i64 = subgroupQuadSwapHorizontal(data[3].i64); - - data[invocation].i64.x = subgroupQuadSwapVertical(data[0].i64.x); - data[invocation].i64.xy = subgroupQuadSwapVertical(data[1].i64.xy); - data[invocation].i64.xyz = subgroupQuadSwapVertical(data[2].i64.xyz); - data[invocation].i64 = subgroupQuadSwapVertical(data[3].i64); - - data[invocation].i64.x = subgroupQuadSwapDiagonal(data[0].i64.x); - data[invocation].i64.xy = subgroupQuadSwapDiagonal(data[1].i64.xy); - data[invocation].i64.xyz = subgroupQuadSwapDiagonal(data[2].i64.xyz); - data[invocation].i64 = subgroupQuadSwapDiagonal(data[3].i64); - - data[invocation].u64.x = subgroupQuadBroadcast(data[0].u64.x, 1); - data[invocation].u64.xy = subgroupQuadBroadcast(data[1].u64.xy, 1); - data[invocation].u64.xyz = subgroupQuadBroadcast(data[2].u64.xyz, 1); - data[invocation].u64 = subgroupQuadBroadcast(data[3].u64, 1); - - data[invocation].u64.x = subgroupQuadSwapHorizontal(data[0].u64.x); - data[invocation].u64.xy = subgroupQuadSwapHorizontal(data[1].u64.xy); - data[invocation].u64.xyz = subgroupQuadSwapHorizontal(data[2].u64.xyz); - data[invocation].u64 = subgroupQuadSwapHorizontal(data[3].u64); - - data[invocation].u64.x = subgroupQuadSwapVertical(data[0].u64.x); - data[invocation].u64.xy = subgroupQuadSwapVertical(data[1].u64.xy); - data[invocation].u64.xyz = subgroupQuadSwapVertical(data[2].u64.xyz); - data[invocation].u64 = subgroupQuadSwapVertical(data[3].u64); - - data[invocation].u64.x = subgroupQuadSwapDiagonal(data[0].u64.x); - data[invocation].u64.xy = subgroupQuadSwapDiagonal(data[1].u64.xy); - data[invocation].u64.xyz = subgroupQuadSwapDiagonal(data[2].u64.xyz); - data[invocation].u64 = subgroupQuadSwapDiagonal(data[3].u64); - - data[invocation].f16.x = subgroupQuadBroadcast(data[0].f16.x, 1); - data[invocation].f16.xy = subgroupQuadBroadcast(data[1].f16.xy, 1); - data[invocation].f16.xyz = subgroupQuadBroadcast(data[2].f16.xyz, 1); - data[invocation].f16 = subgroupQuadBroadcast(data[3].f16, 1); - - data[invocation].f16.x = subgroupQuadSwapHorizontal(data[0].f16.x); - data[invocation].f16.xy = subgroupQuadSwapHorizontal(data[1].f16.xy); - data[invocation].f16.xyz = subgroupQuadSwapHorizontal(data[2].f16.xyz); - data[invocation].f16 = subgroupQuadSwapHorizontal(data[3].f16); - - data[invocation].f16.x = subgroupQuadSwapVertical(data[0].f16.x); - data[invocation].f16.xy = subgroupQuadSwapVertical(data[1].f16.xy); - data[invocation].f16.xyz = subgroupQuadSwapVertical(data[2].f16.xyz); - data[invocation].f16 = subgroupQuadSwapVertical(data[3].f16); - - data[invocation].f16.x = subgroupQuadSwapDiagonal(data[0].f16.x); - data[invocation].f16.xy = subgroupQuadSwapDiagonal(data[1].f16.xy); - data[invocation].f16.xyz = subgroupQuadSwapDiagonal(data[2].f16.xyz); - data[invocation].f16 = subgroupQuadSwapDiagonal(data[3].f16); -} diff --git a/deps/glslang/Test/spv.subgroupExtendedTypesQuadNeg.comp b/deps/glslang/Test/spv.subgroupExtendedTypesQuadNeg.comp deleted file mode 100644 index 07247767..00000000 --- a/deps/glslang/Test/spv.subgroupExtendedTypesQuadNeg.comp +++ /dev/null @@ -1,165 +0,0 @@ -#version 450 - -#extension GL_KHR_shader_subgroup_quad: enable -#extension GL_EXT_shader_explicit_arithmetic_types_int8: enable -#extension GL_EXT_shader_explicit_arithmetic_types_int16: enable -#extension GL_EXT_shader_explicit_arithmetic_types_int64: enable -#extension GL_EXT_shader_explicit_arithmetic_types_float16: enable - -layout (local_size_x = 8) in; - -layout(binding = 0) buffer Buffers -{ - i8vec4 i8; - u8vec4 u8; - i16vec4 i16; - u16vec4 u16; - i64vec4 i64; - u64vec4 u64; - f16vec4 f16; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; - - data[invocation].i8.x = subgroupQuadBroadcast(data[0].i8.x, 1); - data[invocation].i8.xy = subgroupQuadBroadcast(data[1].i8.xy, 1); - data[invocation].i8.xyz = subgroupQuadBroadcast(data[2].i8.xyz, 1); - data[invocation].i8 = subgroupQuadBroadcast(data[3].i8, 1); - - data[invocation].i8.x = subgroupQuadSwapHorizontal(data[0].i8.x); - data[invocation].i8.xy = subgroupQuadSwapHorizontal(data[1].i8.xy); - data[invocation].i8.xyz = subgroupQuadSwapHorizontal(data[2].i8.xyz); - data[invocation].i8 = subgroupQuadSwapHorizontal(data[3].i8); - - data[invocation].i8.x = subgroupQuadSwapVertical(data[0].i8.x); - data[invocation].i8.xy = subgroupQuadSwapVertical(data[1].i8.xy); - data[invocation].i8.xyz = subgroupQuadSwapVertical(data[2].i8.xyz); - data[invocation].i8 = subgroupQuadSwapVertical(data[3].i8); - - data[invocation].i8.x = subgroupQuadSwapDiagonal(data[0].i8.x); - data[invocation].i8.xy = subgroupQuadSwapDiagonal(data[1].i8.xy); - data[invocation].i8.xyz = subgroupQuadSwapDiagonal(data[2].i8.xyz); - data[invocation].i8 = subgroupQuadSwapDiagonal(data[3].i8); - - data[invocation].u8.x = subgroupQuadBroadcast(data[0].u8.x, 1); - data[invocation].u8.xy = subgroupQuadBroadcast(data[1].u8.xy, 1); - data[invocation].u8.xyz = subgroupQuadBroadcast(data[2].u8.xyz, 1); - data[invocation].u8 = subgroupQuadBroadcast(data[3].u8, 1); - - data[invocation].u8.x = subgroupQuadSwapHorizontal(data[0].u8.x); - data[invocation].u8.xy = subgroupQuadSwapHorizontal(data[1].u8.xy); - data[invocation].u8.xyz = subgroupQuadSwapHorizontal(data[2].u8.xyz); - data[invocation].u8 = subgroupQuadSwapHorizontal(data[3].u8); - - data[invocation].u8.x = subgroupQuadSwapVertical(data[0].u8.x); - data[invocation].u8.xy = subgroupQuadSwapVertical(data[1].u8.xy); - data[invocation].u8.xyz = subgroupQuadSwapVertical(data[2].u8.xyz); - data[invocation].u8 = subgroupQuadSwapVertical(data[3].u8); - - data[invocation].u8.x = subgroupQuadSwapDiagonal(data[0].u8.x); - data[invocation].u8.xy = subgroupQuadSwapDiagonal(data[1].u8.xy); - data[invocation].u8.xyz = subgroupQuadSwapDiagonal(data[2].u8.xyz); - data[invocation].u8 = subgroupQuadSwapDiagonal(data[3].u8); - - data[invocation].i16.x = subgroupQuadBroadcast(data[0].i16.x, 1); - data[invocation].i16.xy = subgroupQuadBroadcast(data[1].i16.xy, 1); - data[invocation].i16.xyz = subgroupQuadBroadcast(data[2].i16.xyz, 1); - data[invocation].i16 = subgroupQuadBroadcast(data[3].i16, 1); - - data[invocation].i16.x = subgroupQuadSwapHorizontal(data[0].i16.x); - data[invocation].i16.xy = subgroupQuadSwapHorizontal(data[1].i16.xy); - data[invocation].i16.xyz = subgroupQuadSwapHorizontal(data[2].i16.xyz); - data[invocation].i16 = subgroupQuadSwapHorizontal(data[3].i16); - - data[invocation].i16.x = subgroupQuadSwapVertical(data[0].i16.x); - data[invocation].i16.xy = subgroupQuadSwapVertical(data[1].i16.xy); - data[invocation].i16.xyz = subgroupQuadSwapVertical(data[2].i16.xyz); - data[invocation].i16 = subgroupQuadSwapVertical(data[3].i16); - - data[invocation].i16.x = subgroupQuadSwapDiagonal(data[0].i16.x); - data[invocation].i16.xy = subgroupQuadSwapDiagonal(data[1].i16.xy); - data[invocation].i16.xyz = subgroupQuadSwapDiagonal(data[2].i16.xyz); - data[invocation].i16 = subgroupQuadSwapDiagonal(data[3].i16); - - data[invocation].u16.x = subgroupQuadBroadcast(data[0].u16.x, 1); - data[invocation].u16.xy = subgroupQuadBroadcast(data[1].u16.xy, 1); - data[invocation].u16.xyz = subgroupQuadBroadcast(data[2].u16.xyz, 1); - data[invocation].u16 = subgroupQuadBroadcast(data[3].u16, 1); - - data[invocation].u16.x = subgroupQuadSwapHorizontal(data[0].u16.x); - data[invocation].u16.xy = subgroupQuadSwapHorizontal(data[1].u16.xy); - data[invocation].u16.xyz = subgroupQuadSwapHorizontal(data[2].u16.xyz); - data[invocation].u16 = subgroupQuadSwapHorizontal(data[3].u16); - - data[invocation].u16.x = subgroupQuadSwapVertical(data[0].u16.x); - data[invocation].u16.xy = subgroupQuadSwapVertical(data[1].u16.xy); - data[invocation].u16.xyz = subgroupQuadSwapVertical(data[2].u16.xyz); - data[invocation].u16 = subgroupQuadSwapVertical(data[3].u16); - - data[invocation].u16.x = subgroupQuadSwapDiagonal(data[0].u16.x); - data[invocation].u16.xy = subgroupQuadSwapDiagonal(data[1].u16.xy); - data[invocation].u16.xyz = subgroupQuadSwapDiagonal(data[2].u16.xyz); - data[invocation].u16 = subgroupQuadSwapDiagonal(data[3].u16); - - data[invocation].i64.x = subgroupQuadBroadcast(data[0].i64.x, 1); - data[invocation].i64.xy = subgroupQuadBroadcast(data[1].i64.xy, 1); - data[invocation].i64.xyz = subgroupQuadBroadcast(data[2].i64.xyz, 1); - data[invocation].i64 = subgroupQuadBroadcast(data[3].i64, 1); - - data[invocation].i64.x = subgroupQuadSwapHorizontal(data[0].i64.x); - data[invocation].i64.xy = subgroupQuadSwapHorizontal(data[1].i64.xy); - data[invocation].i64.xyz = subgroupQuadSwapHorizontal(data[2].i64.xyz); - data[invocation].i64 = subgroupQuadSwapHorizontal(data[3].i64); - - data[invocation].i64.x = subgroupQuadSwapVertical(data[0].i64.x); - data[invocation].i64.xy = subgroupQuadSwapVertical(data[1].i64.xy); - data[invocation].i64.xyz = subgroupQuadSwapVertical(data[2].i64.xyz); - data[invocation].i64 = subgroupQuadSwapVertical(data[3].i64); - - data[invocation].i64.x = subgroupQuadSwapDiagonal(data[0].i64.x); - data[invocation].i64.xy = subgroupQuadSwapDiagonal(data[1].i64.xy); - data[invocation].i64.xyz = subgroupQuadSwapDiagonal(data[2].i64.xyz); - data[invocation].i64 = subgroupQuadSwapDiagonal(data[3].i64); - - data[invocation].u64.x = subgroupQuadBroadcast(data[0].u64.x, 1); - data[invocation].u64.xy = subgroupQuadBroadcast(data[1].u64.xy, 1); - data[invocation].u64.xyz = subgroupQuadBroadcast(data[2].u64.xyz, 1); - data[invocation].u64 = subgroupQuadBroadcast(data[3].u64, 1); - - data[invocation].u64.x = subgroupQuadSwapHorizontal(data[0].u64.x); - data[invocation].u64.xy = subgroupQuadSwapHorizontal(data[1].u64.xy); - data[invocation].u64.xyz = subgroupQuadSwapHorizontal(data[2].u64.xyz); - data[invocation].u64 = subgroupQuadSwapHorizontal(data[3].u64); - - data[invocation].u64.x = subgroupQuadSwapVertical(data[0].u64.x); - data[invocation].u64.xy = subgroupQuadSwapVertical(data[1].u64.xy); - data[invocation].u64.xyz = subgroupQuadSwapVertical(data[2].u64.xyz); - data[invocation].u64 = subgroupQuadSwapVertical(data[3].u64); - - data[invocation].u64.x = subgroupQuadSwapDiagonal(data[0].u64.x); - data[invocation].u64.xy = subgroupQuadSwapDiagonal(data[1].u64.xy); - data[invocation].u64.xyz = subgroupQuadSwapDiagonal(data[2].u64.xyz); - data[invocation].u64 = subgroupQuadSwapDiagonal(data[3].u64); - - data[invocation].f16.x = subgroupQuadBroadcast(data[0].f16.x, 1); - data[invocation].f16.xy = subgroupQuadBroadcast(data[1].f16.xy, 1); - data[invocation].f16.xyz = subgroupQuadBroadcast(data[2].f16.xyz, 1); - data[invocation].f16 = subgroupQuadBroadcast(data[3].f16, 1); - - data[invocation].f16.x = subgroupQuadSwapHorizontal(data[0].f16.x); - data[invocation].f16.xy = subgroupQuadSwapHorizontal(data[1].f16.xy); - data[invocation].f16.xyz = subgroupQuadSwapHorizontal(data[2].f16.xyz); - data[invocation].f16 = subgroupQuadSwapHorizontal(data[3].f16); - - data[invocation].f16.x = subgroupQuadSwapVertical(data[0].f16.x); - data[invocation].f16.xy = subgroupQuadSwapVertical(data[1].f16.xy); - data[invocation].f16.xyz = subgroupQuadSwapVertical(data[2].f16.xyz); - data[invocation].f16 = subgroupQuadSwapVertical(data[3].f16); - - data[invocation].f16.x = subgroupQuadSwapDiagonal(data[0].f16.x); - data[invocation].f16.xy = subgroupQuadSwapDiagonal(data[1].f16.xy); - data[invocation].f16.xyz = subgroupQuadSwapDiagonal(data[2].f16.xyz); - data[invocation].f16 = subgroupQuadSwapDiagonal(data[3].f16); -} diff --git a/deps/glslang/Test/spv.subgroupExtendedTypesShuffle.comp b/deps/glslang/Test/spv.subgroupExtendedTypesShuffle.comp deleted file mode 100644 index de733e6c..00000000 --- a/deps/glslang/Test/spv.subgroupExtendedTypesShuffle.comp +++ /dev/null @@ -1,95 +0,0 @@ -#version 450 - -#extension GL_KHR_shader_subgroup_shuffle: enable -#extension GL_EXT_shader_subgroup_extended_types_int8: enable -#extension GL_EXT_shader_subgroup_extended_types_int16: enable -#extension GL_EXT_shader_subgroup_extended_types_int64: enable -#extension GL_EXT_shader_subgroup_extended_types_float16: enable - -layout (local_size_x = 8) in; - -layout(binding = 0) buffer Buffers -{ - i8vec4 i8; - u8vec4 u8; - i16vec4 i16; - u16vec4 u16; - i64vec4 i64; - u64vec4 u64; - f16vec4 f16; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; - - data[invocation].i8.x = subgroupShuffle(data[0].i8.x, invocation); - data[invocation].i8.xy = subgroupShuffle(data[1].i8.xy, invocation); - data[invocation].i8.xyz = subgroupShuffle(data[2].i8.xyz, invocation); - data[invocation].i8 = subgroupShuffle(data[3].i8, invocation); - - data[invocation].i8.x = subgroupShuffleXor(data[0].i8.x, invocation); - data[invocation].i8.xy = subgroupShuffleXor(data[1].i8.xy, invocation); - data[invocation].i8.xyz = subgroupShuffleXor(data[2].i8.xyz, invocation); - data[invocation].i8 = subgroupShuffleXor(data[3].i8, invocation); - - data[invocation].u8.x = subgroupShuffle(data[0].u8.x, invocation); - data[invocation].u8.xy = subgroupShuffle(data[1].u8.xy, invocation); - data[invocation].u8.xyz = subgroupShuffle(data[2].u8.xyz, invocation); - data[invocation].u8 = subgroupShuffle(data[3].u8, invocation); - - data[invocation].u8.x = subgroupShuffleXor(data[0].u8.x, invocation); - data[invocation].u8.xy = subgroupShuffleXor(data[1].u8.xy, invocation); - data[invocation].u8.xyz = subgroupShuffleXor(data[2].u8.xyz, invocation); - data[invocation].u8 = subgroupShuffleXor(data[3].u8, invocation); - - data[invocation].i16.x = subgroupShuffle(data[0].i16.x, invocation); - data[invocation].i16.xy = subgroupShuffle(data[1].i16.xy, invocation); - data[invocation].i16.xyz = subgroupShuffle(data[2].i16.xyz, invocation); - data[invocation].i16 = subgroupShuffle(data[3].i16, invocation); - - data[invocation].i16.x = subgroupShuffleXor(data[0].i16.x, invocation); - data[invocation].i16.xy = subgroupShuffleXor(data[1].i16.xy, invocation); - data[invocation].i16.xyz = subgroupShuffleXor(data[2].i16.xyz, invocation); - data[invocation].i16 = subgroupShuffleXor(data[3].i16, invocation); - - data[invocation].u16.x = subgroupShuffle(data[0].u16.x, invocation); - data[invocation].u16.xy = subgroupShuffle(data[1].u16.xy, invocation); - data[invocation].u16.xyz = subgroupShuffle(data[2].u16.xyz, invocation); - data[invocation].u16 = subgroupShuffle(data[3].u16, invocation); - - data[invocation].u16.x = subgroupShuffleXor(data[0].u16.x, invocation); - data[invocation].u16.xy = subgroupShuffleXor(data[1].u16.xy, invocation); - data[invocation].u16.xyz = subgroupShuffleXor(data[2].u16.xyz, invocation); - data[invocation].u16 = subgroupShuffleXor(data[3].u16, invocation); - - data[invocation].i64.x = subgroupShuffle(data[0].i64.x, invocation); - data[invocation].i64.xy = subgroupShuffle(data[1].i64.xy, invocation); - data[invocation].i64.xyz = subgroupShuffle(data[2].i64.xyz, invocation); - data[invocation].i64 = subgroupShuffle(data[3].i64, invocation); - - data[invocation].i64.x = subgroupShuffleXor(data[0].i64.x, invocation); - data[invocation].i64.xy = subgroupShuffleXor(data[1].i64.xy, invocation); - data[invocation].i64.xyz = subgroupShuffleXor(data[2].i64.xyz, invocation); - data[invocation].i64 = subgroupShuffleXor(data[3].i64, invocation); - - data[invocation].u64.x = subgroupShuffle(data[0].u64.x, invocation); - data[invocation].u64.xy = subgroupShuffle(data[1].u64.xy, invocation); - data[invocation].u64.xyz = subgroupShuffle(data[2].u64.xyz, invocation); - data[invocation].u64 = subgroupShuffle(data[3].u64, invocation); - - data[invocation].u64.x = subgroupShuffleXor(data[0].u64.x, invocation); - data[invocation].u64.xy = subgroupShuffleXor(data[1].u64.xy, invocation); - data[invocation].u64.xyz = subgroupShuffleXor(data[2].u64.xyz, invocation); - data[invocation].u64 = subgroupShuffleXor(data[3].u64, invocation); - - data[invocation].f16.x = subgroupShuffle(data[0].f16.x, invocation); - data[invocation].f16.xy = subgroupShuffle(data[1].f16.xy, invocation); - data[invocation].f16.xyz = subgroupShuffle(data[2].f16.xyz, invocation); - data[invocation].f16 = subgroupShuffle(data[3].f16, invocation); - - data[invocation].f16.x = subgroupShuffleXor(data[0].f16.x, invocation); - data[invocation].f16.xy = subgroupShuffleXor(data[1].f16.xy, invocation); - data[invocation].f16.xyz = subgroupShuffleXor(data[2].f16.xyz, invocation); - data[invocation].f16 = subgroupShuffleXor(data[3].f16, invocation); -} diff --git a/deps/glslang/Test/spv.subgroupExtendedTypesShuffleNeg.comp b/deps/glslang/Test/spv.subgroupExtendedTypesShuffleNeg.comp deleted file mode 100644 index af73b54c..00000000 --- a/deps/glslang/Test/spv.subgroupExtendedTypesShuffleNeg.comp +++ /dev/null @@ -1,95 +0,0 @@ -#version 450 - -#extension GL_KHR_shader_subgroup_shuffle: enable -#extension GL_EXT_shader_explicit_arithmetic_types_int8: enable -#extension GL_EXT_shader_explicit_arithmetic_types_int16: enable -#extension GL_EXT_shader_explicit_arithmetic_types_int64: enable -#extension GL_EXT_shader_explicit_arithmetic_types_float16: enable - -layout (local_size_x = 8) in; - -layout(binding = 0) buffer Buffers -{ - i8vec4 i8; - u8vec4 u8; - i16vec4 i16; - u16vec4 u16; - i64vec4 i64; - u64vec4 u64; - f16vec4 f16; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; - - data[invocation].i8.x = subgroupShuffle(data[0].i8.x, invocation); - data[invocation].i8.xy = subgroupShuffle(data[1].i8.xy, invocation); - data[invocation].i8.xyz = subgroupShuffle(data[2].i8.xyz, invocation); - data[invocation].i8 = subgroupShuffle(data[3].i8, invocation); - - data[invocation].i8.x = subgroupShuffleXor(data[0].i8.x, invocation); - data[invocation].i8.xy = subgroupShuffleXor(data[1].i8.xy, invocation); - data[invocation].i8.xyz = subgroupShuffleXor(data[2].i8.xyz, invocation); - data[invocation].i8 = subgroupShuffleXor(data[3].i8, invocation); - - data[invocation].u8.x = subgroupShuffle(data[0].u8.x, invocation); - data[invocation].u8.xy = subgroupShuffle(data[1].u8.xy, invocation); - data[invocation].u8.xyz = subgroupShuffle(data[2].u8.xyz, invocation); - data[invocation].u8 = subgroupShuffle(data[3].u8, invocation); - - data[invocation].u8.x = subgroupShuffleXor(data[0].u8.x, invocation); - data[invocation].u8.xy = subgroupShuffleXor(data[1].u8.xy, invocation); - data[invocation].u8.xyz = subgroupShuffleXor(data[2].u8.xyz, invocation); - data[invocation].u8 = subgroupShuffleXor(data[3].u8, invocation); - - data[invocation].i16.x = subgroupShuffle(data[0].i16.x, invocation); - data[invocation].i16.xy = subgroupShuffle(data[1].i16.xy, invocation); - data[invocation].i16.xyz = subgroupShuffle(data[2].i16.xyz, invocation); - data[invocation].i16 = subgroupShuffle(data[3].i16, invocation); - - data[invocation].i16.x = subgroupShuffleXor(data[0].i16.x, invocation); - data[invocation].i16.xy = subgroupShuffleXor(data[1].i16.xy, invocation); - data[invocation].i16.xyz = subgroupShuffleXor(data[2].i16.xyz, invocation); - data[invocation].i16 = subgroupShuffleXor(data[3].i16, invocation); - - data[invocation].u16.x = subgroupShuffle(data[0].u16.x, invocation); - data[invocation].u16.xy = subgroupShuffle(data[1].u16.xy, invocation); - data[invocation].u16.xyz = subgroupShuffle(data[2].u16.xyz, invocation); - data[invocation].u16 = subgroupShuffle(data[3].u16, invocation); - - data[invocation].u16.x = subgroupShuffleXor(data[0].u16.x, invocation); - data[invocation].u16.xy = subgroupShuffleXor(data[1].u16.xy, invocation); - data[invocation].u16.xyz = subgroupShuffleXor(data[2].u16.xyz, invocation); - data[invocation].u16 = subgroupShuffleXor(data[3].u16, invocation); - - data[invocation].i64.x = subgroupShuffle(data[0].i64.x, invocation); - data[invocation].i64.xy = subgroupShuffle(data[1].i64.xy, invocation); - data[invocation].i64.xyz = subgroupShuffle(data[2].i64.xyz, invocation); - data[invocation].i64 = subgroupShuffle(data[3].i64, invocation); - - data[invocation].i64.x = subgroupShuffleXor(data[0].i64.x, invocation); - data[invocation].i64.xy = subgroupShuffleXor(data[1].i64.xy, invocation); - data[invocation].i64.xyz = subgroupShuffleXor(data[2].i64.xyz, invocation); - data[invocation].i64 = subgroupShuffleXor(data[3].i64, invocation); - - data[invocation].u64.x = subgroupShuffle(data[0].u64.x, invocation); - data[invocation].u64.xy = subgroupShuffle(data[1].u64.xy, invocation); - data[invocation].u64.xyz = subgroupShuffle(data[2].u64.xyz, invocation); - data[invocation].u64 = subgroupShuffle(data[3].u64, invocation); - - data[invocation].u64.x = subgroupShuffleXor(data[0].u64.x, invocation); - data[invocation].u64.xy = subgroupShuffleXor(data[1].u64.xy, invocation); - data[invocation].u64.xyz = subgroupShuffleXor(data[2].u64.xyz, invocation); - data[invocation].u64 = subgroupShuffleXor(data[3].u64, invocation); - - data[invocation].f16.x = subgroupShuffle(data[0].f16.x, invocation); - data[invocation].f16.xy = subgroupShuffle(data[1].f16.xy, invocation); - data[invocation].f16.xyz = subgroupShuffle(data[2].f16.xyz, invocation); - data[invocation].f16 = subgroupShuffle(data[3].f16, invocation); - - data[invocation].f16.x = subgroupShuffleXor(data[0].f16.x, invocation); - data[invocation].f16.xy = subgroupShuffleXor(data[1].f16.xy, invocation); - data[invocation].f16.xyz = subgroupShuffleXor(data[2].f16.xyz, invocation); - data[invocation].f16 = subgroupShuffleXor(data[3].f16, invocation); -} diff --git a/deps/glslang/Test/spv.subgroupExtendedTypesShuffleRelative.comp b/deps/glslang/Test/spv.subgroupExtendedTypesShuffleRelative.comp deleted file mode 100644 index 73f5970c..00000000 --- a/deps/glslang/Test/spv.subgroupExtendedTypesShuffleRelative.comp +++ /dev/null @@ -1,95 +0,0 @@ -#version 450 - -#extension GL_KHR_shader_subgroup_shuffle_relative: enable -#extension GL_EXT_shader_subgroup_extended_types_int8: enable -#extension GL_EXT_shader_subgroup_extended_types_int16: enable -#extension GL_EXT_shader_subgroup_extended_types_int64: enable -#extension GL_EXT_shader_subgroup_extended_types_float16: enable - -layout (local_size_x = 8) in; - -layout(binding = 0) buffer Buffers -{ - i8vec4 i8; - u8vec4 u8; - i16vec4 i16; - u16vec4 u16; - i64vec4 i64; - u64vec4 u64; - f16vec4 f16; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; - - data[invocation].i8.x = subgroupShuffleUp(data[0].i8.x, invocation); - data[invocation].i8.xy = subgroupShuffleUp(data[1].i8.xy, invocation); - data[invocation].i8.xyz = subgroupShuffleUp(data[2].i8.xyz, invocation); - data[invocation].i8 = subgroupShuffleUp(data[3].i8, invocation); - - data[invocation].i8.x = subgroupShuffleDown(data[0].i8.x, invocation); - data[invocation].i8.xy = subgroupShuffleDown(data[1].i8.xy, invocation); - data[invocation].i8.xyz = subgroupShuffleDown(data[2].i8.xyz, invocation); - data[invocation].i8 = subgroupShuffleDown(data[3].i8, invocation); - - data[invocation].u8.x = subgroupShuffleUp(data[0].u8.x, invocation); - data[invocation].u8.xy = subgroupShuffleUp(data[1].u8.xy, invocation); - data[invocation].u8.xyz = subgroupShuffleUp(data[2].u8.xyz, invocation); - data[invocation].u8 = subgroupShuffleUp(data[3].u8, invocation); - - data[invocation].u8.x = subgroupShuffleDown(data[0].u8.x, invocation); - data[invocation].u8.xy = subgroupShuffleDown(data[1].u8.xy, invocation); - data[invocation].u8.xyz = subgroupShuffleDown(data[2].u8.xyz, invocation); - data[invocation].u8 = subgroupShuffleDown(data[3].u8, invocation); - - data[invocation].i16.x = subgroupShuffleUp(data[0].i16.x, invocation); - data[invocation].i16.xy = subgroupShuffleUp(data[1].i16.xy, invocation); - data[invocation].i16.xyz = subgroupShuffleUp(data[2].i16.xyz, invocation); - data[invocation].i16 = subgroupShuffleUp(data[3].i16, invocation); - - data[invocation].i16.x = subgroupShuffleDown(data[0].i16.x, invocation); - data[invocation].i16.xy = subgroupShuffleDown(data[1].i16.xy, invocation); - data[invocation].i16.xyz = subgroupShuffleDown(data[2].i16.xyz, invocation); - data[invocation].i16 = subgroupShuffleDown(data[3].i16, invocation); - - data[invocation].u16.x = subgroupShuffleUp(data[0].u16.x, invocation); - data[invocation].u16.xy = subgroupShuffleUp(data[1].u16.xy, invocation); - data[invocation].u16.xyz = subgroupShuffleUp(data[2].u16.xyz, invocation); - data[invocation].u16 = subgroupShuffleUp(data[3].u16, invocation); - - data[invocation].u16.x = subgroupShuffleDown(data[0].u16.x, invocation); - data[invocation].u16.xy = subgroupShuffleDown(data[1].u16.xy, invocation); - data[invocation].u16.xyz = subgroupShuffleDown(data[2].u16.xyz, invocation); - data[invocation].u16 = subgroupShuffleDown(data[3].u16, invocation); - - data[invocation].i64.x = subgroupShuffleUp(data[0].i64.x, invocation); - data[invocation].i64.xy = subgroupShuffleUp(data[1].i64.xy, invocation); - data[invocation].i64.xyz = subgroupShuffleUp(data[2].i64.xyz, invocation); - data[invocation].i64 = subgroupShuffleUp(data[3].i64, invocation); - - data[invocation].i64.x = subgroupShuffleDown(data[0].i64.x, invocation); - data[invocation].i64.xy = subgroupShuffleDown(data[1].i64.xy, invocation); - data[invocation].i64.xyz = subgroupShuffleDown(data[2].i64.xyz, invocation); - data[invocation].i64 = subgroupShuffleDown(data[3].i64, invocation); - - data[invocation].u64.x = subgroupShuffleUp(data[0].u64.x, invocation); - data[invocation].u64.xy = subgroupShuffleUp(data[1].u64.xy, invocation); - data[invocation].u64.xyz = subgroupShuffleUp(data[2].u64.xyz, invocation); - data[invocation].u64 = subgroupShuffleUp(data[3].u64, invocation); - - data[invocation].u64.x = subgroupShuffleDown(data[0].u64.x, invocation); - data[invocation].u64.xy = subgroupShuffleDown(data[1].u64.xy, invocation); - data[invocation].u64.xyz = subgroupShuffleDown(data[2].u64.xyz, invocation); - data[invocation].u64 = subgroupShuffleDown(data[3].u64, invocation); - - data[invocation].f16.x = subgroupShuffleUp(data[0].f16.x, invocation); - data[invocation].f16.xy = subgroupShuffleUp(data[1].f16.xy, invocation); - data[invocation].f16.xyz = subgroupShuffleUp(data[2].f16.xyz, invocation); - data[invocation].f16 = subgroupShuffleUp(data[3].f16, invocation); - - data[invocation].f16.x = subgroupShuffleDown(data[0].f16.x, invocation); - data[invocation].f16.xy = subgroupShuffleDown(data[1].f16.xy, invocation); - data[invocation].f16.xyz = subgroupShuffleDown(data[2].f16.xyz, invocation); - data[invocation].f16 = subgroupShuffleDown(data[3].f16, invocation); -} diff --git a/deps/glslang/Test/spv.subgroupExtendedTypesShuffleRelativeNeg.comp b/deps/glslang/Test/spv.subgroupExtendedTypesShuffleRelativeNeg.comp deleted file mode 100644 index 9857444a..00000000 --- a/deps/glslang/Test/spv.subgroupExtendedTypesShuffleRelativeNeg.comp +++ /dev/null @@ -1,95 +0,0 @@ -#version 450 - -#extension GL_KHR_shader_subgroup_shuffle_relative: enable -#extension GL_EXT_shader_explicit_arithmetic_types_int8: enable -#extension GL_EXT_shader_explicit_arithmetic_types_int16: enable -#extension GL_EXT_shader_explicit_arithmetic_types_int64: enable -#extension GL_EXT_shader_explicit_arithmetic_types_float16: enable - -layout (local_size_x = 8) in; - -layout(binding = 0) buffer Buffers -{ - i8vec4 i8; - u8vec4 u8; - i16vec4 i16; - u16vec4 u16; - i64vec4 i64; - u64vec4 u64; - f16vec4 f16; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; - - data[invocation].i8.x = subgroupShuffleUp(data[0].i8.x, invocation); - data[invocation].i8.xy = subgroupShuffleUp(data[1].i8.xy, invocation); - data[invocation].i8.xyz = subgroupShuffleUp(data[2].i8.xyz, invocation); - data[invocation].i8 = subgroupShuffleUp(data[3].i8, invocation); - - data[invocation].i8.x = subgroupShuffleDown(data[0].i8.x, invocation); - data[invocation].i8.xy = subgroupShuffleDown(data[1].i8.xy, invocation); - data[invocation].i8.xyz = subgroupShuffleDown(data[2].i8.xyz, invocation); - data[invocation].i8 = subgroupShuffleDown(data[3].i8, invocation); - - data[invocation].u8.x = subgroupShuffleUp(data[0].u8.x, invocation); - data[invocation].u8.xy = subgroupShuffleUp(data[1].u8.xy, invocation); - data[invocation].u8.xyz = subgroupShuffleUp(data[2].u8.xyz, invocation); - data[invocation].u8 = subgroupShuffleUp(data[3].u8, invocation); - - data[invocation].u8.x = subgroupShuffleDown(data[0].u8.x, invocation); - data[invocation].u8.xy = subgroupShuffleDown(data[1].u8.xy, invocation); - data[invocation].u8.xyz = subgroupShuffleDown(data[2].u8.xyz, invocation); - data[invocation].u8 = subgroupShuffleDown(data[3].u8, invocation); - - data[invocation].i16.x = subgroupShuffleUp(data[0].i16.x, invocation); - data[invocation].i16.xy = subgroupShuffleUp(data[1].i16.xy, invocation); - data[invocation].i16.xyz = subgroupShuffleUp(data[2].i16.xyz, invocation); - data[invocation].i16 = subgroupShuffleUp(data[3].i16, invocation); - - data[invocation].i16.x = subgroupShuffleDown(data[0].i16.x, invocation); - data[invocation].i16.xy = subgroupShuffleDown(data[1].i16.xy, invocation); - data[invocation].i16.xyz = subgroupShuffleDown(data[2].i16.xyz, invocation); - data[invocation].i16 = subgroupShuffleDown(data[3].i16, invocation); - - data[invocation].u16.x = subgroupShuffleUp(data[0].u16.x, invocation); - data[invocation].u16.xy = subgroupShuffleUp(data[1].u16.xy, invocation); - data[invocation].u16.xyz = subgroupShuffleUp(data[2].u16.xyz, invocation); - data[invocation].u16 = subgroupShuffleUp(data[3].u16, invocation); - - data[invocation].u16.x = subgroupShuffleDown(data[0].u16.x, invocation); - data[invocation].u16.xy = subgroupShuffleDown(data[1].u16.xy, invocation); - data[invocation].u16.xyz = subgroupShuffleDown(data[2].u16.xyz, invocation); - data[invocation].u16 = subgroupShuffleDown(data[3].u16, invocation); - - data[invocation].i64.x = subgroupShuffleUp(data[0].i64.x, invocation); - data[invocation].i64.xy = subgroupShuffleUp(data[1].i64.xy, invocation); - data[invocation].i64.xyz = subgroupShuffleUp(data[2].i64.xyz, invocation); - data[invocation].i64 = subgroupShuffleUp(data[3].i64, invocation); - - data[invocation].i64.x = subgroupShuffleDown(data[0].i64.x, invocation); - data[invocation].i64.xy = subgroupShuffleDown(data[1].i64.xy, invocation); - data[invocation].i64.xyz = subgroupShuffleDown(data[2].i64.xyz, invocation); - data[invocation].i64 = subgroupShuffleDown(data[3].i64, invocation); - - data[invocation].u64.x = subgroupShuffleUp(data[0].u64.x, invocation); - data[invocation].u64.xy = subgroupShuffleUp(data[1].u64.xy, invocation); - data[invocation].u64.xyz = subgroupShuffleUp(data[2].u64.xyz, invocation); - data[invocation].u64 = subgroupShuffleUp(data[3].u64, invocation); - - data[invocation].u64.x = subgroupShuffleDown(data[0].u64.x, invocation); - data[invocation].u64.xy = subgroupShuffleDown(data[1].u64.xy, invocation); - data[invocation].u64.xyz = subgroupShuffleDown(data[2].u64.xyz, invocation); - data[invocation].u64 = subgroupShuffleDown(data[3].u64, invocation); - - data[invocation].f16.x = subgroupShuffleUp(data[0].f16.x, invocation); - data[invocation].f16.xy = subgroupShuffleUp(data[1].f16.xy, invocation); - data[invocation].f16.xyz = subgroupShuffleUp(data[2].f16.xyz, invocation); - data[invocation].f16 = subgroupShuffleUp(data[3].f16, invocation); - - data[invocation].f16.x = subgroupShuffleDown(data[0].f16.x, invocation); - data[invocation].f16.xy = subgroupShuffleDown(data[1].f16.xy, invocation); - data[invocation].f16.xyz = subgroupShuffleDown(data[2].f16.xyz, invocation); - data[invocation].f16 = subgroupShuffleDown(data[3].f16, invocation); -} diff --git a/deps/glslang/Test/spv.subgroupExtendedTypesVote.comp b/deps/glslang/Test/spv.subgroupExtendedTypesVote.comp deleted file mode 100644 index 960156a6..00000000 --- a/deps/glslang/Test/spv.subgroupExtendedTypesVote.comp +++ /dev/null @@ -1,66 +0,0 @@ -#version 450 - -#extension GL_KHR_shader_subgroup_vote: enable -#extension GL_EXT_shader_subgroup_extended_types_int8: enable -#extension GL_EXT_shader_subgroup_extended_types_int16: enable -#extension GL_EXT_shader_subgroup_extended_types_int64: enable -#extension GL_EXT_shader_subgroup_extended_types_float16: enable - -layout (local_size_x = 8) in; - -layout(binding = 0) buffer Buffers -{ - i8vec4 i8; - u8vec4 u8; - i16vec4 i16; - u16vec4 u16; - i64vec4 i64; - u64vec4 u64; - f16vec4 f16; - int r; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; - - if (subgroupAll(data[invocation].r < 0)) - { - data[invocation].r = int(subgroupAllEqual(data[0].i8.x)); - data[invocation].r = int(subgroupAllEqual(data[1].i8.xy)); - data[invocation].r = int(subgroupAllEqual(data[2].i8.xyz)); - data[invocation].r = int(subgroupAllEqual(data[3].i8)); - - data[invocation].r = int(subgroupAllEqual(data[0].u8.x)); - data[invocation].r = int(subgroupAllEqual(data[1].u8.xy)); - data[invocation].r = int(subgroupAllEqual(data[2].u8.xyz)); - data[invocation].r = int(subgroupAllEqual(data[3].u8)); - - data[invocation].r = int(subgroupAllEqual(data[0].i16.x)); - data[invocation].r = int(subgroupAllEqual(data[1].i16.xy)); - data[invocation].r = int(subgroupAllEqual(data[2].i16.xyz)); - data[invocation].r = int(subgroupAllEqual(data[3].i16)); - - data[invocation].r = int(subgroupAllEqual(data[0].u16.x)); - data[invocation].r = int(subgroupAllEqual(data[1].u16.xy)); - data[invocation].r = int(subgroupAllEqual(data[2].u16.xyz)); - data[invocation].r = int(subgroupAllEqual(data[3].u16)); - } - else if (subgroupAny(data[invocation].r < 0)) - { - data[invocation].r = int(subgroupAllEqual(data[0].i64.x)); - data[invocation].r = int(subgroupAllEqual(data[1].i64.xy)); - data[invocation].r = int(subgroupAllEqual(data[2].i64.xyz)); - data[invocation].r = int(subgroupAllEqual(data[3].i64)); - - data[invocation].r = int(subgroupAllEqual(data[0].u64.x)); - data[invocation].r = int(subgroupAllEqual(data[1].u64.xy)); - data[invocation].r = int(subgroupAllEqual(data[2].u64.xyz)); - data[invocation].r = int(subgroupAllEqual(data[3].u64)); - - data[invocation].r = int(subgroupAllEqual(data[0].f16.x)); - data[invocation].r = int(subgroupAllEqual(data[1].f16.xy)); - data[invocation].r = int(subgroupAllEqual(data[2].f16.xyz)); - data[invocation].r = int(subgroupAllEqual(data[3].f16)); - } -} diff --git a/deps/glslang/Test/spv.subgroupExtendedTypesVoteNeg.comp b/deps/glslang/Test/spv.subgroupExtendedTypesVoteNeg.comp deleted file mode 100644 index be8d1bb1..00000000 --- a/deps/glslang/Test/spv.subgroupExtendedTypesVoteNeg.comp +++ /dev/null @@ -1,66 +0,0 @@ -#version 450 - -#extension GL_KHR_shader_subgroup_vote: enable -#extension GL_EXT_shader_explicit_arithmetic_types_int8: enable -#extension GL_EXT_shader_explicit_arithmetic_types_int16: enable -#extension GL_EXT_shader_explicit_arithmetic_types_int64: enable -#extension GL_EXT_shader_explicit_arithmetic_types_float16: enable - -layout (local_size_x = 8) in; - -layout(binding = 0) buffer Buffers -{ - i8vec4 i8; - u8vec4 u8; - i16vec4 i16; - u16vec4 u16; - i64vec4 i64; - u64vec4 u64; - f16vec4 f16; - int r; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; - - if (subgroupAll(data[invocation].r < 0)) - { - data[invocation].r = int(subgroupAllEqual(data[0].i8.x)); - data[invocation].r = int(subgroupAllEqual(data[1].i8.xy)); - data[invocation].r = int(subgroupAllEqual(data[2].i8.xyz)); - data[invocation].r = int(subgroupAllEqual(data[3].i8)); - - data[invocation].r = int(subgroupAllEqual(data[0].u8.x)); - data[invocation].r = int(subgroupAllEqual(data[1].u8.xy)); - data[invocation].r = int(subgroupAllEqual(data[2].u8.xyz)); - data[invocation].r = int(subgroupAllEqual(data[3].u8)); - - data[invocation].r = int(subgroupAllEqual(data[0].i16.x)); - data[invocation].r = int(subgroupAllEqual(data[1].i16.xy)); - data[invocation].r = int(subgroupAllEqual(data[2].i16.xyz)); - data[invocation].r = int(subgroupAllEqual(data[3].i16)); - - data[invocation].r = int(subgroupAllEqual(data[0].u16.x)); - data[invocation].r = int(subgroupAllEqual(data[1].u16.xy)); - data[invocation].r = int(subgroupAllEqual(data[2].u16.xyz)); - data[invocation].r = int(subgroupAllEqual(data[3].u16)); - } - else if (subgroupAny(data[invocation].r < 0)) - { - data[invocation].r = int(subgroupAllEqual(data[0].i64.x)); - data[invocation].r = int(subgroupAllEqual(data[1].i64.xy)); - data[invocation].r = int(subgroupAllEqual(data[2].i64.xyz)); - data[invocation].r = int(subgroupAllEqual(data[3].i64)); - - data[invocation].r = int(subgroupAllEqual(data[0].u64.x)); - data[invocation].r = int(subgroupAllEqual(data[1].u64.xy)); - data[invocation].r = int(subgroupAllEqual(data[2].u64.xyz)); - data[invocation].r = int(subgroupAllEqual(data[3].u64)); - - data[invocation].r = int(subgroupAllEqual(data[0].f16.x)); - data[invocation].r = int(subgroupAllEqual(data[1].f16.xy)); - data[invocation].r = int(subgroupAllEqual(data[2].f16.xyz)); - data[invocation].r = int(subgroupAllEqual(data[3].f16)); - } -} diff --git a/deps/glslang/Test/spv.subgroupPartitioned.comp b/deps/glslang/Test/spv.subgroupPartitioned.comp deleted file mode 100644 index 604833e0..00000000 --- a/deps/glslang/Test/spv.subgroupPartitioned.comp +++ /dev/null @@ -1,420 +0,0 @@ -#version 450 - -#extension GL_NV_shader_subgroup_partitioned: enable - -layout (local_size_x = 8) in; - -layout(binding = 0) buffer Buffers -{ - vec4 f4; - ivec4 i4; - uvec4 u4; - dvec4 d4; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; - - uvec4 ballot = subgroupPartitionNV(invocation); - - data[invocation].u4 = subgroupPartitionNV(data[0].f4.x); - data[invocation].u4 = subgroupPartitionNV(data[0].f4.xy); - data[invocation].u4 = subgroupPartitionNV(data[0].f4.xyz); - data[invocation].u4 = subgroupPartitionNV(data[0].f4); - - data[invocation].u4 = subgroupPartitionNV(data[0].i4.x); - data[invocation].u4 = subgroupPartitionNV(data[0].i4.xy); - data[invocation].u4 = subgroupPartitionNV(data[0].i4.xyz); - data[invocation].u4 = subgroupPartitionNV(data[0].i4); - - data[invocation].u4 = subgroupPartitionNV(data[0].u4.x); - data[invocation].u4 = subgroupPartitionNV(data[0].u4.xy); - data[invocation].u4 = subgroupPartitionNV(data[0].u4.xyz); - data[invocation].u4 = subgroupPartitionNV(data[0].u4); - - data[invocation].u4 = subgroupPartitionNV(data[0].d4.x); - data[invocation].u4 = subgroupPartitionNV(data[0].d4.xy); - data[invocation].u4 = subgroupPartitionNV(data[0].d4.xyz); - data[invocation].u4 = subgroupPartitionNV(data[0].d4); - - data[invocation].u4 = subgroupPartitionNV(bool(data[0].i4.x)); - data[invocation].u4 = subgroupPartitionNV(bvec2(data[0].i4.xy)); - data[invocation].u4 = subgroupPartitionNV(bvec3(data[0].i4.xyz)); - data[invocation].u4 = subgroupPartitionNV(bvec4(data[0].i4)); - - data[invocation].f4.x = subgroupPartitionedAddNV(data[0].f4.x, ballot); - data[invocation].f4.xy = subgroupPartitionedAddNV(data[1].f4.xy, ballot); - data[invocation].f4.xyz = subgroupPartitionedAddNV(data[2].f4.xyz, ballot); - data[invocation].f4 = subgroupPartitionedAddNV(data[3].f4, ballot); - - data[invocation].i4.x = subgroupPartitionedAddNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedAddNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedAddNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedAddNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedAddNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedAddNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedAddNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedAddNV(data[3].u4, ballot); - - data[invocation].d4.x = subgroupPartitionedAddNV(data[0].d4.x, ballot); - data[invocation].d4.xy = subgroupPartitionedAddNV(data[1].d4.xy, ballot); - data[invocation].d4.xyz = subgroupPartitionedAddNV(data[2].d4.xyz, ballot); - data[invocation].d4 = subgroupPartitionedAddNV(data[3].d4, ballot); - - data[invocation].f4.x = subgroupPartitionedMulNV(data[0].f4.x, ballot); - data[invocation].f4.xy = subgroupPartitionedMulNV(data[1].f4.xy, ballot); - data[invocation].f4.xyz = subgroupPartitionedMulNV(data[2].f4.xyz, ballot); - data[invocation].f4 = subgroupPartitionedMulNV(data[3].f4, ballot); - - data[invocation].i4.x = subgroupPartitionedMulNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedMulNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedMulNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedMulNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedMulNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedMulNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedMulNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedMulNV(data[3].u4, ballot); - - data[invocation].d4.x = subgroupPartitionedMulNV(data[0].d4.x, ballot); - data[invocation].d4.xy = subgroupPartitionedMulNV(data[1].d4.xy, ballot); - data[invocation].d4.xyz = subgroupPartitionedMulNV(data[2].d4.xyz, ballot); - data[invocation].d4 = subgroupPartitionedMulNV(data[3].d4, ballot); - - data[invocation].f4.x = subgroupPartitionedMinNV(data[0].f4.x, ballot); - data[invocation].f4.xy = subgroupPartitionedMinNV(data[1].f4.xy, ballot); - data[invocation].f4.xyz = subgroupPartitionedMinNV(data[2].f4.xyz, ballot); - data[invocation].f4 = subgroupPartitionedMinNV(data[3].f4, ballot); - - data[invocation].i4.x = subgroupPartitionedMinNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedMinNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedMinNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedMinNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedMinNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedMinNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedMinNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedMinNV(data[3].u4, ballot); - - data[invocation].d4.x = subgroupPartitionedMinNV(data[0].d4.x, ballot); - data[invocation].d4.xy = subgroupPartitionedMinNV(data[1].d4.xy, ballot); - data[invocation].d4.xyz = subgroupPartitionedMinNV(data[2].d4.xyz, ballot); - data[invocation].d4 = subgroupPartitionedMinNV(data[3].d4, ballot); - - data[invocation].f4.x = subgroupPartitionedMaxNV(data[0].f4.x, ballot); - data[invocation].f4.xy = subgroupPartitionedMaxNV(data[1].f4.xy, ballot); - data[invocation].f4.xyz = subgroupPartitionedMaxNV(data[2].f4.xyz, ballot); - data[invocation].f4 = subgroupPartitionedMaxNV(data[3].f4, ballot); - - data[invocation].i4.x = subgroupPartitionedMaxNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedMaxNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedMaxNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedMaxNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedMaxNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedMaxNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedMaxNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedMaxNV(data[3].u4, ballot); - - data[invocation].d4.x = subgroupPartitionedMaxNV(data[0].d4.x, ballot); - data[invocation].d4.xy = subgroupPartitionedMaxNV(data[1].d4.xy, ballot); - data[invocation].d4.xyz = subgroupPartitionedMaxNV(data[2].d4.xyz, ballot); - data[invocation].d4 = subgroupPartitionedMaxNV(data[3].d4, ballot); - - data[invocation].i4.x = subgroupPartitionedAndNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedAndNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedAndNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedAndNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedAndNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedAndNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedAndNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedAndNV(data[3].u4, ballot); - - data[invocation].i4.x = int(subgroupPartitionedAndNV(data[0].i4.x < 0, ballot)); - data[invocation].i4.xy = ivec2(subgroupPartitionedAndNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); - data[invocation].i4.xyz = ivec3(subgroupPartitionedAndNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); - data[invocation].i4 = ivec4(subgroupPartitionedAndNV(lessThan(data[1].i4, ivec4(0)), ballot)); - - data[invocation].i4.x = subgroupPartitionedOrNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedOrNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedOrNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedOrNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedOrNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedOrNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedOrNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedOrNV(data[3].u4, ballot); - - data[invocation].i4.x = int(subgroupPartitionedOrNV(data[0].i4.x < 0, ballot)); - data[invocation].i4.xy = ivec2(subgroupPartitionedOrNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); - data[invocation].i4.xyz = ivec3(subgroupPartitionedOrNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); - data[invocation].i4 = ivec4(subgroupPartitionedOrNV(lessThan(data[1].i4, ivec4(0)), ballot)); - - data[invocation].i4.x = subgroupPartitionedXorNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedXorNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedXorNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedXorNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedXorNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedXorNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedXorNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedXorNV(data[3].u4, ballot); - - data[invocation].i4.x = int(subgroupPartitionedXorNV(data[0].i4.x < 0, ballot)); - data[invocation].i4.xy = ivec2(subgroupPartitionedXorNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); - data[invocation].i4.xyz = ivec3(subgroupPartitionedXorNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); - data[invocation].i4 = ivec4(subgroupPartitionedXorNV(lessThan(data[1].i4, ivec4(0)), ballot)); - - data[invocation].f4.x = subgroupPartitionedInclusiveAddNV(data[0].f4.x, ballot); - data[invocation].f4.xy = subgroupPartitionedInclusiveAddNV(data[1].f4.xy, ballot); - data[invocation].f4.xyz = subgroupPartitionedInclusiveAddNV(data[2].f4.xyz, ballot); - data[invocation].f4 = subgroupPartitionedInclusiveAddNV(data[3].f4, ballot); - - data[invocation].i4.x = subgroupPartitionedInclusiveAddNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedInclusiveAddNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedInclusiveAddNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedInclusiveAddNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedInclusiveAddNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedInclusiveAddNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedInclusiveAddNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedInclusiveAddNV(data[3].u4, ballot); - - data[invocation].d4.x = subgroupPartitionedInclusiveAddNV(data[0].d4.x, ballot); - data[invocation].d4.xy = subgroupPartitionedInclusiveAddNV(data[1].d4.xy, ballot); - data[invocation].d4.xyz = subgroupPartitionedInclusiveAddNV(data[2].d4.xyz, ballot); - data[invocation].d4 = subgroupPartitionedInclusiveAddNV(data[3].d4, ballot); - - data[invocation].f4.x = subgroupPartitionedInclusiveMulNV(data[0].f4.x, ballot); - data[invocation].f4.xy = subgroupPartitionedInclusiveMulNV(data[1].f4.xy, ballot); - data[invocation].f4.xyz = subgroupPartitionedInclusiveMulNV(data[2].f4.xyz, ballot); - data[invocation].f4 = subgroupPartitionedInclusiveMulNV(data[3].f4, ballot); - - data[invocation].i4.x = subgroupPartitionedInclusiveMulNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedInclusiveMulNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedInclusiveMulNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedInclusiveMulNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedInclusiveMulNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedInclusiveMulNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedInclusiveMulNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedInclusiveMulNV(data[3].u4, ballot); - - data[invocation].d4.x = subgroupPartitionedInclusiveMulNV(data[0].d4.x, ballot); - data[invocation].d4.xy = subgroupPartitionedInclusiveMulNV(data[1].d4.xy, ballot); - data[invocation].d4.xyz = subgroupPartitionedInclusiveMulNV(data[2].d4.xyz, ballot); - data[invocation].d4 = subgroupPartitionedInclusiveMulNV(data[3].d4, ballot); - - data[invocation].f4.x = subgroupPartitionedInclusiveMinNV(data[0].f4.x, ballot); - data[invocation].f4.xy = subgroupPartitionedInclusiveMinNV(data[1].f4.xy, ballot); - data[invocation].f4.xyz = subgroupPartitionedInclusiveMinNV(data[2].f4.xyz, ballot); - data[invocation].f4 = subgroupPartitionedInclusiveMinNV(data[3].f4, ballot); - - data[invocation].i4.x = subgroupPartitionedInclusiveMinNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedInclusiveMinNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedInclusiveMinNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedInclusiveMinNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedInclusiveMinNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedInclusiveMinNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedInclusiveMinNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedInclusiveMinNV(data[3].u4, ballot); - - data[invocation].d4.x = subgroupPartitionedInclusiveMinNV(data[0].d4.x, ballot); - data[invocation].d4.xy = subgroupPartitionedInclusiveMinNV(data[1].d4.xy, ballot); - data[invocation].d4.xyz = subgroupPartitionedInclusiveMinNV(data[2].d4.xyz, ballot); - data[invocation].d4 = subgroupPartitionedInclusiveMinNV(data[3].d4, ballot); - - data[invocation].f4.x = subgroupPartitionedInclusiveMaxNV(data[0].f4.x, ballot); - data[invocation].f4.xy = subgroupPartitionedInclusiveMaxNV(data[1].f4.xy, ballot); - data[invocation].f4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].f4.xyz, ballot); - data[invocation].f4 = subgroupPartitionedInclusiveMaxNV(data[3].f4, ballot); - - data[invocation].i4.x = subgroupPartitionedInclusiveMaxNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedInclusiveMaxNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedInclusiveMaxNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedInclusiveMaxNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedInclusiveMaxNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedInclusiveMaxNV(data[3].u4, ballot); - - data[invocation].d4.x = subgroupPartitionedInclusiveMaxNV(data[0].d4.x, ballot); - data[invocation].d4.xy = subgroupPartitionedInclusiveMaxNV(data[1].d4.xy, ballot); - data[invocation].d4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].d4.xyz, ballot); - data[invocation].d4 = subgroupPartitionedInclusiveMaxNV(data[3].d4, ballot); - - data[invocation].i4.x = subgroupPartitionedInclusiveAndNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedInclusiveAndNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedInclusiveAndNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedInclusiveAndNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedInclusiveAndNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedInclusiveAndNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedInclusiveAndNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedInclusiveAndNV(data[3].u4, ballot); - - data[invocation].i4.x = int(subgroupPartitionedInclusiveAndNV(data[0].i4.x < 0, ballot)); - data[invocation].i4.xy = ivec2(subgroupPartitionedInclusiveAndNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); - data[invocation].i4.xyz = ivec3(subgroupPartitionedInclusiveAndNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); - data[invocation].i4 = ivec4(subgroupPartitionedInclusiveAndNV(lessThan(data[1].i4, ivec4(0)), ballot)); - - data[invocation].i4.x = subgroupPartitionedInclusiveOrNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedInclusiveOrNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedInclusiveOrNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedInclusiveOrNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedInclusiveOrNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedInclusiveOrNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedInclusiveOrNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedInclusiveOrNV(data[3].u4, ballot); - - data[invocation].i4.x = int(subgroupPartitionedInclusiveOrNV(data[0].i4.x < 0, ballot)); - data[invocation].i4.xy = ivec2(subgroupPartitionedInclusiveOrNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); - data[invocation].i4.xyz = ivec3(subgroupPartitionedInclusiveOrNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); - data[invocation].i4 = ivec4(subgroupPartitionedInclusiveOrNV(lessThan(data[1].i4, ivec4(0)), ballot)); - - data[invocation].i4.x = subgroupPartitionedInclusiveXorNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedInclusiveXorNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedInclusiveXorNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedInclusiveXorNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedInclusiveXorNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedInclusiveXorNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedInclusiveXorNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedInclusiveXorNV(data[3].u4, ballot); - - data[invocation].i4.x = int(subgroupPartitionedInclusiveXorNV(data[0].i4.x < 0, ballot)); - data[invocation].i4.xy = ivec2(subgroupPartitionedInclusiveXorNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); - data[invocation].i4.xyz = ivec3(subgroupPartitionedInclusiveXorNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); - data[invocation].i4 = ivec4(subgroupPartitionedInclusiveXorNV(lessThan(data[1].i4, ivec4(0)), ballot)); - - data[invocation].f4.x = subgroupPartitionedExclusiveAddNV(data[0].f4.x, ballot); - data[invocation].f4.xy = subgroupPartitionedExclusiveAddNV(data[1].f4.xy, ballot); - data[invocation].f4.xyz = subgroupPartitionedExclusiveAddNV(data[2].f4.xyz, ballot); - data[invocation].f4 = subgroupPartitionedExclusiveAddNV(data[3].f4, ballot); - - data[invocation].i4.x = subgroupPartitionedExclusiveAddNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedExclusiveAddNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedExclusiveAddNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedExclusiveAddNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedExclusiveAddNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedExclusiveAddNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedExclusiveAddNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedExclusiveAddNV(data[3].u4, ballot); - - data[invocation].d4.x = subgroupPartitionedExclusiveAddNV(data[0].d4.x, ballot); - data[invocation].d4.xy = subgroupPartitionedExclusiveAddNV(data[1].d4.xy, ballot); - data[invocation].d4.xyz = subgroupPartitionedExclusiveAddNV(data[2].d4.xyz, ballot); - data[invocation].d4 = subgroupPartitionedExclusiveAddNV(data[3].d4, ballot); - - data[invocation].f4.x = subgroupPartitionedExclusiveMulNV(data[0].f4.x, ballot); - data[invocation].f4.xy = subgroupPartitionedExclusiveMulNV(data[1].f4.xy, ballot); - data[invocation].f4.xyz = subgroupPartitionedExclusiveMulNV(data[2].f4.xyz, ballot); - data[invocation].f4 = subgroupPartitionedExclusiveMulNV(data[3].f4, ballot); - - data[invocation].i4.x = subgroupPartitionedExclusiveMulNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedExclusiveMulNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedExclusiveMulNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedExclusiveMulNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedExclusiveMulNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedExclusiveMulNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedExclusiveMulNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedExclusiveMulNV(data[3].u4, ballot); - - data[invocation].d4.x = subgroupPartitionedExclusiveMulNV(data[0].d4.x, ballot); - data[invocation].d4.xy = subgroupPartitionedExclusiveMulNV(data[1].d4.xy, ballot); - data[invocation].d4.xyz = subgroupPartitionedExclusiveMulNV(data[2].d4.xyz, ballot); - data[invocation].d4 = subgroupPartitionedExclusiveMulNV(data[3].d4, ballot); - - data[invocation].f4.x = subgroupPartitionedExclusiveMinNV(data[0].f4.x, ballot); - data[invocation].f4.xy = subgroupPartitionedExclusiveMinNV(data[1].f4.xy, ballot); - data[invocation].f4.xyz = subgroupPartitionedExclusiveMinNV(data[2].f4.xyz, ballot); - data[invocation].f4 = subgroupPartitionedExclusiveMinNV(data[3].f4, ballot); - - data[invocation].i4.x = subgroupPartitionedExclusiveMinNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedExclusiveMinNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedExclusiveMinNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedExclusiveMinNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedExclusiveMinNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedExclusiveMinNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedExclusiveMinNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedExclusiveMinNV(data[3].u4, ballot); - - data[invocation].d4.x = subgroupPartitionedExclusiveMinNV(data[0].d4.x, ballot); - data[invocation].d4.xy = subgroupPartitionedExclusiveMinNV(data[1].d4.xy, ballot); - data[invocation].d4.xyz = subgroupPartitionedExclusiveMinNV(data[2].d4.xyz, ballot); - data[invocation].d4 = subgroupPartitionedExclusiveMinNV(data[3].d4, ballot); - - data[invocation].f4.x = subgroupPartitionedExclusiveMaxNV(data[0].f4.x, ballot); - data[invocation].f4.xy = subgroupPartitionedExclusiveMaxNV(data[1].f4.xy, ballot); - data[invocation].f4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].f4.xyz, ballot); - data[invocation].f4 = subgroupPartitionedExclusiveMaxNV(data[3].f4, ballot); - - data[invocation].i4.x = subgroupPartitionedExclusiveMaxNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedExclusiveMaxNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedExclusiveMaxNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedExclusiveMaxNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedExclusiveMaxNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedExclusiveMaxNV(data[3].u4, ballot); - - data[invocation].d4.x = subgroupPartitionedExclusiveMaxNV(data[0].d4.x, ballot); - data[invocation].d4.xy = subgroupPartitionedExclusiveMaxNV(data[1].d4.xy, ballot); - data[invocation].d4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].d4.xyz, ballot); - data[invocation].d4 = subgroupPartitionedExclusiveMaxNV(data[3].d4, ballot); - - data[invocation].i4.x = subgroupPartitionedExclusiveAndNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedExclusiveAndNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedExclusiveAndNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedExclusiveAndNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedExclusiveAndNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedExclusiveAndNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedExclusiveAndNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedExclusiveAndNV(data[3].u4, ballot); - - data[invocation].i4.x = int(subgroupPartitionedExclusiveAndNV(data[0].i4.x < 0, ballot)); - data[invocation].i4.xy = ivec2(subgroupPartitionedExclusiveAndNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); - data[invocation].i4.xyz = ivec3(subgroupPartitionedExclusiveAndNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); - data[invocation].i4 = ivec4(subgroupPartitionedExclusiveAndNV(lessThan(data[1].i4, ivec4(0)), ballot)); - - data[invocation].i4.x = subgroupPartitionedExclusiveOrNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedExclusiveOrNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedExclusiveOrNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedExclusiveOrNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedExclusiveOrNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedExclusiveOrNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedExclusiveOrNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedExclusiveOrNV(data[3].u4, ballot); - - data[invocation].i4.x = int(subgroupPartitionedExclusiveOrNV(data[0].i4.x < 0, ballot)); - data[invocation].i4.xy = ivec2(subgroupPartitionedExclusiveOrNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); - data[invocation].i4.xyz = ivec3(subgroupPartitionedExclusiveOrNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); - data[invocation].i4 = ivec4(subgroupPartitionedExclusiveOrNV(lessThan(data[1].i4, ivec4(0)), ballot)); - - data[invocation].i4.x = subgroupPartitionedExclusiveXorNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedExclusiveXorNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedExclusiveXorNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedExclusiveXorNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedExclusiveXorNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedExclusiveXorNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedExclusiveXorNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedExclusiveXorNV(data[3].u4, ballot); - - data[invocation].i4.x = int(subgroupPartitionedExclusiveXorNV(data[0].i4.x < 0, ballot)); - data[invocation].i4.xy = ivec2(subgroupPartitionedExclusiveXorNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); - data[invocation].i4.xyz = ivec3(subgroupPartitionedExclusiveXorNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); - data[invocation].i4 = ivec4(subgroupPartitionedExclusiveXorNV(lessThan(data[1].i4, ivec4(0)), ballot)); -} diff --git a/deps/glslang/Test/spv.subgroupQuad.comp b/deps/glslang/Test/spv.subgroupQuad.comp deleted file mode 100644 index 223a7cda..00000000 --- a/deps/glslang/Test/spv.subgroupQuad.comp +++ /dev/null @@ -1,118 +0,0 @@ -#version 450 - -#extension GL_KHR_shader_subgroup_quad: enable - -layout (local_size_x = 8) in; - -layout(binding = 0) buffer Buffers -{ - vec4 f4; - ivec4 i4; - uvec4 u4; - dvec4 d4; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; - - data[invocation].f4.x = subgroupQuadBroadcast(data[0].f4.x, 1); - data[invocation].f4.xy = subgroupQuadBroadcast(data[1].f4.xy, 1); - data[invocation].f4.xyz = subgroupQuadBroadcast(data[2].f4.xyz, 1); - data[invocation].f4 = subgroupQuadBroadcast(data[3].f4, 1); - - data[invocation].i4.x = subgroupQuadBroadcast(data[0].i4.x, 1); - data[invocation].i4.xy = subgroupQuadBroadcast(data[1].i4.xy, 1); - data[invocation].i4.xyz = subgroupQuadBroadcast(data[2].i4.xyz, 1); - data[invocation].i4 = subgroupQuadBroadcast(data[3].i4, 1); - - data[invocation].u4.x = subgroupQuadBroadcast(data[0].u4.x, 1); - data[invocation].u4.xy = subgroupQuadBroadcast(data[1].u4.xy, 1); - data[invocation].u4.xyz = subgroupQuadBroadcast(data[2].u4.xyz, 1); - data[invocation].u4 = subgroupQuadBroadcast(data[3].u4, 1); - - data[invocation].d4.x = subgroupQuadBroadcast(data[0].d4.x, 1); - data[invocation].d4.xy = subgroupQuadBroadcast(data[1].d4.xy, 1); - data[invocation].d4.xyz = subgroupQuadBroadcast(data[2].d4.xyz, 1); - data[invocation].d4 = subgroupQuadBroadcast(data[3].d4, 1); - - data[invocation].i4.x = int(subgroupQuadBroadcast(data[0].i4.x < 0, 1)); - data[invocation].i4.xy = ivec2(subgroupQuadBroadcast(lessThan(data[1].i4.xy, ivec2(0)), 1)); - data[invocation].i4.xyz = ivec3(subgroupQuadBroadcast(lessThan(data[1].i4.xyz, ivec3(0)), 1)); - data[invocation].i4 = ivec4(subgroupQuadBroadcast(lessThan(data[1].i4, ivec4(0)), 1)); - - data[invocation].f4.x = subgroupQuadSwapHorizontal(data[0].f4.x); - data[invocation].f4.xy = subgroupQuadSwapHorizontal(data[1].f4.xy); - data[invocation].f4.xyz = subgroupQuadSwapHorizontal(data[2].f4.xyz); - data[invocation].f4 = subgroupQuadSwapHorizontal(data[3].f4); - - data[invocation].i4.x = subgroupQuadSwapHorizontal(data[0].i4.x); - data[invocation].i4.xy = subgroupQuadSwapHorizontal(data[1].i4.xy); - data[invocation].i4.xyz = subgroupQuadSwapHorizontal(data[2].i4.xyz); - data[invocation].i4 = subgroupQuadSwapHorizontal(data[3].i4); - - data[invocation].u4.x = subgroupQuadSwapHorizontal(data[0].u4.x); - data[invocation].u4.xy = subgroupQuadSwapHorizontal(data[1].u4.xy); - data[invocation].u4.xyz = subgroupQuadSwapHorizontal(data[2].u4.xyz); - data[invocation].u4 = subgroupQuadSwapHorizontal(data[3].u4); - - data[invocation].d4.x = subgroupQuadSwapHorizontal(data[0].d4.x); - data[invocation].d4.xy = subgroupQuadSwapHorizontal(data[1].d4.xy); - data[invocation].d4.xyz = subgroupQuadSwapHorizontal(data[2].d4.xyz); - data[invocation].d4 = subgroupQuadSwapHorizontal(data[3].d4); - - data[invocation].i4.x = int(subgroupQuadSwapHorizontal(data[0].i4.x < 0)); - data[invocation].i4.xy = ivec2(subgroupQuadSwapHorizontal(lessThan(data[1].i4.xy, ivec2(0)))); - data[invocation].i4.xyz = ivec3(subgroupQuadSwapHorizontal(lessThan(data[1].i4.xyz, ivec3(0)))); - data[invocation].i4 = ivec4(subgroupQuadSwapHorizontal(lessThan(data[1].i4, ivec4(0)))); - - data[invocation].f4.x = subgroupQuadSwapVertical(data[0].f4.x); - data[invocation].f4.xy = subgroupQuadSwapVertical(data[1].f4.xy); - data[invocation].f4.xyz = subgroupQuadSwapVertical(data[2].f4.xyz); - data[invocation].f4 = subgroupQuadSwapVertical(data[3].f4); - - data[invocation].i4.x = subgroupQuadSwapVertical(data[0].i4.x); - data[invocation].i4.xy = subgroupQuadSwapVertical(data[1].i4.xy); - data[invocation].i4.xyz = subgroupQuadSwapVertical(data[2].i4.xyz); - data[invocation].i4 = subgroupQuadSwapVertical(data[3].i4); - - data[invocation].u4.x = subgroupQuadSwapVertical(data[0].u4.x); - data[invocation].u4.xy = subgroupQuadSwapVertical(data[1].u4.xy); - data[invocation].u4.xyz = subgroupQuadSwapVertical(data[2].u4.xyz); - data[invocation].u4 = subgroupQuadSwapVertical(data[3].u4); - - data[invocation].d4.x = subgroupQuadSwapVertical(data[0].d4.x); - data[invocation].d4.xy = subgroupQuadSwapVertical(data[1].d4.xy); - data[invocation].d4.xyz = subgroupQuadSwapVertical(data[2].d4.xyz); - data[invocation].d4 = subgroupQuadSwapVertical(data[3].d4); - - data[invocation].i4.x = int(subgroupQuadSwapVertical(data[0].i4.x < 0)); - data[invocation].i4.xy = ivec2(subgroupQuadSwapVertical(lessThan(data[1].i4.xy, ivec2(0)))); - data[invocation].i4.xyz = ivec3(subgroupQuadSwapVertical(lessThan(data[1].i4.xyz, ivec3(0)))); - data[invocation].i4 = ivec4(subgroupQuadSwapVertical(lessThan(data[1].i4, ivec4(0)))); - - data[invocation].f4.x = subgroupQuadSwapDiagonal(data[0].f4.x); - data[invocation].f4.xy = subgroupQuadSwapDiagonal(data[1].f4.xy); - data[invocation].f4.xyz = subgroupQuadSwapDiagonal(data[2].f4.xyz); - data[invocation].f4 = subgroupQuadSwapDiagonal(data[3].f4); - - data[invocation].i4.x = subgroupQuadSwapDiagonal(data[0].i4.x); - data[invocation].i4.xy = subgroupQuadSwapDiagonal(data[1].i4.xy); - data[invocation].i4.xyz = subgroupQuadSwapDiagonal(data[2].i4.xyz); - data[invocation].i4 = subgroupQuadSwapDiagonal(data[3].i4); - - data[invocation].u4.x = subgroupQuadSwapDiagonal(data[0].u4.x); - data[invocation].u4.xy = subgroupQuadSwapDiagonal(data[1].u4.xy); - data[invocation].u4.xyz = subgroupQuadSwapDiagonal(data[2].u4.xyz); - data[invocation].u4 = subgroupQuadSwapDiagonal(data[3].u4); - - data[invocation].d4.x = subgroupQuadSwapDiagonal(data[0].d4.x); - data[invocation].d4.xy = subgroupQuadSwapDiagonal(data[1].d4.xy); - data[invocation].d4.xyz = subgroupQuadSwapDiagonal(data[2].d4.xyz); - data[invocation].d4 = subgroupQuadSwapDiagonal(data[3].d4); - - data[invocation].i4.x = int(subgroupQuadSwapDiagonal(data[0].i4.x < 0)); - data[invocation].i4.xy = ivec2(subgroupQuadSwapDiagonal(lessThan(data[1].i4.xy, ivec2(0)))); - data[invocation].i4.xyz = ivec3(subgroupQuadSwapDiagonal(lessThan(data[1].i4.xyz, ivec3(0)))); - data[invocation].i4 = ivec4(subgroupQuadSwapDiagonal(lessThan(data[1].i4, ivec4(0)))); -} diff --git a/deps/glslang/Test/spv.subgroupShuffle.comp b/deps/glslang/Test/spv.subgroupShuffle.comp deleted file mode 100644 index 6d264882..00000000 --- a/deps/glslang/Test/spv.subgroupShuffle.comp +++ /dev/null @@ -1,68 +0,0 @@ -#version 450 - -#extension GL_KHR_shader_subgroup_shuffle: enable - -layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in; - -layout(binding = 0) buffer Buffers -{ - vec4 f4; - ivec4 i4; - uvec4 u4; - dvec4 d4; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; - - data[invocation].f4.x = subgroupShuffle(data[0].f4.x, invocation); - data[invocation].f4.xy = subgroupShuffle(data[1].f4.xy, invocation); - data[invocation].f4.xyz = subgroupShuffle(data[2].f4.xyz, invocation); - data[invocation].f4 = subgroupShuffle(data[3].f4, invocation); - - data[invocation].i4.x = subgroupShuffle(data[0].i4.x, invocation); - data[invocation].i4.xy = subgroupShuffle(data[1].i4.xy, invocation); - data[invocation].i4.xyz = subgroupShuffle(data[2].i4.xyz, invocation); - data[invocation].i4 = subgroupShuffle(data[3].i4, invocation); - - data[invocation].u4.x = subgroupShuffle(data[0].u4.x, invocation); - data[invocation].u4.xy = subgroupShuffle(data[1].u4.xy, invocation); - data[invocation].u4.xyz = subgroupShuffle(data[2].u4.xyz, invocation); - data[invocation].u4 = subgroupShuffle(data[3].u4, invocation); - - data[invocation].d4.x = subgroupShuffle(data[0].d4.x, invocation); - data[invocation].d4.xy = subgroupShuffle(data[1].d4.xy, invocation); - data[invocation].d4.xyz = subgroupShuffle(data[2].d4.xyz, invocation); - data[invocation].d4 = subgroupShuffle(data[3].d4, invocation); - - data[invocation].i4.x = int(subgroupShuffle(data[0].i4.x < 0, invocation)); - data[invocation].i4.xy = ivec2(subgroupShuffle(lessThan(data[1].i4.xy, ivec2(0)), invocation)); - data[invocation].i4.xyz = ivec3(subgroupShuffle(lessThan(data[1].i4.xyz, ivec3(0)), invocation)); - data[invocation].i4 = ivec4(subgroupShuffle(lessThan(data[1].i4, ivec4(0)), invocation)); - - data[invocation].f4.x = subgroupShuffleXor(data[0].f4.x, invocation); - data[invocation].f4.xy = subgroupShuffleXor(data[1].f4.xy, invocation); - data[invocation].f4.xyz = subgroupShuffleXor(data[2].f4.xyz, invocation); - data[invocation].f4 = subgroupShuffleXor(data[3].f4, invocation); - - data[invocation].i4.x = subgroupShuffleXor(data[0].i4.x, invocation); - data[invocation].i4.xy = subgroupShuffleXor(data[1].i4.xy, invocation); - data[invocation].i4.xyz = subgroupShuffleXor(data[2].i4.xyz, invocation); - data[invocation].i4 = subgroupShuffleXor(data[3].i4, invocation); - - data[invocation].u4.x = subgroupShuffleXor(data[0].u4.x, invocation); - data[invocation].u4.xy = subgroupShuffleXor(data[1].u4.xy, invocation); - data[invocation].u4.xyz = subgroupShuffleXor(data[2].u4.xyz, invocation); - data[invocation].u4 = subgroupShuffleXor(data[3].u4, invocation); - - data[invocation].d4.x = subgroupShuffleXor(data[0].d4.x, invocation); - data[invocation].d4.xy = subgroupShuffleXor(data[1].d4.xy, invocation); - data[invocation].d4.xyz = subgroupShuffleXor(data[2].d4.xyz, invocation); - data[invocation].d4 = subgroupShuffleXor(data[3].d4, invocation); - - data[invocation].i4.x = int(subgroupShuffleXor(data[0].i4.x < 0, invocation)); - data[invocation].i4.xy = ivec2(subgroupShuffleXor(lessThan(data[1].i4.xy, ivec2(0)), invocation)); - data[invocation].i4.xyz = ivec3(subgroupShuffleXor(lessThan(data[1].i4.xyz, ivec3(0)), invocation)); - data[invocation].i4 = ivec4(subgroupShuffleXor(lessThan(data[1].i4, ivec4(0)), invocation)); -} diff --git a/deps/glslang/Test/spv.subgroupShuffleRelative.comp b/deps/glslang/Test/spv.subgroupShuffleRelative.comp deleted file mode 100644 index 1864de10..00000000 --- a/deps/glslang/Test/spv.subgroupShuffleRelative.comp +++ /dev/null @@ -1,68 +0,0 @@ -#version 450 - -#extension GL_KHR_shader_subgroup_shuffle_relative: enable - -layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in; - -layout(binding = 0) buffer Buffers -{ - vec4 f4; - ivec4 i4; - uvec4 u4; - dvec4 d4; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; - - data[invocation].f4.x = subgroupShuffleUp(data[0].f4.x, invocation); - data[invocation].f4.xy = subgroupShuffleUp(data[1].f4.xy, invocation); - data[invocation].f4.xyz = subgroupShuffleUp(data[2].f4.xyz, invocation); - data[invocation].f4 = subgroupShuffleUp(data[3].f4, invocation); - - data[invocation].i4.x = subgroupShuffleUp(data[0].i4.x, invocation); - data[invocation].i4.xy = subgroupShuffleUp(data[1].i4.xy, invocation); - data[invocation].i4.xyz = subgroupShuffleUp(data[2].i4.xyz, invocation); - data[invocation].i4 = subgroupShuffleUp(data[3].i4, invocation); - - data[invocation].u4.x = subgroupShuffleUp(data[0].u4.x, invocation); - data[invocation].u4.xy = subgroupShuffleUp(data[1].u4.xy, invocation); - data[invocation].u4.xyz = subgroupShuffleUp(data[2].u4.xyz, invocation); - data[invocation].u4 = subgroupShuffleUp(data[3].u4, invocation); - - data[invocation].d4.x = subgroupShuffleUp(data[0].d4.x, invocation); - data[invocation].d4.xy = subgroupShuffleUp(data[1].d4.xy, invocation); - data[invocation].d4.xyz = subgroupShuffleUp(data[2].d4.xyz, invocation); - data[invocation].d4 = subgroupShuffleUp(data[3].d4, invocation); - - data[invocation].i4.x = int(subgroupShuffleUp(data[0].i4.x < 0, invocation)); - data[invocation].i4.xy = ivec2(subgroupShuffleUp(lessThan(data[1].i4.xy, ivec2(0)), invocation)); - data[invocation].i4.xyz = ivec3(subgroupShuffleUp(lessThan(data[1].i4.xyz, ivec3(0)), invocation)); - data[invocation].i4 = ivec4(subgroupShuffleUp(lessThan(data[1].i4, ivec4(0)), invocation)); - - data[invocation].f4.x = subgroupShuffleDown(data[0].f4.x, invocation); - data[invocation].f4.xy = subgroupShuffleDown(data[1].f4.xy, invocation); - data[invocation].f4.xyz = subgroupShuffleDown(data[2].f4.xyz, invocation); - data[invocation].f4 = subgroupShuffleDown(data[3].f4, invocation); - - data[invocation].i4.x = subgroupShuffleDown(data[0].i4.x, invocation); - data[invocation].i4.xy = subgroupShuffleDown(data[1].i4.xy, invocation); - data[invocation].i4.xyz = subgroupShuffleDown(data[2].i4.xyz, invocation); - data[invocation].i4 = subgroupShuffleDown(data[3].i4, invocation); - - data[invocation].u4.x = subgroupShuffleDown(data[0].u4.x, invocation); - data[invocation].u4.xy = subgroupShuffleDown(data[1].u4.xy, invocation); - data[invocation].u4.xyz = subgroupShuffleDown(data[2].u4.xyz, invocation); - data[invocation].u4 = subgroupShuffleDown(data[3].u4, invocation); - - data[invocation].d4.x = subgroupShuffleDown(data[0].d4.x, invocation); - data[invocation].d4.xy = subgroupShuffleDown(data[1].d4.xy, invocation); - data[invocation].d4.xyz = subgroupShuffleDown(data[2].d4.xyz, invocation); - data[invocation].d4 = subgroupShuffleDown(data[3].d4, invocation); - - data[invocation].i4.x = int(subgroupShuffleDown(data[0].i4.x < 0, invocation)); - data[invocation].i4.xy = ivec2(subgroupShuffleDown(lessThan(data[1].i4.xy, ivec2(0)), invocation)); - data[invocation].i4.xyz = ivec3(subgroupShuffleDown(lessThan(data[1].i4.xyz, ivec3(0)), invocation)); - data[invocation].i4 = ivec4(subgroupShuffleDown(lessThan(data[1].i4, ivec4(0)), invocation)); -} diff --git a/deps/glslang/Test/spv.subgroupUniformControlFlow.vert b/deps/glslang/Test/spv.subgroupUniformControlFlow.vert deleted file mode 100644 index 02ac40d0..00000000 --- a/deps/glslang/Test/spv.subgroupUniformControlFlow.vert +++ /dev/null @@ -1,11 +0,0 @@ -#version 460 - -#ifdef GL_EXT_subgroup_uniform_control_flow - -#extension GL_EXT_subgroup_uniform_control_flow : enable - -[[random(4)]] void main() [[subgroup_uniform_control_flow]] -{ -} - -#endif diff --git a/deps/glslang/Test/spv.subgroupVote.comp b/deps/glslang/Test/spv.subgroupVote.comp deleted file mode 100644 index c1c877af..00000000 --- a/deps/glslang/Test/spv.subgroupVote.comp +++ /dev/null @@ -1,49 +0,0 @@ -#version 450 - -#extension GL_KHR_shader_subgroup_vote: enable - -layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in; - -layout(binding = 0) buffer Buffers -{ - vec4 f4; - ivec4 i4; - uvec4 u4; - dvec4 d4; - int r; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; - - if (subgroupAll(data[invocation].r < 0)) - { - data[invocation].r = int(subgroupAllEqual(data[0].f4.x)); - data[invocation].r = int(subgroupAllEqual(data[1].f4.xy)); - data[invocation].r = int(subgroupAllEqual(data[2].f4.xyz)); - data[invocation].r = int(subgroupAllEqual(data[3].f4)); - - data[invocation].r = int(subgroupAllEqual(data[0].i4.x)); - data[invocation].r = int(subgroupAllEqual(data[1].i4.xy)); - data[invocation].r = int(subgroupAllEqual(data[2].i4.xyz)); - data[invocation].r = int(subgroupAllEqual(data[3].i4)); - - data[invocation].r = int(subgroupAllEqual(data[0].u4.x)); - data[invocation].r = int(subgroupAllEqual(data[1].u4.xy)); - data[invocation].r = int(subgroupAllEqual(data[2].u4.xyz)); - data[invocation].r = int(subgroupAllEqual(data[3].u4)); - } - else if (subgroupAny(data[invocation].r < 0)) - { - data[invocation].r = int(subgroupAllEqual(data[0].d4.x)); - data[invocation].r = int(subgroupAllEqual(data[1].d4.xy)); - data[invocation].r = int(subgroupAllEqual(data[2].d4.xyz)); - data[invocation].r = int(subgroupAllEqual(data[3].d4)); - - data[invocation].r = int(int(subgroupAllEqual(data[0].i4.x < 0))); - data[invocation].r = int(ivec2(subgroupAllEqual(lessThan(data[1].i4.xy, ivec2(0))))); - data[invocation].r = int(ivec3(subgroupAllEqual(lessThan(data[1].i4.xyz, ivec3(0))))); - data[invocation].r = int(ivec4(subgroupAllEqual(lessThan(data[1].i4, ivec4(0))))); - } -} diff --git a/deps/glslang/Test/spv.subpass.frag b/deps/glslang/Test/spv.subpass.frag deleted file mode 100644 index 42411d99..00000000 --- a/deps/glslang/Test/spv.subpass.frag +++ /dev/null @@ -1,29 +0,0 @@ -#version 400 - -layout(input_attachment_index = 1) uniform subpassInput sub; -layout(input_attachment_index = 2) uniform subpassInputMS subMS; -layout(input_attachment_index = 3) uniform isubpassInput isub; -layout(input_attachment_index = 4) uniform isubpassInputMS isubMS; -layout(input_attachment_index = 5) uniform usubpassInput usub; -layout(input_attachment_index = 6) uniform usubpassInputMS usubMS; - -out vec4 color; -out ivec4 icolor; -out uvec4 ucolor; - -void foo(isubpassInputMS sb) -{ - icolor += subpassLoad(sb, 3); -} - -void main() -{ - color = subpassLoad(sub); - color += subpassLoad(subMS, 3); - icolor = subpassLoad(isub); - icolor += subpassLoad(isubMS, 3); - ucolor = subpassLoad(usub); - ucolor += subpassLoad(usubMS, 3); - - foo(isubMS); -} diff --git a/deps/glslang/Test/spv.switch.frag b/deps/glslang/Test/spv.switch.frag deleted file mode 100644 index 1808086a..00000000 --- a/deps/glslang/Test/spv.switch.frag +++ /dev/null @@ -1,142 +0,0 @@ -#version 310 es -precision mediump float; -flat in int c, d; -in float x; -out float color; -in vec4 v; - -vec4 foo1(vec4 v1, vec4 v2, int i1) -{ - switch (i1) - { - case 0: - return v1; - case 2: - case 1: - return v2; - case 3: - return v1 * v2; - } - - return vec4(0.0); -} - -vec4 foo2(vec4 v1, vec4 v2, int i1) -{ - switch (i1) - { - case 0: - return v1; - case 2: - return vec4(1.0); - case 1: - return v2; - case 3: - return v1 * v2; - } - - return vec4(0.0); -} - -void main() -{ - float f; - int a[2]; - int local = c; - - switch(++local) - { - } - - switch (c) { - case 1: - f = sin(x); - break; - case 2: - f = cos(x); - break; - default: - f = tan(x); - } - - switch (c) { - case 1: - f += sin(x); - case 2: - f += cos(x); - break; - default: - f += tan(x); - } - - switch (c) { - case 1: - f += sin(x); - break; - case 2: - f += cos(x); - break; - } - - switch (c) { - case 1: - f += sin(x); - break; - case 2: - switch (d) { - case 1: - f += x * x * x; - break; - case 2: - f += x * x; - break; - } - break; - default: - f += tan(x); - } - - for (int i = 0; i < 10; ++i) { - switch (c) { - case 1: - f += sin(x); - for (int j = 20; j < 30; ++j) { - ++f; - if (f < 100.2) - break; - } - break; - case 2: - f += cos(x); - break; - break; - default: - f += tan(x); - } - - if (f < 3.43) - break; - } - - switch (c) { - case 1: - f += sin(x); - break; - case 2: - // test no statements at end - } - - color = f + float(local); - - color += foo1(v,v,c).y; - color += foo2(v,v,c).z; - - switch (c) { - case 0: break; - default: - } - - switch (c) { - default: - } -} diff --git a/deps/glslang/Test/spv.swizzle.frag b/deps/glslang/Test/spv.swizzle.frag deleted file mode 100644 index 5a5a203c..00000000 --- a/deps/glslang/Test/spv.swizzle.frag +++ /dev/null @@ -1,52 +0,0 @@ -#version 140 - -in float blend; -in vec4 u; -bool p; - -in vec2 t; - -void main() -{ - float blendscale = 1.789; - - vec4 w = u; - vec4 w_undef; // test undef - vec4 w_dep = u; // test dependent swizzles - vec4 w_reorder = u; // test reordering - vec4 w2 = u; - vec4 w_flow = u; // test flowControl - - w_reorder.z = blendscale; - - w.wy = t; - - w_reorder.x = blendscale; - - w2.xyzw = u.zwxy; - - w_reorder.y = blendscale; - - w_dep.xy = w2.xz; - w_dep.zw = t; - - w_undef.xy = u.zw; - - if (p) - w_flow.x = t.x; - else - w_flow.x = t.y; - - gl_FragColor = mix(w_reorder, w_undef, w * w2 * w_dep * w_flow); - - vec2 c = t; - vec4 rep = vec4(0.0, 0.0, 0.0, 1.0); - - if (c.x < 0.0) - c.x *= -1.0; - - if (c.x <= 1.0) - rep.x = 3.4; - - gl_FragColor += rep; -} diff --git a/deps/glslang/Test/spv.swizzleInversion.frag b/deps/glslang/Test/spv.swizzleInversion.frag deleted file mode 100644 index 9dca62f8..00000000 --- a/deps/glslang/Test/spv.swizzleInversion.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 - -in vec4 in4; -in vec3 in3; - -void main() -{ - vec3 v43 = interpolateAtCentroid(in4.wzx); - vec2 v42 = interpolateAtSample(in4.zx, 1); - vec4 v44 = interpolateAtOffset(in4.zyxw, vec2(2.0)); - float v41 = interpolateAtOffset(in4.y, vec2(2.0)); - - vec3 v33 = interpolateAtCentroid(in3.yzx); - vec2 v32 = interpolateAtSample(in3.zx, 1); - float v31 = interpolateAtOffset(in4.y, vec2(2.0)); -} diff --git a/deps/glslang/Test/spv.targetOpenGL.vert b/deps/glslang/Test/spv.targetOpenGL.vert deleted file mode 100644 index 501a3e56..00000000 --- a/deps/glslang/Test/spv.targetOpenGL.vert +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 - -layout(constant_id = 3) const int a = 2; -layout(location = 2) uniform float f; -layout(location = 4, binding = 1) uniform sampler2D s1; -layout(binding = 2) uniform sampler2D s2; - -void main() -{ -} diff --git a/deps/glslang/Test/spv.targetVulkan.vert b/deps/glslang/Test/spv.targetVulkan.vert deleted file mode 100644 index d879122b..00000000 --- a/deps/glslang/Test/spv.targetVulkan.vert +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 - -layout(constant_id = 3) const int a = 2; - -layout(push_constant) uniform pc { float f; }; - -void main() -{ -} diff --git a/deps/glslang/Test/spv.terminate.frag b/deps/glslang/Test/spv.terminate.frag deleted file mode 100644 index 2555877b..00000000 --- a/deps/glslang/Test/spv.terminate.frag +++ /dev/null @@ -1,8 +0,0 @@ -#version 400 - -#extension GL_EXT_terminate_invocation : enable - -void main() -{ - terminateInvocation; -} diff --git a/deps/glslang/Test/spv.test.frag b/deps/glslang/Test/spv.test.frag deleted file mode 100644 index 3d4d8f96..00000000 --- a/deps/glslang/Test/spv.test.frag +++ /dev/null @@ -1,22 +0,0 @@ -#version 400 - -uniform sampler2D texSampler2D; -uniform sampler3D texSampler3D; - -in float blend; -in vec2 scale; -in vec4 u; - -in vec2 t; -in vec3 coords; - -void main() -{ - float blendscale = 1.789; - - vec4 v = texture(texSampler2D, (t + scale) / scale ).wzyx; - - vec4 w = texture(texSampler3D, coords) + v; - - gl_FragColor = mix(w, u, blend * blendscale); -} diff --git a/deps/glslang/Test/spv.test.vert b/deps/glslang/Test/spv.test.vert deleted file mode 100644 index e2e16aa5..00000000 --- a/deps/glslang/Test/spv.test.vert +++ /dev/null @@ -1,14 +0,0 @@ -#version 140 - -in mat4 transform; - -attribute vec4 position; -in vec2 uv_in; - -out vec2 uv; - -void main() -{ - uv = uv_in; - gl_Position = transform * position; -} diff --git a/deps/glslang/Test/spv.texture.frag b/deps/glslang/Test/spv.texture.frag deleted file mode 100644 index 73884d1c..00000000 --- a/deps/glslang/Test/spv.texture.frag +++ /dev/null @@ -1,73 +0,0 @@ -#version 140 - -uniform sampler1D texSampler1D; -uniform sampler2D texSampler2D; -uniform sampler3D texSampler3D; -uniform samplerCube texSamplerCube; -uniform sampler1DShadow shadowSampler1D; -uniform sampler2DShadow shadowSampler2D; - -varying float blend; -varying vec2 scale; -varying vec4 u; - -in vec2 t; -in vec2 coords2D; - -void main() -{ - float blendscale = 1.789; - float bias = 2.0; - float lod = 3.0; - float proj = 2.0; - float coords1D = 1.789; - vec3 coords3D = vec3(1.789, 2.718, 3.453); - vec4 coords4D = vec4(1.789, 2.718, 3.453, 2.0); - vec4 color = vec4(0.0, 0.0, 0.0, 0.0); - - color += texture (texSampler1D, coords1D); - color += texture (texSampler1D, coords1D, bias); - color += textureProj(texSampler1D, coords2D); - color += textureProj(texSampler1D, coords4D); - color += textureProj(texSampler1D, coords2D, bias); - color += textureProj(texSampler1D, coords4D, bias); - - color += texture (texSampler2D, coords2D); - color += texture (texSampler2D, coords2D, bias); - color += textureProj (texSampler2D, coords3D); - color += textureProj (texSampler2D, coords4D, bias); - - color += texture (texSampler3D, coords3D); - color += texture (texSampler3D, coords3D, bias); - color += textureProj (texSampler3D, coords4D); - color += textureProj (texSampler3D, coords4D, bias); - - color += texture (texSamplerCube, coords3D); - color += texture (texSamplerCube, coords3D, bias); - - color += texture (shadowSampler1D, coords3D); - color += texture (shadowSampler1D, coords3D, bias); - color += texture (shadowSampler2D, coords3D); - color += texture (shadowSampler2D, coords3D, bias); - color += textureProj (shadowSampler1D, coords4D); - color += textureProj (shadowSampler1D, coords4D, bias); - color += textureProj (shadowSampler2D, coords4D); - color += textureProj (shadowSampler2D, coords4D, bias); - - ivec2 iCoords2D = ivec2(0, 5); - int iLod = 1; - - color += texelFetch(texSampler2D, iCoords2D, iLod); - - vec2 gradX = dFdx(coords2D); - vec2 gradY = dFdy(coords2D); - const ivec2 offset = ivec2(3, -7); - - color += textureGrad(texSampler2D, coords2D, gradX, gradY); - color += textureProjGrad(texSampler2D, vec3(coords2D, proj), gradX, gradY); - color += textureGradOffset(texSampler2D, coords2D, gradX, gradY, offset); - color += textureProjGradOffset(texSampler2D, coords3D, gradX, gradY, offset); - color += textureGrad(shadowSampler2D, vec3(coords2D, lod), gradX, gradY); - - gl_FragColor = mix(color, u, blend * blendscale); -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.texture.sampler.transform.frag b/deps/glslang/Test/spv.texture.sampler.transform.frag deleted file mode 100644 index 872d9b04..00000000 --- a/deps/glslang/Test/spv.texture.sampler.transform.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 440 - -uniform sampler smp; -uniform texture2D tex; - -in vec2 coord; - -out vec4 color; - -void main() -{ - color = texture(sampler2D(tex, smp), coord); -} diff --git a/deps/glslang/Test/spv.texture.vert b/deps/glslang/Test/spv.texture.vert deleted file mode 100644 index 9b03bba0..00000000 --- a/deps/glslang/Test/spv.texture.vert +++ /dev/null @@ -1,39 +0,0 @@ -#version 140 - -uniform sampler1D texSampler1D; -uniform sampler2D texSampler2D; -uniform sampler3D texSampler3D; -uniform samplerCube texSamplerCube; -uniform sampler1DShadow shadowSampler1D; -uniform sampler2DShadow shadowSampler2D; - -in vec2 coords2D; - -void main() -{ - float lod = 3.0; - float coords1D = 1.789; - vec3 coords3D = vec3(1.789, 2.718, 3.453); - vec4 coords4D = vec4(1.789, 2.718, 3.453, 2.0); - vec4 color = vec4(0.0, 0.0, 0.0, 0.0); - - color += textureLod(texSampler1D, coords1D, lod); - color += textureProjLod(texSampler1D, coords2D, lod); - color += textureProjLod(texSampler1D, coords4D, lod); - - color += textureLod (texSampler2D, coords2D, lod); - color += textureProjLod (texSampler2D, coords3D, lod); - color += textureProjLod (texSampler2D, coords4D, lod); - - color += textureLod (texSampler3D, coords3D, lod); - color += textureProjLod (texSampler3D, coords4D, lod); - - color += textureLod (texSamplerCube, coords3D, lod); - - color += textureLod (shadowSampler1D, coords3D, lod); - color += textureLod (shadowSampler2D, coords3D, lod); - color += textureProjLod(shadowSampler1D, coords4D, lod); - color += textureProjLod(shadowSampler2D, coords4D, lod); - - gl_Position = color; -} diff --git a/deps/glslang/Test/spv.textureBuffer.vert b/deps/glslang/Test/spv.textureBuffer.vert deleted file mode 100644 index fc6fa3ac..00000000 --- a/deps/glslang/Test/spv.textureBuffer.vert +++ /dev/null @@ -1,17 +0,0 @@ -#version 450 - -uniform textureBuffer tBuf; -uniform sampler s; -uniform samplerBuffer sBuf; - -uniform utextureBuffer utBuf; -uniform itextureBuffer itBuf; - -void main() -{ - texelFetch(samplerBuffer(tBuf, s), 13); - texelFetch(sBuf, 13); - texelFetch(tBuf, 13); - texelFetch(utBuf, 13); - texelFetch(itBuf, 13); -} diff --git a/deps/glslang/Test/spv.textureError.frag b/deps/glslang/Test/spv.textureError.frag deleted file mode 100644 index a40ea363..00000000 --- a/deps/glslang/Test/spv.textureError.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 140 - -uniform sampler2D s2D; -centroid vec2 centTexCoord; - -void main() -{ - gl_FragColor = texture2D(s2D, centTexCoord); -} - diff --git a/deps/glslang/Test/spv.textureGatherBiasLod.frag b/deps/glslang/Test/spv.textureGatherBiasLod.frag deleted file mode 100644 index 35bd035a..00000000 --- a/deps/glslang/Test/spv.textureGatherBiasLod.frag +++ /dev/null @@ -1,88 +0,0 @@ -#version 450 core - -#extension GL_ARB_sparse_texture2: enable -#extension GL_AMD_texture_gather_bias_lod: enable - -uniform sampler2D s2D; -uniform sampler2DArray s2DArray; -uniform samplerCube sCube; -uniform samplerCubeArray sCubeArray; - -in vec2 c2; -in vec3 c3; -in vec4 c4; - -in float lod; -in float bias; - -out vec4 fragColor; - -void main() -{ - vec4 texel = vec4(0.0); - vec4 result = vec4(0.0); - - const ivec2 offsets[4] = { ivec2(0, 0), ivec2(0, 1), ivec2(1, 0), ivec2(1, 1) }; - - texel += textureGather(s2D, c2, 0, bias); - texel += textureGather(s2DArray, c3, 1, bias); - texel += textureGather(sCube, c3, 2, bias); - texel += textureGather(sCubeArray, c4, 3, bias); - - texel += textureGatherOffset(s2D, c2, offsets[0], 0, bias); - texel += textureGatherOffset(s2DArray, c3, offsets[1], 1, bias); - - texel += textureGatherOffsets(s2D, c2, offsets, 0, bias); - texel += textureGatherOffsets(s2DArray, c3, offsets, 1, bias); - - sparseTextureGatherARB(s2D, c2, result, 0, bias); - texel += result; - sparseTextureGatherARB(s2DArray, c3, result, 1, bias); - texel += result; - sparseTextureGatherARB(sCube, c3, result, 2, bias); - texel += result; - sparseTextureGatherARB(sCubeArray, c4, result, 2, bias); - texel += result; - - sparseTextureGatherOffsetARB(s2D, c2, offsets[0], result, 0, bias); - texel += result; - sparseTextureGatherOffsetARB(s2DArray, c3, offsets[1], result, 1, bias); - texel += result; - - sparseTextureGatherOffsetsARB(s2D, c2, offsets, result, 0, bias); - texel += result; - sparseTextureGatherOffsetsARB(s2DArray, c3, offsets, result, 1, bias); - texel += result; - - texel += textureGatherLodAMD(s2D, c2, lod); - texel += textureGatherLodAMD(s2DArray, c3, lod, 1); - texel += textureGatherLodAMD(sCube, c3, lod, 2); - texel += textureGatherLodAMD(sCubeArray, c4, lod, 3); - - texel += textureGatherLodOffsetAMD(s2D, c2, lod, offsets[0]); - texel += textureGatherLodOffsetAMD(s2DArray, c3, lod, offsets[1], 1); - - texel += textureGatherLodOffsetsAMD(s2D, c2, lod, offsets); - texel += textureGatherLodOffsetsAMD(s2DArray, c3, lod, offsets, 1); - - sparseTextureGatherLodAMD(s2D, c2, lod, result); - texel += result; - sparseTextureGatherLodAMD(s2DArray, c3, lod, result, 1); - texel += result; - sparseTextureGatherLodAMD(sCube, c3, lod, result, 2); - texel += result; - sparseTextureGatherLodAMD(sCubeArray, c4, lod, result, 2); - texel += result; - - sparseTextureGatherLodOffsetAMD(s2D, c2, lod, offsets[0], result); - texel += result; - sparseTextureGatherLodOffsetAMD(s2DArray, c3, lod, offsets[1], result, 1); - texel += result; - - sparseTextureGatherLodOffsetsAMD(s2D, c2, lod, offsets, result); - texel += result; - sparseTextureGatherLodOffsetsAMD(s2DArray, c3, lod, offsets, result, 1); - texel += result; - - fragColor = texel; -} diff --git a/deps/glslang/Test/spv.types.frag b/deps/glslang/Test/spv.types.frag deleted file mode 100644 index a2ab1d32..00000000 --- a/deps/glslang/Test/spv.types.frag +++ /dev/null @@ -1,78 +0,0 @@ -#version 140 - -bool u_b; -bvec2 u_b2; -bvec3 u_b3; -bvec4 u_b4; -flat in int u_i; -flat in ivec2 u_i2; -flat in ivec3 u_i3; -flat in ivec4 u_i4; - in float u_f; - in vec2 u_f2; - in vec3 u_f3; - in vec4 u_f4; -bool i_b; -bvec2 i_b2; -bvec3 i_b3; -bvec4 i_b4; - -flat in int i_i; -flat in ivec2 i_i2; -flat in ivec3 i_i3; -flat in ivec4 i_i4; - -in float i_f; -in vec2 i_f2; -in vec3 i_f3; -in vec4 i_f4; - -void main() -{ - bool b = u_b && i_b; - bvec2 b2 = bvec2(u_b2.x && i_b2.x && u_b2.y && i_b2.y); - bvec3 b3 = bvec3(u_b3.x && i_b3.x && u_b3.y && i_b3.y && u_b3.z && i_b3.z); - bvec4 b4 = bvec4(u_b4.x && i_b4.x && u_b4.y && i_b4.y && u_b4.z && i_b4.z && u_b4.w && i_b4.w); - - int i = u_i + i_i; - ivec2 i2 = u_i2 + i_i2; - ivec3 i3 = u_i3 + i_i3; - ivec4 i4 = u_i4 + i_i4; - - float f = u_f + i_f; - vec2 f2 = u_f2 + i_f2; - vec3 f3 = u_f3 + i_f3; - vec4 f4 = u_f4 + i_f4; - - gl_FragColor = - b || - b2.x || - b2.y || - b3.x || - b3.y || - b3.z || - b4.x || - b4.y || - b4.z || - b4.w ? vec4( - i + - i2.x + - i2.y + - i3.x + - i3.y + - i3.z + - i4.x + - i4.y + - i4.z + - i4.w + - f + - f2.x + - f2.y + - f3.x + - f3.y + - f3.z + - f4.x + - f4.y + - f4.z + - f4.w) : vec4(1.0); -} diff --git a/deps/glslang/Test/spv.uint.frag b/deps/glslang/Test/spv.uint.frag deleted file mode 100644 index 853de7c4..00000000 --- a/deps/glslang/Test/spv.uint.frag +++ /dev/null @@ -1,102 +0,0 @@ -#version 310 es -precision mediump float; -flat in uvec2 t; -in float f; -in vec2 tc; - -flat in uvec4 v; -flat in int i; -bool b; - -out uvec4 c; - -uniform mediump usampler2D usampler; - -void main() -{ - int count = 1; - - uint u = t.y + 3u; - const uint cu1 = 0xFFFFFFFFU; - const uint cu2 = -1u; // 0xFFFFFFFF - const uint cu3 = 1U; - const uint cu4 = 1u; - - if (cu1 == cu2) - count *= 2; // 2 - if (cu3 == cu4) - count *= 3; // 6 - if (cu2 == cu3) - count *= 5; // not done - - const int cshiftedii = 0xFFFFFFFF >> 10; - const uint cushiftedui = 0xFFFFFFFFu >> 10; - const int cshiftediu = 0xFFFFFFFF >> 10u; - const uint cushifteduu = 0xFFFFFFFFu >> 10u; - - if (cshiftedii == cshiftediu) - count *= 7; // 42 - if (cushiftedui == cushifteduu) - count *= 11; // 462 - if (cshiftedii == int(cushiftedui)) - count *= 13; // not done - - int shiftedii = 0xFFFFFFFF >> 10; - uint shiftedui = 0xFFFFFFFFu >> 10; - int shiftediu = 0xFFFFFFFF >> 10u; - uint shifteduu = 0xFFFFFFFFu >> 10u; - - if (shiftedii == shiftediu) - c = texture(usampler, tc); - if (shiftedui == shifteduu) - c = texture(usampler, tc + float(1u)); - if (shiftedii == int(shiftedui)) - c = texture(usampler, tc - vec2(2u)); - - if (t.x > 4u) { - float af = float(u); - bool ab = bool(u); - int ai = int(u); - - c += uvec4(uint(af), uint(ab), uint(ai), count); - } - - const uint cmask1 = 0x0A1u; - const uint cmask2 = 0xA10u; - const uint cmask3 = cmask1 << 4; - const uint cmask4 = 0xAB1u; - - if (cmask3 == cmask2) - count *= 17; // 7854 - - if ((cmask3 & cmask1) != 0u) - count *= 19; // not done - - if ((cmask1 | cmask3) == cmask4) - count *= 23; // 180642 - - if ((cmask1 ^ cmask4) == 0xA10u) - count *= 27; // 4877334 - - uint mask1 = 0x0A1u; - uint mask2 = 0xA10u; - uint mask3 = mask1 << 4; - uint mask4 = 0xAB1u; - - if (mask3 == mask2) - count *= 2; // 9754668 - - if ((mask3 & mask1) != 0u) - count *= 3; // not done - - if ((mask1 | mask3) == mask4) - count *= 5; // 48773340 - - if ((mask1 ^ mask4) == 0xA10u) - count *= 7; // 341413380 - - c += uvec4(count); - - #define UINT_MAX 4294967295u - c.x += UINT_MAX; -} diff --git a/deps/glslang/Test/spv.uniformArray.frag b/deps/glslang/Test/spv.uniformArray.frag deleted file mode 100644 index b7625afe..00000000 --- a/deps/glslang/Test/spv.uniformArray.frag +++ /dev/null @@ -1,17 +0,0 @@ -#version 140 - -uniform sampler2D texSampler2D; -in vec3 inColor; -in vec4 color[6]; -in float alpha[16]; - -void main() -{ - vec4 texColor = color[1] + color[1]; - - texColor.xyz += inColor; - - texColor.a += alpha[12]; - - gl_FragColor = texColor; -} diff --git a/deps/glslang/Test/spv.uniformInitializer.frag b/deps/glslang/Test/spv.uniformInitializer.frag deleted file mode 100644 index cdae1c1d..00000000 --- a/deps/glslang/Test/spv.uniformInitializer.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 - -layout (location = 0) out vec4 color; - -layout (location = 0) uniform vec4 in_color = vec4(0.0, 1.0, 0.0, 1.0); - -void main() -{ - color = in_color; -} diff --git a/deps/glslang/Test/spv.uniformInitializerSpecConstant.frag b/deps/glslang/Test/spv.uniformInitializerSpecConstant.frag deleted file mode 100644 index 289d61a8..00000000 --- a/deps/glslang/Test/spv.uniformInitializerSpecConstant.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 - -layout (location = 0) out vec4 color; - -layout (constant_id = 1) const float opacity = 0.5; - -layout (location = 0) uniform vec3 in_color = vec3(1.0, 0.5, 0); - -layout (location = 4) uniform float foo = opacity; - -void main() -{ - color = vec4(in_color, foo); -} diff --git a/deps/glslang/Test/spv.uniformInitializerStruct.frag b/deps/glslang/Test/spv.uniformInitializerStruct.frag deleted file mode 100644 index b6148065..00000000 --- a/deps/glslang/Test/spv.uniformInitializerStruct.frag +++ /dev/null @@ -1,19 +0,0 @@ -#version 450 - -layout (location = 0) out vec4 color; - -layout (location = 0) uniform struct { - float r; - float g; - float b; -} parts[2] = { { 1.0, 1.0, 1.0}, { 0.0, 1.0, 0.0 } }; - -void main() { - color = vec4(0.0, 0.0, 0.0, 1.0); - - for (int i = 0; i < 2; i++) { - color.r += parts[i].r; - color.g += parts[i].g; - color.b += parts[i].b; - } -} diff --git a/deps/glslang/Test/spv.unit1.frag b/deps/glslang/Test/spv.unit1.frag deleted file mode 100644 index d84f821e..00000000 --- a/deps/glslang/Test/spv.unit1.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 460 - -float f; -float a1; - -float foo(); - -out float cout; - -void main() -{ - f = 10; - float g = foo(); - f += g; - f += gl_FragCoord.y; -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.unit2.frag b/deps/glslang/Test/spv.unit2.frag deleted file mode 100644 index d17e7e7b..00000000 --- a/deps/glslang/Test/spv.unit2.frag +++ /dev/null @@ -1,17 +0,0 @@ -#version 410 -// a different version number makes different id's for the same shared symbol - -float a2; -float f; - -float bar(); - -out float cout; -in float cin; - -float foo() -{ - float h2 = 2 * f + cin; - float g2 = bar(); - return h2 + g2 + gl_FragCoord.y; -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.unit3.frag b/deps/glslang/Test/spv.unit3.frag deleted file mode 100644 index 4c965975..00000000 --- a/deps/glslang/Test/spv.unit3.frag +++ /dev/null @@ -1,15 +0,0 @@ -#version 460 - -float f; -float h3 = 3.0; - -out float cout; -in float cin; - -float bar() -{ - h3 *= f; - float g3 = 2 * h3; - cout = g3; - return h3 + g3 + gl_FragCoord.y; -} diff --git a/deps/glslang/Test/spv.variableArrayIndex.frag b/deps/glslang/Test/spv.variableArrayIndex.frag deleted file mode 100644 index cc304b8e..00000000 --- a/deps/glslang/Test/spv.variableArrayIndex.frag +++ /dev/null @@ -1,49 +0,0 @@ -#version 400 - -uniform sampler2D samp2D; -in vec2 coord; - -struct lunarStruct1 { - int i; - float f; -}; - -struct lunarStruct2 { - int i; - float f; - lunarStruct1 s1_1; -}; - -struct lunarStruct3 { - lunarStruct2 s2_1[3]; - int i; - float f; - lunarStruct1 s1_1; -}; - - -flat in lunarStruct1 foo; -flat in lunarStruct2 foo2[5]; -flat in lunarStruct3 foo3; -flat in int Count; - -void main() -{ - float scale; - int iLocal = Count; - - if (foo3.s2_1[1].i > 0) - scale = foo2[foo3.s2_1[foo.i].i + 2 + ++iLocal].s1_1.f; - else - scale = foo3.s2_1[0].s1_1.f; - - //for (int i = 0; i < iLocal; ++i) { - // scale += foo2[i].f; - //} - - gl_FragColor = scale * texture(samp2D, coord); - - vec2[3] constructed = vec2[3](coord, vec2(scale), vec2(1.0, 2.0)); - gl_FragColor += vec4(constructed[foo.i], constructed[foo.i]); -} - diff --git a/deps/glslang/Test/spv.varyingArray.frag b/deps/glslang/Test/spv.varyingArray.frag deleted file mode 100644 index f6e043f2..00000000 --- a/deps/glslang/Test/spv.varyingArray.frag +++ /dev/null @@ -1,19 +0,0 @@ -#version 140 -uniform sampler2D texSampler2D; -in vec4 color; -in float alpha; - -in vec4 TexCoord[6]; - -in vec4 foo[3]; - -void main() -{ - vec4 texColor = texture(texSampler2D, vec2(TexCoord[4] + TexCoord[5])); - - texColor += color; - - texColor.a = alpha; - - gl_FragColor = foo[1] + TexCoord[0] + TexCoord[4] + texColor; -} diff --git a/deps/glslang/Test/spv.varyingArrayIndirect.frag b/deps/glslang/Test/spv.varyingArrayIndirect.frag deleted file mode 100644 index a556c9eb..00000000 --- a/deps/glslang/Test/spv.varyingArrayIndirect.frag +++ /dev/null @@ -1,21 +0,0 @@ -#version 140 -uniform sampler2D texSampler2D; -in vec4 color; -in float alpha; - -in vec4 TexCoord[6]; - -in vec4 userIn[2]; - -flat in int a, b; - -void main() -{ - vec4 texColor = texture(texSampler2D, vec2(userIn[b] + TexCoord[a] + TexCoord[5])); - - texColor += color; - - texColor.a = alpha; - - gl_FragColor = TexCoord[0] + TexCoord[b] + texColor + userIn[a]; -} diff --git a/deps/glslang/Test/spv.vecMatConstruct.frag b/deps/glslang/Test/spv.vecMatConstruct.frag deleted file mode 100644 index 54a00170..00000000 --- a/deps/glslang/Test/spv.vecMatConstruct.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 - -void main() -{ - mat4x3 m; - - vec2 v2 = vec2(m); - vec3 v3 = vec3(m); - vec4 v4 = vec4(m); - - ivec2 iv2 = ivec2(m); - ivec3 iv3 = ivec3(m); - ivec4 iv4 = ivec4(m); -} diff --git a/deps/glslang/Test/spv.viewportArray2.tesc b/deps/glslang/Test/spv.viewportArray2.tesc deleted file mode 100644 index 24a1d8c9..00000000 --- a/deps/glslang/Test/spv.viewportArray2.tesc +++ /dev/null @@ -1,15 +0,0 @@ -#version 430 -#extension GL_NV_viewport_array2 :require - -layout(vertices = 4) out; - -out gl_PerVertex { - int gl_ViewportMask[2]; -} gl_out[4]; - -layout (viewport_relative) out highp int gl_Layer; - -void main() -{ - gl_out[gl_InvocationID].gl_ViewportMask[0] = 1; -} diff --git a/deps/glslang/Test/spv.viewportArray2.vert b/deps/glslang/Test/spv.viewportArray2.vert deleted file mode 100644 index a373d5e8..00000000 --- a/deps/glslang/Test/spv.viewportArray2.vert +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 -#extension GL_ARB_shader_viewport_layer_array : require -#extension GL_NV_viewport_array2 : require - -layout (viewport_relative) out highp int gl_Layer; -void main() -{ - gl_ViewportMask[0] = 1; - gl_ViewportIndex = 2; -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.viewportindex.tese b/deps/glslang/Test/spv.viewportindex.tese deleted file mode 100644 index 0da4cc86..00000000 --- a/deps/glslang/Test/spv.viewportindex.tese +++ /dev/null @@ -1,8 +0,0 @@ -#version 450 - -#extension GL_ARB_shader_viewport_layer_array : require - -layout(triangles) in; -void main() { - gl_ViewportIndex = 1; -} diff --git a/deps/glslang/Test/spv.voidFunction.frag b/deps/glslang/Test/spv.voidFunction.frag deleted file mode 100644 index 228ea1ff..00000000 --- a/deps/glslang/Test/spv.voidFunction.frag +++ /dev/null @@ -1,34 +0,0 @@ -#version 400 - -in vec4 bigColor; -in vec4 BaseColor; -in float d; - -float bar = 2.0; - -void foo() -{ - bar++; - - return; -} - -void foo2() -{ - bar++; -} - -void main() -{ - vec4 outColor = bigColor; - - foo(); - - foo2(); - - outColor.x += bar; - - gl_FragColor = outColor; - - return; -} diff --git a/deps/glslang/Test/spv.volatileAtomic.comp b/deps/glslang/Test/spv.volatileAtomic.comp deleted file mode 100644 index 2b7e6c62..00000000 --- a/deps/glslang/Test/spv.volatileAtomic.comp +++ /dev/null @@ -1,8 +0,0 @@ -#version 450 core - -layout(set=0, binding=3) volatile buffer D { uint d[]; } d; - -void main() -{ - atomicExchange(d.d[0], 0); -} diff --git a/deps/glslang/Test/spv.vulkan100.subgroupArithmetic.comp b/deps/glslang/Test/spv.vulkan100.subgroupArithmetic.comp deleted file mode 100644 index 6cc9337b..00000000 --- a/deps/glslang/Test/spv.vulkan100.subgroupArithmetic.comp +++ /dev/null @@ -1,393 +0,0 @@ -#version 450 - -#extension GL_KHR_shader_subgroup_arithmetic: enable - -layout (local_size_x = 8) in; - -layout(binding = 0) buffer Buffers -{ - vec4 f4; - ivec4 i4; - uvec4 u4; - dvec4 d4; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; - - data[invocation].f4.x = subgroupAdd(data[0].f4.x); - data[invocation].f4.xy = subgroupAdd(data[1].f4.xy); - data[invocation].f4.xyz = subgroupAdd(data[2].f4.xyz); - data[invocation].f4 = subgroupAdd(data[3].f4); - - data[invocation].i4.x = subgroupAdd(data[0].i4.x); - data[invocation].i4.xy = subgroupAdd(data[1].i4.xy); - data[invocation].i4.xyz = subgroupAdd(data[2].i4.xyz); - data[invocation].i4 = subgroupAdd(data[3].i4); - - data[invocation].u4.x = subgroupAdd(data[0].u4.x); - data[invocation].u4.xy = subgroupAdd(data[1].u4.xy); - data[invocation].u4.xyz = subgroupAdd(data[2].u4.xyz); - data[invocation].u4 = subgroupAdd(data[3].u4); - - data[invocation].d4.x = subgroupAdd(data[0].d4.x); - data[invocation].d4.xy = subgroupAdd(data[1].d4.xy); - data[invocation].d4.xyz = subgroupAdd(data[2].d4.xyz); - data[invocation].d4 = subgroupAdd(data[3].d4); - - data[invocation].f4.x = subgroupMul(data[0].f4.x); - data[invocation].f4.xy = subgroupMul(data[1].f4.xy); - data[invocation].f4.xyz = subgroupMul(data[2].f4.xyz); - data[invocation].f4 = subgroupMul(data[3].f4); - - data[invocation].i4.x = subgroupMul(data[0].i4.x); - data[invocation].i4.xy = subgroupMul(data[1].i4.xy); - data[invocation].i4.xyz = subgroupMul(data[2].i4.xyz); - data[invocation].i4 = subgroupMul(data[3].i4); - - data[invocation].u4.x = subgroupMul(data[0].u4.x); - data[invocation].u4.xy = subgroupMul(data[1].u4.xy); - data[invocation].u4.xyz = subgroupMul(data[2].u4.xyz); - data[invocation].u4 = subgroupMul(data[3].u4); - - data[invocation].d4.x = subgroupMul(data[0].d4.x); - data[invocation].d4.xy = subgroupMul(data[1].d4.xy); - data[invocation].d4.xyz = subgroupMul(data[2].d4.xyz); - data[invocation].d4 = subgroupMul(data[3].d4); - - data[invocation].f4.x = subgroupMin(data[0].f4.x); - data[invocation].f4.xy = subgroupMin(data[1].f4.xy); - data[invocation].f4.xyz = subgroupMin(data[2].f4.xyz); - data[invocation].f4 = subgroupMin(data[3].f4); - - data[invocation].i4.x = subgroupMin(data[0].i4.x); - data[invocation].i4.xy = subgroupMin(data[1].i4.xy); - data[invocation].i4.xyz = subgroupMin(data[2].i4.xyz); - data[invocation].i4 = subgroupMin(data[3].i4); - - data[invocation].u4.x = subgroupMin(data[0].u4.x); - data[invocation].u4.xy = subgroupMin(data[1].u4.xy); - data[invocation].u4.xyz = subgroupMin(data[2].u4.xyz); - data[invocation].u4 = subgroupMin(data[3].u4); - - data[invocation].d4.x = subgroupMin(data[0].d4.x); - data[invocation].d4.xy = subgroupMin(data[1].d4.xy); - data[invocation].d4.xyz = subgroupMin(data[2].d4.xyz); - data[invocation].d4 = subgroupMin(data[3].d4); - - data[invocation].f4.x = subgroupMax(data[0].f4.x); - data[invocation].f4.xy = subgroupMax(data[1].f4.xy); - data[invocation].f4.xyz = subgroupMax(data[2].f4.xyz); - data[invocation].f4 = subgroupMax(data[3].f4); - - data[invocation].i4.x = subgroupMax(data[0].i4.x); - data[invocation].i4.xy = subgroupMax(data[1].i4.xy); - data[invocation].i4.xyz = subgroupMax(data[2].i4.xyz); - data[invocation].i4 = subgroupMax(data[3].i4); - - data[invocation].u4.x = subgroupMax(data[0].u4.x); - data[invocation].u4.xy = subgroupMax(data[1].u4.xy); - data[invocation].u4.xyz = subgroupMax(data[2].u4.xyz); - data[invocation].u4 = subgroupMax(data[3].u4); - - data[invocation].d4.x = subgroupMax(data[0].d4.x); - data[invocation].d4.xy = subgroupMax(data[1].d4.xy); - data[invocation].d4.xyz = subgroupMax(data[2].d4.xyz); - data[invocation].d4 = subgroupMax(data[3].d4); - - data[invocation].i4.x = subgroupAnd(data[0].i4.x); - data[invocation].i4.xy = subgroupAnd(data[1].i4.xy); - data[invocation].i4.xyz = subgroupAnd(data[2].i4.xyz); - data[invocation].i4 = subgroupAnd(data[3].i4); - - data[invocation].u4.x = subgroupAnd(data[0].u4.x); - data[invocation].u4.xy = subgroupAnd(data[1].u4.xy); - data[invocation].u4.xyz = subgroupAnd(data[2].u4.xyz); - data[invocation].u4 = subgroupAnd(data[3].u4); - - data[invocation].i4.x = int(subgroupAnd(data[0].i4.x < 0)); - data[invocation].i4.xy = ivec2(subgroupAnd(lessThan(data[1].i4.xy, ivec2(0)))); - data[invocation].i4.xyz = ivec3(subgroupAnd(lessThan(data[1].i4.xyz, ivec3(0)))); - data[invocation].i4 = ivec4(subgroupAnd(lessThan(data[1].i4, ivec4(0)))); - - data[invocation].i4.x = subgroupOr(data[0].i4.x); - data[invocation].i4.xy = subgroupOr(data[1].i4.xy); - data[invocation].i4.xyz = subgroupOr(data[2].i4.xyz); - data[invocation].i4 = subgroupOr(data[3].i4); - - data[invocation].u4.x = subgroupOr(data[0].u4.x); - data[invocation].u4.xy = subgroupOr(data[1].u4.xy); - data[invocation].u4.xyz = subgroupOr(data[2].u4.xyz); - data[invocation].u4 = subgroupOr(data[3].u4); - - data[invocation].i4.x = int(subgroupOr(data[0].i4.x < 0)); - data[invocation].i4.xy = ivec2(subgroupOr(lessThan(data[1].i4.xy, ivec2(0)))); - data[invocation].i4.xyz = ivec3(subgroupOr(lessThan(data[1].i4.xyz, ivec3(0)))); - data[invocation].i4 = ivec4(subgroupOr(lessThan(data[1].i4, ivec4(0)))); - - data[invocation].i4.x = subgroupXor(data[0].i4.x); - data[invocation].i4.xy = subgroupXor(data[1].i4.xy); - data[invocation].i4.xyz = subgroupXor(data[2].i4.xyz); - data[invocation].i4 = subgroupXor(data[3].i4); - - data[invocation].u4.x = subgroupXor(data[0].u4.x); - data[invocation].u4.xy = subgroupXor(data[1].u4.xy); - data[invocation].u4.xyz = subgroupXor(data[2].u4.xyz); - data[invocation].u4 = subgroupXor(data[3].u4); - - data[invocation].i4.x = int(subgroupXor(data[0].i4.x < 0)); - data[invocation].i4.xy = ivec2(subgroupXor(lessThan(data[1].i4.xy, ivec2(0)))); - data[invocation].i4.xyz = ivec3(subgroupXor(lessThan(data[1].i4.xyz, ivec3(0)))); - data[invocation].i4 = ivec4(subgroupXor(lessThan(data[1].i4, ivec4(0)))); - - data[invocation].f4.x = subgroupInclusiveAdd(data[0].f4.x); - data[invocation].f4.xy = subgroupInclusiveAdd(data[1].f4.xy); - data[invocation].f4.xyz = subgroupInclusiveAdd(data[2].f4.xyz); - data[invocation].f4 = subgroupInclusiveAdd(data[3].f4); - - data[invocation].i4.x = subgroupInclusiveAdd(data[0].i4.x); - data[invocation].i4.xy = subgroupInclusiveAdd(data[1].i4.xy); - data[invocation].i4.xyz = subgroupInclusiveAdd(data[2].i4.xyz); - data[invocation].i4 = subgroupInclusiveAdd(data[3].i4); - - data[invocation].u4.x = subgroupInclusiveAdd(data[0].u4.x); - data[invocation].u4.xy = subgroupInclusiveAdd(data[1].u4.xy); - data[invocation].u4.xyz = subgroupInclusiveAdd(data[2].u4.xyz); - data[invocation].u4 = subgroupInclusiveAdd(data[3].u4); - - data[invocation].d4.x = subgroupInclusiveAdd(data[0].d4.x); - data[invocation].d4.xy = subgroupInclusiveAdd(data[1].d4.xy); - data[invocation].d4.xyz = subgroupInclusiveAdd(data[2].d4.xyz); - data[invocation].d4 = subgroupInclusiveAdd(data[3].d4); - - data[invocation].f4.x = subgroupInclusiveMul(data[0].f4.x); - data[invocation].f4.xy = subgroupInclusiveMul(data[1].f4.xy); - data[invocation].f4.xyz = subgroupInclusiveMul(data[2].f4.xyz); - data[invocation].f4 = subgroupInclusiveMul(data[3].f4); - - data[invocation].i4.x = subgroupInclusiveMul(data[0].i4.x); - data[invocation].i4.xy = subgroupInclusiveMul(data[1].i4.xy); - data[invocation].i4.xyz = subgroupInclusiveMul(data[2].i4.xyz); - data[invocation].i4 = subgroupInclusiveMul(data[3].i4); - - data[invocation].u4.x = subgroupInclusiveMul(data[0].u4.x); - data[invocation].u4.xy = subgroupInclusiveMul(data[1].u4.xy); - data[invocation].u4.xyz = subgroupInclusiveMul(data[2].u4.xyz); - data[invocation].u4 = subgroupInclusiveMul(data[3].u4); - - data[invocation].d4.x = subgroupInclusiveMul(data[0].d4.x); - data[invocation].d4.xy = subgroupInclusiveMul(data[1].d4.xy); - data[invocation].d4.xyz = subgroupInclusiveMul(data[2].d4.xyz); - data[invocation].d4 = subgroupInclusiveMul(data[3].d4); - - data[invocation].f4.x = subgroupInclusiveMin(data[0].f4.x); - data[invocation].f4.xy = subgroupInclusiveMin(data[1].f4.xy); - data[invocation].f4.xyz = subgroupInclusiveMin(data[2].f4.xyz); - data[invocation].f4 = subgroupInclusiveMin(data[3].f4); - - data[invocation].i4.x = subgroupInclusiveMin(data[0].i4.x); - data[invocation].i4.xy = subgroupInclusiveMin(data[1].i4.xy); - data[invocation].i4.xyz = subgroupInclusiveMin(data[2].i4.xyz); - data[invocation].i4 = subgroupInclusiveMin(data[3].i4); - - data[invocation].u4.x = subgroupInclusiveMin(data[0].u4.x); - data[invocation].u4.xy = subgroupInclusiveMin(data[1].u4.xy); - data[invocation].u4.xyz = subgroupInclusiveMin(data[2].u4.xyz); - data[invocation].u4 = subgroupInclusiveMin(data[3].u4); - - data[invocation].d4.x = subgroupInclusiveMin(data[0].d4.x); - data[invocation].d4.xy = subgroupInclusiveMin(data[1].d4.xy); - data[invocation].d4.xyz = subgroupInclusiveMin(data[2].d4.xyz); - data[invocation].d4 = subgroupInclusiveMin(data[3].d4); - - data[invocation].f4.x = subgroupInclusiveMax(data[0].f4.x); - data[invocation].f4.xy = subgroupInclusiveMax(data[1].f4.xy); - data[invocation].f4.xyz = subgroupInclusiveMax(data[2].f4.xyz); - data[invocation].f4 = subgroupInclusiveMax(data[3].f4); - - data[invocation].i4.x = subgroupInclusiveMax(data[0].i4.x); - data[invocation].i4.xy = subgroupInclusiveMax(data[1].i4.xy); - data[invocation].i4.xyz = subgroupInclusiveMax(data[2].i4.xyz); - data[invocation].i4 = subgroupInclusiveMax(data[3].i4); - - data[invocation].u4.x = subgroupInclusiveMax(data[0].u4.x); - data[invocation].u4.xy = subgroupInclusiveMax(data[1].u4.xy); - data[invocation].u4.xyz = subgroupInclusiveMax(data[2].u4.xyz); - data[invocation].u4 = subgroupInclusiveMax(data[3].u4); - - data[invocation].d4.x = subgroupInclusiveMax(data[0].d4.x); - data[invocation].d4.xy = subgroupInclusiveMax(data[1].d4.xy); - data[invocation].d4.xyz = subgroupInclusiveMax(data[2].d4.xyz); - data[invocation].d4 = subgroupInclusiveMax(data[3].d4); - - data[invocation].i4.x = subgroupInclusiveAnd(data[0].i4.x); - data[invocation].i4.xy = subgroupInclusiveAnd(data[1].i4.xy); - data[invocation].i4.xyz = subgroupInclusiveAnd(data[2].i4.xyz); - data[invocation].i4 = subgroupInclusiveAnd(data[3].i4); - - data[invocation].u4.x = subgroupInclusiveAnd(data[0].u4.x); - data[invocation].u4.xy = subgroupInclusiveAnd(data[1].u4.xy); - data[invocation].u4.xyz = subgroupInclusiveAnd(data[2].u4.xyz); - data[invocation].u4 = subgroupInclusiveAnd(data[3].u4); - - data[invocation].i4.x = int(subgroupInclusiveAnd(data[0].i4.x < 0)); - data[invocation].i4.xy = ivec2(subgroupInclusiveAnd(lessThan(data[1].i4.xy, ivec2(0)))); - data[invocation].i4.xyz = ivec3(subgroupInclusiveAnd(lessThan(data[1].i4.xyz, ivec3(0)))); - data[invocation].i4 = ivec4(subgroupInclusiveAnd(lessThan(data[1].i4, ivec4(0)))); - - data[invocation].i4.x = subgroupInclusiveOr(data[0].i4.x); - data[invocation].i4.xy = subgroupInclusiveOr(data[1].i4.xy); - data[invocation].i4.xyz = subgroupInclusiveOr(data[2].i4.xyz); - data[invocation].i4 = subgroupInclusiveOr(data[3].i4); - - data[invocation].u4.x = subgroupInclusiveOr(data[0].u4.x); - data[invocation].u4.xy = subgroupInclusiveOr(data[1].u4.xy); - data[invocation].u4.xyz = subgroupInclusiveOr(data[2].u4.xyz); - data[invocation].u4 = subgroupInclusiveOr(data[3].u4); - - data[invocation].i4.x = int(subgroupInclusiveOr(data[0].i4.x < 0)); - data[invocation].i4.xy = ivec2(subgroupInclusiveOr(lessThan(data[1].i4.xy, ivec2(0)))); - data[invocation].i4.xyz = ivec3(subgroupInclusiveOr(lessThan(data[1].i4.xyz, ivec3(0)))); - data[invocation].i4 = ivec4(subgroupInclusiveOr(lessThan(data[1].i4, ivec4(0)))); - - data[invocation].i4.x = subgroupInclusiveXor(data[0].i4.x); - data[invocation].i4.xy = subgroupInclusiveXor(data[1].i4.xy); - data[invocation].i4.xyz = subgroupInclusiveXor(data[2].i4.xyz); - data[invocation].i4 = subgroupInclusiveXor(data[3].i4); - - data[invocation].u4.x = subgroupInclusiveXor(data[0].u4.x); - data[invocation].u4.xy = subgroupInclusiveXor(data[1].u4.xy); - data[invocation].u4.xyz = subgroupInclusiveXor(data[2].u4.xyz); - data[invocation].u4 = subgroupInclusiveXor(data[3].u4); - - data[invocation].i4.x = int(subgroupInclusiveXor(data[0].i4.x < 0)); - data[invocation].i4.xy = ivec2(subgroupInclusiveXor(lessThan(data[1].i4.xy, ivec2(0)))); - data[invocation].i4.xyz = ivec3(subgroupInclusiveXor(lessThan(data[1].i4.xyz, ivec3(0)))); - data[invocation].i4 = ivec4(subgroupInclusiveXor(lessThan(data[1].i4, ivec4(0)))); - - data[invocation].f4.x = subgroupExclusiveAdd(data[0].f4.x); - data[invocation].f4.xy = subgroupExclusiveAdd(data[1].f4.xy); - data[invocation].f4.xyz = subgroupExclusiveAdd(data[2].f4.xyz); - data[invocation].f4 = subgroupExclusiveAdd(data[3].f4); - - data[invocation].i4.x = subgroupExclusiveAdd(data[0].i4.x); - data[invocation].i4.xy = subgroupExclusiveAdd(data[1].i4.xy); - data[invocation].i4.xyz = subgroupExclusiveAdd(data[2].i4.xyz); - data[invocation].i4 = subgroupExclusiveAdd(data[3].i4); - - data[invocation].u4.x = subgroupExclusiveAdd(data[0].u4.x); - data[invocation].u4.xy = subgroupExclusiveAdd(data[1].u4.xy); - data[invocation].u4.xyz = subgroupExclusiveAdd(data[2].u4.xyz); - data[invocation].u4 = subgroupExclusiveAdd(data[3].u4); - - data[invocation].d4.x = subgroupExclusiveAdd(data[0].d4.x); - data[invocation].d4.xy = subgroupExclusiveAdd(data[1].d4.xy); - data[invocation].d4.xyz = subgroupExclusiveAdd(data[2].d4.xyz); - data[invocation].d4 = subgroupExclusiveAdd(data[3].d4); - - data[invocation].f4.x = subgroupExclusiveMul(data[0].f4.x); - data[invocation].f4.xy = subgroupExclusiveMul(data[1].f4.xy); - data[invocation].f4.xyz = subgroupExclusiveMul(data[2].f4.xyz); - data[invocation].f4 = subgroupExclusiveMul(data[3].f4); - - data[invocation].i4.x = subgroupExclusiveMul(data[0].i4.x); - data[invocation].i4.xy = subgroupExclusiveMul(data[1].i4.xy); - data[invocation].i4.xyz = subgroupExclusiveMul(data[2].i4.xyz); - data[invocation].i4 = subgroupExclusiveMul(data[3].i4); - - data[invocation].u4.x = subgroupExclusiveMul(data[0].u4.x); - data[invocation].u4.xy = subgroupExclusiveMul(data[1].u4.xy); - data[invocation].u4.xyz = subgroupExclusiveMul(data[2].u4.xyz); - data[invocation].u4 = subgroupExclusiveMul(data[3].u4); - - data[invocation].d4.x = subgroupExclusiveMul(data[0].d4.x); - data[invocation].d4.xy = subgroupExclusiveMul(data[1].d4.xy); - data[invocation].d4.xyz = subgroupExclusiveMul(data[2].d4.xyz); - data[invocation].d4 = subgroupExclusiveMul(data[3].d4); - - data[invocation].f4.x = subgroupExclusiveMin(data[0].f4.x); - data[invocation].f4.xy = subgroupExclusiveMin(data[1].f4.xy); - data[invocation].f4.xyz = subgroupExclusiveMin(data[2].f4.xyz); - data[invocation].f4 = subgroupExclusiveMin(data[3].f4); - - data[invocation].i4.x = subgroupExclusiveMin(data[0].i4.x); - data[invocation].i4.xy = subgroupExclusiveMin(data[1].i4.xy); - data[invocation].i4.xyz = subgroupExclusiveMin(data[2].i4.xyz); - data[invocation].i4 = subgroupExclusiveMin(data[3].i4); - - data[invocation].u4.x = subgroupExclusiveMin(data[0].u4.x); - data[invocation].u4.xy = subgroupExclusiveMin(data[1].u4.xy); - data[invocation].u4.xyz = subgroupExclusiveMin(data[2].u4.xyz); - data[invocation].u4 = subgroupExclusiveMin(data[3].u4); - - data[invocation].d4.x = subgroupExclusiveMin(data[0].d4.x); - data[invocation].d4.xy = subgroupExclusiveMin(data[1].d4.xy); - data[invocation].d4.xyz = subgroupExclusiveMin(data[2].d4.xyz); - data[invocation].d4 = subgroupExclusiveMin(data[3].d4); - - data[invocation].f4.x = subgroupExclusiveMax(data[0].f4.x); - data[invocation].f4.xy = subgroupExclusiveMax(data[1].f4.xy); - data[invocation].f4.xyz = subgroupExclusiveMax(data[2].f4.xyz); - data[invocation].f4 = subgroupExclusiveMax(data[3].f4); - - data[invocation].i4.x = subgroupExclusiveMax(data[0].i4.x); - data[invocation].i4.xy = subgroupExclusiveMax(data[1].i4.xy); - data[invocation].i4.xyz = subgroupExclusiveMax(data[2].i4.xyz); - data[invocation].i4 = subgroupExclusiveMax(data[3].i4); - - data[invocation].u4.x = subgroupExclusiveMax(data[0].u4.x); - data[invocation].u4.xy = subgroupExclusiveMax(data[1].u4.xy); - data[invocation].u4.xyz = subgroupExclusiveMax(data[2].u4.xyz); - data[invocation].u4 = subgroupExclusiveMax(data[3].u4); - - data[invocation].d4.x = subgroupExclusiveMax(data[0].d4.x); - data[invocation].d4.xy = subgroupExclusiveMax(data[1].d4.xy); - data[invocation].d4.xyz = subgroupExclusiveMax(data[2].d4.xyz); - data[invocation].d4 = subgroupExclusiveMax(data[3].d4); - - data[invocation].i4.x = subgroupExclusiveAnd(data[0].i4.x); - data[invocation].i4.xy = subgroupExclusiveAnd(data[1].i4.xy); - data[invocation].i4.xyz = subgroupExclusiveAnd(data[2].i4.xyz); - data[invocation].i4 = subgroupExclusiveAnd(data[3].i4); - - data[invocation].u4.x = subgroupExclusiveAnd(data[0].u4.x); - data[invocation].u4.xy = subgroupExclusiveAnd(data[1].u4.xy); - data[invocation].u4.xyz = subgroupExclusiveAnd(data[2].u4.xyz); - data[invocation].u4 = subgroupExclusiveAnd(data[3].u4); - - data[invocation].i4.x = int(subgroupExclusiveAnd(data[0].i4.x < 0)); - data[invocation].i4.xy = ivec2(subgroupExclusiveAnd(lessThan(data[1].i4.xy, ivec2(0)))); - data[invocation].i4.xyz = ivec3(subgroupExclusiveAnd(lessThan(data[1].i4.xyz, ivec3(0)))); - data[invocation].i4 = ivec4(subgroupExclusiveAnd(lessThan(data[1].i4, ivec4(0)))); - - data[invocation].i4.x = subgroupExclusiveOr(data[0].i4.x); - data[invocation].i4.xy = subgroupExclusiveOr(data[1].i4.xy); - data[invocation].i4.xyz = subgroupExclusiveOr(data[2].i4.xyz); - data[invocation].i4 = subgroupExclusiveOr(data[3].i4); - - data[invocation].u4.x = subgroupExclusiveOr(data[0].u4.x); - data[invocation].u4.xy = subgroupExclusiveOr(data[1].u4.xy); - data[invocation].u4.xyz = subgroupExclusiveOr(data[2].u4.xyz); - data[invocation].u4 = subgroupExclusiveOr(data[3].u4); - - data[invocation].i4.x = int(subgroupExclusiveOr(data[0].i4.x < 0)); - data[invocation].i4.xy = ivec2(subgroupExclusiveOr(lessThan(data[1].i4.xy, ivec2(0)))); - data[invocation].i4.xyz = ivec3(subgroupExclusiveOr(lessThan(data[1].i4.xyz, ivec3(0)))); - data[invocation].i4 = ivec4(subgroupExclusiveOr(lessThan(data[1].i4, ivec4(0)))); - - data[invocation].i4.x = subgroupExclusiveXor(data[0].i4.x); - data[invocation].i4.xy = subgroupExclusiveXor(data[1].i4.xy); - data[invocation].i4.xyz = subgroupExclusiveXor(data[2].i4.xyz); - data[invocation].i4 = subgroupExclusiveXor(data[3].i4); - - data[invocation].u4.x = subgroupExclusiveXor(data[0].u4.x); - data[invocation].u4.xy = subgroupExclusiveXor(data[1].u4.xy); - data[invocation].u4.xyz = subgroupExclusiveXor(data[2].u4.xyz); - data[invocation].u4 = subgroupExclusiveXor(data[3].u4); - - data[invocation].i4.x = int(subgroupExclusiveXor(data[0].i4.x < 0)); - data[invocation].i4.xy = ivec2(subgroupExclusiveXor(lessThan(data[1].i4.xy, ivec2(0)))); - data[invocation].i4.xyz = ivec3(subgroupExclusiveXor(lessThan(data[1].i4.xyz, ivec3(0)))); - data[invocation].i4 = ivec4(subgroupExclusiveXor(lessThan(data[1].i4, ivec4(0)))); -} diff --git a/deps/glslang/Test/spv.vulkan100.subgroupPartitioned.comp b/deps/glslang/Test/spv.vulkan100.subgroupPartitioned.comp deleted file mode 100644 index 604833e0..00000000 --- a/deps/glslang/Test/spv.vulkan100.subgroupPartitioned.comp +++ /dev/null @@ -1,420 +0,0 @@ -#version 450 - -#extension GL_NV_shader_subgroup_partitioned: enable - -layout (local_size_x = 8) in; - -layout(binding = 0) buffer Buffers -{ - vec4 f4; - ivec4 i4; - uvec4 u4; - dvec4 d4; -} data[4]; - -void main() -{ - uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; - - uvec4 ballot = subgroupPartitionNV(invocation); - - data[invocation].u4 = subgroupPartitionNV(data[0].f4.x); - data[invocation].u4 = subgroupPartitionNV(data[0].f4.xy); - data[invocation].u4 = subgroupPartitionNV(data[0].f4.xyz); - data[invocation].u4 = subgroupPartitionNV(data[0].f4); - - data[invocation].u4 = subgroupPartitionNV(data[0].i4.x); - data[invocation].u4 = subgroupPartitionNV(data[0].i4.xy); - data[invocation].u4 = subgroupPartitionNV(data[0].i4.xyz); - data[invocation].u4 = subgroupPartitionNV(data[0].i4); - - data[invocation].u4 = subgroupPartitionNV(data[0].u4.x); - data[invocation].u4 = subgroupPartitionNV(data[0].u4.xy); - data[invocation].u4 = subgroupPartitionNV(data[0].u4.xyz); - data[invocation].u4 = subgroupPartitionNV(data[0].u4); - - data[invocation].u4 = subgroupPartitionNV(data[0].d4.x); - data[invocation].u4 = subgroupPartitionNV(data[0].d4.xy); - data[invocation].u4 = subgroupPartitionNV(data[0].d4.xyz); - data[invocation].u4 = subgroupPartitionNV(data[0].d4); - - data[invocation].u4 = subgroupPartitionNV(bool(data[0].i4.x)); - data[invocation].u4 = subgroupPartitionNV(bvec2(data[0].i4.xy)); - data[invocation].u4 = subgroupPartitionNV(bvec3(data[0].i4.xyz)); - data[invocation].u4 = subgroupPartitionNV(bvec4(data[0].i4)); - - data[invocation].f4.x = subgroupPartitionedAddNV(data[0].f4.x, ballot); - data[invocation].f4.xy = subgroupPartitionedAddNV(data[1].f4.xy, ballot); - data[invocation].f4.xyz = subgroupPartitionedAddNV(data[2].f4.xyz, ballot); - data[invocation].f4 = subgroupPartitionedAddNV(data[3].f4, ballot); - - data[invocation].i4.x = subgroupPartitionedAddNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedAddNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedAddNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedAddNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedAddNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedAddNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedAddNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedAddNV(data[3].u4, ballot); - - data[invocation].d4.x = subgroupPartitionedAddNV(data[0].d4.x, ballot); - data[invocation].d4.xy = subgroupPartitionedAddNV(data[1].d4.xy, ballot); - data[invocation].d4.xyz = subgroupPartitionedAddNV(data[2].d4.xyz, ballot); - data[invocation].d4 = subgroupPartitionedAddNV(data[3].d4, ballot); - - data[invocation].f4.x = subgroupPartitionedMulNV(data[0].f4.x, ballot); - data[invocation].f4.xy = subgroupPartitionedMulNV(data[1].f4.xy, ballot); - data[invocation].f4.xyz = subgroupPartitionedMulNV(data[2].f4.xyz, ballot); - data[invocation].f4 = subgroupPartitionedMulNV(data[3].f4, ballot); - - data[invocation].i4.x = subgroupPartitionedMulNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedMulNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedMulNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedMulNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedMulNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedMulNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedMulNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedMulNV(data[3].u4, ballot); - - data[invocation].d4.x = subgroupPartitionedMulNV(data[0].d4.x, ballot); - data[invocation].d4.xy = subgroupPartitionedMulNV(data[1].d4.xy, ballot); - data[invocation].d4.xyz = subgroupPartitionedMulNV(data[2].d4.xyz, ballot); - data[invocation].d4 = subgroupPartitionedMulNV(data[3].d4, ballot); - - data[invocation].f4.x = subgroupPartitionedMinNV(data[0].f4.x, ballot); - data[invocation].f4.xy = subgroupPartitionedMinNV(data[1].f4.xy, ballot); - data[invocation].f4.xyz = subgroupPartitionedMinNV(data[2].f4.xyz, ballot); - data[invocation].f4 = subgroupPartitionedMinNV(data[3].f4, ballot); - - data[invocation].i4.x = subgroupPartitionedMinNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedMinNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedMinNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedMinNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedMinNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedMinNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedMinNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedMinNV(data[3].u4, ballot); - - data[invocation].d4.x = subgroupPartitionedMinNV(data[0].d4.x, ballot); - data[invocation].d4.xy = subgroupPartitionedMinNV(data[1].d4.xy, ballot); - data[invocation].d4.xyz = subgroupPartitionedMinNV(data[2].d4.xyz, ballot); - data[invocation].d4 = subgroupPartitionedMinNV(data[3].d4, ballot); - - data[invocation].f4.x = subgroupPartitionedMaxNV(data[0].f4.x, ballot); - data[invocation].f4.xy = subgroupPartitionedMaxNV(data[1].f4.xy, ballot); - data[invocation].f4.xyz = subgroupPartitionedMaxNV(data[2].f4.xyz, ballot); - data[invocation].f4 = subgroupPartitionedMaxNV(data[3].f4, ballot); - - data[invocation].i4.x = subgroupPartitionedMaxNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedMaxNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedMaxNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedMaxNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedMaxNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedMaxNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedMaxNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedMaxNV(data[3].u4, ballot); - - data[invocation].d4.x = subgroupPartitionedMaxNV(data[0].d4.x, ballot); - data[invocation].d4.xy = subgroupPartitionedMaxNV(data[1].d4.xy, ballot); - data[invocation].d4.xyz = subgroupPartitionedMaxNV(data[2].d4.xyz, ballot); - data[invocation].d4 = subgroupPartitionedMaxNV(data[3].d4, ballot); - - data[invocation].i4.x = subgroupPartitionedAndNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedAndNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedAndNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedAndNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedAndNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedAndNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedAndNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedAndNV(data[3].u4, ballot); - - data[invocation].i4.x = int(subgroupPartitionedAndNV(data[0].i4.x < 0, ballot)); - data[invocation].i4.xy = ivec2(subgroupPartitionedAndNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); - data[invocation].i4.xyz = ivec3(subgroupPartitionedAndNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); - data[invocation].i4 = ivec4(subgroupPartitionedAndNV(lessThan(data[1].i4, ivec4(0)), ballot)); - - data[invocation].i4.x = subgroupPartitionedOrNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedOrNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedOrNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedOrNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedOrNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedOrNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedOrNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedOrNV(data[3].u4, ballot); - - data[invocation].i4.x = int(subgroupPartitionedOrNV(data[0].i4.x < 0, ballot)); - data[invocation].i4.xy = ivec2(subgroupPartitionedOrNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); - data[invocation].i4.xyz = ivec3(subgroupPartitionedOrNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); - data[invocation].i4 = ivec4(subgroupPartitionedOrNV(lessThan(data[1].i4, ivec4(0)), ballot)); - - data[invocation].i4.x = subgroupPartitionedXorNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedXorNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedXorNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedXorNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedXorNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedXorNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedXorNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedXorNV(data[3].u4, ballot); - - data[invocation].i4.x = int(subgroupPartitionedXorNV(data[0].i4.x < 0, ballot)); - data[invocation].i4.xy = ivec2(subgroupPartitionedXorNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); - data[invocation].i4.xyz = ivec3(subgroupPartitionedXorNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); - data[invocation].i4 = ivec4(subgroupPartitionedXorNV(lessThan(data[1].i4, ivec4(0)), ballot)); - - data[invocation].f4.x = subgroupPartitionedInclusiveAddNV(data[0].f4.x, ballot); - data[invocation].f4.xy = subgroupPartitionedInclusiveAddNV(data[1].f4.xy, ballot); - data[invocation].f4.xyz = subgroupPartitionedInclusiveAddNV(data[2].f4.xyz, ballot); - data[invocation].f4 = subgroupPartitionedInclusiveAddNV(data[3].f4, ballot); - - data[invocation].i4.x = subgroupPartitionedInclusiveAddNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedInclusiveAddNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedInclusiveAddNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedInclusiveAddNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedInclusiveAddNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedInclusiveAddNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedInclusiveAddNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedInclusiveAddNV(data[3].u4, ballot); - - data[invocation].d4.x = subgroupPartitionedInclusiveAddNV(data[0].d4.x, ballot); - data[invocation].d4.xy = subgroupPartitionedInclusiveAddNV(data[1].d4.xy, ballot); - data[invocation].d4.xyz = subgroupPartitionedInclusiveAddNV(data[2].d4.xyz, ballot); - data[invocation].d4 = subgroupPartitionedInclusiveAddNV(data[3].d4, ballot); - - data[invocation].f4.x = subgroupPartitionedInclusiveMulNV(data[0].f4.x, ballot); - data[invocation].f4.xy = subgroupPartitionedInclusiveMulNV(data[1].f4.xy, ballot); - data[invocation].f4.xyz = subgroupPartitionedInclusiveMulNV(data[2].f4.xyz, ballot); - data[invocation].f4 = subgroupPartitionedInclusiveMulNV(data[3].f4, ballot); - - data[invocation].i4.x = subgroupPartitionedInclusiveMulNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedInclusiveMulNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedInclusiveMulNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedInclusiveMulNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedInclusiveMulNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedInclusiveMulNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedInclusiveMulNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedInclusiveMulNV(data[3].u4, ballot); - - data[invocation].d4.x = subgroupPartitionedInclusiveMulNV(data[0].d4.x, ballot); - data[invocation].d4.xy = subgroupPartitionedInclusiveMulNV(data[1].d4.xy, ballot); - data[invocation].d4.xyz = subgroupPartitionedInclusiveMulNV(data[2].d4.xyz, ballot); - data[invocation].d4 = subgroupPartitionedInclusiveMulNV(data[3].d4, ballot); - - data[invocation].f4.x = subgroupPartitionedInclusiveMinNV(data[0].f4.x, ballot); - data[invocation].f4.xy = subgroupPartitionedInclusiveMinNV(data[1].f4.xy, ballot); - data[invocation].f4.xyz = subgroupPartitionedInclusiveMinNV(data[2].f4.xyz, ballot); - data[invocation].f4 = subgroupPartitionedInclusiveMinNV(data[3].f4, ballot); - - data[invocation].i4.x = subgroupPartitionedInclusiveMinNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedInclusiveMinNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedInclusiveMinNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedInclusiveMinNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedInclusiveMinNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedInclusiveMinNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedInclusiveMinNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedInclusiveMinNV(data[3].u4, ballot); - - data[invocation].d4.x = subgroupPartitionedInclusiveMinNV(data[0].d4.x, ballot); - data[invocation].d4.xy = subgroupPartitionedInclusiveMinNV(data[1].d4.xy, ballot); - data[invocation].d4.xyz = subgroupPartitionedInclusiveMinNV(data[2].d4.xyz, ballot); - data[invocation].d4 = subgroupPartitionedInclusiveMinNV(data[3].d4, ballot); - - data[invocation].f4.x = subgroupPartitionedInclusiveMaxNV(data[0].f4.x, ballot); - data[invocation].f4.xy = subgroupPartitionedInclusiveMaxNV(data[1].f4.xy, ballot); - data[invocation].f4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].f4.xyz, ballot); - data[invocation].f4 = subgroupPartitionedInclusiveMaxNV(data[3].f4, ballot); - - data[invocation].i4.x = subgroupPartitionedInclusiveMaxNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedInclusiveMaxNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedInclusiveMaxNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedInclusiveMaxNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedInclusiveMaxNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedInclusiveMaxNV(data[3].u4, ballot); - - data[invocation].d4.x = subgroupPartitionedInclusiveMaxNV(data[0].d4.x, ballot); - data[invocation].d4.xy = subgroupPartitionedInclusiveMaxNV(data[1].d4.xy, ballot); - data[invocation].d4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].d4.xyz, ballot); - data[invocation].d4 = subgroupPartitionedInclusiveMaxNV(data[3].d4, ballot); - - data[invocation].i4.x = subgroupPartitionedInclusiveAndNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedInclusiveAndNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedInclusiveAndNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedInclusiveAndNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedInclusiveAndNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedInclusiveAndNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedInclusiveAndNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedInclusiveAndNV(data[3].u4, ballot); - - data[invocation].i4.x = int(subgroupPartitionedInclusiveAndNV(data[0].i4.x < 0, ballot)); - data[invocation].i4.xy = ivec2(subgroupPartitionedInclusiveAndNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); - data[invocation].i4.xyz = ivec3(subgroupPartitionedInclusiveAndNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); - data[invocation].i4 = ivec4(subgroupPartitionedInclusiveAndNV(lessThan(data[1].i4, ivec4(0)), ballot)); - - data[invocation].i4.x = subgroupPartitionedInclusiveOrNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedInclusiveOrNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedInclusiveOrNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedInclusiveOrNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedInclusiveOrNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedInclusiveOrNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedInclusiveOrNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedInclusiveOrNV(data[3].u4, ballot); - - data[invocation].i4.x = int(subgroupPartitionedInclusiveOrNV(data[0].i4.x < 0, ballot)); - data[invocation].i4.xy = ivec2(subgroupPartitionedInclusiveOrNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); - data[invocation].i4.xyz = ivec3(subgroupPartitionedInclusiveOrNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); - data[invocation].i4 = ivec4(subgroupPartitionedInclusiveOrNV(lessThan(data[1].i4, ivec4(0)), ballot)); - - data[invocation].i4.x = subgroupPartitionedInclusiveXorNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedInclusiveXorNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedInclusiveXorNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedInclusiveXorNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedInclusiveXorNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedInclusiveXorNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedInclusiveXorNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedInclusiveXorNV(data[3].u4, ballot); - - data[invocation].i4.x = int(subgroupPartitionedInclusiveXorNV(data[0].i4.x < 0, ballot)); - data[invocation].i4.xy = ivec2(subgroupPartitionedInclusiveXorNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); - data[invocation].i4.xyz = ivec3(subgroupPartitionedInclusiveXorNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); - data[invocation].i4 = ivec4(subgroupPartitionedInclusiveXorNV(lessThan(data[1].i4, ivec4(0)), ballot)); - - data[invocation].f4.x = subgroupPartitionedExclusiveAddNV(data[0].f4.x, ballot); - data[invocation].f4.xy = subgroupPartitionedExclusiveAddNV(data[1].f4.xy, ballot); - data[invocation].f4.xyz = subgroupPartitionedExclusiveAddNV(data[2].f4.xyz, ballot); - data[invocation].f4 = subgroupPartitionedExclusiveAddNV(data[3].f4, ballot); - - data[invocation].i4.x = subgroupPartitionedExclusiveAddNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedExclusiveAddNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedExclusiveAddNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedExclusiveAddNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedExclusiveAddNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedExclusiveAddNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedExclusiveAddNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedExclusiveAddNV(data[3].u4, ballot); - - data[invocation].d4.x = subgroupPartitionedExclusiveAddNV(data[0].d4.x, ballot); - data[invocation].d4.xy = subgroupPartitionedExclusiveAddNV(data[1].d4.xy, ballot); - data[invocation].d4.xyz = subgroupPartitionedExclusiveAddNV(data[2].d4.xyz, ballot); - data[invocation].d4 = subgroupPartitionedExclusiveAddNV(data[3].d4, ballot); - - data[invocation].f4.x = subgroupPartitionedExclusiveMulNV(data[0].f4.x, ballot); - data[invocation].f4.xy = subgroupPartitionedExclusiveMulNV(data[1].f4.xy, ballot); - data[invocation].f4.xyz = subgroupPartitionedExclusiveMulNV(data[2].f4.xyz, ballot); - data[invocation].f4 = subgroupPartitionedExclusiveMulNV(data[3].f4, ballot); - - data[invocation].i4.x = subgroupPartitionedExclusiveMulNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedExclusiveMulNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedExclusiveMulNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedExclusiveMulNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedExclusiveMulNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedExclusiveMulNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedExclusiveMulNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedExclusiveMulNV(data[3].u4, ballot); - - data[invocation].d4.x = subgroupPartitionedExclusiveMulNV(data[0].d4.x, ballot); - data[invocation].d4.xy = subgroupPartitionedExclusiveMulNV(data[1].d4.xy, ballot); - data[invocation].d4.xyz = subgroupPartitionedExclusiveMulNV(data[2].d4.xyz, ballot); - data[invocation].d4 = subgroupPartitionedExclusiveMulNV(data[3].d4, ballot); - - data[invocation].f4.x = subgroupPartitionedExclusiveMinNV(data[0].f4.x, ballot); - data[invocation].f4.xy = subgroupPartitionedExclusiveMinNV(data[1].f4.xy, ballot); - data[invocation].f4.xyz = subgroupPartitionedExclusiveMinNV(data[2].f4.xyz, ballot); - data[invocation].f4 = subgroupPartitionedExclusiveMinNV(data[3].f4, ballot); - - data[invocation].i4.x = subgroupPartitionedExclusiveMinNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedExclusiveMinNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedExclusiveMinNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedExclusiveMinNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedExclusiveMinNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedExclusiveMinNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedExclusiveMinNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedExclusiveMinNV(data[3].u4, ballot); - - data[invocation].d4.x = subgroupPartitionedExclusiveMinNV(data[0].d4.x, ballot); - data[invocation].d4.xy = subgroupPartitionedExclusiveMinNV(data[1].d4.xy, ballot); - data[invocation].d4.xyz = subgroupPartitionedExclusiveMinNV(data[2].d4.xyz, ballot); - data[invocation].d4 = subgroupPartitionedExclusiveMinNV(data[3].d4, ballot); - - data[invocation].f4.x = subgroupPartitionedExclusiveMaxNV(data[0].f4.x, ballot); - data[invocation].f4.xy = subgroupPartitionedExclusiveMaxNV(data[1].f4.xy, ballot); - data[invocation].f4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].f4.xyz, ballot); - data[invocation].f4 = subgroupPartitionedExclusiveMaxNV(data[3].f4, ballot); - - data[invocation].i4.x = subgroupPartitionedExclusiveMaxNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedExclusiveMaxNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedExclusiveMaxNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedExclusiveMaxNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedExclusiveMaxNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedExclusiveMaxNV(data[3].u4, ballot); - - data[invocation].d4.x = subgroupPartitionedExclusiveMaxNV(data[0].d4.x, ballot); - data[invocation].d4.xy = subgroupPartitionedExclusiveMaxNV(data[1].d4.xy, ballot); - data[invocation].d4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].d4.xyz, ballot); - data[invocation].d4 = subgroupPartitionedExclusiveMaxNV(data[3].d4, ballot); - - data[invocation].i4.x = subgroupPartitionedExclusiveAndNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedExclusiveAndNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedExclusiveAndNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedExclusiveAndNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedExclusiveAndNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedExclusiveAndNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedExclusiveAndNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedExclusiveAndNV(data[3].u4, ballot); - - data[invocation].i4.x = int(subgroupPartitionedExclusiveAndNV(data[0].i4.x < 0, ballot)); - data[invocation].i4.xy = ivec2(subgroupPartitionedExclusiveAndNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); - data[invocation].i4.xyz = ivec3(subgroupPartitionedExclusiveAndNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); - data[invocation].i4 = ivec4(subgroupPartitionedExclusiveAndNV(lessThan(data[1].i4, ivec4(0)), ballot)); - - data[invocation].i4.x = subgroupPartitionedExclusiveOrNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedExclusiveOrNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedExclusiveOrNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedExclusiveOrNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedExclusiveOrNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedExclusiveOrNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedExclusiveOrNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedExclusiveOrNV(data[3].u4, ballot); - - data[invocation].i4.x = int(subgroupPartitionedExclusiveOrNV(data[0].i4.x < 0, ballot)); - data[invocation].i4.xy = ivec2(subgroupPartitionedExclusiveOrNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); - data[invocation].i4.xyz = ivec3(subgroupPartitionedExclusiveOrNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); - data[invocation].i4 = ivec4(subgroupPartitionedExclusiveOrNV(lessThan(data[1].i4, ivec4(0)), ballot)); - - data[invocation].i4.x = subgroupPartitionedExclusiveXorNV(data[0].i4.x, ballot); - data[invocation].i4.xy = subgroupPartitionedExclusiveXorNV(data[1].i4.xy, ballot); - data[invocation].i4.xyz = subgroupPartitionedExclusiveXorNV(data[2].i4.xyz, ballot); - data[invocation].i4 = subgroupPartitionedExclusiveXorNV(data[3].i4, ballot); - - data[invocation].u4.x = subgroupPartitionedExclusiveXorNV(data[0].u4.x, ballot); - data[invocation].u4.xy = subgroupPartitionedExclusiveXorNV(data[1].u4.xy, ballot); - data[invocation].u4.xyz = subgroupPartitionedExclusiveXorNV(data[2].u4.xyz, ballot); - data[invocation].u4 = subgroupPartitionedExclusiveXorNV(data[3].u4, ballot); - - data[invocation].i4.x = int(subgroupPartitionedExclusiveXorNV(data[0].i4.x < 0, ballot)); - data[invocation].i4.xy = ivec2(subgroupPartitionedExclusiveXorNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); - data[invocation].i4.xyz = ivec3(subgroupPartitionedExclusiveXorNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); - data[invocation].i4 = ivec4(subgroupPartitionedExclusiveXorNV(lessThan(data[1].i4, ivec4(0)), ballot)); -} diff --git a/deps/glslang/Test/spv.vulkan110.int16.frag b/deps/glslang/Test/spv.vulkan110.int16.frag deleted file mode 100644 index 2feff4f8..00000000 --- a/deps/glslang/Test/spv.vulkan110.int16.frag +++ /dev/null @@ -1,251 +0,0 @@ -#version 450 - -#extension GL_EXT_shader_explicit_arithmetic_types: enable -#extension GL_EXT_shader_explicit_arithmetic_types_int8: require -#extension GL_EXT_shader_explicit_arithmetic_types_int16: require -#extension GL_EXT_shader_explicit_arithmetic_types_int32: require -#extension GL_EXT_shader_explicit_arithmetic_types_int64: require -#extension GL_EXT_shader_explicit_arithmetic_types_float16: require -#extension GL_EXT_shader_explicit_arithmetic_types_float32: require -#extension GL_EXT_shader_explicit_arithmetic_types_float64: require - -layout(binding = 0) uniform Uniforms -{ - uint index; -}; - -layout(std140, binding = 1) uniform Block -{ - int16_t i16; - i16vec2 i16v2; - i16vec3 i16v3; - i16vec4 i16v4; - uint16_t u16; - u16vec2 u16v2; - u16vec3 u16v3; - u16vec4 u16v4; -} block; - -void main() -{ -} - -void literal() -{ - const int16_t i16Const[3] = - { - int16_t(-0x1111), // Hex - int16_t(-1), // Dec - int16_t(040000), // Oct - }; - - int16_t i16 = i16Const[index]; - - const uint16_t u16Const[] = - { - uint16_t(0xFFFF), // Hex - uint16_t(65535), // Dec - uint16_t(077777), // Oct - }; - - uint16_t u16 = u16Const[index]; -} - -void typeCast16() -{ - i8vec2 i8v; - u8vec2 u8v; - i16vec2 i16v; - u16vec2 u16v; - i32vec2 i32v; - u32vec2 u32v; - i64vec2 i64v; - u64vec2 u64v; - f16vec2 f16v; - f32vec2 f32v; - f64vec2 f64v; - bvec2 bv; - - i32v = i16v; // int16_t -> int32_t - i32v = u16v; // uint16_t -> int32_t - u16v = i16v; // int16_t -> uint16_t - u32v = i16v; // int16_t -> uint32_t - i64v = i16v; // int16_t -> int64_t - u64v = i16v; // int16_t -> uint64_t - u32v = u16v; // uint16_t -> uint32_t - i64v = u16v; // uint16_t -> int64_t - u64v = u16v; // uint16_t -> uint64_t - f16v = i16v; // int16_t -> float16_t - f32v = i16v; // int16_t -> float32_t - f64v = i16v; // int16_t -> float64_t - f16v = u16v; // uint16_t -> float16_t - f32v = u16v; // uint16_t -> float32_t - f64v = u16v; // uint16_t -> float64_t - - i32v = i32vec2(i16v); // int16_t -> int32_t - i32v = i32vec2(u16v); // uint16_t -> int32_t - u16v = u16vec2(i16v); // int16_t -> uint16_t - u32v = u32vec2(i16v); // int16_t -> uint32_t - i64v = i64vec2(i16v); // int16_t -> int64_t - u64v = i64vec2(i16v); // int16_t -> uint64_t - u32v = u32vec2(u16v); // uint16_t -> uint32_t - i64v = i64vec2(u16v); // uint16_t -> int64_t - u64v = i64vec2(u16v); // uint16_t -> uint64_t - f16v = f16vec2(i16v); // int16_t -> float16_t - f32v = f32vec2(i16v); // int16_t -> float32_t - f64v = f64vec2(i16v); // int16_t -> float64_t - f16v = f16vec2(u16v); // uint16_t -> float16_t - f32v = f32vec2(u16v); // uint16_t -> float32_t - f64v = f64vec2(u16v); // uint16_t -> float64_t - - i8v = i8vec2(i16v); // int16_t -> int8_t - i8v = i8vec2(u16v); // uint16_t -> int8_t - u8v = u8vec2(i16v); // int16_t -> uint8_t - u8v = u8vec2(u16v); // uint16_t -> uint8_t - i16v = u8vec2(u16v); // uint16_t -> int16_t - i16v = i16vec2(bv); // bool -> int16 - u16v = u16vec2(bv); // bool -> uint16 - bv = bvec2(i16v); // int16 -> bool - bv = bvec2(u16v); // uint16 -> bool -} -void operators() -{ - u16vec3 u16v; - int16_t i16; - uvec3 uv; - int32_t i; - int64_t i64; - bool b; - - // Unary - u16v++; - i16--; - ++i16; - --u16v; - - u16v = ~u16v; - - i16 = +i16; - u16v = -u16v; - - // Arithmetic - i16 += i16; - u16v -= u16v; - i *= i16; - uv /= u16v; - uv %= i16; - - uv = u16v + uv; - i64 = i16 - i64; - uv = u16v * uv; - i64 = i16 * i64; - i = i16 % i; - - // Shift - u16v <<= i16; - i16 >>= u16v.y; - - i16 = i16 << u16v.z; - uv = u16v << i; - - // Relational - b = (u16v.x != i16); - b = (i16 == u16v.x); - b = (u16v.x > uv.y); - b = (i16 < i); - b = (u16v.y >= uv.x); - b = (i16 <= i); - - // Bitwise - uv |= i16; - i = i16 | i; - i64 &= i16; - uv = u16v & uv; - uv ^= i16; - u16v = u16v ^ i16; -} - -void builtinFuncs() -{ - i16vec2 i16v; - i16vec4 i16v4; - u16vec3 u16v; - u16vec2 u16v2; - u16vec4 u16v4; - bvec3 bv; - int16_t i16; - uint16_t u16; - int32_t i32; - uint32_t u32; - int64_t i64; - uint64_t u64; - - // abs() - i16v = abs(i16v); - - // sign() - i16 = sign(i16); - - // min() - i16v = min(i16v, i16); - i16v = min(i16v, i16vec2(-1)); - u16v = min(u16v, u16); - u16v = min(u16v, u16vec3(0)); - - // max() - i16v = max(i16v, i16); - i16v = max(i16v, i16vec2(-1)); - u16v = max(u16v, u16); - u16v = max(u16v, u16vec3(0)); - - // clamp() - i16v = clamp(i16v, -i16, i16); - i16v = clamp(i16v, -i16v, i16v); - u16v = clamp(u16v, -u16, u16); - u16v = clamp(u16v, -u16v, u16v); - - // mix() - i16 = mix(i16v.x, i16v.y, true); - i16v = mix(i16vec2(i16), i16vec2(-i16), bvec2(false)); - u16 = mix(u16v.x, u16v.y, true); - u16v = mix(u16vec3(u16), u16vec3(-u16), bvec3(false)); - - //pack - i32 = pack32(i16v); - i64 = pack64(i16v4); - u32 = pack32(u16v2); - u64 = pack64(u16v4); - - i16v = unpack16(i32); - i16v4 = unpack16(i64); - u16v2 = unpack16(u32); - u16v4 = unpack16(u64); - - // lessThan() - bv = lessThan(u16v, u16vec3(u16)); - bv.xy = lessThan(i16v, i16vec2(i16)); - - // lessThanEqual() - bv = lessThanEqual(u16v, u16vec3(u16)); - bv.xy = lessThanEqual(i16v, i16vec2(i16)); - - // greaterThan() - bv = greaterThan(u16v, u16vec3(u16)); - bv.xy = greaterThan(i16v, i16vec2(i16)); - - // greaterThanEqual() - bv = greaterThanEqual(u16v, u16vec3(u16)); - bv.xy = greaterThanEqual(i16v, i16vec2(i16)); - - // equal() - bv = equal(u16v, u16vec3(u16)); - bv.xy = equal(i16v, i16vec2(i16)); - - // notEqual() - bv = notEqual(u16v, u16vec3(u16)); - bv.xy = notEqual(i16v, i16vec2(i16)); -} - -// Type conversion for specialization constant -layout(constant_id = 100) const int16_t si16 = int16_t(-10); -layout(constant_id = 101) const uint16_t su16 = uint16_t(20); diff --git a/deps/glslang/Test/spv.vulkan110.storageBuffer.vert b/deps/glslang/Test/spv.vulkan110.storageBuffer.vert deleted file mode 100644 index 6dd629e8..00000000 --- a/deps/glslang/Test/spv.vulkan110.storageBuffer.vert +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 - -#pragma use_storage_buffer - -uniform ub { - vec4 a; -} ubi; - -buffer bb { - vec4 b; -} bbi; - -void main() -{ - gl_Position = ubi.a + bbi.b; -} diff --git a/deps/glslang/Test/spv.while-continue-break.vert b/deps/glslang/Test/spv.while-continue-break.vert deleted file mode 100644 index c81e8d28..00000000 --- a/deps/glslang/Test/spv.while-continue-break.vert +++ /dev/null @@ -1,20 +0,0 @@ -#version 310 es -void main() { - int i = 0; - int A, B, C, D; - while (i<10) { - A = 1; - if (i%2 == 0) { - B = 2; - continue; - C = 2; - } - if (i%5 == 0) { - B = 2; - break; - C = 2; - } - i++; - } - D = 3; -} diff --git a/deps/glslang/Test/spv.while-simple.vert b/deps/glslang/Test/spv.while-simple.vert deleted file mode 100644 index 0f38325d..00000000 --- a/deps/glslang/Test/spv.while-simple.vert +++ /dev/null @@ -1,7 +0,0 @@ -#version 310 es -void main() { - int i = 0; - while (i<10) { - i++; - } -} diff --git a/deps/glslang/Test/spv.whileLoop.frag b/deps/glslang/Test/spv.whileLoop.frag deleted file mode 100644 index f7b7141e..00000000 --- a/deps/glslang/Test/spv.whileLoop.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 140 - -in vec4 bigColor; -in vec4 BaseColor; -in float d; - -void main() -{ - vec4 color = BaseColor; - - while (color.x < d) { - color += bigColor; - } - - gl_FragColor = color; -} diff --git a/deps/glslang/Test/spv.xfb.vert b/deps/glslang/Test/spv.xfb.vert deleted file mode 100644 index ad762bc2..00000000 --- a/deps/glslang/Test/spv.xfb.vert +++ /dev/null @@ -1,20 +0,0 @@ -#version 450 - -layout(xfb_buffer = 3) out; -layout(xfb_stride = 48) out; -layout(xfb_offset = 12, location = 0) out float out1; - -layout(xfb_buffer = 2) out; -layout(location=1) out outXfb { - layout(xfb_buffer = 2, xfb_stride = 32, xfb_offset = 8) float out2; -}; - -layout(xfb_buffer = 1, location=3) out outXfb2 { - layout(xfb_stride = 64, xfb_offset = 60) float out3; -}; - -layout(location = 4, xfb_buffer = 0, xfb_offset = 4) out float out4; - -void main() -{ -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.xfb2.vert b/deps/glslang/Test/spv.xfb2.vert deleted file mode 100644 index 895666d9..00000000 --- a/deps/glslang/Test/spv.xfb2.vert +++ /dev/null @@ -1,18 +0,0 @@ -#version 450 - -layout (location = 0) in vec4 position; -layout (binding = 5) uniform ComponentsBlock -{ - vec4 c1; - vec2 c2; -} components; - -layout (xfb_buffer = 3, xfb_offset = 16) out gl_PerVertex -{ - vec4 gl_Position; -}; - -void main() -{ - gl_Position = position + components.c1 + vec4(components.c2, 0.0, 0.0); -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.xfb3.vert b/deps/glslang/Test/spv.xfb3.vert deleted file mode 100644 index 2eae7c9e..00000000 --- a/deps/glslang/Test/spv.xfb3.vert +++ /dev/null @@ -1,18 +0,0 @@ -#version 450 - -layout (location = 0) in vec4 position; -layout (binding = 5) uniform ComponentsBlock -{ - vec4 c1; - vec2 c2; -} components; - -layout (xfb_buffer = 3, xfb_offset = 16) out gl_PerVertex -{ - layout(xfb_stride = 80) vec4 gl_Position; -}; - -void main() -{ - gl_Position = position + components.c1 + vec4(components.c2, 0.0, 0.0); -} \ No newline at end of file diff --git a/deps/glslang/Test/spv.xfbOffsetOnBlockMembersAssignment.vert b/deps/glslang/Test/spv.xfbOffsetOnBlockMembersAssignment.vert deleted file mode 100644 index 40943f77..00000000 --- a/deps/glslang/Test/spv.xfbOffsetOnBlockMembersAssignment.vert +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 - -layout(xfb_buffer=2) out; -layout(location=5, xfb_offset=0) out block2 { - float y1_out; - vec4 y2_out; -}; - -void main() { - y1_out = 7.0; - y2_out = vec4(1.0, 0.0, 0.0, 1.0); - gl_Position = vec4(0.0); -} diff --git a/deps/glslang/Test/spv.xfbOffsetOnStructMembersAssignment.vert b/deps/glslang/Test/spv.xfbOffsetOnStructMembersAssignment.vert deleted file mode 100644 index e6619c58..00000000 --- a/deps/glslang/Test/spv.xfbOffsetOnStructMembersAssignment.vert +++ /dev/null @@ -1,23 +0,0 @@ -#version 450 - -layout(xfb_buffer=2) out; - -struct S { - float x1_out; - float x2_out; -}; - -layout(location=0, xfb_offset = 16) out S s1; - -layout(location=5, xfb_buffer=1, xfb_offset=8) out struct S2 { - float y1_out; - vec4 y2_out; -}s2; - -void main() { - s1.x1_out = 5.0; - s1.x2_out = 6.0; - s2.y1_out = 7.0; - s2.y2_out = vec4(1.0, 0.0, 0.0, 1.0); - gl_Position = vec4(0.0); -} diff --git a/deps/glslang/Test/spv.xfbOverlapOffsetCheckWithBlockAndMember.vert b/deps/glslang/Test/spv.xfbOverlapOffsetCheckWithBlockAndMember.vert deleted file mode 100644 index 3f493dc1..00000000 --- a/deps/glslang/Test/spv.xfbOverlapOffsetCheckWithBlockAndMember.vert +++ /dev/null @@ -1,19 +0,0 @@ -#version 450 - -/* block definition from GLSL spec 4.60, section 4.4.2, Output Layout Qualifiers */ - -layout(location=5, xfb_buffer = 3, xfb_offset = 12) out block2 { - vec4 v; // v will be written to byte offsets 12 through 27 of buffer - float u; // u will be written to offset 28 - layout(xfb_offset = 40) vec4 w; - vec4 x; // x will be written to offset 56, the next available offset -}; - -void main() { - v = vec4(1.0, 0.0, 1.0, 0.0); - u = 5.0; - w = vec4(1.0, 0.0, 0.0, 1.0); - x = vec4(5.0, 0.0, 0.0, 0.0); - - gl_Position = vec4(0.0); -} diff --git a/deps/glslang/Test/spv.xfbStrideJustOnce.vert b/deps/glslang/Test/spv.xfbStrideJustOnce.vert deleted file mode 100644 index 2798c6a8..00000000 --- a/deps/glslang/Test/spv.xfbStrideJustOnce.vert +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 - -layout(xfb_buffer=2) out; - -layout(location=5, xfb_stride=20) out block { - float y1_out; - vec4 y2_out; -}; - -void main() { - y1_out = 7.0; - y2_out = vec4(1.0, 0.0, 0.0, 1.0); - gl_Position = vec4(0.0); -} diff --git a/deps/glslang/Test/stringToDouble.vert b/deps/glslang/Test/stringToDouble.vert deleted file mode 100644 index a8de3b4f..00000000 --- a/deps/glslang/Test/stringToDouble.vert +++ /dev/null @@ -1,116 +0,0 @@ -#version 460 -#extension GL_EXT_shader_explicit_arithmetic_types_float16 : enable -void main() -{ - float w1 = 00000.000; - float w2 = 1.0; - float w3 = 007.00; - float w4 = 000130000.0; - float w5 = 123456789.0000; - double w6 = 1234567890123456.0; - double w7 = 12345678901234567.0; - double w8 = 123456789012345678.0; - double w9 = 12345678901234567893.0; - double w10 = 1234567890123456789012345.0; - - float e1 = 0e0; - float e2 = 1e0; - float e3 = 0e14; - float e4 = 1e15; - float e5 = 1e16; - float e6 = 0e-14; - float e7 = 1e-15; - float e8 = 1e-16; - double e9 = 1e100; - double e10 = 1e+308; - double e11 = 1e-307; // Was 1e-323, but that's flushed to zero sometimes. 1e-308 can be flushed to 0. - double e12 = 1e+309; - double e13 = 1e-324; - double e24 = 1e+999; - double e25 = 1e-999; - - double f1 = 0.5; - double f2 = 0.125; - double f31 = 0.1; - double f32 = 0.2; - double f33 = 0.3; - double f34 = 0.4; - double f35 = 0.5; - double f36 = 0.6; - double f37 = 0.7; - double f38 = 0.8; - double f39 = 0.9; - double f4 = 0.33333333333333333333333333333333333333333333333333333333333333333333333333333; - double f51 = 0.000000000000000000000000000000000000783475; - double f52 = 0.0000000000000000000000000000000000007834750; - double f53 = .00000000000000000000000000000000000078347500; - double f54 = 0.000000000000000000000000000000000000783475000000; - double f61 = 4.; - double f62 = 40.; - double f63 = 0.; - double f64 = 04.; - double f65 = .0; - double f66 = .004; - double f67 = .400; - double f68 = .04000; - - double c1 = .081e-2; - double c2 = .073e2; - double c3 = 34.5e-1; - double c4 = 35.7e-4; - double c5 = 43.9e1; - double c6 = 52.2e4; - double c7 = 000610000e2; - double c8 = 000610000e-6; - double c9 = 000001234567890123450000.0; - double c10 = 000999999999999999999000.0; - double c11 = 0001230000.0045600000; - double c12 = 0001230000.00405600000e-3; - double c13 = 0001230000.004500600000e-4; - double c14 = 00010230000.0045600000e-5; - double c15 = 000120030000.0045600000e4; - double c16 = 0001230000.0045600000e5; - double c17 = 0001230000.0045600000e6; - double c18 = 0001230000.00456007e6; - - double b11 = 72057594037927928.0; - double b12 = 72057594037927936.0; - double b13 = 72057594037927932.0; - double b14 = 7205759403792793199999e-5; - double b15 = 7205759403792793200001e-5; - double b21 = 9223372036854774784.0; - double b22 = 9223372036854775808.0; - double b23 = 9223372036854775296.0; - double b24 = 922337203685477529599999e-5; - double b25 = 922337203685477529600001e-5; - double b31 = 10141204801825834086073718800384.0; - double b32 = 10141204801825835211973625643008.0; - double b33 = 10141204801825834649023672221696.0; - double b34 = 1014120480182583464902367222169599999e-5; - double b35 = 1014120480182583464902367222169600001e-5; - double b41 = 5708990770823838890407843763683279797179383808.0; - double b42 = 5708990770823839524233143877797980545530986496.0; - double b43 = 5708990770823839207320493820740630171355185152.0; - double b44 = 5708990770823839207320493820740630171355185151999e-3; - double b45 = 5708990770823839207320493820740630171355185152001e-3; - - float pi1 = 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679f; - float pi2 = 3.14159265358979f; - float pi3 = 3.141592653589793f; - - double dpi1 = 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679; - double dpi2 = 3.14159265358979; - double dpi3 = 3.141592653589793; - - float dfpi1 = 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679f; - float dfpi2 = 3.14159265358979f; - float dfpi3 = 3.141592653589793f; - - double lfpi1 = 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679LF; - double lfpi2 = 3.14159265358979Lf; - double lfpi3 = 3.141592653589793lF; - - double hfpi1 = 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679hF; - double hfpi2 = 3.14159265358979hF; - double hfpi3 = 3.141592653589793hf; -} diff --git a/deps/glslang/Test/structAssignment.frag b/deps/glslang/Test/structAssignment.frag deleted file mode 100644 index 959f854e..00000000 --- a/deps/glslang/Test/structAssignment.frag +++ /dev/null @@ -1,39 +0,0 @@ -#version 130 - -uniform sampler2D sampler; -varying mediump vec2 coord; - -struct lunarStruct1 { - int i; - float f; -}; - -struct lunarStruct2 { - int i; - float f; - lunarStruct1 s1_1; -}; - -struct lunarStruct3 { - lunarStruct2 s2_1; - int i; - float f; - lunarStruct1 s1_1; -}; - - -uniform lunarStruct1 foo; -uniform lunarStruct2 foo2; -uniform lunarStruct3 foo3; - -void main() -{ - lunarStruct2 locals2; - - if (foo3.s2_1.i > 0) - locals2 = foo3.s2_1; - else - locals2 = foo2; - - gl_FragColor = locals2.s1_1.f * texture2D(sampler, coord); -} diff --git a/deps/glslang/Test/structDeref.frag b/deps/glslang/Test/structDeref.frag deleted file mode 100644 index 376e408f..00000000 --- a/deps/glslang/Test/structDeref.frag +++ /dev/null @@ -1,71 +0,0 @@ -#version 130 - -uniform sampler2D sampler; -varying vec2 coord; - -struct s0 { - int i; -}; - -struct s00 { - s0 s0_0; -}; - -struct s1 { - int i; - float f; - s0 s0_1; -}; - -struct s2 { - int i; - float f; - s1 s1_1; -}; - -struct s3 { - s2[12] s2_1; - int i; - float f; - s1 s1_1; -}; - - -uniform s0 foo0; -uniform s1 foo1; -uniform s2 foo2; -uniform s3 foo3; - -uniform s00 foo00; - -void main() -{ - s0 locals0; - s2 locals2; - s00 locals00; - - float[6] fArray; - - s1[10] locals1Array; - - if (foo3.s2_1[9].i > 0) { - locals2.f = 1.0; - locals2.s1_1 = s1(0, 1.0, s0(0)); - fArray = float[6]( 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); - locals1Array[6] = foo1; - locals0 = s0(0); - locals00 = s00(s0(0)); - } else { - locals2.f = coord.x; - locals2.s1_1 = s1(1, coord.y, foo0); - fArray = float[6]( 0.0, 1.0, 2.0, 3.0, 4.0, 5.0); - locals1Array[6] = locals2.s1_1; - locals0 = foo1.s0_1; - locals00 = foo00; - } - - if (locals0.i > 5) - locals0 = locals00.s0_0; - - gl_FragColor = (float(locals0.i) + locals1Array[6].f + fArray[3] + locals2.s1_1.f) * texture2D(sampler, coord); -} diff --git a/deps/glslang/Test/structure.frag b/deps/glslang/Test/structure.frag deleted file mode 100644 index 97e79cb0..00000000 --- a/deps/glslang/Test/structure.frag +++ /dev/null @@ -1,31 +0,0 @@ -#version 130 -uniform sampler2D sampler; -varying vec2 coord; - -struct lunarStruct1 { - int i; - float f[4]; - vec4 color[5]; -}; - -struct lunarStruct2 { - int i[5]; - float f; - lunarStruct1 s1_1[7]; -}; - -uniform lunarStruct1 foo; -uniform lunarStruct2 foo2[5]; - -void main() -{ - float scale = 0.0; - - if (foo2[3].i[4] > 0) - scale = foo2[3].s1_1[2].color[3].x; - else - scale = foo2[3].s1_1[2].f[3]; - - gl_FragColor = scale * texture2D(sampler, coord); -} - diff --git a/deps/glslang/Test/switch.frag b/deps/glslang/Test/switch.frag deleted file mode 100644 index f0860fae..00000000 --- a/deps/glslang/Test/switch.frag +++ /dev/null @@ -1,158 +0,0 @@ -#version 300 es -precision highp float; -uniform int c, d; -in highp float x; - -void main() -{ - float f; - int a[2]; - - switch(f) { // ERROR - } - - switch(a) { // ERROR - } - - switch(c) - { - } - - switch(c) // WARNING, not enough stuff after last label - { - case 2: - } - - switch(c) - { - f = sin(x); // ERRROR - case 2: - f = cos(x); - break; - } - - switch (c) { - default: - break; - case 1: - f = sin(x); - break; - case 2: - f = cos(x); - break; - default: // ERROR, 2nd default - f = tan(x); - } - - switch (c) { - case 1: - f = sin(x); - break; - case 2: - switch (d) { - case 1: - f = x * x * x; - break; - case 2: - f = x * x; - break; - } - break; - default: - f = tan(x); - case 1: // ERROR, 2nd 'case 1' - break; - case 3.8: // ERROR, non-int - break; - case c: // ERROR, non-constant - break; - } - - switch (c) { // a no-error normal switch - case 1: - f = sin(x); - break; - case 2: - switch (d) { - case 1: - f = x * x * x; - break; - case 2: - f = x * x; - break; - } - break; - default: - f = tan(x); - } - - break; // ERROR - - switch (c) { - case 1: - f = sin(x); - break; - case 2: - switch (d) { - case 1: - { - case 4: // ERROR - break; - } - f = x * x * x; - if (c < d) { - case 2: // ERROR - f = x * x; - } - if (d < c) - case 3: // ERROR - break; - } - break; - case 4: - f = tan(x); - if (f < 0.0) - default: // ERROR - break; - } - - case 5: // ERROR - default: // ERROR - - switch (0) { - default: - int onlyInSwitch = 0; - } - onlyInSwitch; // ERROR - - switch (0) { - default: - int x; // WARNING (was "no statement" ERROR, but spec. changed because unclear what a statement is) - } - - switch (c) { - case 1: - { - int nestedX; - break; - } - case 2: - nestedX; // ERROR - int nestedZ; - float a; // okay, hiding outer 'a' - break; - case 3: - int linearZ; - break; - break; - case 4: - int linearY = linearZ; - break; - case 5: // okay that branch bypassed an initializer - const int linearC = 4; - break; - case 6: // okay that branch bypassed an initializer - linearC; - } - nestedZ; // ERROR, no longer in scope -} diff --git a/deps/glslang/Test/swizzle.frag b/deps/glslang/Test/swizzle.frag deleted file mode 100644 index 14f507ec..00000000 --- a/deps/glslang/Test/swizzle.frag +++ /dev/null @@ -1,52 +0,0 @@ -#version 110 - -uniform float blend; -uniform vec4 u; -uniform bool p; - -varying vec2 t; - -void main() -{ - float blendscale = 1.789; - - vec4 w = u; - vec4 w_undef; // test undef - vec4 w_dep = u; // test dependent swizzles - vec4 w_reorder = u; // test reordering - vec4 w2 = u; - vec4 w_flow = u; // test flowControl - - w_reorder.z = blendscale; - - w.wy = t; - - w_reorder.x = blendscale; - - w2.xyzw = u.zwxy; - - w_reorder.y = blendscale; - - w_dep.xy = w2.xz; - w_dep.zw = t; - - w_undef.xy = u.zw; - - if (p) - w_flow.x = t.x; - else - w_flow.x = t.y; - - gl_FragColor = mix(w_reorder, w_undef, w * w2 * w_dep * w_flow); - - vec2 c = t; - vec4 rep = vec4(0.0, 0.0, 0.0, 1.0); - - if (c.x < 0.0) - c.x *= -1.0; - - if (c.x <= 1.0) - rep.x = 3.4; - - gl_FragColor += rep; -} diff --git a/deps/glslang/Test/syntaxError.frag b/deps/glslang/Test/syntaxError.frag deleted file mode 100644 index fcbeb69e..00000000 --- a/deps/glslang/Test/syntaxError.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 120 - -uniform vec4 bigColor; -varying vec4 BaseColor; -uniform float d; - -void main() -{ - vec5 color = BaseColor; - - do { - color += bigColor; - } while (color.x < d); - - gl_FragColor = color; -} diff --git a/deps/glslang/Test/terminate.frag b/deps/glslang/Test/terminate.frag deleted file mode 100644 index 32f1495f..00000000 --- a/deps/glslang/Test/terminate.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 400 - -void foo() { terminateInvocation; } // ERROR: identifier undeclared - -#extension GL_EXT_terminate_invocation : enable - -void main() -{ - int terminateInvocation; // syntax ERROR -} diff --git a/deps/glslang/Test/terminate.vert b/deps/glslang/Test/terminate.vert deleted file mode 100644 index 1d4eea9c..00000000 --- a/deps/glslang/Test/terminate.vert +++ /dev/null @@ -1,10 +0,0 @@ -#version 400 - -void foo() { terminateInvocation; } // ERROR: identifier undeclared - -#extension GL_EXT_terminate_invocation : enable - -void main() -{ - terminateInvocation; // ERROR: wrong stage -} diff --git a/deps/glslang/Test/test.frag b/deps/glslang/Test/test.frag deleted file mode 100644 index 1b7d0e95..00000000 --- a/deps/glslang/Test/test.frag +++ /dev/null @@ -1,22 +0,0 @@ -#version 110 - -uniform sampler2D texSampler2D; -uniform sampler3D texSampler3D; - -uniform float blend; -uniform vec2 scale; -uniform vec4 u; - -varying vec2 t; -varying vec3 coords; - -void main() -{ - float blendscale = 1.789; - - vec4 v = texture2D(texSampler2D, (t + scale) / scale ).wzyx; - - vec4 w = texture3D(texSampler3D, coords) + v; - - gl_FragColor = mix(w, u, blend * blendscale); -} diff --git a/deps/glslang/Test/texture.frag b/deps/glslang/Test/texture.frag deleted file mode 100644 index 8e5391ee..00000000 --- a/deps/glslang/Test/texture.frag +++ /dev/null @@ -1,73 +0,0 @@ -#version 130 - -uniform sampler1D texSampler1D; -uniform sampler2D texSampler2D; -uniform sampler3D texSampler3D; -uniform samplerCube texSamplerCube; -uniform sampler1DShadow shadowSampler1D; -uniform sampler2DShadow shadowSampler2D; - -uniform float blend; -uniform vec2 scale; -uniform vec4 u; - -varying vec2 t; -varying vec2 coords2D; - -void main() -{ - float blendscale = 1.789; - float bias = 2.0; - float lod = 3.0; - float proj = 2.0; - float coords1D = 1.789; - vec3 coords3D = vec3(1.789, 2.718, 3.453); - vec4 coords4D = vec4(1.789, 2.718, 3.453, 2.0); - vec4 color = vec4(0.0, 0.0, 0.0, 0.0); - - color += texture1D (texSampler1D, coords1D); - color += texture1D (texSampler1D, coords1D, bias); - color += texture1DProj(texSampler1D, coords2D); - color += texture1DProj(texSampler1D, coords4D); - color += texture1DProj(texSampler1D, coords2D, bias); - color += texture1DProj(texSampler1D, coords4D, bias); - - color += texture2D (texSampler2D, coords2D); - color += texture2D (texSampler2D, coords2D, bias); - color += texture2DProj (texSampler2D, coords3D); - color += texture2DProj (texSampler2D, coords4D, bias); - - color += texture3D (texSampler3D, coords3D); - color += texture3D (texSampler3D, coords3D, bias); - color += texture3DProj (texSampler3D, coords4D); - color += texture3DProj (texSampler3D, coords4D, bias); - - color += textureCube (texSamplerCube, coords3D); - color += textureCube (texSamplerCube, coords3D, bias); - - color += shadow1D (shadowSampler1D, coords3D); - color += shadow1D (shadowSampler1D, coords3D, bias); - color += shadow2D (shadowSampler2D, coords3D); - color += shadow2D (shadowSampler2D, coords3D, bias); - color += shadow1DProj (shadowSampler1D, coords4D); - color += shadow1DProj (shadowSampler1D, coords4D, bias); - color += shadow2DProj (shadowSampler2D, coords4D); - color += shadow2DProj (shadowSampler2D, coords4D, bias); - - ivec2 iCoords2D = ivec2(0, 5); - int iLod = 1; - - color += texelFetch(texSampler2D, iCoords2D, iLod); - - vec2 gradX = dFdx(coords2D); - vec2 gradY = dFdy(coords2D); - const ivec2 offset = ivec2(3, -7); - - color += textureGrad(texSampler2D, coords2D, gradX, gradY); - color += textureProjGrad(texSampler2D, vec3(coords2D, proj), gradX, gradY); - color += textureGradOffset(texSampler2D, coords2D, gradX, gradY, offset); - color += textureProjGradOffset(texSampler2D, coords3D, gradX, gradY, offset); - color += textureGrad(shadowSampler2D, vec3(coords2D, lod), gradX, gradY); - - gl_FragColor = mix(color, u, blend * blendscale); -} \ No newline at end of file diff --git a/deps/glslang/Test/textureQueryLOD.frag b/deps/glslang/Test/textureQueryLOD.frag deleted file mode 100644 index 0d0ae3c7..00000000 --- a/deps/glslang/Test/textureQueryLOD.frag +++ /dev/null @@ -1,39 +0,0 @@ -#version 150 - -#ifdef GL_ARB_texture_query_lod -#extension GL_ARB_texture_query_lod : enable -#endif -#ifdef GL_ARB_gpu_shader5 -#extension GL_ARB_gpu_shader5 : enable -#endif - -#ifdef GL_ES -precision highp float; -#endif - -in vec2 vUV; // vert->frag -out vec4 color; // frag->fb -#define UV vUV - -#define bias 1.5 -#define TEX 128.0 -#define offset ivec2(1,1) -uniform highp sampler2DShadow sampler; -uniform int funct; - -void main (void) -{ - switch (funct) - { - case 0: - ivec2 iv2 = textureSize(sampler, 0); -#ifdef GL_ARB_texture_query_lod - vec2 fv2 = textureQueryLOD(sampler, vec2(0.0, 0.0)); -#endif - color = vec4(iv2,fv2); - break; - default: - color = vec4(1.0, 1.0, 1.0, 1.0); - break; - } -} diff --git a/deps/glslang/Test/textureoffset_sampler2darrayshadow.vert b/deps/glslang/Test/textureoffset_sampler2darrayshadow.vert deleted file mode 100644 index 6ce2dbc3..00000000 --- a/deps/glslang/Test/textureoffset_sampler2darrayshadow.vert +++ /dev/null @@ -1,11 +0,0 @@ -#version 300 es -precision mediump float; -in highp vec4 dEQP_Position; - -uniform mediump sampler2DArrayShadow s; - -void main() -{ - gl_Position = vec4(textureOffset(s, vec4(0), ivec2(0))); - gl_Position = dEQP_Position; -} diff --git a/deps/glslang/Test/tokenLength.vert b/deps/glslang/Test/tokenLength.vert deleted file mode 100644 index 21d446fa..00000000 --- a/deps/glslang/Test/tokenLength.vert +++ /dev/null @@ -1,72 +0,0 @@ -#version 300 es -//#pragma glslang_binary_double_output -// 1023 characters -in float BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789; - -// 1024 characters (okay) -in float ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789; - -int E1 = 5000000000; // ERROR -int E2 = 50000000000; // ERROR -int B = 4294967295; // okay - -int OE = 0777777777777777777777; // ERROR -int HE = 0x1234567890ABCDEF0; // ERROR - -// 1023 character fraction -float F = 1.0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890; - -// 1024 character value -float G = 1.01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678890; - -// 1025 character fraction -float E3 = 1.012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012; - -void main() -{ - gl_Position = vec4(ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789, - B, F, G); -} - -// super long -float BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789; -int superH = 0xBCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789; -int superO = 0777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777; -int superI = 429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295; -float superF = 1.012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890121234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901212345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012; - -// Boundary cases -#extension a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhooooooooooooooooooooooooooooooohhhhhhhhhhhhhhhhh01234 : enable -#extension a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhooooooooooooooooooooooooooooooohhhhhhhhhhhhhhhhh012345 : enable - -// Super long -#extension A29496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295 - -// Boundary cases -#if 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 -#error in long non-zero #if -#endif -#if 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 == 0 -#error in long zero #if -#endif -#if 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 == 0 -#error in too long #if -#endif - -#if A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 -#error in long macro #if -#endif -#if A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -#error in long macro #if -#endif -#if A0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -#error in too long macro #if -#endif - -// Super long -#if 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -#error in super long #if -#endif -#if A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -#error in super long macro #if -#endif diff --git a/deps/glslang/Test/tokenPaste.vert b/deps/glslang/Test/tokenPaste.vert deleted file mode 100644 index c4515d46..00000000 --- a/deps/glslang/Test/tokenPaste.vert +++ /dev/null @@ -1,98 +0,0 @@ -#version 450 - -// side test verifies multiple rounds of argument expansion -#define bear SecondExpansion -#define mmmB bear -#define mmmA(a) a -int mmmA(mmmB); // mmmB -> bear, and then in mmmA(), bear -> SecondExpansion - -// pasting skips the first round of expansion -#define mmcatmmdog PostPasteExpansion -#define mmcat cat -#define mmdog dog -#define mmp(a,b) a## b -int mmp(mmcat, mmdog); // mmcat/mmdog not expanded, mmcatmmdog -> PostPasteExpansion - -// multi-token pre -#define mmtokpastepre(a) a##27 -mmtokpastepre(float foo); // should declare "float foo27;" - -// multi-token post -#define mmtokpastepost(a) uni ##a -mmtokpastepost(form float foo155); // should declare "uniform float foo155;" - -// non-first argument -#define foo ShouldntExpandToThis -#define semi ; -#define bothpaste(a,b) a##b -float bothpaste(foo, 719); // should declare "float foo719;" -#define secpaste(a,b) a bar ## b -secpaste(uniform float, foo semi) // should declare "uniform float barfoo;" - -// no args -#define noArg fl##oat -noArg argless; - -// bad location -#define bad1 ## float -bad1 dc1; -#define bad2 float ## -bad2 dc2; - -// multiple ## -#define multiPaste(a, b, c) a##or##b flo##at foo##c -multiPaste(unif, m, 875); - -// too long -#define simplePaste(a,b) a##b -// 1020 + 5 characters -float simplePaste(ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF012345, 12345); - -// non-identifiers -int a = simplePaste(11,12); - -// should work in #if as well -#define seahorse 1 -#define sealion 0 -#define marine_animal(suffix) (sea ## suffix) - -#if marine_animal(horse) // should pass -uniform float seahorse_var; -#endif -#if !marine_animal(lion) // should pass -uniform float sealion_var; -#endif - -// operators -#define MAKE_OP(L, R) L ## R -const int aop = 10; -const int bop = 4; -int cop = aop MAKE_OP(<, <) bop; -bool dop = aop MAKE_OP(!,=) bop; - -#define MAKE_OP3(L, M, R) L ## M ## R - -void foo() -{ - int e = 16; - e MAKE_OP3(>,>,=) 2; - - // recovery from bad op - bool f = e MAKE_OP(>,!) 5; -} - -// arguments: should make 'uniform int argPaste2;' -#define M_NEST(q) int q -#define M_OUTER(p) M_NEST(p##2) -uniform M_OUTER(argPaste); -// should make 'uniform int argPaste20suff;' -#define M_NEST2(q) int q ## suff -#define M_OUTER2(p) M_NEST2(p ## 20) -uniform M_OUTER2(argPaste); - -#define rec(x)## -rec(rec()) - -#define bax(bay) -#define baz bax(/##) -baz diff --git a/deps/glslang/Test/types.frag b/deps/glslang/Test/types.frag deleted file mode 100644 index 48701d89..00000000 --- a/deps/glslang/Test/types.frag +++ /dev/null @@ -1,81 +0,0 @@ -#version 130 - -uniform bool u_b; -uniform bvec2 u_b2; -uniform bvec3 u_b3; -uniform bvec4 u_b4; - -uniform int u_i; -uniform ivec2 u_i2; -uniform ivec3 u_i3; -uniform ivec4 u_i4; - -uniform float u_f; -uniform vec2 u_f2; -uniform vec3 u_f3; -uniform vec4 u_f4; - -uniform bool i_b; -uniform bvec2 i_b2; -uniform bvec3 i_b3; -uniform bvec4 i_b4; - -flat in int i_i; -flat in ivec2 i_i2; -flat in ivec3 i_i3; -flat in ivec4 i_i4; - -in float i_f; -in vec2 i_f2; -in vec3 i_f3; -in vec4 i_f4; - -void main() -{ - bool b = u_b && i_b; - bvec2 b2 = bvec2(u_b2.x && i_b2.x && u_b2.y && i_b2.y); - bvec3 b3 = bvec3(u_b3.x && i_b3.x && u_b3.y && i_b3.y && u_b3.z && i_b3.z); - bvec4 b4 = bvec4(u_b4.x && i_b4.x && u_b4.y && i_b4.y && u_b4.z && i_b4.z && u_b4.w && i_b4.w); - - int i = u_i + i_i; - ivec2 i2 = u_i2 + i_i2; - ivec3 i3 = u_i3 + i_i3; - ivec4 i4 = u_i4 + i_i4; - - float f = u_f + i_f; - vec2 f2 = u_f2 + i_f2; - vec3 f3 = u_f3 + i_f3; - vec4 f4 = u_f4 + i_f4; - - gl_FragColor = - b || - b2.x || - b2.y || - b3.x || - b3.y || - b3.z || - b4.x || - b4.y || - b4.z || - b4.w ? vec4( - i + - i2.x + - i2.y + - i3.x + - i3.y + - i3.z + - i4.x + - i4.y + - i4.z + - i4.w + - f + - f2.x + - f2.y + - f3.x + - f3.y + - f3.z + - f4.x + - f4.y + - f4.z + - f4.w) : vec4(1.0); -} diff --git a/deps/glslang/Test/uint.frag b/deps/glslang/Test/uint.frag deleted file mode 100644 index 6dd69ac9..00000000 --- a/deps/glslang/Test/uint.frag +++ /dev/null @@ -1,105 +0,0 @@ -#version 300 es -in uvec2 badu; // ERROR -flat in uvec2 t; -in highp float f; -in highp vec2 tc; -in bool bad; // ERROR -uniform uvec4 v; -uniform int i; -uniform bool b; - -out uvec4 c; - -uniform lowp usampler2D usampler; - -void main() -{ - int count = 1; - - uint u = t.y + 3u; - const uint cu1error = 0xFFFFFFFF; // ERROR - const uint cu1 = 0xFFFFFFFFU; - const uint cu2 = -1u; // 0xFFFFFFFF - const uint cu3 = 1U; - const uint cu4error = 1; // ERROR - const uint cu4 = 1u; - - if (cu1 == cu2) - count *= 2; // done - if (cu3 == cu4) - count *= 3; // done - if (cu2 == cu3) - count *= 5; // not done - - const uint cushiftediierror = 0xFFFFFFFF >> 10; // ERROR - const int cshiftedii = 0xFFFFFFFF >> 10; - const uint cushiftedui = 0xFFFFFFFFu >> 10; - const uint cushiftediuerror = 0xFFFFFFFF >> 10u; // ERROR - const int cshiftediu = 0xFFFFFFFF >> 10u; - const uint cushifteduu = 0xFFFFFFFFu >> 10u; - - if (cshiftedii == cshiftediu) - count *= 7; // done - if (cushiftedui == cushifteduu) - count *= 11; // done - if (cshiftedii == int(cushiftedui)) - count *= 13; // not done - - uint shiftediierror = 0xFFFFFFFF >> 10; // ERROR - int shiftedii = 0xFFFFFFFF >> 10; - uint shiftedui = 0xFFFFFFFFu >> 10; - uint shiftediuerror = 0xFFFFFFFF >> 10u; // ERROR - int shiftediu = 0xFFFFFFFF >> 10u; - uint shifteduu = 0xFFFFFFFFu >> 10u; - - if (shiftedii == shiftediu) - c = texture(usampler, tc); - if (shiftedui == shifteduu) - c = texture(usampler, tc + float(1u)); - if (shiftedii == int(shiftedui)) - c = texture(usampler, tc - vec2(2u)); - - if (t.x > 4u) { - float af = float(u); - bool ab = bool(u); - int ai = int(u); - - c += uvec4(uint(af), uint(ab), uint(ai), count); - } - - const uint cmask1 = 0x0A1u; - const uint cmask2 = 0xA10u; - const uint cmask3 = cmask1 << 4; - const uint cmask4 = 0xAB1u; - - if (cmask3 == cmask2) - count *= 17; // done - - if ((cmask3 & cmask1) != 0u) - count *= 19; // not done - - if ((cmask1 | cmask3) == cmask4) - count *= 23; // done - - if ((cmask1 ^ cmask4) == 0xA10u) - count *= 27; // done - - uint mask1 = 0x0A1u; - uint mask2 = 0xA10u; - uint mask3 = mask1 << 4; - uint mask4 = 0xAB1u; - - if (mask3 == mask2) - count *= 100; - - if ((mask3 & mask1) != 0u) - count *= 101; - - if ((mask1 | mask3) == mask4) - count *= 102; - - if ((mask1 ^ mask4) == 0xA10u) - count *= 103; - - c += uvec4(count); -} diff --git a/deps/glslang/Test/uniformArray.frag b/deps/glslang/Test/uniformArray.frag deleted file mode 100644 index 7db28764..00000000 --- a/deps/glslang/Test/uniformArray.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 130 -uniform sampler2D texSampler2D; -uniform vec3 inColor; -uniform vec4 color[6]; -uniform float alpha[16]; - -void main() -{ - vec4 texColor = color[1] + color[1]; - - texColor.xyz += inColor; - - texColor.a += alpha[12]; - - gl_FragColor = texColor; -} diff --git a/deps/glslang/Test/validate-shaders.sh b/deps/glslang/Test/validate-shaders.sh deleted file mode 100644 index 89dc9556..00000000 --- a/deps/glslang/Test/validate-shaders.sh +++ /dev/null @@ -1,269 +0,0 @@ -#!/bin/bash - -# This script validates shaders (if successfully compiled) using spirv-val. -# It is not meant to preclude the possible addition of the validator to -# glslang. - -declare -r EXE='../build/install/bin/glslangValidator' - -# search common locations for spirv-tools: keep first one -for toolsdir in '../External/spirv-tools/build/tools' '../../SPIRV-Tools/build/tools/bin' '/usr/local/bin'; do - [[ -z "$VAL" && -x "${toolsdir}/spirv-val" ]] && declare -r VAL="${toolsdir}/spirv-val" - [[ -z "$DIS" && -x "${toolsdir}/spirv-dis" ]] && declare -r DIS="${toolsdir}/spirv-dis" -done - -declare -r gtests='../gtests/Hlsl.FromFile.cpp ../gtests/Spv.FromFile.cpp' - -declare -r targetenv='vulkan1.0' - -function fatal() { echo "ERROR: $@"; exit 5; } - -function usage -{ - echo - echo "Usage: $(basename $0) [options...] shaders..." - echo - echo " Validates shaders (if successfully compiled) through spirv-val." - echo - echo "General options:" - echo " --help prints this text" - echo " --no-color disables output colorization" - echo " --dump-asm dumps all successfully compiled shader assemblies" - echo " --dump-val dumps all validation results" - echo " --dump-comp dumps all compilation logs" - echo "Spam reduction options:" - echo " --no-summary disables result summaries" - echo " --skip-ok do not print successful validations" - echo " --skip-comperr do not print compilation errors" - echo " --skip-valerr do not print validation errors" - echo " --quiet synonym for --skip-ok --skip-comperr --skip-valerr --no-summary" - echo " --terse print terse single line progress summary" - echo "Disassembly options:" - echo " --raw-id uses raw ids for disassembly" - echo - echo "Usage examples. Note most non-hlsl tests fail to compile for expected reasons." - echo " Exercise all hlsl.* files:" - echo " $(basename $0) hlsl.*" - echo " Exercise all hlsl.* files, tersely:" - echo " $(basename $0) --terse hlsl.*" - echo " Print validator output for myfile.frag:" - echo " $(basename $0) --quiet --dump-val myfile.frag" - echo " Exercise hlsl.* files, only printing validation errors:" - echo " $(basename $0) --skip-ok --skip-comperr hlsl.*" - - exit 5 -} - -function status() -{ - printf "%-40s: %b\n" "$1" "$2" -} - -# make sure we can find glslang -[[ -x "$EXE" ]] || fatal "Unable to locate $(basename "$EXE") executable" -[[ -x "$VAL" ]] || fatal "Unable to locate spirv-val executable" -[[ -x "$DIS" ]] || fatal "Unable to locate spirv-dis executable" - -for gtest in $gtests; do - [[ -r "$gtest" ]] || fatal "Unable to locate source file: $(basename $gtest)" -done - -# temp files -declare -r spvfile='out.spv' \ - complog='comp.out' \ - vallog='val.out' \ - dislog='dis.out' \ - -# options -declare opt_vallog=false \ - opt_complog=false \ - opt_dislog=false \ - opt_summary=true \ - opt_stat_comperr=true \ - opt_stat_ok=true \ - opt_stat_valerr=true \ - opt_color=true \ - opt_raw_id=false \ - opt_quiet=false \ - opt_terse=false - -# clean up on exit -trap "rm -f ${spvfile} ${complog} ${vallog} ${dislog}" EXIT - -# Language guesser: there is no fixed mapping from filenames to language, -# so this examines the file and return one of: -# hlsl -# glsl -# bin -# unknown -# This is easier WRT future expansion than a big explicit list. -function FindLanguage() -{ - local test="$1" - - # If it starts with hlsl, assume it's hlsl. - if [[ "$test" == *hlsl.* ]]; then - echo hlsl - return - fi - - if [[ "$test" == *.spv ]]; then - echo bin - return; - fi - - # If it doesn't start with spv., assume it's GLSL. - if [[ ! "$test" == spv.* && ! "$test" == remap.* ]]; then - echo glsl - return - fi - - # Otherwise, attempt to guess from shader contents, since there's no - # fixed mapping of filenames to languages. - local contents="$(cat "$test")" - - if [[ "$contents" == *#version* ]]; then - echo glsl - return - fi - - if [[ "$contents" == *SamplerState* || - "$contents" == *cbuffer* || - "$contents" == *SV_* ]]; then - echo hlsl - return - fi - - echo unknown -} - -# Attempt to discover entry point -function FindEntryPoint() -{ - local test="$1" - - # if it's not hlsl, always use main - if [[ "$language" != 'hlsl' ]]; then - echo 'main' - return - fi - - # Try to find it in test sources - awk -F '[ (){",]+' -e "\$2 == \"${test}\" { print \$3; found=1; } END { if (found==0) print \"main\"; } " $gtests -} - -# command line options -while [ $# -gt 0 ] -do - case "$1" in - # -c) glslang="$2"; shift 2;; - --help|-?) usage;; - --no-color) opt_color=false; shift;; - --no-summary) opt_summary=false; shift;; - --skip-ok) opt_stat_ok=false; shift;; - --skip-comperr) opt_stat_comperr=false; shift;; - --skip-valerr) opt_stat_valerr=false; shift;; - --dump-asm) opt_dislog=true; shift;; - --dump-val) opt_vallog=true; shift;; - --dump-comp) opt_complog=true; shift;; - --raw-id) opt_raw_id=true; shift;; - --quiet) opt_quiet=true; shift;; - --terse) opt_quiet=true - opt_terse=true - shift;; - --*) fatal "Unknown command line option: $1";; - *) break;; - esac -done - -# this is what quiet means -if $opt_quiet; then - opt_stat_ok=false - opt_stat_comperr=false - opt_stat_valerr=false - $opt_terse || opt_summary=false -fi - -if $opt_color; then - declare -r white="\e[1;37m" cyan="\e[1;36m" red="\e[0;31m" no_color="\e[0m" -else - declare -r white="" cyan="" red="" no_color="" -fi - -# stats -declare -i count_ok=0 count_err=0 count_nocomp=0 count_total=0 - -declare -r dashsep='------------------------------------------------------------------------' - -testfiles=(${@}) -# if no shaders given, look for everything in current directory -[[ ${#testfiles[*]} == 0 ]] && testfiles=(*.frag *.vert *.tesc *.tese *.geom *.comp) - -$opt_summary && printf "\nValidating: ${#testfiles[*]} shaders\n\n" - -# Loop through the shaders we were given, compiling them if we can. -for test in ${testfiles[*]} -do - if [[ ! -r "$test" ]]; then - $opt_quiet || status "$test" "${red}FILE NOT FOUND${no_color}" - continue - fi - - ((++count_total)) - - $opt_terse && printf "\r[%-3d/%-3d : ${white}comperr=%-3d ${red}valerr=%-3d ${cyan}ok=%-3d${no_color}]" \ - ${count_total} ${#testfiles[*]} ${count_nocomp} ${count_err} ${count_ok} - - language="$(FindLanguage $test)" - entry="$(FindEntryPoint $test)" - langops='' - - case "$language" in - hlsl) langops='-D --hlsl-iomap --hlsl-offsets';; - glsl) ;; - bin) continue;; # skip binaries - *) $opt_quiet || status "$test" "${red}UNKNOWN LANGUAGE${no_color}"; continue;; - esac - - # compile the test file - if compout=$("$EXE" -e "$entry" $langops -V -o "$spvfile" "$test" 2>&1) - then - # successful compilation: validate - if valout=$("$VAL" --target-env ${targetenv} "$spvfile" 2>&1) - then - # validated OK - $opt_stat_ok && status "$test" "${cyan}OK${no_color}" - ((++count_ok)) - else - # validation failure - $opt_stat_valerr && status "$test" "${red}VAL ERROR${no_color}" - printf "%s\n%s:\n%s\n" "$dashsep" "$test" "$valout" >> "$vallog" - ((++count_err)) - fi - - if $opt_dislog; then - printf "%s\n%s:\n" "$dashsep" "$test" >> "$dislog" - $opt_raw_id && id_opt=--raw-id - "$DIS" ${id_opt} "$spvfile" >> "$dislog" - fi - else - # compile failure - $opt_stat_comperr && status "$test" "${white}COMP ERROR${no_color}" - printf "%s\n%s\n" "$dashsep" "$compout" >> "$complog" - ((++count_nocomp)) - fi -done - -$opt_terse && echo - -# summarize -$opt_summary && printf "\nSummary: ${white}${count_nocomp} compile errors${no_color}, ${red}${count_err} validation errors${no_color}, ${cyan}${count_ok} successes${no_color}\n" - -# dump logs -$opt_vallog && [[ -r $vallog ]] && cat "$vallog" -$opt_complog && [[ -r $complog ]] && cat "$complog" -$opt_dislog && [[ -r $dislog ]] && cat "$dislog" - -# exit code -[[ ${count_err} -gt 0 ]] && exit 1 -exit 0 diff --git a/deps/glslang/Test/variableArrayIndex.frag b/deps/glslang/Test/variableArrayIndex.frag deleted file mode 100644 index 63b49c78..00000000 --- a/deps/glslang/Test/variableArrayIndex.frag +++ /dev/null @@ -1,48 +0,0 @@ -#version 130 -uniform sampler2D sampler; -varying vec2 coord; - -struct lunarStruct1 { - int i; - float f; -}; - -struct lunarStruct2 { - int i; - float f; - lunarStruct1 s1_1; -}; - -struct lunarStruct3 { - lunarStruct2 s2_1[3]; - int i; - float f; - lunarStruct1 s1_1; -}; - - -uniform lunarStruct1 foo; -uniform lunarStruct2 foo2[5]; -uniform lunarStruct3 foo3; -uniform int Count; - -void main() -{ - float scale; - int iLocal = Count; - - if (foo3.s2_1[1].i > 0) - scale = foo2[foo3.s2_1[foo.i].i + 2 + ++iLocal].s1_1.f; - else - scale = foo3.s2_1[0].s1_1.f; - - //for (int i = 0; i < iLocal; ++i) { - // scale += foo2[i].f; - //} - - gl_FragColor = scale * texture2D(sampler, coord); - - vec2[3] constructed = vec2[3](coord, vec2(scale), vec2(1.0, 2.0)); - gl_FragColor += vec4(constructed[foo.i], constructed[foo.i]); -} - diff --git a/deps/glslang/Test/varyingArray.frag b/deps/glslang/Test/varyingArray.frag deleted file mode 100644 index 3bd152fe..00000000 --- a/deps/glslang/Test/varyingArray.frag +++ /dev/null @@ -1,19 +0,0 @@ -#version 130 -uniform sampler2D texSampler2D; -varying vec4 color; -varying float alpha; - -varying vec4 gl_TexCoord[6]; - -varying vec4 foo[3]; - -void main() -{ - vec4 texColor = texture2D(texSampler2D, vec2(gl_TexCoord[4] + gl_TexCoord[5])); - - texColor += color; - - texColor.a = alpha; - - gl_FragColor = foo[1] + gl_TexCoord[0] + gl_TexCoord[4] + texColor; -} diff --git a/deps/glslang/Test/varyingArrayIndirect.frag b/deps/glslang/Test/varyingArrayIndirect.frag deleted file mode 100644 index d45e601b..00000000 --- a/deps/glslang/Test/varyingArrayIndirect.frag +++ /dev/null @@ -1,21 +0,0 @@ -#version 130 -uniform sampler2D texSampler2D; -varying vec4 color; -varying float alpha; - -varying vec4 gl_TexCoord[6]; - -varying vec4 userIn[2]; - -uniform int a, b; - -void main() -{ - vec4 texColor = texture2D(texSampler2D, vec2(userIn[b] + gl_TexCoord[a] + gl_TexCoord[5])); - - texColor += color; - - texColor.a = alpha; - - gl_FragColor = gl_TexCoord[0] + gl_TexCoord[b] + texColor + userIn[a]; -} diff --git a/deps/glslang/Test/versionsClean.frag b/deps/glslang/Test/versionsClean.frag deleted file mode 100644 index 6e19bf88..00000000 --- a/deps/glslang/Test/versionsClean.frag +++ /dev/null @@ -1,45 +0,0 @@ -// -//Copyright (C) 2012 LunarG, Inc. -//All rights reserved. -// -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: -// -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// Neither the name of LunarG Inc. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -//POSSIBILITY OF SUCH DAMAGE. -// -#version 300 es - -in highp vec3 color; -out highp vec4 foo; - -uniform highp sampler2DArrayShadow bar; - -void main() -{ - foo = vec4(color, 142.0f); - discard; -} diff --git a/deps/glslang/Test/versionsClean.vert b/deps/glslang/Test/versionsClean.vert deleted file mode 100644 index 7c197857..00000000 --- a/deps/glslang/Test/versionsClean.vert +++ /dev/null @@ -1,43 +0,0 @@ -// -//Copyright (C) 2012 LunarG, Inc. -//All rights reserved. -// -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: -// -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// Neither the name of LunarG Inc. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -//POSSIBILITY OF SUCH DAMAGE. -// -#version 420 compatibility - -attribute vec3 color; - -uniform sampler2DRect foo; - -void main() -{ - gl_Position = vec4(color, 142.0f); -} diff --git a/deps/glslang/Test/versionsErrors.frag b/deps/glslang/Test/versionsErrors.frag deleted file mode 100644 index 021c7356..00000000 --- a/deps/glslang/Test/versionsErrors.frag +++ /dev/null @@ -1,46 +0,0 @@ -// -//Copyright (C) 2012 LunarG, Inc. -//All rights reserved. -// -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: -// -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// Neither the name of LunarG Inc. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -//POSSIBILITY OF SUCH DAMAGE. -// -#version 110 es - -#extension GL_ARB_texture_rectangle : disable - -attribute vec3 color; - -uniform sampler2DRect foo; - -void main() -{ - gl_FragColor = vec4(color, 142.0f); - discard; -} diff --git a/deps/glslang/Test/versionsErrors.vert b/deps/glslang/Test/versionsErrors.vert deleted file mode 100644 index 8736f2e7..00000000 --- a/deps/glslang/Test/versionsErrors.vert +++ /dev/null @@ -1,46 +0,0 @@ -// -//Copyright (C) 2012 LunarG, Inc. -//All rights reserved. -// -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: -// -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// Neither the name of LunarG Inc. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -//POSSIBILITY OF SUCH DAMAGE. -// -#version 420 core - -#extension GL_ARB_texture_rectangle : enable - -attribute vec3 color; - -uniform sampler2DRect foo; - -void main() -{ - gl_Position = vec4(color, 142.0f); - discard; -} diff --git a/deps/glslang/Test/vk.relaxed.changeSet.frag b/deps/glslang/Test/vk.relaxed.changeSet.frag deleted file mode 100644 index e2f2403a..00000000 --- a/deps/glslang/Test/vk.relaxed.changeSet.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 460 - -layout(location = 0) out vec4 fragColor; - -uniform sampler2D sTexture; - -in vec4 Color; -in vec2 UV; - -void main() -{ - fragColor = Color * texture(sTexture, UV.st).r; -} diff --git a/deps/glslang/Test/vk.relaxed.changeSet.vert b/deps/glslang/Test/vk.relaxed.changeSet.vert deleted file mode 100644 index 419adba3..00000000 --- a/deps/glslang/Test/vk.relaxed.changeSet.vert +++ /dev/null @@ -1,16 +0,0 @@ -#version 460 - -in vec2 aPos; -in vec2 aUV; -in vec4 aColor; -uniform mat4 projectionMatrix; - -out vec4 Color; -out vec2 UV; - -void main() -{ - Color = aColor; - UV = aUV; - gl_Position = projectionMatrix * vec4(aPos, 0, 1); -} diff --git a/deps/glslang/Test/vk.relaxed.errorcheck.frag b/deps/glslang/Test/vk.relaxed.errorcheck.frag deleted file mode 100644 index b75b50b7..00000000 --- a/deps/glslang/Test/vk.relaxed.errorcheck.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 460 - -layout (location = 0) in vec4 io; - -out vec4 o; - -// default uniforms will be gathered into a uniform block -uniform vec4 a; // declared in both stages with different types - -vec4 foo() { - return a; -} - -void main() { - o = io + foo(); -} \ No newline at end of file diff --git a/deps/glslang/Test/vk.relaxed.errorcheck.vert b/deps/glslang/Test/vk.relaxed.errorcheck.vert deleted file mode 100644 index b1bdbbec..00000000 --- a/deps/glslang/Test/vk.relaxed.errorcheck.vert +++ /dev/null @@ -1,15 +0,0 @@ -#version 460 - -layout (location = 0) out vec4 io; - -// default uniforms will be gathered into a uniform block -// final global block will merge uniforms from all linked files -uniform vec2 a; // declared in both stages with different type - -vec4 foo() { - return a.xyxy; -} - -void main() { - io = foo(); -} \ No newline at end of file diff --git a/deps/glslang/Test/vk.relaxed.frag b/deps/glslang/Test/vk.relaxed.frag deleted file mode 100644 index d43416e0..00000000 --- a/deps/glslang/Test/vk.relaxed.frag +++ /dev/null @@ -1,74 +0,0 @@ -#version 460 - -out vec4 o; - -// default uniforms will be gathered into a uniform block -uniform vec4 a; -uniform vec2 b = vec2(0, 0); // initializer will be ignored -layout(location = 0) uniform vec2 c; // location qualifier will be ignored -uniform vec4 d[10]; -uniform struct e { - vec2 x; - float y; - uint z; -} structUniform; - -// opaque types will not be grouped into uniform block -uniform sampler2D t1; - -// shared and packed layout qualifier are silently ignored -layout(shared) uniform UniformBlock { - float j; - vec4 k; -}; - -layout(packed) buffer BufferBlock { - float j; - vec4 k; -} bufferInstance; - -// atomic_uint will be converted to uint and gathered in a buffer block -layout(binding = 0) uniform atomic_uint counter1; // offset not used -layout(binding = 0) uniform atomic_uint counter2; // offset not used -layout(binding = 1) uniform atomic_uint counter3; // offset not used - -// atomic counter functions will be converted to equivalent integer atomic operations -uint bar() { - uint j = 0; - j = atomicCounterIncrement(counter1); - j = atomicCounterDecrement(counter1); - j = atomicCounter(counter1); - - j = atomicCounterAdd(counter1, 1); - j = atomicCounterAdd(counter1, -1); - j = atomicCounterSubtract(counter1, 1); - - j = atomicCounterMin(counter1, j); - j = atomicCounterMax(counter1, j); - j = atomicCounterAnd(counter1, j); - - j = atomicCounterOr(counter1, j); - j = atomicCounterXor(counter1, j); - - j = atomicCounterExchange(counter1, j); - j = atomicCounterCompSwap(counter1, 0, j); - - atomicCounterIncrement(counter2); - atomicCounterIncrement(counter3); - - memoryBarrierAtomicCounter(); - - return j; -} - -vec4 foo() { - float f = j + bufferInstance.j + structUniform.y + structUniform.z; - vec2 v2 = b + c + structUniform.x; - vec4 v4 = a + d[0] + d[1] + d[2] + k + bufferInstance.k + texture(t1, vec2(0, 0)); - return vec4(f) * vec4(v2, 1, 1) * v4; -} - -void main() { - float j = float(bar()); - o = j * foo(); -} \ No newline at end of file diff --git a/deps/glslang/Test/vk.relaxed.link1.frag b/deps/glslang/Test/vk.relaxed.link1.frag deleted file mode 100644 index 95b609f2..00000000 --- a/deps/glslang/Test/vk.relaxed.link1.frag +++ /dev/null @@ -1,28 +0,0 @@ -#version 460 - -out vec4 o; - -// default uniforms will be gathered into a uniform block -// final global block will merge uniforms from all linked files -uniform vec4 a; // declared in both stages -uniform vec2 b1; // declaration order swapped in other stage -uniform vec2 b2; -uniform vec4 c1; // not delcared in other file -uniform vec4 d; - -// final global buffer will berge buffers from all linked files -layout (binding = 0) uniform atomic_uint counter1; -layout (binding = 0) uniform atomic_uint counter2; - -vec4 foo(); - -vec4 bar() { - uint j = atomicCounterIncrement(counter1) + atomicCounterDecrement(counter2); - vec4 v = a + vec4(b1.x, b1.y, b2.x, b2.y) + c1 + d; - - return float(j) * v; -} - -void main() { - o = foo() + bar(); -} \ No newline at end of file diff --git a/deps/glslang/Test/vk.relaxed.link2.frag b/deps/glslang/Test/vk.relaxed.link2.frag deleted file mode 100644 index a4f468a4..00000000 --- a/deps/glslang/Test/vk.relaxed.link2.frag +++ /dev/null @@ -1,19 +0,0 @@ -#version 460 - -// default uniforms will be gathered into a uniform block -// final global block will merge uniforms from all linked files -uniform vec4 a; // declared in both stages -uniform vec2 b2; // declaration order swapped in other stage -uniform vec2 b1; -uniform vec4 c2; // not delcared in other file -uniform vec4 d; - -layout (binding = 0) uniform atomic_uint counter3; -layout (binding = 0) uniform atomic_uint counter2; - -vec4 foo() { - uint j = atomicCounterIncrement(counter2) + atomicCounterDecrement(counter3); - vec4 v = a + vec4(b1.x, b1.y, b2.x, b2.y) + c2 + d; - - return float(j) * v; -} \ No newline at end of file diff --git a/deps/glslang/Test/vk.relaxed.stagelink.0.0.frag b/deps/glslang/Test/vk.relaxed.stagelink.0.0.frag deleted file mode 100644 index 1f9f1025..00000000 --- a/deps/glslang/Test/vk.relaxed.stagelink.0.0.frag +++ /dev/null @@ -1,139 +0,0 @@ -#version 460 -uniform int uTDInstanceIDOffset; -uniform int uTDNumInstances; -uniform float uTDAlphaTestVal; -#define TD_NUM_COLOR_BUFFERS 1 -#define TD_NUM_LIGHTS 0 -#define TD_NUM_SHADOWED_LIGHTS 0 -#define TD_NUM_ENV_LIGHTS 0 -#define TD_LIGHTS_ARRAY_SIZE 1 -#define TD_ENV_LIGHTS_ARRAY_SIZE 1 -#define TD_NUM_CAMERAS 1 -struct TDPhongResult -{ - vec3 diffuse; - vec3 specular; - vec3 specular2; - float shadowStrength; -}; -struct TDPBRResult -{ - vec3 diffuse; - vec3 specular; - float shadowStrength; -}; -struct TDMatrix -{ - mat4 world; - mat4 worldInverse; - mat4 worldCam; - mat4 worldCamInverse; - mat4 cam; - mat4 camInverse; - mat4 camProj; - mat4 camProjInverse; - mat4 proj; - mat4 projInverse; - mat4 worldCamProj; - mat4 worldCamProjInverse; - mat4 quadReproject; - mat3 worldForNormals; - mat3 camForNormals; - mat3 worldCamForNormals; -}; -layout(std140) uniform TDMatricesBlock { - TDMatrix uTDMats[TD_NUM_CAMERAS]; -}; -struct TDCameraInfo -{ - vec4 nearFar; - vec4 fog; - vec4 fogColor; - int renderTOPCameraIndex; -}; -layout(std140) uniform TDCameraInfoBlock { - TDCameraInfo uTDCamInfos[TD_NUM_CAMERAS]; -}; -struct TDGeneral -{ - vec4 ambientColor; - vec4 nearFar; - vec4 viewport; - vec4 viewportRes; - vec4 fog; - vec4 fogColor; -}; -layout(std140) uniform TDGeneralBlock { - TDGeneral uTDGeneral; -}; - -void TDAlphaTest(float alpha); -vec4 TDDither(vec4 color); -vec4 TDOutputSwizzle(vec4 v); -uvec4 TDOutputSwizzle(uvec4 v); -void TDCheckOrderIndTrans(); -void TDCheckDiscard(); -uniform vec3 uConstant; -uniform float uShadowStrength; -uniform vec3 uShadowColor; -uniform vec4 uDiffuseColor; -uniform vec4 uAmbientColor; - -uniform sampler2DArray sColorMap; - -in Vertex -{ - vec4 color; - vec3 worldSpacePos; - vec3 texCoord0; - flat int cameraIndex; - flat int instance; -} iVert; - -// Output variable for the color -layout(location = 0) out vec4 oFragColor[TD_NUM_COLOR_BUFFERS]; -void main() -{ - // This allows things such as order independent transparency - // and Dual-Paraboloid rendering to work properly - TDCheckDiscard(); - - vec4 outcol = vec4(0.0, 0.0, 0.0, 0.0); - - vec3 texCoord0 = iVert.texCoord0.stp; - float actualTexZ = mod(int(texCoord0.z),2048); - float instanceLoop = floor(int(texCoord0.z)/2048); - texCoord0.z = actualTexZ; - vec4 colorMapColor = texture(sColorMap, texCoord0.stp); - - float red = colorMapColor[int(instanceLoop)]; - colorMapColor = vec4(red); - // Constant Light Contribution - outcol.rgb += uConstant * iVert.color.rgb; - - outcol *= colorMapColor; - - // Alpha Calculation - float alpha = iVert.color.a * colorMapColor.a ; - - // Dithering, does nothing if dithering is disabled - outcol = TDDither(outcol); - - outcol.rgb *= alpha; - - // Modern GL removed the implicit alpha test, so we need to apply - // it manually here. This function does nothing if alpha test is disabled. - TDAlphaTest(alpha); - - outcol.a = alpha; - oFragColor[0] = TDOutputSwizzle(outcol); - - - // TD_NUM_COLOR_BUFFERS will be set to the number of color buffers - // active in the render. By default we want to output zero to every - // buffer except the first one. - for (int i = 1; i < TD_NUM_COLOR_BUFFERS; i++) - { - oFragColor[i] = vec4(0.0); - } -} diff --git a/deps/glslang/Test/vk.relaxed.stagelink.0.0.vert b/deps/glslang/Test/vk.relaxed.stagelink.0.0.vert deleted file mode 100644 index 7f31c377..00000000 --- a/deps/glslang/Test/vk.relaxed.stagelink.0.0.vert +++ /dev/null @@ -1,126 +0,0 @@ -#version 460 -uniform int uTDInstanceIDOffset; -uniform int uTDNumInstances; -uniform float uTDAlphaTestVal; -#define TD_NUM_COLOR_BUFFERS 1 -#define TD_NUM_LIGHTS 0 -#define TD_NUM_SHADOWED_LIGHTS 0 -#define TD_NUM_ENV_LIGHTS 0 -#define TD_LIGHTS_ARRAY_SIZE 1 -#define TD_ENV_LIGHTS_ARRAY_SIZE 1 -#define TD_NUM_CAMERAS 1 -struct TDPhongResult -{ - vec3 diffuse; - vec3 specular; - vec3 specular2; - float shadowStrength; -}; -struct TDPBRResult -{ - vec3 diffuse; - vec3 specular; - float shadowStrength; -}; -struct TDMatrix -{ - mat4 world; - mat4 worldInverse; - mat4 worldCam; - mat4 worldCamInverse; - mat4 cam; - mat4 camInverse; - mat4 camProj; - mat4 camProjInverse; - mat4 proj; - mat4 projInverse; - mat4 worldCamProj; - mat4 worldCamProjInverse; - mat4 quadReproject; - mat3 worldForNormals; - mat3 camForNormals; - mat3 worldCamForNormals; -}; -layout(std140) uniform TDMatricesBlock { - TDMatrix uTDMats[TD_NUM_CAMERAS]; -}; -struct TDCameraInfo -{ - vec4 nearFar; - vec4 fog; - vec4 fogColor; - int renderTOPCameraIndex; -}; -layout(std140) uniform TDCameraInfoBlock { - TDCameraInfo uTDCamInfos[TD_NUM_CAMERAS]; -}; -struct TDGeneral -{ - vec4 ambientColor; - vec4 nearFar; - vec4 viewport; - vec4 viewportRes; - vec4 fog; - vec4 fogColor; -}; -layout(std140) uniform TDGeneralBlock { - TDGeneral uTDGeneral; -}; -layout(location = 0) in vec3 P; -layout(location = 1) in vec3 N; -layout(location = 2) in vec4 Cd; -layout(location = 3) in vec3 uv[8]; -vec4 TDWorldToProj(vec4 v); -vec4 TDWorldToProj(vec3 v); -vec4 TDWorldToProj(vec4 v, vec3 uv); -vec4 TDWorldToProj(vec3 v, vec3 uv); -int TDInstanceID(); -int TDCameraIndex(); -vec3 TDUVUnwrapCoord(); -/*********TOUCHDEFORMPREFIX**********/ -#define TD_NUM_BONES 0 - -vec3 TDInstanceTexCoord(int instanceID, vec3 t); -vec4 TDInstanceColor(int instanceID, vec4 curColor); - -vec4 TDDeform(vec4 pos); -vec4 TDDeform(vec3 pos); -vec3 TDInstanceTexCoord(vec3 t); -vec4 TDInstanceColor(vec4 curColor); -#line 1 - -out Vertex -{ - vec4 color; - vec3 worldSpacePos; - vec3 texCoord0; - flat int cameraIndex; - flat int instance; -} oVert; - -void main() -{ - - { // Avoid duplicate variable defs - vec3 texcoord = TDInstanceTexCoord(uv[0]); - oVert.texCoord0.stp = texcoord.stp; - } - // First deform the vertex and normal - // TDDeform always returns values in world space - oVert.instance = TDInstanceID(); - vec4 worldSpacePos = TDDeform(P); - vec3 uvUnwrapCoord = TDInstanceTexCoord(TDUVUnwrapCoord()); - gl_Position = TDWorldToProj(worldSpacePos, uvUnwrapCoord); - - - // This is here to ensure we only execute lighting etc. code - // when we need it. If picking is active we don't need lighting, so - // this entire block of code will be ommited from the compile. - // The TD_PICKING_ACTIVE define will be set automatically when - // picking is active. - - int cameraIndex = TDCameraIndex(); - oVert.cameraIndex = cameraIndex; - oVert.worldSpacePos.xyz = worldSpacePos.xyz; - oVert.color = TDInstanceColor(Cd); -} diff --git a/deps/glslang/Test/vk.relaxed.stagelink.0.1.frag b/deps/glslang/Test/vk.relaxed.stagelink.0.1.frag deleted file mode 100644 index 2a82b65d..00000000 --- a/deps/glslang/Test/vk.relaxed.stagelink.0.1.frag +++ /dev/null @@ -1,504 +0,0 @@ -#version 460 -uniform sampler2D sTDNoiseMap; -uniform sampler1D sTDSineLookup; -uniform sampler2D sTDWhite2D; -uniform sampler3D sTDWhite3D; -uniform sampler2DArray sTDWhite2DArray; -uniform samplerCube sTDWhiteCube; -uniform int uTDInstanceIDOffset; -uniform int uTDNumInstances; -uniform float uTDAlphaTestVal; -#define TD_NUM_COLOR_BUFFERS 1 -#define TD_NUM_LIGHTS 0 -#define TD_NUM_SHADOWED_LIGHTS 0 -#define TD_NUM_ENV_LIGHTS 0 -#define TD_LIGHTS_ARRAY_SIZE 1 -#define TD_ENV_LIGHTS_ARRAY_SIZE 1 -#define TD_NUM_CAMERAS 1 -struct TDLight -{ - vec4 position; - vec3 direction; - vec3 diffuse; - vec4 nearFar; - vec4 lightSize; - vec4 misc; - vec4 coneLookupScaleBias; - vec4 attenScaleBiasRoll; - mat4 shadowMapMatrix; - mat4 shadowMapCamMatrix; - vec4 shadowMapRes; - mat4 projMapMatrix; -}; -struct TDEnvLight -{ - vec3 color; - mat3 rotate; -}; -layout(std140) uniform TDLightBlock -{ - TDLight uTDLights[TD_LIGHTS_ARRAY_SIZE]; -}; -layout(std140) uniform TDEnvLightBlock -{ - TDEnvLight uTDEnvLights[TD_ENV_LIGHTS_ARRAY_SIZE]; -}; -layout(std430) readonly restrict buffer TDEnvLightBuffer -{ - vec3 shCoeffs[9]; -} uTDEnvLightBuffers[TD_ENV_LIGHTS_ARRAY_SIZE]; -struct TDPhongResult -{ - vec3 diffuse; - vec3 specular; - vec3 specular2; - float shadowStrength; -}; -struct TDPBRResult -{ - vec3 diffuse; - vec3 specular; - float shadowStrength; -}; -struct TDMatrix -{ - mat4 world; - mat4 worldInverse; - mat4 worldCam; - mat4 worldCamInverse; - mat4 cam; - mat4 camInverse; - mat4 camProj; - mat4 camProjInverse; - mat4 proj; - mat4 projInverse; - mat4 worldCamProj; - mat4 worldCamProjInverse; - mat4 quadReproject; - mat3 worldForNormals; - mat3 camForNormals; - mat3 worldCamForNormals; -}; -layout(std140) uniform TDMatricesBlock { - TDMatrix uTDMats[TD_NUM_CAMERAS]; -}; -struct TDCameraInfo -{ - vec4 nearFar; - vec4 fog; - vec4 fogColor; - int renderTOPCameraIndex; -}; -layout(std140) uniform TDCameraInfoBlock { - TDCameraInfo uTDCamInfos[TD_NUM_CAMERAS]; -}; -struct TDGeneral -{ - vec4 ambientColor; - vec4 nearFar; - vec4 viewport; - vec4 viewportRes; - vec4 fog; - vec4 fogColor; -}; -layout(std140) uniform TDGeneralBlock { - TDGeneral uTDGeneral; -}; - -layout(binding = 15) uniform samplerBuffer sTDInstanceT; -layout(binding = 16) uniform samplerBuffer sTDInstanceTexCoord; -layout(binding = 17) uniform samplerBuffer sTDInstanceColor; -vec4 TDDither(vec4 color); -vec3 TDHSVToRGB(vec3 c); -vec3 TDRGBToHSV(vec3 c); -#define PI 3.14159265 - -vec4 TDColor(vec4 color) { return color; } -void TDCheckOrderIndTrans() { -} -void TDCheckDiscard() { - TDCheckOrderIndTrans(); -} -vec4 TDDither(vec4 color) -{ - float d = texture(sTDNoiseMap, - gl_FragCoord.xy / 256.0).r; - d -= 0.5; - d /= 256.0; - return vec4(color.rgb + d, color.a); -} -bool TDFrontFacing(vec3 pos, vec3 normal) -{ - return gl_FrontFacing; -} -float TDAttenuateLight(int index, float lightDist) -{ - return 1.0; -} -void TDAlphaTest(float alpha) { -} -float TDHardShadow(int lightIndex, vec3 worldSpacePos) -{ return 0.0; } -float TDSoftShadow(int lightIndex, vec3 worldSpacePos, int samples, int steps) -{ return 0.0; } -float TDSoftShadow(int lightIndex, vec3 worldSpacePos) -{ return 0.0; } -float TDShadow(int lightIndex, vec3 worldSpacePos) -{ return 0.0; } -vec3 TDEquirectangularToCubeMap(vec2 mapCoord); -vec2 TDCubeMapToEquirectangular(vec3 envMapCoord); -vec2 TDCubeMapToEquirectangular(vec3 envMapCoord, out float mipMapBias); -vec2 TDTexGenSphere(vec3 envMapCoord); -float iTDRadicalInverse_VdC(uint bits) -{ - bits = (bits << 16u) | (bits >> 16u); - bits = ((bits & 0x55555555u) << 1u) | ((bits & 0xAAAAAAAAu) >> 1u); - bits = ((bits & 0x33333333u) << 2u) | ((bits & 0xCCCCCCCCu) >> 2u); - bits = ((bits & 0x0F0F0F0Fu) << 4u) | ((bits & 0xF0F0F0F0u) >> 4u); - bits = ((bits & 0x00FF00FFu) << 8u) | ((bits & 0xFF00FF00u) >> 8u); - return float(bits) * 2.3283064365386963e-10; // / 0x100000000 -} -vec2 iTDHammersley(uint i, uint N) -{ - return vec2(float(i) / float(N), iTDRadicalInverse_VdC(i)); -} -vec3 iTDImportanceSampleGGX(vec2 Xi, float roughness2, vec3 N) -{ - float a = roughness2; - float phi = 2 * 3.14159265 * Xi.x; - float cosTheta = sqrt( (1 - Xi.y) / (1 + (a*a - 1) * Xi.y) ); - float sinTheta = sqrt( 1 - cosTheta * cosTheta ); - - vec3 H; - H.x = sinTheta * cos(phi); - H.y = sinTheta * sin(phi); - H.z = cosTheta; - - vec3 upVector = abs(N.z) < 0.999 ? vec3(0, 0, 1) : vec3(1, 0, 0); - vec3 tangentX = normalize(cross(upVector, N)); - vec3 tangentY = cross(N, tangentX); - - // Tangent to world space - vec3 worldResult = tangentX * H.x + tangentY * H.y + N * H.z; - return worldResult; -} -float iTDDistributionGGX(vec3 normal, vec3 half_vector, float roughness2) -{ - const float Epsilon = 0.000001; - - float NdotH = clamp(dot(normal, half_vector), Epsilon, 1.0); - - float alpha2 = roughness2 * roughness2; - - float denom = NdotH * NdotH * (alpha2 - 1.0) + 1.0; - denom = max(1e-8, denom); - return alpha2 / (PI * denom * denom); -} -vec3 iTDCalcF(vec3 F0, float VdotH) { - return F0 + (vec3(1.0) - F0) * pow(2.0, (-5.55473*VdotH - 6.98316) * VdotH); -} - -float iTDCalcG(float NdotL, float NdotV, float k) { - float Gl = 1.0 / (NdotL * (1.0 - k) + k); - float Gv = 1.0 / (NdotV * (1.0 - k) + k); - return Gl * Gv; -} -// 0 - All options -TDPBRResult TDLightingPBR(int index,vec3 diffuseColor,vec3 specularColor,vec3 worldSpacePos,vec3 normal,float shadowStrength,vec3 shadowColor,vec3 camVector,float roughness) -{ - TDPBRResult res; - return res; -} -// 0 - All options -void TDLightingPBR(inout vec3 diffuseContrib,inout vec3 specularContrib,inout float shadowStrengthOut,int index,vec3 diffuseColor,vec3 specularColor,vec3 worldSpacePos,vec3 normal,float shadowStrength,vec3 shadowColor,vec3 camVector,float roughness) -{ - TDPBRResult res = TDLightingPBR(index,diffuseColor,specularColor,worldSpacePos,normal,shadowStrength,shadowColor,camVector,roughness); diffuseContrib = res.diffuse; - specularContrib = res.specular; - shadowStrengthOut = res.shadowStrength; -} -// 0 - All options -void TDLightingPBR(inout vec3 diffuseContrib,inout vec3 specularContrib,int index,vec3 diffuseColor,vec3 specularColor,vec3 worldSpacePos,vec3 normal,float shadowStrength,vec3 shadowColor,vec3 camVector,float roughness) -{ - TDPBRResult res = TDLightingPBR(index,diffuseColor,specularColor,worldSpacePos,normal,shadowStrength,shadowColor,camVector,roughness); diffuseContrib = res.diffuse; - specularContrib = res.specular; -} -// 0 - All options -TDPBRResult TDEnvLightingPBR(int index,vec3 diffuseColor,vec3 specularColor,vec3 normal,vec3 camVector,float roughness,float ambientOcclusion) -{ - TDPBRResult res; - return res; -} -// 0 - All options -void TDEnvLightingPBR(inout vec3 diffuseContrib,inout vec3 specularContrib,int index,vec3 diffuseColor,vec3 specularColor,vec3 normal,vec3 camVector,float roughness,float ambientOcclusion) -{ - TDPBRResult res = TDEnvLightingPBR(index, diffuseColor, specularColor, normal, camVector, roughness, ambientOcclusion); - diffuseContrib = res.diffuse; - specularContrib = res.specular; -} -// 0 - All options -TDPhongResult TDLighting(int index,vec3 worldSpacePos,vec3 normal,float shadowStrength,vec3 shadowColor,vec3 camVector,float shininess,float shininess2) -{ - TDPhongResult res; - switch (index) - { - default: - res.diffuse = vec3(0.0); - res.specular = vec3(0.0); - res.specular2 = vec3(0.0); - res.shadowStrength = 0.0; - break; - } - return res; -} -// 0 - Legacy -void TDLighting(inout vec3 diffuseContrib,inout vec3 specularContrib,inout vec3 specularContrib2,inout float shadowStrengthOut,int index,vec3 worldSpacePos,vec3 normal,float shadowStrength,vec3 shadowColor,vec3 camVector,float shininess,float shininess2) -{ - TDPhongResult res; - switch (index) - { - default: - res.diffuse = vec3(0.0); - res.specular = vec3(0.0); - res.specular2 = vec3(0.0); - res.shadowStrength = 0.0; - break; - } - diffuseContrib = res.diffuse; - specularContrib = res.specular; - specularContrib2 = res.specular2; - shadowStrengthOut = res.shadowStrength; -} -// 0 - Legacy -void TDLighting(inout vec3 diffuseContrib,inout vec3 specularContrib,inout vec3 specularContrib2,int index,vec3 worldSpacePos,vec3 normal,float shadowStrength,vec3 shadowColor,vec3 camVector,float shininess,float shininess2) -{ - TDPhongResult res; - switch (index) - { - default: - res.diffuse = vec3(0.0); - res.specular = vec3(0.0); - res.specular2 = vec3(0.0); - res.shadowStrength = 0.0; - break; - } - diffuseContrib = res.diffuse; - specularContrib = res.specular; - specularContrib2 = res.specular2; -} -// 1 - Without specular2 -void TDLighting(inout vec3 diffuseContrib,inout vec3 specularContrib,int index,vec3 worldSpacePos,vec3 normal,float shadowStrength,vec3 shadowColor,vec3 camVector,float shininess) -{ - TDPhongResult res; - switch (index) - { - default: - res.diffuse = vec3(0.0); - res.specular = vec3(0.0); - res.specular2 = vec3(0.0); - res.shadowStrength = 0.0; - break; - } - diffuseContrib = res.diffuse; - specularContrib = res.specular; -} -// 2 - Without shadows -void TDLighting(inout vec3 diffuseContrib,inout vec3 specularContrib,inout vec3 specularContrib2,int index,vec3 worldSpacePos,vec3 normal,vec3 camVector,float shininess,float shininess2) -{ - TDPhongResult res; - switch (index) - { - default: - res.diffuse = vec3(0.0); - res.specular = vec3(0.0); - res.specular2 = vec3(0.0); - res.shadowStrength = 0.0; - break; - } - diffuseContrib = res.diffuse; - specularContrib = res.specular; - specularContrib2 = res.specular2; -} -// 3 - diffuse and specular only -void TDLighting(inout vec3 diffuseContrib,inout vec3 specularContrib,int index,vec3 worldSpacePos,vec3 normal,vec3 camVector,float shininess) -{ - TDPhongResult res; - switch (index) - { - default: - res.diffuse = vec3(0.0); - res.specular = vec3(0.0); - res.specular2 = vec3(0.0); - res.shadowStrength = 0.0; - break; - } - diffuseContrib = res.diffuse; - specularContrib = res.specular; -} -// 4 - Diffuse only -void TDLighting(inout vec3 diffuseContrib,int index, vec3 worldSpacePos, vec3 normal) -{ - TDPhongResult res; - switch (index) - { - default: - res.diffuse = vec3(0.0); - res.specular = vec3(0.0); - res.specular2 = vec3(0.0); - res.shadowStrength = 0.0; - break; - } - diffuseContrib = res.diffuse; -} -// 5 - diffuse only with shadows -void TDLighting(inout vec3 diffuseContrib,int index,vec3 worldSpacePos,vec3 normal,float shadowStrength,vec3 shadowColor) -{ - TDPhongResult res; - switch (index) - { - default: - res.diffuse = vec3(0.0); - res.specular = vec3(0.0); - res.specular2 = vec3(0.0); - res.shadowStrength = 0.0; - break; - } - diffuseContrib = res.diffuse; -} -vec4 TDProjMap(int index, vec3 worldSpacePos, vec4 defaultColor) { - switch (index) - { - default: return defaultColor; - } -} -vec4 TDFog(vec4 color, vec3 lightingSpacePosition, int cameraIndex) { - switch (cameraIndex) { - default: - case 0: - { - return color; - } - } -} -vec4 TDFog(vec4 color, vec3 lightingSpacePosition) -{ - return TDFog(color, lightingSpacePosition, 0); -} -vec3 TDInstanceTexCoord(int index, vec3 t) { - vec3 v; - int coord = index; - vec4 samp = texelFetch(sTDInstanceTexCoord, coord); - v[0] = t.s; - v[1] = t.t; - v[2] = samp[0]; - t.stp = v.stp; - return t; -} -bool TDInstanceActive(int index) { - index -= uTDInstanceIDOffset; - float v; - int coord = index; - vec4 samp = texelFetch(sTDInstanceT, coord); - v = samp[0]; - return v != 0.0; -} -vec3 iTDInstanceTranslate(int index, out bool instanceActive) { - int origIndex = index; - index -= uTDInstanceIDOffset; - vec3 v; - int coord = index; - vec4 samp = texelFetch(sTDInstanceT, coord); - v[0] = samp[1]; - v[1] = samp[2]; - v[2] = samp[3]; - instanceActive = samp[0] != 0.0; - return v; -} -vec3 TDInstanceTranslate(int index) { - index -= uTDInstanceIDOffset; - vec3 v; - int coord = index; - vec4 samp = texelFetch(sTDInstanceT, coord); - v[0] = samp[1]; - v[1] = samp[2]; - v[2] = samp[3]; - return v; -} -mat3 TDInstanceRotateMat(int index) { - index -= uTDInstanceIDOffset; - vec3 v = vec3(0.0, 0.0, 0.0); - mat3 m = mat3(1.0); -{ - mat3 r; -} - return m; -} -vec3 TDInstanceScale(int index) { - index -= uTDInstanceIDOffset; - vec3 v = vec3(1.0, 1.0, 1.0); - return v; -} -vec3 TDInstancePivot(int index) { - index -= uTDInstanceIDOffset; - vec3 v = vec3(0.0, 0.0, 0.0); - return v; -} -vec3 TDInstanceRotTo(int index) { - index -= uTDInstanceIDOffset; - vec3 v = vec3(0.0, 0.0, 1.0); - return v; -} -vec3 TDInstanceRotUp(int index) { - index -= uTDInstanceIDOffset; - vec3 v = vec3(0.0, 1.0, 0.0); - return v; -} -mat4 TDInstanceMat(int id) { - bool instanceActive = true; - vec3 t = iTDInstanceTranslate(id, instanceActive); - if (!instanceActive) - { - return mat4(0.0); - } - mat4 m = mat4(1.0); - { - vec3 tt = t; - m[3][0] += m[0][0]*tt.x; - m[3][1] += m[0][1]*tt.x; - m[3][2] += m[0][2]*tt.x; - m[3][3] += m[0][3]*tt.x; - m[3][0] += m[1][0]*tt.y; - m[3][1] += m[1][1]*tt.y; - m[3][2] += m[1][2]*tt.y; - m[3][3] += m[1][3]*tt.y; - m[3][0] += m[2][0]*tt.z; - m[3][1] += m[2][1]*tt.z; - m[3][2] += m[2][2]*tt.z; - m[3][3] += m[2][3]*tt.z; - } - return m; -} -mat3 TDInstanceMat3(int id) { - mat3 m = mat3(1.0); - return m; -} -mat3 TDInstanceMat3ForNorm(int id) { - mat3 m = TDInstanceMat3(id); - return m; -} -vec4 TDInstanceColor(int index, vec4 curColor) { - index -= uTDInstanceIDOffset; - vec4 v; - int coord = index; - vec4 samp = texelFetch(sTDInstanceColor, coord); - v[0] = samp[0]; - v[1] = samp[1]; - v[2] = samp[2]; - v[3] = 1.0; - curColor[0] = v[0]; -; - curColor[1] = v[1]; -; - curColor[2] = v[2]; -; - return curColor; -} diff --git a/deps/glslang/Test/vk.relaxed.stagelink.0.1.vert b/deps/glslang/Test/vk.relaxed.stagelink.0.1.vert deleted file mode 100644 index 3c5de986..00000000 --- a/deps/glslang/Test/vk.relaxed.stagelink.0.1.vert +++ /dev/null @@ -1,242 +0,0 @@ -#version 460 -layout(location = 0) in vec3 P; -layout(location = 1) in vec3 N; -layout(location = 2) in vec4 Cd; -layout(location = 3) in vec3 uv[8]; -uniform int uTDInstanceIDOffset; -uniform int uTDNumInstances; -uniform float uTDAlphaTestVal; -#define TD_NUM_COLOR_BUFFERS 1 -#define TD_NUM_LIGHTS 0 -#define TD_NUM_SHADOWED_LIGHTS 0 -#define TD_NUM_ENV_LIGHTS 0 -#define TD_LIGHTS_ARRAY_SIZE 1 -#define TD_ENV_LIGHTS_ARRAY_SIZE 1 -#define TD_NUM_CAMERAS 1 -struct TDLight -{ - vec4 position; - vec3 direction; - vec3 diffuse; - vec4 nearFar; - vec4 lightSize; - vec4 misc; - vec4 coneLookupScaleBias; - vec4 attenScaleBiasRoll; - mat4 shadowMapMatrix; - mat4 shadowMapCamMatrix; - vec4 shadowMapRes; - mat4 projMapMatrix; -}; -struct TDEnvLight -{ - vec3 color; - mat3 rotate; -}; -layout(std140) uniform TDLightBlock -{ - TDLight uTDLights[TD_LIGHTS_ARRAY_SIZE]; -}; -layout(std140) uniform TDEnvLightBlock -{ - TDEnvLight uTDEnvLights[TD_ENV_LIGHTS_ARRAY_SIZE]; -}; -layout(std430) readonly restrict buffer TDEnvLightBuffer -{ - vec3 shCoeffs[9]; -} uTDEnvLightBuffers[TD_ENV_LIGHTS_ARRAY_SIZE]; -struct TDPhongResult -{ - vec3 diffuse; - vec3 specular; - vec3 specular2; - float shadowStrength; -}; -struct TDPBRResult -{ - vec3 diffuse; - vec3 specular; - float shadowStrength; -}; -struct TDMatrix -{ - mat4 world; - mat4 worldInverse; - mat4 worldCam; - mat4 worldCamInverse; - mat4 cam; - mat4 camInverse; - mat4 camProj; - mat4 camProjInverse; - mat4 proj; - mat4 projInverse; - mat4 worldCamProj; - mat4 worldCamProjInverse; - mat4 quadReproject; - mat3 worldForNormals; - mat3 camForNormals; - mat3 worldCamForNormals; -}; -layout(std140) uniform TDMatricesBlock { - TDMatrix uTDMats[TD_NUM_CAMERAS]; -}; -struct TDCameraInfo -{ - vec4 nearFar; - vec4 fog; - vec4 fogColor; - int renderTOPCameraIndex; -}; -layout(std140) uniform TDCameraInfoBlock { - TDCameraInfo uTDCamInfos[TD_NUM_CAMERAS]; -}; -struct TDGeneral -{ - vec4 ambientColor; - vec4 nearFar; - vec4 viewport; - vec4 viewportRes; - vec4 fog; - vec4 fogColor; -}; -layout(std140) uniform TDGeneralBlock { - TDGeneral uTDGeneral; -}; -layout (rgba8) uniform image2D mTD2DImageOutputs[1]; -layout (rgba8) uniform image2DArray mTD2DArrayImageOutputs[1]; -layout (rgba8) uniform image3D mTD3DImageOutputs[1]; -layout (rgba8) uniform imageCube mTDCubeImageOutputs[1]; - -mat4 TDInstanceMat(int instanceID); -mat3 TDInstanceMat3(int instanceID); -vec3 TDInstanceTranslate(int instanceID); -bool TDInstanceActive(int instanceID); -mat3 TDInstanceRotateMat(int instanceID); -vec3 TDInstanceScale(int instanceID); -vec3 TDInstanceTexCoord(int instanceID, vec3 t); -vec4 TDInstanceColor(int instanceID, vec4 curColor); -vec4 TDInstanceCustomAttrib0(int instanceID); -vec4 TDInstanceCustomAttrib1(int instanceID); -vec4 TDInstanceCustomAttrib2(int instanceID); -vec4 TDInstanceCustomAttrib3(int instanceID); -vec4 TDInstanceCustomAttrib4(int instanceID); -vec4 TDInstanceCustomAttrib5(int instanceID); -vec4 TDInstanceCustomAttrib6(int instanceID); -vec4 TDInstanceCustomAttrib7(int instanceID); -vec4 TDInstanceCustomAttrib8(int instanceID); -vec4 TDInstanceCustomAttrib9(int instanceID); -vec4 TDInstanceCustomAttrib10(int instanceID); -vec4 TDInstanceCustomAttrib11(int instanceID); -uint TDInstanceTextureIndex(int instanceIndex); -vec4 TDInstanceTexture(uint texIndex, vec3 uv); -vec4 TDInstanceTexture(uint texIndex, vec2 uv); - -vec4 TDDeform(vec4 pos); -vec4 TDDeform(vec3 pos); -vec4 TDDeform(int instanceID, vec3 pos); -vec3 TDDeformVec(vec3 v); -vec3 TDDeformVec(int instanceID, vec3 v); -vec3 TDDeformNorm(vec3 v); -vec3 TDDeformNorm(int instanceID, vec3 v); -vec4 TDSkinnedDeform(vec4 pos); -vec3 TDSkinnedDeformVec(vec3 vec); -vec3 TDSkinnedDeformNorm(vec3 vec); -vec4 TDInstanceDeform(vec4 pos); -vec3 TDInstanceDeformVec(vec3 vec); -vec3 TDInstanceDeformNorm(vec3 vec); -vec4 TDInstanceDeform(int instanceID, vec4 pos); -vec3 TDInstanceDeformVec(int instanceID, vec3 vec); -vec3 TDInstanceDeformNorm(int instanceID, vec3 vec); -vec3 TDFastDeformTangent(vec3 oldNorm, vec4 oldTangent, vec3 deformedNorm); -mat4 TDBoneMat(int boneIndex); -mat4 TDInstanceMat(); -mat3 TDInstanceMat3(); -vec3 TDInstanceTranslate(); -bool TDInstanceActive(); -mat3 TDInstanceRotateMat(); -vec3 TDInstanceScale(); -vec3 TDInstanceTexCoord(vec3 t); -vec4 TDInstanceColor(vec4 curColor); -vec4 TDPointColor(); -#ifdef TD_PICKING_ACTIVE -out TDPickVertex { - vec3 sopSpacePosition; - vec3 camSpacePosition; - vec3 worldSpacePosition; - vec3 sopSpaceNormal; - vec3 camSpaceNormal; - vec3 worldSpaceNormal; - vec3 uv[1]; - flat int pickId; - flat int instanceId; - vec4 color; -} oTDPickVert; -#define vTDPickVert oTDPickVert -#endif -vec4 iTDCamToProj(vec4 v, vec3 uv, int cameraIndex, bool applyPickMod) -{ - if (!TDInstanceActive()) - return vec4(2, 2, 2, 0); - v = uTDMats[0].proj * v; - return v; -} -vec4 iTDWorldToProj(vec4 v, vec3 uv, int cameraIndex, bool applyPickMod) { - if (!TDInstanceActive()) - return vec4(2, 2, 2, 0); - v = uTDMats[0].camProj * v; - return v; -} -vec4 TDDeform(vec4 pos); -vec4 TDDeform(vec3 pos); -vec4 TDInstanceColor(vec4 curColor); -vec3 TDInstanceTexCoord(vec3 t); -int TDInstanceID() { - return gl_InstanceID + uTDInstanceIDOffset; -} -int TDCameraIndex() { - return 0; -} -vec3 TDUVUnwrapCoord() { - return uv[0]; -} -#ifdef TD_PICKING_ACTIVE -uniform int uTDPickId; -#endif -int TDPickID() { -#ifdef TD_PICKING_ACTIVE - return uTDPickId; -#else - return 0; -#endif -} -float iTDConvertPickId(int id) { - id |= 1073741824; - return intBitsToFloat(id); -} - - void TDWritePickingValues() { -#ifdef TD_PICKING_ACTIVE - vec4 worldPos = TDDeform(P); - vec4 camPos = uTDMats[TDCameraIndex()].cam * worldPos; - oTDPickVert.pickId = TDPickID(); -#endif -} -vec4 TDWorldToProj(vec4 v, vec3 uv) -{ - return iTDWorldToProj(v, uv, TDCameraIndex(), true); -} -vec4 TDWorldToProj(vec3 v, vec3 uv) -{ - return TDWorldToProj(vec4(v, 1.0), uv); -} -vec4 TDWorldToProj(vec4 v) -{ - return TDWorldToProj(v, vec3(0.0)); -} -vec4 TDWorldToProj(vec3 v) -{ - return TDWorldToProj(vec4(v, 1.0)); -} -vec4 TDPointColor() { - return Cd; -} diff --git a/deps/glslang/Test/vk.relaxed.stagelink.0.2.frag b/deps/glslang/Test/vk.relaxed.stagelink.0.2.frag deleted file mode 100644 index 27bd540d..00000000 --- a/deps/glslang/Test/vk.relaxed.stagelink.0.2.frag +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -vec4 TDOutputSwizzle(vec4 c) -{ - return c.rgba; -} -uvec4 TDOutputSwizzle(uvec4 c) -{ - return c.rgba; -} diff --git a/deps/glslang/Test/vk.relaxed.stagelink.0.2.vert b/deps/glslang/Test/vk.relaxed.stagelink.0.2.vert deleted file mode 100644 index 69c0b21b..00000000 --- a/deps/glslang/Test/vk.relaxed.stagelink.0.2.vert +++ /dev/null @@ -1,320 +0,0 @@ -#version 460 -uniform int uTDInstanceIDOffset; -uniform int uTDNumInstances; -uniform float uTDAlphaTestVal; -#define TD_NUM_COLOR_BUFFERS 1 -#define TD_NUM_LIGHTS 0 -#define TD_NUM_SHADOWED_LIGHTS 0 -#define TD_NUM_ENV_LIGHTS 0 -#define TD_LIGHTS_ARRAY_SIZE 1 -#define TD_ENV_LIGHTS_ARRAY_SIZE 1 -#define TD_NUM_CAMERAS 1 -struct TDLight -{ - vec4 position; - vec3 direction; - vec3 diffuse; - vec4 nearFar; - vec4 lightSize; - vec4 misc; - vec4 coneLookupScaleBias; - vec4 attenScaleBiasRoll; - mat4 shadowMapMatrix; - mat4 shadowMapCamMatrix; - vec4 shadowMapRes; - mat4 projMapMatrix; -}; -struct TDEnvLight -{ - vec3 color; - mat3 rotate; -}; -layout(std140) uniform TDLightBlock -{ - TDLight uTDLights[TD_LIGHTS_ARRAY_SIZE]; -}; -layout(std140) uniform TDEnvLightBlock -{ - TDEnvLight uTDEnvLights[TD_ENV_LIGHTS_ARRAY_SIZE]; -}; -layout(std430) readonly restrict buffer TDEnvLightBuffer -{ - vec3 shCoeffs[9]; -} uTDEnvLightBuffers[TD_ENV_LIGHTS_ARRAY_SIZE]; -struct TDPhongResult -{ - vec3 diffuse; - vec3 specular; - vec3 specular2; - float shadowStrength; -}; -struct TDPBRResult -{ - vec3 diffuse; - vec3 specular; - float shadowStrength; -}; -struct TDMatrix -{ - mat4 world; - mat4 worldInverse; - mat4 worldCam; - mat4 worldCamInverse; - mat4 cam; - mat4 camInverse; - mat4 camProj; - mat4 camProjInverse; - mat4 proj; - mat4 projInverse; - mat4 worldCamProj; - mat4 worldCamProjInverse; - mat4 quadReproject; - mat3 worldForNormals; - mat3 camForNormals; - mat3 worldCamForNormals; -}; -layout(std140) uniform TDMatricesBlock { - TDMatrix uTDMats[TD_NUM_CAMERAS]; -}; -struct TDCameraInfo -{ - vec4 nearFar; - vec4 fog; - vec4 fogColor; - int renderTOPCameraIndex; -}; -layout(std140) uniform TDCameraInfoBlock { - TDCameraInfo uTDCamInfos[TD_NUM_CAMERAS]; -}; -struct TDGeneral -{ - vec4 ambientColor; - vec4 nearFar; - vec4 viewport; - vec4 viewportRes; - vec4 fog; - vec4 fogColor; -}; -layout(std140) uniform TDGeneralBlock { - TDGeneral uTDGeneral; -}; - -layout(binding = 15) uniform samplerBuffer sTDInstanceT; -layout(binding = 16) uniform samplerBuffer sTDInstanceTexCoord; -layout(binding = 17) uniform samplerBuffer sTDInstanceColor; -#define TD_NUM_BONES 0 -vec4 TDWorldToProj(vec4 v); -vec4 TDWorldToProj(vec3 v); -vec4 TDWorldToProj(vec4 v, vec3 uv); -vec4 TDWorldToProj(vec3 v, vec3 uv); -int TDPickID(); -int TDInstanceID(); -int TDCameraIndex(); -vec3 TDUVUnwrapCoord(); -vec3 TDInstanceTexCoord(int index, vec3 t) { - vec3 v; - int coord = index; - vec4 samp = texelFetch(sTDInstanceTexCoord, coord); - v[0] = t.s; - v[1] = t.t; - v[2] = samp[0]; - t.stp = v.stp; - return t; -} -bool TDInstanceActive(int index) { - index -= uTDInstanceIDOffset; - float v; - int coord = index; - vec4 samp = texelFetch(sTDInstanceT, coord); - v = samp[0]; - return v != 0.0; -} -vec3 iTDInstanceTranslate(int index, out bool instanceActive) { - int origIndex = index; - index -= uTDInstanceIDOffset; - vec3 v; - int coord = index; - vec4 samp = texelFetch(sTDInstanceT, coord); - v[0] = samp[1]; - v[1] = samp[2]; - v[2] = samp[3]; - instanceActive = samp[0] != 0.0; - return v; -} -vec3 TDInstanceTranslate(int index) { - index -= uTDInstanceIDOffset; - vec3 v; - int coord = index; - vec4 samp = texelFetch(sTDInstanceT, coord); - v[0] = samp[1]; - v[1] = samp[2]; - v[2] = samp[3]; - return v; -} -mat3 TDInstanceRotateMat(int index) { - index -= uTDInstanceIDOffset; - vec3 v = vec3(0.0, 0.0, 0.0); - mat3 m = mat3(1.0); -{ - mat3 r; -} - return m; -} -vec3 TDInstanceScale(int index) { - index -= uTDInstanceIDOffset; - vec3 v = vec3(1.0, 1.0, 1.0); - return v; -} -vec3 TDInstancePivot(int index) { - index -= uTDInstanceIDOffset; - vec3 v = vec3(0.0, 0.0, 0.0); - return v; -} -vec3 TDInstanceRotTo(int index) { - index -= uTDInstanceIDOffset; - vec3 v = vec3(0.0, 0.0, 1.0); - return v; -} -vec3 TDInstanceRotUp(int index) { - index -= uTDInstanceIDOffset; - vec3 v = vec3(0.0, 1.0, 0.0); - return v; -} -mat4 TDInstanceMat(int id) { - bool instanceActive = true; - vec3 t = iTDInstanceTranslate(id, instanceActive); - if (!instanceActive) - { - return mat4(0.0); - } - mat4 m = mat4(1.0); - { - vec3 tt = t; - m[3][0] += m[0][0]*tt.x; - m[3][1] += m[0][1]*tt.x; - m[3][2] += m[0][2]*tt.x; - m[3][3] += m[0][3]*tt.x; - m[3][0] += m[1][0]*tt.y; - m[3][1] += m[1][1]*tt.y; - m[3][2] += m[1][2]*tt.y; - m[3][3] += m[1][3]*tt.y; - m[3][0] += m[2][0]*tt.z; - m[3][1] += m[2][1]*tt.z; - m[3][2] += m[2][2]*tt.z; - m[3][3] += m[2][3]*tt.z; - } - return m; -} -mat3 TDInstanceMat3(int id) { - mat3 m = mat3(1.0); - return m; -} -mat3 TDInstanceMat3ForNorm(int id) { - mat3 m = TDInstanceMat3(id); - return m; -} -vec4 TDInstanceColor(int index, vec4 curColor) { - index -= uTDInstanceIDOffset; - vec4 v; - int coord = index; - vec4 samp = texelFetch(sTDInstanceColor, coord); - v[0] = samp[0]; - v[1] = samp[1]; - v[2] = samp[2]; - v[3] = 1.0; - curColor[0] = v[0]; -; - curColor[1] = v[1]; -; - curColor[2] = v[2]; -; - return curColor; -} -vec4 TDInstanceDeform(int id, vec4 pos) { - pos = TDInstanceMat(id) * pos; - return uTDMats[TDCameraIndex()].world * pos; -} - -vec3 TDInstanceDeformVec(int id, vec3 vec) -{ - mat3 m = TDInstanceMat3(id); - return mat3(uTDMats[TDCameraIndex()].world) * (m * vec); -} -vec3 TDInstanceDeformNorm(int id, vec3 vec) -{ - mat3 m = TDInstanceMat3ForNorm(id); - return mat3(uTDMats[TDCameraIndex()].worldForNormals) * (m * vec); -} -vec4 TDInstanceDeform(vec4 pos) { - return TDInstanceDeform(TDInstanceID(), pos); -} -vec3 TDInstanceDeformVec(vec3 vec) { - return TDInstanceDeformVec(TDInstanceID(), vec); -} -vec3 TDInstanceDeformNorm(vec3 vec) { - return TDInstanceDeformNorm(TDInstanceID(), vec); -} -bool TDInstanceActive() { return TDInstanceActive(TDInstanceID()); } -vec3 TDInstanceTranslate() { return TDInstanceTranslate(TDInstanceID()); } -mat3 TDInstanceRotateMat() { return TDInstanceRotateMat(TDInstanceID()); } -vec3 TDInstanceScale() { return TDInstanceScale(TDInstanceID()); } -mat4 TDInstanceMat() { return TDInstanceMat(TDInstanceID()); - } -mat3 TDInstanceMat3() { return TDInstanceMat3(TDInstanceID()); -} -vec3 TDInstanceTexCoord(vec3 t) { - return TDInstanceTexCoord(TDInstanceID(), t); -} -vec4 TDInstanceColor(vec4 curColor) { - return TDInstanceColor(TDInstanceID(), curColor); -} -vec4 TDSkinnedDeform(vec4 pos) { return pos; } - -vec3 TDSkinnedDeformVec(vec3 vec) { return vec; } - -vec3 TDFastDeformTangent(vec3 oldNorm, vec4 oldTangent, vec3 deformedNorm) -{ return oldTangent.xyz; } -mat4 TDBoneMat(int index) { - return mat4(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1); -} -vec4 TDDeform(vec4 pos) { - pos = TDSkinnedDeform(pos); - pos = TDInstanceDeform(pos); - return pos; -} - -vec4 TDDeform(int instanceID, vec3 p) { - vec4 pos = vec4(p, 1.0); - pos = TDSkinnedDeform(pos); - pos = TDInstanceDeform(instanceID, pos); - return pos; -} - -vec4 TDDeform(vec3 pos) { - return TDDeform(TDInstanceID(), pos); -} - -vec3 TDDeformVec(int instanceID, vec3 vec) { - vec = TDSkinnedDeformVec(vec); - vec = TDInstanceDeformVec(instanceID, vec); - return vec; -} - -vec3 TDDeformVec(vec3 vec) { - return TDDeformVec(TDInstanceID(), vec); -} - -vec3 TDDeformNorm(int instanceID, vec3 vec) { - vec = TDSkinnedDeformVec(vec); - vec = TDInstanceDeformNorm(instanceID, vec); - return vec; -} - -vec3 TDDeformNorm(vec3 vec) { - return TDDeformNorm(TDInstanceID(), vec); -} - -vec3 TDSkinnedDeformNorm(vec3 vec) { - vec = TDSkinnedDeformVec(vec); - return vec; -} diff --git a/deps/glslang/Test/vk.relaxed.stagelink.frag b/deps/glslang/Test/vk.relaxed.stagelink.frag deleted file mode 100644 index d1eebba0..00000000 --- a/deps/glslang/Test/vk.relaxed.stagelink.frag +++ /dev/null @@ -1,28 +0,0 @@ -#version 460 - -layout (location = 0) in vec4 io; - -out vec4 o; - -// default uniforms will be gathered into a uniform block -// final global block will merge uniforms from all linked files -uniform vec4 a; // declared in both stages -uniform vec2 b1; // declaration order swapped in other stage -uniform vec2 b2; -uniform vec4 c1; // not delcared in other file -uniform vec4 d; - -// final global buffer will berge buffers from all linked files -layout (binding = 0) uniform atomic_uint counter1; -layout (binding = 0) uniform atomic_uint counter2; - -vec4 foo() { - uint j = atomicCounterIncrement(counter1) + atomicCounterDecrement(counter2); - vec4 v = a + vec4(b1.x, b1.y, b2.x, b2.y) + c1 + d; - - return float(j) * v; -} - -void main() { - o = io + foo(); -} \ No newline at end of file diff --git a/deps/glslang/Test/vk.relaxed.stagelink.vert b/deps/glslang/Test/vk.relaxed.stagelink.vert deleted file mode 100644 index d2ac6af6..00000000 --- a/deps/glslang/Test/vk.relaxed.stagelink.vert +++ /dev/null @@ -1,31 +0,0 @@ -#version 460 - -layout (location = 0) out vec4 io; - -// default uniforms will be gathered into a uniform block -// final global block will merge uniforms from all linked files -uniform vec4 a; // declared in both stages -uniform vec2 b2; // declaration order swapped in other stage -uniform vec2 b1; -uniform vec4 c2; // not delcared in other file -uniform vec4 d; - -uniform vec4 s[4]; - -layout (binding = 0) uniform atomic_uint counter3; -layout (binding = 0) uniform atomic_uint counter2; - -vec4 foo() { - uint j = atomicCounterIncrement(counter2) + atomicCounterDecrement(counter3); - vec4 v = a + vec4(b1.x, b1.y, b2.x, b2.y) + c2 + d; - - return float(j) * v; -} - -void main() { - - vec4 v = foo(); - v = v + s[gl_VertexID - gl_VertexIndex]; - v.x = v.x - float(gl_InstanceID - gl_InstanceIndex); - io = v; -} diff --git a/deps/glslang/Test/voidFunction.frag b/deps/glslang/Test/voidFunction.frag deleted file mode 100644 index 4767f7ab..00000000 --- a/deps/glslang/Test/voidFunction.frag +++ /dev/null @@ -1,34 +0,0 @@ -#version 120 - -uniform vec4 bigColor; -varying vec4 BaseColor; -uniform float d; - -float bar = 2.0; - -void foo() -{ - bar++; - - return; -} - -void foo2() -{ - bar++; -} - -void main() -{ - vec4 outColor = bigColor; - - foo(); - - foo2(); - - outColor.x += bar; - - gl_FragColor = outColor; - - return; -} diff --git a/deps/glslang/Test/vulkan.ast.vert b/deps/glslang/Test/vulkan.ast.vert deleted file mode 100644 index b9e3e28b..00000000 --- a/deps/glslang/Test/vulkan.ast.vert +++ /dev/null @@ -1,42 +0,0 @@ -#version 450 - -layout(constant_id = 200) const float scf1 = 1.0; -layout(constant_id = 201) const bool scbt = true; -layout(constant_id = 202) const int sci2 = 2; - -void main() -{ - bool(scf1); // not a spec-const - bool(scbt); // spec-const - bool(sci2); // spec-const - - float(scf1); // not a spec-const - float(scbt); // not a spec-const - float(sci2); // not a spec-const - - int(scf1); // not a spec-const - int(scbt); // spec-const - int(sci2); // spec-const - - scf1 * scf1; // not a spec-const - scbt || scbt; // spec-const - sci2 * sci2; // spec-const - scf1 + sci2; // implicit conversion not a spec-const - - -scf1; // not a spec-const - !scbt; // spec-const - -sci2; // spec-const - - scf1 > scf1; // not a spec-const - sci2 > sci2; // spec-const - - scf1 != scf1; // not a spec-const - scbt != scbt; // spec-const - sci2 != sci2; // spec-const - - ivec2(sci2, sci2); // spec-const - ivec2[2](ivec2(sci2, sci2), ivec2(sci2, sci2)); // not a spec-const - - vec2(scf1, scf1); // spec-const - vec2[2](vec2(scf1, scf1), vec2(scf1, scf1)); // not a spec-const -} diff --git a/deps/glslang/Test/vulkan.comp b/deps/glslang/Test/vulkan.comp deleted file mode 100644 index 98d93ed2..00000000 --- a/deps/glslang/Test/vulkan.comp +++ /dev/null @@ -1,33 +0,0 @@ -#version 450 - -layout(local_size_x_id = 18, local_size_z_id = 19) in; -layout(local_size_x = 32, local_size_y = 32) in; -layout(local_size_z_id = 14) in; // ERROR, can't change this - -void main() -{ - gl_WorkGroupSize; - int i = { }; // ERROR, need an extension -} - -layout(local_size_y_id = 19) in; // ERROR, already used: TODO not yet reported - -shared float f = { }; // ERROR, need an extension -float g = { }; // ERROR, need an extension - -#extension GL_EXT_null_initializer : enable - -shared float f2 = { }; -float g2 = { }; - -void foo() -{ - int i = { }; - float fa[] = { }; -} - -struct samp { - sampler2D s2D; -} sampVar = { }; - -atomic_uint a = { }; diff --git a/deps/glslang/Test/vulkan.frag b/deps/glslang/Test/vulkan.frag deleted file mode 100644 index 6cf7ccfa..00000000 --- a/deps/glslang/Test/vulkan.frag +++ /dev/null @@ -1,111 +0,0 @@ -#version 450 - -uniform sampler s; // ERROR, no binding -uniform sampler sA[4]; // ERROR, no binding -uniform texture2D t2d; // ERROR, no binding -uniform texture3D t3d[4]; // ERROR, no binding -int i; -uniform samplerShadow sShadow; -uniform texture3D t3d5[5]; -writeonly uniform image2D i2d; - -void badConst() -{ - sampler2D(t2d); // ERROR, need 2 args - sampler2D(s, s); // ERROR, wrong type - sampler2D(i, i); // ERROR, wrong type - sampler2D(t2d, i); // ERROR, wrong type - sampler2D(t2d, t2d); // ERROR, wrong type - sampler2D(t2d, sA); // ERROR, wrong type - - sampler3D[4](t3d5, sA[2]); // ERROR, can't make array - sampler2D(i2d, s); // ERROR, image instead of texture - sampler2D(t3d[1], s); // ERROR, 3D not 2D - sampler2D(t2d, sShadow); - sampler2DShadow(t2d, s); -} - -sampler2D s2D = sampler2D(t2d, s); // ERROR, no sampler constructor -sampler3D s3d[4] = sampler3D[4](t3d, sA[2]); // ERROR, no sampler constructor - -out vec4 color; // ERROR, no location - -void main() -{ - color = texture(s2D, vec2(0.5)); - color += texture(s3d[i], vec3(0.5)); -} - -layout(push_constant) buffer pcb { // ERROR, not on a buffer - int a; -} pcbInst; - -layout(push_constant) uniform float pcfloat; // ERROR 2X: not on a non-block, and non-opaque outside block - -layout(push_constant) uniform; // ERROR, needs an object -layout(binding=2, push_constant) uniform pcbnd1 { // ERROR, can't have binding - int a; -} pcbnd1inst; -layout(push_constant) uniform pcbnd2 { // ERROR, can't be array - float a; -} pcbnd2inst[2]; -layout(std430, push_constant) uniform pcb1 { int a; } pcb1inst; -layout(push_constant) uniform pcb2 { - int a; -}; // Okay now to have no instance name - -layout(input_attachment_index = 2) uniform subpassInput subD; -layout(input_attachment_index = 3) uniform texture2D subDbad1; // ERROR, not a texture -layout(input_attachment_index = 4) writeonly uniform image2D subDbad2; // ERROR, not an image -uniform subpassInput subDbad3; // ERROR, need attachment number -layout(input_attachment_index = 2) uniform subpassInputMS subDMS; - -void foo() -{ - vec4 v = subpassLoad(subD); - v += subpassLoadMS(subD); // ERROR, no such function - v += subpassLoad(subD, 2); // ERROR, no such sig. - v += subpassLoad(subDMS, 2); - v += subpassLoadMS(subDMS, 2); // ERROR, no such function -} - -subroutine int fooS; // ERROR, not in SPV -subroutine int fooSub(); // ERROR, not in SPV - -uniform vec4 dv4; // ERROR, no default uniforms - -void fooTex() -{ - texture(t2d, vec2(1.0)); // ERROR, need a sampler, not a pure texture - imageStore(t2d, ivec2(4, 5), vec4(1.2)); // ERROR, need an image, not a pure texture -} - -precision highp float; - -layout(location=0) in vec2 vTexCoord; -layout(location=0) out vec4 FragColor; - -vec4 userTexture(mediump sampler2D samp, vec2 coord) -{ - return texture(samp, coord); -} - -bool cond; - -void callUserTexture() -{ - userTexture(sampler2D(t2d,s), vTexCoord); // ERROR, not point of use - userTexture((sampler2D(t2d,s)), vTexCoord); // ERROR, not point of use - userTexture((sampler2D(t2d,s), sampler2D(t2d,s)), vTexCoord); // ERROR, not point of use - userTexture(cond ? sampler2D(t2d,s) : sampler2D(t2d,s), vTexCoord); // ERROR, no ?:, not point of use - - gl_NumSamples; // ERROR, not for Vulkan -} - -void noise() -{ - noise1(dv4); - noise2(4.0); - noise3(vec2(3)); - noise4(dv4); -} diff --git a/deps/glslang/Test/vulkan.vert b/deps/glslang/Test/vulkan.vert deleted file mode 100644 index 7142691a..00000000 --- a/deps/glslang/Test/vulkan.vert +++ /dev/null @@ -1,77 +0,0 @@ -#version 450 - -layout(input_attachment_index = 2) uniform subpassInput subD1; // ERROR, not this stage -layout(input_attachment_index = 2) uniform isubpassInput subD2; // ERROR, not this stage -layout(input_attachment_index = 2) uniform usubpassInput subD3; // ERROR, not this stage -layout(input_attachment_index = 2) uniform subpassInputMS subD4; // ERROR, not this stage -layout(input_attachment_index = 2) uniform isubpassInputMS subD5; // ERROR, not this stage -layout(input_attachment_index = 2) uniform usubpassInputMS subD6; // ERROR, not this stage - -out vec4 color; - -layout(constant_id = 17) const ivec2 arraySizes = ivec2(12,13); // ERROR, not a scalar -layout(constant_id = 17) uniform sampler2D s2D; // ERROR, not the right type or qualifier -layout(constant_id = 4000) const int c1 = 12; // ERROR, too big -layout(constant_id = 4) const float c2[2] = float[2](1.0, 2.0); // ERROR, not a scalar -layout(constant_id = 4) in; - -void main() -{ - color = subpassLoad(subD1); // ERROR, no such function in this stage -} - -layout(binding = 0) uniform atomic_uint aui; // ERROR, no atomics in Vulkan -layout(shared, binding = 1) uniform ub1n { int a; } ub1i; // ERROR, no shared -layout(packed, binding = 2) uniform ub2n { int a; } ub2i; // ERROR, no packed - -layout(constant_id=222) const int arraySize = 4; - -void foo() -{ - int a1[arraySize]; - int a2[arraySize] = a1; // ERROR, can't use in initializer - - a1 = a2; // ERROR, can't assign, even though the same type - if (a1 == a2) // ERROR, can't compare either - ++color; -} - -layout(set = 1, push_constant) uniform badpc { int a; } badpcI; // ERROR, no descriptor set with push_constant - -#ifndef VULKAN -#error VULKAN should be defined -#endif - -#if VULKAN != 100 -#error VULKAN should be 100 -#endif - -float AofA0[2][arraySize]; -float AofA1[arraySize][arraySize]; -float AofA2[arraySize][2 + arraySize]; -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 - -layout(constant_id = 400) const int nonLit = 1; -layout(location = nonLit, component = nonLit) in vec4 nonLit1; // ERROR, non literal -layout(binding = nonLit, set = nonLit) uniform nonLitBN { // ERROR, non literal - layout(offset = nonLit) vec4 nonLit1; // ERROR, non literal - layout(align = nonLit) vec4 nonLit3; // ERROR, non literal - layout(xfb_offset = nonLit) vec4 nonLit4; // ERROR, non literal - layout(xfb_buffer = nonLit) vec4 nonLit5; // ERROR, non literal - layout(xfb_stride = nonLit) vec4 nonLit6; // ERROR, non literal -} nonLitBI; -layout(input_attachment_index = nonLit) vec4 nonLit3; // ERROR, non literal -layout(constant_id = nonLit) vec4 nonLit4; // ERROR, non literal diff --git a/deps/glslang/Test/web.array.frag b/deps/glslang/Test/web.array.frag deleted file mode 100644 index 8b8acdf5..00000000 --- a/deps/glslang/Test/web.array.frag +++ /dev/null @@ -1,26 +0,0 @@ -#version 310 es - -precision highp float; - -float g4[4]; -float g5[5]; - -layout(location = 0) out vec2 colorOut; - -float[4] foo(float a[5]) -{ - return float[](a[0], a[1], a[2], a[3]); -} - -void main() -{ - g4 = foo(g5); - - if (float[4](1.0, 2.0, 3.0, 4.0) == g4) - ; - - float u[5]; - foo(u); - - colorOut = vec2(g4.length(), g5.length()); -} diff --git a/deps/glslang/Test/web.basic.vert b/deps/glslang/Test/web.basic.vert deleted file mode 100644 index 9bc4c30f..00000000 --- a/deps/glslang/Test/web.basic.vert +++ /dev/null @@ -1,15 +0,0 @@ -#version 310 es - -layout(location = 2) in vec4 inv4; -layout(location = 1) out vec4 outv4; - -layout(binding = 3) uniform uBlock { - vec4 a; - ivec4 b; - uvec4 c; -} uInst; - -void main() -{ - outv4 = normalize(inv4) * uInst.a * vec4(uInst.b) * vec4(uInst.c); -} diff --git a/deps/glslang/Test/web.builtins.frag b/deps/glslang/Test/web.builtins.frag deleted file mode 100644 index 5ede9a91..00000000 --- a/deps/glslang/Test/web.builtins.frag +++ /dev/null @@ -1,58 +0,0 @@ -#version 310 es - -precision lowp float; -layout(location = 4) in float c1D; -layout(location = 5) in vec2 c2D; -layout(location = 6) in vec3 c3D; -layout(location = 7) in smooth vec4 c4D; - -layout(location = 1) flat in int ic1D; -layout(location = 2) flat in ivec3 ic3D; -layout(location = 3) flat in ivec4 ic4D; - -const ivec2 ic2D = ivec2(2, 3); - -struct s { - int i; - sampler2D s; -}; - -struct S2 { - vec3 c; - float f; -}; - -layout(location = 8) in S2 s2; - -layout(location = 0) out vec3 sc; -layout(location = 1) out float sf; - -void main() -{ - float f = gl_FragCoord.y; - gl_FragDepth = f; - - sc = s2.c; - sf = s2.f; - - sinh(c1D) + - cosh(c1D) * tanh(c2D); - asinh(c4D) + acosh(c4D); - atanh(c3D); -} - -void foo324(void) -{ - float p = pow(3.2, 4.6); - p += sin(0.4); - p += distance(vec2(10.0, 11.0), vec2(13.0, 15.0)); // 5 - p += dot(vec3(2,3,5), vec3(-2,-1,4)); // 13 - vec3 c3 = cross(vec3(3,-3,1), vec3(4,9,2)); // (-15, -2, 39) - c3 += faceforward(vec3(1,2,3), vec3(2,3,5), vec3(-2,-1,4)); // (-1,-2,-3) - c3 += faceforward(vec3(1,2,3), vec3(-2,-3,-5), vec3(-2,-1,4)); // (1,2,3) - vec2 c2 = reflect(vec2(1,3), vec2(0,1)); // (1,-3) - c2 += refract(vec2(1,3), vec2(0,1), 1.0); // (1,-3) - c2 += refract(vec2(1,3), vec2(0,1), 3.0); - c2 += refract(vec2(1,0.1), vec2(0,1), 5.0); // (0,0) - mat3x2 m32 = outerProduct(vec2(2,3), vec3(5,7,11));// rows: (10, 14, 22), (15, 21, 33) -} diff --git a/deps/glslang/Test/web.builtins.vert b/deps/glslang/Test/web.builtins.vert deleted file mode 100644 index f27b12b2..00000000 --- a/deps/glslang/Test/web.builtins.vert +++ /dev/null @@ -1,14 +0,0 @@ -#version 310 es - -layout(location = 0) in mediump float ps; - -invariant gl_Position; - -void main() -{ - gl_Position = vec4(ps); - gl_Position *= float(4 - gl_VertexIndex); - - gl_PointSize = ps; - gl_PointSize *= float(5 - gl_InstanceIndex); -} diff --git a/deps/glslang/Test/web.comp b/deps/glslang/Test/web.comp deleted file mode 100644 index 07847b42..00000000 --- a/deps/glslang/Test/web.comp +++ /dev/null @@ -1,50 +0,0 @@ -#version 310 es - -layout(local_size_x_id = 18, local_size_z_id = 19) in; - -layout(local_size_x = 2) in; -layout(local_size_y = 5) in; -layout(local_size_z = 7) in; - -const int total = gl_MaxComputeWorkGroupCount.x - + gl_MaxComputeWorkGroupCount.y - + gl_MaxComputeWorkGroupCount.z - + gl_MaxComputeUniformComponents - + gl_MaxComputeTextureImageUnits; - -shared vec4 s[total]; - -int arrX[gl_WorkGroupSize.x]; -int arrY[gl_WorkGroupSize.y]; -int arrZ[gl_WorkGroupSize.z]; - -layout(binding = 0, set = 0) buffer bName { - int size; - uvec3 count; - vec4 data[]; -} bInst; - -void main() -{ - barrier(); - - bInst.data[bInst.size / 2] *= vec4(7.0); - - memoryBarrier(); - groupMemoryBarrier(); - memoryBarrierShared(); - memoryBarrierBuffer(); - - s[3] = vec4(0, arrX[0], arrY[0], arrZ[0]); - bInst.count = gl_NumWorkGroups + gl_WorkGroupSize + gl_WorkGroupID + gl_LocalInvocationID + - gl_GlobalInvocationID * gl_LocalInvocationIndex; - - atomicAdd(bInst.size, 2); - atomicMin(bInst.size, 2); - atomicMax(bInst.size, 2); - atomicAnd(bInst.size, 2); - atomicOr(bInst.size, 2); - atomicXor(bInst.size, 2); - atomicExchange(bInst.size, 2); - atomicCompSwap(bInst.size, 5, 2); -} diff --git a/deps/glslang/Test/web.controlFlow.frag b/deps/glslang/Test/web.controlFlow.frag deleted file mode 100644 index 89f7e68d..00000000 --- a/deps/glslang/Test/web.controlFlow.frag +++ /dev/null @@ -1,91 +0,0 @@ -#version 310 es - -precision mediump float; -precision highp int; - -int c, d; -layout(location = 0) in highp float x; -layout(location = 1) in vec4 bigColor; -layout(location = 2) in vec4 BaseColor; -layout(location = 3) in float f; - -layout(location = 4) flat in int Count; -layout(location = 5) flat in uvec4 v4; - -layout(location = 0) out vec4 outColor; - -void main() -{ - float f; - int a[2]; - - switch(c) - { - } - - switch (c) { // a no-error normal switch - case 1: - f = sin(x); - break; - case 2: - switch (d) { - case 1: - f = x * x * x; - break; - case 2: - f = x * x; - break; - } - break; - default: - f = tan(x); - } - - vec4 color = BaseColor; - - for (int i = 0; i < Count; ++i) { - color += bigColor; - } - - outColor = color; - - float sum = 0.0; - for (int i = 0; i < 4; ++i) - sum += float(v4[i]); - - vec4 tv4; - - for (int i = 0; i < 4; ++i) - tv4[i] = float(v4[i] * 4u); - - outColor += vec4(sum) + tv4; - - vec4 r; - r.xyz = BaseColor.xyz; - - for (int i = 0; i < Count; ++i) - r.w = f; - - outColor.xyz += r.xyz; - - for (int i = 0; i < 16; i += 4) - outColor *= f; - - int i = 0; - int A, B, C, D; - while (i<10) { - A = 1; - if (i%2 == 0) { - B = 2; - continue; - C = 2; - } - if (i%5 == 0) { - B = 2; - break; - C = 2; - } - i++; - } - D = 3; -} diff --git a/deps/glslang/Test/web.operations.frag b/deps/glslang/Test/web.operations.frag deleted file mode 100644 index 589ae6fd..00000000 --- a/deps/glslang/Test/web.operations.frag +++ /dev/null @@ -1,73 +0,0 @@ -#version 310 es - -precision highp float; - -layout(binding = 0) uniform block { - mediump float f; -} instanceName; - -struct S { - int i; -} s; - -float a[5]; - -void main() -{ - bool b; - float f; - int i; - uint u; - bvec3 b3; - vec3 v3; - ivec3 iv3; - uvec3 uv3; - vec4 v4; - ivec4 iv4; - uvec4 uv4; - mat2 m2; - mat4 m4; - - f * v4; - u + u; - uv4 / u; - iv3 -= iv3; - - i %= 3; - uv3 % 4u; - --m2; - iv4++; - - m4 != m4; - m2 == m2; - i <= i; - a == a; - s != s; - - b && b; - b || b; - b ^^ b; - - !b, uv3; - - ~i; - ~u; - ~uv3; - ~iv3; - - uv3 <<= i; - i >> i; - u << u; - iv3 >> iv3; - - i & i; - u | u; - iv3 ^ iv3; - u & uv3; - uv3 | u; - uv3 &= u; - int arr[0x222 & 0xf]; - arr[1]; // size 2 - int arr2[(uvec2(0, 0x2) | 0x1u).y]; - arr2[2]; // size 3 -} diff --git a/deps/glslang/Test/web.runtests b/deps/glslang/Test/web.runtests deleted file mode 100644 index 3283dd83..00000000 --- a/deps/glslang/Test/web.runtests +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env bash - -TESTLIST=web.testlist -TARGETDIR=localResults -BASEDIR=baseResults -EXE=../build/install/bin/glslangValidator.exe -HASERROR=0 -mkdir -p $TARGETDIR - -if [ -a $TESTLIST ] - then - while read t; do - echo Running $t... - b=`basename $t` - $EXE -V -o webtest.spv $t - spirv-dis webtest.spv > $TARGETDIR/$b.out - rm -f webtest.spv - diff -b $BASEDIR/$b.out $TARGETDIR/$b.out || HASERROR=1 - done < $TESTLIST -else - echo $TESTLIST is missing -fi - -wc --bytes $EXE > $TARGETDIR/size -echo "base size was" `cat $BASEDIR/size` -echo "new size is" `cat $TARGETDIR/size` - -# -# Final checking -# -if [ $HASERROR -eq 0 ] -then - echo Tests Succeeded. -else - echo Tests Failed. -fi - -exit $HASERROR diff --git a/deps/glslang/Test/web.separate.frag b/deps/glslang/Test/web.separate.frag deleted file mode 100644 index b747cba5..00000000 --- a/deps/glslang/Test/web.separate.frag +++ /dev/null @@ -1,63 +0,0 @@ -#version 310 es - -precision highp sampler; -precision highp samplerShadow; -precision highp texture2DArray; -precision highp itexture2D; -precision highp itexture3D; -precision highp itextureCube; -precision highp itexture2DArray; -precision highp utexture2D; -precision highp utexture3D; -precision highp utextureCube; -precision highp utexture2DArray; -precision highp texture3D; -precision highp float; - -layout(binding = 0) uniform sampler s; -layout(binding = 1) uniform samplerShadow sShadow; -layout(binding = 2) uniform sampler sA[4]; -layout(binding = 3) uniform texture2D t2d; -layout(binding = 4) uniform texture3D t3d[4]; -layout(location = 0) flat in int i; - -layout(location = 0) out vec4 color; - -void main() -{ - color = texture(sampler2D(t2d, s), vec2(0.5)); - color += texture(sampler3D(t3d[1], sA[2]), vec3(0.5)); - color += texture(sampler2D(t2d, s), vec2(0.5)); -} - -layout(binding = 5) uniform texture2D tex2D; -layout(binding = 6) uniform textureCube texCube; -layout(binding = 15) uniform texture2DArray tex2DArray; -layout(binding = 16) uniform itexture2D itex2D; -layout(binding = 17) uniform itexture3D itex3D; -layout(binding = 18) uniform itextureCube itexCube; -layout(binding = 19) uniform itexture2DArray itex2DArray; -layout(binding = 20) uniform utexture2D utex2D; -layout(binding = 21) uniform utexture3D utex3D; -layout(binding = 22) uniform utextureCube utexCube; -layout(binding = 23) uniform utexture2DArray utex2DArray; -layout(binding = 36) uniform texture3D tex3D; - -void foo() -{ - sampler2D (tex2D, s); - samplerCube (texCube, s); - samplerCubeShadow (texCube, sShadow); - sampler2DArray (tex2DArray, s); - sampler2DArrayShadow (tex2DArray, sShadow); - isampler2D (itex2D, s); - isampler3D (itex3D, s); - isamplerCube (itexCube, s); - isampler2DArray (itex2DArray, s); - usampler2D (utex2D, s); - usampler3D (utex3D, s); - usamplerCube (utexCube, s); - usampler2DArray (utex2DArray, s); - sampler3D (tex3D, s); - sampler2DShadow (tex2D, sShadow); -} diff --git a/deps/glslang/Test/web.testlist b/deps/glslang/Test/web.testlist deleted file mode 100644 index 764c0c0f..00000000 --- a/deps/glslang/Test/web.testlist +++ /dev/null @@ -1,9 +0,0 @@ -web.builtins.vert -web.builtins.frag -web.basic.vert -web.controlFlow.frag -web.operations.frag -web.texture.frag -web.array.frag -web.separate.frag -web.comp diff --git a/deps/glslang/Test/web.texture.frag b/deps/glslang/Test/web.texture.frag deleted file mode 100644 index 5bfd9620..00000000 --- a/deps/glslang/Test/web.texture.frag +++ /dev/null @@ -1,77 +0,0 @@ -#version 310 es -layout(binding = 1) uniform sampler2D s2D; -layout(binding = 2) uniform lowp sampler3D s3D; -layout(binding = 3) uniform samplerCube sCube; -layout(binding = 4) uniform lowp samplerCubeShadow sCubeShadow; -layout(binding = 5) uniform lowp sampler2DShadow s2DShadow; -layout(binding = 6) uniform lowp sampler2DArray s2DArray; -layout(binding = 7) uniform lowp sampler2DArrayShadow s2DArrayShadow; -layout(binding = 8) uniform lowp isampler2D is2D; -layout(binding = 9) uniform lowp isampler3D is3D; -layout(binding = 10) uniform lowp isamplerCube isCube; -layout(binding = 11) uniform lowp isampler2DArray is2DArray; -layout(binding = 12) uniform lowp usampler2D us2D; -layout(binding = 13) uniform lowp usampler3D us3D; -layout(binding = 14) uniform lowp usamplerCube usCube; -layout(binding = 15) uniform lowp usampler2DArray us2DArray; - -precision lowp float; -layout(location = 4) in float c1D; -layout(location = 5) in vec2 c2D; -layout(location = 6) in vec3 c3D; -layout(location = 7) in smooth vec4 c4D; - -layout(location = 1) flat in int ic1D; -layout(location = 2) flat in ivec3 ic3D; -layout(location = 3) flat in ivec4 ic4D; - -const ivec2 ic2D = ivec2(2, 3); - -struct s { - int i; - sampler2D s; -}; - -struct S2 { - vec3 c; - float f; -}; - -layout(location = 8) in S2 s2; - -layout(location = 0) out vec3 sc; -layout(location = 1) out float sf; - -layout(binding = 0) uniform sampler2D arrayedSampler[5]; - -void main() -{ - float f; - vec4 v; - v = texture(s2D, c2D); - v = textureProj(s3D, c4D); - v = textureLod(s2DArray, c3D, 1.2); - v = texelFetch(s3D, ic3D, ic1D); - f = textureLodOffset(s2DShadow, c3D, c1D, ic2D); - v = textureProjLodOffset(s2D, c3D, c1D, ic2D); - v = textureGrad(sCube, c3D, c3D, c3D); - f = textureGradOffset(s2DArrayShadow, c4D, c2D, c2D, ic2D); - v = textureProjGrad(s3D, c4D, c3D, c3D); - v = textureProjGradOffset(s2D, c3D, c2D, c2D, ic2D); - - ivec4 iv; - iv = texture(is2D, c2D); - iv = textureProjOffset(is2D, c4D, ic2D); - iv = textureProjLod(is2D, c3D, c1D); - iv = textureProjGrad(is2D, c3D, c2D, c2D); - iv = texture(is3D, c3D, 4.2); - iv = textureLod(isCube, c3D, c1D); - iv = texelFetch(is2DArray, ic3D, ic1D); - - iv.xy = textureSize(sCubeShadow, 2); -} - -void foo23() -{ - textureOffset(s2DShadow, c3D, ivec2(-8, 7), c1D); -} diff --git a/deps/glslang/Test/whileLoop.frag b/deps/glslang/Test/whileLoop.frag deleted file mode 100644 index a9541f91..00000000 --- a/deps/glslang/Test/whileLoop.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 110 - -uniform vec4 bigColor; -varying vec4 BaseColor; -uniform float d; - -void main() -{ - vec4 color = BaseColor; - - while (color.x < d) { - color += bigColor; - } - - gl_FragColor = color; -} diff --git a/deps/glslang/Test/xfbUnsizedArray.error.tese b/deps/glslang/Test/xfbUnsizedArray.error.tese deleted file mode 100644 index a59069bb..00000000 --- a/deps/glslang/Test/xfbUnsizedArray.error.tese +++ /dev/null @@ -1,8 +0,0 @@ -#version 430 core -#extension GL_ARB_enhanced_layouts : require -layout(isolines, point_mode) in; -layout (xfb_offset = 0) out vec4 unsized[]; // error: unsized array - -void main() -{ -} diff --git a/deps/glslang/Test/xfbUnsizedArray.error.vert b/deps/glslang/Test/xfbUnsizedArray.error.vert deleted file mode 100644 index 5beb9f8e..00000000 --- a/deps/glslang/Test/xfbUnsizedArray.error.vert +++ /dev/null @@ -1,16 +0,0 @@ -#version 430 core -#extension GL_ARB_enhanced_layouts : require - -layout (xfb_offset = 0) out vec4 xfb_buffer[]; // ERROR: unsized array cannot be used for an xfb buffer? - -in vec4 in_vs; -out vec4 out_vs; - -void main() -{ - vec4 result = in_vs; - - xfb_buffer[0] = result / 2; - - out_vs = result; -} diff --git a/deps/glslang/WORKSPACE b/deps/glslang/WORKSPACE deleted file mode 100644 index 488546c7..00000000 --- a/deps/glslang/WORKSPACE +++ /dev/null @@ -1,27 +0,0 @@ -workspace(name = "org_khronos_glslang") -load( - "@bazel_tools//tools/build_defs/repo:http.bzl", - "http_archive", -) - -http_archive( - name = "com_google_googletest", - sha256 = "94c634d499558a76fa649edb13721dce6e98fb1e7018dfaeba3cd7a083945e91", - strip_prefix = "googletest-release-1.10.0", - urls = ["https://github.com/google/googletest/archive/release-1.10.0.zip"], # 3-Oct-2019 -) - -http_archive( - name = "com_googlesource_code_re2", - sha256 = "b885bb965ab4b6cf8718bbb8154d8f6474cd00331481b6d3e390babb3532263e", - strip_prefix = "re2-e860767c86e577b87deadf24cc4567ea83c4f162/", - urls = ["https://github.com/google/re2/archive/e860767c86e577b87deadf24cc4567ea83c4f162.zip"], -) - -http_archive( - name = "com_google_effcee", - build_file = "BUILD.effcee.bazel", - sha256 = "b0c21a01995fdf9792510566d78d5e7fe6f83cb4ba986eba691f4926f127cb34", - strip_prefix = "effcee-8f0a61dc95e0df18c18e0ac56d83b3fa9d2fe90b/", - urls = ["https://github.com/google/effcee/archive/8f0a61dc95e0df18c18e0ac56d83b3fa9d2fe90b.zip"], -) diff --git a/deps/glslang/_config.yml b/deps/glslang/_config.yml deleted file mode 100644 index e8b995b9..00000000 --- a/deps/glslang/_config.yml +++ /dev/null @@ -1 +0,0 @@ -theme: jekyll-theme-merlot diff --git a/deps/glslang/build_info.h.tmpl b/deps/glslang/build_info.h.tmpl deleted file mode 100644 index 5b5e9e62..00000000 --- a/deps/glslang/build_info.h.tmpl +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright (C) 2020 The Khronos Group 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 The Khronos Group Inc. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. - -#ifndef GLSLANG_BUILD_INFO -#define GLSLANG_BUILD_INFO - -#define GLSLANG_VERSION_MAJOR @major@ -#define GLSLANG_VERSION_MINOR @minor@ -#define GLSLANG_VERSION_PATCH @patch@ -#define GLSLANG_VERSION_FLAVOR "@flavor@" - -#define GLSLANG_VERSION_GREATER_THAN(major, minor, patch) \ - (((major) > GLSLANG_VERSION_MAJOR) || ((major) == GLSLANG_VERSION_MAJOR && \ - (((minor) > GLSLANG_VERSION_MINOR) || ((minor) == GLSLANG_VERSION_MINOR && \ - ((patch) > GLSLANG_VERSION_PATCH))))) - -#define GLSLANG_VERSION_GREATER_OR_EQUAL_TO(major, minor, patch) \ - (((major) > GLSLANG_VERSION_MAJOR) || ((major) == GLSLANG_VERSION_MAJOR && \ - (((minor) > GLSLANG_VERSION_MINOR) || ((minor) == GLSLANG_VERSION_MINOR && \ - ((patch) >= GLSLANG_VERSION_PATCH))))) - -#define GLSLANG_VERSION_LESS_THAN(major, minor, patch) \ - (((major) < GLSLANG_VERSION_MAJOR) || ((major) == GLSLANG_VERSION_MAJOR && \ - (((minor) < GLSLANG_VERSION_MINOR) || ((minor) == GLSLANG_VERSION_MINOR && \ - ((patch) < GLSLANG_VERSION_PATCH))))) - -#define GLSLANG_VERSION_LESS_OR_EQUAL_TO(major, minor, patch) \ - (((major) < GLSLANG_VERSION_MAJOR) || ((major) == GLSLANG_VERSION_MAJOR && \ - (((minor) < GLSLANG_VERSION_MINOR) || ((minor) == GLSLANG_VERSION_MINOR && \ - ((patch) <= GLSLANG_VERSION_PATCH))))) - -#endif // GLSLANG_BUILD_INFO diff --git a/deps/glslang/build_info.py b/deps/glslang/build_info.py deleted file mode 100644 index 06d613b0..00000000 --- a/deps/glslang/build_info.py +++ /dev/null @@ -1,226 +0,0 @@ -#!/usr/bin/env python3 - -# Copyright (c) 2020 Google Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import datetime -import errno -import os -import os.path -import re -import subprocess -import sys -import time - -usage = """{} emits a string to stdout or file with project version information. - -args: [] [-i ] [-o ] - -Either or -i needs to be provided. - -The tool will output the provided string or file content with the following -tokens substituted: - - - The major version point parsed from the CHANGES.md file. - - The minor version point parsed from the CHANGES.md file. - - The point version point parsed from the CHANGES.md file. - - The optional dash suffix parsed from the CHANGES.md file (excluding - dash prefix). - <-flavor> - The optional dash suffix parsed from the CHANGES.md file (including - dash prefix). - - The optional date of the release in the form YYYY-MM-DD - - The git commit information for the directory taken from - "git describe" if that succeeds, or "git rev-parse HEAD" - if that succeeds, or otherwise a message containing the phrase - "unknown hash". - --o is an optional flag for writing the output string to the given file. If - ommitted then the string is printed to stdout. -""" - -def mkdir_p(directory): - """Make the directory, and all its ancestors as required. Any of the - directories are allowed to already exist.""" - - if directory == "": - # We're being asked to make the current directory. - return - - try: - os.makedirs(directory) - except OSError as e: - if e.errno == errno.EEXIST and os.path.isdir(directory): - pass - else: - raise - - -def command_output(cmd, directory): - """Runs a command in a directory and returns its standard output stream. - - Captures the standard error stream. - - Raises a RuntimeError if the command fails to launch or otherwise fails. - """ - p = subprocess.Popen(cmd, - cwd=directory, - stdout=subprocess.PIPE, - stderr=subprocess.PIPE) - (stdout, _) = p.communicate() - if p.returncode != 0: - raise RuntimeError('Failed to run %s in %s' % (cmd, directory)) - return stdout - - -def deduce_software_version(directory): - """Returns a software version number parsed from the CHANGES.md file - in the given directory. - - The CHANGES.md file describes most recent versions first. - """ - - # Match the first well-formed version-and-date line. - # Allow trailing whitespace in the checked-out source code has - # unexpected carriage returns on a linefeed-only system such as - # Linux. - pattern = re.compile(r'^#* +(\d+)\.(\d+)\.(\d+)(-\w+)? (\d\d\d\d-\d\d-\d\d)? *$') - changes_file = os.path.join(directory, 'CHANGES.md') - with open(changes_file, mode='r') as f: - for line in f.readlines(): - match = pattern.match(line) - if match: - flavor = match.group(4) - if flavor == None: - flavor = "" - return { - "major": match.group(1), - "minor": match.group(2), - "patch": match.group(3), - "flavor": flavor.lstrip("-"), - "-flavor": flavor, - "date": match.group(5), - } - raise Exception('No version number found in {}'.format(changes_file)) - - -def describe(directory): - """Returns a string describing the current Git HEAD version as descriptively - as possible. - - Runs 'git describe', or alternately 'git rev-parse HEAD', in directory. If - successful, returns the output; otherwise returns 'unknown hash, '.""" - try: - # decode() is needed here for Python3 compatibility. In Python2, - # str and bytes are the same type, but not in Python3. - # Popen.communicate() returns a bytes instance, which needs to be - # decoded into text data first in Python3. And this decode() won't - # hurt Python2. - return command_output(['git', 'describe'], directory).rstrip().decode() - except: - try: - return command_output( - ['git', 'rev-parse', 'HEAD'], directory).rstrip().decode() - except: - # This is the fallback case where git gives us no information, - # e.g. because the source tree might not be in a git tree. - # In this case, usually use a timestamp. However, to ensure - # reproducible builds, allow the builder to override the wall - # clock time with environment variable SOURCE_DATE_EPOCH - # containing a (presumably) fixed timestamp. - timestamp = int(os.environ.get('SOURCE_DATE_EPOCH', time.time())) - formatted = datetime.datetime.utcfromtimestamp(timestamp).isoformat() - return 'unknown hash, {}'.format(formatted) - -def parse_args(): - directory = None - input_string = None - input_file = None - output_file = None - - if len(sys.argv) < 2: - raise Exception("Invalid number of arguments") - - directory = sys.argv[1] - i = 2 - - if not sys.argv[i].startswith("-"): - input_string = sys.argv[i] - i = i + 1 - - while i < len(sys.argv): - opt = sys.argv[i] - i = i + 1 - - if opt == "-i" or opt == "-o": - if i == len(sys.argv): - raise Exception("Expected path after {}".format(opt)) - val = sys.argv[i] - i = i + 1 - if (opt == "-i"): - input_file = val - elif (opt == "-o"): - output_file = val - else: - raise Exception("Unknown flag {}".format(opt)) - - return { - "directory": directory, - "input_string": input_string, - "input_file": input_file, - "output_file": output_file, - } - -def main(): - args = None - try: - args = parse_args() - except Exception as e: - print(e) - print("\nUsage:\n") - print(usage.format(sys.argv[0])) - sys.exit(1) - - directory = args["directory"] - template = args["input_string"] - if template == None: - with open(args["input_file"], 'r') as f: - template = f.read() - output_file = args["output_file"] - - software_version = deduce_software_version(directory) - commit = describe(directory) - output = template \ - .replace("@major@", software_version["major"]) \ - .replace("@minor@", software_version["minor"]) \ - .replace("@patch@", software_version["patch"]) \ - .replace("@flavor@", software_version["flavor"]) \ - .replace("@-flavor@", software_version["-flavor"]) \ - .replace("@date@", software_version["date"]) \ - .replace("@commit@", commit) - - if output_file is None: - print(output) - else: - mkdir_p(os.path.dirname(output_file)) - - if os.path.isfile(output_file): - with open(output_file, 'r') as f: - if output == f.read(): - return - - with open(output_file, 'w') as f: - f.write(output) - -if __name__ == '__main__': - main() diff --git a/deps/glslang/build_overrides/build.gni b/deps/glslang/build_overrides/build.gni deleted file mode 100644 index 3101a86c..00000000 --- a/deps/glslang/build_overrides/build.gni +++ /dev/null @@ -1,39 +0,0 @@ -# Copyright (C) 2020 The Khronos Group 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 The Khronos Group 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. - -declare_args() { - build_with_chromium = false - linux_use_bundled_binutils_override = true - ignore_elf32_limitations = true - use_system_xcode = true -} diff --git a/deps/glslang/build_overrides/glslang.gni b/deps/glslang/build_overrides/glslang.gni deleted file mode 100644 index 003c78f0..00000000 --- a/deps/glslang/build_overrides/glslang.gni +++ /dev/null @@ -1,37 +0,0 @@ -# Copyright (C) 2018 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. - -# These are variables that are overridable by projects that include glslang. - -# The path to glslang dependencies. -glslang_spirv_tools_dir = "//External/spirv-tools" diff --git a/deps/glslang/build_overrides/spirv_tools.gni b/deps/glslang/build_overrides/spirv_tools.gni deleted file mode 100644 index 7cf7005d..00000000 --- a/deps/glslang/build_overrides/spirv_tools.gni +++ /dev/null @@ -1,38 +0,0 @@ -# Copyright (C) 2020 The Khronos Group 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 The Khronos Group 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. - -# We are building inside glslang -spirv_tools_standalone = false - -# Paths to SPIRV-Tools dependencies -spirv_tools_spirv_headers_dir = "//External/spirv-tools/external/spirv-headers" diff --git a/deps/glslang/gen_extension_headers.py b/deps/glslang/gen_extension_headers.py deleted file mode 100644 index 2838c962..00000000 --- a/deps/glslang/gen_extension_headers.py +++ /dev/null @@ -1,98 +0,0 @@ -#!/usr/bin/env python3 - -# Copyright (c) 2020 Google Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import glob -import sys -import os - -def generate_main(glsl_files, output_header_file): - # Write commit ID to output header file - with open(output_header_file, "w") as header_file: - # Copyright Notice - header_string = '/***************************************************************************\n' - header_string += ' *\n' - header_string += ' * Copyright (c) 2015-2021 The Khronos Group Inc.\n' - header_string += ' * Copyright (c) 2015-2021 Valve Corporation\n' - header_string += ' * Copyright (c) 2015-2021 LunarG, Inc.\n' - header_string += ' * Copyright (c) 2015-2021 Google Inc.\n' - header_string += ' * Copyright (c) 2021 Advanced Micro Devices, Inc.All rights reserved.\n' - header_string += ' *\n' - header_string += ' ****************************************************************************/\n' - header_string += '#pragma once\n\n' - header_string += '#ifndef _INTRINSIC_EXTENSION_HEADER_H_\n' - header_string += '#define _INTRINSIC_EXTENSION_HEADER_H_\n\n' - header_file.write(header_string) - - symbol_name_list = [] - - for i in glsl_files: - glsl_contents = open(i,"r").read() - - filename = os.path.basename(i) - symbol_name = filename.split(".")[0] - symbol_name_list.append(symbol_name) - header_name = symbol_name + ".h" - header_str = 'std::string %s_GLSL = R"(\n%s\n)";\n' % (symbol_name, glsl_contents) - header_str += '\n' - header_file.write(header_str) - - contents = '' - contents += '\n' - contents += 'std::string getIntrinsic(const char* const* shaders, int n) {\n' - contents += '\tstd::string shaderString = "";\n'; - - contents += '\tfor (int i = 0; i < n; i++) {\n' - - for symbol_name in symbol_name_list: - contents += '\t\tif (strstr(shaders[i], "%s") != NULL) {\n' % (symbol_name) - contents += '\t\t shaderString.append(%s_GLSL);\n' % (symbol_name) - contents += '\t\t}\n' - - contents += '\t}\n' - contents += '\treturn shaderString;\n'; - contents += '}\n' - - contents += '\n#endif\n' - header_file.write(contents) - -def main(): - if len(sys.argv) < 2: - raise Exception("Invalid number of arguments") - - i = 0 - while i < len(sys.argv): - opt = sys.argv[i] - i = i + 1 - - if opt == "-i" or opt == "-o": - if i == len(sys.argv): - raise Exception("Expected path after {}".format(opt)) - val = sys.argv[i] - i = i + 1 - if (opt == "-i"): - input_dir = val - elif (opt == "-o"): - output_file = val - else: - raise Exception("Unknown flag {}".format(opt)) - - glsl_files = glob.glob(input_dir + '/*.glsl') - - # Generate main header - generate_main(glsl_files, output_file) - -if __name__ == '__main__': - main() diff --git a/deps/glslang/glslang/CInterface/glslang_c_interface.cpp b/deps/glslang/glslang/CInterface/glslang_c_interface.cpp deleted file mode 100644 index 53892bc5..00000000 --- a/deps/glslang/glslang/CInterface/glslang_c_interface.cpp +++ /dev/null @@ -1,471 +0,0 @@ -/** - This code is based on the glslang_c_interface implementation by Viktor Latypov -**/ - -/** -BSD 2-Clause License - -Copyright (c) 2019, Viktor Latypov -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -2. 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. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (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 "glslang/Include/glslang_c_interface.h" - -#include "StandAlone/DirStackFileIncluder.h" -#include "StandAlone/ResourceLimits.h" -#include "glslang/Include/ShHandle.h" - -#include "glslang/Include/ResourceLimits.h" -#include "glslang/MachineIndependent/Versions.h" - -static_assert(int(GLSLANG_STAGE_COUNT) == EShLangCount, ""); -static_assert(int(GLSLANG_STAGE_MASK_COUNT) == EShLanguageMaskCount, ""); -static_assert(int(GLSLANG_SOURCE_COUNT) == glslang::EShSourceCount, ""); -static_assert(int(GLSLANG_CLIENT_COUNT) == glslang::EShClientCount, ""); -static_assert(int(GLSLANG_TARGET_COUNT) == glslang::EShTargetCount, ""); -static_assert(int(GLSLANG_TARGET_CLIENT_VERSION_COUNT) == glslang::EShTargetClientVersionCount, ""); -static_assert(int(GLSLANG_TARGET_LANGUAGE_VERSION_COUNT) == glslang::EShTargetLanguageVersionCount, ""); -static_assert(int(GLSLANG_OPT_LEVEL_COUNT) == EshOptLevelCount, ""); -static_assert(int(GLSLANG_TEX_SAMP_TRANS_COUNT) == EShTexSampTransCount, ""); -static_assert(int(GLSLANG_MSG_COUNT) == EShMsgCount, ""); -static_assert(int(GLSLANG_REFLECTION_COUNT) == EShReflectionCount, ""); -static_assert(int(GLSLANG_PROFILE_COUNT) == EProfileCount, ""); -static_assert(sizeof(glslang_limits_t) == sizeof(TLimits), ""); -static_assert(sizeof(glslang_resource_t) == sizeof(TBuiltInResource), ""); - -typedef struct glslang_shader_s { - glslang::TShader* shader; - std::string preprocessedGLSL; -} glslang_shader_t; - -typedef struct glslang_program_s { - glslang::TProgram* program; - std::vector spirv; - std::string loggerMessages; -} glslang_program_t; - -/* Wrapper/Adapter for C glsl_include_callbacks_t functions - - This class contains a 'glsl_include_callbacks_t' structure - with C include_local/include_system callback pointers. - - This class implement TShader::Includer interface - by redirecting C++ virtual methods to C callbacks. - - The 'IncludeResult' instances produced by this Includer - contain a reference to glsl_include_result_t C structure - to allow its lifetime management by another C callback - (CallbackIncluder::callbacks::free_include_result) -*/ -class CallbackIncluder : public glslang::TShader::Includer { -public: - /* Wrapper of IncludeResult which stores a glsl_include_result object internally */ - class CallbackIncludeResult : public glslang::TShader::Includer::IncludeResult { - public: - CallbackIncludeResult(const std::string& headerName, const char* const headerData, const size_t headerLength, - void* userData, glsl_include_result_t* includeResult) - : glslang::TShader::Includer::IncludeResult(headerName, headerData, headerLength, userData), - includeResult(includeResult) - { - } - - virtual ~CallbackIncludeResult() {} - - protected: - friend class CallbackIncluder; - - glsl_include_result_t* includeResult; - }; - -public: - CallbackIncluder(glsl_include_callbacks_t _callbacks, void* _context) : callbacks(_callbacks), context(_context) {} - - virtual ~CallbackIncluder() {} - - virtual IncludeResult* includeSystem(const char* headerName, const char* includerName, - size_t inclusionDepth) override - { - if (this->callbacks.include_system) { - glsl_include_result_t* result = - this->callbacks.include_system(this->context, headerName, includerName, inclusionDepth); - - return new CallbackIncludeResult(std::string(headerName), result->header_data, result->header_length, - nullptr, result); - } - - return glslang::TShader::Includer::includeSystem(headerName, includerName, inclusionDepth); - } - - virtual IncludeResult* includeLocal(const char* headerName, const char* includerName, - size_t inclusionDepth) override - { - if (this->callbacks.include_local) { - glsl_include_result_t* result = - this->callbacks.include_local(this->context, headerName, includerName, inclusionDepth); - - return new CallbackIncludeResult(std::string(headerName), result->header_data, result->header_length, - nullptr, result); - } - - return glslang::TShader::Includer::includeLocal(headerName, includerName, inclusionDepth); - } - - /* This function only calls free_include_result callback - when the IncludeResult instance is allocated by a C function */ - virtual void releaseInclude(IncludeResult* result) override - { - if (result == nullptr) - return; - - if (this->callbacks.free_include_result && (result->userData == nullptr)) { - CallbackIncludeResult* innerResult = static_cast(result); - /* use internal free() function */ - this->callbacks.free_include_result(this->context, innerResult->includeResult); - /* ignore internal fields of TShader::Includer::IncludeResult */ - delete result; - return; - } - - delete[] static_cast(result->userData); - delete result; - } - -private: - CallbackIncluder() {} - - /* C callback pointers */ - glsl_include_callbacks_t callbacks; - /* User-defined context */ - void* context; -}; - -GLSLANG_EXPORT int glslang_initialize_process() { return static_cast(glslang::InitializeProcess()); } - -GLSLANG_EXPORT void glslang_finalize_process() { glslang::FinalizeProcess(); } - -static EShLanguage c_shader_stage(glslang_stage_t stage) -{ - switch (stage) { - case GLSLANG_STAGE_VERTEX: - return EShLangVertex; - case GLSLANG_STAGE_TESSCONTROL: - return EShLangTessControl; - case GLSLANG_STAGE_TESSEVALUATION: - return EShLangTessEvaluation; - case GLSLANG_STAGE_GEOMETRY: - return EShLangGeometry; - case GLSLANG_STAGE_FRAGMENT: - return EShLangFragment; - case GLSLANG_STAGE_COMPUTE: - return EShLangCompute; - case GLSLANG_STAGE_RAYGEN_NV: - return EShLangRayGen; - case GLSLANG_STAGE_INTERSECT_NV: - return EShLangIntersect; - case GLSLANG_STAGE_ANYHIT_NV: - return EShLangAnyHit; - case GLSLANG_STAGE_CLOSESTHIT_NV: - return EShLangClosestHit; - case GLSLANG_STAGE_MISS_NV: - return EShLangMiss; - case GLSLANG_STAGE_CALLABLE_NV: - return EShLangCallable; - case GLSLANG_STAGE_TASK_NV: - return EShLangTaskNV; - case GLSLANG_STAGE_MESH_NV: - return EShLangMeshNV; - default: - break; - } - return EShLangCount; -} - -static int c_shader_messages(glslang_messages_t messages) -{ -#define CONVERT_MSG(in, out) \ - if ((messages & in) == in) \ - res |= out; - - int res = 0; - - CONVERT_MSG(GLSLANG_MSG_RELAXED_ERRORS_BIT, EShMsgRelaxedErrors); - CONVERT_MSG(GLSLANG_MSG_SUPPRESS_WARNINGS_BIT, EShMsgSuppressWarnings); - CONVERT_MSG(GLSLANG_MSG_AST_BIT, EShMsgAST); - CONVERT_MSG(GLSLANG_MSG_SPV_RULES_BIT, EShMsgSpvRules); - CONVERT_MSG(GLSLANG_MSG_VULKAN_RULES_BIT, EShMsgVulkanRules); - CONVERT_MSG(GLSLANG_MSG_ONLY_PREPROCESSOR_BIT, EShMsgOnlyPreprocessor); - CONVERT_MSG(GLSLANG_MSG_READ_HLSL_BIT, EShMsgReadHlsl); - CONVERT_MSG(GLSLANG_MSG_CASCADING_ERRORS_BIT, EShMsgCascadingErrors); - CONVERT_MSG(GLSLANG_MSG_KEEP_UNCALLED_BIT, EShMsgKeepUncalled); - CONVERT_MSG(GLSLANG_MSG_HLSL_OFFSETS_BIT, EShMsgHlslOffsets); - CONVERT_MSG(GLSLANG_MSG_DEBUG_INFO_BIT, EShMsgDebugInfo); - CONVERT_MSG(GLSLANG_MSG_HLSL_ENABLE_16BIT_TYPES_BIT, EShMsgHlslEnable16BitTypes); - CONVERT_MSG(GLSLANG_MSG_HLSL_LEGALIZATION_BIT, EShMsgHlslLegalization); - CONVERT_MSG(GLSLANG_MSG_HLSL_DX9_COMPATIBLE_BIT, EShMsgHlslDX9Compatible); - CONVERT_MSG(GLSLANG_MSG_BUILTIN_SYMBOL_TABLE_BIT, EShMsgBuiltinSymbolTable); - return res; -#undef CONVERT_MSG -} - -static glslang::EShTargetLanguageVersion -c_shader_target_language_version(glslang_target_language_version_t target_language_version) -{ - switch (target_language_version) { - case GLSLANG_TARGET_SPV_1_0: - return glslang::EShTargetSpv_1_0; - case GLSLANG_TARGET_SPV_1_1: - return glslang::EShTargetSpv_1_1; - case GLSLANG_TARGET_SPV_1_2: - return glslang::EShTargetSpv_1_2; - case GLSLANG_TARGET_SPV_1_3: - return glslang::EShTargetSpv_1_3; - case GLSLANG_TARGET_SPV_1_4: - return glslang::EShTargetSpv_1_4; - case GLSLANG_TARGET_SPV_1_5: - return glslang::EShTargetSpv_1_5; - case GLSLANG_TARGET_SPV_1_6: - return glslang::EShTargetSpv_1_6; - default: - break; - } - return glslang::EShTargetSpv_1_0; -} - -static glslang::EShClient c_shader_client(glslang_client_t client) -{ - switch (client) { - case GLSLANG_CLIENT_VULKAN: - return glslang::EShClientVulkan; - case GLSLANG_CLIENT_OPENGL: - return glslang::EShClientOpenGL; - default: - break; - } - - return glslang::EShClientNone; -} - -static glslang::EShTargetClientVersion c_shader_client_version(glslang_target_client_version_t client_version) -{ - switch (client_version) { - case GLSLANG_TARGET_VULKAN_1_1: - return glslang::EShTargetVulkan_1_1; - case GLSLANG_TARGET_VULKAN_1_2: - return glslang::EShTargetVulkan_1_2; - case GLSLANG_TARGET_VULKAN_1_3: - return glslang::EShTargetVulkan_1_3; - case GLSLANG_TARGET_OPENGL_450: - return glslang::EShTargetOpenGL_450; - default: - break; - } - - return glslang::EShTargetVulkan_1_0; -} - -static glslang::EShTargetLanguage c_shader_target_language(glslang_target_language_t target_language) -{ - if (target_language == GLSLANG_TARGET_NONE) - return glslang::EShTargetNone; - - return glslang::EShTargetSpv; -} - -static glslang::EShSource c_shader_source(glslang_source_t source) -{ - switch (source) { - case GLSLANG_SOURCE_GLSL: - return glslang::EShSourceGlsl; - case GLSLANG_SOURCE_HLSL: - return glslang::EShSourceHlsl; - default: - break; - } - - return glslang::EShSourceNone; -} - -static EProfile c_shader_profile(glslang_profile_t profile) -{ - switch (profile) { - case GLSLANG_BAD_PROFILE: - return EBadProfile; - case GLSLANG_NO_PROFILE: - return ENoProfile; - case GLSLANG_CORE_PROFILE: - return ECoreProfile; - case GLSLANG_COMPATIBILITY_PROFILE: - return ECompatibilityProfile; - case GLSLANG_ES_PROFILE: - return EEsProfile; - case GLSLANG_PROFILE_COUNT: // Should not use this - break; - } - - return EProfile(); -} - -GLSLANG_EXPORT glslang_shader_t* glslang_shader_create(const glslang_input_t* input) -{ - if (!input || !input->code) { - printf("Error creating shader: null input(%p)/input->code\n", input); - - if (input) - printf("input->code = %p\n", input->code); - - return nullptr; - } - - glslang_shader_t* shader = new glslang_shader_t(); - - shader->shader = new glslang::TShader(c_shader_stage(input->stage)); - shader->shader->setStrings(&input->code, 1); - shader->shader->setEnvInput(c_shader_source(input->language), c_shader_stage(input->stage), - c_shader_client(input->client), input->default_version); - shader->shader->setEnvClient(c_shader_client(input->client), c_shader_client_version(input->client_version)); - shader->shader->setEnvTarget(c_shader_target_language(input->target_language), - c_shader_target_language_version(input->target_language_version)); - - return shader; -} - -GLSLANG_EXPORT void glslang_shader_shift_binding(glslang_shader_t* shader, glslang_resource_type_t res, unsigned int base) -{ - const glslang::TResourceType res_type = glslang::TResourceType(res); - shader->shader->setShiftBinding(res_type, base); -} - -GLSLANG_EXPORT void glslang_shader_shift_binding_for_set(glslang_shader_t* shader, glslang_resource_type_t res, unsigned int base, unsigned int set) -{ - const glslang::TResourceType res_type = glslang::TResourceType(res); - shader->shader->setShiftBindingForSet(res_type, base, set); -} - -GLSLANG_EXPORT void glslang_shader_set_options(glslang_shader_t* shader, int options) -{ - if (options & GLSLANG_SHADER_AUTO_MAP_BINDINGS) { - shader->shader->setAutoMapBindings(true); - } - - if (options & GLSLANG_SHADER_AUTO_MAP_LOCATIONS) { - shader->shader->setAutoMapLocations(true); - } - - if (options & GLSLANG_SHADER_VULKAN_RULES_RELAXED) { - shader->shader->setEnvInputVulkanRulesRelaxed(); - } -} - -GLSLANG_EXPORT void glslang_shader_set_glsl_version(glslang_shader_t* shader, int version) -{ - shader->shader->setOverrideVersion(version); -} - -GLSLANG_EXPORT const char* glslang_shader_get_preprocessed_code(glslang_shader_t* shader) -{ - return shader->preprocessedGLSL.c_str(); -} - -GLSLANG_EXPORT int glslang_shader_preprocess(glslang_shader_t* shader, const glslang_input_t* input) -{ - DirStackFileIncluder Includer; - /* TODO: use custom callbacks if they are available in 'i->callbacks' */ - return shader->shader->preprocess( - reinterpret_cast(input->resource), - input->default_version, - c_shader_profile(input->default_profile), - input->force_default_version_and_profile != 0, - input->forward_compatible != 0, - (EShMessages)c_shader_messages(input->messages), - &shader->preprocessedGLSL, - Includer - ); -} - -GLSLANG_EXPORT int glslang_shader_parse(glslang_shader_t* shader, const glslang_input_t* input) -{ - const char* preprocessedCStr = shader->preprocessedGLSL.c_str(); - shader->shader->setStrings(&preprocessedCStr, 1); - - return shader->shader->parse( - reinterpret_cast(input->resource), - input->default_version, - input->forward_compatible != 0, - (EShMessages)c_shader_messages(input->messages) - ); -} - -GLSLANG_EXPORT const char* glslang_shader_get_info_log(glslang_shader_t* shader) { return shader->shader->getInfoLog(); } - -GLSLANG_EXPORT const char* glslang_shader_get_info_debug_log(glslang_shader_t* shader) { return shader->shader->getInfoDebugLog(); } - -GLSLANG_EXPORT void glslang_shader_delete(glslang_shader_t* shader) -{ - if (!shader) - return; - - delete (shader->shader); - delete (shader); -} - -GLSLANG_EXPORT glslang_program_t* glslang_program_create() -{ - glslang_program_t* p = new glslang_program_t(); - p->program = new glslang::TProgram(); - return p; -} - -GLSLANG_EXPORT void glslang_program_delete(glslang_program_t* program) -{ - if (!program) - return; - - delete (program->program); - delete (program); -} - -GLSLANG_EXPORT void glslang_program_add_shader(glslang_program_t* program, glslang_shader_t* shader) -{ - program->program->addShader(shader->shader); -} - -GLSLANG_EXPORT int glslang_program_link(glslang_program_t* program, int messages) -{ - return (int)program->program->link((EShMessages)messages); -} - -GLSLANG_EXPORT int glslang_program_map_io(glslang_program_t* program) -{ - return (int)program->program->mapIO(); -} - -GLSLANG_EXPORT const char* glslang_program_get_info_log(glslang_program_t* program) -{ - return program->program->getInfoLog(); -} - -GLSLANG_EXPORT const char* glslang_program_get_info_debug_log(glslang_program_t* program) -{ - return program->program->getInfoDebugLog(); -} diff --git a/deps/glslang/glslang/CMakeLists.txt b/deps/glslang/glslang/CMakeLists.txt deleted file mode 100644 index d0394c86..00000000 --- a/deps/glslang/glslang/CMakeLists.txt +++ /dev/null @@ -1,228 +0,0 @@ -# Copyright (C) 2020 The Khronos Group 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 The Khronos Group 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. - -if(WIN32) - add_subdirectory(OSDependent/Windows) -elseif(UNIX OR "${CMAKE_SYSTEM_NAME}" STREQUAL "Fuchsia") - add_subdirectory(OSDependent/Unix) -else() - message("unknown platform") -endif() - -if(EMSCRIPTEN OR ENABLE_GLSLANG_JS) - # May be enabled on non-Emscripten builds for binary-size testing. - add_subdirectory(OSDependent/Web) -endif() - -################################################################################ -# GenericCodeGen -################################################################################ -add_library(GenericCodeGen STATIC - GenericCodeGen/CodeGen.cpp - GenericCodeGen/Link.cpp) -set_property(TARGET GenericCodeGen PROPERTY POSITION_INDEPENDENT_CODE ON) -set_property(TARGET GenericCodeGen PROPERTY FOLDER glslang) - -################################################################################ -# MachineIndependent -################################################################################ -set(MACHINEINDEPENDENT_SOURCES - MachineIndependent/glslang.m4 - MachineIndependent/glslang.y - MachineIndependent/glslang_tab.cpp - MachineIndependent/attribute.cpp - MachineIndependent/Constant.cpp - MachineIndependent/iomapper.cpp - MachineIndependent/InfoSink.cpp - MachineIndependent/Initialize.cpp - MachineIndependent/IntermTraverse.cpp - MachineIndependent/Intermediate.cpp - MachineIndependent/ParseContextBase.cpp - MachineIndependent/ParseHelper.cpp - MachineIndependent/PoolAlloc.cpp - MachineIndependent/RemoveTree.cpp - MachineIndependent/Scan.cpp - MachineIndependent/ShaderLang.cpp - MachineIndependent/SpirvIntrinsics.cpp - MachineIndependent/SymbolTable.cpp - MachineIndependent/Versions.cpp - MachineIndependent/intermOut.cpp - MachineIndependent/limits.cpp - MachineIndependent/linkValidate.cpp - MachineIndependent/parseConst.cpp - MachineIndependent/reflection.cpp - MachineIndependent/preprocessor/Pp.cpp - MachineIndependent/preprocessor/PpAtom.cpp - MachineIndependent/preprocessor/PpContext.cpp - MachineIndependent/preprocessor/PpScanner.cpp - MachineIndependent/preprocessor/PpTokens.cpp - MachineIndependent/propagateNoContraction.cpp -) - -set(MACHINEINDEPENDENT_HEADERS - MachineIndependent/attribute.h - MachineIndependent/glslang_tab.cpp.h - MachineIndependent/gl_types.h - MachineIndependent/Initialize.h - MachineIndependent/iomapper.h - MachineIndependent/LiveTraverser.h - MachineIndependent/localintermediate.h - MachineIndependent/ParseHelper.h - MachineIndependent/reflection.h - MachineIndependent/RemoveTree.h - MachineIndependent/Scan.h - MachineIndependent/ScanContext.h - MachineIndependent/SymbolTable.h - MachineIndependent/Versions.h - MachineIndependent/parseVersions.h - MachineIndependent/propagateNoContraction.h - MachineIndependent/preprocessor/PpContext.h - MachineIndependent/preprocessor/PpTokens.h -) - -if(ENABLE_HLSL) - list(APPEND MACHINEINDEPENDENT_SOURCES - HLSL/hlslAttributes.cpp - HLSL/hlslParseHelper.cpp - HLSL/hlslScanContext.cpp - HLSL/hlslOpMap.cpp - HLSL/hlslTokenStream.cpp - HLSL/hlslGrammar.cpp - HLSL/hlslParseables.cpp) - - list(APPEND MACHINEINDEPENDENT_HEADERS - HLSL/hlslAttributes.h - HLSL/hlslParseHelper.h - HLSL/hlslTokens.h - HLSL/hlslScanContext.h - HLSL/hlslOpMap.h - HLSL/hlslTokenStream.h - HLSL/hlslGrammar.h - HLSL/hlslParseables.h) -endif() - -add_library(MachineIndependent STATIC ${MACHINEINDEPENDENT_SOURCES} ${MACHINEINDEPENDENT_HEADERS}) -set_property(TARGET MachineIndependent PROPERTY POSITION_INDEPENDENT_CODE ON) -set_property(TARGET MachineIndependent PROPERTY FOLDER glslang) - -glslang_add_build_info_dependency(MachineIndependent) - -glslang_pch(MachineIndependent MachineIndependent/pch.h) - -target_link_libraries(MachineIndependent PRIVATE OGLCompiler OSDependent GenericCodeGen) - -################################################################################ -# glslang -################################################################################ -set(GLSLANG_SOURCES - CInterface/glslang_c_interface.cpp) - -set(GLSLANG_HEADERS - Public/ShaderLang.h - Include/arrays.h - Include/BaseTypes.h - Include/Common.h - Include/ConstantUnion.h - Include/glslang_c_interface.h - Include/glslang_c_shader_types.h - Include/InfoSink.h - Include/InitializeGlobals.h - Include/intermediate.h - Include/PoolAlloc.h - Include/ResourceLimits.h - Include/ShHandle.h - Include/SpirvIntrinsics.h - Include/Types.h) - -add_library(glslang ${LIB_TYPE} ${BISON_GLSLParser_OUTPUT_SOURCE} ${GLSLANG_SOURCES} ${GLSLANG_HEADERS}) -set_target_properties(glslang PROPERTIES - FOLDER glslang - POSITION_INDEPENDENT_CODE ON - VERSION "${GLSLANG_VERSION}" - SOVERSION "${GLSLANG_VERSION_MAJOR}") -target_link_libraries(glslang PRIVATE OGLCompiler OSDependent MachineIndependent) -target_include_directories(glslang PUBLIC - $ - $) - -glslang_add_build_info_dependency(glslang) - -glslang_only_export_explicit_symbols(glslang) - -if(WIN32 AND BUILD_SHARED_LIBS) - set_target_properties(glslang PROPERTIES PREFIX "") -endif() - -################################################################################ -# source_groups -################################################################################ -if(WIN32) - source_group("Public" REGULAR_EXPRESSION "Public/*") - source_group("MachineIndependent" REGULAR_EXPRESSION "MachineIndependent/[^/]*") - source_group("Include" REGULAR_EXPRESSION "Include/[^/]*") - source_group("GenericCodeGen" REGULAR_EXPRESSION "GenericCodeGen/*") - source_group("MachineIndependent\\Preprocessor" REGULAR_EXPRESSION "MachineIndependent/preprocessor/*") - source_group("HLSL" REGULAR_EXPRESSION "HLSL/*") - source_group("CInterface" REGULAR_EXPRESSION "CInterface/*") -endif() - -################################################################################ -# install -################################################################################ -if(ENABLE_GLSLANG_INSTALL) - if(BUILD_SHARED_LIBS) - install(TARGETS glslang - EXPORT glslangTargets - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) - else() - install(TARGETS glslang MachineIndependent GenericCodeGen - EXPORT glslangTargets - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) - endif() - - install(EXPORT glslangTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) - - set(ALL_HEADERS - ${GLSLANG_HEADERS} - ${MACHINEINDEPENDENT_HEADERS}) - - foreach(file ${ALL_HEADERS}) - get_filename_component(dir ${file} DIRECTORY) - install(FILES ${file} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/glslang/${dir}) - endforeach() - - install(FILES ${GLSLANG_BUILD_INFO_H} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/glslang) - -endif() diff --git a/deps/glslang/glslang/ExtensionHeaders/GL_EXT_shader_realtime_clock.glsl b/deps/glslang/glslang/ExtensionHeaders/GL_EXT_shader_realtime_clock.glsl deleted file mode 100644 index 7cf545d9..00000000 --- a/deps/glslang/glslang/ExtensionHeaders/GL_EXT_shader_realtime_clock.glsl +++ /dev/null @@ -1,38 +0,0 @@ -// -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2013-2016 LunarG, Inc. -// Copyright (C) 2016-2020 Google, Inc. -// Modifications Copyright(C) 2021 Advanced Micro Devices, 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: -// -// 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. -// - diff --git a/deps/glslang/glslang/GenericCodeGen/CodeGen.cpp b/deps/glslang/glslang/GenericCodeGen/CodeGen.cpp deleted file mode 100644 index b3c7226d..00000000 --- a/deps/glslang/glslang/GenericCodeGen/CodeGen.cpp +++ /dev/null @@ -1,76 +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. -// - -#include "../Include/Common.h" -#include "../Include/ShHandle.h" -#include "../MachineIndependent/Versions.h" - -// -// Here is where real machine specific high-level data would be defined. -// -class TGenericCompiler : public TCompiler { -public: - TGenericCompiler(EShLanguage l, int dOptions) : TCompiler(l, infoSink), debugOptions(dOptions) { } - virtual bool compile(TIntermNode* root, int version = 0, EProfile profile = ENoProfile); - TInfoSink infoSink; - int debugOptions; -}; - -// -// This function must be provided to create the actual -// compile object used by higher level code. It returns -// a subclass of TCompiler. -// -TCompiler* ConstructCompiler(EShLanguage language, int debugOptions) -{ - return new TGenericCompiler(language, debugOptions); -} - -// -// Delete the compiler made by ConstructCompiler -// -void DeleteCompiler(TCompiler* compiler) -{ - delete compiler; -} - -// -// Generate code from the given parse tree -// -bool TGenericCompiler::compile(TIntermNode* /*root*/, int /*version*/, EProfile /*profile*/) -{ - haveValidObjectCode = true; - - return haveValidObjectCode; -} diff --git a/deps/glslang/glslang/GenericCodeGen/Link.cpp b/deps/glslang/glslang/GenericCodeGen/Link.cpp deleted file mode 100644 index c38db0f6..00000000 --- a/deps/glslang/glslang/GenericCodeGen/Link.cpp +++ /dev/null @@ -1,91 +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. -// - -// -// The top level algorithms for linking multiple -// shaders together. -// -#include "../Include/Common.h" -#include "../Include/ShHandle.h" - -// -// Actual link object, derived from the shader handle base classes. -// -class TGenericLinker : public TLinker { -public: - TGenericLinker(EShExecutable e, int dOptions) : TLinker(e, infoSink), debugOptions(dOptions) { } - bool link(TCompilerList&, TUniformMap*) { return true; } - void getAttributeBindings(ShBindingTable const **) const { } - TInfoSink infoSink; - int debugOptions; -}; - -// -// The internal view of a uniform/float object exchanged with the driver. -// -class TUniformLinkedMap : public TUniformMap { -public: - TUniformLinkedMap() { } - virtual int getLocation(const char*) { return 0; } -}; - -TShHandleBase* ConstructLinker(EShExecutable executable, int debugOptions) -{ - return new TGenericLinker(executable, debugOptions); -} - -void DeleteLinker(TShHandleBase* linker) -{ - delete linker; -} - -TUniformMap* ConstructUniformMap() -{ - return new TUniformLinkedMap(); -} - -void DeleteUniformMap(TUniformMap* map) -{ - delete map; -} - -TShHandleBase* ConstructBindings() -{ - return 0; -} - -void DeleteBindingList(TShHandleBase* bindingList) -{ - delete bindingList; -} diff --git a/deps/glslang/glslang/HLSL/hlslAttributes.cpp b/deps/glslang/glslang/HLSL/hlslAttributes.cpp deleted file mode 100644 index 0cc0d3f4..00000000 --- a/deps/glslang/glslang/HLSL/hlslAttributes.cpp +++ /dev/null @@ -1,149 +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 == "spv") { - if (name == "format_rgba32f") return EatFormatRgba32f; - if (name == "format_rgba16f") return EatFormatRgba16f; - if (name == "format_r32f") return EatFormatR32f; - if (name == "format_rgba8") return EatFormatRgba8; - if (name == "format_rgba8snorm") return EatFormatRgba8Snorm; - if (name == "format_rg32f") return EatFormatRg32f; - if (name == "format_rg16f") return EatFormatRg16f; - if (name == "format_r11fg11fb10f") return EatFormatR11fG11fB10f; - if (name == "format_r16f") return EatFormatR16f; - if (name == "format_rgba16") return EatFormatRgba16; - if (name == "format_rgb10a2") return EatFormatRgb10A2; - if (name == "format_rg16") return EatFormatRg16; - if (name == "format_rg8") return EatFormatRg8; - if (name == "format_r16") return EatFormatR16; - if (name == "format_r8") return EatFormatR8; - if (name == "format_rgba16snorm") return EatFormatRgba16Snorm; - if (name == "format_rg16snorm") return EatFormatRg16Snorm; - if (name == "format_rg8snorm") return EatFormatRg8Snorm; - if (name == "format_r16snorm") return EatFormatR16Snorm; - if (name == "format_r8snorm") return EatFormatR8Snorm; - if (name == "format_rgba32i") return EatFormatRgba32i; - if (name == "format_rgba16i") return EatFormatRgba16i; - if (name == "format_rgba8i") return EatFormatRgba8i; - if (name == "format_r32i") return EatFormatR32i; - if (name == "format_rg32i") return EatFormatRg32i; - if (name == "format_rg16i") return EatFormatRg16i; - if (name == "format_rg8i") return EatFormatRg8i; - if (name == "format_r16i") return EatFormatR16i; - if (name == "format_r8i") return EatFormatR8i; - if (name == "format_rgba32ui") return EatFormatRgba32ui; - if (name == "format_rgba16ui") return EatFormatRgba16ui; - if (name == "format_rgba8ui") return EatFormatRgba8ui; - if (name == "format_r32ui") return EatFormatR32ui; - if (name == "format_rgb10a2ui") return EatFormatRgb10a2ui; - if (name == "format_rg32ui") return EatFormatRg32ui; - if (name == "format_rg16ui") return EatFormatRg16ui; - if (name == "format_rg8ui") return EatFormatRg8ui; - if (name == "format_r16ui") return EatFormatR16ui; - if (name == "format_r8ui") return EatFormatR8ui; - - if (name == "nonwritable") return EatNonWritable; - if (name == "nonreadable") return EatNonReadable; - } else if (nameSpace.size() > 0) - return EatNone; - - // handle names with no namespace - - if (name == "allow_uav_condition") - return EatAllow_uav_condition; - else if (name == "branch") - return EatBranch; - else if (name == "call") - return EatCall; - else if (name == "domain") - return EatDomain; - else if (name == "earlydepthstencil") - return EatEarlyDepthStencil; - else if (name == "fastopt") - return EatFastOpt; - else if (name == "flatten") - return EatFlatten; - else if (name == "forcecase") - return EatForceCase; - else if (name == "instance") - return EatInstance; - else if (name == "maxtessfactor") - return EatMaxTessFactor; - else if (name == "maxvertexcount") - return EatMaxVertexCount; - else if (name == "numthreads") - return EatNumThreads; - else if (name == "outputcontrolpoints") - return EatOutputControlPoints; - else if (name == "outputtopology") - return EatOutputTopology; - else if (name == "partitioning") - return EatPartitioning; - else if (name == "patchconstantfunc") - return EatPatchConstantFunc; - else if (name == "unroll") - return EatUnroll; - else if (name == "loop") - return EatLoop; - else - return EatNone; - } - -} // end namespace glslang diff --git a/deps/glslang/glslang/HLSL/hlslAttributes.h b/deps/glslang/glslang/HLSL/hlslAttributes.h deleted file mode 100644 index 62faa5b8..00000000 --- a/deps/glslang/glslang/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 "../MachineIndependent/attribute.h" -#include "../MachineIndependent/SymbolTable.h" -#include "hlslScanContext.h" - -namespace glslang { - - class TFunctionDeclarator { - public: - TFunctionDeclarator() : function(nullptr), body(nullptr) { } - TSourceLoc loc; - TFunction* function; - TAttributes attributes; - TVector* body; - }; - -} // end namespace glslang - -#endif // HLSLATTRIBUTES_H_ diff --git a/deps/glslang/glslang/HLSL/hlslGrammar.cpp b/deps/glslang/glslang/HLSL/hlslGrammar.cpp deleted file mode 100644 index bd4af922..00000000 --- a/deps/glslang/glslang/HLSL/hlslGrammar.cpp +++ /dev/null @@ -1,4192 +0,0 @@ -// -// Copyright (C) 2016-2018 Google, Inc. -// Copyright (C) 2016 LunarG, Inc. -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// Neither the name of Google, Inc., nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -// - -// -// This is a set of mutually recursive methods implementing the HLSL grammar. -// Generally, each returns -// - through an argument: a type specifically appropriate to which rule it -// recognized -// - through the return value: true/false to indicate whether or not it -// recognized its rule -// -// As much as possible, only grammar recognition should happen in this file, -// with all other work being farmed out to hlslParseHelper.cpp, which in turn -// will build the AST. -// -// The next token, yet to be "accepted" is always sitting in 'token'. -// When a method says it accepts a rule, that means all tokens involved -// in the rule will have been consumed, and none left in 'token'. -// - -#include "hlslTokens.h" -#include "hlslGrammar.h" -#include "hlslAttributes.h" - -namespace glslang { - -// Root entry point to this recursive decent parser. -// Return true if compilation unit was successfully accepted. -bool HlslGrammar::parse() -{ - advanceToken(); - return acceptCompilationUnit(); -} - -void HlslGrammar::expected(const char* syntax) -{ - parseContext.error(token.loc, "Expected", syntax, ""); -} - -void HlslGrammar::unimplemented(const char* error) -{ - parseContext.error(token.loc, "Unimplemented", error, ""); -} - -// IDENTIFIER -// THIS -// type that can be used as IDENTIFIER -// -// Only process the next token if it is an identifier. -// Return true if it was an identifier. -bool HlslGrammar::acceptIdentifier(HlslToken& idToken) -{ - // IDENTIFIER - if (peekTokenClass(EHTokIdentifier)) { - idToken = token; - advanceToken(); - return true; - } - - // THIS - // -> maps to the IDENTIFIER spelled with the internal special name for 'this' - if (peekTokenClass(EHTokThis)) { - idToken = token; - advanceToken(); - idToken.tokenClass = EHTokIdentifier; - idToken.string = NewPoolTString(intermediate.implicitThisName); - return true; - } - - // type that can be used as IDENTIFIER - - // Even though "sample", "bool", "float", etc keywords (for types, interpolation modifiers), - // they ARE still accepted as identifiers. This is not a dense space: e.g, "void" is not a - // valid identifier, nor is "linear". This code special cases the known instances of this, so - // e.g, "int sample;" or "float float;" is accepted. Other cases can be added here if needed. - - const char* idString = getTypeString(peek()); - if (idString == nullptr) - return false; - - token.string = NewPoolTString(idString); - token.tokenClass = EHTokIdentifier; - idToken = token; - typeIdentifiers = true; - - advanceToken(); - - return true; -} - -// compilationUnit -// : declaration_list EOF -// -bool HlslGrammar::acceptCompilationUnit() -{ - if (! acceptDeclarationList(unitNode)) - return false; - - if (! peekTokenClass(EHTokNone)) - return false; - - // set root of AST - if (unitNode && !unitNode->getAsAggregate()) - unitNode = intermediate.growAggregate(nullptr, unitNode); - intermediate.setTreeRoot(unitNode); - - return true; -} - -// Recognize the following, but with the extra condition that it can be -// successfully terminated by EOF or '}'. -// -// declaration_list -// : list of declaration_or_semicolon followed by EOF or RIGHT_BRACE -// -// declaration_or_semicolon -// : declaration -// : SEMICOLON -// -bool HlslGrammar::acceptDeclarationList(TIntermNode*& nodeList) -{ - do { - // HLSL allows extra semicolons between global declarations - do { } while (acceptTokenClass(EHTokSemicolon)); - - // EOF or RIGHT_BRACE - if (peekTokenClass(EHTokNone) || peekTokenClass(EHTokRightBrace)) - return true; - - // declaration - if (! acceptDeclaration(nodeList)) { - expected("declaration"); - return false; - } - } while (true); - - return true; -} - -// sampler_state -// : LEFT_BRACE [sampler_state_assignment ... ] RIGHT_BRACE -// -// sampler_state_assignment -// : sampler_state_identifier EQUAL value SEMICOLON -// -// sampler_state_identifier -// : ADDRESSU -// | ADDRESSV -// | ADDRESSW -// | BORDERCOLOR -// | FILTER -// | MAXANISOTROPY -// | MAXLOD -// | MINLOD -// | MIPLODBIAS -// -bool HlslGrammar::acceptSamplerState() -{ - // TODO: this should be genericized to accept a list of valid tokens and - // return token/value pairs. Presently it is specific to texture values. - - if (! acceptTokenClass(EHTokLeftBrace)) - return true; - - parseContext.warn(token.loc, "unimplemented", "immediate sampler state", ""); - - do { - // read state name - HlslToken state; - if (! acceptIdentifier(state)) - break; // end of list - - // FXC accepts any case - TString stateName = *state.string; - std::transform(stateName.begin(), stateName.end(), stateName.begin(), ::tolower); - - if (! acceptTokenClass(EHTokAssign)) { - expected("assign"); - return false; - } - - if (stateName == "minlod" || stateName == "maxlod") { - if (! peekTokenClass(EHTokIntConstant)) { - expected("integer"); - return false; - } - - TIntermTyped* lod = nullptr; - if (! acceptLiteral(lod)) // should never fail, since we just looked for an integer - return false; - } else if (stateName == "maxanisotropy") { - if (! peekTokenClass(EHTokIntConstant)) { - expected("integer"); - return false; - } - - TIntermTyped* maxAnisotropy = nullptr; - if (! acceptLiteral(maxAnisotropy)) // should never fail, since we just looked for an integer - return false; - } else if (stateName == "filter") { - HlslToken filterMode; - if (! acceptIdentifier(filterMode)) { - expected("filter mode"); - return false; - } - } else if (stateName == "addressu" || stateName == "addressv" || stateName == "addressw") { - HlslToken addrMode; - if (! acceptIdentifier(addrMode)) { - expected("texture address mode"); - return false; - } - } else if (stateName == "miplodbias") { - TIntermTyped* lodBias = nullptr; - if (! acceptLiteral(lodBias)) { - expected("lod bias"); - return false; - } - } else if (stateName == "bordercolor") { - return false; - } else { - expected("texture state"); - return false; - } - - // SEMICOLON - if (! acceptTokenClass(EHTokSemicolon)) { - expected("semicolon"); - return false; - } - } while (true); - - if (! acceptTokenClass(EHTokRightBrace)) - return false; - - return true; -} - -// sampler_declaration_dx9 -// : SAMPLER identifier EQUAL sampler_type sampler_state -// -bool HlslGrammar::acceptSamplerDeclarationDX9(TType& /*type*/) -{ - if (! acceptTokenClass(EHTokSampler)) - return false; - - // TODO: remove this when DX9 style declarations are implemented. - unimplemented("Direct3D 9 sampler declaration"); - - // read sampler name - HlslToken name; - if (! acceptIdentifier(name)) { - expected("sampler name"); - return false; - } - - if (! acceptTokenClass(EHTokAssign)) { - expected("="); - return false; - } - - return false; -} - -// declaration -// : attributes attributed_declaration -// | NAMESPACE IDENTIFIER LEFT_BRACE declaration_list RIGHT_BRACE -// -// attributed_declaration -// : sampler_declaration_dx9 post_decls SEMICOLON -// | fully_specified_type // for cbuffer/tbuffer -// | fully_specified_type declarator_list SEMICOLON // for non cbuffer/tbuffer -// | fully_specified_type identifier function_parameters post_decls compound_statement // function definition -// | fully_specified_type identifier sampler_state post_decls compound_statement // sampler definition -// | typedef declaration -// -// declarator_list -// : declarator COMMA declarator COMMA declarator... // zero or more declarators -// -// declarator -// : identifier array_specifier post_decls -// | identifier array_specifier post_decls EQUAL assignment_expression -// | identifier function_parameters post_decls // function prototype -// -// Parsing has to go pretty far in to know whether it's a variable, prototype, or -// function definition, so the implementation below doesn't perfectly divide up the grammar -// as above. (The 'identifier' in the first item in init_declarator list is the -// same as 'identifier' for function declarations.) -// -// This can generate more than one subtree, one per initializer or a function body. -// All initializer subtrees are put in their own aggregate node, making one top-level -// node for all the initializers. Each function created is a top-level node to grow -// into the passed-in nodeList. -// -// If 'nodeList' is passed in as non-null, it must be an aggregate to extend for -// each top-level node the declaration creates. Otherwise, if only one top-level -// node in generated here, that is want is returned in nodeList. -// -bool HlslGrammar::acceptDeclaration(TIntermNode*& nodeList) -{ - // NAMESPACE IDENTIFIER LEFT_BRACE declaration_list RIGHT_BRACE - if (acceptTokenClass(EHTokNamespace)) { - HlslToken namespaceToken; - if (!acceptIdentifier(namespaceToken)) { - expected("namespace name"); - return false; - } - parseContext.pushNamespace(*namespaceToken.string); - if (!acceptTokenClass(EHTokLeftBrace)) { - expected("{"); - return false; - } - if (!acceptDeclarationList(nodeList)) { - expected("declaration list"); - return false; - } - if (!acceptTokenClass(EHTokRightBrace)) { - expected("}"); - return false; - } - parseContext.popNamespace(); - return true; - } - - bool declarator_list = false; // true when processing comma separation - - // attributes - TFunctionDeclarator declarator; - acceptAttributes(declarator.attributes); - - // typedef - bool typedefDecl = acceptTokenClass(EHTokTypedef); - - TType declaredType; - - // DX9 sampler declaration use a different syntax - // DX9 shaders need to run through HLSL compiler (fxc) via a back compat mode, it isn't going to - // be possible to simultaneously compile D3D10+ style shaders and DX9 shaders. If we want to compile DX9 - // HLSL shaders, this will have to be a master level switch - // As such, the sampler keyword in D3D10+ turns into an automatic sampler type, and is commonly used - // For that reason, this line is commented out - // if (acceptSamplerDeclarationDX9(declaredType)) - // return true; - - bool forbidDeclarators = (peekTokenClass(EHTokCBuffer) || peekTokenClass(EHTokTBuffer)); - // fully_specified_type - if (! acceptFullySpecifiedType(declaredType, nodeList, declarator.attributes, forbidDeclarators)) - return false; - - // cbuffer and tbuffer end with the closing '}'. - // No semicolon is included. - if (forbidDeclarators) - return true; - - // Check if there are invalid in/out qualifiers - switch (declaredType.getQualifier().storage) { - case EvqIn: - case EvqOut: - case EvqInOut: - parseContext.error(token.loc, "in/out qualifiers are only valid on parameters", token.string->c_str(), ""); - default: - break; - } - - // declarator_list - // : declarator - // : identifier - HlslToken idToken; - TIntermAggregate* initializers = nullptr; - while (acceptIdentifier(idToken)) { - TString *fullName = idToken.string; - if (parseContext.symbolTable.atGlobalLevel()) - parseContext.getFullNamespaceName(fullName); - if (peekTokenClass(EHTokLeftParen)) { - // looks like function parameters - - // merge in the attributes into the return type - parseContext.transferTypeAttributes(token.loc, declarator.attributes, declaredType, true); - - // Potentially rename shader entry point function. No-op most of the time. - parseContext.renameShaderFunction(fullName); - - // function_parameters - declarator.function = new TFunction(fullName, declaredType); - if (!acceptFunctionParameters(*declarator.function)) { - expected("function parameter list"); - return false; - } - - // post_decls - acceptPostDecls(declarator.function->getWritableType().getQualifier()); - - // compound_statement (function body definition) or just a prototype? - declarator.loc = token.loc; - if (peekTokenClass(EHTokLeftBrace)) { - if (declarator_list) - parseContext.error(idToken.loc, "function body can't be in a declarator list", "{", ""); - if (typedefDecl) - parseContext.error(idToken.loc, "function body can't be in a typedef", "{", ""); - return acceptFunctionDefinition(declarator, nodeList, nullptr); - } else { - if (typedefDecl) - parseContext.error(idToken.loc, "function typedefs not implemented", "{", ""); - parseContext.handleFunctionDeclarator(declarator.loc, *declarator.function, true); - } - } else { - // A variable declaration. - - // merge in the attributes, the first time around, into the shared type - if (! declarator_list) - parseContext.transferTypeAttributes(token.loc, declarator.attributes, declaredType); - - // Fix the storage qualifier if it's a global. - if (declaredType.getQualifier().storage == EvqTemporary && parseContext.symbolTable.atGlobalLevel()) - declaredType.getQualifier().storage = EvqUniform; - - // recognize array_specifier - TArraySizes* arraySizes = nullptr; - acceptArraySpecifier(arraySizes); - - // We can handle multiple variables per type declaration, so - // the number of types can expand when arrayness is different. - TType variableType; - variableType.shallowCopy(declaredType); - - // In the most general case, arrayness is potentially coming both from the - // declared type and from the variable: "int[] a[];" or just one or the other. - // Merge it all to the variableType, so all arrayness is part of the variableType. - variableType.transferArraySizes(arraySizes); - variableType.copyArrayInnerSizes(declaredType.getArraySizes()); - - // samplers accept immediate sampler state - if (variableType.getBasicType() == EbtSampler) { - if (! acceptSamplerState()) - return false; - } - - // post_decls - acceptPostDecls(variableType.getQualifier()); - - // EQUAL assignment_expression - TIntermTyped* expressionNode = nullptr; - if (acceptTokenClass(EHTokAssign)) { - if (typedefDecl) - parseContext.error(idToken.loc, "can't have an initializer", "typedef", ""); - if (! acceptAssignmentExpression(expressionNode)) { - expected("initializer"); - return false; - } - } - - // TODO: things scoped within an annotation need their own name space; - // TODO: non-constant strings are not yet handled. - if (!(variableType.getBasicType() == EbtString && !variableType.getQualifier().isConstant()) && - parseContext.getAnnotationNestingLevel() == 0) { - if (typedefDecl) - parseContext.declareTypedef(idToken.loc, *fullName, variableType); - else if (variableType.getBasicType() == EbtBlock) { - if (expressionNode) - parseContext.error(idToken.loc, "buffer aliasing not yet supported", "block initializer", ""); - parseContext.declareBlock(idToken.loc, variableType, fullName); - parseContext.declareStructBufferCounter(idToken.loc, variableType, *fullName); - } else { - if (variableType.getQualifier().storage == EvqUniform && ! variableType.containsOpaque()) { - // this isn't really an individual variable, but a member of the $Global buffer - parseContext.growGlobalUniformBlock(idToken.loc, variableType, *fullName); - } else { - // Declare the variable and add any initializer code to the AST. - // The top-level node is always made into an aggregate, as that's - // historically how the AST has been. - initializers = intermediate.growAggregate(initializers, - parseContext.declareVariable(idToken.loc, *fullName, variableType, expressionNode), - idToken.loc); - } - } - } - } - - // COMMA - if (acceptTokenClass(EHTokComma)) - declarator_list = true; - } - - // The top-level initializer node is a sequence. - if (initializers != nullptr) - initializers->setOperator(EOpSequence); - - // if we have a locally scoped static, it needs a globally scoped initializer - if (declaredType.getQualifier().storage == EvqGlobal && !parseContext.symbolTable.atGlobalLevel()) { - unitNode = intermediate.growAggregate(unitNode, initializers, idToken.loc); - } else { - // Add the initializers' aggregate to the nodeList we were handed. - if (nodeList) - nodeList = intermediate.growAggregate(nodeList, initializers); - else - nodeList = initializers; - } - - // SEMICOLON - if (! acceptTokenClass(EHTokSemicolon)) { - // This may have been a false detection of what appeared to be a declaration, but - // was actually an assignment such as "float = 4", where "float" is an identifier. - // We put the token back to let further parsing happen for cases where that may - // happen. This errors on the side of caution, and mostly triggers the error. - if (peek() == EHTokAssign || peek() == EHTokLeftBracket || peek() == EHTokDot || peek() == EHTokComma) - recedeToken(); - else - expected(";"); - return false; - } - - return true; -} - -// control_declaration -// : fully_specified_type identifier EQUAL expression -// -bool HlslGrammar::acceptControlDeclaration(TIntermNode*& node) -{ - node = nullptr; - TAttributes attributes; - - // fully_specified_type - TType type; - if (! acceptFullySpecifiedType(type, attributes)) - return false; - - if (attributes.size() > 0) - parseContext.warn(token.loc, "attributes don't apply to control declaration", "", ""); - - // filter out type casts - if (peekTokenClass(EHTokLeftParen)) { - recedeToken(); - return false; - } - - // identifier - HlslToken idToken; - if (! acceptIdentifier(idToken)) { - expected("identifier"); - return false; - } - - // EQUAL - TIntermTyped* expressionNode = nullptr; - if (! acceptTokenClass(EHTokAssign)) { - expected("="); - return false; - } - - // expression - if (! acceptExpression(expressionNode)) { - expected("initializer"); - return false; - } - - node = parseContext.declareVariable(idToken.loc, *idToken.string, type, expressionNode); - - return true; -} - -// fully_specified_type -// : type_specifier -// | type_qualifier type_specifier -// -bool HlslGrammar::acceptFullySpecifiedType(TType& type, const TAttributes& attributes) -{ - TIntermNode* nodeList = nullptr; - return acceptFullySpecifiedType(type, nodeList, attributes); -} -bool HlslGrammar::acceptFullySpecifiedType(TType& type, TIntermNode*& nodeList, const TAttributes& attributes, bool forbidDeclarators) -{ - // type_qualifier - TQualifier qualifier; - qualifier.clear(); - if (! acceptQualifier(qualifier)) - return false; - TSourceLoc loc = token.loc; - - // type_specifier - if (! acceptType(type, nodeList)) { - // If this is not a type, we may have inadvertently gone down a wrong path - // by parsing "sample", which can be treated like either an identifier or a - // qualifier. Back it out, if we did. - if (qualifier.sample) - recedeToken(); - - return false; - } - - if (type.getBasicType() == EbtBlock) { - // the type was a block, which set some parts of the qualifier - parseContext.mergeQualifiers(type.getQualifier(), qualifier); - - // merge in the attributes - parseContext.transferTypeAttributes(token.loc, attributes, type); - - // further, it can create an anonymous instance of the block - // (cbuffer and tbuffer don't consume the next identifier, and - // should set forbidDeclarators) - if (forbidDeclarators || peek() != EHTokIdentifier) - parseContext.declareBlock(loc, type); - } else { - // Some qualifiers are set when parsing the type. Merge those with - // whatever comes from acceptQualifier. - assert(qualifier.layoutFormat == ElfNone); - - qualifier.layoutFormat = type.getQualifier().layoutFormat; - qualifier.precision = type.getQualifier().precision; - - if (type.getQualifier().storage == EvqOut || - type.getQualifier().storage == EvqBuffer) { - qualifier.storage = type.getQualifier().storage; - qualifier.readonly = type.getQualifier().readonly; - } - - if (type.isBuiltIn()) - qualifier.builtIn = type.getQualifier().builtIn; - - type.getQualifier() = qualifier; - } - - return true; -} - -// type_qualifier -// : qualifier qualifier ... -// -// Zero or more of these, so this can't return false. -// -bool HlslGrammar::acceptQualifier(TQualifier& qualifier) -{ - do { - switch (peek()) { - case EHTokStatic: - qualifier.storage = EvqGlobal; - break; - case EHTokExtern: - // TODO: no meaning in glslang? - break; - case EHTokShared: - // TODO: hint - break; - case EHTokGroupShared: - qualifier.storage = EvqShared; - break; - case EHTokUniform: - qualifier.storage = EvqUniform; - break; - case EHTokConst: - qualifier.storage = EvqConst; - break; - case EHTokVolatile: - qualifier.volatil = true; - break; - case EHTokLinear: - qualifier.smooth = true; - break; - case EHTokCentroid: - qualifier.centroid = true; - break; - case EHTokNointerpolation: - qualifier.flat = true; - break; - case EHTokNoperspective: - qualifier.nopersp = true; - break; - case EHTokSample: - qualifier.sample = true; - break; - case EHTokRowMajor: - qualifier.layoutMatrix = ElmColumnMajor; - break; - case EHTokColumnMajor: - qualifier.layoutMatrix = ElmRowMajor; - break; - case EHTokPrecise: - qualifier.noContraction = true; - break; - case EHTokIn: - if (qualifier.storage != EvqUniform) { - qualifier.storage = (qualifier.storage == EvqOut) ? EvqInOut : EvqIn; - } - break; - case EHTokOut: - qualifier.storage = (qualifier.storage == EvqIn) ? EvqInOut : EvqOut; - break; - case EHTokInOut: - qualifier.storage = EvqInOut; - break; - case EHTokLayout: - if (! acceptLayoutQualifierList(qualifier)) - return false; - continue; - case EHTokGloballyCoherent: - qualifier.coherent = true; - break; - case EHTokInline: - // TODO: map this to SPIR-V function control - break; - - // GS geometries: these are specified on stage input variables, and are an error (not verified here) - // for output variables. - case EHTokPoint: - qualifier.storage = EvqIn; - if (!parseContext.handleInputGeometry(token.loc, ElgPoints)) - return false; - break; - case EHTokLine: - qualifier.storage = EvqIn; - if (!parseContext.handleInputGeometry(token.loc, ElgLines)) - return false; - break; - case EHTokTriangle: - qualifier.storage = EvqIn; - if (!parseContext.handleInputGeometry(token.loc, ElgTriangles)) - return false; - break; - case EHTokLineAdj: - qualifier.storage = EvqIn; - if (!parseContext.handleInputGeometry(token.loc, ElgLinesAdjacency)) - return false; - break; - case EHTokTriangleAdj: - qualifier.storage = EvqIn; - if (!parseContext.handleInputGeometry(token.loc, ElgTrianglesAdjacency)) - return false; - break; - - default: - return true; - } - advanceToken(); - } while (true); -} - -// layout_qualifier_list -// : LAYOUT LEFT_PAREN layout_qualifier COMMA layout_qualifier ... RIGHT_PAREN -// -// layout_qualifier -// : identifier -// | identifier EQUAL expression -// -// Zero or more of these, so this can't return false. -// -bool HlslGrammar::acceptLayoutQualifierList(TQualifier& qualifier) -{ - if (! acceptTokenClass(EHTokLayout)) - return false; - - // LEFT_PAREN - if (! acceptTokenClass(EHTokLeftParen)) - return false; - - do { - // identifier - HlslToken idToken; - if (! acceptIdentifier(idToken)) - break; - - // EQUAL expression - if (acceptTokenClass(EHTokAssign)) { - TIntermTyped* expr; - if (! acceptConditionalExpression(expr)) { - expected("expression"); - return false; - } - parseContext.setLayoutQualifier(idToken.loc, qualifier, *idToken.string, expr); - } else - parseContext.setLayoutQualifier(idToken.loc, qualifier, *idToken.string); - - // COMMA - if (! acceptTokenClass(EHTokComma)) - break; - } while (true); - - // RIGHT_PAREN - if (! acceptTokenClass(EHTokRightParen)) { - expected(")"); - return false; - } - - return true; -} - -// template_type -// : FLOAT -// | DOUBLE -// | INT -// | DWORD -// | UINT -// | BOOL -// -bool HlslGrammar::acceptTemplateVecMatBasicType(TBasicType& basicType) -{ - switch (peek()) { - case EHTokFloat: - basicType = EbtFloat; - break; - case EHTokDouble: - basicType = EbtDouble; - break; - case EHTokInt: - case EHTokDword: - basicType = EbtInt; - break; - case EHTokUint: - basicType = EbtUint; - break; - case EHTokBool: - basicType = EbtBool; - break; - default: - return false; - } - - advanceToken(); - - return true; -} - -// vector_template_type -// : VECTOR -// | VECTOR LEFT_ANGLE template_type COMMA integer_literal RIGHT_ANGLE -// -bool HlslGrammar::acceptVectorTemplateType(TType& type) -{ - if (! acceptTokenClass(EHTokVector)) - return false; - - if (! acceptTokenClass(EHTokLeftAngle)) { - // in HLSL, 'vector' alone means float4. - new(&type) TType(EbtFloat, EvqTemporary, 4); - return true; - } - - TBasicType basicType; - if (! acceptTemplateVecMatBasicType(basicType)) { - expected("scalar type"); - return false; - } - - // COMMA - if (! acceptTokenClass(EHTokComma)) { - expected(","); - return false; - } - - // integer - if (! peekTokenClass(EHTokIntConstant)) { - expected("literal integer"); - return false; - } - - TIntermTyped* vecSize; - if (! acceptLiteral(vecSize)) - return false; - - const int vecSizeI = vecSize->getAsConstantUnion()->getConstArray()[0].getIConst(); - - new(&type) TType(basicType, EvqTemporary, vecSizeI); - - if (vecSizeI == 1) - type.makeVector(); - - if (!acceptTokenClass(EHTokRightAngle)) { - expected("right angle bracket"); - return false; - } - - return true; -} - -// matrix_template_type -// : MATRIX -// | MATRIX LEFT_ANGLE template_type COMMA integer_literal COMMA integer_literal RIGHT_ANGLE -// -bool HlslGrammar::acceptMatrixTemplateType(TType& type) -{ - if (! acceptTokenClass(EHTokMatrix)) - return false; - - if (! acceptTokenClass(EHTokLeftAngle)) { - // in HLSL, 'matrix' alone means float4x4. - new(&type) TType(EbtFloat, EvqTemporary, 0, 4, 4); - return true; - } - - TBasicType basicType; - if (! acceptTemplateVecMatBasicType(basicType)) { - expected("scalar type"); - return false; - } - - // COMMA - if (! acceptTokenClass(EHTokComma)) { - expected(","); - return false; - } - - // integer rows - if (! peekTokenClass(EHTokIntConstant)) { - expected("literal integer"); - return false; - } - - TIntermTyped* rows; - if (! acceptLiteral(rows)) - return false; - - // COMMA - if (! acceptTokenClass(EHTokComma)) { - expected(","); - return false; - } - - // integer cols - if (! peekTokenClass(EHTokIntConstant)) { - expected("literal integer"); - return false; - } - - TIntermTyped* cols; - if (! acceptLiteral(cols)) - return false; - - new(&type) TType(basicType, EvqTemporary, 0, - rows->getAsConstantUnion()->getConstArray()[0].getIConst(), - cols->getAsConstantUnion()->getConstArray()[0].getIConst()); - - if (!acceptTokenClass(EHTokRightAngle)) { - expected("right angle bracket"); - return false; - } - - return true; -} - -// layout_geometry -// : LINESTREAM -// | POINTSTREAM -// | TRIANGLESTREAM -// -bool HlslGrammar::acceptOutputPrimitiveGeometry(TLayoutGeometry& geometry) -{ - // read geometry type - const EHlslTokenClass geometryType = peek(); - - switch (geometryType) { - case EHTokPointStream: geometry = ElgPoints; break; - case EHTokLineStream: geometry = ElgLineStrip; break; - case EHTokTriangleStream: geometry = ElgTriangleStrip; break; - default: - return false; // not a layout geometry - } - - advanceToken(); // consume the layout keyword - return true; -} - -// tessellation_decl_type -// : INPUTPATCH -// | OUTPUTPATCH -// -bool HlslGrammar::acceptTessellationDeclType(TBuiltInVariable& patchType) -{ - // read geometry type - const EHlslTokenClass tessType = peek(); - - switch (tessType) { - case EHTokInputPatch: patchType = EbvInputPatch; break; - case EHTokOutputPatch: patchType = EbvOutputPatch; break; - default: - return false; // not a tessellation decl - } - - advanceToken(); // consume the keyword - return true; -} - -// tessellation_patch_template_type -// : tessellation_decl_type LEFT_ANGLE type comma integer_literal RIGHT_ANGLE -// -bool HlslGrammar::acceptTessellationPatchTemplateType(TType& type) -{ - TBuiltInVariable patchType; - - if (! acceptTessellationDeclType(patchType)) - return false; - - if (! acceptTokenClass(EHTokLeftAngle)) - return false; - - if (! acceptType(type)) { - expected("tessellation patch type"); - return false; - } - - if (! acceptTokenClass(EHTokComma)) - return false; - - // integer size - if (! peekTokenClass(EHTokIntConstant)) { - expected("literal integer"); - return false; - } - - TIntermTyped* size; - if (! acceptLiteral(size)) - return false; - - TArraySizes* arraySizes = new TArraySizes; - arraySizes->addInnerSize(size->getAsConstantUnion()->getConstArray()[0].getIConst()); - type.transferArraySizes(arraySizes); - type.getQualifier().builtIn = patchType; - - if (! acceptTokenClass(EHTokRightAngle)) { - expected("right angle bracket"); - return false; - } - - return true; -} - -// stream_out_template_type -// : output_primitive_geometry_type LEFT_ANGLE type RIGHT_ANGLE -// -bool HlslGrammar::acceptStreamOutTemplateType(TType& type, TLayoutGeometry& geometry) -{ - geometry = ElgNone; - - if (! acceptOutputPrimitiveGeometry(geometry)) - return false; - - if (! acceptTokenClass(EHTokLeftAngle)) - return false; - - if (! acceptType(type)) { - expected("stream output type"); - return false; - } - - type.getQualifier().storage = EvqOut; - type.getQualifier().builtIn = EbvGsOutputStream; - - if (! acceptTokenClass(EHTokRightAngle)) { - expected("right angle bracket"); - return false; - } - - return true; -} - -// annotations -// : LEFT_ANGLE declaration SEMI_COLON ... declaration SEMICOLON RIGHT_ANGLE -// -bool HlslGrammar::acceptAnnotations(TQualifier&) -{ - if (! acceptTokenClass(EHTokLeftAngle)) - return false; - - // note that we are nesting a name space - parseContext.nestAnnotations(); - - // declaration SEMI_COLON ... declaration SEMICOLON RIGHT_ANGLE - do { - // eat any extra SEMI_COLON; don't know if the grammar calls for this or not - while (acceptTokenClass(EHTokSemicolon)) - ; - - if (acceptTokenClass(EHTokRightAngle)) - break; - - // declaration - TIntermNode* node = nullptr; - if (! acceptDeclaration(node)) { - expected("declaration in annotation"); - return false; - } - } while (true); - - parseContext.unnestAnnotations(); - return true; -} - -// subpass input type -// : SUBPASSINPUT -// | SUBPASSINPUT VECTOR LEFT_ANGLE template_type RIGHT_ANGLE -// | SUBPASSINPUTMS -// | SUBPASSINPUTMS VECTOR LEFT_ANGLE template_type RIGHT_ANGLE -bool HlslGrammar::acceptSubpassInputType(TType& type) -{ - // read subpass type - const EHlslTokenClass subpassInputType = peek(); - - bool multisample; - - switch (subpassInputType) { - case EHTokSubpassInput: multisample = false; break; - case EHTokSubpassInputMS: multisample = true; break; - default: - return false; // not a subpass input declaration - } - - advanceToken(); // consume the sampler type keyword - - TType subpassType(EbtFloat, EvqUniform, 4); // default type is float4 - - if (acceptTokenClass(EHTokLeftAngle)) { - if (! acceptType(subpassType)) { - expected("scalar or vector type"); - return false; - } - - const TBasicType basicRetType = subpassType.getBasicType() ; - - switch (basicRetType) { - case EbtFloat: - case EbtUint: - case EbtInt: - case EbtStruct: - break; - default: - unimplemented("basic type in subpass input"); - return false; - } - - if (! acceptTokenClass(EHTokRightAngle)) { - expected("right angle bracket"); - return false; - } - } - - const TBasicType subpassBasicType = subpassType.isStruct() ? (*subpassType.getStruct())[0].type->getBasicType() - : subpassType.getBasicType(); - - TSampler sampler; - sampler.setSubpass(subpassBasicType, multisample); - - // Remember the declared return type. Function returns false on error. - if (!parseContext.setTextureReturnType(sampler, subpassType, token.loc)) - return false; - - type.shallowCopy(TType(sampler, EvqUniform)); - - return true; -} - -// sampler_type for DX9 compatibility -// : SAMPLER -// | SAMPLER1D -// | SAMPLER2D -// | SAMPLER3D -// | SAMPLERCUBE -bool HlslGrammar::acceptSamplerTypeDX9(TType &type) -{ - // read sampler type - const EHlslTokenClass samplerType = peek(); - - TSamplerDim dim = EsdNone; - TType txType(EbtFloat, EvqUniform, 4); // default type is float4 - - bool isShadow = false; - - switch (samplerType) - { - case EHTokSampler: dim = Esd2D; break; - case EHTokSampler1d: dim = Esd1D; break; - case EHTokSampler2d: dim = Esd2D; break; - case EHTokSampler3d: dim = Esd3D; break; - case EHTokSamplerCube: dim = EsdCube; break; - default: - return false; // not a dx9 sampler declaration - } - - advanceToken(); // consume the sampler type keyword - - TArraySizes *arraySizes = nullptr; // TODO: array - - TSampler sampler; - sampler.set(txType.getBasicType(), dim, false, isShadow, false); - - if (!parseContext.setTextureReturnType(sampler, txType, token.loc)) - return false; - - type.shallowCopy(TType(sampler, EvqUniform, arraySizes)); - type.getQualifier().layoutFormat = ElfNone; - - return true; -} - -// sampler_type -// : SAMPLER -// | SAMPLER1D -// | SAMPLER2D -// | SAMPLER3D -// | SAMPLERCUBE -// | SAMPLERSTATE -// | SAMPLERCOMPARISONSTATE -bool HlslGrammar::acceptSamplerType(TType& type) -{ - // read sampler type - const EHlslTokenClass samplerType = peek(); - - // TODO: for DX9 - // TSamplerDim dim = EsdNone; - - bool isShadow = false; - - switch (samplerType) { - case EHTokSampler: break; - case EHTokSampler1d: /*dim = Esd1D*/; break; - case EHTokSampler2d: /*dim = Esd2D*/; break; - case EHTokSampler3d: /*dim = Esd3D*/; break; - case EHTokSamplerCube: /*dim = EsdCube*/; break; - case EHTokSamplerState: break; - case EHTokSamplerComparisonState: isShadow = true; break; - default: - return false; // not a sampler declaration - } - - advanceToken(); // consume the sampler type keyword - - TArraySizes* arraySizes = nullptr; // TODO: array - - TSampler sampler; - sampler.setPureSampler(isShadow); - - type.shallowCopy(TType(sampler, EvqUniform, arraySizes)); - - return true; -} - -// texture_type -// | BUFFER -// | TEXTURE1D -// | TEXTURE1DARRAY -// | TEXTURE2D -// | TEXTURE2DARRAY -// | TEXTURE3D -// | TEXTURECUBE -// | TEXTURECUBEARRAY -// | TEXTURE2DMS -// | TEXTURE2DMSARRAY -// | RWBUFFER -// | RWTEXTURE1D -// | RWTEXTURE1DARRAY -// | RWTEXTURE2D -// | RWTEXTURE2DARRAY -// | RWTEXTURE3D - -bool HlslGrammar::acceptTextureType(TType& type) -{ - const EHlslTokenClass textureType = peek(); - - TSamplerDim dim = EsdNone; - bool array = false; - bool ms = false; - bool image = false; - bool combined = true; - - switch (textureType) { - case EHTokBuffer: dim = EsdBuffer; combined = false; break; - case EHTokTexture1d: dim = Esd1D; break; - case EHTokTexture1darray: dim = Esd1D; array = true; break; - case EHTokTexture2d: dim = Esd2D; break; - case EHTokTexture2darray: dim = Esd2D; array = true; break; - case EHTokTexture3d: dim = Esd3D; break; - case EHTokTextureCube: dim = EsdCube; break; - case EHTokTextureCubearray: dim = EsdCube; array = true; break; - case EHTokTexture2DMS: dim = Esd2D; ms = true; break; - case EHTokTexture2DMSarray: dim = Esd2D; array = true; ms = true; break; - case EHTokRWBuffer: dim = EsdBuffer; image=true; break; - case EHTokRWTexture1d: dim = Esd1D; array=false; image=true; break; - case EHTokRWTexture1darray: dim = Esd1D; array=true; image=true; break; - case EHTokRWTexture2d: dim = Esd2D; array=false; image=true; break; - case EHTokRWTexture2darray: dim = Esd2D; array=true; image=true; break; - case EHTokRWTexture3d: dim = Esd3D; array=false; image=true; break; - default: - return false; // not a texture declaration - } - - advanceToken(); // consume the texture object keyword - - TType txType(EbtFloat, EvqUniform, 4); // default type is float4 - - TIntermTyped* msCount = nullptr; - - // texture type: required for multisample types and RWBuffer/RWTextures! - if (acceptTokenClass(EHTokLeftAngle)) { - if (! acceptType(txType)) { - expected("scalar or vector type"); - return false; - } - - const TBasicType basicRetType = txType.getBasicType() ; - - switch (basicRetType) { - case EbtFloat: - case EbtUint: - case EbtInt: - case EbtStruct: - break; - default: - unimplemented("basic type in texture"); - return false; - } - - // Buffers can handle small mats if they fit in 4 components - if (dim == EsdBuffer && txType.isMatrix()) { - if ((txType.getMatrixCols() * txType.getMatrixRows()) > 4) { - expected("components < 4 in matrix buffer type"); - return false; - } - - // TODO: except we don't handle it yet... - unimplemented("matrix type in buffer"); - return false; - } - - if (!txType.isScalar() && !txType.isVector() && !txType.isStruct()) { - expected("scalar, vector, or struct type"); - return false; - } - - if (ms && acceptTokenClass(EHTokComma)) { - // read sample count for multisample types, if given - if (! peekTokenClass(EHTokIntConstant)) { - expected("multisample count"); - return false; - } - - if (! acceptLiteral(msCount)) // should never fail, since we just found an integer - return false; - } - - if (! acceptTokenClass(EHTokRightAngle)) { - expected("right angle bracket"); - return false; - } - } else if (ms) { - expected("texture type for multisample"); - return false; - } else if (image) { - expected("type for RWTexture/RWBuffer"); - return false; - } - - TArraySizes* arraySizes = nullptr; - const bool shadow = false; // declared on the sampler - - TSampler sampler; - TLayoutFormat format = ElfNone; - - // Buffer, RWBuffer and RWTexture (images) require a TLayoutFormat. We handle only a limit set. - if (image || dim == EsdBuffer) - format = parseContext.getLayoutFromTxType(token.loc, txType); - - const TBasicType txBasicType = txType.isStruct() ? (*txType.getStruct())[0].type->getBasicType() - : txType.getBasicType(); - - // Non-image Buffers are combined - if (dim == EsdBuffer && !image) { - sampler.set(txType.getBasicType(), dim, array); - } else { - // DX10 textures are separated. TODO: DX9. - if (image) { - sampler.setImage(txBasicType, dim, array, shadow, ms); - } else { - sampler.setTexture(txBasicType, dim, array, shadow, ms); - } - } - - // Remember the declared return type. Function returns false on error. - if (!parseContext.setTextureReturnType(sampler, txType, token.loc)) - return false; - - // Force uncombined, if necessary - if (!combined) - sampler.combined = false; - - type.shallowCopy(TType(sampler, EvqUniform, arraySizes)); - type.getQualifier().layoutFormat = format; - - return true; -} - -// If token is for a type, update 'type' with the type information, -// and return true and advance. -// Otherwise, return false, and don't advance -bool HlslGrammar::acceptType(TType& type) -{ - TIntermNode* nodeList = nullptr; - return acceptType(type, nodeList); -} -bool HlslGrammar::acceptType(TType& type, TIntermNode*& nodeList) -{ - // Basic types for min* types, use native halfs if the option allows them. - bool enable16BitTypes = parseContext.hlslEnable16BitTypes(); - - const TBasicType min16float_bt = enable16BitTypes ? EbtFloat16 : EbtFloat; - const TBasicType min10float_bt = enable16BitTypes ? EbtFloat16 : EbtFloat; - const TBasicType half_bt = enable16BitTypes ? EbtFloat16 : EbtFloat; - const TBasicType min16int_bt = enable16BitTypes ? EbtInt16 : EbtInt; - const TBasicType min12int_bt = enable16BitTypes ? EbtInt16 : EbtInt; - const TBasicType min16uint_bt = enable16BitTypes ? EbtUint16 : EbtUint; - - // Some types might have turned into identifiers. Take the hit for checking - // when this has happened. - if (typeIdentifiers) { - const char* identifierString = getTypeString(peek()); - if (identifierString != nullptr) { - TString name = identifierString; - // if it's an identifier, it's not a type - if (parseContext.symbolTable.find(name) != nullptr) - return false; - } - } - - bool isUnorm = false; - bool isSnorm = false; - - // Accept snorm and unorm. Presently, this is ignored, save for an error check below. - switch (peek()) { - case EHTokUnorm: - isUnorm = true; - advanceToken(); // eat the token - break; - case EHTokSNorm: - isSnorm = true; - advanceToken(); // eat the token - break; - default: - break; - } - - switch (peek()) { - case EHTokVector: - return acceptVectorTemplateType(type); - break; - - case EHTokMatrix: - return acceptMatrixTemplateType(type); - break; - - case EHTokPointStream: // fall through - case EHTokLineStream: // ... - case EHTokTriangleStream: // ... - { - TLayoutGeometry geometry; - if (! acceptStreamOutTemplateType(type, geometry)) - return false; - - if (! parseContext.handleOutputGeometry(token.loc, geometry)) - return false; - - return true; - } - - case EHTokInputPatch: // fall through - case EHTokOutputPatch: // ... - { - if (! acceptTessellationPatchTemplateType(type)) - return false; - - return true; - } - - case EHTokSampler: // fall through - case EHTokSampler1d: // ... - case EHTokSampler2d: // ... - case EHTokSampler3d: // ... - case EHTokSamplerCube: // ... - if (parseContext.hlslDX9Compatible()) - return acceptSamplerTypeDX9(type); - else - return acceptSamplerType(type); - break; - - case EHTokSamplerState: // fall through - case EHTokSamplerComparisonState: // ... - return acceptSamplerType(type); - break; - - case EHTokSubpassInput: // fall through - case EHTokSubpassInputMS: // ... - return acceptSubpassInputType(type); - break; - - case EHTokBuffer: // fall through - case EHTokTexture1d: // ... - case EHTokTexture1darray: // ... - case EHTokTexture2d: // ... - case EHTokTexture2darray: // ... - case EHTokTexture3d: // ... - case EHTokTextureCube: // ... - case EHTokTextureCubearray: // ... - case EHTokTexture2DMS: // ... - case EHTokTexture2DMSarray: // ... - case EHTokRWTexture1d: // ... - case EHTokRWTexture1darray: // ... - case EHTokRWTexture2d: // ... - case EHTokRWTexture2darray: // ... - case EHTokRWTexture3d: // ... - case EHTokRWBuffer: // ... - return acceptTextureType(type); - break; - - case EHTokAppendStructuredBuffer: - case EHTokByteAddressBuffer: - case EHTokConsumeStructuredBuffer: - case EHTokRWByteAddressBuffer: - case EHTokRWStructuredBuffer: - case EHTokStructuredBuffer: - return acceptStructBufferType(type); - break; - - case EHTokTextureBuffer: - return acceptTextureBufferType(type); - break; - - case EHTokConstantBuffer: - return acceptConstantBufferType(type); - - case EHTokClass: - case EHTokStruct: - case EHTokCBuffer: - case EHTokTBuffer: - return acceptStruct(type, nodeList); - - case EHTokIdentifier: - // An identifier could be for a user-defined type. - // Note we cache the symbol table lookup, to save for a later rule - // when this is not a type. - if (parseContext.lookupUserType(*token.string, type) != nullptr) { - advanceToken(); - return true; - } else - return false; - - case EHTokVoid: - new(&type) TType(EbtVoid); - break; - - case EHTokString: - new(&type) TType(EbtString); - break; - - case EHTokFloat: - new(&type) TType(EbtFloat); - break; - case EHTokFloat1: - new(&type) TType(EbtFloat); - type.makeVector(); - break; - case EHTokFloat2: - new(&type) TType(EbtFloat, EvqTemporary, 2); - break; - case EHTokFloat3: - new(&type) TType(EbtFloat, EvqTemporary, 3); - break; - case EHTokFloat4: - new(&type) TType(EbtFloat, EvqTemporary, 4); - break; - - case EHTokDouble: - new(&type) TType(EbtDouble); - break; - case EHTokDouble1: - new(&type) TType(EbtDouble); - type.makeVector(); - break; - case EHTokDouble2: - new(&type) TType(EbtDouble, EvqTemporary, 2); - break; - case EHTokDouble3: - new(&type) TType(EbtDouble, EvqTemporary, 3); - break; - case EHTokDouble4: - new(&type) TType(EbtDouble, EvqTemporary, 4); - break; - - case EHTokInt: - case EHTokDword: - new(&type) TType(EbtInt); - break; - case EHTokInt1: - new(&type) TType(EbtInt); - type.makeVector(); - break; - case EHTokInt2: - new(&type) TType(EbtInt, EvqTemporary, 2); - break; - case EHTokInt3: - new(&type) TType(EbtInt, EvqTemporary, 3); - break; - case EHTokInt4: - new(&type) TType(EbtInt, EvqTemporary, 4); - break; - - case EHTokUint: - new(&type) TType(EbtUint); - break; - case EHTokUint1: - new(&type) TType(EbtUint); - type.makeVector(); - break; - case EHTokUint2: - new(&type) TType(EbtUint, EvqTemporary, 2); - break; - case EHTokUint3: - new(&type) TType(EbtUint, EvqTemporary, 3); - break; - case EHTokUint4: - new(&type) TType(EbtUint, EvqTemporary, 4); - break; - - case EHTokUint64: - new(&type) TType(EbtUint64); - break; - - case EHTokBool: - new(&type) TType(EbtBool); - break; - case EHTokBool1: - new(&type) TType(EbtBool); - type.makeVector(); - break; - case EHTokBool2: - new(&type) TType(EbtBool, EvqTemporary, 2); - break; - case EHTokBool3: - new(&type) TType(EbtBool, EvqTemporary, 3); - break; - case EHTokBool4: - new(&type) TType(EbtBool, EvqTemporary, 4); - break; - - case EHTokHalf: - new(&type) TType(half_bt, EvqTemporary); - break; - case EHTokHalf1: - new(&type) TType(half_bt, EvqTemporary); - type.makeVector(); - break; - case EHTokHalf2: - new(&type) TType(half_bt, EvqTemporary, 2); - break; - case EHTokHalf3: - new(&type) TType(half_bt, EvqTemporary, 3); - break; - case EHTokHalf4: - new(&type) TType(half_bt, EvqTemporary, 4); - break; - - case EHTokMin16float: - new(&type) TType(min16float_bt, EvqTemporary, EpqMedium); - break; - case EHTokMin16float1: - new(&type) TType(min16float_bt, EvqTemporary, EpqMedium); - type.makeVector(); - break; - case EHTokMin16float2: - new(&type) TType(min16float_bt, EvqTemporary, EpqMedium, 2); - break; - case EHTokMin16float3: - new(&type) TType(min16float_bt, EvqTemporary, EpqMedium, 3); - break; - case EHTokMin16float4: - new(&type) TType(min16float_bt, EvqTemporary, EpqMedium, 4); - break; - - case EHTokMin10float: - new(&type) TType(min10float_bt, EvqTemporary, EpqMedium); - break; - case EHTokMin10float1: - new(&type) TType(min10float_bt, EvqTemporary, EpqMedium); - type.makeVector(); - break; - case EHTokMin10float2: - new(&type) TType(min10float_bt, EvqTemporary, EpqMedium, 2); - break; - case EHTokMin10float3: - new(&type) TType(min10float_bt, EvqTemporary, EpqMedium, 3); - break; - case EHTokMin10float4: - new(&type) TType(min10float_bt, EvqTemporary, EpqMedium, 4); - break; - - case EHTokMin16int: - new(&type) TType(min16int_bt, EvqTemporary, EpqMedium); - break; - case EHTokMin16int1: - new(&type) TType(min16int_bt, EvqTemporary, EpqMedium); - type.makeVector(); - break; - case EHTokMin16int2: - new(&type) TType(min16int_bt, EvqTemporary, EpqMedium, 2); - break; - case EHTokMin16int3: - new(&type) TType(min16int_bt, EvqTemporary, EpqMedium, 3); - break; - case EHTokMin16int4: - new(&type) TType(min16int_bt, EvqTemporary, EpqMedium, 4); - break; - - case EHTokMin12int: - new(&type) TType(min12int_bt, EvqTemporary, EpqMedium); - break; - case EHTokMin12int1: - new(&type) TType(min12int_bt, EvqTemporary, EpqMedium); - type.makeVector(); - break; - case EHTokMin12int2: - new(&type) TType(min12int_bt, EvqTemporary, EpqMedium, 2); - break; - case EHTokMin12int3: - new(&type) TType(min12int_bt, EvqTemporary, EpqMedium, 3); - break; - case EHTokMin12int4: - new(&type) TType(min12int_bt, EvqTemporary, EpqMedium, 4); - break; - - case EHTokMin16uint: - new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium); - break; - case EHTokMin16uint1: - new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium); - type.makeVector(); - break; - case EHTokMin16uint2: - new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium, 2); - break; - case EHTokMin16uint3: - new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium, 3); - break; - case EHTokMin16uint4: - new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium, 4); - break; - - case EHTokInt1x1: - new(&type) TType(EbtInt, EvqTemporary, 0, 1, 1); - break; - case EHTokInt1x2: - new(&type) TType(EbtInt, EvqTemporary, 0, 1, 2); - break; - case EHTokInt1x3: - new(&type) TType(EbtInt, EvqTemporary, 0, 1, 3); - break; - case EHTokInt1x4: - new(&type) TType(EbtInt, EvqTemporary, 0, 1, 4); - break; - case EHTokInt2x1: - new(&type) TType(EbtInt, EvqTemporary, 0, 2, 1); - break; - case EHTokInt2x2: - new(&type) TType(EbtInt, EvqTemporary, 0, 2, 2); - break; - case EHTokInt2x3: - new(&type) TType(EbtInt, EvqTemporary, 0, 2, 3); - break; - case EHTokInt2x4: - new(&type) TType(EbtInt, EvqTemporary, 0, 2, 4); - break; - case EHTokInt3x1: - new(&type) TType(EbtInt, EvqTemporary, 0, 3, 1); - break; - case EHTokInt3x2: - new(&type) TType(EbtInt, EvqTemporary, 0, 3, 2); - break; - case EHTokInt3x3: - new(&type) TType(EbtInt, EvqTemporary, 0, 3, 3); - break; - case EHTokInt3x4: - new(&type) TType(EbtInt, EvqTemporary, 0, 3, 4); - break; - case EHTokInt4x1: - new(&type) TType(EbtInt, EvqTemporary, 0, 4, 1); - break; - case EHTokInt4x2: - new(&type) TType(EbtInt, EvqTemporary, 0, 4, 2); - break; - case EHTokInt4x3: - new(&type) TType(EbtInt, EvqTemporary, 0, 4, 3); - break; - case EHTokInt4x4: - new(&type) TType(EbtInt, EvqTemporary, 0, 4, 4); - break; - - case EHTokUint1x1: - new(&type) TType(EbtUint, EvqTemporary, 0, 1, 1); - break; - case EHTokUint1x2: - new(&type) TType(EbtUint, EvqTemporary, 0, 1, 2); - break; - case EHTokUint1x3: - new(&type) TType(EbtUint, EvqTemporary, 0, 1, 3); - break; - case EHTokUint1x4: - new(&type) TType(EbtUint, EvqTemporary, 0, 1, 4); - break; - case EHTokUint2x1: - new(&type) TType(EbtUint, EvqTemporary, 0, 2, 1); - break; - case EHTokUint2x2: - new(&type) TType(EbtUint, EvqTemporary, 0, 2, 2); - break; - case EHTokUint2x3: - new(&type) TType(EbtUint, EvqTemporary, 0, 2, 3); - break; - case EHTokUint2x4: - new(&type) TType(EbtUint, EvqTemporary, 0, 2, 4); - break; - case EHTokUint3x1: - new(&type) TType(EbtUint, EvqTemporary, 0, 3, 1); - break; - case EHTokUint3x2: - new(&type) TType(EbtUint, EvqTemporary, 0, 3, 2); - break; - case EHTokUint3x3: - new(&type) TType(EbtUint, EvqTemporary, 0, 3, 3); - break; - case EHTokUint3x4: - new(&type) TType(EbtUint, EvqTemporary, 0, 3, 4); - break; - case EHTokUint4x1: - new(&type) TType(EbtUint, EvqTemporary, 0, 4, 1); - break; - case EHTokUint4x2: - new(&type) TType(EbtUint, EvqTemporary, 0, 4, 2); - break; - case EHTokUint4x3: - new(&type) TType(EbtUint, EvqTemporary, 0, 4, 3); - break; - case EHTokUint4x4: - new(&type) TType(EbtUint, EvqTemporary, 0, 4, 4); - break; - - case EHTokBool1x1: - new(&type) TType(EbtBool, EvqTemporary, 0, 1, 1); - break; - case EHTokBool1x2: - new(&type) TType(EbtBool, EvqTemporary, 0, 1, 2); - break; - case EHTokBool1x3: - new(&type) TType(EbtBool, EvqTemporary, 0, 1, 3); - break; - case EHTokBool1x4: - new(&type) TType(EbtBool, EvqTemporary, 0, 1, 4); - break; - case EHTokBool2x1: - new(&type) TType(EbtBool, EvqTemporary, 0, 2, 1); - break; - case EHTokBool2x2: - new(&type) TType(EbtBool, EvqTemporary, 0, 2, 2); - break; - case EHTokBool2x3: - new(&type) TType(EbtBool, EvqTemporary, 0, 2, 3); - break; - case EHTokBool2x4: - new(&type) TType(EbtBool, EvqTemporary, 0, 2, 4); - break; - case EHTokBool3x1: - new(&type) TType(EbtBool, EvqTemporary, 0, 3, 1); - break; - case EHTokBool3x2: - new(&type) TType(EbtBool, EvqTemporary, 0, 3, 2); - break; - case EHTokBool3x3: - new(&type) TType(EbtBool, EvqTemporary, 0, 3, 3); - break; - case EHTokBool3x4: - new(&type) TType(EbtBool, EvqTemporary, 0, 3, 4); - break; - case EHTokBool4x1: - new(&type) TType(EbtBool, EvqTemporary, 0, 4, 1); - break; - case EHTokBool4x2: - new(&type) TType(EbtBool, EvqTemporary, 0, 4, 2); - break; - case EHTokBool4x3: - new(&type) TType(EbtBool, EvqTemporary, 0, 4, 3); - break; - case EHTokBool4x4: - new(&type) TType(EbtBool, EvqTemporary, 0, 4, 4); - break; - - case EHTokFloat1x1: - new(&type) TType(EbtFloat, EvqTemporary, 0, 1, 1); - break; - case EHTokFloat1x2: - new(&type) TType(EbtFloat, EvqTemporary, 0, 1, 2); - break; - case EHTokFloat1x3: - new(&type) TType(EbtFloat, EvqTemporary, 0, 1, 3); - break; - case EHTokFloat1x4: - new(&type) TType(EbtFloat, EvqTemporary, 0, 1, 4); - break; - case EHTokFloat2x1: - new(&type) TType(EbtFloat, EvqTemporary, 0, 2, 1); - break; - case EHTokFloat2x2: - new(&type) TType(EbtFloat, EvqTemporary, 0, 2, 2); - break; - case EHTokFloat2x3: - new(&type) TType(EbtFloat, EvqTemporary, 0, 2, 3); - break; - case EHTokFloat2x4: - new(&type) TType(EbtFloat, EvqTemporary, 0, 2, 4); - break; - case EHTokFloat3x1: - new(&type) TType(EbtFloat, EvqTemporary, 0, 3, 1); - break; - case EHTokFloat3x2: - new(&type) TType(EbtFloat, EvqTemporary, 0, 3, 2); - break; - case EHTokFloat3x3: - new(&type) TType(EbtFloat, EvqTemporary, 0, 3, 3); - break; - case EHTokFloat3x4: - new(&type) TType(EbtFloat, EvqTemporary, 0, 3, 4); - break; - case EHTokFloat4x1: - new(&type) TType(EbtFloat, EvqTemporary, 0, 4, 1); - break; - case EHTokFloat4x2: - new(&type) TType(EbtFloat, EvqTemporary, 0, 4, 2); - break; - case EHTokFloat4x3: - new(&type) TType(EbtFloat, EvqTemporary, 0, 4, 3); - break; - case EHTokFloat4x4: - new(&type) TType(EbtFloat, EvqTemporary, 0, 4, 4); - break; - - case EHTokHalf1x1: - new(&type) TType(half_bt, EvqTemporary, 0, 1, 1); - break; - case EHTokHalf1x2: - new(&type) TType(half_bt, EvqTemporary, 0, 1, 2); - break; - case EHTokHalf1x3: - new(&type) TType(half_bt, EvqTemporary, 0, 1, 3); - break; - case EHTokHalf1x4: - new(&type) TType(half_bt, EvqTemporary, 0, 1, 4); - break; - case EHTokHalf2x1: - new(&type) TType(half_bt, EvqTemporary, 0, 2, 1); - break; - case EHTokHalf2x2: - new(&type) TType(half_bt, EvqTemporary, 0, 2, 2); - break; - case EHTokHalf2x3: - new(&type) TType(half_bt, EvqTemporary, 0, 2, 3); - break; - case EHTokHalf2x4: - new(&type) TType(half_bt, EvqTemporary, 0, 2, 4); - break; - case EHTokHalf3x1: - new(&type) TType(half_bt, EvqTemporary, 0, 3, 1); - break; - case EHTokHalf3x2: - new(&type) TType(half_bt, EvqTemporary, 0, 3, 2); - break; - case EHTokHalf3x3: - new(&type) TType(half_bt, EvqTemporary, 0, 3, 3); - break; - case EHTokHalf3x4: - new(&type) TType(half_bt, EvqTemporary, 0, 3, 4); - break; - case EHTokHalf4x1: - new(&type) TType(half_bt, EvqTemporary, 0, 4, 1); - break; - case EHTokHalf4x2: - new(&type) TType(half_bt, EvqTemporary, 0, 4, 2); - break; - case EHTokHalf4x3: - new(&type) TType(half_bt, EvqTemporary, 0, 4, 3); - break; - case EHTokHalf4x4: - new(&type) TType(half_bt, EvqTemporary, 0, 4, 4); - break; - - case EHTokDouble1x1: - new(&type) TType(EbtDouble, EvqTemporary, 0, 1, 1); - break; - case EHTokDouble1x2: - new(&type) TType(EbtDouble, EvqTemporary, 0, 1, 2); - break; - case EHTokDouble1x3: - new(&type) TType(EbtDouble, EvqTemporary, 0, 1, 3); - break; - case EHTokDouble1x4: - new(&type) TType(EbtDouble, EvqTemporary, 0, 1, 4); - break; - case EHTokDouble2x1: - new(&type) TType(EbtDouble, EvqTemporary, 0, 2, 1); - break; - case EHTokDouble2x2: - new(&type) TType(EbtDouble, EvqTemporary, 0, 2, 2); - break; - case EHTokDouble2x3: - new(&type) TType(EbtDouble, EvqTemporary, 0, 2, 3); - break; - case EHTokDouble2x4: - new(&type) TType(EbtDouble, EvqTemporary, 0, 2, 4); - break; - case EHTokDouble3x1: - new(&type) TType(EbtDouble, EvqTemporary, 0, 3, 1); - break; - case EHTokDouble3x2: - new(&type) TType(EbtDouble, EvqTemporary, 0, 3, 2); - break; - case EHTokDouble3x3: - new(&type) TType(EbtDouble, EvqTemporary, 0, 3, 3); - break; - case EHTokDouble3x4: - new(&type) TType(EbtDouble, EvqTemporary, 0, 3, 4); - break; - case EHTokDouble4x1: - new(&type) TType(EbtDouble, EvqTemporary, 0, 4, 1); - break; - case EHTokDouble4x2: - new(&type) TType(EbtDouble, EvqTemporary, 0, 4, 2); - break; - case EHTokDouble4x3: - new(&type) TType(EbtDouble, EvqTemporary, 0, 4, 3); - break; - case EHTokDouble4x4: - new(&type) TType(EbtDouble, EvqTemporary, 0, 4, 4); - break; - - default: - return false; - } - - advanceToken(); - - if ((isUnorm || isSnorm) && !type.isFloatingDomain()) { - parseContext.error(token.loc, "unorm and snorm only valid in floating point domain", "", ""); - return false; - } - - return true; -} - -// struct -// : struct_type IDENTIFIER post_decls LEFT_BRACE struct_declaration_list RIGHT_BRACE -// | struct_type post_decls LEFT_BRACE struct_declaration_list RIGHT_BRACE -// | struct_type IDENTIFIER // use of previously declared struct type -// -// struct_type -// : STRUCT -// | CLASS -// | CBUFFER -// | TBUFFER -// -bool HlslGrammar::acceptStruct(TType& type, TIntermNode*& nodeList) -{ - // This storage qualifier will tell us whether it's an AST - // block type or just a generic structure type. - TStorageQualifier storageQualifier = EvqTemporary; - bool readonly = false; - - if (acceptTokenClass(EHTokCBuffer)) { - // CBUFFER - storageQualifier = EvqUniform; - } else if (acceptTokenClass(EHTokTBuffer)) { - // TBUFFER - storageQualifier = EvqBuffer; - readonly = true; - } else if (! acceptTokenClass(EHTokClass) && ! acceptTokenClass(EHTokStruct)) { - // Neither CLASS nor STRUCT - return false; - } - - // Now known to be one of CBUFFER, TBUFFER, CLASS, or STRUCT - - - // IDENTIFIER. It might also be a keyword which can double as an identifier. - // For example: 'cbuffer ConstantBuffer' or 'struct ConstantBuffer' is legal. - // 'cbuffer int' is also legal, and 'struct int' appears rejected only because - // it attempts to redefine the 'int' type. - const char* idString = getTypeString(peek()); - TString structName = ""; - if (peekTokenClass(EHTokIdentifier) || idString != nullptr) { - if (idString != nullptr) - structName = *idString; - else - structName = *token.string; - advanceToken(); - } - - // post_decls - TQualifier postDeclQualifier; - postDeclQualifier.clear(); - bool postDeclsFound = acceptPostDecls(postDeclQualifier); - - // LEFT_BRACE, or - // struct_type IDENTIFIER - if (! acceptTokenClass(EHTokLeftBrace)) { - if (structName.size() > 0 && !postDeclsFound && parseContext.lookupUserType(structName, type) != nullptr) { - // struct_type IDENTIFIER - return true; - } else { - expected("{"); - return false; - } - } - - - // struct_declaration_list - TTypeList* typeList; - // Save each member function so they can be processed after we have a fully formed 'this'. - TVector functionDeclarators; - - parseContext.pushNamespace(structName); - bool acceptedList = acceptStructDeclarationList(typeList, nodeList, functionDeclarators); - parseContext.popNamespace(); - - if (! acceptedList) { - expected("struct member declarations"); - return false; - } - - // RIGHT_BRACE - if (! acceptTokenClass(EHTokRightBrace)) { - expected("}"); - return false; - } - - // create the user-defined type - if (storageQualifier == EvqTemporary) - new(&type) TType(typeList, structName); - else { - postDeclQualifier.storage = storageQualifier; - postDeclQualifier.readonly = readonly; - new(&type) TType(typeList, structName, postDeclQualifier); // sets EbtBlock - } - - parseContext.declareStruct(token.loc, structName, type); - - // For member functions: now that we know the type of 'this', go back and - // - add their implicit argument with 'this' (not to the mangling, just the argument list) - // - parse the functions, their tokens were saved for deferred parsing (now) - for (int b = 0; b < (int)functionDeclarators.size(); ++b) { - // update signature - if (functionDeclarators[b].function->hasImplicitThis()) - functionDeclarators[b].function->addThisParameter(type, intermediate.implicitThisName); - } - - // All member functions get parsed inside the class/struct namespace and with the - // class/struct members in a symbol-table level. - parseContext.pushNamespace(structName); - parseContext.pushThisScope(type, functionDeclarators); - bool deferredSuccess = true; - for (int b = 0; b < (int)functionDeclarators.size() && deferredSuccess; ++b) { - // parse body - pushTokenStream(functionDeclarators[b].body); - if (! acceptFunctionBody(functionDeclarators[b], nodeList)) - deferredSuccess = false; - popTokenStream(); - } - parseContext.popThisScope(); - parseContext.popNamespace(); - - return deferredSuccess; -} - -// constantbuffer -// : CONSTANTBUFFER LEFT_ANGLE type RIGHT_ANGLE -bool HlslGrammar::acceptConstantBufferType(TType& type) -{ - if (! acceptTokenClass(EHTokConstantBuffer)) - return false; - - if (! acceptTokenClass(EHTokLeftAngle)) { - expected("left angle bracket"); - return false; - } - - TType templateType; - if (! acceptType(templateType)) { - expected("type"); - return false; - } - - if (! acceptTokenClass(EHTokRightAngle)) { - expected("right angle bracket"); - return false; - } - - TQualifier postDeclQualifier; - postDeclQualifier.clear(); - postDeclQualifier.storage = EvqUniform; - - if (templateType.isStruct()) { - // Make a block from the type parsed as the template argument - TTypeList* typeList = templateType.getWritableStruct(); - new(&type) TType(typeList, "", postDeclQualifier); // sets EbtBlock - - type.getQualifier().storage = EvqUniform; - - return true; - } else { - parseContext.error(token.loc, "non-structure type in ConstantBuffer", "", ""); - return false; - } -} - -// texture_buffer -// : TEXTUREBUFFER LEFT_ANGLE type RIGHT_ANGLE -bool HlslGrammar::acceptTextureBufferType(TType& type) -{ - if (! acceptTokenClass(EHTokTextureBuffer)) - return false; - - if (! acceptTokenClass(EHTokLeftAngle)) { - expected("left angle bracket"); - return false; - } - - TType templateType; - if (! acceptType(templateType)) { - expected("type"); - return false; - } - - if (! acceptTokenClass(EHTokRightAngle)) { - expected("right angle bracket"); - return false; - } - - templateType.getQualifier().storage = EvqBuffer; - templateType.getQualifier().readonly = true; - - TType blockType(templateType.getWritableStruct(), "", templateType.getQualifier()); - - blockType.getQualifier().storage = EvqBuffer; - blockType.getQualifier().readonly = true; - - type.shallowCopy(blockType); - - return true; -} - - -// struct_buffer -// : APPENDSTRUCTUREDBUFFER -// | BYTEADDRESSBUFFER -// | CONSUMESTRUCTUREDBUFFER -// | RWBYTEADDRESSBUFFER -// | RWSTRUCTUREDBUFFER -// | STRUCTUREDBUFFER -bool HlslGrammar::acceptStructBufferType(TType& type) -{ - const EHlslTokenClass structBuffType = peek(); - - // TODO: globallycoherent - bool hasTemplateType = true; - bool readonly = false; - - TStorageQualifier storage = EvqBuffer; - TBuiltInVariable builtinType = EbvNone; - - switch (structBuffType) { - case EHTokAppendStructuredBuffer: - builtinType = EbvAppendConsume; - break; - case EHTokByteAddressBuffer: - hasTemplateType = false; - readonly = true; - builtinType = EbvByteAddressBuffer; - break; - case EHTokConsumeStructuredBuffer: - builtinType = EbvAppendConsume; - break; - case EHTokRWByteAddressBuffer: - hasTemplateType = false; - builtinType = EbvRWByteAddressBuffer; - break; - case EHTokRWStructuredBuffer: - builtinType = EbvRWStructuredBuffer; - break; - case EHTokStructuredBuffer: - builtinType = EbvStructuredBuffer; - readonly = true; - break; - default: - return false; // not a structure buffer type - } - - advanceToken(); // consume the structure keyword - - // type on which this StructedBuffer is templatized. E.g, StructedBuffer ==> MyStruct - TType* templateType = new TType; - - if (hasTemplateType) { - if (! acceptTokenClass(EHTokLeftAngle)) { - expected("left angle bracket"); - return false; - } - - if (! acceptType(*templateType)) { - expected("type"); - return false; - } - if (! acceptTokenClass(EHTokRightAngle)) { - expected("right angle bracket"); - return false; - } - } else { - // byte address buffers have no explicit type. - TType uintType(EbtUint, storage); - templateType->shallowCopy(uintType); - } - - // Create an unsized array out of that type. - // TODO: does this work if it's already an array type? - TArraySizes* unsizedArray = new TArraySizes; - unsizedArray->addInnerSize(UnsizedArraySize); - templateType->transferArraySizes(unsizedArray); - templateType->getQualifier().storage = storage; - - // field name is canonical for all structbuffers - templateType->setFieldName("@data"); - - TTypeList* blockStruct = new TTypeList; - TTypeLoc member = { templateType, token.loc }; - blockStruct->push_back(member); - - // This is the type of the buffer block (SSBO) - TType blockType(blockStruct, "", templateType->getQualifier()); - - blockType.getQualifier().storage = storage; - blockType.getQualifier().readonly = readonly; - blockType.getQualifier().builtIn = builtinType; - - // We may have created an equivalent type before, in which case we should use its - // deep structure. - parseContext.shareStructBufferType(blockType); - - type.shallowCopy(blockType); - - return true; -} - -// struct_declaration_list -// : struct_declaration SEMI_COLON struct_declaration SEMI_COLON ... -// -// struct_declaration -// : attributes fully_specified_type struct_declarator COMMA struct_declarator ... -// | attributes fully_specified_type IDENTIFIER function_parameters post_decls compound_statement // member-function definition -// -// struct_declarator -// : IDENTIFIER post_decls -// | IDENTIFIER array_specifier post_decls -// | IDENTIFIER function_parameters post_decls // member-function prototype -// -bool HlslGrammar::acceptStructDeclarationList(TTypeList*& typeList, TIntermNode*& nodeList, - TVector& declarators) -{ - typeList = new TTypeList(); - HlslToken idToken; - - do { - // success on seeing the RIGHT_BRACE coming up - if (peekTokenClass(EHTokRightBrace)) - break; - - // struct_declaration - - // attributes - TAttributes attributes; - acceptAttributes(attributes); - - bool declarator_list = false; - - // fully_specified_type - TType memberType; - if (! acceptFullySpecifiedType(memberType, nodeList, attributes)) { - expected("member type"); - return false; - } - - // merge in the attributes - parseContext.transferTypeAttributes(token.loc, attributes, memberType); - - // struct_declarator COMMA struct_declarator ... - bool functionDefinitionAccepted = false; - do { - if (! acceptIdentifier(idToken)) { - expected("member name"); - return false; - } - - if (peekTokenClass(EHTokLeftParen)) { - // function_parameters - if (!declarator_list) { - declarators.resize(declarators.size() + 1); - // request a token stream for deferred processing - functionDefinitionAccepted = acceptMemberFunctionDefinition(nodeList, memberType, *idToken.string, - declarators.back()); - if (functionDefinitionAccepted) - break; - } - expected("member-function definition"); - return false; - } else { - // add it to the list of members - TTypeLoc member = { new TType(EbtVoid), token.loc }; - member.type->shallowCopy(memberType); - member.type->setFieldName(*idToken.string); - typeList->push_back(member); - - // array_specifier - TArraySizes* arraySizes = nullptr; - acceptArraySpecifier(arraySizes); - if (arraySizes) - typeList->back().type->transferArraySizes(arraySizes); - - acceptPostDecls(member.type->getQualifier()); - - // EQUAL assignment_expression - if (acceptTokenClass(EHTokAssign)) { - parseContext.warn(idToken.loc, "struct-member initializers ignored", "typedef", ""); - TIntermTyped* expressionNode = nullptr; - if (! acceptAssignmentExpression(expressionNode)) { - expected("initializer"); - return false; - } - } - } - // success on seeing the SEMICOLON coming up - if (peekTokenClass(EHTokSemicolon)) - break; - - // COMMA - if (acceptTokenClass(EHTokComma)) - declarator_list = true; - else { - expected(","); - return false; - } - - } while (true); - - // SEMI_COLON - if (! functionDefinitionAccepted && ! acceptTokenClass(EHTokSemicolon)) { - expected(";"); - return false; - } - - } while (true); - - return true; -} - -// member_function_definition -// | function_parameters post_decls compound_statement -// -// Expects type to have EvqGlobal for a static member and -// EvqTemporary for non-static member. -bool HlslGrammar::acceptMemberFunctionDefinition(TIntermNode*& nodeList, const TType& type, TString& memberName, - TFunctionDeclarator& declarator) -{ - bool accepted = false; - - TString* functionName = &memberName; - parseContext.getFullNamespaceName(functionName); - declarator.function = new TFunction(functionName, type); - if (type.getQualifier().storage == EvqTemporary) - declarator.function->setImplicitThis(); - else - declarator.function->setIllegalImplicitThis(); - - // function_parameters - if (acceptFunctionParameters(*declarator.function)) { - // post_decls - acceptPostDecls(declarator.function->getWritableType().getQualifier()); - - // compound_statement (function body definition) - if (peekTokenClass(EHTokLeftBrace)) { - declarator.loc = token.loc; - declarator.body = new TVector; - accepted = acceptFunctionDefinition(declarator, nodeList, declarator.body); - } - } else - expected("function parameter list"); - - return accepted; -} - -// function_parameters -// : LEFT_PAREN parameter_declaration COMMA parameter_declaration ... RIGHT_PAREN -// | LEFT_PAREN VOID RIGHT_PAREN -// -bool HlslGrammar::acceptFunctionParameters(TFunction& function) -{ - parseContext.beginParameterParsing(function); - - // LEFT_PAREN - if (! acceptTokenClass(EHTokLeftParen)) - return false; - - // VOID RIGHT_PAREN - if (! acceptTokenClass(EHTokVoid)) { - do { - // parameter_declaration - if (! acceptParameterDeclaration(function)) - break; - - // COMMA - if (! acceptTokenClass(EHTokComma)) - break; - } while (true); - } - - // RIGHT_PAREN - if (! acceptTokenClass(EHTokRightParen)) { - expected(")"); - return false; - } - - return true; -} - -// default_parameter_declaration -// : EQUAL conditional_expression -// : EQUAL initializer -bool HlslGrammar::acceptDefaultParameterDeclaration(const TType& type, TIntermTyped*& node) -{ - node = nullptr; - - // Valid not to have a default_parameter_declaration - if (!acceptTokenClass(EHTokAssign)) - return true; - - if (!acceptConditionalExpression(node)) { - if (!acceptInitializer(node)) - return false; - - // For initializer lists, we have to const-fold into a constructor for the type, so build - // that. - TFunction* constructor = parseContext.makeConstructorCall(token.loc, type); - if (constructor == nullptr) // cannot construct - return false; - - TIntermTyped* arguments = nullptr; - for (int i = 0; i < int(node->getAsAggregate()->getSequence().size()); i++) - parseContext.handleFunctionArgument(constructor, arguments, node->getAsAggregate()->getSequence()[i]->getAsTyped()); - - node = parseContext.handleFunctionCall(token.loc, constructor, node); - } - - if (node == nullptr) - return false; - - // If this is simply a constant, we can use it directly. - if (node->getAsConstantUnion()) - return true; - - // Otherwise, it has to be const-foldable. - TIntermTyped* origNode = node; - - node = intermediate.fold(node->getAsAggregate()); - - if (node != nullptr && origNode != node) - return true; - - parseContext.error(token.loc, "invalid default parameter value", "", ""); - - return false; -} - -// parameter_declaration -// : attributes attributed_declaration -// -// attributed_declaration -// : fully_specified_type post_decls [ = default_parameter_declaration ] -// | fully_specified_type identifier array_specifier post_decls [ = default_parameter_declaration ] -// -bool HlslGrammar::acceptParameterDeclaration(TFunction& function) -{ - // attributes - TAttributes attributes; - acceptAttributes(attributes); - - // fully_specified_type - TType* type = new TType; - if (! acceptFullySpecifiedType(*type, attributes)) - return false; - - // merge in the attributes - parseContext.transferTypeAttributes(token.loc, attributes, *type); - - // identifier - HlslToken idToken; - acceptIdentifier(idToken); - - // array_specifier - TArraySizes* arraySizes = nullptr; - acceptArraySpecifier(arraySizes); - if (arraySizes) { - if (arraySizes->hasUnsized()) { - parseContext.error(token.loc, "function parameter requires array size", "[]", ""); - return false; - } - - type->transferArraySizes(arraySizes); - } - - // post_decls - acceptPostDecls(type->getQualifier()); - - TIntermTyped* defaultValue; - if (!acceptDefaultParameterDeclaration(*type, defaultValue)) - return false; - - parseContext.paramFix(*type); - - // If any prior parameters have default values, all the parameters after that must as well. - if (defaultValue == nullptr && function.getDefaultParamCount() > 0) { - parseContext.error(idToken.loc, "invalid parameter after default value parameters", idToken.string->c_str(), ""); - return false; - } - - TParameter param = { idToken.string, type, defaultValue }; - function.addParameter(param); - - return true; -} - -// Do the work to create the function definition in addition to -// parsing the body (compound_statement). -// -// If 'deferredTokens' are passed in, just get the token stream, -// don't process. -// -bool HlslGrammar::acceptFunctionDefinition(TFunctionDeclarator& declarator, TIntermNode*& nodeList, - TVector* deferredTokens) -{ - parseContext.handleFunctionDeclarator(declarator.loc, *declarator.function, false /* not prototype */); - - if (deferredTokens) - return captureBlockTokens(*deferredTokens); - else - return acceptFunctionBody(declarator, nodeList); -} - -bool HlslGrammar::acceptFunctionBody(TFunctionDeclarator& declarator, TIntermNode*& nodeList) -{ - // we might get back an entry-point - TIntermNode* entryPointNode = nullptr; - - // This does a pushScope() - TIntermNode* functionNode = parseContext.handleFunctionDefinition(declarator.loc, *declarator.function, - declarator.attributes, entryPointNode); - - // compound_statement - TIntermNode* functionBody = nullptr; - if (! acceptCompoundStatement(functionBody)) - return false; - - // this does a popScope() - parseContext.handleFunctionBody(declarator.loc, *declarator.function, functionBody, functionNode); - - // Hook up the 1 or 2 function definitions. - nodeList = intermediate.growAggregate(nodeList, functionNode); - nodeList = intermediate.growAggregate(nodeList, entryPointNode); - - return true; -} - -// Accept an expression with parenthesis around it, where -// the parenthesis ARE NOT expression parenthesis, but the -// syntactically required ones like in "if ( expression )". -// -// Also accepts a declaration expression; "if (int a = expression)". -// -// Note this one is not set up to be speculative; as it gives -// errors if not found. -// -bool HlslGrammar::acceptParenExpression(TIntermTyped*& expression) -{ - expression = nullptr; - - // LEFT_PAREN - if (! acceptTokenClass(EHTokLeftParen)) - expected("("); - - bool decl = false; - TIntermNode* declNode = nullptr; - decl = acceptControlDeclaration(declNode); - if (decl) { - if (declNode == nullptr || declNode->getAsTyped() == nullptr) { - expected("initialized declaration"); - return false; - } else - expression = declNode->getAsTyped(); - } else { - // no declaration - if (! acceptExpression(expression)) { - expected("expression"); - return false; - } - } - - // RIGHT_PAREN - if (! acceptTokenClass(EHTokRightParen)) - expected(")"); - - return true; -} - -// The top-level full expression recognizer. -// -// expression -// : assignment_expression COMMA assignment_expression COMMA assignment_expression ... -// -bool HlslGrammar::acceptExpression(TIntermTyped*& node) -{ - node = nullptr; - - // assignment_expression - if (! acceptAssignmentExpression(node)) - return false; - - if (! peekTokenClass(EHTokComma)) - return true; - - do { - // ... COMMA - TSourceLoc loc = token.loc; - advanceToken(); - - // ... assignment_expression - TIntermTyped* rightNode = nullptr; - if (! acceptAssignmentExpression(rightNode)) { - expected("assignment expression"); - return false; - } - - node = intermediate.addComma(node, rightNode, loc); - - if (! peekTokenClass(EHTokComma)) - return true; - } while (true); -} - -// initializer -// : LEFT_BRACE RIGHT_BRACE -// | LEFT_BRACE initializer_list RIGHT_BRACE -// -// initializer_list -// : assignment_expression COMMA assignment_expression COMMA ... -// -bool HlslGrammar::acceptInitializer(TIntermTyped*& node) -{ - // LEFT_BRACE - if (! acceptTokenClass(EHTokLeftBrace)) - return false; - - // RIGHT_BRACE - TSourceLoc loc = token.loc; - if (acceptTokenClass(EHTokRightBrace)) { - // a zero-length initializer list - node = intermediate.makeAggregate(loc); - return true; - } - - // initializer_list - node = nullptr; - do { - // assignment_expression - TIntermTyped* expr; - if (! acceptAssignmentExpression(expr)) { - expected("assignment expression in initializer list"); - return false; - } - - const bool firstNode = (node == nullptr); - - node = intermediate.growAggregate(node, expr, loc); - - // If every sub-node in the list has qualifier EvqConst, the returned node becomes - // EvqConst. Otherwise, it becomes EvqTemporary. That doesn't happen with e.g. - // EvqIn or EvqPosition, since the collection isn't EvqPosition if all the members are. - if (firstNode && expr->getQualifier().storage == EvqConst) - node->getQualifier().storage = EvqConst; - else if (expr->getQualifier().storage != EvqConst) - node->getQualifier().storage = EvqTemporary; - - // COMMA - if (acceptTokenClass(EHTokComma)) { - if (acceptTokenClass(EHTokRightBrace)) // allow trailing comma - return true; - continue; - } - - // RIGHT_BRACE - if (acceptTokenClass(EHTokRightBrace)) - return true; - - expected(", or }"); - return false; - } while (true); -} - -// Accept an assignment expression, where assignment operations -// associate right-to-left. That is, it is implicit, for example -// -// a op (b op (c op d)) -// -// assigment_expression -// : initializer -// | conditional_expression -// | conditional_expression assign_op conditional_expression assign_op conditional_expression ... -// -bool HlslGrammar::acceptAssignmentExpression(TIntermTyped*& node) -{ - // initializer - if (peekTokenClass(EHTokLeftBrace)) { - if (acceptInitializer(node)) - return true; - - expected("initializer"); - return false; - } - - // conditional_expression - if (! acceptConditionalExpression(node)) - return false; - - // assignment operation? - TOperator assignOp = HlslOpMap::assignment(peek()); - if (assignOp == EOpNull) - return true; - - // assign_op - TSourceLoc loc = token.loc; - advanceToken(); - - // conditional_expression assign_op conditional_expression ... - // Done by recursing this function, which automatically - // gets the right-to-left associativity. - TIntermTyped* rightNode = nullptr; - if (! acceptAssignmentExpression(rightNode)) { - expected("assignment expression"); - return false; - } - - node = parseContext.handleAssign(loc, assignOp, node, rightNode); - node = parseContext.handleLvalue(loc, "assign", node); - - if (node == nullptr) { - parseContext.error(loc, "could not create assignment", "", ""); - return false; - } - - if (! peekTokenClass(EHTokComma)) - return true; - - return true; -} - -// Accept a conditional expression, which associates right-to-left, -// accomplished by the "true" expression calling down to lower -// precedence levels than this level. -// -// conditional_expression -// : binary_expression -// | binary_expression QUESTION expression COLON assignment_expression -// -bool HlslGrammar::acceptConditionalExpression(TIntermTyped*& node) -{ - // binary_expression - if (! acceptBinaryExpression(node, PlLogicalOr)) - return false; - - if (! acceptTokenClass(EHTokQuestion)) - return true; - - node = parseContext.convertConditionalExpression(token.loc, node, false); - if (node == nullptr) - return false; - - ++parseContext.controlFlowNestingLevel; // this only needs to work right if no errors - - TIntermTyped* trueNode = nullptr; - if (! acceptExpression(trueNode)) { - expected("expression after ?"); - return false; - } - TSourceLoc loc = token.loc; - - if (! acceptTokenClass(EHTokColon)) { - expected(":"); - return false; - } - - TIntermTyped* falseNode = nullptr; - if (! acceptAssignmentExpression(falseNode)) { - expected("expression after :"); - return false; - } - - --parseContext.controlFlowNestingLevel; - - node = intermediate.addSelection(node, trueNode, falseNode, loc); - - return true; -} - -// Accept a binary expression, for binary operations that -// associate left-to-right. This is, it is implicit, for example -// -// ((a op b) op c) op d -// -// binary_expression -// : expression op expression op expression ... -// -// where 'expression' is the next higher level in precedence. -// -bool HlslGrammar::acceptBinaryExpression(TIntermTyped*& node, PrecedenceLevel precedenceLevel) -{ - if (precedenceLevel > PlMul) - return acceptUnaryExpression(node); - - // assignment_expression - if (! acceptBinaryExpression(node, (PrecedenceLevel)(precedenceLevel + 1))) - return false; - - do { - TOperator op = HlslOpMap::binary(peek()); - PrecedenceLevel tokenLevel = HlslOpMap::precedenceLevel(op); - if (tokenLevel < precedenceLevel) - return true; - - // ... op - TSourceLoc loc = token.loc; - advanceToken(); - - // ... expression - TIntermTyped* rightNode = nullptr; - if (! acceptBinaryExpression(rightNode, (PrecedenceLevel)(precedenceLevel + 1))) { - expected("expression"); - return false; - } - - node = intermediate.addBinaryMath(op, node, rightNode, loc); - if (node == nullptr) { - parseContext.error(loc, "Could not perform requested binary operation", "", ""); - return false; - } - } while (true); -} - -// unary_expression -// : (type) unary_expression -// | + unary_expression -// | - unary_expression -// | ! unary_expression -// | ~ unary_expression -// | ++ unary_expression -// | -- unary_expression -// | postfix_expression -// -bool HlslGrammar::acceptUnaryExpression(TIntermTyped*& node) -{ - // (type) unary_expression - // Have to look two steps ahead, because this could be, e.g., a - // postfix_expression instead, since that also starts with at "(". - if (acceptTokenClass(EHTokLeftParen)) { - TType castType; - if (acceptType(castType)) { - // recognize any array_specifier as part of the type - TArraySizes* arraySizes = nullptr; - acceptArraySpecifier(arraySizes); - if (arraySizes != nullptr) - castType.transferArraySizes(arraySizes); - TSourceLoc loc = token.loc; - if (acceptTokenClass(EHTokRightParen)) { - // We've matched "(type)" now, get the expression to cast - if (! acceptUnaryExpression(node)) - return false; - - // Hook it up like a constructor - TFunction* constructorFunction = parseContext.makeConstructorCall(loc, castType); - if (constructorFunction == nullptr) { - expected("type that can be constructed"); - return false; - } - TIntermTyped* arguments = nullptr; - parseContext.handleFunctionArgument(constructorFunction, arguments, node); - node = parseContext.handleFunctionCall(loc, constructorFunction, arguments); - - return node != nullptr; - } else { - // This could be a parenthesized constructor, ala (int(3)), and we just accepted - // the '(int' part. We must back up twice. - recedeToken(); - recedeToken(); - - // Note, there are no array constructors like - // (float[2](...)) - if (arraySizes != nullptr) - parseContext.error(loc, "parenthesized array constructor not allowed", "([]())", "", ""); - } - } else { - // This isn't a type cast, but it still started "(", so if it is a - // unary expression, it can only be a postfix_expression, so try that. - // Back it up first. - recedeToken(); - return acceptPostfixExpression(node); - } - } - - // peek for "op unary_expression" - TOperator unaryOp = HlslOpMap::preUnary(peek()); - - // postfix_expression (if no unary operator) - if (unaryOp == EOpNull) - return acceptPostfixExpression(node); - - // op unary_expression - TSourceLoc loc = token.loc; - advanceToken(); - if (! acceptUnaryExpression(node)) - return false; - - // + is a no-op - if (unaryOp == EOpAdd) - return true; - - node = intermediate.addUnaryMath(unaryOp, node, loc); - - // These unary ops require lvalues - if (unaryOp == EOpPreIncrement || unaryOp == EOpPreDecrement) - node = parseContext.handleLvalue(loc, "unary operator", node); - - return node != nullptr; -} - -// postfix_expression -// : LEFT_PAREN expression RIGHT_PAREN -// | literal -// | constructor -// | IDENTIFIER [ COLONCOLON IDENTIFIER [ COLONCOLON IDENTIFIER ... ] ] -// | function_call -// | postfix_expression LEFT_BRACKET integer_expression RIGHT_BRACKET -// | postfix_expression DOT IDENTIFIER -// | postfix_expression DOT IDENTIFIER arguments -// | postfix_expression arguments -// | postfix_expression INC_OP -// | postfix_expression DEC_OP -// -bool HlslGrammar::acceptPostfixExpression(TIntermTyped*& node) -{ - // Not implemented as self-recursive: - // The logical "right recursion" is done with a loop at the end - - // idToken will pick up either a variable or a function name in a function call - HlslToken idToken; - - // Find something before the postfix operations, as they can't operate - // on nothing. So, no "return true", they fall through, only "return false". - if (acceptTokenClass(EHTokLeftParen)) { - // LEFT_PAREN expression RIGHT_PAREN - if (! acceptExpression(node)) { - expected("expression"); - return false; - } - if (! acceptTokenClass(EHTokRightParen)) { - expected(")"); - return false; - } - } else if (acceptLiteral(node)) { - // literal (nothing else to do yet) - } else if (acceptConstructor(node)) { - // constructor (nothing else to do yet) - } else if (acceptIdentifier(idToken)) { - // user-type, namespace name, variable, or function name - TString* fullName = idToken.string; - while (acceptTokenClass(EHTokColonColon)) { - // user-type or namespace name - fullName = NewPoolTString(fullName->c_str()); - fullName->append(parseContext.scopeMangler); - if (acceptIdentifier(idToken)) - fullName->append(*idToken.string); - else { - expected("identifier after ::"); - return false; - } - } - if (! peekTokenClass(EHTokLeftParen)) { - node = parseContext.handleVariable(idToken.loc, fullName); - if (node == nullptr) - return false; - } else if (acceptFunctionCall(idToken.loc, *fullName, node, nullptr)) { - // function_call (nothing else to do yet) - } else { - expected("function call arguments"); - return false; - } - } else { - // nothing found, can't post operate - return false; - } - - // Something was found, chain as many postfix operations as exist. - do { - TSourceLoc loc = token.loc; - TOperator postOp = HlslOpMap::postUnary(peek()); - - // Consume only a valid post-unary operator, otherwise we are done. - switch (postOp) { - case EOpIndexDirectStruct: - case EOpIndexIndirect: - case EOpPostIncrement: - case EOpPostDecrement: - case EOpScoping: - advanceToken(); - break; - default: - return true; - } - - // We have a valid post-unary operator, process it. - switch (postOp) { - case EOpScoping: - case EOpIndexDirectStruct: - { - // DOT IDENTIFIER - // includes swizzles, member variables, and member functions - HlslToken field; - if (! acceptIdentifier(field)) { - expected("swizzle or member"); - return false; - } - - if (peekTokenClass(EHTokLeftParen)) { - // member function - TIntermTyped* thisNode = node; - - // arguments - if (! acceptFunctionCall(field.loc, *field.string, node, thisNode)) { - expected("function parameters"); - return false; - } - } else - node = parseContext.handleDotDereference(field.loc, node, *field.string); - - break; - } - case EOpIndexIndirect: - { - // LEFT_BRACKET integer_expression RIGHT_BRACKET - TIntermTyped* indexNode = nullptr; - if (! acceptExpression(indexNode) || - ! peekTokenClass(EHTokRightBracket)) { - expected("expression followed by ']'"); - return false; - } - advanceToken(); - node = parseContext.handleBracketDereference(indexNode->getLoc(), node, indexNode); - if (node == nullptr) - return false; - break; - } - case EOpPostIncrement: - // INC_OP - // fall through - case EOpPostDecrement: - // DEC_OP - node = intermediate.addUnaryMath(postOp, node, loc); - node = parseContext.handleLvalue(loc, "unary operator", node); - break; - default: - assert(0); - break; - } - } while (true); -} - -// constructor -// : type argument_list -// -bool HlslGrammar::acceptConstructor(TIntermTyped*& node) -{ - // type - TType type; - if (acceptType(type)) { - TFunction* constructorFunction = parseContext.makeConstructorCall(token.loc, type); - if (constructorFunction == nullptr) - return false; - - // arguments - TIntermTyped* arguments = nullptr; - if (! acceptArguments(constructorFunction, arguments)) { - // It's possible this is a type keyword used as an identifier. Put the token back - // for later use. - recedeToken(); - return false; - } - - if (arguments == nullptr) { - expected("one or more arguments"); - return false; - } - - // hook it up - node = parseContext.handleFunctionCall(token.loc, constructorFunction, arguments); - - return node != nullptr; - } - - return false; -} - -// The function_call identifier was already recognized, and passed in as idToken. -// -// function_call -// : [idToken] arguments -// -bool HlslGrammar::acceptFunctionCall(const TSourceLoc& loc, TString& name, TIntermTyped*& node, TIntermTyped* baseObject) -{ - // name - TString* functionName = nullptr; - if (baseObject == nullptr) { - functionName = &name; - } else if (parseContext.isBuiltInMethod(loc, baseObject, name)) { - // Built-in methods are not in the symbol table as methods, but as global functions - // taking an explicit 'this' as the first argument. - functionName = NewPoolTString(BUILTIN_PREFIX); - functionName->append(name); - } else { - if (! baseObject->getType().isStruct()) { - expected("structure"); - return false; - } - functionName = NewPoolTString(""); - functionName->append(baseObject->getType().getTypeName()); - parseContext.addScopeMangler(*functionName); - functionName->append(name); - } - - // function - TFunction* function = new TFunction(functionName, TType(EbtVoid)); - - // arguments - TIntermTyped* arguments = nullptr; - if (baseObject != nullptr) { - // Non-static member functions have an implicit first argument of the base object. - parseContext.handleFunctionArgument(function, arguments, baseObject); - } - if (! acceptArguments(function, arguments)) - return false; - - // call - node = parseContext.handleFunctionCall(loc, function, arguments); - - return node != nullptr; -} - -// arguments -// : LEFT_PAREN expression COMMA expression COMMA ... RIGHT_PAREN -// -// The arguments are pushed onto the 'function' argument list and -// onto the 'arguments' aggregate. -// -bool HlslGrammar::acceptArguments(TFunction* function, TIntermTyped*& arguments) -{ - // LEFT_PAREN - if (! acceptTokenClass(EHTokLeftParen)) - return false; - - // RIGHT_PAREN - if (acceptTokenClass(EHTokRightParen)) - return true; - - // must now be at least one expression... - do { - // expression - TIntermTyped* arg; - if (! acceptAssignmentExpression(arg)) - return false; - - // hook it up - parseContext.handleFunctionArgument(function, arguments, arg); - - // COMMA - if (! acceptTokenClass(EHTokComma)) - break; - } while (true); - - // RIGHT_PAREN - if (! acceptTokenClass(EHTokRightParen)) { - expected(")"); - return false; - } - - return true; -} - -bool HlslGrammar::acceptLiteral(TIntermTyped*& node) -{ - switch (token.tokenClass) { - case EHTokIntConstant: - node = intermediate.addConstantUnion(token.i, token.loc, true); - break; - case EHTokUintConstant: - node = intermediate.addConstantUnion(token.u, token.loc, true); - break; - case EHTokFloat16Constant: - node = intermediate.addConstantUnion(token.d, EbtFloat16, token.loc, true); - break; - case EHTokFloatConstant: - node = intermediate.addConstantUnion(token.d, EbtFloat, token.loc, true); - break; - case EHTokDoubleConstant: - node = intermediate.addConstantUnion(token.d, EbtDouble, token.loc, true); - break; - case EHTokBoolConstant: - node = intermediate.addConstantUnion(token.b, token.loc, true); - break; - case EHTokStringConstant: - node = intermediate.addConstantUnion(token.string, token.loc, true); - break; - - default: - return false; - } - - advanceToken(); - - return true; -} - -// simple_statement -// : SEMICOLON -// | declaration_statement -// | expression SEMICOLON -// -bool HlslGrammar::acceptSimpleStatement(TIntermNode*& statement) -{ - // SEMICOLON - if (acceptTokenClass(EHTokSemicolon)) - return true; - - // declaration - if (acceptDeclaration(statement)) - return true; - - // expression - TIntermTyped* node; - if (acceptExpression(node)) - statement = node; - else - return false; - - // SEMICOLON (following an expression) - if (acceptTokenClass(EHTokSemicolon)) - return true; - else { - expected(";"); - return false; - } -} - -// compound_statement -// : LEFT_CURLY statement statement ... RIGHT_CURLY -// -bool HlslGrammar::acceptCompoundStatement(TIntermNode*& retStatement) -{ - TIntermAggregate* compoundStatement = nullptr; - - // LEFT_CURLY - if (! acceptTokenClass(EHTokLeftBrace)) - return false; - - // statement statement ... - TIntermNode* statement = nullptr; - while (acceptStatement(statement)) { - TIntermBranch* branch = statement ? statement->getAsBranchNode() : nullptr; - if (branch != nullptr && (branch->getFlowOp() == EOpCase || - branch->getFlowOp() == EOpDefault)) { - // hook up individual subsequences within a switch statement - parseContext.wrapupSwitchSubsequence(compoundStatement, statement); - compoundStatement = nullptr; - } else { - // hook it up to the growing compound statement - compoundStatement = intermediate.growAggregate(compoundStatement, statement); - } - } - if (compoundStatement) - compoundStatement->setOperator(EOpSequence); - - retStatement = compoundStatement; - - // RIGHT_CURLY - return acceptTokenClass(EHTokRightBrace); -} - -bool HlslGrammar::acceptScopedStatement(TIntermNode*& statement) -{ - parseContext.pushScope(); - bool result = acceptStatement(statement); - parseContext.popScope(); - - return result; -} - -bool HlslGrammar::acceptScopedCompoundStatement(TIntermNode*& statement) -{ - parseContext.pushScope(); - bool result = acceptCompoundStatement(statement); - parseContext.popScope(); - - return result; -} - -// statement -// : attributes attributed_statement -// -// attributed_statement -// : compound_statement -// | simple_statement -// | selection_statement -// | switch_statement -// | case_label -// | default_label -// | iteration_statement -// | jump_statement -// -bool HlslGrammar::acceptStatement(TIntermNode*& statement) -{ - statement = nullptr; - - // attributes - TAttributes attributes; - acceptAttributes(attributes); - - // attributed_statement - switch (peek()) { - case EHTokLeftBrace: - return acceptScopedCompoundStatement(statement); - - case EHTokIf: - return acceptSelectionStatement(statement, attributes); - - case EHTokSwitch: - return acceptSwitchStatement(statement, attributes); - - case EHTokFor: - case EHTokDo: - case EHTokWhile: - return acceptIterationStatement(statement, attributes); - - case EHTokContinue: - case EHTokBreak: - case EHTokDiscard: - case EHTokReturn: - return acceptJumpStatement(statement); - - case EHTokCase: - return acceptCaseLabel(statement); - case EHTokDefault: - return acceptDefaultLabel(statement); - - case EHTokRightBrace: - // Performance: not strictly necessary, but stops a bunch of hunting early, - // and is how sequences of statements end. - return false; - - default: - return acceptSimpleStatement(statement); - } - - return true; -} - -// attributes -// : [zero or more:] bracketed-attribute -// -// bracketed-attribute: -// : LEFT_BRACKET scoped-attribute RIGHT_BRACKET -// : LEFT_BRACKET LEFT_BRACKET scoped-attribute RIGHT_BRACKET RIGHT_BRACKET -// -// scoped-attribute: -// : attribute -// | namespace COLON COLON attribute -// -// attribute: -// : UNROLL -// | UNROLL LEFT_PAREN literal RIGHT_PAREN -// | FASTOPT -// | ALLOW_UAV_CONDITION -// | BRANCH -// | FLATTEN -// | FORCECASE -// | CALL -// | DOMAIN -// | EARLYDEPTHSTENCIL -// | INSTANCE -// | MAXTESSFACTOR -// | OUTPUTCONTROLPOINTS -// | OUTPUTTOPOLOGY -// | PARTITIONING -// | PATCHCONSTANTFUNC -// | NUMTHREADS LEFT_PAREN x_size, y_size,z z_size RIGHT_PAREN -// -void HlslGrammar::acceptAttributes(TAttributes& attributes) -{ - // For now, accept the [ XXX(X) ] syntax, but drop all but - // numthreads, which is used to set the CS local size. - // TODO: subset to correct set? Pass on? - do { - HlslToken attributeToken; - - // LEFT_BRACKET? - if (! acceptTokenClass(EHTokLeftBracket)) - return; - // another LEFT_BRACKET? - bool doubleBrackets = false; - if (acceptTokenClass(EHTokLeftBracket)) - doubleBrackets = true; - - // attribute? (could be namespace; will adjust later) - if (!acceptIdentifier(attributeToken)) { - if (!peekTokenClass(EHTokRightBracket)) { - expected("namespace or attribute identifier"); - advanceToken(); - } - } - - TString nameSpace; - if (acceptTokenClass(EHTokColonColon)) { - // namespace COLON COLON - nameSpace = *attributeToken.string; - // attribute - if (!acceptIdentifier(attributeToken)) { - expected("attribute identifier"); - return; - } - } - - TIntermAggregate* expressions = nullptr; - - // (x, ...) - if (acceptTokenClass(EHTokLeftParen)) { - expressions = new TIntermAggregate; - - TIntermTyped* node; - bool expectingExpression = false; - - while (acceptAssignmentExpression(node)) { - expectingExpression = false; - expressions->getSequence().push_back(node); - if (acceptTokenClass(EHTokComma)) - expectingExpression = true; - } - - // 'expressions' is an aggregate with the expressions in it - if (! acceptTokenClass(EHTokRightParen)) - expected(")"); - - // Error for partial or missing expression - if (expectingExpression || expressions->getSequence().empty()) - expected("expression"); - } - - // RIGHT_BRACKET - if (!acceptTokenClass(EHTokRightBracket)) { - expected("]"); - return; - } - // another RIGHT_BRACKET? - if (doubleBrackets && !acceptTokenClass(EHTokRightBracket)) { - expected("]]"); - return; - } - - // Add any values we found into the attribute map. - if (attributeToken.string != nullptr) { - TAttributeType attributeType = parseContext.attributeFromName(nameSpace, *attributeToken.string); - if (attributeType == EatNone) - parseContext.warn(attributeToken.loc, "unrecognized attribute", attributeToken.string->c_str(), ""); - else { - TAttributeArgs attributeArgs = { attributeType, expressions }; - attributes.push_back(attributeArgs); - } - } - } while (true); -} - -// selection_statement -// : IF LEFT_PAREN expression RIGHT_PAREN statement -// : IF LEFT_PAREN expression RIGHT_PAREN statement ELSE statement -// -bool HlslGrammar::acceptSelectionStatement(TIntermNode*& statement, const TAttributes& attributes) -{ - TSourceLoc loc = token.loc; - - // IF - if (! acceptTokenClass(EHTokIf)) - return false; - - // so that something declared in the condition is scoped to the lifetimes - // of the then-else statements - parseContext.pushScope(); - - // LEFT_PAREN expression RIGHT_PAREN - TIntermTyped* condition; - if (! acceptParenExpression(condition)) - return false; - condition = parseContext.convertConditionalExpression(loc, condition); - if (condition == nullptr) - return false; - - // create the child statements - TIntermNodePair thenElse = { nullptr, nullptr }; - - ++parseContext.controlFlowNestingLevel; // this only needs to work right if no errors - - // then statement - if (! acceptScopedStatement(thenElse.node1)) { - expected("then statement"); - return false; - } - - // ELSE - if (acceptTokenClass(EHTokElse)) { - // else statement - if (! acceptScopedStatement(thenElse.node2)) { - expected("else statement"); - return false; - } - } - - // Put the pieces together - statement = intermediate.addSelection(condition, thenElse, loc); - parseContext.handleSelectionAttributes(loc, statement->getAsSelectionNode(), attributes); - - parseContext.popScope(); - --parseContext.controlFlowNestingLevel; - - return true; -} - -// switch_statement -// : SWITCH LEFT_PAREN expression RIGHT_PAREN compound_statement -// -bool HlslGrammar::acceptSwitchStatement(TIntermNode*& statement, const TAttributes& attributes) -{ - // SWITCH - TSourceLoc loc = token.loc; - - if (! acceptTokenClass(EHTokSwitch)) - return false; - - // LEFT_PAREN expression RIGHT_PAREN - parseContext.pushScope(); - TIntermTyped* switchExpression; - if (! acceptParenExpression(switchExpression)) { - parseContext.popScope(); - return false; - } - - // compound_statement - parseContext.pushSwitchSequence(new TIntermSequence); - - ++parseContext.controlFlowNestingLevel; - bool statementOkay = acceptCompoundStatement(statement); - --parseContext.controlFlowNestingLevel; - - if (statementOkay) - statement = parseContext.addSwitch(loc, switchExpression, statement ? statement->getAsAggregate() : nullptr, - attributes); - - parseContext.popSwitchSequence(); - parseContext.popScope(); - - return statementOkay; -} - -// iteration_statement -// : WHILE LEFT_PAREN condition RIGHT_PAREN statement -// | DO LEFT_BRACE statement RIGHT_BRACE WHILE LEFT_PAREN expression RIGHT_PAREN SEMICOLON -// | FOR LEFT_PAREN for_init_statement for_rest_statement RIGHT_PAREN statement -// -// Non-speculative, only call if it needs to be found; WHILE or DO or FOR already seen. -bool HlslGrammar::acceptIterationStatement(TIntermNode*& statement, const TAttributes& attributes) -{ - TSourceLoc loc = token.loc; - TIntermTyped* condition = nullptr; - - EHlslTokenClass loop = peek(); - assert(loop == EHTokDo || loop == EHTokFor || loop == EHTokWhile); - - // WHILE or DO or FOR - advanceToken(); - - TIntermLoop* loopNode = nullptr; - switch (loop) { - case EHTokWhile: - // so that something declared in the condition is scoped to the lifetime - // of the while sub-statement - parseContext.pushScope(); // this only needs to work right if no errors - parseContext.nestLooping(); - ++parseContext.controlFlowNestingLevel; - - // LEFT_PAREN condition RIGHT_PAREN - if (! acceptParenExpression(condition)) - return false; - condition = parseContext.convertConditionalExpression(loc, condition); - if (condition == nullptr) - return false; - - // statement - if (! acceptScopedStatement(statement)) { - expected("while sub-statement"); - return false; - } - - parseContext.unnestLooping(); - parseContext.popScope(); - --parseContext.controlFlowNestingLevel; - - loopNode = intermediate.addLoop(statement, condition, nullptr, true, loc); - statement = loopNode; - break; - - case EHTokDo: - parseContext.nestLooping(); // this only needs to work right if no errors - ++parseContext.controlFlowNestingLevel; - - // statement - if (! acceptScopedStatement(statement)) { - expected("do sub-statement"); - return false; - } - - // WHILE - if (! acceptTokenClass(EHTokWhile)) { - expected("while"); - return false; - } - - // LEFT_PAREN condition RIGHT_PAREN - if (! acceptParenExpression(condition)) - return false; - condition = parseContext.convertConditionalExpression(loc, condition); - if (condition == nullptr) - return false; - - if (! acceptTokenClass(EHTokSemicolon)) - expected(";"); - - parseContext.unnestLooping(); - --parseContext.controlFlowNestingLevel; - - loopNode = intermediate.addLoop(statement, condition, 0, false, loc); - statement = loopNode; - break; - - case EHTokFor: - { - // LEFT_PAREN - if (! acceptTokenClass(EHTokLeftParen)) - expected("("); - - // so that something declared in the condition is scoped to the lifetime - // of the for sub-statement - parseContext.pushScope(); - - // initializer - TIntermNode* initNode = nullptr; - if (! acceptSimpleStatement(initNode)) - expected("for-loop initializer statement"); - - parseContext.nestLooping(); // this only needs to work right if no errors - ++parseContext.controlFlowNestingLevel; - - // condition SEMI_COLON - acceptExpression(condition); - if (! acceptTokenClass(EHTokSemicolon)) - expected(";"); - if (condition != nullptr) { - condition = parseContext.convertConditionalExpression(loc, condition); - if (condition == nullptr) - return false; - } - - // iterator SEMI_COLON - TIntermTyped* iterator = nullptr; - acceptExpression(iterator); - if (! acceptTokenClass(EHTokRightParen)) - expected(")"); - - // statement - if (! acceptScopedStatement(statement)) { - expected("for sub-statement"); - return false; - } - - statement = intermediate.addForLoop(statement, initNode, condition, iterator, true, loc, loopNode); - - parseContext.popScope(); - parseContext.unnestLooping(); - --parseContext.controlFlowNestingLevel; - - break; - } - - default: - return false; - } - - parseContext.handleLoopAttributes(loc, loopNode, attributes); - return true; -} - -// jump_statement -// : CONTINUE SEMICOLON -// | BREAK SEMICOLON -// | DISCARD SEMICOLON -// | RETURN SEMICOLON -// | RETURN expression SEMICOLON -// -bool HlslGrammar::acceptJumpStatement(TIntermNode*& statement) -{ - EHlslTokenClass jump = peek(); - switch (jump) { - case EHTokContinue: - case EHTokBreak: - case EHTokDiscard: - case EHTokReturn: - advanceToken(); - break; - default: - // not something we handle in this function - return false; - } - - switch (jump) { - case EHTokContinue: - statement = intermediate.addBranch(EOpContinue, token.loc); - if (parseContext.loopNestingLevel == 0) { - expected("loop"); - return false; - } - break; - case EHTokBreak: - statement = intermediate.addBranch(EOpBreak, token.loc); - if (parseContext.loopNestingLevel == 0 && parseContext.switchSequenceStack.size() == 0) { - expected("loop or switch"); - return false; - } - break; - case EHTokDiscard: - statement = intermediate.addBranch(EOpKill, token.loc); - break; - - case EHTokReturn: - { - // expression - TIntermTyped* node; - if (acceptExpression(node)) { - // hook it up - statement = parseContext.handleReturnValue(token.loc, node); - } else - statement = intermediate.addBranch(EOpReturn, token.loc); - break; - } - - default: - assert(0); - return false; - } - - // SEMICOLON - if (! acceptTokenClass(EHTokSemicolon)) - expected(";"); - - return true; -} - -// case_label -// : CASE expression COLON -// -bool HlslGrammar::acceptCaseLabel(TIntermNode*& statement) -{ - TSourceLoc loc = token.loc; - if (! acceptTokenClass(EHTokCase)) - return false; - - TIntermTyped* expression; - if (! acceptExpression(expression)) { - expected("case expression"); - return false; - } - - if (! acceptTokenClass(EHTokColon)) { - expected(":"); - return false; - } - - statement = parseContext.intermediate.addBranch(EOpCase, expression, loc); - - return true; -} - -// default_label -// : DEFAULT COLON -// -bool HlslGrammar::acceptDefaultLabel(TIntermNode*& statement) -{ - TSourceLoc loc = token.loc; - if (! acceptTokenClass(EHTokDefault)) - return false; - - if (! acceptTokenClass(EHTokColon)) { - expected(":"); - return false; - } - - statement = parseContext.intermediate.addBranch(EOpDefault, loc); - - return true; -} - -// array_specifier -// : LEFT_BRACKET integer_expression RGHT_BRACKET ... // optional -// : LEFT_BRACKET RGHT_BRACKET // optional -// -void HlslGrammar::acceptArraySpecifier(TArraySizes*& arraySizes) -{ - arraySizes = nullptr; - - // Early-out if there aren't any array dimensions - if (!peekTokenClass(EHTokLeftBracket)) - return; - - // If we get here, we have at least one array dimension. This will track the sizes we find. - arraySizes = new TArraySizes; - - // Collect each array dimension. - while (acceptTokenClass(EHTokLeftBracket)) { - TSourceLoc loc = token.loc; - TIntermTyped* sizeExpr = nullptr; - - // Array sizing expression is optional. If omitted, array will be later sized by initializer list. - const bool hasArraySize = acceptAssignmentExpression(sizeExpr); - - if (! acceptTokenClass(EHTokRightBracket)) { - expected("]"); - return; - } - - if (hasArraySize) { - TArraySize arraySize; - parseContext.arraySizeCheck(loc, sizeExpr, arraySize); - arraySizes->addInnerSize(arraySize); - } else { - arraySizes->addInnerSize(0); // sized by initializers. - } - } -} - -// post_decls -// : COLON semantic // optional -// COLON PACKOFFSET LEFT_PAREN c[Subcomponent][.component] RIGHT_PAREN // optional -// COLON REGISTER LEFT_PAREN [shader_profile,] Type#[subcomp]opt (COMMA SPACEN)opt RIGHT_PAREN // optional -// COLON LAYOUT layout_qualifier_list -// annotations // optional -// -// Return true if any tokens were accepted. That is, -// false can be returned on successfully recognizing nothing, -// not necessarily meaning bad syntax. -// -bool HlslGrammar::acceptPostDecls(TQualifier& qualifier) -{ - bool found = false; - - do { - // COLON - if (acceptTokenClass(EHTokColon)) { - found = true; - HlslToken idToken; - if (peekTokenClass(EHTokLayout)) - acceptLayoutQualifierList(qualifier); - else if (acceptTokenClass(EHTokPackOffset)) { - // PACKOFFSET LEFT_PAREN c[Subcomponent][.component] RIGHT_PAREN - if (! acceptTokenClass(EHTokLeftParen)) { - expected("("); - return false; - } - HlslToken locationToken; - if (! acceptIdentifier(locationToken)) { - expected("c[subcomponent][.component]"); - return false; - } - HlslToken componentToken; - if (acceptTokenClass(EHTokDot)) { - if (! acceptIdentifier(componentToken)) { - expected("component"); - return false; - } - } - if (! acceptTokenClass(EHTokRightParen)) { - expected(")"); - break; - } - parseContext.handlePackOffset(locationToken.loc, qualifier, *locationToken.string, componentToken.string); - } else if (! acceptIdentifier(idToken)) { - expected("layout, semantic, packoffset, or register"); - return false; - } else if (*idToken.string == "register") { - // REGISTER LEFT_PAREN [shader_profile,] Type#[subcomp]opt (COMMA SPACEN)opt RIGHT_PAREN - // LEFT_PAREN - if (! acceptTokenClass(EHTokLeftParen)) { - expected("("); - return false; - } - HlslToken registerDesc; // for Type# - HlslToken profile; - if (! acceptIdentifier(registerDesc)) { - expected("register number description"); - return false; - } - if (registerDesc.string->size() > 1 && !isdigit((*registerDesc.string)[1]) && - acceptTokenClass(EHTokComma)) { - // Then we didn't really see the registerDesc yet, it was - // actually the profile. Adjust... - profile = registerDesc; - if (! acceptIdentifier(registerDesc)) { - expected("register number description"); - return false; - } - } - int subComponent = 0; - if (acceptTokenClass(EHTokLeftBracket)) { - // LEFT_BRACKET subcomponent RIGHT_BRACKET - if (! peekTokenClass(EHTokIntConstant)) { - expected("literal integer"); - return false; - } - subComponent = token.i; - advanceToken(); - if (! acceptTokenClass(EHTokRightBracket)) { - expected("]"); - break; - } - } - // (COMMA SPACEN)opt - HlslToken spaceDesc; - if (acceptTokenClass(EHTokComma)) { - if (! acceptIdentifier(spaceDesc)) { - expected ("space identifier"); - return false; - } - } - // RIGHT_PAREN - if (! acceptTokenClass(EHTokRightParen)) { - expected(")"); - break; - } - parseContext.handleRegister(registerDesc.loc, qualifier, profile.string, *registerDesc.string, subComponent, spaceDesc.string); - } else { - // semantic, in idToken.string - TString semanticUpperCase = *idToken.string; - std::transform(semanticUpperCase.begin(), semanticUpperCase.end(), semanticUpperCase.begin(), ::toupper); - parseContext.handleSemantic(idToken.loc, qualifier, mapSemantic(semanticUpperCase.c_str()), semanticUpperCase); - } - } else if (peekTokenClass(EHTokLeftAngle)) { - found = true; - acceptAnnotations(qualifier); - } else - break; - - } while (true); - - return found; -} - -// -// Get the stream of tokens from the scanner, but skip all syntactic/semantic -// processing. -// -bool HlslGrammar::captureBlockTokens(TVector& tokens) -{ - if (! peekTokenClass(EHTokLeftBrace)) - return false; - - int braceCount = 0; - - do { - switch (peek()) { - case EHTokLeftBrace: - ++braceCount; - break; - case EHTokRightBrace: - --braceCount; - break; - case EHTokNone: - // End of input before balance { } is bad... - return false; - default: - break; - } - - tokens.push_back(token); - advanceToken(); - } while (braceCount > 0); - - return true; -} - -// Return a string for just the types that can also be declared as an identifier. -const char* HlslGrammar::getTypeString(EHlslTokenClass tokenClass) const -{ - switch (tokenClass) { - case EHTokSample: return "sample"; - case EHTokHalf: return "half"; - case EHTokHalf1x1: return "half1x1"; - case EHTokHalf1x2: return "half1x2"; - case EHTokHalf1x3: return "half1x3"; - case EHTokHalf1x4: return "half1x4"; - case EHTokHalf2x1: return "half2x1"; - case EHTokHalf2x2: return "half2x2"; - case EHTokHalf2x3: return "half2x3"; - case EHTokHalf2x4: return "half2x4"; - case EHTokHalf3x1: return "half3x1"; - case EHTokHalf3x2: return "half3x2"; - case EHTokHalf3x3: return "half3x3"; - case EHTokHalf3x4: return "half3x4"; - case EHTokHalf4x1: return "half4x1"; - case EHTokHalf4x2: return "half4x2"; - case EHTokHalf4x3: return "half4x3"; - case EHTokHalf4x4: return "half4x4"; - case EHTokBool: return "bool"; - case EHTokFloat: return "float"; - case EHTokDouble: return "double"; - case EHTokInt: return "int"; - case EHTokUint: return "uint"; - case EHTokMin16float: return "min16float"; - case EHTokMin10float: return "min10float"; - case EHTokMin16int: return "min16int"; - case EHTokMin12int: return "min12int"; - case EHTokConstantBuffer: return "ConstantBuffer"; - case EHTokLayout: return "layout"; - default: - return nullptr; - } -} - -} // end namespace glslang diff --git a/deps/glslang/glslang/HLSL/hlslGrammar.h b/deps/glslang/glslang/HLSL/hlslGrammar.h deleted file mode 100644 index 27706b2b..00000000 --- a/deps/glslang/glslang/HLSL/hlslGrammar.h +++ /dev/null @@ -1,142 +0,0 @@ -// -// Copyright (C) 2016-2018 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), unitNode(nullptr) { } - 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 acceptSamplerTypeDX9(TType &); - 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 - TIntermNode* unitNode; - }; - -} // end namespace glslang - -#endif // HLSLGRAMMAR_H_ diff --git a/deps/glslang/glslang/HLSL/hlslOpMap.cpp b/deps/glslang/glslang/HLSL/hlslOpMap.cpp deleted file mode 100644 index ebe6fbd9..00000000 --- a/deps/glslang/glslang/HLSL/hlslOpMap.cpp +++ /dev/null @@ -1,173 +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. -// - -// Map from physical token form (e.g. '-') to logical operator -// form (e.g., binary subtract or unary negate). - -#include "hlslOpMap.h" - -namespace glslang { - -// Map parsing tokens that could be assignments into assignment operators. -TOperator HlslOpMap::assignment(EHlslTokenClass op) -{ - switch (op) { - case EHTokAssign: return EOpAssign; - case EHTokMulAssign: return EOpMulAssign; - case EHTokDivAssign: return EOpDivAssign; - case EHTokAddAssign: return EOpAddAssign; - case EHTokModAssign: return EOpModAssign; - case EHTokLeftAssign: return EOpLeftShiftAssign; - case EHTokRightAssign: return EOpRightShiftAssign; - case EHTokAndAssign: return EOpAndAssign; - case EHTokXorAssign: return EOpExclusiveOrAssign; - case EHTokOrAssign: return EOpInclusiveOrAssign; - case EHTokSubAssign: return EOpSubAssign; - - default: - return EOpNull; - } -} - -// Map parsing tokens that could be binary operations into binary operators. -TOperator HlslOpMap::binary(EHlslTokenClass op) -{ - switch (op) { - case EHTokPlus: return EOpAdd; - case EHTokDash: return EOpSub; - case EHTokStar: return EOpMul; - case EHTokSlash: return EOpDiv; - case EHTokPercent: return EOpMod; - case EHTokRightOp: return EOpRightShift; - case EHTokLeftOp: return EOpLeftShift; - case EHTokAmpersand: return EOpAnd; - case EHTokVerticalBar: return EOpInclusiveOr; - case EHTokCaret: return EOpExclusiveOr; - case EHTokEqOp: return EOpEqual; - case EHTokNeOp: return EOpNotEqual; - case EHTokLeftAngle: return EOpLessThan; - case EHTokRightAngle: return EOpGreaterThan; - case EHTokLeOp: return EOpLessThanEqual; - case EHTokGeOp: return EOpGreaterThanEqual; - case EHTokOrOp: return EOpLogicalOr; - case EHTokXorOp: return EOpLogicalXor; - case EHTokAndOp: return EOpLogicalAnd; - - default: - return EOpNull; - } -} - -// Map parsing tokens that could be unary operations into unary operators. -// These are just the ones that can appear in front of its operand. -TOperator HlslOpMap::preUnary(EHlslTokenClass op) -{ - switch (op) { - case EHTokPlus: return EOpAdd; // means no-op, but still a unary op was present - case EHTokDash: return EOpNegative; - case EHTokBang: return EOpLogicalNot; - case EHTokTilde: return EOpBitwiseNot; - - case EHTokIncOp: return EOpPreIncrement; - case EHTokDecOp: return EOpPreDecrement; - - default: return EOpNull; // means not a pre-unary op - } -} - -// Map parsing tokens that could be unary operations into unary operators. -// These are just the ones that can appear behind its operand. -TOperator HlslOpMap::postUnary(EHlslTokenClass op) -{ - switch (op) { - case EHTokDot: return EOpIndexDirectStruct; - case EHTokLeftBracket: return EOpIndexIndirect; - - case EHTokIncOp: return EOpPostIncrement; - case EHTokDecOp: return EOpPostDecrement; - - case EHTokColonColon: return EOpScoping; - - default: return EOpNull; // means not a post-unary op - } -} - -// Map operators into their level of precedence. -PrecedenceLevel HlslOpMap::precedenceLevel(TOperator op) -{ - switch (op) { - case EOpLogicalOr: - return PlLogicalOr; - case EOpLogicalXor: - return PlLogicalXor; - case EOpLogicalAnd: - return PlLogicalAnd; - - case EOpInclusiveOr: - return PlBitwiseOr; - case EOpExclusiveOr: - return PlBitwiseXor; - case EOpAnd: - return PlBitwiseAnd; - - case EOpEqual: - case EOpNotEqual: - return PlEquality; - - case EOpLessThan: - case EOpGreaterThan: - case EOpLessThanEqual: - case EOpGreaterThanEqual: - return PlRelational; - - case EOpRightShift: - case EOpLeftShift: - return PlShift; - - case EOpAdd: - case EOpSub: - return PlAdd; - - case EOpMul: - case EOpDiv: - case EOpMod: - return PlMul; - - default: - return PlBad; - } -} - -} // end namespace glslang diff --git a/deps/glslang/glslang/HLSL/hlslOpMap.h b/deps/glslang/glslang/HLSL/hlslOpMap.h deleted file mode 100644 index 4e783f3f..00000000 --- a/deps/glslang/glslang/HLSL/hlslOpMap.h +++ /dev/null @@ -1,69 +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. -// - -#ifndef HLSLOPMAP_H_ -#define HLSLOPMAP_H_ - -#include "hlslScanContext.h" - -namespace glslang { - - enum PrecedenceLevel { - PlBad, - PlLogicalOr, - PlLogicalXor, - PlLogicalAnd, - PlBitwiseOr, - PlBitwiseXor, - PlBitwiseAnd, - PlEquality, - PlRelational, - PlShift, - PlAdd, - PlMul - }; - - class HlslOpMap { - public: - static TOperator assignment(EHlslTokenClass op); - static TOperator binary(EHlslTokenClass op); - static TOperator preUnary(EHlslTokenClass op); - static TOperator postUnary(EHlslTokenClass op); - static PrecedenceLevel precedenceLevel(TOperator); - }; - -} // end namespace glslang - -#endif // HLSLOPMAP_H_ diff --git a/deps/glslang/glslang/HLSL/hlslParseHelper.cpp b/deps/glslang/glslang/HLSL/hlslParseHelper.cpp deleted file mode 100644 index 2d0a8e92..00000000 --- a/deps/glslang/glslang/HLSL/hlslParseHelper.cpp +++ /dev/null @@ -1,10242 +0,0 @@ -// -// Copyright (C) 2017-2018 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 "../Include/Common.h" -#include "../MachineIndependent/Scan.h" -#include "../MachineIndependent/preprocessor/PpContext.h" - -#include "../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), - parsingEntrypointParameters(false) -{ - 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; -} - -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.getFilenameStr() << "(" << 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; - } - - 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) { - // 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().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... - - 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, bool arrayed) -{ - 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))); - - // if flattening arrayed io struct, array each member of dereferenced type - if (arrayed) { - const TType dereferencedType(type, 0); - flatten(variable, dereferencedType, entry.first->second, variable.getName(), linkage, - type.getQualifier(), type.getArraySizes()); - } else { - 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); - } - } - - // Only propagate arraysizes here for arrayed io - if (variable.getType().getQualifier().isArrayedIo(language) && builtInArraySizes != nullptr) - memberVariable->getWritableType().copyArraySizes(*builtInArraySizes); - - 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(long long 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(long long 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 EatEarlyDepthStencil: - intermediate.setEarlyFragmentTests(); - 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; - else - error(loc, "needs a literal integer", "location", ""); - break; - case EatBinding: - // binding - if (it->getInt(value)) { - type.getQualifier().layoutBinding = value; - type.getQualifier().layoutSet = 0; - } else - error(loc, "needs a literal integer", "binding", ""); - // set - if (it->getInt(value, 1)) - type.getQualifier().layoutSet = value; - break; - case EatGlobalBinding: - // global cbuffer binding - if (it->getInt(value)) - globalUniformBinding = value; - else - error(loc, "needs a literal integer", "global binding", ""); - // global cbuffer set - if (it->getInt(value, 1)) - globalUniformSet = value; - break; - case EatInputAttachment: - // input attachment - if (it->getInt(value)) - type.getQualifier().layoutAttachment = value; - else - error(loc, "needs a literal integer", "input attachment", ""); - 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 (type.getQualifier().storage != EvqConst) { - error(loc, "needs a const type", "constant_id", ""); - break; - } - if (it->getInt(value)) { - TSourceLoc loc; - loc.init(); - setSpecConstantId(loc, type.getQualifier(), value); - } - break; - - // image formats - case EatFormatRgba32f: type.getQualifier().layoutFormat = ElfRgba32f; break; - case EatFormatRgba16f: type.getQualifier().layoutFormat = ElfRgba16f; break; - case EatFormatR32f: type.getQualifier().layoutFormat = ElfR32f; break; - case EatFormatRgba8: type.getQualifier().layoutFormat = ElfRgba8; break; - case EatFormatRgba8Snorm: type.getQualifier().layoutFormat = ElfRgba8Snorm; break; - case EatFormatRg32f: type.getQualifier().layoutFormat = ElfRg32f; break; - case EatFormatRg16f: type.getQualifier().layoutFormat = ElfRg16f; break; - case EatFormatR11fG11fB10f: type.getQualifier().layoutFormat = ElfR11fG11fB10f; break; - case EatFormatR16f: type.getQualifier().layoutFormat = ElfR16f; break; - case EatFormatRgba16: type.getQualifier().layoutFormat = ElfRgba16; break; - case EatFormatRgb10A2: type.getQualifier().layoutFormat = ElfRgb10A2; break; - case EatFormatRg16: type.getQualifier().layoutFormat = ElfRg16; break; - case EatFormatRg8: type.getQualifier().layoutFormat = ElfRg8; break; - case EatFormatR16: type.getQualifier().layoutFormat = ElfR16; break; - case EatFormatR8: type.getQualifier().layoutFormat = ElfR8; break; - case EatFormatRgba16Snorm: type.getQualifier().layoutFormat = ElfRgba16Snorm; break; - case EatFormatRg16Snorm: type.getQualifier().layoutFormat = ElfRg16Snorm; break; - case EatFormatRg8Snorm: type.getQualifier().layoutFormat = ElfRg8Snorm; break; - case EatFormatR16Snorm: type.getQualifier().layoutFormat = ElfR16Snorm; break; - case EatFormatR8Snorm: type.getQualifier().layoutFormat = ElfR8Snorm; break; - case EatFormatRgba32i: type.getQualifier().layoutFormat = ElfRgba32i; break; - case EatFormatRgba16i: type.getQualifier().layoutFormat = ElfRgba16i; break; - case EatFormatRgba8i: type.getQualifier().layoutFormat = ElfRgba8i; break; - case EatFormatR32i: type.getQualifier().layoutFormat = ElfR32i; break; - case EatFormatRg32i: type.getQualifier().layoutFormat = ElfRg32i; break; - case EatFormatRg16i: type.getQualifier().layoutFormat = ElfRg16i; break; - case EatFormatRg8i: type.getQualifier().layoutFormat = ElfRg8i; break; - case EatFormatR16i: type.getQualifier().layoutFormat = ElfR16i; break; - case EatFormatR8i: type.getQualifier().layoutFormat = ElfR8i; break; - case EatFormatRgba32ui: type.getQualifier().layoutFormat = ElfRgba32ui; break; - case EatFormatRgba16ui: type.getQualifier().layoutFormat = ElfRgba16ui; break; - case EatFormatRgba8ui: type.getQualifier().layoutFormat = ElfRgba8ui; break; - case EatFormatR32ui: type.getQualifier().layoutFormat = ElfR32ui; break; - case EatFormatRgb10a2ui: type.getQualifier().layoutFormat = ElfRgb10a2ui; break; - case EatFormatRg32ui: type.getQualifier().layoutFormat = ElfRg32ui; break; - case EatFormatRg16ui: type.getQualifier().layoutFormat = ElfRg16ui; break; - case EatFormatRg8ui: type.getQualifier().layoutFormat = ElfRg8ui; break; - case EatFormatR16ui: type.getQualifier().layoutFormat = ElfR16ui; break; - case EatFormatR8ui: type.getQualifier().layoutFormat = ElfR8ui; break; - case EatFormatUnknown: type.getQualifier().layoutFormat = ElfNone; break; - - case EatNonWritable: type.getQualifier().readonly = true; break; - case EatNonReadable: type.getQualifier().writeonly = true; 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 (! isEntrypointName(userFunction.getName())) { - 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()) { - bool arrayed = variable.getType().getQualifier().isArrayedIo(language); - flatten(variable, false /* don't track linkage here, it will be tracked in assignToInterface() */, arrayed); - } - // 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)); - } - - // Add uniform parameters to the $Global uniform block. - TVector opaque_uniforms; - for (int i = 0; i < userFunction.getParamCount(); i++) { - TType& paramType = *userFunction[i].type; - TString& paramName = *userFunction[i].name; - if (paramType.getQualifier().storage == EvqUniform) { - if (!paramType.containsOpaque()) { - // Add it to the global uniform block. - growGlobalUniformBlock(loc, paramType, paramName); - } else { - // Declare it as a separate variable. - TVariable *var = makeInternalVariable(paramName.c_str(), paramType); - opaque_uniforms.push_back(var); - } - } - } - - // 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(); - auto opaqueUniformIt = opaque_uniforms.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()) { - TIntermTyped* input = intermediate.addSymbol(**inputIt); - if (input->getType().getQualifier().builtIn == EbvFragCoord && intermediate.getDxPositionW()) { - // Replace FragCoord W with reciprocal - auto pos_xyz = handleDotDereference(loc, input, "xyz"); - auto pos_w = handleDotDereference(loc, input, "w"); - auto one = intermediate.addConstantUnion(1.0, EbtFloat, loc); - auto recip_w = intermediate.addBinaryMath(EOpDiv, one, pos_w, loc); - TIntermAggregate* dst = new TIntermAggregate(EOpConstructVec4); - dst->getSequence().push_back(pos_xyz); - dst->getSequence().push_back(recip_w); - dst->setType(TType(EbtFloat, EvqTemporary, 4)); - dst->setLoc(loc); - input = dst; - } - intermediate.growAggregate(synthBody, handleAssign(loc, EOpAssign, arg, input)); - inputIt++; - } - if (param.type->getQualifier().storage == EvqUniform) { - if (!param.type->containsOpaque()) { - // Look it up in the $Global uniform block. - intermediate.growAggregate(synthBody, handleAssign(loc, EOpAssign, arg, - handleVariable(loc, param.name))); - } else { - intermediate.growAggregate(synthBody, handleAssign(loc, EOpAssign, arg, - intermediate.addSymbol(**opaqueUniformIt))); - ++opaqueUniformIt; - } - } - } - - // 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; -} - -// FragCoord may require special loading: we can optionally reciprocate W. -TIntermTyped* HlslParseContext::assignFromFragCoord(const TSourceLoc& loc, TOperator op, - TIntermTyped* left, TIntermTyped* right) -{ - // If we are not asked for reciprocal W, use a plain old assign. - if (!intermediate.getDxPositionW()) - return intermediate.addAssign(op, left, right, loc); - - // If we get here, we should reciprocate W. - 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("@fragcoord", right->getType()); - rhsTempVar->getWritableType().getQualifier().makeTemporary(); - - { - TIntermTyped* rhsTempSym = intermediate.addSymbol(*rhsTempVar, loc); - assignList = intermediate.growAggregate(assignList, - intermediate.addAssign(EOpAssign, rhsTempSym, right, loc), loc); - } - - // tmp.w = 1.0 / tmp.w - { - const int W = 3; - - TIntermTyped* tempSymL = intermediate.addSymbol(*rhsTempVar, loc); - TIntermTyped* tempSymR = intermediate.addSymbol(*rhsTempVar, loc); - TIntermTyped* index = intermediate.addConstantUnion(W, 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); - - auto one = intermediate.addConstantUnion(1.0, EbtFloat, loc); - auto recip_w = intermediate.addBinaryMath(EOpDiv, one, rhsElement, loc); - - assignList = intermediate.growAggregate(assignList, intermediate.addAssign(EOpAssign, lhsElement, recip_w, loc)); - } - - // Assign the rhs temp (now with W reciprocal) 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; -} - -// 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 symbol if node is symbol or index ref - const auto getSymbol = [](const TIntermTyped* node) -> const TIntermSymbol* { - const TIntermSymbol* symbolNode = node->getAsSymbolNode(); - if (symbolNode != nullptr) - return symbolNode; - - const TIntermBinary* binaryNode = node->getAsBinaryNode(); - if (binaryNode != nullptr && (binaryNode->getOp() == EOpIndexDirect || binaryNode->getOp() == EOpIndexIndirect)) - return binaryNode->getLeft()->getAsSymbolNode(); - - return nullptr; - }; - - // 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 TIntermSymbol* leftSymbol = getSymbol(left); - const TIntermSymbol* rightSymbol = getSymbol(right); - - const bool isSplitLeft = wasSplit(left) || indexesSplit(left); - const bool isSplitRight = wasSplit(right) || indexesSplit(right); - - const bool isFlattenLeft = wasFlattened(leftSymbol); - const bool isFlattenRight = wasFlattened(rightSymbol); - - // 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(leftSymbol->getId())->second.members; - - if (isFlattenRight) { - rightVariables = &flattenMap.find(rightSymbol->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 leftOffsetStart = findSubtreeOffset(*left); - int rightOffsetStart = findSubtreeOffset(*right); - int leftOffset = leftOffsetStart; - int rightOffset = rightOffsetStart; - - 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) { - // offset will cycle through variables for arrayed io - if (leftOffset >= static_cast(leftVariables->size())) - leftOffset = leftOffsetStart; - subTree = intermediate.addSymbol(*(*leftVariables)[leftOffset++]); - } else { - // offset will cycle through variables for arrayed io - if (rightOffset >= static_cast(rightVariables->size())) - rightOffset = rightOffsetStart; - subTree = intermediate.addSymbol(*(*rightVariables)[rightOffset++]); - } - - // arrayed io - if (subTree->getType().isArray()) { - if (!arrayElement.empty()) { - const TType derefType(subTree->getType(), arrayElement.front()); - subTree = intermediate.addIndex(EOpIndexDirect, subTree, - intermediate.addConstantUnion(arrayElement.front(), loc), loc); - subTree->setType(derefType); - } else { - // There's an index operation we should transfer to the output builtin. - assert(splitNode->getAsOperator() != nullptr && - splitNode->getAsOperator()->getOp() == EOpIndexIndirect); - const TType splitDerefType(subTree->getType(), 0); - subTree = intermediate.addIndex(splitNode->getAsOperator()->getOp(), subTree, - splitNode->getAsBinaryNode()->getRight(), loc); - subTree->setType(splitDerefType); - } - } - } 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 (subSplitRight->getType().getQualifier().builtIn == EbvFragCoord) { - // FragCoord can require special handling: see comment above assignFromFragCoord - TIntermTyped* fragCoordAssign = assignFromFragCoord(loc, op, subSplitLeft, subSplitRight); - assignList = intermediate.growAggregate(assignList, fragCoordAssign, 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. - long long 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()] = NewPoolObject(tShadowTextureSymbols(), 1); - - // 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 = NewPoolTString(intermediate.addCounterBufferName(name).c_str()); - - // 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; - if (argAggregate->getSequence()[0]) - 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.getMemberAlignment(argArray->getType(), size, stride, argArray->getType().getQualifier().layoutPacking, - 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] == nullptr || - 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 EOpTextureLod: //is almost EOpTextureBias (only args & operations are different) - { - TIntermTyped *argSamp = argAggregate->getSequence()[0]->getAsTyped(); // sampler - TIntermTyped *argCoord = argAggregate->getSequence()[1]->getAsTyped(); // coord - - assert(argCoord->getVectorSize() == 4); - TIntermTyped *w = intermediate.addConstantUnion(3, loc, true); - TIntermTyped *argLod = intermediate.addIndex(EOpIndexDirect, argCoord, w, loc); - - TOperator constructOp = EOpNull; - const TSampler &sampler = argSamp->getType().getSampler(); - int coordSize = 0; - - switch (sampler.dim) - { - case Esd1D: constructOp = EOpConstructFloat; coordSize = 1; break; // 1D - case Esd2D: constructOp = EOpConstructVec2; coordSize = 2; break; // 2D - case Esd3D: constructOp = EOpConstructVec3; coordSize = 3; break; // 3D - case EsdCube: constructOp = EOpConstructVec3; coordSize = 3; break; // also 3D - default: - error(loc, "unhandled DX9 texture LoD dimension", "", ""); - break; - } - - TIntermAggregate *constructCoord = new TIntermAggregate(constructOp); - constructCoord->getSequence().push_back(argCoord); - constructCoord->setLoc(loc); - constructCoord->setType(TType(argCoord->getBasicType(), EvqTemporary, coordSize)); - - TIntermAggregate *tex = new TIntermAggregate(EOpTextureLod); - tex->getSequence().push_back(argSamp); // sampler - tex->getSequence().push_back(constructCoord); // coordinate - tex->getSequence().push_back(argLod); // lod - - node = convertReturn(tex, sampler); - - 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: - error(loc, "unhandled DX9 texture bias dimension", "", ""); - 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 (argOffset != nullptr) - txsample->getSequence().push_back(argOffset); - - if (argBias != nullptr) - txsample->getSequence().push_back(argBias); - - 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: - error(loc, "unhandled DX10 MethodGet dimension", "", ""); - break; - } - - // 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: - error(loc, "unhandled DX10 MethodSample dimension", "", ""); - 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( - op == EOpMethodCalculateLevelOfDetail ? 0 : 1, - loc, true); - TIntermTyped* lodComponentIdx = intermediate.addIndex(EOpIndexDirect, txquerylod, lodComponent, loc); - lodComponentIdx->setType(TType(EbtFloat, EvqTemporary, 1)); - node = lodComponentIdx; - - 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(NewPoolTString(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 && aggregate->getSequence()[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. - - // 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) { - // SM 4.0 and above guarantees roundEven semantics for round() - if (!hlslDX9Compatible() && op == EOpRound) - op = EOpRoundEven; - - // 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 && 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: - // TODO(greg-lunarg): Re-enable this check. It currently gives false errors for builtins - // defined and passed as members of a struct. In this case the storage class is showing to be - // Function. See glslang #2584 - - // 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; - }; - - if (builtIn == EbvNone && hlslDX9Compatible()) { - if (language == EShLangVertex) { - if (qualifier.isParamOutput()) { - if (upperCase == "POSITION") { - builtIn = EbvPosition; - } - if (upperCase == "PSIZE") { - builtIn = EbvPointSize; - } - } - } else if (language == EShLangFragment) { - if (qualifier.isParamInput() && upperCase == "VPOS") { - builtIn = EbvFragCoord; - } - if (qualifier.isParamOutput()) { - if (upperCase.compare(0, 5, "COLOR") == 0) { - qualifier.layoutLocation = getSemanticNumber(upperCase, 0, nullptr); - nextOutLocation = std::max(nextOutLocation, qualifier.layoutLocation + 1u); - } - if (upperCase == "DEPTH") { - builtIn = EbvFragDepth; - } - } - } - } - - 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; - } - } - - // more information about register types see - // https://docs.microsoft.com/en-us/windows/desktop/direct3dhlsl/dx-graphics-hlsl-variable-register - const std::vector& resourceInfo = intermediate.getResourceSetBinding(); - switch (std::tolower(desc[0])) { - case 'c': - // c register is the register slot in the global const buffer - // each slot is a vector of 4 32 bit components - qualifier.layoutOffset = regNumber * 4 * 4; - break; - // const buffer register slot - case 'b': - // textrues and structured buffers - case 't': - // samplers - case 's': - // uav resources - 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: - error(loc, "unhandled texture constructor", "constructor", ""); - return true; - 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); -} - -// 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'. -// -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 -#define MERGE_SINGLETON(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.getQualifier().builtIn != rhs.getQualifier().builtIn) - 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 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 = nullptr; - - // printf has var args and is in the symbol table as "printf()", - // mangled to "printf(" - if (call.getName() == "printf") { - TSymbol* symbol = symbolTable.find("printf(", &builtIn); - if (symbol) - return symbol->getAsFunction(); - } - - 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; arg < int(args->getAsAggregate()->getSequence().size()); ++arg) { - // TODO: But for constness, we could avoid the new & shallowCopy, and use the pointer directly. - TParameter param = { 0, new TType, 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. -// -// Returns a subtree that accomplished the initialization. -// -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); - - 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); - fixXfbOffsets(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::fixXfbOffsets(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 contains64BitType = false; - bool contains32BitType = false; - bool contains16BitType = false; - int memberSize = intermediate.computeTypeXfbSize(*typeList[member].type, contains64BitType, contains32BitType, contains16BitType); - // see if we need to auto-assign an offset to this member - if (! memberQualifier.hasXfbOffset()) { - // "if applied to an aggregate containing a double or 64-bit integer, the offset must also be a multiple of 8" - if (contains64BitType) - RoundToPow2(nextOffset, 8); - else if (contains32BitType) - RoundToPow2(nextOffset, 4); - // "if applied to an aggregate containing a half float or 16-bit integer, the offset must also be a multiple of 2" - else if (contains16BitType) - RoundToPow2(nextOffset, 2); - 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 && qualifier.layoutPacking != ElpScalar) - 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.getMemberAlignment(*typeList[member].type, memberSize, dummyStride, - qualifier.layoutPacking, - 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) -{ - // these can be declared on non-entry-points, in which case they lose their meaning - if (! parsingEntrypointParameters) - return true; - - 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; - - // these can be declared on non-entry-points, in which case they lose their meaning - if (! parsingEntrypointParameters) - 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 (biType == EbvTessLevelInner || biType == EbvTessLevelOuter) - paramType->getQualifier().patch = true; - - 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().isStruct()) - flatten(*pcfOutput, false); - - 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 deleted file mode 100644 index 8bebb0e2..00000000 --- a/deps/glslang/glslang/HLSL/hlslParseHelper.h +++ /dev/null @@ -1,515 +0,0 @@ -// -// Copyright (C) 2016-2018 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 "../MachineIndependent/parseVersions.h" -#include "../MachineIndependent/ParseHelper.h" -#include "../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 = globalUniformDefaults.layoutPacking; - block.getQualifier().layoutMatrix = globalUniformDefaults.layoutMatrix; - } - - 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); - TIntermTyped* assignFromFragCoord(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&); - 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 fixXfbOffsets(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 beginParameterParsing(TFunction& function) - { - parsingEntrypointParameters = isEntrypointName(function.getName()); - } - - 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); - bool isEntrypointName(const TString& name) { return name.compare(intermediate.getEntryPointName().c_str()) == 0; } - - // 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(long long 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(long long 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(long long id) const { return splitNonIoVars.find(id) != splitNonIoVars.end(); } - TVariable* getSplitNonIoVar(long long id) const; - void addPatchConstantInvocation(); - void fixTextureShadowModes(); - void finalizeAppendMethods(); - TIntermTyped* makeIntegerIndex(TIntermTyped*); - - void fixBuiltInIoType(TType&); - - void flatten(const TVariable& variable, bool linkage, bool arrayed = false); - 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, long long id) { symId[int(shadow)] = id; } - long long 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(long long id) const { return symId[1] == id; } - - private: - std::array symId; - }; - - TMap textureShadowVariant; - bool parsingEntrypointParameters; -}; - -// 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 deleted file mode 100644 index 15918dc3..00000000 --- a/deps/glslang/glslang/HLSL/hlslParseables.cpp +++ /dev/null @@ -1,1259 +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 3Dlabs Inc. Ltd. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -// - -// -// Create strings that declare built-in definitions, add built-ins programmatically -// that cannot be expressed in the strings, and establish mappings between -// built-in functions and operators. -// -// Where to put a built-in: -// TBuiltInParseablesHlsl::initialize(version,profile) context-independent textual built-ins; add them to the right string -// TBuiltInParseablesHlsl::initialize(resources,...) context-dependent textual built-ins; add them to the right string -// TBuiltInParseablesHlsl::identifyBuiltIns(...,symbolTable) context-independent programmatic additions/mappings to the symbol table, -// including identifying what extensions are needed if a version does not allow a symbol -// TBuiltInParseablesHlsl::identifyBuiltIns(...,symbolTable, resources) context-dependent programmatic additions/mappings to the -// symbol table, including identifying what extensions are needed if a version does -// not allow a symbol -// - -#include "hlslParseables.h" -#include "hlslParseHelper.h" -#include -#include -#include - -namespace { // anonymous namespace functions - -// arg order queries -bool IsSamplerType(const char argType) { return argType == 'S' || argType == 's'; } -bool IsArrayed(const char argOrder) { return argOrder == '@' || argOrder == '&' || argOrder == '#'; } -bool IsTextureNonMS(const char argOrder) { return argOrder == '%'; } -bool IsSubpassInput(const char argOrder) { return argOrder == '[' || argOrder == ']'; } -bool IsArrayedTexture(const char argOrder) { return argOrder == '@'; } -bool IsTextureMS(const char argOrder) { return argOrder == '$' || argOrder == '&'; } -bool IsMS(const char argOrder) { return IsTextureMS(argOrder) || argOrder == ']'; } -bool IsBuffer(const char argOrder) { return argOrder == '*' || argOrder == '~'; } -bool IsImage(const char argOrder) { return argOrder == '!' || argOrder == '#' || argOrder == '~'; } - -bool IsTextureType(const char argOrder) -{ - return IsTextureNonMS(argOrder) || IsArrayedTexture(argOrder) || - IsTextureMS(argOrder) || IsBuffer(argOrder) || IsImage(argOrder); -} - -// Reject certain combinations that are illegal sample methods. For example, -// 3D arrays. -bool IsIllegalSample(const glslang::TString& name, const char* argOrder, int dim0) -{ - const bool isArrayed = IsArrayed(*argOrder); - const bool isMS = IsTextureMS(*argOrder); - const bool isBuffer = IsBuffer(*argOrder); - - // there are no 3D arrayed textures, or 3D SampleCmp(LevelZero) - if (dim0 == 3 && (isArrayed || name == "SampleCmp" || name == "SampleCmpLevelZero")) - return true; - - const int numArgs = int(std::count(argOrder, argOrder + strlen(argOrder), ',')) + 1; - - // Reject invalid offset forms with cubemaps - if (dim0 == 4) { - if ((name == "Sample" && numArgs >= 4) || - (name == "SampleBias" && numArgs >= 5) || - (name == "SampleCmp" && numArgs >= 5) || - (name == "SampleCmpLevelZero" && numArgs >= 5) || - (name == "SampleGrad" && numArgs >= 6) || - (name == "SampleLevel" && numArgs >= 5)) - return true; - } - - const bool isGather = - (name == "Gather" || - name == "GatherRed" || - name == "GatherGreen" || - name == "GatherBlue" || - name == "GatherAlpha"); - - const bool isGatherCmp = - (name == "GatherCmp" || - name == "GatherCmpRed" || - name == "GatherCmpGreen" || - name == "GatherCmpBlue" || - name == "GatherCmpAlpha"); - - // Reject invalid Gathers - if (isGather || isGatherCmp) { - if (dim0 == 1 || dim0 == 3) // there are no 1D or 3D gathers - return true; - - // no offset on cube or cube array gathers - if (dim0 == 4) { - if ((isGather && numArgs > 3) || (isGatherCmp && numArgs > 4)) - return true; - } - } - - // Reject invalid Loads - if (name == "Load" && dim0 == 4) - return true; // Load does not support any cubemaps, arrayed or not. - - // Multisample formats are only 2D and 2Darray - if (isMS && dim0 != 2) - return true; - - // Buffer are only 1D - if (isBuffer && dim0 != 1) - return true; - - return false; -} - -// Return the number of the coordinate arg, if any -int CoordinateArgPos(const glslang::TString& name, bool isTexture) -{ - if (!isTexture || (name == "GetDimensions")) - return -1; // has none - else if (name == "Load") - return 1; - else - return 2; // other texture methods are 2 -} - -// Some texture methods use an addition coordinate dimension for the mip -bool HasMipInCoord(const glslang::TString& name, bool isMS, bool isBuffer, bool isImage) -{ - return name == "Load" && !isMS && !isBuffer && !isImage; -} - -// LOD calculations don't pass the array level in the coordinate. -bool NoArrayCoord(const glslang::TString& name) -{ - return name == "CalculateLevelOfDetail" || name == "CalculateLevelOfDetailUnclamped"; -} - -// Handle IO params marked with > or < -const char* IoParam(glslang::TString& s, const char* nthArgOrder) -{ - if (*nthArgOrder == '>') { // output params - ++nthArgOrder; - s.append("out "); - } else if (*nthArgOrder == '<') { // input params - ++nthArgOrder; - s.append("in "); - } - - return nthArgOrder; -} - -// Handle repeated args -void HandleRepeatArg(const char*& arg, const char*& prev, const char* current) -{ - if (*arg == ',' || *arg == '\0') - arg = prev; - else - prev = current; -} - -// Return true for the end of a single argument key, which can be the end of the string, or -// the comma separator. -inline bool IsEndOfArg(const char* arg) -{ - return arg == nullptr || *arg == '\0' || *arg == ','; -} - -// If this is a fixed vector size, such as V3, return the size. Else return 0. -int FixedVecSize(const char* arg) -{ - while (!IsEndOfArg(arg)) { - if (isdigit(*arg)) - return *arg - '0'; - ++arg; - } - - return 0; // none found. -} - -// Create and return a type name, using HLSL type conventions. -// -// order: S = scalar, V = vector, M = matrix -// argType: F = float, D = double, I = int, U = uint, B = bool, S = sampler -// dim0 = vector dimension, or matrix 1st dimension -// dim1 = matrix 2nd dimension -glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, const char* argType, int dim0, int dim1) -{ - const bool isTranspose = (argOrder[0] == '^'); - const bool isTexture = IsTextureType(argOrder[0]); - const bool isArrayed = IsArrayed(argOrder[0]); - const bool isSampler = IsSamplerType(argType[0]); - const bool isMS = IsMS(argOrder[0]); - const bool isBuffer = IsBuffer(argOrder[0]); - const bool isImage = IsImage(argOrder[0]); - const bool isSubpass = IsSubpassInput(argOrder[0]); - - char type = *argType; - - if (isTranspose) { // Take transpose of matrix dimensions - std::swap(dim0, dim1); - } else if (isTexture || isSubpass) { - if (type == 'F') // map base type to texture of that type. - type = 'T'; // e.g, int -> itexture, uint -> utexture, etc. - else if (type == 'I') - type = 'i'; - else if (type == 'U') - type = 'u'; - } - - if (isTranspose) - ++argOrder; - - char order = *argOrder; - - switch (type) { - case '-': s += "void"; break; - case 'F': s += "float"; break; - case 'D': s += "double"; break; - case 'I': s += "int"; break; - case 'U': s += "uint"; break; - case 'L': s += "int64_t"; break; - case 'M': s += "uint64_t"; break; - case 'B': s += "bool"; break; - case 'S': s += "sampler"; break; - case 's': s += "SamplerComparisonState"; break; - case 'T': s += ((isBuffer && isImage) ? "RWBuffer" : - isSubpass ? "SubpassInput" : - isBuffer ? "Buffer" : - isImage ? "RWTexture" : "Texture"); break; - case 'i': s += ((isBuffer && isImage) ? "RWBuffer" : - isSubpass ? "SubpassInput" : - isBuffer ? "Buffer" : - isImage ? "RWTexture" : "Texture"); break; - case 'u': s += ((isBuffer && isImage) ? "RWBuffer" : - isSubpass ? "SubpassInput" : - isBuffer ? "Buffer" : - isImage ? "RWTexture" : "Texture"); break; - default: s += "UNKNOWN_TYPE"; break; - } - - if (isSubpass && isMS) - s += "MS"; - - // handle fixed vector sizes, such as float3, and only ever 3. - const int fixedVecSize = FixedVecSize(argOrder); - if (fixedVecSize != 0) - dim0 = dim1 = fixedVecSize; - - const char dim0Char = ('0' + char(dim0)); - const char dim1Char = ('0' + char(dim1)); - - // Add sampler dimensions - if (isSampler || isTexture) { - if ((order == 'V' || isTexture) && !isBuffer) { - switch (dim0) { - case 1: s += "1D"; break; - case 2: s += (isMS ? "2DMS" : "2D"); break; - case 3: s += "3D"; break; - case 4: s += (type == 'S'? "CUBE" : "Cube"); break; - default: s += "UNKNOWN_SAMPLER"; break; - } - } - } else { - // Non-sampler type: - // verify dimensions - if (((order == 'V' || order == 'M') && (dim0 < 1 || dim0 > 4)) || - (order == 'M' && (dim1 < 1 || dim1 > 4))) { - s += "UNKNOWN_DIMENSION"; - return s; - } - - switch (order) { - case '-': break; // no dimensions for voids - case 'S': break; // no dimensions on scalars - case 'V': - s += dim0Char; - break; - case 'M': - s += dim0Char; - s += 'x'; - s += dim1Char; - break; - default: - break; - } - } - - // handle arrayed textures - if (isArrayed) - s += "Array"; - - switch (type) { - case 'i': s += " 0) // handle fixed sized vectors - dim0Min = dim0Max = fixedVecSize; -} - -} // end anonymous namespace - -namespace glslang { - -TBuiltInParseablesHlsl::TBuiltInParseablesHlsl() -{ -} - -// -// Handle creation of mat*mat specially, since it doesn't fall conveniently out of -// the generic prototype creation code below. -// -void TBuiltInParseablesHlsl::createMatTimesMat() -{ - TString& s = commonBuiltins; - - for (int xRows = 1; xRows <=4; xRows++) { - for (int xCols = 1; xCols <=4; xCols++) { - const int yRows = xCols; - for (int yCols = 1; yCols <=4; yCols++) { - const int retRows = xRows; - const int retCols = yCols; - - // Create a mat * mat of the appropriate dimensions - AppendTypeName(s, "M", "F", retRows, retCols); // add return type - s.append(" "); // space between type and name - s.append("mul"); // intrinsic name - s.append("("); // open paren - - AppendTypeName(s, "M", "F", xRows, xCols); // add X input - s.append(", "); - AppendTypeName(s, "M", "F", yRows, yCols); // add Y input - - s.append(");\n"); // close paren - } - - // Create M*V - AppendTypeName(s, "V", "F", xRows, 1); // add return type - s.append(" "); // space between type and name - s.append("mul"); // intrinsic name - s.append("("); // open paren - - AppendTypeName(s, "M", "F", xRows, xCols); // add X input - s.append(", "); - AppendTypeName(s, "V", "F", xCols, 1); // add Y input - - s.append(");\n"); // close paren - - // Create V*M - AppendTypeName(s, "V", "F", xCols, 1); // add return type - s.append(" "); // space between type and name - s.append("mul"); // intrinsic name - s.append("("); // open paren - - AppendTypeName(s, "V", "F", xRows, 1); // add Y input - s.append(", "); - AppendTypeName(s, "M", "F", xRows, xCols); // add X input - - s.append(");\n"); // close paren - } - } -} - -// -// Add all context-independent built-in functions and variables that are present -// for the given version and profile. Share common ones across stages, otherwise -// make stage-specific entries. -// -// Most built-ins variables can be added as simple text strings. Some need to -// be added programmatically, which is done later in IdentifyBuiltIns() below. -// -void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, const SpvVersion& /*spvVersion*/) -{ - static const EShLanguageMask EShLangAll = EShLanguageMask(EShLangCount - 1); - - // These are the actual stage masks defined in the documentation, in case they are - // needed for future validation. For now, they are commented out, and set below - // to EShLangAll, to allow any intrinsic to be used in any shader, which is legal - // if it is not called. - // - // static const EShLanguageMask EShLangPSCS = EShLanguageMask(EShLangFragmentMask | EShLangComputeMask); - // static const EShLanguageMask EShLangVSPSGS = EShLanguageMask(EShLangVertexMask | EShLangFragmentMask | EShLangGeometryMask); - // static const EShLanguageMask EShLangCS = EShLangComputeMask; - // static const EShLanguageMask EShLangPS = EShLangFragmentMask; - // static const EShLanguageMask EShLangHS = EShLangTessControlMask; - - // This set uses EShLangAll for everything. - static const EShLanguageMask EShLangPSCS = EShLangAll; - static const EShLanguageMask EShLangVSPSGS = EShLangAll; - static const EShLanguageMask EShLangCS = EShLangAll; - static const EShLanguageMask EShLangPS = EShLangAll; - static const EShLanguageMask EShLangHS = EShLangAll; - static const EShLanguageMask EShLangGS = EShLangAll; - - // This structure encodes the prototype information for each HLSL intrinsic. - // Because explicit enumeration would be cumbersome, it's procedurally generated. - // orderKey can be: - // S = scalar, V = vector, M = matrix, - = void - // typekey can be: - // D = double, F = float, U = uint, I = int, B = bool, S = sampler, s = shadowSampler, M = uint64_t, L = int64_t - // An empty order or type key repeats the first one. E.g: SVM,, means 3 args each of SVM. - // '>' as first letter of order creates an output parameter - // '<' as first letter of order creates an input parameter - // '^' as first letter of order takes transpose dimensions - // '%' as first letter of order creates texture of given F/I/U type (texture, itexture, etc) - // '@' as first letter of order creates arrayed texture of given type - // '$' / '&' as first letter of order creates 2DMS / 2DMSArray textures - // '*' as first letter of order creates buffer object - // '!' as first letter of order creates image object - // '#' as first letter of order creates arrayed image object - // '~' as first letter of order creates an image buffer object - // '[' / ']' as first letter of order creates a SubpassInput/SubpassInputMS object - - static const struct { - const char* name; // intrinsic name - const char* retOrder; // return type key: empty matches order of 1st argument - const char* retType; // return type key: empty matches type of 1st argument - const char* argOrder; // argument order key - const char* argType; // argument type key - unsigned int stage; // stage mask - bool method; // true if it's a method. - } hlslIntrinsics[] = { - // name retOrd retType argOrder argType stage mask method - // ---------------------------------------------------------------------------------------------------------------- - { "abort", nullptr, nullptr, "-", "-", EShLangAll, false }, - { "abs", nullptr, nullptr, "SVM", "DFUI", EShLangAll, false }, - { "acos", nullptr, nullptr, "SVM", "F", EShLangAll, false }, - { "all", "S", "B", "SVM", "BFIU", EShLangAll, false }, - { "AllMemoryBarrier", nullptr, nullptr, "-", "-", EShLangCS, false }, - { "AllMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangCS, false }, - { "any", "S", "B", "SVM", "BFIU", EShLangAll, false }, - { "asdouble", "S", "D", "S,", "UI,", EShLangAll, false }, - { "asdouble", "V2", "D", "V2,", "UI,", EShLangAll, false }, - { "asfloat", nullptr, "F", "SVM", "BFIU", EShLangAll, false }, - { "asin", nullptr, nullptr, "SVM", "F", EShLangAll, false }, - { "asint", nullptr, "I", "SVM", "FIU", EShLangAll, false }, - { "asuint", nullptr, "U", "SVM", "FIU", EShLangAll, false }, - { "atan", nullptr, nullptr, "SVM", "F", EShLangAll, false }, - { "atan2", nullptr, nullptr, "SVM,", "F,", EShLangAll, false }, - { "ceil", nullptr, nullptr, "SVM", "F", EShLangAll, false }, - { "CheckAccessFullyMapped", "S", "B" , "S", "U", EShLangPSCS, false }, - { "clamp", nullptr, nullptr, "SVM,,", "FUI,,", EShLangAll, false }, - { "clip", "-", "-", "SVM", "FUI", EShLangPS, false }, - { "cos", nullptr, nullptr, "SVM", "F", EShLangAll, false }, - { "cosh", nullptr, nullptr, "SVM", "F", EShLangAll, false }, - { "countbits", nullptr, nullptr, "SV", "UI", EShLangAll, false }, - { "cross", nullptr, nullptr, "V3,", "F,", EShLangAll, false }, - { "D3DCOLORtoUBYTE4", "V4", "I", "V4", "F", EShLangAll, false }, - { "ddx", nullptr, nullptr, "SVM", "F", EShLangPS, false }, - { "ddx_coarse", nullptr, nullptr, "SVM", "F", EShLangPS, false }, - { "ddx_fine", nullptr, nullptr, "SVM", "F", EShLangPS, false }, - { "ddy", nullptr, nullptr, "SVM", "F", EShLangPS, false }, - { "ddy_coarse", nullptr, nullptr, "SVM", "F", EShLangPS, false }, - { "ddy_fine", nullptr, nullptr, "SVM", "F", EShLangPS, false }, - { "degrees", nullptr, nullptr, "SVM", "F", EShLangAll, false }, - { "determinant", "S", "F", "M", "F", EShLangAll, false }, - { "DeviceMemoryBarrier", nullptr, nullptr, "-", "-", EShLangPSCS, false }, - { "DeviceMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangCS, false }, - { "distance", "S", "F", "SV,", "F,", EShLangAll, false }, - { "dot", "S", nullptr, "SV,", "FI,", EShLangAll, false }, - { "dst", nullptr, nullptr, "V4,", "F,", EShLangAll, false }, - // { "errorf", "-", "-", "", "", EShLangAll, false }, TODO: varargs - { "EvaluateAttributeAtCentroid", nullptr, nullptr, "SVM", "F", EShLangPS, false }, - { "EvaluateAttributeAtSample", nullptr, nullptr, "SVM,S", "F,U", EShLangPS, false }, - { "EvaluateAttributeSnapped", nullptr, nullptr, "SVM,V2", "F,I", EShLangPS, false }, - { "exp", nullptr, nullptr, "SVM", "F", EShLangAll, false }, - { "exp2", nullptr, nullptr, "SVM", "F", EShLangAll, false }, - { "f16tof32", nullptr, "F", "SV", "U", EShLangAll, false }, - { "f32tof16", nullptr, "U", "SV", "F", EShLangAll, false }, - { "faceforward", nullptr, nullptr, "V,,", "F,,", EShLangAll, false }, - { "firstbithigh", nullptr, nullptr, "SV", "UI", EShLangAll, false }, - { "firstbitlow", nullptr, nullptr, "SV", "UI", EShLangAll, false }, - { "floor", nullptr, nullptr, "SVM", "F", EShLangAll, false }, - { "fma", nullptr, nullptr, "SVM,,", "D,,", EShLangAll, false }, - { "fmod", nullptr, nullptr, "SVM,", "F,", EShLangAll, false }, - { "frac", nullptr, nullptr, "SVM", "F", EShLangAll, false }, - { "frexp", nullptr, nullptr, "SVM,", "F,", EShLangAll, false }, - { "fwidth", nullptr, nullptr, "SVM", "F", EShLangPS, false }, - { "GetRenderTargetSampleCount", "S", "U", "-", "-", EShLangAll, false }, - { "GetRenderTargetSamplePosition", "V2", "F", "V1", "I", EShLangAll, false }, - { "GroupMemoryBarrier", nullptr, nullptr, "-", "-", EShLangCS, false }, - { "GroupMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangCS, false }, - { "InterlockedAdd", "-", "-", "SVM,,>", "UI,,", EShLangPSCS, false }, - { "InterlockedAdd", "-", "-", "SVM,", "UI,", EShLangPSCS, false }, - { "InterlockedAnd", "-", "-", "SVM,,>", "UI,,", EShLangPSCS, false }, - { "InterlockedAnd", "-", "-", "SVM,", "UI,", EShLangPSCS, false }, - { "InterlockedCompareExchange", "-", "-", "SVM,,,>", "UI,,,", EShLangPSCS, false }, - { "InterlockedCompareStore", "-", "-", "SVM,,", "UI,,", EShLangPSCS, false }, - { "InterlockedExchange", "-", "-", "SVM,,>", "UI,,", EShLangPSCS, false }, - { "InterlockedMax", "-", "-", "SVM,,>", "UI,,", EShLangPSCS, false }, - { "InterlockedMax", "-", "-", "SVM,", "UI,", EShLangPSCS, false }, - { "InterlockedMin", "-", "-", "SVM,,>", "UI,,", EShLangPSCS, false }, - { "InterlockedMin", "-", "-", "SVM,", "UI,", EShLangPSCS, false }, - { "InterlockedOr", "-", "-", "SVM,,>", "UI,,", EShLangPSCS, false }, - { "InterlockedOr", "-", "-", "SVM,", "UI,", EShLangPSCS, false }, - { "InterlockedXor", "-", "-", "SVM,,>", "UI,,", EShLangPSCS, false }, - { "InterlockedXor", "-", "-", "SVM,", "UI,", EShLangPSCS, false }, - { "isfinite", nullptr, "B" , "SVM", "F", EShLangAll, false }, - { "isinf", nullptr, "B" , "SVM", "F", EShLangAll, false }, - { "isnan", nullptr, "B" , "SVM", "F", EShLangAll, false }, - { "ldexp", nullptr, nullptr, "SVM,", "F,", EShLangAll, false }, - { "length", "S", "F", "SV", "F", EShLangAll, false }, - { "lerp", nullptr, nullptr, "VM,,", "F,,", EShLangAll, false }, - { "lerp", nullptr, nullptr, "SVM,,S", "F,,", EShLangAll, false }, - { "lit", "V4", "F", "S,,", "F,,", EShLangAll, false }, - { "log", nullptr, nullptr, "SVM", "F", EShLangAll, false }, - { "log10", nullptr, nullptr, "SVM", "F", EShLangAll, false }, - { "log2", nullptr, nullptr, "SVM", "F", EShLangAll, false }, - { "mad", nullptr, nullptr, "SVM,,", "DFUI,,", EShLangAll, false }, - { "max", nullptr, nullptr, "SVM,", "FIU,", EShLangAll, false }, - { "min", nullptr, nullptr, "SVM,", "FIU,", EShLangAll, false }, - { "modf", nullptr, nullptr, "SVM,>", "FIU,", EShLangAll, false }, - { "msad4", "V4", "U", "S,V2,V4", "U,,", EShLangAll, false }, - { "mul", "S", nullptr, "S,S", "FI,", EShLangAll, false }, - { "mul", "V", nullptr, "S,V", "FI,", EShLangAll, false }, - { "mul", "M", nullptr, "S,M", "FI,", EShLangAll, false }, - { "mul", "V", nullptr, "V,S", "FI,", EShLangAll, false }, - { "mul", "S", nullptr, "V,V", "FI,", EShLangAll, false }, - { "mul", "M", nullptr, "M,S", "FI,", EShLangAll, false }, - // mat*mat form of mul is handled in createMatTimesMat() - { "noise", "S", "F", "V", "F", EShLangPS, false }, - { "normalize", nullptr, nullptr, "V", "F", EShLangAll, false }, - { "pow", nullptr, nullptr, "SVM,", "F,", EShLangAll, false }, - { "printf", nullptr, nullptr, "-", "-", EShLangAll, false }, - { "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", "S,S", "S,F", EShLangPS, false }, - { "tex1D", "V4", "F", "S,S,V1,", "S,F,,", EShLangPS, false }, - { "tex1Dbias", "V4", "F", "S,V4", "S,F", EShLangPS, false }, - { "tex1Dgrad", "V4", "F", "S,,,", "S,F,,", EShLangPS, false }, - { "tex1Dlod", "V4", "F", "S,V4", "S,F", EShLangPS, false }, - { "tex1Dproj", "V4", "F", "S,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", EShLangAll, false }, - { "tex2Dproj", "V4", "F", "V2,V4", "S,F", EShLangPS, false }, - { "tex3D", "V4", "F", "V3,", "S,F", EShLangPS, false }, - { "tex3D", "V4", "F", "V3,,,", "S,F,,", EShLangPS, false }, - { "tex3Dbias", "V4", "F", "V3,V4", "S,F", EShLangPS, false }, - { "tex3Dgrad", "V4", "F", "V3,,,", "S,F,,", EShLangPS, false }, - { "tex3Dlod", "V4", "F", "V3,V4", "S,F", EShLangPS, false }, - { "tex3Dproj", "V4", "F", "V3,V4", "S,F", EShLangPS, false }, - { "texCUBE", "V4", "F", "V4,V3", "S,F", EShLangPS, false }, - { "texCUBE", "V4", "F", "V4,V3,,", "S,F,,", EShLangPS, false }, - { "texCUBEbias", "V4", "F", "V4,", "S,F", EShLangPS, false }, - { "texCUBEgrad", "V4", "F", "V4,V3,,", "S,F,,", EShLangPS, false }, - { "texCUBElod", "V4", "F", "V4,", "S,F", EShLangPS, false }, - { "texCUBEproj", "V4", "F", "V4,", "S,F", EShLangPS, false }, - { "transpose", "^M", nullptr, "M", "FUIB", EShLangAll, false }, - { "trunc", nullptr, nullptr, "SVM", "F", EShLangAll, false }, - - // Texture object methods. Return type can be overridden by shader declaration. - // !O = no offset, O = offset - { "Sample", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangPS, true }, - { "Sample", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangPS, true }, - - { "SampleBias", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,S,F,F", EShLangPS, true }, - { "SampleBias", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,S,F,F,I", EShLangPS, true }, - - // TODO: FXC accepts int/uint samplers here. unclear what that means. - { "SampleCmp", /*!O*/ "S", "F", "%@,S,V,S", "FIU,s,F,", EShLangPS, true }, - { "SampleCmp", /* O*/ "S", "F", "%@,S,V,S,V", "FIU,s,F,,I", EShLangPS, true }, - - // TODO: FXC accepts int/uint samplers here. unclear what that means. - { "SampleCmpLevelZero", /*!O*/ "S", "F", "%@,S,V,S", "FIU,s,F,F", EShLangPS, true }, - { "SampleCmpLevelZero", /* O*/ "S", "F", "%@,S,V,S,V", "FIU,s,F,F,I", EShLangPS, true }, - - { "SampleGrad", /*!O*/ "V4", nullptr, "%@,S,V,,", "FIU,S,F,,", EShLangAll, true }, - { "SampleGrad", /* O*/ "V4", nullptr, "%@,S,V,,,", "FIU,S,F,,,I", EShLangAll, true }, - - { "SampleLevel", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,S,F,", EShLangAll, true }, - { "SampleLevel", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,S,F,,I", EShLangAll, true }, - - { "Load", /*!O*/ "V4", nullptr, "%@,V", "FIU,I", EShLangAll, true }, - { "Load", /* O*/ "V4", nullptr, "%@,V,V", "FIU,I,I", EShLangAll, true }, - { "Load", /* +sampleidex*/ "V4", nullptr, "$&,V,S", "FIU,I,I", EShLangAll, true }, - { "Load", /* +samplindex, offset*/ "V4", nullptr, "$&,V,S,V", "FIU,I,I,I", EShLangAll, true }, - - // RWTexture loads - { "Load", "V4", nullptr, "!#,V", "FIU,I", EShLangAll, true }, - // (RW)Buffer loads - { "Load", "V4", nullptr, "~*1,V", "FIU,I", EShLangAll, true }, - - { "Gather", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll, true }, - { "Gather", /* O*/ "V4", nullptr, "%@,S,V,V", "FIU,S,F,I", EShLangAll, true }, - - { "CalculateLevelOfDetail", "S", "F", "%@,S,V", "FUI,S,F", EShLangPS, true }, - { "CalculateLevelOfDetailUnclamped", "S", "F", "%@,S,V", "FUI,S,F", EShLangPS, true }, - - { "GetSamplePosition", "V2", "F", "$&2,S", "FUI,I", EShLangVSPSGS,true }, - - // - // UINT Width - // UINT MipLevel, UINT Width, UINT NumberOfLevels - { "GetDimensions", /* 1D */ "-", "-", "%!~1,>S", "FUI,U", EShLangAll, true }, - { "GetDimensions", /* 1D */ "-", "-", "%!~1,>S", "FUI,F", EShLangAll, true }, - { "GetDimensions", /* 1D */ "-", "-", "%1,S,>S,", "FUI,U,,", EShLangAll, true }, - { "GetDimensions", /* 1D */ "-", "-", "%1,S,>S,", "FUI,U,F,", EShLangAll, true }, - - // UINT Width, UINT Elements - // UINT MipLevel, UINT Width, UINT Elements, UINT NumberOfLevels - { "GetDimensions", /* 1DArray */ "-", "-", "@#1,>S,", "FUI,U,", EShLangAll, true }, - { "GetDimensions", /* 1DArray */ "-", "-", "@#1,>S,", "FUI,F,", EShLangAll, true }, - { "GetDimensions", /* 1DArray */ "-", "-", "@1,S,>S,,", "FUI,U,,,", EShLangAll, true }, - { "GetDimensions", /* 1DArray */ "-", "-", "@1,S,>S,,", "FUI,U,F,,", EShLangAll, true }, - - // UINT Width, UINT Height - // UINT MipLevel, UINT Width, UINT Height, UINT NumberOfLevels - { "GetDimensions", /* 2D */ "-", "-", "%!2,>S,", "FUI,U,", EShLangAll, true }, - { "GetDimensions", /* 2D */ "-", "-", "%!2,>S,", "FUI,F,", EShLangAll, true }, - { "GetDimensions", /* 2D */ "-", "-", "%2,S,>S,,", "FUI,U,,,", EShLangAll, true }, - { "GetDimensions", /* 2D */ "-", "-", "%2,S,>S,,", "FUI,U,F,,", EShLangAll, true }, - - // UINT Width, UINT Height, UINT Elements - // UINT MipLevel, UINT Width, UINT Height, UINT Elements, UINT NumberOfLevels - { "GetDimensions", /* 2DArray */ "-", "-", "@#2,>S,,", "FUI,U,,", EShLangAll, true }, - { "GetDimensions", /* 2DArray */ "-", "-", "@#2,>S,,", "FUI,F,F,F", EShLangAll, true }, - { "GetDimensions", /* 2DArray */ "-", "-", "@2,S,>S,,,", "FUI,U,,,,", EShLangAll, true }, - { "GetDimensions", /* 2DArray */ "-", "-", "@2,S,>S,,,", "FUI,U,F,,,", EShLangAll, true }, - - // UINT Width, UINT Height, UINT Depth - // UINT MipLevel, UINT Width, UINT Height, UINT Depth, UINT NumberOfLevels - { "GetDimensions", /* 3D */ "-", "-", "%!3,>S,,", "FUI,U,,", EShLangAll, true }, - { "GetDimensions", /* 3D */ "-", "-", "%!3,>S,,", "FUI,F,,", EShLangAll, true }, - { "GetDimensions", /* 3D */ "-", "-", "%3,S,>S,,,", "FUI,U,,,,", EShLangAll, true }, - { "GetDimensions", /* 3D */ "-", "-", "%3,S,>S,,,", "FUI,U,F,,,", EShLangAll, true }, - - // UINT Width, UINT Height - // UINT MipLevel, UINT Width, UINT Height, UINT NumberOfLevels - { "GetDimensions", /* Cube */ "-", "-", "%4,>S,", "FUI,U,", EShLangAll, true }, - { "GetDimensions", /* Cube */ "-", "-", "%4,>S,", "FUI,F,", EShLangAll, true }, - { "GetDimensions", /* Cube */ "-", "-", "%4,S,>S,,", "FUI,U,,,", EShLangAll, true }, - { "GetDimensions", /* Cube */ "-", "-", "%4,S,>S,,", "FUI,U,F,,", EShLangAll, true }, - - // UINT Width, UINT Height, UINT Elements - // UINT MipLevel, UINT Width, UINT Height, UINT Elements, UINT NumberOfLevels - { "GetDimensions", /* CubeArray */ "-", "-", "@4,>S,,", "FUI,U,,", EShLangAll, true }, - { "GetDimensions", /* CubeArray */ "-", "-", "@4,>S,,", "FUI,F,,", EShLangAll, true }, - { "GetDimensions", /* CubeArray */ "-", "-", "@4,S,>S,,,", "FUI,U,,,,", EShLangAll, true }, - { "GetDimensions", /* CubeArray */ "-", "-", "@4,S,>S,,,", "FUI,U,F,,,", EShLangAll, true }, - - // UINT Width, UINT Height, UINT Samples - // UINT Width, UINT Height, UINT Elements, UINT Samples - { "GetDimensions", /* 2DMS */ "-", "-", "$2,>S,,", "FUI,U,,", EShLangAll, true }, - { "GetDimensions", /* 2DMS */ "-", "-", "$2,>S,,", "FUI,U,,", EShLangAll, true }, - { "GetDimensions", /* 2DMSArray */ "-", "-", "&2,>S,,,", "FUI,U,,,", EShLangAll, true }, - { "GetDimensions", /* 2DMSArray */ "-", "-", "&2,>S,,,", "FUI,U,,,", EShLangAll, true }, - - // SM5 texture methods - { "GatherRed", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll, true }, - { "GatherRed", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangAll, true }, - { "GatherRed", /* O, status*/ "V4", nullptr, "%@,S,V,,>S", "FIU,S,F,I,U", EShLangAll, true }, - { "GatherRed", /* O-4 */ "V4", nullptr, "%@,S,V,,,,", "FIU,S,F,I,,,", EShLangAll, true }, - { "GatherRed", /* O-4, status */"V4", nullptr, "%@,S,V,,,,,S", "FIU,S,F,I,,,,U", EShLangAll, true }, - - { "GatherGreen", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll, true }, - { "GatherGreen", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangAll, true }, - { "GatherGreen", /* O, status*/ "V4", nullptr, "%@,S,V,,>S", "FIU,S,F,I,U", EShLangAll, true }, - { "GatherGreen", /* O-4 */ "V4", nullptr, "%@,S,V,,,,", "FIU,S,F,I,,,", EShLangAll, true }, - { "GatherGreen", /* O-4, status */"V4", nullptr, "%@,S,V,,,,,S", "FIU,S,F,I,,,,U", EShLangAll, true }, - - { "GatherBlue", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll, true }, - { "GatherBlue", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangAll, true }, - { "GatherBlue", /* O, status*/ "V4", nullptr, "%@,S,V,,>S", "FIU,S,F,I,U", EShLangAll, true }, - { "GatherBlue", /* O-4 */ "V4", nullptr, "%@,S,V,,,,", "FIU,S,F,I,,,", EShLangAll, true }, - { "GatherBlue", /* O-4, status */"V4", nullptr, "%@,S,V,,,,,S", "FIU,S,F,I,,,,U", EShLangAll, true }, - - { "GatherAlpha", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll, true }, - { "GatherAlpha", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangAll, true }, - { "GatherAlpha", /* O, status*/ "V4", nullptr, "%@,S,V,,>S", "FIU,S,F,I,U", EShLangAll, true }, - { "GatherAlpha", /* O-4 */ "V4", nullptr, "%@,S,V,,,,", "FIU,S,F,I,,,", EShLangAll, true }, - { "GatherAlpha", /* O-4, status */"V4", nullptr, "%@,S,V,,,,,S", "FIU,S,F,I,,,,U", EShLangAll, true }, - - { "GatherCmp", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,s,F,", EShLangAll, true }, - { "GatherCmp", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,s,F,,I", EShLangAll, true }, - { "GatherCmp", /* O, status*/ "V4", nullptr, "%@,S,V,S,V,>S", "FIU,s,F,,I,U", EShLangAll, true }, - { "GatherCmp", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll, true }, - { "GatherCmp", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,V,S","FIU,s,F,,I,,,,U",EShLangAll, true }, - - { "GatherCmpRed", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,s,F,", EShLangAll, true }, - { "GatherCmpRed", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,s,F,,I", EShLangAll, true }, - { "GatherCmpRed", /* O, status*/ "V4", nullptr, "%@,S,V,S,V,>S", "FIU,s,F,,I,U", EShLangAll, true }, - { "GatherCmpRed", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll, true }, - { "GatherCmpRed", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,V,S","FIU,s,F,,I,,,,U",EShLangAll, true }, - - { "GatherCmpGreen", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,s,F,", EShLangAll, true }, - { "GatherCmpGreen", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,s,F,,I", EShLangAll, true }, - { "GatherCmpGreen", /* O, status*/ "V4", nullptr, "%@,S,V,S,V,>S", "FIU,s,F,,I,U", EShLangAll, true }, - { "GatherCmpGreen", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll, true }, - { "GatherCmpGreen", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,,,S","FIU,s,F,,I,,,,U",EShLangAll, true }, - - { "GatherCmpBlue", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,s,F,", EShLangAll, true }, - { "GatherCmpBlue", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,s,F,,I", EShLangAll, true }, - { "GatherCmpBlue", /* O, status*/ "V4", nullptr, "%@,S,V,S,V,>S", "FIU,s,F,,I,U", EShLangAll, true }, - { "GatherCmpBlue", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll, true }, - { "GatherCmpBlue", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,,,S","FIU,s,F,,I,,,,U",EShLangAll, true }, - - { "GatherCmpAlpha", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,s,F,", EShLangAll, true }, - { "GatherCmpAlpha", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,s,F,,I", EShLangAll, true }, - { "GatherCmpAlpha", /* O, status*/ "V4", nullptr, "%@,S,V,S,V,>S", "FIU,s,F,,I,U", EShLangAll, true }, - { "GatherCmpAlpha", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll, true }, - { "GatherCmpAlpha", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,,,S","FIU,s,F,,I,,,,U",EShLangAll, true }, - - // geometry methods - { "Append", "-", "-", "-", "-", EShLangGS , true }, - { "RestartStrip", "-", "-", "-", "-", EShLangGS , true }, - - // Methods for structurebuffers. TODO: wildcard type matching. - { "Load", nullptr, nullptr, "-", "-", EShLangAll, true }, - { "Load2", nullptr, nullptr, "-", "-", EShLangAll, true }, - { "Load3", nullptr, nullptr, "-", "-", EShLangAll, true }, - { "Load4", nullptr, nullptr, "-", "-", EShLangAll, true }, - { "Store", nullptr, nullptr, "-", "-", EShLangAll, true }, - { "Store2", nullptr, nullptr, "-", "-", EShLangAll, true }, - { "Store3", nullptr, nullptr, "-", "-", EShLangAll, true }, - { "Store4", nullptr, nullptr, "-", "-", EShLangAll, true }, - { "GetDimensions", nullptr, nullptr, "-", "-", EShLangAll, true }, - { "InterlockedAdd", nullptr, nullptr, "-", "-", EShLangAll, true }, - { "InterlockedAnd", nullptr, nullptr, "-", "-", EShLangAll, true }, - { "InterlockedCompareExchange", nullptr, nullptr, "-", "-", EShLangAll, true }, - { "InterlockedCompareStore", nullptr, nullptr, "-", "-", EShLangAll, true }, - { "InterlockedExchange", nullptr, nullptr, "-", "-", EShLangAll, true }, - { "InterlockedMax", nullptr, nullptr, "-", "-", EShLangAll, true }, - { "InterlockedMin", nullptr, nullptr, "-", "-", EShLangAll, true }, - { "InterlockedOr", nullptr, nullptr, "-", "-", EShLangAll, true }, - { "InterlockedXor", nullptr, nullptr, "-", "-", EShLangAll, true }, - { "IncrementCounter", nullptr, nullptr, "-", "-", EShLangAll, true }, - { "DecrementCounter", nullptr, nullptr, "-", "-", EShLangAll, true }, - { "Consume", nullptr, nullptr, "-", "-", EShLangAll, true }, - - // SM 6.0 - - { "WaveIsFirstLane", "S", "B", "-", "-", EShLangPSCS, false}, - { "WaveGetLaneCount", "S", "U", "-", "-", EShLangPSCS, false}, - { "WaveGetLaneIndex", "S", "U", "-", "-", EShLangPSCS, false}, - { "WaveActiveAnyTrue", "S", "B", "S", "B", EShLangPSCS, false}, - { "WaveActiveAllTrue", "S", "B", "S", "B", EShLangPSCS, false}, - { "WaveActiveBallot", "V4", "U", "S", "B", EShLangPSCS, false}, - { "WaveReadLaneAt", nullptr, nullptr, "SV,S", "DFUI,U", EShLangPSCS, false}, - { "WaveReadLaneFirst", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, - { "WaveActiveAllEqual", "S", "B", "SV", "DFUI", EShLangPSCS, false}, - { "WaveActiveAllEqualBool", "S", "B", "S", "B", EShLangPSCS, false}, - { "WaveActiveCountBits", "S", "U", "S", "B", EShLangPSCS, false}, - - { "WaveActiveSum", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, - { "WaveActiveProduct", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, - { "WaveActiveBitAnd", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, - { "WaveActiveBitOr", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, - { "WaveActiveBitXor", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, - { "WaveActiveMin", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, - { "WaveActiveMax", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, - { "WavePrefixSum", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, - { "WavePrefixProduct", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, - { "WavePrefixCountBits", "S", "U", "S", "B", EShLangPSCS, false}, - { "QuadReadAcrossX", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, - { "QuadReadAcrossY", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, - { "QuadReadAcrossDiagonal", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, - { "QuadReadLaneAt", nullptr, nullptr, "SV,S", "DFUI,U", EShLangPSCS, false}, - - // Methods for subpass input objects - { "SubpassLoad", "V4", nullptr, "[", "FIU", EShLangPS, true }, - { "SubpassLoad", "V4", nullptr, "],S", "FIU,I", EShLangPS, true }, - - // Mark end of list, since we want to avoid a range-based for, as some compilers don't handle it yet. - { nullptr, nullptr, nullptr, nullptr, nullptr, 0, false }, - }; - - // Create prototypes for the intrinsics. TODO: Avoid ranged based for until all compilers can handle it. - for (int icount = 0; hlslIntrinsics[icount].name; ++icount) { - const auto& intrinsic = hlslIntrinsics[icount]; - - for (int stage = 0; stage < EShLangCount; ++stage) { // for each stage... - if ((intrinsic.stage & (1< 0 ? std::min(dim0, 3) : dim0; - - s.append(arg > 0 ? ", ": ""); // comma separator if needed - - const char* orderBegin = nthArgOrder; - nthArgOrder = IoParam(s, nthArgOrder); - - // Comma means use the previous argument order and type. - HandleRepeatArg(nthArgOrder, prevArgOrder, orderBegin); - HandleRepeatArg(nthArgType, prevArgType, nthArgType); - - // In case the repeated arg has its own I/O marker - nthArgOrder = IoParam(s, nthArgOrder); - - // arrayed textures have one extra coordinate dimension, except for - // the CalculateLevelOfDetail family. - if (isArrayed && arg == coordArg && !NoArrayCoord(intrinsic.name)) - argDim0++; - - // Some texture methods use an addition arg dimension to hold mip - if (arg == coordArg && mipInCoord) - argDim0++; - - // For textures, the 1D case isn't a 1-vector, but a scalar. - if (isTexture && argDim0 == 1 && arg > 0 && *nthArgOrder == 'V') - nthArgOrder = "S"; - - AppendTypeName(s, nthArgOrder, nthArgType, argDim0, dim1); // Add arguments - } - - s.append(");\n"); // close paren and trailing semicolon - } // dim 1 loop - } // dim 0 loop - } // arg type loop - - // skip over special characters - if (isTexture && isalpha(argOrder[1])) - ++argOrder; - if (isdigit(argOrder[1])) - ++argOrder; - } // arg order loop - - if (intrinsic.stage == EShLangAll) // common builtins are only added once. - break; - } - } - - createMatTimesMat(); // handle this case separately, for convenience - - // printf("Common:\n%s\n", getCommonString().c_str()); - // printf("Frag:\n%s\n", getStageString(EShLangFragment).c_str()); - // printf("Vertex:\n%s\n", getStageString(EShLangVertex).c_str()); - // printf("Geo:\n%s\n", getStageString(EShLangGeometry).c_str()); - // printf("TessCtrl:\n%s\n", getStageString(EShLangTessControl).c_str()); - // printf("TessEval:\n%s\n", getStageString(EShLangTessEvaluation).c_str()); - // printf("Compute:\n%s\n", getStageString(EShLangCompute).c_str()); -} - -// -// Add context-dependent built-in functions and variables that are present -// for the given version and profile. All the results are put into just the -// commonBuiltins, because it is called for just a specific stage. So, -// add stage-specific entries to the commonBuiltins, and only if that stage -// was requested. -// -void TBuiltInParseablesHlsl::initialize(const TBuiltInResource& /*resources*/, int /*version*/, EProfile /*profile*/, - const SpvVersion& /*spvVersion*/, EShLanguage /*language*/) -{ -} - -// -// Finish adding/processing context-independent built-in symbols. -// 1) Programmatically add symbols that could not be added by simple text strings above. -// 2) Map built-in functions to operators, for those that will turn into an operation node -// instead of remaining a function call. -// 3) Tag extension-related symbols added to their base version with their extensions, so -// that if an early version has the extension turned off, there is an error reported on use. -// -void TBuiltInParseablesHlsl::identifyBuiltIns(int /*version*/, EProfile /*profile*/, const SpvVersion& /*spvVersion*/, EShLanguage /*language*/, - TSymbolTable& symbolTable) -{ - // symbolTable.relateToOperator("abort", EOpAbort); - symbolTable.relateToOperator("abs", EOpAbs); - symbolTable.relateToOperator("acos", EOpAcos); - symbolTable.relateToOperator("all", EOpAll); - symbolTable.relateToOperator("AllMemoryBarrier", EOpMemoryBarrier); - symbolTable.relateToOperator("AllMemoryBarrierWithGroupSync", EOpAllMemoryBarrierWithGroupSync); - symbolTable.relateToOperator("any", EOpAny); - symbolTable.relateToOperator("asdouble", EOpAsDouble); - symbolTable.relateToOperator("asfloat", EOpIntBitsToFloat); - symbolTable.relateToOperator("asin", EOpAsin); - symbolTable.relateToOperator("asint", EOpFloatBitsToInt); - symbolTable.relateToOperator("asuint", EOpFloatBitsToUint); - symbolTable.relateToOperator("atan", EOpAtan); - symbolTable.relateToOperator("atan2", EOpAtan); - symbolTable.relateToOperator("ceil", EOpCeil); - // symbolTable.relateToOperator("CheckAccessFullyMapped"); - symbolTable.relateToOperator("clamp", EOpClamp); - symbolTable.relateToOperator("clip", EOpClip); - symbolTable.relateToOperator("cos", EOpCos); - symbolTable.relateToOperator("cosh", EOpCosh); - symbolTable.relateToOperator("countbits", EOpBitCount); - symbolTable.relateToOperator("cross", EOpCross); - symbolTable.relateToOperator("D3DCOLORtoUBYTE4", EOpD3DCOLORtoUBYTE4); - symbolTable.relateToOperator("ddx", EOpDPdx); - symbolTable.relateToOperator("ddx_coarse", EOpDPdxCoarse); - symbolTable.relateToOperator("ddx_fine", EOpDPdxFine); - symbolTable.relateToOperator("ddy", EOpDPdy); - symbolTable.relateToOperator("ddy_coarse", EOpDPdyCoarse); - symbolTable.relateToOperator("ddy_fine", EOpDPdyFine); - symbolTable.relateToOperator("degrees", EOpDegrees); - symbolTable.relateToOperator("determinant", EOpDeterminant); - symbolTable.relateToOperator("DeviceMemoryBarrier", EOpDeviceMemoryBarrier); - symbolTable.relateToOperator("DeviceMemoryBarrierWithGroupSync", EOpDeviceMemoryBarrierWithGroupSync); - symbolTable.relateToOperator("distance", EOpDistance); - symbolTable.relateToOperator("dot", EOpDot); - symbolTable.relateToOperator("dst", EOpDst); - // symbolTable.relateToOperator("errorf", EOpErrorf); - symbolTable.relateToOperator("EvaluateAttributeAtCentroid", EOpInterpolateAtCentroid); - symbolTable.relateToOperator("EvaluateAttributeAtSample", EOpInterpolateAtSample); - symbolTable.relateToOperator("EvaluateAttributeSnapped", EOpEvaluateAttributeSnapped); - symbolTable.relateToOperator("exp", EOpExp); - symbolTable.relateToOperator("exp2", EOpExp2); - symbolTable.relateToOperator("f16tof32", EOpF16tof32); - symbolTable.relateToOperator("f32tof16", EOpF32tof16); - symbolTable.relateToOperator("faceforward", EOpFaceForward); - symbolTable.relateToOperator("firstbithigh", EOpFindMSB); - symbolTable.relateToOperator("firstbitlow", EOpFindLSB); - symbolTable.relateToOperator("floor", EOpFloor); - symbolTable.relateToOperator("fma", EOpFma); - symbolTable.relateToOperator("fmod", EOpMod); - symbolTable.relateToOperator("frac", EOpFract); - symbolTable.relateToOperator("frexp", EOpFrexp); - symbolTable.relateToOperator("fwidth", EOpFwidth); - // symbolTable.relateToOperator("GetRenderTargetSampleCount"); - // symbolTable.relateToOperator("GetRenderTargetSamplePosition"); - symbolTable.relateToOperator("GroupMemoryBarrier", EOpWorkgroupMemoryBarrier); - symbolTable.relateToOperator("GroupMemoryBarrierWithGroupSync", EOpWorkgroupMemoryBarrierWithGroupSync); - symbolTable.relateToOperator("InterlockedAdd", EOpInterlockedAdd); - symbolTable.relateToOperator("InterlockedAnd", EOpInterlockedAnd); - symbolTable.relateToOperator("InterlockedCompareExchange", EOpInterlockedCompareExchange); - symbolTable.relateToOperator("InterlockedCompareStore", EOpInterlockedCompareStore); - symbolTable.relateToOperator("InterlockedExchange", EOpInterlockedExchange); - symbolTable.relateToOperator("InterlockedMax", EOpInterlockedMax); - symbolTable.relateToOperator("InterlockedMin", EOpInterlockedMin); - symbolTable.relateToOperator("InterlockedOr", EOpInterlockedOr); - symbolTable.relateToOperator("InterlockedXor", EOpInterlockedXor); - symbolTable.relateToOperator("isfinite", EOpIsFinite); - symbolTable.relateToOperator("isinf", EOpIsInf); - symbolTable.relateToOperator("isnan", EOpIsNan); - symbolTable.relateToOperator("ldexp", EOpLdexp); - symbolTable.relateToOperator("length", EOpLength); - symbolTable.relateToOperator("lerp", EOpMix); - symbolTable.relateToOperator("lit", EOpLit); - symbolTable.relateToOperator("log", EOpLog); - symbolTable.relateToOperator("log10", EOpLog10); - symbolTable.relateToOperator("log2", EOpLog2); - symbolTable.relateToOperator("mad", EOpFma); - symbolTable.relateToOperator("max", EOpMax); - symbolTable.relateToOperator("min", EOpMin); - symbolTable.relateToOperator("modf", EOpModf); - // symbolTable.relateToOperator("msad4", EOpMsad4); - symbolTable.relateToOperator("mul", EOpGenMul); - // symbolTable.relateToOperator("noise", EOpNoise); // TODO: check return type - symbolTable.relateToOperator("normalize", EOpNormalize); - symbolTable.relateToOperator("pow", EOpPow); - symbolTable.relateToOperator("printf", EOpDebugPrintf); - // symbolTable.relateToOperator("Process2DQuadTessFactorsAvg"); - // symbolTable.relateToOperator("Process2DQuadTessFactorsMax"); - // symbolTable.relateToOperator("Process2DQuadTessFactorsMin"); - // symbolTable.relateToOperator("ProcessIsolineTessFactors"); - // symbolTable.relateToOperator("ProcessQuadTessFactorsAvg"); - // symbolTable.relateToOperator("ProcessQuadTessFactorsMax"); - // symbolTable.relateToOperator("ProcessQuadTessFactorsMin"); - // symbolTable.relateToOperator("ProcessTriTessFactorsAvg"); - // symbolTable.relateToOperator("ProcessTriTessFactorsMax"); - // symbolTable.relateToOperator("ProcessTriTessFactorsMin"); - symbolTable.relateToOperator("radians", EOpRadians); - symbolTable.relateToOperator("rcp", EOpRcp); - symbolTable.relateToOperator("reflect", EOpReflect); - symbolTable.relateToOperator("refract", EOpRefract); - symbolTable.relateToOperator("reversebits", EOpBitFieldReverse); - symbolTable.relateToOperator("round", EOpRound); - symbolTable.relateToOperator("rsqrt", EOpInverseSqrt); - symbolTable.relateToOperator("saturate", EOpSaturate); - symbolTable.relateToOperator("sign", EOpSign); - symbolTable.relateToOperator("sin", EOpSin); - symbolTable.relateToOperator("sincos", EOpSinCos); - symbolTable.relateToOperator("sinh", EOpSinh); - symbolTable.relateToOperator("smoothstep", EOpSmoothStep); - symbolTable.relateToOperator("sqrt", EOpSqrt); - symbolTable.relateToOperator("step", EOpStep); - symbolTable.relateToOperator("tan", EOpTan); - symbolTable.relateToOperator("tanh", EOpTanh); - symbolTable.relateToOperator("tex1D", EOpTexture); - symbolTable.relateToOperator("tex1Dbias", EOpTextureBias); - symbolTable.relateToOperator("tex1Dgrad", EOpTextureGrad); - symbolTable.relateToOperator("tex1Dlod", EOpTextureLod); - symbolTable.relateToOperator("tex1Dproj", EOpTextureProj); - symbolTable.relateToOperator("tex2D", EOpTexture); - symbolTable.relateToOperator("tex2Dbias", EOpTextureBias); - symbolTable.relateToOperator("tex2Dgrad", EOpTextureGrad); - symbolTable.relateToOperator("tex2Dlod", EOpTextureLod); - symbolTable.relateToOperator("tex2Dproj", EOpTextureProj); - symbolTable.relateToOperator("tex3D", EOpTexture); - symbolTable.relateToOperator("tex3Dbias", EOpTextureBias); - symbolTable.relateToOperator("tex3Dgrad", EOpTextureGrad); - symbolTable.relateToOperator("tex3Dlod", EOpTextureLod); - symbolTable.relateToOperator("tex3Dproj", EOpTextureProj); - symbolTable.relateToOperator("texCUBE", EOpTexture); - symbolTable.relateToOperator("texCUBEbias", EOpTextureBias); - symbolTable.relateToOperator("texCUBEgrad", EOpTextureGrad); - symbolTable.relateToOperator("texCUBElod", EOpTextureLod); - symbolTable.relateToOperator("texCUBEproj", EOpTextureProj); - symbolTable.relateToOperator("transpose", EOpTranspose); - symbolTable.relateToOperator("trunc", EOpTrunc); - - // Texture methods - symbolTable.relateToOperator(BUILTIN_PREFIX "Sample", EOpMethodSample); - symbolTable.relateToOperator(BUILTIN_PREFIX "SampleBias", EOpMethodSampleBias); - symbolTable.relateToOperator(BUILTIN_PREFIX "SampleCmp", EOpMethodSampleCmp); - symbolTable.relateToOperator(BUILTIN_PREFIX "SampleCmpLevelZero", EOpMethodSampleCmpLevelZero); - symbolTable.relateToOperator(BUILTIN_PREFIX "SampleGrad", EOpMethodSampleGrad); - symbolTable.relateToOperator(BUILTIN_PREFIX "SampleLevel", EOpMethodSampleLevel); - symbolTable.relateToOperator(BUILTIN_PREFIX "Load", EOpMethodLoad); - symbolTable.relateToOperator(BUILTIN_PREFIX "GetDimensions", EOpMethodGetDimensions); - symbolTable.relateToOperator(BUILTIN_PREFIX "GetSamplePosition", EOpMethodGetSamplePosition); - symbolTable.relateToOperator(BUILTIN_PREFIX "Gather", EOpMethodGather); - symbolTable.relateToOperator(BUILTIN_PREFIX "CalculateLevelOfDetail", EOpMethodCalculateLevelOfDetail); - symbolTable.relateToOperator(BUILTIN_PREFIX "CalculateLevelOfDetailUnclamped", EOpMethodCalculateLevelOfDetailUnclamped); - - // Structure buffer methods (excluding associations already made above for texture methods w/ same name) - symbolTable.relateToOperator(BUILTIN_PREFIX "Load2", EOpMethodLoad2); - symbolTable.relateToOperator(BUILTIN_PREFIX "Load3", EOpMethodLoad3); - symbolTable.relateToOperator(BUILTIN_PREFIX "Load4", EOpMethodLoad4); - symbolTable.relateToOperator(BUILTIN_PREFIX "Store", EOpMethodStore); - symbolTable.relateToOperator(BUILTIN_PREFIX "Store2", EOpMethodStore2); - symbolTable.relateToOperator(BUILTIN_PREFIX "Store3", EOpMethodStore3); - symbolTable.relateToOperator(BUILTIN_PREFIX "Store4", EOpMethodStore4); - symbolTable.relateToOperator(BUILTIN_PREFIX "IncrementCounter", EOpMethodIncrementCounter); - symbolTable.relateToOperator(BUILTIN_PREFIX "DecrementCounter", EOpMethodDecrementCounter); - // Append is also a GS method: we don't add it twice - symbolTable.relateToOperator(BUILTIN_PREFIX "Consume", EOpMethodConsume); - - symbolTable.relateToOperator(BUILTIN_PREFIX "InterlockedAdd", EOpInterlockedAdd); - symbolTable.relateToOperator(BUILTIN_PREFIX "InterlockedAnd", EOpInterlockedAnd); - symbolTable.relateToOperator(BUILTIN_PREFIX "InterlockedCompareExchange", EOpInterlockedCompareExchange); - symbolTable.relateToOperator(BUILTIN_PREFIX "InterlockedCompareStore", EOpInterlockedCompareStore); - symbolTable.relateToOperator(BUILTIN_PREFIX "InterlockedExchange", EOpInterlockedExchange); - symbolTable.relateToOperator(BUILTIN_PREFIX "InterlockedMax", EOpInterlockedMax); - symbolTable.relateToOperator(BUILTIN_PREFIX "InterlockedMin", EOpInterlockedMin); - symbolTable.relateToOperator(BUILTIN_PREFIX "InterlockedOr", EOpInterlockedOr); - symbolTable.relateToOperator(BUILTIN_PREFIX "InterlockedXor", EOpInterlockedXor); - - // SM5 Texture methods - symbolTable.relateToOperator(BUILTIN_PREFIX "GatherRed", EOpMethodGatherRed); - symbolTable.relateToOperator(BUILTIN_PREFIX "GatherGreen", EOpMethodGatherGreen); - symbolTable.relateToOperator(BUILTIN_PREFIX "GatherBlue", EOpMethodGatherBlue); - symbolTable.relateToOperator(BUILTIN_PREFIX "GatherAlpha", EOpMethodGatherAlpha); - symbolTable.relateToOperator(BUILTIN_PREFIX "GatherCmp", EOpMethodGatherCmpRed); // alias - symbolTable.relateToOperator(BUILTIN_PREFIX "GatherCmpRed", EOpMethodGatherCmpRed); - symbolTable.relateToOperator(BUILTIN_PREFIX "GatherCmpGreen", EOpMethodGatherCmpGreen); - symbolTable.relateToOperator(BUILTIN_PREFIX "GatherCmpBlue", EOpMethodGatherCmpBlue); - symbolTable.relateToOperator(BUILTIN_PREFIX "GatherCmpAlpha", EOpMethodGatherCmpAlpha); - - // GS methods - symbolTable.relateToOperator(BUILTIN_PREFIX "Append", EOpMethodAppend); - symbolTable.relateToOperator(BUILTIN_PREFIX "RestartStrip", EOpMethodRestartStrip); - - // Wave ops - symbolTable.relateToOperator("WaveIsFirstLane", EOpSubgroupElect); - symbolTable.relateToOperator("WaveGetLaneCount", EOpWaveGetLaneCount); - symbolTable.relateToOperator("WaveGetLaneIndex", EOpWaveGetLaneIndex); - symbolTable.relateToOperator("WaveActiveAnyTrue", EOpSubgroupAny); - symbolTable.relateToOperator("WaveActiveAllTrue", EOpSubgroupAll); - symbolTable.relateToOperator("WaveActiveBallot", EOpSubgroupBallot); - symbolTable.relateToOperator("WaveReadLaneFirst", EOpSubgroupBroadcastFirst); - symbolTable.relateToOperator("WaveReadLaneAt", EOpSubgroupShuffle); - symbolTable.relateToOperator("WaveActiveAllEqual", EOpSubgroupAllEqual); - symbolTable.relateToOperator("WaveActiveAllEqualBool", EOpSubgroupAllEqual); - symbolTable.relateToOperator("WaveActiveCountBits", EOpWaveActiveCountBits); - symbolTable.relateToOperator("WaveActiveSum", EOpSubgroupAdd); - symbolTable.relateToOperator("WaveActiveProduct", EOpSubgroupMul); - symbolTable.relateToOperator("WaveActiveBitAnd", EOpSubgroupAnd); - symbolTable.relateToOperator("WaveActiveBitOr", EOpSubgroupOr); - symbolTable.relateToOperator("WaveActiveBitXor", EOpSubgroupXor); - symbolTable.relateToOperator("WaveActiveMin", EOpSubgroupMin); - symbolTable.relateToOperator("WaveActiveMax", EOpSubgroupMax); - symbolTable.relateToOperator("WavePrefixSum", EOpSubgroupInclusiveAdd); - symbolTable.relateToOperator("WavePrefixProduct", EOpSubgroupInclusiveMul); - symbolTable.relateToOperator("WavePrefixCountBits", EOpWavePrefixCountBits); - symbolTable.relateToOperator("QuadReadAcrossX", EOpSubgroupQuadSwapHorizontal); - symbolTable.relateToOperator("QuadReadAcrossY", EOpSubgroupQuadSwapVertical); - symbolTable.relateToOperator("QuadReadAcrossDiagonal", EOpSubgroupQuadSwapDiagonal); - symbolTable.relateToOperator("QuadReadLaneAt", EOpSubgroupQuadBroadcast); - - // Subpass input methods - symbolTable.relateToOperator(BUILTIN_PREFIX "SubpassLoad", EOpSubpassLoad); - symbolTable.relateToOperator(BUILTIN_PREFIX "SubpassLoadMS", EOpSubpassLoadMS); -} - -// -// Add context-dependent (resource-specific) built-ins not handled by the above. These -// would be ones that need to be programmatically added because they cannot -// be added by simple text strings. For these, also -// 1) Map built-in functions to operators, for those that will turn into an operation node -// instead of remaining a function call. -// 2) Tag extension-related symbols added to their base version with their extensions, so -// that if an early version has the extension turned off, there is an error reported on use. -// -void TBuiltInParseablesHlsl::identifyBuiltIns(int /*version*/, EProfile /*profile*/, const SpvVersion& /*spvVersion*/, EShLanguage /*language*/, - TSymbolTable& /*symbolTable*/, const TBuiltInResource& /*resources*/) -{ -} - -} // end namespace glslang diff --git a/deps/glslang/glslang/HLSL/hlslParseables.h b/deps/glslang/glslang/HLSL/hlslParseables.h deleted file mode 100644 index a4aef6c3..00000000 --- a/deps/glslang/glslang/HLSL/hlslParseables.h +++ /dev/null @@ -1,64 +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 3Dlabs Inc. Ltd. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -// - -#ifndef _HLSLPARSEABLES_INCLUDED_ -#define _HLSLPARSEABLES_INCLUDED_ - -#include "../MachineIndependent/Initialize.h" - -namespace glslang { - -// -// This is an HLSL specific derivation of TBuiltInParseables. See comment -// above TBuiltInParseables for details. -// -class TBuiltInParseablesHlsl : public TBuiltInParseables { -public: - POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator()) - TBuiltInParseablesHlsl(); - void initialize(int version, EProfile, const SpvVersion& spvVersion); - void initialize(const TBuiltInResource& resources, int version, EProfile, const SpvVersion& spvVersion, EShLanguage); - - void identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TSymbolTable& symbolTable); - - void identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TSymbolTable& symbolTable, const TBuiltInResource &resources); - -private: - void createMatTimesMat(); -}; - -} // end namespace glslang - -#endif // _HLSLPARSEABLES_INCLUDED_ diff --git a/deps/glslang/glslang/HLSL/hlslScanContext.cpp b/deps/glslang/glslang/HLSL/hlslScanContext.cpp deleted file mode 100644 index fc62672f..00000000 --- a/deps/glslang/glslang/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 "../Include/Types.h" -#include "../MachineIndependent/SymbolTable.h" -#include "../MachineIndependent/ParseHelper.h" -#include "hlslScanContext.h" -#include "hlslTokens.h" - -// preprocessor includes -#include "../MachineIndependent/preprocessor/PpContext.h" -#include "../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/glslang/HLSL/hlslScanContext.h b/deps/glslang/glslang/HLSL/hlslScanContext.h deleted file mode 100644 index 3b191e48..00000000 --- a/deps/glslang/glslang/HLSL/hlslScanContext.h +++ /dev/null @@ -1,109 +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. -// - -// -// This holds context specific to the HLSL scanner, which -// sits between the preprocessor scanner and HLSL parser. -// - -#ifndef HLSLSCANCONTEXT_H_ -#define HLSLSCANCONTEXT_H_ - -#include "../MachineIndependent/ParseHelper.h" -#include "hlslTokens.h" - -namespace glslang { - -class TPpContext; -class TPpToken; - - -// -// Everything needed to fully describe a token. -// -struct HlslToken { - HlslToken() : string(nullptr) { loc.init(); } - TSourceLoc loc; // location of token in the source - EHlslTokenClass tokenClass; // what kind of token it is - union { // what data the token holds - glslang::TString *string; // for identifiers - int i; // for literals - unsigned int u; - bool b; - double d; - }; -}; - -// -// The state of scanning and translating raw tokens to slightly richer -// semantics, like knowing if an identifier is an existing symbol, or -// user-defined type. -// -class HlslScanContext { -public: - HlslScanContext(TParseContextBase& parseContext, TPpContext& ppContext) - : parseContext(parseContext), ppContext(ppContext) { } - virtual ~HlslScanContext() { } - - static void fillInKeywordMap(); - static void deleteKeywordMap(); - - void tokenize(HlslToken&); - glslang::TBuiltInVariable mapSemantic(const char*); - -protected: - HlslScanContext(HlslScanContext&); - HlslScanContext& operator=(HlslScanContext&); - - EHlslTokenClass tokenizeClass(HlslToken&); - EHlslTokenClass tokenizeIdentifier(); - EHlslTokenClass identifierOrType(); - EHlslTokenClass reservedWord(); - EHlslTokenClass identifierOrReserved(bool reserved); - EHlslTokenClass nonreservedKeyword(int version); - - TParseContextBase& parseContext; - TPpContext& ppContext; - TSourceLoc loc; - TPpToken* ppToken; - HlslToken* parserToken; - - const char* tokenText; - EHlslTokenClass keyword; -}; - -} // end namespace glslang - -#endif // HLSLSCANCONTEXT_H_ diff --git a/deps/glslang/glslang/HLSL/hlslTokenStream.cpp b/deps/glslang/glslang/HLSL/hlslTokenStream.cpp deleted file mode 100644 index 5d9311cf..00000000 --- a/deps/glslang/glslang/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/glslang/HLSL/hlslTokenStream.h b/deps/glslang/glslang/HLSL/hlslTokenStream.h deleted file mode 100644 index cb6c9e72..00000000 --- a/deps/glslang/glslang/HLSL/hlslTokenStream.h +++ /dev/null @@ -1,96 +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. -// - -#ifndef HLSLTOKENSTREAM_H_ -#define HLSLTOKENSTREAM_H_ - -#include "hlslScanContext.h" - -namespace glslang { - - class HlslTokenStream { - public: - explicit HlslTokenStream(HlslScanContext& scanner) - : scanner(scanner), preTokenStackSize(0), tokenBufferPos(0) { } - virtual ~HlslTokenStream() { } - - public: - void advanceToken(); - void recedeToken(); - bool acceptTokenClass(EHlslTokenClass); - EHlslTokenClass peek() const; - bool peekTokenClass(EHlslTokenClass) const; - glslang::TBuiltInVariable mapSemantic(const char* upperCase) { return scanner.mapSemantic(upperCase); } - - void pushTokenStream(const TVector* tokens); - void popTokenStream(); - - protected: - HlslToken token; // the token we are currently looking at, but have not yet accepted - - private: - HlslTokenStream(); - HlslTokenStream& operator=(const HlslTokenStream&); - - HlslScanContext& scanner; // lexical scanner, to get next token from source file - TVector*> tokenStreamStack; // for getting the next token from an existing vector of tokens - TVector tokenPosition; - TVector currentTokenStack; - - // This is the number of tokens we can recedeToken() over. - static const int tokenBufferSize = 2; - - // Previously scanned tokens, returned for future advances, - // so logically in front of the token stream. - // Is logically a stack; needs last in last out semantics. - // Currently implemented as a stack of size 2. - HlslToken preTokenStack[tokenBufferSize]; - int preTokenStackSize; - void pushPreToken(const HlslToken&); - HlslToken popPreToken(); - - // Previously scanned tokens, not yet returned for future advances, - // but available for that. - // Is logically a fifo for normal advances, and a stack for recession. - // Currently implemented with an intrinsic size of 2. - HlslToken tokenBuffer[tokenBufferSize]; - int tokenBufferPos; - void pushTokenBuffer(const HlslToken&); - HlslToken popTokenBuffer(); - }; - -} // end namespace glslang - -#endif // HLSLTOKENSTREAM_H_ diff --git a/deps/glslang/glslang/HLSL/hlslTokens.h b/deps/glslang/glslang/HLSL/hlslTokens.h deleted file mode 100644 index 4426bcce..00000000 --- a/deps/glslang/glslang/HLSL/hlslTokens.h +++ /dev/null @@ -1,374 +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 EHLSLTOKENS_H_ -#define EHLSLTOKENS_H_ - -namespace glslang { - -enum EHlslTokenClass { - EHTokNone = 0, - - // qualifiers - EHTokStatic, - EHTokConst, - EHTokSNorm, - EHTokUnorm, - EHTokExtern, - EHTokUniform, - EHTokVolatile, - EHTokPrecise, - EHTokShared, - EHTokGroupShared, - EHTokLinear, - EHTokCentroid, - EHTokNointerpolation, - EHTokNoperspective, - EHTokSample, - EHTokRowMajor, - EHTokColumnMajor, - EHTokPackOffset, - EHTokIn, - EHTokOut, - EHTokInOut, - EHTokLayout, - EHTokGloballyCoherent, - EHTokInline, - - // primitive types - EHTokPoint, - EHTokLine, - EHTokTriangle, - EHTokLineAdj, - EHTokTriangleAdj, - - // stream out types - EHTokPointStream, - EHTokLineStream, - EHTokTriangleStream, - - // Tessellation patches - EHTokInputPatch, - EHTokOutputPatch, - - // template types - EHTokBuffer, - EHTokVector, - EHTokMatrix, - - // scalar types - EHTokVoid, - EHTokString, - EHTokBool, - EHTokInt, - EHTokUint, - EHTokUint64, - EHTokDword, - EHTokHalf, - EHTokFloat, - EHTokDouble, - EHTokMin16float, - EHTokMin10float, - EHTokMin16int, - EHTokMin12int, - EHTokMin16uint, - - // vector types - EHTokBool1, - EHTokBool2, - EHTokBool3, - EHTokBool4, - EHTokFloat1, - EHTokFloat2, - EHTokFloat3, - EHTokFloat4, - EHTokInt1, - EHTokInt2, - EHTokInt3, - EHTokInt4, - EHTokDouble1, - EHTokDouble2, - EHTokDouble3, - EHTokDouble4, - EHTokUint1, - EHTokUint2, - EHTokUint3, - EHTokUint4, - EHTokHalf1, - EHTokHalf2, - EHTokHalf3, - EHTokHalf4, - EHTokMin16float1, - EHTokMin16float2, - EHTokMin16float3, - EHTokMin16float4, - EHTokMin10float1, - EHTokMin10float2, - EHTokMin10float3, - EHTokMin10float4, - EHTokMin16int1, - EHTokMin16int2, - EHTokMin16int3, - EHTokMin16int4, - EHTokMin12int1, - EHTokMin12int2, - EHTokMin12int3, - EHTokMin12int4, - EHTokMin16uint1, - EHTokMin16uint2, - EHTokMin16uint3, - EHTokMin16uint4, - - // matrix types - EHTokInt1x1, - EHTokInt1x2, - EHTokInt1x3, - EHTokInt1x4, - EHTokInt2x1, - EHTokInt2x2, - EHTokInt2x3, - EHTokInt2x4, - EHTokInt3x1, - EHTokInt3x2, - EHTokInt3x3, - EHTokInt3x4, - EHTokInt4x1, - EHTokInt4x2, - EHTokInt4x3, - EHTokInt4x4, - EHTokUint1x1, - EHTokUint1x2, - EHTokUint1x3, - EHTokUint1x4, - EHTokUint2x1, - EHTokUint2x2, - EHTokUint2x3, - EHTokUint2x4, - EHTokUint3x1, - EHTokUint3x2, - EHTokUint3x3, - EHTokUint3x4, - EHTokUint4x1, - EHTokUint4x2, - EHTokUint4x3, - EHTokUint4x4, - EHTokBool1x1, - EHTokBool1x2, - EHTokBool1x3, - EHTokBool1x4, - EHTokBool2x1, - EHTokBool2x2, - EHTokBool2x3, - EHTokBool2x4, - EHTokBool3x1, - EHTokBool3x2, - EHTokBool3x3, - EHTokBool3x4, - EHTokBool4x1, - EHTokBool4x2, - EHTokBool4x3, - EHTokBool4x4, - EHTokFloat1x1, - EHTokFloat1x2, - EHTokFloat1x3, - EHTokFloat1x4, - EHTokFloat2x1, - EHTokFloat2x2, - EHTokFloat2x3, - EHTokFloat2x4, - EHTokFloat3x1, - EHTokFloat3x2, - EHTokFloat3x3, - EHTokFloat3x4, - EHTokFloat4x1, - EHTokFloat4x2, - EHTokFloat4x3, - EHTokFloat4x4, - EHTokHalf1x1, - EHTokHalf1x2, - EHTokHalf1x3, - EHTokHalf1x4, - EHTokHalf2x1, - EHTokHalf2x2, - EHTokHalf2x3, - EHTokHalf2x4, - EHTokHalf3x1, - EHTokHalf3x2, - EHTokHalf3x3, - EHTokHalf3x4, - EHTokHalf4x1, - EHTokHalf4x2, - EHTokHalf4x3, - EHTokHalf4x4, - EHTokDouble1x1, - EHTokDouble1x2, - EHTokDouble1x3, - EHTokDouble1x4, - EHTokDouble2x1, - EHTokDouble2x2, - EHTokDouble2x3, - EHTokDouble2x4, - EHTokDouble3x1, - EHTokDouble3x2, - EHTokDouble3x3, - EHTokDouble3x4, - EHTokDouble4x1, - EHTokDouble4x2, - EHTokDouble4x3, - EHTokDouble4x4, - - // texturing types - EHTokSampler, - EHTokSampler1d, - EHTokSampler2d, - EHTokSampler3d, - EHTokSamplerCube, - EHTokSamplerState, - EHTokSamplerComparisonState, - EHTokTexture, - EHTokTexture1d, - EHTokTexture1darray, - EHTokTexture2d, - EHTokTexture2darray, - EHTokTexture3d, - EHTokTextureCube, - EHTokTextureCubearray, - EHTokTexture2DMS, - EHTokTexture2DMSarray, - EHTokRWTexture1d, - EHTokRWTexture1darray, - EHTokRWTexture2d, - EHTokRWTexture2darray, - EHTokRWTexture3d, - EHTokRWBuffer, - EHTokSubpassInput, - EHTokSubpassInputMS, - - // Structure buffer variants - EHTokAppendStructuredBuffer, - EHTokByteAddressBuffer, - EHTokConsumeStructuredBuffer, - EHTokRWByteAddressBuffer, - EHTokRWStructuredBuffer, - EHTokStructuredBuffer, - EHTokTextureBuffer, - - // variable, user type, ... - EHTokIdentifier, - EHTokClass, - EHTokStruct, - EHTokCBuffer, - EHTokTBuffer, - EHTokTypedef, - EHTokThis, - EHTokNamespace, - EHTokConstantBuffer, - - // constant - EHTokFloat16Constant, - EHTokFloatConstant, - EHTokDoubleConstant, - EHTokIntConstant, - EHTokUintConstant, - EHTokBoolConstant, - EHTokStringConstant, - - // control flow - EHTokFor, - EHTokDo, - EHTokWhile, - EHTokBreak, - EHTokContinue, - EHTokIf, - EHTokElse, - EHTokDiscard, - EHTokReturn, - EHTokSwitch, - EHTokCase, - EHTokDefault, - - // expressions - EHTokLeftOp, - EHTokRightOp, - EHTokIncOp, - EHTokDecOp, - EHTokLeOp, - EHTokGeOp, - EHTokEqOp, - EHTokNeOp, - EHTokAndOp, - EHTokOrOp, - EHTokXorOp, - EHTokAssign, - EHTokMulAssign, - EHTokDivAssign, - EHTokAddAssign, - EHTokModAssign, - EHTokLeftAssign, - EHTokRightAssign, - EHTokAndAssign, - EHTokXorAssign, - EHTokOrAssign, - EHTokSubAssign, - EHTokLeftParen, - EHTokRightParen, - EHTokLeftBracket, - EHTokRightBracket, - EHTokLeftBrace, - EHTokRightBrace, - EHTokDot, - EHTokComma, - EHTokColon, - EHTokColonColon, - EHTokSemicolon, - EHTokBang, - EHTokDash, - EHTokTilde, - EHTokPlus, - EHTokStar, - EHTokSlash, - EHTokPercent, - EHTokLeftAngle, - EHTokRightAngle, - EHTokVerticalBar, - EHTokCaret, - EHTokAmpersand, - EHTokQuestion, -}; - -} // end namespace glslang - -#endif // EHLSLTOKENS_H_ diff --git a/deps/glslang/glslang/HLSL/pch.h b/deps/glslang/glslang/HLSL/pch.h deleted file mode 100644 index 465e7c14..00000000 --- a/deps/glslang/glslang/HLSL/pch.h +++ /dev/null @@ -1,53 +0,0 @@ -#ifndef _PCH_H -#define _PCH_H -// -// Copyright (C) 2018 The Khronos Group 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 "hlslAttributes.h" -#include "hlslGrammar.h" -#include "hlslParseHelper.h" -#include "hlslScanContext.h" - -#include "../MachineIndependent/Scan.h" -#include "../MachineIndependent/preprocessor/PpContext.h" - -#include "../OSDependent/osinclude.h" - -#include -#include -#include -#include -#include - -#endif /* _PCH_H */ diff --git a/deps/glslang/glslang/Include/BaseTypes.h b/deps/glslang/glslang/Include/BaseTypes.h deleted file mode 100644 index c8203c22..00000000 --- a/deps/glslang/glslang/Include/BaseTypes.h +++ /dev/null @@ -1,589 +0,0 @@ -// -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2012-2013 LunarG, Inc. -// Copyright (C) 2017 ARM Limited. -// Modifications Copyright (C) 2020 Advanced Micro Devices, 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: -// -// 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 _BASICTYPES_INCLUDED_ -#define _BASICTYPES_INCLUDED_ - -namespace glslang { - -// -// Basic type. Arrays, vectors, sampler details, etc., are orthogonal to this. -// -enum TBasicType { - EbtVoid, - EbtFloat, - EbtDouble, - EbtFloat16, - EbtInt8, - EbtUint8, - EbtInt16, - EbtUint16, - EbtInt, - EbtUint, - EbtInt64, - EbtUint64, - EbtBool, - EbtAtomicUint, - EbtSampler, - EbtStruct, - EbtBlock, - EbtAccStruct, - EbtReference, - EbtRayQuery, -#ifndef GLSLANG_WEB - // SPIR-V type defined by spirv_type - EbtSpirvType, -#endif - - // HLSL types that live only temporarily. - EbtString, - - EbtNumTypes -}; - -// -// Storage qualifiers. Should align with different kinds of storage or -// resource or GLSL storage qualifier. Expansion is deprecated. -// -// N.B.: You probably DON'T want to add anything here, but rather just add it -// to the built-in variables. See the comment above TBuiltInVariable. -// -// A new built-in variable will normally be an existing qualifier, like 'in', 'out', etc. -// DO NOT follow the design pattern of, say EvqInstanceId, etc. -// -enum TStorageQualifier { - EvqTemporary, // For temporaries (within a function), read/write - EvqGlobal, // For globals read/write - EvqConst, // User-defined constant values, will be semantically constant and constant folded - EvqVaryingIn, // pipeline input, read only, also supercategory for all built-ins not included in this enum (see TBuiltInVariable) - EvqVaryingOut, // pipeline output, read/write, also supercategory for all built-ins not included in this enum (see TBuiltInVariable) - EvqUniform, // read only, shared with app - EvqBuffer, // read/write, shared with app - EvqShared, // compute shader's read/write 'shared' qualifier -#ifndef GLSLANG_WEB - EvqSpirvStorageClass, // spirv_storage_class -#endif - - EvqPayload, - EvqPayloadIn, - EvqHitAttr, - EvqCallableData, - EvqCallableDataIn, - - // parameters - EvqIn, // also, for 'in' in the grammar before we know if it's a pipeline input or an 'in' parameter - EvqOut, // also, for 'out' in the grammar before we know if it's a pipeline output or an 'out' parameter - EvqInOut, - EvqConstReadOnly, // input; also other read-only types having neither a constant value nor constant-value semantics - - // built-ins read by vertex shader - EvqVertexId, - EvqInstanceId, - - // built-ins written by vertex shader - EvqPosition, - EvqPointSize, - EvqClipVertex, - - // built-ins read by fragment shader - EvqFace, - EvqFragCoord, - EvqPointCoord, - - // built-ins written by fragment shader - EvqFragColor, - EvqFragDepth, - - // end of list - EvqLast -}; - -// -// Subcategories of the TStorageQualifier, simply to give a direct mapping -// between built-in variable names and an numerical value (the enum). -// -// For backward compatibility, there is some redundancy between the -// TStorageQualifier and these. Existing members should both be maintained accurately. -// However, any new built-in variable (and any existing non-redundant one) -// must follow the pattern that the specific built-in is here, and only its -// general qualifier is in TStorageQualifier. -// -// Something like gl_Position, which is sometimes 'in' and sometimes 'out' -// shows up as two different built-in variables in a single stage, but -// only has a single enum in TBuiltInVariable, so both the -// TStorageQualifier and the TBuitinVariable are needed to distinguish -// between them. -// -enum TBuiltInVariable { - EbvNone, - EbvNumWorkGroups, - EbvWorkGroupSize, - EbvWorkGroupId, - EbvLocalInvocationId, - EbvGlobalInvocationId, - EbvLocalInvocationIndex, - EbvNumSubgroups, - EbvSubgroupID, - EbvSubGroupSize, - EbvSubGroupInvocation, - EbvSubGroupEqMask, - EbvSubGroupGeMask, - EbvSubGroupGtMask, - EbvSubGroupLeMask, - EbvSubGroupLtMask, - EbvSubgroupSize2, - EbvSubgroupInvocation2, - EbvSubgroupEqMask2, - EbvSubgroupGeMask2, - EbvSubgroupGtMask2, - EbvSubgroupLeMask2, - EbvSubgroupLtMask2, - EbvVertexId, - EbvInstanceId, - EbvVertexIndex, - EbvInstanceIndex, - EbvBaseVertex, - EbvBaseInstance, - EbvDrawId, - EbvPosition, - EbvPointSize, - EbvClipVertex, - EbvClipDistance, - EbvCullDistance, - EbvNormal, - EbvVertex, - EbvMultiTexCoord0, - EbvMultiTexCoord1, - EbvMultiTexCoord2, - EbvMultiTexCoord3, - EbvMultiTexCoord4, - EbvMultiTexCoord5, - EbvMultiTexCoord6, - EbvMultiTexCoord7, - EbvFrontColor, - EbvBackColor, - EbvFrontSecondaryColor, - EbvBackSecondaryColor, - EbvTexCoord, - EbvFogFragCoord, - EbvInvocationId, - EbvPrimitiveId, - EbvLayer, - EbvViewportIndex, - EbvPatchVertices, - EbvTessLevelOuter, - EbvTessLevelInner, - EbvBoundingBox, - EbvTessCoord, - EbvColor, - EbvSecondaryColor, - EbvFace, - EbvFragCoord, - EbvPointCoord, - EbvFragColor, - EbvFragData, - EbvFragDepth, - EbvFragStencilRef, - EbvSampleId, - EbvSamplePosition, - EbvSampleMask, - EbvHelperInvocation, - - EbvBaryCoordNoPersp, - EbvBaryCoordNoPerspCentroid, - EbvBaryCoordNoPerspSample, - EbvBaryCoordSmooth, - EbvBaryCoordSmoothCentroid, - EbvBaryCoordSmoothSample, - EbvBaryCoordPullModel, - - EbvViewIndex, - EbvDeviceIndex, - - EbvShadingRateKHR, - EbvPrimitiveShadingRateKHR, - - EbvFragSizeEXT, - EbvFragInvocationCountEXT, - - EbvSecondaryFragDataEXT, - EbvSecondaryFragColorEXT, - - EbvViewportMaskNV, - EbvSecondaryPositionNV, - EbvSecondaryViewportMaskNV, - EbvPositionPerViewNV, - EbvViewportMaskPerViewNV, - EbvFragFullyCoveredNV, - EbvFragmentSizeNV, - EbvInvocationsPerPixelNV, - // ray tracing - EbvLaunchId, - EbvLaunchSize, - EbvInstanceCustomIndex, - EbvGeometryIndex, - EbvWorldRayOrigin, - EbvWorldRayDirection, - EbvObjectRayOrigin, - EbvObjectRayDirection, - EbvRayTmin, - EbvRayTmax, - EbvHitT, - EbvHitKind, - EbvObjectToWorld, - EbvObjectToWorld3x4, - EbvWorldToObject, - EbvWorldToObject3x4, - EbvIncomingRayFlags, - EbvCurrentRayTimeNV, - // barycentrics - EbvBaryCoordNV, - EbvBaryCoordNoPerspNV, - // mesh shaders - EbvTaskCountNV, - EbvPrimitiveCountNV, - EbvPrimitiveIndicesNV, - EbvClipDistancePerViewNV, - EbvCullDistancePerViewNV, - EbvLayerPerViewNV, - EbvMeshViewCountNV, - EbvMeshViewIndicesNV, - - // sm builtins - EbvWarpsPerSM, - EbvSMCount, - EbvWarpID, - EbvSMID, - - // 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 -}; - -// In this enum, order matters; users can assume higher precision is a bigger value -// and EpqNone is 0. -enum TPrecisionQualifier { - EpqNone = 0, - EpqLow, - EpqMedium, - EpqHigh -}; - -#ifdef GLSLANG_WEB -__inline const char* GetStorageQualifierString(TStorageQualifier q) { return ""; } -__inline const char* GetPrecisionQualifierString(TPrecisionQualifier p) { return ""; } -#else -// These will show up in error messages -__inline const char* GetStorageQualifierString(TStorageQualifier q) -{ - switch (q) { - case EvqTemporary: return "temp"; break; - case EvqGlobal: return "global"; break; - case EvqConst: return "const"; break; - case EvqConstReadOnly: return "const (read only)"; break; -#ifndef GLSLANG_WEB - case EvqSpirvStorageClass: return "spirv_storage_class"; break; -#endif - case EvqVaryingIn: return "in"; break; - case EvqVaryingOut: return "out"; break; - case EvqUniform: return "uniform"; break; - case EvqBuffer: return "buffer"; break; - case EvqShared: return "shared"; break; - case EvqIn: return "in"; break; - case EvqOut: return "out"; break; - case EvqInOut: return "inout"; break; - case EvqVertexId: return "gl_VertexId"; break; - case EvqInstanceId: return "gl_InstanceId"; break; - case EvqPosition: return "gl_Position"; break; - case EvqPointSize: return "gl_PointSize"; break; - case EvqClipVertex: return "gl_ClipVertex"; break; - case EvqFace: return "gl_FrontFacing"; break; - case EvqFragCoord: return "gl_FragCoord"; break; - case EvqPointCoord: return "gl_PointCoord"; break; - case EvqFragColor: return "fragColor"; break; - case EvqFragDepth: return "gl_FragDepth"; break; - case EvqPayload: return "rayPayloadNV"; break; - case EvqPayloadIn: return "rayPayloadInNV"; break; - case EvqHitAttr: return "hitAttributeNV"; break; - case EvqCallableData: return "callableDataNV"; break; - case EvqCallableDataIn: return "callableDataInNV"; break; - default: return "unknown qualifier"; - } -} - -__inline const char* GetBuiltInVariableString(TBuiltInVariable v) -{ - switch (v) { - case EbvNone: return ""; - case EbvNumWorkGroups: return "NumWorkGroups"; - case EbvWorkGroupSize: return "WorkGroupSize"; - case EbvWorkGroupId: return "WorkGroupID"; - case EbvLocalInvocationId: return "LocalInvocationID"; - case EbvGlobalInvocationId: return "GlobalInvocationID"; - case EbvLocalInvocationIndex: return "LocalInvocationIndex"; - case EbvNumSubgroups: return "NumSubgroups"; - case EbvSubgroupID: return "SubgroupID"; - case EbvSubGroupSize: return "SubGroupSize"; - case EbvSubGroupInvocation: return "SubGroupInvocation"; - case EbvSubGroupEqMask: return "SubGroupEqMask"; - case EbvSubGroupGeMask: return "SubGroupGeMask"; - case EbvSubGroupGtMask: return "SubGroupGtMask"; - case EbvSubGroupLeMask: return "SubGroupLeMask"; - case EbvSubGroupLtMask: return "SubGroupLtMask"; - case EbvSubgroupSize2: return "SubgroupSize"; - case EbvSubgroupInvocation2: return "SubgroupInvocationID"; - case EbvSubgroupEqMask2: return "SubgroupEqMask"; - case EbvSubgroupGeMask2: return "SubgroupGeMask"; - case EbvSubgroupGtMask2: return "SubgroupGtMask"; - case EbvSubgroupLeMask2: return "SubgroupLeMask"; - case EbvSubgroupLtMask2: return "SubgroupLtMask"; - case EbvVertexId: return "VertexId"; - case EbvInstanceId: return "InstanceId"; - case EbvVertexIndex: return "VertexIndex"; - case EbvInstanceIndex: return "InstanceIndex"; - case EbvBaseVertex: return "BaseVertex"; - case EbvBaseInstance: return "BaseInstance"; - case EbvDrawId: return "DrawId"; - case EbvPosition: return "Position"; - case EbvPointSize: return "PointSize"; - case EbvClipVertex: return "ClipVertex"; - case EbvClipDistance: return "ClipDistance"; - case EbvCullDistance: return "CullDistance"; - case EbvNormal: return "Normal"; - case EbvVertex: return "Vertex"; - case EbvMultiTexCoord0: return "MultiTexCoord0"; - case EbvMultiTexCoord1: return "MultiTexCoord1"; - case EbvMultiTexCoord2: return "MultiTexCoord2"; - case EbvMultiTexCoord3: return "MultiTexCoord3"; - case EbvMultiTexCoord4: return "MultiTexCoord4"; - case EbvMultiTexCoord5: return "MultiTexCoord5"; - case EbvMultiTexCoord6: return "MultiTexCoord6"; - case EbvMultiTexCoord7: return "MultiTexCoord7"; - case EbvFrontColor: return "FrontColor"; - case EbvBackColor: return "BackColor"; - case EbvFrontSecondaryColor: return "FrontSecondaryColor"; - case EbvBackSecondaryColor: return "BackSecondaryColor"; - case EbvTexCoord: return "TexCoord"; - case EbvFogFragCoord: return "FogFragCoord"; - case EbvInvocationId: return "InvocationID"; - case EbvPrimitiveId: return "PrimitiveID"; - case EbvLayer: return "Layer"; - case EbvViewportIndex: return "ViewportIndex"; - case EbvPatchVertices: return "PatchVertices"; - case EbvTessLevelOuter: return "TessLevelOuter"; - case EbvTessLevelInner: return "TessLevelInner"; - case EbvBoundingBox: return "BoundingBox"; - case EbvTessCoord: return "TessCoord"; - case EbvColor: return "Color"; - case EbvSecondaryColor: return "SecondaryColor"; - case EbvFace: return "Face"; - case EbvFragCoord: return "FragCoord"; - case EbvPointCoord: return "PointCoord"; - 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"; - - case EbvBaryCoordNoPersp: return "BaryCoordNoPersp"; - case EbvBaryCoordNoPerspCentroid: return "BaryCoordNoPerspCentroid"; - case EbvBaryCoordNoPerspSample: return "BaryCoordNoPerspSample"; - case EbvBaryCoordSmooth: return "BaryCoordSmooth"; - case EbvBaryCoordSmoothCentroid: return "BaryCoordSmoothCentroid"; - case EbvBaryCoordSmoothSample: return "BaryCoordSmoothSample"; - case EbvBaryCoordPullModel: return "BaryCoordPullModel"; - - case EbvViewIndex: return "ViewIndex"; - case EbvDeviceIndex: return "DeviceIndex"; - - case EbvFragSizeEXT: return "FragSizeEXT"; - case EbvFragInvocationCountEXT: return "FragInvocationCountEXT"; - - case EbvSecondaryFragDataEXT: return "SecondaryFragDataEXT"; - case EbvSecondaryFragColorEXT: return "SecondaryFragColorEXT"; - - case EbvViewportMaskNV: return "ViewportMaskNV"; - case EbvSecondaryPositionNV: return "SecondaryPositionNV"; - case EbvSecondaryViewportMaskNV: return "SecondaryViewportMaskNV"; - case EbvPositionPerViewNV: return "PositionPerViewNV"; - case EbvViewportMaskPerViewNV: return "ViewportMaskPerViewNV"; - case EbvFragFullyCoveredNV: return "FragFullyCoveredNV"; - case EbvFragmentSizeNV: return "FragmentSizeNV"; - case EbvInvocationsPerPixelNV: return "InvocationsPerPixelNV"; - case EbvLaunchId: return "LaunchIdNV"; - case EbvLaunchSize: return "LaunchSizeNV"; - case EbvInstanceCustomIndex: return "InstanceCustomIndexNV"; - case EbvGeometryIndex: return "GeometryIndexEXT"; - case EbvWorldRayOrigin: return "WorldRayOriginNV"; - case EbvWorldRayDirection: return "WorldRayDirectionNV"; - case EbvObjectRayOrigin: return "ObjectRayOriginNV"; - case EbvObjectRayDirection: return "ObjectRayDirectionNV"; - case EbvRayTmin: return "ObjectRayTminNV"; - case EbvRayTmax: return "ObjectRayTmaxNV"; - case EbvHitT: return "HitTNV"; - case EbvHitKind: return "HitKindNV"; - case EbvIncomingRayFlags: return "IncomingRayFlagsNV"; - case EbvObjectToWorld: return "ObjectToWorldNV"; - case EbvWorldToObject: return "WorldToObjectNV"; - case EbvCurrentRayTimeNV: return "CurrentRayTimeNV"; - - case EbvBaryCoordNV: return "BaryCoordNV"; - case EbvBaryCoordNoPerspNV: return "BaryCoordNoPerspNV"; - - case EbvTaskCountNV: return "TaskCountNV"; - case EbvPrimitiveCountNV: return "PrimitiveCountNV"; - case EbvPrimitiveIndicesNV: return "PrimitiveIndicesNV"; - case EbvClipDistancePerViewNV: return "ClipDistancePerViewNV"; - case EbvCullDistancePerViewNV: return "CullDistancePerViewNV"; - case EbvLayerPerViewNV: return "LayerPerViewNV"; - case EbvMeshViewCountNV: return "MeshViewCountNV"; - case EbvMeshViewIndicesNV: return "MeshViewIndicesNV"; - - case EbvWarpsPerSM: return "WarpsPerSMNV"; - case EbvSMCount: return "SMCountNV"; - case EbvWarpID: return "WarpIDNV"; - case EbvSMID: return "SMIDNV"; - - case EbvShadingRateKHR: return "ShadingRateKHR"; - case EbvPrimitiveShadingRateKHR: return "PrimitiveShadingRateKHR"; - - default: return "unknown built-in variable"; - } -} - -__inline const char* GetPrecisionQualifierString(TPrecisionQualifier p) -{ - switch (p) { - case EpqNone: return ""; break; - case EpqLow: return "lowp"; break; - case EpqMedium: return "mediump"; break; - case EpqHigh: return "highp"; break; - default: return "unknown precision qualifier"; - } -} -#endif - -__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/Include/Common.h b/deps/glslang/glslang/Include/Common.h deleted file mode 100644 index 9042a1aa..00000000 --- a/deps/glslang/glslang/Include/Common.h +++ /dev/null @@ -1,340 +0,0 @@ -// -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2012-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 _COMMON_INCLUDED_ -#define _COMMON_INCLUDED_ - -#include -#include -#ifdef _MSC_VER -#include -#else -#include -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#if defined(__ANDROID__) || (defined(_MSC_VER) && _MSC_VER < 1700) -#include -namespace std { -template -std::string to_string(const T& val) { - std::ostringstream os; - os << val; - return os.str(); -} -} -#endif - -#if (defined(_MSC_VER) && _MSC_VER < 1900 /*vs2015*/) || 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 */ -#ifdef _MSC_VER - #pragma warning(disable : 4786) // Don't warn about too long identifiers - #pragma warning(disable : 4514) // unused inline method - #pragma warning(disable : 4201) // nameless union -#endif - -#include "PoolAlloc.h" - -// -// Put POOL_ALLOCATOR_NEW_DELETE in base classes to make them use this scheme. -// -#define POOL_ALLOCATOR_NEW_DELETE(A) \ - void* operator new(size_t s) { return (A).allocate(s); } \ - void* operator new(size_t, void *_Where) { return (_Where); } \ - void operator delete(void*) { } \ - void operator delete(void *, void *) { } \ - void* operator new[](size_t s) { return (A).allocate(s); } \ - void* operator new[](size_t, void *_Where) { return (_Where); } \ - void operator delete[](void*) { } \ - void operator delete[](void *, void *) { } - -namespace glslang { - - // - // Pool version of string. - // - typedef pool_allocator TStringAllocator; - typedef std::basic_string , TStringAllocator> TString; - -} // end namespace glslang - -// Repackage the std::hash for use by unordered map/set with a TString key. -namespace std { - - template<> struct hash { - std::size_t operator()(const glslang::TString& s) const - { - const unsigned _FNV_offset_basis = 2166136261U; - const unsigned _FNV_prime = 16777619U; - unsigned _Val = _FNV_offset_basis; - size_t _Count = s.size(); - const char* _First = s.c_str(); - for (size_t _Next = 0; _Next < _Count; ++_Next) - { - _Val ^= (unsigned)_First[_Next]; - _Val *= _FNV_prime; - } - - return _Val; - } - }; -} - -namespace glslang { - -inline TString* NewPoolTString(const char* s) -{ - void* memory = GetThreadPoolAllocator().allocate(sizeof(TString)); - return new(memory) TString(s); -} - -template inline T* NewPoolObject(T*) -{ - return new(GetThreadPoolAllocator().allocate(sizeof(T))) T; -} - -template inline T* NewPoolObject(T, int instances) -{ - return new(GetThreadPoolAllocator().allocate(instances * sizeof(T))) T[instances]; -} - -// -// Pool allocator versions of vectors, lists, and maps -// -template class TVector : public std::vector > { -public: - POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator()) - - typedef typename std::vector >::size_type size_type; - TVector() : std::vector >() {} - TVector(const pool_allocator& a) : std::vector >(a) {} - TVector(size_type i) : std::vector >(i) {} - TVector(size_type i, const T& val) : std::vector >(i, val) {} -}; - -template class TList : public std::list > { -}; - -template > -class TMap : public std::map > > { -}; - -template , class PRED = std::equal_to > -class TUnorderedMap : public std::unordered_map > > { -}; - -template > -class TSet : public std::set > { -}; - -// -// Persistent string memory. Should only be used for strings that survive -// across compiles/links. -// -typedef std::basic_string TPersistString; - -// -// templatized min and max functions. -// -template T Min(const T a, const T b) { return a < b ? a : b; } -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 || 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 - - // we assume base 10 for all cases - snprintf(text, sizeof(text), "%d", i); - - 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 - { - if (name != nullptr) { - TString qstr = quoteStringName ? ("\"" + *name + "\"") : *name; - std::string ret_str(qstr.c_str()); - return ret_str; - } - return std::to_string((long long)string); - } - const char* getFilename() const - { - if (name == nullptr) - return nullptr; - return name->c_str(); - } - const char* getFilenameStr() const { return name == nullptr ? "" : name->c_str(); } - TString* name; // descriptive name for this string, when a textual name is available, otherwise nullptr - int string; - int line; - int column; -}; - -class TPragmaTable : public TMap { -public: - POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator()) -}; - -const int MaxTokenLength = 1024; - -template bool IsPow2(T powerOf2) -{ - if (powerOf2 <= 0) - return false; - - return (powerOf2 & (powerOf2 - 1)) == 0; -} - -// Round number up to a multiple of the given powerOf2, which is not -// a power, just a number that must be a power of 2. -template void RoundToPow2(T& number, int powerOf2) -{ - assert(IsPow2(powerOf2)); - number = (number + powerOf2 - 1) & ~(powerOf2 - 1); -} - -template bool IsMultipleOfPow2(T number, int powerOf2) -{ - assert(IsPow2(powerOf2)); - return ! (number & (powerOf2 - 1)); -} - -// Returns log2 of an integer power of 2. -// T should be integral. -template int IntLog2(T n) -{ - assert(IsPow2(n)); - int result = 0; - while ((T(1) << result) != n) { - result++; - } - return result; -} - -inline bool IsInfinity(double x) { -#ifdef _MSC_VER - switch (_fpclass(x)) { - case _FPCLASS_NINF: - case _FPCLASS_PINF: - return true; - default: - return false; - } -#else - return std::isinf(x); -#endif -} - -inline 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 -} - -} // end namespace glslang - -#endif // _COMMON_INCLUDED_ diff --git a/deps/glslang/glslang/Include/ConstantUnion.h b/deps/glslang/glslang/Include/ConstantUnion.h deleted file mode 100644 index c4ffb857..00000000 --- a/deps/glslang/glslang/Include/ConstantUnion.h +++ /dev/null @@ -1,974 +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 EbtInt: - if (constant.iConst == iConst) - return true; - - break; - case EbtUint: - if (constant.uConst == uConst) - return true; - - break; - case EbtBool: - if (constant.bConst == bConst) - return true; - - break; - case EbtDouble: - if (constant.dConst == dConst) - return true; - - break; - -#ifndef GLSLANG_WEB - 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 EbtInt64: - if (constant.i64Const == i64Const) - return true; - - break; - case EbtUint64: - if (constant.u64Const == u64Const) - return true; - - break; -#endif - 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 EbtInt: - if (iConst > constant.iConst) - return true; - - return false; - case EbtUint: - if (uConst > constant.uConst) - return true; - - return false; - case EbtDouble: - if (dConst > constant.dConst) - return true; - - return false; -#ifndef GLSLANG_WEB - 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 EbtInt64: - if (i64Const > constant.i64Const) - return true; - - return false; - case EbtUint64: - if (u64Const > constant.u64Const) - return true; - - return false; -#endif - default: - assert(false && "Default missing"); - return false; - } - } - - bool operator<(const TConstUnion& constant) const - { - assert(type == constant.type); - switch (type) { -#ifndef GLSLANG_WEB - 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 EbtInt64: - if (i64Const < constant.i64Const) - return true; - - return false; - case EbtUint64: - if (u64Const < constant.u64Const) - return true; - - return false; -#endif - case EbtDouble: - if (dConst < constant.dConst) - return true; - - return false; - case EbtInt: - if (iConst < constant.iConst) - return true; - - return false; - case EbtUint: - if (uConst < constant.uConst) - 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 EbtUint: returnValue.setUConst(uConst + constant.uConst); break; - case EbtDouble: returnValue.setDConst(dConst + constant.dConst); break; -#ifndef GLSLANG_WEB - case EbtInt8: returnValue.setI8Const(i8Const + constant.i8Const); break; - case EbtInt16: returnValue.setI16Const(i16Const + constant.i16Const); 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 EbtUint64: returnValue.setU64Const(u64Const + constant.u64Const); break; -#endif - 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 EbtDouble: returnValue.setDConst(dConst - constant.dConst); break; -#ifndef GLSLANG_WEB - case EbtInt8: returnValue.setI8Const(i8Const - constant.i8Const); break; - case EbtInt16: returnValue.setI16Const(i16Const - constant.i16Const); 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 EbtUint64: returnValue.setU64Const(u64Const - constant.u64Const); break; -#endif - 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 EbtDouble: returnValue.setDConst(dConst * constant.dConst); break; -#ifndef GLSLANG_WEB - case EbtInt8: returnValue.setI8Const(i8Const * constant.i8Const); break; - case EbtInt16: returnValue.setI16Const(i16Const * constant.i16Const); 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 EbtUint64: returnValue.setU64Const(u64Const * constant.u64Const); break; -#endif - 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; -#ifndef GLSLANG_WEB - case EbtInt8: returnValue.setI8Const(i8Const % constant.i8Const); break; - case EbtInt16: returnValue.setI8Const(i8Const % constant.i16Const); 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 EbtUint64: returnValue.setU64Const(u64Const % constant.u64Const); break; -#endif - default: assert(false && "Default missing"); - } - - return returnValue; - } - - TConstUnion operator>>(const TConstUnion& constant) const - { - TConstUnion returnValue; - switch (type) { -#ifndef GLSLANG_WEB - 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; -#endif - case EbtInt: - switch (constant.type) { - case EbtInt: returnValue.setIConst(iConst >> constant.iConst); break; - case EbtUint: returnValue.setIConst(iConst >> constant.uConst); break; -#ifndef GLSLANG_WEB - 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 EbtInt64: returnValue.setIConst(iConst >> constant.i64Const); break; - case EbtUint64: returnValue.setIConst(iConst >> constant.u64Const); break; -#endif - 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; -#ifndef GLSLANG_WEB - 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 EbtInt64: returnValue.setUConst(uConst >> constant.i64Const); break; - case EbtUint64: returnValue.setUConst(uConst >> constant.u64Const); break; -#endif - default: assert(false && "Default missing"); - } - break; -#ifndef GLSLANG_WEB - 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; -#endif - default: assert(false && "Default missing"); - } - - return returnValue; - } - - TConstUnion operator<<(const TConstUnion& constant) const - { - TConstUnion returnValue; - switch (type) { -#ifndef GLSLANG_WEB - 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 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; -#endif - case EbtInt: - switch (constant.type) { - case EbtInt: returnValue.setIConst(iConst << constant.iConst); break; - case EbtUint: returnValue.setIConst(iConst << constant.uConst); break; -#ifndef GLSLANG_WEB - 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 EbtInt64: returnValue.setIConst(iConst << constant.i64Const); break; - case EbtUint64: returnValue.setIConst(iConst << constant.u64Const); break; -#endif - 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; -#ifndef GLSLANG_WEB - 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 EbtInt64: returnValue.setUConst(uConst << constant.i64Const); break; - case EbtUint64: returnValue.setUConst(uConst << constant.u64Const); break; -#endif - 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; -#ifndef GLSLANG_WEB - 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 EbtInt64: returnValue.setI64Const(i64Const & constant.i64Const); break; - case EbtUint64: returnValue.setU64Const(u64Const & constant.u64Const); break; -#endif - 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; -#ifndef GLSLANG_WEB - 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 EbtInt64: returnValue.setI64Const(i64Const | constant.i64Const); break; - case EbtUint64: returnValue.setU64Const(u64Const | constant.u64Const); break; -#endif - 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; -#ifndef GLSLANG_WEB - 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 EbtInt64: returnValue.setI64Const(i64Const ^ constant.i64Const); break; - case EbtUint64: returnValue.setU64Const(u64Const ^ constant.u64Const); break; -#endif - 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; -#ifndef GLSLANG_WEB - 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 EbtInt64: returnValue.setI64Const(~i64Const); break; - case EbtUint64: returnValue.setU64Const(~u64Const); break; -#endif - 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) = default; - 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/glslang/Include/InfoSink.h b/deps/glslang/glslang/Include/InfoSink.h deleted file mode 100644 index dceb603c..00000000 --- a/deps/glslang/glslang/Include/InfoSink.h +++ /dev/null @@ -1,144 +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 _INFOSINK_INCLUDED_ -#define _INFOSINK_INCLUDED_ - -#include "../Include/Common.h" -#include - -namespace glslang { - -// -// TPrefixType is used to centralize how info log messages start. -// See below. -// -enum TPrefixType { - EPrefixNone, - EPrefixWarning, - EPrefixError, - EPrefixInternalError, - EPrefixUnimplemented, - EPrefixNote -}; - -enum TOutputStream { - ENull = 0, - EDebugger = 0x01, - EStdOut = 0x02, - EString = 0x04, -}; -// -// Encapsulate info logs for all objects that have them. -// -// The methods are a general set of tools for getting a variety of -// messages and types inserted into the log. -// -class TInfoSinkBase { -public: - TInfoSinkBase() : outputStream(4) {} - void erase() { sink.erase(); } - TInfoSinkBase& operator<<(const TPersistString& t) { append(t); return *this; } - TInfoSinkBase& operator<<(char c) { append(1, c); return *this; } - TInfoSinkBase& operator<<(const char* s) { append(s); return *this; } - TInfoSinkBase& operator<<(int n) { append(String(n)); return *this; } - TInfoSinkBase& operator<<(unsigned int n) { append(String(n)); return *this; } - TInfoSinkBase& operator<<(float n) { const int size = 40; char buf[size]; - snprintf(buf, size, (fabs(n) > 1e-8 && fabs(n) < 1e8) || n == 0.0f ? "%f" : "%g", n); - append(buf); - return *this; } - TInfoSinkBase& operator+(const TPersistString& t) { append(t); return *this; } - TInfoSinkBase& operator+(const TString& t) { append(t); return *this; } - TInfoSinkBase& operator<<(const TString& t) { append(t); return *this; } - TInfoSinkBase& operator+(const char* s) { append(s); return *this; } - const char* c_str() const { return sink.c_str(); } - void prefix(TPrefixType message) { - switch(message) { - case EPrefixNone: break; - case EPrefixWarning: append("WARNING: "); break; - case EPrefixError: append("ERROR: "); break; - case EPrefixInternalError: append("INTERNAL ERROR: "); break; - case EPrefixUnimplemented: append("UNIMPLEMENTED: "); break; - case EPrefixNote: append("NOTE: "); break; - default: append("UNKNOWN ERROR: "); break; - } - } - void location(const TSourceLoc& loc) { - const int maxSize = 24; - char locText[maxSize]; - snprintf(locText, maxSize, ":%d", loc.line); - append(loc.getStringNameOrNum(false).c_str()); - append(locText); - append(": "); - } - void message(TPrefixType message, const char* s) { - prefix(message); - append(s); - append("\n"); - } - void message(TPrefixType message, const char* s, const TSourceLoc& loc) { - prefix(message); - location(loc); - append(s); - append("\n"); - } - - void setOutputStream(int output = 4) - { - outputStream = output; - } - -protected: - void append(const char* s); - - void append(int count, char c); - void append(const TPersistString& t); - void append(const TString& t); - - void checkMem(size_t growth) { if (sink.capacity() < sink.size() + growth + 2) - sink.reserve(sink.capacity() + sink.capacity() / 2); } - void appendToStream(const char* s); - TPersistString sink; - int outputStream; -}; - -} // end namespace glslang - -class TInfoSink { -public: - glslang::TInfoSinkBase info; - glslang::TInfoSinkBase debug; -}; - -#endif // _INFOSINK_INCLUDED_ diff --git a/deps/glslang/glslang/Include/InitializeGlobals.h b/deps/glslang/glslang/Include/InitializeGlobals.h deleted file mode 100644 index 95d0a40e..00000000 --- a/deps/glslang/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/glslang/Include/PoolAlloc.h b/deps/glslang/glslang/Include/PoolAlloc.h deleted file mode 100644 index 1f5cac76..00000000 --- a/deps/glslang/glslang/Include/PoolAlloc.h +++ /dev/null @@ -1,318 +0,0 @@ -// -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2012-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 _POOLALLOC_INCLUDED_ -#define _POOLALLOC_INCLUDED_ - -#ifdef _DEBUG -# define GUARD_BLOCKS // define to enable guard block sanity checking -#endif - -// -// This header defines an allocator that can be used to efficiently -// allocate a large number of small requests for heap memory, with the -// intention that they are not individually deallocated, but rather -// collectively deallocated at one time. -// -// This simultaneously -// -// * Makes each individual allocation much more efficient; the -// typical allocation is trivial. -// * Completely avoids the cost of doing individual deallocation. -// * Saves the trouble of tracking down and plugging a large class of leaks. -// -// Individual classes can use this allocator by supplying their own -// new and delete methods. -// -// STL containers can use this allocator by using the pool_allocator -// class as the allocator (second) template argument. -// - -#include -#include -#include - -namespace glslang { - -// If we are using guard blocks, we must track each individual -// allocation. If we aren't using guard blocks, these -// never get instantiated, so won't have any impact. -// - -class TAllocation { -public: - TAllocation(size_t size, unsigned char* mem, TAllocation* prev = 0) : - size(size), mem(mem), prevAlloc(prev) { - // Allocations are bracketed: - // [allocationHeader][initialGuardBlock][userData][finalGuardBlock] - // This would be cleaner with if (guardBlockSize)..., but that - // makes the compiler print warnings about 0 length memsets, - // even with the if() protecting them. -# ifdef GUARD_BLOCKS - memset(preGuard(), guardBlockBeginVal, guardBlockSize); - memset(data(), userDataFill, size); - memset(postGuard(), guardBlockEndVal, guardBlockSize); -# endif - } - - void check() const { - checkGuardBlock(preGuard(), guardBlockBeginVal, "before"); - checkGuardBlock(postGuard(), guardBlockEndVal, "after"); - } - - void checkAllocList() const; - - // Return total size needed to accommodate user buffer of 'size', - // plus our tracking data. - inline static size_t allocationSize(size_t size) { - return size + 2 * guardBlockSize + headerSize(); - } - - // Offset from surrounding buffer to get to user data buffer. - inline static unsigned char* offsetAllocation(unsigned char* m) { - return m + guardBlockSize + headerSize(); - } - -private: - void checkGuardBlock(unsigned char* blockMem, unsigned char val, const char* locText) const; - - // Find offsets to pre and post guard blocks, and user data buffer - unsigned char* preGuard() const { return mem + headerSize(); } - unsigned char* data() const { return preGuard() + guardBlockSize; } - unsigned char* postGuard() const { return data() + size; } - - size_t size; // size of the user data area - unsigned char* mem; // beginning of our allocation (pts to header) - TAllocation* prevAlloc; // prior allocation in the chain - - const static unsigned char guardBlockBeginVal; - const static unsigned char guardBlockEndVal; - const static unsigned char userDataFill; - - const static size_t guardBlockSize; -# ifdef GUARD_BLOCKS - inline static size_t headerSize() { return sizeof(TAllocation); } -# else - inline static size_t headerSize() { return 0; } -# endif -}; - -// -// There are several stacks. One is to track the pushing and popping -// of the user, and not yet implemented. The others are simply a -// repositories of free pages or used pages. -// -// Page stacks are linked together with a simple header at the beginning -// of each allocation obtained from the underlying OS. Multi-page allocations -// are returned to the OS. Individual page allocations are kept for future -// re-use. -// -// The "page size" used is not, nor must it match, the underlying OS -// page size. But, having it be about that size or equal to a set of -// pages is likely most optimal. -// -class TPoolAllocator { -public: - TPoolAllocator(int growthIncrement = 8*1024, int allocationAlignment = 16); - - // - // Don't call the destructor just to free up the memory, call pop() - // - ~TPoolAllocator(); - - // - // Call push() to establish a new place to pop memory too. Does not - // have to be called to get things started. - // - void push(); - - // - // Call pop() to free all memory allocated since the last call to push(), - // or if no last call to push, frees all memory since first allocation. - // - void pop(); - - // - // Call popAll() to free all memory allocated. - // - void popAll(); - - // - // Call allocate() to actually acquire memory. Returns 0 if no memory - // available, otherwise a properly aligned pointer to 'numBytes' of memory. - // - void* allocate(size_t numBytes); - - // - // There is no deallocate. The point of this class is that - // deallocation can be skipped by the user of it, as the model - // of use is to simultaneously deallocate everything at once - // by calling pop(), and to not have to solve memory leak problems. - // - -protected: - friend struct tHeader; - - struct tHeader { - tHeader(tHeader* nextPage, size_t pageCount) : -#ifdef GUARD_BLOCKS - lastAllocation(0), -#endif - nextPage(nextPage), pageCount(pageCount) { } - - ~tHeader() { -#ifdef GUARD_BLOCKS - if (lastAllocation) - lastAllocation->checkAllocList(); -#endif - } - -#ifdef GUARD_BLOCKS - TAllocation* lastAllocation; -#endif - tHeader* nextPage; - size_t pageCount; - }; - - struct tAllocState { - size_t offset; - tHeader* page; - }; - typedef std::vector tAllocStack; - - // Track allocations if and only if we're using guard blocks -#ifndef GUARD_BLOCKS - void* initializeAllocation(tHeader*, unsigned char* memory, size_t) { -#else - void* initializeAllocation(tHeader* block, unsigned char* memory, size_t numBytes) { - new(memory) TAllocation(numBytes, memory, block->lastAllocation); - block->lastAllocation = reinterpret_cast(memory); -#endif - - // This is optimized entirely away if GUARD_BLOCKS is not defined. - return TAllocation::offsetAllocation(memory); - } - - size_t pageSize; // granularity of allocation from the OS - size_t alignment; // all returned allocations will be aligned at - // this granularity, which will be a power of 2 - size_t alignmentMask; - size_t headerSkip; // amount of memory to skip to make room for the - // header (basically, size of header, rounded - // up to make it aligned - size_t currentPageOffset; // next offset in top of inUseList to allocate from - tHeader* freeList; // list of popped memory - tHeader* inUseList; // list of all memory currently being used - tAllocStack stack; // stack of where to allocate from, to partition pool - - int numCalls; // just an interesting statistic - size_t totalBytes; // just an interesting statistic -private: - TPoolAllocator& operator=(const TPoolAllocator&); // don't allow assignment operator - 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. -// -extern TPoolAllocator& GetThreadPoolAllocator(); -void SetThreadPoolAllocator(TPoolAllocator* poolAllocator); - -// -// This STL compatible allocator is intended to be used as the allocator -// parameter to templatized STL containers, like vector and map. -// -// It will use the pools for allocation, and not -// do any deallocation, but will still do destruction. -// -template -class pool_allocator { -public: - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef T *pointer; - typedef const T *const_pointer; - typedef T& reference; - typedef const T& const_reference; - typedef T value_type; - template - struct rebind { - typedef pool_allocator other; - }; - pointer address(reference x) const { return &x; } - const_pointer address(const_reference x) const { return &x; } - - pool_allocator() : allocator(GetThreadPoolAllocator()) { } - pool_allocator(TPoolAllocator& a) : allocator(a) { } - pool_allocator(const pool_allocator& p) : allocator(p.allocator) { } - - template - pool_allocator(const pool_allocator& p) : allocator(p.getAllocator()) { } - - pointer allocate(size_type n) { - return reinterpret_cast(getAllocator().allocate(n * sizeof(T))); } - pointer allocate(size_type n, const void*) { - return reinterpret_cast(getAllocator().allocate(n * sizeof(T))); } - - void deallocate(void*, size_type) { } - void deallocate(pointer, size_type) { } - - pointer _Charalloc(size_t n) { - return reinterpret_cast(getAllocator().allocate(n)); } - - void construct(pointer p, const T& val) { new ((void *)p) T(val); } - void destroy(pointer p) { p->T::~T(); } - - bool operator==(const pool_allocator& rhs) const { return &getAllocator() == &rhs.getAllocator(); } - bool operator!=(const pool_allocator& rhs) const { return &getAllocator() != &rhs.getAllocator(); } - - size_type max_size() const { return static_cast(-1) / sizeof(T); } - size_type max_size(int size) const { return static_cast(-1) / size; } - - TPoolAllocator& getAllocator() const { return allocator; } - - pool_allocator select_on_container_copy_construction() const { return pool_allocator{}; } - -protected: - pool_allocator& operator=(const pool_allocator&) { return *this; } - TPoolAllocator& allocator; -}; - -} // end namespace glslang - -#endif // _POOLALLOC_INCLUDED_ diff --git a/deps/glslang/glslang/Include/ResourceLimits.h b/deps/glslang/glslang/Include/ResourceLimits.h deleted file mode 100644 index b670cf16..00000000 --- a/deps/glslang/glslang/Include/ResourceLimits.h +++ /dev/null @@ -1,150 +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. -// - -#ifndef _RESOURCE_LIMITS_INCLUDED_ -#define _RESOURCE_LIMITS_INCLUDED_ - -struct TLimits { - bool nonInductiveForLoops; - bool whileLoops; - bool doWhileLoops; - bool generalUniformIndexing; - bool generalAttributeMatrixVectorIndexing; - bool generalVaryingIndexing; - bool generalSamplerIndexing; - bool generalVariableIndexing; - bool generalConstantMatrixVectorIndexing; -}; - -struct TBuiltInResource { - int maxLights; - int maxClipPlanes; - int maxTextureUnits; - int maxTextureCoords; - int maxVertexAttribs; - int maxVertexUniformComponents; - int maxVaryingFloats; - int maxVertexTextureImageUnits; - int maxCombinedTextureImageUnits; - int maxTextureImageUnits; - int maxFragmentUniformComponents; - int maxDrawBuffers; - int maxVertexUniformVectors; - int maxVaryingVectors; - int maxFragmentUniformVectors; - int maxVertexOutputVectors; - int maxFragmentInputVectors; - int minProgramTexelOffset; - int maxProgramTexelOffset; - int maxClipDistances; - int maxComputeWorkGroupCountX; - int maxComputeWorkGroupCountY; - int maxComputeWorkGroupCountZ; - int maxComputeWorkGroupSizeX; - int maxComputeWorkGroupSizeY; - int maxComputeWorkGroupSizeZ; - int maxComputeUniformComponents; - int maxComputeTextureImageUnits; - int maxComputeImageUniforms; - int maxComputeAtomicCounters; - int maxComputeAtomicCounterBuffers; - int maxVaryingComponents; - int maxVertexOutputComponents; - int maxGeometryInputComponents; - int maxGeometryOutputComponents; - int maxFragmentInputComponents; - int maxImageUnits; - int maxCombinedImageUnitsAndFragmentOutputs; - int maxCombinedShaderOutputResources; - int maxImageSamples; - int maxVertexImageUniforms; - int maxTessControlImageUniforms; - int maxTessEvaluationImageUniforms; - int maxGeometryImageUniforms; - int maxFragmentImageUniforms; - int maxCombinedImageUniforms; - int maxGeometryTextureImageUnits; - int maxGeometryOutputVertices; - int maxGeometryTotalOutputComponents; - int maxGeometryUniformComponents; - int maxGeometryVaryingComponents; - int maxTessControlInputComponents; - int maxTessControlOutputComponents; - int maxTessControlTextureImageUnits; - int maxTessControlUniformComponents; - int maxTessControlTotalOutputComponents; - int maxTessEvaluationInputComponents; - int maxTessEvaluationOutputComponents; - int maxTessEvaluationTextureImageUnits; - int maxTessEvaluationUniformComponents; - int maxTessPatchComponents; - int maxPatchVertices; - int maxTessGenLevel; - int maxViewports; - int maxVertexAtomicCounters; - int maxTessControlAtomicCounters; - int maxTessEvaluationAtomicCounters; - int maxGeometryAtomicCounters; - int maxFragmentAtomicCounters; - int maxCombinedAtomicCounters; - int maxAtomicCounterBindings; - int maxVertexAtomicCounterBuffers; - int maxTessControlAtomicCounterBuffers; - int maxTessEvaluationAtomicCounterBuffers; - int maxGeometryAtomicCounterBuffers; - int maxFragmentAtomicCounterBuffers; - int maxCombinedAtomicCounterBuffers; - int maxAtomicCounterBufferSize; - int maxTransformFeedbackBuffers; - int maxTransformFeedbackInterleavedComponents; - int maxCullDistances; - int maxCombinedClipAndCullDistances; - int maxSamples; - int maxMeshOutputVerticesNV; - int maxMeshOutputPrimitivesNV; - int maxMeshWorkGroupSizeX_NV; - int maxMeshWorkGroupSizeY_NV; - int maxMeshWorkGroupSizeZ_NV; - int maxTaskWorkGroupSizeX_NV; - int maxTaskWorkGroupSizeY_NV; - int maxTaskWorkGroupSizeZ_NV; - int maxMeshViewCountNV; - int maxDualSourceDrawBuffersEXT; - - TLimits limits; -}; - -#endif // _RESOURCE_LIMITS_INCLUDED_ diff --git a/deps/glslang/glslang/Include/ShHandle.h b/deps/glslang/glslang/Include/ShHandle.h deleted file mode 100644 index df07bd8e..00000000 --- a/deps/glslang/glslang/Include/ShHandle.h +++ /dev/null @@ -1,176 +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 _SHHANDLE_INCLUDED_ -#define _SHHANDLE_INCLUDED_ - -// -// Machine independent part of the compiler private objects -// sent as ShHandle to the driver. -// -// This should not be included by driver code. -// - -#define SH_EXPORTING -#include "../Public/ShaderLang.h" -#include "../MachineIndependent/Versions.h" -#include "InfoSink.h" - -class TCompiler; -class TLinker; -class TUniformMap; - -// -// The base class used to back handles returned to the driver. -// -class TShHandleBase { -public: - 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; -}; - -// -// The base class for the machine dependent linker to derive from -// for managing where uniforms live. -// -class TUniformMap : public TShHandleBase { -public: - TUniformMap() { } - virtual ~TUniformMap() { } - virtual TUniformMap* getAsUniformMap() { return this; } - virtual int getLocation(const char* name) = 0; - virtual TInfoSink& getInfoSink() { return infoSink; } - TInfoSink infoSink; -}; - -class TIntermNode; - -// -// The base class for the machine dependent compiler to derive from -// for managing object code from the compile. -// -class TCompiler : public TShHandleBase { -public: - TCompiler(EShLanguage l, TInfoSink& sink) : infoSink(sink) , language(l), haveValidObjectCode(false) { } - virtual ~TCompiler() { } - EShLanguage getLanguage() { return language; } - virtual TInfoSink& getInfoSink() { return infoSink; } - - virtual bool compile(TIntermNode* root, int version = 0, EProfile profile = ENoProfile) = 0; - - virtual TCompiler* getAsCompiler() { return this; } - virtual bool linkable() { return haveValidObjectCode; } - - TInfoSink& infoSink; -protected: - TCompiler& operator=(TCompiler&); - - EShLanguage language; - bool haveValidObjectCode; -}; - -// -// Link operations are based on a list of compile results... -// -typedef glslang::TVector TCompilerList; -typedef glslang::TVector THandleList; - -// -// The base class for the machine dependent linker to derive from -// to manage the resulting executable. -// - -class TLinker : public TShHandleBase { -public: - TLinker(EShExecutable e, TInfoSink& iSink) : - infoSink(iSink), - executable(e), - haveReturnableObjectCode(false), - appAttributeBindings(0), - fixedAttributeBindings(0), - excludedAttributes(0), - excludedCount(0), - uniformBindings(0) { } - virtual TLinker* getAsLinker() { return this; } - virtual ~TLinker() { } - virtual bool link(TCompilerList&, TUniformMap*) = 0; - virtual bool link(THandleList&) { return false; } - virtual void setAppAttributeBindings(const ShBindingTable* t) { appAttributeBindings = t; } - virtual void setFixedAttributeBindings(const ShBindingTable* t) { fixedAttributeBindings = t; } - virtual void getAttributeBindings(ShBindingTable const **t) const = 0; - virtual void setExcludedAttributes(const int* attributes, int count) { excludedAttributes = attributes; excludedCount = count; } - virtual ShBindingTable* getUniformBindings() const { return uniformBindings; } - virtual const void* getObjectCode() const { return 0; } // a real compiler would be returning object code here - virtual TInfoSink& getInfoSink() { return infoSink; } - TInfoSink& infoSink; -protected: - TLinker& operator=(TLinker&); - EShExecutable executable; - bool haveReturnableObjectCode; // true when objectCode is acceptable to send to driver - - const ShBindingTable* appAttributeBindings; - const ShBindingTable* fixedAttributeBindings; - const int* excludedAttributes; - int excludedCount; - ShBindingTable* uniformBindings; // created by the linker -}; - -// -// This is the interface between the machine independent code -// and the machine dependent code. -// -// The machine dependent code should derive from the classes -// above. Then Construct*() and Delete*() will create and -// destroy the machine dependent objects, which contain the -// above machine independent information. -// -TCompiler* ConstructCompiler(EShLanguage, int); - -TShHandleBase* ConstructLinker(EShExecutable, int); -TShHandleBase* ConstructBindings(); -void DeleteLinker(TShHandleBase*); -void DeleteBindingList(TShHandleBase* bindingList); - -TUniformMap* ConstructUniformMap(); -void DeleteCompiler(TCompiler*); - -void DeleteUniformMap(TUniformMap*); - -#endif // _SHHANDLE_INCLUDED_ diff --git a/deps/glslang/glslang/Include/SpirvIntrinsics.h b/deps/glslang/glslang/Include/SpirvIntrinsics.h deleted file mode 100644 index 3c7d72ce..00000000 --- a/deps/glslang/glslang/Include/SpirvIntrinsics.h +++ /dev/null @@ -1,128 +0,0 @@ -// -// Copyright(C) 2021 Advanced Micro Devices, 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 - -#ifndef GLSLANG_WEB - -// -// GL_EXT_spirv_intrinsics -// -#include "Common.h" - -namespace glslang { - -class TIntermTyped; -class TIntermConstantUnion; -class TType; - -// SPIR-V requirements -struct TSpirvRequirement { - POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator()) - - // capability = [..] - TSet extensions; - // extension = [..] - TSet capabilities; -}; - -// SPIR-V execution modes -struct TSpirvExecutionMode { - POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator()) - - // spirv_execution_mode - TMap> modes; - // spirv_execution_mode_id - TMap > modeIds; -}; - -// SPIR-V decorations -struct TSpirvDecorate { - POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator()) - - // spirv_decorate - TMap > decorates; - // spirv_decorate_id - TMap> decorateIds; - // spirv_decorate_string - TMap > decorateStrings; -}; - -// SPIR-V instruction -struct TSpirvInstruction { - POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator()) - - TSpirvInstruction() { set = ""; id = -1; } - - bool operator==(const TSpirvInstruction& rhs) const { return set == rhs.set && id == rhs.id; } - bool operator!=(const TSpirvInstruction& rhs) const { return !operator==(rhs); } - - // spirv_instruction - TString set; - int id; -}; - -// SPIR-V type parameter -struct TSpirvTypeParameter { - POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator()) - - TSpirvTypeParameter(const TIntermConstantUnion* arg) { constant = arg; } - - bool operator==(const TSpirvTypeParameter& rhs) const { return constant == rhs.constant; } - bool operator!=(const TSpirvTypeParameter& rhs) const { return !operator==(rhs); } - - const TIntermConstantUnion* constant; -}; - -typedef TVector TSpirvTypeParameters; - -// SPIR-V type -struct TSpirvType { - POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator()) - - bool operator==(const TSpirvType& rhs) const - { - return spirvInst == rhs.spirvInst && typeParams == rhs.typeParams; - } - bool operator!=(const TSpirvType& rhs) const { return !operator==(rhs); } - - // spirv_type - TSpirvInstruction spirvInst; - TSpirvTypeParameters typeParams; -}; - -} // end namespace glslang - -#endif // GLSLANG_WEB diff --git a/deps/glslang/glslang/Include/Types.h b/deps/glslang/glslang/Include/Types.h deleted file mode 100644 index 91fcd4eb..00000000 --- a/deps/glslang/glslang/Include/Types.h +++ /dev/null @@ -1,2859 +0,0 @@ -// -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2012-2016 LunarG, Inc. -// Copyright (C) 2015-2016 Google, Inc. -// Copyright (C) 2017 ARM Limited. -// Modifications Copyright (C) 2020 Advanced Micro Devices, 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: -// -// 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 _TYPES_INCLUDED -#define _TYPES_INCLUDED - -#include "../Include/Common.h" -#include "../Include/BaseTypes.h" -#include "../Public/ShaderLang.h" -#include "arrays.h" -#include "SpirvIntrinsics.h" - -#include - -namespace glslang { - -class TIntermAggregate; - -const int GlslangMaxTypeLength = 200; // TODO: need to print block/struct one member per line, so this can stay bounded - -const char* const AnonymousPrefix = "anon@"; // for something like a block whose members can be directly accessed -inline bool IsAnonymous(const TString& name) -{ - return name.compare(0, 5, AnonymousPrefix) == 0; -} - -// -// Details within a sampler type -// -enum TSamplerDim { - EsdNone, - Esd1D, - Esd2D, - Esd3D, - EsdCube, - EsdRect, - EsdBuffer, - EsdSubpass, // goes only with non-sampled image (image is true) - EsdNumDims -}; - -struct TSampler { // misnomer now; includes images, textures without sampler, and textures with sampler - TBasicType type : 8; // type returned by sampler - TSamplerDim dim : 8; - bool arrayed : 1; - bool shadow : 1; - bool ms : 1; - bool image : 1; // image, combined should be false - 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() - -#ifdef GLSLANG_WEB - bool is1D() const { return false; } - bool isBuffer() const { return false; } - bool isRect() const { return false; } - bool isSubpass() const { return false; } - bool isCombined() const { return true; } - bool isImage() const { return false; } - bool isImageClass() const { return false; } - bool isMultiSample() const { return false; } - bool isExternal() const { return false; } - void setExternal(bool e) { } - bool isYuv() const { return false; } -#else - 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< TTypeList; - -typedef TVector TIdentifierList; - -// -// Following are a series of helper enums for managing layouts and qualifiers, -// used for TPublicType, TType, others. -// - -enum TLayoutPacking { - ElpNone, - ElpShared, // default, but different than saying nothing - ElpStd140, - ElpStd430, - ElpPacked, - ElpScalar, - ElpCount // If expanding, see bitfield width below -}; - -enum TLayoutMatrix { - ElmNone, - ElmRowMajor, - ElmColumnMajor, // default, but different than saying nothing - ElmCount // If expanding, see bitfield width below -}; - -// Union of geometry shader and tessellation shader geometry types. -// They don't go into TType, but rather have current state per shader or -// active parser type (TPublicType). -enum TLayoutGeometry { - ElgNone, - ElgPoints, - ElgLines, - ElgLinesAdjacency, - ElgLineStrip, - ElgTriangles, - ElgTrianglesAdjacency, - ElgTriangleStrip, - ElgQuads, - ElgIsolines, -}; - -enum TVertexSpacing { - EvsNone, - EvsEqual, - EvsFractionalEven, - EvsFractionalOdd -}; - -enum TVertexOrder { - EvoNone, - EvoCw, - EvoCcw -}; - -// Note: order matters, as type of format is done by comparison. -enum TLayoutFormat { - ElfNone, - - // Float image - ElfRgba32f, - ElfRgba16f, - ElfR32f, - ElfRgba8, - ElfRgba8Snorm, - - ElfEsFloatGuard, // to help with comparisons - - ElfRg32f, - ElfRg16f, - ElfR11fG11fB10f, - ElfR16f, - ElfRgba16, - ElfRgb10A2, - ElfRg16, - ElfRg8, - ElfR16, - ElfR8, - ElfRgba16Snorm, - ElfRg16Snorm, - ElfRg8Snorm, - ElfR16Snorm, - ElfR8Snorm, - - ElfFloatGuard, // to help with comparisons - - // Int image - ElfRgba32i, - ElfRgba16i, - ElfRgba8i, - ElfR32i, - - ElfEsIntGuard, // to help with comparisons - - ElfRg32i, - ElfRg16i, - ElfRg8i, - ElfR16i, - ElfR8i, - ElfR64i, - - ElfIntGuard, // to help with comparisons - - // Uint image - ElfRgba32ui, - ElfRgba16ui, - ElfRgba8ui, - ElfR32ui, - - ElfEsUintGuard, // to help with comparisons - - ElfRg32ui, - ElfRg16ui, - ElfRgb10a2ui, - ElfRg8ui, - ElfR16ui, - ElfR8ui, - ElfR64ui, - - ElfCount -}; - -enum TLayoutDepth { - EldNone, - EldAny, - EldGreater, - EldLess, - EldUnchanged, - - EldCount -}; - -enum TBlendEquationShift { - // No 'EBlendNone': - // These are used as bit-shift amounts. A mask of such shifts will have type 'int', - // and in that space, 0 means no bits set, or none. In this enum, 0 means (1 << 0), a bit is set. - EBlendMultiply, - EBlendScreen, - EBlendOverlay, - EBlendDarken, - EBlendLighten, - EBlendColordodge, - EBlendColorburn, - EBlendHardlight, - EBlendSoftlight, - EBlendDifference, - EBlendExclusion, - EBlendHslHue, - EBlendHslSaturation, - EBlendHslColor, - EBlendHslLuminosity, - EBlendAllEquations, - - EBlendCount -}; - -enum TInterlockOrdering { - EioNone, - EioPixelInterlockOrdered, - EioPixelInterlockUnordered, - EioSampleInterlockOrdered, - EioSampleInterlockUnordered, - EioShadingRateInterlockOrdered, - EioShadingRateInterlockUnordered, - - EioCount, -}; - -enum TShaderInterface -{ - // Includes both uniform blocks and buffer blocks - EsiUniform = 0, - EsiInput, - EsiOutput, - EsiNone, - - EsiCount -}; - -class TQualifier { -public: - static const int layoutNotSet = -1; - - void clear() - { - precision = EpqNone; - invariant = false; - makeTemporary(); - declaredBuiltIn = EbvNone; -#ifndef GLSLANG_WEB - noContraction = false; - nullInit = false; - spirvByReference = false; - spirvLiteral = false; -#endif - defaultBlock = false; - } - - // drop qualifiers that don't belong in a temporary variable - void makeTemporary() - { - semanticName = nullptr; - storage = EvqTemporary; - builtIn = EbvNone; - clearInterstage(); - clearMemory(); - specConstant = false; - nonUniform = false; - nullInit = false; - defaultBlock = false; - clearLayout(); -#ifndef GLSLANG_WEB - spirvStorageClass = -1; - spirvDecorate = nullptr; - spirvByReference = false; - spirvLiteral = false; -#endif - } - - void clearInterstage() - { - clearInterpolation(); -#ifndef GLSLANG_WEB - patch = false; - sample = false; -#endif - } - - void clearInterpolation() - { - centroid = false; - smooth = false; - flat = false; -#ifndef GLSLANG_WEB - nopersp = false; - explicitInterp = false; - pervertexNV = false; - perPrimitiveNV = false; - perViewNV = false; - perTaskNV = false; -#endif - } - - void clearMemory() - { -#ifndef GLSLANG_WEB - coherent = false; - devicecoherent = false; - queuefamilycoherent = false; - workgroupcoherent = false; - subgroupcoherent = false; - shadercallcoherent = false; - nonprivate = false; - volatil = false; - restrict = false; - readonly = false; - writeonly = false; -#endif - } - - const char* semanticName; - TStorageQualifier storage : 6; - TBuiltInVariable builtIn : 9; - TBuiltInVariable declaredBuiltIn : 9; - static_assert(EbvLast < 256, "need to increase size of TBuiltInVariable bitfields!"); - TPrecisionQualifier precision : 3; - bool invariant : 1; // require canonical treatment for cross-shader invariance - bool centroid : 1; - bool smooth : 1; - bool flat : 1; - // having a constant_id is not sufficient: expressions have no id, but are still specConstant - bool specConstant : 1; - bool nonUniform : 1; - bool explicitOffset : 1; - bool defaultBlock : 1; // default blocks with matching names have structures merged when linking - -#ifdef GLSLANG_WEB - bool isWriteOnly() const { return false; } - bool isReadOnly() const { return false; } - bool isRestrict() const { return false; } - bool isCoherent() const { return false; } - bool isVolatile() const { return false; } - bool isSample() const { return false; } - bool isMemory() const { return false; } - bool isMemoryQualifierImageAndSSBOOnly() const { return false; } - bool bufferReferenceNeedsVulkanMemoryModel() const { return false; } - bool isInterpolation() const { return flat || smooth; } - bool isExplicitInterpolation() const { return false; } - bool isAuxiliary() const { return centroid; } - bool isPatch() const { return false; } - bool isNoContraction() const { return false; } - void setNoContraction() { } - bool isPervertexNV() const { return false; } - void setNullInit() { } - bool isNullInit() const { return false; } - void setSpirvByReference() { } - bool isSpirvByReference() { return false; } - void setSpirvLiteral() { } - bool isSpirvLiteral() { return false; } -#else - bool noContraction: 1; // prevent contraction and reassociation, e.g., for 'precise' keyword, and expressions it affects - bool nopersp : 1; - bool explicitInterp : 1; - bool pervertexNV : 1; - bool perPrimitiveNV : 1; - bool perViewNV : 1; - bool perTaskNV : 1; - bool patch : 1; - bool sample : 1; - bool restrict : 1; - bool readonly : 1; - bool writeonly : 1; - bool coherent : 1; - bool volatil : 1; - bool devicecoherent : 1; - bool queuefamilycoherent : 1; - bool workgroupcoherent : 1; - bool subgroupcoherent : 1; - bool shadercallcoherent : 1; - bool nonprivate : 1; - bool nullInit : 1; - bool spirvByReference : 1; - bool spirvLiteral : 1; - bool isWriteOnly() const { return writeonly; } - bool isReadOnly() const { return readonly; } - bool isRestrict() const { return restrict; } - bool isCoherent() const { return coherent; } - bool isVolatile() const { return volatil; } - bool isSample() const { return sample; } - bool isMemory() const - { - return shadercallcoherent || subgroupcoherent || workgroupcoherent || queuefamilycoherent || devicecoherent || coherent || volatil || restrict || readonly || writeonly || nonprivate; - } - bool isMemoryQualifierImageAndSSBOOnly() const - { - return shadercallcoherent || subgroupcoherent || workgroupcoherent || queuefamilycoherent || devicecoherent || coherent || volatil || restrict || readonly || writeonly; - } - bool bufferReferenceNeedsVulkanMemoryModel() const - { - // include qualifiers that map to load/store availability/visibility/nonprivate memory access operands - return subgroupcoherent || workgroupcoherent || queuefamilycoherent || devicecoherent || coherent || nonprivate; - } - bool isInterpolation() const - { - return flat || smooth || nopersp || explicitInterp; - } - bool isExplicitInterpolation() const - { - return explicitInterp; - } - bool isAuxiliary() const - { - return centroid || patch || sample || pervertexNV; - } - bool isPatch() const { return patch; } - bool isNoContraction() const { return noContraction; } - void setNoContraction() { noContraction = true; } - bool isPervertexNV() const { return pervertexNV; } - void setNullInit() { nullInit = true; } - bool isNullInit() const { return nullInit; } - void setSpirvByReference() { spirvByReference = true; } - bool isSpirvByReference() const { return spirvByReference; } - void setSpirvLiteral() { spirvLiteral = true; } - bool isSpirvLiteral() const { return spirvLiteral; } -#endif - - bool isPipeInput() const - { - switch (storage) { - case EvqVaryingIn: - case EvqFragCoord: - case EvqPointCoord: - case EvqFace: - case EvqVertexId: - case EvqInstanceId: - return true; - default: - return false; - } - } - - bool isPipeOutput() const - { - switch (storage) { - case EvqPosition: - case EvqPointSize: - case EvqClipVertex: - case EvqVaryingOut: - case EvqFragColor: - case EvqFragDepth: - return true; - default: - return false; - } - } - - bool isParamInput() const - { - switch (storage) { - case EvqIn: - case EvqInOut: - case EvqConstReadOnly: - return true; - default: - return false; - } - } - - bool isParamOutput() const - { - switch (storage) { - case EvqOut: - case EvqInOut: - return true; - default: - return false; - } - } - - bool isUniformOrBuffer() const - { - switch (storage) { - case EvqUniform: - case EvqBuffer: - return true; - default: - return false; - } - } - - bool isUniform() const - { - switch (storage) { - case EvqUniform: - return true; - default: - return false; - } - } - - bool isIo() const - { - switch (storage) { - case EvqUniform: - case EvqBuffer: - case EvqVaryingIn: - case EvqFragCoord: - case EvqPointCoord: - case EvqFace: - case EvqVertexId: - case EvqInstanceId: - case EvqPosition: - case EvqPointSize: - case EvqClipVertex: - case EvqVaryingOut: - case EvqFragColor: - case EvqFragDepth: - return true; - default: - return false; - } - } - - // non-built-in symbols that might link between compilation units - bool isLinkable() const - { - switch (storage) { - case EvqGlobal: - case EvqVaryingIn: - case EvqVaryingOut: - case EvqUniform: - case EvqBuffer: - case EvqShared: - return true; - default: - return false; - } - } - - TBlockStorageClass getBlockStorage() const { - if (storage == EvqUniform && !isPushConstant()) { - return EbsUniform; - } - else if (storage == EvqUniform) { - return EbsPushConstant; - } - else if (storage == EvqBuffer) { - return EbsStorageBuffer; - } - return EbsNone; - } - - void setBlockStorage(TBlockStorageClass newBacking) { -#ifndef GLSLANG_WEB - layoutPushConstant = (newBacking == EbsPushConstant); -#endif - switch (newBacking) { - case EbsUniform : - if (layoutPacking == ElpStd430) { - // std430 would not be valid - layoutPacking = ElpStd140; - } - storage = EvqUniform; - break; - case EbsStorageBuffer : - storage = EvqBuffer; - break; -#ifndef GLSLANG_WEB - case EbsPushConstant : - storage = EvqUniform; - layoutSet = TQualifier::layoutSetEnd; - layoutBinding = TQualifier::layoutBindingEnd; - break; -#endif - default: - break; - } - } - -#ifdef GLSLANG_WEB - bool isPerView() const { return false; } - bool isTaskMemory() const { return false; } - bool isArrayedIo(EShLanguage language) const { return false; } -#else - bool isPerPrimitive() const { return perPrimitiveNV; } - bool isPerView() const { return perViewNV; } - bool isTaskMemory() const { return perTaskNV; } - bool isAnyPayload() const { - return storage == EvqPayload || storage == EvqPayloadIn; - } - bool isAnyCallable() const { - return storage == EvqCallableData || storage == EvqCallableDataIn; - } - - // True if this type of IO is supposed to be arrayed with extra level for per-vertex data - bool isArrayedIo(EShLanguage language) const - { - switch (language) { - case EShLangGeometry: - return isPipeInput(); - case EShLangTessControl: - return ! patch && (isPipeInput() || isPipeOutput()); - case EShLangTessEvaluation: - return ! patch && isPipeInput(); - case EShLangFragment: - return pervertexNV && isPipeInput(); - case EShLangMeshNV: - return ! perTaskNV && isPipeOutput(); - - default: - return false; - } - } -#endif - - // Implementing an embedded layout-qualifier class here, since C++ can't have a real class bitfield - void clearLayout() // all layout - { - clearUniformLayout(); - -#ifndef GLSLANG_WEB - layoutPushConstant = false; - layoutBufferReference = false; - layoutPassthrough = false; - layoutViewportRelative = false; - // -2048 as the default value indicating layoutSecondaryViewportRelative is not set - layoutSecondaryViewportRelativeOffset = -2048; - layoutShaderRecord = false; - layoutBufferReferenceAlign = layoutBufferReferenceAlignEnd; - layoutFormat = ElfNone; -#endif - - clearInterstageLayout(); - - layoutSpecConstantId = layoutSpecConstantIdEnd; - } - void clearInterstageLayout() - { - layoutLocation = layoutLocationEnd; - layoutComponent = layoutComponentEnd; -#ifndef GLSLANG_WEB - layoutIndex = layoutIndexEnd; - clearStreamLayout(); - clearXfbLayout(); -#endif - } - -#ifndef GLSLANG_WEB - void clearStreamLayout() - { - layoutStream = layoutStreamEnd; - } - void clearXfbLayout() - { - layoutXfbBuffer = layoutXfbBufferEnd; - layoutXfbStride = layoutXfbStrideEnd; - layoutXfbOffset = layoutXfbOffsetEnd; - } -#endif - - bool hasNonXfbLayout() const - { - return hasUniformLayout() || - hasAnyLocation() || - hasStream() || - hasFormat() || - isShaderRecord() || - isPushConstant() || - hasBufferReference(); - } - bool hasLayout() const - { - return hasNonXfbLayout() || - hasXfb(); - } - - TLayoutMatrix layoutMatrix : 3; - TLayoutPacking layoutPacking : 4; - int layoutOffset; - int layoutAlign; - - unsigned int layoutLocation : 12; - static const unsigned int layoutLocationEnd = 0xFFF; - - unsigned int layoutComponent : 3; - static const unsigned int layoutComponentEnd = 4; - - unsigned int layoutSet : 7; - static const unsigned int layoutSetEnd = 0x3F; - - unsigned int layoutBinding : 16; - static const unsigned int layoutBindingEnd = 0xFFFF; - - unsigned int layoutIndex : 8; - static const unsigned int layoutIndexEnd = 0xFF; - - unsigned int layoutStream : 8; - static const unsigned int layoutStreamEnd = 0xFF; - - unsigned int layoutXfbBuffer : 4; - static const unsigned int layoutXfbBufferEnd = 0xF; - - unsigned int layoutXfbStride : 14; - static const unsigned int layoutXfbStrideEnd = 0x3FFF; - - unsigned int layoutXfbOffset : 13; - static const unsigned int layoutXfbOffsetEnd = 0x1FFF; - - unsigned int layoutAttachment : 8; // for input_attachment_index - static const unsigned int layoutAttachmentEnd = 0XFF; - - unsigned int layoutSpecConstantId : 11; - static const unsigned int layoutSpecConstantIdEnd = 0x7FF; - -#ifndef GLSLANG_WEB - // stored as log2 of the actual alignment value - unsigned int layoutBufferReferenceAlign : 6; - static const unsigned int layoutBufferReferenceAlignEnd = 0x3F; - - TLayoutFormat layoutFormat : 8; - - bool layoutPushConstant; - bool layoutBufferReference; - bool layoutPassthrough; - bool layoutViewportRelative; - int layoutSecondaryViewportRelativeOffset; - bool layoutShaderRecord; - - // GL_EXT_spirv_intrinsics - int spirvStorageClass; - TSpirvDecorate* spirvDecorate; -#endif - - bool hasUniformLayout() const - { - return hasMatrix() || - hasPacking() || - hasOffset() || - hasBinding() || - hasSet() || - hasAlign(); - } - void clearUniformLayout() // only uniform specific - { - layoutMatrix = ElmNone; - layoutPacking = ElpNone; - layoutOffset = layoutNotSet; - layoutAlign = layoutNotSet; - - layoutSet = layoutSetEnd; - layoutBinding = layoutBindingEnd; -#ifndef GLSLANG_WEB - layoutAttachment = layoutAttachmentEnd; -#endif - } - - bool hasMatrix() const - { - return layoutMatrix != ElmNone; - } - bool hasPacking() const - { - return layoutPacking != ElpNone; - } - bool hasAlign() const - { - return layoutAlign != layoutNotSet; - } - bool hasAnyLocation() const - { - return hasLocation() || - hasComponent() || - hasIndex(); - } - bool hasLocation() const - { - return layoutLocation != layoutLocationEnd; - } - bool hasSet() const - { - return layoutSet != layoutSetEnd; - } - bool hasBinding() const - { - return layoutBinding != layoutBindingEnd; - } -#ifdef GLSLANG_WEB - bool hasOffset() const { return false; } - bool isNonPerspective() const { return false; } - bool hasIndex() const { return false; } - unsigned getIndex() const { return 0; } - bool hasComponent() const { return false; } - bool hasStream() const { return false; } - bool hasFormat() const { return false; } - bool hasXfb() const { return false; } - bool hasXfbBuffer() const { return false; } - bool hasXfbStride() const { return false; } - bool hasXfbOffset() const { return false; } - bool hasAttachment() const { return false; } - TLayoutFormat getFormat() const { return ElfNone; } - bool isPushConstant() const { return false; } - bool isShaderRecord() const { return false; } - bool hasBufferReference() const { return false; } - bool hasBufferReferenceAlign() const { return false; } - bool isNonUniform() const { return false; } -#else - bool hasOffset() const - { - return layoutOffset != layoutNotSet; - } - bool isNonPerspective() const { return nopersp; } - bool hasIndex() const - { - return layoutIndex != layoutIndexEnd; - } - unsigned getIndex() const { return layoutIndex; } - bool hasComponent() const - { - return layoutComponent != layoutComponentEnd; - } - bool hasStream() const - { - return layoutStream != layoutStreamEnd; - } - bool hasFormat() const - { - return layoutFormat != ElfNone; - } - bool hasXfb() const - { - return hasXfbBuffer() || - hasXfbStride() || - hasXfbOffset(); - } - bool hasXfbBuffer() const - { - return layoutXfbBuffer != layoutXfbBufferEnd; - } - bool hasXfbStride() const - { - return layoutXfbStride != layoutXfbStrideEnd; - } - bool hasXfbOffset() const - { - return layoutXfbOffset != layoutXfbOffsetEnd; - } - bool hasAttachment() const - { - return layoutAttachment != layoutAttachmentEnd; - } - TLayoutFormat getFormat() const { return layoutFormat; } - bool isPushConstant() const { return layoutPushConstant; } - bool isShaderRecord() const { return layoutShaderRecord; } - bool hasBufferReference() const { return layoutBufferReference; } - bool hasBufferReferenceAlign() const - { - return layoutBufferReferenceAlign != layoutBufferReferenceAlignEnd; - } - bool isNonUniform() const - { - return nonUniform; - } - - // GL_EXT_spirv_intrinsics - bool hasSprivDecorate() const { return spirvDecorate != nullptr; } - void setSpirvDecorate(int decoration, const TIntermAggregate* args = nullptr); - void setSpirvDecorateId(int decoration, const TIntermAggregate* args); - void setSpirvDecorateString(int decoration, const TIntermAggregate* args); - const TSpirvDecorate& getSpirvDecorate() const { assert(spirvDecorate); return *spirvDecorate; } - TSpirvDecorate& getSpirvDecorate() { assert(spirvDecorate); return *spirvDecorate; } - TString getSpirvDecorateQualifierString() const; -#endif - bool hasSpecConstantId() const - { - // Not the same thing as being a specialization constant, this - // is just whether or not it was declared with an ID. - return layoutSpecConstantId != layoutSpecConstantIdEnd; - } - bool isSpecConstant() const - { - // True if type is a specialization constant, whether or not it - // had a specialization-constant ID, and false if it is not a - // true front-end constant. - return specConstant; - } - bool isFrontEndConstant() const - { - // True if the front-end knows the final constant value. - // This allows front-end constant folding. - return storage == EvqConst && ! specConstant; - } - bool isConstant() const - { - // True if is either kind of constant; specialization or regular. - return isFrontEndConstant() || isSpecConstant(); - } - void makeSpecConstant() - { - storage = EvqConst; - specConstant = true; - } - static const char* getLayoutPackingString(TLayoutPacking packing) - { - switch (packing) { - case ElpStd140: return "std140"; -#ifndef GLSLANG_WEB - case ElpPacked: return "packed"; - case ElpShared: return "shared"; - case ElpStd430: return "std430"; - case ElpScalar: return "scalar"; -#endif - default: return "none"; - } - } - static const char* getLayoutMatrixString(TLayoutMatrix m) - { - switch (m) { - case ElmColumnMajor: return "column_major"; - case ElmRowMajor: return "row_major"; - default: return "none"; - } - } -#ifdef GLSLANG_WEB - static const char* getLayoutFormatString(TLayoutFormat f) { return "none"; } -#else - static const char* getLayoutFormatString(TLayoutFormat f) - { - switch (f) { - case ElfRgba32f: return "rgba32f"; - case ElfRgba16f: return "rgba16f"; - case ElfRg32f: return "rg32f"; - case ElfRg16f: return "rg16f"; - case ElfR11fG11fB10f: return "r11f_g11f_b10f"; - case ElfR32f: return "r32f"; - case ElfR16f: return "r16f"; - case ElfRgba16: return "rgba16"; - case ElfRgb10A2: return "rgb10_a2"; - case ElfRgba8: return "rgba8"; - case ElfRg16: return "rg16"; - case ElfRg8: return "rg8"; - case ElfR16: return "r16"; - case ElfR8: return "r8"; - case ElfRgba16Snorm: return "rgba16_snorm"; - case ElfRgba8Snorm: return "rgba8_snorm"; - case ElfRg16Snorm: return "rg16_snorm"; - case ElfRg8Snorm: return "rg8_snorm"; - case ElfR16Snorm: return "r16_snorm"; - case ElfR8Snorm: return "r8_snorm"; - - case ElfRgba32i: return "rgba32i"; - case ElfRgba16i: return "rgba16i"; - case ElfRgba8i: return "rgba8i"; - case ElfRg32i: return "rg32i"; - case ElfRg16i: return "rg16i"; - case ElfRg8i: return "rg8i"; - case ElfR32i: return "r32i"; - case ElfR16i: return "r16i"; - case ElfR8i: return "r8i"; - - case ElfRgba32ui: return "rgba32ui"; - case ElfRgba16ui: return "rgba16ui"; - case ElfRgba8ui: return "rgba8ui"; - case ElfRg32ui: return "rg32ui"; - case ElfRg16ui: return "rg16ui"; - case ElfRgb10a2ui: return "rgb10_a2ui"; - case ElfRg8ui: return "rg8ui"; - case ElfR32ui: return "r32ui"; - case ElfR16ui: return "r16ui"; - case ElfR8ui: return "r8ui"; - case ElfR64ui: return "r64ui"; - case ElfR64i: return "r64i"; - default: return "none"; - } - } - static const char* getLayoutDepthString(TLayoutDepth d) - { - switch (d) { - case EldAny: return "depth_any"; - case EldGreater: return "depth_greater"; - case EldLess: return "depth_less"; - case EldUnchanged: return "depth_unchanged"; - default: return "none"; - } - } - static const char* getBlendEquationString(TBlendEquationShift e) - { - switch (e) { - case EBlendMultiply: return "blend_support_multiply"; - case EBlendScreen: return "blend_support_screen"; - case EBlendOverlay: return "blend_support_overlay"; - case EBlendDarken: return "blend_support_darken"; - case EBlendLighten: return "blend_support_lighten"; - case EBlendColordodge: return "blend_support_colordodge"; - case EBlendColorburn: return "blend_support_colorburn"; - case EBlendHardlight: return "blend_support_hardlight"; - case EBlendSoftlight: return "blend_support_softlight"; - case EBlendDifference: return "blend_support_difference"; - case EBlendExclusion: return "blend_support_exclusion"; - case EBlendHslHue: return "blend_support_hsl_hue"; - case EBlendHslSaturation: return "blend_support_hsl_saturation"; - case EBlendHslColor: return "blend_support_hsl_color"; - case EBlendHslLuminosity: return "blend_support_hsl_luminosity"; - case EBlendAllEquations: return "blend_support_all_equations"; - default: return "unknown"; - } - } - static const char* getGeometryString(TLayoutGeometry geometry) - { - switch (geometry) { - case ElgPoints: return "points"; - case ElgLines: return "lines"; - case ElgLinesAdjacency: return "lines_adjacency"; - case ElgLineStrip: return "line_strip"; - case ElgTriangles: return "triangles"; - case ElgTrianglesAdjacency: return "triangles_adjacency"; - case ElgTriangleStrip: return "triangle_strip"; - case ElgQuads: return "quads"; - case ElgIsolines: return "isolines"; - default: return "none"; - } - } - static const char* getVertexSpacingString(TVertexSpacing spacing) - { - switch (spacing) { - case EvsEqual: return "equal_spacing"; - case EvsFractionalEven: return "fractional_even_spacing"; - case EvsFractionalOdd: return "fractional_odd_spacing"; - default: return "none"; - } - } - static const char* getVertexOrderString(TVertexOrder order) - { - switch (order) { - case EvoCw: return "cw"; - case EvoCcw: return "ccw"; - default: return "none"; - } - } - static int mapGeometryToSize(TLayoutGeometry geometry) - { - switch (geometry) { - case ElgPoints: return 1; - case ElgLines: return 2; - case ElgLinesAdjacency: return 4; - case ElgTriangles: return 3; - case ElgTrianglesAdjacency: return 6; - default: return 0; - } - } - static const char* getInterlockOrderingString(TInterlockOrdering order) - { - switch (order) { - case EioPixelInterlockOrdered: return "pixel_interlock_ordered"; - case EioPixelInterlockUnordered: return "pixel_interlock_unordered"; - case EioSampleInterlockOrdered: return "sample_interlock_ordered"; - case EioSampleInterlockUnordered: return "sample_interlock_unordered"; - case EioShadingRateInterlockOrdered: return "shading_rate_interlock_ordered"; - case EioShadingRateInterlockUnordered: return "shading_rate_interlock_unordered"; - default: return "none"; - } - } -#endif -}; - -// Qualifiers that don't need to be keep per object. They have shader scope, not object scope. -// So, they will not be part of TType, TQualifier, etc. -struct TShaderQualifiers { - TLayoutGeometry geometry; // geometry/tessellation shader in/out primitives - bool pixelCenterInteger; // fragment shader - bool originUpperLeft; // fragment shader - int invocations; - int vertices; // for tessellation "vertices", geometry & mesh "max_vertices" - TVertexSpacing spacing; - TVertexOrder order; - bool pointMode; - int localSize[3]; // compute shader - bool localSizeNotDefault[3]; // compute shader - int localSizeSpecId[3]; // compute shader specialization id for gl_WorkGroupSize -#ifndef GLSLANG_WEB - bool earlyFragmentTests; // fragment input - bool postDepthCoverage; // fragment input - TLayoutDepth layoutDepth; - bool blendEquation; // true if any blend equation was specified - int numViews; // multiview extenstions - TInterlockOrdering interlockOrdering; - bool layoutOverrideCoverage; // true if layout override_coverage set - bool layoutDerivativeGroupQuads; // true if layout derivative_group_quadsNV set - bool layoutDerivativeGroupLinear; // true if layout derivative_group_linearNV set - int primitives; // mesh shader "max_primitives"DerivativeGroupLinear; // true if layout derivative_group_linearNV set - bool layoutPrimitiveCulling; // true if layout primitive_culling set - TLayoutDepth getDepth() const { return layoutDepth; } -#else - TLayoutDepth getDepth() const { return EldNone; } -#endif - - void init() - { - geometry = ElgNone; - originUpperLeft = false; - pixelCenterInteger = false; - invocations = TQualifier::layoutNotSet; - vertices = TQualifier::layoutNotSet; - spacing = EvsNone; - order = EvoNone; - pointMode = false; - localSize[0] = 1; - localSize[1] = 1; - localSize[2] = 1; - localSizeNotDefault[0] = false; - localSizeNotDefault[1] = false; - localSizeNotDefault[2] = false; - localSizeSpecId[0] = TQualifier::layoutNotSet; - localSizeSpecId[1] = TQualifier::layoutNotSet; - localSizeSpecId[2] = TQualifier::layoutNotSet; -#ifndef GLSLANG_WEB - earlyFragmentTests = false; - postDepthCoverage = false; - layoutDepth = EldNone; - blendEquation = false; - numViews = TQualifier::layoutNotSet; - layoutOverrideCoverage = false; - layoutDerivativeGroupQuads = false; - layoutDerivativeGroupLinear = false; - layoutPrimitiveCulling = false; - primitives = TQualifier::layoutNotSet; - interlockOrdering = EioNone; -#endif - } - -#ifdef GLSLANG_WEB - bool hasBlendEquation() const { return false; } -#else - bool hasBlendEquation() const { return blendEquation; } -#endif - - // Merge in characteristics from the 'src' qualifier. They can override when - // set, but never erase when not set. - void merge(const TShaderQualifiers& src) - { - if (src.geometry != ElgNone) - geometry = src.geometry; - if (src.pixelCenterInteger) - pixelCenterInteger = src.pixelCenterInteger; - if (src.originUpperLeft) - originUpperLeft = src.originUpperLeft; - if (src.invocations != TQualifier::layoutNotSet) - invocations = src.invocations; - if (src.vertices != TQualifier::layoutNotSet) - vertices = src.vertices; - if (src.spacing != EvsNone) - spacing = src.spacing; - if (src.order != EvoNone) - order = src.order; - if (src.pointMode) - pointMode = true; - for (int i = 0; i < 3; ++i) { - if (src.localSize[i] > 1) - localSize[i] = src.localSize[i]; - } - for (int i = 0; i < 3; ++i) { - localSizeNotDefault[i] = src.localSizeNotDefault[i] || localSizeNotDefault[i]; - } - for (int i = 0; i < 3; ++i) { - if (src.localSizeSpecId[i] != TQualifier::layoutNotSet) - localSizeSpecId[i] = src.localSizeSpecId[i]; - } -#ifndef GLSLANG_WEB - if (src.earlyFragmentTests) - earlyFragmentTests = true; - if (src.postDepthCoverage) - postDepthCoverage = true; - if (src.layoutDepth) - layoutDepth = src.layoutDepth; - if (src.blendEquation) - blendEquation = src.blendEquation; - if (src.numViews != TQualifier::layoutNotSet) - numViews = src.numViews; - if (src.layoutOverrideCoverage) - layoutOverrideCoverage = src.layoutOverrideCoverage; - if (src.layoutDerivativeGroupQuads) - layoutDerivativeGroupQuads = src.layoutDerivativeGroupQuads; - if (src.layoutDerivativeGroupLinear) - layoutDerivativeGroupLinear = src.layoutDerivativeGroupLinear; - if (src.primitives != TQualifier::layoutNotSet) - primitives = src.primitives; - if (src.interlockOrdering != EioNone) - interlockOrdering = src.interlockOrdering; - if (src.layoutPrimitiveCulling) - layoutPrimitiveCulling = src.layoutPrimitiveCulling; -#endif - } -}; - -// -// TPublicType is just temporarily used while parsing and not quite the same -// information kept per node in TType. Due to the bison stack, it can't have -// types that it thinks have non-trivial constructors. It should -// just be used while recognizing the grammar, not anything else. -// Once enough is known about the situation, the proper information -// moved into a TType, or the parse context, etc. -// -class TPublicType { -public: - TBasicType basicType; - TSampler sampler; - TQualifier qualifier; - TShaderQualifiers shaderQualifiers; - int vectorSize : 4; - int matrixCols : 4; - int matrixRows : 4; - bool coopmat : 1; - TArraySizes* arraySizes; - const TType* userDef; - TSourceLoc loc; - TArraySizes* typeParameters; -#ifndef GLSLANG_WEB - // SPIR-V type defined by spirv_type directive - TSpirvType* spirvType; -#endif - -#ifdef GLSLANG_WEB - bool isCoopmat() const { return false; } -#else - bool isCoopmat() const { return coopmat; } -#endif - - void initType(const TSourceLoc& l) - { - basicType = EbtVoid; - vectorSize = 1; - matrixRows = 0; - matrixCols = 0; - arraySizes = nullptr; - userDef = nullptr; - loc = l; - typeParameters = nullptr; - coopmat = false; -#ifndef GLSLANG_WEB - spirvType = nullptr; -#endif - } - - void initQualifiers(bool global = false) - { - qualifier.clear(); - if (global) - qualifier.storage = EvqGlobal; - } - - void init(const TSourceLoc& l, bool global = false) - { - initType(l); - sampler.clear(); - initQualifiers(global); - shaderQualifiers.init(); - } - - void setVector(int s) - { - matrixRows = 0; - matrixCols = 0; - vectorSize = s; - } - - void setMatrix(int c, int r) - { - matrixRows = r; - matrixCols = c; - vectorSize = 0; - } - - bool isScalar() const - { - return matrixCols == 0 && vectorSize == 1 && arraySizes == nullptr && userDef == nullptr; - } - -#ifndef GLSLANG_WEB - // GL_EXT_spirv_intrinsics - void setSpirvType(const TSpirvInstruction& spirvInst, const TSpirvTypeParameters* typeParams = nullptr); -#endif - - // "Image" is a superset of "Subpass" - bool isImage() const { return basicType == EbtSampler && sampler.isImage(); } - bool isSubpass() const { return basicType == EbtSampler && sampler.isSubpass(); } -}; - -// -// Base class for things that have a type. -// -class TType { -public: - POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator()) - - // for "empty" type (no args) or simple scalar/vector/matrix - explicit TType(TBasicType t = EbtVoid, TStorageQualifier q = EvqTemporary, int vs = 1, int mc = 0, int mr = 0, - bool isVector = false) : - basicType(t), vectorSize(vs), matrixCols(mc), matrixRows(mr), vector1(isVector && vs == 1), coopmat(false), - arraySizes(nullptr), structure(nullptr), fieldName(nullptr), typeName(nullptr), typeParameters(nullptr) -#ifndef GLSLANG_WEB - , spirvType(nullptr) -#endif - { - sampler.clear(); - qualifier.clear(); - qualifier.storage = q; - assert(!(isMatrix() && vectorSize != 0)); // prevent vectorSize != 0 on matrices - } - // for explicit precision qualifier - TType(TBasicType t, TStorageQualifier q, TPrecisionQualifier p, int vs = 1, int mc = 0, int mr = 0, - bool isVector = false) : - basicType(t), vectorSize(vs), matrixCols(mc), matrixRows(mr), vector1(isVector && vs == 1), coopmat(false), - arraySizes(nullptr), structure(nullptr), fieldName(nullptr), typeName(nullptr), typeParameters(nullptr) -#ifndef GLSLANG_WEB - , spirvType(nullptr) -#endif - { - sampler.clear(); - qualifier.clear(); - qualifier.storage = q; - qualifier.precision = p; - assert(p >= 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) : - basicType(p.basicType), - vectorSize(p.vectorSize), matrixCols(p.matrixCols), matrixRows(p.matrixRows), vector1(false), coopmat(p.coopmat), - arraySizes(p.arraySizes), structure(nullptr), fieldName(nullptr), typeName(nullptr), typeParameters(p.typeParameters) -#ifndef GLSLANG_WEB - , spirvType(p.spirvType) -#endif - { - if (basicType == EbtSampler) - sampler = p.sampler; - else - sampler.clear(); - qualifier = p.qualifier; - if (p.userDef) { - if (p.userDef->basicType == EbtReference) { - basicType = EbtReference; - referentType = p.userDef->referentType; - } else { - structure = p.userDef->getWritableStruct(); // public type is short-lived; there are no sharing issues - } - typeName = NewPoolTString(p.userDef->getTypeName().c_str()); - } - if (p.isCoopmat() && p.typeParameters && p.typeParameters->getNumDims() > 0) { - int numBits = p.typeParameters->getDimSize(0); - if (p.basicType == EbtFloat && numBits == 16) { - basicType = EbtFloat16; - qualifier.precision = EpqNone; - } else if (p.basicType == EbtUint && numBits == 8) { - basicType = EbtUint8; - qualifier.precision = EpqNone; - } else if (p.basicType == EbtInt && numBits == 8) { - basicType = EbtInt8; - qualifier.precision = EpqNone; - } - } - } - // for construction of sampler types - TType(const TSampler& sampler, TStorageQualifier q = EvqUniform, TArraySizes* as = nullptr) : - basicType(EbtSampler), vectorSize(1), matrixCols(0), matrixRows(0), vector1(false), coopmat(false), - arraySizes(as), structure(nullptr), fieldName(nullptr), typeName(nullptr), - sampler(sampler), typeParameters(nullptr) -#ifndef GLSLANG_WEB - , spirvType(nullptr) -#endif - { - qualifier.clear(); - qualifier.storage = q; - } - // to efficiently make a dereferenced type - // without ever duplicating the outer structure that will be thrown away - // and using only shallow copy - TType(const TType& type, int derefIndex, bool rowMajor = false) - { - if (type.isArray()) { - shallowCopy(type); - if (type.getArraySizes()->getNumDims() == 1) { - arraySizes = nullptr; - } else { - // want our own copy of the array, so we can edit it - arraySizes = new TArraySizes; - arraySizes->copyDereferenced(*type.arraySizes); - } - } else if (type.basicType == EbtStruct || type.basicType == EbtBlock) { - // do a structure dereference - const TTypeList& memberList = *type.getStruct(); - shallowCopy(*memberList[derefIndex].type); - return; - } else { - // do a vector/matrix dereference - shallowCopy(type); - if (matrixCols > 0) { - // dereference from matrix to vector - if (rowMajor) - vectorSize = matrixCols; - else - vectorSize = matrixRows; - matrixCols = 0; - matrixRows = 0; - if (vectorSize == 1) - vector1 = true; - } else if (isVector()) { - // dereference from vector to scalar - vectorSize = 1; - vector1 = false; - } else if (isCoopMat()) { - coopmat = false; - typeParameters = nullptr; - } - } - } - // for making structures, ... - TType(TTypeList* userDef, const TString& n) : - basicType(EbtStruct), vectorSize(1), matrixCols(0), matrixRows(0), vector1(false), coopmat(false), - arraySizes(nullptr), structure(userDef), fieldName(nullptr), typeParameters(nullptr) -#ifndef GLSLANG_WEB - , spirvType(nullptr) -#endif - { - sampler.clear(); - qualifier.clear(); - typeName = NewPoolTString(n.c_str()); - } - // For interface blocks - TType(TTypeList* userDef, const TString& n, const TQualifier& q) : - basicType(EbtBlock), vectorSize(1), matrixCols(0), matrixRows(0), vector1(false), coopmat(false), - qualifier(q), arraySizes(nullptr), structure(userDef), fieldName(nullptr), typeParameters(nullptr) -#ifndef GLSLANG_WEB - , spirvType(nullptr) -#endif - { - sampler.clear(); - typeName = NewPoolTString(n.c_str()); - } - // for block reference (first parameter must be EbtReference) - explicit TType(TBasicType t, const TType &p, const TString& n) : - basicType(t), vectorSize(1), matrixCols(0), matrixRows(0), vector1(false), - arraySizes(nullptr), structure(nullptr), fieldName(nullptr), typeName(nullptr) -#ifndef GLSLANG_WEB - , spirvType(nullptr) -#endif - { - assert(t == EbtReference); - typeName = NewPoolTString(n.c_str()); - qualifier.clear(); - qualifier.storage = p.qualifier.storage; - referentType = p.clone(); - } - virtual ~TType() {} - - // Not for use across pool pops; it will cause multiple instances of TType to point to the same information. - // This only works if that information (like a structure's list of types) does not change and - // the instances are sharing the same pool. - void shallowCopy(const TType& copyOf) - { - basicType = copyOf.basicType; - sampler = copyOf.sampler; - qualifier = copyOf.qualifier; - vectorSize = copyOf.vectorSize; - matrixCols = copyOf.matrixCols; - matrixRows = copyOf.matrixRows; - vector1 = copyOf.vector1; - arraySizes = copyOf.arraySizes; // copying the pointer only, not the contents - fieldName = copyOf.fieldName; - typeName = copyOf.typeName; - if (isStruct()) { - structure = copyOf.structure; - } else { - referentType = copyOf.referentType; - } - typeParameters = copyOf.typeParameters; -#ifndef GLSLANG_WEB - spirvType = copyOf.spirvType; -#endif - coopmat = copyOf.isCoopMat(); - } - - // 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); - } - - // Recursively make temporary - void makeTemporary() - { - getQualifier().makeTemporary(); - - if (isStruct()) - for (unsigned int i = 0; i < structure->size(); ++i) - (*structure)[i].type->makeTemporary(); - } - - TType* clone() const - { - TType *newType = new TType(); - newType->deepCopy(*this); - - return newType; - } - - void makeVector() { vector1 = true; } - - virtual void hideMember() { basicType = EbtVoid; vectorSize = 1; } - virtual bool hiddenMember() const { return basicType == EbtVoid; } - - virtual void setFieldName(const TString& n) { fieldName = NewPoolTString(n.c_str()); } - virtual const TString& getTypeName() const - { - assert(typeName); - return *typeName; - } - - virtual const TString& getFieldName() const - { - assert(fieldName); - return *fieldName; - } - TShaderInterface getShaderInterface() const - { - if (basicType != EbtBlock) - return EsiNone; - - switch (qualifier.storage) { - default: - return EsiNone; - case EvqVaryingIn: - return EsiInput; - case EvqVaryingOut: - return EsiOutput; - case EvqUniform: - case EvqBuffer: - return EsiUniform; - } - } - - 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; } - - virtual int getVectorSize() const { return vectorSize; } // returns 1 for either scalar or vector of size 1, valid for both - virtual int getMatrixCols() const { return matrixCols; } - virtual int getMatrixRows() const { return matrixRows; } - virtual int getOuterArraySize() const { return arraySizes->getOuterSize(); } - virtual TIntermTyped* getOuterArrayNode() const { return arraySizes->getOuterNode(); } - virtual int getCumulativeArraySize() const { return arraySizes->getCumulativeSize(); } -#ifdef GLSLANG_WEB - bool isArrayOfArrays() const { return false; } -#else - bool isArrayOfArrays() const { return arraySizes != nullptr && arraySizes->getNumDims() > 1; } -#endif - virtual int getImplicitArraySize() const { return arraySizes->getImplicitSize(); } - virtual const TArraySizes* getArraySizes() const { return arraySizes; } - virtual TArraySizes* getArraySizes() { return arraySizes; } - virtual TType* getReferentType() const { return referentType; } - virtual const TArraySizes* getTypeParameters() const { return typeParameters; } - virtual TArraySizes* getTypeParameters() { return typeParameters; } - - virtual bool isScalar() const { return ! isVector() && ! isMatrix() && ! isStruct() && ! isArray(); } - virtual bool isScalarOrVec1() const { return isScalar() || vector1; } - virtual bool isScalarOrVector() const { return !isMatrix() && !isStruct() && !isArray(); } - 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 isStruct() const { return basicType == EbtStruct || basicType == EbtBlock; } - 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; - } - virtual bool isOpaque() const { return basicType == EbtSampler -#ifndef GLSLANG_WEB - || basicType == EbtAtomicUint || basicType == EbtAccStruct || basicType == EbtRayQuery -#endif - ; } - 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 isSubpass() const { return basicType == EbtSampler && getSampler().isSubpass(); } - virtual bool isTexture() const { return basicType == EbtSampler && getSampler().isTexture(); } - // Check the block-name convention of creating a block without populating it's members: - virtual bool isUnusableName() const { return isStruct() && structure == nullptr; } - virtual bool isParameterized() const { return typeParameters != nullptr; } -#ifdef GLSLANG_WEB - bool isAtomic() const { return false; } - bool isCoopMat() const { return false; } - bool isReference() const { return false; } - bool isSpirvType() const { return false; } -#else - bool isAtomic() const { return basicType == EbtAtomicUint; } - bool isCoopMat() const { return coopmat; } - bool isReference() const { return getBasicType() == EbtReference; } - bool isSpirvType() const { return getBasicType() == EbtSpirvType; } -#endif - - // 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 isStruct() && 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; } ); - } - - // Recursively check the structure for any arrays, needed for some error checks - virtual bool containsArray() const - { - return contains([](const TType* t) { return t->isArray(); } ); - } - - // 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(); } ); - } - - // Recursively check the structure for any unsized arrays, needed for triggering a copyUp(). - virtual bool containsUnsizedArray() const - { - return contains([](const TType* t) { return t->isUnsizedArray(); } ); - } - - 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(); } ); - } - - 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: - case EbtReference: - return true; - default: - return false; - } - }; - - return contains(nonOpaque); - } - - virtual bool containsSpecializationSize() const - { - return contains([](const TType* t) { return t->isArray() && t->arraySizes->isOuterSpecialization(); } ); - } - -#ifdef GLSLANG_WEB - bool containsDouble() const { return false; } - bool contains16BitFloat() const { return false; } - bool contains64BitInt() const { return false; } - bool contains16BitInt() const { return false; } - bool contains8BitInt() const { return false; } - bool containsCoopMat() const { return false; } - bool containsReference() const { return false; } -#else - bool containsDouble() const - { - return containsBasicType(EbtDouble); - } - bool contains16BitFloat() const - { - return containsBasicType(EbtFloat16); - } - bool contains64BitInt() const - { - return containsBasicType(EbtInt64) || containsBasicType(EbtUint64); - } - bool contains16BitInt() const - { - return containsBasicType(EbtInt16) || containsBasicType(EbtUint16); - } - bool contains8BitInt() const - { - return containsBasicType(EbtInt8) || containsBasicType(EbtUint8); - } - bool containsCoopMat() const - { - return contains([](const TType* t) { return t->coopmat; } ); - } - bool containsReference() const - { - return containsBasicType(EbtReference); - } -#endif - - // Array editing methods. Array descriptors can be shared across - // type instances. This allows all uses of the same array - // to be updated at once. E.g., all nodes can be explicitly sized - // by tracking and correcting one implicit size. Or, all nodes - // can get the explicit size on a redeclaration that gives size. - // - // N.B.: Don't share with the shared symbol tables (symbols are - // marked as isReadOnly(). Such symbols with arrays that will be - // edited need to copyUp() on first use, so that - // A) the edits don't effect the shared symbol table, and - // B) the edits are shared across all users. - void updateArraySizes(const TType& type) - { - // For when we may already be sharing existing array descriptors, - // keeping the pointers the same, just updating the contents. - assert(arraySizes != nullptr); - assert(type.arraySizes != nullptr); - *arraySizes = *type.arraySizes; - } - 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 = nullptr; - } - - // 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 (s != nullptr) { - if (arraySizes == nullptr) - copyArraySizes(*s); - else - arraySizes->addInnerSizes(*s); - } - } - void changeOuterArraySize(int s) { arraySizes->changeOuterSize(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) - { - if (isUnsizedArray() && !(skipNonvariablyIndexed || isArrayVariablyIndexed())) - changeOuterArraySize(getImplicitArraySize()); - // For multi-dim per-view arrays, set unsized inner dimension size to 1 - if (qualifier.isPerView() && arraySizes && arraySizes->isInnerUnsized()) - arraySizes->clearInnerUnsized(); - 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); - } - } - - - void updateTypeParameters(const TType& type) - { - // For when we may already be sharing existing array descriptors, - // keeping the pointers the same, just updating the contents. - assert(typeParameters != nullptr); - assert(type.typeParameters != nullptr); - *typeParameters = *type.typeParameters; - } - void copyTypeParameters(const TArraySizes& s) - { - // For setting a fresh new set of type parameters, not yet worrying about sharing. - typeParameters = new TArraySizes; - *typeParameters = s; - } - void transferTypeParameters(TArraySizes* s) - { - // For setting an already allocated set of sizes that this type can use - // (no copy made). - typeParameters = s; - } - void clearTypeParameters() - { - typeParameters = nullptr; - } - - // Add inner array sizes, to any existing sizes, via copy; the - // sizes passed in can still be reused for other purposes. - void copyTypeParametersInnerSizes(const TArraySizes* s) - { - if (s != nullptr) { - if (typeParameters == nullptr) - copyTypeParameters(*s); - else - typeParameters->addInnerSizes(*s); - } - } - - const char* getBasicString() const - { - return TType::getBasicString(basicType); - } - - static const char* getBasicString(TBasicType t) - { - switch (t) { - case EbtFloat: return "float"; - case EbtInt: return "int"; - case EbtUint: return "uint"; - case EbtSampler: return "sampler/image"; -#ifndef GLSLANG_WEB - case EbtVoid: return "void"; - case EbtDouble: return "double"; - 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"; - case EbtInt64: return "int64_t"; - case EbtUint64: return "uint64_t"; - case EbtBool: return "bool"; - case EbtAtomicUint: return "atomic_uint"; - case EbtStruct: return "structure"; - case EbtBlock: return "block"; - case EbtAccStruct: return "accelerationStructureNV"; - case EbtRayQuery: return "rayQueryEXT"; - case EbtReference: return "reference"; - case EbtString: return "string"; - case EbtSpirvType: return "spirv_type"; -#endif - default: return "unknown type"; - } - } - -#ifdef GLSLANG_WEB - TString getCompleteString() const { return ""; } - const char* getStorageQualifierString() const { return ""; } - const char* getBuiltInVariableString() const { return ""; } - const char* getPrecisionQualifierString() const { return ""; } - TString getBasicTypeString() const { return ""; } -#else - TString getCompleteString(bool syntactic = false, bool getQualifiers = true, bool getPrecision = true, - bool getType = true, TString name = "", TString structName = "") 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()); }; - - if (getQualifiers) { - if (qualifier.hasSprivDecorate()) - appendStr(qualifier.getSpirvDecorateQualifierString().c_str()); - - if (qualifier.hasLayout()) { - // To reduce noise, skip this if the only layout is an xfb_buffer - // with no triggering xfb_offset. - TQualifier noXfbBuffer = qualifier; - noXfbBuffer.layoutXfbBuffer = TQualifier::layoutXfbBufferEnd; - if (noXfbBuffer.hasLayout()) { - appendStr("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); - } - if (qualifier.layoutPushConstant) - appendStr(" push_constant"); - if (qualifier.layoutBufferReference) - appendStr(" buffer_reference"); - if (qualifier.hasBufferReferenceAlign()) { - appendStr(" buffer_reference_align="); - appendUint(1u << qualifier.layoutBufferReferenceAlign); - } - - if (qualifier.layoutPassthrough) - appendStr(" passthrough"); - if (qualifier.layoutViewportRelative) - appendStr(" layoutViewportRelative"); - if (qualifier.layoutSecondaryViewportRelativeOffset != -2048) { - appendStr(" layoutSecondaryViewportRelativeOffset="); - appendInt(qualifier.layoutSecondaryViewportRelativeOffset); - } - if (qualifier.layoutShaderRecord) - appendStr(" shaderRecordNV"); - - appendStr(")"); - } - } - - if (qualifier.invariant) - appendStr(" invariant"); - if (qualifier.noContraction) - appendStr(" noContraction"); - if (qualifier.centroid) - appendStr(" centroid"); - if (qualifier.smooth) - appendStr(" smooth"); - if (qualifier.flat) - appendStr(" flat"); - if (qualifier.nopersp) - appendStr(" noperspective"); - if (qualifier.explicitInterp) - appendStr(" __explicitInterpAMD"); - if (qualifier.pervertexNV) - appendStr(" pervertexNV"); - if (qualifier.perPrimitiveNV) - appendStr(" perprimitiveNV"); - if (qualifier.perViewNV) - appendStr(" perviewNV"); - if (qualifier.perTaskNV) - appendStr(" taskNV"); - if (qualifier.patch) - appendStr(" patch"); - if (qualifier.sample) - appendStr(" sample"); - if (qualifier.coherent) - appendStr(" coherent"); - if (qualifier.devicecoherent) - appendStr(" devicecoherent"); - if (qualifier.queuefamilycoherent) - appendStr(" queuefamilycoherent"); - if (qualifier.workgroupcoherent) - appendStr(" workgroupcoherent"); - if (qualifier.subgroupcoherent) - appendStr(" subgroupcoherent"); - if (qualifier.shadercallcoherent) - appendStr(" shadercallcoherent"); - if (qualifier.nonprivate) - appendStr(" nonprivate"); - if (qualifier.volatil) - appendStr(" volatile"); - if (qualifier.restrict) - appendStr(" restrict"); - if (qualifier.readonly) - appendStr(" readonly"); - if (qualifier.writeonly) - appendStr(" writeonly"); - if (qualifier.specConstant) - appendStr(" specialization-constant"); - if (qualifier.nonUniform) - appendStr(" nonuniform"); - if (qualifier.isNullInit()) - appendStr(" null-init"); - if (qualifier.isSpirvByReference()) - appendStr(" spirv_by_reference"); - if (qualifier.isSpirvLiteral()) - appendStr(" spirv_literal"); - appendStr(" "); - appendStr(getStorageQualifierString()); - } - if (getType) { - if (syntactic) { - if (getPrecision && qualifier.precision != EpqNone) { - appendStr(" "); - appendStr(getPrecisionQualifierString()); - } - if (isVector() || isMatrix()) { - appendStr(" "); - switch (basicType) { - case EbtDouble: - appendStr("d"); - break; - case EbtInt: - appendStr("i"); - break; - case EbtUint: - appendStr("u"); - break; - case EbtBool: - appendStr("b"); - break; - case EbtFloat: - default: - break; - } - if (isVector()) { - appendStr("vec"); - appendInt(vectorSize); - } else { - appendStr("mat"); - appendInt(matrixCols); - appendStr("x"); - appendInt(matrixRows); - } - } else if (isStruct() && structure) { - appendStr(" "); - appendStr(structName.c_str()); - appendStr("{"); - bool hasHiddenMember = true; - for (size_t i = 0; i < structure->size(); ++i) { - if (!(*structure)[i].type->hiddenMember()) { - if (!hasHiddenMember) - appendStr(", "); - typeString.append((*structure)[i].type->getCompleteString(syntactic, getQualifiers, getPrecision, getType, (*structure)[i].type->getFieldName())); - hasHiddenMember = false; - } - } - appendStr("}"); - } else { - appendStr(" "); - switch (basicType) { - case EbtDouble: - appendStr("double"); - break; - case EbtInt: - appendStr("int"); - break; - case EbtUint: - appendStr("uint"); - break; - case EbtBool: - appendStr("bool"); - break; - case EbtFloat: - appendStr("float"); - break; - default: - appendStr("unexpected"); - break; - } - } - if (name.length() > 0) { - appendStr(" "); - appendStr(name.c_str()); - } - if (isArray()) { - for (int i = 0; i < (int)arraySizes->getNumDims(); ++i) { - int size = arraySizes->getDimSize(i); - if (size == UnsizedArraySize && i == 0 && arraySizes->isVariablyIndexed()) - appendStr("[]"); - else { - if (size == UnsizedArraySize) { - appendStr("["); - if (i == 0) - appendInt(arraySizes->getImplicitSize()); - appendStr("]"); - } - else { - appendStr("["); - appendInt(arraySizes->getDimSize(i)); - appendStr("]"); - } - } - } - } - } - else { - 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 (isParameterized()) { - appendStr("<"); - for (int i = 0; i < (int)typeParameters->getNumDims(); ++i) { - appendInt(typeParameters->getDimSize(i)); - if (i != (int)typeParameters->getNumDims() - 1) - appendStr(", "); - } - appendStr(">"); - } - if (getPrecision && 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"); - } - - appendStr(" "); - typeString.append(getBasicTypeString()); - - if (qualifier.builtIn != EbvNone) { - appendStr(" "); - appendStr(getBuiltInVariableString()); - } - - // Add struct/block members - if (isStruct() && structure) { - appendStr("{"); - bool hasHiddenMember = true; - for (size_t i = 0; i < structure->size(); ++i) { - if (!(*structure)[i].type->hiddenMember()) { - if (!hasHiddenMember) - appendStr(", "); - typeString.append((*structure)[i].type->getCompleteString()); - typeString.append(" "); - typeString.append((*structure)[i].type->getFieldName()); - hasHiddenMember = false; - } - } - appendStr("}"); - } - } - } - - return typeString; - } - - TString getBasicTypeString() const - { - if (basicType == EbtSampler) - return sampler.getString(); - else - return getBasicString(); - } - - const char* getStorageQualifierString() const { return GetStorageQualifierString(qualifier.storage); } - const char* getBuiltInVariableString() const { return GetBuiltInVariableString(qualifier.builtIn); } - const char* getPrecisionQualifierString() const { return GetPrecisionQualifierString(qualifier.precision); } -#endif - - const TTypeList* getStruct() const { assert(isStruct()); return structure; } - void setStruct(TTypeList* s) { assert(isStruct()); structure = s; } - TTypeList* getWritableStruct() const { assert(isStruct()); return structure; } // This should only be used when known to not be sharing with other threads - void setBasicType(const TBasicType& t) { basicType = t; } - - int computeNumComponents() const - { - int components = 0; - - if (getBasicType() == EbtStruct || getBasicType() == EbtBlock) { - for (TTypeList::const_iterator tl = getStruct()->begin(); tl != getStruct()->end(); tl++) - components += ((*tl).type)->computeNumComponents(); - } else if (matrixCols) - components = matrixCols * matrixRows; - else - components = vectorSize; - - if (arraySizes != nullptr) { - components *= arraySizes->getCumulativeSize(); - } - - return components; - } - - // append this type's mangled name to the passed in 'name' - void appendMangledName(TString& name) const - { - buildMangledName(name); - name += ';' ; - } - - // These variables are inconsistently declared inside and outside of gl_PerVertex in glslang right now. - // They are declared inside of 'in gl_PerVertex', but sitting as standalone when they are 'out'puts. - bool isInconsistentGLPerVertexMember(const TString& name) const - { - if (name == "gl_SecondaryPositionNV" || - name == "gl_PositionPerViewNV") - return true; - return false; - } - - - // Do two structure types match? They could be declared independently, - // in different places, but still might satisfy the definition of matching. - // From the spec: - // - // "Structures must have the same name, sequence of type names, and - // type definitions, and member names to be considered the same type. - // This rule applies recursively for nested or embedded types." - // - // If type mismatch in structure, return member indices through lpidx and rpidx. - // If matching members for either block are exhausted, return -1 for exhausted - // block and the index of the unmatched member. Otherwise return {-1,-1}. - // - bool sameStructType(const TType& right, int* lpidx = nullptr, int* rpidx = nullptr) const - { - // Initialize error to general type mismatch. - if (lpidx != nullptr) { - *lpidx = -1; - *rpidx = -1; - } - - // Most commonly, they are both nullptr, or the same pointer to the same actual structure - // TODO: Why return true when neither types are structures? - if ((!isStruct() && !right.isStruct()) || - (isStruct() && right.isStruct() && structure == right.structure)) - return true; - - if (!isStruct() || !right.isStruct()) - return false; - - // Structure names have to match - if (*typeName != *right.typeName) - return false; - - // There are inconsistencies with how gl_PerVertex is setup. For now ignore those as errors if they - // are known inconsistencies. - bool isGLPerVertex = *typeName == "gl_PerVertex"; - - // Both being nullptr was caught above, now they both have to be structures of the same number of elements - if (lpidx == nullptr && - (structure->size() != right.structure->size() && !isGLPerVertex)) { - return false; - } - - // Compare the names and types of all the members, which have to match - for (size_t li = 0, ri = 0; li < structure->size() || ri < right.structure->size(); ++li, ++ri) { - if (lpidx != nullptr) { - *lpidx = static_cast(li); - *rpidx = static_cast(ri); - } - if (li < structure->size() && ri < right.structure->size()) { - if ((*structure)[li].type->getFieldName() == (*right.structure)[ri].type->getFieldName()) { - if (*(*structure)[li].type != *(*right.structure)[ri].type) - return false; - } else { - // Skip hidden members - if ((*structure)[li].type->hiddenMember()) { - ri--; - continue; - } else if ((*right.structure)[ri].type->hiddenMember()) { - li--; - continue; - } - // If one of the members is something that's inconsistently declared, skip over it - // for now. - if (isGLPerVertex) { - if (isInconsistentGLPerVertexMember((*structure)[li].type->getFieldName())) { - ri--; - continue; - } else if (isInconsistentGLPerVertexMember((*right.structure)[ri].type->getFieldName())) { - li--; - continue; - } - } else { - return false; - } - } - // If we get here, then there should only be inconsistently declared members left - } else if (li < structure->size()) { - if (!(*structure)[li].type->hiddenMember() && !isInconsistentGLPerVertexMember((*structure)[li].type->getFieldName())) { - if (lpidx != nullptr) { - *rpidx = -1; - } - return false; - } - } else { - if (!(*right.structure)[ri].type->hiddenMember() && !isInconsistentGLPerVertexMember((*right.structure)[ri].type->getFieldName())) { - if (lpidx != nullptr) { - *lpidx = -1; - } - return false; - } - } - } - - return true; - } - - bool sameReferenceType(const TType& right) const - { - if (isReference() != right.isReference()) - return false; - - if (!isReference() && !right.isReference()) - return true; - - assert(referentType != nullptr); - assert(right.referentType != nullptr); - - if (referentType == right.referentType) - return true; - - return *referentType == *right.referentType; - } - - // See if two types match, in all aspects except arrayness - // If mismatch in structure members, return member indices in lpidx and rpidx. - bool sameElementType(const TType& right, int* lpidx = nullptr, int* rpidx = nullptr) const - { - if (lpidx != nullptr) { - *lpidx = -1; - *rpidx = -1; - } - return basicType == right.basicType && sameElementShape(right, lpidx, rpidx); - } - - // See if two type's arrayness match - bool sameArrayness(const TType& right) const - { - return ((arraySizes == nullptr && right.arraySizes == nullptr) || - (arraySizes != nullptr && right.arraySizes != nullptr && *arraySizes == *right.arraySizes)); - } - - // See if two type's arrayness match in everything except their outer dimension - bool sameInnerArrayness(const TType& right) const - { - assert(arraySizes != nullptr && right.arraySizes != nullptr); - return arraySizes->sameInnerArrayness(*right.arraySizes); - } - - // See if two type's parameters match - bool sameTypeParameters(const TType& right) const - { - return ((typeParameters == nullptr && right.typeParameters == nullptr) || - (typeParameters != nullptr && right.typeParameters != nullptr && *typeParameters == *right.typeParameters)); - } - -#ifndef GLSLANG_WEB - // See if two type's SPIR-V type contents match - bool sameSpirvType(const TType& right) const - { - return ((spirvType == nullptr && right.spirvType == nullptr) || - (spirvType != nullptr && right.spirvType != nullptr && *spirvType == *right.spirvType)); - } -#endif - - // See if two type's elements match in all ways except basic type - // If mismatch in structure members, return member indices in lpidx and rpidx. - bool sameElementShape(const TType& right, int* lpidx = nullptr, int* rpidx = nullptr) const - { - if (lpidx != nullptr) { - *lpidx = -1; - *rpidx = -1; - } - return ((basicType != EbtSampler && right.basicType != EbtSampler) || sampler == right.sampler) && - vectorSize == right.vectorSize && - matrixCols == right.matrixCols && - matrixRows == right.matrixRows && - vector1 == right.vector1 && - isCoopMat() == right.isCoopMat() && - sameStructType(right, lpidx, rpidx) && - sameReferenceType(right); - } - - // See if a cooperative matrix type parameter with unspecified parameters is - // an OK function parameter - bool coopMatParameterOK(const TType& right) const - { - return isCoopMat() && right.isCoopMat() && (getBasicType() == right.getBasicType()) && - typeParameters == nullptr && right.typeParameters != nullptr; - } - - bool sameCoopMatBaseType(const TType &right) const { - bool rv = coopmat && right.coopmat; - if (getBasicType() == EbtFloat || getBasicType() == EbtFloat16) - rv = right.getBasicType() == EbtFloat || right.getBasicType() == EbtFloat16; - else if (getBasicType() == EbtUint || getBasicType() == EbtUint8) - rv = right.getBasicType() == EbtUint || right.getBasicType() == EbtUint8; - else if (getBasicType() == EbtInt || getBasicType() == EbtInt8) - rv = right.getBasicType() == EbtInt || right.getBasicType() == EbtInt8; - else - rv = false; - return rv; - } - - - // See if two types match in all ways (just the actual type, not qualification) - bool operator==(const TType& right) const - { -#ifndef GLSLANG_WEB - return sameElementType(right) && sameArrayness(right) && sameTypeParameters(right) && sameSpirvType(right); -#else - return sameElementType(right) && sameArrayness(right) && sameTypeParameters(right); -#endif - } - - bool operator!=(const TType& right) const - { - return ! operator==(right); - } - - unsigned int getBufferReferenceAlignment() const - { -#ifndef GLSLANG_WEB - if (getBasicType() == glslang::EbtReference) { - return getReferentType()->getQualifier().hasBufferReferenceAlign() ? - (1u << getReferentType()->getQualifier().layoutBufferReferenceAlign) : 16u; - } -#endif - return 0; - } - -#ifndef GLSLANG_WEB - const TSpirvType& getSpirvType() const { assert(spirvType); return *spirvType; } -#endif - -protected: - // Require consumer to pick between deep copy and shallow copy. - 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); - -#ifndef GLSLANG_WEB - // GL_EXT_spirv_intrinsics - if (copyOf.qualifier.spirvDecorate) { - qualifier.spirvDecorate = new TSpirvDecorate; - *qualifier.spirvDecorate = *copyOf.qualifier.spirvDecorate; - } - - if (copyOf.spirvType) { - spirvType = new TSpirvType; - *spirvType = *copyOf.spirvType; - } -#endif - - if (copyOf.arraySizes) { - arraySizes = new TArraySizes; - *arraySizes = *copyOf.arraySizes; - } - - if (copyOf.typeParameters) { - typeParameters = new TArraySizes; - *typeParameters = *copyOf.typeParameters; - } - - if (copyOf.isStruct() && 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. - int matrixCols : 4; - int matrixRows : 4; - bool vector1 : 1; // Backward-compatible tracking of a 1-component vector distinguished from a scalar. - // GLSL 4.5 never has a 1-component vector; so this will always be false until such - // functionality is added. - // HLSL does have a 1-component vectors, so this will be true to disambiguate - // from a scalar. - bool coopmat : 1; - TQualifier qualifier; - - TArraySizes* arraySizes; // nullptr unless an array; can be shared across types - // A type can't be both a structure (EbtStruct/EbtBlock) and a reference (EbtReference), so - // conserve space by making these a union - union { - TTypeList* structure; // invalid unless this is a struct; can be shared across types - TType *referentType; // invalid unless this is an EbtReference - }; - TString *fieldName; // for structure field names - TString *typeName; // for structure type name - TSampler sampler; - TArraySizes* typeParameters;// nullptr unless a parameterized type; can be shared across types -#ifndef GLSLANG_WEB - TSpirvType* spirvType; // SPIR-V type defined by spirv_type directive -#endif -}; - -} // end namespace glslang - -#endif // _TYPES_INCLUDED_ diff --git a/deps/glslang/glslang/Include/arrays.h b/deps/glslang/glslang/Include/arrays.h deleted file mode 100644 index 7f047d9f..00000000 --- a/deps/glslang/glslang/Include/arrays.h +++ /dev/null @@ -1,341 +0,0 @@ -// -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2012-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. -// - -// -// Implement types for tracking GLSL arrays, arrays of arrays, etc. -// - -#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. -const int UnsizedArraySize = 0; - -class TIntermTyped; -extern bool SameSpecializationConstants(TIntermTyped*, TIntermTyped*); - -// Specialization constants need both a nominal size and a node that defines -// the specialization constant being used. Array types are the same when their -// size and specialization constant nodes are the same. -struct TArraySize { - unsigned int size; - TIntermTyped* node; // nullptr means no specialization constant node - bool operator==(const TArraySize& rhs) const - { - if (size != rhs.size) - return false; - if (node == nullptr || rhs.node == nullptr) - return node == rhs.node; - - return SameSpecializationConstants(node, rhs.node); - } -}; - -// -// TSmallArrayVector is used as the container for the set of sizes in TArraySizes. -// It has generic-container semantics, while TArraySizes has array-of-array semantics. -// That is, TSmallArrayVector should be more focused on mechanism and TArraySizes on policy. -// -struct TSmallArrayVector { - // - // TODO: memory: TSmallArrayVector is intended to be smaller. - // Almost all arrays could be handled by two sizes each fitting - // in 16 bits, needing a real vector only in the cases where there - // are more than 3 sizes or a size needing more than 16 bits. - // - POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator()) - - TSmallArrayVector() : sizes(nullptr) { } - virtual ~TSmallArrayVector() { dealloc(); } - - // For breaking into two non-shared copies, independently modifiable. - TSmallArrayVector& operator=(const TSmallArrayVector& from) - { - if (from.sizes == nullptr) - sizes = nullptr; - else { - alloc(); - *sizes = *from.sizes; - } - - return *this; - } - - int size() const - { - if (sizes == nullptr) - return 0; - return (int)sizes->size(); - } - - unsigned int frontSize() const - { - assert(sizes != nullptr && sizes->size() > 0); - return sizes->front().size; - } - - TIntermTyped* frontNode() const - { - assert(sizes != nullptr && sizes->size() > 0); - return sizes->front().node; - } - - void changeFront(unsigned int s) - { - assert(sizes != nullptr); - // this should only happen for implicitly sized arrays, not specialization constants - assert(sizes->front().node == nullptr); - sizes->front().size = s; - } - - void push_back(unsigned int e, TIntermTyped* n) - { - alloc(); - TArraySize pair = { e, n }; - sizes->push_back(pair); - } - - void push_back(const TSmallArrayVector& newDims) - { - alloc(); - sizes->insert(sizes->end(), newDims.sizes->begin(), newDims.sizes->end()); - } - - void pop_front() - { - assert(sizes != nullptr && sizes->size() > 0); - if (sizes->size() == 1) - dealloc(); - else - sizes->erase(sizes->begin()); - } - - // 'this' should currently not be holding anything, and copyNonFront - // will make it hold a copy of all but the first element of rhs. - // (This would be useful for making a type that is dereferenced by - // one dimension.) - void copyNonFront(const TSmallArrayVector& rhs) - { - assert(sizes == nullptr); - if (rhs.size() > 1) { - alloc(); - sizes->insert(sizes->begin(), rhs.sizes->begin() + 1, rhs.sizes->end()); - } - } - - unsigned int getDimSize(int i) const - { - assert(sizes != nullptr && (int)sizes->size() > i); - return (*sizes)[i].size; - } - - void setDimSize(int i, unsigned int size) const - { - assert(sizes != nullptr && (int)sizes->size() > i); - assert((*sizes)[i].node == nullptr); - (*sizes)[i].size = size; - } - - TIntermTyped* getDimNode(int i) const - { - assert(sizes != nullptr && (int)sizes->size() > i); - return (*sizes)[i].node; - } - - bool operator==(const TSmallArrayVector& rhs) const - { - if (sizes == nullptr && rhs.sizes == nullptr) - return true; - if (sizes == nullptr || rhs.sizes == nullptr) - return false; - return *sizes == *rhs.sizes; - } - bool operator!=(const TSmallArrayVector& rhs) const { return ! operator==(rhs); } - -protected: - TSmallArrayVector(const TSmallArrayVector&); - - void alloc() - { - if (sizes == nullptr) - sizes = new TVector; - } - void dealloc() - { - delete sizes; - sizes = nullptr; - } - - TVector* sizes; // will either hold such a pointer, or in the future, hold the two array sizes -}; - -// -// Represent an array, or array of arrays, to arbitrary depth. This is not -// done through a hierarchy of types in a type tree, rather all contiguous arrayness -// in the type hierarchy is localized into this single cumulative object. -// -// The arrayness in TTtype is a pointer, so that it can be non-allocated and zero -// for the vast majority of types that are non-array types. -// -// Order Policy: these are all identical: -// - left to right order within a contiguous set of ...[..][..][..]... in the source language -// - index order 0, 1, 2, ... within the 'sizes' member below -// - outer-most to inner-most -// -struct TArraySizes { - POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator()) - - 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; - } - - // translate from array-of-array semantics to container semantics - int getNumDims() const { return sizes.size(); } - int getDimSize(int dim) const { return sizes.getDimSize(dim); } - TIntermTyped* getDimNode(int dim) const { return sizes.getDimNode(dim); } - void setDimSize(int dim, int size) { sizes.setDimSize(dim, size); } - int getOuterSize() const { return sizes.frontSize(); } - TIntermTyped* getOuterNode() const { return sizes.frontNode(); } - int getCumulativeSize() const - { - int size = 1; - for (int d = 0; d < sizes.size(); ++d) { - // this only makes sense in paths that have a known array size - assert(sizes.getDimSize(d) != UnsizedArraySize); - size *= sizes.getDimSize(d); - } - return size; - } - void addInnerSize() { addInnerSize((unsigned)UnsizedArraySize); } - 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 - { - for (int d = 1; d < sizes.size(); ++d) { - if (sizes.getDimSize(d) == (unsigned)UnsizedArraySize) - return true; - } - - 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; } - void dereference() { sizes.pop_front(); } - void copyDereferenced(const TArraySizes& rhs) - { - assert(sizes.size() == 0); - if (rhs.sizes.size() > 1) - sizes.copyNonFront(rhs.sizes); - } - - bool sameInnerArrayness(const TArraySizes& rhs) const - { - if (sizes.size() != rhs.sizes.size()) - return false; - - for (int d = 1; d < sizes.size(); ++d) { - if (sizes.getDimSize(d) != rhs.sizes.getDimSize(d) || - sizes.getDimNode(d) != rhs.sizes.getDimNode(d)) - return false; - } - - return true; - } - - void setVariablyIndexed() { variablyIndexed = true; } - bool isVariablyIndexed() const { return variablyIndexed; } - - bool operator==(const TArraySizes& rhs) const { return sizes == rhs.sizes; } - bool operator!=(const TArraySizes& rhs) const { return sizes != rhs.sizes; } - -protected: - TSmallArrayVector sizes; - - 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. - int implicitArraySize; - bool variablyIndexed; // true if array is indexed with a non compile-time constant -}; - -} // end namespace glslang - -#endif // _ARRAYS_INCLUDED_ diff --git a/deps/glslang/glslang/Include/glslang_c_interface.h b/deps/glslang/glslang/Include/glslang_c_interface.h deleted file mode 100644 index a98a7e17..00000000 --- a/deps/glslang/glslang/Include/glslang_c_interface.h +++ /dev/null @@ -1,254 +0,0 @@ -/** - This code is based on the glslang_c_interface implementation by Viktor Latypov -**/ - -/** -BSD 2-Clause License - -Copyright (c) 2019, Viktor Latypov -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -2. 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. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (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_C_IFACE_H_INCLUDED -#define GLSLANG_C_IFACE_H_INCLUDED - -#include -#include - -#include "glslang_c_shader_types.h" - -typedef struct glslang_shader_s glslang_shader_t; -typedef struct glslang_program_s glslang_program_t; - -/* TLimits counterpart */ -typedef struct glslang_limits_s { - bool non_inductive_for_loops; - bool while_loops; - bool do_while_loops; - bool general_uniform_indexing; - bool general_attribute_matrix_vector_indexing; - bool general_varying_indexing; - bool general_sampler_indexing; - bool general_variable_indexing; - bool general_constant_matrix_vector_indexing; -} glslang_limits_t; - -/* TBuiltInResource counterpart */ -typedef struct glslang_resource_s { - int max_lights; - int max_clip_planes; - int max_texture_units; - int max_texture_coords; - int max_vertex_attribs; - int max_vertex_uniform_components; - int max_varying_floats; - int max_vertex_texture_image_units; - int max_combined_texture_image_units; - int max_texture_image_units; - int max_fragment_uniform_components; - int max_draw_buffers; - int max_vertex_uniform_vectors; - int max_varying_vectors; - int max_fragment_uniform_vectors; - int max_vertex_output_vectors; - int max_fragment_input_vectors; - int min_program_texel_offset; - int max_program_texel_offset; - int max_clip_distances; - int max_compute_work_group_count_x; - int max_compute_work_group_count_y; - int max_compute_work_group_count_z; - int max_compute_work_group_size_x; - int max_compute_work_group_size_y; - int max_compute_work_group_size_z; - int max_compute_uniform_components; - int max_compute_texture_image_units; - int max_compute_image_uniforms; - int max_compute_atomic_counters; - int max_compute_atomic_counter_buffers; - int max_varying_components; - int max_vertex_output_components; - int max_geometry_input_components; - int max_geometry_output_components; - int max_fragment_input_components; - int max_image_units; - int max_combined_image_units_and_fragment_outputs; - int max_combined_shader_output_resources; - int max_image_samples; - int max_vertex_image_uniforms; - int max_tess_control_image_uniforms; - int max_tess_evaluation_image_uniforms; - int max_geometry_image_uniforms; - int max_fragment_image_uniforms; - int max_combined_image_uniforms; - int max_geometry_texture_image_units; - int max_geometry_output_vertices; - int max_geometry_total_output_components; - int max_geometry_uniform_components; - int max_geometry_varying_components; - int max_tess_control_input_components; - int max_tess_control_output_components; - int max_tess_control_texture_image_units; - int max_tess_control_uniform_components; - int max_tess_control_total_output_components; - int max_tess_evaluation_input_components; - int max_tess_evaluation_output_components; - int max_tess_evaluation_texture_image_units; - int max_tess_evaluation_uniform_components; - int max_tess_patch_components; - int max_patch_vertices; - int max_tess_gen_level; - int max_viewports; - int max_vertex_atomic_counters; - int max_tess_control_atomic_counters; - int max_tess_evaluation_atomic_counters; - int max_geometry_atomic_counters; - int max_fragment_atomic_counters; - int max_combined_atomic_counters; - int max_atomic_counter_bindings; - int max_vertex_atomic_counter_buffers; - int max_tess_control_atomic_counter_buffers; - int max_tess_evaluation_atomic_counter_buffers; - int max_geometry_atomic_counter_buffers; - int max_fragment_atomic_counter_buffers; - int max_combined_atomic_counter_buffers; - int max_atomic_counter_buffer_size; - int max_transform_feedback_buffers; - int max_transform_feedback_interleaved_components; - int max_cull_distances; - int max_combined_clip_and_cull_distances; - int max_samples; - int max_mesh_output_vertices_nv; - int max_mesh_output_primitives_nv; - int max_mesh_work_group_size_x_nv; - int max_mesh_work_group_size_y_nv; - int max_mesh_work_group_size_z_nv; - int max_task_work_group_size_x_nv; - int max_task_work_group_size_y_nv; - int max_task_work_group_size_z_nv; - int max_mesh_view_count_nv; - int maxDualSourceDrawBuffersEXT; - - glslang_limits_t limits; -} glslang_resource_t; - -typedef struct glslang_input_s { - glslang_source_t language; - glslang_stage_t stage; - glslang_client_t client; - glslang_target_client_version_t client_version; - glslang_target_language_t target_language; - glslang_target_language_version_t target_language_version; - /** Shader source code */ - const char* code; - int default_version; - glslang_profile_t default_profile; - int force_default_version_and_profile; - int forward_compatible; - glslang_messages_t messages; - const glslang_resource_t* resource; -} glslang_input_t; - -/* Inclusion result structure allocated by C include_local/include_system callbacks */ -typedef struct glsl_include_result_s { - /* Header file name or NULL if inclusion failed */ - const char* header_name; - - /* Header contents or NULL */ - const char* header_data; - size_t header_length; - -} glsl_include_result_t; - -/* Callback for local file inclusion */ -typedef glsl_include_result_t* (*glsl_include_local_func)(void* ctx, const char* header_name, const char* includer_name, - size_t include_depth); - -/* Callback for system file inclusion */ -typedef glsl_include_result_t* (*glsl_include_system_func)(void* ctx, const char* header_name, - const char* includer_name, size_t include_depth); - -/* Callback for include result destruction */ -typedef int (*glsl_free_include_result_func)(void* ctx, glsl_include_result_t* result); - -/* Collection of callbacks for GLSL preprocessor */ -typedef struct glsl_include_callbacks_s { - glsl_include_system_func include_system; - glsl_include_local_func include_local; - glsl_free_include_result_func free_include_result; -} glsl_include_callbacks_t; - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef GLSLANG_IS_SHARED_LIBRARY - #ifdef _WIN32 - #ifdef GLSLANG_EXPORTING - #define GLSLANG_EXPORT __declspec(dllexport) - #else - #define GLSLANG_EXPORT __declspec(dllimport) - #endif - #elif __GNUC__ >= 4 - #define GLSLANG_EXPORT __attribute__((visibility("default"))) - #endif -#endif // GLSLANG_IS_SHARED_LIBRARY - -#ifndef GLSLANG_EXPORT -#define GLSLANG_EXPORT -#endif - -GLSLANG_EXPORT int glslang_initialize_process(); -GLSLANG_EXPORT void glslang_finalize_process(); - -GLSLANG_EXPORT glslang_shader_t* glslang_shader_create(const glslang_input_t* input); -GLSLANG_EXPORT void glslang_shader_delete(glslang_shader_t* shader); -GLSLANG_EXPORT void glslang_shader_shift_binding(glslang_shader_t* shader, glslang_resource_type_t res, unsigned int base); -GLSLANG_EXPORT void glslang_shader_shift_binding_for_set(glslang_shader_t* shader, glslang_resource_type_t res, unsigned int base, unsigned int set); -GLSLANG_EXPORT void glslang_shader_set_options(glslang_shader_t* shader, int options); // glslang_shader_options_t -GLSLANG_EXPORT void glslang_shader_set_glsl_version(glslang_shader_t* shader, int version); -GLSLANG_EXPORT int glslang_shader_preprocess(glslang_shader_t* shader, const glslang_input_t* input); -GLSLANG_EXPORT int glslang_shader_parse(glslang_shader_t* shader, const glslang_input_t* input); -GLSLANG_EXPORT const char* glslang_shader_get_preprocessed_code(glslang_shader_t* shader); -GLSLANG_EXPORT const char* glslang_shader_get_info_log(glslang_shader_t* shader); -GLSLANG_EXPORT const char* glslang_shader_get_info_debug_log(glslang_shader_t* shader); - -GLSLANG_EXPORT glslang_program_t* glslang_program_create(); -GLSLANG_EXPORT void glslang_program_delete(glslang_program_t* program); -GLSLANG_EXPORT void glslang_program_add_shader(glslang_program_t* program, glslang_shader_t* shader); -GLSLANG_EXPORT int glslang_program_link(glslang_program_t* program, int messages); // glslang_messages_t -GLSLANG_EXPORT int glslang_program_map_io(glslang_program_t* program); -GLSLANG_EXPORT void glslang_program_SPIRV_generate(glslang_program_t* program, glslang_stage_t stage); -GLSLANG_EXPORT size_t glslang_program_SPIRV_get_size(glslang_program_t* program); -GLSLANG_EXPORT void glslang_program_SPIRV_get(glslang_program_t* program, unsigned int*); -GLSLANG_EXPORT unsigned int* glslang_program_SPIRV_get_ptr(glslang_program_t* program); -GLSLANG_EXPORT const char* glslang_program_SPIRV_get_messages(glslang_program_t* program); -GLSLANG_EXPORT const char* glslang_program_get_info_log(glslang_program_t* program); -GLSLANG_EXPORT const char* glslang_program_get_info_debug_log(glslang_program_t* program); - -#ifdef __cplusplus -} -#endif - -#endif /* #ifdef GLSLANG_C_IFACE_INCLUDED */ diff --git a/deps/glslang/glslang/Include/glslang_c_shader_types.h b/deps/glslang/glslang/Include/glslang_c_shader_types.h deleted file mode 100644 index dc9009f3..00000000 --- a/deps/glslang/glslang/Include/glslang_c_shader_types.h +++ /dev/null @@ -1,211 +0,0 @@ -/** - This code is based on the glslang_c_interface implementation by Viktor Latypov -**/ - -/** -BSD 2-Clause License - -Copyright (c) 2019, Viktor Latypov -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -2. 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. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (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 C_SHADER_TYPES_H_INCLUDED -#define C_SHADER_TYPES_H_INCLUDED - -#define LAST_ELEMENT_MARKER(x) x - -/* EShLanguage counterpart */ -typedef enum { - GLSLANG_STAGE_VERTEX, - GLSLANG_STAGE_TESSCONTROL, - GLSLANG_STAGE_TESSEVALUATION, - GLSLANG_STAGE_GEOMETRY, - GLSLANG_STAGE_FRAGMENT, - GLSLANG_STAGE_COMPUTE, - GLSLANG_STAGE_RAYGEN_NV, - GLSLANG_STAGE_INTERSECT_NV, - GLSLANG_STAGE_ANYHIT_NV, - GLSLANG_STAGE_CLOSESTHIT_NV, - GLSLANG_STAGE_MISS_NV, - GLSLANG_STAGE_CALLABLE_NV, - GLSLANG_STAGE_TASK_NV, - GLSLANG_STAGE_MESH_NV, - LAST_ELEMENT_MARKER(GLSLANG_STAGE_COUNT), -} glslang_stage_t; // would be better as stage, but this is ancient now - -/* EShLanguageMask counterpart */ -typedef enum { - GLSLANG_STAGE_VERTEX_MASK = (1 << GLSLANG_STAGE_VERTEX), - GLSLANG_STAGE_TESSCONTROL_MASK = (1 << GLSLANG_STAGE_TESSCONTROL), - GLSLANG_STAGE_TESSEVALUATION_MASK = (1 << GLSLANG_STAGE_TESSEVALUATION), - GLSLANG_STAGE_GEOMETRY_MASK = (1 << GLSLANG_STAGE_GEOMETRY), - GLSLANG_STAGE_FRAGMENT_MASK = (1 << GLSLANG_STAGE_FRAGMENT), - GLSLANG_STAGE_COMPUTE_MASK = (1 << GLSLANG_STAGE_COMPUTE), - GLSLANG_STAGE_RAYGEN_NV_MASK = (1 << GLSLANG_STAGE_RAYGEN_NV), - GLSLANG_STAGE_INTERSECT_NV_MASK = (1 << GLSLANG_STAGE_INTERSECT_NV), - GLSLANG_STAGE_ANYHIT_NV_MASK = (1 << GLSLANG_STAGE_ANYHIT_NV), - GLSLANG_STAGE_CLOSESTHIT_NV_MASK = (1 << GLSLANG_STAGE_CLOSESTHIT_NV), - GLSLANG_STAGE_MISS_NV_MASK = (1 << GLSLANG_STAGE_MISS_NV), - GLSLANG_STAGE_CALLABLE_NV_MASK = (1 << GLSLANG_STAGE_CALLABLE_NV), - GLSLANG_STAGE_TASK_NV_MASK = (1 << GLSLANG_STAGE_TASK_NV), - GLSLANG_STAGE_MESH_NV_MASK = (1 << GLSLANG_STAGE_MESH_NV), - LAST_ELEMENT_MARKER(GLSLANG_STAGE_MASK_COUNT), -} glslang_stage_mask_t; - -/* EShSource counterpart */ -typedef enum { - GLSLANG_SOURCE_NONE, - GLSLANG_SOURCE_GLSL, - GLSLANG_SOURCE_HLSL, - LAST_ELEMENT_MARKER(GLSLANG_SOURCE_COUNT), -} glslang_source_t; - -/* EShClient counterpart */ -typedef enum { - GLSLANG_CLIENT_NONE, - GLSLANG_CLIENT_VULKAN, - GLSLANG_CLIENT_OPENGL, - LAST_ELEMENT_MARKER(GLSLANG_CLIENT_COUNT), -} glslang_client_t; - -/* EShTargetLanguage counterpart */ -typedef enum { - GLSLANG_TARGET_NONE, - GLSLANG_TARGET_SPV, - LAST_ELEMENT_MARKER(GLSLANG_TARGET_COUNT), -} glslang_target_language_t; - -/* SH_TARGET_ClientVersion counterpart */ -typedef enum { - GLSLANG_TARGET_VULKAN_1_0 = (1 << 22), - GLSLANG_TARGET_VULKAN_1_1 = (1 << 22) | (1 << 12), - GLSLANG_TARGET_VULKAN_1_2 = (1 << 22) | (2 << 12), - GLSLANG_TARGET_VULKAN_1_3 = (1 << 22) | (3 << 12), - GLSLANG_TARGET_OPENGL_450 = 450, - LAST_ELEMENT_MARKER(GLSLANG_TARGET_CLIENT_VERSION_COUNT = 5), -} glslang_target_client_version_t; - -/* SH_TARGET_LanguageVersion counterpart */ -typedef enum { - GLSLANG_TARGET_SPV_1_0 = (1 << 16), - GLSLANG_TARGET_SPV_1_1 = (1 << 16) | (1 << 8), - GLSLANG_TARGET_SPV_1_2 = (1 << 16) | (2 << 8), - GLSLANG_TARGET_SPV_1_3 = (1 << 16) | (3 << 8), - GLSLANG_TARGET_SPV_1_4 = (1 << 16) | (4 << 8), - GLSLANG_TARGET_SPV_1_5 = (1 << 16) | (5 << 8), - GLSLANG_TARGET_SPV_1_6 = (1 << 16) | (6 << 8), - LAST_ELEMENT_MARKER(GLSLANG_TARGET_LANGUAGE_VERSION_COUNT = 7), -} glslang_target_language_version_t; - -/* EShExecutable counterpart */ -typedef enum { GLSLANG_EX_VERTEX_FRAGMENT, GLSLANG_EX_FRAGMENT } glslang_executable_t; - -// EShOptimizationLevel counterpart -// This enum is not used in the current C interface, but could be added at a later date. -// GLSLANG_OPT_NONE is the current default. -typedef enum { - GLSLANG_OPT_NO_GENERATION, - GLSLANG_OPT_NONE, - GLSLANG_OPT_SIMPLE, - GLSLANG_OPT_FULL, - LAST_ELEMENT_MARKER(GLSLANG_OPT_LEVEL_COUNT), -} glslang_optimization_level_t; - -/* EShTextureSamplerTransformMode counterpart */ -typedef enum { - GLSLANG_TEX_SAMP_TRANS_KEEP, - GLSLANG_TEX_SAMP_TRANS_UPGRADE_TEXTURE_REMOVE_SAMPLER, - LAST_ELEMENT_MARKER(GLSLANG_TEX_SAMP_TRANS_COUNT), -} glslang_texture_sampler_transform_mode_t; - -/* EShMessages counterpart */ -typedef enum { - GLSLANG_MSG_DEFAULT_BIT = 0, - GLSLANG_MSG_RELAXED_ERRORS_BIT = (1 << 0), - GLSLANG_MSG_SUPPRESS_WARNINGS_BIT = (1 << 1), - GLSLANG_MSG_AST_BIT = (1 << 2), - GLSLANG_MSG_SPV_RULES_BIT = (1 << 3), - GLSLANG_MSG_VULKAN_RULES_BIT = (1 << 4), - GLSLANG_MSG_ONLY_PREPROCESSOR_BIT = (1 << 5), - GLSLANG_MSG_READ_HLSL_BIT = (1 << 6), - GLSLANG_MSG_CASCADING_ERRORS_BIT = (1 << 7), - GLSLANG_MSG_KEEP_UNCALLED_BIT = (1 << 8), - GLSLANG_MSG_HLSL_OFFSETS_BIT = (1 << 9), - GLSLANG_MSG_DEBUG_INFO_BIT = (1 << 10), - GLSLANG_MSG_HLSL_ENABLE_16BIT_TYPES_BIT = (1 << 11), - GLSLANG_MSG_HLSL_LEGALIZATION_BIT = (1 << 12), - GLSLANG_MSG_HLSL_DX9_COMPATIBLE_BIT = (1 << 13), - GLSLANG_MSG_BUILTIN_SYMBOL_TABLE_BIT = (1 << 14), - GLSLANG_MSG_ENHANCED = (1 << 15), - LAST_ELEMENT_MARKER(GLSLANG_MSG_COUNT), -} glslang_messages_t; - -/* EShReflectionOptions counterpart */ -typedef enum { - GLSLANG_REFLECTION_DEFAULT_BIT = 0, - GLSLANG_REFLECTION_STRICT_ARRAY_SUFFIX_BIT = (1 << 0), - GLSLANG_REFLECTION_BASIC_ARRAY_SUFFIX_BIT = (1 << 1), - GLSLANG_REFLECTION_INTERMEDIATE_IOO_BIT = (1 << 2), - GLSLANG_REFLECTION_SEPARATE_BUFFERS_BIT = (1 << 3), - GLSLANG_REFLECTION_ALL_BLOCK_VARIABLES_BIT = (1 << 4), - GLSLANG_REFLECTION_UNWRAP_IO_BLOCKS_BIT = (1 << 5), - GLSLANG_REFLECTION_ALL_IO_VARIABLES_BIT = (1 << 6), - GLSLANG_REFLECTION_SHARED_STD140_SSBO_BIT = (1 << 7), - GLSLANG_REFLECTION_SHARED_STD140_UBO_BIT = (1 << 8), - LAST_ELEMENT_MARKER(GLSLANG_REFLECTION_COUNT), -} glslang_reflection_options_t; - -/* EProfile counterpart (from Versions.h) */ -typedef enum { - GLSLANG_BAD_PROFILE = 0, - GLSLANG_NO_PROFILE = (1 << 0), - GLSLANG_CORE_PROFILE = (1 << 1), - GLSLANG_COMPATIBILITY_PROFILE = (1 << 2), - GLSLANG_ES_PROFILE = (1 << 3), - LAST_ELEMENT_MARKER(GLSLANG_PROFILE_COUNT), -} glslang_profile_t; - -/* Shader options */ -typedef enum { - GLSLANG_SHADER_DEFAULT_BIT = 0, - GLSLANG_SHADER_AUTO_MAP_BINDINGS = (1 << 0), - GLSLANG_SHADER_AUTO_MAP_LOCATIONS = (1 << 1), - GLSLANG_SHADER_VULKAN_RULES_RELAXED = (1 << 2), - LAST_ELEMENT_MARKER(GLSLANG_SHADER_COUNT), -} glslang_shader_options_t; - -/* TResourceType counterpart */ -typedef enum { - GLSLANG_RESOURCE_TYPE_SAMPLER, - GLSLANG_RESOURCE_TYPE_TEXTURE, - GLSLANG_RESOURCE_TYPE_IMAGE, - GLSLANG_RESOURCE_TYPE_UBO, - GLSLANG_RESOURCE_TYPE_SSBO, - GLSLANG_RESOURCE_TYPE_UAV, - LAST_ELEMENT_MARKER(GLSLANG_RESOURCE_TYPE_COUNT), -} glslang_resource_type_t; - -#undef LAST_ELEMENT_MARKER - -#endif diff --git a/deps/glslang/glslang/Include/intermediate.h b/deps/glslang/glslang/Include/intermediate.h deleted file mode 100644 index a64ed683..00000000 --- a/deps/glslang/glslang/Include/intermediate.h +++ /dev/null @@ -1,1845 +0,0 @@ -// -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2012-2016 LunarG, Inc. -// Copyright (C) 2017 ARM Limited. -// Modifications Copyright (C) 2020 Advanced Micro Devices, 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: -// -// 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. -// - -// -// Definition of the in-memory high-level intermediate representation -// of shaders. This is a tree that parser creates. -// -// Nodes in the tree are defined as a hierarchy of classes derived from -// TIntermNode. Each is a node in a tree. There is no preset branching factor; -// each node can have it's own type of list of children. -// - -#ifndef __INTERMEDIATE_H -#define __INTERMEDIATE_H - -#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 - -#include "../Include/Common.h" -#include "../Include/Types.h" -#include "../Include/ConstantUnion.h" - -namespace glslang { - -class TIntermediate; - -// -// Operators used by the high-level (parse tree) representation. -// -enum TOperator { - EOpNull, // if in a node, should only mean a node is still being built - EOpSequence, // denotes a list of statements, or parameters, etc. - EOpLinkerObjects, // for aggregate node of objects the linker may need, if not reference by the rest of the AST - EOpFunctionCall, - EOpFunction, // For function definition - EOpParameters, // an aggregate listing the parameters to a function -#ifndef GLSLANG_WEB - EOpSpirvInst, -#endif - - // - // Unary operators - // - - EOpNegative, - EOpLogicalNot, - EOpVectorLogicalNot, - EOpBitwiseNot, - - EOpPostIncrement, - EOpPostDecrement, - EOpPreIncrement, - EOpPreDecrement, - - EOpCopyObject, - - // (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, - 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, - - // 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, - - // uint64_t <-> pointer - EOpConvUint64ToPtr, - EOpConvPtrToUint64, - - // uvec2 <-> pointer - EOpConvUvec2ToPtr, - EOpConvPtrToUvec2, - - // uint64_t -> accelerationStructureEXT - EOpConvUint64ToAccStruct, - - // uvec2 -> accelerationStructureEXT - EOpConvUvec2ToAccStruct, - - // - // binary operations - // - - EOpAdd, - EOpSub, - EOpMul, - EOpDiv, - EOpMod, - EOpRightShift, - EOpLeftShift, - EOpAnd, - EOpInclusiveOr, - EOpExclusiveOr, - EOpEqual, - EOpNotEqual, - EOpVectorEqual, - EOpVectorNotEqual, - EOpLessThan, - EOpGreaterThan, - EOpLessThanEqual, - EOpGreaterThanEqual, - EOpComma, - - EOpVectorTimesScalar, - EOpVectorTimesMatrix, - EOpMatrixTimesVector, - EOpMatrixTimesScalar, - - EOpLogicalOr, - EOpLogicalXor, - EOpLogicalAnd, - - EOpIndexDirect, - EOpIndexIndirect, - EOpIndexDirectStruct, - - EOpVectorSwizzle, - - EOpMethod, - EOpScoping, - - // - // Built-in functions mapped to operators - // - - EOpRadians, - EOpDegrees, - EOpSin, - EOpCos, - EOpTan, - EOpAsin, - EOpAcos, - EOpAtan, - EOpSinh, - EOpCosh, - EOpTanh, - EOpAsinh, - EOpAcosh, - EOpAtanh, - - EOpPow, - EOpExp, - EOpLog, - EOpExp2, - EOpLog2, - EOpSqrt, - EOpInverseSqrt, - - EOpAbs, - EOpSign, - EOpFloor, - EOpTrunc, - EOpRound, - EOpRoundEven, - EOpCeil, - EOpFract, - EOpModf, - EOpMin, - EOpMax, - EOpClamp, - EOpMix, - EOpStep, - EOpSmoothStep, - - EOpIsNan, - EOpIsInf, - - EOpFma, - - EOpFrexp, - EOpLdexp, - - EOpFloatBitsToInt, - EOpFloatBitsToUint, - EOpIntBitsToFloat, - EOpUintBitsToFloat, - EOpDoubleBitsToInt64, - EOpDoubleBitsToUint64, - EOpInt64BitsToDouble, - EOpUint64BitsToDouble, - EOpFloat16BitsToInt16, - EOpFloat16BitsToUint16, - EOpInt16BitsToFloat16, - EOpUint16BitsToFloat16, - EOpPackSnorm2x16, - EOpUnpackSnorm2x16, - EOpPackUnorm2x16, - EOpUnpackUnorm2x16, - EOpPackSnorm4x8, - EOpUnpackSnorm4x8, - EOpPackUnorm4x8, - EOpUnpackUnorm4x8, - EOpPackHalf2x16, - EOpUnpackHalf2x16, - EOpPackDouble2x32, - EOpUnpackDouble2x32, - EOpPackInt2x32, - EOpUnpackInt2x32, - EOpPackUint2x32, - EOpUnpackUint2x32, - EOpPackFloat2x16, - EOpUnpackFloat2x16, - EOpPackInt2x16, - EOpUnpackInt2x16, - EOpPackUint2x16, - EOpUnpackUint2x16, - EOpPackInt4x16, - EOpUnpackInt4x16, - EOpPackUint4x16, - EOpUnpackUint4x16, - EOpPack16, - EOpPack32, - EOpPack64, - EOpUnpack32, - EOpUnpack16, - EOpUnpack8, - - EOpLength, - EOpDistance, - EOpDot, - EOpCross, - EOpNormalize, - EOpFaceForward, - EOpReflect, - EOpRefract, - - EOpMin3, - EOpMax3, - EOpMid3, - - EOpDPdx, // Fragment only - EOpDPdy, // Fragment only - EOpFwidth, // Fragment only - EOpDPdxFine, // Fragment only - EOpDPdyFine, // Fragment only - EOpFwidthFine, // Fragment only - EOpDPdxCoarse, // Fragment only - EOpDPdyCoarse, // Fragment only - EOpFwidthCoarse, // Fragment only - - EOpInterpolateAtCentroid, // Fragment only - EOpInterpolateAtSample, // Fragment only - EOpInterpolateAtOffset, // Fragment only - EOpInterpolateAtVertex, - - EOpMatrixTimesMatrix, - EOpOuterProduct, - EOpDeterminant, - EOpMatrixInverse, - EOpTranspose, - - EOpFtransform, - - EOpNoise, - - EOpEmitVertex, // geometry only - EOpEndPrimitive, // geometry only - EOpEmitStreamVertex, // geometry only - EOpEndStreamPrimitive, // geometry only - - EOpBarrier, - EOpMemoryBarrier, - EOpMemoryBarrierAtomicCounter, - EOpMemoryBarrierBuffer, - EOpMemoryBarrierImage, - EOpMemoryBarrierShared, // compute only - EOpGroupMemoryBarrier, // compute only - - EOpBallot, - EOpReadInvocation, - EOpReadFirstInvocation, - - EOpAnyInvocation, - 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, - - EOpSubgroupPartition, - EOpSubgroupPartitionedAdd, - EOpSubgroupPartitionedMul, - EOpSubgroupPartitionedMin, - EOpSubgroupPartitionedMax, - EOpSubgroupPartitionedAnd, - EOpSubgroupPartitionedOr, - EOpSubgroupPartitionedXor, - EOpSubgroupPartitionedInclusiveAdd, - EOpSubgroupPartitionedInclusiveMul, - EOpSubgroupPartitionedInclusiveMin, - EOpSubgroupPartitionedInclusiveMax, - EOpSubgroupPartitionedInclusiveAnd, - EOpSubgroupPartitionedInclusiveOr, - EOpSubgroupPartitionedInclusiveXor, - EOpSubgroupPartitionedExclusiveAdd, - EOpSubgroupPartitionedExclusiveMul, - EOpSubgroupPartitionedExclusiveMin, - EOpSubgroupPartitionedExclusiveMax, - EOpSubgroupPartitionedExclusiveAnd, - EOpSubgroupPartitionedExclusiveOr, - EOpSubgroupPartitionedExclusiveXor, - - EOpSubgroupGuardStop, - - EOpMinInvocations, - EOpMaxInvocations, - EOpAddInvocations, - EOpMinInvocationsNonUniform, - EOpMaxInvocationsNonUniform, - EOpAddInvocationsNonUniform, - EOpMinInvocationsInclusiveScan, - EOpMaxInvocationsInclusiveScan, - EOpAddInvocationsInclusiveScan, - EOpMinInvocationsInclusiveScanNonUniform, - EOpMaxInvocationsInclusiveScanNonUniform, - EOpAddInvocationsInclusiveScanNonUniform, - EOpMinInvocationsExclusiveScan, - EOpMaxInvocationsExclusiveScan, - EOpAddInvocationsExclusiveScan, - EOpMinInvocationsExclusiveScanNonUniform, - EOpMaxInvocationsExclusiveScanNonUniform, - EOpAddInvocationsExclusiveScanNonUniform, - EOpSwizzleInvocations, - EOpSwizzleInvocationsMasked, - EOpWriteInvocation, - EOpMbcnt, - - EOpCubeFaceIndex, - EOpCubeFaceCoord, - EOpTime, - - EOpAtomicAdd, - EOpAtomicSubtract, - EOpAtomicMin, - EOpAtomicMax, - EOpAtomicAnd, - EOpAtomicOr, - EOpAtomicXor, - EOpAtomicExchange, - EOpAtomicCompSwap, - EOpAtomicLoad, - EOpAtomicStore, - - EOpAtomicCounterIncrement, // results in pre-increment value - EOpAtomicCounterDecrement, // results in post-decrement value - EOpAtomicCounter, - EOpAtomicCounterAdd, - EOpAtomicCounterSubtract, - EOpAtomicCounterMin, - EOpAtomicCounterMax, - EOpAtomicCounterAnd, - EOpAtomicCounterOr, - EOpAtomicCounterXor, - EOpAtomicCounterExchange, - EOpAtomicCounterCompSwap, - - EOpAny, - EOpAll, - - EOpCooperativeMatrixLoad, - EOpCooperativeMatrixStore, - EOpCooperativeMatrixMulAdd, - - EOpBeginInvocationInterlock, // Fragment only - EOpEndInvocationInterlock, // Fragment only - - EOpIsHelperInvocation, - - EOpDebugPrintf, - - // - // Branch - // - - EOpKill, // Fragment only - EOpTerminateInvocation, // Fragment only - EOpDemote, // Fragment only - EOpTerminateRayKHR, // Any-hit only - EOpIgnoreIntersectionKHR, // Any-hit only - EOpReturn, - EOpBreak, - EOpContinue, - EOpCase, - EOpDefault, - - // - // Constructors - // - - EOpConstructGuardStart, - EOpConstructInt, // these first scalar forms also identify what implicit conversion is needed - EOpConstructUint, - EOpConstructInt8, - EOpConstructUint8, - EOpConstructInt16, - EOpConstructUint16, - EOpConstructInt64, - EOpConstructUint64, - EOpConstructBool, - EOpConstructFloat, - EOpConstructDouble, - // Keep vector and matrix constructors in a consistent relative order for - // TParseContext::constructBuiltIn, which converts between 8/16/32 bit - // vector constructors - EOpConstructVec2, - EOpConstructVec3, - EOpConstructVec4, - EOpConstructMat2x2, - EOpConstructMat2x3, - EOpConstructMat2x4, - EOpConstructMat3x2, - EOpConstructMat3x3, - EOpConstructMat3x4, - EOpConstructMat4x2, - EOpConstructMat4x3, - EOpConstructMat4x4, - EOpConstructDVec2, - EOpConstructDVec3, - EOpConstructDVec4, - EOpConstructBVec2, - EOpConstructBVec3, - EOpConstructBVec4, - EOpConstructI8Vec2, - EOpConstructI8Vec3, - EOpConstructI8Vec4, - EOpConstructU8Vec2, - EOpConstructU8Vec3, - EOpConstructU8Vec4, - EOpConstructI16Vec2, - EOpConstructI16Vec3, - EOpConstructI16Vec4, - EOpConstructU16Vec2, - EOpConstructU16Vec3, - EOpConstructU16Vec4, - EOpConstructIVec2, - EOpConstructIVec3, - EOpConstructIVec4, - EOpConstructUVec2, - EOpConstructUVec3, - EOpConstructUVec4, - EOpConstructI64Vec2, - EOpConstructI64Vec3, - EOpConstructI64Vec4, - EOpConstructU64Vec2, - EOpConstructU64Vec3, - EOpConstructU64Vec4, - EOpConstructDMat2x2, - EOpConstructDMat2x3, - EOpConstructDMat2x4, - EOpConstructDMat3x2, - EOpConstructDMat3x3, - EOpConstructDMat3x4, - 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, - EOpConstructFloat16, - EOpConstructF16Vec2, - EOpConstructF16Vec3, - EOpConstructF16Vec4, - EOpConstructF16Mat2x2, - EOpConstructF16Mat2x3, - EOpConstructF16Mat2x4, - EOpConstructF16Mat3x2, - EOpConstructF16Mat3x3, - EOpConstructF16Mat3x4, - EOpConstructF16Mat4x2, - EOpConstructF16Mat4x3, - EOpConstructF16Mat4x4, - EOpConstructStruct, - EOpConstructTextureSampler, - EOpConstructNonuniform, // expected to be transformed away, not present in final AST - EOpConstructReference, - EOpConstructCooperativeMatrix, - EOpConstructAccStruct, - EOpConstructGuardEnd, - - // - // moves - // - - EOpAssign, - EOpAddAssign, - EOpSubAssign, - EOpMulAssign, - EOpVectorTimesMatrixAssign, - EOpVectorTimesScalarAssign, - EOpMatrixTimesScalarAssign, - EOpMatrixTimesMatrixAssign, - EOpDivAssign, - EOpModAssign, - EOpAndAssign, - EOpInclusiveOrAssign, - EOpExclusiveOrAssign, - EOpLeftShiftAssign, - EOpRightShiftAssign, - - // - // 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, - - // - // Image operations - // - - EOpImageGuardBegin, - - EOpImageQuerySize, - EOpImageQuerySamples, - EOpImageLoad, - EOpImageStore, - EOpImageLoadLod, - EOpImageStoreLod, - EOpImageAtomicAdd, - EOpImageAtomicMin, - EOpImageAtomicMax, - EOpImageAtomicAnd, - EOpImageAtomicOr, - EOpImageAtomicXor, - EOpImageAtomicExchange, - EOpImageAtomicCompSwap, - EOpImageAtomicLoad, - EOpImageAtomicStore, - - EOpSubpassLoad, - EOpSubpassLoadMS, - EOpSparseImageLoad, - EOpSparseImageLoadLod, - - EOpImageGuardEnd, - - // - // Texture operations - // - - EOpTextureGuardBegin, - - EOpTextureQuerySize, - EOpTextureQueryLod, - EOpTextureQueryLevels, - EOpTextureQuerySamples, - - EOpSamplingGuardBegin, - - EOpTexture, - EOpTextureProj, - EOpTextureLod, - EOpTextureOffset, - EOpTextureFetch, - EOpTextureFetchOffset, - EOpTextureProjOffset, - EOpTextureLodOffset, - EOpTextureProjLod, - EOpTextureProjLodOffset, - EOpTextureGrad, - EOpTextureGradOffset, - EOpTextureProjGrad, - EOpTextureProjGradOffset, - EOpTextureGather, - EOpTextureGatherOffset, - EOpTextureGatherOffsets, - EOpTextureClamp, - EOpTextureOffsetClamp, - EOpTextureGradClamp, - EOpTextureGradOffsetClamp, - EOpTextureGatherLod, - EOpTextureGatherLodOffset, - EOpTextureGatherLodOffsets, - EOpFragmentMaskFetch, - EOpFragmentFetch, - - EOpSparseTextureGuardBegin, - - EOpSparseTexture, - EOpSparseTextureLod, - EOpSparseTextureOffset, - EOpSparseTextureFetch, - EOpSparseTextureFetchOffset, - EOpSparseTextureLodOffset, - EOpSparseTextureGrad, - EOpSparseTextureGradOffset, - EOpSparseTextureGather, - EOpSparseTextureGatherOffset, - EOpSparseTextureGatherOffsets, - EOpSparseTexelsResident, - EOpSparseTextureClamp, - EOpSparseTextureOffsetClamp, - EOpSparseTextureGradClamp, - EOpSparseTextureGradOffsetClamp, - EOpSparseTextureGatherLod, - EOpSparseTextureGatherLodOffset, - EOpSparseTextureGatherLodOffsets, - - EOpSparseTextureGuardEnd, - - EOpImageFootprintGuardBegin, - EOpImageSampleFootprintNV, - EOpImageSampleFootprintClampNV, - EOpImageSampleFootprintLodNV, - EOpImageSampleFootprintGradNV, - EOpImageSampleFootprintGradClampNV, - EOpImageFootprintGuardEnd, - EOpSamplingGuardEnd, - EOpTextureGuardEnd, - - // - // Integer operations - // - - EOpAddCarry, - EOpSubBorrow, - EOpUMulExtended, - EOpIMulExtended, - EOpBitfieldExtract, - EOpBitfieldInsert, - EOpBitFieldReverse, - EOpBitCount, - EOpFindLSB, - EOpFindMSB, - - EOpCountLeadingZeros, - EOpCountTrailingZeros, - EOpAbsDifference, - EOpAddSaturate, - EOpSubSaturate, - EOpAverage, - EOpAverageRounded, - EOpMul32x16, - - EOpTraceNV, - EOpTraceRayMotionNV, - EOpTraceKHR, - EOpReportIntersection, - EOpIgnoreIntersectionNV, - EOpTerminateRayNV, - EOpExecuteCallableNV, - EOpExecuteCallableKHR, - EOpWritePackedPrimitiveIndices4x8NV, - - // - // GL_EXT_ray_query operations - // - - EOpRayQueryInitialize, - EOpRayQueryTerminate, - EOpRayQueryGenerateIntersection, - EOpRayQueryConfirmIntersection, - EOpRayQueryProceed, - EOpRayQueryGetIntersectionType, - EOpRayQueryGetRayTMin, - EOpRayQueryGetRayFlags, - EOpRayQueryGetIntersectionT, - EOpRayQueryGetIntersectionInstanceCustomIndex, - EOpRayQueryGetIntersectionInstanceId, - EOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffset, - EOpRayQueryGetIntersectionGeometryIndex, - EOpRayQueryGetIntersectionPrimitiveIndex, - EOpRayQueryGetIntersectionBarycentrics, - EOpRayQueryGetIntersectionFrontFace, - EOpRayQueryGetIntersectionCandidateAABBOpaque, - EOpRayQueryGetIntersectionObjectRayDirection, - EOpRayQueryGetIntersectionObjectRayOrigin, - EOpRayQueryGetWorldRayDirection, - EOpRayQueryGetWorldRayOrigin, - EOpRayQueryGetIntersectionObjectToWorld, - EOpRayQueryGetIntersectionWorldToObject, - - // - // HLSL operations - // - - EOpClip, // discard if input value < 0 - EOpIsFinite, - EOpLog10, // base 10 log - EOpRcp, // 1/x - EOpSaturate, // clamp from 0 to 1 - EOpSinCos, // sin and cos in out parameters - EOpGenMul, // mul(x,y) on any of mat/vec/scalars - EOpDst, // x = 1, y=src0.y * src1.y, z=src0.z, w=src1.w - EOpInterlockedAdd, // atomic ops, but uses [optional] out arg instead of return - EOpInterlockedAnd, // ... - EOpInterlockedCompareExchange, // ... - EOpInterlockedCompareStore, // ... - EOpInterlockedExchange, // ... - EOpInterlockedMax, // ... - EOpInterlockedMin, // ... - EOpInterlockedOr, // ... - EOpInterlockedXor, // ... - EOpAllMemoryBarrierWithGroupSync, // memory barriers without non-hlsl AST equivalents - EOpDeviceMemoryBarrier, // ... - EOpDeviceMemoryBarrierWithGroupSync, // ... - EOpWorkgroupMemoryBarrier, // ... - EOpWorkgroupMemoryBarrierWithGroupSync, // ... - EOpEvaluateAttributeSnapped, // InterpolateAtOffset with int position on 16x16 grid - EOpF32tof16, // HLSL conversion: half of a PackHalf2x16 - EOpF16tof32, // HLSL conversion: half of an UnpackHalf2x16 - EOpLit, // HLSL lighting coefficient vector - 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 - EOpMethodSampleCmp, // translation is performed. See HlslParseContext::decomposeSampleMethods(). - EOpMethodSampleCmpLevelZero, // ... - EOpMethodSampleGrad, // ... - EOpMethodSampleLevel, // ... - EOpMethodLoad, // ... - EOpMethodGetDimensions, // ... - EOpMethodGetSamplePosition, // ... - EOpMethodGather, // ... - 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 - EOpMethodGatherBlue, // because HLSL arguments are slightly different. - EOpMethodGatherAlpha, // ... - EOpMethodGatherCmp, // ... - EOpMethodGatherCmpRed, // ... - EOpMethodGatherCmpGreen, // ... - EOpMethodGatherCmpBlue, // ... - EOpMethodGatherCmpAlpha, // ... - - // 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()). - - // Shader Clock Ops - EOpReadClockSubgroupKHR, - EOpReadClockDeviceKHR, -}; - -class TIntermTraverser; -class TIntermOperator; -class TIntermAggregate; -class TIntermUnary; -class TIntermBinary; -class TIntermConstantUnion; -class TIntermSelection; -class TIntermSwitch; -class TIntermBranch; -class TIntermTyped; -class TIntermMethod; -class TIntermSymbol; -class TIntermLoop; - -} // end namespace glslang - -// -// Base class for the tree nodes -// -// (Put outside the glslang namespace, as it's used as part of the external interface.) -// -class TIntermNode { -public: - POOL_ALLOCATOR_NEW_DELETE(glslang::GetThreadPoolAllocator()) - - TIntermNode() { loc.init(); } - virtual const glslang::TSourceLoc& getLoc() const { return loc; } - virtual void setLoc(const glslang::TSourceLoc& l) { loc = l; } - virtual void traverse(glslang::TIntermTraverser*) = 0; - virtual glslang::TIntermTyped* getAsTyped() { return 0; } - virtual glslang::TIntermOperator* getAsOperator() { return 0; } - virtual glslang::TIntermConstantUnion* getAsConstantUnion() { return 0; } - virtual glslang::TIntermAggregate* getAsAggregate() { return 0; } - virtual glslang::TIntermUnary* getAsUnaryNode() { return 0; } - virtual glslang::TIntermBinary* getAsBinaryNode() { return 0; } - virtual glslang::TIntermSelection* getAsSelectionNode() { return 0; } - virtual glslang::TIntermSwitch* getAsSwitchNode() { return 0; } - 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; } - virtual const glslang::TIntermConstantUnion* getAsConstantUnion() const { return 0; } - virtual const glslang::TIntermAggregate* getAsAggregate() const { return 0; } - virtual const glslang::TIntermUnary* getAsUnaryNode() const { return 0; } - virtual const glslang::TIntermBinary* getAsBinaryNode() const { return 0; } - virtual const glslang::TIntermSelection* getAsSelectionNode() const { return 0; } - virtual const glslang::TIntermSwitch* getAsSwitchNode() const { return 0; } - 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: - TIntermNode(const TIntermNode&); - TIntermNode& operator=(const TIntermNode&); - glslang::TSourceLoc loc; -}; - -namespace glslang { - -// -// This is just to help yacc. -// -struct TIntermNodePair { - TIntermNode* node1; - TIntermNode* node2; -}; - -// -// Intermediate class for nodes that have a type. -// -class TIntermTyped : public TIntermNode { -public: - TIntermTyped(const TType& t) { type.shallowCopy(t); } - TIntermTyped(TBasicType basicType) { TType bt(basicType); type.shallowCopy(bt); } - virtual TIntermTyped* getAsTyped() { return this; } - virtual const TIntermTyped* getAsTyped() const { return this; } - virtual void setType(const TType& t) { type.shallowCopy(t); } - virtual const TType& getType() const { return type; } - virtual TType& getWritableType() { return type; } - - virtual TBasicType getBasicType() const { return type.getBasicType(); } - virtual TQualifier& getQualifier() { return type.getQualifier(); } - virtual const TQualifier& getQualifier() const { return type.getQualifier(); } - virtual TArraySizes* getArraySizes() { return type.getArraySizes(); } - virtual const TArraySizes* getArraySizes() const { return type.getArraySizes(); } - virtual void propagatePrecision(TPrecisionQualifier); - virtual int getVectorSize() const { return type.getVectorSize(); } - virtual int getMatrixCols() const { return type.getMatrixCols(); } - virtual int getMatrixRows() const { return type.getMatrixRows(); } - virtual bool isMatrix() const { return type.isMatrix(); } - virtual bool isArray() const { return type.isArray(); } - 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(); } - bool isAtomic() const { return type.isAtomic(); } - bool isReference() const { return type.isReference(); } - TString getCompleteString(bool enhanced = false) const { return type.getCompleteString(enhanced); } - -protected: - TIntermTyped& operator=(const TIntermTyped&); - TType type; -}; - -// -// Handle for, do-while, and while loops. -// -class TIntermLoop : public TIntermNode { -public: - TIntermLoop(TIntermNode* aBody, TIntermTyped* aTest, TIntermTyped* aTerminal, bool testFirst) : - body(aBody), - test(aTest), - terminal(aTerminal), - first(testFirst), - unroll(false), - dontUnroll(false), - dependency(0), - minIterations(0), - maxIterations(iterationsInfinite), - iterationMultiple(1), - peelCount(0), - partialCount(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; - peelCount = 0; - partialCount = 0; - } - bool getUnroll() const { return unroll; } - bool getDontUnroll() const { return dontUnroll; } - - static const unsigned int dependencyInfinite = 0xFFFFFFFF; - static const unsigned int iterationsInfinite = 0xFFFFFFFF; - void setLoopDependency(int d) { dependency = d; } - int getLoopDependency() const { return dependency; } - - void setMinIterations(unsigned int v) { minIterations = v; } - unsigned int getMinIterations() const { return minIterations; } - void setMaxIterations(unsigned int v) { maxIterations = v; } - unsigned int getMaxIterations() const { return maxIterations; } - void setIterationMultiple(unsigned int v) { iterationMultiple = v; } - unsigned int getIterationMultiple() const { return iterationMultiple; } - void setPeelCount(unsigned int v) { - peelCount = v; - dontUnroll = false; - } - unsigned int getPeelCount() const { return peelCount; } - void setPartialCount(unsigned int v) { - partialCount = v; - dontUnroll = false; - } - unsigned int getPartialCount() const { return partialCount; } - -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 - unsigned int minIterations; // as per the SPIR-V specification - unsigned int maxIterations; // as per the SPIR-V specification - unsigned int iterationMultiple; // as per the SPIR-V specification - unsigned int peelCount; // as per the SPIR-V specification - unsigned int partialCount; // as per the SPIR-V specification -}; - -// -// Handle case, break, continue, return, and kill. -// -class TIntermBranch : public TIntermNode { -public: - TIntermBranch(TOperator op, TIntermTyped* e) : - flowOp(op), - expression(e) { } - virtual TIntermBranch* getAsBranchNode() { return this; } - virtual const TIntermBranch* getAsBranchNode() const { return this; } - virtual void traverse(TIntermTraverser*); - TOperator getFlowOp() const { return flowOp; } - TIntermTyped* getExpression() const { return expression; } - void setExpression(TIntermTyped* pExpression) { expression = pExpression; } - void updatePrecision(TPrecisionQualifier parentPrecision); -protected: - TOperator flowOp; - TIntermTyped* expression; -}; - -// -// Represent method names before seeing their calling signature -// or resolving them to operations. Just an expression as the base object -// and a textural name. -// -class TIntermMethod : public TIntermTyped { -public: - TIntermMethod(TIntermTyped* o, const TType& t, const TString& m) : TIntermTyped(t), object(o), method(m) { } - virtual TIntermMethod* getAsMethodNode() { return this; } - virtual const TIntermMethod* getAsMethodNode() const { return this; } - virtual const TString& getMethodName() const { return method; } - virtual TIntermTyped* getObject() const { return object; } - virtual void traverse(TIntermTraverser*); -protected: - TIntermTyped* object; - TString method; -}; - -// -// Nodes that correspond to symbols or constants in the source code. -// -class TIntermSymbol : public TIntermTyped { -public: - // if symbol is initialized as symbol(sym), the memory comes from the pool allocator of sym. If sym comes from - // per process threadPoolAllocator, then it causes increased memory usage per compile - // it is essential to use "symbol = sym" to assign to symbol - TIntermSymbol(long long i, const TString& n, const TType& t) - : TIntermTyped(t), id(i), -#ifndef GLSLANG_WEB - flattenSubset(-1), -#endif - constSubtree(nullptr) - { name = n; } - virtual long long getId() const { return id; } - virtual void changeId(long long i) { id = i; } - virtual const TString& getName() const { return name; } - virtual void traverse(TIntermTraverser*); - virtual TIntermSymbol* getAsSymbolNode() { return this; } - virtual const TIntermSymbol* getAsSymbolNode() const { return this; } - void setConstArray(const TConstUnionArray& c) { constArray = c; } - const TConstUnionArray& getConstArray() const { return constArray; } - void setConstSubtree(TIntermTyped* subtree) { constSubtree = subtree; } - TIntermTyped* getConstSubtree() const { return constSubtree; } -#ifndef GLSLANG_WEB - void setFlattenSubset(int subset) { flattenSubset = subset; } - virtual const TString& getAccessName() const; - - 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(long long newId) { id = newId; } - -protected: - long long id; // the unique id of the symbol this node represents -#ifndef GLSLANG_WEB - 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; -}; - -class TIntermConstantUnion : public TIntermTyped { -public: - TIntermConstantUnion(const TConstUnionArray& ua, const TType& t) : TIntermTyped(t), constArray(ua), literal(false) { } - const TConstUnionArray& getConstArray() const { return constArray; } - virtual TIntermConstantUnion* getAsConstantUnion() { return this; } - virtual const TIntermConstantUnion* getAsConstantUnion() const { return this; } - virtual void traverse(TIntermTraverser*); - virtual TIntermTyped* fold(TOperator, const TIntermTyped*) const; - virtual TIntermTyped* fold(TOperator, const TType&) const; - void setLiteral() { literal = true; } - void setExpression() { literal = false; } - bool isLiteral() const { return literal; } - -protected: - TIntermConstantUnion& operator=(const TIntermConstantUnion&); - - const TConstUnionArray constArray; - bool literal; // true if node represents a literal in the source code -}; - -// Represent the independent aspects of a texturing TOperator -struct TCrackedTextureOp { - bool query; - bool proj; - bool lod; - bool fetch; - bool offset; - bool offsets; - bool gather; - bool grad; - bool subpass; - bool lodClamp; - bool fragMask; -}; - -// -// Intermediate class for node types that hold operators. -// -class TIntermOperator : public TIntermTyped { -public: - virtual TIntermOperator* getAsOperator() { return this; } - virtual const TIntermOperator* getAsOperator() const { return this; } - TOperator getOp() const { return op; } - void setOp(TOperator newOp) { op = newOp; } - bool modifiesState() const; - bool isConstructor() const; - bool isTexture() const { return op > EOpTextureGuardBegin && op < EOpTextureGuardEnd; } - bool isSampling() const { return op > EOpSamplingGuardBegin && op < EOpSamplingGuardEnd; } -#ifdef GLSLANG_WEB - bool isImage() const { return false; } - bool isSparseTexture() const { return false; } - bool isImageFootprint() const { return false; } - bool isSparseImage() const { return false; } - bool isSubgroup() const { return false; } -#else - bool isImage() const { return op > EOpImageGuardBegin && op < EOpImageGuardEnd; } - bool isSparseTexture() const { return op > EOpSparseTextureGuardBegin && op < EOpSparseTextureGuardEnd; } - bool isImageFootprint() const { return op > EOpImageFootprintGuardBegin && op < EOpImageFootprintGuardEnd; } - bool isSparseImage() const { return op == EOpSparseImageLoad; } - bool isSubgroup() const { return op > EOpSubgroupGuardStart && op < EOpSubgroupGuardStop; } -#endif - - void setOperationPrecision(TPrecisionQualifier p) { operationPrecision = p; } - TPrecisionQualifier getOperationPrecision() const { return operationPrecision != EpqNone ? - operationPrecision : - type.getQualifier().precision; } - TString getCompleteString() const - { - TString cs = type.getCompleteString(); - if (getOperationPrecision() != type.getQualifier().precision) { - cs += ", operation at "; - cs += GetPrecisionQualifierString(getOperationPrecision()); - } - - return cs; - } - - // Crack the op into the individual dimensions of texturing operation. - void crackTexture(TSampler sampler, TCrackedTextureOp& cracked) const - { - cracked.query = false; - cracked.proj = false; - cracked.lod = false; - cracked.fetch = false; - cracked.offset = false; - cracked.offsets = false; - cracked.gather = false; - cracked.grad = false; - cracked.subpass = false; - cracked.lodClamp = false; - cracked.fragMask = false; - - switch (op) { - case EOpImageQuerySize: - case EOpImageQuerySamples: - case EOpTextureQuerySize: - case EOpTextureQueryLod: - case EOpTextureQueryLevels: - case EOpTextureQuerySamples: - case EOpSparseTexelsResident: - cracked.query = true; - break; - case EOpTexture: - case EOpSparseTexture: - break; - case EOpTextureProj: - cracked.proj = true; - break; - case EOpTextureLod: - case EOpSparseTextureLod: - cracked.lod = true; - break; - case EOpTextureOffset: - case EOpSparseTextureOffset: - cracked.offset = true; - break; - case EOpTextureFetch: - case EOpSparseTextureFetch: - cracked.fetch = true; - if (sampler.is1D() || (sampler.dim == Esd2D && ! sampler.isMultiSample()) || sampler.dim == Esd3D) - cracked.lod = true; - break; - case EOpTextureFetchOffset: - case EOpSparseTextureFetchOffset: - cracked.fetch = true; - cracked.offset = true; - if (sampler.is1D() || (sampler.dim == Esd2D && ! sampler.isMultiSample()) || sampler.dim == Esd3D) - cracked.lod = true; - break; - case EOpTextureProjOffset: - cracked.offset = true; - cracked.proj = true; - break; - case EOpTextureLodOffset: - case EOpSparseTextureLodOffset: - cracked.offset = true; - cracked.lod = true; - break; - case EOpTextureProjLod: - cracked.lod = true; - cracked.proj = true; - break; - case EOpTextureProjLodOffset: - cracked.offset = true; - cracked.lod = true; - cracked.proj = true; - break; - case EOpTextureGrad: - case EOpSparseTextureGrad: - cracked.grad = true; - break; - case EOpTextureGradOffset: - case EOpSparseTextureGradOffset: - cracked.grad = true; - cracked.offset = true; - break; - case EOpTextureProjGrad: - cracked.grad = true; - cracked.proj = true; - break; - case EOpTextureProjGradOffset: - cracked.grad = true; - cracked.offset = true; - cracked.proj = true; - break; -#ifndef GLSLANG_WEB - case EOpTextureClamp: - case EOpSparseTextureClamp: - cracked.lodClamp = true; - break; - case EOpTextureOffsetClamp: - case EOpSparseTextureOffsetClamp: - cracked.offset = true; - cracked.lodClamp = true; - break; - case EOpTextureGradClamp: - case EOpSparseTextureGradClamp: - cracked.grad = true; - cracked.lodClamp = true; - break; - case EOpTextureGradOffsetClamp: - case EOpSparseTextureGradOffsetClamp: - cracked.grad = true; - cracked.offset = true; - cracked.lodClamp = true; - break; - case EOpTextureGather: - case EOpSparseTextureGather: - cracked.gather = true; - break; - case EOpTextureGatherOffset: - case EOpSparseTextureGatherOffset: - cracked.gather = true; - cracked.offset = true; - break; - case EOpTextureGatherOffsets: - case EOpSparseTextureGatherOffsets: - cracked.gather = true; - cracked.offsets = true; - break; - 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; - case EOpImageSampleFootprintNV: - break; - case EOpImageSampleFootprintClampNV: - cracked.lodClamp = true; - break; - case EOpImageSampleFootprintLodNV: - cracked.lod = true; - break; - case EOpImageSampleFootprintGradNV: - cracked.grad = true; - break; - case EOpImageSampleFootprintGradClampNV: - cracked.lodClamp = true; - cracked.grad = true; - break; - case EOpSubpassLoad: - case EOpSubpassLoadMS: - cracked.subpass = true; - break; -#endif - default: - break; - } - } - -protected: - TIntermOperator(TOperator o) : TIntermTyped(EbtFloat), op(o), operationPrecision(EpqNone) {} - TIntermOperator(TOperator o, TType& t) : TIntermTyped(t), op(o), operationPrecision(EpqNone) {} - TOperator op; - // The result precision is in the inherited TType, and is usually meant to be both - // the operation precision and the result precision. However, some more complex things, - // like built-in function calls, distinguish between the two, in which case non-EqpNone - // 'operationPrecision' overrides the result precision as far as operation precision - // is concerned. - TPrecisionQualifier operationPrecision; -}; - -// -// Nodes for all the basic binary math operators. -// -class TIntermBinary : public TIntermOperator { -public: - TIntermBinary(TOperator o) : TIntermOperator(o) {} - virtual void traverse(TIntermTraverser*); - virtual void setLeft(TIntermTyped* n) { left = n; } - virtual void setRight(TIntermTyped* n) { right = n; } - virtual TIntermTyped* getLeft() const { return left; } - virtual TIntermTyped* getRight() const { return right; } - virtual TIntermBinary* getAsBinaryNode() { return this; } - virtual const TIntermBinary* getAsBinaryNode() const { return this; } - virtual void updatePrecision(); -protected: - TIntermTyped* left; - TIntermTyped* right; -}; - -// -// Nodes for unary math operators. -// -class TIntermUnary : public TIntermOperator { -public: - TIntermUnary(TOperator o, TType& t) : TIntermOperator(o, t), operand(0) {} - TIntermUnary(TOperator o) : TIntermOperator(o), operand(0) {} - virtual void traverse(TIntermTraverser*); - virtual void setOperand(TIntermTyped* o) { operand = o; } - virtual TIntermTyped* getOperand() { return operand; } - virtual const TIntermTyped* getOperand() const { return operand; } - virtual TIntermUnary* getAsUnaryNode() { return this; } - virtual const TIntermUnary* getAsUnaryNode() const { return this; } - virtual void updatePrecision(); -#ifndef GLSLANG_WEB - void setSpirvInstruction(const TSpirvInstruction& inst) { spirvInst = inst; } - const TSpirvInstruction& getSpirvInstruction() const { return spirvInst; } -#endif -protected: - TIntermTyped* operand; -#ifndef GLSLANG_WEB - TSpirvInstruction spirvInst; -#endif -}; - -typedef TVector TIntermSequence; -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() { delete pragmaTable; } - virtual TIntermAggregate* getAsAggregate() { return this; } - virtual const TIntermAggregate* getAsAggregate() const { return this; } - virtual void updatePrecision(); - virtual void setOperator(TOperator o) { op = o; } - virtual TIntermSequence& getSequence() { return sequence; } - virtual const TIntermSequence& getSequence() const { return sequence; } - virtual void setName(const TString& n) { name = n; } - virtual const TString& getName() const { return name; } - virtual void traverse(TIntermTraverser*); - virtual void setUserDefined() { userDefined = true; } - virtual bool isUserDefined() { return userDefined; } - virtual TQualifierList& getQualifierList() { return qualifier; } - virtual const TQualifierList& getQualifierList() const { return qualifier; } - void setOptimize(bool o) { optimize = o; } - void setDebug(bool d) { debug = d; } - bool getOptimize() const { return optimize; } - bool getDebug() const { return debug; } - void setPragmaTable(const TPragmaTable& pTable); - const TPragmaTable& getPragmaTable() const { return *pragmaTable; } -#ifndef GLSLANG_WEB - void setSpirvInstruction(const TSpirvInstruction& inst) { spirvInst = inst; } - const TSpirvInstruction& getSpirvInstruction() const { return spirvInst; } -#endif -protected: - TIntermAggregate(const TIntermAggregate&); // disallow copy constructor - TIntermAggregate& operator=(const TIntermAggregate&); // disallow assignment operator - TIntermSequence sequence; - TQualifierList qualifier; - TString name; - bool userDefined; // used for user defined function names - bool optimize; - bool debug; - TPragmaTable* pragmaTable; -#ifndef GLSLANG_WEB - TSpirvInstruction spirvInst; -#endif -}; - -// -// For if tests. -// -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) {} - TIntermSelection(TIntermTyped* cond, TIntermNode* trueB, TIntermNode* falseB, const TType& type) : - 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 void setCondition(TIntermTyped* c) { condition = c; } - virtual TIntermNode* getTrueBlock() const { return trueBlock; } - virtual void setTrueBlock(TIntermTyped* tb) { trueBlock = tb; } - virtual TIntermNode* getFalseBlock() const { return falseBlock; } - virtual void setFalseBlock(TIntermTyped* fb) { falseBlock = fb; } - 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 -}; - -// -// For switch statements. Designed use is that a switch will have sequence of nodes -// that are either case/default nodes or a *single* node that represents all the code -// in between (if any) consecutive case/defaults. So, a traversal need only deal with -// 0 or 1 nodes per case/default statement. -// -class TIntermSwitch : public TIntermNode { -public: - 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 -{ - EvPreVisit, - EvInVisit, - EvPostVisit -}; - -// -// For traversing the tree. User should derive from this, -// put their traversal specific data in it, and then pass -// it to a Traverse method. -// -// When using this, just fill in the methods for nodes you want visited. -// Return false from a pre-visit to skip visiting that node's subtree. -// -// Explicitly set postVisit to true if you want post visiting, otherwise, -// filled in methods will only be called at pre-visit time (before processing -// the subtree). Similarly for inVisit for in-order visiting of nodes with -// multiple children. -// -// If you only want post-visits, explicitly turn off preVisit (and inVisit) -// and turn on postVisit. -// -// In general, for the visit*() methods, return true from interior nodes -// to have the traversal continue on to children. -// -// If you process children yourself, or don't want them processed, return false. -// -class TIntermTraverser { -public: - POOL_ALLOCATOR_NEW_DELETE(glslang::GetThreadPoolAllocator()) - TIntermTraverser(bool preVisit = true, bool inVisit = false, bool postVisit = false, bool rightToLeft = false) : - preVisit(preVisit), - inVisit(inVisit), - postVisit(postVisit), - rightToLeft(rightToLeft), - depth(0), - maxDepth(0) { } - virtual ~TIntermTraverser() { } - - virtual void visitSymbol(TIntermSymbol*) { } - virtual void visitConstantUnion(TIntermConstantUnion*) { } - virtual bool visitBinary(TVisit, TIntermBinary*) { return true; } - virtual bool visitUnary(TVisit, TIntermUnary*) { return true; } - virtual bool visitSelection(TVisit, TIntermSelection*) { return true; } - virtual bool visitAggregate(TVisit, TIntermAggregate*) { return true; } - virtual bool visitLoop(TVisit, TIntermLoop*) { return true; } - virtual bool visitBranch(TVisit, TIntermBranch*) { return true; } - virtual bool visitSwitch(TVisit, TIntermSwitch*) { return true; } - - int getMaxDepth() const { return maxDepth; } - - void incrementDepth(TIntermNode *current) - { - depth++; - maxDepth = (std::max)(maxDepth, depth); - path.push_back(current); - } - - void decrementDepth() - { - depth--; - path.pop_back(); - } - - TIntermNode *getParentNode() - { - return path.size() == 0 ? NULL : path.back(); - } - - const bool preVisit; - const bool inVisit; - const bool postVisit; - const bool rightToLeft; - -protected: - TIntermTraverser& operator=(TIntermTraverser&); - - int depth; - int maxDepth; - - // All the nodes from root to the current node's parent during traversing. - TVector path; -}; - -// KHR_vulkan_glsl says "Two arrays sized with specialization constants are the same type only if -// sized with the same symbol, involving no operations" -inline bool SameSpecializationConstants(TIntermTyped* node1, TIntermTyped* node2) -{ - return node1->getAsSymbolNode() && node2->getAsSymbolNode() && - node1->getAsSymbolNode()->getId() == node2->getAsSymbolNode()->getId(); -} - -} // end namespace glslang - -#endif // __INTERMEDIATE_H diff --git a/deps/glslang/glslang/MachineIndependent/Constant.cpp b/deps/glslang/glslang/MachineIndependent/Constant.cpp deleted file mode 100644 index 5fc61dbb..00000000 --- a/deps/glslang/glslang/MachineIndependent/Constant.cpp +++ /dev/null @@ -1,1398 +0,0 @@ -// -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2012-2013 LunarG, Inc. -// Copyright (C) 2017 ARM Limited. -// Copyright (C) 2018-2020 Google, Inc. -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// Neither the name of 3Dlabs Inc. Ltd. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -// - -#include "localintermediate.h" -#include -#include -#include -#include - -namespace { - -using namespace glslang; - -const double pi = 3.1415926535897932384626433832795; - -} // end anonymous namespace - - -namespace glslang { - -// -// The fold functions see if an operation on a constant can be done in place, -// without generating run-time code. -// -// Returns the node to keep using, which may or may not be the node passed in. -// -// Note: As of version 1.2, all constant operations must be folded. It is -// not opportunistic, but rather a semantic requirement. -// - -// -// Do folding between a pair of nodes. -// 'this' is the left-hand operand and 'rightConstantNode' is the right-hand operand. -// -// Returns a new node representing the result. -// -TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TIntermTyped* rightConstantNode) const -{ - // For most cases, the return type matches the argument type, so set that - // up and just code to exceptions below. - TType returnType; - returnType.shallowCopy(getType()); - - // - // A pair of nodes is to be folded together - // - - const TIntermConstantUnion *rightNode = rightConstantNode->getAsConstantUnion(); - TConstUnionArray leftUnionArray = getConstArray(); - TConstUnionArray rightUnionArray = rightNode->getConstArray(); - - // Figure out the size of the result - int newComps; - int constComps; - switch(op) { - case EOpMatrixTimesMatrix: - newComps = rightNode->getMatrixCols() * getMatrixRows(); - break; - case EOpMatrixTimesVector: - newComps = getMatrixRows(); - break; - case EOpVectorTimesMatrix: - newComps = rightNode->getMatrixCols(); - break; - default: - newComps = getType().computeNumComponents(); - constComps = rightConstantNode->getType().computeNumComponents(); - if (constComps == 1 && newComps > 1) { - // for a case like vec4 f = vec4(2,3,4,5) + 1.2; - 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); - newComps = constComps; - rightUnionArray = rightNode->getConstArray(); - TConstUnionArray smearedArray(newComps, getConstArray()[0]); - leftUnionArray = smearedArray; - returnType.shallowCopy(rightNode->getType()); - } - break; - } - - TConstUnionArray newConstArray(newComps); - TType constBool(EbtBool, EvqConst); - - switch(op) { - case EOpAdd: - for (int i = 0; i < newComps; i++) - newConstArray[i] = leftUnionArray[i] + rightUnionArray[i]; - break; - case EOpSub: - for (int i = 0; i < newComps; i++) - newConstArray[i] = leftUnionArray[i] - rightUnionArray[i]; - break; - - case EOpMul: - case EOpVectorTimesScalar: - case EOpMatrixTimesScalar: - for (int i = 0; i < newComps; i++) - newConstArray[i] = leftUnionArray[i] * rightUnionArray[i]; - break; - case EOpMatrixTimesMatrix: - for (int row = 0; row < getMatrixRows(); row++) { - for (int column = 0; column < rightNode->getMatrixCols(); column++) { - double sum = 0.0f; - for (int i = 0; i < rightNode->getMatrixRows(); i++) - sum += leftUnionArray[i * getMatrixRows() + row].getDConst() * rightUnionArray[column * rightNode->getMatrixRows() + i].getDConst(); - newConstArray[column * getMatrixRows() + row].setDConst(sum); - } - } - returnType.shallowCopy(TType(getType().getBasicType(), EvqConst, 0, rightNode->getMatrixCols(), getMatrixRows())); - break; - case EOpDiv: - for (int i = 0; i < newComps; i++) { - switch (getType().getBasicType()) { - case EbtDouble: - case EbtFloat: - case EbtFloat16: - if (rightUnionArray[i].getDConst() != 0.0) - newConstArray[i].setDConst(leftUnionArray[i].getDConst() / rightUnionArray[i].getDConst()); - else if (leftUnionArray[i].getDConst() > 0.0) - newConstArray[i].setDConst((double)INFINITY); - else if (leftUnionArray[i].getDConst() < 0.0) - newConstArray[i].setDConst(-(double)INFINITY); - else - newConstArray[i].setDConst((double)NAN); - break; - - case EbtInt: - if (rightUnionArray[i] == 0) - newConstArray[i].setIConst(0x7FFFFFFF); - else if (rightUnionArray[i].getIConst() == -1 && leftUnionArray[i].getIConst() == (int)-0x80000000ll) - newConstArray[i].setIConst((int)-0x80000000ll); - else - newConstArray[i].setIConst(leftUnionArray[i].getIConst() / rightUnionArray[i].getIConst()); - break; - - case EbtUint: - if (rightUnionArray[i] == 0u) - newConstArray[i].setUConst(0xFFFFFFFFu); - else - newConstArray[i].setUConst(leftUnionArray[i].getUConst() / rightUnionArray[i].getUConst()); - break; - -#ifndef GLSLANG_WEB - case EbtInt8: - if (rightUnionArray[i] == (signed char)0) - newConstArray[i].setI8Const((signed char)0x7F); - else if (rightUnionArray[i].getI8Const() == (signed char)-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] == (unsigned char)0u) - newConstArray[i].setU8Const((unsigned char)0xFFu); - else - newConstArray[i].setU8Const(leftUnionArray[i].getU8Const() / rightUnionArray[i].getU8Const()); - break; - - case EbtInt16: - if (rightUnionArray[i] == (signed short)0) - newConstArray[i].setI16Const((signed short)0x7FFF); - else if (rightUnionArray[i].getI16Const() == (signed short)-1 && leftUnionArray[i].getI16Const() == (signed short)-0x8000) - newConstArray[i].setI16Const((signed short)-0x8000); - else - newConstArray[i].setI16Const(leftUnionArray[i].getI16Const() / rightUnionArray[i].getI16Const()); - break; - - case EbtUint16: - if (rightUnionArray[i] == (unsigned short)0u) - newConstArray[i].setU16Const((unsigned short)0xFFFFu); - else - newConstArray[i].setU16Const(leftUnionArray[i].getU16Const() / rightUnionArray[i].getU16Const()); - break; - - case EbtInt64: - if (rightUnionArray[i] == 0ll) - newConstArray[i].setI64Const(0x7FFFFFFFFFFFFFFFll); - else if (rightUnionArray[i].getI64Const() == -1 && leftUnionArray[i].getI64Const() == (long long)-0x8000000000000000ll) - newConstArray[i].setI64Const((long long)-0x8000000000000000ll); - else - newConstArray[i].setI64Const(leftUnionArray[i].getI64Const() / rightUnionArray[i].getI64Const()); - break; - - case EbtUint64: - if (rightUnionArray[i] == 0ull) - newConstArray[i].setU64Const(0xFFFFFFFFFFFFFFFFull); - else - newConstArray[i].setU64Const(leftUnionArray[i].getU64Const() / rightUnionArray[i].getU64Const()); - break; - default: - return 0; -#endif - } - } - break; - - case EOpMatrixTimesVector: - for (int i = 0; i < getMatrixRows(); i++) { - double sum = 0.0f; - for (int j = 0; j < rightNode->getVectorSize(); j++) { - sum += leftUnionArray[j*getMatrixRows() + i].getDConst() * rightUnionArray[j].getDConst(); - } - newConstArray[i].setDConst(sum); - } - - returnType.shallowCopy(TType(getBasicType(), EvqConst, getMatrixRows())); - break; - - case EOpVectorTimesMatrix: - for (int i = 0; i < rightNode->getMatrixCols(); i++) { - double sum = 0.0f; - for (int j = 0; j < getVectorSize(); j++) - sum += leftUnionArray[j].getDConst() * rightUnionArray[i*rightNode->getMatrixRows() + j].getDConst(); - newConstArray[i].setDConst(sum); - } - - returnType.shallowCopy(TType(getBasicType(), EvqConst, rightNode->getMatrixCols())); - break; - - case EOpMod: - 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; -#ifndef GLSLANG_WEB - case EbtInt64: - if (rightUnionArray[i].getI64Const() == -1 && leftUnionArray[i].getI64Const() == LLONG_MIN) { - newConstArray[i].setI64Const(0); - break; - } else goto modulo_default; - 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; - - case EOpRightShift: - for (int i = 0; i < newComps; i++) - newConstArray[i] = leftUnionArray[i] >> rightUnionArray[i]; - break; - - case EOpLeftShift: - for (int i = 0; i < newComps; i++) - newConstArray[i] = leftUnionArray[i] << rightUnionArray[i]; - break; - - case EOpAnd: - for (int i = 0; i < newComps; i++) - newConstArray[i] = leftUnionArray[i] & rightUnionArray[i]; - break; - case EOpInclusiveOr: - for (int i = 0; i < newComps; i++) - newConstArray[i] = leftUnionArray[i] | rightUnionArray[i]; - break; - case EOpExclusiveOr: - for (int i = 0; i < newComps; i++) - newConstArray[i] = leftUnionArray[i] ^ rightUnionArray[i]; - break; - - case EOpLogicalAnd: // this code is written for possible future use, will not get executed currently - for (int i = 0; i < newComps; i++) - newConstArray[i] = leftUnionArray[i] && rightUnionArray[i]; - break; - - case EOpLogicalOr: // this code is written for possible future use, will not get executed currently - for (int i = 0; i < newComps; i++) - newConstArray[i] = leftUnionArray[i] || rightUnionArray[i]; - break; - - case EOpLogicalXor: - for (int i = 0; i < newComps; i++) { - switch (getType().getBasicType()) { - case EbtBool: newConstArray[i].setBConst((leftUnionArray[i] == rightUnionArray[i]) ? false : true); break; - default: assert(false && "Default missing"); - } - } - break; - - case EOpLessThan: - newConstArray[0].setBConst(leftUnionArray[0] < rightUnionArray[0]); - returnType.shallowCopy(constBool); - break; - case EOpGreaterThan: - newConstArray[0].setBConst(leftUnionArray[0] > rightUnionArray[0]); - returnType.shallowCopy(constBool); - break; - case EOpLessThanEqual: - newConstArray[0].setBConst(! (leftUnionArray[0] > rightUnionArray[0])); - returnType.shallowCopy(constBool); - break; - case EOpGreaterThanEqual: - newConstArray[0].setBConst(! (leftUnionArray[0] < rightUnionArray[0])); - returnType.shallowCopy(constBool); - break; - case EOpEqual: - newConstArray[0].setBConst(rightNode->getConstArray() == leftUnionArray); - returnType.shallowCopy(constBool); - break; - case EOpNotEqual: - newConstArray[0].setBConst(rightNode->getConstArray() != leftUnionArray); - returnType.shallowCopy(constBool); - break; - - default: - return 0; - } - - TIntermConstantUnion *newNode = new TIntermConstantUnion(newConstArray, returnType); - newNode->setLoc(getLoc()); - - return newNode; -} - -// -// Do single unary node folding -// -// Returns a new node representing the result. -// -TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TType& returnType) const -{ - // First, size the result, which is mostly the same as the argument's size, - // but not always, and classify what is componentwise. - // Also, eliminate cases that can't be compile-time constant. - int resultSize; - bool componentWise = true; - - int objectSize = getType().computeNumComponents(); - switch (op) { - case EOpDeterminant: - case EOpAny: - case EOpAll: - case EOpLength: - componentWise = false; - resultSize = 1; - break; - - case EOpEmitStreamVertex: - case EOpEndStreamPrimitive: - // These don't fold - return nullptr; - - case EOpPackSnorm2x16: - case EOpPackUnorm2x16: - case EOpPackHalf2x16: - componentWise = false; - resultSize = 1; - break; - - case EOpUnpackSnorm2x16: - case EOpUnpackUnorm2x16: - case EOpUnpackHalf2x16: - componentWise = false; - resultSize = 2; - break; - - case EOpPack16: - case EOpPack32: - case EOpPack64: - case EOpUnpack32: - case EOpUnpack16: - case EOpUnpack8: - case EOpNormalize: - componentWise = false; - resultSize = objectSize; - break; - - default: - resultSize = objectSize; - break; - } - - // Set up for processing - TConstUnionArray newConstArray(resultSize); - const TConstUnionArray& unionArray = getConstArray(); - - // Process non-component-wise operations - switch (op) { - case EOpLength: - case EOpNormalize: - { - double sum = 0; - for (int i = 0; i < objectSize; i++) - sum += unionArray[i].getDConst() * unionArray[i].getDConst(); - double length = sqrt(sum); - if (op == EOpLength) - newConstArray[0].setDConst(length); - else { - for (int i = 0; i < objectSize; i++) - newConstArray[i].setDConst(unionArray[i].getDConst() / length); - } - break; - } - - case EOpAny: - { - bool result = false; - for (int i = 0; i < objectSize; i++) { - if (unionArray[i].getBConst()) - result = true; - } - newConstArray[0].setBConst(result); - break; - } - case EOpAll: - { - bool result = true; - for (int i = 0; i < objectSize; i++) { - if (! unionArray[i].getBConst()) - result = false; - } - newConstArray[0].setBConst(result); - break; - } - - case EOpPackSnorm2x16: - case EOpPackUnorm2x16: - case EOpPackHalf2x16: - case EOpPack16: - case EOpPack32: - case EOpPack64: - case EOpUnpack32: - case EOpUnpack16: - case EOpUnpack8: - - case EOpUnpackSnorm2x16: - case EOpUnpackUnorm2x16: - case EOpUnpackHalf2x16: - - case EOpDeterminant: - case EOpMatrixInverse: - case EOpTranspose: - return nullptr; - - default: - assert(componentWise); - break; - } - - // Turn off the componentwise loop - if (! componentWise) - objectSize = 0; - - // Process component-wise operations - for (int i = 0; i < objectSize; i++) { - switch (op) { - case EOpNegative: - switch (getType().getBasicType()) { - case EbtDouble: - case EbtFloat16: - case EbtFloat: newConstArray[i].setDConst(-unionArray[i].getDConst()); break; - // Note: avoid UBSAN error regarding negating 0x80000000 - case EbtInt: newConstArray[i].setIConst( - static_cast(unionArray[i].getIConst()) == 0x80000000 - ? -0x7FFFFFFF - 1 - : -unionArray[i].getIConst()); - break; - case EbtUint: newConstArray[i].setUConst(static_cast(-static_cast(unionArray[i].getUConst()))); break; -#ifndef GLSLANG_WEB - 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 EbtInt64: newConstArray[i].setI64Const(-unionArray[i].getI64Const()); break; - case EbtUint64: newConstArray[i].setU64Const(static_cast(-static_cast(unionArray[i].getU64Const()))); break; -#endif - default: - return nullptr; - } - break; - case EOpLogicalNot: - case EOpVectorLogicalNot: - switch (getType().getBasicType()) { - case EbtBool: newConstArray[i].setBConst(!unionArray[i].getBConst()); break; - default: - return nullptr; - } - break; - case EOpBitwiseNot: - newConstArray[i] = ~unionArray[i]; - break; - case EOpRadians: - newConstArray[i].setDConst(unionArray[i].getDConst() * pi / 180.0); - break; - case EOpDegrees: - newConstArray[i].setDConst(unionArray[i].getDConst() * 180.0 / pi); - break; - case EOpSin: - newConstArray[i].setDConst(sin(unionArray[i].getDConst())); - break; - case EOpCos: - newConstArray[i].setDConst(cos(unionArray[i].getDConst())); - break; - case EOpTan: - newConstArray[i].setDConst(tan(unionArray[i].getDConst())); - break; - case EOpAsin: - newConstArray[i].setDConst(asin(unionArray[i].getDConst())); - break; - case EOpAcos: - newConstArray[i].setDConst(acos(unionArray[i].getDConst())); - break; - case EOpAtan: - newConstArray[i].setDConst(atan(unionArray[i].getDConst())); - break; - - case EOpDPdx: - case EOpDPdy: - case EOpFwidth: - case EOpDPdxFine: - case EOpDPdyFine: - case EOpFwidthFine: - case EOpDPdxCoarse: - case EOpDPdyCoarse: - case EOpFwidthCoarse: - // The derivatives are all mandated to create a constant 0. - newConstArray[i].setDConst(0.0); - break; - - case EOpExp: - newConstArray[i].setDConst(exp(unionArray[i].getDConst())); - break; - case EOpLog: - newConstArray[i].setDConst(log(unionArray[i].getDConst())); - break; - case EOpExp2: - newConstArray[i].setDConst(exp2(unionArray[i].getDConst())); - break; - case EOpLog2: - newConstArray[i].setDConst(log2(unionArray[i].getDConst())); - break; - case EOpSqrt: - newConstArray[i].setDConst(sqrt(unionArray[i].getDConst())); - break; - case EOpInverseSqrt: - newConstArray[i].setDConst(1.0 / sqrt(unionArray[i].getDConst())); - break; - - case EOpAbs: - if (unionArray[i].getType() == EbtDouble) - newConstArray[i].setDConst(fabs(unionArray[i].getDConst())); - else if (unionArray[i].getType() == EbtInt) - newConstArray[i].setIConst(abs(unionArray[i].getIConst())); - else - newConstArray[i] = unionArray[i]; - break; - case EOpSign: - #define SIGN(X) (X == 0 ? 0 : (X < 0 ? -1 : 1)) - if (unionArray[i].getType() == EbtDouble) - newConstArray[i].setDConst(SIGN(unionArray[i].getDConst())); - else - newConstArray[i].setIConst(SIGN(unionArray[i].getIConst())); - break; - case EOpFloor: - newConstArray[i].setDConst(floor(unionArray[i].getDConst())); - break; - case EOpTrunc: - if (unionArray[i].getDConst() > 0) - newConstArray[i].setDConst(floor(unionArray[i].getDConst())); - else - newConstArray[i].setDConst(ceil(unionArray[i].getDConst())); - break; - case EOpRound: - newConstArray[i].setDConst(floor(0.5 + unionArray[i].getDConst())); - break; - case EOpRoundEven: - { - double flr = floor(unionArray[i].getDConst()); - bool even = flr / 2.0 == floor(flr / 2.0); - double rounded = even ? ceil(unionArray[i].getDConst() - 0.5) : floor(unionArray[i].getDConst() + 0.5); - newConstArray[i].setDConst(rounded); - break; - } - case EOpCeil: - newConstArray[i].setDConst(ceil(unionArray[i].getDConst())); - break; - case EOpFract: - { - double x = unionArray[i].getDConst(); - newConstArray[i].setDConst(x - floor(x)); - break; - } - - case EOpIsNan: - { - newConstArray[i].setBConst(IsNan(unionArray[i].getDConst())); - break; - } - case EOpIsInf: - { - newConstArray[i].setBConst(IsInfinity(unionArray[i].getDConst())); - break; - } - - case EOpConvIntToBool: - newConstArray[i].setBConst(unionArray[i].getIConst() != 0); break; - case EOpConvUintToBool: - newConstArray[i].setBConst(unionArray[i].getUConst() != 0); break; - case EOpConvBoolToInt: - newConstArray[i].setIConst(unionArray[i].getBConst()); break; - case EOpConvBoolToUint: - newConstArray[i].setUConst(unionArray[i].getBConst()); break; - case EOpConvIntToUint: - newConstArray[i].setUConst(unionArray[i].getIConst()); break; - case EOpConvUintToInt: - newConstArray[i].setIConst(unionArray[i].getUConst()); break; - - case EOpConvFloatToBool: - case EOpConvDoubleToBool: - newConstArray[i].setBConst(unionArray[i].getDConst() != 0); break; - - case EOpConvBoolToFloat: - case EOpConvBoolToDouble: - newConstArray[i].setDConst(unionArray[i].getBConst()); break; - - case EOpConvIntToFloat: - case EOpConvIntToDouble: - newConstArray[i].setDConst(unionArray[i].getIConst()); break; - - case EOpConvUintToFloat: - case EOpConvUintToDouble: - newConstArray[i].setDConst(unionArray[i].getUConst()); break; - - case EOpConvDoubleToFloat: - case EOpConvFloatToDouble: - newConstArray[i].setDConst(unionArray[i].getDConst()); break; - - case EOpConvFloatToUint: - case EOpConvDoubleToUint: - newConstArray[i].setUConst(static_cast(unionArray[i].getDConst())); break; - - case EOpConvFloatToInt: - case EOpConvDoubleToInt: - newConstArray[i].setIConst(static_cast(unionArray[i].getDConst())); break; - -#ifndef GLSLANG_WEB - case EOpConvInt8ToBool: - newConstArray[i].setBConst(unionArray[i].getI8Const() != 0); break; - case EOpConvUint8ToBool: - newConstArray[i].setBConst(unionArray[i].getU8Const() != 0); break; - case EOpConvInt16ToBool: - newConstArray[i].setBConst(unionArray[i].getI16Const() != 0); break; - case EOpConvUint16ToBool: - newConstArray[i].setBConst(unionArray[i].getU16Const() != 0); break; - case EOpConvInt64ToBool: - newConstArray[i].setBConst(unionArray[i].getI64Const() != 0); break; - case EOpConvUint64ToBool: - newConstArray[i].setBConst(unionArray[i].getI64Const() != 0); break; - case EOpConvFloat16ToBool: - newConstArray[i].setBConst(unionArray[i].getDConst() != 0); break; - - case EOpConvBoolToInt8: - newConstArray[i].setI8Const(unionArray[i].getBConst()); break; - case EOpConvBoolToUint8: - newConstArray[i].setU8Const(unionArray[i].getBConst()); break; - case EOpConvBoolToInt16: - newConstArray[i].setI16Const(unionArray[i].getBConst()); break; - case EOpConvBoolToUint16: - newConstArray[i].setU16Const(unionArray[i].getBConst()); break; - case EOpConvBoolToInt64: - newConstArray[i].setI64Const(unionArray[i].getBConst()); break; - case EOpConvBoolToUint64: - newConstArray[i].setU64Const(unionArray[i].getBConst()); break; - case EOpConvBoolToFloat16: - newConstArray[i].setDConst(unionArray[i].getBConst()); break; - - case EOpConvInt8ToInt16: - newConstArray[i].setI16Const(unionArray[i].getI8Const()); break; - case EOpConvInt8ToInt: - newConstArray[i].setIConst(unionArray[i].getI8Const()); break; - case EOpConvInt8ToInt64: - newConstArray[i].setI64Const(unionArray[i].getI8Const()); break; - case EOpConvInt8ToUint8: - newConstArray[i].setU8Const(unionArray[i].getI8Const()); break; - case EOpConvInt8ToUint16: - newConstArray[i].setU16Const(unionArray[i].getI8Const()); break; - case EOpConvInt8ToUint: - newConstArray[i].setUConst(unionArray[i].getI8Const()); break; - case EOpConvInt8ToUint64: - newConstArray[i].setU64Const(unionArray[i].getI8Const()); break; - case EOpConvUint8ToInt8: - newConstArray[i].setI8Const(unionArray[i].getU8Const()); break; - case EOpConvUint8ToInt16: - newConstArray[i].setI16Const(unionArray[i].getU8Const()); break; - case EOpConvUint8ToInt: - newConstArray[i].setIConst(unionArray[i].getU8Const()); break; - case EOpConvUint8ToInt64: - newConstArray[i].setI64Const(unionArray[i].getU8Const()); break; - case EOpConvUint8ToUint16: - newConstArray[i].setU16Const(unionArray[i].getU8Const()); break; - case EOpConvUint8ToUint: - newConstArray[i].setUConst(unionArray[i].getU8Const()); break; - case EOpConvUint8ToUint64: - newConstArray[i].setU64Const(unionArray[i].getU8Const()); break; - case EOpConvInt8ToFloat16: - newConstArray[i].setDConst(unionArray[i].getI8Const()); break; - case EOpConvInt8ToFloat: - newConstArray[i].setDConst(unionArray[i].getI8Const()); break; - case EOpConvInt8ToDouble: - newConstArray[i].setDConst(unionArray[i].getI8Const()); break; - case EOpConvUint8ToFloat16: - newConstArray[i].setDConst(unionArray[i].getU8Const()); break; - case EOpConvUint8ToFloat: - newConstArray[i].setDConst(unionArray[i].getU8Const()); break; - case EOpConvUint8ToDouble: - newConstArray[i].setDConst(unionArray[i].getU8Const()); break; - - case EOpConvInt16ToInt8: - newConstArray[i].setI8Const(static_cast(unionArray[i].getI16Const())); break; - case EOpConvInt16ToInt: - newConstArray[i].setIConst(unionArray[i].getI16Const()); break; - case EOpConvInt16ToInt64: - newConstArray[i].setI64Const(unionArray[i].getI16Const()); break; - case EOpConvInt16ToUint8: - newConstArray[i].setU8Const(static_cast(unionArray[i].getI16Const())); break; - case EOpConvInt16ToUint16: - newConstArray[i].setU16Const(unionArray[i].getI16Const()); break; - case EOpConvInt16ToUint: - newConstArray[i].setUConst(unionArray[i].getI16Const()); break; - case EOpConvInt16ToUint64: - newConstArray[i].setU64Const(unionArray[i].getI16Const()); break; - case EOpConvUint16ToInt8: - newConstArray[i].setI8Const(static_cast(unionArray[i].getU16Const())); break; - case EOpConvUint16ToInt16: - newConstArray[i].setI16Const(unionArray[i].getU16Const()); break; - case EOpConvUint16ToInt: - newConstArray[i].setIConst(unionArray[i].getU16Const()); break; - case EOpConvUint16ToInt64: - newConstArray[i].setI64Const(unionArray[i].getU16Const()); break; - case EOpConvUint16ToUint8: - newConstArray[i].setU8Const(static_cast(unionArray[i].getU16Const())); break; - - case EOpConvUint16ToUint: - newConstArray[i].setUConst(unionArray[i].getU16Const()); break; - case EOpConvUint16ToUint64: - newConstArray[i].setU64Const(unionArray[i].getU16Const()); break; - case EOpConvInt16ToFloat16: - newConstArray[i].setDConst(unionArray[i].getI16Const()); break; - case EOpConvInt16ToFloat: - newConstArray[i].setDConst(unionArray[i].getI16Const()); break; - case EOpConvInt16ToDouble: - newConstArray[i].setDConst(unionArray[i].getI16Const()); break; - case EOpConvUint16ToFloat16: - newConstArray[i].setDConst(unionArray[i].getU16Const()); break; - case EOpConvUint16ToFloat: - newConstArray[i].setDConst(unionArray[i].getU16Const()); break; - case EOpConvUint16ToDouble: - newConstArray[i].setDConst(unionArray[i].getU16Const()); break; - - case EOpConvIntToInt8: - newConstArray[i].setI8Const((signed char)unionArray[i].getIConst()); break; - case EOpConvIntToInt16: - newConstArray[i].setI16Const((signed short)unionArray[i].getIConst()); break; - case EOpConvIntToInt64: - newConstArray[i].setI64Const(unionArray[i].getIConst()); break; - case EOpConvIntToUint8: - newConstArray[i].setU8Const((unsigned char)unionArray[i].getIConst()); break; - case EOpConvIntToUint16: - newConstArray[i].setU16Const((unsigned char)unionArray[i].getIConst()); break; - case EOpConvIntToUint64: - newConstArray[i].setU64Const(unionArray[i].getIConst()); break; - - case EOpConvUintToInt8: - newConstArray[i].setI8Const((signed char)unionArray[i].getUConst()); break; - case EOpConvUintToInt16: - newConstArray[i].setI16Const((signed short)unionArray[i].getUConst()); break; - case EOpConvUintToInt64: - newConstArray[i].setI64Const(unionArray[i].getUConst()); break; - case EOpConvUintToUint8: - newConstArray[i].setU8Const((unsigned char)unionArray[i].getUConst()); break; - case EOpConvUintToUint16: - newConstArray[i].setU16Const((unsigned short)unionArray[i].getUConst()); break; - case EOpConvUintToUint64: - newConstArray[i].setU64Const(unionArray[i].getUConst()); break; - case EOpConvIntToFloat16: - newConstArray[i].setDConst(unionArray[i].getIConst()); break; - case EOpConvUintToFloat16: - newConstArray[i].setDConst(unionArray[i].getUConst()); break; - case EOpConvInt64ToInt8: - newConstArray[i].setI8Const(static_cast(unionArray[i].getI64Const())); break; - case EOpConvInt64ToInt16: - newConstArray[i].setI16Const(static_cast(unionArray[i].getI64Const())); break; - case EOpConvInt64ToInt: - newConstArray[i].setIConst(static_cast(unionArray[i].getI64Const())); break; - case EOpConvInt64ToUint8: - newConstArray[i].setU8Const(static_cast(unionArray[i].getI64Const())); break; - case EOpConvInt64ToUint16: - newConstArray[i].setU16Const(static_cast(unionArray[i].getI64Const())); break; - case EOpConvInt64ToUint: - newConstArray[i].setUConst(static_cast(unionArray[i].getI64Const())); break; - case EOpConvInt64ToUint64: - newConstArray[i].setU64Const(unionArray[i].getI64Const()); break; - case EOpConvUint64ToInt8: - newConstArray[i].setI8Const(static_cast(unionArray[i].getU64Const())); break; - case EOpConvUint64ToInt16: - newConstArray[i].setI16Const(static_cast(unionArray[i].getU64Const())); break; - case EOpConvUint64ToInt: - newConstArray[i].setIConst(static_cast(unionArray[i].getU64Const())); break; - case EOpConvUint64ToInt64: - newConstArray[i].setI64Const(unionArray[i].getU64Const()); break; - case EOpConvUint64ToUint8: - newConstArray[i].setU8Const(static_cast(unionArray[i].getU64Const())); break; - case EOpConvUint64ToUint16: - newConstArray[i].setU16Const(static_cast(unionArray[i].getU64Const())); break; - case EOpConvUint64ToUint: - newConstArray[i].setUConst(static_cast(unionArray[i].getU64Const())); break; - case EOpConvInt64ToFloat16: - newConstArray[i].setDConst(static_cast(unionArray[i].getI64Const())); break; - case EOpConvInt64ToFloat: - newConstArray[i].setDConst(static_cast(unionArray[i].getI64Const())); break; - case EOpConvInt64ToDouble: - newConstArray[i].setDConst(static_cast(unionArray[i].getI64Const())); break; - case EOpConvUint64ToFloat16: - newConstArray[i].setDConst(static_cast(unionArray[i].getU64Const())); break; - case EOpConvUint64ToFloat: - newConstArray[i].setDConst(static_cast(unionArray[i].getU64Const())); break; - case EOpConvUint64ToDouble: - newConstArray[i].setDConst(static_cast(unionArray[i].getU64Const())); break; - case EOpConvFloat16ToInt8: - newConstArray[i].setI8Const(static_cast(unionArray[i].getDConst())); break; - case EOpConvFloat16ToInt16: - newConstArray[i].setI16Const(static_cast(unionArray[i].getDConst())); break; - case EOpConvFloat16ToInt: - newConstArray[i].setIConst(static_cast(unionArray[i].getDConst())); break; - case EOpConvFloat16ToInt64: - newConstArray[i].setI64Const(static_cast(unionArray[i].getDConst())); break; - case EOpConvFloat16ToUint8: - newConstArray[i].setU8Const(static_cast(unionArray[i].getDConst())); break; - case EOpConvFloat16ToUint16: - newConstArray[i].setU16Const(static_cast(unionArray[i].getDConst())); break; - case EOpConvFloat16ToUint: - newConstArray[i].setUConst(static_cast(unionArray[i].getDConst())); break; - case EOpConvFloat16ToUint64: - newConstArray[i].setU64Const(static_cast(unionArray[i].getDConst())); break; - case EOpConvFloat16ToFloat: - newConstArray[i].setDConst(unionArray[i].getDConst()); break; - case EOpConvFloat16ToDouble: - newConstArray[i].setDConst(unionArray[i].getDConst()); break; - case EOpConvFloatToInt8: - newConstArray[i].setI8Const(static_cast(unionArray[i].getDConst())); break; - case EOpConvFloatToInt16: - newConstArray[i].setI16Const(static_cast(unionArray[i].getDConst())); break; - case EOpConvFloatToInt64: - newConstArray[i].setI64Const(static_cast(unionArray[i].getDConst())); break; - case EOpConvFloatToUint8: - newConstArray[i].setU8Const(static_cast(unionArray[i].getDConst())); break; - case EOpConvFloatToUint16: - newConstArray[i].setU16Const(static_cast(unionArray[i].getDConst())); break; - case EOpConvFloatToUint64: - newConstArray[i].setU64Const(static_cast(unionArray[i].getDConst())); break; - case EOpConvFloatToFloat16: - newConstArray[i].setDConst(unionArray[i].getDConst()); break; - case EOpConvDoubleToInt8: - newConstArray[i].setI8Const(static_cast(unionArray[i].getDConst())); break; - case EOpConvDoubleToInt16: - newConstArray[i].setI16Const(static_cast(unionArray[i].getDConst())); break; - case EOpConvDoubleToInt64: - newConstArray[i].setI64Const(static_cast(unionArray[i].getDConst())); break; - case EOpConvDoubleToUint8: - newConstArray[i].setU8Const(static_cast(unionArray[i].getDConst())); break; - case EOpConvDoubleToUint16: - newConstArray[i].setU16Const(static_cast(unionArray[i].getDConst())); break; - case EOpConvDoubleToUint64: - newConstArray[i].setU64Const(static_cast(unionArray[i].getDConst())); break; - case EOpConvDoubleToFloat16: - newConstArray[i].setDConst(unionArray[i].getDConst()); break; - case EOpConvPtrToUint64: - case EOpConvUint64ToPtr: - case EOpConstructReference: - newConstArray[i].setU64Const(unionArray[i].getU64Const()); break; -#endif - - // TODO: 3.0 Functionality: unary constant folding: the rest of the ops have to be fleshed out - - case EOpSinh: - case EOpCosh: - case EOpTanh: - case EOpAsinh: - case EOpAcosh: - case EOpAtanh: - - case EOpFloatBitsToInt: - case EOpFloatBitsToUint: - case EOpIntBitsToFloat: - case EOpUintBitsToFloat: - case EOpDoubleBitsToInt64: - case EOpDoubleBitsToUint64: - case EOpInt64BitsToDouble: - case EOpUint64BitsToDouble: - case EOpFloat16BitsToInt16: - case EOpFloat16BitsToUint16: - case EOpInt16BitsToFloat16: - case EOpUint16BitsToFloat16: - default: - return nullptr; - } - } - - TIntermConstantUnion *newNode = new TIntermConstantUnion(newConstArray, returnType); - newNode->getWritableType().getQualifier().storage = EvqConst; - newNode->setLoc(getLoc()); - - return newNode; -} - -// -// 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; - - if (aggrNode->isConstructor()) - return foldConstructor(aggrNode); - - TIntermSequence& children = aggrNode->getSequence(); - - // First, see if this is an operation to constant fold, kick out if not, - // see what size the result is if so. - - bool componentwise = false; // will also say componentwise if a scalar argument gets repeated to make per-component results - int objectSize; - switch (aggrNode->getOp()) { - case EOpAtan: - case EOpPow: - case EOpMin: - case EOpMax: - case EOpMix: - case EOpMod: - case EOpClamp: - case EOpLessThan: - case EOpGreaterThan: - case EOpLessThanEqual: - case EOpGreaterThanEqual: - case EOpVectorEqual: - case EOpVectorNotEqual: - componentwise = true; - objectSize = children[0]->getAsConstantUnion()->getType().computeNumComponents(); - break; - case EOpCross: - case EOpReflect: - case EOpRefract: - case EOpFaceForward: - objectSize = children[0]->getAsConstantUnion()->getType().computeNumComponents(); - break; - case EOpDistance: - case EOpDot: - objectSize = 1; - break; - case EOpOuterProduct: - objectSize = children[0]->getAsTyped()->getType().getVectorSize() * - children[1]->getAsTyped()->getType().getVectorSize(); - break; - case EOpStep: - componentwise = true; - objectSize = std::max(children[0]->getAsTyped()->getType().getVectorSize(), - children[1]->getAsTyped()->getType().getVectorSize()); - break; - case EOpSmoothStep: - componentwise = true; - objectSize = std::max(children[0]->getAsTyped()->getType().getVectorSize(), - children[2]->getAsTyped()->getType().getVectorSize()); - break; - default: - return aggrNode; - } - TConstUnionArray newConstArray(objectSize); - - TVector childConstUnions; - for (unsigned int arg = 0; arg < children.size(); ++arg) - childConstUnions.push_back(children[arg]->getAsConstantUnion()->getConstArray()); - - if (componentwise) { - for (int comp = 0; comp < objectSize; comp++) { - - // some arguments are scalars instead of matching vectors; simulate a smear - int arg0comp = std::min(comp, children[0]->getAsTyped()->getType().getVectorSize() - 1); - int arg1comp = 0; - if (children.size() > 1) - arg1comp = std::min(comp, children[1]->getAsTyped()->getType().getVectorSize() - 1); - int arg2comp = 0; - if (children.size() > 2) - arg2comp = std::min(comp, children[2]->getAsTyped()->getType().getVectorSize() - 1); - - switch (aggrNode->getOp()) { - case EOpAtan: - newConstArray[comp].setDConst(atan2(childConstUnions[0][arg0comp].getDConst(), childConstUnions[1][arg1comp].getDConst())); - break; - case EOpPow: - newConstArray[comp].setDConst(pow(childConstUnions[0][arg0comp].getDConst(), childConstUnions[1][arg1comp].getDConst())); - break; - case EOpMod: - { - double arg0 = childConstUnions[0][arg0comp].getDConst(); - double arg1 = childConstUnions[1][arg1comp].getDConst(); - double result = arg0 - arg1 * floor(arg0 / arg1); - newConstArray[comp].setDConst(result); - break; - } - case EOpMin: - switch(children[0]->getAsTyped()->getBasicType()) { - case EbtFloat16: - case EbtFloat: - case EbtDouble: - newConstArray[comp].setDConst(std::min(childConstUnions[0][arg0comp].getDConst(), childConstUnions[1][arg1comp].getDConst())); - 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; -#ifndef GLSLANG_WEB - 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 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; -#endif - default: assert(false && "Default missing"); - } - break; - case EOpMax: - switch(children[0]->getAsTyped()->getBasicType()) { - case EbtFloat16: - case EbtFloat: - case EbtDouble: - newConstArray[comp].setDConst(std::max(childConstUnions[0][arg0comp].getDConst(), childConstUnions[1][arg1comp].getDConst())); - 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; -#ifndef GLSLANG_WEB - 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 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; -#endif - default: assert(false && "Default missing"); - } - break; - case EOpClamp: - 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())); - break; - case EbtUint: - newConstArray[comp].setUConst(std::min(std::max(childConstUnions[0][arg0comp].getUConst(), childConstUnions[1][arg1comp].getUConst()), - childConstUnions[2][arg2comp].getUConst())); - break; -#ifndef GLSLANG_WEB - 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 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; -#endif - default: assert(false && "Default missing"); - } - break; - case EOpLessThan: - newConstArray[comp].setBConst(childConstUnions[0][arg0comp] < childConstUnions[1][arg1comp]); - break; - case EOpGreaterThan: - newConstArray[comp].setBConst(childConstUnions[0][arg0comp] > childConstUnions[1][arg1comp]); - break; - case EOpLessThanEqual: - newConstArray[comp].setBConst(! (childConstUnions[0][arg0comp] > childConstUnions[1][arg1comp])); - break; - case EOpGreaterThanEqual: - newConstArray[comp].setBConst(! (childConstUnions[0][arg0comp] < childConstUnions[1][arg1comp])); - break; - case EOpVectorEqual: - newConstArray[comp].setBConst(childConstUnions[0][arg0comp] == childConstUnions[1][arg1comp]); - break; - case EOpVectorNotEqual: - newConstArray[comp].setBConst(childConstUnions[0][arg0comp] != childConstUnions[1][arg1comp]); - break; - case EOpMix: - if (!children[0]->getAsTyped()->isFloatingDomain()) - return aggrNode; - if (children[2]->getAsTyped()->getBasicType() == EbtBool) { - newConstArray[comp].setDConst(childConstUnions[2][arg2comp].getBConst() - ? childConstUnions[1][arg1comp].getDConst() - : childConstUnions[0][arg0comp].getDConst()); - } else { - newConstArray[comp].setDConst( - childConstUnions[0][arg0comp].getDConst() * (1.0 - childConstUnions[2][arg2comp].getDConst()) + - childConstUnions[1][arg1comp].getDConst() * childConstUnions[2][arg2comp].getDConst()); - } - break; - case EOpStep: - newConstArray[comp].setDConst(childConstUnions[1][arg1comp].getDConst() < childConstUnions[0][arg0comp].getDConst() ? 0.0 : 1.0); - break; - case EOpSmoothStep: - { - 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; - if (t > 1.0) - t = 1.0; - newConstArray[comp].setDConst(t * t * (3.0 - 2.0 * t)); - break; - } - default: - return aggrNode; - } - } - } else { - // Non-componentwise... - - int numComps = children[0]->getAsConstantUnion()->getType().computeNumComponents(); - double dot; - - switch (aggrNode->getOp()) { - case EOpDistance: - { - double sum = 0.0; - for (int comp = 0; comp < numComps; ++comp) { - double diff = childConstUnions[1][comp].getDConst() - childConstUnions[0][comp].getDConst(); - sum += diff * diff; - } - newConstArray[0].setDConst(sqrt(sum)); - break; - } - case EOpDot: - newConstArray[0].setDConst(childConstUnions[0].dot(childConstUnions[1])); - break; - case EOpCross: - newConstArray[0] = childConstUnions[0][1] * childConstUnions[1][2] - childConstUnions[0][2] * childConstUnions[1][1]; - newConstArray[1] = childConstUnions[0][2] * childConstUnions[1][0] - childConstUnions[0][0] * childConstUnions[1][2]; - 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). - dot = childConstUnions[1].dot(childConstUnions[2]); - for (int comp = 0; comp < numComps; ++comp) { - if (dot < 0.0) - newConstArray[comp] = childConstUnions[0][comp]; - else - newConstArray[comp].setDConst(-childConstUnions[0][comp].getDConst()); - } - break; - case EOpReflect: - // I - 2 * dot(N, I) * N: Arguments are (I, N). - dot = childConstUnions[0].dot(childConstUnions[1]); - dot *= 2.0; - for (int comp = 0; comp < numComps; ++comp) - newConstArray[comp].setDConst(childConstUnions[0][comp].getDConst() - dot * childConstUnions[1][comp].getDConst()); - break; - case EOpRefract: - { - // Arguments are (I, N, eta). - // k = 1.0 - eta * eta * (1.0 - dot(N, I) * dot(N, I)) - // if (k < 0.0) - // return dvec(0.0) - // else - // return eta * I - (eta * dot(N, I) + sqrt(k)) * N - dot = childConstUnions[0].dot(childConstUnions[1]); - double eta = childConstUnions[2][0].getDConst(); - double k = 1.0 - eta * eta * (1.0 - dot * dot); - if (k < 0.0) { - for (int comp = 0; comp < numComps; ++comp) - newConstArray[comp].setDConst(0.0); - } else { - for (int comp = 0; comp < numComps; ++comp) - newConstArray[comp].setDConst(eta * childConstUnions[0][comp].getDConst() - (eta * dot + sqrt(k)) * childConstUnions[1][comp].getDConst()); - } - break; - } - case EOpOuterProduct: - { - int numRows = numComps; - int numCols = children[1]->getAsConstantUnion()->getType().computeNumComponents(); - for (int row = 0; row < numRows; ++row) - for (int col = 0; col < numCols; ++col) - newConstArray[col * numRows + row] = childConstUnions[0][row] * childConstUnions[1][col]; - break; - } - default: - return aggrNode; - } - } - - TIntermConstantUnion *newNode = new TIntermConstantUnion(newConstArray, aggrNode->getType()); - newNode->getWritableType().getQualifier().storage = EvqConst; - newNode->setLoc(aggrNode->getLoc()); - - return newNode; -} - -bool TIntermediate::areAllChildConst(TIntermAggregate* aggrNode) -{ - bool allConstant = true; - - // check if all the child nodes are constants so that they can be inserted into - // the parent node - if (aggrNode) { - TIntermSequence& childSequenceVector = aggrNode->getSequence(); - for (TIntermSequence::iterator p = childSequenceVector.begin(); - p != childSequenceVector.end(); p++) { - if (!(*p)->getAsTyped()->getAsConstantUnion()) - return false; - } - } - - return allConstant; -} - -TIntermTyped* TIntermediate::foldConstructor(TIntermAggregate* aggrNode) -{ - bool error = false; - - TConstUnionArray unionArray(aggrNode->getType().computeNumComponents()); - if (aggrNode->getSequence().size() == 1) - error = parseConstTree(aggrNode, unionArray, aggrNode->getOp(), aggrNode->getType(), true); - else - error = parseConstTree(aggrNode, unionArray, aggrNode->getOp(), aggrNode->getType()); - - if (error) - return aggrNode; - - return addConstantUnion(unionArray, aggrNode->getType(), aggrNode->getLoc()); -} - -// -// Constant folding of a bracket (array-style) dereference or struct-like dot -// dereference. Can handle anything except a multi-character swizzle, though -// all swizzles may go to foldSwizzle(). -// -TIntermTyped* TIntermediate::foldDereference(TIntermTyped* node, int index, const TSourceLoc& loc) -{ - TType dereferencedType(node->getType(), index); - dereferencedType.getQualifier().storage = EvqConst; - TIntermTyped* result = 0; - int size = dereferencedType.computeNumComponents(); - - // arrays, vectors, matrices, all use simple multiplicative math - // while structures need to add up heterogeneous members - int start; - if (node->getType().isCoopMat()) - start = 0; - else if (node->isArray() || ! node->isStruct()) - start = size * index; - else { - // it is a structure - assert(node->isStruct()); - start = 0; - for (int i = 0; i < index; ++i) - start += (*node->getType().getStruct())[i].type->computeNumComponents(); - } - - result = addConstantUnion(TConstUnionArray(node->getAsConstantUnion()->getConstArray(), start, size), node->getType(), loc); - - if (result == 0) - result = node; - else - result->setType(dereferencedType); - - return result; -} - -// -// 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) -{ - const TConstUnionArray& unionArray = node->getAsConstantUnion()->getConstArray(); - TConstUnionArray constArray(selectors.size()); - - 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, selectors.size())); - - return result; -} - -} // end namespace glslang diff --git a/deps/glslang/glslang/MachineIndependent/InfoSink.cpp b/deps/glslang/glslang/MachineIndependent/InfoSink.cpp deleted file mode 100644 index d00c4225..00000000 --- a/deps/glslang/glslang/MachineIndependent/InfoSink.cpp +++ /dev/null @@ -1,113 +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. -// - -#include "../Include/InfoSink.h" - -#include - -namespace glslang { - -void TInfoSinkBase::append(const char* s) -{ - if (outputStream & EString) { - if (s == nullptr) - sink.append("(null)"); - else { - checkMem(strlen(s)); - sink.append(s); - } - } - -//#ifdef _WIN32 -// if (outputStream & EDebugger) -// OutputDebugString(s); -//#endif - - if (outputStream & EStdOut) - fprintf(stdout, "%s", s); -} - -void TInfoSinkBase::append(int count, char c) -{ - if (outputStream & EString) { - checkMem(count); - sink.append(count, c); - } - -//#ifdef _WIN32 -// if (outputStream & EDebugger) { -// char str[2]; -// str[0] = c; -// str[1] = '\0'; -// OutputDebugString(str); -// } -//#endif - - if (outputStream & EStdOut) - fprintf(stdout, "%c", c); -} - -void TInfoSinkBase::append(const TPersistString& t) -{ - if (outputStream & EString) { - checkMem(t.size()); - sink.append(t); - } - -//#ifdef _WIN32 -// if (outputStream & EDebugger) -// OutputDebugString(t.c_str()); -//#endif - - if (outputStream & EStdOut) - fprintf(stdout, "%s", t.c_str()); -} - -void TInfoSinkBase::append(const TString& t) -{ - if (outputStream & EString) { - checkMem(t.size()); - sink.append(t.c_str()); - } - -//#ifdef _WIN32 -// if (outputStream & EDebugger) -// OutputDebugString(t.c_str()); -//#endif - - if (outputStream & EStdOut) - fprintf(stdout, "%s", t.c_str()); -} - -} // end namespace glslang diff --git a/deps/glslang/glslang/MachineIndependent/Initialize.cpp b/deps/glslang/glslang/MachineIndependent/Initialize.cpp deleted file mode 100644 index 03fdce9f..00000000 --- a/deps/glslang/glslang/MachineIndependent/Initialize.cpp +++ /dev/null @@ -1,9785 +0,0 @@ -// -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2012-2016 LunarG, Inc. -// Copyright (C) 2015-2020 Google, Inc. -// Copyright (C) 2017 ARM Limited. -// Modifications Copyright (C) 2020-2021 Advanced Micro Devices, 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: -// -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// Neither the name of 3Dlabs Inc. Ltd. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -// - -// -// Create strings that declare built-in definitions, add built-ins programmatically -// that cannot be expressed in the strings, and establish mappings between -// built-in functions and operators. -// -// Where to put a built-in: -// TBuiltIns::initialize(version,profile) context-independent textual built-ins; add them to the right string -// TBuiltIns::initialize(resources,...) context-dependent textual built-ins; add them to the right string -// TBuiltIns::identifyBuiltIns(...,symbolTable) context-independent programmatic additions/mappings to the symbol table, -// including identifying what extensions are needed if a version does not allow a symbol -// TBuiltIns::identifyBuiltIns(...,symbolTable, resources) context-dependent programmatic additions/mappings to the symbol table, -// including identifying what extensions are needed if a version does not allow a symbol -// - -#include "../Include/intermediate.h" -#include "Initialize.h" - -namespace glslang { - -// TODO: ARB_Compatability: do full extension support -const bool ARBCompatibility = true; - -const bool ForwardCompatibility = false; - -// change this back to false if depending on textual spellings of texturing calls when consuming the AST -// Using PureOperatorBuiltins=false is deprecated. -bool PureOperatorBuiltins = true; - -namespace { - -// -// A set of definitions for tabling of the built-in functions. -// - -// Order matters here, as does correlation with the subsequent -// "const int ..." declarations and the ArgType enumerants. -const char* TypeString[] = { - "bool", "bvec2", "bvec3", "bvec4", - "float", "vec2", "vec3", "vec4", - "int", "ivec2", "ivec3", "ivec4", - "uint", "uvec2", "uvec3", "uvec4", -}; -const int TypeStringCount = sizeof(TypeString) / sizeof(char*); // number of entries in 'TypeString' -const int TypeStringRowShift = 2; // shift amount to go downe one row in 'TypeString' -const int TypeStringColumnMask = (1 << TypeStringRowShift) - 1; // reduce type to its column number in 'TypeString' -const int TypeStringScalarMask = ~TypeStringColumnMask; // take type to its scalar column in 'TypeString' - -enum ArgType { - // numbers hardcoded to correspond to 'TypeString'; order and value matter - TypeB = 1 << 0, // Boolean - TypeF = 1 << 1, // float 32 - TypeI = 1 << 2, // int 32 - TypeU = 1 << 3, // uint 32 - TypeF16 = 1 << 4, // float 16 - TypeF64 = 1 << 5, // float 64 - TypeI8 = 1 << 6, // int 8 - TypeI16 = 1 << 7, // int 16 - TypeI64 = 1 << 8, // int 64 - TypeU8 = 1 << 9, // uint 8 - TypeU16 = 1 << 10, // uint 16 - TypeU64 = 1 << 11, // uint 64 -}; -// Mixtures of the above, to help the function tables -const ArgType TypeFI = static_cast(TypeF | TypeI); -const ArgType TypeFIB = static_cast(TypeF | TypeI | TypeB); -const ArgType TypeIU = static_cast(TypeI | TypeU); - -// The relationships between arguments and return type, whether anything is -// output, or other unusual situations. -enum ArgClass { - ClassRegular = 0, // nothing special, just all vector widths with matching return type; traditional arithmetic - ClassLS = 1 << 0, // the last argument is also held fixed as a (type-matched) scalar while the others cycle - ClassXLS = 1 << 1, // the last argument is exclusively a (type-matched) scalar while the others cycle - ClassLS2 = 1 << 2, // the last two arguments are held fixed as a (type-matched) scalar while the others cycle - ClassFS = 1 << 3, // the first argument is held fixed as a (type-matched) scalar while the others cycle - ClassFS2 = 1 << 4, // the first two arguments are held fixed as a (type-matched) scalar while the others cycle - ClassLO = 1 << 5, // the last argument is an output - ClassB = 1 << 6, // return type cycles through only bool/bvec, matching vector width of args - ClassLB = 1 << 7, // last argument cycles through only bool/bvec, matching vector width of args - ClassV1 = 1 << 8, // scalar only - ClassFIO = 1 << 9, // first argument is inout - ClassRS = 1 << 10, // the return is held scalar as the arguments cycle - ClassNS = 1 << 11, // no scalar prototype - ClassCV = 1 << 12, // first argument is 'coherent volatile' - ClassFO = 1 << 13, // first argument is output - ClassV3 = 1 << 14, // vec3 only -}; -// Mixtures of the above, to help the function tables -const ArgClass ClassV1FIOCV = (ArgClass)(ClassV1 | ClassFIO | ClassCV); -const ArgClass ClassBNS = (ArgClass)(ClassB | ClassNS); -const ArgClass ClassRSNS = (ArgClass)(ClassRS | ClassNS); - -// A descriptor, for a single profile, of when something is available. -// If the current profile does not match 'profile' mask below, the other fields -// do not apply (nor validate). -// profiles == EBadProfile is the end of an array of these -struct Versioning { - EProfile profiles; // the profile(s) (mask) that the following fields are valid for - int minExtendedVersion; // earliest version when extensions are enabled; ignored if numExtensions is 0 - int minCoreVersion; // earliest version function is in core; 0 means never - int numExtensions; // how many extensions are in the 'extensions' list - const char** extensions; // list of extension names enabling the function -}; - -EProfile EDesktopProfile = static_cast(ENoProfile | ECoreProfile | ECompatibilityProfile); - -// Declare pointers to put into the table for versioning. -#ifdef GLSLANG_WEB - const Versioning* Es300Desktop130 = nullptr; - const Versioning* Es310Desktop420 = nullptr; -#elif defined(GLSLANG_ANGLE) - const Versioning* Es300Desktop130 = nullptr; - const Versioning* Es310Desktop420 = nullptr; - const Versioning* Es310Desktop450 = nullptr; -#else - const Versioning Es300Desktop130Version[] = { { EEsProfile, 0, 300, 0, nullptr }, - { EDesktopProfile, 0, 130, 0, nullptr }, - { EBadProfile } }; - const Versioning* Es300Desktop130 = &Es300Desktop130Version[0]; - - const Versioning Es310Desktop420Version[] = { { EEsProfile, 0, 310, 0, nullptr }, - { EDesktopProfile, 0, 420, 0, nullptr }, - { EBadProfile } }; - const Versioning* Es310Desktop420 = &Es310Desktop420Version[0]; - - const Versioning Es310Desktop450Version[] = { { EEsProfile, 0, 310, 0, nullptr }, - { EDesktopProfile, 0, 450, 0, nullptr }, - { EBadProfile } }; - const Versioning* Es310Desktop450 = &Es310Desktop450Version[0]; -#endif - -// The main descriptor of what a set of function prototypes can look like, and -// a pointer to extra versioning information, when needed. -struct BuiltInFunction { - TOperator op; // operator to map the name to - const char* name; // function name - int numArguments; // number of arguments (overloads with varying arguments need different entries) - ArgType types; // ArgType mask - ArgClass classes; // the ways this particular function entry manifests - const Versioning* versioning; // nullptr means always a valid version -}; - -// The tables can have the same built-in function name more than one time, -// but the exact same prototype must be indicated at most once. -// The prototypes that get declared are the union of all those indicated. -// This is important when different releases add new prototypes for the same name. -// It also also congnitively simpler tiling of the prototype space. -// In practice, most names can be fully represented with one entry. -// -// Table is terminated by an OpNull TOperator. - -const BuiltInFunction BaseFunctions[] = { -// TOperator, name, arg-count, ArgType, ArgClass, versioning -// --------- ---- --------- ------- -------- ---------- - { EOpRadians, "radians", 1, TypeF, ClassRegular, nullptr }, - { EOpDegrees, "degrees", 1, TypeF, ClassRegular, nullptr }, - { EOpSin, "sin", 1, TypeF, ClassRegular, nullptr }, - { EOpCos, "cos", 1, TypeF, ClassRegular, nullptr }, - { EOpTan, "tan", 1, TypeF, ClassRegular, nullptr }, - { EOpAsin, "asin", 1, TypeF, ClassRegular, nullptr }, - { EOpAcos, "acos", 1, TypeF, ClassRegular, nullptr }, - { EOpAtan, "atan", 2, TypeF, ClassRegular, nullptr }, - { EOpAtan, "atan", 1, TypeF, ClassRegular, nullptr }, - { EOpPow, "pow", 2, TypeF, ClassRegular, nullptr }, - { EOpExp, "exp", 1, TypeF, ClassRegular, nullptr }, - { EOpLog, "log", 1, TypeF, ClassRegular, nullptr }, - { EOpExp2, "exp2", 1, TypeF, ClassRegular, nullptr }, - { EOpLog2, "log2", 1, TypeF, ClassRegular, nullptr }, - { EOpSqrt, "sqrt", 1, TypeF, ClassRegular, nullptr }, - { EOpInverseSqrt, "inversesqrt", 1, TypeF, ClassRegular, nullptr }, - { EOpAbs, "abs", 1, TypeF, ClassRegular, nullptr }, - { EOpSign, "sign", 1, TypeF, ClassRegular, nullptr }, - { EOpFloor, "floor", 1, TypeF, ClassRegular, nullptr }, - { EOpCeil, "ceil", 1, TypeF, ClassRegular, nullptr }, - { EOpFract, "fract", 1, TypeF, ClassRegular, nullptr }, - { EOpMod, "mod", 2, TypeF, ClassLS, nullptr }, - { EOpMin, "min", 2, TypeF, ClassLS, nullptr }, - { EOpMax, "max", 2, TypeF, ClassLS, nullptr }, - { EOpClamp, "clamp", 3, TypeF, ClassLS2, nullptr }, - { EOpMix, "mix", 3, TypeF, ClassLS, nullptr }, - { EOpStep, "step", 2, TypeF, ClassFS, nullptr }, - { EOpSmoothStep, "smoothstep", 3, TypeF, ClassFS2, nullptr }, - { EOpNormalize, "normalize", 1, TypeF, ClassRegular, nullptr }, - { EOpFaceForward, "faceforward", 3, TypeF, ClassRegular, nullptr }, - { EOpReflect, "reflect", 2, TypeF, ClassRegular, nullptr }, - { EOpRefract, "refract", 3, TypeF, ClassXLS, nullptr }, - { EOpLength, "length", 1, TypeF, ClassRS, nullptr }, - { EOpDistance, "distance", 2, TypeF, ClassRS, nullptr }, - { EOpDot, "dot", 2, TypeF, ClassRS, nullptr }, - { EOpCross, "cross", 2, TypeF, ClassV3, nullptr }, - { EOpLessThan, "lessThan", 2, TypeFI, ClassBNS, nullptr }, - { EOpLessThanEqual, "lessThanEqual", 2, TypeFI, ClassBNS, nullptr }, - { EOpGreaterThan, "greaterThan", 2, TypeFI, ClassBNS, nullptr }, - { EOpGreaterThanEqual, "greaterThanEqual", 2, TypeFI, ClassBNS, nullptr }, - { EOpVectorEqual, "equal", 2, TypeFIB, ClassBNS, nullptr }, - { EOpVectorNotEqual, "notEqual", 2, TypeFIB, ClassBNS, nullptr }, - { EOpAny, "any", 1, TypeB, ClassRSNS, nullptr }, - { EOpAll, "all", 1, TypeB, ClassRSNS, nullptr }, - { EOpVectorLogicalNot, "not", 1, TypeB, ClassNS, nullptr }, - { EOpSinh, "sinh", 1, TypeF, ClassRegular, Es300Desktop130 }, - { EOpCosh, "cosh", 1, TypeF, ClassRegular, Es300Desktop130 }, - { EOpTanh, "tanh", 1, TypeF, ClassRegular, Es300Desktop130 }, - { EOpAsinh, "asinh", 1, TypeF, ClassRegular, Es300Desktop130 }, - { EOpAcosh, "acosh", 1, TypeF, ClassRegular, Es300Desktop130 }, - { EOpAtanh, "atanh", 1, TypeF, ClassRegular, Es300Desktop130 }, - { EOpAbs, "abs", 1, TypeI, ClassRegular, Es300Desktop130 }, - { EOpSign, "sign", 1, TypeI, ClassRegular, Es300Desktop130 }, - { EOpTrunc, "trunc", 1, TypeF, ClassRegular, Es300Desktop130 }, - { EOpRound, "round", 1, TypeF, ClassRegular, Es300Desktop130 }, - { EOpRoundEven, "roundEven", 1, TypeF, ClassRegular, Es300Desktop130 }, - { EOpModf, "modf", 2, TypeF, ClassLO, Es300Desktop130 }, - { EOpMin, "min", 2, TypeIU, ClassLS, Es300Desktop130 }, - { EOpMax, "max", 2, TypeIU, ClassLS, Es300Desktop130 }, - { EOpClamp, "clamp", 3, TypeIU, ClassLS2, Es300Desktop130 }, - { EOpMix, "mix", 3, TypeF, ClassLB, Es300Desktop130 }, - { EOpIsInf, "isinf", 1, TypeF, ClassB, Es300Desktop130 }, - { EOpIsNan, "isnan", 1, TypeF, ClassB, Es300Desktop130 }, - { EOpLessThan, "lessThan", 2, TypeU, ClassBNS, Es300Desktop130 }, - { EOpLessThanEqual, "lessThanEqual", 2, TypeU, ClassBNS, Es300Desktop130 }, - { EOpGreaterThan, "greaterThan", 2, TypeU, ClassBNS, Es300Desktop130 }, - { EOpGreaterThanEqual, "greaterThanEqual", 2, TypeU, ClassBNS, Es300Desktop130 }, - { EOpVectorEqual, "equal", 2, TypeU, ClassBNS, Es300Desktop130 }, - { EOpVectorNotEqual, "notEqual", 2, TypeU, ClassBNS, Es300Desktop130 }, - { EOpAtomicAdd, "atomicAdd", 2, TypeIU, ClassV1FIOCV, Es310Desktop420 }, - { EOpAtomicMin, "atomicMin", 2, TypeIU, ClassV1FIOCV, Es310Desktop420 }, - { EOpAtomicMax, "atomicMax", 2, TypeIU, ClassV1FIOCV, Es310Desktop420 }, - { EOpAtomicAnd, "atomicAnd", 2, TypeIU, ClassV1FIOCV, Es310Desktop420 }, - { EOpAtomicOr, "atomicOr", 2, TypeIU, ClassV1FIOCV, Es310Desktop420 }, - { EOpAtomicXor, "atomicXor", 2, TypeIU, ClassV1FIOCV, Es310Desktop420 }, - { EOpAtomicExchange, "atomicExchange", 2, TypeIU, ClassV1FIOCV, Es310Desktop420 }, - { EOpAtomicCompSwap, "atomicCompSwap", 3, TypeIU, ClassV1FIOCV, Es310Desktop420 }, -#ifndef GLSLANG_WEB - { EOpMix, "mix", 3, TypeB, ClassRegular, Es310Desktop450 }, - { EOpMix, "mix", 3, TypeIU, ClassLB, Es310Desktop450 }, -#endif - - { EOpNull } -}; - -const BuiltInFunction DerivativeFunctions[] = { - { EOpDPdx, "dFdx", 1, TypeF, ClassRegular, nullptr }, - { EOpDPdy, "dFdy", 1, TypeF, ClassRegular, nullptr }, - { EOpFwidth, "fwidth", 1, TypeF, ClassRegular, nullptr }, - { EOpNull } -}; - -// For functions declared some other way, but still use the table to relate to operator. -struct CustomFunction { - TOperator op; // operator to map the name to - const char* name; // function name - const Versioning* versioning; // nullptr means always a valid version -}; - -const CustomFunction CustomFunctions[] = { - { EOpBarrier, "barrier", nullptr }, - { EOpMemoryBarrierShared, "memoryBarrierShared", nullptr }, - { EOpGroupMemoryBarrier, "groupMemoryBarrier", nullptr }, - { EOpMemoryBarrier, "memoryBarrier", nullptr }, - { EOpMemoryBarrierBuffer, "memoryBarrierBuffer", nullptr }, - - { EOpPackSnorm2x16, "packSnorm2x16", nullptr }, - { EOpUnpackSnorm2x16, "unpackSnorm2x16", nullptr }, - { EOpPackUnorm2x16, "packUnorm2x16", nullptr }, - { EOpUnpackUnorm2x16, "unpackUnorm2x16", nullptr }, - { EOpPackHalf2x16, "packHalf2x16", nullptr }, - { EOpUnpackHalf2x16, "unpackHalf2x16", nullptr }, - - { EOpMul, "matrixCompMult", nullptr }, - { EOpOuterProduct, "outerProduct", nullptr }, - { EOpTranspose, "transpose", nullptr }, - { EOpDeterminant, "determinant", nullptr }, - { EOpMatrixInverse, "inverse", nullptr }, - { EOpFloatBitsToInt, "floatBitsToInt", nullptr }, - { EOpFloatBitsToUint, "floatBitsToUint", nullptr }, - { EOpIntBitsToFloat, "intBitsToFloat", nullptr }, - { EOpUintBitsToFloat, "uintBitsToFloat", nullptr }, - - { EOpTextureQuerySize, "textureSize", nullptr }, - { EOpTextureQueryLod, "textureQueryLod", nullptr }, - { EOpTextureQueryLod, "textureQueryLOD", nullptr }, // extension GL_ARB_texture_query_lod - { EOpTextureQueryLevels, "textureQueryLevels", nullptr }, - { EOpTextureQuerySamples, "textureSamples", nullptr }, - { EOpTexture, "texture", nullptr }, - { EOpTextureProj, "textureProj", nullptr }, - { EOpTextureLod, "textureLod", nullptr }, - { EOpTextureOffset, "textureOffset", nullptr }, - { EOpTextureFetch, "texelFetch", nullptr }, - { EOpTextureFetchOffset, "texelFetchOffset", nullptr }, - { EOpTextureProjOffset, "textureProjOffset", nullptr }, - { EOpTextureLodOffset, "textureLodOffset", nullptr }, - { EOpTextureProjLod, "textureProjLod", nullptr }, - { EOpTextureProjLodOffset, "textureProjLodOffset", nullptr }, - { EOpTextureGrad, "textureGrad", nullptr }, - { EOpTextureGradOffset, "textureGradOffset", nullptr }, - { EOpTextureProjGrad, "textureProjGrad", nullptr }, - { EOpTextureProjGradOffset, "textureProjGradOffset", nullptr }, - - { EOpNull } -}; - -// For the given table of functions, add all the indicated prototypes for each -// one, to be returned in the passed in decls. -void AddTabledBuiltin(TString& decls, const BuiltInFunction& function) -{ - const auto isScalarType = [](int type) { return (type & TypeStringColumnMask) == 0; }; - - // loop across these two: - // 0: the varying arg set, and - // 1: the fixed scalar args - const ArgClass ClassFixed = (ArgClass)(ClassLS | ClassXLS | ClassLS2 | ClassFS | ClassFS2); - for (int fixed = 0; fixed < ((function.classes & ClassFixed) > 0 ? 2 : 1); ++fixed) { - - if (fixed == 0 && (function.classes & ClassXLS)) - continue; - - // walk the type strings in TypeString[] - for (int type = 0; type < TypeStringCount; ++type) { - // skip types not selected: go from type to row number to type bit - if ((function.types & (1 << (type >> TypeStringRowShift))) == 0) - continue; - - // if we aren't on a scalar, and should be, skip - if ((function.classes & ClassV1) && !isScalarType(type)) - continue; - - // if we aren't on a 3-vector, and should be, skip - if ((function.classes & ClassV3) && (type & TypeStringColumnMask) != 2) - continue; - - // skip replication of all arg scalars between the varying arg set and the fixed args - if (fixed == 1 && type == (type & TypeStringScalarMask) && (function.classes & ClassXLS) == 0) - continue; - - // skip scalars when we are told to - if ((function.classes & ClassNS) && isScalarType(type)) - continue; - - // return type - if (function.classes & ClassB) - decls.append(TypeString[type & TypeStringColumnMask]); - else if (function.classes & ClassRS) - decls.append(TypeString[type & TypeStringScalarMask]); - else - decls.append(TypeString[type]); - decls.append(" "); - decls.append(function.name); - decls.append("("); - - // arguments - for (int arg = 0; arg < function.numArguments; ++arg) { - if (arg == function.numArguments - 1 && (function.classes & ClassLO)) - decls.append("out "); - if (arg == 0) { -#ifndef GLSLANG_WEB - if (function.classes & ClassCV) - decls.append("coherent volatile "); -#endif - if (function.classes & ClassFIO) - decls.append("inout "); - if (function.classes & ClassFO) - decls.append("out "); - } - if ((function.classes & ClassLB) && arg == function.numArguments - 1) - decls.append(TypeString[type & TypeStringColumnMask]); - else if (fixed && ((arg == function.numArguments - 1 && (function.classes & (ClassLS | ClassXLS | - ClassLS2))) || - (arg == function.numArguments - 2 && (function.classes & ClassLS2)) || - (arg == 0 && (function.classes & (ClassFS | ClassFS2))) || - (arg == 1 && (function.classes & ClassFS2)))) - decls.append(TypeString[type & TypeStringScalarMask]); - else - decls.append(TypeString[type]); - if (arg < function.numArguments - 1) - decls.append(","); - } - decls.append(");\n"); - } - } -} - -// See if the tabled versioning information allows the current version. -bool ValidVersion(const BuiltInFunction& function, int version, EProfile profile, const SpvVersion& /* spVersion */) -{ -#if defined(GLSLANG_WEB) || defined(GLSLANG_ANGLE) - // all entries in table are valid - return true; -#endif - - // nullptr means always valid - if (function.versioning == nullptr) - return true; - - // check for what is said about our current profile - for (const Versioning* v = function.versioning; v->profiles != EBadProfile; ++v) { - if ((v->profiles & profile) != 0) { - if (v->minCoreVersion <= version || (v->numExtensions > 0 && v->minExtendedVersion <= version)) - return true; - } - } - - return false; -} - -// Relate a single table of built-ins to their AST operator. -// This can get called redundantly (especially for the common built-ins, when -// called once per stage). This is a performance issue only, not a correctness -// concern. It is done for quality arising from simplicity, as there are subtleties -// to get correct if instead trying to do it surgically. -template -void RelateTabledBuiltins(const FunctionT* functions, TSymbolTable& symbolTable) -{ - while (functions->op != EOpNull) { - symbolTable.relateToOperator(functions->name, functions->op); - ++functions; - } -} - -} // end anonymous namespace - -// Add declarations for all tables of built-in functions. -void TBuiltIns::addTabledBuiltins(int version, EProfile profile, const SpvVersion& spvVersion) -{ - const auto forEachFunction = [&](TString& decls, const BuiltInFunction* function) { - while (function->op != EOpNull) { - if (ValidVersion(*function, version, profile, spvVersion)) - AddTabledBuiltin(decls, *function); - ++function; - } - }; - - forEachFunction(commonBuiltins, BaseFunctions); - forEachFunction(stageBuiltins[EShLangFragment], DerivativeFunctions); - - if ((profile == EEsProfile && version >= 320) || (profile != EEsProfile && version >= 450)) - forEachFunction(stageBuiltins[EShLangCompute], DerivativeFunctions); -} - -// Relate all tables of built-ins to the AST operators. -void TBuiltIns::relateTabledBuiltins(int /* version */, EProfile /* profile */, const SpvVersion& /* spvVersion */, EShLanguage /* stage */, TSymbolTable& symbolTable) -{ - RelateTabledBuiltins(BaseFunctions, symbolTable); - RelateTabledBuiltins(DerivativeFunctions, symbolTable); - RelateTabledBuiltins(CustomFunctions, symbolTable); -} - -inline bool IncludeLegacy(int version, EProfile profile, const SpvVersion& spvVersion) -{ - return profile != EEsProfile && (version <= 130 || (spvVersion.spv == 0 && version == 140 && ARBCompatibility) || - profile == ECompatibilityProfile); -} - -// Construct TBuiltInParseables base class. This can be used for language-common constructs. -TBuiltInParseables::TBuiltInParseables() -{ -} - -// Destroy TBuiltInParseables. -TBuiltInParseables::~TBuiltInParseables() -{ -} - -TBuiltIns::TBuiltIns() -{ - // Set up textual representations for making all the permutations - // of texturing/imaging functions. - prefixes[EbtFloat] = ""; - prefixes[EbtInt] = "i"; - prefixes[EbtUint] = "u"; -#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) - prefixes[EbtFloat16] = "f16"; - prefixes[EbtInt8] = "i8"; - prefixes[EbtUint8] = "u8"; - prefixes[EbtInt16] = "i16"; - prefixes[EbtUint16] = "u16"; - prefixes[EbtInt64] = "i64"; - prefixes[EbtUint64] = "u64"; -#endif - - postfixes[2] = "2"; - postfixes[3] = "3"; - postfixes[4] = "4"; - - // Map from symbolic class of texturing dimension to numeric dimensions. - dimMap[Esd2D] = 2; - dimMap[Esd3D] = 3; - dimMap[EsdCube] = 3; -#ifndef GLSLANG_WEB -#ifndef GLSLANG_ANGLE - dimMap[Esd1D] = 1; -#endif - dimMap[EsdRect] = 2; - dimMap[EsdBuffer] = 1; - dimMap[EsdSubpass] = 2; // potentially unused for now -#endif -} - -TBuiltIns::~TBuiltIns() -{ -} - - -// -// Add all context-independent built-in functions and variables that are present -// for the given version and profile. Share common ones across stages, otherwise -// make stage-specific entries. -// -// Most built-ins variables can be added as simple text strings. Some need to -// be added programmatically, which is done later in IdentifyBuiltIns() below. -// -void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvVersion) -{ -#ifdef GLSLANG_WEB - version = 310; - profile = EEsProfile; -#elif defined(GLSLANG_ANGLE) - version = 450; - profile = ECoreProfile; -#endif - addTabledBuiltins(version, profile, spvVersion); - - //============================================================================ - // - // Prototypes for built-in functions used repeatly by different shaders - // - //============================================================================ - -#ifndef GLSLANG_WEB - // - // Derivatives Functions. - // - TString derivativeControls ( - "float dFdxFine(float p);" - "vec2 dFdxFine(vec2 p);" - "vec3 dFdxFine(vec3 p);" - "vec4 dFdxFine(vec4 p);" - - "float dFdyFine(float p);" - "vec2 dFdyFine(vec2 p);" - "vec3 dFdyFine(vec3 p);" - "vec4 dFdyFine(vec4 p);" - - "float fwidthFine(float p);" - "vec2 fwidthFine(vec2 p);" - "vec3 fwidthFine(vec3 p);" - "vec4 fwidthFine(vec4 p);" - - "float dFdxCoarse(float p);" - "vec2 dFdxCoarse(vec2 p);" - "vec3 dFdxCoarse(vec3 p);" - "vec4 dFdxCoarse(vec4 p);" - - "float dFdyCoarse(float p);" - "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);" - ); - -#ifndef GLSLANG_ANGLE - TString derivativesAndControl16bits ( - "float16_t dFdx(float16_t);" - "f16vec2 dFdx(f16vec2);" - "f16vec3 dFdx(f16vec3);" - "f16vec4 dFdx(f16vec4);" - - "float16_t dFdy(float16_t);" - "f16vec2 dFdy(f16vec2);" - "f16vec3 dFdy(f16vec3);" - "f16vec4 dFdy(f16vec4);" - - "float16_t dFdxFine(float16_t);" - "f16vec2 dFdxFine(f16vec2);" - "f16vec3 dFdxFine(f16vec3);" - "f16vec4 dFdxFine(f16vec4);" - - "float16_t dFdyFine(float16_t);" - "f16vec2 dFdyFine(f16vec2);" - "f16vec3 dFdyFine(f16vec3);" - "f16vec4 dFdyFine(f16vec4);" - - "float16_t dFdxCoarse(float16_t);" - "f16vec2 dFdxCoarse(f16vec2);" - "f16vec3 dFdxCoarse(f16vec3);" - "f16vec4 dFdxCoarse(f16vec4);" - - "float16_t dFdyCoarse(float16_t);" - "f16vec2 dFdyCoarse(f16vec2);" - "f16vec3 dFdyCoarse(f16vec3);" - "f16vec4 dFdyCoarse(f16vec4);" - - "float16_t fwidth(float16_t);" - "f16vec2 fwidth(f16vec2);" - "f16vec3 fwidth(f16vec3);" - "f16vec4 fwidth(f16vec4);" - - "float16_t fwidthFine(float16_t);" - "f16vec2 fwidthFine(f16vec2);" - "f16vec3 fwidthFine(f16vec3);" - "f16vec4 fwidthFine(f16vec4);" - - "float16_t fwidthCoarse(float16_t);" - "f16vec2 fwidthCoarse(f16vec2);" - "f16vec3 fwidthCoarse(f16vec3);" - "f16vec4 fwidthCoarse(f16vec4);" - ); - - TString derivativesAndControl64bits ( - "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);" - ); - - //============================================================================ - // - // Prototypes for built-in functions seen by both vertex and fragment shaders. - // - //============================================================================ - - // - // double functions added to desktop 4.00, but not fma, frexp, ldexp, or pack/unpack - // - if (profile != EEsProfile && version >= 150) { // ARB_gpu_shader_fp64 - commonBuiltins.append( - - "double sqrt(double);" - "dvec2 sqrt(dvec2);" - "dvec3 sqrt(dvec3);" - "dvec4 sqrt(dvec4);" - - "double inversesqrt(double);" - "dvec2 inversesqrt(dvec2);" - "dvec3 inversesqrt(dvec3);" - "dvec4 inversesqrt(dvec4);" - - "double abs(double);" - "dvec2 abs(dvec2);" - "dvec3 abs(dvec3);" - "dvec4 abs(dvec4);" - - "double sign(double);" - "dvec2 sign(dvec2);" - "dvec3 sign(dvec3);" - "dvec4 sign(dvec4);" - - "double floor(double);" - "dvec2 floor(dvec2);" - "dvec3 floor(dvec3);" - "dvec4 floor(dvec4);" - - "double trunc(double);" - "dvec2 trunc(dvec2);" - "dvec3 trunc(dvec3);" - "dvec4 trunc(dvec4);" - - "double round(double);" - "dvec2 round(dvec2);" - "dvec3 round(dvec3);" - "dvec4 round(dvec4);" - - "double roundEven(double);" - "dvec2 roundEven(dvec2);" - "dvec3 roundEven(dvec3);" - "dvec4 roundEven(dvec4);" - - "double ceil(double);" - "dvec2 ceil(dvec2);" - "dvec3 ceil(dvec3);" - "dvec4 ceil(dvec4);" - - "double fract(double);" - "dvec2 fract(dvec2);" - "dvec3 fract(dvec3);" - "dvec4 fract(dvec4);" - - "double mod(double, double);" - "dvec2 mod(dvec2 , double);" - "dvec3 mod(dvec3 , double);" - "dvec4 mod(dvec4 , double);" - "dvec2 mod(dvec2 , dvec2);" - "dvec3 mod(dvec3 , dvec3);" - "dvec4 mod(dvec4 , dvec4);" - - "double modf(double, out double);" - "dvec2 modf(dvec2, out dvec2);" - "dvec3 modf(dvec3, out dvec3);" - "dvec4 modf(dvec4, out dvec4);" - - "double min(double, double);" - "dvec2 min(dvec2, double);" - "dvec3 min(dvec3, double);" - "dvec4 min(dvec4, double);" - "dvec2 min(dvec2, dvec2);" - "dvec3 min(dvec3, dvec3);" - "dvec4 min(dvec4, dvec4);" - - "double max(double, double);" - "dvec2 max(dvec2 , double);" - "dvec3 max(dvec3 , double);" - "dvec4 max(dvec4 , double);" - "dvec2 max(dvec2 , dvec2);" - "dvec3 max(dvec3 , dvec3);" - "dvec4 max(dvec4 , dvec4);" - - "double clamp(double, double, double);" - "dvec2 clamp(dvec2 , double, double);" - "dvec3 clamp(dvec3 , double, double);" - "dvec4 clamp(dvec4 , double, double);" - "dvec2 clamp(dvec2 , dvec2 , dvec2);" - "dvec3 clamp(dvec3 , dvec3 , dvec3);" - "dvec4 clamp(dvec4 , dvec4 , dvec4);" - - "double mix(double, double, double);" - "dvec2 mix(dvec2, dvec2, double);" - "dvec3 mix(dvec3, dvec3, double);" - "dvec4 mix(dvec4, dvec4, double);" - "dvec2 mix(dvec2, dvec2, dvec2);" - "dvec3 mix(dvec3, dvec3, dvec3);" - "dvec4 mix(dvec4, dvec4, dvec4);" - "double mix(double, double, bool);" - "dvec2 mix(dvec2, dvec2, bvec2);" - "dvec3 mix(dvec3, dvec3, bvec3);" - "dvec4 mix(dvec4, dvec4, bvec4);" - - "double step(double, double);" - "dvec2 step(dvec2 , dvec2);" - "dvec3 step(dvec3 , dvec3);" - "dvec4 step(dvec4 , dvec4);" - "dvec2 step(double, dvec2);" - "dvec3 step(double, dvec3);" - "dvec4 step(double, dvec4);" - - "double smoothstep(double, double, double);" - "dvec2 smoothstep(dvec2 , dvec2 , dvec2);" - "dvec3 smoothstep(dvec3 , dvec3 , dvec3);" - "dvec4 smoothstep(dvec4 , dvec4 , dvec4);" - "dvec2 smoothstep(double, double, dvec2);" - "dvec3 smoothstep(double, double, dvec3);" - "dvec4 smoothstep(double, double, dvec4);" - - "bool isnan(double);" - "bvec2 isnan(dvec2);" - "bvec3 isnan(dvec3);" - "bvec4 isnan(dvec4);" - - "bool isinf(double);" - "bvec2 isinf(dvec2);" - "bvec3 isinf(dvec3);" - "bvec4 isinf(dvec4);" - - "double length(double);" - "double length(dvec2);" - "double length(dvec3);" - "double length(dvec4);" - - "double distance(double, double);" - "double distance(dvec2 , dvec2);" - "double distance(dvec3 , dvec3);" - "double distance(dvec4 , dvec4);" - - "double dot(double, double);" - "double dot(dvec2 , dvec2);" - "double dot(dvec3 , dvec3);" - "double dot(dvec4 , dvec4);" - - "dvec3 cross(dvec3, dvec3);" - - "double normalize(double);" - "dvec2 normalize(dvec2);" - "dvec3 normalize(dvec3);" - "dvec4 normalize(dvec4);" - - "double faceforward(double, double, double);" - "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);" - "dvec4 refract(dvec4 , dvec4 , double);" - - "dmat2 matrixCompMult(dmat2, dmat2);" - "dmat3 matrixCompMult(dmat3, dmat3);" - "dmat4 matrixCompMult(dmat4, dmat4);" - "dmat2x3 matrixCompMult(dmat2x3, dmat2x3);" - "dmat2x4 matrixCompMult(dmat2x4, dmat2x4);" - "dmat3x2 matrixCompMult(dmat3x2, dmat3x2);" - "dmat3x4 matrixCompMult(dmat3x4, dmat3x4);" - "dmat4x2 matrixCompMult(dmat4x2, dmat4x2);" - "dmat4x3 matrixCompMult(dmat4x3, dmat4x3);" - - "dmat2 outerProduct(dvec2, dvec2);" - "dmat3 outerProduct(dvec3, dvec3);" - "dmat4 outerProduct(dvec4, dvec4);" - "dmat2x3 outerProduct(dvec3, dvec2);" - "dmat3x2 outerProduct(dvec2, dvec3);" - "dmat2x4 outerProduct(dvec4, dvec2);" - "dmat4x2 outerProduct(dvec2, dvec4);" - "dmat3x4 outerProduct(dvec4, dvec3);" - "dmat4x3 outerProduct(dvec3, dvec4);" - - "dmat2 transpose(dmat2);" - "dmat3 transpose(dmat3);" - "dmat4 transpose(dmat4);" - "dmat2x3 transpose(dmat3x2);" - "dmat3x2 transpose(dmat2x3);" - "dmat2x4 transpose(dmat4x2);" - "dmat4x2 transpose(dmat2x4);" - "dmat3x4 transpose(dmat4x3);" - "dmat4x3 transpose(dmat3x4);" - - "double determinant(dmat2);" - "double determinant(dmat3);" - "double determinant(dmat4);" - - "dmat2 inverse(dmat2);" - "dmat3 inverse(dmat3);" - "dmat4 inverse(dmat4);" - - "bvec2 lessThan(dvec2, dvec2);" - "bvec3 lessThan(dvec3, dvec3);" - "bvec4 lessThan(dvec4, dvec4);" - - "bvec2 lessThanEqual(dvec2, dvec2);" - "bvec3 lessThanEqual(dvec3, dvec3);" - "bvec4 lessThanEqual(dvec4, dvec4);" - - "bvec2 greaterThan(dvec2, dvec2);" - "bvec3 greaterThan(dvec3, dvec3);" - "bvec4 greaterThan(dvec4, dvec4);" - - "bvec2 greaterThanEqual(dvec2, dvec2);" - "bvec3 greaterThanEqual(dvec3, dvec3);" - "bvec4 greaterThanEqual(dvec4, dvec4);" - - "bvec2 equal(dvec2, dvec2);" - "bvec3 equal(dvec3, dvec3);" - "bvec4 equal(dvec4, dvec4);" - - "bvec2 notEqual(dvec2, dvec2);" - "bvec3 notEqual(dvec3, dvec3);" - "bvec4 notEqual(dvec4, dvec4);" - - "\n"); - } - - if (profile == EEsProfile && version >= 310) { // Explicit Types - commonBuiltins.append( - - "float64_t sqrt(float64_t);" - "f64vec2 sqrt(f64vec2);" - "f64vec3 sqrt(f64vec3);" - "f64vec4 sqrt(f64vec4);" - - "float64_t inversesqrt(float64_t);" - "f64vec2 inversesqrt(f64vec2);" - "f64vec3 inversesqrt(f64vec3);" - "f64vec4 inversesqrt(f64vec4);" - - "float64_t abs(float64_t);" - "f64vec2 abs(f64vec2);" - "f64vec3 abs(f64vec3);" - "f64vec4 abs(f64vec4);" - - "float64_t sign(float64_t);" - "f64vec2 sign(f64vec2);" - "f64vec3 sign(f64vec3);" - "f64vec4 sign(f64vec4);" - - "float64_t floor(float64_t);" - "f64vec2 floor(f64vec2);" - "f64vec3 floor(f64vec3);" - "f64vec4 floor(f64vec4);" - - "float64_t trunc(float64_t);" - "f64vec2 trunc(f64vec2);" - "f64vec3 trunc(f64vec3);" - "f64vec4 trunc(f64vec4);" - - "float64_t round(float64_t);" - "f64vec2 round(f64vec2);" - "f64vec3 round(f64vec3);" - "f64vec4 round(f64vec4);" - - "float64_t roundEven(float64_t);" - "f64vec2 roundEven(f64vec2);" - "f64vec3 roundEven(f64vec3);" - "f64vec4 roundEven(f64vec4);" - - "float64_t ceil(float64_t);" - "f64vec2 ceil(f64vec2);" - "f64vec3 ceil(f64vec3);" - "f64vec4 ceil(f64vec4);" - - "float64_t fract(float64_t);" - "f64vec2 fract(f64vec2);" - "f64vec3 fract(f64vec3);" - "f64vec4 fract(f64vec4);" - - "float64_t mod(float64_t, float64_t);" - "f64vec2 mod(f64vec2 , float64_t);" - "f64vec3 mod(f64vec3 , float64_t);" - "f64vec4 mod(f64vec4 , float64_t);" - "f64vec2 mod(f64vec2 , f64vec2);" - "f64vec3 mod(f64vec3 , f64vec3);" - "f64vec4 mod(f64vec4 , f64vec4);" - - "float64_t modf(float64_t, out float64_t);" - "f64vec2 modf(f64vec2, out f64vec2);" - "f64vec3 modf(f64vec3, out f64vec3);" - "f64vec4 modf(f64vec4, out f64vec4);" - - "float64_t min(float64_t, float64_t);" - "f64vec2 min(f64vec2, float64_t);" - "f64vec3 min(f64vec3, float64_t);" - "f64vec4 min(f64vec4, float64_t);" - "f64vec2 min(f64vec2, f64vec2);" - "f64vec3 min(f64vec3, f64vec3);" - "f64vec4 min(f64vec4, f64vec4);" - - "float64_t max(float64_t, float64_t);" - "f64vec2 max(f64vec2 , float64_t);" - "f64vec3 max(f64vec3 , float64_t);" - "f64vec4 max(f64vec4 , float64_t);" - "f64vec2 max(f64vec2 , f64vec2);" - "f64vec3 max(f64vec3 , f64vec3);" - "f64vec4 max(f64vec4 , f64vec4);" - - "float64_t clamp(float64_t, float64_t, float64_t);" - "f64vec2 clamp(f64vec2 , float64_t, float64_t);" - "f64vec3 clamp(f64vec3 , float64_t, float64_t);" - "f64vec4 clamp(f64vec4 , float64_t, float64_t);" - "f64vec2 clamp(f64vec2 , f64vec2 , f64vec2);" - "f64vec3 clamp(f64vec3 , f64vec3 , f64vec3);" - "f64vec4 clamp(f64vec4 , f64vec4 , f64vec4);" - - "float64_t mix(float64_t, float64_t, float64_t);" - "f64vec2 mix(f64vec2, f64vec2, float64_t);" - "f64vec3 mix(f64vec3, f64vec3, float64_t);" - "f64vec4 mix(f64vec4, f64vec4, float64_t);" - "f64vec2 mix(f64vec2, f64vec2, f64vec2);" - "f64vec3 mix(f64vec3, f64vec3, f64vec3);" - "f64vec4 mix(f64vec4, f64vec4, f64vec4);" - "float64_t mix(float64_t, float64_t, bool);" - "f64vec2 mix(f64vec2, f64vec2, bvec2);" - "f64vec3 mix(f64vec3, f64vec3, bvec3);" - "f64vec4 mix(f64vec4, f64vec4, bvec4);" - - "float64_t step(float64_t, float64_t);" - "f64vec2 step(f64vec2 , f64vec2);" - "f64vec3 step(f64vec3 , f64vec3);" - "f64vec4 step(f64vec4 , f64vec4);" - "f64vec2 step(float64_t, f64vec2);" - "f64vec3 step(float64_t, f64vec3);" - "f64vec4 step(float64_t, f64vec4);" - - "float64_t smoothstep(float64_t, float64_t, float64_t);" - "f64vec2 smoothstep(f64vec2 , f64vec2 , f64vec2);" - "f64vec3 smoothstep(f64vec3 , f64vec3 , f64vec3);" - "f64vec4 smoothstep(f64vec4 , f64vec4 , f64vec4);" - "f64vec2 smoothstep(float64_t, float64_t, f64vec2);" - "f64vec3 smoothstep(float64_t, float64_t, f64vec3);" - "f64vec4 smoothstep(float64_t, float64_t, f64vec4);" - - "float64_t length(float64_t);" - "float64_t length(f64vec2);" - "float64_t length(f64vec3);" - "float64_t length(f64vec4);" - - "float64_t distance(float64_t, float64_t);" - "float64_t distance(f64vec2 , f64vec2);" - "float64_t distance(f64vec3 , f64vec3);" - "float64_t distance(f64vec4 , f64vec4);" - - "float64_t dot(float64_t, float64_t);" - "float64_t dot(f64vec2 , f64vec2);" - "float64_t dot(f64vec3 , f64vec3);" - "float64_t dot(f64vec4 , f64vec4);" - - "f64vec3 cross(f64vec3, f64vec3);" - - "float64_t normalize(float64_t);" - "f64vec2 normalize(f64vec2);" - "f64vec3 normalize(f64vec3);" - "f64vec4 normalize(f64vec4);" - - "float64_t faceforward(float64_t, float64_t, float64_t);" - "f64vec2 faceforward(f64vec2, f64vec2, f64vec2);" - "f64vec3 faceforward(f64vec3, f64vec3, f64vec3);" - "f64vec4 faceforward(f64vec4, f64vec4, f64vec4);" - - "float64_t reflect(float64_t, float64_t);" - "f64vec2 reflect(f64vec2 , f64vec2 );" - "f64vec3 reflect(f64vec3 , f64vec3 );" - "f64vec4 reflect(f64vec4 , f64vec4 );" - - "float64_t refract(float64_t, float64_t, float64_t);" - "f64vec2 refract(f64vec2 , f64vec2 , float64_t);" - "f64vec3 refract(f64vec3 , f64vec3 , float64_t);" - "f64vec4 refract(f64vec4 , f64vec4 , float64_t);" - - "f64mat2 matrixCompMult(f64mat2, f64mat2);" - "f64mat3 matrixCompMult(f64mat3, f64mat3);" - "f64mat4 matrixCompMult(f64mat4, f64mat4);" - "f64mat2x3 matrixCompMult(f64mat2x3, f64mat2x3);" - "f64mat2x4 matrixCompMult(f64mat2x4, f64mat2x4);" - "f64mat3x2 matrixCompMult(f64mat3x2, f64mat3x2);" - "f64mat3x4 matrixCompMult(f64mat3x4, f64mat3x4);" - "f64mat4x2 matrixCompMult(f64mat4x2, f64mat4x2);" - "f64mat4x3 matrixCompMult(f64mat4x3, f64mat4x3);" - - "f64mat2 outerProduct(f64vec2, f64vec2);" - "f64mat3 outerProduct(f64vec3, f64vec3);" - "f64mat4 outerProduct(f64vec4, f64vec4);" - "f64mat2x3 outerProduct(f64vec3, f64vec2);" - "f64mat3x2 outerProduct(f64vec2, f64vec3);" - "f64mat2x4 outerProduct(f64vec4, f64vec2);" - "f64mat4x2 outerProduct(f64vec2, f64vec4);" - "f64mat3x4 outerProduct(f64vec4, f64vec3);" - "f64mat4x3 outerProduct(f64vec3, f64vec4);" - - "f64mat2 transpose(f64mat2);" - "f64mat3 transpose(f64mat3);" - "f64mat4 transpose(f64mat4);" - "f64mat2x3 transpose(f64mat3x2);" - "f64mat3x2 transpose(f64mat2x3);" - "f64mat2x4 transpose(f64mat4x2);" - "f64mat4x2 transpose(f64mat2x4);" - "f64mat3x4 transpose(f64mat4x3);" - "f64mat4x3 transpose(f64mat3x4);" - - "float64_t determinant(f64mat2);" - "float64_t determinant(f64mat3);" - "float64_t determinant(f64mat4);" - - "f64mat2 inverse(f64mat2);" - "f64mat3 inverse(f64mat3);" - "f64mat4 inverse(f64mat4);" - - "\n"); - } - - if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 310)) { - commonBuiltins.append( - - "int64_t abs(int64_t);" - "i64vec2 abs(i64vec2);" - "i64vec3 abs(i64vec3);" - "i64vec4 abs(i64vec4);" - - "int64_t sign(int64_t);" - "i64vec2 sign(i64vec2);" - "i64vec3 sign(i64vec3);" - "i64vec4 sign(i64vec4);" - - "int64_t min(int64_t, int64_t);" - "i64vec2 min(i64vec2, int64_t);" - "i64vec3 min(i64vec3, int64_t);" - "i64vec4 min(i64vec4, int64_t);" - "i64vec2 min(i64vec2, i64vec2);" - "i64vec3 min(i64vec3, i64vec3);" - "i64vec4 min(i64vec4, i64vec4);" - "uint64_t min(uint64_t, uint64_t);" - "u64vec2 min(u64vec2, uint64_t);" - "u64vec3 min(u64vec3, uint64_t);" - "u64vec4 min(u64vec4, uint64_t);" - "u64vec2 min(u64vec2, u64vec2);" - "u64vec3 min(u64vec3, u64vec3);" - "u64vec4 min(u64vec4, u64vec4);" - - "int64_t max(int64_t, int64_t);" - "i64vec2 max(i64vec2, int64_t);" - "i64vec3 max(i64vec3, int64_t);" - "i64vec4 max(i64vec4, int64_t);" - "i64vec2 max(i64vec2, i64vec2);" - "i64vec3 max(i64vec3, i64vec3);" - "i64vec4 max(i64vec4, i64vec4);" - "uint64_t max(uint64_t, uint64_t);" - "u64vec2 max(u64vec2, uint64_t);" - "u64vec3 max(u64vec3, uint64_t);" - "u64vec4 max(u64vec4, uint64_t);" - "u64vec2 max(u64vec2, u64vec2);" - "u64vec3 max(u64vec3, u64vec3);" - "u64vec4 max(u64vec4, u64vec4);" - - "int64_t clamp(int64_t, int64_t, int64_t);" - "i64vec2 clamp(i64vec2, int64_t, int64_t);" - "i64vec3 clamp(i64vec3, int64_t, int64_t);" - "i64vec4 clamp(i64vec4, int64_t, int64_t);" - "i64vec2 clamp(i64vec2, i64vec2, i64vec2);" - "i64vec3 clamp(i64vec3, i64vec3, i64vec3);" - "i64vec4 clamp(i64vec4, i64vec4, i64vec4);" - "uint64_t clamp(uint64_t, uint64_t, uint64_t);" - "u64vec2 clamp(u64vec2, uint64_t, uint64_t);" - "u64vec3 clamp(u64vec3, uint64_t, uint64_t);" - "u64vec4 clamp(u64vec4, uint64_t, uint64_t);" - "u64vec2 clamp(u64vec2, u64vec2, u64vec2);" - "u64vec3 clamp(u64vec3, u64vec3, u64vec3);" - "u64vec4 clamp(u64vec4, u64vec4, u64vec4);" - - "int64_t mix(int64_t, int64_t, bool);" - "i64vec2 mix(i64vec2, i64vec2, bvec2);" - "i64vec3 mix(i64vec3, i64vec3, bvec3);" - "i64vec4 mix(i64vec4, i64vec4, bvec4);" - "uint64_t mix(uint64_t, uint64_t, bool);" - "u64vec2 mix(u64vec2, u64vec2, bvec2);" - "u64vec3 mix(u64vec3, u64vec3, bvec3);" - "u64vec4 mix(u64vec4, u64vec4, bvec4);" - - "int64_t doubleBitsToInt64(float64_t);" - "i64vec2 doubleBitsToInt64(f64vec2);" - "i64vec3 doubleBitsToInt64(f64vec3);" - "i64vec4 doubleBitsToInt64(f64vec4);" - - "uint64_t doubleBitsToUint64(float64_t);" - "u64vec2 doubleBitsToUint64(f64vec2);" - "u64vec3 doubleBitsToUint64(f64vec3);" - "u64vec4 doubleBitsToUint64(f64vec4);" - - "float64_t int64BitsToDouble(int64_t);" - "f64vec2 int64BitsToDouble(i64vec2);" - "f64vec3 int64BitsToDouble(i64vec3);" - "f64vec4 int64BitsToDouble(i64vec4);" - - "float64_t uint64BitsToDouble(uint64_t);" - "f64vec2 uint64BitsToDouble(u64vec2);" - "f64vec3 uint64BitsToDouble(u64vec3);" - "f64vec4 uint64BitsToDouble(u64vec4);" - - "int64_t packInt2x32(ivec2);" - "uint64_t packUint2x32(uvec2);" - "ivec2 unpackInt2x32(int64_t);" - "uvec2 unpackUint2x32(uint64_t);" - - "bvec2 lessThan(i64vec2, i64vec2);" - "bvec3 lessThan(i64vec3, i64vec3);" - "bvec4 lessThan(i64vec4, i64vec4);" - "bvec2 lessThan(u64vec2, u64vec2);" - "bvec3 lessThan(u64vec3, u64vec3);" - "bvec4 lessThan(u64vec4, u64vec4);" - - "bvec2 lessThanEqual(i64vec2, i64vec2);" - "bvec3 lessThanEqual(i64vec3, i64vec3);" - "bvec4 lessThanEqual(i64vec4, i64vec4);" - "bvec2 lessThanEqual(u64vec2, u64vec2);" - "bvec3 lessThanEqual(u64vec3, u64vec3);" - "bvec4 lessThanEqual(u64vec4, u64vec4);" - - "bvec2 greaterThan(i64vec2, i64vec2);" - "bvec3 greaterThan(i64vec3, i64vec3);" - "bvec4 greaterThan(i64vec4, i64vec4);" - "bvec2 greaterThan(u64vec2, u64vec2);" - "bvec3 greaterThan(u64vec3, u64vec3);" - "bvec4 greaterThan(u64vec4, u64vec4);" - - "bvec2 greaterThanEqual(i64vec2, i64vec2);" - "bvec3 greaterThanEqual(i64vec3, i64vec3);" - "bvec4 greaterThanEqual(i64vec4, i64vec4);" - "bvec2 greaterThanEqual(u64vec2, u64vec2);" - "bvec3 greaterThanEqual(u64vec3, u64vec3);" - "bvec4 greaterThanEqual(u64vec4, u64vec4);" - - "bvec2 equal(i64vec2, i64vec2);" - "bvec3 equal(i64vec3, i64vec3);" - "bvec4 equal(i64vec4, i64vec4);" - "bvec2 equal(u64vec2, u64vec2);" - "bvec3 equal(u64vec3, u64vec3);" - "bvec4 equal(u64vec4, u64vec4);" - - "bvec2 notEqual(i64vec2, i64vec2);" - "bvec3 notEqual(i64vec3, i64vec3);" - "bvec4 notEqual(i64vec4, i64vec4);" - "bvec2 notEqual(u64vec2, u64vec2);" - "bvec3 notEqual(u64vec3, u64vec3);" - "bvec4 notEqual(u64vec4, u64vec4);" - - "int64_t bitCount(int64_t);" - "i64vec2 bitCount(i64vec2);" - "i64vec3 bitCount(i64vec3);" - "i64vec4 bitCount(i64vec4);" - - "int64_t bitCount(uint64_t);" - "i64vec2 bitCount(u64vec2);" - "i64vec3 bitCount(u64vec3);" - "i64vec4 bitCount(u64vec4);" - - "int64_t findLSB(int64_t);" - "i64vec2 findLSB(i64vec2);" - "i64vec3 findLSB(i64vec3);" - "i64vec4 findLSB(i64vec4);" - - "int64_t findLSB(uint64_t);" - "i64vec2 findLSB(u64vec2);" - "i64vec3 findLSB(u64vec3);" - "i64vec4 findLSB(u64vec4);" - - "int64_t findMSB(int64_t);" - "i64vec2 findMSB(i64vec2);" - "i64vec3 findMSB(i64vec3);" - "i64vec4 findMSB(i64vec4);" - - "int64_t findMSB(uint64_t);" - "i64vec2 findMSB(u64vec2);" - "i64vec3 findMSB(u64vec3);" - "i64vec4 findMSB(u64vec4);" - - "\n" - ); - } - - // GL_AMD_shader_trinary_minmax - if (profile != EEsProfile && version >= 430) { - commonBuiltins.append( - "float min3(float, float, float);" - "vec2 min3(vec2, vec2, vec2);" - "vec3 min3(vec3, vec3, vec3);" - "vec4 min3(vec4, vec4, vec4);" - - "int min3(int, int, int);" - "ivec2 min3(ivec2, ivec2, ivec2);" - "ivec3 min3(ivec3, ivec3, ivec3);" - "ivec4 min3(ivec4, ivec4, ivec4);" - - "uint min3(uint, uint, uint);" - "uvec2 min3(uvec2, uvec2, uvec2);" - "uvec3 min3(uvec3, uvec3, uvec3);" - "uvec4 min3(uvec4, uvec4, uvec4);" - - "float max3(float, float, float);" - "vec2 max3(vec2, vec2, vec2);" - "vec3 max3(vec3, vec3, vec3);" - "vec4 max3(vec4, vec4, vec4);" - - "int max3(int, int, int);" - "ivec2 max3(ivec2, ivec2, ivec2);" - "ivec3 max3(ivec3, ivec3, ivec3);" - "ivec4 max3(ivec4, ivec4, ivec4);" - - "uint max3(uint, uint, uint);" - "uvec2 max3(uvec2, uvec2, uvec2);" - "uvec3 max3(uvec3, uvec3, uvec3);" - "uvec4 max3(uvec4, uvec4, uvec4);" - - "float mid3(float, float, float);" - "vec2 mid3(vec2, vec2, vec2);" - "vec3 mid3(vec3, vec3, vec3);" - "vec4 mid3(vec4, vec4, vec4);" - - "int mid3(int, int, int);" - "ivec2 mid3(ivec2, ivec2, ivec2);" - "ivec3 mid3(ivec3, ivec3, ivec3);" - "ivec4 mid3(ivec4, ivec4, ivec4);" - - "uint mid3(uint, uint, uint);" - "uvec2 mid3(uvec2, uvec2, uvec2);" - "uvec3 mid3(uvec3, uvec3, uvec3);" - "uvec4 mid3(uvec4, uvec4, uvec4);" - - "float16_t min3(float16_t, float16_t, float16_t);" - "f16vec2 min3(f16vec2, f16vec2, f16vec2);" - "f16vec3 min3(f16vec3, f16vec3, f16vec3);" - "f16vec4 min3(f16vec4, f16vec4, f16vec4);" - - "float16_t max3(float16_t, float16_t, float16_t);" - "f16vec2 max3(f16vec2, f16vec2, f16vec2);" - "f16vec3 max3(f16vec3, f16vec3, f16vec3);" - "f16vec4 max3(f16vec4, f16vec4, f16vec4);" - - "float16_t mid3(float16_t, float16_t, float16_t);" - "f16vec2 mid3(f16vec2, f16vec2, f16vec2);" - "f16vec3 mid3(f16vec3, f16vec3, f16vec3);" - "f16vec4 mid3(f16vec4, f16vec4, f16vec4);" - - "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" - ); - } -#endif // !GLSLANG_ANGLE - - if ((profile == EEsProfile && version >= 310) || - (profile != EEsProfile && version >= 430)) { - commonBuiltins.append( - "uint atomicAdd(coherent volatile inout uint, uint, int, int, int);" - " int atomicAdd(coherent volatile inout int, int, int, int, int);" - - "uint atomicMin(coherent volatile inout uint, uint, int, int, int);" - " int atomicMin(coherent volatile inout int, int, int, int, int);" - - "uint atomicMax(coherent volatile inout uint, uint, int, int, int);" - " int atomicMax(coherent volatile inout int, int, int, int, int);" - - "uint atomicAnd(coherent volatile inout uint, uint, int, int, int);" - " int atomicAnd(coherent volatile inout int, int, int, int, int);" - - "uint atomicOr (coherent volatile inout uint, uint, int, int, int);" - " int atomicOr (coherent volatile inout int, int, int, int, int);" - - "uint atomicXor(coherent volatile inout uint, uint, int, int, int);" - " int atomicXor(coherent volatile inout int, int, int, int, int);" - - "uint atomicExchange(coherent volatile inout uint, uint, int, int, int);" - " int atomicExchange(coherent volatile inout int, int, int, int, int);" - - "uint atomicCompSwap(coherent volatile inout uint, uint, uint, int, int, int, int, int);" - " int atomicCompSwap(coherent volatile inout int, int, int, int, int, int, int, int);" - - "uint atomicLoad(coherent volatile in uint, int, int, int);" - " int atomicLoad(coherent volatile in int, int, int, int);" - - "void atomicStore(coherent volatile out uint, uint, int, int, int);" - "void atomicStore(coherent volatile out int, int, int, int, int);" - - "\n"); - } - -#ifndef GLSLANG_ANGLE - 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 atomicMin(coherent volatile inout uint64_t, uint64_t, int, int, int);" - " int64_t atomicMin(coherent volatile inout int64_t, int64_t, int, int, int);" - "float16_t atomicMin(coherent volatile inout float16_t, float16_t);" - "float16_t atomicMin(coherent volatile inout float16_t, float16_t, int, int, int);" - " float atomicMin(coherent volatile inout float, float);" - " float atomicMin(coherent volatile inout float, float, int, int, int);" - " double atomicMin(coherent volatile inout double, double);" - " double atomicMin(coherent volatile inout double, double, int, int, int);" - - "uint64_t atomicMax(coherent volatile inout uint64_t, uint64_t);" - " int64_t atomicMax(coherent volatile inout int64_t, int64_t);" - "uint64_t atomicMax(coherent volatile inout uint64_t, uint64_t, int, int, int);" - " int64_t atomicMax(coherent volatile inout int64_t, int64_t, int, int, int);" - "float16_t atomicMax(coherent volatile inout float16_t, float16_t);" - "float16_t atomicMax(coherent volatile inout float16_t, float16_t, int, int, int);" - " float atomicMax(coherent volatile inout float, float);" - " float atomicMax(coherent volatile inout float, float, int, int, int);" - " double atomicMax(coherent volatile inout double, double);" - " double atomicMax(coherent volatile inout double, double, int, int, int);" - - "uint64_t atomicAnd(coherent volatile inout uint64_t, uint64_t);" - " int64_t atomicAnd(coherent volatile inout int64_t, int64_t);" - "uint64_t atomicAnd(coherent volatile inout uint64_t, uint64_t, int, int, int);" - " int64_t atomicAnd(coherent volatile inout int64_t, int64_t, int, int, int);" - - "uint64_t atomicOr (coherent volatile inout uint64_t, uint64_t);" - " int64_t atomicOr (coherent volatile inout int64_t, int64_t);" - "uint64_t atomicOr (coherent volatile inout uint64_t, uint64_t, int, int, int);" - " int64_t atomicOr (coherent volatile inout int64_t, int64_t, int, int, int);" - - "uint64_t atomicXor(coherent volatile inout uint64_t, uint64_t);" - " int64_t atomicXor(coherent volatile inout int64_t, int64_t);" - "uint64_t atomicXor(coherent volatile inout uint64_t, uint64_t, int, int, int);" - " int64_t atomicXor(coherent volatile inout int64_t, int64_t, int, int, int);" - - "uint64_t atomicAdd(coherent volatile inout uint64_t, uint64_t);" - " int64_t atomicAdd(coherent volatile inout int64_t, int64_t);" - "uint64_t atomicAdd(coherent volatile inout uint64_t, uint64_t, int, int, int);" - " int64_t atomicAdd(coherent volatile inout int64_t, int64_t, int, int, int);" - "float16_t atomicAdd(coherent volatile inout float16_t, float16_t);" - "float16_t atomicAdd(coherent volatile inout float16_t, float16_t, int, int, int);" - " float atomicAdd(coherent volatile inout float, float);" - " float atomicAdd(coherent volatile inout float, float, int, int, int);" - " double atomicAdd(coherent volatile inout double, double);" - " double atomicAdd(coherent volatile inout double, double, int, int, int);" - - "uint64_t atomicExchange(coherent volatile inout uint64_t, uint64_t);" - " int64_t atomicExchange(coherent volatile inout int64_t, int64_t);" - "uint64_t atomicExchange(coherent volatile inout uint64_t, uint64_t, int, int, int);" - " int64_t atomicExchange(coherent volatile inout int64_t, int64_t, int, int, int);" - "float16_t atomicExchange(coherent volatile inout float16_t, float16_t);" - "float16_t atomicExchange(coherent volatile inout float16_t, float16_t, int, int, int);" - " float atomicExchange(coherent volatile inout float, float);" - " float atomicExchange(coherent volatile inout float, float, int, int, int);" - " double atomicExchange(coherent volatile inout double, double);" - " double atomicExchange(coherent volatile inout double, double, int, int, int);" - - "uint64_t atomicCompSwap(coherent volatile inout uint64_t, uint64_t, uint64_t);" - " int64_t atomicCompSwap(coherent volatile inout int64_t, int64_t, int64_t);" - "uint64_t atomicCompSwap(coherent volatile inout uint64_t, uint64_t, uint64_t, int, int, int, int, int);" - " int64_t atomicCompSwap(coherent volatile inout int64_t, int64_t, int64_t, int, int, int, int, int);" - - "uint64_t atomicLoad(coherent volatile in uint64_t, int, int, int);" - " int64_t atomicLoad(coherent volatile in int64_t, int, int, int);" - "float16_t atomicLoad(coherent volatile in float16_t, int, int, int);" - " float atomicLoad(coherent volatile in float, int, int, int);" - " double atomicLoad(coherent volatile in double, int, int, int);" - - "void atomicStore(coherent volatile out uint64_t, uint64_t, int, int, int);" - "void atomicStore(coherent volatile out int64_t, int64_t, int, int, int);" - "void atomicStore(coherent volatile out float16_t, float16_t, int, int, int);" - "void atomicStore(coherent volatile out float, float, int, int, int);" - "void atomicStore(coherent volatile out double, double, int, int, int);" - "\n"); - } -#endif // !GLSLANG_ANGLE -#endif // !GLSLANG_WEB - - if ((profile == EEsProfile && version >= 300) || - (profile != EEsProfile && version >= 150)) { // GL_ARB_shader_bit_encoding - commonBuiltins.append( - "int floatBitsToInt(highp float value);" - "ivec2 floatBitsToInt(highp vec2 value);" - "ivec3 floatBitsToInt(highp vec3 value);" - "ivec4 floatBitsToInt(highp vec4 value);" - - "uint floatBitsToUint(highp float value);" - "uvec2 floatBitsToUint(highp vec2 value);" - "uvec3 floatBitsToUint(highp vec3 value);" - "uvec4 floatBitsToUint(highp vec4 value);" - - "float intBitsToFloat(highp int value);" - "vec2 intBitsToFloat(highp ivec2 value);" - "vec3 intBitsToFloat(highp ivec3 value);" - "vec4 intBitsToFloat(highp ivec4 value);" - - "float uintBitsToFloat(highp uint value);" - "vec2 uintBitsToFloat(highp uvec2 value);" - "vec3 uintBitsToFloat(highp uvec3 value);" - "vec4 uintBitsToFloat(highp uvec4 value);" - - "\n"); - } - -#ifndef GLSLANG_WEB - if ((profile != EEsProfile && version >= 400) || - (profile == EEsProfile && version >= 310)) { // GL_OES_gpu_shader5 - - commonBuiltins.append( - "float fma(float, float, float );" - "vec2 fma(vec2, vec2, vec2 );" - "vec3 fma(vec3, vec3, vec3 );" - "vec4 fma(vec4, vec4, vec4 );" - "\n"); - } - -#ifndef GLSLANG_ANGLE - if (profile != EEsProfile && version >= 150) { // ARB_gpu_shader_fp64 - commonBuiltins.append( - "double fma(double, double, double);" - "dvec2 fma(dvec2, dvec2, dvec2 );" - "dvec3 fma(dvec3, dvec3, dvec3 );" - "dvec4 fma(dvec4, dvec4, dvec4 );" - "\n"); - } - - if (profile == EEsProfile && version >= 310) { // ARB_gpu_shader_fp64 - commonBuiltins.append( - "float64_t fma(float64_t, float64_t, float64_t);" - "f64vec2 fma(f64vec2, f64vec2, f64vec2 );" - "f64vec3 fma(f64vec3, f64vec3, f64vec3 );" - "f64vec4 fma(f64vec4, f64vec4, f64vec4 );" - "\n"); - } -#endif - - if ((profile == EEsProfile && version >= 310) || - (profile != EEsProfile && version >= 400)) { - commonBuiltins.append( - "float frexp(highp float, out highp int);" - "vec2 frexp(highp vec2, out highp ivec2);" - "vec3 frexp(highp vec3, out highp ivec3);" - "vec4 frexp(highp vec4, out highp ivec4);" - - "float ldexp(highp float, highp int);" - "vec2 ldexp(highp vec2, highp ivec2);" - "vec3 ldexp(highp vec3, highp ivec3);" - "vec4 ldexp(highp vec4, highp ivec4);" - - "\n"); - } - -#ifndef GLSLANG_ANGLE - if (profile != EEsProfile && version >= 150) { // ARB_gpu_shader_fp64 - commonBuiltins.append( - "double frexp(double, out int);" - "dvec2 frexp( dvec2, out ivec2);" - "dvec3 frexp( dvec3, out ivec3);" - "dvec4 frexp( dvec4, out ivec4);" - - "double ldexp(double, int);" - "dvec2 ldexp( dvec2, ivec2);" - "dvec3 ldexp( dvec3, ivec3);" - "dvec4 ldexp( dvec4, ivec4);" - - "double packDouble2x32(uvec2);" - "uvec2 unpackDouble2x32(double);" - - "\n"); - } - - if (profile == EEsProfile && version >= 310) { // ARB_gpu_shader_fp64 - commonBuiltins.append( - "float64_t frexp(float64_t, out int);" - "f64vec2 frexp( f64vec2, out ivec2);" - "f64vec3 frexp( f64vec3, out ivec3);" - "f64vec4 frexp( f64vec4, out ivec4);" - - "float64_t ldexp(float64_t, int);" - "f64vec2 ldexp( f64vec2, ivec2);" - "f64vec3 ldexp( f64vec3, ivec3);" - "f64vec4 ldexp( f64vec4, ivec4);" - - "\n"); - } -#endif -#endif - - if ((profile == EEsProfile && version >= 300) || - (profile != EEsProfile && version >= 150)) { - commonBuiltins.append( - "highp uint packUnorm2x16(vec2);" - "vec2 unpackUnorm2x16(highp uint);" - "\n"); - } - - if ((profile == EEsProfile && version >= 300) || - (profile != EEsProfile && version >= 150)) { - commonBuiltins.append( - "highp uint packSnorm2x16(vec2);" - " vec2 unpackSnorm2x16(highp uint);" - "highp uint packHalf2x16(vec2);" - "\n"); - } - - if (profile == EEsProfile && version >= 300) { - commonBuiltins.append( - "mediump vec2 unpackHalf2x16(highp uint);" - "\n"); - } else if (profile != EEsProfile && version >= 150) { - commonBuiltins.append( - " vec2 unpackHalf2x16(highp uint);" - "\n"); - } - -#ifndef GLSLANG_WEB - if ((profile == EEsProfile && version >= 310) || - (profile != EEsProfile && version >= 150)) { - commonBuiltins.append( - "highp uint packSnorm4x8(vec4);" - "highp uint packUnorm4x8(vec4);" - "\n"); - } - - if (profile == EEsProfile && version >= 310) { - commonBuiltins.append( - "mediump vec4 unpackSnorm4x8(highp uint);" - "mediump vec4 unpackUnorm4x8(highp uint);" - "\n"); - } else if (profile != EEsProfile && version >= 150) { - commonBuiltins.append( - "vec4 unpackSnorm4x8(highp uint);" - "vec4 unpackUnorm4x8(highp uint);" - "\n"); - } -#endif - - // - // Matrix Functions. - // - commonBuiltins.append( - "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 - if (version >= 120) { - commonBuiltins.append( - "mat2 outerProduct(vec2 c, vec2 r);" - "mat3 outerProduct(vec3 c, vec3 r);" - "mat4 outerProduct(vec4 c, vec4 r);" - "mat2x3 outerProduct(vec3 c, vec2 r);" - "mat3x2 outerProduct(vec2 c, vec3 r);" - "mat2x4 outerProduct(vec4 c, vec2 r);" - "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);" - "mat2x3 transpose(mat3x2 m);" - "mat3x2 transpose(mat2x3 m);" - "mat2x4 transpose(mat4x2 m);" - "mat4x2 transpose(mat2x4 m);" - "mat3x4 transpose(mat4x3 m);" - "mat4x3 transpose(mat3x4 m);" - - "mat2x3 matrixCompMult(mat2x3, mat2x3);" - "mat2x4 matrixCompMult(mat2x4, mat2x4);" - "mat3x2 matrixCompMult(mat3x2, mat3x2);" - "mat3x4 matrixCompMult(mat3x4, mat3x4);" - "mat4x2 matrixCompMult(mat4x2, mat4x2);" - "mat4x3 matrixCompMult(mat4x3, mat4x3);" - - "\n"); - - // 150 is correct for both ES and desktop - if (version >= 150) { - commonBuiltins.append( - "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"); - } - } - -#ifndef GLSLANG_WEB -#ifndef GLSLANG_ANGLE - // - // Original-style texture functions existing in all stages. - // (Per-stage functions below.) - // - if ((profile == EEsProfile && version == 100) || - profile == ECompatibilityProfile || - (profile == ECoreProfile && version < 420) || - profile == ENoProfile) { - if (spvVersion.spv == 0) { - commonBuiltins.append( - "vec4 texture2D(sampler2D, vec2);" - - "vec4 texture2DProj(sampler2D, vec3);" - "vec4 texture2DProj(sampler2D, vec4);" - - "vec4 texture3D(sampler3D, vec3);" // OES_texture_3D, but caught by keyword check - "vec4 texture3DProj(sampler3D, vec4);" // OES_texture_3D, but caught by keyword check - - "vec4 textureCube(samplerCube, vec3);" - - "\n"); - } - } - - if ( profile == ECompatibilityProfile || - (profile == ECoreProfile && version < 420) || - profile == ENoProfile) { - if (spvVersion.spv == 0) { - commonBuiltins.append( - "vec4 texture1D(sampler1D, float);" - - "vec4 texture1DProj(sampler1D, vec2);" - "vec4 texture1DProj(sampler1D, vec4);" - - "vec4 shadow1D(sampler1DShadow, vec3);" - "vec4 shadow2D(sampler2DShadow, vec3);" - "vec4 shadow1DProj(sampler1DShadow, vec4);" - "vec4 shadow2DProj(sampler2DShadow, vec4);" - - "vec4 texture2DRect(sampler2DRect, vec2);" // GL_ARB_texture_rectangle, caught by keyword check - "vec4 texture2DRectProj(sampler2DRect, vec3);" // GL_ARB_texture_rectangle, caught by keyword check - "vec4 texture2DRectProj(sampler2DRect, vec4);" // GL_ARB_texture_rectangle, caught by keyword check - "vec4 shadow2DRect(sampler2DRectShadow, vec3);" // GL_ARB_texture_rectangle, caught by keyword check - "vec4 shadow2DRectProj(sampler2DRectShadow, vec4);" // GL_ARB_texture_rectangle, caught by keyword check - - "\n"); - } - } - - 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( - "highp ivec2 textureSize(__samplerExternal2DY2YEXT, int lod);" // GL_EXT_YUV_target - "vec4 texture(__samplerExternal2DY2YEXT, vec2);" // GL_EXT_YUV_target - "vec4 texture(__samplerExternal2DY2YEXT, vec2, float bias);" // GL_EXT_YUV_target - "vec4 textureProj(__samplerExternal2DY2YEXT, vec3);" // GL_EXT_YUV_target - "vec4 textureProj(__samplerExternal2DY2YEXT, vec3, float bias);" // GL_EXT_YUV_target - "vec4 textureProj(__samplerExternal2DY2YEXT, vec4);" // GL_EXT_YUV_target - "vec4 textureProj(__samplerExternal2DY2YEXT, vec4, float bias);" // GL_EXT_YUV_target - "vec4 texelFetch(__samplerExternal2DY2YEXT sampler, ivec2, int lod);" // GL_EXT_YUV_target - "\n"); - commonBuiltins.append( - "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"); - } - } - - // - // Noise functions. - // - 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"); - } - - if (spvVersion.vulkan == 0) { - // - // Atomic counter functions. - // - 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 == 450) { - commonBuiltins.append( - "uint atomicCounterAddARB(atomic_uint, uint);" - "uint atomicCounterSubtractARB(atomic_uint, uint);" - "uint atomicCounterMinARB(atomic_uint, uint);" - "uint atomicCounterMaxARB(atomic_uint, uint);" - "uint atomicCounterAndARB(atomic_uint, uint);" - "uint atomicCounterOrARB(atomic_uint, uint);" - "uint atomicCounterXorARB(atomic_uint, uint);" - "uint atomicCounterExchangeARB(atomic_uint, uint);" - "uint atomicCounterCompSwapARB(atomic_uint, uint, 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"); - } - } - else if (spvVersion.vulkanRelaxed) { - // - // Atomic counter functions act as aliases to normal atomic functions. - // replace definitions to take 'volatile coherent uint' instead of 'atomic_uint' - // and map to equivalent non-counter atomic op - // - if ((profile != EEsProfile && version >= 300) || - (profile == EEsProfile && version >= 310)) { - commonBuiltins.append( - "uint atomicCounterIncrement(volatile coherent uint);" - "uint atomicCounterDecrement(volatile coherent uint);" - "uint atomicCounter(volatile coherent uint);" - - "\n"); - } - if (profile != EEsProfile && version >= 460) { - commonBuiltins.append( - "uint atomicCounterAdd(volatile coherent uint, uint);" - "uint atomicCounterSubtract(volatile coherent uint, uint);" - "uint atomicCounterMin(volatile coherent uint, uint);" - "uint atomicCounterMax(volatile coherent uint, uint);" - "uint atomicCounterAnd(volatile coherent uint, uint);" - "uint atomicCounterOr(volatile coherent uint, uint);" - "uint atomicCounterXor(volatile coherent uint, uint);" - "uint atomicCounterExchange(volatile coherent uint, uint);" - "uint atomicCounterCompSwap(volatile coherent uint, uint, uint);" - - "\n"); - } - } -#endif // !GLSLANG_ANGLE - - // Bitfield - if ((profile == EEsProfile && version >= 310) || - (profile != EEsProfile && version >= 400)) { - commonBuiltins.append( - " int bitfieldExtract( int, int, int);" - "ivec2 bitfieldExtract(ivec2, int, int);" - "ivec3 bitfieldExtract(ivec3, int, int);" - "ivec4 bitfieldExtract(ivec4, int, int);" - - " uint bitfieldExtract( uint, int, int);" - "uvec2 bitfieldExtract(uvec2, int, int);" - "uvec3 bitfieldExtract(uvec3, int, int);" - "uvec4 bitfieldExtract(uvec4, int, int);" - - " int bitfieldInsert( int base, int, int, int);" - "ivec2 bitfieldInsert(ivec2 base, ivec2, int, int);" - "ivec3 bitfieldInsert(ivec3 base, ivec3, int, int);" - "ivec4 bitfieldInsert(ivec4 base, ivec4, int, int);" - - " uint bitfieldInsert( uint base, uint, int, int);" - "uvec2 bitfieldInsert(uvec2 base, uvec2, int, int);" - "uvec3 bitfieldInsert(uvec3 base, uvec3, int, int);" - "uvec4 bitfieldInsert(uvec4 base, uvec4, int, int);" - - "\n"); - } - - if (profile != EEsProfile && version >= 400) { - commonBuiltins.append( - " int findLSB( int);" - "ivec2 findLSB(ivec2);" - "ivec3 findLSB(ivec3);" - "ivec4 findLSB(ivec4);" - - " int findLSB( uint);" - "ivec2 findLSB(uvec2);" - "ivec3 findLSB(uvec3);" - "ivec4 findLSB(uvec4);" - - "\n"); - } else if (profile == EEsProfile && version >= 310) { - commonBuiltins.append( - "lowp int findLSB( int);" - "lowp ivec2 findLSB(ivec2);" - "lowp ivec3 findLSB(ivec3);" - "lowp ivec4 findLSB(ivec4);" - - "lowp int findLSB( uint);" - "lowp ivec2 findLSB(uvec2);" - "lowp ivec3 findLSB(uvec3);" - "lowp ivec4 findLSB(uvec4);" - - "\n"); - } - - if (profile != EEsProfile && version >= 400) { - commonBuiltins.append( - " int bitCount( int);" - "ivec2 bitCount(ivec2);" - "ivec3 bitCount(ivec3);" - "ivec4 bitCount(ivec4);" - - " int bitCount( uint);" - "ivec2 bitCount(uvec2);" - "ivec3 bitCount(uvec3);" - "ivec4 bitCount(uvec4);" - - " int findMSB(highp int);" - "ivec2 findMSB(highp ivec2);" - "ivec3 findMSB(highp ivec3);" - "ivec4 findMSB(highp ivec4);" - - " int findMSB(highp uint);" - "ivec2 findMSB(highp uvec2);" - "ivec3 findMSB(highp uvec3);" - "ivec4 findMSB(highp uvec4);" - - "\n"); - } - - if ((profile == EEsProfile && version >= 310) || - (profile != EEsProfile && version >= 400)) { - commonBuiltins.append( - " uint uaddCarry(highp uint, highp uint, out lowp uint carry);" - "uvec2 uaddCarry(highp uvec2, highp uvec2, out lowp uvec2 carry);" - "uvec3 uaddCarry(highp uvec3, highp uvec3, out lowp uvec3 carry);" - "uvec4 uaddCarry(highp uvec4, highp uvec4, out lowp uvec4 carry);" - - " uint usubBorrow(highp uint, highp uint, out lowp uint borrow);" - "uvec2 usubBorrow(highp uvec2, highp uvec2, out lowp uvec2 borrow);" - "uvec3 usubBorrow(highp uvec3, highp uvec3, out lowp uvec3 borrow);" - "uvec4 usubBorrow(highp uvec4, highp uvec4, out lowp uvec4 borrow);" - - "void umulExtended(highp uint, highp uint, out highp uint, out highp uint lsb);" - "void umulExtended(highp uvec2, highp uvec2, out highp uvec2, out highp uvec2 lsb);" - "void umulExtended(highp uvec3, highp uvec3, out highp uvec3, out highp uvec3 lsb);" - "void umulExtended(highp uvec4, highp uvec4, out highp uvec4, out highp uvec4 lsb);" - - "void imulExtended(highp int, highp int, out highp int, out highp int lsb);" - "void imulExtended(highp ivec2, highp ivec2, out highp ivec2, out highp ivec2 lsb);" - "void imulExtended(highp ivec3, highp ivec3, out highp ivec3, out highp ivec3 lsb);" - "void imulExtended(highp ivec4, highp ivec4, out highp ivec4, out highp ivec4 lsb);" - - " int bitfieldReverse(highp int);" - "ivec2 bitfieldReverse(highp ivec2);" - "ivec3 bitfieldReverse(highp ivec3);" - "ivec4 bitfieldReverse(highp ivec4);" - - " uint bitfieldReverse(highp uint);" - "uvec2 bitfieldReverse(highp uvec2);" - "uvec3 bitfieldReverse(highp uvec3);" - "uvec4 bitfieldReverse(highp uvec4);" - - "\n"); - } - - if (profile == EEsProfile && version >= 310) { - commonBuiltins.append( - "lowp int bitCount( int);" - "lowp ivec2 bitCount(ivec2);" - "lowp ivec3 bitCount(ivec3);" - "lowp ivec4 bitCount(ivec4);" - - "lowp int bitCount( uint);" - "lowp ivec2 bitCount(uvec2);" - "lowp ivec3 bitCount(uvec3);" - "lowp ivec4 bitCount(uvec4);" - - "lowp int findMSB(highp int);" - "lowp ivec2 findMSB(highp ivec2);" - "lowp ivec3 findMSB(highp ivec3);" - "lowp ivec4 findMSB(highp ivec4);" - - "lowp int findMSB(highp uint);" - "lowp ivec2 findMSB(highp uvec2);" - "lowp ivec3 findMSB(highp uvec3);" - "lowp ivec4 findMSB(highp uvec4);" - - "\n"); - } - -#ifndef GLSLANG_ANGLE - // GL_ARB_shader_ballot - if (profile != EEsProfile && version >= 450) { - commonBuiltins.append( - "uint64_t ballotARB(bool);" - - "float readInvocationARB(float, uint);" - "vec2 readInvocationARB(vec2, uint);" - "vec3 readInvocationARB(vec3, uint);" - "vec4 readInvocationARB(vec4, uint);" - - "int readInvocationARB(int, uint);" - "ivec2 readInvocationARB(ivec2, uint);" - "ivec3 readInvocationARB(ivec3, uint);" - "ivec4 readInvocationARB(ivec4, uint);" - - "uint readInvocationARB(uint, uint);" - "uvec2 readInvocationARB(uvec2, uint);" - "uvec3 readInvocationARB(uvec3, uint);" - "uvec4 readInvocationARB(uvec4, uint);" - - "float readFirstInvocationARB(float);" - "vec2 readFirstInvocationARB(vec2);" - "vec3 readFirstInvocationARB(vec3);" - "vec4 readFirstInvocationARB(vec4);" - - "int readFirstInvocationARB(int);" - "ivec2 readFirstInvocationARB(ivec2);" - "ivec3 readFirstInvocationARB(ivec3);" - "ivec4 readFirstInvocationARB(ivec4);" - - "uint readFirstInvocationARB(uint);" - "uvec2 readFirstInvocationARB(uvec2);" - "uvec3 readFirstInvocationARB(uvec3);" - "uvec4 readFirstInvocationARB(uvec4);" - - "\n"); - } - - // GL_ARB_shader_group_vote - if (profile != EEsProfile && version >= 430) { - commonBuiltins.append( - "bool anyInvocationARB(bool);" - "bool allInvocationsARB(bool);" - "bool allInvocationsEqualARB(bool);" - - "\n"); - } - - // GL_KHR_shader_subgroup - if ((profile == EEsProfile && version >= 310) || - (profile != EEsProfile && version >= 140)) { - commonBuiltins.append( - "void subgroupBarrier();" - "void subgroupMemoryBarrier();" - "void subgroupMemoryBarrierBuffer();" - "void subgroupMemoryBarrierImage();" - "bool subgroupElect();" - - "bool subgroupAll(bool);\n" - "bool subgroupAny(bool);\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" - ); - - // Generate all flavors of subgroup ops. - static const char *subgroupOps[] = - { - "bool subgroupAllEqual(%s);\n", - "%s subgroupBroadcast(%s, uint);\n", - "%s subgroupBroadcastFirst(%s);\n", - "%s subgroupShuffle(%s, uint);\n", - "%s subgroupShuffleXor(%s, uint);\n", - "%s subgroupShuffleUp(%s, uint delta);\n", - "%s subgroupShuffleDown(%s, uint delta);\n", - "%s subgroupAdd(%s);\n", - "%s subgroupMul(%s);\n", - "%s subgroupMin(%s);\n", - "%s subgroupMax(%s);\n", - "%s subgroupAnd(%s);\n", - "%s subgroupOr(%s);\n", - "%s subgroupXor(%s);\n", - "%s subgroupInclusiveAdd(%s);\n", - "%s subgroupInclusiveMul(%s);\n", - "%s subgroupInclusiveMin(%s);\n", - "%s subgroupInclusiveMax(%s);\n", - "%s subgroupInclusiveAnd(%s);\n", - "%s subgroupInclusiveOr(%s);\n", - "%s subgroupInclusiveXor(%s);\n", - "%s subgroupExclusiveAdd(%s);\n", - "%s subgroupExclusiveMul(%s);\n", - "%s subgroupExclusiveMin(%s);\n", - "%s subgroupExclusiveMax(%s);\n", - "%s subgroupExclusiveAnd(%s);\n", - "%s subgroupExclusiveOr(%s);\n", - "%s subgroupExclusiveXor(%s);\n", - "%s subgroupClusteredAdd(%s, uint);\n", - "%s subgroupClusteredMul(%s, uint);\n", - "%s subgroupClusteredMin(%s, uint);\n", - "%s subgroupClusteredMax(%s, uint);\n", - "%s subgroupClusteredAnd(%s, uint);\n", - "%s subgroupClusteredOr(%s, uint);\n", - "%s subgroupClusteredXor(%s, uint);\n", - "%s subgroupQuadBroadcast(%s, uint);\n", - "%s subgroupQuadSwapHorizontal(%s);\n", - "%s subgroupQuadSwapVertical(%s);\n", - "%s subgroupQuadSwapDiagonal(%s);\n", - "uvec4 subgroupPartitionNV(%s);\n", - "%s subgroupPartitionedAddNV(%s, uvec4 ballot);\n", - "%s subgroupPartitionedMulNV(%s, uvec4 ballot);\n", - "%s subgroupPartitionedMinNV(%s, uvec4 ballot);\n", - "%s subgroupPartitionedMaxNV(%s, uvec4 ballot);\n", - "%s subgroupPartitionedAndNV(%s, uvec4 ballot);\n", - "%s subgroupPartitionedOrNV(%s, uvec4 ballot);\n", - "%s subgroupPartitionedXorNV(%s, uvec4 ballot);\n", - "%s subgroupPartitionedInclusiveAddNV(%s, uvec4 ballot);\n", - "%s subgroupPartitionedInclusiveMulNV(%s, uvec4 ballot);\n", - "%s subgroupPartitionedInclusiveMinNV(%s, uvec4 ballot);\n", - "%s subgroupPartitionedInclusiveMaxNV(%s, uvec4 ballot);\n", - "%s subgroupPartitionedInclusiveAndNV(%s, uvec4 ballot);\n", - "%s subgroupPartitionedInclusiveOrNV(%s, uvec4 ballot);\n", - "%s subgroupPartitionedInclusiveXorNV(%s, uvec4 ballot);\n", - "%s subgroupPartitionedExclusiveAddNV(%s, uvec4 ballot);\n", - "%s subgroupPartitionedExclusiveMulNV(%s, uvec4 ballot);\n", - "%s subgroupPartitionedExclusiveMinNV(%s, uvec4 ballot);\n", - "%s subgroupPartitionedExclusiveMaxNV(%s, uvec4 ballot);\n", - "%s subgroupPartitionedExclusiveAndNV(%s, uvec4 ballot);\n", - "%s subgroupPartitionedExclusiveOrNV(%s, uvec4 ballot);\n", - "%s subgroupPartitionedExclusiveXorNV(%s, uvec4 ballot);\n", - }; - - static const char *floatTypes[] = { - "float", "vec2", "vec3", "vec4", - "float16_t", "f16vec2", "f16vec3", "f16vec4", - }; - static const char *doubleTypes[] = { - "double", "dvec2", "dvec3", "dvec4", - }; - static const char *intTypes[] = { - "int8_t", "i8vec2", "i8vec3", "i8vec4", - "int16_t", "i16vec2", "i16vec3", "i16vec4", - "int", "ivec2", "ivec3", "ivec4", - "int64_t", "i64vec2", "i64vec3", "i64vec4", - "uint8_t", "u8vec2", "u8vec3", "u8vec4", - "uint16_t", "u16vec2", "u16vec3", "u16vec4", - "uint", "uvec2", "uvec3", "uvec4", - "uint64_t", "u64vec2", "u64vec3", "u64vec4", - }; - static const char *boolTypes[] = { - "bool", "bvec2", "bvec3", "bvec4", - }; - - for (size_t i = 0; i < sizeof(subgroupOps)/sizeof(subgroupOps[0]); ++i) { - const char *op = subgroupOps[i]; - - // Logical operations don't support float - bool logicalOp = strstr(op, "Or") || strstr(op, "And") || - (strstr(op, "Xor") && !strstr(op, "ShuffleXor")); - // Math operations don't support bool - bool mathOp = strstr(op, "Add") || strstr(op, "Mul") || strstr(op, "Min") || strstr(op, "Max"); - - const int bufSize = 256; - char buf[bufSize]; - - if (!logicalOp) { - for (size_t j = 0; j < sizeof(floatTypes)/sizeof(floatTypes[0]); ++j) { - snprintf(buf, bufSize, op, floatTypes[j], floatTypes[j]); - commonBuiltins.append(buf); - } - if (profile != EEsProfile && version >= 400) { - for (size_t j = 0; j < sizeof(doubleTypes)/sizeof(doubleTypes[0]); ++j) { - snprintf(buf, bufSize, op, doubleTypes[j], doubleTypes[j]); - commonBuiltins.append(buf); - } - } - } - if (!mathOp) { - for (size_t j = 0; j < sizeof(boolTypes)/sizeof(boolTypes[0]); ++j) { - snprintf(buf, bufSize, op, boolTypes[j], boolTypes[j]); - commonBuiltins.append(buf); - } - } - for (size_t j = 0; j < sizeof(intTypes)/sizeof(intTypes[0]); ++j) { - snprintf(buf, bufSize, op, intTypes[j], intTypes[j]); - commonBuiltins.append(buf); - } - } - - stageBuiltins[EShLangCompute].append( - "void subgroupMemoryBarrierShared();" - - "\n" - ); - stageBuiltins[EShLangMeshNV].append( - "void subgroupMemoryBarrierShared();" - "\n" - ); - stageBuiltins[EShLangTaskNV].append( - "void subgroupMemoryBarrierShared();" - "\n" - ); - } - - if (profile != EEsProfile && version >= 460) { - commonBuiltins.append( - "bool anyInvocation(bool);" - "bool allInvocations(bool);" - "bool allInvocationsEqual(bool);" - - "\n"); - } - - // GL_AMD_shader_ballot - if (profile != EEsProfile && version >= 450) { - commonBuiltins.append( - "float minInvocationsAMD(float);" - "vec2 minInvocationsAMD(vec2);" - "vec3 minInvocationsAMD(vec3);" - "vec4 minInvocationsAMD(vec4);" - - "int minInvocationsAMD(int);" - "ivec2 minInvocationsAMD(ivec2);" - "ivec3 minInvocationsAMD(ivec3);" - "ivec4 minInvocationsAMD(ivec4);" - - "uint minInvocationsAMD(uint);" - "uvec2 minInvocationsAMD(uvec2);" - "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);" - "vec4 maxInvocationsAMD(vec4);" - - "int maxInvocationsAMD(int);" - "ivec2 maxInvocationsAMD(ivec2);" - "ivec3 maxInvocationsAMD(ivec3);" - "ivec4 maxInvocationsAMD(ivec4);" - - "uint maxInvocationsAMD(uint);" - "uvec2 maxInvocationsAMD(uvec2);" - "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);" - "vec4 addInvocationsAMD(vec4);" - - "int addInvocationsAMD(int);" - "ivec2 addInvocationsAMD(ivec2);" - "ivec3 addInvocationsAMD(ivec3);" - "ivec4 addInvocationsAMD(ivec4);" - - "uint addInvocationsAMD(uint);" - "uvec2 addInvocationsAMD(uvec2);" - "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);" - "vec4 minInvocationsNonUniformAMD(vec4);" - - "int minInvocationsNonUniformAMD(int);" - "ivec2 minInvocationsNonUniformAMD(ivec2);" - "ivec3 minInvocationsNonUniformAMD(ivec3);" - "ivec4 minInvocationsNonUniformAMD(ivec4);" - - "uint minInvocationsNonUniformAMD(uint);" - "uvec2 minInvocationsNonUniformAMD(uvec2);" - "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);" - "vec4 maxInvocationsNonUniformAMD(vec4);" - - "int maxInvocationsNonUniformAMD(int);" - "ivec2 maxInvocationsNonUniformAMD(ivec2);" - "ivec3 maxInvocationsNonUniformAMD(ivec3);" - "ivec4 maxInvocationsNonUniformAMD(ivec4);" - - "uint maxInvocationsNonUniformAMD(uint);" - "uvec2 maxInvocationsNonUniformAMD(uvec2);" - "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);" - "vec4 addInvocationsNonUniformAMD(vec4);" - - "int addInvocationsNonUniformAMD(int);" - "ivec2 addInvocationsNonUniformAMD(ivec2);" - "ivec3 addInvocationsNonUniformAMD(ivec3);" - "ivec4 addInvocationsNonUniformAMD(ivec4);" - - "uint addInvocationsNonUniformAMD(uint);" - "uvec2 addInvocationsNonUniformAMD(uvec2);" - "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);" - "vec4 swizzleInvocationsAMD(vec4, uvec4);" - - "int swizzleInvocationsAMD(int, uvec4);" - "ivec2 swizzleInvocationsAMD(ivec2, uvec4);" - "ivec3 swizzleInvocationsAMD(ivec3, uvec4);" - "ivec4 swizzleInvocationsAMD(ivec4, uvec4);" - - "uint swizzleInvocationsAMD(uint, uvec4);" - "uvec2 swizzleInvocationsAMD(uvec2, uvec4);" - "uvec3 swizzleInvocationsAMD(uvec3, uvec4);" - "uvec4 swizzleInvocationsAMD(uvec4, uvec4);" - - "float swizzleInvocationsMaskedAMD(float, uvec3);" - "vec2 swizzleInvocationsMaskedAMD(vec2, uvec3);" - "vec3 swizzleInvocationsMaskedAMD(vec3, uvec3);" - "vec4 swizzleInvocationsMaskedAMD(vec4, uvec3);" - - "int swizzleInvocationsMaskedAMD(int, uvec3);" - "ivec2 swizzleInvocationsMaskedAMD(ivec2, uvec3);" - "ivec3 swizzleInvocationsMaskedAMD(ivec3, uvec3);" - "ivec4 swizzleInvocationsMaskedAMD(ivec4, uvec3);" - - "uint swizzleInvocationsMaskedAMD(uint, uvec3);" - "uvec2 swizzleInvocationsMaskedAMD(uvec2, uvec3);" - "uvec3 swizzleInvocationsMaskedAMD(uvec3, uvec3);" - "uvec4 swizzleInvocationsMaskedAMD(uvec4, uvec3);" - - "float writeInvocationAMD(float, float, uint);" - "vec2 writeInvocationAMD(vec2, vec2, uint);" - "vec3 writeInvocationAMD(vec3, vec3, uint);" - "vec4 writeInvocationAMD(vec4, vec4, uint);" - - "int writeInvocationAMD(int, int, uint);" - "ivec2 writeInvocationAMD(ivec2, ivec2, uint);" - "ivec3 writeInvocationAMD(ivec3, ivec3, uint);" - "ivec4 writeInvocationAMD(ivec4, ivec4, uint);" - - "uint writeInvocationAMD(uint, uint, uint);" - "uvec2 writeInvocationAMD(uvec2, uvec2, uint);" - "uvec3 writeInvocationAMD(uvec3, uvec3, uint);" - "uvec4 writeInvocationAMD(uvec4, uvec4, uint);" - - "uint mbcntAMD(uint64_t);" - - "\n"); - } - - // GL_AMD_gcn_shader - if (profile != EEsProfile && version >= 440) { - commonBuiltins.append( - "float cubeFaceIndexAMD(vec3);" - "vec2 cubeFaceCoordAMD(vec3);" - "uint64_t timeAMD();" - - "in int gl_SIMDGroupSizeAMD;" - "\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"); - } - - if ((profile != EEsProfile && version >= 130) || - (profile == EEsProfile && version >= 300)) { - commonBuiltins.append( - "uint countLeadingZeros(uint);" - "uvec2 countLeadingZeros(uvec2);" - "uvec3 countLeadingZeros(uvec3);" - "uvec4 countLeadingZeros(uvec4);" - - "uint countTrailingZeros(uint);" - "uvec2 countTrailingZeros(uvec2);" - "uvec3 countTrailingZeros(uvec3);" - "uvec4 countTrailingZeros(uvec4);" - - "uint absoluteDifference(int, int);" - "uvec2 absoluteDifference(ivec2, ivec2);" - "uvec3 absoluteDifference(ivec3, ivec3);" - "uvec4 absoluteDifference(ivec4, ivec4);" - - "uint16_t absoluteDifference(int16_t, int16_t);" - "u16vec2 absoluteDifference(i16vec2, i16vec2);" - "u16vec3 absoluteDifference(i16vec3, i16vec3);" - "u16vec4 absoluteDifference(i16vec4, i16vec4);" - - "uint64_t absoluteDifference(int64_t, int64_t);" - "u64vec2 absoluteDifference(i64vec2, i64vec2);" - "u64vec3 absoluteDifference(i64vec3, i64vec3);" - "u64vec4 absoluteDifference(i64vec4, i64vec4);" - - "uint absoluteDifference(uint, uint);" - "uvec2 absoluteDifference(uvec2, uvec2);" - "uvec3 absoluteDifference(uvec3, uvec3);" - "uvec4 absoluteDifference(uvec4, uvec4);" - - "uint16_t absoluteDifference(uint16_t, uint16_t);" - "u16vec2 absoluteDifference(u16vec2, u16vec2);" - "u16vec3 absoluteDifference(u16vec3, u16vec3);" - "u16vec4 absoluteDifference(u16vec4, u16vec4);" - - "uint64_t absoluteDifference(uint64_t, uint64_t);" - "u64vec2 absoluteDifference(u64vec2, u64vec2);" - "u64vec3 absoluteDifference(u64vec3, u64vec3);" - "u64vec4 absoluteDifference(u64vec4, u64vec4);" - - "int addSaturate(int, int);" - "ivec2 addSaturate(ivec2, ivec2);" - "ivec3 addSaturate(ivec3, ivec3);" - "ivec4 addSaturate(ivec4, ivec4);" - - "int16_t addSaturate(int16_t, int16_t);" - "i16vec2 addSaturate(i16vec2, i16vec2);" - "i16vec3 addSaturate(i16vec3, i16vec3);" - "i16vec4 addSaturate(i16vec4, i16vec4);" - - "int64_t addSaturate(int64_t, int64_t);" - "i64vec2 addSaturate(i64vec2, i64vec2);" - "i64vec3 addSaturate(i64vec3, i64vec3);" - "i64vec4 addSaturate(i64vec4, i64vec4);" - - "uint addSaturate(uint, uint);" - "uvec2 addSaturate(uvec2, uvec2);" - "uvec3 addSaturate(uvec3, uvec3);" - "uvec4 addSaturate(uvec4, uvec4);" - - "uint16_t addSaturate(uint16_t, uint16_t);" - "u16vec2 addSaturate(u16vec2, u16vec2);" - "u16vec3 addSaturate(u16vec3, u16vec3);" - "u16vec4 addSaturate(u16vec4, u16vec4);" - - "uint64_t addSaturate(uint64_t, uint64_t);" - "u64vec2 addSaturate(u64vec2, u64vec2);" - "u64vec3 addSaturate(u64vec3, u64vec3);" - "u64vec4 addSaturate(u64vec4, u64vec4);" - - "int subtractSaturate(int, int);" - "ivec2 subtractSaturate(ivec2, ivec2);" - "ivec3 subtractSaturate(ivec3, ivec3);" - "ivec4 subtractSaturate(ivec4, ivec4);" - - "int16_t subtractSaturate(int16_t, int16_t);" - "i16vec2 subtractSaturate(i16vec2, i16vec2);" - "i16vec3 subtractSaturate(i16vec3, i16vec3);" - "i16vec4 subtractSaturate(i16vec4, i16vec4);" - - "int64_t subtractSaturate(int64_t, int64_t);" - "i64vec2 subtractSaturate(i64vec2, i64vec2);" - "i64vec3 subtractSaturate(i64vec3, i64vec3);" - "i64vec4 subtractSaturate(i64vec4, i64vec4);" - - "uint subtractSaturate(uint, uint);" - "uvec2 subtractSaturate(uvec2, uvec2);" - "uvec3 subtractSaturate(uvec3, uvec3);" - "uvec4 subtractSaturate(uvec4, uvec4);" - - "uint16_t subtractSaturate(uint16_t, uint16_t);" - "u16vec2 subtractSaturate(u16vec2, u16vec2);" - "u16vec3 subtractSaturate(u16vec3, u16vec3);" - "u16vec4 subtractSaturate(u16vec4, u16vec4);" - - "uint64_t subtractSaturate(uint64_t, uint64_t);" - "u64vec2 subtractSaturate(u64vec2, u64vec2);" - "u64vec3 subtractSaturate(u64vec3, u64vec3);" - "u64vec4 subtractSaturate(u64vec4, u64vec4);" - - "int average(int, int);" - "ivec2 average(ivec2, ivec2);" - "ivec3 average(ivec3, ivec3);" - "ivec4 average(ivec4, ivec4);" - - "int16_t average(int16_t, int16_t);" - "i16vec2 average(i16vec2, i16vec2);" - "i16vec3 average(i16vec3, i16vec3);" - "i16vec4 average(i16vec4, i16vec4);" - - "int64_t average(int64_t, int64_t);" - "i64vec2 average(i64vec2, i64vec2);" - "i64vec3 average(i64vec3, i64vec3);" - "i64vec4 average(i64vec4, i64vec4);" - - "uint average(uint, uint);" - "uvec2 average(uvec2, uvec2);" - "uvec3 average(uvec3, uvec3);" - "uvec4 average(uvec4, uvec4);" - - "uint16_t average(uint16_t, uint16_t);" - "u16vec2 average(u16vec2, u16vec2);" - "u16vec3 average(u16vec3, u16vec3);" - "u16vec4 average(u16vec4, u16vec4);" - - "uint64_t average(uint64_t, uint64_t);" - "u64vec2 average(u64vec2, u64vec2);" - "u64vec3 average(u64vec3, u64vec3);" - "u64vec4 average(u64vec4, u64vec4);" - - "int averageRounded(int, int);" - "ivec2 averageRounded(ivec2, ivec2);" - "ivec3 averageRounded(ivec3, ivec3);" - "ivec4 averageRounded(ivec4, ivec4);" - - "int16_t averageRounded(int16_t, int16_t);" - "i16vec2 averageRounded(i16vec2, i16vec2);" - "i16vec3 averageRounded(i16vec3, i16vec3);" - "i16vec4 averageRounded(i16vec4, i16vec4);" - - "int64_t averageRounded(int64_t, int64_t);" - "i64vec2 averageRounded(i64vec2, i64vec2);" - "i64vec3 averageRounded(i64vec3, i64vec3);" - "i64vec4 averageRounded(i64vec4, i64vec4);" - - "uint averageRounded(uint, uint);" - "uvec2 averageRounded(uvec2, uvec2);" - "uvec3 averageRounded(uvec3, uvec3);" - "uvec4 averageRounded(uvec4, uvec4);" - - "uint16_t averageRounded(uint16_t, uint16_t);" - "u16vec2 averageRounded(u16vec2, u16vec2);" - "u16vec3 averageRounded(u16vec3, u16vec3);" - "u16vec4 averageRounded(u16vec4, u16vec4);" - - "uint64_t averageRounded(uint64_t, uint64_t);" - "u64vec2 averageRounded(u64vec2, u64vec2);" - "u64vec3 averageRounded(u64vec3, u64vec3);" - "u64vec4 averageRounded(u64vec4, u64vec4);" - - "int multiply32x16(int, int);" - "ivec2 multiply32x16(ivec2, ivec2);" - "ivec3 multiply32x16(ivec3, ivec3);" - "ivec4 multiply32x16(ivec4, ivec4);" - - "uint multiply32x16(uint, uint);" - "uvec2 multiply32x16(uvec2, uvec2);" - "uvec3 multiply32x16(uvec3, uvec3);" - "uvec4 multiply32x16(uvec4, uvec4);" - "\n"); - } - - if ((profile != EEsProfile && version >= 450) || - (profile == EEsProfile && version >= 320)) { - commonBuiltins.append( - "struct gl_TextureFootprint2DNV {" - "uvec2 anchor;" - "uvec2 offset;" - "uvec2 mask;" - "uint lod;" - "uint granularity;" - "};" - - "struct gl_TextureFootprint3DNV {" - "uvec3 anchor;" - "uvec3 offset;" - "uvec2 mask;" - "uint lod;" - "uint granularity;" - "};" - "bool textureFootprintNV(sampler2D, vec2, int, bool, out gl_TextureFootprint2DNV);" - "bool textureFootprintNV(sampler3D, vec3, int, bool, out gl_TextureFootprint3DNV);" - "bool textureFootprintNV(sampler2D, vec2, int, bool, out gl_TextureFootprint2DNV, float);" - "bool textureFootprintNV(sampler3D, vec3, int, bool, out gl_TextureFootprint3DNV, float);" - "bool textureFootprintClampNV(sampler2D, vec2, float, int, bool, out gl_TextureFootprint2DNV);" - "bool textureFootprintClampNV(sampler3D, vec3, float, int, bool, out gl_TextureFootprint3DNV);" - "bool textureFootprintClampNV(sampler2D, vec2, float, int, bool, out gl_TextureFootprint2DNV, float);" - "bool textureFootprintClampNV(sampler3D, vec3, float, int, bool, out gl_TextureFootprint3DNV, float);" - "bool textureFootprintLodNV(sampler2D, vec2, float, int, bool, out gl_TextureFootprint2DNV);" - "bool textureFootprintLodNV(sampler3D, vec3, float, int, bool, out gl_TextureFootprint3DNV);" - "bool textureFootprintGradNV(sampler2D, vec2, vec2, vec2, int, bool, out gl_TextureFootprint2DNV);" - "bool textureFootprintGradClampNV(sampler2D, vec2, vec2, vec2, float, int, bool, out gl_TextureFootprint2DNV);" - "\n"); - } -#endif // !GLSLANG_ANGLE - - if ((profile == EEsProfile && version >= 300 && version < 310) || - (profile != EEsProfile && version >= 150 && version < 450)) { // GL_EXT_shader_integer_mix - commonBuiltins.append("int mix(int, int, bool);" - "ivec2 mix(ivec2, ivec2, bvec2);" - "ivec3 mix(ivec3, ivec3, bvec3);" - "ivec4 mix(ivec4, ivec4, bvec4);" - "uint mix(uint, uint, bool );" - "uvec2 mix(uvec2, uvec2, bvec2);" - "uvec3 mix(uvec3, uvec3, bvec3);" - "uvec4 mix(uvec4, uvec4, bvec4);" - "bool mix(bool, bool, bool );" - "bvec2 mix(bvec2, bvec2, bvec2);" - "bvec3 mix(bvec3, bvec3, bvec3);" - "bvec4 mix(bvec4, bvec4, bvec4);" - - "\n"); - } - -#ifndef GLSLANG_ANGLE - // GL_AMD_gpu_shader_half_float/Explicit types - if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 310)) { - commonBuiltins.append( - "float16_t radians(float16_t);" - "f16vec2 radians(f16vec2);" - "f16vec3 radians(f16vec3);" - "f16vec4 radians(f16vec4);" - - "float16_t degrees(float16_t);" - "f16vec2 degrees(f16vec2);" - "f16vec3 degrees(f16vec3);" - "f16vec4 degrees(f16vec4);" - - "float16_t sin(float16_t);" - "f16vec2 sin(f16vec2);" - "f16vec3 sin(f16vec3);" - "f16vec4 sin(f16vec4);" - - "float16_t cos(float16_t);" - "f16vec2 cos(f16vec2);" - "f16vec3 cos(f16vec3);" - "f16vec4 cos(f16vec4);" - - "float16_t tan(float16_t);" - "f16vec2 tan(f16vec2);" - "f16vec3 tan(f16vec3);" - "f16vec4 tan(f16vec4);" - - "float16_t asin(float16_t);" - "f16vec2 asin(f16vec2);" - "f16vec3 asin(f16vec3);" - "f16vec4 asin(f16vec4);" - - "float16_t acos(float16_t);" - "f16vec2 acos(f16vec2);" - "f16vec3 acos(f16vec3);" - "f16vec4 acos(f16vec4);" - - "float16_t atan(float16_t, float16_t);" - "f16vec2 atan(f16vec2, f16vec2);" - "f16vec3 atan(f16vec3, f16vec3);" - "f16vec4 atan(f16vec4, f16vec4);" - - "float16_t atan(float16_t);" - "f16vec2 atan(f16vec2);" - "f16vec3 atan(f16vec3);" - "f16vec4 atan(f16vec4);" - - "float16_t sinh(float16_t);" - "f16vec2 sinh(f16vec2);" - "f16vec3 sinh(f16vec3);" - "f16vec4 sinh(f16vec4);" - - "float16_t cosh(float16_t);" - "f16vec2 cosh(f16vec2);" - "f16vec3 cosh(f16vec3);" - "f16vec4 cosh(f16vec4);" - - "float16_t tanh(float16_t);" - "f16vec2 tanh(f16vec2);" - "f16vec3 tanh(f16vec3);" - "f16vec4 tanh(f16vec4);" - - "float16_t asinh(float16_t);" - "f16vec2 asinh(f16vec2);" - "f16vec3 asinh(f16vec3);" - "f16vec4 asinh(f16vec4);" - - "float16_t acosh(float16_t);" - "f16vec2 acosh(f16vec2);" - "f16vec3 acosh(f16vec3);" - "f16vec4 acosh(f16vec4);" - - "float16_t atanh(float16_t);" - "f16vec2 atanh(f16vec2);" - "f16vec3 atanh(f16vec3);" - "f16vec4 atanh(f16vec4);" - - "float16_t pow(float16_t, float16_t);" - "f16vec2 pow(f16vec2, f16vec2);" - "f16vec3 pow(f16vec3, f16vec3);" - "f16vec4 pow(f16vec4, f16vec4);" - - "float16_t exp(float16_t);" - "f16vec2 exp(f16vec2);" - "f16vec3 exp(f16vec3);" - "f16vec4 exp(f16vec4);" - - "float16_t log(float16_t);" - "f16vec2 log(f16vec2);" - "f16vec3 log(f16vec3);" - "f16vec4 log(f16vec4);" - - "float16_t exp2(float16_t);" - "f16vec2 exp2(f16vec2);" - "f16vec3 exp2(f16vec3);" - "f16vec4 exp2(f16vec4);" - - "float16_t log2(float16_t);" - "f16vec2 log2(f16vec2);" - "f16vec3 log2(f16vec3);" - "f16vec4 log2(f16vec4);" - - "float16_t sqrt(float16_t);" - "f16vec2 sqrt(f16vec2);" - "f16vec3 sqrt(f16vec3);" - "f16vec4 sqrt(f16vec4);" - - "float16_t inversesqrt(float16_t);" - "f16vec2 inversesqrt(f16vec2);" - "f16vec3 inversesqrt(f16vec3);" - "f16vec4 inversesqrt(f16vec4);" - - "float16_t abs(float16_t);" - "f16vec2 abs(f16vec2);" - "f16vec3 abs(f16vec3);" - "f16vec4 abs(f16vec4);" - - "float16_t sign(float16_t);" - "f16vec2 sign(f16vec2);" - "f16vec3 sign(f16vec3);" - "f16vec4 sign(f16vec4);" - - "float16_t floor(float16_t);" - "f16vec2 floor(f16vec2);" - "f16vec3 floor(f16vec3);" - "f16vec4 floor(f16vec4);" - - "float16_t trunc(float16_t);" - "f16vec2 trunc(f16vec2);" - "f16vec3 trunc(f16vec3);" - "f16vec4 trunc(f16vec4);" - - "float16_t round(float16_t);" - "f16vec2 round(f16vec2);" - "f16vec3 round(f16vec3);" - "f16vec4 round(f16vec4);" - - "float16_t roundEven(float16_t);" - "f16vec2 roundEven(f16vec2);" - "f16vec3 roundEven(f16vec3);" - "f16vec4 roundEven(f16vec4);" - - "float16_t ceil(float16_t);" - "f16vec2 ceil(f16vec2);" - "f16vec3 ceil(f16vec3);" - "f16vec4 ceil(f16vec4);" - - "float16_t fract(float16_t);" - "f16vec2 fract(f16vec2);" - "f16vec3 fract(f16vec3);" - "f16vec4 fract(f16vec4);" - - "float16_t mod(float16_t, float16_t);" - "f16vec2 mod(f16vec2, float16_t);" - "f16vec3 mod(f16vec3, float16_t);" - "f16vec4 mod(f16vec4, float16_t);" - "f16vec2 mod(f16vec2, f16vec2);" - "f16vec3 mod(f16vec3, f16vec3);" - "f16vec4 mod(f16vec4, f16vec4);" - - "float16_t modf(float16_t, out float16_t);" - "f16vec2 modf(f16vec2, out f16vec2);" - "f16vec3 modf(f16vec3, out f16vec3);" - "f16vec4 modf(f16vec4, out f16vec4);" - - "float16_t min(float16_t, float16_t);" - "f16vec2 min(f16vec2, float16_t);" - "f16vec3 min(f16vec3, float16_t);" - "f16vec4 min(f16vec4, float16_t);" - "f16vec2 min(f16vec2, f16vec2);" - "f16vec3 min(f16vec3, f16vec3);" - "f16vec4 min(f16vec4, f16vec4);" - - "float16_t max(float16_t, float16_t);" - "f16vec2 max(f16vec2, float16_t);" - "f16vec3 max(f16vec3, float16_t);" - "f16vec4 max(f16vec4, float16_t);" - "f16vec2 max(f16vec2, f16vec2);" - "f16vec3 max(f16vec3, f16vec3);" - "f16vec4 max(f16vec4, f16vec4);" - - "float16_t clamp(float16_t, float16_t, float16_t);" - "f16vec2 clamp(f16vec2, float16_t, float16_t);" - "f16vec3 clamp(f16vec3, float16_t, float16_t);" - "f16vec4 clamp(f16vec4, float16_t, float16_t);" - "f16vec2 clamp(f16vec2, f16vec2, f16vec2);" - "f16vec3 clamp(f16vec3, f16vec3, f16vec3);" - "f16vec4 clamp(f16vec4, f16vec4, f16vec4);" - - "float16_t mix(float16_t, float16_t, float16_t);" - "f16vec2 mix(f16vec2, f16vec2, float16_t);" - "f16vec3 mix(f16vec3, f16vec3, float16_t);" - "f16vec4 mix(f16vec4, f16vec4, float16_t);" - "f16vec2 mix(f16vec2, f16vec2, f16vec2);" - "f16vec3 mix(f16vec3, f16vec3, f16vec3);" - "f16vec4 mix(f16vec4, f16vec4, f16vec4);" - "float16_t mix(float16_t, float16_t, bool);" - "f16vec2 mix(f16vec2, f16vec2, bvec2);" - "f16vec3 mix(f16vec3, f16vec3, bvec3);" - "f16vec4 mix(f16vec4, f16vec4, bvec4);" - - "float16_t step(float16_t, float16_t);" - "f16vec2 step(f16vec2, f16vec2);" - "f16vec3 step(f16vec3, f16vec3);" - "f16vec4 step(f16vec4, f16vec4);" - "f16vec2 step(float16_t, f16vec2);" - "f16vec3 step(float16_t, f16vec3);" - "f16vec4 step(float16_t, f16vec4);" - - "float16_t smoothstep(float16_t, float16_t, float16_t);" - "f16vec2 smoothstep(f16vec2, f16vec2, f16vec2);" - "f16vec3 smoothstep(f16vec3, f16vec3, f16vec3);" - "f16vec4 smoothstep(f16vec4, f16vec4, f16vec4);" - "f16vec2 smoothstep(float16_t, float16_t, f16vec2);" - "f16vec3 smoothstep(float16_t, float16_t, f16vec3);" - "f16vec4 smoothstep(float16_t, float16_t, f16vec4);" - - "bool isnan(float16_t);" - "bvec2 isnan(f16vec2);" - "bvec3 isnan(f16vec3);" - "bvec4 isnan(f16vec4);" - - "bool isinf(float16_t);" - "bvec2 isinf(f16vec2);" - "bvec3 isinf(f16vec3);" - "bvec4 isinf(f16vec4);" - - "float16_t fma(float16_t, float16_t, float16_t);" - "f16vec2 fma(f16vec2, f16vec2, f16vec2);" - "f16vec3 fma(f16vec3, f16vec3, f16vec3);" - "f16vec4 fma(f16vec4, f16vec4, f16vec4);" - - "float16_t frexp(float16_t, out int);" - "f16vec2 frexp(f16vec2, out ivec2);" - "f16vec3 frexp(f16vec3, out ivec3);" - "f16vec4 frexp(f16vec4, out ivec4);" - - "float16_t ldexp(float16_t, in int);" - "f16vec2 ldexp(f16vec2, in ivec2);" - "f16vec3 ldexp(f16vec3, in ivec3);" - "f16vec4 ldexp(f16vec4, in ivec4);" - - "uint packFloat2x16(f16vec2);" - "f16vec2 unpackFloat2x16(uint);" - - "float16_t length(float16_t);" - "float16_t length(f16vec2);" - "float16_t length(f16vec3);" - "float16_t length(f16vec4);" - - "float16_t distance(float16_t, float16_t);" - "float16_t distance(f16vec2, f16vec2);" - "float16_t distance(f16vec3, f16vec3);" - "float16_t distance(f16vec4, f16vec4);" - - "float16_t dot(float16_t, float16_t);" - "float16_t dot(f16vec2, f16vec2);" - "float16_t dot(f16vec3, f16vec3);" - "float16_t dot(f16vec4, f16vec4);" - - "f16vec3 cross(f16vec3, f16vec3);" - - "float16_t normalize(float16_t);" - "f16vec2 normalize(f16vec2);" - "f16vec3 normalize(f16vec3);" - "f16vec4 normalize(f16vec4);" - - "float16_t faceforward(float16_t, float16_t, float16_t);" - "f16vec2 faceforward(f16vec2, f16vec2, f16vec2);" - "f16vec3 faceforward(f16vec3, f16vec3, f16vec3);" - "f16vec4 faceforward(f16vec4, f16vec4, f16vec4);" - - "float16_t reflect(float16_t, float16_t);" - "f16vec2 reflect(f16vec2, f16vec2);" - "f16vec3 reflect(f16vec3, f16vec3);" - "f16vec4 reflect(f16vec4, f16vec4);" - - "float16_t refract(float16_t, float16_t, float16_t);" - "f16vec2 refract(f16vec2, f16vec2, float16_t);" - "f16vec3 refract(f16vec3, f16vec3, float16_t);" - "f16vec4 refract(f16vec4, f16vec4, float16_t);" - - "f16mat2 matrixCompMult(f16mat2, f16mat2);" - "f16mat3 matrixCompMult(f16mat3, f16mat3);" - "f16mat4 matrixCompMult(f16mat4, f16mat4);" - "f16mat2x3 matrixCompMult(f16mat2x3, f16mat2x3);" - "f16mat2x4 matrixCompMult(f16mat2x4, f16mat2x4);" - "f16mat3x2 matrixCompMult(f16mat3x2, f16mat3x2);" - "f16mat3x4 matrixCompMult(f16mat3x4, f16mat3x4);" - "f16mat4x2 matrixCompMult(f16mat4x2, f16mat4x2);" - "f16mat4x3 matrixCompMult(f16mat4x3, f16mat4x3);" - - "f16mat2 outerProduct(f16vec2, f16vec2);" - "f16mat3 outerProduct(f16vec3, f16vec3);" - "f16mat4 outerProduct(f16vec4, f16vec4);" - "f16mat2x3 outerProduct(f16vec3, f16vec2);" - "f16mat3x2 outerProduct(f16vec2, f16vec3);" - "f16mat2x4 outerProduct(f16vec4, f16vec2);" - "f16mat4x2 outerProduct(f16vec2, f16vec4);" - "f16mat3x4 outerProduct(f16vec4, f16vec3);" - "f16mat4x3 outerProduct(f16vec3, f16vec4);" - - "f16mat2 transpose(f16mat2);" - "f16mat3 transpose(f16mat3);" - "f16mat4 transpose(f16mat4);" - "f16mat2x3 transpose(f16mat3x2);" - "f16mat3x2 transpose(f16mat2x3);" - "f16mat2x4 transpose(f16mat4x2);" - "f16mat4x2 transpose(f16mat2x4);" - "f16mat3x4 transpose(f16mat4x3);" - "f16mat4x3 transpose(f16mat3x4);" - - "float16_t determinant(f16mat2);" - "float16_t determinant(f16mat3);" - "float16_t determinant(f16mat4);" - - "f16mat2 inverse(f16mat2);" - "f16mat3 inverse(f16mat3);" - "f16mat4 inverse(f16mat4);" - - "bvec2 lessThan(f16vec2, f16vec2);" - "bvec3 lessThan(f16vec3, f16vec3);" - "bvec4 lessThan(f16vec4, f16vec4);" - - "bvec2 lessThanEqual(f16vec2, f16vec2);" - "bvec3 lessThanEqual(f16vec3, f16vec3);" - "bvec4 lessThanEqual(f16vec4, f16vec4);" - - "bvec2 greaterThan(f16vec2, f16vec2);" - "bvec3 greaterThan(f16vec3, f16vec3);" - "bvec4 greaterThan(f16vec4, f16vec4);" - - "bvec2 greaterThanEqual(f16vec2, f16vec2);" - "bvec3 greaterThanEqual(f16vec3, f16vec3);" - "bvec4 greaterThanEqual(f16vec4, f16vec4);" - - "bvec2 equal(f16vec2, f16vec2);" - "bvec3 equal(f16vec3, f16vec3);" - "bvec4 equal(f16vec4, f16vec4);" - - "bvec2 notEqual(f16vec2, f16vec2);" - "bvec3 notEqual(f16vec3, f16vec3);" - "bvec4 notEqual(f16vec4, f16vec4);" - - "\n"); - } - - // Explicit types - if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 310)) { - 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);" - "\n"); - } - - if (profile != EEsProfile && version >= 450) { - stageBuiltins[EShLangFragment].append(derivativesAndControl64bits); - stageBuiltins[EShLangFragment].append( - "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 // !GLSLANG_ANGLE - - //============================================================================ - // - // Prototypes for built-in functions seen by vertex shaders only. - // (Except legacy lod functions, where it depends which release they are - // vertex only.) - // - //============================================================================ - - // - // Geometric Functions. - // - if (spvVersion.vulkan == 0 && IncludeLegacy(version, profile, spvVersion)) - stageBuiltins[EShLangVertex].append("vec4 ftransform();"); - -#ifndef GLSLANG_ANGLE - // - // Original-style texture Functions with lod. - // - TString* s; - if (version == 100) - s = &stageBuiltins[EShLangVertex]; - else - s = &commonBuiltins; - if ((profile == EEsProfile && version == 100) || - profile == ECompatibilityProfile || - (profile == ECoreProfile && version < 420) || - profile == ENoProfile) { - if (spvVersion.spv == 0) { - s->append( - "vec4 texture2DLod(sampler2D, vec2, float);" // GL_ARB_shader_texture_lod - "vec4 texture2DProjLod(sampler2D, vec3, float);" // GL_ARB_shader_texture_lod - "vec4 texture2DProjLod(sampler2D, vec4, float);" // GL_ARB_shader_texture_lod - "vec4 texture3DLod(sampler3D, vec3, float);" // GL_ARB_shader_texture_lod // OES_texture_3D, but caught by keyword check - "vec4 texture3DProjLod(sampler3D, vec4, float);" // GL_ARB_shader_texture_lod // OES_texture_3D, but caught by keyword check - "vec4 textureCubeLod(samplerCube, vec3, float);" // GL_ARB_shader_texture_lod - - "\n"); - } - } - if ( profile == ECompatibilityProfile || - (profile == ECoreProfile && version < 420) || - profile == ENoProfile) { - if (spvVersion.spv == 0) { - s->append( - "vec4 texture1DLod(sampler1D, float, float);" // GL_ARB_shader_texture_lod - "vec4 texture1DProjLod(sampler1D, vec2, float);" // GL_ARB_shader_texture_lod - "vec4 texture1DProjLod(sampler1D, vec4, float);" // GL_ARB_shader_texture_lod - "vec4 shadow1DLod(sampler1DShadow, vec3, float);" // GL_ARB_shader_texture_lod - "vec4 shadow2DLod(sampler2DShadow, vec3, float);" // GL_ARB_shader_texture_lod - "vec4 shadow1DProjLod(sampler1DShadow, vec4, float);" // GL_ARB_shader_texture_lod - "vec4 shadow2DProjLod(sampler2DShadow, vec4, float);" // GL_ARB_shader_texture_lod - - "vec4 texture1DGradARB(sampler1D, float, float, float);" // GL_ARB_shader_texture_lod - "vec4 texture1DProjGradARB(sampler1D, vec2, float, float);" // GL_ARB_shader_texture_lod - "vec4 texture1DProjGradARB(sampler1D, vec4, float, float);" // GL_ARB_shader_texture_lod - "vec4 texture2DGradARB(sampler2D, vec2, vec2, vec2);" // GL_ARB_shader_texture_lod - "vec4 texture2DProjGradARB(sampler2D, vec3, vec2, vec2);" // GL_ARB_shader_texture_lod - "vec4 texture2DProjGradARB(sampler2D, vec4, vec2, vec2);" // GL_ARB_shader_texture_lod - "vec4 texture3DGradARB(sampler3D, vec3, vec3, vec3);" // GL_ARB_shader_texture_lod - "vec4 texture3DProjGradARB(sampler3D, vec4, vec3, vec3);" // GL_ARB_shader_texture_lod - "vec4 textureCubeGradARB(samplerCube, vec3, vec3, vec3);" // GL_ARB_shader_texture_lod - "vec4 shadow1DGradARB(sampler1DShadow, vec3, float, float);" // GL_ARB_shader_texture_lod - "vec4 shadow1DProjGradARB( sampler1DShadow, vec4, float, float);" // GL_ARB_shader_texture_lod - "vec4 shadow2DGradARB(sampler2DShadow, vec3, vec2, vec2);" // GL_ARB_shader_texture_lod - "vec4 shadow2DProjGradARB( sampler2DShadow, vec4, vec2, vec2);" // GL_ARB_shader_texture_lod - "vec4 texture2DRectGradARB(sampler2DRect, vec2, vec2, vec2);" // GL_ARB_shader_texture_lod - "vec4 texture2DRectProjGradARB( sampler2DRect, vec3, vec2, vec2);" // GL_ARB_shader_texture_lod - "vec4 texture2DRectProjGradARB( sampler2DRect, vec4, vec2, vec2);" // GL_ARB_shader_texture_lod - "vec4 shadow2DRectGradARB( sampler2DRectShadow, vec3, vec2, vec2);" // GL_ARB_shader_texture_lod - "vec4 shadow2DRectProjGradARB(sampler2DRectShadow, vec4, vec2, vec2);" // GL_ARB_shader_texture_lod - - "\n"); - } - } -#endif // !GLSLANG_ANGLE - - if ((profile != EEsProfile && version >= 150) || - (profile == EEsProfile && version >= 310)) { - //============================================================================ - // - // Prototypes for built-in functions seen by geometry shaders only. - // - //============================================================================ - - if (profile != EEsProfile && (version >= 400 || version == 150)) { - stageBuiltins[EShLangGeometry].append( - "void EmitStreamVertex(int);" - "void EndStreamPrimitive(int);" - ); - } - stageBuiltins[EShLangGeometry].append( - "void EmitVertex();" - "void EndPrimitive();" - "\n"); - } -#endif // !GLSLANG_WEB - - //============================================================================ - // - // Prototypes for all control functions. - // - //============================================================================ - bool esBarrier = (profile == EEsProfile && version >= 310); - if ((profile != EEsProfile && version >= 150) || esBarrier) - stageBuiltins[EShLangTessControl].append( - "void barrier();" - ); - if ((profile != EEsProfile && version >= 420) || esBarrier) - stageBuiltins[EShLangCompute].append( - "void barrier();" - ); - if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 320)) { - stageBuiltins[EShLangMeshNV].append( - "void barrier();" - ); - stageBuiltins[EShLangTaskNV].append( - "void barrier();" - ); - } - if ((profile != EEsProfile && version >= 130) || esBarrier) - commonBuiltins.append( - "void memoryBarrier();" - ); - if ((profile != EEsProfile && version >= 420) || esBarrier) { - commonBuiltins.append( - "void memoryBarrierBuffer();" - ); - stageBuiltins[EShLangCompute].append( - "void memoryBarrierShared();" - "void groupMemoryBarrier();" - ); - } -#ifndef GLSLANG_WEB - if ((profile != EEsProfile && version >= 420) || esBarrier) { - if (spvVersion.vulkan == 0 || spvVersion.vulkanRelaxed) { - commonBuiltins.append("void memoryBarrierAtomicCounter();"); - } - commonBuiltins.append("void memoryBarrierImage();"); - } - if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 320)) { - stageBuiltins[EShLangMeshNV].append( - "void memoryBarrierShared();" - "void groupMemoryBarrier();" - ); - stageBuiltins[EShLangTaskNV].append( - "void memoryBarrierShared();" - "void groupMemoryBarrier();" - ); - } - - commonBuiltins.append("void controlBarrier(int, int, int, int);\n" - "void memoryBarrier(int, int, int);\n"); - - commonBuiltins.append("void debugPrintfEXT();\n"); - -#ifndef GLSLANG_ANGLE - if (profile != EEsProfile && version >= 450) { - // coopMatStoreNV perhaps ought to have "out" on the buf parameter, but - // adding it introduces undesirable tempArgs on the stack. What we want - // is more like "buf" thought of as a pointer value being an in parameter. - stageBuiltins[EShLangCompute].append( - "void coopMatLoadNV(out fcoopmatNV m, volatile coherent float16_t[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatLoadNV(out fcoopmatNV m, volatile coherent float[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatLoadNV(out fcoopmatNV m, volatile coherent uint8_t[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatLoadNV(out fcoopmatNV m, volatile coherent uint16_t[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatLoadNV(out fcoopmatNV m, volatile coherent uint[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatLoadNV(out fcoopmatNV m, volatile coherent uint64_t[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatLoadNV(out fcoopmatNV m, volatile coherent uvec2[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatLoadNV(out fcoopmatNV m, volatile coherent uvec4[] buf, uint element, uint stride, bool colMajor);\n" - - "void coopMatStoreNV(fcoopmatNV m, volatile coherent float16_t[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatStoreNV(fcoopmatNV m, volatile coherent float[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatStoreNV(fcoopmatNV m, volatile coherent float64_t[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatStoreNV(fcoopmatNV m, volatile coherent uint8_t[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatStoreNV(fcoopmatNV m, volatile coherent uint16_t[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatStoreNV(fcoopmatNV m, volatile coherent uint[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatStoreNV(fcoopmatNV m, volatile coherent uint64_t[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatStoreNV(fcoopmatNV m, volatile coherent uvec2[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatStoreNV(fcoopmatNV m, volatile coherent uvec4[] buf, uint element, uint stride, bool colMajor);\n" - - "fcoopmatNV coopMatMulAddNV(fcoopmatNV A, fcoopmatNV B, fcoopmatNV C);\n" - "void coopMatLoadNV(out icoopmatNV m, volatile coherent int8_t[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatLoadNV(out icoopmatNV m, volatile coherent int16_t[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatLoadNV(out icoopmatNV m, volatile coherent int[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatLoadNV(out icoopmatNV m, volatile coherent int64_t[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatLoadNV(out icoopmatNV m, volatile coherent ivec2[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatLoadNV(out icoopmatNV m, volatile coherent ivec4[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatLoadNV(out icoopmatNV m, volatile coherent uint8_t[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatLoadNV(out icoopmatNV m, volatile coherent uint16_t[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatLoadNV(out icoopmatNV m, volatile coherent uint[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatLoadNV(out icoopmatNV m, volatile coherent uint64_t[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatLoadNV(out icoopmatNV m, volatile coherent uvec2[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatLoadNV(out icoopmatNV m, volatile coherent uvec4[] buf, uint element, uint stride, bool colMajor);\n" - - "void coopMatLoadNV(out ucoopmatNV m, volatile coherent int8_t[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatLoadNV(out ucoopmatNV m, volatile coherent int16_t[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatLoadNV(out ucoopmatNV m, volatile coherent int[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatLoadNV(out ucoopmatNV m, volatile coherent int64_t[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatLoadNV(out ucoopmatNV m, volatile coherent ivec2[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatLoadNV(out ucoopmatNV m, volatile coherent ivec4[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatLoadNV(out ucoopmatNV m, volatile coherent uint8_t[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatLoadNV(out ucoopmatNV m, volatile coherent uint16_t[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatLoadNV(out ucoopmatNV m, volatile coherent uint[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatLoadNV(out ucoopmatNV m, volatile coherent uint64_t[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatLoadNV(out ucoopmatNV m, volatile coherent uvec2[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatLoadNV(out ucoopmatNV m, volatile coherent uvec4[] buf, uint element, uint stride, bool colMajor);\n" - - "void coopMatStoreNV(icoopmatNV m, volatile coherent int8_t[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatStoreNV(icoopmatNV m, volatile coherent int16_t[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatStoreNV(icoopmatNV m, volatile coherent int[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatStoreNV(icoopmatNV m, volatile coherent int64_t[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatStoreNV(icoopmatNV m, volatile coherent ivec2[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatStoreNV(icoopmatNV m, volatile coherent ivec4[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatStoreNV(icoopmatNV m, volatile coherent uint8_t[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatStoreNV(icoopmatNV m, volatile coherent uint16_t[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatStoreNV(icoopmatNV m, volatile coherent uint[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatStoreNV(icoopmatNV m, volatile coherent uint64_t[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatStoreNV(icoopmatNV m, volatile coherent uvec2[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatStoreNV(icoopmatNV m, volatile coherent uvec4[] buf, uint element, uint stride, bool colMajor);\n" - - "void coopMatStoreNV(ucoopmatNV m, volatile coherent int8_t[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatStoreNV(ucoopmatNV m, volatile coherent int16_t[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatStoreNV(ucoopmatNV m, volatile coherent int[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatStoreNV(ucoopmatNV m, volatile coherent int64_t[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatStoreNV(ucoopmatNV m, volatile coherent ivec2[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatStoreNV(ucoopmatNV m, volatile coherent ivec4[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatStoreNV(ucoopmatNV m, volatile coherent uint8_t[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatStoreNV(ucoopmatNV m, volatile coherent uint16_t[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatStoreNV(ucoopmatNV m, volatile coherent uint[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatStoreNV(ucoopmatNV m, volatile coherent uint64_t[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatStoreNV(ucoopmatNV m, volatile coherent uvec2[] buf, uint element, uint stride, bool colMajor);\n" - "void coopMatStoreNV(ucoopmatNV m, volatile coherent uvec4[] buf, uint element, uint stride, bool colMajor);\n" - - "icoopmatNV coopMatMulAddNV(icoopmatNV A, icoopmatNV B, icoopmatNV C);\n" - "ucoopmatNV coopMatMulAddNV(ucoopmatNV A, ucoopmatNV B, ucoopmatNV C);\n" - ); - } - - //============================================================================ - // - // Prototypes for built-in functions seen by fragment shaders only. - // - //============================================================================ - - // - // Original-style texture Functions with bias. - // - if (spvVersion.spv == 0 && (profile != EEsProfile || version == 100)) { - stageBuiltins[EShLangFragment].append( - "vec4 texture2D(sampler2D, vec2, float);" - "vec4 texture2DProj(sampler2D, vec3, float);" - "vec4 texture2DProj(sampler2D, vec4, float);" - "vec4 texture3D(sampler3D, vec3, float);" // OES_texture_3D - "vec4 texture3DProj(sampler3D, vec4, float);" // OES_texture_3D - "vec4 textureCube(samplerCube, vec3, float);" - - "\n"); - } - if (spvVersion.spv == 0 && (profile != EEsProfile && version > 100)) { - stageBuiltins[EShLangFragment].append( - "vec4 texture1D(sampler1D, float, float);" - "vec4 texture1DProj(sampler1D, vec2, float);" - "vec4 texture1DProj(sampler1D, vec4, float);" - "vec4 shadow1D(sampler1DShadow, vec3, float);" - "vec4 shadow2D(sampler2DShadow, vec3, float);" - "vec4 shadow1DProj(sampler1DShadow, vec4, float);" - "vec4 shadow2DProj(sampler2DShadow, vec4, float);" - - "\n"); - } - if (spvVersion.spv == 0 && profile == EEsProfile) { - stageBuiltins[EShLangFragment].append( - "vec4 texture2DLodEXT(sampler2D, vec2, float);" // GL_EXT_shader_texture_lod - "vec4 texture2DProjLodEXT(sampler2D, vec3, float);" // GL_EXT_shader_texture_lod - "vec4 texture2DProjLodEXT(sampler2D, vec4, float);" // GL_EXT_shader_texture_lod - "vec4 textureCubeLodEXT(samplerCube, vec3, float);" // GL_EXT_shader_texture_lod - - "\n"); - } -#endif // !GLSLANG_ANGLE - - // GL_ARB_derivative_control - if (profile != EEsProfile && version >= 400) { - stageBuiltins[EShLangFragment].append(derivativeControls); - stageBuiltins[EShLangFragment].append("\n"); - } - - // GL_OES_shader_multisample_interpolation - if ((profile == EEsProfile && version >= 310) || - (profile != EEsProfile && version >= 400)) { - stageBuiltins[EShLangFragment].append( - "float interpolateAtCentroid(float);" - "vec2 interpolateAtCentroid(vec2);" - "vec3 interpolateAtCentroid(vec3);" - "vec4 interpolateAtCentroid(vec4);" - - "float interpolateAtSample(float, int);" - "vec2 interpolateAtSample(vec2, int);" - "vec3 interpolateAtSample(vec3, int);" - "vec4 interpolateAtSample(vec4, int);" - - "float interpolateAtOffset(float, vec2);" - "vec2 interpolateAtOffset(vec2, vec2);" - "vec3 interpolateAtOffset(vec3, vec2);" - "vec4 interpolateAtOffset(vec4, vec2);" - - "\n"); - } - - stageBuiltins[EShLangFragment].append( - "void beginInvocationInterlockARB(void);" - "void endInvocationInterlockARB(void);"); - - stageBuiltins[EShLangFragment].append( - "bool helperInvocationEXT();" - "\n"); - -#ifndef GLSLANG_ANGLE - // GL_AMD_shader_explicit_vertex_parameter - if (profile != EEsProfile && version >= 450) { - stageBuiltins[EShLangFragment].append( - "float interpolateAtVertexAMD(float, uint);" - "vec2 interpolateAtVertexAMD(vec2, uint);" - "vec3 interpolateAtVertexAMD(vec3, uint);" - "vec4 interpolateAtVertexAMD(vec4, uint);" - - "int interpolateAtVertexAMD(int, uint);" - "ivec2 interpolateAtVertexAMD(ivec2, uint);" - "ivec3 interpolateAtVertexAMD(ivec3, uint);" - "ivec4 interpolateAtVertexAMD(ivec4, uint);" - - "uint interpolateAtVertexAMD(uint, uint);" - "uvec2 interpolateAtVertexAMD(uvec2, uint);" - "uvec3 interpolateAtVertexAMD(uvec3, uint);" - "uvec4 interpolateAtVertexAMD(uvec4, uint);" - - "float16_t interpolateAtVertexAMD(float16_t, uint);" - "f16vec2 interpolateAtVertexAMD(f16vec2, uint);" - "f16vec3 interpolateAtVertexAMD(f16vec3, uint);" - "f16vec4 interpolateAtVertexAMD(f16vec4, uint);" - - "\n"); - } - - // GL_AMD_gpu_shader_half_float - if (profile != EEsProfile && version >= 450) { - stageBuiltins[EShLangFragment].append(derivativesAndControl16bits); - stageBuiltins[EShLangFragment].append("\n"); - - stageBuiltins[EShLangFragment].append( - "float16_t interpolateAtCentroid(float16_t);" - "f16vec2 interpolateAtCentroid(f16vec2);" - "f16vec3 interpolateAtCentroid(f16vec3);" - "f16vec4 interpolateAtCentroid(f16vec4);" - - "float16_t interpolateAtSample(float16_t, int);" - "f16vec2 interpolateAtSample(f16vec2, int);" - "f16vec3 interpolateAtSample(f16vec3, int);" - "f16vec4 interpolateAtSample(f16vec4, int);" - - "float16_t interpolateAtOffset(float16_t, f16vec2);" - "f16vec2 interpolateAtOffset(f16vec2, f16vec2);" - "f16vec3 interpolateAtOffset(f16vec3, f16vec2);" - "f16vec4 interpolateAtOffset(f16vec4, f16vec2);" - - "\n"); - } - - // GL_ARB_shader_clock& GL_EXT_shader_realtime_clock - if (profile != EEsProfile && version >= 450) { - commonBuiltins.append( - "uvec2 clock2x32ARB();" - "uint64_t clockARB();" - "uvec2 clockRealtime2x32EXT();" - "uint64_t clockRealtimeEXT();" - "\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"); - } - - // Builtins for GL_NV_ray_tracing/GL_NV_ray_tracing_motion_blur/GL_EXT_ray_tracing/GL_EXT_ray_query - if (profile != EEsProfile && version >= 460) { - commonBuiltins.append("void rayQueryInitializeEXT(rayQueryEXT, accelerationStructureEXT, uint, uint, vec3, float, vec3, float);" - "void rayQueryTerminateEXT(rayQueryEXT);" - "void rayQueryGenerateIntersectionEXT(rayQueryEXT, float);" - "void rayQueryConfirmIntersectionEXT(rayQueryEXT);" - "bool rayQueryProceedEXT(rayQueryEXT);" - "uint rayQueryGetIntersectionTypeEXT(rayQueryEXT, bool);" - "float rayQueryGetRayTMinEXT(rayQueryEXT);" - "uint rayQueryGetRayFlagsEXT(rayQueryEXT);" - "vec3 rayQueryGetWorldRayOriginEXT(rayQueryEXT);" - "vec3 rayQueryGetWorldRayDirectionEXT(rayQueryEXT);" - "float rayQueryGetIntersectionTEXT(rayQueryEXT, bool);" - "int rayQueryGetIntersectionInstanceCustomIndexEXT(rayQueryEXT, bool);" - "int rayQueryGetIntersectionInstanceIdEXT(rayQueryEXT, bool);" - "uint rayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetEXT(rayQueryEXT, bool);" - "int rayQueryGetIntersectionGeometryIndexEXT(rayQueryEXT, bool);" - "int rayQueryGetIntersectionPrimitiveIndexEXT(rayQueryEXT, bool);" - "vec2 rayQueryGetIntersectionBarycentricsEXT(rayQueryEXT, bool);" - "bool rayQueryGetIntersectionFrontFaceEXT(rayQueryEXT, bool);" - "bool rayQueryGetIntersectionCandidateAABBOpaqueEXT(rayQueryEXT);" - "vec3 rayQueryGetIntersectionObjectRayDirectionEXT(rayQueryEXT, bool);" - "vec3 rayQueryGetIntersectionObjectRayOriginEXT(rayQueryEXT, bool);" - "mat4x3 rayQueryGetIntersectionObjectToWorldEXT(rayQueryEXT, bool);" - "mat4x3 rayQueryGetIntersectionWorldToObjectEXT(rayQueryEXT, bool);" - "\n"); - - stageBuiltins[EShLangRayGen].append( - "void traceNV(accelerationStructureNV,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);" - "void traceRayMotionNV(accelerationStructureNV,uint,uint,uint,uint,uint,vec3,float,vec3,float,float,int);" - "void traceRayEXT(accelerationStructureEXT,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);" - "void executeCallableNV(uint, int);" - "void executeCallableEXT(uint, int);" - "\n"); - stageBuiltins[EShLangIntersect].append( - "bool reportIntersectionNV(float, uint);" - "bool reportIntersectionEXT(float, uint);" - "\n"); - stageBuiltins[EShLangAnyHit].append( - "void ignoreIntersectionNV();" - "void terminateRayNV();" - "\n"); - stageBuiltins[EShLangClosestHit].append( - "void traceNV(accelerationStructureNV,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);" - "void traceRayMotionNV(accelerationStructureNV,uint,uint,uint,uint,uint,vec3,float,vec3,float,float,int);" - "void traceRayEXT(accelerationStructureEXT,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);" - "void executeCallableNV(uint, int);" - "void executeCallableEXT(uint, int);" - "\n"); - stageBuiltins[EShLangMiss].append( - "void traceNV(accelerationStructureNV,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);" - "void traceRayMotionNV(accelerationStructureNV,uint,uint,uint,uint,uint,vec3,float,vec3,float,float,int);" - "void traceRayEXT(accelerationStructureEXT,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);" - "void executeCallableNV(uint, int);" - "void executeCallableEXT(uint, int);" - "\n"); - stageBuiltins[EShLangCallable].append( - "void executeCallableNV(uint, int);" - "void executeCallableEXT(uint, int);" - "\n"); - } -#endif // !GLSLANG_ANGLE - - //E_SPV_NV_compute_shader_derivatives - if ((profile == EEsProfile && version >= 320) || (profile != EEsProfile && version >= 450)) { - stageBuiltins[EShLangCompute].append(derivativeControls); - stageBuiltins[EShLangCompute].append("\n"); - } -#ifndef GLSLANG_ANGLE - if (profile != EEsProfile && version >= 450) { - stageBuiltins[EShLangCompute].append(derivativesAndControl16bits); - stageBuiltins[EShLangCompute].append(derivativesAndControl64bits); - stageBuiltins[EShLangCompute].append("\n"); - } - - // Builtins for GL_NV_mesh_shader - if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 320)) { - stageBuiltins[EShLangMeshNV].append( - "void writePackedPrimitiveIndices4x8NV(uint, uint);" - "\n"); - } -#endif // !GLSLANG_ANGLE -#endif // !GLSLANG_WEB - - //============================================================================ - // - // Standard Uniforms - // - //============================================================================ - - // - // Depth range in window coordinates, p. 33 - // - if (spvVersion.spv == 0) { - commonBuiltins.append( - "struct gl_DepthRangeParameters {" - ); - if (profile == EEsProfile) { - commonBuiltins.append( - "highp float near;" // n - "highp float far;" // f - "highp float diff;" // f - n - ); - } else { -#ifndef GLSLANG_WEB - commonBuiltins.append( - "float near;" // n - "float far;" // f - "float diff;" // f - n - ); -#endif - } - - commonBuiltins.append( - "};" - "uniform gl_DepthRangeParameters gl_DepthRange;" - "\n"); - } - -#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) - if (spvVersion.spv == 0 && IncludeLegacy(version, profile, spvVersion)) { - // - // Matrix state. p. 31, 32, 37, 39, 40. - // - commonBuiltins.append( - "uniform mat4 gl_ModelViewMatrix;" - "uniform mat4 gl_ProjectionMatrix;" - "uniform mat4 gl_ModelViewProjectionMatrix;" - - // - // Derived matrix state that provides inverse and transposed versions - // of the matrices above. - // - "uniform mat3 gl_NormalMatrix;" - - "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;" - - // - // Normal scaling p. 39. - // - "uniform float gl_NormalScale;" - - // - // Point Size, p. 66, 67. - // - "struct gl_PointParameters {" - "float size;" - "float sizeMin;" - "float sizeMax;" - "float fadeThresholdSize;" - "float distanceConstantAttenuation;" - "float distanceLinearAttenuation;" - "float distanceQuadraticAttenuation;" - "};" - - "uniform gl_PointParameters gl_Point;" - - // - // Material State p. 50, 55. - // - "struct gl_MaterialParameters {" - "vec4 emission;" // Ecm - "vec4 ambient;" // Acm - "vec4 diffuse;" // Dcm - "vec4 specular;" // Scm - "float shininess;" // Srm - "};" - "uniform gl_MaterialParameters gl_FrontMaterial;" - "uniform gl_MaterialParameters gl_BackMaterial;" - - // - // Light State p 50, 53, 55. - // - "struct gl_LightSourceParameters {" - "vec4 ambient;" // Acli - "vec4 diffuse;" // Dcli - "vec4 specular;" // Scli - "vec4 position;" // Ppli - "vec4 halfVector;" // Derived: Hi - "vec3 spotDirection;" // Sdli - "float spotExponent;" // Srli - "float spotCutoff;" // Crli - // (range: [0.0,90.0], 180.0) - "float spotCosCutoff;" // Derived: cos(Crli) - // (range: [1.0,0.0],-1.0) - "float constantAttenuation;" // K0 - "float linearAttenuation;" // K1 - "float quadraticAttenuation;"// K2 - "};" - - "struct gl_LightModelParameters {" - "vec4 ambient;" // Acs - "};" - - "uniform gl_LightModelParameters gl_LightModel;" - - // - // Derived state from products of light and material. - // - "struct gl_LightModelProducts {" - "vec4 sceneColor;" // Derived. Ecm + Acm * Acs - "};" - - "uniform gl_LightModelProducts gl_FrontLightModelProduct;" - "uniform gl_LightModelProducts gl_BackLightModelProduct;" - - "struct gl_LightProducts {" - "vec4 ambient;" // Acm * Acli - "vec4 diffuse;" // Dcm * Dcli - "vec4 specular;" // Scm * Scli - "};" - - // - // Fog p. 161 - // - "struct gl_FogParameters {" - "vec4 color;" - "float density;" - "float start;" - "float end;" - "float scale;" // 1 / (gl_FogEnd - gl_FogStart) - "};" - - "uniform gl_FogParameters gl_Fog;" - - "\n"); - } -#endif // !GLSLANG_WEB && !GLSLANG_ANGLE - - //============================================================================ - // - // Define the interface to the compute shader. - // - //============================================================================ - - if ((profile != EEsProfile && version >= 420) || - (profile == EEsProfile && version >= 310)) { - stageBuiltins[EShLangCompute].append( - "in highp uvec3 gl_NumWorkGroups;" - "const highp uvec3 gl_WorkGroupSize = uvec3(1,1,1);" - - "in highp uvec3 gl_WorkGroupID;" - "in highp uvec3 gl_LocalInvocationID;" - - "in highp uvec3 gl_GlobalInvocationID;" - "in highp uint gl_LocalInvocationIndex;" - - "\n"); - } - - if ((profile != EEsProfile && version >= 140) || - (profile == EEsProfile && version >= 310)) { - stageBuiltins[EShLangCompute].append( - "in highp int gl_DeviceIndex;" // GL_EXT_device_group - "\n"); - } - -#ifndef GLSLANG_WEB -#ifndef GLSLANG_ANGLE - //============================================================================ - // - // Define the interface to the mesh/task shader. - // - //============================================================================ - - if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 320)) { - // per-vertex attributes - stageBuiltins[EShLangMeshNV].append( - "out gl_MeshPerVertexNV {" - "vec4 gl_Position;" - "float gl_PointSize;" - "float gl_ClipDistance[];" - "float gl_CullDistance[];" - "perviewNV vec4 gl_PositionPerViewNV[];" - "perviewNV float gl_ClipDistancePerViewNV[][];" - "perviewNV float gl_CullDistancePerViewNV[][];" - "} gl_MeshVerticesNV[];" - ); - - // per-primitive attributes - stageBuiltins[EShLangMeshNV].append( - "perprimitiveNV out gl_MeshPerPrimitiveNV {" - "int gl_PrimitiveID;" - "int gl_Layer;" - "int gl_ViewportIndex;" - "int gl_ViewportMask[];" - "perviewNV int gl_LayerPerViewNV[];" - "perviewNV int gl_ViewportMaskPerViewNV[][];" - "} gl_MeshPrimitivesNV[];" - ); - - stageBuiltins[EShLangMeshNV].append( - "out uint gl_PrimitiveCountNV;" - "out uint gl_PrimitiveIndicesNV[];" - - "in uint gl_MeshViewCountNV;" - "in uint gl_MeshViewIndicesNV[4];" - - "const highp uvec3 gl_WorkGroupSize = uvec3(1,1,1);" - - "in highp uvec3 gl_WorkGroupID;" - "in highp uvec3 gl_LocalInvocationID;" - - "in highp uvec3 gl_GlobalInvocationID;" - "in highp uint gl_LocalInvocationIndex;" - - "\n"); - - stageBuiltins[EShLangTaskNV].append( - "out uint gl_TaskCountNV;" - - "const highp uvec3 gl_WorkGroupSize = uvec3(1,1,1);" - - "in highp uvec3 gl_WorkGroupID;" - "in highp uvec3 gl_LocalInvocationID;" - - "in highp uvec3 gl_GlobalInvocationID;" - "in highp uint gl_LocalInvocationIndex;" - - "in uint gl_MeshViewCountNV;" - "in uint gl_MeshViewIndicesNV[4];" - - "\n"); - } - - if (profile != EEsProfile && version >= 450) { - stageBuiltins[EShLangMeshNV].append( - "in highp int gl_DeviceIndex;" // GL_EXT_device_group - "in int gl_DrawIDARB;" // GL_ARB_shader_draw_parameters - "\n"); - - stageBuiltins[EShLangTaskNV].append( - "in highp int gl_DeviceIndex;" // GL_EXT_device_group - "in int gl_DrawIDARB;" // GL_ARB_shader_draw_parameters - "\n"); - - if (version >= 460) { - stageBuiltins[EShLangMeshNV].append( - "in int gl_DrawID;" - "\n"); - - stageBuiltins[EShLangTaskNV].append( - "in int gl_DrawID;" - "\n"); - } - } -#endif // !GLSLANG_ANGLE - - //============================================================================ - // - // Define the interface to the vertex shader. - // - //============================================================================ - - if (profile != EEsProfile) { - if (version < 130) { - stageBuiltins[EShLangVertex].append( - "attribute vec4 gl_Color;" - "attribute vec4 gl_SecondaryColor;" - "attribute vec3 gl_Normal;" - "attribute vec4 gl_Vertex;" - "attribute vec4 gl_MultiTexCoord0;" - "attribute vec4 gl_MultiTexCoord1;" - "attribute vec4 gl_MultiTexCoord2;" - "attribute vec4 gl_MultiTexCoord3;" - "attribute vec4 gl_MultiTexCoord4;" - "attribute vec4 gl_MultiTexCoord5;" - "attribute vec4 gl_MultiTexCoord6;" - "attribute vec4 gl_MultiTexCoord7;" - "attribute float gl_FogCoord;" - "\n"); - } else if (IncludeLegacy(version, profile, spvVersion)) { - stageBuiltins[EShLangVertex].append( - "in vec4 gl_Color;" - "in vec4 gl_SecondaryColor;" - "in vec3 gl_Normal;" - "in vec4 gl_Vertex;" - "in vec4 gl_MultiTexCoord0;" - "in vec4 gl_MultiTexCoord1;" - "in vec4 gl_MultiTexCoord2;" - "in vec4 gl_MultiTexCoord3;" - "in vec4 gl_MultiTexCoord4;" - "in vec4 gl_MultiTexCoord5;" - "in vec4 gl_MultiTexCoord6;" - "in vec4 gl_MultiTexCoord7;" - "in float gl_FogCoord;" - "\n"); - } - - if (version < 150) { - if (version < 130) { - stageBuiltins[EShLangVertex].append( - " vec4 gl_ClipVertex;" // needs qualifier fixed later - "varying vec4 gl_FrontColor;" - "varying vec4 gl_BackColor;" - "varying vec4 gl_FrontSecondaryColor;" - "varying vec4 gl_BackSecondaryColor;" - "varying vec4 gl_TexCoord[];" - "varying float gl_FogFragCoord;" - "\n"); - } else if (IncludeLegacy(version, profile, spvVersion)) { - stageBuiltins[EShLangVertex].append( - " vec4 gl_ClipVertex;" // needs qualifier fixed later - "out vec4 gl_FrontColor;" - "out vec4 gl_BackColor;" - "out vec4 gl_FrontSecondaryColor;" - "out vec4 gl_BackSecondaryColor;" - "out vec4 gl_TexCoord[];" - "out float gl_FogFragCoord;" - "\n"); - } - stageBuiltins[EShLangVertex].append( - "vec4 gl_Position;" // needs qualifier fixed later - "float gl_PointSize;" // needs qualifier fixed later - ); - - if (version == 130 || version == 140) - stageBuiltins[EShLangVertex].append( - "out float gl_ClipDistance[];" - ); - } else { - // version >= 150 - stageBuiltins[EShLangVertex].append( - "out gl_PerVertex {" - "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 - "vec4 gl_FrontColor;" - "vec4 gl_BackColor;" - "vec4 gl_FrontSecondaryColor;" - "vec4 gl_BackSecondaryColor;" - "vec4 gl_TexCoord[];" - "float gl_FogFragCoord;" - ); - if (version >= 450) - stageBuiltins[EShLangVertex].append( - "float gl_CullDistance[];" - ); - stageBuiltins[EShLangVertex].append( - "};" - "\n"); - } - if (version >= 130 && spvVersion.vulkan == 0) - stageBuiltins[EShLangVertex].append( - "int gl_VertexID;" // needs qualifier fixed later - ); - if (version >= 140 && spvVersion.vulkan == 0) - stageBuiltins[EShLangVertex].append( - "int gl_InstanceID;" // needs qualifier fixed later - ); - if (spvVersion.vulkan > 0 && version >= 140) - stageBuiltins[EShLangVertex].append( - "in int gl_VertexIndex;" - "in int gl_InstanceIndex;" - ); - - if (spvVersion.vulkan > 0 && version >= 140 && spvVersion.vulkanRelaxed) - stageBuiltins[EShLangVertex].append( - "in int gl_VertexID;" // declare with 'in' qualifier - "in int gl_InstanceID;" - ); - - if (version >= 440) { - stageBuiltins[EShLangVertex].append( - "in int gl_BaseVertexARB;" - "in int gl_BaseInstanceARB;" - "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;" - ); - } - - if (version >= 430) - stageBuiltins[EShLangVertex].append( - "out int gl_ViewportMask[];" // GL_NV_viewport_array2 - ); - - if (version >= 450) - stageBuiltins[EShLangVertex].append( - "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 - ); - } else { - // ES profile - if (version == 100) { - stageBuiltins[EShLangVertex].append( - "highp vec4 gl_Position;" // needs qualifier fixed later - "mediump float gl_PointSize;" // needs qualifier fixed later - ); - } else { - if (spvVersion.vulkan == 0 || spvVersion.vulkanRelaxed) - stageBuiltins[EShLangVertex].append( - "in highp int gl_VertexID;" // needs qualifier fixed later - "in highp int gl_InstanceID;" // needs qualifier fixed later - ); - if (spvVersion.vulkan > 0) -#endif - stageBuiltins[EShLangVertex].append( - "in highp int gl_VertexIndex;" - "in highp int gl_InstanceIndex;" - ); -#ifndef GLSLANG_WEB - if (version < 310) -#endif - stageBuiltins[EShLangVertex].append( - "highp vec4 gl_Position;" // needs qualifier fixed later - "highp float gl_PointSize;" // needs qualifier fixed later - ); -#ifndef GLSLANG_WEB - else - stageBuiltins[EShLangVertex].append( - "out gl_PerVertex {" - "highp vec4 gl_Position;" // needs qualifier fixed later - "highp float gl_PointSize;" // needs qualifier fixed later - "};" - ); - } - } - - 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"); - } - - if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 310)) { - stageBuiltins[EShLangVertex].append( - "out highp int gl_PrimitiveShadingRateEXT;" // GL_EXT_fragment_shading_rate - "\n"); - } - - //============================================================================ - // - // Define the interface to the geometry shader. - // - //============================================================================ - - if (profile == ECoreProfile || profile == ECompatibilityProfile) { - stageBuiltins[EShLangGeometry].append( - "in gl_PerVertex {" - "vec4 gl_Position;" - "float gl_PointSize;" - "float gl_ClipDistance[];" - ); - if (profile == ECompatibilityProfile) - stageBuiltins[EShLangGeometry].append( - "vec4 gl_ClipVertex;" - "vec4 gl_FrontColor;" - "vec4 gl_BackColor;" - "vec4 gl_FrontSecondaryColor;" - "vec4 gl_BackSecondaryColor;" - "vec4 gl_TexCoord[];" - "float gl_FogFragCoord;" - ); - if (version >= 450) - stageBuiltins[EShLangGeometry].append( - "float gl_CullDistance[];" - "vec4 gl_SecondaryPositionNV;" // GL_NV_stereo_view_rendering - "vec4 gl_PositionPerViewNV[];" // GL_NVX_multiview_per_view_attributes - ); - stageBuiltins[EShLangGeometry].append( - "} gl_in[];" - - "in int gl_PrimitiveIDIn;" - "out gl_PerVertex {" - "vec4 gl_Position;" - "float gl_PointSize;" - "float gl_ClipDistance[];" - "\n"); - if (profile == ECompatibilityProfile && version >= 400) - stageBuiltins[EShLangGeometry].append( - "vec4 gl_ClipVertex;" - "vec4 gl_FrontColor;" - "vec4 gl_BackColor;" - "vec4 gl_FrontSecondaryColor;" - "vec4 gl_BackSecondaryColor;" - "vec4 gl_TexCoord[];" - "float gl_FogFragCoord;" - ); - if (version >= 450) - stageBuiltins[EShLangGeometry].append( - "float gl_CullDistance[];" - ); - stageBuiltins[EShLangGeometry].append( - "};" - - "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;" - ); - - if (version >= 400) - stageBuiltins[EShLangGeometry].append( - "in int gl_InvocationID;" - ); - - if (version >= 430) - stageBuiltins[EShLangGeometry].append( - "out int gl_ViewportMask[];" // GL_NV_viewport_array2 - ); - - if (version >= 450) - stageBuiltins[EShLangGeometry].append( - "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 - ); - - stageBuiltins[EShLangGeometry].append("\n"); - } else if (profile == EEsProfile && version >= 310) { - stageBuiltins[EShLangGeometry].append( - "in gl_PerVertex {" - "highp vec4 gl_Position;" - "highp float gl_PointSize;" - "} gl_in[];" - "\n" - "in highp int gl_PrimitiveIDIn;" - "in highp int gl_InvocationID;" - "\n" - "out gl_PerVertex {" - "highp vec4 gl_Position;" - "highp float gl_PointSize;" - "};" - "\n" - "out highp int gl_PrimitiveID;" - "out highp int gl_Layer;" - "\n" - ); - } - - 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"); - } - - if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 310)) { - stageBuiltins[EShLangGeometry].append( - "out highp int gl_PrimitiveShadingRateEXT;" // GL_EXT_fragment_shading_rate - "\n"); - } - - //============================================================================ - // - // Define the interface to the tessellation control shader. - // - //============================================================================ - - if (profile != EEsProfile && version >= 150) { - // Note: "in gl_PerVertex {...} gl_in[gl_MaxPatchVertices];" is declared in initialize() below, - // as it depends on the resource sizing of gl_MaxPatchVertices. - - stageBuiltins[EShLangTessControl].append( - "in int gl_PatchVerticesIn;" - "in int gl_PrimitiveID;" - "in int gl_InvocationID;" - - "out gl_PerVertex {" - "vec4 gl_Position;" - "float gl_PointSize;" - "float gl_ClipDistance[];" - ); - if (profile == ECompatibilityProfile) - stageBuiltins[EShLangTessControl].append( - "vec4 gl_ClipVertex;" - "vec4 gl_FrontColor;" - "vec4 gl_BackColor;" - "vec4 gl_FrontSecondaryColor;" - "vec4 gl_BackSecondaryColor;" - "vec4 gl_TexCoord[];" - "float gl_FogFragCoord;" - ); - if (version >= 450) - stageBuiltins[EShLangTessControl].append( - "float gl_CullDistance[];" - ); - if (version >= 430) - stageBuiltins[EShLangTessControl].append( - "int gl_ViewportMask[];" // GL_NV_viewport_array2 - ); - if (version >= 450) - stageBuiltins[EShLangTessControl].append( - "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 - ); - stageBuiltins[EShLangTessControl].append( - "} gl_out[];" - - "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. - - stageBuiltins[EShLangTessControl].append( - "in highp int gl_PatchVerticesIn;" - "in highp int gl_PrimitiveID;" - "in highp int gl_InvocationID;" - - "out gl_PerVertex {" - "highp vec4 gl_Position;" - "highp float gl_PointSize;" - ); - stageBuiltins[EShLangTessControl].append( - "} gl_out[];" - - "patch out highp float gl_TessLevelOuter[4];" - "patch out highp float gl_TessLevelInner[2];" - "patch out highp vec4 gl_BoundingBoxOES[2];" - "patch out highp vec4 gl_BoundingBoxEXT[2];" - "\n"); - if (profile == EEsProfile && version >= 320) { - stageBuiltins[EShLangTessControl].append( - "patch out highp vec4 gl_BoundingBox[2];" - "\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. - // - //============================================================================ - - if (profile != EEsProfile && version >= 150) { - // Note: "in gl_PerVertex {...} gl_in[gl_MaxPatchVertices];" is declared in initialize() below, - // as it depends on the resource sizing of gl_MaxPatchVertices. - - stageBuiltins[EShLangTessEvaluation].append( - "in int gl_PatchVerticesIn;" - "in int gl_PrimitiveID;" - "in vec3 gl_TessCoord;" - - "patch in float gl_TessLevelOuter[4];" - "patch in float gl_TessLevelInner[2];" - - "out gl_PerVertex {" - "vec4 gl_Position;" - "float gl_PointSize;" - "float gl_ClipDistance[];" - ); - if (version >= 400 && profile == ECompatibilityProfile) - stageBuiltins[EShLangTessEvaluation].append( - "vec4 gl_ClipVertex;" - "vec4 gl_FrontColor;" - "vec4 gl_BackColor;" - "vec4 gl_FrontSecondaryColor;" - "vec4 gl_BackSecondaryColor;" - "vec4 gl_TexCoord[];" - "float gl_FogFragCoord;" - ); - if (version >= 450) - stageBuiltins[EShLangTessEvaluation].append( - "float gl_CullDistance[];" - ); - stageBuiltins[EShLangTessEvaluation].append( - "};" - "\n"); - - if (version >= 410) - stageBuiltins[EShLangTessEvaluation].append( - "out int gl_ViewportIndex;" - "out int gl_Layer;" - "\n"); - - if (version >= 430) - stageBuiltins[EShLangTessEvaluation].append( - "out int gl_ViewportMask[];" // GL_NV_viewport_array2 - ); - - if (version >= 450) - stageBuiltins[EShLangTessEvaluation].append( - "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 - ); - - } 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. - - stageBuiltins[EShLangTessEvaluation].append( - "in highp int gl_PatchVerticesIn;" - "in highp int gl_PrimitiveID;" - "in highp vec3 gl_TessCoord;" - - "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;" - ); - stageBuiltins[EShLangTessEvaluation].append( - "};" - "\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. - // - //============================================================================ - - if (profile != EEsProfile) { - - stageBuiltins[EShLangFragment].append( - "vec4 gl_FragCoord;" // needs qualifier fixed later - "bool gl_FrontFacing;" // needs qualifier fixed later - "float gl_FragDepth;" // needs qualifier fixed later - ); - if (version >= 120) - 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 - ); - - if (version < 130) { - stageBuiltins[EShLangFragment].append( - "varying vec4 gl_Color;" - "varying vec4 gl_SecondaryColor;" - "varying vec4 gl_TexCoord[];" - "varying float gl_FogFragCoord;" - ); - } else { - stageBuiltins[EShLangFragment].append( - "in float gl_ClipDistance[];" - ); - - if (IncludeLegacy(version, profile, spvVersion)) { - if (version < 150) - stageBuiltins[EShLangFragment].append( - "in float gl_FogFragCoord;" - "in vec4 gl_TexCoord[];" - "in vec4 gl_Color;" - "in vec4 gl_SecondaryColor;" - ); - else - stageBuiltins[EShLangFragment].append( - "in gl_PerFragment {" - "in float gl_FogFragCoord;" - "in vec4 gl_TexCoord[];" - "in vec4 gl_Color;" - "in vec4 gl_SecondaryColor;" - "};" - ); - } - } - - if (version >= 150) - stageBuiltins[EShLangFragment].append( - "flat in int gl_PrimitiveID;" - ); - - if (version >= 130) { // ARB_sample_shading - stageBuiltins[EShLangFragment].append( - "flat in int gl_SampleID;" - " in vec2 gl_SamplePosition;" - " out int gl_SampleMask[];" - ); - - if (spvVersion.spv == 0) { - stageBuiltins[EShLangFragment].append( - "uniform int gl_NumSamples;" - ); - } - } - - if (version >= 400) - stageBuiltins[EShLangFragment].append( - "flat in int gl_SampleMaskIn[];" - ); - - if (version >= 430) - stageBuiltins[EShLangFragment].append( - "flat in int gl_Layer;" - "flat in int gl_ViewportIndex;" - ); - - if (version >= 450) - stageBuiltins[EShLangFragment].append( - "in float gl_CullDistance[];" - "bool gl_HelperInvocation;" // needs qualifier fixed later - ); - - if (version >= 450) - stageBuiltins[EShLangFragment].append( // GL_EXT_fragment_invocation_density - "flat in ivec2 gl_FragSizeEXT;" - "flat in int gl_FragInvocationCountEXT;" - ); - - if (version >= 450) - stageBuiltins[EShLangFragment].append( - "in vec2 gl_BaryCoordNoPerspAMD;" - "in vec2 gl_BaryCoordNoPerspCentroidAMD;" - "in vec2 gl_BaryCoordNoPerspSampleAMD;" - "in vec2 gl_BaryCoordSmoothAMD;" - "in vec2 gl_BaryCoordSmoothCentroidAMD;" - "in vec2 gl_BaryCoordSmoothSampleAMD;" - "in vec3 gl_BaryCoordPullModelAMD;" - ); - - if (version >= 430) - stageBuiltins[EShLangFragment].append( - "in bool gl_FragFullyCoveredNV;" - ); - if (version >= 450) - stageBuiltins[EShLangFragment].append( - "flat in ivec2 gl_FragmentSizeNV;" // GL_NV_shading_rate_image - "flat in int gl_InvocationsPerPixelNV;" - "in vec3 gl_BaryCoordNV;" // GL_NV_fragment_shader_barycentric - "in vec3 gl_BaryCoordNoPerspNV;" - ); - - if (version >= 450) - stageBuiltins[EShLangFragment].append( - "flat in int gl_ShadingRateEXT;" // GL_EXT_fragment_shading_rate - ); - - } else { - // ES profile - - if (version == 100) { - stageBuiltins[EShLangFragment].append( - "mediump vec4 gl_FragCoord;" // needs qualifier fixed later - " bool gl_FrontFacing;" // needs qualifier fixed later - "mediump vec4 gl_FragColor;" // needs qualifier fixed later - "mediump vec2 gl_PointCoord;" // needs qualifier fixed later - ); - } -#endif - if (version >= 300) { - stageBuiltins[EShLangFragment].append( - "highp vec4 gl_FragCoord;" // needs qualifier fixed later - " bool gl_FrontFacing;" // needs qualifier fixed later - "mediump vec2 gl_PointCoord;" // needs qualifier fixed later - "highp float gl_FragDepth;" // needs qualifier fixed later - ); - } -#ifndef GLSLANG_WEB - if (version >= 310) { - stageBuiltins[EShLangFragment].append( - "bool gl_HelperInvocation;" // needs qualifier fixed later - "flat in highp int gl_PrimitiveID;" // needs qualifier fixed later - "flat in highp int gl_Layer;" // needs qualifier fixed later - ); - - stageBuiltins[EShLangFragment].append( // GL_OES_sample_variables - "flat in lowp int gl_SampleID;" - " in mediump vec2 gl_SamplePosition;" - "flat in highp int gl_SampleMaskIn[];" - " out highp int gl_SampleMask[];" - ); - 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 - ); - - if (version >= 310) - stageBuiltins[EShLangFragment].append( // GL_EXT_fragment_invocation_density - "flat in ivec2 gl_FragSizeEXT;" - "flat in int gl_FragInvocationCountEXT;" - ); - if (version >= 320) - stageBuiltins[EShLangFragment].append( // GL_NV_shading_rate_image - "flat in ivec2 gl_FragmentSizeNV;" - "flat in int gl_InvocationsPerPixelNV;" - ); - if (version >= 320) - stageBuiltins[EShLangFragment].append( - "in vec3 gl_BaryCoordNV;" - "in vec3 gl_BaryCoordNoPerspNV;" - ); - if (version >= 310) - stageBuiltins[EShLangFragment].append( - "flat in highp int gl_ShadingRateEXT;" // GL_EXT_fragment_shading_rate - ); - } -#endif - - stageBuiltins[EShLangFragment].append("\n"); - - if (version >= 130) - add2ndGenerationSamplingImaging(version, profile, spvVersion); - -#ifndef GLSLANG_WEB - - 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"); - } - - 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"); - } - -#ifndef GLSLANG_ANGLE - // GL_ARB_shader_ballot - if (profile != EEsProfile && version >= 450) { - 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* rtBallotDecls = - "uniform volatile uint gl_SubGroupSizeARB;" - "in volatile uint gl_SubGroupInvocationARB;" - "in volatile uint64_t gl_SubGroupEqMaskARB;" - "in volatile uint64_t gl_SubGroupGeMaskARB;" - "in volatile uint64_t gl_SubGroupGtMaskARB;" - "in volatile uint64_t gl_SubGroupLeMaskARB;" - "in volatile 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); - stageBuiltins[EShLangMeshNV] .append(ballotDecls); - stageBuiltins[EShLangTaskNV] .append(ballotDecls); - stageBuiltins[EShLangRayGen] .append(rtBallotDecls); - stageBuiltins[EShLangIntersect] .append(rtBallotDecls); - // No volatile qualifier on these builtins in any-hit - stageBuiltins[EShLangAnyHit] .append(ballotDecls); - stageBuiltins[EShLangClosestHit] .append(rtBallotDecls); - stageBuiltins[EShLangMiss] .append(rtBallotDecls); - stageBuiltins[EShLangCallable] .append(rtBallotDecls); - } - - // GL_KHR_shader_subgroup - if ((profile == EEsProfile && version >= 310) || - (profile != EEsProfile && version >= 140)) { - const char* subgroupDecls = - "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;" - // GL_NV_shader_sm_builtins - "in highp uint gl_WarpsPerSMNV;" - "in highp uint gl_SMCountNV;" - "in highp uint gl_WarpIDNV;" - "in highp uint gl_SMIDNV;" - "\n"; - const char* fragmentSubgroupDecls = - "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;" - // GL_NV_shader_sm_builtins - "flat in highp uint gl_WarpsPerSMNV;" - "flat in highp uint gl_SMCountNV;" - "flat in highp uint gl_WarpIDNV;" - "flat in highp uint gl_SMIDNV;" - "\n"; - const char* computeSubgroupDecls = - "in highp uint gl_NumSubgroups;" - "in highp uint gl_SubgroupID;" - "\n"; - // These builtins are volatile for RT stages - const char* rtSubgroupDecls = - "in mediump volatile uint gl_SubgroupSize;" - "in mediump volatile uint gl_SubgroupInvocationID;" - "in highp volatile uvec4 gl_SubgroupEqMask;" - "in highp volatile uvec4 gl_SubgroupGeMask;" - "in highp volatile uvec4 gl_SubgroupGtMask;" - "in highp volatile uvec4 gl_SubgroupLeMask;" - "in highp volatile uvec4 gl_SubgroupLtMask;" - // GL_NV_shader_sm_builtins - "in highp uint gl_WarpsPerSMNV;" - "in highp uint gl_SMCountNV;" - "in highp volatile uint gl_WarpIDNV;" - "in highp volatile uint gl_SMIDNV;" - "\n"; - - stageBuiltins[EShLangVertex] .append(subgroupDecls); - stageBuiltins[EShLangTessControl] .append(subgroupDecls); - stageBuiltins[EShLangTessEvaluation].append(subgroupDecls); - stageBuiltins[EShLangGeometry] .append(subgroupDecls); - stageBuiltins[EShLangCompute] .append(subgroupDecls); - stageBuiltins[EShLangCompute] .append(computeSubgroupDecls); - stageBuiltins[EShLangFragment] .append(fragmentSubgroupDecls); - stageBuiltins[EShLangMeshNV] .append(subgroupDecls); - stageBuiltins[EShLangMeshNV] .append(computeSubgroupDecls); - stageBuiltins[EShLangTaskNV] .append(subgroupDecls); - stageBuiltins[EShLangTaskNV] .append(computeSubgroupDecls); - stageBuiltins[EShLangRayGen] .append(rtSubgroupDecls); - stageBuiltins[EShLangIntersect] .append(rtSubgroupDecls); - // No volatile qualifier on these builtins in any-hit - stageBuiltins[EShLangAnyHit] .append(subgroupDecls); - stageBuiltins[EShLangClosestHit] .append(rtSubgroupDecls); - stageBuiltins[EShLangMiss] .append(rtSubgroupDecls); - stageBuiltins[EShLangCallable] .append(rtSubgroupDecls); - } - - // GL_NV_ray_tracing/GL_EXT_ray_tracing - if (profile != EEsProfile && version >= 460) { - - const char *constRayFlags = - "const uint gl_RayFlagsNoneNV = 0U;" - "const uint gl_RayFlagsNoneEXT = 0U;" - "const uint gl_RayFlagsOpaqueNV = 1U;" - "const uint gl_RayFlagsOpaqueEXT = 1U;" - "const uint gl_RayFlagsNoOpaqueNV = 2U;" - "const uint gl_RayFlagsNoOpaqueEXT = 2U;" - "const uint gl_RayFlagsTerminateOnFirstHitNV = 4U;" - "const uint gl_RayFlagsTerminateOnFirstHitEXT = 4U;" - "const uint gl_RayFlagsSkipClosestHitShaderNV = 8U;" - "const uint gl_RayFlagsSkipClosestHitShaderEXT = 8U;" - "const uint gl_RayFlagsCullBackFacingTrianglesNV = 16U;" - "const uint gl_RayFlagsCullBackFacingTrianglesEXT = 16U;" - "const uint gl_RayFlagsCullFrontFacingTrianglesNV = 32U;" - "const uint gl_RayFlagsCullFrontFacingTrianglesEXT = 32U;" - "const uint gl_RayFlagsCullOpaqueNV = 64U;" - "const uint gl_RayFlagsCullOpaqueEXT = 64U;" - "const uint gl_RayFlagsCullNoOpaqueNV = 128U;" - "const uint gl_RayFlagsCullNoOpaqueEXT = 128U;" - "const uint gl_RayFlagsSkipTrianglesEXT = 256U;" - "const uint gl_RayFlagsSkipAABBEXT = 512U;" - "const uint gl_HitKindFrontFacingTriangleEXT = 254U;" - "const uint gl_HitKindBackFacingTriangleEXT = 255U;" - "\n"; - - const char *constRayQueryIntersection = - "const uint gl_RayQueryCandidateIntersectionEXT = 0U;" - "const uint gl_RayQueryCommittedIntersectionEXT = 1U;" - "const uint gl_RayQueryCommittedIntersectionNoneEXT = 0U;" - "const uint gl_RayQueryCommittedIntersectionTriangleEXT = 1U;" - "const uint gl_RayQueryCommittedIntersectionGeneratedEXT = 2U;" - "const uint gl_RayQueryCandidateIntersectionTriangleEXT = 0U;" - "const uint gl_RayQueryCandidateIntersectionAABBEXT = 1U;" - "\n"; - - const char *rayGenDecls = - "in uvec3 gl_LaunchIDNV;" - "in uvec3 gl_LaunchIDEXT;" - "in uvec3 gl_LaunchSizeNV;" - "in uvec3 gl_LaunchSizeEXT;" - "\n"; - const char *intersectDecls = - "in uvec3 gl_LaunchIDNV;" - "in uvec3 gl_LaunchIDEXT;" - "in uvec3 gl_LaunchSizeNV;" - "in uvec3 gl_LaunchSizeEXT;" - "in int gl_PrimitiveID;" - "in int gl_InstanceID;" - "in int gl_InstanceCustomIndexNV;" - "in int gl_InstanceCustomIndexEXT;" - "in int gl_GeometryIndexEXT;" - "in vec3 gl_WorldRayOriginNV;" - "in vec3 gl_WorldRayOriginEXT;" - "in vec3 gl_WorldRayDirectionNV;" - "in vec3 gl_WorldRayDirectionEXT;" - "in vec3 gl_ObjectRayOriginNV;" - "in vec3 gl_ObjectRayOriginEXT;" - "in vec3 gl_ObjectRayDirectionNV;" - "in vec3 gl_ObjectRayDirectionEXT;" - "in float gl_RayTminNV;" - "in float gl_RayTminEXT;" - "in float gl_RayTmaxNV;" - "in volatile float gl_RayTmaxEXT;" - "in mat4x3 gl_ObjectToWorldNV;" - "in mat4x3 gl_ObjectToWorldEXT;" - "in mat3x4 gl_ObjectToWorld3x4EXT;" - "in mat4x3 gl_WorldToObjectNV;" - "in mat4x3 gl_WorldToObjectEXT;" - "in mat3x4 gl_WorldToObject3x4EXT;" - "in uint gl_IncomingRayFlagsNV;" - "in uint gl_IncomingRayFlagsEXT;" - "in float gl_CurrentRayTimeNV;" - "\n"; - const char *hitDecls = - "in uvec3 gl_LaunchIDNV;" - "in uvec3 gl_LaunchIDEXT;" - "in uvec3 gl_LaunchSizeNV;" - "in uvec3 gl_LaunchSizeEXT;" - "in int gl_PrimitiveID;" - "in int gl_InstanceID;" - "in int gl_InstanceCustomIndexNV;" - "in int gl_InstanceCustomIndexEXT;" - "in int gl_GeometryIndexEXT;" - "in vec3 gl_WorldRayOriginNV;" - "in vec3 gl_WorldRayOriginEXT;" - "in vec3 gl_WorldRayDirectionNV;" - "in vec3 gl_WorldRayDirectionEXT;" - "in vec3 gl_ObjectRayOriginNV;" - "in vec3 gl_ObjectRayOriginEXT;" - "in vec3 gl_ObjectRayDirectionNV;" - "in vec3 gl_ObjectRayDirectionEXT;" - "in float gl_RayTminNV;" - "in float gl_RayTminEXT;" - "in float gl_RayTmaxNV;" - "in float gl_RayTmaxEXT;" - "in float gl_HitTNV;" - "in float gl_HitTEXT;" - "in uint gl_HitKindNV;" - "in uint gl_HitKindEXT;" - "in mat4x3 gl_ObjectToWorldNV;" - "in mat4x3 gl_ObjectToWorldEXT;" - "in mat3x4 gl_ObjectToWorld3x4EXT;" - "in mat4x3 gl_WorldToObjectNV;" - "in mat4x3 gl_WorldToObjectEXT;" - "in mat3x4 gl_WorldToObject3x4EXT;" - "in uint gl_IncomingRayFlagsNV;" - "in uint gl_IncomingRayFlagsEXT;" - "in float gl_CurrentRayTimeNV;" - "\n"; - const char *missDecls = - "in uvec3 gl_LaunchIDNV;" - "in uvec3 gl_LaunchIDEXT;" - "in uvec3 gl_LaunchSizeNV;" - "in uvec3 gl_LaunchSizeEXT;" - "in vec3 gl_WorldRayOriginNV;" - "in vec3 gl_WorldRayOriginEXT;" - "in vec3 gl_WorldRayDirectionNV;" - "in vec3 gl_WorldRayDirectionEXT;" - "in vec3 gl_ObjectRayOriginNV;" - "in vec3 gl_ObjectRayDirectionNV;" - "in float gl_RayTminNV;" - "in float gl_RayTminEXT;" - "in float gl_RayTmaxNV;" - "in float gl_RayTmaxEXT;" - "in uint gl_IncomingRayFlagsNV;" - "in uint gl_IncomingRayFlagsEXT;" - "in float gl_CurrentRayTimeNV;" - "\n"; - - const char *callableDecls = - "in uvec3 gl_LaunchIDNV;" - "in uvec3 gl_LaunchIDEXT;" - "in uvec3 gl_LaunchSizeNV;" - "in uvec3 gl_LaunchSizeEXT;" - "\n"; - - - commonBuiltins.append(constRayQueryIntersection); - commonBuiltins.append(constRayFlags); - - stageBuiltins[EShLangRayGen].append(rayGenDecls); - stageBuiltins[EShLangIntersect].append(intersectDecls); - stageBuiltins[EShLangAnyHit].append(hitDecls); - stageBuiltins[EShLangClosestHit].append(hitDecls); - stageBuiltins[EShLangMiss].append(missDecls); - stageBuiltins[EShLangCallable].append(callableDecls); - - } - - if ((profile != EEsProfile && version >= 140)) { - const char *deviceIndex = - "in highp int gl_DeviceIndex;" // GL_EXT_device_group - "\n"; - - stageBuiltins[EShLangRayGen].append(deviceIndex); - stageBuiltins[EShLangIntersect].append(deviceIndex); - stageBuiltins[EShLangAnyHit].append(deviceIndex); - stageBuiltins[EShLangClosestHit].append(deviceIndex); - stageBuiltins[EShLangMiss].append(deviceIndex); - } - - if ((profile != EEsProfile && version >= 420) || - (profile == EEsProfile && version >= 310)) { - commonBuiltins.append("const int gl_ScopeDevice = 1;\n"); - commonBuiltins.append("const int gl_ScopeWorkgroup = 2;\n"); - commonBuiltins.append("const int gl_ScopeSubgroup = 3;\n"); - commonBuiltins.append("const int gl_ScopeInvocation = 4;\n"); - commonBuiltins.append("const int gl_ScopeQueueFamily = 5;\n"); - commonBuiltins.append("const int gl_ScopeShaderCallEXT = 6;\n"); - - commonBuiltins.append("const int gl_SemanticsRelaxed = 0x0;\n"); - commonBuiltins.append("const int gl_SemanticsAcquire = 0x2;\n"); - commonBuiltins.append("const int gl_SemanticsRelease = 0x4;\n"); - commonBuiltins.append("const int gl_SemanticsAcquireRelease = 0x8;\n"); - commonBuiltins.append("const int gl_SemanticsMakeAvailable = 0x2000;\n"); - commonBuiltins.append("const int gl_SemanticsMakeVisible = 0x4000;\n"); - commonBuiltins.append("const int gl_SemanticsVolatile = 0x8000;\n"); - - commonBuiltins.append("const int gl_StorageSemanticsNone = 0x0;\n"); - commonBuiltins.append("const int gl_StorageSemanticsBuffer = 0x40;\n"); - commonBuiltins.append("const int gl_StorageSemanticsShared = 0x100;\n"); - commonBuiltins.append("const int gl_StorageSemanticsImage = 0x800;\n"); - commonBuiltins.append("const int gl_StorageSemanticsOutput = 0x1000;\n"); - } - - // Adding these to common built-ins triggers an assert due to a memory corruption in related code when testing - // So instead add to each stage individually, avoiding the GLSLang bug - if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 310)) { - for (int stage=EShLangVertex; stage(stage)].append("const highp int gl_ShadingRateFlag2VerticalPixelsEXT = 1;\n"); - stageBuiltins[static_cast(stage)].append("const highp int gl_ShadingRateFlag4VerticalPixelsEXT = 2;\n"); - stageBuiltins[static_cast(stage)].append("const highp int gl_ShadingRateFlag2HorizontalPixelsEXT = 4;\n"); - stageBuiltins[static_cast(stage)].append("const highp int gl_ShadingRateFlag4HorizontalPixelsEXT = 8;\n"); - } - } - - // GL_EXT_shader_image_int64 - if ((profile != EEsProfile && version >= 420) || - (profile == EEsProfile && version >= 310)) { - - const TBasicType bTypes[] = { EbtInt64, EbtUint64 }; - for (int ms = 0; ms <= 1; ++ms) { // loop over "bool" multisample or not - for (int arrayed = 0; arrayed <= 1; ++arrayed) { // loop over "bool" arrayed or not - for (int dim = Esd1D; dim < EsdSubpass; ++dim) { // 1D, ..., buffer - if ((dim == Esd1D || dim == EsdRect) && profile == EEsProfile) - continue; - - if ((dim == Esd3D || dim == EsdRect || dim == EsdBuffer) && arrayed) - continue; - - if (dim != Esd2D && ms) - continue; - - // Loop over the bTypes - for (size_t bType = 0; bType < sizeof(bTypes)/sizeof(TBasicType); ++bType) { - // - // Now, make all the function prototypes for the type we just built... - // - TSampler sampler; - - sampler.setImage(bTypes[bType], (TSamplerDim)dim, arrayed ? true : false, - false, - ms ? true : false); - - TString typeName = sampler.getString(); - - addQueryFunctions(sampler, typeName, version, profile); - addImageFunctions(sampler, typeName, version, profile); - } - } - } - } - } -#endif // !GLSLANG_ANGLE - -#endif // !GLSLANG_WEB - - // 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, -// when adding context-independent built-in functions. -// -void TBuiltIns::add2ndGenerationSamplingImaging(int version, EProfile profile, const SpvVersion& spvVersion) -{ - // - // In this function proper, enumerate the types, then calls the next set of functions - // to enumerate all the uses for that type. - // - - // enumerate all the types - const TBasicType bTypes[] = { EbtFloat, EbtInt, EbtUint, -#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) - EbtFloat16 -#endif - }; -#ifdef GLSLANG_WEB - bool skipBuffer = true; - bool skipCubeArrayed = true; - const int image = 0; -#else - bool skipBuffer = (profile == EEsProfile && version < 310) || (profile != EEsProfile && version < 140); - bool skipCubeArrayed = (profile == EEsProfile && version < 310) || (profile != EEsProfile && version < 130); - for (int image = 0; image <= 1; ++image) // loop over "bool" image vs sampler -#endif - { - for (int shadow = 0; shadow <= 1; ++shadow) { // loop over "bool" shadow or not -#ifdef GLSLANG_WEB - const int ms = 0; -#else - for (int ms = 0; ms <= 1; ++ms) // loop over "bool" multisample or not -#endif - { - if ((ms || image) && shadow) - continue; - if (ms && profile != EEsProfile && version < 150) - continue; - if (ms && image && profile == EEsProfile) - continue; - if (ms && profile == EEsProfile && version < 310) - continue; - - for (int arrayed = 0; arrayed <= 1; ++arrayed) { // loop over "bool" arrayed or not -#ifdef GLSLANG_WEB - for (int dim = Esd2D; dim <= EsdCube; ++dim) { // 2D, 3D, and Cube -#else -#if defined(GLSLANG_ANGLE) - for (int dim = Esd2D; dim < EsdNumDims; ++dim) { // 2D, ..., buffer, subpass -#else - for (int dim = Esd1D; dim < EsdNumDims; ++dim) { // 1D, ..., buffer, subpass -#endif - if (dim == EsdSubpass && spvVersion.vulkan == 0) - continue; - if (dim == EsdSubpass && (image || shadow || arrayed)) - continue; - if ((dim == Esd1D || dim == EsdRect) && profile == EEsProfile) - continue; - if (dim == EsdSubpass && spvVersion.vulkan == 0) - continue; - if (dim == EsdSubpass && (image || shadow || arrayed)) - continue; - if ((dim == Esd1D || dim == EsdRect) && profile == EEsProfile) - continue; - if (dim != Esd2D && dim != EsdSubpass && ms) - continue; - if (dim == EsdBuffer && skipBuffer) - continue; - if (dim == EsdBuffer && (shadow || arrayed || ms)) - continue; - if (ms && arrayed && profile == EEsProfile && version < 310) - continue; -#endif - if (dim == Esd3D && shadow) - continue; - if (dim == EsdCube && arrayed && skipCubeArrayed) - continue; - if ((dim == Esd3D || dim == EsdRect) && arrayed) - continue; - - // Loop over the bTypes - for (size_t bType = 0; bType < sizeof(bTypes)/sizeof(TBasicType); ++bType) { -#ifndef GLSLANG_WEB - if (bTypes[bType] == EbtFloat16 && (profile == EEsProfile || version < 450)) - continue; - if (dim == EsdRect && version < 140 && bType > 0) - continue; -#endif - if (shadow && (bTypes[bType] == EbtInt || bTypes[bType] == EbtUint)) - continue; - // - // Now, make all the function prototypes for the type we just built... - // - TSampler sampler; -#ifndef GLSLANG_WEB - if (dim == EsdSubpass) { - sampler.setSubpass(bTypes[bType], ms ? true : false); - } else -#endif - if (image) { - sampler.setImage(bTypes[bType], (TSamplerDim)dim, arrayed ? true : false, - shadow ? true : false, - ms ? true : false); - } else { - sampler.set(bTypes[bType], (TSamplerDim)dim, arrayed ? true : false, - shadow ? true : false, - ms ? true : false); - } - - TString typeName = sampler.getString(); - -#ifndef GLSLANG_WEB - if (dim == EsdSubpass) { - addSubpassSampling(sampler, typeName, version, profile); - continue; - } -#endif - - addQueryFunctions(sampler, typeName, version, profile); - - if (image) - addImageFunctions(sampler, typeName, version, profile); - else { - addSamplingFunctions(sampler, typeName, version, profile); -#ifndef GLSLANG_WEB - addGatherFunctions(sampler, typeName, version, profile); - if (spvVersion.vulkan > 0 && sampler.isCombined() && !sampler.shadow) { - // Base Vulkan allows texelFetch() for - // textureBuffer (i.e. without sampler). - // - // GL_EXT_samplerless_texture_functions - // allows texelFetch() and query functions - // (other than textureQueryLod()) for all - // texture types. - sampler.setTexture(sampler.type, sampler.dim, sampler.arrayed, sampler.shadow, - sampler.ms); - TString textureTypeName = sampler.getString(); - addSamplingFunctions(sampler, textureTypeName, version, profile); - addQueryFunctions(sampler, textureTypeName, version, profile); - } -#endif - } - } - } - } - } - } - } - - // - // sparseTexelsResidentARB() - // - if (profile != EEsProfile && version >= 450) { - commonBuiltins.append("bool sparseTexelsResidentARB(int code);\n"); - } -} - -// -// 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) -{ - // - // textureSize() and imageSize() - // - - int sizeDims = dimMap[sampler.dim] + (sampler.arrayed ? 1 : 0) - (sampler.dim == EsdCube ? 1 : 0); - -#ifdef GLSLANG_WEB - commonBuiltins.append("highp "); - commonBuiltins.append("ivec"); - commonBuiltins.append(postfixes[sizeDims]); - commonBuiltins.append(" textureSize("); - commonBuiltins.append(typeName); - commonBuiltins.append(",int);\n"); - return; -#endif - - if (sampler.isImage() && ((profile == EEsProfile && version < 310) || (profile != EEsProfile && version < 420))) - return; - - if (profile == EEsProfile) - commonBuiltins.append("highp "); - if (sizeDims == 1) - commonBuiltins.append("int"); - else { - commonBuiltins.append("ivec"); - commonBuiltins.append(postfixes[sizeDims]); - } - if (sampler.isImage()) - commonBuiltins.append(" imageSize(readonly writeonly volatile coherent "); - else - commonBuiltins.append(" textureSize("); - commonBuiltins.append(typeName); - if (! sampler.isImage() && ! sampler.isRect() && ! sampler.isBuffer() && ! sampler.isMultiSample()) - commonBuiltins.append(",int);\n"); - else - commonBuiltins.append(");\n"); - - // - // textureSamples() and imageSamples() - // - - // GL_ARB_shader_texture_image_samples - // TODO: spec issue? there are no memory qualifiers; how to query a writeonly/readonly image, etc? - if (profile != EEsProfile && version >= 430 && sampler.isMultiSample()) { - commonBuiltins.append("int "); - if (sampler.isImage()) - commonBuiltins.append("imageSamples(readonly writeonly volatile coherent "); - else - commonBuiltins.append("textureSamples("); - commonBuiltins.append(typeName); - commonBuiltins.append(");\n"); - } - - // - // textureQueryLod(), fragment stage only - // Also enabled with extension GL_ARB_texture_query_lod - // Extension GL_ARB_texture_query_lod says that textureQueryLOD() also exist at extension. - - if (profile != EEsProfile && version >= 150 && sampler.isCombined() && sampler.dim != EsdRect && - ! sampler.isMultiSample() && ! sampler.isBuffer()) { - - const TString funcName[2] = {"vec2 textureQueryLod(", "vec2 textureQueryLOD("}; - - for (int i = 0; i < 2; ++i){ - for (int f16TexAddr = 0; f16TexAddr < 2; ++f16TexAddr) { - if (f16TexAddr && sampler.type != EbtFloat16) - continue; - stageBuiltins[EShLangFragment].append(funcName[i]); - stageBuiltins[EShLangFragment].append(typeName); - if (dimMap[sampler.dim] == 1) - if (f16TexAddr) - stageBuiltins[EShLangFragment].append(", float16_t"); - else - stageBuiltins[EShLangFragment].append(", float"); - else { - if (f16TexAddr) - stageBuiltins[EShLangFragment].append(", f16vec"); - else - stageBuiltins[EShLangFragment].append(", vec"); - stageBuiltins[EShLangFragment].append(postfixes[dimMap[sampler.dim]]); - } - stageBuiltins[EShLangFragment].append(");\n"); - } - - stageBuiltins[EShLangCompute].append(funcName[i]); - stageBuiltins[EShLangCompute].append(typeName); - if (dimMap[sampler.dim] == 1) - stageBuiltins[EShLangCompute].append(", float"); - else { - stageBuiltins[EShLangCompute].append(", vec"); - stageBuiltins[EShLangCompute].append(postfixes[dimMap[sampler.dim]]); - } - stageBuiltins[EShLangCompute].append(");\n"); - } - } - - // - // textureQueryLevels() - // - - if (profile != EEsProfile && version >= 430 && ! sampler.isImage() && sampler.dim != EsdRect && - ! sampler.isMultiSample() && ! sampler.isBuffer()) { - commonBuiltins.append("int textureQueryLevels("); - commonBuiltins.append(typeName); - commonBuiltins.append(");\n"); - } -} - -// -// 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) -{ - int dims = dimMap[sampler.dim]; - // most things with an array add a dimension, except for cubemaps - if (sampler.arrayed && sampler.dim != EsdCube) - ++dims; - - TString imageParams = typeName; - if (dims == 1) - imageParams.append(", int"); - else { - imageParams.append(", ivec"); - imageParams.append(postfixes[dims]); - } - if (sampler.isMultiSample()) - imageParams.append(", int"); - - if (profile == EEsProfile) - commonBuiltins.append("highp "); - commonBuiltins.append(prefixes[sampler.type]); - commonBuiltins.append("vec4 imageLoad(readonly volatile coherent "); - commonBuiltins.append(imageParams); - commonBuiltins.append(");\n"); - - commonBuiltins.append("void imageStore(writeonly volatile coherent "); - commonBuiltins.append(imageParams); - commonBuiltins.append(", "); - commonBuiltins.append(prefixes[sampler.type]); - commonBuiltins.append("vec4);\n"); - - if (! sampler.is1D() && ! sampler.isBuffer() && profile != EEsProfile && version >= 450) { - commonBuiltins.append("int sparseImageLoadARB(readonly volatile coherent "); - commonBuiltins.append(imageParams); - commonBuiltins.append(", out "); - commonBuiltins.append(prefixes[sampler.type]); - commonBuiltins.append("vec4"); - commonBuiltins.append(");\n"); - } - - if ( profile != EEsProfile || - (profile == EEsProfile && version >= 310)) { - if (sampler.type == EbtInt || sampler.type == EbtUint || sampler.type == EbtInt64 || sampler.type == EbtUint64 ) { - - const char* dataType; - switch (sampler.type) { - case(EbtInt): dataType = "highp int"; break; - case(EbtUint): dataType = "highp uint"; break; - case(EbtInt64): dataType = "highp int64_t"; break; - case(EbtUint64): dataType = "highp uint64_t"; break; - default: dataType = ""; - } - - const int numBuiltins = 7; - - static const char* atomicFunc[numBuiltins] = { - " imageAtomicAdd(volatile coherent ", - " imageAtomicMin(volatile coherent ", - " imageAtomicMax(volatile coherent ", - " imageAtomicAnd(volatile coherent ", - " imageAtomicOr(volatile coherent ", - " imageAtomicXor(volatile coherent ", - " imageAtomicExchange(volatile coherent " - }; - - // Loop twice to add prototypes with/without scope/semantics - for (int j = 0; j < 2; ++j) { - for (size_t i = 0; i < numBuiltins; ++i) { - commonBuiltins.append(dataType); - commonBuiltins.append(atomicFunc[i]); - commonBuiltins.append(imageParams); - commonBuiltins.append(", "); - commonBuiltins.append(dataType); - if (j == 1) { - commonBuiltins.append(", int, int, int"); - } - commonBuiltins.append(");\n"); - } - - commonBuiltins.append(dataType); - commonBuiltins.append(" imageAtomicCompSwap(volatile coherent "); - commonBuiltins.append(imageParams); - commonBuiltins.append(", "); - commonBuiltins.append(dataType); - commonBuiltins.append(", "); - commonBuiltins.append(dataType); - if (j == 1) { - commonBuiltins.append(", int, int, int, int, int"); - } - commonBuiltins.append(");\n"); - } - - commonBuiltins.append(dataType); - commonBuiltins.append(" imageAtomicLoad(volatile coherent "); - commonBuiltins.append(imageParams); - commonBuiltins.append(", int, int, int);\n"); - - commonBuiltins.append("void imageAtomicStore(volatile coherent "); - commonBuiltins.append(imageParams); - commonBuiltins.append(", "); - commonBuiltins.append(dataType); - commonBuiltins.append(", int, int, int);\n"); - - } else { - // not int or uint - // GL_ARB_ES3_1_compatibility - // TODO: spec issue: are there restrictions on the kind of layout() that can be used? what about dropping memory qualifiers? - if (profile == EEsProfile && version >= 310) { - commonBuiltins.append("float imageAtomicExchange(volatile coherent "); - commonBuiltins.append(imageParams); - commonBuiltins.append(", float);\n"); - } - if (profile != EEsProfile && version >= 450) { - commonBuiltins.append("float imageAtomicAdd(volatile coherent "); - commonBuiltins.append(imageParams); - commonBuiltins.append(", float);\n"); - - commonBuiltins.append("float imageAtomicAdd(volatile coherent "); - commonBuiltins.append(imageParams); - commonBuiltins.append(", float"); - commonBuiltins.append(", int, int, int);\n"); - - commonBuiltins.append("float imageAtomicExchange(volatile coherent "); - commonBuiltins.append(imageParams); - commonBuiltins.append(", float);\n"); - - commonBuiltins.append("float imageAtomicExchange(volatile coherent "); - commonBuiltins.append(imageParams); - commonBuiltins.append(", float"); - commonBuiltins.append(", int, int, int);\n"); - - commonBuiltins.append("float imageAtomicLoad(readonly volatile coherent "); - commonBuiltins.append(imageParams); - commonBuiltins.append(", int, int, int);\n"); - - commonBuiltins.append("void imageAtomicStore(writeonly volatile coherent "); - commonBuiltins.append(imageParams); - commonBuiltins.append(", float"); - commonBuiltins.append(", int, int, int);\n"); - - commonBuiltins.append("float imageAtomicMin(volatile coherent "); - commonBuiltins.append(imageParams); - commonBuiltins.append(", float);\n"); - - commonBuiltins.append("float imageAtomicMin(volatile coherent "); - commonBuiltins.append(imageParams); - commonBuiltins.append(", float"); - commonBuiltins.append(", int, int, int);\n"); - - commonBuiltins.append("float imageAtomicMax(volatile coherent "); - commonBuiltins.append(imageParams); - commonBuiltins.append(", float);\n"); - - commonBuiltins.append("float imageAtomicMax(volatile coherent "); - commonBuiltins.append(imageParams); - commonBuiltins.append(", float"); - commonBuiltins.append(", int, int, int);\n"); - } - } - } - - if (sampler.dim == EsdRect || sampler.dim == EsdBuffer || sampler.shadow || sampler.isMultiSample()) - 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.is1D()) { - commonBuiltins.append("int sparseImageLoadLodAMD(readonly volatile coherent "); - commonBuiltins.append(imageLodParams); - commonBuiltins.append(", out "); - commonBuiltins.append(prefixes[sampler.type]); - commonBuiltins.append("vec4"); - commonBuiltins.append(");\n"); - } -} - -// -// Helper function for initialize(), -// when adding context-independent built-in functions. -// -// Add all the subpass access functions for the given type. -// -void TBuiltIns::addSubpassSampling(TSampler sampler, const TString& typeName, int /*version*/, EProfile /*profile*/) -{ - stageBuiltins[EShLangFragment].append(prefixes[sampler.type]); - stageBuiltins[EShLangFragment].append("vec4 subpassLoad"); - stageBuiltins[EShLangFragment].append("("); - stageBuiltins[EShLangFragment].append(typeName.c_str()); - if (sampler.isMultiSample()) - stageBuiltins[EShLangFragment].append(", int"); - stageBuiltins[EShLangFragment].append(");\n"); -} - -// -// 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) -{ -#ifdef GLSLANG_WEB - profile = EEsProfile; - version = 310; -#elif defined(GLSLANG_ANGLE) - profile = ECoreProfile; - version = 450; -#endif - - // - // texturing - // - for (int proj = 0; proj <= 1; ++proj) { // loop over "bool" projective or not - - if (proj && (sampler.dim == EsdCube || sampler.isBuffer() || sampler.arrayed || sampler.isMultiSample() - || !sampler.isCombined())) - continue; - - for (int lod = 0; lod <= 1; ++lod) { - - if (lod && (sampler.isBuffer() || sampler.isRect() || sampler.isMultiSample() || !sampler.isCombined())) - continue; - if (lod && sampler.dim == Esd2D && sampler.arrayed && sampler.shadow) - continue; - if (lod && sampler.dim == EsdCube && sampler.shadow) - continue; - - for (int bias = 0; bias <= 1; ++bias) { - - if (bias && (lod || sampler.isMultiSample() || !sampler.isCombined())) - continue; - if (bias && (sampler.dim == Esd2D || sampler.dim == EsdCube) && sampler.shadow && sampler.arrayed) - continue; - if (bias && (sampler.isRect() || sampler.isBuffer())) - continue; - - for (int offset = 0; offset <= 1; ++offset) { // loop over "bool" offset or not - - if (proj + offset + bias + lod > 3) - continue; - if (offset && (sampler.dim == EsdCube || sampler.isBuffer() || sampler.isMultiSample())) - continue; - - for (int fetch = 0; fetch <= 1; ++fetch) { // loop over "bool" fetch or not - - if (proj + offset + fetch + bias + lod > 3) - continue; - if (fetch && (lod || bias)) - continue; - if (fetch && (sampler.shadow || sampler.dim == EsdCube)) - continue; - if (fetch == 0 && (sampler.isMultiSample() || sampler.isBuffer() - || !sampler.isCombined())) - continue; - - for (int grad = 0; grad <= 1; ++grad) { // loop over "bool" grad or not - - if (grad && (lod || bias || sampler.isMultiSample() || !sampler.isCombined())) - continue; - if (grad && sampler.isBuffer()) - continue; - if (proj + offset + fetch + grad + bias + lod > 3) - continue; - - for (int extraProj = 0; extraProj <= 1; ++extraProj) { - bool compare = false; - int totalDims = dimMap[sampler.dim] + (sampler.arrayed ? 1 : 0); - // skip dummy unused second component for 1D non-array shadows - if (sampler.shadow && totalDims < 2) - totalDims = 2; - totalDims += (sampler.shadow ? 1 : 0) + proj; - if (totalDims > 4 && sampler.shadow) { - compare = true; - totalDims = 4; - } - assert(totalDims <= 4); - - if (extraProj && ! proj) - continue; - if (extraProj && (sampler.dim == Esd3D || sampler.shadow || !sampler.isCombined())) - continue; - - // loop over 16-bit floating-point texel addressing -#if defined(GLSLANG_WEB) || defined(GLSLANG_ANGLE) - const int f16TexAddr = 0; -#else - for (int f16TexAddr = 0; f16TexAddr <= 1; ++f16TexAddr) -#endif - { - if (f16TexAddr && sampler.type != EbtFloat16) - continue; - if (f16TexAddr && sampler.shadow && ! compare) { - compare = true; // compare argument is always present - totalDims--; - } - // loop over "bool" lod clamp -#if defined(GLSLANG_WEB) || defined(GLSLANG_ANGLE) - const int lodClamp = 0; -#else - for (int lodClamp = 0; lodClamp <= 1 ;++lodClamp) -#endif - { - if (lodClamp && (profile == EEsProfile || version < 450)) - continue; - if (lodClamp && (proj || lod || fetch)) - continue; - - // loop over "bool" sparse or not -#if defined(GLSLANG_WEB) || defined(GLSLANG_ANGLE) - const int sparse = 0; -#else - for (int sparse = 0; sparse <= 1; ++sparse) -#endif - { - if (sparse && (profile == EEsProfile || version < 450)) - continue; - // Sparse sampling is not for 1D/1D array texture, buffer texture, and - // projective texture - if (sparse && (sampler.is1D() || sampler.isBuffer() || proj)) - continue; - - TString s; - - // return type - if (sparse) - s.append("int "); - else { - if (sampler.shadow) - if (sampler.type == EbtFloat16) - s.append("float16_t "); - else - 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 != 0 || sparse) - s.append("ARB"); - s.append("("); - - // sampler type - s.append(typeName); - // 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]); - } - } - // 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.isBuffer() && - !sampler.isRect() && !sampler.isMultiSample()) - || (sampler.isMultiSample() && fetch)) - s.append(",int"); - // 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]]); - } - } - // offset - if (offset) { - if (dimMap[sampler.dim] == 1) - s.append(",int"); - else { - s.append(",ivec"); - s.append(postfixes[dimMap[sampler.dim]]); - } - } - - // lod clamp - if (lodClamp) { - if (f16TexAddr) - s.append(",float16_t"); - else - s.append(",float"); - } - // texel out (for sparse texture) - if (sparse) { - s.append(",out "); - if (sampler.shadow) - if (sampler.type == EbtFloat16) - s.append("float16_t"); - else - s.append("float"); - else { - s.append(prefixes[sampler.type]); - s.append("vec4"); - } - } - // optional bias - if (bias) { - if (f16TexAddr) - s.append(",float16_t"); - else - s.append(",float"); - } - s.append(");\n"); - - // Add to the per-language set of built-ins - if (!grad && (bias || lodClamp != 0)) { - stageBuiltins[EShLangFragment].append(s); - stageBuiltins[EShLangCompute].append(s); - } else - commonBuiltins.append(s); - - } - } - } - } - } - } - } - } - } - } -} - -// -// 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) -{ -#ifdef GLSLANG_WEB - profile = EEsProfile; - version = 310; -#elif defined(GLSLANG_ANGLE) - profile = ECoreProfile; - version = 450; -#endif - - switch (sampler.dim) { - case Esd2D: - case EsdRect: - case EsdCube: - break; - default: - return; - } - - if (sampler.isMultiSample()) - return; - - if (version < 140 && sampler.dim == EsdRect && sampler.type != EbtFloat) - return; - - 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 && 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 - if (f16TexAddr) - s.append(",f16vec"); - else - 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); - } - } - } - } - - 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); - } - } - } - } - } - } -} - -// -// Add context-dependent built-in functions and variables that are present -// for the given version and profile. All the results are put into just the -// commonBuiltins, because it is called for just a specific stage. So, -// add stage-specific entries to the commonBuiltins, and only if that stage -// was requested. -// -void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language) -{ -#ifdef GLSLANG_WEB - version = 310; - profile = EEsProfile; -#elif defined(GLSLANG_ANGLE) - version = 450; - profile = ECoreProfile; -#endif - - // - // Initialize the context-dependent (resource-dependent) built-in strings for parsing. - // - - //============================================================================ - // - // Standard Uniforms - // - //============================================================================ - - TString& s = commonBuiltins; - const int maxSize = 200; - char builtInConstant[maxSize]; - - // - // Build string of implementation dependent constants. - // - - if (profile == EEsProfile) { - snprintf(builtInConstant, maxSize, "const mediump int gl_MaxVertexAttribs = %d;", resources.maxVertexAttribs); - s.append(builtInConstant); - - snprintf(builtInConstant, maxSize, "const mediump int gl_MaxVertexUniformVectors = %d;", resources.maxVertexUniformVectors); - s.append(builtInConstant); - - snprintf(builtInConstant, maxSize, "const mediump int gl_MaxVertexTextureImageUnits = %d;", resources.maxVertexTextureImageUnits); - s.append(builtInConstant); - - snprintf(builtInConstant, maxSize, "const mediump int gl_MaxCombinedTextureImageUnits = %d;", resources.maxCombinedTextureImageUnits); - s.append(builtInConstant); - - snprintf(builtInConstant, maxSize, "const mediump int gl_MaxTextureImageUnits = %d;", resources.maxTextureImageUnits); - s.append(builtInConstant); - - snprintf(builtInConstant, maxSize, "const mediump int gl_MaxFragmentUniformVectors = %d;", resources.maxFragmentUniformVectors); - s.append(builtInConstant); - - snprintf(builtInConstant, maxSize, "const mediump int gl_MaxDrawBuffers = %d;", resources.maxDrawBuffers); - s.append(builtInConstant); - - if (version == 100) { - snprintf(builtInConstant, maxSize, "const mediump int gl_MaxVaryingVectors = %d;", resources.maxVaryingVectors); - s.append(builtInConstant); - } else { - snprintf(builtInConstant, maxSize, "const mediump int gl_MaxVertexOutputVectors = %d;", resources.maxVertexOutputVectors); - s.append(builtInConstant); - - snprintf(builtInConstant, maxSize, "const mediump int gl_MaxFragmentInputVectors = %d;", resources.maxFragmentInputVectors); - s.append(builtInConstant); - - snprintf(builtInConstant, maxSize, "const mediump int gl_MinProgramTexelOffset = %d;", resources.minProgramTexelOffset); - s.append(builtInConstant); - - snprintf(builtInConstant, maxSize, "const mediump int gl_MaxProgramTexelOffset = %d;", resources.maxProgramTexelOffset); - s.append(builtInConstant); - } - -#ifndef GLSLANG_WEB - if (version >= 310) { - // geometry - - snprintf(builtInConstant, maxSize, "const int gl_MaxGeometryInputComponents = %d;", resources.maxGeometryInputComponents); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxGeometryOutputComponents = %d;", resources.maxGeometryOutputComponents); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxGeometryImageUniforms = %d;", resources.maxGeometryImageUniforms); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxGeometryTextureImageUnits = %d;", resources.maxGeometryTextureImageUnits); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxGeometryOutputVertices = %d;", resources.maxGeometryOutputVertices); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxGeometryTotalOutputComponents = %d;", resources.maxGeometryTotalOutputComponents); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxGeometryUniformComponents = %d;", resources.maxGeometryUniformComponents); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxGeometryAtomicCounters = %d;", resources.maxGeometryAtomicCounters); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxGeometryAtomicCounterBuffers = %d;", resources.maxGeometryAtomicCounterBuffers); - s.append(builtInConstant); - - // tessellation - - snprintf(builtInConstant, maxSize, "const int gl_MaxTessControlInputComponents = %d;", resources.maxTessControlInputComponents); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxTessControlOutputComponents = %d;", resources.maxTessControlOutputComponents); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxTessControlTextureImageUnits = %d;", resources.maxTessControlTextureImageUnits); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxTessControlUniformComponents = %d;", resources.maxTessControlUniformComponents); - 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); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxTessEvaluationTextureImageUnits = %d;", resources.maxTessEvaluationTextureImageUnits); - 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_MaxPatchVertices = %d;", resources.maxPatchVertices); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxTessGenLevel = %d;", resources.maxTessGenLevel); - s.append(builtInConstant); - - // this is here instead of with the others in initialize(version, profile) due to the dependence on gl_MaxPatchVertices - if (language == EShLangTessControl || language == EShLangTessEvaluation) { - s.append( - "in gl_PerVertex {" - "highp vec4 gl_Position;" - "highp float gl_PointSize;" - "highp vec4 gl_SecondaryPositionNV;" // GL_NV_stereo_view_rendering - "highp vec4 gl_PositionPerViewNV[];" // GL_NVX_multiview_per_view_attributes - "} gl_in[gl_MaxPatchVertices];" - "\n"); - } - } - - if (version >= 320) { - // tessellation - - snprintf(builtInConstant, maxSize, "const int gl_MaxTessControlImageUniforms = %d;", resources.maxTessControlImageUniforms); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxTessEvaluationImageUniforms = %d;", resources.maxTessEvaluationImageUniforms); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxTessControlAtomicCounters = %d;", resources.maxTessControlAtomicCounters); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxTessEvaluationAtomicCounters = %d;", resources.maxTessEvaluationAtomicCounters); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxTessControlAtomicCounterBuffers = %d;", resources.maxTessControlAtomicCounterBuffers); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxTessEvaluationAtomicCounterBuffers = %d;", resources.maxTessEvaluationAtomicCounterBuffers); - s.append(builtInConstant); - } - - if (version >= 100) { - // GL_EXT_blend_func_extended - snprintf(builtInConstant, maxSize, "const mediump int gl_MaxDualSourceDrawBuffersEXT = %d;", resources.maxDualSourceDrawBuffersEXT); - s.append(builtInConstant); - // this is here instead of with the others in initialize(version, profile) due to the dependence on gl_MaxDualSourceDrawBuffersEXT - if (language == EShLangFragment) { - s.append( - "mediump vec4 gl_SecondaryFragColorEXT;" - "mediump vec4 gl_SecondaryFragDataEXT[gl_MaxDualSourceDrawBuffersEXT];" - "\n"); - } - } - } else { - // non-ES profile - - if (version > 400) { - snprintf(builtInConstant, maxSize, "const int gl_MaxVertexUniformVectors = %d;", resources.maxVertexUniformVectors); - s.append(builtInConstant); - - snprintf(builtInConstant, maxSize, "const int gl_MaxFragmentUniformVectors = %d;", resources.maxFragmentUniformVectors); - s.append(builtInConstant); - - snprintf(builtInConstant, maxSize, "const int gl_MaxVaryingVectors = %d;", resources.maxVaryingVectors); - s.append(builtInConstant); - } - - snprintf(builtInConstant, maxSize, "const int gl_MaxVertexAttribs = %d;", resources.maxVertexAttribs); - s.append(builtInConstant); - - snprintf(builtInConstant, maxSize, "const int gl_MaxVertexTextureImageUnits = %d;", resources.maxVertexTextureImageUnits); - s.append(builtInConstant); - - snprintf(builtInConstant, maxSize, "const int gl_MaxCombinedTextureImageUnits = %d;", resources.maxCombinedTextureImageUnits); - s.append(builtInConstant); - - snprintf(builtInConstant, maxSize, "const int gl_MaxTextureImageUnits = %d;", resources.maxTextureImageUnits); - s.append(builtInConstant); - - snprintf(builtInConstant, maxSize, "const int gl_MaxDrawBuffers = %d;", resources.maxDrawBuffers); - s.append(builtInConstant); - - snprintf(builtInConstant, maxSize, "const int gl_MaxLights = %d;", resources.maxLights); - s.append(builtInConstant); - - snprintf(builtInConstant, maxSize, "const int gl_MaxClipPlanes = %d;", resources.maxClipPlanes); - s.append(builtInConstant); - - snprintf(builtInConstant, maxSize, "const int gl_MaxTextureUnits = %d;", resources.maxTextureUnits); - s.append(builtInConstant); - - snprintf(builtInConstant, maxSize, "const int gl_MaxTextureCoords = %d;", resources.maxTextureCoords); - s.append(builtInConstant); - - snprintf(builtInConstant, maxSize, "const int gl_MaxVertexUniformComponents = %d;", resources.maxVertexUniformComponents); - s.append(builtInConstant); - - // Moved from just being deprecated into compatibility profile only as of 4.20 - if (version < 420 || profile == ECompatibilityProfile) { - snprintf(builtInConstant, maxSize, "const int gl_MaxVaryingFloats = %d;", resources.maxVaryingFloats); - s.append(builtInConstant); - } - - snprintf(builtInConstant, maxSize, "const int gl_MaxFragmentUniformComponents = %d;", resources.maxFragmentUniformComponents); - s.append(builtInConstant); - - if (spvVersion.spv == 0 && IncludeLegacy(version, profile, spvVersion)) { - // - // OpenGL'uniform' state. Page numbers are in reference to version - // 1.4 of the OpenGL specification. - // - - // - // Matrix state. p. 31, 32, 37, 39, 40. - // - s.append("uniform mat4 gl_TextureMatrix[gl_MaxTextureCoords];" - - // - // Derived matrix state that provides inverse and transposed versions - // of the matrices above. - // - "uniform mat4 gl_TextureMatrixInverse[gl_MaxTextureCoords];" - - "uniform mat4 gl_TextureMatrixTranspose[gl_MaxTextureCoords];" - - "uniform mat4 gl_TextureMatrixInverseTranspose[gl_MaxTextureCoords];" - - // - // Clip planes p. 42. - // - "uniform vec4 gl_ClipPlane[gl_MaxClipPlanes];" - - // - // Light State p 50, 53, 55. - // - "uniform gl_LightSourceParameters gl_LightSource[gl_MaxLights];" - - // - // Derived state from products of light. - // - "uniform gl_LightProducts gl_FrontLightProduct[gl_MaxLights];" - "uniform gl_LightProducts gl_BackLightProduct[gl_MaxLights];" - - // - // Texture Environment and Generation, p. 152, p. 40-42. - // - "uniform vec4 gl_TextureEnvColor[gl_MaxTextureImageUnits];" - "uniform vec4 gl_EyePlaneS[gl_MaxTextureCoords];" - "uniform vec4 gl_EyePlaneT[gl_MaxTextureCoords];" - "uniform vec4 gl_EyePlaneR[gl_MaxTextureCoords];" - "uniform vec4 gl_EyePlaneQ[gl_MaxTextureCoords];" - "uniform vec4 gl_ObjectPlaneS[gl_MaxTextureCoords];" - "uniform vec4 gl_ObjectPlaneT[gl_MaxTextureCoords];" - "uniform vec4 gl_ObjectPlaneR[gl_MaxTextureCoords];" - "uniform vec4 gl_ObjectPlaneQ[gl_MaxTextureCoords];"); - } - - if (version >= 130) { - snprintf(builtInConstant, maxSize, "const int gl_MaxClipDistances = %d;", resources.maxClipDistances); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxVaryingComponents = %d;", resources.maxVaryingComponents); - s.append(builtInConstant); - - // GL_ARB_shading_language_420pack - snprintf(builtInConstant, maxSize, "const mediump int gl_MinProgramTexelOffset = %d;", resources.minProgramTexelOffset); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const mediump int gl_MaxProgramTexelOffset = %d;", resources.maxProgramTexelOffset); - s.append(builtInConstant); - } - - // geometry - if (version >= 150) { - snprintf(builtInConstant, maxSize, "const int gl_MaxGeometryInputComponents = %d;", resources.maxGeometryInputComponents); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxGeometryOutputComponents = %d;", resources.maxGeometryOutputComponents); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxGeometryTextureImageUnits = %d;", resources.maxGeometryTextureImageUnits); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxGeometryOutputVertices = %d;", resources.maxGeometryOutputVertices); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxGeometryTotalOutputComponents = %d;", resources.maxGeometryTotalOutputComponents); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxGeometryUniformComponents = %d;", resources.maxGeometryUniformComponents); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxGeometryVaryingComponents = %d;", resources.maxGeometryVaryingComponents); - s.append(builtInConstant); - - } - - if (version >= 150) { - snprintf(builtInConstant, maxSize, "const int gl_MaxVertexOutputComponents = %d;", resources.maxVertexOutputComponents); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxFragmentInputComponents = %d;", resources.maxFragmentInputComponents); - s.append(builtInConstant); - } - - // tessellation - if (version >= 150) { - snprintf(builtInConstant, maxSize, "const int gl_MaxTessControlInputComponents = %d;", resources.maxTessControlInputComponents); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxTessControlOutputComponents = %d;", resources.maxTessControlOutputComponents); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxTessControlTextureImageUnits = %d;", resources.maxTessControlTextureImageUnits); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxTessControlUniformComponents = %d;", resources.maxTessControlUniformComponents); - 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); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxTessEvaluationTextureImageUnits = %d;", resources.maxTessEvaluationTextureImageUnits); - 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); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxPatchVertices = %d;", resources.maxPatchVertices); - s.append(builtInConstant); - - // this is here instead of with the others in initialize(version, profile) due to the dependence on gl_MaxPatchVertices - if (language == EShLangTessControl || language == EShLangTessEvaluation) { - s.append( - "in gl_PerVertex {" - "vec4 gl_Position;" - "float gl_PointSize;" - "float gl_ClipDistance[];" - ); - if (profile == ECompatibilityProfile) - s.append( - "vec4 gl_ClipVertex;" - "vec4 gl_FrontColor;" - "vec4 gl_BackColor;" - "vec4 gl_FrontSecondaryColor;" - "vec4 gl_BackSecondaryColor;" - "vec4 gl_TexCoord[];" - "float gl_FogFragCoord;" - ); - if (profile != EEsProfile && version >= 450) - s.append( - "float gl_CullDistance[];" - "vec4 gl_SecondaryPositionNV;" // GL_NV_stereo_view_rendering - "vec4 gl_PositionPerViewNV[];" // GL_NVX_multiview_per_view_attributes - ); - s.append( - "} gl_in[gl_MaxPatchVertices];" - "\n"); - } - } - - if (version >= 150) { - snprintf(builtInConstant, maxSize, "const int gl_MaxViewports = %d;", resources.maxViewports); - s.append(builtInConstant); - } - - // images - if (version >= 130) { - snprintf(builtInConstant, maxSize, "const int gl_MaxCombinedImageUnitsAndFragmentOutputs = %d;", resources.maxCombinedImageUnitsAndFragmentOutputs); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxImageSamples = %d;", resources.maxImageSamples); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxTessControlImageUniforms = %d;", resources.maxTessControlImageUniforms); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxTessEvaluationImageUniforms = %d;", resources.maxTessEvaluationImageUniforms); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxGeometryImageUniforms = %d;", resources.maxGeometryImageUniforms); - s.append(builtInConstant); - } - - // enhanced layouts - if (version >= 430) { - snprintf(builtInConstant, maxSize, "const int gl_MaxTransformFeedbackBuffers = %d;", resources.maxTransformFeedbackBuffers); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxTransformFeedbackInterleavedComponents = %d;", resources.maxTransformFeedbackInterleavedComponents); - s.append(builtInConstant); - } -#endif - } - - // 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); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const ivec3 gl_MaxComputeWorkGroupSize = ivec3(%d,%d,%d);", resources.maxComputeWorkGroupSizeX, - resources.maxComputeWorkGroupSizeY, - resources.maxComputeWorkGroupSizeZ); - s.append(builtInConstant); - - snprintf(builtInConstant, maxSize, "const int gl_MaxComputeUniformComponents = %d;", resources.maxComputeUniformComponents); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxComputeTextureImageUnits = %d;", resources.maxComputeTextureImageUnits); - s.append(builtInConstant); - - s.append("\n"); - } - -#ifndef GLSLANG_WEB - // images (some in compute below) - if ((profile == EEsProfile && version >= 310) || - (profile != EEsProfile && version >= 130)) { - snprintf(builtInConstant, maxSize, "const int gl_MaxImageUnits = %d;", resources.maxImageUnits); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxCombinedShaderOutputResources = %d;", resources.maxCombinedShaderOutputResources); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxVertexImageUniforms = %d;", resources.maxVertexImageUniforms); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxFragmentImageUniforms = %d;", resources.maxFragmentImageUniforms); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxCombinedImageUniforms = %d;", resources.maxCombinedImageUniforms); - s.append(builtInConstant); - } - - // compute - if ((profile == EEsProfile && version >= 310) || (profile != EEsProfile && version >= 420)) { - snprintf(builtInConstant, maxSize, "const int gl_MaxComputeImageUniforms = %d;", resources.maxComputeImageUniforms); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxComputeAtomicCounters = %d;", resources.maxComputeAtomicCounters); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxComputeAtomicCounterBuffers = %d;", resources.maxComputeAtomicCounterBuffers); - s.append(builtInConstant); - - s.append("\n"); - } - -#ifndef GLSLANG_ANGLE - // atomic counters (some in compute below) - if ((profile == EEsProfile && version >= 310) || - (profile != EEsProfile && version >= 420)) { - snprintf(builtInConstant, maxSize, "const int gl_MaxVertexAtomicCounters = %d;", resources. maxVertexAtomicCounters); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxFragmentAtomicCounters = %d;", resources. maxFragmentAtomicCounters); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxCombinedAtomicCounters = %d;", resources. maxCombinedAtomicCounters); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxAtomicCounterBindings = %d;", resources. maxAtomicCounterBindings); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxVertexAtomicCounterBuffers = %d;", resources. maxVertexAtomicCounterBuffers); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxFragmentAtomicCounterBuffers = %d;", resources. maxFragmentAtomicCounterBuffers); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxCombinedAtomicCounterBuffers = %d;", resources. maxCombinedAtomicCounterBuffers); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxAtomicCounterBufferSize = %d;", resources. maxAtomicCounterBufferSize); - s.append(builtInConstant); - } - if (profile != EEsProfile && version >= 420) { - snprintf(builtInConstant, maxSize, "const int gl_MaxTessControlAtomicCounters = %d;", resources. maxTessControlAtomicCounters); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxTessEvaluationAtomicCounters = %d;", resources. maxTessEvaluationAtomicCounters); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxGeometryAtomicCounters = %d;", resources. maxGeometryAtomicCounters); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxTessControlAtomicCounterBuffers = %d;", resources. maxTessControlAtomicCounterBuffers); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxTessEvaluationAtomicCounterBuffers = %d;", resources. maxTessEvaluationAtomicCounterBuffers); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxGeometryAtomicCounterBuffers = %d;", resources. maxGeometryAtomicCounterBuffers); - s.append(builtInConstant); - - s.append("\n"); - } -#endif // !GLSLANG_ANGLE - - // GL_ARB_cull_distance - if (profile != EEsProfile && version >= 450) { - snprintf(builtInConstant, maxSize, "const int gl_MaxCullDistances = %d;", resources.maxCullDistances); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const int gl_MaxCombinedClipAndCullDistances = %d;", resources.maxCombinedClipAndCullDistances); - s.append(builtInConstant); - } - - // GL_ARB_ES3_1_compatibility - if ((profile != EEsProfile && version >= 450) || - (profile == EEsProfile && version >= 310)) { - snprintf(builtInConstant, maxSize, "const int gl_MaxSamples = %d;", resources.maxSamples); - s.append(builtInConstant); - } - -#ifndef GLSLANG_ANGLE - // SPV_NV_mesh_shader - if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 320)) { - snprintf(builtInConstant, maxSize, "const int gl_MaxMeshOutputVerticesNV = %d;", resources.maxMeshOutputVerticesNV); - s.append(builtInConstant); - - snprintf(builtInConstant, maxSize, "const int gl_MaxMeshOutputPrimitivesNV = %d;", resources.maxMeshOutputPrimitivesNV); - s.append(builtInConstant); - - snprintf(builtInConstant, maxSize, "const ivec3 gl_MaxMeshWorkGroupSizeNV = ivec3(%d,%d,%d);", resources.maxMeshWorkGroupSizeX_NV, - resources.maxMeshWorkGroupSizeY_NV, - resources.maxMeshWorkGroupSizeZ_NV); - s.append(builtInConstant); - snprintf(builtInConstant, maxSize, "const ivec3 gl_MaxTaskWorkGroupSizeNV = ivec3(%d,%d,%d);", resources.maxTaskWorkGroupSizeX_NV, - resources.maxTaskWorkGroupSizeY_NV, - resources.maxTaskWorkGroupSizeZ_NV); - s.append(builtInConstant); - - snprintf(builtInConstant, maxSize, "const int gl_MaxMeshViewCountNV = %d;", resources.maxMeshViewCountNV); - s.append(builtInConstant); - - s.append("\n"); - } -#endif -#endif - - s.append("\n"); -} - -// -// To support special built-ins that have a special qualifier that cannot be declared textually -// in a shader, like gl_Position. -// -// This lets the type of the built-in be declared textually, and then have just its qualifier be -// updated afterward. -// -// Safe to call even if name is not present. -// -// Only use this for built-in variables that have a special qualifier in TStorageQualifier. -// New built-in variables should use a generic (textually declarable) qualifier in -// TStoraregQualifier and only call BuiltInVariable(). -// -static void SpecialQualifier(const char* name, TStorageQualifier qualifier, TBuiltInVariable builtIn, TSymbolTable& symbolTable) -{ - TSymbol* symbol = symbolTable.find(name); - if (symbol == nullptr) - return; - - TQualifier& symQualifier = symbol->getWritableType().getQualifier(); - symQualifier.storage = qualifier; - symQualifier.builtIn = builtIn; -} - -// -// To tag built-in variables with their TBuiltInVariable enum. Use this when the -// normal declaration text already gets the qualifier right, and all that's needed -// is setting the builtIn field. This should be the normal way for all new -// built-in variables. -// -// If SpecialQualifier() was called, this does not need to be called. -// -// Safe to call even if name is not present. -// -static void BuiltInVariable(const char* name, TBuiltInVariable builtIn, TSymbolTable& symbolTable) -{ - TSymbol* symbol = symbolTable.find(name); - if (symbol == nullptr) - return; - - TQualifier& symQualifier = symbol->getWritableType().getQualifier(); - symQualifier.builtIn = builtIn; -} - -static void RetargetVariable(const char* from, const char* to, TSymbolTable& symbolTable) -{ - symbolTable.retargetSymbol(from, to); -} - -// -// For built-in variables inside a named block. -// SpecialQualifier() won't ever go inside a block; their member's qualifier come -// from the qualification of the block. -// -// See comments above for other detail. -// -static void BuiltInVariable(const char* blockName, const char* name, TBuiltInVariable builtIn, TSymbolTable& symbolTable) -{ - TSymbol* symbol = symbolTable.find(blockName); - if (symbol == nullptr) - return; - - TTypeList& structure = *symbol->getWritableType().getWritableStruct(); - for (int i = 0; i < (int)structure.size(); ++i) { - if (structure[i].type->getFieldName().compare(name) == 0) { - structure[i].type->getQualifier().builtIn = builtIn; - return; - } - } -} - -// -// Finish adding/processing context-independent built-in symbols. -// 1) Programmatically add symbols that could not be added by simple text strings above. -// 2) Map built-in functions to operators, for those that will turn into an operation node -// instead of remaining a function call. -// 3) Tag extension-related symbols added to their base version with their extensions, so -// that if an early version has the extension turned off, there is an error reported on use. -// -void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TSymbolTable& symbolTable) -{ -#ifdef GLSLANG_WEB - version = 310; - profile = EEsProfile; -#elif defined(GLSLANG_ANGLE) - version = 450; - profile = ECoreProfile; -#endif - - // - // Tag built-in variables and functions with additional qualifier and extension information - // that cannot be declared with the text strings. - // - - // 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 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 (spvVersion.vulkan > 0) { - BuiltInVariable("gl_VertexIndex", EbvVertexIndex, symbolTable); - BuiltInVariable("gl_InstanceIndex", EbvInstanceIndex, symbolTable); - } - -#ifndef GLSLANG_WEB - if (spvVersion.vulkan == 0) { - SpecialQualifier("gl_VertexID", EvqVertexId, EbvVertexId, symbolTable); - SpecialQualifier("gl_InstanceID", EvqInstanceId, EbvInstanceId, symbolTable); - } - - if (spvVersion.vulkan > 0 && spvVersion.vulkanRelaxed) { - // treat these built-ins as aliases of VertexIndex and InstanceIndex - RetargetVariable("gl_InstanceID", "gl_InstanceIndex", symbolTable); - RetargetVariable("gl_VertexID", "gl_VertexIndex", 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); - 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); - - symbolTable.setFunctionExtensions("ballotARB", 1, &E_GL_ARB_shader_ballot); - symbolTable.setFunctionExtensions("readInvocationARB", 1, &E_GL_ARB_shader_ballot); - symbolTable.setFunctionExtensions("readFirstInvocationARB", 1, &E_GL_ARB_shader_ballot); - - 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); - } - } - - - if (profile != EEsProfile) { - symbolTable.setFunctionExtensions("minInvocationsAMD", 1, &E_GL_AMD_shader_ballot); - symbolTable.setFunctionExtensions("maxInvocationsAMD", 1, &E_GL_AMD_shader_ballot); - symbolTable.setFunctionExtensions("addInvocationsAMD", 1, &E_GL_AMD_shader_ballot); - symbolTable.setFunctionExtensions("minInvocationsNonUniformAMD", 1, &E_GL_AMD_shader_ballot); - symbolTable.setFunctionExtensions("maxInvocationsNonUniformAMD", 1, &E_GL_AMD_shader_ballot); - symbolTable.setFunctionExtensions("addInvocationsNonUniformAMD", 1, &E_GL_AMD_shader_ballot); - symbolTable.setFunctionExtensions("swizzleInvocationsAMD", 1, &E_GL_AMD_shader_ballot); - 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) { - symbolTable.setFunctionExtensions("min3", 1, &E_GL_AMD_shader_trinary_minmax); - symbolTable.setFunctionExtensions("max3", 1, &E_GL_AMD_shader_trinary_minmax); - symbolTable.setFunctionExtensions("mid3", 1, &E_GL_AMD_shader_trinary_minmax); - } - - if (profile != EEsProfile) { - symbolTable.setVariableExtensions("gl_SIMDGroupSizeAMD", 1, &E_GL_AMD_gcn_shader); - SpecialQualifier("gl_SIMDGroupSizeAMD", EvqVaryingIn, EbvSubGroupSize, symbolTable); - - symbolTable.setFunctionExtensions("cubeFaceIndexAMD", 1, &E_GL_AMD_gcn_shader); - 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); - } - - symbolTable.setFunctionExtensions("countLeadingZeros", 1, &E_GL_INTEL_shader_integer_functions2); - symbolTable.setFunctionExtensions("countTrailingZeros", 1, &E_GL_INTEL_shader_integer_functions2); - symbolTable.setFunctionExtensions("absoluteDifference", 1, &E_GL_INTEL_shader_integer_functions2); - symbolTable.setFunctionExtensions("addSaturate", 1, &E_GL_INTEL_shader_integer_functions2); - symbolTable.setFunctionExtensions("subtractSaturate", 1, &E_GL_INTEL_shader_integer_functions2); - symbolTable.setFunctionExtensions("average", 1, &E_GL_INTEL_shader_integer_functions2); - symbolTable.setFunctionExtensions("averageRounded", 1, &E_GL_INTEL_shader_integer_functions2); - symbolTable.setFunctionExtensions("multiply32x16", 1, &E_GL_INTEL_shader_integer_functions2); - - symbolTable.setFunctionExtensions("textureFootprintNV", 1, &E_GL_NV_shader_texture_footprint); - symbolTable.setFunctionExtensions("textureFootprintClampNV", 1, &E_GL_NV_shader_texture_footprint); - symbolTable.setFunctionExtensions("textureFootprintLodNV", 1, &E_GL_NV_shader_texture_footprint); - symbolTable.setFunctionExtensions("textureFootprintGradNV", 1, &E_GL_NV_shader_texture_footprint); - symbolTable.setFunctionExtensions("textureFootprintGradClampNV", 1, &E_GL_NV_shader_texture_footprint); - // Compatibility variables, vertex only - if (spvVersion.spv == 0) { - BuiltInVariable("gl_Color", EbvColor, symbolTable); - BuiltInVariable("gl_SecondaryColor", EbvSecondaryColor, symbolTable); - BuiltInVariable("gl_Normal", EbvNormal, symbolTable); - BuiltInVariable("gl_Vertex", EbvVertex, symbolTable); - BuiltInVariable("gl_MultiTexCoord0", EbvMultiTexCoord0, symbolTable); - BuiltInVariable("gl_MultiTexCoord1", EbvMultiTexCoord1, symbolTable); - BuiltInVariable("gl_MultiTexCoord2", EbvMultiTexCoord2, symbolTable); - BuiltInVariable("gl_MultiTexCoord3", EbvMultiTexCoord3, symbolTable); - BuiltInVariable("gl_MultiTexCoord4", EbvMultiTexCoord4, symbolTable); - BuiltInVariable("gl_MultiTexCoord5", EbvMultiTexCoord5, symbolTable); - BuiltInVariable("gl_MultiTexCoord6", EbvMultiTexCoord6, symbolTable); - BuiltInVariable("gl_MultiTexCoord7", EbvMultiTexCoord7, symbolTable); - BuiltInVariable("gl_FogCoord", EbvFogFragCoord, symbolTable); - } - - if (profile == EEsProfile) { - if (spvVersion.spv == 0) { - symbolTable.setFunctionExtensions("texture2DGradEXT", 1, &E_GL_EXT_shader_texture_lod); - symbolTable.setFunctionExtensions("texture2DProjGradEXT", 1, &E_GL_EXT_shader_texture_lod); - symbolTable.setFunctionExtensions("textureCubeGradEXT", 1, &E_GL_EXT_shader_texture_lod); - if (version == 310) - symbolTable.setFunctionExtensions("textureGatherOffsets", Num_AEP_gpu_shader5, AEP_gpu_shader5); - } - if (version == 310) - symbolTable.setFunctionExtensions("fma", Num_AEP_gpu_shader5, AEP_gpu_shader5); - } - - 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); - symbolTable.setFunctionExtensions("imageAtomicAnd", 1, &E_GL_OES_shader_image_atomic); - symbolTable.setFunctionExtensions("imageAtomicOr", 1, &E_GL_OES_shader_image_atomic); - symbolTable.setFunctionExtensions("imageAtomicXor", 1, &E_GL_OES_shader_image_atomic); - symbolTable.setFunctionExtensions("imageAtomicExchange", 1, &E_GL_OES_shader_image_atomic); - symbolTable.setFunctionExtensions("imageAtomicCompSwap", 1, &E_GL_OES_shader_image_atomic); - } - - 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) { - BuiltInVariable("gl_BoundingBoxEXT", EbvBoundingBox, symbolTable); - symbolTable.setVariableExtensions("gl_BoundingBoxEXT", 1, - &E_GL_EXT_primitive_bounding_box); - BuiltInVariable("gl_BoundingBoxOES", EbvBoundingBox, symbolTable); - symbolTable.setVariableExtensions("gl_BoundingBoxOES", 1, - &E_GL_OES_primitive_bounding_box); - - if (version >= 320) { - BuiltInVariable("gl_BoundingBox", EbvBoundingBox, symbolTable); - } - } - // Fall through - - case EShLangTessEvaluation: - case EShLangGeometry: -#endif // !GLSLANG_WEB - SpecialQualifier("gl_Position", EvqPosition, EbvPosition, symbolTable); - SpecialQualifier("gl_PointSize", EvqPointSize, EbvPointSize, symbolTable); - - BuiltInVariable("gl_in", "gl_Position", EbvPosition, symbolTable); - BuiltInVariable("gl_in", "gl_PointSize", EbvPointSize, symbolTable); - - BuiltInVariable("gl_out", "gl_Position", EbvPosition, symbolTable); - BuiltInVariable("gl_out", "gl_PointSize", EbvPointSize, symbolTable); - -#ifndef GLSLANG_WEB - SpecialQualifier("gl_ClipVertex", EvqClipVertex, EbvClipVertex, symbolTable); - - BuiltInVariable("gl_in", "gl_ClipDistance", EbvClipDistance, symbolTable); - BuiltInVariable("gl_in", "gl_CullDistance", EbvCullDistance, symbolTable); - - BuiltInVariable("gl_out", "gl_ClipDistance", EbvClipDistance, symbolTable); - BuiltInVariable("gl_out", "gl_CullDistance", EbvCullDistance, symbolTable); - - BuiltInVariable("gl_ClipDistance", EbvClipDistance, symbolTable); - BuiltInVariable("gl_CullDistance", EbvCullDistance, symbolTable); - BuiltInVariable("gl_PrimitiveIDIn", EbvPrimitiveId, symbolTable); - BuiltInVariable("gl_PrimitiveID", EbvPrimitiveId, symbolTable); - BuiltInVariable("gl_InvocationID", EbvInvocationId, symbolTable); - BuiltInVariable("gl_Layer", EbvLayer, symbolTable); - BuiltInVariable("gl_ViewportIndex", EbvViewportIndex, symbolTable); - - if (language != EShLangGeometry) { - symbolTable.setVariableExtensions("gl_Layer", Num_viewportEXTs, viewportEXTs); - symbolTable.setVariableExtensions("gl_ViewportIndex", Num_viewportEXTs, viewportEXTs); - } - 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 || language == EShLangGeometry) { - symbolTable.setVariableExtensions("gl_in", "gl_SecondaryPositionNV", 1, &E_GL_NV_stereo_view_rendering); - symbolTable.setVariableExtensions("gl_in", "gl_PositionPerViewNV", 1, &E_GL_NVX_multiview_per_view_attributes); - - BuiltInVariable("gl_in", "gl_SecondaryPositionNV", EbvSecondaryPositionNV, symbolTable); - BuiltInVariable("gl_in", "gl_PositionPerViewNV", EbvPositionPerViewNV, symbolTable); - } - symbolTable.setVariableExtensions("gl_out", "gl_ViewportMask", 1, &E_GL_NV_viewport_array2); - symbolTable.setVariableExtensions("gl_out", "gl_SecondaryPositionNV", 1, &E_GL_NV_stereo_view_rendering); - symbolTable.setVariableExtensions("gl_out", "gl_SecondaryViewportMaskNV", 1, &E_GL_NV_stereo_view_rendering); - symbolTable.setVariableExtensions("gl_out", "gl_PositionPerViewNV", 1, &E_GL_NVX_multiview_per_view_attributes); - symbolTable.setVariableExtensions("gl_out", "gl_ViewportMaskPerViewNV", 1, &E_GL_NVX_multiview_per_view_attributes); - - 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); - - BuiltInVariable("gl_PatchVerticesIn", EbvPatchVertices, symbolTable); - BuiltInVariable("gl_TessLevelOuter", EbvTessLevelOuter, symbolTable); - BuiltInVariable("gl_TessLevelInner", EbvTessLevelInner, symbolTable); - BuiltInVariable("gl_TessCoord", EbvTessCoord, symbolTable); - - if (version < 410) - symbolTable.setVariableExtensions("gl_ViewportIndex", 1, &E_GL_ARB_viewport_array); - - // Compatibility variables - - BuiltInVariable("gl_in", "gl_ClipVertex", EbvClipVertex, symbolTable); - BuiltInVariable("gl_in", "gl_FrontColor", EbvFrontColor, symbolTable); - BuiltInVariable("gl_in", "gl_BackColor", EbvBackColor, symbolTable); - BuiltInVariable("gl_in", "gl_FrontSecondaryColor", EbvFrontSecondaryColor, symbolTable); - BuiltInVariable("gl_in", "gl_BackSecondaryColor", EbvBackSecondaryColor, symbolTable); - BuiltInVariable("gl_in", "gl_TexCoord", EbvTexCoord, symbolTable); - BuiltInVariable("gl_in", "gl_FogFragCoord", EbvFogFragCoord, symbolTable); - - BuiltInVariable("gl_out", "gl_ClipVertex", EbvClipVertex, symbolTable); - BuiltInVariable("gl_out", "gl_FrontColor", EbvFrontColor, symbolTable); - BuiltInVariable("gl_out", "gl_BackColor", EbvBackColor, symbolTable); - BuiltInVariable("gl_out", "gl_FrontSecondaryColor", EbvFrontSecondaryColor, symbolTable); - BuiltInVariable("gl_out", "gl_BackSecondaryColor", EbvBackSecondaryColor, symbolTable); - BuiltInVariable("gl_out", "gl_TexCoord", EbvTexCoord, symbolTable); - BuiltInVariable("gl_out", "gl_FogFragCoord", EbvFogFragCoord, symbolTable); - - BuiltInVariable("gl_ClipVertex", EbvClipVertex, symbolTable); - BuiltInVariable("gl_FrontColor", EbvFrontColor, symbolTable); - BuiltInVariable("gl_BackColor", EbvBackColor, symbolTable); - BuiltInVariable("gl_FrontSecondaryColor", EbvFrontSecondaryColor, symbolTable); - BuiltInVariable("gl_BackSecondaryColor", EbvBackSecondaryColor, symbolTable); - BuiltInVariable("gl_TexCoord", EbvTexCoord, symbolTable); - BuiltInVariable("gl_FogFragCoord", EbvFogFragCoord, symbolTable); - - // gl_PointSize, when it needs to be tied to an extension, is always a member of a block. - // (Sometimes with an instance name, sometimes anonymous). - if (profile == EEsProfile) { - if (language == EShLangGeometry) { - symbolTable.setVariableExtensions("gl_PointSize", Num_AEP_geometry_point_size, AEP_geometry_point_size); - symbolTable.setVariableExtensions("gl_in", "gl_PointSize", Num_AEP_geometry_point_size, AEP_geometry_point_size); - } else if (language == EShLangTessEvaluation || language == EShLangTessControl) { - // gl_in tessellation settings of gl_PointSize are in the context-dependent paths - symbolTable.setVariableExtensions("gl_PointSize", Num_AEP_tessellation_point_size, AEP_tessellation_point_size); - symbolTable.setVariableExtensions("gl_out", "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); - } - - if (profile != EEsProfile) { - 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 ((profile == EEsProfile && version >= 310) || - (profile != EEsProfile && version >= 140)) { - 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); - - // GL_NV_shader_sm_builtins - symbolTable.setVariableExtensions("gl_WarpsPerSMNV", 1, &E_GL_NV_shader_sm_builtins); - symbolTable.setVariableExtensions("gl_SMCountNV", 1, &E_GL_NV_shader_sm_builtins); - symbolTable.setVariableExtensions("gl_WarpIDNV", 1, &E_GL_NV_shader_sm_builtins); - symbolTable.setVariableExtensions("gl_SMIDNV", 1, &E_GL_NV_shader_sm_builtins); - BuiltInVariable("gl_WarpsPerSMNV", EbvWarpsPerSM, symbolTable); - BuiltInVariable("gl_SMCountNV", EbvSMCount, symbolTable); - BuiltInVariable("gl_WarpIDNV", EbvWarpID, symbolTable); - BuiltInVariable("gl_SMIDNV", EbvSMID, symbolTable); - } - - if (language == EShLangGeometry || language == EShLangVertex) { - if ((profile == EEsProfile && version >= 310) || - (profile != EEsProfile && version >= 450)) { - symbolTable.setVariableExtensions("gl_PrimitiveShadingRateEXT", 1, &E_GL_EXT_fragment_shading_rate); - BuiltInVariable("gl_PrimitiveShadingRateEXT", EbvPrimitiveShadingRateKHR, symbolTable); - - symbolTable.setVariableExtensions("gl_ShadingRateFlag2VerticalPixelsEXT", 1, &E_GL_EXT_fragment_shading_rate); - symbolTable.setVariableExtensions("gl_ShadingRateFlag4VerticalPixelsEXT", 1, &E_GL_EXT_fragment_shading_rate); - symbolTable.setVariableExtensions("gl_ShadingRateFlag2HorizontalPixelsEXT", 1, &E_GL_EXT_fragment_shading_rate); - symbolTable.setVariableExtensions("gl_ShadingRateFlag4HorizontalPixelsEXT", 1, &E_GL_EXT_fragment_shading_rate); - } - } - -#endif // !GLSLANG_WEB - 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_FragDepth", EvqFragDepth, EbvFragDepth, symbolTable); -#ifndef GLSLANG_WEB - SpecialQualifier("gl_FragDepthEXT", EvqFragDepth, EbvFragDepth, symbolTable); - SpecialQualifier("gl_HelperInvocation", EvqVaryingIn, EbvHelperInvocation, symbolTable); - - BuiltInVariable("gl_ClipDistance", EbvClipDistance, symbolTable); - 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) { - symbolTable.setFunctionExtensions("textureQueryLOD", 1, &E_GL_ARB_texture_query_lod); - } - - if (profile != EEsProfile && version >= 460) { - symbolTable.setFunctionExtensions("rayQueryInitializeEXT", 1, &E_GL_EXT_ray_query); - symbolTable.setFunctionExtensions("rayQueryTerminateEXT", 1, &E_GL_EXT_ray_query); - symbolTable.setFunctionExtensions("rayQueryGenerateIntersectionEXT", 1, &E_GL_EXT_ray_query); - symbolTable.setFunctionExtensions("rayQueryConfirmIntersectionEXT", 1, &E_GL_EXT_ray_query); - symbolTable.setFunctionExtensions("rayQueryProceedEXT", 1, &E_GL_EXT_ray_query); - symbolTable.setFunctionExtensions("rayQueryGetIntersectionTypeEXT", 1, &E_GL_EXT_ray_query); - symbolTable.setFunctionExtensions("rayQueryGetIntersectionTEXT", 1, &E_GL_EXT_ray_query); - symbolTable.setFunctionExtensions("rayQueryGetRayFlagsEXT", 1, &E_GL_EXT_ray_query); - symbolTable.setFunctionExtensions("rayQueryGetRayTMinEXT", 1, &E_GL_EXT_ray_query); - symbolTable.setFunctionExtensions("rayQueryGetIntersectionInstanceCustomIndexEXT", 1, &E_GL_EXT_ray_query); - symbolTable.setFunctionExtensions("rayQueryGetIntersectionInstanceIdEXT", 1, &E_GL_EXT_ray_query); - symbolTable.setFunctionExtensions("rayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetEXT", 1, &E_GL_EXT_ray_query); - symbolTable.setFunctionExtensions("rayQueryGetIntersectionGeometryIndexEXT", 1, &E_GL_EXT_ray_query); - symbolTable.setFunctionExtensions("rayQueryGetIntersectionPrimitiveIndexEXT", 1, &E_GL_EXT_ray_query); - symbolTable.setFunctionExtensions("rayQueryGetIntersectionBarycentricsEXT", 1, &E_GL_EXT_ray_query); - symbolTable.setFunctionExtensions("rayQueryGetIntersectionFrontFaceEXT", 1, &E_GL_EXT_ray_query); - symbolTable.setFunctionExtensions("rayQueryGetIntersectionCandidateAABBOpaqueEXT", 1, &E_GL_EXT_ray_query); - symbolTable.setFunctionExtensions("rayQueryGetIntersectionObjectRayDirectionEXT", 1, &E_GL_EXT_ray_query); - symbolTable.setFunctionExtensions("rayQueryGetIntersectionObjectRayOriginEXT", 1, &E_GL_EXT_ray_query); - symbolTable.setFunctionExtensions("rayQueryGetIntersectionObjectToWorldEXT", 1, &E_GL_EXT_ray_query); - symbolTable.setFunctionExtensions("rayQueryGetIntersectionWorldToObjectEXT", 1, &E_GL_EXT_ray_query); - symbolTable.setFunctionExtensions("rayQueryGetWorldRayOriginEXT", 1, &E_GL_EXT_ray_query); - symbolTable.setFunctionExtensions("rayQueryGetWorldRayDirectionEXT", 1, &E_GL_EXT_ray_query); - symbolTable.setVariableExtensions("gl_RayFlagsSkipAABBEXT", 1, &E_GL_EXT_ray_flags_primitive_culling); - symbolTable.setVariableExtensions("gl_RayFlagsSkipTrianglesEXT", 1, &E_GL_EXT_ray_flags_primitive_culling); - } - - if ((profile != EEsProfile && version >= 130) || - (profile == EEsProfile && version >= 310)) { - BuiltInVariable("gl_SampleID", EbvSampleId, symbolTable); - BuiltInVariable("gl_SamplePosition", EbvSamplePosition, symbolTable); - BuiltInVariable("gl_SampleMask", EbvSampleMask, symbolTable); - - if (profile != EEsProfile && version < 400) { - BuiltInVariable("gl_NumSamples", EbvSampleMask, symbolTable); - - symbolTable.setVariableExtensions("gl_SampleMask", 1, &E_GL_ARB_sample_shading); - symbolTable.setVariableExtensions("gl_SampleID", 1, &E_GL_ARB_sample_shading); - symbolTable.setVariableExtensions("gl_SamplePosition", 1, &E_GL_ARB_sample_shading); - symbolTable.setVariableExtensions("gl_NumSamples", 1, &E_GL_ARB_sample_shading); - } else { - BuiltInVariable("gl_SampleMaskIn", EbvSampleMask, symbolTable); - - 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); - symbolTable.setVariableExtensions("gl_SampleMask", 1, &E_GL_OES_sample_variables); - symbolTable.setVariableExtensions("gl_NumSamples", 1, &E_GL_OES_sample_variables); - } - } - } - - BuiltInVariable("gl_Layer", EbvLayer, symbolTable); - BuiltInVariable("gl_ViewportIndex", EbvViewportIndex, symbolTable); - - // Compatibility variables - - BuiltInVariable("gl_in", "gl_FogFragCoord", EbvFogFragCoord, symbolTable); - BuiltInVariable("gl_in", "gl_TexCoord", EbvTexCoord, symbolTable); - BuiltInVariable("gl_in", "gl_Color", EbvColor, symbolTable); - BuiltInVariable("gl_in", "gl_SecondaryColor", EbvSecondaryColor, symbolTable); - - BuiltInVariable("gl_FogFragCoord", EbvFogFragCoord, symbolTable); - BuiltInVariable("gl_TexCoord", EbvTexCoord, symbolTable); - BuiltInVariable("gl_Color", EbvColor, symbolTable); - BuiltInVariable("gl_SecondaryColor", EbvSecondaryColor, symbolTable); - - // built-in functions - - if (profile == EEsProfile) { - if (spvVersion.spv == 0) { - symbolTable.setFunctionExtensions("texture2DLodEXT", 1, &E_GL_EXT_shader_texture_lod); - symbolTable.setFunctionExtensions("texture2DProjLodEXT", 1, &E_GL_EXT_shader_texture_lod); - symbolTable.setFunctionExtensions("textureCubeLodEXT", 1, &E_GL_EXT_shader_texture_lod); - 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); - } - 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) { - 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); - symbolTable.setFunctionExtensions("interpolateAtOffset", 1, &E_GL_OES_shader_multisample_interpolation); - } - } else if (version < 130) { - if (spvVersion.spv == 0) { - symbolTable.setFunctionExtensions("texture1DLod", 1, &E_GL_ARB_shader_texture_lod); - symbolTable.setFunctionExtensions("texture2DLod", 1, &E_GL_ARB_shader_texture_lod); - symbolTable.setFunctionExtensions("texture3DLod", 1, &E_GL_ARB_shader_texture_lod); - symbolTable.setFunctionExtensions("textureCubeLod", 1, &E_GL_ARB_shader_texture_lod); - symbolTable.setFunctionExtensions("texture1DProjLod", 1, &E_GL_ARB_shader_texture_lod); - symbolTable.setFunctionExtensions("texture2DProjLod", 1, &E_GL_ARB_shader_texture_lod); - symbolTable.setFunctionExtensions("texture3DProjLod", 1, &E_GL_ARB_shader_texture_lod); - symbolTable.setFunctionExtensions("shadow1DLod", 1, &E_GL_ARB_shader_texture_lod); - symbolTable.setFunctionExtensions("shadow2DLod", 1, &E_GL_ARB_shader_texture_lod); - symbolTable.setFunctionExtensions("shadow1DProjLod", 1, &E_GL_ARB_shader_texture_lod); - symbolTable.setFunctionExtensions("shadow2DProjLod", 1, &E_GL_ARB_shader_texture_lod); - } - } - - // E_GL_ARB_shader_texture_lod functions usable only with the extension enabled - if (profile != EEsProfile && spvVersion.spv == 0) { - symbolTable.setFunctionExtensions("texture1DGradARB", 1, &E_GL_ARB_shader_texture_lod); - symbolTable.setFunctionExtensions("texture1DProjGradARB", 1, &E_GL_ARB_shader_texture_lod); - symbolTable.setFunctionExtensions("texture2DGradARB", 1, &E_GL_ARB_shader_texture_lod); - symbolTable.setFunctionExtensions("texture2DProjGradARB", 1, &E_GL_ARB_shader_texture_lod); - symbolTable.setFunctionExtensions("texture3DGradARB", 1, &E_GL_ARB_shader_texture_lod); - symbolTable.setFunctionExtensions("texture3DProjGradARB", 1, &E_GL_ARB_shader_texture_lod); - symbolTable.setFunctionExtensions("textureCubeGradARB", 1, &E_GL_ARB_shader_texture_lod); - symbolTable.setFunctionExtensions("shadow1DGradARB", 1, &E_GL_ARB_shader_texture_lod); - symbolTable.setFunctionExtensions("shadow1DProjGradARB", 1, &E_GL_ARB_shader_texture_lod); - symbolTable.setFunctionExtensions("shadow2DGradARB", 1, &E_GL_ARB_shader_texture_lod); - symbolTable.setFunctionExtensions("shadow2DProjGradARB", 1, &E_GL_ARB_shader_texture_lod); - symbolTable.setFunctionExtensions("texture2DRectGradARB", 1, &E_GL_ARB_shader_texture_lod); - symbolTable.setFunctionExtensions("texture2DRectProjGradARB", 1, &E_GL_ARB_shader_texture_lod); - symbolTable.setFunctionExtensions("shadow2DRectGradARB", 1, &E_GL_ARB_shader_texture_lod); - symbolTable.setFunctionExtensions("shadow2DRectProjGradARB", 1, &E_GL_ARB_shader_texture_lod); - } - - // E_GL_ARB_shader_image_load_store - if (profile != EEsProfile && version < 420) - symbolTable.setFunctionExtensions("memoryBarrier", 1, &E_GL_ARB_shader_image_load_store); - // All the image access functions are protected by checks on the type of the first argument. - - // E_GL_ARB_shader_atomic_counters - if (profile != EEsProfile && version < 420) { - symbolTable.setFunctionExtensions("atomicCounterIncrement", 1, &E_GL_ARB_shader_atomic_counters); - symbolTable.setFunctionExtensions("atomicCounterDecrement", 1, &E_GL_ARB_shader_atomic_counters); - symbolTable.setFunctionExtensions("atomicCounter" , 1, &E_GL_ARB_shader_atomic_counters); - } - - // E_GL_ARB_shader_atomic_counter_ops - if (profile != EEsProfile && version == 450) { - symbolTable.setFunctionExtensions("atomicCounterAddARB" , 1, &E_GL_ARB_shader_atomic_counter_ops); - symbolTable.setFunctionExtensions("atomicCounterSubtractARB", 1, &E_GL_ARB_shader_atomic_counter_ops); - symbolTable.setFunctionExtensions("atomicCounterMinARB" , 1, &E_GL_ARB_shader_atomic_counter_ops); - symbolTable.setFunctionExtensions("atomicCounterMaxARB" , 1, &E_GL_ARB_shader_atomic_counter_ops); - symbolTable.setFunctionExtensions("atomicCounterAndARB" , 1, &E_GL_ARB_shader_atomic_counter_ops); - symbolTable.setFunctionExtensions("atomicCounterOrARB" , 1, &E_GL_ARB_shader_atomic_counter_ops); - symbolTable.setFunctionExtensions("atomicCounterXorARB" , 1, &E_GL_ARB_shader_atomic_counter_ops); - symbolTable.setFunctionExtensions("atomicCounterExchangeARB", 1, &E_GL_ARB_shader_atomic_counter_ops); - symbolTable.setFunctionExtensions("atomicCounterCompSwapARB", 1, &E_GL_ARB_shader_atomic_counter_ops); - } - - // E_GL_ARB_derivative_control - if (profile != EEsProfile && version < 450) { - symbolTable.setFunctionExtensions("dFdxFine", 1, &E_GL_ARB_derivative_control); - symbolTable.setFunctionExtensions("dFdyFine", 1, &E_GL_ARB_derivative_control); - symbolTable.setFunctionExtensions("fwidthFine", 1, &E_GL_ARB_derivative_control); - symbolTable.setFunctionExtensions("dFdxCoarse", 1, &E_GL_ARB_derivative_control); - symbolTable.setFunctionExtensions("dFdyCoarse", 1, &E_GL_ARB_derivative_control); - symbolTable.setFunctionExtensions("fwidthCoarse", 1, &E_GL_ARB_derivative_control); - } - - // E_GL_ARB_sparse_texture2 - if (profile != EEsProfile) - { - symbolTable.setFunctionExtensions("sparseTextureARB", 1, &E_GL_ARB_sparse_texture2); - symbolTable.setFunctionExtensions("sparseTextureLodARB", 1, &E_GL_ARB_sparse_texture2); - symbolTable.setFunctionExtensions("sparseTextureOffsetARB", 1, &E_GL_ARB_sparse_texture2); - symbolTable.setFunctionExtensions("sparseTexelFetchARB", 1, &E_GL_ARB_sparse_texture2); - symbolTable.setFunctionExtensions("sparseTexelFetchOffsetARB", 1, &E_GL_ARB_sparse_texture2); - symbolTable.setFunctionExtensions("sparseTextureLodOffsetARB", 1, &E_GL_ARB_sparse_texture2); - symbolTable.setFunctionExtensions("sparseTextureGradARB", 1, &E_GL_ARB_sparse_texture2); - symbolTable.setFunctionExtensions("sparseTextureGradOffsetARB", 1, &E_GL_ARB_sparse_texture2); - symbolTable.setFunctionExtensions("sparseTextureGatherARB", 1, &E_GL_ARB_sparse_texture2); - symbolTable.setFunctionExtensions("sparseTextureGatherOffsetARB", 1, &E_GL_ARB_sparse_texture2); - symbolTable.setFunctionExtensions("sparseTextureGatherOffsetsARB", 1, &E_GL_ARB_sparse_texture2); - symbolTable.setFunctionExtensions("sparseImageLoadARB", 1, &E_GL_ARB_sparse_texture2); - symbolTable.setFunctionExtensions("sparseTexelsResident", 1, &E_GL_ARB_sparse_texture2); - } - - // E_GL_ARB_sparse_texture_clamp - if (profile != EEsProfile) - { - symbolTable.setFunctionExtensions("sparseTextureClampARB", 1, &E_GL_ARB_sparse_texture_clamp); - symbolTable.setFunctionExtensions("sparseTextureOffsetClampARB", 1, &E_GL_ARB_sparse_texture_clamp); - symbolTable.setFunctionExtensions("sparseTextureGradClampARB", 1, &E_GL_ARB_sparse_texture_clamp); - symbolTable.setFunctionExtensions("sparseTextureGradOffsetClampARB", 1, &E_GL_ARB_sparse_texture_clamp); - symbolTable.setFunctionExtensions("textureClampARB", 1, &E_GL_ARB_sparse_texture_clamp); - symbolTable.setFunctionExtensions("textureOffsetClampARB", 1, &E_GL_ARB_sparse_texture_clamp); - symbolTable.setFunctionExtensions("textureGradClampARB", 1, &E_GL_ARB_sparse_texture_clamp); - symbolTable.setFunctionExtensions("textureGradOffsetClampARB", 1, &E_GL_ARB_sparse_texture_clamp); - } - - // E_GL_AMD_shader_explicit_vertex_parameter - if (profile != EEsProfile) { - symbolTable.setVariableExtensions("gl_BaryCoordNoPerspAMD", 1, &E_GL_AMD_shader_explicit_vertex_parameter); - symbolTable.setVariableExtensions("gl_BaryCoordNoPerspCentroidAMD", 1, &E_GL_AMD_shader_explicit_vertex_parameter); - symbolTable.setVariableExtensions("gl_BaryCoordNoPerspSampleAMD", 1, &E_GL_AMD_shader_explicit_vertex_parameter); - symbolTable.setVariableExtensions("gl_BaryCoordSmoothAMD", 1, &E_GL_AMD_shader_explicit_vertex_parameter); - symbolTable.setVariableExtensions("gl_BaryCoordSmoothCentroidAMD", 1, &E_GL_AMD_shader_explicit_vertex_parameter); - symbolTable.setVariableExtensions("gl_BaryCoordSmoothSampleAMD", 1, &E_GL_AMD_shader_explicit_vertex_parameter); - symbolTable.setVariableExtensions("gl_BaryCoordPullModelAMD", 1, &E_GL_AMD_shader_explicit_vertex_parameter); - - symbolTable.setFunctionExtensions("interpolateAtVertexAMD", 1, &E_GL_AMD_shader_explicit_vertex_parameter); - - BuiltInVariable("gl_BaryCoordNoPerspAMD", EbvBaryCoordNoPersp, symbolTable); - BuiltInVariable("gl_BaryCoordNoPerspCentroidAMD", EbvBaryCoordNoPerspCentroid, symbolTable); - BuiltInVariable("gl_BaryCoordNoPerspSampleAMD", EbvBaryCoordNoPerspSample, symbolTable); - BuiltInVariable("gl_BaryCoordSmoothAMD", EbvBaryCoordSmooth, symbolTable); - BuiltInVariable("gl_BaryCoordSmoothCentroidAMD", EbvBaryCoordSmoothCentroid, symbolTable); - 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); - } - if (profile != EEsProfile && version >= 430) { - symbolTable.setVariableExtensions("gl_FragFullyCoveredNV", 1, &E_GL_NV_conservative_raster_underestimation); - BuiltInVariable("gl_FragFullyCoveredNV", EbvFragFullyCoveredNV, symbolTable); - } - if ((profile != EEsProfile && version >= 450) || - (profile == EEsProfile && version >= 320)) { - symbolTable.setVariableExtensions("gl_FragmentSizeNV", 1, &E_GL_NV_shading_rate_image); - symbolTable.setVariableExtensions("gl_InvocationsPerPixelNV", 1, &E_GL_NV_shading_rate_image); - BuiltInVariable("gl_FragmentSizeNV", EbvFragmentSizeNV, symbolTable); - BuiltInVariable("gl_InvocationsPerPixelNV", EbvInvocationsPerPixelNV, symbolTable); - symbolTable.setVariableExtensions("gl_BaryCoordNV", 1, &E_GL_NV_fragment_shader_barycentric); - symbolTable.setVariableExtensions("gl_BaryCoordNoPerspNV", 1, &E_GL_NV_fragment_shader_barycentric); - BuiltInVariable("gl_BaryCoordNV", EbvBaryCoordNV, symbolTable); - BuiltInVariable("gl_BaryCoordNoPerspNV", EbvBaryCoordNoPerspNV, symbolTable); - } - - if ((profile != EEsProfile && version >= 450) || - (profile == EEsProfile && version >= 310)) { - symbolTable.setVariableExtensions("gl_FragSizeEXT", 1, &E_GL_EXT_fragment_invocation_density); - symbolTable.setVariableExtensions("gl_FragInvocationCountEXT", 1, &E_GL_EXT_fragment_invocation_density); - BuiltInVariable("gl_FragSizeEXT", EbvFragSizeEXT, symbolTable); - BuiltInVariable("gl_FragInvocationCountEXT", EbvFragInvocationCountEXT, symbolTable); - } - - symbolTable.setVariableExtensions("gl_FragDepthEXT", 1, &E_GL_EXT_frag_depth); - - symbolTable.setFunctionExtensions("clockARB", 1, &E_GL_ARB_shader_clock); - symbolTable.setFunctionExtensions("clock2x32ARB", 1, &E_GL_ARB_shader_clock); - - symbolTable.setFunctionExtensions("clockRealtimeEXT", 1, &E_GL_EXT_shader_realtime_clock); - symbolTable.setFunctionExtensions("clockRealtime2x32EXT", 1, &E_GL_EXT_shader_realtime_clock); - - 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 && 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); - symbolTable.setFunctionExtensions("imageAtomicAnd", 1, &E_GL_OES_shader_image_atomic); - symbolTable.setFunctionExtensions("imageAtomicOr", 1, &E_GL_OES_shader_image_atomic); - symbolTable.setFunctionExtensions("imageAtomicXor", 1, &E_GL_OES_shader_image_atomic); - symbolTable.setFunctionExtensions("imageAtomicExchange", 1, &E_GL_OES_shader_image_atomic); - symbolTable.setFunctionExtensions("imageAtomicCompSwap", 1, &E_GL_OES_shader_image_atomic); - } - - if (profile != EEsProfile && version < 330 ) { - const char* bitsConvertExt[2] = {E_GL_ARB_shader_bit_encoding, E_GL_ARB_gpu_shader5}; - symbolTable.setFunctionExtensions("floatBitsToInt", 2, bitsConvertExt); - symbolTable.setFunctionExtensions("floatBitsToUint", 2, bitsConvertExt); - symbolTable.setFunctionExtensions("intBitsToFloat", 2, bitsConvertExt); - symbolTable.setFunctionExtensions("uintBitsToFloat", 2, bitsConvertExt); - } - - if (profile != EEsProfile && version < 430 ) { - symbolTable.setFunctionExtensions("imageSize", 1, &E_GL_ARB_shader_image_size); - } - - // GL_ARB_shader_storage_buffer_object - if (profile != EEsProfile && version < 430 ) { - symbolTable.setFunctionExtensions("atomicAdd", 1, &E_GL_ARB_shader_storage_buffer_object); - symbolTable.setFunctionExtensions("atomicMin", 1, &E_GL_ARB_shader_storage_buffer_object); - symbolTable.setFunctionExtensions("atomicMax", 1, &E_GL_ARB_shader_storage_buffer_object); - symbolTable.setFunctionExtensions("atomicAnd", 1, &E_GL_ARB_shader_storage_buffer_object); - symbolTable.setFunctionExtensions("atomicOr", 1, &E_GL_ARB_shader_storage_buffer_object); - symbolTable.setFunctionExtensions("atomicXor", 1, &E_GL_ARB_shader_storage_buffer_object); - symbolTable.setFunctionExtensions("atomicExchange", 1, &E_GL_ARB_shader_storage_buffer_object); - symbolTable.setFunctionExtensions("atomicCompSwap", 1, &E_GL_ARB_shader_storage_buffer_object); - } - - // GL_ARB_shading_language_packing - if (profile != EEsProfile && version < 400 ) { - symbolTable.setFunctionExtensions("packUnorm2x16", 1, &E_GL_ARB_shading_language_packing); - symbolTable.setFunctionExtensions("unpackUnorm2x16", 1, &E_GL_ARB_shading_language_packing); - symbolTable.setFunctionExtensions("packSnorm4x8", 1, &E_GL_ARB_shading_language_packing); - symbolTable.setFunctionExtensions("packUnorm4x8", 1, &E_GL_ARB_shading_language_packing); - symbolTable.setFunctionExtensions("unpackSnorm4x8", 1, &E_GL_ARB_shading_language_packing); - symbolTable.setFunctionExtensions("unpackUnorm4x8", 1, &E_GL_ARB_shading_language_packing); - } - if (profile != EEsProfile && version < 420 ) { - symbolTable.setFunctionExtensions("packSnorm2x16", 1, &E_GL_ARB_shading_language_packing); - symbolTable.setFunctionExtensions("unpackSnorm2x16", 1, &E_GL_ARB_shading_language_packing); - symbolTable.setFunctionExtensions("unpackHalf2x16", 1, &E_GL_ARB_shading_language_packing); - symbolTable.setFunctionExtensions("packHalf2x16", 1, &E_GL_ARB_shading_language_packing); - } - - 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 ((profile == EEsProfile && version >= 310) || - (profile != EEsProfile && version >= 140)) { - 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); - 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); - - // GL_NV_shader_sm_builtins - symbolTable.setVariableExtensions("gl_WarpsPerSMNV", 1, &E_GL_NV_shader_sm_builtins); - symbolTable.setVariableExtensions("gl_SMCountNV", 1, &E_GL_NV_shader_sm_builtins); - symbolTable.setVariableExtensions("gl_WarpIDNV", 1, &E_GL_NV_shader_sm_builtins); - symbolTable.setVariableExtensions("gl_SMIDNV", 1, &E_GL_NV_shader_sm_builtins); - BuiltInVariable("gl_WarpsPerSMNV", EbvWarpsPerSM, symbolTable); - BuiltInVariable("gl_SMCountNV", EbvSMCount, symbolTable); - BuiltInVariable("gl_WarpIDNV", EbvWarpID, symbolTable); - BuiltInVariable("gl_SMIDNV", EbvSMID, symbolTable); - } - - if (profile == EEsProfile) { - symbolTable.setFunctionExtensions("shadow2DEXT", 1, &E_GL_EXT_shadow_samplers); - symbolTable.setFunctionExtensions("shadow2DProjEXT", 1, &E_GL_EXT_shadow_samplers); - } - - if (spvVersion.vulkan > 0) { - symbolTable.setVariableExtensions("gl_ScopeDevice", 1, &E_GL_KHR_memory_scope_semantics); - symbolTable.setVariableExtensions("gl_ScopeWorkgroup", 1, &E_GL_KHR_memory_scope_semantics); - symbolTable.setVariableExtensions("gl_ScopeSubgroup", 1, &E_GL_KHR_memory_scope_semantics); - symbolTable.setVariableExtensions("gl_ScopeInvocation", 1, &E_GL_KHR_memory_scope_semantics); - - symbolTable.setVariableExtensions("gl_SemanticsRelaxed", 1, &E_GL_KHR_memory_scope_semantics); - symbolTable.setVariableExtensions("gl_SemanticsAcquire", 1, &E_GL_KHR_memory_scope_semantics); - symbolTable.setVariableExtensions("gl_SemanticsRelease", 1, &E_GL_KHR_memory_scope_semantics); - symbolTable.setVariableExtensions("gl_SemanticsAcquireRelease", 1, &E_GL_KHR_memory_scope_semantics); - symbolTable.setVariableExtensions("gl_SemanticsMakeAvailable", 1, &E_GL_KHR_memory_scope_semantics); - symbolTable.setVariableExtensions("gl_SemanticsMakeVisible", 1, &E_GL_KHR_memory_scope_semantics); - symbolTable.setVariableExtensions("gl_SemanticsVolatile", 1, &E_GL_KHR_memory_scope_semantics); - - symbolTable.setVariableExtensions("gl_StorageSemanticsNone", 1, &E_GL_KHR_memory_scope_semantics); - symbolTable.setVariableExtensions("gl_StorageSemanticsBuffer", 1, &E_GL_KHR_memory_scope_semantics); - symbolTable.setVariableExtensions("gl_StorageSemanticsShared", 1, &E_GL_KHR_memory_scope_semantics); - symbolTable.setVariableExtensions("gl_StorageSemanticsImage", 1, &E_GL_KHR_memory_scope_semantics); - symbolTable.setVariableExtensions("gl_StorageSemanticsOutput", 1, &E_GL_KHR_memory_scope_semantics); - } - - symbolTable.setFunctionExtensions("helperInvocationEXT", 1, &E_GL_EXT_demote_to_helper_invocation); - - if ((profile == EEsProfile && version >= 310) || - (profile != EEsProfile && version >= 450)) { - symbolTable.setVariableExtensions("gl_ShadingRateEXT", 1, &E_GL_EXT_fragment_shading_rate); - BuiltInVariable("gl_ShadingRateEXT", EbvShadingRateKHR, symbolTable); - - symbolTable.setVariableExtensions("gl_ShadingRateFlag2VerticalPixelsEXT", 1, &E_GL_EXT_fragment_shading_rate); - symbolTable.setVariableExtensions("gl_ShadingRateFlag4VerticalPixelsEXT", 1, &E_GL_EXT_fragment_shading_rate); - symbolTable.setVariableExtensions("gl_ShadingRateFlag2HorizontalPixelsEXT", 1, &E_GL_EXT_fragment_shading_rate); - symbolTable.setVariableExtensions("gl_ShadingRateFlag4HorizontalPixelsEXT", 1, &E_GL_EXT_fragment_shading_rate); - } -#endif // !GLSLANG_WEB - break; - - case EShLangCompute: - BuiltInVariable("gl_NumWorkGroups", EbvNumWorkGroups, symbolTable); - BuiltInVariable("gl_WorkGroupSize", EbvWorkGroupSize, symbolTable); - BuiltInVariable("gl_WorkGroupID", EbvWorkGroupId, symbolTable); - BuiltInVariable("gl_LocalInvocationID", EbvLocalInvocationId, symbolTable); - BuiltInVariable("gl_GlobalInvocationID", EbvGlobalInvocationId, symbolTable); - BuiltInVariable("gl_LocalInvocationIndex", EbvLocalInvocationIndex, symbolTable); - BuiltInVariable("gl_DeviceIndex", EbvDeviceIndex, symbolTable); - BuiltInVariable("gl_ViewIndex", EbvViewIndex, symbolTable); - -#ifndef GLSLANG_WEB - if ((profile != EEsProfile && version >= 140) || - (profile == EEsProfile && version >= 310)) { - symbolTable.setVariableExtensions("gl_DeviceIndex", 1, &E_GL_EXT_device_group); - symbolTable.setVariableExtensions("gl_ViewIndex", 1, &E_GL_EXT_multiview); - } - - if (profile != EEsProfile && version < 430) { - symbolTable.setVariableExtensions("gl_NumWorkGroups", 1, &E_GL_ARB_compute_shader); - symbolTable.setVariableExtensions("gl_WorkGroupSize", 1, &E_GL_ARB_compute_shader); - symbolTable.setVariableExtensions("gl_WorkGroupID", 1, &E_GL_ARB_compute_shader); - symbolTable.setVariableExtensions("gl_LocalInvocationID", 1, &E_GL_ARB_compute_shader); - symbolTable.setVariableExtensions("gl_GlobalInvocationID", 1, &E_GL_ARB_compute_shader); - symbolTable.setVariableExtensions("gl_LocalInvocationIndex", 1, &E_GL_ARB_compute_shader); - - symbolTable.setVariableExtensions("gl_MaxComputeWorkGroupCount", 1, &E_GL_ARB_compute_shader); - symbolTable.setVariableExtensions("gl_MaxComputeWorkGroupSize", 1, &E_GL_ARB_compute_shader); - symbolTable.setVariableExtensions("gl_MaxComputeUniformComponents", 1, &E_GL_ARB_compute_shader); - symbolTable.setVariableExtensions("gl_MaxComputeTextureImageUnits", 1, &E_GL_ARB_compute_shader); - symbolTable.setVariableExtensions("gl_MaxComputeImageUniforms", 1, &E_GL_ARB_compute_shader); - symbolTable.setVariableExtensions("gl_MaxComputeAtomicCounters", 1, &E_GL_ARB_compute_shader); - symbolTable.setVariableExtensions("gl_MaxComputeAtomicCounterBuffers", 1, &E_GL_ARB_compute_shader); - - symbolTable.setFunctionExtensions("barrier", 1, &E_GL_ARB_compute_shader); - symbolTable.setFunctionExtensions("memoryBarrierAtomicCounter", 1, &E_GL_ARB_compute_shader); - symbolTable.setFunctionExtensions("memoryBarrierBuffer", 1, &E_GL_ARB_compute_shader); - symbolTable.setFunctionExtensions("memoryBarrierImage", 1, &E_GL_ARB_compute_shader); - symbolTable.setFunctionExtensions("memoryBarrierShared", 1, &E_GL_ARB_compute_shader); - symbolTable.setFunctionExtensions("groupMemoryBarrier", 1, &E_GL_ARB_compute_shader); - } - - - symbolTable.setFunctionExtensions("controlBarrier", 1, &E_GL_KHR_memory_scope_semantics); - symbolTable.setFunctionExtensions("debugPrintfEXT", 1, &E_GL_EXT_debug_printf); - - // 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 ((profile == EEsProfile && version >= 310) || - (profile != EEsProfile && version >= 140)) { - 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); - - // GL_NV_shader_sm_builtins - symbolTable.setVariableExtensions("gl_WarpsPerSMNV", 1, &E_GL_NV_shader_sm_builtins); - symbolTable.setVariableExtensions("gl_SMCountNV", 1, &E_GL_NV_shader_sm_builtins); - symbolTable.setVariableExtensions("gl_WarpIDNV", 1, &E_GL_NV_shader_sm_builtins); - symbolTable.setVariableExtensions("gl_SMIDNV", 1, &E_GL_NV_shader_sm_builtins); - BuiltInVariable("gl_WarpsPerSMNV", EbvWarpsPerSM, symbolTable); - BuiltInVariable("gl_SMCountNV", EbvSMCount, symbolTable); - BuiltInVariable("gl_WarpIDNV", EbvWarpID, symbolTable); - BuiltInVariable("gl_SMIDNV", EbvSMID, symbolTable); - } - - // GL_KHR_shader_subgroup - if ((profile == EEsProfile && version >= 310) || - (profile != EEsProfile && version >= 140)) { - 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); - } - - { - const char *coopExt[2] = { E_GL_NV_cooperative_matrix, E_GL_NV_integer_cooperative_matrix }; - symbolTable.setFunctionExtensions("coopMatLoadNV", 2, coopExt); - symbolTable.setFunctionExtensions("coopMatStoreNV", 2, coopExt); - symbolTable.setFunctionExtensions("coopMatMulAddNV", 2, coopExt); - } - - if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 320)) { - symbolTable.setFunctionExtensions("dFdx", 1, &E_GL_NV_compute_shader_derivatives); - symbolTable.setFunctionExtensions("dFdy", 1, &E_GL_NV_compute_shader_derivatives); - symbolTable.setFunctionExtensions("fwidth", 1, &E_GL_NV_compute_shader_derivatives); - symbolTable.setFunctionExtensions("dFdxFine", 1, &E_GL_NV_compute_shader_derivatives); - symbolTable.setFunctionExtensions("dFdyFine", 1, &E_GL_NV_compute_shader_derivatives); - symbolTable.setFunctionExtensions("fwidthFine", 1, &E_GL_NV_compute_shader_derivatives); - symbolTable.setFunctionExtensions("dFdxCoarse", 1, &E_GL_NV_compute_shader_derivatives); - symbolTable.setFunctionExtensions("dFdyCoarse", 1, &E_GL_NV_compute_shader_derivatives); - symbolTable.setFunctionExtensions("fwidthCoarse", 1, &E_GL_NV_compute_shader_derivatives); - } - - if ((profile == EEsProfile && version >= 310) || - (profile != EEsProfile && version >= 450)) { - symbolTable.setVariableExtensions("gl_ShadingRateFlag2VerticalPixelsEXT", 1, &E_GL_EXT_fragment_shading_rate); - symbolTable.setVariableExtensions("gl_ShadingRateFlag4VerticalPixelsEXT", 1, &E_GL_EXT_fragment_shading_rate); - symbolTable.setVariableExtensions("gl_ShadingRateFlag2HorizontalPixelsEXT", 1, &E_GL_EXT_fragment_shading_rate); - symbolTable.setVariableExtensions("gl_ShadingRateFlag4HorizontalPixelsEXT", 1, &E_GL_EXT_fragment_shading_rate); - } -#endif // !GLSLANG_WEB - break; - -#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) - case EShLangRayGen: - case EShLangIntersect: - case EShLangAnyHit: - case EShLangClosestHit: - case EShLangMiss: - case EShLangCallable: - if (profile != EEsProfile && version >= 460) { - const char *rtexts[] = { E_GL_NV_ray_tracing, E_GL_EXT_ray_tracing }; - symbolTable.setVariableExtensions("gl_LaunchIDNV", 1, &E_GL_NV_ray_tracing); - symbolTable.setVariableExtensions("gl_LaunchIDEXT", 1, &E_GL_EXT_ray_tracing); - symbolTable.setVariableExtensions("gl_LaunchSizeNV", 1, &E_GL_NV_ray_tracing); - symbolTable.setVariableExtensions("gl_LaunchSizeEXT", 1, &E_GL_EXT_ray_tracing); - symbolTable.setVariableExtensions("gl_PrimitiveID", 2, rtexts); - symbolTable.setVariableExtensions("gl_InstanceID", 2, rtexts); - symbolTable.setVariableExtensions("gl_InstanceCustomIndexNV", 1, &E_GL_NV_ray_tracing); - symbolTable.setVariableExtensions("gl_InstanceCustomIndexEXT", 1, &E_GL_EXT_ray_tracing); - symbolTable.setVariableExtensions("gl_GeometryIndexEXT", 1, &E_GL_EXT_ray_tracing); - symbolTable.setVariableExtensions("gl_WorldRayOriginNV", 1, &E_GL_NV_ray_tracing); - symbolTable.setVariableExtensions("gl_WorldRayOriginEXT", 1, &E_GL_EXT_ray_tracing); - symbolTable.setVariableExtensions("gl_WorldRayDirectionNV", 1, &E_GL_NV_ray_tracing); - symbolTable.setVariableExtensions("gl_WorldRayDirectionEXT", 1, &E_GL_EXT_ray_tracing); - symbolTable.setVariableExtensions("gl_ObjectRayOriginNV", 1, &E_GL_NV_ray_tracing); - symbolTable.setVariableExtensions("gl_ObjectRayOriginEXT", 1, &E_GL_EXT_ray_tracing); - symbolTable.setVariableExtensions("gl_ObjectRayDirectionNV", 1, &E_GL_NV_ray_tracing); - symbolTable.setVariableExtensions("gl_ObjectRayDirectionEXT", 1, &E_GL_EXT_ray_tracing); - symbolTable.setVariableExtensions("gl_RayTminNV", 1, &E_GL_NV_ray_tracing); - symbolTable.setVariableExtensions("gl_RayTminEXT", 1, &E_GL_EXT_ray_tracing); - symbolTable.setVariableExtensions("gl_RayTmaxNV", 1, &E_GL_NV_ray_tracing); - symbolTable.setVariableExtensions("gl_RayTmaxEXT", 1, &E_GL_EXT_ray_tracing); - symbolTable.setVariableExtensions("gl_HitTNV", 1, &E_GL_NV_ray_tracing); - symbolTable.setVariableExtensions("gl_HitTEXT", 1, &E_GL_EXT_ray_tracing); - symbolTable.setVariableExtensions("gl_HitKindNV", 1, &E_GL_NV_ray_tracing); - symbolTable.setVariableExtensions("gl_HitKindEXT", 1, &E_GL_EXT_ray_tracing); - symbolTable.setVariableExtensions("gl_ObjectToWorldNV", 1, &E_GL_NV_ray_tracing); - symbolTable.setVariableExtensions("gl_ObjectToWorldEXT", 1, &E_GL_EXT_ray_tracing); - symbolTable.setVariableExtensions("gl_ObjectToWorld3x4EXT", 1, &E_GL_EXT_ray_tracing); - symbolTable.setVariableExtensions("gl_WorldToObjectNV", 1, &E_GL_NV_ray_tracing); - symbolTable.setVariableExtensions("gl_WorldToObjectEXT", 1, &E_GL_EXT_ray_tracing); - symbolTable.setVariableExtensions("gl_WorldToObject3x4EXT", 1, &E_GL_EXT_ray_tracing); - symbolTable.setVariableExtensions("gl_IncomingRayFlagsNV", 1, &E_GL_NV_ray_tracing); - symbolTable.setVariableExtensions("gl_IncomingRayFlagsEXT", 1, &E_GL_EXT_ray_tracing); - symbolTable.setVariableExtensions("gl_CurrentRayTimeNV", 1, &E_GL_NV_ray_tracing_motion_blur); - - symbolTable.setVariableExtensions("gl_DeviceIndex", 1, &E_GL_EXT_device_group); - - - symbolTable.setFunctionExtensions("traceNV", 1, &E_GL_NV_ray_tracing); - symbolTable.setFunctionExtensions("traceRayMotionNV", 1, &E_GL_NV_ray_tracing_motion_blur); - symbolTable.setFunctionExtensions("traceRayEXT", 1, &E_GL_EXT_ray_tracing); - symbolTable.setFunctionExtensions("reportIntersectionNV", 1, &E_GL_NV_ray_tracing); - symbolTable.setFunctionExtensions("reportIntersectionEXT", 1, &E_GL_EXT_ray_tracing); - symbolTable.setFunctionExtensions("ignoreIntersectionNV", 1, &E_GL_NV_ray_tracing); - symbolTable.setFunctionExtensions("terminateRayNV", 1, &E_GL_NV_ray_tracing); - symbolTable.setFunctionExtensions("executeCallableNV", 1, &E_GL_NV_ray_tracing); - symbolTable.setFunctionExtensions("executeCallableEXT", 1, &E_GL_EXT_ray_tracing); - - - BuiltInVariable("gl_LaunchIDNV", EbvLaunchId, symbolTable); - BuiltInVariable("gl_LaunchIDEXT", EbvLaunchId, symbolTable); - BuiltInVariable("gl_LaunchSizeNV", EbvLaunchSize, symbolTable); - BuiltInVariable("gl_LaunchSizeEXT", EbvLaunchSize, symbolTable); - BuiltInVariable("gl_PrimitiveID", EbvPrimitiveId, symbolTable); - BuiltInVariable("gl_InstanceID", EbvInstanceId, symbolTable); - BuiltInVariable("gl_InstanceCustomIndexNV", EbvInstanceCustomIndex,symbolTable); - BuiltInVariable("gl_InstanceCustomIndexEXT", EbvInstanceCustomIndex,symbolTable); - BuiltInVariable("gl_GeometryIndexEXT", EbvGeometryIndex, symbolTable); - BuiltInVariable("gl_WorldRayOriginNV", EbvWorldRayOrigin, symbolTable); - BuiltInVariable("gl_WorldRayOriginEXT", EbvWorldRayOrigin, symbolTable); - BuiltInVariable("gl_WorldRayDirectionNV", EbvWorldRayDirection, symbolTable); - BuiltInVariable("gl_WorldRayDirectionEXT", EbvWorldRayDirection, symbolTable); - BuiltInVariable("gl_ObjectRayOriginNV", EbvObjectRayOrigin, symbolTable); - BuiltInVariable("gl_ObjectRayOriginEXT", EbvObjectRayOrigin, symbolTable); - BuiltInVariable("gl_ObjectRayDirectionNV", EbvObjectRayDirection, symbolTable); - BuiltInVariable("gl_ObjectRayDirectionEXT", EbvObjectRayDirection, symbolTable); - BuiltInVariable("gl_RayTminNV", EbvRayTmin, symbolTable); - BuiltInVariable("gl_RayTminEXT", EbvRayTmin, symbolTable); - BuiltInVariable("gl_RayTmaxNV", EbvRayTmax, symbolTable); - BuiltInVariable("gl_RayTmaxEXT", EbvRayTmax, symbolTable); - BuiltInVariable("gl_HitTNV", EbvHitT, symbolTable); - BuiltInVariable("gl_HitTEXT", EbvHitT, symbolTable); - BuiltInVariable("gl_HitKindNV", EbvHitKind, symbolTable); - BuiltInVariable("gl_HitKindEXT", EbvHitKind, symbolTable); - BuiltInVariable("gl_ObjectToWorldNV", EbvObjectToWorld, symbolTable); - BuiltInVariable("gl_ObjectToWorldEXT", EbvObjectToWorld, symbolTable); - BuiltInVariable("gl_ObjectToWorld3x4EXT", EbvObjectToWorld3x4, symbolTable); - BuiltInVariable("gl_WorldToObjectNV", EbvWorldToObject, symbolTable); - BuiltInVariable("gl_WorldToObjectEXT", EbvWorldToObject, symbolTable); - BuiltInVariable("gl_WorldToObject3x4EXT", EbvWorldToObject3x4, symbolTable); - BuiltInVariable("gl_IncomingRayFlagsNV", EbvIncomingRayFlags, symbolTable); - BuiltInVariable("gl_IncomingRayFlagsEXT", EbvIncomingRayFlags, symbolTable); - BuiltInVariable("gl_DeviceIndex", EbvDeviceIndex, symbolTable); - BuiltInVariable("gl_CurrentRayTimeNV", EbvCurrentRayTimeNV, symbolTable); - - // GL_ARB_shader_ballot - 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 - symbolTable.setVariableExtensions("gl_NumSubgroups", 1, &E_GL_KHR_shader_subgroup_basic); - symbolTable.setVariableExtensions("gl_SubgroupID", 1, &E_GL_KHR_shader_subgroup_basic); - 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_NumSubgroups", EbvNumSubgroups, symbolTable); - BuiltInVariable("gl_SubgroupID", EbvSubgroupID, symbolTable); - 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); - - // GL_NV_shader_sm_builtins - symbolTable.setVariableExtensions("gl_WarpsPerSMNV", 1, &E_GL_NV_shader_sm_builtins); - symbolTable.setVariableExtensions("gl_SMCountNV", 1, &E_GL_NV_shader_sm_builtins); - symbolTable.setVariableExtensions("gl_WarpIDNV", 1, &E_GL_NV_shader_sm_builtins); - symbolTable.setVariableExtensions("gl_SMIDNV", 1, &E_GL_NV_shader_sm_builtins); - BuiltInVariable("gl_WarpsPerSMNV", EbvWarpsPerSM, symbolTable); - BuiltInVariable("gl_SMCountNV", EbvSMCount, symbolTable); - BuiltInVariable("gl_WarpIDNV", EbvWarpID, symbolTable); - BuiltInVariable("gl_SMIDNV", EbvSMID, symbolTable); - } - if ((profile == EEsProfile && version >= 310) || - (profile != EEsProfile && version >= 450)) { - symbolTable.setVariableExtensions("gl_ShadingRateFlag2VerticalPixelsEXT", 1, &E_GL_EXT_fragment_shading_rate); - symbolTable.setVariableExtensions("gl_ShadingRateFlag4VerticalPixelsEXT", 1, &E_GL_EXT_fragment_shading_rate); - symbolTable.setVariableExtensions("gl_ShadingRateFlag2HorizontalPixelsEXT", 1, &E_GL_EXT_fragment_shading_rate); - symbolTable.setVariableExtensions("gl_ShadingRateFlag4HorizontalPixelsEXT", 1, &E_GL_EXT_fragment_shading_rate); - } - break; - - case EShLangMeshNV: - if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 320)) { - // per-vertex builtins - symbolTable.setVariableExtensions("gl_MeshVerticesNV", "gl_Position", 1, &E_GL_NV_mesh_shader); - symbolTable.setVariableExtensions("gl_MeshVerticesNV", "gl_PointSize", 1, &E_GL_NV_mesh_shader); - symbolTable.setVariableExtensions("gl_MeshVerticesNV", "gl_ClipDistance", 1, &E_GL_NV_mesh_shader); - symbolTable.setVariableExtensions("gl_MeshVerticesNV", "gl_CullDistance", 1, &E_GL_NV_mesh_shader); - - BuiltInVariable("gl_MeshVerticesNV", "gl_Position", EbvPosition, symbolTable); - BuiltInVariable("gl_MeshVerticesNV", "gl_PointSize", EbvPointSize, symbolTable); - BuiltInVariable("gl_MeshVerticesNV", "gl_ClipDistance", EbvClipDistance, symbolTable); - BuiltInVariable("gl_MeshVerticesNV", "gl_CullDistance", EbvCullDistance, symbolTable); - - symbolTable.setVariableExtensions("gl_MeshVerticesNV", "gl_PositionPerViewNV", 1, &E_GL_NV_mesh_shader); - symbolTable.setVariableExtensions("gl_MeshVerticesNV", "gl_ClipDistancePerViewNV", 1, &E_GL_NV_mesh_shader); - symbolTable.setVariableExtensions("gl_MeshVerticesNV", "gl_CullDistancePerViewNV", 1, &E_GL_NV_mesh_shader); - - BuiltInVariable("gl_MeshVerticesNV", "gl_PositionPerViewNV", EbvPositionPerViewNV, symbolTable); - BuiltInVariable("gl_MeshVerticesNV", "gl_ClipDistancePerViewNV", EbvClipDistancePerViewNV, symbolTable); - BuiltInVariable("gl_MeshVerticesNV", "gl_CullDistancePerViewNV", EbvCullDistancePerViewNV, symbolTable); - - // per-primitive builtins - symbolTable.setVariableExtensions("gl_MeshPrimitivesNV", "gl_PrimitiveID", 1, &E_GL_NV_mesh_shader); - symbolTable.setVariableExtensions("gl_MeshPrimitivesNV", "gl_Layer", 1, &E_GL_NV_mesh_shader); - symbolTable.setVariableExtensions("gl_MeshPrimitivesNV", "gl_ViewportIndex", 1, &E_GL_NV_mesh_shader); - symbolTable.setVariableExtensions("gl_MeshPrimitivesNV", "gl_ViewportMask", 1, &E_GL_NV_mesh_shader); - - BuiltInVariable("gl_MeshPrimitivesNV", "gl_PrimitiveID", EbvPrimitiveId, symbolTable); - BuiltInVariable("gl_MeshPrimitivesNV", "gl_Layer", EbvLayer, symbolTable); - BuiltInVariable("gl_MeshPrimitivesNV", "gl_ViewportIndex", EbvViewportIndex, symbolTable); - BuiltInVariable("gl_MeshPrimitivesNV", "gl_ViewportMask", EbvViewportMaskNV, symbolTable); - - // per-view per-primitive builtins - symbolTable.setVariableExtensions("gl_MeshPrimitivesNV", "gl_LayerPerViewNV", 1, &E_GL_NV_mesh_shader); - symbolTable.setVariableExtensions("gl_MeshPrimitivesNV", "gl_ViewportMaskPerViewNV", 1, &E_GL_NV_mesh_shader); - - BuiltInVariable("gl_MeshPrimitivesNV", "gl_LayerPerViewNV", EbvLayerPerViewNV, symbolTable); - BuiltInVariable("gl_MeshPrimitivesNV", "gl_ViewportMaskPerViewNV", EbvViewportMaskPerViewNV, symbolTable); - - // other builtins - symbolTable.setVariableExtensions("gl_PrimitiveCountNV", 1, &E_GL_NV_mesh_shader); - symbolTable.setVariableExtensions("gl_PrimitiveIndicesNV", 1, &E_GL_NV_mesh_shader); - symbolTable.setVariableExtensions("gl_MeshViewCountNV", 1, &E_GL_NV_mesh_shader); - symbolTable.setVariableExtensions("gl_MeshViewIndicesNV", 1, &E_GL_NV_mesh_shader); - symbolTable.setVariableExtensions("gl_WorkGroupSize", 1, &E_GL_NV_mesh_shader); - symbolTable.setVariableExtensions("gl_WorkGroupID", 1, &E_GL_NV_mesh_shader); - symbolTable.setVariableExtensions("gl_LocalInvocationID", 1, &E_GL_NV_mesh_shader); - symbolTable.setVariableExtensions("gl_GlobalInvocationID", 1, &E_GL_NV_mesh_shader); - symbolTable.setVariableExtensions("gl_LocalInvocationIndex", 1, &E_GL_NV_mesh_shader); - - BuiltInVariable("gl_PrimitiveCountNV", EbvPrimitiveCountNV, symbolTable); - BuiltInVariable("gl_PrimitiveIndicesNV", EbvPrimitiveIndicesNV, symbolTable); - BuiltInVariable("gl_MeshViewCountNV", EbvMeshViewCountNV, symbolTable); - BuiltInVariable("gl_MeshViewIndicesNV", EbvMeshViewIndicesNV, symbolTable); - BuiltInVariable("gl_WorkGroupSize", EbvWorkGroupSize, symbolTable); - BuiltInVariable("gl_WorkGroupID", EbvWorkGroupId, symbolTable); - BuiltInVariable("gl_LocalInvocationID", EbvLocalInvocationId, symbolTable); - BuiltInVariable("gl_GlobalInvocationID", EbvGlobalInvocationId, symbolTable); - BuiltInVariable("gl_LocalInvocationIndex", EbvLocalInvocationIndex, symbolTable); - - // builtin constants - symbolTable.setVariableExtensions("gl_MaxMeshOutputVerticesNV", 1, &E_GL_NV_mesh_shader); - symbolTable.setVariableExtensions("gl_MaxMeshOutputPrimitivesNV", 1, &E_GL_NV_mesh_shader); - symbolTable.setVariableExtensions("gl_MaxMeshWorkGroupSizeNV", 1, &E_GL_NV_mesh_shader); - symbolTable.setVariableExtensions("gl_MaxMeshViewCountNV", 1, &E_GL_NV_mesh_shader); - - // builtin functions - symbolTable.setFunctionExtensions("barrier", 1, &E_GL_NV_mesh_shader); - symbolTable.setFunctionExtensions("memoryBarrierShared", 1, &E_GL_NV_mesh_shader); - symbolTable.setFunctionExtensions("groupMemoryBarrier", 1, &E_GL_NV_mesh_shader); - } - - if (profile != EEsProfile && version >= 450) { - // GL_EXT_device_group - symbolTable.setVariableExtensions("gl_DeviceIndex", 1, &E_GL_EXT_device_group); - BuiltInVariable("gl_DeviceIndex", EbvDeviceIndex, symbolTable); - - // GL_ARB_shader_draw_parameters - symbolTable.setVariableExtensions("gl_DrawIDARB", 1, &E_GL_ARB_shader_draw_parameters); - BuiltInVariable("gl_DrawIDARB", EbvDrawId, symbolTable); - if (version >= 460) { - BuiltInVariable("gl_DrawID", EbvDrawId, symbolTable); - } - - // GL_ARB_shader_ballot - 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 ((profile == EEsProfile && version >= 310) || - (profile != EEsProfile && version >= 140)) { - symbolTable.setVariableExtensions("gl_NumSubgroups", 1, &E_GL_KHR_shader_subgroup_basic); - symbolTable.setVariableExtensions("gl_SubgroupID", 1, &E_GL_KHR_shader_subgroup_basic); - 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_NumSubgroups", EbvNumSubgroups, symbolTable); - BuiltInVariable("gl_SubgroupID", EbvSubgroupID, symbolTable); - 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("subgroupMemoryBarrierShared", 1, &E_GL_KHR_shader_subgroup_basic); - - // GL_NV_shader_sm_builtins - symbolTable.setVariableExtensions("gl_WarpsPerSMNV", 1, &E_GL_NV_shader_sm_builtins); - symbolTable.setVariableExtensions("gl_SMCountNV", 1, &E_GL_NV_shader_sm_builtins); - symbolTable.setVariableExtensions("gl_WarpIDNV", 1, &E_GL_NV_shader_sm_builtins); - symbolTable.setVariableExtensions("gl_SMIDNV", 1, &E_GL_NV_shader_sm_builtins); - BuiltInVariable("gl_WarpsPerSMNV", EbvWarpsPerSM, symbolTable); - BuiltInVariable("gl_SMCountNV", EbvSMCount, symbolTable); - BuiltInVariable("gl_WarpIDNV", EbvWarpID, symbolTable); - BuiltInVariable("gl_SMIDNV", EbvSMID, symbolTable); - } - - if ((profile == EEsProfile && version >= 310) || - (profile != EEsProfile && version >= 450)) { - symbolTable.setVariableExtensions("gl_ShadingRateFlag2VerticalPixelsEXT", 1, &E_GL_EXT_fragment_shading_rate); - symbolTable.setVariableExtensions("gl_ShadingRateFlag4VerticalPixelsEXT", 1, &E_GL_EXT_fragment_shading_rate); - symbolTable.setVariableExtensions("gl_ShadingRateFlag2HorizontalPixelsEXT", 1, &E_GL_EXT_fragment_shading_rate); - symbolTable.setVariableExtensions("gl_ShadingRateFlag4HorizontalPixelsEXT", 1, &E_GL_EXT_fragment_shading_rate); - } - break; - - case EShLangTaskNV: - if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 320)) { - symbolTable.setVariableExtensions("gl_TaskCountNV", 1, &E_GL_NV_mesh_shader); - symbolTable.setVariableExtensions("gl_WorkGroupSize", 1, &E_GL_NV_mesh_shader); - symbolTable.setVariableExtensions("gl_WorkGroupID", 1, &E_GL_NV_mesh_shader); - symbolTable.setVariableExtensions("gl_LocalInvocationID", 1, &E_GL_NV_mesh_shader); - symbolTable.setVariableExtensions("gl_GlobalInvocationID", 1, &E_GL_NV_mesh_shader); - symbolTable.setVariableExtensions("gl_LocalInvocationIndex", 1, &E_GL_NV_mesh_shader); - symbolTable.setVariableExtensions("gl_MeshViewCountNV", 1, &E_GL_NV_mesh_shader); - symbolTable.setVariableExtensions("gl_MeshViewIndicesNV", 1, &E_GL_NV_mesh_shader); - - BuiltInVariable("gl_TaskCountNV", EbvTaskCountNV, symbolTable); - BuiltInVariable("gl_WorkGroupSize", EbvWorkGroupSize, symbolTable); - BuiltInVariable("gl_WorkGroupID", EbvWorkGroupId, symbolTable); - BuiltInVariable("gl_LocalInvocationID", EbvLocalInvocationId, symbolTable); - BuiltInVariable("gl_GlobalInvocationID", EbvGlobalInvocationId, symbolTable); - BuiltInVariable("gl_LocalInvocationIndex", EbvLocalInvocationIndex, symbolTable); - BuiltInVariable("gl_MeshViewCountNV", EbvMeshViewCountNV, symbolTable); - BuiltInVariable("gl_MeshViewIndicesNV", EbvMeshViewIndicesNV, symbolTable); - - symbolTable.setVariableExtensions("gl_MaxTaskWorkGroupSizeNV", 1, &E_GL_NV_mesh_shader); - symbolTable.setVariableExtensions("gl_MaxMeshViewCountNV", 1, &E_GL_NV_mesh_shader); - - symbolTable.setFunctionExtensions("barrier", 1, &E_GL_NV_mesh_shader); - symbolTable.setFunctionExtensions("memoryBarrierShared", 1, &E_GL_NV_mesh_shader); - symbolTable.setFunctionExtensions("groupMemoryBarrier", 1, &E_GL_NV_mesh_shader); - } - - if (profile != EEsProfile && version >= 450) { - // GL_EXT_device_group - symbolTable.setVariableExtensions("gl_DeviceIndex", 1, &E_GL_EXT_device_group); - BuiltInVariable("gl_DeviceIndex", EbvDeviceIndex, symbolTable); - - // GL_ARB_shader_draw_parameters - symbolTable.setVariableExtensions("gl_DrawIDARB", 1, &E_GL_ARB_shader_draw_parameters); - BuiltInVariable("gl_DrawIDARB", EbvDrawId, symbolTable); - if (version >= 460) { - BuiltInVariable("gl_DrawID", EbvDrawId, symbolTable); - } - - // GL_ARB_shader_ballot - 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 ((profile == EEsProfile && version >= 310) || - (profile != EEsProfile && version >= 140)) { - symbolTable.setVariableExtensions("gl_NumSubgroups", 1, &E_GL_KHR_shader_subgroup_basic); - symbolTable.setVariableExtensions("gl_SubgroupID", 1, &E_GL_KHR_shader_subgroup_basic); - 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_NumSubgroups", EbvNumSubgroups, symbolTable); - BuiltInVariable("gl_SubgroupID", EbvSubgroupID, symbolTable); - 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("subgroupMemoryBarrierShared", 1, &E_GL_KHR_shader_subgroup_basic); - - // GL_NV_shader_sm_builtins - symbolTable.setVariableExtensions("gl_WarpsPerSMNV", 1, &E_GL_NV_shader_sm_builtins); - symbolTable.setVariableExtensions("gl_SMCountNV", 1, &E_GL_NV_shader_sm_builtins); - symbolTable.setVariableExtensions("gl_WarpIDNV", 1, &E_GL_NV_shader_sm_builtins); - symbolTable.setVariableExtensions("gl_SMIDNV", 1, &E_GL_NV_shader_sm_builtins); - BuiltInVariable("gl_WarpsPerSMNV", EbvWarpsPerSM, symbolTable); - BuiltInVariable("gl_SMCountNV", EbvSMCount, symbolTable); - BuiltInVariable("gl_WarpIDNV", EbvWarpID, symbolTable); - BuiltInVariable("gl_SMIDNV", EbvSMID, symbolTable); - } - if ((profile == EEsProfile && version >= 310) || - (profile != EEsProfile && version >= 450)) { - symbolTable.setVariableExtensions("gl_ShadingRateFlag2VerticalPixelsEXT", 1, &E_GL_EXT_fragment_shading_rate); - symbolTable.setVariableExtensions("gl_ShadingRateFlag4VerticalPixelsEXT", 1, &E_GL_EXT_fragment_shading_rate); - symbolTable.setVariableExtensions("gl_ShadingRateFlag2HorizontalPixelsEXT", 1, &E_GL_EXT_fragment_shading_rate); - symbolTable.setVariableExtensions("gl_ShadingRateFlag4HorizontalPixelsEXT", 1, &E_GL_EXT_fragment_shading_rate); - } - break; -#endif - - default: - assert(false && "Language not supported"); - break; - } - - // - // Next, identify which built-ins have a mapping to an operator. - // If PureOperatorBuiltins is false, those that are not identified as such are - // expected to be resolved through a library of functions, versus as - // operations. - // - - relateTabledBuiltins(version, profile, spvVersion, language, symbolTable); - -#ifndef GLSLANG_WEB - symbolTable.relateToOperator("doubleBitsToInt64", EOpDoubleBitsToInt64); - 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("packSnorm4x8", EOpPackSnorm4x8); - symbolTable.relateToOperator("unpackSnorm4x8", EOpUnpackSnorm4x8); - symbolTable.relateToOperator("packUnorm4x8", EOpPackUnorm4x8); - symbolTable.relateToOperator("unpackUnorm4x8", EOpUnpackUnorm4x8); - - symbolTable.relateToOperator("packDouble2x32", EOpPackDouble2x32); - symbolTable.relateToOperator("unpackDouble2x32", EOpUnpackDouble2x32); - - symbolTable.relateToOperator("packInt2x32", EOpPackInt2x32); - symbolTable.relateToOperator("unpackInt2x32", EOpUnpackInt2x32); - 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); - 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); - - symbolTable.relateToOperator("controlBarrier", EOpBarrier); - symbolTable.relateToOperator("memoryBarrierAtomicCounter", EOpMemoryBarrierAtomicCounter); - symbolTable.relateToOperator("memoryBarrierImage", EOpMemoryBarrierImage); - - if (spvVersion.vulkanRelaxed) { - // - // functions signature have been replaced to take uint operations on buffer variables - // remap atomic counter functions to atomic operations - // - symbolTable.relateToOperator("memoryBarrierAtomicCounter", EOpMemoryBarrierBuffer); - } - - symbolTable.relateToOperator("atomicLoad", EOpAtomicLoad); - symbolTable.relateToOperator("atomicStore", EOpAtomicStore); - - symbolTable.relateToOperator("atomicCounterIncrement", EOpAtomicCounterIncrement); - symbolTable.relateToOperator("atomicCounterDecrement", EOpAtomicCounterDecrement); - symbolTable.relateToOperator("atomicCounter", EOpAtomicCounter); - - if (spvVersion.vulkanRelaxed) { - // - // functions signature have been replaced to take uint operations - // remap atomic counter functions to atomic operations - // - // these atomic counter functions do not match signatures of glsl - // atomic functions, so they will be remapped to semantically - // equivalent functions in the parser - // - symbolTable.relateToOperator("atomicCounterIncrement", EOpNull); - symbolTable.relateToOperator("atomicCounterDecrement", EOpNull); - symbolTable.relateToOperator("atomicCounter", EOpNull); - } - - symbolTable.relateToOperator("clockARB", EOpReadClockSubgroupKHR); - symbolTable.relateToOperator("clock2x32ARB", EOpReadClockSubgroupKHR); - - symbolTable.relateToOperator("clockRealtimeEXT", EOpReadClockDeviceKHR); - symbolTable.relateToOperator("clockRealtime2x32EXT", EOpReadClockDeviceKHR); - - if (profile != EEsProfile && version == 450) { - symbolTable.relateToOperator("atomicCounterAddARB", EOpAtomicCounterAdd); - symbolTable.relateToOperator("atomicCounterSubtractARB", EOpAtomicCounterSubtract); - symbolTable.relateToOperator("atomicCounterMinARB", EOpAtomicCounterMin); - symbolTable.relateToOperator("atomicCounterMaxARB", EOpAtomicCounterMax); - symbolTable.relateToOperator("atomicCounterAndARB", EOpAtomicCounterAnd); - symbolTable.relateToOperator("atomicCounterOrARB", EOpAtomicCounterOr); - symbolTable.relateToOperator("atomicCounterXorARB", EOpAtomicCounterXor); - symbolTable.relateToOperator("atomicCounterExchangeARB", EOpAtomicCounterExchange); - symbolTable.relateToOperator("atomicCounterCompSwapARB", EOpAtomicCounterCompSwap); - } - - 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); - } - - if (spvVersion.vulkanRelaxed) { - // - // functions signature have been replaced to take 'uint' instead of 'atomic_uint' - // remap atomic counter functions to non-counter atomic ops so - // functions act as aliases to non-counter atomic ops - // - symbolTable.relateToOperator("atomicCounterAdd", EOpAtomicAdd); - symbolTable.relateToOperator("atomicCounterSubtract", EOpAtomicSubtract); - symbolTable.relateToOperator("atomicCounterMin", EOpAtomicMin); - symbolTable.relateToOperator("atomicCounterMax", EOpAtomicMax); - symbolTable.relateToOperator("atomicCounterAnd", EOpAtomicAnd); - symbolTable.relateToOperator("atomicCounterOr", EOpAtomicOr); - symbolTable.relateToOperator("atomicCounterXor", EOpAtomicXor); - symbolTable.relateToOperator("atomicCounterExchange", EOpAtomicExchange); - symbolTable.relateToOperator("atomicCounterCompSwap", EOpAtomicCompSwap); - } - - symbolTable.relateToOperator("fma", EOpFma); - symbolTable.relateToOperator("frexp", EOpFrexp); - symbolTable.relateToOperator("ldexp", EOpLdexp); - symbolTable.relateToOperator("uaddCarry", EOpAddCarry); - symbolTable.relateToOperator("usubBorrow", EOpSubBorrow); - symbolTable.relateToOperator("umulExtended", EOpUMulExtended); - symbolTable.relateToOperator("imulExtended", EOpIMulExtended); - symbolTable.relateToOperator("bitfieldExtract", EOpBitfieldExtract); - symbolTable.relateToOperator("bitfieldInsert", EOpBitfieldInsert); - symbolTable.relateToOperator("bitfieldReverse", EOpBitFieldReverse); - symbolTable.relateToOperator("bitCount", EOpBitCount); - symbolTable.relateToOperator("findLSB", EOpFindLSB); - symbolTable.relateToOperator("findMSB", EOpFindMSB); - - symbolTable.relateToOperator("helperInvocationEXT", EOpIsHelperInvocation); - - symbolTable.relateToOperator("countLeadingZeros", EOpCountLeadingZeros); - symbolTable.relateToOperator("countTrailingZeros", EOpCountTrailingZeros); - symbolTable.relateToOperator("absoluteDifference", EOpAbsDifference); - symbolTable.relateToOperator("addSaturate", EOpAddSaturate); - symbolTable.relateToOperator("subtractSaturate", EOpSubSaturate); - symbolTable.relateToOperator("average", EOpAverage); - symbolTable.relateToOperator("averageRounded", EOpAverageRounded); - symbolTable.relateToOperator("multiply32x16", EOpMul32x16); - symbolTable.relateToOperator("debugPrintfEXT", EOpDebugPrintf); - - - if (PureOperatorBuiltins) { - symbolTable.relateToOperator("imageSize", EOpImageQuerySize); - symbolTable.relateToOperator("imageSamples", EOpImageQuerySamples); - symbolTable.relateToOperator("imageLoad", EOpImageLoad); - symbolTable.relateToOperator("imageStore", EOpImageStore); - symbolTable.relateToOperator("imageAtomicAdd", EOpImageAtomicAdd); - symbolTable.relateToOperator("imageAtomicMin", EOpImageAtomicMin); - symbolTable.relateToOperator("imageAtomicMax", EOpImageAtomicMax); - symbolTable.relateToOperator("imageAtomicAnd", EOpImageAtomicAnd); - symbolTable.relateToOperator("imageAtomicOr", EOpImageAtomicOr); - symbolTable.relateToOperator("imageAtomicXor", EOpImageAtomicXor); - symbolTable.relateToOperator("imageAtomicExchange", EOpImageAtomicExchange); - symbolTable.relateToOperator("imageAtomicCompSwap", EOpImageAtomicCompSwap); - symbolTable.relateToOperator("imageAtomicLoad", EOpImageAtomicLoad); - symbolTable.relateToOperator("imageAtomicStore", EOpImageAtomicStore); - - symbolTable.relateToOperator("subpassLoad", EOpSubpassLoad); - symbolTable.relateToOperator("subpassLoadMS", EOpSubpassLoadMS); - - symbolTable.relateToOperator("textureGather", EOpTextureGather); - symbolTable.relateToOperator("textureGatherOffset", EOpTextureGatherOffset); - symbolTable.relateToOperator("textureGatherOffsets", EOpTextureGatherOffsets); - - symbolTable.relateToOperator("noise1", EOpNoise); - symbolTable.relateToOperator("noise2", EOpNoise); - symbolTable.relateToOperator("noise3", EOpNoise); - symbolTable.relateToOperator("noise4", EOpNoise); - - symbolTable.relateToOperator("textureFootprintNV", EOpImageSampleFootprintNV); - symbolTable.relateToOperator("textureFootprintClampNV", EOpImageSampleFootprintClampNV); - symbolTable.relateToOperator("textureFootprintLodNV", EOpImageSampleFootprintLodNV); - symbolTable.relateToOperator("textureFootprintGradNV", EOpImageSampleFootprintGradNV); - symbolTable.relateToOperator("textureFootprintGradClampNV", EOpImageSampleFootprintGradClampNV); - - if (spvVersion.spv == 0 && IncludeLegacy(version, profile, spvVersion)) - symbolTable.relateToOperator("ftransform", EOpFtransform); - - if (spvVersion.spv == 0 && (IncludeLegacy(version, profile, spvVersion) || - (profile == EEsProfile && version == 100))) { - - symbolTable.relateToOperator("texture1D", EOpTexture); - symbolTable.relateToOperator("texture1DGradARB", EOpTextureGrad); - symbolTable.relateToOperator("texture1DProj", EOpTextureProj); - symbolTable.relateToOperator("texture1DProjGradARB", EOpTextureProjGrad); - symbolTable.relateToOperator("texture1DLod", EOpTextureLod); - symbolTable.relateToOperator("texture1DProjLod", EOpTextureProjLod); - - symbolTable.relateToOperator("texture2DRect", EOpTexture); - symbolTable.relateToOperator("texture2DRectProj", EOpTextureProj); - symbolTable.relateToOperator("texture2DRectGradARB", EOpTextureGrad); - symbolTable.relateToOperator("texture2DRectProjGradARB", EOpTextureProjGrad); - symbolTable.relateToOperator("shadow2DRect", EOpTexture); - symbolTable.relateToOperator("shadow2DRectProj", EOpTextureProj); - symbolTable.relateToOperator("shadow2DRectGradARB", EOpTextureGrad); - symbolTable.relateToOperator("shadow2DRectProjGradARB", EOpTextureProjGrad); - - symbolTable.relateToOperator("texture2D", EOpTexture); - symbolTable.relateToOperator("texture2DProj", EOpTextureProj); - symbolTable.relateToOperator("texture2DGradEXT", EOpTextureGrad); - symbolTable.relateToOperator("texture2DGradARB", EOpTextureGrad); - symbolTable.relateToOperator("texture2DProjGradEXT", EOpTextureProjGrad); - symbolTable.relateToOperator("texture2DProjGradARB", EOpTextureProjGrad); - symbolTable.relateToOperator("texture2DLod", EOpTextureLod); - symbolTable.relateToOperator("texture2DLodEXT", EOpTextureLod); - symbolTable.relateToOperator("texture2DProjLod", EOpTextureProjLod); - symbolTable.relateToOperator("texture2DProjLodEXT", EOpTextureProjLod); - - symbolTable.relateToOperator("texture3D", EOpTexture); - symbolTable.relateToOperator("texture3DGradARB", EOpTextureGrad); - symbolTable.relateToOperator("texture3DProj", EOpTextureProj); - symbolTable.relateToOperator("texture3DProjGradARB", EOpTextureProjGrad); - symbolTable.relateToOperator("texture3DLod", EOpTextureLod); - symbolTable.relateToOperator("texture3DProjLod", EOpTextureProjLod); - symbolTable.relateToOperator("textureCube", EOpTexture); - symbolTable.relateToOperator("textureCubeGradEXT", EOpTextureGrad); - symbolTable.relateToOperator("textureCubeGradARB", EOpTextureGrad); - symbolTable.relateToOperator("textureCubeLod", EOpTextureLod); - symbolTable.relateToOperator("textureCubeLodEXT", EOpTextureLod); - symbolTable.relateToOperator("shadow1D", EOpTexture); - symbolTable.relateToOperator("shadow1DGradARB", EOpTextureGrad); - symbolTable.relateToOperator("shadow2D", EOpTexture); - symbolTable.relateToOperator("shadow2DGradARB", EOpTextureGrad); - symbolTable.relateToOperator("shadow1DProj", EOpTextureProj); - symbolTable.relateToOperator("shadow2DProj", EOpTextureProj); - symbolTable.relateToOperator("shadow1DProjGradARB", EOpTextureProjGrad); - symbolTable.relateToOperator("shadow2DProjGradARB", EOpTextureProjGrad); - symbolTable.relateToOperator("shadow1DLod", EOpTextureLod); - symbolTable.relateToOperator("shadow2DLod", EOpTextureLod); - symbolTable.relateToOperator("shadow1DProjLod", EOpTextureProjLod); - symbolTable.relateToOperator("shadow2DProjLod", EOpTextureProjLod); - } - - if (profile != EEsProfile) { - symbolTable.relateToOperator("sparseTextureARB", EOpSparseTexture); - symbolTable.relateToOperator("sparseTextureLodARB", EOpSparseTextureLod); - symbolTable.relateToOperator("sparseTextureOffsetARB", EOpSparseTextureOffset); - symbolTable.relateToOperator("sparseTexelFetchARB", EOpSparseTextureFetch); - symbolTable.relateToOperator("sparseTexelFetchOffsetARB", EOpSparseTextureFetchOffset); - symbolTable.relateToOperator("sparseTextureLodOffsetARB", EOpSparseTextureLodOffset); - symbolTable.relateToOperator("sparseTextureGradARB", EOpSparseTextureGrad); - symbolTable.relateToOperator("sparseTextureGradOffsetARB", EOpSparseTextureGradOffset); - symbolTable.relateToOperator("sparseTextureGatherARB", EOpSparseTextureGather); - symbolTable.relateToOperator("sparseTextureGatherOffsetARB", EOpSparseTextureGatherOffset); - symbolTable.relateToOperator("sparseTextureGatherOffsetsARB", EOpSparseTextureGatherOffsets); - symbolTable.relateToOperator("sparseImageLoadARB", EOpSparseImageLoad); - symbolTable.relateToOperator("sparseTexelsResidentARB", EOpSparseTexelsResident); - - symbolTable.relateToOperator("sparseTextureClampARB", EOpSparseTextureClamp); - symbolTable.relateToOperator("sparseTextureOffsetClampARB", EOpSparseTextureOffsetClamp); - symbolTable.relateToOperator("sparseTextureGradClampARB", EOpSparseTextureGradClamp); - symbolTable.relateToOperator("sparseTextureGradOffsetClampARB", EOpSparseTextureGradOffsetClamp); - symbolTable.relateToOperator("textureClampARB", EOpTextureClamp); - symbolTable.relateToOperator("textureOffsetClampARB", EOpTextureOffsetClamp); - symbolTable.relateToOperator("textureGradClampARB", EOpTextureGradClamp); - symbolTable.relateToOperator("textureGradOffsetClampARB", EOpTextureGradOffsetClamp); - - symbolTable.relateToOperator("ballotARB", EOpBallot); - 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("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); - symbolTable.relateToOperator("mid3", EOpMid3); - - 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); - } - - // GL_KHR_shader_subgroup - if ((profile == EEsProfile && version >= 310) || - (profile != EEsProfile && version >= 140)) { - 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); - - 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); - } - - if (profile == EEsProfile) { - symbolTable.relateToOperator("shadow2DEXT", EOpTexture); - symbolTable.relateToOperator("shadow2DProjEXT", EOpTextureProj); - } - } - - switch(language) { - case EShLangVertex: - break; - - case EShLangTessControl: - case EShLangTessEvaluation: - break; - - case EShLangGeometry: - symbolTable.relateToOperator("EmitStreamVertex", EOpEmitStreamVertex); - symbolTable.relateToOperator("EndStreamPrimitive", EOpEndStreamPrimitive); - symbolTable.relateToOperator("EmitVertex", EOpEmitVertex); - symbolTable.relateToOperator("EndPrimitive", EOpEndPrimitive); - break; - - case EShLangFragment: - if (profile != EEsProfile && version >= 400) { - symbolTable.relateToOperator("dFdxFine", EOpDPdxFine); - symbolTable.relateToOperator("dFdyFine", EOpDPdyFine); - symbolTable.relateToOperator("fwidthFine", EOpFwidthFine); - symbolTable.relateToOperator("dFdxCoarse", EOpDPdxCoarse); - symbolTable.relateToOperator("dFdyCoarse", EOpDPdyCoarse); - symbolTable.relateToOperator("fwidthCoarse", EOpFwidthCoarse); - } - - if (profile != EEsProfile && version >= 460) { - symbolTable.relateToOperator("rayQueryInitializeEXT", EOpRayQueryInitialize); - symbolTable.relateToOperator("rayQueryTerminateEXT", EOpRayQueryTerminate); - symbolTable.relateToOperator("rayQueryGenerateIntersectionEXT", EOpRayQueryGenerateIntersection); - symbolTable.relateToOperator("rayQueryConfirmIntersectionEXT", EOpRayQueryConfirmIntersection); - symbolTable.relateToOperator("rayQueryProceedEXT", EOpRayQueryProceed); - symbolTable.relateToOperator("rayQueryGetIntersectionTypeEXT", EOpRayQueryGetIntersectionType); - symbolTable.relateToOperator("rayQueryGetRayTMinEXT", EOpRayQueryGetRayTMin); - symbolTable.relateToOperator("rayQueryGetRayFlagsEXT", EOpRayQueryGetRayFlags); - symbolTable.relateToOperator("rayQueryGetIntersectionTEXT", EOpRayQueryGetIntersectionT); - symbolTable.relateToOperator("rayQueryGetIntersectionInstanceCustomIndexEXT", EOpRayQueryGetIntersectionInstanceCustomIndex); - symbolTable.relateToOperator("rayQueryGetIntersectionInstanceIdEXT", EOpRayQueryGetIntersectionInstanceId); - symbolTable.relateToOperator("rayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetEXT", EOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffset); - symbolTable.relateToOperator("rayQueryGetIntersectionGeometryIndexEXT", EOpRayQueryGetIntersectionGeometryIndex); - symbolTable.relateToOperator("rayQueryGetIntersectionPrimitiveIndexEXT", EOpRayQueryGetIntersectionPrimitiveIndex); - symbolTable.relateToOperator("rayQueryGetIntersectionBarycentricsEXT", EOpRayQueryGetIntersectionBarycentrics); - symbolTable.relateToOperator("rayQueryGetIntersectionFrontFaceEXT", EOpRayQueryGetIntersectionFrontFace); - symbolTable.relateToOperator("rayQueryGetIntersectionCandidateAABBOpaqueEXT", EOpRayQueryGetIntersectionCandidateAABBOpaque); - symbolTable.relateToOperator("rayQueryGetIntersectionObjectRayDirectionEXT", EOpRayQueryGetIntersectionObjectRayDirection); - symbolTable.relateToOperator("rayQueryGetIntersectionObjectRayOriginEXT", EOpRayQueryGetIntersectionObjectRayOrigin); - symbolTable.relateToOperator("rayQueryGetWorldRayDirectionEXT", EOpRayQueryGetWorldRayDirection); - symbolTable.relateToOperator("rayQueryGetWorldRayOriginEXT", EOpRayQueryGetWorldRayOrigin); - symbolTable.relateToOperator("rayQueryGetIntersectionObjectToWorldEXT", EOpRayQueryGetIntersectionObjectToWorld); - symbolTable.relateToOperator("rayQueryGetIntersectionWorldToObjectEXT", EOpRayQueryGetIntersectionWorldToObject); - } - - symbolTable.relateToOperator("interpolateAtCentroid", EOpInterpolateAtCentroid); - symbolTable.relateToOperator("interpolateAtSample", EOpInterpolateAtSample); - symbolTable.relateToOperator("interpolateAtOffset", EOpInterpolateAtOffset); - - if (profile != EEsProfile) - symbolTable.relateToOperator("interpolateAtVertexAMD", EOpInterpolateAtVertex); - - symbolTable.relateToOperator("beginInvocationInterlockARB", EOpBeginInvocationInterlock); - symbolTable.relateToOperator("endInvocationInterlockARB", EOpEndInvocationInterlock); - - break; - - case EShLangCompute: - symbolTable.relateToOperator("subgroupMemoryBarrierShared", EOpSubgroupMemoryBarrierShared); - if ((profile != EEsProfile && version >= 450) || - (profile == EEsProfile && version >= 320)) { - symbolTable.relateToOperator("dFdx", EOpDPdx); - symbolTable.relateToOperator("dFdy", EOpDPdy); - symbolTable.relateToOperator("fwidth", EOpFwidth); - symbolTable.relateToOperator("dFdxFine", EOpDPdxFine); - symbolTable.relateToOperator("dFdyFine", EOpDPdyFine); - symbolTable.relateToOperator("fwidthFine", EOpFwidthFine); - symbolTable.relateToOperator("dFdxCoarse", EOpDPdxCoarse); - symbolTable.relateToOperator("dFdyCoarse", EOpDPdyCoarse); - symbolTable.relateToOperator("fwidthCoarse",EOpFwidthCoarse); - } - symbolTable.relateToOperator("coopMatLoadNV", EOpCooperativeMatrixLoad); - symbolTable.relateToOperator("coopMatStoreNV", EOpCooperativeMatrixStore); - symbolTable.relateToOperator("coopMatMulAddNV", EOpCooperativeMatrixMulAdd); - break; - - case EShLangRayGen: - case EShLangClosestHit: - case EShLangMiss: - if (profile != EEsProfile && version >= 460) { - symbolTable.relateToOperator("traceNV", EOpTraceNV); - symbolTable.relateToOperator("traceRayMotionNV", EOpTraceRayMotionNV); - symbolTable.relateToOperator("traceRayEXT", EOpTraceKHR); - symbolTable.relateToOperator("executeCallableNV", EOpExecuteCallableNV); - symbolTable.relateToOperator("executeCallableEXT", EOpExecuteCallableKHR); - } - break; - case EShLangIntersect: - if (profile != EEsProfile && version >= 460) { - symbolTable.relateToOperator("reportIntersectionNV", EOpReportIntersection); - symbolTable.relateToOperator("reportIntersectionEXT", EOpReportIntersection); - } - break; - case EShLangAnyHit: - if (profile != EEsProfile && version >= 460) { - symbolTable.relateToOperator("ignoreIntersectionNV", EOpIgnoreIntersectionNV); - symbolTable.relateToOperator("terminateRayNV", EOpTerminateRayNV); - } - break; - case EShLangCallable: - if (profile != EEsProfile && version >= 460) { - symbolTable.relateToOperator("executeCallableNV", EOpExecuteCallableNV); - symbolTable.relateToOperator("executeCallableEXT", EOpExecuteCallableKHR); - } - break; - case EShLangMeshNV: - if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 320)) { - symbolTable.relateToOperator("writePackedPrimitiveIndices4x8NV", EOpWritePackedPrimitiveIndices4x8NV); - } - // fall through - case EShLangTaskNV: - if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 320)) { - symbolTable.relateToOperator("memoryBarrierShared", EOpMemoryBarrierShared); - symbolTable.relateToOperator("groupMemoryBarrier", EOpGroupMemoryBarrier); - symbolTable.relateToOperator("subgroupMemoryBarrierShared", EOpSubgroupMemoryBarrierShared); - } - break; - - default: - assert(false && "Language not supported"); - } -#endif // !GLSLANG_WEB -} - -// -// Add context-dependent (resource-specific) built-ins not handled by the above. These -// would be ones that need to be programmatically added because they cannot -// be added by simple text strings. For these, also -// 1) Map built-in functions to operators, for those that will turn into an operation node -// instead of remaining a function call. -// 2) Tag extension-related symbols added to their base version with their extensions, so -// that if an early version has the extension turned off, there is an error reported on use. -// -void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TSymbolTable& symbolTable, const TBuiltInResource &resources) -{ -#ifndef GLSLANG_WEB -#if defined(GLSLANG_ANGLE) - profile = ECoreProfile; - version = 450; -#endif - if (profile != EEsProfile && version >= 430 && version < 440) { - symbolTable.setVariableExtensions("gl_MaxTransformFeedbackBuffers", 1, &E_GL_ARB_enhanced_layouts); - symbolTable.setVariableExtensions("gl_MaxTransformFeedbackInterleavedComponents", 1, &E_GL_ARB_enhanced_layouts); - } - if (profile != EEsProfile && version >= 130 && version < 420) { - symbolTable.setVariableExtensions("gl_MinProgramTexelOffset", 1, &E_GL_ARB_shading_language_420pack); - symbolTable.setVariableExtensions("gl_MaxProgramTexelOffset", 1, &E_GL_ARB_shading_language_420pack); - } - if (profile != EEsProfile && version >= 150 && version < 410) - symbolTable.setVariableExtensions("gl_MaxViewports", 1, &E_GL_ARB_viewport_array); - - switch(language) { - case EShLangFragment: - // Set up gl_FragData based on current array size. - 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); - symbolTable.insert(*new TVariable(NewPoolTString("gl_FragData"), fragData)); - SpecialQualifier("gl_FragData", EvqFragColor, EbvFragData, symbolTable); - } - - // GL_EXT_blend_func_extended - if (profile == EEsProfile && version >= 100) { - symbolTable.setVariableExtensions("gl_MaxDualSourceDrawBuffersEXT", 1, &E_GL_EXT_blend_func_extended); - symbolTable.setVariableExtensions("gl_SecondaryFragColorEXT", 1, &E_GL_EXT_blend_func_extended); - symbolTable.setVariableExtensions("gl_SecondaryFragDataEXT", 1, &E_GL_EXT_blend_func_extended); - SpecialQualifier("gl_SecondaryFragColorEXT", EvqVaryingOut, EbvSecondaryFragColorEXT, symbolTable); - SpecialQualifier("gl_SecondaryFragDataEXT", EvqVaryingOut, EbvSecondaryFragDataEXT, symbolTable); - } - - break; - - case EShLangTessControl: - case EShLangTessEvaluation: - // Because of the context-dependent array size (gl_MaxPatchVertices), - // these variables were added later than the others and need to be mapped now. - - // standard members - BuiltInVariable("gl_in", "gl_Position", EbvPosition, symbolTable); - BuiltInVariable("gl_in", "gl_PointSize", EbvPointSize, symbolTable); - BuiltInVariable("gl_in", "gl_ClipDistance", EbvClipDistance, symbolTable); - BuiltInVariable("gl_in", "gl_CullDistance", EbvCullDistance, symbolTable); - - // compatibility members - BuiltInVariable("gl_in", "gl_ClipVertex", EbvClipVertex, symbolTable); - BuiltInVariable("gl_in", "gl_FrontColor", EbvFrontColor, symbolTable); - BuiltInVariable("gl_in", "gl_BackColor", EbvBackColor, symbolTable); - BuiltInVariable("gl_in", "gl_FrontSecondaryColor", EbvFrontSecondaryColor, symbolTable); - BuiltInVariable("gl_in", "gl_BackSecondaryColor", EbvBackSecondaryColor, symbolTable); - BuiltInVariable("gl_in", "gl_TexCoord", EbvTexCoord, symbolTable); - BuiltInVariable("gl_in", "gl_FogFragCoord", EbvFogFragCoord, symbolTable); - - symbolTable.setVariableExtensions("gl_in", "gl_SecondaryPositionNV", 1, &E_GL_NV_stereo_view_rendering); - symbolTable.setVariableExtensions("gl_in", "gl_PositionPerViewNV", 1, &E_GL_NVX_multiview_per_view_attributes); - - BuiltInVariable("gl_in", "gl_SecondaryPositionNV", EbvSecondaryPositionNV, symbolTable); - BuiltInVariable("gl_in", "gl_PositionPerViewNV", EbvPositionPerViewNV, symbolTable); - - // extension requirements - if (profile == EEsProfile) { - symbolTable.setVariableExtensions("gl_in", "gl_PointSize", Num_AEP_tessellation_point_size, AEP_tessellation_point_size); - } - - break; - - default: - break; - } -#endif -} - -} // end namespace glslang diff --git a/deps/glslang/glslang/MachineIndependent/Initialize.h b/deps/glslang/glslang/MachineIndependent/Initialize.h deleted file mode 100644 index ac8ec33e..00000000 --- a/deps/glslang/glslang/MachineIndependent/Initialize.h +++ /dev/null @@ -1,112 +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. -// - -#ifndef _INITIALIZE_INCLUDED_ -#define _INITIALIZE_INCLUDED_ - -#include "../Include/ResourceLimits.h" -#include "../Include/Common.h" -#include "../Include/ShHandle.h" -#include "SymbolTable.h" -#include "Versions.h" - -namespace glslang { - -// -// This is made to hold parseable strings for almost all the built-in -// functions and variables for one specific combination of version -// and profile. (Some still need to be added programmatically.) -// This is a base class for language-specific derivations, which -// can be used for language independent builtins. -// -// The strings are organized by -// commonBuiltins: intersection of all stages' built-ins, processed just once -// stageBuiltins[]: anything a stage needs that's not in commonBuiltins -// -class TBuiltInParseables { -public: - POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator()) - TBuiltInParseables(); - virtual ~TBuiltInParseables(); - virtual void initialize(int version, EProfile, const SpvVersion& spvVersion) = 0; - virtual void initialize(const TBuiltInResource& resources, int version, EProfile, const SpvVersion& spvVersion, EShLanguage) = 0; - virtual const TString& getCommonString() const { return commonBuiltins; } - virtual const TString& getStageString(EShLanguage language) const { return stageBuiltins[language]; } - - virtual void identifyBuiltIns(int version, EProfile profile, 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: - TString commonBuiltins; - TString stageBuiltins[EShLangCount]; -}; - -// -// This is a GLSL specific derivation of TBuiltInParseables. To present a stable -// interface and match other similar code, it is called TBuiltIns, rather -// than TBuiltInParseablesGlsl. -// -class TBuiltIns : public TBuiltInParseables { -public: - POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator()) - TBuiltIns(); - virtual ~TBuiltIns(); - void initialize(int version, EProfile, const SpvVersion& spvVersion); - void initialize(const TBuiltInResource& resources, int version, EProfile, const SpvVersion& spvVersion, EShLanguage); - - void identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TSymbolTable& symbolTable); - void identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TSymbolTable& symbolTable, const TBuiltInResource &resources); - -protected: - void addTabledBuiltins(int version, EProfile profile, const SpvVersion& spvVersion); - void relateTabledBuiltins(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage, TSymbolTable&); - 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); - - // Helpers for making textual representations of the permutations - // of texturing/imaging functions. - const char* postfixes[5]; - const char* prefixes[EbtNumTypes]; - int dimMap[EsdNumDims]; -}; - -} // end namespace glslang - -#endif // _INITIALIZE_INCLUDED_ diff --git a/deps/glslang/glslang/MachineIndependent/IntermTraverse.cpp b/deps/glslang/glslang/MachineIndependent/IntermTraverse.cpp deleted file mode 100644 index 553b1b5f..00000000 --- a/deps/glslang/glslang/MachineIndependent/IntermTraverse.cpp +++ /dev/null @@ -1,309 +0,0 @@ -// -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2013 LunarG, Inc. -// Copyright (c) 2002-2010 The ANGLE Project Authors. -// -// 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/intermediate.h" - -namespace glslang { - -// -// Traverse the intermediate representation tree, and -// call a node type specific function for each node. -// Done recursively through the member function Traverse(). -// Node types can be skipped if their function to call is 0, -// but their subtree will still be traversed. -// Nodes with children can have their whole subtree skipped -// if preVisit is turned on and the type specific function -// returns false. -// -// preVisit, postVisit, and rightToLeft control what order -// nodes are visited in. -// - -// -// Traversal functions for terminals are straightforward.... -// -void TIntermMethod::traverse(TIntermTraverser*) -{ - // Tree should always resolve all methods as a non-method. -} - -void TIntermSymbol::traverse(TIntermTraverser *it) -{ - it->visitSymbol(this); -} - -void TIntermConstantUnion::traverse(TIntermTraverser *it) -{ - it->visitConstantUnion(this); -} - -const TString& TIntermSymbol::getAccessName() const { - if (getBasicType() == EbtBlock) - return getType().getTypeName(); - else - return getName(); -} - -// -// Traverse a binary node. -// -void TIntermBinary::traverse(TIntermTraverser *it) -{ - bool visit = true; - - // - // visit the node before children if pre-visiting. - // - if (it->preVisit) - visit = it->visitBinary(EvPreVisit, this); - - // - // Visit the children, in the right order. - // - if (visit) { - it->incrementDepth(this); - - if (it->rightToLeft) { - if (right) - right->traverse(it); - - if (it->inVisit) - visit = it->visitBinary(EvInVisit, this); - - if (visit && left) - left->traverse(it); - } else { - if (left) - left->traverse(it); - - if (it->inVisit) - visit = it->visitBinary(EvInVisit, this); - - if (visit && right) - right->traverse(it); - } - - it->decrementDepth(); - } - - // - // Visit the node after the children, if requested and the traversal - // hasn't been canceled yet. - // - if (visit && it->postVisit) - it->visitBinary(EvPostVisit, this); -} - -// -// Traverse a unary node. Same comments in binary node apply here. -// -void TIntermUnary::traverse(TIntermTraverser *it) -{ - bool visit = true; - - if (it->preVisit) - visit = it->visitUnary(EvPreVisit, this); - - if (visit) { - it->incrementDepth(this); - operand->traverse(it); - it->decrementDepth(); - } - - if (visit && it->postVisit) - it->visitUnary(EvPostVisit, this); -} - -// -// Traverse an aggregate node. Same comments in binary node apply here. -// -void TIntermAggregate::traverse(TIntermTraverser *it) -{ - bool visit = true; - - if (it->preVisit) - visit = it->visitAggregate(EvPreVisit, this); - - if (visit) { - it->incrementDepth(this); - - if (it->rightToLeft) { - for (TIntermSequence::reverse_iterator sit = sequence.rbegin(); sit != sequence.rend(); sit++) { - (*sit)->traverse(it); - - if (visit && it->inVisit) { - if (*sit != sequence.front()) - visit = it->visitAggregate(EvInVisit, this); - } - } - } else { - for (TIntermSequence::iterator sit = sequence.begin(); sit != sequence.end(); sit++) { - (*sit)->traverse(it); - - if (visit && it->inVisit) { - if (*sit != sequence.back()) - visit = it->visitAggregate(EvInVisit, this); - } - } - } - - it->decrementDepth(); - } - - if (visit && it->postVisit) - it->visitAggregate(EvPostVisit, this); -} - -// -// Traverse a selection node. Same comments in binary node apply here. -// -void TIntermSelection::traverse(TIntermTraverser *it) -{ - bool visit = true; - - if (it->preVisit) - visit = it->visitSelection(EvPreVisit, this); - - if (visit) { - it->incrementDepth(this); - if (it->rightToLeft) { - if (falseBlock) - falseBlock->traverse(it); - if (trueBlock) - trueBlock->traverse(it); - condition->traverse(it); - } else { - condition->traverse(it); - if (trueBlock) - trueBlock->traverse(it); - if (falseBlock) - falseBlock->traverse(it); - } - it->decrementDepth(); - } - - if (visit && it->postVisit) - it->visitSelection(EvPostVisit, this); -} - -// -// Traverse a loop node. Same comments in binary node apply here. -// -void TIntermLoop::traverse(TIntermTraverser *it) -{ - bool visit = true; - - if (it->preVisit) - visit = it->visitLoop(EvPreVisit, this); - - if (visit) { - it->incrementDepth(this); - - if (it->rightToLeft) { - if (terminal) - terminal->traverse(it); - - if (body) - body->traverse(it); - - if (test) - test->traverse(it); - } else { - if (test) - test->traverse(it); - - if (body) - body->traverse(it); - - if (terminal) - terminal->traverse(it); - } - - it->decrementDepth(); - } - - if (visit && it->postVisit) - it->visitLoop(EvPostVisit, this); -} - -// -// Traverse a branch node. Same comments in binary node apply here. -// -void TIntermBranch::traverse(TIntermTraverser *it) -{ - bool visit = true; - - if (it->preVisit) - visit = it->visitBranch(EvPreVisit, this); - - if (visit && expression) { - it->incrementDepth(this); - expression->traverse(it); - it->decrementDepth(); - } - - if (visit && it->postVisit) - it->visitBranch(EvPostVisit, this); -} - -// -// Traverse a switch node. -// -void TIntermSwitch::traverse(TIntermTraverser* it) -{ - bool visit = true; - - if (it->preVisit) - visit = it->visitSwitch(EvPreVisit, this); - - if (visit) { - it->incrementDepth(this); - if (it->rightToLeft) { - body->traverse(it); - condition->traverse(it); - } else { - condition->traverse(it); - body->traverse(it); - } - it->decrementDepth(); - } - - if (visit && it->postVisit) - it->visitSwitch(EvPostVisit, this); -} - -} // end namespace glslang diff --git a/deps/glslang/glslang/MachineIndependent/Intermediate.cpp b/deps/glslang/glslang/MachineIndependent/Intermediate.cpp deleted file mode 100644 index 14fd053a..00000000 --- a/deps/glslang/glslang/MachineIndependent/Intermediate.cpp +++ /dev/null @@ -1,4027 +0,0 @@ -// -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2012-2015 LunarG, Inc. -// Copyright (C) 2015-2020 Google, 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. -// - -// -// Build the intermediate representation. -// - -#include "localintermediate.h" -#include "RemoveTree.h" -#include "SymbolTable.h" -#include "propagateNoContraction.h" - -#include -#include -#include - -namespace glslang { - -//////////////////////////////////////////////////////////////////////////// -// -// First set of functions are to help build the intermediate representation. -// These functions are not member functions of the nodes. -// They are called from parser productions. -// -///////////////////////////////////////////////////////////////////////////// - -// -// Add a terminal node for an identifier in an expression. -// -// Returns the added node. -// - -TIntermSymbol* TIntermediate::addSymbol(long long id, const TString& name, const TType& type, const TConstUnionArray& constArray, - TIntermTyped* constSubtree, const TSourceLoc& loc) -{ - TIntermSymbol* node = new TIntermSymbol(id, name, type); - node->setLoc(loc); - node->setConstArray(constArray); - node->setConstSubtree(constSubtree); - - return node; -} - -TIntermSymbol* TIntermediate::addSymbol(const TIntermSymbol& intermSymbol) -{ - return addSymbol(intermSymbol.getId(), - intermSymbol.getName(), - intermSymbol.getType(), - intermSymbol.getConstArray(), - intermSymbol.getConstSubtree(), - intermSymbol.getLoc()); -} - -TIntermSymbol* TIntermediate::addSymbol(const TVariable& variable) -{ - glslang::TSourceLoc loc; // just a null location - loc.init(); - - return addSymbol(variable, loc); -} - -TIntermSymbol* TIntermediate::addSymbol(const TVariable& variable, const TSourceLoc& loc) -{ - return addSymbol(variable.getUniqueId(), variable.getName(), variable.getType(), variable.getConstArray(), variable.getConstSubtree(), loc); -} - -TIntermSymbol* TIntermediate::addSymbol(const TType& type, const TSourceLoc& loc) -{ - TConstUnionArray unionArray; // just a null constant - - return addSymbol(0, "", type, unionArray, nullptr, loc); -} - -// -// Connect two nodes with a new parent that does a binary operation on the nodes. -// -// Returns the added node. -// -// Returns nullptr if the working conversions and promotions could not be found. -// -TIntermTyped* TIntermediate::addBinaryMath(TOperator op, TIntermTyped* left, TIntermTyped* right, const TSourceLoc& loc) -{ - // No operations work on blocks - if (left->getType().getBasicType() == EbtBlock || right->getType().getBasicType() == EbtBlock) - return nullptr; - - // Convert "reference +/- int" and "reference - reference" to integer math - if (op == EOpAdd || op == EOpSub) { - - // No addressing math on struct with unsized array. - if ((left->isReference() && left->getType().getReferentType()->containsUnsizedArray()) || - (right->isReference() && right->getType().getReferentType()->containsUnsizedArray())) { - return nullptr; - } - - if (left->isReference() && isTypeInt(right->getBasicType())) { - const TType& referenceType = left->getType(); - TIntermConstantUnion* size = addConstantUnion((unsigned long long)computeBufferReferenceTypeSize(left->getType()), loc, true); - left = addBuiltInFunctionCall(loc, EOpConvPtrToUint64, true, left, TType(EbtUint64)); - - right = createConversion(EbtInt64, right); - right = addBinaryMath(EOpMul, right, size, loc); - - TIntermTyped *node = addBinaryMath(op, left, right, loc); - node = addBuiltInFunctionCall(loc, EOpConvUint64ToPtr, true, node, referenceType); - return node; - } - } - - if (op == EOpAdd && right->isReference() && isTypeInt(left->getBasicType())) { - const TType& referenceType = right->getType(); - TIntermConstantUnion* size = - addConstantUnion((unsigned long long)computeBufferReferenceTypeSize(right->getType()), loc, true); - right = addBuiltInFunctionCall(loc, EOpConvPtrToUint64, true, right, TType(EbtUint64)); - - left = createConversion(EbtInt64, left); - left = addBinaryMath(EOpMul, left, size, loc); - - TIntermTyped *node = addBinaryMath(op, left, right, loc); - node = addBuiltInFunctionCall(loc, EOpConvUint64ToPtr, true, node, referenceType); - return node; - } - - if (op == EOpSub && left->isReference() && right->isReference()) { - TIntermConstantUnion* size = - addConstantUnion((long long)computeBufferReferenceTypeSize(left->getType()), loc, true); - - left = addBuiltInFunctionCall(loc, EOpConvPtrToUint64, true, left, TType(EbtUint64)); - right = addBuiltInFunctionCall(loc, EOpConvPtrToUint64, true, right, TType(EbtUint64)); - - left = addBuiltInFunctionCall(loc, EOpConvUint64ToInt64, true, left, TType(EbtInt64)); - right = addBuiltInFunctionCall(loc, EOpConvUint64ToInt64, true, right, TType(EbtInt64)); - - left = addBinaryMath(EOpSub, left, right, loc); - - TIntermTyped *node = addBinaryMath(EOpDiv, left, size, loc); - return node; - } - - // No other math operators supported on references - if (left->isReference() || right->isReference()) - return nullptr; - - // Try converting the children's base types to compatible types. - auto children = addPairConversion(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. - addBiShapeConversion(op, left, right); - if (left == nullptr || right == nullptr) - return nullptr; - - // - // Need a new node holding things together. Make - // one and promote it to the right type. - // - TIntermBinary* node = addBinaryNode(op, left, right, loc); - if (! promote(node)) - return nullptr; - - node->updatePrecision(); - - // - // 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(); - 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().isNonUniform() || node->getRight()->getQualifier().isNonUniform()) && - isNonuniformPropagating(node->getOp())) - node->getWritableType().getQualifier().nonUniform = true; - - return node; -} - -// -// Low level: add binary node (no promotions or other argument modifications) -// -TIntermBinary* TIntermediate::addBinaryNode(TOperator op, TIntermTyped* left, TIntermTyped* right, - const TSourceLoc& loc) const -{ - // build the node - TIntermBinary* node = new TIntermBinary(op); - node->setLoc(loc.line != 0 ? loc : left->getLoc()); - node->setLeft(left); - node->setRight(right); - - return node; -} - -// -// like non-type form, but sets node's type. -// -TIntermBinary* TIntermediate::addBinaryNode(TOperator op, TIntermTyped* left, TIntermTyped* right, - const TSourceLoc& loc, const TType& type) const -{ - TIntermBinary* node = addBinaryNode(op, left, right, loc); - node->setType(type); - return node; -} - -// -// Low level: add unary node (no promotions or other argument modifications) -// -TIntermUnary* TIntermediate::addUnaryNode(TOperator op, TIntermTyped* child, const TSourceLoc& loc) const -{ - TIntermUnary* node = new TIntermUnary(op); - node->setLoc(loc.line != 0 ? loc : child->getLoc()); - node->setOperand(child); - - return node; -} - -// -// like non-type form, but sets node's type. -// -TIntermUnary* TIntermediate::addUnaryNode(TOperator op, TIntermTyped* child, const TSourceLoc& loc, const TType& type) - const -{ - TIntermUnary* node = addUnaryNode(op, child, loc); - node->setType(type); - return node; -} - -// -// Connect two nodes through an assignment. -// -// Returns the added node. -// -// Returns nullptr if the 'right' type could not be converted to match the 'left' type, -// or the resulting operation cannot be properly promoted. -// -TIntermTyped* TIntermediate::addAssign(TOperator op, TIntermTyped* left, TIntermTyped* right, - const TSourceLoc& loc) -{ - // No block assignment - if (left->getType().getBasicType() == EbtBlock || right->getType().getBasicType() == EbtBlock) - return nullptr; - - // Convert "reference += int" to "reference = reference + int". We need this because the - // "reference + int" calculation involves a cast back to the original type, which makes it - // not an lvalue. - if ((op == EOpAddAssign || op == EOpSubAssign) && left->isReference()) { - if (!(right->getType().isScalar() && right->getType().isIntegerDomain())) - return nullptr; - - TIntermTyped* node = addBinaryMath(op == EOpAddAssign ? EOpAdd : EOpSub, left, right, loc); - if (!node) - return nullptr; - - TIntermSymbol* symbol = left->getAsSymbolNode(); - left = addSymbol(*symbol); - - node = addAssign(EOpAssign, left, node, loc); - return node; - } - - // - // Like adding binary math, except the conversion can only go - // from right to left. - // - - // convert base types, nullptr return means not possible - right = addConversion(op, left->getType(), right); - if (right == nullptr) - return nullptr; - - // convert shape - right = addUniShapeConversion(op, left->getType(), right); - - // build the node - TIntermBinary* node = addBinaryNode(op, left, right, loc); - - if (! promote(node)) - return nullptr; - - node->updatePrecision(); - - return node; -} - -// -// Connect two nodes through an index operator, where the left node is the base -// of an array or struct, and the right node is a direct or indirect offset. -// -// Returns the added node. -// The caller should set the type of the returned node. -// -TIntermTyped* TIntermediate::addIndex(TOperator op, TIntermTyped* base, TIntermTyped* index, - const TSourceLoc& loc) -{ - // caller should set the type - return addBinaryNode(op, base, index, loc); -} - -// -// Add one node as the parent of another that it operates on. -// -// Returns the added node. -// -TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child, - const TSourceLoc& loc) -{ - if (child == 0) - return nullptr; - - if (child->getType().getBasicType() == EbtBlock) - return nullptr; - - switch (op) { - case EOpLogicalNot: - if (getSource() == EShSourceHlsl) { - break; // HLSL can promote logical not - } - - if (child->getType().getBasicType() != EbtBool || child->getType().isMatrix() || child->getType().isArray() || child->getType().isVector()) { - return nullptr; - } - break; - - case EOpPostIncrement: - case EOpPreIncrement: - case EOpPostDecrement: - case EOpPreDecrement: - case EOpNegative: - if (child->getType().getBasicType() == EbtStruct || child->getType().isArray()) - return nullptr; - default: break; // some compilers want this - } - - // - // Do we need to promote the operand? - // - TBasicType newType = EbtVoid; - switch (op) { - case EOpConstructBool: newType = EbtBool; break; - case EOpConstructFloat: newType = EbtFloat; break; - case EOpConstructInt: newType = EbtInt; break; - case EOpConstructUint: newType = EbtUint; break; -#ifndef GLSLANG_WEB - case EOpConstructInt8: newType = EbtInt8; break; - case EOpConstructUint8: newType = EbtUint8; break; - case EOpConstructInt16: newType = EbtInt16; break; - case EOpConstructUint16: newType = EbtUint16; break; - case EOpConstructInt64: newType = EbtInt64; break; - case EOpConstructUint64: newType = EbtUint64; break; - case EOpConstructDouble: newType = EbtDouble; break; - case EOpConstructFloat16: newType = EbtFloat16; break; -#endif - default: break; // some compilers want this - } - - if (newType != EbtVoid) { - child = addConversion(op, TType(newType, EvqTemporary, child->getVectorSize(), - child->getMatrixCols(), - child->getMatrixRows(), - child->isVector()), - child); - if (child == nullptr) - return nullptr; - } - - // - // For constructors, we are now done, it was all in the conversion. - // TODO: but, did this bypass constant folding? - // - switch (op) { - case EOpConstructInt8: - case EOpConstructUint8: - case EOpConstructInt16: - case EOpConstructUint16: - case EOpConstructInt: - case EOpConstructUint: - case EOpConstructInt64: - case EOpConstructUint64: - case EOpConstructBool: - case EOpConstructFloat: - case EOpConstructDouble: - case EOpConstructFloat16: { - TIntermUnary* unary_node = child->getAsUnaryNode(); - if (unary_node != nullptr) - unary_node->updatePrecision(); - return child; - } - default: break; // some compilers want this - } - - // - // Make a new node for the operator. - // - TIntermUnary* node = addUnaryNode(op, child, loc); - - if (! promote(node)) - return nullptr; - - 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 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)) - node->getWritableType().getQualifier().makeSpecConstant(); - - // If must propagate nonuniform, make a nonuniform. - if (node->getOperand()->getQualifier().isNonUniform() && 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) -{ - if (unary) { - // - // Treat it like a unary operator. - // addUnaryMath() should get the type correct on its own; - // including constness (which would differ from the prototype). - // - TIntermTyped* child = childNode->getAsTyped(); - if (child == nullptr) - return nullptr; - - if (child->getAsConstantUnion()) { - TIntermTyped* folded = child->getAsConstantUnion()->fold(op, returnType); - if (folded) - return folded; - } - - return addUnaryNode(op, child, child->getLoc(), returnType); - } else { - // setAggregateOperater() calls fold() for constant folding - TIntermTyped* node = setAggregateOperator(childNode, op, returnType, loc); - - return node; - } -} - -// -// This is the safe way to change the operator on an aggregate, as it -// does lots of error checking and fixing. Especially for establishing -// a function call's operation on its set of parameters. Sequences -// of instructions are also aggregates, but they just directly set -// their operator to EOpSequence. -// -// Returns an aggregate node, which could be the one passed in if -// it was already an aggregate. -// -TIntermTyped* TIntermediate::setAggregateOperator(TIntermNode* node, TOperator op, const TType& type, - const TSourceLoc& loc) -{ - TIntermAggregate* aggNode; - - // - // Make sure we have an aggregate. If not turn it into one. - // - if (node != nullptr) { - aggNode = node->getAsAggregate(); - if (aggNode == nullptr || aggNode->getOp() != EOpNull) { - // - // Make an aggregate containing this node. - // - aggNode = new TIntermAggregate(); - aggNode->getSequence().push_back(node); - } - } else - aggNode = new TIntermAggregate(); - - // - // Set the operator. - // - aggNode->setOperator(op); - if (loc.line != 0 || node != nullptr) - aggNode->setLoc(loc.line != 0 ? loc : node->getLoc()); - - aggNode->setType(type); - - return fold(aggNode); -} - -bool TIntermediate::isConversionAllowed(TOperator op, TIntermTyped* node) const -{ - // - // Does the base type even allow the operation? - // - switch (node->getBasicType()) { - case EbtVoid: - return false; - case EbtAtomicUint: - case EbtSampler: - case EbtAccStruct: - // opaque types can be passed to functions - if (op == EOpFunction) - break; - - // HLSL can assign samplers directly (no constructor) - if (getSource() == EShSourceHlsl && node->getBasicType() == EbtSampler) - break; - - // samplers can get assigned via a sampler constructor - // (well, not yet, but code in the rest of this function is ready for it) - if (node->getBasicType() == EbtSampler && op == EOpAssign && - 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; -} - -bool TIntermediate::buildConvertOp(TBasicType dst, TBasicType src, TOperator& newOp) const -{ - switch (dst) { -#ifndef GLSLANG_WEB - case EbtDouble: - switch (src) { - case EbtUint: newOp = EOpConvUintToDouble; break; - case EbtBool: newOp = EOpConvBoolToDouble; break; - case EbtFloat: newOp = EOpConvFloatToDouble; break; - case EbtInt: newOp = EOpConvIntToDouble; break; - case EbtInt8: newOp = EOpConvInt8ToDouble; break; - case EbtUint8: newOp = EOpConvUint8ToDouble; break; - case EbtInt16: newOp = EOpConvInt16ToDouble; break; - case EbtUint16: newOp = EOpConvUint16ToDouble; break; - case EbtFloat16: newOp = EOpConvFloat16ToDouble; break; - case EbtInt64: newOp = EOpConvInt64ToDouble; break; - case EbtUint64: newOp = EOpConvUint64ToDouble; break; - default: - return false; - } - break; -#endif - case EbtFloat: - switch (src) { - case EbtInt: newOp = EOpConvIntToFloat; break; - case EbtUint: newOp = EOpConvUintToFloat; break; - case EbtBool: newOp = EOpConvBoolToFloat; break; -#ifndef GLSLANG_WEB - case EbtDouble: newOp = EOpConvDoubleToFloat; break; - case EbtInt8: newOp = EOpConvInt8ToFloat; break; - case EbtUint8: newOp = EOpConvUint8ToFloat; break; - case EbtInt16: newOp = EOpConvInt16ToFloat; break; - case EbtUint16: newOp = EOpConvUint16ToFloat; break; - case EbtFloat16: newOp = EOpConvFloat16ToFloat; break; - case EbtInt64: newOp = EOpConvInt64ToFloat; break; - case EbtUint64: newOp = EOpConvUint64ToFloat; break; -#endif - default: - return false; - } - break; -#ifndef GLSLANG_WEB - case EbtFloat16: - switch (src) { - 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 false; - } - break; -#endif - case EbtBool: - switch (src) { - case EbtInt: newOp = EOpConvIntToBool; break; - case EbtUint: newOp = EOpConvUintToBool; break; - case EbtFloat: newOp = EOpConvFloatToBool; break; -#ifndef GLSLANG_WEB - case EbtDouble: newOp = EOpConvDoubleToBool; break; - case EbtInt8: newOp = EOpConvInt8ToBool; break; - case EbtUint8: newOp = EOpConvUint8ToBool; break; - case EbtInt16: newOp = EOpConvInt16ToBool; break; - case EbtUint16: newOp = EOpConvUint16ToBool; break; - case EbtFloat16: newOp = EOpConvFloat16ToBool; break; - case EbtInt64: newOp = EOpConvInt64ToBool; break; - case EbtUint64: newOp = EOpConvUint64ToBool; break; -#endif - default: - return false; - } - break; -#ifndef GLSLANG_WEB - case EbtInt8: - switch (src) { - 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 false; - } - break; - case EbtUint8: - switch (src) { - 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 false; - } - break; - - case EbtInt16: - switch (src) { - 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 false; - } - break; - case EbtUint16: - switch (src) { - 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 false; - } - break; -#endif - - case EbtInt: - switch (src) { - case EbtUint: newOp = EOpConvUintToInt; break; - case EbtBool: newOp = EOpConvBoolToInt; break; - case EbtFloat: newOp = EOpConvFloatToInt; break; -#ifndef GLSLANG_WEB - case EbtInt8: newOp = EOpConvInt8ToInt; break; - case EbtUint8: newOp = EOpConvUint8ToInt; break; - case EbtInt16: newOp = EOpConvInt16ToInt; break; - case EbtUint16: newOp = EOpConvUint16ToInt; break; - case EbtDouble: newOp = EOpConvDoubleToInt; break; - case EbtFloat16: newOp = EOpConvFloat16ToInt; break; - case EbtInt64: newOp = EOpConvInt64ToInt; break; - case EbtUint64: newOp = EOpConvUint64ToInt; break; -#endif - default: - return false; - } - break; - case EbtUint: - switch (src) { - case EbtInt: newOp = EOpConvIntToUint; break; - case EbtBool: newOp = EOpConvBoolToUint; break; - case EbtFloat: newOp = EOpConvFloatToUint; break; -#ifndef GLSLANG_WEB - case EbtInt8: newOp = EOpConvInt8ToUint; break; - case EbtUint8: newOp = EOpConvUint8ToUint; break; - case EbtInt16: newOp = EOpConvInt16ToUint; break; - case EbtUint16: newOp = EOpConvUint16ToUint; break; - case EbtDouble: newOp = EOpConvDoubleToUint; break; - case EbtFloat16: newOp = EOpConvFloat16ToUint; break; - case EbtInt64: newOp = EOpConvInt64ToUint; break; - case EbtUint64: newOp = EOpConvUint64ToUint; break; -#endif - default: - return false; - } - break; -#ifndef GLSLANG_WEB - case EbtInt64: - switch (src) { - 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 false; - } - break; - case EbtUint64: - switch (src) { - 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 false; - } - break; -#endif - default: - return false; - } - 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. -TIntermTyped* TIntermediate::createConversion(TBasicType convertTo, TIntermTyped* node) const -{ - // - // Add a new newNode for the conversion. - // - -#ifndef GLSLANG_WEB - bool convertToIntTypes = (convertTo == EbtInt8 || convertTo == EbtUint8 || - convertTo == EbtInt16 || convertTo == EbtUint16 || - convertTo == EbtInt || convertTo == EbtUint || - convertTo == EbtInt64 || convertTo == EbtUint64); - - bool convertFromIntTypes = (node->getBasicType() == EbtInt8 || node->getBasicType() == EbtUint8 || - node->getBasicType() == EbtInt16 || node->getBasicType() == EbtUint16 || - node->getBasicType() == EbtInt || node->getBasicType() == EbtUint || - node->getBasicType() == EbtInt64 || node->getBasicType() == EbtUint64); - - bool convertToFloatTypes = (convertTo == EbtFloat16 || convertTo == EbtFloat || convertTo == EbtDouble); - - bool convertFromFloatTypes = (node->getBasicType() == EbtFloat16 || - node->getBasicType() == EbtFloat || - node->getBasicType() == EbtDouble); - - if (((convertTo == EbtInt8 || convertTo == EbtUint8) && ! convertFromIntTypes) || - ((node->getBasicType() == EbtInt8 || node->getBasicType() == EbtUint8) && ! convertToIntTypes)) { - if (! getArithemeticInt8Enabled()) { - return nullptr; - } - } - - if (((convertTo == EbtInt16 || convertTo == EbtUint16) && ! convertFromIntTypes) || - ((node->getBasicType() == EbtInt16 || node->getBasicType() == EbtUint16) && ! convertToIntTypes)) { - if (! getArithemeticInt16Enabled()) { - return nullptr; - } - } - - if ((convertTo == EbtFloat16 && ! convertFromFloatTypes) || - (node->getBasicType() == EbtFloat16 && ! convertToFloatTypes)) { - if (! getArithemeticFloat16Enabled()) { - return nullptr; - } - } -#endif - - TIntermUnary* newNode = nullptr; - TOperator newOp = EOpNull; - if (!buildConvertOp(convertTo, node->getBasicType(), newOp)) { - return nullptr; - } - - TType newType(convertTo, EvqTemporary, node->getVectorSize(), node->getMatrixCols(), node->getMatrixRows()); - newNode = addUnaryNode(newOp, node, node->getLoc(), newType); - - if (node->getAsConstantUnion()) { -#ifndef GLSLANG_WEB - // 8/16-bit storage extensions don't support 8/16-bit constants, so don't fold conversions - // to those types - if ((getArithemeticInt8Enabled() || !(convertTo == EbtInt8 || convertTo == EbtUint8)) && - (getArithemeticInt16Enabled() || !(convertTo == EbtInt16 || convertTo == EbtUint16)) && - (getArithemeticFloat16Enabled() || !(convertTo == EbtFloat16))) -#endif - { - TIntermTyped* folded = node->getAsConstantUnion()->fold(newOp, newType); - if (folded) - return folded; - } - } - - // Propagate specialization-constant-ness, if allowed - if (node->getType().getQualifier().isSpecConstant() && isSpecializationOperation(*newNode)) - newNode->getWritableType().getQualifier().makeSpecConstant(); - - return newNode; -} - -TIntermTyped* TIntermediate::addConversion(TBasicType convertTo, TIntermTyped* node) const -{ - return createConversion(convertTo, node); -} - -// 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::addPairConversion(TOperator op, TIntermTyped* node0, TIntermTyped* node1) -{ - 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); - - // No implicit conversions for operations involving cooperative matrices - if (node0->getType().isCoopMat() || node1->getType().isCoopMat()) - return std::make_tuple(node0, node1); - } - - 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 = getConversionDestinationType(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 (getSource() == 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 (getSource() == 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) -{ - if (!isConversionAllowed(op, node)) - return nullptr; - - // Otherwise, if types are identical, no problem - if (type == node->getType()) - return node; - - // If one's a structure, then no conversions. - if (type.isStruct() || node->isStruct()) - return nullptr; - - // If one's an array, then no conversions. - if (type.isArray() || node->getType().isArray()) - return nullptr; - - // Note: callers are responsible for other aspects of shape, - // like vector and matrix sizes. - - switch (op) { - // - // Explicit conversions (unary operations) - // - case EOpConstructBool: - case EOpConstructFloat: - case EOpConstructInt: - case EOpConstructUint: -#ifndef GLSLANG_WEB - case EOpConstructDouble: - case EOpConstructFloat16: - case EOpConstructInt8: - case EOpConstructUint8: - case EOpConstructInt16: - case EOpConstructUint16: - case EOpConstructInt64: - case EOpConstructUint64: - break; - -#endif - - // - // Implicit conversions - // - case EOpLogicalNot: - - case EOpFunctionCall: - - case EOpReturn: - case EOpAssign: - case EOpAddAssign: - case EOpSubAssign: - case EOpMulAssign: - case EOpVectorTimesScalarAssign: - case EOpMatrixTimesScalarAssign: - case EOpDivAssign: - case EOpModAssign: - case EOpAndAssign: - case EOpInclusiveOrAssign: - case EOpExclusiveOrAssign: - - case EOpAtan: - case EOpClamp: - case EOpCross: - case EOpDistance: - case EOpDot: - case EOpDst: - case EOpFaceForward: - case EOpFma: - case EOpFrexp: - case EOpLdexp: - case EOpMix: - case EOpLit: - case EOpMax: - case EOpMin: - case EOpMod: - case EOpModf: - case EOpPow: - case EOpReflect: - case EOpRefract: - case EOpSmoothStep: - case EOpStep: - - case EOpSequence: - case EOpConstructStruct: - case EOpConstructCooperativeMatrix: - - if (type.isReference() || node->getType().isReference()) { - // types must match to assign a reference - if (type == node->getType()) - return node; - else - return nullptr; - } - - if (type.getBasicType() == node->getType().getBasicType()) - return node; - - if (! canImplicitlyPromote(node->getBasicType(), type.getBasicType(), op)) - 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. - case EOpLeftShiftAssign: - case EOpRightShiftAssign: - { - if (!(getSource() == EShSourceHlsl && node->getType().getBasicType() == EbtBool)) { - 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 - - if (type.getBasicType() == node->getType().getBasicType()) - return node; - else - return nullptr; - } - - bool canPromoteConstant = true; -#ifndef GLSLANG_WEB - // GL_EXT_shader_16bit_storage can't do OpConstantComposite with - // 16-bit types, so disable promotion for those types. - // Many issues with this, from JohnK: - // - this isn't really right to discuss SPIR-V here - // - this could easily be entirely about scalars, so is overstepping - // - we should be looking at what the shader asked for, and saying whether or - // not it can be done, in the parser, by calling requireExtensions(), not - // changing language sementics on the fly by asking what extensions are in use - // - at the time of this writing (14-Aug-2020), no test results are changed by this. - switch (op) { - case EOpConstructFloat16: - canPromoteConstant = numericFeatures.contains(TNumericFeatures::shader_explicit_arithmetic_types) || - numericFeatures.contains(TNumericFeatures::shader_explicit_arithmetic_types_float16); - break; - case EOpConstructInt8: - case EOpConstructUint8: - canPromoteConstant = numericFeatures.contains(TNumericFeatures::shader_explicit_arithmetic_types) || - numericFeatures.contains(TNumericFeatures::shader_explicit_arithmetic_types_int8); - break; - case EOpConstructInt16: - case EOpConstructUint16: - canPromoteConstant = numericFeatures.contains(TNumericFeatures::shader_explicit_arithmetic_types) || - numericFeatures.contains(TNumericFeatures::shader_explicit_arithmetic_types_int16); - break; - default: - break; - } -#endif - - if (canPromoteConstant && node->getAsConstantUnion()) - return promoteConstantUnion(type.getBasicType(), node->getAsConstantUnion()); - - // - // Add a new newNode for the conversion. - // - TIntermTyped* newNode = createConversion(type.getBasicType(), node); - - 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 (getSource()) { - 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 (getSource()) { - 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 EOpMul: - // matrix multiply does not change shapes - if (lhsNode->isMatrix() && rhsNode->isMatrix()) - return; - case EOpAdd: - case EOpSub: - 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'. -// -// 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()) - return node; - - // The new node that handles the conversion - TOperator constructorOp = mapTypeToConstructorOp(type); - - if (getSource() == EShSourceHlsl) { - // HLSL rules for scalar, vector and matrix conversions: - // 1) scalar can become anything, initializing every component with its value - // 2) vector and matrix can become scalar, first element is used (warning: truncation) - // 3) matrix can become matrix with less rows and/or columns (warning: truncation) - // 4) vector can become vector with less rows size (warning: truncation) - // 5a) vector 4 can become 2x2 matrix (special case) (same packing layout, its a reinterpret) - // 5b) 2x2 matrix can become vector 4 (special case) (same packing layout, its a reinterpret) - - const TType &sourceType = node->getType(); - - // rule 1 for scalar to matrix is special - if (sourceType.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.computeNumComponents(); - 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; x < matSize; ++x) - rhsAggregate->getSequence().push_back(node); - - return setAggregateOperator(rhsAggregate, constructorOp, type, node->getLoc()); - } - - // rule 1 and 2 - if ((sourceType.isScalar() && !type.isScalar()) || (!sourceType.isScalar() && type.isScalar())) - return setAggregateOperator(makeAggregate(node), constructorOp, type, node->getLoc()); - - // rule 3 and 5b - if (sourceType.isMatrix()) { - // rule 3 - if (type.isMatrix()) { - if ((sourceType.getMatrixCols() != type.getMatrixCols() || sourceType.getMatrixRows() != type.getMatrixRows()) && - sourceType.getMatrixCols() >= type.getMatrixCols() && sourceType.getMatrixRows() >= type.getMatrixRows()) - return setAggregateOperator(makeAggregate(node), constructorOp, type, node->getLoc()); - // rule 5b - } else if (type.isVector()) { - if (type.getVectorSize() == 4 && sourceType.getMatrixCols() == 2 && sourceType.getMatrixRows() == 2) - return setAggregateOperator(makeAggregate(node), constructorOp, type, node->getLoc()); - } - } - - // rule 4 and 5a - if (sourceType.isVector()) { - // rule 4 - if (type.isVector()) - { - if (sourceType.getVectorSize() > type.getVectorSize()) - return setAggregateOperator(makeAggregate(node), constructorOp, type, node->getLoc()); - // rule 5a - } else if (type.isMatrix()) { - if (sourceType.getVectorSize() == 4 && type.getMatrixCols() == 2 && type.getMatrixRows() == 2) - return setAggregateOperator(makeAggregate(node), 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 -{ -#ifdef GLSLANG_WEB - return false; -#endif - - switch (from) { - case EbtInt: - switch(to) { - case EbtUint: - return version >= 400 || getSource() == EShSourceHlsl; - case EbtInt64: - case EbtUint64: - return true; - default: - break; - } - break; - case EbtUint: - switch(to) { - case EbtInt64: - case EbtUint64: - return true; - default: - break; - } - break; - 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 EbtInt64: - if (to == EbtUint64) { - return true; - } - break; - default: - break; - } - return false; -} - -bool TIntermediate::isFPConversion(TBasicType from, TBasicType to) const -{ -#ifdef GLSLANG_WEB - return false; -#endif - - if (to == EbtFloat && from == EbtFloat16) { - return true; - } else { - return false; - } -} - -bool TIntermediate::isFPIntegralConversion(TBasicType from, TBasicType to) const -{ - switch (from) { - case EbtInt: - case EbtUint: - switch(to) { - case EbtFloat: - case EbtDouble: - return true; - default: - break; - } - break; -#ifndef GLSLANG_WEB - case EbtInt8: - case EbtUint8: - case EbtInt16: - case EbtUint16: - switch (to) { - case EbtFloat16: - case EbtFloat: - case EbtDouble: - return true; - default: - break; - } - break; - case EbtInt64: - case EbtUint64: - if (to == EbtDouble) { - return true; - } - break; -#endif - 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. -// -bool TIntermediate::canImplicitlyPromote(TBasicType from, TBasicType to, TOperator op) const -{ - if ((isEsProfile() && version < 310 ) || version == 110) - return false; - - if (from == to) - return true; - - // TODO: Move more policies into language-specific handlers. - // Some languages allow more general (or potentially, more specific) conversions under some conditions. - if (getSource() == EShSourceHlsl) { - const bool fromConvertable = (from == EbtFloat || from == EbtDouble || from == EbtInt || from == EbtUint || from == EbtBool); - const bool toConvertable = (to == EbtFloat || to == EbtDouble || to == EbtInt || to == EbtUint || to == EbtBool); - - 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 EOpReturn: // function returns can also perform arbitrary conversions - case EOpFunctionCall: // conversion of a calling parameter - case EOpLogicalNot: - case EOpLogicalAnd: - case EOpLogicalOr: - case EOpLogicalXor: - case EOpConstructStruct: - return true; - default: - break; - } - } - } - - if (getSource() == EShSourceHlsl) { - // HLSL - if (from == EbtBool && (to == EbtInt || to == EbtUint || to == EbtFloat)) - return true; - } else { - // GLSL - if (isIntegralPromotion(from, to) || - isFPPromotion(from, to) || - isIntegralConversion(from, to) || - isFPConversion(from, to) || - isFPIntegralConversion(from, to)) { - - if (numericFeatures.contains(TNumericFeatures::shader_explicit_arithmetic_types) || - numericFeatures.contains(TNumericFeatures::shader_explicit_arithmetic_types_int8) || - numericFeatures.contains(TNumericFeatures::shader_explicit_arithmetic_types_int16) || - numericFeatures.contains(TNumericFeatures::shader_explicit_arithmetic_types_int32) || - numericFeatures.contains(TNumericFeatures::shader_explicit_arithmetic_types_int64) || - numericFeatures.contains(TNumericFeatures::shader_explicit_arithmetic_types_float16) || - numericFeatures.contains(TNumericFeatures::shader_explicit_arithmetic_types_float32) || - numericFeatures.contains(TNumericFeatures::shader_explicit_arithmetic_types_float64)) { - return true; - } - } - } - - if (isEsProfile()) { - switch (to) { - case EbtFloat: - switch (from) { - case EbtInt: - case EbtUint: - return numericFeatures.contains(TNumericFeatures::shader_implicit_conversions); - default: - return false; - } - case EbtUint: - switch (from) { - case EbtInt: - return numericFeatures.contains(TNumericFeatures::shader_implicit_conversions); - default: - return false; - } - default: - return false; - } - } else { - switch (to) { - case EbtDouble: - switch (from) { - case EbtInt: - case EbtUint: - case EbtInt64: - case EbtUint64: - case EbtFloat: - return version >= 400 || numericFeatures.contains(TNumericFeatures::gpu_shader_fp64); - case EbtInt16: - case EbtUint16: - return (version >= 400 || numericFeatures.contains(TNumericFeatures::gpu_shader_fp64)) && - numericFeatures.contains(TNumericFeatures::gpu_shader_int16); - case EbtFloat16: - return (version >= 400 || numericFeatures.contains(TNumericFeatures::gpu_shader_fp64)) && - numericFeatures.contains(TNumericFeatures::gpu_shader_half_float); - default: - return false; - } - case EbtFloat: - switch (from) { - case EbtInt: - case EbtUint: - return true; - case EbtBool: - return getSource() == EShSourceHlsl; - case EbtInt16: - case EbtUint16: - return numericFeatures.contains(TNumericFeatures::gpu_shader_int16); - case EbtFloat16: - return numericFeatures.contains(TNumericFeatures::gpu_shader_half_float) || - getSource() == EShSourceHlsl; - default: - return false; - } - case EbtUint: - switch (from) { - case EbtInt: - return version >= 400 || getSource() == EShSourceHlsl || IsRequestedExtension(E_GL_ARB_gpu_shader5); - case EbtBool: - return getSource() == EShSourceHlsl; - case EbtInt16: - case EbtUint16: - return numericFeatures.contains(TNumericFeatures::gpu_shader_int16); - default: - return false; - } - case EbtInt: - switch (from) { - case EbtBool: - return getSource() == EShSourceHlsl; - case EbtInt16: - return numericFeatures.contains(TNumericFeatures::gpu_shader_int16); - default: - return false; - } - case EbtUint64: - switch (from) { - case EbtInt: - case EbtUint: - case EbtInt64: - return true; - case EbtInt16: - case EbtUint16: - return numericFeatures.contains(TNumericFeatures::gpu_shader_int16); - default: - return false; - } - case EbtInt64: - switch (from) { - case EbtInt: - return true; - case EbtInt16: - return numericFeatures.contains(TNumericFeatures::gpu_shader_int16); - default: - return false; - } - case EbtFloat16: - switch (from) { - case EbtInt16: - case EbtUint16: - return numericFeatures.contains(TNumericFeatures::gpu_shader_int16); - default: - break; - } - return false; - case EbtUint16: - switch (from) { - case EbtInt16: - return numericFeatures.contains(TNumericFeatures::gpu_shader_int16); - default: - break; - } - return false; - default: - return false; - } - } - - return false; -} - -static bool canSignedIntTypeRepresentAllUnsignedValues(TBasicType sintType, TBasicType uintType) -{ -#ifdef GLSLANG_WEB - return false; -#endif - - 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 EbtInt: - switch(uintType) { - case EbtUint8: - case EbtUint16: - return true; - case EbtUint: - return false; - default: - assert(false); - return false; - } - break; - 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) -{ -#ifdef GLSLANG_WEB - assert(type == EbtInt); - return EbtUint; -#endif - - 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::getConversionDestinationType(TBasicType type0, TBasicType type1, TOperator op) const -{ - TBasicType res0 = EbtNumTypes; - TBasicType res1 = EbtNumTypes; - - if ((isEsProfile() && - (version < 310 || !numericFeatures.contains(TNumericFeatures::shader_implicit_conversions))) || - version == 110) - return std::make_tuple(res0, res1); - - if (getSource() == 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. -// -TOperator TIntermediate::mapTypeToConstructorOp(const TType& type) const -{ - TOperator op = EOpNull; - - if (type.getQualifier().isNonUniform()) - return EOpConstructNonuniform; - - if (type.isCoopMat()) - return EOpConstructCooperativeMatrix; - - switch (type.getBasicType()) { - case EbtStruct: - op = EOpConstructStruct; - break; - case EbtSampler: - if (type.getSampler().isCombined()) - op = EOpConstructTextureSampler; - break; - case EbtFloat: - if (type.isMatrix()) { - switch (type.getMatrixCols()) { - case 2: - switch (type.getMatrixRows()) { - case 2: op = EOpConstructMat2x2; break; - case 3: op = EOpConstructMat2x3; break; - case 4: op = EOpConstructMat2x4; break; - default: break; // some compilers want this - } - break; - case 3: - switch (type.getMatrixRows()) { - case 2: op = EOpConstructMat3x2; break; - case 3: op = EOpConstructMat3x3; break; - case 4: op = EOpConstructMat3x4; break; - default: break; // some compilers want this - } - break; - case 4: - switch (type.getMatrixRows()) { - case 2: op = EOpConstructMat4x2; break; - case 3: op = EOpConstructMat4x3; break; - case 4: op = EOpConstructMat4x4; break; - default: break; // some compilers want this - } - break; - default: break; // some compilers want this - } - } else { - switch(type.getVectorSize()) { - case 1: op = EOpConstructFloat; break; - case 2: op = EOpConstructVec2; break; - case 3: op = EOpConstructVec3; break; - case 4: op = EOpConstructVec4; 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 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 - } - } - break; -#ifndef GLSLANG_WEB - case EbtDouble: - if (type.getMatrixCols()) { - switch (type.getMatrixCols()) { - case 2: - switch (type.getMatrixRows()) { - case 2: op = EOpConstructDMat2x2; break; - case 3: op = EOpConstructDMat2x3; break; - case 4: op = EOpConstructDMat2x4; break; - default: break; // some compilers want this - } - break; - case 3: - switch (type.getMatrixRows()) { - case 2: op = EOpConstructDMat3x2; break; - case 3: op = EOpConstructDMat3x3; break; - case 4: op = EOpConstructDMat3x4; break; - default: break; // some compilers want this - } - break; - case 4: - switch (type.getMatrixRows()) { - case 2: op = EOpConstructDMat4x2; break; - case 3: op = EOpConstructDMat4x3; break; - case 4: op = EOpConstructDMat4x4; break; - default: break; // some compilers want this - } - break; - } - } else { - switch(type.getVectorSize()) { - case 1: op = EOpConstructDouble; break; - case 2: op = EOpConstructDVec2; break; - case 3: op = EOpConstructDVec3; break; - case 4: op = EOpConstructDVec4; break; - default: break; // some compilers want this - } - } - break; - case EbtFloat16: - if (type.getMatrixCols()) { - switch (type.getMatrixCols()) { - case 2: - switch (type.getMatrixRows()) { - case 2: op = EOpConstructF16Mat2x2; break; - case 3: op = EOpConstructF16Mat2x3; break; - case 4: op = EOpConstructF16Mat2x4; break; - default: break; // some compilers want this - } - break; - case 3: - switch (type.getMatrixRows()) { - case 2: op = EOpConstructF16Mat3x2; break; - case 3: op = EOpConstructF16Mat3x3; break; - case 4: op = EOpConstructF16Mat3x4; break; - default: break; // some compilers want this - } - break; - case 4: - switch (type.getMatrixRows()) { - case 2: op = EOpConstructF16Mat4x2; break; - case 3: op = EOpConstructF16Mat4x3; break; - case 4: op = EOpConstructF16Mat4x4; break; - default: break; // some compilers want this - } - break; - } - } - else { - switch (type.getVectorSize()) { - case 1: op = EOpConstructFloat16; break; - case 2: op = EOpConstructF16Vec2; break; - case 3: op = EOpConstructF16Vec3; break; - case 4: op = EOpConstructF16Vec4; break; - default: break; // some compilers want this - } - } - break; - 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; - case EbtInt64: - switch(type.getVectorSize()) { - case 1: op = EOpConstructInt64; break; - case 2: op = EOpConstructI64Vec2; break; - case 3: op = EOpConstructI64Vec3; break; - case 4: op = EOpConstructI64Vec4; break; - default: break; // some compilers want this - } - break; - case EbtUint64: - switch(type.getVectorSize()) { - case 1: op = EOpConstructUint64; break; - case 2: op = EOpConstructU64Vec2; break; - case 3: op = EOpConstructU64Vec3; break; - case 4: op = EOpConstructU64Vec4; break; - default: break; // some compilers want this - } - break; - case EbtReference: - op = EOpConstructReference; - break; - - case EbtAccStruct: - op = EOpConstructAccStruct; - break; -#endif - default: - break; - } - - return op; -} - -// -// Safe way to combine two nodes into an aggregate. Works with null pointers, -// a node that's not a aggregate yet, etc. -// -// Returns the resulting aggregate, unless nullptr was passed in for -// both existing nodes. -// -TIntermAggregate* TIntermediate::growAggregate(TIntermNode* left, TIntermNode* right) -{ - if (left == nullptr && right == nullptr) - return nullptr; - - TIntermAggregate* aggNode = nullptr; - if (left != nullptr) - aggNode = left->getAsAggregate(); - if (aggNode == nullptr || aggNode->getOp() != EOpNull) { - aggNode = new TIntermAggregate; - if (left != nullptr) - aggNode->getSequence().push_back(left); - } - - if (right != nullptr) - aggNode->getSequence().push_back(right); - - return aggNode; -} - -TIntermAggregate* TIntermediate::growAggregate(TIntermNode* left, TIntermNode* right, const TSourceLoc& loc) -{ - TIntermAggregate* aggNode = growAggregate(left, right); - if (aggNode) - aggNode->setLoc(loc); - - return aggNode; -} - -// -// Turn an existing node into an aggregate. -// -// Returns an aggregate, unless nullptr was passed in for the existing node. -// -TIntermAggregate* TIntermediate::makeAggregate(TIntermNode* node) -{ - if (node == nullptr) - return nullptr; - - TIntermAggregate* aggNode = new TIntermAggregate; - aggNode->getSequence().push_back(node); - aggNode->setLoc(node->getLoc()); - - return aggNode; -} - -TIntermAggregate* TIntermediate::makeAggregate(TIntermNode* node, const TSourceLoc& loc) -{ - if (node == nullptr) - return nullptr; - - TIntermAggregate* aggNode = new TIntermAggregate; - aggNode->getSequence().push_back(node); - aggNode->setLoc(loc); - - return aggNode; -} - -// -// Make an aggregate with an empty sequence. -// -TIntermAggregate* TIntermediate::makeAggregate(const TSourceLoc& loc) -{ - TIntermAggregate* aggNode = new TIntermAggregate; - aggNode->setLoc(loc); - - return aggNode; -} - -// -// For "if" test nodes. There are three children; a condition, -// a true path, and a false path. The two paths are in the -// nodePair. -// -// Returns the selection node created. -// -TIntermSelection* TIntermediate::addSelection(TIntermTyped* cond, TIntermNodePair nodePair, const TSourceLoc& loc) -{ - // - // Don't prune the false path for compile-time constants; it's needed - // for static access analysis. - // - - TIntermSelection* node = new TIntermSelection(cond, nodePair.node1, nodePair.node2); - node->setLoc(loc); - - 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 && - // right->getType().getQualifier().storage == EvqConst) { - - // return right; - //} - - TIntermTyped *commaAggregate = growAggregate(left, right, loc); - commaAggregate->getAsAggregate()->setOperator(EOpComma); - commaAggregate->setType(right->getType()); - commaAggregate->getWritableType().getQualifier().makeTemporary(); - - return commaAggregate; -} - -TIntermTyped* TIntermediate::addMethod(TIntermTyped* object, const TType& type, const TString* name, const TSourceLoc& loc) -{ - TIntermMethod* method = new TIntermMethod(object, type, *name); - method->setLoc(loc); - - return method; -} - -// -// 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 ( ? : ) -// -// Returns the selection node created, or nullptr if one could not be. -// -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 = addPairConversion(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; - - // 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; - else - return falseBlock; - } - - // - // Make a selection node. - // - TIntermSelection* node = new TIntermSelection(cond, trueBlock, falseBlock, trueBlock->getType()); - 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; -} - -// -// Constant terminal nodes. Has a union that contains bool, float or int constants -// -// Returns the constant union node created. -// - -TIntermConstantUnion* TIntermediate::addConstantUnion(const TConstUnionArray& unionArray, const TType& t, const TSourceLoc& loc, bool literal) const -{ - TIntermConstantUnion* node = new TIntermConstantUnion(unionArray, t); - node->getQualifier().storage = EvqConst; - node->setLoc(loc); - if (literal) - node->setLiteral(); - - 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 -{ - TConstUnionArray unionArray(1); - unionArray[0].setIConst(i); - - return addConstantUnion(unionArray, TType(EbtInt, EvqConst), loc, literal); -} - -TIntermConstantUnion* TIntermediate::addConstantUnion(unsigned int u, const TSourceLoc& loc, bool literal) const -{ - TConstUnionArray unionArray(1); - unionArray[0].setUConst(u); - - return addConstantUnion(unionArray, TType(EbtUint, EvqConst), loc, literal); -} - -TIntermConstantUnion* TIntermediate::addConstantUnion(long long i64, const TSourceLoc& loc, bool literal) const -{ - TConstUnionArray unionArray(1); - unionArray[0].setI64Const(i64); - - return addConstantUnion(unionArray, TType(EbtInt64, EvqConst), loc, literal); -} - -TIntermConstantUnion* TIntermediate::addConstantUnion(unsigned long long u64, const TSourceLoc& loc, bool literal) const -{ - TConstUnionArray unionArray(1); - unionArray[0].setU64Const(u64); - - return addConstantUnion(unionArray, TType(EbtUint64, EvqConst), loc, literal); -} - -TIntermConstantUnion* TIntermediate::addConstantUnion(bool b, const TSourceLoc& loc, bool literal) const -{ - TConstUnionArray unionArray(1); - unionArray[0].setBConst(b); - - return addConstantUnion(unionArray, TType(EbtBool, EvqConst), loc, literal); -} - -TIntermConstantUnion* TIntermediate::addConstantUnion(double d, TBasicType baseType, const TSourceLoc& loc, bool literal) const -{ - assert(baseType == EbtFloat || baseType == EbtDouble || baseType == EbtFloat16); - - TConstUnionArray unionArray(1); - unionArray[0].setDConst(d); - - 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) -{ - TIntermAggregate* node = new TIntermAggregate(EOpSequence); - - node->setLoc(loc); - TIntermSequence &sequenceVector = node->getSequence(); - - for (int i = 0; i < selector.size(); i++) - pushSelector(sequenceVector, selector[i], loc); - - return node; -} - -// -// Follow the left branches down to the root of an l-value -// expression (just "." and []). -// -// Return the base of the l-value (where following indexing quits working). -// Return nullptr if a chain following dereferences cannot be followed. -// -// 'swizzleOkay' says whether or not it is okay to consider a swizzle -// a valid part of the dereference chain. -// -// 'BufferReferenceOk' says if type is buffer_reference, the routine stop to find the most left node. -// -// - -const TIntermTyped* TIntermediate::findLValueBase(const TIntermTyped* node, bool swizzleOkay , bool bufferReferenceOk) -{ - do { - const TIntermBinary* binary = node->getAsBinaryNode(); - if (binary == nullptr) - return node; - TOperator op = binary->getOp(); - if (op != EOpIndexDirect && op != EOpIndexIndirect && op != EOpIndexDirectStruct && op != EOpVectorSwizzle && op != EOpMatrixSwizzle) - return nullptr; - if (! swizzleOkay) { - if (op == EOpVectorSwizzle || op == EOpMatrixSwizzle) - return nullptr; - if ((op == EOpIndexDirect || op == EOpIndexIndirect) && - (binary->getLeft()->getType().isVector() || binary->getLeft()->getType().isScalar()) && - ! binary->getLeft()->getType().isArray()) - return nullptr; - } - node = node->getAsBinaryNode()->getLeft(); - if (bufferReferenceOk && node->isReference()) - return node; - } while (true); -} - -// -// Create while and do-while loop nodes. -// -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); - - return node; -} - -// -// Create a for-loop sequence. -// -TIntermAggregate* TIntermediate::addForLoop(TIntermNode* body, TIntermNode* initializer, TIntermTyped* test, - TIntermTyped* terminal, bool testFirst, const TSourceLoc& loc, TIntermLoop*& node) -{ - 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); - loopSequence = growAggregate(loopSequence, node); - loopSequence->setOperator(EOpSequence); - - return loopSequence; -} - -// -// Add branches. -// -TIntermBranch* TIntermediate::addBranch(TOperator branchOp, const TSourceLoc& loc) -{ - return addBranch(branchOp, nullptr, loc); -} - -TIntermBranch* TIntermediate::addBranch(TOperator branchOp, TIntermTyped* expression, const TSourceLoc& loc) -{ - TIntermBranch* node = new TIntermBranch(branchOp, expression); - node->setLoc(loc); - - return node; -} - -// Propagate precision from formal function return type to actual return type, -// and on to its subtree. -void TIntermBranch::updatePrecision(TPrecisionQualifier parentPrecision) -{ - TIntermTyped* exp = getExpression(); - if (exp == nullptr) - return; - - if (exp->getBasicType() == EbtInt || exp->getBasicType() == EbtUint || - exp->getBasicType() == EbtFloat) { - if (parentPrecision != EpqNone && exp->getQualifier().precision == EpqNone) { - exp->propagatePrecision(parentPrecision); - } - } -} - -// -// This is to be executed after the final root is put on top by the parsing -// process. -// -bool TIntermediate::postProcess(TIntermNode* root, EShLanguage /*language*/) -{ - if (root == nullptr) - return true; - - // Finish off the top-level sequence - TIntermAggregate* aggRoot = root->getAsAggregate(); - if (aggRoot && aggRoot->getOp() == EOpNull) - aggRoot->setOperator(EOpSequence); - -#ifndef GLSLANG_WEB - // Propagate 'noContraction' label in backward from 'precise' variables. - glslang::PropagateNoContraction(*this); - - switch (textureSamplerTransformMode) { - case EShTexSampTransKeep: - break; - case EShTexSampTransUpgradeTextureRemoveSampler: - performTextureUpgradeAndSamplerRemovalTransformation(root); - break; - case EShTexSampTransCount: - assert(0); - break; - } -#endif - - return true; -} - -void TIntermediate::addSymbolLinkageNodes(TIntermAggregate*& linkage, EShLanguage language, TSymbolTable& symbolTable) -{ - // Add top-level nodes for declarations that must be checked cross - // compilation unit by a linker, yet might not have been referenced - // by the AST. - // - // Almost entirely, translation of symbols is driven by what's present - // in the AST traversal, not by translating the symbol table. - // - // However, there are some special cases: - // - From the specification: "Special built-in inputs gl_VertexID and - // gl_InstanceID are also considered active vertex attributes." - // - Linker-based type mismatch error reporting needs to see all - // uniforms/ins/outs variables and blocks. - // - ftransform() can make gl_Vertex and gl_ModelViewProjectionMatrix active. - // - - // if (ftransformUsed) { - // TODO: 1.1 lowering functionality: track ftransform() usage - // addSymbolLinkageNode(root, symbolTable, "gl_Vertex"); - // addSymbolLinkageNode(root, symbolTable, "gl_ModelViewProjectionMatrix"); - //} - - if (language == EShLangVertex) { - // the names won't be found in the symbol table unless the versions are right, - // so version logic does not need to be repeated here - addSymbolLinkageNode(linkage, symbolTable, "gl_VertexID"); - addSymbolLinkageNode(linkage, symbolTable, "gl_InstanceID"); - } - - // Add a child to the root node for the linker objects - linkage->setOperator(EOpLinkerObjects); - treeRoot = growAggregate(treeRoot, linkage); -} - -// -// Add the given name or symbol to the list of nodes at the end of the tree used -// for link-time checking and external linkage. -// - -void TIntermediate::addSymbolLinkageNode(TIntermAggregate*& linkage, TSymbolTable& symbolTable, const TString& name) -{ - TSymbol* symbol = symbolTable.find(name); - if (symbol) - addSymbolLinkageNode(linkage, *symbol->getAsVariable()); -} - -void TIntermediate::addSymbolLinkageNode(TIntermAggregate*& linkage, const TSymbol& symbol) -{ - const TVariable* variable = symbol.getAsVariable(); - if (! variable) { - // This must be a member of an anonymous block, and we need to add the whole block - const TAnonMember* anon = symbol.getAsAnonMember(); - variable = &anon->getAnonContainer(); - } - TIntermSymbol* node = addSymbol(*variable); - linkage = growAggregate(linkage, node); -} - -// -// Add a caller->callee relationship to the call graph. -// Assumes the strings are unique per signature. -// -void TIntermediate::addToCallGraph(TInfoSink& /*infoSink*/, const TString& caller, const TString& callee) -{ - // Duplicates are okay, but faster to not keep them, and they come grouped by caller, - // as long as new ones are push on the same end we check on for duplicates - for (TGraph::const_iterator call = callGraph.begin(); call != callGraph.end(); ++call) { - if (call->caller != caller) - break; - if (call->callee == callee) - return; - } - - callGraph.emplace_front(caller, callee); -} - -// -// This deletes the tree. -// -void TIntermediate::removeTree() -{ - if (treeRoot) - RemoveAllTreeNodes(treeRoot); -} - -// -// Implement the part of KHR_vulkan_glsl that lists the set of operations -// that can result in a specialization constant operation. -// -// "5.x Specialization Constant Operations" -// -// Only some operations discussed in this section may be applied to a -// specialization constant and still yield a result that is as -// specialization constant. The operations allowed are listed below. -// When a specialization constant is operated on with one of these -// operators and with another constant or specialization constant, the -// result is implicitly a specialization constant. -// -// - int(), uint(), and bool() constructors for type conversions -// from any of the following types to any of the following types: -// * int -// * uint -// * bool -// - vector versions of the above conversion constructors -// - allowed implicit conversions of the above -// - swizzles (e.g., foo.yx) -// - The following when applied to integer or unsigned integer types: -// * unary negative ( - ) -// * binary operations ( + , - , * , / , % ) -// * shift ( <<, >> ) -// * bitwise operations ( & , | , ^ ) -// - The following when applied to integer or unsigned integer scalar types: -// * comparison ( == , != , > , >= , < , <= ) -// - The following when applied to the Boolean scalar type: -// * not ( ! ) -// * logical operations ( && , || , ^^ ) -// * comparison ( == , != )" -// -// This function just handles binary and unary nodes. Construction -// rules are handled in construction paths that are not covered by the unary -// and binary paths, while required conversions will still show up here -// as unary converters in the from a construction operator. -// -bool TIntermediate::isSpecializationOperation(const TIntermOperator& node) const -{ - // The operations resulting in floating point are quite limited - // (However, some floating-point operations result in bool, like ">", - // so are handled later.) - if (node.getType().isFloatingDomain()) { - switch (node.getOp()) { - case EOpIndexDirect: - case EOpIndexIndirect: - case EOpIndexDirectStruct: - case EOpVectorSwizzle: - case EOpConvFloatToDouble: - case EOpConvDoubleToFloat: - case EOpConvFloat16ToFloat: - case EOpConvFloatToFloat16: - case EOpConvFloat16ToDouble: - case EOpConvDoubleToFloat16: - return true; - default: - return false; - } - } - - // Check for floating-point arguments - if (const TIntermBinary* bin = node.getAsBinaryNode()) - if (bin->getLeft() ->getType().isFloatingDomain() || - bin->getRight()->getType().isFloatingDomain()) - return false; - - // So, for now, we can assume everything left is non-floating-point... - - // Now check for integer/bool-based operations - switch (node.getOp()) { - - // dereference/swizzle - case EOpIndexDirect: - case EOpIndexIndirect: - case EOpIndexDirectStruct: - case EOpVectorSwizzle: - - // (u)int* -> bool - case EOpConvInt8ToBool: - case EOpConvInt16ToBool: - 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 EOpConvUint64ToUint: - - // unary operations - case EOpNegative: - case EOpLogicalNot: - case EOpBitwiseNot: - - // binary operations - case EOpAdd: - case EOpSub: - case EOpMul: - case EOpVectorTimesScalar: - case EOpDiv: - case EOpMod: - case EOpRightShift: - case EOpLeftShift: - case EOpAnd: - case EOpInclusiveOr: - case EOpExclusiveOr: - case EOpLogicalOr: - case EOpLogicalXor: - case EOpLogicalAnd: - case EOpEqual: - case EOpNotEqual: - case EOpLessThan: - case EOpGreaterThan: - case EOpLessThanEqual: - case EOpGreaterThanEqual: - return true; - default: - return false; - } -} - -// 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. -// -//////////////////////////////////////////////////////////////// - -// -// Say whether or not an operation node changes the value of a variable. -// -// Returns true if state is modified. -// -bool TIntermOperator::modifiesState() const -{ - switch (op) { - case EOpPostIncrement: - case EOpPostDecrement: - case EOpPreIncrement: - case EOpPreDecrement: - case EOpAssign: - 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: - return true; - default: - return false; - } -} - -// -// returns true if the operator is for one of the constructors -// -bool TIntermOperator::isConstructor() const -{ - return op > EOpConstructGuardStart && op < EOpConstructGuardEnd; -} - -// -// Make sure the type of an operator is appropriate for its -// combination of operation and operand type. This will invoke -// promoteUnary, promoteBinary, etc as needed. -// -// Returns false if nothing makes sense. -// -bool TIntermediate::promote(TIntermOperator* node) -{ - if (node == nullptr) - return false; - - if (node->getAsUnaryNode()) - return promoteUnary(*node->getAsUnaryNode()); - - if (node->getAsBinaryNode()) - return promoteBinary(*node->getAsBinaryNode()); - - if (node->getAsAggregate()) - return promoteAggregate(*node->getAsAggregate()); - - return false; -} - -// -// See TIntermediate::promote -// -bool TIntermediate::promoteUnary(TIntermUnary& node) -{ - const TOperator op = node.getOp(); - TIntermTyped* operand = node.getOperand(); - - switch (op) { - case EOpLogicalNot: - // 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); - if (converted == nullptr) - return false; - - // Use the result of converting the node to a bool. - node.setOperand(operand = converted); // also updates stack variable - } - break; - case EOpBitwiseNot: - if (!isTypeInt(operand->getBasicType())) - return false; - break; - case EOpNegative: - case EOpPostIncrement: - case EOpPostDecrement: - case EOpPreIncrement: - case EOpPreDecrement: - if (!isTypeInt(operand->getBasicType()) && - operand->getBasicType() != EbtFloat && - operand->getBasicType() != EbtFloat16 && - operand->getBasicType() != EbtDouble) - - return false; - break; - default: - // HLSL uses this path for initial function signature finding for built-ins - // taking a single argument, which generally don't participate in - // operator-based type promotion (type conversion will occur later). - // For now, scalar argument cases are relying on the setType() call below. - if (getSource() == EShSourceHlsl) - break; - - // GLSL only allows integer arguments for the cases identified above in the - // case statements. - if (operand->getBasicType() != EbtFloat) - return false; - } - - node.setType(operand->getType()); - node.getWritableType().getQualifier().makeTemporary(); - - return true; -} - -// Propagate precision qualifiers *up* from children to parent. -void TIntermUnary::updatePrecision() -{ - if (getBasicType() == EbtInt || getBasicType() == EbtUint || - getBasicType() == EbtFloat) { - if (operand->getQualifier().precision > getQualifier().precision) - getQualifier().precision = operand->getQualifier().precision; - } -} - -// -// See TIntermediate::promote -// -bool TIntermediate::promoteBinary(TIntermBinary& node) -{ - TOperator op = node.getOp(); - TIntermTyped* left = node.getLeft(); - TIntermTyped* right = node.getRight(); - - // Arrays and structures have to be exact matches. - if ((left->isArray() || right->isArray() || left->getBasicType() == EbtStruct || right->getBasicType() == EbtStruct) - && left->getType() != right->getType()) - return false; - - // Base assumption: just make the type the same as the left - // operand. Only deviations from this will be coded. - node.setType(left->getType()); - node.getWritableType().getQualifier().clear(); - - // Composite and opaque types don't having pending operator changes, e.g., - // array, structure, and samplers. Just establish final type and correctness. - if (left->isArray() || left->getBasicType() == EbtStruct || left->getBasicType() == EbtSampler) { - switch (op) { - case EOpEqual: - case EOpNotEqual: - if (left->getBasicType() == EbtSampler) { - // can't compare samplers - return false; - } else { - // Promote to conditional - node.setType(TType(EbtBool)); - } - - return true; - - case EOpAssign: - // Keep type from above - - return true; - - default: - return false; - } - } - - // - // 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: - case EOpGreaterThan: - case EOpLessThanEqual: - case EOpGreaterThanEqual: - // Relational comparisons need numeric types and will promote to scalar Boolean. - if (left->getBasicType() == EbtBool) - return false; - - node.setType(TType(EbtBool, EvqTemporary, left->getVectorSize())); - break; - - case EOpEqual: - case EOpNotEqual: - if (getSource() == EShSourceHlsl) { - const int resultWidth = std::max(left->getVectorSize(), right->getVectorSize()); - - // In HLSL, == or != on vectors means component-wise comparison. - if (resultWidth > 1) { - op = (op == EOpEqual) ? EOpVectorEqual : EOpVectorNotEqual; - node.setOp(op); - } - - node.setType(TType(EbtBool, EvqTemporary, resultWidth)); - } else { - // All the above comparisons result in a bool (but not the vector compares) - node.setType(TType(EbtBool)); - } - break; - - case EOpLogicalAnd: - case EOpLogicalOr: - case EOpLogicalXor: - // logical ops operate only on Booleans or vectors of Booleans. - if (left->getBasicType() != EbtBool || left->isMatrix()) - return false; - - if (getSource() == EShSourceGlsl) { - // logical ops operate only on scalar Booleans and will promote to scalar Boolean. - if (left->isVector()) - return false; - } - - node.setType(TType(EbtBool, EvqTemporary, left->getVectorSize())); - break; - - case EOpRightShift: - case EOpLeftShift: - case EOpRightShiftAssign: - case EOpLeftShiftAssign: - - case EOpMod: - case EOpModAssign: - - case EOpAnd: - case EOpInclusiveOr: - case EOpExclusiveOr: - case EOpAndAssign: - case EOpInclusiveOrAssign: - case EOpExclusiveOrAssign: - if (getSource() == EShSourceHlsl) - break; - - // Check for integer-only operands. - if (!isTypeInt(left->getBasicType()) && !isTypeInt(right->getBasicType())) - return false; - if (left->isMatrix() || right->isMatrix()) - return false; - - break; - - case EOpAdd: - case EOpSub: - case EOpDiv: - case EOpMul: - case EOpAddAssign: - case EOpSubAssign: - case EOpMulAssign: - case EOpDivAssign: - // check for non-Boolean operands - if (left->getBasicType() == EbtBool || right->getBasicType() == EbtBool) - return false; - - default: - break; - } - - // Compare left and right, and finish with the cases where the operand types must match - switch (op) { - case EOpLessThan: - case EOpGreaterThan: - case EOpLessThanEqual: - case EOpGreaterThanEqual: - - case EOpEqual: - case EOpNotEqual: - case EOpVectorEqual: - case EOpVectorNotEqual: - - case EOpLogicalAnd: - case EOpLogicalOr: - case EOpLogicalXor: - return left->getType() == right->getType(); - - case EOpMod: - case EOpModAssign: - - case EOpAnd: - case EOpInclusiveOr: - case EOpExclusiveOr: - case EOpAndAssign: - case EOpInclusiveOrAssign: - case EOpExclusiveOrAssign: - - case EOpAdd: - case EOpSub: - case EOpDiv: - - case EOpAddAssign: - case EOpSubAssign: - case EOpDivAssign: - // Quick out in case the types do match - if (left->getType() == right->getType()) - return true; - - // Fall through - - case EOpMul: - case EOpMulAssign: - // At least the basic type has to match - if (left->getBasicType() != right->getBasicType()) - return false; - - default: - break; - } - - if (left->getType().isCoopMat() || right->getType().isCoopMat()) { - if (left->getType().isCoopMat() && right->getType().isCoopMat() && - *left->getType().getTypeParameters() != *right->getType().getTypeParameters()) { - return false; - } - switch (op) { - case EOpMul: - case EOpMulAssign: - if (left->getType().isCoopMat() && right->getType().isCoopMat()) { - return false; - } - if (op == EOpMulAssign && right->getType().isCoopMat()) { - return false; - } - node.setOp(op == EOpMulAssign ? EOpMatrixTimesScalarAssign : EOpMatrixTimesScalar); - if (right->getType().isCoopMat()) { - node.setType(right->getType()); - } - return true; - case EOpAdd: - case EOpSub: - case EOpDiv: - case EOpAssign: - // These require both to be cooperative matrices - if (!left->getType().isCoopMat() || !right->getType().isCoopMat()) { - return false; - } - return true; - default: - break; - } - return false; - } - - // Finish handling the case, for all ops, where both operands are scalars. - if (left->isScalar() && right->isScalar()) - 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) - return false; - - // - // We now have a mix of scalars, vectors, or matrices, for non-relational operations. - // - - // Can these two operands be combined, what is the resulting type? - TBasicType basicType = left->getBasicType(); - switch (op) { - case EOpMul: - if (!left->isMatrix() && right->isMatrix()) { - if (left->isVector()) { - if (left->getVectorSize() != right->getMatrixRows()) - return false; - node.setOp(op = EOpVectorTimesMatrix); - node.setType(TType(basicType, EvqTemporary, right->getMatrixCols())); - } else { - node.setOp(op = EOpMatrixTimesScalar); - node.setType(TType(basicType, EvqTemporary, 0, right->getMatrixCols(), right->getMatrixRows())); - } - } else if (left->isMatrix() && !right->isMatrix()) { - if (right->isVector()) { - if (left->getMatrixCols() != right->getVectorSize()) - return false; - node.setOp(op = EOpMatrixTimesVector); - node.setType(TType(basicType, EvqTemporary, left->getMatrixRows())); - } else { - node.setOp(op = EOpMatrixTimesScalar); - } - } else if (left->isMatrix() && right->isMatrix()) { - if (left->getMatrixCols() != right->getMatrixRows()) - return false; - node.setOp(op = EOpMatrixTimesMatrix); - node.setType(TType(basicType, EvqTemporary, 0, right->getMatrixCols(), left->getMatrixRows())); - } else if (! left->isMatrix() && ! right->isMatrix()) { - if (left->isVector() && right->isVector()) { - ; // leave as component product - } else if (left->isVector() || right->isVector()) { - node.setOp(op = EOpVectorTimesScalar); - if (right->isVector()) - node.setType(TType(basicType, EvqTemporary, right->getVectorSize())); - } - } else { - return false; - } - break; - case EOpMulAssign: - if (! left->isMatrix() && right->isMatrix()) { - if (left->isVector()) { - if (left->getVectorSize() != right->getMatrixRows() || left->getVectorSize() != right->getMatrixCols()) - return false; - node.setOp(op = EOpVectorTimesMatrixAssign); - } else { - return false; - } - } else if (left->isMatrix() && !right->isMatrix()) { - if (right->isVector()) { - return false; - } else { - node.setOp(op = EOpMatrixTimesScalarAssign); - } - } else if (left->isMatrix() && right->isMatrix()) { - if (left->getMatrixCols() != right->getMatrixCols() || left->getMatrixCols() != right->getMatrixRows()) - return false; - node.setOp(op = EOpMatrixTimesMatrixAssign); - } else if (!left->isMatrix() && !right->isMatrix()) { - if (left->isVector() && right->isVector()) { - // leave as component product - } else if (left->isVector() || right->isVector()) { - if (! left->isVector()) - return false; - node.setOp(op = EOpVectorTimesScalarAssign); - } - } else { - return false; - } - break; - - case EOpRightShift: - case EOpLeftShift: - case EOpRightShiftAssign: - case EOpLeftShiftAssign: - if (right->isVector() && (! left->isVector() || right->getVectorSize() != left->getVectorSize())) - return false; - break; - - case EOpAssign: - if (left->getVectorSize() != right->getVectorSize() || left->getMatrixCols() != right->getMatrixCols() || left->getMatrixRows() != right->getMatrixRows()) - return false; - // fall through - - case EOpAdd: - case EOpSub: - case EOpDiv: - case EOpMod: - case EOpAnd: - case EOpInclusiveOr: - case EOpExclusiveOr: - case EOpAddAssign: - case EOpSubAssign: - case EOpDivAssign: - case EOpModAssign: - case EOpAndAssign: - case EOpInclusiveOrAssign: - case EOpExclusiveOrAssign: - - if ((left->isMatrix() && right->isVector()) || - (left->isVector() && right->isMatrix()) || - left->getBasicType() != right->getBasicType()) - return false; - if (left->isMatrix() && right->isMatrix() && (left->getMatrixCols() != right->getMatrixCols() || left->getMatrixRows() != right->getMatrixRows())) - return false; - if (left->isVector() && right->isVector() && left->getVectorSize() != right->getVectorSize()) - return false; - if (right->isVector() || right->isMatrix()) { - node.getWritableType().shallowCopy(right->getType()); - node.getWritableType().getQualifier().makeTemporary(); - } - break; - - default: - return false; - } - - // - // One more check for assignment. - // - switch (op) { - // The resulting type has to match the left operand. - case EOpAssign: - case EOpAddAssign: - case EOpSubAssign: - case EOpMulAssign: - case EOpDivAssign: - case EOpModAssign: - case EOpAndAssign: - case EOpInclusiveOrAssign: - case EOpExclusiveOrAssign: - case EOpLeftShiftAssign: - case EOpRightShiftAssign: - if (node.getType() != left->getType()) - return false; - break; - default: - break; - } - - return true; -} - -// -// See TIntermediate::promote -// -bool TIntermediate::promoteAggregate(TIntermAggregate& node) -{ - TOperator op = node.getOp(); - TIntermSequence& args = node.getSequence(); - const int numArgs = static_cast(args.size()); - - // Presently, only hlsl does intrinsic promotions. - if (getSource() != EShSourceHlsl) - return true; - - // set of opcodes that can be promoted in this manner. - switch (op) { - case EOpAtan: - case EOpClamp: - case EOpCross: - case EOpDistance: - case EOpDot: - case EOpDst: - case EOpFaceForward: - // case EOpFindMSB: TODO: - // case EOpFindLSB: TODO: - case EOpFma: - case EOpMod: - case EOpFrexp: - case EOpLdexp: - case EOpMix: - case EOpLit: - case EOpMax: - case EOpMin: - case EOpModf: - // case EOpGenMul: TODO: - case EOpPow: - case EOpReflect: - case EOpRefract: - // case EOpSinCos: TODO: - case EOpSmoothStep: - case EOpStep: - break; - default: - return true; - } - - // TODO: array and struct behavior - - // Try converting all nodes to the given node's type - TIntermSequence convertedArgs(numArgs, nullptr); - - // Try to convert all types to the nonConvArg type. - for (int nonConvArg = 0; nonConvArg < numArgs; ++nonConvArg) { - // Try converting all args to this arg's type - for (int convArg = 0; convArg < numArgs; ++convArg) { - convertedArgs[convArg] = addConversion(op, args[nonConvArg]->getAsTyped()->getType(), - args[convArg]->getAsTyped()); - } - - // If we successfully converted all the args, use the result. - if (std::all_of(convertedArgs.begin(), convertedArgs.end(), - [](const TIntermNode* node) { return node != nullptr; })) { - - std::swap(args, convertedArgs); - return true; - } - } - - return false; -} - -// Propagate precision qualifiers *up* from children to parent, and then -// back *down* again to the children's subtrees. -void TIntermAggregate::updatePrecision() -{ - if (getBasicType() == EbtInt || getBasicType() == EbtUint || - getBasicType() == EbtFloat) { - TPrecisionQualifier maxPrecision = EpqNone; - TIntermSequence operands = getSequence(); - for (unsigned int i = 0; i < operands.size(); ++i) { - TIntermTyped* typedNode = operands[i]->getAsTyped(); - assert(typedNode); - maxPrecision = std::max(maxPrecision, typedNode->getQualifier().precision); - } - getQualifier().precision = maxPrecision; - for (unsigned int i = 0; i < operands.size(); ++i) { - TIntermTyped* typedNode = operands[i]->getAsTyped(); - assert(typedNode); - typedNode->propagatePrecision(maxPrecision); - } - } -} - -// Propagate precision qualifiers *up* from children to parent, and then -// back *down* again to the children's subtrees. -void TIntermBinary::updatePrecision() -{ - if (getBasicType() == EbtInt || getBasicType() == EbtUint || - getBasicType() == EbtFloat) { - if (op == EOpRightShift || op == EOpLeftShift) { - // For shifts get precision from left side only and thus no need to propagate - getQualifier().precision = left->getQualifier().precision; - } else { - getQualifier().precision = std::max(right->getQualifier().precision, left->getQualifier().precision); - if (getQualifier().precision != EpqNone) { - left->propagatePrecision(getQualifier().precision); - right->propagatePrecision(getQualifier().precision); - } - } - } -} - -// Recursively propagate precision qualifiers *down* the subtree of the current node, -// until reaching a node that already has a precision qualifier or otherwise does -// not participate in precision propagation. -void TIntermTyped::propagatePrecision(TPrecisionQualifier newPrecision) -{ - if (getQualifier().precision != EpqNone || - (getBasicType() != EbtInt && getBasicType() != EbtUint && - getBasicType() != EbtFloat && getBasicType() != EbtFloat16)) - return; - - getQualifier().precision = newPrecision; - - TIntermBinary* binaryNode = getAsBinaryNode(); - if (binaryNode) { - binaryNode->getLeft()->propagatePrecision(newPrecision); - binaryNode->getRight()->propagatePrecision(newPrecision); - - return; - } - - TIntermUnary* unaryNode = getAsUnaryNode(); - if (unaryNode) { - unaryNode->getOperand()->propagatePrecision(newPrecision); - - return; - } - - TIntermAggregate* aggregateNode = getAsAggregate(); - if (aggregateNode) { - TIntermSequence operands = aggregateNode->getSequence(); - for (unsigned int i = 0; i < operands.size(); ++i) { - TIntermTyped* typedNode = operands[i]->getAsTyped(); - if (! typedNode) - break; - typedNode->propagatePrecision(newPrecision); - } - - return; - } - - TIntermSelection* selectionNode = getAsSelectionNode(); - if (selectionNode) { - TIntermTyped* typedNode = selectionNode->getTrueBlock()->getAsTyped(); - if (typedNode) { - typedNode->propagatePrecision(newPrecision); - typedNode = selectionNode->getFalseBlock()->getAsTyped(); - if (typedNode) - typedNode->propagatePrecision(newPrecision); - } - - return; - } -} - -TIntermTyped* TIntermediate::promoteConstantUnion(TBasicType promoteTo, TIntermConstantUnion* node) const -{ - const TConstUnionArray& rightUnionArray = node->getConstArray(); - int size = node->getType().computeNumComponents(); - - TConstUnionArray leftUnionArray(size); - - for (int i=0; i < size; i++) { - -#define PROMOTE(Set, CType, Get) leftUnionArray[i].Set(static_cast(rightUnionArray[i].Get())) -#define PROMOTE_TO_BOOL(Get) leftUnionArray[i].setBConst(rightUnionArray[i].Get() != 0) - -#ifdef GLSLANG_WEB -#define TO_ALL(Get) \ - switch (promoteTo) { \ - case EbtFloat: PROMOTE(setDConst, double, Get); break; \ - case EbtInt: PROMOTE(setIConst, int, Get); break; \ - case EbtUint: PROMOTE(setUConst, unsigned int, Get); break; \ - case EbtBool: PROMOTE_TO_BOOL(Get); break; \ - default: return node; \ - } -#else -#define TO_ALL(Get) \ - switch (promoteTo) { \ - case EbtFloat16: PROMOTE(setDConst, double, Get); break; \ - case EbtFloat: PROMOTE(setDConst, double, Get); break; \ - case EbtDouble: PROMOTE(setDConst, double, Get); break; \ - case EbtInt8: PROMOTE(setI8Const, signed char, Get); break; \ - case EbtInt16: PROMOTE(setI16Const, short, Get); break; \ - case EbtInt: PROMOTE(setIConst, int, Get); break; \ - case EbtInt64: PROMOTE(setI64Const, long long, Get); break; \ - case EbtUint8: PROMOTE(setU8Const, unsigned char, Get); break; \ - case EbtUint16: PROMOTE(setU16Const, unsigned short, Get); break; \ - case EbtUint: PROMOTE(setUConst, unsigned int, Get); break; \ - case EbtUint64: PROMOTE(setU64Const, unsigned long long, Get); break; \ - case EbtBool: PROMOTE_TO_BOOL(Get); break; \ - default: return node; \ - } -#endif - - switch (node->getType().getBasicType()) { - case EbtFloat: TO_ALL(getDConst); break; - case EbtInt: TO_ALL(getIConst); break; - case EbtUint: TO_ALL(getUConst); break; - case EbtBool: TO_ALL(getBConst); break; -#ifndef GLSLANG_WEB - case EbtFloat16: TO_ALL(getDConst); break; - case EbtDouble: TO_ALL(getDConst); break; - case EbtInt8: TO_ALL(getI8Const); break; - case EbtInt16: TO_ALL(getI16Const); break; - case EbtInt64: TO_ALL(getI64Const); break; - case EbtUint8: TO_ALL(getU8Const); break; - case EbtUint16: TO_ALL(getU16Const); break; - case EbtUint64: TO_ALL(getU64Const); break; -#endif - default: return node; - } - } - - const TType& t = node->getType(); - - return addConstantUnion(leftUnionArray, TType(promoteTo, t.getQualifier().storage, t.getVectorSize(), t.getMatrixCols(), t.getMatrixRows()), - node->getLoc()); -} - -void TIntermAggregate::setPragmaTable(const TPragmaTable& pTable) -{ - 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().setCombined(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/MachineIndependent/LiveTraverser.h b/deps/glslang/glslang/MachineIndependent/LiveTraverser.h deleted file mode 100644 index 9b39b598..00000000 --- a/deps/glslang/glslang/MachineIndependent/LiveTraverser.h +++ /dev/null @@ -1,168 +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 3Dlabs Inc. Ltd. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -// - -#pragma once - -#include "../Include/Common.h" -#include "reflection.h" -#include "localintermediate.h" - -#include "gl_types.h" - -#include -#include - -namespace glslang { - -// -// The traverser: mostly pass through, except -// - processing function-call nodes to push live functions onto the stack of functions to process -// - processing selection nodes to trim semantically dead code -// -// This is in the glslang namespace directly so it can be a friend of TReflection. -// This can be derived from to implement reflection database traversers or -// binding mappers: anything that wants to traverse the live subset of the tree. -// - -class TLiveTraverser : public TIntermTraverser { -public: - TLiveTraverser(const TIntermediate& i, bool traverseAll = false, - bool preVisit = true, bool inVisit = false, bool postVisit = false) : - TIntermTraverser(preVisit, inVisit, postVisit), - intermediate(i), traverseAll(traverseAll) - { } - - // - // Given a function name, find its subroot in the tree, and push it onto the stack of - // functions left to process. - // - void pushFunction(const TString& name) - { - TIntermSequence& globals = intermediate.getTreeRoot()->getAsAggregate()->getSequence(); - for (unsigned int f = 0; f < globals.size(); ++f) { - TIntermAggregate* candidate = globals[f]->getAsAggregate(); - if (candidate && candidate->getOp() == EOpFunction && candidate->getName() == name) { - destinations.push_back(candidate); - break; - } - } - } - - void pushGlobalReference(const TString& name) - { - TIntermSequence& globals = intermediate.getTreeRoot()->getAsAggregate()->getSequence(); - for (unsigned int f = 0; f < globals.size(); ++f) { - TIntermAggregate* candidate = globals[f]->getAsAggregate(); - if (candidate && candidate->getOp() == EOpSequence && - candidate->getSequence().size() == 1 && - candidate->getSequence()[0]->getAsBinaryNode()) { - TIntermBinary* binary = candidate->getSequence()[0]->getAsBinaryNode(); - TIntermSymbol* symbol = binary->getLeft()->getAsSymbolNode(); - if (symbol && symbol->getQualifier().storage == EvqGlobal && - symbol->getName() == name) { - destinations.push_back(candidate); - break; - } - } - } - } - - typedef std::list TDestinationStack; - TDestinationStack destinations; - -protected: - // To catch which function calls are not dead, and hence which functions must be visited. - virtual bool visitAggregate(TVisit, TIntermAggregate* node) - { - if (!traverseAll) - if (node->getOp() == EOpFunctionCall) - addFunctionCall(node); - - return true; // traverse this subtree - } - - // To prune semantically dead paths. - virtual bool visitSelection(TVisit /* visit */, TIntermSelection* node) - { - if (traverseAll) - return true; // traverse all code - - TIntermConstantUnion* constant = node->getCondition()->getAsConstantUnion(); - if (constant) { - // cull the path that is dead - if (constant->getConstArray()[0].getBConst() == true && node->getTrueBlock()) - node->getTrueBlock()->traverse(this); - if (constant->getConstArray()[0].getBConst() == false && node->getFalseBlock()) - node->getFalseBlock()->traverse(this); - - return false; // don't traverse any more, we did it all above - } else - return true; // traverse the whole subtree - } - - // Track live functions as well as uniforms, so that we don't visit dead functions - // and only visit each function once. - void addFunctionCall(TIntermAggregate* call) - { - // just use the map to ensure we process each function at most once - if (liveFunctions.find(call->getName()) == liveFunctions.end()) { - liveFunctions.insert(call->getName()); - pushFunction(call->getName()); - } - } - - void addGlobalReference(const TString& name) - { - // just use the map to ensure we process each global at most once - if (liveGlobals.find(name) == liveGlobals.end()) { - liveGlobals.insert(name); - pushGlobalReference(name); - } - } - - const TIntermediate& intermediate; - typedef std::unordered_set TLiveFunctions; - TLiveFunctions liveFunctions; - typedef std::unordered_set TLiveGlobals; - TLiveGlobals liveGlobals; - bool traverseAll; - -private: - // prevent copy & copy construct - TLiveTraverser(TLiveTraverser&); - TLiveTraverser& operator=(TLiveTraverser&); -}; - -} // namespace glslang diff --git a/deps/glslang/glslang/MachineIndependent/ParseContextBase.cpp b/deps/glslang/glslang/MachineIndependent/ParseContextBase.cpp deleted file mode 100644 index 616580f9..00000000 --- a/deps/glslang/glslang/MachineIndependent/ParseContextBase.cpp +++ /dev/null @@ -1,738 +0,0 @@ -// -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// 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 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. -// - -// Implement the TParseContextBase class. - -#include - -#include "ParseHelper.h" - -extern int yyparse(glslang::TParseContext*); - -namespace glslang { - -// -// Used to output syntax, parsing, and semantic errors. -// - -void TParseContextBase::outputMessage(const TSourceLoc& loc, const char* szReason, - const char* szToken, - const char* szExtraInfoFormat, - TPrefixType prefix, va_list args) -{ - const int maxSize = MaxTokenLength + 200; - char szExtraInfo[maxSize]; - - safe_vsprintf(szExtraInfo, maxSize, szExtraInfoFormat, args); - - infoSink.info.prefix(prefix); - infoSink.info.location(loc); - infoSink.info << "'" << szToken << "' : " << szReason << " " << szExtraInfo << "\n"; - - if (prefix == EPrefixError) { - ++numErrors; - } -} - -#if !defined(GLSLANG_WEB) || defined(GLSLANG_WEB_DEVEL) - -void C_DECL TParseContextBase::error(const TSourceLoc& loc, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...) -{ - if (messages & EShMsgOnlyPreprocessor) - return; - // If enhanced msg readability, only print one error - if (messages & EShMsgEnhanced && numErrors > 0) - return; - va_list args; - va_start(args, szExtraInfoFormat); - outputMessage(loc, szReason, szToken, szExtraInfoFormat, EPrefixError, args); - va_end(args); - - if ((messages & EShMsgCascadingErrors) == 0) - currentScanner->setEndOfInput(); -} - -void C_DECL TParseContextBase::warn(const TSourceLoc& loc, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...) -{ - if (suppressWarnings()) - return; - va_list args; - va_start(args, szExtraInfoFormat); - outputMessage(loc, szReason, szToken, szExtraInfoFormat, EPrefixWarning, args); - va_end(args); -} - -void C_DECL TParseContextBase::ppError(const TSourceLoc& loc, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...) -{ - va_list args; - va_start(args, szExtraInfoFormat); - outputMessage(loc, szReason, szToken, szExtraInfoFormat, EPrefixError, args); - va_end(args); - - if ((messages & EShMsgCascadingErrors) == 0) - currentScanner->setEndOfInput(); -} - -void C_DECL TParseContextBase::ppWarn(const TSourceLoc& loc, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...) -{ - va_list args; - va_start(args, szExtraInfoFormat); - outputMessage(loc, szReason, szToken, szExtraInfoFormat, EPrefixWarning, args); - va_end(args); -} - -#endif - -// -// Both test and if necessary, spit out an error, to see if the node is really -// an l-value that can be operated on this way. -// -// Returns true if there was an error. -// -bool TParseContextBase::lValueErrorCheck(const TSourceLoc& loc, const char* op, TIntermTyped* node) -{ - TIntermBinary* binaryNode = node->getAsBinaryNode(); - - const char* symbol = nullptr; - TIntermSymbol* symNode = node->getAsSymbolNode(); - if (symNode != nullptr) - symbol = symNode->getName().c_str(); - - const char* message = nullptr; - switch (node->getQualifier().storage) { - case EvqConst: message = "can't modify a const"; break; - case EvqConstReadOnly: message = "can't modify a const"; break; - case EvqUniform: message = "can't modify a uniform"; break; -#ifndef GLSLANG_WEB - case EvqBuffer: - if (node->getQualifier().isReadOnly()) - message = "can't modify a readonly buffer"; - if (node->getQualifier().isShaderRecord()) - message = "can't modify a shaderrecordnv qualified buffer"; - break; - case EvqHitAttr: - if (language != EShLangIntersect) - message = "cannot modify hitAttributeNV in this stage"; - break; -#endif - - default: - // - // Type that can't be written to? - // - switch (node->getBasicType()) { - case EbtSampler: - message = "can't modify a sampler"; - break; - case EbtVoid: - message = "can't modify void"; - break; -#ifndef GLSLANG_WEB - case EbtAtomicUint: - message = "can't modify an atomic_uint"; - break; - case EbtAccStruct: - message = "can't modify accelerationStructureNV"; - break; - case EbtRayQuery: - message = "can't modify rayQueryEXT"; - break; -#endif - default: - break; - } - } - - if (message == nullptr && binaryNode == nullptr && symNode == nullptr) { - error(loc, " l-value required", op, "", ""); - - return true; - } - - // - // Everything else is okay, no error. - // - if (message == nullptr) - { - if (binaryNode) { - switch (binaryNode->getOp()) { - case EOpIndexDirect: - case EOpIndexIndirect: // fall through - case EOpIndexDirectStruct: // fall through - case EOpVectorSwizzle: - case EOpMatrixSwizzle: - return lValueErrorCheck(loc, op, binaryNode->getLeft()); - default: - break; - } - error(loc, " l-value required", op, "", ""); - - return true; - } - return false; - } - - // - // If we get here, we have an error and a message. - // - const TIntermTyped* leftMostTypeNode = TIntermediate::findLValueBase(node, true); - - if (symNode) - error(loc, " l-value required", op, "\"%s\" (%s)", symbol, message); - else - if (binaryNode && binaryNode->getAsOperator()->getOp() == EOpIndexDirectStruct) - if(IsAnonymous(leftMostTypeNode->getAsSymbolNode()->getName())) - error(loc, " l-value required", op, "\"%s\" (%s)", leftMostTypeNode->getAsSymbolNode()->getAccessName().c_str(), message); - else - error(loc, " l-value required", op, "\"%s\" (%s)", leftMostTypeNode->getAsSymbolNode()->getName().c_str(), message); - else - error(loc, " l-value required", op, "(%s)", message); - - return true; -} - -// Test for and give an error if the node can't be read from. -void TParseContextBase::rValueErrorCheck(const TSourceLoc& loc, const char* op, TIntermTyped* node) -{ - TIntermBinary* binaryNode = node->getAsBinaryNode(); - const TIntermSymbol* symNode = node->getAsSymbolNode(); - - if (! node) - return; - - if (node->getQualifier().isWriteOnly()) { - const TIntermTyped* leftMostTypeNode = TIntermediate::findLValueBase(node, true); - - if (symNode != nullptr) - error(loc, "can't read from writeonly object: ", op, symNode->getName().c_str()); - else if (binaryNode && - (binaryNode->getAsOperator()->getOp() == EOpIndexDirectStruct || - binaryNode->getAsOperator()->getOp() == EOpIndexDirect)) - if(IsAnonymous(leftMostTypeNode->getAsSymbolNode()->getName())) - error(loc, "can't read from writeonly object: ", op, leftMostTypeNode->getAsSymbolNode()->getAccessName().c_str()); - else - error(loc, "can't read from writeonly object: ", op, leftMostTypeNode->getAsSymbolNode()->getName().c_str()); - else - error(loc, "can't read from writeonly object: ", op, ""); - - } else { - if (binaryNode) { - switch (binaryNode->getOp()) { - case EOpIndexDirect: - case EOpIndexIndirect: - case EOpIndexDirectStruct: - case EOpVectorSwizzle: - case EOpMatrixSwizzle: - rValueErrorCheck(loc, op, binaryNode->getLeft()); - default: - break; - } - } - } -} - -// 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) -{ - 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) -{ - const auto sizeIsSpecializationExpression = [&type]() { - return type.containsSpecializationSize() && - type.getArraySizes()->getOuterNode() != nullptr && - type.getArraySizes()->getOuterNode()->getAsSymbolNode() == nullptr; }; - - if (index < 0) { - error(loc, "", "[", "index out of range '%d'", index); - index = 0; - } else if (type.isArray()) { - if (type.isSizedArray() && !sizeIsSpecializationExpression() && - 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). -void TParseContextBase::makeEditable(TSymbol*& symbol) -{ - // copyUp() does a deep copy of the type. - symbol = symbolTable.copyUp(symbol); - - // Save it (deferred, so it can be edited first) in the AST for linker use. - if (symbol) - trackLinkage(*symbol); -} - -// Return a writable version of the variable 'name'. -// -// Return nullptr if 'name' is not found. This should mean -// something is seriously wrong (e.g., compiler asking self for -// built-in that doesn't exist). -TVariable* TParseContextBase::getEditableVariable(const char* name) -{ - bool builtIn; - TSymbol* symbol = symbolTable.find(name, &builtIn); - - assert(symbol != nullptr); - if (symbol == nullptr) - return nullptr; - - if (builtIn) - makeEditable(symbol); - - return symbol->getAsVariable(); -} - -// Select the best matching function for 'call' from 'candidateList'. -// -// Assumptions -// -// There is no exact match, so a selection algorithm needs to run. That is, the -// language-specific handler should check for exact match first, to -// decide what to do, before calling this selector. -// -// Input -// -// * list of candidate signatures to select from -// * the call -// * a predicate function convertible(from, to) that says whether or not type -// 'from' can implicitly convert to type 'to' (it includes the case of what -// the calling language would consider a matching type with no conversion -// needed) -// * a predicate function better(from1, from2, to1, to2) that says whether or -// not a conversion from <-> to2 is considered better than a conversion -// from <-> to1 (both in and out directions need testing, as declared by the -// formal parameter) -// -// Output -// -// * best matching candidate (or none, if no viable candidates found) -// * whether there was a tie for the best match (ambiguous overload selection, -// caller's choice for how to report) -// -const TFunction* TParseContextBase::selectFunction( - const TVector candidateList, - const TFunction& call, - std::function convertible, - 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 -// as the incumbent. Compare the incumbent to the next viable candidate, and if -// 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 -// candidate, for either in or out (as needed) -// -// 5. Check for ambiguity by comparing the best match against all other viable -// candidates. If any other viable candidate has a function argument with a -// better(...) conversion than the best candidate (for either in or out -// directions), return that there was a tie for best. -// - - tie = false; - - // 1. prune to viable... - TVector viableCandidates; - 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()) - 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) { - if (candidate[param].type->getQualifier().isParamInput()) { - if (! convertible(*call[param].type, *candidate[param].type, candidate.getBuiltInOp(), param)) { - viable = false; - break; - } - } - if (candidate[param].type->getQualifier().isParamOutput()) { - if (! convertible(*candidate[param].type, *call[param].type, candidate.getBuiltInOp(), param)) { - viable = false; - break; - } - } - } - - if (viable) - viableCandidates.push_back(&candidate); - } - - // 2. none viable... - if (viableCandidates.size() == 0) - return nullptr; - - // 3. only one viable... - if (viableCandidates.size() == 1) - return viableCandidates.front(); - - // 4. find best... - 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) { - if (better(*call[param].type, *can1[param].type, *can2[param].type)) { - hasBetterParam = true; - break; - } - } - 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); - if (betterParam(*incumbent, candidate) && ! betterParam(candidate, *incumbent)) - incumbent = &candidate; - } - - // 5. ambiguity... - for (auto it = viableCandidates.begin(); it != viableCandidates.end(); ++it) { - 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)) - 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) -{ - // 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; - } - - // Update with binding and set - globalUniformBlock->getWritableType().getQualifier().layoutBinding = globalUniformBinding; - globalUniformBlock->getWritableType().getQualifier().layoutSet = globalUniformSet; - - // Check for declarations of this default uniform that already exist due to other compilation units. - TSymbol* symbol = symbolTable.find(memberName); - if (symbol) { - if (memberType != symbol->getType()) { - TString err; - err += "\"" + memberType.getCompleteString() + "\""; - err += " versus "; - err += "\"" + symbol->getType().getCompleteString() + "\""; - error(loc, "Types must match:", memberType.getFieldName().c_str(), err.c_str()); - } - return; - } - - // 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 - 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 - symbolTable.amend(*globalUniformBlock, firstNewMember); - } - - ++firstNewMember; -} - -void TParseContextBase::growAtomicCounterBlock(int binding, const TSourceLoc& loc, TType& memberType, const TString& memberName, TTypeList* typeList) { - // Make the atomic counter block, if not yet made. - const auto &at = atomicCounterBuffers.find(binding); - if (at == atomicCounterBuffers.end()) { - atomicCounterBuffers.insert({binding, (TVariable*)nullptr }); - atomicCounterBlockFirstNewMember.insert({binding, 0}); - } - - TVariable*& atomicCounterBuffer = atomicCounterBuffers[binding]; - int& bufferNewMember = atomicCounterBlockFirstNewMember[binding]; - - if (atomicCounterBuffer == nullptr) { - TQualifier blockQualifier; - blockQualifier.clear(); - blockQualifier.storage = EvqBuffer; - - char charBuffer[512]; - if (binding != TQualifier::layoutBindingEnd) { - snprintf(charBuffer, 512, "%s_%d", getAtomicCounterBlockName(), binding); - } else { - snprintf(charBuffer, 512, "%s_0", getAtomicCounterBlockName()); - } - - TType blockType(new TTypeList, *NewPoolTString(charBuffer), blockQualifier); - setUniformBlockDefaults(blockType); - blockType.getQualifier().layoutPacking = ElpStd430; - atomicCounterBuffer = new TVariable(NewPoolTString(""), blockType, true); - // If we arn't auto mapping bindings then set the block to use the same - // binding as what the atomic was set to use - if (!intermediate.getAutoMapBindings()) { - atomicCounterBuffer->getWritableType().getQualifier().layoutBinding = binding; - } - bufferNewMember = 0; - - atomicCounterBuffer->getWritableType().getQualifier().layoutSet = atomicCounterBlockSet; - } - - // 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}; - atomicCounterBuffer->getType().getWritableStruct()->push_back(typeLoc); - - // Insert into the symbol table. - if (bufferNewMember == 0) { - // This is the first request; we need a normal symbol table insert - if (symbolTable.insert(*atomicCounterBuffer)) - trackLinkage(*atomicCounterBuffer); - else - error(loc, "failed to insert the global constant buffer", "buffer", ""); - } else { - // This is a follow-on request; we need to amend the first insert - symbolTable.amend(*atomicCounterBuffer, bufferNewMember); - } - - ++bufferNewMember; -} - -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); -} - -} // end namespace glslang diff --git a/deps/glslang/glslang/MachineIndependent/ParseHelper.cpp b/deps/glslang/glslang/MachineIndependent/ParseHelper.cpp deleted file mode 100644 index 496a9a13..00000000 --- a/deps/glslang/glslang/MachineIndependent/ParseHelper.cpp +++ /dev/null @@ -1,9355 +0,0 @@ -// -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2012-2015 LunarG, Inc. -// Copyright (C) 2015-2018 Google, Inc. -// Copyright (C) 2017, 2019 ARM Limited. -// Modifications Copyright (C) 2020 Advanced Micro Devices, 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: -// -// 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 "ParseHelper.h" -#include "Scan.h" - -#include "../OSDependent/osinclude.h" -#include - -#include "preprocessor/PpContext.h" - -extern int yyparse(glslang::TParseContext*); - -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), - limits(resources.limits) -#ifndef GLSLANG_WEB - , - atomicUintOffsets(nullptr), anyIndexLimits(false) -#endif -{ - // decide whether precision qualifiers should be ignored or respected - if (isEsProfile() || spvVersion.vulkan > 0) { - precisionManager.respectPrecisionQualifiers(); - if (! parsingBuiltins && language == EShLangFragment && !isEsProfile() && spvVersion.vulkan > 0) - precisionManager.warnAboutDefaults(); - } - - setPrecisionDefaults(); - - globalUniformDefaults.clear(); - globalUniformDefaults.layoutMatrix = ElmColumnMajor; - globalUniformDefaults.layoutPacking = spvVersion.spv != 0 ? ElpStd140 : ElpShared; - - globalBufferDefaults.clear(); - globalBufferDefaults.layoutMatrix = ElmColumnMajor; - globalBufferDefaults.layoutPacking = spvVersion.spv != 0 ? ElpStd430 : ElpShared; - - // use storage buffer on SPIR-V 1.3 and up - if (spvVersion.spv >= EShTargetSpv_1_3) - intermediate.setUseStorageBuffer(); - - globalInputDefaults.clear(); - globalOutputDefaults.clear(); - - globalSharedDefaults.clear(); - globalSharedDefaults.layoutMatrix = ElmColumnMajor; - globalSharedDefaults.layoutPacking = ElpStd430; - -#ifndef GLSLANG_WEB - // "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; -#endif - - if (entryPoint != nullptr && entryPoint->size() > 0 && *entryPoint != "main") - infoSink.info.message(EPrefixError, "Source entry point must be \"main\""); -} - -TParseContext::~TParseContext() -{ -#ifndef GLSLANG_WEB - delete [] atomicUintOffsets; -#endif -} - -// Set up all default precisions as needed by the current environment. -// Intended just as a TParseContext constructor helper. -void TParseContext::setPrecisionDefaults() -{ - // Set all precision defaults to EpqNone, which is correct for all types - // when not obeying precision qualifiers, and correct for types that don't - // have defaults (thus getting an error on use) when obeying precision - // qualifiers. - - for (int type = 0; type < EbtNumTypes; ++type) - defaultPrecision[type] = EpqNone; - - for (int type = 0; type < maxSamplerIndex; ++type) - defaultSamplerPrecision[type] = EpqNone; - - // replace with real precision defaults for those that have them - if (obeyPrecisionQualifiers()) { - if (isEsProfile()) { - // Most don't have defaults, a few default to lowp. - TSampler sampler; - sampler.set(EbtFloat, Esd2D); - defaultSamplerPrecision[computeSamplerTypeIndex(sampler)] = EpqLow; - sampler.set(EbtFloat, EsdCube); - defaultSamplerPrecision[computeSamplerTypeIndex(sampler)] = EpqLow; - sampler.set(EbtFloat, Esd2D); - sampler.setExternal(true); - defaultSamplerPrecision[computeSamplerTypeIndex(sampler)] = EpqLow; - } - - // If we are parsing built-in computational variables/functions, it is meaningful to record - // whether the built-in has no precision qualifier, as that ambiguity - // is used to resolve the precision from the supplied arguments/operands instead. - // So, we don't actually want to replace EpqNone with a default precision for built-ins. - if (! parsingBuiltins) { - if (isEsProfile() && language == EShLangFragment) { - defaultPrecision[EbtInt] = EpqMedium; - defaultPrecision[EbtUint] = EpqMedium; - } else { - defaultPrecision[EbtInt] = EpqHigh; - defaultPrecision[EbtUint] = EpqHigh; - defaultPrecision[EbtFloat] = EpqHigh; - } - - if (!isEsProfile()) { - // Non-ES profile - // All sampler precisions default to highp. - for (int type = 0; type < maxSamplerIndex; ++type) - defaultSamplerPrecision[type] = EpqHigh; - } - } - - defaultPrecision[EbtSampler] = EpqLow; - defaultPrecision[EbtAtomicUint] = EpqHigh; - } -} - -void TParseContext::setLimits(const TBuiltInResource& r) -{ - resources = r; - intermediate.setLimits(r); - -#ifndef GLSLANG_WEB - anyIndexLimits = ! limits.generalAttributeMatrixVectorIndexing || - ! limits.generalConstantMatrixVectorIndexing || - ! limits.generalSamplerIndexing || - ! limits.generalUniformIndexing || - ! limits.generalVariableIndexing || - ! limits.generalVaryingIndexing; - - - // "Each binding point tracks its own current default offset for - // inheritance of subsequent variables using the same binding. The initial state of compilation is that all - // binding points have an offset of 0." - atomicUintOffsets = new int[resources.maxAtomicCounterBindings]; - for (int b = 0; b < resources.maxAtomicCounterBindings; ++b) - atomicUintOffsets[b] = 0; -#endif -} - -// -// Parse an array of strings using yyparse, going through the -// preprocessor to tokenize the shader strings, then through -// the GLSL scanner. -// -// Returns true for successful acceptance of the shader, false if any errors. -// -bool TParseContext::parseShaderStrings(TPpContext& ppContext, TInputScanner& input, bool versionWillBeError) -{ - currentScanner = &input; - ppContext.setInput(input, versionWillBeError); - yyparse(this); - - finish(); - - return numErrors == 0; -} - -// This is called from bison when it has a parse (syntax) error -// Note though that to stop cascading errors, we set EOF, which -// will usually cause a syntax error, so be more accurate that -// compilation is terminating. -void TParseContext::parserError(const char* s) -{ - if (! getScanner()->atEndOfInput() || numErrors == 0) - error(getCurrentLoc(), "", "", s, ""); - else - error(getCurrentLoc(), "compilation terminated", "", ""); -} - -void TParseContext::growGlobalUniformBlock(const TSourceLoc& loc, TType& memberType, const TString& memberName, TTypeList* typeList) -{ - bool createBlock = globalUniformBlock == nullptr; - - if (createBlock) { - globalUniformBinding = intermediate.getGlobalUniformBinding(); - globalUniformSet = intermediate.getGlobalUniformSet(); - } - - // use base class function to create/expand block - TParseContextBase::growGlobalUniformBlock(loc, memberType, memberName, typeList); - - if (spvVersion.vulkan > 0 && spvVersion.vulkanRelaxed) { - // check for a block storage override - TBlockStorageClass storageOverride = intermediate.getBlockStorageOverride(getGlobalUniformBlockName()); - TQualifier& qualifier = globalUniformBlock->getWritableType().getQualifier(); - qualifier.defaultBlock = true; - - if (storageOverride != EbsNone) { - if (createBlock) { - // Remap block storage - qualifier.setBlockStorage(storageOverride); - - // check that the change didn't create errors - blockQualifierCheck(loc, qualifier, false); - } - - // remap meber storage as well - memberType.getQualifier().setBlockStorage(storageOverride); - } - } -} - -void TParseContext::growAtomicCounterBlock(int binding, const TSourceLoc& loc, TType& memberType, const TString& memberName, TTypeList* typeList) -{ - bool createBlock = atomicCounterBuffers.find(binding) == atomicCounterBuffers.end(); - - if (createBlock) { - atomicCounterBlockSet = intermediate.getAtomicCounterBlockSet(); - } - - // use base class function to create/expand block - TParseContextBase::growAtomicCounterBlock(binding, loc, memberType, memberName, typeList); - TQualifier& qualifier = atomicCounterBuffers[binding]->getWritableType().getQualifier(); - qualifier.defaultBlock = true; - - if (spvVersion.vulkan > 0 && spvVersion.vulkanRelaxed) { - // check for a Block storage override - TBlockStorageClass storageOverride = intermediate.getBlockStorageOverride(getAtomicCounterBlockName()); - - if (storageOverride != EbsNone) { - if (createBlock) { - // Remap block storage - - qualifier.setBlockStorage(storageOverride); - - // check that the change didn't create errors - blockQualifierCheck(loc, qualifier, false); - } - - // remap meber storage as well - memberType.getQualifier().setBlockStorage(storageOverride); - } - } -} - -const char* TParseContext::getGlobalUniformBlockName() const -{ - const char* name = intermediate.getGlobalUniformBlockName(); - if (std::string(name) == "") - return "gl_DefaultUniformBlock"; - else - return name; -} -void TParseContext::finalizeGlobalUniformBlockLayout(TVariable&) -{ -} -void TParseContext::setUniformBlockDefaults(TType& block) const -{ - block.getQualifier().layoutPacking = ElpStd140; - block.getQualifier().layoutMatrix = ElmColumnMajor; -} - - -const char* TParseContext::getAtomicCounterBlockName() const -{ - const char* name = intermediate.getAtomicCounterBlockName(); - if (std::string(name) == "") - return "gl_AtomicCounterBlock"; - else - return name; -} -void TParseContext::finalizeAtomicCounterBlockLayout(TVariable&) -{ -} - -void TParseContext::setAtomicCounterBlockDefaults(TType& block) const -{ - block.getQualifier().layoutPacking = ElpStd430; - block.getQualifier().layoutMatrix = ElmRowMajor; -} - -void TParseContext::setInvariant(const TSourceLoc& loc, const char* builtin) { - TSymbol* symbol = symbolTable.find(builtin); - if (symbol && symbol->getType().getQualifier().isPipeOutput()) { - if (intermediate.inIoAccessed(builtin)) - warn(loc, "changing qualification after use", "invariant", builtin); - TSymbol* csymbol = symbolTable.copyUp(symbol); - csymbol->getWritableType().getQualifier().invariant = true; - } -} - -void TParseContext::handlePragma(const TSourceLoc& loc, const TVector& tokens) -{ -#ifndef GLSLANG_WEB - if (pragmaCallback) - pragmaCallback(loc.line, tokens); - - if (tokens.size() == 0) - return; - - if (tokens[0].compare("optimize") == 0) { - if (tokens.size() != 4) { - error(loc, "optimize pragma syntax is incorrect", "#pragma", ""); - return; - } - - if (tokens[1].compare("(") != 0) { - error(loc, "\"(\" expected after 'optimize' keyword", "#pragma", ""); - return; - } - - if (tokens[2].compare("on") == 0) - contextPragma.optimize = true; - else if (tokens[2].compare("off") == 0) - contextPragma.optimize = false; - else { - if(relaxedErrors()) - // If an implementation does not recognize the tokens following #pragma, then it will ignore that pragma. - warn(loc, "\"on\" or \"off\" expected after '(' for 'optimize' pragma", "#pragma", ""); - return; - } - - if (tokens[3].compare(")") != 0) { - error(loc, "\")\" expected to end 'optimize' pragma", "#pragma", ""); - return; - } - } else if (tokens[0].compare("debug") == 0) { - if (tokens.size() != 4) { - error(loc, "debug pragma syntax is incorrect", "#pragma", ""); - return; - } - - if (tokens[1].compare("(") != 0) { - error(loc, "\"(\" expected after 'debug' keyword", "#pragma", ""); - return; - } - - if (tokens[2].compare("on") == 0) - contextPragma.debug = true; - else if (tokens[2].compare("off") == 0) - contextPragma.debug = false; - else { - if(relaxedErrors()) - // If an implementation does not recognize the tokens following #pragma, then it will ignore that pragma. - warn(loc, "\"on\" or \"off\" expected after '(' for 'debug' pragma", "#pragma", ""); - return; - } - - if (tokens[3].compare(")") != 0) { - 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 (spvVersion.spv > 0 && tokens[0].compare("use_vulkan_memory_model") == 0) { - if (tokens.size() != 1) - error(loc, "extra tokens", "#pragma", ""); - intermediate.setUseVulkanMemoryModel(); - } else if (spvVersion.spv > 0 && tokens[0].compare("use_variable_pointers") == 0) { - if (tokens.size() != 1) - error(loc, "extra tokens", "#pragma", ""); - if (spvVersion.spv < glslang::EShTargetSpv_1_3) - error(loc, "requires SPIR-V 1.3", "#pragma use_variable_pointers", ""); - intermediate.setUseVariablePointers(); - } 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(); - } else if (spvVersion.spv > 0 && tokens[0].compare("STDGL") == 0 && - tokens[1].compare("invariant") == 0 && tokens[3].compare("all") == 0) { - intermediate.setInvariantAll(); - // Set all builtin out variables invariant if declared - setInvariant(loc, "gl_Position"); - setInvariant(loc, "gl_PointSize"); - setInvariant(loc, "gl_ClipDistance"); - setInvariant(loc, "gl_CullDistance"); - setInvariant(loc, "gl_TessLevelOuter"); - setInvariant(loc, "gl_TessLevelInner"); - setInvariant(loc, "gl_PrimitiveID"); - setInvariant(loc, "gl_Layer"); - setInvariant(loc, "gl_ViewportIndex"); - setInvariant(loc, "gl_FragDepth"); - setInvariant(loc, "gl_SampleMask"); - setInvariant(loc, "gl_ClipVertex"); - setInvariant(loc, "gl_FrontColor"); - setInvariant(loc, "gl_BackColor"); - setInvariant(loc, "gl_FrontSecondaryColor"); - setInvariant(loc, "gl_BackSecondaryColor"); - setInvariant(loc, "gl_TexCoord"); - setInvariant(loc, "gl_FogFragCoord"); - setInvariant(loc, "gl_FragColor"); - setInvariant(loc, "gl_FragData"); - } -#endif -} - -// -// Handle seeing a variable identifier in the grammar. -// -TIntermTyped* TParseContext::handleVariable(const TSourceLoc& loc, TSymbol* symbol, const TString* string) -{ - TIntermTyped* node = nullptr; - - // Error check for requiring specific extensions present. - if (symbol && symbol->getNumExtensions()) - requireExtensions(loc, symbol->getNumExtensions(), symbol->getExtensions(), symbol->getName().c_str()); - -#ifndef GLSLANG_WEB - if (symbol && symbol->isReadOnly()) { - // 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 - // 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. - // - // This check is being done before the block-name check further down, so guard - // for that too. - if (!symbol->getType().isUnusableName()) { - if (symbol->getType().containsUnsizedArray() || - (symbol->getAsAnonMember() && - symbol->getAsAnonMember()->getAnonContainer().getType().containsUnsizedArray())) - makeEditable(symbol); - } - } -#endif - - const TVariable* variable; - const TAnonMember* anon = symbol ? symbol->getAsAnonMember() : 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().isUnusableName()) { - 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); - - if (variable->getType().isReference() && - variable->getType().getQualifier().bufferReferenceNeedsVulkanMemoryModel()) { - intermediate.setUseVulkanMemoryModel(); - } - - return node; -} - -// -// Handle seeing a base[index] dereference in the grammar. -// -TIntermTyped* TParseContext::handleBracketDereference(const TSourceLoc& loc, TIntermTyped* base, TIntermTyped* index) -{ - int indexValue = 0; - if (index->getQualifier().isFrontEndConstant()) - indexValue = index->getAsConstantUnion()->getConstArray()[0].getIConst(); - - // basic type checks... - variableCheck(base); - - if (! base->isArray() && ! base->isMatrix() && ! base->isVector() && ! base->getType().isCoopMat() && - ! base->isReference()) { - 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", ""); - - // Insert dummy error-recovery result - return intermediate.addConstantUnion(0.0, EbtFloat, loc); - } - - if (!base->isArray() && base->isVector()) { - if (base->getType().contains16BitFloat()) - requireFloat16Arithmetic(loc, "[", "does not operate on types containing float16"); - if (base->getType().contains16BitInt()) - requireInt16Arithmetic(loc, "[", "does not operate on types containing (u)int16"); - if (base->getType().contains8BitInt()) - requireInt8Arithmetic(loc, "[", "does not operate on types containing (u)int8"); - } - - // check for constant folding - 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); - } - - // at least one of base and index is not a front-end constant variable... - TIntermTyped* result = nullptr; - -#ifndef GLSLANG_WEB - if (base->isReference() && ! base->isArray()) { - requireExtensions(loc, 1, &E_GL_EXT_buffer_reference2, "buffer reference indexing"); - if (base->getType().getReferentType()->containsUnsizedArray()) { - error(loc, "cannot index reference to buffer containing an unsized array", "", ""); - result = nullptr; - } else { - result = intermediate.addBinaryMath(EOpAdd, base, index, loc); - if (result != nullptr) - result->setType(base->getType()); - } - if (result == nullptr) { - error(loc, "cannot index buffer reference", "", ""); - result = intermediate.addConstantUnion(0.0, EbtFloat, loc); - } - return result; - } - if (base->getAsSymbolNode() && isIoResizeArray(base->getType())) - handleIoResizeArrayAccess(loc, base); -#endif - - if (index->getQualifier().isFrontEndConstant()) - checkIndex(loc, base->getType(), indexValue); - - if (index->getQualifier().isFrontEndConstant()) { -#ifndef GLSLANG_WEB - if (base->getType().isUnsizedArray()) { - base->getWritableType().updateImplicitArraySize(indexValue + 1); - // For 2D per-view builtin arrays, update the inner dimension size in parent type - if (base->getQualifier().isPerView() && base->getQualifier().builtIn != EbvNone) { - TIntermBinary* binaryNode = base->getAsBinaryNode(); - if (binaryNode) { - TType& leftType = binaryNode->getLeft()->getWritableType(); - TArraySizes& arraySizes = *leftType.getArraySizes(); - assert(arraySizes.getNumDims() == 2); - arraySizes.setDimSize(1, std::max(arraySizes.getDimSize(1), indexValue + 1)); - } - } - } else -#endif - checkIndex(loc, base->getType(), indexValue); - result = intermediate.addIndex(EOpIndexDirect, base, index, loc); - } else { -#ifndef GLSLANG_WEB - 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 { - // it is okay for a run-time sized array - checkRuntimeSizable(loc, *base); - } - base->getWritableType().setArrayVariablyIndexed(); - } -#endif - 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"); - else { - // input/output blocks either don't exist or can't be variably indexed - } - } else if (language == EShLangFragment && base->getQualifier().isPipeOutput()) - requireProfile(base->getLoc(), ~EEsProfile, "variable indexing fragment shader output array"); - else if (base->getBasicType() == EbtSampler && version >= 130) { - const char* explanation = "variable indexing sampler array"; - requireProfile(base->getLoc(), EEsProfile | ECoreProfile | ECompatibilityProfile, explanation); - profileRequires(base->getLoc(), EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, explanation); - profileRequires(base->getLoc(), ECoreProfile | ECompatibilityProfile, 400, nullptr, explanation); - } - - result = intermediate.addIndex(EOpIndexIndirect, base, index, loc); - } - - // Insert valid dereferenced result type - TType newType(base->getType(), 0); - if (base->getType().getQualifier().isConstant() && index->getQualifier().isConstant()) { - newType.getQualifier().storage = EvqConst; - // If base or index is a specialization constant, the result should also be a specialization constant. - if (base->getType().getQualifier().isSpecConstant() || index->getQualifier().isSpecConstant()) { - newType.getQualifier().makeSpecConstant(); - } - } else { - newType.getQualifier().storage = EvqTemporary; - newType.getQualifier().specConstant = false; - } - result->setType(newType); - -#ifndef GLSLANG_WEB - inheritMemoryQualifiers(base->getQualifier(), result->getWritableType().getQualifier()); - - // Propagate nonuniform - if (base->getQualifier().isNonUniform() || index->getQualifier().isNonUniform()) - result->getWritableType().getQualifier().nonUniform = true; - - if (anyIndexLimits) - handleIndexLimits(loc, base, index); -#endif - - return result; -} - -#ifndef GLSLANG_WEB - -// 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) -{ - if ((! limits.generalSamplerIndexing && base->getBasicType() == EbtSampler) || - (! limits.generalUniformIndexing && base->getQualifier().isUniformOrBuffer() && language != EShLangVertex) || - (! limits.generalAttributeMatrixVectorIndexing && base->getQualifier().isPipeInput() && language == EShLangVertex && (base->getType().isMatrix() || base->getType().isVector())) || - (! limits.generalConstantMatrixVectorIndexing && base->getAsConstantUnion()) || - (! limits.generalVariableIndexing && ! base->getType().getQualifier().isUniformOrBuffer() && - ! base->getType().getQualifier().isPipeInput() && - ! base->getType().getQualifier().isPipeOutput() && - ! base->getType().getQualifier().isConstant()) || - (! limits.generalVaryingIndexing && (base->getType().getQualifier().isPipeInput() || - base->getType().getQualifier().isPipeOutput()))) { - // it's too early to know what the inductive variables are, save it for post processing - needsIndexLimitationChecking.push_back(index); - } -} - -// 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) -{ - TParseContextBase::makeEditable(symbol); - - // See if it's tied to IO resizing - if (isIoResizeArray(symbol->getType())) - ioArraySymbolResizeList.push_back(symbol); -} - -// Return true if this is a geometry shader input array or tessellation control output array -// or mesh shader output array. -bool TParseContext::isIoResizeArray(const TType& type) const -{ - return type.isArray() && - ((language == EShLangGeometry && type.getQualifier().storage == EvqVaryingIn) || - (language == EShLangTessControl && type.getQualifier().storage == EvqVaryingOut && - ! type.getQualifier().patch) || - (language == EShLangFragment && type.getQualifier().storage == EvqVaryingIn && - type.getQualifier().pervertexNV) || - (language == EShLangMeshNV && type.getQualifier().storage == EvqVaryingOut && - !type.getQualifier().perTaskNV)); -} - -// If an array is not isIoResizeArray() but is an io array, make sure it has the right size -void TParseContext::fixIoArraySize(const TSourceLoc& loc, TType& type) -{ - if (! type.isArray() || type.getQualifier().patch || symbolTable.atBuiltInLevel()) - return; - - assert(! isIoResizeArray(type)); - - if (type.getQualifier().storage != EvqVaryingIn || type.getQualifier().patch) - return; - - if (language == EShLangTessControl || language == EShLangTessEvaluation) { - if (type.getOuterArraySize() != resources.maxPatchVertices) { - if (type.isSizedArray()) - error(loc, "tessellation input array size must be gl_MaxPatchVertices or implicitly sized", "[]", ""); - type.changeOuterArraySize(resources.maxPatchVertices); - } - } -} - -// 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 -void TParseContext::ioArrayCheck(const TSourceLoc& loc, const TType& type, const TString& identifier) -{ - if (! type.isArray() && ! symbolTable.atBuiltInLevel()) { - if (type.getQualifier().isArrayedIo(language) && !type.getQualifier().layoutPassthrough) - error(loc, "type must be an array:", type.getStorageQualifierString(), identifier.c_str()); - } -} - -// Handle a dereference of a geometry shader input array or tessellation control output array. -// See ioArraySymbolResizeList comment in ParseHelper.h. -// -void TParseContext::handleIoResizeArrayAccess(const TSourceLoc& /*loc*/, TIntermTyped* base) -{ - TIntermSymbol* symbolNode = base->getAsSymbolNode(); - assert(symbolNode); - if (! symbolNode) - return; - - // fix array size, if it can be fixed and needs to be fixed (will allow variable indexing) - if (symbolNode->getType().isUnsizedArray()) { - int newSize = getIoArrayImplicitSize(symbolNode->getType().getQualifier()); - if (newSize > 0) - symbolNode->getWritableType().changeOuterArraySize(newSize); - } -} - -// If there has been an input primitive declaration (geometry shader) or an output -// number of vertices declaration(tessellation shader), make sure all input array types -// match it in size. Types come either from nodes in the AST or symbols in the -// symbol table. -// -// Types without an array size will be given one. -// Types already having a size that is wrong will get an error. -// -void TParseContext::checkIoArraysConsistency(const TSourceLoc &loc, bool tailOnly) -{ - int requiredSize = 0; - TString featureString; - size_t listSize = ioArraySymbolResizeList.size(); - size_t i = 0; - - // If tailOnly = true, only check the last array symbol in the list. - if (tailOnly) { - i = listSize - 1; - } - for (bool firstIteration = true; i < listSize; ++i) { - TType &type = ioArraySymbolResizeList[i]->getWritableType(); - - // As I/O array sizes don't change, fetch requiredSize only once, - // except for mesh shaders which could have different I/O array sizes based on type qualifiers. - if (firstIteration || (language == EShLangMeshNV)) { - requiredSize = getIoArrayImplicitSize(type.getQualifier(), &featureString); - if (requiredSize == 0) - break; - firstIteration = false; - } - - checkIoArrayConsistency(loc, requiredSize, featureString.c_str(), type, - ioArraySymbolResizeList[i]->getName()); - } -} - -int TParseContext::getIoArrayImplicitSize(const TQualifier &qualifier, TString *featureString) const -{ - int expectedSize = 0; - TString str = "unknown"; - unsigned int maxVertices = intermediate.getVertices() != TQualifier::layoutNotSet ? intermediate.getVertices() : 0; - - if (language == EShLangGeometry) { - expectedSize = TQualifier::mapGeometryToSize(intermediate.getInputPrimitive()); - str = TQualifier::getGeometryString(intermediate.getInputPrimitive()); - } - else if (language == EShLangTessControl) { - expectedSize = maxVertices; - str = "vertices"; - } else if (language == EShLangFragment) { - // Number of vertices for Fragment shader is always three. - expectedSize = 3; - str = "vertices"; - } else if (language == EShLangMeshNV) { - unsigned int maxPrimitives = - intermediate.getPrimitives() != TQualifier::layoutNotSet ? intermediate.getPrimitives() : 0; - if (qualifier.builtIn == EbvPrimitiveIndicesNV) { - expectedSize = maxPrimitives * TQualifier::mapGeometryToSize(intermediate.getOutputPrimitive()); - str = "max_primitives*"; - str += TQualifier::getGeometryString(intermediate.getOutputPrimitive()); - } - else if (qualifier.isPerPrimitive()) { - expectedSize = maxPrimitives; - str = "max_primitives"; - } - else { - expectedSize = maxVertices; - str = "max_vertices"; - } - } - if (featureString) - *featureString = str; - return expectedSize; -} - -void TParseContext::checkIoArrayConsistency(const TSourceLoc& loc, int requiredSize, const char* feature, TType& type, const TString& name) -{ - if (type.isUnsizedArray()) - type.changeOuterArraySize(requiredSize); - else if (type.getOuterArraySize() != requiredSize) { - if (language == EShLangGeometry) - error(loc, "inconsistent input primitive for array size of", feature, name.c_str()); - else if (language == EShLangTessControl) - error(loc, "inconsistent output number of vertices for array size of", feature, name.c_str()); - else if (language == EShLangFragment) { - if (type.getOuterArraySize() > requiredSize) - error(loc, " cannot be greater than 3 for pervertexNV", feature, name.c_str()); - } - else if (language == EShLangMeshNV) - error(loc, "inconsistent output array size of", feature, name.c_str()); - else - assert(0); - } -} - -#endif // GLSLANG_WEB - -// Handle seeing a binary node with a math operation. -// Returns nullptr if not semantically allowed. -TIntermTyped* TParseContext::handleBinaryMath(const TSourceLoc& loc, const char* str, TOperator op, TIntermTyped* left, TIntermTyped* right) -{ - rValueErrorCheck(loc, str, left->getAsTyped()); - rValueErrorCheck(loc, str, right->getAsTyped()); - - bool allowed = true; - switch (op) { - // TODO: Bring more source language-specific checks up from intermediate.cpp - // to the specific parse helpers for that source language. - case EOpLessThan: - case EOpGreaterThan: - case EOpLessThanEqual: - case EOpGreaterThanEqual: - if (! left->isScalar() || ! right->isScalar()) - allowed = false; - break; - default: - break; - } - - if (((left->getType().contains16BitFloat() || right->getType().contains16BitFloat()) && !float16Arithmetic()) || - ((left->getType().contains16BitInt() || right->getType().contains16BitInt()) && !int16Arithmetic()) || - ((left->getType().contains8BitInt() || right->getType().contains8BitInt()) && !int8Arithmetic())) { - allowed = false; - } - - TIntermTyped* result = nullptr; - if (allowed) { - if ((left->isReference() || right->isReference())) - requireExtensions(loc, 1, &E_GL_EXT_buffer_reference2, "buffer reference math"); - result = intermediate.addBinaryMath(op, left, right, loc); - } - - if (result == nullptr) { - bool enhanced = intermediate.getEnhancedMsgs(); - binaryOpError(loc, str, left->getCompleteString(enhanced), right->getCompleteString(enhanced)); - } - - return result; -} - -// Handle seeing a unary node with a math operation. -TIntermTyped* TParseContext::handleUnaryMath(const TSourceLoc& loc, const char* str, TOperator op, TIntermTyped* childNode) -{ - rValueErrorCheck(loc, str, childNode); - - bool allowed = true; - if ((childNode->getType().contains16BitFloat() && !float16Arithmetic()) || - (childNode->getType().contains16BitInt() && !int16Arithmetic()) || - (childNode->getType().contains8BitInt() && !int8Arithmetic())) { - allowed = false; - } - - TIntermTyped* result = nullptr; - if (allowed) - result = intermediate.addUnaryMath(op, childNode, loc); - - if (result) - return result; - else { - bool enhanced = intermediate.getEnhancedMsgs(); - unaryOpError(loc, str, childNode->getCompleteString(enhanced)); - } - - return childNode; -} - -// -// Handle seeing a base.field dereference in the grammar. -// -TIntermTyped* TParseContext::handleDotDereference(const TSourceLoc& loc, TIntermTyped* base, const TString& field) -{ - variableCheck(base); - - // - // .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 - // handleLengthMethod(). - // - if (field == "length") { - if (base->isArray()) { - profileRequires(loc, ENoProfile, 120, E_GL_3DL_array_objects, ".length"); - profileRequires(loc, EEsProfile, 300, nullptr, ".length"); - } else if (base->isVector() || base->isMatrix()) { - const char* feature = ".length() on vectors and matrices"; - requireProfile(loc, ~EEsProfile, feature); - profileRequires(loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, feature); - } else if (!base->getType().isCoopMat()) { - bool enhanced = intermediate.getEnhancedMsgs(); - error(loc, "does not operate on this type:", field.c_str(), base->getType().getCompleteString(enhanced).c_str()); - return base; - } - - return intermediate.addMethod(base, TType(EbtInt), &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; - } - - if (base->getType().isCoopMat()) { - error(loc, "cannot apply to a cooperative matrix type:", ".", 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()) && - (base->isFloatingDomain() || base->isIntegerDomain() || base->getBasicType() == EbtBool)) { - result = handleDotSwizzle(loc, base, field); - } else if (base->isStruct() || base->isReference()) { - const TTypeList* fields = base->isReference() ? - base->getType().getReferentType()->getStruct() : - 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->getType().getQualifier().isFrontEndConstant()) - result = intermediate.foldDereference(base, member, loc); - else { - blockMemberExtensionCheck(loc, base, member, field); - TIntermTyped* index = intermediate.addConstantUnion(member, loc); - result = intermediate.addIndex(EOpIndexDirectStruct, base, index, loc); - result->setType(*(*fields)[member].type); - if ((*fields)[member].type->getQualifier().isIo()) - intermediate.addIoAccessed(field); - } - inheritMemoryQualifiers(base->getQualifier(), result->getWritableType().getQualifier()); - } else { - auto baseSymbol = base; - while (baseSymbol->getAsSymbolNode() == nullptr) - baseSymbol = baseSymbol->getAsBinaryNode()->getLeft(); - TString structName; - structName.append("\'").append(baseSymbol->getAsSymbolNode()->getName().c_str()).append( "\'"); - error(loc, "no such field in structure", field.c_str(), structName.c_str()); - } - } else - error(loc, "does not apply to this type:", field.c_str(), base->getType().getCompleteString(intermediate.getEnhancedMsgs()).c_str()); - - // Propagate noContraction up the dereference chain - if (base->getQualifier().isNoContraction()) - result->getWritableType().getQualifier().setNoContraction(); - - // Propagate nonuniform - if (base->getQualifier().isNonUniform()) - result->getWritableType().getQualifier().nonUniform = true; - - return result; -} - -// -// Handle seeing a base.swizzle, a subset of base.identifier in the grammar. -// -TIntermTyped* TParseContext::handleDotSwizzle(const TSourceLoc& loc, TIntermTyped* base, const TString& field) -{ - TIntermTyped* result = base; - 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); - - if (base->isVector() && selectors.size() != 1 && base->getType().contains16BitFloat()) - requireFloat16Arithmetic(loc, ".", "can't swizzle types containing float16"); - if (base->isVector() && selectors.size() != 1 && base->getType().contains16BitInt()) - requireInt16Arithmetic(loc, ".", "can't swizzle types containing (u)int16"); - if (base->isVector() && selectors.size() != 1 && base->getType().contains8BitInt()) - requireInt8Arithmetic(loc, ".", "can't swizzle types containing (u)int8"); - - if (base->isScalar()) { - if (selectors.size() == 1) - return result; - else { - TType type(base->getBasicType(), EvqTemporary, selectors.size()); - // Swizzle operations propagate specialization-constantness - if (base->getQualifier().isSpecConstant()) - type.getQualifier().makeSpecConstant(); - return addConstructor(loc, base, type); - } - } - - 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, base->getType().getQualifier().precision)); - } 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())); - } - // Swizzle operations propagate specialization-constantness - if (base->getType().getQualifier().isSpecConstant()) - result->getWritableType().getQualifier().makeSpecConstant(); - } - - return result; -} - -void TParseContext::blockMemberExtensionCheck(const TSourceLoc& loc, const TIntermTyped* base, int member, const TString& memberName) -{ - // a block that needs extension checking is either 'base', or if arrayed, - // one level removed to the left - const TIntermSymbol* baseSymbol = nullptr; - if (base->getAsBinaryNode() == nullptr) - baseSymbol = base->getAsSymbolNode(); - else - baseSymbol = base->getAsBinaryNode()->getLeft()->getAsSymbolNode(); - if (baseSymbol == nullptr) - return; - const TSymbol* symbol = symbolTable.find(baseSymbol->getName()); - if (symbol == nullptr) - return; - const TVariable* variable = symbol->getAsVariable(); - if (variable == nullptr) - return; - if (!variable->hasMemberExtensions()) - return; - - // We now have a variable that is the base of a dot reference - // with members that need extension checking. - if (variable->getNumMemberExtensions(member) > 0) - requireExtensions(loc, variable->getNumMemberExtensions(member), variable->getMemberExtensions(member), memberName.c_str()); -} - -// -// Handle seeing a function declarator in the grammar. This is the precursor -// to recognizing a function prototype or function definition. -// -TFunction* TParseContext::handleFunctionDeclarator(const TSourceLoc& loc, TFunction& function, bool prototype) -{ - // ES can't declare prototypes inside functions - if (! symbolTable.atGlobalLevel()) - requireProfile(loc, ~EEsProfile, "local function declaration"); - - // - // 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). - // - // Redeclarations (full signature match) are allowed. But, return types and parameter qualifiers must also match. - // - except ES 100, which only allows a single prototype - // - // ES 100 does not allow redefining, but does allow overloading of built-in functions. - // ES 300 does not allow redefining or overloading of built-in functions. - // - bool builtIn; - TSymbol* symbol = symbolTable.find(function.getMangledName(), &builtIn); - if (symbol && symbol->getAsFunction() && builtIn) - requireProfile(loc, ~EEsProfile, "redefinition of built-in function"); -#ifndef GLSLANG_WEB - // Check the validity of using spirv_literal qualifier - for (int i = 0; i < function.getParamCount(); ++i) { - if (function[i].type->getQualifier().isSpirvLiteral() && function.getBuiltInOp() != EOpSpirvInst) - error(loc, "'spirv_literal' can only be used on functions defined with 'spirv_instruction' for argument", - function.getName().c_str(), "%d", i + 1); - } - - // For function declaration with SPIR-V instruction qualifier, always ignore the built-in function and - // respect this redeclared one. - if (symbol && builtIn && function.getBuiltInOp() == EOpSpirvInst) - symbol = nullptr; -#endif - const TFunction* prevDec = symbol ? symbol->getAsFunction() : 0; - if (prevDec) { - 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(), ""); -#ifndef GLSLANG_WEB - if (prevDec->getSpirvInstruction() != function.getSpirvInstruction()) { - error(loc, "overloaded functions must have the same qualifiers", function.getName().c_str(), - "spirv_instruction"); - } -#endif - 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); - - if ((*prevDec)[i].type->getQualifier().precision != function[i].type->getQualifier().precision) - error(loc, "overloaded functions must have the same parameter precision qualifiers for argument", function[i].type->getPrecisionQualifierString(), "%d", i+1); - } - } - - arrayObjectCheck(loc, function.getType(), "array in function return type"); - - 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* TParseContext::handleFunctionDefinition(const TSourceLoc& loc, TFunction& function) -{ - 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; - - // Check for entry point - if (function.getName().compare(intermediate.getEntryPointName().c_str()) == 0) { - intermediate.setEntryPointMangledName(function.getMangledName().c_str()); - intermediate.incrementEntryPointCount(); - inMain = true; - } else - inMain = false; - - // - // Raise error message if main function takes any parameters or returns anything other than void - // - if (inMain) { - if (function.getParamCount() > 0) - error(loc, "function cannot take any parameter(s)", function.getName().c_str(), ""); - if (function.getType().getBasicType() != EbtVoid) - error(loc, "", function.getType().getBasicTypeString().c_str(), "entry point cannot return a value"); - } - - // - // New symbol table scope for body of function plus its arguments - // - symbolTable.push(); - - // - // 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 HIL, 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 { - // Transfer ownership of name pointer to symbol table. - param.name = nullptr; - - // Add the parameter to the HIL - 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; - statementNestingLevel = 0; - controlFlowNestingLevel = 0; - postEntryPointReturn = false; - - return paramNodes; -} - -// -// 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* TParseContext::handleFunctionCall(const TSourceLoc& loc, TFunction* function, TIntermNode* arguments) -{ - TIntermTyped* result = nullptr; - - if (spvVersion.vulkan != 0 && spvVersion.vulkanRelaxed) { - // allow calls that are invalid in Vulkan Semantics to be invisibily - // remapped to equivalent valid functions - result = vkRelaxedRemapFunctionCall(loc, function, arguments); - if (result) - return result; - } - - if (function->getBuiltInOp() == EOpArrayLength) - result = handleLengthMethod(loc, function, arguments); - else if (function->getBuiltInOp() != 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, function->getBuiltInOp(), 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(intermediate.getEnhancedMsgs()).c_str(), ""); - } - } else { - // - // Find it in the symbol table. - // - const TFunction* fnCandidate; - bool builtIn {false}; - fnCandidate = findFunction(loc, *function, builtIn); - 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()); - - if (builtIn && fnCandidate->getType().contains16BitFloat()) - requireFloat16Arithmetic(loc, "built-in function", "float16 types can only be in uniform block or buffer storage"); - if (builtIn && fnCandidate->getType().contains16BitInt()) - requireInt16Arithmetic(loc, "built-in function", "(u)int16 types can only be in uniform block or buffer storage"); - if (builtIn && fnCandidate->getType().contains8BitInt()) - requireInt8Arithmetic(loc, "built-in function", "(u)int8 types can only be in uniform block or buffer storage"); - - if (arguments != nullptr) { - // Make sure qualifications work for these arguments. - TIntermAggregate* aggregate = arguments->getAsAggregate(); - for (int i = 0; i < fnCandidate->getParamCount(); ++i) { - // At this early point there is a slight ambiguity between whether an aggregate 'arguments' - // is the single argument itself or its children are the arguments. Only one argument - // means take 'arguments' itself as the one argument. - TIntermNode* arg = fnCandidate->getParamCount() == 1 ? arguments : (aggregate ? aggregate->getSequence()[i] : arguments); - TQualifier& formalQualifier = (*fnCandidate)[i].type->getQualifier(); - if (formalQualifier.isParamOutput()) { - if (lValueErrorCheck(arguments->getLoc(), "assign", arg->getAsTyped())) - error(arguments->getLoc(), "Non-L-value cannot be passed for 'out' or 'inout' parameters.", "out", ""); - } -#ifndef GLSLANG_WEB - if (formalQualifier.isSpirvLiteral()) { - if (!arg->getAsTyped()->getQualifier().isFrontEndConstant()) { - error(arguments->getLoc(), - "Non front-end constant expressions cannot be passed for 'spirv_literal' parameters.", - "spirv_literal", ""); - } - } -#endif - const TType& argType = arg->getAsTyped()->getType(); - const TQualifier& argQualifier = argType.getQualifier(); - if (argQualifier.isMemory() && (argType.containsOpaque() || argType.isReference())) { - const char* message = "argument cannot drop memory qualifier when passed to formal parameter"; -#ifndef GLSLANG_WEB - if (argQualifier.volatil && ! formalQualifier.volatil) - error(arguments->getLoc(), message, "volatile", ""); - if (argQualifier.coherent && ! (formalQualifier.devicecoherent || formalQualifier.coherent)) - error(arguments->getLoc(), message, "coherent", ""); - if (argQualifier.devicecoherent && ! (formalQualifier.devicecoherent || formalQualifier.coherent)) - error(arguments->getLoc(), message, "devicecoherent", ""); - if (argQualifier.queuefamilycoherent && ! (formalQualifier.queuefamilycoherent || formalQualifier.devicecoherent || formalQualifier.coherent)) - error(arguments->getLoc(), message, "queuefamilycoherent", ""); - if (argQualifier.workgroupcoherent && ! (formalQualifier.workgroupcoherent || formalQualifier.queuefamilycoherent || formalQualifier.devicecoherent || formalQualifier.coherent)) - error(arguments->getLoc(), message, "workgroupcoherent", ""); - if (argQualifier.subgroupcoherent && ! (formalQualifier.subgroupcoherent || formalQualifier.workgroupcoherent || formalQualifier.queuefamilycoherent || formalQualifier.devicecoherent || formalQualifier.coherent)) - error(arguments->getLoc(), message, "subgroupcoherent", ""); - if (argQualifier.readonly && ! formalQualifier.readonly) - error(arguments->getLoc(), message, "readonly", ""); - if (argQualifier.writeonly && ! formalQualifier.writeonly) - error(arguments->getLoc(), message, "writeonly", ""); - // Don't check 'restrict', it is different than the rest: - // "...but only restrict can be taken away from a calling argument, by a formal parameter that - // lacks the restrict qualifier..." -#endif - } - if (!builtIn && argQualifier.getFormat() != formalQualifier.getFormat()) { - // we have mismatched formats, which should only be allowed if writeonly - // and at least one format is unknown - if (!formalQualifier.isWriteOnly() || (formalQualifier.getFormat() != ElfNone && - argQualifier.getFormat() != ElfNone)) - error(arguments->getLoc(), "image formats must match", "format", ""); - } - if (builtIn && arg->getAsTyped()->getType().contains16BitFloat()) - requireFloat16Arithmetic(arguments->getLoc(), "built-in function", "float16 types can only be in uniform block or buffer storage"); - if (builtIn && arg->getAsTyped()->getType().contains16BitInt()) - requireInt16Arithmetic(arguments->getLoc(), "built-in function", "(u)int16 types can only be in uniform block or buffer storage"); - if (builtIn && arg->getAsTyped()->getType().contains8BitInt()) - requireInt8Arithmetic(arguments->getLoc(), "built-in function", "(u)int8 types can only be in uniform block or buffer storage"); - - // 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. - } - - // Convert 'in' arguments - addInputArgumentConversions(*fnCandidate, arguments); // arguments may be modified if it's just a single argument node - } - - if (builtIn && fnCandidate->getBuiltInOp() != EOpNull) { - // A function call mapped to a built-in operation. - result = handleBuiltInFunctionCall(loc, arguments, *fnCandidate); -#ifndef GLSLANG_WEB - } else if (fnCandidate->getBuiltInOp() == EOpSpirvInst) { - // When SPIR-V instruction qualifier is specified, the function call is still mapped to a built-in operation. - result = handleBuiltInFunctionCall(loc, arguments, *fnCandidate); -#endif - } 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(); - if (symbolTable.atGlobalLevel()) { - requireProfile(loc, ~EEsProfile, "calling user function from global scope"); - intermediate.addToCallGraph(infoSink, "main(", fnCandidate->getMangledName()); - } else - intermediate.addToCallGraph(infoSink, currentCaller, fnCandidate->getMangledName()); - } - -#ifndef GLSLANG_WEB - if (builtIn) - nonOpBuiltInCheck(loc, *fnCandidate, *call); - else -#endif - userFunctionCallCheck(loc, *call); - } - - // Convert 'out' arguments. If it was a constant folded built-in, it won't be an aggregate anymore. - // Built-ins with a single argument aren't called with an aggregate, but they also don't have an output. - // Also, build the qualifier list for user function calls, which are always called with an aggregate. - if (result->getAsAggregate()) { - TQualifierList& qualifierList = result->getAsAggregate()->getQualifierList(); - for (int i = 0; i < fnCandidate->getParamCount(); ++i) { - TStorageQualifier qual = (*fnCandidate)[i].type->getQualifier().storage; - qualifierList.push_back(qual); - } - result = addOutputArgumentConversions(*fnCandidate, *result->getAsAggregate()); - } - - if (result->getAsTyped()->getType().isCoopMat() && - !result->getAsTyped()->getType().isParameterized()) { - assert(fnCandidate->getBuiltInOp() == EOpCooperativeMatrixMulAdd); - - result->setType(result->getAsAggregate()->getSequence()[2]->getAsTyped()->getType()); - } - } - } - - // 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; -} - -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()); - if (result != nullptr && 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(intermediate.getEnhancedMsgs()).c_str()); - } else if (result->getAsOperator()) - builtInOpCheck(loc, function, *result->getAsOperator()); - -#ifndef GLSLANG_WEB - // Special handling for function call with SPIR-V instruction qualifier specified - if (function.getBuiltInOp() == EOpSpirvInst) { - if (auto agg = result->getAsAggregate()) { - // Propogate spirv_by_reference/spirv_literal from parameters to arguments - auto& sequence = agg->getSequence(); - for (unsigned i = 0; i < sequence.size(); ++i) { - if (function[i].type->getQualifier().isSpirvByReference()) - sequence[i]->getAsTyped()->getQualifier().setSpirvByReference(); - if (function[i].type->getQualifier().isSpirvLiteral()) - sequence[i]->getAsTyped()->getQualifier().setSpirvLiteral(); - } - - // Attach the function call to SPIR-V intruction - agg->setSpirvInstruction(function.getSpirvInstruction()); - } else if (auto unaryNode = result->getAsUnaryNode()) { - // Propogate spirv_by_reference/spirv_literal from parameters to arguments - if (function[0].type->getQualifier().isSpirvByReference()) - unaryNode->getOperand()->getQualifier().setSpirvByReference(); - if (function[0].type->getQualifier().isSpirvLiteral()) - unaryNode->getOperand()->getQualifier().setSpirvLiteral(); - - // Attach the function call to SPIR-V intruction - unaryNode->setSpirvInstruction(function.getSpirvInstruction()); - } else - assert(0); - } -#endif - - return result; -} - -// "The operation of a built-in function can have a different precision -// qualification than the precision qualification of the resulting value. -// These two precision qualifications are established as follows. -// -// The precision qualification of the operation of a built-in function is -// based on the precision qualification of its input arguments and formal -// parameters: When a formal parameter specifies a precision qualifier, -// that is used, otherwise, the precision qualification of the calling -// argument is used. The highest precision of these will be the precision -// qualification of the operation of the built-in function. Generally, -// this is applied across all arguments to a built-in function, with the -// exceptions being: -// - bitfieldExtract and bitfieldInsert ignore the 'offset' and 'bits' -// arguments. -// - interpolateAt* functions only look at the 'interpolant' argument. -// -// The precision qualification of the result of a built-in function is -// determined in one of the following ways: -// -// - For the texture sampling, image load, and image store functions, -// the precision of the return type matches the precision of the -// sampler type -// -// Otherwise: -// -// - For prototypes that do not specify a resulting precision qualifier, -// the precision will be the same as the precision of the operation. -// -// - For prototypes that do specify a resulting precision qualifier, -// the specified precision qualifier is the precision qualification of -// the result." -// -void TParseContext::computeBuiltinPrecisions(TIntermTyped& node, const TFunction& function) -{ - TPrecisionQualifier operationPrecision = EpqNone; - TPrecisionQualifier resultPrecision = EpqNone; - - TIntermOperator* opNode = node.getAsOperator(); - if (opNode == nullptr) - return; - - if (TIntermUnary* unaryNode = node.getAsUnaryNode()) { - operationPrecision = std::max(function[0].type->getQualifier().precision, - unaryNode->getOperand()->getType().getQualifier().precision); - if (function.getType().getBasicType() != EbtBool) - resultPrecision = function.getType().getQualifier().precision == EpqNone ? - operationPrecision : - function.getType().getQualifier().precision; - } else if (TIntermAggregate* agg = node.getAsAggregate()) { - TIntermSequence& sequence = agg->getSequence(); - unsigned int numArgs = (unsigned int)sequence.size(); - switch (agg->getOp()) { - case EOpBitfieldExtract: - numArgs = 1; - break; - case EOpBitfieldInsert: - numArgs = 2; - break; - case EOpInterpolateAtCentroid: - case EOpInterpolateAtOffset: - case EOpInterpolateAtSample: - numArgs = 1; - break; - case EOpDebugPrintf: - numArgs = 0; - break; - default: - break; - } - // find the maximum precision from the arguments and parameters - for (unsigned int arg = 0; arg < numArgs; ++arg) { - operationPrecision = std::max(operationPrecision, sequence[arg]->getAsTyped()->getQualifier().precision); - operationPrecision = std::max(operationPrecision, function[arg].type->getQualifier().precision); - } - // compute the result precision - if (agg->isSampling() || - agg->getOp() == EOpImageLoad || agg->getOp() == EOpImageStore || - agg->getOp() == EOpImageLoadLod || agg->getOp() == EOpImageStoreLod) - resultPrecision = sequence[0]->getAsTyped()->getQualifier().precision; - else if (function.getType().getBasicType() != EbtBool) - resultPrecision = function.getType().getQualifier().precision == EpqNone ? - operationPrecision : - function.getType().getQualifier().precision; - } - - // Propagate precision through this node and its children. That algorithm stops - // when a precision is found, so start by clearing this subroot precision - opNode->getQualifier().precision = EpqNone; - if (operationPrecision != EpqNone) { - opNode->propagatePrecision(operationPrecision); - opNode->setOperationPrecision(operationPrecision); - } - // Now, set the result precision, which might not match - opNode->getQualifier().precision = resultPrecision; -} - -TIntermNode* TParseContext::handleReturnValue(const TSourceLoc& loc, TIntermTyped* value) -{ -#ifndef GLSLANG_WEB - storage16BitAssignmentCheck(loc, value->getType(), "return"); -#endif - - functionReturnsValue = true; - TIntermBranch* branch = nullptr; - if (currentFunctionType->getBasicType() == EbtVoid) { - error(loc, "void function cannot return a value", "return", ""); - branch = intermediate.addBranch(EOpReturn, loc); - } else if (*currentFunctionType != value->getType()) { - TIntermTyped* converted = intermediate.addConversion(EOpReturn, *currentFunctionType, value); - if (converted) { - if (*currentFunctionType != converted->getType()) - error(loc, "cannot convert return value to function return type", "return", ""); - if (version < 420) - warn(loc, "type conversion on return values was not explicitly allowed until version 420", - "return", ""); - branch = intermediate.addBranch(EOpReturn, converted, loc); - } else { - error(loc, "type does not match, or is not convertible to, the function's return type", "return", ""); - branch = intermediate.addBranch(EOpReturn, value, loc); - } - } else - branch = intermediate.addBranch(EOpReturn, value, loc); - - branch->updatePrecision(currentFunctionType->getQualifier().precision); - return branch; -} - -// See if the operation is being done in an illegal location. -void TParseContext::checkLocation(const TSourceLoc& loc, TOperator op) -{ -#ifndef GLSLANG_WEB - switch (op) { - case EOpBarrier: - if (language == EShLangTessControl) { - if (controlFlowNestingLevel > 0) - 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) - error(loc, "tessellation control barrier() cannot be placed after a return from main()", "", ""); - } - break; - case EOpBeginInvocationInterlock: - if (language != EShLangFragment) - error(loc, "beginInvocationInterlockARB() must be in a fragment shader", "", ""); - if (! inMain) - error(loc, "beginInvocationInterlockARB() must be in main()", "", ""); - else if (postEntryPointReturn) - error(loc, "beginInvocationInterlockARB() cannot be placed after a return from main()", "", ""); - if (controlFlowNestingLevel > 0) - error(loc, "beginInvocationInterlockARB() cannot be placed within flow control", "", ""); - - if (beginInvocationInterlockCount > 0) - error(loc, "beginInvocationInterlockARB() must only be called once", "", ""); - if (endInvocationInterlockCount > 0) - error(loc, "beginInvocationInterlockARB() must be called before endInvocationInterlockARB()", "", ""); - - beginInvocationInterlockCount++; - - // default to pixel_interlock_ordered - if (intermediate.getInterlockOrdering() == EioNone) - intermediate.setInterlockOrdering(EioPixelInterlockOrdered); - break; - case EOpEndInvocationInterlock: - if (language != EShLangFragment) - error(loc, "endInvocationInterlockARB() must be in a fragment shader", "", ""); - if (! inMain) - error(loc, "endInvocationInterlockARB() must be in main()", "", ""); - else if (postEntryPointReturn) - error(loc, "endInvocationInterlockARB() cannot be placed after a return from main()", "", ""); - if (controlFlowNestingLevel > 0) - error(loc, "endInvocationInterlockARB() cannot be placed within flow control", "", ""); - - if (endInvocationInterlockCount > 0) - error(loc, "endInvocationInterlockARB() must only be called once", "", ""); - if (beginInvocationInterlockCount == 0) - error(loc, "beginInvocationInterlockARB() must be called before endInvocationInterlockARB()", "", ""); - - endInvocationInterlockCount++; - break; - default: - break; - } -#endif -} - -// 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* TParseContext::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.isUnsizedArray()) { -#ifndef GLSLANG_WEB - if (intermNode->getAsSymbolNode() && isIoResizeArray(type)) { - // We could be between a layout declaration that gives a built-in io array implicit size and - // a user redeclaration of that array, meaning we have to substitute its implicit size here - // without actually redeclaring the array. (It is an error to use a member before the - // redeclaration, but not an error to use the array name itself.) - const TString& name = intermNode->getAsSymbolNode()->getName(); - if (name == "gl_in" || name == "gl_out" || name == "gl_MeshVerticesNV" || - name == "gl_MeshPrimitivesNV") { - length = getIoArrayImplicitSize(type.getQualifier()); - } - } -#endif - if (length == 0) { -#ifndef GLSLANG_WEB - 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 -#endif - error(loc, "", function->getName().c_str(), "array must be declared with a size before using this method"); - } - } else if (type.getOuterArrayNode()) { - // If the array's outer size is specified by an intermediate node, it means the array's length - // was specified by a specialization constant. In such a case, we should return the node of the - // specialization constants to represent the length. - return type.getOuterArrayNode(); - } else - length = type.getOuterArraySize(); - } else if (type.isMatrix()) - length = type.getMatrixCols(); - else if (type.isVector()) - length = type.getVectorSize(); - else if (type.isCoopMat()) - return intermediate.addBuiltInFunctionCall(loc, EOpArrayLength, true, intermNode, TType(EbtInt)); - 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 TParseContext::addInputArgumentConversions(const TFunction& function, TIntermNode*& arguments) const -{ -#ifndef GLSLANG_WEB - TIntermAggregate* aggregate = arguments->getAsAggregate(); - - // Process each argument's conversion - for (int i = 0; i < function.getParamCount(); ++i) { - // At this early point there is a slight ambiguity between whether an aggregate 'arguments' - // is the single argument itself or its children are the arguments. Only one argument - // means take 'arguments' itself as the one argument. - TIntermTyped* arg = function.getParamCount() == 1 ? arguments->getAsTyped() : (aggregate ? aggregate->getSequence()[i]->getAsTyped() : arguments->getAsTyped()); - if (*function[i].type != arg->getType()) { - if (function[i].type->getQualifier().isParamInput() && - !function[i].type->isCoopMat()) { - // 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); - if (arg) { - if (function.getParamCount() == 1) - arguments = arg; - else { - if (aggregate) - aggregate->getSequence()[i] = arg; - else - arguments = arg; - } - } - } - } - } -#endif -} - -// -// 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* TParseContext::addOutputArgumentConversions(const TFunction& function, TIntermAggregate& intermNode) const -{ -#ifdef GLSLANG_WEB - return &intermNode; -#else - TIntermSequence& arguments = intermNode.getSequence(); - - // Will there be any output conversions? - bool outputConversions = false; - for (int i = 0; i < function.getParamCount(); ++i) { - if (*function[i].type != arguments[i]->getAsTyped()->getType() && function[i].type->getQualifier().isParamOutput()) { - 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, intermNode.getLoc()); - conversionTree = intermediate.addAssign(EOpAssign, tempRetNode, &intermNode, intermNode.getLoc()); - } else - conversionTree = &intermNode; - - conversionTree = intermediate.makeAggregate(conversionTree); - - // Process each argument's conversion - for (int i = 0; i < function.getParamCount(); ++i) { - if (*function[i].type != arguments[i]->getAsTyped()->getType()) { - if (function[i].type->getQualifier().isParamOutput()) { - // Out-qualified arguments need to use the topology set up above. - // do the " ...(tempArg, ...), arg = tempArg" bit from above - TType paramType; - paramType.shallowCopy(*function[i].type); - if (arguments[i]->getAsTyped()->getType().isParameterized() && - !paramType.isParameterized()) { - paramType.shallowCopy(arguments[i]->getAsTyped()->getType()); - paramType.copyTypeParameters(*arguments[i]->getAsTyped()->getType().getTypeParameters()); - } - TVariable* tempArg = makeInternalVariable("tempArg", paramType); - tempArg->getWritableType().getQualifier().makeTemporary(); - TIntermSymbol* tempArgNode = intermediate.addSymbol(*tempArg, intermNode.getLoc()); - TIntermTyped* tempAssign = intermediate.addAssign(EOpAssign, arguments[i]->getAsTyped(), tempArgNode, arguments[i]->getLoc()); - conversionTree = intermediate.growAggregate(conversionTree, tempAssign, arguments[i]->getLoc()); - // replace the argument with another node for the same tempArg variable - arguments[i] = intermediate.addSymbol(*tempArg, intermNode.getLoc()); - } - } - } - - // Finalize the tree topology (see bigger comment above). - if (tempRet) { - // do the "..., tempRet" bit from above - TIntermSymbol* tempRetNode = intermediate.addSymbol(*tempRet, intermNode.getLoc()); - conversionTree = intermediate.growAggregate(conversionTree, tempRetNode, intermNode.getLoc()); - } - conversionTree = intermediate.setAggregateOperator(conversionTree, EOpComma, intermNode.getType(), intermNode.getLoc()); - - return conversionTree; -#endif -} - -TIntermTyped* TParseContext::addAssign(const TSourceLoc& loc, TOperator op, TIntermTyped* left, TIntermTyped* right) -{ - if ((op == EOpAddAssign || op == EOpSubAssign) && left->isReference()) - requireExtensions(loc, 1, &E_GL_EXT_buffer_reference2, "+= and -= on a buffer reference"); - - return intermediate.addAssign(op, left, right, loc); -} - -void TParseContext::memorySemanticsCheck(const TSourceLoc& loc, const TFunction& fnCandidate, const TIntermOperator& callNode) -{ - const TIntermSequence* argp = &callNode.getAsAggregate()->getSequence(); - - //const int gl_SemanticsRelaxed = 0x0; - const int gl_SemanticsAcquire = 0x2; - const int gl_SemanticsRelease = 0x4; - const int gl_SemanticsAcquireRelease = 0x8; - const int gl_SemanticsMakeAvailable = 0x2000; - const int gl_SemanticsMakeVisible = 0x4000; - const int gl_SemanticsVolatile = 0x8000; - - //const int gl_StorageSemanticsNone = 0x0; - const int gl_StorageSemanticsBuffer = 0x40; - const int gl_StorageSemanticsShared = 0x100; - const int gl_StorageSemanticsImage = 0x800; - const int gl_StorageSemanticsOutput = 0x1000; - - - unsigned int semantics = 0, storageClassSemantics = 0; - unsigned int semantics2 = 0, storageClassSemantics2 = 0; - - const TIntermTyped* arg0 = (*argp)[0]->getAsTyped(); - const bool isMS = arg0->getBasicType() == EbtSampler && arg0->getType().getSampler().isMultiSample(); - - // Grab the semantics and storage class semantics from the operands, based on opcode - switch (callNode.getOp()) { - case EOpAtomicAdd: - case EOpAtomicSubtract: - case EOpAtomicMin: - case EOpAtomicMax: - case EOpAtomicAnd: - case EOpAtomicOr: - case EOpAtomicXor: - case EOpAtomicExchange: - case EOpAtomicStore: - storageClassSemantics = (*argp)[3]->getAsConstantUnion()->getConstArray()[0].getIConst(); - semantics = (*argp)[4]->getAsConstantUnion()->getConstArray()[0].getIConst(); - break; - case EOpAtomicLoad: - storageClassSemantics = (*argp)[2]->getAsConstantUnion()->getConstArray()[0].getIConst(); - semantics = (*argp)[3]->getAsConstantUnion()->getConstArray()[0].getIConst(); - break; - case EOpAtomicCompSwap: - storageClassSemantics = (*argp)[4]->getAsConstantUnion()->getConstArray()[0].getIConst(); - semantics = (*argp)[5]->getAsConstantUnion()->getConstArray()[0].getIConst(); - storageClassSemantics2 = (*argp)[6]->getAsConstantUnion()->getConstArray()[0].getIConst(); - semantics2 = (*argp)[7]->getAsConstantUnion()->getConstArray()[0].getIConst(); - break; - - case EOpImageAtomicAdd: - case EOpImageAtomicMin: - case EOpImageAtomicMax: - case EOpImageAtomicAnd: - case EOpImageAtomicOr: - case EOpImageAtomicXor: - case EOpImageAtomicExchange: - case EOpImageAtomicStore: - storageClassSemantics = (*argp)[isMS ? 5 : 4]->getAsConstantUnion()->getConstArray()[0].getIConst(); - semantics = (*argp)[isMS ? 6 : 5]->getAsConstantUnion()->getConstArray()[0].getIConst(); - break; - case EOpImageAtomicLoad: - storageClassSemantics = (*argp)[isMS ? 4 : 3]->getAsConstantUnion()->getConstArray()[0].getIConst(); - semantics = (*argp)[isMS ? 5 : 4]->getAsConstantUnion()->getConstArray()[0].getIConst(); - break; - case EOpImageAtomicCompSwap: - storageClassSemantics = (*argp)[isMS ? 6 : 5]->getAsConstantUnion()->getConstArray()[0].getIConst(); - semantics = (*argp)[isMS ? 7 : 6]->getAsConstantUnion()->getConstArray()[0].getIConst(); - storageClassSemantics2 = (*argp)[isMS ? 8 : 7]->getAsConstantUnion()->getConstArray()[0].getIConst(); - semantics2 = (*argp)[isMS ? 9 : 8]->getAsConstantUnion()->getConstArray()[0].getIConst(); - break; - - case EOpBarrier: - storageClassSemantics = (*argp)[2]->getAsConstantUnion()->getConstArray()[0].getIConst(); - semantics = (*argp)[3]->getAsConstantUnion()->getConstArray()[0].getIConst(); - break; - case EOpMemoryBarrier: - storageClassSemantics = (*argp)[1]->getAsConstantUnion()->getConstArray()[0].getIConst(); - semantics = (*argp)[2]->getAsConstantUnion()->getConstArray()[0].getIConst(); - break; - default: - break; - } - - if ((semantics & gl_SemanticsAcquire) && - (callNode.getOp() == EOpAtomicStore || callNode.getOp() == EOpImageAtomicStore)) { - error(loc, "gl_SemanticsAcquire must not be used with (image) atomic store", - fnCandidate.getName().c_str(), ""); - } - if ((semantics & gl_SemanticsRelease) && - (callNode.getOp() == EOpAtomicLoad || callNode.getOp() == EOpImageAtomicLoad)) { - error(loc, "gl_SemanticsRelease must not be used with (image) atomic load", - fnCandidate.getName().c_str(), ""); - } - if ((semantics & gl_SemanticsAcquireRelease) && - (callNode.getOp() == EOpAtomicStore || callNode.getOp() == EOpImageAtomicStore || - callNode.getOp() == EOpAtomicLoad || callNode.getOp() == EOpImageAtomicLoad)) { - error(loc, "gl_SemanticsAcquireRelease must not be used with (image) atomic load/store", - fnCandidate.getName().c_str(), ""); - } - if (((semantics | semantics2) & ~(gl_SemanticsAcquire | - gl_SemanticsRelease | - gl_SemanticsAcquireRelease | - gl_SemanticsMakeAvailable | - gl_SemanticsMakeVisible | - gl_SemanticsVolatile))) { - error(loc, "Invalid semantics value", fnCandidate.getName().c_str(), ""); - } - if (((storageClassSemantics | storageClassSemantics2) & ~(gl_StorageSemanticsBuffer | - gl_StorageSemanticsShared | - gl_StorageSemanticsImage | - gl_StorageSemanticsOutput))) { - error(loc, "Invalid storage class semantics value", fnCandidate.getName().c_str(), ""); - } - - if (callNode.getOp() == EOpMemoryBarrier) { - if (!IsPow2(semantics & (gl_SemanticsAcquire | gl_SemanticsRelease | gl_SemanticsAcquireRelease))) { - error(loc, "Semantics must include exactly one of gl_SemanticsRelease, gl_SemanticsAcquire, or " - "gl_SemanticsAcquireRelease", fnCandidate.getName().c_str(), ""); - } - } else { - if (semantics & (gl_SemanticsAcquire | gl_SemanticsRelease | gl_SemanticsAcquireRelease)) { - if (!IsPow2(semantics & (gl_SemanticsAcquire | gl_SemanticsRelease | gl_SemanticsAcquireRelease))) { - error(loc, "Semantics must not include multiple of gl_SemanticsRelease, gl_SemanticsAcquire, or " - "gl_SemanticsAcquireRelease", fnCandidate.getName().c_str(), ""); - } - } - if (semantics2 & (gl_SemanticsAcquire | gl_SemanticsRelease | gl_SemanticsAcquireRelease)) { - if (!IsPow2(semantics2 & (gl_SemanticsAcquire | gl_SemanticsRelease | gl_SemanticsAcquireRelease))) { - error(loc, "semUnequal must not include multiple of gl_SemanticsRelease, gl_SemanticsAcquire, or " - "gl_SemanticsAcquireRelease", fnCandidate.getName().c_str(), ""); - } - } - } - if (callNode.getOp() == EOpMemoryBarrier) { - if (storageClassSemantics == 0) { - error(loc, "Storage class semantics must not be zero", fnCandidate.getName().c_str(), ""); - } - } - if (callNode.getOp() == EOpBarrier && semantics != 0 && storageClassSemantics == 0) { - error(loc, "Storage class semantics must not be zero", fnCandidate.getName().c_str(), ""); - } - if ((callNode.getOp() == EOpAtomicCompSwap || callNode.getOp() == EOpImageAtomicCompSwap) && - (semantics2 & (gl_SemanticsRelease | gl_SemanticsAcquireRelease))) { - error(loc, "semUnequal must not be gl_SemanticsRelease or gl_SemanticsAcquireRelease", - fnCandidate.getName().c_str(), ""); - } - if ((semantics & gl_SemanticsMakeAvailable) && - !(semantics & (gl_SemanticsRelease | gl_SemanticsAcquireRelease))) { - error(loc, "gl_SemanticsMakeAvailable requires gl_SemanticsRelease or gl_SemanticsAcquireRelease", - fnCandidate.getName().c_str(), ""); - } - if ((semantics & gl_SemanticsMakeVisible) && - !(semantics & (gl_SemanticsAcquire | gl_SemanticsAcquireRelease))) { - error(loc, "gl_SemanticsMakeVisible requires gl_SemanticsAcquire or gl_SemanticsAcquireRelease", - fnCandidate.getName().c_str(), ""); - } - if ((semantics & gl_SemanticsVolatile) && - (callNode.getOp() == EOpMemoryBarrier || callNode.getOp() == EOpBarrier)) { - error(loc, "gl_SemanticsVolatile must not be used with memoryBarrier or controlBarrier", - fnCandidate.getName().c_str(), ""); - } - if ((callNode.getOp() == EOpAtomicCompSwap || callNode.getOp() == EOpImageAtomicCompSwap) && - ((semantics ^ semantics2) & gl_SemanticsVolatile)) { - error(loc, "semEqual and semUnequal must either both include gl_SemanticsVolatile or neither", - fnCandidate.getName().c_str(), ""); - } -} - -// -// 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 TParseContext::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; - } - - TString featureString; - const char* feature = nullptr; - switch (callNode.getOp()) { -#ifndef GLSLANG_WEB - case EOpTextureGather: - case EOpTextureGatherOffset: - case EOpTextureGatherOffsets: - { - // 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(); - profileRequires(loc, EEsProfile, 310, nullptr, feature); - 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) { - profileRequires(loc, ~EEsProfile, 400, E_GL_ARB_gpu_shader5, feature); - if (! fnCandidate[0].type->getSampler().shadow) - compArg = 2; - } else - profileRequires(loc, ~EEsProfile, 400, E_GL_ARB_texture_gather, feature); - break; - case EOpTextureGatherOffset: - // GL_ARB_texture_gather is good enough for 2D non-shadow textures with no component argument - if (fnCandidate[0].type->getSampler().dim == Esd2D && ! fnCandidate[0].type->getSampler().shadow && fnCandidate.getParamCount() == 3) - 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 (! fnCandidate[0].type->getSampler().shadow) - compArg = 3; - break; - case EOpTextureGatherOffsets: - profileRequires(loc, ~EEsProfile, 400, E_GL_ARB_gpu_shader5, feature); - if (! fnCandidate[0].type->getSampler().shadow) - compArg = 3; - // check for constant offsets - if (! (*argp)[fnCandidate[0].type->getSampler().shadow ? 3 : 2]->getAsConstantUnion()) - error(loc, "must be a compile-time constant:", feature, "offsets argument"); - break; - default: - break; - } - - if (compArg > 0 && compArg < fnCandidate.getParamCount()) { - 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"); - } - - 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); - } - break; - } - 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); - } - // As per GL_ARB_sparse_texture2 extension "Offsets" parameter must be constant integral expression - // for sparseTextureGatherOffsetsARB just as textureGatherOffsets - if (callNode.getOp() == EOpSparseTextureGatherOffsets) { - int offsetsArg = arg0->getType().getSampler().shadow ? 3 : 2; - if (!(*argp)[offsetsArg]->getAsConstantUnion()) - error(loc, "argument must be compile-time constant", "offsets", ""); - } - 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: - 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().isRect()) ? 2 : 3; 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) { - -#ifndef GLSLANG_WEB - bool f16ShadowCompare = (*argp)[1]->getAsTyped()->getBasicType() == EbtFloat16 && - arg0->getType().getSampler().shadow; - if (f16ShadowCompare) - ++arg; -#endif - if (! (*argp)[arg]->getAsTyped()->getQualifier().isConstant()) - error(loc, "argument must be compile-time constant", "texel offset", ""); - else if ((*argp)[arg]->getAsConstantUnion()) { - const TType& type = (*argp)[arg]->getAsTyped()->getType(); - for (int c = 0; c < type.getVectorSize(); ++c) { - 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]"); - } - } - - if (callNode.getOp() == EOpTextureOffset) { - TSampler s = arg0->getType().getSampler(); - if (s.is2D() && s.isArrayed() && s.isShadow()) { - if (isEsProfile()) - error(loc, "TextureOffset does not support sampler2DArrayShadow : ", "sampler", "ES Profile"); - else if (version <= 420) - error(loc, "TextureOffset does not support sampler2DArrayShadow : ", "sampler", "version <= 420"); - } - } - } - - break; - } - -#ifndef GLSLANG_WEB - case EOpTraceNV: - if (!(*argp)[10]->getAsConstantUnion()) - error(loc, "argument must be compile-time constant", "payload number", "a"); - break; - case EOpTraceRayMotionNV: - if (!(*argp)[11]->getAsConstantUnion()) - error(loc, "argument must be compile-time constant", "payload number", "a"); - break; - case EOpTraceKHR: - if (!(*argp)[10]->getAsConstantUnion()) - error(loc, "argument must be compile-time constant", "payload number", "a"); - else { - unsigned int location = (*argp)[10]->getAsConstantUnion()->getAsConstantUnion()->getConstArray()[0].getUConst(); - if (intermediate.checkLocationRT(0, location) < 0) - error(loc, "with layout(location =", "no rayPayloadEXT/rayPayloadInEXT declared", "%d)", location); - } - break; - case EOpExecuteCallableNV: - if (!(*argp)[1]->getAsConstantUnion()) - error(loc, "argument must be compile-time constant", "callable data number", ""); - break; - case EOpExecuteCallableKHR: - if (!(*argp)[1]->getAsConstantUnion()) - error(loc, "argument must be compile-time constant", "callable data number", ""); - else { - unsigned int location = (*argp)[1]->getAsConstantUnion()->getAsConstantUnion()->getConstArray()[0].getUConst(); - if (intermediate.checkLocationRT(1, location) < 0) - error(loc, "with layout(location =", "no callableDataEXT/callableDataInEXT declared", "%d)", location); - } - break; - - case EOpRayQueryGetIntersectionType: - case EOpRayQueryGetIntersectionT: - case EOpRayQueryGetIntersectionInstanceCustomIndex: - case EOpRayQueryGetIntersectionInstanceId: - case EOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffset: - case EOpRayQueryGetIntersectionGeometryIndex: - case EOpRayQueryGetIntersectionPrimitiveIndex: - case EOpRayQueryGetIntersectionBarycentrics: - case EOpRayQueryGetIntersectionFrontFace: - case EOpRayQueryGetIntersectionObjectRayDirection: - case EOpRayQueryGetIntersectionObjectRayOrigin: - case EOpRayQueryGetIntersectionObjectToWorld: - case EOpRayQueryGetIntersectionWorldToObject: - if (!(*argp)[1]->getAsConstantUnion()) - error(loc, "argument must be compile-time constant", "committed", ""); - break; - - case EOpTextureQuerySamples: - case EOpImageQuerySamples: - // GL_ARB_shader_texture_image_samples - profileRequires(loc, ~EEsProfile, 450, E_GL_ARB_shader_texture_image_samples, "textureSamples and imageSamples"); - break; - - case EOpImageAtomicAdd: - case EOpImageAtomicMin: - case EOpImageAtomicMax: - case EOpImageAtomicAnd: - case EOpImageAtomicOr: - case EOpImageAtomicXor: - case EOpImageAtomicExchange: - case EOpImageAtomicCompSwap: - case EOpImageAtomicLoad: - case EOpImageAtomicStore: - { - // Make sure the image types have the correct layout() format and correct argument types - const TType& imageType = arg0->getType(); - if (imageType.getSampler().type == EbtInt || imageType.getSampler().type == EbtUint || - imageType.getSampler().type == EbtInt64 || imageType.getSampler().type == EbtUint64) { - if (imageType.getQualifier().getFormat() != ElfR32i && imageType.getQualifier().getFormat() != ElfR32ui && - imageType.getQualifier().getFormat() != ElfR64i && imageType.getQualifier().getFormat() != ElfR64ui) - error(loc, "only supported on image with format r32i or r32ui", fnCandidate.getName().c_str(), ""); - if (callNode.getType().getBasicType() == EbtInt64 && imageType.getQualifier().getFormat() != ElfR64i) - error(loc, "only supported on image with format r64i", fnCandidate.getName().c_str(), ""); - else if (callNode.getType().getBasicType() == EbtUint64 && imageType.getQualifier().getFormat() != ElfR64ui) - error(loc, "only supported on image with format r64ui", fnCandidate.getName().c_str(), ""); - } else if (imageType.getSampler().type == EbtFloat) { - if (fnCandidate.getName().compare(0, 19, "imageAtomicExchange") == 0) { - // imageAtomicExchange doesn't require an extension - } else if ((fnCandidate.getName().compare(0, 14, "imageAtomicAdd") == 0) || - (fnCandidate.getName().compare(0, 15, "imageAtomicLoad") == 0) || - (fnCandidate.getName().compare(0, 16, "imageAtomicStore") == 0)) { - requireExtensions(loc, 1, &E_GL_EXT_shader_atomic_float, fnCandidate.getName().c_str()); - } else if ((fnCandidate.getName().compare(0, 14, "imageAtomicMin") == 0) || - (fnCandidate.getName().compare(0, 14, "imageAtomicMax") == 0)) { - requireExtensions(loc, 1, &E_GL_EXT_shader_atomic_float2, fnCandidate.getName().c_str()); - } else { - error(loc, "only supported on integer images", fnCandidate.getName().c_str(), ""); - } - if (imageType.getQualifier().getFormat() != ElfR32f && isEsProfile()) - error(loc, "only supported on image with format r32f", fnCandidate.getName().c_str(), ""); - } else { - error(loc, "not supported on this image type", fnCandidate.getName().c_str(), ""); - } - - const size_t maxArgs = imageType.getSampler().isMultiSample() ? 5 : 4; - if (argp->size() > maxArgs) { - requireExtensions(loc, 1, &E_GL_KHR_memory_scope_semantics, fnCandidate.getName().c_str()); - memorySemanticsCheck(loc, fnCandidate, callNode); - } - - break; - } - - case EOpAtomicAdd: - case EOpAtomicSubtract: - case EOpAtomicMin: - case EOpAtomicMax: - case EOpAtomicAnd: - case EOpAtomicOr: - case EOpAtomicXor: - case EOpAtomicExchange: - case EOpAtomicCompSwap: - case EOpAtomicLoad: - case EOpAtomicStore: - { - if (argp->size() > 3) { - requireExtensions(loc, 1, &E_GL_KHR_memory_scope_semantics, fnCandidate.getName().c_str()); - memorySemanticsCheck(loc, fnCandidate, callNode); - if ((callNode.getOp() == EOpAtomicAdd || callNode.getOp() == EOpAtomicExchange || - callNode.getOp() == EOpAtomicLoad || callNode.getOp() == EOpAtomicStore) && - (arg0->getType().getBasicType() == EbtFloat || - arg0->getType().getBasicType() == EbtDouble)) { - requireExtensions(loc, 1, &E_GL_EXT_shader_atomic_float, fnCandidate.getName().c_str()); - } else if ((callNode.getOp() == EOpAtomicAdd || callNode.getOp() == EOpAtomicExchange || - callNode.getOp() == EOpAtomicLoad || callNode.getOp() == EOpAtomicStore || - callNode.getOp() == EOpAtomicMin || callNode.getOp() == EOpAtomicMax) && - arg0->getType().isFloatingDomain()) { - requireExtensions(loc, 1, &E_GL_EXT_shader_atomic_float2, fnCandidate.getName().c_str()); - } - } else if (arg0->getType().getBasicType() == EbtInt64 || arg0->getType().getBasicType() == EbtUint64) { - const char* const extensions[2] = { E_GL_NV_shader_atomic_int64, - E_GL_EXT_shader_atomic_int64 }; - requireExtensions(loc, 2, extensions, fnCandidate.getName().c_str()); - } else if ((callNode.getOp() == EOpAtomicAdd || callNode.getOp() == EOpAtomicExchange) && - (arg0->getType().getBasicType() == EbtFloat || - arg0->getType().getBasicType() == EbtDouble)) { - requireExtensions(loc, 1, &E_GL_EXT_shader_atomic_float, fnCandidate.getName().c_str()); - } else if ((callNode.getOp() == EOpAtomicAdd || callNode.getOp() == EOpAtomicExchange || - callNode.getOp() == EOpAtomicLoad || callNode.getOp() == EOpAtomicStore || - callNode.getOp() == EOpAtomicMin || callNode.getOp() == EOpAtomicMax) && - arg0->getType().isFloatingDomain()) { - requireExtensions(loc, 1, &E_GL_EXT_shader_atomic_float2, fnCandidate.getName().c_str()); - } - - const TIntermTyped* base = TIntermediate::findLValueBase(arg0, true , true); - const TType* refType = (base->getType().isReference()) ? base->getType().getReferentType() : nullptr; - const TQualifier& qualifier = (refType != nullptr) ? refType->getQualifier() : base->getType().getQualifier(); - if (qualifier.storage != EvqShared && qualifier.storage != EvqBuffer) - error(loc,"Atomic memory function can only be used for shader storage block member or shared variable.", - fnCandidate.getName().c_str(), ""); - - break; - } - - case EOpInterpolateAtCentroid: - case EOpInterpolateAtSample: - case EOpInterpolateAtOffset: - case EOpInterpolateAtVertex: - // 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 - bool swizzleOkay = (!isEsProfile()) && (version >= 440); - const TIntermTyped* base = TIntermediate::findLValueBase(arg0, swizzleOkay); - if (base == nullptr || base->getType().getQualifier().storage != EvqVaryingIn) - error(loc, "first argument must be an interpolant, or interpolant-array element", fnCandidate.getName().c_str(), ""); - } - - 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", ""); - } - } - } - break; - - case EOpEmitStreamVertex: - case EOpEndStreamPrimitive: - if (version == 150) - requireExtensions(loc, 1, &E_GL_ARB_gpu_shader5, "if the verison is 150 , the EmitStreamVertex and EndStreamPrimitive only support at extension GL_ARB_gpu_shader5"); - intermediate.setMultiStream(); - break; - - case EOpSubgroupClusteredAdd: - case EOpSubgroupClusteredMul: - case EOpSubgroupClusteredMin: - case EOpSubgroupClusteredMax: - case EOpSubgroupClusteredAnd: - case EOpSubgroupClusteredOr: - case EOpSubgroupClusteredXor: - // The as used in the subgroupClustered() operations must be: - // - An integral constant expression. - // - At least 1. - // - A power of 2. - 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; - - case EOpSubgroupBroadcast: - case EOpSubgroupQuadBroadcast: - if (spvVersion.spv < EShTargetSpv_1_5) { - // must be an integral constant expression. - if ((*argp)[1]->getAsConstantUnion() == nullptr) - error(loc, "argument must be compile-time constant", "id", ""); - } - break; - - case EOpBarrier: - case EOpMemoryBarrier: - if (argp->size() > 0) { - requireExtensions(loc, 1, &E_GL_KHR_memory_scope_semantics, fnCandidate.getName().c_str()); - memorySemanticsCheck(loc, fnCandidate, callNode); - } - break; - - case EOpMix: - if (profile == EEsProfile && version < 310) { - // Look for specific signatures - if ((*argp)[0]->getAsTyped()->getBasicType() != EbtFloat && - (*argp)[1]->getAsTyped()->getBasicType() != EbtFloat && - (*argp)[2]->getAsTyped()->getBasicType() == EbtBool) { - requireExtensions(loc, 1, &E_GL_EXT_shader_integer_mix, "specific signature of builtin mix"); - } - } - - if (profile != EEsProfile && version < 450) { - if ((*argp)[0]->getAsTyped()->getBasicType() != EbtFloat && - (*argp)[0]->getAsTyped()->getBasicType() != EbtDouble && - (*argp)[1]->getAsTyped()->getBasicType() != EbtFloat && - (*argp)[1]->getAsTyped()->getBasicType() != EbtDouble && - (*argp)[2]->getAsTyped()->getBasicType() == EbtBool) { - requireExtensions(loc, 1, &E_GL_EXT_shader_integer_mix, fnCandidate.getName().c_str()); - } - } - - break; -#endif - - default: - break; - } - - // Texture operations on texture objects (aside from texelFetch on a - // textureBuffer) require EXT_samplerless_texture_functions. - switch (callNode.getOp()) { - case EOpTextureQuerySize: - case EOpTextureQueryLevels: - case EOpTextureQuerySamples: - case EOpTextureFetch: - case EOpTextureFetchOffset: - { - const TSampler& sampler = fnCandidate[0].type->getSampler(); - - const bool isTexture = sampler.isTexture() && !sampler.isCombined(); - const bool isBuffer = sampler.isBuffer(); - const bool isFetch = callNode.getOp() == EOpTextureFetch || callNode.getOp() == EOpTextureFetchOffset; - - if (isTexture && (!isBuffer || !isFetch)) - requireExtensions(loc, 1, &E_GL_EXT_samplerless_texture_functions, fnCandidate.getName().c_str()); - - break; - } - - default: - break; - } - - if (callNode.isSubgroup()) { - // these require SPIR-V 1.3 - if (spvVersion.spv > 0 && spvVersion.spv < EShTargetSpv_1_3) - error(loc, "requires SPIR-V 1.3", "subgroup op", ""); - - // Check that if extended types are being used that the correct extensions are enabled. - if (arg0 != nullptr) { - const TType& type = arg0->getType(); - bool enhanced = intermediate.getEnhancedMsgs(); - switch (type.getBasicType()) { - default: - break; - case EbtInt8: - case EbtUint8: - requireExtensions(loc, 1, &E_GL_EXT_shader_subgroup_extended_types_int8, type.getCompleteString(enhanced).c_str()); - break; - case EbtInt16: - case EbtUint16: - requireExtensions(loc, 1, &E_GL_EXT_shader_subgroup_extended_types_int16, type.getCompleteString(enhanced).c_str()); - break; - case EbtInt64: - case EbtUint64: - requireExtensions(loc, 1, &E_GL_EXT_shader_subgroup_extended_types_int64, type.getCompleteString(enhanced).c_str()); - break; - case EbtFloat16: - requireExtensions(loc, 1, &E_GL_EXT_shader_subgroup_extended_types_float16, type.getCompleteString(enhanced).c_str()); - break; - } - } - } -} - -#ifndef GLSLANG_WEB - -extern bool PureOperatorBuiltins; - -// Deprecated! Use PureOperatorBuiltins == true instead, in which case this -// functionality is handled in builtInOpCheck() instead of here. -// -// Do additional checking of built-in function calls that were not mapped -// to built-in operations (e.g., texturing functions). -// -// Assumes there has been a semantically correct match to a built-in function. -// -void TParseContext::nonOpBuiltInCheck(const TSourceLoc& loc, const TFunction& fnCandidate, TIntermAggregate& callNode) -{ - // 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 - // to a TOperator, and this function would then never get called. - - assert(PureOperatorBuiltins == false); - - // built-in texturing functions get their return value precision from the precision of the sampler - if (fnCandidate.getType().getQualifier().precision == EpqNone && - fnCandidate.getParamCount() > 0 && fnCandidate[0].type->getBasicType() == EbtSampler) - callNode.getQualifier().precision = callNode.getSequence()[0]->getAsTyped()->getQualifier().precision; - - if (fnCandidate.getName().compare(0, 7, "texture") == 0) { - if (fnCandidate.getName().compare(0, 13, "textureGather") == 0) { - 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 - if (fnCandidate.getName().compare("textureGatherOffset") == 0) { - // GL_ARB_texture_gather is good enough for 2D non-shadow textures with no component argument - if (fnCandidate[0].type->getSampler().dim == Esd2D && ! fnCandidate[0].type->getSampler().shadow && fnCandidate.getParamCount() == 3) - profileRequires(loc, ~EEsProfile, 400, E_GL_ARB_texture_gather, feature); - else - 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"); - if (! fnCandidate[0].type->getSampler().shadow) - compArg = 3; - } else if (fnCandidate.getName().compare("textureGatherOffsets") == 0) { - profileRequires(loc, ~EEsProfile, 400, E_GL_ARB_gpu_shader5, feature); - if (! fnCandidate[0].type->getSampler().shadow) - compArg = 3; - // check for constant offsets - int offsetArg = fnCandidate[0].type->getSampler().shadow ? 3 : 2; - if (! callNode.getSequence()[offsetArg]->getAsConstantUnion()) - error(loc, "must be a compile-time constant:", feature, "offsets argument"); - } else if (fnCandidate.getName().compare("textureGather") == 0) { - // 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) { - profileRequires(loc, ~EEsProfile, 400, E_GL_ARB_gpu_shader5, feature); - if (! fnCandidate[0].type->getSampler().shadow) - compArg = 2; - } else - profileRequires(loc, ~EEsProfile, 400, E_GL_ARB_texture_gather, feature); - } - - if (compArg > 0 && compArg < fnCandidate.getParamCount()) { - if (callNode.getSequence()[compArg]->getAsConstantUnion()) { - int value = callNode.getSequence()[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"); - } - } else { - // this is only for functions not starting "textureGather"... - if (fnCandidate.getName().find("Offset") != TString::npos) { - - // Handle texture-offset limits checking - int arg = -1; - if (fnCandidate.getName().compare("textureOffset") == 0) - arg = 2; - else if (fnCandidate.getName().compare("texelFetchOffset") == 0) - arg = 3; - else if (fnCandidate.getName().compare("textureProjOffset") == 0) - arg = 2; - else if (fnCandidate.getName().compare("textureLodOffset") == 0) - arg = 3; - else if (fnCandidate.getName().compare("textureProjLodOffset") == 0) - arg = 3; - else if (fnCandidate.getName().compare("textureGradOffset") == 0) - arg = 4; - else if (fnCandidate.getName().compare("textureProjGradOffset") == 0) - arg = 4; - - if (arg > 0) { - if (! callNode.getSequence()[arg]->getAsConstantUnion()) - error(loc, "argument must be compile-time constant", "texel offset", ""); - else { - const TType& type = callNode.getSequence()[arg]->getAsTyped()->getType(); - for (int c = 0; c < type.getVectorSize(); ++c) { - int offset = callNode.getSequence()[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]"); - } - } - } - } - } - } - - // GL_ARB_shader_texture_image_samples - if (fnCandidate.getName().compare(0, 14, "textureSamples") == 0 || fnCandidate.getName().compare(0, 12, "imageSamples") == 0) - profileRequires(loc, ~EEsProfile, 450, E_GL_ARB_shader_texture_image_samples, "textureSamples and imageSamples"); - - if (fnCandidate.getName().compare(0, 11, "imageAtomic") == 0) { - const TType& imageType = callNode.getSequence()[0]->getAsTyped()->getType(); - if (imageType.getSampler().type == EbtInt || imageType.getSampler().type == EbtUint) { - if (imageType.getQualifier().getFormat() != ElfR32i && imageType.getQualifier().getFormat() != 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) - error(loc, "only supported on integer images", fnCandidate.getName().c_str(), ""); - else if (imageType.getQualifier().getFormat() != ElfR32f && isEsProfile()) - error(loc, "only supported on image with format r32f", fnCandidate.getName().c_str(), ""); - } - } -} - -#endif - -// -// Do any extra checking for a user function call. -// -void TParseContext::userFunctionCallCheck(const TSourceLoc& loc, TIntermAggregate& callNode) -{ - TIntermSequence& arguments = callNode.getSequence(); - - for (int i = 0; i < (int)arguments.size(); ++i) - samplerConstructorLocationCheck(loc, "call argument", arguments[i]); -} - -// -// Emit an error if this is a sampler constructor -// -void TParseContext::samplerConstructorLocationCheck(const TSourceLoc& loc, const char* token, TIntermNode* node) -{ - if (node->getAsOperator() && node->getAsOperator()->getOp() == EOpConstructTextureSampler) - error(loc, "sampler constructor must appear at point of use", token, ""); -} - -// -// Handle seeing a built-in constructor in a grammar production. -// -TFunction* TParseContext::handleConstructorCall(const TSourceLoc& loc, const TPublicType& publicType) -{ - TType type(publicType); - type.getQualifier().precision = EpqNone; - - if (type.isArray()) { - profileRequires(loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed constructor"); - profileRequires(loc, EEsProfile, 300, nullptr, "arrayed constructor"); - } - - TOperator op = intermediate.mapTypeToConstructorOp(type); - - if (op == EOpNull) { - if (intermediate.getEnhancedMsgs() && type.getBasicType() == EbtSampler) - error(loc, "function not supported in this version; use texture() instead", "texture*D*", ""); - else - error(loc, "cannot construct this type", type.getBasicString(), ""); - op = EOpConstructFloat; - TType errorType(EbtFloat); - type.shallowCopy(errorType); - } - - TString empty(""); - - return new TFunction(&empty, type, op); -} - -// Handle seeing a precision qualifier in the grammar. -void TParseContext::handlePrecisionQualifier(const TSourceLoc& /*loc*/, TQualifier& qualifier, TPrecisionQualifier precision) -{ - if (obeyPrecisionQualifiers()) - qualifier.precision = precision; -} - -// Check for messages to give on seeing a precision qualifier used in a -// declaration in the grammar. -void TParseContext::checkPrecisionQualifier(const TSourceLoc& loc, TPrecisionQualifier) -{ - if (precisionManager.shouldWarnAboutDefaults()) { - warn(loc, "all default precisions are highp; use precision statements to quiet warning, e.g.:\n" - " \"precision mediump int; precision highp float;\"", "", ""); - precisionManager.defaultWarningGiven(); - } -} - -// -// Same error message for all places assignments don't work. -// -void TParseContext::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 TParseContext::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 TParseContext::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 TParseContext::variableCheck(TIntermTyped*& nodePtr) -{ - TIntermSymbol* symbol = nodePtr->getAsSymbolNode(); - if (! symbol) - return; - - if (symbol->getType().getBasicType() == EbtVoid) { - const char *extraInfoFormat = ""; - if (spvVersion.vulkan != 0 && symbol->getName() == "gl_VertexID") { - extraInfoFormat = "(Did you mean gl_VertexIndex?)"; - } else if (spvVersion.vulkan != 0 && symbol->getName() == "gl_InstanceID") { - extraInfoFormat = "(Did you mean gl_InstanceIndex?)"; - } - error(symbol->getLoc(), "undeclared identifier", symbol->getName().c_str(), extraInfoFormat); - - // Add to symbol table to prevent future error messages on the same name - if (symbol->getName().size() > 0) { - 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()); - } - } else { - switch (symbol->getQualifier().storage) { - case EvqPointCoord: - profileRequires(symbol->getLoc(), ENoProfile, 120, nullptr, "gl_PointCoord"); - break; - default: break; // some compilers want this - } - } -} - -// -// 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 TParseContext::lValueErrorCheck(const TSourceLoc& loc, const char* op, TIntermTyped* node) -{ - TIntermBinary* binaryNode = node->getAsBinaryNode(); - - if (binaryNode) { - bool errorReturn = false; - - switch(binaryNode->getOp()) { -#ifndef GLSLANG_WEB - case EOpIndexDirect: - case EOpIndexIndirect: - // ... tessellation control shader ... - // If a per-vertex output variable is used as an l-value, it is a - // compile-time or link-time error if the expression indicating the - // vertex index is not the identifier gl_InvocationID. - if (language == EShLangTessControl) { - const TType& leftType = binaryNode->getLeft()->getType(); - if (leftType.getQualifier().storage == EvqVaryingOut && ! leftType.getQualifier().patch && binaryNode->getLeft()->getAsSymbolNode()) { - // we have a per-vertex output - const TIntermSymbol* rightSymbol = binaryNode->getRight()->getAsSymbolNode(); - if (! rightSymbol || rightSymbol->getQualifier().builtIn != EbvInvocationId) - error(loc, "tessellation-control per-vertex output l-value must be indexed with gl_InvocationID", "[]", ""); - } - } - break; // left node is checked by base class -#endif - case EOpVectorSwizzle: - errorReturn = lValueErrorCheck(loc, op, binaryNode->getLeft()); - if (!errorReturn) { - int offset[4] = {0,0,0,0}; - - TIntermTyped* rightNode = binaryNode->getRight(); - TIntermAggregate *aggrNode = rightNode->getAsAggregate(); - - for (TIntermSequence::iterator p = aggrNode->getSequence().begin(); - p != aggrNode->getSequence().end(); p++) { - int value = (*p)->getAsTyped()->getAsConstantUnion()->getConstArray()[0].getIConst(); - offset[value]++; - if (offset[value] > 1) { - error(loc, " l-value of swizzle cannot have duplicate components", op, "", ""); - - return true; - } - } - } - - return errorReturn; - default: - break; - } - - if (errorReturn) { - error(loc, " l-value required", op, "", ""); - return true; - } - } - - if (binaryNode && binaryNode->getOp() == EOpIndexDirectStruct && binaryNode->getLeft()->isReference()) - return false; - - // Let the base class check errors - if (TParseContextBase::lValueErrorCheck(loc, op, node)) - return true; - - const char* symbol = nullptr; - TIntermSymbol* symNode = node->getAsSymbolNode(); - if (symNode != nullptr) - symbol = symNode->getName().c_str(); - - const char* message = nullptr; - switch (node->getQualifier().storage) { - case EvqVaryingIn: message = "can't modify shader input"; break; - case EvqInstanceId: message = "can't modify gl_InstanceID"; break; - case EvqVertexId: message = "can't modify gl_VertexID"; break; - case EvqFace: message = "can't modify gl_FrontFace"; break; - case EvqFragCoord: message = "can't modify gl_FragCoord"; break; - case EvqPointCoord: message = "can't modify gl_PointCoord"; break; - case EvqFragDepth: - intermediate.setDepthReplacing(); - // "In addition, it is an error to statically write to gl_FragDepth in the fragment shader." - if (isEsProfile() && intermediate.getEarlyFragmentTests()) - message = "can't modify gl_FragDepth if using early_fragment_tests"; - break; - - default: - break; - } - - if (message == nullptr && binaryNode == nullptr && symNode == nullptr) { - error(loc, " l-value required", op, "", ""); - - return true; - } - - // - // Everything else is okay, no error. - // - if (message == nullptr) - return false; - - // - // If we get here, we have an error and a message. - // - if (symNode) - error(loc, " l-value required", op, "\"%s\" (%s)", symbol, message); - else - error(loc, " l-value required", op, "(%s)", message); - - return true; -} - -// Test for and give an error if the node can't be read from. -void TParseContext::rValueErrorCheck(const TSourceLoc& loc, const char* op, TIntermTyped* node) -{ - // Let the base class check errors - TParseContextBase::rValueErrorCheck(loc, op, node); - - TIntermSymbol* symNode = node->getAsSymbolNode(); - if (!(symNode && symNode->getQualifier().isWriteOnly())) // base class checks - if (symNode && symNode->getQualifier().isExplicitInterpolation()) - error(loc, "can't read from explicitly-interpolated object: ", op, symNode->getName().c_str()); - - // local_size_{xyz} must be assigned or specialized before gl_WorkGroupSize can be assigned. - if(node->getQualifier().builtIn == EbvWorkGroupSize && - !(intermediate.isLocalSizeSet() || intermediate.isLocalSizeSpecialized())) - error(loc, "can't read from gl_WorkGroupSize before a fixed workgroup size has been declared", op, ""); -} - -// -// Both test, and if necessary spit out an error, to see if the node is really -// a constant. -// -void TParseContext::constantValueCheck(TIntermTyped* node, const char* token) -{ - if (! node->getQualifier().isConstant()) - error(node->getLoc(), "constant expression required", token, ""); -} - -// -// Both test, and if necessary spit out an error, to see if the node is really -// a 32-bit integer or can implicitly convert to one. -// -void TParseContext::integerCheck(const TIntermTyped* node, const char* token) -{ - auto from_type = node->getBasicType(); - if ((from_type == EbtInt || from_type == EbtUint || - intermediate.canImplicitlyPromote(from_type, EbtInt, EOpNull) || - intermediate.canImplicitlyPromote(from_type, EbtUint, EOpNull)) && 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 TParseContext::globalCheck(const TSourceLoc& loc, const char* token) -{ - if (! symbolTable.atGlobalLevel()) - error(loc, "not allowed in nested scope", token, ""); -} - -// -// Reserved errors for GLSL. -// -void TParseContext::reservedErrorCheck(const TSourceLoc& loc, const TString& identifier) -{ - // "Identifiers starting with "gl_" are reserved for use by OpenGL, and may not be - // declared in a shader; this results in a compile-time error." - if (! symbolTable.atBuiltInLevel()) { - if (builtInName(identifier) && !extensionTurnedOn(E_GL_EXT_spirv_intrinsics)) - // The extension GL_EXT_spirv_intrinsics allows us to declare identifiers starting with "gl_". - error(loc, "identifiers starting with \"gl_\" are reserved", identifier.c_str(), ""); - - // "__" are not supposed to be an error. ES 300 (and desktop) added the clarification: - // "In addition, all identifiers containing two consecutive underscores (__) are - // reserved; using such a name does not itself result in an error, but may result - // in undefined behavior." - // however, before that, ES tests required an error. - if (identifier.find("__") != TString::npos && !extensionTurnedOn(E_GL_EXT_spirv_intrinsics)) { - // The extension GL_EXT_spirv_intrinsics allows us to declare identifiers starting with "__". - if (isEsProfile() && version < 300) - error(loc, "identifiers containing consecutive underscores (\"__\") are reserved, and an error if version < 300", identifier.c_str(), ""); - else - warn(loc, "identifiers containing consecutive underscores (\"__\") are reserved", identifier.c_str(), ""); - } - } -} - -// -// Reserved errors for the preprocessor. -// -void TParseContext::reservedPpErrorCheck(const TSourceLoc& loc, const char* identifier, const char* op) -{ - // "__" are not supposed to be an error. ES 300 (and desktop) added the clarification: - // "All macro names containing two consecutive underscores ( __ ) are reserved; - // defining such a name does not itself result in an error, but may result in - // undefined behavior. All macro names prefixed with "GL_" ("GL" followed by a - // single underscore) are also reserved, and defining such a name results in a - // compile-time error." - // however, before that, ES tests required an error. - if (strncmp(identifier, "GL_", 3) == 0 && !extensionTurnedOn(E_GL_EXT_spirv_intrinsics)) - // The extension GL_EXT_spirv_intrinsics allows us to declare macros prefixed with "GL_". - ppError(loc, "names beginning with \"GL_\" can't be (un)defined:", op, identifier); - else if (strncmp(identifier, "defined", 8) == 0) - if (relaxedErrors()) - ppWarn(loc, "\"defined\" is (un)defined:", op, identifier); - else - ppError(loc, "\"defined\" can't be (un)defined:", op, identifier); - else if (strstr(identifier, "__") != 0 && !extensionTurnedOn(E_GL_EXT_spirv_intrinsics)) { - // The extension GL_EXT_spirv_intrinsics allows us to declare macros prefixed with "__". - if (isEsProfile() && version >= 300 && - (strcmp(identifier, "__LINE__") == 0 || - strcmp(identifier, "__FILE__") == 0 || - strcmp(identifier, "__VERSION__") == 0)) - ppError(loc, "predefined names can't be (un)defined:", op, identifier); - else { - if (isEsProfile() && version < 300 && !relaxedErrors()) - ppError(loc, "names containing consecutive underscores are reserved, and an error if version < 300:", op, identifier); - else - ppWarn(loc, "names containing consecutive underscores are reserved:", op, identifier); - } - } -} - -// -// See if this version/profile allows use of the line-continuation character '\'. -// -// Returns true if a line continuation should be done. -// -bool TParseContext::lineContinuationCheck(const TSourceLoc& loc, bool endOfComment) -{ -#ifdef GLSLANG_WEB - return true; -#endif - - const char* message = "line continuation"; - - bool lineContinuationAllowed = (isEsProfile() && version >= 300) || - (!isEsProfile() && (version >= 420 || extensionTurnedOn(E_GL_ARB_shading_language_420pack))); - - if (endOfComment) { - if (lineContinuationAllowed) - warn(loc, "used at end of comment; the following line is still part of the comment", message, ""); - else - warn(loc, "used at end of comment, but this version does not provide line continuation", message, ""); - - return lineContinuationAllowed; - } - - if (relaxedErrors()) { - if (! lineContinuationAllowed) - warn(loc, "not allowed in this version", message, ""); - return true; - } else { - profileRequires(loc, EEsProfile, 300, nullptr, message); - profileRequires(loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, message); - } - - return lineContinuationAllowed; -} - -bool TParseContext::builtInName(const TString& identifier) -{ - return identifier.compare(0, 3, "gl_") == 0; -} - -// -// 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. -// -// Part of establishing type is establishing specialization-constness. -// We don't yet know "top down" whether type is a specialization constant, -// but a const constructor can becomes a specialization constant if any of -// its children are, subject to KHR_vulkan_glsl rules: -// -// - int(), uint(), and bool() constructors for type conversions -// from any of the following types to any of the following types: -// * int -// * uint -// * bool -// - vector versions of the above conversion constructors -// -// Returns true if there was an error in construction. -// -bool TParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node, TFunction& function, TOperator op, TType& type) -{ - // See if the constructor does not establish the main type, only requalifies - // it, in which case the type comes from the argument instead of from the - // constructor function. - switch (op) { -#ifndef GLSLANG_WEB - case EOpConstructNonuniform: - if (node != nullptr && node->getAsTyped() != nullptr) { - type.shallowCopy(node->getAsTyped()->getType()); - type.getQualifier().makeTemporary(); - type.getQualifier().nonUniform = true; - } - break; -#endif - default: - type.shallowCopy(function.getType()); - break; - } - - TString constructorString; - if (intermediate.getEnhancedMsgs()) - constructorString.append(type.getCompleteString(true, false, false, true)).append(" constructor"); - else - constructorString.append("constructor"); - - // See if it's a matrix - 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: -#ifndef GLSLANG_WEB - case EOpConstructDMat2x2: - case EOpConstructDMat2x3: - case EOpConstructDMat2x4: - case EOpConstructDMat3x2: - case EOpConstructDMat3x3: - case EOpConstructDMat3x4: - case EOpConstructDMat4x2: - case EOpConstructDMat4x3: - case EOpConstructDMat4x4: - case EOpConstructF16Mat2x2: - case EOpConstructF16Mat2x3: - case EOpConstructF16Mat2x4: - case EOpConstructF16Mat3x2: - case EOpConstructF16Mat3x3: - case EOpConstructF16Mat3x4: - case EOpConstructF16Mat4x2: - case EOpConstructF16Mat4x3: - case EOpConstructF16Mat4x4: -#endif - constructingMatrix = true; - break; - default: - break; - } - - // - // Walk the arguments for first-pass checks and collection of information. - // - - int size = 0; - bool constType = true; - bool specConstType = false; // value is only valid if constType is true - bool full = false; - bool overFull = false; - bool matrixInMatrix = false; - bool arrayArg = false; - bool floatArgument = false; - bool intArgument = 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", constructorString.c_str(), ""); - 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().isConstant()) - constType = false; - if (function[arg].type->getQualifier().isSpecConstant()) - specConstType = true; - if (function[arg].type->isFloatingDomain()) - floatArgument = true; - if (function[arg].type->isIntegerDomain()) - intArgument = true; - if (type.isStruct()) { - if (function[arg].type->contains16BitFloat()) { - requireFloat16Arithmetic(loc, constructorString.c_str(), "can't construct structure containing 16-bit type"); - } - if (function[arg].type->contains16BitInt()) { - requireInt16Arithmetic(loc, constructorString.c_str(), "can't construct structure containing 16-bit type"); - } - if (function[arg].type->contains8BitInt()) { - requireInt8Arithmetic(loc, constructorString.c_str(), "can't construct structure containing 8-bit type"); - } - } - } - if (op == EOpConstructNonuniform) - constType = false; - -#ifndef GLSLANG_WEB - switch (op) { - case EOpConstructFloat16: - case EOpConstructF16Vec2: - case EOpConstructF16Vec3: - case EOpConstructF16Vec4: - if (type.isArray()) - requireFloat16Arithmetic(loc, constructorString.c_str(), "16-bit arrays not supported"); - if (type.isVector() && function.getParamCount() != 1) - requireFloat16Arithmetic(loc, constructorString.c_str(), "16-bit vectors only take vector types"); - break; - case EOpConstructUint16: - case EOpConstructU16Vec2: - case EOpConstructU16Vec3: - case EOpConstructU16Vec4: - case EOpConstructInt16: - case EOpConstructI16Vec2: - case EOpConstructI16Vec3: - case EOpConstructI16Vec4: - if (type.isArray()) - requireInt16Arithmetic(loc, constructorString.c_str(), "16-bit arrays not supported"); - if (type.isVector() && function.getParamCount() != 1) - requireInt16Arithmetic(loc, constructorString.c_str(), "16-bit vectors only take vector types"); - break; - case EOpConstructUint8: - case EOpConstructU8Vec2: - case EOpConstructU8Vec3: - case EOpConstructU8Vec4: - case EOpConstructInt8: - case EOpConstructI8Vec2: - case EOpConstructI8Vec3: - case EOpConstructI8Vec4: - if (type.isArray()) - requireInt8Arithmetic(loc, constructorString.c_str(), "8-bit arrays not supported"); - if (type.isVector() && function.getParamCount() != 1) - requireInt8Arithmetic(loc, constructorString.c_str(), "8-bit vectors only take vector types"); - break; - default: - break; - } -#endif - - // inherit constness from children - if (constType) { - bool makeSpecConst; - // Finish pinning down spec-const semantics - if (specConstType) { - switch (op) { - case EOpConstructInt8: - case EOpConstructInt: - case EOpConstructUint: - case EOpConstructBool: - case EOpConstructBVec2: - case EOpConstructBVec3: - case EOpConstructBVec4: - case EOpConstructIVec2: - case EOpConstructIVec3: - case EOpConstructIVec4: - case EOpConstructUVec2: - case EOpConstructUVec3: - case EOpConstructUVec4: -#ifndef GLSLANG_WEB - case EOpConstructUint8: - case EOpConstructInt16: - case EOpConstructUint16: - case EOpConstructInt64: - case EOpConstructUint64: - 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 EOpConstructI64Vec2: - case EOpConstructI64Vec3: - case EOpConstructI64Vec4: - case EOpConstructU64Vec2: - case EOpConstructU64Vec3: - case EOpConstructU64Vec4: -#endif - // This was the list of valid ones, if they aren't converting from float - // and aren't making an array. - makeSpecConst = ! floatArgument && ! type.isArray(); - break; - - case EOpConstructVec2: - case EOpConstructVec3: - case EOpConstructVec4: - // This was the list of valid ones, if they aren't converting from int - // and aren't making an array. - makeSpecConst = ! intArgument && !type.isArray(); - break; - - default: - // anything else wasn't white-listed in the spec as a conversion - makeSpecConst = false; - break; - } - } else - makeSpecConst = false; - - if (makeSpecConst) - type.getQualifier().makeSpecConstant(); - else if (specConstType) - type.getQualifier().makeTemporary(); - else - type.getQualifier().storage = EvqConst; - } - - if (type.isArray()) { - if (function.getParamCount() == 0) { - error(loc, "array constructor must have at least one argument", constructorString.c_str(), ""); - 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()) { - error(loc, "array constructor needs one argument per array element", constructorString.c_str(), ""); - 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", constructorString.c_str(), ""); - 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)); - } - } - } - } - } - - if (arrayArg && op != EOpConstructStruct && ! type.isArrayOfArrays()) { - error(loc, "constructing non-array constituent from array argument", constructorString.c_str(), ""); - return true; - } - - if (matrixInMatrix && ! type.isArray()) { - profileRequires(loc, ENoProfile, 120, nullptr, "constructing matrix from matrix"); - - // "If a matrix argument is given to a matrix constructor, - // it is a compile-time error to have any other arguments." - if (function.getParamCount() != 1) - error(loc, "matrix constructed from matrix can only have one argument", constructorString.c_str(), ""); - return false; - } - - if (overFull) { - error(loc, "too many arguments", constructorString.c_str(), ""); - return true; - } - - 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", constructorString.c_str(), ""); - return true; - } - - if ((op != EOpConstructStruct && size != 1 && size < type.computeNumComponents()) || - (op == EOpConstructStruct && size < type.computeNumComponents())) { - error(loc, "not enough data provided for construction", constructorString.c_str(), ""); - return true; - } - - if (type.isCoopMat() && function.getParamCount() != 1) { - error(loc, "wrong number of arguments", constructorString.c_str(), ""); - return true; - } - if (type.isCoopMat() && - !(function[0].type->isScalar() || function[0].type->isCoopMat())) { - error(loc, "Cooperative matrix constructor argument must be scalar or cooperative matrix", constructorString.c_str(), ""); - return true; - } - - TIntermTyped* typed = node->getAsTyped(); - if (typed == nullptr) { - error(loc, "constructor argument does not have a type", constructorString.c_str(), ""); - return true; - } - if (op != EOpConstructStruct && op != EOpConstructNonuniform && typed->getBasicType() == EbtSampler) { - error(loc, "cannot convert a sampler", constructorString.c_str(), ""); - return true; - } - if (op != EOpConstructStruct && typed->isAtomic()) { - error(loc, "cannot convert an atomic_uint", constructorString.c_str(), ""); - return true; - } - if (typed->getBasicType() == EbtVoid) { - error(loc, "cannot convert a void", constructorString.c_str(), ""); - return true; - } - - return false; -} - -// Verify all the correct semantics for constructing a combined texture/sampler. -// Return true if the semantics are incorrect. -bool TParseContext::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 *texture* 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.setCombined(false); - texture.shadow = false; - if (texture != function[0].type->getSampler()) { - error(loc, "sampler-constructor first argument must be a *texture* type" - " matching the dimensionality and sampled type of the constructor", token, ""); - return true; - } - - // second argument - // * the constructor's second argument must be a scalar of type - // *sampler* or *samplerShadow* - 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 sampler or samplerShadow", 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 TParseContext::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 TParseContext::boolCheck(const TSourceLoc& loc, const TIntermTyped* type) -{ - if (type->getBasicType() != EbtBool || type->isArray() || type->isMatrix() || type->isVector()) - error(loc, "boolean expression expected", "", ""); -} - -// This function checks to see if the node (for the expression) contains a scalar boolean expression or not -void TParseContext::boolCheck(const TSourceLoc& loc, const TPublicType& pType) -{ - if (pType.basicType != EbtBool || pType.arraySizes || pType.matrixCols > 1 || (pType.vectorSize > 1)) - error(loc, "boolean expression expected", "", ""); -} - -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().isExternal()) { - 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.getSampler().isYuv()) { - requireExtensions(loc, 1, &E_GL_EXT_YUV_target, "__samplerExternal2DY2YEXT"); - } - - if (type.getQualifier().storage == EvqUniform) - return; - - if (type.getBasicType() == EbtStruct && containsFieldWithBasicType(type, EbtSampler)) - error(loc, "non-uniform struct contains a sampler or image:", type.getBasicTypeString().c_str(), identifier.c_str()); - else if (type.getBasicType() == EbtSampler && type.getQualifier().storage != EvqUniform) { - // non-uniform sampler - // not yet: okay if it has an initializer - // if (! initializer) - error(loc, "sampler/image types can only be used in uniform variables or function parameters:", type.getBasicTypeString().c_str(), identifier.c_str()); - } -} - -#ifndef GLSLANG_WEB - -void TParseContext::atomicUintCheck(const TSourceLoc& loc, const TType& type, const TString& identifier) -{ - if (type.getQualifier().storage == EvqUniform) - return; - - if (type.getBasicType() == EbtStruct && containsFieldWithBasicType(type, EbtAtomicUint)) - error(loc, "non-uniform struct contains an atomic_uint:", type.getBasicTypeString().c_str(), identifier.c_str()); - else if (type.getBasicType() == EbtAtomicUint && type.getQualifier().storage != EvqUniform) - error(loc, "atomic_uints can only be used in uniform variables or function parameters:", type.getBasicTypeString().c_str(), identifier.c_str()); -} - -void TParseContext::accStructCheck(const TSourceLoc& loc, const TType& type, const TString& identifier) -{ - if (type.getQualifier().storage == EvqUniform) - return; - - if (type.getBasicType() == EbtStruct && containsFieldWithBasicType(type, EbtAccStruct)) - error(loc, "non-uniform struct contains an accelerationStructureNV:", type.getBasicTypeString().c_str(), identifier.c_str()); - else if (type.getBasicType() == EbtAccStruct && type.getQualifier().storage != EvqUniform) - error(loc, "accelerationStructureNV can only be used in uniform variables or function parameters:", - type.getBasicTypeString().c_str(), identifier.c_str()); - -} - -#endif // GLSLANG_WEB - -void TParseContext::transparentOpaqueCheck(const TSourceLoc& loc, const TType& type, const TString& identifier) -{ - if (parsingBuiltins) - return; - - if (type.getQualifier().storage != EvqUniform) - return; - - if (type.containsNonOpaque()) { - // Vulkan doesn't allow transparent uniforms outside of blocks - if (spvVersion.vulkan > 0 && !spvVersion.vulkanRelaxed) - 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, true); - checkNoShaderLayouts(publicType.loc, publicType.shaderQualifiers); - if (publicType.qualifier.isNonUniform()) { - error(publicType.loc, "not allowed on block or structure members", "nonuniformEXT", ""); - publicType.qualifier.nonUniform = false; - } -} - -// -// Check/fix just a full qualifier (no variables or types yet, but qualifier is complete) at global level. -// -void TParseContext::globalQualifierFixCheck(const TSourceLoc& loc, TQualifier& qualifier, bool isMemberCheck) -{ - 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"); - profileRequires(loc, EEsProfile, 300, nullptr, "out for stage outputs"); - qualifier.storage = EvqVaryingOut; - if (intermediate.isInvariantAll()) - qualifier.invariant = true; - break; - case EvqInOut: - qualifier.storage = EvqVaryingIn; - error(loc, "cannot use 'inout' at global scope", "", ""); - break; - case EvqGlobal: - case EvqTemporary: - nonuniformOkay = true; - break; - case EvqUniform: - // According to GLSL spec: The std430 qualifier is supported only for shader storage blocks; a shader using - // the std430 qualifier on a uniform block will fail to compile. - // Only check the global declaration: layout(std430) uniform; - if (blockName == nullptr && - qualifier.layoutPacking == ElpStd430) - { - requireExtensions(loc, 1, &E_GL_EXT_scalar_block_layout, "default std430 layout for uniform"); - } - break; - default: - break; - } - - if (!nonuniformOkay && qualifier.isNonUniform()) - error(loc, "for non-parameter, can only apply to 'in' or no storage qualifier", "nonuniformEXT", ""); - -#ifndef GLSLANG_WEB - if (qualifier.isSpirvByReference()) - error(loc, "can only apply to parameter", "spirv_by_reference", ""); - - if (qualifier.isSpirvLiteral()) - error(loc, "can only apply to parameter", "spirv_literal", ""); -#endif - - // Storage qualifier isn't ready for memberQualifierCheck, we should skip invariantCheck for it. - if (!isMemberCheck || structNestingLevel > 0) - invariantCheck(loc, qualifier); -} - -// -// Check a full qualifier and type (no variable yet) at global level. -// -void TParseContext::globalQualifierTypeCheck(const TSourceLoc& loc, const TQualifier& qualifier, const TPublicType& publicType) -{ - if (! symbolTable.atGlobalLevel()) - return; - - if (!(publicType.userDef && publicType.userDef->isReference()) && !parsingBuiltins) { - if (qualifier.isMemoryQualifierImageAndSSBOOnly() && ! publicType.isImage() && publicType.qualifier.storage != EvqBuffer) { - error(loc, "memory qualifiers cannot be used on this type", "", ""); - } else if (qualifier.isMemory() && (publicType.basicType != EbtSampler) && !publicType.qualifier.isUniformOrBuffer()) { - error(loc, "memory qualifiers cannot be used on this type", "", ""); - } - } - - if (qualifier.storage == EvqBuffer && - publicType.basicType != EbtBlock && - !qualifier.hasBufferReference()) - error(loc, "buffers can be declared only as blocks", "buffer", ""); - - if (qualifier.storage != EvqVaryingIn && publicType.basicType == EbtDouble && - extensionTurnedOn(E_GL_ARB_vertex_attrib_64bit) && language == EShLangVertex && - version < 400) { - profileRequires(loc, ECoreProfile | ECompatibilityProfile, 410, E_GL_ARB_gpu_shader_fp64, "vertex-shader `double` type"); - } - if (qualifier.storage != EvqVaryingIn && qualifier.storage != EvqVaryingOut) - return; - - if (publicType.shaderQualifiers.hasBlendEquation()) - error(loc, "can only be applied to a standalone 'out'", "blend equation", ""); - - // now, knowing it is a shader in/out, do all the in/out semantic checks - - if (publicType.basicType == EbtBool && !parsingBuiltins) { - error(loc, "cannot be bool", GetStorageQualifierString(qualifier.storage), ""); - return; - } - - if (isTypeInt(publicType.basicType) || publicType.basicType == EbtDouble) - profileRequires(loc, EEsProfile, 300, nullptr, "shader input/output"); - - if (!qualifier.flat && !qualifier.isExplicitInterpolation() && !qualifier.isPervertexNV()) { - if (isTypeInt(publicType.basicType) || - publicType.basicType == EbtDouble || - (publicType.userDef && ( publicType.userDef->containsBasicType(EbtInt) - || publicType.userDef->containsBasicType(EbtUint) - || publicType.userDef->contains16BitInt() - || publicType.userDef->contains8BitInt() - || publicType.userDef->contains64BitInt() - || publicType.userDef->containsDouble()))) { - if (qualifier.storage == EvqVaryingIn && language == EShLangFragment) - error(loc, "must be qualified as flat", TType::getBasicString(publicType.basicType), GetStorageQualifierString(qualifier.storage)); - else if (qualifier.storage == EvqVaryingOut && language == EShLangVertex && version == 300) - error(loc, "must be qualified as flat", TType::getBasicString(publicType.basicType), GetStorageQualifierString(qualifier.storage)); - } - } - - if (qualifier.isPatch() && qualifier.isInterpolation()) - error(loc, "cannot use interpolation qualifiers with patch", "patch", ""); - - if (qualifier.isTaskMemory() && publicType.basicType != EbtBlock) - error(loc, "taskNV variables can be declared only as blocks", "taskNV", ""); - - if (qualifier.storage == EvqVaryingIn) { - switch (language) { - case EShLangVertex: - if (publicType.basicType == EbtStruct) { - error(loc, "cannot be a structure or array", GetStorageQualifierString(qualifier.storage), ""); - return; - } - if (publicType.arraySizes) { - requireProfile(loc, ~EEsProfile, "vertex input arrays"); - profileRequires(loc, ENoProfile, 150, nullptr, "vertex input arrays"); - } - if (publicType.basicType == EbtDouble) - profileRequires(loc, ~EEsProfile, 410, E_GL_ARB_vertex_attrib_64bit, "vertex-shader `double` type input"); - if (qualifier.isAuxiliary() || qualifier.isInterpolation() || qualifier.isMemory() || qualifier.invariant) - error(loc, "vertex input cannot be further qualified", "", ""); - break; - case EShLangFragment: - if (publicType.userDef) { - profileRequires(loc, EEsProfile, 300, nullptr, "fragment-shader struct input"); - profileRequires(loc, ~EEsProfile, 150, nullptr, "fragment-shader struct input"); - if (publicType.userDef->containsStructure()) - requireProfile(loc, ~EEsProfile, "fragment-shader struct input containing structure"); - if (publicType.userDef->containsArray()) - requireProfile(loc, ~EEsProfile, "fragment-shader struct input containing an array"); - } - break; - case EShLangCompute: - if (! symbolTable.atBuiltInLevel()) - error(loc, "global storage input qualifier cannot be used in a compute shader", "in", ""); - break; -#ifndef GLSLANG_WEB - case EShLangTessControl: - if (qualifier.patch) - error(loc, "can only use on output in tessellation-control shader", "patch", ""); - break; -#endif - default: - break; - } - } else { - // qualifier.storage == EvqVaryingOut - switch (language) { - case EShLangVertex: - if (publicType.userDef) { - profileRequires(loc, EEsProfile, 300, nullptr, "vertex-shader struct output"); - profileRequires(loc, ~EEsProfile, 150, nullptr, "vertex-shader struct output"); - if (publicType.userDef->containsStructure()) - requireProfile(loc, ~EEsProfile, "vertex-shader struct output containing structure"); - if (publicType.userDef->containsArray()) - requireProfile(loc, ~EEsProfile, "vertex-shader struct output containing an array"); - } - - break; - case EShLangFragment: - profileRequires(loc, EEsProfile, 300, nullptr, "fragment shader output"); - if (publicType.basicType == EbtStruct) { - error(loc, "cannot be a structure", GetStorageQualifierString(qualifier.storage), ""); - return; - } - if (publicType.matrixRows > 0) { - error(loc, "cannot be a matrix", GetStorageQualifierString(qualifier.storage), ""); - return; - } - if (qualifier.isAuxiliary()) - 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), ""); - break; - - case EShLangCompute: - error(loc, "global storage output qualifier cannot be used in a compute shader", "out", ""); - break; -#ifndef GLSLANG_WEB - case EShLangTessEvaluation: - if (qualifier.patch) - error(loc, "can only use on input in tessellation-evaluation shader", "patch", ""); - break; -#endif - 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 TParseContext::mergeQualifiers(const TSourceLoc& loc, TQualifier& dst, const TQualifier& src, bool force) -{ - // Multiple auxiliary qualifiers (mostly done later by 'individual qualifiers') - if (src.isAuxiliary() && dst.isAuxiliary()) - error(loc, "can only have one auxiliary qualifier (centroid, patch, and sample)", "", ""); - - // Multiple interpolation qualifiers (mostly done later by 'individual qualifiers') - if (src.isInterpolation() && dst.isInterpolation()) - error(loc, "can only have one interpolation qualifier (flat, smooth, noperspective, __explicitInterpAMD)", "", ""); - - // Ordering - if (! force && ((!isEsProfile() && version < 420) || - (isEsProfile() && version < 310)) - && ! extensionTurnedOn(E_GL_ARB_shading_language_420pack)) { - // non-function parameters - if (src.isNoContraction() && (dst.invariant || dst.isInterpolation() || dst.isAuxiliary() || dst.storage != EvqTemporary || dst.precision != EpqNone)) - error(loc, "precise qualifier must appear first", "", ""); - if (src.invariant && (dst.isInterpolation() || dst.isAuxiliary() || dst.storage != EvqTemporary || dst.precision != EpqNone)) - error(loc, "invariant qualifier must appear before interpolation, storage, and precision qualifiers ", "", ""); - else if (src.isInterpolation() && (dst.isAuxiliary() || dst.storage != EvqTemporary || dst.precision != EpqNone)) - error(loc, "interpolation qualifiers must appear before storage and precision qualifiers", "", ""); - else if (src.isAuxiliary() && (dst.storage != EvqTemporary || dst.precision != EpqNone)) - error(loc, "Auxiliary qualifiers (centroid, patch, and sample) must appear before storage and precision qualifiers", "", ""); - else if (src.storage != EvqTemporary && (dst.precision != EpqNone)) - error(loc, "precision qualifier must appear as last qualifier", "", ""); - - // function parameters - if (src.isNoContraction() && (dst.storage == EvqConst || dst.storage == EvqIn || dst.storage == EvqOut)) - error(loc, "precise qualifier must appear first", "", ""); - if (src.storage == EvqConst && (dst.storage == EvqIn || dst.storage == EvqOut)) - error(loc, "in/out must appear before const", "", ""); - } - - // 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; - else if (src.storage != EvqTemporary && - src.storage != EvqGlobal) - error(loc, "too many storage qualifiers", GetStorageQualifierString(src.storage), ""); - - // Precision qualifiers - if (! force && src.precision != EpqNone && dst.precision != EpqNone) - error(loc, "only one precision qualifier allowed", GetPrecisionQualifierString(src.precision), ""); - if (dst.precision == EpqNone || (force && src.precision != EpqNone)) - dst.precision = src.precision; - -#ifndef GLSLANG_WEB - if (!force && ((src.coherent && (dst.devicecoherent || dst.queuefamilycoherent || dst.workgroupcoherent || dst.subgroupcoherent || dst.shadercallcoherent)) || - (src.devicecoherent && (dst.coherent || dst.queuefamilycoherent || dst.workgroupcoherent || dst.subgroupcoherent || dst.shadercallcoherent)) || - (src.queuefamilycoherent && (dst.coherent || dst.devicecoherent || dst.workgroupcoherent || dst.subgroupcoherent || dst.shadercallcoherent)) || - (src.workgroupcoherent && (dst.coherent || dst.devicecoherent || dst.queuefamilycoherent || dst.subgroupcoherent || dst.shadercallcoherent)) || - (src.subgroupcoherent && (dst.coherent || dst.devicecoherent || dst.queuefamilycoherent || dst.workgroupcoherent || dst.shadercallcoherent)) || - (src.shadercallcoherent && (dst.coherent || dst.devicecoherent || dst.queuefamilycoherent || dst.workgroupcoherent || dst.subgroupcoherent)))) { - error(loc, "only one coherent/devicecoherent/queuefamilycoherent/workgroupcoherent/subgroupcoherent/shadercallcoherent qualifier allowed", - GetPrecisionQualifierString(src.precision), ""); - } -#endif - // 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(centroid); - MERGE_SINGLETON(smooth); - MERGE_SINGLETON(flat); - MERGE_SINGLETON(specConstant); -#ifndef GLSLANG_WEB - MERGE_SINGLETON(noContraction); - MERGE_SINGLETON(nopersp); - MERGE_SINGLETON(explicitInterp); - MERGE_SINGLETON(perPrimitiveNV); - MERGE_SINGLETON(perViewNV); - MERGE_SINGLETON(perTaskNV); - MERGE_SINGLETON(patch); - MERGE_SINGLETON(sample); - MERGE_SINGLETON(coherent); - MERGE_SINGLETON(devicecoherent); - MERGE_SINGLETON(queuefamilycoherent); - MERGE_SINGLETON(workgroupcoherent); - MERGE_SINGLETON(subgroupcoherent); - MERGE_SINGLETON(shadercallcoherent); - MERGE_SINGLETON(nonprivate); - MERGE_SINGLETON(volatil); - MERGE_SINGLETON(restrict); - MERGE_SINGLETON(readonly); - MERGE_SINGLETON(writeonly); - MERGE_SINGLETON(nonUniform); -#endif - -#ifndef GLSLANG_WEB - // SPIR-V storage class qualifier (GL_EXT_spirv_intrinsics) - dst.spirvStorageClass = src.spirvStorageClass; - - // SPIR-V decorate qualifiers (GL_EXT_spirv_intrinsics) - if (src.hasSprivDecorate()) { - if (dst.hasSprivDecorate()) { - const TSpirvDecorate& srcSpirvDecorate = src.getSpirvDecorate(); - TSpirvDecorate& dstSpirvDecorate = dst.getSpirvDecorate(); - for (auto& decorate : srcSpirvDecorate.decorates) { - if (dstSpirvDecorate.decorates.find(decorate.first) != dstSpirvDecorate.decorates.end()) - error(loc, "too many SPIR-V decorate qualifiers", "spirv_decorate", "(decoration=%u)", decorate.first); - else - dstSpirvDecorate.decorates.insert(decorate); - } - - for (auto& decorateId : srcSpirvDecorate.decorateIds) { - if (dstSpirvDecorate.decorateIds.find(decorateId.first) != dstSpirvDecorate.decorateIds.end()) - error(loc, "too many SPIR-V decorate qualifiers", "spirv_decorate_id", "(decoration=%u)", decorateId.first); - else - dstSpirvDecorate.decorateIds.insert(decorateId); - } - - for (auto& decorateString : srcSpirvDecorate.decorateStrings) { - if (dstSpirvDecorate.decorates.find(decorateString.first) != dstSpirvDecorate.decorates.end()) - error(loc, "too many SPIR-V decorate qualifiers", "spirv_decorate_string", "(decoration=%u)", decorateString.first); - else - dstSpirvDecorate.decorates.insert(decorateString); - } - } else { - dst.spirvDecorate = src.spirvDecorate; - } - } -#endif - - if (repeated) - error(loc, "replicated qualifiers", "", ""); -} - -void TParseContext::setDefaultPrecision(const TSourceLoc& loc, TPublicType& publicType, TPrecisionQualifier qualifier) -{ - TBasicType basicType = publicType.basicType; - - if (basicType == EbtSampler) { - defaultSamplerPrecision[computeSamplerTypeIndex(publicType.sampler)] = qualifier; - - return; // all is well - } - - if (basicType == EbtInt || basicType == EbtFloat) { - if (publicType.isScalar()) { - defaultPrecision[basicType] = qualifier; - if (basicType == EbtInt) { - defaultPrecision[EbtUint] = qualifier; - precisionManager.explicitIntDefaultSeen(); - } else - precisionManager.explicitFloatDefaultSeen(); - - return; // all is well - } - } - - if (basicType == EbtAtomicUint) { - if (qualifier != EpqHigh) - error(loc, "can only apply highp to atomic_uint", "precision", ""); - - return; - } - - error(loc, "cannot apply precision statement to this type; use 'float', 'int' or a sampler type", TType::getBasicString(basicType), ""); -} - -// used to flatten the sampler type space into a single dimension -// correlates with the declaration of defaultSamplerPrecision[] -int TParseContext::computeSamplerTypeIndex(TSampler& sampler) -{ - int arrayIndex = sampler.arrayed ? 1 : 0; - int shadowIndex = sampler.shadow ? 1 : 0; - int externalIndex = sampler.isExternal() ? 1 : 0; - int imageIndex = sampler.isImageClass() ? 1 : 0; - int msIndex = sampler.isMultiSample() ? 1 : 0; - - int flattened = EsdNumDims * (EbtNumTypes * (2 * (2 * (2 * (2 * arrayIndex + msIndex) + imageIndex) + shadowIndex) + - externalIndex) + sampler.type) + sampler.dim; - assert(flattened < maxSamplerIndex); - - return flattened; -} - -TPrecisionQualifier TParseContext::getDefaultPrecision(TPublicType& publicType) -{ - if (publicType.basicType == EbtSampler) - return defaultSamplerPrecision[computeSamplerTypeIndex(publicType.sampler)]; - else - return defaultPrecision[publicType.basicType]; -} - -void TParseContext::precisionQualifierCheck(const TSourceLoc& loc, TBasicType baseType, TQualifier& qualifier) -{ - // Built-in symbols are allowed some ambiguous precisions, to be pinned down - // later by context. - if (! obeyPrecisionQualifiers() || parsingBuiltins) - return; - -#ifndef GLSLANG_WEB - if (baseType == EbtAtomicUint && qualifier.precision != EpqNone && qualifier.precision != EpqHigh) - error(loc, "atomic counters can only be highp", "atomic_uint", ""); -#endif - - if (baseType == EbtFloat || baseType == EbtUint || baseType == EbtInt || baseType == EbtSampler || baseType == EbtAtomicUint) { - if (qualifier.precision == EpqNone) { - if (relaxedErrors()) - warn(loc, "type requires declaration of default precision qualifier", TType::getBasicString(baseType), "substituting 'mediump'"); - else - error(loc, "type requires declaration of default precision qualifier", TType::getBasicString(baseType), ""); - qualifier.precision = EpqMedium; - defaultPrecision[baseType] = EpqMedium; - } - } else if (qualifier.precision != EpqNone) - error(loc, "type cannot have precision qualifier", TType::getBasicString(baseType), ""); -} - -void TParseContext::parameterTypeCheck(const TSourceLoc& loc, TStorageQualifier qualifier, const TType& type) -{ - if ((qualifier == EvqOut || qualifier == EvqInOut) && type.isOpaque()) - error(loc, "samplers and atomic_uints cannot be output parameters", type.getBasicTypeString().c_str(), ""); - if (!parsingBuiltins && type.contains16BitFloat()) - requireFloat16Arithmetic(loc, type.getBasicTypeString().c_str(), "float16 types can only be in uniform block or buffer storage"); - if (!parsingBuiltins && type.contains16BitInt()) - requireInt16Arithmetic(loc, type.getBasicTypeString().c_str(), "(u)int16 types can only be in uniform block or buffer storage"); - if (!parsingBuiltins && type.contains8BitInt()) - requireInt8Arithmetic(loc, type.getBasicTypeString().c_str(), "(u)int8 types can only be in uniform block or buffer storage"); -} - -bool TParseContext::containsFieldWithBasicType(const TType& type, TBasicType basicType) -{ - if (type.getBasicType() == basicType) - return true; - - if (type.getBasicType() == EbtStruct) { - const TTypeList& structure = *type.getStruct(); - for (unsigned int i = 0; i < structure.size(); ++i) { - if (containsFieldWithBasicType(*structure[i].type, basicType)) - return true; - } - } - - return false; -} - -// -// Do size checking for an array type's size. -// -void TParseContext::arraySizeCheck(const TSourceLoc& loc, TIntermTyped* expr, TArraySize& sizePair, const char *sizeType) -{ - bool isConst = false; - sizePair.node = nullptr; - - int size = 1; - - TIntermConstantUnion* constant = expr->getAsConstantUnion(); - if (constant) { - // handle true (non-specialization) constant - 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) - size = symbol->getConstArray()[0].getIConst(); - } else if (expr->getAsUnaryNode() && - expr->getAsUnaryNode()->getOp() == glslang::EOpArrayLength && - expr->getAsUnaryNode()->getOperand()->getType().isCoopMat()) { - isConst = true; - size = 1; - sizePair.node = expr->getAsUnaryNode(); - } - } - - sizePair.size = size; - - if (! isConst || (expr->getBasicType() != EbtInt && expr->getBasicType() != EbtUint)) { - error(loc, sizeType, "", "must be a constant integer expression"); - return; - } - - if (size <= 0) { - error(loc, sizeType, "", "must be a positive integer"); - return; - } -} - -// -// See if this qualifier can be an array. -// -// Returns true if there is an error. -// -bool TParseContext::arrayQualifierError(const TSourceLoc& loc, const TQualifier& qualifier) -{ - if (qualifier.storage == EvqConst) { - profileRequires(loc, ENoProfile, 120, E_GL_3DL_array_objects, "const array"); - profileRequires(loc, EEsProfile, 300, nullptr, "const array"); - } - - if (qualifier.storage == EvqVaryingIn && language == EShLangVertex) { - requireProfile(loc, ~EEsProfile, "vertex input arrays"); - profileRequires(loc, ENoProfile, 150, nullptr, "vertex input arrays"); - } - - return false; -} - -// -// See if this qualifier and type combination can be an array. -// Assumes arrayQualifierError() was also called to catch the type-invariant tests. -// -// Returns true if there is an error. -// -bool TParseContext::arrayError(const TSourceLoc& loc, const TType& type) -{ - if (type.getQualifier().storage == EvqVaryingOut && language == EShLangVertex) { - if (type.isArrayOfArrays()) - requireProfile(loc, ~EEsProfile, "vertex-shader array-of-array output"); - else if (type.isStruct()) - requireProfile(loc, ~EEsProfile, "vertex-shader array-of-struct output"); - } - if (type.getQualifier().storage == EvqVaryingIn && language == EShLangFragment) { - if (type.isArrayOfArrays()) - requireProfile(loc, ~EEsProfile, "fragment-shader array-of-array input"); - else if (type.isStruct()) - requireProfile(loc, ~EEsProfile, "fragment-shader array-of-struct input"); - } - if (type.getQualifier().storage == EvqVaryingOut && language == EShLangFragment) { - if (type.isArrayOfArrays()) - requireProfile(loc, ~EEsProfile, "fragment-shader array-of-array output"); - } - - return false; -} - -// -// Require array to be completely sized -// -void TParseContext::arraySizeRequiredCheck(const TSourceLoc& loc, const TArraySizes& arraySizes) -{ - if (!parsingBuiltins && arraySizes.hasUnsized()) - error(loc, "array size required", "", ""); -} - -void TParseContext::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()); - } -} - -void TParseContext::arraySizesCheck(const TSourceLoc& loc, const TQualifier& qualifier, TArraySizes* arraySizes, - const TIntermTyped* initializer, bool lastMember) -{ - assert(arraySizes); - - // always allow special built-in ins/outs sized to topologies - 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", "[]", ""); - return; - } - - // 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() && - (qualifier.storage != EvqTemporary && qualifier.storage != EvqGlobal && qualifier.storage != EvqShared && qualifier.storage != EvqConst)) - error(loc, "only outermost dimension of an array of arrays can be a specialization constant", "[]", ""); - -#ifndef GLSLANG_WEB - - // desktop always allows outer-dimension-unsized variable arrays, - if (!isEsProfile()) - return; - - // for ES, if size isn't coming from an initializer, it has to be explicitly declared now, - // with very few exceptions - - // implicitly-sized io exceptions: - switch (language) { - case EShLangGeometry: - if (qualifier.storage == EvqVaryingIn) - if ((isEsProfile() && version >= 320) || - extensionsTurnedOn(Num_AEP_geometry_shader, AEP_geometry_shader)) - return; - break; - case EShLangTessControl: - if ( qualifier.storage == EvqVaryingIn || - (qualifier.storage == EvqVaryingOut && ! qualifier.isPatch())) - if ((isEsProfile() && version >= 320) || - extensionsTurnedOn(Num_AEP_tessellation_shader, AEP_tessellation_shader)) - return; - break; - case EShLangTessEvaluation: - if ((qualifier.storage == EvqVaryingIn && ! qualifier.isPatch()) || - qualifier.storage == EvqVaryingOut) - if ((isEsProfile() && version >= 320) || - extensionsTurnedOn(Num_AEP_tessellation_shader, AEP_tessellation_shader)) - return; - break; - case EShLangMeshNV: - if (qualifier.storage == EvqVaryingOut) - if ((isEsProfile() && version >= 320) || - extensionTurnedOn(E_GL_NV_mesh_shader)) - return; - break; - default: - break; - } - -#endif - - // last member of ssbo block exception: - if (qualifier.storage == EvqBuffer && lastMember) - return; - - arraySizeRequiredCheck(loc, *arraySizes); -} - -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); - profileRequires(loc, EEsProfile, 310, nullptr, feature); - profileRequires(loc, ECoreProfile | ECompatibilityProfile, 430, nullptr, feature); -} - -// -// 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) -{ - 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 - symbol = nullptr; - 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 (symbolTable.atGlobalLevel()) - trackLinkage(*symbol); - -#ifndef GLSLANG_WEB - if (! symbolTable.atBuiltInLevel()) { - if (isIoResizeArray(type)) { - ioArraySymbolResizeList.push_back(symbol); - checkIoArraysConsistency(loc, true); - } else - fixIoArraySize(loc, symbol->getWritableType()); - } -#endif - - 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.isArray()) { - error(loc, "redeclaring non-array as array", identifier.c_str(), ""); - return; - } - - if (! existingType.sameElementType(type)) { - error(loc, "redeclaration of array with a different element type", identifier.c_str(), ""); - return; - } - - if (! existingType.sameInnerArrayness(type)) { - error(loc, "redeclaration of array with a different array dimensions or sizes", identifier.c_str(), ""); - return; - } - -#ifndef GLSLANG_WEB - 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(), ""); - return; - } - - arrayLimitCheck(loc, identifier, type.getOuterArraySize()); - - existingType.updateArraySizes(type); - - if (isIoResizeArray(type)) - checkIoArraysConsistency(loc); -#endif -} - -#ifndef GLSLANG_WEB - -// Policy and error check for needing a runtime sized array. -void TParseContext::checkRuntimeSizable(const TSourceLoc& loc, const TIntermTyped& base) -{ - // runtime length implies runtime sizeable, so no problem - if (isRuntimeLength(base)) - return; - - if (base.getType().getQualifier().builtIn == EbvSampleMask) - return; - - // Check for last member of a bufferreference type, which is runtime sizeable - // but doesn't support runtime length - if (base.getType().getQualifier().storage == EvqBuffer) { - const TIntermBinary* binary = base.getAsBinaryNode(); - if (binary != nullptr && - binary->getOp() == EOpIndexDirectStruct && - binary->getLeft()->isReference()) { - - const int index = binary->getRight()->getAsConstantUnion()->getConstArray()[0].getIConst(); - const int memberCount = (int)binary->getLeft()->getType().getReferentType()->getStruct()->size(); - if (index == memberCount - 1) - return; - } - } - - // check for additional things allowed by GL_EXT_nonuniform_qualifier - if (base.getBasicType() == EbtSampler || base.getBasicType() == EbtAccStruct || base.getBasicType() == EbtRayQuery || - (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"); -} - -// 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(); - - if (binary->getLeft()->isReference()) - return false; - - const int memberCount = (int)binary->getLeft()->getType().getStruct()->size(); - if (index == memberCount - 1) - return true; - } - } - - return false; -} - -// Check if mesh perviewNV attributes have a view dimension -// and resize it to gl_MaxMeshViewCountNV when implicitly sized. -void TParseContext::checkAndResizeMeshViewDim(const TSourceLoc& loc, TType& type, bool isBlockMember) -{ - // see if member is a per-view attribute - if (!type.getQualifier().isPerView()) - return; - - if ((isBlockMember && type.isArray()) || (!isBlockMember && type.isArrayOfArrays())) { - // since we don't have the maxMeshViewCountNV set during parsing builtins, we hardcode the value. - int maxViewCount = parsingBuiltins ? 4 : resources.maxMeshViewCountNV; - // For block members, outermost array dimension is the view dimension. - // For non-block members, outermost array dimension is the vertex/primitive dimension - // and 2nd outermost is the view dimension. - int viewDim = isBlockMember ? 0 : 1; - int viewDimSize = type.getArraySizes()->getDimSize(viewDim); - - if (viewDimSize != UnsizedArraySize && viewDimSize != maxViewCount) - error(loc, "mesh view output array size must be gl_MaxMeshViewCountNV or implicitly sized", "[]", ""); - else if (viewDimSize == UnsizedArraySize) - type.getArraySizes()->setDimSize(viewDim, maxViewCount); - } - else { - error(loc, "requires a view array dimension", "perviewNV", ""); - } -} - -#endif // GLSLANG_WEB - -// Returns true if the first argument to the #line directive is the line number for the next line. -// -// Desktop, pre-version 3.30: "After processing this directive -// (including its new-line), the implementation will behave as if it is compiling at line number line+1 and -// source string number source-string-number." -// -// Desktop, version 3.30 and later, and ES: "After processing this directive -// (including its new-line), the implementation will behave as if it is compiling at line number line and -// source string number source-string-number. -bool TParseContext::lineDirectiveShouldSetNextLine() const -{ - return isEsProfile() || version >= 330; -} - -// -// Enforce non-initializer type/qualifier rules. -// -void TParseContext::nonInitConstCheck(const TSourceLoc& loc, TString& identifier, TType& type) -{ - // - // Make the qualifier make sense, given that there is not an initializer. - // - if (type.getQualifier().storage == EvqConst || - type.getQualifier().storage == EvqConstReadOnly) { - type.getQualifier().makeTemporary(); - error(loc, "variables with qualifier 'const' must be initialized", 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 redeclarated occurred. -// -TSymbol* TParseContext::redeclareBuiltinVariable(const TSourceLoc& loc, const TString& identifier, - const TQualifier& qualifier, const TShaderQualifiers& publicType) -{ -#ifndef GLSLANG_WEB - if (! builtInName(identifier) || symbolTable.atBuiltInLevel() || ! symbolTable.atGlobalLevel()) - return nullptr; - - bool nonEsRedecls = (!isEsProfile() && (version >= 130 || identifier == "gl_TexCoord")); - bool esRedecls = (isEsProfile() && - (version >= 320 || extensionsTurnedOn(Num_AEP_shader_io_blocks, AEP_shader_io_blocks))); - if (! esRedecls && ! nonEsRedecls) - return nullptr; - - // Special case when using GL_ARB_separate_shader_objects - bool ssoPre150 = false; // means the only reason this variable is redeclared is due to this combination - if (!isEsProfile() && version <= 140 && extensionTurnedOn(E_GL_ARB_separate_shader_objects)) { - if (identifier == "gl_Position" || - identifier == "gl_PointSize" || - identifier == "gl_ClipVertex" || - identifier == "gl_FogFragCoord") - ssoPre150 = true; - } - - // Potentially redeclaring a built-in variable... - - if (ssoPre150 || - (identifier == "gl_FragDepth" && ((nonEsRedecls && version >= 420) || esRedecls)) || - (identifier == "gl_FragCoord" && ((nonEsRedecls && version >= 140) || esRedecls)) || - identifier == "gl_ClipDistance" || - identifier == "gl_CullDistance" || - identifier == "gl_ShadingRateEXT" || - identifier == "gl_PrimitiveShadingRateEXT" || - identifier == "gl_FrontColor" || - identifier == "gl_BackColor" || - identifier == "gl_FrontSecondaryColor" || - identifier == "gl_BackSecondaryColor" || - identifier == "gl_SecondaryColor" || - (identifier == "gl_Color" && language == EShLangFragment) || - (identifier == "gl_FragStencilRefARB" && (nonEsRedecls && version >= 140) - && language == EShLangFragment) || - identifier == "gl_SampleMask" || - identifier == "gl_Layer" || - identifier == "gl_PrimitiveIndicesNV" || - identifier == "gl_TexCoord") { - - // Find the existing symbol, if any. - bool builtIn; - TSymbol* symbol = symbolTable.find(identifier, &builtIn); - - // If the symbol was not found, this must be a version/profile/stage - // that doesn't have it. - if (! symbol) - return nullptr; - - // If it wasn't at a built-in level, then it's already been redeclared; - // that is, this is a redeclaration of a redeclaration; reuse that initial - // redeclaration. Otherwise, make the new one. - if (builtIn) { - makeEditable(symbol); - symbolTable.amendSymbolIdLevel(*symbol); - } - - // Now, modify the type of the copy, as per the type of the current redeclaration. - - TQualifier& symbolQualifier = symbol->getWritableType().getQualifier(); - if (ssoPre150) { - if (intermediate.inIoAccessed(identifier)) - error(loc, "cannot redeclare after use", identifier.c_str(), ""); - if (qualifier.hasLayout()) - error(loc, "cannot apply layout qualifier to", "redeclaration", symbol->getName().c_str()); - if (qualifier.isMemory() || qualifier.isAuxiliary() || (language == EShLangVertex && qualifier.storage != EvqVaryingOut) || - (language == EShLangFragment && qualifier.storage != EvqVaryingIn)) - error(loc, "cannot change storage, memory, or auxiliary qualification of", "redeclaration", symbol->getName().c_str()); - if (! qualifier.smooth) - error(loc, "cannot change interpolation qualification of", "redeclaration", symbol->getName().c_str()); - } else if (identifier == "gl_FrontColor" || - identifier == "gl_BackColor" || - identifier == "gl_FrontSecondaryColor" || - identifier == "gl_BackSecondaryColor" || - identifier == "gl_SecondaryColor" || - identifier == "gl_Color") { - symbolQualifier.flat = qualifier.flat; - symbolQualifier.smooth = qualifier.smooth; - symbolQualifier.nopersp = qualifier.nopersp; - if (qualifier.hasLayout()) - error(loc, "cannot apply layout qualifier to", "redeclaration", symbol->getName().c_str()); - if (qualifier.isMemory() || qualifier.isAuxiliary() || symbol->getType().getQualifier().storage != qualifier.storage) - error(loc, "cannot change storage, memory, or auxiliary qualification of", "redeclaration", symbol->getName().c_str()); - } else if (identifier == "gl_TexCoord" || - identifier == "gl_ClipDistance" || - identifier == "gl_CullDistance") { - if (qualifier.hasLayout() || qualifier.isMemory() || qualifier.isAuxiliary() || - qualifier.nopersp != symbolQualifier.nopersp || qualifier.flat != symbolQualifier.flat || - symbolQualifier.storage != qualifier.storage) - error(loc, "cannot change qualification of", "redeclaration", symbol->getName().c_str()); - } else if (identifier == "gl_FragCoord") { - if (!intermediate.getTexCoordRedeclared() && intermediate.inIoAccessed("gl_FragCoord")) - error(loc, "cannot redeclare after use", "gl_FragCoord", ""); - if (qualifier.nopersp != symbolQualifier.nopersp || qualifier.flat != symbolQualifier.flat || - qualifier.isMemory() || qualifier.isAuxiliary()) - 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() || - publicType.originUpperLeft != intermediate.getOriginUpperLeft())) - error(loc, "cannot redeclare with different qualification:", "redeclaration", symbol->getName().c_str()); - - - intermediate.setTexCoordRedeclared(); - if (publicType.pixelCenterInteger) - intermediate.setPixelCenterInteger(); - if (publicType.originUpperLeft) - intermediate.setOriginUpperLeft(); - } else if (identifier == "gl_FragDepth") { - if (qualifier.nopersp != symbolQualifier.nopersp || qualifier.flat != symbolQualifier.flat || - qualifier.isMemory() || qualifier.isAuxiliary()) - error(loc, "can only change layout qualification of", "redeclaration", symbol->getName().c_str()); - if (qualifier.storage != EvqVaryingOut) - error(loc, "cannot change output storage qualification of", "redeclaration", symbol->getName().c_str()); - if (publicType.layoutDepth != EldNone) { - if (intermediate.inIoAccessed("gl_FragDepth")) - error(loc, "cannot redeclare after use", "gl_FragDepth", ""); - if (! intermediate.setDepth(publicType.layoutDepth)) - error(loc, "all redeclarations must use the same depth layout on", "redeclaration", symbol->getName().c_str()); - } - } - else if ( - identifier == "gl_PrimitiveIndicesNV" || - identifier == "gl_FragStencilRefARB") { - if (qualifier.hasLayout()) - error(loc, "cannot apply layout qualifier to", "redeclaration", symbol->getName().c_str()); - if (qualifier.storage != EvqVaryingOut) - error(loc, "cannot change output storage qualification of", "redeclaration", symbol->getName().c_str()); - } - 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; - } - - // TODO: semantics quality: separate smooth from nothing declared, then use IsInterpolation for several tests above - - return symbol; - } -#endif - - 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 TParseContext::redeclareBuiltinBlock(const TSourceLoc& loc, TTypeList& newTypeList, const TString& blockName, - const TString* instanceName, TArraySizes* arraySizes) -{ -#ifndef GLSLANG_WEB - const char* feature = "built-in block redeclaration"; - 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" && - blockName != "gl_MeshPerVertexNV" && blockName != "gl_MeshPerPrimitiveNV") { - error(loc, "cannot redeclare block: ", "block declaration", blockName.c_str()); - return; - } - - // Redeclaring a built-in block... - - if (instanceName && ! builtInName(*instanceName)) { - error(loc, "cannot redeclare a built-in block with a user name", instanceName->c_str(), ""); - return; - } - - // 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; - } - - // 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; - if (!currentBlockQualifier.hasStream()) - currentBlockQualifier.layoutStream = globalOutputDefaults.layoutStream; - fixXfbOffsets(currentBlockQualifier, newTypeList); - } - - // Edit and error check the container against the redeclaration - // - remove unused members - // - ensure remaining qualifiers/types match - - TType& type = block->getWritableType(); - - // 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; - } - - 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.getQualifier().isPerView() && ! oldType.sameArrayness(newType) && oldType.isSizedArray()) - error(memberLoc, "cannot change array size of redeclared block member", member->type->getFieldName().c_str(), ""); - else if (! oldType.getQualifier().isPerView() && newType.isArray()) - arrayLimitCheck(loc, member->type->getFieldName(), newType.getOuterArraySize()); - if (oldType.getQualifier().isPerView() && ! newType.getQualifier().isPerView()) - error(memberLoc, "missing perviewNV qualifier to redeclared block member", member->type->getFieldName().c_str(), ""); - else if (! oldType.getQualifier().isPerView() && newType.getQualifier().isPerView()) - error(memberLoc, "cannot add perviewNV qualifier to redeclared block member", member->type->getFieldName().c_str(), ""); - else if (newType.getQualifier().isPerView()) { - if (oldType.getArraySizes()->getNumDims() != newType.getArraySizes()->getNumDims()) - error(memberLoc, "cannot change arrayness of redeclared block member", member->type->getFieldName().c_str(), ""); - else if (! newType.isUnsizedArray() && newType.getOuterArraySize() != resources.maxMeshViewCountNV) - error(loc, "mesh view output array size must be gl_MaxMeshViewCountNV or implicitly sized", "[]", ""); - else if (newType.getArraySizes()->getNumDims() == 2) { - int innerDimSize = newType.getArraySizes()->getDimSize(1); - arrayLimitCheck(memberLoc, member->type->getFieldName(), innerDimSize); - oldType.getArraySizes()->setDimSize(1, innerDimSize); - } - } - if (oldType.getQualifier().isPerPrimitive() && ! newType.getQualifier().isPerPrimitive()) - error(memberLoc, "missing perprimitiveNV qualifier to redeclared block member", member->type->getFieldName().c_str(), ""); - else if (! oldType.getQualifier().isPerPrimitive() && newType.getQualifier().isPerPrimitive()) - error(memberLoc, "cannot add perprimitiveNV qualifier to 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().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", ""); - if (newType.getQualifier().hasStream() && - newType.getQualifier().layoutStream != currentBlockQualifier.layoutStream) - error(memberLoc, "member cannot contradict block (or what block inherited from global)", "xfb_stream", ""); - 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; - 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 has 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 { - // 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 (spvVersion.vulkan > 0) { - // ...then streams apply to built-in blocks, instead of them being only on stream 0 - type.getQualifier().layoutStream = currentBlockQualifier.layoutStream; - } - - 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())) - 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) - error(loc, "cannot change array size of redeclared block", blockName.c_str(), ""); - } - - symbolTable.insert(*block); - - // Check for general layout qualifier errors - layoutObjectCheck(loc, *block); - - // Tracking for implicit sizing of array - if (isIoResizeArray(block->getType())) { - ioArraySymbolResizeList.push_back(block); - checkIoArraysConsistency(loc, true); - } else if (block->getType().isArray()) - fixIoArraySize(loc, block->getWritableType()); - - // Save it in the AST for linker use. - trackLinkage(*block); -#endif // GLSLANG_WEB -} - -void TParseContext::paramCheckFixStorage(const TSourceLoc& loc, const TStorageQualifier& qualifier, TType& type) -{ - switch (qualifier) { - case EvqConst: - case EvqConstReadOnly: - type.getQualifier().storage = EvqConstReadOnly; - break; - case EvqIn: - case EvqOut: - case EvqInOut: - type.getQualifier().storage = qualifier; - break; - case EvqGlobal: - case EvqTemporary: - type.getQualifier().storage = EvqIn; - break; - default: - type.getQualifier().storage = EvqIn; - error(loc, "storage qualifier not allowed on function parameter", GetStorageQualifierString(qualifier), ""); - break; - } -} - -void TParseContext::paramCheckFix(const TSourceLoc& loc, const TQualifier& qualifier, TType& type) -{ -#ifndef GLSLANG_WEB - if (qualifier.isMemory()) { - type.getQualifier().volatil = qualifier.volatil; - type.getQualifier().coherent = qualifier.coherent; - type.getQualifier().devicecoherent = qualifier.devicecoherent ; - type.getQualifier().queuefamilycoherent = qualifier.queuefamilycoherent; - type.getQualifier().workgroupcoherent = qualifier.workgroupcoherent; - type.getQualifier().subgroupcoherent = qualifier.subgroupcoherent; - type.getQualifier().shadercallcoherent = qualifier.shadercallcoherent; - type.getQualifier().nonprivate = qualifier.nonprivate; - type.getQualifier().readonly = qualifier.readonly; - type.getQualifier().writeonly = qualifier.writeonly; - type.getQualifier().restrict = qualifier.restrict; - } -#endif - - if (qualifier.isAuxiliary() || - qualifier.isInterpolation()) - error(loc, "cannot use auxiliary or interpolation qualifiers on a function parameter", "", ""); - if (qualifier.hasLayout()) - error(loc, "cannot use layout qualifiers on a function parameter", "", ""); - if (qualifier.invariant) - error(loc, "cannot use invariant qualifier on a function parameter", "", ""); - if (qualifier.isNoContraction()) { - if (qualifier.isParamOutput()) - type.getQualifier().setNoContraction(); - else - warn(loc, "qualifier has no effect on non-output parameters", "precise", ""); - } - if (qualifier.isNonUniform()) - type.getQualifier().nonUniform = qualifier.nonUniform; -#ifndef GLSLANG_WEB - if (qualifier.isSpirvByReference()) - type.getQualifier().setSpirvByReference(); - if (qualifier.isSpirvLiteral()) { - if (type.getBasicType() == EbtFloat || type.getBasicType() == EbtInt || type.getBasicType() == EbtUint || - type.getBasicType() == EbtBool) - type.getQualifier().setSpirvLiteral(); - else - error(loc, "cannot use spirv_literal qualifier", type.getBasicTypeString().c_str(), ""); -#endif - } - - paramCheckFixStorage(loc, qualifier.storage, type); -} - -void TParseContext::nestedBlockCheck(const TSourceLoc& loc) -{ - if (structNestingLevel > 0 || blockNestingLevel > 0) - error(loc, "cannot nest a block definition inside a structure or block", "", ""); - ++blockNestingLevel; -} - -void TParseContext::nestedStructCheck(const TSourceLoc& loc) -{ - if (structNestingLevel > 0 || blockNestingLevel > 0) - error(loc, "cannot nest a structure definition inside a structure or block", "", ""); - ++structNestingLevel; -} - -void TParseContext::arrayObjectCheck(const TSourceLoc& loc, const TType& type, const char* op) -{ - // Some versions don't allow comparing arrays or structures containing arrays - if (type.containsArray()) { - profileRequires(loc, ENoProfile, 120, E_GL_3DL_array_objects, op); - profileRequires(loc, EEsProfile, 300, nullptr, op); - } -} - -void TParseContext::opaqueCheck(const TSourceLoc& loc, const TType& type, const char* op) -{ - if (containsFieldWithBasicType(type, EbtSampler)) - error(loc, "can't use with samplers or structs containing samplers", op, ""); -} - -void TParseContext::referenceCheck(const TSourceLoc& loc, const TType& type, const char* op) -{ -#ifndef GLSLANG_WEB - if (containsFieldWithBasicType(type, EbtReference)) - error(loc, "can't use with reference types", op, ""); -#endif -} - -void TParseContext::storage16BitAssignmentCheck(const TSourceLoc& loc, const TType& type, const char* op) -{ -#ifndef GLSLANG_WEB - if (type.getBasicType() == EbtStruct && containsFieldWithBasicType(type, EbtFloat16)) - requireFloat16Arithmetic(loc, op, "can't use with structs containing float16"); - - if (type.isArray() && type.getBasicType() == EbtFloat16) - requireFloat16Arithmetic(loc, op, "can't use with arrays containing float16"); - - if (type.getBasicType() == EbtStruct && containsFieldWithBasicType(type, EbtInt16)) - requireInt16Arithmetic(loc, op, "can't use with structs containing int16"); - - if (type.isArray() && type.getBasicType() == EbtInt16) - requireInt16Arithmetic(loc, op, "can't use with arrays containing int16"); - - if (type.getBasicType() == EbtStruct && containsFieldWithBasicType(type, EbtUint16)) - requireInt16Arithmetic(loc, op, "can't use with structs containing uint16"); - - if (type.isArray() && type.getBasicType() == EbtUint16) - requireInt16Arithmetic(loc, op, "can't use with arrays containing uint16"); - - if (type.getBasicType() == EbtStruct && containsFieldWithBasicType(type, EbtInt8)) - requireInt8Arithmetic(loc, op, "can't use with structs containing int8"); - - if (type.isArray() && type.getBasicType() == EbtInt8) - requireInt8Arithmetic(loc, op, "can't use with arrays containing int8"); - - if (type.getBasicType() == EbtStruct && containsFieldWithBasicType(type, EbtUint8)) - requireInt8Arithmetic(loc, op, "can't use with structs containing uint8"); - - if (type.isArray() && type.getBasicType() == EbtUint8) - requireInt8Arithmetic(loc, op, "can't use with arrays containing uint8"); -#endif -} - -void TParseContext::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, ""); -} - -void TParseContext::structTypeCheck(const TSourceLoc& /*loc*/, TPublicType& publicType) -{ - const TTypeList& typeList = *publicType.userDef->getStruct(); - - // 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(); - const TSourceLoc& memberLoc = typeList[member].loc; - if (memberQualifier.isAuxiliary() || - memberQualifier.isInterpolation() || - (memberQualifier.storage != EvqTemporary && memberQualifier.storage != EvqGlobal)) - error(memberLoc, "cannot use storage or interpolation qualifiers on structure members", typeList[member].type->getFieldName().c_str(), ""); - if (memberQualifier.isMemory()) - error(memberLoc, "cannot use memory qualifiers on structure members", typeList[member].type->getFieldName().c_str(), ""); - if (memberQualifier.hasLayout()) { - error(memberLoc, "cannot use layout qualifiers on structure members", typeList[member].type->getFieldName().c_str(), ""); - memberQualifier.clearLayout(); - } - if (memberQualifier.invariant) - error(memberLoc, "cannot use invariant qualifier on structure members", typeList[member].type->getFieldName().c_str(), ""); - } -} - -// -// See if this loop satisfies the limitations for ES 2.0 (version 100) for loops in Appendex A: -// -// "The loop index has type int or float. -// -// "The for statement has the form: -// for ( init-declaration ; condition ; expression ) -// init-declaration has the form: type-specifier identifier = constant-expression -// condition has the form: loop-index relational_operator constant-expression -// where relational_operator is one of: > >= < <= == or != -// expression [sic] has one of the following forms: -// loop-index++ -// loop-index-- -// loop-index += constant-expression -// loop-index -= constant-expression -// -// The body is handled in an AST traversal. -// -void TParseContext::inductiveLoopCheck(const TSourceLoc& loc, TIntermNode* init, TIntermLoop* loop) -{ -#ifndef GLSLANG_WEB - // loop index init must exist and be a declaration, which shows up in the AST as an aggregate of size 1 of the declaration - bool badInit = false; - if (! init || ! init->getAsAggregate() || init->getAsAggregate()->getSequence().size() != 1) - badInit = true; - TIntermBinary* binaryInit = 0; - if (! badInit) { - // get the declaration assignment - binaryInit = init->getAsAggregate()->getSequence()[0]->getAsBinaryNode(); - if (! binaryInit) - badInit = true; - } - if (badInit) { - error(loc, "inductive-loop init-declaration requires the form \"type-specifier loop-index = constant-expression\"", "limitations", ""); - return; - } - - // loop index must be type int or float - if (! binaryInit->getType().isScalar() || (binaryInit->getBasicType() != EbtInt && binaryInit->getBasicType() != EbtFloat)) { - error(loc, "inductive loop requires a scalar 'int' or 'float' loop index", "limitations", ""); - return; - } - - // init is the form "loop-index = constant" - if (binaryInit->getOp() != EOpAssign || ! binaryInit->getLeft()->getAsSymbolNode() || ! binaryInit->getRight()->getAsConstantUnion()) { - error(loc, "inductive-loop init-declaration requires the form \"type-specifier loop-index = constant-expression\"", "limitations", ""); - return; - } - - // get the unique id of the loop index - long long loopIndex = binaryInit->getLeft()->getAsSymbolNode()->getId(); - inductiveLoopIds.insert(loopIndex); - - // condition's form must be "loop-index relational-operator constant-expression" - bool badCond = ! loop->getTest(); - if (! badCond) { - TIntermBinary* binaryCond = loop->getTest()->getAsBinaryNode(); - badCond = ! binaryCond; - if (! badCond) { - switch (binaryCond->getOp()) { - case EOpGreaterThan: - case EOpGreaterThanEqual: - case EOpLessThan: - case EOpLessThanEqual: - case EOpEqual: - case EOpNotEqual: - break; - default: - badCond = true; - } - } - if (binaryCond && (! binaryCond->getLeft()->getAsSymbolNode() || - binaryCond->getLeft()->getAsSymbolNode()->getId() != loopIndex || - ! binaryCond->getRight()->getAsConstantUnion())) - badCond = true; - } - if (badCond) { - error(loc, "inductive-loop condition requires the form \"loop-index constant-expression\"", "limitations", ""); - return; - } - - // loop-index++ - // loop-index-- - // loop-index += constant-expression - // loop-index -= constant-expression - bool badTerminal = ! loop->getTerminal(); - if (! badTerminal) { - TIntermUnary* unaryTerminal = loop->getTerminal()->getAsUnaryNode(); - TIntermBinary* binaryTerminal = loop->getTerminal()->getAsBinaryNode(); - if (unaryTerminal || binaryTerminal) { - switch(loop->getTerminal()->getAsOperator()->getOp()) { - case EOpPostDecrement: - case EOpPostIncrement: - case EOpAddAssign: - case EOpSubAssign: - break; - default: - badTerminal = true; - } - } else - badTerminal = true; - if (binaryTerminal && (! binaryTerminal->getLeft()->getAsSymbolNode() || - binaryTerminal->getLeft()->getAsSymbolNode()->getId() != loopIndex || - ! binaryTerminal->getRight()->getAsConstantUnion())) - badTerminal = true; - if (unaryTerminal && (! unaryTerminal->getOperand()->getAsSymbolNode() || - unaryTerminal->getOperand()->getAsSymbolNode()->getId() != loopIndex)) - badTerminal = true; - } - if (badTerminal) { - error(loc, "inductive-loop termination requires the form \"loop-index++, loop-index--, loop-index += constant-expression, or loop-index -= constant-expression\"", "limitations", ""); - return; - } - - // the body - inductiveLoopBodyCheck(loop->getBody(), loopIndex, symbolTable); -#endif -} - -#ifndef GLSLANG_WEB -// Do limit checks for built-in arrays. -void TParseContext::arrayLimitCheck(const TSourceLoc& loc, const TString& identifier, int size) -{ - if (identifier.compare("gl_TexCoord") == 0) - limitCheck(loc, size, "gl_MaxTextureCoords", "gl_TexCoord array size"); - else if (identifier.compare("gl_ClipDistance") == 0) - limitCheck(loc, size, "gl_MaxClipDistances", "gl_ClipDistance array size"); - else if (identifier.compare("gl_CullDistance") == 0) - limitCheck(loc, size, "gl_MaxCullDistances", "gl_CullDistance array size"); - else if (identifier.compare("gl_ClipDistancePerViewNV") == 0) - limitCheck(loc, size, "gl_MaxClipDistances", "gl_ClipDistancePerViewNV array size"); - else if (identifier.compare("gl_CullDistancePerViewNV") == 0) - limitCheck(loc, size, "gl_MaxCullDistances", "gl_CullDistancePerViewNV array size"); -} -#endif // GLSLANG_WEB - -// See if the provided value is less than or equal to the symbol indicated by limit, -// which should be a constant in the symbol table. -void TParseContext::limitCheck(const TSourceLoc& loc, int value, const char* limit, const char* feature) -{ - TSymbol* symbol = symbolTable.find(limit); - assert(symbol->getAsVariable()); - const TConstUnionArray& constArray = symbol->getAsVariable()->getConstArray(); - assert(! constArray.empty()); - if (value > constArray[0].getIConst()) - error(loc, "must be less than or equal to", feature, "%s (%d)", limit, constArray[0].getIConst()); -} - -#ifndef GLSLANG_WEB - -// -// Do any additional error checking, etc., once we know the parsing is done. -// -void TParseContext::finish() -{ - TParseContextBase::finish(); - - if (parsingBuiltins) - return; - - // Check on array indexes for ES 2.0 (version 100) limitations. - for (size_t i = 0; i < needsIndexLimitationChecking.size(); ++i) - constantIndexExpressionCheck(needsIndexLimitationChecking[i]); - - // 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 - // about the stage itself. - switch (language) { - case EShLangGeometry: - if (isEsProfile() && version == 310) - requireExtensions(getCurrentLoc(), Num_AEP_geometry_shader, AEP_geometry_shader, "geometry shaders"); - break; - case EShLangTessControl: - case EShLangTessEvaluation: - if (isEsProfile() && version == 310) - requireExtensions(getCurrentLoc(), Num_AEP_tessellation_shader, AEP_tessellation_shader, "tessellation shaders"); - else if (!isEsProfile() && version < 400) - requireExtensions(getCurrentLoc(), 1, &E_GL_ARB_tessellation_shader, "tessellation shaders"); - break; - case EShLangCompute: - if (!isEsProfile() && version < 430) - requireExtensions(getCurrentLoc(), 1, &E_GL_ARB_compute_shader, "compute shaders"); - break; - case EShLangTaskNV: - requireExtensions(getCurrentLoc(), 1, &E_GL_NV_mesh_shader, "task shaders"); - break; - case EShLangMeshNV: - requireExtensions(getCurrentLoc(), 1, &E_GL_NV_mesh_shader, "mesh shaders"); - break; - default: - break; - } - - // 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(ElgTriangleStrip); 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 // GLSLANG_WEB - -// -// 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 TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publicType, TString& id) -{ - std::transform(id.begin(), id.end(), id.begin(), ::tolower); - - if (id == TQualifier::getLayoutMatrixString(ElmColumnMajor)) { - publicType.qualifier.layoutMatrix = ElmColumnMajor; - return; - } - if (id == TQualifier::getLayoutMatrixString(ElmRowMajor)) { - publicType.qualifier.layoutMatrix = ElmRowMajor; - return; - } - if (id == TQualifier::getLayoutPackingString(ElpPacked)) { - if (spvVersion.spv != 0) { - if (spvVersion.vulkanRelaxed) - return; // silently ignore qualifier - else - spvRemoved(loc, "packed"); - } - publicType.qualifier.layoutPacking = ElpPacked; - return; - } - if (id == TQualifier::getLayoutPackingString(ElpShared)) { - if (spvVersion.spv != 0) { - if (spvVersion.vulkanRelaxed) - return; // silently ignore qualifier - else - spvRemoved(loc, "shared"); - } - publicType.qualifier.layoutPacking = ElpShared; - return; - } - if (id == TQualifier::getLayoutPackingString(ElpStd140)) { - publicType.qualifier.layoutPacking = ElpStd140; - return; - } -#ifndef GLSLANG_WEB - if (id == TQualifier::getLayoutPackingString(ElpStd430)) { - requireProfile(loc, EEsProfile | ECoreProfile | ECompatibilityProfile, "std430"); - profileRequires(loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_shader_storage_buffer_object, "std430"); - profileRequires(loc, EEsProfile, 310, nullptr, "std430"); - publicType.qualifier.layoutPacking = ElpStd430; - return; - } - if (id == TQualifier::getLayoutPackingString(ElpScalar)) { - requireVulkan(loc, "scalar"); - requireExtensions(loc, 1, &E_GL_EXT_scalar_block_layout, "scalar block layout"); - publicType.qualifier.layoutPacking = ElpScalar; - return; - } - // TODO: compile-time performance: may need to stop doing linear searches - for (TLayoutFormat format = (TLayoutFormat)(ElfNone + 1); format < ElfCount; format = (TLayoutFormat)(format + 1)) { - if (id == TQualifier::getLayoutFormatString(format)) { - if ((format > ElfEsFloatGuard && format < ElfFloatGuard) || - (format > ElfEsIntGuard && format < ElfIntGuard) || - (format > ElfEsUintGuard && format < ElfCount)) - requireProfile(loc, ENoProfile | ECoreProfile | ECompatibilityProfile, "image load-store format"); - profileRequires(loc, ENoProfile | ECoreProfile | ECompatibilityProfile, 420, E_GL_ARB_shader_image_load_store, "image load store"); - profileRequires(loc, EEsProfile, 310, E_GL_ARB_shader_image_load_store, "image load store"); - publicType.qualifier.layoutFormat = format; - return; - } - } - if (id == "push_constant") { - requireVulkan(loc, "push_constant"); - publicType.qualifier.layoutPushConstant = true; - return; - } - if (id == "buffer_reference") { - requireVulkan(loc, "buffer_reference"); - requireExtensions(loc, 1, &E_GL_EXT_buffer_reference, "buffer_reference"); - publicType.qualifier.layoutBufferReference = true; - intermediate.setUseStorageBuffer(); - intermediate.setUsePhysicalStorageBuffer(); - return; - } - if (language == EShLangGeometry || language == EShLangTessEvaluation || language == EShLangMeshNV) { - if (id == TQualifier::getGeometryString(ElgTriangles)) { - publicType.shaderQualifiers.geometry = ElgTriangles; - return; - } - if (language == EShLangGeometry || language == EShLangMeshNV) { - if (id == TQualifier::getGeometryString(ElgPoints)) { - publicType.shaderQualifiers.geometry = ElgPoints; - return; - } - if (id == TQualifier::getGeometryString(ElgLines)) { - publicType.shaderQualifiers.geometry = ElgLines; - return; - } - if (language == EShLangGeometry) { - if (id == TQualifier::getGeometryString(ElgLineStrip)) { - publicType.shaderQualifiers.geometry = ElgLineStrip; - return; - } - if (id == TQualifier::getGeometryString(ElgLinesAdjacency)) { - publicType.shaderQualifiers.geometry = ElgLinesAdjacency; - return; - } - if (id == TQualifier::getGeometryString(ElgTrianglesAdjacency)) { - publicType.shaderQualifiers.geometry = ElgTrianglesAdjacency; - return; - } - if (id == TQualifier::getGeometryString(ElgTriangleStrip)) { - publicType.shaderQualifiers.geometry = ElgTriangleStrip; - return; - } - if (id == "passthrough") { - requireExtensions(loc, 1, &E_SPV_NV_geometry_shader_passthrough, "geometry shader passthrough"); - publicType.qualifier.layoutPassthrough = true; - intermediate.setGeoPassthroughEXT(); - return; - } - } - } else { - assert(language == EShLangTessEvaluation); - - // input primitive - if (id == TQualifier::getGeometryString(ElgTriangles)) { - publicType.shaderQualifiers.geometry = ElgTriangles; - return; - } - if (id == TQualifier::getGeometryString(ElgQuads)) { - publicType.shaderQualifiers.geometry = ElgQuads; - return; - } - if (id == TQualifier::getGeometryString(ElgIsolines)) { - publicType.shaderQualifiers.geometry = ElgIsolines; - return; - } - - // vertex spacing - if (id == TQualifier::getVertexSpacingString(EvsEqual)) { - publicType.shaderQualifiers.spacing = EvsEqual; - return; - } - if (id == TQualifier::getVertexSpacingString(EvsFractionalEven)) { - publicType.shaderQualifiers.spacing = EvsFractionalEven; - return; - } - if (id == TQualifier::getVertexSpacingString(EvsFractionalOdd)) { - publicType.shaderQualifiers.spacing = EvsFractionalOdd; - return; - } - - // triangle order - if (id == TQualifier::getVertexOrderString(EvoCw)) { - publicType.shaderQualifiers.order = EvoCw; - return; - } - if (id == TQualifier::getVertexOrderString(EvoCcw)) { - publicType.shaderQualifiers.order = EvoCcw; - return; - } - - // point mode - if (id == "point_mode") { - publicType.shaderQualifiers.pointMode = true; - return; - } - } - } - if (language == EShLangFragment) { - if (id == "origin_upper_left") { - requireProfile(loc, ECoreProfile | ECompatibilityProfile | ENoProfile, "origin_upper_left"); - if (profile == ENoProfile) { - profileRequires(loc,ECoreProfile | ECompatibilityProfile, 140, E_GL_ARB_fragment_coord_conventions, "origin_upper_left"); - } - - publicType.shaderQualifiers.originUpperLeft = true; - return; - } - if (id == "pixel_center_integer") { - requireProfile(loc, ECoreProfile | ECompatibilityProfile | ENoProfile, "pixel_center_integer"); - if (profile == ENoProfile) { - profileRequires(loc,ECoreProfile | ECompatibilityProfile, 140, E_GL_ARB_fragment_coord_conventions, "pixel_center_integer"); - } - publicType.shaderQualifiers.pixelCenterInteger = true; - return; - } - if (id == "early_fragment_tests") { - profileRequires(loc, ENoProfile | ECoreProfile | ECompatibilityProfile, 420, E_GL_ARB_shader_image_load_store, "early_fragment_tests"); - profileRequires(loc, EEsProfile, 310, nullptr, "early_fragment_tests"); - 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"); - profileRequires(loc, ECoreProfile | ECompatibilityProfile, 420, nullptr, "depth layout qualifier"); - publicType.shaderQualifiers.layoutDepth = depth; - return; - } - } - for (TInterlockOrdering order = (TInterlockOrdering)(EioNone + 1); order < EioCount; order = (TInterlockOrdering)(order+1)) { - if (id == TQualifier::getInterlockOrderingString(order)) { - requireProfile(loc, ECoreProfile | ECompatibilityProfile, "fragment shader interlock layout qualifier"); - profileRequires(loc, ECoreProfile | ECompatibilityProfile, 450, nullptr, "fragment shader interlock layout qualifier"); - requireExtensions(loc, 1, &E_GL_ARB_fragment_shader_interlock, TQualifier::getInterlockOrderingString(order)); - if (order == EioShadingRateInterlockOrdered || order == EioShadingRateInterlockUnordered) - requireExtensions(loc, 1, &E_GL_NV_shading_rate_image, TQualifier::getInterlockOrderingString(order)); - publicType.shaderQualifiers.interlockOrdering = order; - 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)) { - 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; - break; - } - } - if (! found) - error(loc, "unknown blend equation", "blend_support", ""); - return; - } - 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 { - if (language == EShLangRayGen || language == EShLangIntersect || - language == EShLangAnyHit || language == EShLangClosestHit || - language == EShLangMiss || language == EShLangCallable) { - if (id == "shaderrecordnv" || id == "shaderrecordext") { - if (id == "shaderrecordnv") { - requireExtensions(loc, 1, &E_GL_NV_ray_tracing, "shader record NV"); - } else { - requireExtensions(loc, 1, &E_GL_EXT_ray_tracing, "shader record EXT"); - } - publicType.qualifier.layoutShaderRecord = true; - return; - } - - } - } - if (language == EShLangCompute) { - if (id.compare(0, 17, "derivative_group_") == 0) { - requireExtensions(loc, 1, &E_GL_NV_compute_shader_derivatives, "compute shader derivatives"); - if (id == "derivative_group_quadsnv") { - publicType.shaderQualifiers.layoutDerivativeGroupQuads = true; - return; - } else if (id == "derivative_group_linearnv") { - publicType.shaderQualifiers.layoutDerivativeGroupLinear = true; - return; - } - } - } - - if (id == "primitive_culling") { - requireExtensions(loc, 1, &E_GL_EXT_ray_flags_primitive_culling, "primitive culling"); - publicType.shaderQualifiers.layoutPrimitiveCulling = true; - return; - } -#endif - - 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 TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publicType, TString& id, const TIntermTyped* node) -{ - const char* feature = "layout-id value"; - const char* nonLiteralFeature = "non-literal layout-id value"; - - integerCheck(node, feature); - const TIntermConstantUnion* constUnion = node->getAsConstantUnion(); - int value; - bool nonLiteral = false; - if (constUnion) { - value = constUnion->getConstArray()[0].getIConst(); - if (! constUnion->isLiteral()) { - requireProfile(loc, ECoreProfile | ECompatibilityProfile, nonLiteralFeature); - profileRequires(loc, ECoreProfile | ECompatibilityProfile, 440, E_GL_ARB_enhanced_layouts, nonLiteralFeature); - } - } else { - // grammar should have give out the error message - value = 0; - nonLiteral = true; - } - - if (value < 0) { - error(loc, "cannot be negative", feature, ""); - return; - } - - 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); - } - publicType.qualifier.layoutOffset = value; - publicType.qualifier.explicitOffset = true; - if (nonLiteral) - error(loc, "needs a literal integer", "offset", ""); - 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); - } - // "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 - publicType.qualifier.layoutAlign = value; - if (nonLiteral) - error(loc, "needs a literal integer", "align", ""); - return; - } else if (id == "location") { - profileRequires(loc, EEsProfile, 300, nullptr, "location"); - const char* exts[2] = { E_GL_ARB_separate_shader_objects, E_GL_ARB_explicit_attrib_location }; - // GL_ARB_explicit_uniform_location requires 330 or GL_ARB_explicit_attrib_location we do not need to add it here - profileRequires(loc, ~EEsProfile, 330, 2, exts, "location"); - if ((unsigned int)value >= TQualifier::layoutLocationEnd) - error(loc, "location is too large", id.c_str(), ""); - else - publicType.qualifier.layoutLocation = value; - if (nonLiteral) - error(loc, "needs a literal integer", "location", ""); - return; - } else if (id == "set") { - if ((unsigned int)value >= TQualifier::layoutSetEnd) - error(loc, "set is too large", id.c_str(), ""); - else - publicType.qualifier.layoutSet = value; - if (value != 0) - requireVulkan(loc, "descriptor set"); - if (nonLiteral) - error(loc, "needs a literal integer", "set", ""); - return; - } else if (id == "binding") { -#ifndef GLSLANG_WEB - profileRequires(loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, "binding"); - profileRequires(loc, EEsProfile, 310, nullptr, "binding"); -#endif - if ((unsigned int)value >= TQualifier::layoutBindingEnd) - error(loc, "binding is too large", id.c_str(), ""); - else - publicType.qualifier.layoutBinding = value; - if (nonLiteral) - error(loc, "needs a literal integer", "binding", ""); - 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 { - publicType.qualifier.layoutSpecConstantId = value; - publicType.qualifier.specConstant = true; - if (! intermediate.addUsedConstantId(value)) - error(loc, "specialization-constant id already used", id.c_str(), ""); - } - if (nonLiteral) - error(loc, "needs a literal integer", "constant_id", ""); - return; - } -#ifndef GLSLANG_WEB - if (id == "component") { - requireProfile(loc, ECoreProfile | ECompatibilityProfile, "component"); - profileRequires(loc, ECoreProfile | ECompatibilityProfile, 440, E_GL_ARB_enhanced_layouts, "component"); - if ((unsigned)value >= TQualifier::layoutComponentEnd) - error(loc, "component is too large", id.c_str(), ""); - else - publicType.qualifier.layoutComponent = value; - if (nonLiteral) - error(loc, "needs a literal integer", "component", ""); - return; - } - 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(); - const char* feature = "transform feedback qualifier"; - requireStage(loc, (EShLanguageMask)(EShLangVertexMask | EShLangGeometryMask | EShLangTessControlMask | EShLangTessEvaluationMask), feature); - requireProfile(loc, ECoreProfile | ECompatibilityProfile, feature); - profileRequires(loc, ECoreProfile | ECompatibilityProfile, 440, E_GL_ARB_enhanced_layouts, feature); - 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 - publicType.qualifier.layoutXfbBuffer = value; - if (nonLiteral) - error(loc, "needs a literal integer", "xfb_buffer", ""); - 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 - publicType.qualifier.layoutXfbOffset = value; - if (nonLiteral) - error(loc, "needs a literal integer", "xfb_offset", ""); - 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); - } - if (value >= (int)TQualifier::layoutXfbStrideEnd) - error(loc, "stride is too large:", id.c_str(), "internal max is %d", TQualifier::layoutXfbStrideEnd-1); - else - publicType.qualifier.layoutXfbStride = value; - if (nonLiteral) - error(loc, "needs a literal integer", "xfb_stride", ""); - 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 - publicType.qualifier.layoutAttachment = value; - if (nonLiteral) - error(loc, "needs a literal integer", "input_attachment_index", ""); - return; - } - if (id == "num_views") { - requireExtensions(loc, Num_OVR_multiview_EXTs, OVR_multiview_EXTs, "num_views"); - publicType.shaderQualifiers.numViews = value; - if (nonLiteral) - error(loc, "needs a literal integer", "num_views", ""); - return; - } - 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; - if (nonLiteral) - error(loc, "needs a literal integer", "secondary_view_offset", ""); - return; - } - } - - if (id == "buffer_reference_align") { - requireExtensions(loc, 1, &E_GL_EXT_buffer_reference, "buffer_reference_align"); - if (! IsPow2(value)) - error(loc, "must be a power of 2", "buffer_reference_align", ""); - else - publicType.qualifier.layoutBufferReferenceAlign = IntLog2(value); - if (nonLiteral) - error(loc, "needs a literal integer", "buffer_reference_align", ""); - return; - } -#endif - - switch (language) { -#ifndef GLSLANG_WEB - case EShLangTessControl: - if (id == "vertices") { - if (value == 0) - error(loc, "must be greater than 0", "vertices", ""); - else - publicType.shaderQualifiers.vertices = value; - if (nonLiteral) - error(loc, "needs a literal integer", "vertices", ""); - return; - } - break; - - case EShLangGeometry: - if (id == "invocations") { - profileRequires(loc, ECompatibilityProfile | ECoreProfile, 400, nullptr, "invocations"); - if (value == 0) - error(loc, "must be at least 1", "invocations", ""); - else - publicType.shaderQualifiers.invocations = value; - if (nonLiteral) - error(loc, "needs a literal integer", "invocations", ""); - return; - } - if (id == "max_vertices") { - publicType.shaderQualifiers.vertices = value; - if (value > resources.maxGeometryOutputVertices) - error(loc, "too large, must be less than gl_MaxGeometryOutputVertices", "max_vertices", ""); - if (nonLiteral) - error(loc, "needs a literal integer", "max_vertices", ""); - return; - } - if (id == "stream") { - requireProfile(loc, ~EEsProfile, "selecting output stream"); - publicType.qualifier.layoutStream = value; - if (value > 0) - intermediate.setMultiStream(); - if (nonLiteral) - error(loc, "needs a literal integer", "stream", ""); - return; - } - break; - - case EShLangFragment: - if (id == "index") { - requireProfile(loc, ECompatibilityProfile | ECoreProfile | EEsProfile, "index layout qualifier on fragment output"); - const char* exts[2] = { E_GL_ARB_separate_shader_objects, E_GL_ARB_explicit_attrib_location }; - profileRequires(loc, ECompatibilityProfile | ECoreProfile, 330, 2, exts, "index layout qualifier on fragment output"); - profileRequires(loc, EEsProfile ,310, E_GL_EXT_blend_func_extended, "index layout qualifier on fragment output"); - // "It is also a compile-time error if a fragment shader sets a layout index to less than 0 or greater than 1." - if (value < 0 || value > 1) { - value = 0; - error(loc, "value must be 0 or 1", "index", ""); - } - - publicType.qualifier.layoutIndex = value; - if (nonLiteral) - error(loc, "needs a literal integer", "index", ""); - return; - } - break; - - case EShLangMeshNV: - if (id == "max_vertices") { - requireExtensions(loc, 1, &E_GL_NV_mesh_shader, "max_vertices"); - publicType.shaderQualifiers.vertices = value; - if (value > resources.maxMeshOutputVerticesNV) - error(loc, "too large, must be less than gl_MaxMeshOutputVerticesNV", "max_vertices", ""); - if (nonLiteral) - error(loc, "needs a literal integer", "max_vertices", ""); - return; - } - if (id == "max_primitives") { - requireExtensions(loc, 1, &E_GL_NV_mesh_shader, "max_primitives"); - publicType.shaderQualifiers.primitives = value; - if (value > resources.maxMeshOutputPrimitivesNV) - error(loc, "too large, must be less than gl_MaxMeshOutputPrimitivesNV", "max_primitives", ""); - if (nonLiteral) - error(loc, "needs a literal integer", "max_primitives", ""); - return; - } - // Fall through - - case EShLangTaskNV: - // Fall through -#endif - case EShLangCompute: - if (id.compare(0, 11, "local_size_") == 0) { -#ifndef GLSLANG_WEB - if (language == EShLangMeshNV || language == EShLangTaskNV) { - requireExtensions(loc, 1, &E_GL_NV_mesh_shader, "gl_WorkGroupSize"); - } else { - profileRequires(loc, EEsProfile, 310, 0, "gl_WorkGroupSize"); - profileRequires(loc, ~EEsProfile, 430, E_GL_ARB_compute_shader, "gl_WorkGroupSize"); - } -#endif - if (nonLiteral) - error(loc, "needs a literal integer", "local_size", ""); - 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; - publicType.shaderQualifiers.localSizeNotDefault[0] = true; - return; - } - if (id == "local_size_y") { - publicType.shaderQualifiers.localSize[1] = value; - publicType.shaderQualifiers.localSizeNotDefault[1] = true; - return; - } - if (id == "local_size_z") { - publicType.shaderQualifiers.localSize[2] = value; - publicType.shaderQualifiers.localSizeNotDefault[2] = true; - return; - } - if (spvVersion.spv != 0) { - if (id == "local_size_x_id") { - publicType.shaderQualifiers.localSizeSpecId[0] = value; - return; - } - if (id == "local_size_y_id") { - publicType.shaderQualifiers.localSizeSpecId[1] = value; - return; - } - if (id == "local_size_z_id") { - publicType.shaderQualifiers.localSizeSpecId[2] = value; - 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 TParseContext::mergeObjectLayoutQualifiers(TQualifier& dst, const TQualifier& src, bool inheritOnly) -{ - if (src.hasMatrix()) - dst.layoutMatrix = src.layoutMatrix; - if (src.hasPacking()) - dst.layoutPacking = src.layoutPacking; - -#ifndef GLSLANG_WEB - if (src.hasStream()) - dst.layoutStream = src.layoutStream; - if (src.hasFormat()) - dst.layoutFormat = src.layoutFormat; - if (src.hasXfbBuffer()) - dst.layoutXfbBuffer = src.layoutXfbBuffer; - if (src.hasBufferReferenceAlign()) - dst.layoutBufferReferenceAlign = src.layoutBufferReferenceAlign; -#endif - - if (src.hasAlign()) - dst.layoutAlign = src.layoutAlign; - - if (! inheritOnly) { - if (src.hasLocation()) - dst.layoutLocation = src.layoutLocation; - 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.hasSpecConstantId()) - dst.layoutSpecConstantId = src.layoutSpecConstantId; - -#ifndef GLSLANG_WEB - if (src.hasComponent()) - dst.layoutComponent = src.layoutComponent; - if (src.hasIndex()) - dst.layoutIndex = src.layoutIndex; - if (src.hasXfbStride()) - dst.layoutXfbStride = src.layoutXfbStride; - if (src.hasXfbOffset()) - dst.layoutXfbOffset = src.layoutXfbOffset; - if (src.hasAttachment()) - dst.layoutAttachment = src.layoutAttachment; - if (src.layoutPushConstant) - dst.layoutPushConstant = true; - - if (src.layoutBufferReference) - dst.layoutBufferReference = true; - - if (src.layoutPassthrough) - dst.layoutPassthrough = true; - if (src.layoutViewportRelative) - dst.layoutViewportRelative = true; - if (src.layoutSecondaryViewportRelativeOffset != -2048) - dst.layoutSecondaryViewportRelativeOffset = src.layoutSecondaryViewportRelativeOffset; - if (src.layoutShaderRecord) - dst.layoutShaderRecord = true; - if (src.pervertexNV) - dst.pervertexNV = true; -#endif - } -} - -// Do error layout error checking given a full variable/block declaration. -void TParseContext::layoutObjectCheck(const TSourceLoc& loc, const TSymbol& symbol) -{ - const TType& type = symbol.getType(); - const TQualifier& qualifier = type.getQualifier(); - - // first, cross check WRT to just the type - layoutTypeCheck(loc, type); - - // now, any remaining error checking based on the object itself - - if (qualifier.hasAnyLocation()) { - switch (qualifier.storage) { - case EvqUniform: - case EvqBuffer: - if (symbol.getAsVariable() == nullptr) - error(loc, "can only be used on variable declaration", "location", ""); - break; - default: - break; - } - } - - // 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.getQualifier().isTaskMemory() && -#ifndef GLSLANG_WEB - !type.getQualifier().hasSprivDecorate() && -#endif - (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: - case EvqBuffer: - if (type.getBasicType() != EbtBlock) { - if (qualifier.hasMatrix()) - error(loc, "cannot specify matrix layout on a variable declaration", "layout", ""); - if (qualifier.hasPacking()) - error(loc, "cannot specify packing on a variable declaration", "layout", ""); - // "The offset qualifier can only be used on block members of blocks..." - if (qualifier.hasOffset() && !type.isAtomic()) - error(loc, "cannot specify on a variable declaration", "offset", ""); - // "The align qualifier can only be used on blocks or block members..." - if (qualifier.hasAlign()) - error(loc, "cannot specify on a variable declaration", "align", ""); - if (qualifier.isPushConstant()) - error(loc, "can only specify on a uniform block", "push_constant", ""); - if (qualifier.isShaderRecord()) - error(loc, "can only specify on a buffer block", "shaderRecordNV", ""); - if (qualifier.hasLocation() && type.isAtomic()) - error(loc, "cannot specify on atomic counter", "location", ""); - } - break; - default: - // these were already filtered by layoutTypeCheck() (or its callees) - break; - } - } -} - -// "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) -{ -#ifndef GLSLANG_WEB - if (extensionTurnedOn(E_GL_EXT_spirv_intrinsics)) - return; // Skip any check if GL_EXT_spirv_intrinsics is turned on -#endif - - const TQualifier& qualifier = type.getQualifier(); - - // first, intra-layout qualifier-only error checking - layoutQualifierCheck(loc, qualifier); - - // now, error checking combining type and qualifier - - if (qualifier.hasAnyLocation()) { - if (qualifier.hasLocation()) { - if (qualifier.storage == EvqVaryingOut && language == EShLangFragment) { - if (qualifier.layoutLocation >= (unsigned int)resources.maxDrawBuffers) - error(loc, "too large for fragment output", "location", ""); - } - } - if (qualifier.hasComponent()) { - // "It is a compile-time error if this sequence of components gets larger than 3." - if (qualifier.layoutComponent + type.getVectorSize() * (type.getBasicType() == EbtDouble ? 2 : 1) > 4) - error(loc, "type overflows the available 4 components", "component", ""); - - // "It is a compile-time error to apply the component qualifier to a matrix, a structure, a block, or an array containing any of these." - if (type.isMatrix() || type.getBasicType() == EbtBlock || type.getBasicType() == EbtStruct) - error(loc, "cannot apply to a matrix, structure, or block", "component", ""); - - // " It is a compile-time error to use component 1 or 3 as the beginning of a double or dvec2." - if (type.getBasicType() == EbtDouble) - if (qualifier.layoutComponent & 1) - error(loc, "doubles cannot start on an odd-numbered component", "component", ""); - } - - switch (qualifier.storage) { - case EvqVaryingIn: - case EvqVaryingOut: - if (type.getBasicType() == EbtBlock) - profileRequires(loc, ECoreProfile | ECompatibilityProfile, 440, E_GL_ARB_enhanced_layouts, "location qualifier on in/out block"); - if (type.getQualifier().isTaskMemory()) - error(loc, "cannot apply to taskNV in/out blocks", "location", ""); - break; - case EvqUniform: - case EvqBuffer: - if (type.getBasicType() == EbtBlock) - error(loc, "cannot apply to uniform or buffer block", "location", ""); - break; -#ifndef GLSLANG_WEB - case EvqPayload: - case EvqPayloadIn: - case EvqHitAttr: - case EvqCallableData: - case EvqCallableDataIn: - break; -#endif - default: - error(loc, "can only apply to uniform, buffer, in, or out storage qualifiers", "location", ""); - break; - } - - bool typeCollision; - int repeated = intermediate.addUsedLocation(qualifier, type, typeCollision); - if (repeated >= 0 && ! typeCollision) - error(loc, "overlapping use of location", "location", "%d", repeated); - // "fragment-shader outputs ... if two variables are placed within the same - // location, they must have the same underlying type (floating-point or integer)" - if (typeCollision && language == EShLangFragment && qualifier.isPipeOutput()) - error(loc, "fragment outputs sharing the same location must be the same basic type", "location", "%d", repeated); - } - -#ifndef GLSLANG_WEB - if (qualifier.hasXfbOffset() && qualifier.hasXfbBuffer()) { - if (type.isUnsizedArray()) { - error(loc, "unsized array", "xfb_offset", "in buffer %d", qualifier.layoutXfbBuffer); - } else { - int repeated = intermediate.addXfbBufferOffset(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 - // containing a double or 64-bit integer, the offset must also be a multiple of 8..." - if ((type.containsBasicType(EbtDouble) || type.containsBasicType(EbtInt64) || type.containsBasicType(EbtUint64)) && - ! IsMultipleOfPow2(qualifier.layoutXfbOffset, 8)) - error(loc, "type contains double or 64-bit integer; xfb_offset must be a multiple of 8", "xfb_offset", ""); - else if ((type.containsBasicType(EbtBool) || type.containsBasicType(EbtFloat) || - type.containsBasicType(EbtInt) || type.containsBasicType(EbtUint)) && - ! IsMultipleOfPow2(qualifier.layoutXfbOffset, 4)) - error(loc, "must be a multiple of size of first component", "xfb_offset", ""); - // ..., if applied to an aggregate containing a half float or 16-bit integer, the offset must also be a multiple of 2..." - else if ((type.contains16BitFloat() || type.containsBasicType(EbtInt16) || type.containsBasicType(EbtUint16)) && - !IsMultipleOfPow2(qualifier.layoutXfbOffset, 2)) - error(loc, "type contains half float or 16-bit integer; xfb_offset must be a multiple of 2", "xfb_offset", ""); - } - if (qualifier.hasXfbStride() && qualifier.hasXfbBuffer()) { - if (! intermediate.setXfbBufferStride(qualifier.layoutXfbBuffer, qualifier.layoutXfbStride)) - error(loc, "all stride settings must match for xfb buffer", "xfb_stride", "%d", qualifier.layoutXfbBuffer); - } -#endif - - if (qualifier.hasBinding()) { - // Binding checking, from the spec: - // - // "If the binding point for any uniform or shader storage block instance is less than zero, or greater than or - // equal to the implementation-dependent maximum number of uniform buffer bindings, a compile-time - // error will occur. When the binding identifier is used with a uniform or shader storage block instanced as - // an array of size N, all elements of the array from binding through binding + N - 1 must be within this - // range." - // - if (! type.isOpaque() && type.getBasicType() != EbtBlock) - error(loc, "requires block, or sampler/image, or atomic-counter type", "binding", ""); - if (type.getBasicType() == EbtSampler) { - int lastBinding = qualifier.layoutBinding; - if (type.isArray()) { - if (spvVersion.vulkan == 0) { - if (type.isSizedArray()) - lastBinding += (type.getCumulativeArraySize() - 1); - else { -#ifndef GLSLANG_WEB - warn(loc, "assuming binding count of one for compile-time checking of binding numbers for unsized array", "[]", ""); -#endif - } - } - } -#ifndef GLSLANG_WEB - if (spvVersion.vulkan == 0 && lastBinding >= resources.maxCombinedTextureImageUnits) - error(loc, "sampler binding not less than gl_MaxCombinedTextureImageUnits", "binding", type.isArray() ? "(using array)" : ""); -#endif - } - if (type.isAtomic() && !spvVersion.vulkanRelaxed) { - if (qualifier.layoutBinding >= (unsigned int)resources.maxAtomicCounterBindings) { - error(loc, "atomic_uint binding is too large; see gl_MaxAtomicCounterBindings", "binding", ""); - return; - } - } - } else if (!intermediate.getAutoMapBindings()) { - // some types require bindings - - // atomic_uint - if (type.isAtomic()) - error(loc, "layout(binding=X) is required", "atomic_uint", ""); - - // SPIR-V - if (spvVersion.spv > 0) { - if (qualifier.isUniformOrBuffer()) { - if (type.getBasicType() == EbtBlock && !qualifier.isPushConstant() && - !qualifier.isShaderRecord() && - !qualifier.hasAttachment() && - !qualifier.hasBufferReference()) - 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", "[][]", ""); - } - } - - // "The offset qualifier can only be used on block members of blocks..." - if (qualifier.hasOffset()) { - if (type.getBasicType() == EbtBlock) - error(loc, "only applies to block members, not blocks", "offset", ""); - } - - // Image format - if (qualifier.hasFormat()) { - if (! type.isImage()) - error(loc, "only apply to images", TQualifier::getLayoutFormatString(qualifier.getFormat()), ""); - else { - if (type.getSampler().type == EbtFloat && qualifier.getFormat() > ElfFloatGuard) - error(loc, "does not apply to floating point images", TQualifier::getLayoutFormatString(qualifier.getFormat()), ""); - if (type.getSampler().type == EbtInt && (qualifier.getFormat() < ElfFloatGuard || qualifier.getFormat() > ElfIntGuard)) - error(loc, "does not apply to signed integer images", TQualifier::getLayoutFormatString(qualifier.getFormat()), ""); - if (type.getSampler().type == EbtUint && qualifier.getFormat() < ElfIntGuard) - error(loc, "does not apply to unsigned integer images", TQualifier::getLayoutFormatString(qualifier.getFormat()), ""); - - if (isEsProfile()) { - // "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.getFormat() == ElfR32f || qualifier.getFormat() == ElfR32i || qualifier.getFormat() == ElfR32ui)) { - if (! qualifier.isReadOnly() && ! qualifier.isWriteOnly()) - error(loc, "format requires readonly or writeonly memory qualifier", TQualifier::getLayoutFormatString(qualifier.getFormat()), ""); - } - } - } - } else if (type.isImage() && ! qualifier.isWriteOnly()) { - 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.isPushConstant()) { - if (type.getBasicType() != EbtBlock) - error(loc, "can only be used with a block", "push_constant", ""); - if (type.isArray()) - error(loc, "Push constants blocks can't be an array", "push_constant", ""); - } - - if (qualifier.hasBufferReference() && type.getBasicType() != EbtBlock) - error(loc, "can only be used with a block", "buffer_reference", ""); - - if (qualifier.isShaderRecord() && type.getBasicType() != EbtBlock) - error(loc, "can only be used with a block", "shaderRecordNV", ""); - - // input attachment - if (type.isSubpass()) { - if (! qualifier.hasAttachment()) - error(loc, "requires an input_attachment_index layout qualifier", "subpass", ""); - } else { - if (qualifier.hasAttachment()) - error(loc, "can only be used with a subpass", "input_attachment_index", ""); - } - - // specialization-constant id - if (qualifier.hasSpecConstantId()) { - if (type.getQualifier().storage != EvqConst) - error(loc, "can only be applied to 'const'-qualified scalar", "constant_id", ""); - if (! type.isScalar()) - 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: - case EbtUint64: - case EbtBool: - case EbtFloat: - case EbtDouble: - case EbtFloat16: - break; - default: - error(loc, "cannot be applied to this type", "constant_id", ""); - break; - } - } -} - -static bool storageCanHaveLayoutInBlock(const enum TStorageQualifier storage) -{ - switch (storage) { - case EvqUniform: - case EvqBuffer: - case EvqShared: - return true; - default: - return false; - } -} - -// Do layout error checking that can be done within a layout qualifier proper, not needing to know -// if there are blocks, atomic counters, variables, etc. -void TParseContext::layoutQualifierCheck(const TSourceLoc& loc, const TQualifier& qualifier) -{ - if (qualifier.storage == EvqShared && qualifier.hasLayout()) { - if (spvVersion.spv > 0 && spvVersion.spv < EShTargetSpv_1_4) { - error(loc, "shared block requires at least SPIR-V 1.4", "shared block", ""); - } - profileRequires(loc, EEsProfile | ECoreProfile | ECompatibilityProfile, 0, E_GL_EXT_shared_memory_block, "shared block"); - } - - // "It is a compile-time error to use *component* without also specifying the location qualifier (order does not matter)." - if (qualifier.hasComponent() && ! qualifier.hasLocation()) - error(loc, "must specify 'location' to use 'component'", "component", ""); - - if (qualifier.hasAnyLocation()) { - - // "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) { -#ifndef GLSLANG_WEB - case EvqVaryingIn: - { - const char* feature = "location qualifier on input"; - if (isEsProfile() && version < 310) - requireStage(loc, EShLangVertex, feature); - else - requireStage(loc, (EShLanguageMask)~EShLangComputeMask, feature); - if (language == EShLangVertex) { - const char* exts[2] = { E_GL_ARB_separate_shader_objects, E_GL_ARB_explicit_attrib_location }; - profileRequires(loc, ~EEsProfile, 330, 2, exts, feature); - profileRequires(loc, EEsProfile, 300, nullptr, feature); - } else { - profileRequires(loc, ~EEsProfile, 410, E_GL_ARB_separate_shader_objects, feature); - profileRequires(loc, EEsProfile, 310, nullptr, feature); - } - break; - } - case EvqVaryingOut: - { - const char* feature = "location qualifier on output"; - if (isEsProfile() && version < 310) - requireStage(loc, EShLangFragment, feature); - else - requireStage(loc, (EShLanguageMask)~EShLangComputeMask, feature); - if (language == EShLangFragment) { - const char* exts[2] = { E_GL_ARB_separate_shader_objects, E_GL_ARB_explicit_attrib_location }; - profileRequires(loc, ~EEsProfile, 330, 2, exts, feature); - profileRequires(loc, EEsProfile, 300, nullptr, feature); - } else { - profileRequires(loc, ~EEsProfile, 410, E_GL_ARB_separate_shader_objects, feature); - profileRequires(loc, EEsProfile, 310, nullptr, feature); - } - break; - } -#endif - case EvqUniform: - case EvqBuffer: - { - const char* feature = "location qualifier on uniform or buffer"; - requireProfile(loc, EEsProfile | ECoreProfile | ECompatibilityProfile | ENoProfile, feature); - profileRequires(loc, ~EEsProfile, 330, E_GL_ARB_explicit_attrib_location, feature); - profileRequires(loc, ~EEsProfile, 430, E_GL_ARB_explicit_uniform_location, feature); - profileRequires(loc, EEsProfile, 310, nullptr, feature); - break; - } - default: - break; - } - if (qualifier.hasIndex()) { - if (qualifier.storage != EvqVaryingOut) - error(loc, "can only be used on an output", "index", ""); - if (! qualifier.hasLocation()) - error(loc, "can only be used with an explicit location", "index", ""); - } - } - - if (qualifier.hasBinding()) { - if (! qualifier.isUniformOrBuffer() && !qualifier.isTaskMemory()) - error(loc, "requires uniform or buffer storage qualifier", "binding", ""); - } - if (qualifier.hasStream()) { - if (!qualifier.isPipeOutput()) - error(loc, "can only be used on an output", "stream", ""); - } - if (qualifier.hasXfb()) { - if (!qualifier.isPipeOutput()) - error(loc, "can only be used on an output", "xfb layout qualifier", ""); - } - if (qualifier.hasUniformLayout()) { - if (!storageCanHaveLayoutInBlock(qualifier.storage) && !qualifier.isTaskMemory()) { - if (qualifier.hasMatrix() || qualifier.hasPacking()) - error(loc, "matrix or packing qualifiers can only be used on a uniform or buffer", "layout", ""); - if (qualifier.hasOffset() || qualifier.hasAlign()) - error(loc, "offset/align can only be used on a uniform or buffer", "layout", ""); - } - } - if (qualifier.isPushConstant()) { - if (qualifier.storage != EvqUniform) - error(loc, "can only be used with a uniform", "push_constant", ""); - if (qualifier.hasSet()) - error(loc, "cannot be used with push_constant", "set", ""); - if (qualifier.hasBinding()) - error(loc, "cannot be used with push_constant", "binding", ""); - } - if (qualifier.hasBufferReference()) { - if (qualifier.storage != EvqBuffer) - error(loc, "can only be used with buffer", "buffer_reference", ""); - } - if (qualifier.isShaderRecord()) { - if (qualifier.storage != EvqBuffer) - error(loc, "can only be used with a buffer", "shaderRecordNV", ""); - if (qualifier.hasBinding()) - error(loc, "cannot be used with shaderRecordNV", "binding", ""); - if (qualifier.hasSet()) - error(loc, "cannot be used with shaderRecordNV", "set", ""); - - } - if (qualifier.storage == EvqHitAttr && qualifier.hasLayout()) { - error(loc, "cannot apply layout qualifiers to hitAttributeNV variable", "hitAttributeNV", ""); - } -} - -// For places that can't have shader-level layout qualifiers -void TParseContext::checkNoShaderLayouts(const TSourceLoc& loc, const TShaderQualifiers& shaderQualifiers) -{ -#ifndef GLSLANG_WEB - const char* message = "can only apply to a standalone qualifier"; - - 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", ""); - 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 || language == EShLangMeshNV) - error(loc, message, "max_vertices", ""); - else if (language == EShLangTessControl) - error(loc, message, "vertices", ""); - else - assert(0); - } - if (shaderQualifiers.earlyFragmentTests) - error(loc, message, "early_fragment_tests", ""); - if (shaderQualifiers.postDepthCoverage) - error(loc, message, "post_depth_coverage", ""); - if (shaderQualifiers.primitives != TQualifier::layoutNotSet) { - if (language == EShLangMeshNV) - error(loc, message, "max_primitives", ""); - else - assert(0); - } - if (shaderQualifiers.hasBlendEquation()) - error(loc, message, "blend equation", ""); - if (shaderQualifiers.numViews != TQualifier::layoutNotSet) - error(loc, message, "num_views", ""); - if (shaderQualifiers.interlockOrdering != EioNone) - error(loc, message, TQualifier::getInterlockOrderingString(shaderQualifiers.interlockOrdering), ""); - if (shaderQualifiers.layoutPrimitiveCulling) - error(loc, "can only be applied as standalone", "primitive_culling", ""); -#endif -} - -// Correct and/or advance an object's offset layout qualifier. -void TParseContext::fixOffset(const TSourceLoc& loc, TSymbol& symbol) -{ - const TQualifier& qualifier = symbol.getType().getQualifier(); -#ifndef GLSLANG_WEB - if (symbol.getType().isAtomic()) { - if (qualifier.hasBinding() && (int)qualifier.layoutBinding < resources.maxAtomicCounterBindings) { - - // Set the offset - int offset; - if (qualifier.hasOffset()) - offset = qualifier.layoutOffset; - else - offset = atomicUintOffsets[qualifier.layoutBinding]; - - if (offset % 4 != 0) - error(loc, "atomic counters offset should align based on 4:", "offset", "%d", offset); - - symbol.getWritableType().getQualifier().layoutOffset = offset; - - // Check for overlap - int numOffsets = 4; - if (symbol.getType().isArray()) { - if (symbol.getType().isSizedArray() && !symbol.getType().getArraySizes()->isInnerUnsized()) - 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", ""); - } - } - int repeated = intermediate.addUsedOffsets(qualifier.layoutBinding, offset, numOffsets); - if (repeated >= 0) - error(loc, "atomic counters sharing the same offset:", "offset", "%d", repeated); - - // Bump the default offset - atomicUintOffsets[qualifier.layoutBinding] = offset + numOffsets; - } - } -#endif -} - -// -// Look up a function name in the symbol table, and make sure it is a function. -// -// Return the function symbol if found, otherwise nullptr. -// -const TFunction* TParseContext::findFunction(const TSourceLoc& loc, const TFunction& call, bool& builtIn) -{ - if (symbolTable.isFunctionNameVariable(call.getName())) { - error(loc, "can't use function syntax on variable", call.getName().c_str(), ""); - return nullptr; - } - -#ifdef GLSLANG_WEB - return findFunctionExact(loc, call, builtIn); -#endif - - const TFunction* function = nullptr; - - // debugPrintfEXT has var args and is in the symbol table as "debugPrintfEXT()", - // mangled to "debugPrintfEXT(" - if (call.getName() == "debugPrintfEXT") { - TSymbol* symbol = symbolTable.find("debugPrintfEXT(", &builtIn); - if (symbol) - return symbol->getAsFunction(); - } - - bool explicitTypesEnabled = extensionTurnedOn(E_GL_EXT_shader_explicit_arithmetic_types) || - extensionTurnedOn(E_GL_EXT_shader_explicit_arithmetic_types_int8) || - extensionTurnedOn(E_GL_EXT_shader_explicit_arithmetic_types_int16) || - extensionTurnedOn(E_GL_EXT_shader_explicit_arithmetic_types_int32) || - extensionTurnedOn(E_GL_EXT_shader_explicit_arithmetic_types_int64) || - extensionTurnedOn(E_GL_EXT_shader_explicit_arithmetic_types_float16) || - extensionTurnedOn(E_GL_EXT_shader_explicit_arithmetic_types_float32) || - extensionTurnedOn(E_GL_EXT_shader_explicit_arithmetic_types_float64); - - if (isEsProfile()) - function = (explicitTypesEnabled && version >= 310) - ? findFunctionExplicitTypes(loc, call, builtIn) - : ((extensionTurnedOn(E_GL_EXT_shader_implicit_conversions) && version >= 310) - ? findFunction120(loc, call, builtIn) - : findFunctionExact(loc, call, builtIn)); - else if (version < 120) - function = findFunctionExact(loc, call, builtIn); - else if (version < 400) { - bool needfindFunction400 = extensionTurnedOn(E_GL_ARB_gpu_shader_fp64) || extensionTurnedOn(E_GL_ARB_gpu_shader5); - function = needfindFunction400 ? findFunction400(loc, call, builtIn) : findFunction120(loc, call, builtIn); - } - else if (explicitTypesEnabled) - function = findFunctionExplicitTypes(loc, call, builtIn); - else - function = findFunction400(loc, call, builtIn); - - return function; -} - -// Function finding algorithm for ES and desktop 110. -const TFunction* TParseContext::findFunctionExact(const TSourceLoc& loc, const TFunction& call, bool& builtIn) -{ - TSymbol* symbol = symbolTable.find(call.getMangledName(), &builtIn); - if (symbol == nullptr) { - error(loc, "no matching overloaded function found", call.getName().c_str(), ""); - - return nullptr; - } - - return symbol->getAsFunction(); -} - -// Function finding algorithm for desktop versions 120 through 330. -const TFunction* TParseContext::findFunction120(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(); - - // exact match not found, look through a list of overloaded functions of the same name - - // "If no exact match is found, then [implicit conversions] will be applied to find a match. Mismatched types - // on input parameters (in or inout or default) must have a conversion from the calling argument type to the - // formal parameter type. Mismatched types on output parameters (out or inout) must have a conversion - // from the formal parameter type to the calling argument type. When argument conversions are used to find - // a match, it is a semantic error if there are multiple ways to apply these conversions to make the call match - // more than one function." - - const TFunction* candidate = nullptr; - TVector candidateList; - symbolTable.findFunctionNameList(call.getMangledName(), candidateList, builtIn); - - for (auto it = candidateList.begin(); it != candidateList.end(); ++it) { - const TFunction& function = *(*it); - - // to even be a potential match, number of arguments has to match - if (call.getParamCount() != function.getParamCount()) - continue; - - bool possibleMatch = true; - for (int i = 0; i < function.getParamCount(); ++i) { - // same types is easy - if (*function[i].type == *call[i].type) - continue; - - // We have a mismatch in type, see if it is implicitly convertible - - if (function[i].type->isArray() || call[i].type->isArray() || - ! function[i].type->sameElementShape(*call[i].type)) - possibleMatch = false; - else { - // do direction-specific checks for conversion of basic type - if (function[i].type->getQualifier().isParamInput()) { - if (! intermediate.canImplicitlyPromote(call[i].type->getBasicType(), function[i].type->getBasicType())) - possibleMatch = false; - } - if (function[i].type->getQualifier().isParamOutput()) { - if (! intermediate.canImplicitlyPromote(function[i].type->getBasicType(), call[i].type->getBasicType())) - possibleMatch = false; - } - } - if (! possibleMatch) - break; - } - if (possibleMatch) { - if (candidate) { - // our second match, meaning ambiguity - error(loc, "ambiguous function signature match: multiple signatures match under implicit type conversion", call.getName().c_str(), ""); - } else - candidate = &function; - } - } - - if (candidate == nullptr) - error(loc, "no matching overloaded function found", call.getName().c_str(), ""); - - return candidate; -} - -// Function finding algorithm for desktop version 400 and above. -// -// "When function calls are resolved, an exact type match for all the arguments -// is sought. If an exact match is found, all other functions are ignored, and -// the exact match is used. If no exact match is found, then the implicit -// conversions in section 4.1.10 Implicit Conversions will be applied to find -// a match. Mismatched types on input parameters (in or inout or default) must -// have a conversion from the calling argument type to the formal parameter type. -// Mismatched types on output parameters (out or inout) must have a conversion -// from the formal parameter type to the calling argument type. -// -// "If implicit conversions can be used to find more than one matching function, -// a single best-matching function is sought. To determine a best match, the -// conversions between calling argument and formal parameter types are compared -// for each function argument and pair of matching functions. After these -// comparisons are performed, each pair of matching functions are compared. -// A function declaration A is considered a better match than function -// declaration B if -// -// * for at least one function argument, the conversion for that argument in A -// is better than the corresponding conversion in B; and -// * there is no function argument for which the conversion in B is better than -// the corresponding conversion in A. -// -// "If a single function declaration is considered a better match than every -// other matching function declaration, it will be used. Otherwise, a -// compile-time semantic error for an ambiguous overloaded function call occurs. -// -// "To determine whether the conversion for a single argument in one match is -// better than that for another match, the following rules are applied, in order: -// -// 1. An exact match is better than a match involving any implicit conversion. -// 2. A match involving an implicit conversion from float to double is better -// than a match involving any other implicit conversion. -// 3. A match involving an implicit conversion from either int or uint to float -// is better than a match involving an implicit conversion from either int -// or uint to double. -// -// "If none of the rules above apply to a particular pair of conversions, neither -// conversion is considered better than the other." -// -const TFunction* TParseContext::findFunction400(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,builtIn](const TType& from, const TType& to, TOperator, int) -> bool { - if (from == to) - return true; - if (from.coopMatParameterOK(to)) - return true; - // Allow a sized array to be passed through an unsized array parameter, for coopMatLoad/Store functions - if (builtIn && from.isArray() && to.isUnsizedArray()) { - TType fromElementType(from, 0); - TType toElementType(to, 0); - if (fromElementType == toElementType) - return true; - } - if (from.isArray() || to.isArray() || ! from.sameElementShape(to)) - return false; - if (from.isCoopMat() && to.isCoopMat()) - return from.sameCoopMatBaseType(to); - 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 = [](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. float -> double is better - if (from.getBasicType() == EbtFloat) { - if (to2.getBasicType() == EbtDouble && to1.getBasicType() != EbtDouble) - return true; - } - - // 3. -> float is better than -> double - return to2.getBasicType() == EbtFloat && to1.getBasicType() == EbtDouble; - }; - - // 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; -} - -// "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,builtIn](const TType& from, const TType& to, TOperator, int) -> bool { - if (from == to) - return true; - if (from.coopMatParameterOK(to)) - return true; - // Allow a sized array to be passed through an unsized array parameter, for coopMatLoad/Store functions - if (builtIn && from.isArray() && to.isUnsizedArray()) { - TType fromElementType(from, 0); - TType toElementType(to, 0); - if (fromElementType == toElementType) - return true; - } - if (from.isArray() || to.isArray() || ! from.sameElementShape(to)) - return false; - if (from.isCoopMat() && to.isCoopMat()) - return from.sameCoopMatBaseType(to); - 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; -} - -// -// Adjust function calls that aren't declared in Vulkan to a -// calls with equivalent effects -// -TIntermTyped* TParseContext::vkRelaxedRemapFunctionCall(const TSourceLoc& loc, TFunction* function, TIntermNode* arguments) -{ - TIntermTyped* result = nullptr; - -#ifndef GLSLANG_WEB - if (function->getBuiltInOp() != EOpNull) { - return nullptr; - } - - if (function->getName() == "atomicCounterIncrement") { - // change atomicCounterIncrement into an atomicAdd of 1 - TString name("atomicAdd"); - TType uintType(EbtUint); - - TFunction realFunc(&name, function->getType()); - - for (int i = 0; i < function->getParamCount(); ++i) { - realFunc.addParameter((*function)[i]); - } - - TParameter tmpP = { 0, &uintType }; - realFunc.addParameter(tmpP); - arguments = intermediate.growAggregate(arguments, intermediate.addConstantUnion(1, loc, true)); - - result = handleFunctionCall(loc, &realFunc, arguments); - } else if (function->getName() == "atomicCounterDecrement") { - // change atomicCounterDecrement into an atomicAdd with -1 - // and subtract 1 from result, to return post-decrement value - TString name("atomicAdd"); - TType uintType(EbtUint); - - TFunction realFunc(&name, function->getType()); - - for (int i = 0; i < function->getParamCount(); ++i) { - realFunc.addParameter((*function)[i]); - } - - TParameter tmpP = { 0, &uintType }; - realFunc.addParameter(tmpP); - arguments = intermediate.growAggregate(arguments, intermediate.addConstantUnion(-1, loc, true)); - - result = handleFunctionCall(loc, &realFunc, arguments); - - // post decrement, so that it matches AtomicCounterDecrement semantics - if (result) { - result = handleBinaryMath(loc, "-", EOpSub, result, intermediate.addConstantUnion(1, loc, true)); - } - } else if (function->getName() == "atomicCounter") { - // change atomicCounter into a direct read of the variable - if (arguments->getAsTyped()) { - result = arguments->getAsTyped(); - } - } -#endif - - return result; -} - -// When a declaration includes a type, but not a variable name, it can be used -// to establish defaults. -void TParseContext::declareTypeDefaults(const TSourceLoc& loc, const TPublicType& publicType) -{ -#ifndef GLSLANG_WEB - if (publicType.basicType == EbtAtomicUint && publicType.qualifier.hasBinding()) { - if (publicType.qualifier.layoutBinding >= (unsigned int)resources.maxAtomicCounterBindings) { - error(loc, "atomic_uint binding is too large", "binding", ""); - return; - } - if (publicType.qualifier.hasOffset()) - atomicUintOffsets[publicType.qualifier.layoutBinding] = publicType.qualifier.layoutOffset; - return; - } - - if (publicType.arraySizes) { - error(loc, "expect an array name", "", ""); - } - - if (publicType.qualifier.hasLayout() && !publicType.qualifier.hasBufferReference()) - warn(loc, "useless application of layout qualifier", "layout", ""); -#endif -} - -bool TParseContext::vkRelaxedRemapUniformVariable(const TSourceLoc& loc, TString& identifier, const TPublicType&, - TArraySizes*, TIntermTyped* initializer, TType& type) -{ - if (parsingBuiltins || symbolTable.atBuiltInLevel() || !symbolTable.atGlobalLevel() || - type.getQualifier().storage != EvqUniform || - !(type.containsNonOpaque() -#ifndef GLSLANG_WEB - || type.getBasicType() == EbtAtomicUint -#endif - )) { - return false; - } - - if (type.getQualifier().hasLocation()) { - warn(loc, "ignoring layout qualifier for uniform", identifier.c_str(), "location"); - type.getQualifier().layoutLocation = TQualifier::layoutLocationEnd; - } - - if (initializer) { - warn(loc, "Ignoring initializer for uniform", identifier.c_str(), ""); - initializer = nullptr; - } - - if (type.isArray()) { - // do array size checks here - arraySizesCheck(loc, type.getQualifier(), type.getArraySizes(), initializer, false); - - if (arrayQualifierError(loc, type.getQualifier()) || arrayError(loc, type)) { - error(loc, "array param error", identifier.c_str(), ""); - } - } - - // do some checking on the type as it was declared - layoutTypeCheck(loc, type); - - int bufferBinding = TQualifier::layoutBindingEnd; - TVariable* updatedBlock = nullptr; - -#ifndef GLSLANG_WEB - // Convert atomic_uint into members of a buffer block - if (type.isAtomic()) { - type.setBasicType(EbtUint); - type.getQualifier().storage = EvqBuffer; - - type.getQualifier().volatil = true; - type.getQualifier().coherent = true; - - // xxTODO: use logic from fixOffset() to apply explicit member offset - bufferBinding = type.getQualifier().layoutBinding; - type.getQualifier().layoutBinding = TQualifier::layoutBindingEnd; - type.getQualifier().explicitOffset = false; - growAtomicCounterBlock(bufferBinding, loc, type, identifier, nullptr); - updatedBlock = atomicCounterBuffers[bufferBinding]; - } -#endif - - if (!updatedBlock) { - growGlobalUniformBlock(loc, type, identifier, nullptr); - updatedBlock = globalUniformBlock; - } - - // - // don't assign explicit member offsets here - // if any are assigned, need to be updated here and in the merge/link step - // fixBlockUniformOffsets(updatedBlock->getWritableType().getQualifier(), *updatedBlock->getWritableType().getWritableStruct()); - - // checks on update buffer object - layoutObjectCheck(loc, *updatedBlock); - - TSymbol* symbol = symbolTable.find(identifier); - - if (!symbol) { - if (updatedBlock == globalUniformBlock) - error(loc, "error adding uniform to default uniform block", identifier.c_str(), ""); - else - error(loc, "error adding atomic counter to atomic counter block", identifier.c_str(), ""); - return false; - } - - // merge qualifiers - mergeObjectLayoutQualifiers(updatedBlock->getWritableType().getQualifier(), type.getQualifier(), true); - - return true; -} - -// -// 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. -// -// '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) -{ - // 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 (initializer) { - if (type.getBasicType() == EbtRayQuery) { - error(loc, "ray queries can only be initialized by using the rayQueryInitializeEXT intrinsic:", "=", identifier.c_str()); - } - } - - if (type.isCoopMat()) { - intermediate.setUseVulkanMemoryModel(); - intermediate.setUseStorageBuffer(); - - if (!publicType.typeParameters || publicType.typeParameters->getNumDims() != 4) { - error(loc, "expected four type parameters", identifier.c_str(), ""); - } - if (publicType.typeParameters) { - if (isTypeFloat(publicType.basicType) && - publicType.typeParameters->getDimSize(0) != 16 && - publicType.typeParameters->getDimSize(0) != 32 && - publicType.typeParameters->getDimSize(0) != 64) { - error(loc, "expected 16, 32, or 64 bits for first type parameter", identifier.c_str(), ""); - } - if (isTypeInt(publicType.basicType) && - publicType.typeParameters->getDimSize(0) != 8 && - publicType.typeParameters->getDimSize(0) != 32) { - error(loc, "expected 8 or 32 bits for first type parameter", identifier.c_str(), ""); - } - } - - } else { - if (publicType.typeParameters && publicType.typeParameters->getNumDims() != 0) { - error(loc, "unexpected type parameters", identifier.c_str(), ""); - } - } - - if (voidErrorCheck(loc, identifier, type.getBasicType())) - return nullptr; - - if (initializer) - rValueErrorCheck(loc, "initializer", initializer); - else - nonInitConstCheck(loc, identifier, type); - - samplerCheck(loc, type, identifier, initializer); - transparentOpaqueCheck(loc, type, identifier); -#ifndef GLSLANG_WEB - atomicUintCheck(loc, type, identifier); - accStructCheck(loc, type, identifier); - checkAndResizeMeshViewDim(loc, type, /*isBlockMember*/ false); -#endif - if (type.getQualifier().storage == EvqConst && type.containsReference()) { - error(loc, "variables with reference type can't have qualifier 'const'", "qualifier", ""); - } - - if (type.getQualifier().storage != EvqUniform && type.getQualifier().storage != EvqBuffer) { - if (type.contains16BitFloat()) - requireFloat16Arithmetic(loc, "qualifier", "float16 types can only be in uniform block or buffer storage"); - if (type.contains16BitInt()) - requireInt16Arithmetic(loc, "qualifier", "(u)int16 types can only be in uniform block or buffer storage"); - if (type.contains8BitInt()) - requireInt8Arithmetic(loc, "qualifier", "(u)int8 types can only be in uniform block or buffer storage"); - } - - if (type.getQualifier().storage == EvqShared && type.containsCoopMat()) - error(loc, "qualifier", "Cooperative matrix types must not be used in shared memory", ""); - - if (profile == EEsProfile) { - if (type.getQualifier().isPipeInput() && type.getBasicType() == EbtStruct) { - if (type.getQualifier().isArrayedIo(language)) { - TType perVertexType(type, 0); - if (perVertexType.containsArray() && perVertexType.containsBuiltIn() == false) { - error(loc, "A per vertex structure containing an array is not allowed as input in ES", type.getTypeName().c_str(), ""); - } - } - else if (type.containsArray() && type.containsBuiltIn() == false) { - error(loc, "A structure containing an array is not allowed as input in ES", type.getTypeName().c_str(), ""); - } - if (type.containsStructure()) - error(loc, "A structure containing an struct is not allowed as input in ES", type.getTypeName().c_str(), ""); - } - } - - 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", ""); - if (identifier != "gl_FragDepth" && publicType.shaderQualifiers.getDepth() != EldNone) - error(loc, "can only apply depth layout to gl_FragDepth", "layout qualifier", ""); - - // Check for redeclaration of built-ins and/or attempting to declare a reserved name - TSymbol* symbol = redeclareBuiltinVariable(loc, identifier, type.getQualifier(), publicType.shaderQualifiers); - if (symbol == nullptr) - reservedErrorCheck(loc, identifier); - - if (symbol == nullptr && spvVersion.vulkan > 0 && spvVersion.vulkanRelaxed) { - bool remapped = vkRelaxedRemapUniformVariable(loc, identifier, publicType, arraySizes, initializer, type); - - if (remapped) { - return nullptr; - } - } - - inheritGlobalDefaults(type.getQualifier()); - - // Declare the variable - if (type.isArray()) { - // Check that implicit sizing is only where allowed. - arraySizesCheck(loc, type.getQualifier(), type.getArraySizes(), initializer, false); - - if (! arrayQualifierError(loc, type.getQualifier()) && ! arrayError(loc, type)) - declareArray(loc, identifier, type, symbol); - - if (initializer) { - profileRequires(loc, ENoProfile, 120, E_GL_3DL_array_objects, "initializer"); - profileRequires(loc, EEsProfile, 300, nullptr, "initializer"); - } - } else { - // non-array case - if (symbol == nullptr) - symbol = declareNonArray(loc, identifier, type); - else if (type != symbol->getType()) - error(loc, "cannot change the type of", "redeclaration", symbol->getName().c_str()); - } - - if (symbol == nullptr) - return nullptr; - - // Deal with initializer - TIntermNode* initNode = nullptr; - if (symbol != nullptr && initializer) { - 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); - } - - // look for errors in layout qualifier use - layoutObjectCheck(loc, *symbol); - - // fix up - fixOffset(loc, *symbol); - - return initNode; -} - -// Pick up global defaults from the provide global defaults into dst. -void TParseContext::inheritGlobalDefaults(TQualifier& dst) const -{ -#ifndef GLSLANG_WEB - if (dst.storage == EvqVaryingOut) { - if (! dst.hasStream() && language == EShLangGeometry) - dst.layoutStream = globalOutputDefaults.layoutStream; - if (! dst.hasXfbBuffer()) - dst.layoutXfbBuffer = globalOutputDefaults.layoutXfbBuffer; - } -#endif -} - -// -// 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* TParseContext::makeInternalVariable(const char* name, const TType& type) const -{ - TString* nameString = NewPoolTString(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* TParseContext::declareNonArray(const TSourceLoc& loc, const TString& identifier, const TType& type) -{ - // make a new variable - TVariable* variable = new TVariable(&identifier, type); - -#ifndef GLSLANG_WEB - ioArrayCheck(loc, type, identifier); -#endif - - // add variable to symbol table - if (symbolTable.insert(*variable)) { - if (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* TParseContext::executeInitializer(const TSourceLoc& loc, TIntermTyped* initializer, TVariable* variable) -{ - // A null initializer is an aggregate that hasn't had an op assigned yet - // (still EOpNull, no relation to nullInit), and has no children. - bool nullInit = initializer->getAsAggregate() && initializer->getAsAggregate()->getOp() == EOpNull && - initializer->getAsAggregate()->getSequence().size() == 0; - - // - // 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 (! (qualifier == EvqTemporary || qualifier == EvqGlobal || qualifier == EvqConst || - (qualifier == EvqUniform && !isEsProfile() && version >= 120))) { - if (qualifier == EvqShared) { - // GL_EXT_null_initializer allows this for shared, if it's a null initializer - if (nullInit) { - const char* feature = "initialization with shared qualifier"; - profileRequires(loc, EEsProfile, 0, E_GL_EXT_null_initializer, feature); - profileRequires(loc, ~EEsProfile, 0, E_GL_EXT_null_initializer, feature); - } else { - error(loc, "initializer can only be a null initializer ('{}')", "shared", ""); - } - } else { - error(loc, " cannot initialize this type of qualifier ", - variable->getType().getStorageQualifierString(), ""); - return nullptr; - } - } - - if (nullInit) { - // only some types can be null initialized - if (variable->getType().containsUnsizedArray()) { - error(loc, "null initializers can't size unsized arrays", "{}", ""); - return nullptr; - } - if (variable->getType().containsOpaque()) { - error(loc, "null initializers can't be used on opaque values", "{}", ""); - return nullptr; - } - variable->getWritableType().getQualifier().setNullInit(); - return nullptr; - } - - arrayObjectCheck(loc, variable->getType(), "array initializer"); - - // - // 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(); -#ifndef GLSLANG_WEB - initializer = convertInitializerList(loc, skeletalType, initializer); -#endif - if (! initializer) { - // error recovery; don't leave const without constant values - if (qualifier == EvqConst) - variable->getWritableType().getQualifier().makeTemporary(); - 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)); - } - } - } - - // Uniforms require a compile-time constant initializer - if (qualifier == EvqUniform && ! initializer->getType().getQualifier().isFrontEndConstant()) { - error(loc, "uniform initializers must be constant", "=", "'%s'", - variable->getType().getCompleteString(intermediate.getEnhancedMsgs()).c_str()); - variable->getWritableType().getQualifier().makeTemporary(); - return nullptr; - } - // Global consts require a constant initializer (specialization constant is okay) - if (qualifier == EvqConst && symbolTable.atGlobalLevel() && ! initializer->getType().getQualifier().isConstant()) { - error(loc, "global const initializers must be constant", "=", "'%s'", - variable->getType().getCompleteString(intermediate.getEnhancedMsgs()).c_str()); - variable->getWritableType().getQualifier().makeTemporary(); - return nullptr; - } - - // Const variables require a constant initializer, depending on version - if (qualifier == EvqConst) { - if (! initializer->getType().getQualifier().isConstant()) { - const char* initFeature = "non-constant initializer"; - requireProfile(loc, ~EEsProfile, initFeature); - profileRequires(loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); - variable->getWritableType().getQualifier().storage = EvqConstReadOnly; - qualifier = EvqConstReadOnly; - } - } else { - // Non-const global variables in ES need a const initializer. - // - // "In declarations of global variables with no storage qualifier or with a const - // qualifier any initializer must be a constant expression." - if (symbolTable.atGlobalLevel() && ! initializer->getType().getQualifier().isConstant()) { - const char* initFeature = - "non-constant global initializer (needs GL_EXT_shader_non_constant_global_initializers)"; - if (isEsProfile()) { - if (relaxedErrors() && ! extensionTurnedOn(E_GL_EXT_shader_non_constant_global_initializers)) - warn(loc, "not allowed in this version", initFeature, ""); - else - profileRequires(loc, EEsProfile, 0, E_GL_EXT_shader_non_constant_global_initializers, initFeature); - } - } - } - - 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->getType().getQualifier().isConstant() || - variable->getType() != initializer->getType()) { - error(loc, "non-matching or non-convertible constant type for const initializer", - variable->getType().getStorageQualifierString(), ""); - variable->getWritableType().getQualifier().makeTemporary(); - return nullptr; - } - - // We either have a folded constant in getAsConstantUnion, or we have to use - // the initializer's subtree in the AST to represent the computation of a - // specialization constant. - assert(initializer->getAsConstantUnion() || initializer->getType().getQualifier().isSpecConstant()); - if (initializer->getAsConstantUnion()) - variable->setConstArray(initializer->getAsConstantUnion()->getConstArray()); - else { - // It's a specialization constant. - variable->getWritableType().getQualifier().makeSpecConstant(); - - // Keep the subtree that computes the specialization constant with the variable. - // Later, a symbol node will adopt the subtree from the variable. - variable->setConstSubtree(initializer); - } - } else { - // normal assigning of a value to a variable... - specializationCheck(loc, initializer->getType(), "initializer"); - TIntermSymbol* intermSymbol = intermediate.addSymbol(*variable, loc); - TIntermTyped* initNode = intermediate.addAssign(EOpAssign, intermSymbol, initializer, loc); - if (! initNode) - assignError(loc, "=", intermSymbol->getCompleteString(intermediate.getEnhancedMsgs()), initializer->getCompleteString(intermediate.getEnhancedMsgs())); - - return initNode; - } - - return nullptr; -} - -// -// Reprocess any initializer-list (the "{ ... }" syntax) 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. However, it has to in parallel walk the 'type' -// passed in, as type cannot be deduced from an initializer list. -// -TIntermTyped* TParseContext::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) - return 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 - 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)); - } - } - - TType elementType(arrayType, 0); // dereferenced type - for (size_t i = 0; i < initList->getSequence().size(); ++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()) { - 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.getMatrixCols() != (int)initList->getSequence().size()) { - error(loc, "wrong number of matrix columns:", "initializer list", type.getCompleteString(intermediate.getEnhancedMsgs()).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()) { - if (type.getVectorSize() != (int)initList->getSequence().size()) { - error(loc, "wrong vector size (or rows in a matrix column):", "initializer list", type.getCompleteString(intermediate.getEnhancedMsgs()).c_str()); - return nullptr; - } - TBasicType destType = type.getBasicType(); - for (int i = 0; i < type.getVectorSize(); ++i) { - TBasicType initType = initList->getSequence()[i]->getAsTyped()->getBasicType(); - if (destType != initType && !intermediate.canImplicitlyPromote(initType, destType)) { - error(loc, "type mismatch in initializer list", "initializer list", type.getCompleteString(intermediate.getEnhancedMsgs()).c_str()); - return nullptr; - } - - } - } else { - error(loc, "unexpected initializer-list type:", "initializer list", type.getCompleteString(intermediate.getEnhancedMsgs()).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); -} - -// -// 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) -{ - if (node == nullptr || node->getAsTyped() == nullptr) - return nullptr; - rValueErrorCheck(loc, "constructor", node->getAsTyped()); - - TIntermAggregate* aggrNode = node->getAsAggregate(); - TOperator op = intermediate.mapTypeToConstructorOp(type); - - // Combined texture-sampler constructors are completely semantic checked - // in constructorTextureSamplerError() - if (op == EOpConstructTextureSampler) { - if (aggrNode->getSequence()[1]->getAsTyped()->getType().getSampler().shadow) { - // Transfer depth into the texture (SPIR-V image) type, as a hint - // for tools to know this texture/image is a depth image. - aggrNode->getSequence()[0]->getAsTyped()->getWritableType().getSampler().shadow = true; - } - 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) - 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 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 *ret_node = intermediate.setAggregateOperator(aggrNode, op, type, loc); - - TIntermAggregate *agg_node = ret_node->getAsAggregate(); - if (agg_node && (agg_node->isVector() || agg_node->isArray() || agg_node->isMatrix())) - agg_node->updatePrecision(); - - return ret_node; -} - -// 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* 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 egregious 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; - - // - // 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 EOpConstructIVec2: - case EOpConstructIVec3: - case EOpConstructIVec4: - case EOpConstructInt: - basicOp = EOpConstructInt; - break; - - case EOpConstructUVec2: - if (node->getType().getBasicType() == EbtReference) { - requireExtensions(loc, 1, &E_GL_EXT_buffer_reference_uvec2, "reference conversion to uvec2"); - TIntermTyped* newNode = intermediate.addBuiltInFunctionCall(node->getLoc(), EOpConvPtrToUvec2, true, node, - type); - return newNode; - } - case EOpConstructUVec3: - case EOpConstructUVec4: - case EOpConstructUint: - basicOp = EOpConstructUint; - break; - - case EOpConstructBVec2: - case EOpConstructBVec3: - case EOpConstructBVec4: - case EOpConstructBool: - basicOp = EOpConstructBool; - break; - -#ifndef GLSLANG_WEB - - 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 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; - // 8/16-bit storage extensions don't support constructing composites of 8/16-bit types, - // so construct a 32-bit type and convert - if (!intermediate.getArithemeticFloat16Enabled()) { - TType tempType(EbtFloat, EvqTemporary, type.getVectorSize()); - newNode = node; - if (tempType != newNode->getType()) { - TOperator aggregateOp; - if (op == EOpConstructFloat16) - aggregateOp = EOpConstructFloat; - else - aggregateOp = (TOperator)(EOpConstructVec2 + op - EOpConstructF16Vec2); - newNode = intermediate.setAggregateOperator(newNode, aggregateOp, tempType, node->getLoc()); - } - newNode = intermediate.addConversion(EbtFloat16, newNode); - return newNode; - } - break; - - case EOpConstructI8Vec2: - case EOpConstructI8Vec3: - case EOpConstructI8Vec4: - case EOpConstructInt8: - basicOp = EOpConstructInt8; - // 8/16-bit storage extensions don't support constructing composites of 8/16-bit types, - // so construct a 32-bit type and convert - if (!intermediate.getArithemeticInt8Enabled()) { - TType tempType(EbtInt, EvqTemporary, type.getVectorSize()); - newNode = node; - if (tempType != newNode->getType()) { - TOperator aggregateOp; - if (op == EOpConstructInt8) - aggregateOp = EOpConstructInt; - else - aggregateOp = (TOperator)(EOpConstructIVec2 + op - EOpConstructI8Vec2); - newNode = intermediate.setAggregateOperator(newNode, aggregateOp, tempType, node->getLoc()); - } - newNode = intermediate.addConversion(EbtInt8, newNode); - return newNode; - } - break; - - case EOpConstructU8Vec2: - case EOpConstructU8Vec3: - case EOpConstructU8Vec4: - case EOpConstructUint8: - basicOp = EOpConstructUint8; - // 8/16-bit storage extensions don't support constructing composites of 8/16-bit types, - // so construct a 32-bit type and convert - if (!intermediate.getArithemeticInt8Enabled()) { - TType tempType(EbtUint, EvqTemporary, type.getVectorSize()); - newNode = node; - if (tempType != newNode->getType()) { - TOperator aggregateOp; - if (op == EOpConstructUint8) - aggregateOp = EOpConstructUint; - else - aggregateOp = (TOperator)(EOpConstructUVec2 + op - EOpConstructU8Vec2); - newNode = intermediate.setAggregateOperator(newNode, aggregateOp, tempType, node->getLoc()); - } - newNode = intermediate.addConversion(EbtUint8, newNode); - return newNode; - } - break; - - case EOpConstructI16Vec2: - case EOpConstructI16Vec3: - case EOpConstructI16Vec4: - case EOpConstructInt16: - basicOp = EOpConstructInt16; - // 8/16-bit storage extensions don't support constructing composites of 8/16-bit types, - // so construct a 32-bit type and convert - if (!intermediate.getArithemeticInt16Enabled()) { - TType tempType(EbtInt, EvqTemporary, type.getVectorSize()); - newNode = node; - if (tempType != newNode->getType()) { - TOperator aggregateOp; - if (op == EOpConstructInt16) - aggregateOp = EOpConstructInt; - else - aggregateOp = (TOperator)(EOpConstructIVec2 + op - EOpConstructI16Vec2); - newNode = intermediate.setAggregateOperator(newNode, aggregateOp, tempType, node->getLoc()); - } - newNode = intermediate.addConversion(EbtInt16, newNode); - return newNode; - } - break; - - case EOpConstructU16Vec2: - case EOpConstructU16Vec3: - case EOpConstructU16Vec4: - case EOpConstructUint16: - basicOp = EOpConstructUint16; - // 8/16-bit storage extensions don't support constructing composites of 8/16-bit types, - // so construct a 32-bit type and convert - if (!intermediate.getArithemeticInt16Enabled()) { - TType tempType(EbtUint, EvqTemporary, type.getVectorSize()); - newNode = node; - if (tempType != newNode->getType()) { - TOperator aggregateOp; - if (op == EOpConstructUint16) - aggregateOp = EOpConstructUint; - else - aggregateOp = (TOperator)(EOpConstructUVec2 + op - EOpConstructU16Vec2); - newNode = intermediate.setAggregateOperator(newNode, aggregateOp, tempType, node->getLoc()); - } - newNode = intermediate.addConversion(EbtUint16, newNode); - return newNode; - } - break; - - case EOpConstructI64Vec2: - case EOpConstructI64Vec3: - case EOpConstructI64Vec4: - case EOpConstructInt64: - basicOp = EOpConstructInt64; - break; - - case EOpConstructUint64: - if (type.isScalar() && node->getType().isReference()) { - TIntermTyped* newNode = intermediate.addBuiltInFunctionCall(node->getLoc(), EOpConvPtrToUint64, true, node, type); - return newNode; - } - // fall through - case EOpConstructU64Vec2: - case EOpConstructU64Vec3: - case EOpConstructU64Vec4: - basicOp = EOpConstructUint64; - break; - - case EOpConstructNonuniform: - // Make a nonuniform copy of node - newNode = intermediate.addBuiltInFunctionCall(node->getLoc(), EOpCopyObject, true, node, type); - return newNode; - - case EOpConstructReference: - // construct reference from reference - if (node->getType().isReference()) { - newNode = intermediate.addBuiltInFunctionCall(node->getLoc(), EOpConstructReference, true, node, type); - return newNode; - // construct reference from uint64 - } else if (node->getType().isScalar() && node->getType().getBasicType() == EbtUint64) { - TIntermTyped* newNode = intermediate.addBuiltInFunctionCall(node->getLoc(), EOpConvUint64ToPtr, true, node, - type); - return newNode; - // construct reference from uvec2 - } else if (node->getType().isVector() && node->getType().getBasicType() == EbtUint && - node->getVectorSize() == 2) { - requireExtensions(loc, 1, &E_GL_EXT_buffer_reference_uvec2, "uvec2 conversion to reference"); - TIntermTyped* newNode = intermediate.addBuiltInFunctionCall(node->getLoc(), EOpConvUvec2ToPtr, true, node, - type); - return newNode; - } else { - return nullptr; - } - - case EOpConstructCooperativeMatrix: - if (!node->getType().isCoopMat()) { - if (type.getBasicType() != node->getType().getBasicType()) { - node = intermediate.addConversion(type.getBasicType(), node); - if (node == nullptr) - return nullptr; - } - node = intermediate.setAggregateOperator(node, EOpConstructCooperativeMatrix, type, node->getLoc()); - } else { - TOperator op = EOpNull; - switch (type.getBasicType()) { - default: - assert(0); - break; - case EbtInt: - switch (node->getType().getBasicType()) { - case EbtFloat: op = EOpConvFloatToInt; break; - case EbtFloat16: op = EOpConvFloat16ToInt; break; - case EbtUint8: op = EOpConvUint8ToInt; break; - case EbtInt8: op = EOpConvInt8ToInt; break; - case EbtUint: op = EOpConvUintToInt; break; - default: assert(0); - } - break; - case EbtUint: - switch (node->getType().getBasicType()) { - case EbtFloat: op = EOpConvFloatToUint; break; - case EbtFloat16: op = EOpConvFloat16ToUint; break; - case EbtUint8: op = EOpConvUint8ToUint; break; - case EbtInt8: op = EOpConvInt8ToUint; break; - case EbtInt: op = EOpConvIntToUint; break; - case EbtUint: op = EOpConvUintToInt8; break; - default: assert(0); - } - break; - case EbtInt8: - switch (node->getType().getBasicType()) { - case EbtFloat: op = EOpConvFloatToInt8; break; - case EbtFloat16: op = EOpConvFloat16ToInt8; break; - case EbtUint8: op = EOpConvUint8ToInt8; break; - case EbtInt: op = EOpConvIntToInt8; break; - case EbtUint: op = EOpConvUintToInt8; break; - default: assert(0); - } - break; - case EbtUint8: - switch (node->getType().getBasicType()) { - case EbtFloat: op = EOpConvFloatToUint8; break; - case EbtFloat16: op = EOpConvFloat16ToUint8; break; - case EbtInt8: op = EOpConvInt8ToUint8; break; - case EbtInt: op = EOpConvIntToUint8; break; - case EbtUint: op = EOpConvUintToUint8; break; - default: assert(0); - } - break; - case EbtFloat: - switch (node->getType().getBasicType()) { - case EbtFloat16: op = EOpConvFloat16ToFloat; break; - case EbtInt8: op = EOpConvInt8ToFloat; break; - case EbtUint8: op = EOpConvUint8ToFloat; break; - case EbtInt: op = EOpConvIntToFloat; break; - case EbtUint: op = EOpConvUintToFloat; break; - default: assert(0); - } - break; - case EbtFloat16: - switch (node->getType().getBasicType()) { - case EbtFloat: op = EOpConvFloatToFloat16; break; - case EbtInt8: op = EOpConvInt8ToFloat16; break; - case EbtUint8: op = EOpConvUint8ToFloat16; break; - case EbtInt: op = EOpConvIntToFloat16; break; - case EbtUint: op = EOpConvUintToFloat16; break; - default: assert(0); - } - break; - } - - node = intermediate.addUnaryNode(op, node, node->getLoc(), type); - // If it's a (non-specialization) constant, it must be folded. - if (node->getAsUnaryNode()->getOperand()->getAsConstantUnion()) - return node->getAsUnaryNode()->getOperand()->getAsConstantUnion()->fold(op, node->getType()); - } - - return node; - - case EOpConstructAccStruct: - if ((node->getType().isScalar() && node->getType().getBasicType() == EbtUint64)) { - // construct acceleration structure from uint64 - requireExtensions(loc, 1, &E_GL_EXT_ray_tracing, "uint64_t conversion to acclerationStructureEXT"); - return intermediate.addBuiltInFunctionCall(node->getLoc(), EOpConvUint64ToAccStruct, true, node, - type); - } else if (node->getType().isVector() && node->getType().getBasicType() == EbtUint && node->getVectorSize() == 2) { - // construct acceleration structure from uint64 - requireExtensions(loc, 1, &E_GL_EXT_ray_tracing, "uvec2 conversion to accelerationStructureEXT"); - return intermediate.addBuiltInFunctionCall(node->getLoc(), EOpConvUvec2ToAccStruct, true, node, - type); - } else - return nullptr; -#endif // GLSLANG_WEB - - 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* TParseContext::constructAggregate(TIntermNode* node, const TType& type, int paramCount, const TSourceLoc& loc) -{ - TIntermTyped* converted = intermediate.addConversion(EOpConstructStruct, type, node->getAsTyped()); - if (! converted || converted->getType() != type) { - bool enhanced = intermediate.getEnhancedMsgs(); - error(loc, "", "constructor", "cannot convert parameter %d from '%s' to '%s'", paramCount, - node->getAsTyped()->getType().getCompleteString(enhanced).c_str(), type.getCompleteString(enhanced).c_str()); - - return nullptr; - } - - return converted; -} - -// If a memory qualifier is present in 'to', also make it present in 'from'. -void TParseContext::inheritMemoryQualifiers(const TQualifier& from, TQualifier& to) -{ -#ifndef GLSLANG_WEB - if (from.isReadOnly()) - to.readonly = from.readonly; - if (from.isWriteOnly()) - to.writeonly = from.writeonly; - if (from.coherent) - to.coherent = from.coherent; - if (from.volatil) - to.volatil = from.volatil; - if (from.restrict) - to.restrict = from.restrict; -#endif -} - -// -// Do everything needed to add an interface block. -// -void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, const TString* instanceName, - TArraySizes* arraySizes) -{ - if (spvVersion.vulkan > 0 && spvVersion.vulkanRelaxed) - blockStorageRemap(loc, blockName, currentBlockQualifier); - blockStageIoCheck(loc, currentBlockQualifier); - blockQualifierCheck(loc, currentBlockQualifier, instanceName != nullptr); - if (arraySizes != nullptr) { - arraySizesCheck(loc, currentBlockQualifier, arraySizes, nullptr, false); - arrayOfArrayVersionCheck(loc, arraySizes); - if (arraySizes->getNumDims() > 1) - requireProfile(loc, ~EEsProfile, "array-of-array of block"); - } - - // Inherit and check member storage qualifiers WRT to the block-level qualifier. - for (unsigned int member = 0; member < typeList.size(); ++member) { - TType& memberType = *typeList[member].type; - TQualifier& memberQualifier = memberType.getQualifier(); - const TSourceLoc& memberLoc = typeList[member].loc; - if (memberQualifier.storage != EvqTemporary && memberQualifier.storage != EvqGlobal && memberQualifier.storage != currentBlockQualifier.storage) - error(memberLoc, "member storage qualifier cannot contradict block storage qualifier", memberType.getFieldName().c_str(), ""); - memberQualifier.storage = currentBlockQualifier.storage; - globalQualifierFixCheck(memberLoc, memberQualifier); -#ifndef GLSLANG_WEB - inheritMemoryQualifiers(currentBlockQualifier, memberQualifier); - if (currentBlockQualifier.perPrimitiveNV) - memberQualifier.perPrimitiveNV = currentBlockQualifier.perPrimitiveNV; - if (currentBlockQualifier.perViewNV) - memberQualifier.perViewNV = currentBlockQualifier.perViewNV; - if (currentBlockQualifier.perTaskNV) - memberQualifier.perTaskNV = currentBlockQualifier.perTaskNV; - if (memberQualifier.storage == EvqSpirvStorageClass) - error(memberLoc, "member cannot have a spirv_storage_class qualifier", memberType.getFieldName().c_str(), ""); - if (memberQualifier.hasSprivDecorate() && !memberQualifier.getSpirvDecorate().decorateIds.empty()) - error(memberLoc, "member cannot have a spirv_decorate_id qualifier", memberType.getFieldName().c_str(), ""); -#endif - 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); - if (memberQualifier.hasOffset()) { - if (spvVersion.spv == 0) { - profileRequires(memberLoc, ~EEsProfile, 440, E_GL_ARB_enhanced_layouts, "\"offset\" on block member"); - profileRequires(memberLoc, EEsProfile, 300, E_GL_ARB_enhanced_layouts, "\"offset\" on block member"); - } - } - - if (memberType.containsOpaque()) - error(memberLoc, "member of block cannot be or contain a sampler, image, or atomic_uint type", typeList[member].type->getFieldName().c_str(), ""); - - if (memberType.containsCoopMat()) - error(memberLoc, "member of block cannot be or contain a cooperative matrix type", typeList[member].type->getFieldName().c_str(), ""); - } - - // 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; - } - - // Not a redeclaration of a built-in; check that all names are user names. - reservedErrorCheck(loc, *blockName); - if (instanceName) - reservedErrorCheck(loc, *instanceName); - for (unsigned int member = 0; member < typeList.size(); ++member) - reservedErrorCheck(typeList[member].loc, typeList[member].type->getFieldName()); - - // Make default block qualification, and adjust the member qualifications - - TQualifier defaultQualification; - switch (currentBlockQualifier.storage) { - case EvqUniform: defaultQualification = globalUniformDefaults; break; - case EvqBuffer: defaultQualification = globalBufferDefaults; break; - case EvqVaryingIn: defaultQualification = globalInputDefaults; break; - case EvqVaryingOut: defaultQualification = globalOutputDefaults; break; - case EvqShared: defaultQualification = globalSharedDefaults; 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 ((currentBlockQualifier.isPushConstant() && !currentBlockQualifier.hasPacking()) || - (currentBlockQualifier.isShaderRecord() && !currentBlockQualifier.hasPacking())) - currentBlockQualifier.layoutPacking = ElpStd430; - - // Special case for "taskNV in/out", which has a default of std430, - if (currentBlockQualifier.isTaskMemory() && !currentBlockQualifier.hasPacking()) - currentBlockQualifier.layoutPacking = ElpStd430; - - // fix and check for member layout qualifiers - - mergeObjectLayoutQualifiers(defaultQualification, currentBlockQualifier, true); - - // "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 (defaultQualification.layoutPacking != ElpStd140 && - defaultQualification.layoutPacking != ElpStd430 && - defaultQualification.layoutPacking != ElpScalar) { - error(loc, "can only be used with std140, std430, or scalar layout packing", "align", ""); - defaultQualification.layoutAlign = -1; - } - } - - bool memberWithLocation = false; - bool memberWithoutLocation = false; - bool memberWithPerViewQualifier = false; - for (unsigned int member = 0; member < typeList.size(); ++member) { - TQualifier& memberQualifier = typeList[member].type->getQualifier(); - const TSourceLoc& memberLoc = typeList[member].loc; -#ifndef GLSLANG_WEB - 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", ""); - } -#endif - - if (memberQualifier.hasPacking()) - error(memberLoc, "member of block cannot have a packing layout qualifier", typeList[member].type->getFieldName().c_str(), ""); - if (memberQualifier.hasLocation()) { - const char* feature = "location on block member"; - switch (currentBlockQualifier.storage) { -#ifndef GLSLANG_WEB - case EvqVaryingIn: - 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); - memberWithLocation = true; - break; -#endif - default: - error(memberLoc, "can only use in an in/out block", feature, ""); - break; - } - } 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 (defaultQualification.layoutPacking != ElpStd140 && - defaultQualification.layoutPacking != ElpStd430 && - defaultQualification.layoutPacking != ElpScalar) - error(memberLoc, "can only be used with std140, std430, or scalar layout packing", "offset/align", ""); - } - - if (memberQualifier.isPerView()) { - memberWithPerViewQualifier = true; - } - - TQualifier newMemberQualification = defaultQualification; - mergeQualifiers(memberLoc, newMemberQualification, memberQualifier, false); - memberQualifier = newMemberQualification; - } - - layoutMemberLocationArrayCheck(loc, memberWithLocation, arraySizes); - -#ifndef GLSLANG_WEB - // Ensure that the block has an XfbBuffer assigned. This is needed - // because if the block has a XfbOffset assigned, then it is - // assumed that it has implicitly assigned the current global - // XfbBuffer, and because it's members need to be assigned a - // XfbOffset if they lack it. - if (currentBlockQualifier.storage == EvqVaryingOut && globalOutputDefaults.hasXfbBuffer()) { - if (!currentBlockQualifier.hasXfbBuffer() && currentBlockQualifier.hasXfbOffset()) - currentBlockQualifier.layoutXfbBuffer = globalOutputDefaults.layoutXfbBuffer; - } -#endif - - // Process the members - fixBlockLocations(loc, currentBlockQualifier, typeList, memberWithLocation, memberWithoutLocation); - fixXfbOffsets(currentBlockQualifier, typeList); - fixBlockUniformOffsets(currentBlockQualifier, typeList); - fixBlockUniformLayoutMatrix(currentBlockQualifier, &typeList, nullptr); - fixBlockUniformLayoutPacking(currentBlockQualifier, &typeList, nullptr); - for (unsigned int member = 0; member < typeList.size(); ++member) - layoutTypeCheck(typeList[member].loc, *typeList[member].type); - -#ifndef GLSLANG_WEB - if (memberWithPerViewQualifier) { - for (unsigned int member = 0; member < typeList.size(); ++member) { - checkAndResizeMeshViewDim(typeList[member].loc, *typeList[member].type, /*isBlockMember*/ true); - } - } -#endif - - // 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(currentBlockQualifier, defaultQualification, true); - - // - // Build and add the interface block as a new type named 'blockName' - // - - TType blockType(&typeList, *blockName, currentBlockQualifier); - if (arraySizes != nullptr) - blockType.transferArraySizes(arraySizes); - -#ifndef GLSLANG_WEB - if (arraySizes == nullptr) - ioArrayCheck(loc, blockType, instanceName ? *instanceName : *blockName); - if (currentBlockQualifier.hasBufferReference()) { - - if (currentBlockQualifier.storage != EvqBuffer) - error(loc, "can only be used with buffer", "buffer_reference", ""); - - // Create the block reference type. If it was forward-declared, detect that - // as a referent struct type with no members. Replace the referent type with - // blockType. - TType blockNameType(EbtReference, blockType, *blockName); - TVariable* blockNameVar = new TVariable(blockName, blockNameType, true); - if (! symbolTable.insert(*blockNameVar)) { - TSymbol* existingName = symbolTable.find(*blockName); - if (existingName->getType().isReference() && - existingName->getType().getReferentType()->getStruct() && - existingName->getType().getReferentType()->getStruct()->size() == 0 && - existingName->getType().getQualifier().storage == blockType.getQualifier().storage) { - existingName->getType().getReferentType()->deepCopy(blockType); - } else { - error(loc, "block name cannot be redefined", blockName->c_str(), ""); - } - } - if (!instanceName) { - return; - } - } else -#endif - { - // - // Don't make a user-defined type out of block name; that will cause an error - // if the same block name gets reused in a different interface. - // - // "Block names have no other use within a shader - // beyond interface matching; it is a compile-time error to use a block name at global scope for anything - // other than as a block name (e.g., use of a block name for a global variable name or function name is - // currently reserved)." - // - // Use the symbol table to prevent normal reuse of the block's name, as a variable entry, - // whose type is EbtBlock, but without all the structure; that will come from the type - // the instances point to. - // - TType blockNameType(EbtBlock, blockType.getQualifier().storage); - TVariable* blockNameVar = new TVariable(blockName, blockNameType); - if (! symbolTable.insert(*blockNameVar)) { - TSymbol* existingName = symbolTable.find(*blockName); - if (existingName->getType().getBasicType() == EbtBlock) { - if (existingName->getType().getQualifier().storage == blockType.getQualifier().storage) { - error(loc, "Cannot reuse block name within the same interface:", blockName->c_str(), blockType.getStorageQualifierString()); - return; - } - } else { - error(loc, "block name cannot redefine a non-block name", blockName->c_str(), ""); - return; - } - } - } - - // Add the variable, as anonymous or named instanceName. - // Make an anonymous variable if no name was provided. - if (! instanceName) - 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; - } - - // Check for general layout qualifier errors - layoutObjectCheck(loc, variable); - -#ifndef GLSLANG_WEB - // fix up - if (isIoResizeArray(blockType)) { - ioArraySymbolResizeList.push_back(&variable); - checkIoArraysConsistency(loc, true); - } else - fixIoArraySize(loc, variable.getWritableType()); -#endif - - // Save it in the AST for linker use. - trackLinkage(variable); -} - -// -// allow storage type of block to be remapped at compile time -// -void TParseContext::blockStorageRemap(const TSourceLoc&, const TString* instanceName, TQualifier& qualifier) -{ - TBlockStorageClass type = intermediate.getBlockStorageOverride(instanceName->c_str()); - if (type != EbsNone) { - qualifier.setBlockStorage(type); - } -} - -// Do all block-declaration checking regarding the combination of in/out/uniform/buffer -// with a particular stage. -void TParseContext::blockStageIoCheck(const TSourceLoc& loc, const TQualifier& qualifier) -{ - const char *extsrt[2] = { E_GL_NV_ray_tracing, E_GL_EXT_ray_tracing }; - switch (qualifier.storage) { - case EvqUniform: - profileRequires(loc, EEsProfile, 300, nullptr, "uniform block"); - profileRequires(loc, ENoProfile, 140, E_GL_ARB_uniform_buffer_object, "uniform block"); - if (currentBlockQualifier.layoutPacking == ElpStd430 && ! currentBlockQualifier.isPushConstant()) - requireExtensions(loc, 1, &E_GL_EXT_scalar_block_layout, "std430 requires the buffer storage qualifier"); - break; - case EvqBuffer: - requireProfile(loc, EEsProfile | ECoreProfile | ECompatibilityProfile, "buffer block"); - profileRequires(loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_shader_storage_buffer_object, "buffer block"); - profileRequires(loc, EEsProfile, 310, nullptr, "buffer block"); - break; - case EvqVaryingIn: - profileRequires(loc, ~EEsProfile, 150, E_GL_ARB_separate_shader_objects, "input block"); - // It is a compile-time error to have an input block in a vertex shader or an output block in a fragment shader - // "Compute shaders do not permit user-defined input variables..." - requireStage(loc, (EShLanguageMask)(EShLangTessControlMask|EShLangTessEvaluationMask|EShLangGeometryMask| - EShLangFragmentMask|EShLangMeshNVMask), "input block"); - if (language == EShLangFragment) { - profileRequires(loc, EEsProfile, 320, Num_AEP_shader_io_blocks, AEP_shader_io_blocks, "fragment input block"); - } else if (language == EShLangMeshNV && ! qualifier.isTaskMemory()) { - error(loc, "input blocks cannot be used in a mesh shader", "out", ""); - } - break; - case EvqVaryingOut: - profileRequires(loc, ~EEsProfile, 150, E_GL_ARB_separate_shader_objects, "output block"); - requireStage(loc, (EShLanguageMask)(EShLangVertexMask|EShLangTessControlMask|EShLangTessEvaluationMask| - EShLangGeometryMask|EShLangMeshNVMask|EShLangTaskNVMask), "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"); - } else if (language == EShLangMeshNV && qualifier.isTaskMemory()) { - error(loc, "can only use on input blocks in mesh shader", "taskNV", ""); - } else if (language == EShLangTaskNV && ! qualifier.isTaskMemory()) { - error(loc, "output blocks cannot be used in a task shader", "out", ""); - } - break; - case EvqShared: - if (spvVersion.spv > 0 && spvVersion.spv < EShTargetSpv_1_4) { - error(loc, "shared block requires at least SPIR-V 1.4", "shared block", ""); - } - profileRequires(loc, EEsProfile | ECoreProfile | ECompatibilityProfile, 0, E_GL_EXT_shared_memory_block, "shared block"); - break; -#ifndef GLSLANG_WEB - case EvqPayload: - profileRequires(loc, ~EEsProfile, 460, 2, extsrt, "rayPayloadNV block"); - requireStage(loc, (EShLanguageMask)(EShLangRayGenMask | EShLangAnyHitMask | EShLangClosestHitMask | EShLangMissMask), - "rayPayloadNV block"); - break; - case EvqPayloadIn: - profileRequires(loc, ~EEsProfile, 460, 2, extsrt, "rayPayloadInNV block"); - requireStage(loc, (EShLanguageMask)(EShLangAnyHitMask | EShLangClosestHitMask | EShLangMissMask), - "rayPayloadInNV block"); - break; - case EvqHitAttr: - profileRequires(loc, ~EEsProfile, 460, 2, extsrt, "hitAttributeNV block"); - requireStage(loc, (EShLanguageMask)(EShLangIntersectMask | EShLangAnyHitMask | EShLangClosestHitMask), "hitAttributeNV block"); - break; - case EvqCallableData: - profileRequires(loc, ~EEsProfile, 460, 2, extsrt, "callableDataNV block"); - requireStage(loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask | EShLangMissMask | EShLangCallableMask), - "callableDataNV block"); - break; - case EvqCallableDataIn: - profileRequires(loc, ~EEsProfile, 460, 2, extsrt, "callableDataInNV block"); - requireStage(loc, (EShLanguageMask)(EShLangCallableMask), "callableDataInNV block"); - break; -#endif - default: - error(loc, "only uniform, buffer, in, or out blocks are supported", blockName->c_str(), ""); - break; - } -} - -// Do all block-declaration checking regarding its qualifiers. -void TParseContext::blockQualifierCheck(const TSourceLoc& loc, const TQualifier& qualifier, bool /*instanceName*/) -{ - // The 4.5 specification says: - // - // interface-block : - // layout-qualifieropt interface-qualifier block-name { member-list } instance-nameopt ; - // - // interface-qualifier : - // in - // out - // patch in - // patch out - // uniform - // buffer - // - // Note however memory qualifiers aren't included, yet the specification also says - // - // "...memory qualifiers may also be used in the declaration of shader storage blocks..." - - if (qualifier.isInterpolation()) - error(loc, "cannot use interpolation qualifiers on an interface block", "flat/smooth/noperspective", ""); - if (qualifier.centroid) - error(loc, "cannot use centroid qualifier on an interface block", "centroid", ""); - if (qualifier.isSample()) - 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.isPushConstant()) - intermediate.addPushConstantCount(); - if (qualifier.isShaderRecord()) - intermediate.addShaderRecordCount(); - if (qualifier.isTaskMemory()) - intermediate.addTaskNVCount(); -} - -// -// "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 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 - // 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 = TQualifier::layoutComponentEnd; - } - nextLocation = memberQualifier.layoutLocation + intermediate.computeTypeLocationSize( - *typeList[member].type, language); - } - } - } -} - -void TParseContext::fixXfbOffsets(TQualifier& qualifier, TTypeList& typeList) -{ -#ifndef GLSLANG_WEB - // "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 contains64BitType = false; - bool contains32BitType = false; - bool contains16BitType = false; - int memberSize = intermediate.computeTypeXfbSize(*typeList[member].type, contains64BitType, contains32BitType, contains16BitType); - // see if we need to auto-assign an offset to this member - if (! memberQualifier.hasXfbOffset()) { - // "if applied to an aggregate containing a double or 64-bit integer, the offset must also be a multiple of 8" - if (contains64BitType) - RoundToPow2(nextOffset, 8); - else if (contains32BitType) - RoundToPow2(nextOffset, 4); - else if (contains16BitType) - RoundToPow2(nextOffset, 2); - 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; -#endif -} - -// 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 TParseContext::fixBlockUniformOffsets(TQualifier& qualifier, TTypeList& typeList) -{ - if (!storageCanHaveLayoutInBlock(qualifier.storage) && !qualifier.isTaskMemory()) - return; - if (qualifier.layoutPacking != ElpStd140 && qualifier.layoutPacking != ElpStd430 && qualifier.layoutPacking != ElpScalar) - 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.getMemberAlignment(*typeList[member].type, memberSize, dummyStride, qualifier.layoutPacking, - 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", ""); - - // 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 - // follows: If offset was declared, start with that offset, otherwise start with the next available offset." - offset = std::max(offset, memberQualifier.layoutOffset); - } else { - // TODO: Vulkan: "It is a compile-time error to have any offset, explicit or assigned, - // that lies within another member of the block." - - offset = memberQualifier.layoutOffset; - } - } - - // "The actual alignment of a member will be the greater of the specified align alignment and the standard - // (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; - } -} - -// -// Spread LayoutMatrix to uniform block member, if a uniform block member is a struct, -// we need spread LayoutMatrix to this struct member too. and keep this rule for recursive. -// -void TParseContext::fixBlockUniformLayoutMatrix(TQualifier& qualifier, TTypeList* originTypeList, - TTypeList* tmpTypeList) -{ - assert(tmpTypeList == nullptr || originTypeList->size() == tmpTypeList->size()); - for (unsigned int member = 0; member < originTypeList->size(); ++member) { - if (qualifier.layoutPacking != ElpNone) { - if (tmpTypeList == nullptr) { - if (((*originTypeList)[member].type->isMatrix() || - (*originTypeList)[member].type->getBasicType() == EbtStruct) && - (*originTypeList)[member].type->getQualifier().layoutMatrix == ElmNone) { - (*originTypeList)[member].type->getQualifier().layoutMatrix = qualifier.layoutMatrix; - } - } else { - if (((*tmpTypeList)[member].type->isMatrix() || - (*tmpTypeList)[member].type->getBasicType() == EbtStruct) && - (*tmpTypeList)[member].type->getQualifier().layoutMatrix == ElmNone) { - (*tmpTypeList)[member].type->getQualifier().layoutMatrix = qualifier.layoutMatrix; - } - } - } - - if ((*originTypeList)[member].type->getBasicType() == EbtStruct) { - TQualifier* memberQualifier = nullptr; - // block member can be declare a matrix style, so it should be update to the member's style - if ((*originTypeList)[member].type->getQualifier().layoutMatrix == ElmNone) { - memberQualifier = &qualifier; - } else { - memberQualifier = &((*originTypeList)[member].type->getQualifier()); - } - - const TType* tmpType = tmpTypeList == nullptr ? - (*originTypeList)[member].type->clone() : (*tmpTypeList)[member].type; - - fixBlockUniformLayoutMatrix(*memberQualifier, (*originTypeList)[member].type->getWritableStruct(), - tmpType->getWritableStruct()); - - const TTypeList* structure = recordStructCopy(matrixFixRecord, (*originTypeList)[member].type, tmpType); - - if (tmpTypeList == nullptr) { - (*originTypeList)[member].type->setStruct(const_cast(structure)); - } - if (tmpTypeList != nullptr) { - (*tmpTypeList)[member].type->setStruct(const_cast(structure)); - } - } - } -} - -// -// Spread LayoutPacking to matrix or aggregate block members. If a block member is a struct or -// array of struct, spread LayoutPacking recursively to its matrix or aggregate members. -// -void TParseContext::fixBlockUniformLayoutPacking(TQualifier& qualifier, TTypeList* originTypeList, - TTypeList* tmpTypeList) -{ - assert(tmpTypeList == nullptr || originTypeList->size() == tmpTypeList->size()); - for (unsigned int member = 0; member < originTypeList->size(); ++member) { - if (qualifier.layoutPacking != ElpNone) { - if (tmpTypeList == nullptr) { - if ((*originTypeList)[member].type->getQualifier().layoutPacking == ElpNone && - !(*originTypeList)[member].type->isScalarOrVector()) { - (*originTypeList)[member].type->getQualifier().layoutPacking = qualifier.layoutPacking; - } - } else { - if ((*tmpTypeList)[member].type->getQualifier().layoutPacking == ElpNone && - !(*tmpTypeList)[member].type->isScalarOrVector()) { - (*tmpTypeList)[member].type->getQualifier().layoutPacking = qualifier.layoutPacking; - } - } - } - - if ((*originTypeList)[member].type->getBasicType() == EbtStruct) { - // Deep copy the type in pool. - // Because, struct use in different block may have different layout qualifier. - // We have to new a object to distinguish between them. - const TType* tmpType = tmpTypeList == nullptr ? - (*originTypeList)[member].type->clone() : (*tmpTypeList)[member].type; - - fixBlockUniformLayoutPacking(qualifier, (*originTypeList)[member].type->getWritableStruct(), - tmpType->getWritableStruct()); - - const TTypeList* structure = recordStructCopy(packingFixRecord, (*originTypeList)[member].type, tmpType); - - if (tmpTypeList == nullptr) { - (*originTypeList)[member].type->setStruct(const_cast(structure)); - } - if (tmpTypeList != nullptr) { - (*tmpTypeList)[member].type->setStruct(const_cast(structure)); - } - } - } -} - -// For an identifier that is already declared, add more qualification to it. -void TParseContext::addQualifierToExisting(const TSourceLoc& loc, TQualifier qualifier, const TString& identifier) -{ - TSymbol* symbol = symbolTable.find(identifier); - - // A forward declaration of a block reference looks to the grammar like adding - // a qualifier to an existing symbol. Detect this and create the block reference - // type with an empty type list, which will be filled in later in - // TParseContext::declareBlock. - if (!symbol && qualifier.hasBufferReference()) { - TTypeList typeList; - TType blockType(&typeList, identifier, qualifier);; - TType blockNameType(EbtReference, blockType, identifier); - TVariable* blockNameVar = new TVariable(&identifier, blockNameType, true); - if (! symbolTable.insert(*blockNameVar)) { - error(loc, "block name cannot redefine a non-block name", blockName->c_str(), ""); - } - return; - } - - 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; - invariantCheck(loc, symbol->getType().getQualifier()); - } else if (qualifier.isNoContraction()) { - if (intermediate.inIoAccessed(identifier)) - error(loc, "cannot change qualification after use", "precise", ""); - symbol->getWritableType().getQualifier().setNoContraction(); - } else if (qualifier.specConstant) { - symbol->getWritableType().getQualifier().makeSpecConstant(); - if (qualifier.hasSpecConstantId()) - symbol->getWritableType().getQualifier().layoutSpecConstantId = qualifier.layoutSpecConstantId; - } else - warn(loc, "unknown requalification", "", ""); -} - -void TParseContext::addQualifierToExisting(const TSourceLoc& loc, TQualifier qualifier, TIdentifierList& identifiers) -{ - for (unsigned int i = 0; i < identifiers.size(); ++i) - addQualifierToExisting(loc, qualifier, *identifiers[i]); -} - -// Make sure 'invariant' isn't being applied to a non-allowed object. -void TParseContext::invariantCheck(const TSourceLoc& loc, const TQualifier& qualifier) -{ - if (! qualifier.invariant) - return; - - bool pipeOut = qualifier.isPipeOutput(); - bool pipeIn = qualifier.isPipeInput(); - if ((version >= 300 && isEsProfile()) || (!isEsProfile() && version >= 420)) { - if (! pipeOut) - error(loc, "can only apply to an output", "invariant", ""); - } else { - if ((language == EShLangVertex && pipeIn) || (! pipeOut && ! pipeIn)) - error(loc, "can only apply to an output, or to an input in a non-vertex stage\n", "invariant", ""); - } -} - -// -// Updating default qualifier for the case of a declaration with just a qualifier, -// no type, block, or identifier. -// -void TParseContext::updateStandaloneQualifierDefaults(const TSourceLoc& loc, const TPublicType& publicType) -{ -#ifndef GLSLANG_WEB - if (publicType.shaderQualifiers.vertices != TQualifier::layoutNotSet) { - assert(language == EShLangTessControl || language == EShLangGeometry || language == EShLangMeshNV); - const char* id = (language == EShLangTessControl) ? "vertices" : "max_vertices"; - - if (publicType.qualifier.storage != EvqVaryingOut) - 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); - } - if (publicType.shaderQualifiers.primitives != TQualifier::layoutNotSet) { - assert(language == EShLangMeshNV); - const char* id = "max_primitives"; - - if (publicType.qualifier.storage != EvqVaryingOut) - error(loc, "can only apply to 'out'", id, ""); - if (! intermediate.setPrimitives(publicType.shaderQualifiers.primitives)) - error(loc, "cannot change previously set layout value", id, ""); - } - if (publicType.shaderQualifiers.invocations != TQualifier::layoutNotSet) { - if (publicType.qualifier.storage != EvqVaryingIn) - error(loc, "can only apply to 'in'", "invocations", ""); - 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: - if (language == EShLangMeshNV) { - error(loc, "cannot apply to input", TQualifier::getGeometryString(publicType.shaderQualifiers.geometry), ""); - break; - } - if (intermediate.setInputPrimitive(publicType.shaderQualifiers.geometry)) { - if (language == EShLangGeometry) - checkIoArraysConsistency(loc); - } else - error(loc, "cannot change previously set input primitive", TQualifier::getGeometryString(publicType.shaderQualifiers.geometry), ""); - break; - default: - error(loc, "cannot apply to input", TQualifier::getGeometryString(publicType.shaderQualifiers.geometry), ""); - } - } else if (publicType.qualifier.storage == EvqVaryingOut) { - switch (publicType.shaderQualifiers.geometry) { - case ElgLines: - case ElgTriangles: - if (language != EShLangMeshNV) { - error(loc, "cannot apply to 'out'", TQualifier::getGeometryString(publicType.shaderQualifiers.geometry), ""); - break; - } - // Fall through - case ElgPoints: - case ElgLineStrip: - case ElgTriangleStrip: - if (! intermediate.setOutputPrimitive(publicType.shaderQualifiers.geometry)) - error(loc, "cannot change previously set output primitive", TQualifier::getGeometryString(publicType.shaderQualifiers.geometry), ""); - break; - default: - error(loc, "cannot apply to 'out'", TQualifier::getGeometryString(publicType.shaderQualifiers.geometry), ""); - } - } else - error(loc, "cannot apply to:", TQualifier::getGeometryString(publicType.shaderQualifiers.geometry), GetStorageQualifierString(publicType.qualifier.storage)); - } - if (publicType.shaderQualifiers.spacing != EvsNone) { - if (publicType.qualifier.storage == EvqVaryingIn) { - if (! intermediate.setVertexSpacing(publicType.shaderQualifiers.spacing)) - error(loc, "cannot change previously set vertex spacing", TQualifier::getVertexSpacingString(publicType.shaderQualifiers.spacing), ""); - } else - error(loc, "can only apply to 'in'", TQualifier::getVertexSpacingString(publicType.shaderQualifiers.spacing), ""); - } - if (publicType.shaderQualifiers.order != EvoNone) { - if (publicType.qualifier.storage == EvqVaryingIn) { - if (! intermediate.setVertexOrder(publicType.shaderQualifiers.order)) - error(loc, "cannot change previously set vertex order", TQualifier::getVertexOrderString(publicType.shaderQualifiers.order), ""); - } else - error(loc, "can only apply to 'in'", TQualifier::getVertexOrderString(publicType.shaderQualifiers.order), ""); - } - if (publicType.shaderQualifiers.pointMode) { - if (publicType.qualifier.storage == EvqVaryingIn) - intermediate.setPointMode(); - else - error(loc, "can only apply to 'in'", "point_mode", ""); - } -#endif - for (int i = 0; i < 3; ++i) { - if (publicType.shaderQualifiers.localSizeNotDefault[i]) { - if (publicType.qualifier.storage == EvqVaryingIn) { - if (! intermediate.setLocalSize(i, publicType.shaderQualifiers.localSize[i])) - error(loc, "cannot change previously set size", "local_size", ""); - else { - int max = 0; - if (language == EShLangCompute) { - 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", ""); - } -#ifndef GLSLANG_WEB - else if (language == EShLangMeshNV) { - switch (i) { - case 0: max = resources.maxMeshWorkGroupSizeX_NV; break; - case 1: max = resources.maxMeshWorkGroupSizeY_NV; break; - case 2: max = resources.maxMeshWorkGroupSizeZ_NV; break; - default: break; - } - if (intermediate.getLocalSize(i) > (unsigned int)max) - error(loc, "too large; see gl_MaxMeshWorkGroupSizeNV", "local_size", ""); - } else if (language == EShLangTaskNV) { - switch (i) { - case 0: max = resources.maxTaskWorkGroupSizeX_NV; break; - case 1: max = resources.maxTaskWorkGroupSizeY_NV; break; - case 2: max = resources.maxTaskWorkGroupSizeZ_NV; break; - default: break; - } - if (intermediate.getLocalSize(i) > (unsigned int)max) - error(loc, "too large; see gl_MaxTaskWorkGroupSizeNV", "local_size", ""); - } -#endif - else { - assert(0); - } - - // Fix the existing constant gl_WorkGroupSize with this new information. - TVariable* workGroupSize = getEditableVariable("gl_WorkGroupSize"); - if (workGroupSize != nullptr) - workGroupSize->getWritableConstArray()[i].setUConst(intermediate.getLocalSize(i)); - } - } else - error(loc, "can only apply to 'in'", "local_size", ""); - } - if (publicType.shaderQualifiers.localSizeSpecId[i] != TQualifier::layoutNotSet) { - if (publicType.qualifier.storage == EvqVaryingIn) { - if (! intermediate.setLocalSizeSpecId(i, publicType.shaderQualifiers.localSizeSpecId[i])) - error(loc, "cannot change previously set size", "local_size", ""); - } else - error(loc, "can only apply to 'in'", "local_size id", ""); - // Set the workgroup built-in variable as a specialization constant - TVariable* workGroupSize = getEditableVariable("gl_WorkGroupSize"); - if (workGroupSize != nullptr) - workGroupSize->getWritableType().getQualifier().specConstant = true; - } - } - -#ifndef GLSLANG_WEB - if (publicType.shaderQualifiers.earlyFragmentTests) { - if (publicType.qualifier.storage == EvqVaryingIn) - intermediate.setEarlyFragmentTests(); - 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.hasBlendEquation()) { - if (publicType.qualifier.storage != EvqVaryingOut) - error(loc, "can only apply to 'out'", "blend equation", ""); - } - if (publicType.shaderQualifiers.interlockOrdering) { - if (publicType.qualifier.storage == EvqVaryingIn) { - if (!intermediate.setInterlockOrdering(publicType.shaderQualifiers.interlockOrdering)) - error(loc, "cannot change previously set fragment shader interlock ordering", TQualifier::getInterlockOrderingString(publicType.shaderQualifiers.interlockOrdering), ""); - } - else - error(loc, "can only apply to 'in'", TQualifier::getInterlockOrderingString(publicType.shaderQualifiers.interlockOrdering), ""); - } - - if (publicType.shaderQualifiers.layoutDerivativeGroupQuads && - publicType.shaderQualifiers.layoutDerivativeGroupLinear) { - error(loc, "cannot be both specified", "derivative_group_quadsNV and derivative_group_linearNV", ""); - } - - if (publicType.shaderQualifiers.layoutDerivativeGroupQuads) { - if (publicType.qualifier.storage == EvqVaryingIn) { - if ((intermediate.getLocalSize(0) & 1) || - (intermediate.getLocalSize(1) & 1)) - error(loc, "requires local_size_x and local_size_y to be multiple of two", "derivative_group_quadsNV", ""); - else - intermediate.setLayoutDerivativeMode(LayoutDerivativeGroupQuads); - } - else - error(loc, "can only apply to 'in'", "derivative_group_quadsNV", ""); - } - if (publicType.shaderQualifiers.layoutDerivativeGroupLinear) { - if (publicType.qualifier.storage == EvqVaryingIn) { - if((intermediate.getLocalSize(0) * - intermediate.getLocalSize(1) * - intermediate.getLocalSize(2)) % 4 != 0) - error(loc, "requires total group size to be multiple of four", "derivative_group_linearNV", ""); - else - intermediate.setLayoutDerivativeMode(LayoutDerivativeGroupLinear); - } - else - error(loc, "can only apply to 'in'", "derivative_group_linearNV", ""); - } - // Check mesh out array sizes, once all the necessary out qualifiers are defined. - if ((language == EShLangMeshNV) && - (intermediate.getVertices() != TQualifier::layoutNotSet) && - (intermediate.getPrimitives() != TQualifier::layoutNotSet) && - (intermediate.getOutputPrimitive() != ElgNone)) - { - checkIoArraysConsistency(loc); - } - - if (publicType.shaderQualifiers.layoutPrimitiveCulling) { - if (publicType.qualifier.storage != EvqTemporary) - error(loc, "layout qualifier can not have storage qualifiers", "primitive_culling","", ""); - else { - intermediate.setLayoutPrimitiveCulling(); - } - // Exit early as further checks are not valid - return; - } -#endif - const TQualifier& qualifier = publicType.qualifier; - - if (qualifier.isAuxiliary() || - qualifier.isMemory() || - qualifier.isInterpolation() || - qualifier.precision != EpqNone) - error(loc, "cannot use auxiliary, memory, interpolation, or precision qualifier in a default qualifier declaration (declaration with no type)", "qualifier", ""); - - // "The offset qualifier can only be used on block members of blocks..." - // "The align qualifier can only be used on blocks or block members..." - if (qualifier.hasOffset() || - qualifier.hasAlign()) - error(loc, "cannot use offset or align qualifiers in a default qualifier declaration (declaration with no type)", "layout qualifier", ""); - - layoutQualifierCheck(loc, 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: -#ifndef GLSLANG_WEB - 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); - } -#endif - break; - case EvqShared: - if (qualifier.hasMatrix()) - globalSharedDefaults.layoutMatrix = qualifier.layoutMatrix; - if (qualifier.hasPacking()) - globalSharedDefaults.layoutPacking = qualifier.layoutPacking; - break; - default: - error(loc, "default qualifier requires 'uniform', 'buffer', 'in', 'out' or 'shared' storage qualification", "", ""); - return; - } - - if (qualifier.hasBinding()) - error(loc, "cannot declare a default, include a type or full declaration", "binding", ""); - if (qualifier.hasAnyLocation()) - error(loc, "cannot declare a default, use a full declaration", "location/component/index", ""); - if (qualifier.hasXfbOffset()) - error(loc, "cannot declare a default, use a full declaration", "xfb_offset", ""); - if (qualifier.isPushConstant()) - error(loc, "cannot declare a default, can only be used on a block", "push_constant", ""); - if (qualifier.hasBufferReference()) - error(loc, "cannot declare a default, can only be used on a block", "buffer_reference", ""); - if (qualifier.hasSpecConstantId()) - error(loc, "cannot declare a default, can only be used on a scalar", "constant_id", ""); - if (qualifier.isShaderRecord()) - error(loc, "cannot declare a default, can only be used on a block", "shaderRecordNV", ""); -} - -// -// 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 TParseContext::wrapupSwitchSubsequence(TIntermAggregate* statements, TIntermNode* branchNode) -{ - TIntermSequence* switchSequence = switchSequenceStack.back(); - - if (statements) { - if (switchSequence->size() == 0) - error(statements->getLoc(), "cannot have statements before first case/default label", "switch", ""); - statements->setOperator(EOpSequence); - switchSequence->push_back(statements); - } - 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 wrapupSwitchSubsequence9) -// into a switch node. -// -TIntermNode* TParseContext::addSwitch(const TSourceLoc& loc, TIntermTyped* expression, TIntermAggregate* lastStatements) -{ - profileRequires(loc, EEsProfile, 300, nullptr, "switch statements"); - profileRequires(loc, ENoProfile, 130, nullptr, "switch statements"); - - 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) { - // This was originally an ERRROR, because early versions of the specification said - // "it is an error to have no statement between a label and the end of the switch statement." - // The specifications were updated to remove this (being ill-defined what a "statement" was), - // so, this became a warning. However, 3.0 tests still check for the error. - if (isEsProfile() && (version <= 300 || version >= 320) && ! relaxedErrors()) - error(loc, "last case/default label not followed by statements", "switch", ""); - else if (!isEsProfile() && (version <= 430 || version >= 460)) - error(loc, "last case/default label not followed by statements", "switch", ""); - else - warn(loc, "last case/default label not followed by statements", "switch", ""); - - - // 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; -} - -// -// When a struct used in block, and has it's own layout packing, layout matrix, -// record the origin structure of a struct to map, and Record the structure copy to the copy table, -// -const TTypeList* TParseContext::recordStructCopy(TStructRecord& record, const TType* originType, const TType* tmpType) -{ - size_t memberCount = tmpType->getStruct()->size(); - size_t originHash = 0, tmpHash = 0; - std::hash hasher; - for (size_t i = 0; i < memberCount; i++) { - size_t originMemberHash = hasher(originType->getStruct()->at(i).type->getQualifier().layoutPacking + - originType->getStruct()->at(i).type->getQualifier().layoutMatrix); - size_t tmpMemberHash = hasher(tmpType->getStruct()->at(i).type->getQualifier().layoutPacking + - tmpType->getStruct()->at(i).type->getQualifier().layoutMatrix); - originHash = hasher((originHash ^ originMemberHash) << 1); - tmpHash = hasher((tmpHash ^ tmpMemberHash) << 1); - } - const TTypeList* originStruct = originType->getStruct(); - const TTypeList* tmpStruct = tmpType->getStruct(); - if (originHash != tmpHash) { - auto fixRecords = record.find(originStruct); - if (fixRecords != record.end()) { - auto fixRecord = fixRecords->second.find(tmpHash); - if (fixRecord != fixRecords->second.end()) { - return fixRecord->second; - } else { - record[originStruct][tmpHash] = tmpStruct; - return tmpStruct; - } - } else { - record[originStruct] = std::map(); - record[originStruct][tmpHash] = tmpStruct; - return tmpStruct; - } - } - return originStruct; -} - -} // end namespace glslang - diff --git a/deps/glslang/glslang/MachineIndependent/ParseHelper.h b/deps/glslang/glslang/MachineIndependent/ParseHelper.h deleted file mode 100644 index 885fd908..00000000 --- a/deps/glslang/glslang/MachineIndependent/ParseHelper.h +++ /dev/null @@ -1,588 +0,0 @@ -// -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2012-2013 LunarG, Inc. -// Copyright (C) 2015-2018 Google, Inc. -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// Neither the name of 3Dlabs Inc. Ltd. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -// - -// -// This header defines a two-level parse-helper hierarchy, derived from -// TParseVersions: -// - TParseContextBase: sharable across multiple parsers -// - TParseContext: GLSL specific helper -// - -#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" - -namespace glslang { - -struct TPragma { - TPragma(bool o, bool d) : optimize(o), debug(d) { } - bool optimize; - bool debug; - TPragmaTable pragmaTable; -}; - -class TScanContext; -class TPpContext; - -typedef std::set TIdSetType; -typedef std::map> TStructRecord; - -// -// Sharable code (as well as what's in TParseVersions) across -// parse helpers. -// -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) - : TParseVersions(interm, version, profile, spvVersion, language, infoSink, forwardCompatible, messages), - scopeMangler("::"), - symbolTable(symbolTable), - statementNestingLevel(0), loopNestingLevel(0), structNestingLevel(0), blockNestingLevel(0), controlFlowNestingLevel(0), - currentFunctionType(nullptr), - postEntryPointReturn(false), - contextPragma(true, false), - beginInvocationInterlockCount(0), endInvocationInterlockCount(0), - parsingBuiltins(parsingBuiltins), scanContext(nullptr), ppContext(nullptr), - limits(resources.limits), - globalUniformBlock(nullptr), - globalUniformBinding(TQualifier::layoutBindingEnd), - globalUniformSet(TQualifier::layoutSetEnd), - atomicCounterBlockSet(TQualifier::layoutSetEnd) - { - if (entryPoint != nullptr) - sourceEntryPointName = *entryPoint; - } - virtual ~TParseContextBase() { } - -#if !defined(GLSLANG_WEB) || defined(GLSLANG_WEB_DEVEL) - virtual void C_DECL error(const TSourceLoc&, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...); - virtual void C_DECL warn(const TSourceLoc&, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...); - virtual void C_DECL ppError(const TSourceLoc&, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...); - virtual void C_DECL ppWarn(const TSourceLoc&, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...); -#endif - - 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; } - void setPpContext(TPpContext* c) { ppContext = c; } - TPpContext* getPpContext() const { return ppContext; } - - virtual void setLineCallback(const std::function& func) { lineCallback = func; } - virtual void setExtensionCallback(const std::function& func) { extensionCallback = func; } - virtual void setVersionCallback(const std::function& func) { versionCallback = func; } - virtual void setPragmaCallback(const std::function&)>& func) { pragmaCallback = func; } - virtual void setErrorCallback(const std::function& func) { errorCallback = func; } - - virtual void reservedPpErrorCheck(const TSourceLoc&, const char* name, const char* op) = 0; - virtual bool lineContinuationCheck(const TSourceLoc&, bool endOfComment) = 0; - virtual bool lineDirectiveShouldSetNextLine() const = 0; - virtual void handlePragma(const TSourceLoc&, const TVector&) = 0; - - virtual bool parseShaderStrings(TPpContext&, TInputScanner& input, bool versionWillBeError = false) = 0; - - virtual void notifyVersion(int line, int version, const char* type_string) - { - if (versionCallback) - versionCallback(line, version, type_string); - } - virtual void notifyErrorDirective(int line, const char* error_message) - { - if (errorCallback) - errorCallback(line, error_message); - } - virtual void notifyLineDirective(int curLineNo, int newLineNo, bool hasSource, int sourceNum, const char* sourceName) - { - if (lineCallback) - lineCallback(curLineNo, newLineNo, hasSource, sourceNum, sourceName); - } - virtual void notifyExtensionDirective(int line, const char* extension, const char* behavior) - { - if (extensionCallback) - 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); - - // Manage global buffer (used for backing atomic counters in GLSL when using relaxed Vulkan semantics) - virtual void growAtomicCounterBlock(int binding, 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 structures - int blockNestingLevel; // 0 if outside blocks - 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; - int beginInvocationInterlockCount; - int endInvocationInterlockCount; - -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 - 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. - std::function lineCallback; - std::function&)> pragmaCallback; - std::function versionCallback; - std::function extensionCallback; - std::function errorCallback; - - // see implementation for detail - const TFunction* selectFunction(const TVector, const TFunction&, - std::function, - 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 - // override this to set the language-specific name - virtual const char* getGlobalUniformBlockName() const { return ""; } - virtual void setUniformBlockDefaults(TType&) const { } - virtual void finalizeGlobalUniformBlockLayout(TVariable&) {} - - // Manage the atomic counter block (used for atomic_uints with Vulkan-Relaxed) - TMap atomicCounterBuffers; - unsigned int atomicCounterBlockSet; - TMap atomicCounterBlockFirstNewMember; - // override this to set the language-specific name - virtual const char* getAtomicCounterBlockName() const { return ""; } - virtual void setAtomicCounterBlockDefaults(TType&) const {} - virtual void setInvariant(const TSourceLoc&, const char*) {} - virtual void finalizeAtomicCounterBlockLayout(TVariable&) {} - bool isAtomicCounterBlock(const TSymbol& symbol) { - const TVariable* var = symbol.getAsVariable(); - if (!var) - return false; - const auto& at = atomicCounterBuffers.find(var->getType().getQualifier().layoutBinding); - return (at != atomicCounterBuffers.end() && (*at).second->getType() == var->getType()); - } - - 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 makeEditable(TSymbol*&); - virtual TVariable* getEditableVariable(const char* name); - virtual void finish(); -}; - -// -// Manage the state for when to respect precision qualifiers and when to warn about -// the defaults being different than might be expected. -// -class TPrecisionManager { -public: - TPrecisionManager() : obey(false), warn(false), explicitIntDefault(false), explicitFloatDefault(false){ } - virtual ~TPrecisionManager() {} - - void respectPrecisionQualifiers() { obey = true; } - bool respectingPrecisionQualifiers() const { return obey; } - bool shouldWarnAboutDefaults() const { return warn; } - void defaultWarningGiven() { warn = false; } - void warnAboutDefaults() { warn = true; } - void explicitIntDefaultSeen() - { - explicitIntDefault = true; - if (explicitFloatDefault) - warn = false; - } - void explicitFloatDefaultSeen() - { - explicitFloatDefault = true; - if (explicitIntDefault) - warn = false; - } - -protected: - bool obey; // respect precision qualifiers - bool warn; // need to give a warning about the defaults - bool explicitIntDefault; // user set the default for int/uint - bool explicitFloatDefault; // user set the default for float -}; - -// -// GLSL-specific parse helper. Should have GLSL in the name, but that's -// too big of a change for comparing branches at the moment, and perhaps -// impacts downstream consumers as well. -// -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); - 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 parserError(const char* s); // for bison's yyerror - - virtual void growGlobalUniformBlock(const TSourceLoc&, TType&, const TString& memberName, TTypeList* typeList = nullptr) override; - virtual void growAtomicCounterBlock(int binding, const TSourceLoc&, TType&, const TString& memberName, TTypeList* typeList = nullptr) override; - - 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; - bool builtInName(const TString&); - - 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 handleIndexLimits(const TSourceLoc&, TIntermTyped* base, TIntermTyped* index); - -#ifndef GLSLANG_WEB - void makeEditable(TSymbol*&) override; - void ioArrayCheck(const TSourceLoc&, const TType&, const TString& identifier); -#endif - bool isIoResizeArray(const TType&) const; - void fixIoArraySize(const TSourceLoc&, TType&); - void handleIoResizeArrayAccess(const TSourceLoc&, TIntermTyped* base); - void checkIoArraysConsistency(const TSourceLoc&, bool tailOnly = false); - int getIoArrayImplicitSize(const TQualifier&, TString* featureString = nullptr) const; - void checkIoArrayConsistency(const TSourceLoc&, int requiredSize, const char* feature, TType&, const TString&); - - TIntermTyped* handleBinaryMath(const TSourceLoc&, const char* str, TOperator op, TIntermTyped* left, TIntermTyped* right); - TIntermTyped* handleUnaryMath(const TSourceLoc&, const char* str, TOperator op, TIntermTyped* childNode); - TIntermTyped* handleDotDereference(const TSourceLoc&, TIntermTyped* base, const TString& field); - TIntermTyped* handleDotSwizzle(const TSourceLoc&, TIntermTyped* base, const TString& field); - void blockMemberExtensionCheck(const TSourceLoc&, const TIntermTyped* base, int member, const TString& memberName); - 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); - void computeBuiltinPrecisions(TIntermTyped&, const TFunction&); - TIntermNode* handleReturnValue(const TSourceLoc&, TIntermTyped*); - void checkLocation(const TSourceLoc&, TOperator); - TIntermTyped* handleLengthMethod(const TSourceLoc&, TFunction*, TIntermNode*); - void addInputArgumentConversions(const TFunction&, TIntermNode*&) const; - TIntermTyped* addOutputArgumentConversions(const TFunction&, TIntermAggregate&) const; - TIntermTyped* addAssign(const TSourceLoc&, TOperator op, TIntermTyped* left, TIntermTyped* right); - void builtInOpCheck(const TSourceLoc&, const TFunction&, TIntermOperator&); - void nonOpBuiltInCheck(const TSourceLoc&, const TFunction&, TIntermAggregate&); - void userFunctionCallCheck(const TSourceLoc&, TIntermAggregate&); - void samplerConstructorLocationCheck(const TSourceLoc&, const char* token, TIntermNode*); - TFunction* handleConstructorCall(const TSourceLoc&, const TPublicType&); - void handlePrecisionQualifier(const TSourceLoc&, TQualifier&, TPrecisionQualifier); - void checkPrecisionQualifier(const TSourceLoc&, TPrecisionQualifier); - void memorySemanticsCheck(const TSourceLoc&, const TFunction&, const TIntermOperator& callNode); - - TIntermTyped* vkRelaxedRemapFunctionCall(const TSourceLoc&, TFunction*, TIntermNode*); - // returns true if the variable was remapped to something else - bool vkRelaxedRemapUniformVariable(const TSourceLoc&, TString&, const TPublicType&, TArraySizes*, TIntermTyped*, TType&); - - 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); - bool lValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*) override; - void rValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*) override; - void constantValueCheck(TIntermTyped* node, const char* token); - void integerCheck(const TIntermTyped* node, const char* token); - void globalCheck(const TSourceLoc&, const char* token); - bool constructorError(const TSourceLoc&, TIntermNode*, TFunction&, TOperator, TType&); - bool constructorTextureSamplerError(const TSourceLoc&, const TFunction&); - void arraySizeCheck(const TSourceLoc&, TIntermTyped* expr, TArraySize&, const char *sizeType); - bool arrayQualifierError(const TSourceLoc&, const TQualifier&); - 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*); - 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 accStructCheck(const TSourceLoc & loc, const TType & type, const TString & identifier); - void transparentOpaqueCheck(const TSourceLoc&, const TType&, const TString& identifier); - void memberQualifierCheck(glslang::TPublicType&); - void globalQualifierFixCheck(const TSourceLoc&, TQualifier&, bool isMemberCheck = false); - void globalQualifierTypeCheck(const TSourceLoc&, const TQualifier&, const TPublicType&); - bool structQualifierErrorCheck(const TSourceLoc&, const TPublicType& pType); - void mergeQualifiers(const TSourceLoc&, TQualifier& dst, const TQualifier& src, bool force); - void setDefaultPrecision(const TSourceLoc&, TPublicType&, TPrecisionQualifier); - int computeSamplerTypeIndex(TSampler&); - TPrecisionQualifier getDefaultPrecision(TPublicType&); - void precisionQualifierCheck(const TSourceLoc&, TBasicType, TQualifier&); - void parameterTypeCheck(const TSourceLoc&, TStorageQualifier qualifier, const TType& type); - bool containsFieldWithBasicType(const TType& type ,TBasicType basicType); - TSymbol* redeclareBuiltinVariable(const TSourceLoc&, const TString&, const TQualifier&, const TShaderQualifiers&); - 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 TQualifier&, TType& type); - void nestedBlockCheck(const TSourceLoc&); - void nestedStructCheck(const TSourceLoc&); - void arrayObjectCheck(const TSourceLoc&, const TType&, const char* op); - void opaqueCheck(const TSourceLoc&, const TType&, const char* op); - void referenceCheck(const TSourceLoc&, const TType&, const char* op); - void storage16BitAssignmentCheck(const TSourceLoc&, const TType&, const char* op); - void specializationCheck(const TSourceLoc&, const TType&, const char* op); - void structTypeCheck(const TSourceLoc&, TPublicType&); - void inductiveLoopCheck(const TSourceLoc&, TIntermNode* init, TIntermLoop* loop); - void arrayLimitCheck(const TSourceLoc&, const TString&, int size); - void limitCheck(const TSourceLoc&, int value, const char* limit, const char* feature); - - void inductiveLoopBodyCheck(TIntermNode*, long long loopIndexId, TSymbolTable&); - void constantIndexExpressionCheck(TIntermNode*); - - void setLayoutQualifier(const TSourceLoc&, TPublicType&, TString&); - 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&); - void fixOffset(const TSourceLoc&, TSymbol&); - - const TFunction* findFunction(const TSourceLoc& loc, const TFunction& call, bool& builtIn); - 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&); - TIntermTyped* constructAggregate(TIntermNode*, const TType&, int, const TSourceLoc&); - TIntermTyped* constructBuiltIn(const TType&, TOperator, TIntermTyped*, const TSourceLoc&, bool subset); - void inheritMemoryQualifiers(const TQualifier& from, TQualifier& to); - void declareBlock(const TSourceLoc&, TTypeList& typeList, const TString* instanceName = 0, TArraySizes* arraySizes = 0); - void blockStorageRemap(const TSourceLoc&, const TString*, TQualifier&); - void blockStageIoCheck(const TSourceLoc&, const TQualifier&); - void blockQualifierCheck(const TSourceLoc&, const TQualifier&, bool instanceName); - void fixBlockLocations(const TSourceLoc&, TQualifier&, TTypeList&, bool memberWithLocation, bool memberWithoutLocation); - void fixXfbOffsets(TQualifier&, TTypeList&); - void fixBlockUniformOffsets(TQualifier&, TTypeList&); - void fixBlockUniformLayoutMatrix(TQualifier&, TTypeList*, TTypeList*); - void fixBlockUniformLayoutPacking(TQualifier&, TTypeList*, TTypeList*); - void addQualifierToExisting(const TSourceLoc&, TQualifier, const TString& identifier); - void addQualifierToExisting(const TSourceLoc&, TQualifier, TIdentifierList&); - void invariantCheck(const TSourceLoc&, const TQualifier&); - void updateStandaloneQualifierDefaults(const TSourceLoc&, const TPublicType&); - void wrapupSwitchSubsequence(TIntermAggregate* statements, TIntermNode* branchNode); - TIntermNode* addSwitch(const TSourceLoc&, TIntermTyped* expression, TIntermAggregate* body); - const TTypeList* recordStructCopy(TStructRecord&, const TType*, const TType*); - -#ifndef GLSLANG_WEB - 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*); - // Function attributes - void handleFunctionAttributes(const TSourceLoc&, const TAttributes&); - - // GL_EXT_spirv_intrinsics - TSpirvRequirement* makeSpirvRequirement(const TSourceLoc& loc, const TString& name, - const TIntermAggregate* extensions, const TIntermAggregate* capabilities); - TSpirvRequirement* mergeSpirvRequirements(const TSourceLoc& loc, TSpirvRequirement* spirvReq1, - TSpirvRequirement* spirvReq2); - TSpirvTypeParameters* makeSpirvTypeParameters(const TSourceLoc& loc, const TIntermConstantUnion* constant); - TSpirvTypeParameters* mergeSpirvTypeParameters(TSpirvTypeParameters* spirvTypeParams1, - TSpirvTypeParameters* spirvTypeParams2); - TSpirvInstruction* makeSpirvInstruction(const TSourceLoc& loc, const TString& name, const TString& value); - TSpirvInstruction* makeSpirvInstruction(const TSourceLoc& loc, const TString& name, int value); - TSpirvInstruction* mergeSpirvInstruction(const TSourceLoc& loc, TSpirvInstruction* spirvInst1, - TSpirvInstruction* spirvInst2); -#endif - - void checkAndResizeMeshViewDim(const TSourceLoc&, TType&, bool isBlockMember); - -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; - TIntermNode* executeInitializer(const TSourceLoc&, TIntermTyped* initializer, TVariable* variable); - TIntermTyped* convertInitializerList(const TSourceLoc&, const TType&, TIntermTyped* initializer); -#ifndef GLSLANG_WEB - void finish() override; -#endif - - virtual const char* getGlobalUniformBlockName() const override; - virtual void finalizeGlobalUniformBlockLayout(TVariable&) override; - virtual void setUniformBlockDefaults(TType& block) const override; - - virtual const char* getAtomicCounterBlockName() const override; - virtual void finalizeAtomicCounterBlockLayout(TVariable&) override; - virtual void setAtomicCounterBlockDefaults(TType& block) const override; - virtual void setInvariant(const TSourceLoc& loc, const char* builtin) override; - -public: - // - // Generally, bison productions, the scanner, and the PP need read/write access to these; just give them direct access - // - - // Current state of parsing - bool inMain; // if inside a function, true if the function is main - const TString* blockName; - TQualifier currentBlockQualifier; - TPrecisionQualifier defaultPrecision[EbtNumTypes]; - TBuiltInResource resources; - TLimits& limits; - -protected: - TParseContext(TParseContext&); - TParseContext& operator=(TParseContext&); - - static const int maxSamplerIndex = EsdNumDims * (EbtNumTypes * (2 * 2 * 2 * 2 * 2)); // see computeSamplerTypeIndex() - TPrecisionQualifier defaultSamplerPrecision[maxSamplerIndex]; - TPrecisionManager precisionManager; - TQualifier globalBufferDefaults; - TQualifier globalUniformDefaults; - TQualifier globalInputDefaults; - TQualifier globalOutputDefaults; - TQualifier globalSharedDefaults; - TString currentCaller; // name of last function body entered (not valid when at global scope) -#ifndef GLSLANG_WEB - int* atomicUintOffsets; // to become an array of the right size to hold an offset per binding point - bool anyIndexLimits; - TIdSetType inductiveLoopIds; - TVector needsIndexLimitationChecking; - TStructRecord matrixFixRecord; - TStructRecord packingFixRecord; - - // - // 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; -#endif -}; - -} // end namespace glslang - -#endif // _PARSER_HELPER_INCLUDED_ diff --git a/deps/glslang/glslang/MachineIndependent/PoolAlloc.cpp b/deps/glslang/glslang/MachineIndependent/PoolAlloc.cpp deleted file mode 100644 index 84c40f4e..00000000 --- a/deps/glslang/glslang/MachineIndependent/PoolAlloc.cpp +++ /dev/null @@ -1,315 +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. -// - -#include "../Include/Common.h" -#include "../Include/PoolAlloc.h" - -#include "../Include/InitializeGlobals.h" -#include "../OSDependent/osinclude.h" - -namespace glslang { - -// Process-wide TLS index -OS_TLSIndex PoolIndex; - -// Return the thread-specific current pool. -TPoolAllocator& GetThreadPoolAllocator() -{ - return *static_cast(OS_GetTLSValue(PoolIndex)); -} - -// Set the thread-specific current pool. -void SetThreadPoolAllocator(TPoolAllocator* poolAllocator) -{ - OS_SetTLSValue(PoolIndex, poolAllocator); -} - -// Process-wide set up of the TLS pool storage. -bool InitializePoolIndex() -{ - // Allocate a TLS index. - if ((PoolIndex = OS_AllocTLSIndex()) == OS_INVALID_TLS_INDEX) - return false; - - return true; -} - -// -// Implement the functionality of the TPoolAllocator class, which -// is documented in PoolAlloc.h. -// -TPoolAllocator::TPoolAllocator(int growthIncrement, int allocationAlignment) : - pageSize(growthIncrement), - alignment(allocationAlignment), - freeList(nullptr), - inUseList(nullptr), - numCalls(0) -{ - // - // Don't allow page sizes we know are smaller than all common - // OS page sizes. - // - if (pageSize < 4*1024) - pageSize = 4*1024; - - // - // A large currentPageOffset indicates a new page needs to - // be obtained to allocate memory. - // - currentPageOffset = pageSize; - - // - // Adjust alignment to be at least pointer aligned and - // power of 2. - // - size_t minAlign = sizeof(void*); - alignment &= ~(minAlign - 1); - if (alignment < minAlign) - alignment = minAlign; - size_t a = 1; - while (a < alignment) - a <<= 1; - alignment = a; - alignmentMask = a - 1; - - // - // Align header skip - // - headerSkip = minAlign; - if (headerSkip < sizeof(tHeader)) { - headerSkip = (sizeof(tHeader) + alignmentMask) & ~alignmentMask; - } - - push(); -} - -TPoolAllocator::~TPoolAllocator() -{ - while (inUseList) { - tHeader* next = inUseList->nextPage; - inUseList->~tHeader(); - delete [] reinterpret_cast(inUseList); - inUseList = next; - } - - // - // Always delete the free list memory - it can't be being - // (correctly) referenced, whether the pool allocator was - // global or not. We should not check the guard blocks - // here, because we did it already when the block was - // placed into the free list. - // - while (freeList) { - tHeader* next = freeList->nextPage; - delete [] reinterpret_cast(freeList); - freeList = next; - } -} - -const unsigned char TAllocation::guardBlockBeginVal = 0xfb; -const unsigned char TAllocation::guardBlockEndVal = 0xfe; -const unsigned char TAllocation::userDataFill = 0xcd; - -# ifdef GUARD_BLOCKS - const size_t TAllocation::guardBlockSize = 16; -# else - const size_t TAllocation::guardBlockSize = 0; -# endif - -// -// Check a single guard block for damage -// -#ifdef GUARD_BLOCKS -void TAllocation::checkGuardBlock(unsigned char* blockMem, unsigned char val, const char* locText) const -#else -void TAllocation::checkGuardBlock(unsigned char*, unsigned char, const char*) const -#endif -{ -#ifdef GUARD_BLOCKS - for (size_t x = 0; x < guardBlockSize; x++) { - if (blockMem[x] != val) { - const int maxSize = 80; - char assertMsg[maxSize]; - - // We don't print the assert message. It's here just to be helpful. - snprintf(assertMsg, maxSize, "PoolAlloc: Damage %s %zu byte allocation at 0x%p\n", - locText, size, data()); - assert(0 && "PoolAlloc: Damage in guard block"); - } - } -#else - assert(guardBlockSize == 0); -#endif -} - -void TPoolAllocator::push() -{ - tAllocState state = { currentPageOffset, inUseList }; - - stack.push_back(state); - - // - // Indicate there is no current page to allocate from. - // - currentPageOffset = pageSize; -} - -// -// Do a mass-deallocation of all the individual allocations -// that have occurred since the last push(), or since the -// last pop(), or since the object's creation. -// -// The deallocated pages are saved for future allocations. -// -void TPoolAllocator::pop() -{ - if (stack.size() < 1) - return; - - tHeader* page = stack.back().page; - currentPageOffset = stack.back().offset; - - while (inUseList != page) { - 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) { - delete [] reinterpret_cast(inUseList); - } else { - inUseList->nextPage = freeList; - freeList = inUseList; - } - inUseList = nextInUse; - } - - stack.pop_back(); -} - -// -// Do a mass-deallocation of all the individual allocations -// that have occurred. -// -void TPoolAllocator::popAll() -{ - while (stack.size() > 0) - pop(); -} - -void* TPoolAllocator::allocate(size_t numBytes) -{ - // If we are using guard blocks, all allocations are bracketed by - // them: [guardblock][allocation][guardblock]. numBytes is how - // much memory the caller asked for. allocationSize is the total - // 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. - // - ++numCalls; - totalBytes += numBytes; - - // - // Do the allocation, most likely case first, for efficiency. - // This step could be moved to be inline sometime. - // - if (currentPageOffset + allocationSize <= pageSize) { - // - // Safe to allocate from currentPageOffset. - // - unsigned char* memory = reinterpret_cast(inUseList) + currentPageOffset; - currentPageOffset += allocationSize; - currentPageOffset = (currentPageOffset + alignmentMask) & ~alignmentMask; - - return initializeAllocation(inUseList, memory, numBytes); - } - - if (allocationSize + headerSkip > pageSize) { - // - // Do a multi-page allocation. Don't mix these with the others. - // The OS is efficient and allocating and free-ing multiple pages. - // - size_t numBytesToAlloc = allocationSize + headerSkip; - tHeader* memory = reinterpret_cast(::new char[numBytesToAlloc]); - if (memory == 0) - return 0; - - // Use placement-new to initialize header - new(memory) tHeader(inUseList, (numBytesToAlloc + pageSize - 1) / pageSize); - inUseList = memory; - - currentPageOffset = pageSize; // make next allocation come from a new page - - // No guard blocks for multi-page allocations (yet) - return reinterpret_cast(reinterpret_cast(memory) + headerSkip); - } - - // - // Need a simple page to allocate from. - // - tHeader* memory; - if (freeList) { - memory = freeList; - freeList = freeList->nextPage; - } else { - memory = reinterpret_cast(::new char[pageSize]); - if (memory == 0) - return 0; - } - - // 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. -// -void TAllocation::checkAllocList() const -{ - for (const TAllocation* alloc = this; alloc != 0; alloc = alloc->prevAlloc) - alloc->check(); -} - -} // end namespace glslang diff --git a/deps/glslang/glslang/MachineIndependent/RemoveTree.cpp b/deps/glslang/glslang/MachineIndependent/RemoveTree.cpp deleted file mode 100644 index 1d33bfd2..00000000 --- a/deps/glslang/glslang/MachineIndependent/RemoveTree.cpp +++ /dev/null @@ -1,118 +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. -// - -#include "../Include/intermediate.h" -#include "RemoveTree.h" - -namespace glslang { - -// -// Code to recursively delete the intermediate tree. -// -struct TRemoveTraverser : TIntermTraverser { - TRemoveTraverser() : TIntermTraverser(false, false, true, false) {} - - virtual void visitSymbol(TIntermSymbol* node) - { - delete node; - } - - virtual bool visitBinary(TVisit /* visit*/ , TIntermBinary* node) - { - delete node; - - return true; - } - - virtual bool visitUnary(TVisit /* visit */, TIntermUnary* node) - { - delete node; - - return true; - } - - virtual bool visitAggregate(TVisit /* visit*/ , TIntermAggregate* node) - { - delete node; - - return true; - } - - virtual bool visitSelection(TVisit /* visit*/ , TIntermSelection* node) - { - delete node; - - return true; - } - - virtual bool visitSwitch(TVisit /* visit*/ , TIntermSwitch* node) - { - delete node; - - return true; - } - - virtual void visitConstantUnion(TIntermConstantUnion* node) - { - delete node; - } - - virtual bool visitLoop(TVisit /* visit*/ , TIntermLoop* node) - { - delete node; - - return true; - } - - virtual bool visitBranch(TVisit /* visit*/ , TIntermBranch* node) - { - delete node; - - return true; - } -}; - -// -// Entry point. -// -void RemoveAllTreeNodes(TIntermNode* root) -{ - TRemoveTraverser it; - - root->traverse(&it); -} - -} // end namespace glslang diff --git a/deps/glslang/glslang/MachineIndependent/RemoveTree.h b/deps/glslang/glslang/MachineIndependent/RemoveTree.h deleted file mode 100644 index 1ed01562..00000000 --- a/deps/glslang/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/glslang/MachineIndependent/Scan.cpp b/deps/glslang/glslang/MachineIndependent/Scan.cpp deleted file mode 100644 index c387aede..00000000 --- a/deps/glslang/glslang/MachineIndependent/Scan.cpp +++ /dev/null @@ -1,1952 +0,0 @@ -// -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2013 LunarG, Inc. -// Copyright (C) 2017 ARM Limited. -// Copyright (C) 2020 Google, Inc. -// Modifications Copyright (C) 2020 Advanced Micro Devices, 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: -// -// 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. -// - -// -// GLSL scanning, leveraging the scanning done by the preprocessor. -// - -#include -#include -#include - -#include "../Include/Types.h" -#include "SymbolTable.h" -#include "ParseHelper.h" -#include "attribute.h" -#include "glslang_tab.cpp.h" -#include "ScanContext.h" -#include "Scan.h" - -// preprocessor includes -#include "preprocessor/PpContext.h" -#include "preprocessor/PpTokens.h" - -// Required to avoid missing prototype warnings for some compilers -int yylex(YYSTYPE*, glslang::TParseContext&); - -namespace glslang { - -// read past any white space -void TInputScanner::consumeWhiteSpace(bool& foundNonSpaceTab) -{ - int c = peek(); // don't accidentally consume anything other than whitespace - while (c == ' ' || c == '\t' || c == '\r' || c == '\n') { - if (c == '\r' || c == '\n') - foundNonSpaceTab = true; - get(); - c = peek(); - } -} - -// return true if a comment was actually consumed -bool TInputScanner::consumeComment() -{ - if (peek() != '/') - return false; - - get(); // consume the '/' - int c = peek(); - if (c == '/') { - - // a '//' style comment - get(); // consume the second '/' - c = get(); - do { - while (c != EndOfInput && c != '\\' && c != '\r' && c != '\n') - c = get(); - - if (c == EndOfInput || c == '\r' || c == '\n') { - while (c == '\r' || c == '\n') - c = get(); - - // we reached the end of the comment - break; - } else { - // it's a '\', so we need to keep going, after skipping what's escaped - - // read the skipped character - c = get(); - - // if it's a two-character newline, skip both characters - if (c == '\r' && peek() == '\n') - get(); - c = get(); - } - } while (true); - - // put back the last non-comment character - if (c != EndOfInput) - unget(); - - return true; - } else if (c == '*') { - - // a '/*' style comment - get(); // consume the '*' - c = get(); - do { - while (c != EndOfInput && c != '*') - c = get(); - if (c == '*') { - c = get(); - if (c == '/') - break; // end of comment - // not end of comment - } else // end of input - break; - } while (true); - - return true; - } else { - // it's not a comment, put the '/' back - unget(); - - return false; - } -} - -// skip whitespace, then skip a comment, rinse, repeat -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 - foundNonSpaceTab = true; - if (! consumeComment()) - return; - - } while (true); -} - -// Returns true if there was non-white space (e.g., a comment, newline) before the #version -// or no #version was found; otherwise, returns false. There is no error case, it always -// succeeds, but will leave version == 0 if no #version was found. -// -// Sets notFirstToken based on whether tokens (beyond white space and comments) -// appeared before the #version. -// -// N.B. does not attempt to leave input in any particular known state. The assumption -// is that scanning will start anew, following the rules for the chosen version/profile, -// and with a corresponding parsing context. -// -bool TInputScanner::scanVersion(int& version, EProfile& profile, bool& notFirstToken) -{ - // This function doesn't have to get all the semantics correct, - // just find the #version if there is a correct one present. - // The preprocessor will have the responsibility of getting all the semantics right. - - 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 - profile = ENoProfile; - - bool foundNonSpaceTab = false; - bool lookingInMiddle = false; - int c; - do { - if (lookingInMiddle) { - notFirstToken = true; - // make forward progress by finishing off the current line plus extra new lines - if (peek() != '\n' && peek() != '\r') { - do { - c = get(); - } while (c != EndOfInput && c != '\n' && c != '\r'); - } - while (peek() == '\n' || peek() == '\r') - get(); - if (peek() == EndOfInput) - return true; - } - lookingInMiddle = true; - - // Nominal start, skipping the desktop allowed comments and white space, but tracking if - // something else was found for ES: - consumeWhitespaceComment(foundNonSpaceTab); - if (foundNonSpaceTab) - versionNotFirst = true; - - // "#" - if (get() != '#') { - versionNotFirst = true; - continue; - } - - // whitespace - do { - c = get(); - } while (c == ' ' || c == '\t'); - - // "version" - if ( c != 'v' || - get() != 'e' || - get() != 'r' || - get() != 's' || - get() != 'i' || - get() != 'o' || - get() != 'n') { - versionNotFirst = true; - continue; - } - - // whitespace - do { - c = get(); - } while (c == ' ' || c == '\t'); - - // version number - while (c >= '0' && c <= '9') { - version = 10 * version + (c - '0'); - c = get(); - } - if (version == 0) { - versionNotFirst = true; - continue; - } - - // whitespace - while (c == ' ' || c == '\t') - c = get(); - - // profile - const int maxProfileLength = 13; // not including any 0 - char profileString[maxProfileLength]; - int profileLength; - for (profileLength = 0; profileLength < maxProfileLength; ++profileLength) { - if (c == EndOfInput || c == ' ' || c == '\t' || c == '\n' || c == '\r') - break; - profileString[profileLength] = (char)c; - c = get(); - } - if (c != EndOfInput && c != ' ' && c != '\t' && c != '\n' && c != '\r') { - versionNotFirst = true; - continue; - } - - if (profileLength == 2 && strncmp(profileString, "es", profileLength) == 0) - profile = EEsProfile; - else if (profileLength == 4 && strncmp(profileString, "core", profileLength) == 0) - profile = ECoreProfile; - else if (profileLength == 13 && strncmp(profileString, "compatibility", profileLength) == 0) - profile = ECompatibilityProfile; - - return versionNotFirst; - } while (true); -} - -// Fill this in when doing glslang-level scanning, to hand back to the parser. -class TParserToken { -public: - explicit TParserToken(YYSTYPE& b) : sType(b) { } - - YYSTYPE& sType; -protected: - TParserToken(TParserToken&); - TParserToken& operator=(TParserToken&); -}; - -} // 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) -{ - glslang::TParserToken token(*glslangTokenDesc); - - 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; -#ifndef GLSLANG_WEB -std::unordered_set* ReservedSet = nullptr; -#endif - -}; - -namespace glslang { - -void TScanContext::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)["const"] = CONST; - (*KeywordMap)["uniform"] = UNIFORM; - (*KeywordMap)["buffer"] = BUFFER; - (*KeywordMap)["in"] = IN; - (*KeywordMap)["out"] = OUT; - (*KeywordMap)["smooth"] = SMOOTH; - (*KeywordMap)["flat"] = FLAT; - (*KeywordMap)["centroid"] = CENTROID; - (*KeywordMap)["invariant"] = INVARIANT; - (*KeywordMap)["packed"] = PACKED; - (*KeywordMap)["resource"] = RESOURCE; - (*KeywordMap)["inout"] = INOUT; - (*KeywordMap)["struct"] = STRUCT; - (*KeywordMap)["break"] = BREAK; - (*KeywordMap)["continue"] = CONTINUE; - (*KeywordMap)["do"] = DO; - (*KeywordMap)["for"] = FOR; - (*KeywordMap)["while"] = WHILE; - (*KeywordMap)["switch"] = SWITCH; - (*KeywordMap)["case"] = CASE; - (*KeywordMap)["default"] = DEFAULT; - (*KeywordMap)["if"] = IF; - (*KeywordMap)["else"] = ELSE; - (*KeywordMap)["discard"] = DISCARD; - (*KeywordMap)["terminateInvocation"] = TERMINATE_INVOCATION; - (*KeywordMap)["terminateRayEXT"] = TERMINATE_RAY; - (*KeywordMap)["ignoreIntersectionEXT"] = IGNORE_INTERSECTION; - (*KeywordMap)["return"] = RETURN; - (*KeywordMap)["void"] = VOID; - (*KeywordMap)["bool"] = BOOL; - (*KeywordMap)["float"] = FLOAT; - (*KeywordMap)["int"] = INT; - (*KeywordMap)["bvec2"] = BVEC2; - (*KeywordMap)["bvec3"] = BVEC3; - (*KeywordMap)["bvec4"] = BVEC4; - (*KeywordMap)["vec2"] = VEC2; - (*KeywordMap)["vec3"] = VEC3; - (*KeywordMap)["vec4"] = VEC4; - (*KeywordMap)["ivec2"] = IVEC2; - (*KeywordMap)["ivec3"] = IVEC3; - (*KeywordMap)["ivec4"] = IVEC4; - (*KeywordMap)["mat2"] = MAT2; - (*KeywordMap)["mat3"] = MAT3; - (*KeywordMap)["mat4"] = MAT4; - (*KeywordMap)["true"] = BOOLCONSTANT; - (*KeywordMap)["false"] = BOOLCONSTANT; - (*KeywordMap)["layout"] = LAYOUT; - (*KeywordMap)["shared"] = SHARED; - (*KeywordMap)["highp"] = HIGH_PRECISION; - (*KeywordMap)["mediump"] = MEDIUM_PRECISION; - (*KeywordMap)["lowp"] = LOW_PRECISION; - (*KeywordMap)["superp"] = SUPERP; - (*KeywordMap)["precision"] = PRECISION; - (*KeywordMap)["mat2x2"] = MAT2X2; - (*KeywordMap)["mat2x3"] = MAT2X3; - (*KeywordMap)["mat2x4"] = MAT2X4; - (*KeywordMap)["mat3x2"] = MAT3X2; - (*KeywordMap)["mat3x3"] = MAT3X3; - (*KeywordMap)["mat3x4"] = MAT3X4; - (*KeywordMap)["mat4x2"] = MAT4X2; - (*KeywordMap)["mat4x3"] = MAT4X3; - (*KeywordMap)["mat4x4"] = MAT4X4; - (*KeywordMap)["uint"] = UINT; - (*KeywordMap)["uvec2"] = UVEC2; - (*KeywordMap)["uvec3"] = UVEC3; - (*KeywordMap)["uvec4"] = UVEC4; - -#ifndef GLSLANG_WEB - (*KeywordMap)["nonuniformEXT"] = NONUNIFORM; - (*KeywordMap)["demote"] = DEMOTE; - (*KeywordMap)["attribute"] = ATTRIBUTE; - (*KeywordMap)["varying"] = VARYING; - (*KeywordMap)["noperspective"] = NOPERSPECTIVE; - (*KeywordMap)["coherent"] = COHERENT; - (*KeywordMap)["devicecoherent"] = DEVICECOHERENT; - (*KeywordMap)["queuefamilycoherent"] = QUEUEFAMILYCOHERENT; - (*KeywordMap)["workgroupcoherent"] = WORKGROUPCOHERENT; - (*KeywordMap)["subgroupcoherent"] = SUBGROUPCOHERENT; - (*KeywordMap)["shadercallcoherent"] = SHADERCALLCOHERENT; - (*KeywordMap)["nonprivate"] = NONPRIVATE; - (*KeywordMap)["restrict"] = RESTRICT; - (*KeywordMap)["readonly"] = READONLY; - (*KeywordMap)["writeonly"] = WRITEONLY; - (*KeywordMap)["atomic_uint"] = ATOMIC_UINT; - (*KeywordMap)["volatile"] = VOLATILE; - (*KeywordMap)["patch"] = PATCH; - (*KeywordMap)["sample"] = SAMPLE; - (*KeywordMap)["subroutine"] = SUBROUTINE; - (*KeywordMap)["dmat2"] = DMAT2; - (*KeywordMap)["dmat3"] = DMAT3; - (*KeywordMap)["dmat4"] = DMAT4; - (*KeywordMap)["dmat2x2"] = DMAT2X2; - (*KeywordMap)["dmat2x3"] = DMAT2X3; - (*KeywordMap)["dmat2x4"] = DMAT2X4; - (*KeywordMap)["dmat3x2"] = DMAT3X2; - (*KeywordMap)["dmat3x3"] = DMAT3X3; - (*KeywordMap)["dmat3x4"] = DMAT3X4; - (*KeywordMap)["dmat4x2"] = DMAT4X2; - (*KeywordMap)["dmat4x3"] = DMAT4X3; - (*KeywordMap)["dmat4x4"] = DMAT4X4; - (*KeywordMap)["image1D"] = IMAGE1D; - (*KeywordMap)["iimage1D"] = IIMAGE1D; - (*KeywordMap)["uimage1D"] = UIMAGE1D; - (*KeywordMap)["image2D"] = IMAGE2D; - (*KeywordMap)["iimage2D"] = IIMAGE2D; - (*KeywordMap)["uimage2D"] = UIMAGE2D; - (*KeywordMap)["image3D"] = IMAGE3D; - (*KeywordMap)["iimage3D"] = IIMAGE3D; - (*KeywordMap)["uimage3D"] = UIMAGE3D; - (*KeywordMap)["image2DRect"] = IMAGE2DRECT; - (*KeywordMap)["iimage2DRect"] = IIMAGE2DRECT; - (*KeywordMap)["uimage2DRect"] = UIMAGE2DRECT; - (*KeywordMap)["imageCube"] = IMAGECUBE; - (*KeywordMap)["iimageCube"] = IIMAGECUBE; - (*KeywordMap)["uimageCube"] = UIMAGECUBE; - (*KeywordMap)["imageBuffer"] = IMAGEBUFFER; - (*KeywordMap)["iimageBuffer"] = IIMAGEBUFFER; - (*KeywordMap)["uimageBuffer"] = UIMAGEBUFFER; - (*KeywordMap)["image1DArray"] = IMAGE1DARRAY; - (*KeywordMap)["iimage1DArray"] = IIMAGE1DARRAY; - (*KeywordMap)["uimage1DArray"] = UIMAGE1DARRAY; - (*KeywordMap)["image2DArray"] = IMAGE2DARRAY; - (*KeywordMap)["iimage2DArray"] = IIMAGE2DARRAY; - (*KeywordMap)["uimage2DArray"] = UIMAGE2DARRAY; - (*KeywordMap)["imageCubeArray"] = IMAGECUBEARRAY; - (*KeywordMap)["iimageCubeArray"] = IIMAGECUBEARRAY; - (*KeywordMap)["uimageCubeArray"] = UIMAGECUBEARRAY; - (*KeywordMap)["image2DMS"] = IMAGE2DMS; - (*KeywordMap)["iimage2DMS"] = IIMAGE2DMS; - (*KeywordMap)["uimage2DMS"] = UIMAGE2DMS; - (*KeywordMap)["image2DMSArray"] = IMAGE2DMSARRAY; - (*KeywordMap)["iimage2DMSArray"] = IIMAGE2DMSARRAY; - (*KeywordMap)["uimage2DMSArray"] = UIMAGE2DMSARRAY; - (*KeywordMap)["i64image1D"] = I64IMAGE1D; - (*KeywordMap)["u64image1D"] = U64IMAGE1D; - (*KeywordMap)["i64image2D"] = I64IMAGE2D; - (*KeywordMap)["u64image2D"] = U64IMAGE2D; - (*KeywordMap)["i64image3D"] = I64IMAGE3D; - (*KeywordMap)["u64image3D"] = U64IMAGE3D; - (*KeywordMap)["i64image2DRect"] = I64IMAGE2DRECT; - (*KeywordMap)["u64image2DRect"] = U64IMAGE2DRECT; - (*KeywordMap)["i64imageCube"] = I64IMAGECUBE; - (*KeywordMap)["u64imageCube"] = U64IMAGECUBE; - (*KeywordMap)["i64imageBuffer"] = I64IMAGEBUFFER; - (*KeywordMap)["u64imageBuffer"] = U64IMAGEBUFFER; - (*KeywordMap)["i64image1DArray"] = I64IMAGE1DARRAY; - (*KeywordMap)["u64image1DArray"] = U64IMAGE1DARRAY; - (*KeywordMap)["i64image2DArray"] = I64IMAGE2DARRAY; - (*KeywordMap)["u64image2DArray"] = U64IMAGE2DARRAY; - (*KeywordMap)["i64imageCubeArray"] = I64IMAGECUBEARRAY; - (*KeywordMap)["u64imageCubeArray"] = U64IMAGECUBEARRAY; - (*KeywordMap)["i64image2DMS"] = I64IMAGE2DMS; - (*KeywordMap)["u64image2DMS"] = U64IMAGE2DMS; - (*KeywordMap)["i64image2DMSArray"] = I64IMAGE2DMSARRAY; - (*KeywordMap)["u64image2DMSArray"] = U64IMAGE2DMSARRAY; - (*KeywordMap)["double"] = DOUBLE; - (*KeywordMap)["dvec2"] = DVEC2; - (*KeywordMap)["dvec3"] = DVEC3; - (*KeywordMap)["dvec4"] = DVEC4; - (*KeywordMap)["int64_t"] = INT64_T; - (*KeywordMap)["uint64_t"] = UINT64_T; - (*KeywordMap)["i64vec2"] = I64VEC2; - (*KeywordMap)["i64vec3"] = I64VEC3; - (*KeywordMap)["i64vec4"] = I64VEC4; - (*KeywordMap)["u64vec2"] = U64VEC2; - (*KeywordMap)["u64vec3"] = U64VEC3; - (*KeywordMap)["u64vec4"] = U64VEC4; - - // GL_EXT_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; - (*KeywordMap)["f16vec4"] = F16VEC4; - (*KeywordMap)["f16mat2"] = F16MAT2; - (*KeywordMap)["f16mat3"] = F16MAT3; - (*KeywordMap)["f16mat4"] = F16MAT4; - (*KeywordMap)["f16mat2x2"] = F16MAT2X2; - (*KeywordMap)["f16mat2x3"] = F16MAT2X3; - (*KeywordMap)["f16mat2x4"] = F16MAT2X4; - (*KeywordMap)["f16mat3x2"] = F16MAT3X2; - (*KeywordMap)["f16mat3x3"] = F16MAT3X3; - (*KeywordMap)["f16mat3x4"] = F16MAT3X4; - (*KeywordMap)["f16mat4x2"] = F16MAT4X2; - (*KeywordMap)["f16mat4x3"] = F16MAT4X3; - (*KeywordMap)["f16mat4x4"] = F16MAT4X4; - - (*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; - - // GL_EXT_spirv_intrinsics - (*KeywordMap)["spirv_instruction"] = SPIRV_INSTRUCTION; - (*KeywordMap)["spirv_execution_mode"] = SPIRV_EXECUTION_MODE; - (*KeywordMap)["spirv_execution_mode_id"] = SPIRV_EXECUTION_MODE_ID; - (*KeywordMap)["spirv_decorate"] = SPIRV_DECORATE; - (*KeywordMap)["spirv_decorate_id"] = SPIRV_DECORATE_ID; - (*KeywordMap)["spirv_decorate_string"] = SPIRV_DECORATE_STRING; - (*KeywordMap)["spirv_type"] = SPIRV_TYPE; - (*KeywordMap)["spirv_storage_class"] = SPIRV_STORAGE_CLASS; - (*KeywordMap)["spirv_by_reference"] = SPIRV_BY_REFERENCE; - (*KeywordMap)["spirv_literal"] = SPIRV_LITERAL; -#endif - - (*KeywordMap)["sampler2D"] = SAMPLER2D; - (*KeywordMap)["samplerCube"] = SAMPLERCUBE; - (*KeywordMap)["samplerCubeShadow"] = SAMPLERCUBESHADOW; - (*KeywordMap)["sampler2DArray"] = SAMPLER2DARRAY; - (*KeywordMap)["sampler2DArrayShadow"] = SAMPLER2DARRAYSHADOW; - (*KeywordMap)["isampler2D"] = ISAMPLER2D; - (*KeywordMap)["isampler3D"] = ISAMPLER3D; - (*KeywordMap)["isamplerCube"] = ISAMPLERCUBE; - (*KeywordMap)["isampler2DArray"] = ISAMPLER2DARRAY; - (*KeywordMap)["usampler2D"] = USAMPLER2D; - (*KeywordMap)["usampler3D"] = USAMPLER3D; - (*KeywordMap)["usamplerCube"] = USAMPLERCUBE; - (*KeywordMap)["usampler2DArray"] = USAMPLER2DARRAY; - (*KeywordMap)["sampler3D"] = SAMPLER3D; - (*KeywordMap)["sampler2DShadow"] = SAMPLER2DSHADOW; - - (*KeywordMap)["texture2D"] = TEXTURE2D; - (*KeywordMap)["textureCube"] = TEXTURECUBE; - (*KeywordMap)["texture2DArray"] = TEXTURE2DARRAY; - (*KeywordMap)["itexture2D"] = ITEXTURE2D; - (*KeywordMap)["itexture3D"] = ITEXTURE3D; - (*KeywordMap)["itextureCube"] = ITEXTURECUBE; - (*KeywordMap)["itexture2DArray"] = ITEXTURE2DARRAY; - (*KeywordMap)["utexture2D"] = UTEXTURE2D; - (*KeywordMap)["utexture3D"] = UTEXTURE3D; - (*KeywordMap)["utextureCube"] = UTEXTURECUBE; - (*KeywordMap)["utexture2DArray"] = UTEXTURE2DARRAY; - (*KeywordMap)["texture3D"] = TEXTURE3D; - - (*KeywordMap)["sampler"] = SAMPLER; - (*KeywordMap)["samplerShadow"] = SAMPLERSHADOW; - -#ifndef GLSLANG_WEB - (*KeywordMap)["textureCubeArray"] = TEXTURECUBEARRAY; - (*KeywordMap)["itextureCubeArray"] = ITEXTURECUBEARRAY; - (*KeywordMap)["utextureCubeArray"] = UTEXTURECUBEARRAY; - (*KeywordMap)["samplerCubeArray"] = SAMPLERCUBEARRAY; - (*KeywordMap)["samplerCubeArrayShadow"] = SAMPLERCUBEARRAYSHADOW; - (*KeywordMap)["isamplerCubeArray"] = ISAMPLERCUBEARRAY; - (*KeywordMap)["usamplerCubeArray"] = USAMPLERCUBEARRAY; - (*KeywordMap)["sampler1DArrayShadow"] = SAMPLER1DARRAYSHADOW; - (*KeywordMap)["isampler1DArray"] = ISAMPLER1DARRAY; - (*KeywordMap)["usampler1D"] = USAMPLER1D; - (*KeywordMap)["isampler1D"] = ISAMPLER1D; - (*KeywordMap)["usampler1DArray"] = USAMPLER1DARRAY; - (*KeywordMap)["samplerBuffer"] = SAMPLERBUFFER; - (*KeywordMap)["isampler2DRect"] = ISAMPLER2DRECT; - (*KeywordMap)["usampler2DRect"] = USAMPLER2DRECT; - (*KeywordMap)["isamplerBuffer"] = ISAMPLERBUFFER; - (*KeywordMap)["usamplerBuffer"] = USAMPLERBUFFER; - (*KeywordMap)["sampler2DMS"] = SAMPLER2DMS; - (*KeywordMap)["isampler2DMS"] = ISAMPLER2DMS; - (*KeywordMap)["usampler2DMS"] = USAMPLER2DMS; - (*KeywordMap)["sampler2DMSArray"] = SAMPLER2DMSARRAY; - (*KeywordMap)["isampler2DMSArray"] = ISAMPLER2DMSARRAY; - (*KeywordMap)["usampler2DMSArray"] = USAMPLER2DMSARRAY; - (*KeywordMap)["sampler1D"] = SAMPLER1D; - (*KeywordMap)["sampler1DShadow"] = SAMPLER1DSHADOW; - (*KeywordMap)["sampler2DRect"] = SAMPLER2DRECT; - (*KeywordMap)["sampler2DRectShadow"] = SAMPLER2DRECTSHADOW; - (*KeywordMap)["sampler1DArray"] = SAMPLER1DARRAY; - - (*KeywordMap)["samplerExternalOES"] = SAMPLEREXTERNALOES; // GL_OES_EGL_image_external - - (*KeywordMap)["__samplerExternal2DY2YEXT"] = SAMPLEREXTERNAL2DY2YEXT; // GL_EXT_YUV_target - - (*KeywordMap)["itexture1DArray"] = ITEXTURE1DARRAY; - (*KeywordMap)["utexture1D"] = UTEXTURE1D; - (*KeywordMap)["itexture1D"] = ITEXTURE1D; - (*KeywordMap)["utexture1DArray"] = UTEXTURE1DARRAY; - (*KeywordMap)["textureBuffer"] = TEXTUREBUFFER; - (*KeywordMap)["itexture2DRect"] = ITEXTURE2DRECT; - (*KeywordMap)["utexture2DRect"] = UTEXTURE2DRECT; - (*KeywordMap)["itextureBuffer"] = ITEXTUREBUFFER; - (*KeywordMap)["utextureBuffer"] = UTEXTUREBUFFER; - (*KeywordMap)["texture2DMS"] = TEXTURE2DMS; - (*KeywordMap)["itexture2DMS"] = ITEXTURE2DMS; - (*KeywordMap)["utexture2DMS"] = UTEXTURE2DMS; - (*KeywordMap)["texture2DMSArray"] = TEXTURE2DMSARRAY; - (*KeywordMap)["itexture2DMSArray"] = ITEXTURE2DMSARRAY; - (*KeywordMap)["utexture2DMSArray"] = UTEXTURE2DMSARRAY; - (*KeywordMap)["texture1D"] = TEXTURE1D; - (*KeywordMap)["texture2DRect"] = TEXTURE2DRECT; - (*KeywordMap)["texture1DArray"] = TEXTURE1DARRAY; - - (*KeywordMap)["subpassInput"] = SUBPASSINPUT; - (*KeywordMap)["subpassInputMS"] = SUBPASSINPUTMS; - (*KeywordMap)["isubpassInput"] = ISUBPASSINPUT; - (*KeywordMap)["isubpassInputMS"] = ISUBPASSINPUTMS; - (*KeywordMap)["usubpassInput"] = USUBPASSINPUT; - (*KeywordMap)["usubpassInputMS"] = USUBPASSINPUTMS; - - (*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; - (*KeywordMap)["__explicitInterpAMD"] = EXPLICITINTERPAMD; - (*KeywordMap)["pervertexNV"] = PERVERTEXNV; - (*KeywordMap)["precise"] = PRECISE; - - (*KeywordMap)["rayPayloadNV"] = PAYLOADNV; - (*KeywordMap)["rayPayloadEXT"] = PAYLOADEXT; - (*KeywordMap)["rayPayloadInNV"] = PAYLOADINNV; - (*KeywordMap)["rayPayloadInEXT"] = PAYLOADINEXT; - (*KeywordMap)["hitAttributeNV"] = HITATTRNV; - (*KeywordMap)["hitAttributeEXT"] = HITATTREXT; - (*KeywordMap)["callableDataNV"] = CALLDATANV; - (*KeywordMap)["callableDataEXT"] = CALLDATAEXT; - (*KeywordMap)["callableDataInNV"] = CALLDATAINNV; - (*KeywordMap)["callableDataInEXT"] = CALLDATAINEXT; - (*KeywordMap)["accelerationStructureNV"] = ACCSTRUCTNV; - (*KeywordMap)["accelerationStructureEXT"] = ACCSTRUCTEXT; - (*KeywordMap)["rayQueryEXT"] = RAYQUERYEXT; - (*KeywordMap)["perprimitiveNV"] = PERPRIMITIVENV; - (*KeywordMap)["perviewNV"] = PERVIEWNV; - (*KeywordMap)["taskNV"] = PERTASKNV; - - (*KeywordMap)["fcoopmatNV"] = FCOOPMATNV; - (*KeywordMap)["icoopmatNV"] = ICOOPMATNV; - (*KeywordMap)["ucoopmatNV"] = UCOOPMATNV; - - ReservedSet = new std::unordered_set; - - ReservedSet->insert("common"); - ReservedSet->insert("partition"); - ReservedSet->insert("active"); - ReservedSet->insert("asm"); - ReservedSet->insert("class"); - ReservedSet->insert("union"); - ReservedSet->insert("enum"); - ReservedSet->insert("typedef"); - ReservedSet->insert("template"); - ReservedSet->insert("this"); - ReservedSet->insert("goto"); - ReservedSet->insert("inline"); - ReservedSet->insert("noinline"); - ReservedSet->insert("public"); - ReservedSet->insert("static"); - ReservedSet->insert("extern"); - ReservedSet->insert("external"); - ReservedSet->insert("interface"); - ReservedSet->insert("long"); - ReservedSet->insert("short"); - ReservedSet->insert("half"); - ReservedSet->insert("fixed"); - ReservedSet->insert("unsigned"); - ReservedSet->insert("input"); - ReservedSet->insert("output"); - ReservedSet->insert("hvec2"); - ReservedSet->insert("hvec3"); - ReservedSet->insert("hvec4"); - ReservedSet->insert("fvec2"); - ReservedSet->insert("fvec3"); - ReservedSet->insert("fvec4"); - ReservedSet->insert("sampler3DRect"); - ReservedSet->insert("filter"); - ReservedSet->insert("sizeof"); - ReservedSet->insert("cast"); - ReservedSet->insert("namespace"); - ReservedSet->insert("using"); -#endif -} - -void TScanContext::deleteKeywordMap() -{ - delete KeywordMap; - KeywordMap = nullptr; -#ifndef GLSLANG_WEB - delete ReservedSet; - ReservedSet = nullptr; -#endif -} - -// Called by yylex to get the next token. -// Returning 0 implies end of input. -int TScanContext::tokenize(TPpContext* pp, TParserToken& token) -{ - do { - parserToken = &token; - TPpToken ppToken; - int token = pp->tokenize(ppToken); - if (token == EndOfInput) - return 0; - - tokenText = ppToken.name; - loc = ppToken.loc; - parserToken->sType.lex.loc = loc; - switch (token) { - case ';': afterType = false; afterBuffer = false; return SEMICOLON; - case ',': afterType = false; return COMMA; - case ':': return COLON; - case '=': afterType = false; return EQUAL; - case '(': afterType = false; return LEFT_PAREN; - case ')': afterType = false; return RIGHT_PAREN; - case '.': field = true; return DOT; - case '!': return BANG; - case '-': return DASH; - case '~': return TILDE; - case '+': return PLUS; - case '*': return STAR; - case '/': return SLASH; - case '%': return PERCENT; - case '<': return LEFT_ANGLE; - case '>': return RIGHT_ANGLE; - case '|': return VERTICAL_BAR; - case '^': return CARET; - case '&': return AMPERSAND; - case '?': return QUESTION; - case '[': return LEFT_BRACKET; - case ']': return RIGHT_BRACKET; - case '{': afterStruct = false; afterBuffer = false; return LEFT_BRACE; - case '}': return RIGHT_BRACE; - case '\\': - 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 PpAtomRight: return RIGHT_OP; - case PpAtomLeft: return LEFT_OP; - - case PpAtomRightAssign: return RIGHT_ASSIGN; - case PpAtomLeftAssign: return LEFT_ASSIGN; - case PpAtomAndAssign: return AND_ASSIGN; - case PpAtomOrAssign: return OR_ASSIGN; - case PpAtomXorAssign: return XOR_ASSIGN; - - case PpAtomAnd: return AND_OP; - case PpAtomOr: return OR_OP; - case PpAtomXor: return XOR_OP; - - case PpAtomEQ: return EQ_OP; - case PpAtomGE: return GE_OP; - case PpAtomNE: return NE_OP; - case PpAtomLE: return LE_OP; - - case PpAtomDecrement: return DEC_OP; - case PpAtomIncrement: return INC_OP; - - case PpAtomColonColon: - parseContext.error(loc, "not supported", "::", ""); - break; - - case PpAtomConstString: parserToken->sType.lex.string = NewPoolTString(tokenText); return STRING_LITERAL; - case PpAtomConstInt: parserToken->sType.lex.i = ppToken.ival; return INTCONSTANT; - case PpAtomConstUint: parserToken->sType.lex.i = ppToken.ival; return UINTCONSTANT; - case PpAtomConstFloat: parserToken->sType.lex.d = ppToken.dval; return FLOATCONSTANT; -#ifndef GLSLANG_WEB - 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 PpAtomConstDouble: parserToken->sType.lex.d = ppToken.dval; return DOUBLECONSTANT; - case PpAtomConstFloat16: parserToken->sType.lex.d = ppToken.dval; return FLOAT16CONSTANT; -#endif - case PpAtomIdentifier: - { - int token = tokenizeIdentifier(); - field = false; - return token; - } - - case EndOfInput: return 0; - - default: - char buf[2]; - buf[0] = (char)token; - buf[1] = 0; - parseContext.error(loc, "unexpected token", buf, ""); - break; - } - } while (true); -} - -int TScanContext::tokenizeIdentifier() -{ -#ifndef GLSLANG_WEB - if (ReservedSet->find(tokenText) != ReservedSet->end()) - return reservedWord(); -#endif - - auto it = KeywordMap->find(tokenText); - if (it == KeywordMap->end()) { - // Should have an identifier of some sort - return identifierOrType(); - } - keyword = it->second; - - switch (keyword) { - case CONST: - case UNIFORM: - case IN: - case OUT: - case INOUT: - case BREAK: - case CONTINUE: - case DO: - case FOR: - case WHILE: - case IF: - case ELSE: - case DISCARD: - case RETURN: - case CASE: - return keyword; - - case TERMINATE_INVOCATION: - if (!parseContext.extensionTurnedOn(E_GL_EXT_terminate_invocation)) - return identifierOrType(); - return keyword; - - case TERMINATE_RAY: - case IGNORE_INTERSECTION: - if (!parseContext.extensionTurnedOn(E_GL_EXT_ray_tracing)) - return identifierOrType(); - return keyword; - - case BUFFER: - afterBuffer = true; - if ((parseContext.isEsProfile() && parseContext.version < 310) || - (!parseContext.isEsProfile() && (parseContext.version < 430 && - !parseContext.extensionTurnedOn(E_GL_ARB_shader_storage_buffer_object)))) - return identifierOrType(); - return keyword; - - case STRUCT: - afterStruct = true; - return keyword; - - case SWITCH: - case DEFAULT: - if ((parseContext.isEsProfile() && parseContext.version < 300) || - (!parseContext.isEsProfile() && parseContext.version < 130)) - reservedWord(); - return keyword; - - case VOID: - case BOOL: - case FLOAT: - case INT: - case BVEC2: - case BVEC3: - case BVEC4: - case VEC2: - case VEC3: - case VEC4: - case IVEC2: - case IVEC3: - case IVEC4: - case MAT2: - case MAT3: - case MAT4: - case SAMPLER2D: - case SAMPLERCUBE: - afterType = true; - return keyword; - - case BOOLCONSTANT: - if (strcmp("true", tokenText) == 0) - parserToken->sType.lex.b = true; - else - parserToken->sType.lex.b = false; - return keyword; - - case SMOOTH: - if ((parseContext.isEsProfile() && parseContext.version < 300) || - (!parseContext.isEsProfile() && parseContext.version < 130)) - return identifierOrType(); - return keyword; - case FLAT: - if (parseContext.isEsProfile() && parseContext.version < 300) - reservedWord(); - else if (!parseContext.isEsProfile() && parseContext.version < 130) - return identifierOrType(); - return keyword; - case CENTROID: - if (parseContext.version < 120) - return identifierOrType(); - return keyword; - case INVARIANT: - if (!parseContext.isEsProfile() && parseContext.version < 120) - return identifierOrType(); - return keyword; - case PACKED: - if ((parseContext.isEsProfile() && parseContext.version < 300) || - (!parseContext.isEsProfile() && parseContext.version < 140)) - return reservedWord(); - return identifierOrType(); - - case RESOURCE: - { - bool reserved = (parseContext.isEsProfile() && parseContext.version >= 300) || - (!parseContext.isEsProfile() && parseContext.version >= 420); - return identifierOrReserved(reserved); - } - case SUPERP: - { - bool reserved = parseContext.isEsProfile() || parseContext.version >= 130; - return identifierOrReserved(reserved); - } - -#ifndef GLSLANG_WEB - case NOPERSPECTIVE: - if (parseContext.extensionTurnedOn(E_GL_NV_shader_noperspective_interpolation)) - return keyword; - return es30ReservedFromGLSL(130); - - case NONUNIFORM: - if (parseContext.extensionTurnedOn(E_GL_EXT_nonuniform_qualifier)) - return keyword; - else - return identifierOrType(); - case ATTRIBUTE: - case VARYING: - if (parseContext.isEsProfile() && parseContext.version >= 300) - reservedWord(); - return keyword; - case PAYLOADNV: - case PAYLOADINNV: - case HITATTRNV: - case CALLDATANV: - case CALLDATAINNV: - case ACCSTRUCTNV: - if (parseContext.symbolTable.atBuiltInLevel() || - parseContext.extensionTurnedOn(E_GL_NV_ray_tracing)) - return keyword; - return identifierOrType(); - case PAYLOADEXT: - case PAYLOADINEXT: - case HITATTREXT: - case CALLDATAEXT: - case CALLDATAINEXT: - case ACCSTRUCTEXT: - if (parseContext.symbolTable.atBuiltInLevel() || - parseContext.extensionTurnedOn(E_GL_EXT_ray_tracing) || - parseContext.extensionTurnedOn(E_GL_EXT_ray_query)) - return keyword; - return identifierOrType(); - case RAYQUERYEXT: - if (parseContext.symbolTable.atBuiltInLevel() || - (!parseContext.isEsProfile() && parseContext.version >= 460 - && parseContext.extensionTurnedOn(E_GL_EXT_ray_query))) - return keyword; - return identifierOrType(); - case ATOMIC_UINT: - if ((parseContext.isEsProfile() && parseContext.version >= 310) || - parseContext.extensionTurnedOn(E_GL_ARB_shader_atomic_counters)) - return keyword; - return es30ReservedFromGLSL(420); - - case COHERENT: - case DEVICECOHERENT: - case QUEUEFAMILYCOHERENT: - case WORKGROUPCOHERENT: - case SUBGROUPCOHERENT: - case SHADERCALLCOHERENT: - case NONPRIVATE: - case RESTRICT: - case READONLY: - case WRITEONLY: - if (parseContext.isEsProfile() && parseContext.version >= 310) - return keyword; - return es30ReservedFromGLSL(parseContext.extensionTurnedOn(E_GL_ARB_shader_image_load_store) ? 130 : 420); - case VOLATILE: - if (parseContext.isEsProfile() && parseContext.version >= 310) - return keyword; - if (! parseContext.symbolTable.atBuiltInLevel() && (parseContext.isEsProfile() || - (parseContext.version < 420 && ! parseContext.extensionTurnedOn(E_GL_ARB_shader_image_load_store)))) - reservedWord(); - return keyword; - case PATCH: - if (parseContext.symbolTable.atBuiltInLevel() || - (parseContext.isEsProfile() && - (parseContext.version >= 320 || - parseContext.extensionsTurnedOn(Num_AEP_tessellation_shader, AEP_tessellation_shader))) || - (!parseContext.isEsProfile() && parseContext.extensionTurnedOn(E_GL_ARB_tessellation_shader))) - return keyword; - - return es30ReservedFromGLSL(400); - - case SAMPLE: - if ((parseContext.isEsProfile() && parseContext.version >= 320) || - parseContext.extensionsTurnedOn(1, &E_GL_OES_shader_multisample_interpolation)) - return keyword; - return es30ReservedFromGLSL(400); - - case SUBROUTINE: - return es30ReservedFromGLSL(400); -#endif - case SHARED: - if ((parseContext.isEsProfile() && parseContext.version < 300) || - (!parseContext.isEsProfile() && parseContext.version < 140)) - return identifierOrType(); - return keyword; - case LAYOUT: - { - const int numLayoutExts = 2; - const char* layoutExts[numLayoutExts] = { E_GL_ARB_shading_language_420pack, - E_GL_ARB_explicit_attrib_location }; - if ((parseContext.isEsProfile() && parseContext.version < 300) || - (!parseContext.isEsProfile() && parseContext.version < 140 && - ! parseContext.extensionsTurnedOn(numLayoutExts, layoutExts))) - return identifierOrType(); - return keyword; - } - - case HIGH_PRECISION: - case MEDIUM_PRECISION: - case LOW_PRECISION: - case PRECISION: - return precisionKeyword(); - - case MAT2X2: - case MAT2X3: - case MAT2X4: - case MAT3X2: - case MAT3X3: - case MAT3X4: - case MAT4X2: - case MAT4X3: - case MAT4X4: - return matNxM(); - -#ifndef GLSLANG_WEB - case DMAT2: - case DMAT3: - case DMAT4: - case DMAT2X2: - case DMAT2X3: - case DMAT2X4: - case DMAT3X2: - case DMAT3X3: - case DMAT3X4: - case DMAT4X2: - case DMAT4X3: - case DMAT4X4: - return dMat(); - - case IMAGE1D: - case IIMAGE1D: - case UIMAGE1D: - case IMAGE1DARRAY: - case IIMAGE1DARRAY: - case UIMAGE1DARRAY: - case IMAGE2DRECT: - case IIMAGE2DRECT: - case UIMAGE2DRECT: - afterType = true; - return firstGenerationImage(false); - - case I64IMAGE1D: - case U64IMAGE1D: - case I64IMAGE1DARRAY: - case U64IMAGE1DARRAY: - case I64IMAGE2DRECT: - case U64IMAGE2DRECT: - afterType = true; - if (parseContext.symbolTable.atBuiltInLevel() || - parseContext.extensionTurnedOn(E_GL_EXT_shader_image_int64)) { - return firstGenerationImage(false); - } - return identifierOrType(); - - case IMAGEBUFFER: - case IIMAGEBUFFER: - case UIMAGEBUFFER: - afterType = true; - if ((parseContext.isEsProfile() && parseContext.version >= 320) || - parseContext.extensionsTurnedOn(Num_AEP_texture_buffer, AEP_texture_buffer)) - return keyword; - return firstGenerationImage(false); - - case I64IMAGEBUFFER: - case U64IMAGEBUFFER: - afterType = true; - if (parseContext.symbolTable.atBuiltInLevel() || - parseContext.extensionTurnedOn(E_GL_EXT_shader_image_int64)) { - if ((parseContext.isEsProfile() && parseContext.version >= 320) || - parseContext.extensionsTurnedOn(Num_AEP_texture_buffer, AEP_texture_buffer)) - return keyword; - return firstGenerationImage(false); - } - return identifierOrType(); - - case IMAGE2D: - case IIMAGE2D: - case UIMAGE2D: - case IMAGE3D: - case IIMAGE3D: - case UIMAGE3D: - case IMAGECUBE: - case IIMAGECUBE: - case UIMAGECUBE: - case IMAGE2DARRAY: - case IIMAGE2DARRAY: - case UIMAGE2DARRAY: - afterType = true; - return firstGenerationImage(true); - - case I64IMAGE2D: - case U64IMAGE2D: - case I64IMAGE3D: - case U64IMAGE3D: - case I64IMAGECUBE: - case U64IMAGECUBE: - case I64IMAGE2DARRAY: - case U64IMAGE2DARRAY: - afterType = true; - if (parseContext.symbolTable.atBuiltInLevel() || - parseContext.extensionTurnedOn(E_GL_EXT_shader_image_int64)) - return firstGenerationImage(true); - return identifierOrType(); - - case IMAGECUBEARRAY: - case IIMAGECUBEARRAY: - case UIMAGECUBEARRAY: - afterType = true; - if ((parseContext.isEsProfile() && parseContext.version >= 320) || - parseContext.extensionsTurnedOn(Num_AEP_texture_cube_map_array, AEP_texture_cube_map_array)) - return keyword; - return secondGenerationImage(); - - case I64IMAGECUBEARRAY: - case U64IMAGECUBEARRAY: - afterType = true; - if (parseContext.symbolTable.atBuiltInLevel() || - parseContext.extensionTurnedOn(E_GL_EXT_shader_image_int64)) { - if ((parseContext.isEsProfile() && parseContext.version >= 320) || - parseContext.extensionsTurnedOn(Num_AEP_texture_cube_map_array, AEP_texture_cube_map_array)) - return keyword; - return secondGenerationImage(); - } - return identifierOrType(); - - case IMAGE2DMS: - case IIMAGE2DMS: - case UIMAGE2DMS: - case IMAGE2DMSARRAY: - case IIMAGE2DMSARRAY: - case UIMAGE2DMSARRAY: - afterType = true; - return secondGenerationImage(); - - case I64IMAGE2DMS: - case U64IMAGE2DMS: - case I64IMAGE2DMSARRAY: - case U64IMAGE2DMSARRAY: - afterType = true; - if (parseContext.symbolTable.atBuiltInLevel() || - parseContext.extensionTurnedOn(E_GL_EXT_shader_image_int64)) { - return secondGenerationImage(); - } - return identifierOrType(); - - case DOUBLE: - case DVEC2: - case DVEC3: - case DVEC4: - afterType = true; - if (parseContext.isEsProfile() || parseContext.version < 150 || - (!parseContext.symbolTable.atBuiltInLevel() && - (parseContext.version < 400 && !parseContext.extensionTurnedOn(E_GL_ARB_gpu_shader_fp64) && - (parseContext.version < 410 && !parseContext.extensionTurnedOn(E_GL_ARB_vertex_attrib_64bit))))) - reservedWord(); - return keyword; - - case INT64_T: - case UINT64_T: - case I64VEC2: - case I64VEC3: - case I64VEC4: - case U64VEC2: - case U64VEC3: - case U64VEC4: - afterType = true; - if (parseContext.symbolTable.atBuiltInLevel() || - parseContext.extensionTurnedOn(E_GL_ARB_gpu_shader_int64) || - parseContext.extensionTurnedOn(E_GL_EXT_shader_explicit_arithmetic_types) || - parseContext.extensionTurnedOn(E_GL_EXT_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_EXT_shader_explicit_arithmetic_types) || - parseContext.extensionTurnedOn(E_GL_EXT_shader_8bit_storage) || - parseContext.extensionTurnedOn(E_GL_EXT_shader_explicit_arithmetic_types_int8)) - 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.extensionTurnedOn(E_GL_AMD_gpu_shader_int16) || - parseContext.extensionTurnedOn(E_GL_EXT_shader_16bit_storage) || - parseContext.extensionTurnedOn(E_GL_EXT_shader_explicit_arithmetic_types) || - parseContext.extensionTurnedOn(E_GL_EXT_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_EXT_shader_explicit_arithmetic_types) || - parseContext.extensionTurnedOn(E_GL_EXT_shader_explicit_arithmetic_types_int32)) - 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_EXT_shader_explicit_arithmetic_types) || - parseContext.extensionTurnedOn(E_GL_EXT_shader_explicit_arithmetic_types_float32)) - 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_EXT_shader_explicit_arithmetic_types) || - parseContext.extensionTurnedOn(E_GL_EXT_shader_explicit_arithmetic_types_float64)) - return keyword; - return identifierOrType(); - - case FLOAT16_T: - case F16VEC2: - case F16VEC3: - case F16VEC4: - afterType = true; - if (parseContext.symbolTable.atBuiltInLevel() || - parseContext.extensionTurnedOn(E_GL_AMD_gpu_shader_half_float) || - parseContext.extensionTurnedOn(E_GL_EXT_shader_16bit_storage) || - parseContext.extensionTurnedOn(E_GL_EXT_shader_explicit_arithmetic_types) || - parseContext.extensionTurnedOn(E_GL_EXT_shader_explicit_arithmetic_types_float16)) - return keyword; - - return identifierOrType(); - - case F16MAT2: - case F16MAT3: - case F16MAT4: - case F16MAT2X2: - case F16MAT2X3: - case F16MAT2X4: - case F16MAT3X2: - case F16MAT3X3: - case F16MAT3X4: - case F16MAT4X2: - case F16MAT4X3: - case F16MAT4X4: - afterType = true; - if (parseContext.symbolTable.atBuiltInLevel() || - parseContext.extensionTurnedOn(E_GL_AMD_gpu_shader_half_float) || - parseContext.extensionTurnedOn(E_GL_EXT_shader_explicit_arithmetic_types) || - parseContext.extensionTurnedOn(E_GL_EXT_shader_explicit_arithmetic_types_float16)) - return keyword; - - return identifierOrType(); - - case SAMPLERCUBEARRAY: - case SAMPLERCUBEARRAYSHADOW: - case ISAMPLERCUBEARRAY: - case USAMPLERCUBEARRAY: - afterType = true; - if ((parseContext.isEsProfile() && parseContext.version >= 320) || - parseContext.extensionsTurnedOn(Num_AEP_texture_cube_map_array, AEP_texture_cube_map_array)) - return keyword; - if (parseContext.isEsProfile() || (parseContext.version < 400 && ! parseContext.extensionTurnedOn(E_GL_ARB_texture_cube_map_array))) - reservedWord(); - return keyword; - - case TEXTURECUBEARRAY: - case ITEXTURECUBEARRAY: - case UTEXTURECUBEARRAY: - if (parseContext.spvVersion.vulkan > 0) - return keyword; - else - return identifierOrType(); -#endif - - case UINT: - case UVEC2: - case UVEC3: - case UVEC4: - case SAMPLERCUBESHADOW: - case SAMPLER2DARRAY: - case SAMPLER2DARRAYSHADOW: - case ISAMPLER2D: - case ISAMPLER3D: - case ISAMPLERCUBE: - case ISAMPLER2DARRAY: - case USAMPLER2D: - case USAMPLER3D: - case USAMPLERCUBE: - case USAMPLER2DARRAY: - afterType = true; - return nonreservedKeyword(300, 130); - - case SAMPLER3D: - afterType = true; - if (parseContext.isEsProfile() && parseContext.version < 300) { - if (!parseContext.extensionTurnedOn(E_GL_OES_texture_3D)) - reservedWord(); - } - return keyword; - - case SAMPLER2DSHADOW: - afterType = true; - if (parseContext.isEsProfile() && parseContext.version < 300) { - if (!parseContext.extensionTurnedOn(E_GL_EXT_shadow_samplers)) - reservedWord(); - } - return keyword; - - case TEXTURE2D: - case TEXTURECUBE: - case TEXTURE2DARRAY: - case ITEXTURE2D: - case ITEXTURE3D: - case ITEXTURECUBE: - case ITEXTURE2DARRAY: - case UTEXTURE2D: - case UTEXTURE3D: - case UTEXTURECUBE: - case UTEXTURE2DARRAY: - case TEXTURE3D: - case SAMPLER: - case SAMPLERSHADOW: - if (parseContext.spvVersion.vulkan > 0) - return keyword; - else - return identifierOrType(); - -#ifndef GLSLANG_WEB - case ISAMPLER1D: - case ISAMPLER1DARRAY: - case SAMPLER1DARRAYSHADOW: - case USAMPLER1D: - case USAMPLER1DARRAY: - afterType = true; - return es30ReservedFromGLSL(130); - case ISAMPLER2DRECT: - case USAMPLER2DRECT: - afterType = true; - return es30ReservedFromGLSL(140); - - case SAMPLERBUFFER: - afterType = true; - if ((parseContext.isEsProfile() && 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.isEsProfile() && parseContext.version >= 320) || - parseContext.extensionsTurnedOn(Num_AEP_texture_buffer, AEP_texture_buffer)) - return keyword; - return es30ReservedFromGLSL(140); - - case SAMPLER2DMS: - case ISAMPLER2DMS: - case USAMPLER2DMS: - afterType = true; - if (parseContext.isEsProfile() && parseContext.version >= 310) - return keyword; - if (!parseContext.isEsProfile() && (parseContext.version > 140 || - (parseContext.version == 140 && parseContext.extensionsTurnedOn(1, &E_GL_ARB_texture_multisample)))) - return keyword; - return es30ReservedFromGLSL(150); - - case SAMPLER2DMSARRAY: - case ISAMPLER2DMSARRAY: - case USAMPLER2DMSARRAY: - afterType = true; - if ((parseContext.isEsProfile() && parseContext.version >= 320) || - parseContext.extensionsTurnedOn(1, &E_GL_OES_texture_storage_multisample_2d_array)) - return keyword; - if (!parseContext.isEsProfile() && (parseContext.version > 140 || - (parseContext.version == 140 && parseContext.extensionsTurnedOn(1, &E_GL_ARB_texture_multisample)))) - return keyword; - return es30ReservedFromGLSL(150); - - case SAMPLER1D: - case SAMPLER1DSHADOW: - afterType = true; - if (parseContext.isEsProfile()) - reservedWord(); - return keyword; - - case SAMPLER2DRECT: - case SAMPLER2DRECTSHADOW: - afterType = true; - if (parseContext.isEsProfile()) - 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 - reservedWord(); - } - return keyword; - - case SAMPLER1DARRAY: - afterType = true; - if (parseContext.isEsProfile() && parseContext.version == 300) - reservedWord(); - else if ((parseContext.isEsProfile() && parseContext.version < 300) || - (!parseContext.isEsProfile() && 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)) - return keyword; - return identifierOrType(); - - case SAMPLEREXTERNAL2DY2YEXT: - afterType = true; - if (parseContext.symbolTable.atBuiltInLevel() || - parseContext.extensionTurnedOn(E_GL_EXT_YUV_target)) - return keyword; - return identifierOrType(); - - case ITEXTURE1DARRAY: - case UTEXTURE1D: - case ITEXTURE1D: - case UTEXTURE1DARRAY: - case TEXTUREBUFFER: - case ITEXTURE2DRECT: - case UTEXTURE2DRECT: - case ITEXTUREBUFFER: - case UTEXTUREBUFFER: - case TEXTURE2DMS: - case ITEXTURE2DMS: - case UTEXTURE2DMS: - case TEXTURE2DMSARRAY: - case ITEXTURE2DMSARRAY: - case UTEXTURE2DMSARRAY: - case TEXTURE1D: - case TEXTURE2DRECT: - case TEXTURE1DARRAY: - if (parseContext.spvVersion.vulkan > 0) - return keyword; - else - return identifierOrType(); - - case SUBPASSINPUT: - case SUBPASSINPUTMS: - case ISUBPASSINPUT: - case ISUBPASSINPUTMS: - case USUBPASSINPUT: - case USUBPASSINPUTMS: - if (parseContext.spvVersion.vulkan > 0) - return keyword; - else - return identifierOrType(); - - 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)) - return keyword; - return identifierOrType(); - - case EXPLICITINTERPAMD: - if (parseContext.extensionTurnedOn(E_GL_AMD_shader_explicit_vertex_parameter)) - return keyword; - return identifierOrType(); - - case PERVERTEXNV: - if ((!parseContext.isEsProfile() && parseContext.version >= 450) || - parseContext.extensionTurnedOn(E_GL_NV_fragment_shader_barycentric)) - return keyword; - return identifierOrType(); - - case PRECISE: - if ((parseContext.isEsProfile() && - (parseContext.version >= 320 || parseContext.extensionsTurnedOn(Num_AEP_gpu_shader5, AEP_gpu_shader5))) || - (!parseContext.isEsProfile() && parseContext.version >= 400)) - return keyword; - if (parseContext.isEsProfile() && parseContext.version == 310) { - reservedWord(); - return keyword; - } - return identifierOrType(); - - case PERPRIMITIVENV: - case PERVIEWNV: - case PERTASKNV: - if ((!parseContext.isEsProfile() && parseContext.version >= 450) || - (parseContext.isEsProfile() && parseContext.version >= 320) || - parseContext.extensionTurnedOn(E_GL_NV_mesh_shader)) - return keyword; - return identifierOrType(); - - case FCOOPMATNV: - afterType = true; - if (parseContext.symbolTable.atBuiltInLevel() || - parseContext.extensionTurnedOn(E_GL_NV_cooperative_matrix)) - return keyword; - return identifierOrType(); - - case UCOOPMATNV: - case ICOOPMATNV: - afterType = true; - if (parseContext.symbolTable.atBuiltInLevel() || - parseContext.extensionTurnedOn(E_GL_NV_integer_cooperative_matrix)) - return keyword; - return identifierOrType(); - - case DEMOTE: - if (parseContext.extensionTurnedOn(E_GL_EXT_demote_to_helper_invocation)) - return keyword; - else - return identifierOrType(); - - case SPIRV_INSTRUCTION: - case SPIRV_EXECUTION_MODE: - case SPIRV_EXECUTION_MODE_ID: - case SPIRV_DECORATE: - case SPIRV_DECORATE_ID: - case SPIRV_DECORATE_STRING: - case SPIRV_TYPE: - case SPIRV_STORAGE_CLASS: - case SPIRV_BY_REFERENCE: - case SPIRV_LITERAL: - if (parseContext.symbolTable.atBuiltInLevel() || - parseContext.extensionTurnedOn(E_GL_EXT_spirv_intrinsics)) - return keyword; - return identifierOrType(); -#endif - - default: - parseContext.infoSink.info.message(EPrefixInternalError, "Unknown glslang keyword", loc); - return 0; - } -} - -int TScanContext::identifierOrType() -{ - parserToken->sType.lex.string = NewPoolTString(tokenText); - 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) { - if (const TVariable* variable = parserToken->sType.lex.symbol->getAsVariable()) { - if (variable->isUserType() && - // treat redeclaration of forward-declared buffer/uniform reference as an identifier - !(variable->getType().isReference() && afterBuffer)) { - afterType = true; - - return TYPE_NAME; - } - } - } - - return IDENTIFIER; -} - -// 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. -int TScanContext::reservedWord() -{ - if (! parseContext.symbolTable.atBuiltInLevel()) - parseContext.error(loc, "Reserved word.", tokenText, "", ""); - - return 0; -} - -int TScanContext::identifierOrReserved(bool reserved) -{ - if (reserved) { - reservedWord(); - - return 0; - } - - if (parseContext.isForwardCompatible()) - parseContext.warn(loc, "using future reserved keyword", tokenText, ""); - - return identifierOrType(); -} - -// For keywords that suddenly showed up on non-ES (not previously reserved) -// but then got reserved by ES 3.0. -int TScanContext::es30ReservedFromGLSL(int version) -{ - if (parseContext.symbolTable.atBuiltInLevel()) - return keyword; - - if ((parseContext.isEsProfile() && parseContext.version < 300) || - (!parseContext.isEsProfile() && parseContext.version < version)) { - if (parseContext.isForwardCompatible()) - parseContext.warn(loc, "future reserved word in ES 300 and keyword in GLSL", tokenText, ""); - - return identifierOrType(); - } else if (parseContext.isEsProfile() && parseContext.version >= 300) - reservedWord(); - - return keyword; -} - -// For a keyword that was never reserved, until it suddenly -// showed up, both in an es version and a non-ES version. -int TScanContext::nonreservedKeyword(int esVersion, int nonEsVersion) -{ - if ((parseContext.isEsProfile() && parseContext.version < esVersion) || - (!parseContext.isEsProfile() && parseContext.version < nonEsVersion)) { - if (parseContext.isForwardCompatible()) - parseContext.warn(loc, "using future keyword", tokenText, ""); - - return identifierOrType(); - } - - return keyword; -} - -int TScanContext::precisionKeyword() -{ - if (parseContext.isEsProfile() || parseContext.version >= 130) - return keyword; - - if (parseContext.isForwardCompatible()) - parseContext.warn(loc, "using ES precision qualifier keyword", tokenText, ""); - - return identifierOrType(); -} - -int TScanContext::matNxM() -{ - afterType = true; - - if (parseContext.version > 110) - return keyword; - - if (parseContext.isForwardCompatible()) - parseContext.warn(loc, "using future non-square matrix type keyword", tokenText, ""); - - return identifierOrType(); -} - -int TScanContext::dMat() -{ - afterType = true; - - if (parseContext.isEsProfile() && parseContext.version >= 300) { - reservedWord(); - - return keyword; - } - - if (!parseContext.isEsProfile() && (parseContext.version >= 400 || - parseContext.symbolTable.atBuiltInLevel() || - (parseContext.version >= 150 && parseContext.extensionTurnedOn(E_GL_ARB_gpu_shader_fp64)) || - (parseContext.version >= 150 && parseContext.extensionTurnedOn(E_GL_ARB_vertex_attrib_64bit) - && parseContext.language == EShLangVertex))) - return keyword; - - if (parseContext.isForwardCompatible()) - parseContext.warn(loc, "using future type keyword", tokenText, ""); - - return identifierOrType(); -} - -int TScanContext::firstGenerationImage(bool inEs310) -{ - if (parseContext.symbolTable.atBuiltInLevel() || - (!parseContext.isEsProfile() && (parseContext.version >= 420 || - parseContext.extensionTurnedOn(E_GL_ARB_shader_image_load_store))) || - (inEs310 && parseContext.isEsProfile() && parseContext.version >= 310)) - return keyword; - - if ((parseContext.isEsProfile() && parseContext.version >= 300) || - (!parseContext.isEsProfile() && parseContext.version >= 130)) { - reservedWord(); - - return keyword; - } - - if (parseContext.isForwardCompatible()) - parseContext.warn(loc, "using future type keyword", tokenText, ""); - - return identifierOrType(); -} - -int TScanContext::secondGenerationImage() -{ - if (parseContext.isEsProfile() && parseContext.version >= 310) { - reservedWord(); - return keyword; - } - - if (parseContext.symbolTable.atBuiltInLevel() || - (!parseContext.isEsProfile() && - (parseContext.version >= 420 || parseContext.extensionTurnedOn(E_GL_ARB_shader_image_load_store)))) - return keyword; - - if (parseContext.isForwardCompatible()) - parseContext.warn(loc, "using future type keyword", tokenText, ""); - - return identifierOrType(); -} - -} // end namespace glslang diff --git a/deps/glslang/glslang/MachineIndependent/Scan.h b/deps/glslang/glslang/MachineIndependent/Scan.h deleted file mode 100644 index 24b75cf7..00000000 --- a/deps/glslang/glslang/MachineIndependent/Scan.h +++ /dev/null @@ -1,276 +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. -// -#ifndef _GLSLANG_SCAN_INCLUDED_ -#define _GLSLANG_SCAN_INCLUDED_ - -#include "Versions.h" - -namespace glslang { - -// Use a global end-of-input character, so no translation is needed across -// layers of encapsulation. Characters are all 8 bit, and positive, so there is -// no aliasing of character 255 onto -1, for example. -const int EndOfInput = -1; - -// -// A character scanner that seamlessly, on read-only strings, reads across an -// array of strings without assuming null termination. -// -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) : - 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) - { - loc = new TSourceLoc[numSources]; - for (int i = 0; i < numSources; ++i) { - loc[i].init(i - stringBias); - } - if (names != nullptr) { - for (int i = 0; i < numSources; ++i) - loc[i].name = names[i] != nullptr ? NewPoolTString(names[i]) : nullptr; - } - loc[currentSource].line = 1; - logicalSourceLoc.init(1); - logicalSourceLoc.name = loc[0].name; - } - - virtual ~TInputScanner() - { - delete [] loc; - } - - // retrieve the next character and advance one character - int get() - { - int ret = peek(); - if (ret == EndOfInput) - return ret; - ++loc[currentSource].column; - ++logicalSourceLoc.column; - if (ret == '\n') { - ++loc[currentSource].line; - ++logicalSourceLoc.line; - logicalSourceLoc.column = 0; - loc[currentSource].column = 0; - } - advance(); - - return ret; - } - - // retrieve the next character, no advance - int peek() - { - if (currentSource >= numSources) { - endOfFileReached = true; - return EndOfInput; - } - // Make sure we do not read off the end of a string. - // N.B. Sources can have a length of 0. - int sourceToRead = currentSource; - size_t charToRead = currentChar; - while(charToRead >= lengths[sourceToRead]) { - charToRead = 0; - sourceToRead += 1; - if (sourceToRead >= numSources) { - return EndOfInput; - } - } - - // Here, we care about making negative valued characters positive - return sources[sourceToRead][charToRead]; - } - - // go back one character - void unget() - { - // Do not roll back once we've reached the end of the file. - if (endOfFileReached) - return; - - if (currentChar > 0) { - --currentChar; - --loc[currentSource].column; - --logicalSourceLoc.column; - if (loc[currentSource].column < 0) { - // We've moved back past a new line. Find the - // previous newline (or start of the file) to compute - // the column count on the now current line. - size_t chIndex = currentChar; - while (chIndex > 0) { - if (sources[currentSource][chIndex] == '\n') { - break; - } - --chIndex; - } - logicalSourceLoc.column = (int)(currentChar - chIndex); - loc[currentSource].column = (int)(currentChar - chIndex); - } - } else { - do { - --currentSource; - } while (currentSource > 0 && lengths[currentSource] == 0); - if (lengths[currentSource] == 0) { - // set to 0 if we've backed up to the start of an empty string - currentChar = 0; - } else - currentChar = lengths[currentSource] - 1; - } - if (peek() == '\n') { - --loc[currentSource].line; - --logicalSourceLoc.line; - } - } - - // for #line override - void setLine(int newLine) - { - logicalSourceLoc.line = newLine; - loc[getLastValidSourceIndex()].line = newLine; - } - - // for #line override in filename based parsing - void setFile(const char* filename) - { - TString* fn_tstr = NewPoolTString(filename); - logicalSourceLoc.name = fn_tstr; - loc[getLastValidSourceIndex()].name = fn_tstr; - } - - void setFile(const char* filename, int i) - { - TString* fn_tstr = NewPoolTString(filename); - if (i == getLastValidSourceIndex()) { - logicalSourceLoc.name = fn_tstr; - } - loc[i].name = fn_tstr; - } - - void setString(int newString) - { - logicalSourceLoc.string = newString; - loc[getLastValidSourceIndex()].string = newString; - logicalSourceLoc.name = nullptr; - loc[getLastValidSourceIndex()].name = nullptr; - } - - // for #include content indentation - void setColumn(int col) - { - logicalSourceLoc.column = col; - loc[getLastValidSourceIndex()].column = col; - } - - void setEndOfInput() - { - endOfFileReached = true; - currentSource = numSources; - } - - bool atEndOfInput() const { return endOfFileReached; } - - const TSourceLoc& getSourceLoc() const - { - if (singleLogical) { - return logicalSourceLoc; - } else { - return loc[std::max(0, std::min(currentSource, numSources - finale - 1))]; - } - } - // Returns the index (starting from 0) of the most recent valid source string we are reading from. - int getLastValidSourceIndex() const { return std::min(currentSource, numSources - 1); } - - void consumeWhiteSpace(bool& foundNonSpaceTab); - bool consumeComment(); - void consumeWhitespaceComment(bool& foundNonSpaceTab); - bool scanVersion(int& version, EProfile& profile, bool& notFirstToken); - -protected: - - // advance one character - void advance() - { - ++currentChar; - if (currentChar >= lengths[currentSource]) { - ++currentSource; - if (currentSource < numSources) { - loc[currentSource].string = loc[currentSource - 1].string + 1; - loc[currentSource].line = 1; - loc[currentSource].column = 0; - } - while (currentSource < numSources && lengths[currentSource] == 0) { - ++currentSource; - if (currentSource < numSources) { - loc[currentSource].string = loc[currentSource - 1].string + 1; - loc[currentSource].line = 1; - loc[currentSource].column = 0; - } - } - currentChar = 0; - } - } - - int numSources; // number of strings in source - const unsigned char* const *sources; // array of strings; must be converted to positive values on use, to avoid aliasing with -1 as EndOfInput - const size_t *lengths; // length of each string - int currentSource; - size_t currentChar; - - // This is for reporting what string/line an error occurred on, and can be overridden by #line. - // It remembers the last state of each source string as it is left for the next one, so unget() - // can restore that state. - TSourceLoc* loc; // an array - - int stringBias; // the first string that is the user's string number 0 - int finale; // number of internal strings after user's last string - - TSourceLoc logicalSourceLoc; - bool singleLogical; // treats the strings as a single logical string. - // locations will be reported from the first string. - - // Set to true once peek() returns EndOfFile, so that we won't roll back - // once we've reached EndOfFile. - bool endOfFileReached; -}; - -} // end namespace glslang - -#endif // _GLSLANG_SCAN_INCLUDED_ diff --git a/deps/glslang/glslang/MachineIndependent/ScanContext.h b/deps/glslang/glslang/MachineIndependent/ScanContext.h deleted file mode 100644 index 74b2b3c7..00000000 --- a/deps/glslang/glslang/MachineIndependent/ScanContext.h +++ /dev/null @@ -1,93 +0,0 @@ -// -// 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. -// - -// -// This holds context specific to the GLSL scanner, which -// sits between the preprocessor scanner and parser. -// - -#pragma once - -#include "ParseHelper.h" - -namespace glslang { - -class TPpContext; -class TPpToken; -class TParserToken; - -class TScanContext { -public: - explicit TScanContext(TParseContextBase& pc) : - parseContext(pc), - afterType(false), afterStruct(false), - field(false), afterBuffer(false) { } - virtual ~TScanContext() { } - - static void fillInKeywordMap(); - static void deleteKeywordMap(); - - int tokenize(TPpContext*, TParserToken&); - -protected: - TScanContext(TScanContext&); - TScanContext& operator=(TScanContext&); - - int tokenizeIdentifier(); - int identifierOrType(); - int reservedWord(); - int identifierOrReserved(bool reserved); - int es30ReservedFromGLSL(int version); - int nonreservedKeyword(int esVersion, int nonEsVersion); - int precisionKeyword(); - int matNxM(); - int dMat(); - int firstGenerationImage(bool inEs310); - int secondGenerationImage(); - - 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 '.' - bool afterBuffer; // true if we've recognized the BUFFER keyword - TSourceLoc loc; - TParserToken* parserToken; - TPpToken* ppToken; - - const char* tokenText; - int keyword; -}; - -} // end namespace glslang diff --git a/deps/glslang/glslang/MachineIndependent/ShaderLang.cpp b/deps/glslang/glslang/MachineIndependent/ShaderLang.cpp deleted file mode 100644 index a5ba40e6..00000000 --- a/deps/glslang/glslang/MachineIndependent/ShaderLang.cpp +++ /dev/null @@ -1,2255 +0,0 @@ -// -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2013-2016 LunarG, Inc. -// Copyright (C) 2015-2020 Google, Inc. -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// Neither the name of 3Dlabs Inc. Ltd. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -// - -// -// Implement the top-level of interface to the compiler/linker, -// as defined in ShaderLang.h -// This is the platform independent interface between an OGL driver -// and the shading language compiler/linker. -// -#include -#include -#include -#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 "../HLSL/hlslScanContext.h" -#endif - -#include "../Include/ShHandle.h" -#include "../../OGLCompilersDLL/InitializeDll.h" - -#include "preprocessor/PpContext.h" - -#define SH_EXPORTING -#include "../Public/ShaderLang.h" -#include "reflection.h" -#include "iomapper.h" -#include "Initialize.h" - -// TODO: this really shouldn't be here, it is only because of the trial addition -// of printing pre-processed tokens, which requires knowing the string literal -// token to print ", but none of that seems appropriate for this file. -#include "preprocessor/PpTokens.h" - -// Build-time generated includes -#include "glslang/build_info.h" - -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. -TBuiltInParseables* CreateBuiltInParseables(TInfoSink& infoSink, EShSource source) -{ - 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"); - return nullptr; - } -} - -// Create a language specific version of a parse context. -TParseContextBase* CreateParseContext(TSymbolTable& symbolTable, TIntermediate& intermediate, - int version, EProfile profile, EShSource source, - EShLanguage language, TInfoSink& infoSink, - SpvVersion spvVersion, bool forwardCompatible, EShMessages messages, - bool parsingBuiltIns, std::string sourceEntryPointName = "") -{ - switch (source) { - 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, &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; - } -} - -// Local mapping functions for making arrays of symbol tables.... - -const int VersionCount = 17; // index range in MapVersionToIndex - -int MapVersionToIndex(int version) -{ - int index = 0; - - switch (version) { - case 100: index = 0; break; - case 110: index = 1; break; - case 120: index = 2; break; - case 130: index = 3; break; - case 140: index = 4; break; - case 150: index = 5; break; - case 300: index = 6; break; - case 330: index = 7; break; - case 400: index = 8; break; - case 410: index = 9; break; - case 420: index = 10; break; - case 430: index = 11; break; - case 440: index = 12; break; - case 310: index = 13; break; - case 450: index = 14; break; - case 500: index = 0; break; // HLSL - case 320: index = 15; break; - case 460: index = 16; break; - default: assert(0); break; - } - - assert(index < VersionCount); - - return index; -} - -const int SpvVersionCount = 4; // index range in MapSpvVersionToIndex - -int MapSpvVersionToIndex(const SpvVersion& spvVersion) -{ - int index = 0; - - if (spvVersion.openGl > 0) - index = 1; - else if (spvVersion.vulkan > 0) { - if (!spvVersion.vulkanRelaxed) - index = 2; - else - index = 3; - } - - assert(index < SpvVersionCount); - - return index; -} - -const int ProfileCount = 4; // index range in MapProfileToIndex - -int MapProfileToIndex(EProfile profile) -{ - int index = 0; - - switch (profile) { - case ENoProfile: index = 0; break; - case ECoreProfile: index = 1; break; - case ECompatibilityProfile: index = 2; break; - case EEsProfile: index = 3; break; - default: break; - } - - assert(index < ProfileCount); - - return index; -} - -const int SourceCount = 2; - -int MapSourceToIndex(EShSource source) -{ - int index = 0; - - switch (source) { - case EShSourceGlsl: index = 0; break; - case EShSourceHlsl: index = 1; break; - default: break; - } - - assert(index < SourceCount); - - return index; -} - -// only one of these needed for non-ES; ES needs 2 for different precision defaults of built-ins -enum EPrecisionClass { - EPcGeneral, - EPcFragment, - 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 -// 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; - -// -// Parse and add to the given symbol table the content of the given shader string. -// -bool InitializeSymbolTable(const TString& builtIns, int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, - EShSource source, TInfoSink& infoSink, TSymbolTable& symbolTable) -{ - TIntermediate intermediate(language, version, profile); - - intermediate.setSource(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); - - // - // Push the symbol table to give it an initial scope. This - // push should not have a corresponding pop, so that built-ins - // are preserved, and the test for an empty table fails. - // - - symbolTable.push(); - - const char* builtInShaders[2]; - size_t builtInLengths[2]; - builtInShaders[0] = builtIns.c_str(); - builtInLengths[0] = builtIns.size(); - - if (builtInLengths[0] == 0) - return true; - - TInputScanner input(1, builtInShaders, builtInLengths); - if (! parseContext->parseShaderStrings(ppContext, input) != 0) { - infoSink.info.message(EPrefixInternalError, "Unable to parse built-ins"); - printf("Unable to parse built-ins\n%s\n", infoSink.info.c_str()); - printf("%s\n", builtInShaders[0]); - - return false; - } - - return true; -} - -int CommonIndex(EProfile profile, EShLanguage language) -{ - return (profile == EEsProfile && language == EShLangFragment) ? EPcFragment : EPcGeneral; -} - -// -// To initialize per-stage shared tables, with the common table already complete. -// -void InitializeStageSymbolTable(TBuiltInParseables& builtInParseables, int version, EProfile profile, const SpvVersion& spvVersion, - EShLanguage language, EShSource source, TInfoSink& infoSink, TSymbolTable** commonTable, - TSymbolTable** symbolTables) -{ -#ifdef GLSLANG_WEB - profile = EEsProfile; - version = 310; -#elif defined(GLSLANG_ANGLE) - profile = ECoreProfile; - version = 450; -#endif - - (*symbolTables[language]).adoptLevels(*commonTable[CommonIndex(profile, language)]); - InitializeSymbolTable(builtInParseables.getStageString(language), version, profile, spvVersion, language, source, - infoSink, *symbolTables[language]); - builtInParseables.identifyBuiltIns(version, profile, spvVersion, language, *symbolTables[language]); - if (profile == EEsProfile && version >= 300) - (*symbolTables[language]).setNoBuiltInRedeclarations(); - if (version == 110) - (*symbolTables[language]).setSeparateNameSpaces(); -} - -// -// Initialize the full set of shareable symbol tables; -// The common (cross-stage) and those shareable per-stage. -// -bool InitializeSymbolTables(TInfoSink& infoSink, TSymbolTable** commonTable, TSymbolTable** symbolTables, int version, EProfile profile, const SpvVersion& spvVersion, EShSource source) -{ -#ifdef GLSLANG_WEB - profile = EEsProfile; - version = 310; -#elif defined(GLSLANG_ANGLE) - profile = ECoreProfile; - version = 450; -#endif - - std::unique_ptr builtInParseables(CreateBuiltInParseables(infoSink, source)); - - if (builtInParseables == nullptr) - return false; - - builtInParseables->initialize(version, profile, spvVersion); - - // do the common tables - InitializeSymbolTable(builtInParseables->getCommonString(), version, profile, spvVersion, EShLangVertex, source, - infoSink, *commonTable[EPcGeneral]); - if (profile == EEsProfile) - InitializeSymbolTable(builtInParseables->getCommonString(), version, profile, spvVersion, EShLangFragment, source, - infoSink, *commonTable[EPcFragment]); - - // do the per-stage tables - - // always have vertex and fragment - InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangVertex, source, - infoSink, commonTable, symbolTables); - InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangFragment, source, - infoSink, commonTable, symbolTables); - -#ifndef GLSLANG_WEB - // check for tessellation - if ((profile != EEsProfile && version >= 150) || - (profile == EEsProfile && version >= 310)) { - InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangTessControl, source, - infoSink, commonTable, symbolTables); - InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangTessEvaluation, source, - infoSink, commonTable, symbolTables); - } - - // check for geometry - if ((profile != EEsProfile && version >= 150) || - (profile == EEsProfile && version >= 310)) - InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangGeometry, source, - infoSink, commonTable, symbolTables); - - // check for compute - if ((profile != EEsProfile && version >= 420) || - (profile == EEsProfile && version >= 310)) - InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangCompute, source, - infoSink, commonTable, symbolTables); - -#ifndef GLSLANG_ANGLE - // check for ray tracing stages - if (profile != EEsProfile && version >= 450) { - InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangRayGen, source, - infoSink, commonTable, symbolTables); - InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangIntersect, source, - infoSink, commonTable, symbolTables); - InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangAnyHit, source, - infoSink, commonTable, symbolTables); - InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangClosestHit, source, - infoSink, commonTable, symbolTables); - InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangMiss, source, - infoSink, commonTable, symbolTables); - InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangCallable, source, - infoSink, commonTable, symbolTables); - } - - // check for mesh - if ((profile != EEsProfile && version >= 450) || - (profile == EEsProfile && version >= 320)) - InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangMeshNV, source, - infoSink, commonTable, symbolTables); - - // check for task - if ((profile != EEsProfile && version >= 450) || - (profile == EEsProfile && version >= 320)) - InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangTaskNV, source, - infoSink, commonTable, symbolTables); -#endif // !GLSLANG_ANGLE -#endif // !GLSLANG_WEB - - return true; -} - -bool AddContextSpecificSymbols(const TBuiltInResource* resources, TInfoSink& infoSink, TSymbolTable& symbolTable, int version, - 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); - - return true; -} - -// -// 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 -// - Free up the new pool used to parse the built-ins -// - Switch back to the original thread's pool -// -// This only gets done the first time any thread needs a particular symbol table -// (lazy evaluation). -// -void SetupBuiltinSymbolTable(int version, EProfile profile, const SpvVersion& spvVersion, EShSource source) -{ - TInfoSink infoSink; - - // Make sure only one thread tries to do this at a time - glslang::GetGlobalLock(); - - // See if it's already been done for this version/profile combination - int versionIndex = MapVersionToIndex(version); - int spvVersionIndex = MapSpvVersionToIndex(spvVersion); - int profileIndex = MapProfileToIndex(profile); - int sourceIndex = MapSourceToIndex(source); - if (CommonSymbolTable[versionIndex][spvVersionIndex][profileIndex][sourceIndex][EPcGeneral]) { - glslang::ReleaseGlobalLock(); - - return; - } - - // Switch to a new pool - TPoolAllocator& previousAllocator = GetThreadPoolAllocator(); - 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]; - TSymbolTable* stageTables[EShLangCount]; - for (int precClass = 0; precClass < EPcCount; ++precClass) - commonTable[precClass] = new TSymbolTable; - for (int stage = 0; stage < EShLangCount; ++stage) - stageTables[stage] = new TSymbolTable; - - // Generate the local symbol tables using the new pool - InitializeSymbolTables(infoSink, commonTable, stageTables, version, profile, spvVersion, source); - - // Switch to the process-global pool - 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) { - if (! commonTable[precClass]->isEmpty()) { - CommonSymbolTable[versionIndex][spvVersionIndex][profileIndex][sourceIndex][precClass] = new TSymbolTable; - CommonSymbolTable[versionIndex][spvVersionIndex][profileIndex][sourceIndex][precClass]->copyTable(*commonTable[precClass]); - CommonSymbolTable[versionIndex][spvVersionIndex][profileIndex][sourceIndex][precClass]->readOnly(); - } - } - for (int stage = 0; stage < EShLangCount; ++stage) { - if (! stageTables[stage]->isEmpty()) { - SharedSymbolTables[versionIndex][spvVersionIndex][profileIndex][sourceIndex][stage] = new TSymbolTable; - SharedSymbolTables[versionIndex][spvVersionIndex][profileIndex][sourceIndex][stage]->adoptLevels(*CommonSymbolTable - [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. - for (int precClass = 0; precClass < EPcCount; ++precClass) - delete commonTable[precClass]; - for (int stage = 0; stage < EShLangCount; ++stage) - delete stageTables[stage]; - - delete builtInPoolAllocator; - SetThreadPoolAllocator(&previousAllocator); - - glslang::ReleaseGlobalLock(); -} - -// Function to Print all builtins -void DumpBuiltinSymbolTable(TInfoSink& infoSink, const TSymbolTable& symbolTable) -{ -#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) - infoSink.debug << "BuiltinSymbolTable {\n"; - - symbolTable.dump(infoSink, true); - - infoSink.debug << "}\n"; -#endif -} - -// Return true if the shader was correctly specified for version/profile/stage. -bool DeduceVersionProfile(TInfoSink& infoSink, EShLanguage stage, bool versionNotFirst, int defaultVersion, - EShSource source, int& version, EProfile& profile, const SpvVersion& spvVersion) -{ - const int FirstProfileVersion = 150; - bool correct = true; - - if (source == EShSourceHlsl) { - version = 500; // shader model; currently a characteristic of glslang, not the input - profile = ECoreProfile; // allow doubles in prototype parsing - return correct; - } - - // Get a version... - if (version == 0) { - version = defaultVersion; - // infoSink.info.message(EPrefixWarning, "#version: statement missing; use #version on first line of shader"); - } - - // Get a good profile... - if (profile == ENoProfile) { - if (version == 300 || version == 310 || version == 320) { - correct = false; - infoSink.info.message(EPrefixError, "#version: versions 300, 310, and 320 require specifying the 'es' profile"); - profile = EEsProfile; - } else if (version == 100) - profile = EEsProfile; - else if (version >= FirstProfileVersion) - profile = ECoreProfile; - else - profile = ENoProfile; - } else { - // a profile was provided... - if (version < 150) { - correct = false; - infoSink.info.message(EPrefixError, "#version: versions before 150 do not allow a profile token"); - if (version == 100) - profile = EEsProfile; - else - profile = ENoProfile; - } else if (version == 300 || version == 310 || version == 320) { - if (profile != EEsProfile) { - correct = false; - 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, 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; - } - -#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) - // Correct for stage type... - switch (stage) { - case EShLangGeometry: - if ((profile == EEsProfile && version < 310) || - (profile != EEsProfile && version < 150)) { - correct = false; - infoSink.info.message(EPrefixError, "#version: geometry shaders require es profile with version 310 or non-es profile with version 150 or above"); - version = (profile == EEsProfile) ? 310 : 150; - if (profile == EEsProfile || profile == ENoProfile) - profile = ECoreProfile; - } - break; - case EShLangTessControl: - case EShLangTessEvaluation: - if ((profile == EEsProfile && version < 310) || - (profile != EEsProfile && version < 150)) { - correct = false; - infoSink.info.message(EPrefixError, "#version: tessellation shaders require es profile with version 310 or non-es profile with version 150 or above"); - version = (profile == EEsProfile) ? 310 : 400; // 150 supports the extension, correction is to 400 which does not - if (profile == EEsProfile || profile == ENoProfile) - profile = ECoreProfile; - } - break; - case EShLangCompute: - if ((profile == EEsProfile && version < 310) || - (profile != EEsProfile && version < 420)) { - correct = false; - infoSink.info.message(EPrefixError, "#version: compute shaders require es profile with version 310 or above, or non-es profile with version 420 or above"); - version = profile == EEsProfile ? 310 : 420; - } - break; - case EShLangRayGen: - case EShLangIntersect: - case EShLangAnyHit: - case EShLangClosestHit: - case EShLangMiss: - case EShLangCallable: - if (profile == EEsProfile || version < 460) { - correct = false; - infoSink.info.message(EPrefixError, "#version: ray tracing shaders require non-es profile with version 460 or above"); - version = 460; - } - break; - case EShLangMeshNV: - case EShLangTaskNV: - if ((profile == EEsProfile && version < 320) || - (profile != EEsProfile && version < 450)) { - correct = false; - infoSink.info.message(EPrefixError, "#version: mesh/task shaders require es profile with version 320 or above, or non-es profile with version 450 or above"); - version = profile == EEsProfile ? 320 : 450; - } - default: - break; - } - - if (profile == EEsProfile && version >= 300 && versionNotFirst) { - correct = false; - infoSink.info.message(EPrefixError, "#version: statement must appear first in es-profile shader; before comments or newlines"); - } - - // Check for SPIR-V compatibility - if (spvVersion.spv != 0) { - switch (profile) { - case EEsProfile: - if (version < 310) { - correct = false; - infoSink.info.message(EPrefixError, "#version: ES shaders for SPIR-V require version 310 or higher"); - version = 310; - } - break; - case ECompatibilityProfile: - infoSink.info.message(EPrefixError, "#version: compilation for SPIR-V does not support the compatibility profile"); - break; - default: - 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; - } - if (spvVersion.openGl >= 100 && version < 330) { - correct = false; - infoSink.info.message(EPrefixError, "#version: Desktop shaders for OpenGL SPIR-V require version 330 or higher"); - version = 330; - } - break; - } - } -#endif - - 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; - spvVersion.vulkanRelaxed = environment->input.vulkanRulesRelaxed; - break; - case EShClientOpenGL: - spvVersion.openGl = environment->input.dialectVersion; - break; - case EShClientCount: - assert(0); - 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; - case EShSourceCount: - assert(0); - 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 -// bool (TParseContextBase& parseContext, TPpContext& ppContext, -// TInputScanner& input, bool versionWillBeError, -// TSymbolTable& , TIntermediate& , -// EShOptimizationLevel , EShMessages ); -// Which returns false if a failure was detected and true otherwise. -// -template -bool ProcessDeferred( - TCompiler* compiler, - const char* const shaderStrings[], - const int numStrings, - const int* inputLengths, - const char* const stringNames[], - 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 - EProfile defaultProfile, - // set version/profile to defaultVersion/defaultProfile regardless of the #version - // directive in the source code - bool forceDefaultVersionAndProfile, - int overrideVersion, // overrides version specified by #verison or default version - bool forwardCompatible, // give errors for use of deprecated features - EShMessages messages, // warnings/errors/AST; things to print out - TIntermediate& intermediate, // returned tree, etc. - 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 -{ - // 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. - // - // Shader will look like - // string 0: system preamble - // string 1: custom preamble - // string 2...numStrings+1: user's shader - // string numStrings+2: "int;" - 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]); - for (int s = 0; s < numStrings; ++s) { - strings[s + numPre] = shaderStrings[s]; - if (inputLengths == nullptr || inputLengths[s] < 0) - lengths[s + numPre] = strlen(shaderStrings[s]); - else - lengths[s + numPre] = inputLengths[s]; - } - if (stringNames != nullptr) { - for (int s = 0; s < numStrings; ++s) - names[s + numPre] = stringNames[s]; - } else { - for (int s = 0; s < numStrings; ++s) - names[s + numPre] = nullptr; - } - - // Get all the stages, languages, clients, and other environment - // stuff sorted out. - EShSource sourceGuess = (messages & EShMsgReadHlsl) != 0 ? EShSourceHlsl : EShSourceGlsl; - SpvVersion spvVersion; - EShLanguage stage = compiler->getLanguage(); - TranslateEnvironment(environment, messages, sourceGuess, stage, spvVersion); -#ifdef ENABLE_HLSL - EShSource source = sourceGuess; - if (environment != nullptr && environment->target.hlslFunctionality1) - intermediate.setHlslFunctionality1(); -#else - const EShSource source = EShSourceGlsl; -#endif - // 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); - bool versionNotFound = version == 0; - if (forceDefaultVersionAndProfile && source == EShSourceGlsl) { -#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) - if (! (messages & EShMsgSuppressWarnings) && ! versionNotFound && - (version != defaultVersion || profile != defaultProfile)) { - compiler->infoSink.info << "Warning, (version, profile) forced to be (" - << defaultVersion << ", " << ProfileName(defaultProfile) - << "), while in source code it is (" - << version << ", " << ProfileName(profile) << ")\n"; - } -#endif - if (versionNotFound) { - versionNotFirstToken = false; - versionNotFirst = false; - versionNotFound = false; - } - version = defaultVersion; - profile = defaultProfile; - } - if (source == EShSourceGlsl && overrideVersion != 0) { - version = overrideVersion; - } - - bool goodVersion = DeduceVersionProfile(compiler->infoSink, stage, - versionNotFirst, defaultVersion, source, version, profile, spvVersion); -#ifdef GLSLANG_WEB - profile = EEsProfile; - version = 310; -#elif defined(GLSLANG_ANGLE) - profile = ECoreProfile; - version = 450; -#endif - - bool versionWillBeError = (versionNotFound || (profile == EEsProfile && version >= 300 && versionNotFirst)); -#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) - bool warnVersionNotFirst = false; - if (! versionWillBeError && versionNotFirstToken) { - if (messages & EShMsgRelaxedErrors) - warnVersionNotFirst = true; - else - versionWillBeError = true; - } -#endif - - intermediate.setSource(source); - intermediate.setVersion(version); - intermediate.setProfile(profile); - intermediate.setSpv(spvVersion); - RecordProcesses(intermediate, messages, sourceEntryPointName); - if (spvVersion.vulkan > 0) - intermediate.setOriginUpperLeft(); -#ifdef ENABLE_HLSL - if ((messages & EShMsgHlslOffsets) || source == EShSourceHlsl) - intermediate.setHlslOffsets(); -#endif - if (messages & EShMsgDebugInfo) { - intermediate.setSourceFile(names[numPre]); - for (int s = 0; s < numStrings; ++s) { - // The string may not be null-terminated, so make sure we provide - // the length along with the string. - intermediate.addSourceText(strings[numPre + s], lengths[numPre + s]); - } - } - SetupBuiltinSymbolTable(version, profile, spvVersion, source); - - TSymbolTable* cachedTable = SharedSymbolTables[MapVersionToIndex(version)] - [MapSpvVersionToIndex(spvVersion)] - [MapProfileToIndex(profile)] - [MapSourceToIndex(source)] - [stage]; - - // Dynamically allocate the symbol table so we can control when it is deallocated WRT the pool. - std::unique_ptr symbolTable(new TSymbolTable); - if (cachedTable) - symbolTable->adoptLevels(*cachedTable); - - if (intermediate.getUniqueId() != 0) - symbolTable->overwriteUniqueId(intermediate.getUniqueId()); - - // 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; - } - - if (messages & EShMsgBuiltinSymbolTable) - DumpBuiltinSymbolTable(compiler->infoSink, *symbolTable); - - // - // 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); - - // only GLSL (bison triggered, really) needs an externally set scan context - glslang::TScanContext scanContext(*parseContext); - if (source == EShSourceGlsl) - parseContext->setScanContext(&scanContext); - - parseContext->setPpContext(&ppContext); - parseContext->setLimits(*resources); - if (! goodVersion) - parseContext->addError(); -#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) - if (warnVersionNotFirst) { - TSourceLoc loc; - loc.init(); - parseContext->warn(loc, "Illegal to have non-comment, non-whitespace tokens before #version", "#version", ""); - } -#endif - - parseContext->initializeExtensionBehavior(); - - // Fill in the strings as outlined above. - std::string preamble; - parseContext->getPreamble(preamble); - strings[0] = preamble.c_str(); - lengths[0] = strlen(strings[0]); - names[0] = nullptr; - strings[1] = customPreamble; - lengths[1] = strlen(strings[1]); - names[1] = nullptr; - assert(2 == numPre); - if (requireNonempty) { - const int postIndex = numStrings + numPre; - strings[postIndex] = "\n int;"; - lengths[postIndex] = strlen(strings[numStrings + numPre]); - names[postIndex] = nullptr; - } - 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(); - - bool success = processingContext(*parseContext, ppContext, fullInput, - versionWillBeError, *symbolTable, - intermediate, optLevel, messages); - intermediate.setUniqueId(symbolTable->getMaxSymbolId()); - return success; -} - -#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) - -// Responsible for keeping track of the most recent source string and line in -// the preprocessor and outputting newlines appropriately if the source string -// or line changes. -class SourceLineSynchronizer { -public: - SourceLineSynchronizer(const std::function& lastSourceIndex, - std::string* output) - : getLastSourceIndex(lastSourceIndex), output(output), lastSource(-1), lastLine(0) {} -// SourceLineSynchronizer(const SourceLineSynchronizer&) = delete; -// SourceLineSynchronizer& operator=(const SourceLineSynchronizer&) = delete; - - // Sets the internally tracked source string index to that of the most - // recently read token. If we switched to a new source string, returns - // true and inserts a newline. Otherwise, returns false and outputs nothing. - bool syncToMostRecentString() { - if (getLastSourceIndex() != lastSource) { - // After switching to a new source string, we need to reset lastLine - // because line number resets every time a new source string is - // 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'; - lastSource = getLastSourceIndex(); - lastLine = -1; - return true; - } - return false; - } - - // Calls syncToMostRecentString() and then sets the internally tracked line - // number to tokenLine. If we switched to a new line, returns true and inserts - // newlines appropriately. Otherwise, returns false and outputs nothing. - bool syncToLine(int tokenLine) { - syncToMostRecentString(); - const bool newLineStarted = lastLine < tokenLine; - for (; lastLine < tokenLine; ++lastLine) { - if (lastLine > 0) *output += '\n'; - } - return newLineStarted; - } - - // Sets the internally tracked line number to newLineNum. - void setLineNum(int newLineNum) { lastLine = newLineNum; } - -private: - SourceLineSynchronizer& operator=(const SourceLineSynchronizer&); - - // A function for getting the index of the last valid source string we've - // read tokens from. - const std::function getLastSourceIndex; - // 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 - // string. - int lastSource; - // lastLine is the line number (starting from 1) of the last token processed. - // It is tracked in order for newlines to be inserted when a token appears - // on a new line. 0 means we haven't started processing any line in the - // current source string. - int lastLine; -}; - -// DoPreprocessing is a valid ProcessingContext template argument, -// which only performs the preprocessing step of compilation. -// It places the result in the "string" argument to its constructor. -// -// This is not an officially supported or fully working path. -struct DoPreprocessing { - explicit DoPreprocessing(std::string* string): outputString(string) {} - bool operator()(TParseContextBase& parseContext, TPpContext& ppContext, - TInputScanner& input, bool versionWillBeError, - TSymbolTable&, TIntermediate&, - EShOptimizationLevel, EShMessages) - { - // 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; - - parseContext.setScanner(&input); - ppContext.setInput(input, versionWillBeError); - - std::string outputBuffer; - SourceLineSynchronizer lineSync( - std::bind(&TInputScanner::getLastValidSourceIndex, &input), &outputBuffer); - - parseContext.setExtensionCallback([&lineSync, &outputBuffer]( - int line, const char* extension, const char* behavior) { - lineSync.syncToLine(line); - outputBuffer += "#extension "; - outputBuffer += extension; - outputBuffer += " : "; - outputBuffer += behavior; - }); - - 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); - outputBuffer += "#line "; - outputBuffer += std::to_string(newLineNum); - if (hasSource) { - outputBuffer += ' '; - if (sourceName != nullptr) { - outputBuffer += '\"'; - outputBuffer += sourceName; - outputBuffer += '\"'; - } else { - outputBuffer += std::to_string(sourceNum); - } - } - 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'; - // 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) { - lineSync.syncToLine(line); - outputBuffer += "#version "; - outputBuffer += std::to_string(version); - if (str) { - outputBuffer += ' '; - outputBuffer += str; - } - }); - - parseContext.setPragmaCallback([&lineSync, &outputBuffer]( - int line, const glslang::TVector& ops) { - lineSync.syncToLine(line); - outputBuffer += "#pragma "; - for(size_t i = 0; i < ops.size(); ++i) { - outputBuffer += ops[i].c_str(); - } - }); - - parseContext.setErrorCallback([&lineSync, &outputBuffer]( - int line, const char* errorMessage) { - lineSync.syncToLine(line); - outputBuffer += "#error "; - outputBuffer += errorMessage; - }); - - int lastToken = EndOfInput; // lastToken records the last token processed. - do { - int token = ppContext.tokenize(ppToken); - if (token == EndOfInput) - break; - - bool isNewString = lineSync.syncToMostRecentString(); - 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. - 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) == std::string::npos) && - (unNeededSpaceTokens.find((char)lastToken) == std::string::npos) && - (noSpaceBeforeTokens.find((char)token) == std::string::npos)) { - outputBuffer += ' '; - } - lastToken = token; - if (token == PpAtomConstString) - outputBuffer += "\""; - outputBuffer += ppToken.name; - if (token == PpAtomConstString) - outputBuffer += "\""; - } while (true); - outputBuffer += '\n'; - *outputString = std::move(outputBuffer); - - bool success = true; - if (parseContext.getNumErrors() > 0) { - success = false; - parseContext.infoSink.info.prefix(EPrefixError); - parseContext.infoSink.info << parseContext.getNumErrors() << " compilation errors. No code generated.\n\n"; - } - return success; - } - std::string* outputString; -}; - -#endif - -// 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, - TInputScanner& fullInput, bool versionWillBeError, - TSymbolTable&, TIntermediate& intermediate, - EShOptimizationLevel optLevel, EShMessages messages) - { - bool success = true; - // Parse the full shader. - 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."); - else - 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"; - } - -#ifndef GLSLANG_ANGLE - if (messages & EShMsgAST) - intermediate.output(parseContext.infoSink, true); -#endif - - return success; - } -}; - -#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) -// Take a single compilation unit, and run the preprocessor on it. -// Return: True if there were no issues found in preprocessing, -// False if during preprocessing any unknown version, pragmas or -// extensions were found. -// -// NOTE: Doing just preprocessing to obtain a correct preprocessed shader string -// is not an officially supported or fully working path. -bool PreprocessDeferred( - TCompiler* compiler, - const char* const shaderStrings[], - const int numStrings, - const int* inputLengths, - const char* const stringNames[], - const char* preamble, - const EShOptimizationLevel optLevel, - const TBuiltInResource* resources, - int defaultVersion, // use 100 for ES environment, 110 for desktop - EProfile defaultProfile, - bool forceDefaultVersionAndProfile, - int overrideVersion, // use 0 if not overriding GLSL version - bool forwardCompatible, // give errors for use of deprecated features - EShMessages messages, // warnings/errors/AST; things to print out - TShader::Includer& includer, - TIntermediate& intermediate, // returned tree, etc. - std::string* outputString, - TEnvironment* environment = nullptr) -{ - DoPreprocessing parser(outputString); - return ProcessDeferred(compiler, shaderStrings, numStrings, inputLengths, stringNames, - preamble, optLevel, resources, defaultVersion, - defaultProfile, forceDefaultVersionAndProfile, overrideVersion, - forwardCompatible, messages, intermediate, parser, - false, includer, "", environment); -} -#endif - -// -// 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 -// stage through machine-dependent compilation). -// -// 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, -// and true is returned by the function for success. -// -bool CompileDeferred( - TCompiler* compiler, - const char* const shaderStrings[], - const int numStrings, - const int* inputLengths, - const char* const stringNames[], - const char* preamble, - const EShOptimizationLevel optLevel, - const TBuiltInResource* resources, - int defaultVersion, // use 100 for ES environment, 110 for desktop - EProfile defaultProfile, - bool forceDefaultVersionAndProfile, - int overrideVersion, // use 0 if not overriding GLSL version - bool forwardCompatible, // give errors for use of deprecated features - EShMessages messages, // warnings/errors/AST; things to print out - TIntermediate& intermediate,// returned tree, etc. - TShader::Includer& includer, - const std::string sourceEntryPointName = "", - TEnvironment* environment = nullptr) -{ - DoFullParse parser; - return ProcessDeferred(compiler, shaderStrings, numStrings, inputLengths, stringNames, - preamble, optLevel, resources, defaultVersion, - defaultProfile, forceDefaultVersionAndProfile, overrideVersion, - forwardCompatible, messages, intermediate, parser, - true, includer, sourceEntryPointName, environment); -} - -} // end anonymous namespace for local functions - -// -// ShInitialize() should be called exactly once per process, not per thread. -// -int ShInitialize() -{ - glslang::InitGlobalLock(); - - if (! InitProcess()) - return 0; - - glslang::GetGlobalLock(); - ++NumberOfClients; - - if (PerProcessGPA == nullptr) - PerProcessGPA = new TPoolAllocator(); - - glslang::TScanContext::fillInKeywordMap(); -#ifdef ENABLE_HLSL - glslang::HlslScanContext::fillInKeywordMap(); -#endif - - glslang::ReleaseGlobalLock(); - return 1; -} - -// -// Driver calls these to create and destroy compiler/linker -// objects. -// - -ShHandle ShConstructCompiler(const EShLanguage language, int debugOptions) -{ - if (!InitThread()) - return 0; - - TShHandleBase* base = static_cast(ConstructCompiler(language, debugOptions)); - - return reinterpret_cast(base); -} - -ShHandle ShConstructLinker(const EShExecutable executable, int debugOptions) -{ - if (!InitThread()) - return 0; - - TShHandleBase* base = static_cast(ConstructLinker(executable, debugOptions)); - - return reinterpret_cast(base); -} - -ShHandle ShConstructUniformMap() -{ - if (!InitThread()) - return 0; - - TShHandleBase* base = static_cast(ConstructUniformMap()); - - return reinterpret_cast(base); -} - -void ShDestruct(ShHandle handle) -{ - if (handle == 0) - return; - - TShHandleBase* base = static_cast(handle); - - if (base->getAsCompiler()) - DeleteCompiler(base->getAsCompiler()); - else if (base->getAsLinker()) - DeleteLinker(base->getAsLinker()); - else if (base->getAsUniformMap()) - DeleteUniformMap(base->getAsUniformMap()); -} - -// -// Cleanup symbol tables -// -int ShFinalize() -{ - glslang::GetGlobalLock(); - --NumberOfClients; - assert(NumberOfClients >= 0); - bool finalize = NumberOfClients == 0; - if (! finalize) { - glslang::ReleaseGlobalLock(); - return 1; - } - - for (int version = 0; version < VersionCount; ++version) { - for (int spvVersion = 0; spvVersion < SpvVersionCount; ++spvVersion) { - for (int p = 0; p < ProfileCount; ++p) { - for (int source = 0; source < SourceCount; ++source) { - for (int stage = 0; stage < EShLangCount; ++stage) { - delete SharedSymbolTables[version][spvVersion][p][source][stage]; - SharedSymbolTables[version][spvVersion][p][source][stage] = 0; - } - } - } - } - } - - for (int version = 0; version < VersionCount; ++version) { - for (int spvVersion = 0; spvVersion < SpvVersionCount; ++spvVersion) { - for (int p = 0; p < ProfileCount; ++p) { - for (int source = 0; source < SourceCount; ++source) { - for (int pc = 0; pc < EPcCount; ++pc) { - delete CommonSymbolTable[version][spvVersion][p][source][pc]; - CommonSymbolTable[version][spvVersion][p][source][pc] = 0; - } - } - } - } - } - - if (PerProcessGPA != nullptr) { - delete PerProcessGPA; - PerProcessGPA = nullptr; - } - - glslang::TScanContext::deleteKeywordMap(); -#ifdef ENABLE_HLSL - glslang::HlslScanContext::deleteKeywordMap(); -#endif - - glslang::ReleaseGlobalLock(); - return 1; -} - -// -// Do a full compile on the given strings for a single compilation unit -// forming a complete stage. The result of the machine dependent compilation -// is left in the provided compile object. -// -// Return: The return value is really boolean, indicating -// success (1) or failure (0). -// -int ShCompile( - const ShHandle handle, - const char* const shaderStrings[], - const int numStrings, - const int* inputLengths, - const EShOptimizationLevel optLevel, - const TBuiltInResource* resources, - int /*debugOptions*/, - int defaultVersion, // use 100 for ES environment, 110 for desktop - bool forwardCompatible, // give errors for use of deprecated features - EShMessages messages // warnings/errors/AST; things to print out - ) -{ - // Map the generic handle to the C++ object - if (handle == 0) - return 0; - - TShHandleBase* base = reinterpret_cast(handle); - TCompiler* compiler = base->getAsCompiler(); - if (compiler == 0) - return 0; - - SetThreadPoolAllocator(compiler->getPool()); - - compiler->infoSink.info.erase(); - compiler->infoSink.debug.erase(); - - TIntermediate intermediate(compiler->getLanguage()); - TShader::ForbidIncluder includer; - bool success = CompileDeferred(compiler, shaderStrings, numStrings, inputLengths, nullptr, - "", optLevel, resources, defaultVersion, ENoProfile, false, 0, - forwardCompatible, messages, intermediate, includer); - - // - // Call the machine dependent compiler - // - if (success && intermediate.getTreeRoot() && optLevel != EShOptNoGeneration) - success = compiler->compile(intermediate.getTreeRoot(), intermediate.getVersion(), intermediate.getProfile()); - - intermediate.removeTree(); - - // Throw away all the temporary memory used by the compilation process. - // The push was done in the CompileDeferred() call above. - GetThreadPoolAllocator().pop(); - - return success ? 1 : 0; -} - -// -// Link the given compile objects. -// -// Return: The return value of is really boolean, indicating -// success or failure. -// -int ShLinkExt( - const ShHandle linkHandle, - const ShHandle compHandles[], - const int numHandles) -{ - if (linkHandle == 0 || numHandles == 0) - return 0; - - THandleList cObjects; - - for (int i = 0; i < numHandles; ++i) { - if (compHandles[i] == 0) - return 0; - TShHandleBase* base = reinterpret_cast(compHandles[i]); - if (base->getAsLinker()) { - cObjects.push_back(base->getAsLinker()); - } - if (base->getAsCompiler()) - cObjects.push_back(base->getAsCompiler()); - - if (cObjects[i] == 0) - return 0; - } - - TShHandleBase* base = reinterpret_cast(linkHandle); - TLinker* linker = static_cast(base->getAsLinker()); - - SetThreadPoolAllocator(linker->getPool()); - - if (linker == 0) - return 0; - - linker->infoSink.info.erase(); - - 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."); - return 0; - } - } - } - - bool ret = linker->link(cObjects); - - return ret ? 1 : 0; -} - -// -// ShSetEncrpytionMethod is a place-holder for specifying -// how source code is encrypted. -// -void ShSetEncryptionMethod(ShHandle handle) -{ - if (handle == 0) - return; -} - -// -// Return any compiler/linker/uniformmap log of messages for the application. -// -const char* ShGetInfoLog(const ShHandle handle) -{ - if (handle == 0) - return 0; - - TShHandleBase* base = static_cast(handle); - TInfoSink* infoSink; - - if (base->getAsCompiler()) - infoSink = &(base->getAsCompiler()->getInfoSink()); - else if (base->getAsLinker()) - infoSink = &(base->getAsLinker()->getInfoSink()); - else - return 0; - - infoSink->info << infoSink->debug.c_str(); - return infoSink->info.c_str(); -} - -// -// Return the resulting binary code from the link process. Structure -// is machine dependent. -// -const void* ShGetExecutable(const ShHandle handle) -{ - if (handle == 0) - return 0; - - TShHandleBase* base = reinterpret_cast(handle); - - TLinker* linker = static_cast(base->getAsLinker()); - if (linker == 0) - return 0; - - return linker->getObjectCode(); -} - -// -// Let the linker know where the application said it's attributes are bound. -// The linker does not use these values, they are remapped by the ICD or -// hardware. It just needs them to know what's aliased. -// -// Return: The return value of is really boolean, indicating -// success or failure. -// -int ShSetVirtualAttributeBindings(const ShHandle handle, const ShBindingTable* table) -{ - if (handle == 0) - return 0; - - TShHandleBase* base = reinterpret_cast(handle); - TLinker* linker = static_cast(base->getAsLinker()); - - if (linker == 0) - return 0; - - linker->setAppAttributeBindings(table); - - return 1; -} - -// -// Let the linker know where the predefined attributes have to live. -// -int ShSetFixedAttributeBindings(const ShHandle handle, const ShBindingTable* table) -{ - if (handle == 0) - return 0; - - TShHandleBase* base = reinterpret_cast(handle); - TLinker* linker = static_cast(base->getAsLinker()); - - if (linker == 0) - return 0; - - linker->setFixedAttributeBindings(table); - return 1; -} - -// -// Some attribute locations are off-limits to the linker... -// -int ShExcludeAttributes(const ShHandle handle, int *attributes, int count) -{ - if (handle == 0) - return 0; - - TShHandleBase* base = reinterpret_cast(handle); - TLinker* linker = static_cast(base->getAsLinker()); - if (linker == 0) - return 0; - - linker->setExcludedAttributes(attributes, count); - - return 1; -} - -// -// Return the index for OpenGL to use for knowing where a uniform lives. -// -// Return: The return value of is really boolean, indicating -// success or failure. -// -int ShGetUniformLocation(const ShHandle handle, const char* name) -{ - if (handle == 0) - return -1; - - TShHandleBase* base = reinterpret_cast(handle); - TUniformMap* uniformMap= base->getAsUniformMap(); - if (uniformMap == 0) - return -1; - - return uniformMap->getLocation(name); -} - -//////////////////////////////////////////////////////////////////////////////////////////// -// -// Deferred-Lowering C++ Interface -// ----------------------------------- -// -// Below is a new alternate C++ interface that might potentially replace the above -// opaque handle-based interface. -// -// See more detailed comment in ShaderLang.h -// - -namespace glslang { - -Version GetVersion() -{ - Version version; - version.major = GLSLANG_VERSION_MAJOR; - version.minor = GLSLANG_VERSION_MINOR; - version.patch = GLSLANG_VERSION_PATCH; - version.flavor = GLSLANG_VERSION_FLAVOR; - return version; -} - -#define QUOTE(s) #s -#define STR(n) QUOTE(n) - -const char* GetEsslVersionString() -{ - return "OpenGL ES GLSL 3.20 glslang Khronos. " STR(GLSLANG_VERSION_MAJOR) "." STR(GLSLANG_VERSION_MINOR) "." STR( - GLSLANG_VERSION_PATCH) GLSLANG_VERSION_FLAVOR; -} - -const char* GetGlslVersionString() -{ - return "4.60 glslang Khronos. " STR(GLSLANG_VERSION_MAJOR) "." STR(GLSLANG_VERSION_MINOR) "." STR( - GLSLANG_VERSION_PATCH) GLSLANG_VERSION_FLAVOR; -} - -int GetKhronosToolId() -{ - return 8; -} - -bool InitializeProcess() -{ - return ShInitialize() != 0; -} - -void FinalizeProcess() -{ - ShFinalize(); -} - -class TDeferredCompiler : public TCompiler { -public: - TDeferredCompiler(EShLanguage s, TInfoSink& i) : TCompiler(s, i) { } - virtual bool compile(TIntermNode*, int = 0, EProfile = ENoProfile) { return true; } -}; - -TShader::TShader(EShLanguage s) - : stage(s), lengths(nullptr), stringNames(nullptr), preamble(""), overrideVersion(0) -{ - 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.input.vulkanRulesRelaxed = false; - environment.client.client = EShClientNone; - environment.target.language = EShTargetNone; - environment.target.hlslFunctionality1 = false; -} - -TShader::~TShader() -{ - delete infoSink; - delete compiler; - delete intermediate; - delete pool; -} - -void TShader::setStrings(const char* const* s, int n) -{ - strings = s; - numStrings = n; - lengths = nullptr; -} - -void TShader::setStringsWithLengths(const char* const* s, const int* l, int n) -{ - strings = s; - numStrings = n; - lengths = l; -} - -void TShader::setStringsWithLengthsAndNames( - const char* const* s, const int* l, const char* const* names, int n) -{ - strings = s; - numStrings = n; - lengths = l; - stringNames = names; -} - -void TShader::setEntryPoint(const char* entryPoint) -{ - intermediate->setEntryPointName(entryPoint); -} - -void TShader::setSourceEntryPoint(const char* name) -{ - sourceEntryPointName = name; -} - -// Log initial settings and transforms. -// See comment for class TProcesses. -void TShader::addProcesses(const std::vector& p) -{ - intermediate->addProcesses(p); -} - -void TShader::setUniqueId(unsigned long long id) -{ - intermediate->setUniqueId(id); -} - -void TShader::setOverrideVersion(int version) -{ - overrideVersion = version; -} - -void TShader::setInvertY(bool invert) { intermediate->setInvertY(invert); } -void TShader::setDxPositionW(bool invert) { intermediate->setDxPositionW(invert); } -void TShader::setEnhancedMsgs() { intermediate->setEnhancedMsgs(); } -void TShader::setNanMinMaxClamp(bool useNonNan) { intermediate->setNanMinMaxClamp(useNonNan); } - -#ifndef GLSLANG_WEB - -// 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 - -// Fragile: currently within one stage: simple auto-assignment of location -void TShader::setAutoMapLocations(bool map) { intermediate->setAutoMapLocations(map); } -void TShader::addUniformLocationOverride(const char* name, int loc) -{ - intermediate->addUniformLocationOverride(name, loc); -} -void TShader::setUniformLocationBase(int base) -{ - intermediate->setUniformLocationBase(base); -} -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); } -#endif - -void TShader::addBlockStorageOverride(const char* nameStr, TBlockStorageClass backing) { intermediate->addBlockStorageOverride(nameStr, backing); } - -void TShader::setGlobalUniformBlockName(const char* name) { intermediate->setGlobalUniformBlockName(name); } -void TShader::setGlobalUniformSet(unsigned int set) { intermediate->setGlobalUniformSet(set); } -void TShader::setGlobalUniformBinding(unsigned int binding) { intermediate->setGlobalUniformBinding(binding); } - -void TShader::setAtomicCounterBlockName(const char* name) { intermediate->setAtomicCounterBlockName(name); } -void TShader::setAtomicCounterBlockSet(unsigned int set) { intermediate->setAtomicCounterBlockSet(set); } - -#ifdef ENABLE_HLSL -// See comment above TDefaultHlslIoMapper in iomapper.cpp: -void TShader::setHlslIoMapping(bool hlslIoMap) { intermediate->setHlslIoMapping(hlslIoMap); } -void TShader::setFlattenUniformArrays(bool flatten) { intermediate->setFlattenUniformArrays(flatten); } -#endif - -// -// Turn the shader strings into a parse tree in the TIntermediate. -// -// Returns true for success. -// -bool TShader::parse(const TBuiltInResource* builtInResources, int defaultVersion, EProfile defaultProfile, bool forceDefaultVersionAndProfile, - bool forwardCompatible, EShMessages messages, Includer& includer) -{ - if (! InitThread()) - return false; - SetThreadPoolAllocator(pool); - - if (! preamble) - preamble = ""; - - return CompileDeferred(compiler, strings, numStrings, lengths, stringNames, - preamble, EShOptNone, builtInResources, defaultVersion, - defaultProfile, forceDefaultVersionAndProfile, overrideVersion, - forwardCompatible, messages, *intermediate, includer, sourceEntryPointName, - &environment); -} - -#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) -// Fill in a string with the result of preprocessing ShaderStrings -// Returns true if all extensions, pragmas and version strings were valid. -// -// NOTE: Doing just preprocessing to obtain a correct preprocessed shader string -// is not an officially supported or fully working path. -bool TShader::preprocess(const TBuiltInResource* builtInResources, - int defaultVersion, EProfile defaultProfile, - bool forceDefaultVersionAndProfile, - bool forwardCompatible, EShMessages message, - std::string* output_string, - Includer& includer) -{ - if (! InitThread()) - return false; - SetThreadPoolAllocator(pool); - - if (! preamble) - preamble = ""; - - return PreprocessDeferred(compiler, strings, numStrings, lengths, stringNames, preamble, - EShOptNone, builtInResources, defaultVersion, - defaultProfile, forceDefaultVersionAndProfile, overrideVersion, - forwardCompatible, message, includer, *intermediate, output_string, - &environment); -} -#endif - -const char* TShader::getInfoLog() -{ - return infoSink->info.c_str(); -} - -const char* TShader::getInfoDebugLog() -{ - return infoSink->debug.c_str(); -} - -TProgram::TProgram() : -#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) - reflection(0), -#endif - linked(false) -{ - pool = new TPoolAllocator; - infoSink = new TInfoSink; - for (int s = 0; s < EShLangCount; ++s) { - intermediate[s] = 0; - newedIntermediate[s] = false; - } -} - -TProgram::~TProgram() -{ - delete infoSink; -#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) - delete reflection; -#endif - - for (int s = 0; s < EShLangCount; ++s) - if (newedIntermediate[s]) - delete intermediate[s]; - - delete pool; -} - -// -// Merge the compilation units within each stage into a single TIntermediate. -// All starting compilation units need to be the result of calling TShader::parse(). -// -// Return true for success. -// -bool TProgram::link(EShMessages messages) -{ - if (linked) - return false; - linked = true; - - bool error = false; - - SetThreadPoolAllocator(pool); - - for (int s = 0; s < EShLangCount; ++s) { - if (! linkStage((EShLanguage)s, messages)) - error = true; - } - - if (!error) { - if (! crossStageCheck(messages)) - error = true; - } - - return ! error; -} - -// -// Merge the compilation units within the given stage into a single TIntermediate. -// -// Return true for success. -// -bool TProgram::linkStage(EShLanguage stage, EShMessages messages) -{ - if (stages[stage].size() == 0) - return true; - -#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) - int numEsShaders = 0, numNonEsShaders = 0; - for (auto it = stages[stage].begin(); it != stages[stage].end(); ++it) { - if ((*it)->intermediate->getProfile() == EEsProfile) { - numEsShaders++; - } else { - numNonEsShaders++; - } - } - - if (numEsShaders > 0 && numNonEsShaders > 0) { - infoSink->info.message(EPrefixError, "Cannot mix ES profile with non-ES profile shaders"); - return false; - } else if (numEsShaders > 1) { - infoSink->info.message(EPrefixError, "Cannot attach multiple ES shaders of the same type to a single program"); - return false; - } - - // - // Be efficient for the common single compilation unit per stage case, - // reusing it's TIntermediate instead of merging into a new one. - // - TIntermediate *firstIntermediate = stages[stage].front()->intermediate; - if (stages[stage].size() == 1) - intermediate[stage] = firstIntermediate; - else { - intermediate[stage] = new TIntermediate(stage, - firstIntermediate->getVersion(), - firstIntermediate->getProfile()); - intermediate[stage]->setLimits(firstIntermediate->getLimits()); - if (firstIntermediate->getEnhancedMsgs()) - intermediate[stage]->setEnhancedMsgs(); - - // 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; - } - - if (messages & EShMsgAST) - infoSink->info << "\nLinked " << StageName(stage) << " stage:\n\n"; - - if (stages[stage].size() > 1) { - std::list::const_iterator it; - for (it = stages[stage].begin(); it != stages[stage].end(); ++it) - intermediate[stage]->merge(*infoSink, *(*it)->intermediate); - } -#else - intermediate[stage] = stages[stage].front()->intermediate; -#endif - intermediate[stage]->finalCheck(*infoSink, (messages & EShMsgKeepUncalled) != 0); - -#ifndef GLSLANG_ANGLE - if (messages & EShMsgAST) - intermediate[stage]->output(*infoSink, true); -#endif - - return intermediate[stage]->getNumErrors() == 0; -} - -// -// Check that there are no errors in linker objects accross stages -// -// Return true if no errors. -// -bool TProgram::crossStageCheck(EShMessages) { - - // make temporary intermediates to hold the linkage symbols for each linking interface - // while we do the checks - // Independent interfaces are: - // all uniform variables and blocks - // all buffer blocks - // all in/out on a stage boundary - - TVector activeStages; - for (int s = 0; s < EShLangCount; ++s) { - if (intermediate[s]) - activeStages.push_back(intermediate[s]); - } - - // no extra linking if there is only one stage - if (! (activeStages.size() > 1)) - return true; - - // setup temporary tree to hold unfirom objects from different stages - TIntermediate* firstIntermediate = activeStages.front(); - TIntermediate uniforms(EShLangCount, - firstIntermediate->getVersion(), - firstIntermediate->getProfile()); - uniforms.setSpv(firstIntermediate->getSpv()); - - TIntermAggregate uniformObjects(EOpLinkerObjects); - TIntermAggregate root(EOpSequence); - root.getSequence().push_back(&uniformObjects); - uniforms.setTreeRoot(&root); - - bool error = false; - - // merge uniforms from all stages into a single intermediate - for (unsigned int i = 0; i < activeStages.size(); ++i) { - uniforms.mergeUniformObjects(*infoSink, *activeStages[i]); - } - error |= uniforms.getNumErrors() != 0; - - // copy final definition of global block back into each stage - for (unsigned int i = 0; i < activeStages.size(); ++i) { - // We only want to merge into already existing global uniform blocks. - // A stage that doesn't already know about the global doesn't care about it's content. - // Otherwise we end up pointing to the same object between different stages - // and that will break binding/set remappings - bool mergeExistingOnly = true; - activeStages[i]->mergeGlobalUniformBlocks(*infoSink, uniforms, mergeExistingOnly); - } - - // compare cross stage symbols for each stage boundary - for (unsigned int i = 1; i < activeStages.size(); ++i) { - activeStages[i - 1]->checkStageIO(*infoSink, *activeStages[i]); - error |= (activeStages[i - 1]->getNumErrors() != 0); - } - - return !error; -} - -const char* TProgram::getInfoLog() -{ - return infoSink->info.c_str(); -} - -const char* TProgram::getInfoDebugLog() -{ - return infoSink->debug.c_str(); -} - -#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) - -// -// Reflection implementation. -// - -bool TProgram::buildReflection(int opts) -{ - if (! linked || reflection != nullptr) - return false; - - int firstStage = EShLangVertex, lastStage = EShLangFragment; - - if (opts & EShReflectionIntermediateIO) { - // if we're reflecting intermediate I/O, determine the first and last stage linked and use those as the - // boundaries for which stages generate pipeline inputs/outputs - firstStage = EShLangCount; - lastStage = 0; - for (int s = 0; s < EShLangCount; ++s) { - if (intermediate[s]) { - firstStage = std::min(firstStage, s); - lastStage = std::max(lastStage, s); - } - } - } - - reflection = new TReflection((EShReflectionOptions)opts, (EShLanguage)firstStage, (EShLanguage)lastStage); - - for (int s = 0; s < EShLangCount; ++s) { - if (intermediate[s]) { - if (! reflection->addStage((EShLanguage)s, *intermediate[s])) - return false; - } - } - - return true; -} - -unsigned TProgram::getLocalSize(int dim) const { return reflection->getLocalSize(dim); } -int TProgram::getReflectionIndex(const char* name) const { return reflection->getIndex(name); } -int TProgram::getReflectionPipeIOIndex(const char* name, const bool inOrOut) const - { return reflection->getPipeIOIndex(name, inOrOut); } - -int TProgram::getNumUniformVariables() const { return reflection->getNumUniforms(); } -const TObjectReflection& TProgram::getUniform(int index) const { return reflection->getUniform(index); } -int TProgram::getNumUniformBlocks() const { return reflection->getNumUniformBlocks(); } -const TObjectReflection& TProgram::getUniformBlock(int index) const { return reflection->getUniformBlock(index); } -int TProgram::getNumPipeInputs() const { return reflection->getNumPipeInputs(); } -const TObjectReflection& TProgram::getPipeInput(int index) const { return reflection->getPipeInput(index); } -int TProgram::getNumPipeOutputs() const { return reflection->getNumPipeOutputs(); } -const TObjectReflection& TProgram::getPipeOutput(int index) const { return reflection->getPipeOutput(index); } -int TProgram::getNumBufferVariables() const { return reflection->getNumBufferVariables(); } -const TObjectReflection& TProgram::getBufferVariable(int index) const { return reflection->getBufferVariable(index); } -int TProgram::getNumBufferBlocks() const { return reflection->getNumStorageBuffers(); } -const TObjectReflection& TProgram::getBufferBlock(int index) const { return reflection->getStorageBufferBlock(index); } -int TProgram::getNumAtomicCounters() const { return reflection->getNumAtomicCounters(); } -const TObjectReflection& TProgram::getAtomicCounter(int index) const { return reflection->getAtomicCounter(index); } -void TProgram::dumpReflection() { if (reflection != nullptr) reflection->dump(); } - -// -// I/O mapping implementation. -// -bool TProgram::mapIO(TIoMapResolver* pResolver, TIoMapper* pIoMapper) -{ - if (! linked) - return false; - TIoMapper* ioMapper = nullptr; - TIoMapper defaultIOMapper; - if (pIoMapper == nullptr) - ioMapper = &defaultIOMapper; - else - ioMapper = pIoMapper; - for (int s = 0; s < EShLangCount; ++s) { - if (intermediate[s]) { - if (! ioMapper->addStage((EShLanguage)s, *intermediate[s], *infoSink, pResolver)) - return false; - } - } - - return ioMapper->doMap(pResolver, *infoSink); -} - -#endif // !GLSLANG_WEB && !GLSLANG_ANGLE - -} // end namespace glslang diff --git a/deps/glslang/glslang/MachineIndependent/SpirvIntrinsics.cpp b/deps/glslang/glslang/MachineIndependent/SpirvIntrinsics.cpp deleted file mode 100644 index 6650f7d9..00000000 --- a/deps/glslang/glslang/MachineIndependent/SpirvIntrinsics.cpp +++ /dev/null @@ -1,350 +0,0 @@ -// -// Copyright(C) 2021 Advanced Micro Devices, 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 GLSLANG_WEB - -// -// GL_EXT_spirv_intrinsics -// -#include "../Include/intermediate.h" -#include "../Include/SpirvIntrinsics.h" -#include "../Include/Types.h" -#include "ParseHelper.h" - -namespace glslang { - -// -// Handle SPIR-V requirements -// -TSpirvRequirement* TParseContext::makeSpirvRequirement(const TSourceLoc& loc, const TString& name, - const TIntermAggregate* extensions, - const TIntermAggregate* capabilities) -{ - TSpirvRequirement* spirvReq = new TSpirvRequirement; - - if (name == "extensions") { - assert(extensions); - for (auto extension : extensions->getSequence()) { - assert(extension->getAsConstantUnion()); - spirvReq->extensions.insert(*extension->getAsConstantUnion()->getConstArray()[0].getSConst()); - } - } else if (name == "capabilities") { - assert(capabilities); - for (auto capability : capabilities->getSequence()) { - assert(capability->getAsConstantUnion()); - spirvReq->capabilities.insert(capability->getAsConstantUnion()->getConstArray()[0].getIConst()); - } - } else - error(loc, "unknow SPIR-V requirement", name.c_str(), ""); - - return spirvReq; -} - -TSpirvRequirement* TParseContext::mergeSpirvRequirements(const TSourceLoc& loc, TSpirvRequirement* spirvReq1, - TSpirvRequirement* spirvReq2) -{ - // Merge the second SPIR-V requirement to the first one - if (!spirvReq2->extensions.empty()) { - if (spirvReq1->extensions.empty()) - spirvReq1->extensions = spirvReq2->extensions; - else - error(loc, "too many SPIR-V requirements", "extensions", ""); - } - - if (!spirvReq2->capabilities.empty()) { - if (spirvReq1->capabilities.empty()) - spirvReq1->capabilities = spirvReq2->capabilities; - else - error(loc, "too many SPIR-V requirements", "capabilities", ""); - } - - return spirvReq1; -} - -void TIntermediate::insertSpirvRequirement(const TSpirvRequirement* spirvReq) -{ - if (!spirvRequirement) - spirvRequirement = new TSpirvRequirement; - - for (auto extension : spirvReq->extensions) - spirvRequirement->extensions.insert(extension); - - for (auto capability : spirvReq->capabilities) - spirvRequirement->capabilities.insert(capability); -} - -// -// Handle SPIR-V execution modes -// -void TIntermediate::insertSpirvExecutionMode(int executionMode, const TIntermAggregate* args) -{ - if (!spirvExecutionMode) - spirvExecutionMode = new TSpirvExecutionMode; - - TVector extraOperands; - if (args) { - for (auto arg : args->getSequence()) { - auto extraOperand = arg->getAsConstantUnion(); - assert(extraOperand != nullptr); - extraOperands.push_back(extraOperand); - } - } - spirvExecutionMode->modes[executionMode] = extraOperands; -} - -void TIntermediate::insertSpirvExecutionModeId(int executionMode, const TIntermAggregate* args) -{ - if (!spirvExecutionMode) - spirvExecutionMode = new TSpirvExecutionMode; - - assert(args); - TVector extraOperands; - - for (auto arg : args->getSequence()) { - auto extraOperand = arg->getAsTyped(); - assert(extraOperand != nullptr && extraOperand->getQualifier().isConstant()); - extraOperands.push_back(extraOperand); - } - spirvExecutionMode->modeIds[executionMode] = extraOperands; -} - -// -// Handle SPIR-V decorate qualifiers -// -void TQualifier::setSpirvDecorate(int decoration, const TIntermAggregate* args) -{ - if (!spirvDecorate) - spirvDecorate = new TSpirvDecorate; - - TVector extraOperands; - if (args) { - for (auto arg : args->getSequence()) { - auto extraOperand = arg->getAsConstantUnion(); - assert(extraOperand != nullptr); - extraOperands.push_back(extraOperand); - } - } - spirvDecorate->decorates[decoration] = extraOperands; -} - -void TQualifier::setSpirvDecorateId(int decoration, const TIntermAggregate* args) -{ - if (!spirvDecorate) - spirvDecorate = new TSpirvDecorate; - - assert(args); - TVector extraOperands; - for (auto arg : args->getSequence()) { - auto extraOperand = arg->getAsTyped(); - assert(extraOperand != nullptr && extraOperand->getQualifier().isConstant()); - extraOperands.push_back(extraOperand); - } - spirvDecorate->decorateIds[decoration] = extraOperands; -} - -void TQualifier::setSpirvDecorateString(int decoration, const TIntermAggregate* args) -{ - if (!spirvDecorate) - spirvDecorate = new TSpirvDecorate; - - assert(args); - TVector extraOperands; - for (auto arg : args->getSequence()) { - auto extraOperand = arg->getAsConstantUnion(); - assert(extraOperand != nullptr); - extraOperands.push_back(extraOperand); - } - spirvDecorate->decorateStrings[decoration] = extraOperands; -} - -TString TQualifier::getSpirvDecorateQualifierString() const -{ - assert(spirvDecorate); - - TString qualifierString; - - const auto appendFloat = [&](float f) { qualifierString.append(std::to_string(f).c_str()); }; - const auto appendInt = [&](int i) { qualifierString.append(std::to_string(i).c_str()); }; - const auto appendUint = [&](unsigned int u) { qualifierString.append(std::to_string(u).c_str()); }; - const auto appendBool = [&](bool b) { qualifierString.append(std::to_string(b).c_str()); }; - const auto appendStr = [&](const char* s) { qualifierString.append(s); }; - - const auto appendDecorate = [&](const TIntermTyped* constant) { - auto& constArray = constant->getAsConstantUnion() != nullptr ? constant->getAsConstantUnion()->getConstArray() - : constant->getAsSymbolNode()->getConstArray(); - if (constant->getBasicType() == EbtFloat) { - float value = static_cast(constArray[0].getDConst()); - appendFloat(value); - } - else if (constant->getBasicType() == EbtInt) { - int value = constArray[0].getIConst(); - appendInt(value); - } - else if (constant->getBasicType() == EbtUint) { - unsigned value = constArray[0].getUConst(); - appendUint(value); - } - else if (constant->getBasicType() == EbtBool) { - bool value = constArray[0].getBConst(); - appendBool(value); - } - else if (constant->getBasicType() == EbtString) { - const TString* value = constArray[0].getSConst(); - appendStr(value->c_str()); - } - else - assert(0); - }; - - for (auto& decorate : spirvDecorate->decorates) { - appendStr("spirv_decorate("); - appendInt(decorate.first); - for (auto extraOperand : decorate.second) { - appendStr(", "); - appendDecorate(extraOperand); - } - appendStr(") "); - } - - for (auto& decorateId : spirvDecorate->decorateIds) { - appendStr("spirv_decorate_id("); - appendInt(decorateId.first); - for (auto extraOperand : decorateId.second) { - appendStr(", "); - appendDecorate(extraOperand); - } - appendStr(") "); - } - - for (auto& decorateString : spirvDecorate->decorateStrings) { - appendStr("spirv_decorate_string("); - appendInt(decorateString.first); - for (auto extraOperand : decorateString.second) { - appendStr(", "); - appendDecorate(extraOperand); - } - appendStr(") "); - } - - return qualifierString; -} - -// -// Handle SPIR-V type specifiers -// -void TPublicType::setSpirvType(const TSpirvInstruction& spirvInst, const TSpirvTypeParameters* typeParams) -{ - if (!spirvType) - spirvType = new TSpirvType; - - basicType = EbtSpirvType; - spirvType->spirvInst = spirvInst; - if (typeParams) - spirvType->typeParams = *typeParams; -} - -TSpirvTypeParameters* TParseContext::makeSpirvTypeParameters(const TSourceLoc& loc, const TIntermConstantUnion* constant) -{ - TSpirvTypeParameters* spirvTypeParams = new TSpirvTypeParameters; - if (constant->getBasicType() != EbtFloat && - constant->getBasicType() != EbtInt && - constant->getBasicType() != EbtUint && - constant->getBasicType() != EbtBool && - constant->getBasicType() != EbtString) - error(loc, "this type not allowed", constant->getType().getBasicString(), ""); - else { - assert(constant); - spirvTypeParams->push_back(TSpirvTypeParameter(constant)); - } - - return spirvTypeParams; -} - -TSpirvTypeParameters* TParseContext::mergeSpirvTypeParameters(TSpirvTypeParameters* spirvTypeParams1, TSpirvTypeParameters* spirvTypeParams2) -{ - // Merge SPIR-V type parameters of the second one to the first one - for (const auto& spirvTypeParam : *spirvTypeParams2) - spirvTypeParams1->push_back(spirvTypeParam); - return spirvTypeParams1; -} - -// -// Handle SPIR-V instruction qualifiers -// -TSpirvInstruction* TParseContext::makeSpirvInstruction(const TSourceLoc& loc, const TString& name, const TString& value) -{ - TSpirvInstruction* spirvInst = new TSpirvInstruction; - if (name == "set") - spirvInst->set = value; - else - error(loc, "unknown SPIR-V instruction qualifier", name.c_str(), ""); - - return spirvInst; -} - -TSpirvInstruction* TParseContext::makeSpirvInstruction(const TSourceLoc& loc, const TString& name, int value) -{ - TSpirvInstruction* spirvInstuction = new TSpirvInstruction; - if (name == "id") - spirvInstuction->id = value; - else - error(loc, "unknown SPIR-V instruction qualifier", name.c_str(), ""); - - return spirvInstuction; -} - -TSpirvInstruction* TParseContext::mergeSpirvInstruction(const TSourceLoc& loc, TSpirvInstruction* spirvInst1, TSpirvInstruction* spirvInst2) -{ - // Merge qualifiers of the second SPIR-V instruction to those of the first one - if (!spirvInst2->set.empty()) { - if (spirvInst1->set.empty()) - spirvInst1->set = spirvInst2->set; - else - error(loc, "too many SPIR-V instruction qualifiers", "spirv_instruction", "(set)"); - } - - if (spirvInst2->id != -1) { - if (spirvInst1->id == -1) - spirvInst1->id = spirvInst2->id; - else - error(loc, "too many SPIR-V instruction qualifiers", "spirv_instruction", "(id)"); - } - - return spirvInst1; -} - -} // end namespace glslang - -#endif // GLSLANG_WEB diff --git a/deps/glslang/glslang/MachineIndependent/SymbolTable.cpp b/deps/glslang/glslang/MachineIndependent/SymbolTable.cpp deleted file mode 100644 index a3ffa0c4..00000000 --- a/deps/glslang/glslang/MachineIndependent/SymbolTable.cpp +++ /dev/null @@ -1,477 +0,0 @@ -// -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2012-2013 LunarG, Inc. -// Copyright (C) 2017 ARM Limited. -// Copyright (C) 2015-2018 Google, Inc. -// Modifications Copyright (C) 2020 Advanced Micro Devices, 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: -// -// 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. -// - -// -// Symbol table for parsing. Most functionality and main ideas -// are documented in the header file. -// - -#include "SymbolTable.h" - -namespace glslang { - -// -// TType helper function needs a place to live. -// - -// -// Recursively generate mangled names. -// -void TType::buildMangledName(TString& mangledName) const -{ - if (isMatrix()) - mangledName += 'm'; - else if (isVector()) - mangledName += 'v'; - - switch (basicType) { - case EbtFloat: mangledName += 'f'; break; - case EbtInt: mangledName += 'i'; break; - case EbtUint: mangledName += 'u'; break; - case EbtBool: mangledName += 'b'; break; -#ifndef GLSLANG_WEB - case EbtDouble: mangledName += 'd'; break; - case EbtFloat16: mangledName += "f16"; 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 EbtAtomicUint: mangledName += "au"; break; - case EbtAccStruct: mangledName += "as"; break; - case EbtRayQuery: mangledName += "rq"; break; - case EbtSpirvType: mangledName += "spv-t"; break; -#endif - case EbtSampler: - switch (sampler.type) { -#ifndef GLSLANG_WEB - case EbtFloat16: mangledName += "f16"; break; -#endif - case EbtInt: mangledName += "i"; break; - case EbtUint: mangledName += "u"; break; - case EbtInt64: mangledName += "i64"; break; - case EbtUint64: mangledName += "u64"; break; - default: break; // some compilers want this - } - if (sampler.isImageClass()) - mangledName += "I"; // a normal image or subpass - else if (sampler.isPureSampler()) - mangledName += "p"; // a "pure" sampler - else if (!sampler.isCombined()) - mangledName += "t"; // a "pure" texture - else - mangledName += "s"; // traditional combined sampler - if (sampler.isArrayed()) - mangledName += "A"; - if (sampler.isShadow()) - mangledName += "S"; - if (sampler.isExternal()) - mangledName += "E"; - if (sampler.isYuv()) - mangledName += "Y"; - switch (sampler.dim) { - case Esd2D: mangledName += "2"; break; - case Esd3D: mangledName += "3"; break; - case EsdCube: mangledName += "C"; break; -#ifndef GLSLANG_WEB - case Esd1D: mangledName += "1"; break; - case EsdRect: mangledName += "R2"; break; - case EsdBuffer: mangledName += "B"; break; - case EsdSubpass: mangledName += "P"; break; -#endif - default: break; // some compilers want this - } - -#ifdef ENABLE_HLSL - 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), "%u-", sampler.getStructReturnIndex()); - 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 - } - } -#endif - - if (sampler.isMultiSample()) - mangledName += "M"; - break; - case EbtStruct: - case EbtBlock: - if (basicType == EbtStruct) - mangledName += "struct-"; - else - mangledName += "block-"; - if (typeName) - mangledName += *typeName; - for (unsigned int i = 0; i < structure->size(); ++i) { - if ((*structure)[i].type->getBasicType() == EbtVoid) - continue; - mangledName += '-'; - (*structure)[i].type->buildMangledName(mangledName); - } - default: - break; - } - - if (getVectorSize() > 0) - mangledName += static_cast('0' + getVectorSize()); - else { - mangledName += static_cast('0' + getMatrixCols()); - mangledName += static_cast('0' + getMatrixRows()); - } - - if (arraySizes) { - const int maxSize = 11; - char buf[maxSize]; - for (int i = 0; i < arraySizes->getNumDims(); ++i) { - if (arraySizes->getDimNode(i)) { - if (arraySizes->getDimNode(i)->getAsSymbolNode()) - snprintf(buf, maxSize, "s%lld", arraySizes->getDimNode(i)->getAsSymbolNode()->getId()); - else - snprintf(buf, maxSize, "s%p", arraySizes->getDimNode(i)); - } else - snprintf(buf, maxSize, "%d", arraySizes->getDimSize(i)); - mangledName += '['; - mangledName += buf; - mangledName += ']'; - } - } -} - -#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) - -// -// Dump functions. -// - -void TSymbol::dumpExtensions(TInfoSink& infoSink) const -{ - int numExtensions = getNumExtensions(); - if (numExtensions) { - infoSink.debug << " <"; - - for (int i = 0; i < numExtensions; i++) - infoSink.debug << getExtensions()[i] << ","; - - infoSink.debug << ">"; - } -} - -void TVariable::dump(TInfoSink& infoSink, bool complete) const -{ - if (complete) { - infoSink.debug << getName().c_str() << ": " << type.getCompleteString(); - dumpExtensions(infoSink); - } else { - infoSink.debug << getName().c_str() << ": " << type.getStorageQualifierString() << " " - << type.getBasicTypeString(); - - if (type.isArray()) - infoSink.debug << "[0]"; - } - - infoSink.debug << "\n"; -} - -void TFunction::dump(TInfoSink& infoSink, bool complete) const -{ - if (complete) { - infoSink.debug << getName().c_str() << ": " << returnType.getCompleteString() << " " << getName().c_str() - << "("; - - int numParams = getParamCount(); - for (int i = 0; i < numParams; i++) { - const TParameter ¶m = parameters[i]; - infoSink.debug << param.type->getCompleteString() << " " - << (param.type->isStruct() ? "of " + param.type->getTypeName() + " " : "") - << (param.name ? *param.name : "") << (i < numParams - 1 ? "," : ""); - } - - infoSink.debug << ")"; - dumpExtensions(infoSink); - } else { - infoSink.debug << getName().c_str() << ": " << returnType.getBasicTypeString() << " " - << getMangledName().c_str() << "n"; - } - - infoSink.debug << "\n"; -} - -void TAnonMember::dump(TInfoSink& TInfoSink, bool) const -{ - TInfoSink.debug << "anonymous member " << getMemberNumber() << " of " << getAnonContainer().getName().c_str() - << "\n"; -} - -void TSymbolTableLevel::dump(TInfoSink& infoSink, bool complete) const -{ - tLevel::const_iterator it; - for (it = level.begin(); it != level.end(); ++it) - (*it).second->dump(infoSink, complete); -} - -void TSymbolTable::dump(TInfoSink& infoSink, bool complete) const -{ - for (int level = currentLevel(); level >= 0; --level) { - infoSink.debug << "LEVEL " << level << "\n"; - table[level]->dump(infoSink, complete); - } -} - -#endif - -// -// Functions have buried pointers to delete. -// -TFunction::~TFunction() -{ - for (TParamList::iterator i = parameters.begin(); i != parameters.end(); ++i) - delete (*i).type; -} - -// -// Symbol table levels are a map of pointers to symbols that have to be deleted. -// -TSymbolTableLevel::~TSymbolTableLevel() -{ - for (tLevel::iterator it = level.begin(); it != level.end(); ++it) { - const TString& name = it->first; - auto retargetIter = std::find_if(retargetedSymbols.begin(), retargetedSymbols.end(), - [&name](const std::pair& i) { return i.first == name; }); - if (retargetIter == retargetedSymbols.end()) - delete (*it).second; - } - - - delete [] defaultPrecision; -} - -// -// Change all function entries in the table with the non-mangled name -// to be related to the provided built-in operation. -// -void TSymbolTableLevel::relateToOperator(const char* name, TOperator op) -{ - tLevel::const_iterator candidate = level.lower_bound(name); - while (candidate != level.end()) { - const TString& candidateName = (*candidate).first; - TString::size_type parenAt = candidateName.find_first_of('('); - if (parenAt != candidateName.npos && candidateName.compare(0, parenAt, name) == 0) { - TFunction* function = (*candidate).second->getAsFunction(); - function->relateToOperator(op); - } else - break; - ++candidate; - } -} - -// Make all function overloads of the given name require an extension(s). -// Should only be used for a version/profile that actually needs the extension(s). -void TSymbolTableLevel::setFunctionExtensions(const char* name, int num, const char* const extensions[]) -{ - tLevel::const_iterator candidate = level.lower_bound(name); - while (candidate != level.end()) { - const TString& candidateName = (*candidate).first; - TString::size_type parenAt = candidateName.find_first_of('('); - if (parenAt != candidateName.npos && candidateName.compare(0, parenAt, name) == 0) { - TSymbol* symbol = candidate->second; - symbol->setExtensions(num, extensions); - } else - break; - ++candidate; - } -} - -// -// Make all symbols in this table level read only. -// -void TSymbolTableLevel::readOnly() -{ - for (tLevel::iterator it = level.begin(); it != level.end(); ++it) - (*it).second->makeReadOnly(); -} - -// -// Copy a symbol, but the copy is writable; call readOnly() afterward if that's not desired. -// -TSymbol::TSymbol(const TSymbol& copyOf) -{ - name = NewPoolTString(copyOf.name->c_str()); - uniqueId = copyOf.uniqueId; - writable = true; -} - -TVariable::TVariable(const TVariable& copyOf) : TSymbol(copyOf) -{ - type.deepCopy(copyOf.type); - userType = copyOf.userType; - - // we don't support specialization-constant subtrees in cloned tables, only extensions - constSubtree = nullptr; - extensions = nullptr; - memberExtensions = nullptr; - if (copyOf.getNumExtensions() > 0) - setExtensions(copyOf.getNumExtensions(), copyOf.getExtensions()); - if (copyOf.hasMemberExtensions()) { - for (int m = 0; m < (int)copyOf.type.getStruct()->size(); ++m) { - if (copyOf.getNumMemberExtensions(m) > 0) - setMemberExtensions(m, copyOf.getNumMemberExtensions(m), copyOf.getMemberExtensions(m)); - } - } - - if (! copyOf.constArray.empty()) { - assert(! copyOf.type.isStruct()); - TConstUnionArray newArray(copyOf.constArray, 0, copyOf.constArray.size()); - constArray = newArray; - } -} - -TVariable* TVariable::clone() const -{ - TVariable *variable = new TVariable(*this); - - return variable; -} - -TFunction::TFunction(const TFunction& copyOf) : TSymbol(copyOf) -{ - for (unsigned int i = 0; i < copyOf.parameters.size(); ++i) { - TParameter param; - parameters.push_back(param); - parameters.back().copyParam(copyOf.parameters[i]); - } - - extensions = nullptr; - if (copyOf.getNumExtensions() > 0) - setExtensions(copyOf.getNumExtensions(), copyOf.getExtensions()); - returnType.deepCopy(copyOf.returnType); - mangledName = copyOf.mangledName; - op = copyOf.op; - defined = copyOf.defined; - prototyped = copyOf.prototyped; - implicitThis = copyOf.implicitThis; - illegalImplicitThis = copyOf.illegalImplicitThis; - defaultParamCount = copyOf.defaultParamCount; -#ifndef GLSLANG_WEB - spirvInst = copyOf.spirvInst; -#endif -} - -TFunction* TFunction::clone() const -{ - TFunction *function = new TFunction(*this); - - return function; -} - -TAnonMember* TAnonMember::clone() const -{ - // Anonymous members of a given block should be cloned at a higher level, - // where they can all be assured to still end up pointing to a single - // copy of the original container. - assert(0); - - return 0; -} - -TSymbolTableLevel* TSymbolTableLevel::clone() const -{ - TSymbolTableLevel *symTableLevel = new TSymbolTableLevel(); - symTableLevel->anonId = anonId; - symTableLevel->thisLevel = thisLevel; - symTableLevel->retargetedSymbols.clear(); - for (auto &s : retargetedSymbols) { - symTableLevel->retargetedSymbols.push_back({s.first, s.second}); - } - std::vector containerCopied(anonId, false); - tLevel::const_iterator iter; - for (iter = level.begin(); iter != level.end(); ++iter) { - const TAnonMember* anon = iter->second->getAsAnonMember(); - if (anon) { - // Insert all the anonymous members of this same container at once, - // avoid inserting the remaining members in the future, once this has been done, - // allowing them to all be part of the same new container. - if (! containerCopied[anon->getAnonId()]) { - TVariable* container = anon->getAnonContainer().clone(); - container->changeName(NewPoolTString("")); - // insert the container and all its members - symTableLevel->insert(*container, false); - containerCopied[anon->getAnonId()] = true; - } - } else { - const TString& name = iter->first; - auto retargetIter = std::find_if(retargetedSymbols.begin(), retargetedSymbols.end(), - [&name](const std::pair& i) { return i.first == name; }); - if (retargetIter != retargetedSymbols.end()) - continue; - symTableLevel->insert(*iter->second->clone(), false); - } - } - // Now point retargeted symbols to the newly created versions of them - for (auto &s : retargetedSymbols) { - TSymbol* sym = symTableLevel->find(s.second); - if (!sym) - continue; - symTableLevel->insert(s.first, sym); - } - - return symTableLevel; -} - -void TSymbolTable::copyTable(const TSymbolTable& copyOf) -{ - assert(adoptedLevels == copyOf.adoptedLevels); - - uniqueId = copyOf.uniqueId; - noBuiltInRedeclarations = copyOf.noBuiltInRedeclarations; - separateNameSpaces = copyOf.separateNameSpaces; - for (unsigned int i = copyOf.adoptedLevels; i < copyOf.table.size(); ++i) - table.push_back(copyOf.table[i]->clone()); -} - -} // end namespace glslang diff --git a/deps/glslang/glslang/MachineIndependent/SymbolTable.h b/deps/glslang/glslang/MachineIndependent/SymbolTable.h deleted file mode 100644 index 31312ecb..00000000 --- a/deps/glslang/glslang/MachineIndependent/SymbolTable.h +++ /dev/null @@ -1,955 +0,0 @@ -// -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2013 LunarG, Inc. -// Copyright (C) 2015-2018 Google, Inc. -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// Neither the name of 3Dlabs Inc. Ltd. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -// - -#ifndef _SYMBOL_TABLE_INCLUDED_ -#define _SYMBOL_TABLE_INCLUDED_ - -// -// Symbol table for parsing. Has these design characteristics: -// -// * Same symbol table can be used to compile many shaders, to preserve -// effort of creating and loading with the large numbers of built-in -// symbols. -// -// --> This requires a copy mechanism, so initial pools used to create -// the shared information can be popped. Done through "clone" -// methods. -// -// * Name mangling will be used to give each function a unique name -// so that symbol table lookups are never ambiguous. This allows -// a simpler symbol table structure. -// -// * Pushing and popping of scope, so symbol table will really be a stack -// of symbol tables. Searched from the top, with new inserts going into -// the top. -// -// * Constants: Compile time constant symbols will keep their values -// in the symbol table. The parser can substitute constants at parse -// time, including doing constant folding and constant propagation. -// -// * No temporaries: Temporaries made from operations (+, --, .xy, etc.) -// are tracked in the intermediate representation, not the symbol table. -// - -#include "../Include/Common.h" -#include "../Include/intermediate.h" -#include "../Include/InfoSink.h" - -namespace glslang { - -// -// Symbol base class. (Can build functions or variables out of these...) -// - -class TVariable; -class TFunction; -class TAnonMember; - -typedef TVector TExtensionList; - -class TSymbol { -public: - POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator()) - explicit TSymbol(const TString *n) : name(n), uniqueId(0), extensions(0), writable(true) { } - virtual TSymbol* clone() const = 0; - virtual ~TSymbol() { } // rely on all symbol owned memory coming from the pool - - 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; } - virtual TVariable* getAsVariable() { return 0; } - virtual const TVariable* getAsVariable() const { return 0; } - virtual const TAnonMember* getAsAnonMember() const { return 0; } - virtual const TType& getType() const = 0; - virtual TType& getWritableType() = 0; - virtual void setUniqueId(long long id) { uniqueId = id; } - virtual long long getUniqueId() const { return uniqueId; } - virtual void setExtensions(int numExts, const char* const exts[]) - { - assert(extensions == 0); - assert(numExts > 0); - extensions = NewPoolObject(extensions); - for (int e = 0; e < numExts; ++e) - extensions->push_back(exts[e]); - } - virtual int getNumExtensions() const { return extensions == nullptr ? 0 : (int)extensions->size(); } - virtual const char** getExtensions() const { return extensions->data(); } - -#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) - virtual void dump(TInfoSink& infoSink, bool complete = false) const = 0; - void dumpExtensions(TInfoSink& infoSink) const; -#endif - - virtual bool isReadOnly() const { return ! writable; } - virtual void makeReadOnly() { writable = false; } - -protected: - explicit TSymbol(const TSymbol&); - TSymbol& operator=(const TSymbol&); - - const TString *name; - unsigned long long uniqueId; // For cross-scope comparing during code generation - - // For tracking what extensions must be present - // (don't use if correct version/profile is present). - TExtensionList* extensions; // an array of pointers to existing constant char strings - - // - // N.B.: Non-const functions that will be generally used should assert on this, - // to avoid overwriting shared symbol-table information. - // - bool writable; -}; - -// -// Variable class, meaning a symbol that's not a function. -// -// There could be a separate class hierarchy for Constant variables; -// Only one of int, bool, or float, (or none) is correct for -// any particular use, but it's easy to do this way, and doesn't -// seem worth having separate classes, and "getConst" can't simply return -// different values for different types polymorphically, so this is -// just simple and pragmatic. -// -class TVariable : public TSymbol { -public: - TVariable(const TString *name, const TType& t, bool uT = false ) - : TSymbol(name), - userType(uT), - constSubtree(nullptr), - memberExtensions(nullptr), - anonId(-1) - { type.shallowCopy(t); } - virtual TVariable* clone() const; - virtual ~TVariable() { } - - virtual TVariable* getAsVariable() { return this; } - virtual const TVariable* getAsVariable() const { return this; } - virtual const TType& getType() const { return type; } - virtual TType& getWritableType() { assert(writable); return type; } - virtual bool isUserType() const { return userType; } - virtual const TConstUnionArray& getConstArray() const { return constArray; } - virtual TConstUnionArray& getWritableConstArray() { assert(writable); return constArray; } - virtual void setConstArray(const TConstUnionArray& array) { constArray = array; } - virtual void setConstSubtree(TIntermTyped* subtree) { constSubtree = subtree; } - virtual TIntermTyped* getConstSubtree() const { return constSubtree; } - virtual void setAnonId(int i) { anonId = i; } - virtual int getAnonId() const { return anonId; } - - virtual void setMemberExtensions(int member, int numExts, const char* const exts[]) - { - assert(type.isStruct()); - assert(numExts > 0); - if (memberExtensions == nullptr) { - memberExtensions = NewPoolObject(memberExtensions); - memberExtensions->resize(type.getStruct()->size()); - } - for (int e = 0; e < numExts; ++e) - (*memberExtensions)[member].push_back(exts[e]); - } - virtual bool hasMemberExtensions() const { return memberExtensions != nullptr; } - virtual int getNumMemberExtensions(int member) const - { - return memberExtensions == nullptr ? 0 : (int)(*memberExtensions)[member].size(); - } - virtual const char** getMemberExtensions(int member) const { return (*memberExtensions)[member].data(); } - -#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) - virtual void dump(TInfoSink& infoSink, bool complete = false) const; -#endif - -protected: - explicit TVariable(const TVariable&); - TVariable& operator=(const TVariable&); - - TType type; - bool userType; - - // we are assuming that Pool Allocator will free the memory allocated to unionArray - // when this object is destroyed - - TConstUnionArray constArray; // for compile-time constant value - TIntermTyped* constSubtree; // for specialization constant computation - TVector* memberExtensions; // per-member extension list, allocated only when needed - int anonId; // the ID used for anonymous blocks: TODO: see if uniqueId could serve a dual purpose -}; - -// -// The function sub-class of symbols and the parser will need to -// share this definition of a function parameter. -// -struct TParameter { - TString *name; - TType* type; - TIntermTyped* defaultValue; - void copyParam(const TParameter& param) - { - if (param.name) - name = NewPoolTString(param.name->c_str()); - else - name = 0; - type = param.type->clone(); - defaultValue = param.defaultValue; - } - TBuiltInVariable getDeclaredBuiltIn() const { return type->getQualifier().declaredBuiltIn; } -}; - -// -// The function sub-class of a symbol. -// -class TFunction : public TSymbol { -public: - explicit TFunction(TOperator o) : - TSymbol(0), - op(o), - 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), implicitThis(false), illegalImplicitThis(false), defaultParamCount(0) - { - returnType.shallowCopy(retType); - declaredBuiltIn = retType.getQualifier().builtIn; - } - virtual TFunction* clone() const override; - virtual ~TFunction(); - - 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++; - } - - // 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]; } - -#ifndef GLSLANG_WEB - virtual void setSpirvInstruction(const TSpirvInstruction& inst) - { - relateToOperator(EOpSpirvInst); - spirvInst = inst; - } - virtual const TSpirvInstruction& getSpirvInstruction() const { return spirvInst; } -#endif - -#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) - virtual void dump(TInfoSink& infoSink, bool complete = false) const override; -#endif - -protected: - explicit TFunction(const TFunction&); - TFunction& operator=(const TFunction&); - - 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; - -#ifndef GLSLANG_WEB - TSpirvInstruction spirvInst; // SPIR-V instruction qualifiers -#endif -}; - -// -// Members of anonymous blocks are a kind of TSymbol. They are not hidden in -// the symbol table behind a container; rather they are visible and point to -// their anonymous container. (The anonymous container is found through the -// member, not the other way around.) -// -class TAnonMember : public TSymbol { -public: - TAnonMember(const TString* n, unsigned int m, TVariable& a, int an) : TSymbol(n), anonContainer(a), memberNumber(m), anonId(an) { } - virtual TAnonMember* clone() const override; - virtual ~TAnonMember() { } - - virtual const TAnonMember* getAsAnonMember() const override { return this; } - virtual const TVariable& getAnonContainer() const { return anonContainer; } - virtual unsigned int getMemberNumber() const { return memberNumber; } - - virtual const TType& getType() const override - { - const TTypeList& types = *anonContainer.getType().getStruct(); - return *types[memberNumber].type; - } - - virtual TType& getWritableType() override - { - assert(writable); - const TTypeList& types = *anonContainer.getType().getStruct(); - return *types[memberNumber].type; - } - - virtual void setExtensions(int numExts, const char* const exts[]) override - { - anonContainer.setMemberExtensions(memberNumber, numExts, exts); - } - virtual int getNumExtensions() const override { return anonContainer.getNumMemberExtensions(memberNumber); } - virtual const char** getExtensions() const override { return anonContainer.getMemberExtensions(memberNumber); } - - virtual int getAnonId() const { return anonId; } -#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) - virtual void dump(TInfoSink& infoSink, bool complete = false) const override; -#endif - -protected: - explicit TAnonMember(const TAnonMember&); - TAnonMember& operator=(const TAnonMember&); - - TVariable& anonContainer; - unsigned int memberNumber; - int anonId; -}; - -class TSymbolTableLevel { -public: - POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator()) - TSymbolTableLevel() : defaultPrecision(0), anonId(0), thisLevel(false) { } - ~TSymbolTableLevel(); - - bool insert(const TString& name, TSymbol* symbol) { - return level.insert(tLevelPair(name, symbol)).second; - } - - bool insert(TSymbol& symbol, bool separateNameSpaces, const TString& forcedKeyName = TString()) - { - // - // returning true means symbol was added to the table with no semantic errors - // - const TString& name = symbol.getName(); - if (forcedKeyName.length()) { - return level.insert(tLevelPair(forcedKeyName, &symbol)).second; - } - else if (name == "") { - symbol.getAsVariable()->setAnonId(anonId++); - // An empty name means an anonymous container, exposing its members to the external scope. - // Give it a name and insert its members in the symbol table, pointing to the container. - char buf[20]; - snprintf(buf, 20, "%s%d", AnonymousPrefix, symbol.getAsVariable()->getAnonId()); - symbol.changeName(NewPoolTString(buf)); - - return insertAnonymousMembers(symbol, 0); - } else { - // Check for redefinition errors: - // - STL itself will tell us if there is a direct name collision, with name mangling, at this level - // - additionally, check for function-redefining-variable name collisions - const TString& insertName = symbol.getMangledName(); - if (symbol.getAsFunction()) { - // make sure there isn't a variable of this name - if (! separateNameSpaces && level.find(name) != level.end()) - return false; - - // insert, and whatever happens is okay - level.insert(tLevelPair(insertName, &symbol)); - - return true; - } else - return level.insert(tLevelPair(insertName, &symbol)).second; - } - } - - // Add more members to an already inserted aggregate object - bool amend(TSymbol& symbol, int firstNewMember) - { - // See insert() for comments on basic explanation of insert. - // This operates similarly, but more simply. - // Only supporting amend of anonymous blocks so far. - if (IsAnonymous(symbol.getName())) - return insertAnonymousMembers(symbol, firstNewMember); - else - return false; - } - - bool insertAnonymousMembers(TSymbol& symbol, int firstMember) - { - const TTypeList& types = *symbol.getAsVariable()->getType().getStruct(); - for (unsigned int m = firstMember; m < types.size(); ++m) { - TAnonMember* member = new TAnonMember(&types[m].type->getFieldName(), m, *symbol.getAsVariable(), symbol.getAsVariable()->getAnonId()); - if (! level.insert(tLevelPair(member->getMangledName(), member)).second) - return false; - } - - return true; - } - - void retargetSymbol(const TString& from, const TString& to) { - tLevel::const_iterator fromIt = level.find(from); - tLevel::const_iterator toIt = level.find(to); - if (fromIt == level.end() || toIt == level.end()) - return; - delete fromIt->second; - level[from] = toIt->second; - retargetedSymbols.push_back({from, to}); - } - - TSymbol* find(const TString& name) const - { - tLevel::const_iterator it = level.find(name); - if (it == level.end()) - return 0; - else - return (*it).second; - } - - void findFunctionNameList(const TString& name, TVector& list) - { - size_t parenAt = name.find_first_of('('); - TString base(name, 0, parenAt + 1); - - tLevel::const_iterator begin = level.lower_bound(base); - base[parenAt] = ')'; // assume ')' is lexically after '(' - tLevel::const_iterator end = level.upper_bound(base); - for (tLevel::const_iterator it = begin; it != end; ++it) - list.push_back(it->second->getAsFunction()); - } - - // See if there is already a function in the table having the given non-function-style name. - bool hasFunctionName(const TString& name) const - { - tLevel::const_iterator candidate = level.lower_bound(name); - if (candidate != level.end()) { - const TString& candidateName = (*candidate).first; - TString::size_type parenAt = candidateName.find_first_of('('); - if (parenAt != candidateName.npos && candidateName.compare(0, parenAt, name) == 0) - - return true; - } - - return false; - } - - // See if there is a variable at this level having the given non-function-style name. - // Return true if name is found, and set variable to true if the name was a variable. - bool findFunctionVariableName(const TString& name, bool& variable) const - { - tLevel::const_iterator candidate = level.lower_bound(name); - if (candidate != level.end()) { - const TString& candidateName = (*candidate).first; - TString::size_type parenAt = candidateName.find_first_of('('); - if (parenAt == candidateName.npos) { - // not a mangled name - if (candidateName == name) { - // found a variable name match - variable = true; - return true; - } - } else { - // a mangled name - if (candidateName.compare(0, parenAt, name) == 0) { - // found a function name match - variable = false; - return true; - } - } - } - - return false; - } - - // Use this to do a lazy 'push' of precision defaults the first time - // a precision statement is seen in a new scope. Leave it at 0 for - // when no push was needed. Thus, it is not the current defaults, - // it is what to restore the defaults to when popping a level. - void setPreviousDefaultPrecisions(const TPrecisionQualifier *p) - { - // can call multiple times at one scope, will only latch on first call, - // as we're tracking the previous scope's values, not the current values - if (defaultPrecision != 0) - return; - - defaultPrecision = new TPrecisionQualifier[EbtNumTypes]; - for (int t = 0; t < EbtNumTypes; ++t) - defaultPrecision[t] = p[t]; - } - - void getPreviousDefaultPrecisions(TPrecisionQualifier *p) - { - // can be called for table level pops that didn't set the - // defaults - if (defaultPrecision == 0 || p == 0) - return; - - for (int t = 0; t < EbtNumTypes; ++t) - p[t] = defaultPrecision[t]; - } - - void relateToOperator(const char* name, TOperator op); - void setFunctionExtensions(const char* name, int num, const char* const extensions[]); -#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) - void dump(TInfoSink& infoSink, bool complete = false) const; -#endif - TSymbolTableLevel* clone() const; - void readOnly(); - - void setThisLevel() { thisLevel = true; } - bool isThisLevel() const { return thisLevel; } - -protected: - explicit TSymbolTableLevel(TSymbolTableLevel&); - TSymbolTableLevel& operator=(TSymbolTableLevel&); - - typedef std::map, pool_allocator > > tLevel; - typedef const tLevel::value_type tLevelPair; - typedef std::pair tInsertResult; - - tLevel level; // named mappings - TPrecisionQualifier *defaultPrecision; - // pair - TVector> retargetedSymbols; - 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 { -public: - TSymbolTable() : uniqueId(0), noBuiltInRedeclarations(false), separateNameSpaces(false), adoptedLevels(0) - { - // - // This symbol table cannot be used until push() is called. - // - } - ~TSymbolTable() - { - // this can be called explicitly; safest to code it so it can be called multiple times - - // don't deallocate levels passed in from elsewhere - while (table.size() > adoptedLevels) - pop(0); - } - - void adoptLevels(TSymbolTable& symTable) - { - for (unsigned int level = 0; level < symTable.table.size(); ++level) { - table.push_back(symTable.table[level]); - ++adoptedLevels; - } - uniqueId = symTable.uniqueId; - noBuiltInRedeclarations = symTable.noBuiltInRedeclarations; - separateNameSpaces = symTable.separateNameSpaces; - } - - // - // While level adopting is generic, the methods below enact a the following - // convention for levels: - // 0: common built-ins shared across all stages, all compiles, only one copy for all symbol tables - // 1: per-stage built-ins, shared across all compiles, but a different copy per stage - // 2: built-ins specific to a compile, like resources that are context-dependent, or redeclared built-ins - // 3: user-shader globals - // -protected: - static const uint32_t LevelFlagBitOffset = 56; - static const int globalLevel = 3; - static bool isSharedLevel(int level) { return level <= 1; } // exclude all per-compile levels - static bool isBuiltInLevel(int level) { return level <= 2; } // exclude user globals - static bool isGlobalLevel(int level) { return level <= globalLevel; } // include user globals -public: - bool isEmpty() { return table.size() == 0; } - bool atBuiltInLevel() { return isBuiltInLevel(currentLevel()); } - bool atGlobalLevel() { return isGlobalLevel(currentLevel()); } - static bool isBuiltInSymbol(long long uniqueId) { - int level = static_cast(uniqueId >> LevelFlagBitOffset); - return isBuiltInLevel(level); - } - static constexpr uint64_t uniqueIdMask = (1LL << LevelFlagBitOffset) - 1; - static const uint32_t MaxLevelInUniqueID = 127; - void setNoBuiltInRedeclarations() { noBuiltInRedeclarations = true; } - void setSeparateNameSpaces() { separateNameSpaces = true; } - - void push() - { - table.push_back(new TSymbolTableLevel); - updateUniqueIdLevelFlag(); - } - - // 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); - updateUniqueIdLevelFlag(); - table.back()->setThisLevel(); - insert(thisSymbol); - } - - void pop(TPrecisionQualifier *p) - { - table[currentLevel()]->getPreviousDefaultPrecisions(p); - delete table.back(); - table.pop_back(); - updateUniqueIdLevelFlag(); - } - - // - // Insert a visible symbol into the symbol table so it can - // be found later by name. - // - // Returns false if the was a name collision. - // - bool insert(TSymbol& symbol) - { - symbol.setUniqueId(++uniqueId); - - // make sure there isn't a function of this variable name - if (! separateNameSpaces && ! symbol.getAsFunction() && table[currentLevel()]->hasFunctionName(symbol.getName())) - return false; - - // check for not overloading or redefining a built-in function - if (noBuiltInRedeclarations) { - if (atGlobalLevel() && currentLevel() > 0) { - if (table[0]->hasFunctionName(symbol.getName())) - return false; - if (currentLevel() > 1 && table[1]->hasFunctionName(symbol.getName())) - return false; - } - } - - return table[currentLevel()]->insert(symbol, separateNameSpaces); - } - - // Add more members to an already inserted aggregate object - bool amend(TSymbol& symbol, int firstNewMember) - { - // See insert() for comments on basic explanation of insert. - // This operates similarly, but more simply. - return table[currentLevel()]->amend(symbol, firstNewMember); - } - - // Update the level info in symbol's unique ID to current level - void amendSymbolIdLevel(TSymbol& symbol) - { - // clamp level to avoid overflow - uint64_t level = (uint32_t)currentLevel() > MaxLevelInUniqueID ? MaxLevelInUniqueID : currentLevel(); - uint64_t symbolId = symbol.getUniqueId(); - symbolId &= uniqueIdMask; - symbolId |= (level << LevelFlagBitOffset); - symbol.setUniqueId(symbolId); - } - // - // To allocate an internal temporary, which will need to be uniquely - // identified by the consumer of the AST, but never need to - // found by doing a symbol table search by name, hence allowed an - // arbitrary name in the symbol with no worry of collision. - // - void makeInternalVariable(TSymbol& symbol) - { - symbol.setUniqueId(++uniqueId); - } - - // - // Copy a variable or anonymous member's structure from a shared level so that - // it can be added (soon after return) to the symbol table where it can be - // modified without impacting other users of the shared table. - // - TSymbol* copyUpDeferredInsert(TSymbol* shared) - { - if (shared->getAsVariable()) { - TSymbol* copy = shared->clone(); - copy->setUniqueId(shared->getUniqueId()); - return copy; - } else { - const TAnonMember* anon = shared->getAsAnonMember(); - assert(anon); - TVariable* container = anon->getAnonContainer().clone(); - container->changeName(NewPoolTString("")); - container->setUniqueId(anon->getAnonContainer().getUniqueId()); - return container; - } - } - - TSymbol* copyUp(TSymbol* shared) - { - TSymbol* copy = copyUpDeferredInsert(shared); - table[globalLevel]->insert(*copy, separateNameSpaces); - if (shared->getAsVariable()) - return copy; - else { - // return the copy of the anonymous member - return table[globalLevel]->find(shared->getName()); - } - } - - // 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 == 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; - } - - void retargetSymbol(const TString& from, const TString& to) { - int level = currentLevel(); - table[level]->retargetSymbol(from, to); - } - - - // 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; - } - - bool isFunctionNameVariable(const TString& name) const - { - if (separateNameSpaces) - return false; - - int level = currentLevel(); - do { - bool variable; - bool found = table[level]->findFunctionVariableName(name, variable); - if (found) - return variable; - --level; - } while (level >= 0); - - return false; - } - - void findFunctionNameList(const TString& name, TVector& list, bool& builtIn) - { - // For user levels, return the set found in the first scope with a match - builtIn = false; - int level = currentLevel(); - do { - table[level]->findFunctionNameList(name, list); - --level; - } while (list.empty() && level >= globalLevel); - - if (! list.empty()) - return; - - // Gather across all built-in levels; they don't hide each other - builtIn = true; - do { - table[level]->findFunctionNameList(name, list); - --level; - } while (level >= 0); - } - - void relateToOperator(const char* name, TOperator op) - { - for (unsigned int level = 0; level < table.size(); ++level) - table[level]->relateToOperator(name, op); - } - - void setFunctionExtensions(const char* name, int num, const char* const extensions[]) - { - for (unsigned int level = 0; level < table.size(); ++level) - table[level]->setFunctionExtensions(name, num, extensions); - } - - void setVariableExtensions(const char* name, int numExts, const char* const extensions[]) - { - TSymbol* symbol = find(TString(name)); - if (symbol == nullptr) - return; - - symbol->setExtensions(numExts, extensions); - } - - void setVariableExtensions(const char* blockName, const char* name, int numExts, const char* const extensions[]) - { - TSymbol* symbol = find(TString(blockName)); - if (symbol == nullptr) - return; - TVariable* variable = symbol->getAsVariable(); - assert(variable != nullptr); - - const TTypeList& structure = *variable->getAsVariable()->getType().getStruct(); - for (int member = 0; member < (int)structure.size(); ++member) { - if (structure[member].type->getFieldName().compare(name) == 0) { - variable->setMemberExtensions(member, numExts, extensions); - return; - } - } - } - - long long getMaxSymbolId() { return uniqueId; } -#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) - void dump(TInfoSink& infoSink, bool complete = false) const; -#endif - void copyTable(const TSymbolTable& copyOf); - - void setPreviousDefaultPrecisions(TPrecisionQualifier *p) { table[currentLevel()]->setPreviousDefaultPrecisions(p); } - - void readOnly() - { - for (unsigned int level = 0; level < table.size(); ++level) - table[level]->readOnly(); - } - - // Add current level in the high-bits of unique id - void updateUniqueIdLevelFlag() { - // clamp level to avoid overflow - uint64_t level = (uint32_t)currentLevel() > MaxLevelInUniqueID ? MaxLevelInUniqueID : currentLevel(); - uniqueId &= uniqueIdMask; - uniqueId |= (level << LevelFlagBitOffset); - } - - void overwriteUniqueId(long long id) - { - uniqueId = id; - updateUniqueIdLevelFlag(); - } - -protected: - TSymbolTable(TSymbolTable&); - TSymbolTable& operator=(TSymbolTableLevel&); - - int currentLevel() const { return static_cast(table.size()) - 1; } - std::vector table; - long long uniqueId; // for unique identification in code generation - bool noBuiltInRedeclarations; - bool separateNameSpaces; - unsigned int adoptedLevels; -}; - -} // end namespace glslang - -#endif // _SYMBOL_TABLE_INCLUDED_ diff --git a/deps/glslang/glslang/MachineIndependent/Versions.cpp b/deps/glslang/glslang/MachineIndependent/Versions.cpp deleted file mode 100644 index 8d96e0e1..00000000 --- a/deps/glslang/glslang/MachineIndependent/Versions.cpp +++ /dev/null @@ -1,1346 +0,0 @@ -// -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2012-2013 LunarG, Inc. -// Copyright (C) 2017 ARM Limited. -// Copyright (C) 2015-2020 Google, Inc. -// Modifications Copyright (C) 2020 Advanced Micro Devices, 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: -// -// 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. -// - -// -// Help manage multiple profiles, versions, extensions etc. -// -// 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. -// - -// -// HOW TO add a feature enabled by an extension. -// -// 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 -// 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 -// enable/disable Feature F, in a code path that implements Feature F: -// -// requireProfile() -// profileRequires() -// requireStage() -// checkDeprecated() -// requireNotRemoved() -// requireExtensions() -// extensionRequires() -// -// 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. -// -// 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 and optionally a entry to extensionData for additional -// error checks: -// -// extensionBehavior[XXX_extension_X] = EBhDisable; -// (Optional) exts[] = {XXX_extension_X, EShTargetSpv_1_4} -// -// 3) Add any preprocessor directives etc. in the next function, TParseVersions::getPreamble(): -// -// "#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, -// 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 -// 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 -// will be automatically error checked against the extensions enabled at that moment. -// see the comment at the top of Initialize.cpp for where to put them. Establish them at -// the earliest release that supports the extension. Then, tag them with the -// set of extensions that both enable them and are necessary, given the version of the symbol -// table. (There is a different symbol table for each version.) -// -// 7) If the extension has additional requirements like minimum SPIR-V version required, add them -// to extensionRequires() - -#include "parseVersions.h" -#include "localintermediate.h" - -namespace glslang { - -#ifndef GLSLANG_WEB - -// -// Initialize all extensions, almost always to 'disable', as once their features -// are incorporated into a core version, their features are supported through allowing that -// core version, not through a pseudo-enablement of the extension. -// -void TParseVersions::initializeExtensionBehavior() -{ - typedef struct { - const char *const extensionName; - EShTargetLanguageVersion minSpvVersion; - } extensionData; - - const extensionData exts[] = { {E_GL_EXT_ray_tracing, EShTargetSpv_1_4}, - {E_GL_NV_ray_tracing_motion_blur, EShTargetSpv_1_4} - }; - - for (size_t ii = 0; ii < sizeof(exts) / sizeof(exts[0]); ii++) { - // Add only extensions which require > spv1.0 to save space in map - if (exts[ii].minSpvVersion > EShTargetSpv_1_0) { - extensionMinSpv[exts[ii].extensionName] = exts[ii].minSpvVersion; - } - } - - extensionBehavior[E_GL_OES_texture_3D] = EBhDisable; - 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_YUV_target] = 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; - extensionBehavior[E_GL_ARB_texture_gather] = EBhDisable; - extensionBehavior[E_GL_ARB_gpu_shader5] = EBhDisablePartial; - extensionBehavior[E_GL_ARB_separate_shader_objects] = EBhDisable; - extensionBehavior[E_GL_ARB_compute_shader] = EBhDisable; - extensionBehavior[E_GL_ARB_tessellation_shader] = EBhDisable; - extensionBehavior[E_GL_ARB_enhanced_layouts] = EBhDisable; - extensionBehavior[E_GL_ARB_texture_cube_map_array] = EBhDisable; - extensionBehavior[E_GL_ARB_texture_multisample] = EBhDisable; - extensionBehavior[E_GL_ARB_shader_texture_lod] = EBhDisable; - extensionBehavior[E_GL_ARB_explicit_attrib_location] = EBhDisable; - extensionBehavior[E_GL_ARB_explicit_uniform_location] = EBhDisable; - extensionBehavior[E_GL_ARB_shader_image_load_store] = EBhDisable; - extensionBehavior[E_GL_ARB_shader_atomic_counters] = EBhDisable; - extensionBehavior[E_GL_ARB_shader_atomic_counter_ops] = EBhDisable; - extensionBehavior[E_GL_ARB_shader_draw_parameters] = EBhDisable; - extensionBehavior[E_GL_ARB_shader_group_vote] = EBhDisable; - extensionBehavior[E_GL_ARB_derivative_control] = EBhDisable; - extensionBehavior[E_GL_ARB_shader_texture_image_samples] = EBhDisable; - extensionBehavior[E_GL_ARB_viewport_array] = EBhDisable; - extensionBehavior[E_GL_ARB_gpu_shader_int64] = EBhDisable; - extensionBehavior[E_GL_ARB_gpu_shader_fp64] = EBhDisable; - 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_ARB_fragment_shader_interlock] = EBhDisable; - extensionBehavior[E_GL_ARB_shader_clock] = EBhDisable; - extensionBehavior[E_GL_ARB_uniform_buffer_object] = EBhDisable; - extensionBehavior[E_GL_ARB_sample_shading] = EBhDisable; - extensionBehavior[E_GL_ARB_shader_bit_encoding] = EBhDisable; - extensionBehavior[E_GL_ARB_shader_image_size] = EBhDisable; - extensionBehavior[E_GL_ARB_shader_storage_buffer_object] = EBhDisable; - extensionBehavior[E_GL_ARB_shading_language_packing] = EBhDisable; - extensionBehavior[E_GL_ARB_texture_query_lod] = EBhDisable; - extensionBehavior[E_GL_ARB_vertex_attrib_64bit] = EBhDisable; - extensionBehavior[E_GL_ARB_draw_instanced] = EBhDisable; - extensionBehavior[E_GL_ARB_fragment_coord_conventions] = 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_KHR_memory_scope_semantics] = EBhDisable; - - extensionBehavior[E_GL_EXT_shader_atomic_int64] = 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; - extensionBehavior[E_GL_EXT_samplerless_texture_functions] = EBhDisable; - extensionBehavior[E_GL_EXT_scalar_block_layout] = EBhDisable; - extensionBehavior[E_GL_EXT_fragment_invocation_density] = EBhDisable; - extensionBehavior[E_GL_EXT_buffer_reference] = EBhDisable; - extensionBehavior[E_GL_EXT_buffer_reference2] = EBhDisable; - extensionBehavior[E_GL_EXT_buffer_reference_uvec2] = EBhDisable; - extensionBehavior[E_GL_EXT_demote_to_helper_invocation] = EBhDisable; - extensionBehavior[E_GL_EXT_debug_printf] = EBhDisable; - - extensionBehavior[E_GL_EXT_shader_16bit_storage] = EBhDisable; - extensionBehavior[E_GL_EXT_shader_8bit_storage] = EBhDisable; - extensionBehavior[E_GL_EXT_subgroup_uniform_control_flow] = EBhDisable; - - // #line and #include - extensionBehavior[E_GL_GOOGLE_cpp_style_line_directive] = EBhDisable; - extensionBehavior[E_GL_GOOGLE_include_directive] = EBhDisable; - - extensionBehavior[E_GL_AMD_shader_ballot] = EBhDisable; - extensionBehavior[E_GL_AMD_shader_trinary_minmax] = EBhDisable; - extensionBehavior[E_GL_AMD_shader_explicit_vertex_parameter] = EBhDisable; - extensionBehavior[E_GL_AMD_gcn_shader] = EBhDisable; - extensionBehavior[E_GL_AMD_gpu_shader_half_float] = EBhDisable; - 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; - - extensionBehavior[E_GL_INTEL_shader_integer_functions2] = EBhDisable; - - 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; - extensionBehavior[E_GL_NV_shading_rate_image] = EBhDisable; - extensionBehavior[E_GL_NV_ray_tracing] = EBhDisable; - extensionBehavior[E_GL_NV_ray_tracing_motion_blur] = EBhDisable; - extensionBehavior[E_GL_NV_fragment_shader_barycentric] = EBhDisable; - extensionBehavior[E_GL_NV_compute_shader_derivatives] = EBhDisable; - extensionBehavior[E_GL_NV_shader_texture_footprint] = EBhDisable; - extensionBehavior[E_GL_NV_mesh_shader] = EBhDisable; - - extensionBehavior[E_GL_NV_cooperative_matrix] = EBhDisable; - extensionBehavior[E_GL_NV_shader_sm_builtins] = EBhDisable; - extensionBehavior[E_GL_NV_integer_cooperative_matrix] = EBhDisable; - - // AEP - extensionBehavior[E_GL_ANDROID_extension_pack_es31a] = EBhDisable; - extensionBehavior[E_GL_KHR_blend_equation_advanced] = EBhDisable; - extensionBehavior[E_GL_OES_sample_variables] = EBhDisable; - extensionBehavior[E_GL_OES_shader_image_atomic] = EBhDisable; - extensionBehavior[E_GL_OES_shader_multisample_interpolation] = EBhDisable; - extensionBehavior[E_GL_OES_texture_storage_multisample_2d_array] = EBhDisable; - extensionBehavior[E_GL_EXT_geometry_shader] = EBhDisable; - extensionBehavior[E_GL_EXT_geometry_point_size] = EBhDisable; - extensionBehavior[E_GL_EXT_gpu_shader5] = EBhDisable; - extensionBehavior[E_GL_EXT_primitive_bounding_box] = EBhDisable; - extensionBehavior[E_GL_EXT_shader_io_blocks] = EBhDisable; - extensionBehavior[E_GL_EXT_tessellation_shader] = EBhDisable; - extensionBehavior[E_GL_EXT_tessellation_point_size] = EBhDisable; - extensionBehavior[E_GL_EXT_texture_buffer] = EBhDisable; - extensionBehavior[E_GL_EXT_texture_cube_map_array] = EBhDisable; - extensionBehavior[E_GL_EXT_null_initializer] = EBhDisable; - - // OES matching AEP - extensionBehavior[E_GL_OES_geometry_shader] = EBhDisable; - extensionBehavior[E_GL_OES_geometry_point_size] = EBhDisable; - extensionBehavior[E_GL_OES_gpu_shader5] = EBhDisable; - extensionBehavior[E_GL_OES_primitive_bounding_box] = EBhDisable; - extensionBehavior[E_GL_OES_shader_io_blocks] = EBhDisable; - extensionBehavior[E_GL_OES_tessellation_shader] = EBhDisable; - extensionBehavior[E_GL_OES_tessellation_point_size] = EBhDisable; - extensionBehavior[E_GL_OES_texture_buffer] = EBhDisable; - extensionBehavior[E_GL_OES_texture_cube_map_array] = EBhDisable; - extensionBehavior[E_GL_EXT_shader_integer_mix] = EBhDisable; - - // EXT extensions - extensionBehavior[E_GL_EXT_device_group] = EBhDisable; - extensionBehavior[E_GL_EXT_multiview] = EBhDisable; - extensionBehavior[E_GL_EXT_shader_realtime_clock] = EBhDisable; - extensionBehavior[E_GL_EXT_ray_tracing] = EBhDisable; - extensionBehavior[E_GL_EXT_ray_query] = EBhDisable; - extensionBehavior[E_GL_EXT_ray_flags_primitive_culling] = EBhDisable; - extensionBehavior[E_GL_EXT_blend_func_extended] = EBhDisable; - extensionBehavior[E_GL_EXT_shader_implicit_conversions] = EBhDisable; - extensionBehavior[E_GL_EXT_fragment_shading_rate] = EBhDisable; - extensionBehavior[E_GL_EXT_shader_image_int64] = EBhDisable; - extensionBehavior[E_GL_EXT_terminate_invocation] = EBhDisable; - extensionBehavior[E_GL_EXT_shared_memory_block] = EBhDisable; - extensionBehavior[E_GL_EXT_spirv_intrinsics] = EBhDisable; - - // OVR extensions - extensionBehavior[E_GL_OVR_multiview] = EBhDisable; - extensionBehavior[E_GL_OVR_multiview2] = EBhDisable; - - // explicit types - extensionBehavior[E_GL_EXT_shader_explicit_arithmetic_types] = EBhDisable; - extensionBehavior[E_GL_EXT_shader_explicit_arithmetic_types_int8] = EBhDisable; - extensionBehavior[E_GL_EXT_shader_explicit_arithmetic_types_int16] = EBhDisable; - extensionBehavior[E_GL_EXT_shader_explicit_arithmetic_types_int32] = EBhDisable; - extensionBehavior[E_GL_EXT_shader_explicit_arithmetic_types_int64] = EBhDisable; - extensionBehavior[E_GL_EXT_shader_explicit_arithmetic_types_float16] = EBhDisable; - extensionBehavior[E_GL_EXT_shader_explicit_arithmetic_types_float32] = EBhDisable; - extensionBehavior[E_GL_EXT_shader_explicit_arithmetic_types_float64] = EBhDisable; - - // subgroup extended types - extensionBehavior[E_GL_EXT_shader_subgroup_extended_types_int8] = EBhDisable; - extensionBehavior[E_GL_EXT_shader_subgroup_extended_types_int16] = EBhDisable; - extensionBehavior[E_GL_EXT_shader_subgroup_extended_types_int64] = EBhDisable; - extensionBehavior[E_GL_EXT_shader_subgroup_extended_types_float16] = EBhDisable; - extensionBehavior[E_GL_EXT_shader_atomic_float] = EBhDisable; - extensionBehavior[E_GL_EXT_shader_atomic_float2] = EBhDisable; -} - -#endif // GLSLANG_WEB - -// Get code that is not part of a shared symbol table, is specific to this shader, -// or needed by the preprocessor (which does not use a shared symbol table). -void TParseVersions::getPreamble(std::string& preamble) -{ - if (isEsProfile()) { - preamble = - "#define GL_ES 1\n" - "#define GL_FRAGMENT_PRECISION_HIGH 1\n" -#ifdef GLSLANG_WEB - ; -#else - "#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_YUV_target 1\n" - "#define GL_EXT_shader_texture_lod 1\n" - "#define GL_EXT_shadow_samplers 1\n" - "#define GL_EXT_fragment_shading_rate 1\n" - - // AEP - "#define GL_ANDROID_extension_pack_es31a 1\n" - "#define GL_OES_sample_variables 1\n" - "#define GL_OES_shader_image_atomic 1\n" - "#define GL_OES_shader_multisample_interpolation 1\n" - "#define GL_OES_texture_storage_multisample_2d_array 1\n" - "#define GL_EXT_geometry_shader 1\n" - "#define GL_EXT_geometry_point_size 1\n" - "#define GL_EXT_gpu_shader5 1\n" - "#define GL_EXT_primitive_bounding_box 1\n" - "#define GL_EXT_shader_io_blocks 1\n" - "#define GL_EXT_tessellation_shader 1\n" - "#define GL_EXT_tessellation_point_size 1\n" - "#define GL_EXT_texture_buffer 1\n" - "#define GL_EXT_texture_cube_map_array 1\n" - "#define GL_EXT_shader_implicit_conversions 1\n" - "#define GL_EXT_shader_integer_mix 1\n" - "#define GL_EXT_blend_func_extended 1\n" - - // OES matching AEP - "#define GL_OES_geometry_shader 1\n" - "#define GL_OES_geometry_point_size 1\n" - "#define GL_OES_gpu_shader5 1\n" - "#define GL_OES_primitive_bounding_box 1\n" - "#define GL_OES_shader_io_blocks 1\n" - "#define GL_OES_tessellation_shader 1\n" - "#define GL_OES_tessellation_point_size 1\n" - "#define GL_OES_texture_buffer 1\n" - "#define GL_OES_texture_cube_map_array 1\n" - "#define GL_EXT_shader_non_constant_global_initializers 1\n" - ; - - if (version >= 300) { - preamble += "#define GL_NV_shader_noperspective_interpolation 1\n"; - } - if (version >= 310) { - preamble += "#define GL_EXT_null_initializer 1\n"; - preamble += "#define GL_EXT_subgroup_uniform_control_flow 1\n"; - } - - } else { // !isEsProfile() - preamble = - "#define GL_FRAGMENT_PRECISION_HIGH 1\n" - "#define GL_ARB_texture_rectangle 1\n" - "#define GL_ARB_shading_language_420pack 1\n" - "#define GL_ARB_texture_gather 1\n" - "#define GL_ARB_gpu_shader5 1\n" - "#define GL_ARB_separate_shader_objects 1\n" - "#define GL_ARB_compute_shader 1\n" - "#define GL_ARB_tessellation_shader 1\n" - "#define GL_ARB_enhanced_layouts 1\n" - "#define GL_ARB_texture_cube_map_array 1\n" - "#define GL_ARB_texture_multisample 1\n" - "#define GL_ARB_shader_texture_lod 1\n" - "#define GL_ARB_explicit_attrib_location 1\n" - "#define GL_ARB_explicit_uniform_location 1\n" - "#define GL_ARB_shader_image_load_store 1\n" - "#define GL_ARB_shader_atomic_counters 1\n" - "#define GL_ARB_shader_draw_parameters 1\n" - "#define GL_ARB_shader_group_vote 1\n" - "#define GL_ARB_derivative_control 1\n" - "#define GL_ARB_shader_texture_image_samples 1\n" - "#define GL_ARB_viewport_array 1\n" - "#define GL_ARB_gpu_shader_int64 1\n" - "#define GL_ARB_gpu_shader_fp64 1\n" - "#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_sample_shading 1\n" - "#define GL_ARB_shader_image_size 1\n" - "#define GL_ARB_shading_language_packing 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_ARB_fragment_shader_interlock 1\n" - "#define GL_ARB_uniform_buffer_object 1\n" - "#define GL_ARB_shader_bit_encoding 1\n" - "#define GL_ARB_shader_storage_buffer_object 1\n" - "#define GL_ARB_texture_query_lod 1\n" - "#define GL_ARB_vertex_attrib_64bit 1\n" - "#define GL_ARB_draw_instanced 1\n" - "#define GL_ARB_fragment_coord_conventions 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" - "#define GL_EXT_shader_16bit_storage 1\n" - "#define GL_EXT_shader_8bit_storage 1\n" - "#define GL_EXT_samplerless_texture_functions 1\n" - "#define GL_EXT_scalar_block_layout 1\n" - "#define GL_EXT_fragment_invocation_density 1\n" - "#define GL_EXT_buffer_reference 1\n" - "#define GL_EXT_buffer_reference2 1\n" - "#define GL_EXT_buffer_reference_uvec2 1\n" - "#define GL_EXT_demote_to_helper_invocation 1\n" - "#define GL_EXT_debug_printf 1\n" - "#define GL_EXT_fragment_shading_rate 1\n" - "#define GL_EXT_shared_memory_block 1\n" - "#define GL_EXT_shader_integer_mix 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" - - "#define GL_EXT_shader_image_int64 1\n" - "#define GL_EXT_shader_atomic_int64 1\n" - "#define GL_EXT_shader_realtime_clock 1\n" - "#define GL_EXT_ray_tracing 1\n" - "#define GL_EXT_ray_query 1\n" - "#define GL_EXT_ray_flags_primitive_culling 1\n" - "#define GL_EXT_spirv_intrinsics 1\n" - - "#define GL_AMD_shader_ballot 1\n" - "#define GL_AMD_shader_trinary_minmax 1\n" - "#define GL_AMD_shader_explicit_vertex_parameter 1\n" - "#define GL_AMD_gcn_shader 1\n" - "#define GL_AMD_gpu_shader_half_float 1\n" - "#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" - - "#define GL_INTEL_shader_integer_functions2 1\n" - - "#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" - "#define GL_NV_shading_rate_image 1\n" - "#define GL_NV_ray_tracing 1\n" - "#define GL_NV_ray_tracing_motion_blur 1\n" - "#define GL_NV_fragment_shader_barycentric 1\n" - "#define GL_NV_compute_shader_derivatives 1\n" - "#define GL_NV_shader_texture_footprint 1\n" - "#define GL_NV_mesh_shader 1\n" - "#define GL_NV_cooperative_matrix 1\n" - "#define GL_NV_integer_cooperative_matrix 1\n" - - "#define GL_EXT_shader_explicit_arithmetic_types 1\n" - "#define GL_EXT_shader_explicit_arithmetic_types_int8 1\n" - "#define GL_EXT_shader_explicit_arithmetic_types_int16 1\n" - "#define GL_EXT_shader_explicit_arithmetic_types_int32 1\n" - "#define GL_EXT_shader_explicit_arithmetic_types_int64 1\n" - "#define GL_EXT_shader_explicit_arithmetic_types_float16 1\n" - "#define GL_EXT_shader_explicit_arithmetic_types_float32 1\n" - "#define GL_EXT_shader_explicit_arithmetic_types_float64 1\n" - - "#define GL_EXT_shader_subgroup_extended_types_int8 1\n" - "#define GL_EXT_shader_subgroup_extended_types_int16 1\n" - "#define GL_EXT_shader_subgroup_extended_types_int64 1\n" - "#define GL_EXT_shader_subgroup_extended_types_float16 1\n" - - "#define GL_EXT_shader_atomic_float 1\n" - "#define GL_EXT_shader_atomic_float2 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 (version >= 140) { - preamble += "#define GL_EXT_null_initializer 1\n"; - preamble += "#define GL_EXT_subgroup_uniform_control_flow 1\n"; - } -#endif // GLSLANG_WEB - } - -#ifndef GLSLANG_WEB - if ((!isEsProfile() && version >= 140) || - (isEsProfile() && version >= 310)) { - preamble += - "#define GL_EXT_device_group 1\n" - "#define GL_EXT_multiview 1\n" - "#define GL_NV_shader_sm_builtins 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 += - "#define GL_GOOGLE_cpp_style_line_directive 1\n" - "#define GL_GOOGLE_include_directive 1\n" - "#define GL_KHR_blend_equation_advanced 1\n" - ; - - // other general extensions - preamble += - "#define GL_EXT_terminate_invocation 1\n" - ; -#endif - - // #define VULKAN XXXX - const int numberBufSize = 12; - char numberBuf[numberBufSize]; - if (spvVersion.vulkanGlsl > 0) { - preamble += "#define VULKAN "; - snprintf(numberBuf, numberBufSize, "%d", spvVersion.vulkanGlsl); - preamble += numberBuf; - preamble += "\n"; - } - -#ifndef GLSLANG_WEB - // #define GL_SPIRV XXXX - if (spvVersion.openGl > 0) { - preamble += "#define GL_SPIRV "; - snprintf(numberBuf, numberBufSize, "%d", spvVersion.openGl); - preamble += numberBuf; - preamble += "\n"; - } -#endif - -#ifndef GLSLANG_WEB - // GL_EXT_spirv_intrinsics - if (!isEsProfile()) { - switch (language) { - case EShLangVertex: preamble += "#define GL_VERTEX_SHADER 1 \n"; break; - case EShLangTessControl: preamble += "#define GL_TESSELLATION_CONTROL_SHADER 1 \n"; break; - case EShLangTessEvaluation: preamble += "#define GL_TESSELLATION_EVALUATION_SHADER 1 \n"; break; - case EShLangGeometry: preamble += "#define GL_GEOMETRY_SHADER 1 \n"; break; - case EShLangFragment: preamble += "#define GL_FRAGMENT_SHADER 1 \n"; break; - case EShLangCompute: preamble += "#define GL_COMPUTE_SHADER 1 \n"; break; - case EShLangRayGen: preamble += "#define GL_RAY_GENERATION_SHADER_EXT 1 \n"; break; - case EShLangIntersect: preamble += "#define GL_INTERSECTION_SHADER_EXT 1 \n"; break; - case EShLangAnyHit: preamble += "#define GL_ANY_HIT_SHADER_EXT 1 \n"; break; - case EShLangClosestHit: preamble += "#define GL_CLOSEST_HIT_SHADER_EXT 1 \n"; break; - case EShLangMiss: preamble += "#define GL_MISS_SHADER_EXT 1 \n"; break; - case EShLangCallable: preamble += "#define GL_CALLABLE_SHADER_EXT 1 \n"; break; - case EShLangTaskNV: preamble += "#define GL_TASK_SHADER_NV 1 \n"; break; - case EShLangMeshNV: preamble += "#define GL_MESH_SHADER_NV 1 \n"; break; - default: break; - } - } -#endif -} - -// -// Map from stage enum to externally readable text name. -// -const char* StageName(EShLanguage stage) -{ - switch(stage) { - case EShLangVertex: return "vertex"; - case EShLangFragment: return "fragment"; - case EShLangCompute: return "compute"; -#ifndef GLSLANG_WEB - case EShLangTessControl: return "tessellation control"; - case EShLangTessEvaluation: return "tessellation evaluation"; - case EShLangGeometry: return "geometry"; - case EShLangRayGen: return "ray-generation"; - case EShLangIntersect: return "intersection"; - case EShLangAnyHit: return "any-hit"; - case EShLangClosestHit: return "closest-hit"; - case EShLangMiss: return "miss"; - case EShLangCallable: return "callable"; - case EShLangMeshNV: return "mesh"; - case EShLangTaskNV: return "task"; -#endif - default: return "unknown stage"; - } -} - -// -// When to use requireStage() -// -// If only some stages support a feature. -// -// Operation: If the current stage is not present, give an error message. -// -void TParseVersions::requireStage(const TSourceLoc& loc, EShLanguageMask languageMask, const char* featureDesc) -{ - if (((1 << language) & languageMask) == 0) - error(loc, "not supported in this stage:", featureDesc, StageName(language)); -} - -// If only one stage supports a feature, this can be called. But, all supporting stages -// must be specified with one call. -void TParseVersions::requireStage(const TSourceLoc& loc, EShLanguage stage, const char* featureDesc) -{ - requireStage(loc, static_cast(1 << stage), featureDesc); -} - -#ifndef GLSLANG_WEB -// -// When to use requireProfile(): -// -// 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, -// give an error message. -// -void TParseVersions::requireProfile(const TSourceLoc& loc, int profileMask, const char* featureDesc) -{ - if (! (profile & profileMask)) - error(loc, "not supported with this profile:", featureDesc, ProfileName(profile)); -} - -// -// When to use profileRequires(): -// -// If a set of profiles have the same requirements for what version or extensions -// are needed to support a feature. -// -// It must be called for each profile that needs protection. Use requireProfile() first -// to reduce that set of profiles. -// -// 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, -// the extension must be present. -// - -// entry point that takes multiple extensions -void TParseVersions::profileRequires(const TSourceLoc& loc, int profileMask, int minVersion, int numExtensions, - const char* const extensions[], const char* featureDesc) -{ - if (profile & profileMask) { - bool okay = minVersion > 0 && version >= minVersion; -#ifndef GLSLANG_WEB - for (int i = 0; i < numExtensions; ++i) { - switch (getExtensionBehavior(extensions[i])) { - case EBhWarn: - infoSink.info.message(EPrefixWarning, ("extension " + TString(extensions[i]) + " is being used for " + featureDesc).c_str(), loc); - // fall through - case EBhRequire: - case EBhEnable: - okay = true; - break; - default: break; // some compilers want this - } - } -#endif - if (! okay) - error(loc, "not supported for this version or the enabled extensions", featureDesc, ""); - } -} - -// entry point for the above that takes a single extension -void TParseVersions::profileRequires(const TSourceLoc& loc, int profileMask, int minVersion, const char* extension, - const char* featureDesc) -{ - profileRequires(loc, profileMask, minVersion, extension ? 1 : 0, &extension, featureDesc); -} - -void TParseVersions::unimplemented(const TSourceLoc& loc, const char* featureDesc) -{ - error(loc, "feature not yet implemented", featureDesc, ""); -} - -// -// Within a set of profiles, see if a feature is deprecated and give an error or warning based on whether -// a future compatibility context is being use. -// -void TParseVersions::checkDeprecated(const TSourceLoc& loc, int profileMask, int depVersion, const char* featureDesc) -{ - if (profile & profileMask) { - if (version >= depVersion) { - if (forwardCompatible) - error(loc, "deprecated, may be removed in future release", featureDesc, ""); - else if (! suppressWarnings()) - infoSink.info.message(EPrefixWarning, (TString(featureDesc) + " deprecated in version " + - String(depVersion) + "; may be removed in future release").c_str(), loc); - } - } -} - -// -// Within a set of profiles, see if a feature has now been removed and if so, give an error. -// The version argument is the first version no longer having the feature. -// -void TParseVersions::requireNotRemoved(const TSourceLoc& loc, int profileMask, int removedVersion, const char* featureDesc) -{ - if (profile & profileMask) { - if (version >= removedVersion) { - const int maxSize = 60; - char buf[maxSize]; - snprintf(buf, maxSize, "%s profile; removed in version %d", ProfileName(profile), removedVersion); - error(loc, "no longer supported in", featureDesc, buf); - } - } -} - -// 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) -{ - // First, see if any of the extensions are enabled - for (int i = 0; i < numExtensions; ++i) { - TExtensionBehavior behavior = getExtensionBehavior(extensions[i]); - if (behavior == EBhEnable || behavior == EBhRequire) - return true; - } - - // See if any extensions want to give a warning on use; give warnings for all such extensions - bool warned = false; - for (int i = 0; i < numExtensions; ++i) { - TExtensionBehavior behavior = getExtensionBehavior(extensions[i]); - if (behavior == EBhDisable && relaxedErrors()) { - infoSink.info.message(EPrefixWarning, "The following extension must be enabled to use this feature:", loc); - behavior = EBhWarn; - } - if (behavior == EBhWarn) { - infoSink.info.message(EPrefixWarning, ("extension " + TString(extensions[i]) + " is being used for " + featureDesc).c_str(), loc); - warned = true; - } - } - if (warned) - return true; - return false; -} - -// -// Use when there are no profile/version to check, it's just an error if one of the -// extensions is not present. -// -void TParseVersions::requireExtensions(const TSourceLoc& loc, int numExtensions, const char* const extensions[], - const char* featureDesc) -{ - if (checkExtensionsRequested(loc, numExtensions, extensions, featureDesc)) - return; - - // If we get this far, give errors explaining what extensions are needed - if (numExtensions == 1) - error(loc, "required extension not requested:", featureDesc, extensions[0]); - else { - error(loc, "required extension not requested:", featureDesc, "Possible extensions include:"); - for (int i = 0; i < numExtensions; ++i) - infoSink.info.message(EPrefixNone, extensions[i]); - } -} - -// -// Use by preprocessor when there are no profile/version to check, it's just an error if one of the -// extensions is not present. -// -void TParseVersions::ppRequireExtensions(const TSourceLoc& loc, int numExtensions, const char* const extensions[], - const char* featureDesc) -{ - if (checkExtensionsRequested(loc, numExtensions, extensions, featureDesc)) - return; - - // If we get this far, give errors explaining what extensions are needed - if (numExtensions == 1) - ppError(loc, "required extension not requested:", featureDesc, extensions[0]); - else { - ppError(loc, "required extension not requested:", featureDesc, "Possible extensions include:"); - for (int i = 0; i < numExtensions; ++i) - infoSink.info.message(EPrefixNone, extensions[i]); - } -} - -TExtensionBehavior TParseVersions::getExtensionBehavior(const char* extension) -{ - auto iter = extensionBehavior.find(TString(extension)); - if (iter == extensionBehavior.end()) - return EBhMissing; - else - return iter->second; -} - -// Returns true if the given extension is set to enable, require, or warn. -bool TParseVersions::extensionTurnedOn(const char* const extension) -{ - switch (getExtensionBehavior(extension)) { - case EBhEnable: - case EBhRequire: - case EBhWarn: - return true; - default: - break; - } - return false; -} -// See if any of the extensions are set to enable, require, or warn. -bool TParseVersions::extensionsTurnedOn(int numExtensions, const char* const extensions[]) -{ - for (int i = 0; i < numExtensions; ++i) { - if (extensionTurnedOn(extensions[i])) - return true; - } - return false; -} - -// -// Change the current state of an extension's behavior. -// -void TParseVersions::updateExtensionBehavior(int line, const char* extension, const char* behaviorString) -{ - // Translate from text string of extension's behavior to an enum. - TExtensionBehavior behavior = EBhDisable; - if (! strcmp("require", behaviorString)) - behavior = EBhRequire; - else if (! strcmp("enable", behaviorString)) - behavior = EBhEnable; - else if (! strcmp("disable", behaviorString)) - behavior = EBhDisable; - else if (! strcmp("warn", behaviorString)) - behavior = EBhWarn; - else { - error(getCurrentLoc(), "behavior not supported:", "#extension", behaviorString); - return; - } - bool on = behavior != EBhDisable; - - // check if extension is used with correct shader stage - checkExtensionStage(getCurrentLoc(), extension); - - // check if extension has additional requirements - extensionRequires(getCurrentLoc(), extension, behaviorString); - - // update the requested extension - updateExtensionBehavior(extension, behavior); - - // see if need to propagate to implicitly modified things - if (strcmp(extension, "GL_ANDROID_extension_pack_es31a") == 0) { - // to everything in AEP - updateExtensionBehavior(line, "GL_KHR_blend_equation_advanced", behaviorString); - updateExtensionBehavior(line, "GL_OES_sample_variables", behaviorString); - updateExtensionBehavior(line, "GL_OES_shader_image_atomic", behaviorString); - updateExtensionBehavior(line, "GL_OES_shader_multisample_interpolation", behaviorString); - updateExtensionBehavior(line, "GL_OES_texture_storage_multisample_2d_array", behaviorString); - updateExtensionBehavior(line, "GL_EXT_geometry_shader", behaviorString); - updateExtensionBehavior(line, "GL_EXT_gpu_shader5", behaviorString); - updateExtensionBehavior(line, "GL_EXT_primitive_bounding_box", behaviorString); - updateExtensionBehavior(line, "GL_EXT_shader_io_blocks", behaviorString); - updateExtensionBehavior(line, "GL_EXT_tessellation_shader", behaviorString); - updateExtensionBehavior(line, "GL_EXT_texture_buffer", behaviorString); - updateExtensionBehavior(line, "GL_EXT_texture_cube_map_array", behaviorString); - } - // geometry to io_blocks - else if (strcmp(extension, "GL_EXT_geometry_shader") == 0) - updateExtensionBehavior(line, "GL_EXT_shader_io_blocks", behaviorString); - else if (strcmp(extension, "GL_OES_geometry_shader") == 0) - updateExtensionBehavior(line, "GL_OES_shader_io_blocks", behaviorString); - // tessellation to io_blocks - else if (strcmp(extension, "GL_EXT_tessellation_shader") == 0) - updateExtensionBehavior(line, "GL_EXT_shader_io_blocks", behaviorString); - else if (strcmp(extension, "GL_OES_tessellation_shader") == 0) - 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); - else if (strcmp(extension, "GL_NV_shader_subgroup_partitioned") == 0) - updateExtensionBehavior(line, "GL_KHR_shader_subgroup_basic", behaviorString); - else if (strcmp(extension, "GL_EXT_buffer_reference2") == 0 || - strcmp(extension, "GL_EXT_buffer_reference_uvec2") == 0) - updateExtensionBehavior(line, "GL_EXT_buffer_reference", behaviorString); - else if (strcmp(extension, "GL_NV_integer_cooperative_matrix") == 0) - updateExtensionBehavior(line, "GL_NV_cooperative_matrix", behaviorString); - // subgroup extended types to explicit types - else if (strcmp(extension, "GL_EXT_shader_subgroup_extended_types_int8") == 0) - updateExtensionBehavior(line, "GL_EXT_shader_explicit_arithmetic_types_int8", behaviorString); - else if (strcmp(extension, "GL_EXT_shader_subgroup_extended_types_int16") == 0) - updateExtensionBehavior(line, "GL_EXT_shader_explicit_arithmetic_types_int16", behaviorString); - else if (strcmp(extension, "GL_EXT_shader_subgroup_extended_types_int64") == 0) - updateExtensionBehavior(line, "GL_EXT_shader_explicit_arithmetic_types_int64", behaviorString); - else if (strcmp(extension, "GL_EXT_shader_subgroup_extended_types_float16") == 0) - updateExtensionBehavior(line, "GL_EXT_shader_explicit_arithmetic_types_float16", behaviorString); - - // see if we need to update the numeric features - else if (strcmp(extension, "GL_EXT_shader_explicit_arithmetic_types") == 0) - intermediate.updateNumericFeature(TNumericFeatures::shader_explicit_arithmetic_types, on); - else if (strcmp(extension, "GL_EXT_shader_explicit_arithmetic_types_int8") == 0) - intermediate.updateNumericFeature(TNumericFeatures::shader_explicit_arithmetic_types_int8, on); - else if (strcmp(extension, "GL_EXT_shader_explicit_arithmetic_types_int16") == 0) - intermediate.updateNumericFeature(TNumericFeatures::shader_explicit_arithmetic_types_int16, on); - else if (strcmp(extension, "GL_EXT_shader_explicit_arithmetic_types_int32") == 0) - intermediate.updateNumericFeature(TNumericFeatures::shader_explicit_arithmetic_types_int32, on); - else if (strcmp(extension, "GL_EXT_shader_explicit_arithmetic_types_int64") == 0) - intermediate.updateNumericFeature(TNumericFeatures::shader_explicit_arithmetic_types_int64, on); - else if (strcmp(extension, "GL_EXT_shader_explicit_arithmetic_types_float16") == 0) - intermediate.updateNumericFeature(TNumericFeatures::shader_explicit_arithmetic_types_float16, on); - else if (strcmp(extension, "GL_EXT_shader_explicit_arithmetic_types_float32") == 0) - intermediate.updateNumericFeature(TNumericFeatures::shader_explicit_arithmetic_types_float32, on); - else if (strcmp(extension, "GL_EXT_shader_explicit_arithmetic_types_float64") == 0) - intermediate.updateNumericFeature(TNumericFeatures::shader_explicit_arithmetic_types_float64, on); - else if (strcmp(extension, "GL_EXT_shader_implicit_conversions") == 0) - intermediate.updateNumericFeature(TNumericFeatures::shader_implicit_conversions, on); - else if (strcmp(extension, "GL_ARB_gpu_shader_fp64") == 0) - intermediate.updateNumericFeature(TNumericFeatures::gpu_shader_fp64, on); - else if (strcmp(extension, "GL_AMD_gpu_shader_int16") == 0) - intermediate.updateNumericFeature(TNumericFeatures::gpu_shader_int16, on); - else if (strcmp(extension, "GL_AMD_gpu_shader_half_float") == 0) - intermediate.updateNumericFeature(TNumericFeatures::gpu_shader_half_float, on); -} - -void TParseVersions::updateExtensionBehavior(const char* extension, TExtensionBehavior behavior) -{ - // Update the current behavior - if (strcmp(extension, "all") == 0) { - // special case for the 'all' extension; apply it to every extension present - if (behavior == EBhRequire || behavior == EBhEnable) { - error(getCurrentLoc(), "extension 'all' cannot have 'require' or 'enable' behavior", "#extension", ""); - return; - } else { - for (auto iter = extensionBehavior.begin(); iter != extensionBehavior.end(); ++iter) - iter->second = behavior; - } - } else { - // Do the update for this single extension - auto iter = extensionBehavior.find(TString(extension)); - if (iter == extensionBehavior.end()) { - switch (behavior) { - case EBhRequire: - error(getCurrentLoc(), "extension not supported:", "#extension", extension); - break; - case EBhEnable: - case EBhWarn: - case EBhDisable: - warn(getCurrentLoc(), "extension not supported:", "#extension", extension); - break; - default: - assert(0 && "unexpected behavior"); - } - - return; - } else { - if (iter->second == EBhDisablePartial) - warn(getCurrentLoc(), "extension is only partially supported:", "#extension", extension); - if (behavior != EBhDisable) - intermediate.addRequestedExtension(extension); - iter->second = behavior; - } - } -} - -// Check if extension is used with correct shader stage. -void TParseVersions::checkExtensionStage(const TSourceLoc& loc, const char * const extension) -{ - // GL_NV_mesh_shader extension is only allowed in task/mesh shaders - if (strcmp(extension, "GL_NV_mesh_shader") == 0) { - requireStage(loc, (EShLanguageMask)(EShLangTaskNVMask | EShLangMeshNVMask | EShLangFragmentMask), - "#extension GL_NV_mesh_shader"); - profileRequires(loc, ECoreProfile, 450, 0, "#extension GL_NV_mesh_shader"); - profileRequires(loc, EEsProfile, 320, 0, "#extension GL_NV_mesh_shader"); - } -} - -// Check if extension has additional requirements -void TParseVersions::extensionRequires(const TSourceLoc &loc, const char * const extension, const char *behaviorString) -{ - bool isEnabled = false; - if (!strcmp("require", behaviorString)) - isEnabled = true; - else if (!strcmp("enable", behaviorString)) - isEnabled = true; - - if (isEnabled) { - unsigned int minSpvVersion = 0; - auto iter = extensionMinSpv.find(TString(extension)); - if (iter != extensionMinSpv.end()) - minSpvVersion = iter->second; - requireSpv(loc, extension, minSpvVersion); - } -} - -// 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, EEsProfile, 300, nullptr, op); -} - -// Call for any operation needing GLSL double data-type support. -void TParseVersions::doubleCheck(const TSourceLoc& loc, const char* op) -{ - - //requireProfile(loc, ECoreProfile | ECompatibilityProfile, op); - if (language == EShLangVertex) { - const char* const f64_Extensions[] = {E_GL_ARB_gpu_shader_fp64, E_GL_ARB_vertex_attrib_64bit}; - profileRequires(loc, ECoreProfile | ECompatibilityProfile, 400, 2, f64_Extensions, op); - } else - profileRequires(loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader_fp64, op); -} - -// Call for any operation needing GLSL float16 data-type support. -void TParseVersions::float16Check(const TSourceLoc& loc, const char* op, bool builtIn) -{ - if (!builtIn) { - const char* const extensions[] = { - E_GL_AMD_gpu_shader_half_float, - E_GL_EXT_shader_explicit_arithmetic_types, - E_GL_EXT_shader_explicit_arithmetic_types_float16}; - requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, op); - } -} - -bool TParseVersions::float16Arithmetic() -{ - const char* const extensions[] = { - E_GL_AMD_gpu_shader_half_float, - E_GL_EXT_shader_explicit_arithmetic_types, - E_GL_EXT_shader_explicit_arithmetic_types_float16}; - return extensionsTurnedOn(sizeof(extensions)/sizeof(extensions[0]), extensions); -} - -bool TParseVersions::int16Arithmetic() -{ - const char* const extensions[] = { - E_GL_AMD_gpu_shader_int16, - E_GL_EXT_shader_explicit_arithmetic_types, - E_GL_EXT_shader_explicit_arithmetic_types_int16}; - return extensionsTurnedOn(sizeof(extensions)/sizeof(extensions[0]), extensions); -} - -bool TParseVersions::int8Arithmetic() -{ - const char* const extensions[] = { - E_GL_EXT_shader_explicit_arithmetic_types, - E_GL_EXT_shader_explicit_arithmetic_types_int8}; - return extensionsTurnedOn(sizeof(extensions)/sizeof(extensions[0]), extensions); -} - -void TParseVersions::requireFloat16Arithmetic(const TSourceLoc& loc, const char* op, const char* featureDesc) -{ - TString combined; - combined = op; - combined += ": "; - combined += featureDesc; - - const char* const extensions[] = { - E_GL_AMD_gpu_shader_half_float, - E_GL_EXT_shader_explicit_arithmetic_types, - E_GL_EXT_shader_explicit_arithmetic_types_float16}; - requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, combined.c_str()); -} - -void TParseVersions::requireInt16Arithmetic(const TSourceLoc& loc, const char* op, const char* featureDesc) -{ - TString combined; - combined = op; - combined += ": "; - combined += featureDesc; - - const char* const extensions[] = { - E_GL_AMD_gpu_shader_int16, - E_GL_EXT_shader_explicit_arithmetic_types, - E_GL_EXT_shader_explicit_arithmetic_types_int16}; - requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, combined.c_str()); -} - -void TParseVersions::requireInt8Arithmetic(const TSourceLoc& loc, const char* op, const char* featureDesc) -{ - TString combined; - combined = op; - combined += ": "; - combined += featureDesc; - - const char* const extensions[] = { - E_GL_EXT_shader_explicit_arithmetic_types, - E_GL_EXT_shader_explicit_arithmetic_types_int8}; - requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, combined.c_str()); -} - -void TParseVersions::float16ScalarVectorCheck(const TSourceLoc& loc, const char* op, bool builtIn) -{ - if (!builtIn) { - const char* const extensions[] = { - E_GL_AMD_gpu_shader_half_float, - E_GL_EXT_shader_16bit_storage, - E_GL_EXT_shader_explicit_arithmetic_types, - E_GL_EXT_shader_explicit_arithmetic_types_float16}; - requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, 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_EXT_shader_explicit_arithmetic_types, - E_GL_EXT_shader_explicit_arithmetic_types_float32}; - requireExtensions(loc, 2, extensions, 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_EXT_shader_explicit_arithmetic_types, - E_GL_EXT_shader_explicit_arithmetic_types_float64}; - requireExtensions(loc, 2, extensions, op); - requireProfile(loc, ECoreProfile | ECompatibilityProfile, op); - profileRequires(loc, ECoreProfile | ECompatibilityProfile, 400, 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_EXT_shader_explicit_arithmetic_types, - E_GL_EXT_shader_explicit_arithmetic_types_int8}; - requireExtensions(loc, 2, extensions, op); - } -} - -// 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 | ECompatibilityProfile, 400, nullptr, op); - } -} - -// Call for any operation needing GLSL explicit int16 data-type support. -void TParseVersions::explicitInt16Check(const TSourceLoc& loc, const char* op, bool builtIn) -{ - if (! builtIn) { - const char* const extensions[] = { - E_GL_AMD_gpu_shader_int16, - E_GL_EXT_shader_explicit_arithmetic_types, - E_GL_EXT_shader_explicit_arithmetic_types_int16}; - requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, op); - } -} - -void TParseVersions::int16ScalarVectorCheck(const TSourceLoc& loc, const char* op, bool builtIn) -{ - if (! builtIn) { - const char* const extensions[] = { - E_GL_AMD_gpu_shader_int16, - E_GL_EXT_shader_16bit_storage, - E_GL_EXT_shader_explicit_arithmetic_types, - E_GL_EXT_shader_explicit_arithmetic_types_int16}; - requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, op); - } -} - -void TParseVersions::int8ScalarVectorCheck(const TSourceLoc& loc, const char* op, bool builtIn) -{ - if (! builtIn) { - const char* const extensions[] = { - E_GL_EXT_shader_8bit_storage, - E_GL_EXT_shader_explicit_arithmetic_types, - E_GL_EXT_shader_explicit_arithmetic_types_int8}; - requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, 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_EXT_shader_explicit_arithmetic_types, - E_GL_EXT_shader_explicit_arithmetic_types_int32}; - requireExtensions(loc, 2, extensions, 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_EXT_shader_explicit_arithmetic_types, - E_GL_EXT_shader_explicit_arithmetic_types_int64}; - requireExtensions(loc, 3, extensions, op); - requireProfile(loc, ECoreProfile | ECompatibilityProfile, op); - profileRequires(loc, ECoreProfile | ECompatibilityProfile, 400, nullptr, op); - } -} - -void TParseVersions::fcoopmatCheck(const TSourceLoc& loc, const char* op, bool builtIn) -{ - if (!builtIn) { - const char* const extensions[] = {E_GL_NV_cooperative_matrix}; - requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, op); - } -} - -void TParseVersions::intcoopmatCheck(const TSourceLoc& loc, const char* op, bool builtIn) -{ - if (!builtIn) { - const char* const extensions[] = {E_GL_NV_integer_cooperative_matrix}; - requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, op); - } -} -#endif // GLSLANG_WEB -// Call for any operation removed because SPIR-V is in use. -void TParseVersions::spvRemoved(const TSourceLoc& loc, const char* op) -{ - if (spvVersion.spv != 0) - error(loc, "not allowed when generating SPIR-V", op, ""); -} - -// Call for any operation removed because Vulkan SPIR-V is being generated. -void TParseVersions::vulkanRemoved(const TSourceLoc& loc, const char* op) -{ - if (spvVersion.vulkan > 0 && !spvVersion.vulkanRelaxed) - error(loc, "not allowed when using GLSL for Vulkan", op, ""); -} - -// Call for any operation that requires Vulkan. -void TParseVersions::requireVulkan(const TSourceLoc& loc, const char* op) -{ -#ifndef GLSLANG_WEB - if (spvVersion.vulkan == 0) - error(loc, "only allowed when using GLSL for Vulkan", op, ""); -#endif -} - -// Call for any operation that requires SPIR-V. -void TParseVersions::requireSpv(const TSourceLoc& loc, const char* op) -{ -#ifndef GLSLANG_WEB - if (spvVersion.spv == 0) - error(loc, "only allowed when generating SPIR-V", op, ""); -#endif -} -void TParseVersions::requireSpv(const TSourceLoc& loc, const char *op, unsigned int version) -{ -#ifndef GLSLANG_WEB - if (spvVersion.spv < version) - error(loc, "not supported for current targeted SPIR-V version", op, ""); -#endif -} - -} // end namespace glslang diff --git a/deps/glslang/glslang/MachineIndependent/Versions.h b/deps/glslang/glslang/MachineIndependent/Versions.h deleted file mode 100644 index 96a6e1fc..00000000 --- a/deps/glslang/glslang/MachineIndependent/Versions.h +++ /dev/null @@ -1,347 +0,0 @@ -// -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2012-2013 LunarG, Inc. -// Copyright (C) 2017 ARM Limited. -// Copyright (C) 2015-2018 Google, Inc. -// Modifications Copyright (C) 2020 Advanced Micro Devices, 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: -// -// 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 _VERSIONS_INCLUDED_ -#define _VERSIONS_INCLUDED_ - -#define LAST_ELEMENT_MARKER(x) x - -// -// Help manage multiple profiles, versions, extensions etc. -// - -// -// Profiles are set up for masking operations, so queries can be done on multiple -// profiles at the same time. -// -// Don't maintain an ordinal set of enums (0,1,2,3...) to avoid all possible -// defects from mixing the two different forms. -// -typedef enum : unsigned { - EBadProfile = 0, - ENoProfile = (1 << 0), // only for desktop, before profiles showed up - ECoreProfile = (1 << 1), - ECompatibilityProfile = (1 << 2), - EEsProfile = (1 << 3), - LAST_ELEMENT_MARKER(EProfileCount), -} EProfile; - -namespace glslang { - -// -// Map from profile enum to externally readable text name. -// -inline const char* ProfileName(EProfile profile) -{ - switch (profile) { - case ENoProfile: return "none"; - case ECoreProfile: return "core"; - case ECompatibilityProfile: return "compatibility"; - case EEsProfile: return "es"; - default: return "unknown profile"; - } -} - -// -// What source rules, validation rules, target language, etc. are needed or -// 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), vulkanGlsl(0), vulkan(0), openGl(0), vulkanRelaxed(false) {} - 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" - bool vulkanRelaxed; // relax changes to GLSL for Vulkan, allowing some GL-specific to be compiled to Vulkan SPIR-V target -}; - -// -// The behaviors from the GLSL "#extension extension_name : behavior" -// -typedef enum { - EBhMissing = 0, - EBhRequire, - EBhEnable, - EBhWarn, - EBhDisable, - EBhDisablePartial // use as initial state of an extension that is only partially implemented -} TExtensionBehavior; - -// -// Symbolic names for extensions. Strings may be directly used when calling the -// functions, but better to have the compiler do spelling checks. -// -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_YUV_target = "GL_EXT_YUV_target"; -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"; -const char* const E_GL_ARB_shading_language_420pack = "GL_ARB_shading_language_420pack"; -const char* const E_GL_ARB_texture_gather = "GL_ARB_texture_gather"; -const char* const E_GL_ARB_gpu_shader5 = "GL_ARB_gpu_shader5"; -const char* const E_GL_ARB_separate_shader_objects = "GL_ARB_separate_shader_objects"; -const char* const E_GL_ARB_compute_shader = "GL_ARB_compute_shader"; -const char* const E_GL_ARB_tessellation_shader = "GL_ARB_tessellation_shader"; -const char* const E_GL_ARB_enhanced_layouts = "GL_ARB_enhanced_layouts"; -const char* const E_GL_ARB_texture_cube_map_array = "GL_ARB_texture_cube_map_array"; -const char* const E_GL_ARB_texture_multisample = "GL_ARB_texture_multisample"; -const char* const E_GL_ARB_shader_texture_lod = "GL_ARB_shader_texture_lod"; -const char* const E_GL_ARB_explicit_attrib_location = "GL_ARB_explicit_attrib_location"; -const char* const E_GL_ARB_explicit_uniform_location = "GL_ARB_explicit_uniform_location"; -const char* const E_GL_ARB_shader_image_load_store = "GL_ARB_shader_image_load_store"; -const char* const E_GL_ARB_shader_atomic_counters = "GL_ARB_shader_atomic_counters"; -const char* const E_GL_ARB_shader_atomic_counter_ops = "GL_ARB_shader_atomic_counter_ops"; -const char* const E_GL_ARB_shader_draw_parameters = "GL_ARB_shader_draw_parameters"; -const char* const E_GL_ARB_shader_group_vote = "GL_ARB_shader_group_vote"; -const char* const E_GL_ARB_derivative_control = "GL_ARB_derivative_control"; -const char* const E_GL_ARB_shader_texture_image_samples = "GL_ARB_shader_texture_image_samples"; -const char* const E_GL_ARB_viewport_array = "GL_ARB_viewport_array"; -const char* const E_GL_ARB_gpu_shader_int64 = "GL_ARB_gpu_shader_int64"; -const char* const E_GL_ARB_gpu_shader_fp64 = "GL_ARB_gpu_shader_fp64"; -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_ARB_fragment_shader_interlock = "GL_ARB_fragment_shader_interlock"; -const char* const E_GL_ARB_shader_clock = "GL_ARB_shader_clock"; -const char* const E_GL_ARB_uniform_buffer_object = "GL_ARB_uniform_buffer_object"; -const char* const E_GL_ARB_sample_shading = "GL_ARB_sample_shading"; -const char* const E_GL_ARB_shader_bit_encoding = "GL_ARB_shader_bit_encoding"; -const char* const E_GL_ARB_shader_image_size = "GL_ARB_shader_image_size"; -const char* const E_GL_ARB_shader_storage_buffer_object = "GL_ARB_shader_storage_buffer_object"; -const char* const E_GL_ARB_shading_language_packing = "GL_ARB_shading_language_packing"; -const char* const E_GL_ARB_texture_query_lod = "GL_ARB_texture_query_lod"; -const char* const E_GL_ARB_vertex_attrib_64bit = "GL_ARB_vertex_attrib_64bit"; -const char* const E_GL_ARB_draw_instanced = "GL_ARB_draw_instanced"; -const char* const E_GL_ARB_fragment_coord_conventions = "GL_ARB_fragment_coord_conventions"; - -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_KHR_memory_scope_semantics = "GL_KHR_memory_scope_semantics"; - -const char* const E_GL_EXT_shader_atomic_int64 = "GL_EXT_shader_atomic_int64"; - -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"; - -const char* const E_GL_EXT_shader_16bit_storage = "GL_EXT_shader_16bit_storage"; -const char* const E_GL_EXT_shader_8bit_storage = "GL_EXT_shader_8bit_storage"; - - -// 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"; -const char* const E_GL_EXT_samplerless_texture_functions = "GL_EXT_samplerless_texture_functions"; -const char* const E_GL_EXT_scalar_block_layout = "GL_EXT_scalar_block_layout"; -const char* const E_GL_EXT_fragment_invocation_density = "GL_EXT_fragment_invocation_density"; -const char* const E_GL_EXT_buffer_reference = "GL_EXT_buffer_reference"; -const char* const E_GL_EXT_buffer_reference2 = "GL_EXT_buffer_reference2"; -const char* const E_GL_EXT_buffer_reference_uvec2 = "GL_EXT_buffer_reference_uvec2"; -const char* const E_GL_EXT_demote_to_helper_invocation = "GL_EXT_demote_to_helper_invocation"; -const char* const E_GL_EXT_shader_realtime_clock = "GL_EXT_shader_realtime_clock"; -const char* const E_GL_EXT_debug_printf = "GL_EXT_debug_printf"; -const char* const E_GL_EXT_ray_tracing = "GL_EXT_ray_tracing"; -const char* const E_GL_EXT_ray_query = "GL_EXT_ray_query"; -const char* const E_GL_EXT_ray_flags_primitive_culling = "GL_EXT_ray_flags_primitive_culling"; -const char* const E_GL_EXT_blend_func_extended = "GL_EXT_blend_func_extended"; -const char* const E_GL_EXT_shader_implicit_conversions = "GL_EXT_shader_implicit_conversions"; -const char* const E_GL_EXT_fragment_shading_rate = "GL_EXT_fragment_shading_rate"; -const char* const E_GL_EXT_shader_image_int64 = "GL_EXT_shader_image_int64"; -const char* const E_GL_EXT_null_initializer = "GL_EXT_null_initializer"; -const char* const E_GL_EXT_shared_memory_block = "GL_EXT_shared_memory_block"; -const char* const E_GL_EXT_subgroup_uniform_control_flow = "GL_EXT_subgroup_uniform_control_flow"; -const char* const E_GL_EXT_spirv_intrinsics = "GL_EXT_spirv_intrinsics"; - -// 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"; -const char* const E_GL_GOOGLE_include_directive = "GL_GOOGLE_include_directive"; - -const char* const E_GL_AMD_shader_ballot = "GL_AMD_shader_ballot"; -const char* const E_GL_AMD_shader_trinary_minmax = "GL_AMD_shader_trinary_minmax"; -const char* const E_GL_AMD_shader_explicit_vertex_parameter = "GL_AMD_shader_explicit_vertex_parameter"; -const char* const E_GL_AMD_gcn_shader = "GL_AMD_gcn_shader"; -const char* const E_GL_AMD_gpu_shader_half_float = "GL_AMD_gpu_shader_half_float"; -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"; - -const char* const E_GL_INTEL_shader_integer_functions2 = "GL_INTEL_shader_integer_functions2"; - -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"; -const char* const E_GL_NV_shading_rate_image = "GL_NV_shading_rate_image"; -const char* const E_GL_NV_ray_tracing = "GL_NV_ray_tracing"; -const char* const E_GL_NV_ray_tracing_motion_blur = "GL_NV_ray_tracing_motion_blur"; -const char* const E_GL_NV_fragment_shader_barycentric = "GL_NV_fragment_shader_barycentric"; -const char* const E_GL_NV_compute_shader_derivatives = "GL_NV_compute_shader_derivatives"; -const char* const E_GL_NV_shader_texture_footprint = "GL_NV_shader_texture_footprint"; -const char* const E_GL_NV_mesh_shader = "GL_NV_mesh_shader"; - -// 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]); - -const char* const E_GL_NV_cooperative_matrix = "GL_NV_cooperative_matrix"; -const char* const E_GL_NV_shader_sm_builtins = "GL_NV_shader_sm_builtins"; -const char* const E_GL_NV_integer_cooperative_matrix = "GL_NV_integer_cooperative_matrix"; - -// AEP -const char* const E_GL_ANDROID_extension_pack_es31a = "GL_ANDROID_extension_pack_es31a"; -const char* const E_GL_KHR_blend_equation_advanced = "GL_KHR_blend_equation_advanced"; -const char* const E_GL_OES_sample_variables = "GL_OES_sample_variables"; -const char* const E_GL_OES_shader_image_atomic = "GL_OES_shader_image_atomic"; -const char* const E_GL_OES_shader_multisample_interpolation = "GL_OES_shader_multisample_interpolation"; -const char* const E_GL_OES_texture_storage_multisample_2d_array = "GL_OES_texture_storage_multisample_2d_array"; -const char* const E_GL_EXT_geometry_shader = "GL_EXT_geometry_shader"; -const char* const E_GL_EXT_geometry_point_size = "GL_EXT_geometry_point_size"; -const char* const E_GL_EXT_gpu_shader5 = "GL_EXT_gpu_shader5"; -const char* const E_GL_EXT_primitive_bounding_box = "GL_EXT_primitive_bounding_box"; -const char* const E_GL_EXT_shader_io_blocks = "GL_EXT_shader_io_blocks"; -const char* const E_GL_EXT_tessellation_shader = "GL_EXT_tessellation_shader"; -const char* const E_GL_EXT_tessellation_point_size = "GL_EXT_tessellation_point_size"; -const char* const E_GL_EXT_texture_buffer = "GL_EXT_texture_buffer"; -const char* const E_GL_EXT_texture_cube_map_array = "GL_EXT_texture_cube_map_array"; -const char* const E_GL_EXT_shader_integer_mix = "GL_EXT_shader_integer_mix"; - -// OES matching AEP -const char* const E_GL_OES_geometry_shader = "GL_OES_geometry_shader"; -const char* const E_GL_OES_geometry_point_size = "GL_OES_geometry_point_size"; -const char* const E_GL_OES_gpu_shader5 = "GL_OES_gpu_shader5"; -const char* const E_GL_OES_primitive_bounding_box = "GL_OES_primitive_bounding_box"; -const char* const E_GL_OES_shader_io_blocks = "GL_OES_shader_io_blocks"; -const char* const E_GL_OES_tessellation_shader = "GL_OES_tessellation_shader"; -const char* const E_GL_OES_tessellation_point_size = "GL_OES_tessellation_point_size"; -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"; - -// EXT -const char* const E_GL_EXT_shader_explicit_arithmetic_types = "GL_EXT_shader_explicit_arithmetic_types"; -const char* const E_GL_EXT_shader_explicit_arithmetic_types_int8 = "GL_EXT_shader_explicit_arithmetic_types_int8"; -const char* const E_GL_EXT_shader_explicit_arithmetic_types_int16 = "GL_EXT_shader_explicit_arithmetic_types_int16"; -const char* const E_GL_EXT_shader_explicit_arithmetic_types_int32 = "GL_EXT_shader_explicit_arithmetic_types_int32"; -const char* const E_GL_EXT_shader_explicit_arithmetic_types_int64 = "GL_EXT_shader_explicit_arithmetic_types_int64"; -const char* const E_GL_EXT_shader_explicit_arithmetic_types_float16 = "GL_EXT_shader_explicit_arithmetic_types_float16"; -const char* const E_GL_EXT_shader_explicit_arithmetic_types_float32 = "GL_EXT_shader_explicit_arithmetic_types_float32"; -const char* const E_GL_EXT_shader_explicit_arithmetic_types_float64 = "GL_EXT_shader_explicit_arithmetic_types_float64"; - -const char* const E_GL_EXT_shader_subgroup_extended_types_int8 = "GL_EXT_shader_subgroup_extended_types_int8"; -const char* const E_GL_EXT_shader_subgroup_extended_types_int16 = "GL_EXT_shader_subgroup_extended_types_int16"; -const char* const E_GL_EXT_shader_subgroup_extended_types_int64 = "GL_EXT_shader_subgroup_extended_types_int64"; -const char* const E_GL_EXT_shader_subgroup_extended_types_float16 = "GL_EXT_shader_subgroup_extended_types_float16"; -const char* const E_GL_EXT_terminate_invocation = "GL_EXT_terminate_invocation"; - -const char* const E_GL_EXT_shader_atomic_float = "GL_EXT_shader_atomic_float"; -const char* const E_GL_EXT_shader_atomic_float2 = "GL_EXT_shader_atomic_float2"; - -// Arrays of extensions for the above AEP duplications - -const char* const AEP_geometry_shader[] = { E_GL_EXT_geometry_shader, E_GL_OES_geometry_shader }; -const int Num_AEP_geometry_shader = sizeof(AEP_geometry_shader)/sizeof(AEP_geometry_shader[0]); - -const char* const AEP_geometry_point_size[] = { E_GL_EXT_geometry_point_size, E_GL_OES_geometry_point_size }; -const int Num_AEP_geometry_point_size = sizeof(AEP_geometry_point_size)/sizeof(AEP_geometry_point_size[0]); - -const char* const AEP_gpu_shader5[] = { E_GL_EXT_gpu_shader5, E_GL_OES_gpu_shader5 }; -const int Num_AEP_gpu_shader5 = sizeof(AEP_gpu_shader5)/sizeof(AEP_gpu_shader5[0]); - -const char* const AEP_primitive_bounding_box[] = { E_GL_EXT_primitive_bounding_box, E_GL_OES_primitive_bounding_box }; -const int Num_AEP_primitive_bounding_box = sizeof(AEP_primitive_bounding_box)/sizeof(AEP_primitive_bounding_box[0]); - -const char* const AEP_shader_io_blocks[] = { E_GL_EXT_shader_io_blocks, E_GL_OES_shader_io_blocks }; -const int Num_AEP_shader_io_blocks = sizeof(AEP_shader_io_blocks)/sizeof(AEP_shader_io_blocks[0]); - -const char* const AEP_tessellation_shader[] = { E_GL_EXT_tessellation_shader, E_GL_OES_tessellation_shader }; -const int Num_AEP_tessellation_shader = sizeof(AEP_tessellation_shader)/sizeof(AEP_tessellation_shader[0]); - -const char* const AEP_tessellation_point_size[] = { E_GL_EXT_tessellation_point_size, E_GL_OES_tessellation_point_size }; -const int Num_AEP_tessellation_point_size = sizeof(AEP_tessellation_point_size)/sizeof(AEP_tessellation_point_size[0]); - -const char* const AEP_texture_buffer[] = { E_GL_EXT_texture_buffer, E_GL_OES_texture_buffer }; -const int Num_AEP_texture_buffer = sizeof(AEP_texture_buffer)/sizeof(AEP_texture_buffer[0]); - -const char* const AEP_texture_cube_map_array[] = { E_GL_EXT_texture_cube_map_array, E_GL_OES_texture_cube_map_array }; -const int Num_AEP_texture_cube_map_array = sizeof(AEP_texture_cube_map_array)/sizeof(AEP_texture_cube_map_array[0]); - -} // end namespace glslang - -#endif // _VERSIONS_INCLUDED_ diff --git a/deps/glslang/glslang/MachineIndependent/attribute.cpp b/deps/glslang/glslang/MachineIndependent/attribute.cpp deleted file mode 100644 index df7fdc2a..00000000 --- a/deps/glslang/glslang/MachineIndependent/attribute.cpp +++ /dev/null @@ -1,371 +0,0 @@ -// -// Copyright (C) 2017 LunarG, Inc. -// Copyright (C) 2018 Google, Inc. -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// Neither the name of Google, Inc., nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -// - -#ifndef GLSLANG_WEB - -#include "attribute.h" -#include "../Include/intermediate.h" -#include "ParseHelper.h" - -namespace glslang { - -// extract integers out of attribute arguments stored in attribute aggregate -bool TAttributeArgs::getInt(int& value, int argNum) const -{ - const TConstUnion* intConst = getConstUnion(EbtInt, argNum); - - if (intConst == nullptr) - return false; - - value = intConst->getIConst(); - return true; -} - - -// extract strings out of attribute arguments stored in attribute aggregate. -// convert to lower case if converToLower is true (for case-insensitive compare convenience) -bool TAttributeArgs::getString(TString& value, int argNum, bool convertToLower) const -{ - const TConstUnion* stringConst = getConstUnion(EbtString, argNum); - - if (stringConst == nullptr) - return false; - - value = *stringConst->getSConst(); - - // Convenience. - if (convertToLower) - std::transform(value.begin(), value.end(), value.begin(), ::tolower); - - return true; -} - -// How many arguments were supplied? -int TAttributeArgs::size() const -{ - return args == nullptr ? 0 : (int)args->getSequence().size(); -} - -// Helper to get attribute const union. Returns nullptr on failure. -const TConstUnion* TAttributeArgs::getConstUnion(TBasicType basicType, int argNum) const -{ - if (args == nullptr) - return nullptr; - - if (argNum >= (int)args->getSequence().size()) - return nullptr; - - if (args->getSequence()[argNum]->getAsConstantUnion() == nullptr) - return nullptr; - - const TConstUnion* constVal = &args->getSequence()[argNum]->getAsConstantUnion()->getConstArray()[0]; - if (constVal == nullptr || constVal->getType() != basicType) - return nullptr; - - return constVal; -} - -// Implementation of TParseContext parts of attributes -TAttributeType TParseContext::attributeFromName(const TString& name) const -{ - if (name == "branch" || name == "dont_flatten") - return EatBranch; - else if (name == "flatten") - return EatFlatten; - else if (name == "unroll") - return EatUnroll; - else if (name == "loop" || name == "dont_unroll") - return EatLoop; - else if (name == "dependency_infinite") - return EatDependencyInfinite; - else if (name == "dependency_length") - return EatDependencyLength; - else if (name == "min_iterations") - return EatMinIterations; - else if (name == "max_iterations") - return EatMaxIterations; - else if (name == "iteration_multiple") - return EatIterationMultiple; - else if (name == "peel_count") - return EatPeelCount; - else if (name == "partial_count") - return EatPartialCount; - else if (name == "subgroup_uniform_control_flow") - return EatSubgroupUniformControlFlow; - else - return EatNone; -} - -// Make an initial leaf for the grammar from a no-argument attribute -TAttributes* TParseContext::makeAttributes(const TString& identifier) const -{ - TAttributes *attributes = nullptr; - attributes = NewPoolObject(attributes); - TAttributeArgs args = { attributeFromName(identifier), nullptr }; - attributes->push_back(args); - return attributes; -} - -// Make an initial leaf for the grammar from a one-argument attribute -TAttributes* TParseContext::makeAttributes(const TString& identifier, TIntermNode* node) const -{ - TAttributes *attributes = nullptr; - attributes = NewPoolObject(attributes); - - // for now, node is always a simple single expression, but other code expects - // a list, so make it so - TIntermAggregate* agg = intermediate.makeAggregate(node); - TAttributeArgs args = { attributeFromName(identifier), agg }; - attributes->push_back(args); - return attributes; -} - -// Merge two sets of attributes into a single set. -// The second argument is destructively consumed. -TAttributes* TParseContext::mergeAttributes(TAttributes* attr1, TAttributes* attr2) const -{ - attr1->splice(attr1->end(), *attr2); - return attr1; -} - -// -// Selection attributes -// -void TParseContext::handleSelectionAttributes(const TAttributes& attributes, TIntermNode* node) -{ - TIntermSelection* selection = node->getAsSelectionNode(); - if (selection == nullptr) - return; - - for (auto it = attributes.begin(); it != attributes.end(); ++it) { - if (it->size() > 0) { - warn(node->getLoc(), "attribute with arguments not recognized, skipping", "", ""); - continue; - } - - switch (it->name) { - case EatFlatten: - selection->setFlatten(); - break; - case EatBranch: - selection->setDontFlatten(); - break; - default: - warn(node->getLoc(), "attribute does not apply to a selection", "", ""); - break; - } - } -} - -// -// Switch attributes -// -void TParseContext::handleSwitchAttributes(const TAttributes& attributes, TIntermNode* node) -{ - TIntermSwitch* selection = node->getAsSwitchNode(); - if (selection == nullptr) - return; - - for (auto it = attributes.begin(); it != attributes.end(); ++it) { - if (it->size() > 0) { - warn(node->getLoc(), "attribute with arguments not recognized, skipping", "", ""); - continue; - } - - switch (it->name) { - case EatFlatten: - selection->setFlatten(); - break; - case EatBranch: - selection->setDontFlatten(); - break; - default: - warn(node->getLoc(), "attribute does not apply to a switch", "", ""); - break; - } - } -} - -// -// Loop attributes -// -void TParseContext::handleLoopAttributes(const TAttributes& attributes, TIntermNode* node) -{ - TIntermLoop* loop = node->getAsLoopNode(); - if (loop == nullptr) { - // the actual loop might be part of a sequence - TIntermAggregate* agg = node->getAsAggregate(); - if (agg == nullptr) - return; - for (auto it = agg->getSequence().begin(); it != agg->getSequence().end(); ++it) { - loop = (*it)->getAsLoopNode(); - if (loop != nullptr) - break; - } - if (loop == nullptr) - return; - } - - for (auto it = attributes.begin(); it != attributes.end(); ++it) { - - const auto noArgument = [&](const char* feature) { - if (it->size() > 0) { - warn(node->getLoc(), "expected no arguments", feature, ""); - return false; - } - return true; - }; - - const auto positiveSignedArgument = [&](const char* feature, int& value) { - if (it->size() == 1 && it->getInt(value)) { - if (value <= 0) { - error(node->getLoc(), "must be positive", feature, ""); - return false; - } - } else { - warn(node->getLoc(), "expected a single integer argument", feature, ""); - return false; - } - return true; - }; - - const auto unsignedArgument = [&](const char* feature, unsigned int& uiValue) { - int value; - if (!(it->size() == 1 && it->getInt(value))) { - warn(node->getLoc(), "expected a single integer argument", feature, ""); - return false; - } - uiValue = (unsigned int)value; - return true; - }; - - const auto positiveUnsignedArgument = [&](const char* feature, unsigned int& uiValue) { - int value; - if (it->size() == 1 && it->getInt(value)) { - if (value == 0) { - error(node->getLoc(), "must be greater than or equal to 1", feature, ""); - return false; - } - } else { - warn(node->getLoc(), "expected a single integer argument", feature, ""); - return false; - } - uiValue = (unsigned int)value; - return true; - }; - - const auto spirv14 = [&](const char* feature) { - if (spvVersion.spv > 0 && spvVersion.spv < EShTargetSpv_1_4) - warn(node->getLoc(), "attribute requires a SPIR-V 1.4 target-env", feature, ""); - }; - - int value = 0; - unsigned uiValue = 0; - switch (it->name) { - case EatUnroll: - if (noArgument("unroll")) - loop->setUnroll(); - break; - case EatLoop: - if (noArgument("dont_unroll")) - loop->setDontUnroll(); - break; - case EatDependencyInfinite: - if (noArgument("dependency_infinite")) - loop->setLoopDependency(TIntermLoop::dependencyInfinite); - break; - case EatDependencyLength: - if (positiveSignedArgument("dependency_length", value)) - loop->setLoopDependency(value); - break; - case EatMinIterations: - spirv14("min_iterations"); - if (unsignedArgument("min_iterations", uiValue)) - loop->setMinIterations(uiValue); - break; - case EatMaxIterations: - spirv14("max_iterations"); - if (unsignedArgument("max_iterations", uiValue)) - loop->setMaxIterations(uiValue); - break; - case EatIterationMultiple: - spirv14("iteration_multiple"); - if (positiveUnsignedArgument("iteration_multiple", uiValue)) - loop->setIterationMultiple(uiValue); - break; - case EatPeelCount: - spirv14("peel_count"); - if (unsignedArgument("peel_count", uiValue)) - loop->setPeelCount(uiValue); - break; - case EatPartialCount: - spirv14("partial_count"); - if (unsignedArgument("partial_count", uiValue)) - loop->setPartialCount(uiValue); - break; - default: - warn(node->getLoc(), "attribute does not apply to a loop", "", ""); - break; - } - } -} - - -// -// Function attributes -// -void TParseContext::handleFunctionAttributes(const TSourceLoc& loc, const TAttributes& attributes) -{ - for (auto it = attributes.begin(); it != attributes.end(); ++it) { - if (it->size() > 0) { - warn(loc, "attribute with arguments not recognized, skipping", "", ""); - continue; - } - - switch (it->name) { - case EatSubgroupUniformControlFlow: - intermediate.setSubgroupUniformControlFlow(); - break; - default: - warn(loc, "attribute does not apply to a function", "", ""); - break; - } - } -} - -} // end namespace glslang - -#endif // GLSLANG_WEB diff --git a/deps/glslang/glslang/MachineIndependent/attribute.h b/deps/glslang/glslang/MachineIndependent/attribute.h deleted file mode 100644 index c5b29176..00000000 --- a/deps/glslang/glslang/MachineIndependent/attribute.h +++ /dev/null @@ -1,150 +0,0 @@ -// -// Copyright (C) 2017 LunarG, Inc. -// Copyright (C) 2018 Google, Inc. -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// Neither the name of 3Dlabs Inc. Ltd. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -// - -#ifndef _ATTRIBUTE_INCLUDED_ -#define _ATTRIBUTE_INCLUDED_ - -#include "../Include/Common.h" -#include "../Include/ConstantUnion.h" - -namespace glslang { - - enum TAttributeType { - EatNone, - EatAllow_uav_condition, - EatBranch, - EatCall, - EatDomain, - EatEarlyDepthStencil, - EatFastOpt, - EatFlatten, - EatForceCase, - EatInstance, - EatMaxTessFactor, - EatNumThreads, - EatMaxVertexCount, - EatOutputControlPoints, - EatOutputTopology, - EatPartitioning, - EatPatchConstantFunc, - EatPatchSize, - EatUnroll, - EatLoop, - EatBinding, - EatGlobalBinding, - EatLocation, - EatInputAttachment, - EatBuiltIn, - EatPushConstant, - EatConstantId, - EatDependencyInfinite, - EatDependencyLength, - EatMinIterations, - EatMaxIterations, - EatIterationMultiple, - EatPeelCount, - EatPartialCount, - EatFormatRgba32f, - EatFormatRgba16f, - EatFormatR32f, - EatFormatRgba8, - EatFormatRgba8Snorm, - EatFormatRg32f, - EatFormatRg16f, - EatFormatR11fG11fB10f, - EatFormatR16f, - EatFormatRgba16, - EatFormatRgb10A2, - EatFormatRg16, - EatFormatRg8, - EatFormatR16, - EatFormatR8, - EatFormatRgba16Snorm, - EatFormatRg16Snorm, - EatFormatRg8Snorm, - EatFormatR16Snorm, - EatFormatR8Snorm, - EatFormatRgba32i, - EatFormatRgba16i, - EatFormatRgba8i, - EatFormatR32i, - EatFormatRg32i, - EatFormatRg16i, - EatFormatRg8i, - EatFormatR16i, - EatFormatR8i, - EatFormatRgba32ui, - EatFormatRgba16ui, - EatFormatRgba8ui, - EatFormatR32ui, - EatFormatRgb10a2ui, - EatFormatRg32ui, - EatFormatRg16ui, - EatFormatRg8ui, - EatFormatR16ui, - EatFormatR8ui, - EatFormatUnknown, - EatNonWritable, - EatNonReadable, - EatSubgroupUniformControlFlow, - }; - - class TIntermAggregate; - - struct TAttributeArgs { - TAttributeType name; - const TIntermAggregate* args; - - // Obtain attribute as integer - // Return false if it cannot be obtained - bool getInt(int& value, int argNum = 0) const; - - // Obtain attribute as string, with optional to-lower transform - // Return false if it cannot be obtained - bool getString(TString& value, int argNum = 0, bool convertToLower = true) const; - - // How many arguments were provided to the attribute? - int size() const; - - protected: - const TConstUnion* getConstUnion(TBasicType basicType, int argNum) const; - }; - - typedef TList TAttributes; - -} // end namespace glslang - -#endif // _ATTRIBUTE_INCLUDED_ diff --git a/deps/glslang/glslang/MachineIndependent/gl_types.h b/deps/glslang/glslang/MachineIndependent/gl_types.h deleted file mode 100644 index d6c93937..00000000 --- a/deps/glslang/glslang/MachineIndependent/gl_types.h +++ /dev/null @@ -1,218 +0,0 @@ -/* -** Copyright (c) 2013 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ - -#pragma once - -#define GL_FLOAT 0x1406 -#define GL_FLOAT_VEC2 0x8B50 -#define GL_FLOAT_VEC3 0x8B51 -#define GL_FLOAT_VEC4 0x8B52 - -#define GL_DOUBLE 0x140A -#define GL_DOUBLE_VEC2 0x8FFC -#define GL_DOUBLE_VEC3 0x8FFD -#define GL_DOUBLE_VEC4 0x8FFE - -#define GL_INT 0x1404 -#define GL_INT_VEC2 0x8B53 -#define GL_INT_VEC3 0x8B54 -#define GL_INT_VEC4 0x8B55 - -#define GL_UNSIGNED_INT 0x1405 -#define GL_UNSIGNED_INT_VEC2 0x8DC6 -#define GL_UNSIGNED_INT_VEC3 0x8DC7 -#define GL_UNSIGNED_INT_VEC4 0x8DC8 - -#define GL_INT64_ARB 0x140E -#define GL_INT64_VEC2_ARB 0x8FE9 -#define GL_INT64_VEC3_ARB 0x8FEA -#define GL_INT64_VEC4_ARB 0x8FEB - -#define GL_UNSIGNED_INT64_ARB 0x140F -#define GL_UNSIGNED_INT64_VEC2_ARB 0x8FF5 -#define GL_UNSIGNED_INT64_VEC3_ARB 0x8FF6 -#define GL_UNSIGNED_INT64_VEC4_ARB 0x8FF7 -#define GL_UNSIGNED_INT16_VEC2_NV 0x8FF1 -#define GL_UNSIGNED_INT16_VEC3_NV 0x8FF2 -#define GL_UNSIGNED_INT16_VEC4_NV 0x8FF3 - -#define GL_INT16_NV 0x8FE4 -#define GL_INT16_VEC2_NV 0x8FE5 -#define GL_INT16_VEC3_NV 0x8FE6 -#define GL_INT16_VEC4_NV 0x8FE7 - -#define GL_BOOL 0x8B56 -#define GL_BOOL_VEC2 0x8B57 -#define GL_BOOL_VEC3 0x8B58 -#define GL_BOOL_VEC4 0x8B59 - -#define GL_FLOAT_MAT2 0x8B5A -#define GL_FLOAT_MAT3 0x8B5B -#define GL_FLOAT_MAT4 0x8B5C -#define GL_FLOAT_MAT2x3 0x8B65 -#define GL_FLOAT_MAT2x4 0x8B66 -#define GL_FLOAT_MAT3x2 0x8B67 -#define GL_FLOAT_MAT3x4 0x8B68 -#define GL_FLOAT_MAT4x2 0x8B69 -#define GL_FLOAT_MAT4x3 0x8B6A - -#define GL_DOUBLE_MAT2 0x8F46 -#define GL_DOUBLE_MAT3 0x8F47 -#define GL_DOUBLE_MAT4 0x8F48 -#define GL_DOUBLE_MAT2x3 0x8F49 -#define GL_DOUBLE_MAT2x4 0x8F4A -#define GL_DOUBLE_MAT3x2 0x8F4B -#define GL_DOUBLE_MAT3x4 0x8F4C -#define GL_DOUBLE_MAT4x2 0x8F4D -#define GL_DOUBLE_MAT4x3 0x8F4E - -// Those constants are borrowed from extension NV_gpu_shader5 -#define GL_FLOAT16_NV 0x8FF8 -#define GL_FLOAT16_VEC2_NV 0x8FF9 -#define GL_FLOAT16_VEC3_NV 0x8FFA -#define GL_FLOAT16_VEC4_NV 0x8FFB - -#define GL_FLOAT16_MAT2_AMD 0x91C5 -#define GL_FLOAT16_MAT3_AMD 0x91C6 -#define GL_FLOAT16_MAT4_AMD 0x91C7 -#define GL_FLOAT16_MAT2x3_AMD 0x91C8 -#define GL_FLOAT16_MAT2x4_AMD 0x91C9 -#define GL_FLOAT16_MAT3x2_AMD 0x91CA -#define GL_FLOAT16_MAT3x4_AMD 0x91CB -#define GL_FLOAT16_MAT4x2_AMD 0x91CC -#define GL_FLOAT16_MAT4x3_AMD 0x91CD - -#define GL_SAMPLER_1D 0x8B5D -#define GL_SAMPLER_2D 0x8B5E -#define GL_SAMPLER_3D 0x8B5F -#define GL_SAMPLER_CUBE 0x8B60 -#define GL_SAMPLER_BUFFER 0x8DC2 -#define GL_SAMPLER_1D_ARRAY 0x8DC0 -#define GL_SAMPLER_2D_ARRAY 0x8DC1 -#define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3 -#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 -#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 -#define GL_SAMPLER_1D_SHADOW 0x8B61 -#define GL_SAMPLER_2D_SHADOW 0x8B62 -#define GL_SAMPLER_2D_RECT 0x8B63 -#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64 -#define GL_SAMPLER_2D_MULTISAMPLE 0x9108 -#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B -#define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C -#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D -#define GL_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900C -#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB 0x900D - -#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 - -#define GL_INT_SAMPLER_1D 0x8DC9 -#define GL_INT_SAMPLER_2D 0x8DCA -#define GL_INT_SAMPLER_3D 0x8DCB -#define GL_INT_SAMPLER_CUBE 0x8DCC -#define GL_INT_SAMPLER_1D_ARRAY 0x8DCE -#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF -#define GL_INT_SAMPLER_2D_RECT 0x8DCD -#define GL_INT_SAMPLER_BUFFER 0x8DD0 -#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109 -#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C -#define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E -#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900E - -#define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1 -#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 -#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 -#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 -#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6 -#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 -#define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8 -#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D -#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F -#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900F -#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A - -#define GL_IMAGE_1D 0x904C -#define GL_IMAGE_2D 0x904D -#define GL_IMAGE_3D 0x904E -#define GL_IMAGE_2D_RECT 0x904F -#define GL_IMAGE_CUBE 0x9050 -#define GL_IMAGE_BUFFER 0x9051 -#define GL_IMAGE_1D_ARRAY 0x9052 -#define GL_IMAGE_2D_ARRAY 0x9053 -#define GL_IMAGE_CUBE_MAP_ARRAY 0x9054 -#define GL_IMAGE_2D_MULTISAMPLE 0x9055 -#define GL_IMAGE_2D_MULTISAMPLE_ARRAY 0x9056 -#define GL_INT_IMAGE_1D 0x9057 -#define GL_INT_IMAGE_2D 0x9058 -#define GL_INT_IMAGE_3D 0x9059 -#define GL_INT_IMAGE_2D_RECT 0x905A -#define GL_INT_IMAGE_CUBE 0x905B -#define GL_INT_IMAGE_BUFFER 0x905C -#define GL_INT_IMAGE_1D_ARRAY 0x905D -#define GL_INT_IMAGE_2D_ARRAY 0x905E -#define GL_INT_IMAGE_CUBE_MAP_ARRAY 0x905F -#define GL_INT_IMAGE_2D_MULTISAMPLE 0x9060 -#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x9061 -#define GL_UNSIGNED_INT_IMAGE_1D 0x9062 -#define GL_UNSIGNED_INT_IMAGE_2D 0x9063 -#define GL_UNSIGNED_INT_IMAGE_3D 0x9064 -#define GL_UNSIGNED_INT_IMAGE_2D_RECT 0x9065 -#define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066 -#define GL_UNSIGNED_INT_IMAGE_BUFFER 0x9067 -#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY 0x9068 -#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069 -#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY 0x906A -#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE 0x906B -#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x906C - -#define GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB diff --git a/deps/glslang/glslang/MachineIndependent/glslang.m4 b/deps/glslang/glslang/MachineIndependent/glslang.m4 deleted file mode 100644 index 624add5a..00000000 --- a/deps/glslang/glslang/MachineIndependent/glslang.m4 +++ /dev/null @@ -1,4397 +0,0 @@ -// -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2012-2013 LunarG, Inc. -// Copyright (C) 2017 ARM Limited. -// Copyright (C) 2015-2019 Google, Inc. -// Modifications Copyright (C) 2020 Advanced Micro Devices, 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: -// -// 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. -// - -// -// Do not edit the .y file, only edit the .m4 file. -// The .y bison file is not a source file, it is a derivative of the .m4 file. -// The m4 file needs to be processed by m4 to generate the .y bison file. -// -// Code sandwiched between a pair: -// -// GLSLANG_WEB_EXCLUDE_ON -// ... -// ... -// ... -// GLSLANG_WEB_EXCLUDE_OFF -// -// Will be excluded from the grammar when m4 is executed as: -// -// m4 -P -DGLSLANG_WEB -// -// It will be included when m4 is executed as: -// -// m4 -P -// - -m4_define(`GLSLANG_WEB_EXCLUDE_ON', `m4_ifdef(`GLSLANG_WEB', `m4_divert(`-1')')') -m4_define(`GLSLANG_WEB_EXCLUDE_OFF', `m4_ifdef(`GLSLANG_WEB', `m4_divert')') - -/** - * This is bison grammar and productions for parsing all versions of the - * GLSL shading languages. - */ -%{ - -/* 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; - -%} - -%define parse.error verbose - -%union { - 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; - glslang::TSpirvRequirement* spirvReq; - glslang::TSpirvInstruction* spirvInst; - glslang::TSpirvTypeParameters* spirvTypeParams; - }; - union { - glslang::TPublicType type; - glslang::TFunction* function; - glslang::TParameter param; - glslang::TTypeLoc typeLine; - glslang::TTypeList* typeList; - glslang::TArraySizes* arraySizes; - glslang::TIdentifierList* identifierList; - }; - glslang::TArraySizes* typeParameters; - } interm; -} - -%{ - -/* 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&); - -%} - -%parse-param {glslang::TParseContext* pParseContext} -%lex-param {parseContext} -%pure-parser // enable thread safety -%expect 1 // One shift reduce conflict because of if | else - -%token CONST BOOL INT UINT FLOAT -%token BVEC2 BVEC3 BVEC4 -%token IVEC2 IVEC3 IVEC4 -%token UVEC2 UVEC3 UVEC4 -%token VEC2 VEC3 VEC4 -%token MAT2 MAT3 MAT4 -%token MAT2X2 MAT2X3 MAT2X4 -%token MAT3X2 MAT3X3 MAT3X4 -%token MAT4X2 MAT4X3 MAT4X4 - -// combined image/sampler -%token SAMPLER2D SAMPLER3D SAMPLERCUBE SAMPLER2DSHADOW -%token SAMPLERCUBESHADOW SAMPLER2DARRAY -%token SAMPLER2DARRAYSHADOW ISAMPLER2D ISAMPLER3D ISAMPLERCUBE -%token ISAMPLER2DARRAY USAMPLER2D USAMPLER3D -%token USAMPLERCUBE USAMPLER2DARRAY - -// separate image/sampler -%token SAMPLER SAMPLERSHADOW -%token TEXTURE2D TEXTURE3D TEXTURECUBE TEXTURE2DARRAY -%token ITEXTURE2D ITEXTURE3D ITEXTURECUBE ITEXTURE2DARRAY -%token UTEXTURE2D UTEXTURE3D UTEXTURECUBE UTEXTURE2DARRAY - -GLSLANG_WEB_EXCLUDE_ON - -%token ATTRIBUTE VARYING -%token FLOAT16_T FLOAT32_T DOUBLE FLOAT64_T -%token INT64_T UINT64_T INT32_T UINT32_T INT16_T UINT16_T INT8_T UINT8_T -%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 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 DMAT2X2 DMAT2X3 DMAT2X4 -%token DMAT3X2 DMAT3X3 DMAT3X4 -%token DMAT4X2 DMAT4X3 DMAT4X4 -%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 -%token ACCSTRUCTNV -%token ACCSTRUCTEXT -%token RAYQUERYEXT -%token FCOOPMATNV ICOOPMATNV UCOOPMATNV - -// combined image/sampler -%token SAMPLERCUBEARRAY SAMPLERCUBEARRAYSHADOW -%token ISAMPLERCUBEARRAY USAMPLERCUBEARRAY -%token SAMPLER1D SAMPLER1DARRAY SAMPLER1DARRAYSHADOW ISAMPLER1D SAMPLER1DSHADOW -%token SAMPLER2DRECT SAMPLER2DRECTSHADOW ISAMPLER2DRECT USAMPLER2DRECT -%token SAMPLERBUFFER ISAMPLERBUFFER USAMPLERBUFFER -%token SAMPLER2DMS ISAMPLER2DMS USAMPLER2DMS -%token SAMPLER2DMSARRAY ISAMPLER2DMSARRAY USAMPLER2DMSARRAY -%token SAMPLEREXTERNALOES -%token SAMPLEREXTERNAL2DY2YEXT -%token ISAMPLER1DARRAY USAMPLER1D USAMPLER1DARRAY -%token F16SAMPLER1D F16SAMPLER2D F16SAMPLER3D F16SAMPLER2DRECT F16SAMPLERCUBE -%token F16SAMPLER1DARRAY F16SAMPLER2DARRAY F16SAMPLERCUBEARRAY -%token F16SAMPLERBUFFER F16SAMPLER2DMS F16SAMPLER2DMSARRAY -%token F16SAMPLER1DSHADOW F16SAMPLER2DSHADOW F16SAMPLER1DARRAYSHADOW F16SAMPLER2DARRAYSHADOW -%token F16SAMPLER2DRECTSHADOW F16SAMPLERCUBESHADOW F16SAMPLERCUBEARRAYSHADOW - -// images -%token IMAGE1D IIMAGE1D UIMAGE1D IMAGE2D IIMAGE2D -%token UIMAGE2D IMAGE3D IIMAGE3D UIMAGE3D -%token IMAGE2DRECT IIMAGE2DRECT UIMAGE2DRECT -%token IMAGECUBE IIMAGECUBE UIMAGECUBE -%token IMAGEBUFFER IIMAGEBUFFER UIMAGEBUFFER -%token IMAGE1DARRAY IIMAGE1DARRAY UIMAGE1DARRAY -%token IMAGE2DARRAY IIMAGE2DARRAY UIMAGE2DARRAY -%token IMAGECUBEARRAY IIMAGECUBEARRAY UIMAGECUBEARRAY -%token IMAGE2DMS IIMAGE2DMS UIMAGE2DMS -%token IMAGE2DMSARRAY IIMAGE2DMSARRAY UIMAGE2DMSARRAY - -%token F16IMAGE1D F16IMAGE2D F16IMAGE3D F16IMAGE2DRECT -%token F16IMAGECUBE F16IMAGE1DARRAY F16IMAGE2DARRAY F16IMAGECUBEARRAY -%token F16IMAGEBUFFER F16IMAGE2DMS F16IMAGE2DMSARRAY - -%token I64IMAGE1D U64IMAGE1D -%token I64IMAGE2D U64IMAGE2D -%token I64IMAGE3D U64IMAGE3D -%token I64IMAGE2DRECT U64IMAGE2DRECT -%token I64IMAGECUBE U64IMAGECUBE -%token I64IMAGEBUFFER U64IMAGEBUFFER -%token I64IMAGE1DARRAY U64IMAGE1DARRAY -%token I64IMAGE2DARRAY U64IMAGE2DARRAY -%token I64IMAGECUBEARRAY U64IMAGECUBEARRAY -%token I64IMAGE2DMS U64IMAGE2DMS -%token I64IMAGE2DMSARRAY U64IMAGE2DMSARRAY - -// texture without sampler -%token TEXTURECUBEARRAY ITEXTURECUBEARRAY UTEXTURECUBEARRAY -%token TEXTURE1D ITEXTURE1D UTEXTURE1D -%token TEXTURE1DARRAY ITEXTURE1DARRAY UTEXTURE1DARRAY -%token TEXTURE2DRECT ITEXTURE2DRECT UTEXTURE2DRECT -%token TEXTUREBUFFER ITEXTUREBUFFER UTEXTUREBUFFER -%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 - -// spirv intrinsics -%token SPIRV_INSTRUCTION SPIRV_EXECUTION_MODE SPIRV_EXECUTION_MODE_ID -%token SPIRV_DECORATE SPIRV_DECORATE_ID SPIRV_DECORATE_STRING -%token SPIRV_TYPE SPIRV_STORAGE_CLASS SPIRV_BY_REFERENCE SPIRV_LITERAL - -GLSLANG_WEB_EXCLUDE_OFF - -%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 -%token MOD_ASSIGN LEFT_ASSIGN RIGHT_ASSIGN AND_ASSIGN XOR_ASSIGN OR_ASSIGN -%token SUB_ASSIGN -%token STRING_LITERAL - -%token LEFT_PAREN RIGHT_PAREN LEFT_BRACKET RIGHT_BRACKET LEFT_BRACE RIGHT_BRACE DOT -%token COMMA COLON EQUAL SEMICOLON BANG DASH TILDE PLUS STAR SLASH PERCENT -%token LEFT_ANGLE RIGHT_ANGLE VERTICAL_BAR CARET AMPERSAND QUESTION - -%token INVARIANT -%token HIGH_PRECISION MEDIUM_PRECISION LOW_PRECISION PRECISION -%token PACKED RESOURCE SUPERP - -%token FLOATCONSTANT INTCONSTANT UINTCONSTANT BOOLCONSTANT -%token IDENTIFIER TYPE_NAME -%token CENTROID IN OUT INOUT -%token STRUCT VOID WHILE -%token BREAK CONTINUE DO ELSE FOR IF DISCARD RETURN SWITCH CASE DEFAULT -%token TERMINATE_INVOCATION -%token TERMINATE_RAY IGNORE_INTERSECTION -%token UNIFORM SHARED BUFFER -%token FLAT SMOOTH LAYOUT - -GLSLANG_WEB_EXCLUDE_ON -%token DOUBLECONSTANT INT16CONSTANT UINT16CONSTANT FLOAT16CONSTANT INT32CONSTANT UINT32CONSTANT -%token INT64CONSTANT UINT64CONSTANT -%token SUBROUTINE DEMOTE -%token PAYLOADNV PAYLOADINNV HITATTRNV CALLDATANV CALLDATAINNV -%token PAYLOADEXT PAYLOADINEXT HITATTREXT CALLDATAEXT CALLDATAINEXT -%token PATCH SAMPLE NONUNIFORM -%token COHERENT VOLATILE RESTRICT READONLY WRITEONLY DEVICECOHERENT QUEUEFAMILYCOHERENT WORKGROUPCOHERENT -%token SUBGROUPCOHERENT NONPRIVATE SHADERCALLCOHERENT -%token NOPERSPECTIVE EXPLICITINTERPAMD PERVERTEXNV PERPRIMITIVENV PERVIEWNV PERTASKNV -%token PRECISE -GLSLANG_WEB_EXCLUDE_OFF - -%type assignment_operator unary_operator -%type variable_identifier primary_expression postfix_expression -%type expression integer_expression assignment_expression -%type unary_expression multiplicative_expression additive_expression -%type relational_expression equality_expression -%type conditional_expression constant_expression -%type logical_or_expression logical_xor_expression logical_and_expression -%type shift_expression and_expression exclusive_or_expression inclusive_or_expression -%type function_call initializer condition conditionopt - -%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 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 single_declaration init_declarator_list - -%type parameter_declaration parameter_declarator parameter_type_specifier - -%type array_specifier -%type invariant_qualifier interpolation_qualifier storage_qualifier precision_qualifier -%type layout_qualifier layout_qualifier_id_list layout_qualifier_id - -%type type_parameter_specifier -%type type_parameter_specifier_opt -%type type_parameter_specifier_list - -%type type_qualifier fully_specified_type type_specifier -%type single_type_qualifier -%type type_specifier_nonarray -%type struct_specifier -%type struct_declarator -%type struct_declarator_list struct_declaration struct_declaration_list -%type block_structure -%type function_header function_declarator -%type function_header_with_parameters -%type function_call_header_with_parameters function_call_header_no_parameters function_call_generic function_prototype -%type function_call_or_method function_identifier function_call_header - -%type identifier_list - -GLSLANG_WEB_EXCLUDE_ON -%type precise_qualifier non_uniform_qualifier -%type type_name_list -%type attribute attribute_list single_attribute -%type demote_statement -%type initializer_list -%type spirv_requirements_list spirv_requirements_parameter -%type spirv_extension_list spirv_capability_list -%type spirv_execution_mode_qualifier -%type spirv_execution_mode_parameter_list spirv_execution_mode_parameter spirv_execution_mode_id_parameter_list -%type spirv_storage_class_qualifier -%type spirv_decorate_qualifier -%type spirv_decorate_parameter_list spirv_decorate_parameter -%type spirv_decorate_id_parameter_list -%type spirv_decorate_string_parameter_list -%type spirv_type_specifier -%type spirv_type_parameter_list spirv_type_parameter -%type spirv_instruction_qualifier -%type spirv_instruction_qualifier_list spirv_instruction_qualifier_id -GLSLANG_WEB_EXCLUDE_OFF - -%start translation_unit -%% - -variable_identifier - : IDENTIFIER { - $$ = parseContext.handleVariable($1.loc, $1.symbol, $1.string); - } - ; - -primary_expression - : variable_identifier { - $$ = $1; - } - | LEFT_PAREN expression RIGHT_PAREN { - $$ = $2; - if ($$->getAsConstantUnion()) - $$->getAsConstantUnion()->setExpression(); - } - | FLOATCONSTANT { - $$ = parseContext.intermediate.addConstantUnion($1.d, EbtFloat, $1.loc, true); - } - | INTCONSTANT { - $$ = parseContext.intermediate.addConstantUnion($1.i, $1.loc, true); - } - | UINTCONSTANT { - parseContext.fullIntegerCheck($1.loc, "unsigned literal"); - $$ = parseContext.intermediate.addConstantUnion($1.u, $1.loc, true); - } - | BOOLCONSTANT { - $$ = parseContext.intermediate.addConstantUnion($1.b, $1.loc, true); - } -GLSLANG_WEB_EXCLUDE_ON - | STRING_LITERAL { - $$ = parseContext.intermediate.addConstantUnion($1.string, $1.loc, true); - } - | 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); - } - | INT64CONSTANT { - parseContext.int64Check($1.loc, "64-bit integer literal"); - $$ = parseContext.intermediate.addConstantUnion($1.i64, $1.loc, true); - } - | UINT64CONSTANT { - 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); - } - | DOUBLECONSTANT { - parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double literal"); - if (! parseContext.symbolTable.atBuiltInLevel()) - parseContext.doubleCheck($1.loc, "double literal"); - $$ = parseContext.intermediate.addConstantUnion($1.d, EbtDouble, $1.loc, true); - } - | FLOAT16CONSTANT { - parseContext.float16Check($1.loc, "half float literal"); - $$ = parseContext.intermediate.addConstantUnion($1.d, EbtFloat16, $1.loc, true); - } -GLSLANG_WEB_EXCLUDE_OFF - ; - -postfix_expression - : primary_expression { - $$ = $1; - } - | postfix_expression LEFT_BRACKET integer_expression RIGHT_BRACKET { - $$ = parseContext.handleBracketDereference($2.loc, $1, $3); - } - | function_call { - $$ = $1; - } - | postfix_expression DOT IDENTIFIER { - $$ = parseContext.handleDotDereference($3.loc, $1, *$3.string); - } - | postfix_expression INC_OP { - parseContext.variableCheck($1); - parseContext.lValueErrorCheck($2.loc, "++", $1); - $$ = parseContext.handleUnaryMath($2.loc, "++", EOpPostIncrement, $1); - } - | postfix_expression DEC_OP { - parseContext.variableCheck($1); - parseContext.lValueErrorCheck($2.loc, "--", $1); - $$ = parseContext.handleUnaryMath($2.loc, "--", EOpPostDecrement, $1); - } - ; - -integer_expression - : expression { - parseContext.integerCheck($1, "[]"); - $$ = $1; - } - ; - -function_call - : function_call_or_method { - $$ = parseContext.handleFunctionCall($1.loc, $1.function, $1.intermNode); - delete $1.function; - } - ; - -function_call_or_method - : function_call_generic { - $$ = $1; - } - ; - -function_call_generic - : function_call_header_with_parameters RIGHT_PAREN { - $$ = $1; - $$.loc = $2.loc; - } - | function_call_header_no_parameters RIGHT_PAREN { - $$ = $1; - $$.loc = $2.loc; - } - ; - -function_call_header_no_parameters - : function_call_header VOID { - $$ = $1; - } - | function_call_header { - $$ = $1; - } - ; - -function_call_header_with_parameters - : function_call_header assignment_expression { - TParameter param = { 0, new TType }; - param.type->shallowCopy($2->getType()); - $1.function->addParameter(param); - $$.function = $1.function; - $$.intermNode = $2; - } - | function_call_header_with_parameters COMMA assignment_expression { - TParameter param = { 0, new TType }; - param.type->shallowCopy($3->getType()); - $1.function->addParameter(param); - $$.function = $1.function; - $$.intermNode = parseContext.intermediate.growAggregate($1.intermNode, $3, $2.loc); - } - ; - -function_call_header - : function_identifier LEFT_PAREN { - $$ = $1; - } - ; - -// Grammar Note: Constructors look like functions, but are recognized as types. - -function_identifier - : type_specifier { - // Constructor - $$.intermNode = 0; - $$.function = parseContext.handleConstructorCall($1.loc, $1); - } - | postfix_expression { - // - // Should be a method or subroutine call, but we haven't recognized the arguments yet. - // - $$.function = 0; - $$.intermNode = 0; - - TIntermMethod* method = $1->getAsMethodNode(); - if (method) { - $$.function = new TFunction(&method->getMethodName(), TType(EbtInt), EOpArrayLength); - $$.intermNode = method->getObject(); - } else { - TIntermSymbol* symbol = $1->getAsSymbolNode(); - if (symbol) { - parseContext.reservedErrorCheck(symbol->getLoc(), symbol->getName()); - TFunction *function = new TFunction(&symbol->getName(), TType(EbtVoid)); - $$.function = function; - } else - parseContext.error($1->getLoc(), "function call, method, or subroutine call expected", "", ""); - } - - if ($$.function == 0) { - // error recover - TString* empty = NewPoolTString(""); - $$.function = new TFunction(empty, TType(EbtVoid), EOpNull); - } - } -GLSLANG_WEB_EXCLUDE_ON - | non_uniform_qualifier { - // Constructor - $$.intermNode = 0; - $$.function = parseContext.handleConstructorCall($1.loc, $1); - } -GLSLANG_WEB_EXCLUDE_OFF - ; - -unary_expression - : postfix_expression { - parseContext.variableCheck($1); - $$ = $1; - if (TIntermMethod* method = $1->getAsMethodNode()) - parseContext.error($1->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), ""); - } - | INC_OP unary_expression { - parseContext.lValueErrorCheck($1.loc, "++", $2); - $$ = parseContext.handleUnaryMath($1.loc, "++", EOpPreIncrement, $2); - } - | DEC_OP unary_expression { - parseContext.lValueErrorCheck($1.loc, "--", $2); - $$ = parseContext.handleUnaryMath($1.loc, "--", EOpPreDecrement, $2); - } - | unary_operator unary_expression { - if ($1.op != EOpNull) { - char errorOp[2] = {0, 0}; - switch($1.op) { - case EOpNegative: errorOp[0] = '-'; break; - case EOpLogicalNot: errorOp[0] = '!'; break; - case EOpBitwiseNot: errorOp[0] = '~'; break; - default: break; // some compilers want this - } - $$ = parseContext.handleUnaryMath($1.loc, errorOp, $1.op, $2); - } else { - $$ = $2; - if ($$->getAsConstantUnion()) - $$->getAsConstantUnion()->setExpression(); - } - } - ; -// Grammar Note: No traditional style type casts. - -unary_operator - : PLUS { $$.loc = $1.loc; $$.op = EOpNull; } - | DASH { $$.loc = $1.loc; $$.op = EOpNegative; } - | BANG { $$.loc = $1.loc; $$.op = EOpLogicalNot; } - | TILDE { $$.loc = $1.loc; $$.op = EOpBitwiseNot; - parseContext.fullIntegerCheck($1.loc, "bitwise not"); } - ; -// Grammar Note: No '*' or '&' unary ops. Pointers are not supported. - -multiplicative_expression - : unary_expression { $$ = $1; } - | multiplicative_expression STAR unary_expression { - $$ = parseContext.handleBinaryMath($2.loc, "*", EOpMul, $1, $3); - if ($$ == 0) - $$ = $1; - } - | multiplicative_expression SLASH unary_expression { - $$ = parseContext.handleBinaryMath($2.loc, "/", EOpDiv, $1, $3); - if ($$ == 0) - $$ = $1; - } - | multiplicative_expression PERCENT unary_expression { - parseContext.fullIntegerCheck($2.loc, "%"); - $$ = parseContext.handleBinaryMath($2.loc, "%", EOpMod, $1, $3); - if ($$ == 0) - $$ = $1; - } - ; - -additive_expression - : multiplicative_expression { $$ = $1; } - | additive_expression PLUS multiplicative_expression { - $$ = parseContext.handleBinaryMath($2.loc, "+", EOpAdd, $1, $3); - if ($$ == 0) - $$ = $1; - } - | additive_expression DASH multiplicative_expression { - $$ = parseContext.handleBinaryMath($2.loc, "-", EOpSub, $1, $3); - if ($$ == 0) - $$ = $1; - } - ; - -shift_expression - : additive_expression { $$ = $1; } - | shift_expression LEFT_OP additive_expression { - parseContext.fullIntegerCheck($2.loc, "bit shift left"); - $$ = parseContext.handleBinaryMath($2.loc, "<<", EOpLeftShift, $1, $3); - if ($$ == 0) - $$ = $1; - } - | shift_expression RIGHT_OP additive_expression { - parseContext.fullIntegerCheck($2.loc, "bit shift right"); - $$ = parseContext.handleBinaryMath($2.loc, ">>", EOpRightShift, $1, $3); - if ($$ == 0) - $$ = $1; - } - ; - -relational_expression - : shift_expression { $$ = $1; } - | relational_expression LEFT_ANGLE shift_expression { - $$ = parseContext.handleBinaryMath($2.loc, "<", EOpLessThan, $1, $3); - if ($$ == 0) - $$ = parseContext.intermediate.addConstantUnion(false, $2.loc); - } - | relational_expression RIGHT_ANGLE shift_expression { - $$ = parseContext.handleBinaryMath($2.loc, ">", EOpGreaterThan, $1, $3); - if ($$ == 0) - $$ = parseContext.intermediate.addConstantUnion(false, $2.loc); - } - | relational_expression LE_OP shift_expression { - $$ = parseContext.handleBinaryMath($2.loc, "<=", EOpLessThanEqual, $1, $3); - if ($$ == 0) - $$ = parseContext.intermediate.addConstantUnion(false, $2.loc); - } - | relational_expression GE_OP shift_expression { - $$ = parseContext.handleBinaryMath($2.loc, ">=", EOpGreaterThanEqual, $1, $3); - if ($$ == 0) - $$ = parseContext.intermediate.addConstantUnion(false, $2.loc); - } - ; - -equality_expression - : relational_expression { $$ = $1; } - | equality_expression EQ_OP relational_expression { - parseContext.arrayObjectCheck($2.loc, $1->getType(), "array comparison"); - parseContext.opaqueCheck($2.loc, $1->getType(), "=="); - parseContext.specializationCheck($2.loc, $1->getType(), "=="); - parseContext.referenceCheck($2.loc, $1->getType(), "=="); - $$ = parseContext.handleBinaryMath($2.loc, "==", EOpEqual, $1, $3); - if ($$ == 0) - $$ = parseContext.intermediate.addConstantUnion(false, $2.loc); - } - | equality_expression NE_OP relational_expression { - parseContext.arrayObjectCheck($2.loc, $1->getType(), "array comparison"); - parseContext.opaqueCheck($2.loc, $1->getType(), "!="); - parseContext.specializationCheck($2.loc, $1->getType(), "!="); - parseContext.referenceCheck($2.loc, $1->getType(), "!="); - $$ = parseContext.handleBinaryMath($2.loc, "!=", EOpNotEqual, $1, $3); - if ($$ == 0) - $$ = parseContext.intermediate.addConstantUnion(false, $2.loc); - } - ; - -and_expression - : equality_expression { $$ = $1; } - | and_expression AMPERSAND equality_expression { - parseContext.fullIntegerCheck($2.loc, "bitwise and"); - $$ = parseContext.handleBinaryMath($2.loc, "&", EOpAnd, $1, $3); - if ($$ == 0) - $$ = $1; - } - ; - -exclusive_or_expression - : and_expression { $$ = $1; } - | exclusive_or_expression CARET and_expression { - parseContext.fullIntegerCheck($2.loc, "bitwise exclusive or"); - $$ = parseContext.handleBinaryMath($2.loc, "^", EOpExclusiveOr, $1, $3); - if ($$ == 0) - $$ = $1; - } - ; - -inclusive_or_expression - : exclusive_or_expression { $$ = $1; } - | inclusive_or_expression VERTICAL_BAR exclusive_or_expression { - parseContext.fullIntegerCheck($2.loc, "bitwise inclusive or"); - $$ = parseContext.handleBinaryMath($2.loc, "|", EOpInclusiveOr, $1, $3); - if ($$ == 0) - $$ = $1; - } - ; - -logical_and_expression - : inclusive_or_expression { $$ = $1; } - | logical_and_expression AND_OP inclusive_or_expression { - $$ = parseContext.handleBinaryMath($2.loc, "&&", EOpLogicalAnd, $1, $3); - if ($$ == 0) - $$ = parseContext.intermediate.addConstantUnion(false, $2.loc); - } - ; - -logical_xor_expression - : logical_and_expression { $$ = $1; } - | logical_xor_expression XOR_OP logical_and_expression { - $$ = parseContext.handleBinaryMath($2.loc, "^^", EOpLogicalXor, $1, $3); - if ($$ == 0) - $$ = parseContext.intermediate.addConstantUnion(false, $2.loc); - } - ; - -logical_or_expression - : logical_xor_expression { $$ = $1; } - | logical_or_expression OR_OP logical_xor_expression { - $$ = parseContext.handleBinaryMath($2.loc, "||", EOpLogicalOr, $1, $3); - if ($$ == 0) - $$ = parseContext.intermediate.addConstantUnion(false, $2.loc); - } - ; - -conditional_expression - : logical_or_expression { $$ = $1; } - | logical_or_expression QUESTION { - ++parseContext.controlFlowNestingLevel; - } - expression COLON assignment_expression { - --parseContext.controlFlowNestingLevel; - parseContext.boolCheck($2.loc, $1); - parseContext.rValueErrorCheck($2.loc, "?", $1); - parseContext.rValueErrorCheck($5.loc, ":", $4); - parseContext.rValueErrorCheck($5.loc, ":", $6); - $$ = parseContext.intermediate.addSelection($1, $4, $6, $2.loc); - if ($$ == 0) { - parseContext.binaryOpError($2.loc, ":", $4->getCompleteString(parseContext.intermediate.getEnhancedMsgs()), $6->getCompleteString(parseContext.intermediate.getEnhancedMsgs())); - $$ = $6; - } - } - ; - -assignment_expression - : conditional_expression { $$ = $1; } - | unary_expression assignment_operator assignment_expression { - parseContext.arrayObjectCheck($2.loc, $1->getType(), "array assignment"); - parseContext.opaqueCheck($2.loc, $1->getType(), "="); - parseContext.storage16BitAssignmentCheck($2.loc, $1->getType(), "="); - parseContext.specializationCheck($2.loc, $1->getType(), "="); - parseContext.lValueErrorCheck($2.loc, "assign", $1); - parseContext.rValueErrorCheck($2.loc, "assign", $3); - $$ = parseContext.addAssign($2.loc, $2.op, $1, $3); - if ($$ == 0) { - parseContext.assignError($2.loc, "assign", $1->getCompleteString(parseContext.intermediate.getEnhancedMsgs()), $3->getCompleteString(parseContext.intermediate.getEnhancedMsgs())); - $$ = $1; - } - } - ; - -assignment_operator - : EQUAL { - $$.loc = $1.loc; - $$.op = EOpAssign; - } - | MUL_ASSIGN { - $$.loc = $1.loc; - $$.op = EOpMulAssign; - } - | DIV_ASSIGN { - $$.loc = $1.loc; - $$.op = EOpDivAssign; - } - | MOD_ASSIGN { - parseContext.fullIntegerCheck($1.loc, "%="); - $$.loc = $1.loc; - $$.op = EOpModAssign; - } - | ADD_ASSIGN { - $$.loc = $1.loc; - $$.op = EOpAddAssign; - } - | SUB_ASSIGN { - $$.loc = $1.loc; - $$.op = EOpSubAssign; - } - | LEFT_ASSIGN { - parseContext.fullIntegerCheck($1.loc, "bit-shift left assign"); - $$.loc = $1.loc; $$.op = EOpLeftShiftAssign; - } - | RIGHT_ASSIGN { - parseContext.fullIntegerCheck($1.loc, "bit-shift right assign"); - $$.loc = $1.loc; $$.op = EOpRightShiftAssign; - } - | AND_ASSIGN { - parseContext.fullIntegerCheck($1.loc, "bitwise-and assign"); - $$.loc = $1.loc; $$.op = EOpAndAssign; - } - | XOR_ASSIGN { - parseContext.fullIntegerCheck($1.loc, "bitwise-xor assign"); - $$.loc = $1.loc; $$.op = EOpExclusiveOrAssign; - } - | OR_ASSIGN { - parseContext.fullIntegerCheck($1.loc, "bitwise-or assign"); - $$.loc = $1.loc; $$.op = EOpInclusiveOrAssign; - } - ; - -expression - : assignment_expression { - $$ = $1; - } - | expression COMMA assignment_expression { - parseContext.samplerConstructorLocationCheck($2.loc, ",", $3); - $$ = parseContext.intermediate.addComma($1, $3, $2.loc); - if ($$ == 0) { - parseContext.binaryOpError($2.loc, ",", $1->getCompleteString(parseContext.intermediate.getEnhancedMsgs()), $3->getCompleteString(parseContext.intermediate.getEnhancedMsgs())); - $$ = $3; - } - } - ; - -constant_expression - : conditional_expression { - parseContext.constantValueCheck($1, ""); - $$ = $1; - } - ; - -declaration - : function_prototype SEMICOLON { - parseContext.handleFunctionDeclarator($1.loc, *$1.function, true /* prototype */); - $$ = 0; - // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature - } -GLSLANG_WEB_EXCLUDE_ON - | spirv_instruction_qualifier function_prototype SEMICOLON { - parseContext.requireExtensions($2.loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V instruction qualifier"); - $2.function->setSpirvInstruction(*$1); // Attach SPIR-V intruction qualifier - parseContext.handleFunctionDeclarator($2.loc, *$2.function, true /* prototype */); - $$ = 0; - // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature - } - | spirv_execution_mode_qualifier SEMICOLON { - parseContext.globalCheck($2.loc, "SPIR-V execution mode qualifier"); - parseContext.requireExtensions($2.loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V execution mode qualifier"); - $$ = 0; - } -GLSLANG_WEB_EXCLUDE_OFF - | init_declarator_list SEMICOLON { - if ($1.intermNode && $1.intermNode->getAsAggregate()) - $1.intermNode->getAsAggregate()->setOperator(EOpSequence); - $$ = $1.intermNode; - } - | PRECISION precision_qualifier type_specifier SEMICOLON { - parseContext.profileRequires($1.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($1.loc, $3, $2.qualifier.precision); - $$ = 0; - } - | block_structure SEMICOLON { - parseContext.declareBlock($1.loc, *$1.typeList); - $$ = 0; - } - | block_structure IDENTIFIER SEMICOLON { - parseContext.declareBlock($1.loc, *$1.typeList, $2.string); - $$ = 0; - } - | block_structure IDENTIFIER array_specifier SEMICOLON { - parseContext.declareBlock($1.loc, *$1.typeList, $2.string, $3.arraySizes); - $$ = 0; - } - | type_qualifier SEMICOLON { - parseContext.globalQualifierFixCheck($1.loc, $1.qualifier); - parseContext.updateStandaloneQualifierDefaults($1.loc, $1); - $$ = 0; - } - | type_qualifier IDENTIFIER SEMICOLON { - parseContext.checkNoShaderLayouts($1.loc, $1.shaderQualifiers); - parseContext.addQualifierToExisting($1.loc, $1.qualifier, *$2.string); - $$ = 0; - } - | type_qualifier IDENTIFIER identifier_list SEMICOLON { - parseContext.checkNoShaderLayouts($1.loc, $1.shaderQualifiers); - $3->push_back($2.string); - parseContext.addQualifierToExisting($1.loc, $1.qualifier, *$3); - $$ = 0; - } - ; - -block_structure - : type_qualifier IDENTIFIER LEFT_BRACE { parseContext.nestedBlockCheck($1.loc); } struct_declaration_list RIGHT_BRACE { - --parseContext.blockNestingLevel; - parseContext.blockName = $2.string; - parseContext.globalQualifierFixCheck($1.loc, $1.qualifier); - parseContext.checkNoShaderLayouts($1.loc, $1.shaderQualifiers); - parseContext.currentBlockQualifier = $1.qualifier; - $$.loc = $1.loc; - $$.typeList = $5; - } - -identifier_list - : COMMA IDENTIFIER { - $$ = new TIdentifierList; - $$->push_back($2.string); - } - | identifier_list COMMA IDENTIFIER { - $$ = $1; - $$->push_back($3.string); - } - ; - -function_prototype - : function_declarator RIGHT_PAREN { - $$.function = $1; - $$.loc = $2.loc; - } - | function_declarator RIGHT_PAREN attribute { - $$.function = $1; - $$.loc = $2.loc; - parseContext.requireExtensions($2.loc, 1, &E_GL_EXT_subgroup_uniform_control_flow, "attribute"); - parseContext.handleFunctionAttributes($2.loc, *$3); - } - | attribute function_declarator RIGHT_PAREN { - $$.function = $2; - $$.loc = $3.loc; - parseContext.requireExtensions($3.loc, 1, &E_GL_EXT_subgroup_uniform_control_flow, "attribute"); - parseContext.handleFunctionAttributes($3.loc, *$1); - } - | attribute function_declarator RIGHT_PAREN attribute { - $$.function = $2; - $$.loc = $3.loc; - parseContext.requireExtensions($3.loc, 1, &E_GL_EXT_subgroup_uniform_control_flow, "attribute"); - parseContext.handleFunctionAttributes($3.loc, *$1); - parseContext.handleFunctionAttributes($3.loc, *$4); - } - ; - -function_declarator - : function_header { - $$ = $1; - } - | function_header_with_parameters { - $$ = $1; - } - ; - - -function_header_with_parameters - : function_header parameter_declaration { - // Add the parameter - $$ = $1; - if ($2.param.type->getBasicType() != EbtVoid) - $1->addParameter($2.param); - else - delete $2.param.type; - } - | function_header_with_parameters COMMA parameter_declaration { - // - // Only first parameter of one-parameter functions can be void - // The check for named parameters not being void is done in parameter_declarator - // - if ($3.param.type->getBasicType() == EbtVoid) { - // - // This parameter > first is void - // - parseContext.error($2.loc, "cannot be an argument type except for '(void)'", "void", ""); - delete $3.param.type; - } else { - // Add the parameter - $$ = $1; - $1->addParameter($3.param); - } - } - ; - -function_header - : fully_specified_type IDENTIFIER LEFT_PAREN { - if ($1.qualifier.storage != EvqGlobal && $1.qualifier.storage != EvqTemporary) { - parseContext.error($2.loc, "no qualifiers allowed for function return", - GetStorageQualifierString($1.qualifier.storage), ""); - } - if ($1.arraySizes) - parseContext.arraySizeRequiredCheck($1.loc, *$1.arraySizes); - - // 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; - } - ; - -parameter_declarator - // Type + name - : type_specifier IDENTIFIER { - if ($1.arraySizes) { - parseContext.profileRequires($1.loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires($1.loc, EEsProfile, 300, 0, "arrayed type"); - parseContext.arraySizeRequiredCheck($1.loc, *$1.arraySizes); - } - if ($1.basicType == EbtVoid) { - parseContext.error($2.loc, "illegal use of type 'void'", $2.string->c_str(), ""); - } - parseContext.reservedErrorCheck($2.loc, *$2.string); - - TParameter param = {$2.string, new TType($1)}; - $$.loc = $2.loc; - $$.param = param; - } - | type_specifier IDENTIFIER array_specifier { - if ($1.arraySizes) { - parseContext.profileRequires($1.loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - 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.arrayOfArrayVersionCheck($2.loc, type->getArraySizes()); - parseContext.arraySizeRequiredCheck($3.loc, *$3.arraySizes); - parseContext.reservedErrorCheck($2.loc, *$2.string); - - TParameter param = { $2.string, type }; - - $$.loc = $2.loc; - $$.param = param; - } - ; - -parameter_declaration - // - // With name - // - : type_qualifier parameter_declarator { - $$ = $2; - if ($1.qualifier.precision != EpqNone) - $$.param.type->getQualifier().precision = $1.qualifier.precision; - parseContext.precisionQualifierCheck($$.loc, $$.param.type->getBasicType(), $$.param.type->getQualifier()); - - parseContext.checkNoShaderLayouts($1.loc, $1.shaderQualifiers); - parseContext.parameterTypeCheck($2.loc, $1.qualifier.storage, *$$.param.type); - parseContext.paramCheckFix($1.loc, $1.qualifier, *$$.param.type); - - } - | parameter_declarator { - $$ = $1; - - parseContext.parameterTypeCheck($1.loc, EvqIn, *$1.param.type); - parseContext.paramCheckFixStorage($1.loc, EvqTemporary, *$$.param.type); - parseContext.precisionQualifierCheck($$.loc, $$.param.type->getBasicType(), $$.param.type->getQualifier()); - } - // - // Without name - // - | type_qualifier parameter_type_specifier { - $$ = $2; - if ($1.qualifier.precision != EpqNone) - $$.param.type->getQualifier().precision = $1.qualifier.precision; - parseContext.precisionQualifierCheck($1.loc, $$.param.type->getBasicType(), $$.param.type->getQualifier()); - - parseContext.checkNoShaderLayouts($1.loc, $1.shaderQualifiers); - parseContext.parameterTypeCheck($2.loc, $1.qualifier.storage, *$$.param.type); - parseContext.paramCheckFix($1.loc, $1.qualifier, *$$.param.type); - } - | parameter_type_specifier { - $$ = $1; - - parseContext.parameterTypeCheck($1.loc, EvqIn, *$1.param.type); - parseContext.paramCheckFixStorage($1.loc, EvqTemporary, *$$.param.type); - parseContext.precisionQualifierCheck($$.loc, $$.param.type->getBasicType(), $$.param.type->getQualifier()); - } - ; - -parameter_type_specifier - : type_specifier { - TParameter param = { 0, new TType($1) }; - $$.param = param; - if ($1.arraySizes) - parseContext.arraySizeRequiredCheck($1.loc, *$1.arraySizes); - } - ; - -init_declarator_list - : single_declaration { - $$ = $1; - } - | init_declarator_list COMMA IDENTIFIER { - $$ = $1; - parseContext.declareVariable($3.loc, *$3.string, $1.type); - } - | init_declarator_list COMMA IDENTIFIER array_specifier { - $$ = $1; - parseContext.declareVariable($3.loc, *$3.string, $1.type, $4.arraySizes); - } - | init_declarator_list COMMA IDENTIFIER array_specifier EQUAL initializer { - $$.type = $1.type; - TIntermNode* initNode = parseContext.declareVariable($3.loc, *$3.string, $1.type, $4.arraySizes, $6); - $$.intermNode = parseContext.intermediate.growAggregate($1.intermNode, initNode, $5.loc); - } - | init_declarator_list COMMA IDENTIFIER EQUAL initializer { - $$.type = $1.type; - TIntermNode* initNode = parseContext.declareVariable($3.loc, *$3.string, $1.type, 0, $5); - $$.intermNode = parseContext.intermediate.growAggregate($1.intermNode, initNode, $4.loc); - } - ; - -single_declaration - : fully_specified_type { - $$.type = $1; - $$.intermNode = 0; -GLSLANG_WEB_EXCLUDE_ON - parseContext.declareTypeDefaults($$.loc, $$.type); -GLSLANG_WEB_EXCLUDE_OFF - } - | fully_specified_type IDENTIFIER { - $$.type = $1; - $$.intermNode = 0; - parseContext.declareVariable($2.loc, *$2.string, $1); - } - | fully_specified_type IDENTIFIER array_specifier { - $$.type = $1; - $$.intermNode = 0; - parseContext.declareVariable($2.loc, *$2.string, $1, $3.arraySizes); - } - | fully_specified_type IDENTIFIER array_specifier EQUAL initializer { - $$.type = $1; - TIntermNode* initNode = parseContext.declareVariable($2.loc, *$2.string, $1, $3.arraySizes, $5); - $$.intermNode = parseContext.intermediate.growAggregate(0, initNode, $4.loc); - } - | fully_specified_type IDENTIFIER EQUAL initializer { - $$.type = $1; - TIntermNode* initNode = parseContext.declareVariable($2.loc, *$2.string, $1, 0, $4); - $$.intermNode = parseContext.intermediate.growAggregate(0, initNode, $3.loc); - } - -// Grammar Note: No 'enum', or 'typedef'. - -fully_specified_type - : type_specifier { - $$ = $1; - - parseContext.globalQualifierTypeCheck($1.loc, $1.qualifier, $$); - if ($1.arraySizes) { - parseContext.profileRequires($1.loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires($1.loc, EEsProfile, 300, 0, "arrayed type"); - } - parseContext.precisionQualifierCheck($$.loc, $$.basicType, $$.qualifier); - } - | type_qualifier type_specifier { - parseContext.globalQualifierFixCheck($1.loc, $1.qualifier); - parseContext.globalQualifierTypeCheck($1.loc, $1.qualifier, $2); - - 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"); - } - - if ($2.arraySizes && parseContext.arrayQualifierError($2.loc, $1.qualifier)) - $2.arraySizes = nullptr; - - parseContext.checkNoShaderLayouts($2.loc, $1.shaderQualifiers); - $2.shaderQualifiers.merge($1.shaderQualifiers); - parseContext.mergeQualifiers($2.loc, $2.qualifier, $1.qualifier, true); - parseContext.precisionQualifierCheck($2.loc, $2.basicType, $2.qualifier); - - $$ = $2; - - if (! $$.qualifier.isInterpolation() && - ((parseContext.language == EShLangVertex && $$.qualifier.storage == EvqVaryingOut) || - (parseContext.language == EShLangFragment && $$.qualifier.storage == EvqVaryingIn))) - $$.qualifier.smooth = true; - } - ; - -invariant_qualifier - : INVARIANT { - parseContext.globalCheck($1.loc, "invariant"); - parseContext.profileRequires($$.loc, ENoProfile, 120, 0, "invariant"); - $$.init($1.loc); - $$.qualifier.invariant = true; - } - ; - -interpolation_qualifier - : SMOOTH { - parseContext.globalCheck($1.loc, "smooth"); - parseContext.profileRequires($1.loc, ENoProfile, 130, 0, "smooth"); - parseContext.profileRequires($1.loc, EEsProfile, 300, 0, "smooth"); - $$.init($1.loc); - $$.qualifier.smooth = true; - } - | FLAT { - parseContext.globalCheck($1.loc, "flat"); - parseContext.profileRequires($1.loc, ENoProfile, 130, 0, "flat"); - parseContext.profileRequires($1.loc, EEsProfile, 300, 0, "flat"); - $$.init($1.loc); - $$.qualifier.flat = true; - } -GLSLANG_WEB_EXCLUDE_ON - | NOPERSPECTIVE { - parseContext.globalCheck($1.loc, "noperspective"); - parseContext.profileRequires($1.loc, EEsProfile, 0, E_GL_NV_shader_noperspective_interpolation, "noperspective"); - parseContext.profileRequires($1.loc, ENoProfile, 130, 0, "noperspective"); - $$.init($1.loc); - $$.qualifier.nopersp = true; - } - | EXPLICITINTERPAMD { - parseContext.globalCheck($1.loc, "__explicitInterpAMD"); - parseContext.profileRequires($1.loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation"); - parseContext.profileRequires($1.loc, ECompatibilityProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation"); - $$.init($1.loc); - $$.qualifier.explicitInterp = true; - } - | PERVERTEXNV { - parseContext.globalCheck($1.loc, "pervertexNV"); - parseContext.profileRequires($1.loc, ECoreProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric"); - parseContext.profileRequires($1.loc, ECompatibilityProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric"); - parseContext.profileRequires($1.loc, EEsProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric"); - $$.init($1.loc); - $$.qualifier.pervertexNV = true; - } - | PERPRIMITIVENV { - // No need for profile version or extension check. Shader stage already checks both. - parseContext.globalCheck($1.loc, "perprimitiveNV"); - parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangFragmentMask | EShLangMeshNVMask), "perprimitiveNV"); - // Fragment shader stage doesn't check for extension. So we explicitly add below extension check. - if (parseContext.language == EShLangFragment) - parseContext.requireExtensions($1.loc, 1, &E_GL_NV_mesh_shader, "perprimitiveNV"); - $$.init($1.loc); - $$.qualifier.perPrimitiveNV = true; - } - | PERVIEWNV { - // No need for profile version or extension check. Shader stage already checks both. - parseContext.globalCheck($1.loc, "perviewNV"); - parseContext.requireStage($1.loc, EShLangMeshNV, "perviewNV"); - $$.init($1.loc); - $$.qualifier.perViewNV = true; - } - | PERTASKNV { - // No need for profile version or extension check. Shader stage already checks both. - parseContext.globalCheck($1.loc, "taskNV"); - parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangTaskNVMask | EShLangMeshNVMask), "taskNV"); - $$.init($1.loc); - $$.qualifier.perTaskNV = true; - } -GLSLANG_WEB_EXCLUDE_OFF - ; - -layout_qualifier - : LAYOUT LEFT_PAREN layout_qualifier_id_list RIGHT_PAREN { - $$ = $3; - } - ; - -layout_qualifier_id_list - : layout_qualifier_id { - $$ = $1; - } - | layout_qualifier_id_list COMMA layout_qualifier_id { - $$ = $1; - $$.shaderQualifiers.merge($3.shaderQualifiers); - parseContext.mergeObjectLayoutQualifiers($$.qualifier, $3.qualifier, false); - } - -layout_qualifier_id - : IDENTIFIER { - $$.init($1.loc); - parseContext.setLayoutQualifier($1.loc, $$, *$1.string); - } - | IDENTIFIER EQUAL constant_expression { - $$.init($1.loc); - parseContext.setLayoutQualifier($1.loc, $$, *$1.string, $3); - } - | SHARED { // because "shared" is both an identifier and a keyword - $$.init($1.loc); - TString strShared("shared"); - parseContext.setLayoutQualifier($1.loc, $$, strShared); - } - ; - -GLSLANG_WEB_EXCLUDE_ON -precise_qualifier - : PRECISE { - parseContext.profileRequires($$.loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise"); - parseContext.profileRequires($1.loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise"); - $$.init($1.loc); - $$.qualifier.noContraction = true; - } - ; -GLSLANG_WEB_EXCLUDE_OFF - -type_qualifier - : single_type_qualifier { - $$ = $1; - } - | type_qualifier single_type_qualifier { - $$ = $1; - if ($$.basicType == EbtVoid) - $$.basicType = $2.basicType; - - $$.shaderQualifiers.merge($2.shaderQualifiers); - parseContext.mergeQualifiers($$.loc, $$.qualifier, $2.qualifier, false); - } - ; - -single_type_qualifier - : storage_qualifier { - $$ = $1; - } - | layout_qualifier { - $$ = $1; - } - | precision_qualifier { - parseContext.checkPrecisionQualifier($1.loc, $1.qualifier.precision); - $$ = $1; - } - | interpolation_qualifier { - // allow inheritance of storage qualifier from block declaration - $$ = $1; - } - | invariant_qualifier { - // allow inheritance of storage qualifier from block declaration - $$ = $1; - } -GLSLANG_WEB_EXCLUDE_ON - | precise_qualifier { - // allow inheritance of storage qualifier from block declaration - $$ = $1; - } - | non_uniform_qualifier { - $$ = $1; - } - | spirv_storage_class_qualifier { - parseContext.globalCheck($1.loc, "spirv_storage_class"); - parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V storage class qualifier"); - $$ = $1; - } - | spirv_decorate_qualifier { - parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V decorate qualifier"); - $$ = $1; - } - | SPIRV_BY_REFERENCE { - parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_spirv_intrinsics, "spirv_by_reference"); - $$.init($1.loc); - $$.qualifier.setSpirvByReference(); - } - | SPIRV_LITERAL { - parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_spirv_intrinsics, "spirv_by_literal"); - $$.init($1.loc); - $$.qualifier.setSpirvLiteral(); - } -GLSLANG_WEB_EXCLUDE_OFF - ; - -storage_qualifier - : CONST { - $$.init($1.loc); - $$.qualifier.storage = EvqConst; // will later turn into EvqConstReadOnly, if the initializer is not constant - } - | INOUT { - parseContext.globalCheck($1.loc, "inout"); - $$.init($1.loc); - $$.qualifier.storage = EvqInOut; - } - | IN { - parseContext.globalCheck($1.loc, "in"); - $$.init($1.loc); - // whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later - $$.qualifier.storage = EvqIn; - } - | OUT { - parseContext.globalCheck($1.loc, "out"); - $$.init($1.loc); - // whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later - $$.qualifier.storage = EvqOut; - } - | CENTROID { - parseContext.profileRequires($1.loc, ENoProfile, 120, 0, "centroid"); - parseContext.profileRequires($1.loc, EEsProfile, 300, 0, "centroid"); - parseContext.globalCheck($1.loc, "centroid"); - $$.init($1.loc); - $$.qualifier.centroid = true; - } - | UNIFORM { - parseContext.globalCheck($1.loc, "uniform"); - $$.init($1.loc); - $$.qualifier.storage = EvqUniform; - } - | 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, (EShLanguageMask)(EShLangComputeMask | EShLangMeshNVMask | EShLangTaskNVMask), "shared"); - $$.init($1.loc); - $$.qualifier.storage = EvqShared; - } - | BUFFER { - parseContext.globalCheck($1.loc, "buffer"); - $$.init($1.loc); - $$.qualifier.storage = EvqBuffer; - } -GLSLANG_WEB_EXCLUDE_ON - | ATTRIBUTE { - parseContext.requireStage($1.loc, EShLangVertex, "attribute"); - parseContext.checkDeprecated($1.loc, ECoreProfile, 130, "attribute"); - parseContext.checkDeprecated($1.loc, ENoProfile, 130, "attribute"); - parseContext.requireNotRemoved($1.loc, ECoreProfile, 420, "attribute"); - parseContext.requireNotRemoved($1.loc, EEsProfile, 300, "attribute"); - - parseContext.globalCheck($1.loc, "attribute"); - - $$.init($1.loc); - $$.qualifier.storage = EvqVaryingIn; - } - | VARYING { - parseContext.checkDeprecated($1.loc, ENoProfile, 130, "varying"); - parseContext.checkDeprecated($1.loc, ECoreProfile, 130, "varying"); - parseContext.requireNotRemoved($1.loc, ECoreProfile, 420, "varying"); - parseContext.requireNotRemoved($1.loc, EEsProfile, 300, "varying"); - - parseContext.globalCheck($1.loc, "varying"); - - $$.init($1.loc); - if (parseContext.language == EShLangVertex) - $$.qualifier.storage = EvqVaryingOut; - else - $$.qualifier.storage = EvqVaryingIn; - } - | PATCH { - parseContext.globalCheck($1.loc, "patch"); - parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch"); - $$.init($1.loc); - $$.qualifier.patch = true; - } - | SAMPLE { - parseContext.globalCheck($1.loc, "sample"); - $$.init($1.loc); - $$.qualifier.sample = true; - } - | HITATTRNV { - parseContext.globalCheck($1.loc, "hitAttributeNV"); - parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask - | EShLangAnyHitMask), "hitAttributeNV"); - parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "hitAttributeNV"); - $$.init($1.loc); - $$.qualifier.storage = EvqHitAttr; - } - | HITATTREXT { - parseContext.globalCheck($1.loc, "hitAttributeEXT"); - parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask - | EShLangAnyHitMask), "hitAttributeEXT"); - parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "hitAttributeNV"); - $$.init($1.loc); - $$.qualifier.storage = EvqHitAttr; - } - | PAYLOADNV { - parseContext.globalCheck($1.loc, "rayPayloadNV"); - parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask | - EShLangAnyHitMask | EShLangMissMask), "rayPayloadNV"); - parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadNV"); - $$.init($1.loc); - $$.qualifier.storage = EvqPayload; - } - | PAYLOADEXT { - parseContext.globalCheck($1.loc, "rayPayloadEXT"); - parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask | - EShLangAnyHitMask | EShLangMissMask), "rayPayloadEXT"); - parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "rayPayloadEXT"); - $$.init($1.loc); - $$.qualifier.storage = EvqPayload; - } - | PAYLOADINNV { - parseContext.globalCheck($1.loc, "rayPayloadInNV"); - parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangClosestHitMask | - EShLangAnyHitMask | EShLangMissMask), "rayPayloadInNV"); - parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadInNV"); - $$.init($1.loc); - $$.qualifier.storage = EvqPayloadIn; - } - | PAYLOADINEXT { - parseContext.globalCheck($1.loc, "rayPayloadInEXT"); - parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangClosestHitMask | - EShLangAnyHitMask | EShLangMissMask), "rayPayloadInEXT"); - parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "rayPayloadInEXT"); - $$.init($1.loc); - $$.qualifier.storage = EvqPayloadIn; - } - | CALLDATANV { - parseContext.globalCheck($1.loc, "callableDataNV"); - parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangRayGenMask | - EShLangClosestHitMask | EShLangMissMask | EShLangCallableMask), "callableDataNV"); - parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataNV"); - $$.init($1.loc); - $$.qualifier.storage = EvqCallableData; - } - | CALLDATAEXT { - parseContext.globalCheck($1.loc, "callableDataEXT"); - parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangRayGenMask | - EShLangClosestHitMask | EShLangMissMask | EShLangCallableMask), "callableDataEXT"); - parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "callableDataEXT"); - $$.init($1.loc); - $$.qualifier.storage = EvqCallableData; - } - | CALLDATAINNV { - parseContext.globalCheck($1.loc, "callableDataInNV"); - parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangCallableMask), "callableDataInNV"); - parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataInNV"); - $$.init($1.loc); - $$.qualifier.storage = EvqCallableDataIn; - } - | CALLDATAINEXT { - parseContext.globalCheck($1.loc, "callableDataInEXT"); - parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangCallableMask), "callableDataInEXT"); - parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "callableDataInEXT"); - $$.init($1.loc); - $$.qualifier.storage = EvqCallableDataIn; - } - | COHERENT { - $$.init($1.loc); - $$.qualifier.coherent = true; - } - | DEVICECOHERENT { - $$.init($1.loc); - parseContext.requireExtensions($1.loc, 1, &E_GL_KHR_memory_scope_semantics, "devicecoherent"); - $$.qualifier.devicecoherent = true; - } - | QUEUEFAMILYCOHERENT { - $$.init($1.loc); - parseContext.requireExtensions($1.loc, 1, &E_GL_KHR_memory_scope_semantics, "queuefamilycoherent"); - $$.qualifier.queuefamilycoherent = true; - } - | WORKGROUPCOHERENT { - $$.init($1.loc); - parseContext.requireExtensions($1.loc, 1, &E_GL_KHR_memory_scope_semantics, "workgroupcoherent"); - $$.qualifier.workgroupcoherent = true; - } - | SUBGROUPCOHERENT { - $$.init($1.loc); - parseContext.requireExtensions($1.loc, 1, &E_GL_KHR_memory_scope_semantics, "subgroupcoherent"); - $$.qualifier.subgroupcoherent = true; - } - | NONPRIVATE { - $$.init($1.loc); - parseContext.requireExtensions($1.loc, 1, &E_GL_KHR_memory_scope_semantics, "nonprivate"); - $$.qualifier.nonprivate = true; - } - | SHADERCALLCOHERENT { - $$.init($1.loc); - parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_ray_tracing, "shadercallcoherent"); - $$.qualifier.shadercallcoherent = true; - } - | VOLATILE { - $$.init($1.loc); - $$.qualifier.volatil = true; - } - | RESTRICT { - $$.init($1.loc); - $$.qualifier.restrict = true; - } - | READONLY { - $$.init($1.loc); - $$.qualifier.readonly = true; - } - | WRITEONLY { - $$.init($1.loc); - $$.qualifier.writeonly = true; - } - | SUBROUTINE { - parseContext.spvRemoved($1.loc, "subroutine"); - parseContext.globalCheck($1.loc, "subroutine"); - parseContext.unimplemented($1.loc, "subroutine"); - $$.init($1.loc); - } - | 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); - } -GLSLANG_WEB_EXCLUDE_OFF - ; - -GLSLANG_WEB_EXCLUDE_ON -non_uniform_qualifier - : NONUNIFORM { - $$.init($1.loc); - $$.qualifier.nonUniform = true; - } - ; - -type_name_list - : IDENTIFIER { - // TODO - } - | 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 - } - ; -GLSLANG_WEB_EXCLUDE_OFF - -type_specifier - : type_specifier_nonarray type_parameter_specifier_opt { - $$ = $1; - $$.qualifier.precision = parseContext.getDefaultPrecision($$); - $$.typeParameters = $2; - } - | type_specifier_nonarray type_parameter_specifier_opt array_specifier { - parseContext.arrayOfArrayVersionCheck($3.loc, $3.arraySizes); - $$ = $1; - $$.qualifier.precision = parseContext.getDefaultPrecision($$); - $$.typeParameters = $2; - $$.arraySizes = $3.arraySizes; - } - ; - -array_specifier - : LEFT_BRACKET RIGHT_BRACKET { - $$.loc = $1.loc; - $$.arraySizes = new TArraySizes; - $$.arraySizes->addInnerSize(); - } - | LEFT_BRACKET conditional_expression RIGHT_BRACKET { - $$.loc = $1.loc; - $$.arraySizes = new TArraySizes; - - TArraySize size; - parseContext.arraySizeCheck($2->getLoc(), $2, size, "array size"); - $$.arraySizes->addInnerSize(size); - } - | array_specifier LEFT_BRACKET RIGHT_BRACKET { - $$ = $1; - $$.arraySizes->addInnerSize(); - } - | array_specifier LEFT_BRACKET conditional_expression RIGHT_BRACKET { - $$ = $1; - - TArraySize size; - parseContext.arraySizeCheck($3->getLoc(), $3, size, "array size"); - $$.arraySizes->addInnerSize(size); - } - ; - -type_parameter_specifier_opt - : type_parameter_specifier { - $$ = $1; - } - | /* May be null */ { - $$ = 0; - } - ; - -type_parameter_specifier - : LEFT_ANGLE type_parameter_specifier_list RIGHT_ANGLE { - $$ = $2; - } - ; - -type_parameter_specifier_list - : unary_expression { - $$ = new TArraySizes; - - TArraySize size; - parseContext.arraySizeCheck($1->getLoc(), $1, size, "type parameter"); - $$->addInnerSize(size); - } - | type_parameter_specifier_list COMMA unary_expression { - $$ = $1; - - TArraySize size; - parseContext.arraySizeCheck($3->getLoc(), $3, size, "type parameter"); - $$->addInnerSize(size); - } - ; - -type_specifier_nonarray - : VOID { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtVoid; - } - | FLOAT { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - } - | INT { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt; - } - | UINT { - parseContext.fullIntegerCheck($1.loc, "unsigned integer"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint; - } - | BOOL { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtBool; - } - | VEC2 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setVector(2); - } - | VEC3 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setVector(3); - } - | VEC4 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setVector(4); - } - | BVEC2 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtBool; - $$.setVector(2); - } - | BVEC3 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtBool; - $$.setVector(3); - } - | BVEC4 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtBool; - $$.setVector(4); - } - | IVEC2 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt; - $$.setVector(2); - } - | IVEC3 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt; - $$.setVector(3); - } - | IVEC4 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt; - $$.setVector(4); - } - | UVEC2 { - parseContext.fullIntegerCheck($1.loc, "unsigned integer vector"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint; - $$.setVector(2); - } - | UVEC3 { - parseContext.fullIntegerCheck($1.loc, "unsigned integer vector"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint; - $$.setVector(3); - } - | UVEC4 { - parseContext.fullIntegerCheck($1.loc, "unsigned integer vector"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint; - $$.setVector(4); - } - | MAT2 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setMatrix(2, 2); - } - | MAT3 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setMatrix(3, 3); - } - | MAT4 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setMatrix(4, 4); - } - | MAT2X2 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setMatrix(2, 2); - } - | MAT2X3 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setMatrix(2, 3); - } - | MAT2X4 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setMatrix(2, 4); - } - | MAT3X2 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setMatrix(3, 2); - } - | MAT3X3 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setMatrix(3, 3); - } - | MAT3X4 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setMatrix(3, 4); - } - | MAT4X2 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setMatrix(4, 2); - } - | MAT4X3 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setMatrix(4, 3); - } - | MAT4X4 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setMatrix(4, 4); - } -GLSLANG_WEB_EXCLUDE_ON - | DOUBLE { - parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double"); - if (! parseContext.symbolTable.atBuiltInLevel()) - parseContext.doubleCheck($1.loc, "double"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - } - | FLOAT16_T { - parseContext.float16ScalarVectorCheck($1.loc, "float16_t", 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; - } - | INT8_T { - parseContext.int8ScalarVectorCheck($1.loc, "8-bit signed integer", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt8; - } - | UINT8_T { - parseContext.int8ScalarVectorCheck($1.loc, "8-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint8; - } - | INT16_T { - parseContext.int16ScalarVectorCheck($1.loc, "16-bit signed integer", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt16; - } - | UINT16_T { - parseContext.int16ScalarVectorCheck($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()); - $$.basicType = EbtInt64; - } - | UINT64_T { - parseContext.int64Check($1.loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint64; - } - | DVEC2 { - parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double vector"); - if (! parseContext.symbolTable.atBuiltInLevel()) - parseContext.doubleCheck($1.loc, "double vector"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setVector(2); - } - | DVEC3 { - parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double vector"); - if (! parseContext.symbolTable.atBuiltInLevel()) - parseContext.doubleCheck($1.loc, "double vector"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setVector(3); - } - | DVEC4 { - parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double vector"); - if (! parseContext.symbolTable.atBuiltInLevel()) - parseContext.doubleCheck($1.loc, "double vector"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setVector(4); - } - | F16VEC2 { - parseContext.float16ScalarVectorCheck($1.loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat16; - $$.setVector(2); - } - | F16VEC3 { - parseContext.float16ScalarVectorCheck($1.loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat16; - $$.setVector(3); - } - | F16VEC4 { - parseContext.float16ScalarVectorCheck($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); - } - | I8VEC2 { - parseContext.int8ScalarVectorCheck($1.loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt8; - $$.setVector(2); - } - | I8VEC3 { - parseContext.int8ScalarVectorCheck($1.loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt8; - $$.setVector(3); - } - | I8VEC4 { - parseContext.int8ScalarVectorCheck($1.loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt8; - $$.setVector(4); - } - | I16VEC2 { - parseContext.int16ScalarVectorCheck($1.loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt16; - $$.setVector(2); - } - | I16VEC3 { - parseContext.int16ScalarVectorCheck($1.loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt16; - $$.setVector(3); - } - | I16VEC4 { - parseContext.int16ScalarVectorCheck($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()); - $$.basicType = EbtInt64; - $$.setVector(2); - } - | I64VEC3 { - parseContext.int64Check($1.loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt64; - $$.setVector(3); - } - | I64VEC4 { - parseContext.int64Check($1.loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt64; - $$.setVector(4); - } - | U8VEC2 { - parseContext.int8ScalarVectorCheck($1.loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint8; - $$.setVector(2); - } - | U8VEC3 { - parseContext.int8ScalarVectorCheck($1.loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint8; - $$.setVector(3); - } - | U8VEC4 { - parseContext.int8ScalarVectorCheck($1.loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint8; - $$.setVector(4); - } - | U16VEC2 { - parseContext.int16ScalarVectorCheck($1.loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint16; - $$.setVector(2); - } - | U16VEC3 { - parseContext.int16ScalarVectorCheck($1.loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint16; - $$.setVector(3); - } - | U16VEC4 { - parseContext.int16ScalarVectorCheck($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()); - $$.basicType = EbtUint64; - $$.setVector(2); - } - | U64VEC3 { - parseContext.int64Check($1.loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint64; - $$.setVector(3); - } - | U64VEC4 { - parseContext.int64Check($1.loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint64; - $$.setVector(4); - } - | DMAT2 { - parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix"); - if (! parseContext.symbolTable.atBuiltInLevel()) - parseContext.doubleCheck($1.loc, "double matrix"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setMatrix(2, 2); - } - | DMAT3 { - parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix"); - if (! parseContext.symbolTable.atBuiltInLevel()) - parseContext.doubleCheck($1.loc, "double matrix"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setMatrix(3, 3); - } - | DMAT4 { - parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix"); - if (! parseContext.symbolTable.atBuiltInLevel()) - parseContext.doubleCheck($1.loc, "double matrix"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setMatrix(4, 4); - } - | DMAT2X2 { - parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix"); - if (! parseContext.symbolTable.atBuiltInLevel()) - parseContext.doubleCheck($1.loc, "double matrix"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setMatrix(2, 2); - } - | DMAT2X3 { - parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix"); - if (! parseContext.symbolTable.atBuiltInLevel()) - parseContext.doubleCheck($1.loc, "double matrix"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setMatrix(2, 3); - } - | DMAT2X4 { - parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix"); - if (! parseContext.symbolTable.atBuiltInLevel()) - parseContext.doubleCheck($1.loc, "double matrix"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setMatrix(2, 4); - } - | DMAT3X2 { - parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix"); - if (! parseContext.symbolTable.atBuiltInLevel()) - parseContext.doubleCheck($1.loc, "double matrix"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setMatrix(3, 2); - } - | DMAT3X3 { - parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix"); - if (! parseContext.symbolTable.atBuiltInLevel()) - parseContext.doubleCheck($1.loc, "double matrix"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setMatrix(3, 3); - } - | DMAT3X4 { - parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix"); - if (! parseContext.symbolTable.atBuiltInLevel()) - parseContext.doubleCheck($1.loc, "double matrix"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setMatrix(3, 4); - } - | DMAT4X2 { - parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix"); - if (! parseContext.symbolTable.atBuiltInLevel()) - parseContext.doubleCheck($1.loc, "double matrix"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setMatrix(4, 2); - } - | DMAT4X3 { - parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix"); - if (! parseContext.symbolTable.atBuiltInLevel()) - parseContext.doubleCheck($1.loc, "double matrix"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setMatrix(4, 3); - } - | DMAT4X4 { - parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix"); - if (! parseContext.symbolTable.atBuiltInLevel()) - parseContext.doubleCheck($1.loc, "double matrix"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setMatrix(4, 4); - } - | F16MAT2 { - parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat16; - $$.setMatrix(2, 2); - } - | F16MAT3 { - parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat16; - $$.setMatrix(3, 3); - } - | F16MAT4 { - parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat16; - $$.setMatrix(4, 4); - } - | F16MAT2X2 { - parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat16; - $$.setMatrix(2, 2); - } - | F16MAT2X3 { - parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat16; - $$.setMatrix(2, 3); - } - | F16MAT2X4 { - parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat16; - $$.setMatrix(2, 4); - } - | F16MAT3X2 { - parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat16; - $$.setMatrix(3, 2); - } - | F16MAT3X3 { - parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat16; - $$.setMatrix(3, 3); - } - | F16MAT3X4 { - parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat16; - $$.setMatrix(3, 4); - } - | F16MAT4X2 { - parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat16; - $$.setMatrix(4, 2); - } - | F16MAT4X3 { - parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat16; - $$.setMatrix(4, 3); - } - | F16MAT4X4 { - 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); - } - | ACCSTRUCTNV { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtAccStruct; - } - | ACCSTRUCTEXT { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtAccStruct; - } - | RAYQUERYEXT { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtRayQuery; - } - | ATOMIC_UINT { - parseContext.vulkanRemoved($1.loc, "atomic counter types"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtAtomicUint; - } - | SAMPLER1D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, Esd1D); - } -GLSLANG_WEB_EXCLUDE_OFF - | SAMPLER2D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, Esd2D); - } - | SAMPLER3D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, Esd3D); - } - | SAMPLERCUBE { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, EsdCube); - } - | SAMPLER2DSHADOW { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, Esd2D, false, true); - } - | SAMPLERCUBESHADOW { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, EsdCube, false, true); - } - | SAMPLER2DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, Esd2D, true); - } - | SAMPLER2DARRAYSHADOW { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, Esd2D, true, true); - } -GLSLANG_WEB_EXCLUDE_ON - | SAMPLER1DSHADOW { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, Esd1D, false, true); - } - | SAMPLER1DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, Esd1D, true); - } - | SAMPLER1DARRAYSHADOW { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, Esd1D, true, true); - } - | SAMPLERCUBEARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, EsdCube, true); - } - | SAMPLERCUBEARRAYSHADOW { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, EsdCube, true, true); - } - | F16SAMPLER1D { - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, Esd1D); - } - | F16SAMPLER2D { - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, Esd2D); - } - | F16SAMPLER3D { - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, Esd3D); - } - | F16SAMPLERCUBE { - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, EsdCube); - } - | F16SAMPLER1DSHADOW { - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, Esd1D, false, true); - } - | F16SAMPLER2DSHADOW { - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, Esd2D, false, true); - } - | F16SAMPLERCUBESHADOW { - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, EsdCube, false, true); - } - | F16SAMPLER1DARRAY { - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, Esd1D, true); - } - | F16SAMPLER2DARRAY { - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, Esd2D, true); - } - | F16SAMPLER1DARRAYSHADOW { - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, Esd1D, true, true); - } - | F16SAMPLER2DARRAYSHADOW { - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, Esd2D, true, true); - } - | F16SAMPLERCUBEARRAY { - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, EsdCube, true); - } - | F16SAMPLERCUBEARRAYSHADOW { - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, EsdCube, true, true); - } - | ISAMPLER1D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtInt, Esd1D); - } -GLSLANG_WEB_EXCLUDE_OFF - | ISAMPLER2D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtInt, Esd2D); - } - | ISAMPLER3D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtInt, Esd3D); - } - | ISAMPLERCUBE { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtInt, EsdCube); - } - | ISAMPLER2DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtInt, Esd2D, true); - } - | USAMPLER2D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtUint, Esd2D); - } - | USAMPLER3D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtUint, Esd3D); - } - | USAMPLERCUBE { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtUint, EsdCube); - } -GLSLANG_WEB_EXCLUDE_ON - | ISAMPLER1DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtInt, Esd1D, true); - } - | ISAMPLERCUBEARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtInt, EsdCube, true); - } - | USAMPLER1D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtUint, Esd1D); - } - | USAMPLER1DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtUint, Esd1D, true); - } - | USAMPLERCUBEARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtUint, EsdCube, true); - } - | TEXTURECUBEARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat, EsdCube, true); - } - | ITEXTURECUBEARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtInt, EsdCube, true); - } - | UTEXTURECUBEARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtUint, EsdCube, true); - } -GLSLANG_WEB_EXCLUDE_OFF - | USAMPLER2DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtUint, Esd2D, true); - } - | TEXTURE2D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat, Esd2D); - } - | TEXTURE3D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat, Esd3D); - } - | TEXTURE2DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat, Esd2D, true); - } - | TEXTURECUBE { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat, EsdCube); - } - | ITEXTURE2D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtInt, Esd2D); - } - | ITEXTURE3D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtInt, Esd3D); - } - | ITEXTURECUBE { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtInt, EsdCube); - } - | ITEXTURE2DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtInt, Esd2D, true); - } - | UTEXTURE2D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtUint, Esd2D); - } - | UTEXTURE3D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtUint, Esd3D); - } - | UTEXTURECUBE { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtUint, EsdCube); - } - | UTEXTURE2DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtUint, Esd2D, true); - } - | SAMPLER { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setPureSampler(false); - } - | SAMPLERSHADOW { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setPureSampler(true); - } -GLSLANG_WEB_EXCLUDE_ON - | SAMPLER2DRECT { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, EsdRect); - } - | SAMPLER2DRECTSHADOW { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, EsdRect, false, true); - } - | F16SAMPLER2DRECT { - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, EsdRect); - } - | F16SAMPLER2DRECTSHADOW { - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, EsdRect, false, true); - } - | ISAMPLER2DRECT { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtInt, EsdRect); - } - | USAMPLER2DRECT { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtUint, EsdRect); - } - | SAMPLERBUFFER { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, EsdBuffer); - } - | F16SAMPLERBUFFER { - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, EsdBuffer); - } - | ISAMPLERBUFFER { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtInt, EsdBuffer); - } - | USAMPLERBUFFER { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtUint, EsdBuffer); - } - | SAMPLER2DMS { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, Esd2D, false, false, true); - } - | F16SAMPLER2DMS { - 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); - } - | ISAMPLER2DMS { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtInt, Esd2D, false, false, true); - } - | USAMPLER2DMS { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtUint, Esd2D, false, false, true); - } - | SAMPLER2DMSARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, Esd2D, true, false, true); - } - | F16SAMPLER2DMSARRAY { - 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); - } - | ISAMPLER2DMSARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtInt, Esd2D, true, false, true); - } - | USAMPLER2DMSARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtUint, Esd2D, true, false, true); - } - | TEXTURE1D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat, Esd1D); - } - | F16TEXTURE1D { - parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat16, Esd1D); - } - | F16TEXTURE2D { - parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat16, Esd2D); - } - | F16TEXTURE3D { - parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat16, Esd3D); - } - | F16TEXTURECUBE { - parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat16, EsdCube); - } - | TEXTURE1DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat, Esd1D, true); - } - | F16TEXTURE1DARRAY { - parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat16, Esd1D, true); - } - | F16TEXTURE2DARRAY { - parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat16, Esd2D, true); - } - | F16TEXTURECUBEARRAY { - parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat16, EsdCube, true); - } - | ITEXTURE1D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtInt, Esd1D); - } - | ITEXTURE1DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtInt, Esd1D, true); - } - | UTEXTURE1D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtUint, Esd1D); - } - | UTEXTURE1DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtUint, Esd1D, true); - } - | TEXTURE2DRECT { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat, EsdRect); - } - | F16TEXTURE2DRECT { - parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat16, EsdRect); - } - | ITEXTURE2DRECT { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtInt, EsdRect); - } - | UTEXTURE2DRECT { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtUint, EsdRect); - } - | TEXTUREBUFFER { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat, EsdBuffer); - } - | F16TEXTUREBUFFER { - parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat16, EsdBuffer); - } - | ITEXTUREBUFFER { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtInt, EsdBuffer); - } - | UTEXTUREBUFFER { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtUint, EsdBuffer); - } - | TEXTURE2DMS { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat, Esd2D, false, false, true); - } - | F16TEXTURE2DMS { - 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); - } - | ITEXTURE2DMS { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtInt, Esd2D, false, false, true); - } - | UTEXTURE2DMS { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtUint, Esd2D, false, false, true); - } - | TEXTURE2DMSARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat, Esd2D, true, false, true); - } - | F16TEXTURE2DMSARRAY { - 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); - } - | ITEXTURE2DMSARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtInt, Esd2D, true, false, true); - } - | UTEXTURE2DMSARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtUint, Esd2D, true, false, true); - } - | IMAGE1D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat, Esd1D); - } - | F16IMAGE1D { - parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat16, Esd1D); - } - | IIMAGE1D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt, Esd1D); - } - | UIMAGE1D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint, Esd1D); - } - | IMAGE2D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat, Esd2D); - } - | F16IMAGE2D { - parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat16, Esd2D); - } - | IIMAGE2D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt, Esd2D); - } - | UIMAGE2D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint, Esd2D); - } - | IMAGE3D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat, Esd3D); - } - | F16IMAGE3D { - parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat16, Esd3D); - } - | IIMAGE3D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt, Esd3D); - } - | UIMAGE3D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint, Esd3D); - } - | IMAGE2DRECT { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat, EsdRect); - } - | F16IMAGE2DRECT { - parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat16, EsdRect); - } - | IIMAGE2DRECT { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt, EsdRect); - } - | UIMAGE2DRECT { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint, EsdRect); - } - | IMAGECUBE { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat, EsdCube); - } - | F16IMAGECUBE { - parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat16, EsdCube); - } - | IIMAGECUBE { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt, EsdCube); - } - | UIMAGECUBE { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint, EsdCube); - } - | IMAGEBUFFER { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat, EsdBuffer); - } - | F16IMAGEBUFFER { - parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat16, EsdBuffer); - } - | IIMAGEBUFFER { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt, EsdBuffer); - } - | UIMAGEBUFFER { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint, EsdBuffer); - } - | IMAGE1DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat, Esd1D, true); - } - | F16IMAGE1DARRAY { - parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat16, Esd1D, true); - } - | IIMAGE1DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt, Esd1D, true); - } - | UIMAGE1DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint, Esd1D, true); - } - | IMAGE2DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat, Esd2D, true); - } - | F16IMAGE2DARRAY { - parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat16, Esd2D, true); - } - | IIMAGE2DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt, Esd2D, true); - } - | UIMAGE2DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint, Esd2D, true); - } - | IMAGECUBEARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat, EsdCube, true); - } - | F16IMAGECUBEARRAY { - parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat16, EsdCube, true); - } - | IIMAGECUBEARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt, EsdCube, true); - } - | UIMAGECUBEARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint, EsdCube, true); - } - | IMAGE2DMS { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat, Esd2D, false, false, true); - } - | F16IMAGE2DMS { - 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); - } - | IIMAGE2DMS { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt, Esd2D, false, false, true); - } - | UIMAGE2DMS { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint, Esd2D, false, false, true); - } - | IMAGE2DMSARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat, Esd2D, true, false, true); - } - | F16IMAGE2DMSARRAY { - 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); - } - | IIMAGE2DMSARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt, Esd2D, true, false, true); - } - | UIMAGE2DMSARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint, Esd2D, true, false, true); - } - | I64IMAGE1D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt64, Esd1D); - } - | U64IMAGE1D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint64, Esd1D); - } - | I64IMAGE2D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt64, Esd2D); - } - | U64IMAGE2D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint64, Esd2D); - } - | I64IMAGE3D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt64, Esd3D); - } - | U64IMAGE3D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint64, Esd3D); - } - | I64IMAGE2DRECT { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt64, EsdRect); - } - | U64IMAGE2DRECT { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint64, EsdRect); - } - | I64IMAGECUBE { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt64, EsdCube); - } - | U64IMAGECUBE { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint64, EsdCube); - } - | I64IMAGEBUFFER { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt64, EsdBuffer); - } - | U64IMAGEBUFFER { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint64, EsdBuffer); - } - | I64IMAGE1DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt64, Esd1D, true); - } - | U64IMAGE1DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint64, Esd1D, true); - } - | I64IMAGE2DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt64, Esd2D, true); - } - | U64IMAGE2DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint64, Esd2D, true); - } - | I64IMAGECUBEARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt64, EsdCube, true); - } - | U64IMAGECUBEARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint64, EsdCube, true); - } - | I64IMAGE2DMS { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt64, Esd2D, false, false, true); - } - | U64IMAGE2DMS { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint64, Esd2D, false, false, true); - } - | I64IMAGE2DMSARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt64, Esd2D, true, false, true); - } - | U64IMAGE2DMSARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint64, Esd2D, true, false, true); - } - | SAMPLEREXTERNALOES { // GL_OES_EGL_image_external - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, Esd2D); - $$.sampler.external = true; - } - | SAMPLEREXTERNAL2DY2YEXT { // GL_EXT_YUV_target - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, Esd2D); - $$.sampler.yuv = true; - } - | SUBPASSINPUT { - parseContext.requireStage($1.loc, EShLangFragment, "subpass input"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setSubpass(EbtFloat); - } - | SUBPASSINPUTMS { - parseContext.requireStage($1.loc, EShLangFragment, "subpass input"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setSubpass(EbtFloat, true); - } - | F16SUBPASSINPUT { - 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); - } - | F16SUBPASSINPUTMS { - 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); - } - | ISUBPASSINPUT { - parseContext.requireStage($1.loc, EShLangFragment, "subpass input"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setSubpass(EbtInt); - } - | ISUBPASSINPUTMS { - parseContext.requireStage($1.loc, EShLangFragment, "subpass input"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setSubpass(EbtInt, true); - } - | USUBPASSINPUT { - parseContext.requireStage($1.loc, EShLangFragment, "subpass input"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setSubpass(EbtUint); - } - | USUBPASSINPUTMS { - parseContext.requireStage($1.loc, EShLangFragment, "subpass input"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setSubpass(EbtUint, true); - } - | FCOOPMATNV { - parseContext.fcoopmatCheck($1.loc, "fcoopmatNV", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.coopmat = true; - } - | ICOOPMATNV { - parseContext.intcoopmatCheck($1.loc, "icoopmatNV", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt; - $$.coopmat = true; - } - | UCOOPMATNV { - parseContext.intcoopmatCheck($1.loc, "ucoopmatNV", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint; - $$.coopmat = true; - } - | spirv_type_specifier { - parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V type specifier"); - $$ = $1; - } -GLSLANG_WEB_EXCLUDE_OFF - | struct_specifier { - $$ = $1; - $$.qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; - parseContext.structTypeCheck($$.loc, $$); - } - | TYPE_NAME { - // - // This is for user defined type names. The lexical phase looked up the - // type. - // - if (const TVariable* variable = ($1.symbol)->getAsVariable()) { - const TType& structure = variable->getType(); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtStruct; - $$.userDef = &structure; - } else - parseContext.error($1.loc, "expected type name", $1.string->c_str(), ""); - } - ; - -precision_qualifier - : HIGH_PRECISION { - parseContext.profileRequires($1.loc, ENoProfile, 130, 0, "highp precision qualifier"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - parseContext.handlePrecisionQualifier($1.loc, $$.qualifier, EpqHigh); - } - | MEDIUM_PRECISION { - parseContext.profileRequires($1.loc, ENoProfile, 130, 0, "mediump precision qualifier"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - parseContext.handlePrecisionQualifier($1.loc, $$.qualifier, EpqMedium); - } - | LOW_PRECISION { - parseContext.profileRequires($1.loc, ENoProfile, 130, 0, "lowp precision qualifier"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - parseContext.handlePrecisionQualifier($1.loc, $$.qualifier, EpqLow); - } - ; - -struct_specifier - : STRUCT IDENTIFIER LEFT_BRACE { parseContext.nestedStructCheck($1.loc); } struct_declaration_list RIGHT_BRACE { - TType* structure = new TType($5, *$2.string); - parseContext.structArrayCheck($2.loc, *structure); - TVariable* userTypeDef = new TVariable($2.string, *structure, true); - if (! parseContext.symbolTable.insert(*userTypeDef)) - parseContext.error($2.loc, "redefinition", $2.string->c_str(), "struct"); - $$.init($1.loc); - $$.basicType = EbtStruct; - $$.userDef = structure; - --parseContext.structNestingLevel; - } - | STRUCT LEFT_BRACE { parseContext.nestedStructCheck($1.loc); } struct_declaration_list RIGHT_BRACE { - TType* structure = new TType($4, TString("")); - $$.init($1.loc); - $$.basicType = EbtStruct; - $$.userDef = structure; - --parseContext.structNestingLevel; - } - ; - -struct_declaration_list - : struct_declaration { - $$ = $1; - } - | struct_declaration_list struct_declaration { - $$ = $1; - for (unsigned int i = 0; i < $2->size(); ++i) { - for (unsigned int j = 0; j < $$->size(); ++j) { - if ((*$$)[j].type->getFieldName() == (*$2)[i].type->getFieldName()) - parseContext.error((*$2)[i].loc, "duplicate member name:", "", (*$2)[i].type->getFieldName().c_str()); - } - $$->push_back((*$2)[i]); - } - } - ; - -struct_declaration - : type_specifier struct_declarator_list SEMICOLON { - if ($1.arraySizes) { - parseContext.profileRequires($1.loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires($1.loc, EEsProfile, 300, 0, "arrayed type"); - if (parseContext.isEsProfile()) - parseContext.arraySizeRequiredCheck($1.loc, *$1.arraySizes); - } - - $$ = $2; - - parseContext.voidErrorCheck($1.loc, (*$2)[0].type->getFieldName(), $1.basicType); - 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); - } - } - | type_qualifier type_specifier struct_declarator_list SEMICOLON { - 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"); - if (parseContext.isEsProfile()) - parseContext.arraySizeRequiredCheck($2.loc, *$2.arraySizes); - } - - $$ = $3; - - 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) { - 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); - } - } - ; - -struct_declarator_list - : struct_declarator { - $$ = new TTypeList; - $$->push_back($1); - } - | struct_declarator_list COMMA struct_declarator { - $$->push_back($3); - } - ; - -struct_declarator - : IDENTIFIER { - $$.type = new TType(EbtVoid); - $$.loc = $1.loc; - $$.type->setFieldName(*$1.string); - } - | IDENTIFIER array_specifier { - parseContext.arrayOfArrayVersionCheck($1.loc, $2.arraySizes); - - $$.type = new TType(EbtVoid); - $$.loc = $1.loc; - $$.type->setFieldName(*$1.string); - $$.type->transferArraySizes($2.arraySizes); - } - ; - -initializer - : assignment_expression { - $$ = $1; - } -GLSLANG_WEB_EXCLUDE_ON - | LEFT_BRACE initializer_list RIGHT_BRACE { - const char* initFeature = "{ } style initializers"; - parseContext.requireProfile($1.loc, ~EEsProfile, initFeature); - parseContext.profileRequires($1.loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); - $$ = $2; - } - | LEFT_BRACE initializer_list COMMA RIGHT_BRACE { - const char* initFeature = "{ } style initializers"; - parseContext.requireProfile($1.loc, ~EEsProfile, initFeature); - parseContext.profileRequires($1.loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); - $$ = $2; - } - | LEFT_BRACE RIGHT_BRACE { - const char* initFeature = "empty { } initializer"; - parseContext.profileRequires($1.loc, EEsProfile, 0, E_GL_EXT_null_initializer, initFeature); - parseContext.profileRequires($1.loc, ~EEsProfile, 0, E_GL_EXT_null_initializer, initFeature); - $$ = parseContext.intermediate.makeAggregate($1.loc); - } -GLSLANG_WEB_EXCLUDE_OFF - ; - -GLSLANG_WEB_EXCLUDE_ON -initializer_list - : initializer { - $$ = parseContext.intermediate.growAggregate(0, $1, $1->getLoc()); - } - | initializer_list COMMA initializer { - $$ = parseContext.intermediate.growAggregate($1, $3); - } - ; -GLSLANG_WEB_EXCLUDE_OFF - -declaration_statement - : declaration { $$ = $1; } - ; - -statement - : compound_statement { $$ = $1; } - | simple_statement { $$ = $1; } - ; - -// Grammar Note: labeled statements for switch statements only; 'goto' is not supported. - -simple_statement - : declaration_statement { $$ = $1; } - | expression_statement { $$ = $1; } - | selection_statement { $$ = $1; } - | switch_statement { $$ = $1; } - | case_label { $$ = $1; } - | iteration_statement { $$ = $1; } - | jump_statement { $$ = $1; } -GLSLANG_WEB_EXCLUDE_ON - | demote_statement { $$ = $1; } -GLSLANG_WEB_EXCLUDE_OFF - ; - -GLSLANG_WEB_EXCLUDE_ON -demote_statement - : DEMOTE SEMICOLON { - parseContext.requireStage($1.loc, EShLangFragment, "demote"); - parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_demote_to_helper_invocation, "demote"); - $$ = parseContext.intermediate.addBranch(EOpDemote, $1.loc); - } - ; -GLSLANG_WEB_EXCLUDE_OFF - -compound_statement - : LEFT_BRACE RIGHT_BRACE { $$ = 0; } - | LEFT_BRACE { - parseContext.symbolTable.push(); - ++parseContext.statementNestingLevel; - } - statement_list { - parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - --parseContext.statementNestingLevel; - } - RIGHT_BRACE { - if ($3 && $3->getAsAggregate()) - $3->getAsAggregate()->setOperator(EOpSequence); - $$ = $3; - } - ; - -statement_no_new_scope - : compound_statement_no_new_scope { $$ = $1; } - | simple_statement { $$ = $1; } - ; - -statement_scoped - : { - ++parseContext.controlFlowNestingLevel; - } - compound_statement { - --parseContext.controlFlowNestingLevel; - $$ = $2; - } - | { - parseContext.symbolTable.push(); - ++parseContext.statementNestingLevel; - ++parseContext.controlFlowNestingLevel; - } - simple_statement { - parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - --parseContext.statementNestingLevel; - --parseContext.controlFlowNestingLevel; - $$ = $2; - } - -compound_statement_no_new_scope - // Statement that doesn't create a new scope, for selection_statement, iteration_statement - : LEFT_BRACE RIGHT_BRACE { - $$ = 0; - } - | LEFT_BRACE statement_list RIGHT_BRACE { - if ($2 && $2->getAsAggregate()) - $2->getAsAggregate()->setOperator(EOpSequence); - $$ = $2; - } - ; - -statement_list - : statement { - $$ = parseContext.intermediate.makeAggregate($1); - if ($1 && $1->getAsBranchNode() && ($1->getAsBranchNode()->getFlowOp() == EOpCase || - $1->getAsBranchNode()->getFlowOp() == EOpDefault)) { - parseContext.wrapupSwitchSubsequence(0, $1); - $$ = 0; // start a fresh subsequence for what's after this case - } - } - | statement_list statement { - if ($2 && $2->getAsBranchNode() && ($2->getAsBranchNode()->getFlowOp() == EOpCase || - $2->getAsBranchNode()->getFlowOp() == EOpDefault)) { - parseContext.wrapupSwitchSubsequence($1 ? $1->getAsAggregate() : 0, $2); - $$ = 0; // start a fresh subsequence for what's after this case - } else - $$ = parseContext.intermediate.growAggregate($1, $2); - } - ; - -expression_statement - : SEMICOLON { $$ = 0; } - | expression SEMICOLON { $$ = static_cast($1); } - ; - -selection_statement - : selection_statement_nonattributed { - $$ = $1; - } -GLSLANG_WEB_EXCLUDE_ON - | attribute selection_statement_nonattributed { - parseContext.requireExtensions($2->getLoc(), 1, &E_GL_EXT_control_flow_attributes, "attribute"); - parseContext.handleSelectionAttributes(*$1, $2); - $$ = $2; - } -GLSLANG_WEB_EXCLUDE_OFF - -selection_statement_nonattributed - : IF LEFT_PAREN expression RIGHT_PAREN selection_rest_statement { - parseContext.boolCheck($1.loc, $3); - $$ = parseContext.intermediate.addSelection($3, $5, $1.loc); - } - ; - -selection_rest_statement - : statement_scoped ELSE statement_scoped { - $$.node1 = $1; - $$.node2 = $3; - } - | statement_scoped { - $$.node1 = $1; - $$.node2 = 0; - } - ; - -condition - // In 1996 c++ draft, conditions can include single declarations - : expression { - $$ = $1; - parseContext.boolCheck($1->getLoc(), $1); - } - | fully_specified_type IDENTIFIER EQUAL initializer { - parseContext.boolCheck($2.loc, $1); - - TType type($1); - TIntermNode* initNode = parseContext.declareVariable($2.loc, *$2.string, $1, 0, $4); - if (initNode) - $$ = initNode->getAsTyped(); - else - $$ = 0; - } - ; - -switch_statement - : switch_statement_nonattributed { - $$ = $1; - } -GLSLANG_WEB_EXCLUDE_ON - | attribute switch_statement_nonattributed { - parseContext.requireExtensions($2->getLoc(), 1, &E_GL_EXT_control_flow_attributes, "attribute"); - parseContext.handleSwitchAttributes(*$1, $2); - $$ = $2; - } -GLSLANG_WEB_EXCLUDE_OFF - -switch_statement_nonattributed - : SWITCH LEFT_PAREN expression RIGHT_PAREN { - // 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(); - } - LEFT_BRACE switch_statement_list RIGHT_BRACE { - $$ = parseContext.addSwitch($1.loc, $3, $7 ? $7->getAsAggregate() : 0); - delete parseContext.switchSequenceStack.back(); - parseContext.switchSequenceStack.pop_back(); - parseContext.switchLevel.pop_back(); - parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - --parseContext.statementNestingLevel; - --parseContext.controlFlowNestingLevel; - } - ; - -switch_statement_list - : /* nothing */ { - $$ = 0; - } - | statement_list { - $$ = $1; - } - ; - -case_label - : CASE expression COLON { - $$ = 0; - if (parseContext.switchLevel.size() == 0) - parseContext.error($1.loc, "cannot appear outside switch statement", "case", ""); - else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel) - parseContext.error($1.loc, "cannot be nested inside control flow", "case", ""); - else { - parseContext.constantValueCheck($2, "case"); - parseContext.integerCheck($2, "case"); - $$ = parseContext.intermediate.addBranch(EOpCase, $2, $1.loc); - } - } - | DEFAULT COLON { - $$ = 0; - if (parseContext.switchLevel.size() == 0) - parseContext.error($1.loc, "cannot appear outside switch statement", "default", ""); - else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel) - parseContext.error($1.loc, "cannot be nested inside control flow", "default", ""); - else - $$ = parseContext.intermediate.addBranch(EOpDefault, $1.loc); - } - ; - -iteration_statement - : iteration_statement_nonattributed { - $$ = $1; - } -GLSLANG_WEB_EXCLUDE_ON - | attribute iteration_statement_nonattributed { - parseContext.requireExtensions($2->getLoc(), 1, &E_GL_EXT_control_flow_attributes, "attribute"); - parseContext.handleLoopAttributes(*$1, $2); - $$ = $2; - } -GLSLANG_WEB_EXCLUDE_OFF - -iteration_statement_nonattributed - : WHILE LEFT_PAREN { - if (! parseContext.limits.whileLoops) - parseContext.error($1.loc, "while loops not available", "limitation", ""); - parseContext.symbolTable.push(); - ++parseContext.loopNestingLevel; - ++parseContext.statementNestingLevel; - ++parseContext.controlFlowNestingLevel; - } - condition RIGHT_PAREN statement_no_new_scope { - parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - $$ = parseContext.intermediate.addLoop($6, $4, 0, true, $1.loc); - --parseContext.loopNestingLevel; - --parseContext.statementNestingLevel; - --parseContext.controlFlowNestingLevel; - } - | DO { - parseContext.symbolTable.push(); - ++parseContext.loopNestingLevel; - ++parseContext.statementNestingLevel; - ++parseContext.controlFlowNestingLevel; - } - statement WHILE LEFT_PAREN expression RIGHT_PAREN SEMICOLON { - if (! parseContext.limits.whileLoops) - parseContext.error($1.loc, "do-while loops not available", "limitation", ""); - - parseContext.boolCheck($8.loc, $6); - - $$ = parseContext.intermediate.addLoop($3, $6, 0, false, $4.loc); - parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - --parseContext.loopNestingLevel; - --parseContext.statementNestingLevel; - --parseContext.controlFlowNestingLevel; - } - | FOR LEFT_PAREN { - parseContext.symbolTable.push(); - ++parseContext.loopNestingLevel; - ++parseContext.statementNestingLevel; - ++parseContext.controlFlowNestingLevel; - } - for_init_statement for_rest_statement RIGHT_PAREN statement_no_new_scope { - parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - $$ = parseContext.intermediate.makeAggregate($4, $2.loc); - TIntermLoop* forLoop = parseContext.intermediate.addLoop($7, reinterpret_cast($5.node1), reinterpret_cast($5.node2), true, $1.loc); - if (! parseContext.limits.nonInductiveForLoops) - parseContext.inductiveLoopCheck($1.loc, $4, forLoop); - $$ = parseContext.intermediate.growAggregate($$, forLoop, $1.loc); - $$->getAsAggregate()->setOperator(EOpSequence); - --parseContext.loopNestingLevel; - --parseContext.statementNestingLevel; - --parseContext.controlFlowNestingLevel; - } - ; - -for_init_statement - : expression_statement { - $$ = $1; - } - | declaration_statement { - $$ = $1; - } - ; - -conditionopt - : condition { - $$ = $1; - } - | /* May be null */ { - $$ = 0; - } - ; - -for_rest_statement - : conditionopt SEMICOLON { - $$.node1 = $1; - $$.node2 = 0; - } - | conditionopt SEMICOLON expression { - $$.node1 = $1; - $$.node2 = $3; - } - ; - -jump_statement - : CONTINUE SEMICOLON { - if (parseContext.loopNestingLevel <= 0) - parseContext.error($1.loc, "continue statement only allowed in loops", "", ""); - $$ = parseContext.intermediate.addBranch(EOpContinue, $1.loc); - } - | BREAK SEMICOLON { - if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0) - parseContext.error($1.loc, "break statement only allowed in switch and loops", "", ""); - $$ = parseContext.intermediate.addBranch(EOpBreak, $1.loc); - } - | RETURN SEMICOLON { - $$ = parseContext.intermediate.addBranch(EOpReturn, $1.loc); - if (parseContext.currentFunctionType->getBasicType() != EbtVoid) - parseContext.error($1.loc, "non-void function must return a value", "return", ""); - if (parseContext.inMain) - parseContext.postEntryPointReturn = true; - } - | RETURN expression SEMICOLON { - $$ = parseContext.handleReturnValue($1.loc, $2); - } - | DISCARD SEMICOLON { - parseContext.requireStage($1.loc, EShLangFragment, "discard"); - $$ = parseContext.intermediate.addBranch(EOpKill, $1.loc); - } - | TERMINATE_INVOCATION SEMICOLON { - parseContext.requireStage($1.loc, EShLangFragment, "terminateInvocation"); - $$ = parseContext.intermediate.addBranch(EOpTerminateInvocation, $1.loc); - } -GLSLANG_WEB_EXCLUDE_ON - | TERMINATE_RAY SEMICOLON { - parseContext.requireStage($1.loc, EShLangAnyHit, "terminateRayEXT"); - $$ = parseContext.intermediate.addBranch(EOpTerminateRayKHR, $1.loc); - } - | IGNORE_INTERSECTION SEMICOLON { - parseContext.requireStage($1.loc, EShLangAnyHit, "ignoreIntersectionEXT"); - $$ = parseContext.intermediate.addBranch(EOpIgnoreIntersectionKHR, $1.loc); - } -GLSLANG_WEB_EXCLUDE_OFF - ; - -// Grammar Note: No 'goto'. Gotos are not supported. - -translation_unit - : external_declaration { - $$ = $1; - parseContext.intermediate.setTreeRoot($$); - } - | translation_unit external_declaration { - if ($2 != nullptr) { - $$ = parseContext.intermediate.growAggregate($1, $2); - parseContext.intermediate.setTreeRoot($$); - } - } - ; - -external_declaration - : function_definition { - $$ = $1; - } - | declaration { - $$ = $1; - } -GLSLANG_WEB_EXCLUDE_ON - | SEMICOLON { - parseContext.requireProfile($1.loc, ~EEsProfile, "extraneous semicolon"); - parseContext.profileRequires($1.loc, ~EEsProfile, 460, nullptr, "extraneous semicolon"); - $$ = nullptr; - } -GLSLANG_WEB_EXCLUDE_OFF - ; - -function_definition - : function_prototype { - $1.function = parseContext.handleFunctionDeclarator($1.loc, *$1.function, false /* not prototype */); - $1.intermNode = parseContext.handleFunctionDefinition($1.loc, *$1.function); - - // For ES 100 only, according to ES shading language 100 spec: A function - // body has a scope nested inside the function's definition. - if (parseContext.profile == EEsProfile && parseContext.version == 100) - { - parseContext.symbolTable.push(); - ++parseContext.statementNestingLevel; - } - } - compound_statement_no_new_scope { - // May be best done as post process phase on intermediate code - if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue) - parseContext.error($1.loc, "function does not return a value:", "", $1.function->getName().c_str()); - parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - $$ = parseContext.intermediate.growAggregate($1.intermNode, $3); - parseContext.intermediate.setAggregateOperator($$, EOpFunction, $1.function->getType(), $1.loc); - $$->getAsAggregate()->setName($1.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 - $$->getAsAggregate()->setOptimize(parseContext.contextPragma.optimize); - $$->getAsAggregate()->setDebug(parseContext.contextPragma.debug); - $$->getAsAggregate()->setPragmaTable(parseContext.contextPragma.pragmaTable); - - // Set currentFunctionType to empty pointer when goes outside of the function - parseContext.currentFunctionType = nullptr; - - // For ES 100 only, according to ES shading language 100 spec: A function - // body has a scope nested inside the function's definition. - if (parseContext.profile == EEsProfile && parseContext.version == 100) - { - parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - --parseContext.statementNestingLevel; - } - } - ; - -GLSLANG_WEB_EXCLUDE_ON -attribute - : LEFT_BRACKET LEFT_BRACKET attribute_list RIGHT_BRACKET RIGHT_BRACKET { - $$ = $3; - } - -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); - } -GLSLANG_WEB_EXCLUDE_OFF - -GLSLANG_WEB_EXCLUDE_ON -spirv_requirements_list - : spirv_requirements_parameter { - $$ = $1; - } - | spirv_requirements_list COMMA spirv_requirements_parameter { - $$ = parseContext.mergeSpirvRequirements($2.loc, $1, $3); - } - -spirv_requirements_parameter - : IDENTIFIER EQUAL LEFT_BRACKET spirv_extension_list RIGHT_BRACKET { - $$ = parseContext.makeSpirvRequirement($2.loc, *$1.string, $4->getAsAggregate(), nullptr); - } - | IDENTIFIER EQUAL LEFT_BRACKET spirv_capability_list RIGHT_BRACKET { - $$ = parseContext.makeSpirvRequirement($2.loc, *$1.string, nullptr, $4->getAsAggregate()); - } - -spirv_extension_list - : STRING_LITERAL { - $$ = parseContext.intermediate.makeAggregate(parseContext.intermediate.addConstantUnion($1.string, $1.loc, true)); - } - | spirv_extension_list COMMA STRING_LITERAL { - $$ = parseContext.intermediate.growAggregate($1, parseContext.intermediate.addConstantUnion($3.string, $3.loc, true)); - } - -spirv_capability_list - : INTCONSTANT { - $$ = parseContext.intermediate.makeAggregate(parseContext.intermediate.addConstantUnion($1.i, $1.loc, true)); - } - | spirv_capability_list COMMA INTCONSTANT { - $$ = parseContext.intermediate.growAggregate($1, parseContext.intermediate.addConstantUnion($3.i, $3.loc, true)); - } - -spirv_execution_mode_qualifier - : SPIRV_EXECUTION_MODE LEFT_PAREN INTCONSTANT RIGHT_PAREN { - parseContext.intermediate.insertSpirvExecutionMode($3.i); - $$ = 0; - } - | SPIRV_EXECUTION_MODE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN { - parseContext.intermediate.insertSpirvRequirement($3); - parseContext.intermediate.insertSpirvExecutionMode($5.i); - $$ = 0; - } - | SPIRV_EXECUTION_MODE LEFT_PAREN INTCONSTANT COMMA spirv_execution_mode_parameter_list RIGHT_PAREN { - parseContext.intermediate.insertSpirvExecutionMode($3.i, $5->getAsAggregate()); - $$ = 0; - } - | SPIRV_EXECUTION_MODE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_execution_mode_parameter_list RIGHT_PAREN { - parseContext.intermediate.insertSpirvRequirement($3); - parseContext.intermediate.insertSpirvExecutionMode($5.i, $7->getAsAggregate()); - $$ = 0; - } - | SPIRV_EXECUTION_MODE_ID LEFT_PAREN INTCONSTANT COMMA spirv_execution_mode_id_parameter_list RIGHT_PAREN { - parseContext.intermediate.insertSpirvExecutionModeId($3.i, $5->getAsAggregate()); - $$ = 0; - } - | SPIRV_EXECUTION_MODE_ID LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_execution_mode_id_parameter_list RIGHT_PAREN { - parseContext.intermediate.insertSpirvRequirement($3); - parseContext.intermediate.insertSpirvExecutionModeId($5.i, $7->getAsAggregate()); - $$ = 0; - } - -spirv_execution_mode_parameter_list - : spirv_execution_mode_parameter { - $$ = parseContext.intermediate.makeAggregate($1); - } - | spirv_execution_mode_parameter_list COMMA spirv_execution_mode_parameter { - $$ = parseContext.intermediate.growAggregate($1, $3); - } - -spirv_execution_mode_parameter - : FLOATCONSTANT { - $$ = parseContext.intermediate.addConstantUnion($1.d, EbtFloat, $1.loc, true); - } - | INTCONSTANT { - $$ = parseContext.intermediate.addConstantUnion($1.i, $1.loc, true); - } - | UINTCONSTANT { - $$ = parseContext.intermediate.addConstantUnion($1.u, $1.loc, true); - } - | BOOLCONSTANT { - $$ = parseContext.intermediate.addConstantUnion($1.b, $1.loc, true); - } - | STRING_LITERAL { - $$ = parseContext.intermediate.addConstantUnion($1.string, $1.loc, true); - } - -spirv_execution_mode_id_parameter_list - : constant_expression { - if ($1->getBasicType() != EbtFloat && - $1->getBasicType() != EbtInt && - $1->getBasicType() != EbtUint && - $1->getBasicType() != EbtBool && - $1->getBasicType() != EbtString) - parseContext.error($1->getLoc(), "this type not allowed", $1->getType().getBasicString(), ""); - $$ = parseContext.intermediate.makeAggregate($1); - } - | spirv_execution_mode_id_parameter_list COMMA constant_expression { - if ($3->getBasicType() != EbtFloat && - $3->getBasicType() != EbtInt && - $3->getBasicType() != EbtUint && - $3->getBasicType() != EbtBool && - $3->getBasicType() != EbtString) - parseContext.error($3->getLoc(), "this type not allowed", $3->getType().getBasicString(), ""); - $$ = parseContext.intermediate.growAggregate($1, $3); - } - -spirv_storage_class_qualifier - : SPIRV_STORAGE_CLASS LEFT_PAREN INTCONSTANT RIGHT_PAREN { - $$.init($1.loc); - $$.qualifier.storage = EvqSpirvStorageClass; - $$.qualifier.spirvStorageClass = $3.i; - } - | SPIRV_STORAGE_CLASS LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN { - $$.init($1.loc); - parseContext.intermediate.insertSpirvRequirement($3); - $$.qualifier.storage = EvqSpirvStorageClass; - $$.qualifier.spirvStorageClass = $5.i; - } - -spirv_decorate_qualifier - : SPIRV_DECORATE LEFT_PAREN INTCONSTANT RIGHT_PAREN{ - $$.init($1.loc); - $$.qualifier.setSpirvDecorate($3.i); - } - | SPIRV_DECORATE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN{ - $$.init($1.loc); - parseContext.intermediate.insertSpirvRequirement($3); - $$.qualifier.setSpirvDecorate($5.i); - } - | SPIRV_DECORATE LEFT_PAREN INTCONSTANT COMMA spirv_decorate_parameter_list RIGHT_PAREN { - $$.init($1.loc); - $$.qualifier.setSpirvDecorate($3.i, $5->getAsAggregate()); - } - | SPIRV_DECORATE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_parameter_list RIGHT_PAREN { - $$.init($1.loc); - parseContext.intermediate.insertSpirvRequirement($3); - $$.qualifier.setSpirvDecorate($5.i, $7->getAsAggregate()); - } - | SPIRV_DECORATE_ID LEFT_PAREN INTCONSTANT COMMA spirv_decorate_id_parameter_list RIGHT_PAREN { - $$.init($1.loc); - $$.qualifier.setSpirvDecorateId($3.i, $5->getAsAggregate()); - } - | SPIRV_DECORATE_ID LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_id_parameter_list RIGHT_PAREN { - $$.init($1.loc); - parseContext.intermediate.insertSpirvRequirement($3); - $$.qualifier.setSpirvDecorateId($5.i, $7->getAsAggregate()); - } - | SPIRV_DECORATE_STRING LEFT_PAREN INTCONSTANT COMMA spirv_decorate_string_parameter_list RIGHT_PAREN { - $$.init($1.loc); - $$.qualifier.setSpirvDecorateString($3.i, $5->getAsAggregate()); - } - | SPIRV_DECORATE_STRING LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_string_parameter_list RIGHT_PAREN { - $$.init($1.loc); - parseContext.intermediate.insertSpirvRequirement($3); - $$.qualifier.setSpirvDecorateString($5.i, $7->getAsAggregate()); - } - -spirv_decorate_parameter_list - : spirv_decorate_parameter { - $$ = parseContext.intermediate.makeAggregate($1); - } - | spirv_decorate_parameter_list COMMA spirv_decorate_parameter { - $$ = parseContext.intermediate.growAggregate($1, $3); - } - -spirv_decorate_parameter - : FLOATCONSTANT { - $$ = parseContext.intermediate.addConstantUnion($1.d, EbtFloat, $1.loc, true); - } - | INTCONSTANT { - $$ = parseContext.intermediate.addConstantUnion($1.i, $1.loc, true); - } - | UINTCONSTANT { - $$ = parseContext.intermediate.addConstantUnion($1.u, $1.loc, true); - } - | BOOLCONSTANT { - $$ = parseContext.intermediate.addConstantUnion($1.b, $1.loc, true); - } - -spirv_decorate_id_parameter_list - : constant_expression { - if ($1->getBasicType() != EbtFloat && - $1->getBasicType() != EbtInt && - $1->getBasicType() != EbtUint && - $1->getBasicType() != EbtBool) - parseContext.error($1->getLoc(), "this type not allowed", $1->getType().getBasicString(), ""); - $$ = parseContext.intermediate.makeAggregate($1); - } - | spirv_decorate_id_parameter_list COMMA constant_expression { - if ($3->getBasicType() != EbtFloat && - $3->getBasicType() != EbtInt && - $3->getBasicType() != EbtUint && - $3->getBasicType() != EbtBool) - parseContext.error($3->getLoc(), "this type not allowed", $3->getType().getBasicString(), ""); - $$ = parseContext.intermediate.growAggregate($1, $3); - } - -spirv_decorate_string_parameter_list - : STRING_LITERAL { - $$ = parseContext.intermediate.makeAggregate( - parseContext.intermediate.addConstantUnion($1.string, $1.loc, true)); - } - | spirv_decorate_string_parameter_list COMMA STRING_LITERAL { - $$ = parseContext.intermediate.growAggregate($1, parseContext.intermediate.addConstantUnion($3.string, $3.loc, true)); - } - -spirv_type_specifier - : SPIRV_TYPE LEFT_PAREN spirv_instruction_qualifier_list COMMA spirv_type_parameter_list RIGHT_PAREN { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.setSpirvType(*$3, $5); - } - | SPIRV_TYPE LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list COMMA spirv_type_parameter_list RIGHT_PAREN { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - parseContext.intermediate.insertSpirvRequirement($3); - $$.setSpirvType(*$5, $7); - } - | SPIRV_TYPE LEFT_PAREN spirv_instruction_qualifier_list RIGHT_PAREN { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.setSpirvType(*$3); - } - | SPIRV_TYPE LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list RIGHT_PAREN { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - parseContext.intermediate.insertSpirvRequirement($3); - $$.setSpirvType(*$5); - } - -spirv_type_parameter_list - : spirv_type_parameter { - $$ = $1; - } - | spirv_type_parameter_list COMMA spirv_type_parameter { - $$ = parseContext.mergeSpirvTypeParameters($1, $3); - } - -spirv_type_parameter - : constant_expression { - $$ = parseContext.makeSpirvTypeParameters($1->getLoc(), $1->getAsConstantUnion()); - } - -spirv_instruction_qualifier - : SPIRV_INSTRUCTION LEFT_PAREN spirv_instruction_qualifier_list RIGHT_PAREN { - $$ = $3; - } - | SPIRV_INSTRUCTION LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list RIGHT_PAREN { - parseContext.intermediate.insertSpirvRequirement($3); - $$ = $5; - } - -spirv_instruction_qualifier_list - : spirv_instruction_qualifier_id { - $$ = $1; - } - | spirv_instruction_qualifier_list COMMA spirv_instruction_qualifier_id { - $$ = parseContext.mergeSpirvInstruction($2.loc, $1, $3); - } - -spirv_instruction_qualifier_id - : IDENTIFIER EQUAL STRING_LITERAL { - $$ = parseContext.makeSpirvInstruction($2.loc, *$1.string, *$3.string); - } - | IDENTIFIER EQUAL INTCONSTANT { - $$ = parseContext.makeSpirvInstruction($2.loc, *$1.string, $3.i); - } -GLSLANG_WEB_EXCLUDE_OFF - -%% diff --git a/deps/glslang/glslang/MachineIndependent/glslang.y b/deps/glslang/glslang/MachineIndependent/glslang.y deleted file mode 100644 index 93c98995..00000000 --- a/deps/glslang/glslang/MachineIndependent/glslang.y +++ /dev/null @@ -1,4397 +0,0 @@ -// -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2012-2013 LunarG, Inc. -// Copyright (C) 2017 ARM Limited. -// Copyright (C) 2015-2019 Google, Inc. -// Modifications Copyright (C) 2020 Advanced Micro Devices, 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: -// -// 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. -// - -// -// Do not edit the .y file, only edit the .m4 file. -// The .y bison file is not a source file, it is a derivative of the .m4 file. -// The m4 file needs to be processed by m4 to generate the .y bison file. -// -// Code sandwiched between a pair: -// -// GLSLANG_WEB_EXCLUDE_ON -// ... -// ... -// ... -// GLSLANG_WEB_EXCLUDE_OFF -// -// Will be excluded from the grammar when m4 is executed as: -// -// m4 -P -DGLSLANG_WEB -// -// It will be included when m4 is executed as: -// -// m4 -P -// - - - - -/** - * This is bison grammar and productions for parsing all versions of the - * GLSL shading languages. - */ -%{ - -/* 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; - -%} - -%define parse.error verbose - -%union { - 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; - glslang::TSpirvRequirement* spirvReq; - glslang::TSpirvInstruction* spirvInst; - glslang::TSpirvTypeParameters* spirvTypeParams; - }; - union { - glslang::TPublicType type; - glslang::TFunction* function; - glslang::TParameter param; - glslang::TTypeLoc typeLine; - glslang::TTypeList* typeList; - glslang::TArraySizes* arraySizes; - glslang::TIdentifierList* identifierList; - }; - glslang::TArraySizes* typeParameters; - } interm; -} - -%{ - -/* 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&); - -%} - -%parse-param {glslang::TParseContext* pParseContext} -%lex-param {parseContext} -%pure-parser // enable thread safety -%expect 1 // One shift reduce conflict because of if | else - -%token CONST BOOL INT UINT FLOAT -%token BVEC2 BVEC3 BVEC4 -%token IVEC2 IVEC3 IVEC4 -%token UVEC2 UVEC3 UVEC4 -%token VEC2 VEC3 VEC4 -%token MAT2 MAT3 MAT4 -%token MAT2X2 MAT2X3 MAT2X4 -%token MAT3X2 MAT3X3 MAT3X4 -%token MAT4X2 MAT4X3 MAT4X4 - -// combined image/sampler -%token SAMPLER2D SAMPLER3D SAMPLERCUBE SAMPLER2DSHADOW -%token SAMPLERCUBESHADOW SAMPLER2DARRAY -%token SAMPLER2DARRAYSHADOW ISAMPLER2D ISAMPLER3D ISAMPLERCUBE -%token ISAMPLER2DARRAY USAMPLER2D USAMPLER3D -%token USAMPLERCUBE USAMPLER2DARRAY - -// separate image/sampler -%token SAMPLER SAMPLERSHADOW -%token TEXTURE2D TEXTURE3D TEXTURECUBE TEXTURE2DARRAY -%token ITEXTURE2D ITEXTURE3D ITEXTURECUBE ITEXTURE2DARRAY -%token UTEXTURE2D UTEXTURE3D UTEXTURECUBE UTEXTURE2DARRAY - - - -%token ATTRIBUTE VARYING -%token FLOAT16_T FLOAT32_T DOUBLE FLOAT64_T -%token INT64_T UINT64_T INT32_T UINT32_T INT16_T UINT16_T INT8_T UINT8_T -%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 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 DMAT2X2 DMAT2X3 DMAT2X4 -%token DMAT3X2 DMAT3X3 DMAT3X4 -%token DMAT4X2 DMAT4X3 DMAT4X4 -%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 -%token ACCSTRUCTNV -%token ACCSTRUCTEXT -%token RAYQUERYEXT -%token FCOOPMATNV ICOOPMATNV UCOOPMATNV - -// combined image/sampler -%token SAMPLERCUBEARRAY SAMPLERCUBEARRAYSHADOW -%token ISAMPLERCUBEARRAY USAMPLERCUBEARRAY -%token SAMPLER1D SAMPLER1DARRAY SAMPLER1DARRAYSHADOW ISAMPLER1D SAMPLER1DSHADOW -%token SAMPLER2DRECT SAMPLER2DRECTSHADOW ISAMPLER2DRECT USAMPLER2DRECT -%token SAMPLERBUFFER ISAMPLERBUFFER USAMPLERBUFFER -%token SAMPLER2DMS ISAMPLER2DMS USAMPLER2DMS -%token SAMPLER2DMSARRAY ISAMPLER2DMSARRAY USAMPLER2DMSARRAY -%token SAMPLEREXTERNALOES -%token SAMPLEREXTERNAL2DY2YEXT -%token ISAMPLER1DARRAY USAMPLER1D USAMPLER1DARRAY -%token F16SAMPLER1D F16SAMPLER2D F16SAMPLER3D F16SAMPLER2DRECT F16SAMPLERCUBE -%token F16SAMPLER1DARRAY F16SAMPLER2DARRAY F16SAMPLERCUBEARRAY -%token F16SAMPLERBUFFER F16SAMPLER2DMS F16SAMPLER2DMSARRAY -%token F16SAMPLER1DSHADOW F16SAMPLER2DSHADOW F16SAMPLER1DARRAYSHADOW F16SAMPLER2DARRAYSHADOW -%token F16SAMPLER2DRECTSHADOW F16SAMPLERCUBESHADOW F16SAMPLERCUBEARRAYSHADOW - -// images -%token IMAGE1D IIMAGE1D UIMAGE1D IMAGE2D IIMAGE2D -%token UIMAGE2D IMAGE3D IIMAGE3D UIMAGE3D -%token IMAGE2DRECT IIMAGE2DRECT UIMAGE2DRECT -%token IMAGECUBE IIMAGECUBE UIMAGECUBE -%token IMAGEBUFFER IIMAGEBUFFER UIMAGEBUFFER -%token IMAGE1DARRAY IIMAGE1DARRAY UIMAGE1DARRAY -%token IMAGE2DARRAY IIMAGE2DARRAY UIMAGE2DARRAY -%token IMAGECUBEARRAY IIMAGECUBEARRAY UIMAGECUBEARRAY -%token IMAGE2DMS IIMAGE2DMS UIMAGE2DMS -%token IMAGE2DMSARRAY IIMAGE2DMSARRAY UIMAGE2DMSARRAY - -%token F16IMAGE1D F16IMAGE2D F16IMAGE3D F16IMAGE2DRECT -%token F16IMAGECUBE F16IMAGE1DARRAY F16IMAGE2DARRAY F16IMAGECUBEARRAY -%token F16IMAGEBUFFER F16IMAGE2DMS F16IMAGE2DMSARRAY - -%token I64IMAGE1D U64IMAGE1D -%token I64IMAGE2D U64IMAGE2D -%token I64IMAGE3D U64IMAGE3D -%token I64IMAGE2DRECT U64IMAGE2DRECT -%token I64IMAGECUBE U64IMAGECUBE -%token I64IMAGEBUFFER U64IMAGEBUFFER -%token I64IMAGE1DARRAY U64IMAGE1DARRAY -%token I64IMAGE2DARRAY U64IMAGE2DARRAY -%token I64IMAGECUBEARRAY U64IMAGECUBEARRAY -%token I64IMAGE2DMS U64IMAGE2DMS -%token I64IMAGE2DMSARRAY U64IMAGE2DMSARRAY - -// texture without sampler -%token TEXTURECUBEARRAY ITEXTURECUBEARRAY UTEXTURECUBEARRAY -%token TEXTURE1D ITEXTURE1D UTEXTURE1D -%token TEXTURE1DARRAY ITEXTURE1DARRAY UTEXTURE1DARRAY -%token TEXTURE2DRECT ITEXTURE2DRECT UTEXTURE2DRECT -%token TEXTUREBUFFER ITEXTUREBUFFER UTEXTUREBUFFER -%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 - -// spirv intrinsics -%token SPIRV_INSTRUCTION SPIRV_EXECUTION_MODE SPIRV_EXECUTION_MODE_ID -%token SPIRV_DECORATE SPIRV_DECORATE_ID SPIRV_DECORATE_STRING -%token SPIRV_TYPE SPIRV_STORAGE_CLASS SPIRV_BY_REFERENCE SPIRV_LITERAL - - - -%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 -%token MOD_ASSIGN LEFT_ASSIGN RIGHT_ASSIGN AND_ASSIGN XOR_ASSIGN OR_ASSIGN -%token SUB_ASSIGN -%token STRING_LITERAL - -%token LEFT_PAREN RIGHT_PAREN LEFT_BRACKET RIGHT_BRACKET LEFT_BRACE RIGHT_BRACE DOT -%token COMMA COLON EQUAL SEMICOLON BANG DASH TILDE PLUS STAR SLASH PERCENT -%token LEFT_ANGLE RIGHT_ANGLE VERTICAL_BAR CARET AMPERSAND QUESTION - -%token INVARIANT -%token HIGH_PRECISION MEDIUM_PRECISION LOW_PRECISION PRECISION -%token PACKED RESOURCE SUPERP - -%token FLOATCONSTANT INTCONSTANT UINTCONSTANT BOOLCONSTANT -%token IDENTIFIER TYPE_NAME -%token CENTROID IN OUT INOUT -%token STRUCT VOID WHILE -%token BREAK CONTINUE DO ELSE FOR IF DISCARD RETURN SWITCH CASE DEFAULT -%token TERMINATE_INVOCATION -%token TERMINATE_RAY IGNORE_INTERSECTION -%token UNIFORM SHARED BUFFER -%token FLAT SMOOTH LAYOUT - - -%token DOUBLECONSTANT INT16CONSTANT UINT16CONSTANT FLOAT16CONSTANT INT32CONSTANT UINT32CONSTANT -%token INT64CONSTANT UINT64CONSTANT -%token SUBROUTINE DEMOTE -%token PAYLOADNV PAYLOADINNV HITATTRNV CALLDATANV CALLDATAINNV -%token PAYLOADEXT PAYLOADINEXT HITATTREXT CALLDATAEXT CALLDATAINEXT -%token PATCH SAMPLE NONUNIFORM -%token COHERENT VOLATILE RESTRICT READONLY WRITEONLY DEVICECOHERENT QUEUEFAMILYCOHERENT WORKGROUPCOHERENT -%token SUBGROUPCOHERENT NONPRIVATE SHADERCALLCOHERENT -%token NOPERSPECTIVE EXPLICITINTERPAMD PERVERTEXNV PERPRIMITIVENV PERVIEWNV PERTASKNV -%token PRECISE - - -%type assignment_operator unary_operator -%type variable_identifier primary_expression postfix_expression -%type expression integer_expression assignment_expression -%type unary_expression multiplicative_expression additive_expression -%type relational_expression equality_expression -%type conditional_expression constant_expression -%type logical_or_expression logical_xor_expression logical_and_expression -%type shift_expression and_expression exclusive_or_expression inclusive_or_expression -%type function_call initializer condition conditionopt - -%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 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 single_declaration init_declarator_list - -%type parameter_declaration parameter_declarator parameter_type_specifier - -%type array_specifier -%type invariant_qualifier interpolation_qualifier storage_qualifier precision_qualifier -%type layout_qualifier layout_qualifier_id_list layout_qualifier_id - -%type type_parameter_specifier -%type type_parameter_specifier_opt -%type type_parameter_specifier_list - -%type type_qualifier fully_specified_type type_specifier -%type single_type_qualifier -%type type_specifier_nonarray -%type struct_specifier -%type struct_declarator -%type struct_declarator_list struct_declaration struct_declaration_list -%type block_structure -%type function_header function_declarator -%type function_header_with_parameters -%type function_call_header_with_parameters function_call_header_no_parameters function_call_generic function_prototype -%type function_call_or_method function_identifier function_call_header - -%type identifier_list - - -%type precise_qualifier non_uniform_qualifier -%type type_name_list -%type attribute attribute_list single_attribute -%type demote_statement -%type initializer_list -%type spirv_requirements_list spirv_requirements_parameter -%type spirv_extension_list spirv_capability_list -%type spirv_execution_mode_qualifier -%type spirv_execution_mode_parameter_list spirv_execution_mode_parameter spirv_execution_mode_id_parameter_list -%type spirv_storage_class_qualifier -%type spirv_decorate_qualifier -%type spirv_decorate_parameter_list spirv_decorate_parameter -%type spirv_decorate_id_parameter_list -%type spirv_decorate_string_parameter_list -%type spirv_type_specifier -%type spirv_type_parameter_list spirv_type_parameter -%type spirv_instruction_qualifier -%type spirv_instruction_qualifier_list spirv_instruction_qualifier_id - - -%start translation_unit -%% - -variable_identifier - : IDENTIFIER { - $$ = parseContext.handleVariable($1.loc, $1.symbol, $1.string); - } - ; - -primary_expression - : variable_identifier { - $$ = $1; - } - | LEFT_PAREN expression RIGHT_PAREN { - $$ = $2; - if ($$->getAsConstantUnion()) - $$->getAsConstantUnion()->setExpression(); - } - | FLOATCONSTANT { - $$ = parseContext.intermediate.addConstantUnion($1.d, EbtFloat, $1.loc, true); - } - | INTCONSTANT { - $$ = parseContext.intermediate.addConstantUnion($1.i, $1.loc, true); - } - | UINTCONSTANT { - parseContext.fullIntegerCheck($1.loc, "unsigned literal"); - $$ = parseContext.intermediate.addConstantUnion($1.u, $1.loc, true); - } - | BOOLCONSTANT { - $$ = parseContext.intermediate.addConstantUnion($1.b, $1.loc, true); - } - - | STRING_LITERAL { - $$ = parseContext.intermediate.addConstantUnion($1.string, $1.loc, true); - } - | 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); - } - | INT64CONSTANT { - parseContext.int64Check($1.loc, "64-bit integer literal"); - $$ = parseContext.intermediate.addConstantUnion($1.i64, $1.loc, true); - } - | UINT64CONSTANT { - 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); - } - | DOUBLECONSTANT { - parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double literal"); - if (! parseContext.symbolTable.atBuiltInLevel()) - parseContext.doubleCheck($1.loc, "double literal"); - $$ = parseContext.intermediate.addConstantUnion($1.d, EbtDouble, $1.loc, true); - } - | FLOAT16CONSTANT { - parseContext.float16Check($1.loc, "half float literal"); - $$ = parseContext.intermediate.addConstantUnion($1.d, EbtFloat16, $1.loc, true); - } - - ; - -postfix_expression - : primary_expression { - $$ = $1; - } - | postfix_expression LEFT_BRACKET integer_expression RIGHT_BRACKET { - $$ = parseContext.handleBracketDereference($2.loc, $1, $3); - } - | function_call { - $$ = $1; - } - | postfix_expression DOT IDENTIFIER { - $$ = parseContext.handleDotDereference($3.loc, $1, *$3.string); - } - | postfix_expression INC_OP { - parseContext.variableCheck($1); - parseContext.lValueErrorCheck($2.loc, "++", $1); - $$ = parseContext.handleUnaryMath($2.loc, "++", EOpPostIncrement, $1); - } - | postfix_expression DEC_OP { - parseContext.variableCheck($1); - parseContext.lValueErrorCheck($2.loc, "--", $1); - $$ = parseContext.handleUnaryMath($2.loc, "--", EOpPostDecrement, $1); - } - ; - -integer_expression - : expression { - parseContext.integerCheck($1, "[]"); - $$ = $1; - } - ; - -function_call - : function_call_or_method { - $$ = parseContext.handleFunctionCall($1.loc, $1.function, $1.intermNode); - delete $1.function; - } - ; - -function_call_or_method - : function_call_generic { - $$ = $1; - } - ; - -function_call_generic - : function_call_header_with_parameters RIGHT_PAREN { - $$ = $1; - $$.loc = $2.loc; - } - | function_call_header_no_parameters RIGHT_PAREN { - $$ = $1; - $$.loc = $2.loc; - } - ; - -function_call_header_no_parameters - : function_call_header VOID { - $$ = $1; - } - | function_call_header { - $$ = $1; - } - ; - -function_call_header_with_parameters - : function_call_header assignment_expression { - TParameter param = { 0, new TType }; - param.type->shallowCopy($2->getType()); - $1.function->addParameter(param); - $$.function = $1.function; - $$.intermNode = $2; - } - | function_call_header_with_parameters COMMA assignment_expression { - TParameter param = { 0, new TType }; - param.type->shallowCopy($3->getType()); - $1.function->addParameter(param); - $$.function = $1.function; - $$.intermNode = parseContext.intermediate.growAggregate($1.intermNode, $3, $2.loc); - } - ; - -function_call_header - : function_identifier LEFT_PAREN { - $$ = $1; - } - ; - -// Grammar Note: Constructors look like functions, but are recognized as types. - -function_identifier - : type_specifier { - // Constructor - $$.intermNode = 0; - $$.function = parseContext.handleConstructorCall($1.loc, $1); - } - | postfix_expression { - // - // Should be a method or subroutine call, but we haven't recognized the arguments yet. - // - $$.function = 0; - $$.intermNode = 0; - - TIntermMethod* method = $1->getAsMethodNode(); - if (method) { - $$.function = new TFunction(&method->getMethodName(), TType(EbtInt), EOpArrayLength); - $$.intermNode = method->getObject(); - } else { - TIntermSymbol* symbol = $1->getAsSymbolNode(); - if (symbol) { - parseContext.reservedErrorCheck(symbol->getLoc(), symbol->getName()); - TFunction *function = new TFunction(&symbol->getName(), TType(EbtVoid)); - $$.function = function; - } else - parseContext.error($1->getLoc(), "function call, method, or subroutine call expected", "", ""); - } - - if ($$.function == 0) { - // error recover - TString* empty = NewPoolTString(""); - $$.function = new TFunction(empty, TType(EbtVoid), EOpNull); - } - } - - | non_uniform_qualifier { - // Constructor - $$.intermNode = 0; - $$.function = parseContext.handleConstructorCall($1.loc, $1); - } - - ; - -unary_expression - : postfix_expression { - parseContext.variableCheck($1); - $$ = $1; - if (TIntermMethod* method = $1->getAsMethodNode()) - parseContext.error($1->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), ""); - } - | INC_OP unary_expression { - parseContext.lValueErrorCheck($1.loc, "++", $2); - $$ = parseContext.handleUnaryMath($1.loc, "++", EOpPreIncrement, $2); - } - | DEC_OP unary_expression { - parseContext.lValueErrorCheck($1.loc, "--", $2); - $$ = parseContext.handleUnaryMath($1.loc, "--", EOpPreDecrement, $2); - } - | unary_operator unary_expression { - if ($1.op != EOpNull) { - char errorOp[2] = {0, 0}; - switch($1.op) { - case EOpNegative: errorOp[0] = '-'; break; - case EOpLogicalNot: errorOp[0] = '!'; break; - case EOpBitwiseNot: errorOp[0] = '~'; break; - default: break; // some compilers want this - } - $$ = parseContext.handleUnaryMath($1.loc, errorOp, $1.op, $2); - } else { - $$ = $2; - if ($$->getAsConstantUnion()) - $$->getAsConstantUnion()->setExpression(); - } - } - ; -// Grammar Note: No traditional style type casts. - -unary_operator - : PLUS { $$.loc = $1.loc; $$.op = EOpNull; } - | DASH { $$.loc = $1.loc; $$.op = EOpNegative; } - | BANG { $$.loc = $1.loc; $$.op = EOpLogicalNot; } - | TILDE { $$.loc = $1.loc; $$.op = EOpBitwiseNot; - parseContext.fullIntegerCheck($1.loc, "bitwise not"); } - ; -// Grammar Note: No '*' or '&' unary ops. Pointers are not supported. - -multiplicative_expression - : unary_expression { $$ = $1; } - | multiplicative_expression STAR unary_expression { - $$ = parseContext.handleBinaryMath($2.loc, "*", EOpMul, $1, $3); - if ($$ == 0) - $$ = $1; - } - | multiplicative_expression SLASH unary_expression { - $$ = parseContext.handleBinaryMath($2.loc, "/", EOpDiv, $1, $3); - if ($$ == 0) - $$ = $1; - } - | multiplicative_expression PERCENT unary_expression { - parseContext.fullIntegerCheck($2.loc, "%"); - $$ = parseContext.handleBinaryMath($2.loc, "%", EOpMod, $1, $3); - if ($$ == 0) - $$ = $1; - } - ; - -additive_expression - : multiplicative_expression { $$ = $1; } - | additive_expression PLUS multiplicative_expression { - $$ = parseContext.handleBinaryMath($2.loc, "+", EOpAdd, $1, $3); - if ($$ == 0) - $$ = $1; - } - | additive_expression DASH multiplicative_expression { - $$ = parseContext.handleBinaryMath($2.loc, "-", EOpSub, $1, $3); - if ($$ == 0) - $$ = $1; - } - ; - -shift_expression - : additive_expression { $$ = $1; } - | shift_expression LEFT_OP additive_expression { - parseContext.fullIntegerCheck($2.loc, "bit shift left"); - $$ = parseContext.handleBinaryMath($2.loc, "<<", EOpLeftShift, $1, $3); - if ($$ == 0) - $$ = $1; - } - | shift_expression RIGHT_OP additive_expression { - parseContext.fullIntegerCheck($2.loc, "bit shift right"); - $$ = parseContext.handleBinaryMath($2.loc, ">>", EOpRightShift, $1, $3); - if ($$ == 0) - $$ = $1; - } - ; - -relational_expression - : shift_expression { $$ = $1; } - | relational_expression LEFT_ANGLE shift_expression { - $$ = parseContext.handleBinaryMath($2.loc, "<", EOpLessThan, $1, $3); - if ($$ == 0) - $$ = parseContext.intermediate.addConstantUnion(false, $2.loc); - } - | relational_expression RIGHT_ANGLE shift_expression { - $$ = parseContext.handleBinaryMath($2.loc, ">", EOpGreaterThan, $1, $3); - if ($$ == 0) - $$ = parseContext.intermediate.addConstantUnion(false, $2.loc); - } - | relational_expression LE_OP shift_expression { - $$ = parseContext.handleBinaryMath($2.loc, "<=", EOpLessThanEqual, $1, $3); - if ($$ == 0) - $$ = parseContext.intermediate.addConstantUnion(false, $2.loc); - } - | relational_expression GE_OP shift_expression { - $$ = parseContext.handleBinaryMath($2.loc, ">=", EOpGreaterThanEqual, $1, $3); - if ($$ == 0) - $$ = parseContext.intermediate.addConstantUnion(false, $2.loc); - } - ; - -equality_expression - : relational_expression { $$ = $1; } - | equality_expression EQ_OP relational_expression { - parseContext.arrayObjectCheck($2.loc, $1->getType(), "array comparison"); - parseContext.opaqueCheck($2.loc, $1->getType(), "=="); - parseContext.specializationCheck($2.loc, $1->getType(), "=="); - parseContext.referenceCheck($2.loc, $1->getType(), "=="); - $$ = parseContext.handleBinaryMath($2.loc, "==", EOpEqual, $1, $3); - if ($$ == 0) - $$ = parseContext.intermediate.addConstantUnion(false, $2.loc); - } - | equality_expression NE_OP relational_expression { - parseContext.arrayObjectCheck($2.loc, $1->getType(), "array comparison"); - parseContext.opaqueCheck($2.loc, $1->getType(), "!="); - parseContext.specializationCheck($2.loc, $1->getType(), "!="); - parseContext.referenceCheck($2.loc, $1->getType(), "!="); - $$ = parseContext.handleBinaryMath($2.loc, "!=", EOpNotEqual, $1, $3); - if ($$ == 0) - $$ = parseContext.intermediate.addConstantUnion(false, $2.loc); - } - ; - -and_expression - : equality_expression { $$ = $1; } - | and_expression AMPERSAND equality_expression { - parseContext.fullIntegerCheck($2.loc, "bitwise and"); - $$ = parseContext.handleBinaryMath($2.loc, "&", EOpAnd, $1, $3); - if ($$ == 0) - $$ = $1; - } - ; - -exclusive_or_expression - : and_expression { $$ = $1; } - | exclusive_or_expression CARET and_expression { - parseContext.fullIntegerCheck($2.loc, "bitwise exclusive or"); - $$ = parseContext.handleBinaryMath($2.loc, "^", EOpExclusiveOr, $1, $3); - if ($$ == 0) - $$ = $1; - } - ; - -inclusive_or_expression - : exclusive_or_expression { $$ = $1; } - | inclusive_or_expression VERTICAL_BAR exclusive_or_expression { - parseContext.fullIntegerCheck($2.loc, "bitwise inclusive or"); - $$ = parseContext.handleBinaryMath($2.loc, "|", EOpInclusiveOr, $1, $3); - if ($$ == 0) - $$ = $1; - } - ; - -logical_and_expression - : inclusive_or_expression { $$ = $1; } - | logical_and_expression AND_OP inclusive_or_expression { - $$ = parseContext.handleBinaryMath($2.loc, "&&", EOpLogicalAnd, $1, $3); - if ($$ == 0) - $$ = parseContext.intermediate.addConstantUnion(false, $2.loc); - } - ; - -logical_xor_expression - : logical_and_expression { $$ = $1; } - | logical_xor_expression XOR_OP logical_and_expression { - $$ = parseContext.handleBinaryMath($2.loc, "^^", EOpLogicalXor, $1, $3); - if ($$ == 0) - $$ = parseContext.intermediate.addConstantUnion(false, $2.loc); - } - ; - -logical_or_expression - : logical_xor_expression { $$ = $1; } - | logical_or_expression OR_OP logical_xor_expression { - $$ = parseContext.handleBinaryMath($2.loc, "||", EOpLogicalOr, $1, $3); - if ($$ == 0) - $$ = parseContext.intermediate.addConstantUnion(false, $2.loc); - } - ; - -conditional_expression - : logical_or_expression { $$ = $1; } - | logical_or_expression QUESTION { - ++parseContext.controlFlowNestingLevel; - } - expression COLON assignment_expression { - --parseContext.controlFlowNestingLevel; - parseContext.boolCheck($2.loc, $1); - parseContext.rValueErrorCheck($2.loc, "?", $1); - parseContext.rValueErrorCheck($5.loc, ":", $4); - parseContext.rValueErrorCheck($5.loc, ":", $6); - $$ = parseContext.intermediate.addSelection($1, $4, $6, $2.loc); - if ($$ == 0) { - parseContext.binaryOpError($2.loc, ":", $4->getCompleteString(parseContext.intermediate.getEnhancedMsgs()), $6->getCompleteString(parseContext.intermediate.getEnhancedMsgs())); - $$ = $6; - } - } - ; - -assignment_expression - : conditional_expression { $$ = $1; } - | unary_expression assignment_operator assignment_expression { - parseContext.arrayObjectCheck($2.loc, $1->getType(), "array assignment"); - parseContext.opaqueCheck($2.loc, $1->getType(), "="); - parseContext.storage16BitAssignmentCheck($2.loc, $1->getType(), "="); - parseContext.specializationCheck($2.loc, $1->getType(), "="); - parseContext.lValueErrorCheck($2.loc, "assign", $1); - parseContext.rValueErrorCheck($2.loc, "assign", $3); - $$ = parseContext.addAssign($2.loc, $2.op, $1, $3); - if ($$ == 0) { - parseContext.assignError($2.loc, "assign", $1->getCompleteString(parseContext.intermediate.getEnhancedMsgs()), $3->getCompleteString(parseContext.intermediate.getEnhancedMsgs())); - $$ = $1; - } - } - ; - -assignment_operator - : EQUAL { - $$.loc = $1.loc; - $$.op = EOpAssign; - } - | MUL_ASSIGN { - $$.loc = $1.loc; - $$.op = EOpMulAssign; - } - | DIV_ASSIGN { - $$.loc = $1.loc; - $$.op = EOpDivAssign; - } - | MOD_ASSIGN { - parseContext.fullIntegerCheck($1.loc, "%="); - $$.loc = $1.loc; - $$.op = EOpModAssign; - } - | ADD_ASSIGN { - $$.loc = $1.loc; - $$.op = EOpAddAssign; - } - | SUB_ASSIGN { - $$.loc = $1.loc; - $$.op = EOpSubAssign; - } - | LEFT_ASSIGN { - parseContext.fullIntegerCheck($1.loc, "bit-shift left assign"); - $$.loc = $1.loc; $$.op = EOpLeftShiftAssign; - } - | RIGHT_ASSIGN { - parseContext.fullIntegerCheck($1.loc, "bit-shift right assign"); - $$.loc = $1.loc; $$.op = EOpRightShiftAssign; - } - | AND_ASSIGN { - parseContext.fullIntegerCheck($1.loc, "bitwise-and assign"); - $$.loc = $1.loc; $$.op = EOpAndAssign; - } - | XOR_ASSIGN { - parseContext.fullIntegerCheck($1.loc, "bitwise-xor assign"); - $$.loc = $1.loc; $$.op = EOpExclusiveOrAssign; - } - | OR_ASSIGN { - parseContext.fullIntegerCheck($1.loc, "bitwise-or assign"); - $$.loc = $1.loc; $$.op = EOpInclusiveOrAssign; - } - ; - -expression - : assignment_expression { - $$ = $1; - } - | expression COMMA assignment_expression { - parseContext.samplerConstructorLocationCheck($2.loc, ",", $3); - $$ = parseContext.intermediate.addComma($1, $3, $2.loc); - if ($$ == 0) { - parseContext.binaryOpError($2.loc, ",", $1->getCompleteString(parseContext.intermediate.getEnhancedMsgs()), $3->getCompleteString(parseContext.intermediate.getEnhancedMsgs())); - $$ = $3; - } - } - ; - -constant_expression - : conditional_expression { - parseContext.constantValueCheck($1, ""); - $$ = $1; - } - ; - -declaration - : function_prototype SEMICOLON { - parseContext.handleFunctionDeclarator($1.loc, *$1.function, true /* prototype */); - $$ = 0; - // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature - } - - | spirv_instruction_qualifier function_prototype SEMICOLON { - parseContext.requireExtensions($2.loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V instruction qualifier"); - $2.function->setSpirvInstruction(*$1); // Attach SPIR-V intruction qualifier - parseContext.handleFunctionDeclarator($2.loc, *$2.function, true /* prototype */); - $$ = 0; - // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature - } - | spirv_execution_mode_qualifier SEMICOLON { - parseContext.globalCheck($2.loc, "SPIR-V execution mode qualifier"); - parseContext.requireExtensions($2.loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V execution mode qualifier"); - $$ = 0; - } - - | init_declarator_list SEMICOLON { - if ($1.intermNode && $1.intermNode->getAsAggregate()) - $1.intermNode->getAsAggregate()->setOperator(EOpSequence); - $$ = $1.intermNode; - } - | PRECISION precision_qualifier type_specifier SEMICOLON { - parseContext.profileRequires($1.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($1.loc, $3, $2.qualifier.precision); - $$ = 0; - } - | block_structure SEMICOLON { - parseContext.declareBlock($1.loc, *$1.typeList); - $$ = 0; - } - | block_structure IDENTIFIER SEMICOLON { - parseContext.declareBlock($1.loc, *$1.typeList, $2.string); - $$ = 0; - } - | block_structure IDENTIFIER array_specifier SEMICOLON { - parseContext.declareBlock($1.loc, *$1.typeList, $2.string, $3.arraySizes); - $$ = 0; - } - | type_qualifier SEMICOLON { - parseContext.globalQualifierFixCheck($1.loc, $1.qualifier); - parseContext.updateStandaloneQualifierDefaults($1.loc, $1); - $$ = 0; - } - | type_qualifier IDENTIFIER SEMICOLON { - parseContext.checkNoShaderLayouts($1.loc, $1.shaderQualifiers); - parseContext.addQualifierToExisting($1.loc, $1.qualifier, *$2.string); - $$ = 0; - } - | type_qualifier IDENTIFIER identifier_list SEMICOLON { - parseContext.checkNoShaderLayouts($1.loc, $1.shaderQualifiers); - $3->push_back($2.string); - parseContext.addQualifierToExisting($1.loc, $1.qualifier, *$3); - $$ = 0; - } - ; - -block_structure - : type_qualifier IDENTIFIER LEFT_BRACE { parseContext.nestedBlockCheck($1.loc); } struct_declaration_list RIGHT_BRACE { - --parseContext.blockNestingLevel; - parseContext.blockName = $2.string; - parseContext.globalQualifierFixCheck($1.loc, $1.qualifier); - parseContext.checkNoShaderLayouts($1.loc, $1.shaderQualifiers); - parseContext.currentBlockQualifier = $1.qualifier; - $$.loc = $1.loc; - $$.typeList = $5; - } - -identifier_list - : COMMA IDENTIFIER { - $$ = new TIdentifierList; - $$->push_back($2.string); - } - | identifier_list COMMA IDENTIFIER { - $$ = $1; - $$->push_back($3.string); - } - ; - -function_prototype - : function_declarator RIGHT_PAREN { - $$.function = $1; - $$.loc = $2.loc; - } - | function_declarator RIGHT_PAREN attribute { - $$.function = $1; - $$.loc = $2.loc; - parseContext.requireExtensions($2.loc, 1, &E_GL_EXT_subgroup_uniform_control_flow, "attribute"); - parseContext.handleFunctionAttributes($2.loc, *$3); - } - | attribute function_declarator RIGHT_PAREN { - $$.function = $2; - $$.loc = $3.loc; - parseContext.requireExtensions($3.loc, 1, &E_GL_EXT_subgroup_uniform_control_flow, "attribute"); - parseContext.handleFunctionAttributes($3.loc, *$1); - } - | attribute function_declarator RIGHT_PAREN attribute { - $$.function = $2; - $$.loc = $3.loc; - parseContext.requireExtensions($3.loc, 1, &E_GL_EXT_subgroup_uniform_control_flow, "attribute"); - parseContext.handleFunctionAttributes($3.loc, *$1); - parseContext.handleFunctionAttributes($3.loc, *$4); - } - ; - -function_declarator - : function_header { - $$ = $1; - } - | function_header_with_parameters { - $$ = $1; - } - ; - - -function_header_with_parameters - : function_header parameter_declaration { - // Add the parameter - $$ = $1; - if ($2.param.type->getBasicType() != EbtVoid) - $1->addParameter($2.param); - else - delete $2.param.type; - } - | function_header_with_parameters COMMA parameter_declaration { - // - // Only first parameter of one-parameter functions can be void - // The check for named parameters not being void is done in parameter_declarator - // - if ($3.param.type->getBasicType() == EbtVoid) { - // - // This parameter > first is void - // - parseContext.error($2.loc, "cannot be an argument type except for '(void)'", "void", ""); - delete $3.param.type; - } else { - // Add the parameter - $$ = $1; - $1->addParameter($3.param); - } - } - ; - -function_header - : fully_specified_type IDENTIFIER LEFT_PAREN { - if ($1.qualifier.storage != EvqGlobal && $1.qualifier.storage != EvqTemporary) { - parseContext.error($2.loc, "no qualifiers allowed for function return", - GetStorageQualifierString($1.qualifier.storage), ""); - } - if ($1.arraySizes) - parseContext.arraySizeRequiredCheck($1.loc, *$1.arraySizes); - - // 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; - } - ; - -parameter_declarator - // Type + name - : type_specifier IDENTIFIER { - if ($1.arraySizes) { - parseContext.profileRequires($1.loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires($1.loc, EEsProfile, 300, 0, "arrayed type"); - parseContext.arraySizeRequiredCheck($1.loc, *$1.arraySizes); - } - if ($1.basicType == EbtVoid) { - parseContext.error($2.loc, "illegal use of type 'void'", $2.string->c_str(), ""); - } - parseContext.reservedErrorCheck($2.loc, *$2.string); - - TParameter param = {$2.string, new TType($1)}; - $$.loc = $2.loc; - $$.param = param; - } - | type_specifier IDENTIFIER array_specifier { - if ($1.arraySizes) { - parseContext.profileRequires($1.loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - 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.arrayOfArrayVersionCheck($2.loc, type->getArraySizes()); - parseContext.arraySizeRequiredCheck($3.loc, *$3.arraySizes); - parseContext.reservedErrorCheck($2.loc, *$2.string); - - TParameter param = { $2.string, type }; - - $$.loc = $2.loc; - $$.param = param; - } - ; - -parameter_declaration - // - // With name - // - : type_qualifier parameter_declarator { - $$ = $2; - if ($1.qualifier.precision != EpqNone) - $$.param.type->getQualifier().precision = $1.qualifier.precision; - parseContext.precisionQualifierCheck($$.loc, $$.param.type->getBasicType(), $$.param.type->getQualifier()); - - parseContext.checkNoShaderLayouts($1.loc, $1.shaderQualifiers); - parseContext.parameterTypeCheck($2.loc, $1.qualifier.storage, *$$.param.type); - parseContext.paramCheckFix($1.loc, $1.qualifier, *$$.param.type); - - } - | parameter_declarator { - $$ = $1; - - parseContext.parameterTypeCheck($1.loc, EvqIn, *$1.param.type); - parseContext.paramCheckFixStorage($1.loc, EvqTemporary, *$$.param.type); - parseContext.precisionQualifierCheck($$.loc, $$.param.type->getBasicType(), $$.param.type->getQualifier()); - } - // - // Without name - // - | type_qualifier parameter_type_specifier { - $$ = $2; - if ($1.qualifier.precision != EpqNone) - $$.param.type->getQualifier().precision = $1.qualifier.precision; - parseContext.precisionQualifierCheck($1.loc, $$.param.type->getBasicType(), $$.param.type->getQualifier()); - - parseContext.checkNoShaderLayouts($1.loc, $1.shaderQualifiers); - parseContext.parameterTypeCheck($2.loc, $1.qualifier.storage, *$$.param.type); - parseContext.paramCheckFix($1.loc, $1.qualifier, *$$.param.type); - } - | parameter_type_specifier { - $$ = $1; - - parseContext.parameterTypeCheck($1.loc, EvqIn, *$1.param.type); - parseContext.paramCheckFixStorage($1.loc, EvqTemporary, *$$.param.type); - parseContext.precisionQualifierCheck($$.loc, $$.param.type->getBasicType(), $$.param.type->getQualifier()); - } - ; - -parameter_type_specifier - : type_specifier { - TParameter param = { 0, new TType($1) }; - $$.param = param; - if ($1.arraySizes) - parseContext.arraySizeRequiredCheck($1.loc, *$1.arraySizes); - } - ; - -init_declarator_list - : single_declaration { - $$ = $1; - } - | init_declarator_list COMMA IDENTIFIER { - $$ = $1; - parseContext.declareVariable($3.loc, *$3.string, $1.type); - } - | init_declarator_list COMMA IDENTIFIER array_specifier { - $$ = $1; - parseContext.declareVariable($3.loc, *$3.string, $1.type, $4.arraySizes); - } - | init_declarator_list COMMA IDENTIFIER array_specifier EQUAL initializer { - $$.type = $1.type; - TIntermNode* initNode = parseContext.declareVariable($3.loc, *$3.string, $1.type, $4.arraySizes, $6); - $$.intermNode = parseContext.intermediate.growAggregate($1.intermNode, initNode, $5.loc); - } - | init_declarator_list COMMA IDENTIFIER EQUAL initializer { - $$.type = $1.type; - TIntermNode* initNode = parseContext.declareVariable($3.loc, *$3.string, $1.type, 0, $5); - $$.intermNode = parseContext.intermediate.growAggregate($1.intermNode, initNode, $4.loc); - } - ; - -single_declaration - : fully_specified_type { - $$.type = $1; - $$.intermNode = 0; - - parseContext.declareTypeDefaults($$.loc, $$.type); - - } - | fully_specified_type IDENTIFIER { - $$.type = $1; - $$.intermNode = 0; - parseContext.declareVariable($2.loc, *$2.string, $1); - } - | fully_specified_type IDENTIFIER array_specifier { - $$.type = $1; - $$.intermNode = 0; - parseContext.declareVariable($2.loc, *$2.string, $1, $3.arraySizes); - } - | fully_specified_type IDENTIFIER array_specifier EQUAL initializer { - $$.type = $1; - TIntermNode* initNode = parseContext.declareVariable($2.loc, *$2.string, $1, $3.arraySizes, $5); - $$.intermNode = parseContext.intermediate.growAggregate(0, initNode, $4.loc); - } - | fully_specified_type IDENTIFIER EQUAL initializer { - $$.type = $1; - TIntermNode* initNode = parseContext.declareVariable($2.loc, *$2.string, $1, 0, $4); - $$.intermNode = parseContext.intermediate.growAggregate(0, initNode, $3.loc); - } - -// Grammar Note: No 'enum', or 'typedef'. - -fully_specified_type - : type_specifier { - $$ = $1; - - parseContext.globalQualifierTypeCheck($1.loc, $1.qualifier, $$); - if ($1.arraySizes) { - parseContext.profileRequires($1.loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires($1.loc, EEsProfile, 300, 0, "arrayed type"); - } - parseContext.precisionQualifierCheck($$.loc, $$.basicType, $$.qualifier); - } - | type_qualifier type_specifier { - parseContext.globalQualifierFixCheck($1.loc, $1.qualifier); - parseContext.globalQualifierTypeCheck($1.loc, $1.qualifier, $2); - - 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"); - } - - if ($2.arraySizes && parseContext.arrayQualifierError($2.loc, $1.qualifier)) - $2.arraySizes = nullptr; - - parseContext.checkNoShaderLayouts($2.loc, $1.shaderQualifiers); - $2.shaderQualifiers.merge($1.shaderQualifiers); - parseContext.mergeQualifiers($2.loc, $2.qualifier, $1.qualifier, true); - parseContext.precisionQualifierCheck($2.loc, $2.basicType, $2.qualifier); - - $$ = $2; - - if (! $$.qualifier.isInterpolation() && - ((parseContext.language == EShLangVertex && $$.qualifier.storage == EvqVaryingOut) || - (parseContext.language == EShLangFragment && $$.qualifier.storage == EvqVaryingIn))) - $$.qualifier.smooth = true; - } - ; - -invariant_qualifier - : INVARIANT { - parseContext.globalCheck($1.loc, "invariant"); - parseContext.profileRequires($$.loc, ENoProfile, 120, 0, "invariant"); - $$.init($1.loc); - $$.qualifier.invariant = true; - } - ; - -interpolation_qualifier - : SMOOTH { - parseContext.globalCheck($1.loc, "smooth"); - parseContext.profileRequires($1.loc, ENoProfile, 130, 0, "smooth"); - parseContext.profileRequires($1.loc, EEsProfile, 300, 0, "smooth"); - $$.init($1.loc); - $$.qualifier.smooth = true; - } - | FLAT { - parseContext.globalCheck($1.loc, "flat"); - parseContext.profileRequires($1.loc, ENoProfile, 130, 0, "flat"); - parseContext.profileRequires($1.loc, EEsProfile, 300, 0, "flat"); - $$.init($1.loc); - $$.qualifier.flat = true; - } - - | NOPERSPECTIVE { - parseContext.globalCheck($1.loc, "noperspective"); - parseContext.profileRequires($1.loc, EEsProfile, 0, E_GL_NV_shader_noperspective_interpolation, "noperspective"); - parseContext.profileRequires($1.loc, ENoProfile, 130, 0, "noperspective"); - $$.init($1.loc); - $$.qualifier.nopersp = true; - } - | EXPLICITINTERPAMD { - parseContext.globalCheck($1.loc, "__explicitInterpAMD"); - parseContext.profileRequires($1.loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation"); - parseContext.profileRequires($1.loc, ECompatibilityProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation"); - $$.init($1.loc); - $$.qualifier.explicitInterp = true; - } - | PERVERTEXNV { - parseContext.globalCheck($1.loc, "pervertexNV"); - parseContext.profileRequires($1.loc, ECoreProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric"); - parseContext.profileRequires($1.loc, ECompatibilityProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric"); - parseContext.profileRequires($1.loc, EEsProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric"); - $$.init($1.loc); - $$.qualifier.pervertexNV = true; - } - | PERPRIMITIVENV { - // No need for profile version or extension check. Shader stage already checks both. - parseContext.globalCheck($1.loc, "perprimitiveNV"); - parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangFragmentMask | EShLangMeshNVMask), "perprimitiveNV"); - // Fragment shader stage doesn't check for extension. So we explicitly add below extension check. - if (parseContext.language == EShLangFragment) - parseContext.requireExtensions($1.loc, 1, &E_GL_NV_mesh_shader, "perprimitiveNV"); - $$.init($1.loc); - $$.qualifier.perPrimitiveNV = true; - } - | PERVIEWNV { - // No need for profile version or extension check. Shader stage already checks both. - parseContext.globalCheck($1.loc, "perviewNV"); - parseContext.requireStage($1.loc, EShLangMeshNV, "perviewNV"); - $$.init($1.loc); - $$.qualifier.perViewNV = true; - } - | PERTASKNV { - // No need for profile version or extension check. Shader stage already checks both. - parseContext.globalCheck($1.loc, "taskNV"); - parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangTaskNVMask | EShLangMeshNVMask), "taskNV"); - $$.init($1.loc); - $$.qualifier.perTaskNV = true; - } - - ; - -layout_qualifier - : LAYOUT LEFT_PAREN layout_qualifier_id_list RIGHT_PAREN { - $$ = $3; - } - ; - -layout_qualifier_id_list - : layout_qualifier_id { - $$ = $1; - } - | layout_qualifier_id_list COMMA layout_qualifier_id { - $$ = $1; - $$.shaderQualifiers.merge($3.shaderQualifiers); - parseContext.mergeObjectLayoutQualifiers($$.qualifier, $3.qualifier, false); - } - -layout_qualifier_id - : IDENTIFIER { - $$.init($1.loc); - parseContext.setLayoutQualifier($1.loc, $$, *$1.string); - } - | IDENTIFIER EQUAL constant_expression { - $$.init($1.loc); - parseContext.setLayoutQualifier($1.loc, $$, *$1.string, $3); - } - | SHARED { // because "shared" is both an identifier and a keyword - $$.init($1.loc); - TString strShared("shared"); - parseContext.setLayoutQualifier($1.loc, $$, strShared); - } - ; - - -precise_qualifier - : PRECISE { - parseContext.profileRequires($$.loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise"); - parseContext.profileRequires($1.loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise"); - $$.init($1.loc); - $$.qualifier.noContraction = true; - } - ; - - -type_qualifier - : single_type_qualifier { - $$ = $1; - } - | type_qualifier single_type_qualifier { - $$ = $1; - if ($$.basicType == EbtVoid) - $$.basicType = $2.basicType; - - $$.shaderQualifiers.merge($2.shaderQualifiers); - parseContext.mergeQualifiers($$.loc, $$.qualifier, $2.qualifier, false); - } - ; - -single_type_qualifier - : storage_qualifier { - $$ = $1; - } - | layout_qualifier { - $$ = $1; - } - | precision_qualifier { - parseContext.checkPrecisionQualifier($1.loc, $1.qualifier.precision); - $$ = $1; - } - | interpolation_qualifier { - // allow inheritance of storage qualifier from block declaration - $$ = $1; - } - | invariant_qualifier { - // allow inheritance of storage qualifier from block declaration - $$ = $1; - } - - | precise_qualifier { - // allow inheritance of storage qualifier from block declaration - $$ = $1; - } - | non_uniform_qualifier { - $$ = $1; - } - | spirv_storage_class_qualifier { - parseContext.globalCheck($1.loc, "spirv_storage_class"); - parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V storage class qualifier"); - $$ = $1; - } - | spirv_decorate_qualifier { - parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V decorate qualifier"); - $$ = $1; - } - | SPIRV_BY_REFERENCE { - parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_spirv_intrinsics, "spirv_by_reference"); - $$.init($1.loc); - $$.qualifier.setSpirvByReference(); - } - | SPIRV_LITERAL { - parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_spirv_intrinsics, "spirv_by_literal"); - $$.init($1.loc); - $$.qualifier.setSpirvLiteral(); - } - - ; - -storage_qualifier - : CONST { - $$.init($1.loc); - $$.qualifier.storage = EvqConst; // will later turn into EvqConstReadOnly, if the initializer is not constant - } - | INOUT { - parseContext.globalCheck($1.loc, "inout"); - $$.init($1.loc); - $$.qualifier.storage = EvqInOut; - } - | IN { - parseContext.globalCheck($1.loc, "in"); - $$.init($1.loc); - // whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later - $$.qualifier.storage = EvqIn; - } - | OUT { - parseContext.globalCheck($1.loc, "out"); - $$.init($1.loc); - // whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later - $$.qualifier.storage = EvqOut; - } - | CENTROID { - parseContext.profileRequires($1.loc, ENoProfile, 120, 0, "centroid"); - parseContext.profileRequires($1.loc, EEsProfile, 300, 0, "centroid"); - parseContext.globalCheck($1.loc, "centroid"); - $$.init($1.loc); - $$.qualifier.centroid = true; - } - | UNIFORM { - parseContext.globalCheck($1.loc, "uniform"); - $$.init($1.loc); - $$.qualifier.storage = EvqUniform; - } - | 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, (EShLanguageMask)(EShLangComputeMask | EShLangMeshNVMask | EShLangTaskNVMask), "shared"); - $$.init($1.loc); - $$.qualifier.storage = EvqShared; - } - | BUFFER { - parseContext.globalCheck($1.loc, "buffer"); - $$.init($1.loc); - $$.qualifier.storage = EvqBuffer; - } - - | ATTRIBUTE { - parseContext.requireStage($1.loc, EShLangVertex, "attribute"); - parseContext.checkDeprecated($1.loc, ECoreProfile, 130, "attribute"); - parseContext.checkDeprecated($1.loc, ENoProfile, 130, "attribute"); - parseContext.requireNotRemoved($1.loc, ECoreProfile, 420, "attribute"); - parseContext.requireNotRemoved($1.loc, EEsProfile, 300, "attribute"); - - parseContext.globalCheck($1.loc, "attribute"); - - $$.init($1.loc); - $$.qualifier.storage = EvqVaryingIn; - } - | VARYING { - parseContext.checkDeprecated($1.loc, ENoProfile, 130, "varying"); - parseContext.checkDeprecated($1.loc, ECoreProfile, 130, "varying"); - parseContext.requireNotRemoved($1.loc, ECoreProfile, 420, "varying"); - parseContext.requireNotRemoved($1.loc, EEsProfile, 300, "varying"); - - parseContext.globalCheck($1.loc, "varying"); - - $$.init($1.loc); - if (parseContext.language == EShLangVertex) - $$.qualifier.storage = EvqVaryingOut; - else - $$.qualifier.storage = EvqVaryingIn; - } - | PATCH { - parseContext.globalCheck($1.loc, "patch"); - parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch"); - $$.init($1.loc); - $$.qualifier.patch = true; - } - | SAMPLE { - parseContext.globalCheck($1.loc, "sample"); - $$.init($1.loc); - $$.qualifier.sample = true; - } - | HITATTRNV { - parseContext.globalCheck($1.loc, "hitAttributeNV"); - parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask - | EShLangAnyHitMask), "hitAttributeNV"); - parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "hitAttributeNV"); - $$.init($1.loc); - $$.qualifier.storage = EvqHitAttr; - } - | HITATTREXT { - parseContext.globalCheck($1.loc, "hitAttributeEXT"); - parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask - | EShLangAnyHitMask), "hitAttributeEXT"); - parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "hitAttributeNV"); - $$.init($1.loc); - $$.qualifier.storage = EvqHitAttr; - } - | PAYLOADNV { - parseContext.globalCheck($1.loc, "rayPayloadNV"); - parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask | - EShLangAnyHitMask | EShLangMissMask), "rayPayloadNV"); - parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadNV"); - $$.init($1.loc); - $$.qualifier.storage = EvqPayload; - } - | PAYLOADEXT { - parseContext.globalCheck($1.loc, "rayPayloadEXT"); - parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask | - EShLangAnyHitMask | EShLangMissMask), "rayPayloadEXT"); - parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "rayPayloadEXT"); - $$.init($1.loc); - $$.qualifier.storage = EvqPayload; - } - | PAYLOADINNV { - parseContext.globalCheck($1.loc, "rayPayloadInNV"); - parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangClosestHitMask | - EShLangAnyHitMask | EShLangMissMask), "rayPayloadInNV"); - parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadInNV"); - $$.init($1.loc); - $$.qualifier.storage = EvqPayloadIn; - } - | PAYLOADINEXT { - parseContext.globalCheck($1.loc, "rayPayloadInEXT"); - parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangClosestHitMask | - EShLangAnyHitMask | EShLangMissMask), "rayPayloadInEXT"); - parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "rayPayloadInEXT"); - $$.init($1.loc); - $$.qualifier.storage = EvqPayloadIn; - } - | CALLDATANV { - parseContext.globalCheck($1.loc, "callableDataNV"); - parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangRayGenMask | - EShLangClosestHitMask | EShLangMissMask | EShLangCallableMask), "callableDataNV"); - parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataNV"); - $$.init($1.loc); - $$.qualifier.storage = EvqCallableData; - } - | CALLDATAEXT { - parseContext.globalCheck($1.loc, "callableDataEXT"); - parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangRayGenMask | - EShLangClosestHitMask | EShLangMissMask | EShLangCallableMask), "callableDataEXT"); - parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "callableDataEXT"); - $$.init($1.loc); - $$.qualifier.storage = EvqCallableData; - } - | CALLDATAINNV { - parseContext.globalCheck($1.loc, "callableDataInNV"); - parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangCallableMask), "callableDataInNV"); - parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataInNV"); - $$.init($1.loc); - $$.qualifier.storage = EvqCallableDataIn; - } - | CALLDATAINEXT { - parseContext.globalCheck($1.loc, "callableDataInEXT"); - parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangCallableMask), "callableDataInEXT"); - parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "callableDataInEXT"); - $$.init($1.loc); - $$.qualifier.storage = EvqCallableDataIn; - } - | COHERENT { - $$.init($1.loc); - $$.qualifier.coherent = true; - } - | DEVICECOHERENT { - $$.init($1.loc); - parseContext.requireExtensions($1.loc, 1, &E_GL_KHR_memory_scope_semantics, "devicecoherent"); - $$.qualifier.devicecoherent = true; - } - | QUEUEFAMILYCOHERENT { - $$.init($1.loc); - parseContext.requireExtensions($1.loc, 1, &E_GL_KHR_memory_scope_semantics, "queuefamilycoherent"); - $$.qualifier.queuefamilycoherent = true; - } - | WORKGROUPCOHERENT { - $$.init($1.loc); - parseContext.requireExtensions($1.loc, 1, &E_GL_KHR_memory_scope_semantics, "workgroupcoherent"); - $$.qualifier.workgroupcoherent = true; - } - | SUBGROUPCOHERENT { - $$.init($1.loc); - parseContext.requireExtensions($1.loc, 1, &E_GL_KHR_memory_scope_semantics, "subgroupcoherent"); - $$.qualifier.subgroupcoherent = true; - } - | NONPRIVATE { - $$.init($1.loc); - parseContext.requireExtensions($1.loc, 1, &E_GL_KHR_memory_scope_semantics, "nonprivate"); - $$.qualifier.nonprivate = true; - } - | SHADERCALLCOHERENT { - $$.init($1.loc); - parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_ray_tracing, "shadercallcoherent"); - $$.qualifier.shadercallcoherent = true; - } - | VOLATILE { - $$.init($1.loc); - $$.qualifier.volatil = true; - } - | RESTRICT { - $$.init($1.loc); - $$.qualifier.restrict = true; - } - | READONLY { - $$.init($1.loc); - $$.qualifier.readonly = true; - } - | WRITEONLY { - $$.init($1.loc); - $$.qualifier.writeonly = true; - } - | SUBROUTINE { - parseContext.spvRemoved($1.loc, "subroutine"); - parseContext.globalCheck($1.loc, "subroutine"); - parseContext.unimplemented($1.loc, "subroutine"); - $$.init($1.loc); - } - | 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; - } - ; - -type_name_list - : IDENTIFIER { - // TODO - } - | 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_specifier - : type_specifier_nonarray type_parameter_specifier_opt { - $$ = $1; - $$.qualifier.precision = parseContext.getDefaultPrecision($$); - $$.typeParameters = $2; - } - | type_specifier_nonarray type_parameter_specifier_opt array_specifier { - parseContext.arrayOfArrayVersionCheck($3.loc, $3.arraySizes); - $$ = $1; - $$.qualifier.precision = parseContext.getDefaultPrecision($$); - $$.typeParameters = $2; - $$.arraySizes = $3.arraySizes; - } - ; - -array_specifier - : LEFT_BRACKET RIGHT_BRACKET { - $$.loc = $1.loc; - $$.arraySizes = new TArraySizes; - $$.arraySizes->addInnerSize(); - } - | LEFT_BRACKET conditional_expression RIGHT_BRACKET { - $$.loc = $1.loc; - $$.arraySizes = new TArraySizes; - - TArraySize size; - parseContext.arraySizeCheck($2->getLoc(), $2, size, "array size"); - $$.arraySizes->addInnerSize(size); - } - | array_specifier LEFT_BRACKET RIGHT_BRACKET { - $$ = $1; - $$.arraySizes->addInnerSize(); - } - | array_specifier LEFT_BRACKET conditional_expression RIGHT_BRACKET { - $$ = $1; - - TArraySize size; - parseContext.arraySizeCheck($3->getLoc(), $3, size, "array size"); - $$.arraySizes->addInnerSize(size); - } - ; - -type_parameter_specifier_opt - : type_parameter_specifier { - $$ = $1; - } - | /* May be null */ { - $$ = 0; - } - ; - -type_parameter_specifier - : LEFT_ANGLE type_parameter_specifier_list RIGHT_ANGLE { - $$ = $2; - } - ; - -type_parameter_specifier_list - : unary_expression { - $$ = new TArraySizes; - - TArraySize size; - parseContext.arraySizeCheck($1->getLoc(), $1, size, "type parameter"); - $$->addInnerSize(size); - } - | type_parameter_specifier_list COMMA unary_expression { - $$ = $1; - - TArraySize size; - parseContext.arraySizeCheck($3->getLoc(), $3, size, "type parameter"); - $$->addInnerSize(size); - } - ; - -type_specifier_nonarray - : VOID { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtVoid; - } - | FLOAT { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - } - | INT { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt; - } - | UINT { - parseContext.fullIntegerCheck($1.loc, "unsigned integer"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint; - } - | BOOL { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtBool; - } - | VEC2 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setVector(2); - } - | VEC3 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setVector(3); - } - | VEC4 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setVector(4); - } - | BVEC2 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtBool; - $$.setVector(2); - } - | BVEC3 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtBool; - $$.setVector(3); - } - | BVEC4 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtBool; - $$.setVector(4); - } - | IVEC2 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt; - $$.setVector(2); - } - | IVEC3 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt; - $$.setVector(3); - } - | IVEC4 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt; - $$.setVector(4); - } - | UVEC2 { - parseContext.fullIntegerCheck($1.loc, "unsigned integer vector"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint; - $$.setVector(2); - } - | UVEC3 { - parseContext.fullIntegerCheck($1.loc, "unsigned integer vector"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint; - $$.setVector(3); - } - | UVEC4 { - parseContext.fullIntegerCheck($1.loc, "unsigned integer vector"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint; - $$.setVector(4); - } - | MAT2 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setMatrix(2, 2); - } - | MAT3 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setMatrix(3, 3); - } - | MAT4 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setMatrix(4, 4); - } - | MAT2X2 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setMatrix(2, 2); - } - | MAT2X3 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setMatrix(2, 3); - } - | MAT2X4 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setMatrix(2, 4); - } - | MAT3X2 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setMatrix(3, 2); - } - | MAT3X3 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setMatrix(3, 3); - } - | MAT3X4 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setMatrix(3, 4); - } - | MAT4X2 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setMatrix(4, 2); - } - | MAT4X3 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setMatrix(4, 3); - } - | MAT4X4 { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setMatrix(4, 4); - } - - | DOUBLE { - parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double"); - if (! parseContext.symbolTable.atBuiltInLevel()) - parseContext.doubleCheck($1.loc, "double"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - } - | FLOAT16_T { - parseContext.float16ScalarVectorCheck($1.loc, "float16_t", 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; - } - | INT8_T { - parseContext.int8ScalarVectorCheck($1.loc, "8-bit signed integer", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt8; - } - | UINT8_T { - parseContext.int8ScalarVectorCheck($1.loc, "8-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint8; - } - | INT16_T { - parseContext.int16ScalarVectorCheck($1.loc, "16-bit signed integer", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt16; - } - | UINT16_T { - parseContext.int16ScalarVectorCheck($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()); - $$.basicType = EbtInt64; - } - | UINT64_T { - parseContext.int64Check($1.loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint64; - } - | DVEC2 { - parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double vector"); - if (! parseContext.symbolTable.atBuiltInLevel()) - parseContext.doubleCheck($1.loc, "double vector"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setVector(2); - } - | DVEC3 { - parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double vector"); - if (! parseContext.symbolTable.atBuiltInLevel()) - parseContext.doubleCheck($1.loc, "double vector"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setVector(3); - } - | DVEC4 { - parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double vector"); - if (! parseContext.symbolTable.atBuiltInLevel()) - parseContext.doubleCheck($1.loc, "double vector"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setVector(4); - } - | F16VEC2 { - parseContext.float16ScalarVectorCheck($1.loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat16; - $$.setVector(2); - } - | F16VEC3 { - parseContext.float16ScalarVectorCheck($1.loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat16; - $$.setVector(3); - } - | F16VEC4 { - parseContext.float16ScalarVectorCheck($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); - } - | I8VEC2 { - parseContext.int8ScalarVectorCheck($1.loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt8; - $$.setVector(2); - } - | I8VEC3 { - parseContext.int8ScalarVectorCheck($1.loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt8; - $$.setVector(3); - } - | I8VEC4 { - parseContext.int8ScalarVectorCheck($1.loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt8; - $$.setVector(4); - } - | I16VEC2 { - parseContext.int16ScalarVectorCheck($1.loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt16; - $$.setVector(2); - } - | I16VEC3 { - parseContext.int16ScalarVectorCheck($1.loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt16; - $$.setVector(3); - } - | I16VEC4 { - parseContext.int16ScalarVectorCheck($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()); - $$.basicType = EbtInt64; - $$.setVector(2); - } - | I64VEC3 { - parseContext.int64Check($1.loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt64; - $$.setVector(3); - } - | I64VEC4 { - parseContext.int64Check($1.loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt64; - $$.setVector(4); - } - | U8VEC2 { - parseContext.int8ScalarVectorCheck($1.loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint8; - $$.setVector(2); - } - | U8VEC3 { - parseContext.int8ScalarVectorCheck($1.loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint8; - $$.setVector(3); - } - | U8VEC4 { - parseContext.int8ScalarVectorCheck($1.loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint8; - $$.setVector(4); - } - | U16VEC2 { - parseContext.int16ScalarVectorCheck($1.loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint16; - $$.setVector(2); - } - | U16VEC3 { - parseContext.int16ScalarVectorCheck($1.loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint16; - $$.setVector(3); - } - | U16VEC4 { - parseContext.int16ScalarVectorCheck($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()); - $$.basicType = EbtUint64; - $$.setVector(2); - } - | U64VEC3 { - parseContext.int64Check($1.loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint64; - $$.setVector(3); - } - | U64VEC4 { - parseContext.int64Check($1.loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint64; - $$.setVector(4); - } - | DMAT2 { - parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix"); - if (! parseContext.symbolTable.atBuiltInLevel()) - parseContext.doubleCheck($1.loc, "double matrix"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setMatrix(2, 2); - } - | DMAT3 { - parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix"); - if (! parseContext.symbolTable.atBuiltInLevel()) - parseContext.doubleCheck($1.loc, "double matrix"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setMatrix(3, 3); - } - | DMAT4 { - parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix"); - if (! parseContext.symbolTable.atBuiltInLevel()) - parseContext.doubleCheck($1.loc, "double matrix"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setMatrix(4, 4); - } - | DMAT2X2 { - parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix"); - if (! parseContext.symbolTable.atBuiltInLevel()) - parseContext.doubleCheck($1.loc, "double matrix"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setMatrix(2, 2); - } - | DMAT2X3 { - parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix"); - if (! parseContext.symbolTable.atBuiltInLevel()) - parseContext.doubleCheck($1.loc, "double matrix"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setMatrix(2, 3); - } - | DMAT2X4 { - parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix"); - if (! parseContext.symbolTable.atBuiltInLevel()) - parseContext.doubleCheck($1.loc, "double matrix"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setMatrix(2, 4); - } - | DMAT3X2 { - parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix"); - if (! parseContext.symbolTable.atBuiltInLevel()) - parseContext.doubleCheck($1.loc, "double matrix"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setMatrix(3, 2); - } - | DMAT3X3 { - parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix"); - if (! parseContext.symbolTable.atBuiltInLevel()) - parseContext.doubleCheck($1.loc, "double matrix"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setMatrix(3, 3); - } - | DMAT3X4 { - parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix"); - if (! parseContext.symbolTable.atBuiltInLevel()) - parseContext.doubleCheck($1.loc, "double matrix"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setMatrix(3, 4); - } - | DMAT4X2 { - parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix"); - if (! parseContext.symbolTable.atBuiltInLevel()) - parseContext.doubleCheck($1.loc, "double matrix"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setMatrix(4, 2); - } - | DMAT4X3 { - parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix"); - if (! parseContext.symbolTable.atBuiltInLevel()) - parseContext.doubleCheck($1.loc, "double matrix"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setMatrix(4, 3); - } - | DMAT4X4 { - parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix"); - if (! parseContext.symbolTable.atBuiltInLevel()) - parseContext.doubleCheck($1.loc, "double matrix"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setMatrix(4, 4); - } - | F16MAT2 { - parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat16; - $$.setMatrix(2, 2); - } - | F16MAT3 { - parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat16; - $$.setMatrix(3, 3); - } - | F16MAT4 { - parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat16; - $$.setMatrix(4, 4); - } - | F16MAT2X2 { - parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat16; - $$.setMatrix(2, 2); - } - | F16MAT2X3 { - parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat16; - $$.setMatrix(2, 3); - } - | F16MAT2X4 { - parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat16; - $$.setMatrix(2, 4); - } - | F16MAT3X2 { - parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat16; - $$.setMatrix(3, 2); - } - | F16MAT3X3 { - parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat16; - $$.setMatrix(3, 3); - } - | F16MAT3X4 { - parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat16; - $$.setMatrix(3, 4); - } - | F16MAT4X2 { - parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat16; - $$.setMatrix(4, 2); - } - | F16MAT4X3 { - parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat16; - $$.setMatrix(4, 3); - } - | F16MAT4X4 { - 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); - } - | ACCSTRUCTNV { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtAccStruct; - } - | ACCSTRUCTEXT { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtAccStruct; - } - | RAYQUERYEXT { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtRayQuery; - } - | ATOMIC_UINT { - parseContext.vulkanRemoved($1.loc, "atomic counter types"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtAtomicUint; - } - | SAMPLER1D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, Esd1D); - } - - | SAMPLER2D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, Esd2D); - } - | SAMPLER3D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, Esd3D); - } - | SAMPLERCUBE { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, EsdCube); - } - | SAMPLER2DSHADOW { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, Esd2D, false, true); - } - | SAMPLERCUBESHADOW { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, EsdCube, false, true); - } - | SAMPLER2DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, Esd2D, true); - } - | SAMPLER2DARRAYSHADOW { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, Esd2D, true, true); - } - - | SAMPLER1DSHADOW { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, Esd1D, false, true); - } - | SAMPLER1DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, Esd1D, true); - } - | SAMPLER1DARRAYSHADOW { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, Esd1D, true, true); - } - | SAMPLERCUBEARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, EsdCube, true); - } - | SAMPLERCUBEARRAYSHADOW { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, EsdCube, true, true); - } - | F16SAMPLER1D { - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, Esd1D); - } - | F16SAMPLER2D { - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, Esd2D); - } - | F16SAMPLER3D { - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, Esd3D); - } - | F16SAMPLERCUBE { - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, EsdCube); - } - | F16SAMPLER1DSHADOW { - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, Esd1D, false, true); - } - | F16SAMPLER2DSHADOW { - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, Esd2D, false, true); - } - | F16SAMPLERCUBESHADOW { - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, EsdCube, false, true); - } - | F16SAMPLER1DARRAY { - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, Esd1D, true); - } - | F16SAMPLER2DARRAY { - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, Esd2D, true); - } - | F16SAMPLER1DARRAYSHADOW { - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, Esd1D, true, true); - } - | F16SAMPLER2DARRAYSHADOW { - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, Esd2D, true, true); - } - | F16SAMPLERCUBEARRAY { - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, EsdCube, true); - } - | F16SAMPLERCUBEARRAYSHADOW { - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, EsdCube, true, true); - } - | ISAMPLER1D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtInt, Esd1D); - } - - | ISAMPLER2D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtInt, Esd2D); - } - | ISAMPLER3D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtInt, Esd3D); - } - | ISAMPLERCUBE { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtInt, EsdCube); - } - | ISAMPLER2DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtInt, Esd2D, true); - } - | USAMPLER2D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtUint, Esd2D); - } - | USAMPLER3D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtUint, Esd3D); - } - | USAMPLERCUBE { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtUint, EsdCube); - } - - | ISAMPLER1DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtInt, Esd1D, true); - } - | ISAMPLERCUBEARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtInt, EsdCube, true); - } - | USAMPLER1D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtUint, Esd1D); - } - | USAMPLER1DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtUint, Esd1D, true); - } - | USAMPLERCUBEARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtUint, EsdCube, true); - } - | TEXTURECUBEARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat, EsdCube, true); - } - | ITEXTURECUBEARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtInt, EsdCube, true); - } - | UTEXTURECUBEARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtUint, EsdCube, true); - } - - | USAMPLER2DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtUint, Esd2D, true); - } - | TEXTURE2D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat, Esd2D); - } - | TEXTURE3D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat, Esd3D); - } - | TEXTURE2DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat, Esd2D, true); - } - | TEXTURECUBE { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat, EsdCube); - } - | ITEXTURE2D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtInt, Esd2D); - } - | ITEXTURE3D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtInt, Esd3D); - } - | ITEXTURECUBE { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtInt, EsdCube); - } - | ITEXTURE2DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtInt, Esd2D, true); - } - | UTEXTURE2D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtUint, Esd2D); - } - | UTEXTURE3D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtUint, Esd3D); - } - | UTEXTURECUBE { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtUint, EsdCube); - } - | UTEXTURE2DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtUint, Esd2D, true); - } - | SAMPLER { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setPureSampler(false); - } - | SAMPLERSHADOW { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setPureSampler(true); - } - - | SAMPLER2DRECT { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, EsdRect); - } - | SAMPLER2DRECTSHADOW { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, EsdRect, false, true); - } - | F16SAMPLER2DRECT { - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, EsdRect); - } - | F16SAMPLER2DRECTSHADOW { - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, EsdRect, false, true); - } - | ISAMPLER2DRECT { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtInt, EsdRect); - } - | USAMPLER2DRECT { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtUint, EsdRect); - } - | SAMPLERBUFFER { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, EsdBuffer); - } - | F16SAMPLERBUFFER { - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, EsdBuffer); - } - | ISAMPLERBUFFER { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtInt, EsdBuffer); - } - | USAMPLERBUFFER { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtUint, EsdBuffer); - } - | SAMPLER2DMS { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, Esd2D, false, false, true); - } - | F16SAMPLER2DMS { - 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); - } - | ISAMPLER2DMS { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtInt, Esd2D, false, false, true); - } - | USAMPLER2DMS { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtUint, Esd2D, false, false, true); - } - | SAMPLER2DMSARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, Esd2D, true, false, true); - } - | F16SAMPLER2DMSARRAY { - 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); - } - | ISAMPLER2DMSARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtInt, Esd2D, true, false, true); - } - | USAMPLER2DMSARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtUint, Esd2D, true, false, true); - } - | TEXTURE1D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat, Esd1D); - } - | F16TEXTURE1D { - parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat16, Esd1D); - } - | F16TEXTURE2D { - parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat16, Esd2D); - } - | F16TEXTURE3D { - parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat16, Esd3D); - } - | F16TEXTURECUBE { - parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat16, EsdCube); - } - | TEXTURE1DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat, Esd1D, true); - } - | F16TEXTURE1DARRAY { - parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat16, Esd1D, true); - } - | F16TEXTURE2DARRAY { - parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat16, Esd2D, true); - } - | F16TEXTURECUBEARRAY { - parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat16, EsdCube, true); - } - | ITEXTURE1D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtInt, Esd1D); - } - | ITEXTURE1DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtInt, Esd1D, true); - } - | UTEXTURE1D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtUint, Esd1D); - } - | UTEXTURE1DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtUint, Esd1D, true); - } - | TEXTURE2DRECT { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat, EsdRect); - } - | F16TEXTURE2DRECT { - parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat16, EsdRect); - } - | ITEXTURE2DRECT { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtInt, EsdRect); - } - | UTEXTURE2DRECT { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtUint, EsdRect); - } - | TEXTUREBUFFER { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat, EsdBuffer); - } - | F16TEXTUREBUFFER { - parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat16, EsdBuffer); - } - | ITEXTUREBUFFER { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtInt, EsdBuffer); - } - | UTEXTUREBUFFER { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtUint, EsdBuffer); - } - | TEXTURE2DMS { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat, Esd2D, false, false, true); - } - | F16TEXTURE2DMS { - 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); - } - | ITEXTURE2DMS { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtInt, Esd2D, false, false, true); - } - | UTEXTURE2DMS { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtUint, Esd2D, false, false, true); - } - | TEXTURE2DMSARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat, Esd2D, true, false, true); - } - | F16TEXTURE2DMSARRAY { - 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); - } - | ITEXTURE2DMSARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtInt, Esd2D, true, false, true); - } - | UTEXTURE2DMSARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtUint, Esd2D, true, false, true); - } - | IMAGE1D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat, Esd1D); - } - | F16IMAGE1D { - parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat16, Esd1D); - } - | IIMAGE1D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt, Esd1D); - } - | UIMAGE1D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint, Esd1D); - } - | IMAGE2D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat, Esd2D); - } - | F16IMAGE2D { - parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat16, Esd2D); - } - | IIMAGE2D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt, Esd2D); - } - | UIMAGE2D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint, Esd2D); - } - | IMAGE3D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat, Esd3D); - } - | F16IMAGE3D { - parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat16, Esd3D); - } - | IIMAGE3D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt, Esd3D); - } - | UIMAGE3D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint, Esd3D); - } - | IMAGE2DRECT { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat, EsdRect); - } - | F16IMAGE2DRECT { - parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat16, EsdRect); - } - | IIMAGE2DRECT { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt, EsdRect); - } - | UIMAGE2DRECT { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint, EsdRect); - } - | IMAGECUBE { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat, EsdCube); - } - | F16IMAGECUBE { - parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat16, EsdCube); - } - | IIMAGECUBE { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt, EsdCube); - } - | UIMAGECUBE { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint, EsdCube); - } - | IMAGEBUFFER { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat, EsdBuffer); - } - | F16IMAGEBUFFER { - parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat16, EsdBuffer); - } - | IIMAGEBUFFER { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt, EsdBuffer); - } - | UIMAGEBUFFER { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint, EsdBuffer); - } - | IMAGE1DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat, Esd1D, true); - } - | F16IMAGE1DARRAY { - parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat16, Esd1D, true); - } - | IIMAGE1DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt, Esd1D, true); - } - | UIMAGE1DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint, Esd1D, true); - } - | IMAGE2DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat, Esd2D, true); - } - | F16IMAGE2DARRAY { - parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat16, Esd2D, true); - } - | IIMAGE2DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt, Esd2D, true); - } - | UIMAGE2DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint, Esd2D, true); - } - | IMAGECUBEARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat, EsdCube, true); - } - | F16IMAGECUBEARRAY { - parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat16, EsdCube, true); - } - | IIMAGECUBEARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt, EsdCube, true); - } - | UIMAGECUBEARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint, EsdCube, true); - } - | IMAGE2DMS { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat, Esd2D, false, false, true); - } - | F16IMAGE2DMS { - 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); - } - | IIMAGE2DMS { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt, Esd2D, false, false, true); - } - | UIMAGE2DMS { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint, Esd2D, false, false, true); - } - | IMAGE2DMSARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat, Esd2D, true, false, true); - } - | F16IMAGE2DMSARRAY { - 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); - } - | IIMAGE2DMSARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt, Esd2D, true, false, true); - } - | UIMAGE2DMSARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint, Esd2D, true, false, true); - } - | I64IMAGE1D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt64, Esd1D); - } - | U64IMAGE1D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint64, Esd1D); - } - | I64IMAGE2D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt64, Esd2D); - } - | U64IMAGE2D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint64, Esd2D); - } - | I64IMAGE3D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt64, Esd3D); - } - | U64IMAGE3D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint64, Esd3D); - } - | I64IMAGE2DRECT { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt64, EsdRect); - } - | U64IMAGE2DRECT { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint64, EsdRect); - } - | I64IMAGECUBE { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt64, EsdCube); - } - | U64IMAGECUBE { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint64, EsdCube); - } - | I64IMAGEBUFFER { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt64, EsdBuffer); - } - | U64IMAGEBUFFER { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint64, EsdBuffer); - } - | I64IMAGE1DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt64, Esd1D, true); - } - | U64IMAGE1DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint64, Esd1D, true); - } - | I64IMAGE2DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt64, Esd2D, true); - } - | U64IMAGE2DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint64, Esd2D, true); - } - | I64IMAGECUBEARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt64, EsdCube, true); - } - | U64IMAGECUBEARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint64, EsdCube, true); - } - | I64IMAGE2DMS { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt64, Esd2D, false, false, true); - } - | U64IMAGE2DMS { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint64, Esd2D, false, false, true); - } - | I64IMAGE2DMSARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtInt64, Esd2D, true, false, true); - } - | U64IMAGE2DMSARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtUint64, Esd2D, true, false, true); - } - | SAMPLEREXTERNALOES { // GL_OES_EGL_image_external - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, Esd2D); - $$.sampler.external = true; - } - | SAMPLEREXTERNAL2DY2YEXT { // GL_EXT_YUV_target - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat, Esd2D); - $$.sampler.yuv = true; - } - | SUBPASSINPUT { - parseContext.requireStage($1.loc, EShLangFragment, "subpass input"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setSubpass(EbtFloat); - } - | SUBPASSINPUTMS { - parseContext.requireStage($1.loc, EShLangFragment, "subpass input"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setSubpass(EbtFloat, true); - } - | F16SUBPASSINPUT { - 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); - } - | F16SUBPASSINPUTMS { - 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); - } - | ISUBPASSINPUT { - parseContext.requireStage($1.loc, EShLangFragment, "subpass input"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setSubpass(EbtInt); - } - | ISUBPASSINPUTMS { - parseContext.requireStage($1.loc, EShLangFragment, "subpass input"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setSubpass(EbtInt, true); - } - | USUBPASSINPUT { - parseContext.requireStage($1.loc, EShLangFragment, "subpass input"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setSubpass(EbtUint); - } - | USUBPASSINPUTMS { - parseContext.requireStage($1.loc, EShLangFragment, "subpass input"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setSubpass(EbtUint, true); - } - | FCOOPMATNV { - parseContext.fcoopmatCheck($1.loc, "fcoopmatNV", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.coopmat = true; - } - | ICOOPMATNV { - parseContext.intcoopmatCheck($1.loc, "icoopmatNV", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt; - $$.coopmat = true; - } - | UCOOPMATNV { - parseContext.intcoopmatCheck($1.loc, "ucoopmatNV", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint; - $$.coopmat = true; - } - | spirv_type_specifier { - parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V type specifier"); - $$ = $1; - } - - | struct_specifier { - $$ = $1; - $$.qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; - parseContext.structTypeCheck($$.loc, $$); - } - | TYPE_NAME { - // - // This is for user defined type names. The lexical phase looked up the - // type. - // - if (const TVariable* variable = ($1.symbol)->getAsVariable()) { - const TType& structure = variable->getType(); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtStruct; - $$.userDef = &structure; - } else - parseContext.error($1.loc, "expected type name", $1.string->c_str(), ""); - } - ; - -precision_qualifier - : HIGH_PRECISION { - parseContext.profileRequires($1.loc, ENoProfile, 130, 0, "highp precision qualifier"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - parseContext.handlePrecisionQualifier($1.loc, $$.qualifier, EpqHigh); - } - | MEDIUM_PRECISION { - parseContext.profileRequires($1.loc, ENoProfile, 130, 0, "mediump precision qualifier"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - parseContext.handlePrecisionQualifier($1.loc, $$.qualifier, EpqMedium); - } - | LOW_PRECISION { - parseContext.profileRequires($1.loc, ENoProfile, 130, 0, "lowp precision qualifier"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - parseContext.handlePrecisionQualifier($1.loc, $$.qualifier, EpqLow); - } - ; - -struct_specifier - : STRUCT IDENTIFIER LEFT_BRACE { parseContext.nestedStructCheck($1.loc); } struct_declaration_list RIGHT_BRACE { - TType* structure = new TType($5, *$2.string); - parseContext.structArrayCheck($2.loc, *structure); - TVariable* userTypeDef = new TVariable($2.string, *structure, true); - if (! parseContext.symbolTable.insert(*userTypeDef)) - parseContext.error($2.loc, "redefinition", $2.string->c_str(), "struct"); - $$.init($1.loc); - $$.basicType = EbtStruct; - $$.userDef = structure; - --parseContext.structNestingLevel; - } - | STRUCT LEFT_BRACE { parseContext.nestedStructCheck($1.loc); } struct_declaration_list RIGHT_BRACE { - TType* structure = new TType($4, TString("")); - $$.init($1.loc); - $$.basicType = EbtStruct; - $$.userDef = structure; - --parseContext.structNestingLevel; - } - ; - -struct_declaration_list - : struct_declaration { - $$ = $1; - } - | struct_declaration_list struct_declaration { - $$ = $1; - for (unsigned int i = 0; i < $2->size(); ++i) { - for (unsigned int j = 0; j < $$->size(); ++j) { - if ((*$$)[j].type->getFieldName() == (*$2)[i].type->getFieldName()) - parseContext.error((*$2)[i].loc, "duplicate member name:", "", (*$2)[i].type->getFieldName().c_str()); - } - $$->push_back((*$2)[i]); - } - } - ; - -struct_declaration - : type_specifier struct_declarator_list SEMICOLON { - if ($1.arraySizes) { - parseContext.profileRequires($1.loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires($1.loc, EEsProfile, 300, 0, "arrayed type"); - if (parseContext.isEsProfile()) - parseContext.arraySizeRequiredCheck($1.loc, *$1.arraySizes); - } - - $$ = $2; - - parseContext.voidErrorCheck($1.loc, (*$2)[0].type->getFieldName(), $1.basicType); - 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); - } - } - | type_qualifier type_specifier struct_declarator_list SEMICOLON { - 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"); - if (parseContext.isEsProfile()) - parseContext.arraySizeRequiredCheck($2.loc, *$2.arraySizes); - } - - $$ = $3; - - 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) { - 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); - } - } - ; - -struct_declarator_list - : struct_declarator { - $$ = new TTypeList; - $$->push_back($1); - } - | struct_declarator_list COMMA struct_declarator { - $$->push_back($3); - } - ; - -struct_declarator - : IDENTIFIER { - $$.type = new TType(EbtVoid); - $$.loc = $1.loc; - $$.type->setFieldName(*$1.string); - } - | IDENTIFIER array_specifier { - parseContext.arrayOfArrayVersionCheck($1.loc, $2.arraySizes); - - $$.type = new TType(EbtVoid); - $$.loc = $1.loc; - $$.type->setFieldName(*$1.string); - $$.type->transferArraySizes($2.arraySizes); - } - ; - -initializer - : assignment_expression { - $$ = $1; - } - - | LEFT_BRACE initializer_list RIGHT_BRACE { - const char* initFeature = "{ } style initializers"; - parseContext.requireProfile($1.loc, ~EEsProfile, initFeature); - parseContext.profileRequires($1.loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); - $$ = $2; - } - | LEFT_BRACE initializer_list COMMA RIGHT_BRACE { - const char* initFeature = "{ } style initializers"; - parseContext.requireProfile($1.loc, ~EEsProfile, initFeature); - parseContext.profileRequires($1.loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); - $$ = $2; - } - | LEFT_BRACE RIGHT_BRACE { - const char* initFeature = "empty { } initializer"; - parseContext.profileRequires($1.loc, EEsProfile, 0, E_GL_EXT_null_initializer, initFeature); - parseContext.profileRequires($1.loc, ~EEsProfile, 0, E_GL_EXT_null_initializer, initFeature); - $$ = parseContext.intermediate.makeAggregate($1.loc); - } - - ; - - -initializer_list - : initializer { - $$ = parseContext.intermediate.growAggregate(0, $1, $1->getLoc()); - } - | initializer_list COMMA initializer { - $$ = parseContext.intermediate.growAggregate($1, $3); - } - ; - - -declaration_statement - : declaration { $$ = $1; } - ; - -statement - : compound_statement { $$ = $1; } - | simple_statement { $$ = $1; } - ; - -// Grammar Note: labeled statements for switch statements only; 'goto' is not supported. - -simple_statement - : declaration_statement { $$ = $1; } - | expression_statement { $$ = $1; } - | selection_statement { $$ = $1; } - | switch_statement { $$ = $1; } - | case_label { $$ = $1; } - | iteration_statement { $$ = $1; } - | jump_statement { $$ = $1; } - - | demote_statement { $$ = $1; } - - ; - - -demote_statement - : DEMOTE SEMICOLON { - parseContext.requireStage($1.loc, EShLangFragment, "demote"); - parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_demote_to_helper_invocation, "demote"); - $$ = parseContext.intermediate.addBranch(EOpDemote, $1.loc); - } - ; - - -compound_statement - : LEFT_BRACE RIGHT_BRACE { $$ = 0; } - | LEFT_BRACE { - parseContext.symbolTable.push(); - ++parseContext.statementNestingLevel; - } - statement_list { - parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - --parseContext.statementNestingLevel; - } - RIGHT_BRACE { - if ($3 && $3->getAsAggregate()) - $3->getAsAggregate()->setOperator(EOpSequence); - $$ = $3; - } - ; - -statement_no_new_scope - : compound_statement_no_new_scope { $$ = $1; } - | simple_statement { $$ = $1; } - ; - -statement_scoped - : { - ++parseContext.controlFlowNestingLevel; - } - compound_statement { - --parseContext.controlFlowNestingLevel; - $$ = $2; - } - | { - parseContext.symbolTable.push(); - ++parseContext.statementNestingLevel; - ++parseContext.controlFlowNestingLevel; - } - simple_statement { - parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - --parseContext.statementNestingLevel; - --parseContext.controlFlowNestingLevel; - $$ = $2; - } - -compound_statement_no_new_scope - // Statement that doesn't create a new scope, for selection_statement, iteration_statement - : LEFT_BRACE RIGHT_BRACE { - $$ = 0; - } - | LEFT_BRACE statement_list RIGHT_BRACE { - if ($2 && $2->getAsAggregate()) - $2->getAsAggregate()->setOperator(EOpSequence); - $$ = $2; - } - ; - -statement_list - : statement { - $$ = parseContext.intermediate.makeAggregate($1); - if ($1 && $1->getAsBranchNode() && ($1->getAsBranchNode()->getFlowOp() == EOpCase || - $1->getAsBranchNode()->getFlowOp() == EOpDefault)) { - parseContext.wrapupSwitchSubsequence(0, $1); - $$ = 0; // start a fresh subsequence for what's after this case - } - } - | statement_list statement { - if ($2 && $2->getAsBranchNode() && ($2->getAsBranchNode()->getFlowOp() == EOpCase || - $2->getAsBranchNode()->getFlowOp() == EOpDefault)) { - parseContext.wrapupSwitchSubsequence($1 ? $1->getAsAggregate() : 0, $2); - $$ = 0; // start a fresh subsequence for what's after this case - } else - $$ = parseContext.intermediate.growAggregate($1, $2); - } - ; - -expression_statement - : SEMICOLON { $$ = 0; } - | expression SEMICOLON { $$ = static_cast($1); } - ; - -selection_statement - : selection_statement_nonattributed { - $$ = $1; - } - - | attribute selection_statement_nonattributed { - parseContext.requireExtensions($2->getLoc(), 1, &E_GL_EXT_control_flow_attributes, "attribute"); - 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); - } - ; - -selection_rest_statement - : statement_scoped ELSE statement_scoped { - $$.node1 = $1; - $$.node2 = $3; - } - | statement_scoped { - $$.node1 = $1; - $$.node2 = 0; - } - ; - -condition - // In 1996 c++ draft, conditions can include single declarations - : expression { - $$ = $1; - parseContext.boolCheck($1->getLoc(), $1); - } - | fully_specified_type IDENTIFIER EQUAL initializer { - parseContext.boolCheck($2.loc, $1); - - TType type($1); - TIntermNode* initNode = parseContext.declareVariable($2.loc, *$2.string, $1, 0, $4); - if (initNode) - $$ = initNode->getAsTyped(); - else - $$ = 0; - } - ; - -switch_statement - : switch_statement_nonattributed { - $$ = $1; - } - - | attribute switch_statement_nonattributed { - parseContext.requireExtensions($2->getLoc(), 1, &E_GL_EXT_control_flow_attributes, "attribute"); - parseContext.handleSwitchAttributes(*$1, $2); - $$ = $2; - } - - -switch_statement_nonattributed - : SWITCH LEFT_PAREN expression RIGHT_PAREN { - // 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(); - } - LEFT_BRACE switch_statement_list RIGHT_BRACE { - $$ = parseContext.addSwitch($1.loc, $3, $7 ? $7->getAsAggregate() : 0); - delete parseContext.switchSequenceStack.back(); - parseContext.switchSequenceStack.pop_back(); - parseContext.switchLevel.pop_back(); - parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - --parseContext.statementNestingLevel; - --parseContext.controlFlowNestingLevel; - } - ; - -switch_statement_list - : /* nothing */ { - $$ = 0; - } - | statement_list { - $$ = $1; - } - ; - -case_label - : CASE expression COLON { - $$ = 0; - if (parseContext.switchLevel.size() == 0) - parseContext.error($1.loc, "cannot appear outside switch statement", "case", ""); - else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel) - parseContext.error($1.loc, "cannot be nested inside control flow", "case", ""); - else { - parseContext.constantValueCheck($2, "case"); - parseContext.integerCheck($2, "case"); - $$ = parseContext.intermediate.addBranch(EOpCase, $2, $1.loc); - } - } - | DEFAULT COLON { - $$ = 0; - if (parseContext.switchLevel.size() == 0) - parseContext.error($1.loc, "cannot appear outside switch statement", "default", ""); - else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel) - parseContext.error($1.loc, "cannot be nested inside control flow", "default", ""); - else - $$ = parseContext.intermediate.addBranch(EOpDefault, $1.loc); - } - ; - -iteration_statement - : iteration_statement_nonattributed { - $$ = $1; - } - - | attribute iteration_statement_nonattributed { - parseContext.requireExtensions($2->getLoc(), 1, &E_GL_EXT_control_flow_attributes, "attribute"); - parseContext.handleLoopAttributes(*$1, $2); - $$ = $2; - } - - -iteration_statement_nonattributed - : WHILE LEFT_PAREN { - if (! parseContext.limits.whileLoops) - parseContext.error($1.loc, "while loops not available", "limitation", ""); - parseContext.symbolTable.push(); - ++parseContext.loopNestingLevel; - ++parseContext.statementNestingLevel; - ++parseContext.controlFlowNestingLevel; - } - condition RIGHT_PAREN statement_no_new_scope { - parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - $$ = parseContext.intermediate.addLoop($6, $4, 0, true, $1.loc); - --parseContext.loopNestingLevel; - --parseContext.statementNestingLevel; - --parseContext.controlFlowNestingLevel; - } - | DO { - parseContext.symbolTable.push(); - ++parseContext.loopNestingLevel; - ++parseContext.statementNestingLevel; - ++parseContext.controlFlowNestingLevel; - } - statement WHILE LEFT_PAREN expression RIGHT_PAREN SEMICOLON { - if (! parseContext.limits.whileLoops) - parseContext.error($1.loc, "do-while loops not available", "limitation", ""); - - parseContext.boolCheck($8.loc, $6); - - $$ = parseContext.intermediate.addLoop($3, $6, 0, false, $4.loc); - parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - --parseContext.loopNestingLevel; - --parseContext.statementNestingLevel; - --parseContext.controlFlowNestingLevel; - } - | FOR LEFT_PAREN { - parseContext.symbolTable.push(); - ++parseContext.loopNestingLevel; - ++parseContext.statementNestingLevel; - ++parseContext.controlFlowNestingLevel; - } - for_init_statement for_rest_statement RIGHT_PAREN statement_no_new_scope { - parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - $$ = parseContext.intermediate.makeAggregate($4, $2.loc); - TIntermLoop* forLoop = parseContext.intermediate.addLoop($7, reinterpret_cast($5.node1), reinterpret_cast($5.node2), true, $1.loc); - if (! parseContext.limits.nonInductiveForLoops) - parseContext.inductiveLoopCheck($1.loc, $4, forLoop); - $$ = parseContext.intermediate.growAggregate($$, forLoop, $1.loc); - $$->getAsAggregate()->setOperator(EOpSequence); - --parseContext.loopNestingLevel; - --parseContext.statementNestingLevel; - --parseContext.controlFlowNestingLevel; - } - ; - -for_init_statement - : expression_statement { - $$ = $1; - } - | declaration_statement { - $$ = $1; - } - ; - -conditionopt - : condition { - $$ = $1; - } - | /* May be null */ { - $$ = 0; - } - ; - -for_rest_statement - : conditionopt SEMICOLON { - $$.node1 = $1; - $$.node2 = 0; - } - | conditionopt SEMICOLON expression { - $$.node1 = $1; - $$.node2 = $3; - } - ; - -jump_statement - : CONTINUE SEMICOLON { - if (parseContext.loopNestingLevel <= 0) - parseContext.error($1.loc, "continue statement only allowed in loops", "", ""); - $$ = parseContext.intermediate.addBranch(EOpContinue, $1.loc); - } - | BREAK SEMICOLON { - if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0) - parseContext.error($1.loc, "break statement only allowed in switch and loops", "", ""); - $$ = parseContext.intermediate.addBranch(EOpBreak, $1.loc); - } - | RETURN SEMICOLON { - $$ = parseContext.intermediate.addBranch(EOpReturn, $1.loc); - if (parseContext.currentFunctionType->getBasicType() != EbtVoid) - parseContext.error($1.loc, "non-void function must return a value", "return", ""); - if (parseContext.inMain) - parseContext.postEntryPointReturn = true; - } - | RETURN expression SEMICOLON { - $$ = parseContext.handleReturnValue($1.loc, $2); - } - | DISCARD SEMICOLON { - parseContext.requireStage($1.loc, EShLangFragment, "discard"); - $$ = parseContext.intermediate.addBranch(EOpKill, $1.loc); - } - | TERMINATE_INVOCATION SEMICOLON { - parseContext.requireStage($1.loc, EShLangFragment, "terminateInvocation"); - $$ = parseContext.intermediate.addBranch(EOpTerminateInvocation, $1.loc); - } - - | TERMINATE_RAY SEMICOLON { - parseContext.requireStage($1.loc, EShLangAnyHit, "terminateRayEXT"); - $$ = parseContext.intermediate.addBranch(EOpTerminateRayKHR, $1.loc); - } - | IGNORE_INTERSECTION SEMICOLON { - parseContext.requireStage($1.loc, EShLangAnyHit, "ignoreIntersectionEXT"); - $$ = parseContext.intermediate.addBranch(EOpIgnoreIntersectionKHR, $1.loc); - } - - ; - -// Grammar Note: No 'goto'. Gotos are not supported. - -translation_unit - : external_declaration { - $$ = $1; - parseContext.intermediate.setTreeRoot($$); - } - | translation_unit external_declaration { - if ($2 != nullptr) { - $$ = parseContext.intermediate.growAggregate($1, $2); - parseContext.intermediate.setTreeRoot($$); - } - } - ; - -external_declaration - : function_definition { - $$ = $1; - } - | declaration { - $$ = $1; - } - - | SEMICOLON { - parseContext.requireProfile($1.loc, ~EEsProfile, "extraneous semicolon"); - parseContext.profileRequires($1.loc, ~EEsProfile, 460, nullptr, "extraneous semicolon"); - $$ = nullptr; - } - - ; - -function_definition - : function_prototype { - $1.function = parseContext.handleFunctionDeclarator($1.loc, *$1.function, false /* not prototype */); - $1.intermNode = parseContext.handleFunctionDefinition($1.loc, *$1.function); - - // For ES 100 only, according to ES shading language 100 spec: A function - // body has a scope nested inside the function's definition. - if (parseContext.profile == EEsProfile && parseContext.version == 100) - { - parseContext.symbolTable.push(); - ++parseContext.statementNestingLevel; - } - } - compound_statement_no_new_scope { - // May be best done as post process phase on intermediate code - if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue) - parseContext.error($1.loc, "function does not return a value:", "", $1.function->getName().c_str()); - parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - $$ = parseContext.intermediate.growAggregate($1.intermNode, $3); - parseContext.intermediate.setAggregateOperator($$, EOpFunction, $1.function->getType(), $1.loc); - $$->getAsAggregate()->setName($1.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 - $$->getAsAggregate()->setOptimize(parseContext.contextPragma.optimize); - $$->getAsAggregate()->setDebug(parseContext.contextPragma.debug); - $$->getAsAggregate()->setPragmaTable(parseContext.contextPragma.pragmaTable); - - // Set currentFunctionType to empty pointer when goes outside of the function - parseContext.currentFunctionType = nullptr; - - // For ES 100 only, according to ES shading language 100 spec: A function - // body has a scope nested inside the function's definition. - if (parseContext.profile == EEsProfile && parseContext.version == 100) - { - parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - --parseContext.statementNestingLevel; - } - } - ; - - -attribute - : LEFT_BRACKET LEFT_BRACKET attribute_list RIGHT_BRACKET RIGHT_BRACKET { - $$ = $3; - } - -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); - } - - - -spirv_requirements_list - : spirv_requirements_parameter { - $$ = $1; - } - | spirv_requirements_list COMMA spirv_requirements_parameter { - $$ = parseContext.mergeSpirvRequirements($2.loc, $1, $3); - } - -spirv_requirements_parameter - : IDENTIFIER EQUAL LEFT_BRACKET spirv_extension_list RIGHT_BRACKET { - $$ = parseContext.makeSpirvRequirement($2.loc, *$1.string, $4->getAsAggregate(), nullptr); - } - | IDENTIFIER EQUAL LEFT_BRACKET spirv_capability_list RIGHT_BRACKET { - $$ = parseContext.makeSpirvRequirement($2.loc, *$1.string, nullptr, $4->getAsAggregate()); - } - -spirv_extension_list - : STRING_LITERAL { - $$ = parseContext.intermediate.makeAggregate(parseContext.intermediate.addConstantUnion($1.string, $1.loc, true)); - } - | spirv_extension_list COMMA STRING_LITERAL { - $$ = parseContext.intermediate.growAggregate($1, parseContext.intermediate.addConstantUnion($3.string, $3.loc, true)); - } - -spirv_capability_list - : INTCONSTANT { - $$ = parseContext.intermediate.makeAggregate(parseContext.intermediate.addConstantUnion($1.i, $1.loc, true)); - } - | spirv_capability_list COMMA INTCONSTANT { - $$ = parseContext.intermediate.growAggregate($1, parseContext.intermediate.addConstantUnion($3.i, $3.loc, true)); - } - -spirv_execution_mode_qualifier - : SPIRV_EXECUTION_MODE LEFT_PAREN INTCONSTANT RIGHT_PAREN { - parseContext.intermediate.insertSpirvExecutionMode($3.i); - $$ = 0; - } - | SPIRV_EXECUTION_MODE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN { - parseContext.intermediate.insertSpirvRequirement($3); - parseContext.intermediate.insertSpirvExecutionMode($5.i); - $$ = 0; - } - | SPIRV_EXECUTION_MODE LEFT_PAREN INTCONSTANT COMMA spirv_execution_mode_parameter_list RIGHT_PAREN { - parseContext.intermediate.insertSpirvExecutionMode($3.i, $5->getAsAggregate()); - $$ = 0; - } - | SPIRV_EXECUTION_MODE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_execution_mode_parameter_list RIGHT_PAREN { - parseContext.intermediate.insertSpirvRequirement($3); - parseContext.intermediate.insertSpirvExecutionMode($5.i, $7->getAsAggregate()); - $$ = 0; - } - | SPIRV_EXECUTION_MODE_ID LEFT_PAREN INTCONSTANT COMMA spirv_execution_mode_id_parameter_list RIGHT_PAREN { - parseContext.intermediate.insertSpirvExecutionModeId($3.i, $5->getAsAggregate()); - $$ = 0; - } - | SPIRV_EXECUTION_MODE_ID LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_execution_mode_id_parameter_list RIGHT_PAREN { - parseContext.intermediate.insertSpirvRequirement($3); - parseContext.intermediate.insertSpirvExecutionModeId($5.i, $7->getAsAggregate()); - $$ = 0; - } - -spirv_execution_mode_parameter_list - : spirv_execution_mode_parameter { - $$ = parseContext.intermediate.makeAggregate($1); - } - | spirv_execution_mode_parameter_list COMMA spirv_execution_mode_parameter { - $$ = parseContext.intermediate.growAggregate($1, $3); - } - -spirv_execution_mode_parameter - : FLOATCONSTANT { - $$ = parseContext.intermediate.addConstantUnion($1.d, EbtFloat, $1.loc, true); - } - | INTCONSTANT { - $$ = parseContext.intermediate.addConstantUnion($1.i, $1.loc, true); - } - | UINTCONSTANT { - $$ = parseContext.intermediate.addConstantUnion($1.u, $1.loc, true); - } - | BOOLCONSTANT { - $$ = parseContext.intermediate.addConstantUnion($1.b, $1.loc, true); - } - | STRING_LITERAL { - $$ = parseContext.intermediate.addConstantUnion($1.string, $1.loc, true); - } - -spirv_execution_mode_id_parameter_list - : constant_expression { - if ($1->getBasicType() != EbtFloat && - $1->getBasicType() != EbtInt && - $1->getBasicType() != EbtUint && - $1->getBasicType() != EbtBool && - $1->getBasicType() != EbtString) - parseContext.error($1->getLoc(), "this type not allowed", $1->getType().getBasicString(), ""); - $$ = parseContext.intermediate.makeAggregate($1); - } - | spirv_execution_mode_id_parameter_list COMMA constant_expression { - if ($3->getBasicType() != EbtFloat && - $3->getBasicType() != EbtInt && - $3->getBasicType() != EbtUint && - $3->getBasicType() != EbtBool && - $3->getBasicType() != EbtString) - parseContext.error($3->getLoc(), "this type not allowed", $3->getType().getBasicString(), ""); - $$ = parseContext.intermediate.growAggregate($1, $3); - } - -spirv_storage_class_qualifier - : SPIRV_STORAGE_CLASS LEFT_PAREN INTCONSTANT RIGHT_PAREN { - $$.init($1.loc); - $$.qualifier.storage = EvqSpirvStorageClass; - $$.qualifier.spirvStorageClass = $3.i; - } - | SPIRV_STORAGE_CLASS LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN { - $$.init($1.loc); - parseContext.intermediate.insertSpirvRequirement($3); - $$.qualifier.storage = EvqSpirvStorageClass; - $$.qualifier.spirvStorageClass = $5.i; - } - -spirv_decorate_qualifier - : SPIRV_DECORATE LEFT_PAREN INTCONSTANT RIGHT_PAREN{ - $$.init($1.loc); - $$.qualifier.setSpirvDecorate($3.i); - } - | SPIRV_DECORATE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN{ - $$.init($1.loc); - parseContext.intermediate.insertSpirvRequirement($3); - $$.qualifier.setSpirvDecorate($5.i); - } - | SPIRV_DECORATE LEFT_PAREN INTCONSTANT COMMA spirv_decorate_parameter_list RIGHT_PAREN { - $$.init($1.loc); - $$.qualifier.setSpirvDecorate($3.i, $5->getAsAggregate()); - } - | SPIRV_DECORATE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_parameter_list RIGHT_PAREN { - $$.init($1.loc); - parseContext.intermediate.insertSpirvRequirement($3); - $$.qualifier.setSpirvDecorate($5.i, $7->getAsAggregate()); - } - | SPIRV_DECORATE_ID LEFT_PAREN INTCONSTANT COMMA spirv_decorate_id_parameter_list RIGHT_PAREN { - $$.init($1.loc); - $$.qualifier.setSpirvDecorateId($3.i, $5->getAsAggregate()); - } - | SPIRV_DECORATE_ID LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_id_parameter_list RIGHT_PAREN { - $$.init($1.loc); - parseContext.intermediate.insertSpirvRequirement($3); - $$.qualifier.setSpirvDecorateId($5.i, $7->getAsAggregate()); - } - | SPIRV_DECORATE_STRING LEFT_PAREN INTCONSTANT COMMA spirv_decorate_string_parameter_list RIGHT_PAREN { - $$.init($1.loc); - $$.qualifier.setSpirvDecorateString($3.i, $5->getAsAggregate()); - } - | SPIRV_DECORATE_STRING LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_string_parameter_list RIGHT_PAREN { - $$.init($1.loc); - parseContext.intermediate.insertSpirvRequirement($3); - $$.qualifier.setSpirvDecorateString($5.i, $7->getAsAggregate()); - } - -spirv_decorate_parameter_list - : spirv_decorate_parameter { - $$ = parseContext.intermediate.makeAggregate($1); - } - | spirv_decorate_parameter_list COMMA spirv_decorate_parameter { - $$ = parseContext.intermediate.growAggregate($1, $3); - } - -spirv_decorate_parameter - : FLOATCONSTANT { - $$ = parseContext.intermediate.addConstantUnion($1.d, EbtFloat, $1.loc, true); - } - | INTCONSTANT { - $$ = parseContext.intermediate.addConstantUnion($1.i, $1.loc, true); - } - | UINTCONSTANT { - $$ = parseContext.intermediate.addConstantUnion($1.u, $1.loc, true); - } - | BOOLCONSTANT { - $$ = parseContext.intermediate.addConstantUnion($1.b, $1.loc, true); - } - -spirv_decorate_id_parameter_list - : constant_expression { - if ($1->getBasicType() != EbtFloat && - $1->getBasicType() != EbtInt && - $1->getBasicType() != EbtUint && - $1->getBasicType() != EbtBool) - parseContext.error($1->getLoc(), "this type not allowed", $1->getType().getBasicString(), ""); - $$ = parseContext.intermediate.makeAggregate($1); - } - | spirv_decorate_id_parameter_list COMMA constant_expression { - if ($3->getBasicType() != EbtFloat && - $3->getBasicType() != EbtInt && - $3->getBasicType() != EbtUint && - $3->getBasicType() != EbtBool) - parseContext.error($3->getLoc(), "this type not allowed", $3->getType().getBasicString(), ""); - $$ = parseContext.intermediate.growAggregate($1, $3); - } - -spirv_decorate_string_parameter_list - : STRING_LITERAL { - $$ = parseContext.intermediate.makeAggregate( - parseContext.intermediate.addConstantUnion($1.string, $1.loc, true)); - } - | spirv_decorate_string_parameter_list COMMA STRING_LITERAL { - $$ = parseContext.intermediate.growAggregate($1, parseContext.intermediate.addConstantUnion($3.string, $3.loc, true)); - } - -spirv_type_specifier - : SPIRV_TYPE LEFT_PAREN spirv_instruction_qualifier_list COMMA spirv_type_parameter_list RIGHT_PAREN { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.setSpirvType(*$3, $5); - } - | SPIRV_TYPE LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list COMMA spirv_type_parameter_list RIGHT_PAREN { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - parseContext.intermediate.insertSpirvRequirement($3); - $$.setSpirvType(*$5, $7); - } - | SPIRV_TYPE LEFT_PAREN spirv_instruction_qualifier_list RIGHT_PAREN { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.setSpirvType(*$3); - } - | SPIRV_TYPE LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list RIGHT_PAREN { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - parseContext.intermediate.insertSpirvRequirement($3); - $$.setSpirvType(*$5); - } - -spirv_type_parameter_list - : spirv_type_parameter { - $$ = $1; - } - | spirv_type_parameter_list COMMA spirv_type_parameter { - $$ = parseContext.mergeSpirvTypeParameters($1, $3); - } - -spirv_type_parameter - : constant_expression { - $$ = parseContext.makeSpirvTypeParameters($1->getLoc(), $1->getAsConstantUnion()); - } - -spirv_instruction_qualifier - : SPIRV_INSTRUCTION LEFT_PAREN spirv_instruction_qualifier_list RIGHT_PAREN { - $$ = $3; - } - | SPIRV_INSTRUCTION LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list RIGHT_PAREN { - parseContext.intermediate.insertSpirvRequirement($3); - $$ = $5; - } - -spirv_instruction_qualifier_list - : spirv_instruction_qualifier_id { - $$ = $1; - } - | spirv_instruction_qualifier_list COMMA spirv_instruction_qualifier_id { - $$ = parseContext.mergeSpirvInstruction($2.loc, $1, $3); - } - -spirv_instruction_qualifier_id - : IDENTIFIER EQUAL STRING_LITERAL { - $$ = parseContext.makeSpirvInstruction($2.loc, *$1.string, *$3.string); - } - | IDENTIFIER EQUAL INTCONSTANT { - $$ = parseContext.makeSpirvInstruction($2.loc, *$1.string, $3.i); - } - - -%% diff --git a/deps/glslang/glslang/MachineIndependent/glslang_tab.cpp b/deps/glslang/glslang/MachineIndependent/glslang_tab.cpp deleted file mode 100644 index 0b216b62..00000000 --- a/deps/glslang/glslang/MachineIndependent/glslang_tab.cpp +++ /dev/null @@ -1,12434 +0,0 @@ -/* A Bison parser, made by GNU Bison 3.7.4. */ - -/* Bison implementation for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 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. */ - -/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, - especially those whose name start with YY_ or yy_. They are - private implementation details that can be changed or removed. */ - -/* 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, and Bison version. */ -#define YYBISON 30704 - -/* Bison version string. */ -#define YYBISON_VERSION "3.7.4" - -/* Skeleton name. */ -#define YYSKELETON_NAME "yacc.c" - -/* Pure parsers. */ -#define YYPURE 1 - -/* Push parsers. */ -#define YYPUSH 0 - -/* Pull parsers. */ -#define YYPULL 1 - - - - -/* First part of user prologue. */ -#line 69 "MachineIndependent/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" -#include "attribute.h" - -using namespace glslang; - - -#line 97 "MachineIndependent/glslang_tab.cpp" - -# ifndef YY_CAST -# ifdef __cplusplus -# define YY_CAST(Type, Val) static_cast (Val) -# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast (Val) -# else -# define YY_CAST(Type, Val) ((Type) (Val)) -# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) -# endif -# endif -# ifndef YY_NULLPTR -# if defined __cplusplus -# if 201103L <= __cplusplus -# define YY_NULLPTR nullptr -# else -# define YY_NULLPTR 0 -# endif -# else -# define YY_NULLPTR ((void*)0) -# endif -# endif - -#include "glslang_tab.cpp.h" -/* Symbol kind. */ -enum yysymbol_kind_t -{ - YYSYMBOL_YYEMPTY = -2, - YYSYMBOL_YYEOF = 0, /* "end of file" */ - YYSYMBOL_YYerror = 1, /* error */ - YYSYMBOL_YYUNDEF = 2, /* "invalid token" */ - YYSYMBOL_CONST = 3, /* CONST */ - YYSYMBOL_BOOL = 4, /* BOOL */ - YYSYMBOL_INT = 5, /* INT */ - YYSYMBOL_UINT = 6, /* UINT */ - YYSYMBOL_FLOAT = 7, /* FLOAT */ - YYSYMBOL_BVEC2 = 8, /* BVEC2 */ - YYSYMBOL_BVEC3 = 9, /* BVEC3 */ - YYSYMBOL_BVEC4 = 10, /* BVEC4 */ - YYSYMBOL_IVEC2 = 11, /* IVEC2 */ - YYSYMBOL_IVEC3 = 12, /* IVEC3 */ - YYSYMBOL_IVEC4 = 13, /* IVEC4 */ - YYSYMBOL_UVEC2 = 14, /* UVEC2 */ - YYSYMBOL_UVEC3 = 15, /* UVEC3 */ - YYSYMBOL_UVEC4 = 16, /* UVEC4 */ - YYSYMBOL_VEC2 = 17, /* VEC2 */ - YYSYMBOL_VEC3 = 18, /* VEC3 */ - YYSYMBOL_VEC4 = 19, /* VEC4 */ - YYSYMBOL_MAT2 = 20, /* MAT2 */ - YYSYMBOL_MAT3 = 21, /* MAT3 */ - YYSYMBOL_MAT4 = 22, /* MAT4 */ - YYSYMBOL_MAT2X2 = 23, /* MAT2X2 */ - YYSYMBOL_MAT2X3 = 24, /* MAT2X3 */ - YYSYMBOL_MAT2X4 = 25, /* MAT2X4 */ - YYSYMBOL_MAT3X2 = 26, /* MAT3X2 */ - YYSYMBOL_MAT3X3 = 27, /* MAT3X3 */ - YYSYMBOL_MAT3X4 = 28, /* MAT3X4 */ - YYSYMBOL_MAT4X2 = 29, /* MAT4X2 */ - YYSYMBOL_MAT4X3 = 30, /* MAT4X3 */ - YYSYMBOL_MAT4X4 = 31, /* MAT4X4 */ - YYSYMBOL_SAMPLER2D = 32, /* SAMPLER2D */ - YYSYMBOL_SAMPLER3D = 33, /* SAMPLER3D */ - YYSYMBOL_SAMPLERCUBE = 34, /* SAMPLERCUBE */ - YYSYMBOL_SAMPLER2DSHADOW = 35, /* SAMPLER2DSHADOW */ - YYSYMBOL_SAMPLERCUBESHADOW = 36, /* SAMPLERCUBESHADOW */ - YYSYMBOL_SAMPLER2DARRAY = 37, /* SAMPLER2DARRAY */ - YYSYMBOL_SAMPLER2DARRAYSHADOW = 38, /* SAMPLER2DARRAYSHADOW */ - YYSYMBOL_ISAMPLER2D = 39, /* ISAMPLER2D */ - YYSYMBOL_ISAMPLER3D = 40, /* ISAMPLER3D */ - YYSYMBOL_ISAMPLERCUBE = 41, /* ISAMPLERCUBE */ - YYSYMBOL_ISAMPLER2DARRAY = 42, /* ISAMPLER2DARRAY */ - YYSYMBOL_USAMPLER2D = 43, /* USAMPLER2D */ - YYSYMBOL_USAMPLER3D = 44, /* USAMPLER3D */ - YYSYMBOL_USAMPLERCUBE = 45, /* USAMPLERCUBE */ - YYSYMBOL_USAMPLER2DARRAY = 46, /* USAMPLER2DARRAY */ - YYSYMBOL_SAMPLER = 47, /* SAMPLER */ - YYSYMBOL_SAMPLERSHADOW = 48, /* SAMPLERSHADOW */ - YYSYMBOL_TEXTURE2D = 49, /* TEXTURE2D */ - YYSYMBOL_TEXTURE3D = 50, /* TEXTURE3D */ - YYSYMBOL_TEXTURECUBE = 51, /* TEXTURECUBE */ - YYSYMBOL_TEXTURE2DARRAY = 52, /* TEXTURE2DARRAY */ - YYSYMBOL_ITEXTURE2D = 53, /* ITEXTURE2D */ - YYSYMBOL_ITEXTURE3D = 54, /* ITEXTURE3D */ - YYSYMBOL_ITEXTURECUBE = 55, /* ITEXTURECUBE */ - YYSYMBOL_ITEXTURE2DARRAY = 56, /* ITEXTURE2DARRAY */ - YYSYMBOL_UTEXTURE2D = 57, /* UTEXTURE2D */ - YYSYMBOL_UTEXTURE3D = 58, /* UTEXTURE3D */ - YYSYMBOL_UTEXTURECUBE = 59, /* UTEXTURECUBE */ - YYSYMBOL_UTEXTURE2DARRAY = 60, /* UTEXTURE2DARRAY */ - YYSYMBOL_ATTRIBUTE = 61, /* ATTRIBUTE */ - YYSYMBOL_VARYING = 62, /* VARYING */ - YYSYMBOL_FLOAT16_T = 63, /* FLOAT16_T */ - YYSYMBOL_FLOAT32_T = 64, /* FLOAT32_T */ - YYSYMBOL_DOUBLE = 65, /* DOUBLE */ - YYSYMBOL_FLOAT64_T = 66, /* FLOAT64_T */ - YYSYMBOL_INT64_T = 67, /* INT64_T */ - YYSYMBOL_UINT64_T = 68, /* UINT64_T */ - YYSYMBOL_INT32_T = 69, /* INT32_T */ - YYSYMBOL_UINT32_T = 70, /* UINT32_T */ - YYSYMBOL_INT16_T = 71, /* INT16_T */ - YYSYMBOL_UINT16_T = 72, /* UINT16_T */ - YYSYMBOL_INT8_T = 73, /* INT8_T */ - YYSYMBOL_UINT8_T = 74, /* UINT8_T */ - YYSYMBOL_I64VEC2 = 75, /* I64VEC2 */ - YYSYMBOL_I64VEC3 = 76, /* I64VEC3 */ - YYSYMBOL_I64VEC4 = 77, /* I64VEC4 */ - YYSYMBOL_U64VEC2 = 78, /* U64VEC2 */ - YYSYMBOL_U64VEC3 = 79, /* U64VEC3 */ - YYSYMBOL_U64VEC4 = 80, /* U64VEC4 */ - YYSYMBOL_I32VEC2 = 81, /* I32VEC2 */ - YYSYMBOL_I32VEC3 = 82, /* I32VEC3 */ - YYSYMBOL_I32VEC4 = 83, /* I32VEC4 */ - YYSYMBOL_U32VEC2 = 84, /* U32VEC2 */ - YYSYMBOL_U32VEC3 = 85, /* U32VEC3 */ - YYSYMBOL_U32VEC4 = 86, /* U32VEC4 */ - YYSYMBOL_I16VEC2 = 87, /* I16VEC2 */ - YYSYMBOL_I16VEC3 = 88, /* I16VEC3 */ - YYSYMBOL_I16VEC4 = 89, /* I16VEC4 */ - YYSYMBOL_U16VEC2 = 90, /* U16VEC2 */ - YYSYMBOL_U16VEC3 = 91, /* U16VEC3 */ - YYSYMBOL_U16VEC4 = 92, /* U16VEC4 */ - YYSYMBOL_I8VEC2 = 93, /* I8VEC2 */ - YYSYMBOL_I8VEC3 = 94, /* I8VEC3 */ - YYSYMBOL_I8VEC4 = 95, /* I8VEC4 */ - YYSYMBOL_U8VEC2 = 96, /* U8VEC2 */ - YYSYMBOL_U8VEC3 = 97, /* U8VEC3 */ - YYSYMBOL_U8VEC4 = 98, /* U8VEC4 */ - YYSYMBOL_DVEC2 = 99, /* DVEC2 */ - YYSYMBOL_DVEC3 = 100, /* DVEC3 */ - YYSYMBOL_DVEC4 = 101, /* DVEC4 */ - YYSYMBOL_DMAT2 = 102, /* DMAT2 */ - YYSYMBOL_DMAT3 = 103, /* DMAT3 */ - YYSYMBOL_DMAT4 = 104, /* DMAT4 */ - YYSYMBOL_F16VEC2 = 105, /* F16VEC2 */ - YYSYMBOL_F16VEC3 = 106, /* F16VEC3 */ - YYSYMBOL_F16VEC4 = 107, /* F16VEC4 */ - YYSYMBOL_F16MAT2 = 108, /* F16MAT2 */ - YYSYMBOL_F16MAT3 = 109, /* F16MAT3 */ - YYSYMBOL_F16MAT4 = 110, /* F16MAT4 */ - YYSYMBOL_F32VEC2 = 111, /* F32VEC2 */ - YYSYMBOL_F32VEC3 = 112, /* F32VEC3 */ - YYSYMBOL_F32VEC4 = 113, /* F32VEC4 */ - YYSYMBOL_F32MAT2 = 114, /* F32MAT2 */ - YYSYMBOL_F32MAT3 = 115, /* F32MAT3 */ - YYSYMBOL_F32MAT4 = 116, /* F32MAT4 */ - YYSYMBOL_F64VEC2 = 117, /* F64VEC2 */ - YYSYMBOL_F64VEC3 = 118, /* F64VEC3 */ - YYSYMBOL_F64VEC4 = 119, /* F64VEC4 */ - YYSYMBOL_F64MAT2 = 120, /* F64MAT2 */ - YYSYMBOL_F64MAT3 = 121, /* F64MAT3 */ - YYSYMBOL_F64MAT4 = 122, /* F64MAT4 */ - YYSYMBOL_DMAT2X2 = 123, /* DMAT2X2 */ - YYSYMBOL_DMAT2X3 = 124, /* DMAT2X3 */ - YYSYMBOL_DMAT2X4 = 125, /* DMAT2X4 */ - YYSYMBOL_DMAT3X2 = 126, /* DMAT3X2 */ - YYSYMBOL_DMAT3X3 = 127, /* DMAT3X3 */ - YYSYMBOL_DMAT3X4 = 128, /* DMAT3X4 */ - YYSYMBOL_DMAT4X2 = 129, /* DMAT4X2 */ - YYSYMBOL_DMAT4X3 = 130, /* DMAT4X3 */ - YYSYMBOL_DMAT4X4 = 131, /* DMAT4X4 */ - YYSYMBOL_F16MAT2X2 = 132, /* F16MAT2X2 */ - YYSYMBOL_F16MAT2X3 = 133, /* F16MAT2X3 */ - YYSYMBOL_F16MAT2X4 = 134, /* F16MAT2X4 */ - YYSYMBOL_F16MAT3X2 = 135, /* F16MAT3X2 */ - YYSYMBOL_F16MAT3X3 = 136, /* F16MAT3X3 */ - YYSYMBOL_F16MAT3X4 = 137, /* F16MAT3X4 */ - YYSYMBOL_F16MAT4X2 = 138, /* F16MAT4X2 */ - YYSYMBOL_F16MAT4X3 = 139, /* F16MAT4X3 */ - YYSYMBOL_F16MAT4X4 = 140, /* F16MAT4X4 */ - YYSYMBOL_F32MAT2X2 = 141, /* F32MAT2X2 */ - YYSYMBOL_F32MAT2X3 = 142, /* F32MAT2X3 */ - YYSYMBOL_F32MAT2X4 = 143, /* F32MAT2X4 */ - YYSYMBOL_F32MAT3X2 = 144, /* F32MAT3X2 */ - YYSYMBOL_F32MAT3X3 = 145, /* F32MAT3X3 */ - YYSYMBOL_F32MAT3X4 = 146, /* F32MAT3X4 */ - YYSYMBOL_F32MAT4X2 = 147, /* F32MAT4X2 */ - YYSYMBOL_F32MAT4X3 = 148, /* F32MAT4X3 */ - YYSYMBOL_F32MAT4X4 = 149, /* F32MAT4X4 */ - YYSYMBOL_F64MAT2X2 = 150, /* F64MAT2X2 */ - YYSYMBOL_F64MAT2X3 = 151, /* F64MAT2X3 */ - YYSYMBOL_F64MAT2X4 = 152, /* F64MAT2X4 */ - YYSYMBOL_F64MAT3X2 = 153, /* F64MAT3X2 */ - YYSYMBOL_F64MAT3X3 = 154, /* F64MAT3X3 */ - YYSYMBOL_F64MAT3X4 = 155, /* F64MAT3X4 */ - YYSYMBOL_F64MAT4X2 = 156, /* F64MAT4X2 */ - YYSYMBOL_F64MAT4X3 = 157, /* F64MAT4X3 */ - YYSYMBOL_F64MAT4X4 = 158, /* F64MAT4X4 */ - YYSYMBOL_ATOMIC_UINT = 159, /* ATOMIC_UINT */ - YYSYMBOL_ACCSTRUCTNV = 160, /* ACCSTRUCTNV */ - YYSYMBOL_ACCSTRUCTEXT = 161, /* ACCSTRUCTEXT */ - YYSYMBOL_RAYQUERYEXT = 162, /* RAYQUERYEXT */ - YYSYMBOL_FCOOPMATNV = 163, /* FCOOPMATNV */ - YYSYMBOL_ICOOPMATNV = 164, /* ICOOPMATNV */ - YYSYMBOL_UCOOPMATNV = 165, /* UCOOPMATNV */ - YYSYMBOL_SAMPLERCUBEARRAY = 166, /* SAMPLERCUBEARRAY */ - YYSYMBOL_SAMPLERCUBEARRAYSHADOW = 167, /* SAMPLERCUBEARRAYSHADOW */ - YYSYMBOL_ISAMPLERCUBEARRAY = 168, /* ISAMPLERCUBEARRAY */ - YYSYMBOL_USAMPLERCUBEARRAY = 169, /* USAMPLERCUBEARRAY */ - YYSYMBOL_SAMPLER1D = 170, /* SAMPLER1D */ - YYSYMBOL_SAMPLER1DARRAY = 171, /* SAMPLER1DARRAY */ - YYSYMBOL_SAMPLER1DARRAYSHADOW = 172, /* SAMPLER1DARRAYSHADOW */ - YYSYMBOL_ISAMPLER1D = 173, /* ISAMPLER1D */ - YYSYMBOL_SAMPLER1DSHADOW = 174, /* SAMPLER1DSHADOW */ - YYSYMBOL_SAMPLER2DRECT = 175, /* SAMPLER2DRECT */ - YYSYMBOL_SAMPLER2DRECTSHADOW = 176, /* SAMPLER2DRECTSHADOW */ - YYSYMBOL_ISAMPLER2DRECT = 177, /* ISAMPLER2DRECT */ - YYSYMBOL_USAMPLER2DRECT = 178, /* USAMPLER2DRECT */ - YYSYMBOL_SAMPLERBUFFER = 179, /* SAMPLERBUFFER */ - YYSYMBOL_ISAMPLERBUFFER = 180, /* ISAMPLERBUFFER */ - YYSYMBOL_USAMPLERBUFFER = 181, /* USAMPLERBUFFER */ - YYSYMBOL_SAMPLER2DMS = 182, /* SAMPLER2DMS */ - YYSYMBOL_ISAMPLER2DMS = 183, /* ISAMPLER2DMS */ - YYSYMBOL_USAMPLER2DMS = 184, /* USAMPLER2DMS */ - YYSYMBOL_SAMPLER2DMSARRAY = 185, /* SAMPLER2DMSARRAY */ - YYSYMBOL_ISAMPLER2DMSARRAY = 186, /* ISAMPLER2DMSARRAY */ - YYSYMBOL_USAMPLER2DMSARRAY = 187, /* USAMPLER2DMSARRAY */ - YYSYMBOL_SAMPLEREXTERNALOES = 188, /* SAMPLEREXTERNALOES */ - YYSYMBOL_SAMPLEREXTERNAL2DY2YEXT = 189, /* SAMPLEREXTERNAL2DY2YEXT */ - YYSYMBOL_ISAMPLER1DARRAY = 190, /* ISAMPLER1DARRAY */ - YYSYMBOL_USAMPLER1D = 191, /* USAMPLER1D */ - YYSYMBOL_USAMPLER1DARRAY = 192, /* USAMPLER1DARRAY */ - YYSYMBOL_F16SAMPLER1D = 193, /* F16SAMPLER1D */ - YYSYMBOL_F16SAMPLER2D = 194, /* F16SAMPLER2D */ - YYSYMBOL_F16SAMPLER3D = 195, /* F16SAMPLER3D */ - YYSYMBOL_F16SAMPLER2DRECT = 196, /* F16SAMPLER2DRECT */ - YYSYMBOL_F16SAMPLERCUBE = 197, /* F16SAMPLERCUBE */ - YYSYMBOL_F16SAMPLER1DARRAY = 198, /* F16SAMPLER1DARRAY */ - YYSYMBOL_F16SAMPLER2DARRAY = 199, /* F16SAMPLER2DARRAY */ - YYSYMBOL_F16SAMPLERCUBEARRAY = 200, /* F16SAMPLERCUBEARRAY */ - YYSYMBOL_F16SAMPLERBUFFER = 201, /* F16SAMPLERBUFFER */ - YYSYMBOL_F16SAMPLER2DMS = 202, /* F16SAMPLER2DMS */ - YYSYMBOL_F16SAMPLER2DMSARRAY = 203, /* F16SAMPLER2DMSARRAY */ - YYSYMBOL_F16SAMPLER1DSHADOW = 204, /* F16SAMPLER1DSHADOW */ - YYSYMBOL_F16SAMPLER2DSHADOW = 205, /* F16SAMPLER2DSHADOW */ - YYSYMBOL_F16SAMPLER1DARRAYSHADOW = 206, /* F16SAMPLER1DARRAYSHADOW */ - YYSYMBOL_F16SAMPLER2DARRAYSHADOW = 207, /* F16SAMPLER2DARRAYSHADOW */ - YYSYMBOL_F16SAMPLER2DRECTSHADOW = 208, /* F16SAMPLER2DRECTSHADOW */ - YYSYMBOL_F16SAMPLERCUBESHADOW = 209, /* F16SAMPLERCUBESHADOW */ - YYSYMBOL_F16SAMPLERCUBEARRAYSHADOW = 210, /* F16SAMPLERCUBEARRAYSHADOW */ - YYSYMBOL_IMAGE1D = 211, /* IMAGE1D */ - YYSYMBOL_IIMAGE1D = 212, /* IIMAGE1D */ - YYSYMBOL_UIMAGE1D = 213, /* UIMAGE1D */ - YYSYMBOL_IMAGE2D = 214, /* IMAGE2D */ - YYSYMBOL_IIMAGE2D = 215, /* IIMAGE2D */ - YYSYMBOL_UIMAGE2D = 216, /* UIMAGE2D */ - YYSYMBOL_IMAGE3D = 217, /* IMAGE3D */ - YYSYMBOL_IIMAGE3D = 218, /* IIMAGE3D */ - YYSYMBOL_UIMAGE3D = 219, /* UIMAGE3D */ - YYSYMBOL_IMAGE2DRECT = 220, /* IMAGE2DRECT */ - YYSYMBOL_IIMAGE2DRECT = 221, /* IIMAGE2DRECT */ - YYSYMBOL_UIMAGE2DRECT = 222, /* UIMAGE2DRECT */ - YYSYMBOL_IMAGECUBE = 223, /* IMAGECUBE */ - YYSYMBOL_IIMAGECUBE = 224, /* IIMAGECUBE */ - YYSYMBOL_UIMAGECUBE = 225, /* UIMAGECUBE */ - YYSYMBOL_IMAGEBUFFER = 226, /* IMAGEBUFFER */ - YYSYMBOL_IIMAGEBUFFER = 227, /* IIMAGEBUFFER */ - YYSYMBOL_UIMAGEBUFFER = 228, /* UIMAGEBUFFER */ - YYSYMBOL_IMAGE1DARRAY = 229, /* IMAGE1DARRAY */ - YYSYMBOL_IIMAGE1DARRAY = 230, /* IIMAGE1DARRAY */ - YYSYMBOL_UIMAGE1DARRAY = 231, /* UIMAGE1DARRAY */ - YYSYMBOL_IMAGE2DARRAY = 232, /* IMAGE2DARRAY */ - YYSYMBOL_IIMAGE2DARRAY = 233, /* IIMAGE2DARRAY */ - YYSYMBOL_UIMAGE2DARRAY = 234, /* UIMAGE2DARRAY */ - YYSYMBOL_IMAGECUBEARRAY = 235, /* IMAGECUBEARRAY */ - YYSYMBOL_IIMAGECUBEARRAY = 236, /* IIMAGECUBEARRAY */ - YYSYMBOL_UIMAGECUBEARRAY = 237, /* UIMAGECUBEARRAY */ - YYSYMBOL_IMAGE2DMS = 238, /* IMAGE2DMS */ - YYSYMBOL_IIMAGE2DMS = 239, /* IIMAGE2DMS */ - YYSYMBOL_UIMAGE2DMS = 240, /* UIMAGE2DMS */ - YYSYMBOL_IMAGE2DMSARRAY = 241, /* IMAGE2DMSARRAY */ - YYSYMBOL_IIMAGE2DMSARRAY = 242, /* IIMAGE2DMSARRAY */ - YYSYMBOL_UIMAGE2DMSARRAY = 243, /* UIMAGE2DMSARRAY */ - YYSYMBOL_F16IMAGE1D = 244, /* F16IMAGE1D */ - YYSYMBOL_F16IMAGE2D = 245, /* F16IMAGE2D */ - YYSYMBOL_F16IMAGE3D = 246, /* F16IMAGE3D */ - YYSYMBOL_F16IMAGE2DRECT = 247, /* F16IMAGE2DRECT */ - YYSYMBOL_F16IMAGECUBE = 248, /* F16IMAGECUBE */ - YYSYMBOL_F16IMAGE1DARRAY = 249, /* F16IMAGE1DARRAY */ - YYSYMBOL_F16IMAGE2DARRAY = 250, /* F16IMAGE2DARRAY */ - YYSYMBOL_F16IMAGECUBEARRAY = 251, /* F16IMAGECUBEARRAY */ - YYSYMBOL_F16IMAGEBUFFER = 252, /* F16IMAGEBUFFER */ - YYSYMBOL_F16IMAGE2DMS = 253, /* F16IMAGE2DMS */ - YYSYMBOL_F16IMAGE2DMSARRAY = 254, /* F16IMAGE2DMSARRAY */ - YYSYMBOL_I64IMAGE1D = 255, /* I64IMAGE1D */ - YYSYMBOL_U64IMAGE1D = 256, /* U64IMAGE1D */ - YYSYMBOL_I64IMAGE2D = 257, /* I64IMAGE2D */ - YYSYMBOL_U64IMAGE2D = 258, /* U64IMAGE2D */ - YYSYMBOL_I64IMAGE3D = 259, /* I64IMAGE3D */ - YYSYMBOL_U64IMAGE3D = 260, /* U64IMAGE3D */ - YYSYMBOL_I64IMAGE2DRECT = 261, /* I64IMAGE2DRECT */ - YYSYMBOL_U64IMAGE2DRECT = 262, /* U64IMAGE2DRECT */ - YYSYMBOL_I64IMAGECUBE = 263, /* I64IMAGECUBE */ - YYSYMBOL_U64IMAGECUBE = 264, /* U64IMAGECUBE */ - YYSYMBOL_I64IMAGEBUFFER = 265, /* I64IMAGEBUFFER */ - YYSYMBOL_U64IMAGEBUFFER = 266, /* U64IMAGEBUFFER */ - YYSYMBOL_I64IMAGE1DARRAY = 267, /* I64IMAGE1DARRAY */ - YYSYMBOL_U64IMAGE1DARRAY = 268, /* U64IMAGE1DARRAY */ - YYSYMBOL_I64IMAGE2DARRAY = 269, /* I64IMAGE2DARRAY */ - YYSYMBOL_U64IMAGE2DARRAY = 270, /* U64IMAGE2DARRAY */ - YYSYMBOL_I64IMAGECUBEARRAY = 271, /* I64IMAGECUBEARRAY */ - YYSYMBOL_U64IMAGECUBEARRAY = 272, /* U64IMAGECUBEARRAY */ - YYSYMBOL_I64IMAGE2DMS = 273, /* I64IMAGE2DMS */ - YYSYMBOL_U64IMAGE2DMS = 274, /* U64IMAGE2DMS */ - YYSYMBOL_I64IMAGE2DMSARRAY = 275, /* I64IMAGE2DMSARRAY */ - YYSYMBOL_U64IMAGE2DMSARRAY = 276, /* U64IMAGE2DMSARRAY */ - YYSYMBOL_TEXTURECUBEARRAY = 277, /* TEXTURECUBEARRAY */ - YYSYMBOL_ITEXTURECUBEARRAY = 278, /* ITEXTURECUBEARRAY */ - YYSYMBOL_UTEXTURECUBEARRAY = 279, /* UTEXTURECUBEARRAY */ - YYSYMBOL_TEXTURE1D = 280, /* TEXTURE1D */ - YYSYMBOL_ITEXTURE1D = 281, /* ITEXTURE1D */ - YYSYMBOL_UTEXTURE1D = 282, /* UTEXTURE1D */ - YYSYMBOL_TEXTURE1DARRAY = 283, /* TEXTURE1DARRAY */ - YYSYMBOL_ITEXTURE1DARRAY = 284, /* ITEXTURE1DARRAY */ - YYSYMBOL_UTEXTURE1DARRAY = 285, /* UTEXTURE1DARRAY */ - YYSYMBOL_TEXTURE2DRECT = 286, /* TEXTURE2DRECT */ - YYSYMBOL_ITEXTURE2DRECT = 287, /* ITEXTURE2DRECT */ - YYSYMBOL_UTEXTURE2DRECT = 288, /* UTEXTURE2DRECT */ - YYSYMBOL_TEXTUREBUFFER = 289, /* TEXTUREBUFFER */ - YYSYMBOL_ITEXTUREBUFFER = 290, /* ITEXTUREBUFFER */ - YYSYMBOL_UTEXTUREBUFFER = 291, /* UTEXTUREBUFFER */ - YYSYMBOL_TEXTURE2DMS = 292, /* TEXTURE2DMS */ - YYSYMBOL_ITEXTURE2DMS = 293, /* ITEXTURE2DMS */ - YYSYMBOL_UTEXTURE2DMS = 294, /* UTEXTURE2DMS */ - YYSYMBOL_TEXTURE2DMSARRAY = 295, /* TEXTURE2DMSARRAY */ - YYSYMBOL_ITEXTURE2DMSARRAY = 296, /* ITEXTURE2DMSARRAY */ - YYSYMBOL_UTEXTURE2DMSARRAY = 297, /* UTEXTURE2DMSARRAY */ - YYSYMBOL_F16TEXTURE1D = 298, /* F16TEXTURE1D */ - YYSYMBOL_F16TEXTURE2D = 299, /* F16TEXTURE2D */ - YYSYMBOL_F16TEXTURE3D = 300, /* F16TEXTURE3D */ - YYSYMBOL_F16TEXTURE2DRECT = 301, /* F16TEXTURE2DRECT */ - YYSYMBOL_F16TEXTURECUBE = 302, /* F16TEXTURECUBE */ - YYSYMBOL_F16TEXTURE1DARRAY = 303, /* F16TEXTURE1DARRAY */ - YYSYMBOL_F16TEXTURE2DARRAY = 304, /* F16TEXTURE2DARRAY */ - YYSYMBOL_F16TEXTURECUBEARRAY = 305, /* F16TEXTURECUBEARRAY */ - YYSYMBOL_F16TEXTUREBUFFER = 306, /* F16TEXTUREBUFFER */ - YYSYMBOL_F16TEXTURE2DMS = 307, /* F16TEXTURE2DMS */ - YYSYMBOL_F16TEXTURE2DMSARRAY = 308, /* F16TEXTURE2DMSARRAY */ - YYSYMBOL_SUBPASSINPUT = 309, /* SUBPASSINPUT */ - YYSYMBOL_SUBPASSINPUTMS = 310, /* SUBPASSINPUTMS */ - YYSYMBOL_ISUBPASSINPUT = 311, /* ISUBPASSINPUT */ - YYSYMBOL_ISUBPASSINPUTMS = 312, /* ISUBPASSINPUTMS */ - YYSYMBOL_USUBPASSINPUT = 313, /* USUBPASSINPUT */ - YYSYMBOL_USUBPASSINPUTMS = 314, /* USUBPASSINPUTMS */ - YYSYMBOL_F16SUBPASSINPUT = 315, /* F16SUBPASSINPUT */ - YYSYMBOL_F16SUBPASSINPUTMS = 316, /* F16SUBPASSINPUTMS */ - YYSYMBOL_SPIRV_INSTRUCTION = 317, /* SPIRV_INSTRUCTION */ - YYSYMBOL_SPIRV_EXECUTION_MODE = 318, /* SPIRV_EXECUTION_MODE */ - YYSYMBOL_SPIRV_EXECUTION_MODE_ID = 319, /* SPIRV_EXECUTION_MODE_ID */ - YYSYMBOL_SPIRV_DECORATE = 320, /* SPIRV_DECORATE */ - YYSYMBOL_SPIRV_DECORATE_ID = 321, /* SPIRV_DECORATE_ID */ - YYSYMBOL_SPIRV_DECORATE_STRING = 322, /* SPIRV_DECORATE_STRING */ - YYSYMBOL_SPIRV_TYPE = 323, /* SPIRV_TYPE */ - YYSYMBOL_SPIRV_STORAGE_CLASS = 324, /* SPIRV_STORAGE_CLASS */ - YYSYMBOL_SPIRV_BY_REFERENCE = 325, /* SPIRV_BY_REFERENCE */ - YYSYMBOL_SPIRV_LITERAL = 326, /* SPIRV_LITERAL */ - YYSYMBOL_LEFT_OP = 327, /* LEFT_OP */ - YYSYMBOL_RIGHT_OP = 328, /* RIGHT_OP */ - YYSYMBOL_INC_OP = 329, /* INC_OP */ - YYSYMBOL_DEC_OP = 330, /* DEC_OP */ - YYSYMBOL_LE_OP = 331, /* LE_OP */ - YYSYMBOL_GE_OP = 332, /* GE_OP */ - YYSYMBOL_EQ_OP = 333, /* EQ_OP */ - YYSYMBOL_NE_OP = 334, /* NE_OP */ - YYSYMBOL_AND_OP = 335, /* AND_OP */ - YYSYMBOL_OR_OP = 336, /* OR_OP */ - YYSYMBOL_XOR_OP = 337, /* XOR_OP */ - YYSYMBOL_MUL_ASSIGN = 338, /* MUL_ASSIGN */ - YYSYMBOL_DIV_ASSIGN = 339, /* DIV_ASSIGN */ - YYSYMBOL_ADD_ASSIGN = 340, /* ADD_ASSIGN */ - YYSYMBOL_MOD_ASSIGN = 341, /* MOD_ASSIGN */ - YYSYMBOL_LEFT_ASSIGN = 342, /* LEFT_ASSIGN */ - YYSYMBOL_RIGHT_ASSIGN = 343, /* RIGHT_ASSIGN */ - YYSYMBOL_AND_ASSIGN = 344, /* AND_ASSIGN */ - YYSYMBOL_XOR_ASSIGN = 345, /* XOR_ASSIGN */ - YYSYMBOL_OR_ASSIGN = 346, /* OR_ASSIGN */ - YYSYMBOL_SUB_ASSIGN = 347, /* SUB_ASSIGN */ - YYSYMBOL_STRING_LITERAL = 348, /* STRING_LITERAL */ - YYSYMBOL_LEFT_PAREN = 349, /* LEFT_PAREN */ - YYSYMBOL_RIGHT_PAREN = 350, /* RIGHT_PAREN */ - YYSYMBOL_LEFT_BRACKET = 351, /* LEFT_BRACKET */ - YYSYMBOL_RIGHT_BRACKET = 352, /* RIGHT_BRACKET */ - YYSYMBOL_LEFT_BRACE = 353, /* LEFT_BRACE */ - YYSYMBOL_RIGHT_BRACE = 354, /* RIGHT_BRACE */ - YYSYMBOL_DOT = 355, /* DOT */ - YYSYMBOL_COMMA = 356, /* COMMA */ - YYSYMBOL_COLON = 357, /* COLON */ - YYSYMBOL_EQUAL = 358, /* EQUAL */ - YYSYMBOL_SEMICOLON = 359, /* SEMICOLON */ - YYSYMBOL_BANG = 360, /* BANG */ - YYSYMBOL_DASH = 361, /* DASH */ - YYSYMBOL_TILDE = 362, /* TILDE */ - YYSYMBOL_PLUS = 363, /* PLUS */ - YYSYMBOL_STAR = 364, /* STAR */ - YYSYMBOL_SLASH = 365, /* SLASH */ - YYSYMBOL_PERCENT = 366, /* PERCENT */ - YYSYMBOL_LEFT_ANGLE = 367, /* LEFT_ANGLE */ - YYSYMBOL_RIGHT_ANGLE = 368, /* RIGHT_ANGLE */ - YYSYMBOL_VERTICAL_BAR = 369, /* VERTICAL_BAR */ - YYSYMBOL_CARET = 370, /* CARET */ - YYSYMBOL_AMPERSAND = 371, /* AMPERSAND */ - YYSYMBOL_QUESTION = 372, /* QUESTION */ - YYSYMBOL_INVARIANT = 373, /* INVARIANT */ - YYSYMBOL_HIGH_PRECISION = 374, /* HIGH_PRECISION */ - YYSYMBOL_MEDIUM_PRECISION = 375, /* MEDIUM_PRECISION */ - YYSYMBOL_LOW_PRECISION = 376, /* LOW_PRECISION */ - YYSYMBOL_PRECISION = 377, /* PRECISION */ - YYSYMBOL_PACKED = 378, /* PACKED */ - YYSYMBOL_RESOURCE = 379, /* RESOURCE */ - YYSYMBOL_SUPERP = 380, /* SUPERP */ - YYSYMBOL_FLOATCONSTANT = 381, /* FLOATCONSTANT */ - YYSYMBOL_INTCONSTANT = 382, /* INTCONSTANT */ - YYSYMBOL_UINTCONSTANT = 383, /* UINTCONSTANT */ - YYSYMBOL_BOOLCONSTANT = 384, /* BOOLCONSTANT */ - YYSYMBOL_IDENTIFIER = 385, /* IDENTIFIER */ - YYSYMBOL_TYPE_NAME = 386, /* TYPE_NAME */ - YYSYMBOL_CENTROID = 387, /* CENTROID */ - YYSYMBOL_IN = 388, /* IN */ - YYSYMBOL_OUT = 389, /* OUT */ - YYSYMBOL_INOUT = 390, /* INOUT */ - YYSYMBOL_STRUCT = 391, /* STRUCT */ - YYSYMBOL_VOID = 392, /* VOID */ - YYSYMBOL_WHILE = 393, /* WHILE */ - YYSYMBOL_BREAK = 394, /* BREAK */ - YYSYMBOL_CONTINUE = 395, /* CONTINUE */ - YYSYMBOL_DO = 396, /* DO */ - YYSYMBOL_ELSE = 397, /* ELSE */ - YYSYMBOL_FOR = 398, /* FOR */ - YYSYMBOL_IF = 399, /* IF */ - YYSYMBOL_DISCARD = 400, /* DISCARD */ - YYSYMBOL_RETURN = 401, /* RETURN */ - YYSYMBOL_SWITCH = 402, /* SWITCH */ - YYSYMBOL_CASE = 403, /* CASE */ - YYSYMBOL_DEFAULT = 404, /* DEFAULT */ - YYSYMBOL_TERMINATE_INVOCATION = 405, /* TERMINATE_INVOCATION */ - YYSYMBOL_TERMINATE_RAY = 406, /* TERMINATE_RAY */ - YYSYMBOL_IGNORE_INTERSECTION = 407, /* IGNORE_INTERSECTION */ - YYSYMBOL_UNIFORM = 408, /* UNIFORM */ - YYSYMBOL_SHARED = 409, /* SHARED */ - YYSYMBOL_BUFFER = 410, /* BUFFER */ - YYSYMBOL_FLAT = 411, /* FLAT */ - YYSYMBOL_SMOOTH = 412, /* SMOOTH */ - YYSYMBOL_LAYOUT = 413, /* LAYOUT */ - YYSYMBOL_DOUBLECONSTANT = 414, /* DOUBLECONSTANT */ - YYSYMBOL_INT16CONSTANT = 415, /* INT16CONSTANT */ - YYSYMBOL_UINT16CONSTANT = 416, /* UINT16CONSTANT */ - YYSYMBOL_FLOAT16CONSTANT = 417, /* FLOAT16CONSTANT */ - YYSYMBOL_INT32CONSTANT = 418, /* INT32CONSTANT */ - YYSYMBOL_UINT32CONSTANT = 419, /* UINT32CONSTANT */ - YYSYMBOL_INT64CONSTANT = 420, /* INT64CONSTANT */ - YYSYMBOL_UINT64CONSTANT = 421, /* UINT64CONSTANT */ - YYSYMBOL_SUBROUTINE = 422, /* SUBROUTINE */ - YYSYMBOL_DEMOTE = 423, /* DEMOTE */ - YYSYMBOL_PAYLOADNV = 424, /* PAYLOADNV */ - YYSYMBOL_PAYLOADINNV = 425, /* PAYLOADINNV */ - YYSYMBOL_HITATTRNV = 426, /* HITATTRNV */ - YYSYMBOL_CALLDATANV = 427, /* CALLDATANV */ - YYSYMBOL_CALLDATAINNV = 428, /* CALLDATAINNV */ - YYSYMBOL_PAYLOADEXT = 429, /* PAYLOADEXT */ - YYSYMBOL_PAYLOADINEXT = 430, /* PAYLOADINEXT */ - YYSYMBOL_HITATTREXT = 431, /* HITATTREXT */ - YYSYMBOL_CALLDATAEXT = 432, /* CALLDATAEXT */ - YYSYMBOL_CALLDATAINEXT = 433, /* CALLDATAINEXT */ - YYSYMBOL_PATCH = 434, /* PATCH */ - YYSYMBOL_SAMPLE = 435, /* SAMPLE */ - YYSYMBOL_NONUNIFORM = 436, /* NONUNIFORM */ - YYSYMBOL_COHERENT = 437, /* COHERENT */ - YYSYMBOL_VOLATILE = 438, /* VOLATILE */ - YYSYMBOL_RESTRICT = 439, /* RESTRICT */ - YYSYMBOL_READONLY = 440, /* READONLY */ - YYSYMBOL_WRITEONLY = 441, /* WRITEONLY */ - YYSYMBOL_DEVICECOHERENT = 442, /* DEVICECOHERENT */ - YYSYMBOL_QUEUEFAMILYCOHERENT = 443, /* QUEUEFAMILYCOHERENT */ - YYSYMBOL_WORKGROUPCOHERENT = 444, /* WORKGROUPCOHERENT */ - YYSYMBOL_SUBGROUPCOHERENT = 445, /* SUBGROUPCOHERENT */ - YYSYMBOL_NONPRIVATE = 446, /* NONPRIVATE */ - YYSYMBOL_SHADERCALLCOHERENT = 447, /* SHADERCALLCOHERENT */ - YYSYMBOL_NOPERSPECTIVE = 448, /* NOPERSPECTIVE */ - YYSYMBOL_EXPLICITINTERPAMD = 449, /* EXPLICITINTERPAMD */ - YYSYMBOL_PERVERTEXNV = 450, /* PERVERTEXNV */ - YYSYMBOL_PERPRIMITIVENV = 451, /* PERPRIMITIVENV */ - YYSYMBOL_PERVIEWNV = 452, /* PERVIEWNV */ - YYSYMBOL_PERTASKNV = 453, /* PERTASKNV */ - YYSYMBOL_PRECISE = 454, /* PRECISE */ - YYSYMBOL_YYACCEPT = 455, /* $accept */ - YYSYMBOL_variable_identifier = 456, /* variable_identifier */ - YYSYMBOL_primary_expression = 457, /* primary_expression */ - YYSYMBOL_postfix_expression = 458, /* postfix_expression */ - YYSYMBOL_integer_expression = 459, /* integer_expression */ - YYSYMBOL_function_call = 460, /* function_call */ - YYSYMBOL_function_call_or_method = 461, /* function_call_or_method */ - YYSYMBOL_function_call_generic = 462, /* function_call_generic */ - YYSYMBOL_function_call_header_no_parameters = 463, /* function_call_header_no_parameters */ - YYSYMBOL_function_call_header_with_parameters = 464, /* function_call_header_with_parameters */ - YYSYMBOL_function_call_header = 465, /* function_call_header */ - YYSYMBOL_function_identifier = 466, /* function_identifier */ - YYSYMBOL_unary_expression = 467, /* unary_expression */ - YYSYMBOL_unary_operator = 468, /* unary_operator */ - YYSYMBOL_multiplicative_expression = 469, /* multiplicative_expression */ - YYSYMBOL_additive_expression = 470, /* additive_expression */ - YYSYMBOL_shift_expression = 471, /* shift_expression */ - YYSYMBOL_relational_expression = 472, /* relational_expression */ - YYSYMBOL_equality_expression = 473, /* equality_expression */ - YYSYMBOL_and_expression = 474, /* and_expression */ - YYSYMBOL_exclusive_or_expression = 475, /* exclusive_or_expression */ - YYSYMBOL_inclusive_or_expression = 476, /* inclusive_or_expression */ - YYSYMBOL_logical_and_expression = 477, /* logical_and_expression */ - YYSYMBOL_logical_xor_expression = 478, /* logical_xor_expression */ - YYSYMBOL_logical_or_expression = 479, /* logical_or_expression */ - YYSYMBOL_conditional_expression = 480, /* conditional_expression */ - YYSYMBOL_481_1 = 481, /* $@1 */ - YYSYMBOL_assignment_expression = 482, /* assignment_expression */ - YYSYMBOL_assignment_operator = 483, /* assignment_operator */ - YYSYMBOL_expression = 484, /* expression */ - YYSYMBOL_constant_expression = 485, /* constant_expression */ - YYSYMBOL_declaration = 486, /* declaration */ - YYSYMBOL_block_structure = 487, /* block_structure */ - YYSYMBOL_488_2 = 488, /* $@2 */ - YYSYMBOL_identifier_list = 489, /* identifier_list */ - YYSYMBOL_function_prototype = 490, /* function_prototype */ - YYSYMBOL_function_declarator = 491, /* function_declarator */ - YYSYMBOL_function_header_with_parameters = 492, /* function_header_with_parameters */ - YYSYMBOL_function_header = 493, /* function_header */ - YYSYMBOL_parameter_declarator = 494, /* parameter_declarator */ - YYSYMBOL_parameter_declaration = 495, /* parameter_declaration */ - YYSYMBOL_parameter_type_specifier = 496, /* parameter_type_specifier */ - YYSYMBOL_init_declarator_list = 497, /* init_declarator_list */ - YYSYMBOL_single_declaration = 498, /* single_declaration */ - YYSYMBOL_fully_specified_type = 499, /* fully_specified_type */ - YYSYMBOL_invariant_qualifier = 500, /* invariant_qualifier */ - YYSYMBOL_interpolation_qualifier = 501, /* interpolation_qualifier */ - YYSYMBOL_layout_qualifier = 502, /* layout_qualifier */ - YYSYMBOL_layout_qualifier_id_list = 503, /* layout_qualifier_id_list */ - YYSYMBOL_layout_qualifier_id = 504, /* layout_qualifier_id */ - YYSYMBOL_precise_qualifier = 505, /* precise_qualifier */ - YYSYMBOL_type_qualifier = 506, /* type_qualifier */ - YYSYMBOL_single_type_qualifier = 507, /* single_type_qualifier */ - YYSYMBOL_storage_qualifier = 508, /* storage_qualifier */ - YYSYMBOL_non_uniform_qualifier = 509, /* non_uniform_qualifier */ - YYSYMBOL_type_name_list = 510, /* type_name_list */ - YYSYMBOL_type_specifier = 511, /* type_specifier */ - YYSYMBOL_array_specifier = 512, /* array_specifier */ - YYSYMBOL_type_parameter_specifier_opt = 513, /* type_parameter_specifier_opt */ - YYSYMBOL_type_parameter_specifier = 514, /* type_parameter_specifier */ - YYSYMBOL_type_parameter_specifier_list = 515, /* type_parameter_specifier_list */ - YYSYMBOL_type_specifier_nonarray = 516, /* type_specifier_nonarray */ - YYSYMBOL_precision_qualifier = 517, /* precision_qualifier */ - YYSYMBOL_struct_specifier = 518, /* struct_specifier */ - YYSYMBOL_519_3 = 519, /* $@3 */ - YYSYMBOL_520_4 = 520, /* $@4 */ - YYSYMBOL_struct_declaration_list = 521, /* struct_declaration_list */ - YYSYMBOL_struct_declaration = 522, /* struct_declaration */ - YYSYMBOL_struct_declarator_list = 523, /* struct_declarator_list */ - YYSYMBOL_struct_declarator = 524, /* struct_declarator */ - YYSYMBOL_initializer = 525, /* initializer */ - YYSYMBOL_initializer_list = 526, /* initializer_list */ - YYSYMBOL_declaration_statement = 527, /* declaration_statement */ - YYSYMBOL_statement = 528, /* statement */ - YYSYMBOL_simple_statement = 529, /* simple_statement */ - YYSYMBOL_demote_statement = 530, /* demote_statement */ - YYSYMBOL_compound_statement = 531, /* compound_statement */ - YYSYMBOL_532_5 = 532, /* $@5 */ - YYSYMBOL_533_6 = 533, /* $@6 */ - YYSYMBOL_statement_no_new_scope = 534, /* statement_no_new_scope */ - YYSYMBOL_statement_scoped = 535, /* statement_scoped */ - YYSYMBOL_536_7 = 536, /* $@7 */ - YYSYMBOL_537_8 = 537, /* $@8 */ - YYSYMBOL_compound_statement_no_new_scope = 538, /* compound_statement_no_new_scope */ - YYSYMBOL_statement_list = 539, /* statement_list */ - YYSYMBOL_expression_statement = 540, /* expression_statement */ - YYSYMBOL_selection_statement = 541, /* selection_statement */ - YYSYMBOL_selection_statement_nonattributed = 542, /* selection_statement_nonattributed */ - YYSYMBOL_selection_rest_statement = 543, /* selection_rest_statement */ - YYSYMBOL_condition = 544, /* condition */ - YYSYMBOL_switch_statement = 545, /* switch_statement */ - YYSYMBOL_switch_statement_nonattributed = 546, /* switch_statement_nonattributed */ - YYSYMBOL_547_9 = 547, /* $@9 */ - YYSYMBOL_switch_statement_list = 548, /* switch_statement_list */ - YYSYMBOL_case_label = 549, /* case_label */ - YYSYMBOL_iteration_statement = 550, /* iteration_statement */ - YYSYMBOL_iteration_statement_nonattributed = 551, /* iteration_statement_nonattributed */ - YYSYMBOL_552_10 = 552, /* $@10 */ - YYSYMBOL_553_11 = 553, /* $@11 */ - YYSYMBOL_554_12 = 554, /* $@12 */ - YYSYMBOL_for_init_statement = 555, /* for_init_statement */ - YYSYMBOL_conditionopt = 556, /* conditionopt */ - YYSYMBOL_for_rest_statement = 557, /* for_rest_statement */ - YYSYMBOL_jump_statement = 558, /* jump_statement */ - YYSYMBOL_translation_unit = 559, /* translation_unit */ - YYSYMBOL_external_declaration = 560, /* external_declaration */ - YYSYMBOL_function_definition = 561, /* function_definition */ - YYSYMBOL_562_13 = 562, /* $@13 */ - YYSYMBOL_attribute = 563, /* attribute */ - YYSYMBOL_attribute_list = 564, /* attribute_list */ - YYSYMBOL_single_attribute = 565, /* single_attribute */ - YYSYMBOL_spirv_requirements_list = 566, /* spirv_requirements_list */ - YYSYMBOL_spirv_requirements_parameter = 567, /* spirv_requirements_parameter */ - YYSYMBOL_spirv_extension_list = 568, /* spirv_extension_list */ - YYSYMBOL_spirv_capability_list = 569, /* spirv_capability_list */ - YYSYMBOL_spirv_execution_mode_qualifier = 570, /* spirv_execution_mode_qualifier */ - YYSYMBOL_spirv_execution_mode_parameter_list = 571, /* spirv_execution_mode_parameter_list */ - YYSYMBOL_spirv_execution_mode_parameter = 572, /* spirv_execution_mode_parameter */ - YYSYMBOL_spirv_execution_mode_id_parameter_list = 573, /* spirv_execution_mode_id_parameter_list */ - YYSYMBOL_spirv_storage_class_qualifier = 574, /* spirv_storage_class_qualifier */ - YYSYMBOL_spirv_decorate_qualifier = 575, /* spirv_decorate_qualifier */ - YYSYMBOL_spirv_decorate_parameter_list = 576, /* spirv_decorate_parameter_list */ - YYSYMBOL_spirv_decorate_parameter = 577, /* spirv_decorate_parameter */ - YYSYMBOL_spirv_decorate_id_parameter_list = 578, /* spirv_decorate_id_parameter_list */ - YYSYMBOL_spirv_decorate_string_parameter_list = 579, /* spirv_decorate_string_parameter_list */ - YYSYMBOL_spirv_type_specifier = 580, /* spirv_type_specifier */ - YYSYMBOL_spirv_type_parameter_list = 581, /* spirv_type_parameter_list */ - YYSYMBOL_spirv_type_parameter = 582, /* spirv_type_parameter */ - YYSYMBOL_spirv_instruction_qualifier = 583, /* spirv_instruction_qualifier */ - YYSYMBOL_spirv_instruction_qualifier_list = 584, /* spirv_instruction_qualifier_list */ - YYSYMBOL_spirv_instruction_qualifier_id = 585 /* spirv_instruction_qualifier_id */ -}; -typedef enum yysymbol_kind_t yysymbol_kind_t; - - -/* Second part of user prologue. */ -#line 136 "MachineIndependent/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 732 "MachineIndependent/glslang_tab.cpp" - - -#ifdef short -# undef short -#endif - -/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure - and (if available) are included - so that the code can choose integer types of a good width. */ - -#ifndef __PTRDIFF_MAX__ -# include /* INFRINGES ON USER NAME SPACE */ -# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ -# include /* INFRINGES ON USER NAME SPACE */ -# define YY_STDINT_H -# endif -#endif - -/* Narrow types that promote to a signed type and that can represent a - signed or unsigned integer of at least N bits. In tables they can - save space and decrease cache pressure. Promoting to a signed type - helps avoid bugs in integer arithmetic. */ - -#ifdef __INT_LEAST8_MAX__ -typedef __INT_LEAST8_TYPE__ yytype_int8; -#elif defined YY_STDINT_H -typedef int_least8_t yytype_int8; -#else -typedef signed char yytype_int8; -#endif - -#ifdef __INT_LEAST16_MAX__ -typedef __INT_LEAST16_TYPE__ yytype_int16; -#elif defined YY_STDINT_H -typedef int_least16_t yytype_int16; -#else -typedef short yytype_int16; -#endif - -#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ -typedef __UINT_LEAST8_TYPE__ yytype_uint8; -#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ - && UINT_LEAST8_MAX <= INT_MAX) -typedef uint_least8_t yytype_uint8; -#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX -typedef unsigned char yytype_uint8; -#else -typedef short yytype_uint8; -#endif - -#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ -typedef __UINT_LEAST16_TYPE__ yytype_uint16; -#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ - && UINT_LEAST16_MAX <= INT_MAX) -typedef uint_least16_t yytype_uint16; -#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX -typedef unsigned short yytype_uint16; -#else -typedef int yytype_uint16; -#endif - -#ifndef YYPTRDIFF_T -# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ -# define YYPTRDIFF_T __PTRDIFF_TYPE__ -# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ -# elif defined PTRDIFF_MAX -# ifndef ptrdiff_t -# include /* INFRINGES ON USER NAME SPACE */ -# endif -# define YYPTRDIFF_T ptrdiff_t -# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX -# else -# define YYPTRDIFF_T long -# define YYPTRDIFF_MAXIMUM LONG_MAX -# endif -#endif - -#ifndef YYSIZE_T -# ifdef __SIZE_TYPE__ -# define YYSIZE_T __SIZE_TYPE__ -# elif defined size_t -# define YYSIZE_T size_t -# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ -# include /* INFRINGES ON USER NAME SPACE */ -# define YYSIZE_T size_t -# else -# define YYSIZE_T unsigned -# endif -#endif - -#define YYSIZE_MAXIMUM \ - YY_CAST (YYPTRDIFF_T, \ - (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ - ? YYPTRDIFF_MAXIMUM \ - : YY_CAST (YYSIZE_T, -1))) - -#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) - - -/* Stored state numbers (used for stacks). */ -typedef yytype_int16 yy_state_t; - -/* State numbers in computations. */ -typedef int yy_state_fast_t; - -#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 YY_ATTRIBUTE_PURE -# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) -# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) -# else -# define YY_ATTRIBUTE_PURE -# endif -#endif - -#ifndef YY_ATTRIBUTE_UNUSED -# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) -# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) -# else -# define YY_ATTRIBUTE_UNUSED -# 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__ && ! defined __ICC && 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 __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ -# define YY_IGNORE_USELESS_CAST_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") -# define YY_IGNORE_USELESS_CAST_END \ - _Pragma ("GCC diagnostic pop") -#endif -#ifndef YY_IGNORE_USELESS_CAST_BEGIN -# define YY_IGNORE_USELESS_CAST_BEGIN -# define YY_IGNORE_USELESS_CAST_END -#endif - - -#define YY_ASSERT(E) ((void) (0 && (E))) - -#if 1 - -/* 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 /* 1 */ - -#if (! defined yyoverflow \ - && (! defined __cplusplus \ - || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) - -/* A type that is properly aligned for any stack member. */ -union yyalloc -{ - yy_state_t yyss_alloc; - YYSTYPE yyvs_alloc; -}; - -/* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) - -/* The size of an array large to enough to hold all stacks, each with - N elements. */ -# define YYSTACK_BYTES(N) \ - ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (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 \ - { \ - YYPTRDIFF_T yynewbytes; \ - YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ - Stack = &yyptr->Stack_alloc; \ - yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / YYSIZEOF (*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, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) -# else -# define YYCOPY(Dst, Src, Count) \ - do \ - { \ - YYPTRDIFF_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 442 -/* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 12452 - -/* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 455 -/* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 131 -/* YYNRULES -- Number of rules. */ -#define YYNRULES 683 -/* YYNSTATES -- Number of states. */ -#define YYNSTATES 929 - -/* YYMAXUTOK -- Last valid token kind. */ -#define YYMAXUTOK 709 - - -/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM - as returned by yylex, with out-of-bounds checking. */ -#define YYTRANSLATE(YYX) \ - (0 <= (YYX) && (YYX) <= YYMAXUTOK \ - ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \ - : YYSYMBOL_YYUNDEF) - -/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM - as returned by yylex. */ -static const yytype_int16 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, 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 -}; - -#if YYDEBUG - /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ -static const yytype_int16 yyrline[] = -{ - 0, 392, 392, 398, 401, 406, 409, 412, 416, 420, - 423, 427, 431, 435, 439, 443, 447, 453, 461, 464, - 467, 470, 473, 478, 486, 493, 500, 506, 510, 517, - 520, 526, 533, 543, 551, 556, 584, 593, 599, 603, - 607, 627, 628, 629, 630, 636, 637, 642, 647, 656, - 657, 662, 670, 671, 677, 686, 687, 692, 697, 702, - 710, 711, 720, 732, 733, 742, 743, 752, 753, 762, - 763, 771, 772, 780, 781, 789, 790, 790, 808, 809, - 825, 829, 833, 837, 842, 846, 850, 854, 858, 862, - 866, 873, 876, 887, 894, 900, 907, 913, 918, 925, - 929, 933, 937, 942, 947, 956, 956, 967, 971, 978, - 982, 988, 994, 1004, 1007, 1014, 1022, 1042, 1065, 1080, - 1105, 1116, 1126, 1136, 1146, 1155, 1158, 1162, 1166, 1171, - 1179, 1186, 1191, 1196, 1201, 1210, 1220, 1247, 1256, 1263, - 1271, 1278, 1285, 1293, 1303, 1310, 1321, 1327, 1330, 1337, - 1341, 1345, 1354, 1364, 1367, 1378, 1381, 1384, 1388, 1392, - 1397, 1401, 1404, 1409, 1413, 1418, 1427, 1431, 1436, 1442, - 1448, 1455, 1460, 1468, 1474, 1486, 1500, 1506, 1511, 1519, - 1527, 1535, 1543, 1551, 1559, 1567, 1575, 1582, 1589, 1593, - 1598, 1603, 1608, 1613, 1618, 1623, 1627, 1631, 1635, 1639, - 1645, 1656, 1663, 1666, 1675, 1680, 1690, 1695, 1703, 1707, - 1717, 1720, 1726, 1732, 1739, 1749, 1753, 1757, 1761, 1766, - 1770, 1775, 1780, 1785, 1790, 1795, 1800, 1805, 1810, 1815, - 1821, 1827, 1833, 1838, 1843, 1848, 1853, 1858, 1863, 1868, - 1873, 1878, 1883, 1888, 1894, 1901, 1906, 1911, 1916, 1921, - 1926, 1931, 1936, 1941, 1946, 1951, 1956, 1964, 1972, 1980, - 1986, 1992, 1998, 2004, 2010, 2016, 2022, 2028, 2034, 2040, - 2046, 2052, 2058, 2064, 2070, 2076, 2082, 2088, 2094, 2100, - 2106, 2112, 2118, 2124, 2130, 2136, 2142, 2148, 2154, 2160, - 2166, 2172, 2178, 2186, 2194, 2202, 2210, 2218, 2226, 2234, - 2242, 2250, 2258, 2266, 2274, 2280, 2286, 2292, 2298, 2304, - 2310, 2316, 2322, 2328, 2334, 2340, 2346, 2352, 2358, 2364, - 2370, 2376, 2382, 2388, 2394, 2400, 2406, 2412, 2418, 2424, - 2430, 2436, 2442, 2448, 2454, 2460, 2466, 2472, 2478, 2484, - 2490, 2494, 2498, 2502, 2507, 2513, 2518, 2523, 2528, 2533, - 2538, 2543, 2549, 2554, 2559, 2564, 2569, 2574, 2580, 2586, - 2592, 2598, 2604, 2610, 2616, 2622, 2628, 2634, 2640, 2646, - 2652, 2658, 2663, 2668, 2673, 2678, 2683, 2688, 2694, 2699, - 2704, 2709, 2714, 2719, 2724, 2729, 2735, 2740, 2745, 2750, - 2755, 2760, 2765, 2770, 2775, 2780, 2785, 2790, 2795, 2800, - 2805, 2811, 2816, 2821, 2827, 2833, 2838, 2843, 2848, 2854, - 2859, 2864, 2869, 2875, 2880, 2885, 2890, 2896, 2901, 2906, - 2911, 2917, 2923, 2929, 2935, 2940, 2946, 2952, 2958, 2963, - 2968, 2973, 2978, 2983, 2989, 2994, 2999, 3004, 3010, 3015, - 3020, 3025, 3031, 3036, 3041, 3046, 3052, 3057, 3062, 3067, - 3073, 3078, 3083, 3088, 3094, 3099, 3104, 3109, 3115, 3120, - 3125, 3130, 3136, 3141, 3146, 3151, 3157, 3162, 3167, 3172, - 3178, 3183, 3188, 3193, 3199, 3204, 3209, 3214, 3220, 3225, - 3230, 3235, 3241, 3246, 3251, 3256, 3262, 3267, 3272, 3277, - 3283, 3288, 3293, 3298, 3303, 3308, 3313, 3318, 3323, 3328, - 3333, 3338, 3343, 3348, 3353, 3358, 3363, 3368, 3373, 3378, - 3383, 3388, 3393, 3398, 3403, 3409, 3415, 3421, 3427, 3434, - 3441, 3447, 3453, 3459, 3465, 3471, 3477, 3483, 3488, 3493, - 3509, 3514, 3519, 3527, 3527, 3538, 3538, 3548, 3551, 3564, - 3586, 3613, 3617, 3623, 3628, 3639, 3643, 3649, 3655, 3666, - 3669, 3676, 3680, 3681, 3687, 3688, 3689, 3690, 3691, 3692, - 3693, 3695, 3701, 3710, 3711, 3715, 3711, 3727, 3728, 3732, - 3732, 3739, 3739, 3753, 3756, 3764, 3772, 3783, 3784, 3788, - 3792, 3800, 3807, 3811, 3819, 3823, 3836, 3840, 3848, 3848, - 3868, 3871, 3877, 3889, 3901, 3905, 3913, 3913, 3928, 3928, - 3946, 3946, 3967, 3970, 3976, 3979, 3985, 3989, 3996, 4001, - 4006, 4013, 4016, 4020, 4025, 4029, 4039, 4043, 4052, 4055, - 4059, 4068, 4068, 4110, 4115, 4118, 4123, 4126, 4133, 4136, - 4141, 4144, 4149, 4152, 4157, 4160, 4165, 4169, 4174, 4178, - 4183, 4187, 4194, 4197, 4202, 4205, 4208, 4211, 4214, 4219, - 4228, 4239, 4244, 4252, 4256, 4261, 4265, 4270, 4274, 4279, - 4283, 4290, 4293, 4298, 4301, 4304, 4307, 4312, 4320, 4330, - 4334, 4339, 4343, 4348, 4352, 4359, 4362, 4367, 4372, 4375, - 4381, 4384, 4389, 4392 -}; -#endif - -/** Accessing symbol of state STATE. */ -#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State]) - -#if 1 -/* The user-facing name of the symbol whose (internal) number is - YYSYMBOL. No bounds checking. */ -static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED; - -/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. - First, the terminals, then, starting at YYNTOKENS, nonterminals. */ -static const char *const yytname[] = -{ - "\"end of file\"", "error", "\"invalid token\"", "CONST", "BOOL", "INT", - "UINT", "FLOAT", "BVEC2", "BVEC3", "BVEC4", "IVEC2", "IVEC3", "IVEC4", - "UVEC2", "UVEC3", "UVEC4", "VEC2", "VEC3", "VEC4", "MAT2", "MAT3", - "MAT4", "MAT2X2", "MAT2X3", "MAT2X4", "MAT3X2", "MAT3X3", "MAT3X4", - "MAT4X2", "MAT4X3", "MAT4X4", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE", - "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW", "SAMPLER2DARRAY", - "SAMPLER2DARRAYSHADOW", "ISAMPLER2D", "ISAMPLER3D", "ISAMPLERCUBE", - "ISAMPLER2DARRAY", "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE", - "USAMPLER2DARRAY", "SAMPLER", "SAMPLERSHADOW", "TEXTURE2D", "TEXTURE3D", - "TEXTURECUBE", "TEXTURE2DARRAY", "ITEXTURE2D", "ITEXTURE3D", - "ITEXTURECUBE", "ITEXTURE2DARRAY", "UTEXTURE2D", "UTEXTURE3D", - "UTEXTURECUBE", "UTEXTURE2DARRAY", "ATTRIBUTE", "VARYING", "FLOAT16_T", - "FLOAT32_T", "DOUBLE", "FLOAT64_T", "INT64_T", "UINT64_T", "INT32_T", - "UINT32_T", "INT16_T", "UINT16_T", "INT8_T", "UINT8_T", "I64VEC2", - "I64VEC3", "I64VEC4", "U64VEC2", "U64VEC3", "U64VEC4", "I32VEC2", - "I32VEC3", "I32VEC4", "U32VEC2", "U32VEC3", "U32VEC4", "I16VEC2", - "I16VEC3", "I16VEC4", "U16VEC2", "U16VEC3", "U16VEC4", "I8VEC2", - "I8VEC3", "I8VEC4", "U8VEC2", "U8VEC3", "U8VEC4", "DVEC2", "DVEC3", - "DVEC4", "DMAT2", "DMAT3", "DMAT4", "F16VEC2", "F16VEC3", "F16VEC4", - "F16MAT2", "F16MAT3", "F16MAT4", "F32VEC2", "F32VEC3", "F32VEC4", - "F32MAT2", "F32MAT3", "F32MAT4", "F64VEC2", "F64VEC3", "F64VEC4", - "F64MAT2", "F64MAT3", "F64MAT4", "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", "ACCSTRUCTNV", "ACCSTRUCTEXT", - "RAYQUERYEXT", "FCOOPMATNV", "ICOOPMATNV", "UCOOPMATNV", - "SAMPLERCUBEARRAY", "SAMPLERCUBEARRAYSHADOW", "ISAMPLERCUBEARRAY", - "USAMPLERCUBEARRAY", "SAMPLER1D", "SAMPLER1DARRAY", - "SAMPLER1DARRAYSHADOW", "ISAMPLER1D", "SAMPLER1DSHADOW", "SAMPLER2DRECT", - "SAMPLER2DRECTSHADOW", "ISAMPLER2DRECT", "USAMPLER2DRECT", - "SAMPLERBUFFER", "ISAMPLERBUFFER", "USAMPLERBUFFER", "SAMPLER2DMS", - "ISAMPLER2DMS", "USAMPLER2DMS", "SAMPLER2DMSARRAY", "ISAMPLER2DMSARRAY", - "USAMPLER2DMSARRAY", "SAMPLEREXTERNALOES", "SAMPLEREXTERNAL2DY2YEXT", - "ISAMPLER1DARRAY", "USAMPLER1D", "USAMPLER1DARRAY", "F16SAMPLER1D", - "F16SAMPLER2D", "F16SAMPLER3D", "F16SAMPLER2DRECT", "F16SAMPLERCUBE", - "F16SAMPLER1DARRAY", "F16SAMPLER2DARRAY", "F16SAMPLERCUBEARRAY", - "F16SAMPLERBUFFER", "F16SAMPLER2DMS", "F16SAMPLER2DMSARRAY", - "F16SAMPLER1DSHADOW", "F16SAMPLER2DSHADOW", "F16SAMPLER1DARRAYSHADOW", - "F16SAMPLER2DARRAYSHADOW", "F16SAMPLER2DRECTSHADOW", - "F16SAMPLERCUBESHADOW", "F16SAMPLERCUBEARRAYSHADOW", "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", "I64IMAGE1D", "U64IMAGE1D", "I64IMAGE2D", - "U64IMAGE2D", "I64IMAGE3D", "U64IMAGE3D", "I64IMAGE2DRECT", - "U64IMAGE2DRECT", "I64IMAGECUBE", "U64IMAGECUBE", "I64IMAGEBUFFER", - "U64IMAGEBUFFER", "I64IMAGE1DARRAY", "U64IMAGE1DARRAY", - "I64IMAGE2DARRAY", "U64IMAGE2DARRAY", "I64IMAGECUBEARRAY", - "U64IMAGECUBEARRAY", "I64IMAGE2DMS", "U64IMAGE2DMS", "I64IMAGE2DMSARRAY", - "U64IMAGE2DMSARRAY", "TEXTURECUBEARRAY", "ITEXTURECUBEARRAY", - "UTEXTURECUBEARRAY", "TEXTURE1D", "ITEXTURE1D", "UTEXTURE1D", - "TEXTURE1DARRAY", "ITEXTURE1DARRAY", "UTEXTURE1DARRAY", "TEXTURE2DRECT", - "ITEXTURE2DRECT", "UTEXTURE2DRECT", "TEXTUREBUFFER", "ITEXTUREBUFFER", - "UTEXTUREBUFFER", "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", "SPIRV_INSTRUCTION", "SPIRV_EXECUTION_MODE", - "SPIRV_EXECUTION_MODE_ID", "SPIRV_DECORATE", "SPIRV_DECORATE_ID", - "SPIRV_DECORATE_STRING", "SPIRV_TYPE", "SPIRV_STORAGE_CLASS", - "SPIRV_BY_REFERENCE", "SPIRV_LITERAL", "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", "STRING_LITERAL", "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", "HIGH_PRECISION", - "MEDIUM_PRECISION", "LOW_PRECISION", "PRECISION", "PACKED", "RESOURCE", - "SUPERP", "FLOATCONSTANT", "INTCONSTANT", "UINTCONSTANT", "BOOLCONSTANT", - "IDENTIFIER", "TYPE_NAME", "CENTROID", "IN", "OUT", "INOUT", "STRUCT", - "VOID", "WHILE", "BREAK", "CONTINUE", "DO", "ELSE", "FOR", "IF", - "DISCARD", "RETURN", "SWITCH", "CASE", "DEFAULT", "TERMINATE_INVOCATION", - "TERMINATE_RAY", "IGNORE_INTERSECTION", "UNIFORM", "SHARED", "BUFFER", - "FLAT", "SMOOTH", "LAYOUT", "DOUBLECONSTANT", "INT16CONSTANT", - "UINT16CONSTANT", "FLOAT16CONSTANT", "INT32CONSTANT", "UINT32CONSTANT", - "INT64CONSTANT", "UINT64CONSTANT", "SUBROUTINE", "DEMOTE", "PAYLOADNV", - "PAYLOADINNV", "HITATTRNV", "CALLDATANV", "CALLDATAINNV", "PAYLOADEXT", - "PAYLOADINEXT", "HITATTREXT", "CALLDATAEXT", "CALLDATAINEXT", "PATCH", - "SAMPLE", "NONUNIFORM", "COHERENT", "VOLATILE", "RESTRICT", "READONLY", - "WRITEONLY", "DEVICECOHERENT", "QUEUEFAMILYCOHERENT", - "WORKGROUPCOHERENT", "SUBGROUPCOHERENT", "NONPRIVATE", - "SHADERCALLCOHERENT", "NOPERSPECTIVE", "EXPLICITINTERPAMD", - "PERVERTEXNV", "PERPRIMITIVENV", "PERVIEWNV", "PERTASKNV", "PRECISE", - "$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_parameter_specifier_opt", - "type_parameter_specifier", "type_parameter_specifier_list", - "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", "demote_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", "spirv_requirements_list", - "spirv_requirements_parameter", "spirv_extension_list", - "spirv_capability_list", "spirv_execution_mode_qualifier", - "spirv_execution_mode_parameter_list", "spirv_execution_mode_parameter", - "spirv_execution_mode_id_parameter_list", - "spirv_storage_class_qualifier", "spirv_decorate_qualifier", - "spirv_decorate_parameter_list", "spirv_decorate_parameter", - "spirv_decorate_id_parameter_list", - "spirv_decorate_string_parameter_list", "spirv_type_specifier", - "spirv_type_parameter_list", "spirv_type_parameter", - "spirv_instruction_qualifier", "spirv_instruction_qualifier_list", - "spirv_instruction_qualifier_id", YY_NULLPTR -}; - -static const char * -yysymbol_name (yysymbol_kind_t yysymbol) -{ - return yytname[yysymbol]; -} -#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_int16 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, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, - 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, - 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, - 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, - 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, - 705, 706, 707, 708, 709 -}; -#endif - -#define YYPACT_NINF (-859) - -#define yypact_value_is_default(Yyn) \ - ((Yyn) == YYPACT_NINF) - -#define YYTABLE_NINF (-570) - -#define yytable_value_is_error(Yyn) \ - 0 - - /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - STATE-NUM. */ -static const yytype_int16 yypact[] = -{ - 4548, -859, -859, -859, -859, -859, -859, -859, -859, -859, - -859, -859, -859, -859, -859, -859, -859, -859, -859, -859, - -859, -859, -859, -859, -859, -859, -859, -859, -859, -859, - -859, -859, -859, -859, -859, -859, -859, -859, -859, -859, - -859, -859, -859, -859, -859, -859, -859, -859, -859, -859, - -859, -859, -859, -859, -859, -859, -859, -859, -859, -859, - -859, -859, -859, -859, -859, -859, -859, -859, -859, -859, - -859, -859, -859, -859, -859, -859, -859, -859, -859, -859, - -859, -859, -859, -859, -859, -859, -859, -859, -859, -859, - -859, -859, -859, -859, -859, -859, -859, -859, -859, -859, - -859, -859, -859, -859, -859, -859, -859, -859, -859, -859, - -859, -859, -859, -859, -859, -859, -859, -859, -859, -859, - -859, -859, -859, -859, -859, -859, -859, -859, -859, -859, - -859, -859, -859, -859, -859, -859, -859, -859, -859, -859, - -859, -859, -859, -859, -859, -859, -859, -859, -859, -859, - -859, -859, -859, -859, -859, -859, -859, -859, -859, -859, - -859, -859, -859, -859, -859, -859, -859, -859, -859, -859, - -859, -859, -859, -859, -859, -859, -859, -859, -859, -859, - -859, -859, -859, -859, -859, -859, -859, -859, -859, -859, - -859, -859, -859, -859, -859, -859, -859, -859, -859, -859, - -859, -859, -859, -859, -859, -859, -859, -859, -859, -859, - -859, -859, -859, -859, -859, -859, -859, -859, -859, -859, - -859, -859, -859, -859, -859, -859, -859, -859, -859, -859, - -859, -859, -859, -859, -859, -859, -859, -859, -859, -859, - -859, -859, -859, -859, -859, -859, -859, -859, -859, -859, - -859, -859, -859, -859, -859, -859, -859, -859, -859, -859, - -859, -859, -859, -859, -859, -859, -859, -859, -859, -859, - -859, -859, -859, -859, -859, -859, -859, -859, -859, -859, - -859, -859, -859, -859, -859, -859, -859, -859, -859, -859, - -859, -859, -859, -859, -859, -859, -859, -859, -859, -859, - -859, -859, -859, -859, -859, -859, -859, -859, -859, -859, - -859, -859, -859, -859, -859, -312, -274, -244, -212, -208, - -201, -181, -169, -859, -859, -194, -859, -859, -859, -859, - -859, -285, -859, -859, -859, -859, -859, -317, -859, -859, - -859, -859, -859, -859, -132, -73, -859, -859, -859, -859, - -859, -859, -859, -859, -859, -859, -859, -859, -859, -859, - -859, -859, -859, -859, -859, -859, -859, -859, -859, -859, - -859, -859, -859, -859, -859, -859, -859, -859, -329, -70, - -158, -145, 7712, -221, -859, -164, -859, -859, -859, -859, - 5452, -859, -859, -859, -859, -68, -859, -859, 932, -859, - -859, 7712, -55, -859, -859, -859, 5904, -80, -154, -150, - -142, -135, -130, -80, -129, -79, 12060, -859, -45, -354, - -76, -859, -308, -859, -43, -40, 7712, -859, -859, -859, - 7712, -72, -71, -859, -265, -859, -257, -859, -859, 10761, - -39, -859, -859, -859, -35, -69, 7712, -859, -42, -38, - -37, -859, -302, -859, -235, -32, -33, -28, -27, -217, - -26, -23, -22, -21, -20, -16, -216, -29, -15, -31, - -303, -859, -13, 7712, -859, -14, -859, -214, -859, -859, - -205, 9029, -859, -279, 1384, -859, -859, -859, -859, -859, - -39, -299, -859, 9462, -275, -859, -34, -859, -137, 10761, - 10761, -859, 10761, -859, -859, -859, -859, -859, -859, -859, - -859, -859, -859, -859, -859, -859, -859, -859, -859, -859, - -859, -859, -248, -859, -859, -859, -3, -203, 11194, -1, - -859, 10761, -859, -859, -310, 3, -40, 1, -859, -309, - -80, -859, -30, -859, -319, 5, -128, 10761, -124, -859, - -157, -122, 10761, -120, 10, -118, -80, -859, 11627, -859, - -116, 10761, 7, -79, -859, 7712, -25, 6356, -859, 7712, - 10761, -859, -354, -859, -19, -859, -859, -78, -263, -94, - -298, -52, -18, -8, -12, 29, 28, -301, 15, 9895, - -859, 16, -859, -859, 19, 12, 17, -859, 20, 23, - 18, 10328, 24, 10761, 21, 22, 25, 27, 30, -215, - -859, -859, -117, -859, -70, 26, 34, -859, -859, -859, - -859, -859, 1836, -859, -859, -859, -859, -859, -859, -859, - -859, -859, 5000, 3, 9462, -264, 8163, -859, -859, 9462, - 7712, -859, -11, -859, -859, -859, -195, -859, -859, 10761, - -6, -859, -859, 10761, 37, -859, -859, -859, 10761, -859, - -859, -859, -322, -859, -859, -192, 35, -859, -859, -859, - -859, -859, -859, -179, -859, -178, -859, -859, -177, 32, - -859, -859, -859, -859, -175, -859, -174, -859, -167, 36, - -859, -166, 38, -165, 35, -859, -163, -859, 45, 46, - -859, -859, -25, -39, -115, -859, -859, -859, 6808, -859, - -859, -859, 10761, 10761, 10761, 10761, 10761, 10761, 10761, 10761, - 10761, 10761, 10761, 10761, 10761, 10761, 10761, 10761, 10761, 10761, - 10761, -859, -859, -859, 51, -859, 2288, -859, -859, -859, - 2288, -859, 10761, -859, -859, -88, 10761, -63, -859, -859, - -859, -859, -859, -859, -859, -859, -859, -859, -859, -859, - -859, -859, -859, -859, 10761, 10761, -859, -859, -859, -859, - -859, -859, -859, 9462, -859, -859, -108, -859, 7260, -859, - -859, 52, 53, -859, -859, -859, -859, -859, -138, -136, - -859, -304, -859, -319, -859, -319, -859, 10761, 10761, -859, - -157, -859, -157, -859, 10761, 10761, -859, 65, 10, -859, - 11627, -859, 10761, -859, -859, -86, 3, -25, -859, -859, - -859, -859, -859, -78, -78, -263, -263, -94, -94, -94, - -94, -298, -298, -52, -18, -8, -12, 29, 28, 10761, - -859, 2288, 4096, 31, 3644, -156, -859, -155, -859, -859, - -859, -859, -859, 8596, -859, -859, -859, 66, -859, 39, - -859, -153, -859, -151, -859, -148, -859, -146, -859, -144, - -143, -859, -859, -859, -61, 64, 53, 40, 72, 74, - -859, -859, 4096, 75, -859, -859, -859, -859, -859, -859, - -859, -859, -859, -859, -859, 10761, -859, 71, 2740, 10761, - -859, 73, 81, 41, 80, 3192, -859, 83, -859, 9462, - -859, -859, -859, -141, 10761, 2740, 75, -859, -859, 2288, - -859, 78, 53, -859, -859, 2288, 86, -859, -859 -}; - - /* 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_int16 yydefact[] = -{ - 0, 166, 219, 217, 218, 216, 223, 224, 225, 226, - 227, 228, 229, 230, 231, 220, 221, 222, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 345, 346, 347, 348, 349, 350, 351, 371, 372, 373, - 374, 375, 376, 377, 386, 399, 400, 387, 388, 390, - 389, 391, 392, 393, 394, 395, 396, 397, 398, 174, - 175, 245, 246, 244, 247, 254, 255, 252, 253, 250, - 251, 248, 249, 277, 278, 279, 289, 290, 291, 274, - 275, 276, 286, 287, 288, 271, 272, 273, 283, 284, - 285, 268, 269, 270, 280, 281, 282, 256, 257, 258, - 292, 293, 294, 259, 260, 261, 304, 305, 306, 262, - 263, 264, 316, 317, 318, 265, 266, 267, 328, 329, - 330, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 331, 332, - 333, 334, 335, 336, 337, 338, 339, 343, 340, 341, - 342, 524, 525, 526, 355, 356, 379, 382, 344, 353, - 354, 370, 352, 401, 402, 405, 406, 407, 409, 410, - 411, 413, 414, 415, 417, 418, 514, 515, 378, 380, - 381, 357, 358, 359, 403, 360, 364, 365, 368, 408, - 412, 416, 361, 362, 366, 367, 404, 363, 369, 448, - 450, 451, 452, 454, 455, 456, 458, 459, 460, 462, - 463, 464, 466, 467, 468, 470, 471, 472, 474, 475, - 476, 478, 479, 480, 482, 483, 484, 486, 487, 488, - 490, 491, 449, 453, 457, 461, 465, 473, 477, 481, - 469, 485, 489, 492, 493, 494, 495, 496, 497, 498, - 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, - 509, 510, 511, 512, 513, 383, 384, 385, 419, 428, - 430, 424, 429, 431, 432, 434, 435, 436, 438, 439, - 440, 442, 443, 444, 446, 447, 420, 421, 422, 433, - 423, 425, 426, 427, 437, 441, 445, 516, 517, 520, - 521, 522, 523, 518, 519, 0, 0, 0, 0, 0, - 0, 0, 0, 164, 165, 0, 620, 137, 530, 531, - 532, 0, 529, 170, 168, 169, 167, 0, 215, 171, - 172, 173, 139, 138, 0, 199, 180, 182, 178, 184, - 186, 181, 183, 179, 185, 187, 176, 177, 201, 188, - 195, 196, 197, 198, 189, 190, 191, 192, 193, 194, - 140, 141, 142, 143, 144, 145, 152, 619, 0, 621, - 0, 114, 113, 0, 125, 130, 159, 158, 156, 160, - 0, 153, 155, 161, 135, 211, 157, 528, 0, 616, - 618, 0, 0, 162, 163, 527, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 535, 0, 0, - 0, 99, 0, 94, 0, 109, 0, 121, 115, 123, - 0, 124, 0, 97, 131, 102, 0, 154, 136, 0, - 204, 210, 1, 617, 0, 0, 0, 96, 0, 0, - 0, 628, 0, 680, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 626, - 0, 624, 0, 0, 533, 149, 151, 0, 147, 202, - 0, 0, 100, 0, 0, 622, 110, 116, 120, 122, - 118, 126, 117, 0, 132, 105, 0, 103, 0, 0, - 0, 9, 0, 43, 42, 44, 41, 5, 6, 7, - 8, 2, 16, 14, 15, 17, 10, 11, 12, 13, - 3, 18, 37, 20, 25, 26, 0, 0, 30, 0, - 213, 0, 36, 34, 0, 205, 111, 0, 95, 0, - 0, 678, 0, 636, 0, 0, 0, 0, 0, 653, - 0, 0, 0, 0, 0, 0, 0, 673, 0, 651, - 0, 0, 0, 0, 98, 0, 0, 0, 537, 0, - 0, 146, 0, 200, 0, 206, 45, 49, 52, 55, - 60, 63, 65, 67, 69, 71, 73, 75, 0, 0, - 101, 564, 573, 577, 0, 0, 0, 598, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, - 78, 91, 0, 551, 0, 161, 135, 554, 575, 553, - 561, 552, 0, 555, 556, 579, 557, 586, 558, 559, - 594, 560, 0, 119, 0, 127, 0, 545, 134, 0, - 0, 107, 0, 104, 38, 39, 0, 22, 23, 0, - 0, 28, 27, 0, 215, 31, 33, 40, 0, 212, - 112, 682, 0, 683, 629, 0, 0, 681, 648, 644, - 645, 646, 647, 0, 642, 0, 93, 649, 0, 0, - 663, 664, 665, 666, 0, 661, 0, 667, 0, 0, - 669, 0, 0, 0, 2, 677, 0, 675, 0, 0, - 623, 625, 0, 543, 0, 541, 536, 538, 0, 150, - 148, 203, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 76, 207, 208, 0, 563, 0, 596, 609, 608, - 0, 600, 0, 612, 610, 0, 0, 0, 593, 613, - 614, 615, 562, 81, 82, 84, 83, 86, 87, 88, - 89, 90, 85, 80, 0, 0, 578, 574, 576, 580, - 587, 595, 129, 0, 548, 549, 0, 133, 0, 108, - 4, 0, 24, 21, 32, 214, 632, 634, 0, 0, - 679, 0, 638, 0, 637, 0, 640, 0, 0, 655, - 0, 654, 0, 657, 0, 0, 659, 0, 0, 674, - 0, 671, 0, 652, 627, 0, 544, 0, 539, 534, - 46, 47, 48, 51, 50, 53, 54, 58, 59, 56, - 57, 61, 62, 64, 66, 68, 70, 72, 74, 0, - 209, 565, 0, 0, 0, 0, 611, 0, 592, 79, - 92, 128, 546, 0, 106, 19, 630, 0, 631, 0, - 643, 0, 650, 0, 662, 0, 668, 0, 670, 0, - 0, 676, 540, 542, 0, 0, 584, 0, 0, 0, - 603, 602, 605, 571, 588, 547, 550, 633, 635, 639, - 641, 656, 658, 660, 672, 0, 566, 0, 0, 0, - 604, 0, 0, 583, 0, 0, 581, 0, 77, 0, - 568, 597, 567, 0, 606, 0, 571, 570, 572, 590, - 585, 0, 607, 601, 582, 591, 0, 599, 589 -}; - - /* YYPGOTO[NTERM-NUM]. */ -static const yytype_int16 yypgoto[] = -{ - -859, -859, -859, -859, -859, -859, -859, -859, -859, -859, - -859, -859, -209, -859, -418, -417, -602, -421, -291, -284, - -286, -283, -281, -287, -859, -473, -859, -490, -859, -497, - -520, 13, -859, -859, -859, 14, -394, -859, -859, 33, - 42, 44, -859, -859, -395, -859, -859, -859, -859, -121, - -859, -381, -369, -859, 9, -859, 0, -424, -859, -859, - -859, -859, 113, -859, -859, -859, -545, -549, -252, -365, - -617, -859, -391, -618, -858, -859, -450, -859, -859, -459, - -458, -859, -859, 43, -721, -387, -859, -173, -859, -422, - -859, -170, -859, -859, -859, -859, -168, -859, -859, -859, - -859, -859, -859, -859, -859, 67, -859, -859, 2, -859, - -97, -300, -386, -859, -859, -859, -326, -323, -327, -859, - -859, -330, -325, -328, -332, -859, -331, -334, -859, -390, - -530 -}; - - /* YYDEFGOTO[NTERM-NUM]. */ -static const yytype_int16 yydefgoto[] = -{ - -1, 520, 521, 522, 781, 523, 524, 525, 526, 527, - 528, 529, 609, 531, 577, 578, 579, 580, 581, 582, - 583, 584, 585, 586, 587, 610, 839, 611, 764, 612, - 695, 613, 378, 640, 498, 614, 380, 381, 382, 427, - 428, 429, 383, 384, 385, 386, 387, 388, 477, 478, - 389, 390, 391, 392, 532, 480, 533, 483, 440, 441, - 534, 395, 396, 397, 569, 473, 567, 568, 704, 705, - 638, 776, 617, 618, 619, 620, 621, 736, 875, 911, - 903, 904, 905, 912, 622, 623, 624, 625, 906, 878, - 626, 627, 907, 926, 628, 629, 630, 842, 740, 844, - 882, 901, 902, 631, 398, 399, 400, 424, 632, 470, - 471, 450, 451, 788, 789, 402, 673, 674, 678, 403, - 404, 684, 685, 688, 691, 405, 696, 697, 406, 452, - 453 -}; - - /* 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[] = -{ - 394, 430, 401, 637, 768, 646, 445, 444, 588, 393, - 494, 445, 667, 377, 379, 841, 535, 772, 707, 775, - 446, 437, 777, 466, 708, 446, 786, 677, 667, 668, - 421, 475, 687, 719, 720, 730, 417, 407, 655, 661, - 910, 699, 662, 481, 661, 430, 658, 918, 541, 562, - 709, 482, 481, 563, 542, 476, 422, 910, 659, 634, - 787, 437, 669, 670, 671, 672, 633, 635, 418, 721, - 722, 731, 589, 663, 676, 408, 589, 437, 663, 676, - 590, 647, 648, 639, 492, 676, 481, 589, 676, 328, - 329, 330, 565, 493, 773, 778, 495, 676, 715, 496, - 716, -35, 497, 649, 745, 409, 747, 650, 456, 458, - 460, 462, 464, 465, 468, 543, 734, 827, 828, 829, - 830, 544, 843, 753, 754, 755, 756, 757, 758, 759, - 760, 761, 762, 549, 557, 432, 571, 410, 433, 550, - 558, 411, 572, 763, 637, 573, 637, 652, 412, 637, - 665, 574, 782, 653, 664, 780, 851, 415, 790, 707, - 664, 765, 664, 784, 542, 664, 693, 664, 413, 664, - 664, 792, 794, 796, 664, 799, 801, 793, 795, 797, - 414, 800, 802, 803, 806, 809, 565, 811, 565, 804, - 807, 810, 425, 812, 883, 884, 437, 889, 925, 890, - 765, 765, 891, 793, 892, 797, 893, 894, 800, 921, - 804, 426, 807, 812, 856, 765, 858, 419, 857, 642, - 859, 434, 643, 768, 680, 681, 682, 683, 454, 707, - 530, 455, 457, 717, 718, 455, 886, 445, 444, 765, - 459, 817, 766, 455, 818, 845, 852, 461, 853, 847, - 455, 446, 463, 467, 675, 455, 455, 455, 679, 565, - 686, 455, 689, 455, 692, 455, 698, 455, 765, 455, - 817, 846, 576, 872, 849, 850, 420, 862, 677, 816, - 667, 723, 724, 637, 866, 687, 712, 713, 714, 423, - 644, 645, 920, 765, 848, 765, 895, 823, 824, 439, - 825, 826, 831, 832, 447, 449, 469, 768, 474, 479, - 484, 325, 481, 490, 491, 536, 537, 538, 561, 540, - 539, 559, 657, 546, 676, 676, 545, 565, 547, 548, - 551, 676, 676, 552, 553, 554, 555, 676, 576, 676, - 556, 560, 874, 576, 570, 876, 564, 651, 656, 576, - 492, 641, 576, 725, 589, 666, 662, 727, 690, 700, - 703, 576, 726, 637, 728, 729, 711, 732, 737, 741, - 735, 738, 742, 746, 779, -36, 739, 743, 748, 783, - 576, 749, 431, -34, 750, 876, 751, -29, 798, 752, - 438, 393, 805, 791, 808, 813, 814, 565, 394, 393, - 401, 394, 913, 840, 855, 908, 394, 393, 401, 765, - 393, 377, 379, 868, 887, 393, 472, 922, 896, 637, - 448, 888, 898, 899, 879, 897, 431, 486, -569, 909, - 431, 915, 914, 591, 833, 393, 919, 927, 916, 393, - 928, 835, 834, 838, 416, 836, 438, 877, 837, 785, - 815, 710, 873, 880, 917, 393, 923, 881, 924, 769, - 900, 446, 770, 488, 771, 443, 701, 485, 487, 861, - 860, 863, 865, 566, 489, 864, 869, 867, 871, 870, - 0, 0, 393, 0, 616, 0, 0, 877, 0, 0, - 0, 0, 0, 615, 0, 0, 0, 0, 0, 0, - 0, 446, 0, 820, 821, 822, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 660, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 702, 0, 566, 0, 566, - 0, 0, 0, 0, 393, 0, 393, 0, 393, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 576, 576, - 0, 0, 0, 0, 0, 576, 576, 0, 0, 0, - 0, 576, 0, 576, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 616, 0, 0, 0, 0, 0, 0, 0, - 0, 615, 394, 0, 0, 0, 0, 0, 0, 0, - 566, 393, 0, 0, 0, 0, 0, 0, 0, 393, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 566, 0, - 0, 0, 0, 0, 0, 0, 0, 393, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 616, 0, 0, 0, - 616, 0, 0, 0, 0, 615, 0, 0, 0, 615, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 566, 0, - 0, 0, 0, 0, 0, 0, 0, 393, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 616, 616, 0, 616, 0, 401, 0, 0, 0, - 615, 615, 0, 615, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 616, 0, 0, 0, 0, 0, 0, 0, - 0, 615, 0, 0, 0, 0, 0, 0, 616, 0, - 0, 0, 0, 0, 0, 616, 0, 615, 0, 0, - 0, 0, 0, 0, 615, 616, 0, 0, 0, 616, - 0, 0, 0, 0, 615, 616, 0, 0, 615, 0, - 0, 0, 442, 0, 615, 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, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 325, 0, 0, 0, 0, 0, 0, - 0, 326, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 327, 328, 329, 330, 331, - 0, 0, 0, 0, 0, 0, 0, 0, 332, 333, - 334, 335, 336, 337, 338, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 339, 340, 341, 342, 343, 344, 0, 0, 0, 0, - 0, 0, 0, 0, 345, 0, 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, 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, 0, 0, 499, 500, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 501, 502, 0, 325, 0, 591, 592, 0, - 0, 0, 0, 593, 503, 504, 505, 506, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 327, 328, 329, - 330, 331, 0, 0, 0, 507, 508, 509, 510, 511, - 332, 333, 334, 335, 336, 337, 338, 594, 595, 596, - 597, 0, 598, 599, 600, 601, 602, 603, 604, 605, - 606, 607, 339, 340, 341, 342, 343, 344, 512, 513, - 514, 515, 516, 517, 518, 519, 345, 608, 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, 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, 0, 0, 499, 500, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 501, 502, 0, 325, 0, 591, - 767, 0, 0, 0, 0, 593, 503, 504, 505, 506, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 327, - 328, 329, 330, 331, 0, 0, 0, 507, 508, 509, - 510, 511, 332, 333, 334, 335, 336, 337, 338, 594, - 595, 596, 597, 0, 598, 599, 600, 601, 602, 603, - 604, 605, 606, 607, 339, 340, 341, 342, 343, 344, - 512, 513, 514, 515, 516, 517, 518, 519, 345, 608, - 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, 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, 0, 0, 499, 500, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 501, 502, 0, 325, - 0, 591, 0, 0, 0, 0, 0, 593, 503, 504, - 505, 506, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 327, 328, 329, 330, 331, 0, 0, 0, 507, - 508, 509, 510, 511, 332, 333, 334, 335, 336, 337, - 338, 594, 595, 596, 597, 0, 598, 599, 600, 601, - 602, 603, 604, 605, 606, 607, 339, 340, 341, 342, - 343, 344, 512, 513, 514, 515, 516, 517, 518, 519, - 345, 608, 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, 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, 0, 0, 499, - 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 501, 502, - 0, 325, 0, 484, 0, 0, 0, 0, 0, 593, - 503, 504, 505, 506, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 327, 328, 329, 330, 331, 0, 0, - 0, 507, 508, 509, 510, 511, 332, 333, 334, 335, - 336, 337, 338, 594, 595, 596, 597, 0, 598, 599, - 600, 601, 602, 603, 604, 605, 606, 607, 339, 340, - 341, 342, 343, 344, 512, 513, 514, 515, 516, 517, - 518, 519, 345, 608, 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, 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, 0, - 0, 499, 500, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 501, 502, 0, 325, 0, 0, 0, 0, 0, 0, - 0, 593, 503, 504, 505, 506, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 327, 328, 329, 330, 331, - 0, 0, 0, 507, 508, 509, 510, 511, 332, 333, - 334, 335, 336, 337, 338, 594, 595, 596, 597, 0, - 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, - 339, 340, 341, 342, 343, 344, 512, 513, 514, 515, - 516, 517, 518, 519, 345, 608, 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, 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, 0, 0, 499, 500, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 501, 502, 0, 325, 0, 0, 0, 0, - 0, 0, 0, 593, 503, 504, 505, 506, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 327, 328, 329, - 330, 331, 0, 0, 0, 507, 508, 509, 510, 511, - 332, 333, 334, 335, 336, 337, 338, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 339, 340, 341, 342, 343, 344, 512, 513, - 514, 515, 516, 517, 518, 519, 345, 0, 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, 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, 0, 0, 0, 318, 319, 320, 321, - 322, 323, 324, 0, 0, 499, 500, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 501, 502, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 503, 504, 505, 506, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 327, - 328, 329, 330, 0, 0, 0, 0, 507, 508, 509, - 510, 511, 332, 333, 334, 335, 336, 337, 338, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 339, 340, 341, 342, 343, 344, - 512, 513, 514, 515, 516, 517, 518, 519, 345, 0, - 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, 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, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 325, - 0, 0, 0, 0, 0, 0, 0, 326, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 327, 328, 329, 330, 331, 0, 0, 0, 0, - 0, 0, 0, 0, 332, 333, 334, 335, 336, 337, - 338, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 339, 340, 341, 342, - 343, 344, 0, 0, 0, 0, 0, 0, 0, 0, - 345, 0, 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, 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, 0, 0, 0, - 318, 319, 320, 321, 322, 323, 324, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 327, 328, 329, 330, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 332, 333, 334, 335, - 336, 337, 338, 594, 0, 0, 597, 0, 598, 599, - 0, 0, 602, 0, 0, 0, 0, 0, 339, 340, - 341, 342, 343, 344, 0, 0, 0, 0, 0, 0, - 0, 0, 345, 0, 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, 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, 0, - 0, 0, 318, 319, 320, 321, 322, 323, 324, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 435, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 327, 328, 329, 330, 0, - 0, 0, 0, 0, 0, 0, 0, 436, 332, 333, - 334, 335, 336, 337, 338, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 339, 340, 341, 342, 343, 344, 0, 0, 0, 0, - 0, 0, 0, 0, 345, 0, 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, 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, 0, 0, 0, 318, 319, 320, 321, 322, 323, - 324, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 325, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 327, 328, 329, - 330, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 332, 333, 334, 335, 336, 337, 338, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 339, 340, 341, 342, 343, 344, 0, 0, - 0, 0, 0, 0, 0, 0, 345, 0, 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, 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, 0, 0, 0, 318, 319, 320, 321, - 322, 323, 324, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 706, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 327, - 328, 329, 330, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 332, 333, 334, 335, 336, 337, 338, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 339, 340, 341, 342, 343, 344, - 0, 0, 0, 0, 0, 0, 0, 0, 345, 0, - 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, 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, 0, 0, 0, 318, 319, - 320, 321, 322, 323, 324, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 819, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 327, 328, 329, 330, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 332, 333, 334, 335, 336, 337, - 338, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 339, 340, 341, 342, - 343, 344, 0, 0, 0, 0, 0, 0, 0, 0, - 345, 0, 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, 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, 0, 0, 0, - 318, 319, 320, 321, 322, 323, 324, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 854, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 327, 328, 329, 330, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 332, 333, 334, 335, - 336, 337, 338, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 339, 340, - 341, 342, 343, 344, 0, 0, 0, 0, 0, 0, - 0, 0, 345, 0, 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, 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, 0, - 0, 0, 318, 319, 320, 321, 322, 323, 324, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 327, 328, 329, 330, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 332, 333, - 334, 335, 336, 337, 338, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 339, 340, 341, 342, 343, 344, 0, 0, 0, 0, - 0, 0, 0, 0, 345, 0, 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, 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, 0, 0, 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, - 0, 0, 0, 0, 0, 0, 321, 0, 0, 0, - 0, 0, 499, 500, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 501, 502, 0, 0, 0, 636, 774, 0, 0, - 0, 0, 0, 503, 504, 505, 506, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 507, 508, 509, 510, 511, 332, - 0, 0, 0, 0, 337, 338, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 512, 513, 514, - 515, 516, 517, 518, 519, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 358, - 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, 0, 0, 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, 0, 0, 0, 0, 0, 0, 321, - 0, 0, 0, 0, 0, 499, 500, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 501, 502, 0, 0, 0, 636, - 885, 0, 0, 0, 0, 0, 503, 504, 505, 506, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 507, 508, 509, - 510, 511, 332, 0, 0, 0, 0, 337, 338, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 512, 513, 514, 515, 516, 517, 518, 519, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 358, 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, - 0, 0, 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, 0, 0, 0, 0, - 0, 0, 321, 0, 0, 0, 0, 0, 499, 500, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 501, 502, 0, - 0, 575, 0, 0, 0, 0, 0, 0, 0, 503, - 504, 505, 506, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 507, 508, 509, 510, 511, 332, 0, 0, 0, 0, - 337, 338, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 512, 513, 514, 515, 516, 517, 518, - 519, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 358, 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, 0, 0, 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, 0, - 0, 0, 0, 0, 0, 321, 0, 0, 0, 0, - 0, 499, 500, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 501, 502, 0, 0, 0, 636, 0, 0, 0, 0, - 0, 0, 503, 504, 505, 506, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 507, 508, 509, 510, 511, 332, 0, - 0, 0, 0, 337, 338, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 512, 513, 514, 515, - 516, 517, 518, 519, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 358, 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, 0, 0, 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, 0, 0, 0, 0, 0, 0, 321, 0, - 0, 0, 0, 0, 499, 500, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 501, 502, 0, 0, 733, 0, 0, - 0, 0, 0, 0, 0, 503, 504, 505, 506, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 507, 508, 509, 510, - 511, 332, 0, 0, 0, 0, 337, 338, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 512, - 513, 514, 515, 516, 517, 518, 519, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 358, 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, 0, - 0, 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, 0, 0, 0, 0, 0, - 0, 321, 0, 0, 0, 0, 0, 499, 500, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 501, 502, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 744, 503, 504, - 505, 506, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 507, - 508, 509, 510, 511, 332, 0, 0, 0, 0, 337, - 338, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 512, 513, 514, 515, 516, 517, 518, 519, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 358, 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, 0, 0, 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, 0, 0, - 0, 0, 0, 0, 321, 0, 0, 0, 0, 0, - 499, 500, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 501, - 502, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 503, 504, 505, 506, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 507, 508, 509, 510, 511, 332, 0, 0, - 0, 0, 337, 338, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 512, 513, 514, 515, 516, - 517, 518, 519, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 358, 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, 0, 0, 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, 0, 0, 0, 0, 0, 0, 321, 0, 0, - 0, 0, 0, 499, 500, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 501, 502, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 503, 504, 505, 506, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 507, 508, 509, 510, 511, - 332, 0, 0, 0, 0, 337, 654, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 512, 513, - 514, 515, 516, 517, 518, 519, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 358, 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, 0, 0, - 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, 0, 0, 0, 0, 0, 0, - 321, 0, 0, 0, 0, 0, 499, 500, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 501, 502, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 503, 504, 505, - 506, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 507, 508, - 509, 510, 694, 332, 0, 0, 0, 0, 337, 338, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 512, 513, 514, 515, 516, 517, 518, 519, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 358, 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, 0, 0, 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, 0, 0, 0, - 0, 0, 0, 321, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 332, 0, 0, 0, - 0, 337, 338 -}; - -static const yytype_int16 yycheck[] = -{ - 0, 382, 0, 493, 622, 502, 401, 401, 481, 0, - 434, 406, 542, 0, 0, 736, 440, 634, 567, 636, - 401, 390, 639, 413, 569, 406, 348, 547, 558, 348, - 359, 385, 552, 331, 332, 336, 353, 349, 528, 348, - 898, 561, 351, 351, 348, 426, 356, 905, 350, 352, - 570, 359, 351, 356, 356, 409, 385, 915, 368, 358, - 382, 430, 381, 382, 383, 384, 490, 491, 385, 367, - 368, 372, 351, 382, 547, 349, 351, 446, 382, 552, - 359, 329, 330, 358, 349, 558, 351, 351, 561, 374, - 375, 376, 473, 358, 358, 640, 353, 570, 361, 356, - 363, 349, 359, 351, 601, 349, 603, 355, 408, 409, - 410, 411, 412, 413, 414, 350, 589, 719, 720, 721, - 722, 356, 740, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 350, 350, 356, 350, 349, 359, 356, - 356, 349, 356, 358, 634, 350, 636, 350, 349, 639, - 540, 356, 649, 356, 540, 350, 773, 351, 350, 708, - 546, 356, 548, 653, 356, 551, 556, 553, 349, 555, - 556, 350, 350, 350, 560, 350, 350, 356, 356, 356, - 349, 356, 356, 350, 350, 350, 567, 350, 569, 356, - 356, 356, 350, 356, 350, 350, 565, 350, 919, 350, - 356, 356, 350, 356, 350, 356, 350, 350, 356, 350, - 356, 356, 356, 356, 352, 356, 352, 349, 356, 356, - 356, 385, 359, 841, 381, 382, 383, 384, 382, 778, - 439, 385, 382, 327, 328, 385, 853, 632, 632, 356, - 382, 356, 359, 385, 359, 742, 354, 382, 356, 746, - 385, 632, 382, 382, 382, 385, 385, 385, 382, 640, - 382, 385, 382, 385, 382, 385, 382, 385, 356, 385, - 356, 359, 481, 359, 764, 765, 349, 797, 798, 703, - 810, 333, 334, 773, 804, 805, 364, 365, 366, 359, - 499, 500, 909, 356, 357, 356, 357, 715, 716, 367, - 717, 718, 723, 724, 359, 385, 385, 925, 353, 385, - 353, 351, 351, 385, 385, 350, 385, 359, 349, 356, - 358, 350, 531, 356, 797, 798, 358, 708, 356, 356, - 356, 804, 805, 356, 356, 356, 356, 810, 547, 812, - 356, 356, 839, 552, 358, 842, 359, 350, 349, 558, - 349, 385, 561, 371, 351, 385, 351, 369, 348, 352, - 385, 570, 370, 853, 335, 337, 385, 352, 349, 349, - 354, 359, 349, 349, 385, 349, 359, 359, 357, 385, - 589, 359, 382, 349, 359, 882, 359, 350, 356, 359, - 390, 382, 356, 358, 356, 350, 350, 778, 398, 390, - 398, 401, 899, 352, 352, 895, 406, 398, 406, 356, - 401, 398, 398, 348, 348, 406, 416, 914, 354, 909, - 406, 382, 350, 349, 393, 385, 426, 425, 353, 358, - 430, 350, 359, 353, 725, 426, 353, 359, 397, 430, - 354, 727, 726, 730, 331, 728, 446, 842, 729, 658, - 702, 572, 817, 844, 904, 446, 915, 844, 916, 632, - 882, 842, 632, 430, 632, 398, 563, 424, 426, 795, - 793, 798, 802, 473, 430, 800, 808, 805, 812, 810, - -1, -1, 473, -1, 484, -1, -1, 882, -1, -1, - -1, -1, -1, 484, -1, -1, -1, -1, -1, -1, - -1, 882, -1, 712, 713, 714, 715, 716, 717, 718, - 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, - 729, 730, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 536, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 565, -1, 567, -1, 569, - -1, -1, -1, -1, 565, -1, 567, -1, 569, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 797, 798, - -1, -1, -1, -1, -1, 804, 805, -1, -1, -1, - -1, 810, -1, 812, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 622, -1, -1, -1, -1, -1, -1, -1, - -1, 622, 632, -1, -1, -1, -1, -1, -1, -1, - 640, 632, -1, -1, -1, -1, -1, -1, -1, 640, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 708, -1, - -1, -1, -1, -1, -1, -1, -1, 708, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 736, -1, -1, -1, - 740, -1, -1, -1, -1, 736, -1, -1, -1, 740, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 778, -1, - -1, -1, -1, -1, -1, -1, -1, 778, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 841, 842, -1, 844, -1, 844, -1, -1, -1, - 841, 842, -1, 844, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 882, -1, -1, -1, -1, -1, -1, -1, - -1, 882, -1, -1, -1, -1, -1, -1, 898, -1, - -1, -1, -1, -1, -1, 905, -1, 898, -1, -1, - -1, -1, -1, -1, 905, 915, -1, -1, -1, 919, - -1, -1, -1, -1, 915, 925, -1, -1, 919, -1, - -1, -1, 0, -1, 925, 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, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 351, -1, -1, -1, -1, -1, -1, - -1, 359, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 373, 374, 375, 376, 377, - -1, -1, -1, -1, -1, -1, -1, -1, 386, 387, - 388, 389, 390, 391, 392, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 408, 409, 410, 411, 412, 413, -1, -1, -1, -1, - -1, -1, -1, -1, 422, -1, 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, 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, -1, -1, 329, 330, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 348, 349, -1, 351, -1, 353, 354, -1, - -1, -1, -1, 359, 360, 361, 362, 363, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 373, 374, 375, - 376, 377, -1, -1, -1, 381, 382, 383, 384, 385, - 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, - 396, -1, 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, 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, -1, -1, 329, 330, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 348, 349, -1, 351, -1, 353, - 354, -1, -1, -1, -1, 359, 360, 361, 362, 363, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 373, - 374, 375, 376, 377, -1, -1, -1, 381, 382, 383, - 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, -1, 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, 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, -1, -1, 329, 330, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 348, 349, -1, 351, - -1, 353, -1, -1, -1, -1, -1, 359, 360, 361, - 362, 363, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 373, 374, 375, 376, 377, -1, -1, -1, 381, - 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, - 392, 393, 394, 395, 396, -1, 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, 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, -1, -1, 329, - 330, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 348, 349, - -1, 351, -1, 353, -1, -1, -1, -1, -1, 359, - 360, 361, 362, 363, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 373, 374, 375, 376, 377, -1, -1, - -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, -1, 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, 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, -1, - -1, 329, 330, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 348, 349, -1, 351, -1, -1, -1, -1, -1, -1, - -1, 359, 360, 361, 362, 363, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 373, 374, 375, 376, 377, - -1, -1, -1, 381, 382, 383, 384, 385, 386, 387, - 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, - 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, 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, -1, -1, 329, 330, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 348, 349, -1, 351, -1, -1, -1, -1, - -1, -1, -1, 359, 360, 361, 362, 363, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 373, 374, 375, - 376, 377, -1, -1, -1, 381, 382, 383, 384, 385, - 386, 387, 388, 389, 390, 391, 392, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, -1, 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, 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, -1, -1, -1, 320, 321, 322, 323, - 324, 325, 326, -1, -1, 329, 330, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 348, 349, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 360, 361, 362, 363, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 373, - 374, 375, 376, -1, -1, -1, -1, 381, 382, 383, - 384, 385, 386, 387, 388, 389, 390, 391, 392, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, -1, - 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, 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, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 351, - -1, -1, -1, -1, -1, -1, -1, 359, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 373, 374, 375, 376, 377, -1, -1, -1, -1, - -1, -1, -1, -1, 386, 387, 388, 389, 390, 391, - 392, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 408, 409, 410, 411, - 412, 413, -1, -1, -1, -1, -1, -1, -1, -1, - 422, -1, 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, 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, -1, -1, -1, - 320, 321, 322, 323, 324, 325, 326, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 373, 374, 375, 376, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 386, 387, 388, 389, - 390, 391, 392, 393, -1, -1, 396, -1, 398, 399, - -1, -1, 402, -1, -1, -1, -1, -1, 408, 409, - 410, 411, 412, 413, -1, -1, -1, -1, -1, -1, - -1, -1, 422, -1, 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, 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, -1, - -1, -1, 320, 321, 322, 323, 324, 325, 326, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 359, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 373, 374, 375, 376, -1, - -1, -1, -1, -1, -1, -1, -1, 385, 386, 387, - 388, 389, 390, 391, 392, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 408, 409, 410, 411, 412, 413, -1, -1, -1, -1, - -1, -1, -1, -1, 422, -1, 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, 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, -1, -1, -1, 320, 321, 322, 323, 324, 325, - 326, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 351, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 373, 374, 375, - 376, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 386, 387, 388, 389, 390, 391, 392, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 408, 409, 410, 411, 412, 413, -1, -1, - -1, -1, -1, -1, -1, -1, 422, -1, 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, 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, -1, -1, -1, 320, 321, 322, 323, - 324, 325, 326, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 354, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 373, - 374, 375, 376, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 386, 387, 388, 389, 390, 391, 392, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 408, 409, 410, 411, 412, 413, - -1, -1, -1, -1, -1, -1, -1, -1, 422, -1, - 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, 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, -1, -1, -1, 320, 321, - 322, 323, 324, 325, 326, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 354, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 373, 374, 375, 376, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 386, 387, 388, 389, 390, 391, - 392, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 408, 409, 410, 411, - 412, 413, -1, -1, -1, -1, -1, -1, -1, -1, - 422, -1, 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, 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, -1, -1, -1, - 320, 321, 322, 323, 324, 325, 326, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 354, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 373, 374, 375, 376, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 386, 387, 388, 389, - 390, 391, 392, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 408, 409, - 410, 411, 412, 413, -1, -1, -1, -1, -1, -1, - -1, -1, 422, -1, 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, 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, -1, - -1, -1, 320, 321, 322, 323, 324, 325, 326, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 373, 374, 375, 376, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 386, 387, - 388, 389, 390, 391, 392, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 408, 409, 410, 411, 412, 413, -1, -1, -1, -1, - -1, -1, -1, -1, 422, -1, 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, 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, -1, -1, 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, - -1, -1, -1, -1, -1, -1, 323, -1, -1, -1, - -1, -1, 329, 330, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 348, 349, -1, -1, -1, 353, 354, -1, -1, - -1, -1, -1, 360, 361, 362, 363, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 381, 382, 383, 384, 385, 386, - -1, -1, -1, -1, 391, 392, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 414, 415, 416, - 417, 418, 419, 420, 421, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 436, - 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, -1, -1, 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, -1, -1, -1, -1, -1, -1, 323, - -1, -1, -1, -1, -1, 329, 330, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 348, 349, -1, -1, -1, 353, - 354, -1, -1, -1, -1, -1, 360, 361, 362, 363, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 381, 382, 383, - 384, 385, 386, -1, -1, -1, -1, 391, 392, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 414, 415, 416, 417, 418, 419, 420, 421, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 436, 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, - -1, -1, 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, -1, -1, -1, -1, - -1, -1, 323, -1, -1, -1, -1, -1, 329, 330, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 348, 349, -1, - -1, 352, -1, -1, -1, -1, -1, -1, -1, 360, - 361, 362, 363, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 381, 382, 383, 384, 385, 386, -1, -1, -1, -1, - 391, 392, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 414, 415, 416, 417, 418, 419, 420, - 421, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 436, 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, -1, -1, 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, -1, - -1, -1, -1, -1, -1, 323, -1, -1, -1, -1, - -1, 329, 330, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 348, 349, -1, -1, -1, 353, -1, -1, -1, -1, - -1, -1, 360, 361, 362, 363, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 381, 382, 383, 384, 385, 386, -1, - -1, -1, -1, 391, 392, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 414, 415, 416, 417, - 418, 419, 420, 421, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 436, 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, -1, -1, 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, -1, -1, -1, -1, -1, -1, 323, -1, - -1, -1, -1, -1, 329, 330, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 348, 349, -1, -1, 352, -1, -1, - -1, -1, -1, -1, -1, 360, 361, 362, 363, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 381, 382, 383, 384, - 385, 386, -1, -1, -1, -1, 391, 392, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 414, - 415, 416, 417, 418, 419, 420, 421, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 436, 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, -1, - -1, 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, -1, -1, -1, -1, -1, - -1, 323, -1, -1, -1, -1, -1, 329, 330, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 348, 349, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 359, 360, 361, - 362, 363, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 381, - 382, 383, 384, 385, 386, -1, -1, -1, -1, 391, - 392, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 414, 415, 416, 417, 418, 419, 420, 421, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 436, 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, -1, -1, 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, -1, -1, - -1, -1, -1, -1, 323, -1, -1, -1, -1, -1, - 329, 330, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 348, - 349, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 360, 361, 362, 363, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 381, 382, 383, 384, 385, 386, -1, -1, - -1, -1, 391, 392, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 414, 415, 416, 417, 418, - 419, 420, 421, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 436, 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, -1, -1, 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, -1, -1, -1, -1, -1, -1, 323, -1, -1, - -1, -1, -1, 329, 330, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 348, 349, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 360, 361, 362, 363, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 381, 382, 383, 384, 385, - 386, -1, -1, -1, -1, 391, 392, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 414, 415, - 416, 417, 418, 419, 420, 421, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 436, 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, -1, -1, - 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, -1, -1, -1, -1, -1, -1, - 323, -1, -1, -1, -1, -1, 329, 330, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 348, 349, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 360, 361, 362, - 363, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 381, 382, - 383, 384, 385, 386, -1, -1, -1, -1, 391, 392, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 414, 415, 416, 417, 418, 419, 420, 421, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 436, 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, -1, -1, 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, -1, -1, -1, - -1, -1, -1, 323, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 386, -1, -1, -1, - -1, 391, 392 -}; - - /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ -static const yytype_int16 yystos[] = -{ - 0, 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, 351, 359, 373, 374, 375, - 376, 377, 386, 387, 388, 389, 390, 391, 392, 408, - 409, 410, 411, 412, 413, 422, 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, 486, 487, 490, - 491, 492, 493, 497, 498, 499, 500, 501, 502, 505, - 506, 507, 508, 509, 511, 516, 517, 518, 559, 560, - 561, 563, 570, 574, 575, 580, 583, 349, 349, 349, - 349, 349, 349, 349, 349, 351, 517, 353, 385, 349, - 349, 359, 385, 359, 562, 350, 356, 494, 495, 496, - 506, 511, 356, 359, 385, 359, 385, 507, 511, 367, - 513, 514, 0, 560, 491, 499, 506, 359, 490, 385, - 566, 567, 584, 585, 382, 385, 566, 382, 566, 382, - 566, 382, 566, 382, 566, 566, 584, 382, 566, 385, - 564, 565, 511, 520, 353, 385, 409, 503, 504, 385, - 510, 351, 359, 512, 353, 538, 563, 495, 494, 496, - 385, 385, 349, 358, 512, 353, 356, 359, 489, 329, - 330, 348, 349, 360, 361, 362, 363, 381, 382, 383, - 384, 385, 414, 415, 416, 417, 418, 419, 420, 421, - 456, 457, 458, 460, 461, 462, 463, 464, 465, 466, - 467, 468, 509, 511, 515, 512, 350, 385, 359, 358, - 356, 350, 356, 350, 356, 358, 356, 356, 356, 350, - 356, 356, 356, 356, 356, 356, 356, 350, 356, 350, - 356, 349, 352, 356, 359, 506, 511, 521, 522, 519, - 358, 350, 356, 350, 356, 352, 467, 469, 470, 471, - 472, 473, 474, 475, 476, 477, 478, 479, 480, 351, - 359, 353, 354, 359, 393, 394, 395, 396, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 423, 467, - 480, 482, 484, 486, 490, 509, 511, 527, 528, 529, - 530, 531, 539, 540, 541, 542, 545, 546, 549, 550, - 551, 558, 563, 512, 358, 512, 353, 482, 525, 358, - 488, 385, 356, 359, 467, 467, 484, 329, 330, 351, - 355, 350, 350, 356, 392, 482, 349, 467, 356, 368, - 563, 348, 351, 382, 567, 584, 385, 585, 348, 381, - 382, 383, 384, 571, 572, 382, 480, 485, 573, 382, - 381, 382, 383, 384, 576, 577, 382, 485, 578, 382, - 348, 579, 382, 584, 385, 485, 581, 582, 382, 485, - 352, 565, 511, 385, 523, 524, 354, 522, 521, 485, - 504, 385, 364, 365, 366, 361, 363, 327, 328, 331, - 332, 367, 368, 333, 334, 371, 370, 369, 335, 337, - 336, 372, 352, 352, 480, 354, 532, 349, 359, 359, - 553, 349, 349, 359, 359, 484, 349, 484, 357, 359, - 359, 359, 359, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 358, 483, 356, 359, 354, 528, 542, - 546, 551, 525, 358, 354, 525, 526, 525, 521, 385, - 350, 459, 484, 385, 482, 467, 348, 382, 568, 569, - 350, 358, 350, 356, 350, 356, 350, 356, 356, 350, - 356, 350, 356, 350, 356, 356, 350, 356, 356, 350, - 356, 350, 356, 350, 350, 523, 512, 356, 359, 354, - 467, 467, 467, 469, 469, 470, 470, 471, 471, 471, - 471, 472, 472, 473, 474, 475, 476, 477, 478, 481, - 352, 539, 552, 528, 554, 484, 359, 484, 357, 482, - 482, 525, 354, 356, 354, 352, 352, 356, 352, 356, - 572, 571, 485, 573, 577, 576, 485, 578, 348, 579, - 581, 582, 359, 524, 484, 533, 484, 499, 544, 393, - 527, 540, 555, 350, 350, 354, 525, 348, 382, 350, - 350, 350, 350, 350, 350, 357, 354, 385, 350, 349, - 544, 556, 557, 535, 536, 537, 543, 547, 482, 358, - 529, 534, 538, 484, 359, 350, 397, 531, 529, 353, - 525, 350, 484, 534, 535, 539, 548, 359, 354 -}; - - /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_int16 yyr1[] = -{ - 0, 455, 456, 457, 457, 457, 457, 457, 457, 457, - 457, 457, 457, 457, 457, 457, 457, 457, 458, 458, - 458, 458, 458, 458, 459, 460, 461, 462, 462, 463, - 463, 464, 464, 465, 466, 466, 466, 467, 467, 467, - 467, 468, 468, 468, 468, 469, 469, 469, 469, 470, - 470, 470, 471, 471, 471, 472, 472, 472, 472, 472, - 473, 473, 473, 474, 474, 475, 475, 476, 476, 477, - 477, 478, 478, 479, 479, 480, 481, 480, 482, 482, - 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, - 483, 484, 484, 485, 486, 486, 486, 486, 486, 486, - 486, 486, 486, 486, 486, 488, 487, 489, 489, 490, - 490, 490, 490, 491, 491, 492, 492, 493, 494, 494, - 495, 495, 495, 495, 496, 497, 497, 497, 497, 497, - 498, 498, 498, 498, 498, 499, 499, 500, 501, 501, - 501, 501, 501, 501, 501, 501, 502, 503, 503, 504, - 504, 504, 505, 506, 506, 507, 507, 507, 507, 507, - 507, 507, 507, 507, 507, 507, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 509, 510, 510, 511, 511, 512, 512, 512, 512, - 513, 513, 514, 515, 515, 516, 516, 516, 516, 516, - 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, - 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, - 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, - 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, - 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, - 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, - 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, - 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, - 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, - 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, - 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, - 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, - 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, - 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, - 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, - 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, - 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, - 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, - 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, - 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, - 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, - 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, - 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, - 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, - 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, - 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, - 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, - 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, - 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, - 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, - 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, - 517, 517, 517, 519, 518, 520, 518, 521, 521, 522, - 522, 523, 523, 524, 524, 525, 525, 525, 525, 526, - 526, 527, 528, 528, 529, 529, 529, 529, 529, 529, - 529, 529, 530, 531, 532, 533, 531, 534, 534, 536, - 535, 537, 535, 538, 538, 539, 539, 540, 540, 541, - 541, 542, 543, 543, 544, 544, 545, 545, 547, 546, - 548, 548, 549, 549, 550, 550, 552, 551, 553, 551, - 554, 551, 555, 555, 556, 556, 557, 557, 558, 558, - 558, 558, 558, 558, 558, 558, 559, 559, 560, 560, - 560, 562, 561, 563, 564, 564, 565, 565, 566, 566, - 567, 567, 568, 568, 569, 569, 570, 570, 570, 570, - 570, 570, 571, 571, 572, 572, 572, 572, 572, 573, - 573, 574, 574, 575, 575, 575, 575, 575, 575, 575, - 575, 576, 576, 577, 577, 577, 577, 578, 578, 579, - 579, 580, 580, 580, 580, 581, 581, 582, 583, 583, - 584, 584, 585, 585 -}; - - /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ -static const yytype_int8 yyr2[] = -{ - 0, 2, 1, 1, 3, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 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, 3, 2, 2, 4, 2, - 3, 4, 2, 3, 4, 0, 6, 2, 3, 2, - 3, 3, 4, 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, 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, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 4, 1, 1, 3, 2, 3, 2, 3, 3, 4, - 1, 0, 3, 1, 3, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 2, 1, - 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 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, 2, 2, 2, 1, 2, 1, 1, - 1, 0, 3, 5, 1, 3, 1, 4, 1, 3, - 5, 5, 1, 3, 1, 3, 4, 6, 6, 8, - 6, 8, 1, 3, 1, 1, 1, 1, 1, 1, - 3, 4, 6, 4, 6, 6, 8, 6, 8, 6, - 8, 1, 3, 1, 1, 1, 1, 1, 3, 1, - 3, 6, 8, 4, 6, 1, 3, 1, 4, 6, - 1, 3, 3, 3 -}; - - -enum { YYENOMEM = -2 }; - -#define yyerrok (yyerrstatus = 0) -#define yyclearin (yychar = YYEMPTY) - -#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) - -/* Backward compatibility with an undocumented macro. - Use YYerror or YYUNDEF. */ -#define YYERRCODE YYUNDEF - - -/* 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, Kind, Value, Location) \ -do { \ - if (yydebug) \ - { \ - YYFPRINTF (stderr, "%s ", Title); \ - yy_symbol_print (stderr, \ - Kind, Value, pParseContext); \ - YYFPRINTF (stderr, "\n"); \ - } \ -} while (0) - - -/*-----------------------------------. -| Print this symbol's value on YYO. | -`-----------------------------------*/ - -static void -yy_symbol_value_print (FILE *yyo, - yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext) -{ - FILE *yyoutput = yyo; - YYUSE (yyoutput); - YYUSE (pParseContext); - if (!yyvaluep) - return; -# ifdef YYPRINT - if (yykind < YYNTOKENS) - YYPRINT (yyo, yytoknum[yykind], *yyvaluep); -# endif - YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YYUSE (yykind); - YY_IGNORE_MAYBE_UNINITIALIZED_END -} - - -/*---------------------------. -| Print this symbol on YYO. | -`---------------------------*/ - -static void -yy_symbol_print (FILE *yyo, - yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext) -{ - YYFPRINTF (yyo, "%s %s (", - yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind)); - - yy_symbol_value_print (yyo, yykind, yyvaluep, pParseContext); - YYFPRINTF (yyo, ")"); -} - -/*------------------------------------------------------------------. -| yy_stack_print -- Print the state stack from its BOTTOM up to its | -| TOP (included). | -`------------------------------------------------------------------*/ - -static void -yy_stack_print (yy_state_t *yybottom, yy_state_t *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 (yy_state_t *yyssp, YYSTYPE *yyvsp, - int yyrule, glslang::TParseContext* pParseContext) -{ - int yylno = yyrline[yyrule]; - int yynrhs = yyr2[yyrule]; - int yyi; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", - yyrule - 1, yylno); - /* The symbols being reduced. */ - for (yyi = 0; yyi < yynrhs; yyi++) - { - YYFPRINTF (stderr, " $%d = ", yyi + 1); - yy_symbol_print (stderr, - YY_ACCESSING_SYMBOL (+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) ((void) 0) -# define YY_SYMBOL_PRINT(Title, Kind, 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 - - -/* Context of a parse error. */ -typedef struct -{ - yy_state_t *yyssp; - yysymbol_kind_t yytoken; -} yypcontext_t; - -/* Put in YYARG at most YYARGN of the expected tokens given the - current YYCTX, and return the number of tokens stored in YYARG. If - YYARG is null, return the number of expected tokens (guaranteed to - be less than YYNTOKENS). Return YYENOMEM on memory exhaustion. - Return 0 if there are more than YYARGN expected tokens, yet fill - YYARG up to YYARGN. */ -static int -yypcontext_expected_tokens (const yypcontext_t *yyctx, - yysymbol_kind_t yyarg[], int yyargn) -{ - /* Actual size of YYARG. */ - int yycount = 0; - int yyn = yypact[+*yyctx->yyssp]; - 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 != YYSYMBOL_YYerror - && !yytable_value_is_error (yytable[yyx + yyn])) - { - if (!yyarg) - ++yycount; - else if (yycount == yyargn) - return 0; - else - yyarg[yycount++] = YY_CAST (yysymbol_kind_t, yyx); - } - } - if (yyarg && yycount == 0 && 0 < yyargn) - yyarg[0] = YYSYMBOL_YYEMPTY; - return yycount; -} - - - - -#ifndef yystrlen -# if defined __GLIBC__ && defined _STRING_H -# define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S))) -# else -/* Return the length of YYSTR. */ -static YYPTRDIFF_T -yystrlen (const char *yystr) -{ - YYPTRDIFF_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 YYPTRDIFF_T -yytnamerr (char *yyres, const char *yystr) -{ - if (*yystr == '"') - { - YYPTRDIFF_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; - else - goto append; - - append: - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; - - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } - do_not_strip_quotes: ; - } - - if (yyres) - return yystpcpy (yyres, yystr) - yyres; - else - return yystrlen (yystr); -} -#endif - - -static int -yy_syntax_error_arguments (const yypcontext_t *yyctx, - yysymbol_kind_t yyarg[], int yyargn) -{ - /* Actual size of YYARG. */ - 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 (yyctx->yytoken != YYSYMBOL_YYEMPTY) - { - int yyn; - if (yyarg) - yyarg[yycount] = yyctx->yytoken; - ++yycount; - yyn = yypcontext_expected_tokens (yyctx, - yyarg ? yyarg + 1 : yyarg, yyargn - 1); - if (yyn == YYENOMEM) - return YYENOMEM; - else - yycount += yyn; - } - return yycount; -} - -/* 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 YYENOMEM if the - required number of bytes is too large to store. */ -static int -yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg, - const yypcontext_t *yyctx) -{ - enum { YYARGS_MAX = 5 }; - /* Internationalized format string. */ - const char *yyformat = YY_NULLPTR; - /* Arguments of yyformat: reported tokens (one for the "unexpected", - one per "expected"). */ - yysymbol_kind_t yyarg[YYARGS_MAX]; - /* Cumulated lengths of YYARG. */ - YYPTRDIFF_T yysize = 0; - - /* Actual size of YYARG. */ - int yycount = yy_syntax_error_arguments (yyctx, yyarg, YYARGS_MAX); - if (yycount == YYENOMEM) - return YYENOMEM; - - switch (yycount) - { -#define YYCASE_(N, S) \ - case N: \ - yyformat = S; \ - break - default: /* Avoid compiler warnings. */ - 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_ - } - - /* Compute error message size. Don't count the "%s"s, but reserve - room for the terminator. */ - yysize = yystrlen (yyformat) - 2 * yycount + 1; - { - int yyi; - for (yyi = 0; yyi < yycount; ++yyi) - { - YYPTRDIFF_T yysize1 - = yysize + yytnamerr (YY_NULLPTR, yytname[yyarg[yyi]]); - if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) - yysize = yysize1; - else - return YYENOMEM; - } - } - - 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, yytname[yyarg[yyi++]]); - yyformat += 2; - } - else - { - ++yyp; - ++yyformat; - } - } - return 0; -} - - -/*-----------------------------------------------. -| Release the memory associated to this symbol. | -`-----------------------------------------------*/ - -static void -yydestruct (const char *yymsg, - yysymbol_kind_t yykind, YYSTYPE *yyvaluep, glslang::TParseContext* pParseContext) -{ - YYUSE (yyvaluep); - YYUSE (pParseContext); - if (!yymsg) - yymsg = "Deleting"; - YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp); - - YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YYUSE (yykind); - YY_IGNORE_MAYBE_UNINITIALIZED_END -} - - - - - - -/*----------. -| yyparse. | -`----------*/ - -int -yyparse (glslang::TParseContext* pParseContext) -{ -/* Lookahead token kind. */ -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 = 0; - - yy_state_fast_t yystate = 0; - /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus = 0; - - /* Refer to the stacks through separate pointers, to allow yyoverflow - to reallocate them elsewhere. */ - - /* Their size. */ - YYPTRDIFF_T yystacksize = YYINITDEPTH; - - /* The state stack: array, bottom, top. */ - yy_state_t yyssa[YYINITDEPTH]; - yy_state_t *yyss = yyssa; - yy_state_t *yyssp = yyss; - - /* The semantic value stack: array, bottom, top. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs = yyvsa; - YYSTYPE *yyvsp = yyvs; - - int yyn; - /* The return value of yyparse. */ - int yyresult; - /* Lookahead symbol kind. */ - yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; - /* The variables used to return semantic value and location from the - action routines. */ - YYSTYPE yyval; - - /* Buffer for error messages, and its allocated size. */ - char yymsgbuf[128]; - char *yymsg = yymsgbuf; - YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf; - -#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; - - YYDPRINTF ((stderr, "Starting parse\n")); - - 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 -- set current state (the top of the stack) to yystate. | -`--------------------------------------------------------------------*/ -yysetstate: - YYDPRINTF ((stderr, "Entering state %d\n", yystate)); - YY_ASSERT (0 <= yystate && yystate < YYNSTATES); - YY_IGNORE_USELESS_CAST_BEGIN - *yyssp = YY_CAST (yy_state_t, yystate); - YY_IGNORE_USELESS_CAST_END - YY_STACK_PRINT (yyss, yyssp); - - if (yyss + yystacksize - 1 <= yyssp) -#if !defined yyoverflow && !defined YYSTACK_RELOCATE - goto yyexhaustedlab; -#else - { - /* Get the current used size of the three stacks, in elements. */ - YYPTRDIFF_T yysize = yyssp - yyss + 1; - -# if defined 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. */ - yy_state_t *yyss1 = yyss; - YYSTYPE *yyvs1 = yyvs; - - /* 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 * YYSIZEOF (*yyssp), - &yyvs1, yysize * YYSIZEOF (*yyvsp), - &yystacksize); - yyss = yyss1; - yyvs = yyvs1; - } -# else /* defined YYSTACK_RELOCATE */ - /* Extend the stack our own way. */ - if (YYMAXDEPTH <= yystacksize) - goto yyexhaustedlab; - yystacksize *= 2; - if (YYMAXDEPTH < yystacksize) - yystacksize = YYMAXDEPTH; - - { - yy_state_t *yyss1 = yyss; - union yyalloc *yyptr = - YY_CAST (union yyalloc *, - YYSTACK_ALLOC (YY_CAST (YYSIZE_T, 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 - - yyssp = yyss + yysize - 1; - yyvsp = yyvs + yysize - 1; - - YY_IGNORE_USELESS_CAST_BEGIN - YYDPRINTF ((stderr, "Stack size increased to %ld\n", - YY_CAST (long, yystacksize))); - YY_IGNORE_USELESS_CAST_END - - if (yyss + yystacksize - 1 <= yyssp) - YYABORT; - } -#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ - - 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 empty, or end-of-input, or a valid lookahead. */ - if (yychar == YYEMPTY) - { - YYDPRINTF ((stderr, "Reading a token\n")); - yychar = yylex (&yylval, parseContext); - } - - if (yychar <= YYEOF) - { - yychar = YYEOF; - yytoken = YYSYMBOL_YYEOF; - YYDPRINTF ((stderr, "Now at end of input.\n")); - } - else if (yychar == YYerror) - { - /* The scanner already issued an error message, process directly - to error recovery. But do not keep the error token as - lookahead, it is too special and may lead us to an endless - loop in error recovery. */ - yychar = YYUNDEF; - yytoken = YYSYMBOL_YYerror; - goto yyerrlab1; - } - 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); - yystate = yyn; - YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - *++yyvsp = yylval; - YY_IGNORE_MAYBE_UNINITIALIZED_END - - /* Discard the shifted token. */ - yychar = YYEMPTY; - 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: /* variable_identifier: IDENTIFIER */ -#line 392 "MachineIndependent/glslang.y" - { - (yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[0].lex).loc, (yyvsp[0].lex).symbol, (yyvsp[0].lex).string); - } -#line 5181 "MachineIndependent/glslang_tab.cpp" - break; - - case 3: /* primary_expression: variable_identifier */ -#line 398 "MachineIndependent/glslang.y" - { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); - } -#line 5189 "MachineIndependent/glslang_tab.cpp" - break; - - case 4: /* primary_expression: LEFT_PAREN expression RIGHT_PAREN */ -#line 401 "MachineIndependent/glslang.y" - { - (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode); - if ((yyval.interm.intermTypedNode)->getAsConstantUnion()) - (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression(); - } -#line 5199 "MachineIndependent/glslang_tab.cpp" - break; - - case 5: /* primary_expression: FLOATCONSTANT */ -#line 406 "MachineIndependent/glslang.y" - { - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true); - } -#line 5207 "MachineIndependent/glslang_tab.cpp" - break; - - case 6: /* primary_expression: INTCONSTANT */ -#line 409 "MachineIndependent/glslang.y" - { - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true); - } -#line 5215 "MachineIndependent/glslang_tab.cpp" - break; - - case 7: /* primary_expression: UINTCONSTANT */ -#line 412 "MachineIndependent/glslang.y" - { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned literal"); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true); - } -#line 5224 "MachineIndependent/glslang_tab.cpp" - break; - - case 8: /* primary_expression: BOOLCONSTANT */ -#line 416 "MachineIndependent/glslang.y" - { - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true); - } -#line 5232 "MachineIndependent/glslang_tab.cpp" - break; - - case 9: /* primary_expression: STRING_LITERAL */ -#line 420 "MachineIndependent/glslang.y" - { - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true); - } -#line 5240 "MachineIndependent/glslang_tab.cpp" - break; - - case 10: /* primary_expression: INT32CONSTANT */ -#line 423 "MachineIndependent/glslang.y" - { - 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 5249 "MachineIndependent/glslang_tab.cpp" - break; - - case 11: /* primary_expression: UINT32CONSTANT */ -#line 427 "MachineIndependent/glslang.y" - { - 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 5258 "MachineIndependent/glslang_tab.cpp" - break; - - case 12: /* primary_expression: INT64CONSTANT */ -#line 431 "MachineIndependent/glslang.y" - { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer literal"); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i64, (yyvsp[0].lex).loc, true); - } -#line 5267 "MachineIndependent/glslang_tab.cpp" - break; - - case 13: /* primary_expression: UINT64CONSTANT */ -#line 435 "MachineIndependent/glslang.y" - { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer literal"); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u64, (yyvsp[0].lex).loc, true); - } -#line 5276 "MachineIndependent/glslang_tab.cpp" - break; - - case 14: /* primary_expression: INT16CONSTANT */ -#line 439 "MachineIndependent/glslang.y" - { - 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 5285 "MachineIndependent/glslang_tab.cpp" - break; - - case 15: /* primary_expression: UINT16CONSTANT */ -#line 443 "MachineIndependent/glslang.y" - { - 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 5294 "MachineIndependent/glslang_tab.cpp" - break; - - case 16: /* primary_expression: DOUBLECONSTANT */ -#line 447 "MachineIndependent/glslang.y" - { - parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double literal"); - if (! parseContext.symbolTable.atBuiltInLevel()) - 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 5305 "MachineIndependent/glslang_tab.cpp" - break; - - case 17: /* primary_expression: FLOAT16CONSTANT */ -#line 453 "MachineIndependent/glslang.y" - { - 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 5314 "MachineIndependent/glslang_tab.cpp" - break; - - case 18: /* postfix_expression: primary_expression */ -#line 461 "MachineIndependent/glslang.y" - { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); - } -#line 5322 "MachineIndependent/glslang_tab.cpp" - break; - - case 19: /* postfix_expression: postfix_expression LEFT_BRACKET integer_expression RIGHT_BRACKET */ -#line 464 "MachineIndependent/glslang.y" - { - (yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[-2].lex).loc, (yyvsp[-3].interm.intermTypedNode), (yyvsp[-1].interm.intermTypedNode)); - } -#line 5330 "MachineIndependent/glslang_tab.cpp" - break; - - case 20: /* postfix_expression: function_call */ -#line 467 "MachineIndependent/glslang.y" - { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); - } -#line 5338 "MachineIndependent/glslang_tab.cpp" - break; - - case 21: /* postfix_expression: postfix_expression DOT IDENTIFIER */ -#line 470 "MachineIndependent/glslang.y" - { - (yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode), *(yyvsp[0].lex).string); - } -#line 5346 "MachineIndependent/glslang_tab.cpp" - break; - - case 22: /* postfix_expression: postfix_expression INC_OP */ -#line 473 "MachineIndependent/glslang.y" - { - parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode)); - parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "++", (yyvsp[-1].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "++", EOpPostIncrement, (yyvsp[-1].interm.intermTypedNode)); - } -#line 5356 "MachineIndependent/glslang_tab.cpp" - break; - - case 23: /* postfix_expression: postfix_expression DEC_OP */ -#line 478 "MachineIndependent/glslang.y" - { - parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode)); - parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "--", (yyvsp[-1].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "--", EOpPostDecrement, (yyvsp[-1].interm.intermTypedNode)); - } -#line 5366 "MachineIndependent/glslang_tab.cpp" - break; - - case 24: /* integer_expression: expression */ -#line 486 "MachineIndependent/glslang.y" - { - parseContext.integerCheck((yyvsp[0].interm.intermTypedNode), "[]"); - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); - } -#line 5375 "MachineIndependent/glslang_tab.cpp" - break; - - case 25: /* function_call: function_call_or_method */ -#line 493 "MachineIndependent/glslang.y" - { - (yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[0].interm).loc, (yyvsp[0].interm).function, (yyvsp[0].interm).intermNode); - delete (yyvsp[0].interm).function; - } -#line 5384 "MachineIndependent/glslang_tab.cpp" - break; - - case 26: /* function_call_or_method: function_call_generic */ -#line 500 "MachineIndependent/glslang.y" - { - (yyval.interm) = (yyvsp[0].interm); - } -#line 5392 "MachineIndependent/glslang_tab.cpp" - break; - - case 27: /* function_call_generic: function_call_header_with_parameters RIGHT_PAREN */ -#line 506 "MachineIndependent/glslang.y" - { - (yyval.interm) = (yyvsp[-1].interm); - (yyval.interm).loc = (yyvsp[0].lex).loc; - } -#line 5401 "MachineIndependent/glslang_tab.cpp" - break; - - case 28: /* function_call_generic: function_call_header_no_parameters RIGHT_PAREN */ -#line 510 "MachineIndependent/glslang.y" - { - (yyval.interm) = (yyvsp[-1].interm); - (yyval.interm).loc = (yyvsp[0].lex).loc; - } -#line 5410 "MachineIndependent/glslang_tab.cpp" - break; - - case 29: /* function_call_header_no_parameters: function_call_header VOID */ -#line 517 "MachineIndependent/glslang.y" - { - (yyval.interm) = (yyvsp[-1].interm); - } -#line 5418 "MachineIndependent/glslang_tab.cpp" - break; - - case 30: /* function_call_header_no_parameters: function_call_header */ -#line 520 "MachineIndependent/glslang.y" - { - (yyval.interm) = (yyvsp[0].interm); - } -#line 5426 "MachineIndependent/glslang_tab.cpp" - break; - - case 31: /* function_call_header_with_parameters: function_call_header assignment_expression */ -#line 526 "MachineIndependent/glslang.y" - { - TParameter param = { 0, new TType }; - param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType()); - (yyvsp[-1].interm).function->addParameter(param); - (yyval.interm).function = (yyvsp[-1].interm).function; - (yyval.interm).intermNode = (yyvsp[0].interm.intermTypedNode); - } -#line 5438 "MachineIndependent/glslang_tab.cpp" - break; - - case 32: /* function_call_header_with_parameters: function_call_header_with_parameters COMMA assignment_expression */ -#line 533 "MachineIndependent/glslang.y" - { - TParameter param = { 0, new TType }; - param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType()); - (yyvsp[-2].interm).function->addParameter(param); - (yyval.interm).function = (yyvsp[-2].interm).function; - (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc); - } -#line 5450 "MachineIndependent/glslang_tab.cpp" - break; - - case 33: /* function_call_header: function_identifier LEFT_PAREN */ -#line 543 "MachineIndependent/glslang.y" - { - (yyval.interm) = (yyvsp[-1].interm); - } -#line 5458 "MachineIndependent/glslang_tab.cpp" - break; - - case 34: /* function_identifier: type_specifier */ -#line 551 "MachineIndependent/glslang.y" - { - // Constructor - (yyval.interm).intermNode = 0; - (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type)); - } -#line 5468 "MachineIndependent/glslang_tab.cpp" - break; - - case 35: /* function_identifier: postfix_expression */ -#line 556 "MachineIndependent/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[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 = NewPoolTString(""); - (yyval.interm).function = new TFunction(empty, TType(EbtVoid), EOpNull); - } - } -#line 5500 "MachineIndependent/glslang_tab.cpp" - break; - - case 36: /* function_identifier: non_uniform_qualifier */ -#line 584 "MachineIndependent/glslang.y" - { - // Constructor - (yyval.interm).intermNode = 0; - (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type)); - } -#line 5510 "MachineIndependent/glslang_tab.cpp" - break; - - case 37: /* unary_expression: postfix_expression */ -#line 593 "MachineIndependent/glslang.y" - { - parseContext.variableCheck((yyvsp[0].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); - if (TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode()) - parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), ""); - } -#line 5521 "MachineIndependent/glslang_tab.cpp" - break; - - case 38: /* unary_expression: INC_OP unary_expression */ -#line 599 "MachineIndependent/glslang.y" - { - parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "++", (yyvsp[0].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "++", EOpPreIncrement, (yyvsp[0].interm.intermTypedNode)); - } -#line 5530 "MachineIndependent/glslang_tab.cpp" - break; - - case 39: /* unary_expression: DEC_OP unary_expression */ -#line 603 "MachineIndependent/glslang.y" - { - parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "--", (yyvsp[0].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "--", EOpPreDecrement, (yyvsp[0].interm.intermTypedNode)); - } -#line 5539 "MachineIndependent/glslang_tab.cpp" - break; - - case 40: /* unary_expression: unary_operator unary_expression */ -#line 607 "MachineIndependent/glslang.y" - { - 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 5560 "MachineIndependent/glslang_tab.cpp" - break; - - case 41: /* unary_operator: PLUS */ -#line 627 "MachineIndependent/glslang.y" - { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNull; } -#line 5566 "MachineIndependent/glslang_tab.cpp" - break; - - case 42: /* unary_operator: DASH */ -#line 628 "MachineIndependent/glslang.y" - { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNegative; } -#line 5572 "MachineIndependent/glslang_tab.cpp" - break; - - case 43: /* unary_operator: BANG */ -#line 629 "MachineIndependent/glslang.y" - { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLogicalNot; } -#line 5578 "MachineIndependent/glslang_tab.cpp" - break; - - case 44: /* unary_operator: TILDE */ -#line 630 "MachineIndependent/glslang.y" - { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpBitwiseNot; - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise not"); } -#line 5585 "MachineIndependent/glslang_tab.cpp" - break; - - case 45: /* multiplicative_expression: unary_expression */ -#line 636 "MachineIndependent/glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 5591 "MachineIndependent/glslang_tab.cpp" - break; - - case 46: /* multiplicative_expression: multiplicative_expression STAR unary_expression */ -#line 637 "MachineIndependent/glslang.y" - { - (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 5601 "MachineIndependent/glslang_tab.cpp" - break; - - case 47: /* multiplicative_expression: multiplicative_expression SLASH unary_expression */ -#line 642 "MachineIndependent/glslang.y" - { - (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 5611 "MachineIndependent/glslang_tab.cpp" - break; - - case 48: /* multiplicative_expression: multiplicative_expression PERCENT unary_expression */ -#line 647 "MachineIndependent/glslang.y" - { - parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "%"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "%", EOpMod, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); - } -#line 5622 "MachineIndependent/glslang_tab.cpp" - break; - - case 49: /* additive_expression: multiplicative_expression */ -#line 656 "MachineIndependent/glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 5628 "MachineIndependent/glslang_tab.cpp" - break; - - case 50: /* additive_expression: additive_expression PLUS multiplicative_expression */ -#line 657 "MachineIndependent/glslang.y" - { - (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 5638 "MachineIndependent/glslang_tab.cpp" - break; - - case 51: /* additive_expression: additive_expression DASH multiplicative_expression */ -#line 662 "MachineIndependent/glslang.y" - { - (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 5648 "MachineIndependent/glslang_tab.cpp" - break; - - case 52: /* shift_expression: additive_expression */ -#line 670 "MachineIndependent/glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 5654 "MachineIndependent/glslang_tab.cpp" - break; - - case 53: /* shift_expression: shift_expression LEFT_OP additive_expression */ -#line 671 "MachineIndependent/glslang.y" - { - parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift left"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<<", EOpLeftShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); - } -#line 5665 "MachineIndependent/glslang_tab.cpp" - break; - - case 54: /* shift_expression: shift_expression RIGHT_OP additive_expression */ -#line 677 "MachineIndependent/glslang.y" - { - parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift right"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">>", EOpRightShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); - } -#line 5676 "MachineIndependent/glslang_tab.cpp" - break; - - case 55: /* relational_expression: shift_expression */ -#line 686 "MachineIndependent/glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 5682 "MachineIndependent/glslang_tab.cpp" - break; - - case 56: /* relational_expression: relational_expression LEFT_ANGLE shift_expression */ -#line 687 "MachineIndependent/glslang.y" - { - (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 5692 "MachineIndependent/glslang_tab.cpp" - break; - - case 57: /* relational_expression: relational_expression RIGHT_ANGLE shift_expression */ -#line 692 "MachineIndependent/glslang.y" - { - (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 5702 "MachineIndependent/glslang_tab.cpp" - break; - - case 58: /* relational_expression: relational_expression LE_OP shift_expression */ -#line 697 "MachineIndependent/glslang.y" - { - (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 5712 "MachineIndependent/glslang_tab.cpp" - break; - - case 59: /* relational_expression: relational_expression GE_OP shift_expression */ -#line 702 "MachineIndependent/glslang.y" - { - (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 5722 "MachineIndependent/glslang_tab.cpp" - break; - - case 60: /* equality_expression: relational_expression */ -#line 710 "MachineIndependent/glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 5728 "MachineIndependent/glslang_tab.cpp" - break; - - case 61: /* equality_expression: equality_expression EQ_OP relational_expression */ -#line 711 "MachineIndependent/glslang.y" - { - parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison"); - parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=="); - parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=="); - parseContext.referenceCheck((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 5742 "MachineIndependent/glslang_tab.cpp" - break; - - case 62: /* equality_expression: equality_expression NE_OP relational_expression */ -#line 720 "MachineIndependent/glslang.y" - { - parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison"); - parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!="); - parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!="); - parseContext.referenceCheck((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 5756 "MachineIndependent/glslang_tab.cpp" - break; - - case 63: /* and_expression: equality_expression */ -#line 732 "MachineIndependent/glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 5762 "MachineIndependent/glslang_tab.cpp" - break; - - case 64: /* and_expression: and_expression AMPERSAND equality_expression */ -#line 733 "MachineIndependent/glslang.y" - { - parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise and"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&", EOpAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); - } -#line 5773 "MachineIndependent/glslang_tab.cpp" - break; - - case 65: /* exclusive_or_expression: and_expression */ -#line 742 "MachineIndependent/glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 5779 "MachineIndependent/glslang_tab.cpp" - break; - - case 66: /* exclusive_or_expression: exclusive_or_expression CARET and_expression */ -#line 743 "MachineIndependent/glslang.y" - { - parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise exclusive or"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^", EOpExclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); - } -#line 5790 "MachineIndependent/glslang_tab.cpp" - break; - - case 67: /* inclusive_or_expression: exclusive_or_expression */ -#line 752 "MachineIndependent/glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 5796 "MachineIndependent/glslang_tab.cpp" - break; - - case 68: /* inclusive_or_expression: inclusive_or_expression VERTICAL_BAR exclusive_or_expression */ -#line 753 "MachineIndependent/glslang.y" - { - parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise inclusive or"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "|", EOpInclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); - } -#line 5807 "MachineIndependent/glslang_tab.cpp" - break; - - case 69: /* logical_and_expression: inclusive_or_expression */ -#line 762 "MachineIndependent/glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 5813 "MachineIndependent/glslang_tab.cpp" - break; - - case 70: /* logical_and_expression: logical_and_expression AND_OP inclusive_or_expression */ -#line 763 "MachineIndependent/glslang.y" - { - (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 5823 "MachineIndependent/glslang_tab.cpp" - break; - - case 71: /* logical_xor_expression: logical_and_expression */ -#line 771 "MachineIndependent/glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 5829 "MachineIndependent/glslang_tab.cpp" - break; - - case 72: /* logical_xor_expression: logical_xor_expression XOR_OP logical_and_expression */ -#line 772 "MachineIndependent/glslang.y" - { - (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 5839 "MachineIndependent/glslang_tab.cpp" - break; - - case 73: /* logical_or_expression: logical_xor_expression */ -#line 780 "MachineIndependent/glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 5845 "MachineIndependent/glslang_tab.cpp" - break; - - case 74: /* logical_or_expression: logical_or_expression OR_OP logical_xor_expression */ -#line 781 "MachineIndependent/glslang.y" - { - (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 5855 "MachineIndependent/glslang_tab.cpp" - break; - - case 75: /* conditional_expression: logical_or_expression */ -#line 789 "MachineIndependent/glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 5861 "MachineIndependent/glslang_tab.cpp" - break; - - case 76: /* $@1: %empty */ -#line 790 "MachineIndependent/glslang.y" - { - ++parseContext.controlFlowNestingLevel; - } -#line 5869 "MachineIndependent/glslang_tab.cpp" - break; - - case 77: /* conditional_expression: logical_or_expression QUESTION $@1 expression COLON assignment_expression */ -#line 793 "MachineIndependent/glslang.y" - { - --parseContext.controlFlowNestingLevel; - parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-5].interm.intermTypedNode)); - parseContext.rValueErrorCheck((yyvsp[-4].lex).loc, "?", (yyvsp[-5].interm.intermTypedNode)); - parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode)); - parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[0].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addSelection((yyvsp[-5].interm.intermTypedNode), (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-4].lex).loc); - if ((yyval.interm.intermTypedNode) == 0) { - parseContext.binaryOpError((yyvsp[-4].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(parseContext.intermediate.getEnhancedMsgs()), (yyvsp[0].interm.intermTypedNode)->getCompleteString(parseContext.intermediate.getEnhancedMsgs())); - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); - } - } -#line 5886 "MachineIndependent/glslang_tab.cpp" - break; - - case 78: /* assignment_expression: conditional_expression */ -#line 808 "MachineIndependent/glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 5892 "MachineIndependent/glslang_tab.cpp" - break; - - case 79: /* assignment_expression: unary_expression assignment_operator assignment_expression */ -#line 809 "MachineIndependent/glslang.y" - { - 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.storage16BitAssignmentCheck((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.addAssign((yyvsp[-1].interm).loc, (yyvsp[-1].interm).op, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) { - parseContext.assignError((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(parseContext.intermediate.getEnhancedMsgs()), (yyvsp[0].interm.intermTypedNode)->getCompleteString(parseContext.intermediate.getEnhancedMsgs())); - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); - } - } -#line 5910 "MachineIndependent/glslang_tab.cpp" - break; - - case 80: /* assignment_operator: EQUAL */ -#line 825 "MachineIndependent/glslang.y" - { - (yyval.interm).loc = (yyvsp[0].lex).loc; - (yyval.interm).op = EOpAssign; - } -#line 5919 "MachineIndependent/glslang_tab.cpp" - break; - - case 81: /* assignment_operator: MUL_ASSIGN */ -#line 829 "MachineIndependent/glslang.y" - { - (yyval.interm).loc = (yyvsp[0].lex).loc; - (yyval.interm).op = EOpMulAssign; - } -#line 5928 "MachineIndependent/glslang_tab.cpp" - break; - - case 82: /* assignment_operator: DIV_ASSIGN */ -#line 833 "MachineIndependent/glslang.y" - { - (yyval.interm).loc = (yyvsp[0].lex).loc; - (yyval.interm).op = EOpDivAssign; - } -#line 5937 "MachineIndependent/glslang_tab.cpp" - break; - - case 83: /* assignment_operator: MOD_ASSIGN */ -#line 837 "MachineIndependent/glslang.y" - { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "%="); - (yyval.interm).loc = (yyvsp[0].lex).loc; - (yyval.interm).op = EOpModAssign; - } -#line 5947 "MachineIndependent/glslang_tab.cpp" - break; - - case 84: /* assignment_operator: ADD_ASSIGN */ -#line 842 "MachineIndependent/glslang.y" - { - (yyval.interm).loc = (yyvsp[0].lex).loc; - (yyval.interm).op = EOpAddAssign; - } -#line 5956 "MachineIndependent/glslang_tab.cpp" - break; - - case 85: /* assignment_operator: SUB_ASSIGN */ -#line 846 "MachineIndependent/glslang.y" - { - (yyval.interm).loc = (yyvsp[0].lex).loc; - (yyval.interm).op = EOpSubAssign; - } -#line 5965 "MachineIndependent/glslang_tab.cpp" - break; - - case 86: /* assignment_operator: LEFT_ASSIGN */ -#line 850 "MachineIndependent/glslang.y" - { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift left assign"); - (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLeftShiftAssign; - } -#line 5974 "MachineIndependent/glslang_tab.cpp" - break; - - case 87: /* assignment_operator: RIGHT_ASSIGN */ -#line 854 "MachineIndependent/glslang.y" - { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift right assign"); - (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpRightShiftAssign; - } -#line 5983 "MachineIndependent/glslang_tab.cpp" - break; - - case 88: /* assignment_operator: AND_ASSIGN */ -#line 858 "MachineIndependent/glslang.y" - { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-and assign"); - (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAndAssign; - } -#line 5992 "MachineIndependent/glslang_tab.cpp" - break; - - case 89: /* assignment_operator: XOR_ASSIGN */ -#line 862 "MachineIndependent/glslang.y" - { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-xor assign"); - (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign; - } -#line 6001 "MachineIndependent/glslang_tab.cpp" - break; - - case 90: /* assignment_operator: OR_ASSIGN */ -#line 866 "MachineIndependent/glslang.y" - { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-or assign"); - (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign; - } -#line 6010 "MachineIndependent/glslang_tab.cpp" - break; - - case 91: /* expression: assignment_expression */ -#line 873 "MachineIndependent/glslang.y" - { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); - } -#line 6018 "MachineIndependent/glslang_tab.cpp" - break; - - case 92: /* expression: expression COMMA assignment_expression */ -#line 876 "MachineIndependent/glslang.y" - { - parseContext.samplerConstructorLocationCheck((yyvsp[-1].lex).loc, ",", (yyvsp[0].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addComma((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc); - if ((yyval.interm.intermTypedNode) == 0) { - parseContext.binaryOpError((yyvsp[-1].lex).loc, ",", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(parseContext.intermediate.getEnhancedMsgs()), (yyvsp[0].interm.intermTypedNode)->getCompleteString(parseContext.intermediate.getEnhancedMsgs())); - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); - } - } -#line 6031 "MachineIndependent/glslang_tab.cpp" - break; - - case 93: /* constant_expression: conditional_expression */ -#line 887 "MachineIndependent/glslang.y" - { - parseContext.constantValueCheck((yyvsp[0].interm.intermTypedNode), ""); - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); - } -#line 6040 "MachineIndependent/glslang_tab.cpp" - break; - - case 94: /* declaration: function_prototype SEMICOLON */ -#line 894 "MachineIndependent/glslang.y" - { - parseContext.handleFunctionDeclarator((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).function, true /* prototype */); - (yyval.interm.intermNode) = 0; - // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature - } -#line 6050 "MachineIndependent/glslang_tab.cpp" - break; - - case 95: /* declaration: spirv_instruction_qualifier function_prototype SEMICOLON */ -#line 900 "MachineIndependent/glslang.y" - { - parseContext.requireExtensions((yyvsp[-1].interm).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V instruction qualifier"); - (yyvsp[-1].interm).function->setSpirvInstruction(*(yyvsp[-2].interm.spirvInst)); // Attach SPIR-V intruction qualifier - 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 6062 "MachineIndependent/glslang_tab.cpp" - break; - - case 96: /* declaration: spirv_execution_mode_qualifier SEMICOLON */ -#line 907 "MachineIndependent/glslang.y" - { - parseContext.globalCheck((yyvsp[0].lex).loc, "SPIR-V execution mode qualifier"); - parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V execution mode qualifier"); - (yyval.interm.intermNode) = 0; - } -#line 6072 "MachineIndependent/glslang_tab.cpp" - break; - - case 97: /* declaration: init_declarator_list SEMICOLON */ -#line 913 "MachineIndependent/glslang.y" - { - if ((yyvsp[-1].interm).intermNode && (yyvsp[-1].interm).intermNode->getAsAggregate()) - (yyvsp[-1].interm).intermNode->getAsAggregate()->setOperator(EOpSequence); - (yyval.interm.intermNode) = (yyvsp[-1].interm).intermNode; - } -#line 6082 "MachineIndependent/glslang_tab.cpp" - break; - - case 98: /* declaration: PRECISION precision_qualifier type_specifier SEMICOLON */ -#line 918 "MachineIndependent/glslang.y" - { - parseContext.profileRequires((yyvsp[-3].lex).loc, ENoProfile, 130, 0, "precision statement"); - // lazy setting of the previous scope's defaults, has effect only the first time it is called in a particular scope - parseContext.symbolTable.setPreviousDefaultPrecisions(&parseContext.defaultPrecision[0]); - parseContext.setDefaultPrecision((yyvsp[-3].lex).loc, (yyvsp[-1].interm.type), (yyvsp[-2].interm.type).qualifier.precision); - (yyval.interm.intermNode) = 0; - } -#line 6094 "MachineIndependent/glslang_tab.cpp" - break; - - case 99: /* declaration: block_structure SEMICOLON */ -#line 925 "MachineIndependent/glslang.y" - { - parseContext.declareBlock((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).typeList); - (yyval.interm.intermNode) = 0; - } -#line 6103 "MachineIndependent/glslang_tab.cpp" - break; - - case 100: /* declaration: block_structure IDENTIFIER SEMICOLON */ -#line 929 "MachineIndependent/glslang.y" - { - parseContext.declareBlock((yyvsp[-2].interm).loc, *(yyvsp[-2].interm).typeList, (yyvsp[-1].lex).string); - (yyval.interm.intermNode) = 0; - } -#line 6112 "MachineIndependent/glslang_tab.cpp" - break; - - case 101: /* declaration: block_structure IDENTIFIER array_specifier SEMICOLON */ -#line 933 "MachineIndependent/glslang.y" - { - parseContext.declareBlock((yyvsp[-3].interm).loc, *(yyvsp[-3].interm).typeList, (yyvsp[-2].lex).string, (yyvsp[-1].interm).arraySizes); - (yyval.interm.intermNode) = 0; - } -#line 6121 "MachineIndependent/glslang_tab.cpp" - break; - - case 102: /* declaration: type_qualifier SEMICOLON */ -#line 937 "MachineIndependent/glslang.y" - { - parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier); - parseContext.updateStandaloneQualifierDefaults((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type)); - (yyval.interm.intermNode) = 0; - } -#line 6131 "MachineIndependent/glslang_tab.cpp" - break; - - case 103: /* declaration: type_qualifier IDENTIFIER SEMICOLON */ -#line 942 "MachineIndependent/glslang.y" - { - parseContext.checkNoShaderLayouts((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).shaderQualifiers); - parseContext.addQualifierToExisting((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, *(yyvsp[-1].lex).string); - (yyval.interm.intermNode) = 0; - } -#line 6141 "MachineIndependent/glslang_tab.cpp" - break; - - case 104: /* declaration: type_qualifier IDENTIFIER identifier_list SEMICOLON */ -#line 947 "MachineIndependent/glslang.y" - { - parseContext.checkNoShaderLayouts((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).shaderQualifiers); - (yyvsp[-1].interm.identifierList)->push_back((yyvsp[-2].lex).string); - parseContext.addQualifierToExisting((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier, *(yyvsp[-1].interm.identifierList)); - (yyval.interm.intermNode) = 0; - } -#line 6152 "MachineIndependent/glslang_tab.cpp" - break; - - case 105: /* $@2: %empty */ -#line 956 "MachineIndependent/glslang.y" - { parseContext.nestedBlockCheck((yyvsp[-2].interm.type).loc); } -#line 6158 "MachineIndependent/glslang_tab.cpp" - break; - - case 106: /* block_structure: type_qualifier IDENTIFIER LEFT_BRACE $@2 struct_declaration_list RIGHT_BRACE */ -#line 956 "MachineIndependent/glslang.y" - { - --parseContext.blockNestingLevel; - 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 6172 "MachineIndependent/glslang_tab.cpp" - break; - - case 107: /* identifier_list: COMMA IDENTIFIER */ -#line 967 "MachineIndependent/glslang.y" - { - (yyval.interm.identifierList) = new TIdentifierList; - (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string); - } -#line 6181 "MachineIndependent/glslang_tab.cpp" - break; - - case 108: /* identifier_list: identifier_list COMMA IDENTIFIER */ -#line 971 "MachineIndependent/glslang.y" - { - (yyval.interm.identifierList) = (yyvsp[-2].interm.identifierList); - (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string); - } -#line 6190 "MachineIndependent/glslang_tab.cpp" - break; - - case 109: /* function_prototype: function_declarator RIGHT_PAREN */ -#line 978 "MachineIndependent/glslang.y" - { - (yyval.interm).function = (yyvsp[-1].interm.function); - (yyval.interm).loc = (yyvsp[0].lex).loc; - } -#line 6199 "MachineIndependent/glslang_tab.cpp" - break; - - case 110: /* function_prototype: function_declarator RIGHT_PAREN attribute */ -#line 982 "MachineIndependent/glslang.y" - { - (yyval.interm).function = (yyvsp[-2].interm.function); - (yyval.interm).loc = (yyvsp[-1].lex).loc; - parseContext.requireExtensions((yyvsp[-1].lex).loc, 1, &E_GL_EXT_subgroup_uniform_control_flow, "attribute"); - parseContext.handleFunctionAttributes((yyvsp[-1].lex).loc, *(yyvsp[0].interm.attributes)); - } -#line 6210 "MachineIndependent/glslang_tab.cpp" - break; - - case 111: /* function_prototype: attribute function_declarator RIGHT_PAREN */ -#line 988 "MachineIndependent/glslang.y" - { - (yyval.interm).function = (yyvsp[-1].interm.function); - (yyval.interm).loc = (yyvsp[0].lex).loc; - parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_subgroup_uniform_control_flow, "attribute"); - parseContext.handleFunctionAttributes((yyvsp[0].lex).loc, *(yyvsp[-2].interm.attributes)); - } -#line 6221 "MachineIndependent/glslang_tab.cpp" - break; - - case 112: /* function_prototype: attribute function_declarator RIGHT_PAREN attribute */ -#line 994 "MachineIndependent/glslang.y" - { - (yyval.interm).function = (yyvsp[-2].interm.function); - (yyval.interm).loc = (yyvsp[-1].lex).loc; - parseContext.requireExtensions((yyvsp[-1].lex).loc, 1, &E_GL_EXT_subgroup_uniform_control_flow, "attribute"); - parseContext.handleFunctionAttributes((yyvsp[-1].lex).loc, *(yyvsp[-3].interm.attributes)); - parseContext.handleFunctionAttributes((yyvsp[-1].lex).loc, *(yyvsp[0].interm.attributes)); - } -#line 6233 "MachineIndependent/glslang_tab.cpp" - break; - - case 113: /* function_declarator: function_header */ -#line 1004 "MachineIndependent/glslang.y" - { - (yyval.interm.function) = (yyvsp[0].interm.function); - } -#line 6241 "MachineIndependent/glslang_tab.cpp" - break; - - case 114: /* function_declarator: function_header_with_parameters */ -#line 1007 "MachineIndependent/glslang.y" - { - (yyval.interm.function) = (yyvsp[0].interm.function); - } -#line 6249 "MachineIndependent/glslang_tab.cpp" - break; - - case 115: /* function_header_with_parameters: function_header parameter_declaration */ -#line 1014 "MachineIndependent/glslang.y" - { - // Add the parameter - (yyval.interm.function) = (yyvsp[-1].interm.function); - if ((yyvsp[0].interm).param.type->getBasicType() != EbtVoid) - (yyvsp[-1].interm.function)->addParameter((yyvsp[0].interm).param); - else - delete (yyvsp[0].interm).param.type; - } -#line 6262 "MachineIndependent/glslang_tab.cpp" - break; - - case 116: /* function_header_with_parameters: function_header_with_parameters COMMA parameter_declaration */ -#line 1022 "MachineIndependent/glslang.y" - { - // - // Only first parameter of one-parameter functions can be void - // The check for named parameters not being void is done in parameter_declarator - // - if ((yyvsp[0].interm).param.type->getBasicType() == EbtVoid) { - // - // 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 6284 "MachineIndependent/glslang_tab.cpp" - break; - - case 117: /* function_header: fully_specified_type IDENTIFIER LEFT_PAREN */ -#line 1042 "MachineIndependent/glslang.y" - { - if ((yyvsp[-2].interm.type).qualifier.storage != EvqGlobal && (yyvsp[-2].interm.type).qualifier.storage != EvqTemporary) { - parseContext.error((yyvsp[-1].lex).loc, "no qualifiers allowed for function return", - GetStorageQualifierString((yyvsp[-2].interm.type).qualifier.storage), ""); - } - if ((yyvsp[-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 6308 "MachineIndependent/glslang_tab.cpp" - break; - - case 118: /* parameter_declarator: type_specifier IDENTIFIER */ -#line 1065 "MachineIndependent/glslang.y" - { - if ((yyvsp[-1].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[-1].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[-1].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); - parseContext.arraySizeRequiredCheck((yyvsp[-1].interm.type).loc, *(yyvsp[-1].interm.type).arraySizes); - } - if ((yyvsp[-1].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 6328 "MachineIndependent/glslang_tab.cpp" - break; - - case 119: /* parameter_declarator: type_specifier IDENTIFIER array_specifier */ -#line 1080 "MachineIndependent/glslang.y" - { - if ((yyvsp[-2].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); - parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes); - } - 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 6352 "MachineIndependent/glslang_tab.cpp" - break; - - case 120: /* parameter_declaration: type_qualifier parameter_declarator */ -#line 1105 "MachineIndependent/glslang.y" - { - (yyval.interm) = (yyvsp[0].interm); - if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone) - (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision; - parseContext.precisionQualifierCheck((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 6368 "MachineIndependent/glslang_tab.cpp" - break; - - case 121: /* parameter_declaration: parameter_declarator */ -#line 1116 "MachineIndependent/glslang.y" - { - (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 6380 "MachineIndependent/glslang_tab.cpp" - break; - - case 122: /* parameter_declaration: type_qualifier parameter_type_specifier */ -#line 1126 "MachineIndependent/glslang.y" - { - (yyval.interm) = (yyvsp[0].interm); - if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone) - (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision; - parseContext.precisionQualifierCheck((yyvsp[-1].interm.type).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); - - 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 6395 "MachineIndependent/glslang_tab.cpp" - break; - - case 123: /* parameter_declaration: parameter_type_specifier */ -#line 1136 "MachineIndependent/glslang.y" - { - (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 6407 "MachineIndependent/glslang_tab.cpp" - break; - - case 124: /* parameter_type_specifier: type_specifier */ -#line 1146 "MachineIndependent/glslang.y" - { - TParameter param = { 0, new TType((yyvsp[0].interm.type)) }; - (yyval.interm).param = param; - if ((yyvsp[0].interm.type).arraySizes) - parseContext.arraySizeRequiredCheck((yyvsp[0].interm.type).loc, *(yyvsp[0].interm.type).arraySizes); - } -#line 6418 "MachineIndependent/glslang_tab.cpp" - break; - - case 125: /* init_declarator_list: single_declaration */ -#line 1155 "MachineIndependent/glslang.y" - { - (yyval.interm) = (yyvsp[0].interm); - } -#line 6426 "MachineIndependent/glslang_tab.cpp" - break; - - case 126: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER */ -#line 1158 "MachineIndependent/glslang.y" - { - (yyval.interm) = (yyvsp[-2].interm); - parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-2].interm).type); - } -#line 6435 "MachineIndependent/glslang_tab.cpp" - break; - - case 127: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER array_specifier */ -#line 1162 "MachineIndependent/glslang.y" - { - (yyval.interm) = (yyvsp[-3].interm); - parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-3].interm).type, (yyvsp[0].interm).arraySizes); - } -#line 6444 "MachineIndependent/glslang_tab.cpp" - break; - - case 128: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER array_specifier EQUAL initializer */ -#line 1166 "MachineIndependent/glslang.y" - { - (yyval.interm).type = (yyvsp[-5].interm).type; - TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-5].interm).type, (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode)); - (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-5].interm).intermNode, initNode, (yyvsp[-1].lex).loc); - } -#line 6454 "MachineIndependent/glslang_tab.cpp" - break; - - case 129: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER EQUAL initializer */ -#line 1171 "MachineIndependent/glslang.y" - { - (yyval.interm).type = (yyvsp[-4].interm).type; - TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-4].interm).type, 0, (yyvsp[0].interm.intermTypedNode)); - (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-4].interm).intermNode, initNode, (yyvsp[-1].lex).loc); - } -#line 6464 "MachineIndependent/glslang_tab.cpp" - break; - - case 130: /* single_declaration: fully_specified_type */ -#line 1179 "MachineIndependent/glslang.y" - { - (yyval.interm).type = (yyvsp[0].interm.type); - (yyval.interm).intermNode = 0; - - parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type); - - } -#line 6476 "MachineIndependent/glslang_tab.cpp" - break; - - case 131: /* single_declaration: fully_specified_type IDENTIFIER */ -#line 1186 "MachineIndependent/glslang.y" - { - (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 6486 "MachineIndependent/glslang_tab.cpp" - break; - - case 132: /* single_declaration: fully_specified_type IDENTIFIER array_specifier */ -#line 1191 "MachineIndependent/glslang.y" - { - (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 6496 "MachineIndependent/glslang_tab.cpp" - break; - - case 133: /* single_declaration: fully_specified_type IDENTIFIER array_specifier EQUAL initializer */ -#line 1196 "MachineIndependent/glslang.y" - { - (yyval.interm).type = (yyvsp[-4].interm.type); - TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-4].interm.type), (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode)); - (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc); - } -#line 6506 "MachineIndependent/glslang_tab.cpp" - break; - - case 134: /* single_declaration: fully_specified_type IDENTIFIER EQUAL initializer */ -#line 1201 "MachineIndependent/glslang.y" - { - (yyval.interm).type = (yyvsp[-3].interm.type); - TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode)); - (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc); - } -#line 6516 "MachineIndependent/glslang_tab.cpp" - break; - - case 135: /* fully_specified_type: type_specifier */ -#line 1210 "MachineIndependent/glslang.y" - { - (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 6531 "MachineIndependent/glslang_tab.cpp" - break; - - case 136: /* fully_specified_type: type_qualifier type_specifier */ -#line 1220 "MachineIndependent/glslang.y" - { - parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier); - parseContext.globalQualifierTypeCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, (yyvsp[0].interm.type)); - - 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 6560 "MachineIndependent/glslang_tab.cpp" - break; - - case 137: /* invariant_qualifier: INVARIANT */ -#line 1247 "MachineIndependent/glslang.y" - { - 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 6571 "MachineIndependent/glslang_tab.cpp" - break; - - case 138: /* interpolation_qualifier: SMOOTH */ -#line 1256 "MachineIndependent/glslang.y" - { - parseContext.globalCheck((yyvsp[0].lex).loc, "smooth"); - parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "smooth"); - parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "smooth"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.smooth = true; - } -#line 6583 "MachineIndependent/glslang_tab.cpp" - break; - - case 139: /* interpolation_qualifier: FLAT */ -#line 1263 "MachineIndependent/glslang.y" - { - parseContext.globalCheck((yyvsp[0].lex).loc, "flat"); - parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "flat"); - parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "flat"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.flat = true; - } -#line 6595 "MachineIndependent/glslang_tab.cpp" - break; - - case 140: /* interpolation_qualifier: NOPERSPECTIVE */ -#line 1271 "MachineIndependent/glslang.y" - { - parseContext.globalCheck((yyvsp[0].lex).loc, "noperspective"); - parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_shader_noperspective_interpolation, "noperspective"); - parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "noperspective"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.nopersp = true; - } -#line 6607 "MachineIndependent/glslang_tab.cpp" - break; - - case 141: /* interpolation_qualifier: EXPLICITINTERPAMD */ -#line 1278 "MachineIndependent/glslang.y" - { - 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; - } -#line 6619 "MachineIndependent/glslang_tab.cpp" - break; - - case 142: /* interpolation_qualifier: PERVERTEXNV */ -#line 1285 "MachineIndependent/glslang.y" - { - parseContext.globalCheck((yyvsp[0].lex).loc, "pervertexNV"); - parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric"); - parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric"); - parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.pervertexNV = true; - } -#line 6632 "MachineIndependent/glslang_tab.cpp" - break; - - case 143: /* interpolation_qualifier: PERPRIMITIVENV */ -#line 1293 "MachineIndependent/glslang.y" - { - // No need for profile version or extension check. Shader stage already checks both. - parseContext.globalCheck((yyvsp[0].lex).loc, "perprimitiveNV"); - parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangFragmentMask | EShLangMeshNVMask), "perprimitiveNV"); - // Fragment shader stage doesn't check for extension. So we explicitly add below extension check. - if (parseContext.language == EShLangFragment) - parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_NV_mesh_shader, "perprimitiveNV"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.perPrimitiveNV = true; - } -#line 6647 "MachineIndependent/glslang_tab.cpp" - break; - - case 144: /* interpolation_qualifier: PERVIEWNV */ -#line 1303 "MachineIndependent/glslang.y" - { - // No need for profile version or extension check. Shader stage already checks both. - parseContext.globalCheck((yyvsp[0].lex).loc, "perviewNV"); - parseContext.requireStage((yyvsp[0].lex).loc, EShLangMeshNV, "perviewNV"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.perViewNV = true; - } -#line 6659 "MachineIndependent/glslang_tab.cpp" - break; - - case 145: /* interpolation_qualifier: PERTASKNV */ -#line 1310 "MachineIndependent/glslang.y" - { - // No need for profile version or extension check. Shader stage already checks both. - parseContext.globalCheck((yyvsp[0].lex).loc, "taskNV"); - parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTaskNVMask | EShLangMeshNVMask), "taskNV"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.perTaskNV = true; - } -#line 6671 "MachineIndependent/glslang_tab.cpp" - break; - - case 146: /* layout_qualifier: LAYOUT LEFT_PAREN layout_qualifier_id_list RIGHT_PAREN */ -#line 1321 "MachineIndependent/glslang.y" - { - (yyval.interm.type) = (yyvsp[-1].interm.type); - } -#line 6679 "MachineIndependent/glslang_tab.cpp" - break; - - case 147: /* layout_qualifier_id_list: layout_qualifier_id */ -#line 1327 "MachineIndependent/glslang.y" - { - (yyval.interm.type) = (yyvsp[0].interm.type); - } -#line 6687 "MachineIndependent/glslang_tab.cpp" - break; - - case 148: /* layout_qualifier_id_list: layout_qualifier_id_list COMMA layout_qualifier_id */ -#line 1330 "MachineIndependent/glslang.y" - { - (yyval.interm.type) = (yyvsp[-2].interm.type); - (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers); - parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false); - } -#line 6697 "MachineIndependent/glslang_tab.cpp" - break; - - case 149: /* layout_qualifier_id: IDENTIFIER */ -#line 1337 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc); - parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), *(yyvsp[0].lex).string); - } -#line 6706 "MachineIndependent/glslang_tab.cpp" - break; - - case 150: /* layout_qualifier_id: IDENTIFIER EQUAL constant_expression */ -#line 1341 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[-2].lex).loc); - parseContext.setLayoutQualifier((yyvsp[-2].lex).loc, (yyval.interm.type), *(yyvsp[-2].lex).string, (yyvsp[0].interm.intermTypedNode)); - } -#line 6715 "MachineIndependent/glslang_tab.cpp" - break; - - case 151: /* layout_qualifier_id: SHARED */ -#line 1345 "MachineIndependent/glslang.y" - { // 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 6725 "MachineIndependent/glslang_tab.cpp" - break; - - case 152: /* precise_qualifier: PRECISE */ -#line 1354 "MachineIndependent/glslang.y" - { - 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 6736 "MachineIndependent/glslang_tab.cpp" - break; - - case 153: /* type_qualifier: single_type_qualifier */ -#line 1364 "MachineIndependent/glslang.y" - { - (yyval.interm.type) = (yyvsp[0].interm.type); - } -#line 6744 "MachineIndependent/glslang_tab.cpp" - break; - - case 154: /* type_qualifier: type_qualifier single_type_qualifier */ -#line 1367 "MachineIndependent/glslang.y" - { - (yyval.interm.type) = (yyvsp[-1].interm.type); - if ((yyval.interm.type).basicType == EbtVoid) - (yyval.interm.type).basicType = (yyvsp[0].interm.type).basicType; - - (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers); - parseContext.mergeQualifiers((yyval.interm.type).loc, (yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false); - } -#line 6757 "MachineIndependent/glslang_tab.cpp" - break; - - case 155: /* single_type_qualifier: storage_qualifier */ -#line 1378 "MachineIndependent/glslang.y" - { - (yyval.interm.type) = (yyvsp[0].interm.type); - } -#line 6765 "MachineIndependent/glslang_tab.cpp" - break; - - case 156: /* single_type_qualifier: layout_qualifier */ -#line 1381 "MachineIndependent/glslang.y" - { - (yyval.interm.type) = (yyvsp[0].interm.type); - } -#line 6773 "MachineIndependent/glslang_tab.cpp" - break; - - case 157: /* single_type_qualifier: precision_qualifier */ -#line 1384 "MachineIndependent/glslang.y" - { - parseContext.checkPrecisionQualifier((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier.precision); - (yyval.interm.type) = (yyvsp[0].interm.type); - } -#line 6782 "MachineIndependent/glslang_tab.cpp" - break; - - case 158: /* single_type_qualifier: interpolation_qualifier */ -#line 1388 "MachineIndependent/glslang.y" - { - // allow inheritance of storage qualifier from block declaration - (yyval.interm.type) = (yyvsp[0].interm.type); - } -#line 6791 "MachineIndependent/glslang_tab.cpp" - break; - - case 159: /* single_type_qualifier: invariant_qualifier */ -#line 1392 "MachineIndependent/glslang.y" - { - // allow inheritance of storage qualifier from block declaration - (yyval.interm.type) = (yyvsp[0].interm.type); - } -#line 6800 "MachineIndependent/glslang_tab.cpp" - break; - - case 160: /* single_type_qualifier: precise_qualifier */ -#line 1397 "MachineIndependent/glslang.y" - { - // allow inheritance of storage qualifier from block declaration - (yyval.interm.type) = (yyvsp[0].interm.type); - } -#line 6809 "MachineIndependent/glslang_tab.cpp" - break; - - case 161: /* single_type_qualifier: non_uniform_qualifier */ -#line 1401 "MachineIndependent/glslang.y" - { - (yyval.interm.type) = (yyvsp[0].interm.type); - } -#line 6817 "MachineIndependent/glslang_tab.cpp" - break; - - case 162: /* single_type_qualifier: spirv_storage_class_qualifier */ -#line 1404 "MachineIndependent/glslang.y" - { - parseContext.globalCheck((yyvsp[0].interm.type).loc, "spirv_storage_class"); - parseContext.requireExtensions((yyvsp[0].interm.type).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V storage class qualifier"); - (yyval.interm.type) = (yyvsp[0].interm.type); - } -#line 6827 "MachineIndependent/glslang_tab.cpp" - break; - - case 163: /* single_type_qualifier: spirv_decorate_qualifier */ -#line 1409 "MachineIndependent/glslang.y" - { - parseContext.requireExtensions((yyvsp[0].interm.type).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V decorate qualifier"); - (yyval.interm.type) = (yyvsp[0].interm.type); - } -#line 6836 "MachineIndependent/glslang_tab.cpp" - break; - - case 164: /* single_type_qualifier: SPIRV_BY_REFERENCE */ -#line 1413 "MachineIndependent/glslang.y" - { - parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_spirv_intrinsics, "spirv_by_reference"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.setSpirvByReference(); - } -#line 6846 "MachineIndependent/glslang_tab.cpp" - break; - - case 165: /* single_type_qualifier: SPIRV_LITERAL */ -#line 1418 "MachineIndependent/glslang.y" - { - parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_spirv_intrinsics, "spirv_by_literal"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.setSpirvLiteral(); - } -#line 6856 "MachineIndependent/glslang_tab.cpp" - break; - - case 166: /* storage_qualifier: CONST */ -#line 1427 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.storage = EvqConst; // will later turn into EvqConstReadOnly, if the initializer is not constant - } -#line 6865 "MachineIndependent/glslang_tab.cpp" - break; - - case 167: /* storage_qualifier: INOUT */ -#line 1431 "MachineIndependent/glslang.y" - { - parseContext.globalCheck((yyvsp[0].lex).loc, "inout"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.storage = EvqInOut; - } -#line 6875 "MachineIndependent/glslang_tab.cpp" - break; - - case 168: /* storage_qualifier: IN */ -#line 1436 "MachineIndependent/glslang.y" - { - 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 6886 "MachineIndependent/glslang_tab.cpp" - break; - - case 169: /* storage_qualifier: OUT */ -#line 1442 "MachineIndependent/glslang.y" - { - 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 6897 "MachineIndependent/glslang_tab.cpp" - break; - - case 170: /* storage_qualifier: CENTROID */ -#line 1448 "MachineIndependent/glslang.y" - { - parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 120, 0, "centroid"); - parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "centroid"); - parseContext.globalCheck((yyvsp[0].lex).loc, "centroid"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.centroid = true; - } -#line 6909 "MachineIndependent/glslang_tab.cpp" - break; - - case 171: /* storage_qualifier: UNIFORM */ -#line 1455 "MachineIndependent/glslang.y" - { - parseContext.globalCheck((yyvsp[0].lex).loc, "uniform"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.storage = EvqUniform; - } -#line 6919 "MachineIndependent/glslang_tab.cpp" - break; - - case 172: /* storage_qualifier: SHARED */ -#line 1460 "MachineIndependent/glslang.y" - { - 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, (EShLanguageMask)(EShLangComputeMask | EShLangMeshNVMask | EShLangTaskNVMask), "shared"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.storage = EvqShared; - } -#line 6932 "MachineIndependent/glslang_tab.cpp" - break; - - case 173: /* storage_qualifier: BUFFER */ -#line 1468 "MachineIndependent/glslang.y" - { - parseContext.globalCheck((yyvsp[0].lex).loc, "buffer"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.storage = EvqBuffer; - } -#line 6942 "MachineIndependent/glslang_tab.cpp" - break; - - case 174: /* storage_qualifier: ATTRIBUTE */ -#line 1474 "MachineIndependent/glslang.y" - { - parseContext.requireStage((yyvsp[0].lex).loc, EShLangVertex, "attribute"); - parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "attribute"); - parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "attribute"); - parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "attribute"); - parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "attribute"); - - parseContext.globalCheck((yyvsp[0].lex).loc, "attribute"); - - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.storage = EvqVaryingIn; - } -#line 6959 "MachineIndependent/glslang_tab.cpp" - break; - - case 175: /* storage_qualifier: VARYING */ -#line 1486 "MachineIndependent/glslang.y" - { - parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "varying"); - parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "varying"); - parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "varying"); - parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "varying"); - - parseContext.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 6978 "MachineIndependent/glslang_tab.cpp" - break; - - case 176: /* storage_qualifier: PATCH */ -#line 1500 "MachineIndependent/glslang.y" - { - parseContext.globalCheck((yyvsp[0].lex).loc, "patch"); - parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.patch = true; - } -#line 6989 "MachineIndependent/glslang_tab.cpp" - break; - - case 177: /* storage_qualifier: SAMPLE */ -#line 1506 "MachineIndependent/glslang.y" - { - parseContext.globalCheck((yyvsp[0].lex).loc, "sample"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.sample = true; - } -#line 6999 "MachineIndependent/glslang_tab.cpp" - break; - - case 178: /* storage_qualifier: HITATTRNV */ -#line 1511 "MachineIndependent/glslang.y" - { - parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeNV"); - parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask - | EShLangAnyHitMask), "hitAttributeNV"); - parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "hitAttributeNV"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.storage = EvqHitAttr; - } -#line 7012 "MachineIndependent/glslang_tab.cpp" - break; - - case 179: /* storage_qualifier: HITATTREXT */ -#line 1519 "MachineIndependent/glslang.y" - { - parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeEXT"); - parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask - | EShLangAnyHitMask), "hitAttributeEXT"); - parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "hitAttributeNV"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.storage = EvqHitAttr; - } -#line 7025 "MachineIndependent/glslang_tab.cpp" - break; - - case 180: /* storage_qualifier: PAYLOADNV */ -#line 1527 "MachineIndependent/glslang.y" - { - parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadNV"); - parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask | - EShLangAnyHitMask | EShLangMissMask), "rayPayloadNV"); - parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadNV"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.storage = EvqPayload; - } -#line 7038 "MachineIndependent/glslang_tab.cpp" - break; - - case 181: /* storage_qualifier: PAYLOADEXT */ -#line 1535 "MachineIndependent/glslang.y" - { - parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadEXT"); - parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask | - EShLangAnyHitMask | EShLangMissMask), "rayPayloadEXT"); - parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "rayPayloadEXT"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.storage = EvqPayload; - } -#line 7051 "MachineIndependent/glslang_tab.cpp" - break; - - case 182: /* storage_qualifier: PAYLOADINNV */ -#line 1543 "MachineIndependent/glslang.y" - { - parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInNV"); - parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangClosestHitMask | - EShLangAnyHitMask | EShLangMissMask), "rayPayloadInNV"); - parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadInNV"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.storage = EvqPayloadIn; - } -#line 7064 "MachineIndependent/glslang_tab.cpp" - break; - - case 183: /* storage_qualifier: PAYLOADINEXT */ -#line 1551 "MachineIndependent/glslang.y" - { - parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInEXT"); - parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangClosestHitMask | - EShLangAnyHitMask | EShLangMissMask), "rayPayloadInEXT"); - parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "rayPayloadInEXT"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.storage = EvqPayloadIn; - } -#line 7077 "MachineIndependent/glslang_tab.cpp" - break; - - case 184: /* storage_qualifier: CALLDATANV */ -#line 1559 "MachineIndependent/glslang.y" - { - parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataNV"); - parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | - EShLangClosestHitMask | EShLangMissMask | EShLangCallableMask), "callableDataNV"); - parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataNV"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.storage = EvqCallableData; - } -#line 7090 "MachineIndependent/glslang_tab.cpp" - break; - - case 185: /* storage_qualifier: CALLDATAEXT */ -#line 1567 "MachineIndependent/glslang.y" - { - parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataEXT"); - parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | - EShLangClosestHitMask | EShLangMissMask | EShLangCallableMask), "callableDataEXT"); - parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "callableDataEXT"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.storage = EvqCallableData; - } -#line 7103 "MachineIndependent/glslang_tab.cpp" - break; - - case 186: /* storage_qualifier: CALLDATAINNV */ -#line 1575 "MachineIndependent/glslang.y" - { - parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataInNV"); - parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangCallableMask), "callableDataInNV"); - parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataInNV"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.storage = EvqCallableDataIn; - } -#line 7115 "MachineIndependent/glslang_tab.cpp" - break; - - case 187: /* storage_qualifier: CALLDATAINEXT */ -#line 1582 "MachineIndependent/glslang.y" - { - parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataInEXT"); - parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangCallableMask), "callableDataInEXT"); - parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "callableDataInEXT"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.storage = EvqCallableDataIn; - } -#line 7127 "MachineIndependent/glslang_tab.cpp" - break; - - case 188: /* storage_qualifier: COHERENT */ -#line 1589 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.coherent = true; - } -#line 7136 "MachineIndependent/glslang_tab.cpp" - break; - - case 189: /* storage_qualifier: DEVICECOHERENT */ -#line 1593 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc); - parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "devicecoherent"); - (yyval.interm.type).qualifier.devicecoherent = true; - } -#line 7146 "MachineIndependent/glslang_tab.cpp" - break; - - case 190: /* storage_qualifier: QUEUEFAMILYCOHERENT */ -#line 1598 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc); - parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "queuefamilycoherent"); - (yyval.interm.type).qualifier.queuefamilycoherent = true; - } -#line 7156 "MachineIndependent/glslang_tab.cpp" - break; - - case 191: /* storage_qualifier: WORKGROUPCOHERENT */ -#line 1603 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc); - parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "workgroupcoherent"); - (yyval.interm.type).qualifier.workgroupcoherent = true; - } -#line 7166 "MachineIndependent/glslang_tab.cpp" - break; - - case 192: /* storage_qualifier: SUBGROUPCOHERENT */ -#line 1608 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc); - parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "subgroupcoherent"); - (yyval.interm.type).qualifier.subgroupcoherent = true; - } -#line 7176 "MachineIndependent/glslang_tab.cpp" - break; - - case 193: /* storage_qualifier: NONPRIVATE */ -#line 1613 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc); - parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "nonprivate"); - (yyval.interm.type).qualifier.nonprivate = true; - } -#line 7186 "MachineIndependent/glslang_tab.cpp" - break; - - case 194: /* storage_qualifier: SHADERCALLCOHERENT */ -#line 1618 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc); - parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_ray_tracing, "shadercallcoherent"); - (yyval.interm.type).qualifier.shadercallcoherent = true; - } -#line 7196 "MachineIndependent/glslang_tab.cpp" - break; - - case 195: /* storage_qualifier: VOLATILE */ -#line 1623 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.volatil = true; - } -#line 7205 "MachineIndependent/glslang_tab.cpp" - break; - - case 196: /* storage_qualifier: RESTRICT */ -#line 1627 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.restrict = true; - } -#line 7214 "MachineIndependent/glslang_tab.cpp" - break; - - case 197: /* storage_qualifier: READONLY */ -#line 1631 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.readonly = true; - } -#line 7223 "MachineIndependent/glslang_tab.cpp" - break; - - case 198: /* storage_qualifier: WRITEONLY */ -#line 1635 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.writeonly = true; - } -#line 7232 "MachineIndependent/glslang_tab.cpp" - break; - - case 199: /* storage_qualifier: SUBROUTINE */ -#line 1639 "MachineIndependent/glslang.y" - { - 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 7243 "MachineIndependent/glslang_tab.cpp" - break; - - case 200: /* storage_qualifier: SUBROUTINE LEFT_PAREN type_name_list RIGHT_PAREN */ -#line 1645 "MachineIndependent/glslang.y" - { - 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 7254 "MachineIndependent/glslang_tab.cpp" - break; - - case 201: /* non_uniform_qualifier: NONUNIFORM */ -#line 1656 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.nonUniform = true; - } -#line 7263 "MachineIndependent/glslang_tab.cpp" - break; - - case 202: /* type_name_list: IDENTIFIER */ -#line 1663 "MachineIndependent/glslang.y" - { - // TODO - } -#line 7271 "MachineIndependent/glslang_tab.cpp" - break; - - case 203: /* type_name_list: type_name_list COMMA IDENTIFIER */ -#line 1666 "MachineIndependent/glslang.y" - { - // 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 7281 "MachineIndependent/glslang_tab.cpp" - break; - - case 204: /* type_specifier: type_specifier_nonarray type_parameter_specifier_opt */ -#line 1675 "MachineIndependent/glslang.y" - { - (yyval.interm.type) = (yyvsp[-1].interm.type); - (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type)); - (yyval.interm.type).typeParameters = (yyvsp[0].interm.typeParameters); - } -#line 7291 "MachineIndependent/glslang_tab.cpp" - break; - - case 205: /* type_specifier: type_specifier_nonarray type_parameter_specifier_opt array_specifier */ -#line 1680 "MachineIndependent/glslang.y" - { - parseContext.arrayOfArrayVersionCheck((yyvsp[0].interm).loc, (yyvsp[0].interm).arraySizes); - (yyval.interm.type) = (yyvsp[-2].interm.type); - (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type)); - (yyval.interm.type).typeParameters = (yyvsp[-1].interm.typeParameters); - (yyval.interm.type).arraySizes = (yyvsp[0].interm).arraySizes; - } -#line 7303 "MachineIndependent/glslang_tab.cpp" - break; - - case 206: /* array_specifier: LEFT_BRACKET RIGHT_BRACKET */ -#line 1690 "MachineIndependent/glslang.y" - { - (yyval.interm).loc = (yyvsp[-1].lex).loc; - (yyval.interm).arraySizes = new TArraySizes; - (yyval.interm).arraySizes->addInnerSize(); - } -#line 7313 "MachineIndependent/glslang_tab.cpp" - break; - - case 207: /* array_specifier: LEFT_BRACKET conditional_expression RIGHT_BRACKET */ -#line 1695 "MachineIndependent/glslang.y" - { - (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, "array size"); - (yyval.interm).arraySizes->addInnerSize(size); - } -#line 7326 "MachineIndependent/glslang_tab.cpp" - break; - - case 208: /* array_specifier: array_specifier LEFT_BRACKET RIGHT_BRACKET */ -#line 1703 "MachineIndependent/glslang.y" - { - (yyval.interm) = (yyvsp[-2].interm); - (yyval.interm).arraySizes->addInnerSize(); - } -#line 7335 "MachineIndependent/glslang_tab.cpp" - break; - - case 209: /* array_specifier: array_specifier LEFT_BRACKET conditional_expression RIGHT_BRACKET */ -#line 1707 "MachineIndependent/glslang.y" - { - (yyval.interm) = (yyvsp[-3].interm); - - TArraySize size; - parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size"); - (yyval.interm).arraySizes->addInnerSize(size); - } -#line 7347 "MachineIndependent/glslang_tab.cpp" - break; - - case 210: /* type_parameter_specifier_opt: type_parameter_specifier */ -#line 1717 "MachineIndependent/glslang.y" - { - (yyval.interm.typeParameters) = (yyvsp[0].interm.typeParameters); - } -#line 7355 "MachineIndependent/glslang_tab.cpp" - break; - - case 211: /* type_parameter_specifier_opt: %empty */ -#line 1720 "MachineIndependent/glslang.y" - { - (yyval.interm.typeParameters) = 0; - } -#line 7363 "MachineIndependent/glslang_tab.cpp" - break; - - case 212: /* type_parameter_specifier: LEFT_ANGLE type_parameter_specifier_list RIGHT_ANGLE */ -#line 1726 "MachineIndependent/glslang.y" - { - (yyval.interm.typeParameters) = (yyvsp[-1].interm.typeParameters); - } -#line 7371 "MachineIndependent/glslang_tab.cpp" - break; - - case 213: /* type_parameter_specifier_list: unary_expression */ -#line 1732 "MachineIndependent/glslang.y" - { - (yyval.interm.typeParameters) = new TArraySizes; - - TArraySize size; - parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter"); - (yyval.interm.typeParameters)->addInnerSize(size); - } -#line 7383 "MachineIndependent/glslang_tab.cpp" - break; - - case 214: /* type_parameter_specifier_list: type_parameter_specifier_list COMMA unary_expression */ -#line 1739 "MachineIndependent/glslang.y" - { - (yyval.interm.typeParameters) = (yyvsp[-2].interm.typeParameters); - - TArraySize size; - parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter"); - (yyval.interm.typeParameters)->addInnerSize(size); - } -#line 7395 "MachineIndependent/glslang_tab.cpp" - break; - - case 215: /* type_specifier_nonarray: VOID */ -#line 1749 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtVoid; - } -#line 7404 "MachineIndependent/glslang_tab.cpp" - break; - - case 216: /* type_specifier_nonarray: FLOAT */ -#line 1753 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - } -#line 7413 "MachineIndependent/glslang_tab.cpp" - break; - - case 217: /* type_specifier_nonarray: INT */ -#line 1757 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt; - } -#line 7422 "MachineIndependent/glslang_tab.cpp" - break; - - case 218: /* type_specifier_nonarray: UINT */ -#line 1761 "MachineIndependent/glslang.y" - { - 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 7432 "MachineIndependent/glslang_tab.cpp" - break; - - case 219: /* type_specifier_nonarray: BOOL */ -#line 1766 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtBool; - } -#line 7441 "MachineIndependent/glslang_tab.cpp" - break; - - case 220: /* type_specifier_nonarray: VEC2 */ -#line 1770 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setVector(2); - } -#line 7451 "MachineIndependent/glslang_tab.cpp" - break; - - case 221: /* type_specifier_nonarray: VEC3 */ -#line 1775 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setVector(3); - } -#line 7461 "MachineIndependent/glslang_tab.cpp" - break; - - case 222: /* type_specifier_nonarray: VEC4 */ -#line 1780 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setVector(4); - } -#line 7471 "MachineIndependent/glslang_tab.cpp" - break; - - case 223: /* type_specifier_nonarray: BVEC2 */ -#line 1785 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtBool; - (yyval.interm.type).setVector(2); - } -#line 7481 "MachineIndependent/glslang_tab.cpp" - break; - - case 224: /* type_specifier_nonarray: BVEC3 */ -#line 1790 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtBool; - (yyval.interm.type).setVector(3); - } -#line 7491 "MachineIndependent/glslang_tab.cpp" - break; - - case 225: /* type_specifier_nonarray: BVEC4 */ -#line 1795 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtBool; - (yyval.interm.type).setVector(4); - } -#line 7501 "MachineIndependent/glslang_tab.cpp" - break; - - case 226: /* type_specifier_nonarray: IVEC2 */ -#line 1800 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt; - (yyval.interm.type).setVector(2); - } -#line 7511 "MachineIndependent/glslang_tab.cpp" - break; - - case 227: /* type_specifier_nonarray: IVEC3 */ -#line 1805 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt; - (yyval.interm.type).setVector(3); - } -#line 7521 "MachineIndependent/glslang_tab.cpp" - break; - - case 228: /* type_specifier_nonarray: IVEC4 */ -#line 1810 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt; - (yyval.interm.type).setVector(4); - } -#line 7531 "MachineIndependent/glslang_tab.cpp" - break; - - case 229: /* type_specifier_nonarray: UVEC2 */ -#line 1815 "MachineIndependent/glslang.y" - { - 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 7542 "MachineIndependent/glslang_tab.cpp" - break; - - case 230: /* type_specifier_nonarray: UVEC3 */ -#line 1821 "MachineIndependent/glslang.y" - { - 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 7553 "MachineIndependent/glslang_tab.cpp" - break; - - case 231: /* type_specifier_nonarray: UVEC4 */ -#line 1827 "MachineIndependent/glslang.y" - { - 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 7564 "MachineIndependent/glslang_tab.cpp" - break; - - case 232: /* type_specifier_nonarray: MAT2 */ -#line 1833 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(2, 2); - } -#line 7574 "MachineIndependent/glslang_tab.cpp" - break; - - case 233: /* type_specifier_nonarray: MAT3 */ -#line 1838 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(3, 3); - } -#line 7584 "MachineIndependent/glslang_tab.cpp" - break; - - case 234: /* type_specifier_nonarray: MAT4 */ -#line 1843 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(4, 4); - } -#line 7594 "MachineIndependent/glslang_tab.cpp" - break; - - case 235: /* type_specifier_nonarray: MAT2X2 */ -#line 1848 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(2, 2); - } -#line 7604 "MachineIndependent/glslang_tab.cpp" - break; - - case 236: /* type_specifier_nonarray: MAT2X3 */ -#line 1853 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(2, 3); - } -#line 7614 "MachineIndependent/glslang_tab.cpp" - break; - - case 237: /* type_specifier_nonarray: MAT2X4 */ -#line 1858 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(2, 4); - } -#line 7624 "MachineIndependent/glslang_tab.cpp" - break; - - case 238: /* type_specifier_nonarray: MAT3X2 */ -#line 1863 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(3, 2); - } -#line 7634 "MachineIndependent/glslang_tab.cpp" - break; - - case 239: /* type_specifier_nonarray: MAT3X3 */ -#line 1868 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(3, 3); - } -#line 7644 "MachineIndependent/glslang_tab.cpp" - break; - - case 240: /* type_specifier_nonarray: MAT3X4 */ -#line 1873 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(3, 4); - } -#line 7654 "MachineIndependent/glslang_tab.cpp" - break; - - case 241: /* type_specifier_nonarray: MAT4X2 */ -#line 1878 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(4, 2); - } -#line 7664 "MachineIndependent/glslang_tab.cpp" - break; - - case 242: /* type_specifier_nonarray: MAT4X3 */ -#line 1883 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(4, 3); - } -#line 7674 "MachineIndependent/glslang_tab.cpp" - break; - - case 243: /* type_specifier_nonarray: MAT4X4 */ -#line 1888 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(4, 4); - } -#line 7684 "MachineIndependent/glslang_tab.cpp" - break; - - case 244: /* type_specifier_nonarray: DOUBLE */ -#line 1894 "MachineIndependent/glslang.y" - { - parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double"); - if (! parseContext.symbolTable.atBuiltInLevel()) - parseContext.doubleCheck((yyvsp[0].lex).loc, "double"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - } -#line 7696 "MachineIndependent/glslang_tab.cpp" - break; - - case 245: /* type_specifier_nonarray: FLOAT16_T */ -#line 1901 "MachineIndependent/glslang.y" - { - parseContext.float16ScalarVectorCheck((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 7706 "MachineIndependent/glslang_tab.cpp" - break; - - case 246: /* type_specifier_nonarray: FLOAT32_T */ -#line 1906 "MachineIndependent/glslang.y" - { - 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 7716 "MachineIndependent/glslang_tab.cpp" - break; - - case 247: /* type_specifier_nonarray: FLOAT64_T */ -#line 1911 "MachineIndependent/glslang.y" - { - 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 7726 "MachineIndependent/glslang_tab.cpp" - break; - - case 248: /* type_specifier_nonarray: INT8_T */ -#line 1916 "MachineIndependent/glslang.y" - { - parseContext.int8ScalarVectorCheck((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 7736 "MachineIndependent/glslang_tab.cpp" - break; - - case 249: /* type_specifier_nonarray: UINT8_T */ -#line 1921 "MachineIndependent/glslang.y" - { - parseContext.int8ScalarVectorCheck((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 7746 "MachineIndependent/glslang_tab.cpp" - break; - - case 250: /* type_specifier_nonarray: INT16_T */ -#line 1926 "MachineIndependent/glslang.y" - { - parseContext.int16ScalarVectorCheck((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 7756 "MachineIndependent/glslang_tab.cpp" - break; - - case 251: /* type_specifier_nonarray: UINT16_T */ -#line 1931 "MachineIndependent/glslang.y" - { - parseContext.int16ScalarVectorCheck((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 7766 "MachineIndependent/glslang_tab.cpp" - break; - - case 252: /* type_specifier_nonarray: INT32_T */ -#line 1936 "MachineIndependent/glslang.y" - { - 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 7776 "MachineIndependent/glslang_tab.cpp" - break; - - case 253: /* type_specifier_nonarray: UINT32_T */ -#line 1941 "MachineIndependent/glslang.y" - { - 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 7786 "MachineIndependent/glslang_tab.cpp" - break; - - case 254: /* type_specifier_nonarray: INT64_T */ -#line 1946 "MachineIndependent/glslang.y" - { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt64; - } -#line 7796 "MachineIndependent/glslang_tab.cpp" - break; - - case 255: /* type_specifier_nonarray: UINT64_T */ -#line 1951 "MachineIndependent/glslang.y" - { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint64; - } -#line 7806 "MachineIndependent/glslang_tab.cpp" - break; - - case 256: /* type_specifier_nonarray: DVEC2 */ -#line 1956 "MachineIndependent/glslang.y" - { - parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector"); - if (! parseContext.symbolTable.atBuiltInLevel()) - 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 7819 "MachineIndependent/glslang_tab.cpp" - break; - - case 257: /* type_specifier_nonarray: DVEC3 */ -#line 1964 "MachineIndependent/glslang.y" - { - parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector"); - if (! parseContext.symbolTable.atBuiltInLevel()) - 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 7832 "MachineIndependent/glslang_tab.cpp" - break; - - case 258: /* type_specifier_nonarray: DVEC4 */ -#line 1972 "MachineIndependent/glslang.y" - { - parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector"); - if (! parseContext.symbolTable.atBuiltInLevel()) - 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 7845 "MachineIndependent/glslang_tab.cpp" - break; - - case 259: /* type_specifier_nonarray: F16VEC2 */ -#line 1980 "MachineIndependent/glslang.y" - { - parseContext.float16ScalarVectorCheck((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 7856 "MachineIndependent/glslang_tab.cpp" - break; - - case 260: /* type_specifier_nonarray: F16VEC3 */ -#line 1986 "MachineIndependent/glslang.y" - { - parseContext.float16ScalarVectorCheck((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 7867 "MachineIndependent/glslang_tab.cpp" - break; - - case 261: /* type_specifier_nonarray: F16VEC4 */ -#line 1992 "MachineIndependent/glslang.y" - { - parseContext.float16ScalarVectorCheck((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 7878 "MachineIndependent/glslang_tab.cpp" - break; - - case 262: /* type_specifier_nonarray: F32VEC2 */ -#line 1998 "MachineIndependent/glslang.y" - { - 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 7889 "MachineIndependent/glslang_tab.cpp" - break; - - case 263: /* type_specifier_nonarray: F32VEC3 */ -#line 2004 "MachineIndependent/glslang.y" - { - 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 7900 "MachineIndependent/glslang_tab.cpp" - break; - - case 264: /* type_specifier_nonarray: F32VEC4 */ -#line 2010 "MachineIndependent/glslang.y" - { - 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 7911 "MachineIndependent/glslang_tab.cpp" - break; - - case 265: /* type_specifier_nonarray: F64VEC2 */ -#line 2016 "MachineIndependent/glslang.y" - { - 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 7922 "MachineIndependent/glslang_tab.cpp" - break; - - case 266: /* type_specifier_nonarray: F64VEC3 */ -#line 2022 "MachineIndependent/glslang.y" - { - 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 7933 "MachineIndependent/glslang_tab.cpp" - break; - - case 267: /* type_specifier_nonarray: F64VEC4 */ -#line 2028 "MachineIndependent/glslang.y" - { - 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 7944 "MachineIndependent/glslang_tab.cpp" - break; - - case 268: /* type_specifier_nonarray: I8VEC2 */ -#line 2034 "MachineIndependent/glslang.y" - { - parseContext.int8ScalarVectorCheck((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 7955 "MachineIndependent/glslang_tab.cpp" - break; - - case 269: /* type_specifier_nonarray: I8VEC3 */ -#line 2040 "MachineIndependent/glslang.y" - { - parseContext.int8ScalarVectorCheck((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 7966 "MachineIndependent/glslang_tab.cpp" - break; - - case 270: /* type_specifier_nonarray: I8VEC4 */ -#line 2046 "MachineIndependent/glslang.y" - { - parseContext.int8ScalarVectorCheck((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 7977 "MachineIndependent/glslang_tab.cpp" - break; - - case 271: /* type_specifier_nonarray: I16VEC2 */ -#line 2052 "MachineIndependent/glslang.y" - { - parseContext.int16ScalarVectorCheck((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 7988 "MachineIndependent/glslang_tab.cpp" - break; - - case 272: /* type_specifier_nonarray: I16VEC3 */ -#line 2058 "MachineIndependent/glslang.y" - { - parseContext.int16ScalarVectorCheck((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 7999 "MachineIndependent/glslang_tab.cpp" - break; - - case 273: /* type_specifier_nonarray: I16VEC4 */ -#line 2064 "MachineIndependent/glslang.y" - { - parseContext.int16ScalarVectorCheck((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 8010 "MachineIndependent/glslang_tab.cpp" - break; - - case 274: /* type_specifier_nonarray: I32VEC2 */ -#line 2070 "MachineIndependent/glslang.y" - { - 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 8021 "MachineIndependent/glslang_tab.cpp" - break; - - case 275: /* type_specifier_nonarray: I32VEC3 */ -#line 2076 "MachineIndependent/glslang.y" - { - 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 8032 "MachineIndependent/glslang_tab.cpp" - break; - - case 276: /* type_specifier_nonarray: I32VEC4 */ -#line 2082 "MachineIndependent/glslang.y" - { - 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 8043 "MachineIndependent/glslang_tab.cpp" - break; - - case 277: /* type_specifier_nonarray: I64VEC2 */ -#line 2088 "MachineIndependent/glslang.y" - { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt64; - (yyval.interm.type).setVector(2); - } -#line 8054 "MachineIndependent/glslang_tab.cpp" - break; - - case 278: /* type_specifier_nonarray: I64VEC3 */ -#line 2094 "MachineIndependent/glslang.y" - { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt64; - (yyval.interm.type).setVector(3); - } -#line 8065 "MachineIndependent/glslang_tab.cpp" - break; - - case 279: /* type_specifier_nonarray: I64VEC4 */ -#line 2100 "MachineIndependent/glslang.y" - { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt64; - (yyval.interm.type).setVector(4); - } -#line 8076 "MachineIndependent/glslang_tab.cpp" - break; - - case 280: /* type_specifier_nonarray: U8VEC2 */ -#line 2106 "MachineIndependent/glslang.y" - { - parseContext.int8ScalarVectorCheck((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 8087 "MachineIndependent/glslang_tab.cpp" - break; - - case 281: /* type_specifier_nonarray: U8VEC3 */ -#line 2112 "MachineIndependent/glslang.y" - { - parseContext.int8ScalarVectorCheck((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(3); - } -#line 8098 "MachineIndependent/glslang_tab.cpp" - break; - - case 282: /* type_specifier_nonarray: U8VEC4 */ -#line 2118 "MachineIndependent/glslang.y" - { - parseContext.int8ScalarVectorCheck((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 8109 "MachineIndependent/glslang_tab.cpp" - break; - - case 283: /* type_specifier_nonarray: U16VEC2 */ -#line 2124 "MachineIndependent/glslang.y" - { - parseContext.int16ScalarVectorCheck((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 8120 "MachineIndependent/glslang_tab.cpp" - break; - - case 284: /* type_specifier_nonarray: U16VEC3 */ -#line 2130 "MachineIndependent/glslang.y" - { - parseContext.int16ScalarVectorCheck((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 8131 "MachineIndependent/glslang_tab.cpp" - break; - - case 285: /* type_specifier_nonarray: U16VEC4 */ -#line 2136 "MachineIndependent/glslang.y" - { - parseContext.int16ScalarVectorCheck((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 8142 "MachineIndependent/glslang_tab.cpp" - break; - - case 286: /* type_specifier_nonarray: U32VEC2 */ -#line 2142 "MachineIndependent/glslang.y" - { - 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 8153 "MachineIndependent/glslang_tab.cpp" - break; - - case 287: /* type_specifier_nonarray: U32VEC3 */ -#line 2148 "MachineIndependent/glslang.y" - { - 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 8164 "MachineIndependent/glslang_tab.cpp" - break; - - case 288: /* type_specifier_nonarray: U32VEC4 */ -#line 2154 "MachineIndependent/glslang.y" - { - 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 8175 "MachineIndependent/glslang_tab.cpp" - break; - - case 289: /* type_specifier_nonarray: U64VEC2 */ -#line 2160 "MachineIndependent/glslang.y" - { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint64; - (yyval.interm.type).setVector(2); - } -#line 8186 "MachineIndependent/glslang_tab.cpp" - break; - - case 290: /* type_specifier_nonarray: U64VEC3 */ -#line 2166 "MachineIndependent/glslang.y" - { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint64; - (yyval.interm.type).setVector(3); - } -#line 8197 "MachineIndependent/glslang_tab.cpp" - break; - - case 291: /* type_specifier_nonarray: U64VEC4 */ -#line 2172 "MachineIndependent/glslang.y" - { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint64; - (yyval.interm.type).setVector(4); - } -#line 8208 "MachineIndependent/glslang_tab.cpp" - break; - - case 292: /* type_specifier_nonarray: DMAT2 */ -#line 2178 "MachineIndependent/glslang.y" - { - parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix"); - if (! parseContext.symbolTable.atBuiltInLevel()) - 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 8221 "MachineIndependent/glslang_tab.cpp" - break; - - case 293: /* type_specifier_nonarray: DMAT3 */ -#line 2186 "MachineIndependent/glslang.y" - { - parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix"); - if (! parseContext.symbolTable.atBuiltInLevel()) - 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 8234 "MachineIndependent/glslang_tab.cpp" - break; - - case 294: /* type_specifier_nonarray: DMAT4 */ -#line 2194 "MachineIndependent/glslang.y" - { - parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix"); - if (! parseContext.symbolTable.atBuiltInLevel()) - 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 8247 "MachineIndependent/glslang_tab.cpp" - break; - - case 295: /* type_specifier_nonarray: DMAT2X2 */ -#line 2202 "MachineIndependent/glslang.y" - { - parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix"); - if (! parseContext.symbolTable.atBuiltInLevel()) - 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 8260 "MachineIndependent/glslang_tab.cpp" - break; - - case 296: /* type_specifier_nonarray: DMAT2X3 */ -#line 2210 "MachineIndependent/glslang.y" - { - parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix"); - if (! parseContext.symbolTable.atBuiltInLevel()) - 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 8273 "MachineIndependent/glslang_tab.cpp" - break; - - case 297: /* type_specifier_nonarray: DMAT2X4 */ -#line 2218 "MachineIndependent/glslang.y" - { - parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix"); - if (! parseContext.symbolTable.atBuiltInLevel()) - 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 8286 "MachineIndependent/glslang_tab.cpp" - break; - - case 298: /* type_specifier_nonarray: DMAT3X2 */ -#line 2226 "MachineIndependent/glslang.y" - { - parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix"); - if (! parseContext.symbolTable.atBuiltInLevel()) - 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 8299 "MachineIndependent/glslang_tab.cpp" - break; - - case 299: /* type_specifier_nonarray: DMAT3X3 */ -#line 2234 "MachineIndependent/glslang.y" - { - parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix"); - if (! parseContext.symbolTable.atBuiltInLevel()) - 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 8312 "MachineIndependent/glslang_tab.cpp" - break; - - case 300: /* type_specifier_nonarray: DMAT3X4 */ -#line 2242 "MachineIndependent/glslang.y" - { - parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix"); - if (! parseContext.symbolTable.atBuiltInLevel()) - 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 8325 "MachineIndependent/glslang_tab.cpp" - break; - - case 301: /* type_specifier_nonarray: DMAT4X2 */ -#line 2250 "MachineIndependent/glslang.y" - { - parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix"); - if (! parseContext.symbolTable.atBuiltInLevel()) - 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 8338 "MachineIndependent/glslang_tab.cpp" - break; - - case 302: /* type_specifier_nonarray: DMAT4X3 */ -#line 2258 "MachineIndependent/glslang.y" - { - parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix"); - if (! parseContext.symbolTable.atBuiltInLevel()) - 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 8351 "MachineIndependent/glslang_tab.cpp" - break; - - case 303: /* type_specifier_nonarray: DMAT4X4 */ -#line 2266 "MachineIndependent/glslang.y" - { - parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix"); - if (! parseContext.symbolTable.atBuiltInLevel()) - 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 8364 "MachineIndependent/glslang_tab.cpp" - break; - - case 304: /* type_specifier_nonarray: F16MAT2 */ -#line 2274 "MachineIndependent/glslang.y" - { - 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 8375 "MachineIndependent/glslang_tab.cpp" - break; - - case 305: /* type_specifier_nonarray: F16MAT3 */ -#line 2280 "MachineIndependent/glslang.y" - { - 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 8386 "MachineIndependent/glslang_tab.cpp" - break; - - case 306: /* type_specifier_nonarray: F16MAT4 */ -#line 2286 "MachineIndependent/glslang.y" - { - 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 8397 "MachineIndependent/glslang_tab.cpp" - break; - - case 307: /* type_specifier_nonarray: F16MAT2X2 */ -#line 2292 "MachineIndependent/glslang.y" - { - 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 8408 "MachineIndependent/glslang_tab.cpp" - break; - - case 308: /* type_specifier_nonarray: F16MAT2X3 */ -#line 2298 "MachineIndependent/glslang.y" - { - 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 8419 "MachineIndependent/glslang_tab.cpp" - break; - - case 309: /* type_specifier_nonarray: F16MAT2X4 */ -#line 2304 "MachineIndependent/glslang.y" - { - 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 8430 "MachineIndependent/glslang_tab.cpp" - break; - - case 310: /* type_specifier_nonarray: F16MAT3X2 */ -#line 2310 "MachineIndependent/glslang.y" - { - 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 8441 "MachineIndependent/glslang_tab.cpp" - break; - - case 311: /* type_specifier_nonarray: F16MAT3X3 */ -#line 2316 "MachineIndependent/glslang.y" - { - 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 8452 "MachineIndependent/glslang_tab.cpp" - break; - - case 312: /* type_specifier_nonarray: F16MAT3X4 */ -#line 2322 "MachineIndependent/glslang.y" - { - 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 8463 "MachineIndependent/glslang_tab.cpp" - break; - - case 313: /* type_specifier_nonarray: F16MAT4X2 */ -#line 2328 "MachineIndependent/glslang.y" - { - 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 8474 "MachineIndependent/glslang_tab.cpp" - break; - - case 314: /* type_specifier_nonarray: F16MAT4X3 */ -#line 2334 "MachineIndependent/glslang.y" - { - 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 8485 "MachineIndependent/glslang_tab.cpp" - break; - - case 315: /* type_specifier_nonarray: F16MAT4X4 */ -#line 2340 "MachineIndependent/glslang.y" - { - 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 8496 "MachineIndependent/glslang_tab.cpp" - break; - - case 316: /* type_specifier_nonarray: F32MAT2 */ -#line 2346 "MachineIndependent/glslang.y" - { - 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 8507 "MachineIndependent/glslang_tab.cpp" - break; - - case 317: /* type_specifier_nonarray: F32MAT3 */ -#line 2352 "MachineIndependent/glslang.y" - { - 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 8518 "MachineIndependent/glslang_tab.cpp" - break; - - case 318: /* type_specifier_nonarray: F32MAT4 */ -#line 2358 "MachineIndependent/glslang.y" - { - 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 8529 "MachineIndependent/glslang_tab.cpp" - break; - - case 319: /* type_specifier_nonarray: F32MAT2X2 */ -#line 2364 "MachineIndependent/glslang.y" - { - 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 8540 "MachineIndependent/glslang_tab.cpp" - break; - - case 320: /* type_specifier_nonarray: F32MAT2X3 */ -#line 2370 "MachineIndependent/glslang.y" - { - 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 8551 "MachineIndependent/glslang_tab.cpp" - break; - - case 321: /* type_specifier_nonarray: F32MAT2X4 */ -#line 2376 "MachineIndependent/glslang.y" - { - 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 8562 "MachineIndependent/glslang_tab.cpp" - break; - - case 322: /* type_specifier_nonarray: F32MAT3X2 */ -#line 2382 "MachineIndependent/glslang.y" - { - 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 8573 "MachineIndependent/glslang_tab.cpp" - break; - - case 323: /* type_specifier_nonarray: F32MAT3X3 */ -#line 2388 "MachineIndependent/glslang.y" - { - 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 8584 "MachineIndependent/glslang_tab.cpp" - break; - - case 324: /* type_specifier_nonarray: F32MAT3X4 */ -#line 2394 "MachineIndependent/glslang.y" - { - 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 8595 "MachineIndependent/glslang_tab.cpp" - break; - - case 325: /* type_specifier_nonarray: F32MAT4X2 */ -#line 2400 "MachineIndependent/glslang.y" - { - 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 8606 "MachineIndependent/glslang_tab.cpp" - break; - - case 326: /* type_specifier_nonarray: F32MAT4X3 */ -#line 2406 "MachineIndependent/glslang.y" - { - 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 8617 "MachineIndependent/glslang_tab.cpp" - break; - - case 327: /* type_specifier_nonarray: F32MAT4X4 */ -#line 2412 "MachineIndependent/glslang.y" - { - 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 8628 "MachineIndependent/glslang_tab.cpp" - break; - - case 328: /* type_specifier_nonarray: F64MAT2 */ -#line 2418 "MachineIndependent/glslang.y" - { - 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 8639 "MachineIndependent/glslang_tab.cpp" - break; - - case 329: /* type_specifier_nonarray: F64MAT3 */ -#line 2424 "MachineIndependent/glslang.y" - { - 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 8650 "MachineIndependent/glslang_tab.cpp" - break; - - case 330: /* type_specifier_nonarray: F64MAT4 */ -#line 2430 "MachineIndependent/glslang.y" - { - 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 8661 "MachineIndependent/glslang_tab.cpp" - break; - - case 331: /* type_specifier_nonarray: F64MAT2X2 */ -#line 2436 "MachineIndependent/glslang.y" - { - 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 8672 "MachineIndependent/glslang_tab.cpp" - break; - - case 332: /* type_specifier_nonarray: F64MAT2X3 */ -#line 2442 "MachineIndependent/glslang.y" - { - 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 8683 "MachineIndependent/glslang_tab.cpp" - break; - - case 333: /* type_specifier_nonarray: F64MAT2X4 */ -#line 2448 "MachineIndependent/glslang.y" - { - 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 8694 "MachineIndependent/glslang_tab.cpp" - break; - - case 334: /* type_specifier_nonarray: F64MAT3X2 */ -#line 2454 "MachineIndependent/glslang.y" - { - 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 8705 "MachineIndependent/glslang_tab.cpp" - break; - - case 335: /* type_specifier_nonarray: F64MAT3X3 */ -#line 2460 "MachineIndependent/glslang.y" - { - 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 8716 "MachineIndependent/glslang_tab.cpp" - break; - - case 336: /* type_specifier_nonarray: F64MAT3X4 */ -#line 2466 "MachineIndependent/glslang.y" - { - 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 8727 "MachineIndependent/glslang_tab.cpp" - break; - - case 337: /* type_specifier_nonarray: F64MAT4X2 */ -#line 2472 "MachineIndependent/glslang.y" - { - 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 8738 "MachineIndependent/glslang_tab.cpp" - break; - - case 338: /* type_specifier_nonarray: F64MAT4X3 */ -#line 2478 "MachineIndependent/glslang.y" - { - 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 8749 "MachineIndependent/glslang_tab.cpp" - break; - - case 339: /* type_specifier_nonarray: F64MAT4X4 */ -#line 2484 "MachineIndependent/glslang.y" - { - 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 8760 "MachineIndependent/glslang_tab.cpp" - break; - - case 340: /* type_specifier_nonarray: ACCSTRUCTNV */ -#line 2490 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtAccStruct; - } -#line 8769 "MachineIndependent/glslang_tab.cpp" - break; - - case 341: /* type_specifier_nonarray: ACCSTRUCTEXT */ -#line 2494 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtAccStruct; - } -#line 8778 "MachineIndependent/glslang_tab.cpp" - break; - - case 342: /* type_specifier_nonarray: RAYQUERYEXT */ -#line 2498 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtRayQuery; - } -#line 8787 "MachineIndependent/glslang_tab.cpp" - break; - - case 343: /* type_specifier_nonarray: ATOMIC_UINT */ -#line 2502 "MachineIndependent/glslang.y" - { - 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 8797 "MachineIndependent/glslang_tab.cpp" - break; - - case 344: /* type_specifier_nonarray: SAMPLER1D */ -#line 2507 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd1D); - } -#line 8807 "MachineIndependent/glslang_tab.cpp" - break; - - case 345: /* type_specifier_nonarray: SAMPLER2D */ -#line 2513 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd2D); - } -#line 8817 "MachineIndependent/glslang_tab.cpp" - break; - - case 346: /* type_specifier_nonarray: SAMPLER3D */ -#line 2518 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd3D); - } -#line 8827 "MachineIndependent/glslang_tab.cpp" - break; - - case 347: /* type_specifier_nonarray: SAMPLERCUBE */ -#line 2523 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, EsdCube); - } -#line 8837 "MachineIndependent/glslang_tab.cpp" - break; - - case 348: /* type_specifier_nonarray: SAMPLER2DSHADOW */ -#line 2528 "MachineIndependent/glslang.y" - { - (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 8847 "MachineIndependent/glslang_tab.cpp" - break; - - case 349: /* type_specifier_nonarray: SAMPLERCUBESHADOW */ -#line 2533 "MachineIndependent/glslang.y" - { - (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 8857 "MachineIndependent/glslang_tab.cpp" - break; - - case 350: /* type_specifier_nonarray: SAMPLER2DARRAY */ -#line 2538 "MachineIndependent/glslang.y" - { - (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 8867 "MachineIndependent/glslang_tab.cpp" - break; - - case 351: /* type_specifier_nonarray: SAMPLER2DARRAYSHADOW */ -#line 2543 "MachineIndependent/glslang.y" - { - (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 8877 "MachineIndependent/glslang_tab.cpp" - break; - - case 352: /* type_specifier_nonarray: SAMPLER1DSHADOW */ -#line 2549 "MachineIndependent/glslang.y" - { - (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 8887 "MachineIndependent/glslang_tab.cpp" - break; - - case 353: /* type_specifier_nonarray: SAMPLER1DARRAY */ -#line 2554 "MachineIndependent/glslang.y" - { - (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 8897 "MachineIndependent/glslang_tab.cpp" - break; - - case 354: /* type_specifier_nonarray: SAMPLER1DARRAYSHADOW */ -#line 2559 "MachineIndependent/glslang.y" - { - (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 8907 "MachineIndependent/glslang_tab.cpp" - break; - - case 355: /* type_specifier_nonarray: SAMPLERCUBEARRAY */ -#line 2564 "MachineIndependent/glslang.y" - { - (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 8917 "MachineIndependent/glslang_tab.cpp" - break; - - case 356: /* type_specifier_nonarray: SAMPLERCUBEARRAYSHADOW */ -#line 2569 "MachineIndependent/glslang.y" - { - (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 8927 "MachineIndependent/glslang_tab.cpp" - break; - - case 357: /* type_specifier_nonarray: F16SAMPLER1D */ -#line 2574 "MachineIndependent/glslang.y" - { - 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); - } -#line 8938 "MachineIndependent/glslang_tab.cpp" - break; - - case 358: /* type_specifier_nonarray: F16SAMPLER2D */ -#line 2580 "MachineIndependent/glslang.y" - { - 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); - } -#line 8949 "MachineIndependent/glslang_tab.cpp" - break; - - case 359: /* type_specifier_nonarray: F16SAMPLER3D */ -#line 2586 "MachineIndependent/glslang.y" - { - 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); - } -#line 8960 "MachineIndependent/glslang_tab.cpp" - break; - - case 360: /* type_specifier_nonarray: F16SAMPLERCUBE */ -#line 2592 "MachineIndependent/glslang.y" - { - 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); - } -#line 8971 "MachineIndependent/glslang_tab.cpp" - break; - - case 361: /* type_specifier_nonarray: F16SAMPLER1DSHADOW */ -#line 2598 "MachineIndependent/glslang.y" - { - 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); - } -#line 8982 "MachineIndependent/glslang_tab.cpp" - break; - - case 362: /* type_specifier_nonarray: F16SAMPLER2DSHADOW */ -#line 2604 "MachineIndependent/glslang.y" - { - 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); - } -#line 8993 "MachineIndependent/glslang_tab.cpp" - break; - - case 363: /* type_specifier_nonarray: F16SAMPLERCUBESHADOW */ -#line 2610 "MachineIndependent/glslang.y" - { - 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); - } -#line 9004 "MachineIndependent/glslang_tab.cpp" - break; - - case 364: /* type_specifier_nonarray: F16SAMPLER1DARRAY */ -#line 2616 "MachineIndependent/glslang.y" - { - 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); - } -#line 9015 "MachineIndependent/glslang_tab.cpp" - break; - - case 365: /* type_specifier_nonarray: F16SAMPLER2DARRAY */ -#line 2622 "MachineIndependent/glslang.y" - { - 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); - } -#line 9026 "MachineIndependent/glslang_tab.cpp" - break; - - case 366: /* type_specifier_nonarray: F16SAMPLER1DARRAYSHADOW */ -#line 2628 "MachineIndependent/glslang.y" - { - 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); - } -#line 9037 "MachineIndependent/glslang_tab.cpp" - break; - - case 367: /* type_specifier_nonarray: F16SAMPLER2DARRAYSHADOW */ -#line 2634 "MachineIndependent/glslang.y" - { - 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); - } -#line 9048 "MachineIndependent/glslang_tab.cpp" - break; - - case 368: /* type_specifier_nonarray: F16SAMPLERCUBEARRAY */ -#line 2640 "MachineIndependent/glslang.y" - { - 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); - } -#line 9059 "MachineIndependent/glslang_tab.cpp" - break; - - case 369: /* type_specifier_nonarray: F16SAMPLERCUBEARRAYSHADOW */ -#line 2646 "MachineIndependent/glslang.y" - { - 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); - } -#line 9070 "MachineIndependent/glslang_tab.cpp" - break; - - case 370: /* type_specifier_nonarray: ISAMPLER1D */ -#line 2652 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, Esd1D); - } -#line 9080 "MachineIndependent/glslang_tab.cpp" - break; - - case 371: /* type_specifier_nonarray: ISAMPLER2D */ -#line 2658 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, Esd2D); - } -#line 9090 "MachineIndependent/glslang_tab.cpp" - break; - - case 372: /* type_specifier_nonarray: ISAMPLER3D */ -#line 2663 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, Esd3D); - } -#line 9100 "MachineIndependent/glslang_tab.cpp" - break; - - case 373: /* type_specifier_nonarray: ISAMPLERCUBE */ -#line 2668 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, EsdCube); - } -#line 9110 "MachineIndependent/glslang_tab.cpp" - break; - - case 374: /* type_specifier_nonarray: ISAMPLER2DARRAY */ -#line 2673 "MachineIndependent/glslang.y" - { - (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 9120 "MachineIndependent/glslang_tab.cpp" - break; - - case 375: /* type_specifier_nonarray: USAMPLER2D */ -#line 2678 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, Esd2D); - } -#line 9130 "MachineIndependent/glslang_tab.cpp" - break; - - case 376: /* type_specifier_nonarray: USAMPLER3D */ -#line 2683 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, Esd3D); - } -#line 9140 "MachineIndependent/glslang_tab.cpp" - break; - - case 377: /* type_specifier_nonarray: USAMPLERCUBE */ -#line 2688 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, EsdCube); - } -#line 9150 "MachineIndependent/glslang_tab.cpp" - break; - - case 378: /* type_specifier_nonarray: ISAMPLER1DARRAY */ -#line 2694 "MachineIndependent/glslang.y" - { - (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 9160 "MachineIndependent/glslang_tab.cpp" - break; - - case 379: /* type_specifier_nonarray: ISAMPLERCUBEARRAY */ -#line 2699 "MachineIndependent/glslang.y" - { - (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 9170 "MachineIndependent/glslang_tab.cpp" - break; - - case 380: /* type_specifier_nonarray: USAMPLER1D */ -#line 2704 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, Esd1D); - } -#line 9180 "MachineIndependent/glslang_tab.cpp" - break; - - case 381: /* type_specifier_nonarray: USAMPLER1DARRAY */ -#line 2709 "MachineIndependent/glslang.y" - { - (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 9190 "MachineIndependent/glslang_tab.cpp" - break; - - case 382: /* type_specifier_nonarray: USAMPLERCUBEARRAY */ -#line 2714 "MachineIndependent/glslang.y" - { - (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 9200 "MachineIndependent/glslang_tab.cpp" - break; - - case 383: /* type_specifier_nonarray: TEXTURECUBEARRAY */ -#line 2719 "MachineIndependent/glslang.y" - { - (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 9210 "MachineIndependent/glslang_tab.cpp" - break; - - case 384: /* type_specifier_nonarray: ITEXTURECUBEARRAY */ -#line 2724 "MachineIndependent/glslang.y" - { - (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 9220 "MachineIndependent/glslang_tab.cpp" - break; - - case 385: /* type_specifier_nonarray: UTEXTURECUBEARRAY */ -#line 2729 "MachineIndependent/glslang.y" - { - (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 9230 "MachineIndependent/glslang_tab.cpp" - break; - - case 386: /* type_specifier_nonarray: USAMPLER2DARRAY */ -#line 2735 "MachineIndependent/glslang.y" - { - (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 9240 "MachineIndependent/glslang_tab.cpp" - break; - - case 387: /* type_specifier_nonarray: TEXTURE2D */ -#line 2740 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D); - } -#line 9250 "MachineIndependent/glslang_tab.cpp" - break; - - case 388: /* type_specifier_nonarray: TEXTURE3D */ -#line 2745 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D); - } -#line 9260 "MachineIndependent/glslang_tab.cpp" - break; - - case 389: /* type_specifier_nonarray: TEXTURE2DARRAY */ -#line 2750 "MachineIndependent/glslang.y" - { - (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 9270 "MachineIndependent/glslang_tab.cpp" - break; - - case 390: /* type_specifier_nonarray: TEXTURECUBE */ -#line 2755 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube); - } -#line 9280 "MachineIndependent/glslang_tab.cpp" - break; - - case 391: /* type_specifier_nonarray: ITEXTURE2D */ -#line 2760 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D); - } -#line 9290 "MachineIndependent/glslang_tab.cpp" - break; - - case 392: /* type_specifier_nonarray: ITEXTURE3D */ -#line 2765 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, Esd3D); - } -#line 9300 "MachineIndependent/glslang_tab.cpp" - break; - - case 393: /* type_specifier_nonarray: ITEXTURECUBE */ -#line 2770 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube); - } -#line 9310 "MachineIndependent/glslang_tab.cpp" - break; - - case 394: /* type_specifier_nonarray: ITEXTURE2DARRAY */ -#line 2775 "MachineIndependent/glslang.y" - { - (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 9320 "MachineIndependent/glslang_tab.cpp" - break; - - case 395: /* type_specifier_nonarray: UTEXTURE2D */ -#line 2780 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D); - } -#line 9330 "MachineIndependent/glslang_tab.cpp" - break; - - case 396: /* type_specifier_nonarray: UTEXTURE3D */ -#line 2785 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, Esd3D); - } -#line 9340 "MachineIndependent/glslang_tab.cpp" - break; - - case 397: /* type_specifier_nonarray: UTEXTURECUBE */ -#line 2790 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube); - } -#line 9350 "MachineIndependent/glslang_tab.cpp" - break; - - case 398: /* type_specifier_nonarray: UTEXTURE2DARRAY */ -#line 2795 "MachineIndependent/glslang.y" - { - (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 9360 "MachineIndependent/glslang_tab.cpp" - break; - - case 399: /* type_specifier_nonarray: SAMPLER */ -#line 2800 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setPureSampler(false); - } -#line 9370 "MachineIndependent/glslang_tab.cpp" - break; - - case 400: /* type_specifier_nonarray: SAMPLERSHADOW */ -#line 2805 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setPureSampler(true); - } -#line 9380 "MachineIndependent/glslang_tab.cpp" - break; - - case 401: /* type_specifier_nonarray: SAMPLER2DRECT */ -#line 2811 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, EsdRect); - } -#line 9390 "MachineIndependent/glslang_tab.cpp" - break; - - case 402: /* type_specifier_nonarray: SAMPLER2DRECTSHADOW */ -#line 2816 "MachineIndependent/glslang.y" - { - (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 9400 "MachineIndependent/glslang_tab.cpp" - break; - - case 403: /* type_specifier_nonarray: F16SAMPLER2DRECT */ -#line 2821 "MachineIndependent/glslang.y" - { - 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); - } -#line 9411 "MachineIndependent/glslang_tab.cpp" - break; - - case 404: /* type_specifier_nonarray: F16SAMPLER2DRECTSHADOW */ -#line 2827 "MachineIndependent/glslang.y" - { - 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); - } -#line 9422 "MachineIndependent/glslang_tab.cpp" - break; - - case 405: /* type_specifier_nonarray: ISAMPLER2DRECT */ -#line 2833 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, EsdRect); - } -#line 9432 "MachineIndependent/glslang_tab.cpp" - break; - - case 406: /* type_specifier_nonarray: USAMPLER2DRECT */ -#line 2838 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, EsdRect); - } -#line 9442 "MachineIndependent/glslang_tab.cpp" - break; - - case 407: /* type_specifier_nonarray: SAMPLERBUFFER */ -#line 2843 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, EsdBuffer); - } -#line 9452 "MachineIndependent/glslang_tab.cpp" - break; - - case 408: /* type_specifier_nonarray: F16SAMPLERBUFFER */ -#line 2848 "MachineIndependent/glslang.y" - { - 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); - } -#line 9463 "MachineIndependent/glslang_tab.cpp" - break; - - case 409: /* type_specifier_nonarray: ISAMPLERBUFFER */ -#line 2854 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, EsdBuffer); - } -#line 9473 "MachineIndependent/glslang_tab.cpp" - break; - - case 410: /* type_specifier_nonarray: USAMPLERBUFFER */ -#line 2859 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, EsdBuffer); - } -#line 9483 "MachineIndependent/glslang_tab.cpp" - break; - - case 411: /* type_specifier_nonarray: SAMPLER2DMS */ -#line 2864 "MachineIndependent/glslang.y" - { - (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 9493 "MachineIndependent/glslang_tab.cpp" - break; - - case 412: /* type_specifier_nonarray: F16SAMPLER2DMS */ -#line 2869 "MachineIndependent/glslang.y" - { - 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); - } -#line 9504 "MachineIndependent/glslang_tab.cpp" - break; - - case 413: /* type_specifier_nonarray: ISAMPLER2DMS */ -#line 2875 "MachineIndependent/glslang.y" - { - (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 9514 "MachineIndependent/glslang_tab.cpp" - break; - - case 414: /* type_specifier_nonarray: USAMPLER2DMS */ -#line 2880 "MachineIndependent/glslang.y" - { - (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 9524 "MachineIndependent/glslang_tab.cpp" - break; - - case 415: /* type_specifier_nonarray: SAMPLER2DMSARRAY */ -#line 2885 "MachineIndependent/glslang.y" - { - (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 9534 "MachineIndependent/glslang_tab.cpp" - break; - - case 416: /* type_specifier_nonarray: F16SAMPLER2DMSARRAY */ -#line 2890 "MachineIndependent/glslang.y" - { - 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); - } -#line 9545 "MachineIndependent/glslang_tab.cpp" - break; - - case 417: /* type_specifier_nonarray: ISAMPLER2DMSARRAY */ -#line 2896 "MachineIndependent/glslang.y" - { - (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 9555 "MachineIndependent/glslang_tab.cpp" - break; - - case 418: /* type_specifier_nonarray: USAMPLER2DMSARRAY */ -#line 2901 "MachineIndependent/glslang.y" - { - (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 9565 "MachineIndependent/glslang_tab.cpp" - break; - - case 419: /* type_specifier_nonarray: TEXTURE1D */ -#line 2906 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D); - } -#line 9575 "MachineIndependent/glslang_tab.cpp" - break; - - case 420: /* type_specifier_nonarray: F16TEXTURE1D */ -#line 2911 "MachineIndependent/glslang.y" - { - 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); - } -#line 9586 "MachineIndependent/glslang_tab.cpp" - break; - - case 421: /* type_specifier_nonarray: F16TEXTURE2D */ -#line 2917 "MachineIndependent/glslang.y" - { - 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); - } -#line 9597 "MachineIndependent/glslang_tab.cpp" - break; - - case 422: /* type_specifier_nonarray: F16TEXTURE3D */ -#line 2923 "MachineIndependent/glslang.y" - { - 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); - } -#line 9608 "MachineIndependent/glslang_tab.cpp" - break; - - case 423: /* type_specifier_nonarray: F16TEXTURECUBE */ -#line 2929 "MachineIndependent/glslang.y" - { - 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); - } -#line 9619 "MachineIndependent/glslang_tab.cpp" - break; - - case 424: /* type_specifier_nonarray: TEXTURE1DARRAY */ -#line 2935 "MachineIndependent/glslang.y" - { - (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 9629 "MachineIndependent/glslang_tab.cpp" - break; - - case 425: /* type_specifier_nonarray: F16TEXTURE1DARRAY */ -#line 2940 "MachineIndependent/glslang.y" - { - 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); - } -#line 9640 "MachineIndependent/glslang_tab.cpp" - break; - - case 426: /* type_specifier_nonarray: F16TEXTURE2DARRAY */ -#line 2946 "MachineIndependent/glslang.y" - { - 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); - } -#line 9651 "MachineIndependent/glslang_tab.cpp" - break; - - case 427: /* type_specifier_nonarray: F16TEXTURECUBEARRAY */ -#line 2952 "MachineIndependent/glslang.y" - { - 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); - } -#line 9662 "MachineIndependent/glslang_tab.cpp" - break; - - case 428: /* type_specifier_nonarray: ITEXTURE1D */ -#line 2958 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D); - } -#line 9672 "MachineIndependent/glslang_tab.cpp" - break; - - case 429: /* type_specifier_nonarray: ITEXTURE1DARRAY */ -#line 2963 "MachineIndependent/glslang.y" - { - (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 9682 "MachineIndependent/glslang_tab.cpp" - break; - - case 430: /* type_specifier_nonarray: UTEXTURE1D */ -#line 2968 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D); - } -#line 9692 "MachineIndependent/glslang_tab.cpp" - break; - - case 431: /* type_specifier_nonarray: UTEXTURE1DARRAY */ -#line 2973 "MachineIndependent/glslang.y" - { - (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 9702 "MachineIndependent/glslang_tab.cpp" - break; - - case 432: /* type_specifier_nonarray: TEXTURE2DRECT */ -#line 2978 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect); - } -#line 9712 "MachineIndependent/glslang_tab.cpp" - break; - - case 433: /* type_specifier_nonarray: F16TEXTURE2DRECT */ -#line 2983 "MachineIndependent/glslang.y" - { - 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); - } -#line 9723 "MachineIndependent/glslang_tab.cpp" - break; - - case 434: /* type_specifier_nonarray: ITEXTURE2DRECT */ -#line 2989 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, EsdRect); - } -#line 9733 "MachineIndependent/glslang_tab.cpp" - break; - - case 435: /* type_specifier_nonarray: UTEXTURE2DRECT */ -#line 2994 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, EsdRect); - } -#line 9743 "MachineIndependent/glslang_tab.cpp" - break; - - case 436: /* type_specifier_nonarray: TEXTUREBUFFER */ -#line 2999 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer); - } -#line 9753 "MachineIndependent/glslang_tab.cpp" - break; - - case 437: /* type_specifier_nonarray: F16TEXTUREBUFFER */ -#line 3004 "MachineIndependent/glslang.y" - { - 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); - } -#line 9764 "MachineIndependent/glslang_tab.cpp" - break; - - case 438: /* type_specifier_nonarray: ITEXTUREBUFFER */ -#line 3010 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer); - } -#line 9774 "MachineIndependent/glslang_tab.cpp" - break; - - case 439: /* type_specifier_nonarray: UTEXTUREBUFFER */ -#line 3015 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer); - } -#line 9784 "MachineIndependent/glslang_tab.cpp" - break; - - case 440: /* type_specifier_nonarray: TEXTURE2DMS */ -#line 3020 "MachineIndependent/glslang.y" - { - (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 9794 "MachineIndependent/glslang_tab.cpp" - break; - - case 441: /* type_specifier_nonarray: F16TEXTURE2DMS */ -#line 3025 "MachineIndependent/glslang.y" - { - 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); - } -#line 9805 "MachineIndependent/glslang_tab.cpp" - break; - - case 442: /* type_specifier_nonarray: ITEXTURE2DMS */ -#line 3031 "MachineIndependent/glslang.y" - { - (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 9815 "MachineIndependent/glslang_tab.cpp" - break; - - case 443: /* type_specifier_nonarray: UTEXTURE2DMS */ -#line 3036 "MachineIndependent/glslang.y" - { - (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 9825 "MachineIndependent/glslang_tab.cpp" - break; - - case 444: /* type_specifier_nonarray: TEXTURE2DMSARRAY */ -#line 3041 "MachineIndependent/glslang.y" - { - (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 9835 "MachineIndependent/glslang_tab.cpp" - break; - - case 445: /* type_specifier_nonarray: F16TEXTURE2DMSARRAY */ -#line 3046 "MachineIndependent/glslang.y" - { - 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); - } -#line 9846 "MachineIndependent/glslang_tab.cpp" - break; - - case 446: /* type_specifier_nonarray: ITEXTURE2DMSARRAY */ -#line 3052 "MachineIndependent/glslang.y" - { - (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 9856 "MachineIndependent/glslang_tab.cpp" - break; - - case 447: /* type_specifier_nonarray: UTEXTURE2DMSARRAY */ -#line 3057 "MachineIndependent/glslang.y" - { - (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 9866 "MachineIndependent/glslang_tab.cpp" - break; - - case 448: /* type_specifier_nonarray: IMAGE1D */ -#line 3062 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D); - } -#line 9876 "MachineIndependent/glslang_tab.cpp" - break; - - case 449: /* type_specifier_nonarray: F16IMAGE1D */ -#line 3067 "MachineIndependent/glslang.y" - { - 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); - } -#line 9887 "MachineIndependent/glslang_tab.cpp" - break; - - case 450: /* type_specifier_nonarray: IIMAGE1D */ -#line 3073 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, Esd1D); - } -#line 9897 "MachineIndependent/glslang_tab.cpp" - break; - - case 451: /* type_specifier_nonarray: UIMAGE1D */ -#line 3078 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, Esd1D); - } -#line 9907 "MachineIndependent/glslang_tab.cpp" - break; - - case 452: /* type_specifier_nonarray: IMAGE2D */ -#line 3083 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D); - } -#line 9917 "MachineIndependent/glslang_tab.cpp" - break; - - case 453: /* type_specifier_nonarray: F16IMAGE2D */ -#line 3088 "MachineIndependent/glslang.y" - { - 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); - } -#line 9928 "MachineIndependent/glslang_tab.cpp" - break; - - case 454: /* type_specifier_nonarray: IIMAGE2D */ -#line 3094 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, Esd2D); - } -#line 9938 "MachineIndependent/glslang_tab.cpp" - break; - - case 455: /* type_specifier_nonarray: UIMAGE2D */ -#line 3099 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, Esd2D); - } -#line 9948 "MachineIndependent/glslang_tab.cpp" - break; - - case 456: /* type_specifier_nonarray: IMAGE3D */ -#line 3104 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, Esd3D); - } -#line 9958 "MachineIndependent/glslang_tab.cpp" - break; - - case 457: /* type_specifier_nonarray: F16IMAGE3D */ -#line 3109 "MachineIndependent/glslang.y" - { - 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); - } -#line 9969 "MachineIndependent/glslang_tab.cpp" - break; - - case 458: /* type_specifier_nonarray: IIMAGE3D */ -#line 3115 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, Esd3D); - } -#line 9979 "MachineIndependent/glslang_tab.cpp" - break; - - case 459: /* type_specifier_nonarray: UIMAGE3D */ -#line 3120 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, Esd3D); - } -#line 9989 "MachineIndependent/glslang_tab.cpp" - break; - - case 460: /* type_specifier_nonarray: IMAGE2DRECT */ -#line 3125 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, EsdRect); - } -#line 9999 "MachineIndependent/glslang_tab.cpp" - break; - - case 461: /* type_specifier_nonarray: F16IMAGE2DRECT */ -#line 3130 "MachineIndependent/glslang.y" - { - 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); - } -#line 10010 "MachineIndependent/glslang_tab.cpp" - break; - - case 462: /* type_specifier_nonarray: IIMAGE2DRECT */ -#line 3136 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, EsdRect); - } -#line 10020 "MachineIndependent/glslang_tab.cpp" - break; - - case 463: /* type_specifier_nonarray: UIMAGE2DRECT */ -#line 3141 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, EsdRect); - } -#line 10030 "MachineIndependent/glslang_tab.cpp" - break; - - case 464: /* type_specifier_nonarray: IMAGECUBE */ -#line 3146 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube); - } -#line 10040 "MachineIndependent/glslang_tab.cpp" - break; - - case 465: /* type_specifier_nonarray: F16IMAGECUBE */ -#line 3151 "MachineIndependent/glslang.y" - { - 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); - } -#line 10051 "MachineIndependent/glslang_tab.cpp" - break; - - case 466: /* type_specifier_nonarray: IIMAGECUBE */ -#line 3157 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, EsdCube); - } -#line 10061 "MachineIndependent/glslang_tab.cpp" - break; - - case 467: /* type_specifier_nonarray: UIMAGECUBE */ -#line 3162 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, EsdCube); - } -#line 10071 "MachineIndependent/glslang_tab.cpp" - break; - - case 468: /* type_specifier_nonarray: IMAGEBUFFER */ -#line 3167 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, EsdBuffer); - } -#line 10081 "MachineIndependent/glslang_tab.cpp" - break; - - case 469: /* type_specifier_nonarray: F16IMAGEBUFFER */ -#line 3172 "MachineIndependent/glslang.y" - { - 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); - } -#line 10092 "MachineIndependent/glslang_tab.cpp" - break; - - case 470: /* type_specifier_nonarray: IIMAGEBUFFER */ -#line 3178 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, EsdBuffer); - } -#line 10102 "MachineIndependent/glslang_tab.cpp" - break; - - case 471: /* type_specifier_nonarray: UIMAGEBUFFER */ -#line 3183 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, EsdBuffer); - } -#line 10112 "MachineIndependent/glslang_tab.cpp" - break; - - case 472: /* type_specifier_nonarray: IMAGE1DARRAY */ -#line 3188 "MachineIndependent/glslang.y" - { - (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 10122 "MachineIndependent/glslang_tab.cpp" - break; - - case 473: /* type_specifier_nonarray: F16IMAGE1DARRAY */ -#line 3193 "MachineIndependent/glslang.y" - { - 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); - } -#line 10133 "MachineIndependent/glslang_tab.cpp" - break; - - case 474: /* type_specifier_nonarray: IIMAGE1DARRAY */ -#line 3199 "MachineIndependent/glslang.y" - { - (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 10143 "MachineIndependent/glslang_tab.cpp" - break; - - case 475: /* type_specifier_nonarray: UIMAGE1DARRAY */ -#line 3204 "MachineIndependent/glslang.y" - { - (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 10153 "MachineIndependent/glslang_tab.cpp" - break; - - case 476: /* type_specifier_nonarray: IMAGE2DARRAY */ -#line 3209 "MachineIndependent/glslang.y" - { - (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 10163 "MachineIndependent/glslang_tab.cpp" - break; - - case 477: /* type_specifier_nonarray: F16IMAGE2DARRAY */ -#line 3214 "MachineIndependent/glslang.y" - { - 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); - } -#line 10174 "MachineIndependent/glslang_tab.cpp" - break; - - case 478: /* type_specifier_nonarray: IIMAGE2DARRAY */ -#line 3220 "MachineIndependent/glslang.y" - { - (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 10184 "MachineIndependent/glslang_tab.cpp" - break; - - case 479: /* type_specifier_nonarray: UIMAGE2DARRAY */ -#line 3225 "MachineIndependent/glslang.y" - { - (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 10194 "MachineIndependent/glslang_tab.cpp" - break; - - case 480: /* type_specifier_nonarray: IMAGECUBEARRAY */ -#line 3230 "MachineIndependent/glslang.y" - { - (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 10204 "MachineIndependent/glslang_tab.cpp" - break; - - case 481: /* type_specifier_nonarray: F16IMAGECUBEARRAY */ -#line 3235 "MachineIndependent/glslang.y" - { - 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); - } -#line 10215 "MachineIndependent/glslang_tab.cpp" - break; - - case 482: /* type_specifier_nonarray: IIMAGECUBEARRAY */ -#line 3241 "MachineIndependent/glslang.y" - { - (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 10225 "MachineIndependent/glslang_tab.cpp" - break; - - case 483: /* type_specifier_nonarray: UIMAGECUBEARRAY */ -#line 3246 "MachineIndependent/glslang.y" - { - (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 10235 "MachineIndependent/glslang_tab.cpp" - break; - - case 484: /* type_specifier_nonarray: IMAGE2DMS */ -#line 3251 "MachineIndependent/glslang.y" - { - (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 10245 "MachineIndependent/glslang_tab.cpp" - break; - - case 485: /* type_specifier_nonarray: F16IMAGE2DMS */ -#line 3256 "MachineIndependent/glslang.y" - { - 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); - } -#line 10256 "MachineIndependent/glslang_tab.cpp" - break; - - case 486: /* type_specifier_nonarray: IIMAGE2DMS */ -#line 3262 "MachineIndependent/glslang.y" - { - (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 10266 "MachineIndependent/glslang_tab.cpp" - break; - - case 487: /* type_specifier_nonarray: UIMAGE2DMS */ -#line 3267 "MachineIndependent/glslang.y" - { - (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 10276 "MachineIndependent/glslang_tab.cpp" - break; - - case 488: /* type_specifier_nonarray: IMAGE2DMSARRAY */ -#line 3272 "MachineIndependent/glslang.y" - { - (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 10286 "MachineIndependent/glslang_tab.cpp" - break; - - case 489: /* type_specifier_nonarray: F16IMAGE2DMSARRAY */ -#line 3277 "MachineIndependent/glslang.y" - { - 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); - } -#line 10297 "MachineIndependent/glslang_tab.cpp" - break; - - case 490: /* type_specifier_nonarray: IIMAGE2DMSARRAY */ -#line 3283 "MachineIndependent/glslang.y" - { - (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 10307 "MachineIndependent/glslang_tab.cpp" - break; - - case 491: /* type_specifier_nonarray: UIMAGE2DMSARRAY */ -#line 3288 "MachineIndependent/glslang.y" - { - (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 10317 "MachineIndependent/glslang_tab.cpp" - break; - - case 492: /* type_specifier_nonarray: I64IMAGE1D */ -#line 3293 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt64, Esd1D); - } -#line 10327 "MachineIndependent/glslang_tab.cpp" - break; - - case 493: /* type_specifier_nonarray: U64IMAGE1D */ -#line 3298 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint64, Esd1D); - } -#line 10337 "MachineIndependent/glslang_tab.cpp" - break; - - case 494: /* type_specifier_nonarray: I64IMAGE2D */ -#line 3303 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt64, Esd2D); - } -#line 10347 "MachineIndependent/glslang_tab.cpp" - break; - - case 495: /* type_specifier_nonarray: U64IMAGE2D */ -#line 3308 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint64, Esd2D); - } -#line 10357 "MachineIndependent/glslang_tab.cpp" - break; - - case 496: /* type_specifier_nonarray: I64IMAGE3D */ -#line 3313 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt64, Esd3D); - } -#line 10367 "MachineIndependent/glslang_tab.cpp" - break; - - case 497: /* type_specifier_nonarray: U64IMAGE3D */ -#line 3318 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint64, Esd3D); - } -#line 10377 "MachineIndependent/glslang_tab.cpp" - break; - - case 498: /* type_specifier_nonarray: I64IMAGE2DRECT */ -#line 3323 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt64, EsdRect); - } -#line 10387 "MachineIndependent/glslang_tab.cpp" - break; - - case 499: /* type_specifier_nonarray: U64IMAGE2DRECT */ -#line 3328 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint64, EsdRect); - } -#line 10397 "MachineIndependent/glslang_tab.cpp" - break; - - case 500: /* type_specifier_nonarray: I64IMAGECUBE */ -#line 3333 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt64, EsdCube); - } -#line 10407 "MachineIndependent/glslang_tab.cpp" - break; - - case 501: /* type_specifier_nonarray: U64IMAGECUBE */ -#line 3338 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint64, EsdCube); - } -#line 10417 "MachineIndependent/glslang_tab.cpp" - break; - - case 502: /* type_specifier_nonarray: I64IMAGEBUFFER */ -#line 3343 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt64, EsdBuffer); - } -#line 10427 "MachineIndependent/glslang_tab.cpp" - break; - - case 503: /* type_specifier_nonarray: U64IMAGEBUFFER */ -#line 3348 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint64, EsdBuffer); - } -#line 10437 "MachineIndependent/glslang_tab.cpp" - break; - - case 504: /* type_specifier_nonarray: I64IMAGE1DARRAY */ -#line 3353 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt64, Esd1D, true); - } -#line 10447 "MachineIndependent/glslang_tab.cpp" - break; - - case 505: /* type_specifier_nonarray: U64IMAGE1DARRAY */ -#line 3358 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint64, Esd1D, true); - } -#line 10457 "MachineIndependent/glslang_tab.cpp" - break; - - case 506: /* type_specifier_nonarray: I64IMAGE2DARRAY */ -#line 3363 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt64, Esd2D, true); - } -#line 10467 "MachineIndependent/glslang_tab.cpp" - break; - - case 507: /* type_specifier_nonarray: U64IMAGE2DARRAY */ -#line 3368 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint64, Esd2D, true); - } -#line 10477 "MachineIndependent/glslang_tab.cpp" - break; - - case 508: /* type_specifier_nonarray: I64IMAGECUBEARRAY */ -#line 3373 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt64, EsdCube, true); - } -#line 10487 "MachineIndependent/glslang_tab.cpp" - break; - - case 509: /* type_specifier_nonarray: U64IMAGECUBEARRAY */ -#line 3378 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint64, EsdCube, true); - } -#line 10497 "MachineIndependent/glslang_tab.cpp" - break; - - case 510: /* type_specifier_nonarray: I64IMAGE2DMS */ -#line 3383 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt64, Esd2D, false, false, true); - } -#line 10507 "MachineIndependent/glslang_tab.cpp" - break; - - case 511: /* type_specifier_nonarray: U64IMAGE2DMS */ -#line 3388 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint64, Esd2D, false, false, true); - } -#line 10517 "MachineIndependent/glslang_tab.cpp" - break; - - case 512: /* type_specifier_nonarray: I64IMAGE2DMSARRAY */ -#line 3393 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt64, Esd2D, true, false, true); - } -#line 10527 "MachineIndependent/glslang_tab.cpp" - break; - - case 513: /* type_specifier_nonarray: U64IMAGE2DMSARRAY */ -#line 3398 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint64, Esd2D, true, false, true); - } -#line 10537 "MachineIndependent/glslang_tab.cpp" - break; - - case 514: /* type_specifier_nonarray: SAMPLEREXTERNALOES */ -#line 3403 "MachineIndependent/glslang.y" - { // 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 10548 "MachineIndependent/glslang_tab.cpp" - break; - - case 515: /* type_specifier_nonarray: SAMPLEREXTERNAL2DY2YEXT */ -#line 3409 "MachineIndependent/glslang.y" - { // GL_EXT_YUV_target - (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.yuv = true; - } -#line 10559 "MachineIndependent/glslang_tab.cpp" - break; - - case 516: /* type_specifier_nonarray: SUBPASSINPUT */ -#line 3415 "MachineIndependent/glslang.y" - { - 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 10570 "MachineIndependent/glslang_tab.cpp" - break; - - case 517: /* type_specifier_nonarray: SUBPASSINPUTMS */ -#line 3421 "MachineIndependent/glslang.y" - { - 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 10581 "MachineIndependent/glslang_tab.cpp" - break; - - case 518: /* type_specifier_nonarray: F16SUBPASSINPUT */ -#line 3427 "MachineIndependent/glslang.y" - { - 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); - } -#line 10593 "MachineIndependent/glslang_tab.cpp" - break; - - case 519: /* type_specifier_nonarray: F16SUBPASSINPUTMS */ -#line 3434 "MachineIndependent/glslang.y" - { - 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); - } -#line 10605 "MachineIndependent/glslang_tab.cpp" - break; - - case 520: /* type_specifier_nonarray: ISUBPASSINPUT */ -#line 3441 "MachineIndependent/glslang.y" - { - 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 10616 "MachineIndependent/glslang_tab.cpp" - break; - - case 521: /* type_specifier_nonarray: ISUBPASSINPUTMS */ -#line 3447 "MachineIndependent/glslang.y" - { - 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 10627 "MachineIndependent/glslang_tab.cpp" - break; - - case 522: /* type_specifier_nonarray: USUBPASSINPUT */ -#line 3453 "MachineIndependent/glslang.y" - { - 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 10638 "MachineIndependent/glslang_tab.cpp" - break; - - case 523: /* type_specifier_nonarray: USUBPASSINPUTMS */ -#line 3459 "MachineIndependent/glslang.y" - { - 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 10649 "MachineIndependent/glslang_tab.cpp" - break; - - case 524: /* type_specifier_nonarray: FCOOPMATNV */ -#line 3465 "MachineIndependent/glslang.y" - { - parseContext.fcoopmatCheck((yyvsp[0].lex).loc, "fcoopmatNV", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).coopmat = true; - } -#line 10660 "MachineIndependent/glslang_tab.cpp" - break; - - case 525: /* type_specifier_nonarray: ICOOPMATNV */ -#line 3471 "MachineIndependent/glslang.y" - { - parseContext.intcoopmatCheck((yyvsp[0].lex).loc, "icoopmatNV", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt; - (yyval.interm.type).coopmat = true; - } -#line 10671 "MachineIndependent/glslang_tab.cpp" - break; - - case 526: /* type_specifier_nonarray: UCOOPMATNV */ -#line 3477 "MachineIndependent/glslang.y" - { - parseContext.intcoopmatCheck((yyvsp[0].lex).loc, "ucoopmatNV", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint; - (yyval.interm.type).coopmat = true; - } -#line 10682 "MachineIndependent/glslang_tab.cpp" - break; - - case 527: /* type_specifier_nonarray: spirv_type_specifier */ -#line 3483 "MachineIndependent/glslang.y" - { - parseContext.requireExtensions((yyvsp[0].interm.type).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V type specifier"); - (yyval.interm.type) = (yyvsp[0].interm.type); - } -#line 10691 "MachineIndependent/glslang_tab.cpp" - break; - - case 528: /* type_specifier_nonarray: struct_specifier */ -#line 3488 "MachineIndependent/glslang.y" - { - (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 10701 "MachineIndependent/glslang_tab.cpp" - break; - - case 529: /* type_specifier_nonarray: TYPE_NAME */ -#line 3493 "MachineIndependent/glslang.y" - { - // - // This is for user defined type names. The lexical phase looked up the - // type. - // - if (const TVariable* variable = ((yyvsp[0].lex).symbol)->getAsVariable()) { - 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 10719 "MachineIndependent/glslang_tab.cpp" - break; - - case 530: /* precision_qualifier: HIGH_PRECISION */ -#line 3509 "MachineIndependent/glslang.y" - { - parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "highp precision qualifier"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqHigh); - } -#line 10729 "MachineIndependent/glslang_tab.cpp" - break; - - case 531: /* precision_qualifier: MEDIUM_PRECISION */ -#line 3514 "MachineIndependent/glslang.y" - { - parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqMedium); - } -#line 10739 "MachineIndependent/glslang_tab.cpp" - break; - - case 532: /* precision_qualifier: LOW_PRECISION */ -#line 3519 "MachineIndependent/glslang.y" - { - parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqLow); - } -#line 10749 "MachineIndependent/glslang_tab.cpp" - break; - - case 533: /* $@3: %empty */ -#line 3527 "MachineIndependent/glslang.y" - { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); } -#line 10755 "MachineIndependent/glslang_tab.cpp" - break; - - case 534: /* struct_specifier: STRUCT IDENTIFIER LEFT_BRACE $@3 struct_declaration_list RIGHT_BRACE */ -#line 3527 "MachineIndependent/glslang.y" - { - TType* structure = new TType((yyvsp[-1].interm.typeList), *(yyvsp[-4].lex).string); - parseContext.structArrayCheck((yyvsp[-4].lex).loc, *structure); - TVariable* userTypeDef = new TVariable((yyvsp[-4].lex).string, *structure, true); - 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 10771 "MachineIndependent/glslang_tab.cpp" - break; - - case 535: /* $@4: %empty */ -#line 3538 "MachineIndependent/glslang.y" - { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); } -#line 10777 "MachineIndependent/glslang_tab.cpp" - break; - - case 536: /* struct_specifier: STRUCT LEFT_BRACE $@4 struct_declaration_list RIGHT_BRACE */ -#line 3538 "MachineIndependent/glslang.y" - { - 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 10789 "MachineIndependent/glslang_tab.cpp" - break; - - case 537: /* struct_declaration_list: struct_declaration */ -#line 3548 "MachineIndependent/glslang.y" - { - (yyval.interm.typeList) = (yyvsp[0].interm.typeList); - } -#line 10797 "MachineIndependent/glslang_tab.cpp" - break; - - case 538: /* struct_declaration_list: struct_declaration_list struct_declaration */ -#line 3551 "MachineIndependent/glslang.y" - { - (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 10812 "MachineIndependent/glslang_tab.cpp" - break; - - case 539: /* struct_declaration: type_specifier struct_declarator_list SEMICOLON */ -#line 3564 "MachineIndependent/glslang.y" - { - if ((yyvsp[-2].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); - if (parseContext.isEsProfile()) - 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 10839 "MachineIndependent/glslang_tab.cpp" - break; - - case 540: /* struct_declaration: type_qualifier type_specifier struct_declarator_list SEMICOLON */ -#line 3586 "MachineIndependent/glslang.y" - { - if ((yyvsp[-2].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); - if (parseContext.isEsProfile()) - 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 10868 "MachineIndependent/glslang_tab.cpp" - break; - - case 541: /* struct_declarator_list: struct_declarator */ -#line 3613 "MachineIndependent/glslang.y" - { - (yyval.interm.typeList) = new TTypeList; - (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine)); - } -#line 10877 "MachineIndependent/glslang_tab.cpp" - break; - - case 542: /* struct_declarator_list: struct_declarator_list COMMA struct_declarator */ -#line 3617 "MachineIndependent/glslang.y" - { - (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine)); - } -#line 10885 "MachineIndependent/glslang_tab.cpp" - break; - - case 543: /* struct_declarator: IDENTIFIER */ -#line 3623 "MachineIndependent/glslang.y" - { - (yyval.interm.typeLine).type = new TType(EbtVoid); - (yyval.interm.typeLine).loc = (yyvsp[0].lex).loc; - (yyval.interm.typeLine).type->setFieldName(*(yyvsp[0].lex).string); - } -#line 10895 "MachineIndependent/glslang_tab.cpp" - break; - - case 544: /* struct_declarator: IDENTIFIER array_specifier */ -#line 3628 "MachineIndependent/glslang.y" - { - 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 10908 "MachineIndependent/glslang_tab.cpp" - break; - - case 545: /* initializer: assignment_expression */ -#line 3639 "MachineIndependent/glslang.y" - { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); - } -#line 10916 "MachineIndependent/glslang_tab.cpp" - break; - - case 546: /* initializer: LEFT_BRACE initializer_list RIGHT_BRACE */ -#line 3643 "MachineIndependent/glslang.y" - { - const char* initFeature = "{ } style initializers"; - parseContext.requireProfile((yyvsp[-2].lex).loc, ~EEsProfile, initFeature); - parseContext.profileRequires((yyvsp[-2].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); - (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode); - } -#line 10927 "MachineIndependent/glslang_tab.cpp" - break; - - case 547: /* initializer: LEFT_BRACE initializer_list COMMA RIGHT_BRACE */ -#line 3649 "MachineIndependent/glslang.y" - { - const char* initFeature = "{ } style initializers"; - parseContext.requireProfile((yyvsp[-3].lex).loc, ~EEsProfile, initFeature); - parseContext.profileRequires((yyvsp[-3].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); - } -#line 10938 "MachineIndependent/glslang_tab.cpp" - break; - - case 548: /* initializer: LEFT_BRACE RIGHT_BRACE */ -#line 3655 "MachineIndependent/glslang.y" - { - const char* initFeature = "empty { } initializer"; - parseContext.profileRequires((yyvsp[-1].lex).loc, EEsProfile, 0, E_GL_EXT_null_initializer, initFeature); - parseContext.profileRequires((yyvsp[-1].lex).loc, ~EEsProfile, 0, E_GL_EXT_null_initializer, initFeature); - (yyval.interm.intermTypedNode) = parseContext.intermediate.makeAggregate((yyvsp[-1].lex).loc); - } -#line 10949 "MachineIndependent/glslang_tab.cpp" - break; - - case 549: /* initializer_list: initializer */ -#line 3666 "MachineIndependent/glslang.y" - { - (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc()); - } -#line 10957 "MachineIndependent/glslang_tab.cpp" - break; - - case 550: /* initializer_list: initializer_list COMMA initializer */ -#line 3669 "MachineIndependent/glslang.y" - { - (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - } -#line 10965 "MachineIndependent/glslang_tab.cpp" - break; - - case 551: /* declaration_statement: declaration */ -#line 3676 "MachineIndependent/glslang.y" - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 10971 "MachineIndependent/glslang_tab.cpp" - break; - - case 552: /* statement: compound_statement */ -#line 3680 "MachineIndependent/glslang.y" - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 10977 "MachineIndependent/glslang_tab.cpp" - break; - - case 553: /* statement: simple_statement */ -#line 3681 "MachineIndependent/glslang.y" - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 10983 "MachineIndependent/glslang_tab.cpp" - break; - - case 554: /* simple_statement: declaration_statement */ -#line 3687 "MachineIndependent/glslang.y" - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 10989 "MachineIndependent/glslang_tab.cpp" - break; - - case 555: /* simple_statement: expression_statement */ -#line 3688 "MachineIndependent/glslang.y" - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 10995 "MachineIndependent/glslang_tab.cpp" - break; - - case 556: /* simple_statement: selection_statement */ -#line 3689 "MachineIndependent/glslang.y" - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 11001 "MachineIndependent/glslang_tab.cpp" - break; - - case 557: /* simple_statement: switch_statement */ -#line 3690 "MachineIndependent/glslang.y" - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 11007 "MachineIndependent/glslang_tab.cpp" - break; - - case 558: /* simple_statement: case_label */ -#line 3691 "MachineIndependent/glslang.y" - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 11013 "MachineIndependent/glslang_tab.cpp" - break; - - case 559: /* simple_statement: iteration_statement */ -#line 3692 "MachineIndependent/glslang.y" - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 11019 "MachineIndependent/glslang_tab.cpp" - break; - - case 560: /* simple_statement: jump_statement */ -#line 3693 "MachineIndependent/glslang.y" - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 11025 "MachineIndependent/glslang_tab.cpp" - break; - - case 561: /* simple_statement: demote_statement */ -#line 3695 "MachineIndependent/glslang.y" - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 11031 "MachineIndependent/glslang_tab.cpp" - break; - - case 562: /* demote_statement: DEMOTE SEMICOLON */ -#line 3701 "MachineIndependent/glslang.y" - { - parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "demote"); - parseContext.requireExtensions((yyvsp[-1].lex).loc, 1, &E_GL_EXT_demote_to_helper_invocation, "demote"); - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDemote, (yyvsp[-1].lex).loc); - } -#line 11041 "MachineIndependent/glslang_tab.cpp" - break; - - case 563: /* compound_statement: LEFT_BRACE RIGHT_BRACE */ -#line 3710 "MachineIndependent/glslang.y" - { (yyval.interm.intermNode) = 0; } -#line 11047 "MachineIndependent/glslang_tab.cpp" - break; - - case 564: /* $@5: %empty */ -#line 3711 "MachineIndependent/glslang.y" - { - parseContext.symbolTable.push(); - ++parseContext.statementNestingLevel; - } -#line 11056 "MachineIndependent/glslang_tab.cpp" - break; - - case 565: /* $@6: %empty */ -#line 3715 "MachineIndependent/glslang.y" - { - parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - --parseContext.statementNestingLevel; - } -#line 11065 "MachineIndependent/glslang_tab.cpp" - break; - - case 566: /* compound_statement: LEFT_BRACE $@5 statement_list $@6 RIGHT_BRACE */ -#line 3719 "MachineIndependent/glslang.y" - { - if ((yyvsp[-2].interm.intermNode) && (yyvsp[-2].interm.intermNode)->getAsAggregate()) - (yyvsp[-2].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); - (yyval.interm.intermNode) = (yyvsp[-2].interm.intermNode); - } -#line 11075 "MachineIndependent/glslang_tab.cpp" - break; - - case 567: /* statement_no_new_scope: compound_statement_no_new_scope */ -#line 3727 "MachineIndependent/glslang.y" - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 11081 "MachineIndependent/glslang_tab.cpp" - break; - - case 568: /* statement_no_new_scope: simple_statement */ -#line 3728 "MachineIndependent/glslang.y" - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 11087 "MachineIndependent/glslang_tab.cpp" - break; - - case 569: /* $@7: %empty */ -#line 3732 "MachineIndependent/glslang.y" - { - ++parseContext.controlFlowNestingLevel; - } -#line 11095 "MachineIndependent/glslang_tab.cpp" - break; - - case 570: /* statement_scoped: $@7 compound_statement */ -#line 3735 "MachineIndependent/glslang.y" - { - --parseContext.controlFlowNestingLevel; - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - } -#line 11104 "MachineIndependent/glslang_tab.cpp" - break; - - case 571: /* $@8: %empty */ -#line 3739 "MachineIndependent/glslang.y" - { - parseContext.symbolTable.push(); - ++parseContext.statementNestingLevel; - ++parseContext.controlFlowNestingLevel; - } -#line 11114 "MachineIndependent/glslang_tab.cpp" - break; - - case 572: /* statement_scoped: $@8 simple_statement */ -#line 3744 "MachineIndependent/glslang.y" - { - parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - --parseContext.statementNestingLevel; - --parseContext.controlFlowNestingLevel; - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - } -#line 11125 "MachineIndependent/glslang_tab.cpp" - break; - - case 573: /* compound_statement_no_new_scope: LEFT_BRACE RIGHT_BRACE */ -#line 3753 "MachineIndependent/glslang.y" - { - (yyval.interm.intermNode) = 0; - } -#line 11133 "MachineIndependent/glslang_tab.cpp" - break; - - case 574: /* compound_statement_no_new_scope: LEFT_BRACE statement_list RIGHT_BRACE */ -#line 3756 "MachineIndependent/glslang.y" - { - if ((yyvsp[-1].interm.intermNode) && (yyvsp[-1].interm.intermNode)->getAsAggregate()) - (yyvsp[-1].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); - (yyval.interm.intermNode) = (yyvsp[-1].interm.intermNode); - } -#line 11143 "MachineIndependent/glslang_tab.cpp" - break; - - case 575: /* statement_list: statement */ -#line 3764 "MachineIndependent/glslang.y" - { - (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode)); - if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase || - (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) { - parseContext.wrapupSwitchSubsequence(0, (yyvsp[0].interm.intermNode)); - (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case - } - } -#line 11156 "MachineIndependent/glslang_tab.cpp" - break; - - case 576: /* statement_list: statement_list statement */ -#line 3772 "MachineIndependent/glslang.y" - { - if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase || - (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) { - parseContext.wrapupSwitchSubsequence((yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0, (yyvsp[0].interm.intermNode)); - (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 11169 "MachineIndependent/glslang_tab.cpp" - break; - - case 577: /* expression_statement: SEMICOLON */ -#line 3783 "MachineIndependent/glslang.y" - { (yyval.interm.intermNode) = 0; } -#line 11175 "MachineIndependent/glslang_tab.cpp" - break; - - case 578: /* expression_statement: expression SEMICOLON */ -#line 3784 "MachineIndependent/glslang.y" - { (yyval.interm.intermNode) = static_cast((yyvsp[-1].interm.intermTypedNode)); } -#line 11181 "MachineIndependent/glslang_tab.cpp" - break; - - case 579: /* selection_statement: selection_statement_nonattributed */ -#line 3788 "MachineIndependent/glslang.y" - { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - } -#line 11189 "MachineIndependent/glslang_tab.cpp" - break; - - case 580: /* selection_statement: attribute selection_statement_nonattributed */ -#line 3792 "MachineIndependent/glslang.y" - { - parseContext.requireExtensions((yyvsp[0].interm.intermNode)->getLoc(), 1, &E_GL_EXT_control_flow_attributes, "attribute"); - parseContext.handleSelectionAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode)); - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - } -#line 11199 "MachineIndependent/glslang_tab.cpp" - break; - - case 581: /* selection_statement_nonattributed: IF LEFT_PAREN expression RIGHT_PAREN selection_rest_statement */ -#line 3800 "MachineIndependent/glslang.y" - { - parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-2].interm.intermTypedNode)); - (yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.nodePair), (yyvsp[-4].lex).loc); - } -#line 11208 "MachineIndependent/glslang_tab.cpp" - break; - - case 582: /* selection_rest_statement: statement_scoped ELSE statement_scoped */ -#line 3807 "MachineIndependent/glslang.y" - { - (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode); - (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode); - } -#line 11217 "MachineIndependent/glslang_tab.cpp" - break; - - case 583: /* selection_rest_statement: statement_scoped */ -#line 3811 "MachineIndependent/glslang.y" - { - (yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode); - (yyval.interm.nodePair).node2 = 0; - } -#line 11226 "MachineIndependent/glslang_tab.cpp" - break; - - case 584: /* condition: expression */ -#line 3819 "MachineIndependent/glslang.y" - { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); - parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode)); - } -#line 11235 "MachineIndependent/glslang_tab.cpp" - break; - - case 585: /* condition: fully_specified_type IDENTIFIER EQUAL initializer */ -#line 3823 "MachineIndependent/glslang.y" - { - 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 11250 "MachineIndependent/glslang_tab.cpp" - break; - - case 586: /* switch_statement: switch_statement_nonattributed */ -#line 3836 "MachineIndependent/glslang.y" - { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - } -#line 11258 "MachineIndependent/glslang_tab.cpp" - break; - - case 587: /* switch_statement: attribute switch_statement_nonattributed */ -#line 3840 "MachineIndependent/glslang.y" - { - parseContext.requireExtensions((yyvsp[0].interm.intermNode)->getLoc(), 1, &E_GL_EXT_control_flow_attributes, "attribute"); - parseContext.handleSwitchAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode)); - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - } -#line 11268 "MachineIndependent/glslang_tab.cpp" - break; - - case 588: /* $@9: %empty */ -#line 3848 "MachineIndependent/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(); - } -#line 11281 "MachineIndependent/glslang_tab.cpp" - break; - - case 589: /* switch_statement_nonattributed: SWITCH LEFT_PAREN expression RIGHT_PAREN $@9 LEFT_BRACE switch_statement_list RIGHT_BRACE */ -#line 3856 "MachineIndependent/glslang.y" - { - (yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[-7].lex).loc, (yyvsp[-5].interm.intermTypedNode), (yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0); - delete parseContext.switchSequenceStack.back(); - parseContext.switchSequenceStack.pop_back(); - parseContext.switchLevel.pop_back(); - parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - --parseContext.statementNestingLevel; - --parseContext.controlFlowNestingLevel; - } -#line 11295 "MachineIndependent/glslang_tab.cpp" - break; - - case 590: /* switch_statement_list: %empty */ -#line 3868 "MachineIndependent/glslang.y" - { - (yyval.interm.intermNode) = 0; - } -#line 11303 "MachineIndependent/glslang_tab.cpp" - break; - - case 591: /* switch_statement_list: statement_list */ -#line 3871 "MachineIndependent/glslang.y" - { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - } -#line 11311 "MachineIndependent/glslang_tab.cpp" - break; - - case 592: /* case_label: CASE expression COLON */ -#line 3877 "MachineIndependent/glslang.y" - { - (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 11328 "MachineIndependent/glslang_tab.cpp" - break; - - case 593: /* case_label: DEFAULT COLON */ -#line 3889 "MachineIndependent/glslang.y" - { - (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 11342 "MachineIndependent/glslang_tab.cpp" - break; - - case 594: /* iteration_statement: iteration_statement_nonattributed */ -#line 3901 "MachineIndependent/glslang.y" - { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - } -#line 11350 "MachineIndependent/glslang_tab.cpp" - break; - - case 595: /* iteration_statement: attribute iteration_statement_nonattributed */ -#line 3905 "MachineIndependent/glslang.y" - { - parseContext.requireExtensions((yyvsp[0].interm.intermNode)->getLoc(), 1, &E_GL_EXT_control_flow_attributes, "attribute"); - parseContext.handleLoopAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode)); - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - } -#line 11360 "MachineIndependent/glslang_tab.cpp" - break; - - case 596: /* $@10: %empty */ -#line 3913 "MachineIndependent/glslang.y" - { - 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 11373 "MachineIndependent/glslang_tab.cpp" - break; - - case 597: /* iteration_statement_nonattributed: WHILE LEFT_PAREN $@10 condition RIGHT_PAREN statement_no_new_scope */ -#line 3921 "MachineIndependent/glslang.y" - { - parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, true, (yyvsp[-5].lex).loc); - --parseContext.loopNestingLevel; - --parseContext.statementNestingLevel; - --parseContext.controlFlowNestingLevel; - } -#line 11385 "MachineIndependent/glslang_tab.cpp" - break; - - case 598: /* $@11: %empty */ -#line 3928 "MachineIndependent/glslang.y" - { - parseContext.symbolTable.push(); - ++parseContext.loopNestingLevel; - ++parseContext.statementNestingLevel; - ++parseContext.controlFlowNestingLevel; - } -#line 11396 "MachineIndependent/glslang_tab.cpp" - break; - - case 599: /* iteration_statement_nonattributed: DO $@11 statement WHILE LEFT_PAREN expression RIGHT_PAREN SEMICOLON */ -#line 3934 "MachineIndependent/glslang.y" - { - 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.symbolTable.pop(&parseContext.defaultPrecision[0]); - --parseContext.loopNestingLevel; - --parseContext.statementNestingLevel; - --parseContext.controlFlowNestingLevel; - } -#line 11413 "MachineIndependent/glslang_tab.cpp" - break; - - case 600: /* $@12: %empty */ -#line 3946 "MachineIndependent/glslang.y" - { - parseContext.symbolTable.push(); - ++parseContext.loopNestingLevel; - ++parseContext.statementNestingLevel; - ++parseContext.controlFlowNestingLevel; - } -#line 11424 "MachineIndependent/glslang_tab.cpp" - break; - - case 601: /* iteration_statement_nonattributed: FOR LEFT_PAREN $@12 for_init_statement for_rest_statement RIGHT_PAREN statement_no_new_scope */ -#line 3952 "MachineIndependent/glslang.y" - { - parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[-3].interm.intermNode), (yyvsp[-5].lex).loc); - TIntermLoop* forLoop = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), reinterpret_cast((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 11441 "MachineIndependent/glslang_tab.cpp" - break; - - case 602: /* for_init_statement: expression_statement */ -#line 3967 "MachineIndependent/glslang.y" - { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - } -#line 11449 "MachineIndependent/glslang_tab.cpp" - break; - - case 603: /* for_init_statement: declaration_statement */ -#line 3970 "MachineIndependent/glslang.y" - { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - } -#line 11457 "MachineIndependent/glslang_tab.cpp" - break; - - case 604: /* conditionopt: condition */ -#line 3976 "MachineIndependent/glslang.y" - { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); - } -#line 11465 "MachineIndependent/glslang_tab.cpp" - break; - - case 605: /* conditionopt: %empty */ -#line 3979 "MachineIndependent/glslang.y" - { - (yyval.interm.intermTypedNode) = 0; - } -#line 11473 "MachineIndependent/glslang_tab.cpp" - break; - - case 606: /* for_rest_statement: conditionopt SEMICOLON */ -#line 3985 "MachineIndependent/glslang.y" - { - (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode); - (yyval.interm.nodePair).node2 = 0; - } -#line 11482 "MachineIndependent/glslang_tab.cpp" - break; - - case 607: /* for_rest_statement: conditionopt SEMICOLON expression */ -#line 3989 "MachineIndependent/glslang.y" - { - (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode); - (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode); - } -#line 11491 "MachineIndependent/glslang_tab.cpp" - break; - - case 608: /* jump_statement: CONTINUE SEMICOLON */ -#line 3996 "MachineIndependent/glslang.y" - { - if (parseContext.loopNestingLevel <= 0) - parseContext.error((yyvsp[-1].lex).loc, "continue statement only allowed in loops", "", ""); - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[-1].lex).loc); - } -#line 11501 "MachineIndependent/glslang_tab.cpp" - break; - - case 609: /* jump_statement: BREAK SEMICOLON */ -#line 4001 "MachineIndependent/glslang.y" - { - if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0) - parseContext.error((yyvsp[-1].lex).loc, "break statement only allowed in switch and loops", "", ""); - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[-1].lex).loc); - } -#line 11511 "MachineIndependent/glslang_tab.cpp" - break; - - case 610: /* jump_statement: RETURN SEMICOLON */ -#line 4006 "MachineIndependent/glslang.y" - { - (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 11523 "MachineIndependent/glslang_tab.cpp" - break; - - case 611: /* jump_statement: RETURN expression SEMICOLON */ -#line 4013 "MachineIndependent/glslang.y" - { - (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode)); - } -#line 11531 "MachineIndependent/glslang_tab.cpp" - break; - - case 612: /* jump_statement: DISCARD SEMICOLON */ -#line 4016 "MachineIndependent/glslang.y" - { - parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard"); - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc); - } -#line 11540 "MachineIndependent/glslang_tab.cpp" - break; - - case 613: /* jump_statement: TERMINATE_INVOCATION SEMICOLON */ -#line 4020 "MachineIndependent/glslang.y" - { - parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "terminateInvocation"); - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpTerminateInvocation, (yyvsp[-1].lex).loc); - } -#line 11549 "MachineIndependent/glslang_tab.cpp" - break; - - case 614: /* jump_statement: TERMINATE_RAY SEMICOLON */ -#line 4025 "MachineIndependent/glslang.y" - { - parseContext.requireStage((yyvsp[-1].lex).loc, EShLangAnyHit, "terminateRayEXT"); - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpTerminateRayKHR, (yyvsp[-1].lex).loc); - } -#line 11558 "MachineIndependent/glslang_tab.cpp" - break; - - case 615: /* jump_statement: IGNORE_INTERSECTION SEMICOLON */ -#line 4029 "MachineIndependent/glslang.y" - { - parseContext.requireStage((yyvsp[-1].lex).loc, EShLangAnyHit, "ignoreIntersectionEXT"); - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpIgnoreIntersectionKHR, (yyvsp[-1].lex).loc); - } -#line 11567 "MachineIndependent/glslang_tab.cpp" - break; - - case 616: /* translation_unit: external_declaration */ -#line 4039 "MachineIndependent/glslang.y" - { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - parseContext.intermediate.setTreeRoot((yyval.interm.intermNode)); - } -#line 11576 "MachineIndependent/glslang_tab.cpp" - break; - - case 617: /* translation_unit: translation_unit external_declaration */ -#line 4043 "MachineIndependent/glslang.y" - { - 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 11587 "MachineIndependent/glslang_tab.cpp" - break; - - case 618: /* external_declaration: function_definition */ -#line 4052 "MachineIndependent/glslang.y" - { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - } -#line 11595 "MachineIndependent/glslang_tab.cpp" - break; - - case 619: /* external_declaration: declaration */ -#line 4055 "MachineIndependent/glslang.y" - { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - } -#line 11603 "MachineIndependent/glslang_tab.cpp" - break; - - case 620: /* external_declaration: SEMICOLON */ -#line 4059 "MachineIndependent/glslang.y" - { - 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 11613 "MachineIndependent/glslang_tab.cpp" - break; - - case 621: /* $@13: %empty */ -#line 4068 "MachineIndependent/glslang.y" - { - (yyvsp[0].interm).function = parseContext.handleFunctionDeclarator((yyvsp[0].interm).loc, *(yyvsp[0].interm).function, false /* not prototype */); - (yyvsp[0].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[0].interm).loc, *(yyvsp[0].interm).function); - - // For ES 100 only, according to ES shading language 100 spec: A function - // body has a scope nested inside the function's definition. - if (parseContext.profile == EEsProfile && parseContext.version == 100) - { - parseContext.symbolTable.push(); - ++parseContext.statementNestingLevel; - } - } -#line 11630 "MachineIndependent/glslang_tab.cpp" - break; - - case 622: /* function_definition: function_prototype $@13 compound_statement_no_new_scope */ -#line 4080 "MachineIndependent/glslang.y" - { - // May be best done as post process phase on intermediate code - if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue) - parseContext.error((yyvsp[-2].interm).loc, "function does not return a value:", "", (yyvsp[-2].interm).function->getName().c_str()); - parseContext.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); - - // Set currentFunctionType to empty pointer when goes outside of the function - parseContext.currentFunctionType = nullptr; - - // For ES 100 only, according to ES shading language 100 spec: A function - // body has a scope nested inside the function's definition. - if (parseContext.profile == EEsProfile && parseContext.version == 100) - { - parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - --parseContext.statementNestingLevel; - } - } -#line 11661 "MachineIndependent/glslang_tab.cpp" - break; - - case 623: /* attribute: LEFT_BRACKET LEFT_BRACKET attribute_list RIGHT_BRACKET RIGHT_BRACKET */ -#line 4110 "MachineIndependent/glslang.y" - { - (yyval.interm.attributes) = (yyvsp[-2].interm.attributes); - } -#line 11669 "MachineIndependent/glslang_tab.cpp" - break; - - case 624: /* attribute_list: single_attribute */ -#line 4115 "MachineIndependent/glslang.y" - { - (yyval.interm.attributes) = (yyvsp[0].interm.attributes); - } -#line 11677 "MachineIndependent/glslang_tab.cpp" - break; - - case 625: /* attribute_list: attribute_list COMMA single_attribute */ -#line 4118 "MachineIndependent/glslang.y" - { - (yyval.interm.attributes) = parseContext.mergeAttributes((yyvsp[-2].interm.attributes), (yyvsp[0].interm.attributes)); - } -#line 11685 "MachineIndependent/glslang_tab.cpp" - break; - - case 626: /* single_attribute: IDENTIFIER */ -#line 4123 "MachineIndependent/glslang.y" - { - (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[0].lex).string); - } -#line 11693 "MachineIndependent/glslang_tab.cpp" - break; - - case 627: /* single_attribute: IDENTIFIER LEFT_PAREN constant_expression RIGHT_PAREN */ -#line 4126 "MachineIndependent/glslang.y" - { - (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[-3].lex).string, (yyvsp[-1].interm.intermTypedNode)); - } -#line 11701 "MachineIndependent/glslang_tab.cpp" - break; - - case 628: /* spirv_requirements_list: spirv_requirements_parameter */ -#line 4133 "MachineIndependent/glslang.y" - { - (yyval.interm.spirvReq) = (yyvsp[0].interm.spirvReq); - } -#line 11709 "MachineIndependent/glslang_tab.cpp" - break; - - case 629: /* spirv_requirements_list: spirv_requirements_list COMMA spirv_requirements_parameter */ -#line 4136 "MachineIndependent/glslang.y" - { - (yyval.interm.spirvReq) = parseContext.mergeSpirvRequirements((yyvsp[-1].lex).loc, (yyvsp[-2].interm.spirvReq), (yyvsp[0].interm.spirvReq)); - } -#line 11717 "MachineIndependent/glslang_tab.cpp" - break; - - case 630: /* spirv_requirements_parameter: IDENTIFIER EQUAL LEFT_BRACKET spirv_extension_list RIGHT_BRACKET */ -#line 4141 "MachineIndependent/glslang.y" - { - (yyval.interm.spirvReq) = parseContext.makeSpirvRequirement((yyvsp[-3].lex).loc, *(yyvsp[-4].lex).string, (yyvsp[-1].interm.intermNode)->getAsAggregate(), nullptr); - } -#line 11725 "MachineIndependent/glslang_tab.cpp" - break; - - case 631: /* spirv_requirements_parameter: IDENTIFIER EQUAL LEFT_BRACKET spirv_capability_list RIGHT_BRACKET */ -#line 4144 "MachineIndependent/glslang.y" - { - (yyval.interm.spirvReq) = parseContext.makeSpirvRequirement((yyvsp[-3].lex).loc, *(yyvsp[-4].lex).string, nullptr, (yyvsp[-1].interm.intermNode)->getAsAggregate()); - } -#line 11733 "MachineIndependent/glslang_tab.cpp" - break; - - case 632: /* spirv_extension_list: STRING_LITERAL */ -#line 4149 "MachineIndependent/glslang.y" - { - (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate(parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true)); - } -#line 11741 "MachineIndependent/glslang_tab.cpp" - break; - - case 633: /* spirv_extension_list: spirv_extension_list COMMA STRING_LITERAL */ -#line 4152 "MachineIndependent/glslang.y" - { - (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true)); - } -#line 11749 "MachineIndependent/glslang_tab.cpp" - break; - - case 634: /* spirv_capability_list: INTCONSTANT */ -#line 4157 "MachineIndependent/glslang.y" - { - (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate(parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true)); - } -#line 11757 "MachineIndependent/glslang_tab.cpp" - break; - - case 635: /* spirv_capability_list: spirv_capability_list COMMA INTCONSTANT */ -#line 4160 "MachineIndependent/glslang.y" - { - (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true)); - } -#line 11765 "MachineIndependent/glslang_tab.cpp" - break; - - case 636: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN INTCONSTANT RIGHT_PAREN */ -#line 4165 "MachineIndependent/glslang.y" - { - parseContext.intermediate.insertSpirvExecutionMode((yyvsp[-1].lex).i); - (yyval.interm.intermNode) = 0; - } -#line 11774 "MachineIndependent/glslang_tab.cpp" - break; - - case 637: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN */ -#line 4169 "MachineIndependent/glslang.y" - { - parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq)); - parseContext.intermediate.insertSpirvExecutionMode((yyvsp[-1].lex).i); - (yyval.interm.intermNode) = 0; - } -#line 11784 "MachineIndependent/glslang_tab.cpp" - break; - - case 638: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN INTCONSTANT COMMA spirv_execution_mode_parameter_list RIGHT_PAREN */ -#line 4174 "MachineIndependent/glslang.y" - { - parseContext.intermediate.insertSpirvExecutionMode((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate()); - (yyval.interm.intermNode) = 0; - } -#line 11793 "MachineIndependent/glslang_tab.cpp" - break; - - case 639: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_execution_mode_parameter_list RIGHT_PAREN */ -#line 4178 "MachineIndependent/glslang.y" - { - parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq)); - parseContext.intermediate.insertSpirvExecutionMode((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate()); - (yyval.interm.intermNode) = 0; - } -#line 11803 "MachineIndependent/glslang_tab.cpp" - break; - - case 640: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE_ID LEFT_PAREN INTCONSTANT COMMA spirv_execution_mode_id_parameter_list RIGHT_PAREN */ -#line 4183 "MachineIndependent/glslang.y" - { - parseContext.intermediate.insertSpirvExecutionModeId((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate()); - (yyval.interm.intermNode) = 0; - } -#line 11812 "MachineIndependent/glslang_tab.cpp" - break; - - case 641: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE_ID LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_execution_mode_id_parameter_list RIGHT_PAREN */ -#line 4187 "MachineIndependent/glslang.y" - { - parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq)); - parseContext.intermediate.insertSpirvExecutionModeId((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate()); - (yyval.interm.intermNode) = 0; - } -#line 11822 "MachineIndependent/glslang_tab.cpp" - break; - - case 642: /* spirv_execution_mode_parameter_list: spirv_execution_mode_parameter */ -#line 4194 "MachineIndependent/glslang.y" - { - (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode)); - } -#line 11830 "MachineIndependent/glslang_tab.cpp" - break; - - case 643: /* spirv_execution_mode_parameter_list: spirv_execution_mode_parameter_list COMMA spirv_execution_mode_parameter */ -#line 4197 "MachineIndependent/glslang.y" - { - (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), (yyvsp[0].interm.intermNode)); - } -#line 11838 "MachineIndependent/glslang_tab.cpp" - break; - - case 644: /* spirv_execution_mode_parameter: FLOATCONSTANT */ -#line 4202 "MachineIndependent/glslang.y" - { - (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true); - } -#line 11846 "MachineIndependent/glslang_tab.cpp" - break; - - case 645: /* spirv_execution_mode_parameter: INTCONSTANT */ -#line 4205 "MachineIndependent/glslang.y" - { - (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true); - } -#line 11854 "MachineIndependent/glslang_tab.cpp" - break; - - case 646: /* spirv_execution_mode_parameter: UINTCONSTANT */ -#line 4208 "MachineIndependent/glslang.y" - { - (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true); - } -#line 11862 "MachineIndependent/glslang_tab.cpp" - break; - - case 647: /* spirv_execution_mode_parameter: BOOLCONSTANT */ -#line 4211 "MachineIndependent/glslang.y" - { - (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true); - } -#line 11870 "MachineIndependent/glslang_tab.cpp" - break; - - case 648: /* spirv_execution_mode_parameter: STRING_LITERAL */ -#line 4214 "MachineIndependent/glslang.y" - { - (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true); - } -#line 11878 "MachineIndependent/glslang_tab.cpp" - break; - - case 649: /* spirv_execution_mode_id_parameter_list: constant_expression */ -#line 4219 "MachineIndependent/glslang.y" - { - if ((yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtFloat && - (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtInt && - (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtUint && - (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtBool && - (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtString) - parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "this type not allowed", (yyvsp[0].interm.intermTypedNode)->getType().getBasicString(), ""); - (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermTypedNode)); - } -#line 11892 "MachineIndependent/glslang_tab.cpp" - break; - - case 650: /* spirv_execution_mode_id_parameter_list: spirv_execution_mode_id_parameter_list COMMA constant_expression */ -#line 4228 "MachineIndependent/glslang.y" - { - if ((yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtFloat && - (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtInt && - (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtUint && - (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtBool && - (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtString) - parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "this type not allowed", (yyvsp[0].interm.intermTypedNode)->getType().getBasicString(), ""); - (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), (yyvsp[0].interm.intermTypedNode)); - } -#line 11906 "MachineIndependent/glslang_tab.cpp" - break; - - case 651: /* spirv_storage_class_qualifier: SPIRV_STORAGE_CLASS LEFT_PAREN INTCONSTANT RIGHT_PAREN */ -#line 4239 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[-3].lex).loc); - (yyval.interm.type).qualifier.storage = EvqSpirvStorageClass; - (yyval.interm.type).qualifier.spirvStorageClass = (yyvsp[-1].lex).i; - } -#line 11916 "MachineIndependent/glslang_tab.cpp" - break; - - case 652: /* spirv_storage_class_qualifier: SPIRV_STORAGE_CLASS LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN */ -#line 4244 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[-5].lex).loc); - parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq)); - (yyval.interm.type).qualifier.storage = EvqSpirvStorageClass; - (yyval.interm.type).qualifier.spirvStorageClass = (yyvsp[-1].lex).i; - } -#line 11927 "MachineIndependent/glslang_tab.cpp" - break; - - case 653: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN INTCONSTANT RIGHT_PAREN */ -#line 4252 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[-3].lex).loc); - (yyval.interm.type).qualifier.setSpirvDecorate((yyvsp[-1].lex).i); - } -#line 11936 "MachineIndependent/glslang_tab.cpp" - break; - - case 654: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN */ -#line 4256 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[-5].lex).loc); - parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq)); - (yyval.interm.type).qualifier.setSpirvDecorate((yyvsp[-1].lex).i); - } -#line 11946 "MachineIndependent/glslang_tab.cpp" - break; - - case 655: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN INTCONSTANT COMMA spirv_decorate_parameter_list RIGHT_PAREN */ -#line 4261 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[-5].lex).loc); - (yyval.interm.type).qualifier.setSpirvDecorate((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate()); - } -#line 11955 "MachineIndependent/glslang_tab.cpp" - break; - - case 656: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_parameter_list RIGHT_PAREN */ -#line 4265 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[-7].lex).loc); - parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq)); - (yyval.interm.type).qualifier.setSpirvDecorate((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate()); - } -#line 11965 "MachineIndependent/glslang_tab.cpp" - break; - - case 657: /* spirv_decorate_qualifier: SPIRV_DECORATE_ID LEFT_PAREN INTCONSTANT COMMA spirv_decorate_id_parameter_list RIGHT_PAREN */ -#line 4270 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[-5].lex).loc); - (yyval.interm.type).qualifier.setSpirvDecorateId((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate()); - } -#line 11974 "MachineIndependent/glslang_tab.cpp" - break; - - case 658: /* spirv_decorate_qualifier: SPIRV_DECORATE_ID LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_id_parameter_list RIGHT_PAREN */ -#line 4274 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[-7].lex).loc); - parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq)); - (yyval.interm.type).qualifier.setSpirvDecorateId((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate()); - } -#line 11984 "MachineIndependent/glslang_tab.cpp" - break; - - case 659: /* spirv_decorate_qualifier: SPIRV_DECORATE_STRING LEFT_PAREN INTCONSTANT COMMA spirv_decorate_string_parameter_list RIGHT_PAREN */ -#line 4279 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[-5].lex).loc); - (yyval.interm.type).qualifier.setSpirvDecorateString((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate()); - } -#line 11993 "MachineIndependent/glslang_tab.cpp" - break; - - case 660: /* spirv_decorate_qualifier: SPIRV_DECORATE_STRING LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_string_parameter_list RIGHT_PAREN */ -#line 4283 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[-7].lex).loc); - parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq)); - (yyval.interm.type).qualifier.setSpirvDecorateString((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate()); - } -#line 12003 "MachineIndependent/glslang_tab.cpp" - break; - - case 661: /* spirv_decorate_parameter_list: spirv_decorate_parameter */ -#line 4290 "MachineIndependent/glslang.y" - { - (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode)); - } -#line 12011 "MachineIndependent/glslang_tab.cpp" - break; - - case 662: /* spirv_decorate_parameter_list: spirv_decorate_parameter_list COMMA spirv_decorate_parameter */ -#line 4293 "MachineIndependent/glslang.y" - { - (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), (yyvsp[0].interm.intermNode)); - } -#line 12019 "MachineIndependent/glslang_tab.cpp" - break; - - case 663: /* spirv_decorate_parameter: FLOATCONSTANT */ -#line 4298 "MachineIndependent/glslang.y" - { - (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true); - } -#line 12027 "MachineIndependent/glslang_tab.cpp" - break; - - case 664: /* spirv_decorate_parameter: INTCONSTANT */ -#line 4301 "MachineIndependent/glslang.y" - { - (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true); - } -#line 12035 "MachineIndependent/glslang_tab.cpp" - break; - - case 665: /* spirv_decorate_parameter: UINTCONSTANT */ -#line 4304 "MachineIndependent/glslang.y" - { - (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true); - } -#line 12043 "MachineIndependent/glslang_tab.cpp" - break; - - case 666: /* spirv_decorate_parameter: BOOLCONSTANT */ -#line 4307 "MachineIndependent/glslang.y" - { - (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true); - } -#line 12051 "MachineIndependent/glslang_tab.cpp" - break; - - case 667: /* spirv_decorate_id_parameter_list: constant_expression */ -#line 4312 "MachineIndependent/glslang.y" - { - if ((yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtFloat && - (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtInt && - (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtUint && - (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtBool) - parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "this type not allowed", (yyvsp[0].interm.intermTypedNode)->getType().getBasicString(), ""); - (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermTypedNode)); - } -#line 12064 "MachineIndependent/glslang_tab.cpp" - break; - - case 668: /* spirv_decorate_id_parameter_list: spirv_decorate_id_parameter_list COMMA constant_expression */ -#line 4320 "MachineIndependent/glslang.y" - { - if ((yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtFloat && - (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtInt && - (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtUint && - (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtBool) - parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "this type not allowed", (yyvsp[0].interm.intermTypedNode)->getType().getBasicString(), ""); - (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), (yyvsp[0].interm.intermTypedNode)); - } -#line 12077 "MachineIndependent/glslang_tab.cpp" - break; - - case 669: /* spirv_decorate_string_parameter_list: STRING_LITERAL */ -#line 4330 "MachineIndependent/glslang.y" - { - (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate( - parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true)); - } -#line 12086 "MachineIndependent/glslang_tab.cpp" - break; - - case 670: /* spirv_decorate_string_parameter_list: spirv_decorate_string_parameter_list COMMA STRING_LITERAL */ -#line 4334 "MachineIndependent/glslang.y" - { - (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true)); - } -#line 12094 "MachineIndependent/glslang_tab.cpp" - break; - - case 671: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_instruction_qualifier_list COMMA spirv_type_parameter_list RIGHT_PAREN */ -#line 4339 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[-5].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).setSpirvType(*(yyvsp[-3].interm.spirvInst), (yyvsp[-1].interm.spirvTypeParams)); - } -#line 12103 "MachineIndependent/glslang_tab.cpp" - break; - - case 672: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list COMMA spirv_type_parameter_list RIGHT_PAREN */ -#line 4343 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[-7].lex).loc, parseContext.symbolTable.atGlobalLevel()); - parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq)); - (yyval.interm.type).setSpirvType(*(yyvsp[-3].interm.spirvInst), (yyvsp[-1].interm.spirvTypeParams)); - } -#line 12113 "MachineIndependent/glslang_tab.cpp" - break; - - case 673: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_instruction_qualifier_list RIGHT_PAREN */ -#line 4348 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[-3].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).setSpirvType(*(yyvsp[-1].interm.spirvInst)); - } -#line 12122 "MachineIndependent/glslang_tab.cpp" - break; - - case 674: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list RIGHT_PAREN */ -#line 4352 "MachineIndependent/glslang.y" - { - (yyval.interm.type).init((yyvsp[-5].lex).loc, parseContext.symbolTable.atGlobalLevel()); - parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq)); - (yyval.interm.type).setSpirvType(*(yyvsp[-1].interm.spirvInst)); - } -#line 12132 "MachineIndependent/glslang_tab.cpp" - break; - - case 675: /* spirv_type_parameter_list: spirv_type_parameter */ -#line 4359 "MachineIndependent/glslang.y" - { - (yyval.interm.spirvTypeParams) = (yyvsp[0].interm.spirvTypeParams); - } -#line 12140 "MachineIndependent/glslang_tab.cpp" - break; - - case 676: /* spirv_type_parameter_list: spirv_type_parameter_list COMMA spirv_type_parameter */ -#line 4362 "MachineIndependent/glslang.y" - { - (yyval.interm.spirvTypeParams) = parseContext.mergeSpirvTypeParameters((yyvsp[-2].interm.spirvTypeParams), (yyvsp[0].interm.spirvTypeParams)); - } -#line 12148 "MachineIndependent/glslang_tab.cpp" - break; - - case 677: /* spirv_type_parameter: constant_expression */ -#line 4367 "MachineIndependent/glslang.y" - { - (yyval.interm.spirvTypeParams) = parseContext.makeSpirvTypeParameters((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode)->getAsConstantUnion()); - } -#line 12156 "MachineIndependent/glslang_tab.cpp" - break; - - case 678: /* spirv_instruction_qualifier: SPIRV_INSTRUCTION LEFT_PAREN spirv_instruction_qualifier_list RIGHT_PAREN */ -#line 4372 "MachineIndependent/glslang.y" - { - (yyval.interm.spirvInst) = (yyvsp[-1].interm.spirvInst); - } -#line 12164 "MachineIndependent/glslang_tab.cpp" - break; - - case 679: /* spirv_instruction_qualifier: SPIRV_INSTRUCTION LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list RIGHT_PAREN */ -#line 4375 "MachineIndependent/glslang.y" - { - parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq)); - (yyval.interm.spirvInst) = (yyvsp[-1].interm.spirvInst); - } -#line 12173 "MachineIndependent/glslang_tab.cpp" - break; - - case 680: /* spirv_instruction_qualifier_list: spirv_instruction_qualifier_id */ -#line 4381 "MachineIndependent/glslang.y" - { - (yyval.interm.spirvInst) = (yyvsp[0].interm.spirvInst); - } -#line 12181 "MachineIndependent/glslang_tab.cpp" - break; - - case 681: /* spirv_instruction_qualifier_list: spirv_instruction_qualifier_list COMMA spirv_instruction_qualifier_id */ -#line 4384 "MachineIndependent/glslang.y" - { - (yyval.interm.spirvInst) = parseContext.mergeSpirvInstruction((yyvsp[-1].lex).loc, (yyvsp[-2].interm.spirvInst), (yyvsp[0].interm.spirvInst)); - } -#line 12189 "MachineIndependent/glslang_tab.cpp" - break; - - case 682: /* spirv_instruction_qualifier_id: IDENTIFIER EQUAL STRING_LITERAL */ -#line 4389 "MachineIndependent/glslang.y" - { - (yyval.interm.spirvInst) = parseContext.makeSpirvInstruction((yyvsp[-1].lex).loc, *(yyvsp[-2].lex).string, *(yyvsp[0].lex).string); - } -#line 12197 "MachineIndependent/glslang_tab.cpp" - break; - - case 683: /* spirv_instruction_qualifier_id: IDENTIFIER EQUAL INTCONSTANT */ -#line 4392 "MachineIndependent/glslang.y" - { - (yyval.interm.spirvInst) = parseContext.makeSpirvInstruction((yyvsp[-1].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[0].lex).i); - } -#line 12205 "MachineIndependent/glslang_tab.cpp" - break; - - -#line 12209 "MachineIndependent/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 ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc); - - YYPOPSTACK (yylen); - yylen = 0; - - *++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. */ - { - const int yylhs = yyr1[yyn] - YYNTOKENS; - const int yyi = yypgoto[yylhs] + *yyssp; - yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp - ? yytable[yyi] - : yydefgoto[yylhs]); - } - - 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 ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar); - /* If not already recovering from an error, report this error. */ - if (!yyerrstatus) - { - ++yynerrs; - { - yypcontext_t yyctx - = {yyssp, yytoken}; - char const *yymsgp = YY_("syntax error"); - int yysyntax_error_status; - yysyntax_error_status = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx); - if (yysyntax_error_status == 0) - yymsgp = yymsg; - else if (yysyntax_error_status == -1) - { - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); - yymsg = YY_CAST (char *, - YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc))); - if (yymsg) - { - yysyntax_error_status - = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx); - yymsgp = yymsg; - } - else - { - yymsg = yymsgbuf; - yymsg_alloc = sizeof yymsgbuf; - yysyntax_error_status = YYENOMEM; - } - } - yyerror (pParseContext, yymsgp); - if (yysyntax_error_status == YYENOMEM) - goto yyexhaustedlab; - } - } - - 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 when the user code never invokes YYERROR and the - label yyerrorlab therefore never appears in user code. */ - if (0) - YYERROR; - - /* 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. */ - - /* Pop stack until we find a state that shifts the error token. */ - for (;;) - { - yyn = yypact[yystate]; - if (!yypact_value_is_default (yyn)) - { - yyn += YYSYMBOL_YYerror; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) - { - 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", - YY_ACCESSING_SYMBOL (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", YY_ACCESSING_SYMBOL (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 1 -/*-------------------------------------------------. -| yyexhaustedlab -- memory exhaustion comes here. | -`-------------------------------------------------*/ -yyexhaustedlab: - yyerror (pParseContext, YY_("memory exhausted")); - yyresult = 2; - goto yyreturn; -#endif - - -/*-------------------------------------------------------. -| yyreturn -- parsing is finished, clean up and return. | -`-------------------------------------------------------*/ -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", - YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, pParseContext); - YYPOPSTACK (1); - } -#ifndef yyoverflow - if (yyss != yyssa) - YYSTACK_FREE (yyss); -#endif - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); - return yyresult; -} - -#line 4397 "MachineIndependent/glslang.y" - diff --git a/deps/glslang/glslang/MachineIndependent/glslang_tab.cpp.h b/deps/glslang/glslang/MachineIndependent/glslang_tab.cpp.h deleted file mode 100644 index 596a10e6..00000000 --- a/deps/glslang/glslang/MachineIndependent/glslang_tab.cpp.h +++ /dev/null @@ -1,568 +0,0 @@ -/* A Bison parser, made by GNU Bison 3.7.4. */ - -/* Bison interface for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 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. */ - -/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, - especially those whose name start with YY_ or yy_. They are - private implementation details that can be changed or removed. */ - -#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 kinds. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - enum yytokentype - { - YYEMPTY = -2, - YYEOF = 0, /* "end of file" */ - YYerror = 256, /* error */ - YYUNDEF = 257, /* "invalid token" */ - CONST = 258, /* CONST */ - BOOL = 259, /* BOOL */ - INT = 260, /* INT */ - UINT = 261, /* UINT */ - FLOAT = 262, /* FLOAT */ - BVEC2 = 263, /* BVEC2 */ - BVEC3 = 264, /* BVEC3 */ - BVEC4 = 265, /* BVEC4 */ - IVEC2 = 266, /* IVEC2 */ - IVEC3 = 267, /* IVEC3 */ - IVEC4 = 268, /* IVEC4 */ - UVEC2 = 269, /* UVEC2 */ - UVEC3 = 270, /* UVEC3 */ - UVEC4 = 271, /* UVEC4 */ - VEC2 = 272, /* VEC2 */ - VEC3 = 273, /* VEC3 */ - VEC4 = 274, /* VEC4 */ - MAT2 = 275, /* MAT2 */ - MAT3 = 276, /* MAT3 */ - MAT4 = 277, /* MAT4 */ - MAT2X2 = 278, /* MAT2X2 */ - MAT2X3 = 279, /* MAT2X3 */ - MAT2X4 = 280, /* MAT2X4 */ - MAT3X2 = 281, /* MAT3X2 */ - MAT3X3 = 282, /* MAT3X3 */ - MAT3X4 = 283, /* MAT3X4 */ - MAT4X2 = 284, /* MAT4X2 */ - MAT4X3 = 285, /* MAT4X3 */ - MAT4X4 = 286, /* MAT4X4 */ - SAMPLER2D = 287, /* SAMPLER2D */ - SAMPLER3D = 288, /* SAMPLER3D */ - SAMPLERCUBE = 289, /* SAMPLERCUBE */ - SAMPLER2DSHADOW = 290, /* SAMPLER2DSHADOW */ - SAMPLERCUBESHADOW = 291, /* SAMPLERCUBESHADOW */ - SAMPLER2DARRAY = 292, /* SAMPLER2DARRAY */ - SAMPLER2DARRAYSHADOW = 293, /* SAMPLER2DARRAYSHADOW */ - ISAMPLER2D = 294, /* ISAMPLER2D */ - ISAMPLER3D = 295, /* ISAMPLER3D */ - ISAMPLERCUBE = 296, /* ISAMPLERCUBE */ - ISAMPLER2DARRAY = 297, /* ISAMPLER2DARRAY */ - USAMPLER2D = 298, /* USAMPLER2D */ - USAMPLER3D = 299, /* USAMPLER3D */ - USAMPLERCUBE = 300, /* USAMPLERCUBE */ - USAMPLER2DARRAY = 301, /* USAMPLER2DARRAY */ - SAMPLER = 302, /* SAMPLER */ - SAMPLERSHADOW = 303, /* SAMPLERSHADOW */ - TEXTURE2D = 304, /* TEXTURE2D */ - TEXTURE3D = 305, /* TEXTURE3D */ - TEXTURECUBE = 306, /* TEXTURECUBE */ - TEXTURE2DARRAY = 307, /* TEXTURE2DARRAY */ - ITEXTURE2D = 308, /* ITEXTURE2D */ - ITEXTURE3D = 309, /* ITEXTURE3D */ - ITEXTURECUBE = 310, /* ITEXTURECUBE */ - ITEXTURE2DARRAY = 311, /* ITEXTURE2DARRAY */ - UTEXTURE2D = 312, /* UTEXTURE2D */ - UTEXTURE3D = 313, /* UTEXTURE3D */ - UTEXTURECUBE = 314, /* UTEXTURECUBE */ - UTEXTURE2DARRAY = 315, /* UTEXTURE2DARRAY */ - ATTRIBUTE = 316, /* ATTRIBUTE */ - VARYING = 317, /* VARYING */ - FLOAT16_T = 318, /* FLOAT16_T */ - FLOAT32_T = 319, /* FLOAT32_T */ - DOUBLE = 320, /* DOUBLE */ - FLOAT64_T = 321, /* FLOAT64_T */ - INT64_T = 322, /* INT64_T */ - UINT64_T = 323, /* UINT64_T */ - INT32_T = 324, /* INT32_T */ - UINT32_T = 325, /* UINT32_T */ - INT16_T = 326, /* INT16_T */ - UINT16_T = 327, /* UINT16_T */ - INT8_T = 328, /* INT8_T */ - UINT8_T = 329, /* UINT8_T */ - I64VEC2 = 330, /* I64VEC2 */ - I64VEC3 = 331, /* I64VEC3 */ - I64VEC4 = 332, /* I64VEC4 */ - U64VEC2 = 333, /* U64VEC2 */ - U64VEC3 = 334, /* U64VEC3 */ - U64VEC4 = 335, /* U64VEC4 */ - I32VEC2 = 336, /* I32VEC2 */ - I32VEC3 = 337, /* I32VEC3 */ - I32VEC4 = 338, /* I32VEC4 */ - U32VEC2 = 339, /* U32VEC2 */ - U32VEC3 = 340, /* U32VEC3 */ - U32VEC4 = 341, /* U32VEC4 */ - I16VEC2 = 342, /* I16VEC2 */ - I16VEC3 = 343, /* I16VEC3 */ - I16VEC4 = 344, /* I16VEC4 */ - U16VEC2 = 345, /* U16VEC2 */ - U16VEC3 = 346, /* U16VEC3 */ - U16VEC4 = 347, /* U16VEC4 */ - I8VEC2 = 348, /* I8VEC2 */ - I8VEC3 = 349, /* I8VEC3 */ - I8VEC4 = 350, /* I8VEC4 */ - U8VEC2 = 351, /* U8VEC2 */ - U8VEC3 = 352, /* U8VEC3 */ - U8VEC4 = 353, /* U8VEC4 */ - DVEC2 = 354, /* DVEC2 */ - DVEC3 = 355, /* DVEC3 */ - DVEC4 = 356, /* DVEC4 */ - DMAT2 = 357, /* DMAT2 */ - DMAT3 = 358, /* DMAT3 */ - DMAT4 = 359, /* DMAT4 */ - F16VEC2 = 360, /* F16VEC2 */ - F16VEC3 = 361, /* F16VEC3 */ - F16VEC4 = 362, /* F16VEC4 */ - F16MAT2 = 363, /* F16MAT2 */ - F16MAT3 = 364, /* F16MAT3 */ - F16MAT4 = 365, /* F16MAT4 */ - F32VEC2 = 366, /* F32VEC2 */ - F32VEC3 = 367, /* F32VEC3 */ - F32VEC4 = 368, /* F32VEC4 */ - F32MAT2 = 369, /* F32MAT2 */ - F32MAT3 = 370, /* F32MAT3 */ - F32MAT4 = 371, /* F32MAT4 */ - F64VEC2 = 372, /* F64VEC2 */ - F64VEC3 = 373, /* F64VEC3 */ - F64VEC4 = 374, /* F64VEC4 */ - F64MAT2 = 375, /* F64MAT2 */ - F64MAT3 = 376, /* F64MAT3 */ - F64MAT4 = 377, /* F64MAT4 */ - DMAT2X2 = 378, /* DMAT2X2 */ - DMAT2X3 = 379, /* DMAT2X3 */ - DMAT2X4 = 380, /* DMAT2X4 */ - DMAT3X2 = 381, /* DMAT3X2 */ - DMAT3X3 = 382, /* DMAT3X3 */ - DMAT3X4 = 383, /* DMAT3X4 */ - DMAT4X2 = 384, /* DMAT4X2 */ - DMAT4X3 = 385, /* DMAT4X3 */ - DMAT4X4 = 386, /* DMAT4X4 */ - F16MAT2X2 = 387, /* F16MAT2X2 */ - F16MAT2X3 = 388, /* F16MAT2X3 */ - F16MAT2X4 = 389, /* F16MAT2X4 */ - F16MAT3X2 = 390, /* F16MAT3X2 */ - F16MAT3X3 = 391, /* F16MAT3X3 */ - F16MAT3X4 = 392, /* F16MAT3X4 */ - F16MAT4X2 = 393, /* F16MAT4X2 */ - F16MAT4X3 = 394, /* F16MAT4X3 */ - F16MAT4X4 = 395, /* F16MAT4X4 */ - F32MAT2X2 = 396, /* F32MAT2X2 */ - F32MAT2X3 = 397, /* F32MAT2X3 */ - F32MAT2X4 = 398, /* F32MAT2X4 */ - F32MAT3X2 = 399, /* F32MAT3X2 */ - F32MAT3X3 = 400, /* F32MAT3X3 */ - F32MAT3X4 = 401, /* F32MAT3X4 */ - F32MAT4X2 = 402, /* F32MAT4X2 */ - F32MAT4X3 = 403, /* F32MAT4X3 */ - F32MAT4X4 = 404, /* F32MAT4X4 */ - F64MAT2X2 = 405, /* F64MAT2X2 */ - F64MAT2X3 = 406, /* F64MAT2X3 */ - F64MAT2X4 = 407, /* F64MAT2X4 */ - F64MAT3X2 = 408, /* F64MAT3X2 */ - F64MAT3X3 = 409, /* F64MAT3X3 */ - F64MAT3X4 = 410, /* F64MAT3X4 */ - F64MAT4X2 = 411, /* F64MAT4X2 */ - F64MAT4X3 = 412, /* F64MAT4X3 */ - F64MAT4X4 = 413, /* F64MAT4X4 */ - ATOMIC_UINT = 414, /* ATOMIC_UINT */ - ACCSTRUCTNV = 415, /* ACCSTRUCTNV */ - ACCSTRUCTEXT = 416, /* ACCSTRUCTEXT */ - RAYQUERYEXT = 417, /* RAYQUERYEXT */ - FCOOPMATNV = 418, /* FCOOPMATNV */ - ICOOPMATNV = 419, /* ICOOPMATNV */ - UCOOPMATNV = 420, /* UCOOPMATNV */ - SAMPLERCUBEARRAY = 421, /* SAMPLERCUBEARRAY */ - SAMPLERCUBEARRAYSHADOW = 422, /* SAMPLERCUBEARRAYSHADOW */ - ISAMPLERCUBEARRAY = 423, /* ISAMPLERCUBEARRAY */ - USAMPLERCUBEARRAY = 424, /* USAMPLERCUBEARRAY */ - SAMPLER1D = 425, /* SAMPLER1D */ - SAMPLER1DARRAY = 426, /* SAMPLER1DARRAY */ - SAMPLER1DARRAYSHADOW = 427, /* SAMPLER1DARRAYSHADOW */ - ISAMPLER1D = 428, /* ISAMPLER1D */ - SAMPLER1DSHADOW = 429, /* SAMPLER1DSHADOW */ - SAMPLER2DRECT = 430, /* SAMPLER2DRECT */ - SAMPLER2DRECTSHADOW = 431, /* SAMPLER2DRECTSHADOW */ - ISAMPLER2DRECT = 432, /* ISAMPLER2DRECT */ - USAMPLER2DRECT = 433, /* USAMPLER2DRECT */ - SAMPLERBUFFER = 434, /* SAMPLERBUFFER */ - ISAMPLERBUFFER = 435, /* ISAMPLERBUFFER */ - USAMPLERBUFFER = 436, /* USAMPLERBUFFER */ - SAMPLER2DMS = 437, /* SAMPLER2DMS */ - ISAMPLER2DMS = 438, /* ISAMPLER2DMS */ - USAMPLER2DMS = 439, /* USAMPLER2DMS */ - SAMPLER2DMSARRAY = 440, /* SAMPLER2DMSARRAY */ - ISAMPLER2DMSARRAY = 441, /* ISAMPLER2DMSARRAY */ - USAMPLER2DMSARRAY = 442, /* USAMPLER2DMSARRAY */ - SAMPLEREXTERNALOES = 443, /* SAMPLEREXTERNALOES */ - SAMPLEREXTERNAL2DY2YEXT = 444, /* SAMPLEREXTERNAL2DY2YEXT */ - ISAMPLER1DARRAY = 445, /* ISAMPLER1DARRAY */ - USAMPLER1D = 446, /* USAMPLER1D */ - USAMPLER1DARRAY = 447, /* USAMPLER1DARRAY */ - F16SAMPLER1D = 448, /* F16SAMPLER1D */ - F16SAMPLER2D = 449, /* F16SAMPLER2D */ - F16SAMPLER3D = 450, /* F16SAMPLER3D */ - F16SAMPLER2DRECT = 451, /* F16SAMPLER2DRECT */ - F16SAMPLERCUBE = 452, /* F16SAMPLERCUBE */ - F16SAMPLER1DARRAY = 453, /* F16SAMPLER1DARRAY */ - F16SAMPLER2DARRAY = 454, /* F16SAMPLER2DARRAY */ - F16SAMPLERCUBEARRAY = 455, /* F16SAMPLERCUBEARRAY */ - F16SAMPLERBUFFER = 456, /* F16SAMPLERBUFFER */ - F16SAMPLER2DMS = 457, /* F16SAMPLER2DMS */ - F16SAMPLER2DMSARRAY = 458, /* F16SAMPLER2DMSARRAY */ - F16SAMPLER1DSHADOW = 459, /* F16SAMPLER1DSHADOW */ - F16SAMPLER2DSHADOW = 460, /* F16SAMPLER2DSHADOW */ - F16SAMPLER1DARRAYSHADOW = 461, /* F16SAMPLER1DARRAYSHADOW */ - F16SAMPLER2DARRAYSHADOW = 462, /* F16SAMPLER2DARRAYSHADOW */ - F16SAMPLER2DRECTSHADOW = 463, /* F16SAMPLER2DRECTSHADOW */ - F16SAMPLERCUBESHADOW = 464, /* F16SAMPLERCUBESHADOW */ - F16SAMPLERCUBEARRAYSHADOW = 465, /* F16SAMPLERCUBEARRAYSHADOW */ - IMAGE1D = 466, /* IMAGE1D */ - IIMAGE1D = 467, /* IIMAGE1D */ - UIMAGE1D = 468, /* UIMAGE1D */ - IMAGE2D = 469, /* IMAGE2D */ - IIMAGE2D = 470, /* IIMAGE2D */ - UIMAGE2D = 471, /* UIMAGE2D */ - IMAGE3D = 472, /* IMAGE3D */ - IIMAGE3D = 473, /* IIMAGE3D */ - UIMAGE3D = 474, /* UIMAGE3D */ - IMAGE2DRECT = 475, /* IMAGE2DRECT */ - IIMAGE2DRECT = 476, /* IIMAGE2DRECT */ - UIMAGE2DRECT = 477, /* UIMAGE2DRECT */ - IMAGECUBE = 478, /* IMAGECUBE */ - IIMAGECUBE = 479, /* IIMAGECUBE */ - UIMAGECUBE = 480, /* UIMAGECUBE */ - IMAGEBUFFER = 481, /* IMAGEBUFFER */ - IIMAGEBUFFER = 482, /* IIMAGEBUFFER */ - UIMAGEBUFFER = 483, /* UIMAGEBUFFER */ - IMAGE1DARRAY = 484, /* IMAGE1DARRAY */ - IIMAGE1DARRAY = 485, /* IIMAGE1DARRAY */ - UIMAGE1DARRAY = 486, /* UIMAGE1DARRAY */ - IMAGE2DARRAY = 487, /* IMAGE2DARRAY */ - IIMAGE2DARRAY = 488, /* IIMAGE2DARRAY */ - UIMAGE2DARRAY = 489, /* UIMAGE2DARRAY */ - IMAGECUBEARRAY = 490, /* IMAGECUBEARRAY */ - IIMAGECUBEARRAY = 491, /* IIMAGECUBEARRAY */ - UIMAGECUBEARRAY = 492, /* UIMAGECUBEARRAY */ - IMAGE2DMS = 493, /* IMAGE2DMS */ - IIMAGE2DMS = 494, /* IIMAGE2DMS */ - UIMAGE2DMS = 495, /* UIMAGE2DMS */ - IMAGE2DMSARRAY = 496, /* IMAGE2DMSARRAY */ - IIMAGE2DMSARRAY = 497, /* IIMAGE2DMSARRAY */ - UIMAGE2DMSARRAY = 498, /* UIMAGE2DMSARRAY */ - F16IMAGE1D = 499, /* F16IMAGE1D */ - F16IMAGE2D = 500, /* F16IMAGE2D */ - F16IMAGE3D = 501, /* F16IMAGE3D */ - F16IMAGE2DRECT = 502, /* F16IMAGE2DRECT */ - F16IMAGECUBE = 503, /* F16IMAGECUBE */ - F16IMAGE1DARRAY = 504, /* F16IMAGE1DARRAY */ - F16IMAGE2DARRAY = 505, /* F16IMAGE2DARRAY */ - F16IMAGECUBEARRAY = 506, /* F16IMAGECUBEARRAY */ - F16IMAGEBUFFER = 507, /* F16IMAGEBUFFER */ - F16IMAGE2DMS = 508, /* F16IMAGE2DMS */ - F16IMAGE2DMSARRAY = 509, /* F16IMAGE2DMSARRAY */ - I64IMAGE1D = 510, /* I64IMAGE1D */ - U64IMAGE1D = 511, /* U64IMAGE1D */ - I64IMAGE2D = 512, /* I64IMAGE2D */ - U64IMAGE2D = 513, /* U64IMAGE2D */ - I64IMAGE3D = 514, /* I64IMAGE3D */ - U64IMAGE3D = 515, /* U64IMAGE3D */ - I64IMAGE2DRECT = 516, /* I64IMAGE2DRECT */ - U64IMAGE2DRECT = 517, /* U64IMAGE2DRECT */ - I64IMAGECUBE = 518, /* I64IMAGECUBE */ - U64IMAGECUBE = 519, /* U64IMAGECUBE */ - I64IMAGEBUFFER = 520, /* I64IMAGEBUFFER */ - U64IMAGEBUFFER = 521, /* U64IMAGEBUFFER */ - I64IMAGE1DARRAY = 522, /* I64IMAGE1DARRAY */ - U64IMAGE1DARRAY = 523, /* U64IMAGE1DARRAY */ - I64IMAGE2DARRAY = 524, /* I64IMAGE2DARRAY */ - U64IMAGE2DARRAY = 525, /* U64IMAGE2DARRAY */ - I64IMAGECUBEARRAY = 526, /* I64IMAGECUBEARRAY */ - U64IMAGECUBEARRAY = 527, /* U64IMAGECUBEARRAY */ - I64IMAGE2DMS = 528, /* I64IMAGE2DMS */ - U64IMAGE2DMS = 529, /* U64IMAGE2DMS */ - I64IMAGE2DMSARRAY = 530, /* I64IMAGE2DMSARRAY */ - U64IMAGE2DMSARRAY = 531, /* U64IMAGE2DMSARRAY */ - TEXTURECUBEARRAY = 532, /* TEXTURECUBEARRAY */ - ITEXTURECUBEARRAY = 533, /* ITEXTURECUBEARRAY */ - UTEXTURECUBEARRAY = 534, /* UTEXTURECUBEARRAY */ - TEXTURE1D = 535, /* TEXTURE1D */ - ITEXTURE1D = 536, /* ITEXTURE1D */ - UTEXTURE1D = 537, /* UTEXTURE1D */ - TEXTURE1DARRAY = 538, /* TEXTURE1DARRAY */ - ITEXTURE1DARRAY = 539, /* ITEXTURE1DARRAY */ - UTEXTURE1DARRAY = 540, /* UTEXTURE1DARRAY */ - TEXTURE2DRECT = 541, /* TEXTURE2DRECT */ - ITEXTURE2DRECT = 542, /* ITEXTURE2DRECT */ - UTEXTURE2DRECT = 543, /* UTEXTURE2DRECT */ - TEXTUREBUFFER = 544, /* TEXTUREBUFFER */ - ITEXTUREBUFFER = 545, /* ITEXTUREBUFFER */ - UTEXTUREBUFFER = 546, /* UTEXTUREBUFFER */ - TEXTURE2DMS = 547, /* TEXTURE2DMS */ - ITEXTURE2DMS = 548, /* ITEXTURE2DMS */ - UTEXTURE2DMS = 549, /* UTEXTURE2DMS */ - TEXTURE2DMSARRAY = 550, /* TEXTURE2DMSARRAY */ - ITEXTURE2DMSARRAY = 551, /* ITEXTURE2DMSARRAY */ - UTEXTURE2DMSARRAY = 552, /* UTEXTURE2DMSARRAY */ - F16TEXTURE1D = 553, /* F16TEXTURE1D */ - F16TEXTURE2D = 554, /* F16TEXTURE2D */ - F16TEXTURE3D = 555, /* F16TEXTURE3D */ - F16TEXTURE2DRECT = 556, /* F16TEXTURE2DRECT */ - F16TEXTURECUBE = 557, /* F16TEXTURECUBE */ - F16TEXTURE1DARRAY = 558, /* F16TEXTURE1DARRAY */ - F16TEXTURE2DARRAY = 559, /* F16TEXTURE2DARRAY */ - F16TEXTURECUBEARRAY = 560, /* F16TEXTURECUBEARRAY */ - F16TEXTUREBUFFER = 561, /* F16TEXTUREBUFFER */ - F16TEXTURE2DMS = 562, /* F16TEXTURE2DMS */ - F16TEXTURE2DMSARRAY = 563, /* F16TEXTURE2DMSARRAY */ - SUBPASSINPUT = 564, /* SUBPASSINPUT */ - SUBPASSINPUTMS = 565, /* SUBPASSINPUTMS */ - ISUBPASSINPUT = 566, /* ISUBPASSINPUT */ - ISUBPASSINPUTMS = 567, /* ISUBPASSINPUTMS */ - USUBPASSINPUT = 568, /* USUBPASSINPUT */ - USUBPASSINPUTMS = 569, /* USUBPASSINPUTMS */ - F16SUBPASSINPUT = 570, /* F16SUBPASSINPUT */ - F16SUBPASSINPUTMS = 571, /* F16SUBPASSINPUTMS */ - SPIRV_INSTRUCTION = 572, /* SPIRV_INSTRUCTION */ - SPIRV_EXECUTION_MODE = 573, /* SPIRV_EXECUTION_MODE */ - SPIRV_EXECUTION_MODE_ID = 574, /* SPIRV_EXECUTION_MODE_ID */ - SPIRV_DECORATE = 575, /* SPIRV_DECORATE */ - SPIRV_DECORATE_ID = 576, /* SPIRV_DECORATE_ID */ - SPIRV_DECORATE_STRING = 577, /* SPIRV_DECORATE_STRING */ - SPIRV_TYPE = 578, /* SPIRV_TYPE */ - SPIRV_STORAGE_CLASS = 579, /* SPIRV_STORAGE_CLASS */ - SPIRV_BY_REFERENCE = 580, /* SPIRV_BY_REFERENCE */ - SPIRV_LITERAL = 581, /* SPIRV_LITERAL */ - LEFT_OP = 582, /* LEFT_OP */ - RIGHT_OP = 583, /* RIGHT_OP */ - INC_OP = 584, /* INC_OP */ - DEC_OP = 585, /* DEC_OP */ - LE_OP = 586, /* LE_OP */ - GE_OP = 587, /* GE_OP */ - EQ_OP = 588, /* EQ_OP */ - NE_OP = 589, /* NE_OP */ - AND_OP = 590, /* AND_OP */ - OR_OP = 591, /* OR_OP */ - XOR_OP = 592, /* XOR_OP */ - MUL_ASSIGN = 593, /* MUL_ASSIGN */ - DIV_ASSIGN = 594, /* DIV_ASSIGN */ - ADD_ASSIGN = 595, /* ADD_ASSIGN */ - MOD_ASSIGN = 596, /* MOD_ASSIGN */ - LEFT_ASSIGN = 597, /* LEFT_ASSIGN */ - RIGHT_ASSIGN = 598, /* RIGHT_ASSIGN */ - AND_ASSIGN = 599, /* AND_ASSIGN */ - XOR_ASSIGN = 600, /* XOR_ASSIGN */ - OR_ASSIGN = 601, /* OR_ASSIGN */ - SUB_ASSIGN = 602, /* SUB_ASSIGN */ - STRING_LITERAL = 603, /* STRING_LITERAL */ - LEFT_PAREN = 604, /* LEFT_PAREN */ - RIGHT_PAREN = 605, /* RIGHT_PAREN */ - LEFT_BRACKET = 606, /* LEFT_BRACKET */ - RIGHT_BRACKET = 607, /* RIGHT_BRACKET */ - LEFT_BRACE = 608, /* LEFT_BRACE */ - RIGHT_BRACE = 609, /* RIGHT_BRACE */ - DOT = 610, /* DOT */ - COMMA = 611, /* COMMA */ - COLON = 612, /* COLON */ - EQUAL = 613, /* EQUAL */ - SEMICOLON = 614, /* SEMICOLON */ - BANG = 615, /* BANG */ - DASH = 616, /* DASH */ - TILDE = 617, /* TILDE */ - PLUS = 618, /* PLUS */ - STAR = 619, /* STAR */ - SLASH = 620, /* SLASH */ - PERCENT = 621, /* PERCENT */ - LEFT_ANGLE = 622, /* LEFT_ANGLE */ - RIGHT_ANGLE = 623, /* RIGHT_ANGLE */ - VERTICAL_BAR = 624, /* VERTICAL_BAR */ - CARET = 625, /* CARET */ - AMPERSAND = 626, /* AMPERSAND */ - QUESTION = 627, /* QUESTION */ - INVARIANT = 628, /* INVARIANT */ - HIGH_PRECISION = 629, /* HIGH_PRECISION */ - MEDIUM_PRECISION = 630, /* MEDIUM_PRECISION */ - LOW_PRECISION = 631, /* LOW_PRECISION */ - PRECISION = 632, /* PRECISION */ - PACKED = 633, /* PACKED */ - RESOURCE = 634, /* RESOURCE */ - SUPERP = 635, /* SUPERP */ - FLOATCONSTANT = 636, /* FLOATCONSTANT */ - INTCONSTANT = 637, /* INTCONSTANT */ - UINTCONSTANT = 638, /* UINTCONSTANT */ - BOOLCONSTANT = 639, /* BOOLCONSTANT */ - IDENTIFIER = 640, /* IDENTIFIER */ - TYPE_NAME = 641, /* TYPE_NAME */ - CENTROID = 642, /* CENTROID */ - IN = 643, /* IN */ - OUT = 644, /* OUT */ - INOUT = 645, /* INOUT */ - STRUCT = 646, /* STRUCT */ - VOID = 647, /* VOID */ - WHILE = 648, /* WHILE */ - BREAK = 649, /* BREAK */ - CONTINUE = 650, /* CONTINUE */ - DO = 651, /* DO */ - ELSE = 652, /* ELSE */ - FOR = 653, /* FOR */ - IF = 654, /* IF */ - DISCARD = 655, /* DISCARD */ - RETURN = 656, /* RETURN */ - SWITCH = 657, /* SWITCH */ - CASE = 658, /* CASE */ - DEFAULT = 659, /* DEFAULT */ - TERMINATE_INVOCATION = 660, /* TERMINATE_INVOCATION */ - TERMINATE_RAY = 661, /* TERMINATE_RAY */ - IGNORE_INTERSECTION = 662, /* IGNORE_INTERSECTION */ - UNIFORM = 663, /* UNIFORM */ - SHARED = 664, /* SHARED */ - BUFFER = 665, /* BUFFER */ - FLAT = 666, /* FLAT */ - SMOOTH = 667, /* SMOOTH */ - LAYOUT = 668, /* LAYOUT */ - DOUBLECONSTANT = 669, /* DOUBLECONSTANT */ - INT16CONSTANT = 670, /* INT16CONSTANT */ - UINT16CONSTANT = 671, /* UINT16CONSTANT */ - FLOAT16CONSTANT = 672, /* FLOAT16CONSTANT */ - INT32CONSTANT = 673, /* INT32CONSTANT */ - UINT32CONSTANT = 674, /* UINT32CONSTANT */ - INT64CONSTANT = 675, /* INT64CONSTANT */ - UINT64CONSTANT = 676, /* UINT64CONSTANT */ - SUBROUTINE = 677, /* SUBROUTINE */ - DEMOTE = 678, /* DEMOTE */ - PAYLOADNV = 679, /* PAYLOADNV */ - PAYLOADINNV = 680, /* PAYLOADINNV */ - HITATTRNV = 681, /* HITATTRNV */ - CALLDATANV = 682, /* CALLDATANV */ - CALLDATAINNV = 683, /* CALLDATAINNV */ - PAYLOADEXT = 684, /* PAYLOADEXT */ - PAYLOADINEXT = 685, /* PAYLOADINEXT */ - HITATTREXT = 686, /* HITATTREXT */ - CALLDATAEXT = 687, /* CALLDATAEXT */ - CALLDATAINEXT = 688, /* CALLDATAINEXT */ - PATCH = 689, /* PATCH */ - SAMPLE = 690, /* SAMPLE */ - NONUNIFORM = 691, /* NONUNIFORM */ - COHERENT = 692, /* COHERENT */ - VOLATILE = 693, /* VOLATILE */ - RESTRICT = 694, /* RESTRICT */ - READONLY = 695, /* READONLY */ - WRITEONLY = 696, /* WRITEONLY */ - DEVICECOHERENT = 697, /* DEVICECOHERENT */ - QUEUEFAMILYCOHERENT = 698, /* QUEUEFAMILYCOHERENT */ - WORKGROUPCOHERENT = 699, /* WORKGROUPCOHERENT */ - SUBGROUPCOHERENT = 700, /* SUBGROUPCOHERENT */ - NONPRIVATE = 701, /* NONPRIVATE */ - SHADERCALLCOHERENT = 702, /* SHADERCALLCOHERENT */ - NOPERSPECTIVE = 703, /* NOPERSPECTIVE */ - EXPLICITINTERPAMD = 704, /* EXPLICITINTERPAMD */ - PERVERTEXNV = 705, /* PERVERTEXNV */ - PERPRIMITIVENV = 706, /* PERPRIMITIVENV */ - PERVIEWNV = 707, /* PERVIEWNV */ - PERTASKNV = 708, /* PERTASKNV */ - PRECISE = 709 /* PRECISE */ - }; - typedef enum yytokentype yytoken_kind_t; -#endif - -/* Value type. */ -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -union YYSTYPE -{ -#line 97 "MachineIndependent/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; - glslang::TAttributes* attributes; - glslang::TSpirvRequirement* spirvReq; - glslang::TSpirvInstruction* spirvInst; - glslang::TSpirvTypeParameters* spirvTypeParams; - }; - union { - glslang::TPublicType type; - glslang::TFunction* function; - glslang::TParameter param; - glslang::TTypeLoc typeLine; - glslang::TTypeList* typeList; - glslang::TArraySizes* arraySizes; - glslang::TIdentifierList* identifierList; - }; - glslang::TArraySizes* typeParameters; - } interm; - -#line 557 "MachineIndependent/glslang_tab.cpp.h" - -}; -typedef union YYSTYPE YYSTYPE; -# 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/glslang/MachineIndependent/intermOut.cpp b/deps/glslang/glslang/MachineIndependent/intermOut.cpp deleted file mode 100644 index d8a3aab5..00000000 --- a/deps/glslang/glslang/MachineIndependent/intermOut.cpp +++ /dev/null @@ -1,1561 +0,0 @@ -// -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2012-2016 LunarG, Inc. -// Copyright (C) 2017 ARM Limited. -// Modifications Copyright (C) 2020 Advanced Micro Devices, 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: -// -// 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 !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) - -#include "localintermediate.h" -#include "../Include/InfoSink.h" - -#ifdef _MSC_VER -#include -#else -#include -#endif -#include - - -namespace glslang { - -// -// Two purposes: -// 1. Show an example of how to iterate tree. Functions can -// also directly call Traverse() on children themselves to -// have finer grained control over the process than shown here. -// See the last function for how to get started. -// 2. Print out a text based description of the tree. -// - -// -// Use this class to carry along data from node to node in -// the traversal -// -class TOutputTraverser : public TIntermTraverser { -public: - 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); - virtual bool visitAggregate(TVisit, TIntermAggregate* node); - virtual bool visitSelection(TVisit, TIntermSelection* node); - virtual void visitConstantUnion(TIntermConstantUnion* node); - virtual void visitSymbol(TIntermSymbol* node); - virtual bool visitLoop(TVisit, TIntermLoop* node); - virtual bool visitBranch(TVisit, TIntermBranch* node); - virtual bool visitSwitch(TVisit, TIntermSwitch* node); - - TInfoSink& infoSink; -protected: - TOutputTraverser(TOutputTraverser&); - TOutputTraverser& operator=(TOutputTraverser&); - - EExtraOutput extraOutput; -}; - -// -// Helper functions for printing, not part of traversing. -// - -static void OutputTreeText(TInfoSink& infoSink, const TIntermNode* node, const int depth) -{ - int i; - - infoSink.debug << node->getLoc().string << ":"; - if (node->getLoc().line) - infoSink.debug << node->getLoc().line; - else - infoSink.debug << "? "; - - for (i = 0; i < depth; ++i) - infoSink.debug << " "; -} - -// -// The rest of the file are the traversal functions. The last one -// is the one that starts the traversal. -// -// Return true from interior nodes to have the external traversal -// continue on to children. If you process children yourself, -// return false. -// - -bool TOutputTraverser::visitBinary(TVisit /* visit */, TIntermBinary* node) -{ - TInfoSink& out = infoSink; - - OutputTreeText(out, node, depth); - - switch (node->getOp()) { - case EOpAssign: out.debug << "move second child to first child"; break; - case EOpAddAssign: out.debug << "add second child into first child"; break; - case EOpSubAssign: out.debug << "subtract second child into first child"; break; - case EOpMulAssign: out.debug << "multiply second child into first child"; break; - case EOpVectorTimesMatrixAssign: out.debug << "matrix mult second child into first child"; break; - case EOpVectorTimesScalarAssign: out.debug << "vector scale second child into first child"; break; - case EOpMatrixTimesScalarAssign: out.debug << "matrix scale second child into first child"; break; - case EOpMatrixTimesMatrixAssign: out.debug << "matrix mult second child into first child"; break; - case EOpDivAssign: out.debug << "divide second child into first child"; break; - case EOpModAssign: out.debug << "mod second child into first child"; break; - case EOpAndAssign: out.debug << "and second child into first child"; break; - case EOpInclusiveOrAssign: out.debug << "or second child into first child"; break; - case EOpExclusiveOrAssign: out.debug << "exclusive or second child into first child"; break; - case EOpLeftShiftAssign: out.debug << "left shift second child into first child"; break; - case EOpRightShiftAssign: out.debug << "right shift second child into first child"; break; - - case EOpIndexDirect: out.debug << "direct index"; break; - case EOpIndexIndirect: out.debug << "indirect index"; break; - case EOpIndexDirectStruct: - { - bool reference = node->getLeft()->getType().isReference(); - const TTypeList *members = reference ? node->getLeft()->getType().getReferentType()->getStruct() : node->getLeft()->getType().getStruct(); - out.debug << (*members)[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; - case EOpMul: out.debug << "component-wise multiply"; break; - case EOpDiv: out.debug << "divide"; break; - case EOpMod: out.debug << "mod"; break; - case EOpRightShift: out.debug << "right-shift"; break; - case EOpLeftShift: out.debug << "left-shift"; break; - case EOpAnd: out.debug << "bitwise and"; break; - case EOpInclusiveOr: out.debug << "inclusive-or"; break; - case EOpExclusiveOr: out.debug << "exclusive-or"; break; - case EOpEqual: out.debug << "Compare Equal"; break; - case EOpNotEqual: out.debug << "Compare Not Equal"; break; - case EOpLessThan: out.debug << "Compare Less Than"; break; - case EOpGreaterThan: out.debug << "Compare Greater Than"; break; - case EOpLessThanEqual: out.debug << "Compare Less Than or Equal"; break; - case EOpGreaterThanEqual: out.debug << "Compare Greater Than or Equal"; break; - case EOpVectorEqual: out.debug << "Equal"; break; - case EOpVectorNotEqual: out.debug << "NotEqual"; break; - - case EOpVectorTimesScalar: out.debug << "vector-scale"; break; - case EOpVectorTimesMatrix: out.debug << "vector-times-matrix"; break; - case EOpMatrixTimesVector: out.debug << "matrix-times-vector"; break; - case EOpMatrixTimesScalar: out.debug << "matrix-scale"; break; - case EOpMatrixTimesMatrix: out.debug << "matrix-multiply"; break; - - case EOpLogicalOr: out.debug << "logical-or"; break; - case EOpLogicalXor: out.debug << "logical-xor"; break; - case EOpLogicalAnd: out.debug << "logical-and"; break; - - case EOpAbsDifference: out.debug << "absoluteDifference"; break; - case EOpAddSaturate: out.debug << "addSaturate"; break; - case EOpSubSaturate: out.debug << "subtractSaturate"; break; - case EOpAverage: out.debug << "average"; break; - case EOpAverageRounded: out.debug << "averageRounded"; break; - case EOpMul32x16: out.debug << "multiply32x16"; break; - - default: out.debug << ""; - } - - out.debug << " (" << node->getCompleteString() << ")"; - - out.debug << "\n"; - - return true; -} - -bool TOutputTraverser::visitUnary(TVisit /* visit */, TIntermUnary* node) -{ - TInfoSink& out = infoSink; - - OutputTreeText(out, node, depth); - - switch (node->getOp()) { - case EOpNegative: out.debug << "Negate value"; break; - case EOpVectorLogicalNot: - case EOpLogicalNot: out.debug << "Negate conditional"; break; - case EOpBitwiseNot: out.debug << "Bitwise not"; break; - - case EOpPostIncrement: out.debug << "Post-Increment"; break; - case EOpPostDecrement: out.debug << "Post-Decrement"; break; - case EOpPreIncrement: out.debug << "Pre-Increment"; break; - case EOpPreDecrement: out.debug << "Pre-Decrement"; break; - case EOpCopyObject: out.debug << "copy object"; 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 EOpConvIntToFloat: out.debug << "Convert int to float"; 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 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 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 EOpConvUint64ToPtr: out.debug << "Convert uint64_t to pointer"; break; - case EOpConvPtrToUint64: out.debug << "Convert pointer to uint64_t"; break; - - case EOpConvUint64ToAccStruct: out.debug << "Convert uint64_t to acceleration structure"; break; - case EOpConvUvec2ToAccStruct: out.debug << "Convert uvec2 to acceleration strucuture "; break; - - case EOpRadians: out.debug << "radians"; break; - case EOpDegrees: out.debug << "degrees"; break; - case EOpSin: out.debug << "sine"; break; - case EOpCos: out.debug << "cosine"; break; - case EOpTan: out.debug << "tangent"; break; - case EOpAsin: out.debug << "arc sine"; break; - case EOpAcos: out.debug << "arc cosine"; break; - case EOpAtan: out.debug << "arc tangent"; break; - case EOpSinh: out.debug << "hyp. sine"; break; - case EOpCosh: out.debug << "hyp. cosine"; break; - case EOpTanh: out.debug << "hyp. tangent"; break; - case EOpAsinh: out.debug << "arc hyp. sine"; break; - case EOpAcosh: out.debug << "arc hyp. cosine"; break; - case EOpAtanh: out.debug << "arc hyp. tangent"; break; - - case EOpExp: out.debug << "exp"; break; - case EOpLog: out.debug << "log"; break; - case EOpExp2: out.debug << "exp2"; break; - case EOpLog2: out.debug << "log2"; break; - case EOpSqrt: out.debug << "sqrt"; break; - case EOpInverseSqrt: out.debug << "inverse sqrt"; break; - - case EOpAbs: out.debug << "Absolute value"; break; - case EOpSign: out.debug << "Sign"; break; - case EOpFloor: out.debug << "Floor"; break; - case EOpTrunc: out.debug << "trunc"; break; - case EOpRound: out.debug << "round"; break; - case EOpRoundEven: out.debug << "roundEven"; break; - case EOpCeil: out.debug << "Ceiling"; break; - case EOpFract: out.debug << "Fraction"; break; - - case EOpIsNan: out.debug << "isnan"; break; - case EOpIsInf: out.debug << "isinf"; break; - - case EOpFloatBitsToInt: out.debug << "floatBitsToInt"; break; - case EOpFloatBitsToUint:out.debug << "floatBitsToUint"; break; - case EOpIntBitsToFloat: out.debug << "intBitsToFloat"; break; - case EOpUintBitsToFloat:out.debug << "uintBitsToFloat"; break; - case EOpDoubleBitsToInt64: out.debug << "doubleBitsToInt64"; break; - 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; - case EOpPackUnorm4x8: out.debug << "PackUnorm4x8"; break; - case EOpUnpackUnorm4x8: out.debug << "UnpackUnorm4x8"; break; - case EOpPackDouble2x32: out.debug << "PackDouble2x32"; break; - case EOpUnpackDouble2x32: out.debug << "UnpackDouble2x32"; break; - - case EOpPackInt2x32: out.debug << "packInt2x32"; break; - case EOpUnpackInt2x32: out.debug << "unpackInt2x32"; break; - 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; - case EOpPackFloat2x16: out.debug << "packFloat2x16"; break; - case EOpUnpackFloat2x16: out.debug << "unpackFloat2x16"; break; - - case EOpLength: out.debug << "length"; break; - case EOpNormalize: out.debug << "normalize"; break; - case EOpDPdx: out.debug << "dPdx"; break; - case EOpDPdy: out.debug << "dPdy"; break; - case EOpFwidth: out.debug << "fwidth"; break; - case EOpDPdxFine: out.debug << "dPdxFine"; break; - case EOpDPdyFine: out.debug << "dPdyFine"; break; - case EOpFwidthFine: out.debug << "fwidthFine"; break; - case EOpDPdxCoarse: out.debug << "dPdxCoarse"; break; - case EOpDPdyCoarse: out.debug << "dPdyCoarse"; break; - case EOpFwidthCoarse: out.debug << "fwidthCoarse"; break; - - case EOpInterpolateAtCentroid: out.debug << "interpolateAtCentroid"; break; - - case EOpDeterminant: out.debug << "determinant"; break; - case EOpMatrixInverse: out.debug << "inverse"; break; - case EOpTranspose: out.debug << "transpose"; break; - - case EOpAny: out.debug << "any"; break; - case EOpAll: out.debug << "all"; break; - - case EOpArrayLength: out.debug << "array length"; break; - - case EOpEmitStreamVertex: out.debug << "EmitStreamVertex"; break; - case EOpEndStreamPrimitive: out.debug << "EndStreamPrimitive"; break; - - case EOpAtomicCounterIncrement: out.debug << "AtomicCounterIncrement";break; - case EOpAtomicCounterDecrement: out.debug << "AtomicCounterDecrement";break; - case EOpAtomicCounter: out.debug << "AtomicCounter"; break; - - case EOpTextureQuerySize: out.debug << "textureSize"; break; - case EOpTextureQueryLod: out.debug << "textureQueryLod"; break; - case EOpTextureQueryLevels: out.debug << "textureQueryLevels"; break; - case EOpTextureQuerySamples: out.debug << "textureSamples"; break; - case EOpImageQuerySize: out.debug << "imageQuerySize"; break; - case EOpImageQuerySamples: out.debug << "imageQuerySamples"; break; - case EOpImageLoad: out.debug << "imageLoad"; break; - - case EOpBitFieldReverse: out.debug << "bitFieldReverse"; break; - case EOpBitCount: out.debug << "bitCount"; break; - case EOpFindLSB: out.debug << "findLSB"; break; - case EOpFindMSB: out.debug << "findMSB"; break; - - case EOpCountLeadingZeros: out.debug << "countLeadingZeros"; break; - case EOpCountTrailingZeros: out.debug << "countTrailingZeros"; break; - - case EOpNoise: out.debug << "noise"; break; - - case EOpBallot: out.debug << "ballot"; break; - case EOpReadFirstInvocation: out.debug << "readFirstInvocation"; break; - - case EOpAnyInvocation: out.debug << "anyInvocation"; break; - 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; - - 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; - - 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; - - case EOpMinInvocations: out.debug << "minInvocations"; break; - case EOpMaxInvocations: out.debug << "maxInvocations"; break; - case EOpAddInvocations: out.debug << "addInvocations"; break; - case EOpMinInvocationsNonUniform: out.debug << "minInvocationsNonUniform"; break; - case EOpMaxInvocationsNonUniform: out.debug << "maxInvocationsNonUniform"; break; - case EOpAddInvocationsNonUniform: out.debug << "addInvocationsNonUniform"; 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 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 EOpSubpassLoad: out.debug << "subpassLoad"; break; - case EOpSubpassLoadMS: out.debug << "subpassLoadMS"; break; - - case EOpConstructReference: out.debug << "Construct reference type"; break; - -#ifndef GLSLANG_WEB - case EOpSpirvInst: out.debug << "spirv_instruction"; break; -#endif - - default: out.debug.message(EPrefixError, "Bad unary op"); - } - - out.debug << " (" << node->getCompleteString() << ")"; - - out.debug << "\n"; - - return true; -} - -bool TOutputTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node) -{ - TInfoSink& out = infoSink; - - if (node->getOp() == EOpNull) { - out.debug.message(EPrefixError, "node is still EOpNull!"); - return true; - } - - OutputTreeText(out, node, depth); - - switch (node->getOp()) { - case EOpSequence: out.debug << "Sequence\n"; return true; - case EOpLinkerObjects: out.debug << "Linker Objects\n"; return true; - case EOpComma: out.debug << "Comma"; break; - case EOpFunction: out.debug << "Function Definition: " << node->getName(); break; - case EOpFunctionCall: out.debug << "Function Call: " << node->getName(); break; - case EOpParameters: out.debug << "Function Parameters: "; break; - - 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 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 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; - case EOpConstructMat3x2: out.debug << "Construct mat3x2"; break; - case EOpConstructMat3x3: out.debug << "Construct mat3"; break; - case EOpConstructMat3x4: out.debug << "Construct mat3x4"; break; - case EOpConstructMat4x2: out.debug << "Construct mat4x2"; break; - case EOpConstructMat4x3: out.debug << "Construct mat4x3"; break; - case EOpConstructMat4x4: out.debug << "Construct mat4"; break; - case EOpConstructDMat2x2: out.debug << "Construct dmat2"; break; - case EOpConstructDMat2x3: out.debug << "Construct dmat2x3"; break; - case EOpConstructDMat2x4: out.debug << "Construct dmat2x4"; break; - case EOpConstructDMat3x2: out.debug << "Construct dmat3x2"; break; - case EOpConstructDMat3x3: out.debug << "Construct dmat3"; break; - case EOpConstructDMat3x4: out.debug << "Construct dmat3x4"; break; - 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; - case EOpConstructFloat16: out.debug << "Construct float16_t"; break; - case EOpConstructF16Vec2: out.debug << "Construct f16vec2"; break; - case EOpConstructF16Vec3: out.debug << "Construct f16vec3"; break; - case EOpConstructF16Vec4: out.debug << "Construct f16vec4"; break; - case EOpConstructF16Mat2x2: out.debug << "Construct f16mat2"; break; - case EOpConstructF16Mat2x3: out.debug << "Construct f16mat2x3"; break; - case EOpConstructF16Mat2x4: out.debug << "Construct f16mat2x4"; break; - case EOpConstructF16Mat3x2: out.debug << "Construct f16mat3x2"; break; - case EOpConstructF16Mat3x3: out.debug << "Construct f16mat3"; break; - case EOpConstructF16Mat3x4: out.debug << "Construct f16mat3x4"; break; - case EOpConstructF16Mat4x2: out.debug << "Construct f16mat4x2"; break; - case EOpConstructF16Mat4x3: out.debug << "Construct f16mat4x3"; break; - case EOpConstructF16Mat4x4: out.debug << "Construct f16mat4"; break; - case EOpConstructStruct: out.debug << "Construct structure"; break; - case EOpConstructTextureSampler: out.debug << "Construct combined texture-sampler"; break; - case EOpConstructReference: out.debug << "Construct reference"; break; - case EOpConstructCooperativeMatrix: out.debug << "Construct cooperative matrix"; break; - case EOpConstructAccStruct: out.debug << "Construct acceleration structure"; break; - - case EOpLessThan: out.debug << "Compare Less Than"; break; - case EOpGreaterThan: out.debug << "Compare Greater Than"; break; - case EOpLessThanEqual: out.debug << "Compare Less Than or Equal"; break; - case EOpGreaterThanEqual: out.debug << "Compare Greater Than or Equal"; break; - case EOpVectorEqual: out.debug << "Equal"; break; - case EOpVectorNotEqual: out.debug << "NotEqual"; break; - - case EOpMod: out.debug << "mod"; break; - case EOpModf: out.debug << "modf"; break; - case EOpPow: out.debug << "pow"; break; - - case EOpAtan: out.debug << "arc tangent"; break; - - case EOpMin: out.debug << "min"; break; - case EOpMax: out.debug << "max"; break; - case EOpClamp: out.debug << "clamp"; break; - case EOpMix: out.debug << "mix"; break; - case EOpStep: out.debug << "step"; break; - case EOpSmoothStep: out.debug << "smoothstep"; break; - - case EOpDistance: out.debug << "distance"; break; - case EOpDot: out.debug << "dot-product"; break; - case EOpCross: out.debug << "cross-product"; break; - case EOpFaceForward: out.debug << "face-forward"; break; - case EOpReflect: out.debug << "reflect"; break; - case EOpRefract: out.debug << "refract"; break; - case EOpMul: out.debug << "component-wise multiply"; break; - case EOpOuterProduct: out.debug << "outer product"; break; - - case EOpEmitVertex: out.debug << "EmitVertex"; break; - case EOpEndPrimitive: out.debug << "EndPrimitive"; break; - - case EOpBarrier: out.debug << "Barrier"; break; - case EOpMemoryBarrier: out.debug << "MemoryBarrier"; break; - case EOpMemoryBarrierAtomicCounter: out.debug << "MemoryBarrierAtomicCounter"; break; - case EOpMemoryBarrierBuffer: out.debug << "MemoryBarrierBuffer"; break; - case EOpMemoryBarrierImage: out.debug << "MemoryBarrierImage"; break; - case EOpMemoryBarrierShared: out.debug << "MemoryBarrierShared"; break; - case EOpGroupMemoryBarrier: out.debug << "GroupMemoryBarrier"; break; - - case EOpReadInvocation: out.debug << "readInvocation"; break; - - case EOpSwizzleInvocations: out.debug << "swizzleInvocations"; break; - case EOpSwizzleInvocationsMasked: out.debug << "swizzleInvocationsMasked"; break; - case EOpWriteInvocation: out.debug << "writeInvocation"; break; - - case EOpMin3: out.debug << "min3"; break; - case EOpMax3: out.debug << "max3"; break; - case EOpMid3: out.debug << "mid3"; break; - case EOpTime: out.debug << "time"; break; - - case EOpAtomicAdd: out.debug << "AtomicAdd"; break; - case EOpAtomicSubtract: out.debug << "AtomicSubtract"; break; - case EOpAtomicMin: out.debug << "AtomicMin"; break; - case EOpAtomicMax: out.debug << "AtomicMax"; break; - case EOpAtomicAnd: out.debug << "AtomicAnd"; break; - case EOpAtomicOr: out.debug << "AtomicOr"; break; - case EOpAtomicXor: out.debug << "AtomicXor"; break; - case EOpAtomicExchange: out.debug << "AtomicExchange"; break; - case EOpAtomicCompSwap: out.debug << "AtomicCompSwap"; break; - case EOpAtomicLoad: out.debug << "AtomicLoad"; break; - case EOpAtomicStore: out.debug << "AtomicStore"; 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; - case EOpImageStore: out.debug << "imageStore"; break; - case EOpImageAtomicAdd: out.debug << "imageAtomicAdd"; break; - case EOpImageAtomicMin: out.debug << "imageAtomicMin"; break; - case EOpImageAtomicMax: out.debug << "imageAtomicMax"; break; - case EOpImageAtomicAnd: out.debug << "imageAtomicAnd"; break; - case EOpImageAtomicOr: out.debug << "imageAtomicOr"; break; - case EOpImageAtomicXor: out.debug << "imageAtomicXor"; break; - case EOpImageAtomicExchange: out.debug << "imageAtomicExchange"; break; - case EOpImageAtomicCompSwap: out.debug << "imageAtomicCompSwap"; break; - case EOpImageAtomicLoad: out.debug << "imageAtomicLoad"; break; - case EOpImageAtomicStore: out.debug << "imageAtomicStore"; break; - case EOpImageLoadLod: out.debug << "imageLoadLod"; break; - case EOpImageStoreLod: out.debug << "imageStoreLod"; break; - - case EOpTextureQuerySize: out.debug << "textureSize"; break; - case EOpTextureQueryLod: out.debug << "textureQueryLod"; break; - case EOpTextureQueryLevels: out.debug << "textureQueryLevels"; break; - case EOpTextureQuerySamples: out.debug << "textureSamples"; break; - case EOpTexture: out.debug << "texture"; break; - case EOpTextureProj: out.debug << "textureProj"; break; - case EOpTextureLod: out.debug << "textureLod"; break; - case EOpTextureOffset: out.debug << "textureOffset"; break; - case EOpTextureFetch: out.debug << "textureFetch"; break; - case EOpTextureFetchOffset: out.debug << "textureFetchOffset"; break; - case EOpTextureProjOffset: out.debug << "textureProjOffset"; break; - case EOpTextureLodOffset: out.debug << "textureLodOffset"; break; - case EOpTextureProjLod: out.debug << "textureProjLod"; break; - case EOpTextureProjLodOffset: out.debug << "textureProjLodOffset"; break; - case EOpTextureGrad: out.debug << "textureGrad"; break; - case EOpTextureGradOffset: out.debug << "textureGradOffset"; break; - case EOpTextureProjGrad: out.debug << "textureProjGrad"; break; - case EOpTextureProjGradOffset: out.debug << "textureProjGradOffset"; break; - 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; - case EOpTextureGatherLod: out.debug << "textureGatherLod"; break; - case EOpTextureGatherLodOffset: out.debug << "textureGatherLodOffset"; break; - case EOpTextureGatherLodOffsets: out.debug << "textureGatherLodOffsets"; break; - - 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; - case EOpSparseTextureGatherLod: out.debug << "sparseTextureGatherLod"; break; - case EOpSparseTextureGatherLodOffset: out.debug << "sparseTextureGatherLodOffset"; break; - case EOpSparseTextureGatherLodOffsets: out.debug << "sparseTextureGatherLodOffsets"; break; - case EOpSparseImageLoadLod: out.debug << "sparseImageLoadLod"; break; - case EOpImageSampleFootprintNV: out.debug << "imageSampleFootprintNV"; break; - case EOpImageSampleFootprintClampNV: out.debug << "imageSampleFootprintClampNV"; break; - case EOpImageSampleFootprintLodNV: out.debug << "imageSampleFootprintLodNV"; break; - case EOpImageSampleFootprintGradNV: out.debug << "imageSampleFootprintGradNV"; break; - case EOpImageSampleFootprintGradClampNV: out.debug << "mageSampleFootprintGradClampNV"; break; - case EOpAddCarry: out.debug << "addCarry"; break; - case EOpSubBorrow: out.debug << "subBorrow"; break; - case EOpUMulExtended: out.debug << "uMulExtended"; break; - case EOpIMulExtended: out.debug << "iMulExtended"; break; - case EOpBitfieldExtract: out.debug << "bitfieldExtract"; break; - case EOpBitfieldInsert: out.debug << "bitfieldInsert"; break; - - case EOpFma: out.debug << "fma"; break; - case EOpFrexp: out.debug << "frexp"; break; - case EOpLdexp: out.debug << "ldexp"; break; - - case EOpInterpolateAtSample: out.debug << "interpolateAtSample"; break; - case EOpInterpolateAtOffset: out.debug << "interpolateAtOffset"; break; - case EOpInterpolateAtVertex: out.debug << "interpolateAtVertex"; break; - - case EOpSinCos: out.debug << "sincos"; break; - 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 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 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; - - case EOpSubpassLoad: out.debug << "subpassLoad"; break; - case EOpSubpassLoadMS: out.debug << "subpassLoadMS"; break; - - case EOpTraceNV: out.debug << "traceNV"; break; - case EOpTraceRayMotionNV: out.debug << "traceRayMotionNV"; break; - case EOpTraceKHR: out.debug << "traceRayKHR"; break; - case EOpReportIntersection: out.debug << "reportIntersectionNV"; break; - case EOpIgnoreIntersectionNV: out.debug << "ignoreIntersectionNV"; break; - case EOpIgnoreIntersectionKHR: out.debug << "ignoreIntersectionKHR"; break; - case EOpTerminateRayNV: out.debug << "terminateRayNV"; break; - case EOpTerminateRayKHR: out.debug << "terminateRayKHR"; break; - case EOpExecuteCallableNV: out.debug << "executeCallableNV"; break; - case EOpExecuteCallableKHR: out.debug << "executeCallableKHR"; break; - case EOpWritePackedPrimitiveIndices4x8NV: out.debug << "writePackedPrimitiveIndices4x8NV"; break; - - case EOpRayQueryInitialize: out.debug << "rayQueryInitializeEXT"; break; - case EOpRayQueryTerminate: out.debug << "rayQueryTerminateEXT"; break; - case EOpRayQueryGenerateIntersection: out.debug << "rayQueryGenerateIntersectionEXT"; break; - case EOpRayQueryConfirmIntersection: out.debug << "rayQueryConfirmIntersectionEXT"; break; - case EOpRayQueryProceed: out.debug << "rayQueryProceedEXT"; break; - case EOpRayQueryGetIntersectionType: out.debug << "rayQueryGetIntersectionTypeEXT"; break; - case EOpRayQueryGetRayTMin: out.debug << "rayQueryGetRayTMinEXT"; break; - case EOpRayQueryGetRayFlags: out.debug << "rayQueryGetRayFlagsEXT"; break; - case EOpRayQueryGetIntersectionT: out.debug << "rayQueryGetIntersectionTEXT"; break; - case EOpRayQueryGetIntersectionInstanceCustomIndex: out.debug << "rayQueryGetIntersectionInstanceCustomIndexEXT"; break; - case EOpRayQueryGetIntersectionInstanceId: out.debug << "rayQueryGetIntersectionInstanceIdEXT"; break; - case EOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffset: out.debug << "rayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetEXT"; break; - case EOpRayQueryGetIntersectionGeometryIndex: out.debug << "rayQueryGetIntersectionGeometryIndexEXT"; break; - case EOpRayQueryGetIntersectionPrimitiveIndex: out.debug << "rayQueryGetIntersectionPrimitiveIndexEXT"; break; - case EOpRayQueryGetIntersectionBarycentrics: out.debug << "rayQueryGetIntersectionBarycentricsEXT"; break; - case EOpRayQueryGetIntersectionFrontFace: out.debug << "rayQueryGetIntersectionFrontFaceEXT"; break; - case EOpRayQueryGetIntersectionCandidateAABBOpaque: out.debug << "rayQueryGetIntersectionCandidateAABBOpaqueEXT"; break; - case EOpRayQueryGetIntersectionObjectRayDirection: out.debug << "rayQueryGetIntersectionObjectRayDirectionEXT"; break; - case EOpRayQueryGetIntersectionObjectRayOrigin: out.debug << "rayQueryGetIntersectionObjectRayOriginEXT"; break; - case EOpRayQueryGetWorldRayDirection: out.debug << "rayQueryGetWorldRayDirectionEXT"; break; - case EOpRayQueryGetWorldRayOrigin: out.debug << "rayQueryGetWorldRayOriginEXT"; break; - case EOpRayQueryGetIntersectionObjectToWorld: out.debug << "rayQueryGetIntersectionObjectToWorldEXT"; break; - case EOpRayQueryGetIntersectionWorldToObject: out.debug << "rayQueryGetIntersectionWorldToObjectEXT"; break; - - case EOpCooperativeMatrixLoad: out.debug << "Load cooperative matrix"; break; - case EOpCooperativeMatrixStore: out.debug << "Store cooperative matrix"; break; - case EOpCooperativeMatrixMulAdd: out.debug << "MulAdd cooperative matrices"; break; - - case EOpIsHelperInvocation: out.debug << "IsHelperInvocation"; break; - case EOpDebugPrintf: out.debug << "Debug printf"; break; - -#ifndef GLSLANG_WEB - case EOpSpirvInst: out.debug << "spirv_instruction"; break; -#endif - - default: out.debug.message(EPrefixError, "Bad aggregation op"); - } - - if (node->getOp() != EOpSequence && node->getOp() != EOpParameters) - out.debug << " (" << node->getCompleteString() << ")"; - - out.debug << "\n"; - - return true; -} - -bool TOutputTraverser::visitSelection(TVisit /* visit */, TIntermSelection* node) -{ - TInfoSink& out = infoSink; - - 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"; - - ++depth; - - OutputTreeText(out, node, depth); - out.debug << "Condition\n"; - node->getCondition()->traverse(this); - - OutputTreeText(out, node, depth); - if (node->getTrueBlock()) { - out.debug << "true case\n"; - node->getTrueBlock()->traverse(this); - } else - out.debug << "true case is null\n"; - - if (node->getFalseBlock()) { - OutputTreeText(out, node, depth); - out.debug << "false case\n"; - node->getFalseBlock()->traverse(this); - } - - --depth; - - 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: - { - uint64_t b; - static_assert(sizeof(b) == sizeof(value), "sizeof(uint64_t) != sizeof(double)"); - memcpy(&b, &value, sizeof(b)); - - out.debug << " : "; - 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(); - - for (int i = 0; i < size; i++) { - OutputTreeText(out, node, depth); - switch (constUnion[i].getType()) { - case EbtBool: - if (constUnion[i].getBConst()) - out.debug << "true"; - else - out.debug << "false"; - - out.debug << " (" << "const bool" << ")"; - - out.debug << "\n"; - break; - case EbtFloat: - case EbtDouble: - case EbtFloat16: - OutputDouble(out, constUnion[i].getDConst(), extra); - out.debug << "\n"; - break; - case EbtInt8: - { - const int maxSize = 300; - char buf[maxSize]; - snprintf(buf, maxSize, "%d (%s)", constUnion[i].getI8Const(), "const int8_t"); - - 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: - { - const int maxSize = 300; - char buf[maxSize]; - snprintf(buf, maxSize, "%d (%s)", constUnion[i].getIConst(), "const int"); - - out.debug << buf << "\n"; - } - break; - case EbtUint: - { - const int maxSize = 300; - char buf[maxSize]; - snprintf(buf, maxSize, "%u (%s)", constUnion[i].getUConst(), "const uint"); - - out.debug << buf << "\n"; - } - break; - case EbtInt64: - { - const int maxSize = 300; - char buf[maxSize]; - snprintf(buf, maxSize, "%lld (%s)", constUnion[i].getI64Const(), "const int64_t"); - - out.debug << buf << "\n"; - } - break; - case EbtUint64: - { - const int maxSize = 300; - char buf[maxSize]; - snprintf(buf, maxSize, "%llu (%s)", constUnion[i].getU64Const(), "const uint64_t"); - - out.debug << buf << "\n"; - } - break; - case EbtString: - out.debug << "\"" << constUnion[i].getSConst()->c_str() << "\"\n"; - break; - default: - out.info.message(EPrefixInternalError, "Unknown constant", node->getLoc()); - break; - } - } -} - -void TOutputTraverser::visitConstantUnion(TIntermConstantUnion* node) -{ - OutputTreeText(infoSink, node, depth); - infoSink.debug << "Constant:\n"; - - OutputConstantUnion(infoSink, node, node->getConstArray(), extraOutput, depth + 1); -} - -void TOutputTraverser::visitSymbol(TIntermSymbol* node) -{ - OutputTreeText(infoSink, node, depth); - - infoSink.debug << "'" << node->getName() << "' (" << node->getCompleteString() << ")\n"; - - if (! node->getConstArray().empty()) - OutputConstantUnion(infoSink, node, node->getConstArray(), extraOutput, depth + 1); - else if (node->getConstSubtree()) { - incrementDepth(node); - node->getConstSubtree()->traverse(this); - decrementDepth(); - } -} - -bool TOutputTraverser::visitLoop(TVisit /* visit */, TIntermLoop* node) -{ - TInfoSink& out = infoSink; - - OutputTreeText(out, node, depth); - - 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"; - - ++depth; - - OutputTreeText(infoSink, node, depth); - if (node->getTest()) { - out.debug << "Loop Condition\n"; - node->getTest()->traverse(this); - } else - out.debug << "No loop condition\n"; - - OutputTreeText(infoSink, node, depth); - if (node->getBody()) { - out.debug << "Loop Body\n"; - node->getBody()->traverse(this); - } else - out.debug << "No loop body\n"; - - if (node->getTerminal()) { - OutputTreeText(infoSink, node, depth); - out.debug << "Loop Terminal Expression\n"; - node->getTerminal()->traverse(this); - } - - --depth; - - return false; -} - -bool TOutputTraverser::visitBranch(TVisit /* visit*/, TIntermBranch* node) -{ - TInfoSink& out = infoSink; - - OutputTreeText(out, node, depth); - - switch (node->getFlowOp()) { - case EOpKill: out.debug << "Branch: Kill"; break; - case EOpTerminateInvocation: out.debug << "Branch: TerminateInvocation"; break; - case EOpIgnoreIntersectionKHR: out.debug << "Branch: IgnoreIntersectionKHR"; break; - case EOpTerminateRayKHR: out.debug << "Branch: TerminateRayKHR"; break; - case EOpBreak: out.debug << "Branch: Break"; break; - case EOpContinue: out.debug << "Branch: Continue"; break; - case EOpReturn: out.debug << "Branch: Return"; break; - case EOpCase: out.debug << "case: "; break; - case EOpDemote: out.debug << "Demote"; break; - case EOpDefault: out.debug << "default: "; break; - default: out.debug << "Branch: Unknown Branch"; break; - } - - if (node->getExpression()) { - out.debug << " with expression\n"; - ++depth; - node->getExpression()->traverse(this); - --depth; - } else - out.debug << "\n"; - - return false; -} - -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"; - - OutputTreeText(out, node, depth); - out.debug << "condition\n"; - ++depth; - node->getCondition()->traverse(this); - - --depth; - OutputTreeText(out, node, depth); - out.debug << "body\n"; - ++depth; - node->getBody()->traverse(this); - - --depth; - - return false; -} - -// -// This function is the one to call externally to start the traversal. -// Individual functions can be initialized to 0 to skip processing of that -// type of node. It's children will still be processed. -// -void TIntermediate::output(TInfoSink& infoSink, bool tree) -{ - infoSink.debug << "Shader version: " << version << "\n"; - if (requestedExtensions.size() > 0) { - for (auto extIt = requestedExtensions.begin(); extIt != requestedExtensions.end(); ++extIt) - infoSink.debug << "Requested " << *extIt << "\n"; - } - - if (xfbMode) - infoSink.debug << "in xfb mode\n"; - - if (getSubgroupUniformControlFlow()) - infoSink.debug << "subgroup_uniform_control_flow\n"; - - switch (language) { - case EShLangVertex: - break; - - 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: - infoSink.debug << "input primitive = " << TQualifier::getGeometryString(inputPrimitive) << "\n"; - infoSink.debug << "vertex spacing = " << TQualifier::getVertexSpacingString(vertexSpacing) << "\n"; - infoSink.debug << "triangle order = " << TQualifier::getVertexOrderString(vertexOrder) << "\n"; - if (pointMode) - infoSink.debug << "using point mode\n"; - break; - - case EShLangGeometry: - infoSink.debug << "invocations = " << invocations << "\n"; - infoSink.debug << "max_vertices = " << vertices << "\n"; - infoSink.debug << "input primitive = " << TQualifier::getGeometryString(inputPrimitive) << "\n"; - infoSink.debug << "output primitive = " << TQualifier::getGeometryString(outputPrimitive) << "\n"; - break; - - case EShLangFragment: - if (pixelCenterInteger) - infoSink.debug << "gl_FragCoord pixel center is integer\n"; - if (originUpperLeft) - 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) { - infoSink.debug << "using"; - // blendEquations is a mask, decode it - for (TBlendEquationShift be = (TBlendEquationShift)0; be < EBlendCount; be = (TBlendEquationShift)(be + 1)) { - if (blendEquations & (1 << be)) - infoSink.debug << " " << TQualifier::getBlendEquationString(be); - } - infoSink.debug << "\n"; - } - if (interlockOrdering != EioNone) - infoSink.debug << "interlock ordering = " << TQualifier::getInterlockOrderingString(interlockOrdering) << "\n"; - break; - - case EShLangMeshNV: - infoSink.debug << "max_vertices = " << vertices << "\n"; - infoSink.debug << "max_primitives = " << primitives << "\n"; - infoSink.debug << "output primitive = " << TQualifier::getGeometryString(outputPrimitive) << "\n"; - // Fall through - case EShLangTaskNV: - // Fall through - case EShLangCompute: - infoSink.debug << "local_size = (" << localSize[0] << ", " << localSize[1] << ", " << localSize[2] << ")\n"; - { - if (localSizeSpecId[0] != TQualifier::layoutNotSet || - localSizeSpecId[1] != TQualifier::layoutNotSet || - localSizeSpecId[2] != TQualifier::layoutNotSet) { - infoSink.debug << "local_size ids = (" << - localSizeSpecId[0] << ", " << - localSizeSpecId[1] << ", " << - localSizeSpecId[2] << ")\n"; - } - } - break; - - default: - break; - } - - if (treeRoot == 0 || ! tree) - return; - - TOutputTraverser it(infoSink); - if (getBinaryDoubleOutput()) - it.setDoubleOutput(TOutputTraverser::BinaryDoubleOutput); - treeRoot->traverse(&it); -} - -} // end namespace glslang - -#endif // !GLSLANG_WEB && !GLSLANG_ANGLE diff --git a/deps/glslang/glslang/MachineIndependent/iomapper.cpp b/deps/glslang/glslang/MachineIndependent/iomapper.cpp deleted file mode 100644 index 4250e92d..00000000 --- a/deps/glslang/glslang/MachineIndependent/iomapper.cpp +++ /dev/null @@ -1,1713 +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. -// - -#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) - -#include "../Include/Common.h" -#include "../Include/InfoSink.h" -#include "../Include/Types.h" - -#include "gl_types.h" -#include "iomapper.h" -#include "SymbolTable.h" - -// -// 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 { - -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().isPushConstant() && !base->getQualifier().isShaderRecord()) - target = &uniformList; - // If a global is being visited, then we should also traverse it incase it's evaluation - // ends up visiting inputs we want to tag as live - else if (base->getQualifier().storage == EvqGlobal) - addGlobalReference(base->getAccessName()); - - if (target) { - TVarEntryInfo ent = {base->getId(), base, ! traverseAll}; - ent.stage = intermediate.getStage(); - TVarLiveMap::iterator at = target->find( - ent.symbol->getAccessName()); // std::lower_bound(target->begin(), target->end(), ent, TVarEntryInfo::TOrderById()); - if (at != target->end() && at->second.id == ent.id) - at->second.live = at->second.live || ! traverseAll; // update live state - else - (*target)[ent.symbol->getAccessName()] = 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() }; - // Fix a defect, when block has no instance name, we need to find its block name - TVarLiveMap::const_iterator at = source->find(base->getAccessName()); - if (at == source->end()) - return; - - if (at->second.id != ent.id) - return; - - if (at->second.newBinding != -1) - base->getWritableType().getQualifier().layoutBinding = at->second.newBinding; - if (at->second.newSet != -1) - base->getWritableType().getQualifier().layoutSet = at->second.newSet; - if (at->second.newLocation != -1) - base->getWritableType().getQualifier().layoutLocation = at->second.newLocation; - if (at->second.newComponent != -1) - base->getWritableType().getQualifier().layoutComponent = at->second.newComponent; - if (at->second.newIndex != -1) - base->getWritableType().getQualifier().layoutIndex = at->second.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()(std::pair& entKey) - { - resolver.notifyBinding(stage, entKey.second); - } - -private: - TNotifyUniformAdaptor& operator=(TNotifyUniformAdaptor&) = delete; -}; - -struct TNotifyInOutAdaptor -{ - EShLanguage stage; - TIoMapResolver& resolver; - inline TNotifyInOutAdaptor(EShLanguage s, TIoMapResolver& r) - : stage(s) - , resolver(r) - { - } - - inline void operator()(std::pair& entKey) - { - resolver.notifyInOut(entKey.second.stage, entKey.second); - } - -private: - TNotifyInOutAdaptor& operator=(TNotifyInOutAdaptor&) = delete; -}; - -struct TResolverUniformAdaptor { - TResolverUniformAdaptor(EShLanguage s, TIoMapResolver& r, TVarLiveMap* uniform[EShLangCount], TInfoSink& i, bool& e) - : stage(s) - , resolver(r) - , infoSink(i) - , error(e) - { - memcpy(uniformVarMap, uniform, EShLangCount * (sizeof(TVarLiveMap*))); - } - - inline void operator()(std::pair& entKey) { - TVarEntryInfo& ent = entKey.second; - ent.clearNewAssignments(); - const bool isValid = resolver.validateBinding(stage, ent); - if (isValid) { - resolver.resolveSet(ent.stage, ent); - resolver.resolveBinding(ent.stage, ent); - resolver.resolveUniformLocation(ent.stage, ent); - - if (ent.newBinding != -1) { - if (ent.newBinding >= int(TQualifier::layoutBindingEnd)) { - TString err = "mapped binding out of range: " + entKey.first; - - infoSink.info.message(EPrefixInternalError, err.c_str()); - error = true; - } - - if (ent.symbol->getQualifier().hasBinding()) { - for (uint32_t idx = EShLangVertex; idx < EShLangCount; ++idx) { - if (idx == ent.stage || uniformVarMap[idx] == nullptr) - continue; - auto entKey2 = uniformVarMap[idx]->find(entKey.first); - if (entKey2 != uniformVarMap[idx]->end()) { - entKey2->second.newBinding = ent.newBinding; - } - } - } - } - if (ent.newSet != -1) { - if (ent.newSet >= int(TQualifier::layoutSetEnd)) { - TString err = "mapped set out of range: " + entKey.first; - - infoSink.info.message(EPrefixInternalError, err.c_str()); - error = true; - } - if (ent.symbol->getQualifier().hasSet()) { - for (uint32_t idx = EShLangVertex; idx < EShLangCount; ++idx) { - if ((idx == stage) || (uniformVarMap[idx] == nullptr)) - continue; - auto entKey2 = uniformVarMap[idx]->find(entKey.first); - if (entKey2 != uniformVarMap[idx]->end()) { - entKey2->second.newSet = ent.newSet; - } - } - } - } - } else { - TString errorMsg = "Invalid binding: " + entKey.first; - infoSink.info.message(EPrefixInternalError, errorMsg.c_str()); - error = true; - } - } - - inline void setStage(EShLanguage s) { stage = s; } - - EShLanguage stage; - TIoMapResolver& resolver; - TInfoSink& infoSink; - bool& error; - TVarLiveMap* uniformVarMap[EShLangCount]; -private: - TResolverUniformAdaptor& operator=(TResolverUniformAdaptor&) = delete; -}; - -struct TResolverInOutAdaptor { - TResolverInOutAdaptor(EShLanguage s, TIoMapResolver& r, TInfoSink& i, bool& e) - : stage(s) - , resolver(r) - , infoSink(i) - , error(e) - { - } - - inline void operator()(std::pair& entKey) - { - TVarEntryInfo& ent = entKey.second; - ent.clearNewAssignments(); - const bool isValid = resolver.validateInOut(ent.stage, ent); - if (isValid) { - resolver.resolveInOutLocation(stage, ent); - resolver.resolveInOutComponent(stage, ent); - resolver.resolveInOutIndex(stage, ent); - } else { - TString errorMsg; - if (ent.symbol->getType().getQualifier().semanticName != nullptr) { - errorMsg = "Invalid shader In/Out variable semantic: "; - errorMsg += ent.symbol->getType().getQualifier().semanticName; - } else { - errorMsg = "Invalid shader In/Out variable: "; - errorMsg += ent.symbol->getName(); - } - infoSink.info.message(EPrefixInternalError, errorMsg.c_str()); - error = true; - } - } - - inline void setStage(EShLanguage s) { stage = s; } - - EShLanguage stage; - TIoMapResolver& resolver; - TInfoSink& infoSink; - bool& error; - -private: - TResolverInOutAdaptor& operator=(TResolverInOutAdaptor&) = delete; -}; - -// The class is used for reserving explicit uniform locations and ubo/ssbo/opaque bindings -// xxTODO: maybe this logic should be moved into the resolver's "validateInOut" and "validateUniform" - -struct TSymbolValidater -{ - TSymbolValidater(TIoMapResolver& r, TInfoSink& i, TVarLiveMap* in[EShLangCount], TVarLiveMap* out[EShLangCount], - TVarLiveMap* uniform[EShLangCount], bool& hadError, EProfile profile, int version) - : resolver(r) - , infoSink(i) - , hadError(hadError) - , profile(profile) - , version(version) - { - memcpy(inVarMaps, in, EShLangCount * (sizeof(TVarLiveMap*))); - memcpy(outVarMaps, out, EShLangCount * (sizeof(TVarLiveMap*))); - memcpy(uniformVarMap, uniform, EShLangCount * (sizeof(TVarLiveMap*))); - - std::map anonymousMemberMap; - std::vector usedUniformLocation; - std::vector usedUniformName; - usedUniformLocation.clear(); - usedUniformName.clear(); - for (int i = 0; i < EShLangCount; i++) { - if (uniformVarMap[i]) { - for (auto uniformVar : *uniformVarMap[i]) - { - TIntermSymbol* pSymbol = uniformVar.second.symbol; - TQualifier qualifier = uniformVar.second.symbol->getQualifier(); - TString symbolName = pSymbol->getAccessName(); - - // All the uniform needs multi-stage location check (block/default) - int uniformLocation = qualifier.layoutLocation; - - if (uniformLocation != TQualifier::layoutLocationEnd) { - // Total size of current uniform, could be block, struct or other types. - int size = TIntermediate::computeTypeUniformLocationSize(pSymbol->getType()); - - TRange locationRange(uniformLocation, uniformLocation + size - 1); - - // Combine location and component ranges - int overlapLocation = -1; - bool diffLocation = false; - - // Check for collisions, except for vertex inputs on desktop targeting OpenGL - overlapLocation = checkLocationOverlap(locationRange, usedUniformLocation, symbolName, usedUniformName, diffLocation); - - // Overlap locations of uniforms, regardless of components (multi stages) - if (overlapLocation == -1) { - usedUniformLocation.push_back(locationRange); - usedUniformName.push_back(symbolName); - } - else if (overlapLocation >= 0) { - if (diffLocation == true) { - TString err = ("Uniform location should be equal for same uniforms: " +std::to_string(overlapLocation)).c_str(); - infoSink.info.message(EPrefixInternalError, err.c_str()); - hadError = true; - break; - } - else { - TString err = ("Uniform location overlaps across stages: " + std::to_string(overlapLocation)).c_str(); - infoSink.info.message(EPrefixInternalError, err.c_str()); - hadError = true; - break; - } - } - } - - if ((uniformVar.second.symbol->getBasicType() == EbtBlock) && - IsAnonymous(uniformVar.second.symbol->getName())) - { - auto blockType = uniformVar.second.symbol->getType().getStruct(); - for (size_t memberIdx = 0; memberIdx < blockType->size(); ++memberIdx) { - auto memberName = (*blockType)[memberIdx].type->getFieldName(); - if (anonymousMemberMap.find(memberName) != anonymousMemberMap.end()) - { - if (anonymousMemberMap[memberName] != uniformVar.second.symbol->getType().getTypeName()) - { - TString err = "Invalid block member name: " + memberName; - infoSink.info.message(EPrefixInternalError, err.c_str()); - hadError = true; - break; - } - } - else - { - anonymousMemberMap[memberName] = uniformVar.second.symbol->getType().getTypeName(); - } - } - } - if (hadError) - break; - } - } - } - } - - // In case we need to new an intermediate, which costs too much - int checkLocationOverlap(const TRange& locationRange, std::vector& usedUniformLocation, const TString symbolName, std::vector& usedUniformName, bool& diffLocation) - { - for (size_t r = 0; r < usedUniformLocation.size(); ++r) { - if (usedUniformName[r] == symbolName) { - diffLocation = true; - return (usedUniformLocation[r].start == locationRange.start && - usedUniformLocation[r].last == locationRange.last) - ? -2 : std::max(locationRange.start, usedUniformLocation[r].start); - } - if (locationRange.overlap(usedUniformLocation[r])) { - // there is a collision; pick one - return std::max(locationRange.start, usedUniformLocation[r].start); - } - } - - return -1; // no collision - } - - inline void operator()(std::pair& entKey) { - TVarEntryInfo& ent1 = entKey.second; - TIntermSymbol* base = ent1.symbol; - const TType& type = ent1.symbol->getType(); - const TString& name = entKey.first; - TString mangleName1, mangleName2; - EShLanguage stage = ent1.stage; - EShLanguage preStage, currentStage, nextStage; - - preStage = EShLangCount; - for (int i = stage - 1; i >= 0; i--) { - if (inVarMaps[i] != nullptr) { - preStage = static_cast(i); - break; - } - } - currentStage = stage; - nextStage = EShLangCount; - for (int i = stage + 1; i < EShLangCount; i++) { - if (inVarMaps[i] != nullptr) { - nextStage = static_cast(i); - break; - } - } - - if (type.getQualifier().isArrayedIo(stage)) { - TType subType(type, 0); - subType.appendMangledName(mangleName1); - } else { - type.appendMangledName(mangleName1); - } - - - // basic checking that symbols match - // more extensive checking in the link stage - if (base->getQualifier().storage == EvqVaryingIn) { - // validate stage in; - if (preStage == EShLangCount) - return; - if (TSymbolTable::isBuiltInSymbol(base->getId())) - return; - if (outVarMaps[preStage] != nullptr) { - auto ent2 = outVarMaps[preStage]->find(name); - uint32_t location = base->getType().getQualifier().layoutLocation; - if (ent2 == outVarMaps[preStage]->end() && - location != glslang::TQualifier::layoutLocationEnd) { - for (auto var = outVarMaps[preStage]->begin(); var != ent2; var++) { - if (var->second.symbol->getType().getQualifier().layoutLocation == location) { - ent2 = var; - break; - } - } - } - if (ent2 != outVarMaps[preStage]->end()) { - auto& type1 = base->getType(); - auto& type2 = ent2->second.symbol->getType(); - hadError = hadError || typeCheck(&type1, &type2, name.c_str(), false); - if (ent2->second.symbol->getType().getQualifier().isArrayedIo(preStage)) { - TType subType(ent2->second.symbol->getType(), 0); - subType.appendMangledName(mangleName2); - } else { - ent2->second.symbol->getType().appendMangledName(mangleName2); - } - - if (mangleName1 == mangleName2) { - // For ES 3.0 only, other versions have no such restrictions - // According to ES 3.0 spec: The type and presence of the interpolation qualifiers and - // storage qualifiers of variables with the same name declared in all linked shaders must - // match, otherwise the link command will fail. - if (profile == EEsProfile && version == 300) { - // Don't need to check smooth qualifier, as it uses the default interpolation mode - if (ent1.stage == EShLangFragment && type1.isBuiltIn() == false) { - if (type1.getQualifier().flat != type2.getQualifier().flat || - type1.getQualifier().nopersp != type2.getQualifier().nopersp) { - TString err = "Interpolation qualifier mismatch : " + entKey.first; - infoSink.info.message(EPrefixInternalError, err.c_str()); - hadError = true; - } - } - } - return; - } - else { - // Deal with input/output pairs where one is a block member but the other is loose, - // e.g. with ARB_separate_shader_objects - if (type1.getBasicType() == EbtBlock && - type1.isStruct() && !type2.isStruct()) { - // Iterate through block members tracking layout - glslang::TString name; - type1.getStruct()->begin()->type->appendMangledName(name); - if (name == mangleName2 - && type1.getQualifier().layoutLocation == type2.getQualifier().layoutLocation) return; - } - if (type2.getBasicType() == EbtBlock && - type2.isStruct() && !type1.isStruct()) { - // Iterate through block members tracking layout - glslang::TString name; - type2.getStruct()->begin()->type->appendMangledName(name); - if (name == mangleName1 - && type1.getQualifier().layoutLocation == type2.getQualifier().layoutLocation) return; - } - TString err = "Invalid In/Out variable type : " + entKey.first; - infoSink.info.message(EPrefixInternalError, err.c_str()); - hadError = true; - } - } - else if (!base->getType().isBuiltIn()) { - // According to spec: A link error is generated if any statically referenced input variable - // or block does not have a matching output - if (profile == EEsProfile && ent1.live) { - hadError = true; - TString errorStr = name + ": not been declare as a output variable in pre shader stage."; - infoSink.info.message(EPrefixError, errorStr.c_str()); - } - } - return; - } - } else if (base->getQualifier().storage == EvqVaryingOut) { - // validate stage out; - if (nextStage == EShLangCount) - return; - if (TSymbolTable::isBuiltInSymbol(base->getId())) - return; - if (inVarMaps[nextStage] != nullptr) { - auto ent2 = inVarMaps[nextStage]->find(name); - if (ent2 != inVarMaps[nextStage]->end()) { - if (ent2->second.symbol->getType().getQualifier().isArrayedIo(nextStage)) { - TType subType(ent2->second.symbol->getType(), 0); - subType.appendMangledName(mangleName2); - } else { - ent2->second.symbol->getType().appendMangledName(mangleName2); - } - if (mangleName1 == mangleName2) - return; - else { - TString err = "Invalid In/Out variable type : " + entKey.first; - infoSink.info.message(EPrefixInternalError, err.c_str()); - hadError = true; - } - } - return; - } - } else if (base->getQualifier().isUniformOrBuffer() && !base->getQualifier().isPushConstant()) { - // validate uniform type; - for (int i = 0; i < EShLangCount; i++) { - if (i != currentStage && outVarMaps[i] != nullptr) { - auto ent2 = uniformVarMap[i]->find(name); - if (ent2 != uniformVarMap[i]->end()) { - ent2->second.symbol->getType().appendMangledName(mangleName2); - if (mangleName1 != mangleName2) { - ent2->second.symbol->getType().sameElementType(type); - TString err = "Invalid Uniform variable type : " + entKey.first; - infoSink.info.message(EPrefixInternalError, err.c_str()); - hadError = true; - } - mangleName2.clear(); - - // validate instance name of blocks - if (hadError == false && - base->getType().getBasicType() == EbtBlock && - IsAnonymous(base->getName()) != IsAnonymous(ent2->second.symbol->getName())) { - TString err = "Matched uniform block names must also either all be lacking " - "an instance name or all having an instance name: " + entKey.first; - infoSink.info.message(EPrefixInternalError, err.c_str()); - hadError = true; - } - - // validate uniform block member qualifier and member names - auto& type1 = base->getType(); - auto& type2 = ent2->second.symbol->getType(); - if (hadError == false && base->getType().getBasicType() == EbtBlock) { - hadError = hadError || typeCheck(&type1, &type2, name.c_str(), true); - } - else { - hadError = hadError || typeCheck(&type1, &type2, name.c_str(), false); - } - } - else if (base->getBasicType() == EbtBlock) - { - if (IsAnonymous(base->getName())) - { - // The name of anonymous block member can't same with default uniform variable. - auto blockType1 = base->getType().getStruct(); - for (size_t memberIdx = 0; memberIdx < blockType1->size(); ++memberIdx) { - auto memberName = (*blockType1)[memberIdx].type->getFieldName(); - if (uniformVarMap[i]->find(memberName) != uniformVarMap[i]->end()) - { - TString err = "Invalid Uniform variable name : " + memberName; - infoSink.info.message(EPrefixInternalError, err.c_str()); - hadError = true; - break; - } - } - } - } - } - } - } - } - - TVarLiveMap *inVarMaps[EShLangCount], *outVarMaps[EShLangCount], *uniformVarMap[EShLangCount]; - - // Use for mark current shader stage for resolver - TIoMapResolver& resolver; - TInfoSink& infoSink; - bool& hadError; - EProfile profile; - int version; - -private: - TSymbolValidater& operator=(TSymbolValidater&) = delete; - - bool qualifierCheck(const TType* const type1, const TType* const type2, const std::string& name, bool isBlock) - { - bool hasError = false; - const TQualifier& qualifier1 = type1->getQualifier(); - const TQualifier& qualifier2 = type2->getQualifier(); - - if (((isBlock == false) && - (type1->getQualifier().storage == EvqUniform && type2->getQualifier().storage == EvqUniform)) || - (type1->getQualifier().storage == EvqGlobal && type2->getQualifier().storage == EvqGlobal)) { - if (qualifier1.precision != qualifier2.precision) { - hasError = true; - std::string errorStr = name + ": have precision conflict cross stage."; - infoSink.info.message(EPrefixError, errorStr.c_str()); - } - if (qualifier1.hasFormat() && qualifier2.hasFormat()) { - if (qualifier1.layoutFormat != qualifier2.layoutFormat) { - hasError = true; - std::string errorStr = name + ": have layout format conflict cross stage."; - infoSink.info.message(EPrefixError, errorStr.c_str()); - } - - } - } - - if (isBlock == true) { - if (qualifier1.layoutPacking != qualifier2.layoutPacking) { - hasError = true; - std::string errorStr = name + ": have layoutPacking conflict cross stage."; - infoSink.info.message(EPrefixError, errorStr.c_str()); - } - if (qualifier1.layoutMatrix != qualifier2.layoutMatrix) { - hasError = true; - std::string errorStr = name + ": have layoutMatrix conflict cross stage."; - infoSink.info.message(EPrefixError, errorStr.c_str()); - } - if (qualifier1.layoutOffset != qualifier2.layoutOffset) { - hasError = true; - std::string errorStr = name + ": have layoutOffset conflict cross stage."; - infoSink.info.message(EPrefixError, errorStr.c_str()); - } - if (qualifier1.layoutAlign != qualifier2.layoutAlign) { - hasError = true; - std::string errorStr = name + ": have layoutAlign conflict cross stage."; - infoSink.info.message(EPrefixError, errorStr.c_str()); - } - } - - return hasError; - } - - bool typeCheck(const TType* const type1, const TType* const type2, const std::string& name, bool isBlock) - { - bool hasError = false; - if (!(type1->isStruct() && type2->isStruct())) { - hasError = hasError || qualifierCheck(type1, type2, name, isBlock); - } - else { - if (type1->getBasicType() == EbtBlock && type2->getBasicType() == EbtBlock) - isBlock = true; - const TTypeList* typeList1 = type1->getStruct(); - const TTypeList* typeList2 = type2->getStruct(); - - std::string newName = name; - size_t memberCount = typeList1->size(); - size_t index2 = 0; - for (size_t index = 0; index < memberCount; index++, index2++) { - // Skip inactive member - if (typeList1->at(index).type->getBasicType() == EbtVoid) - continue; - while (index2 < typeList2->size() && typeList2->at(index2).type->getBasicType() == EbtVoid) { - ++index2; - } - - // TypeList1 has more members in list - if (index2 == typeList2->size()) { - std::string errorStr = name + ": struct mismatch."; - infoSink.info.message(EPrefixError, errorStr.c_str()); - hasError = true; - break; - } - - if (typeList1->at(index).type->getFieldName() != typeList2->at(index2).type->getFieldName()) { - std::string errorStr = name + ": member name mismatch."; - infoSink.info.message(EPrefixError, errorStr.c_str()); - hasError = true; - } - else { - newName = typeList1->at(index).type->getFieldName().c_str(); - } - hasError = hasError || typeCheck(typeList1->at(index).type, typeList2->at(index2).type, newName, isBlock); - } - - while (index2 < typeList2->size()) - { - // TypeList2 has more members - if (typeList2->at(index2).type->getBasicType() != EbtVoid) { - std::string errorStr = name + ": struct mismatch."; - infoSink.info.message(EPrefixError, errorStr.c_str()); - hasError = true; - break; - } - ++index2; - } - } - return hasError; - } -}; - -struct TSlotCollector { - TSlotCollector(TIoMapResolver& r, TInfoSink& i) : resolver(r), infoSink(i) { } - - inline void operator()(std::pair& entKey) { - resolver.reserverStorageSlot(entKey.second, infoSink); - resolver.reserverResourceSlot(entKey.second, infoSink); - } - TIoMapResolver& resolver; - TInfoSink& infoSink; - -private: - TSlotCollector& operator=(TSlotCollector&) = delete; -}; - -TDefaultIoResolverBase::TDefaultIoResolverBase(const TIntermediate& intermediate) - : referenceIntermediate(intermediate) - , nextUniformLocation(intermediate.getUniformLocationBase()) - , nextInputLocation(0) - , nextOutputLocation(0) -{ - memset(stageMask, false, sizeof(bool) * (EShLangCount + 1)); - memset(stageIntermediates, 0, sizeof(TIntermediate*) * (EShLangCount)); - stageIntermediates[intermediate.getStage()] = &intermediate; -} - -int TDefaultIoResolverBase::getBaseBinding(EShLanguage stage, TResourceType res, unsigned int set) const { - return stageIntermediates[stage] ? selectBaseBinding(stageIntermediates[stage]->getShiftBinding(res), stageIntermediates[stage]->getShiftBindingForSet(res, set)) - : selectBaseBinding(referenceIntermediate.getShiftBinding(res), referenceIntermediate.getShiftBindingForSet(res, set)); -} - -const std::vector& TDefaultIoResolverBase::getResourceSetBinding(EShLanguage stage) const { - return stageIntermediates[stage] ? stageIntermediates[stage]->getResourceSetBinding() - : referenceIntermediate.getResourceSetBinding(); -} - -bool TDefaultIoResolverBase::doAutoBindingMapping() const { return referenceIntermediate.getAutoMapBindings(); } - -bool TDefaultIoResolverBase::doAutoLocationMapping() const { return referenceIntermediate.getAutoMapLocations(); } - -TDefaultIoResolverBase::TSlotSet::iterator TDefaultIoResolverBase::findSlot(int set, int slot) { - return std::lower_bound(slots[set].begin(), slots[set].end(), slot); -} - -bool TDefaultIoResolverBase::checkEmpty(int set, int slot) { - TSlotSet::iterator at = findSlot(set, slot); - return ! (at != slots[set].end() && *at == slot); -} - -int TDefaultIoResolverBase::reserveSlot(int set, int slot, int size) { - 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 TDefaultIoResolverBase::getFreeSlot(int set, int base, int size) { - 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); -} - -int TDefaultIoResolverBase::resolveSet(EShLanguage stage, TVarEntryInfo& ent) { - const TType& type = ent.symbol->getType(); - if (type.getQualifier().hasSet()) { - return ent.newSet = type.getQualifier().layoutSet; - } - // If a command line or API option requested a single descriptor set, use that (if not overrided by spaceN) - if (getResourceSetBinding(stage).size() == 1) { - return ent.newSet = atoi(getResourceSetBinding(stage)[0].c_str()); - } - return ent.newSet = 0; -} - -int TDefaultIoResolverBase::resolveUniformLocation(EShLanguage /*stage*/, TVarEntryInfo& ent) { - const TType& type = ent.symbol->getType(); - const char* name = ent.symbol->getAccessName().c_str(); - // kick out of not doing this - if (! doAutoLocationMapping()) { - return ent.newLocation = -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.isAtomic() || type.isSpirvType() || (type.containsOpaque() && referenceIntermediate.getSpv().openGl == 0)) { - return ent.newLocation = -1; - } - // no locations on blocks of built-in variables - if (type.isStruct()) { - if (type.getStruct()->size() < 1) { - return ent.newLocation = -1; - } - if ((*type.getStruct())[0].type->isBuiltIn()) { - return ent.newLocation = -1; - } - } - int location = referenceIntermediate.getUniformLocationOverride(name); - if (location != -1) { - return ent.newLocation = location; - } - location = nextUniformLocation; - nextUniformLocation += TIntermediate::computeTypeUniformLocationSize(type); - return ent.newLocation = location; -} - -int TDefaultIoResolverBase::resolveInOutLocation(EShLanguage stage, TVarEntryInfo& ent) { - const TType& type = ent.symbol->getType(); - // kick out of not doing this - if (! doAutoLocationMapping()) { - return ent.newLocation = -1; - } - - // no locations added if already present, a built-in variable, or a variable with SPIR-V decorate - if (type.getQualifier().hasLocation() || type.isBuiltIn() || type.getQualifier().hasSprivDecorate()) { - return ent.newLocation = -1; - } - - // no locations on blocks of built-in variables - if (type.isStruct()) { - if (type.getStruct()->size() < 1) { - return ent.newLocation = -1; - } - if ((*type.getStruct())[0].type->isBuiltIn()) { - return ent.newLocation = -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. - typeLocationSize = computeTypeLocationSize(type, stage); - nextLocation += typeLocationSize; - return ent.newLocation = location; -} - -int TDefaultIoResolverBase::resolveInOutComponent(EShLanguage /*stage*/, TVarEntryInfo& ent) { - return ent.newComponent = -1; -} - -int TDefaultIoResolverBase::resolveInOutIndex(EShLanguage /*stage*/, TVarEntryInfo& ent) { return ent.newIndex = -1; } - -uint32_t TDefaultIoResolverBase::computeTypeLocationSize(const TType& type, EShLanguage stage) { - 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); - } - return typeLocationSize; -} - -//TDefaultGlslIoResolver -TResourceType TDefaultGlslIoResolver::getResourceType(const glslang::TType& type) { - if (isImageType(type)) { - return EResImage; - } - if (isTextureType(type)) { - return EResTexture; - } - if (isSsboType(type)) { - return EResSsbo; - } - if (isSamplerType(type)) { - return EResSampler; - } - if (isUboType(type)) { - return EResUbo; - } - return EResCount; -} - -TDefaultGlslIoResolver::TDefaultGlslIoResolver(const TIntermediate& intermediate) - : TDefaultIoResolverBase(intermediate) - , preStage(EShLangCount) - , currentStage(EShLangCount) -{ } - -int TDefaultGlslIoResolver::resolveInOutLocation(EShLanguage stage, TVarEntryInfo& ent) { - const TType& type = ent.symbol->getType(); - const TString& name = ent.symbol->getAccessName(); - if (currentStage != stage) { - preStage = currentStage; - currentStage = stage; - } - // kick out if not doing this - if (! doAutoLocationMapping()) { - return ent.newLocation = -1; - } - // expand the location to each element if the symbol is a struct or array - if (type.getQualifier().hasLocation()) { - return ent.newLocation = type.getQualifier().layoutLocation; - } - // no locations added if already present, a built-in variable, or a variable with SPIR-V decorate - if (type.isBuiltIn() || type.getQualifier().hasSprivDecorate()) { - return ent.newLocation = -1; - } - // no locations on blocks of built-in variables - if (type.isStruct()) { - if (type.getStruct()->size() < 1) { - return ent.newLocation = -1; - } - if ((*type.getStruct())[0].type->isBuiltIn()) { - return ent.newLocation = -1; - } - } - int typeLocationSize = computeTypeLocationSize(type, stage); - int location = type.getQualifier().layoutLocation; - bool hasLocation = false; - EShLanguage keyStage(EShLangCount); - TStorageQualifier storage; - storage = EvqInOut; - if (type.getQualifier().isPipeInput()) { - // If this symbol is a input, search pre stage's out - keyStage = preStage; - } - if (type.getQualifier().isPipeOutput()) { - // If this symbol is a output, search next stage's in - keyStage = currentStage; - } - // The in/out in current stage is not declared with location, but it is possible declared - // with explicit location in other stages, find the storageSlotMap firstly to check whether - // the in/out has location - int resourceKey = buildStorageKey(keyStage, storage); - if (! storageSlotMap[resourceKey].empty()) { - TVarSlotMap::iterator iter = storageSlotMap[resourceKey].find(name); - if (iter != storageSlotMap[resourceKey].end()) { - // If interface resource be found, set it has location and this symbol's new location - // equal the symbol's explicit location declaration in pre or next stage. - // - // vs: out vec4 a; - // fs: layout(..., location = 3,...) in vec4 a; - hasLocation = true; - location = iter->second; - // if we want deal like that: - // vs: layout(location=4) out vec4 a; - // out vec4 b; - // - // fs: in vec4 a; - // layout(location = 4) in vec4 b; - // we need retraverse the map. - } - if (! hasLocation) { - // If interface resource note found, It's mean the location in two stage are both implicit declarat. - // So we should find a new slot for this interface. - // - // vs: out vec4 a; - // fs: in vec4 a; - location = getFreeSlot(resourceKey, 0, typeLocationSize); - storageSlotMap[resourceKey][name] = location; - } - } else { - // the first interface declarated in a program. - TVarSlotMap varSlotMap; - location = getFreeSlot(resourceKey, 0, typeLocationSize); - varSlotMap[name] = location; - storageSlotMap[resourceKey] = varSlotMap; - } - //Update location - return ent.newLocation = location; -} - -int TDefaultGlslIoResolver::resolveUniformLocation(EShLanguage /*stage*/, TVarEntryInfo& ent) { - const TType& type = ent.symbol->getType(); - const TString& name = ent.symbol->getAccessName(); - // kick out of not doing this - if (! doAutoLocationMapping()) { - return ent.newLocation = -1; - } - // expand the location to each element if the symbol is a struct or array - if (type.getQualifier().hasLocation() && (type.isStruct() || type.isArray())) { - return ent.newLocation = type.getQualifier().layoutLocation; - } else { - // 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.isAtomic() || type.isSpirvType() || - (type.containsOpaque() && referenceIntermediate.getSpv().openGl == 0)) { - return ent.newLocation = -1; - } - // no locations on blocks of built-in variables - if (type.isStruct()) { - if (type.getStruct()->size() < 1) { - return ent.newLocation = -1; - } - if ((*type.getStruct())[0].type->isBuiltIn()) { - return ent.newLocation = -1; - } - } - } - int location = referenceIntermediate.getUniformLocationOverride(name.c_str()); - if (location != -1) { - return ent.newLocation = location; - } - - int size = TIntermediate::computeTypeUniformLocationSize(type); - - // The uniform in current stage is not declared with location, but it is possible declared - // with explicit location in other stages, find the storageSlotMap firstly to check whether - // the uniform has location - bool hasLocation = false; - int resourceKey = buildStorageKey(EShLangCount, EvqUniform); - TVarSlotMap& slotMap = storageSlotMap[resourceKey]; - // Check dose shader program has uniform resource - if (! slotMap.empty()) { - // If uniform resource not empty, try find a same name uniform - TVarSlotMap::iterator iter = slotMap.find(name); - if (iter != slotMap.end()) { - // If uniform resource be found, set it has location and this symbol's new location - // equal the uniform's explicit location declaration in other stage. - // - // vs: uniform vec4 a; - // fs: layout(..., location = 3,...) uniform vec4 a; - hasLocation = true; - location = iter->second; - } - if (! hasLocation) { - // No explicit location declaration in other stage. - // So we should find a new slot for this uniform. - // - // vs: uniform vec4 a; - // fs: uniform vec4 a; - location = getFreeSlot(resourceKey, 0, computeTypeLocationSize(type, currentStage)); - storageSlotMap[resourceKey][name] = location; - } - } else { - // the first uniform declaration in a program. - TVarSlotMap varSlotMap; - location = getFreeSlot(resourceKey, 0, size); - varSlotMap[name] = location; - storageSlotMap[resourceKey] = varSlotMap; - } - return ent.newLocation = location; -} - -int TDefaultGlslIoResolver::resolveBinding(EShLanguage stage, TVarEntryInfo& ent) { - const TType& type = ent.symbol->getType(); - const TString& name = ent.symbol->getAccessName(); - // On OpenGL arrays of opaque types take a separate binding for each element - int numBindings = referenceIntermediate.getSpv().openGl != 0 && type.isSizedArray() ? type.getCumulativeArraySize() : 1; - TResourceType resource = getResourceType(type); - // don't need to handle uniform symbol, it will be handled in resolveUniformLocation - if (resource == EResUbo && type.getBasicType() != EbtBlock) { - return ent.newBinding = -1; - } - // There is no 'set' qualifier in OpenGL shading language, each resource has its own - // binding name space, so remap the 'set' to resource type which make each resource - // binding is valid from 0 to MAX_XXRESOURCE_BINDINGS - int set = referenceIntermediate.getSpv().openGl != 0 ? resource : ent.newSet; - int resourceKey = set; - if (resource < EResCount) { - if (type.getQualifier().hasBinding()) { - int newBinding = reserveSlot(resourceKey, getBaseBinding(stage, resource, set) + type.getQualifier().layoutBinding, numBindings); - return ent.newBinding = newBinding; - - } else { - // The resource in current stage is not declared with binding, but it is possible declared - // with explicit binding in other stages, find the resourceSlotMap firstly to check whether - // the resource has binding, don't need to allocate if it already has a binding - bool hasBinding = false; - ent.newBinding = -1; // leave as -1 if it isn't set below - - if (! resourceSlotMap[resourceKey].empty()) { - TVarSlotMap::iterator iter = resourceSlotMap[resourceKey].find(name); - if (iter != resourceSlotMap[resourceKey].end()) { - hasBinding = true; - ent.newBinding = iter->second; - } - } - if (!hasBinding && (ent.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 - int binding = getFreeSlot(resourceKey, getBaseBinding(stage, resource, set), numBindings); - resourceSlotMap[resourceKey][name] = binding; - ent.newBinding = binding; - } - return ent.newBinding; - } - } - return ent.newBinding = -1; -} - -void TDefaultGlslIoResolver::beginResolve(EShLanguage stage) { - // reset stage state - if (stage == EShLangCount) - preStage = currentStage = stage; - // update stage state - else if (currentStage != stage) { - preStage = currentStage; - currentStage = stage; - } -} - -void TDefaultGlslIoResolver::endResolve(EShLanguage /*stage*/) { - // TODO nothing -} - -void TDefaultGlslIoResolver::beginCollect(EShLanguage stage) { - // reset stage state - if (stage == EShLangCount) - preStage = currentStage = stage; - // update stage state - else if (currentStage != stage) { - preStage = currentStage; - currentStage = stage; - } -} - -void TDefaultGlslIoResolver::endCollect(EShLanguage /*stage*/) { - // TODO nothing -} - -void TDefaultGlslIoResolver::reserverStorageSlot(TVarEntryInfo& ent, TInfoSink& infoSink) { - const TType& type = ent.symbol->getType(); - const TString& name = ent.symbol->getAccessName(); - TStorageQualifier storage = type.getQualifier().storage; - EShLanguage stage(EShLangCount); - switch (storage) { - case EvqUniform: - if (type.getBasicType() != EbtBlock && type.getQualifier().hasLocation()) { - // - // Reserve the slots for the uniforms who has explicit location - int storageKey = buildStorageKey(EShLangCount, EvqUniform); - int location = type.getQualifier().layoutLocation; - TVarSlotMap& varSlotMap = storageSlotMap[storageKey]; - TVarSlotMap::iterator iter = varSlotMap.find(name); - if (iter == varSlotMap.end()) { - int numLocations = TIntermediate::computeTypeUniformLocationSize(type); - reserveSlot(storageKey, location, numLocations); - varSlotMap[name] = location; - } else { - // Allocate location by name for OpenGL driver, so the uniform in different - // stages should be declared with the same location - if (iter->second != location) { - TString errorMsg = "Invalid location: " + name; - infoSink.info.message(EPrefixInternalError, errorMsg.c_str()); - hasError = true; - } - } - } - break; - case EvqVaryingIn: - case EvqVaryingOut: - // - // Reserve the slots for the inout who has explicit location - if (type.getQualifier().hasLocation()) { - stage = storage == EvqVaryingIn ? preStage : stage; - stage = storage == EvqVaryingOut ? currentStage : stage; - int storageKey = buildStorageKey(stage, EvqInOut); - int location = type.getQualifier().layoutLocation; - TVarSlotMap& varSlotMap = storageSlotMap[storageKey]; - TVarSlotMap::iterator iter = varSlotMap.find(name); - if (iter == varSlotMap.end()) { - int numLocations = TIntermediate::computeTypeUniformLocationSize(type); - reserveSlot(storageKey, location, numLocations); - varSlotMap[name] = location; - } else { - // Allocate location by name for OpenGL driver, so the uniform in different - // stages should be declared with the same location - if (iter->second != location) { - TString errorMsg = "Invalid location: " + name; - infoSink.info.message(EPrefixInternalError, errorMsg.c_str()); - hasError = true; - } - } - } - break; - default: - break; - } -} - -void TDefaultGlslIoResolver::reserverResourceSlot(TVarEntryInfo& ent, TInfoSink& infoSink) { - const TType& type = ent.symbol->getType(); - const TString& name = ent.symbol->getAccessName(); - TResourceType resource = getResourceType(type); - int set = referenceIntermediate.getSpv().openGl != 0 ? resource : resolveSet(ent.stage, ent); - int resourceKey = set; - - if (type.getQualifier().hasBinding()) { - TVarSlotMap& varSlotMap = resourceSlotMap[resourceKey]; - TVarSlotMap::iterator iter = varSlotMap.find(name); - int binding = type.getQualifier().layoutBinding + getBaseBinding(ent.stage, resource, set); - - if (iter == varSlotMap.end()) { - // Reserve the slots for the ubo, ssbo and opaques who has explicit binding - int numBindings = referenceIntermediate.getSpv().openGl != 0 && type.isSizedArray() ? type.getCumulativeArraySize() : 1; - varSlotMap[name] = binding; - reserveSlot(resourceKey, binding, numBindings); - } else { - // Allocate binding by name for OpenGL driver, so the resource in different - // stages should be declared with the same binding - if (iter->second != binding) { - TString errorMsg = "Invalid binding: " + name; - infoSink.info.message(EPrefixInternalError, errorMsg.c_str()); - hasError = true; - } - } - } -} - -//TDefaultGlslIoResolver end - -/* - * 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*/, TVarEntryInfo& /*ent*/) override { return true; } - - TResourceType getResourceType(const glslang::TType& type) override { - if (isImageType(type)) { - return EResImage; - } - if (isTextureType(type)) { - return EResTexture; - } - if (isSsboType(type)) { - return EResSsbo; - } - if (isSamplerType(type)) { - return EResSampler; - } - if (isUboType(type)) { - return EResUbo; - } - return EResCount; - } - - int resolveBinding(EShLanguage stage, TVarEntryInfo& ent) override { - const TType& type = ent.symbol->getType(); - const int set = getLayoutSet(type); - // On OpenGL arrays of opaque types take a seperate binding for each element - int numBindings = referenceIntermediate.getSpv().openGl != 0 && type.isSizedArray() ? type.getCumulativeArraySize() : 1; - TResourceType resource = getResourceType(type); - if (resource < EResCount) { - if (type.getQualifier().hasBinding()) { - return ent.newBinding = reserveSlot( - set, getBaseBinding(stage, resource, set) + type.getQualifier().layoutBinding, numBindings); - } else if (ent.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 - return ent.newBinding = getFreeSlot(set, getBaseBinding(stage, resource, set), numBindings); - } - } - return ent.newBinding = -1; - } -}; - -#ifdef ENABLE_HLSL -/******************************************************************************** -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*/, TVarEntryInfo& /*ent*/) override { return true; } - - TResourceType getResourceType(const glslang::TType& type) override { - if (isUavType(type)) { - return EResUav; - } - if (isSrvType(type)) { - return EResTexture; - } - if (isSamplerType(type)) { - return EResSampler; - } - if (isUboType(type)) { - return EResUbo; - } - return EResCount; - } - - int resolveBinding(EShLanguage stage, TVarEntryInfo& ent) override { - const TType& type = ent.symbol->getType(); - const int set = getLayoutSet(type); - TResourceType resource = getResourceType(type); - if (resource < EResCount) { - if (type.getQualifier().hasBinding()) { - return ent.newBinding = reserveSlot(set, getBaseBinding(stage, resource, set) + type.getQualifier().layoutBinding); - } else if (ent.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 - return ent.newBinding = getFreeSlot(set, getBaseBinding(stage, resource, set)); - } - } - return ent.newBinding = -1; - } -}; -#endif - -// 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(); - // Restrict the stricter condition to further check 'somethingToDo' only if 'somethingToDo' has not been set, reduce - // unnecessary or insignificant for-loop operation after 'somethingToDo' have been true. - for (int res = 0; (res < EResCount && !somethingToDo); ++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); -#ifdef ENABLE_HLSL - TDefaultHlslIoResolver defaultHlslResolver(intermediate); - if (resolver == nullptr) { - // TODO: use a passed in IO mapper for this - if (intermediate.usingHlslIoMapping()) - resolver = &defaultHlslResolver; - else - resolver = &defaultResolver; - } -#else - resolver = &defaultResolver; -#endif - resolver->addStage(stage, intermediate); - - TVarLiveMap inVarMap, outVarMap, uniformVarMap; - TVarLiveVector inVector, outVector, uniformVector; - 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.destinations.empty()) { - TIntermNode* destination = iter_binding_live.destinations.back(); - iter_binding_live.destinations.pop_back(); - destination->traverse(&iter_binding_live); - } - - // sort entries by priority. see TVarEntryInfo::TOrderByPriority for info. - for (auto& var : inVarMap) { inVector.push_back(var); } - std::sort(inVector.begin(), inVector.end(), [](const TVarLivePair& p1, const TVarLivePair& p2) -> bool { - return TVarEntryInfo::TOrderByPriority()(p1.second, p2.second); - }); - for (auto& var : outVarMap) { outVector.push_back(var); } - std::sort(outVector.begin(), outVector.end(), [](const TVarLivePair& p1, const TVarLivePair& p2) -> bool { - return TVarEntryInfo::TOrderByPriority()(p1.second, p2.second); - }); - for (auto& var : uniformVarMap) { uniformVector.push_back(var); } - std::sort(uniformVector.begin(), uniformVector.end(), [](const TVarLivePair& p1, const TVarLivePair& p2) -> bool { - return TVarEntryInfo::TOrderByPriority()(p1.second, p2.second); - }); - bool hadError = false; - TVarLiveMap* dummyUniformVarMap[EShLangCount] = {}; - TNotifyInOutAdaptor inOutNotify(stage, *resolver); - TNotifyUniformAdaptor uniformNotify(stage, *resolver); - TResolverUniformAdaptor uniformResolve(stage, *resolver, dummyUniformVarMap, infoSink, hadError); - TResolverInOutAdaptor inOutResolve(stage, *resolver, infoSink, hadError); - resolver->beginNotifications(stage); - std::for_each(inVector.begin(), inVector.end(), inOutNotify); - std::for_each(outVector.begin(), outVector.end(), inOutNotify); - std::for_each(uniformVector.begin(), uniformVector.end(), uniformNotify); - resolver->endNotifications(stage); - resolver->beginResolve(stage); - for (auto& var : inVector) { inOutResolve(var); } - std::for_each(inVector.begin(), inVector.end(), [&inVarMap](TVarLivePair p) { - auto at = inVarMap.find(p.second.symbol->getAccessName()); - if (at != inVarMap.end() && p.second.id == at->second.id) - at->second = p.second; - }); - for (auto& var : outVector) { inOutResolve(var); } - std::for_each(outVector.begin(), outVector.end(), [&outVarMap](TVarLivePair p) { - auto at = outVarMap.find(p.second.symbol->getAccessName()); - if (at != outVarMap.end() && p.second.id == at->second.id) - at->second = p.second; - }); - std::for_each(uniformVector.begin(), uniformVector.end(), uniformResolve); - std::for_each(uniformVector.begin(), uniformVector.end(), [&uniformVarMap](TVarLivePair p) { - auto at = uniformVarMap.find(p.second.symbol->getAccessName()); - if (at != uniformVarMap.end() && p.second.id == at->second.id) - at->second = p.second; - }); - resolver->endResolve(stage); - if (!hadError) { - TVarSetTraverser iter_iomap(intermediate, inVarMap, outVarMap, uniformVarMap); - root->traverse(&iter_iomap); - } - return !hadError; -} - -// 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 TGlslIoMapper::addStage(EShLanguage stage, TIntermediate& intermediate, TInfoSink& infoSink, TIoMapResolver* resolver) { - bool somethingToDo = !intermediate.getResourceSetBinding().empty() || - intermediate.getAutoMapBindings() || - intermediate.getAutoMapLocations(); - - // Profile and version are use for symbol validate. - profile = intermediate.getProfile(); - version = intermediate.getVersion(); - - // Restrict the stricter condition to further check 'somethingToDo' only if 'somethingToDo' has not been set, reduce - // unnecessary or insignificant for-loop operation after 'somethingToDo' have been true. - for (int res = 0; (res < EResCount && !somethingToDo); ++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 - TDefaultGlslIoResolver defaultResolver(intermediate); -#ifdef ENABLE_HLSL - TDefaultHlslIoResolver defaultHlslResolver(intermediate); - if (resolver == nullptr) { - // TODO: use a passed in IO mapper for this - if (intermediate.usingHlslIoMapping()) - resolver = &defaultHlslResolver; - else - resolver = &defaultResolver; - } -#else - if (resolver == nullptr) { - resolver = &defaultResolver; - } -#endif - resolver->addStage(stage, intermediate); - inVarMaps[stage] = new TVarLiveMap(); outVarMaps[stage] = new TVarLiveMap(); uniformVarMap[stage] = new TVarLiveMap(); - TVarGatherTraverser iter_binding_all(intermediate, true, *inVarMaps[stage], *outVarMaps[stage], - *uniformVarMap[stage]); - TVarGatherTraverser iter_binding_live(intermediate, false, *inVarMaps[stage], *outVarMaps[stage], - *uniformVarMap[stage]); - root->traverse(&iter_binding_all); - iter_binding_live.pushFunction(intermediate.getEntryPointMangledName().c_str()); - while (! iter_binding_live.destinations.empty()) { - TIntermNode* destination = iter_binding_live.destinations.back(); - iter_binding_live.destinations.pop_back(); - destination->traverse(&iter_binding_live); - } - - TNotifyInOutAdaptor inOutNotify(stage, *resolver); - TNotifyUniformAdaptor uniformNotify(stage, *resolver); - // Resolve current stage input symbol location with previous stage output here, - // uniform symbol, ubo, ssbo and opaque symbols are per-program resource, - // will resolve uniform symbol location and ubo/ssbo/opaque binding in doMap() - resolver->beginNotifications(stage); - std::for_each(inVarMaps[stage]->begin(), inVarMaps[stage]->end(), inOutNotify); - std::for_each(outVarMaps[stage]->begin(), outVarMaps[stage]->end(), inOutNotify); - std::for_each(uniformVarMap[stage]->begin(), uniformVarMap[stage]->end(), uniformNotify); - resolver->endNotifications(stage); - TSlotCollector slotCollector(*resolver, infoSink); - resolver->beginCollect(stage); - std::for_each(inVarMaps[stage]->begin(), inVarMaps[stage]->end(), slotCollector); - std::for_each(outVarMaps[stage]->begin(), outVarMaps[stage]->end(), slotCollector); - std::for_each(uniformVarMap[stage]->begin(), uniformVarMap[stage]->end(), slotCollector); - resolver->endCollect(stage); - intermediates[stage] = &intermediate; - return !hadError; -} - -bool TGlslIoMapper::doMap(TIoMapResolver* resolver, TInfoSink& infoSink) { - resolver->endResolve(EShLangCount); - if (!hadError) { - //Resolve uniform location, ubo/ssbo/opaque bindings across stages - TResolverUniformAdaptor uniformResolve(EShLangCount, *resolver, uniformVarMap, infoSink, hadError); - TResolverInOutAdaptor inOutResolve(EShLangCount, *resolver, infoSink, hadError); - TSymbolValidater symbolValidater(*resolver, infoSink, inVarMaps, - outVarMaps, uniformVarMap, hadError, profile, version); - - TVarLiveVector inVectors[EShLangCount]; - TVarLiveVector outVectors[EShLangCount]; - TVarLiveVector uniformVector; - - resolver->beginResolve(EShLangCount); - for (int stage = EShLangVertex; stage < EShLangCount; stage++) { - if (inVarMaps[stage] != nullptr) { - inOutResolve.setStage(EShLanguage(stage)); - - // copy vars into a sorted list - std::for_each(inVarMaps[stage]->begin(), inVarMaps[stage]->end(), - [&inVectors, stage](TVarLivePair p) { inVectors[stage].push_back(p); }); - std::sort(inVectors[stage].begin(), inVectors[stage].end(), - [](const TVarLivePair& p1, const TVarLivePair& p2) -> bool { - return TVarEntryInfo::TOrderByPriority()(p1.second, p2.second); - }); - - std::for_each(outVarMaps[stage]->begin(), outVarMaps[stage]->end(), - [&outVectors, stage](TVarLivePair p) { outVectors[stage].push_back(p); }); - std::sort(outVectors[stage].begin(), outVectors[stage].end(), - [](const TVarLivePair& p1, const TVarLivePair& p2) -> bool { - return TVarEntryInfo::TOrderByPriority()(p1.second, p2.second); - }); - - for (auto& var : inVectors[stage]) { symbolValidater(var); } - for (auto& var : inVectors[stage]) { inOutResolve(var); } - for (auto& var : outVectors[stage]) { symbolValidater(var); } - for (auto& var : outVectors[stage]) { inOutResolve(var); } - - // copy results back into maps - std::for_each(inVectors[stage].begin(), inVectors[stage].end(), - [this, stage](TVarLivePair p) { - auto at = inVarMaps[stage]->find(p.first); - if (at != inVarMaps[stage]->end()) - at->second = p.second; - }); - - std::for_each(outVectors[stage].begin(), outVectors[stage].end(), - [this, stage](TVarLivePair p) { - auto at = outVarMaps[stage]->find(p.first); - if (at != outVarMaps[stage]->end()) - at->second = p.second; - }); - - } - if (uniformVarMap[stage] != nullptr) { - uniformResolve.setStage(EShLanguage(stage)); - for (auto& var : *(uniformVarMap[stage])) { uniformVector.push_back(var); } - } - } - std::sort(uniformVector.begin(), uniformVector.end(), [](const TVarLivePair& p1, const TVarLivePair& p2) -> bool { - return TVarEntryInfo::TOrderByPriorityAndLive()(p1.second, p2.second); - }); - for (auto& var : uniformVector) { symbolValidater(var); } - for (auto& var : uniformVector) { uniformResolve(var); } - std::sort(uniformVector.begin(), uniformVector.end(), [](const TVarLivePair& p1, const TVarLivePair& p2) -> bool { - return TVarEntryInfo::TOrderByPriority()(p1.second, p2.second); - }); - resolver->endResolve(EShLangCount); - if (autoPushConstantBlockName.length()) { - bool upgraded = false; - for (size_t stage = 0; stage < EShLangCount; stage++) { - if (intermediates[stage] != nullptr) { - TVarLiveMap** pUniformVarMap = uniformResolve.uniformVarMap; - auto at = pUniformVarMap[stage]->find(autoPushConstantBlockName); - if (at == pUniformVarMap[stage]->end()) - continue; - TQualifier& qualifier = at->second.symbol->getQualifier(); - if (!qualifier.isUniform()) - continue; - TType& t = at->second.symbol->getWritableType(); - int size, stride; - TIntermediate::getBaseAlignment(t, size, stride, autoPushConstantBlockPacking, - qualifier.layoutMatrix == ElmRowMajor); - if (size <= int(autoPushConstantMaxSize)) { - qualifier.setBlockStorage(EbsPushConstant); - qualifier.layoutPacking = autoPushConstantBlockPacking; - // Push constants don't have set/binding etc. decorations, remove those. - qualifier.layoutSet = TQualifier::layoutSetEnd; - at->second.clearNewAssignments(); - - upgraded = true; - } - } - } - // If it's been upgraded to push_constant, then remove it from the uniformVector - // so it doesn't get a set/binding assigned to it. - if (upgraded) { - while (1) { - auto at = std::find_if(uniformVector.begin(), uniformVector.end(), - [this](const TVarLivePair& p) { return p.first == autoPushConstantBlockName; }); - if (at != uniformVector.end()) - uniformVector.erase(at); - else - break; - } - } - } - for (size_t stage = 0; stage < EShLangCount; stage++) { - if (intermediates[stage] != nullptr) { - // traverse each stage, set new location to each input/output and unifom symbol, set new binding to - // ubo, ssbo and opaque symbols - TVarLiveMap** pUniformVarMap = uniformResolve.uniformVarMap; - std::for_each(uniformVector.begin(), uniformVector.end(), [pUniformVarMap, stage](TVarLivePair p) { - auto at = pUniformVarMap[stage]->find(p.second.symbol->getAccessName()); - if (at != pUniformVarMap[stage]->end() && at->second.id == p.second.id){ - int resolvedBinding = at->second.newBinding; - at->second = p.second; - if (resolvedBinding > 0) - at->second.newBinding = resolvedBinding; - } - }); - TVarSetTraverser iter_iomap(*intermediates[stage], *inVarMaps[stage], *outVarMaps[stage], - *uniformResolve.uniformVarMap[stage]); - intermediates[stage]->getTreeRoot()->traverse(&iter_iomap); - } - } - return !hadError; - } else { - return false; - } -} - -} // end namespace glslang - -#endif // !GLSLANG_WEB && !GLSLANG_ANGLE diff --git a/deps/glslang/glslang/MachineIndependent/iomapper.h b/deps/glslang/glslang/MachineIndependent/iomapper.h deleted file mode 100644 index ba7bc3bb..00000000 --- a/deps/glslang/glslang/MachineIndependent/iomapper.h +++ /dev/null @@ -1,361 +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 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 !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) - -#ifndef _IOMAPPER_INCLUDED -#define _IOMAPPER_INCLUDED - -#include -#include "LiveTraverser.h" -#include -#include -// -// A reflection database and its interface, consistent with the OpenGL API reflection queries. -// - -class TInfoSink; - -namespace glslang { - -class TIntermediate; -struct TVarEntryInfo { - long long id; - TIntermSymbol* symbol; - bool live; - int newBinding; - int newSet; - int newLocation; - int newComponent; - int newIndex; - EShLanguage stage; - - void clearNewAssignments() { - newBinding = -1; - newSet = -1; - newLocation = -1; - newComponent = -1; - newIndex = -1; - } - - 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; - } - }; - - struct TOrderByPriorityAndLive { - // ordering: - // 1) do live variables first - // 2) has both binding and set - // 3) has binding but no set - // 4) has no binding but set - // 5) 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 (l.live != r.live) - return l.live > r.live; - - if (lPoints != rPoints) - return lPoints > rPoints; - - return l.id < r.id; - } - }; -}; - -// Base class for shared TIoMapResolver services, used by several derivations. -struct TDefaultIoResolverBase : public glslang::TIoMapResolver { -public: - TDefaultIoResolverBase(const TIntermediate& intermediate); - typedef std::vector TSlotSet; - typedef std::unordered_map TSlotSetMap; - - // grow the reflection stage by stage - void notifyBinding(EShLanguage, TVarEntryInfo& /*ent*/) override {} - void notifyInOut(EShLanguage, TVarEntryInfo& /*ent*/) override {} - void beginNotifications(EShLanguage) override {} - void endNotifications(EShLanguage) override {} - void beginResolve(EShLanguage) override {} - void endResolve(EShLanguage) override {} - void beginCollect(EShLanguage) override {} - void endCollect(EShLanguage) override {} - void reserverResourceSlot(TVarEntryInfo& /*ent*/, TInfoSink& /*infoSink*/) override {} - void reserverStorageSlot(TVarEntryInfo& /*ent*/, TInfoSink& /*infoSink*/) override {} - int getBaseBinding(EShLanguage stage, TResourceType res, unsigned int set) const; - const std::vector& getResourceSetBinding(EShLanguage stage) const; - virtual TResourceType getResourceType(const glslang::TType& type) = 0; - bool doAutoBindingMapping() const; - bool doAutoLocationMapping() const; - TSlotSet::iterator findSlot(int set, int slot); - bool checkEmpty(int set, int slot); - bool validateInOut(EShLanguage /*stage*/, TVarEntryInfo& /*ent*/) override { return true; } - int reserveSlot(int set, int slot, int size = 1); - int getFreeSlot(int set, int base, int size = 1); - int resolveSet(EShLanguage /*stage*/, TVarEntryInfo& ent) override; - int resolveUniformLocation(EShLanguage /*stage*/, TVarEntryInfo& ent) override; - int resolveInOutLocation(EShLanguage stage, TVarEntryInfo& ent) override; - int resolveInOutComponent(EShLanguage /*stage*/, TVarEntryInfo& ent) override; - int resolveInOutIndex(EShLanguage /*stage*/, TVarEntryInfo& ent) override; - void addStage(EShLanguage stage, TIntermediate& stageIntermediate) override { - if (stage < EShLangCount) { - stageMask[stage] = true; - stageIntermediates[stage] = &stageIntermediate; - } - } - uint32_t computeTypeLocationSize(const TType& type, EShLanguage stage); - - TSlotSetMap slots; - bool hasError = false; - -protected: - TDefaultIoResolverBase(TDefaultIoResolverBase&); - TDefaultIoResolverBase& operator=(TDefaultIoResolverBase&); - const TIntermediate& referenceIntermediate; - int nextUniformLocation; - int nextInputLocation; - int nextOutputLocation; - bool stageMask[EShLangCount + 1]; - const TIntermediate* stageIntermediates[EShLangCount]; - - // 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; - } - - 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; - } - - // 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().isReadOnly()) - return false; - return (type.getBasicType() == glslang::EbtSampler && type.getSampler().isImage()) || - (type.getQualifier().storage == EvqBuffer); - } -}; - -// Default I/O resolver for OpenGL -struct TDefaultGlslIoResolver : public TDefaultIoResolverBase { -public: - typedef std::map TVarSlotMap; // - typedef std::map TSlotMap; // - TDefaultGlslIoResolver(const TIntermediate& intermediate); - bool validateBinding(EShLanguage /*stage*/, TVarEntryInfo& /*ent*/) override { return true; } - TResourceType getResourceType(const glslang::TType& type) override; - int resolveInOutLocation(EShLanguage stage, TVarEntryInfo& ent) override; - int resolveUniformLocation(EShLanguage /*stage*/, TVarEntryInfo& ent) override; - int resolveBinding(EShLanguage /*stage*/, TVarEntryInfo& ent) override; - void beginResolve(EShLanguage /*stage*/) override; - void endResolve(EShLanguage stage) override; - void beginCollect(EShLanguage) override; - void endCollect(EShLanguage) override; - void reserverStorageSlot(TVarEntryInfo& ent, TInfoSink& infoSink) override; - void reserverResourceSlot(TVarEntryInfo& ent, TInfoSink& infoSink) override; - // in/out symbol and uniform symbol are stored in the same resourceSlotMap, the storage key is used to identify each type of symbol. - // We use stage and storage qualifier to construct a storage key. it can help us identify the same storage resource used in different stage. - // if a resource is a program resource and we don't need know it usage stage, we can use same stage to build storage key. - // Note: both stage and type must less then 0xffff. - int buildStorageKey(EShLanguage stage, TStorageQualifier type) { - assert(static_cast(stage) <= 0x0000ffff && static_cast(type) <= 0x0000ffff); - return (stage << 16) | type; - } - -protected: - // Use for mark pre stage, to get more interface symbol information. - EShLanguage preStage; - // Use for mark current shader stage for resolver - EShLanguage currentStage; - // Slot map for storage resource(location of uniform and interface symbol) It's a program share slot - TSlotMap resourceSlotMap; - // Slot map for other resource(image, ubo, ssbo), It's a program share slot. - TSlotMap storageSlotMap; -}; - -typedef std::map TVarLiveMap; - -// override function "operator=", if a vector being sort, -// when use vc++, the sort function will call : -// pair& operator=(const pair<_Other1, _Other2>& _Right) -// { -// first = _Right.first; -// second = _Right.second; -// return (*this); -// } -// that will make a const type handing on left. -// override this function can avoid a compiler error. -// In the future, if the vc++ compiler can handle such a situation, -// this part of the code will be removed. -struct TVarLivePair : std::pair { - TVarLivePair(const std::pair& _Right) : pair(_Right.first, _Right.second) {} - TVarLivePair& operator=(const TVarLivePair& _Right) { - const_cast(first) = _Right.first; - second = _Right.second; - return (*this); - } - TVarLivePair(const TVarLivePair& src) : pair(src) { } -}; -typedef std::vector TVarLiveVector; - -// I/O mapper -class TIoMapper { -public: - TIoMapper() {} - virtual ~TIoMapper() {} - // grow the reflection stage by stage - bool virtual addStage(EShLanguage, TIntermediate&, TInfoSink&, TIoMapResolver*); - bool virtual doMap(TIoMapResolver*, TInfoSink&) { return true; } -}; - -// I/O mapper for GLSL -class TGlslIoMapper : public TIoMapper { -public: - TGlslIoMapper() { - memset(inVarMaps, 0, sizeof(TVarLiveMap*) * (EShLangCount + 1)); - memset(outVarMaps, 0, sizeof(TVarLiveMap*) * (EShLangCount + 1)); - memset(uniformVarMap, 0, sizeof(TVarLiveMap*) * (EShLangCount + 1)); - memset(intermediates, 0, sizeof(TIntermediate*) * (EShLangCount + 1)); - profile = ENoProfile; - version = 0; - autoPushConstantMaxSize = 128; - autoPushConstantBlockPacking = ElpStd430; - } - virtual ~TGlslIoMapper() { - for (size_t stage = 0; stage < EShLangCount; stage++) { - if (inVarMaps[stage] != nullptr) { - delete inVarMaps[stage]; - inVarMaps[stage] = nullptr; - } - if (outVarMaps[stage] != nullptr) { - delete outVarMaps[stage]; - outVarMaps[stage] = nullptr; - } - if (uniformVarMap[stage] != nullptr) { - delete uniformVarMap[stage]; - uniformVarMap[stage] = nullptr; - } - if (intermediates[stage] != nullptr) - intermediates[stage] = nullptr; - } - } - // If set, the uniform block with the given name will be changed to be backed by - // push_constant if it's size is <= maxSize - void setAutoPushConstantBlock(const char* name, unsigned int maxSize, TLayoutPacking packing) { - autoPushConstantBlockName = name; - autoPushConstantMaxSize = maxSize; - autoPushConstantBlockPacking = packing; - } - // grow the reflection stage by stage - bool addStage(EShLanguage, TIntermediate&, TInfoSink&, TIoMapResolver*) override; - bool doMap(TIoMapResolver*, TInfoSink&) override; - TVarLiveMap *inVarMaps[EShLangCount], *outVarMaps[EShLangCount], - *uniformVarMap[EShLangCount]; - TIntermediate* intermediates[EShLangCount]; - bool hadError = false; - EProfile profile; - int version; - -private: - TString autoPushConstantBlockName; - unsigned int autoPushConstantMaxSize; - TLayoutPacking autoPushConstantBlockPacking; -}; - -} // end namespace glslang - -#endif // _IOMAPPER_INCLUDED - -#endif // !GLSLANG_WEB && !GLSLANG_ANGLE diff --git a/deps/glslang/glslang/MachineIndependent/limits.cpp b/deps/glslang/glslang/MachineIndependent/limits.cpp deleted file mode 100644 index 39157057..00000000 --- a/deps/glslang/glslang/MachineIndependent/limits.cpp +++ /dev/null @@ -1,200 +0,0 @@ -// -// 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. -// - -// -// Do sub tree walks for -// 1) inductive loop bodies to see if the inductive variable is modified -// 2) array-index expressions to see if they are "constant-index-expression" -// -// These are per Appendix A of ES 2.0: -// -// "Within the body of the loop, the loop index is not statically assigned to nor is it used as the -// argument to a function out or inout parameter." -// -// "The following are constant-index-expressions: -// - Constant expressions -// - Loop indices as defined in section 4 -// - Expressions composed of both of the above" -// -// N.B.: assuming the last rule excludes function calls -// - -#include "ParseHelper.h" - -namespace glslang { - -// -// The inductive loop-body traverser. -// -// Just look at things that might modify the loop index. -// - -class TInductiveTraverser : public TIntermTraverser { -public: - TInductiveTraverser(long long id, TSymbolTable& st) - : loopId(id), symbolTable(st), bad(false) { } - - virtual bool visitBinary(TVisit, TIntermBinary* node); - virtual bool visitUnary(TVisit, TIntermUnary* node); - virtual bool visitAggregate(TVisit, TIntermAggregate* node); - - long long loopId; // unique ID of the symbol that's the loop inductive variable - TSymbolTable& symbolTable; - bool bad; - TSourceLoc badLoc; - -protected: - TInductiveTraverser(TInductiveTraverser&); - TInductiveTraverser& operator=(TInductiveTraverser&); -}; - -// check binary operations for those modifying the loop index -bool TInductiveTraverser::visitBinary(TVisit /* visit */, TIntermBinary* node) -{ - if (node->modifiesState() && node->getLeft()->getAsSymbolNode() && - node->getLeft()->getAsSymbolNode()->getId() == loopId) { - bad = true; - badLoc = node->getLoc(); - } - - return true; -} - -// check unary operations for those modifying the loop index -bool TInductiveTraverser::visitUnary(TVisit /* visit */, TIntermUnary* node) -{ - if (node->modifiesState() && node->getOperand()->getAsSymbolNode() && - node->getOperand()->getAsSymbolNode()->getId() == loopId) { - bad = true; - badLoc = node->getLoc(); - } - - return true; -} - -// check function calls for arguments modifying the loop index -bool TInductiveTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node) -{ - if (node->getOp() == EOpFunctionCall) { - // see if an out or inout argument is the loop index - const TIntermSequence& args = node->getSequence(); - for (int i = 0; i < (int)args.size(); ++i) { - if (args[i]->getAsSymbolNode() && args[i]->getAsSymbolNode()->getId() == loopId) { - TSymbol* function = symbolTable.find(node->getName()); - const TType* type = (*function->getAsFunction())[i].type; - if (type->getQualifier().storage == EvqOut || - type->getQualifier().storage == EvqInOut) { - bad = true; - badLoc = node->getLoc(); - } - } - } - } - - return true; -} - -// -// External function to call for loop check. -// -void TParseContext::inductiveLoopBodyCheck(TIntermNode* body, long long loopId, TSymbolTable& symbolTable) -{ - TInductiveTraverser it(loopId, symbolTable); - - if (body == nullptr) - return; - - body->traverse(&it); - - if (it.bad) - error(it.badLoc, "inductive loop index modified", "limitations", ""); -} - -// -// The "constant-index-expression" tranverser. -// -// Just look at things that can form an index. -// - -class TIndexTraverser : public TIntermTraverser { -public: - TIndexTraverser(const TIdSetType& ids) : inductiveLoopIds(ids), bad(false) { } - virtual void visitSymbol(TIntermSymbol* symbol); - virtual bool visitAggregate(TVisit, TIntermAggregate* node); - const TIdSetType& inductiveLoopIds; - bool bad; - TSourceLoc badLoc; - -protected: - TIndexTraverser(TIndexTraverser&); - TIndexTraverser& operator=(TIndexTraverser&); -}; - -// make sure symbols are inductive-loop indexes -void TIndexTraverser::visitSymbol(TIntermSymbol* symbol) -{ - if (inductiveLoopIds.find(symbol->getId()) == inductiveLoopIds.end()) { - bad = true; - badLoc = symbol->getLoc(); - } -} - -// check for function calls, assuming they are bad; spec. doesn't really say -bool TIndexTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node) -{ - if (node->getOp() == EOpFunctionCall) { - bad = true; - badLoc = node->getLoc(); - } - - return true; -} - -// -// External function to call for loop check. -// -void TParseContext::constantIndexExpressionCheck(TIntermNode* index) -{ -#ifndef GLSLANG_WEB - TIndexTraverser it(inductiveLoopIds); - - index->traverse(&it); - - if (it.bad) - error(it.badLoc, "Non-constant-index-expression", "limitations", ""); -#endif -} - -} // end namespace glslang diff --git a/deps/glslang/glslang/MachineIndependent/linkValidate.cpp b/deps/glslang/glslang/MachineIndependent/linkValidate.cpp deleted file mode 100644 index 9b45570e..00000000 --- a/deps/glslang/glslang/MachineIndependent/linkValidate.cpp +++ /dev/null @@ -1,2346 +0,0 @@ -// -// Copyright (C) 2013 LunarG, Inc. -// Copyright (C) 2017 ARM Limited. -// Copyright (C) 2015-2018 Google, Inc. -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// Neither the name of 3Dlabs Inc. Ltd. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -// - -// -// Do link-time merging and validation of intermediate representations. -// -// Basic model is that during compilation, each compilation unit (shader) is -// compiled into one TIntermediate instance. Then, at link time, multiple -// units for the same stage can be merged together, which can generate errors. -// Then, after all merging, a single instance of TIntermediate represents -// the whole stage. A final error check can be done on the resulting stage, -// even if no merging was done (i.e., the stage was only one compilation unit). -// - -#include "localintermediate.h" -#include "../Include/InfoSink.h" -#include "SymbolTable.h" - -namespace glslang { - -// -// Link-time error emitter. -// -void TIntermediate::error(TInfoSink& infoSink, const char* message, EShLanguage unitStage) -{ -#ifndef GLSLANG_WEB - infoSink.info.prefix(EPrefixError); - if (unitStage < EShLangCount) - infoSink.info << "Linking " << StageName(getStage()) << " and " << StageName(unitStage) << " stages: " << message << "\n"; - else - infoSink.info << "Linking " << StageName(language) << " stage: " << message << "\n"; -#endif - - ++numErrors; -} - -// Link-time warning. -void TIntermediate::warn(TInfoSink& infoSink, const char* message, EShLanguage unitStage) -{ -#ifndef GLSLANG_WEB - infoSink.info.prefix(EPrefixWarning); - if (unitStage < EShLangCount) - infoSink.info << "Linking " << StageName(language) << " and " << StageName(unitStage) << " stages: " << message << "\n"; - else - infoSink.info << "Linking " << StageName(language) << " stage: " << message << "\n"; -#endif -} - -// 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." - -// -// Merge the information from 'unit' into 'this' -// -void TIntermediate::merge(TInfoSink& infoSink, TIntermediate& unit) -{ -#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) - mergeCallGraphs(infoSink, unit); - mergeModes(infoSink, unit); - mergeTrees(infoSink, unit); -#endif -} - -// -// check that link objects between stages -// -void TIntermediate::mergeUniformObjects(TInfoSink& infoSink, TIntermediate& unit) { - if (unit.treeRoot == nullptr || treeRoot == nullptr) - return; - - // Get the linker-object lists - TIntermSequence& linkerObjects = findLinkerObjects()->getSequence(); - TIntermSequence unitLinkerObjects = unit.findLinkerObjects()->getSequence(); - - // filter unitLinkerObjects to only contain uniforms - auto end = std::remove_if(unitLinkerObjects.begin(), unitLinkerObjects.end(), - [](TIntermNode* node) {return node->getAsSymbolNode()->getQualifier().storage != EvqUniform && - node->getAsSymbolNode()->getQualifier().storage != EvqBuffer; }); - unitLinkerObjects.resize(end - unitLinkerObjects.begin()); - - // merge uniforms and do error checking - bool mergeExistingOnly = false; - mergeGlobalUniformBlocks(infoSink, unit, mergeExistingOnly); - mergeLinkerObjects(infoSink, linkerObjects, unitLinkerObjects, unit.getStage()); -} - -// -// do error checking on the shader boundary in / out vars -// -void TIntermediate::checkStageIO(TInfoSink& infoSink, TIntermediate& unit) { - if (unit.treeRoot == nullptr || treeRoot == nullptr) - return; - - // Get copies of the linker-object lists - TIntermSequence linkerObjects = findLinkerObjects()->getSequence(); - TIntermSequence unitLinkerObjects = unit.findLinkerObjects()->getSequence(); - - // filter linkerObjects to only contain out variables - auto end = std::remove_if(linkerObjects.begin(), linkerObjects.end(), - [](TIntermNode* node) {return node->getAsSymbolNode()->getQualifier().storage != EvqVaryingOut; }); - linkerObjects.resize(end - linkerObjects.begin()); - - // filter unitLinkerObjects to only contain in variables - auto unitEnd = std::remove_if(unitLinkerObjects.begin(), unitLinkerObjects.end(), - [](TIntermNode* node) {return node->getAsSymbolNode()->getQualifier().storage != EvqVaryingIn; }); - unitLinkerObjects.resize(unitEnd - unitLinkerObjects.begin()); - - // do matching and error checking - mergeLinkerObjects(infoSink, linkerObjects, unitLinkerObjects, unit.getStage()); - - // TODO: final check; make sure that any statically used `in` have matching `out` written to -} - -void TIntermediate::mergeCallGraphs(TInfoSink& infoSink, TIntermediate& unit) -{ - if (unit.getNumEntryPoints() > 0) { - if (getNumEntryPoints() > 0) - error(infoSink, "can't handle multiple entry points per stage"); - else { - entryPointName = unit.getEntryPointName(); - entryPointMangledName = unit.getEntryPointMangledName(); - } - } - numEntryPoints += unit.getNumEntryPoints(); - - callGraph.insert(callGraph.end(), unit.callGraph.begin(), unit.callGraph.end()); -} - -#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) - -#define MERGE_MAX(member) member = std::max(member, unit.member) -#define MERGE_TRUE(member) if (unit.member) member = unit.member; - -void TIntermediate::mergeModes(TInfoSink& infoSink, TIntermediate& unit) -{ - if (language != unit.language) - error(infoSink, "stages must match when linking into a single stage"); - - if (getSource() == EShSourceNone) - setSource(unit.getSource()); - if (getSource() != unit.getSource()) - error(infoSink, "can't link compilation units from different source languages"); - - if (treeRoot == nullptr) { - profile = unit.profile; - version = unit.version; - requestedExtensions = unit.requestedExtensions; - } else { - if ((isEsProfile()) != (unit.isEsProfile())) - error(infoSink, "Cannot cross link ES and desktop profiles"); - else if (unit.profile == ECompatibilityProfile) - profile = ECompatibilityProfile; - version = std::max(version, unit.version); - requestedExtensions.insert(unit.requestedExtensions.begin(), unit.requestedExtensions.end()); - } - - MERGE_MAX(spvVersion.spv); - MERGE_MAX(spvVersion.vulkanGlsl); - MERGE_MAX(spvVersion.vulkan); - MERGE_MAX(spvVersion.openGl); - MERGE_TRUE(spvVersion.vulkanRelaxed); - - numErrors += unit.getNumErrors(); - // Only one push_constant is allowed, mergeLinkerObjects() will ensure the push_constant - // is the same for all units. - if (numPushConstants > 1 || unit.numPushConstants > 1) - error(infoSink, "Only one push_constant block is allowed per stage"); - numPushConstants = std::min(numPushConstants + unit.numPushConstants, 1); - - if (unit.invocations != TQualifier::layoutNotSet) { - if (invocations == TQualifier::layoutNotSet) - invocations = unit.invocations; - else if (invocations != unit.invocations) - error(infoSink, "number of invocations must match between compilation units"); - } - - if (vertices == TQualifier::layoutNotSet) - vertices = unit.vertices; - else if (unit.vertices != TQualifier::layoutNotSet && vertices != unit.vertices) { - if (language == EShLangGeometry || language == EShLangMeshNV) - error(infoSink, "Contradictory layout max_vertices values"); - else if (language == EShLangTessControl) - error(infoSink, "Contradictory layout vertices values"); - else - assert(0); - } - if (primitives == TQualifier::layoutNotSet) - primitives = unit.primitives; - else if (primitives != unit.primitives) { - if (language == EShLangMeshNV) - error(infoSink, "Contradictory layout max_primitives values"); - else - assert(0); - } - - if (inputPrimitive == ElgNone) - inputPrimitive = unit.inputPrimitive; - else if (unit.inputPrimitive != ElgNone && inputPrimitive != unit.inputPrimitive) - error(infoSink, "Contradictory input layout primitives"); - - if (outputPrimitive == ElgNone) - outputPrimitive = unit.outputPrimitive; - else if (unit.outputPrimitive != ElgNone && outputPrimitive != unit.outputPrimitive) - error(infoSink, "Contradictory output layout primitives"); - - if (originUpperLeft != unit.originUpperLeft || pixelCenterInteger != unit.pixelCenterInteger) - error(infoSink, "gl_FragCoord redeclarations must match across shaders"); - - if (vertexSpacing == EvsNone) - vertexSpacing = unit.vertexSpacing; - else if (vertexSpacing != unit.vertexSpacing) - error(infoSink, "Contradictory input vertex spacing"); - - if (vertexOrder == EvoNone) - vertexOrder = unit.vertexOrder; - else if (vertexOrder != unit.vertexOrder) - error(infoSink, "Contradictory triangle ordering"); - - MERGE_TRUE(pointMode); - - for (int i = 0; i < 3; ++i) { - if (unit.localSizeNotDefault[i]) { - if (!localSizeNotDefault[i]) { - localSize[i] = unit.localSize[i]; - localSizeNotDefault[i] = true; - } - else if (localSize[i] != unit.localSize[i]) - error(infoSink, "Contradictory local size"); - } - - if (localSizeSpecId[i] == TQualifier::layoutNotSet) - localSizeSpecId[i] = unit.localSizeSpecId[i]; - else if (localSizeSpecId[i] != unit.localSizeSpecId[i]) - error(infoSink, "Contradictory local size specialization ids"); - } - - MERGE_TRUE(earlyFragmentTests); - MERGE_TRUE(postDepthCoverage); - - if (depthLayout == EldNone) - depthLayout = unit.depthLayout; - else if (depthLayout != unit.depthLayout) - error(infoSink, "Contradictory depth layouts"); - - MERGE_TRUE(depthReplacing); - MERGE_TRUE(hlslFunctionality1); - - blendEquations |= unit.blendEquations; - - MERGE_TRUE(xfbMode); - - for (size_t b = 0; b < xfbBuffers.size(); ++b) { - if (xfbBuffers[b].stride == TQualifier::layoutXfbStrideEnd) - xfbBuffers[b].stride = unit.xfbBuffers[b].stride; - else if (xfbBuffers[b].stride != unit.xfbBuffers[b].stride) - error(infoSink, "Contradictory xfb_stride"); - xfbBuffers[b].implicitStride = std::max(xfbBuffers[b].implicitStride, unit.xfbBuffers[b].implicitStride); - if (unit.xfbBuffers[b].contains64BitType) - xfbBuffers[b].contains64BitType = true; - if (unit.xfbBuffers[b].contains32BitType) - xfbBuffers[b].contains32BitType = true; - if (unit.xfbBuffers[b].contains16BitType) - xfbBuffers[b].contains16BitType = true; - // TODO: 4.4 link: enhanced layouts: compare ranges - } - - MERGE_TRUE(multiStream); - MERGE_TRUE(layoutOverrideCoverage); - MERGE_TRUE(geoPassthroughEXT); - - for (unsigned int i = 0; i < unit.shiftBinding.size(); ++i) { - if (unit.shiftBinding[i] > 0) - setShiftBinding((TResourceType)i, unit.shiftBinding[i]); - } - - for (unsigned int i = 0; i < unit.shiftBindingForSet.size(); ++i) { - for (auto it = unit.shiftBindingForSet[i].begin(); it != unit.shiftBindingForSet[i].end(); ++it) - setShiftBindingForSet((TResourceType)i, it->second, it->first); - } - - resourceSetBinding.insert(resourceSetBinding.end(), unit.resourceSetBinding.begin(), unit.resourceSetBinding.end()); - - MERGE_TRUE(autoMapBindings); - MERGE_TRUE(autoMapLocations); - MERGE_TRUE(invertY); - MERGE_TRUE(dxPositionW); - MERGE_TRUE(flattenUniformArrays); - MERGE_TRUE(useUnknownFormat); - MERGE_TRUE(hlslOffsets); - MERGE_TRUE(useStorageBuffer); - MERGE_TRUE(invariantAll); - MERGE_TRUE(hlslIoMapping); - - // TODO: sourceFile - // TODO: sourceText - // TODO: processes - - MERGE_TRUE(needToLegalize); - MERGE_TRUE(binaryDoubleOutput); - MERGE_TRUE(usePhysicalStorageBuffer); -} - -// -// Merge the 'unit' AST into 'this' AST. -// That includes rationalizing the unique IDs, which were set up independently, -// and might have overlaps that are not the same symbol, or might have different -// IDs for what should be the same shared symbol. -// -void TIntermediate::mergeTrees(TInfoSink& infoSink, TIntermediate& unit) -{ - if (unit.treeRoot == nullptr) - return; - - if (treeRoot == nullptr) { - treeRoot = unit.treeRoot; - return; - } - - // Getting this far means we have two existing trees to merge... - numShaderRecordBlocks += unit.numShaderRecordBlocks; - numTaskNVBlocks += unit.numTaskNVBlocks; - - // Get the top-level globals of each unit - TIntermSequence& globals = treeRoot->getAsAggregate()->getSequence(); - TIntermSequence& unitGlobals = unit.treeRoot->getAsAggregate()->getSequence(); - - // Get the linker-object lists - TIntermSequence& linkerObjects = findLinkerObjects()->getSequence(); - const TIntermSequence& unitLinkerObjects = unit.findLinkerObjects()->getSequence(); - - // Map by global name to unique ID to rationalize the same object having - // differing IDs in different trees. - TIdMaps idMaps; - long long idShift; - seedIdMap(idMaps, idShift); - remapIds(idMaps, idShift + 1, unit); - - mergeBodies(infoSink, globals, unitGlobals); - bool mergeExistingOnly = false; - mergeGlobalUniformBlocks(infoSink, unit, mergeExistingOnly); - mergeLinkerObjects(infoSink, linkerObjects, unitLinkerObjects, unit.getStage()); - ioAccessed.insert(unit.ioAccessed.begin(), unit.ioAccessed.end()); -} - -#endif - -static const TString& getNameForIdMap(TIntermSymbol* symbol) -{ - TShaderInterface si = symbol->getType().getShaderInterface(); - if (si == EsiNone) - return symbol->getName(); - else - return symbol->getType().getTypeName(); -} - - - -// Traverser that seeds an ID map with all built-ins, and tracks the -// maximum ID used, currently using (maximum ID + 1) as new symbol id shift seed. -// Level id will keep same after shifting. -// (It would be nice to put this in a function, but that causes warnings -// on having no bodies for the copy-constructor/operator=.) -class TBuiltInIdTraverser : public TIntermTraverser { -public: - TBuiltInIdTraverser(TIdMaps& idMaps) : idMaps(idMaps), idShift(0) { } - // If it's a built in, add it to the map. - virtual void visitSymbol(TIntermSymbol* symbol) - { - const TQualifier& qualifier = symbol->getType().getQualifier(); - if (qualifier.builtIn != EbvNone) { - TShaderInterface si = symbol->getType().getShaderInterface(); - idMaps[si][getNameForIdMap(symbol)] = symbol->getId(); - } - idShift = (symbol->getId() & ~TSymbolTable::uniqueIdMask) | - std::max(idShift & TSymbolTable::uniqueIdMask, - symbol->getId() & TSymbolTable::uniqueIdMask); - } - long long getIdShift() const { return idShift; } -protected: - TBuiltInIdTraverser(TBuiltInIdTraverser&); - TBuiltInIdTraverser& operator=(TBuiltInIdTraverser&); - TIdMaps& idMaps; - long long idShift; -}; - -// Traverser that seeds an ID map with non-builtins. -// (It would be nice to put this in a function, but that causes warnings -// on having no bodies for the copy-constructor/operator=.) -class TUserIdTraverser : public TIntermTraverser { -public: - TUserIdTraverser(TIdMaps& idMaps) : idMaps(idMaps) { } - // If its a non-built-in global, add it to the map. - virtual void visitSymbol(TIntermSymbol* symbol) - { - const TQualifier& qualifier = symbol->getType().getQualifier(); - if (qualifier.builtIn == EbvNone) { - TShaderInterface si = symbol->getType().getShaderInterface(); - idMaps[si][getNameForIdMap(symbol)] = symbol->getId(); - } - } - -protected: - TUserIdTraverser(TUserIdTraverser&); - TUserIdTraverser& operator=(TUserIdTraverser&); - TIdMaps& idMaps; // over biggest id -}; - -// Initialize the the ID map with what we know of 'this' AST. -void TIntermediate::seedIdMap(TIdMaps& idMaps, long long& idShift) -{ - // all built-ins everywhere need to align on IDs and contribute to the max ID - TBuiltInIdTraverser builtInIdTraverser(idMaps); - treeRoot->traverse(&builtInIdTraverser); - idShift = builtInIdTraverser.getIdShift() & TSymbolTable::uniqueIdMask; - - // user variables in the linker object list need to align on ids - TUserIdTraverser userIdTraverser(idMaps); - findLinkerObjects()->traverse(&userIdTraverser); -} - -// Traverser to map an AST ID to what was known from the seeding AST. -// (It would be nice to put this in a function, but that causes warnings -// on having no bodies for the copy-constructor/operator=.) -class TRemapIdTraverser : public TIntermTraverser { -public: - TRemapIdTraverser(const TIdMaps& idMaps, long long idShift) : idMaps(idMaps), idShift(idShift) { } - // Do the mapping: - // - if the same symbol, adopt the 'this' ID - // - otherwise, ensure a unique ID by shifting to a new space - virtual void visitSymbol(TIntermSymbol* symbol) - { - const TQualifier& qualifier = symbol->getType().getQualifier(); - bool remapped = false; - if (qualifier.isLinkable() || qualifier.builtIn != EbvNone) { - TShaderInterface si = symbol->getType().getShaderInterface(); - auto it = idMaps[si].find(getNameForIdMap(symbol)); - if (it != idMaps[si].end()) { - uint64_t id = (symbol->getId() & ~TSymbolTable::uniqueIdMask) | - (it->second & TSymbolTable::uniqueIdMask); - symbol->changeId(id); - remapped = true; - } - } - if (!remapped) - symbol->changeId(symbol->getId() + idShift); - } -protected: - TRemapIdTraverser(TRemapIdTraverser&); - TRemapIdTraverser& operator=(TRemapIdTraverser&); - const TIdMaps& idMaps; - long long idShift; -}; - -void TIntermediate::remapIds(const TIdMaps& idMaps, long long idShift, TIntermediate& unit) -{ - // Remap all IDs to either share or be unique, as dictated by the idMap and idShift. - TRemapIdTraverser idTraverser(idMaps, idShift); - unit.getTreeRoot()->traverse(&idTraverser); -} - -// -// Merge the function bodies and global-level initializers from unitGlobals into globals. -// Will error check duplication of function bodies for the same signature. -// -void TIntermediate::mergeBodies(TInfoSink& infoSink, TIntermSequence& globals, const TIntermSequence& unitGlobals) -{ - // TODO: link-time performance: Processing in alphabetical order will be faster - - // Error check the global objects, not including the linker objects - for (unsigned int child = 0; child < globals.size() - 1; ++child) { - for (unsigned int unitChild = 0; unitChild < unitGlobals.size() - 1; ++unitChild) { - TIntermAggregate* body = globals[child]->getAsAggregate(); - TIntermAggregate* unitBody = unitGlobals[unitChild]->getAsAggregate(); - if (body && unitBody && body->getOp() == EOpFunction && unitBody->getOp() == EOpFunction && body->getName() == unitBody->getName()) { - error(infoSink, "Multiple function bodies in multiple compilation units for the same signature in the same stage:"); - infoSink.info << " " << globals[child]->getAsAggregate()->getName() << "\n"; - } - } - } - - // Merge the global objects, just in front of the linker objects - globals.insert(globals.end() - 1, unitGlobals.begin(), unitGlobals.end() - 1); -} - -static inline bool isSameInterface(TIntermSymbol* symbol, EShLanguage stage, TIntermSymbol* unitSymbol, EShLanguage unitStage) { - return // 1) same stage and same shader interface - (stage == unitStage && symbol->getType().getShaderInterface() == unitSymbol->getType().getShaderInterface()) || - // 2) accross stages and both are uniform or buffer - (symbol->getQualifier().storage == EvqUniform && unitSymbol->getQualifier().storage == EvqUniform) || - (symbol->getQualifier().storage == EvqBuffer && unitSymbol->getQualifier().storage == EvqBuffer) || - // 3) in/out matched across stage boundary - (stage < unitStage && symbol->getQualifier().storage == EvqVaryingOut && unitSymbol->getQualifier().storage == EvqVaryingIn) || - (unitStage < stage && symbol->getQualifier().storage == EvqVaryingIn && unitSymbol->getQualifier().storage == EvqVaryingOut); -} - -// -// Global Unfiform block stores any default uniforms (i.e. uniforms without a block) -// If two linked stages declare the same member, they are meant to be the same uniform -// and need to be in the same block -// merge the members of different stages to allow them to be linked properly -// as a single block -// -void TIntermediate::mergeGlobalUniformBlocks(TInfoSink& infoSink, TIntermediate& unit, bool mergeExistingOnly) -{ - TIntermSequence& linkerObjects = findLinkerObjects()->getSequence(); - TIntermSequence& unitLinkerObjects = unit.findLinkerObjects()->getSequence(); - - // build lists of default blocks from the intermediates - TIntermSequence defaultBlocks; - TIntermSequence unitDefaultBlocks; - - auto filter = [](TIntermSequence& list, TIntermNode* node) { - if (node->getAsSymbolNode()->getQualifier().defaultBlock) { - list.push_back(node); - } - }; - - std::for_each(linkerObjects.begin(), linkerObjects.end(), - [&defaultBlocks, &filter](TIntermNode* node) { - filter(defaultBlocks, node); - }); - std::for_each(unitLinkerObjects.begin(), unitLinkerObjects.end(), - [&unitDefaultBlocks, &filter](TIntermNode* node) { - filter(unitDefaultBlocks, node); - }); - - auto itUnitBlock = unitDefaultBlocks.begin(); - for (; itUnitBlock != unitDefaultBlocks.end(); itUnitBlock++) { - - bool add = !mergeExistingOnly; - auto itBlock = defaultBlocks.begin(); - - for (; itBlock != defaultBlocks.end(); itBlock++) { - TIntermSymbol* block = (*itBlock)->getAsSymbolNode(); - TIntermSymbol* unitBlock = (*itUnitBlock)->getAsSymbolNode(); - - assert(block && unitBlock); - - // if the two default blocks match, then merge their definitions - if (block->getType().getTypeName() == unitBlock->getType().getTypeName() && - block->getQualifier().storage == unitBlock->getQualifier().storage) { - add = false; - mergeBlockDefinitions(infoSink, block, unitBlock, &unit); - } - } - if (add) { - // push back on original list; won't change the size of the list we're iterating over - linkerObjects.push_back(*itUnitBlock); - } - } -} - -void TIntermediate::mergeBlockDefinitions(TInfoSink& infoSink, TIntermSymbol* block, TIntermSymbol* unitBlock, TIntermediate* unit) { - - if (block->getType().getTypeName() != unitBlock->getType().getTypeName() || - block->getType().getBasicType() != unitBlock->getType().getBasicType() || - block->getQualifier().storage != unitBlock->getQualifier().storage || - block->getQualifier().layoutSet != unitBlock->getQualifier().layoutSet) { - // different block names likely means different blocks - return; - } - - // merge the struct - // order of declarations doesn't matter and they matched based on member name - TTypeList* memberList = block->getType().getWritableStruct(); - TTypeList* unitMemberList = unitBlock->getType().getWritableStruct(); - - // keep track of which members have changed position - // so we don't have to search the array again - std::map memberIndexUpdates; - - size_t memberListStartSize = memberList->size(); - for (unsigned int i = 0; i < unitMemberList->size(); ++i) { - bool merge = true; - for (unsigned int j = 0; j < memberListStartSize; ++j) { - if ((*memberList)[j].type->getFieldName() == (*unitMemberList)[i].type->getFieldName()) { - merge = false; - const TType* memberType = (*memberList)[j].type; - const TType* unitMemberType = (*unitMemberList)[i].type; - - // compare types - // don't need as many checks as when merging symbols, since - // initializers and most qualifiers are stripped when the member is moved into the block - if ((*memberType) != (*unitMemberType)) { - error(infoSink, "Types must match:"); - infoSink.info << " " << memberType->getFieldName() << ": "; - infoSink.info << "\"" << memberType->getCompleteString() << "\" versus "; - infoSink.info << "\"" << unitMemberType->getCompleteString() << "\"\n"; - } - - memberIndexUpdates[i] = j; - } - } - if (merge) { - memberList->push_back((*unitMemberList)[i]); - memberIndexUpdates[i] = (unsigned int)memberList->size() - 1; - } - } - - // update symbol node in unit tree, - // and other nodes that may reference it - class TMergeBlockTraverser : public TIntermTraverser { - public: - TMergeBlockTraverser(const TIntermSymbol* newSym) - : newSymbol(newSym), unitType(nullptr), unit(nullptr), memberIndexUpdates(nullptr) - { - } - TMergeBlockTraverser(const TIntermSymbol* newSym, const glslang::TType* unitType, glslang::TIntermediate* unit, - const std::map* memberIdxUpdates) - : newSymbol(newSym), unitType(unitType), unit(unit), memberIndexUpdates(memberIdxUpdates) - { - } - virtual ~TMergeBlockTraverser() {} - - const TIntermSymbol* newSymbol; - const glslang::TType* unitType; // copy of original type - glslang::TIntermediate* unit; // intermediate that is being updated - const std::map* memberIndexUpdates; - - virtual void visitSymbol(TIntermSymbol* symbol) - { - if (newSymbol->getAccessName() == symbol->getAccessName() && - newSymbol->getQualifier().getBlockStorage() == symbol->getQualifier().getBlockStorage()) { - // Each symbol node may have a local copy of the block structure. - // Update those structures to match the new one post-merge - *(symbol->getWritableType().getWritableStruct()) = *(newSymbol->getType().getStruct()); - } - } - - virtual bool visitBinary(TVisit, glslang::TIntermBinary* node) - { - if (!unit || !unitType || !memberIndexUpdates || memberIndexUpdates->empty()) - return true; - - if (node->getOp() == EOpIndexDirectStruct && node->getLeft()->getType() == *unitType) { - // this is a dereference to a member of the block since the - // member list changed, need to update this to point to the - // right index - assert(node->getRight()->getAsConstantUnion()); - - glslang::TIntermConstantUnion* constNode = node->getRight()->getAsConstantUnion(); - unsigned int memberIdx = constNode->getConstArray()[0].getUConst(); - unsigned int newIdx = memberIndexUpdates->at(memberIdx); - TIntermTyped* newConstNode = unit->addConstantUnion(newIdx, node->getRight()->getLoc()); - - node->setRight(newConstNode); - delete constNode; - - return true; - } - return true; - } - }; - - // 'this' may have symbols that are using the old block structure, so traverse the tree to update those - // in 'visitSymbol' - TMergeBlockTraverser finalLinkTraverser(block); - getTreeRoot()->traverse(&finalLinkTraverser); - - // The 'unit' intermediate needs the block structures update, but also structure entry indices - // may have changed from the old block to the new one that it was merged into, so update those - // in 'visitBinary' - TType unitType; - unitType.shallowCopy(unitBlock->getType()); - TMergeBlockTraverser unitFinalLinkTraverser(block, &unitType, unit, &memberIndexUpdates); - unit->getTreeRoot()->traverse(&unitFinalLinkTraverser); - - // update the member list - (*unitMemberList) = (*memberList); -} - -// -// Merge the linker objects from unitLinkerObjects into linkerObjects. -// Duplication is expected and filtered out, but contradictions are an error. -// -void TIntermediate::mergeLinkerObjects(TInfoSink& infoSink, TIntermSequence& linkerObjects, const TIntermSequence& unitLinkerObjects, EShLanguage unitStage) -{ - // Error check and merge the linker objects (duplicates should not be created) - std::size_t initialNumLinkerObjects = linkerObjects.size(); - for (unsigned int unitLinkObj = 0; unitLinkObj < unitLinkerObjects.size(); ++unitLinkObj) { - bool merge = true; - for (std::size_t linkObj = 0; linkObj < initialNumLinkerObjects; ++linkObj) { - TIntermSymbol* symbol = linkerObjects[linkObj]->getAsSymbolNode(); - TIntermSymbol* unitSymbol = unitLinkerObjects[unitLinkObj]->getAsSymbolNode(); - assert(symbol && unitSymbol); - - bool isSameSymbol = false; - // If they are both blocks in the same shader interface, - // match by the block-name, not the identifier name. - if (symbol->getType().getBasicType() == EbtBlock && unitSymbol->getType().getBasicType() == EbtBlock) { - if (isSameInterface(symbol, getStage(), unitSymbol, unitStage)) { - isSameSymbol = symbol->getType().getTypeName() == unitSymbol->getType().getTypeName(); - } - } - else if (symbol->getName() == unitSymbol->getName()) - isSameSymbol = true; - - if (isSameSymbol) { - // filter out copy - merge = false; - - // but if one has an initializer and the other does not, update - // the initializer - if (symbol->getConstArray().empty() && ! unitSymbol->getConstArray().empty()) - symbol->setConstArray(unitSymbol->getConstArray()); - - // Similarly for binding - if (! symbol->getQualifier().hasBinding() && unitSymbol->getQualifier().hasBinding()) - symbol->getQualifier().layoutBinding = unitSymbol->getQualifier().layoutBinding; - - // Similarly for location - if (!symbol->getQualifier().hasLocation() && unitSymbol->getQualifier().hasLocation()) { - symbol->getQualifier().layoutLocation = unitSymbol->getQualifier().layoutLocation; - } - - // Update implicit array sizes - mergeImplicitArraySizes(symbol->getWritableType(), unitSymbol->getType()); - - // Check for consistent types/qualification/initializers etc. - mergeErrorCheck(infoSink, *symbol, *unitSymbol, unitStage); - } - // If different symbols, verify they arn't push_constant since there can only be one per stage - else if (symbol->getQualifier().isPushConstant() && unitSymbol->getQualifier().isPushConstant() && getStage() == unitStage) - error(infoSink, "Only one push_constant block is allowed per stage"); - } - if (merge) { - linkerObjects.push_back(unitLinkerObjects[unitLinkObj]); - - // for anonymous blocks, check that their members don't conflict with other names - if (unitLinkerObjects[unitLinkObj]->getAsSymbolNode()->getBasicType() == EbtBlock && - IsAnonymous(unitLinkerObjects[unitLinkObj]->getAsSymbolNode()->getName())) { - for (std::size_t linkObj = 0; linkObj < initialNumLinkerObjects; ++linkObj) { - TIntermSymbol* symbol = linkerObjects[linkObj]->getAsSymbolNode(); - TIntermSymbol* unitSymbol = unitLinkerObjects[unitLinkObj]->getAsSymbolNode(); - assert(symbol && unitSymbol); - - auto checkName = [this, unitSymbol, &infoSink](const TString& name) { - for (unsigned int i = 0; i < unitSymbol->getType().getStruct()->size(); ++i) { - if (name == (*unitSymbol->getType().getStruct())[i].type->getFieldName() - && !((*unitSymbol->getType().getStruct())[i].type->getQualifier().hasLocation() - || unitSymbol->getType().getQualifier().hasLocation()) - ) { - error(infoSink, "Anonymous member name used for global variable or other anonymous member: "); - infoSink.info << (*unitSymbol->getType().getStruct())[i].type->getCompleteString() << "\n"; - } - } - }; - - if (isSameInterface(symbol, getStage(), unitSymbol, unitStage)) { - checkName(symbol->getName()); - - // check members of other anonymous blocks - if (symbol->getBasicType() == EbtBlock && IsAnonymous(symbol->getName())) { - for (unsigned int i = 0; i < symbol->getType().getStruct()->size(); ++i) { - checkName((*symbol->getType().getStruct())[i].type->getFieldName()); - } - } - } - } - } - } - } -} - -// TODO 4.5 link functionality: cull distance array size checking - -// 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()); - } - - // Type mismatches are caught and reported after this, just be careful for now. - if (! type.isStruct() || ! unitType.isStruct() || type.getStruct()->size() != unitType.getStruct()->size()) - return; - - for (int i = 0; i < (int)type.getStruct()->size(); ++i) - mergeImplicitArraySizes(*(*type.getStruct())[i].type, *(*unitType.getStruct())[i].type); -} - -// -// Compare two global objects from two compilation units and see if they match -// well enough. Rules can be different for intra- vs. cross-stage matching. -// -// This function only does one of intra- or cross-stage matching per call. -// -void TIntermediate::mergeErrorCheck(TInfoSink& infoSink, const TIntermSymbol& symbol, const TIntermSymbol& unitSymbol, EShLanguage unitStage) -{ -#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) - bool crossStage = getStage() != unitStage; - bool writeTypeComparison = false; - bool errorReported = false; - bool printQualifiers = false; - bool printPrecision = false; - bool printType = false; - - // Types have to match - { - // but, we make an exception if one is an implicit array and the other is sized - // or if the array sizes differ because of the extra array dimension on some in/out boundaries - bool arraysMatch = false; - if (isIoResizeArray(symbol.getType(), getStage()) || isIoResizeArray(unitSymbol.getType(), unitStage)) { - // if the arrays have an extra dimension because of the stage. - // compare dimensions while ignoring the outer dimension - unsigned int firstDim = isIoResizeArray(symbol.getType(), getStage()) ? 1 : 0; - unsigned int numDim = symbol.getArraySizes() - ? symbol.getArraySizes()->getNumDims() : 0; - unsigned int unitFirstDim = isIoResizeArray(unitSymbol.getType(), unitStage) ? 1 : 0; - unsigned int unitNumDim = unitSymbol.getArraySizes() - ? unitSymbol.getArraySizes()->getNumDims() : 0; - arraysMatch = (numDim - firstDim) == (unitNumDim - unitFirstDim); - // check that array sizes match as well - for (unsigned int i = 0; i < (numDim - firstDim) && arraysMatch; i++) { - if (symbol.getArraySizes()->getDimSize(firstDim + i) != - unitSymbol.getArraySizes()->getDimSize(unitFirstDim + i)) { - arraysMatch = false; - break; - } - } - } - else { - arraysMatch = symbol.getType().sameArrayness(unitSymbol.getType()) || - (symbol.getType().isArray() && unitSymbol.getType().isArray() && - (symbol.getType().isUnsizedArray() || unitSymbol.getType().isUnsizedArray())); - } - - int lpidx = -1; - int rpidx = -1; - if (!symbol.getType().sameElementType(unitSymbol.getType(), &lpidx, &rpidx)) { - if (lpidx >= 0 && rpidx >= 0) { - error(infoSink, "Member names and types must match:", unitStage); - infoSink.info << " Block: " << symbol.getType().getTypeName() << "\n"; - infoSink.info << " " << StageName(getStage()) << " stage: \"" - << (*symbol.getType().getStruct())[lpidx].type->getCompleteString(true, false, false, true, - (*symbol.getType().getStruct())[lpidx].type->getFieldName()) << "\"\n"; - infoSink.info << " " << StageName(unitStage) << " stage: \"" - << (*unitSymbol.getType().getStruct())[rpidx].type->getCompleteString(true, false, false, true, - (*unitSymbol.getType().getStruct())[rpidx].type->getFieldName()) << "\"\n"; - errorReported = true; - } else if (lpidx >= 0 && rpidx == -1) { - TString errmsg = StageName(getStage()); - errmsg.append(" block member has no corresponding member in ").append(StageName(unitStage)).append(" block:"); - error(infoSink, errmsg.c_str(), unitStage); - infoSink.info << " " << StageName(getStage()) << " stage: Block: " << symbol.getType().getTypeName() << ", Member: " - << (*symbol.getType().getStruct())[lpidx].type->getFieldName() << "\n"; - infoSink.info << " " << StageName(unitStage) << " stage: Block: " << unitSymbol.getType().getTypeName() << ", Member: n/a \n"; - errorReported = true; - } else if (lpidx == -1 && rpidx >= 0) { - TString errmsg = StageName(unitStage); - errmsg.append(" block member has no corresponding member in ").append(StageName(getStage())).append(" block:"); - error(infoSink, errmsg.c_str(), unitStage); - infoSink.info << " " << StageName(unitStage) << " stage: Block: " << unitSymbol.getType().getTypeName() << ", Member: " - << (*unitSymbol.getType().getStruct())[rpidx].type->getFieldName() << "\n"; - infoSink.info << " " << StageName(getStage()) << " stage: Block: " << symbol.getType().getTypeName() << ", Member: n/a \n"; - errorReported = true; - } else { - error(infoSink, "Types must match:", unitStage); - writeTypeComparison = true; - printType = true; - } - } else if (!arraysMatch) { - error(infoSink, "Array sizes must be compatible:", unitStage); - writeTypeComparison = true; - printType = true; - } else if (!symbol.getType().sameTypeParameters(unitSymbol.getType())) { - error(infoSink, "Type parameters must match:", unitStage); - writeTypeComparison = true; - printType = true; - } - } - - // Interface block member-wise layout qualifiers have to match - if (symbol.getType().getBasicType() == EbtBlock && unitSymbol.getType().getBasicType() == EbtBlock && - symbol.getType().getStruct() && unitSymbol.getType().getStruct() && - symbol.getType().sameStructType(unitSymbol.getType())) { - unsigned int li = 0; - unsigned int ri = 0; - while (li < symbol.getType().getStruct()->size() && ri < unitSymbol.getType().getStruct()->size()) { - if ((*symbol.getType().getStruct())[li].type->hiddenMember()) { - ++li; - continue; - } - if ((*unitSymbol.getType().getStruct())[ri].type->hiddenMember()) { - ++ri; - continue; - } - const TQualifier& qualifier = (*symbol.getType().getStruct())[li].type->getQualifier(); - const TQualifier & unitQualifier = (*unitSymbol.getType().getStruct())[ri].type->getQualifier(); - bool layoutQualifierError = false; - if (qualifier.layoutMatrix != unitQualifier.layoutMatrix) { - error(infoSink, "Interface block member layout matrix qualifier must match:", unitStage); - layoutQualifierError = true; - } - if (qualifier.layoutOffset != unitQualifier.layoutOffset) { - error(infoSink, "Interface block member layout offset qualifier must match:", unitStage); - layoutQualifierError = true; - } - if (qualifier.layoutAlign != unitQualifier.layoutAlign) { - error(infoSink, "Interface block member layout align qualifier must match:", unitStage); - layoutQualifierError = true; - } - if (qualifier.layoutLocation != unitQualifier.layoutLocation) { - error(infoSink, "Interface block member layout location qualifier must match:", unitStage); - layoutQualifierError = true; - } - if (qualifier.layoutComponent != unitQualifier.layoutComponent) { - error(infoSink, "Interface block member layout component qualifier must match:", unitStage); - layoutQualifierError = true; - } - if (layoutQualifierError) { - infoSink.info << " " << StageName(getStage()) << " stage: Block: " << symbol.getType().getTypeName() << ", Member: " - << (*symbol.getType().getStruct())[li].type->getFieldName() << " \"" - << (*symbol.getType().getStruct())[li].type->getCompleteString(true, true, false, false) << "\"\n"; - infoSink.info << " " << StageName(unitStage) << " stage: Block: " << unitSymbol.getType().getTypeName() << ", Member: " - << (*unitSymbol.getType().getStruct())[ri].type->getFieldName() << " \"" - << (*unitSymbol.getType().getStruct())[ri].type->getCompleteString(true, true, false, false) << "\"\n"; - errorReported = true; - } - ++li; - ++ri; - } - } - - bool isInOut = crossStage && - ((symbol.getQualifier().storage == EvqVaryingIn && unitSymbol.getQualifier().storage == EvqVaryingOut) || - (symbol.getQualifier().storage == EvqVaryingOut && unitSymbol.getQualifier().storage == EvqVaryingIn)); - - // Qualifiers have to (almost) match - // Storage... - if (!isInOut && symbol.getQualifier().storage != unitSymbol.getQualifier().storage) { - error(infoSink, "Storage qualifiers must match:", unitStage); - writeTypeComparison = true; - printQualifiers = true; - } - - // Uniform and buffer blocks must either both have an instance name, or - // must both be anonymous. The names don't need to match though. - if (symbol.getQualifier().isUniformOrBuffer() && - (IsAnonymous(symbol.getName()) != IsAnonymous(unitSymbol.getName()))) { - error(infoSink, "Matched Uniform or Storage blocks must all be anonymous," - " or all be named:", unitStage); - writeTypeComparison = true; - } - - if (symbol.getQualifier().storage == unitSymbol.getQualifier().storage && - (IsAnonymous(symbol.getName()) != IsAnonymous(unitSymbol.getName()) || - (!IsAnonymous(symbol.getName()) && symbol.getName() != unitSymbol.getName()))) { - warn(infoSink, "Matched shader interfaces are using different instance names.", unitStage); - writeTypeComparison = true; - } - - // Precision... - if (!isInOut && symbol.getQualifier().precision != unitSymbol.getQualifier().precision) { - error(infoSink, "Precision qualifiers must match:", unitStage); - writeTypeComparison = true; - printPrecision = true; - } - - // Invariance... - if (! crossStage && symbol.getQualifier().invariant != unitSymbol.getQualifier().invariant) { - error(infoSink, "Presence of invariant qualifier must match:", unitStage); - writeTypeComparison = true; - printQualifiers = true; - } - - // Precise... - if (! crossStage && symbol.getQualifier().isNoContraction() != unitSymbol.getQualifier().isNoContraction()) { - error(infoSink, "Presence of precise qualifier must match:", unitStage); - writeTypeComparison = true; - printPrecision = true; - } - - // Auxiliary and interpolation... - // "interpolation qualification (e.g., flat) and auxiliary qualification (e.g. centroid) may differ. - // These mismatches are allowed between any pair of stages ... - // those provided in the fragment shader supersede those provided in previous stages." - if (!crossStage && - (symbol.getQualifier().centroid != unitSymbol.getQualifier().centroid || - symbol.getQualifier().smooth != unitSymbol.getQualifier().smooth || - symbol.getQualifier().flat != unitSymbol.getQualifier().flat || - symbol.getQualifier().isSample()!= unitSymbol.getQualifier().isSample() || - symbol.getQualifier().isPatch() != unitSymbol.getQualifier().isPatch() || - symbol.getQualifier().isNonPerspective() != unitSymbol.getQualifier().isNonPerspective())) { - error(infoSink, "Interpolation and auxiliary storage qualifiers must match:", unitStage); - writeTypeComparison = true; - printQualifiers = true; - } - - // Memory... - bool memoryQualifierError = false; - if (symbol.getQualifier().coherent != unitSymbol.getQualifier().coherent) { - error(infoSink, "Memory coherent qualifier must match:", unitStage); - memoryQualifierError = true; - } - if (symbol.getQualifier().devicecoherent != unitSymbol.getQualifier().devicecoherent) { - error(infoSink, "Memory devicecoherent qualifier must match:", unitStage); - memoryQualifierError = true; - } - if (symbol.getQualifier().queuefamilycoherent != unitSymbol.getQualifier().queuefamilycoherent) { - error(infoSink, "Memory queuefamilycoherent qualifier must match:", unitStage); - memoryQualifierError = true; - } - if (symbol.getQualifier().workgroupcoherent != unitSymbol.getQualifier().workgroupcoherent) { - error(infoSink, "Memory workgroupcoherent qualifier must match:", unitStage); - memoryQualifierError = true; - } - if (symbol.getQualifier().subgroupcoherent != unitSymbol.getQualifier().subgroupcoherent) { - error(infoSink, "Memory subgroupcoherent qualifier must match:", unitStage); - memoryQualifierError = true; - } - if (symbol.getQualifier().shadercallcoherent != unitSymbol.getQualifier().shadercallcoherent) { - error(infoSink, "Memory shadercallcoherent qualifier must match:", unitStage); - memoryQualifierError = true; - } - if (symbol.getQualifier().nonprivate != unitSymbol.getQualifier().nonprivate) { - error(infoSink, "Memory nonprivate qualifier must match:", unitStage); - memoryQualifierError = true; - } - if (symbol.getQualifier().volatil != unitSymbol.getQualifier().volatil) { - error(infoSink, "Memory volatil qualifier must match:", unitStage); - memoryQualifierError = true; - } - if (symbol.getQualifier().restrict != unitSymbol.getQualifier().restrict) { - error(infoSink, "Memory restrict qualifier must match:", unitStage); - memoryQualifierError = true; - } - if (symbol.getQualifier().readonly != unitSymbol.getQualifier().readonly) { - error(infoSink, "Memory readonly qualifier must match:", unitStage); - memoryQualifierError = true; - } - if (symbol.getQualifier().writeonly != unitSymbol.getQualifier().writeonly) { - error(infoSink, "Memory writeonly qualifier must match:", unitStage); - memoryQualifierError = true; - } - if (memoryQualifierError) { - writeTypeComparison = true; - printQualifiers = true; - } - - // 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. - bool layoutQualifierError = false; - if (symbol.getQualifier().layoutMatrix != unitSymbol.getQualifier().layoutMatrix) { - error(infoSink, "Layout matrix qualifier must match:", unitStage); - layoutQualifierError = true; - } - if (symbol.getQualifier().layoutPacking != unitSymbol.getQualifier().layoutPacking) { - error(infoSink, "Layout packing qualifier must match:", unitStage); - layoutQualifierError = true; - } - if (symbol.getQualifier().hasLocation() && unitSymbol.getQualifier().hasLocation() && symbol.getQualifier().layoutLocation != unitSymbol.getQualifier().layoutLocation) { - error(infoSink, "Layout location qualifier must match:", unitStage); - layoutQualifierError = true; - } - if (symbol.getQualifier().layoutComponent != unitSymbol.getQualifier().layoutComponent) { - error(infoSink, "Layout component qualifier must match:", unitStage); - layoutQualifierError = true; - } - if (symbol.getQualifier().layoutIndex != unitSymbol.getQualifier().layoutIndex) { - error(infoSink, "Layout index qualifier must match:", unitStage); - layoutQualifierError = true; - } - if (symbol.getQualifier().hasBinding() && unitSymbol.getQualifier().hasBinding() && symbol.getQualifier().layoutBinding != unitSymbol.getQualifier().layoutBinding) { - error(infoSink, "Layout binding qualifier must match:", unitStage); - layoutQualifierError = true; - } - if (symbol.getQualifier().hasBinding() && (symbol.getQualifier().layoutOffset != unitSymbol.getQualifier().layoutOffset)) { - error(infoSink, "Layout offset qualifier must match:", unitStage); - layoutQualifierError = true; - } - if (layoutQualifierError) { - writeTypeComparison = true; - printQualifiers = true; - } - - // Initializers have to match, if both are present, and if we don't already know the types don't match - if (! writeTypeComparison && ! errorReported) { - if (! symbol.getConstArray().empty() && ! unitSymbol.getConstArray().empty()) { - if (symbol.getConstArray() != unitSymbol.getConstArray()) { - error(infoSink, "Initializers must match:", unitStage); - infoSink.info << " " << symbol.getName() << "\n"; - } - } - } - - if (writeTypeComparison) { - if (symbol.getType().getBasicType() == EbtBlock && unitSymbol.getType().getBasicType() == EbtBlock && - symbol.getType().getStruct() && unitSymbol.getType().getStruct()) { - if (printType) { - infoSink.info << " " << StageName(getStage()) << " stage: \"" << symbol.getType().getCompleteString(true, printQualifiers, printPrecision, - printType, symbol.getName(), symbol.getType().getTypeName()) << "\"\n"; - infoSink.info << " " << StageName(unitStage) << " stage: \"" << unitSymbol.getType().getCompleteString(true, printQualifiers, printPrecision, - printType, unitSymbol.getName(), unitSymbol.getType().getTypeName()) << "\"\n"; - } else { - infoSink.info << " " << StageName(getStage()) << " stage: Block: " << symbol.getType().getTypeName() << " Instance: " << symbol.getName() - << ": \"" << symbol.getType().getCompleteString(true, printQualifiers, printPrecision, printType) << "\"\n"; - infoSink.info << " " << StageName(unitStage) << " stage: Block: " << unitSymbol.getType().getTypeName() << " Instance: " << unitSymbol.getName() - << ": \"" << unitSymbol.getType().getCompleteString(true, printQualifiers, printPrecision, printType) << "\"\n"; - } - } else { - if (printType) { - infoSink.info << " " << StageName(getStage()) << " stage: \"" - << symbol.getType().getCompleteString(true, printQualifiers, printPrecision, printType, symbol.getName()) << "\"\n"; - infoSink.info << " " << StageName(unitStage) << " stage: \"" - << unitSymbol.getType().getCompleteString(true, printQualifiers, printPrecision, printType, unitSymbol.getName()) << "\"\n"; - } else { - infoSink.info << " " << StageName(getStage()) << " stage: " << symbol.getName() << " \"" - << symbol.getType().getCompleteString(true, printQualifiers, printPrecision, printType) << "\"\n"; - infoSink.info << " " << StageName(unitStage) << " stage: " << unitSymbol.getName() << " \"" - << unitSymbol.getType().getCompleteString(true, printQualifiers, printPrecision, printType) << "\"\n"; - } - } - } -#endif -} - -void TIntermediate::sharedBlockCheck(TInfoSink& infoSink) -{ - bool has_shared_block = false; - bool has_shared_non_block = false; - TIntermSequence& linkObjects = findLinkerObjects()->getSequence(); - for (size_t i = 0; i < linkObjects.size(); ++i) { - const TType& type = linkObjects[i]->getAsTyped()->getType(); - const TQualifier& qualifier = type.getQualifier(); - if (qualifier.storage == glslang::EvqShared) { - if (type.getBasicType() == glslang::EbtBlock) - has_shared_block = true; - else - has_shared_non_block = true; - } - } - if (has_shared_block && has_shared_non_block) - error(infoSink, "cannot mix use of shared variables inside and outside blocks"); -} - -// -// Do final link-time error checking of a complete (merged) intermediate representation. -// (Much error checking was done during merging). -// -// Also, lock in defaults of things not set, including array sizes. -// -void TIntermediate::finalCheck(TInfoSink& infoSink, bool keepUncalled) -{ - if (getTreeRoot() == nullptr) - return; - - if (numEntryPoints < 1) { - if (getSource() == EShSourceGlsl) - error(infoSink, "Missing entry point: Each stage requires one entry point"); - else - warn(infoSink, "Entry point not found"); - } - - // recursion and missing body checking - checkCallGraphCycles(infoSink); - checkCallGraphBodies(infoSink, keepUncalled); - - // overlap/alias/missing I/O, etc. - inOutLocationCheck(infoSink); - -#ifndef GLSLANG_WEB - if (getNumPushConstants() > 1) - error(infoSink, "Only one push_constant block is allowed per stage"); - - // invocations - if (invocations == TQualifier::layoutNotSet) - invocations = 1; - - if (inIoAccessed("gl_ClipDistance") && inIoAccessed("gl_ClipVertex")) - error(infoSink, "Can only use one of gl_ClipDistance or gl_ClipVertex (gl_ClipDistance is preferred)"); - if (inIoAccessed("gl_CullDistance") && inIoAccessed("gl_ClipVertex")) - error(infoSink, "Can only use one of gl_CullDistance or gl_ClipVertex (gl_ClipDistance is preferred)"); - - if (userOutputUsed() && (inIoAccessed("gl_FragColor") || inIoAccessed("gl_FragData"))) - error(infoSink, "Cannot use gl_FragColor or gl_FragData when using user-defined outputs"); - if (inIoAccessed("gl_FragColor") && inIoAccessed("gl_FragData")) - error(infoSink, "Cannot use both gl_FragColor and gl_FragData"); - - for (size_t b = 0; b < xfbBuffers.size(); ++b) { - if (xfbBuffers[b].contains64BitType) - RoundToPow2(xfbBuffers[b].implicitStride, 8); - else if (xfbBuffers[b].contains32BitType) - RoundToPow2(xfbBuffers[b].implicitStride, 4); - else if (xfbBuffers[b].contains16BitType) - RoundToPow2(xfbBuffers[b].implicitStride, 2); - - // "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." - if (xfbBuffers[b].stride != TQualifier::layoutXfbStrideEnd && xfbBuffers[b].implicitStride > xfbBuffers[b].stride) { - error(infoSink, "xfb_stride is too small to hold all buffer entries:"); - infoSink.info.prefix(EPrefixError); - infoSink.info << " xfb_buffer " << (unsigned int)b << ", xfb_stride " << xfbBuffers[b].stride << ", minimum stride needed: " << xfbBuffers[b].implicitStride << "\n"; - } - if (xfbBuffers[b].stride == TQualifier::layoutXfbStrideEnd) - xfbBuffers[b].stride = xfbBuffers[b].implicitStride; - - // "If the buffer is capturing any - // outputs with double-precision or 64-bit integer 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].contains64BitType && ! IsMultipleOfPow2(xfbBuffers[b].stride, 8)) { - error(infoSink, "xfb_stride must be multiple of 8 for buffer holding a double or 64-bit integer:"); - infoSink.info.prefix(EPrefixError); - infoSink.info << " xfb_buffer " << (unsigned int)b << ", xfb_stride " << xfbBuffers[b].stride << "\n"; - } else if (xfbBuffers[b].contains32BitType && ! IsMultipleOfPow2(xfbBuffers[b].stride, 4)) { - error(infoSink, "xfb_stride must be multiple of 4:"); - infoSink.info.prefix(EPrefixError); - infoSink.info << " xfb_buffer " << (unsigned int)b << ", xfb_stride " << xfbBuffers[b].stride << "\n"; - } - // "If the buffer is capturing any - // outputs with half-precision or 16-bit integer components, the stride must be a multiple of 2" - else if (xfbBuffers[b].contains16BitType && ! IsMultipleOfPow2(xfbBuffers[b].stride, 2)) { - error(infoSink, "xfb_stride must be multiple of 2 for buffer holding a half float or 16-bit integer:"); - infoSink.info.prefix(EPrefixError); - 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 - // implementation-dependent constant gl_MaxTransformFeedbackInterleavedComponents." - if (xfbBuffers[b].stride > (unsigned int)(4 * resources->maxTransformFeedbackInterleavedComponents)) { - error(infoSink, "xfb_stride is too large:"); - infoSink.info.prefix(EPrefixError); - infoSink.info << " xfb_buffer " << (unsigned int)b << ", components (1/4 stride) needed are " << xfbBuffers[b].stride/4 << ", gl_MaxTransformFeedbackInterleavedComponents is " << resources->maxTransformFeedbackInterleavedComponents << "\n"; - } - } - - switch (language) { - case EShLangVertex: - break; - case EShLangTessControl: - if (vertices == TQualifier::layoutNotSet) - error(infoSink, "At least one shader must specify an output layout(vertices=...)"); - break; - case EShLangTessEvaluation: - if (getSource() == 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) - error(infoSink, "At least one shader must specify an output layout primitive"); - 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: - sharedBlockCheck(infoSink); - break; - case EShLangRayGen: - case EShLangIntersect: - case EShLangAnyHit: - case EShLangClosestHit: - case EShLangMiss: - case EShLangCallable: - if (numShaderRecordBlocks > 1) - error(infoSink, "Only one shaderRecordNV buffer block is allowed per stage"); - break; - case EShLangMeshNV: - // NV_mesh_shader doesn't allow use of both single-view and per-view builtins. - if (inIoAccessed("gl_Position") && inIoAccessed("gl_PositionPerViewNV")) - error(infoSink, "Can only use one of gl_Position or gl_PositionPerViewNV"); - if (inIoAccessed("gl_ClipDistance") && inIoAccessed("gl_ClipDistancePerViewNV")) - error(infoSink, "Can only use one of gl_ClipDistance or gl_ClipDistancePerViewNV"); - if (inIoAccessed("gl_CullDistance") && inIoAccessed("gl_CullDistancePerViewNV")) - error(infoSink, "Can only use one of gl_CullDistance or gl_CullDistancePerViewNV"); - if (inIoAccessed("gl_Layer") && inIoAccessed("gl_LayerPerViewNV")) - error(infoSink, "Can only use one of gl_Layer or gl_LayerPerViewNV"); - if (inIoAccessed("gl_ViewportMask") && inIoAccessed("gl_ViewportMaskPerViewNV")) - error(infoSink, "Can only use one of gl_ViewportMask or gl_ViewportMaskPerViewNV"); - if (outputPrimitive == ElgNone) - error(infoSink, "At least one shader must specify an output layout primitive"); - if (vertices == TQualifier::layoutNotSet) - error(infoSink, "At least one shader must specify a layout(max_vertices = value)"); - if (primitives == TQualifier::layoutNotSet) - error(infoSink, "At least one shader must specify a layout(max_primitives = value)"); - // fall through - case EShLangTaskNV: - if (numTaskNVBlocks > 1) - error(infoSink, "Only one taskNV interface block is allowed per shader"); - sharedBlockCheck(infoSink); - break; - default: - error(infoSink, "Unknown Stage."); - break; - } - - // Process the tree for any node-specific work. - class TFinalLinkTraverser : public TIntermTraverser { - public: - TFinalLinkTraverser() { } - virtual ~TFinalLinkTraverser() { } - - 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); - } - } finalLinkTraverser; - - treeRoot->traverse(&finalLinkTraverser); -#endif -} - -// -// See if the call graph contains any static recursion, which is disallowed -// by the specification. -// -void TIntermediate::checkCallGraphCycles(TInfoSink& infoSink) -{ - // Clear fields we'll use for this. - for (TGraph::iterator call = callGraph.begin(); call != callGraph.end(); ++call) { - call->visited = false; - call->currentPath = false; - call->errorGiven = false; - } - - // - // Loop, looking for a new connected subgraph. One subgraph is handled per loop iteration. - // - - TCall* newRoot; - do { - // See if we have unvisited parts of the graph. - newRoot = 0; - for (TGraph::iterator call = callGraph.begin(); call != callGraph.end(); ++call) { - if (! call->visited) { - newRoot = &(*call); - break; - } - } - - // If not, we are done. - if (! newRoot) - break; - - // Otherwise, we found a new subgraph, process it: - // 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. - std::list stack; - newRoot->currentPath = true; // currentPath will be true iff it is on the stack - stack.push_back(newRoot); - while (! stack.empty()) { - // get a caller - TCall* call = stack.back(); - - // Add to the stack just one callee. - // This algorithm always terminates, because only !visited and !currentPath causes a push - // and all pushes change currentPath to true, and all pops change visited to true. - TGraph::iterator child = callGraph.begin(); - for (; child != callGraph.end(); ++child) { - - // If we already visited this node, its whole subgraph has already been processed, so skip it. - if (child->visited) - continue; - - if (call->callee == child->caller) { - if (child->currentPath) { - // Then, we found a back edge - if (! child->errorGiven) { - error(infoSink, "Recursion detected:"); - infoSink.info << " " << call->callee << " calling " << child->callee << "\n"; - child->errorGiven = true; - recursive = true; - } - } else { - child->currentPath = true; - stack.push_back(&(*child)); - break; - } - } - } - if (child == callGraph.end()) { - // no more callees, we bottomed out, never look at this node again - stack.back()->currentPath = false; - stack.back()->visited = true; - stack.pop_back(); - } - } // end while, meaning nothing left to process in this subtree - - } while (newRoot); // redundant loop check; should always exit via the 'break' above -} - -// -// See which functions are reachable from the entry point and which have bodies. -// Reachable ones with missing bodies are errors. -// Unreachable bodies are dead code. -// -void TIntermediate::checkCallGraphBodies(TInfoSink& infoSink, bool keepUncalled) -{ - // Clear fields we'll use for this. - for (TGraph::iterator call = callGraph.begin(); call != callGraph.end(); ++call) { - call->visited = false; - call->calleeBodyPosition = -1; - } - - // The top level of the AST includes function definitions (bodies). - // Compare these to function calls in the call graph. - // We'll end up knowing which have bodies, and if so, - // how to map the call-graph node to the location in the AST. - TIntermSequence &functionSequence = getTreeRoot()->getAsAggregate()->getSequence(); - std::vector reachable(functionSequence.size(), true); // so that non-functions are reachable - for (int f = 0; f < (int)functionSequence.size(); ++f) { - glslang::TIntermAggregate* node = functionSequence[f]->getAsAggregate(); - if (node && (node->getOp() == glslang::EOpFunction)) { - if (node->getName().compare(getEntryPointMangledName().c_str()) != 0) - reachable[f] = false; // so that function bodies are unreachable, until proven otherwise - for (TGraph::iterator call = callGraph.begin(); call != callGraph.end(); ++call) { - if (call->callee == node->getName()) - call->calleeBodyPosition = f; - } - } - } - - // Start call-graph traversal by visiting the entry point nodes. - for (TGraph::iterator call = callGraph.begin(); call != callGraph.end(); ++call) { - if (call->caller.compare(getEntryPointMangledName().c_str()) == 0) - call->visited = true; - } - - // Propagate 'visited' through the call-graph to every part of the graph it - // can reach (seeded with the entry-point setting above). - bool changed; - do { - changed = false; - for (auto call1 = callGraph.begin(); call1 != callGraph.end(); ++call1) { - if (call1->visited) { - for (TGraph::iterator call2 = callGraph.begin(); call2 != callGraph.end(); ++call2) { - if (! call2->visited) { - if (call1->callee == call2->caller) { - changed = true; - call2->visited = true; - } - } - } - } - } - } while (changed); - - // Any call-graph node set to visited but without a callee body is an error. - for (TGraph::iterator call = callGraph.begin(); call != callGraph.end(); ++call) { - if (call->visited) { - if (call->calleeBodyPosition == -1) { - error(infoSink, "No function definition (body) found: "); - infoSink.info << " " << call->callee << "\n"; - } else - reachable[call->calleeBodyPosition] = true; - } - } - - // Bodies in the AST not reached by the call graph are dead; - // clear them out, since they can't be reached and also can't - // be translated further due to possibility of being ill defined. - if (! keepUncalled) { - for (int f = 0; f < (int)functionSequence.size(); ++f) { - if (! reachable[f]) - functionSequence[f] = nullptr; - } - functionSequence.erase(std::remove(functionSequence.begin(), functionSequence.end(), nullptr), functionSequence.end()); - } -} - -// -// Satisfy rules for location qualifiers on inputs and outputs -// -void TIntermediate::inOutLocationCheck(TInfoSink& infoSink) -{ - // ES 3.0 requires all outputs to have location qualifiers if there is more than one output - bool fragOutWithNoLocation = false; - int numFragOut = 0; - - // TODO: linker functionality: location collision checking - - TIntermSequence& linkObjects = findLinkerObjects()->getSequence(); - for (size_t i = 0; i < linkObjects.size(); ++i) { - const TType& type = linkObjects[i]->getAsTyped()->getType(); - const TQualifier& qualifier = type.getQualifier(); - if (language == EShLangFragment) { - if (qualifier.storage == EvqVaryingOut && qualifier.builtIn == EbvNone) { - ++numFragOut; - if (!qualifier.hasAnyLocation()) - fragOutWithNoLocation = true; - } - } - } - - if (isEsProfile()) { - if (numFragOut > 1 && fragOutWithNoLocation) - error(infoSink, "when more than one fragment shader output, all must have location qualifiers"); - } -} - -TIntermAggregate* TIntermediate::findLinkerObjects() const -{ - // Get the top-level globals - TIntermSequence& globals = treeRoot->getAsAggregate()->getSequence(); - - // Get the last member of the sequences, expected to be the linker-object lists - assert(globals.back()->getAsAggregate()->getOp() == EOpLinkerObjects); - - return globals.back()->getAsAggregate(); -} - -// 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 -// is more useful, and perhaps the spec should be changed to reflect that. -bool TIntermediate::userOutputUsed() const -{ - const TIntermSequence& linkerObjects = findLinkerObjects()->getSequence(); - - bool found = false; - for (size_t i = 0; i < linkerObjects.size(); ++i) { - const TIntermSymbol& symbolNode = *linkerObjects[i]->getAsSymbolNode(); - if (symbolNode.getQualifier().storage == EvqVaryingOut && - symbolNode.getName().compare(0, 3, "gl_") != 0 && - inIoAccessed(symbolNode.getName())) { - found = true; - break; - } - } - - return found; -} - -// Accumulate locations used for inputs, outputs, and uniforms, payload and callable data -// 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. -// -// typeCollision is set to true if there is no direct collision, but the types in the same location -// are different. -// -int TIntermediate::addUsedLocation(const TQualifier& qualifier, const TType& type, bool& typeCollision) -{ - typeCollision = false; - - int set; - int setRT; - if (qualifier.isPipeInput()) - set = 0; - else if (qualifier.isPipeOutput()) - set = 1; - else if (qualifier.storage == EvqUniform) - set = 2; - else if (qualifier.storage == EvqBuffer) - set = 3; - else if (qualifier.isAnyPayload()) - setRT = 0; - else if (qualifier.isAnyCallable()) - setRT = 1; - else - return -1; - - int size; - if (qualifier.isAnyPayload() || qualifier.isAnyCallable()) { - size = 1; - } else if (qualifier.isUniformOrBuffer() || qualifier.isTaskMemory()) { - if (type.isSizedArray()) - size = type.getCumulativeArraySize(); - else - size = 1; - } else { - // 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); - } else - size = computeTypeLocationSize(type, language); - } - - // Locations, and components within locations. - // - // Almost always, dealing with components means a single location is involved. - // The exception is a dvec3. From the spec: - // - // "A dvec3 will consume all four components of the first location and components 0 and 1 of - // the second location. This leaves components 2 and 3 available for other component-qualified - // declarations." - // - // That means, without ever mentioning a component, a component range - // for a different location gets specified, if it's not a vertex shader input. (!) - // (A vertex shader input will show using only one location, even for a dvec3/4.) - // - // So, for the case of dvec3, we need two independent ioRanges. - // - // For raytracing IO (payloads and callabledata) each declaration occupies a single - // slot irrespective of type. - int collision = -1; // no collision -#ifndef GLSLANG_WEB - if (qualifier.isAnyPayload() || qualifier.isAnyCallable()) { - TRange range(qualifier.layoutLocation, qualifier.layoutLocation); - collision = checkLocationRT(setRT, qualifier.layoutLocation); - if (collision < 0) - usedIoRT[setRT].push_back(range); - } else if (size == 2 && type.getBasicType() == EbtDouble && type.getVectorSize() == 3 && - (qualifier.isPipeInput() || qualifier.isPipeOutput())) { - // Dealing with dvec3 in/out split across two locations. - // Need two io-ranges. - // The case where the dvec3 doesn't start at component 0 was previously caught as overflow. - - // First range: - TRange locationRange(qualifier.layoutLocation, qualifier.layoutLocation); - TRange componentRange(0, 3); - TIoRange range(locationRange, componentRange, type.getBasicType(), 0); - - // check for collisions - collision = checkLocationRange(set, range, type, typeCollision); - if (collision < 0) { - usedIo[set].push_back(range); - - // Second range: - TRange locationRange2(qualifier.layoutLocation + 1, qualifier.layoutLocation + 1); - TRange componentRange2(0, 1); - TIoRange range2(locationRange2, componentRange2, type.getBasicType(), 0); - - // check for collisions - collision = checkLocationRange(set, range2, type, typeCollision); - if (collision < 0) - usedIo[set].push_back(range2); - } - } else -#endif - { - // Not a dvec3 in/out split across two locations, generic path. - // Need a single IO-range block. - - TRange locationRange(qualifier.layoutLocation, qualifier.layoutLocation + size - 1); - TRange componentRange(0, 3); - if (qualifier.hasComponent() || type.getVectorSize() > 0) { - int consumedComponents = type.getVectorSize() * (type.getBasicType() == EbtDouble ? 2 : 1); - if (qualifier.hasComponent()) - componentRange.start = qualifier.layoutComponent; - componentRange.last = componentRange.start + consumedComponents - 1; - } - - // combine location and component ranges - TIoRange range(locationRange, componentRange, type.getBasicType(), qualifier.hasIndex() ? qualifier.getIndex() : 0); - - // check for collisions, except for vertex inputs on desktop targeting OpenGL - if (! (!isEsProfile() && language == EShLangVertex && qualifier.isPipeInput()) || spvVersion.vulkan > 0) - collision = checkLocationRange(set, range, type, typeCollision); - - if (collision < 0) - usedIo[set].push_back(range); - } - - return collision; -} - -// Compare a new (the passed in) 'range' against the existing set, and see -// if there are any collisions. -// -// Returns < 0 if no collision, >= 0 if collision and the value returned is a colliding value. -// -int TIntermediate::checkLocationRange(int set, const TIoRange& range, const TType& type, bool& typeCollision) -{ - for (size_t r = 0; r < usedIo[set].size(); ++r) { - if (range.overlap(usedIo[set][r])) { - // there is a collision; pick one - return std::max(range.location.start, usedIo[set][r].location.start); - } else if (range.location.overlap(usedIo[set][r].location) && type.getBasicType() != usedIo[set][r].basicType) { - // aliased-type mismatch - typeCollision = true; - return std::max(range.location.start, usedIo[set][r].location.start); - } - } - - return -1; // no collision -} - -int TIntermediate::checkLocationRT(int set, int location) { - TRange range(location, location); - for (size_t r = 0; r < usedIoRT[set].size(); ++r) { - if (range.overlap(usedIoRT[set][r])) { - return range.start; - } - } - return -1; // no collision -} - -// 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. -// -int TIntermediate::addUsedOffsets(int binding, int offset, int numOffsets) -{ - TRange bindingRange(binding, binding); - TRange offsetRange(offset, offset + numOffsets - 1); - TOffsetRange range(bindingRange, offsetRange); - - // check for collisions, except for vertex inputs on desktop - for (size_t r = 0; r < usedAtomics.size(); ++r) { - if (range.overlap(usedAtomics[r])) { - // there is a collision; pick one - return std::max(offset, usedAtomics[r].offset.start); - } - } - - usedAtomics.push_back(range); - - return -1; // no collision -} - -// Accumulate used constant_id values. -// -// Return false is one was already used. -bool TIntermediate::addUsedConstantId(int id) -{ - if (usedConstantId.find(id) != usedConstantId.end()) - return false; - - usedConstantId.insert(id); - - return true; -} - -// 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) -{ - // "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() && !type.getQualifier().isPerView()) - return type.getOuterArraySize() * computeTypeLocationSize(elementType, stage); - else { -#ifndef GLSLANG_WEB - // unset perViewNV attributes for arrayed per-view outputs: "perviewNV vec4 v[MAX_VIEWS][3];" - elementType.getQualifier().perViewNV = false; -#endif - return computeTypeLocationSize(elementType, stage); - } - } - - // "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); - } - 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 - // consume only a single location, in all stages." - if (type.isScalar()) - return 1; - if (type.isVector()) { - if (stage == EShLangVertex && type.getQualifier().isPipeInput()) - return 1; - if (type.getBasicType() == EbtDouble && type.getVectorSize() > 2) - return 2; - else - return 1; - } - - // "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 - // for an n-element array of m-component vectors..." - if (type.isMatrix()) { - TType columnType(type, 0); - 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; -} - -#ifndef GLSLANG_WEB - -// 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. -// -int TIntermediate::addXfbBufferOffset(const TType& type) -{ - const TQualifier& qualifier = type.getQualifier(); - - assert(qualifier.hasXfbOffset() && qualifier.hasXfbBuffer()); - TXfbBuffer& buffer = xfbBuffers[qualifier.layoutXfbBuffer]; - - // compute the range - unsigned int size = computeTypeXfbSize(type, buffer.contains64BitType, buffer.contains32BitType, buffer.contains16BitType); - buffer.implicitStride = std::max(buffer.implicitStride, qualifier.layoutXfbOffset + size); - TRange range(qualifier.layoutXfbOffset, qualifier.layoutXfbOffset + size - 1); - - // check for collisions - for (size_t r = 0; r < buffer.ranges.size(); ++r) { - if (range.overlap(buffer.ranges[r])) { - // there is a collision; pick an example to return - return std::max(range.start, buffer.ranges[r].start); - } - } - - buffer.ranges.push_back(range); - - return -1; // no collision -} - -// Recursively figure out how many bytes of xfb buffer are used by the given type. -// Return the size of type, in bytes. -// Sets contains64BitType to true if the type contains a 64-bit data type. -// Sets contains32BitType to true if the type contains a 32-bit data type. -// Sets contains16BitType to true if the type contains a 16-bit data type. -// N.B. Caller must set contains64BitType, contains32BitType, and contains16BitType to false before calling. -unsigned int TIntermediate::computeTypeXfbSize(const TType& type, bool& contains64BitType, bool& contains32BitType, bool& contains16BitType) const -{ - // "...if applied to an aggregate containing a double or 64-bit integer, 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 - // 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.isSizedArray()) { - // TODO: perf: this can be flattened by using getCumulativeArraySize(), and a deref that discards all arrayness - // Unsized array use to xfb should be a compile error. - TType elementType(type, 0); - return type.getOuterArraySize() * computeTypeXfbSize(elementType, contains64BitType, contains16BitType, contains16BitType); - } - - if (type.isStruct()) { - unsigned int size = 0; - bool structContains64BitType = false; - bool structContains32BitType = false; - bool structContains16BitType = false; - for (int member = 0; member < (int)type.getStruct()->size(); ++member) { - TType memberType(type, member); - // "... if applied to - // an aggregate containing a double or 64-bit integer, the offset must also be a multiple of 8, - // and the space taken in the buffer will be a multiple of 8." - bool memberContains64BitType = false; - bool memberContains32BitType = false; - bool memberContains16BitType = false; - int memberSize = computeTypeXfbSize(memberType, memberContains64BitType, memberContains32BitType, memberContains16BitType); - if (memberContains64BitType) { - structContains64BitType = true; - RoundToPow2(size, 8); - } else if (memberContains32BitType) { - structContains32BitType = true; - RoundToPow2(size, 4); - } else if (memberContains16BitType) { - structContains16BitType = true; - RoundToPow2(size, 2); - } - size += memberSize; - } - - if (structContains64BitType) { - contains64BitType = true; - RoundToPow2(size, 8); - } else if (structContains32BitType) { - contains32BitType = true; - RoundToPow2(size, 4); - } else if (structContains16BitType) { - contains16BitType = true; - RoundToPow2(size, 2); - } - return size; - } - - int numComponents {0}; - if (type.isScalar()) - numComponents = 1; - else if (type.isVector()) - numComponents = type.getVectorSize(); - else if (type.isMatrix()) - numComponents = type.getMatrixCols() * type.getMatrixRows(); - else { - assert(0); - numComponents = 1; - } - - if (type.getBasicType() == EbtDouble || type.getBasicType() == EbtInt64 || type.getBasicType() == EbtUint64) { - contains64BitType = true; - return 8 * numComponents; - } else if (type.getBasicType() == EbtFloat16 || type.getBasicType() == EbtInt16 || type.getBasicType() == EbtUint16) { - contains16BitType = true; - return 2 * numComponents; - } else if (type.getBasicType() == EbtInt8 || type.getBasicType() == EbtUint8) - return numComponents; - else { - contains32BitType = true; - return 4 * numComponents; - } -} - -#endif - -const int baseAlignmentVec4Std140 = 16; - -// 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.. -int TIntermediate::getBaseAlignmentScalar(const TType& type, int& size) -{ -#ifdef GLSLANG_WEB - size = 4; return 4; -#endif - - switch (type.getBasicType()) { - case EbtInt64: - case EbtUint64: - case EbtDouble: size = 8; return 8; - case EbtFloat16: size = 2; return 2; - case EbtInt8: - case EbtUint8: size = 1; return 1; - case EbtInt16: - case EbtUint16: size = 2; return 2; - case EbtReference: size = 8; return 8; - default: size = 4; return 4; - } -} - -// 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, -// otherwise it does not, yielding std430 rules. -// -// The size is returned in the 'size' parameter -// -// The stride is only non-0 for arrays or matrices, and is the stride of the -// top-level object nested within the type. E.g., for an array of matrices, -// it is the distances needed between matrices, despite the rules saying the -// stride comes from the flattening down to vectors. -// -// Return value is the alignment of the type. -int TIntermediate::getBaseAlignment(const TType& type, int& size, int& stride, TLayoutPacking layoutPacking, bool rowMajor) -{ - int alignment; - - bool std140 = layoutPacking == glslang::ElpStd140; - // When using the std140 storage layout, structures will be laid out in buffer - // storage with its members stored in monotonically increasing order based on their - // location in the declaration. A structure and each structure member have a base - // offset and a base alignment, from which an aligned offset is computed by rounding - // the base offset up to a multiple of the base alignment. The base offset of the first - // member of a structure is taken from the aligned offset of the structure itself. The - // base offset of all other structure members is derived by taking the offset of the - // last basic machine unit consumed by the previous member and adding one. Each - // structure member is stored in memory at its aligned offset. The members of a top- - // level uniform block are laid out in buffer storage by treating the uniform block as - // a structure with a base offset of zero. - // - // 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 - // machine units, the base alignment is 2N or 4N, respectively. - // - // 3. If the member is a three-component vector with components consuming N - // basic machine units, the base alignment is 4N. - // - // 4. If the member is an array of scalars or vectors, the base alignment and array - // stride are set to match the base alignment of a single array element, according - // to rules (1), (2), and (3), and rounded up to the base alignment of a vec4. The - // array may have padding at the end; the base offset of the member following - // 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 - // components each, according to rule (4). - // - // 6. If the member is an array of S column-major matrices with C columns and - // R rows, the matrix is stored identically to a row of S X C column vectors - // with R components each, according to rule (4). - // - // 7. If the member is a row-major matrix with C columns and R rows, the matrix - // is stored identically to an array of R row vectors with C components each, - // according to rule (4). - // - // 8. If the member is an array of S row-major matrices with C columns and R - // rows, the matrix is stored identically to a row of S X R row vectors with C - // components each, according to rule (4). - // - // 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 - // 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; - // the base offset of the member following the sub-structure is rounded up to - // the next multiple of the base alignment of the structure. - // - // 10. If the member is an array of S structures, the S elements of the array are laid - // out in order, according to rule (9). - // - // Assuming, for rule 10: The stride is the same as the size of an element. - - stride = 0; - int dummyStride; - - // rules 4, 6, 8, and 10 - if (type.isArray()) { - // TODO: perf: this might be flattened by using getCumulativeArraySize(), and a deref that discards all arrayness - TType derefType(type, 0); - alignment = getBaseAlignment(derefType, size, dummyStride, layoutPacking, rowMajor); - if (std140) - alignment = std::max(baseAlignmentVec4Std140, alignment); - RoundToPow2(size, alignment); - stride = size; // uses full matrix size for stride of an array of matrices (not quite what rule 6/8, but what's expected) - // uses the assumption for rule 10 in the comment above - // use one element to represent the last member of SSBO which is unsized array - int arraySize = (type.isUnsizedArray() && (type.getOuterArraySize() == 0)) ? 1 : type.getOuterArraySize(); - size = stride * arraySize; - return alignment; - } - - // rule 9 - if (type.getBasicType() == EbtStruct || type.getBasicType() == EbtBlock) { - const TTypeList& memberList = *type.getStruct(); - - size = 0; - int maxAlignment = std140 ? baseAlignmentVec4Std140 : 0; - for (size_t m = 0; m < memberList.size(); ++m) { - int memberSize; - // 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 = getBaseAlignment(*memberList[m].type, memberSize, dummyStride, layoutPacking, - (subMatrixLayout != ElmNone) ? (subMatrixLayout == ElmRowMajor) : rowMajor); - maxAlignment = std::max(maxAlignment, memberAlignment); - RoundToPow2(size, memberAlignment); - size += memberSize; - } - - // The structure may have padding at the end; the base offset of - // the member following the sub-structure is rounded up to the next - // multiple of the base alignment of the structure. - RoundToPow2(size, maxAlignment); - - return maxAlignment; - } - - // rule 1 - if (type.isScalar()) - return getBaseAlignmentScalar(type, size); - - // rules 2 and 3 - 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: - size *= type.getVectorSize(); - return 4 * scalarAlign; - } - } - - // rules 5 and 7 - 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, layoutPacking, rowMajor); - if (std140) - alignment = std::max(baseAlignmentVec4Std140, alignment); - RoundToPow2(size, alignment); - stride = size; // use intra-matrix stride for stride of a just a matrix - if (rowMajor) - size = stride * type.getMatrixRows(); - else - size = stride * type.getMatrixCols(); - - return alignment; - } - - assert(0); // all cases should be covered above - size = baseAlignmentVec4Std140; - 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; -} - -int TIntermediate::getScalarAlignment(const TType& type, int& size, int& stride, bool rowMajor) -{ - int alignment; - - stride = 0; - int dummyStride; - - if (type.isArray()) { - TType derefType(type, 0); - alignment = getScalarAlignment(derefType, size, dummyStride, rowMajor); - - stride = size; - RoundToPow2(stride, alignment); - - size = stride * (type.getOuterArraySize() - 1) + size; - return alignment; - } - - if (type.getBasicType() == EbtStruct) { - const TTypeList& memberList = *type.getStruct(); - - size = 0; - int maxAlignment = 0; - for (size_t m = 0; m < memberList.size(); ++m) { - int memberSize; - // 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 = getScalarAlignment(*memberList[m].type, memberSize, dummyStride, - (subMatrixLayout != ElmNone) ? (subMatrixLayout == ElmRowMajor) : rowMajor); - maxAlignment = std::max(maxAlignment, memberAlignment); - RoundToPow2(size, memberAlignment); - size += memberSize; - } - - return maxAlignment; - } - - if (type.isScalar()) - return getBaseAlignmentScalar(type, size); - - if (type.isVector()) { - int scalarAlign = getBaseAlignmentScalar(type, size); - - size *= type.getVectorSize(); - return scalarAlign; - } - - if (type.isMatrix()) { - TType derefType(type, 0, rowMajor); - - alignment = getScalarAlignment(derefType, size, dummyStride, rowMajor); - - stride = size; // use intra-matrix stride for stride of a just a matrix - if (rowMajor) - size = stride * type.getMatrixRows(); - else - size = stride * type.getMatrixCols(); - - return alignment; - } - - assert(0); // all cases should be covered above - size = 1; - return 1; -} - -int TIntermediate::getMemberAlignment(const TType& type, int& size, int& stride, TLayoutPacking layoutPacking, bool rowMajor) -{ - if (layoutPacking == glslang::ElpScalar) { - return getScalarAlignment(type, size, stride, rowMajor); - } else { - return getBaseAlignment(type, size, stride, layoutPacking, rowMajor); - } -} - -// shared calculation by getOffset and getOffsets -void TIntermediate::updateOffset(const TType& parentType, const TType& memberType, int& offset, int& memberSize) -{ - int dummyStride; - - // modify just the children's view of matrix layout, if there is one for this member - TLayoutMatrix subMatrixLayout = memberType.getQualifier().layoutMatrix; - int memberAlignment = getMemberAlignment(memberType, memberSize, dummyStride, - parentType.getQualifier().layoutPacking, - subMatrixLayout != ElmNone - ? subMatrixLayout == ElmRowMajor - : parentType.getQualifier().layoutMatrix == ElmRowMajor); - RoundToPow2(offset, memberAlignment); -} - -// Lookup or calculate the offset of a block member, using the recursively -// defined block offset rules. -int TIntermediate::getOffset(const TType& type, int index) -{ - const TTypeList& memberList = *type.getStruct(); - - // Don't calculate offset if one is present, it could be user supplied - // and different than what would be calculated. That is, this is faster, - // but not just an optimization. - if (memberList[index].type->getQualifier().hasOffset()) - return memberList[index].type->getQualifier().layoutOffset; - - int memberSize = 0; - int offset = 0; - for (int m = 0; m <= index; ++m) { - updateOffset(type, *memberList[m].type, offset, memberSize); - - if (m < index) - offset += memberSize; - } - - return offset; -} - -// Calculate the block data size. -// Block arrayness is not taken into account, each element is backed by a separate buffer. -int TIntermediate::getBlockSize(const TType& blockType) -{ - const TTypeList& memberList = *blockType.getStruct(); - int lastIndex = (int)memberList.size() - 1; - int lastOffset = getOffset(blockType, lastIndex); - - int lastMemberSize; - int dummyStride; - getMemberAlignment(*memberList[lastIndex].type, lastMemberSize, dummyStride, - blockType.getQualifier().layoutPacking, - blockType.getQualifier().layoutMatrix == ElmRowMajor); - - return lastOffset + lastMemberSize; -} - -int TIntermediate::computeBufferReferenceTypeSize(const TType& type) -{ - assert(type.isReference()); - int size = getBlockSize(*type.getReferentType()); - - int align = type.getBufferReferenceAlignment(); - - if (align) { - size = (size + align - 1) & ~(align-1); - } - - return size; -} - -#ifndef GLSLANG_WEB -bool TIntermediate::isIoResizeArray(const TType& type, EShLanguage language) { - return type.isArray() && - ((language == EShLangGeometry && type.getQualifier().storage == EvqVaryingIn) || - (language == EShLangTessControl && (type.getQualifier().storage == EvqVaryingIn || type.getQualifier().storage == EvqVaryingOut) && - ! type.getQualifier().patch) || - (language == EShLangTessEvaluation && type.getQualifier().storage == EvqVaryingIn) || - (language == EShLangFragment && type.getQualifier().storage == EvqVaryingIn && - type.getQualifier().pervertexNV) || - (language == EShLangMeshNV && type.getQualifier().storage == EvqVaryingOut && - !type.getQualifier().perTaskNV)); -} -#endif // not GLSLANG_WEB - -} // end namespace glslang diff --git a/deps/glslang/glslang/MachineIndependent/localintermediate.h b/deps/glslang/glslang/MachineIndependent/localintermediate.h deleted file mode 100644 index 581e9aa2..00000000 --- a/deps/glslang/glslang/MachineIndependent/localintermediate.h +++ /dev/null @@ -1,1205 +0,0 @@ -// -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2016 LunarG, Inc. -// Copyright (C) 2017 ARM Limited. -// Copyright (C) 2015-2018 Google, Inc. -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// Neither the name of 3Dlabs Inc. Ltd. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -// - -#ifndef _LOCAL_INTERMEDIATE_INCLUDED_ -#define _LOCAL_INTERMEDIATE_INCLUDED_ - -#include "../Include/intermediate.h" -#include "../Public/ShaderLang.h" -#include "Versions.h" - -#include -#include -#include -#include -#include - -class TInfoSink; - -namespace glslang { - -struct TMatrixSelector { - int coord1; // stay agnostic about column/row; this is parse order - int coord2; -}; - -typedef int TVectorSelector; - -const int MaxSwizzleSelectors = 4; - -template -class TSwizzleSelectors { -public: - TSwizzleSelectors() : size_(0) { } - - void push_back(selectorType comp) - { - 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]; - } - -private: - int size_; - selectorType components[MaxSwizzleSelectors]; -}; - -// -// Some helper structures for TIntermediate. Their contents are encapsulated -// by TIntermediate. -// - -// Used for call-graph algorithms for detecting recursion, missing bodies, and dead bodies. -// A "call" is a pair: . -// There can be duplicates. General assumption is the list is small. -struct TCall { - TCall(const TString& pCaller, const TString& pCallee) : caller(pCaller), callee(pCallee) { } - TString caller; - TString callee; - bool visited; - bool currentPath; - bool errorGiven; - int calleeBodyPosition; -}; - -// A generic 1-D range. -struct TRange { - TRange(int start, int last) : start(start), last(last) { } - bool overlap(const TRange& rhs) const - { - return last >= rhs.start && start <= rhs.last; - } - int start; - int last; -}; - -// An IO range is a 3-D rectangle; the set of (location, component, index) triples all lying -// within the same location range, component range, and index value. Locations don't alias unless -// all other dimensions of their range overlap. -struct TIoRange { - TIoRange(TRange location, TRange component, TBasicType basicType, int index) - : location(location), component(component), basicType(basicType), index(index) { } - bool overlap(const TIoRange& rhs) const - { - return location.overlap(rhs.location) && component.overlap(rhs.component) && index == rhs.index; - } - TRange location; - TRange component; - TBasicType basicType; - int index; -}; - -// An offset range is a 2-D rectangle; the set of (binding, offset) pairs all lying -// within the same binding and offset range. -struct TOffsetRange { - TOffsetRange(TRange binding, TRange offset) - : binding(binding), offset(offset) { } - bool overlap(const TOffsetRange& rhs) const - { - return binding.overlap(rhs.binding) && offset.overlap(rhs.offset); - } - TRange binding; - TRange offset; -}; - -#ifndef GLSLANG_WEB -// Things that need to be tracked per xfb buffer. -struct TXfbBuffer { - TXfbBuffer() : stride(TQualifier::layoutXfbStrideEnd), implicitStride(0), contains64BitType(false), - contains32BitType(false), contains16BitType(false) { } - std::vector ranges; // byte offsets that have already been assigned - unsigned int stride; - unsigned int implicitStride; - bool contains64BitType; - bool contains32BitType; - bool contains16BitType; -}; -#endif - -// Track a set of strings describing how the module was processed. -// This includes command line options, transforms, etc., ideally inclusive enough -// to reproduce the steps used to transform the input source to the output. -// E.g., see SPIR-V OpModuleProcessed. -// Each "process" or "transform" uses is expressed in 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; - -// -// Texture and Sampler transformation mode. -// -enum ComputeDerivativeMode { - LayoutDerivativeNone, // default layout as SPV_NV_compute_shader_derivatives not enabled - LayoutDerivativeGroupQuads, // derivative_group_quadsNV - LayoutDerivativeGroupLinear, // derivative_group_linearNV -}; - -class TIdMaps { -public: - TMap& operator[](long long i) { return maps[i]; } - const TMap& operator[](long long i) const { return maps[i]; } -private: - TMap maps[EsiCount]; -}; - -class TNumericFeatures { -public: - TNumericFeatures() : features(0) { } - TNumericFeatures(const TNumericFeatures&) = delete; - TNumericFeatures& operator=(const TNumericFeatures&) = delete; - typedef enum : unsigned int { - shader_explicit_arithmetic_types = 1 << 0, - shader_explicit_arithmetic_types_int8 = 1 << 1, - shader_explicit_arithmetic_types_int16 = 1 << 2, - shader_explicit_arithmetic_types_int32 = 1 << 3, - shader_explicit_arithmetic_types_int64 = 1 << 4, - shader_explicit_arithmetic_types_float16 = 1 << 5, - shader_explicit_arithmetic_types_float32 = 1 << 6, - shader_explicit_arithmetic_types_float64 = 1 << 7, - shader_implicit_conversions = 1 << 8, - gpu_shader_fp64 = 1 << 9, - gpu_shader_int16 = 1 << 10, - gpu_shader_half_float = 1 << 11, - } feature; - void insert(feature f) { features |= f; } - void erase(feature f) { features &= ~f; } - bool contains(feature f) const { return (features & f) != 0; } -private: - unsigned int features; -}; - -// MustBeAssigned wraps a T, asserting that it has been assigned with -// operator =() before attempting to read with operator T() or operator ->(). -// Used to catch cases where fields are read before they have been assigned. -template -class MustBeAssigned -{ -public: - MustBeAssigned() = default; - MustBeAssigned(const T& v) : value(v) {} - operator const T&() const { assert(isSet); return value; } - const T* operator ->() const { assert(isSet); return &value; } - MustBeAssigned& operator = (const T& v) { value = v; isSet = true; return *this; } -private: - T value; - bool isSet = false; -}; - -// -// Set of helper functions to help parse and build the tree. -// -class TIntermediate { -public: - explicit TIntermediate(EShLanguage l, int v = 0, EProfile p = ENoProfile) : - language(l), -#ifndef GLSLANG_ANGLE - profile(p), version(v), -#endif - treeRoot(0), - resources(TBuiltInResource{}), - numEntryPoints(0), numErrors(0), numPushConstants(0), recursive(false), - invertY(false), - dxPositionW(false), - enhancedMsgs(false), - useStorageBuffer(false), - invariantAll(false), - nanMinMaxClamp(false), - depthReplacing(false), - uniqueId(0), - globalUniformBlockName(""), - atomicCounterBlockName(""), - globalUniformBlockSet(TQualifier::layoutSetEnd), - globalUniformBlockBinding(TQualifier::layoutBindingEnd), - atomicCounterBlockSet(TQualifier::layoutSetEnd) -#ifndef GLSLANG_WEB - , - implicitThisName("@this"), implicitCounterName("@count"), - source(EShSourceNone), - useVulkanMemoryModel(false), - invocations(TQualifier::layoutNotSet), vertices(TQualifier::layoutNotSet), - inputPrimitive(ElgNone), outputPrimitive(ElgNone), - pixelCenterInteger(false), originUpperLeft(false),texCoordBuiltinRedeclared(false), - vertexSpacing(EvsNone), vertexOrder(EvoNone), interlockOrdering(EioNone), pointMode(false), earlyFragmentTests(false), - postDepthCoverage(false), depthLayout(EldNone), - hlslFunctionality1(false), - blendEquations(0), xfbMode(false), multiStream(false), - layoutOverrideCoverage(false), - geoPassthroughEXT(false), - numShaderRecordBlocks(0), - computeDerivativeMode(LayoutDerivativeNone), - primitives(TQualifier::layoutNotSet), - numTaskNVBlocks(0), - layoutPrimitiveCulling(false), - autoMapBindings(false), - autoMapLocations(false), - flattenUniformArrays(false), - useUnknownFormat(false), - hlslOffsets(false), - hlslIoMapping(false), - useVariablePointers(false), - textureSamplerTransformMode(EShTexSampTransKeep), - needToLegalize(false), - binaryDoubleOutput(false), - subgroupUniformControlFlow(false), - usePhysicalStorageBuffer(false), - spirvRequirement(nullptr), - spirvExecutionMode(nullptr), - uniformLocationBase(0) -#endif - { - localSize[0] = 1; - localSize[1] = 1; - localSize[2] = 1; - localSizeNotDefault[0] = false; - localSizeNotDefault[1] = false; - localSizeNotDefault[2] = false; - localSizeSpecId[0] = TQualifier::layoutNotSet; - localSizeSpecId[1] = TQualifier::layoutNotSet; - localSizeSpecId[2] = TQualifier::layoutNotSet; -#ifndef GLSLANG_WEB - xfbBuffers.resize(TQualifier::layoutXfbBufferEnd); - shiftBinding.fill(0); -#endif - } - - void setVersion(int v) - { -#ifndef GLSLANG_ANGLE - version = v; -#endif - } - void setProfile(EProfile p) - { -#ifndef GLSLANG_ANGLE - profile = p; -#endif - } - - int getVersion() const { return version; } - 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 SPV - switch (spvVersion.spv) { - case 0: - break; - case EShTargetSpv_1_0: - break; - case EShTargetSpv_1_1: - processes.addProcess("target-env spirv1.1"); - break; - case EShTargetSpv_1_2: - processes.addProcess("target-env spirv1.2"); - break; - case EShTargetSpv_1_3: - processes.addProcess("target-env spirv1.3"); - break; - case EShTargetSpv_1_4: - processes.addProcess("target-env spirv1.4"); - break; - case EShTargetSpv_1_5: - processes.addProcess("target-env spirv1.5"); - break; - case EShTargetSpv_1_6: - processes.addProcess("target-env spirv1.6"); - break; - default: - processes.addProcess("target-env spirvUnknown"); - break; - } - - // target-environment processes - switch (spvVersion.vulkan) { - case 0: - break; - case EShTargetVulkan_1_0: - processes.addProcess("target-env vulkan1.0"); - break; - case EShTargetVulkan_1_1: - processes.addProcess("target-env vulkan1.1"); - break; - case EShTargetVulkan_1_2: - processes.addProcess("target-env vulkan1.2"); - break; - case EShTargetVulkan_1_3: - processes.addProcess("target-env vulkan1.3"); - break; - default: - processes.addProcess("target-env vulkanUnknown"); - break; - } - 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); } - const std::set& getRequestedExtensions() const { return requestedExtensions; } - bool isRayTracingStage() const { - return language >= EShLangRayGen && language <= EShLangCallableNV; - } - - void setTreeRoot(TIntermNode* r) { treeRoot = r; } - TIntermNode* getTreeRoot() const { return treeRoot; } - void incrementEntryPointCount() { ++numEntryPoints; } - int getNumEntryPoints() const { return numEntryPoints; } - int getNumErrors() const { return numErrors; } - void addPushConstantCount() { ++numPushConstants; } - void setLimits(const TBuiltInResource& r) { resources = r; } - const TBuiltInResource& getLimits() const { return resources; } - - bool postProcess(TIntermNode*, EShLanguage); - void removeTree(); - - 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 setInvertY(bool invert) - { - invertY = invert; - if (invertY) - processes.addProcess("invert-y"); - } - bool getInvertY() const { return invertY; } - - void setDxPositionW(bool dxPosW) - { - dxPositionW = dxPosW; - if (dxPositionW) - processes.addProcess("dx-position-w"); - } - bool getDxPositionW() const { return dxPositionW; } - - void setEnhancedMsgs() - { - enhancedMsgs = true; - } - bool getEnhancedMsgs() const { return enhancedMsgs && source == EShSourceGlsl; } - -#ifdef ENABLE_HLSL - void setSource(EShSource s) { source = s; } - EShSource getSource() const { return source; } -#else - void setSource(EShSource s) { assert(s == EShSourceGlsl); (void)s; } - EShSource getSource() const { return EShSourceGlsl; } -#endif - - bool isRecursive() const { return recursive; } - - TIntermSymbol* addSymbol(const TVariable&); - TIntermSymbol* addSymbol(const TVariable&, const TSourceLoc&); - TIntermSymbol* addSymbol(const TType&, const TSourceLoc&); - TIntermSymbol* addSymbol(const TIntermSymbol&); - TIntermTyped* addConversion(TOperator, const TType&, TIntermTyped*); - std::tuple addPairConversion(TOperator op, TIntermTyped* node0, TIntermTyped* node1); - TIntermTyped* addUniShapeConversion(TOperator, const TType&, TIntermTyped*); - TIntermTyped* addConversion(TBasicType convertTo, TIntermTyped* node) const; - void addBiShapeConversion(TOperator, TIntermTyped*& lhsNode, TIntermTyped*& rhsNode); - TIntermTyped* addShapeConversion(const TType&, TIntermTyped*); - TIntermTyped* addBinaryMath(TOperator, TIntermTyped* left, TIntermTyped* right, const TSourceLoc&); - TIntermTyped* addAssign(TOperator op, TIntermTyped* left, TIntermTyped* right, const TSourceLoc&); - TIntermTyped* addIndex(TOperator op, TIntermTyped* base, TIntermTyped* index, const TSourceLoc&); - TIntermTyped* addUnaryMath(TOperator, TIntermTyped* child, const 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&); - TIntermAggregate* makeAggregate(TIntermNode* node); - TIntermAggregate* makeAggregate(TIntermNode* node, const TSourceLoc&); - TIntermAggregate* makeAggregate(const TSourceLoc&); - TIntermTyped* setAggregateOperator(TIntermNode*, TOperator, const TType& type, const TSourceLoc&); - bool areAllChildConst(TIntermAggregate* aggrNode); - 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&, TIntermLoop*&); - TIntermBranch* addBranch(TOperator, const TSourceLoc&); - TIntermBranch* addBranch(TOperator, TIntermTyped*, 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. - TIntermBinary* addBinaryNode(TOperator op, TIntermTyped* left, TIntermTyped* right, const TSourceLoc&) const; - TIntermBinary* addBinaryNode(TOperator op, TIntermTyped* left, TIntermTyped* right, const TSourceLoc&, - const TType&) const; - TIntermUnary* addUnaryNode(TOperator op, TIntermTyped* child, const TSourceLoc&) const; - TIntermUnary* addUnaryNode(TOperator op, TIntermTyped* child, const TSourceLoc&, const TType&) 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&); - - // Tree ops - static const TIntermTyped* findLValueBase(const TIntermTyped*, bool swizzleOkay , bool BufferReferenceOk = false); - - // Linkage related - void addSymbolLinkageNodes(TIntermAggregate*& linkage, EShLanguage, TSymbolTable&); - void addSymbolLinkageNode(TIntermAggregate*& linkage, const TSymbol&); - TIntermAggregate* findLinkerObjects() const; - - void setGlobalUniformBlockName(const char* name) { globalUniformBlockName = std::string(name); } - const char* getGlobalUniformBlockName() const { return globalUniformBlockName.c_str(); } - void setGlobalUniformSet(unsigned int set) { globalUniformBlockSet = set; } - unsigned int getGlobalUniformSet() const { return globalUniformBlockSet; } - void setGlobalUniformBinding(unsigned int binding) { globalUniformBlockBinding = binding; } - unsigned int getGlobalUniformBinding() const { return globalUniformBlockBinding; } - - void setAtomicCounterBlockName(const char* name) { atomicCounterBlockName = std::string(name); } - const char* getAtomicCounterBlockName() const { return atomicCounterBlockName.c_str(); } - void setAtomicCounterBlockSet(unsigned int set) { atomicCounterBlockSet = set; } - unsigned int getAtomicCounterBlockSet() const { return atomicCounterBlockSet; } - - - void setUseStorageBuffer() { useStorageBuffer = true; } - bool usingStorageBuffer() const { return useStorageBuffer; } - void setInvariantAll() { invariantAll = true; } - bool isInvariantAll() const { return invariantAll; } - void setDepthReplacing() { depthReplacing = true; } - bool isDepthReplacing() const { return depthReplacing; } - bool setLocalSize(int dim, int size) - { - if (localSizeNotDefault[dim]) - return size == localSize[dim]; - localSizeNotDefault[dim] = true; - localSize[dim] = size; - return true; - } - unsigned int getLocalSize(int dim) const { return localSize[dim]; } - bool isLocalSizeSet() const - { - // Return true if any component has been set (i.e. any component is not default). - return localSizeNotDefault[0] || localSizeNotDefault[1] || localSizeNotDefault[2]; - } - bool setLocalSizeSpecId(int dim, int id) - { - if (localSizeSpecId[dim] != TQualifier::layoutNotSet) - return id == localSizeSpecId[dim]; - localSizeSpecId[dim] = id; - return true; - } - int getLocalSizeSpecId(int dim) const { return localSizeSpecId[dim]; } - bool isLocalSizeSpecialized() const - { - // Return true if any component has been specialized. - return localSizeSpecId[0] != TQualifier::layoutNotSet || - localSizeSpecId[1] != TQualifier::layoutNotSet || - localSizeSpecId[2] != TQualifier::layoutNotSet; - } -#ifdef GLSLANG_WEB - void output(TInfoSink&, bool tree) { } - - bool isEsProfile() const { return false; } - bool getXfbMode() const { return false; } - bool isMultiStream() const { return false; } - TLayoutGeometry getOutputPrimitive() const { return ElgNone; } - bool getPostDepthCoverage() const { return false; } - bool getEarlyFragmentTests() const { return false; } - TLayoutDepth getDepth() const { return EldNone; } - bool getPixelCenterInteger() const { return false; } - void setOriginUpperLeft() { } - bool getOriginUpperLeft() const { return true; } - TInterlockOrdering getInterlockOrdering() const { return EioNone; } - - bool getAutoMapBindings() const { return false; } - bool getAutoMapLocations() const { return false; } - int getNumPushConstants() const { return 0; } - void addShaderRecordCount() { } - void addTaskNVCount() { } - void setUseVulkanMemoryModel() { } - bool usingVulkanMemoryModel() const { return false; } - bool usingPhysicalStorageBuffer() const { return false; } - bool usingVariablePointers() const { return false; } - unsigned getXfbStride(int buffer) const { return 0; } - bool hasLayoutDerivativeModeNone() const { return false; } - ComputeDerivativeMode getLayoutDerivativeModeNone() const { return LayoutDerivativeNone; } -#else - void output(TInfoSink&, bool tree); - - bool isEsProfile() const { return profile == EEsProfile; } - - 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; } - -#ifdef ENABLE_HLSL - void setFlattenUniformArrays(bool flatten) - { - flattenUniformArrays = flatten; - if (flattenUniformArrays) - processes.addProcess("flatten-uniform-arrays"); - } - bool getFlattenUniformArrays() const { return flattenUniformArrays; } -#endif - void setNoStorageFormat(bool b) - { - useUnknownFormat = b; - if (useUnknownFormat) - processes.addProcess("no-storage-format"); - } - bool getNoStorageFormat() const { return useUnknownFormat; } - void setUseVulkanMemoryModel() - { - useVulkanMemoryModel = true; - processes.addProcess("use-vulkan-memory-model"); - } - bool usingVulkanMemoryModel() const { return useVulkanMemoryModel; } - void setUsePhysicalStorageBuffer() - { - usePhysicalStorageBuffer = true; - } - bool usingPhysicalStorageBuffer() const { return usePhysicalStorageBuffer; } - void setUseVariablePointers() - { - useVariablePointers = true; - processes.addProcess("use-variable-pointers"); - } - bool usingVariablePointers() const { return useVariablePointers; } - -#ifdef ENABLE_HLSL - 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; - } -#endif - - void setTextureSamplerTransformMode(EShTextureSamplerTransformMode mode) { textureSamplerTransformMode = mode; } - int getNumPushConstants() const { return numPushConstants; } - void addShaderRecordCount() { ++numShaderRecordBlocks; } - void addTaskNVCount() { ++numTaskNVBlocks; } - - bool setInvocations(int i) - { - if (invocations != TQualifier::layoutNotSet) - return invocations == i; - invocations = i; - return true; - } - int getInvocations() const { return invocations; } - bool setVertices(int m) - { - if (vertices != TQualifier::layoutNotSet) - return vertices == m; - vertices = m; - return true; - } - int getVertices() const { return vertices; } - bool setInputPrimitive(TLayoutGeometry p) - { - if (inputPrimitive != ElgNone) - return inputPrimitive == p; - inputPrimitive = p; - return true; - } - TLayoutGeometry getInputPrimitive() const { return inputPrimitive; } - bool setVertexSpacing(TVertexSpacing s) - { - if (vertexSpacing != EvsNone) - return vertexSpacing == s; - vertexSpacing = s; - return true; - } - TVertexSpacing getVertexSpacing() const { return vertexSpacing; } - bool setVertexOrder(TVertexOrder o) - { - if (vertexOrder != EvoNone) - return vertexOrder == o; - vertexOrder = o; - return true; - } - TVertexOrder getVertexOrder() const { return vertexOrder; } - void setPointMode() { pointMode = true; } - bool getPointMode() const { return pointMode; } - - bool setInterlockOrdering(TInterlockOrdering o) - { - if (interlockOrdering != EioNone) - return interlockOrdering == o; - interlockOrdering = o; - return true; - } - TInterlockOrdering getInterlockOrdering() const { return interlockOrdering; } - - void setXfbMode() { xfbMode = true; } - bool getXfbMode() const { return xfbMode; } - void setMultiStream() { multiStream = true; } - bool isMultiStream() const { return multiStream; } - bool setOutputPrimitive(TLayoutGeometry p) - { - if (outputPrimitive != ElgNone) - return outputPrimitive == p; - outputPrimitive = p; - return true; - } - TLayoutGeometry getOutputPrimitive() const { return outputPrimitive; } - void setPostDepthCoverage() { postDepthCoverage = true; } - bool getPostDepthCoverage() const { return postDepthCoverage; } - void setEarlyFragmentTests() { earlyFragmentTests = true; } - bool getEarlyFragmentTests() const { return earlyFragmentTests; } - bool setDepth(TLayoutDepth d) - { - if (depthLayout != EldNone) - return depthLayout == d; - depthLayout = d; - return true; - } - TLayoutDepth getDepth() const { return depthLayout; } - void setOriginUpperLeft() { originUpperLeft = true; } - bool getOriginUpperLeft() const { return originUpperLeft; } - void setPixelCenterInteger() { pixelCenterInteger = true; } - bool getPixelCenterInteger() const { return pixelCenterInteger; } - void setTexCoordRedeclared() { texCoordBuiltinRedeclared = true; } - bool getTexCoordRedeclared() const { return texCoordBuiltinRedeclared; } - void addBlendEquation(TBlendEquationShift b) { blendEquations |= (1 << b); } - unsigned int getBlendEquations() const { return blendEquations; } - bool setXfbBufferStride(int buffer, unsigned stride) - { - if (xfbBuffers[buffer].stride != TQualifier::layoutXfbStrideEnd) - return xfbBuffers[buffer].stride == stride; - 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& contains64BitType, bool& contains32BitType, bool& contains16BitType) const; - unsigned int computeTypeXfbSize(const TType&, bool& contains64BitType) const; - void setLayoutOverrideCoverage() { layoutOverrideCoverage = true; } - bool getLayoutOverrideCoverage() const { return layoutOverrideCoverage; } - void setGeoPassthroughEXT() { geoPassthroughEXT = true; } - bool getGeoPassthroughEXT() const { return geoPassthroughEXT; } - void setLayoutDerivativeMode(ComputeDerivativeMode mode) { computeDerivativeMode = mode; } - bool hasLayoutDerivativeModeNone() const { return computeDerivativeMode != LayoutDerivativeNone; } - ComputeDerivativeMode getLayoutDerivativeModeNone() const { return computeDerivativeMode; } - void setLayoutPrimitiveCulling() { layoutPrimitiveCulling = true; } - bool getLayoutPrimitiveCulling() const { return layoutPrimitiveCulling; } - bool setPrimitives(int m) - { - if (primitives != TQualifier::layoutNotSet) - return primitives == m; - primitives = m; - return true; - } - int getPrimitives() const { return primitives; } - const char* addSemanticName(const TString& name) - { - return semanticNameSet.insert(name).first->c_str(); - } - void addUniformLocationOverride(const char* nameStr, int location) - { - std::string name = nameStr; - uniformLocationOverrides[name] = location; - } - - int getUniformLocationOverride(const char* nameStr) const - { - std::string name = nameStr; - auto pos = uniformLocationOverrides.find(name); - if (pos == uniformLocationOverrides.end()) - return -1; - else - return pos->second; - } - - void setUniformLocationBase(int base) { uniformLocationBase = base; } - int getUniformLocationBase() const { return uniformLocationBase; } - - void setNeedsLegalization() { needToLegalize = true; } - bool needsLegalization() const { return needToLegalize; } - - void setBinaryDoubleOutput() { binaryDoubleOutput = true; } - bool getBinaryDoubleOutput() { return binaryDoubleOutput; } - - void setSubgroupUniformControlFlow() { subgroupUniformControlFlow = true; } - bool getSubgroupUniformControlFlow() const { return subgroupUniformControlFlow; } - - // GL_EXT_spirv_intrinsics - void insertSpirvRequirement(const TSpirvRequirement* spirvReq); - bool hasSpirvRequirement() const { return spirvRequirement != nullptr; } - const TSpirvRequirement& getSpirvRequirement() const { return *spirvRequirement; } - void insertSpirvExecutionMode(int executionMode, const TIntermAggregate* args = nullptr); - void insertSpirvExecutionModeId(int executionMode, const TIntermAggregate* args); - bool hasSpirvExecutionMode() const { return spirvExecutionMode != nullptr; } - const TSpirvExecutionMode& getSpirvExecutionMode() const { return *spirvExecutionMode; } -#endif // GLSLANG_WEB - - void addBlockStorageOverride(const char* nameStr, TBlockStorageClass backing) - { - std::string name(nameStr); - blockBackingOverrides[name] = backing; - } - TBlockStorageClass getBlockStorageOverride(const char* nameStr) const - { - std::string name = nameStr; - auto pos = blockBackingOverrides.find(name); - if (pos == blockBackingOverrides.end()) - return EbsNone; - else - return pos->second; - } -#ifdef ENABLE_HLSL - void setHlslFunctionality1() { hlslFunctionality1 = true; } - bool getHlslFunctionality1() const { return hlslFunctionality1; } - void setHlslOffsets() - { - hlslOffsets = true; - if (hlslOffsets) - processes.addProcess("hlsl-offsets"); - } - bool usingHlslOffsets() const { return hlslOffsets; } - void setHlslIoMapping(bool b) - { - hlslIoMapping = b; - if (hlslIoMapping) - processes.addProcess("hlsl-iomap"); - } - bool usingHlslIoMapping() { return hlslIoMapping; } -#else - bool getHlslFunctionality1() const { return false; } - bool usingHlslOffsets() const { return false; } - bool usingHlslIoMapping() { return false; } -#endif - - bool usingScalarBlockLayout() const { - for (auto extIt = requestedExtensions.begin(); extIt != requestedExtensions.end(); ++extIt) { - if (*extIt == E_GL_EXT_scalar_block_layout) - return true; - } - return false; - } - - bool IsRequestedExtension(const char* extension) const - { - return (requestedExtensions.find(extension) != requestedExtensions.end()); - } - - void addToCallGraph(TInfoSink&, const TString& caller, const TString& callee); - void merge(TInfoSink&, TIntermediate&); - void finalCheck(TInfoSink&, bool keepUncalled); - - void mergeGlobalUniformBlocks(TInfoSink& infoSink, TIntermediate& unit, bool mergeExistingOnly); - void mergeUniformObjects(TInfoSink& infoSink, TIntermediate& unit); - void checkStageIO(TInfoSink&, TIntermediate&); - - bool buildConvertOp(TBasicType dst, TBasicType src, TOperator& convertOp) const; - TIntermTyped* createConversion(TBasicType convertTo, TIntermTyped* node) const; - - void addIoAccessed(const TString& name) { ioAccessed.insert(name); } - bool inIoAccessed(const TString& name) const { return ioAccessed.find(name) != ioAccessed.end(); } - - int addUsedLocation(const TQualifier&, const TType&, bool& typeCollision); - int checkLocationRange(int set, const TIoRange& range, const TType&, bool& typeCollision); - int checkLocationRT(int set, int location); - int addUsedOffsets(int binding, int offset, int numOffsets); - bool addUsedConstantId(int id); - static int computeTypeLocationSize(const TType&, EShLanguage); - static int computeTypeUniformLocationSize(const TType&); - - static int getBaseAlignmentScalar(const TType&, int& size); - static int getBaseAlignment(const TType&, int& size, int& stride, TLayoutPacking layoutPacking, bool rowMajor); - static int getScalarAlignment(const TType&, int& size, int& stride, bool rowMajor); - static int getMemberAlignment(const TType&, int& size, int& stride, TLayoutPacking layoutPacking, bool rowMajor); - static bool improperStraddle(const TType& type, int size, int offset); - static void updateOffset(const TType& parentType, const TType& memberType, int& offset, int& memberSize); - static int getOffset(const TType& type, int index); - static int getBlockSize(const TType& blockType); - static int computeBufferReferenceTypeSize(const TType&); - static bool isIoResizeArray(const TType& type, EShLanguage language); - - bool promote(TIntermOperator*); - void setNanMinMaxClamp(bool setting) { nanMinMaxClamp = setting; } - bool getNanMinMaxClamp() const { return nanMinMaxClamp; } - - void setSourceFile(const char* file) { if (file != nullptr) sourceFile = file; } - const std::string& getSourceFile() const { return sourceFile; } - void addSourceText(const char* text, size_t len) { sourceText.append(text, len); } - const std::string& getSourceText() const { return sourceText; } - const std::map& getIncludeText() const { return includeText; } - void addIncludeText(const char* name, const char* text, size_t len) { includeText[name].assign(text,len); } - 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(); } - unsigned long long getUniqueId() const { return uniqueId; } - void setUniqueId(unsigned long long id) { uniqueId = id; } - - // Certain explicit conversions are allowed conditionally -#ifdef GLSLANG_WEB - bool getArithemeticInt8Enabled() const { return false; } - bool getArithemeticInt16Enabled() const { return false; } - bool getArithemeticFloat16Enabled() const { return false; } - void updateNumericFeature(TNumericFeatures::feature f, bool on) { } -#else - bool getArithemeticInt8Enabled() const { - return numericFeatures.contains(TNumericFeatures::shader_explicit_arithmetic_types) || - numericFeatures.contains(TNumericFeatures::shader_explicit_arithmetic_types_int8); - } - bool getArithemeticInt16Enabled() const { - return numericFeatures.contains(TNumericFeatures::shader_explicit_arithmetic_types) || - numericFeatures.contains(TNumericFeatures::gpu_shader_int16) || - numericFeatures.contains(TNumericFeatures::shader_explicit_arithmetic_types_int16); - } - - bool getArithemeticFloat16Enabled() const { - return numericFeatures.contains(TNumericFeatures::shader_explicit_arithmetic_types) || - numericFeatures.contains(TNumericFeatures::gpu_shader_half_float) || - numericFeatures.contains(TNumericFeatures::shader_explicit_arithmetic_types_float16); - } - void updateNumericFeature(TNumericFeatures::feature f, bool on) - { on ? numericFeatures.insert(f) : numericFeatures.erase(f); } -#endif - -protected: - TIntermSymbol* addSymbol(long long Id, const TString&, const TType&, const TConstUnionArray&, TIntermTyped* subtree, const TSourceLoc&); - void error(TInfoSink& infoSink, const char*, EShLanguage unitStage = EShLangCount); - void warn(TInfoSink& infoSink, const char*, EShLanguage unitStage = EShLangCount); - void mergeCallGraphs(TInfoSink&, TIntermediate&); - void mergeModes(TInfoSink&, TIntermediate&); - void mergeTrees(TInfoSink&, TIntermediate&); - void seedIdMap(TIdMaps& idMaps, long long& IdShift); - void remapIds(const TIdMaps& idMaps, long long idShift, TIntermediate&); - void mergeBodies(TInfoSink&, TIntermSequence& globals, const TIntermSequence& unitGlobals); - void mergeLinkerObjects(TInfoSink&, TIntermSequence& linkerObjects, const TIntermSequence& unitLinkerObjects, EShLanguage); - void mergeBlockDefinitions(TInfoSink&, TIntermSymbol* block, TIntermSymbol* unitBlock, TIntermediate* unitRoot); - void mergeImplicitArraySizes(TType&, const TType&); - void mergeErrorCheck(TInfoSink&, const TIntermSymbol&, const TIntermSymbol&, EShLanguage); - void checkCallGraphCycles(TInfoSink&); - void checkCallGraphBodies(TInfoSink&, bool keepUncalled); - void inOutLocationCheck(TInfoSink&); - void sharedBlockCheck(TInfoSink&); - bool userOutputUsed() const; - 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; - std::tuple getConversionDestinationType(TBasicType type0, TBasicType type1, TOperator op) const; - - static const char* getResourceName(TResourceType); - - const EShLanguage language; // stage, known at construction time - std::string entryPointName; - std::string entryPointMangledName; - typedef std::list TGraph; - TGraph callGraph; - -#ifdef GLSLANG_ANGLE - const EProfile profile = ECoreProfile; - const int version = 450; -#else - EProfile profile; // source profile - int version; // source version -#endif - SpvVersion spvVersion; - TIntermNode* treeRoot; - std::set requestedExtensions; // cumulation of all enabled or required extensions; not connected to what subset of the shader used them - MustBeAssigned resources; - int numEntryPoints; - int numErrors; - int numPushConstants; - bool recursive; - bool invertY; - bool dxPositionW; - bool enhancedMsgs; - bool useStorageBuffer; - bool invariantAll; - bool nanMinMaxClamp; // true if desiring min/max/clamp to favor non-NaN over NaN - bool depthReplacing; - int localSize[3]; - bool localSizeNotDefault[3]; - int localSizeSpecId[3]; - unsigned long long uniqueId; - - std::string globalUniformBlockName; - std::string atomicCounterBlockName; - unsigned int globalUniformBlockSet; - unsigned int globalUniformBlockBinding; - unsigned int atomicCounterBlockSet; - -#ifndef GLSLANG_WEB -public: - const char* const implicitThisName; - const char* const implicitCounterName; -protected: - EShSource source; // source language, known a bit later - bool useVulkanMemoryModel; - int invocations; - int vertices; - TLayoutGeometry inputPrimitive; - TLayoutGeometry outputPrimitive; - bool pixelCenterInteger; - bool originUpperLeft; - bool texCoordBuiltinRedeclared; - TVertexSpacing vertexSpacing; - TVertexOrder vertexOrder; - TInterlockOrdering interlockOrdering; - bool pointMode; - bool earlyFragmentTests; - bool postDepthCoverage; - TLayoutDepth depthLayout; - bool hlslFunctionality1; - int blendEquations; // an 'or'ing of masks of shifts of TBlendEquationShift - bool xfbMode; - std::vector xfbBuffers; // all the data we need to track per xfb buffer - bool multiStream; - bool layoutOverrideCoverage; - bool geoPassthroughEXT; - int numShaderRecordBlocks; - ComputeDerivativeMode computeDerivativeMode; - int primitives; - int numTaskNVBlocks; - bool layoutPrimitiveCulling; - - // Base shift values - std::array shiftBinding; - - // Per-descriptor-set shift values - std::array, EResCount> shiftBindingForSet; - - std::vector resourceSetBinding; - bool autoMapBindings; - bool autoMapLocations; - bool flattenUniformArrays; - bool useUnknownFormat; - bool hlslOffsets; - bool hlslIoMapping; - bool useVariablePointers; - - std::set semanticNameSet; - - EShTextureSamplerTransformMode textureSamplerTransformMode; - - bool needToLegalize; - bool binaryDoubleOutput; - bool subgroupUniformControlFlow; - bool usePhysicalStorageBuffer; - - TSpirvRequirement* spirvRequirement; - TSpirvExecutionMode* spirvExecutionMode; - - std::unordered_map uniformLocationOverrides; - int uniformLocationBase; - TNumericFeatures numericFeatures; -#endif - std::unordered_map blockBackingOverrides; - - std::unordered_set usedConstantId; // specialization constant ids used - std::vector usedAtomics; // sets of bindings used by atomic counters - std::vector usedIo[4]; // sets of used locations, one for each of in, out, uniform, and buffers - std::vector usedIoRT[2]; // sets of used location, one for rayPayload/rayPayloadIN and other - // for callableData/callableDataIn - // set of names of statically read/written I/O that might need extra checking - std::set ioAccessed; - - // source code of shader, useful as part of debug information - std::string sourceFile; - std::string sourceText; - - // Included text. First string is a name, second is the included text - std::map includeText; - - // for OpModuleProcessed, or equivalent - TProcesses processes; - -private: - void operator=(TIntermediate&); // prevent assignments -}; - -} // end namespace glslang - -#endif // _LOCAL_INTERMEDIATE_INCLUDED_ diff --git a/deps/glslang/glslang/MachineIndependent/parseConst.cpp b/deps/glslang/glslang/MachineIndependent/parseConst.cpp deleted file mode 100644 index 6c182991..00000000 --- a/deps/glslang/glslang/MachineIndependent/parseConst.cpp +++ /dev/null @@ -1,213 +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. -// - -// -// 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. -// - -#include "ParseHelper.h" - -namespace glslang { - -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), - matrixCols(0), matrixRows(0) { index = 0; tOp = EOpNull; } - - virtual void visitConstantUnion(TIntermConstantUnion* node); - virtual bool visitAggregate(TVisit, TIntermAggregate* node); - - int index; - TConstUnionArray unionArray; - TOperator tOp; - const TType& type; - TOperator constructorType; - bool singleConstantParam; - bool error; - int size; // size of the constructor ( 4 for vec4) - bool isMatrix; - int matrixCols; - int matrixRows; - -protected: - TConstTraverser(TConstTraverser&); - TConstTraverser& operator=(TConstTraverser&); -}; - -bool TConstTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node) -{ - if (! node->isConstructor() && node->getOp() != EOpComma) { - error = true; - - return false; - } - - bool flag = node->getSequence().size() == 1 && node->getSequence()[0]->getAsTyped()->getAsConstantUnion(); - if (flag) { - singleConstantParam = true; - constructorType = node->getOp(); - size = node->getType().computeNumComponents(); - - if (node->getType().isMatrix()) { - isMatrix = true; - matrixCols = node->getType().getMatrixCols(); - matrixRows = node->getType().getMatrixRows(); - } - } - - for (TIntermSequence::iterator p = node->getSequence().begin(); - p != node->getSequence().end(); p++) { - - if (node->getOp() == EOpComma) - index = 0; - - (*p)->traverse(this); - } - if (flag) - { - singleConstantParam = false; - constructorType = EOpNull; - size = 0; - isMatrix = false; - matrixCols = 0; - matrixRows = 0; - } - - return false; -} - -void TConstTraverser::visitConstantUnion(TIntermConstantUnion* node) -{ - TConstUnionArray leftUnionArray(unionArray); - int instanceSize = type.computeNumComponents(); - - if (index >= instanceSize) - return; - - if (! singleConstantParam) { - int rightUnionSize = node->getType().computeNumComponents(); - - const TConstUnionArray& rightUnionArray = node->getConstArray(); - for (int i = 0; i < rightUnionSize; i++) { - if (index >= instanceSize) - return; - leftUnionArray[index] = rightUnionArray[i]; - - index++; - } - } else { - int endIndex = index + size; - const TConstUnionArray& rightUnionArray = node->getConstArray(); - if (! isMatrix) { - int count = 0; - int nodeComps = node->getType().computeNumComponents(); - for (int i = index; i < endIndex; i++) { - if (i >= instanceSize) - return; - - leftUnionArray[i] = rightUnionArray[count]; - - (index)++; - - if (nodeComps > 1) - count++; - } - } else { - // constructing a matrix, but from what? - if (node->isMatrix()) { - // Matrix from a matrix; this has the outer matrix, node is the argument matrix. - // Traverse the outer, potentially bigger matrix, fill in missing pieces with the - // identity matrix. - for (int c = 0; c < matrixCols; ++c) { - for (int r = 0; r < matrixRows; ++r) { - int targetOffset = index + c * matrixRows + r; - if (r < node->getType().getMatrixRows() && c < node->getType().getMatrixCols()) { - int srcOffset = c * node->getType().getMatrixRows() + r; - leftUnionArray[targetOffset] = rightUnionArray[srcOffset]; - } else if (r == c) - leftUnionArray[targetOffset].setDConst(1.0); - else - leftUnionArray[targetOffset].setDConst(0.0); - } - } - } else { - // matrix from vector or scalar - int nodeComps = node->getType().computeNumComponents(); - if (nodeComps == 1) { - for (int c = 0; c < matrixCols; ++c) { - for (int r = 0; r < matrixRows; ++r) { - if (r == c) - leftUnionArray[index] = rightUnionArray[0]; - else - leftUnionArray[index].setDConst(0.0); - index++; - } - } - } else { - int count = 0; - for (int i = index; i < endIndex; i++) { - if (i >= instanceSize) - return; - - // construct the matrix in column-major order, from - // the components provided, in order - leftUnionArray[i] = rightUnionArray[count]; - - index++; - count++; - } - } - } - } - } -} - -bool TIntermediate::parseConstTree(TIntermNode* root, TConstUnionArray unionArray, TOperator constructorType, const TType& t, bool singleConstantParam) -{ - if (root == 0) - return false; - - TConstTraverser it(unionArray, singleConstantParam, constructorType, t); - - root->traverse(&it); - if (it.error) - return true; - else - return false; -} - -} // end namespace glslang diff --git a/deps/glslang/glslang/MachineIndependent/parseVersions.h b/deps/glslang/glslang/MachineIndependent/parseVersions.h deleted file mode 100644 index 7248354e..00000000 --- a/deps/glslang/glslang/MachineIndependent/parseVersions.h +++ /dev/null @@ -1,245 +0,0 @@ -// -// Copyright (C) 2015-2018 Google, 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. -// - -// This is implemented in Versions.cpp - -#ifndef _PARSE_VERSIONS_INCLUDED_ -#define _PARSE_VERSIONS_INCLUDED_ - -#include "../Public/ShaderLang.h" -#include "../Include/InfoSink.h" -#include "Scan.h" - -#include - -namespace glslang { - -// -// Base class for parse helpers. -// This just has version-related information and checking. -// This class should be sufficient for preprocessing. -// -class TParseVersions { -public: - TParseVersions(TIntermediate& interm, int version, EProfile profile, - const SpvVersion& spvVersion, EShLanguage language, TInfoSink& infoSink, - bool forwardCompatible, EShMessages messages) - : -#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) - forwardCompatible(forwardCompatible), - profile(profile), -#endif - infoSink(infoSink), version(version), - language(language), - spvVersion(spvVersion), - intermediate(interm), messages(messages), numErrors(0), currentScanner(0) { } - virtual ~TParseVersions() { } - void requireStage(const TSourceLoc&, EShLanguageMask, const char* featureDesc); - void requireStage(const TSourceLoc&, EShLanguage, const char* featureDesc); -#ifdef GLSLANG_WEB - const EProfile profile = EEsProfile; - bool isEsProfile() const { return true; } - void requireProfile(const TSourceLoc& loc, int profileMask, const char* featureDesc) - { - if (! (EEsProfile & profileMask)) - error(loc, "not supported with this profile:", featureDesc, ProfileName(profile)); - } - void profileRequires(const TSourceLoc& loc, int profileMask, int minVersion, int numExtensions, - const char* const extensions[], const char* featureDesc) - { - if ((EEsProfile & profileMask) && (minVersion == 0 || version < minVersion)) - error(loc, "not supported for this version or the enabled extensions", featureDesc, ""); - } - void profileRequires(const TSourceLoc& loc, int profileMask, int minVersion, const char* extension, - const char* featureDesc) - { - profileRequires(loc, profileMask, minVersion, extension ? 1 : 0, &extension, featureDesc); - } - void initializeExtensionBehavior() { } - void checkDeprecated(const TSourceLoc&, int queryProfiles, int depVersion, const char* featureDesc) { } - void requireNotRemoved(const TSourceLoc&, int queryProfiles, int removedVersion, const char* featureDesc) { } - void requireExtensions(const TSourceLoc&, int numExtensions, const char* const extensions[], - const char* featureDesc) { } - void ppRequireExtensions(const TSourceLoc&, int numExtensions, const char* const extensions[], - const char* featureDesc) { } - TExtensionBehavior getExtensionBehavior(const char*) { return EBhMissing; } - bool extensionTurnedOn(const char* const extension) { return false; } - bool extensionsTurnedOn(int numExtensions, const char* const extensions[]) { return false; } - void updateExtensionBehavior(int line, const char* const extension, const char* behavior) { } - void updateExtensionBehavior(const char* const extension, TExtensionBehavior) { } - void checkExtensionStage(const TSourceLoc&, const char* const extension) { } - void extensionRequires(const TSourceLoc&, const char* const extension, const char* behavior) { } - void fullIntegerCheck(const TSourceLoc&, const char* op) { } - void doubleCheck(const TSourceLoc&, const char* op) { } - bool float16Arithmetic() { return false; } - void requireFloat16Arithmetic(const TSourceLoc& loc, const char* op, const char* featureDesc) { } - bool int16Arithmetic() { return false; } - void requireInt16Arithmetic(const TSourceLoc& loc, const char* op, const char* featureDesc) { } - bool int8Arithmetic() { return false; } - void requireInt8Arithmetic(const TSourceLoc& loc, const char* op, const char* featureDesc) { } - void int64Check(const TSourceLoc&, const char* op, bool builtIn = false) { } - void explicitFloat32Check(const TSourceLoc&, const char* op, bool builtIn = false) { } - void explicitFloat64Check(const TSourceLoc&, const char* op, bool builtIn = false) { } - bool relaxedErrors() const { return false; } - bool suppressWarnings() const { return true; } - bool isForwardCompatible() const { return false; } -#else -#ifdef GLSLANG_ANGLE - const bool forwardCompatible = true; - const EProfile profile = ECoreProfile; -#else - bool forwardCompatible; // true if errors are to be given for use of deprecated features - EProfile profile; // the declared profile in the shader (core by default) -#endif - bool isEsProfile() const { return profile == EEsProfile; } - void requireProfile(const TSourceLoc& loc, int profileMask, const char* featureDesc); - void profileRequires(const TSourceLoc& loc, int profileMask, int minVersion, int numExtensions, - const char* const extensions[], const char* featureDesc); - void profileRequires(const TSourceLoc& loc, int profileMask, int minVersion, const char* extension, - const char* featureDesc); - virtual void initializeExtensionBehavior(); - 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 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*); - virtual bool extensionTurnedOn(const char* const extension); - virtual bool extensionsTurnedOn(int numExtensions, const char* const extensions[]); - virtual void updateExtensionBehavior(int line, const char* const extension, const char* behavior); - virtual void updateExtensionBehavior(const char* const extension, TExtensionBehavior); - virtual bool checkExtensionsRequested(const TSourceLoc&, int numExtensions, const char* const extensions[], - const char* featureDesc); - virtual void checkExtensionStage(const TSourceLoc&, const char* const extension); - virtual void extensionRequires(const TSourceLoc&, const char* const extension, const char* behavior); - virtual void fullIntegerCheck(const TSourceLoc&, const char* op); - - virtual void unimplemented(const TSourceLoc&, const char* featureDesc); - virtual void doubleCheck(const TSourceLoc&, const char* op); - virtual void float16Check(const TSourceLoc&, const char* op, bool builtIn = false); - virtual void float16ScalarVectorCheck(const TSourceLoc&, const char* op, bool builtIn = false); - virtual bool float16Arithmetic(); - virtual void requireFloat16Arithmetic(const TSourceLoc& loc, const char* op, const char* featureDesc); - virtual void int16ScalarVectorCheck(const TSourceLoc&, const char* op, bool builtIn = false); - virtual bool int16Arithmetic(); - virtual void requireInt16Arithmetic(const TSourceLoc& loc, const char* op, const char* featureDesc); - virtual void int8ScalarVectorCheck(const TSourceLoc&, const char* op, bool builtIn = false); - virtual bool int8Arithmetic(); - virtual void requireInt8Arithmetic(const TSourceLoc& loc, const char* op, const char* featureDesc); - virtual void float16OpaqueCheck(const TSourceLoc&, const char* op, bool builtIn = false); - 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 fcoopmatCheck(const TSourceLoc&, const char* op, bool builtIn = false); - virtual void intcoopmatCheck(const TSourceLoc&, const char *op, bool builtIn = false); - bool relaxedErrors() const { return (messages & EShMsgRelaxedErrors) != 0; } - bool suppressWarnings() const { return (messages & EShMsgSuppressWarnings) != 0; } - bool isForwardCompatible() const { return forwardCompatible; } -#endif // GLSLANG_WEB - virtual void spvRemoved(const TSourceLoc&, const char* op); - virtual void vulkanRemoved(const TSourceLoc&, const char* op); - virtual void requireVulkan(const TSourceLoc&, const char* op); - virtual void requireSpv(const TSourceLoc&, const char* op); - virtual void requireSpv(const TSourceLoc&, const char *op, unsigned int version); - - -#if defined(GLSLANG_WEB) && !defined(GLSLANG_WEB_DEVEL) - void C_DECL error(const TSourceLoc&, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...) { addError(); } - void C_DECL warn(const TSourceLoc&, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...) { } - void C_DECL ppError(const TSourceLoc&, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...) { addError(); } - void C_DECL ppWarn(const TSourceLoc&, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...) { } -#else - virtual void C_DECL error(const TSourceLoc&, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...) = 0; - virtual void C_DECL warn(const TSourceLoc&, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...) = 0; - virtual void C_DECL ppError(const TSourceLoc&, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...) = 0; - virtual void C_DECL ppWarn(const TSourceLoc&, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...) = 0; -#endif - - void addError() { ++numErrors; } - int getNumErrors() const { return numErrors; } - - void setScanner(TInputScanner* scanner) { currentScanner = scanner; } - TInputScanner* getScanner() const { return currentScanner; } - const TSourceLoc& getCurrentLoc() const { return currentScanner->getSourceLoc(); } - void setCurrentLine(int line) { currentScanner->setLine(line); } - void setCurrentColumn(int col) { currentScanner->setColumn(col); } - void setCurrentSourceName(const char* name) { currentScanner->setFile(name); } - void setCurrentString(int string) { currentScanner->setString(string); } - - void getPreamble(std::string&); -#ifdef ENABLE_HLSL - bool isReadingHLSL() const { return (messages & EShMsgReadHlsl) == EShMsgReadHlsl; } - bool hlslEnable16BitTypes() const { return (messages & EShMsgHlslEnable16BitTypes) != 0; } - bool hlslDX9Compatible() const { return (messages & EShMsgHlslDX9Compatible) != 0; } -#else - bool isReadingHLSL() const { return false; } -#endif - - TInfoSink& infoSink; - - // compilation mode - int version; // version, updated by #version in the shader - EShLanguage language; // really the stage - SpvVersion spvVersion; - TIntermediate& intermediate; // helper for making and hooking up pieces of the parse tree - -protected: - TMap extensionBehavior; // for each extension string, what its current behavior is - TMap extensionMinSpv; // for each extension string, store minimum spirv required - EShMessages messages; // errors/warnings/rule-sets - int numErrors; // number of compile-time errors encountered - TInputScanner* currentScanner; - -private: - explicit TParseVersions(const TParseVersions&); - TParseVersions& operator=(const TParseVersions&); -}; - -} // end namespace glslang - -#endif // _PARSE_VERSIONS_INCLUDED_ diff --git a/deps/glslang/glslang/MachineIndependent/pch.h b/deps/glslang/glslang/MachineIndependent/pch.h deleted file mode 100644 index 6ea3761e..00000000 --- a/deps/glslang/glslang/MachineIndependent/pch.h +++ /dev/null @@ -1,49 +0,0 @@ -#ifndef _PCH_H -#define _PCH_H -// -// Copyright (C) 2018 The Khronos Group Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// Neither the name of 3Dlabs Inc. Ltd. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -// -#include -#include -#include -#include -#include -#include -#include -#include -#include "SymbolTable.h" -#include "ParseHelper.h" -#include "Scan.h" -#include "ScanContext.h" - -#endif /* _PCH_H */ diff --git a/deps/glslang/glslang/MachineIndependent/preprocessor/Pp.cpp b/deps/glslang/glslang/MachineIndependent/preprocessor/Pp.cpp deleted file mode 100644 index aa1e0d74..00000000 --- a/deps/glslang/glslang/MachineIndependent/preprocessor/Pp.cpp +++ /dev/null @@ -1,1346 +0,0 @@ -// -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2013 LunarG, Inc. -// Copyright (C) 2015-2018 Google, Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// Neither the name of 3Dlabs Inc. Ltd. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -// -/****************************************************************************\ -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 -#include -#include - -#include "PpContext.h" -#include "PpTokens.h" - -namespace glslang { - -// Handle #define -int TPpContext::CPPdefine(TPpToken* ppToken) -{ - MacroSymbol mac; - - // get the macro name - int token = scanToken(ppToken); - if (token != PpAtomIdentifier) { - 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"); - } - - // save the macro name - const int defAtom = atomStrings.getAddAtom(ppToken->name); - TSourceLoc defineLoc = ppToken->loc; // because ppToken might go to the next line before we report errors - - // gather parameters to the macro, between (...) - token = scanToken(ppToken); - if (token == '(' && !ppToken->space) { - mac.functionLike = 1; - do { - token = scanToken(ppToken); - if (mac.args.size() == 0 && token == ')') - break; - if (token != PpAtomIdentifier) { - parseContext.ppError(ppToken->loc, "bad argument", "#define", ""); - - return token; - } - 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", ""); - duplicate = true; - break; - } - } - if (! duplicate) - mac.args.push_back(argAtom); - token = scanToken(ppToken); - } while (token == ','); - if (token != ')') { - parseContext.ppError(ppToken->loc, "missing parenthesis", "#define", ""); - - return token; - } - - token = scanToken(ppToken); - } else if (token != '\n' && token != EndOfInput && !ppToken->space) { - parseContext.ppWarn(ppToken->loc, "missing space after macro name", "#define", ""); - - return token; - } - - // record the definition of the macro - while (token != '\n' && token != EndOfInput) { - mac.body.putToken(token, ppToken); - token = scanToken(ppToken); - if (token != '\n' && ppToken->space) - mac.body.putToken(' ', ppToken); - } - - // check for duplicate definition - 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 (existing->functionLike != mac.functionLike) { - parseContext.ppError(defineLoc, "Macro redefined; function-like versus object-like:", "#define", - atomStrings.getString(defAtom)); - } else if (existing->args.size() != mac.args.size()) { - parseContext.ppError(defineLoc, "Macro redefined; different number of arguments:", "#define", - atomStrings.getString(defAtom)); - } else { - if (existing->args != mac.args) { - parseContext.ppError(defineLoc, "Macro redefined; different argument names:", "#define", - atomStrings.getString(defAtom)); - } - // set up to compare the two - existing->body.reset(); - mac.body.reset(); - int newToken; - bool firstToken = true; - do { - int oldToken; - TPpToken oldPpToken; - TPpToken newPpToken; - oldToken = existing->body.getToken(parseContext, &oldPpToken); - newToken = mac.body.getToken(parseContext, &newPpToken); - // for the first token, preceding spaces don't matter - if (firstToken) { - newPpToken.space = oldPpToken.space; - firstToken = false; - } - if (oldToken != newToken || oldPpToken != newPpToken) { - parseContext.ppError(defineLoc, "Macro redefined; different substitutions:", "#define", - atomStrings.getString(defAtom)); - break; - } - } while (newToken != EndOfInput); - } - } - *existing = mac; - } else - addMacroDef(defAtom, mac); - - return '\n'; -} - -// Handle #undef -int TPpContext::CPPundef(TPpToken* ppToken) -{ - int token = scanToken(ppToken); - if (token != PpAtomIdentifier) { - parseContext.ppError(ppToken->loc, "must be followed by macro name", "#undef", ""); - - return token; - } - - parseContext.reservedPpErrorCheck(ppToken->loc, ppToken->name, "#undef"); - - 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", ""); - - return token; -} - -// Handle #else -/* Skip forward to appropriate spot. This is used both -** to skip to a #endif after seeing an #else, AND to skip to a #else, -** #elif, or #endif after a #if/#ifdef/#ifndef/#elif test was false. -*/ -int TPpContext::CPPelse(int matchelse, TPpToken* ppToken) -{ - int depth = 0; - int token = scanToken(ppToken); - - while (token != EndOfInput) { - if (token != '#') { - while (token != '\n' && token != EndOfInput) - token = scanToken(ppToken); - - if (token == EndOfInput) - return token; - - token = scanToken(ppToken); - continue; - } - - 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)); - elseSeen[elsetracker] = false; - --elsetracker; - if (depth == 0) { - // found the #endif we are looking for - if (ifdepth > 0) - --ifdepth; - break; - } - --depth; - --ifdepth; - } else if (matchelse && depth == 0) { - if (nextAtom == PpAtomElse) { - elseSeen[elsetracker] = true; - token = extraTokenCheck(nextAtom, ppToken, scanToken(ppToken)); - // found the #else we are looking for - break; - } else if (nextAtom == PpAtomElif) { - if (elseSeen[elsetracker]) - 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) { - --ifdepth; - elseSeen[elsetracker] = false; - --elsetracker; - } - - return CPPif(ppToken); - } - } else if (nextAtom == PpAtomElse) { - if (elseSeen[elsetracker]) - parseContext.ppError(ppToken->loc, "#else after #else", "#else", ""); - else - elseSeen[elsetracker] = true; - token = extraTokenCheck(nextAtom, ppToken, scanToken(ppToken)); - } else if (nextAtom == PpAtomElif) { - if (elseSeen[elsetracker]) - parseContext.ppError(ppToken->loc, "#elif after #else", "#elif", ""); - } - } - - return token; -} - -// Call when there should be no more tokens left on a line. -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 (contextAtom == PpAtomElse) - label = "#else"; - else if (contextAtom == PpAtomElif) - label = "#elif"; - else if (contextAtom == PpAtomEndif) - label = "#endif"; - else if (contextAtom == PpAtomIf) - label = "#if"; - else if (contextAtom == PpAtomLine) - label = "#line"; - else - label = ""; - - if (parseContext.relaxedErrors()) - parseContext.ppWarn(ppToken->loc, message, label, ""); - else - parseContext.ppError(ppToken->loc, message, label, ""); - - while (token != '\n' && token != EndOfInput) - token = scanToken(ppToken); - } - - return token; -} - -enum eval_prec { - MIN_PRECEDENCE, - COND, LOGOR, LOGAND, OR, XOR, AND, EQUAL, RELATION, SHIFT, ADD, MUL, UNARY, - MAX_PRECEDENCE -}; - -namespace { - - int op_logor(int a, int b) { return a || b; } - int op_logand(int a, int b) { return a && b; } - int op_or(int a, int b) { return a | b; } - int op_xor(int a, int b) { return a ^ b; } - int op_and(int a, int b) { return a & b; } - int op_eq(int a, int b) { return a == b; } - int op_ne(int a, int b) { return a != b; } - int op_ge(int a, int b) { return a >= b; } - int op_le(int a, int b) { return a <= b; } - int op_gt(int a, int b) { return a > b; } - int op_lt(int a, int b) { return a < b; } - int op_shl(int a, int b) { return a << b; } - int op_shr(int a, int b) { return a >> b; } - 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_pos(int a) { return a; } - int op_neg(int a) { return -a; } - int op_cmpl(int a) { return ~a; } - int op_not(int a) { return !a; } - -}; - -struct TBinop { - int token, precedence, (*op)(int, int); -} binop[] = { - { PpAtomOr, LOGOR, op_logor }, - { PpAtomAnd, LOGAND, op_logand }, - { '|', OR, op_or }, - { '^', XOR, op_xor }, - { '&', AND, op_and }, - { PpAtomEQ, EQUAL, op_eq }, - { PpAtomNE, EQUAL, op_ne }, - { '>', RELATION, op_gt }, - { PpAtomGE, RELATION, op_ge }, - { '<', RELATION, op_lt }, - { PpAtomLE, RELATION, op_le }, - { PpAtomLeft, SHIFT, op_shl }, - { PpAtomRight, SHIFT, op_shr }, - { '+', ADD, op_add }, - { '-', ADD, op_sub }, - { '*', MUL, op_mul }, - { '/', MUL, op_div }, - { '%', MUL, op_mod }, -}; - -struct TUnop { - int token, (*op)(int); -} unop[] = { - { '+', op_pos }, - { '-', op_neg }, - { '~', op_cmpl }, - { '!', op_not }, -}; - -#define NUM_ELEMENTS(A) (sizeof(A) / sizeof(A[0])) - -int TPpContext::eval(int token, int precedence, bool shortCircuit, int& res, bool& err, TPpToken* ppToken) -{ - 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", ""); - } - bool needclose = 0; - token = scanToken(ppToken); - if (token == '(') { - needclose = true; - token = scanToken(ppToken); - } - if (token != PpAtomIdentifier) { - 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; - token = scanToken(ppToken); - if (needclose) { - if (token != ')') { - parseContext.ppError(loc, "expected ')'", "preprocessor evaluation", ""); - err = true; - res = 0; - - return token; - } - token = scanToken(ppToken); - } - } else { - token = tokenPaste(token, *ppToken); - token = evalToToken(token, shortCircuit, res, err, ppToken); - return eval(token, precedence, shortCircuit, res, err, ppToken); - } - } else if (token == PpAtomConstInt) { - res = ppToken->ival; - token = scanToken(ppToken); - } else if (token == '(') { - token = scanToken(ppToken); - token = eval(token, MIN_PRECEDENCE, shortCircuit, res, err, ppToken); - if (! err) { - if (token != ')') { - parseContext.ppError(loc, "expected ')'", "preprocessor evaluation", ""); - err = true; - res = 0; - - return token; - } - token = scanToken(ppToken); - } - } else { - int op = NUM_ELEMENTS(unop) - 1; - for (; op >= 0; op--) { - if (unop[op].token == token) - break; - } - if (op >= 0) { - token = scanToken(ppToken); - token = eval(token, UNARY, shortCircuit, res, err, ppToken); - res = unop[op].op(res); - } else { - parseContext.ppError(loc, "bad expression", "preprocessor evaluation", ""); - err = true; - res = 0; - - return token; - } - } - - token = evalToToken(token, shortCircuit, res, err, ppToken); - - // Perform evaluation of binary operation, if there is one, otherwise we are done. - while (! err) { - if (token == ')' || token == '\n') - break; - int op; - for (op = NUM_ELEMENTS(binop) - 1; op >= 0; op--) { - if (binop[op].token == token) - break; - } - if (op < 0 || binop[op].precedence <= precedence) - break; - int leftSide = res; - - // Setup short-circuiting, needed for ES, unless already in a short circuit. - // (Once in a short-circuit, can't turn off again, until that whole subexpression is done. - if (! shortCircuit) { - if ((token == PpAtomOr && leftSide == 1) || - (token == PpAtomAnd && leftSide == 0)) - shortCircuit = true; - } - - token = scanToken(ppToken); - token = eval(token, binop[op].precedence, shortCircuit, res, err, ppToken); - - if (binop[op].op == op_div || binop[op].op == op_mod) { - if (res == 0) { - parseContext.ppError(loc, "division by 0", "preprocessor evaluation", ""); - res = 1; - } - } - res = binop[op].op(leftSide, res); - } - - return token; -} - -// 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) { - switch (MacroExpand(ppToken, true, false)) { - case MacroExpandNotStarted: - case MacroExpandError: - parseContext.ppError(ppToken->loc, "can't evaluate expression", "preprocessor evaluation", ""); - err = true; - res = 0; - break; - case MacroExpandStarted: - break; - case MacroExpandUndef: - if (! shortCircuit && parseContext.isEsProfile()) { - const char* message = "undefined macro in expression not allowed in es profile"; - if (parseContext.relaxedErrors()) - parseContext.ppWarn(ppToken->loc, message, "preprocessor evaluation", ppToken->name); - else - parseContext.ppError(ppToken->loc, message, "preprocessor evaluation", ppToken->name); - } - break; - } - token = scanToken(ppToken); - if (err) - break; - } - - return token; -} - -// Handle #if -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++; - } - int res = 0; - bool err = false; - token = eval(token, MIN_PRECEDENCE, false, res, err, ppToken); - token = extraTokenCheck(PpAtomIf, ppToken, token); - if (!res && !err) - token = CPPelse(1, ppToken); - - return token; -} - -// Handle #ifdef -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++; - } - - 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", ""); - } else { - 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", ""); - while (token != '\n' && token != EndOfInput) - token = scanToken(ppToken); - } - if (((macro != nullptr && !macro->undef) ? 1 : 0) != defined) - token = CPPelse(1, ppToken); - } - - return token; -} - -// 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; - - // Find the first non-whitespace char after #include - int ch = getChar(); - while (ch == ' ' || ch == '\t') { - ch = getChar(); - } - if (ch == '<') { - // style - startWithLocalSearch = false; - token = scanHeaderName(ppToken, '>'); - } else if (ch == '"') { - // "header-name" style - token = scanHeaderName(ppToken, '"'); - } else { - // unexpected, get the full token to generate the error - ungetChar(); - token = scanToken(ppToken); - } - - 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)); - parseContext.intermediate.addIncludeText(res->headerName.c_str(), res->headerData, res->headerLength); - // 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) -{ - // "#line must have, after macro substitution, one of the following forms: - // "#line line - // "#line line source-string-number" - - int token = scanToken(ppToken); - const TSourceLoc directiveLoc = ppToken->loc; - if (token == '\n') { - parseContext.ppError(ppToken->loc, "must by followed by an integral literal", "#line", ""); - return token; - } - - int lineRes = 0; // Line number after macro expansion. - int lineToken = 0; - bool hasFile = false; - int fileRes = 0; // Source file number after macro expansion. - const char* sourceName = nullptr; // Optional source file name. - bool lineErr = false; - bool fileErr = false; - disableEscapeSequences = true; - token = eval(token, MIN_PRECEDENCE, false, lineRes, lineErr, ppToken); - disableEscapeSequences = false; - if (! lineErr) { - lineToken = lineRes; - if (token == '\n') - ++lineRes; - - if (parseContext.lineDirectiveShouldSetNextLine()) - --lineRes; - parseContext.setCurrentLine(lineRes); - - if (token != '\n') { -#ifndef GLSLANG_WEB - if (token == PpAtomConstString) { - 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); - hasFile = true; - token = scanToken(ppToken); - } else -#endif - { - token = eval(token, MIN_PRECEDENCE, false, fileRes, fileErr, ppToken); - if (! fileErr) { - parseContext.setCurrentString(fileRes); - hasFile = true; - } - } - } - } - if (!fileErr && !lineErr) { - parseContext.notifyLineDirective(directiveLoc.line, lineToken, hasFile, fileRes, sourceName); - } - token = extraTokenCheck(PpAtomLine, ppToken, token); - - return token; -} - -// Handle #error -int TPpContext::CPPerror(TPpToken* ppToken) -{ - disableEscapeSequences = true; - int token = scanToken(ppToken); - disableEscapeSequences = false; - std::string message; - TSourceLoc loc = ppToken->loc; - - while (token != '\n' && token != EndOfInput) { - if (token == PpAtomConstInt16 || token == PpAtomConstUint16 || - token == PpAtomConstInt || token == PpAtomConstUint || - token == PpAtomConstInt64 || token == PpAtomConstUint64 || - token == PpAtomConstFloat16 || - 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(" "); - 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", ""); - - return '\n'; -} - -// Handle #pragma -int TPpContext::CPPpragma(TPpToken* ppToken) -{ - char SrcStrName[2]; - TVector tokens; - - TSourceLoc loc = ppToken->loc; // because we go to the next line before processing - int token = scanToken(ppToken); - while (token != '\n' && token != EndOfInput) { - switch (token) { - case PpAtomIdentifier: - case PpAtomConstInt: - case PpAtomConstUint: - case PpAtomConstInt64: - case PpAtomConstUint64: - case PpAtomConstInt16: - case PpAtomConstUint16: - case PpAtomConstFloat: - case PpAtomConstDouble: - case PpAtomConstFloat16: - tokens.push_back(ppToken->name); - break; - default: - SrcStrName[0] = (char)token; - SrcStrName[1] = '\0'; - tokens.push_back(SrcStrName); - } - token = scanToken(ppToken); - } - - if (token == EndOfInput) - parseContext.ppError(loc, "directive must end with a newline", "#pragma", ""); - else - parseContext.handlePragma(loc, tokens); - - return token; -} - -// #version: This is just for error checking: the version and profile are decided before preprocessing starts -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", ""); - } - versionSeen = true; - - if (token == '\n') { - 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", ""); - - ppToken->ival = atoi(ppToken->name); - int versionNumber = ppToken->ival; - int line = ppToken->loc.line; - token = scanToken(ppToken); - - if (token == '\n') { - 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); - token = scanToken(ppToken); - - if (token == '\n') - return token; - else - parseContext.ppError(ppToken->loc, "bad tokens following profile -- expected newline", "#version", ""); - } - - return token; -} - -// Handle #extension -int TPpContext::CPPextension(TPpToken* ppToken) -{ - int line = ppToken->loc.line; - int token = scanToken(ppToken); - char extensionName[MaxTokenLength + 1]; - - if (token=='\n') { - parseContext.ppError(ppToken->loc, "extension name not specified", "#extension", ""); - return token; - } - - if (token != PpAtomIdentifier) - parseContext.ppError(ppToken->loc, "extension name expected", "#extension", ""); - - snprintf(extensionName, sizeof(extensionName), "%s", ppToken->name); - - token = scanToken(ppToken); - if (token != ':') { - 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", ""); - return token; - } - - 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",""); - - return token; -} - -int TPpContext::readCPPline(TPpToken* ppToken) -{ - int token = scanToken(ppToken); - - if (token == PpAtomIdentifier) { - switch (atomStrings.getAtom(ppToken->name)) { - 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", ""); - token = extraTokenCheck(PpAtomElse, ppToken, scanToken(ppToken)); - token = CPPelse(0, ppToken); - break; - case PpAtomElif: - if (ifdepth == 0) - parseContext.ppError(ppToken->loc, "mismatched statements", "#elif", ""); - if (elseSeen[elsetracker]) - 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); - 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", ""); - else { - elseSeen[elsetracker] = false; - --elsetracker; - --ifdepth; - } - token = extraTokenCheck(PpAtomEndif, ppToken, scanToken(ppToken)); - break; - case PpAtomIf: - token = CPPif(ppToken); - break; - case PpAtomIfdef: - token = CPPifdef(1, ppToken); - break; - case PpAtomIfndef: - token = CPPifdef(0, ppToken); - break; - case PpAtomLine: - token = CPPline(ppToken); - break; -#ifndef GLSLANG_WEB - case PpAtomInclude: - if(!parseContext.isReadingHLSL()) { - parseContext.ppRequireExtensions(ppToken->loc, 1, &E_GL_GOOGLE_include_directive, "#include"); - } - token = CPPinclude(ppToken); - break; - case PpAtomPragma: - token = CPPpragma(ppToken); - break; -#endif - case PpAtomUndef: - token = CPPundef(ppToken); - break; - case PpAtomError: - token = CPPerror(ppToken); - break; - case PpAtomVersion: - token = CPPversion(ppToken); - break; - case PpAtomExtension: - token = CPPextension(ppToken); - break; - default: - parseContext.ppError(ppToken->loc, "invalid directive:", "#", ppToken->name); - break; - } - } else if (token != '\n' && token != EndOfInput) - parseContext.ppError(ppToken->loc, "invalid directive", "#", ""); - - while (token != '\n' && token != EndOfInput) - token = scanToken(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) -{ - 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 == PpAtomIdentifier) { - switch (MacroExpand(ppToken, false, newLineOkay)) { - case MacroExpandNotStarted: - break; - case MacroExpandError: - // toss the rest of the pushed-input argument by scanning until tMarkerInput - while ((token = scanToken(ppToken)) != tMarkerInput::marker && token != EndOfInput) - ; - break; - case MacroExpandStarted: - case MacroExpandUndef: - continue; - } - } - if (token == tMarkerInput::marker || token == EndOfInput) - break; - expandedArg->putToken(token, ppToken); - } - - if (token != tMarkerInput::marker) { - // Error, or MacroExpand ate the marker, so had bad input, recover - delete expandedArg; - expandedArg = nullptr; - } - - 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 = 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 = (int)mac->args.size() - 1; i >= 0; i--) - if (strcmp(pp->atomStrings.getString(mac->args[i]), ppToken->name) == 0) - break; - if (i >= 0) { - TokenStream* arg = expandedArgs[i]; - if (arg == nullptr || pasting) - arg = args[i]; - pp->pushTokenStreamInput(*arg, prepaste); - - return pp->scanToken(ppToken); - } - } - - if (token == EndOfInput) - mac->busy = 0; - - return token; -} - -// return a textual zero, for scanning a macro that was never defined -int TPpContext::tZeroInput::scan(TPpToken* ppToken) -{ - if (done) - return EndOfInput; - - ppToken->name[0] = '0'; - ppToken->name[1] = 0; - ppToken->ival = 0; - ppToken->space = false; - done = true; - - return PpAtomConstInt; -} - -// -// 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 MacroExpandStarted. -// - If it is, but undefined, and expandUndef is requested, push a tInput -// that will expand to 0 and return MacroExpandUndef. -// - Otherwise, there is no expansion, and there are two cases: -// * It might be okay there is no expansion, and no specific error was -// detected. Returns MacroExpandNotStarted. -// * The expansion was started, but could not be completed, due to an error -// that cannot be recovered from. Returns MacroExpandError. -// -MacroExpandResult TPpContext::MacroExpand(TPpToken* ppToken, bool expandUndef, bool newLineOkay) -{ - ppToken->space = false; - int macroAtom = atomStrings.getAtom(ppToken->name); - switch (macroAtom) { - case PpAtomLineMacro: - // Arguments which are macro have been replaced in the first stage. - if (ppToken->ival == 0) - ppToken->ival = parseContext.getCurrentLoc().line; - snprintf(ppToken->name, sizeof(ppToken->name), "%d", ppToken->ival); - UngetToken(PpAtomConstInt, ppToken); - return MacroExpandStarted; - - 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; - snprintf(ppToken->name, sizeof(ppToken->name), "%s", ppToken->loc.getStringNameOrNum().c_str()); - UngetToken(PpAtomConstInt, ppToken); - return MacroExpandStarted; - } - - case PpAtomVersionMacro: - ppToken->ival = parseContext.version; - snprintf(ppToken->name, sizeof(ppToken->name), "%d", ppToken->ival); - UngetToken(PpAtomConstInt, ppToken); - return MacroExpandStarted; - - default: - break; - } - - MacroSymbol* macro = macroAtom == 0 ? nullptr : lookupMacroDef(macroAtom); - - // no recursive expansions - if (macro != nullptr && macro->busy) - return MacroExpandNotStarted; - - // not expanding undefined macros - if ((macro == nullptr || macro->undef) && ! expandUndef) - return MacroExpandNotStarted; - - // 0 is the value of an undefined macro - if ((macro == nullptr || macro->undef) && expandUndef) { - pushInput(new tZeroInput(this)); - return MacroExpandUndef; - } - - 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->functionLike) { - // We don't know yet if this will be a successful call of a - // function-like macro; need to look for a '(', but without trashing - // the passed in ppToken, until we know we are no longer speculative. - TPpToken parenToken; - int token = scanToken(&parenToken); - if (newLineOkay) { - while (token == '\n') - token = scanToken(&parenToken); - } - if (token != '(') { - // Function-like macro called with object-like syntax: okay, don't expand. - // (We ate exactly one token that might not be white space; put it back. - UngetToken(token, &parenToken); - delete in; - return MacroExpandNotStarted; - } - in->args.resize(in->mac->args.size()); - for (size_t i = 0; i < in->mac->args.size(); 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; - bool tokenRecorded = false; - do { - TVector nestStack; - while (true) { - token = scanToken(ppToken); - if (token == EndOfInput || token == tMarkerInput::marker) { - parseContext.ppError(loc, "End of input in macro", "macro expansion", atomStrings.getString(macroAtom)); - delete in; - return MacroExpandError; - } - if (token == '\n') { - if (! newLineOkay) { - parseContext.ppError(loc, "End of line in macro substitution:", "macro expansion", atomStrings.getString(macroAtom)); - delete in; - return MacroExpandError; - } - continue; - } - if (token == '#') { - parseContext.ppError(ppToken->loc, "unexpected '#'", "macro expansion", atomStrings.getString(macroAtom)); - delete in; - return MacroExpandError; - } - if (in->mac->args.size() == 0 && token != ')') - break; - if (nestStack.size() == 0 && (token == ',' || token == ')')) - break; - if (token == '(') - nestStack.push_back(')'); - else if (token == '{' && parseContext.isReadingHLSL()) - nestStack.push_back('}'); - else if (nestStack.size() > 0 && token == nestStack.back()) - nestStack.pop_back(); - - //Macro replacement list is expanded in the last stage. - if (atomStrings.getAtom(ppToken->name) == PpAtomLineMacro) - ppToken->ival = parseContext.getCurrentLoc().line; - - in->args[arg]->putToken(token, ppToken); - tokenRecorded = true; - } - // end of single argument scan - - if (token == ')') { - // closing paren of call - if (in->mac->args.size() == 1 && !tokenRecorded) - break; - arg++; - break; - } - arg++; - } while (arg < in->mac->args.size()); - // end of all arguments scan - - if (arg < in->mac->args.size()) - parseContext.ppError(loc, "Too few args in Macro", "macro expansion", atomStrings.getString(macroAtom)); - else if (token != ')') { - // Error recover code; find end of call, if possible - int depth = 0; - while (token != EndOfInput && (depth > 0 || token != ')')) { - if (token == ')' || token == '}') - depth--; - token = scanToken(ppToken); - if (token == '(' || token == '{') - depth++; - } - - if (token == EndOfInput) { - parseContext.ppError(loc, "End of input in macro", "macro expansion", atomStrings.getString(macroAtom)); - delete in; - return MacroExpandError; - } - parseContext.ppError(loc, "Too many args in macro", "macro expansion", atomStrings.getString(macroAtom)); - } - - // 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); - macro->busy = 1; - macro->body.reset(); - - return MacroExpandStarted; -} - -} // end namespace glslang diff --git a/deps/glslang/glslang/MachineIndependent/preprocessor/PpAtom.cpp b/deps/glslang/glslang/MachineIndependent/preprocessor/PpAtom.cpp deleted file mode 100644 index 06c2333e..00000000 --- a/deps/glslang/glslang/MachineIndependent/preprocessor/PpAtom.cpp +++ /dev/null @@ -1,181 +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. -\****************************************************************************/ - -#ifndef _CRT_SECURE_NO_WARNINGS -#define _CRT_SECURE_NO_WARNINGS -#endif - -#include -#include -#include - -#include "PpContext.h" -#include "PpTokens.h" - -namespace { - -using namespace glslang; - -const struct { - int val; - const char* str; -} tokens[] = { - - { PPAtomAddAssign, "+=" }, - { PPAtomSubAssign, "-=" }, - { PPAtomMulAssign, "*=" }, - { PPAtomDivAssign, "/=" }, - { PPAtomModAssign, "%=" }, - - { PpAtomRight, ">>" }, - { PpAtomLeft, "<<" }, - { PpAtomAnd, "&&" }, - { PpAtomOr, "||" }, - { PpAtomXor, "^^" }, - - { PpAtomRightAssign, ">>=" }, - { PpAtomLeftAssign, "<<=" }, - { PpAtomAndAssign, "&=" }, - { PpAtomOrAssign, "|=" }, - { PpAtomXorAssign, "^=" }, - - { PpAtomEQ, "==" }, - { PpAtomNE, "!=" }, - { PpAtomGE, ">=" }, - { PpAtomLE, "<=" }, - - { PpAtomDecrement, "--" }, - { PpAtomIncrement, "++" }, - - { PpAtomColonColon, "::" }, - - { PpAtomDefine, "define" }, - { PpAtomUndef, "undef" }, - { PpAtomIf, "if" }, - { PpAtomElif, "elif" }, - { PpAtomElse, "else" }, - { PpAtomEndif, "endif" }, - { PpAtomIfdef, "ifdef" }, - { PpAtomIfndef, "ifndef" }, - { PpAtomLine, "line" }, - { PpAtomPragma, "pragma" }, - { PpAtomError, "error" }, - - { PpAtomVersion, "version" }, - { PpAtomCore, "core" }, - { PpAtomCompatibility, "compatibility" }, - { PpAtomEs, "es" }, - { PpAtomExtension, "extension" }, - - { PpAtomLineMacro, "__LINE__" }, - { PpAtomFileMacro, "__FILE__" }, - { PpAtomVersionMacro, "__VERSION__" }, - - { PpAtomInclude, "include" }, -}; - -} // end anonymous namespace - -namespace glslang { - -// -// Initialize the atom table. -// -TStringAtomMap::TStringAtomMap() -{ - badToken.assign(""); - - // Add single character tokens to the atom table: - const char* s = "~!%^&*()-+=|,.<>/?;:[]{}#\\"; - char t[2]; - - t[1] = '\0'; - while (*s) { - t[0] = *s; - 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); - - nextAtom = PpAtomLast; -} - -} // end namespace glslang diff --git a/deps/glslang/glslang/MachineIndependent/preprocessor/PpContext.cpp b/deps/glslang/glslang/MachineIndependent/preprocessor/PpContext.cpp deleted file mode 100644 index 1363ce2b..00000000 --- a/deps/glslang/glslang/MachineIndependent/preprocessor/PpContext.cpp +++ /dev/null @@ -1,120 +0,0 @@ -// -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2013 LunarG, Inc. -// Copyright (C) 2015-2018 Google, Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// Neither the name of 3Dlabs Inc. Ltd. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -// -/****************************************************************************\ -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. -\****************************************************************************/ - -#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), - rootFileName(rootFileName), - currentSourceFile(rootFileName), - disableEscapeSequences(false) -{ - ifdepth = 0; - for (elsetracker = 0; elsetracker < maxIfNesting; elsetracker++) - elseSeen[elsetracker] = false; - elsetracker = 0; - - strtodStream.imbue(std::locale::classic()); -} - -TPpContext::~TPpContext() -{ - delete [] preamble; - - // free up the inputStack - while (! inputStack.empty()) - popInput(); -} - -void TPpContext::setInput(TInputScanner& input, bool versionWillBeError) -{ - assert(inputStack.size() == 0); - - pushInput(new tStringInput(this, input)); - - errorOnVersion = versionWillBeError; - versionSeen = false; -} - -} // end namespace glslang diff --git a/deps/glslang/glslang/MachineIndependent/preprocessor/PpContext.h b/deps/glslang/glslang/MachineIndependent/preprocessor/PpContext.h deleted file mode 100644 index 714b5ead..00000000 --- a/deps/glslang/glslang/MachineIndependent/preprocessor/PpContext.h +++ /dev/null @@ -1,703 +0,0 @@ -// -// Copyright (C) 2013 LunarG, Inc. -// Copyright (C) 2015-2018 Google, Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// Neither the name of 3Dlabs Inc. Ltd. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -// -/****************************************************************************\ -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 PPCONTEXT_H -#define PPCONTEXT_H - -#include -#include -#include - -#include "../ParseHelper.h" -#include "PpTokens.h" - -/* windows only pragma */ -#ifdef _MSC_VER - #pragma warning(disable : 4127) -#endif - -namespace glslang { - -class TPpToken { -public: - 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) const - { - return space == right.space && - ival == right.ival && dval == right.dval && i64val == right.i64val && - strncmp(name, right.name, MaxTokenLength) == 0; - } - bool operator!=(const TPpToken& right) const { 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; - } -}; - -class TInputScanner; - -enum MacroExpandResult { - MacroExpandNotStarted, // macro not expanded, which might not be an error - MacroExpandError, // a clear error occurred while expanding, no expansion - MacroExpandStarted, // macro expansion process has started - MacroExpandUndef // macro is undefined and will be expanded -}; - -// This class is the result of turning a huge pile of C code communicating through globals -// into a class. This was done to allowing instancing to attain thread safety. -// Don't expect too much in terms of OO design. -class TPpContext { -public: - TPpContext(TParseContextBase&, const std::string& rootFileName, TShader::Includer&); - virtual ~TPpContext(); - - void setPreamble(const char* preamble, size_t length); - - int tokenize(TPpToken& ppToken); - int tokenPaste(int token, TPpToken&); - - class tInput { - public: - tInput(TPpContext* p) : done(false), pp(p) { } - virtual ~tInput() { } - - 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 peekContinuedPasting(int) { return false; } // true when non-spaced tokens can paste - 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() {} - // Will be called when we do not read tokens from this instance anymore - virtual void notifyDeleted() {} - protected: - bool done; - TPpContext* pp; - }; - - void setInput(TInputScanner& input, bool versionWillBeError); - - void pushInput(tInput* in) - { - inputStack.push_back(in); - in->notifyActivated(); - } - void popInput() - { - inputStack.back()->notifyDeleted(); - delete inputStack.back(); - inputStack.pop_back(); - } - - // - // From PpTokens.cpp - // - - // Capture the needed parts of a token stream for macro recording/playback. - class TokenStream { - public: - // Manage a stream of these 'Token', which capture the relevant parts - // of a TPpToken, plus its atom. - class Token { - public: - Token(int atom, const TPpToken& ppToken) : - atom(atom), - space(ppToken.space), - i64val(ppToken.i64val), - name(ppToken.name) { } - int get(TPpToken& ppToken) - { - ppToken.clear(); - ppToken.space = space; - ppToken.i64val = i64val; - snprintf(ppToken.name, sizeof(ppToken.name), "%s", name.c_str()); - return atom; - } - bool isAtom(int a) const { return atom == a; } - int getAtom() const { return atom; } - bool nonSpaced() const { return !space; } - protected: - Token() {} - int atom; - bool space; // did a space precede the token? - long long i64val; - TString name; - }; - - TokenStream() : currentPos(0) { } - - void putToken(int token, TPpToken* ppToken); - bool peekToken(int atom) { return !atEnd() && stream[currentPos].isAtom(atom); } - bool peekContinuedPasting(int atom) - { - // This is basically necessary because, for example, the PP - // tokenizer only accepts valid numeric-literals plus suffixes, so - // separates numeric-literals plus bad suffix into two tokens, which - // should get both pasted together as one token when token pasting. - // - // The following code is a bit more generalized than the above example. - if (!atEnd() && atom == PpAtomIdentifier && stream[currentPos].nonSpaced()) { - switch(stream[currentPos].getAtom()) { - case PpAtomConstInt: - case PpAtomConstUint: - case PpAtomConstInt64: - case PpAtomConstUint64: - case PpAtomConstInt16: - case PpAtomConstUint16: - case PpAtomConstFloat: - case PpAtomConstDouble: - case PpAtomConstFloat16: - case PpAtomConstString: - case PpAtomIdentifier: - return true; - default: - break; - } - } - - return false; - } - int getToken(TParseContextBase&, TPpToken*); - bool atEnd() { return currentPos >= stream.size(); } - bool peekTokenizedPasting(bool lastTokenPastes); - bool peekUntokenizedPasting(); - void reset() { currentPos = 0; } - - protected: - TVector stream; - size_t currentPos; - }; - - // - // From Pp.cpp - // - - struct MacroSymbol { - MacroSymbol() : functionLike(0), busy(0), undef(0) { } - TVector args; - TokenStream body; - unsigned functionLike : 1; // 0 means object-like, 1 means function-like - 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; } - -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 - size_t* lengths; - int numStrings; // how many official strings there are - int currentString; // which string we're currently parsing (-1 for preamble) - - // Scanner data: - int previous_token; - 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. - // Return EndOfInput when there are no more tokens to be found by doing this. - int scanToken(TPpToken* ppToken) - { - int token = EndOfInput; - - while (! inputStack.empty()) { - token = inputStack.back()->scan(ppToken); - if (token != EndOfInput || inputStack.empty()) - break; - popInput(); - } - - return token; - } - int getChar() { return inputStack.back()->getch(); } - void ungetChar() { inputStack.back()->ungetch(); } - bool peekPasting() { return !inputStack.empty() && inputStack.back()->peekPasting(); } - bool peekContinuedPasting(int a) - { - return !inputStack.empty() && inputStack.back()->peekContinuedPasting(a); - } - bool endOfReplacementList() { return inputStack.empty() || inputStack.back()->endOfReplacementList(); } - bool isMacroInput() { return inputStack.size() > 0 && inputStack.back()->isMacroInput(); } - - 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 - int elsetracker; // #if-#else and #endif constructs...Counter. - - class tMacroInput : public tInput { - public: - 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*) override; - virtual int getch() override { assert(0); return EndOfInput; } - virtual void ungetch() override { assert(0); } - bool peekPasting() override { return prepaste; } - bool peekContinuedPasting(int a) override { return mac->body.peekContinuedPasting(a); } - 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*) override - { - if (done) - return EndOfInput; - done = true; - - return marker; - } - 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*) override; - virtual int getch() override { assert(0); return EndOfInput; } - virtual void ungetch() override { assert(0); } - }; - - std::vector inputStack; - bool errorOnVersion; - bool versionSeen; - - // - // from Pp.cpp - // - - // Used to obtain #include content. - TShader::Includer& includer; - - int CPPdefine(TPpToken * ppToken); - int CPPundef(TPpToken * ppToken); - int CPPelse(int matchelse, TPpToken * ppToken); - int extraTokenCheck(int atom, TPpToken* ppToken, int token); - int eval(int token, int precedence, bool shortCircuit, int& res, bool& err, TPpToken * ppToken); - int evalToToken(int token, bool shortCircuit, int& res, bool& err, TPpToken * ppToken); - int CPPif (TPpToken * ppToken); - int CPPifdef(int defined, TPpToken * ppToken); - int CPPinclude(TPpToken * ppToken); - int CPPline(TPpToken * ppToken); - int CPPerror(TPpToken * ppToken); - int CPPpragma(TPpToken * ppToken); - int CPPversion(TPpToken * ppToken); - int CPPextension(TPpToken * ppToken); - int readCPPline(TPpToken * ppToken); - int scanHeaderName(TPpToken* ppToken, char delimit); - TokenStream* PrescanMacroArg(TokenStream&, TPpToken*, bool newLineOkay); - MacroExpandResult MacroExpand(TPpToken* ppToken, bool expandUndef, bool newLineOkay); - - // - // From PpTokens.cpp - // - void pushTokenStreamInput(TokenStream&, bool pasting = false); - void UngetToken(int token, TPpToken*); - - 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); } - bool peekContinuedPasting(int a) override { return tokens->peekContinuedPasting(a); } - protected: - TokenStream* tokens; - bool lastTokenPastes; // true if the last token in the input is to be pasted, rather than consumed as a token - }; - - class tUngotTokenInput : public tInput { - 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); } - protected: - int token; - TPpToken lval; - }; - - // - // From PpScanner.cpp - // - class tStringInput : public tInput { - public: - tStringInput(TPpContext* pp, TInputScanner& i) : tInput(pp), input(&i) { } - 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() override - { - int ch = input->get(); - - if (ch == '\\') { - // 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); - if (! allowed && pp->inComment) - return '\\'; - - // escape one newline now - ch = input->get(); - int nextch = input->get(); - if (ch == '\r' && nextch == '\n') - ch = input->get(); - else - ch = nextch; - } else - return '\\'; - } while (ch == '\\'); - } - - // handle any non-escaped newline - if (ch == '\r' || ch == '\n') { - if (ch == '\r' && input->peek() == '\n') - input->get(); - return '\n'; - } - - return ch; - } - - // Scanner used to backup the source stream characters. Newlines are - // 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 - { - input->unget(); - - do { - int ch = input->peek(); - if (ch == '\r' || ch == '\n') { - if (ch == '\n') { - // correct for two-character newline - input->unget(); - if (input->peek() != '\r') - input->get(); - } - // now in front of a complete newline, move past an escape character - input->unget(); - if (input->peek() == '\\') - input->unget(); - else { - input->get(); - break; - } - } else - break; - } while (true); - } - - protected: - TInputScanner* input; - }; - - // Holds a reference to included file data, as well as a - // prologue and an epilogue string. This can be scanned using the tInput - // interface and acts as a single source string. - class TokenizableIncludeFile : public tInput { - public: - // Copies prologue and epilogue. The includedFile must remain valid - // until this TokenizableIncludeFile is no longer used. - TokenizableIncludeFile(const TSourceLoc& startLoc, - const std::string& prologue, - TShader::Includer::IncludeResult* includedFile, - const std::string& epilogue, - TPpContext* pp) - : tInput(pp), - prologue_(prologue), - epilogue_(epilogue), - includedFile_(includedFile), - scanner(3, strings, lengths, nullptr, 0, 0, true), - prevScanner(nullptr), - stringInput(pp, scanner) - { - strings[0] = prologue_.data(); - strings[1] = includedFile_->headerData; - strings[2] = epilogue_.data(); - - lengths[0] = prologue_.size(); - lengths[1] = includedFile_->headerLength; - lengths[2] = epilogue_.size(); - - scanner.setLine(startLoc.line); - scanner.setString(startLoc.string); - - scanner.setFile(startLoc.getFilenameStr(), 0); - scanner.setFile(startLoc.getFilenameStr(), 1); - scanner.setFile(startLoc.getFilenameStr(), 2); - } - - // tInput methods: - int scan(TPpToken* t) override { return stringInput.scan(t); } - int getch() override { return stringInput.getch(); } - void ungetch() override { stringInput.ungetch(); } - - void notifyActivated() override - { - prevScanner = pp->parseContext.getScanner(); - pp->parseContext.setScanner(&scanner); - pp->push_include(includedFile_); - } - - void notifyDeleted() override - { - pp->parseContext.setScanner(prevScanner); - pp->pop_include(); - } - - private: - TokenizableIncludeFile& operator=(const TokenizableIncludeFile&); - - // Stores the prologue for this string. - const std::string prologue_; - - // Stores the epilogue for this string. - const std::string epilogue_; - - // Points to the IncludeResult that this TokenizableIncludeFile represents. - TShader::Includer::IncludeResult* includedFile_; - - // 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. - const char* strings[3]; - // Length of str_, passed to scanner constructor. - size_t lengths[3]; - // Scans over str_. - TInputScanner scanner; - // The previous effective scanner before the scanner in this instance - // has been activated. - TInputScanner* prevScanner; - // Delegate object implementing the tInput interface. - tStringInput stringInput; - }; - - 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; - includeStack.push(result); - } - - void pop_include() - { - TShader::Includer::IncludeResult* include = includeStack.top(); - includeStack.pop(); - includer.releaseInclude(include); - if (includeStack.empty()) { - currentSourceFile = rootFileName; - } else { - currentSourceFile = includeStack.top()->headerName; - } - } - - bool inComment; - std::string rootFileName; - std::stack includeStack; - std::string currentSourceFile; - - std::istringstream strtodStream; - bool disableEscapeSequences; -}; - -} // end namespace glslang - -#endif // PPCONTEXT_H diff --git a/deps/glslang/glslang/MachineIndependent/preprocessor/PpScanner.cpp b/deps/glslang/glslang/MachineIndependent/preprocessor/PpScanner.cpp deleted file mode 100644 index ad117920..00000000 --- a/deps/glslang/glslang/MachineIndependent/preprocessor/PpScanner.cpp +++ /dev/null @@ -1,1317 +0,0 @@ -// -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2013 LunarG, Inc. -// Copyright (C) 2017 ARM Limited. -// Copyright (C) 2015-2018 Google, Inc. -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// Neither the name of 3Dlabs Inc. Ltd. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -// -/****************************************************************************\ -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: ///////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////// - -// -// 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). -// -// This is technically not correct, as the preprocessor should just -// accept the numeric literal along with whatever suffix it has, but -// currently, it stops on seeing a bad suffix, treating that as the -// next token. This effects things like token pasting, where it is -// relevant how many tokens something was broken into. -// -// See peekContinuedPasting(). -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; - -#ifdef ENABLE_HLSL - // 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; - } - } - } -#endif - - // 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; -#ifndef GLSLANG_WEB - 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 -#endif - if (ch == 'f' || ch == 'F') { -#ifndef GLSLANG_WEB - 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"); -#endif - 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 - ppToken->dval = 0.0; - - // remove suffix - TString numstr(ppToken->name); - if (numstr.back() == 'f' || numstr.back() == 'F') - numstr.pop_back(); - if (numstr.back() == 'h' || numstr.back() == 'H') - numstr.pop_back(); - if (numstr.back() == 'l' || numstr.back() == 'L') - numstr.pop_back(); - - // use platform library - strtodStream.clear(); - strtodStream.str(numstr.c_str()); - strtodStream >> ppToken->dval; - if (strtodStream.fail()) { - // Assume failure combined with a large exponent was overflow, in - // an attempt to set INF. - if (!negativeExponent && exponent + numWholeNumberDigits > 300) - ppToken->i64val = 0x7ff0000000000000; // +Infinity - // Assume failure combined with a small exponent was overflow. - if (negativeExponent && exponent + numWholeNumberDigits > 300) - ppToken->dval = 0.0; - // Unknown reason for failure. Theory is that either - // - the 0.0 is still there, or - // - something reasonable was written that is better than 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. -// -// N.B. Invalid numeric suffixes are not consumed.// -// This is technically not correct, as the preprocessor should just -// accept the numeric literal along with whatever suffix it has, but -// currently, it stops on seeing a bad suffix, treating that as the -// next token. This effects things like token pasting, where it is -// relevant how many tokens something was broken into. -// See peekContinuedPasting(). -// -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_EXT_shader_explicit_arithmetic_types, - E_GL_EXT_shader_explicit_arithmetic_types_int64 }; - static const int Num_Int64_Extensions = sizeof(Int64_Extensions) / sizeof(Int64_Extensions[0]); - - static const char* const Int16_Extensions[] = { - E_GL_AMD_gpu_shader_int16, - E_GL_EXT_shader_explicit_arithmetic_types, - E_GL_EXT_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; - -#ifndef GLSLANG_WEB - int nextCh = getch(); - if (nextCh == 'l' || nextCh == 'L') { - if (len < MaxTokenLength) - ppToken->name[len++] = (char)nextCh; - isInt64 = true; - } else - ungetch(); - - nextCh = getch(); - if ((nextCh == 's' || nextCh == 'S') && - pp->parseContext.intermediate.getSource() == EShSourceGlsl) { - if (len < MaxTokenLength) - ppToken->name[len++] = (char)nextCh; - isInt16 = true; - } else - ungetch(); - } else if (ch == 'l' || ch == 'L') { - if (len < MaxTokenLength) - ppToken->name[len++] = (char)ch; - isInt64 = true; - } 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; - -#ifndef GLSLANG_WEB - int nextCh = getch(); - if (nextCh == 'l' || nextCh == 'L') { - if (len < MaxTokenLength) - ppToken->name[len++] = (char)nextCh; - isInt64 = true; - } else - ungetch(); - - nextCh = getch(); - if ((nextCh == 's' || nextCh == 'S') && - pp->parseContext.intermediate.getSource() == EShSourceGlsl) { - if (len < MaxTokenLength) - ppToken->name[len++] = (char)nextCh; - isInt16 = true; - } else - ungetch(); - } else if (ch == 'l' || ch == 'L') { - if (len < MaxTokenLength) - ppToken->name[len++] = (char)ch; - isInt64 = true; - } 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; - -#ifndef GLSLANG_WEB - int nextCh = getch(); - if (nextCh == 'l' || nextCh == 'L') { - if (len < MaxTokenLength) - ppToken->name[len++] = (char)nextCh; - isInt64 = true; - } else - ungetch(); - - nextCh = getch(); - if ((nextCh == 's' || nextCh == 'S') && - pp->parseContext.intermediate.getSource() == EShSourceGlsl) { - if (len < MaxTokenLength) - ppToken->name[len++] = (char)nextCh; - isInt16 = true; - } else - ungetch(); - } else if (ch == 'l' || ch == 'L') { - if (len < MaxTokenLength) - ppToken->name[len++] = (char)ch; - isInt64 = true; - } 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 '"': - // #include uses scanHeaderName() to ignore these escape sequences. - ch = getch(); - while (ch != '"' && ch != '\n' && ch != EndOfInput) { - if (len < MaxTokenLength) { - if (ch == '\\' && !pp->disableEscapeSequences) { - int nextCh = getch(); - switch (nextCh) { - case '\'': ch = 0x27; break; - case '"': ch = 0x22; break; - case '?': ch = 0x3f; break; - case '\\': ch = 0x5c; break; - case 'a': ch = 0x07; break; - case 'b': ch = 0x08; break; - case 'f': ch = 0x0c; break; - case 'n': ch = 0x0a; break; - case 'r': ch = 0x0d; break; - case 't': ch = 0x09; break; - case 'v': ch = 0x0b; break; - case 'x': - // Hex value, arbitrary number of characters. Terminated by the first - // non-hex digit - { - int numDigits = 0; - ch = 0; - while (true) { - nextCh = getch(); - if (nextCh >= '0' && nextCh <= '9') - nextCh -= '0'; - else if (nextCh >= 'A' && nextCh <= 'F') - nextCh -= 'A' - 10; - else if (nextCh >= 'a' && nextCh <= 'f') - nextCh -= 'a' - 10; - else { - ungetch(); - break; - } - numDigits++; - ch = ch * 0x10 + nextCh; - } - if (numDigits == 0) { - pp->parseContext.ppError(ppToken->loc, "Expected hex value in escape sequence", "string", ""); - } - break; - } - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - // Octal value, up to three octal digits - { - int numDigits = 1; - ch = nextCh - '0'; - while (numDigits < 3) { - nextCh = getch(); - if (nextCh >= '0' && nextCh <= '7') - nextCh -= '0'; - else { - ungetch(); - break; - } - numDigits++; - ch = ch * 8 + nextCh; - } - break; - } - default: - pp->parseContext.ppError(ppToken->loc, "Invalid escape sequence", "string", ""); - break; - } - } - 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) { - switch (MacroExpand(&ppToken, false, true)) { - case MacroExpandNotStarted: - break; - case MacroExpandError: - return EndOfInput; - case MacroExpandStarted: - case MacroExpandUndef: - 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: - // HLSL allows string literals. - // GLSL allows string literals with GL_EXT_debug_printf. - if (ifdepth == 0 && parseContext.intermediate.getSource() != EShSourceHlsl) { - const char* const string_literal_EXTs[] = { E_GL_EXT_debug_printf, E_GL_EXT_spirv_intrinsics }; - parseContext.requireExtensions(ppToken.loc, 2, string_literal_EXTs, "string literal"); - if (!parseContext.extensionTurnedOn(E_GL_EXT_debug_printf) && - !parseContext.extensionTurnedOn(E_GL_EXT_spirv_intrinsics)) - continue; - } - break; - case '\'': - parseContext.ppError(ppToken.loc, "character literals not supported", "\'", ""); - continue; - default: - snprintf(ppToken.name, sizeof(ppToken.name), "%s", 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(s) after the ##. - // Because of "space" semantics, and prior tokenization, what - // appeared a single token, e.g. "3A", might have been tokenized - // into two tokens "3" and "A", but the "A" will have 'space' set to - // false. Accumulate all of these to recreate the original lexical - // appearing token. - do { - token = scanToken(&pastedPpToken); - - // This covers end of argument expansion - if (token == tMarkerInput::marker) { - parseContext.ppError(ppToken.loc, "unexpected location; end of argument", "##", ""); - return resultToken; - } - - // 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: - snprintf(ppToken.name, sizeof(ppToken.name), "%s", atomStrings.getString(resultToken)); - snprintf(pastedPpToken.name, sizeof(pastedPpToken.name), "%s", 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; - } - snprintf(&ppToken.name[0] + strlen(ppToken.name), sizeof(ppToken.name) - strlen(ppToken.name), - "%s", pastedPpToken.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", "##", ""); - } - } while (peekContinuedPasting(resultToken)); - } - - 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/glslang/MachineIndependent/preprocessor/PpTokens.cpp b/deps/glslang/glslang/MachineIndependent/preprocessor/PpTokens.cpp deleted file mode 100644 index 7ed58703..00000000 --- a/deps/glslang/glslang/MachineIndependent/preprocessor/PpTokens.cpp +++ /dev/null @@ -1,221 +0,0 @@ -// -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2013 LunarG, Inc. -// Copyright (C) 2015-2018 Google, Inc. -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// Neither the name of 3Dlabs Inc. Ltd. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -// -/****************************************************************************\ -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 { - -// Add a token (including backing string) to the end of a macro -// token stream, for later playback. -void TPpContext::TokenStream::putToken(int atom, TPpToken* ppToken) -{ - TokenStream::Token streamToken(atom, *ppToken); - stream.push_back(streamToken); -} - -// Read the next token from a macro token stream. -int TPpContext::TokenStream::getToken(TParseContextBase& parseContext, TPpToken *ppToken) -{ - if (atEnd()) - return EndOfInput; - - int atom = stream[currentPos++].get(*ppToken); - ppToken->loc = parseContext.getCurrentLoc(); - -#ifndef GLSLANG_WEB - // Check for ##, unless the current # is the last character - if (atom == '#') { - if (peekToken('#')) { - parseContext.requireProfile(ppToken->loc, ~EEsProfile, "token pasting (##)"); - parseContext.profileRequires(ppToken->loc, ~EEsProfile, 130, 0, "token pasting (##)"); - currentPos++; - atom = PpAtomPaste; - } - } -#endif - - 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 = currentPos; - // skip white space - while (peekToken(' ')) - ++currentPos; - if (peekToken(PpAtomPaste)) { - currentPos = savePos; - 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 = currentPos; - bool moreTokens = false; - do { - if (atEnd()) - break; - if (!peekToken(' ')) { - moreTokens = true; - break; - } - ++currentPos; - } while (true); - currentPos = 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 = currentPos; - - // skip white-space - while (peekToken(' ')) - ++currentPos; - - // check for ## - bool pasting = false; - if (peekToken('#')) { - ++currentPos; - if (peekToken('#')) - pasting = true; - } - - currentPos = 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/glslang/MachineIndependent/preprocessor/PpTokens.h b/deps/glslang/glslang/MachineIndependent/preprocessor/PpTokens.h deleted file mode 100644 index 7b0f8155..00000000 --- a/deps/glslang/glslang/MachineIndependent/preprocessor/PpTokens.h +++ /dev/null @@ -1,179 +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. -// -/****************************************************************************\ -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 PARSER_H -#define PARSER_H - -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, - - // Operators - - PPAtomAddAssign, - PPAtomSubAssign, - PPAtomMulAssign, - PPAtomDivAssign, - PPAtomModAssign, - - PpAtomRight, - PpAtomLeft, - - PpAtomRightAssign, - PpAtomLeftAssign, - PpAtomAndAssign, - PpAtomOrAssign, - PpAtomXorAssign, - - PpAtomAnd, - PpAtomOr, - PpAtomXor, - - PpAtomEQ, - PpAtomNE, - PpAtomGE, - PpAtomLE, - - PpAtomDecrement, - PpAtomIncrement, - - PpAtomColonColon, - - PpAtomPaste, - - // Constants - - PpAtomConstInt, - PpAtomConstUint, - PpAtomConstInt64, - PpAtomConstUint64, - PpAtomConstInt16, - PpAtomConstUint16, - PpAtomConstFloat, - PpAtomConstDouble, - PpAtomConstFloat16, - PpAtomConstString, - - // Identifiers - PpAtomIdentifier, - - // preprocessor "keywords" - - PpAtomDefine, - PpAtomUndef, - - PpAtomIf, - PpAtomIfdef, - PpAtomIfndef, - PpAtomElse, - PpAtomElif, - PpAtomEndif, - - PpAtomLine, - PpAtomPragma, - PpAtomError, - - // #version ... - PpAtomVersion, - PpAtomCore, - PpAtomCompatibility, - PpAtomEs, - - // #extension - PpAtomExtension, - - // __LINE__, __FILE__, __VERSION__ - - PpAtomLineMacro, - PpAtomFileMacro, - PpAtomVersionMacro, - - // #include - PpAtomInclude, - - PpAtomLast, -}; - -} // end namespace glslang - -#endif /* not PARSER_H */ diff --git a/deps/glslang/glslang/MachineIndependent/propagateNoContraction.cpp b/deps/glslang/glslang/MachineIndependent/propagateNoContraction.cpp deleted file mode 100644 index 9def592b..00000000 --- a/deps/glslang/glslang/MachineIndependent/propagateNoContraction.cpp +++ /dev/null @@ -1,870 +0,0 @@ -// -// Copyright (C) 2015-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. - -// -// Visit the nodes in the glslang intermediate tree representation to -// propagate the 'noContraction' qualifier. -// - -#ifndef GLSLANG_WEB - -#include "propagateNoContraction.h" - -#include -#include -#include -#include -#include - -#include "localintermediate.h" -namespace { - -// Use a string to hold the access chain information, as in most cases the -// access chain is short and may contain only one element, which is the symbol -// ID. -// Example: struct {float a; float b;} s; -// Object s.a will be represented with: /0 -// Object s.b will be represented with: /1 -// Object s will be represented with: -// For members of vector, matrix and arrays, they will be represented with the -// same symbol ID of their container symbol objects. This is because their -// preciseness is always the same as their container symbol objects. -typedef std::string ObjectAccessChain; - -// The delimiter used in the ObjectAccessChain string to separate symbol ID and -// different level of struct indices. -const char ObjectAccesschainDelimiter = '/'; - -// Mapping from Symbol IDs of symbol nodes, to their defining operation -// nodes. -typedef std::unordered_multimap NodeMapping; -// Mapping from object nodes to their access chain info string. -typedef std::unordered_map AccessChainMapping; - -// Set of object IDs. -typedef std::unordered_set ObjectAccesschainSet; -// Set of return branch nodes. -typedef std::unordered_set ReturnBranchNodeSet; - -// A helper function to tell whether a node is 'noContraction'. Returns true if -// the node has 'noContraction' qualifier, otherwise false. -bool isPreciseObjectNode(glslang::TIntermTyped* node) -{ - return node->getType().getQualifier().isNoContraction(); -} - -// Returns true if the opcode is a dereferencing one. -bool isDereferenceOperation(glslang::TOperator op) -{ - switch (op) { - case glslang::EOpIndexDirect: - case glslang::EOpIndexDirectStruct: - case glslang::EOpIndexIndirect: - case glslang::EOpVectorSwizzle: - case glslang::EOpMatrixSwizzle: - return true; - default: - return false; - } -} - -// Returns true if the opcode leads to an assignment operation. -bool isAssignOperation(glslang::TOperator op) -{ - switch (op) { - case glslang::EOpAssign: - case glslang::EOpAddAssign: - case glslang::EOpSubAssign: - case glslang::EOpMulAssign: - case glslang::EOpVectorTimesMatrixAssign: - case glslang::EOpVectorTimesScalarAssign: - case glslang::EOpMatrixTimesScalarAssign: - case glslang::EOpMatrixTimesMatrixAssign: - case glslang::EOpDivAssign: - case glslang::EOpModAssign: - case glslang::EOpAndAssign: - case glslang::EOpLeftShiftAssign: - case glslang::EOpRightShiftAssign: - case glslang::EOpInclusiveOrAssign: - case glslang::EOpExclusiveOrAssign: - - case glslang::EOpPostIncrement: - case glslang::EOpPostDecrement: - case glslang::EOpPreIncrement: - case glslang::EOpPreDecrement: - return true; - default: - return false; - } -} - -// A helper function to get the unsigned int from a given constant union node. -// Note the node should only hold a uint scalar. -unsigned getStructIndexFromConstantUnion(glslang::TIntermTyped* node) -{ - assert(node->getAsConstantUnion() && node->getAsConstantUnion()->isScalar()); - unsigned struct_dereference_index = node->getAsConstantUnion()->getConstArray()[0].getUConst(); - return struct_dereference_index; -} - -// A helper function to generate symbol_label. -ObjectAccessChain generateSymbolLabel(glslang::TIntermSymbol* node) -{ - ObjectAccessChain symbol_id = - std::to_string(node->getId()) + "(" + node->getName().c_str() + ")"; - return symbol_id; -} - -// Returns true if the operation is an arithmetic operation and valid for -// the 'NoContraction' decoration. -bool isArithmeticOperation(glslang::TOperator op) -{ - switch (op) { - case glslang::EOpAddAssign: - case glslang::EOpSubAssign: - case glslang::EOpMulAssign: - case glslang::EOpVectorTimesMatrixAssign: - case glslang::EOpVectorTimesScalarAssign: - case glslang::EOpMatrixTimesScalarAssign: - case glslang::EOpMatrixTimesMatrixAssign: - case glslang::EOpDivAssign: - case glslang::EOpModAssign: - - case glslang::EOpNegative: - - case glslang::EOpAdd: - case glslang::EOpSub: - case glslang::EOpMul: - case glslang::EOpDiv: - case glslang::EOpMod: - - case glslang::EOpVectorTimesScalar: - case glslang::EOpVectorTimesMatrix: - case glslang::EOpMatrixTimesVector: - case glslang::EOpMatrixTimesScalar: - case glslang::EOpMatrixTimesMatrix: - - case glslang::EOpDot: - - case glslang::EOpPostIncrement: - case glslang::EOpPostDecrement: - case glslang::EOpPreIncrement: - case glslang::EOpPreDecrement: - return true; - default: - return false; - } -} - -// A helper class to help manage the populating_initial_no_contraction_ flag. -template class StateSettingGuard { -public: - StateSettingGuard(T* state_ptr, T new_state_value) - : state_ptr_(state_ptr), previous_state_(*state_ptr) - { - *state_ptr = new_state_value; - } - StateSettingGuard(T* state_ptr) : state_ptr_(state_ptr), previous_state_(*state_ptr) {} - void setState(T new_state_value) { *state_ptr_ = new_state_value; } - ~StateSettingGuard() { *state_ptr_ = previous_state_; } - -private: - T* state_ptr_; - T previous_state_; -}; - -// A helper function to get the front element from a given ObjectAccessChain -ObjectAccessChain getFrontElement(const ObjectAccessChain& chain) -{ - size_t pos_delimiter = chain.find(ObjectAccesschainDelimiter); - return pos_delimiter == std::string::npos ? chain : chain.substr(0, pos_delimiter); -} - -// A helper function to get the access chain starting from the second element. -ObjectAccessChain subAccessChainFromSecondElement(const ObjectAccessChain& chain) -{ - size_t pos_delimiter = chain.find(ObjectAccesschainDelimiter); - return pos_delimiter == std::string::npos ? "" : chain.substr(pos_delimiter + 1); -} - -// A helper function to get the access chain after removing a given prefix. -ObjectAccessChain getSubAccessChainAfterPrefix(const ObjectAccessChain& chain, - const ObjectAccessChain& prefix) -{ - size_t pos = chain.find(prefix); - if (pos != 0) - return chain; - return chain.substr(prefix.length() + sizeof(ObjectAccesschainDelimiter)); -} - -// -// A traverser which traverses the whole AST and populates: -// 1) A mapping from symbol nodes' IDs to their defining operation nodes. -// 2) A set of access chains of the initial precise object nodes. -// -class TSymbolDefinitionCollectingTraverser : public glslang::TIntermTraverser { -public: - TSymbolDefinitionCollectingTraverser(NodeMapping* symbol_definition_mapping, - AccessChainMapping* accesschain_mapping, - ObjectAccesschainSet* precise_objects, - ReturnBranchNodeSet* precise_return_nodes); - - bool visitUnary(glslang::TVisit, glslang::TIntermUnary*) override; - bool visitBinary(glslang::TVisit, glslang::TIntermBinary*) override; - void visitSymbol(glslang::TIntermSymbol*) override; - bool visitAggregate(glslang::TVisit, glslang::TIntermAggregate*) override; - bool visitBranch(glslang::TVisit, glslang::TIntermBranch*) override; - -protected: - TSymbolDefinitionCollectingTraverser& operator=(const TSymbolDefinitionCollectingTraverser&); - - // The mapping from symbol node IDs to their defining nodes. This should be - // populated along traversing the AST. - NodeMapping& symbol_definition_mapping_; - // The set of symbol node IDs for precise symbol nodes, the ones marked as - // 'noContraction'. - ObjectAccesschainSet& precise_objects_; - // The set of precise return nodes. - ReturnBranchNodeSet& precise_return_nodes_; - // A temporary cache of the symbol node whose defining node is to be found - // currently along traversing the AST. - ObjectAccessChain current_object_; - // A map from object node to its access chain. This traverser stores - // the built access chains into this map for each object node it has - // visited. - AccessChainMapping& accesschain_mapping_; - // The pointer to the Function Definition node, so we can get the - // preciseness of the return expression from it when we traverse the - // return branch node. - glslang::TIntermAggregate* current_function_definition_node_; -}; - -TSymbolDefinitionCollectingTraverser::TSymbolDefinitionCollectingTraverser( - NodeMapping* symbol_definition_mapping, AccessChainMapping* accesschain_mapping, - 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) {} - -// Visits a symbol node, set the current_object_ to the -// current node symbol ID, and record a mapping from this node to the current -// current_object_, which is the just obtained symbol -// ID. -void TSymbolDefinitionCollectingTraverser::visitSymbol(glslang::TIntermSymbol* node) -{ - current_object_ = generateSymbolLabel(node); - accesschain_mapping_[node] = current_object_; -} - -// Visits an aggregate node, traverses all of its children. -bool TSymbolDefinitionCollectingTraverser::visitAggregate(glslang::TVisit, - glslang::TIntermAggregate* node) -{ - // This aggregate node might be a function definition node, in which case we need to - // cache this node, so we can get the preciseness information of the return value - // of this function later. - StateSettingGuard current_function_definition_node_setting_guard( - ¤t_function_definition_node_); - if (node->getOp() == glslang::EOpFunction) { - // This is function definition node, we need to cache this node so that we can - // get the preciseness of the return value later. - current_function_definition_node_setting_guard.setState(node); - } - // Traverse the items in the sequence. - glslang::TIntermSequence& seq = node->getSequence(); - for (int i = 0; i < (int)seq.size(); ++i) { - current_object_.clear(); - seq[i]->traverse(this); - } - return false; -} - -bool TSymbolDefinitionCollectingTraverser::visitBranch(glslang::TVisit, - glslang::TIntermBranch* node) -{ - if (node->getFlowOp() == glslang::EOpReturn && node->getExpression() && - current_function_definition_node_ && - current_function_definition_node_->getType().getQualifier().noContraction) { - // This node is a return node with an expression, and its function has a - // precise return value. We need to find the involved objects in its - // expression and add them to the set of initial precise objects. - precise_return_nodes_.insert(node); - node->getExpression()->traverse(this); - } - return false; -} - -// Visits a unary node. This might be an implicit assignment like i++, i--. etc. -bool TSymbolDefinitionCollectingTraverser::visitUnary(glslang::TVisit /* visit */, - glslang::TIntermUnary* node) -{ - current_object_.clear(); - node->getOperand()->traverse(this); - if (isAssignOperation(node->getOp())) { - // We should always be able to get an access chain of the operand node. - assert(!current_object_.empty()); - - // If the operand node object is 'precise', we collect its access chain - // for the initial set of 'precise' objects. - if (isPreciseObjectNode(node->getOperand())) { - // The operand node is an 'precise' object node, add its - // access chain to the set of 'precise' objects. This is to collect - // the initial set of 'precise' objects. - precise_objects_.insert(current_object_); - } - // Gets the symbol ID from the object's access chain. - ObjectAccessChain id_symbol = getFrontElement(current_object_); - // Add a mapping from the symbol ID to this assignment operation node. - symbol_definition_mapping_.insert(std::make_pair(id_symbol, node)); - } - // A unary node is not a dereference node, so we clear the access chain which - // is under construction. - current_object_.clear(); - return false; -} - -// Visits a binary node and updates the mapping from symbol IDs to the definition -// nodes. Also collects the access chains for the initial precise objects. -bool TSymbolDefinitionCollectingTraverser::visitBinary(glslang::TVisit /* visit */, - glslang::TIntermBinary* node) -{ - // Traverses the left node to build the access chain info for the object. - current_object_.clear(); - node->getLeft()->traverse(this); - - if (isAssignOperation(node->getOp())) { - // We should always be able to get an access chain for the left node. - assert(!current_object_.empty()); - - // If the left node object is 'precise', it is an initial precise object - // specified in the shader source. Adds it to the initial work list to - // process later. - if (isPreciseObjectNode(node->getLeft())) { - // The left node is an 'precise' object node, add its access chain to - // the set of 'precise' objects. This is to collect the initial set - // of 'precise' objects. - precise_objects_.insert(current_object_); - } - // Gets the symbol ID from the object access chain, which should be the - // first element recorded in the access chain. - ObjectAccessChain id_symbol = getFrontElement(current_object_); - // Adds a mapping from the symbol ID to this assignment operation node. - symbol_definition_mapping_.insert(std::make_pair(id_symbol, node)); - - // Traverses the right node, there may be other 'assignment' - // operations in the right. - current_object_.clear(); - node->getRight()->traverse(this); - - } else if (isDereferenceOperation(node->getOp())) { - // The left node (parent node) is a struct type object. We need to - // record the access chain information of the current node into its - // object id. - if (node->getOp() == glslang::EOpIndexDirectStruct) { - unsigned struct_dereference_index = getStructIndexFromConstantUnion(node->getRight()); - current_object_.push_back(ObjectAccesschainDelimiter); - current_object_.append(std::to_string(struct_dereference_index)); - } - accesschain_mapping_[node] = current_object_; - - // For a dereference node, there is no need to traverse the right child - // node as the right node should always be an integer type object. - - } else { - // For other binary nodes, still traverse the right node. - current_object_.clear(); - node->getRight()->traverse(this); - } - return false; -} - -// Traverses the AST and returns a tuple of four members: -// 1) a mapping from symbol IDs to the definition nodes (aka. assignment nodes) of these symbols. -// 2) a mapping from object nodes in the AST to the access chains of these objects. -// 3) a set of access chains of precise objects. -// 4) a set of return nodes with precise expressions. -std::tuple -getSymbolToDefinitionMappingAndPreciseSymbolIDs(const glslang::TIntermediate& intermediate) -{ - auto result_tuple = std::make_tuple(NodeMapping(), AccessChainMapping(), ObjectAccesschainSet(), - ReturnBranchNodeSet()); - - TIntermNode* root = intermediate.getTreeRoot(); - if (root == 0) - return result_tuple; - - NodeMapping& symbol_definition_mapping = std::get<0>(result_tuple); - AccessChainMapping& accesschain_mapping = std::get<1>(result_tuple); - ObjectAccesschainSet& precise_objects = std::get<2>(result_tuple); - ReturnBranchNodeSet& precise_return_nodes = std::get<3>(result_tuple); - - // Traverses the AST and populate the results. - TSymbolDefinitionCollectingTraverser collector(&symbol_definition_mapping, &accesschain_mapping, - &precise_objects, &precise_return_nodes); - root->traverse(&collector); - - return result_tuple; -} - -// -// A traverser that determine whether the left node (or operand node for unary -// node) of an assignment node is 'precise', containing 'precise' or not, -// according to the access chain a given precise object which share the same -// symbol as the left node. -// -// Post-orderly traverses the left node subtree of an binary assignment node and: -// -// 1) Propagates the 'precise' from the left object nodes to this object node. -// -// 2) Builds object access chain along the traversal, and also compares with -// the access chain of the given 'precise' object along with the traversal to -// tell if the node to be defined is 'precise' or not. -// -class TNoContractionAssigneeCheckingTraverser : public glslang::TIntermTraverser { - - enum DecisionStatus { - // The object node to be assigned to may contain 'precise' objects and also not 'precise' objects. - Mixed = 0, - // The object node to be assigned to is either a 'precise' object or a struct objects whose members are all 'precise'. - Precise = 1, - // The object node to be assigned to is not a 'precise' object. - NotPreicse = 2, - }; - -public: - TNoContractionAssigneeCheckingTraverser(const AccessChainMapping& accesschain_mapping) - : TIntermTraverser(true, false, false), accesschain_mapping_(accesschain_mapping), - precise_object_(nullptr) {} - - // Checks the preciseness of a given assignment node with a precise object - // represented as access chain. The precise object shares the same symbol - // with the assignee of the given assignment node. Return a tuple of two: - // - // 1) The preciseness of the assignee node of this assignment node. True - // if the assignee contains 'precise' objects or is 'precise', false if - // the assignee is not 'precise' according to the access chain of the given - // precise object. - // - // 2) The incremental access chain from the assignee node to its nested - // 'precise' object, according to the access chain of the given precise - // object. This incremental access chain can be empty, which means the - // assignee is 'precise'. Otherwise it shows the path to the nested - // precise object. - std::tuple - getPrecisenessAndRemainedAccessChain(glslang::TIntermOperator* node, - const ObjectAccessChain& precise_object) - { - assert(isAssignOperation(node->getOp())); - precise_object_ = &precise_object; - ObjectAccessChain assignee_object; - if (glslang::TIntermBinary* BN = node->getAsBinaryNode()) { - // This is a binary assignment node, we need to check the - // preciseness of the left node. - assert(accesschain_mapping_.count(BN->getLeft())); - // The left node (assignee node) is an object node, traverse the - // node to let the 'precise' of nesting objects being transfered to - // nested objects. - BN->getLeft()->traverse(this); - // After traversing the left node, if the left node is 'precise', - // we can conclude this assignment should propagate 'precise'. - if (isPreciseObjectNode(BN->getLeft())) { - return make_tuple(true, ObjectAccessChain()); - } - // If the preciseness of the left node (assignee node) can not - // be determined by now, we need to compare the access chain string - // of the assignee object with the given precise object. - assignee_object = accesschain_mapping_.at(BN->getLeft()); - - } else if (glslang::TIntermUnary* UN = node->getAsUnaryNode()) { - // This is a unary assignment node, we need to check the - // preciseness of the operand node. For unary assignment node, the - // operand node should always be an object node. - assert(accesschain_mapping_.count(UN->getOperand())); - // Traverse the operand node to let the 'precise' being propagated - // from lower nodes to upper nodes. - UN->getOperand()->traverse(this); - // After traversing the operand node, if the operand node is - // 'precise', this assignment should propagate 'precise'. - if (isPreciseObjectNode(UN->getOperand())) { - return make_tuple(true, ObjectAccessChain()); - } - // If the preciseness of the operand node (assignee node) can not - // be determined by now, we need to compare the access chain string - // of the assignee object with the given precise object. - assignee_object = accesschain_mapping_.at(UN->getOperand()); - } else { - // Not a binary or unary node, should not happen. - assert(false); - } - - // Compare the access chain string of the assignee node with the given - // precise object to determine if this assignment should propagate - // 'precise'. - if (assignee_object.find(precise_object) == 0) { - // The access chain string of the given precise object is a prefix - // of assignee's access chain string. The assignee should be - // 'precise'. - return make_tuple(true, ObjectAccessChain()); - } else if (precise_object.find(assignee_object) == 0) { - // The assignee's access chain string is a prefix of the given - // precise object, the assignee object contains 'precise' object, - // and we need to pass the remained access chain to the object nodes - // in the right. - return make_tuple(true, getSubAccessChainAfterPrefix(precise_object, assignee_object)); - } else { - // The access chain strings do not match, the assignee object can - // not be labeled as 'precise' according to the given precise - // object. - return make_tuple(false, ObjectAccessChain()); - } - } - -protected: - TNoContractionAssigneeCheckingTraverser& operator=(const TNoContractionAssigneeCheckingTraverser&); - - bool visitBinary(glslang::TVisit, glslang::TIntermBinary* node) override; - void visitSymbol(glslang::TIntermSymbol* node) override; - - // A map from object nodes to their access chain string (used as object ID). - const AccessChainMapping& accesschain_mapping_; - // A given precise object, represented in it access chain string. This - // precise object is used to be compared with the assignee node to tell if - // the assignee node is 'precise', contains 'precise' object or not - // 'precise'. - const ObjectAccessChain* precise_object_; -}; - -// Visits a binary node. If the node is an object node, it must be a dereference -// node. In such cases, if the left node is 'precise', this node should also be -// 'precise'. -bool TNoContractionAssigneeCheckingTraverser::visitBinary(glslang::TVisit, - glslang::TIntermBinary* node) -{ - // Traverses the left so that we transfer the 'precise' from nesting object - // to its nested object. - node->getLeft()->traverse(this); - // If this binary node is an object node, we should have it in the - // accesschain_mapping_. - if (accesschain_mapping_.count(node)) { - // A binary object node must be a dereference node. - assert(isDereferenceOperation(node->getOp())); - // If the left node is 'precise', this node should also be precise, - // otherwise, compare with the given precise_object_. If the - // access chain of this node matches with the given precise_object_, - // this node should be marked as 'precise'. - if (isPreciseObjectNode(node->getLeft())) { - node->getWritableType().getQualifier().noContraction = true; - } else if (accesschain_mapping_.at(node) == *precise_object_) { - node->getWritableType().getQualifier().noContraction = true; - } - } - return false; -} - -// Visits a symbol node, if the symbol node ID (its access chain string) matches -// with the given precise object, this node should be 'precise'. -void TNoContractionAssigneeCheckingTraverser::visitSymbol(glslang::TIntermSymbol* node) -{ - // A symbol node should always be an object node, and should have been added - // to the map from object nodes to their access chain strings. - assert(accesschain_mapping_.count(node)); - if (accesschain_mapping_.at(node) == *precise_object_) { - node->getWritableType().getQualifier().noContraction = true; - } -} - -// -// A traverser that only traverses the right side of binary assignment nodes -// and the operand node of unary assignment nodes. -// -// 1) Marks arithmetic operations as 'NoContraction'. -// -// 2) Find the object which should be marked as 'precise' in the right and -// update the 'precise' object work list. -// -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) {} - - // Propagates 'precise' in the right nodes of a given assignment node with - // access chain record from the assignee node to a 'precise' object it - // contains. - void - propagateNoContractionInOneExpression(glslang::TIntermTyped* defining_node, - const ObjectAccessChain& assignee_remained_accesschain) - { - remained_accesschain_ = assignee_remained_accesschain; - if (glslang::TIntermBinary* BN = defining_node->getAsBinaryNode()) { - assert(isAssignOperation(BN->getOp())); - BN->getRight()->traverse(this); - if (isArithmeticOperation(BN->getOp())) { - BN->getWritableType().getQualifier().noContraction = true; - } - } else if (glslang::TIntermUnary* UN = defining_node->getAsUnaryNode()) { - assert(isAssignOperation(UN->getOp())); - UN->getOperand()->traverse(this); - if (isArithmeticOperation(UN->getOp())) { - UN->getWritableType().getQualifier().noContraction = true; - } - } - } - - // Propagates 'precise' in a given precise return node. - void propagateNoContractionInReturnNode(glslang::TIntermBranch* return_node) - { - remained_accesschain_ = ""; - assert(return_node->getFlowOp() == glslang::EOpReturn && return_node->getExpression()); - return_node->getExpression()->traverse(this); - } - -protected: - TNoContractionPropagator& operator=(const TNoContractionPropagator&); - - // Visits an aggregate node. The node can be a initializer list, in which - // case we need to find the 'precise' or 'precise' containing object node - // with the access chain record. In other cases, just need to traverse all - // the children nodes. - bool visitAggregate(glslang::TVisit, glslang::TIntermAggregate* node) override - { - if (!remained_accesschain_.empty() && node->getOp() == glslang::EOpConstructStruct) { - // This is a struct initializer node, and the remained - // access chain is not empty, we need to refer to the - // assignee_remained_access_chain_ to find the nested - // 'precise' object. And we don't need to visit other nodes in this - // aggregate node. - - // Gets the struct dereference index that leads to 'precise' object. - ObjectAccessChain precise_accesschain_index_str = - getFrontElement(remained_accesschain_); - unsigned precise_accesschain_index = (unsigned)strtoul(precise_accesschain_index_str.c_str(), nullptr, 10); - // Gets the node pointed by the access chain index extracted before. - glslang::TIntermTyped* potential_precise_node = - node->getSequence()[precise_accesschain_index]->getAsTyped(); - assert(potential_precise_node); - // Pop the front access chain index from the path, and visit the nested node. - { - ObjectAccessChain next_level_accesschain = - subAccessChainFromSecondElement(remained_accesschain_); - StateSettingGuard setup_remained_accesschain_for_next_level( - &remained_accesschain_, next_level_accesschain); - potential_precise_node->traverse(this); - } - return false; - } - return true; - } - - // Visits a binary node. A binary node can be an object node, e.g. a dereference node. - // As only the top object nodes in the right side of an assignment needs to be visited - // and added to 'precise' work list, this traverser won't visit the children nodes of - // an object node. If the binary node does not represent an object node, it should - // go on to traverse its children nodes and if it is an arithmetic operation node, this - // operation should be marked as 'noContraction'. - bool visitBinary(glslang::TVisit, glslang::TIntermBinary* node) override - { - if (isDereferenceOperation(node->getOp())) { - // This binary node is an object node. Need to update the precise - // object set with the access chain of this node + remained - // access chain . - ObjectAccessChain new_precise_accesschain = accesschain_mapping_.at(node); - if (remained_accesschain_.empty()) { - node->getWritableType().getQualifier().noContraction = true; - } else { - new_precise_accesschain += ObjectAccesschainDelimiter + remained_accesschain_; - } - // Cache the access chain as added precise object, so we won't add the - // same object to the work list again. - if (!added_precise_object_ids_.count(new_precise_accesschain)) { - precise_objects_.insert(new_precise_accesschain); - added_precise_object_ids_.insert(new_precise_accesschain); - } - // Only the upper-most object nodes should be visited, so do not - // visit children of this object node. - return false; - } - // If this is an arithmetic operation, marks this node as 'noContraction'. - if (isArithmeticOperation(node->getOp()) && node->getBasicType() != glslang::EbtInt) { - node->getWritableType().getQualifier().noContraction = true; - } - // As this node is not an object node, need to traverse the children nodes. - return true; - } - - // Visits a unary node. A unary node can not be an object node. If the operation - // is an arithmetic operation, need to mark this node as 'noContraction'. - bool visitUnary(glslang::TVisit /* visit */, glslang::TIntermUnary* node) override - { - // If this is an arithmetic operation, marks this with 'noContraction' - if (isArithmeticOperation(node->getOp())) { - node->getWritableType().getQualifier().noContraction = true; - } - return true; - } - - // Visits a symbol node. A symbol node is always an object node. So we - // should always be able to find its in our collected mapping from object - // nodes to access chains. As an object node, a symbol node can be either - // 'precise' or containing 'precise' objects according to unused - // access chain information we have when we visit this node. - void visitSymbol(glslang::TIntermSymbol* node) override - { - // Symbol nodes are object nodes and should always have an - // access chain collected before matches with it. - assert(accesschain_mapping_.count(node)); - ObjectAccessChain new_precise_accesschain = accesschain_mapping_.at(node); - // If the unused access chain is empty, this symbol node should be - // marked as 'precise'. Otherwise, the unused access chain should be - // appended to the symbol ID to build a new access chain which points to - // the nested 'precise' object in this symbol object. - if (remained_accesschain_.empty()) { - node->getWritableType().getQualifier().noContraction = true; - } else { - new_precise_accesschain += ObjectAccesschainDelimiter + remained_accesschain_; - } - // Add the new 'precise' access chain to the work list and make sure we - // don't visit it again. - if (!added_precise_object_ids_.count(new_precise_accesschain)) { - precise_objects_.insert(new_precise_accesschain); - added_precise_object_ids_.insert(new_precise_accesschain); - } - } - - // A set of precise objects, represented as access chains. - ObjectAccesschainSet& precise_objects_; - // Visited symbol nodes, should not revisit these nodes. - ObjectAccesschainSet added_precise_object_ids_; - // The left node of an assignment operation might be an parent of 'precise' objects. - // This means the left node might not be an 'precise' object node, but it may contains - // 'precise' qualifier which should be propagated to the corresponding child node in - // the right. So we need the path from the left node to its nested 'precise' node to - // tell us how to find the corresponding 'precise' node in the right. - ObjectAccessChain remained_accesschain_; - // A map from node pointers to their access chains. - const AccessChainMapping& accesschain_mapping_; -}; -} - -namespace glslang { - -void PropagateNoContraction(const glslang::TIntermediate& intermediate) -{ - // First, traverses the AST, records symbols with their defining operations - // and collects the initial set of precise symbols (symbol nodes that marked - // as 'noContraction') and precise return nodes. - auto mappings_and_precise_objects = - getSymbolToDefinitionMappingAndPreciseSymbolIDs(intermediate); - - // The mapping of symbol node IDs to their defining nodes. This enables us - // to get the defining node directly from a given symbol ID without - // traversing the tree again. - NodeMapping& symbol_definition_mapping = std::get<0>(mappings_and_precise_objects); - - // The mapping of object nodes to their access chains recorded. - AccessChainMapping& accesschain_mapping = std::get<1>(mappings_and_precise_objects); - - // The initial set of 'precise' objects which are represented as the - // access chain toward them. - ObjectAccesschainSet& precise_object_accesschains = std::get<2>(mappings_and_precise_objects); - - // The set of 'precise' return nodes. - ReturnBranchNodeSet& precise_return_nodes = std::get<3>(mappings_and_precise_objects); - - // Second, uses the initial set of precise objects as a work list, pops an - // access chain, extract the symbol ID from it. Then: - // 1) Check the assignee object, see if it is 'precise' object node or - // contains 'precise' object. Obtain the incremental access chain from the - // assignee node to its nested 'precise' node (if any). - // 2) If the assignee object node is 'precise' or it contains 'precise' - // objects, traverses the right side of the assignment operation - // expression to mark arithmetic operations as 'noContration' and update - // 'precise' access chain work list with new found object nodes. - // Repeat above steps until the work list is empty. - TNoContractionAssigneeCheckingTraverser checker(accesschain_mapping); - TNoContractionPropagator propagator(&precise_object_accesschains, accesschain_mapping); - - // We have two initial precise work lists to handle: - // 1) precise return nodes - // 2) precise object access chains - // We should process the precise return nodes first and the involved - // objects in the return expression should be added to the precise object - // access chain set. - while (!precise_return_nodes.empty()) { - glslang::TIntermBranch* precise_return_node = *precise_return_nodes.begin(); - propagator.propagateNoContractionInReturnNode(precise_return_node); - precise_return_nodes.erase(precise_return_node); - } - - while (!precise_object_accesschains.empty()) { - // Get the access chain of a precise object from the work list. - ObjectAccessChain precise_object_accesschain = *precise_object_accesschains.begin(); - // Get the symbol id from the access chain. - ObjectAccessChain symbol_id = getFrontElement(precise_object_accesschain); - // Get all the defining nodes of that symbol ID. - std::pair range = - symbol_definition_mapping.equal_range(symbol_id); - // Visits all the assignment nodes of that symbol ID and - // 1) Check if the assignee node is 'precise' or contains 'precise' - // objects. - // 2) Propagate the 'precise' to the top layer object nodes - // in the right side of the assignment operation, update the 'precise' - // work list with new access chains representing the new 'precise' - // objects, and mark arithmetic operations as 'noContraction'. - for (NodeMapping::iterator defining_node_iter = range.first; - defining_node_iter != range.second; defining_node_iter++) { - TIntermOperator* defining_node = defining_node_iter->second; - // Check the assignee node. - auto checker_result = checker.getPrecisenessAndRemainedAccessChain( - defining_node, precise_object_accesschain); - bool& contain_precise = std::get<0>(checker_result); - ObjectAccessChain& remained_accesschain = std::get<1>(checker_result); - // If the assignee node is 'precise' or contains 'precise', propagate the - // 'precise' to the right. Otherwise just skip this assignment node. - if (contain_precise) { - propagator.propagateNoContractionInOneExpression(defining_node, - remained_accesschain); - } - } - // Remove the last processed 'precise' object from the work list. - precise_object_accesschains.erase(precise_object_accesschain); - } -} -}; - -#endif // GLSLANG_WEB diff --git a/deps/glslang/glslang/MachineIndependent/propagateNoContraction.h b/deps/glslang/glslang/MachineIndependent/propagateNoContraction.h deleted file mode 100644 index 8521ad7d..00000000 --- a/deps/glslang/glslang/MachineIndependent/propagateNoContraction.h +++ /dev/null @@ -1,55 +0,0 @@ -// -// Copyright (C) 2015-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. - -// -// Visit the nodes in the glslang intermediate tree representation to -// propagate 'noContraction' qualifier. -// - -#pragma once - -#include "../Include/intermediate.h" - -namespace glslang { - -// Propagates the 'precise' qualifier for objects (objects marked with -// 'noContraction' qualifier) from the shader source specified 'precise' -// variables to all the involved objects, and add 'noContraction' qualifier for -// the involved arithmetic operations. -// Note that the same qualifier: 'noContraction' is used in both object nodes -// and arithmetic operation nodes, but has different meaning. For object nodes, -// 'noContraction' means the object is 'precise'; and for arithmetic operation -// nodes, it means the operation should not be contracted. -void PropagateNoContraction(const glslang::TIntermediate& intermediate); -}; diff --git a/deps/glslang/glslang/MachineIndependent/reflection.cpp b/deps/glslang/glslang/MachineIndependent/reflection.cpp deleted file mode 100644 index 9ea48c45..00000000 --- a/deps/glslang/glslang/MachineIndependent/reflection.cpp +++ /dev/null @@ -1,1274 +0,0 @@ -// -// 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. -// - -#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) - -#include "../Include/Common.h" -#include "reflection.h" -#include "LiveTraverser.h" -#include "localintermediate.h" - -#include "gl_types.h" - -// -// Grow the reflection database through a friend traverser class of TReflection and a -// collection of functions to do a liveness traversal that note what uniforms are used -// in semantically non-dead code. -// -// Can be used multiple times, once per stage, to grow a program reflection. -// -// High-level algorithm for one stage: -// -// 1. Put the entry point on the list of live functions. -// -// 2. Traverse any live function, while skipping if-tests with a compile-time constant -// condition of false, and while adding any encountered function calls to the live -// function list. -// -// Repeat until the live function list is empty. -// -// 3. Add any encountered uniform variables and blocks to the reflection database. -// -// Can be attempted with a failed link, but will return false if recursion had been detected, or -// there wasn't exactly one entry point. -// - -namespace glslang { - -// -// The traverser: mostly pass through, except -// - processing binary nodes to see if they are dereferences of an aggregates to track -// - processing symbol nodes to see if they are non-aggregate objects to track -// -// This ignores semantically dead code by using TLiveTraverser. -// -// This is in the glslang namespace directly so it can be a friend of TReflection. -// - -class TReflectionTraverser : public TIntermTraverser { -public: - TReflectionTraverser(const TIntermediate& i, TReflection& r) : - TIntermTraverser(), intermediate(i), reflection(r), updateStageMasks(true) { } - - virtual bool visitBinary(TVisit, TIntermBinary* node); - virtual void visitSymbol(TIntermSymbol* base); - - // Add a simple reference to a uniform variable to the uniform database, no dereference involved. - // However, no dereference doesn't mean simple... it could be a complex aggregate. - void addUniform(const TIntermSymbol& base) - { - if (processedDerefs.find(&base) == processedDerefs.end()) { - processedDerefs.insert(&base); - - int blockIndex = -1; - int offset = -1; - TList derefs; - TString baseName = base.getName(); - - if (base.getType().getBasicType() == EbtBlock) { - offset = 0; - bool anonymous = IsAnonymous(baseName); - const TString& blockName = base.getType().getTypeName(); - - if (!anonymous) - baseName = blockName; - else - baseName = ""; - - blockIndex = addBlockName(blockName, base.getType(), intermediate.getBlockSize(base.getType())); - } - - // Use a degenerate (empty) set of dereferences to immediately put as at the end of - // the dereference change expected by blowUpActiveAggregate. - blowUpActiveAggregate(base.getType(), baseName, derefs, derefs.end(), offset, blockIndex, 0, -1, 0, - base.getQualifier().storage, updateStageMasks); - } - } - - void addPipeIOVariable(const TIntermSymbol& base) - { - if (processedDerefs.find(&base) == processedDerefs.end()) { - processedDerefs.insert(&base); - - const TString &name = base.getName(); - const TType &type = base.getType(); - const bool input = base.getQualifier().isPipeInput(); - - TReflection::TMapIndexToReflection &ioItems = - input ? reflection.indexToPipeInput : reflection.indexToPipeOutput; - - - TReflection::TNameToIndex &ioMapper = - input ? reflection.pipeInNameToIndex : reflection.pipeOutNameToIndex; - - if (reflection.options & EShReflectionUnwrapIOBlocks) { - bool anonymous = IsAnonymous(name); - - TString baseName; - if (type.getBasicType() == EbtBlock) { - baseName = anonymous ? TString() : type.getTypeName(); - } else { - baseName = anonymous ? TString() : name; - } - - // by convention if this is an arrayed block we ignore the array in the reflection - if (type.isArray() && type.getBasicType() == EbtBlock) { - blowUpIOAggregate(input, baseName, TType(type, 0)); - } else { - blowUpIOAggregate(input, baseName, type); - } - } else { - TReflection::TNameToIndex::const_iterator it = ioMapper.find(name.c_str()); - if (it == ioMapper.end()) { - // seperate pipe i/o params from uniforms and blocks - // in is only for input in first stage as out is only for last stage. check traverse in call stack. - ioMapper[name.c_str()] = static_cast(ioItems.size()); - ioItems.push_back( - TObjectReflection(name.c_str(), type, 0, mapToGlType(type), mapToGlArraySize(type), 0)); - EShLanguageMask& stages = ioItems.back().stages; - stages = static_cast(stages | 1 << intermediate.getStage()); - } else { - EShLanguageMask& stages = ioItems[it->second].stages; - stages = static_cast(stages | 1 << intermediate.getStage()); - } - } - } - } - - // Lookup or calculate the offset of all block members at once, using the recursively - // defined block offset rules. - void getOffsets(const TType& type, TVector& offsets) - { - const TTypeList& memberList = *type.getStruct(); - int memberSize = 0; - int offset = 0; - - for (size_t m = 0; m < offsets.size(); ++m) { - // if the user supplied an offset, snap to it now - if (memberList[m].type->getQualifier().hasOffset()) - offset = memberList[m].type->getQualifier().layoutOffset; - - // calculate the offset of the next member and align the current offset to this member - intermediate.updateOffset(type, *memberList[m].type, offset, memberSize); - - // save the offset of this member - offsets[m] = offset; - - // update for the next member - offset += memberSize; - } - } - - // Calculate the stride of an array type - int getArrayStride(const TType& baseType, const TType& type) - { - int dummySize; - int stride; - - // consider blocks to have 0 stride, so that all offsets are relative to the start of their block - if (type.getBasicType() == EbtBlock) - return 0; - - TLayoutMatrix subMatrixLayout = type.getQualifier().layoutMatrix; - intermediate.getMemberAlignment(type, dummySize, stride, - baseType.getQualifier().layoutPacking, - subMatrixLayout != ElmNone - ? subMatrixLayout == ElmRowMajor - : baseType.getQualifier().layoutMatrix == ElmRowMajor); - - return stride; - } - - // count the total number of leaf members from iterating out of a block type - int countAggregateMembers(const TType& parentType) - { - if (! parentType.isStruct()) - return 1; - - const bool strictArraySuffix = (reflection.options & EShReflectionStrictArraySuffix); - - bool blockParent = (parentType.getBasicType() == EbtBlock && parentType.getQualifier().storage == EvqBuffer); - - const TTypeList &memberList = *parentType.getStruct(); - - int ret = 0; - - for (size_t i = 0; i < memberList.size(); i++) - { - const TType &memberType = *memberList[i].type; - int numMembers = countAggregateMembers(memberType); - // for sized arrays of structs, apply logic to expand out the same as we would below in - // blowUpActiveAggregate - if (memberType.isArray() && ! memberType.getArraySizes()->hasUnsized() && memberType.isStruct()) { - if (! strictArraySuffix || ! blockParent) - numMembers *= memberType.getArraySizes()->getCumulativeSize(); - } - ret += numMembers; - } - - return ret; - } - - // Traverse the provided deref chain, including the base, and - // - build a full reflection-granularity name, array size, etc. entry out of it, if it goes down to that granularity - // - recursively expand any variable array index in the middle of that traversal - // - recursively expand what's left at the end if the deref chain did not reach down to reflection granularity - // - // arraySize tracks, just for the final dereference in the chain, if there was a specific known size. - // A value of 0 for arraySize will mean to use the full array's size. - void blowUpActiveAggregate(const TType& baseType, const TString& baseName, const TList& derefs, - TList::const_iterator deref, int offset, int blockIndex, int arraySize, - int topLevelArraySize, int topLevelArrayStride, TStorageQualifier baseStorage, bool active) - { - // when strictArraySuffix is enabled, we closely follow the rules from ARB_program_interface_query. - // Broadly: - // * arrays-of-structs always have a [x] suffix. - // * with array-of-struct variables in the root of a buffer block, only ever return [0]. - // * otherwise, array suffixes are added whenever we iterate, even if that means expanding out an array. - const bool strictArraySuffix = (reflection.options & EShReflectionStrictArraySuffix); - - // is this variable inside a buffer block. This flag is set back to false after we iterate inside the first array element. - bool blockParent = (baseType.getBasicType() == EbtBlock && baseType.getQualifier().storage == EvqBuffer); - - // 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) { - TIntermBinary* visitNode = *deref; - terminalType = &visitNode->getType(); - int index; - switch (visitNode->getOp()) { - case EOpIndexIndirect: { - int stride = getArrayStride(baseType, visitNode->getLeft()->getType()); - - if (topLevelArrayStride == 0) - topLevelArrayStride = stride; - - // 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) { - TString newBaseName = name; - if (terminalType->getBasicType() == EbtBlock) {} - else if (strictArraySuffix && blockParent) - newBaseName.append(TString("[0]")); - else if (strictArraySuffix || baseType.getBasicType() != EbtBlock) - newBaseName.append(TString("[") + String(i) + "]"); - TList::const_iterator nextDeref = deref; - ++nextDeref; - blowUpActiveAggregate(*terminalType, newBaseName, derefs, nextDeref, offset, blockIndex, arraySize, - topLevelArraySize, topLevelArrayStride, baseStorage, active); - - if (offset >= 0) - offset += stride; - } - - // it was all completed in the recursive calls above - return; - } - case EOpIndexDirect: { - int stride = getArrayStride(baseType, visitNode->getLeft()->getType()); - - index = visitNode->getRight()->getAsConstantUnion()->getConstArray()[0].getIConst(); - if (terminalType->getBasicType() == EbtBlock) {} - else if (strictArraySuffix && blockParent) - name.append(TString("[0]")); - else if (strictArraySuffix || baseType.getBasicType() != EbtBlock) { - name.append(TString("[") + String(index) + "]"); - - if (offset >= 0) - offset += stride * index; - } - - if (topLevelArrayStride == 0) - topLevelArrayStride = stride; - - // expand top-level arrays in blocks with [0] suffix - if (topLevelArrayStride != 0 && visitNode->getLeft()->getType().isArray()) { - blockParent = false; - } - break; - } - case EOpIndexDirectStruct: - index = visitNode->getRight()->getAsConstantUnion()->getConstArray()[0].getIConst(); - if (offset >= 0) - offset += intermediate.getOffset(visitNode->getLeft()->getType(), index); - if (name.size() > 0) - name.append("."); - name.append((*visitNode->getLeft()->getType().getStruct())[index].type->getFieldName()); - - // expand non top-level arrays with [x] suffix - if (visitNode->getLeft()->getType().getBasicType() != EbtBlock && terminalType->isArray()) - { - blockParent = false; - } - break; - default: - break; - } - } - - // if the terminalType is still too coarse a granularity, this is still an aggregate to expand, expand it... - if (! isReflectionGranularity(*terminalType)) { - // the base offset of this node, that children are relative to - int baseOffset = offset; - - if (terminalType->isArray()) { - // Visit all the indices of this array, and for each one, - // fully explode the remaining aggregate to dereference - - int stride = 0; - if (offset >= 0) - stride = getArrayStride(baseType, *terminalType); - - int arrayIterateSize = std::max(terminalType->getOuterArraySize(), 1); - - // for top-level arrays in blocks, only expand [0] to avoid explosion of items - if ((strictArraySuffix && blockParent) || - ((topLevelArraySize == arrayIterateSize) && (topLevelArrayStride == 0))) { - arrayIterateSize = 1; - } - - if (topLevelArrayStride == 0) - topLevelArrayStride = stride; - - for (int i = 0; i < arrayIterateSize; ++i) { - TString newBaseName = name; - if (terminalType->getBasicType() != EbtBlock) - newBaseName.append(TString("[") + String(i) + "]"); - TType derefType(*terminalType, 0); - if (offset >= 0) - offset = baseOffset + stride * i; - - blowUpActiveAggregate(derefType, newBaseName, derefs, derefs.end(), offset, blockIndex, 0, - topLevelArraySize, topLevelArrayStride, baseStorage, active); - } - } else { - // Visit all members of this aggregate, and for each one, - // fully explode the remaining aggregate to dereference - const TTypeList& typeList = *terminalType->getStruct(); - - TVector memberOffsets; - - if (baseOffset >= 0) { - memberOffsets.resize(typeList.size()); - getOffsets(*terminalType, memberOffsets); - } - - for (int i = 0; i < (int)typeList.size(); ++i) { - TString newBaseName = name; - if (newBaseName.size() > 0) - newBaseName.append("."); - newBaseName.append(typeList[i].type->getFieldName()); - TType derefType(*terminalType, i); - if (offset >= 0) - offset = baseOffset + memberOffsets[i]; - - int arrayStride = topLevelArrayStride; - if (terminalType->getBasicType() == EbtBlock && terminalType->getQualifier().storage == EvqBuffer && - derefType.isArray()) { - arrayStride = getArrayStride(baseType, derefType); - } - - if (topLevelArraySize == -1 && arrayStride == 0 && blockParent) - topLevelArraySize = 1; - - if (strictArraySuffix && blockParent) { - // if this member is an array, store the top-level array stride but start the explosion from - // the inner struct type. - if (derefType.isArray() && derefType.isStruct()) { - newBaseName.append("[0]"); - auto dimSize = derefType.isUnsizedArray() ? 0 : derefType.getArraySizes()->getDimSize(0); - blowUpActiveAggregate(TType(derefType, 0), newBaseName, derefs, derefs.end(), memberOffsets[i], - blockIndex, 0, dimSize, arrayStride, terminalType->getQualifier().storage, false); - } - else if (derefType.isArray()) { - auto dimSize = derefType.isUnsizedArray() ? 0 : derefType.getArraySizes()->getDimSize(0); - blowUpActiveAggregate(derefType, newBaseName, derefs, derefs.end(), memberOffsets[i], blockIndex, - 0, dimSize, 0, terminalType->getQualifier().storage, false); - } - else { - blowUpActiveAggregate(derefType, newBaseName, derefs, derefs.end(), memberOffsets[i], blockIndex, - 0, 1, 0, terminalType->getQualifier().storage, false); - } - } else { - blowUpActiveAggregate(derefType, newBaseName, derefs, derefs.end(), offset, blockIndex, 0, - topLevelArraySize, arrayStride, baseStorage, active); - } - } - } - - // it was all completed in the recursive calls above - return; - } - - if ((reflection.options & EShReflectionBasicArraySuffix) && terminalType->isArray()) { - name.append(TString("[0]")); - } - - // 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. - - // there might not be a final array dereference, it could have been copied as an array object - if (arraySize == 0) - arraySize = mapToGlArraySize(*terminalType); - - TReflection::TMapIndexToReflection& variables = reflection.GetVariableMapForStorage(baseStorage); - - TReflection::TNameToIndex::const_iterator it = reflection.nameToIndex.find(name.c_str()); - if (it == reflection.nameToIndex.end()) { - int uniformIndex = (int)variables.size(); - reflection.nameToIndex[name.c_str()] = uniformIndex; - variables.push_back(TObjectReflection(name.c_str(), *terminalType, offset, mapToGlType(*terminalType), - arraySize, blockIndex)); - if (terminalType->isArray()) { - variables.back().arrayStride = getArrayStride(baseType, *terminalType); - if (topLevelArrayStride == 0) - topLevelArrayStride = variables.back().arrayStride; - } - - if ((reflection.options & EShReflectionSeparateBuffers) && terminalType->isAtomic()) - reflection.atomicCounterUniformIndices.push_back(uniformIndex); - - variables.back().topLevelArraySize = topLevelArraySize; - variables.back().topLevelArrayStride = topLevelArrayStride; - - if ((reflection.options & EShReflectionAllBlockVariables) && active) { - EShLanguageMask& stages = variables.back().stages; - stages = static_cast(stages | 1 << intermediate.getStage()); - } - } else { - if (arraySize > 1) { - int& reflectedArraySize = variables[it->second].size; - reflectedArraySize = std::max(arraySize, reflectedArraySize); - } - - if ((reflection.options & EShReflectionAllBlockVariables) && active) { - EShLanguageMask& stages = variables[it->second].stages; - stages = static_cast(stages | 1 << intermediate.getStage()); - } - } - } - - // similar to blowUpActiveAggregate, but with simpler rules and no dereferences to follow. - void blowUpIOAggregate(bool input, const TString &baseName, const TType &type) - { - TString name = baseName; - - // if the type is still too coarse a granularity, this is still an aggregate to expand, expand it... - if (! isReflectionGranularity(type)) { - if (type.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(type.getOuterArraySize(), 1); ++i) { - TString newBaseName = name; - newBaseName.append(TString("[") + String(i) + "]"); - TType derefType(type, 0); - - blowUpIOAggregate(input, newBaseName, derefType); - } - } else { - // Visit all members of this aggregate, and for each one, - // fully explode the remaining aggregate to dereference - const TTypeList& typeList = *type.getStruct(); - - for (int i = 0; i < (int)typeList.size(); ++i) { - TString newBaseName = name; - if (newBaseName.size() > 0) - newBaseName.append("."); - newBaseName.append(typeList[i].type->getFieldName()); - TType derefType(type, i); - - blowUpIOAggregate(input, newBaseName, derefType); - } - } - - // it was all completed in the recursive calls above - return; - } - - if ((reflection.options & EShReflectionBasicArraySuffix) && type.isArray()) { - name.append(TString("[0]")); - } - - TReflection::TMapIndexToReflection &ioItems = - input ? reflection.indexToPipeInput : reflection.indexToPipeOutput; - - std::string namespacedName = input ? "in " : "out "; - namespacedName += name.c_str(); - - TReflection::TNameToIndex::const_iterator it = reflection.nameToIndex.find(namespacedName); - if (it == reflection.nameToIndex.end()) { - reflection.nameToIndex[namespacedName] = (int)ioItems.size(); - ioItems.push_back( - TObjectReflection(name.c_str(), type, 0, mapToGlType(type), mapToGlArraySize(type), 0)); - - EShLanguageMask& stages = ioItems.back().stages; - stages = static_cast(stages | 1 << intermediate.getStage()); - } else { - EShLanguageMask& stages = ioItems[it->second].stages; - stages = static_cast(stages | 1 << intermediate.getStage()); - } - } - - // Add a uniform dereference where blocks/struct/arrays are involved in the access. - // Handles the situation where the left node is at the correct or too coarse a - // granularity for reflection. (That is, further dereferences up the tree will be - // skipped.) Earlier dereferences, down the tree, will be handled - // at the same time, and logged to prevent reprocessing as the tree is traversed. - // - // Note: Other things like the following must be caught elsewhere: - // - a simple non-array, non-struct variable (no dereference even conceivable) - // - an aggregrate consumed en masse, without a dereference - // - // So, this code is for cases like - // - a struct/block dereferencing a member (whether the member is array or not) - // - an array of struct - // - structs/arrays containing the above - // - void addDereferencedUniform(TIntermBinary* topNode) - { - // See if too fine-grained to process (wait to get further down the tree) - const TType& leftType = topNode->getLeft()->getType(); - if ((leftType.isVector() || leftType.isMatrix()) && ! leftType.isArray()) - return; - - // We have an array or structure or block dereference, see if it's a uniform - // based dereference (if not, skip it). - TIntermSymbol* base = findBase(topNode); - if (! base || ! base->getQualifier().isUniformOrBuffer()) - return; - - // See if we've already processed this (e.g., in the middle of something - // we did earlier), and if so skip it - if (processedDerefs.find(topNode) != processedDerefs.end()) - return; - - // Process this uniform dereference - - int offset = -1; - int blockIndex = -1; - bool anonymous = false; - - // See if we need to record the block itself - bool block = base->getBasicType() == EbtBlock; - if (block) { - offset = 0; - anonymous = IsAnonymous(base->getName()); - - const TString& blockName = base->getType().getTypeName(); - TString baseName; - - if (! anonymous) - baseName = blockName; - - blockIndex = addBlockName(blockName, base->getType(), intermediate.getBlockSize(base->getType())); - - if (reflection.options & EShReflectionAllBlockVariables) { - // Use a degenerate (empty) set of dereferences to immediately put as at the end of - // the dereference change expected by blowUpActiveAggregate. - TList derefs; - - // otherwise - if we're not using strict array suffix rules, or this isn't a block so we are - // expanding root arrays anyway, just start the iteration from the base block type. - blowUpActiveAggregate(base->getType(), baseName, derefs, derefs.end(), 0, blockIndex, 0, -1, 0, - base->getQualifier().storage, false); - } - } - - // Process the dereference chain, backward, accumulating the pieces for later forward traversal. - // If the topNode is a reflection-granularity-array dereference, don't include that last dereference. - TList derefs; - for (TIntermBinary* visitNode = topNode; visitNode; visitNode = visitNode->getLeft()->getAsBinaryNode()) { - if (isReflectionGranularity(visitNode->getLeft()->getType())) - continue; - - derefs.push_front(visitNode); - processedDerefs.insert(visitNode); - } - processedDerefs.insert(base); - - // See if we have a specific array size to stick to while enumerating the explosion of the aggregate - int arraySize = 0; - if (isReflectionGranularity(topNode->getLeft()->getType()) && topNode->getLeft()->isArray()) { - if (topNode->getOp() == EOpIndexDirect) - arraySize = topNode->getRight()->getAsConstantUnion()->getConstArray()[0].getIConst() + 1; - } - - // Put the dereference chain together, forward - TString baseName; - if (! anonymous) { - if (block) - baseName = base->getType().getTypeName(); - else - baseName = base->getName(); - } - blowUpActiveAggregate(base->getType(), baseName, derefs, derefs.begin(), offset, blockIndex, arraySize, -1, 0, - base->getQualifier().storage, true); - } - - int addBlockName(const TString& name, const TType& type, int size) - { - int blockIndex = 0; - if (type.isArray()) { - TType derefType(type, 0); - for (int e = 0; e < type.getOuterArraySize(); ++e) { - int memberBlockIndex = addBlockName(name + "[" + String(e) + "]", derefType, size); - if (e == 0) - blockIndex = memberBlockIndex; - } - } else { - TReflection::TMapIndexToReflection& blocks = reflection.GetBlockMapForStorage(type.getQualifier().storage); - - TReflection::TNameToIndex::const_iterator it = reflection.nameToIndex.find(name.c_str()); - if (reflection.nameToIndex.find(name.c_str()) == reflection.nameToIndex.end()) { - blockIndex = (int)blocks.size(); - reflection.nameToIndex[name.c_str()] = blockIndex; - blocks.push_back(TObjectReflection(name.c_str(), type, -1, -1, size, blockIndex)); - - blocks.back().numMembers = countAggregateMembers(type); - - if (updateStageMasks) { - EShLanguageMask& stages = blocks.back().stages; - stages = static_cast(stages | 1 << intermediate.getStage()); - } - } - else { - blockIndex = it->second; - if (updateStageMasks) { - EShLanguageMask& stages = blocks[blockIndex].stages; - stages = static_cast(stages | 1 << intermediate.getStage()); - } - } - } - - return blockIndex; - } - - // Are we at a level in a dereference chain at which individual active uniform queries are made? - bool isReflectionGranularity(const TType& type) - { - return type.getBasicType() != EbtBlock && type.getBasicType() != EbtStruct && !type.isArrayOfArrays(); - } - - // For a binary operation indexing into an aggregate, chase down the base of the aggregate. - // Return 0 if the topology does not fit this situation. - TIntermSymbol* findBase(const TIntermBinary* node) - { - TIntermSymbol *base = node->getLeft()->getAsSymbolNode(); - if (base) - return base; - TIntermBinary* left = node->getLeft()->getAsBinaryNode(); - if (! left) - return nullptr; - - return findBase(left); - } - - // - // Translate a glslang sampler type into the GL API #define number. - // - int mapSamplerToGlType(TSampler sampler) - { - if (! sampler.image) { - // a sampler... - switch (sampler.type) { - case EbtFloat: - switch ((int)sampler.dim) { - case Esd1D: - switch ((int)sampler.shadow) { - case false: return sampler.arrayed ? GL_SAMPLER_1D_ARRAY : GL_SAMPLER_1D; - case true: return sampler.arrayed ? GL_SAMPLER_1D_ARRAY_SHADOW : GL_SAMPLER_1D_SHADOW; - } - case Esd2D: - switch ((int)sampler.ms) { - case false: - switch ((int)sampler.shadow) { - case false: return sampler.arrayed ? GL_SAMPLER_2D_ARRAY : GL_SAMPLER_2D; - case true: return sampler.arrayed ? GL_SAMPLER_2D_ARRAY_SHADOW : GL_SAMPLER_2D_SHADOW; - } - case true: return sampler.arrayed ? GL_SAMPLER_2D_MULTISAMPLE_ARRAY : GL_SAMPLER_2D_MULTISAMPLE; - } - case Esd3D: - return GL_SAMPLER_3D; - case EsdCube: - switch ((int)sampler.shadow) { - case false: return sampler.arrayed ? GL_SAMPLER_CUBE_MAP_ARRAY : GL_SAMPLER_CUBE; - case true: return sampler.arrayed ? GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW : GL_SAMPLER_CUBE_SHADOW; - } - case EsdRect: - return sampler.shadow ? GL_SAMPLER_2D_RECT_SHADOW : GL_SAMPLER_2D_RECT; - case EsdBuffer: - return GL_SAMPLER_BUFFER; - } - 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; - } - case EbtInt: - switch ((int)sampler.dim) { - case Esd1D: - return sampler.arrayed ? GL_INT_SAMPLER_1D_ARRAY : GL_INT_SAMPLER_1D; - 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 Esd3D: - return GL_INT_SAMPLER_3D; - case EsdCube: - return sampler.arrayed ? GL_INT_SAMPLER_CUBE_MAP_ARRAY : GL_INT_SAMPLER_CUBE; - case EsdRect: - return GL_INT_SAMPLER_2D_RECT; - case EsdBuffer: - return GL_INT_SAMPLER_BUFFER; - } - case EbtUint: - switch ((int)sampler.dim) { - case Esd1D: - return sampler.arrayed ? GL_UNSIGNED_INT_SAMPLER_1D_ARRAY : GL_UNSIGNED_INT_SAMPLER_1D; - 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 Esd3D: - return GL_UNSIGNED_INT_SAMPLER_3D; - case EsdCube: - return sampler.arrayed ? GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY : GL_UNSIGNED_INT_SAMPLER_CUBE; - case EsdRect: - return GL_UNSIGNED_INT_SAMPLER_2D_RECT; - case EsdBuffer: - return GL_UNSIGNED_INT_SAMPLER_BUFFER; - } - default: - return 0; - } - } else { - // an image... - switch (sampler.type) { - case EbtFloat: - switch ((int)sampler.dim) { - case Esd1D: - return sampler.arrayed ? GL_IMAGE_1D_ARRAY : GL_IMAGE_1D; - case Esd2D: - switch ((int)sampler.ms) { - case false: return sampler.arrayed ? GL_IMAGE_2D_ARRAY : GL_IMAGE_2D; - case true: return sampler.arrayed ? GL_IMAGE_2D_MULTISAMPLE_ARRAY : GL_IMAGE_2D_MULTISAMPLE; - } - case Esd3D: - return GL_IMAGE_3D; - case EsdCube: - return sampler.arrayed ? GL_IMAGE_CUBE_MAP_ARRAY : GL_IMAGE_CUBE; - case EsdRect: - return GL_IMAGE_2D_RECT; - case EsdBuffer: - return GL_IMAGE_BUFFER; - } - 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; - } - case EbtInt: - switch ((int)sampler.dim) { - case Esd1D: - return sampler.arrayed ? GL_INT_IMAGE_1D_ARRAY : GL_INT_IMAGE_1D; - case Esd2D: - switch ((int)sampler.ms) { - case false: return sampler.arrayed ? GL_INT_IMAGE_2D_ARRAY : GL_INT_IMAGE_2D; - case true: return sampler.arrayed ? GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY : GL_INT_IMAGE_2D_MULTISAMPLE; - } - case Esd3D: - return GL_INT_IMAGE_3D; - case EsdCube: - return sampler.arrayed ? GL_INT_IMAGE_CUBE_MAP_ARRAY : GL_INT_IMAGE_CUBE; - case EsdRect: - return GL_INT_IMAGE_2D_RECT; - case EsdBuffer: - return GL_INT_IMAGE_BUFFER; - } - case EbtUint: - switch ((int)sampler.dim) { - case Esd1D: - return sampler.arrayed ? GL_UNSIGNED_INT_IMAGE_1D_ARRAY : GL_UNSIGNED_INT_IMAGE_1D; - 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 Esd3D: - return GL_UNSIGNED_INT_IMAGE_3D; - case EsdCube: - return sampler.arrayed ? GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY : GL_UNSIGNED_INT_IMAGE_CUBE; - case EsdRect: - return GL_UNSIGNED_INT_IMAGE_2D_RECT; - case EsdBuffer: - return GL_UNSIGNED_INT_IMAGE_BUFFER; - } - default: - return 0; - } - } - } - - // - // Translate a glslang type into the GL API #define number. - // Ignores arrayness. - // - int mapToGlType(const TType& type) - { - switch (type.getBasicType()) { - case EbtSampler: - return mapSamplerToGlType(type.getSampler()); - case EbtStruct: - case EbtBlock: - case EbtVoid: - return 0; - default: - break; - } - - if (type.isVector()) { - int offset = type.getVectorSize() - 2; - switch (type.getBasicType()) { - case EbtFloat: return GL_FLOAT_VEC2 + offset; - case EbtDouble: return GL_DOUBLE_VEC2 + offset; - case EbtFloat16: return GL_FLOAT16_VEC2_NV + offset; - case EbtInt: return GL_INT_VEC2 + offset; - case EbtUint: return GL_UNSIGNED_INT_VEC2 + offset; - case EbtInt64: return GL_INT64_VEC2_ARB + offset; - case EbtUint64: return GL_UNSIGNED_INT64_VEC2_ARB + offset; - case EbtBool: return GL_BOOL_VEC2 + offset; - case EbtAtomicUint: return GL_UNSIGNED_INT_ATOMIC_COUNTER + offset; - default: return 0; - } - } - if (type.isMatrix()) { - switch (type.getBasicType()) { - case EbtFloat: - switch (type.getMatrixCols()) { - case 2: - switch (type.getMatrixRows()) { - case 2: return GL_FLOAT_MAT2; - case 3: return GL_FLOAT_MAT2x3; - case 4: return GL_FLOAT_MAT2x4; - default: return 0; - } - case 3: - switch (type.getMatrixRows()) { - case 2: return GL_FLOAT_MAT3x2; - case 3: return GL_FLOAT_MAT3; - case 4: return GL_FLOAT_MAT3x4; - default: return 0; - } - case 4: - switch (type.getMatrixRows()) { - case 2: return GL_FLOAT_MAT4x2; - case 3: return GL_FLOAT_MAT4x3; - case 4: return GL_FLOAT_MAT4; - default: return 0; - } - } - case EbtDouble: - switch (type.getMatrixCols()) { - case 2: - switch (type.getMatrixRows()) { - case 2: return GL_DOUBLE_MAT2; - case 3: return GL_DOUBLE_MAT2x3; - case 4: return GL_DOUBLE_MAT2x4; - default: return 0; - } - case 3: - switch (type.getMatrixRows()) { - case 2: return GL_DOUBLE_MAT3x2; - case 3: return GL_DOUBLE_MAT3; - case 4: return GL_DOUBLE_MAT3x4; - default: return 0; - } - case 4: - switch (type.getMatrixRows()) { - case 2: return GL_DOUBLE_MAT4x2; - case 3: return GL_DOUBLE_MAT4x3; - case 4: return GL_DOUBLE_MAT4; - default: return 0; - } - } - case EbtFloat16: - switch (type.getMatrixCols()) { - case 2: - switch (type.getMatrixRows()) { - case 2: return GL_FLOAT16_MAT2_AMD; - case 3: return GL_FLOAT16_MAT2x3_AMD; - case 4: return GL_FLOAT16_MAT2x4_AMD; - default: return 0; - } - case 3: - switch (type.getMatrixRows()) { - case 2: return GL_FLOAT16_MAT3x2_AMD; - case 3: return GL_FLOAT16_MAT3_AMD; - case 4: return GL_FLOAT16_MAT3x4_AMD; - default: return 0; - } - case 4: - switch (type.getMatrixRows()) { - case 2: return GL_FLOAT16_MAT4x2_AMD; - case 3: return GL_FLOAT16_MAT4x3_AMD; - case 4: return GL_FLOAT16_MAT4_AMD; - default: return 0; - } - } - default: - return 0; - } - } - if (type.getVectorSize() == 1) { - switch (type.getBasicType()) { - case EbtFloat: return GL_FLOAT; - case EbtDouble: return GL_DOUBLE; - case EbtFloat16: return GL_FLOAT16_NV; - case EbtInt: return GL_INT; - case EbtUint: return GL_UNSIGNED_INT; - case EbtInt64: return GL_INT64_ARB; - case EbtUint64: return GL_UNSIGNED_INT64_ARB; - case EbtBool: return GL_BOOL; - case EbtAtomicUint: return GL_UNSIGNED_INT_ATOMIC_COUNTER; - default: return 0; - } - } - - return 0; - } - - int mapToGlArraySize(const TType& type) - { - return type.isArray() ? type.getOuterArraySize() : 1; - } - - const TIntermediate& intermediate; - TReflection& reflection; - std::set processedDerefs; - bool updateStageMasks; - -protected: - TReflectionTraverser(TReflectionTraverser&); - TReflectionTraverser& operator=(TReflectionTraverser&); -}; - -// -// Implement the traversal functions of interest. -// - -// To catch dereferenced aggregates that must be reflected. -// This catches them at the highest level possible in the tree. -bool TReflectionTraverser::visitBinary(TVisit /* visit */, TIntermBinary* node) -{ - switch (node->getOp()) { - case EOpIndexDirect: - case EOpIndexIndirect: - case EOpIndexDirectStruct: - addDereferencedUniform(node); - break; - default: - break; - } - - // still need to visit everything below, which could contain sub-expressions - // containing different uniforms - return true; -} - -// To reflect non-dereferenced objects. -void TReflectionTraverser::visitSymbol(TIntermSymbol* base) -{ - if (base->getQualifier().storage == EvqUniform) { - if (base->getBasicType() == EbtBlock) { - if (reflection.options & EShReflectionSharedStd140UBO) { - addUniform(*base); - } - } else { - addUniform(*base); - } - } - - // #TODO add std140/layout active rules for ssbo, same with ubo. - // Storage buffer blocks will be collected and expanding in this part. - if((reflection.options & EShReflectionSharedStd140SSBO) && - (base->getQualifier().storage == EvqBuffer && base->getBasicType() == EbtBlock && - (base->getQualifier().layoutPacking == ElpStd140 || base->getQualifier().layoutPacking == ElpShared))) - addUniform(*base); - - if ((intermediate.getStage() == reflection.firstStage && base->getQualifier().isPipeInput()) || - (intermediate.getStage() == reflection.lastStage && base->getQualifier().isPipeOutput())) - addPipeIOVariable(*base); -} - -// -// Implement TObjectReflection methods. -// - -TObjectReflection::TObjectReflection(const std::string &pName, const TType &pType, int pOffset, int pGLDefineType, - int pSize, int pIndex) - : name(pName), offset(pOffset), glDefineType(pGLDefineType), size(pSize), index(pIndex), counterIndex(-1), - numMembers(-1), arrayStride(0), topLevelArrayStride(0), stages(EShLanguageMask(0)), type(pType.clone()) -{ -} - -int TObjectReflection::getBinding() const -{ - if (type == nullptr || !type->getQualifier().hasBinding()) - return -1; - return type->getQualifier().layoutBinding; -} - -void TObjectReflection::dump() const -{ - printf("%s: offset %d, type %x, size %d, index %d, binding %d, stages %d", name.c_str(), offset, glDefineType, size, - index, getBinding(), stages); - - if (counterIndex != -1) - printf(", counter %d", counterIndex); - - if (numMembers != -1) - printf(", numMembers %d", numMembers); - - if (arrayStride != 0) - printf(", arrayStride %d", arrayStride); - - if (topLevelArrayStride != 0) - printf(", topLevelArrayStride %d", topLevelArrayStride); - - printf("\n"); -} - -// -// 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) -{ -#ifdef ENABLE_HLSL - // search for ones that have counters - for (int i = 0; i < int(indexToUniformBlock.size()); ++i) { - const TString counterName(intermediate.addCounterBufferName(indexToUniformBlock[i].name).c_str()); - const int index = getIndex(counterName); - - if (index >= 0) - indexToUniformBlock[i].counterIndex = index; - } -#else - (void)intermediate; -#endif -} - -// build Shader Stages mask for all uniforms -void TReflection::buildUniformStageMask(const TIntermediate& intermediate) -{ - if (options & EShReflectionAllBlockVariables) - return; - - for (int i = 0; i < int(indexToUniform.size()); ++i) { - indexToUniform[i].stages = static_cast(indexToUniform[i].stages | 1 << intermediate.getStage()); - } - - for (int i = 0; i < int(indexToBufferVariable.size()); ++i) { - indexToBufferVariable[i].stages = - static_cast(indexToBufferVariable[i].stages | 1 << intermediate.getStage()); - } -} - -// 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) -{ - if (intermediate.getTreeRoot() == nullptr || - intermediate.getNumEntryPoints() != 1 || - intermediate.isRecursive()) - return false; - - buildAttributeReflection(stage, intermediate); - - TReflectionTraverser it(intermediate, *this); - - for (auto& sequnence : intermediate.getTreeRoot()->getAsAggregate()->getSequence()) { - if (sequnence->getAsAggregate() != nullptr) { - if (sequnence->getAsAggregate()->getOp() == glslang::EOpLinkerObjects) { - it.updateStageMasks = false; - TIntermAggregate* linkerObjects = sequnence->getAsAggregate(); - for (auto& sequnence : linkerObjects->getSequence()) { - auto pNode = sequnence->getAsSymbolNode(); - if (pNode != nullptr) { - if ((pNode->getQualifier().storage == EvqUniform && - (options & EShReflectionSharedStd140UBO)) || - (pNode->getQualifier().storage == EvqBuffer && - (options & EShReflectionSharedStd140SSBO))) { - // collect std140 and shared uniform block form AST - if ((pNode->getBasicType() == EbtBlock) && - ((pNode->getQualifier().layoutPacking == ElpStd140) || - (pNode->getQualifier().layoutPacking == ElpShared))) { - pNode->traverse(&it); - } - } - else if ((options & EShReflectionAllIOVariables) && - (pNode->getQualifier().isPipeInput() || pNode->getQualifier().isPipeOutput())) - { - pNode->traverse(&it); - } - } - } - } else { - // This traverser will travers all function in AST. - // If we want reflect uncalled function, we need set linke message EShMsgKeepUncalled. - // When EShMsgKeepUncalled been set to true, all function will be keep in AST, even it is a uncalled function. - // This will keep some uniform variables in reflection, if those uniform variables is used in these uncalled function. - // - // If we just want reflect only live node, we can use a default link message or set EShMsgKeepUncalled false. - // When linke message not been set EShMsgKeepUncalled, linker won't keep uncalled function in AST. - // So, travers all function node can equivalent to travers live function. - it.updateStageMasks = true; - sequnence->getAsAggregate()->traverse(&it); - } - } - } - it.updateStageMasks = true; - - buildCounterIndices(intermediate); - buildUniformStageMask(intermediate); - - return true; -} - -void TReflection::dump() -{ - printf("Uniform reflection:\n"); - for (size_t i = 0; i < indexToUniform.size(); ++i) - indexToUniform[i].dump(); - printf("\n"); - - printf("Uniform block reflection:\n"); - for (size_t i = 0; i < indexToUniformBlock.size(); ++i) - indexToUniformBlock[i].dump(); - printf("\n"); - - printf("Buffer variable reflection:\n"); - for (size_t i = 0; i < indexToBufferVariable.size(); ++i) - indexToBufferVariable[i].dump(); - printf("\n"); - - printf("Buffer block reflection:\n"); - for (size_t i = 0; i < indexToBufferBlock.size(); ++i) - indexToBufferBlock[i].dump(); - printf("\n"); - - printf("Pipeline input reflection:\n"); - for (size_t i = 0; i < indexToPipeInput.size(); ++i) - indexToPipeInput[i].dump(); - printf("\n"); - - printf("Pipeline output reflection:\n"); - for (size_t i = 0; i < indexToPipeOutput.size(); ++i) - indexToPipeOutput[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: %u\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"); -} - -} // end namespace glslang - -#endif // !GLSLANG_WEB && !GLSLANG_ANGLE diff --git a/deps/glslang/glslang/MachineIndependent/reflection.h b/deps/glslang/glslang/MachineIndependent/reflection.h deleted file mode 100644 index 5af4467c..00000000 --- a/deps/glslang/glslang/MachineIndependent/reflection.h +++ /dev/null @@ -1,223 +0,0 @@ -// -// 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. -// - -#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) - -#ifndef _REFLECTION_INCLUDED -#define _REFLECTION_INCLUDED - -#include "../Public/ShaderLang.h" -#include "../Include/Types.h" - -#include -#include - -// -// A reflection database and its interface, consistent with the OpenGL API reflection queries. -// - -namespace glslang { - -class TIntermediate; -class TIntermAggregate; -class TReflectionTraverser; - -// The full reflection database -class TReflection { -public: - TReflection(EShReflectionOptions opts, EShLanguage first, EShLanguage last) - : options(opts), firstStage(first), lastStage(last), badReflection(TObjectReflection::badReflection()) - { - for (int dim=0; dim<3; ++dim) - localSize[dim] = 0; - } - - virtual ~TReflection() {} - - // grow the reflection stage by stage - bool addStage(EShLanguage, const TIntermediate&); - - // for mapping a uniform index to a uniform object's description - int getNumUniforms() { return (int)indexToUniform.size(); } - const TObjectReflection& getUniform(int i) const - { - if (i >= 0 && i < (int)indexToUniform.size()) - return indexToUniform[i]; - else - return badReflection; - } - - // for mapping a block index to the block's description - int getNumUniformBlocks() const { return (int)indexToUniformBlock.size(); } - const TObjectReflection& getUniformBlock(int i) const - { - if (i >= 0 && i < (int)indexToUniformBlock.size()) - return indexToUniformBlock[i]; - else - return badReflection; - } - - // for mapping an pipeline input index to the input's description - int getNumPipeInputs() { return (int)indexToPipeInput.size(); } - const TObjectReflection& getPipeInput(int i) const - { - if (i >= 0 && i < (int)indexToPipeInput.size()) - return indexToPipeInput[i]; - else - return badReflection; - } - - // for mapping an pipeline output index to the output's description - int getNumPipeOutputs() { return (int)indexToPipeOutput.size(); } - const TObjectReflection& getPipeOutput(int i) const - { - if (i >= 0 && i < (int)indexToPipeOutput.size()) - return indexToPipeOutput[i]; - else - return badReflection; - } - - // for mapping from an atomic counter to the uniform index - int getNumAtomicCounters() const { return (int)atomicCounterUniformIndices.size(); } - const TObjectReflection& getAtomicCounter(int i) const - { - if (i >= 0 && i < (int)atomicCounterUniformIndices.size()) - return getUniform(atomicCounterUniformIndices[i]); - else - return badReflection; - } - - // for mapping a buffer variable index to a buffer variable object's description - int getNumBufferVariables() { return (int)indexToBufferVariable.size(); } - const TObjectReflection& getBufferVariable(int i) const - { - if (i >= 0 && i < (int)indexToBufferVariable.size()) - return indexToBufferVariable[i]; - else - return badReflection; - } - - // for mapping a storage block index to the storage block's description - int getNumStorageBuffers() const { return (int)indexToBufferBlock.size(); } - const TObjectReflection& getStorageBufferBlock(int i) const - { - if (i >= 0 && i < (int)indexToBufferBlock.size()) - return indexToBufferBlock[i]; - else - return badReflection; - } - - // for mapping any name to its index (block names, uniform names and input/output names) - int getIndex(const char* name) const - { - TNameToIndex::const_iterator it = nameToIndex.find(name); - if (it == nameToIndex.end()) - return -1; - else - return it->second; - } - - // see getIndex(const char*) - int getIndex(const TString& name) const { return getIndex(name.c_str()); } - - - // for mapping any name to its index (only pipe input/output names) - int getPipeIOIndex(const char* name, const bool inOrOut) const - { - TNameToIndex::const_iterator it = inOrOut ? pipeInNameToIndex.find(name) : pipeOutNameToIndex.find(name); - if (it == (inOrOut ? pipeInNameToIndex.end() : pipeOutNameToIndex.end())) - return -1; - else - return it->second; - } - - // see gePipeIOIndex(const char*, const bool) - int getPipeIOIndex(const TString& name, const bool inOrOut) const { return getPipeIOIndex(name.c_str(), inOrOut); } - - // 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 buildUniformStageMask(const TIntermediate& intermediate); - void buildAttributeReflection(EShLanguage, const TIntermediate&); - - // Need a TString hash: typedef std::unordered_map TNameToIndex; - typedef std::map TNameToIndex; - typedef std::vector TMapIndexToReflection; - typedef std::vector TIndices; - - TMapIndexToReflection& GetBlockMapForStorage(TStorageQualifier storage) - { - if ((options & EShReflectionSeparateBuffers) && storage == EvqBuffer) - return indexToBufferBlock; - return indexToUniformBlock; - } - TMapIndexToReflection& GetVariableMapForStorage(TStorageQualifier storage) - { - if ((options & EShReflectionSeparateBuffers) && storage == EvqBuffer) - return indexToBufferVariable; - return indexToUniform; - } - - EShReflectionOptions options; - - EShLanguage firstStage; - EShLanguage lastStage; - - TObjectReflection badReflection; // return for queries of -1 or generally out of range; has expected descriptions with in it for this - TNameToIndex nameToIndex; // maps names to indexes; can hold all types of data: uniform/buffer and which function names have been processed - TNameToIndex pipeInNameToIndex; // maps pipe in names to indexes, this is a fix to seperate pipe I/O from uniforms and buffers. - TNameToIndex pipeOutNameToIndex; // maps pipe out names to indexes, this is a fix to seperate pipe I/O from uniforms and buffers. - TMapIndexToReflection indexToUniform; - TMapIndexToReflection indexToUniformBlock; - TMapIndexToReflection indexToBufferVariable; - TMapIndexToReflection indexToBufferBlock; - TMapIndexToReflection indexToPipeInput; - TMapIndexToReflection indexToPipeOutput; - TIndices atomicCounterUniformIndices; - - unsigned int localSize[3]; -}; - -} // end namespace glslang - -#endif // _REFLECTION_INCLUDED - -#endif // !GLSLANG_WEB && !GLSLANG_ANGLE diff --git a/deps/glslang/glslang/OSDependent/Unix/CMakeLists.txt b/deps/glslang/glslang/OSDependent/Unix/CMakeLists.txt deleted file mode 100644 index d521da17..00000000 --- a/deps/glslang/glslang/OSDependent/Unix/CMakeLists.txt +++ /dev/null @@ -1,59 +0,0 @@ -# Copyright (C) 2020 The Khronos Group 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 The Khronos Group 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. - -add_library(OSDependent STATIC ossource.cpp ../osinclude.h) -set_property(TARGET OSDependent PROPERTY FOLDER glslang) -set_property(TARGET OSDependent PROPERTY POSITION_INDEPENDENT_CODE ON) - -# Link pthread -set(CMAKE_THREAD_PREFER_PTHREAD ON) -if(${CMAKE_VERSION} VERSION_LESS "3.1.0" OR CMAKE_CROSSCOMPILING) - # Needed as long as we support CMake 2.8 for Ubuntu 14.04, - # which does not support the recommended Threads::Threads target. - # https://cmake.org/cmake/help/v2.8.12/cmake.html#module:FindThreads - # Also needed when cross-compiling to work around - # https://gitlab.kitware.com/cmake/cmake/issues/16920 - find_package(Threads) - target_link_libraries(OSDependent ${CMAKE_THREAD_LIBS_INIT}) -else() - # This is the recommended way, so we use it for 3.1+. - set(THREADS_PREFER_PTHREAD_FLAG ON) - find_package(Threads) - target_link_libraries(OSDependent Threads::Threads) -endif() - -if(ENABLE_GLSLANG_INSTALL) - install(TARGETS OSDependent EXPORT OSDependentTargets - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) - install(EXPORT OSDependentTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) -endif() diff --git a/deps/glslang/glslang/OSDependent/Unix/ossource.cpp b/deps/glslang/glslang/OSDependent/Unix/ossource.cpp deleted file mode 100644 index 81da99c2..00000000 --- a/deps/glslang/glslang/OSDependent/Unix/ossource.cpp +++ /dev/null @@ -1,213 +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 - -#if !defined(__Fuchsia__) -#include -#endif - -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) -{ -#if defined(__ANDROID__) || defined(__Fuchsia__) - 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; -} - -static void InitMutex(void) -{ - pthread_mutexattr_t mutexattr; - pthread_mutexattr_init(&mutexattr); - pthread_mutexattr_settype(&mutexattr, PTHREAD_MUTEX_RECURSIVE); - pthread_mutex_init(&gMutex, &mutexattr); -} - -void InitGlobalLock() -{ - static pthread_once_t once = PTHREAD_ONCE_INIT; - pthread_once(&once, InitMutex); -} - -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/glslang/OSDependent/Web/CMakeLists.txt b/deps/glslang/glslang/OSDependent/Web/CMakeLists.txt deleted file mode 100644 index 5bfbed41..00000000 --- a/deps/glslang/glslang/OSDependent/Web/CMakeLists.txt +++ /dev/null @@ -1,71 +0,0 @@ -# Copyright (C) 2020 The Khronos Group 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 The Khronos Group 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. - -if(ENABLE_GLSLANG_JS) - add_executable(glslang.js "glslang.js.cpp") - glslang_set_link_args(glslang.js) - target_link_libraries(glslang.js glslang SPIRV) - - # Link library names that start with "-" are treated as link flags. - # "-Os" should be OK in MSVC; don't use /Os because CMake won't - # treat it as a link flag. - target_link_libraries(glslang.js "-Os") - - if(EMSCRIPTEN) - set_target_properties(glslang.js PROPERTIES - OUTPUT_NAME "glslang" - SUFFIX ".js") - em_link_pre_js(glslang.js "${CMAKE_CURRENT_SOURCE_DIR}/glslang.pre.js") - - target_link_libraries(glslang.js "--llvm-lto 1") - target_link_libraries(glslang.js "--closure 1") - target_link_libraries(glslang.js "-s MODULARIZE=1") - target_link_libraries(glslang.js "-s ALLOW_MEMORY_GROWTH=1") - target_link_libraries(glslang.js "-s FILESYSTEM=0") - - if(ENABLE_EMSCRIPTEN_SINGLE_FILE) - target_link_libraries(glslang.js "-s SINGLE_FILE=1") - endif() - - if(ENABLE_EMSCRIPTEN_ENVIRONMENT_NODE) - target_link_libraries(glslang.js "-s ENVIRONMENT=node -s BINARYEN_ASYNC_COMPILATION=0") - else() - target_link_libraries(glslang.js "-s ENVIRONMENT=web,worker") - endif() - - if(NOT ENABLE_EMSCRIPTEN_ENVIRONMENT_NODE) - add_custom_command(TARGET glslang.js POST_BUILD - COMMAND cat ${CMAKE_CURRENT_SOURCE_DIR}/glslang.after.js >> ${CMAKE_CURRENT_BINARY_DIR}/glslang.js) - endif() - endif() -endif() diff --git a/deps/glslang/glslang/OSDependent/Web/glslang.after.js b/deps/glslang/glslang/OSDependent/Web/glslang.after.js deleted file mode 100644 index c2cfc35a..00000000 --- a/deps/glslang/glslang/OSDependent/Web/glslang.after.js +++ /dev/null @@ -1,26 +0,0 @@ -export default (() => { - const initialize = () => { - return new Promise(resolve => { - Module({ - locateFile() { - const i = import.meta.url.lastIndexOf('/') - return import.meta.url.substring(0, i) + '/glslang.wasm'; - }, - onRuntimeInitialized() { - resolve({ - compileGLSLZeroCopy: this.compileGLSLZeroCopy, - compileGLSL: this.compileGLSL, - }); - }, - }); - }); - }; - - let instance; - return () => { - if (!instance) { - instance = initialize(); - } - return instance; - }; -})(); diff --git a/deps/glslang/glslang/OSDependent/Web/glslang.js.cpp b/deps/glslang/glslang/OSDependent/Web/glslang.js.cpp deleted file mode 100644 index f2306a60..00000000 --- a/deps/glslang/glslang/OSDependent/Web/glslang.js.cpp +++ /dev/null @@ -1,287 +0,0 @@ -// -// Copyright (C) 2019 Google, Inc. -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// Neither the name of 3Dlabs Inc. Ltd. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -// - -#include -#include -#include - -#ifdef __EMSCRIPTEN__ -#include -#endif - -#include "../../../SPIRV/GlslangToSpv.h" -#include "../../../glslang/Public/ShaderLang.h" - -#ifndef __EMSCRIPTEN__ -#define EMSCRIPTEN_KEEPALIVE -#endif - -const TBuiltInResource DefaultTBuiltInResource = { - /* .MaxLights = */ 32, - /* .MaxClipPlanes = */ 6, - /* .MaxTextureUnits = */ 32, - /* .MaxTextureCoords = */ 32, - /* .MaxVertexAttribs = */ 64, - /* .MaxVertexUniformComponents = */ 4096, - /* .MaxVaryingFloats = */ 64, - /* .MaxVertexTextureImageUnits = */ 32, - /* .MaxCombinedTextureImageUnits = */ 80, - /* .MaxTextureImageUnits = */ 32, - /* .MaxFragmentUniformComponents = */ 4096, - /* .MaxDrawBuffers = */ 32, - /* .MaxVertexUniformVectors = */ 128, - /* .MaxVaryingVectors = */ 8, - /* .MaxFragmentUniformVectors = */ 16, - /* .MaxVertexOutputVectors = */ 16, - /* .MaxFragmentInputVectors = */ 15, - /* .MinProgramTexelOffset = */ -8, - /* .MaxProgramTexelOffset = */ 7, - /* .MaxClipDistances = */ 8, - /* .MaxComputeWorkGroupCountX = */ 65535, - /* .MaxComputeWorkGroupCountY = */ 65535, - /* .MaxComputeWorkGroupCountZ = */ 65535, - /* .MaxComputeWorkGroupSizeX = */ 1024, - /* .MaxComputeWorkGroupSizeY = */ 1024, - /* .MaxComputeWorkGroupSizeZ = */ 64, - /* .MaxComputeUniformComponents = */ 1024, - /* .MaxComputeTextureImageUnits = */ 16, - /* .MaxComputeImageUniforms = */ 8, - /* .MaxComputeAtomicCounters = */ 8, - /* .MaxComputeAtomicCounterBuffers = */ 1, - /* .MaxVaryingComponents = */ 60, - /* .MaxVertexOutputComponents = */ 64, - /* .MaxGeometryInputComponents = */ 64, - /* .MaxGeometryOutputComponents = */ 128, - /* .MaxFragmentInputComponents = */ 128, - /* .MaxImageUnits = */ 8, - /* .MaxCombinedImageUnitsAndFragmentOutputs = */ 8, - /* .MaxCombinedShaderOutputResources = */ 8, - /* .MaxImageSamples = */ 0, - /* .MaxVertexImageUniforms = */ 0, - /* .MaxTessControlImageUniforms = */ 0, - /* .MaxTessEvaluationImageUniforms = */ 0, - /* .MaxGeometryImageUniforms = */ 0, - /* .MaxFragmentImageUniforms = */ 8, - /* .MaxCombinedImageUniforms = */ 8, - /* .MaxGeometryTextureImageUnits = */ 16, - /* .MaxGeometryOutputVertices = */ 256, - /* .MaxGeometryTotalOutputComponents = */ 1024, - /* .MaxGeometryUniformComponents = */ 1024, - /* .MaxGeometryVaryingComponents = */ 64, - /* .MaxTessControlInputComponents = */ 128, - /* .MaxTessControlOutputComponents = */ 128, - /* .MaxTessControlTextureImageUnits = */ 16, - /* .MaxTessControlUniformComponents = */ 1024, - /* .MaxTessControlTotalOutputComponents = */ 4096, - /* .MaxTessEvaluationInputComponents = */ 128, - /* .MaxTessEvaluationOutputComponents = */ 128, - /* .MaxTessEvaluationTextureImageUnits = */ 16, - /* .MaxTessEvaluationUniformComponents = */ 1024, - /* .MaxTessPatchComponents = */ 120, - /* .MaxPatchVertices = */ 32, - /* .MaxTessGenLevel = */ 64, - /* .MaxViewports = */ 16, - /* .MaxVertexAtomicCounters = */ 0, - /* .MaxTessControlAtomicCounters = */ 0, - /* .MaxTessEvaluationAtomicCounters = */ 0, - /* .MaxGeometryAtomicCounters = */ 0, - /* .MaxFragmentAtomicCounters = */ 8, - /* .MaxCombinedAtomicCounters = */ 8, - /* .MaxAtomicCounterBindings = */ 1, - /* .MaxVertexAtomicCounterBuffers = */ 0, - /* .MaxTessControlAtomicCounterBuffers = */ 0, - /* .MaxTessEvaluationAtomicCounterBuffers = */ 0, - /* .MaxGeometryAtomicCounterBuffers = */ 0, - /* .MaxFragmentAtomicCounterBuffers = */ 1, - /* .MaxCombinedAtomicCounterBuffers = */ 1, - /* .MaxAtomicCounterBufferSize = */ 16384, - /* .MaxTransformFeedbackBuffers = */ 4, - /* .MaxTransformFeedbackInterleavedComponents = */ 64, - /* .MaxCullDistances = */ 8, - /* .MaxCombinedClipAndCullDistances = */ 8, - /* .MaxSamples = */ 4, - /* .maxMeshOutputVerticesNV = */ 256, - /* .maxMeshOutputPrimitivesNV = */ 512, - /* .maxMeshWorkGroupSizeX_NV = */ 32, - /* .maxMeshWorkGroupSizeY_NV = */ 1, - /* .maxMeshWorkGroupSizeZ_NV = */ 1, - /* .maxTaskWorkGroupSizeX_NV = */ 32, - /* .maxTaskWorkGroupSizeY_NV = */ 1, - /* .maxTaskWorkGroupSizeZ_NV = */ 1, - /* .maxMeshViewCountNV = */ 4, - /* .maxDualSourceDrawBuffersEXT = */ 1, - - /* .limits = */ { - /* .nonInductiveForLoops = */ 1, - /* .whileLoops = */ 1, - /* .doWhileLoops = */ 1, - /* .generalUniformIndexing = */ 1, - /* .generalAttributeMatrixVectorIndexing = */ 1, - /* .generalVaryingIndexing = */ 1, - /* .generalSamplerIndexing = */ 1, - /* .generalVariableIndexing = */ 1, - /* .generalConstantMatrixVectorIndexing = */ 1, - }}; - -static bool initialized = false; - -extern "C" { - -/* - * Takes in a GLSL shader as a string and converts it to SPIR-V in binary form. - * - * |glsl| Null-terminated string containing the shader to be converted. - * |stage_int| Magic number indicating the type of shader being processed. -* Legal values are as follows: - * Vertex = 0 - * Fragment = 4 - * Compute = 5 - * |gen_debug| Flag to indicate if debug information should be generated. - * |spirv| Output parameter for a pointer to the resulting SPIR-V data. - * |spirv_len| Output parameter for the length of the output binary buffer. - * - * Returns a void* pointer which, if not null, must be destroyed by - * destroy_output_buffer.o. (This is not the same pointer returned in |spirv|.) - * If null, the compilation failed. - */ -EMSCRIPTEN_KEEPALIVE -void* convert_glsl_to_spirv(const char* glsl, - int stage_int, - bool gen_debug, - glslang::EShTargetLanguageVersion spirv_version, - uint32_t** spirv, - size_t* spirv_len) -{ - if (glsl == nullptr) { - fprintf(stderr, "Input pointer null\n"); - return nullptr; - } - if (spirv == nullptr || spirv_len == nullptr) { - fprintf(stderr, "Output pointer null\n"); - return nullptr; - } - *spirv = nullptr; - *spirv_len = 0; - - if (stage_int != 0 && stage_int != 4 && stage_int != 5) { - fprintf(stderr, "Invalid shader stage\n"); - return nullptr; - } - EShLanguage stage = static_cast(stage_int); - switch (spirv_version) { - case glslang::EShTargetSpv_1_0: - case glslang::EShTargetSpv_1_1: - case glslang::EShTargetSpv_1_2: - case glslang::EShTargetSpv_1_3: - case glslang::EShTargetSpv_1_4: - case glslang::EShTargetSpv_1_5: - break; - default: - fprintf(stderr, "Invalid SPIR-V version number\n"); - return nullptr; - } - - if (!initialized) { - glslang::InitializeProcess(); - initialized = true; - } - - glslang::TShader shader(stage); - shader.setStrings(&glsl, 1); - shader.setEnvInput(glslang::EShSourceGlsl, stage, glslang::EShClientVulkan, 100); - shader.setEnvClient(glslang::EShClientVulkan, glslang::EShTargetVulkan_1_0); - shader.setEnvTarget(glslang::EShTargetSpv, spirv_version); - if (!shader.parse(&DefaultTBuiltInResource, 100, true, EShMsgDefault)) { - fprintf(stderr, "Parse failed\n"); - fprintf(stderr, "%s\n", shader.getInfoLog()); - return nullptr; - } - - glslang::TProgram program; - program.addShader(&shader); - if (!program.link(EShMsgDefault)) { - fprintf(stderr, "Link failed\n"); - fprintf(stderr, "%s\n", program.getInfoLog()); - return nullptr; - } - - glslang::SpvOptions spvOptions; - spvOptions.generateDebugInfo = gen_debug; - spvOptions.optimizeSize = false; - spvOptions.disassemble = false; - spvOptions.validate = false; - - std::vector* output = new std::vector; - glslang::GlslangToSpv(*program.getIntermediate(stage), *output, nullptr, &spvOptions); - - *spirv_len = output->size(); - *spirv = output->data(); - return output; -} - -/* - * Destroys a buffer created by convert_glsl_to_spirv - */ -EMSCRIPTEN_KEEPALIVE -void destroy_output_buffer(void* p) -{ - delete static_cast*>(p); -} - -} // extern "C" - -/* - * For non-Emscripten builds we supply a generic main, so that the glslang.js - * build target can generate an executable with a trivial use case instead of - * generating a WASM binary. This is done so that there is a target that can be - * built and output analyzed using desktop tools, since WASM binaries are - * specific to the Emscripten toolchain. - */ -#ifndef __EMSCRIPTEN__ -int main() { - const char* input = R"(#version 310 es - -void main() { })"; - - uint32_t* output; - size_t output_len; - - void* id = convert_glsl_to_spirv(input, 4, false, glslang::EShTargetSpv_1_0, &output, &output_len); - assert(output != nullptr); - assert(output_len != 0); - destroy_output_buffer(id); - return 0; -} -#endif // ifndef __EMSCRIPTEN__ diff --git a/deps/glslang/glslang/OSDependent/Web/glslang.pre.js b/deps/glslang/glslang/OSDependent/Web/glslang.pre.js deleted file mode 100644 index 46a56950..00000000 --- a/deps/glslang/glslang/OSDependent/Web/glslang.pre.js +++ /dev/null @@ -1,56 +0,0 @@ -Module['compileGLSLZeroCopy'] = function(glsl, shader_stage, gen_debug, spirv_version) { - gen_debug = !!gen_debug; - - var shader_stage_int; // EShLanguage - switch (shader_stage) { - case 'vertex': shader_stage_int = 0; break; - case 'fragment': shader_stage_int = 4; break; - case 'compute': shader_stage_int = 5; break; - default: - throw new Error("shader_stage must be 'vertex', 'fragment', or 'compute'."); - } - - spirv_version = spirv_version || '1.0'; - var spirv_version_int; // EShTargetLanguageVersion - switch (spirv_version) { - case '1.0': spirv_version_int = (1 << 16) | (0 << 8); break; - case '1.1': spirv_version_int = (1 << 16) | (1 << 8); break; - case '1.2': spirv_version_int = (1 << 16) | (2 << 8); break; - case '1.3': spirv_version_int = (1 << 16) | (3 << 8); break; - case '1.4': spirv_version_int = (1 << 16) | (4 << 8); break; - case '1.5': spirv_version_int = (1 << 16) | (5 << 8); break; - default: - throw new Error("spirv_version must be '1.0' ~ '1.5'."); - } - - var p_output = Module['_malloc'](4); - var p_output_len = Module['_malloc'](4); - var id = ccall('convert_glsl_to_spirv', - 'number', - ['string', 'number', 'boolean', 'number', 'number', 'number'], - [glsl, shader_stage_int, gen_debug, spirv_version_int, p_output, p_output_len]); - var output = getValue(p_output, 'i32'); - var output_len = getValue(p_output_len, 'i32'); - Module['_free'](p_output); - Module['_free'](p_output_len); - - if (id === 0) { - throw new Error('GLSL compilation failed'); - } - - var ret = {}; - var outputIndexU32 = output / 4; - ret['data'] = Module['HEAPU32'].subarray(outputIndexU32, outputIndexU32 + output_len); - ret['free'] = function() { - Module['_destroy_output_buffer'](id); - }; - - return ret; -}; - -Module['compileGLSL'] = function(glsl, shader_stage, gen_debug, spirv_version) { - var compiled = Module['compileGLSLZeroCopy'](glsl, shader_stage, gen_debug, spirv_version); - var ret = compiled['data'].slice() - compiled['free'](); - return ret; -}; diff --git a/deps/glslang/glslang/OSDependent/Windows/CMakeLists.txt b/deps/glslang/glslang/OSDependent/Windows/CMakeLists.txt deleted file mode 100644 index 21d603e7..00000000 --- a/deps/glslang/glslang/OSDependent/Windows/CMakeLists.txt +++ /dev/null @@ -1,54 +0,0 @@ -# Copyright (C) 2020 The Khronos Group 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 The Khronos Group 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. - -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) -endif() - -if(WIN32) - source_group("Source" FILES ${SOURCES}) -endif() - -if(ENABLE_GLSLANG_INSTALL) - install(TARGETS OSDependent EXPORT OSDependentTargets - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) - install(EXPORT OSDependentTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) -endif() diff --git a/deps/glslang/glslang/OSDependent/Windows/main.cpp b/deps/glslang/glslang/OSDependent/Windows/main.cpp deleted file mode 100644 index 0bcde7b6..00000000 --- a/deps/glslang/glslang/OSDependent/Windows/main.cpp +++ /dev/null @@ -1,74 +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. -// - -#include "InitializeDll.h" - -#define STRICT -#define VC_EXTRALEAN 1 -#include -#include - -BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) -{ - switch (fdwReason) - { - case DLL_PROCESS_ATTACH: - - if (! glslang::InitProcess()) - return FALSE; - break; - case DLL_THREAD_ATTACH: - - if (! glslang::InitThread()) - return FALSE; - break; - - case DLL_THREAD_DETACH: - - if (! glslang::DetachThread()) - return FALSE; - break; - - case DLL_PROCESS_DETACH: - - glslang::DetachProcess(); - break; - - default: - assert(0 && "DllMain(): Reason for calling DLL Main is unknown"); - return FALSE; - } - - return TRUE; -} diff --git a/deps/glslang/glslang/OSDependent/Windows/ossource.cpp b/deps/glslang/glslang/OSDependent/Windows/ossource.cpp deleted file mode 100644 index 870840c5..00000000 --- a/deps/glslang/glslang/OSDependent/Windows/ossource.cpp +++ /dev/null @@ -1,147 +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. -// - -#include "../osinclude.h" - -#define STRICT -#define VC_EXTRALEAN 1 -#include -#include -#include -#include -#include -#include - -// -// This file contains the Window-OS-specific functions -// - -#if !(defined(_WIN32) || defined(_WIN64)) -#error Trying to build a windows specific file in a non windows build. -#endif - -namespace glslang { - -inline OS_TLSIndex ToGenericTLSIndex (DWORD handle) -{ - return (OS_TLSIndex)((uintptr_t)handle + 1); -} - -inline DWORD ToNativeTLSIndex (OS_TLSIndex nIndex) -{ - return (DWORD)((uintptr_t)nIndex - 1); -} - -// -// Thread Local Storage Operations -// -OS_TLSIndex OS_AllocTLSIndex() -{ - DWORD dwIndex = TlsAlloc(); - if (dwIndex == TLS_OUT_OF_INDEXES) { - assert(0 && "OS_AllocTLSIndex(): Unable to allocate Thread Local Storage"); - return OS_INVALID_TLS_INDEX; - } - - return ToGenericTLSIndex(dwIndex); -} - -bool OS_SetTLSValue(OS_TLSIndex nIndex, void *lpvValue) -{ - if (nIndex == OS_INVALID_TLS_INDEX) { - assert(0 && "OS_SetTLSValue(): Invalid TLS Index"); - return false; - } - - if (TlsSetValue(ToNativeTLSIndex(nIndex), lpvValue)) - return true; - else - return false; -} - -void* OS_GetTLSValue(OS_TLSIndex nIndex) -{ - assert(nIndex != OS_INVALID_TLS_INDEX); - return TlsGetValue(ToNativeTLSIndex(nIndex)); -} - -bool OS_FreeTLSIndex(OS_TLSIndex nIndex) -{ - if (nIndex == OS_INVALID_TLS_INDEX) { - assert(0 && "OS_SetTLSValue(): Invalid TLS Index"); - return false; - } - - if (TlsFree(ToNativeTLSIndex(nIndex))) - return true; - else - return false; -} - -HANDLE GlobalLock; - -void InitGlobalLock() -{ - GlobalLock = CreateMutex(0, false, 0); -} - -void GetGlobalLock() -{ - WaitForSingleObject(GlobalLock, INFINITE); -} - -void ReleaseGlobalLock() -{ - ReleaseMutex(GlobalLock); -} - -unsigned int __stdcall EnterGenericThread (void* entry) -{ - return ((TThreadEntrypoint)entry)(0); -} - -//#define DUMP_COUNTERS - -void OS_DumpMemoryCounters() -{ -#ifdef DUMP_COUNTERS - PROCESS_MEMORY_COUNTERS counters; - GetProcessMemoryInfo(GetCurrentProcess(), &counters, sizeof(counters)); - printf("Working set size: %d\n", counters.WorkingSetSize); -#else - printf("Recompile with DUMP_COUNTERS defined to see counters.\n"); -#endif -} - -} // namespace glslang diff --git a/deps/glslang/glslang/OSDependent/osinclude.h b/deps/glslang/glslang/OSDependent/osinclude.h deleted file mode 100644 index 218abe4f..00000000 --- a/deps/glslang/glslang/OSDependent/osinclude.h +++ /dev/null @@ -1,63 +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 __OSINCLUDE_H -#define __OSINCLUDE_H - -namespace glslang { - -// -// Thread Local Storage Operations -// -typedef void* OS_TLSIndex; -#define OS_INVALID_TLS_INDEX ((void*)0) - -OS_TLSIndex OS_AllocTLSIndex(); -bool OS_SetTLSValue(OS_TLSIndex nIndex, void *lpvValue); -bool OS_FreeTLSIndex(OS_TLSIndex nIndex); -void* OS_GetTLSValue(OS_TLSIndex nIndex); - -void InitGlobalLock(); -void GetGlobalLock(); -void ReleaseGlobalLock(); - -typedef unsigned int (*TThreadEntrypoint)(void*); - -void OS_CleanupThreadData(void); - -void OS_DumpMemoryCounters(); - -} // end namespace glslang - -#endif // __OSINCLUDE_H diff --git a/deps/glslang/glslang/Public/ShaderLang.h b/deps/glslang/glslang/Public/ShaderLang.h deleted file mode 100644 index e44339db..00000000 --- a/deps/glslang/glslang/Public/ShaderLang.h +++ /dev/null @@ -1,982 +0,0 @@ -// -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2013-2016 LunarG, Inc. -// Copyright (C) 2015-2018 Google, Inc. -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// Neither the name of 3Dlabs Inc. Ltd. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -// -#ifndef _COMPILER_INTERFACE_INCLUDED_ -#define _COMPILER_INTERFACE_INCLUDED_ - -#include "../Include/ResourceLimits.h" -#include "../MachineIndependent/Versions.h" - -#include -#include - -#ifdef _WIN32 - #define C_DECL __cdecl -#else - #define C_DECL -#endif - -#ifdef GLSLANG_IS_SHARED_LIBRARY - #ifdef _WIN32 - #ifdef GLSLANG_EXPORTING - #define GLSLANG_EXPORT __declspec(dllexport) - #else - #define GLSLANG_EXPORT __declspec(dllimport) - #endif - #elif __GNUC__ >= 4 - #define GLSLANG_EXPORT __attribute__((visibility("default"))) - #endif -#endif // GLSLANG_IS_SHARED_LIBRARY - -#ifndef GLSLANG_EXPORT -#define GLSLANG_EXPORT -#endif - -// -// This is the platform independent interface between an OGL driver -// and the shading language compiler/linker. -// - -#ifdef __cplusplus - extern "C" { -#endif - -// -// Call before doing any other compiler/linker operations. -// -// (Call once per process, not once per thread.) -// -GLSLANG_EXPORT int ShInitialize(); - -// -// Call this at process shutdown to clean up memory. -// -GLSLANG_EXPORT int ShFinalize(); - -// -// Types of languages the compiler can consume. -// -typedef enum { - EShLangVertex, - EShLangTessControl, - EShLangTessEvaluation, - EShLangGeometry, - EShLangFragment, - EShLangCompute, - EShLangRayGen, - EShLangRayGenNV = EShLangRayGen, - EShLangIntersect, - EShLangIntersectNV = EShLangIntersect, - EShLangAnyHit, - EShLangAnyHitNV = EShLangAnyHit, - EShLangClosestHit, - EShLangClosestHitNV = EShLangClosestHit, - EShLangMiss, - EShLangMissNV = EShLangMiss, - EShLangCallable, - EShLangCallableNV = EShLangCallable, - EShLangTaskNV, - EShLangMeshNV, - LAST_ELEMENT_MARKER(EShLangCount), -} EShLanguage; // would be better as stage, but this is ancient now - -typedef enum : unsigned { - EShLangVertexMask = (1 << EShLangVertex), - EShLangTessControlMask = (1 << EShLangTessControl), - EShLangTessEvaluationMask = (1 << EShLangTessEvaluation), - EShLangGeometryMask = (1 << EShLangGeometry), - EShLangFragmentMask = (1 << EShLangFragment), - EShLangComputeMask = (1 << EShLangCompute), - EShLangRayGenMask = (1 << EShLangRayGen), - EShLangRayGenNVMask = EShLangRayGenMask, - EShLangIntersectMask = (1 << EShLangIntersect), - EShLangIntersectNVMask = EShLangIntersectMask, - EShLangAnyHitMask = (1 << EShLangAnyHit), - EShLangAnyHitNVMask = EShLangAnyHitMask, - EShLangClosestHitMask = (1 << EShLangClosestHit), - EShLangClosestHitNVMask = EShLangClosestHitMask, - EShLangMissMask = (1 << EShLangMiss), - EShLangMissNVMask = EShLangMissMask, - EShLangCallableMask = (1 << EShLangCallable), - EShLangCallableNVMask = EShLangCallableMask, - EShLangTaskNVMask = (1 << EShLangTaskNV), - EShLangMeshNVMask = (1 << EShLangMeshNV), - LAST_ELEMENT_MARKER(EShLanguageMaskCount), -} EShLanguageMask; - -namespace glslang { - -class TType; - -typedef enum { - EShSourceNone, - EShSourceGlsl, // GLSL, includes ESSL (OpenGL ES GLSL) - EShSourceHlsl, // HLSL - LAST_ELEMENT_MARKER(EShSourceCount), -} EShSource; // if EShLanguage were EShStage, this could be EShLanguage instead - -typedef enum { - EShClientNone, // use when there is no client, e.g. for validation - EShClientVulkan, // as GLSL dialect, specifies KHR_vulkan_glsl extension - EShClientOpenGL, // as GLSL dialect, specifies ARB_gl_spirv extension - LAST_ELEMENT_MARKER(EShClientCount), -} EShClient; - -typedef enum { - EShTargetNone, - EShTargetSpv, // SPIR-V (preferred spelling) - EshTargetSpv = EShTargetSpv, // legacy spelling - LAST_ELEMENT_MARKER(EShTargetCount), -} EShTargetLanguage; - -typedef enum { - EShTargetVulkan_1_0 = (1 << 22), // Vulkan 1.0 - EShTargetVulkan_1_1 = (1 << 22) | (1 << 12), // Vulkan 1.1 - EShTargetVulkan_1_2 = (1 << 22) | (2 << 12), // Vulkan 1.2 - EShTargetVulkan_1_3 = (1 << 22) | (3 << 12), // Vulkan 1.3 - EShTargetOpenGL_450 = 450, // OpenGL - LAST_ELEMENT_MARKER(EShTargetClientVersionCount = 5), -} EShTargetClientVersion; - -typedef EShTargetClientVersion EshTargetClientVersion; - -typedef enum { - EShTargetSpv_1_0 = (1 << 16), // SPIR-V 1.0 - EShTargetSpv_1_1 = (1 << 16) | (1 << 8), // SPIR-V 1.1 - EShTargetSpv_1_2 = (1 << 16) | (2 << 8), // SPIR-V 1.2 - EShTargetSpv_1_3 = (1 << 16) | (3 << 8), // SPIR-V 1.3 - EShTargetSpv_1_4 = (1 << 16) | (4 << 8), // SPIR-V 1.4 - EShTargetSpv_1_5 = (1 << 16) | (5 << 8), // SPIR-V 1.5 - EShTargetSpv_1_6 = (1 << 16) | (6 << 8), // SPIR-V 1.6 - LAST_ELEMENT_MARKER(EShTargetLanguageVersionCount = 7), -} 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) - bool vulkanRulesRelaxed; -}; - -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 -}; - -GLSLANG_EXPORT const char* StageName(EShLanguage); - -} // end namespace glslang - -// -// Types of output the linker will create. -// -typedef enum { - EShExVertexFragment, - EShExFragment -} EShExecutable; - -// -// Optimization level for the compiler. -// -typedef enum { - EShOptNoGeneration, - EShOptNone, - EShOptSimple, // Optimizations that can be done quickly - EShOptFull, // Optimizations that will take more time - LAST_ELEMENT_MARKER(EshOptLevelCount), -} 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 - LAST_ELEMENT_MARKER(EShTexSampTransCount), -} EShTextureSamplerTransformMode; - -// -// Message choices for what errors and warnings are given. -// -enum EShMessages : unsigned { - EShMsgDefault = 0, // default is to give all required errors and extra warnings - EShMsgRelaxedErrors = (1 << 0), // be liberal in accepting input - EShMsgSuppressWarnings = (1 << 1), // suppress all warnings, except those required by the specification - EShMsgAST = (1 << 2), // print the AST intermediate representation - EShMsgSpvRules = (1 << 3), // issue messages for SPIR-V generation - EShMsgVulkanRules = (1 << 4), // issue messages for Vulkan-requirements of GLSL for SPIR-V - EShMsgOnlyPreprocessor = (1 << 5), // only print out errors produced by the preprocessor - EShMsgReadHlsl = (1 << 6), // use HLSL parsing rules and semantics - EShMsgCascadingErrors = (1 << 7), // get cascading errors; risks error-recovery issues, instead of an early exit - 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 - EShMsgHlslDX9Compatible = (1 << 13), // enable HLSL DX9 compatible mode (for samplers and semantics) - EShMsgBuiltinSymbolTable = (1 << 14), // print the builtin symbol table - EShMsgEnhanced = (1 << 15), // enhanced message readability - LAST_ELEMENT_MARKER(EShMsgCount), -}; - -// -// Options for building reflection -// -typedef enum { - EShReflectionDefault = 0, // default is original behaviour before options were added - EShReflectionStrictArraySuffix = (1 << 0), // reflection will follow stricter rules for array-of-structs suffixes - EShReflectionBasicArraySuffix = (1 << 1), // arrays of basic types will be appended with [0] as in GL reflection - EShReflectionIntermediateIO = (1 << 2), // reflect inputs and outputs to program, even with no vertex shader - EShReflectionSeparateBuffers = (1 << 3), // buffer variables and buffer blocks are reflected separately - EShReflectionAllBlockVariables = (1 << 4), // reflect all variables in blocks, even if they are inactive - EShReflectionUnwrapIOBlocks = (1 << 5), // unwrap input/output blocks the same as with uniform blocks - EShReflectionAllIOVariables = (1 << 6), // reflect all input/output variables, even if they are inactive - EShReflectionSharedStd140SSBO = (1 << 7), // Apply std140/shared rules for ubo to ssbo - EShReflectionSharedStd140UBO = (1 << 8), // Apply std140/shared rules for ubo to ssbo - LAST_ELEMENT_MARKER(EShReflectionCount), -} EShReflectionOptions; - -// -// Build a table for bindings. This can be used for locating -// attributes, uniforms, globals, etc., as needed. -// -typedef struct { - const char* name; - int binding; -} ShBinding; - -typedef struct { - int numBindings; - ShBinding* bindings; // array of bindings -} ShBindingTable; - -// -// ShHandle held by but opaque to the driver. It is allocated, -// managed, and de-allocated by the compiler/linker. It's contents -// are defined by and used by the compiler and linker. For example, -// symbol table information and object code passed from the compiler -// to the linker can be stored where ShHandle points. -// -// If handle creation fails, 0 will be returned. -// -typedef void* ShHandle; - -// -// Driver calls these to create and destroy compiler/linker -// objects. -// -GLSLANG_EXPORT ShHandle ShConstructCompiler(const EShLanguage, int debugOptions); // one per shader -GLSLANG_EXPORT ShHandle ShConstructLinker(const EShExecutable, int debugOptions); // one per shader pair -GLSLANG_EXPORT ShHandle ShConstructUniformMap(); // one per uniform namespace (currently entire program object) -GLSLANG_EXPORT void ShDestruct(ShHandle); - -// -// The return value of ShCompile is boolean, non-zero indicating -// success. -// -// The info-log should be written by ShCompile into -// ShHandle, so it can answer future queries. -// -GLSLANG_EXPORT int ShCompile( - const ShHandle, - const char* const shaderStrings[], - const int numStrings, - const int* lengths, - const EShOptimizationLevel, - const TBuiltInResource *resources, - int debugOptions, - int defaultVersion = 110, // use 100 for ES environment, overridden by #version in shader - bool forwardCompatible = false, // give errors for use of deprecated features - EShMessages messages = EShMsgDefault // warnings and errors - ); - -GLSLANG_EXPORT int ShLinkExt( - const ShHandle, // linker object - const ShHandle h[], // compiler objects to link together - const int numHandles); - -// -// ShSetEncrpytionMethod is a place-holder for specifying -// how source code is encrypted. -// -GLSLANG_EXPORT void ShSetEncryptionMethod(ShHandle); - -// -// All the following return 0 if the information is not -// available in the object passed down, or the object is bad. -// -GLSLANG_EXPORT const char* ShGetInfoLog(const ShHandle); -GLSLANG_EXPORT const void* ShGetExecutable(const ShHandle); -GLSLANG_EXPORT int ShSetVirtualAttributeBindings(const ShHandle, const ShBindingTable*); // to detect user aliasing -GLSLANG_EXPORT int ShSetFixedAttributeBindings(const ShHandle, const ShBindingTable*); // to force any physical mappings -// -// Tell the linker to never assign a vertex attribute to this list of physical attributes -// -GLSLANG_EXPORT int ShExcludeAttributes(const ShHandle, int *attributes, int count); - -// -// Returns the location ID of the named uniform. -// Returns -1 if error. -// -GLSLANG_EXPORT int ShGetUniformLocation(const ShHandle uniformMap, const char* name); - -#ifdef __cplusplus - } // end extern "C" -#endif - -//////////////////////////////////////////////////////////////////////////////////////////// -// -// Deferred-Lowering C++ Interface -// ----------------------------------- -// -// 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 -// the intermediate results, including the parse tree, are preserved until link time, -// rather than the above interface which is designed to have each compilation unit -// lowered at compile time. In the above model, linking occurs on the lowered results, -// whereas in this model intra-stage linking can occur at the parse tree -// (treeRoot in TIntermediate) level, and then a full stage can be lowered. -// - -#include -#include -#include - -class TCompiler; -class TInfoSink; - -namespace glslang { - -struct Version { - int major; - int minor; - int patch; - const char* flavor; -}; - -GLSLANG_EXPORT Version GetVersion(); -GLSLANG_EXPORT const char* GetEsslVersionString(); -GLSLANG_EXPORT const char* GetGlslVersionString(); -GLSLANG_EXPORT int GetKhronosToolId(); - -class TIntermediate; -class TProgram; -class TPoolAllocator; - -// Call this exactly once per process before using anything else -GLSLANG_EXPORT bool InitializeProcess(); - -// Call once per process to tear down everything -GLSLANG_EXPORT void FinalizeProcess(); - -// Resource type for IO resolver -enum TResourceType { - EResSampler, - EResTexture, - EResImage, - EResUbo, - EResSsbo, - EResUav, - EResCount -}; - -enum TBlockStorageClass -{ - EbsUniform = 0, - EbsStorageBuffer, - EbsPushConstant, - EbsNone, // not a uniform or buffer variable - EbsCount, -}; - -// 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 -// - optionally call addProcesses() for each setting/transform, -// see comment for class TProcesses -// - 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. -// -// N.B.: Destruct a linked program *before* destructing the shaders linked into it. -// -class TShader { -public: - GLSLANG_EXPORT explicit TShader(EShLanguage); - GLSLANG_EXPORT virtual ~TShader(); - GLSLANG_EXPORT void setStrings(const char* const* s, int n); - GLSLANG_EXPORT void setStringsWithLengths( - const char* const* s, const int* l, int n); - GLSLANG_EXPORT void setStringsWithLengthsAndNames( - const char* const* s, const int* l, const char* const* names, int n); - void setPreamble(const char* s) { preamble = s; } - GLSLANG_EXPORT void setEntryPoint(const char* entryPoint); - GLSLANG_EXPORT void setSourceEntryPoint(const char* sourceEntryPointName); - GLSLANG_EXPORT void addProcesses(const std::vector&); - GLSLANG_EXPORT void setUniqueId(unsigned long long id); - GLSLANG_EXPORT void setOverrideVersion(int version); - - // IO resolver binding data: see comments in ShaderLang.cpp - GLSLANG_EXPORT void setShiftBinding(TResourceType res, unsigned int base); - GLSLANG_EXPORT void setShiftSamplerBinding(unsigned int base); // DEPRECATED: use setShiftBinding - GLSLANG_EXPORT void setShiftTextureBinding(unsigned int base); // DEPRECATED: use setShiftBinding - GLSLANG_EXPORT void setShiftImageBinding(unsigned int base); // DEPRECATED: use setShiftBinding - GLSLANG_EXPORT void setShiftUboBinding(unsigned int base); // DEPRECATED: use setShiftBinding - GLSLANG_EXPORT void setShiftUavBinding(unsigned int base); // DEPRECATED: use setShiftBinding - GLSLANG_EXPORT void setShiftCbufferBinding(unsigned int base); // synonym for setShiftUboBinding - GLSLANG_EXPORT void setShiftSsboBinding(unsigned int base); // DEPRECATED: use setShiftBinding - GLSLANG_EXPORT void setShiftBindingForSet(TResourceType res, unsigned int base, unsigned int set); - GLSLANG_EXPORT void setResourceSetBinding(const std::vector& base); - GLSLANG_EXPORT void setAutoMapBindings(bool map); - GLSLANG_EXPORT void setAutoMapLocations(bool map); - GLSLANG_EXPORT void addUniformLocationOverride(const char* name, int loc); - GLSLANG_EXPORT void setUniformLocationBase(int base); - GLSLANG_EXPORT void setInvertY(bool invert); - GLSLANG_EXPORT void setDxPositionW(bool dxPosW); - GLSLANG_EXPORT void setEnhancedMsgs(); -#ifdef ENABLE_HLSL - GLSLANG_EXPORT void setHlslIoMapping(bool hlslIoMap); - GLSLANG_EXPORT void setFlattenUniformArrays(bool flatten); -#endif - GLSLANG_EXPORT void setNoStorageFormat(bool useUnknownFormat); - GLSLANG_EXPORT void setNanMinMaxClamp(bool nanMinMaxClamp); - GLSLANG_EXPORT void setTextureSamplerTransformMode(EShTextureSamplerTransformMode mode); - GLSLANG_EXPORT void addBlockStorageOverride(const char* nameStr, glslang::TBlockStorageClass backing); - - GLSLANG_EXPORT void setGlobalUniformBlockName(const char* name); - GLSLANG_EXPORT void setAtomicCounterBlockName(const char* name); - GLSLANG_EXPORT void setGlobalUniformSet(unsigned int set); - GLSLANG_EXPORT void setGlobalUniformBinding(unsigned int binding); - GLSLANG_EXPORT void setAtomicCounterBlockSet(unsigned int set); - GLSLANG_EXPORT void setAtomicCounterBlockBinding(unsigned int binding); - - // 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. - // - // setEnvInput: The input source language and stage. If generating code for a - // specific client, the input client semantics to use and the - // version of that client's input semantics to use, otherwise - // use EShClientNone and version of 0, e.g. for validation mode. - // Note 'version' does not describe the target environment, - // just the version of the source dialect to compile under. - // For example, to choose the Vulkan dialect of GLSL defined by - // version 100 of the KHR_vulkan_glsl extension: lang = EShSourceGlsl, - // dialect = EShClientVulkan, and version = 100. - // - // See the definitions of TEnvironment, EShSource, EShLanguage, - // and EShClient for choices and more detail. - // - // setEnvClient: The client that will be hosting the execution, and it's version. - // Note 'version' is not the version of the languages involved, but - // the version of the client environment. - // Use EShClientNone and version of 0 if there is no client, e.g. - // for validation mode. - // - // See EShTargetClientVersion for choices. - // - // setEnvTarget: The language to translate to when generating code, and that - // language's version. - // Use EShTargetNone and version of 0 if there is no client, e.g. - // for validation mode. - // - 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 getStrings(const char* const* &s, int& n) { s = strings; n = numStrings; } - -#ifdef ENABLE_HLSL - void setEnvTargetHlslFunctionality1() { environment.target.hlslFunctionality1 = true; } - bool getEnvTargetHlslFunctionality1() const { return environment.target.hlslFunctionality1; } -#else - bool getEnvTargetHlslFunctionality1() const { return false; } -#endif - - void setEnvInputVulkanRulesRelaxed() { environment.input.vulkanRulesRelaxed = true; } - bool getEnvInputVulkanRulesRelaxed() const { return environment.input.vulkanRulesRelaxed; } - - // Interface to #include handlers. - // - // To support #include, a client of Glslang does the following: - // 1. Call setStringsWithNames to set the source strings and associated - // names. For example, the names could be the names of the files - // containing the shader sources. - // 2. Call parse with an Includer. - // - // When the Glslang parser encounters an #include directive, it calls - // the Includer's include method with the requested include name - // together with the current string name. The returned IncludeResult - // contains the fully resolved name of the included source, together - // with the source text that should replace the #include directive - // in the source stream. After parsing that source, Glslang will - // release the IncludeResult object. - class Includer { - public: - // 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) { } - // 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; - // 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 - // field points to a string containing error details. - const char* const headerData; - const size_t headerLength; - // Include resolver's context. - void* userData; - protected: - IncludeResult& operator=(const IncludeResult&); - IncludeResult(); - }; - - // 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 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. - // - // 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*) = 0; - virtual ~Includer() {} - }; - - // Fail all Includer searches - class ForbidIncluder : public Includer { - public: - virtual void releaseInclude(IncludeResult*) override { } - }; - - GLSLANG_EXPORT 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. - 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); - } - - // NOTE: Doing just preprocessing to obtain a correct preprocessed shader string - // is not an officially supported or fully working path. - GLSLANG_EXPORT bool preprocess( - const TBuiltInResource* builtInResources, int defaultVersion, - EProfile defaultProfile, bool forceDefaultVersionAndProfile, - bool forwardCompatible, EShMessages message, std::string* outputString, - Includer& includer); - - GLSLANG_EXPORT const char* getInfoLog(); - GLSLANG_EXPORT const char* getInfoDebugLog(); - EShLanguage getStage() const { return stage; } - TIntermediate* getIntermediate() const { return intermediate; } - -protected: - TPoolAllocator* pool; - EShLanguage stage; - TCompiler* compiler; - TIntermediate* intermediate; - TInfoSink* infoSink; - // strings and lengths follow the standard for glShaderSource: - // strings is an array of numStrings pointers to string data. - // lengths can be null, but if not it is an array of numStrings - // integers containing the length of the associated strings. - // if lengths is null or lengths[n] < 0 the associated strings[n] is - // assumed to be null-terminated. - // stringNames is the optional names for all the strings. If stringNames - // is null, then none of the strings has name. If a certain element in - // stringNames is null, then the corresponding string does not have name. - const char* const* strings; // explicit code to compile, see previous comment - const int* lengths; - const char* const* stringNames; - int numStrings; // size of the above arrays - const char* preamble; // string of implicit code to compile before the explicitly provided code - - // a function in the source string can be renamed FROM this TO the name given in setEntryPoint. - std::string sourceEntryPointName; - - // overrides #version in shader source or default version if #version isn't present - int overrideVersion; - - TEnvironment environment; - - friend class TProgram; - -private: - TShader& operator=(TShader&); -}; - -#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) - -// -// A reflection database and its interface, consistent with the OpenGL API reflection queries. -// - -// Data needed for just a single object at the granularity exchanged by the reflection API -class TObjectReflection { -public: - GLSLANG_EXPORT TObjectReflection(const std::string& pName, const TType& pType, int pOffset, int pGLDefineType, int pSize, int pIndex); - - const TType* getType() const { return type; } - GLSLANG_EXPORT int getBinding() const; - GLSLANG_EXPORT void dump() const; - static TObjectReflection badReflection() { return TObjectReflection(); } - - std::string 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; - int numMembers; - int arrayStride; // stride of an array variable - int topLevelArraySize; // size of the top-level variable in a storage buffer member - int topLevelArrayStride; // stride of the top-level variable in a storage buffer member - EShLanguageMask stages; - -protected: - TObjectReflection() - : offset(-1), glDefineType(-1), size(-1), index(-1), counterIndex(-1), numMembers(-1), arrayStride(0), - topLevelArrayStride(0), stages(EShLanguageMask(0)), type(nullptr) - { - } - - const TType* type; -}; - -class TReflection; -class TIoMapper; -struct TVarEntryInfo; - -// 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. -// -// 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. -// -// NOTE: that still limit checks are applied to bindings and sets -// and may result in an error. -class TIoMapResolver -{ -public: - virtual ~TIoMapResolver() {} - - // Should return true if the resulting/current binding would be okay. - // Basic idea is to do aliasing binding checks with this. - virtual bool validateBinding(EShLanguage stage, TVarEntryInfo& ent) = 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, TVarEntryInfo& ent) = 0; - // 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, TVarEntryInfo& ent) = 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, TVarEntryInfo& ent) = 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, TVarEntryInfo& ent) = 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, TVarEntryInfo& ent) = 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, TVarEntryInfo& ent) = 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, TVarEntryInfo& ent) = 0; - // Notification of a uniform variable - virtual void notifyBinding(EShLanguage stage, TVarEntryInfo& ent) = 0; - // Notification of a in or out variable - virtual void notifyInOut(EShLanguage stage, TVarEntryInfo& ent) = 0; - // Called by mapIO when it starts its notify pass for the given stage - virtual void beginNotifications(EShLanguage stage) = 0; - // Called by mapIO when it has finished the notify pass - virtual void endNotifications(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; - // Called by mapIO when it starts its symbol collect for teh given stage - virtual void beginCollect(EShLanguage stage) = 0; - // Called by mapIO when it has finished the symbol collect - virtual void endCollect(EShLanguage stage) = 0; - // Called by TSlotCollector to resolve storage locations or bindings - virtual void reserverStorageSlot(TVarEntryInfo& ent, TInfoSink& infoSink) = 0; - // Called by TSlotCollector to resolve resource locations or bindings - virtual void reserverResourceSlot(TVarEntryInfo& ent, TInfoSink& infoSink) = 0; - // Called by mapIO.addStage to set shader stage mask to mark a stage be added to this pipeline - virtual void addStage(EShLanguage stage, TIntermediate& stageIntermediate) = 0; -}; - -#endif // !GLSLANG_WEB && !GLSLANG_ANGLE - -// Make one TProgram per set of shaders that will get linked together. Add all -// the shaders that are to be linked together. After calling shader.parse() -// for all shaders, call link(). -// -// N.B.: Destruct a linked program *before* destructing the shaders linked into it. -// -class TProgram { -public: - GLSLANG_EXPORT TProgram(); - GLSLANG_EXPORT virtual ~TProgram(); - void addShader(TShader* shader) { stages[shader->stage].push_back(shader); } - std::list& getShaders(EShLanguage stage) { return stages[stage]; } - // Link Validation interface - GLSLANG_EXPORT bool link(EShMessages); - GLSLANG_EXPORT const char* getInfoLog(); - GLSLANG_EXPORT const char* getInfoDebugLog(); - - TIntermediate* getIntermediate(EShLanguage stage) const { return intermediate[stage]; } - -#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) - - // Reflection Interface - - // call first, to do liveness analysis, index mapping, etc.; returns false on failure - GLSLANG_EXPORT bool buildReflection(int opts = EShReflectionDefault); - GLSLANG_EXPORT unsigned getLocalSize(int dim) const; // return dim'th local size - GLSLANG_EXPORT int getReflectionIndex(const char *name) const; - GLSLANG_EXPORT int getReflectionPipeIOIndex(const char* name, const bool inOrOut) const; - GLSLANG_EXPORT int getNumUniformVariables() const; - GLSLANG_EXPORT const TObjectReflection& getUniform(int index) const; - GLSLANG_EXPORT int getNumUniformBlocks() const; - GLSLANG_EXPORT const TObjectReflection& getUniformBlock(int index) const; - GLSLANG_EXPORT int getNumPipeInputs() const; - GLSLANG_EXPORT const TObjectReflection& getPipeInput(int index) const; - GLSLANG_EXPORT int getNumPipeOutputs() const; - GLSLANG_EXPORT const TObjectReflection& getPipeOutput(int index) const; - GLSLANG_EXPORT int getNumBufferVariables() const; - GLSLANG_EXPORT const TObjectReflection& getBufferVariable(int index) const; - GLSLANG_EXPORT int getNumBufferBlocks() const; - GLSLANG_EXPORT const TObjectReflection& getBufferBlock(int index) const; - GLSLANG_EXPORT int getNumAtomicCounters() const; - GLSLANG_EXPORT const TObjectReflection& getAtomicCounter(int index) const; - - // Legacy Reflection Interface - expressed in terms of above interface - - // can be used for glGetProgramiv(GL_ACTIVE_UNIFORMS) - int getNumLiveUniformVariables() const { return getNumUniformVariables(); } - - // can be used for glGetProgramiv(GL_ACTIVE_UNIFORM_BLOCKS) - int getNumLiveUniformBlocks() const { return getNumUniformBlocks(); } - - // can be used for glGetProgramiv(GL_ACTIVE_ATTRIBUTES) - int getNumLiveAttributes() const { return getNumPipeInputs(); } - - // can be used for glGetUniformIndices() - int getUniformIndex(const char *name) const { return getReflectionIndex(name); } - - int getPipeIOIndex(const char *name, const bool inOrOut) const - { return getReflectionPipeIOIndex(name, inOrOut); } - - // can be used for "name" part of glGetActiveUniform() - const char *getUniformName(int index) const { return getUniform(index).name.c_str(); } - - // returns the binding number - int getUniformBinding(int index) const { return getUniform(index).getBinding(); } - - // returns Shaders Stages where a Uniform is present - EShLanguageMask getUniformStages(int index) const { return getUniform(index).stages; } - - // can be used for glGetActiveUniformsiv(GL_UNIFORM_BLOCK_INDEX) - int getUniformBlockIndex(int index) const { return getUniform(index).index; } - - // can be used for glGetActiveUniformsiv(GL_UNIFORM_TYPE) - int getUniformType(int index) const { return getUniform(index).glDefineType; } - - // can be used for glGetActiveUniformsiv(GL_UNIFORM_OFFSET) - int getUniformBufferOffset(int index) const { return getUniform(index).offset; } - - // can be used for glGetActiveUniformsiv(GL_UNIFORM_SIZE) - int getUniformArraySize(int index) const { return getUniform(index).size; } - - // returns a TType* - const TType *getUniformTType(int index) const { return getUniform(index).getType(); } - - // can be used for glGetActiveUniformBlockName() - const char *getUniformBlockName(int index) const { return getUniformBlock(index).name.c_str(); } - - // can be used for glGetActiveUniformBlockiv(UNIFORM_BLOCK_DATA_SIZE) - int getUniformBlockSize(int index) const { return getUniformBlock(index).size; } - - // returns the block binding number - int getUniformBlockBinding(int index) const { return getUniformBlock(index).getBinding(); } - - // returns block index of associated counter. - int getUniformBlockCounterIndex(int index) const { return getUniformBlock(index).counterIndex; } - - // returns a TType* - const TType *getUniformBlockTType(int index) const { return getUniformBlock(index).getType(); } - - // can be used for glGetActiveAttrib() - const char *getAttributeName(int index) const { return getPipeInput(index).name.c_str(); } - - // can be used for glGetActiveAttrib() - int getAttributeType(int index) const { return getPipeInput(index).glDefineType; } - - // returns a TType* - const TType *getAttributeTType(int index) const { return getPipeInput(index).getType(); } - - GLSLANG_EXPORT void dumpReflection(); - // I/O mapping: apply base offsets and map live unbound variables - // If resolver is not provided it uses the previous approach - // and respects auto assignment and offsets. - GLSLANG_EXPORT bool mapIO(TIoMapResolver* pResolver = nullptr, TIoMapper* pIoMapper = nullptr); -#endif // !GLSLANG_WEB && !GLSLANG_ANGLE - -protected: - GLSLANG_EXPORT bool linkStage(EShLanguage, EShMessages); - GLSLANG_EXPORT bool crossStageCheck(EShMessages); - - TPoolAllocator* pool; - std::list stages[EShLangCount]; - TIntermediate* intermediate[EShLangCount]; - bool newedIntermediate[EShLangCount]; // track which intermediate were "new" versus reusing a singleton unit in a stage - TInfoSink* infoSink; -#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) - TReflection* reflection; -#endif - bool linked; - -private: - TProgram(TProgram&); - TProgram& operator=(TProgram&); -}; - -} // end namespace glslang - -#endif // _COMPILER_INTERFACE_INCLUDED_ diff --git a/deps/glslang/glslang/updateGrammar b/deps/glslang/glslang/updateGrammar deleted file mode 100644 index 9209493f..00000000 --- a/deps/glslang/glslang/updateGrammar +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/bash - -# Copyright (C) 2020 The Khronos Group 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 The Khronos Group 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. - -if [ "$1" = 'web' ] -then - m4 -P -DGLSLANG_WEB MachineIndependent/glslang.m4 > MachineIndependent/glslang.y -elif [ "$#" -eq 0 ] -then - m4 -P MachineIndependent/glslang.m4 > MachineIndependent/glslang.y -else - echo usage: - echo $0 web - echo $0 - exit -fi - -bison --defines=MachineIndependent/glslang_tab.cpp.h -t MachineIndependent/glslang.y -o MachineIndependent/glslang_tab.cpp diff --git a/deps/glslang/gtests/AST.FromFile.cpp b/deps/glslang/gtests/AST.FromFile.cpp deleted file mode 100644 index 1d975464..00000000 --- a/deps/glslang/gtests/AST.FromFile.cpp +++ /dev/null @@ -1,314 +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 - -#include "TestFixture.h" - -namespace glslangtest { -namespace { - -using CompileToAstTest = GlslangTest<::testing::TestWithParam>; - -using CompileToAstTestNV = GlslangTest<::testing::TestWithParam>; - -TEST_P(CompileToAstTest, FromFile) -{ - loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), - Source::GLSL, Semantics::OpenGL, glslang::EShTargetVulkan_1_0, glslang::EShTargetSpv_1_0, - Target::AST); -} - -// 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, glslang::EShTargetSpv_1_0, - Target::AST); -} - -// clang-format off -INSTANTIATE_TEST_SUITE_P( - Glsl, CompileToAstTest, - ::testing::ValuesIn(std::vector({ - "sample.frag", - "sample.vert", - "decls.frag", - "specExamples.frag", - "specExamples.vert", - "versionsClean.frag", - "versionsClean.vert", - "versionsErrors.frag", - "versionsErrors.vert", - "100.frag", - "100samplerExternal.frag", - "120.vert", - "120.frag", - "130.vert", - "130.frag", - "140.vert", - "140.frag", - "150.vert", - "150.geom", - "150.frag", - "precision.frag", - "precision.vert", - "nonSquare.vert", - "matrixError.vert", - "cppSimple.vert", - "cppIndent.vert", - "cppIntMinOverNegativeOne.frag", - "cppMerge.frag", - "cppNest.vert", - "cppBad.vert", - "cppBad2.vert", - "cppBad3.vert", - "cppBad4.vert", - "cppBad5.vert", - "cppComplexExpr.vert", - "cppDeepNest.frag", - "cppPassMacroName.frag", - "cppRelaxSkipTokensErrors.vert", - "badChars.frag", - "pointCoord.frag", - "array.frag", - "array100.frag", - "comment.frag", - "300.vert", - "300.frag", - "300BuiltIns.frag", - "300layout.vert", - "300layout.frag", - "300operations.frag", - "300block.frag", - "300samplerExternal.frag", - "300samplerExternalYUV.frag", - "310.comp", - "310.vert", - "310.geom", - "310.frag", - "310.tesc", - "310.tese", - "310implicitSizeArrayError.vert", - "310.inheritMemory.frag", - "310AofA.vert", - "310runtimeArray.vert", - "320.comp", - "320.vert", - "320.geom", - "320.frag", - "320.tesc", - "320.tese", - "330.frag", - "330comp.frag", - "constErrors.frag", - "constFold.frag", - "constFoldIntMin.frag", - "errors.frag", - "forwardRef.frag", - "uint.frag", - "switch.frag", - "tokenLength.vert", - "100Limits.vert", - "100scope.vert", - "110scope.vert", - "300scope.vert", - "400.frag", - "400.vert", - "410.vert", - "420.comp", - "420.frag", - "420.vert", - "420.geom", - "420_size_gl_in.geom", - "430scope.vert", - "lineContinuation100.vert", - "lineContinuation.vert", - "numeral.frag", - "400.geom", - "400.tesc", - "400.tese", - "410.tesc", - "420.tesc", - "420.tese", - "410.geom", - "430.vert", - "430.comp", - "430AofA.frag", - "435.vert", - "440.vert", - "440.frag", - "450.vert", - "450.geom", - "450.tesc", - "450.tese", - "450.frag", - "450.comp", - "460.frag", - "460.vert", - "dce.frag", - "atomic_uint.frag", - "implicitInnerAtomicUint.frag", - "aggOps.frag", - "always-discard.frag", - "always-discard2.frag", - "conditionalDiscard.frag", - "conversion.frag", - "dataOut.frag", - "dataOutIndirect.frag", - "deepRvalue.frag", - "depthOut.frag", - "discard-dce.frag", - "doWhileLoop.frag", - "earlyReturnDiscard.frag", - "flowControl.frag", - "forLoop.frag", - "functionCall.frag", - "functionSemantics.frag", - "length.frag", - "localAggregates.frag", - "loops.frag", - "loopsArtificial.frag", - "matrix.frag", - "matrix2.frag", - "mixedArrayDecls.frag", - "nonuniform.frag", - "newTexture.frag", - "Operations.frag", - "overlongLiteral.frag", - "prepost.frag", - "runtimeArray.vert", - "simpleFunctionCall.frag", - "stringToDouble.vert", - "structAssignment.frag", - "structDeref.frag", - "structure.frag", - "swizzle.frag", - "invalidSwizzle.vert", - "syntaxError.frag", - "test.frag", - "texture.frag", - "tokenPaste.vert", - "types.frag", - "uniformArray.frag", - "variableArrayIndex.frag", - "varyingArray.frag", - "varyingArrayIndirect.frag", - "voidFunction.frag", - "whileLoop.frag", - "nonVulkan.frag", - "negativeArraySize.comp", - "precise.tesc", - "precise_struct_block.vert", - "maxClipDistances.vert", - "findFunction.frag", - "noMatchingFunction.frag", - "constantUnaryConversion.comp", - "xfbUnsizedArray.error.vert", - "xfbUnsizedArray.error.tese", - "glsl.140.layoutOffset.error.vert", - "glsl.430.layoutOffset.error.vert", - "glsl.450.subgroup.frag", - "glsl.450.subgroup.geom", - "glsl.450.subgroup.tesc", - "glsl.450.subgroup.tese", - "glsl.450.subgroup.vert", - "glsl.450.subgroupArithmetic.comp", - "glsl.450.subgroupBasic.comp", - "glsl.450.subgroupBallot.comp", - "glsl.450.subgroupBallotNeg.comp", - "glsl.450.subgroupClustered.comp", - "glsl.450.subgroupClusteredNeg.comp", - "glsl.450.subgroupPartitioned.comp", - "glsl.450.subgroupShuffle.comp", - "glsl.450.subgroupShuffleRelative.comp", - "glsl.450.subgroupQuad.comp", - "glsl.450.subgroupVote.comp", - "glsl.460.subgroup.mesh", - "glsl.460.subgroup.task", - "glsl.460.subgroup.rahit", - "glsl.460.subgroup.rcall", - "glsl.460.subgroup.rchit", - "glsl.460.subgroup.rgen", - "glsl.460.subgroup.rint", - "glsl.460.subgroup.rmiss", - "glsl.es300.layoutOffset.error.vert", - "glsl.es320.subgroup.frag", - "glsl.es320.subgroup.geom", - "glsl.es320.subgroup.tesc", - "glsl.es320.subgroup.tese", - "glsl.es320.subgroup.vert", - "glsl.es320.subgroupArithmetic.comp", - "glsl.es320.subgroupBasic.comp", - "glsl.es320.subgroupBallot.comp", - "glsl.es320.subgroupBallotNeg.comp", - "glsl.es320.subgroupClustered.comp", - "glsl.es320.subgroupClusteredNeg.comp", - "glsl.es320.subgroupPartitioned.comp", - "glsl.es320.subgroupShuffle.comp", - "glsl.es320.subgroupShuffleRelative.comp", - "glsl.es320.subgroupQuad.comp", - "glsl.es320.subgroupVote.comp", - "terminate.frag", - "terminate.vert", - "negativeWorkGroupSize.comp", - "textureoffset_sampler2darrayshadow.vert", - "atomicAdd.comp", - "GL_ARB_gpu_shader5.u2i.vert", - "textureQueryLOD.frag", - "atomicCounterARBOps.vert", - "GL_EXT_shader_integer_mix.vert", - "GL_ARB_draw_instanced.vert", - "GL_ARB_fragment_coord_conventions.vert", - "BestMatchFunction.vert", - "EndStreamPrimitive.geom", - "floatBitsToInt.vert", - "coord_conventions.frag", - "gl_FragCoord.frag" - })), - FileNameAsCustomTestSuffix -); - -INSTANTIATE_TEST_SUITE_P( - Glsl, CompileToAstTestNV, - ::testing::ValuesIn(std::vector({ - "nvShaderNoperspectiveInterpolation.frag", - })), - FileNameAsCustomTestSuffix -); - -// clang-format on - -} // anonymous namespace -} // namespace glslangtest diff --git a/deps/glslang/gtests/BuiltInResource.FromFile.cpp b/deps/glslang/gtests/BuiltInResource.FromFile.cpp deleted file mode 100644 index da81fe98..00000000 --- a/deps/glslang/gtests/BuiltInResource.FromFile.cpp +++ /dev/null @@ -1,57 +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 - -#include - -#include "StandAlone/ResourceLimits.h" -#include "TestFixture.h" - -namespace glslangtest { -namespace { - -using DefaultResourceTest = GlslangTest<::testing::Test>; - -TEST_F(DefaultResourceTest, FromFile) -{ - const std::string path = GlobalTestSettings.testRoot + "/baseResults/test.conf"; - std::string expectedConfig; - tryLoadFile(path, "expected resource limit", &expectedConfig); - const std::string realConfig = glslang::GetDefaultTBuiltInResourceString(); - ASSERT_EQ(expectedConfig, realConfig); -} - -} // anonymous namespace -} // namespace glslangtest diff --git a/deps/glslang/gtests/CMakeLists.txt b/deps/glslang/gtests/CMakeLists.txt deleted file mode 100644 index c8f02828..00000000 --- a/deps/glslang/gtests/CMakeLists.txt +++ /dev/null @@ -1,111 +0,0 @@ -# Copyright (C) 2020 The Khronos Group 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 The Khronos Group 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. - -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}/Common.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 - ${CMAKE_CURRENT_SOURCE_DIR}/VkRelaxed.FromFile.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/GlslMapIO.FromFile.cpp) - - if(ENABLE_SPVREMAPPER) - set(TEST_SOURCES ${TEST_SOURCES} - ${CMAKE_CURRENT_SOURCE_DIR}/Remap.FromFile.cpp) - endif() - - - add_executable(glslangtests ${TEST_SOURCES}) - glslang_pch(glslangtests ${CMAKE_CURRENT_SOURCE_DIR}/pch.h) - set_property(TARGET glslangtests PROPERTY FOLDER tests) - glslang_set_link_args(glslangtests) - if(ENABLE_GLSLANG_INSTALL) - install(TARGETS glslangtests EXPORT glslangtestsTargets - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) - install(EXPORT glslangtestsTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) - endif() - - 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) - - if(ENABLE_OPT) - target_include_directories(glslangtests - PRIVATE ${spirv-tools_SOURCE_DIR}/include - ) - endif() - - set(LIBRARIES - glslang OSDependent OGLCompiler glslang - SPIRV glslang-default-resource-limits) - - if(ENABLE_SPVREMAPPER) - set(LIBRARIES ${LIBRARIES} SPVRemapper) - endif() - - if(ENABLE_HLSL) - set(LIBRARIES ${LIBRARIES} HLSL) - endif() - 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/gtests/Common.cpp b/deps/glslang/gtests/Common.cpp deleted file mode 100644 index 0b70a83e..00000000 --- a/deps/glslang/gtests/Common.cpp +++ /dev/null @@ -1,165 +0,0 @@ -// Copyright (c) 2021 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include - -#include -#include "glslang/Include/Common.h" - -namespace { - -TEST(IsPow2, Int_Negative) { - EXPECT_EQ(false, glslang::IsPow2(-5)); - EXPECT_EQ(false, glslang::IsPow2(-1)); - EXPECT_EQ(false, glslang::IsPow2(INT_MIN)); - EXPECT_EQ(false, glslang::IsPow2(int64_t(-10))); -} - -TEST(IsPow2, Zero) { - EXPECT_EQ(false, glslang::IsPow2(0)); - EXPECT_EQ(false, glslang::IsPow2(0u)); - EXPECT_EQ(false, glslang::IsPow2(0)); - EXPECT_EQ(false, glslang::IsPow2(uint64_t(0))); - EXPECT_EQ(false, glslang::IsPow2(int64_t(0))); -} - -TEST(IsPow2, Int_Positive_PowersOf2) { - EXPECT_EQ(true, glslang::IsPow2(1)); - EXPECT_EQ(true, glslang::IsPow2(2)); - EXPECT_EQ(true, glslang::IsPow2(4)); - EXPECT_EQ(true, glslang::IsPow2(8)); - EXPECT_EQ(true, glslang::IsPow2(16)); - EXPECT_EQ(true, glslang::IsPow2(32768)); - EXPECT_EQ(true, glslang::IsPow2(65536)); - EXPECT_EQ(true, glslang::IsPow2(2147483648)); -} - -TEST(IsPow2, Int_Positive_NonPowersOf2) { - EXPECT_EQ(false, glslang::IsPow2(3)); - EXPECT_EQ(false, glslang::IsPow2(5)); - EXPECT_EQ(false, glslang::IsPow2(2147483647)); -} - -TEST(IsPow2, Uint_Positive_PowersOf2) { - EXPECT_EQ(true, glslang::IsPow2(1u)); - EXPECT_EQ(true, glslang::IsPow2(2u)); - EXPECT_EQ(true, glslang::IsPow2(4u)); - EXPECT_EQ(true, glslang::IsPow2(8u)); - EXPECT_EQ(true, glslang::IsPow2(16u)); - EXPECT_EQ(true, glslang::IsPow2(32768u)); - EXPECT_EQ(true, glslang::IsPow2(65536u)); - EXPECT_EQ(true, glslang::IsPow2(2147483648u)); -} - -TEST(IsPow2, Uint_Positive_NonPowersOf2) { - EXPECT_EQ(false, glslang::IsPow2(3u)); - EXPECT_EQ(false, glslang::IsPow2(5u)); - EXPECT_EQ(false, glslang::IsPow2(2147483647u)); -} - -TEST(IntLog2, Int) { - EXPECT_EQ(0, glslang::IntLog2(1)); - EXPECT_EQ(1, glslang::IntLog2(2)); - EXPECT_EQ(2, glslang::IntLog2(4)); - EXPECT_EQ(3, glslang::IntLog2(8)); - EXPECT_EQ(4, glslang::IntLog2(16)); - EXPECT_EQ(5, glslang::IntLog2(32)); - EXPECT_EQ(6, glslang::IntLog2(64)); - EXPECT_EQ(7, glslang::IntLog2(128)); - EXPECT_EQ(8, glslang::IntLog2(256)); - EXPECT_EQ(9, glslang::IntLog2(512)); - EXPECT_EQ(10, glslang::IntLog2(1024)); - EXPECT_EQ(11, glslang::IntLog2(2048)); - EXPECT_EQ(12, glslang::IntLog2(0x1000)); - EXPECT_EQ(13, glslang::IntLog2(0x2000)); - EXPECT_EQ(14, glslang::IntLog2(0x4000)); - EXPECT_EQ(15, glslang::IntLog2(0x8000)); - EXPECT_EQ(16, glslang::IntLog2(0x10000)); - EXPECT_EQ(17, glslang::IntLog2(0x20000)); - EXPECT_EQ(18, glslang::IntLog2(0x40000)); - EXPECT_EQ(19, glslang::IntLog2(0x80000)); - EXPECT_EQ(20, glslang::IntLog2(0x100000)); - EXPECT_EQ(21, glslang::IntLog2(0x200000)); - EXPECT_EQ(22, glslang::IntLog2(0x400000)); - EXPECT_EQ(23, glslang::IntLog2(0x800000)); - EXPECT_EQ(24, glslang::IntLog2(0x1000000)); - EXPECT_EQ(25, glslang::IntLog2(0x2000000)); - EXPECT_EQ(26, glslang::IntLog2(0x4000000)); - EXPECT_EQ(27, glslang::IntLog2(0x8000000)); - EXPECT_EQ(28, glslang::IntLog2(0x10000000)); - EXPECT_EQ(29, glslang::IntLog2(0x20000000)); - EXPECT_EQ(30, glslang::IntLog2(0x40000000)); -} - -TEST(IntLog2, Uint) { - EXPECT_EQ(0, glslang::IntLog2(1u)); - EXPECT_EQ(1, glslang::IntLog2(2u)); - EXPECT_EQ(2, glslang::IntLog2(4u)); - EXPECT_EQ(3, glslang::IntLog2(8u)); - EXPECT_EQ(4, glslang::IntLog2(16u)); - EXPECT_EQ(5, glslang::IntLog2(32u)); - EXPECT_EQ(6, glslang::IntLog2(64u)); - EXPECT_EQ(7, glslang::IntLog2(128u)); - EXPECT_EQ(8, glslang::IntLog2(256u)); - EXPECT_EQ(9, glslang::IntLog2(512u)); - EXPECT_EQ(10, glslang::IntLog2(1024u)); - EXPECT_EQ(11, glslang::IntLog2(2048u)); - EXPECT_EQ(12, glslang::IntLog2(0x1000u)); - EXPECT_EQ(13, glslang::IntLog2(0x2000u)); - EXPECT_EQ(14, glslang::IntLog2(0x4000u)); - EXPECT_EQ(15, glslang::IntLog2(0x8000u)); - EXPECT_EQ(16, glslang::IntLog2(0x10000u)); - EXPECT_EQ(17, glslang::IntLog2(0x20000u)); - EXPECT_EQ(18, glslang::IntLog2(0x40000u)); - EXPECT_EQ(19, glslang::IntLog2(0x80000u)); - EXPECT_EQ(20, glslang::IntLog2(0x100000u)); - EXPECT_EQ(21, glslang::IntLog2(0x200000u)); - EXPECT_EQ(22, glslang::IntLog2(0x400000u)); - EXPECT_EQ(23, glslang::IntLog2(0x800000u)); - EXPECT_EQ(24, glslang::IntLog2(0x1000000u)); - EXPECT_EQ(25, glslang::IntLog2(0x2000000u)); - EXPECT_EQ(26, glslang::IntLog2(0x4000000u)); - EXPECT_EQ(27, glslang::IntLog2(0x8000000u)); - EXPECT_EQ(28, glslang::IntLog2(0x10000000u)); - EXPECT_EQ(29, glslang::IntLog2(0x20000000u)); - EXPECT_EQ(30, glslang::IntLog2(0x40000000u)); - EXPECT_EQ(31, glslang::IntLog2(0x80000000u)); -} - -TEST(IntLog2, Int64) { - EXPECT_EQ(0, glslang::IntLog2(int64_t(1))); - EXPECT_EQ(1, glslang::IntLog2(int64_t(2))); - EXPECT_EQ(2, glslang::IntLog2(int64_t(4))); - EXPECT_EQ(3, glslang::IntLog2(int64_t(8))); - EXPECT_EQ(30, glslang::IntLog2(int64_t(0x40000000u))); - EXPECT_EQ(31, glslang::IntLog2(int64_t(0x80000000u))); - EXPECT_EQ(32, glslang::IntLog2(int64_t(0x10000) * int64_t(0x10000))); - EXPECT_EQ(48, glslang::IntLog2(int64_t(0x10000) * int64_t(0x10000) * int64_t(0x10000))); - EXPECT_EQ(62, glslang::IntLog2(int64_t(0x10000) * int64_t(0x10000) * int64_t(0x10000) * int64_t(0x4000))); -} - -TEST(IntLog2, Uint64) { - EXPECT_EQ(0, glslang::IntLog2(uint64_t(1))); - EXPECT_EQ(1, glslang::IntLog2(uint64_t(2))); - EXPECT_EQ(2, glslang::IntLog2(uint64_t(4))); - EXPECT_EQ(3, glslang::IntLog2(uint64_t(8))); - EXPECT_EQ(30, glslang::IntLog2(uint64_t(0x40000000u))); - EXPECT_EQ(31, glslang::IntLog2(uint64_t(0x80000000u))); - EXPECT_EQ(32, glslang::IntLog2(uint64_t(0x10000) * uint64_t(0x10000))); - EXPECT_EQ(48, glslang::IntLog2(uint64_t(0x10000) * uint64_t(0x10000) * uint64_t(0x10000))); - EXPECT_EQ(62, glslang::IntLog2(uint64_t(0x10000) * uint64_t(0x10000) * uint64_t(0x10000) * uint64_t(0x4000))); - EXPECT_EQ(63, glslang::IntLog2(uint64_t(0x10000) * uint64_t(0x10000) * uint64_t(0x10000) * uint64_t(0x8000))); -} - -} // anonymous namespace diff --git a/deps/glslang/gtests/Config.FromFile.cpp b/deps/glslang/gtests/Config.FromFile.cpp deleted file mode 100644 index dd18c13a..00000000 --- a/deps/glslang/gtests/Config.FromFile.cpp +++ /dev/null @@ -1,108 +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 "StandAlone/ResourceLimits.h" -#include "TestFixture.h" - -namespace glslangtest { -namespace { - -struct TestCaseSpec { - std::string input; - std::string config; - std::string output; - EShMessages controls; -}; - -using ConfigTest = GlslangTest<::testing::TestWithParam>; - -TEST_P(ConfigTest, FromFile) -{ - TestCaseSpec testCase = GetParam(); - GlslangResult result; - result.validationResult = true; - - // Get the contents for input shader and limit configurations. - std::string shaderContents, configContents; - tryLoadFile(GlobalTestSettings.testRoot + "/" + testCase.input, "input", &shaderContents); - tryLoadFile(GlobalTestSettings.testRoot + "/" + testCase.config, "limits config", &configContents); - - // Decode limit configurations. - TBuiltInResource resources = {}; - { - const size_t len = configContents.size(); - char* configChars = new char[len + 1]; - memcpy(configChars, configContents.data(), len); - configChars[len] = 0; - glslang::DecodeResourceLimits(&resources, configChars); - delete[] configChars; - } - - // Compile the shader. - glslang::TShader shader(GetShaderStage(GetSuffix(testCase.input))); - compile(&shader, shaderContents, "", testCase.controls, &resources); - result.shaderResults.push_back( - {testCase.input, shader.getInfoLog(), shader.getInfoDebugLog()}); - - // Link the shader. - glslang::TProgram program; - program.addShader(&shader); - program.link(testCase.controls); - result.linkingOutput = program.getInfoLog(); - result.linkingError = program.getInfoDebugLog(); - - std::ostringstream stream; - outputResultToStream(&stream, result, testCase.controls); - - // Check with expected results. - const std::string expectedOutputFname = - GlobalTestSettings.testRoot + "/baseResults/" + testCase.output; - std::string expectedOutput; - tryLoadFile(expectedOutputFname, "expected output", &expectedOutput); - - checkEqAndUpdateIfRequested(expectedOutput, stream.str(), expectedOutputFname); -} - -// clang-format off -INSTANTIATE_TEST_SUITE_P( - Glsl, ConfigTest, - ::testing::ValuesIn(std::vector({ - {"specExamples.vert", "baseResults/test.conf", "specExamplesConf.vert.out", (EShMessages)(EShMsgAST | EShMsgCascadingErrors)}, - {"100Limits.vert", "100.conf", "100LimitsConf.vert.out", EShMsgCascadingErrors}, - })) -); -// clang-format on - -} // anonymous namespace -} // namespace glslangtest diff --git a/deps/glslang/gtests/GlslMapIO.FromFile.cpp b/deps/glslang/gtests/GlslMapIO.FromFile.cpp deleted file mode 100644 index aabb4ae2..00000000 --- a/deps/glslang/gtests/GlslMapIO.FromFile.cpp +++ /dev/null @@ -1,355 +0,0 @@ -// -// Copyright (C) 2016-2017 Google, Inc. -// Copyright (C) 2020 The Khronos Group Inc. -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// Neither the name of 3Dlabs Inc. Ltd. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -// -#include - -#include - -#include "TestFixture.h" - -#include "glslang/MachineIndependent/iomapper.h" -#include "glslang/MachineIndependent/reflection.h" - -#ifndef GLSLANG_WEB -namespace glslangtest { -namespace { - -struct IoMapData { - std::vector fileNames; - Semantics semantics; -}; - -using GlslMapIOTest = GlslangTest <::testing::TestWithParam>; - -template -std::string interfaceName(T symbol) { - return symbol.getType()->getBasicType() == glslang::EbtBlock ? std::string(symbol.getType()->getTypeName().c_str()) : symbol.name; -} - -bool verifyIOMapping(std::string& linkingError, glslang::TProgram& program) { - bool success = true; - - // Verify IO Mapping by generating reflection for each stage individually - // and comparing layout qualifiers on the results - - - int reflectionOptions = EShReflectionDefault; - //reflectionOptions |= EShReflectionStrictArraySuffix; - //reflectionOptions |= EShReflectionBasicArraySuffix; - reflectionOptions |= EShReflectionIntermediateIO; - reflectionOptions |= EShReflectionSeparateBuffers; - reflectionOptions |= EShReflectionAllBlockVariables; - //reflectionOptions |= EShReflectionUnwrapIOBlocks; - - success &= program.buildReflection(reflectionOptions); - - // check that the reflection output from the individual stages all makes sense.. - std::vector stageReflections; - for (int s = 0; s < EShLangCount; ++s) { - if (program.getIntermediate((EShLanguage)s)) { - stageReflections.emplace_back((EShReflectionOptions)reflectionOptions, (EShLanguage)s, (EShLanguage)s); - success &= stageReflections.back().addStage((EShLanguage)s, *program.getIntermediate((EShLanguage)s)); - } - } - - // check that input/output locations match between stages - auto it = stageReflections.begin(); - auto nextIt = it + 1; - for (; nextIt != stageReflections.end(); it++, nextIt++) { - int numOut = it->getNumPipeOutputs(); - std::map pipeOut; - - for (int i = 0; i < numOut; i++) { - const glslang::TObjectReflection& out = it->getPipeOutput(i); - std::string name = interfaceName(out); - pipeOut[name] = &out; - } - - int numIn = nextIt->getNumPipeInputs(); - for (int i = 0; i < numIn; i++) { - auto in = nextIt->getPipeInput(i); - std::string name = interfaceName(in); - auto out = pipeOut.find(name); - - if (out != pipeOut.end()) { - auto inQualifier = in.getType()->getQualifier(); - auto outQualifier = out->second->getType()->getQualifier(); - success &= outQualifier.layoutLocation == inQualifier.layoutLocation; - } - else { - if (!in.getType()->isStruct()) { - bool found = false; - for (auto outIt : pipeOut) { - if (outIt.second->getType()->isStruct()) { - unsigned int baseLoc = outIt.second->getType()->getQualifier().hasLocation() ? - outIt.second->getType()->getQualifier().layoutLocation : - std::numeric_limits::max(); - for (size_t j = 0; j < outIt.second->getType()->getStruct()->size(); j++) { - baseLoc = (*outIt.second->getType()->getStruct())[j].type->getQualifier().hasLocation() ? - (*outIt.second->getType()->getStruct())[j].type->getQualifier().layoutLocation : baseLoc; - if (baseLoc != std::numeric_limits::max()) { - if (baseLoc == in.getType()->getQualifier().layoutLocation) { - found = true; - break; - } - baseLoc += glslang::TIntermediate::computeTypeLocationSize(*(*outIt.second->getType()->getStruct())[j].type, EShLangVertex); - } - } - if (found) { - break; - } - } - } - success &= found; - } - else { - unsigned int baseLoc = in.getType()->getQualifier().hasLocation() ? in.getType()->getQualifier().layoutLocation : -1; - for (size_t j = 0; j < in.getType()->getStruct()->size(); j++) { - baseLoc = (*in.getType()->getStruct())[j].type->getQualifier().hasLocation() ? - (*in.getType()->getStruct())[j].type->getQualifier().layoutLocation : baseLoc; - if (baseLoc != std::numeric_limits::max()) { - bool isMemberFound = false; - for (auto outIt : pipeOut) { - if (baseLoc == outIt.second->getType()->getQualifier().layoutLocation) { - isMemberFound = true; - break; - } - } - if (!isMemberFound) { - success &= false; - break; - } - baseLoc += glslang::TIntermediate::computeTypeLocationSize(*(*in.getType()->getStruct())[j].type, EShLangVertex); - } - } - } - } - } - } - - // compare uniforms in each stage to the program - { - int totalUniforms = program.getNumUniformVariables(); - std::map programUniforms; - for (int i = 0; i < totalUniforms; i++) { - const glslang::TObjectReflection& uniform = program.getUniform(i); - std::string name = interfaceName(uniform); - programUniforms[name] = &uniform; - } - it = stageReflections.begin(); - for (; it != stageReflections.end(); it++) { - int numUniform = it->getNumUniforms(); - std::map uniforms; - - for (int i = 0; i < numUniform; i++) { - glslang::TObjectReflection uniform = it->getUniform(i); - std::string name = interfaceName(uniform); - auto programUniform = programUniforms.find(name); - - if (programUniform != programUniforms.end()) { - auto stageQualifier = uniform.getType()->getQualifier(); - auto programQualifier = programUniform->second->getType()->getQualifier(); - - success &= stageQualifier.layoutLocation == programQualifier.layoutLocation; - success &= stageQualifier.layoutBinding == programQualifier.layoutBinding; - success &= stageQualifier.layoutSet == programQualifier.layoutSet; - } - else { - success &= false; - } - } - } - } - - // compare uniform blocks in each stage to the program table - { - int totalUniforms = program.getNumUniformBlocks(); - std::map programUniforms; - for (int i = 0; i < totalUniforms; i++) { - const glslang::TObjectReflection& uniform = program.getUniformBlock(i); - std::string name = interfaceName(uniform); - programUniforms[name] = &uniform; - } - it = stageReflections.begin(); - for (; it != stageReflections.end(); it++) { - int numUniform = it->getNumUniformBlocks(); - std::map uniforms; - - for (int i = 0; i < numUniform; i++) { - glslang::TObjectReflection uniform = it->getUniformBlock(i); - std::string name = interfaceName(uniform); - auto programUniform = programUniforms.find(name); - - if (programUniform != programUniforms.end()) { - auto stageQualifier = uniform.getType()->getQualifier(); - auto programQualifier = programUniform->second->getType()->getQualifier(); - - success &= stageQualifier.layoutLocation == programQualifier.layoutLocation; - success &= stageQualifier.layoutBinding == programQualifier.layoutBinding; - success &= stageQualifier.layoutSet == programQualifier.layoutSet; - } - else { - success &= false; - } - } - } - } - - if (!success) { - linkingError += "Mismatched cross-stage IO\n"; - } - - return success; -} - -TEST_P(GlslMapIOTest, FromFile) -{ - const auto& fileNames = GetParam().fileNames; - Semantics semantics = GetParam().semantics; - const size_t fileCount = fileNames.size(); - const EShMessages controls = DeriveOptions(Source::GLSL, semantics, Target::BothASTAndSpv); - GlslangResult result; - - // Compile each input shader file. - bool success = true; - std::vector> shaders; - for (size_t i = 0; i < fileCount; ++i) { - std::string contents; - tryLoadFile(GlobalTestSettings.testRoot + "/" + fileNames[i], - "input", &contents); - shaders.emplace_back( - new glslang::TShader(GetShaderStage(GetSuffix(fileNames[i])))); - auto* shader = shaders.back().get(); - - shader->setAutoMapLocations(true); - shader->setAutoMapBindings(true); - - if (controls & EShMsgSpvRules) { - if (controls & EShMsgVulkanRules) { - shader->setEnvInput((controls & EShMsgReadHlsl) ? glslang::EShSourceHlsl - : glslang::EShSourceGlsl, - shader->getStage(), glslang::EShClientVulkan, 100); - shader->setEnvClient(glslang::EShClientVulkan, glslang::EShTargetVulkan_1_1); - shader->setEnvTarget(glslang::EShTargetSpv, glslang::EShTargetSpv_1_0); - } else { - shader->setEnvInput((controls & EShMsgReadHlsl) ? glslang::EShSourceHlsl - : glslang::EShSourceGlsl, - shader->getStage(), glslang::EShClientOpenGL, 100); - shader->setEnvClient(glslang::EShClientOpenGL, glslang::EShTargetOpenGL_450); - shader->setEnvTarget(glslang::EshTargetSpv, glslang::EShTargetSpv_1_0); - } - } - - success &= compile(shader, contents, "", controls); - - result.shaderResults.push_back( - { fileNames[i], shader->getInfoLog(), shader->getInfoDebugLog() }); - } - - // Link all of them. - glslang::TProgram program; - for (const auto& shader : shaders) program.addShader(shader.get()); - success &= program.link(controls); - result.linkingOutput = program.getInfoLog(); - result.linkingError = program.getInfoDebugLog(); - - unsigned int stage = 0; - glslang::TIntermediate* firstIntermediate = nullptr; - while (!program.getIntermediate((EShLanguage)stage) && stage < EShLangCount) { stage++; } - firstIntermediate = program.getIntermediate((EShLanguage)stage); - - glslang::TDefaultGlslIoResolver resolver(*firstIntermediate); - glslang::TGlslIoMapper ioMapper; - - if (success) { - success &= program.mapIO(&resolver, &ioMapper); - result.linkingOutput = program.getInfoLog(); - result.linkingError = program.getInfoDebugLog(); - } - - success &= verifyIOMapping(result.linkingError, program); - result.validationResult = success; - - if (success && (controls & EShMsgSpvRules)) { - for (int stage = 0; stage < EShLangCount; ++stage) { - if (program.getIntermediate((EShLanguage)stage)) { - spv::SpvBuildLogger logger; - std::vector spirv_binary; - options().disableOptimizer = false; - glslang::GlslangToSpv(*program.getIntermediate((EShLanguage)stage), - spirv_binary, &logger, &options()); - - std::ostringstream disassembly_stream; - spv::Parameterize(); - spv::Disassemble(disassembly_stream, spirv_binary); - result.spirvWarningsErrors += logger.getAllMessages(); - result.spirv += disassembly_stream.str(); - result.validationResult &= !options().validate || logger.getAllMessages().empty(); - } - } - } - - std::ostringstream stream; - outputResultToStream(&stream, result, controls); - - // Check with expected results. - const std::string expectedOutputFname = - GlobalTestSettings.testRoot + "/baseResults/" + fileNames.front() + ".out"; - std::string expectedOutput; - tryLoadFile(expectedOutputFname, "expected output", &expectedOutput); - - checkEqAndUpdateIfRequested(expectedOutput, stream.str(), expectedOutputFname, - result.spirvWarningsErrors); -} - -// clang-format off -INSTANTIATE_TEST_SUITE_P( - Glsl, GlslMapIOTest, - ::testing::ValuesIn(std::vector({ - {{"iomap.crossStage.vert", "iomap.crossStage.frag" }, Semantics::OpenGL}, - {{"iomap.crossStage.2.vert", "iomap.crossStage.2.geom", "iomap.crossStage.2.frag" }, Semantics::OpenGL}, - {{"iomap.blockOutVariableIn.vert", "iomap.blockOutVariableIn.frag"}, Semantics::OpenGL}, - {{"iomap.variableOutBlockIn.vert", "iomap.variableOutBlockIn.frag"}, Semantics::OpenGL}, - {{"iomap.blockOutVariableIn.2.vert", "iomap.blockOutVariableIn.geom"}, Semantics::OpenGL}, - {{"iomap.variableOutBlockIn.2.vert", "iomap.variableOutBlockIn.geom"}, Semantics::OpenGL}, - // vulkan semantics - {{"iomap.crossStage.vk.vert", "iomap.crossStage.vk.geom", "iomap.crossStage.vk.frag" }, Semantics::Vulkan}, - })) -); -// clang-format on - -} // anonymous namespace -} // namespace glslangtest -#endif diff --git a/deps/glslang/gtests/HexFloat.cpp b/deps/glslang/gtests/HexFloat.cpp deleted file mode 100644 index 0a11d961..00000000 --- a/deps/glslang/gtests/HexFloat.cpp +++ /dev/null @@ -1,1231 +0,0 @@ -// Copyright (c) 2015-2016 The Khronos Group Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include -#include -#include -#include -#include -#include - -#include -#include "SPIRV/hex_float.h" - -namespace { -using ::testing::Eq; -using spvutils::BitwiseCast; -using spvutils::Float16; -using spvutils::FloatProxy; -using spvutils::HexFloat; -using spvutils::ParseNormalFloat; - -// In this file "encode" means converting a number into a string, -// and "decode" means converting a string into a number. - -using HexFloatTest = - ::testing::TestWithParam, std::string>>; -using DecodeHexFloatTest = - ::testing::TestWithParam>>; -using HexDoubleTest = - ::testing::TestWithParam, std::string>>; -using DecodeHexDoubleTest = - ::testing::TestWithParam>>; - -// Hex-encodes a float value. -template -std::string EncodeViaHexFloat(const T& value) { - std::stringstream ss; - ss << spvutils::HexFloat(value); - return ss.str(); -} - -// The following two tests can't be DRY because they take different parameter -// types. - -TEST_P(HexFloatTest, EncodeCorrectly) { - EXPECT_THAT(EncodeViaHexFloat(GetParam().first), Eq(GetParam().second)); -} - -TEST_P(HexDoubleTest, EncodeCorrectly) { - EXPECT_THAT(EncodeViaHexFloat(GetParam().first), Eq(GetParam().second)); -} - -// Decodes a hex-float string. -template -FloatProxy Decode(const std::string& str) { - spvutils::HexFloat> decoded(0.f); - EXPECT_TRUE((std::stringstream(str) >> decoded).eof()); - return decoded.value(); -} - -TEST_P(HexFloatTest, DecodeCorrectly) { - EXPECT_THAT(Decode(GetParam().second), Eq(GetParam().first)); -} - -TEST_P(HexDoubleTest, DecodeCorrectly) { - EXPECT_THAT(Decode(GetParam().second), Eq(GetParam().first)); -} - -INSTANTIATE_TEST_SUITE_P( - Float32Tests, HexFloatTest, - ::testing::ValuesIn(std::vector, std::string>>({ - {0.f, "0x0p+0"}, - {1.f, "0x1p+0"}, - {2.f, "0x1p+1"}, - {3.f, "0x1.8p+1"}, - {0.5f, "0x1p-1"}, - {0.25f, "0x1p-2"}, - {0.75f, "0x1.8p-1"}, - {-0.f, "-0x0p+0"}, - {-1.f, "-0x1p+0"}, - {-0.5f, "-0x1p-1"}, - {-0.25f, "-0x1p-2"}, - {-0.75f, "-0x1.8p-1"}, - - // Larger numbers - {512.f, "0x1p+9"}, - {-512.f, "-0x1p+9"}, - {1024.f, "0x1p+10"}, - {-1024.f, "-0x1p+10"}, - {1024.f + 8.f, "0x1.02p+10"}, - {-1024.f - 8.f, "-0x1.02p+10"}, - - // Small numbers - {1.0f / 512.f, "0x1p-9"}, - {1.0f / -512.f, "-0x1p-9"}, - {1.0f / 1024.f, "0x1p-10"}, - {1.0f / -1024.f, "-0x1p-10"}, - {1.0f / 1024.f + 1.0f / 8.f, "0x1.02p-3"}, - {1.0f / -1024.f - 1.0f / 8.f, "-0x1.02p-3"}, - - // lowest non-denorm - {float(ldexp(1.0f, -126)), "0x1p-126"}, - {float(ldexp(-1.0f, -126)), "-0x1p-126"}, - - // Denormalized values - {float(ldexp(1.0f, -127)), "0x1p-127"}, - {float(ldexp(1.0f, -127) / 2.0f), "0x1p-128"}, - {float(ldexp(1.0f, -127) / 4.0f), "0x1p-129"}, - {float(ldexp(1.0f, -127) / 8.0f), "0x1p-130"}, - {float(ldexp(-1.0f, -127)), "-0x1p-127"}, - {float(ldexp(-1.0f, -127) / 2.0f), "-0x1p-128"}, - {float(ldexp(-1.0f, -127) / 4.0f), "-0x1p-129"}, - {float(ldexp(-1.0f, -127) / 8.0f), "-0x1p-130"}, - - {float(ldexp(1.0, -127) + (ldexp(1.0, -127) / 2.0f)), "0x1.8p-127"}, - {float(ldexp(1.0, -127) / 2.0 + (ldexp(1.0, -127) / 4.0f)), - "0x1.8p-128"}, - - }))); - -INSTANTIATE_TEST_SUITE_P( - Float32NanTests, HexFloatTest, - ::testing::ValuesIn(std::vector, std::string>>({ - // Various NAN and INF cases - {uint32_t(0xFF800000), "-0x1p+128"}, // -inf - {uint32_t(0x7F800000), "0x1p+128"}, // inf - {uint32_t(0xFFC00000), "-0x1.8p+128"}, // -nan - {uint32_t(0xFF800100), "-0x1.0002p+128"}, // -nan - {uint32_t(0xFF800c00), "-0x1.0018p+128"}, // -nan - {uint32_t(0xFF80F000), "-0x1.01ep+128"}, // -nan - {uint32_t(0xFFFFFFFF), "-0x1.fffffep+128"}, // -nan - {uint32_t(0x7FC00000), "0x1.8p+128"}, // +nan - {uint32_t(0x7F800100), "0x1.0002p+128"}, // +nan - {uint32_t(0x7f800c00), "0x1.0018p+128"}, // +nan - {uint32_t(0x7F80F000), "0x1.01ep+128"}, // +nan - {uint32_t(0x7FFFFFFF), "0x1.fffffep+128"}, // +nan - }))); - -INSTANTIATE_TEST_SUITE_P( - Float64Tests, HexDoubleTest, - ::testing::ValuesIn( - std::vector, std::string>>({ - {0., "0x0p+0"}, - {1., "0x1p+0"}, - {2., "0x1p+1"}, - {3., "0x1.8p+1"}, - {0.5, "0x1p-1"}, - {0.25, "0x1p-2"}, - {0.75, "0x1.8p-1"}, - {-0., "-0x0p+0"}, - {-1., "-0x1p+0"}, - {-0.5, "-0x1p-1"}, - {-0.25, "-0x1p-2"}, - {-0.75, "-0x1.8p-1"}, - - // Larger numbers - {512., "0x1p+9"}, - {-512., "-0x1p+9"}, - {1024., "0x1p+10"}, - {-1024., "-0x1p+10"}, - {1024. + 8., "0x1.02p+10"}, - {-1024. - 8., "-0x1.02p+10"}, - - // Large outside the range of normal floats - {ldexp(1.0, 128), "0x1p+128"}, - {ldexp(1.0, 129), "0x1p+129"}, - {ldexp(-1.0, 128), "-0x1p+128"}, - {ldexp(-1.0, 129), "-0x1p+129"}, - {ldexp(1.0, 128) + ldexp(1.0, 90), "0x1.0000000004p+128"}, - {ldexp(1.0, 129) + ldexp(1.0, 120), "0x1.008p+129"}, - {ldexp(-1.0, 128) + ldexp(1.0, 90), "-0x1.fffffffff8p+127"}, - {ldexp(-1.0, 129) + ldexp(1.0, 120), "-0x1.ffp+128"}, - - // Small numbers - {1.0 / 512., "0x1p-9"}, - {1.0 / -512., "-0x1p-9"}, - {1.0 / 1024., "0x1p-10"}, - {1.0 / -1024., "-0x1p-10"}, - {1.0 / 1024. + 1.0 / 8., "0x1.02p-3"}, - {1.0 / -1024. - 1.0 / 8., "-0x1.02p-3"}, - - // Small outside the range of normal floats - {ldexp(1.0, -128), "0x1p-128"}, - {ldexp(1.0, -129), "0x1p-129"}, - {ldexp(-1.0, -128), "-0x1p-128"}, - {ldexp(-1.0, -129), "-0x1p-129"}, - {ldexp(1.0, -128) + ldexp(1.0, -90), "0x1.0000000004p-90"}, - {ldexp(1.0, -129) + ldexp(1.0, -120), "0x1.008p-120"}, - {ldexp(-1.0, -128) + ldexp(1.0, -90), "0x1.fffffffff8p-91"}, - {ldexp(-1.0, -129) + ldexp(1.0, -120), "0x1.ffp-121"}, - - // lowest non-denorm - {ldexp(1.0, -1022), "0x1p-1022"}, - {ldexp(-1.0, -1022), "-0x1p-1022"}, - - // Denormalized values - {ldexp(1.0, -1023), "0x1p-1023"}, - {ldexp(1.0, -1023) / 2.0, "0x1p-1024"}, - {ldexp(1.0, -1023) / 4.0, "0x1p-1025"}, - {ldexp(1.0, -1023) / 8.0, "0x1p-1026"}, - {ldexp(-1.0, -1024), "-0x1p-1024"}, - {ldexp(-1.0, -1024) / 2.0, "-0x1p-1025"}, - {ldexp(-1.0, -1024) / 4.0, "-0x1p-1026"}, - {ldexp(-1.0, -1024) / 8.0, "-0x1p-1027"}, - - {ldexp(1.0, -1023) + (ldexp(1.0, -1023) / 2.0), "0x1.8p-1023"}, - {ldexp(1.0, -1023) / 2.0 + (ldexp(1.0, -1023) / 4.0), - "0x1.8p-1024"}, - - }))); - -INSTANTIATE_TEST_SUITE_P( - Float64NanTests, HexDoubleTest, - ::testing::ValuesIn(std::vector< - std::pair, std::string>>({ - // Various NAN and INF cases - {uint64_t(0xFFF0000000000000LL), "-0x1p+1024"}, //-inf - {uint64_t(0x7FF0000000000000LL), "0x1p+1024"}, //+inf - {uint64_t(0xFFF8000000000000LL), "-0x1.8p+1024"}, // -nan - {uint64_t(0xFFF0F00000000000LL), "-0x1.0fp+1024"}, // -nan - {uint64_t(0xFFF0000000000001LL), "-0x1.0000000000001p+1024"}, // -nan - {uint64_t(0xFFF0000300000000LL), "-0x1.00003p+1024"}, // -nan - {uint64_t(0xFFFFFFFFFFFFFFFFLL), "-0x1.fffffffffffffp+1024"}, // -nan - {uint64_t(0x7FF8000000000000LL), "0x1.8p+1024"}, // +nan - {uint64_t(0x7FF0F00000000000LL), "0x1.0fp+1024"}, // +nan - {uint64_t(0x7FF0000000000001LL), "0x1.0000000000001p+1024"}, // -nan - {uint64_t(0x7FF0000300000000LL), "0x1.00003p+1024"}, // -nan - {uint64_t(0x7FFFFFFFFFFFFFFFLL), "0x1.fffffffffffffp+1024"}, // -nan - }))); - -TEST(HexFloatStreamTest, OperatorLeftShiftPreservesFloatAndFill) { - std::stringstream s; - s << std::setw(4) << std::oct << std::setfill('x') << 8 << " " - << FloatProxy(uint32_t(0xFF800100)) << " " << std::setw(4) << 9; - EXPECT_THAT(s.str(), Eq(std::string("xx10 -0x1.0002p+128 xx11"))); -} - -TEST(HexDoubleStreamTest, OperatorLeftShiftPreservesFloatAndFill) { - std::stringstream s; - s << std::setw(4) << std::oct << std::setfill('x') << 8 << " " - << FloatProxy(uint64_t(0x7FF0F00000000000LL)) << " " << std::setw(4) - << 9; - EXPECT_THAT(s.str(), Eq(std::string("xx10 0x1.0fp+1024 xx11"))); -} - -TEST_P(DecodeHexFloatTest, DecodeCorrectly) { - EXPECT_THAT(Decode(GetParam().first), Eq(GetParam().second)); -} - -TEST_P(DecodeHexDoubleTest, DecodeCorrectly) { - EXPECT_THAT(Decode(GetParam().first), Eq(GetParam().second)); -} - -INSTANTIATE_TEST_SUITE_P( - Float32DecodeTests, DecodeHexFloatTest, - ::testing::ValuesIn(std::vector>>({ - {"0x0p+000", 0.f}, - {"0x0p0", 0.f}, - {"0x0p-0", 0.f}, - - // flush to zero cases - {"0x1p-500", 0.f}, // Exponent underflows. - {"-0x1p-500", -0.f}, - {"0x0.00000000001p-126", 0.f}, // Fraction causes underflow. - {"-0x0.0000000001p-127", -0.f}, - {"-0x0.01p-142", -0.f}, // Fraction causes additional underflow. - {"0x0.01p-142", 0.f}, - - // Some floats that do not encode the same way as they decode. - {"0x2p+0", 2.f}, - {"0xFFp+0", 255.f}, - {"0x0.8p+0", 0.5f}, - {"0x0.4p+0", 0.25f}, - }))); - -INSTANTIATE_TEST_SUITE_P( - Float32DecodeInfTests, DecodeHexFloatTest, - ::testing::ValuesIn(std::vector>>({ - // inf cases - {"-0x1p+128", uint32_t(0xFF800000)}, // -inf - {"0x32p+127", uint32_t(0x7F800000)}, // inf - {"0x32p+500", uint32_t(0x7F800000)}, // inf - {"-0x32p+127", uint32_t(0xFF800000)}, // -inf - }))); - -INSTANTIATE_TEST_SUITE_P( - Float64DecodeTests, DecodeHexDoubleTest, - ::testing::ValuesIn( - std::vector>>({ - {"0x0p+000", 0.}, - {"0x0p0", 0.}, - {"0x0p-0", 0.}, - - // flush to zero cases - {"0x1p-5000", 0.}, // Exponent underflows. - {"-0x1p-5000", -0.}, - {"0x0.0000000000000001p-1023", 0.}, // Fraction causes underflow. - {"-0x0.000000000000001p-1024", -0.}, - {"-0x0.01p-1090", -0.f}, // Fraction causes additional underflow. - {"0x0.01p-1090", 0.}, - - // Some floats that do not encode the same way as they decode. - {"0x2p+0", 2.}, - {"0xFFp+0", 255.}, - {"0x0.8p+0", 0.5}, - {"0x0.4p+0", 0.25}, - }))); - -INSTANTIATE_TEST_SUITE_P( - Float64DecodeInfTests, DecodeHexDoubleTest, - ::testing::ValuesIn( - std::vector>>({ - // inf cases - {"-0x1p+1024", uint64_t(0xFFF0000000000000)}, // -inf - {"0x32p+1023", uint64_t(0x7FF0000000000000)}, // inf - {"0x32p+5000", uint64_t(0x7FF0000000000000)}, // inf - {"-0x32p+1023", uint64_t(0xFFF0000000000000)}, // -inf - }))); - -TEST(FloatProxy, ValidConversion) { - EXPECT_THAT(FloatProxy(1.f).getAsFloat(), Eq(1.0f)); - EXPECT_THAT(FloatProxy(32.f).getAsFloat(), Eq(32.0f)); - EXPECT_THAT(FloatProxy(-1.f).getAsFloat(), Eq(-1.0f)); - EXPECT_THAT(FloatProxy(0.f).getAsFloat(), Eq(0.0f)); - EXPECT_THAT(FloatProxy(-0.f).getAsFloat(), Eq(-0.0f)); - EXPECT_THAT(FloatProxy(1.2e32f).getAsFloat(), Eq(1.2e32f)); - - EXPECT_TRUE(std::isinf(FloatProxy(uint32_t(0xFF800000)).getAsFloat())); - EXPECT_TRUE(std::isinf(FloatProxy(uint32_t(0x7F800000)).getAsFloat())); - EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0xFFC00000)).getAsFloat())); - EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0xFF800100)).getAsFloat())); - EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0xFF800c00)).getAsFloat())); - EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0xFF80F000)).getAsFloat())); - EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0xFFFFFFFF)).getAsFloat())); - EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0x7FC00000)).getAsFloat())); - EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0x7F800100)).getAsFloat())); - EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0x7f800c00)).getAsFloat())); - EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0x7F80F000)).getAsFloat())); - EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0x7FFFFFFF)).getAsFloat())); - - EXPECT_THAT(FloatProxy(uint32_t(0xFF800000)).data(), Eq(0xFF800000u)); - EXPECT_THAT(FloatProxy(uint32_t(0x7F800000)).data(), Eq(0x7F800000u)); - EXPECT_THAT(FloatProxy(uint32_t(0xFFC00000)).data(), Eq(0xFFC00000u)); - EXPECT_THAT(FloatProxy(uint32_t(0xFF800100)).data(), Eq(0xFF800100u)); - EXPECT_THAT(FloatProxy(uint32_t(0xFF800c00)).data(), Eq(0xFF800c00u)); - EXPECT_THAT(FloatProxy(uint32_t(0xFF80F000)).data(), Eq(0xFF80F000u)); - EXPECT_THAT(FloatProxy(uint32_t(0xFFFFFFFF)).data(), Eq(0xFFFFFFFFu)); - EXPECT_THAT(FloatProxy(uint32_t(0x7FC00000)).data(), Eq(0x7FC00000u)); - EXPECT_THAT(FloatProxy(uint32_t(0x7F800100)).data(), Eq(0x7F800100u)); - EXPECT_THAT(FloatProxy(uint32_t(0x7f800c00)).data(), Eq(0x7f800c00u)); - EXPECT_THAT(FloatProxy(uint32_t(0x7F80F000)).data(), Eq(0x7F80F000u)); - EXPECT_THAT(FloatProxy(uint32_t(0x7FFFFFFF)).data(), Eq(0x7FFFFFFFu)); -} - -TEST(FloatProxy, Nan) { - EXPECT_TRUE(FloatProxy(uint32_t(0xFFC00000)).isNan()); - EXPECT_TRUE(FloatProxy(uint32_t(0xFF800100)).isNan()); - EXPECT_TRUE(FloatProxy(uint32_t(0xFF800c00)).isNan()); - EXPECT_TRUE(FloatProxy(uint32_t(0xFF80F000)).isNan()); - EXPECT_TRUE(FloatProxy(uint32_t(0xFFFFFFFF)).isNan()); - EXPECT_TRUE(FloatProxy(uint32_t(0x7FC00000)).isNan()); - EXPECT_TRUE(FloatProxy(uint32_t(0x7F800100)).isNan()); - EXPECT_TRUE(FloatProxy(uint32_t(0x7f800c00)).isNan()); - EXPECT_TRUE(FloatProxy(uint32_t(0x7F80F000)).isNan()); - EXPECT_TRUE(FloatProxy(uint32_t(0x7FFFFFFF)).isNan()); -} - -TEST(FloatProxy, Negation) { - EXPECT_THAT((-FloatProxy(1.f)).getAsFloat(), Eq(-1.0f)); - EXPECT_THAT((-FloatProxy(0.f)).getAsFloat(), Eq(-0.0f)); - - EXPECT_THAT((-FloatProxy(-1.f)).getAsFloat(), Eq(1.0f)); - EXPECT_THAT((-FloatProxy(-0.f)).getAsFloat(), Eq(0.0f)); - - EXPECT_THAT((-FloatProxy(32.f)).getAsFloat(), Eq(-32.0f)); - EXPECT_THAT((-FloatProxy(-32.f)).getAsFloat(), Eq(32.0f)); - - EXPECT_THAT((-FloatProxy(1.2e32f)).getAsFloat(), Eq(-1.2e32f)); - EXPECT_THAT((-FloatProxy(-1.2e32f)).getAsFloat(), Eq(1.2e32f)); - - EXPECT_THAT( - (-FloatProxy(std::numeric_limits::infinity())).getAsFloat(), - Eq(-std::numeric_limits::infinity())); - EXPECT_THAT((-FloatProxy(-std::numeric_limits::infinity())) - .getAsFloat(), - Eq(std::numeric_limits::infinity())); -} - -// Test conversion of FloatProxy values to strings. -// -// In previous cases, we always wrapped the FloatProxy value in a HexFloat -// before conversion to a string. In the following cases, the FloatProxy -// decides for itself whether to print as a regular number or as a hex float. - -using FloatProxyFloatTest = - ::testing::TestWithParam, std::string>>; -using FloatProxyDoubleTest = - ::testing::TestWithParam, std::string>>; - -// Converts a float value to a string via a FloatProxy. -template -std::string EncodeViaFloatProxy(const T& value) { - std::stringstream ss; - ss << value; - return ss.str(); -} - -// Converts a floating point string so that the exponent prefix -// is 'e', and the exponent value does not have leading zeros. -// The Microsoft runtime library likes to write things like "2.5E+010". -// Convert that to "2.5e+10". -// We don't care what happens to strings that are not floating point -// strings. -std::string NormalizeExponentInFloatString(std::string in) { - std::string result; - // Reserve one spot for the terminating null, even when the sscanf fails. - std::vector prefix(in.size() + 1); - char e; - char plus_or_minus; - int exponent; // in base 10 - if ((4 == std::sscanf(in.c_str(), "%[-+.0123456789]%c%c%d", prefix.data(), &e, - &plus_or_minus, &exponent)) && - (e == 'e' || e == 'E') && - (plus_or_minus == '-' || plus_or_minus == '+')) { - // It looks like a floating point value with exponent. - std::stringstream out; - out << prefix.data() << 'e' << plus_or_minus << exponent; - result = out.str(); - } else { - result = in; - } - return result; -} - -TEST(NormalizeFloat, Sample) { - EXPECT_THAT(NormalizeExponentInFloatString(""), Eq("")); - EXPECT_THAT(NormalizeExponentInFloatString("1e-12"), Eq("1e-12")); - EXPECT_THAT(NormalizeExponentInFloatString("1E+14"), Eq("1e+14")); - EXPECT_THAT(NormalizeExponentInFloatString("1e-0012"), Eq("1e-12")); - EXPECT_THAT(NormalizeExponentInFloatString("1.263E+014"), Eq("1.263e+14")); -} - -// The following two tests can't be DRY because they take different parameter -// types. -TEST_P(FloatProxyFloatTest, EncodeCorrectly) { - EXPECT_THAT( - NormalizeExponentInFloatString(EncodeViaFloatProxy(GetParam().first)), - Eq(GetParam().second)); -} - -TEST_P(FloatProxyDoubleTest, EncodeCorrectly) { - EXPECT_THAT( - NormalizeExponentInFloatString(EncodeViaFloatProxy(GetParam().first)), - Eq(GetParam().second)); -} - -INSTANTIATE_TEST_SUITE_P( - Float32Tests, FloatProxyFloatTest, - ::testing::ValuesIn(std::vector, std::string>>({ - // Zero - {0.f, "0"}, - // Normal numbers - {1.f, "1"}, - {-0.25f, "-0.25"}, - {1000.0f, "1000"}, - - // Still normal numbers, but with large magnitude exponents. - {float(ldexp(1.f, 126)), "8.50706e+37"}, - {float(ldexp(-1.f, -126)), "-1.17549e-38"}, - - // denormalized values are printed as hex floats. - {float(ldexp(1.0f, -127)), "0x1p-127"}, - {float(ldexp(1.5f, -128)), "0x1.8p-128"}, - {float(ldexp(1.25, -129)), "0x1.4p-129"}, - {float(ldexp(1.125, -130)), "0x1.2p-130"}, - {float(ldexp(-1.0f, -127)), "-0x1p-127"}, - {float(ldexp(-1.0f, -128)), "-0x1p-128"}, - {float(ldexp(-1.0f, -129)), "-0x1p-129"}, - {float(ldexp(-1.5f, -130)), "-0x1.8p-130"}, - - // NaNs - {FloatProxy(uint32_t(0xFFC00000)), "-0x1.8p+128"}, - {FloatProxy(uint32_t(0xFF800100)), "-0x1.0002p+128"}, - - {std::numeric_limits::infinity(), "0x1p+128"}, - {-std::numeric_limits::infinity(), "-0x1p+128"}, - }))); - -INSTANTIATE_TEST_SUITE_P( - Float64Tests, FloatProxyDoubleTest, - ::testing::ValuesIn( - std::vector, std::string>>({ - {0., "0"}, - {1., "1"}, - {-0.25, "-0.25"}, - {1000.0, "1000"}, - - // Large outside the range of normal floats - {ldexp(1.0, 128), "3.40282366920938e+38"}, - {ldexp(1.5, 129), "1.02084710076282e+39"}, - {ldexp(-1.0, 128), "-3.40282366920938e+38"}, - {ldexp(-1.5, 129), "-1.02084710076282e+39"}, - - // Small outside the range of normal floats - {ldexp(1.5, -129), "2.20405190779179e-39"}, - {ldexp(-1.5, -129), "-2.20405190779179e-39"}, - - // lowest non-denorm - {ldexp(1.0, -1022), "2.2250738585072e-308"}, - {ldexp(-1.0, -1022), "-2.2250738585072e-308"}, - - // Denormalized values - {ldexp(1.125, -1023), "0x1.2p-1023"}, - {ldexp(-1.375, -1024), "-0x1.6p-1024"}, - - // NaNs - {uint64_t(0x7FF8000000000000LL), "0x1.8p+1024"}, - {uint64_t(0xFFF0F00000000000LL), "-0x1.0fp+1024"}, - - // Infinity - {std::numeric_limits::infinity(), "0x1p+1024"}, - {-std::numeric_limits::infinity(), "-0x1p+1024"}, - - }))); - -// double is used so that unbiased_exponent can be used with the output -// of ldexp directly. -int32_t unbiased_exponent(double f) { - return spvutils::HexFloat>( - static_cast(f)).getUnbiasedNormalizedExponent(); -} - -int16_t unbiased_half_exponent(uint16_t f) { - return spvutils::HexFloat>(f) - .getUnbiasedNormalizedExponent(); -} - -TEST(HexFloatOperationTest, UnbiasedExponent) { - // Float cases - EXPECT_EQ(0, unbiased_exponent(ldexp(1.0f, 0))); - EXPECT_EQ(-32, unbiased_exponent(ldexp(1.0f, -32))); - EXPECT_EQ(42, unbiased_exponent(ldexp(1.0f, 42))); - EXPECT_EQ(125, unbiased_exponent(ldexp(1.0f, 125))); - // Saturates to 128 - EXPECT_EQ(128, unbiased_exponent(ldexp(1.0f, 256))); - - EXPECT_EQ(-100, unbiased_exponent(ldexp(1.0f, -100))); - EXPECT_EQ(-127, unbiased_exponent(ldexp(1.0f, -127))); // First denorm - EXPECT_EQ(-128, unbiased_exponent(ldexp(1.0f, -128))); - EXPECT_EQ(-129, unbiased_exponent(ldexp(1.0f, -129))); - EXPECT_EQ(-140, unbiased_exponent(ldexp(1.0f, -140))); - // Smallest representable number - EXPECT_EQ(-126 - 23, unbiased_exponent(ldexp(1.0f, -126 - 23))); - // Should get rounded to 0 first. - EXPECT_EQ(0, unbiased_exponent(ldexp(1.0f, -127 - 23))); - - // Float16 cases - // The exponent is represented in the bits 0x7C00 - // The offset is -15 - EXPECT_EQ(0, unbiased_half_exponent(0x3C00)); - EXPECT_EQ(3, unbiased_half_exponent(0x4800)); - EXPECT_EQ(-1, unbiased_half_exponent(0x3800)); - EXPECT_EQ(-14, unbiased_half_exponent(0x0400)); - EXPECT_EQ(16, unbiased_half_exponent(0x7C00)); - EXPECT_EQ(10, unbiased_half_exponent(0x6400)); - - // Smallest representable number - EXPECT_EQ(-24, unbiased_half_exponent(0x0001)); -} - -// Creates a float that is the sum of 1/(2 ^ fractions[i]) for i in factions -float float_fractions(const std::vector& fractions) { - float f = 0; - for(int32_t i: fractions) { - f += std::ldexp(1.0f, -i); - } - return f; -} - -// Returns the normalized significand of a HexFloat> -// that was created by calling float_fractions with the input fractions, -// raised to the power of exp. -uint32_t normalized_significand(const std::vector& fractions, uint32_t exp) { - return spvutils::HexFloat>( - static_cast(ldexp(float_fractions(fractions), exp))) - .getNormalizedSignificand(); -} - -// Sets the bits from MSB to LSB of the significand part of a float. -// For example 0 would set the bit 23 (counting from LSB to MSB), -// and 1 would set the 22nd bit. -uint32_t bits_set(const std::vector& bits) { - const uint32_t top_bit = 1u << 22u; - uint32_t val= 0; - for(uint32_t i: bits) { - val |= top_bit >> i; - } - return val; -} - -// The same as bits_set but for a Float16 value instead of 32-bit floating -// point. -uint16_t half_bits_set(const std::vector& bits) { - const uint32_t top_bit = 1u << 9u; - uint32_t val= 0; - for(uint32_t i: bits) { - val |= top_bit >> i; - } - return static_cast(val); -} - -TEST(HexFloatOperationTest, NormalizedSignificand) { - // For normalized numbers (the following) it should be a simple matter - // of getting rid of the top implicit bit - EXPECT_EQ(bits_set({}), normalized_significand({0}, 0)); - EXPECT_EQ(bits_set({0}), normalized_significand({0, 1}, 0)); - EXPECT_EQ(bits_set({0, 1}), normalized_significand({0, 1, 2}, 0)); - EXPECT_EQ(bits_set({1}), normalized_significand({0, 2}, 0)); - EXPECT_EQ(bits_set({1}), normalized_significand({0, 2}, 32)); - EXPECT_EQ(bits_set({1}), normalized_significand({0, 2}, 126)); - - // For denormalized numbers we expect the normalized significand to - // shift as if it were normalized. This means, in practice that the - // top_most set bit will be cut off. Looks very similar to above (on purpose) - EXPECT_EQ(bits_set({}), normalized_significand({0}, -127)); - EXPECT_EQ(bits_set({3}), normalized_significand({0, 4}, -128)); - EXPECT_EQ(bits_set({3}), normalized_significand({0, 4}, -127)); - EXPECT_EQ(bits_set({}), normalized_significand({22}, -127)); - EXPECT_EQ(bits_set({0}), normalized_significand({21, 22}, -127)); -} - -// Returns the 32-bit floating point value created by -// calling setFromSignUnbiasedExponentAndNormalizedSignificand -// on a HexFloat> -float set_from_sign(bool negative, int32_t unbiased_exponent, - uint32_t significand, bool round_denorm_up) { - spvutils::HexFloat> f(0.f); - f.setFromSignUnbiasedExponentAndNormalizedSignificand( - negative, unbiased_exponent, significand, round_denorm_up); - return f.value().getAsFloat(); -} - -TEST(HexFloatOperationTests, - SetFromSignUnbiasedExponentAndNormalizedSignificand) { - - EXPECT_EQ(1.f, set_from_sign(false, 0, 0, false)); - - // Tests insertion of various denormalized numbers with and without round up. - EXPECT_EQ(static_cast(ldexp(1.f, -149)), set_from_sign(false, -149, 0, false)); - EXPECT_EQ(static_cast(ldexp(1.f, -149)), set_from_sign(false, -149, 0, true)); - EXPECT_EQ(0.f, set_from_sign(false, -150, 1, false)); - EXPECT_EQ(static_cast(ldexp(1.f, -149)), set_from_sign(false, -150, 1, true)); - - EXPECT_EQ(ldexp(1.0f, -127), set_from_sign(false, -127, 0, false)); - EXPECT_EQ(ldexp(1.0f, -128), set_from_sign(false, -128, 0, false)); - EXPECT_EQ(float_fractions({0, 1, 2, 5}), - set_from_sign(false, 0, bits_set({0, 1, 4}), false)); - EXPECT_EQ(ldexp(float_fractions({0, 1, 2, 5}), -32), - set_from_sign(false, -32, bits_set({0, 1, 4}), false)); - EXPECT_EQ(ldexp(float_fractions({0, 1, 2, 5}), -128), - set_from_sign(false, -128, bits_set({0, 1, 4}), false)); - - // The negative cases from above. - EXPECT_EQ(-1.f, set_from_sign(true, 0, 0, false)); - EXPECT_EQ(-ldexp(1.0, -127), set_from_sign(true, -127, 0, false)); - EXPECT_EQ(-ldexp(1.0, -128), set_from_sign(true, -128, 0, false)); - EXPECT_EQ(-float_fractions({0, 1, 2, 5}), - set_from_sign(true, 0, bits_set({0, 1, 4}), false)); - EXPECT_EQ(-ldexp(float_fractions({0, 1, 2, 5}), -32), - set_from_sign(true, -32, bits_set({0, 1, 4}), false)); - EXPECT_EQ(-ldexp(float_fractions({0, 1, 2, 5}), -128), - set_from_sign(true, -128, bits_set({0, 1, 4}), false)); -} - -TEST(HexFloatOperationTests, NonRounding) { - // Rounding from 32-bit hex-float to 32-bit hex-float should be trivial, - // except in the denorm case which is a bit more complex. - using HF = spvutils::HexFloat>; - bool carry_bit = false; - - spvutils::round_direction rounding[] = { - spvutils::kRoundToZero, - spvutils::kRoundToNearestEven, - spvutils::kRoundToPositiveInfinity, - spvutils::kRoundToNegativeInfinity}; - - // Everything fits, so this should be straight-forward - for (spvutils::round_direction round : rounding) { - EXPECT_EQ(bits_set({}), HF(0.f).getRoundedNormalizedSignificand( - round, &carry_bit)); - EXPECT_FALSE(carry_bit); - - EXPECT_EQ(bits_set({0}), - HF(float_fractions({0, 1})) - .getRoundedNormalizedSignificand(round, &carry_bit)); - EXPECT_FALSE(carry_bit); - - EXPECT_EQ(bits_set({1, 3}), - HF(float_fractions({0, 2, 4})) - .getRoundedNormalizedSignificand(round, &carry_bit)); - EXPECT_FALSE(carry_bit); - - EXPECT_EQ( - bits_set({0, 1, 4}), - HF(static_cast(-ldexp(float_fractions({0, 1, 2, 5}), -128))) - .getRoundedNormalizedSignificand(round, &carry_bit)); - EXPECT_FALSE(carry_bit); - - EXPECT_EQ( - bits_set({0, 1, 4, 22}), - HF(static_cast(float_fractions({0, 1, 2, 5, 23}))) - .getRoundedNormalizedSignificand(round, &carry_bit)); - EXPECT_FALSE(carry_bit); - } -} - -struct RoundSignificandCase { - float source_float; - std::pair expected_results; - spvutils::round_direction round; -}; - -using HexFloatRoundTest = - ::testing::TestWithParam; - -TEST_P(HexFloatRoundTest, RoundDownToFP16) { - using HF = spvutils::HexFloat>; - using HF16 = spvutils::HexFloat>; - - HF input_value(GetParam().source_float); - bool carry_bit = false; - EXPECT_EQ(GetParam().expected_results.first, - input_value.getRoundedNormalizedSignificand( - GetParam().round, &carry_bit)); - EXPECT_EQ(carry_bit, GetParam().expected_results.second); -} - -// clang-format off -INSTANTIATE_TEST_SUITE_P(F32ToF16, HexFloatRoundTest, - ::testing::ValuesIn(std::vector( - { - {float_fractions({0}), std::make_pair(half_bits_set({}), false), spvutils::kRoundToZero}, - {float_fractions({0}), std::make_pair(half_bits_set({}), false), spvutils::kRoundToNearestEven}, - {float_fractions({0}), std::make_pair(half_bits_set({}), false), spvutils::kRoundToPositiveInfinity}, - {float_fractions({0}), std::make_pair(half_bits_set({}), false), spvutils::kRoundToNegativeInfinity}, - {float_fractions({0, 1}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToZero}, - - {float_fractions({0, 1, 11}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToZero}, - {float_fractions({0, 1, 11}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToPositiveInfinity}, - {float_fractions({0, 1, 11}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToNegativeInfinity}, - {float_fractions({0, 1, 11}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToNearestEven}, - - {float_fractions({0, 1, 10, 11}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToZero}, - {float_fractions({0, 1, 10, 11}), std::make_pair(half_bits_set({0, 8}), false), spvutils::kRoundToPositiveInfinity}, - {float_fractions({0, 1, 10, 11}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToNegativeInfinity}, - {float_fractions({0, 1, 10, 11}), std::make_pair(half_bits_set({0, 8}), false), spvutils::kRoundToNearestEven}, - - {float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToZero}, - {float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToPositiveInfinity}, - {float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToNegativeInfinity}, - {float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToNearestEven}, - - {-float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToZero}, - {-float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToPositiveInfinity}, - {-float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToNegativeInfinity}, - {-float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToNearestEven}, - - {float_fractions({0, 1, 11, 22}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToZero}, - {float_fractions({0, 1, 11, 22}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToPositiveInfinity}, - {float_fractions({0, 1, 11, 22}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToNegativeInfinity}, - {float_fractions({0, 1, 11, 22}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToNearestEven}, - - // Carries - {float_fractions({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}), std::make_pair(half_bits_set({0, 1, 2, 3, 4, 5, 6, 7, 8, 9}), false), spvutils::kRoundToZero}, - {float_fractions({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}), std::make_pair(half_bits_set({}), true), spvutils::kRoundToPositiveInfinity}, - {float_fractions({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}), std::make_pair(half_bits_set({0, 1, 2, 3, 4, 5, 6, 7, 8, 9}), false), spvutils::kRoundToNegativeInfinity}, - {float_fractions({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}), std::make_pair(half_bits_set({}), true), spvutils::kRoundToNearestEven}, - - // Cases where original number was denorm. Note: this should have no effect - // the number is pre-normalized. - {static_cast(ldexp(float_fractions({0, 1, 11, 13}), -128)), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToZero}, - {static_cast(ldexp(float_fractions({0, 1, 11, 13}), -129)), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToPositiveInfinity}, - {static_cast(ldexp(float_fractions({0, 1, 11, 13}), -131)), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToNegativeInfinity}, - {static_cast(ldexp(float_fractions({0, 1, 11, 13}), -130)), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToNearestEven}, - }))); -// clang-format on - -struct UpCastSignificandCase { - uint16_t source_half; - uint32_t expected_result; -}; - -using HexFloatRoundUpSignificandTest = - ::testing::TestWithParam; -TEST_P(HexFloatRoundUpSignificandTest, Widening) { - using HF = spvutils::HexFloat>; - using HF16 = spvutils::HexFloat>; - bool carry_bit = false; - - spvutils::round_direction rounding[] = { - spvutils::kRoundToZero, - spvutils::kRoundToNearestEven, - spvutils::kRoundToPositiveInfinity, - spvutils::kRoundToNegativeInfinity}; - - // Everything fits, so everything should just be bit-shifts. - for (spvutils::round_direction round : rounding) { - carry_bit = false; - HF16 input_value(GetParam().source_half); - EXPECT_EQ( - GetParam().expected_result, - input_value.getRoundedNormalizedSignificand(round, &carry_bit)) - << std::hex << "0x" - << input_value.getRoundedNormalizedSignificand(round, &carry_bit) - << " 0x" << GetParam().expected_result; - EXPECT_FALSE(carry_bit); - } -} - -INSTANTIATE_TEST_SUITE_P(F16toF32, HexFloatRoundUpSignificandTest, - // 0xFC00 of the source 16-bit hex value cover the sign and the exponent. - // They are ignored for this test. - ::testing::ValuesIn(std::vector( - { - {0x3F00, 0x600000}, - {0x0F00, 0x600000}, - {0x0F01, 0x602000}, - {0x0FFF, 0x7FE000}, - }))); - -struct DownCastTest { - float source_float; - uint16_t expected_half; - std::vector directions; -}; - -std::string get_round_text(spvutils::round_direction direction) { -#define CASE(round_direction) \ - case round_direction: \ - return #round_direction - - switch (direction) { - CASE(spvutils::kRoundToZero); - CASE(spvutils::kRoundToPositiveInfinity); - CASE(spvutils::kRoundToNegativeInfinity); - CASE(spvutils::kRoundToNearestEven); - } -#undef CASE - return ""; -} - -using HexFloatFP32To16Tests = ::testing::TestWithParam; - -TEST_P(HexFloatFP32To16Tests, NarrowingCasts) { - using HF = spvutils::HexFloat>; - using HF16 = spvutils::HexFloat>; - HF f(GetParam().source_float); - for (auto round : GetParam().directions) { - HF16 half(0); - f.castTo(half, round); - EXPECT_EQ(GetParam().expected_half, half.value().getAsFloat().get_value()) - << get_round_text(round) << " " << std::hex - << spvutils::BitwiseCast(GetParam().source_float) - << " cast to: " << half.value().getAsFloat().get_value(); - } -} - -const uint16_t positive_infinity = 0x7C00; -const uint16_t negative_infinity = 0xFC00; - -INSTANTIATE_TEST_SUITE_P(F32ToF16, HexFloatFP32To16Tests, - ::testing::ValuesIn(std::vector( - { - // Exactly representable as half. - {0.f, 0x0, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, - {-0.f, 0x8000, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, - {1.0f, 0x3C00, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, - {-1.0f, 0xBC00, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, - - {float_fractions({0, 1, 10}) , 0x3E01, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, - {-float_fractions({0, 1, 10}) , 0xBE01, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, - {static_cast(ldexp(float_fractions({0, 1, 10}), 3)), 0x4A01, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, - {static_cast(-ldexp(float_fractions({0, 1, 10}), 3)), 0xCA01, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, - - - // Underflow - {static_cast(ldexp(1.0f, -25)), 0x0, {spvutils::kRoundToZero, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, - {static_cast(ldexp(1.0f, -25)), 0x1, {spvutils::kRoundToPositiveInfinity}}, - {static_cast(-ldexp(1.0f, -25)), 0x8000, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNearestEven}}, - {static_cast(-ldexp(1.0f, -25)), 0x8001, {spvutils::kRoundToNegativeInfinity}}, - {static_cast(ldexp(1.0f, -24)), 0x1, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, - - // Overflow - {static_cast(ldexp(1.0f, 16)), positive_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, - {static_cast(ldexp(1.0f, 18)), positive_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, - {static_cast(ldexp(1.3f, 16)), positive_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, - {static_cast(-ldexp(1.0f, 16)), negative_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, - {static_cast(-ldexp(1.0f, 18)), negative_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, - {static_cast(-ldexp(1.3f, 16)), negative_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, - - // Transfer of Infinities - {std::numeric_limits::infinity(), positive_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, - {-std::numeric_limits::infinity(), negative_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, - - // Nans are below because we cannot test for equality. - }))); - -struct UpCastCase{ - uint16_t source_half; - float expected_float; -}; - -using HexFloatFP16To32Tests = ::testing::TestWithParam; -TEST_P(HexFloatFP16To32Tests, WideningCasts) { - using HF = spvutils::HexFloat>; - using HF16 = spvutils::HexFloat>; - HF16 f(GetParam().source_half); - - spvutils::round_direction rounding[] = { - spvutils::kRoundToZero, - spvutils::kRoundToNearestEven, - spvutils::kRoundToPositiveInfinity, - spvutils::kRoundToNegativeInfinity}; - - // Everything fits, so everything should just be bit-shifts. - for (spvutils::round_direction round : rounding) { - HF flt(0.f); - f.castTo(flt, round); - EXPECT_EQ(GetParam().expected_float, flt.value().getAsFloat()) - << get_round_text(round) << " " << std::hex - << spvutils::BitwiseCast(GetParam().source_half) - << " cast to: " << flt.value().getAsFloat(); - } -} - -INSTANTIATE_TEST_SUITE_P(F16ToF32, HexFloatFP16To32Tests, - ::testing::ValuesIn(std::vector( - { - {0x0000, 0.f}, - {0x8000, -0.f}, - {0x3C00, 1.0f}, - {0xBC00, -1.0f}, - {0x3F00, float_fractions({0, 1, 2})}, - {0xBF00, -float_fractions({0, 1, 2})}, - {0x3F01, float_fractions({0, 1, 2, 10})}, - {0xBF01, -float_fractions({0, 1, 2, 10})}, - - // denorm - {0x0001, static_cast(ldexp(1.0, -24))}, - {0x0002, static_cast(ldexp(1.0, -23))}, - {0x8001, static_cast(-ldexp(1.0, -24))}, - {0x8011, static_cast(-ldexp(1.0, -20) + -ldexp(1.0, -24))}, - - // inf - {0x7C00, std::numeric_limits::infinity()}, - {0xFC00, -std::numeric_limits::infinity()}, - }))); - -TEST(HexFloatOperationTests, NanTests) { - using HF = spvutils::HexFloat>; - using HF16 = spvutils::HexFloat>; - spvutils::round_direction rounding[] = { - spvutils::kRoundToZero, - spvutils::kRoundToNearestEven, - spvutils::kRoundToPositiveInfinity, - spvutils::kRoundToNegativeInfinity}; - - // Everything fits, so everything should just be bit-shifts. - for (spvutils::round_direction round : rounding) { - HF16 f16(0); - HF f(0.f); - HF(std::numeric_limits::quiet_NaN()).castTo(f16, round); - EXPECT_TRUE(f16.value().isNan()); - HF(std::numeric_limits::signaling_NaN()).castTo(f16, round); - EXPECT_TRUE(f16.value().isNan()); - - HF16(0x7C01).castTo(f, round); - EXPECT_TRUE(f.value().isNan()); - HF16(0x7C11).castTo(f, round); - EXPECT_TRUE(f.value().isNan()); - HF16(0xFC01).castTo(f, round); - EXPECT_TRUE(f.value().isNan()); - HF16(0x7C10).castTo(f, round); - EXPECT_TRUE(f.value().isNan()); - HF16(0xFF00).castTo(f, round); - EXPECT_TRUE(f.value().isNan()); - } -} - -// A test case for parsing good and bad HexFloat> literals. -template -struct FloatParseCase { - std::string literal; - bool negate_value; - bool expect_success; - HexFloat> expected_value; -}; - -using ParseNormalFloatTest = ::testing::TestWithParam>; - -TEST_P(ParseNormalFloatTest, Samples) { - std::stringstream input(GetParam().literal); - HexFloat> parsed_value(0.0f); - ParseNormalFloat(input, GetParam().negate_value, parsed_value); - EXPECT_NE(GetParam().expect_success, input.fail()) - << " literal: " << GetParam().literal - << " negate: " << GetParam().negate_value; - if (GetParam().expect_success) { - EXPECT_THAT(parsed_value.value(), Eq(GetParam().expected_value.value())) - << " literal: " << GetParam().literal - << " negate: " << GetParam().negate_value; - } -} - -// Returns a FloatParseCase with expected failure. -template -FloatParseCase BadFloatParseCase(std::string literal, bool negate_value, - T expected_value) { - HexFloat> proxy_expected_value(expected_value); - return FloatParseCase{literal, negate_value, false, proxy_expected_value}; -} - -// Returns a FloatParseCase that should successfully parse to a given value. -template -FloatParseCase GoodFloatParseCase(std::string literal, bool negate_value, - T expected_value) { - HexFloat> proxy_expected_value(expected_value); - return FloatParseCase{literal, negate_value, true, proxy_expected_value}; -} - -INSTANTIATE_TEST_SUITE_P( - FloatParse, ParseNormalFloatTest, - ::testing::ValuesIn(std::vector>{ - // Failing cases due to trivially incorrect syntax. - BadFloatParseCase("abc", false, 0.0f), - BadFloatParseCase("abc", true, 0.0f), - - // Valid cases. - GoodFloatParseCase("0", false, 0.0f), - GoodFloatParseCase("0.0", false, 0.0f), - GoodFloatParseCase("-0.0", false, -0.0f), - GoodFloatParseCase("2.0", false, 2.0f), - GoodFloatParseCase("-2.0", false, -2.0f), - GoodFloatParseCase("+2.0", false, 2.0f), - // Cases with negate_value being true. - GoodFloatParseCase("0.0", true, -0.0f), - GoodFloatParseCase("2.0", true, -2.0f), - - // When negate_value is true, we should not accept a - // leading minus or plus. - BadFloatParseCase("-0.0", true, 0.0f), - BadFloatParseCase("-2.0", true, 0.0f), - BadFloatParseCase("+0.0", true, 0.0f), - BadFloatParseCase("+2.0", true, 0.0f), - - // Overflow is an error for 32-bit float parsing. - BadFloatParseCase("1e40", false, FLT_MAX), - BadFloatParseCase("1e40", true, -FLT_MAX), - BadFloatParseCase("-1e40", false, -FLT_MAX), - // We can't have -1e40 and negate_value == true since - // that represents an original case of "--1e40" which - // is invalid. - })); - -using ParseNormalFloat16Test = - ::testing::TestWithParam>; - -TEST_P(ParseNormalFloat16Test, Samples) { - std::stringstream input(GetParam().literal); - HexFloat> parsed_value(0); - ParseNormalFloat(input, GetParam().negate_value, parsed_value); - EXPECT_NE(GetParam().expect_success, input.fail()) - << " literal: " << GetParam().literal - << " negate: " << GetParam().negate_value; - if (GetParam().expect_success) { - EXPECT_THAT(parsed_value.value(), Eq(GetParam().expected_value.value())) - << " literal: " << GetParam().literal - << " negate: " << GetParam().negate_value; - } -} - -INSTANTIATE_TEST_SUITE_P( - Float16Parse, ParseNormalFloat16Test, - ::testing::ValuesIn(std::vector>{ - // Failing cases due to trivially incorrect syntax. - BadFloatParseCase("abc", false, uint16_t{0}), - BadFloatParseCase("abc", true, uint16_t{0}), - - // Valid cases. - GoodFloatParseCase("0", false, uint16_t{0}), - GoodFloatParseCase("0.0", false, uint16_t{0}), - GoodFloatParseCase("-0.0", false, uint16_t{0x8000}), - GoodFloatParseCase("2.0", false, uint16_t{0x4000}), - GoodFloatParseCase("-2.0", false, uint16_t{0xc000}), - GoodFloatParseCase("+2.0", false, uint16_t{0x4000}), - // Cases with negate_value being true. - GoodFloatParseCase("0.0", true, uint16_t{0x8000}), - GoodFloatParseCase("2.0", true, uint16_t{0xc000}), - - // When negate_value is true, we should not accept a leading minus or - // plus. - BadFloatParseCase("-0.0", true, uint16_t{0}), - BadFloatParseCase("-2.0", true, uint16_t{0}), - BadFloatParseCase("+0.0", true, uint16_t{0}), - BadFloatParseCase("+2.0", true, uint16_t{0}), - })); - -// A test case for detecting infinities. -template -struct OverflowParseCase { - std::string input; - bool expect_success; - T expected_value; -}; - -using FloatProxyParseOverflowFloatTest = - ::testing::TestWithParam>; - -TEST_P(FloatProxyParseOverflowFloatTest, Sample) { - std::istringstream input(GetParam().input); - HexFloat> value(0.0f); - input >> value; - EXPECT_NE(GetParam().expect_success, input.fail()); - if (GetParam().expect_success) { - EXPECT_THAT(value.value().getAsFloat(), GetParam().expected_value); - } -} - -INSTANTIATE_TEST_SUITE_P( - FloatOverflow, FloatProxyParseOverflowFloatTest, - ::testing::ValuesIn(std::vector>({ - {"0", true, 0.0f}, - {"0.0", true, 0.0f}, - {"1.0", true, 1.0f}, - {"1e38", true, 1e38f}, - {"-1e38", true, -1e38f}, - {"1e40", false, FLT_MAX}, - {"-1e40", false, -FLT_MAX}, - {"1e400", false, FLT_MAX}, - {"-1e400", false, -FLT_MAX}, - }))); - -using FloatProxyParseOverflowDoubleTest = - ::testing::TestWithParam>; - -TEST_P(FloatProxyParseOverflowDoubleTest, Sample) { - std::istringstream input(GetParam().input); - HexFloat> value(0.0); - input >> value; - EXPECT_NE(GetParam().expect_success, input.fail()); - if (GetParam().expect_success) { - EXPECT_THAT(value.value().getAsFloat(), Eq(GetParam().expected_value)); - } -} - -INSTANTIATE_TEST_SUITE_P( - DoubleOverflow, FloatProxyParseOverflowDoubleTest, - ::testing::ValuesIn(std::vector>({ - {"0", true, 0.0}, - {"0.0", true, 0.0}, - {"1.0", true, 1.0}, - {"1e38", true, 1e38}, - {"-1e38", true, -1e38}, - {"1e40", true, 1e40}, - {"-1e40", true, -1e40}, - {"1e400", false, DBL_MAX}, - {"-1e400", false, -DBL_MAX}, - }))); - -using FloatProxyParseOverflowFloat16Test = - ::testing::TestWithParam>; - -TEST_P(FloatProxyParseOverflowFloat16Test, Sample) { - std::istringstream input(GetParam().input); - HexFloat> value(0); - input >> value; - EXPECT_NE(GetParam().expect_success, input.fail()) << " literal: " - << GetParam().input; - if (GetParam().expect_success) { - EXPECT_THAT(value.value().data(), Eq(GetParam().expected_value)) - << " literal: " << GetParam().input; - } -} - -INSTANTIATE_TEST_SUITE_P( - Float16Overflow, FloatProxyParseOverflowFloat16Test, - ::testing::ValuesIn(std::vector>({ - {"0", true, uint16_t{0}}, - {"0.0", true, uint16_t{0}}, - {"1.0", true, uint16_t{0x3c00}}, - // Overflow for 16-bit float is an error, and returns max or - // lowest value. - {"1e38", false, uint16_t{0x7bff}}, - {"1e40", false, uint16_t{0x7bff}}, - {"1e400", false, uint16_t{0x7bff}}, - {"-1e38", false, uint16_t{0xfbff}}, - {"-1e40", false, uint16_t{0xfbff}}, - {"-1e400", false, uint16_t{0xfbff}}, - }))); - -TEST(FloatProxy, Max) { - EXPECT_THAT(FloatProxy::max().getAsFloat().get_value(), - Eq(uint16_t{0x7bff})); - EXPECT_THAT(FloatProxy::max().getAsFloat(), - Eq(std::numeric_limits::max())); - EXPECT_THAT(FloatProxy::max().getAsFloat(), - Eq(std::numeric_limits::max())); -} - -TEST(FloatProxy, Lowest) { - EXPECT_THAT(FloatProxy::lowest().getAsFloat().get_value(), - Eq(uint16_t{0xfbff})); - EXPECT_THAT(FloatProxy::lowest().getAsFloat(), - Eq(std::numeric_limits::lowest())); - EXPECT_THAT(FloatProxy::lowest().getAsFloat(), - Eq(std::numeric_limits::lowest())); -} - -// TODO(awoloszyn): Add fp16 tests and HexFloatTraits. -} // anonymous namespace diff --git a/deps/glslang/gtests/Hlsl.FromFile.cpp b/deps/glslang/gtests/Hlsl.FromFile.cpp deleted file mode 100644 index 519be254..00000000 --- a/deps/glslang/gtests/Hlsl.FromFile.cpp +++ /dev/null @@ -1,533 +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. - -#include - -#include "TestFixture.h" - -namespace glslangtest { -namespace { - -struct FileNameEntryPointPair { - const char* fileName; - const char* entryPoint; -}; - -// We are using FileNameEntryPointPair objects as parameters for instantiating -// the template, so the global FileNameAsCustomTestSuffix() won't work since -// it assumes std::string as parameters. Thus, an overriding one here. -std::string FileNameAsCustomTestSuffix( - const ::testing::TestParamInfo& info) { - std::string name = info.param.fileName; - // A valid test case suffix cannot have '.' and '-' inside. - std::replace(name.begin(), name.end(), '.', '_'); - std::replace(name.begin(), name.end(), '-', '_'); - return name; -} - -using HlslCompileTest = GlslangTest<::testing::TestWithParam>; -using HlslVulkan1_1CompileTest = GlslangTest<::testing::TestWithParam>; -using HlslSpv1_6CompileTest = GlslangTest<::testing::TestWithParam>; -using HlslCompileAndFlattenTest = GlslangTest<::testing::TestWithParam>; -using HlslLegalizeTest = GlslangTest<::testing::TestWithParam>; -using HlslDebugTest = GlslangTest<::testing::TestWithParam>; -using HlslDX9CompatibleTest = GlslangTest<::testing::TestWithParam>; -using HlslLegalDebugTest = GlslangTest<::testing::TestWithParam>; - -// Compiling HLSL to pre-legalized SPIR-V under Vulkan semantics. Expected -// to successfully generate both AST and SPIR-V. -TEST_P(HlslCompileTest, FromFile) -{ - loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam().fileName, - Source::HLSL, Semantics::Vulkan, glslang::EShTargetVulkan_1_0, glslang::EShTargetSpv_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, glslang::EShTargetSpv_1_3, - Target::BothASTAndSpv, true, GetParam().entryPoint); -} - -TEST_P(HlslSpv1_6CompileTest, FromFile) -{ - loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam().fileName, - Source::HLSL, Semantics::Vulkan, glslang::EShTargetVulkan_1_3, glslang::EShTargetSpv_1_6, - Target::BothASTAndSpv, true, GetParam().entryPoint); -} - -TEST_P(HlslCompileAndFlattenTest, FromFile) -{ - loadFileCompileFlattenUniformsAndCheck(GlobalTestSettings.testRoot, GetParam().fileName, - Source::HLSL, Semantics::Vulkan, - Target::BothASTAndSpv, GetParam().entryPoint); -} - -// Compiling HLSL to legal SPIR-V under Vulkan semantics. Expected to -// successfully generate SPIR-V. -TEST_P(HlslLegalizeTest, FromFile) -{ - loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam().fileName, - Source::HLSL, Semantics::Vulkan, glslang::EShTargetVulkan_1_0, glslang::EShTargetSpv_1_0, - Target::Spv, true, GetParam().entryPoint, - "/baseLegalResults/", true); -} - -// Compiling HLSL to pre-legalized SPIR-V. Expected to successfully generate -// SPIR-V with debug instructions, particularly line info. -TEST_P(HlslDebugTest, FromFile) -{ - loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam().fileName, - Source::HLSL, Semantics::Vulkan, glslang::EShTargetVulkan_1_0, glslang::EShTargetSpv_1_0, - Target::Spv, true, GetParam().entryPoint, - "/baseResults/", false, true); -} - -TEST_P(HlslDX9CompatibleTest, FromFile) -{ - loadFileCompileAndCheckWithOptions(GlobalTestSettings.testRoot, GetParam().fileName, Source::HLSL, - Semantics::Vulkan, glslang::EShTargetVulkan_1_0, glslang::EShTargetSpv_1_0, - Target::BothASTAndSpv, true, - GetParam().entryPoint, "/baseResults/", - EShMessages::EShMsgHlslDX9Compatible); -} - -// Compiling HLSL to legalized SPIR-V with debug instructions. Expected to -// successfully generate SPIR-V with debug instructions preserved through -// legalization, particularly line info. -TEST_P(HlslLegalDebugTest, FromFile) -{ - loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam().fileName, - Source::HLSL, Semantics::Vulkan, glslang::EShTargetVulkan_1_0, glslang::EShTargetSpv_1_0, - Target::Spv, true, GetParam().entryPoint, - "/baseResults/", true, true); -} - -// clang-format off -INSTANTIATE_TEST_SUITE_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.earlydepthstencil.frag", "main"}, - {"hlsl.emptystructreturn.frag", "main"}, - {"hlsl.emptystructreturn.vert", "main"}, - {"hlsl.emptystruct.init.vert", "main"}, - {"hlsl.entry-in.frag", "PixelShaderFunction"}, - {"hlsl.entry-out.frag", "PixelShaderFunction"}, - {"hlsl.fraggeom.frag", "main"}, - {"hlsl.float1.frag", "PixelShaderFunction"}, - {"hlsl.float4.frag", "PixelShaderFunction"}, - {"hlsl.flatten.return.frag", "main"}, - {"hlsl.flattenOpaque.frag", "main"}, - {"hlsl.flattenOpaqueInit.vert", "main"}, - {"hlsl.flattenOpaqueInitMix.vert", "main"}, - {"hlsl.flattenSubset.frag", "main"}, - {"hlsl.flattenSubset2.frag", "main"}, - {"hlsl.forLoop.frag", "PixelShaderFunction"}, - {"hlsl.gather.array.dx10.frag", "main"}, - {"hlsl.gather.basic.dx10.frag", "main"}, - {"hlsl.gather.basic.dx10.vert", "main"}, - {"hlsl.gather.offset.dx10.frag", "main"}, - {"hlsl.gather.offsetarray.dx10.frag", "main"}, - {"hlsl.gathercmpRGBA.offset.dx10.frag", "main"}, - {"hlsl.gatherRGBA.array.dx10.frag", "main"}, - {"hlsl.gatherRGBA.basic.dx10.frag", "main"}, - {"hlsl.gatherRGBA.offset.dx10.frag", "main"}, - {"hlsl.gatherRGBA.offsetarray.dx10.frag", "main"}, - {"hlsl.getdimensions.dx10.frag", "main"}, - {"hlsl.getdimensions.rw.dx10.frag", "main"}, - {"hlsl.getdimensions.dx10.vert", "main"}, - {"hlsl.getsampleposition.dx10.frag", "main"}, - {"hlsl.global-const-init.frag", "main"}, - {"hlsl.gs-hs-mix.tesc", "HSMain"}, - {"hlsl.domain.1.tese", "main"}, - {"hlsl.domain.2.tese", "main"}, - {"hlsl.domain.3.tese", "main"}, - {"hlsl.function.frag", "main"}, - {"hlsl.hull.1.tesc", "main"}, - {"hlsl.hull.2.tesc", "main"}, - {"hlsl.hull.3.tesc", "main"}, - {"hlsl.hull.4.tesc", "main"}, - {"hlsl.hull.5.tesc", "main"}, - {"hlsl.hull.6.tesc", "main"}, - {"hlsl.hull.void.tesc", "main"}, - {"hlsl.hull.ctrlpt-1.tesc", "main"}, - {"hlsl.hull.ctrlpt-2.tesc", "main"}, - {"hlsl.format.rwtexture.frag", "main"}, - {"hlsl.groupid.comp", "main"}, - {"hlsl.identifier.sample.frag", "main"}, - {"hlsl.if.frag", "PixelShaderFunction"}, - {"hlsl.imageload-subvec4.comp", "main"}, - {"hlsl.imagefetch-subvec4.comp", "main"}, - {"hlsl.implicitBool.frag", "main"}, - {"hlsl.inf.vert", "main"}, - {"hlsl.inoutquals.frag", "main"}, - {"hlsl.inoutquals.negative.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.d3dcolortoubyte4.frag", "main"}, - {"hlsl.intrinsics.double.frag", "PixelShaderFunction"}, - {"hlsl.intrinsics.f1632.frag", "main"}, - {"hlsl.intrinsics.f3216.frag", "main"}, - {"hlsl.intrinsics.frag", "main"}, - {"hlsl.intrinsic.frexp.frag", "main"}, - {"hlsl.intrinsics.lit.frag", "PixelShaderFunction"}, - {"hlsl.intrinsics.negative.comp", "ComputeShaderFunction"}, - {"hlsl.intrinsics.negative.frag", "PixelShaderFunction"}, - {"hlsl.intrinsics.negative.vert", "VertexShaderFunction"}, - {"hlsl.intrinsics.promote.frag", "main"}, - {"hlsl.intrinsics.promote.down.frag", "main"}, - {"hlsl.intrinsics.promote.outputs.frag", "main"}, - {"hlsl.layout.frag", "main"}, - {"hlsl.layoutOverride.vert", "main"}, - {"hlsl.load.2dms.dx10.frag", "main"}, - {"hlsl.load.array.dx10.frag", "main"}, - {"hlsl.load.basic.dx10.frag", "main"}, - {"hlsl.load.basic.dx10.vert", "main"}, - {"hlsl.load.buffer.dx10.frag", "main"}, - {"hlsl.load.buffer.float.dx10.frag", "main"}, - {"hlsl.load.rwbuffer.dx10.frag", "main"}, - {"hlsl.load.rwtexture.dx10.frag", "main"}, - {"hlsl.load.rwtexture.array.dx10.frag", "main"}, - {"hlsl.load.offset.dx10.frag", "main"}, - {"hlsl.load.offsetarray.dx10.frag", "main"}, - {"hlsl.localStructuredBuffer.comp", "main"}, - {"hlsl.logical.binary.frag", "main"}, - {"hlsl.logical.binary.vec.frag", "main"}, - {"hlsl.logicalConvert.frag", "main"}, - {"hlsl.logical.unary.frag", "main"}, - {"hlsl.loopattr.frag", "main"}, - {"hlsl.matpack-pragma.frag", "main"}, - {"hlsl.matpack-pragma-global.frag", "main"}, - {"hlsl.mip.operator.frag", "main"}, - {"hlsl.mip.negative.frag", "main"}, - {"hlsl.mip.negative2.frag", "main"}, - {"hlsl.namespace.frag", "main"}, - {"hlsl.nonint-index.frag", "main"}, - {"hlsl.matNx1.frag", "main"}, - {"hlsl.matpack-1.frag", "main"}, - {"hlsl.matrixSwizzle.vert", "ShaderFunction"}, - {"hlsl.memberFunCall.frag", "main"}, - {"hlsl.mintypes.frag", "main"}, - {"hlsl.mul-truncate.frag", "main"}, - {"hlsl.multiEntry.vert", "RealEntrypoint"}, - {"hlsl.multiReturn.frag", "main"}, - {"hlsl.matrixindex.frag", "main"}, - {"hlsl.nonstaticMemberFunction.frag", "main"}, - {"hlsl.numericsuffixes.frag", "main"}, - {"hlsl.numthreads.comp", "main_aux2"}, - {"hlsl.overload.frag", "PixelShaderFunction"}, - {"hlsl.opaque-type-bug.frag", "main"}, - {"hlsl.params.default.frag", "main"}, - {"hlsl.params.default.negative.frag", "main"}, - {"hlsl.partialInit.frag", "PixelShaderFunction"}, - {"hlsl.partialFlattenLocal.vert", "main"}, - {"hlsl.PointSize.geom", "main"}, - {"hlsl.PointSize.vert", "main"}, - {"hlsl.pp.vert", "main"}, - {"hlsl.pp.line.frag", "main"}, - {"hlsl.precise.frag", "main"}, - {"hlsl.printf.comp", "main"}, - {"hlsl.promote.atomic.frag", "main"}, - {"hlsl.promote.binary.frag", "main"}, - {"hlsl.promote.vec1.frag", "main"}, - {"hlsl.promotions.frag", "main"}, - {"hlsl.round.dx10.frag", "main"}, - {"hlsl.rw.atomics.frag", "main"}, - {"hlsl.rw.bracket.frag", "main"}, - {"hlsl.rw.register.frag", "main"}, - {"hlsl.rw.scalar.bracket.frag", "main"}, - {"hlsl.rw.swizzle.frag", "main"}, - {"hlsl.rw.vec2.bracket.frag", "main"}, - {"hlsl.sample.array.dx10.frag", "main"}, - {"hlsl.sample.basic.dx10.frag", "main"}, - {"hlsl.sample.offset.dx10.frag", "main"}, - {"hlsl.sample.offsetarray.dx10.frag", "main"}, - {"hlsl.samplebias.array.dx10.frag", "main"}, - {"hlsl.samplebias.basic.dx10.frag", "main"}, - {"hlsl.samplebias.offset.dx10.frag", "main"}, - {"hlsl.samplebias.offsetarray.dx10.frag", "main"}, - {"hlsl.samplecmp.array.dx10.frag", "main"}, - {"hlsl.samplecmp.basic.dx10.frag", "main"}, - {"hlsl.samplecmp.dualmode.frag", "main"}, - {"hlsl.samplecmp.offset.dx10.frag", "main"}, - {"hlsl.samplecmp.offsetarray.dx10.frag", "main"}, - {"hlsl.samplecmp.negative.frag", "main"}, - {"hlsl.samplecmp.negative2.frag", "main"}, - {"hlsl.samplecmplevelzero.array.dx10.frag", "main"}, - {"hlsl.samplecmplevelzero.basic.dx10.frag", "main"}, - {"hlsl.samplecmplevelzero.offset.dx10.frag", "main"}, - {"hlsl.samplecmplevelzero.offsetarray.dx10.frag", "main"}, - {"hlsl.samplegrad.array.dx10.frag", "main"}, - {"hlsl.samplegrad.basic.dx10.frag", "main"}, - {"hlsl.samplegrad.basic.dx10.vert", "main"}, - {"hlsl.samplegrad.offset.dx10.frag", "main"}, - {"hlsl.samplegrad.offsetarray.dx10.frag", "main"}, - {"hlsl.samplelevel.array.dx10.frag", "main"}, - {"hlsl.samplelevel.basic.dx10.frag", "main"}, - {"hlsl.samplelevel.basic.dx10.vert", "main"}, - {"hlsl.samplelevel.offset.dx10.frag", "main"}, - {"hlsl.samplelevel.offsetarray.dx10.frag", "main"}, - {"hlsl.sample.sub-vec4.dx10.frag", "main"}, - {"hlsl.scalar-length.frag", "main"}, - {"hlsl.scalarCast.vert", "main"}, - {"hlsl.semicolons.frag", "main"}, - {"hlsl.shapeConv.frag", "main"}, - {"hlsl.shapeConvRet.frag", "main"}, - {"hlsl.singleArgIntPromo.vert", "main"}, - {"hlsl.self_cast.frag", "main"}, - {"hlsl.snorm.uav.comp", "main"}, - {"hlsl.specConstant.frag", "main"}, - {"hlsl.staticMemberFunction.frag", "main"}, - {"hlsl.staticFuncInit.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.structbuffer.rwbyte2.comp", "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.type.type.conversion.all.frag", "main"} - }), - FileNameAsCustomTestSuffix -); -// clang-format on - -// clang-format off -INSTANTIATE_TEST_SUITE_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.type.type.conversion.valid.frag", "main" }, - {"hlsl.int.dot.frag", "main"} - }), - FileNameAsCustomTestSuffix -); -// clang-format on - -// clang-format off -INSTANTIATE_TEST_SUITE_P( - ToSpirv, HlslSpv1_6CompileTest, - ::testing::ValuesIn(std::vector{ - {"hlsl.spv.1.6.discard.frag", "PixelShaderFunction"} - }), - FileNameAsCustomTestSuffix -); -// clang-format on - -// clang-format off -INSTANTIATE_TEST_SUITE_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_SUITE_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.intrinsics.evalfns.frag", "main"}, - {"hlsl.partialFlattenLocal.vert", "main"}, - {"hlsl.partialFlattenMixed.vert", "main"} - }), - FileNameAsCustomTestSuffix -); -// clang-format on -#endif - -// clang-format off -INSTANTIATE_TEST_SUITE_P( - ToSpirv, HlslDebugTest, - ::testing::ValuesIn(std::vector{ - {"hlsl.pp.line2.frag", "MainPs"} - }), - FileNameAsCustomTestSuffix -); - -INSTANTIATE_TEST_SUITE_P( - ToSpirv, HlslDX9CompatibleTest, - ::testing::ValuesIn(std::vector{ - {"hlsl.round.dx9.frag", "main"}, - {"hlsl.sample.dx9.frag", "main"}, - {"hlsl.sample.dx9.vert", "main"}, - }), - FileNameAsCustomTestSuffix -); - -// clang-format off -INSTANTIATE_TEST_SUITE_P( - ToSpirv, HlslLegalDebugTest, - ::testing::ValuesIn(std::vector{ - {"hlsl.pp.line4.frag", "MainPs"} - }), - FileNameAsCustomTestSuffix -); - -// clang-format on - -} // anonymous namespace -} // namespace glslangtest diff --git a/deps/glslang/gtests/Initializer.h b/deps/glslang/gtests/Initializer.h deleted file mode 100644 index b46b3f55..00000000 --- a/deps/glslang/gtests/Initializer.h +++ /dev/null @@ -1,55 +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. - -#ifndef GLSLANG_GTESTS_INITIALIZER_H -#define GLSLANG_GTESTS_INITIALIZER_H - -#include "glslang/Public/ShaderLang.h" - -namespace glslangtest { - -// Initializes glslang on creation, and destroys it on completion. -// This object is expected to be a singleton, so that internal glslang state -// can be correctly handled. -// -class GlslangInitializer { -public: - GlslangInitializer() { glslang::InitializeProcess(); } - - ~GlslangInitializer() { glslang::FinalizeProcess(); } -}; - -} // namespace glslangtest - -#endif // GLSLANG_GTESTS_INITIALIZER_H diff --git a/deps/glslang/gtests/Link.FromFile.Vk.cpp b/deps/glslang/gtests/Link.FromFile.Vk.cpp deleted file mode 100644 index 4db71c2c..00000000 --- a/deps/glslang/gtests/Link.FromFile.Vk.cpp +++ /dev/null @@ -1,133 +0,0 @@ -// -// Copyright (C) 2016-2017 Google, Inc. -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. - -#include - -#include - -#include "TestFixture.h" - -namespace glslangtest { -namespace { - -using LinkTestVulkan = GlslangTest< - ::testing::TestWithParam>>; - -TEST_P(LinkTestVulkan, FromFile) -{ - const auto& fileNames = GetParam(); - const size_t fileCount = fileNames.size(); - const EShMessages controls = DeriveOptions(Source::GLSL, Semantics::Vulkan, Target::AST); - GlslangResult result; - result.validationResult = false; - - // Compile each input shader file. - bool success = true; - std::vector> shaders; - for (size_t i = 0; i < fileCount; ++i) { - std::string contents; - tryLoadFile(GlobalTestSettings.testRoot + "/" + fileNames[i], - "input", &contents); - shaders.emplace_back( - new glslang::TShader(GetShaderStage(GetSuffix(fileNames[i])))); - auto* shader = shaders.back().get(); - shader->setAutoMapLocations(true); - success &= compile(shader, contents, "", controls); - result.shaderResults.push_back( - {fileNames[i], shader->getInfoLog(), shader->getInfoDebugLog()}); - } - - // Link all of them. - glslang::TProgram program; - for (const auto& shader : shaders) program.addShader(shader.get()); - success &= program.link(controls); - result.linkingOutput = program.getInfoLog(); - result.linkingError = program.getInfoDebugLog(); - -#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) - if (success) - program.mapIO(); -#endif - - if (success && (controls & EShMsgSpvRules)) { - spv::SpvBuildLogger logger; - std::vector spirv_binary; - options().disableOptimizer = true; - glslang::GlslangToSpv(*program.getIntermediate(shaders.front()->getStage()), - spirv_binary, &logger, &options()); - - std::ostringstream disassembly_stream; - spv::Parameterize(); - spv::Disassemble(disassembly_stream, spirv_binary); - result.spirvWarningsErrors = logger.getAllMessages(); - result.spirv = disassembly_stream.str(); - result.validationResult = !options().validate || logger.getAllMessages().empty(); - } - - std::ostringstream stream; - outputResultToStream(&stream, result, controls); - - // Check with expected results. - const std::string expectedOutputFname = - GlobalTestSettings.testRoot + "/baseResults/" + fileNames.front() + ".out"; - std::string expectedOutput; - tryLoadFile(expectedOutputFname, "expected output", &expectedOutput); - - checkEqAndUpdateIfRequested(expectedOutput, stream.str(), expectedOutputFname, - result.spirvWarningsErrors); -} - -// clang-format off -INSTANTIATE_TEST_SUITE_P( - Glsl, LinkTestVulkan, - ::testing::ValuesIn(std::vector>({ - {"link1.vk.frag", "link2.vk.frag"}, - {"spv.unit1.frag", "spv.unit2.frag", "spv.unit3.frag"}, - {"link.vk.matchingPC.0.0.frag", "link.vk.matchingPC.0.1.frag", - "link.vk.matchingPC.0.2.frag"}, - {"link.vk.differentPC.0.0.frag", "link.vk.differentPC.0.1.frag", - "link.vk.differentPC.0.2.frag"}, - {"link.vk.differentPC.1.0.frag", "link.vk.differentPC.1.1.frag", - "link.vk.differentPC.1.2.frag"}, - {"link.vk.pcNamingValid.0.0.vert", "link.vk.pcNamingValid.0.1.vert"}, - {"link.vk.pcNamingInvalid.0.0.vert", "link.vk.pcNamingInvalid.0.1.vert"}, - {"link.vk.multiBlocksValid.0.0.vert", "link.vk.multiBlocksValid.0.1.vert"}, - {"link.vk.multiBlocksValid.1.0.geom", "link.vk.multiBlocksValid.1.1.geom"}, - {"link.vk.inconsistentGLPerVertex.0.vert", "link.vk.inconsistentGLPerVertex.0.geom"}, - })) -); -// clang-format on - -} // anonymous namespace -} // namespace glslangtest diff --git a/deps/glslang/gtests/Link.FromFile.cpp b/deps/glslang/gtests/Link.FromFile.cpp deleted file mode 100644 index 9e029fc7..00000000 --- a/deps/glslang/gtests/Link.FromFile.cpp +++ /dev/null @@ -1,117 +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 - -#include - -#include "TestFixture.h" - -namespace glslangtest { -namespace { - -using LinkTest = GlslangTest< - ::testing::TestWithParam>>; - -TEST_P(LinkTest, FromFile) -{ - const auto& fileNames = GetParam(); - const size_t fileCount = fileNames.size(); - const EShMessages controls = DeriveOptions(Source::GLSL, Semantics::OpenGL, Target::AST); - GlslangResult result; - result.validationResult = true; - - // Compile each input shader file. - std::vector> shaders; - for (size_t i = 0; i < fileCount; ++i) { - std::string contents; - tryLoadFile(GlobalTestSettings.testRoot + "/" + fileNames[i], - "input", &contents); - shaders.emplace_back( - new glslang::TShader(GetShaderStage(GetSuffix(fileNames[i])))); - auto* shader = shaders.back().get(); - compile(shader, contents, "", controls); - result.shaderResults.push_back( - {fileNames[i], shader->getInfoLog(), shader->getInfoDebugLog()}); - } - - // Link all of them. - glslang::TProgram program; - for (const auto& shader : shaders) program.addShader(shader.get()); - program.link(controls); - result.linkingOutput = program.getInfoLog(); - result.linkingError = program.getInfoDebugLog(); - - std::ostringstream stream; - outputResultToStream(&stream, result, controls); - - // Check with expected results. - const std::string expectedOutputFname = - GlobalTestSettings.testRoot + "/baseResults/" + fileNames.front() + ".out"; - std::string expectedOutput; - tryLoadFile(expectedOutputFname, "expected output", &expectedOutput); - - checkEqAndUpdateIfRequested(expectedOutput, stream.str(), expectedOutputFname); -} - -// clang-format off -INSTANTIATE_TEST_SUITE_P( - Glsl, LinkTest, - ::testing::ValuesIn(std::vector>({ - {"mains1.frag", "mains2.frag", "noMain1.geom", "noMain2.geom"}, - {"noMain.vert", "mains.frag"}, - {"link1.frag", "link2.frag", "link3.frag"}, - {"recurse1.vert", "recurse1.frag", "recurse2.frag"}, - {"300link.frag"}, - {"300link2.frag"}, - {"300link3.frag"}, - {"empty.frag", "empty2.frag", "empty3.frag"}, - {"150.tesc", "150.tese", "400.tesc", "400.tese", "410.tesc", "420.tesc", "420.tese"}, - {"max_vertices_0.geom"}, - {"contradict_0.geom", "contradict_1.geom"}, - {"es-link1.frag", "es-link2.frag"}, - {"missingBodies.vert"}, - {"link.multiAnonBlocksInvalid.0.0.vert", "link.multiAnonBlocksInvalid.0.1.vert"}, - {"link.multiAnonBlocksValid.0.0.vert", "link.multiAnonBlocksValid.0.1.vert"}, - {"link.multiBlocksInvalid.0.0.vert", "link.multiBlocksInvalid.0.1.vert"}, - {"link.multiBlocksValid.1.0.vert", "link.multiBlocksValid.1.1.vert"}, - {"link.tesselation.vert", "link.tesselation.frag"}, - {"link.tesselation.tese", "link.tesselation.tesc"}, - {"link.redeclareBuiltin.vert", "link.redeclareBuiltin.geom"}, - })) -); -// clang-format on - -} // anonymous namespace -} // namespace glslangtest diff --git a/deps/glslang/gtests/Pp.FromFile.cpp b/deps/glslang/gtests/Pp.FromFile.cpp deleted file mode 100644 index 92b4d249..00000000 --- a/deps/glslang/gtests/Pp.FromFile.cpp +++ /dev/null @@ -1,76 +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 - -#include "TestFixture.h" - -namespace glslangtest { -namespace { - -using PreprocessingTest = GlslangTest<::testing::TestWithParam>; - -TEST_P(PreprocessingTest, FromFile) -{ - loadFilePreprocessAndCheck(GlobalTestSettings.testRoot, GetParam()); -} - -// clang-format off -INSTANTIATE_TEST_SUITE_P( - Glsl, PreprocessingTest, - ::testing::ValuesIn(std::vector({ - "preprocessor.bad_arg.vert", - "preprocessor.cpp_style_line_directive.vert", - "preprocessor.cpp_style___FILE__.vert", - "preprocessor.edge_cases.vert", - "preprocessor.errors.vert", - "preprocessor.extensions.vert", - "preprocessor.function_macro.vert", - "preprocessor.include.enabled.vert", - "preprocessor.include.disabled.vert", - "preprocessor.line.vert", - "preprocessor.line.frag", - "preprocessor.pragma.vert", - "preprocessor.simple.vert", - "preprocessor.success_if_parse_would_fail.vert", - "preprocessor.defined.vert", - "preprocessor.many.endif.vert", - "preprocessor.eof_missing.vert", - })), - FileNameAsCustomTestSuffix -); -// clang-format on - -} // anonymous namespace -} // namespace glslangtest diff --git a/deps/glslang/gtests/README.md b/deps/glslang/gtests/README.md deleted file mode 100644 index c8261cc4..00000000 --- a/deps/glslang/gtests/README.md +++ /dev/null @@ -1,26 +0,0 @@ -Glslang Tests based on the Google Test Framework -================================================ - -This directory contains [Google Test][gtest] based test fixture and test -cases for glslang. - -Apart from typical unit tests, necessary utility methods are added into -the [`GlslangTests`](TestFixture.h) fixture to provide the ability to do -file-based integration tests. Various `*.FromFile.cpp` files lists names -of files containing input shader code in the `Test/` directory. Utility -methods will load the input shader source, compile them, and compare with -the corresponding expected output in the `Test/baseResults/` directory. - -How to run the tests --------------------- - -Please make sure you have a copy of [Google Test][gtest] checked out under -the `External` directory before building. After building, just run the -`ctest` command or the `gtests/glslangtests` binary in your build directory. - -The `gtests/glslangtests` binary also provides an `--update-mode` command -line option, which, if supplied, will overwrite the golden files under -the `Test/baseResults/` directory with real output from that invocation. -This serves as an easy way to update golden files. - -[gtest]: https://github.com/google/googletest diff --git a/deps/glslang/gtests/Remap.FromFile.cpp b/deps/glslang/gtests/Remap.FromFile.cpp deleted file mode 100644 index f0142536..00000000 --- a/deps/glslang/gtests/Remap.FromFile.cpp +++ /dev/null @@ -1,118 +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 - -#include "TestFixture.h" - -namespace glslangtest { -namespace { - -struct RemapTestArgs { - const char* fileName; - const char* entryPoint; - Source sourceLanguage; - unsigned int remapOpts; -}; - -// We are using FileNameEntryPointPair objects as parameters for instantiating -// the template, so the global FileNameAsCustomTestSuffix() won't work since -// it assumes std::string as parameters. Thus, an overriding one here. -std::string FileNameAsCustomTestSuffix( - const ::testing::TestParamInfo& info) { - std::string name = info.param.fileName; - // A valid test case suffix cannot have '.' and '-' inside. - std::replace(name.begin(), name.end(), '.', '_'); - std::replace(name.begin(), name.end(), '-', '_'); - return name; -} - -using RemapTest = GlslangTest<::testing::TestWithParam>; - -// Remapping SPIR-V modules. -TEST_P(RemapTest, FromFile) -{ - if (GetSuffix(GetParam().fileName) == "spv") { - loadFileRemapAndCheck(GlobalTestSettings.testRoot, GetParam().fileName, - GetParam().sourceLanguage, - Semantics::Vulkan, - Target::Spv, - GetParam().remapOpts); - } else { - loadFileCompileRemapAndCheck(GlobalTestSettings.testRoot, GetParam().fileName, - GetParam().sourceLanguage, - Semantics::Vulkan, - Target::Spv, - GetParam().entryPoint, - GetParam().remapOpts); - } -} - -// clang-format off -INSTANTIATE_TEST_SUITE_P( - ToSpirv, RemapTest, - ::testing::ValuesIn(std::vector{ - // GLSL remapper tests - // testname entry language remapper_options - { "remap.basic.none.frag", "main", Source::GLSL, spv::spirvbin_t::NONE }, - { "remap.basic.everything.frag", "main", Source::GLSL, spv::spirvbin_t::DO_EVERYTHING }, - { "remap.basic.dcefunc.frag", "main", Source::GLSL, spv::spirvbin_t::DCE_FUNCS }, - { "remap.basic.strip.frag", "main", Source::GLSL, spv::spirvbin_t::STRIP }, - { "remap.specconst.comp", "main", Source::GLSL, spv::spirvbin_t::DO_EVERYTHING }, - { "remap.switch.none.frag", "main", Source::GLSL, spv::spirvbin_t::NONE }, - { "remap.switch.everything.frag", "main", Source::GLSL, spv::spirvbin_t::DO_EVERYTHING }, - { "remap.literal64.none.spv", "main", Source::GLSL, spv::spirvbin_t::NONE }, - { "remap.literal64.everything.spv", "main", Source::GLSL, spv::spirvbin_t::DO_EVERYTHING }, - { "remap.if.none.frag", "main", Source::GLSL, spv::spirvbin_t::NONE }, - { "remap.if.everything.frag", "main", Source::GLSL, spv::spirvbin_t::DO_EVERYTHING }, - { "remap.similar_1a.none.frag", "main", Source::GLSL, spv::spirvbin_t::NONE }, - { "remap.similar_1b.none.frag", "main", Source::GLSL, spv::spirvbin_t::NONE }, - { "remap.similar_1a.everything.frag", "main", Source::GLSL, spv::spirvbin_t::DO_EVERYTHING }, - { "remap.similar_1b.everything.frag", "main", Source::GLSL, spv::spirvbin_t::DO_EVERYTHING }, - { "remap.uniformarray.none.frag", "main", Source::GLSL, spv::spirvbin_t::NONE }, - { "remap.uniformarray.everything.frag", "main", Source::GLSL, spv::spirvbin_t::DO_EVERYTHING }, - - // HLSL remapper tests - { "remap.hlsl.sample.basic.strip.frag", "main", Source::HLSL, spv::spirvbin_t::STRIP }, - { "remap.hlsl.sample.basic.everything.frag", "main", Source::HLSL, spv::spirvbin_t::DO_EVERYTHING }, - { "remap.hlsl.sample.basic.none.frag", "main", Source::HLSL, spv::spirvbin_t::NONE }, - { "remap.hlsl.templatetypes.none.frag", "main", Source::HLSL, spv::spirvbin_t::NONE }, - { "remap.hlsl.templatetypes.everything.frag", "main", Source::HLSL, spv::spirvbin_t::DO_EVERYTHING }, - }), - FileNameAsCustomTestSuffix -); -// clang-format on - -} // anonymous namespace -} // namespace glslangtest diff --git a/deps/glslang/gtests/Settings.cpp b/deps/glslang/gtests/Settings.cpp deleted file mode 100644 index 0ac58449..00000000 --- a/deps/glslang/gtests/Settings.cpp +++ /dev/null @@ -1,51 +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 "Settings.h" - -namespace glslangtest { - -// We need CMake to provide us the absolute path to the directory containing -// test files, so we are certain to find those files no matter where the test -// harness binary is generated. This provides out-of-source build capability. -// This will be used as the default test root, but can be overridden with -// the --test-root argument. -#ifndef GLSLANG_TEST_DIRECTORY -#error \ - "GLSLANG_TEST_DIRECTORY needs to be defined for gtest to locate test files." -#endif - -GTestSettings GlobalTestSettings = {nullptr, false, GLSLANG_TEST_DIRECTORY}; - -} // namespace glslangtest diff --git a/deps/glslang/gtests/Settings.h b/deps/glslang/gtests/Settings.h deleted file mode 100644 index c38474cc..00000000 --- a/deps/glslang/gtests/Settings.h +++ /dev/null @@ -1,58 +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. - -#ifndef GLSLANG_GTESTS_SETTINGS_H -#define GLSLANG_GTESTS_SETTINGS_H - -#include - -namespace glslangtest { - -class GlslangInitializer; - -struct GTestSettings { - // A handle to GlslangInitializer instance. - GlslangInitializer* initializer; - // An indicator of whether GTest should write real output to the file for - // the expected output. - bool updateMode; - // The root directory for test files. - std::string testRoot; -}; - -extern GTestSettings GlobalTestSettings; - -} // namespace glslangtest - -#endif // GLSLANG_GTESTS_SETTINGS_H diff --git a/deps/glslang/gtests/Spv.FromFile.cpp b/deps/glslang/gtests/Spv.FromFile.cpp deleted file mode 100644 index db4ac268..00000000 --- a/deps/glslang/gtests/Spv.FromFile.cpp +++ /dev/null @@ -1,819 +0,0 @@ - // -// Copyright (C) 2016 Google, Inc. -// Copyright (C) 2019 ARM Limited. -// Modifications Copyright (C) 2020 Advanced Micro Devices, 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: -// -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. - -#include - -#include - -#include "TestFixture.h" - -namespace glslangtest { -namespace { - -struct IoMapData { - const char* fileName; - const char* entryPoint; - int baseSamplerBinding; - int baseTextureBinding; - int baseImageBinding; - int baseUboBinding; - int baseSsboBinding; - bool autoMapBindings; - bool flattenUniforms; -}; - -std::string FileNameAsCustomTestSuffixIoMap( - const ::testing::TestParamInfo& info) { - std::string name = info.param.fileName; - // A valid test case suffix cannot have '.' and '-' inside. - std::replace(name.begin(), name.end(), '.', '_'); - std::replace(name.begin(), name.end(), '-', '_'); - return name; -} - -using CompileVulkanToSpirvTest = GlslangTest<::testing::TestWithParam>; -using CompileVulkanToSpirvDeadCodeElimTest = GlslangTest<::testing::TestWithParam>; -using CompileVulkanToDebugSpirvTest = GlslangTest<::testing::TestWithParam>; -using CompileVulkan1_1ToSpirvTest = GlslangTest<::testing::TestWithParam>; -using CompileToSpirv14Test = GlslangTest<::testing::TestWithParam>; -using CompileToSpirv16Test = GlslangTest<::testing::TestWithParam>; -using CompileOpenGLToSpirvTest = GlslangTest<::testing::TestWithParam>; -using VulkanSemantics = GlslangTest<::testing::TestWithParam>; -using OpenGLSemantics = GlslangTest<::testing::TestWithParam>; -using VulkanAstSemantics = GlslangTest<::testing::TestWithParam>; -using HlslIoMap = GlslangTest<::testing::TestWithParam>; -using GlslIoMap = GlslangTest<::testing::TestWithParam>; -using CompileVulkanToSpirvTestAMD = GlslangTest<::testing::TestWithParam>; -using CompileVulkanToSpirvTestNV = GlslangTest<::testing::TestWithParam>; -using CompileVulkanToSpirv14TestNV = GlslangTest<::testing::TestWithParam>; -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, glslang::EShTargetSpv_1_0, - Target::Spv); -} - -TEST_P(CompileVulkanToSpirvDeadCodeElimTest, FromFile) -{ - loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), - Source::GLSL, Semantics::Vulkan, glslang::EShTargetVulkan_1_0, glslang::EShTargetSpv_1_0, - Target::Spv); -} - -// Compiling GLSL to SPIR-V with debug info under Vulkan semantics. Expected -// to successfully generate SPIR-V. -TEST_P(CompileVulkanToDebugSpirvTest, FromFile) -{ - loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), - Source::GLSL, Semantics::Vulkan, - glslang::EShTargetVulkan_1_0, glslang::EShTargetSpv_1_0, - Target::Spv, true, "", - "/baseResults/", false, true); -} - - -TEST_P(CompileVulkan1_1ToSpirvTest, FromFile) -{ - loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), - Source::GLSL, Semantics::Vulkan, glslang::EShTargetVulkan_1_1, glslang::EShTargetSpv_1_3, - Target::Spv); -} - -TEST_P(CompileToSpirv14Test, FromFile) -{ - loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), - Source::GLSL, Semantics::Vulkan, glslang::EShTargetVulkan_1_1, glslang::EShTargetSpv_1_4, - Target::Spv); -} - -TEST_P(CompileToSpirv16Test, FromFile) -{ - loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), - Source::GLSL, Semantics::Vulkan, glslang::EShTargetVulkan_1_3, glslang::EShTargetSpv_1_6, - Target::Spv); -} - -// Compiling GLSL to SPIR-V under OpenGL semantics. Expected to successfully -// generate SPIR-V. -TEST_P(CompileOpenGLToSpirvTest, FromFile) -{ - loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), - Source::GLSL, Semantics::OpenGL, glslang::EShTargetVulkan_1_0, glslang::EShTargetSpv_1_0, - Target::Spv); -} - -// GLSL-level Vulkan semantics test. Expected to error out before generating -// SPIR-V. -TEST_P(VulkanSemantics, FromFile) -{ - loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), - Source::GLSL, Semantics::Vulkan, glslang::EShTargetVulkan_1_0, glslang::EShTargetSpv_1_0, - Target::Spv, false); -} - -// GLSL-level Vulkan semantics test. Expected to error out before generating -// SPIR-V. -TEST_P(OpenGLSemantics, FromFile) -{ - loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), - Source::GLSL, Semantics::OpenGL, glslang::EShTargetVulkan_1_0, glslang::EShTargetSpv_1_0, - Target::Spv, false); -} - -// GLSL-level Vulkan semantics test that need to see the AST for validation. -TEST_P(VulkanAstSemantics, FromFile) -{ - loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), - Source::GLSL, Semantics::Vulkan, glslang::EShTargetVulkan_1_0, glslang::EShTargetSpv_1_0, - Target::AST); -} - -// HLSL-level Vulkan semantics tests. -TEST_P(HlslIoMap, FromFile) -{ - loadFileCompileIoMapAndCheck(GlobalTestSettings.testRoot, GetParam().fileName, - Source::HLSL, Semantics::Vulkan, - Target::Spv, GetParam().entryPoint, - GetParam().baseSamplerBinding, - GetParam().baseTextureBinding, - GetParam().baseImageBinding, - GetParam().baseUboBinding, - GetParam().baseSsboBinding, - GetParam().autoMapBindings, - GetParam().flattenUniforms); -} - -// GLSL-level Vulkan semantics tests. -TEST_P(GlslIoMap, FromFile) -{ - loadFileCompileIoMapAndCheck(GlobalTestSettings.testRoot, GetParam().fileName, - Source::GLSL, Semantics::Vulkan, - Target::Spv, GetParam().entryPoint, - GetParam().baseSamplerBinding, - GetParam().baseTextureBinding, - GetParam().baseImageBinding, - GetParam().baseUboBinding, - GetParam().baseSsboBinding, - GetParam().autoMapBindings, - GetParam().flattenUniforms); -} - -// Compiling GLSL to SPIR-V under Vulkan semantics (AMD extensions enabled). -// Expected to successfully generate SPIR-V. -TEST_P(CompileVulkanToSpirvTestAMD, FromFile) -{ - loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), - Source::GLSL, Semantics::Vulkan, glslang::EShTargetVulkan_1_0, glslang::EShTargetSpv_1_0, - Target::Spv); -} - -// 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, glslang::EShTargetSpv_1_0, - Target::Spv); -} - -TEST_P(CompileVulkanToSpirv14TestNV, FromFile) -{ - loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), - Source::GLSL, Semantics::Vulkan, glslang::EShTargetVulkan_1_1, glslang::EShTargetSpv_1_4, - Target::Spv); -} - -TEST_P(CompileUpgradeTextureToSampledTextureAndDropSamplersTest, FromFile) -{ - loadCompileUpgradeTextureToSampledTextureAndDropSamplersAndCheck(GlobalTestSettings.testRoot, - GetParam(), - Source::GLSL, - Semantics::Vulkan, - Target::Spv); -} - -// clang-format off -INSTANTIATE_TEST_SUITE_P( - Glsl, CompileVulkanToSpirvTest, - ::testing::ValuesIn(std::vector({ - // Test looping constructs. - // No tests yet for making sure break and continue from a nested loop - // goes to the innermost target. - "spv.barrier.vert", - "spv.do-simple.vert", - "spv.do-while-continue-break.vert", - "spv.for-complex-condition.vert", - "spv.for-continue-break.vert", - "spv.for-simple.vert", - "spv.for-notest.vert", - "spv.for-nobody.vert", - "spv.while-continue-break.vert", - "spv.while-simple.vert", - // vulkan-specific tests - "rayQuery.rgen", - "rayQuery-no-cse.rgen", - "rayQuery-initialize.rgen", - "rayQuery-allOps.rgen", - "rayQuery-allOps.Error.rgen", - "rayQuery-committed.Error.rgen", - "rayQuery-allOps.comp", - "rayQuery-allOps.frag", - "rayQuery-initialization.Error.comp", - "rayQuery-global.rgen", - "rayQuery-types.comp", - "spv.set.vert", - "spv.double.comp", - "spv.100ops.frag", - "spv.130.frag", - "spv.140.frag", - "spv.150.geom", - "spv.150.vert", - "spv.16bitstorage.frag", - "spv.16bitstorage_Error.frag", - "spv.16bitstorage-int.frag", - "spv.16bitstorage_Error-int.frag", - "spv.16bitstorage-uint.frag", - "spv.16bitstorage_Error-uint.frag", - "spv.300BuiltIns.vert", - "spv.300layout.frag", - "spv.300layout.vert", - "spv.300layoutp.vert", - "spv.310.comp", - "spv.310.bitcast.frag", - "spv.330.geom", - "spv.400.frag", - "spv.400.tesc", - "spv.400.tese", - "spv.420.geom", - "spv.430.frag", - "spv.430.vert", - "spv.450.tesc", - "spv.450.geom", - "spv.450.noRedecl.tesc", - "spv.8bitstorage-int.frag", - "spv.8bitstorage_Error-int.frag", - "spv.8bitstorage-uint.frag", - "spv.8bitstorage_Error-uint.frag", - "spv.8bitstorage-ubo.vert", - "spv.8bitstorage-ssbo.vert", - "spv.8bit-16bit-construction.frag", - "spv.accessChain.frag", - "spv.aggOps.frag", - "spv.always-discard.frag", - "spv.always-discard2.frag", - "spv.arbPostDepthCoverage.frag", - "spv.arbPostDepthCoverage_Error.frag", - "spv.atomicCounter.comp", - "spv.bitCast.frag", - "spv.bool.vert", - "spv.boolInBlock.frag", - "spv.branch-return.vert", - "spv.bufferhandle1.frag", - "spv.bufferhandle10.frag", - "spv.bufferhandle11.frag", - "spv.bufferhandle12.frag", - "spv.bufferhandle13.frag", - "spv.bufferhandle14.frag", - "spv.bufferhandle15.frag", - "spv.bufferhandle16.frag", - "spv.bufferhandle17_Errors.frag", - "spv.bufferhandle18.frag", - "spv.bufferhandle19_Errors.frag", - "spv.bufferhandle2.frag", - "spv.bufferhandle3.frag", - "spv.bufferhandle4.frag", - "spv.bufferhandle5.frag", - "spv.bufferhandle6.frag", - "spv.bufferhandle7.frag", - "spv.bufferhandle8.frag", - "spv.bufferhandle9.frag", - "spv.bufferhandleUvec2.frag", - "spv.bufferhandle_Error.frag", - "spv.builtInXFB.vert", - "spv.conditionalDemote.frag", - "spv.conditionalDiscard.frag", - "spv.constructComposite.comp", - "spv.constStruct.vert", - "spv.constConstruct.vert", - "spv.controlFlowAttributes.frag", - "spv.conversion.frag", - "spv.coopmat.comp", - "spv.coopmat_Error.comp", - "spv.dataOut.frag", - "spv.dataOutIndirect.frag", - "spv.dataOutIndirect.vert", - "spv.debugPrintf.frag", - "spv.debugPrintf_Error.frag", - "spv.demoteDisabled.frag", - "spv.deepRvalue.frag", - "spv.depthOut.frag", - "spv.depthUnchanged.frag", - "spv.discard-dce.frag", - "spv.doWhileLoop.frag", - "spv.earlyReturnDiscard.frag", - "spv.extPostDepthCoverage.frag", - "spv.extPostDepthCoverage_Error.frag", - "spv.float16convertonlyarith.comp", - "spv.float16convertonlystorage.comp", - "spv.flowControl.frag", - "spv.forLoop.frag", - "spv.forwardFun.frag", - "spv.fragmentDensity.frag", - "spv.fragmentDensity.vert", - "spv.fragmentDensity-es.frag", - "spv.fragmentDensity-neg.frag", - "spv.fsi.frag", - "spv.fsi_Error.frag", - "spv.fullyCovered.frag", - "spv.functionCall.frag", - "spv.functionNestedOpaque.vert", - "spv.functionSemantics.frag", - "spv.functionParameterTypes.frag", - "spv.GeometryShaderPassthrough.geom", - "spv.funcall.array.frag", - "spv.load.bool.array.interface.block.frag", - "spv.interpOps.frag", - "spv.int64.frag", - "spv.intcoopmat.comp", - "spv.intOps.vert", - "spv.intrinsicsSpirvByReference.vert", - "spv.intrinsicsSpirvDecorate.frag", - "spv.intrinsicsSpirvExecutionMode.frag", - "spv.intrinsicsSpirvInstruction.vert", - "spv.intrinsicsSpirvLiteral.vert", - "spv.intrinsicsSpirvStorageClass.rchit", - "spv.intrinsicsSpirvType.rgen", - "spv.intrinsicsSpirvTypeLocalVar.vert", - "spv.invariantAll.vert", - "spv.layer.tese", - "spv.layoutNested.vert", - "spv.length.frag", - "spv.localAggregates.frag", - "spv.loops.frag", - "spv.loopsArtificial.frag", - "spv.matFun.vert", - "spv.matrix.frag", - "spv.matrix2.frag", - "spv.memoryQualifier.frag", - "spv.merge-unreachable.frag", - "spv.multiStruct.comp", - "spv.multiStructFuncall.frag", - "spv.newTexture.frag", - "spv.noDeadDecorations.vert", - "spv.nonSquare.vert", - "spv.nonuniform.frag", - "spv.nonuniform2.frag", - "spv.nonuniform3.frag", - "spv.nonuniform4.frag", - "spv.nonuniform5.frag", - "spv.noWorkgroup.comp", - "spv.nullInit.comp", - "spv.offsets.frag", - "spv.Operations.frag", - "spv.paramMemory.frag", - "spv.paramMemory.420.frag", - "spv.precision.frag", - "spv.precisionArgs.frag", - "spv.precisionNonESSamp.frag", - "spv.precisionTexture.frag", - "spv.prepost.frag", - "spv.privateVariableTypes.frag", - "spv.qualifiers.vert", - "spv.sample.frag", - "spv.sampleId.frag", - "spv.samplePosition.frag", - "spv.sampleMaskOverrideCoverage.frag", - "spv.scalarlayout.frag", - "spv.scalarlayoutfloat16.frag", - "spv.shaderBallot.comp", - "spv.shaderDrawParams.vert", - "spv.shaderGroupVote.comp", - "spv.shaderStencilExport.frag", - "spv.shiftOps.frag", - "spv.simpleFunctionCall.frag", - "spv.simpleMat.vert", - "spv.sparseTexture.frag", - "spv.sparseTextureClamp.frag", - "spv.structAssignment.frag", - "spv.structDeref.frag", - "spv.structure.frag", - "spv.switch.frag", - "spv.swizzle.frag", - "spv.swizzleInversion.frag", - "spv.test.frag", - "spv.test.vert", - "spv.texture.frag", - "spv.texture.vert", - "spv.textureBuffer.vert", - "spv.image.frag", - "spv.imageAtomic64.frag", - "spv.types.frag", - "spv.uint.frag", - "spv.uniformArray.frag", - "spv.variableArrayIndex.frag", - "spv.varyingArray.frag", - "spv.varyingArrayIndirect.frag", - "spv.vecMatConstruct.frag", - "spv.voidFunction.frag", - "spv.whileLoop.frag", - "spv.AofA.frag", - "spv.queryL.frag", - "spv.separate.frag", - "spv.shortCircuit.frag", - "spv.pushConstant.vert", - "spv.pushConstantAnon.vert", - "spv.subpass.frag", - "spv.specConstant.vert", - "spv.specConstant.comp", - "spv.specConstantComposite.vert", - "spv.specConstantOperations.vert", - "spv.specConstant.float16.comp", - "spv.specConstant.int16.comp", - "spv.specConstant.int8.comp", - "spv.storageBuffer.vert", - "spv.terminate.frag", - "spv.subgroupUniformControlFlow.vert", - "spv.precise.tese", - "spv.precise.tesc", - "spv.viewportindex.tese", - "spv.volatileAtomic.comp", - "spv.vulkan100.subgroupArithmetic.comp", - "spv.vulkan100.subgroupPartitioned.comp", - "spv.xfb.vert", - "spv.xfb2.vert", - "spv.xfb3.vert", - "spv.samplerlessTextureFunctions.frag", - "spv.smBuiltins.vert", - "spv.smBuiltins.frag", - "spv.builtin.PrimitiveShadingRateEXT.vert", - "spv.builtin.ShadingRateEXT.frag", - "spv.atomicAdd.bufferReference.comp" - })), - FileNameAsCustomTestSuffix -); - -// Cases with deliberately unreachable code. -// By default the compiler will aggressively eliminate -// unreachable merges and continues. -INSTANTIATE_TEST_SUITE_P( - GlslWithDeadCode, CompileVulkanToSpirvDeadCodeElimTest, - ::testing::ValuesIn(std::vector({ - "spv.dead-after-continue.vert", - "spv.dead-after-discard.frag", - "spv.dead-after-return.vert", - "spv.dead-after-loop-break.vert", - "spv.dead-after-switch-break.vert", - "spv.dead-complex-continue-after-return.vert", - "spv.dead-complex-merge-after-return.vert", - })), - FileNameAsCustomTestSuffix -); - -// clang-format off -INSTANTIATE_TEST_SUITE_P( - Glsl, CompileVulkanToDebugSpirvTest, - ::testing::ValuesIn(std::vector({ - "spv.pp.line.frag", - })), - FileNameAsCustomTestSuffix -); - -// clang-format off -INSTANTIATE_TEST_SUITE_P( - Glsl, CompileVulkan1_1ToSpirvTest, - ::testing::ValuesIn(std::vector({ - "spv.1.3.8bitstorage-ubo.vert", - "spv.1.3.8bitstorage-ssbo.vert", - "spv.1.3.coopmat.comp", - "spv.deviceGroup.frag", - "spv.drawParams.vert", - "spv.int8.frag", - "spv.vulkan110.int16.frag", - "spv.int32.frag", - "spv.explicittypes.frag", - "spv.float16NoRelaxed.vert", - "spv.float32.frag", - "spv.float64.frag", - "spv.memoryScopeSemantics.comp", - "spv.memoryScopeSemantics_Error.comp", - "spv.multiView.frag", - "spv.queueFamilyScope.comp", - "spv.RayGenShader11.rgen", - "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.subgroupBallotNeg.comp", - "spv.subgroupClustered.comp", - "spv.subgroupClusteredNeg.comp", - "spv.subgroupPartitioned.comp", - "spv.subgroupShuffle.comp", - "spv.subgroupShuffleRelative.comp", - "spv.subgroupQuad.comp", - "spv.subgroupVote.comp", - "spv.subgroupExtendedTypesArithmetic.comp", - "spv.subgroupExtendedTypesArithmeticNeg.comp", - "spv.subgroupExtendedTypesBallot.comp", - "spv.subgroupExtendedTypesBallotNeg.comp", - "spv.subgroupExtendedTypesClustered.comp", - "spv.subgroupExtendedTypesClusteredNeg.comp", - "spv.subgroupExtendedTypesPartitioned.comp", - "spv.subgroupExtendedTypesPartitionedNeg.comp", - "spv.subgroupExtendedTypesShuffle.comp", - "spv.subgroupExtendedTypesShuffleNeg.comp", - "spv.subgroupExtendedTypesShuffleRelative.comp", - "spv.subgroupExtendedTypesShuffleRelativeNeg.comp", - "spv.subgroupExtendedTypesQuad.comp", - "spv.subgroupExtendedTypesQuadNeg.comp", - "spv.subgroupExtendedTypesVote.comp", - "spv.subgroupExtendedTypesVoteNeg.comp", - "spv.vulkan110.storageBuffer.vert", - })), - FileNameAsCustomTestSuffix -); - -// clang-format off -INSTANTIATE_TEST_SUITE_P( - Glsl, CompileToSpirv14Test, - ::testing::ValuesIn(std::vector({ - "spv.1.4.LoopControl.frag", - "spv.1.4.NonWritable.frag", - "spv.1.4.OpEntryPoint.frag", - "spv.1.4.OpEntryPoint.opaqueParams.vert", - "spv.1.4.OpSelect.frag", - "spv.1.4.OpCopyLogical.comp", - "spv.1.4.OpCopyLogicalBool.comp", - "spv.1.4.OpCopyLogical.funcall.frag", - "spv.1.4.funcall.array.frag", - "spv.1.4.load.bool.array.interface.block.frag", - "spv.1.4.image.frag", - "spv.1.4.sparseTexture.frag", - "spv.1.4.texture.frag", - "spv.1.4.constructComposite.comp", - "spv.ext.AnyHitShader.rahit", - "spv.ext.AnyHitShader_Errors.rahit", - "spv.ext.ClosestHitShader.rchit", - "spv.ext.ClosestHitShader_Subgroup.rchit", - "spv.ext.ClosestHitShader_Errors.rchit", - "spv.ext.IntersectShader.rint", - "spv.ext.IntersectShader_Errors.rint", - "spv.ext.MissShader.rmiss", - "spv.ext.MissShader_Errors.rmiss", - "spv.ext.RayPrimCull_Errors.rgen", - "spv.ext.RayCallable.rcall", - "spv.ext.RayCallable_Errors.rcall", - "spv.ext.RayConstants.rgen", - "spv.ext.RayGenShader.rgen", - "spv.ext.RayGenShader_Errors.rgen", - "spv.ext.RayGenShader11.rgen", - "spv.ext.RayGenShaderArray.rgen", - "spv.ext.RayGenSBTlayout.rgen", - "spv.ext.RayGenSBTlayout140.rgen", - "spv.ext.RayGenSBTlayout430.rgen", - "spv.ext.RayGenSBTlayoutscalar.rgen", - "spv.ext.World3x4.rahit", - "spv.ext.AccelDecl.frag", - "spv.ext.RayQueryDecl.frag", - - // SPV_KHR_workgroup_memory_explicit_layout depends on SPIR-V 1.4. - "spv.WorkgroupMemoryExplicitLayout.SingleBlock.comp", - "spv.WorkgroupMemoryExplicitLayout.MultiBlock.comp", - "spv.WorkgroupMemoryExplicitLayout.8BitAccess.comp", - "spv.WorkgroupMemoryExplicitLayout.16BitAccess.comp", - "spv.WorkgroupMemoryExplicitLayout.NonBlock.comp", - "spv.WorkgroupMemoryExplicitLayout.MixBlockNonBlock_Errors.comp", - "spv.WorkgroupMemoryExplicitLayout.std140.comp", - "spv.WorkgroupMemoryExplicitLayout.std430.comp", - "spv.WorkgroupMemoryExplicitLayout.scalar.comp", - })), - FileNameAsCustomTestSuffix -); - -// clang-format off -INSTANTIATE_TEST_SUITE_P( - Glsl, CompileToSpirv16Test, - ::testing::ValuesIn(std::vector({ - "spv.1.6.conditionalDiscard.frag", - "spv.1.6.helperInvocation.frag", - "spv.1.6.specConstant.comp", - })), - FileNameAsCustomTestSuffix -); - - -// clang-format off -INSTANTIATE_TEST_SUITE_P( - Hlsl, HlslIoMap, - ::testing::ValuesIn(std::vector{ - { "spv.register.autoassign.frag", "main_ep", 5, 10, 0, 20, 30, true, false }, - { "spv.register.noautoassign.frag", "main_ep", 5, 10, 0, 15, 30, false, false }, - { "spv.register.autoassign-2.frag", "main", 5, 10, 0, 15, 30, true, true }, - { "spv.register.subpass.frag", "main", 0, 20, 0, 0, 0, true, true }, - { "spv.buffer.autoassign.frag", "main", 5, 10, 0, 15, 30, true, true }, - { "spv.ssbo.autoassign.frag", "main", 5, 10, 0, 15, 30, true, true }, - { "spv.ssboAlias.frag", "main", 0, 0, 0, 0, 83, true, false }, - { "spv.rw.autoassign.frag", "main", 5, 10, 20, 15, 30, true, true }, - { "spv.register.autoassign.rangetest.frag", "main", - glslang::TQualifier::layoutBindingEnd-2, - glslang::TQualifier::layoutBindingEnd+5, - 20, 30, true, false }, - }), - FileNameAsCustomTestSuffixIoMap -); - -// clang-format off -INSTANTIATE_TEST_SUITE_P( - Hlsl, GlslIoMap, - ::testing::ValuesIn(std::vector{ - { "spv.glsl.register.autoassign.frag", "main", 5, 10, 0, 20, 30, true, false }, - { "spv.glsl.register.noautoassign.frag", "main", 5, 10, 0, 15, 30, false, false }, - }), - FileNameAsCustomTestSuffixIoMap -); - -// clang-format off -INSTANTIATE_TEST_SUITE_P( - Glsl, CompileOpenGLToSpirvTest, - ::testing::ValuesIn(std::vector({ - "spv.460.frag", - "spv.460.vert", - "spv.460.comp", - "spv.atomic.comp", - "spv.atomicFloat.comp", - "spv.atomicFloat_Error.comp", - "spv.glFragColor.frag", - "spv.rankShift.comp", - "spv.specConst.vert", - "spv.specTexture.frag", - "spv.OVR_multiview.vert", - "spv.uniformInitializer.frag", - "spv.uniformInitializerSpecConstant.frag", - "spv.uniformInitializerStruct.frag", - "spv.xfbOffsetOnBlockMembersAssignment.vert", - "spv.xfbOffsetOnStructMembersAssignment.vert", - "spv.xfbOverlapOffsetCheckWithBlockAndMember.vert", - "spv.xfbStrideJustOnce.vert", - })), - FileNameAsCustomTestSuffix -); - -INSTANTIATE_TEST_SUITE_P( - Glsl, VulkanSemantics, - ::testing::ValuesIn(std::vector({ - "vulkan.frag", - "vulkan.vert", - "vulkan.comp", - "samplerlessTextureFunctions.frag", - "spv.specConstArrayCheck.vert", - })), - FileNameAsCustomTestSuffix -); - -INSTANTIATE_TEST_SUITE_P( - Glsl, OpenGLSemantics, - ::testing::ValuesIn(std::vector({ - "glspv.esversion.vert", - "glspv.version.frag", - "glspv.version.vert", - "glspv.frag", - "glspv.vert", - })), - FileNameAsCustomTestSuffix -); - -INSTANTIATE_TEST_SUITE_P( - Glsl, VulkanAstSemantics, - ::testing::ValuesIn(std::vector({ - "vulkan.ast.vert", - })), - FileNameAsCustomTestSuffix -); - -INSTANTIATE_TEST_SUITE_P( - Glsl, CompileVulkanToSpirvTestAMD, - ::testing::ValuesIn(std::vector({ - "spv.16bitxfb.vert", - "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 -); - -INSTANTIATE_TEST_SUITE_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", - "spv.atomicStoreInt64.comp", - "spv.shadingRate.frag", - "spv.RayGenShader.rgen", - "spv.RayGenShaderArray.rgen", - "spv.RayGenShader_Errors.rgen", - "spv.RayConstants.rgen", - "spv.IntersectShader.rint", - "spv.IntersectShader_Errors.rint", - "spv.AnyHitShader.rahit", - "spv.AnyHitShader_Errors.rahit", - "spv.ClosestHitShader.rchit", - "spv.ClosestHitShader_Errors.rchit", - "spv.MissShader.rmiss", - "spv.MissShader_Errors.rmiss", - "spv.RayCallable.rcall", - "spv.RayCallable_Errors.rcall", - "spv.fragmentShaderBarycentric.frag", - "spv.fragmentShaderBarycentric2.frag", - "spv.computeShaderDerivatives.comp", - "spv.computeShaderDerivatives2.comp", - "spv.shaderImageFootprint.frag", - "spv.meshShaderBuiltins.mesh", - "spv.meshShaderUserDefined.mesh", - "spv.meshShaderPerViewBuiltins.mesh", - "spv.meshShaderPerViewUserDefined.mesh", - "spv.meshShaderPerView_Errors.mesh", - "spv.meshShaderSharedMem.mesh", - "spv.meshShaderTaskMem.mesh", - "spv.320.meshShaderUserDefined.mesh", - "spv.meshShaderRedeclBuiltins.mesh", - "spv.meshShaderRedeclPerViewBuiltins.mesh", - "spv.meshTaskShader.task", - "spv.perprimitiveNV.frag", -})), -FileNameAsCustomTestSuffix -); - -INSTANTIATE_TEST_SUITE_P( - Glsl, CompileVulkanToSpirv14TestNV, - ::testing::ValuesIn(std::vector({ - "spv.RayGenShaderMotion.rgen", - "spv.IntersectShaderMotion.rint", - "spv.AnyHitShaderMotion.rahit", - "spv.ClosestHitShaderMotion.rchit", - "spv.MissShaderMotion.rmiss", -})), -FileNameAsCustomTestSuffix -); -INSTANTIATE_TEST_SUITE_P( - Glsl, CompileUpgradeTextureToSampledTextureAndDropSamplersTest, - ::testing::ValuesIn(std::vector({ - "spv.texture.sampler.transform.frag", - })), - FileNameAsCustomTestSuffix -); -// clang-format on - -} // anonymous namespace -} // namespace glslangtest diff --git a/deps/glslang/gtests/TestFixture.cpp b/deps/glslang/gtests/TestFixture.cpp deleted file mode 100644 index ced6fcce..00000000 --- a/deps/glslang/gtests/TestFixture.cpp +++ /dev/null @@ -1,180 +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 "TestFixture.h" - -namespace glslangtest { - -std::string FileNameAsCustomTestSuffix( - const ::testing::TestParamInfo& info) -{ - std::string name = info.param; - // A valid test case suffix cannot have '.' and '-' inside. - std::replace(name.begin(), name.end(), '.', '_'); - std::replace(name.begin(), name.end(), '-', '_'); - return name; -} - -EShLanguage GetShaderStage(const std::string& stage) -{ - if (stage == "vert") { - return EShLangVertex; - } else if (stage == "tesc") { - return EShLangTessControl; - } else if (stage == "tese") { - return EShLangTessEvaluation; - } else if (stage == "geom") { - return EShLangGeometry; - } else if (stage == "frag") { - return EShLangFragment; - } else if (stage == "comp") { - return EShLangCompute; - } else if (stage == "rgen") { - return EShLangRayGen; - } else if (stage == "rint") { - return EShLangIntersect; - } else if (stage == "rahit") { - return EShLangAnyHit; - } else if (stage == "rchit") { - return EShLangClosestHit; - } else if (stage == "rmiss") { - return EShLangMiss; - } else if (stage == "rcall") { - return EShLangCallable; - } else if (stage == "task") { - return EShLangTaskNV; - } else if (stage == "mesh") { - return EShLangMeshNV; - } else { - assert(0 && "Unknown shader stage"); - return EShLangCount; - } -} - -EShMessages DeriveOptions(Source source, Semantics semantics, Target target) -{ - EShMessages result = EShMsgCascadingErrors; - - switch (source) { - case Source::GLSL: - break; - case Source::HLSL: - result = static_cast(result | EShMsgReadHlsl); - break; - } - - switch (target) { - case Target::AST: - result = static_cast(result | EShMsgAST); - break; - case Target::Spv: - result = static_cast(result | EShMsgSpvRules); - result = static_cast(result | EShMsgKeepUncalled); - break; - case Target::BothASTAndSpv: - result = static_cast(result | EShMsgSpvRules | EShMsgAST); - result = static_cast(result | EShMsgKeepUncalled); - break; - }; - - switch (semantics) { - case Semantics::OpenGL: - break; - case Semantics::Vulkan: - result = static_cast(result | EShMsgVulkanRules | EShMsgSpvRules); - break; - } - - result = static_cast(result | EShMsgHlslLegalization); - - return result; -} - -std::pair ReadFile(const std::string& path) -{ - std::ifstream fstream(path, std::ios::in); - if (fstream) { - std::string contents; - fstream.seekg(0, std::ios::end); - contents.reserve((std::string::size_type)fstream.tellg()); - fstream.seekg(0, std::ios::beg); - contents.assign((std::istreambuf_iterator(fstream)), - std::istreambuf_iterator()); - return std::make_pair(true, contents); - } - return std::make_pair(false, ""); -} - -std::pair > ReadSpvBinaryFile(const std::string& path) -{ - std::ifstream fstream(path, std::fstream::in | std::fstream::binary); - - if (!fstream) - return std::make_pair(false, std::vector()); - - std::vector contents; - - // Reserve space (for efficiency, not for correctness) - fstream.seekg(0, fstream.end); - contents.reserve(size_t(fstream.tellg()) / sizeof(std::uint32_t)); - fstream.seekg(0, fstream.beg); - - // There is no istream iterator traversing by uint32_t, so we must loop. - while (!fstream.eof()) { - std::uint32_t inWord; - fstream.read((char *)&inWord, sizeof(inWord)); - - if (!fstream.eof()) - contents.push_back(inWord); - } - - return std::make_pair(true, contents); // hopefully, c++11 move semantics optimizes the copy away. -} - -bool WriteFile(const std::string& path, const std::string& contents) -{ - std::ofstream fstream(path, std::ios::out); - if (!fstream) return false; - fstream << contents; - fstream.flush(); - return true; -} - -std::string GetSuffix(const std::string& name) -{ - const size_t pos = name.rfind('.'); - return (pos == std::string::npos) ? "" : name.substr(name.rfind('.') + 1); -} - -} // namespace glslangtest diff --git a/deps/glslang/gtests/TestFixture.h b/deps/glslang/gtests/TestFixture.h deleted file mode 100644 index 2b057dcb..00000000 --- a/deps/glslang/gtests/TestFixture.h +++ /dev/null @@ -1,715 +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. - -#ifndef GLSLANG_GTESTS_TEST_FIXTURE_H -#define GLSLANG_GTESTS_TEST_FIXTURE_H - -#include -#include -#include -#include -#include -#include - -#include - -#include "SPIRV/GlslangToSpv.h" -#include "SPIRV/disassemble.h" -#include "SPIRV/doc.h" -#include "SPIRV/SPVRemapper.h" -#include "StandAlone/ResourceLimits.h" -#include "glslang/Public/ShaderLang.h" - -#include "Initializer.h" -#include "Settings.h" - -namespace glslangtest { - -// This function is used to provide custom test name suffixes based on the -// shader source file names. Otherwise, the test name suffixes will just be -// numbers, which are not quite obvious. -std::string FileNameAsCustomTestSuffix( - const ::testing::TestParamInfo& info); - -enum class Source { - GLSL, - HLSL, -}; - -// Enum for shader compilation semantics. -enum class Semantics { - OpenGL, - Vulkan -}; - -// Enum for compilation target. -enum class Target { - AST, - Spv, - BothASTAndSpv, -}; - -EShLanguage GetShaderStage(const std::string& stage); - -EShMessages DeriveOptions(Source, Semantics, Target); - -// Reads the content of the file at the given |path|. On success, returns true -// and the contents; otherwise, returns false and an empty string. -std::pair ReadFile(const std::string& path); -std::pair > ReadSpvBinaryFile(const std::string& path); - -// Writes the given |contents| into the file at the given |path|. Returns true -// on successful output. -bool WriteFile(const std::string& path, const std::string& contents); - -// Returns the suffix of the given |name|. -std::string GetSuffix(const std::string& name); - -// Base class for glslang integration tests. It contains many handy utility-like -// methods such as reading shader source files, compiling into AST/SPIR-V, and -// comparing with expected outputs. -// -// To write value-Parameterized tests: -// using ValueParamTest = GlslangTest<::testing::TestWithParam>; -// To use as normal fixture: -// using FixtureTest = GlslangTest<::testing::Test>; -template -class GlslangTest : public GT { -public: - GlslangTest() - : defaultVersion(100), - defaultProfile(ENoProfile), - forceVersionProfile(false), - isForwardCompatible(false) { - // Perform validation by default. - spirvOptions.validate = true; - } - - // Tries to load the contents from the file at the given |path|. On success, - // writes the contents into |contents|. On failure, errors out. - void tryLoadFile(const std::string& path, const std::string& tag, - std::string* contents) - { - bool fileReadOk; - std::tie(fileReadOk, *contents) = ReadFile(path); - ASSERT_TRUE(fileReadOk) << "Cannot open " << tag << " file: " << path; - } - - // Tries to load the contents from the file at the given |path|. On success, - // writes the contents into |contents|. On failure, errors out. - void tryLoadSpvFile(const std::string& path, const std::string& tag, - std::vector& contents) - { - bool fileReadOk; - std::tie(fileReadOk, contents) = ReadSpvBinaryFile(path); - ASSERT_TRUE(fileReadOk) << "Cannot open " << tag << " file: " << path; - } - - // Checks the equality of |expected| and |real|. If they are not equal, - // write |real| to the given file named as |fname| if update mode is on. - void checkEqAndUpdateIfRequested(const std::string& expected, - const std::string& real, - const std::string& fname, - const std::string& errorsAndWarnings = "") - { - // In order to output the message we want under proper circumstances, - // we need the following operator<< stuff. - EXPECT_EQ(expected, real) - << (GlobalTestSettings.updateMode - ? ("Mismatch found and update mode turned on - " - "flushing expected result output.\n") - : "") - << "The following warnings/errors occurred:\n" - << errorsAndWarnings; - - // Update the expected output file if requested. - // It looks weird to duplicate the comparison between expected_output - // and stream.str(). However, if creating a variable for the comparison - // result, we cannot have pretty print of the string diff in the above. - if (GlobalTestSettings.updateMode && expected != real) { - EXPECT_TRUE(WriteFile(fname, real)) << "Flushing failed"; - } - } - - struct ShaderResult { - std::string shaderName; - std::string output; - std::string error; - }; - - // A struct for holding all the information returned by glslang compilation - // and linking. - struct GlslangResult { - std::vector shaderResults; - std::string linkingOutput; - std::string linkingError; - bool validationResult; - std::string spirvWarningsErrors; - std::string spirv; // Optional SPIR-V disassembly text. - }; - - // Compiles and the given source |code| of the given shader |stage| into - // the target under the semantics conveyed via |controls|. Returns true - // and modifies |shader| on success. - bool compile(glslang::TShader* shader, const std::string& code, - const std::string& entryPointName, EShMessages controls, - const TBuiltInResource* resources=nullptr, - const std::string* shaderName=nullptr) - { - const char* shaderStrings = code.data(); - const int shaderLengths = static_cast(code.size()); - const char* shaderNames = nullptr; - - if ((controls & EShMsgDebugInfo) && shaderName != nullptr) { - shaderNames = shaderName->data(); - shader->setStringsWithLengthsAndNames( - &shaderStrings, &shaderLengths, &shaderNames, 1); - } else - shader->setStringsWithLengths(&shaderStrings, &shaderLengths, 1); - if (!entryPointName.empty()) shader->setEntryPoint(entryPointName.c_str()); - return shader->parse( - (resources ? resources : &glslang::DefaultTBuiltInResource), - defaultVersion, isForwardCompatible, controls); - } - - // Compiles and links the given source |code| of the given shader - // |stage| into the target under the semantics specified via |controls|. - // Returns a GlslangResult instance containing all the information generated - // during the process. If the target includes SPIR-V, also disassembles - // the result and returns disassembly text. - GlslangResult compileAndLink( - const std::string& shaderName, const std::string& code, - const std::string& entryPointName, EShMessages controls, - glslang::EShTargetClientVersion clientTargetVersion, - glslang::EShTargetLanguageVersion targetLanguageVersion, - bool flattenUniformArrays = false, - EShTextureSamplerTransformMode texSampTransMode = EShTexSampTransKeep, - bool enableOptimizer = false, - bool enableDebug = false, - bool automap = true) - { - const EShLanguage stage = GetShaderStage(GetSuffix(shaderName)); - - glslang::TShader shader(stage); - if (automap) { - shader.setAutoMapLocations(true); - shader.setAutoMapBindings(true); - } - shader.setTextureSamplerTransformMode(texSampTransMode); -#ifdef ENABLE_HLSL - shader.setFlattenUniformArrays(flattenUniformArrays); -#endif - - 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, targetLanguageVersion); - } 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, nullptr, &shaderName); - - glslang::TProgram program; - program.addShader(&shader); - success &= program.link(controls); -#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) - if (success) - program.mapIO(); -#endif - - if (success && (controls & EShMsgSpvRules)) { - spv::SpvBuildLogger logger; - std::vector spirv_binary; - options().disableOptimizer = !enableOptimizer; - options().generateDebugInfo = enableDebug; - glslang::GlslangToSpv(*program.getIntermediate(stage), - spirv_binary, &logger, &options()); - - std::ostringstream disassembly_stream; - spv::Parameterize(); - spv::Disassemble(disassembly_stream, spirv_binary); - bool validation_result = !options().validate || logger.getAllMessages().empty(); - return {{{shaderName, shader.getInfoLog(), shader.getInfoDebugLog()},}, - program.getInfoLog(), program.getInfoDebugLog(), - validation_result, logger.getAllMessages(), disassembly_stream.str()}; - } else { - return {{{shaderName, shader.getInfoLog(), shader.getInfoDebugLog()},}, - program.getInfoLog(), program.getInfoDebugLog(), true, "", ""}; - } - } - - // Compiles and links the given source |code| of the given shader - // |stage| into the target under the semantics specified via |controls|. - // Returns a GlslangResult instance containing all the information generated - // during the process. If the target includes SPIR-V, also disassembles - // the result and returns disassembly text. - GlslangResult compileLinkIoMap( - const std::string shaderName, const std::string& code, - const std::string& entryPointName, EShMessages controls, - int baseSamplerBinding, - int baseTextureBinding, - int baseImageBinding, - int baseUboBinding, - int baseSsboBinding, - bool autoMapBindings, - bool flattenUniformArrays) - { - const EShLanguage stage = GetShaderStage(GetSuffix(shaderName)); - - glslang::TShader shader(stage); - shader.setShiftSamplerBinding(baseSamplerBinding); - shader.setShiftTextureBinding(baseTextureBinding); - shader.setShiftImageBinding(baseImageBinding); - shader.setShiftUboBinding(baseUboBinding); - shader.setShiftSsboBinding(baseSsboBinding); - shader.setAutoMapBindings(autoMapBindings); - shader.setAutoMapLocations(true); -#ifdef ENABLE_HLSL - shader.setFlattenUniformArrays(flattenUniformArrays); -#endif - - bool success = compile(&shader, code, entryPointName, controls); - - glslang::TProgram program; - program.addShader(&shader); - - success &= program.link(controls); -#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) - if (success) - program.mapIO(); -#endif - - spv::SpvBuildLogger logger; - - if (success && (controls & EShMsgSpvRules)) { - std::vector spirv_binary; - glslang::GlslangToSpv(*program.getIntermediate(stage), - spirv_binary, &logger, &options()); - - std::ostringstream disassembly_stream; - spv::Parameterize(); - spv::Disassemble(disassembly_stream, spirv_binary); - bool validation_result = !options().validate || logger.getAllMessages().empty(); - return {{{shaderName, shader.getInfoLog(), shader.getInfoDebugLog()},}, - program.getInfoLog(), program.getInfoDebugLog(), - validation_result, logger.getAllMessages(), disassembly_stream.str()}; - } else { - return {{{shaderName, shader.getInfoLog(), shader.getInfoDebugLog()},}, - program.getInfoLog(), program.getInfoDebugLog(), true, "", ""}; - } - } - - // This is like compileAndLink but with remapping of the SPV binary - // through spirvbin_t::remap(). While technically this could be merged - // with compileAndLink() above (with the remap step optionally being a no-op) - // it is given separately here for ease of future extraction. - GlslangResult compileLinkRemap( - const std::string shaderName, const std::string& code, - const std::string& entryPointName, EShMessages controls, - const unsigned int remapOptions = spv::spirvbin_t::NONE) - { - const EShLanguage stage = GetShaderStage(GetSuffix(shaderName)); - - glslang::TShader shader(stage); - shader.setAutoMapBindings(true); - shader.setAutoMapLocations(true); - - bool success = compile(&shader, code, entryPointName, controls); - - glslang::TProgram program; - program.addShader(&shader); - success &= program.link(controls); -#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE) - if (success) - program.mapIO(); -#endif - - if (success && (controls & EShMsgSpvRules)) { - spv::SpvBuildLogger logger; - std::vector spirv_binary; - glslang::GlslangToSpv(*program.getIntermediate(stage), - spirv_binary, &logger, &options()); - - spv::spirvbin_t(0 /*verbosity*/).remap(spirv_binary, remapOptions); - - std::ostringstream disassembly_stream; - spv::Parameterize(); - spv::Disassemble(disassembly_stream, spirv_binary); - bool validation_result = !options().validate || logger.getAllMessages().empty(); - return {{{shaderName, shader.getInfoLog(), shader.getInfoDebugLog()},}, - program.getInfoLog(), program.getInfoDebugLog(), - validation_result, logger.getAllMessages(), disassembly_stream.str()}; - } else { - return {{{shaderName, shader.getInfoLog(), shader.getInfoDebugLog()},}, - program.getInfoLog(), program.getInfoDebugLog(), true, "", ""}; - } - } - - // remap the binary in 'code' with the options in remapOptions - GlslangResult remap( - const std::string shaderName, const std::vector& code, - EShMessages controls, - const unsigned int remapOptions = spv::spirvbin_t::NONE) - { - if ((controls & EShMsgSpvRules)) { - std::vector spirv_binary(code); // scratch copy - - spv::spirvbin_t(0 /*verbosity*/).remap(spirv_binary, remapOptions); - - std::ostringstream disassembly_stream; - spv::Parameterize(); - spv::Disassemble(disassembly_stream, spirv_binary); - - return {{{shaderName, "", ""},}, - "", "", - true, "", disassembly_stream.str()}; - } else { - return {{{shaderName, "", ""},}, "", "", true, "", ""}; - } - } - - void outputResultToStream(std::ostringstream* stream, - const GlslangResult& result, - EShMessages controls) - { - const auto outputIfNotEmpty = [&stream](const std::string& str) { - if (!str.empty()) *stream << str << "\n"; - }; - - for (const auto& shaderResult : result.shaderResults) { - *stream << shaderResult.shaderName << "\n"; - outputIfNotEmpty(shaderResult.output); - outputIfNotEmpty(shaderResult.error); - } - outputIfNotEmpty(result.linkingOutput); - outputIfNotEmpty(result.linkingError); - if (!result.validationResult) { - *stream << "Validation failed\n"; - } - - if (controls & EShMsgSpvRules) { - *stream - << (result.spirv.empty() - ? "SPIR-V is not generated for failed compile or link\n" - : result.spirv); - } - } - - void loadFileCompileAndCheck(const std::string& testDir, - const std::string& testName, - Source source, - Semantics semantics, - glslang::EShTargetClientVersion clientTargetVersion, - glslang::EShTargetLanguageVersion targetLanguageVersion, - Target target, - bool automap = true, - const std::string& entryPointName="", - const std::string& baseDir="/baseResults/", - const bool enableOptimizer = false, - const bool enableDebug = false) - { - const std::string inputFname = testDir + "/" + testName; - const std::string expectedOutputFname = - testDir + baseDir + testName + ".out"; - std::string input, expectedOutput; - - tryLoadFile(inputFname, "input", &input); - tryLoadFile(expectedOutputFname, "expected output", &expectedOutput); - - EShMessages controls = DeriveOptions(source, semantics, target); - if (enableOptimizer) - controls = static_cast(controls & ~EShMsgHlslLegalization); - if (enableDebug) - controls = static_cast(controls | EShMsgDebugInfo); - GlslangResult result = compileAndLink(testName, input, entryPointName, controls, clientTargetVersion, - targetLanguageVersion, false, EShTexSampTransKeep, enableOptimizer, enableDebug, automap); - - // Generate the hybrid output in the way of glslangValidator. - std::ostringstream stream; - outputResultToStream(&stream, result, controls); - - checkEqAndUpdateIfRequested(expectedOutput, stream.str(), - expectedOutputFname, result.spirvWarningsErrors); - } - - void loadFileCompileAndCheckWithOptions(const std::string &testDir, - const std::string &testName, - Source source, - Semantics semantics, - glslang::EShTargetClientVersion clientTargetVersion, - glslang::EShTargetLanguageVersion targetLanguageVersion, - Target target, bool automap = true, const std::string &entryPointName = "", - const std::string &baseDir = "/baseResults/", - const EShMessages additionalOptions = EShMessages::EShMsgDefault) - { - const std::string inputFname = testDir + "/" + testName; - const std::string expectedOutputFname = testDir + baseDir + testName + ".out"; - std::string input, expectedOutput; - - tryLoadFile(inputFname, "input", &input); - tryLoadFile(expectedOutputFname, "expected output", &expectedOutput); - - EShMessages controls = DeriveOptions(source, semantics, target); - controls = static_cast(controls | additionalOptions); - GlslangResult result = compileAndLink(testName, input, entryPointName, controls, clientTargetVersion, - targetLanguageVersion, false, EShTexSampTransKeep, false, automap); - - // Generate the hybrid output in the way of glslangValidator. - std::ostringstream stream; - outputResultToStream(&stream, result, controls); - - checkEqAndUpdateIfRequested(expectedOutput, stream.str(), expectedOutputFname); - } - - void loadFileCompileFlattenUniformsAndCheck(const std::string& testDir, - const std::string& testName, - Source source, - Semantics semantics, - Target target, - const std::string& entryPointName="") - { - const std::string inputFname = testDir + "/" + testName; - const std::string expectedOutputFname = - testDir + "/baseResults/" + testName + ".out"; - std::string input, expectedOutput; - - tryLoadFile(inputFname, "input", &input); - tryLoadFile(expectedOutputFname, "expected output", &expectedOutput); - - const EShMessages controls = DeriveOptions(source, semantics, target); - GlslangResult result = compileAndLink(testName, input, entryPointName, controls, - glslang::EShTargetVulkan_1_0, glslang::EShTargetSpv_1_0, true); - - // Generate the hybrid output in the way of glslangValidator. - std::ostringstream stream; - outputResultToStream(&stream, result, controls); - - checkEqAndUpdateIfRequested(expectedOutput, stream.str(), - expectedOutputFname, result.spirvWarningsErrors); - } - - void loadFileCompileIoMapAndCheck(const std::string& testDir, - const std::string& testName, - Source source, - Semantics semantics, - Target target, - const std::string& entryPointName, - int baseSamplerBinding, - int baseTextureBinding, - int baseImageBinding, - int baseUboBinding, - int baseSsboBinding, - bool autoMapBindings, - bool flattenUniformArrays) - { - const std::string inputFname = testDir + "/" + testName; - const std::string expectedOutputFname = - testDir + "/baseResults/" + testName + ".out"; - std::string input, expectedOutput; - - tryLoadFile(inputFname, "input", &input); - tryLoadFile(expectedOutputFname, "expected output", &expectedOutput); - - const EShMessages controls = DeriveOptions(source, semantics, target); - GlslangResult result = compileLinkIoMap(testName, input, entryPointName, controls, - baseSamplerBinding, baseTextureBinding, baseImageBinding, - baseUboBinding, baseSsboBinding, - autoMapBindings, - flattenUniformArrays); - - // Generate the hybrid output in the way of glslangValidator. - std::ostringstream stream; - outputResultToStream(&stream, result, controls); - - checkEqAndUpdateIfRequested(expectedOutput, stream.str(), - expectedOutputFname, result.spirvWarningsErrors); - } - - void loadFileCompileRemapAndCheck(const std::string& testDir, - const std::string& testName, - Source source, - Semantics semantics, - Target target, - const std::string& entryPointName="", - const unsigned int remapOptions = spv::spirvbin_t::NONE) - { - const std::string inputFname = testDir + "/" + testName; - const std::string expectedOutputFname = - testDir + "/baseResults/" + testName + ".out"; - std::string input, expectedOutput; - - tryLoadFile(inputFname, "input", &input); - tryLoadFile(expectedOutputFname, "expected output", &expectedOutput); - - const EShMessages controls = DeriveOptions(source, semantics, target); - GlslangResult result = compileLinkRemap(testName, input, entryPointName, controls, remapOptions); - - // Generate the hybrid output in the way of glslangValidator. - std::ostringstream stream; - outputResultToStream(&stream, result, controls); - - checkEqAndUpdateIfRequested(expectedOutput, stream.str(), - expectedOutputFname, result.spirvWarningsErrors); - } - - void loadFileRemapAndCheck(const std::string& testDir, - const std::string& testName, - Source source, - Semantics semantics, - Target target, - const unsigned int remapOptions = spv::spirvbin_t::NONE) - { - const std::string inputFname = testDir + "/" + testName; - const std::string expectedOutputFname = - testDir + "/baseResults/" + testName + ".out"; - std::vector input; - std::string expectedOutput; - - tryLoadSpvFile(inputFname, "input", input); - tryLoadFile(expectedOutputFname, "expected output", &expectedOutput); - - const EShMessages controls = DeriveOptions(source, semantics, target); - GlslangResult result = remap(testName, input, controls, remapOptions); - - // Generate the hybrid output in the way of glslangValidator. - std::ostringstream stream; - outputResultToStream(&stream, result, controls); - - checkEqAndUpdateIfRequested(expectedOutput, stream.str(), - expectedOutputFname, result.spirvWarningsErrors); - } - - // Preprocesses the given |source| code. On success, returns true, the - // preprocessed shader, and warning messages. Otherwise, returns false, an - // empty string, and error messages. - std::tuple preprocess( - const std::string& source) - { - const char* shaderStrings = source.data(); - const int shaderLengths = static_cast(source.size()); - - glslang::TShader shader(EShLangVertex); - shader.setStringsWithLengths(&shaderStrings, &shaderLengths, 1); - std::string ppShader; - glslang::TShader::ForbidIncluder includer; - const bool success = shader.preprocess( - &glslang::DefaultTBuiltInResource, defaultVersion, defaultProfile, - forceVersionProfile, isForwardCompatible, (EShMessages)(EShMsgOnlyPreprocessor | EShMsgCascadingErrors), - &ppShader, includer); - - std::string log = shader.getInfoLog(); - log += shader.getInfoDebugLog(); - if (success) { - return std::make_tuple(true, ppShader, log); - } else { - return std::make_tuple(false, "", log); - } - } - - void loadFilePreprocessAndCheck(const std::string& testDir, - const std::string& testName) - { - const std::string inputFname = testDir + "/" + testName; - const std::string expectedOutputFname = - testDir + "/baseResults/" + testName + ".out"; - const std::string expectedErrorFname = - testDir + "/baseResults/" + testName + ".err"; - std::string input, expectedOutput, expectedError; - - tryLoadFile(inputFname, "input", &input); - tryLoadFile(expectedOutputFname, "expected output", &expectedOutput); - tryLoadFile(expectedErrorFname, "expected error", &expectedError); - - bool ppOk; - std::string output, error; - std::tie(ppOk, output, error) = preprocess(input); - if (!output.empty()) output += '\n'; - if (!error.empty()) error += '\n'; - - checkEqAndUpdateIfRequested(expectedOutput, output, - expectedOutputFname); - checkEqAndUpdateIfRequested(expectedError, error, - expectedErrorFname); - } - - void loadCompileUpgradeTextureToSampledTextureAndDropSamplersAndCheck(const std::string& testDir, - const std::string& testName, - Source source, - Semantics semantics, - Target target, - const std::string& entryPointName = "") - { - const std::string inputFname = testDir + "/" + testName; - const std::string expectedOutputFname = testDir + "/baseResults/" + testName + ".out"; - std::string input, expectedOutput; - - tryLoadFile(inputFname, "input", &input); - tryLoadFile(expectedOutputFname, "expected output", &expectedOutput); - - const EShMessages controls = DeriveOptions(source, semantics, target); - GlslangResult result = compileAndLink(testName, input, entryPointName, controls, - glslang::EShTargetVulkan_1_0, glslang::EShTargetSpv_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, result.spirvWarningsErrors); - } - - glslang::SpvOptions& options() { return spirvOptions; } - -private: - const int defaultVersion; - const EProfile defaultProfile; - const bool forceVersionProfile; - const bool isForwardCompatible; - glslang::SpvOptions spirvOptions; -}; - -} // namespace glslangtest - -#endif // GLSLANG_GTESTS_TEST_FIXTURE_H diff --git a/deps/glslang/gtests/VkRelaxed.FromFile.cpp b/deps/glslang/gtests/VkRelaxed.FromFile.cpp deleted file mode 100644 index 96cd3cf6..00000000 --- a/deps/glslang/gtests/VkRelaxed.FromFile.cpp +++ /dev/null @@ -1,306 +0,0 @@ -// -// Copyright (C) 2016-2017 Google, Inc. -// Copyright (C) 2020 The Khronos Group Inc. -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// Neither the name of 3Dlabs Inc. Ltd. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -// -#include - -#include - -#include "TestFixture.h" - -#include "glslang/MachineIndependent/iomapper.h" -#include "glslang/MachineIndependent/reflection.h" - -#ifndef GLSLANG_WEB -namespace glslangtest { -namespace { - -struct vkRelaxedData { - std::vector fileNames; - std::vector> resourceSetBindings; -}; - -using VulkanRelaxedTest = GlslangTest <::testing::TestWithParam>; - -template -std::string interfaceName(T symbol) { - return symbol.getType()->getBasicType() == glslang::EbtBlock ? std::string(symbol.getType()->getTypeName().c_str()) : symbol.name; -} - -bool verifyIOMapping(std::string& linkingError, glslang::TProgram& program) { - bool success = true; - - // Verify IO Mapping by generating reflection for each stage individually - // and comparing layout qualifiers on the results - - - int reflectionOptions = EShReflectionDefault; - //reflectionOptions |= EShReflectionStrictArraySuffix; - //reflectionOptions |= EShReflectionBasicArraySuffix; - reflectionOptions |= EShReflectionIntermediateIO; - reflectionOptions |= EShReflectionSeparateBuffers; - reflectionOptions |= EShReflectionAllBlockVariables; - //reflectionOptions |= EShReflectionUnwrapIOBlocks; - - success &= program.buildReflection(reflectionOptions); - - // check that the reflection output from the individual stages all makes sense.. - std::vector stageReflections; - for (int s = 0; s < EShLangCount; ++s) { - if (program.getIntermediate((EShLanguage)s)) { - stageReflections.emplace_back((EShReflectionOptions)reflectionOptions, (EShLanguage)s, (EShLanguage)s); - success &= stageReflections.back().addStage((EShLanguage)s, *program.getIntermediate((EShLanguage)s)); - } - } - - // check that input/output locations match between stages - auto it = stageReflections.begin(); - auto nextIt = it + 1; - for (; nextIt != stageReflections.end(); it++, nextIt++) { - int numOut = it->getNumPipeOutputs(); - std::map pipeOut; - - for (int i = 0; i < numOut; i++) { - const glslang::TObjectReflection& out = it->getPipeOutput(i); - std::string name = interfaceName(out); - pipeOut[name] = &out; - } - - int numIn = nextIt->getNumPipeInputs(); - for (int i = 0; i < numIn; i++) { - auto in = nextIt->getPipeInput(i); - std::string name = interfaceName(in); - auto out = pipeOut.find(name); - - if (out != pipeOut.end()) { - auto inQualifier = in.getType()->getQualifier(); - auto outQualifier = out->second->getType()->getQualifier(); - success &= outQualifier.layoutLocation == inQualifier.layoutLocation; - // These are not part of a matched interface. Other cases still need to be added. - } else if (name != "gl_FrontFacing" && name != "gl_FragCoord") { - success &= false; - } - } - } - - // compare uniforms in each stage to the program - { - int totalUniforms = program.getNumUniformVariables(); - std::map programUniforms; - for (int i = 0; i < totalUniforms; i++) { - const glslang::TObjectReflection& uniform = program.getUniform(i); - std::string name = interfaceName(uniform); - programUniforms[name] = &uniform; - } - it = stageReflections.begin(); - for (; it != stageReflections.end(); it++) { - int numUniform = it->getNumUniforms(); - std::map uniforms; - - for (int i = 0; i < numUniform; i++) { - glslang::TObjectReflection uniform = it->getUniform(i); - std::string name = interfaceName(uniform); - auto programUniform = programUniforms.find(name); - - if (programUniform != programUniforms.end()) { - auto stageQualifier = uniform.getType()->getQualifier(); - auto programQualifier = programUniform->second->getType()->getQualifier(); - - success &= stageQualifier.layoutLocation == programQualifier.layoutLocation; - success &= stageQualifier.layoutBinding == programQualifier.layoutBinding; - success &= stageQualifier.layoutSet == programQualifier.layoutSet; - } - else { - success &= false; - } - } - } - } - - // compare uniform blocks in each stage to the program table - { - int totalUniforms = program.getNumUniformBlocks(); - std::map programUniforms; - for (int i = 0; i < totalUniforms; i++) { - const glslang::TObjectReflection& uniform = program.getUniformBlock(i); - std::string name = interfaceName(uniform); - programUniforms[name] = &uniform; - } - it = stageReflections.begin(); - for (; it != stageReflections.end(); it++) { - int numUniform = it->getNumUniformBlocks(); - std::map uniforms; - - for (int i = 0; i < numUniform; i++) { - glslang::TObjectReflection uniform = it->getUniformBlock(i); - std::string name = interfaceName(uniform); - auto programUniform = programUniforms.find(name); - - if (programUniform != programUniforms.end()) { - auto stageQualifier = uniform.getType()->getQualifier(); - auto programQualifier = programUniform->second->getType()->getQualifier(); - - success &= stageQualifier.layoutLocation == programQualifier.layoutLocation; - success &= stageQualifier.layoutBinding == programQualifier.layoutBinding; - success &= stageQualifier.layoutSet == programQualifier.layoutSet; - } - else { - success &= false; - } - } - } - } - - if (!success) { - linkingError += "Mismatched cross-stage IO\n"; - } - - return success; -} - -TEST_P(VulkanRelaxedTest, FromFile) -{ - const auto& fileNames = GetParam().fileNames; - const auto& resourceSetBindings = GetParam().resourceSetBindings; - Semantics semantics = Semantics::Vulkan; - const size_t fileCount = fileNames.size(); - const EShMessages controls = DeriveOptions(Source::GLSL, semantics, Target::BothASTAndSpv); - GlslangResult result; - - // Compile each input shader file. - bool success = true; - std::vector> shaders; - for (size_t i = 0; i < fileCount; ++i) { - std::string contents; - tryLoadFile(GlobalTestSettings.testRoot + "/" + fileNames[i], - "input", &contents); - shaders.emplace_back( - new glslang::TShader(GetShaderStage(GetSuffix(fileNames[i])))); - auto* shader = shaders.back().get(); - - shader->setAutoMapLocations(true); - shader->setAutoMapBindings(true); - - shader->setEnvInput(glslang::EShSourceGlsl, shader->getStage(), glslang::EShClientVulkan, 100); - shader->setEnvClient(glslang::EShClientVulkan, glslang::EShTargetVulkan_1_1); - shader->setEnvTarget(glslang::EShTargetSpv, glslang::EShTargetSpv_1_0); - - // Use vulkan relaxed option - shader->setEnvInputVulkanRulesRelaxed(); - - success &= compile(shader, contents, "", controls); - - result.shaderResults.push_back( - { fileNames[i], shader->getInfoLog(), shader->getInfoDebugLog() }); - } - - // Link all of them. - glslang::TProgram program; - for (const auto& shader : shaders) program.addShader(shader.get()); - success &= program.link(controls); - result.linkingOutput = program.getInfoLog(); - result.linkingError = program.getInfoDebugLog(); - - if (!resourceSetBindings.empty()) { - assert(resourceSetBindings.size() == fileNames.size()); - for (size_t i = 0; i < shaders.size(); i++) - shaders[i]->setResourceSetBinding(resourceSetBindings[i]); - } - - unsigned int stage = 0; - glslang::TIntermediate* firstIntermediate = nullptr; - while (!program.getIntermediate((EShLanguage)stage) && stage < EShLangCount) { stage++; } - firstIntermediate = program.getIntermediate((EShLanguage)stage); - - glslang::TDefaultGlslIoResolver resolver(*firstIntermediate); - glslang::TGlslIoMapper ioMapper; - - if (success) { - success &= program.mapIO(&resolver, &ioMapper); - result.linkingOutput = program.getInfoLog(); - result.linkingError = program.getInfoDebugLog(); - } - - success &= verifyIOMapping(result.linkingError, program); - result.validationResult = success; - - if (success && (controls & EShMsgSpvRules)) { - for (int stage = 0; stage < EShLangCount; ++stage) { - if (program.getIntermediate((EShLanguage)stage)) { - spv::SpvBuildLogger logger; - std::vector spirv_binary; - options().disableOptimizer = false; - glslang::GlslangToSpv(*program.getIntermediate((EShLanguage)stage), - spirv_binary, &logger, &options()); - - std::ostringstream disassembly_stream; - spv::Parameterize(); - spv::Disassemble(disassembly_stream, spirv_binary); - result.spirvWarningsErrors += logger.getAllMessages(); - result.spirv += disassembly_stream.str(); - result.validationResult &= !options().validate || logger.getAllMessages().empty(); - } - } - } - - std::ostringstream stream; - outputResultToStream(&stream, result, controls); - - // Check with expected results. - const std::string expectedOutputFname = - GlobalTestSettings.testRoot + "/baseResults/" + fileNames.front() + ".out"; - std::string expectedOutput; - tryLoadFile(expectedOutputFname, "expected output", &expectedOutput); - - checkEqAndUpdateIfRequested(expectedOutput, stream.str(), expectedOutputFname, - result.spirvWarningsErrors); -} - -// clang-format off -INSTANTIATE_TEST_SUITE_P( - Glsl, VulkanRelaxedTest, - ::testing::ValuesIn(std::vector({ - {{"vk.relaxed.frag"}}, - {{"vk.relaxed.link1.frag", "vk.relaxed.link2.frag"}}, - {{"vk.relaxed.stagelink.0.0.vert", "vk.relaxed.stagelink.0.1.vert", "vk.relaxed.stagelink.0.2.vert", "vk.relaxed.stagelink.0.0.frag", "vk.relaxed.stagelink.0.1.frag", "vk.relaxed.stagelink.0.2.frag"}}, - {{"vk.relaxed.stagelink.vert", "vk.relaxed.stagelink.frag"}}, - {{"vk.relaxed.errorcheck.vert", "vk.relaxed.errorcheck.frag"}}, - {{"vk.relaxed.changeSet.vert", "vk.relaxed.changeSet.frag" }, { {"0"}, {"1"} } }, - })) -); -// clang-format on - -} // anonymous namespace -} // namespace glslangtest -#endif diff --git a/deps/glslang/gtests/main.cpp b/deps/glslang/gtests/main.cpp deleted file mode 100644 index 9cd06d1d..00000000 --- a/deps/glslang/gtests/main.cpp +++ /dev/null @@ -1,79 +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 -#include - -#include - -#include "Initializer.h" -#include "Settings.h" - -int main(int argc, char** argv) -{ - ::testing::InitGoogleTest(&argc, argv); - - std::unique_ptr initializer( - new glslangtest::GlslangInitializer); - - glslangtest::GlobalTestSettings.initializer = initializer.get(); - - for (int i = 1; i < argc; ++i) { - if (std::string("--update-mode") == argv[i]) { - glslangtest::GlobalTestSettings.updateMode = true; - } - if (std::string("--test-root") == argv[i]) { - // Allow the user set the test root directory. This is useful - // for testing with files from another source tree. - if (i + 1 < argc) { - glslangtest::GlobalTestSettings.testRoot = argv[i + 1]; - i++; - } else { - printf("error: --test-root requires an argument\n"); - return 1; - } - } - if (std::string("--help") == argv[i]) { - printf("\nExtra options:\n\n"); - printf(" --update-mode\n Update the golden results for the tests.\n"); - printf(" --test-root \n Specify the test root directory (useful for testing with\n files from another source tree).\n"); - } - } - - const int result = RUN_ALL_TESTS(); - - glslangtest::GlobalTestSettings.initializer = nullptr; - - return result; -} diff --git a/deps/glslang/gtests/pch.h b/deps/glslang/gtests/pch.h deleted file mode 100644 index 94e95b1e..00000000 --- a/deps/glslang/gtests/pch.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef _PCH_H -#define _PCH_H -// -// Copyright (C) 2018 The Khronos Group 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 "TestFixture.h" - -#endif /* _PCH_H */ diff --git a/deps/glslang/hlsl/CMakeLists.txt b/deps/glslang/hlsl/CMakeLists.txt deleted file mode 100644 index 7d5bc152..00000000 --- a/deps/glslang/hlsl/CMakeLists.txt +++ /dev/null @@ -1,59 +0,0 @@ -# Copyright (C) 2020 The Khronos Group 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 The Khronos Group 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. - -# The HLSL source is directly embedded into the glslang target when ENABLE_HLSL -# is set. -# This source now lives at: glslang/HLSL/ -# The HLSL target is now just a stub that exists for backwards compatibility for -# projects that referenced this target. - -add_library(HLSL ${LIB_TYPE} "stub.cpp") -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(ENABLE_GLSLANG_INSTALL) - if(BUILD_SHARED_LIBS) - install(TARGETS HLSL EXPORT HLSLTargets - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) - else() - install(TARGETS HLSL EXPORT HLSLTargets - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) - endif() - install(EXPORT HLSLTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) -endif() diff --git a/deps/glslang/hlsl/stub.cpp b/deps/glslang/hlsl/stub.cpp deleted file mode 100644 index f1d39c15..00000000 --- a/deps/glslang/hlsl/stub.cpp +++ /dev/null @@ -1,41 +0,0 @@ -// -// Copyright (C) 2020 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. -// - -// The HLSL source is directly embedded into the glslang target when ENABLE_HLSL -// is set. -// This source now lives at: glslang/HLSL/ -// The HLSL target is now just a stub that exists for backwards compatibility -// for projects that referenced this target. As a target requires at least one -// source file to build, this file acts as that stub. diff --git a/deps/glslang/known_good.json b/deps/glslang/known_good.json deleted file mode 100644 index 2fcb7688..00000000 --- a/deps/glslang/known_good.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "commits" : [ - { - "name" : "spirv-tools", - "site" : "github", - "subrepo" : "KhronosGroup/SPIRV-Tools", - "subdir" : "External/spirv-tools", - "commit" : "eed5c76a57bb965f2e1b56d1dc40b50910b5ec1d" - }, - { - "name" : "spirv-tools/external/spirv-headers", - "site" : "github", - "subrepo" : "KhronosGroup/SPIRV-Headers", - "subdir" : "External/spirv-tools/external/spirv-headers", - "commit" : "4995a2f2723c401eb0ea3e10c81298906bf1422b" - } - ] -} diff --git a/deps/glslang/known_good_khr.json b/deps/glslang/known_good_khr.json deleted file mode 100644 index a64198a8..00000000 --- a/deps/glslang/known_good_khr.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "commits" : [ - { - "name" : "spirv-tools", - "site" : "gitlab", - "subrepo" : "spirv/spirv-tools", - "subdir" : "External/spirv-tools", - "commit" : "d4e2c2eaa6fd2e9f9cd218ea9add9b0c8ae759ba" - }, - { - "name" : "spirv-tools/external/spirv-headers", - "site" : "gitlab", - "subrepo" : "spirv/SPIRV-Headers", - "subdir" : "External/spirv-tools/external/spirv-headers", - "commit" : "gitlab-prelim-rc4" - } - ] -} diff --git a/deps/glslang/kokoro/android-ndk-build/build-docker.sh b/deps/glslang/kokoro/android-ndk-build/build-docker.sh deleted file mode 100644 index 2b23b27a..00000000 --- a/deps/glslang/kokoro/android-ndk-build/build-docker.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/bash - -# Copyright (C) 2020 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. - -set -e # Fail on any error. - -. /bin/using.sh # Declare the bash `using` function for configuring toolchains. - -set -x # Display commands being run. - -using ndk-r21d - -export NDK_PROJECT_PATH="${ROOT_DIR}/ndk_test" -export APP_BUILD_SCRIPT="${ROOT_DIR}/ndk_test/Android.mk" - -echo "Building..." -ndk-build -j diff --git a/deps/glslang/kokoro/android-ndk-build/build.sh b/deps/glslang/kokoro/android-ndk-build/build.sh deleted file mode 100644 index 5924f334..00000000 --- a/deps/glslang/kokoro/android-ndk-build/build.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash - -# Copyright (C) 2020 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. - -set -e # Fail on any error. - -SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd )" -ROOT_DIR="$( cd "${SCRIPT_DIR}/../.." >/dev/null 2>&1 && pwd )" - -docker run --rm -i \ - --volume "${ROOT_DIR}:${ROOT_DIR}" \ - --workdir "${ROOT_DIR}" \ - --env ROOT_DIR="${ROOT_DIR}" \ - --env SCRIPT_DIR="${SCRIPT_DIR}" \ - --entrypoint "${SCRIPT_DIR}/build-docker.sh" \ - "gcr.io/shaderc-build/radial-build:latest" diff --git a/deps/glslang/kokoro/android-ndk-build/continuous.cfg b/deps/glslang/kokoro/android-ndk-build/continuous.cfg deleted file mode 100644 index ee0c4fb9..00000000 --- a/deps/glslang/kokoro/android-ndk-build/continuous.cfg +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright (C) 2020 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. - -# Continuous build configuration. -build_file: "glslang/kokoro/android-ndk-build/build.sh" diff --git a/deps/glslang/kokoro/android-ndk-build/presubmit.cfg b/deps/glslang/kokoro/android-ndk-build/presubmit.cfg deleted file mode 100644 index 16f4fb7e..00000000 --- a/deps/glslang/kokoro/android-ndk-build/presubmit.cfg +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright (C) 2020 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. - -# Presubmit build configuration. -build_file: "glslang/kokoro/android-ndk-build/build.sh" diff --git a/deps/glslang/kokoro/license-check/build-docker.sh b/deps/glslang/kokoro/license-check/build-docker.sh deleted file mode 100644 index 41b05926..00000000 --- a/deps/glslang/kokoro/license-check/build-docker.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash - -# Copyright (C) 2020 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. - -set -e # Fail on any error. -set -x # Display commands being run. - -license-checker --dir="$ROOT_DIR" diff --git a/deps/glslang/kokoro/license-check/build.sh b/deps/glslang/kokoro/license-check/build.sh deleted file mode 100644 index 6e9d9800..00000000 --- a/deps/glslang/kokoro/license-check/build.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash - -# Copyright (C) 2020 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. - -set -e # Fail on any error. - -SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd )" -ROOT_DIR="$( cd "${SCRIPT_DIR}/../.." >/dev/null 2>&1 && pwd )" - -docker run --rm -i \ - --volume "${ROOT_DIR}:${ROOT_DIR}:ro" \ - --workdir "${ROOT_DIR}" \ - --env ROOT_DIR="${ROOT_DIR}" \ - --env SCRIPT_DIR="${SCRIPT_DIR}" \ - --entrypoint "${SCRIPT_DIR}/build-docker.sh" \ - "gcr.io/shaderc-build/radial-build:latest" diff --git a/deps/glslang/kokoro/license-check/continuous.cfg b/deps/glslang/kokoro/license-check/continuous.cfg deleted file mode 100644 index 1f36031a..00000000 --- a/deps/glslang/kokoro/license-check/continuous.cfg +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright (C) 2020 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. - -# Continuous build configuration. -build_file: "glslang/kokoro/license-check/build.sh" diff --git a/deps/glslang/kokoro/license-check/presubmit.cfg b/deps/glslang/kokoro/license-check/presubmit.cfg deleted file mode 100644 index 4cf92389..00000000 --- a/deps/glslang/kokoro/license-check/presubmit.cfg +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright (C) 2020 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. - -# Presubmit build configuration. -build_file: "glslang/kokoro/license-check/build.sh" diff --git a/deps/glslang/kokoro/linux-clang-cmake/build-docker.sh b/deps/glslang/kokoro/linux-clang-cmake/build-docker.sh deleted file mode 100644 index c5fdcd23..00000000 --- a/deps/glslang/kokoro/linux-clang-cmake/build-docker.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/bash - -# Copyright (C) 2020 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. - -set -e # Fail on any error. - -. /bin/using.sh # Declare the bash `using` function for configuring toolchains. - -set -x # Display commands being run. - -using cmake-3.17.2 -using clang-10.0.0 -using ninja-1.10.0 - -echo "Building..." -mkdir /build && cd /build - -cmake "$ROOT_DIR" -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$(pwd)/install" -DBUILD_SHARED_LIBS=$BUILD_SHARED_LIBS -ninja install diff --git a/deps/glslang/kokoro/linux-clang-cmake/build.sh b/deps/glslang/kokoro/linux-clang-cmake/build.sh deleted file mode 100644 index 53d82916..00000000 --- a/deps/glslang/kokoro/linux-clang-cmake/build.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/bash - -# Copyright (C) 2020 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. - -set -e # Fail on any error. - -SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd )" -ROOT_DIR="$( cd "${SCRIPT_DIR}/../.." >/dev/null 2>&1 && pwd )" - -docker run --rm -i \ - --volume "${ROOT_DIR}:${ROOT_DIR}:ro" \ - --workdir "${ROOT_DIR}" \ - --env ROOT_DIR="${ROOT_DIR}" \ - --env SCRIPT_DIR="${SCRIPT_DIR}" \ - --env BUILD_SHARED_LIBS="${BUILD_SHARED_LIBS:-0}" \ - --entrypoint "${SCRIPT_DIR}/build-docker.sh" \ - "gcr.io/shaderc-build/radial-build:latest" diff --git a/deps/glslang/kokoro/linux-clang-cmake/shared/continuous.cfg b/deps/glslang/kokoro/linux-clang-cmake/shared/continuous.cfg deleted file mode 100644 index e3de7ac3..00000000 --- a/deps/glslang/kokoro/linux-clang-cmake/shared/continuous.cfg +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright (C) 2020 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. - -# Continuous build configuration. -build_file: "glslang/kokoro/linux-clang-cmake/build.sh" - -env_vars { - key: "BUILD_SHARED_LIBS" - value: "1" -} diff --git a/deps/glslang/kokoro/linux-clang-cmake/shared/presubmit.cfg b/deps/glslang/kokoro/linux-clang-cmake/shared/presubmit.cfg deleted file mode 100644 index 2d2e3206..00000000 --- a/deps/glslang/kokoro/linux-clang-cmake/shared/presubmit.cfg +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright (C) 2020 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. - -# Presubmit build configuration. -build_file: "glslang/kokoro/linux-clang-cmake/build.sh" - -env_vars { - key: "BUILD_SHARED_LIBS" - value: "1" -} diff --git a/deps/glslang/kokoro/linux-clang-cmake/static/continuous.cfg b/deps/glslang/kokoro/linux-clang-cmake/static/continuous.cfg deleted file mode 100644 index f8f86c32..00000000 --- a/deps/glslang/kokoro/linux-clang-cmake/static/continuous.cfg +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright (C) 2020 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. - -# Continuous build configuration. -build_file: "glslang/kokoro/linux-clang-cmake/build.sh" - -env_vars { - key: "BUILD_SHARED_LIBS" - value: "0" -} diff --git a/deps/glslang/kokoro/linux-clang-cmake/static/presubmit.cfg b/deps/glslang/kokoro/linux-clang-cmake/static/presubmit.cfg deleted file mode 100644 index 9f30ddc8..00000000 --- a/deps/glslang/kokoro/linux-clang-cmake/static/presubmit.cfg +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright (C) 2020 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. - -# Presubmit build configuration. -build_file: "glslang/kokoro/linux-clang-cmake/build.sh" - -env_vars { - key: "BUILD_SHARED_LIBS" - value: "0" -} diff --git a/deps/glslang/kokoro/linux-clang-gn/build-docker.sh b/deps/glslang/kokoro/linux-clang-gn/build-docker.sh deleted file mode 100644 index 1035ab88..00000000 --- a/deps/glslang/kokoro/linux-clang-gn/build-docker.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/bin/bash - -# Copyright (C) 2020 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. - -set -e # Fail on any error. -set -x # Display commands being run. - -echo "Fetching external projects..." -./update_glslang_sources.py - -echo "Fetching depot_tools..." -mkdir -p /tmp/depot_tools -curl https://storage.googleapis.com/chrome-infra/depot_tools.zip -o /tmp/depot_tools.zip -unzip /tmp/depot_tools.zip -d /tmp/depot_tools -rm /tmp/depot_tools.zip -export PATH="/tmp/depot_tools:$PATH" - -echo "Syncing client..." -gclient sync --gclientfile=standalone.gclient -gn gen out/Default - -echo "Building..." -cd out/Default -ninja diff --git a/deps/glslang/kokoro/linux-clang-gn/build.sh b/deps/glslang/kokoro/linux-clang-gn/build.sh deleted file mode 100644 index 563432a1..00000000 --- a/deps/glslang/kokoro/linux-clang-gn/build.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/bash - -# Copyright (C) 2020 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. - -set -e # Fail on any error. - -SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd )" -ROOT_DIR="$( cd "${SCRIPT_DIR}/../.." >/dev/null 2>&1 && pwd )" - -docker run --rm -i \ - --volume "${ROOT_DIR}:${ROOT_DIR}" \ - --workdir "${ROOT_DIR}" \ - --env ROOT_DIR="${ROOT_DIR}" \ - --env SCRIPT_DIR="${SCRIPT_DIR}" \ - --entrypoint "${SCRIPT_DIR}/build-docker.sh" \ - "gcr.io/shaderc-build/radial-build:latest" - -sudo chown -R "$(id -u):$(id -g)" "${ROOT_DIR}" diff --git a/deps/glslang/kokoro/linux-clang-gn/continuous.cfg b/deps/glslang/kokoro/linux-clang-gn/continuous.cfg deleted file mode 100644 index 1b191467..00000000 --- a/deps/glslang/kokoro/linux-clang-gn/continuous.cfg +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright (C) 2020 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. - -# Continuous build configuration. -build_file: "glslang/kokoro/linux-clang-gn/build.sh" diff --git a/deps/glslang/kokoro/linux-clang-gn/presubmit.cfg b/deps/glslang/kokoro/linux-clang-gn/presubmit.cfg deleted file mode 100644 index a72b9a88..00000000 --- a/deps/glslang/kokoro/linux-clang-gn/presubmit.cfg +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright (C) 2020 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. - -# Presubmit build configuration. -build_file: "glslang/kokoro/linux-clang-gn/build.sh" diff --git a/deps/glslang/kokoro/linux-clang-release-bazel/build.sh b/deps/glslang/kokoro/linux-clang-release-bazel/build.sh deleted file mode 100644 index 190e3d70..00000000 --- a/deps/glslang/kokoro/linux-clang-release-bazel/build.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/bash - -# Copyright (C) 2019 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. - -# Linux Build Script. - -# Fail on any error. -set -e -# Display commands being run. -set -x - -CC=clang -CXX=clang++ -SRC=$PWD/github/glslang -cd $SRC - -# Bazel limitation: No 'External' directory is allowed!! -mv External third_party - -gsutil cp gs://bazel/0.29.1/release/bazel-0.29.1-linux-x86_64 . -chmod +x bazel-0.29.1-linux-x86_64 - -echo $(date): Build everything... -./bazel-0.29.1-linux-x86_64 build :all -echo $(date): Build completed. - -echo $(date): Starting bazel test... -./bazel-0.29.1-linux-x86_64 test :all --test_output=all -echo $(date): Bazel test completed. diff --git a/deps/glslang/kokoro/linux-clang-release-bazel/continuous.cfg b/deps/glslang/kokoro/linux-clang-release-bazel/continuous.cfg deleted file mode 100644 index 767556d0..00000000 --- a/deps/glslang/kokoro/linux-clang-release-bazel/continuous.cfg +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright (C) 2019 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. - -# Continuous build configuration. -build_file: "glslang/kokoro/linux-clang-release-bazel/build.sh" diff --git a/deps/glslang/kokoro/linux-clang-release-bazel/presubmit.cfg b/deps/glslang/kokoro/linux-clang-release-bazel/presubmit.cfg deleted file mode 100644 index 669491f8..00000000 --- a/deps/glslang/kokoro/linux-clang-release-bazel/presubmit.cfg +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright (C) 2019 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. - -# Presubmit build configuration. -build_file: "glslang/kokoro/linux-clang-release-bazel/build.sh" diff --git a/deps/glslang/kokoro/linux-gcc-cmake/build-docker.sh b/deps/glslang/kokoro/linux-gcc-cmake/build-docker.sh deleted file mode 100644 index 0edc05e2..00000000 --- a/deps/glslang/kokoro/linux-gcc-cmake/build-docker.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/bash - -# Copyright (C) 2020 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. - -set -e # Fail on any error. - -. /bin/using.sh # Declare the bash `using` function for configuring toolchains. - -set -x # Display commands being run. - -using cmake-3.17.2 -using gcc-9 -using ninja-1.10.0 - -echo "Building..." -mkdir /build && cd /build - -cmake "$ROOT_DIR" -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$(pwd)/install" -DBUILD_SHARED_LIBS=$BUILD_SHARED_LIBS -ninja install diff --git a/deps/glslang/kokoro/linux-gcc-cmake/build.sh b/deps/glslang/kokoro/linux-gcc-cmake/build.sh deleted file mode 100644 index 53d82916..00000000 --- a/deps/glslang/kokoro/linux-gcc-cmake/build.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/bash - -# Copyright (C) 2020 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. - -set -e # Fail on any error. - -SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd )" -ROOT_DIR="$( cd "${SCRIPT_DIR}/../.." >/dev/null 2>&1 && pwd )" - -docker run --rm -i \ - --volume "${ROOT_DIR}:${ROOT_DIR}:ro" \ - --workdir "${ROOT_DIR}" \ - --env ROOT_DIR="${ROOT_DIR}" \ - --env SCRIPT_DIR="${SCRIPT_DIR}" \ - --env BUILD_SHARED_LIBS="${BUILD_SHARED_LIBS:-0}" \ - --entrypoint "${SCRIPT_DIR}/build-docker.sh" \ - "gcr.io/shaderc-build/radial-build:latest" diff --git a/deps/glslang/kokoro/linux-gcc-cmake/shared/continuous.cfg b/deps/glslang/kokoro/linux-gcc-cmake/shared/continuous.cfg deleted file mode 100644 index 0bbc2213..00000000 --- a/deps/glslang/kokoro/linux-gcc-cmake/shared/continuous.cfg +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright (C) 2020 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. - -# Continuous build configuration. -build_file: "glslang/kokoro/linux-gcc-cmake/build.sh" - -env_vars { - key: "BUILD_SHARED_LIBS" - value: "1" -} diff --git a/deps/glslang/kokoro/linux-gcc-cmake/shared/presubmit.cfg b/deps/glslang/kokoro/linux-gcc-cmake/shared/presubmit.cfg deleted file mode 100644 index 9f5f03ec..00000000 --- a/deps/glslang/kokoro/linux-gcc-cmake/shared/presubmit.cfg +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright (C) 2020 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. - -# Presubmit build configuration. -build_file: "glslang/kokoro/linux-gcc-cmake/build.sh" - -env_vars { - key: "BUILD_SHARED_LIBS" - value: "1" -} diff --git a/deps/glslang/kokoro/linux-gcc-cmake/static/continuous.cfg b/deps/glslang/kokoro/linux-gcc-cmake/static/continuous.cfg deleted file mode 100644 index 07a9e7e9..00000000 --- a/deps/glslang/kokoro/linux-gcc-cmake/static/continuous.cfg +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright (C) 2020 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. - -# Continuous build configuration. -build_file: "glslang/kokoro/linux-gcc-cmake/build.sh" - -env_vars { - key: "BUILD_SHARED_LIBS" - value: "0" -} diff --git a/deps/glslang/kokoro/linux-gcc-cmake/static/presubmit.cfg b/deps/glslang/kokoro/linux-gcc-cmake/static/presubmit.cfg deleted file mode 100644 index cbdf061f..00000000 --- a/deps/glslang/kokoro/linux-gcc-cmake/static/presubmit.cfg +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright (C) 2020 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. - -# Presubmit build configuration. -build_file: "glslang/kokoro/linux-gcc-cmake/build.sh" - -env_vars { - key: "BUILD_SHARED_LIBS" - value: "0" -} diff --git a/deps/glslang/kokoro/macos-clang-release-bazel/build.sh b/deps/glslang/kokoro/macos-clang-release-bazel/build.sh deleted file mode 100644 index 8f1b2516..00000000 --- a/deps/glslang/kokoro/macos-clang-release-bazel/build.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/bash - -# Copyright (C) 2019 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. - -# macOS Build Script. - -# Fail on any error. -set -e -# Display commands being run. -set -x - -CC=clang -CXX=clang++ -SRC=$PWD/github/glslang -cd $SRC - -mv External third_party - -# Get bazel 0.29.1. -gsutil cp gs://bazel/0.29.1/release/bazel-0.29.1-darwin-x86_64 . -chmod +x bazel-0.29.1-darwin-x86_64 - -echo $(date): Build everything... -./bazel-0.29.1-darwin-x86_64 build :all -echo $(date): Build completed. - -echo $(date): Starting bazel test... -./bazel-0.29.1-darwin-x86_64 test :all --test_output=all -echo $(date): Bazel test completed. diff --git a/deps/glslang/kokoro/macos-clang-release-bazel/continuous.cfg b/deps/glslang/kokoro/macos-clang-release-bazel/continuous.cfg deleted file mode 100644 index f1980790..00000000 --- a/deps/glslang/kokoro/macos-clang-release-bazel/continuous.cfg +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright (C) 2019 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. - -# Continuous build configuration. -build_file: "glslang/kokoro/macos-clang-release-bazel/build.sh" diff --git a/deps/glslang/kokoro/macos-clang-release-bazel/presubmit.cfg b/deps/glslang/kokoro/macos-clang-release-bazel/presubmit.cfg deleted file mode 100644 index daa30be5..00000000 --- a/deps/glslang/kokoro/macos-clang-release-bazel/presubmit.cfg +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright (C) 2019 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. - -# Presubmit build configuration. -build_file: "glslang/kokoro/macos-clang-release-bazel/build.sh" diff --git a/deps/glslang/kokoro/windows-msvc-2015-release-bazel/build.bat b/deps/glslang/kokoro/windows-msvc-2015-release-bazel/build.bat deleted file mode 100644 index fb2009b1..00000000 --- a/deps/glslang/kokoro/windows-msvc-2015-release-bazel/build.bat +++ /dev/null @@ -1,75 +0,0 @@ -:: Copyright (C) 2019 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. -:: Copyright (c) 2019 Google LLC. -:: -:: Windows Build Script. - -@echo on - -set SRC=%cd%\github\glslang - -:: Force usage of python 3.6 -set PATH=C:\python36;%PATH% -cd %SRC% - -mv External third_party - -:: REM Install Bazel. -wget -q https://github.com/bazelbuild/bazel/releases/download/0.29.1/bazel-0.29.1-windows-x86_64.zip -unzip -q bazel-0.29.1-windows-x86_64.zip - -:: Set up MSVC -call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x64 -set BAZEL_VS=C:\Program Files (x86)\Microsoft Visual Studio 14.0 -set BAZEL_VC=C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC -set BAZEL_SH=c:\tools\msys64\usr\bin\bash.exe -set BAZEL_PYTHON=c:\tools\python2\python.exe - -:: ######################################### -:: Start building. -:: ######################################### -echo "Build everything... %DATE% %TIME%" -bazel.exe build :all -if %ERRORLEVEL% NEQ 0 exit /b %ERRORLEVEL% -echo "Build Completed %DATE% %TIME%" - -:: ############## -:: Run the tests -:: ############## -echo "Running Tests... %DATE% %TIME%" -bazel.exe test :all --test_output=all -if %ERRORLEVEL% NEQ 0 exit /b %ERRORLEVEL% -echo "Tests Completed %DATE% %TIME%" - -exit /b 0 - diff --git a/deps/glslang/kokoro/windows-msvc-2015-release-bazel/continuous.cfg b/deps/glslang/kokoro/windows-msvc-2015-release-bazel/continuous.cfg deleted file mode 100644 index 554d29de..00000000 --- a/deps/glslang/kokoro/windows-msvc-2015-release-bazel/continuous.cfg +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright (C) 2019 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. - -# Continuous build configuration. -build_file: "glslang/kokoro/windows-msvc-2015-release-bazel/build.bat" diff --git a/deps/glslang/kokoro/windows-msvc-2015-release-bazel/presubmit.cfg b/deps/glslang/kokoro/windows-msvc-2015-release-bazel/presubmit.cfg deleted file mode 100644 index 4980bb6b..00000000 --- a/deps/glslang/kokoro/windows-msvc-2015-release-bazel/presubmit.cfg +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright (C) 2019 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. - -# Presubmit build configuration. -build_file: "glslang/kokoro/windows-msvc-2015-release-bazel/build.bat" diff --git a/deps/glslang/license-checker.cfg b/deps/glslang/license-checker.cfg deleted file mode 100644 index 51ce2762..00000000 --- a/deps/glslang/license-checker.cfg +++ /dev/null @@ -1,59 +0,0 @@ -[ - { - "licenses": [ - "Apache-2.0", - "Apache-2.0-Header", - "BSD-2-Clause", - "BSD-3-Clause", - "MIT-0", - "MIT" - ], - "paths": [ - { - "exclude": [ - "**.md", - - "_config.yml", - ".*", - ".github/workflows/*.yml", - ".github/workflows/*.js", - "CMakeSettings.json", - "known_good_khr.json", - "known_good.json", - "LICENSE.txt", - "make-revision", - "README-spirv-remap.txt", - "WORKSPACE", - - "glslang/OSDependent/Web/glslang.*.js", - "glslang/MachineIndependent/glslang_tab.cpp", - "glslang/MachineIndependent/glslang_tab.cpp.h", - - "build/**", - "out/**", - "Test/**", - "External/spirv-tools/**", - - "SPIRV/GLSL.*.h", - "SPIRV/NonSemanticDebugPrintf.h", - "SPIRV/spirv.hpp" - ] - } - ] - }, - { - "licenses": [ - "GPL-Header", - "GPL-3.0-or-later" - ], - "paths": [ - { "exclude": [ "**" ] }, - { - "include": [ - "glslang/MachineIndependent/glslang_tab.cpp", - "glslang/MachineIndependent/glslang_tab.cpp.h" - ] - } - ] - } -] diff --git a/deps/glslang/ndk_test/Android.mk b/deps/glslang/ndk_test/Android.mk deleted file mode 100644 index b1b2207c..00000000 --- a/deps/glslang/ndk_test/Android.mk +++ /dev/null @@ -1,45 +0,0 @@ -# Copyright (C) 2020 The Khronos Group 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 The Khronos Group 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. - -LOCAL_PATH:= $(call my-dir) - -include $(CLEAR_VARS) -LOCAL_CPP_EXTENSION := .cc .cpp .cxx -LOCAL_SRC_FILES:=test.cpp -LOCAL_MODULE:=glslang_ndk_test -LOCAL_LDLIBS:=-landroid -LOCAL_CXXFLAGS:=-std=c++11 -fno-exceptions -fno-rtti -Werror -LOCAL_STATIC_LIBRARIES:=glslang SPIRV HLSL -include $(BUILD_SHARED_LIBRARY) - -include $(LOCAL_PATH)/../Android.mk diff --git a/deps/glslang/ndk_test/jni/Application.mk b/deps/glslang/ndk_test/jni/Application.mk deleted file mode 100644 index 07b76157..00000000 --- a/deps/glslang/ndk_test/jni/Application.mk +++ /dev/null @@ -1,38 +0,0 @@ -# Copyright (C) 2020 The Khronos Group 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 The Khronos Group 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. - -APP_ABI := all -APP_BUILD_SCRIPT := Android.mk -APP_STL := c++_static -APP_PLATFORM := android-9 -NDK_TOOLCHAIN_VERSION := 4.9 diff --git a/deps/glslang/ndk_test/test.cpp b/deps/glslang/ndk_test/test.cpp deleted file mode 100644 index dec53d01..00000000 --- a/deps/glslang/ndk_test/test.cpp +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2018 Google LLC. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "SPIRV/GlslangToSpv.h" - -void android_main(struct android_app* state) { - int version = glslang::GetSpirvGeneratorVersion(); -} diff --git a/deps/glslang/parse_version.cmake b/deps/glslang/parse_version.cmake deleted file mode 100644 index b9ba4137..00000000 --- a/deps/glslang/parse_version.cmake +++ /dev/null @@ -1,41 +0,0 @@ -# Copyright (C) 2020 Google, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# parse_version() reads and parses the version string from FILE, assigning the -# version string to ${PROJECT}_VERSION and the parsed version to -# ${PROJECT}_VERSION_MAJOR, ${PROJECT}_VERSION_MINOR, ${PROJECT}_VERSION_PATCH, -# and the optional ${PROJECT}_VERSION_FLAVOR. -# -# The version string take one of the forms: -# .. -# ..- -function(parse_version FILE PROJECT) - configure_file(${FILE} "${CMAKE_CURRENT_BINARY_DIR}/CHANGES.md") # Required to re-run cmake on version change - file(READ ${FILE} CHANGES) - if(${CHANGES} MATCHES "#+ *([0-9]+)\\.([0-9]+)\\.([0-9]+)(-[a-zA-Z0-9]+)?") - set(FLAVOR "") - if(NOT "${CMAKE_MATCH_4}" STREQUAL "") - string(SUBSTRING ${CMAKE_MATCH_4} 1 -1 FLAVOR) - endif() - set("${PROJECT}_VERSION_MAJOR" ${CMAKE_MATCH_1} PARENT_SCOPE) - set("${PROJECT}_VERSION_MINOR" ${CMAKE_MATCH_2} PARENT_SCOPE) - set("${PROJECT}_VERSION_PATCH" ${CMAKE_MATCH_3} PARENT_SCOPE) - set("${PROJECT}_VERSION_FLAVOR" ${FLAVOR} PARENT_SCOPE) - set("${PROJECT}_VERSION" - "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}.${CMAKE_MATCH_3}${CMAKE_MATCH_4}" - PARENT_SCOPE) - else() - message(FATAL_ERROR "Unable to parse version from '${FILE}'") - endif() -endfunction() diff --git a/deps/glslang/standalone.gclient b/deps/glslang/standalone.gclient deleted file mode 100644 index de067dbc..00000000 --- a/deps/glslang/standalone.gclient +++ /dev/null @@ -1,42 +0,0 @@ -# Copyright (C) 2020 The Khronos Group 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 The Khronos Group 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. - -solutions = [ - { "name" : ".", - "url" : "https://github.com/KhronosGroup/glslang", - "deps_file" : "DEPS", - "managed" : False, - "custom_deps" : { - }, - }, -] diff --git a/deps/glslang/update_glslang_sources.py b/deps/glslang/update_glslang_sources.py deleted file mode 100644 index 20f303ba..00000000 --- a/deps/glslang/update_glslang_sources.py +++ /dev/null @@ -1,155 +0,0 @@ -#!/usr/bin/env python3 - -# Copyright 2017 The Glslang Authors. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -"""Get source files for Glslang and its dependencies from public repositories. -""" - -from __future__ import print_function - -import argparse -import json -import distutils.dir_util -import os.path -import subprocess -import sys - -KNOWN_GOOD_FILE = 'known_good.json' - -SITE_TO_KNOWN_GOOD_FILE = { 'github' : 'known_good.json', - 'gitlab' : 'known_good_khr.json' } - -# Maps a site name to its hostname. -SITE_TO_HOST = { 'github' : 'https://github.com/', - 'gitlab' : 'git@gitlab.khronos.org:' } - -VERBOSE = True - - -def command_output(cmd, directory, fail_ok=False): - """Runs a command in a directory and returns its standard output stream. - - Captures the standard error stream. - - Raises a RuntimeError if the command fails to launch or otherwise fails. - """ - if VERBOSE: - print('In {d}: {cmd}'.format(d=directory, cmd=cmd)) - p = subprocess.Popen(cmd, - cwd=directory, - stdout=subprocess.PIPE) - (stdout, _) = p.communicate() - if p.returncode != 0 and not fail_ok: - raise RuntimeError('Failed to run {} in {}'.format(cmd, directory)) - if VERBOSE: - print(stdout) - return stdout - - -def command_retval(cmd, directory): - """Runs a command in a directory and returns its return value. - - Captures the standard error stream. - """ - p = subprocess.Popen(cmd, - cwd=directory, - stdout=subprocess.PIPE) - p.communicate() - return p.returncode - - -class GoodCommit(object): - """Represents a good commit for a repository.""" - - def __init__(self, json): - """Initializes this good commit object. - - Args: - 'json': A fully populated JSON object describing the commit. - """ - self._json = json - self.name = json['name'] - self.site = json['site'] - self.subrepo = json['subrepo'] - self.subdir = json['subdir'] if ('subdir' in json) else '.' - self.commit = json['commit'] - - def GetUrl(self): - """Returns the URL for the repository.""" - host = SITE_TO_HOST[self.site] - return '{host}{subrepo}'.format( - host=host, - subrepo=self.subrepo) - - def AddRemote(self): - """Add the remote 'known-good' if it does not exist.""" - remotes = command_output(['git', 'remote'], self.subdir).splitlines() - if b'known-good' not in remotes: - command_output(['git', 'remote', 'add', 'known-good', self.GetUrl()], self.subdir) - - def HasCommit(self): - """Check if the repository contains the known-good commit.""" - return 0 == subprocess.call(['git', 'rev-parse', '--verify', '--quiet', - self.commit + "^{commit}"], - cwd=self.subdir) - - def Clone(self): - distutils.dir_util.mkpath(self.subdir) - command_output(['git', 'clone', self.GetUrl(), '.'], self.subdir) - - def Fetch(self): - command_output(['git', 'fetch', 'known-good'], self.subdir) - - def Checkout(self): - if not os.path.exists(os.path.join(self.subdir,'.git')): - self.Clone() - self.AddRemote() - if not self.HasCommit(): - self.Fetch() - command_output(['git', 'checkout', self.commit], self.subdir) - - -def GetGoodCommits(site): - """Returns the latest list of GoodCommit objects.""" - known_good_file = SITE_TO_KNOWN_GOOD_FILE[site] - with open(known_good_file) as known_good: - return [GoodCommit(c) for c in json.loads(known_good.read())['commits']] - - -def main(): - parser = argparse.ArgumentParser(description='Get Glslang source dependencies at a known-good commit') - parser.add_argument('--dir', dest='dir', default='.', - help="Set target directory for Glslang source root. Default is \'.\'.") - parser.add_argument('--site', dest='site', default='github', - help="Set git server site. Default is github.") - - args = parser.parse_args() - - commits = GetGoodCommits(args.site) - - distutils.dir_util.mkpath(args.dir) - print('Change directory to {d}'.format(d=args.dir)) - os.chdir(args.dir) - - # Create the subdirectories in sorted order so that parent git repositories - # are created first. - for c in sorted(commits, key=lambda x: x.subdir): - print('Get {n}\n'.format(n=c.name)) - c.Checkout() - sys.exit(0) - - -if __name__ == '__main__': - main()